0.69314718055994530941723212145817656807550013436025525412068000949339362196969471560586332699641868754200148102057068573368552023575813055703267075163507596193072757082837143519030703862389167347112335011536449795523912047517268157493206515552473413952588295045300709532636664265410423915781495204374043038550080194417064167151864471283996817178454695702627163106454615025720740248163777338963855069526066834113727387372292895649354702576265209885969320196505855476470330679365443254763274495125040606943814710468994650622016772042452452961268794654619316517468139267250410380254625965686914419287160829380317271436778265487756648508567407764845146443994046142260319309673540257444607030809608504748663852313818167675143866747664789088143714198549423151997354880375165861275352916610007105355824987941472950929311389715599820565439287170007218085761025236889213244971389320378439353088774825970171559107088236836275898425891853530243634214367061189236789192372314672321720534016492568727477823445353476481149418642386776774406069562657379600867076257199184734022651462837904883062033061144630073719489002743643965002580936519443041191150608094879306786515887090060520346842973619384128965255653968602219412292420757432175748909770675268711581705113700915894266547859596489065305846025866838294002283300538207400567705304678700184162404418833232798386349001563121889560650553151272199398332030751408426091479001265168243443893572472788205486271552741877243002489794540196187233980860831664811490930667519339312890431641370681397776498176974868903887789991296503619270710889264105230924783917373501229842420499568935992206602204654941510613918788574424557751020683703086661948089641218680779020818158858000168811597305618667619918739520076671921459223672060253959543654165531129517598994005600036651356756905124592682574394648316833262490180382424082423145230614096380570070255138770268178516306902551370323405380214501901537402950994226299577964742713815736380172987394070424217997226696297993931270693574724049338653087975872169964512944649188377115670167859880498183889678413493831401407316647276532763591923351123338933870951320905927218547132897547079789138444546667619270288553342342989932180376915497334026754675887323677834291619181043011609169526554785973289176354555674286387746398710191243175425588830120677921028034120687975914308128330723030088349470579249659100586001234156175741327246594306843546521113502154434153995538185652275022142456644000627618330320647272572197515290827856842132079598863896727711955221881904660395700977470651261950527893229608893140562543344255239206203034394177735794559212590199255911484402423901255425900312953705192206150643458378787300203541442178575801323645166070991438314500498589668857722214865288216941812704886075897220321666312837832915676307498729857463892826937350984077804939500493399876264755070316221613903484529942491724837340613662263834936811168416705692521475138393063845537186268779732889555887163442975624475539236636948887782389017498102735655240505185477306194405242322125590248330827788888905962911972995457441562451248592683112607467972816380902500056559991461283325435811140484820606408242247924038557647623503110032425970914250111461558483067001258318219153472074741119400983557327282614427382139707047795625967057902303384806171345555368553758106574973444792251119654616182789601006851296539547965866378352247362454609358503605067841439114452314577803359179211279557050555545143878881881535194859344672464294986405062651842447539566378337348220753329448130649336035461010177464932678771671986120739683201235960772902468304594031305637763132401080420285435902694509403074001493395076731602850286973031871823998433525743549956085025660897833955642114948073393626075102381833141100470890395013433029741347484054061587753968883815407698017767303699910749246978478431284303641128920280122725634683916233547877273400639586571798190693581273870343353131890503838456164444429279690638379690924413039656009876635846277660760534869749085938119393092517911988555277653566607624393568771942331666428382007448163078652292356598265862759187475208750914476090169735693572318242499194754944316314633922707432445903024825444124903594099007113773263109980777239375790926677872262995677737591252687546917603955014736337374616450764577715981466107583993030432313494965864822846784952475402979689001510984243408167226410534651753188957093414626589139801731236762488745855026996192466780524258823789959071441857535595190193138262755935001848260810769064940679244358858315035260170450093467140873847278951678454152522670236969054686984460721098217747366065475232420890638176883356533083454290520236621736816890218100918592701164162563371092109191938110884083719954941395280874384765933151646452448371434955470717674786446677777732624005994428038830050520639602544872219401004824568355849141163720216501482904889541054859885821391467392801279607837657980301901978958312984458423505516280471384570983671431795984979833849366430513574397784640802839449964928361772012175297196011151892334756646644872147040059527002082479711962912595707913228752502422527522856631304305112194937715429407104922471479781545329850688228926948822342181417734779122897059303851678644123512773213799470513130865615260917674214128978997942771084104955590549299584603129289564107233793472219826296024657788598556491535425262769364578171576875056276959519406147695133621358966211036723901861834491008470560232408857407364980649133504977272298541215599225649059032041658007771303654844487909858029168067722987384848053914371268828451589962892904649536069764913226497290175810464903966012490268091442266963065322405327931805201389903025067016459461450932789918749750588459508928123131465358411564547862888767117927594441891032270339726994107826209490669391932336495288403984105341741310302842982983845972745096891535052298062324409231381105784356547340986751938386072824078975237990652215368284496415195204361430023406411776717208194707428124706160786791397142575610268773256725665187793988695435612472525038241105328379424949624250753859855661301876325664637266952818991824470283360644583376469463134323139144235301180608526445317741778291653198688771074838002159640719375468853627241207227361412100139840943907727183934717920228957418965620956779770395475952722338278919094369589561415818837608560348340633849064011735992848971896116553508812072291674167169028828110617043729807887551748692757400357553060073153519243349507340501937939318105887674528352364165276903716517492244596252440613260215331480242729696226777713450642053551510248310610887672662945119109458170017171351172998900259046447630663597241990518470249110886801246941915496544411759959337538678615328851050554859575190528299267459748057766950034966002392489117576057763898256505597285709714623821364612815756996314247433759531470950680892044615168703194054831137850497684218457780963603583567768142298040151305880322138870061436664661951545626428267979005809070233129442562729244929830694959291581317757142304682469486857726314081926674929772539743756365203107556202765117547407672845328319997506485537156785213404792052661535026151150356406251891749898352529576071186118970319875837950865821244714485548098909713227841104361632150544561892564156864800976875271727936316623567693430507054009607852975769733478163397865035634475960831130589187410887754764989661407670935400992896790330051971292292946559088131550937923116526762482009742553205013510883040341150186686281727844485183209998931138104801148473643382615504748270001027278715553796076269777262330614285973220370177164880139359067316515931312072256600100573067878158759682373274326648631525516325390695220551524604154736726647158297197591001763292467553919479244125968559869184312667168760661147742124931315475771110299052756988494792182854292007719911381106402013108502967022237263719274325205086058839399458141435359466009555137036851514395344251322516232744817692847483351601814314837757729102659770502163755133176163209069621023638527066273373626901536962550736108842415763081515490586189604502238648517237103057009020668264585149600378281348312288547085977755621957522869699146719545403108166962696902968962227155526681230033365499284279246122503955709996146929716943393515445085575161428669633518263939011925519877127076694092004108429973829850725629903458504335844781936174976879636884815170146038414931894585673109558897993841666166974318421510886781827472747719220624397780660846646309778881953155961035955675204558595720365916355225829595367340377821124098939880730735418362131210883751703803682361636044818326445317710867393577510419142209069669178226474762487269198026128610837448652330441858074374067999246593591464306819245585557718363140417972459258372658769308727666299108045043485914959969625019410526919048276299689030036023576364242543976705645825409964140414509946703453877431257026552921996084282110706720391105262505619809149264294431913083629020261583721722074799041669035005940728141604939653655727341223393328061033700370210082115341922272935349167620798856258516798064791585869423911461787263578592913577266496560330715306232849060615348934034150837187133526158702864246518272904355684565521061617251771366250052547994459854676618177860258778038060309844454452317643005733785587904551361131625441388511369580948358495849149344212511053561317489930374273228431172216701187815852535253670380108520352983662826163471297896833065315210002474321939216705990731334030228379053153748333258860259686717330067302626129552556379339768173004852394067955491414494658815332932539505292982381466762922541170631423426693448564933686325314187471396434159052837338057599907766581693817189717574586174723910973841969976461995896793918544510980595857872497164218482449641744096577511069087931935172163762211687039064038112184334338971835420060788173568256978867489304655852445883759212648417799208363759278052158828865944443470717721204674663717403307076091891373969561434777418394409918035481176533358781308335107056460299256956159134018566013596555606244210049118216995260922569290506680078804721901042757693997288571349433228077698498689227989260919788639974134901895749457760990032407780063856451418618283490037954058225202355755518351064429743431922882031247120926166729100598424255846884107374612524554804468109341567662890244632818242816677511844666683878233927095750814321940664119015965406741828116017618789243618868942632570924459087821547691422559606230108785934230219756625736579447630154855133010759284509511487048338430395309047016072044874684361805655601315949006747000289601228165807639570259385670285008578429130179932553460030268971240082153720232952395105616129302180110861178060187052580231747996633119731591642273948414571460060977210281759349979576265728307269243180649004310933529774719302925695592894959189752292825049367347000722018700748525170981295332289903556434892826282422320577659009067682645204551930086560092684876349416721725762454983924074821768164979506510164967234353212713614773581000547038597277175225334740442491813550788317862289208234078408775795109774371166591058507645395128088854180223797179219455957849920419754240782305702101769272342820106144014137277989965508795707943589592474963525602927419403283417307853621880884848847998583685853376538646959458826720640682548387139402883250034519191614572601713757129774794351968766793683192442078889064194298444156723258413743176372580251226040237693431794057564657330376961402281311544582327179461329342324056605417383515564039143507597656831275487808793372342757739649802990538680701847204972334987547393400505333413420189056052121183001712273735919232552039666926294404196924618648065596586352887007405098574161698144147229856195786504677694993394684294598691061180010090422684171543681508874882409923646682080896232327846527722111684082879614222455259604705246284373328404139753910084887177870081121399905015712082802391634768255731967767283134916845988039775759481996786427101101562722927487325948894426715538387222275148029649425655560518848333213436586249311519213639153594156424132547535820334160708337797309187263982565081852867202459888931642492125304071534266970728775701758048946130524033780888129721088526043716722749673323534346424671204519036457905469240952355940382587814547630092365993778944124386586403163338225154787662726080830421134921311630146566563200745083214313819652108413701689869726358009709900448514958963034484195759814128540123100259337592976342813153327919190479112116511537932243962729843175513117935899798536932695652120941915373257923864961508106561671576298330469920883633124248897585259536880902511450944327565918750819925446544117844777402880259063460756323108584263595234574170127158922205870588996376377002014935539902534006231910115625287234906970316630386434060919120416168891526497024381452992174040690643386405591049311980536533421950083114990675865444405455267655761807647433737340648152357812794787809564942370192810716233244166309116471657982085222390410631042156980325828049642533994666166727460402543554808683153620569234001004239860256984672500211241386802280878933329856467571721115672706406935442287253310844463971049745740596977436202024402332736121366106250851666918084453620080894318168524793592770060425382514166302599338771865400952903486919849223622678604618265233055065336627242424415990400062644292450271177497510588009011023693084525500802115443644272801580346627417669775701653418611249490070183061437656797834724194538870277325279007486728659578680210179738713773629881584663349289627835136883456115833270205340234383002230669131241843058911833891973397457792707395347071266179528615591331005936952968781224734715791815765437402464616243356998590767538055171366468931081435437742839255621059773721728107267428981042738041525800817731337848594292359606045835964872323039314179194806153330840752584212256077674797656449248822943508282261476638418670940482788015094697653152630151872664378790383018475312253254209193178809660995681825735252405538089779369433118025888140569760102023242164040963740464643769183046308914750668893438940847025659352638068255098114699604116234146340184088383219475456046181044229608578330923068514902723937237619541362920939201751182280515306924050818255426309440072674169546980290230789008604534608265812141484464787975256137476540539787341981468602169655617554972500235059932752489574079542323175307500926034766199727680700320475333704734673284398040394057169135298587628667010361167155068989428336371411404182169230401886891787375505451689167374706860069800002824497822736634325528057977011202011078837151627505132410644669838999166863771545396229908839512715229260305939200039558231210751022900681586307828639747791640369057083697431295695669401649850103069364068466241010343917697437050760682312982260043259713170842953522768082210247039394162536060375440350260602291120820810250235818211299877360159347820657812767436226278268357241968307366027519721629518895343959171267442818025936852728674784849367551561015819547439600064498599921862736187858177261276313363013278151328818734128716423730646999950411635140962052371659119352702503086903541600850826919307072768567214565332281301689394318185667970339383458512903220416181631257400389063575057696591020912673405453011430494446141048588465619120545521116063928431005833872851947668729759027909202784123144572521556646916049890821991101397576247060420711306343700081551599955512534569202476583328240518560254334171889755102248020149951616454115079381971231814639637024528856013530416729576258716412470563241667591601526421456224887470035400925911000058658673182492333607183123576370502140181223892718878441221362885751686521937031468735911171270440783906185311749154629596898174463905576066214494203291709262173767848830448832116547859124246321592642426455171918821365919199003772082428566964534717680510000997494581633928208994178459516851200016195067775747199575937462044510881859865622157664125982002265701984600525650843249391800466634998252965546707892478030183980974747595848835433665544214528241927501240809988846728186185861640656277925713539095252646319053799131983762473130689475240831318340891638402727672732670983159379659281682711434273808261800197878846000495526779419450983364672750152429437029680367433375534964857669345208797711457653346775667096383152821330332098895225089814074593789445773451582594475156883685222562840077613275036217810308123330688185833913471644732167493810886666915978447154435291101645484635746090914892486128164665379045455915079131477618921399304953932397493308760484231308346239026514615674147035807825532465664864348749113078545638286989918650760452558380927722453671528395306334135633565423109797164599609600076193515640797542002646878665043157501083853922817592749009298040507876048876046289732938994075292183959372281654924949445000195347007612788031986920380939739911941077675253469265009394289751028434147498251518729464219184876651589673727712742973419980199460194386968382552630050873569122476411923930799880228581849401978062974640949546124782879668295619286903396279125749678867856550421093193973669413805478105830110470104352304627641678930319102073598463362432873039931547095901728204887103332044819251129056559641613117883786342996979099942749413513857371584331518952345912622737351090750281341522183026887289077753667511522941214683303095181528844392245249985530160472058035224609989295689932572356464879730640802200248567072922217737249119762104686416295215432441420516461554844686137924789592266508547730026643641870747268579422829357518500733709367525898862759584157177557841390407193108069220473122266771906201653188553930195700546618747116529121387551699880274300159343234460980006764006238433117602841843911281043039374795109318754469038007719506861479018645033630563878317311849908775650448634587246259315904826745133071540466230424461242724399046002152099641950680377946261899920659518737980584072649479398275890806108986653263936649415827991867569354146183632602331087703269871396981204076538599573794138827873456392856094022772582166723366865766958860362462351229286154120515090453807922669254586918963962320720344768551793523512887723882435093370007549446640933896340347550516614063026994530478356110351993409461046424610258241118203793946395789571216684908885597324600311774379694359097716163962161177551880442606343382390180315269552381188677658507254914632807378141693231314691094444139376648464703790048408318057883934548695893111807862686760967040687663050234154183105666084718575437574262659836351390737671857090069786988422943981202817649259563540178470388346541219122453099612740379429670602130914320220686143614778974736744275676932583398570900208445369502017224609807367750912016964820741442069005885817190364358904305644060036534685900672334538803587203727240974767781746189648208604283689100696773225377171721602997801472080486365775096653485445495982620146359615727163893450144414925895408355743270073289700267968518658020433880980194722044605358968085750278591129629458959867075294875548722358389350159084229975457970185271779567894467935348157374710158648699729136915720902594164757563891325122337082595868383132989992812288927606060784781277108911453528396101162126361616884312531092107091862834979122550766351659995931697049777119774069712887222451252232238091068229296663469141690551282021107157795691675608221563693987841965189057985043433037027543446196863723309428058152339302228084435068552741308093790375982136586475037626849395168235329224111689204342618648500310345530808679636922286567230682304850761869199144108980233372779567209036401445111110309574063344627714111140061307630322890215157915290501631655738318845622336712736021816063944912611043581225497779771985528199480584578381825499754408606975879273383293842629812506146399948179409972400728698689119593912252578700721844406473750242695897876349689946687373252546445390657758538611587728806568471183453753836203876654316581379889059446848748219185060889493740579841963976977585416690206322155254985699932672230223789917193084746297690125062355213620201430377863539655651764713446758299192557192455942972916882294697091828674638735896990281441377191756146878076336051259611107806983001106465629510368428564327477899412063318305604832783189835938622253922033250513195731661060018907610687775609720032891847887928863246020501005024729471070293866390657906653317216648665815683041809074323809579973725913402660441700011733098004818016565325704311575595852644849686974566928556224886992691660828012970118630304252624835134107513523636521786509457856129916094166610517149668908853646693597768611537298642970433467405299690807307310310124109069491384862175665049714879296291470377881584794186361383915999295586802385766954383584998882234528552514740254613799536770911601180035004285212058356249198461337062166297405203459088930643352656193017963154473373586851324555524206584897735153777054149068905953171447588082910209727601626797635822658812975747687439482729730734722959003417228355349334062232954403355722174805341643723033123039145256624604144638223139806035709362770307489094478148062598127266606008520405765987635757049425235882205778774384816977646549666341272123253598594229535847263588710746493621623107206705510912179178701733376069997255382998665194118095065419633665699004233168315796902362233570047192054393551181431025106906738471134351825396432507399566498279385398236952703922536332405606364544003965367546540237529121276751288342976246505270491237364492313304914683663519337114896717161439030693886201416285553199792365734037399827453410061160843481439864805313556008670734000946778206777135387081880984742349156048350713231321562165186727213100548692974871212896881487442002816657601320894942665810523402707055953224578602462109194838105722936760128752978394583357691894498727180352297710381551988817875029296732173516423591255106794950354337793853212331918811311158278426844651983343109162598131066969364312032241970271468490728984770517659752035266226739990359635751374273755107468655526485663296559149140933030886002248130688642997719112635738361617647245233622147401677440353790046061550767287571891864613854057658445698936736262240442177935302431940949686018655436180491681429989792453190488887429296024597995826663040310663112847928583573499756231464479119819055344553014534221090513601837258017763950115429220633699313556595047540936966147335330181265318063256698374423226891871551289338888576242964041884682850666844607078203170615307698212417006090205705970878602243732557423037675839067183314721731026733127433723086617730676020027799446641022718669093679603350585257224637312497461547188342157579512776858992365037445401136858720626006000456751598217870649854796317186385770012083450160649608947064555160564080900327351110588829499231544698520502077997695451967531335760902226119489555101614610779625826948381253063268964195219340046060585624555179354053044649187630149067102110326010609721229446557033142110353457544084162551375413243498800874964429269811994833985956739183882146061934980307511623088325676774641141834532547375451668945957892344227916954432387986414040345856762841672084998815990196151881985554835761627707790364227866550900169817560346132309989157429920798501686171536482796650078280545682851427674043277980054228247966775685176027954902854734409096144060601836265583357327501086217585166826600369954784182527104477299345197243857097285389097997523215664947421830396468624431786055012148060094442675995310309817698168587765649958915209191476555539741362717424441573232613945659996532178255505015781842077481979540199704182454066097033492930363624053729202721820106540156862733361662815570774768663248589710114024039476650632751867611440221948004404851604768093683994318215565713982009228353479757979813628814379390123669977011179435381354831745879517091115836389816365508045651389401325318612260033251200030893148731968513109497955295457438755218194288246945529085894525011964851188033963949591979254358540834719607641497045604889452675456231112945243827141007077527952794596028726659649257927848919794392303719341995155067555757157858072713047578546889297811748989878327275305323959873352989666774240085219042269795211188133111623119397972199253719605281398504280512961672096508084953241668303141174464639773543885989951602513511023962567405539769132620127819800584928594746224973191407284562166731177286600998667346174543100205685387533734085985713540579158464510565585034550483987380094388673862833983763409392062452538993710961442550525875455327052087098341045820179815215041507253430330906309411767864785931915930604867856109813255507005443016436050573775071669913999995547013423303074337502481897483114641711365148782538130645367995651176340141050584925810712661362049955070398962449144172749906225078233466378460113884760140390702363245014516089970783143840326897328456772937211979770881905695296051177481778007435162857806183784402011209493492726503361052365280367509697266243222754949682189083646979663032918866744521135699848304494493406422335598953786347290619393514797746095328307668859433184814874725928760919922018117818840598702043907130744978873886864800035143135885077125416468849190857322774099000675891799084490685266329375160295022074497346105579706054983786017426741502803768633524976209635299514550032803204857788820451324912511060374499178436146595847137150743224828596242341516577980942206078381826945877783595317872661249413492282958607652201188704356889246187854329266405241898594457502978767381533223187204124566904112330641082109936986588294352767317333509483455381366448381833028284683792682793281289379959643417047921732513183235265272214503029169207166503829310048078926080004982532108505726244350074769028286955694453741983932156242541925287094306553032490537972063407354779208351713671862698882764643836905581800289538240001861415706877577915889066299997554220052957589619271955029107378961196850720685774164871180999878114006178475127252478046437350374529586351300687068989040267267185361927392468366507678923192696589465718242004047396483646655790020413118207887823207716535956667345210391432464002576887056844354082161192460769714251751922585547683947374840818093391488324297611202095636340437437378073583852726552384037609395419946942269406109885832600016056910150527295893144723999931574845392639829740328718765473740971424293133948723702335144831056490891917459599084567147712148107741952110836947817587339391025045835291086908790693207291131052813871549516291194236606738980633518220183820610197468366240449991470897008600485750023985747254339098230400124426545038575692908208566713385209354791736290733833087643117318934564810471057432335491492388248724868395798671625067499930320164920060100173399494548661570116066637397856720381570471755629207959496558005413822995691746394898960911335319032133801307173137844982339761130126215665336681970509423314964847340481333187179228327370518155575744597931084010630249034433764909925726927313995574722663568867802629080588434912639859729027183368859640861560201136553062993504246656157058139352721064164769477300148551402929805192809354686530805034525820390615363969283182355961260026838635300915568095977392342235335828058001279904928897503724266817417708377047516792736447131641775651198458990517273118385898818682644862078361329414178235151536194416268628936647888246767807120336519091072302610543951322264382590274207745373389535635725952227597041916149942356621595615298680236757649547836352294489187244130209598177575228188061297836411779768082743935317673112484815936245947242760655441333072046957787766357571869047248972445002616929146868030183043988677775006424980543839265211776746196766713586949231290589019007886111651809232617738679320841653943219657653200911744119234754556945927340572020706841271334265144738199613645171003527349620333672631326810313193658084966368754520806343263487804937380846914605042673256511549774225734299763090744310887582188521163169317496547294132364558151015160730580267750852655421055582176759808061966562290971019037467337265291843780296453396721472235908047340596715740195816305813851900883672794735336199767208197257230908498874822709661050047849762278948091285553318321855469235935272025089081824799272643558663868431191057583332593702639212697432731315582789514671318805914822700743863846739412028161830114692821787521327397967093191035378062159928973937636719641240701774224058920500687033558292345708239070741203037606923557414548256771514802418527224896588136864295380760727795144527756241407646392090385904548315722134049269223870207974364562175113027595865593296898993262637843725405374483910767569423282748917972196736063571024609825072176164362960392035846715601164940317746479980110545669160318283663188079877451544911173749924455016780358977738125532350113928227931315905207734575489590084928492351128254625362299124022730082607336701248471978659594046625615042317997734535073993356215866068071361358796840900706768508253686720155345467469381822282899899065818930385336464167812470863187298313505102119221675892404845620501164210633416850213398186688962495101076121671388509687347376145642377956282128684274947446466096171132276553935213207243109045502666733153576341694649416345962168020781710639824737193360848067162813536242997074246067051436293534256571684914775733682510544766943089664578012828717426385100687773654690569387112710122258002526701676799262847320715469839637567071629877659869991257308312551371260524842043683397865589146908126499880920022167557731428695657363085193064234407374307243883419813370441866819543063267069523387492672536296716496252978535124632290649002278083660101198856798328925808204944910478853916998862453637397322439912606676845013132914781131243880226535528693026652146309302692736233593017689648072309173958785720518811524211023143695045537031742448892065533891271214748260869341078632367538658194022634431204409450561940300383530638752655096050925255129581122591267878082177219530580756198580521474546677571616240516213609212446281761693449705620862336103581234516421586719184018243895329774250152053895131838088636387112823775882542714388856661133238630701959597393535596755009964421360547154636275451196301603673429422215180098919471217404901648721574804047599005504851591981703130540246948983131119080608314764176303740751562509625446879622996172319634298547165033847453829712199819057621473798981407289653051660084118779944640322633038311691634885113066736013677499332579586314020512605455135256369642215585453976155777760830830066449177181086838602285525974309540006270625155932130911404339753805600267862347016201307861589034413000898744215251802425455452238079497081224001920166955188170051214874677969282370913156105365171789212124347697363556634246151055216842066714954565618113679521292350584477068047489504417847415274582430967994207795356909627788199372761464428026886092191560063913809057097392080702589494924188857039735728159060797231063525081985469219639282021274804655248460862973662536618163515370860163249270688622618348709990221034859558140522434454004924582791222864381262330116718146389396562614125852340234366565763146382448005669690152664473409018300821006705202900437865797031433656485065473872597394407998808231990158154112384049929903434837341431330041529153380613285160961596487041345463035129224444429968178270168291826801357058411669029141758723864049591568153591961197587725328408899609988281213026506842056618137074833805593991906585761605152037952290966908123327407006456468770904997198739339182341072810347566445988298116359526665531959533197354174312223741731319345705157232608355311293351055432220548828043848446704405062354960503387883419212719815487910765063914820621283303220206704395450770144517154082461020314378612497821256395676785312780329670508184058511136422073918343248873600618709482734249118094323449853714523901738575036125908108355131291744102469505951715615579433536927902489521522226128791310796662340180476928186484501754014194245045512396103377702404442800035538660737860825576617312248098830590055367551543966145874574566065198376752388897993144626729176954489987085939949506017542733641115463997982061498691132629773632066054881854259961774776776467220619413843636520695293309523706835526261206924517578697789181913924338318959995121977291623138231320894231065893698811316492485470953142836889303589297361277757968201258182498222779276866984282702166816052748635768071471347591348597342274196693314560227899142425763585992140275630281820304317242129259306382816747268216379245897976161331847929268859741449319374511195785428824118139892922557407934783530418068934561183450027488627433112828598868707012693400958141101831576695430782284791378220749478655718833148876093132850764708000241948870791189048538807150452584784835496341033752757172104372462029280424736333827656560890344140698039347498115178196955431952866666774053929074497645868322682864691503540118108938841061017389066969073724246302586044316453432156426426024059158575226090511074554067660388987004133626783370122290845863839449783159435391760157216595750342075263143913559999900573877872484812258187672740447774635909712625419380062202895906105690650234428791988042754228399524780813186568230593555461176420874502195199589438568270793787567260325788849491202133709779371589840253170930744797685804674043147242339636976904720010724201610199349377393640059872328640512446301321767043182583121496990665736918600353404049672226452370043225535870975041995661260122687352330448035710000666331231819086850309900176751792129804328282065228589691025713472949969939681214299193667940973780691381941508357749784857757632774591825170123100188805176277787215076377317658810371923179208384253965037486576663324495558577810670999625561333456847261277597625210768129431986663173684606951751591661218893152412615193463580556114414390261399158156889899795729644535371762304073647672610877552750629394042505711947246770966631206488097076764386397870255420979984665598015602922967422214247945025440117596086032705056781375397800551892389436372596581407951936877622901067951818067799934104751744627767080059478938000661088462199614710730715478801956131134421447123550193004121292274803932750411247761778123827680748427018366562091491961922401985132766498378240472973117847918717884702379136177009594705902446089195693458427776584797500593727878250933553113291393857535335212602183940186628212747940626575605768142422426295674751477683482005545991564543040025394650941675149846563981452785443917038707238803193308625698397857384930428897870745211296777045830818101223253496096437318199515317579179667073257300561543933567909768096476716356651099178763852034409675864797835516535832875121248246940180897687818327328444626723574305754367424193801863797084763680145368148654290120963765082680906145798843953815428476748266726312840201930600019126503011379109672636638587622410076270836785153290375026081193812184617375186350129484274478003392334140361731573135669657635131540306193859611326515154012907185729776715208646395325655885785264499979655454894350973006503839799495107955335753178279563027695153957229465833276513513419708476433037559062556519105005698792940369007272539600335040135853164963310391456577214181449726769936084651095548844609214929040493070313374081127578442118555527431246822529710632585885785463476733270999307793636229616585420932666194075387955893285405004363315976318442143209953778628621086467443135186474908176397275588534142910189086270964492645849618504431576303113841714142019349548157136841578557880238592548765171688183242409345419242758935407568066620187205097061344509628576958494050934504129776333279898619425599492598120991361698485650078690997885048176966451951809244031540256224001610189405614936944524251597071995154653362737696271160280668055315133497268151950151215679911469075351395566386768205469086560985193054794884842648336763522348840739885939027065993892078268074691959302663119131844441105917098272696186692531870783658168995288571033213026153855956363895453052668707481550681447596814793489194836852496622818107584997068380311203793940862536077734039387034070949586842099240424166969681462688428437522973108704454047066096683430777842249415119578623133194651540186403431031778793653671854165917294356431560589656562504697273550486727195459355344460143651893776268171839228008307609973835530753916278460250850892388792913995872128407376548328594910333324496364934983566902172242579432267332796034788561612355544864110818884847693333373924228456474661194172608624402808956063418734100496365204753547847932805289297568556645847157966479394076963391251853302775010386966169294779331522783200743026571606904288547122809877043527676115785361366795459801153943543241403799432085100736647646140457830057926089975582773765266426270319376645909076480085021700894859575673725340980688691072496504889387091253899585124239745704742026089516487050609322429644995118249363537167331905255201986295681965368524803027386789639961560597590621643549589716340288673077206969651853919426415581536108344051383227698674439301399305501067167637542617204066516803607936903617687380719294674477107912317600637854740065203934317794135256288493081445338837083003566789314155748609750603133937195264716442848977502403741998117068458588655024952268696321484570657464886313623933176577407572118239294094441964552586128680135547031632743036724949405385138780107389102216309357089625642577775823933530932746394153616657719108740074139225293573975383653971731728883296458291670719314050715187157853889106109989265416404073431342864257703934980621437187997820181394362548733948893976869781649196338011794049401678263191298003286293713876855682835587378741924413842447088565120755134660013157232339434198550673642948135423657661454056072327010854317320713126402274201296799911828254257935250214314788407724028066622900727321319836683125753650326072040786081795378192230861241724674375338079303124511647657362045103224791431446536817969239436979365888792845719904603000788261029211593893156001511732431894770236056314527951545010029307153414500773626895089654554696381912886658244840727787640353390672012094195179619895564677281101428260697099378074652853536846955185595451936777102826831790594090225754114974418684292618783922157489326827064999231057356696394457608847533532269494359844644411755046133308619884863016322348729431671999273219552841112270345189529117961282042943161084082859268999689516167548495217040684697783679592836017463021253822457112810446945636029931613485770917345775404575569487548191254649949718381391697628670299475570777058926203701415994982147036869774555556682660198901757587472915272676023007236723589708085587687488069637735501877309869048367289097354633237917512953318297686297381084813001783152162175097056620006915824968980869174661636287023041230385505795248205837122140297319413635818379756655609749800355866532338961055720174334159499548173804715437489506050809252764780205276230505790782306617597569347280770026848513666458744945878150593767476539431775503838268394632970387895741514050125816265789183781555165175591596044209585352620996903556614238633728188546326395002360192305230489907866692123989632829374326808347137666049990311978024737006720165006585328535138723743663008737657415069113415157079759215716789384153559317578321699379418407125855918105524043093659127248572454451915013077210321850814035694124193464429799488775944032423096559665012192461523666596760029029854354622679190296917427038446837418149472212895962758685944399765337220620732349807944600807734198220936072316761973006096690892745764863065540087112103835280753558750093980023338369191043906069131988142150350059500555251330365324985271667373613494352416419401441322716900443309672939306090677383113693228684438758807284622912447764857801924723235001314697520727934673478171283581197552105754232862620680496129080988247511339049884388962184709773262628837451429758373092459728891022044896938101664379769710064677107027507617616224397023640546321631626566980884036001933759454311193694057863226105234891708434698434670673922589021339048622904711296962364004547685903007784809547073188877483807634232002004899928718054129138948654729137278296348820519898269767967395280829650660695451696918799350736033514882476045952503388812432712007593015801752703390599201693211807173956466922230899466587833771671685290532831717345259947942873274382493876750737292525214305524219928392313212508109417936028600351714082579344000543100429904062863468662810766023845827451569875182874676814603887541530917211145008829219771075490019690587140828746045543669615768647307827838226990419371398585111082810237008409057432032887488464815974294937042187974923618818960289721381223478421007371962263555581160105417418800345125447981893630299159598555414664933161362970872375488731702943271052323028392894764172198475030390127249406802757644270819507861763891261088163476080041291077968048540141447744576603392136313788750359289276398437160596045223810106653324938528309537641753909422288823378608842579345245339253955133084425006425144497526583873384762694790476954470900514380653565966777117056642553602187420249166979317381931062856922877605756211919578458641533516735328925231147153838717832257997901477161863844482891553843612424388115619111560599511239670975990964203671327217001462745752019639050156160924896609808826237885385175779390076865292360468032114232298126081467537334340569608110621394606909930726367831574253762860135780638247209560342633389562656851737940407078213477081194392688109973428941260432867416654595837627083602026261919947638192469874776055819409820268111453408744913870594880832161642872957662579917426288093577424157617312775845577879317084575810300147050983357666181048199660055895402776420509510096606996117896806075299096118905811569254085575483769804381483685461917443132796523023210752597397628001683038760963073505494315628124396721662175591237480872751836348659096830184595568544323832589217299963967464290841886189719711930108568126173603789407254664128418946280167914402441450579226789696459203391676718477795503310701436953176697056009958781246496013951794304950125759850661329249438898330047115311463093908645991995554791297934385779538367623403564577257066902203398538159830726675139341108748992757461253686170653734737358468169090482369815634117079703230168932015118592524132272430437129722166062233150416847134811955575864399277442763699429552852785443303856931764144298393866433971198959753242181299728855259001836925380426178721680224071115834682601578535381439643386514367502280644364432309360335668668095161484974999982273377152916616511183901478477688762498091412027682683833169537384033625897630761588712874499558287004134223867030496088058294111644968897401544871453710558297675166152801952328050157341493022768746010578249892629182306248896515909872488915832703802995880299740103330866368407441606000289257453535236616892675322845770049111111859735895026370946864473516186663226513484203571781365554438753561400069098571350079068101882472722604674584342206858617527151989828772850646612298462840900741702290154830760953768254657507847471644561967613551323033706018145947696697605573660424601730303194467708981023553981413854671015630251994959451102310518104307445127013059258032410889448637557513800427157091169486299921483604753312401847955701084373693439404462365862915366554732710309369582489497036682618335011797494583598572738006742792006883484297967589476468857864706375924039189389254940132603892502750666818120156618151026427807556687669114169579228468102342774352481243915830361218218689684527363749560435079548467177503400521826241618888833580299443441886484728147898381334663331167669921603626759068789423516325375019550115915386830794063195837995318421910211938948841076739803703825090465696566206284334748995706166544883673443451484452436315875679849465760794430988269286045372290391113324621806763976574411141573782352685954245978461147914733649683906110073904246545470729723744820300979956903167189201439664746993540457757395748038164536761536977544881969478485325144369106345574586541179371834925538845260265538395587124649942475887003852889030148713462639739049383380938670498590236661926412657200089514331752074537955367823762810337128593200822448577731638460125112588590897803111789921613082663740004206586592224307242481285604188122683455997013897185564259574727509453910952887383390887771040151647692839008713449149377669219902010368718007261129840410135339225718154207111502320489499797253367567715183780430474212342890902612695011708454819113173680799490911598276249573597936013824519504311112155296469985067285305929280896151710004515193531373888773150488692620243955144227944046996173965040387282825801323792183897008673223384280849625366345204296141277247720363651522147672081926030583908866075356910144886312683727940459474305955697135106047967999772244218779239629689981189618359836932425610093260859887546128363358768465836000539803807212500287415494059658377981889664825698873933245330684049787824336312309668822666372300951537148124293342992496846925899234504991847859473690481809201453475013203910980206541089983127590305197691822562035577098992751055047743111209616376363921226053031627270489969706570574918935983644104817497696567137801398306522899488723996518977038204980361369614132110838830710244122351945813923969529714020007231901607614309892141581367561170430414023467832240357067174484413643070110762576985348935799555442698111511765100431840817837371878439090291350552128008567689524444281971412831760761506725097180244596519967409440105094571400547582876033098552641439275206140494467447551961567515242501904246712473289108733536076522234576027948082357700181278631733858309929836370116999054375047352743390638402510127669843886175778866867537589772207481522426910313212894183546953175466593552761856596894822548808739094814681275911027767333146633236568310561729219917701788839019770166535762726248882606164486123384309102309493897618848716997948440517795366195025491870411102825012296209398524878382005735494731345584137923250906783907752443575542502796173002116464005855972345205549635283986885834071196152748068046058079926438413119166101020559779511583927374213982240375774412398940264306210909163942105656111647189691838429499177994197564741479943651420489717224010958263163782590453833715072052136543927880300063887920555613444276128843780337702153024887822030500958190886068655725308450033277701651633128808855109348104259495978830446659898505870548460859838376952557811228554305419218990441554249175227885683415624971750022627628764679472961757986547739039181916494717321210359328692968370140976371532181040626123791582086962225634068391300514381162261355716250230126499315177524313346821371266560156975886234750683288421571304754157414451638274134009783856689609403871724191301147593670346156899485915619205304724327809329704551874207328812542988754532917450522336497023542345067609910896224631322716105063853879047851937251415946238599518858880352463189094191569085362674042509582814118879383897098933066429155727893837305743473208158180625468447087477027358334234275105057884953730129305268811754677956412708639815255160301513057980174116372580404975838390191592034994456512775598974441973324576396676465769594312479339131005614978357530364419034528751297812555780207551056461620785102809642320467413226267813337546980124449059679453338928213976918747467863504783390381738391060849791646643837638421261944722008401017744340558379014806764483194373008151950935389820063204058801180939383415589054306159499981025435808652727471548116872350146676282640074916415640392481694025893663200775466165380990919318720585341246504104934510228466669987334617188732189969063466353440260430946734299730127984896512764227729184351526223193326842009959943867571756586085359502529164425688119837806740790594642541675516559843349330639756038145089568943607370816154285494966910380124403204770462638897648174798872220406099029820219786830945820186226065432253488362473355090778354060023408580342337805200169137630291991434700886937939476509442510450765570806571786145396543971794725736107000921791092811008238118061754083393590975930542161605096253403403586146917616343271643335086437578847633355264199040082371586415655329332149529954105286166455085267158525859382087903420568064815870941773417637200867540036982861360065341149946968696354326878414978007597846603232444390730329004938927727880987888284003464244952376376111793047132713730392485644690164851905611728837379203842375037837321984983573159423656497170930782882218218158636213555521390247871044917674062391356957927564926035471554301965287758684893485634949272466868699886621520500523203569348288430070182848484224960032217431576494711477823807931594947520331682095868953943949836803470388494958984287078324042943848854429719282273212514762091207877080750831475864642720828396288078173230807345707562638533629477421800310654348319961981996622267863622159772749147790919485571622217155114836617010931878023594721949232067153941122691809737818779303575350280724988429732338477994264715824404518751727892450225963959847434952292033949633594937470313943591118743231909489676924521218546964380945917499582849380112825309565279992222892031013137141889443629098122818603559067771837884718161905573631726185806786296453537163872042178187828699807261191892468674020393697517921744160077425695545420169417423545502397140902919661099601960244734251416382646288265959237427395553039257868186276828739994010464963632556800313133826896810848616963420644395949301638437117322460149054530302229569748005557898718521867330942153217946868087174295358582927582414561316234000178338478725272858428589143273016444291651841820757248405763928796969762234162480898862671941663289270338224914037634450134659768260138705234814902974678668263840991757600677152832956024458759399866254360980500824595556696144038173213906830724200359857088375086246695172351353037638195162451065240313967982726968087277878618183416743933265837560681973280860000690894538127690661539427408164903905713953386543669039282762358500848931920118492630725299066068065029636345041722373601479840273705090768498592947425172911662336142139883594723584335878124483492736041143820063339454969144524765632883647532223563140011027863948180184167754213628480507241306469754845941539015159322782069921571598702652799363271859402216028596871619807948139134484276908508174174073728424723583835932041806814444882315516117772414243798484232489145142764441540795110984902421884657804963794887878488717547918962284726040462380660314189841274257763883204334230002084940340875715757534723592620162339749535598221770108268752194561694620058235941556094269741924357940920322846561947672158811401021870075602868834441213507897449617323198326506780101992747139987119840903831946721140469876272578577960873453001159074061899961292653030392448966360542952930194303807958562087487673294281297965698919673377895271661505937895528645560578294763888539051116111475807282868994637769292964046033635639249545639524608159680744785418027924280729581624733344461395938985857750131293581797724323247352870132759295276547319386323992905186055187772757491413085711874933068622299403136985805901743645116418544628784575416144666805281245610786928150655056526874791540113976173789763300456071028740855464744492650649628453867428479245769993939187465159710584702326243468773509948855340677318196667221027369349723134986436763940032715845175597589062846942868034831889710327861827508729318460704529587780379443780325392069238429395896207110791685154892654101682754265833258126443295676076833385396465429572525117354846812382959618922062559494129894516905008272894127154028158129509331856710400339013532634598964919542582527902561799495941682103742427083528699886922684242721866493364150605592497559114079607245751644359211948975775140888867527281926586892160946199439355477908292164189672571456969895910562149726663867220862980037935812535258705918944494521354765945657181886700931943429885365086981897060330042486808142194391397980613871844128793608458392133288586092024983617491523725618880570456336388418026775266959644688885376155509966988178523444077068107988262185150593632790930251593611308356071584188402743499141594697558980199033818222513594614221342517453826633284337354359490568541640487765213590757603973668285635075012197078468933085747914986287737915250051413673213323407155578477717195914112036367656696903196003033708813258219075635646864178984899644456002190603996818507223213973026002232737314909744548300206353401267924600232238234589884423560002264836650984481715097849136735634645788354478132330403570237328563548511441058931182687118176028767651021862142022297536861668144991933194454022267526384063589217085832212430605948373383073150081298957048940098667668710150378495988813531786303755373380388186072113950172772747752512934118187085757297177266056557101883199830625617192226083852752549866678965662999251167963803109427354288870394250218784827779136070950011560626366870423343008484903979003341897076028315192817798597838075336568176504871028718761770325835263943861267882566926343220609681872336002070679516223238338648721288909510427941935098834534413586138944247521193090721835533900569549117271203163980175068133525973305538519878284485421660434442741709070053127549178778772363271397774454470043991447766141758517201738828203576921252743801517723326041501744317559394681766857814622608350564027318557232545540050322725658177423898003374408720621373950724239570298715642496758305032844249753411630420505219054271119408892007325637742320791946109139167491315491825090599314100348622736856383468851119826868102684643798616423140974576477925693309353511187833362579867939095010136777033421368920295271199977514671087045233060913463245075465036505958122359247264012269724890828108077412631253974966543627754609802921775957193816474094975978888115480951021736418819409940936208061908036820527036486676971318836667337488167174870199132472057022972900777953075982171008207648497767150663487737995433812646440875148247662516795245173133707771297038930776530942212967537186414246129047770516819405188542365281955154428451542442987737274529945605879886967792498842061823182283984278339495706848538028291098276817751195657488427239043238564184652136488028072644610086021179272507433645445421100276920930415527104843023679439233137445097876890383179490596991700969504584481350996388681562993054448862590722373567468884363502353690391899815866675856055731369071475439064507905455929361757077952691662877334106293084352758395920709825373355790299615617245279753324737302312516930835518435079793164693718576844809027526578374701785804705733634503138609854345578594177727451715927112830337356790995258702171553683005798970287701069778846778405372046264979563119241676208563102532038991229782055358190985592390066934662961644446253473958447751367245418644648685849497625101930920741121190564872020220905999398744434132444346181160464117746165534503203138232937924822481325844928870446418907905594983517753145454789272407415508787109042320973008259527995251098656596293296440226809259277436694815948860696696251741758028829258445371256455075093270559463468524332399814891181802713656898819672365354606919068211970116631499686633135324656064252124117009560337150403063044126893301138765919728414672751569246995988188918004206916791596471650227275156221330208510964937943521728721000613824848569910321910443018433886009927009121082388299591915101369555194531722772511649716212462269305837888657622821105777359758109657412577871458095704788176025781705173199636052151400997598942376971134697099842581918737955593403335182654915337950075637773938805951310837343793913040978923308815121240735890980107412624318115086531197967743828152275135376025971756748805870626351546477013969702899992761387442763623055535860085826091404684996745459415634894833842249181265553725470741591854280221245450821349566215663605284050063684992367280252861532139616942082562680633492030117155908621831780253043222020371541846639536156218591002349241103518648052139260684929559123351523566719846899931068603894711686788180870639487036565848133209983990767146911850077061413716524518110829283803632083784098405941098092943819618739650091170106455647170125883940959742220971742546409554370150994260888078802895770403975010441972079498964487017748147123643032335150232944765231399281412110885672769779135887155777967343016588924681649460601429245831014942172159931224873080359795104739929085759275432558130236744420223073754570349720654116928235815177827641489887950519596721901408127351808521682900320620818864057618286623282728914585114852437921191288270614736869842460114752144708391107304743489859994253168215814056080136912618663112913031733127248770826512013427142193037282954429117306920568728726310196572530339286338424121333024408384229780140628468235111075041386957686250397116610612826064125161548354930825930542838046315573492614419994833830391551081373071644815572252024222021315103845863013543861739478081516087973316220340176157108769922175790136170963864231625770719579459427412852341290681975795226227276897178375072720966848202321042041781393159879083718276038703516489560361816377160513969362345045773835976920353734109217464382018946905751329043493618576840926490302396513036213479713163402501349042688154193872295629748318114954796241540708519131958758280709475031386042831998844782097334464101349248281696093369293490460653982050256078539051243163919536058027036592901300643844521078499684849866312265963465975815308022123633414654815774597635625879607255086351471701855755245225523968424816834499802797916294722578111269207410909310578622227768551828088785208736483358431612628826475767393954706968523422985819202272463898434994602834957947676464562720924257980147251934668067235829706891290130811512650050538148990270096279120976292924751951712387771045191645326418156581248956311352194128159791540572154033021035764912935033280110667938764350042058867961752358959392553460647197913726875244821261918224315024244801316894508822014403779910988468865937060762118861675997882200007581864250371336785783484885273832344205207126912143106172253009219214491941182175188530163671298441905639102741347111191500358728819144068210082443841647021048828660846401569968246499378219577513526145786503665444304650464142728735163950659018192158480066729170844038184583457452182032119617930272655350760497290854172885447305529248123477202903054628554100705161816020841999781915781659623864255044796798630801672123350165365013383045602090792853931554682108365374592511835779606186244586569026994497977349698556982005392774943164814558915589749324674956415756508213781388941944830563500376559392398227324040925525478053839155360503119376692881265105994375641945271889955769500209456208367383922677686390687645610457987693223017387564849001721035498861264417796867393680119675029276041405973256617412825675225705433972686822392549708221013868984736189028362611592519802232370791135413451075932164784757121226629598109026614645033843647968595779391385450146607927867801470763480686057475744994199513671772119762189831585699342902916765021834447124727114321753970116127419467820267761358573457119708686002041173036905245356154871949843133984553127133480748028158732015725991546622865473039443888347220584264232959443487824869870057580540325951101000941502086088240723559164953507616190283040366815882375802894067635442696919456830466109355789946113087368453523805934463712897308381906727088524295868003140279470239695926079588551322954910657269203462493912342506913951293301995565099850090069488498661654688363794222208823668430228225593828741237133923550265935636492426271097435062810504475405135231351983206334121049894804469088449935104027789161220785351313390654348987808035130706957042234769350387024901457848411156381827715151516282303971774750180309816736497835756529351710383021973017694963939174640106126823083064209921659184853664775262419581021638353879366568755933204762781690946570782122597838696123690506545115451471553447539983807249012094961661439693710279819003179416930417836104791616494073934682001693066694797878312866445150684995623845038491680594141039174799933424374308928967232383291018248339374693382167817923960108995200168005890753682995884180056833350526626978277956966104761557712034367062018277786315015399147962868875316047741385379029841461497120354126928645479943598666198854775748746690585531666595042166080915186079423639568314695301995565573215306487464048474152400845175977725338373887887496374019144816290478620791365452893477027046244136465267486160392954452378072799414918168095687808103950432231761687098529106551939845913100541270797981371936364572587138109605119248748893133587173855019514497251028572419937807421480996713722384912783226117713597221179175741627937970862619615088805447925379277900921847345535000392648389822286199629298586960090321212966352122085023913704971900299887155478723762165218822176768865859035896396920057023285226056649473101116971705589808618249712694496035190291688722622425032933459492107817927851595585781284857702831069868104751081259999705751861282247726249647448785421932127803999949821508598968800262486407591650544282441483482092009347218072128392009278787939478795263976952210192071948948067955582766793240270138137354683720580614828108490846814980453728435655593565518335635693869061735142326091668302399481445803332335432824235021766388076827198623901050009421755145018271888059627827579757333011783104685017262323739884754376590187569268815859963277969538215828819692555712884254619142046150665318421780849642550254408290504557353624595577976304784675824977746090410674813734886240022841306618728019811938022111944384059338877367819727579728509478794098459983307127221301468962192624803972448801692639694639188300112781786605775185430844036990814712726643671290100627225639018719484168299873285543453058040404666233589851884093759728919304013445486746281547857425427908909148092285429166253699181446216491772110698549208126531962671977759018621895001547008279209948657320466251400781331733686000533613869931001444155180856039346927176040946045455394277639117125883994607582509161440504293483006118090589428203997046273249232983211023794913827178416811752318555578635409661756434757801536100636923767628159301913833341572812550341095752497784110383345683355208122394685175754949222552619967636804806301514983197013323439089112025951139516437055479110674550681637618890750506991432437228320190028547351225451269494212375897019477173087456305210901632145421549684821275551985272060206438615546219648371391312665431187334051790352061433624726731875352583961113889387033422337198074375896204663639487492141826960501389731258289284162093398977759833719410200832856434159961132311262365503138316167190078188176414208490303484961257377226139672482837560906374835099234822871032942963727702603116718131202210640094596280500500826296128512974073027472351494166747228498475148613888661474499364524161598986397143058744985424734736984392642849746112440530421882334302374878395892839180869067726557824437630674959570117503931489298915393128262588615392824577275032387835008331226396897891827154889642907969569234911153044468171816794365802719418800228454700185358147323016149522811507834232266665771496174906495676211231939016511630462355534582101287578091198519597149223447976583894054853354617018015748506372194842335430379511132244293077102527183654638731729434380584802933588007359371090578143451860434037186451411484224670105559829883506726427044439121654911097399508428195506055426636043295398808313639641471337919128218242613792695436604805386573819027393552805124765460624517401943532821010197810665178313512657761032479432440402370642658262279568551366987987870028744554167162174507962440215354292697078411761312752560752604753309323821766257158985465163639461636353250151057071481929892454750238966885599010011876274589391184809807956716570695582987446294284630981364402349160142052581305795114028503634428464274181939132131093167673920352641995421659501362747708693260976228753022421017687269142635284001371542377387020234046001168659328609771284594955709662721730714246682384173951465425559366307440308533325791904410005746040710418849436370349916633135646130175395965928326943771735603538961400003570207383111697426326978863407248611305482896788251858371160131920126129559732812504772398428297513084124762960222473858728577846663964625963839841294441471003771620303693803786830034098029557637872650320025509535772859934360918512948641574955158384654087972105199793042644390910823513706458090538488708609677186319300424843087780319348692426936473693624310218561368447696381716539619930525278404705296030847136264447782705705167908336503307137419435800576842782790027208961224941688527290661017625805813105598494757767972549380066662264232600460605182977123148361185949486270321908243685993070526076164449298679051831287835461529496929962455051461451416960590271016103647083642441150477582555614702191448970699928386816598426666101501201929790951480511706327861411047619625549556628573444988737863129891568622402177829205432245291253793310049844181161732704647771640659449124387829883278487713858465539315501527986425365214235913081357085865233736131391420858806353820243008292561414048633256192620310753310139942111143383684381247916983601681230691695295310870085871879340174856647626905854011377319517879096721981977956761932454338979536025059159135955745247370906698817302676097133144861399981555109366515665717255458999786369946296096351763534946046521777378345203739071419159952497417208861488767592890570820845901210649142925645489542975243366301754621967260020860492497285850249966838326827485966398869023162982081697503635598461337671196615032368828326633480823070323578687484541730037470179997457182492563330368731179962990902231305661584476913344198926958942034130660895410596660979579382590424633219999032950336487794796135354419553419964204511450825957064479955397310599814767529555853558449431193867174886707355415515508150471152481373249301282306746718824988345703428360706854221583723399621228701308408266106008681055245977070461101355494338979391134093704639587091888800814310584214511377028228412245817588215615675081219941633943294737888030585456717595052151219734042588183777515969202105126148643075375154319317181349214332972845703746122827845834783212238286975229053115288105752579156662363595819594275788746690136759759037629264575129890352054771975760342017416240580068672894382177812445285716476275665060717999181994735384634611188196163869611592285046895381186554720752081221210679493409772159138990902452258969402013840018170466184730591655377469069269637189865520386253841075908044464672100449788650048527631467138032194050024540561469103496339655280320964472764466197931542780019422556475600222142511390748464728718693111102323087376353064131127744009170804450442220893017683511431942451836473118279032769167999907942041050778427903366026036615715482281706650101269352773945109403729464373931640694462301633082547436109465269330801275242881505638941740591332988599001788481936843576045106926492403161542072406354177780514227996962793066915597030739144993752462131514159525400893770533495343612514258986932607167015029948411990544140422035051070057907216579426507667188509292107558704701860614319852516913610392430192217795236938439455662513199382508451011800761098326042966676081908856464880176138613221446788439592986129312022118849626773310074510580641230977007346486490934015015612485254714768989801644558270557714807526902039658488759626079987168404171679773507060153725189241341649593435008284025006801566307727803078641957665275440236834757539780950707589434553369584200508061922810088191429398302684917884987625577158561630289435348174872333703957952178307592944857558839152941206556098940853305009400949779124157858035636014004593116177291865069591340157245455093989560078971716089118207894184981594938860965416688243577078686170300565771172681530267838803678847846405806726263588520718397365078117081203773703964405032415237829771537684296812344866501357012329616534389300790846649260119944719796754237901856324693707051997095073795471483942414540060735656856056507649786227651926163841045151996093620628879976115697557793201578318162786415786633497349644215010514259342053226682866277980261142313690205940758002889811585946341299769818889070808848696855718078422048511164307714199184574827018854092382130537570016427121434722058958778272290269768127650160554213970707630698602327694559469961549482743678114014243114563205698806318807846507866754856282417227599622848366276855561698360248387257615384351744689609700117469288863584088822724105025901884987832416106636310629478375808478408831906458275995645195499877390429658694368224401465272060481640951302662407758551690921247052751099916768079321122502525538129623986804606629760450476038201676897439291534876643666569857388805904924652771175422425088699733291525548782078242672724538128358507111487271710701873114147108600248834285835129151452902811317958267635144314881773843932498024726855245707149220812392694516219868748283135228717010015174440958016191821038112013635601250797891059564579097509264977255706432818096296968816603301202305958938678197092117721486143236635489187598149985465889218301008073035344599346664708378362418887162449520153338860894449779972887635184795620922310626358518512426875323233494764214893187998041825672341210449105660938641618489163420338737390442853808900281219577507185142120754172903634356903022795394276681399143156466721504704948097183782456222506121586312834028629922209098765650497165610536106509956545396732583699530335537613036337024833972201680155029464952269884943609621434413104471876883402579878821024390627782148974797203467681813934235805050511801612975916433107460970385255139707489964848957328076148725664843976330034592569758704527547101071287182307884562692044050451364555750270569491195444167672356138183233704364985366612311777698612780753211636066557039484127443341833816443301473760067346198649613002353766697057315025224692356836213779985564553206049038781430124863352333333802693634674229428253912599660188426690154647479196678733321033239594753754064489923319621268171267159022849508944598778032622334636911608433799019224901179126388056782407315120181327961104940422414586690145926014665026130627774848626382658838683255553438113240529159381881690753974435725809020634471193646582466070886809224078291655705817621489919709148143642757663987831317816732610945828554166716701590146314429455521949833649727759121662370794615111979311784174428183603517629660512693542477591440082617778312713588770364883268425767410564984957126050445517128607702025512956488430799464932097817847306284305972899127622805180016431024993777196291775483823097004575657526240436227309191435087991706074774580855307865563513529379159982013230074946730255573214469298289110423964181732848599958478412425410515190808676224732694180848350277500152908802136621381140039966644997581179061576668048802921693411030919574835687939738240261109664863972185513630371170613275642682623340436609495110605954528528871707457600775411965680384057327751366875350525223997819828385850546519465422755895023154301913517723475151404660042782353597555412589748015466214974596545887786055754928842538680545598369821976729921625791211111308011843281706578518581244271807148381605180231674294412959592938350055820274251405975554756719503112096368105447150468895179815431831631902171296434322115139545060379781972129043662519153218065612250659932459321531770992237316680326427089208155383741253795580116512811773563722841439442906655399313332868538496960967472189019648032041973814045931890799901483941080211068696786582504331964311562255264007397974413293377028249038405533857125417855334009980491951471212086978560139689914405994449101371835958319701302295832404077526312332791692996731264266353761645768060250171175026997557429789569396929813726119762733739347418203411344050574011450808311171224286441839707012223141528139209932462481586942066955309030325030307929985918149232251602886209857244640736789892633427150798153226502863756053647317236217453009228021450412726713708230564219442044292324687961353700185186943795124893299633962902894471427326772242390283079314695861235030877093591366493268104039448256269777570099851585384011984744250340450766383204606660670320387365701715986547599827424489713242015860325495464322655100434038861626363533751038401518185001607868293641752049120139956207471718172752316073924605254114567972950973232086596074496182441472431529212490021671331869477159542236335049347698730501459926149243682767168626105384707710558798171943682515222443160542542601523107621235523966056901373059361168806632477662698532404652716006281385693143418933712834632945693486868260441970923360303923968033925699424112581605373092284616715421680509889594504350340635282300397943268960292873561830483564988211609693923940024813051906961604593732471908885613326918536486497988106858204555572274123214697780453524383491170372228854095119290631325338589568361757604069138154605963922064661632653558910772816494316832158307403377963282421662415795138478861493119348463278488575610481854749459957813601044434850381016273767619424838015505534151442322504534486463913178205564072822687973508717661511262087599700241578354053727969508446300980983050280626252357201505529947863741703530318340663845504014782871279511098549532545468767638550278777419108814367368664365460063913960358288577395995476940165990330946015851644749291498823249055634201406875740007492853566818395952582202085170903078004860674115808910776630000861115169171428647726615385266077194069178751431517907732099529000996137930122205369549976674879059260430605728180213844521240994017677505494676287575240204354811583455192895253172023385297594572902588046234095414454928777157320926501448151139707277352555139050972572627112193907080655414999574181568688097595004796775888512409102208393756948721479722906000955823393066690961786786494758442399350063437941250196729258356425204792595439852882074199792584832241150134815440777766893359269605587703508131077352116752119051089261755996935879661027394342928168430179110495854553985032826875316940482170642796095934288899803932345758627482410888998966600584662599729488160929860036263383591415815225571711571908798819770806638168599822876593587706697905628989301474584594162484692853624080627906932659396289709649408831891760121237603618171546984731701746318724746153537974280346753354304058333536313503710545011804860315562982897699025162949351794770295349132993714942503032240513646575978074852446920484433309958561865222821464686767833826513463474527480346681367999253908744282914562651459387299999161525060087604241347762849958048181638543636453958557692999521127382123502972089216300302959086571600558732583132520300098186038129005436623439718357582384044135201244603607334447152090888093407547335138542955024361162104131647883403106945869257532954464107714262885732044605064090081722450254003213282335492814889393404996021611131882923964574603045295348388766137407780411562544627000578641034635784986892429196931159141003139373564882957074561281009701624659856145370745729335603636030975072999483373305121410751479499741088017283550655618644322995429964039014590927123023513723200920703856654087088638779280165202680712359512283064756984186176101791041885384583493744380775202137207910121774795371209162266884242396146235877934405565820383251318770928432916667119457286203300742726572174265379043729255300839539722960505100808999582614497610448959890913374248759857868419665934461488166299108993084981782190195637272809458149403459616749574979864178707826285097730056992481087077639275675008755006438422922921234282271502628873523340283407876276697447262981025133945812776935412049402951099813404052069282413261873537058086742216372681405149284582314442345812961485922969510790883942067522381128641258020051844628453047005228325617836499530559775192628702480626952989335067153604877502101376323617005910233110221590742108865171549320626224041154983459049823962637738117817555083740286430701699726636230473491445149731087370824635287325374211271187261784857526423875343202623338780974275783770369622620789753283877750056533671828934369434684097249445463378528853562967079303375583609250558244580273862224054570138097143276888236597461177838835336265235669227900276973377442372993731331035728084855040179315896199766253687615222135010221577742716899834257237014177590031204812985493700423944244638912686313458736004320400665103040467381395370602023649692218231681327536725610846809512590344218255664127037321648600653751521892959655583907687872453734900320106388587785763990024432465234613728833475181503057144410169245297197510157548929775664585909366253230891519134938187154503504254210779169843533900721271540395586567885860814657257041311655030494955804193401666260882983251370891212047515865732028283538608030919604196014912027906592392189764242630575516334988650914380718392615135117038966117476694040020814246250723789651229114092562410633703052881735087152572049768373032177361439860732842736078930057738369273245753277578797874924066741644987522067499607739730041612584039849340565409379369705460349305613071952497224539773903452395777526703460242078603995610132258474562861257340699777898870430051197377945711755764094794055133547106342359195664646117244005359420245995496772179845491938727735256940020593148312280704640908009137387944018503099183017608127494507564843429381106369618701411048075337294623413442564124621672427064080622444057682054203849237476853360901336378253752902065473254731433102078951564014976062727970076311127691401611640128219034310687117023740155621312499167519109936737609671318430536848747108019711978225372380890089161572263548169187326897794586935306552774511487681900663151628005833334822896620046662520794878385621770469833961407408459389822245024856384625309348917561249534852658044893704724424216659897907298365055725345652704064178724454886134302343679367906629922967679180494905068946664513595372473976993338219496598412313631224815587218749371617201007077156783241972361060791368111803423305786386538366949062037419188693156834060113067614098357738011314874506492849566720514674077680097579160232074206655847923905881412243334520104842113943680958427822885686437117504400960955666678198116867422222032308585746129930160395655662222765437030204242272369308982619035442412566276056785951433035665318950253775305685035582542550196311665866297621162622196848736204227969116159118153271375881281076234203310728242594621514924028750156473907285659502928721402811504693485574314553171750667289921899415400282976124188117655355518208255737610058198896368342834277243519739349508867175422426287923132839390863931985421454312521924039432013694844373705527954097037897322263973497233412746212374487721232851088444720041407775821039389392177294564285915976654313313262172232372433031026976652645382183655553518081261755569810642940571813111427798647297176153522760702405950159439721954018633458579575685785034485277859197319021684194692163738343245389334655267072428282920225384537987636393207130899931422416330518835334980347414145429728239338654168736371219245865538710929907640190114749995065099817978210154825327382630440996106563779355559479901270050482222196616230609804598504119381335039873147112183250279457063878507157324859738759382709606368030591539131868009319804924379297718234647517325434223137188142079363532803953906054838855071498978472090487587212757055616626439289730499145268366415103933589657832574855959491787117851153386912135602077844585047213266508724057248597059350644107900840198614640712016762128076010356748525928008044130391810207275263429467720089637913116785889196585665414680698079953802082406926865818402933694316009396595450268256600452087734447713654730970777742636180463434787570854504940843149827381990414114810458187991873168591312225143191164660272995373606778831931379301620517250527811560142709909859696012624056541434624450795500042051426879106134267634510484446220931851772920335572742453931199027217496435060228507890092259787099965856714545380384685428014279796708905451814158505425944989948821258157223444380536293558155473940895695370068622217165035549036286546608553287971145915469516203966023451871639332164885520217935918598968404906309471709541487693780368951962068224710795926378239316881358547665033486243425057035035291068518500342426007251965500991610012182219139745438866050798229007493243353634373354125762613778471499991360522627385582985297606580061536934468728608271804309995999561132239557690813311060280641888990023130196518941059332962777496543266754159871832607393458412759056448101398670047267536237931932531404526794136224790057077991724826551341943306372617442946188826685090768822686549549799496063530133825483464827700094179853089933267416201810398680986579320453645138056698374213033454135253951653412231502523449965319701197385053123337301190562225620118070195203509778287798083047114800156442473588447370915316466311015465929250863406906727434491017624146183720331854733644909683072366635321536126894429526814733096921726796286635469858335101732652151127427223303402796616555340144955380980813829528902785906683786667759500440288871388489353345509842067956370294247795721776306512476458559168857605945529339376178163966224258830441658035585112503852894381822856133982517610595605783540861244407645902223872055700725902420769134383087472281951485553338678463499587181273609047623225291343550952302321650110941492912847192845703960747645432337199596374467349481050987825684355112841322698607604148651851414946358050841233412518624234518851283798992741440065473386545155134576213004775886086715229494345973401670678156626937311953423419555914510407190077976403717151379979890788728691120611139583660054523566812774122274883507223189948087516170172288962074194516807589702666466935109952717178864926139553862450005833601174023586105924431655504314469285340207381595259643176690867723449121186551070391115020975355946790625522230500991274303204481855561741293833154390379450442001753633800143813506160195942140410925822937181655008950320050034587401882350985253861869586047080653118998893703933567877660473960274055043333890784610788876028317790635335614573516513613460218815135729794753186503178231587078693149851523418692115851354908447415451930107186448482588054439414056759360999492072040923486750959402211126934679412973083430630847158931563753927510548518828376302176145549701819553220016062223299540394711474315313742732318613516688900091042704882336683717505998521812796288658570262651531603357147075466613546207234471361550602773418269796556914894528453555804585109762379768602195853579538418549750174191183887331658326271202389659202069412569083127191067429869848019048140182478775919089588804811340644718570201811961456563052345135591287216008210363864975986884567505802044959766457865732810247287151145524860436390254712151692265638958490242580600165380075424832168571672483360157468497181468023980680880413274575669677696657784970519231733434027438462354444855140774760224660767599797965427855051060423846195979149437693305244948565269307506707669150505831625598085688799045148529781794152035667084136161607843645548691504397229095266884751041797137713244865099551396345263714829218931093384445557481800370084309980058854613823448436309392900190903681877090473498548382539169236983644321053861688973696056258950527830863368581887143834920863515240594554717932622271800105761861319042262465808446471954552685450769997873769722854228470026465213163082598129183930422138388374328510851320714221837845034790898255015790872229444996849333668417871955797972465113581904546415557464883270699554685500574700645230227563224495376408911631930744413264595140057794246419630318331744800893158652139533427952238668085209777676811908998847911771447122711083817478618059702416565491664840737145184052311353334652290763922127945060259786256836304449390750143594569428387862479218986142476609658694353166605252530605970243824873486735017342581952786056526878752148009560589284964565546177867611466314505312604497976369166327074482672689199693323867176426275412258467531666882870871566684614691802742900016392763345183256681691230363556325457932866939548204105331638353494716855524453897912748530683841133375776675392459414287104637311145216517247333841878769499364258131834037564484367805431682743699006232637589470257652843781156180822572654032132021455045552809747438349280239229732752265206496091908230001378483545017323889765049479072334876020024310377872778400005805139388906690682585076110184331509228261183195064321352862899417803486040097857500470519691030374186751440895792266159676348869868317876820029705607732078333816816757270447857498177196649919439922375531308915468680291408072171112961124460852895505449993098808225713255828708696405407866228449667001168924136311001102065943841875393987250860224497989908449964594585933501622546360764443479624326583062031170219962268195322065559311061601112085893724955098660551089156652861563950699613272671559113299501475654920606634498238369259997894981082786044946590764157748414902446287873283454417440614877520174306422594261372329898812215041563031350561127237654365676416480453034861319351124213274057051474145932022987389315669403201629581328627312776141061453639516875525317896216594511652833988434088126620314065732145695804286152351452581011106077288262359109926308366879789901748041873554698822248028143519973355682700645310122902632183965081783613139875019543007226659161064948308087961717423361146272485714859425600123129511527705293982262681089193396795828990628093008348283402665720472457998018122730482494238527681611823605073754085787499062006017395682261171654175850953512238514177046940168762517105749041940131718322494190205125513835799163535873458459364626465232645171554336475445143973311892391995203208662118002979199420087610287861675576790642845678485175062734878721947981817178056444568169560746299667625016272423669200839854136306550531466316266317577797416749760195569191320212790692643779721279389878259934124565339523294239026446999856568920224539452711181083992727522652004608855642554351442188960133407956979870178893679889300608266403795126302977411990852684041729297437786911642967019720025010153792101903711243035529894823068964230104756696261377636239463334785649698110996951137957239363701945357414777457034461874242574883938782921649303236530025739303171957982291512380514272729411508068717598790427972911183057996692908632959962135556448445934528505360440055267681536040891372106412950571158717046672270518137279603504010350860759467937447694795531546562907139619960394653356237154597465527557104256762513805101604865232722758876870539041920490925365109337003907155979564230662870029246793189223275802387795942139847326828634271380345099154546704516952905507514336885491713454083776004582722359238322482273445501262946081087690353856933232734933980804145306427635691799856944658920973891290466275455094560595163466148721085395921528751486871251531995469439231478364190972935270251942147889048057622430884441629934078254915608410143743009100852923091875651788577264578409982579081489624372298019047780164221589581149407105812721218215541089061710400244507635493257596662831258435066321869453216773136682330792688820184070348729298017238473280850837597136146561880698004463110737740168828903989679264854291286966936434823611129517592424970630014529337168351213547880704261985487813470936581426208308369469573914422105739942485475200474053005504711161999741800157705200730625625522962262504199882316998819487612131083733620887474337764975367246569965484769231346339484154931325553869879187491069449576631255052615000153591287240026251606942429415190362920000962081685724278680929794571858564004628522546649810615272195470959493121975401061662129901121519180903748181335816518713955324889005572003695809065110232667313086536280094307367681299151156749381862882045122022208820822264266205924656353715196219317722123461621100051651857994961824165853073766377278709648206757654589712836077025900306667474683803832317077892510972047196091834463836572375345288586530171267536597670979746775051554027309003682144044797519098547317924026162964750594667434547100810834459126284282241809500738602048473516420523038697546861508813528811009859832998970883430630500380162031361807023722561718561942059571941939252809639581604265663037180151722042251714445265871063270952985184651730337101474007217847975529152004364739105251833787425859778038611676023511998269055846610500893899906774094940829989453746199503310286822773644479966876624857455037873861316805280885203693340297146403051095025550051572968114807941404455347084894958091957207894456119625248905659186949451874540089137515538689252511639091335780622468981352109445158004204341557991291166935878566995711595153269891207910814618710735631506323722481114732489031321180240711618092054789495710471284963923255914191141722940630053526184956770761725580105690726692900682838091216127433374557118950544703047834234750356553015102149119501499929055649376141499767475904859506322500213626065238656315778680547237003318225308466923974788878994115342128162625966962777174285209689501726986147309433959306057163399398608521680632241874303609212124137053323703068628028509923211726332286916095761428241516257851192510612551815259829569619205349781384830097059889241368077206041822208653462309904790816305672923770233710418875393803380890630387747192466496558084933179363963697283597480136113798210936012704967354973176656318021856686043889629596002785282403261423834345864437884470458087351447617289607548221021352424283412146554455500511672917063634698508659209537550308302467199880672375475991529630260535784729745620618141018826878288820491606726866252962329737643961100579261347351281080501837591060559202624828061202219999931716226014747074264295453010080533486346603938620913207597644925465086742528358660215508050665422423124569347949437567062869003572824326382075285006206818015446224048513456307741850230491744100389932908321058340576567048217798476885878969581756897069682436154490197743945975018203648490124495858447177386719954341873081824547159847530618753123752415883818112720592696485216537058864516548370036544780411650064080026379499866502118701977362395943087374367662682622998888167442389585946205295566301500199473122926033414421665076663160713688376419182672003817834813736612753161945434497132417956378919175675161698928669923584044225833080825000596121094076099108024512362091637950508146593211644395154072807210444991744507727133009057675423171944748005058729964506049455022858886474674241113836106693098058707176262325764141282435983079107493620231731257456997066202252443128691028620804087256824961130325913763774342906766175048699113730461886957384649573536531516681962888621705837487527427819109645524817545089352179091934591268032917022124166028112118825907828142529308220918522165114029556720405620779256182996847513799594684616429917683360805567404999149852498380883403586172844163078441320462177270331803515731463215804582938340960885756016169171008659299251015397593058292585650524316573816179392473712701267254621618755062575414337982550028498484613199175821655081836852317525931649008016760244808231937285703196054363890121857366136402802085656561960051506568376190650593593029443714678284463779678425765362582220136682293121073774639538321922032239530096440074774434182641173745973680706683561628909713553737001460964381644862100199703169113426566058033830965467570496266838837694753186321891221156384768821871327956491161944379001994330979806572980285049696195500253383383079298400762026389675998907369561900484302419666314380215491611620310949029269081918923086362060464777500508358595545162591819357323651561398804673645974248720371970689085299486160877157120655724404291005280638873121168631077730993165694756709899407134439277627828665617665628916908004503902416724371294220014324556946017934926502056321652300278712851974247564388964595792010197624264220294350196101443274808420286184803505022528612338082503266325705140043763398102354166535685826874117870357063131139540077252340788832104039226550722271167732383560348309271916683178085947112698490942823412830459373837555933260694030671866814269305058230266181822956954847838261188549223580643288176504370047582113307805875602179824720570253438865667461645639440213925052931230702204992507786555370869926494414967861698371887766004279540747974206369342723171765376831081524857863172847877127817736614269266556835088918036406539792399518009089108866193305490132381041655033585242785065119936419257934407552965674441276836841500013442194672728576283288567642120074542865457592597574234546918633740533230829570349091978980673851748031317564133616309871836092043281479958910492409826062235492583880804021316120921513705334576326105778085976155987575471965888432229844343457289750630145944516422739386948140009891218220349539666190583565535303704116688506092152631822090523550941691355899153167116827367904676924497712606400706565904111298280757845717381630815734436701089414352059739946329212292583349182267348197911294242424193811641470443024183784812231308845800251166163795295716036618278072499200260503282305841236725812402581413408331897941958128642781549518510074566143161361649899798821432119251324475634930742736642356695636505885608839378823522701581752097376838383717397601052075010409478910183812704188729422794065716775582481217696861585244940631547528980047692441653796615659100215813578992589291147197399090430553402269862701152059661171029523986073971435922061949448597095457524334068827618061515682937061274179294028334068712828383406467884924941841192206248032130063769688706909480830830944105159693314823607927420140991383592342697299348303133964622220656664560445717708717500470249711668553481282257364643483606878957074209337491539857579652554999261555658332590728930841421474829505803985870868764856625175919420272800752651144018340512602412558621146988662922376389580497048559637703864689656655289804005784814135148356075407768997865913942227189759495561435893918211282934334480742584572085250119379770118841270344948092728147550868249849335444342214846846675752805197273521412086094485163033320513985662635802645955680156248553649698724233176999463754258661014596715214961488702339995417273898266013992843506906597994672920048433857990158175389822981832745439897191528528022108529723480052587995193724324516485020934812806794771887956909340492072228444054803237892707235717111327954852215305638370073302985477017063428017065564658382798813084679406173137377725165380538433243519948472023794707577164300042350089344852629189874018100610015221300440095851641411771952325431377544142857504375371873677684393456718166814317867431744767011374127565329038883723775637843804049589178222832379405883629738247629850954817113649126561069530720012506251482099018676535459721939513261200905794219503655371084954220771046900240686780197316058169388559478878410731752394933576197799000475816628100053770711063869276482190911196286921070277158797122371192484969892894961850582572149960861443844191905324971225568222830144587307566986533276761845254685217415097357241187843803942652131547518715378040954832985204579882606150896751943820145083753196076634406839377048851470571739634514755628003095014554235208881557439774216460857246116173570424556607815812319959275128280630337549714387804533027296238824649250178679032980692590707527728111633586634726061489185030198345996612117640863186547113286715834078297394125057660690367480610268293618448803315110070641651813281824779618458668937046723051719651032083898596426305321601889508716545513910264484547974332964935293475743647768185503355130633218045310552849747171231302124847976569199003986913231602514461971845836484559788704884448214807231761656953146581247540584907359519155695190018689551648782128255100438126614342222720995059565575375967787338595872296372720293413973388609505045904270382699476976297183475579232498116258027707426687720502105923930459524562003380808182747799974199502674800087089297668512449169770026749912883100171658506252607879530253279479285268600413539174989444001130589457480778619225387847660147920689093039449510439054216107641810284260474632668923922562072890948921062037827563639087118625663680761143936155710483571232220733391450846396509355414945465455164800961032700146744533904928683241987579777706080588654557982522036097460835376376162696522719789923276885541062828268853224197495067070224562529524401414556009947112898585891572038913923864174462073683409727023547718205828053549840529097817166803879282188812553452810508152642001390200426411215009988871344233253482911874263620185768958810966779005937980807909667649160379171203585811750344927513735114545163202582645660853656657945467092342241561429192127720524344857342494298058226929132255538825310146047091656434672684588626989328408813227865491365633742256717260237443374754910607362643266958850307593137208065617837688770661878398232069278853019805272026215773337097876679692255287029825804244119633069115846609010944923616208735022965688108378159816483022879893473268756172198017333936899426467881766176082200837897672682549304205619509146502025235333961487261171793164553024846663706819415870825243055839955997583938009662954955797115325024702496977839670826166758171216705831078151696905092564150487540112334770022588784734375560861762187898245351297866808596078100126830891373053199078586224992867782900404216854512365253383311406686155734805702702903394532137489528348550371219757075982264152382411824914173580500713094909296197338777187837877256004483687167236720144603189906468663356235530662539431356757183694884410051553953773598719378501353401058549105797950360797472818936467698228927168256927960335980199833020336268231851107881374835255813607693866340212832212852739060578547893041179818608455934549494786397959847914805828842158094321918911424152253295516485073364313028454952145806128515308921280500442842422264451237975020957918877897533602829113826335967240428265043433990819363642241955236973986438206261620989927478289057898284765129305184596998029053188641774483745868423693144519782904582345930041505517820564421074730179616019415164886307159612126842047419199151400365562926722470313574261368240297586294164057860942509593160618289387216600775672042160417309566438251269297864125061701952773564805753447283320424239406407105759941156423883114141429546893386069645146145397679239735323458122451001662675474550778633085616144380705094178371349278076282624718732881115542469994720010215057640705010670050399479064112071332472530655507987081606717266634319135219957818308551140928476029666065360523779568502818228091848648657077288711842480228153752297583085903433323484173249274818282071159948892853274035173492599032620316045097646549909018922295952112145070599783605986036974543166969360998937333197139885152723901193977198347395350199145315192477271248606281356540936666296160315496208187468733601910298737569960053623596399661480794192489234642611094306067276832632659687092404146688786458561612593302098919554333498593244983324249225050642600325986098958447167069667354462013525128465191171224516403882716411550226106555973318554012122984635422084940932211734431344476908494708121121166627506692037342430661199805368610975175391279283383244180898530104713032837632425372260053176629427798428508047985575194178991443736017933186362081296370223064778009767145581270119850039694019546659017395293606901694668113963866405171394114747728509653728475015535449959119079364693188295615356792088341153044117208409628048677909467590408906660411786063571799684189534072435097417952519121492718362909800169262144939994892533661663034933428931835088828781742753622092675438527725610995444356347667996257073629658958901455735909983755436070056439704985416331710864096156343021155009914645529779166872457787568819527120515791671555870119726928435568249079325982803893042275118768073854298428057525151553540620762850538421154850199690663101305553802910843571005964655070954856841946283585634636197464414256579505221674573366280659239804859389401639968269528575489436464306848017535619623592022054694876968592737901982018392546291805310193462221278607801791575406663595491751732804983644736679883954547814462789860338812814111230613950527704024566528599082968618692444232342310439270196496973670598570098370358760407431749726333055540176524709752187136282244678571056782860361160366354911694325696036009033997734881302719147971705321846131173828771442547422840234910752850934170187385734789295284228880563033995801053618734628213396506646619807867378834716474740704525253699889227468836407834081851644077904989776864293517280796219497844342828221973346896128732945757285109882501535083436882023856659566698349327150850899813151008938406045980552892250071758714352475772273198000482662530472329430744855494347312870409273401092863236758325254244152629416344491390037463241148166510612639812718660614961817946391678326292891686326344291364649084427891209410854365722088717948337772314677426780950749850705417887734175739839479899195675338122987416833974662738812173519555392174128985381384867574191073707485158388866332139394992563401140301034890839368977906115061322361805283435694597988303622038824841010409496486515493855528431090970024200783452878684686968696063447543448641695663130883521680385262884629543854070620322579854422215030008101229729088360102640874541254715293056568350372306892817029562450711852787001922082117257664304067618235353342373764222686430150937726466732913492608571103820913298677884093688512690750049376887610753745647944120277876242201681899229146884012083529162574703185698596346975801073351740025733348319127138024999542437634340490485771112628206789413277749025589393890322692838626024584381512585555788124018368815409529378511937617670269300667810981432202059672480906836352811699237483743260435758763557657931130996869591368198901457535449205168897511418021907373890142952123012987859972776358177375400453778670697689839768264829293855684592428919414476599851817513432155131297755462733190667378746277830506009964934278574136287563814113452575344505323609520200014789951938726134173266828635088857738703487860820671516931469105772413392204270987517938146664825672580338868446225984035285748671412672358942509939642895283783887557469712892642628491279629553551814208378033291488712645843427082394779617619299192803721447529464044778784291264804466601646877443575947579282195290849549354247516516881052707748950296705843606121916088535730799249007435247658406660557833772010761173756986019955625514192749905592779020375430883780664140502864701897447530031248018476520389466540487442335827666120008065502296036561311517941518336664989761888038568449392277121165871016765919097355537445450556610006587562943875041454340163102172317923019735310370610950272523556201321591692013059698645210915289364841054990580221501108287477945665948899032313252535403084736493827126684093776422386739709540968108090940496909451663653963741679540947825334321448201111888562964450189519095567169185734112075613784500375404736309932513327950732139474941701218455970526117267208523922022872826747225569218300454144391803702106684462923165954485436114175455866725432970953233966675518828572383311397685360328238916078782095686941624650753978306705475066748273264162720708882395898359974936526204010190079559829445983544376160536094145134812353584493774163890947150647737949598761844300098339324505201256870171404189031002633504284860472266479476345352920518684216642967509195665680960805536648626149083518211703189814164594521929230296380639213976131830900530779484531920345657155586725736744888775113823372826132009960453668820607171936044160433311701295132796558050066366737299352761736438096839629188254972959388651410865587651477659406913794652282101523900486755160364707481388502634665581992277357593316241264334053488381775698624147675565313568189557972838440596415655332466152013539868591415013621291914363415465764910214342452797679130257721789434821708421811277325633305677845290999763192342896056194023208197619128154196615678302559614836856772640339077235226132469015328211863139065582940346038847212797607877552075901545089040169486680164548166208738052494366447215174369336463229491877012675544895853690362527644106465506148522294002080590105842031777412638290338268473611058005994205822942266371151002527331936858792474891386788788930984857766393784175307068239169063041443999255989589434144590662937758922531603781712027197361282336646103366687549815841181583914629900393791411626605863131638373239014273307588135852282317772091783206490157419222082776669637288008649630103825543246553191892358236312958819293528452434876191120030892270708834358574749400663347651192594810641976478729640036463411114245742373669096268622894707244752457262789362640920025967005437227319944001944309474147035909904078179648953928308432333894971518199055204475631771751551455951819757117203101499386772091335735305777727033277595468396095173745423518253727951732010426976370945689181960992518294220105072452633730579364375353366113733143732563607510412965526001571827233122137760028335353032335257628342296126398755148693863971853031712109391329575289598943624881709518694102746935037270003745458789140488638868625497496881994244941511969523253804668191815775508118649479529257624809728784854822822518470201882061845337571232382979737411937037996063939731077687337318383582378793027727610149205279291810969165463228395251131016064851639589855595573340002941360475290493024805985146950186778157040034899486052460366883999295198301199590199912958376766822166796110132797343670191491695106888722542873881220317188534052363733456441774895230612155044848545955500556211278203205861456761061621863246319941542709523306978640985191700829545261598511000778885609870657575622428058539432553220588909153707037098259167079837538513611276927070007073101599518405505170883923116098884514518600429555747447272314773544562098276608175098826291679724290861955822437412149025750085856382609550477023107829896065623213586808677615952558792955231681445128588498060587670475974055716327157265665932969145517990080871302608104612483852324016186782394260543649017128676140875696722367773729034197747791151844797181559835204791373351129493941207503185319992105436014815481906305823705918338836763903156252928070767534295119546018369691643719349546784754393550546025784866677352824807255355596309517741728458752093717854861091022915203446140400803256460184631445899130503495487902015067391778564934175203066660303538351209911943140864744444150405031871984219506655700233315158187863221810640656805929650449065996033711819339680007762371701728341283445799524539131308397184683754551368027253947755801337524865920565127831109777397018826105067900572363389350416428320562538839468659383116967365482443748098549101611720961673001468308535057093813527105491320364475394986299978312048403016964443677674243185213167751466937479518582327144433520636314017623208331414800091371316224612579053412605233645493086840266960338319803330766245001078077931361768452352184761840481377773978859775876612091187855968234492698225911069998547185316384140655254308151990954530341612778573976651442387833404767505133784457499594149616067529982645244122448525787297317904874349145186308502547434454343526095719476277317480874037366603002473705164798906408004688039394185463353392839793395868577924102717012182446845248444691868490240603562819436662132797934193681800591522714436259467607304159619356106727927779317200061544348204666859579028173268189145534787237112031517160319643460461529849346528145900140726942510792445231222379223116669598378024326285720065897823598522930735191349684979323342772592505328130831578866975185221745643662392345916125686179448506003987230521237084029340843568872801697030812542822863945834180049566267221803567870512416624826958781419081400241283977395485114554558912651860854931006683483540164711898819845938600607197366983554182712257916714799041022305129428746917986999778058372538972060923406770375416650739413590444994883576803728673117944828749444760214074402603895746569887064438239540991392669351304384756978419067790108659667916231622029553472476312521820899286081267544256919887457182745338587589631435326527471546655918342423891180155590134345627631439795893140547223989099799429012489702658877934914784602352848755322835291287145676753288744004823497896311428528856076420512455126773278776974595414720792108400861432724016607166659400281729465518698718512108117282403442049194815547533328399416941434089455514031565614067894711004882086850732436388898391842938339913470513672102852860925540324566195126160948299584876637001186683494431475866447616182061448300948384579863000080731671701783692525785779452563518722268863758986481995373530662695267948702572139063414370899798018826790355451148078128640836783906450024836438587423694554723291765478179994697730358639181722133039302292091487279438861483038463566270542851846323258578816505518991666077031423537309820161882236126725971990291893730843787848124548049509874059958039948184928998565851115830780462399778058856147670700685539000301834378430660278957087565186301570526282334692846624104433825818541361353082013019392661531470799188097899619410251255397637071402939311214790803808588344865366908721524861760442743974268212092109349901205633187462583903883264164030443777961807741636186749777682327105899445387911011770241859869992667022064888327854632856029029695706408689072777952082428245947494795033699144582458065748496716387645999664841321067007428949573876847808272978764212084070286519570925343386923143116834029080538091438731878307219511069916540703560773959608559957519536878383687730944055074264021152243121194798586884264912158028978476240001289453534063807279308850197474173480691129171992403680244024163621662064181526296395973516812519189023482315332244792948814207101573762962161428714390130809920610827907679583294674565962994693379761564171235818276485281861479913619213129933434731602735429600096642169645746236487295248927588536522526389301828142537707578785983742269309617749111013279074837703799810770257334840036761015843524986267396351833580823527409315420782607420665447443145573409579569752709921314072189794262015333370758704032915891044246592090663968506900152409239108774482555003777245124107236048637786705953429031177051014333498221181948126749967751074556763235497795536669669622239412761553278897063708451767936723899600887666052546487418217230852673155199876628062425186439910527099322091331387516818823617885904042827306462147235158079751029102312966119825942166713069153132034623794035579879269928509086877090052633753837828144801523491678241367552566952489769051627262371836944203714343031642134764063996714552013045654260977299264715565226500867853170081426453458692061051594688474536031836429324576789062383835134842558667902498355729321454169607821260710411403772584241989646623550139287891449791470993464408232191423272099870101075951026520773672059946978664469320342826609645133732929360335194402550330264296006757896574873851134163871565231734694553997605736091071362385783395253040709522847248947369756798762036612587872161092283894673522114332249898057713360101241834242450727655068629504113593676976861104003561207716043503521747246787479832552993710059015360084357065380197988084387596018393241330606933405283181226185251324474349963762402302643687545505058424324813035069125734237795940084883493794595970827821619942675787971389752458589651869891515540912281906391044506946450416798757535008853134211473071325499644954695893612132118808331995953006676211791209104250234671946910392096110040290545975212803243800808815002815492074143143507908510977137160566024497616969525825416669110820495030392957631467785367418490777624047369969006352714823326685908497614595063265171211617724083084627545854197127497292216020174934913030590846103346023206415941921032489482183338791221792827576902031633602780256498747868786728731986177413899556308362492300481604054565042000887029359543560149193447109525744444403883574499164391478852850052961664690185956205196115774743222112007886289410022047180811218338998709570538258079850107701802569282354900159522670199034118342731793776820173245732828460451941886688220623856778252999259237842368325906235003822858131445386739857151607488204087468924914321570209879782714423471517496162917462889052664089983101852271791582763058491504457403840660655111069833039568287759802377217873469113086012596933937933938629832180862046322787968568953118838740047205920892893698247069197002940077096005292369511080809125181818367919498933088182516970091426073855276599198405009236964822379842513461393809403287063622084460128832174595775573072945158115185954144913121056936581711575671239066106286799411655051833585037127071772670126486822641552278698278536440952474331790912540748564512209198664011274708502513125661874205742539475630394167598763534648396481805638976372624524300842271114366917450404209748616891663659182909391935974640788485778825036102652743733845686001343641961231752584939711691938954146150894321068908388468885572950668225499359501034815058092034984947840142927423469248451630530329412671192767381249369514254943348834605382241631804979019608578029686231168810449813129277461169979111269043463827603790866634194083035581035700535002567940212540247623191129737190756573670418083170791858459487899698821722726083539734665642540657165331251863533588564052852383670148062508147112809201510279471791848985951211232371568365361490448880152202938881900558666080477824207257434787209430001499409937032788216454040717597140405250291519336322265576028383667040043760552824055730420596215850702136312187578186946766260541042677337249500599616497593359584143135219186681042152451162980593208798938133899380661638511824408655765135066780246443313390245164871639547386602446867865958793820527409581593949768260494465199498862028172657788930000066386258306669867333381055837161146065175038899248039738013974903040031252759686033199833524049974857415223823133195322843904231934271039070898649495057281752887641965650676011653327543133594946149410795256138704243437789793308608708688532459905026052509330911922408648935576971232427006891067815538080403940091164109870085834287049130346976192813550993716519414238319007818047615039539206789182174243569525250969610231356915749002950109521849962074615926907898027579832707431327827971127328824676032193936377040909391813741219507557020723920172458680332527638237540373031424004340560433911644826605665694756386007625151634165017528250201988639984425930796951730573537641319492071235862402143335908693343158200510079532589435882770041153051442588279787241176207623350259161712235534352944802643267718988049420816471245789104324477340421743280280894552406775309885143931955836288693722882522697152346736467630214610616811589918611002987245619862877651051429897500584900528734373496044037246464549618720431008811376992624978005544031025985310144210819981075918167976774636961692243207339659675285097386820287510157738674273003194379407222120012015372133635777154005223003930251040279594265225782804882420697522601185801915869507944847829084854085080766402905833512239313798689151792626632644005679382886163861756831067020164056690186547614330862161455702474780934040498281903166613497654073054937018397343254311906260551591052301766212350336208418895154963719541147877652455102390019407450500017864370438487387433019297079522204448249254385477762831872107664866700007125594279853605397486963182014244256983385780042344648672254979022464890823618424624761122774823133734720929959128354268834772442716221615332123091557724561605279315801615812397367537467920556566333368221660199138591550711846341330385176250281128327903474970553381513288031439113403267640196116405104374774249923632282971357324712003292893440287991208320110531560612107718612093821229870561445684865762072199143437671187926632229656222040931619810174297495241880116074331040960899153688865230964507706984990610579697011542744426329097246018314625259077228171772304001758190154412168464070791965477531279890273430078327672035792276877215665851473377728646350342143620109628233074399251739375899179083486041006369074570131055419871992779160128828470596764169863472143542970936846636449969989841100449606493917976833918712587901212860970690872564246954718563671917284949623828652234016403240782068337059339785265947786185790880677817734012780397515877700183250105808236811013927780978614232422189887764258329034719459665298518852906237756892238059502185667367053929432125435266924926652902832703994558457086748458419837167266096619114749276653985534350482655157176231044359140612820350208874687067684957939518140936531085073186773438729412466680784197335817956051870780807828131119688505704541030976675304425265134462308770234648529547629066053017560649027452523272846521829321289641500694047549052528308084964942839183680762314048242674006656266969305122921089171323487901590711053143886223234663919331968892784902198936303713080078115621435455417215208832357118058435219088193729197501476771507217498667129929947460033012338140486331115101967778814801548495052108618374068321700715541807546941555378945778386222383891494542774258072088083145363948836861451493830040828550477099203126725795242587107012507302481823142634571252015709874846743376990680491459872325908334300110610319916426509535488019890519567301956851340407952632407915913484565240819117266050090750240501447917174339443262906259276609687143600309287131075695669612589004992401877154683309172964894209295663531162431563616084324122859960440146593503277301000560398668512379510763363915099154254355498418020429113515018946897425538730311094081488430845002817133320368595588702824625424738856737878818153005453433163288339960231157919789540723565519971485993932011962840660593124420673102862268813050337393484935916980947604267275630921395477075355558789230367923802618459850597107575961747287726070208274712098606736952084389924859576198595689653624649413300464513541135355565143330372448091693335064796529580212412697215687572542211559063360241420583548220558353159748804600244267184843627218973441035692497840104925183467536146046612997587923522261302346994798908930031668734321415493738223532511122139968843903589639733516217827318352888113246086201903553200070099980235453136237698507826221043927929121272490092545735719229792816771849607574537837911512204850867683889794135964789266103884711333122742489901665491758273919269602188355364035929407778442664602273280105731869167568207059428836380588853551088774972478401437149855383817372506223849269400124183210165182582160406596995521756278071333883138355215538139565800762630804030571562713422107416368759309556429265082715183054640075355464821984601241833309575592374593498944397286478003767066898993342525774600878683457234238050276817086394303504388548763418452218983208652860201384485323637165937701460809023603688632022708634215123765451429991789912746190177033812261242383862824637519854545941606343558966902820847669955912171991784363045120919937147352231832375997753744053024022714711144588918754052107059652197174058105073781429306835165256421734776384409188634426611830771863444148108068780928624851679199324281981716055288497401823983703944761454868627211866944695791471025747198075161819882560424482985627926200410921720362832809475230469767502961704466069177368887205902669485876409861267882503034820249342755294265647744767305968886751124647399808311032749683168450987076066376130749922656394829075029140857065848127884977414560730721617322212426107345287303067342568302002024443964557821757501815968805255758651462250027488099044071659983057172537895599127459261151575620751653325431629287404146113828566699934263230883140607422797506169279947857328324878819927803513787274238528481523114089787107355126663039046713571717200225880622495641227989098339902968088589827663143030319657264693617811206410786000999900560183755892186407241739547284550482321346304804107940315993679706880417082170713308722845241857059688496575061665565278253583667698422204710778747353712834562820462057446640708304488786800988517847383414753455029029441357818635999331109222596797906386953813475151672913183689718824694070038449431443124349465453970634368058701317685390895462306402087924808400401075339239011782461044473005160485751645140734317176812402340834641753800419593534180174569669795750670192845190680682180871237757726558589086580059763168001195216945016911466224115667431499836888600377831443982288837236234820824626409580335543153098173527255313409864452981182753997306377857109217829206866216944786850860046141369461254463864854266376492322681182034964250308456016257498947770596713982088283658994112414176011170700344690166217115257822373012937162286239408127377050540625474945249621648669430791673132241641725201287901699708840231428760022296806373781943605071865636028135152724777647066230044118601427533419291605073164602667998825406258482345754820961644194549885770055581021002700783018823616185455744963318045279568598423775139672639656723452235511151301985587654365764563585258313825172862752351401289411899843719279666354226991681203774927743202215885999373457138790642188823576985685789230090181281713457316841254986794476985734622011778171620112150590377271190957371221846957663729197275507353826290390486229234050272254477760312951379667637177222147359458073043125243609409793884316076500754872769868290117388258930035332537104047922656741449689733943281612960104888847897605712174538179289436749830792292282623250076096362871643450923319415793626579254040016611955113746315028282350605611302893904340980042989481955716122639402137296429592634915109430915618911474852596156872262721409066412504821015155924595507614282549203433978704116118496030059852977719039711387342156240818639119879522326164957105922136793157592305127742796657304703511444635400517648098273241727435445384605385548127504379502955450522462969350399783440409071528848283453458943745126786854536730051797509872303254760057097522520650854753721058990892386596333783937685767395442345809761877578143686532812593065717980780783066622189103217040741325606125603539554381626688320288670035385256811814291596828843773360748485814581330148205011654290642732586269206275769835076844640627476156919682759791987349220488105296569534114017633738541496026587842981234151356899953497212856481814554592610251904658424473130709013683001863658074913106591292472251526277045795560533904825693213707197407965411978004399849666754655840623479999075551847897903976956332357573943408213622659163244446877927651705477031476615931405866976672344133815184432869247000766035237660887773595332745155500037736245772652664941269309580217142137151857425964637107393944702807724369005970927964546030456204211046377160272232384139704717917616901292763090343851155112079002066681709866006271156229630104463043408935368933909250132281359094968800456927077084035692261935260933574237946617108142940113877114835636649372983572120574447408130424541460750336464456544501057328126823718695019819090397915285628742566799474807581627477496239976838792556691174242256761587610493411963919783435091893050126193617693997759679322131814866783652278110175212918900268776866000670209726692223308543137908991521414819453992385739058563447952232179417909304049201656819603126263862526650151136775099317883572162107332130066146696669798517033324945340604279413888330347233642344369063228942769240872899027767551722761799317114311680655154705617617510955694361501536493563973546725956565989657884918185831841694879166224984197882925350061334453532319610274552412033716762987487684318899175620359752097711268514824132959869693800297568789885256147044629968809897701523085851432424694265694311200081332719550140338766557989332575035927944960857502358124385761027921993606720772153926574246277846207350693004372368630197376731920932707528893484157509310663574509928337160137869927138907732870073756206597461159020994499844990951927601584396813905106773409448623883234345146278688762803076355123890239998644126209531202151819874891108261527570355464023888809499955983963084819994848237599525185773130123474147792490724839585833353611609898030377336138934850117406677487860353031315157709238299316517310174052632039951006370220515314869433857999333542203069375399030986829640252516435784049245490290591419094945210344979463099107241448572591859105077967841237828595258437402069145969133425706896998530296011863522677278486629526467839222593190303182487797541805890325985549382337146383073521609671342027421865379325477989043777251848620691623854669672379625693781746543337954167221705526287490024269738199640131772196623921916346759335270528191046773333350848907973864205141937365880874916764571075238898357114011049188469245938785487179309202028750271204854213151127432411817176137648293155573251138873929396124254462870097878345435621290157031383928681925662137193552328828693422921120437878578399745590606137801969552369338035146353277421065987005163572832490594726523417829153790990341157491927588337355712630623392509091563126176935910747174093612664073803748608976508055615498283786379438845651487840262166833166711758770600686542990574089444902131178811999064031711278486198761178734742072176226407542380895376886925307986086698393692747591120984371197219101336483520392216797126811055508330750863255669490764298856068885094056027169571147244383999714525929435506719071092097054602793768098536391588523277163058463349275531174140339156855915417291504975175831035197487537128956293232684566843455684199923444888327107568980041023090767921915671794822221233470964323994229467193810487375661610257482863638275443457429821628671088067053628068648537755017370102702374701268706429585637666051414178446456985513472254576501445740442820896278588098131600034989089746446596732541590896656553870439308177917760759393794563234223641371049212946103992982537718877869920935917994832717460488530748534911919719094967907854903191050919582782450740649749174267270877961725233962646293010827509788598077280685490615551444579276280196365348930783846102166516681117133281351399686417338387963660707443316099438826630573678747712745792450345507097659504393515870274888159139812918726674691433049193890673436337522028696395318356658178098084485849552110380619863125855281344437511049769770092048232418090067083879910310170489314406957234268707509547577210168384852558463354001001978727879964463045014013550684312030164670442619319553896691775702355452911141042787198297253410950326183058220564181644095267026603859312153728215434624233166485961398045775276545460945428838191751319316878901750181054670259260004082627079218820844858635597695175073956778685809466003264052325935538419905578397754892594378725007040199412490106479217038140716472436116331006195542097491915842696371974528401402904960918027562006566107486510081225717130960065508458731867754918035246534682629819338789339085390081544615003962977574269687123764327037520938245091126938279327835060724150456935058633646071969964434622677349871798204104414663736949626129145026281201084232005210725527241164445449800782160402237320364122160385782873092281009590039384687423601199508365362793322538141101348442569187801885189876310622346885829680070397112723213961472985670737013377667944104438275756411125207752346657306566514749785576228955281875386300884780016163455068186110339019509781349838882496687586207217545592921571336389024403383034079137694761158797400025528826652114079354719823513483469359070488751900518018381964467677170669804832800845859209607345440205214314654899974218342035401116570681237050923514508465046537537955884894288213250300290036888517938028586428129802841252637841205395604970795038467037144253989603923585966468134485167114988697990907422666728814894796265248340191216753017546229010389748963143283989111332440330932190706436197950753575858728778496773940319915764539738743115476542864846177319725682478389331824376242955283298814034976898509997344860427994368923883396527643484052848439401613101625192453285634241349511310773908959150885745858504865446024208740986114804596692929771862961310163367587331920989219755459429009729193684793206661237931982550978819915385198138066155333551302375371780423840424021525072631921994108509221821606927536726267476090015103612692219635144934975831411200416378824769006746960940788529462474706291888115934455536248583637618151981860417291532633675466590032447719045159326193577469063689490726391387161527511490356097218850978417646564927788739651041991988431470940814012510549715576195049382091805279238880895256618378120479071225055440201935581759262209279202175500549183003165141270781747216180943395444221869191521240369260254434437827434318245470696203932454570454901672458983754943966565460439863595591590612130249577300989579272062079136190842584124245872941619935689179558047248769813074709423196002598489847274142298945349565681516958399412756937380711212748243680211418342598534511024227673512289227974136510436480568104331578212836806662130293759087510545299536260869686937860147487378187546964800138370681744747838759669740613433571983835241500192157643979270232462680891287453913383925348289570373975242779111961704062275715958675576059394896828969446899318253786096969487538566448542728507055327862629373205804597443910868634574516329173632896864913142185800635922314202904339461685679380466322930649982872272921915537451583563418400618395851771070846011289806110915609423606247777104032883862575260095357110691089981069921644421183667944610552543044479892953160622816990539289530662988176197489288302781370237993195808497989005709688338439697275931986875976712091797093261706497215107213158136241911141481608108528605998691991682363410499091818717723549470871975078742926873917652977573160030271113291749730468405528458506644142181499814050103856055620350584759508072027511125981158664208282189846172694449530809780970303830703467884120493891275471627576985482685957500606182842616673007663853404267883059464598922844587725723328799057701797533481813021912517892427902946321559900405588089016354172249027710303278418746644740471042544475590367985352283722672197915756008291891175368567915771973265087680784380284195580877386311180489583618531757477563110371871947584856619181084817433589726930273236375111513563692600770754155613500051095035147779660859663600345772565385078848364352841244672819898297117207831018857402371799439123017597122744308464704996220953886744953921837597669652331278321205840491805067529661534551769353291298172909726115943507820988610690485843599195079608502837922957299261664276155853145791831721602398331691942067707531470308547456768755276714121139441218322391170165071795135409910416121909528409964119945484760913789234466820287483302201468764795360611826540894158377635937771006451801280492844666309122723719229828324795963953636849381254954553752312558187401263325841591207745131423903124014700088613024039844928597528310987858532424893002032592472068885207815317220503823867837616492227349515319192516724619507277199704669020602684309878479273959682249849668021697934733279955652485249834605164923509060634250791913599450762506106632613943766993077222003180656454023180283672203258897323596263944893285771383953806860344819647986514812235505433611101768070745121344834150938487898601618992274271586719751434040373049762130028140664787829890311479275692417544915277347076843388879937963475449502193637659371917536420521562360080777613884073398106389230952952826771614019935460132140627006504212435181006604541642295434524841251970546990123484425820388668331101086146404884293577762364361438673533387560144076117450033393089289409668043297614377498069992248988446841279778025768850280561236923150282749895855970326601657679562889308460116103026433922208919839673008825746201294269216943549560823419611473666761019211977737135526651985805015314019351061293896563577294224614948690690828926774577911812651399826641835241058852653381618551445136500440085274147269864281002949810863557870823099093542863528448483109578625082720670948976861663891900908461840638119249618686917094016655675604752622638629103471357093254039789389611446076195115461459648261167141107232916148173034044263705703865259185798367201654904825085052340276766288862337354248717085537366962856708247373222085608052697657049118101007807883433602044590043383262588229459965221442016321522917736785273399222177208771571481782822366987521637955323495864934134320623009496110092607411629257937411702746092442817510908119820700953869138701748429451825447819101473870999870998641299962641521583285345676828492780304335105746754027612700070589518037657672359297600262202848122760398943703286457129826654439191075666240807260074513630215375764445752842157968595085594193420930643714708922783086015901213585874152516357291584143956450418651121026547948156431403920697932463033968299449611443181274557217030259287399465945180792476020435055134166661708693632684747782098143885239390632931908860788848779450795987860660984087358506345511315691908723783752650827204770641936802126800952766885398494097990105852103171273249479123577630801934230911969408430870844366811095120993421140459959837656677172504192584970808474445114892347917864013437145953922483604215856905768738773034779323085974862622140504801565475438703759835606998065443640943057863892934570183166566713600748912324429201619700854675497676393156277114400121246183140422348966666324209162121747855465237338682078160886560720882180830395677564402785417558199895436093950913739625170815435090071196733696651042094063784554747403039954496040201285332727631695446633589019462256855688306685591027514295518344477267068073387474785098965631609710939217740163786783459614793390579603601771213753668022521317861910377541587971251672392022214814368245888334796780599113911512500464964587178788606555206015669175715519015962997615264742424792696553663045436040218770687089927891407057573923812604856156395563121747692370860095665668227553294559261618511812979064006009323301445788776662131913940360653875929596362292989923667019228191012323264423070693127966910958081441313435153407695657388526615813318997901806576513035518623120789400920384558803433239055591200168152860241507733626301838839956646837838449532540850445659008096530433281997064415603553717216665236037977417738928605065945759338728914775037384486931625060786317792096264702404172068358671519909767325648226614360349864550886908330991878486605319921336480584446801826791393712588377618911744948679884394411682382662425289632203385266885512009799171102080358561290208224555813126450768703556575309977058337346103991682943844792143756142154424548647565085832138194793662505457698897340359720467491450006134877430521329283792479071216421596278999378436936952244792603788558348186303239840442612154299281818103616991917424653583622587186209312556015382234906665863010470609097767660588713824432564247739883147631821948522133824430295102786874217273342862633776584763228956936945599428105525499937172246089297637096638411571237603467272306898602044336791897553004260739786777790182564967649981230673240596578210815180484626666122995972200812075413502325139515091124343180975477068137035502613848341707779990965317086869746641129412219232829668209977768165546666237078350682503987916326777208522361511083957711480089445306820994067599086874909954764474792818453404165591708930794987334174732892857007494136537371247973631974660162679896328445926518825708386959973413604503168716755487296093324892064201864013276565261934689263948376937922986718207631837789952510647292289716188259665170761922454047121906148382914148891858475454748742169165651523579970540264605135851408148038694871728548611536982646908487793838922763689047373915099519121849141951417464502025483027141613615061986721056430152983862474434671318984074938657487643486040809495006573909979332505010805828282863585523025762755460774681718617630900254223699726164761822573559014604856569005118857630602037724528606498233568654983406912827947763425342397306868850994392940735891608529415671056687542649458088573633072259934784232309942493260601216920736346033073307983876465471571844552425576867490194459342857729301536312620291302101554861807319070896871025626532166804863820062686115770386287048627583393652885326325672722460455239182928364777559630251221788982097487442769366507293613807748179005372218504916318239494740925497653689552256941140778812575234037581101934139615902900079825920950630915648146524285760107796583330737247906441749309548779552050688083092424306286626733191138684089338603184456573197660378032604131045490064366282018691868393192314811151937345433543858580387681318469814274100672847413364931119860579534825859025323193013614018403735972450024336252916177925998383557826865319548318087723095621739982203910879438101509883607618913710949349903211170633068278752035304241245141087269651013928326422361885416911810917430671007630639698110178584257938472593017506687400412139049234471721760834207623596987869112439966808618926987868900241459370846751262975851035352942526404193241398641516166765901534653597801789015769582745494544325651942907189048751579853745487201229702460348240358509425497005982855623304460282044902617711943807423728046857716794119829050513790084918832663309109996339720044015441257142330238609733134398917394062918956148332680401818653385506737915708557331142854846391201472037808466270561964760141674513819527480383044222931851328243258041180877527930455411702238590300095857863187020182286396606492557991023260497382920681581229924692443848401509536915413010261310225328164190998016539980601814274838312459160358416053449517559665386443984751156314250149292367402916503406840978454317787567307917414358780065236037222524230293279887536370166732550160909720908156430721219834722680668367977499258809481742077922950658855250575518673042653376269084164622643309699282790438008354572173880188722639581696790685426095118850222995777169773795530852896901006986186793898465062014915128745372785544616983033557994751361675950792226504437531063987740792252796989451012431915904878031551793754346388306181121389185121967643290117441225913529582039272588494539162446340269232943641335622559877688161769061468950667124128904309527896916928660514048862811097578578398029242196968669279641064006888445347882958317940129167584310645362059925090604039509994264358058307507056063827342060080238125542240384309479993385759670363289626312639934603590629455690852184851938682791189647807684146646438383750046500780200540828104676894366943021882583184955961259911990331718190901609615125545813477238460233225663874618406446950442276449965354054015336459993575094150431232465428963278075304183659287058685324443321922763139007080327366683824628916292657938136198656634746515895584990300416634361529844275605905006538977703107886841349865683804283636853013454829269742703488894360382318141421109441372615699809007647199554484313705088867692794723245842569637730286787265869897996296675814575143459246933408290846783663660952094355613292618659181414531049794070362423522700492936781679459100728692819471705988343189670514008252155153728282437208899500446122357908636029060745959140280321886410194721300148373639946787136601855672979786264094262418903557517003850588537524911305781318595699098038873857118647968502878839790102922192257886595430503087192081872290845248904224516030559491694451646608544037556446471775131339717237335519785889061319067795988022526868372229154733139457888785350449929209790671827579623157645579645791623823600065135601365089439113087820183705632888705549798116882986623678211080462517240816702189862689674552173511736963011902084306673034676589249264755940322489946373364676703783621432088731580822120342873595525221644815252816283628650996619089922158143264173907378010637667443248626445103192637890056509100248238851595114979979941496238643695021260735974695519057643476805074148932909786615892959652535723493159166710253461730886081807774221875236916580784436785787861347350541150476454318832380933955265465527194312280719197890868280489226574193034233133430761158292892621087636230049464860102654251693593954844277415222299461874315940053060659863582435653015991425489350140121668082119840941854983426529764407760065819296423805737666987553549757100464734242054331954188785843022859901542689135164937103624803071016306847647922737518628300514913434522511922717678213232546555559896698104078295838984637612044506524986732322569675799847613531266032007909427953817000863955255651710647210290479657459359534593726648714998122974409169941677725152400020070200403214112719949076428961210746579447413365430108008150751033912946923124253423464069637960901669084024998145061121376631898527639186689171382424311579057578825305887364945272234264163341954215561871779288590847255358595726321128918814789418627323002676947742445142648260518920974904465070210281106438049372408374142764499566828532978090563822125180131354642942671966105677307136716911510024691303565554453472183380922133117853249542218748589380744507289958058861448576341419903977118457147904243217629009645055261944678185853746046321292302526885459116145257317123822731694554388935055178746187899124092750359270910011867950847569870841442544150578872068115522458761874391009833289006505929870929310573601313020266159801379629874334931061899831205567229049229641796370091113410292424272618607950591654987842463109673348735070124834326438209697859851454836444699761877014890260610562997589992664429624441425600817166132990017121478247944093400598154629400088130303317799060998609640967240239514906422811251406056809467051216500144276404132504897840862019755300242089537095039444202626700453106013297426762886620661424902025794650892227239027404672784022268761101731350757135714987097452957692744776389497568680831383824820731322255359369407346992055604105090392730077724958031150960704705226227238783485770638057079909863153252022240076540810435253870688561180069952999218035145185014324645568408310552934629566176713292964272258333791009098533439423876068558927303998346409665815064120201035185141498926618989762706289693487796091304758064059717315052867886238756192369827737792998521369266775924253701177956826346878966978856166413068697283594229862441226709661449517116701364018559120436649819373000863644307364326903168729592088188738106623069940965167808311185428052349579272984442867336941115151667502261238814867313808779881490651429372962367576809737437673080065883704431577276311566963960006552156719979870225954766184689317111279558288135300269332096425360100229448270045199117402360990453639393517064020732242026718371102459505355106566065468092307595210413506065749092112245244976650142428880728918265788214376891420526739691440246938506393778971844900789429842931015964317644903607613587841699530869027511102012294050813608874907583502130779743694240595372293701854920527577070075147372374289367043170887477429630998006681035451214258518050238360650154828209705928877143189373472761920859341155282140034595195346229654954072998081187281744428262411662753897321488057031572212705560175669920025677685593210980520482534967721330420745366081078004781723736208997160171263402549399912189158536208956551530144572516224435624159418919514318999045782762636516510702748816839752643056529206191823272565762659982907190763980907394305883869898190581908409535895779340735692122515258980719674096803790314368851042305099928724919588303572394732837983180506819495935832293096913135560077591549365372533835549244257578830254956636468313376347023152016009922876829704781338594547066393154687898252142723613733979961068419185864737398221284842999040796080972774424614235107205392857941784325577181219053953875097546452924332323210238622505043439482094543933376725843796213662589467688770147898038424339784673976111720003213899680048139179045537504551138944219054046938906334192315847509736519294634983302171016093021545233566342368213803686240704482410577227093098426244510610345827116262666989357607957786912760066165316092029689598834709289410937155218303905091033425579224618895671381531136977709183745337018009383140051566125452591140946877241179229396165439120095452121159572686974461971454272252063516697266552761219381939219678468319604529576984024767931622610358321308234231137144420944779338521609028046232529361417627709004909653089673180625665586272754691364002396128002456700173848741781567699091039181088338239808156925597824832683010721719696949239278469201875045261579140275007593106540794892073143894880046490457935926979543780064750097649130455405113666505991084913106124183454841510957068154110991822592689978834818374279835693118619870263041167200156237588560115329084575288851414158693402945486093860056406418461905717363195795170191127164736295969900747520656359347486733226867695147255407979969540241275171986142253671691912620645284086133239254406170305326753908111925903718701174230210221693179188667309604409298912704492077071838611628106741392682310586181105779461648657919653774088361358036342645844449928924473538382425210406193142161495075943206060253570049066641444206903269384267231899653447981811197227806593806839358646409281998486991061023089779858852468548024128379733317764977222142671720523042182760561429995093529557521152814700163660192311411608937839470456047414072857905827070271963808187590005486128662184613127615333476698759500114106026583842881904264664030921411152107254424139281548436625808274677687098703095856103459241691562946421361662716991703499639735783184747719579667514409786934576134172021167433579681324027824726236743448880358651830878680081415622063914328626845797213478777755707991960828911549850386290064736847850603613422585984745656626842734690456506797121567607464866610856425915685631169760175928930855170548482947753095389412795873104254749726330954892438287358959896153815552199900846411104905943975042759702500855875742263560617341746578235300609454415277619106068936111192634773626878430292983256125168550595978661230085209359350590344319420746413080364930869115267445901849713882761893353576541246150150394424811945875653917699601609424195861922094358621303153600597404310162341488224777561157329094959512487739405126189047292267850152268597761517727638670248935289624634314426761814741679712888775463552015840286899504958207587283076902056539871863556284952663647426336944451375667754553339047067712212568024697905567984524072785217058805547987536063883152492025121702935949424718104817895245739155299812427972204750110262965930481652494969361535461377091632331600869076148056227839837705260977094383628487653895986564916229498515694044665109677873162623254228751199677484968374431030515290035811387083618091240907117590232884963785188614833717177237497401626914642508974556906399864142477114165890653357683407750345922995541924892162968586358964676962659380289208187100145233664873073258924855429648843469407805234741395731197654963857427138512694924730044028786467176339039923076391879239538019185111970551502145009313601453561720366854122419571463580061792500015259321070852015312006914529190522214225780899644051788991027541252377307303831369749608599740638068580165138146922963359560590847387418446979469420149277302764654976892762811490451227760560238121349309885050675697489097591519343786149027640387618007405613233899319128361837772077640653875920338409190668072299110804972588057620360385631942553113685299180836296931029903954752189262657635544794161012992317667319167935850946963754230979378564376036652916319559305940071562391975518471316149599241553395383042220597667796821302494771939978865650001174827922629386899967290458639725056736300250671981257253232643195201982738770852202760734520877991569642378873524005729780637042332522467311844067720782773889184826915482145574962932973374630582219693021187584150243821250820336720133150191941510370233129900654818809569324479337230570228301776448635448196431027439543913220583020033856503640988194932818566992825827308067009373507134609687115931397185757036805314423382489961683315808074756551772727804175847733698310148855386308737228088073450181157194712231547832280369910036996916495517076880185456591678240386547906843166773112390586905742412306659840292013424357904318237223075703252327674745167490016290611367944619046224097307414892014500095787652913435938430960863946321635908133453924068326919761619637275824680054014052723584396149147915943599883496523143498669437144281156481212847722969400586106567449111069442805667431406949924548018887559686366151256813833501494648609980477822112917459362389915186496528331051537506675373624835334710088249024136041386416194058713070346327635591224595025110320944378170090383147638308532288407536046477164449510496138912693454903702021059911702517841877646261517018810938226795430490897588853218989028416264552666664830706319203179209022414689406208376231036431118474707116593422239932899092407721739364505286877433136158027197198869111212086914459526293287896554934211525827481589702620479863595447233397286523736554152017316498757494142979535492870621169549071407724787883481557222963296525282880977892686026586080996940546390655359324112823947904923738955263722056022346259696042037315188175373739274697701720763532094779554753569652782478635725133085393840705983810190442284445980580591943137652173434270295794147696093088133501645700653952351057714238635816338145835961686501740650420136363520932585787938753992875292833317095666999160401777031995428827062146696636702849524651382443583787677179204106339288418967673547943987455589537846670919555901071866418434282718222482413907378449838116012557785824555842856705580894128639178868997863039907718664907970398942303573406275585378127393205651490447738912236437110750188569138834623444093482214658324211506858456869729316720693033059012748758364204453377642964222404427586854048604657764507107255108887391860384603818492471955459898017239825330706343170913573439457721853594862265563704297962673548451099403291255313007069175664424071117044814997168071433095747372341905791865589078542840842899407924175345131921036383130751373183093078192412665755098707681702524310410149891976202191832053518108703482317381138491797469623277097923657424155195410098142945926850045806150579344289628347503743154932722660741320306540741040617954274101439879170559922956328557771866891083071257069243967251494435373318959628627995422774190543833920079379271442070632732502673866721648860009613557840921488705126575205731880719086105055476763211459250409295294640289595321526171053394231213204790796780192704264508225242836392641491886529071702966622641207660378353306208976913340784142042944377464546346837212367429751505411947355085421196095483087172053081591254476238889340236741033898162995706095594671855620677841895978105188657932536464247127594379827610501229116364769311788705036155275639858580594465743100971743566464967368400214464248903815335511168494748952631513841088067914872247855842062183158046245545856424751077980077118507373697549542055576313999354691659474509978796762371867682900611461049899565075810335565684740763083433897405928599956602019382753201196792493505167477535639990946191520637738014097059611437397350019867144612871189848443648890076065269209920826088438634213168384836733016577291364594926216363274919456059654794686695163963890028127730658257618256584009747660342554512984108331031769892276390442229928310705602406463810771732867514200763887341836155482818452817445899012429125582040022402437828577803363018269827863991249695567228521984779890343231218835921044248484999277088349973505842650724638789345790427244020078839991991935068327097294436403623158074842597040560794173390410533963897029663545650824373683657867816533814090328963079559312863485815422890451085896147123631535695281372659878124406991896253161165869095852308922131396279349116492188406081691732601951143064402170757609270849021128563541915022120656312123274158726816727888285930348241009020545197612104039319163892273305948829222689263064936966843439433421014589642637150290361391844586743028546704923437376907230648487267263718081194429101077604709919386282655966000518016201405950372593742653831583724097326182432040600978873347143960649748603321755322387733098620304946504657139644636670959581019071769713143687669518183387245850937022717019845125509990116032276891190182539797790638646911941754554816191997922343634483033833691087218273384103937590731539048837556831227296410692631629098202048279458290819341642932715695905778594675505739704737384772994238387427066734426619982095803203871644177404433542416407478977787828200688815463125593854703003416847120138182728209934523692447762008338566543002948812833539741089539326297726908921458126549259325568309603216321788669614184114258971711573981313505928456866726044285934279150532774305346492831775776884358489390988210336399524460787320018601667176774535194814930284209251298389911994081222073857894244056957334325680242613410860003971021511662537750038026390610495394948404562544235700390918142153176135320503930429915306634879435593163722379240806551541068180210716558677848530804029892799029220314164762278024346729857753429821342683418921772533205340628465315012217192169540047443174588427098158696808827084951110592699044425418281775968719734889120861855831762950459199094379689697237953696112599081879976149412733089171423851556645385466102188344292485424015121323169319447048847374903521161078536562902368174053454424005165762150189861260940750384007556863944260517309812826017776760421970549094980934632099733870616621189337322452298433601827582490306429742347449146538772816342967389108813800143934674107410364160765746345864255473242843627709096075711666313778466195512622886969448784918712388124970662231840295740510447835437315715654196385895415271664329813850552164529889971212500063499840180707724362185683258648458706564773116204983087980248244565786057035485704786259160446882773133897323109316231256365850291684576288836269606969249814787193715411717122088368338737848795135283101639680434789590029247908297005930173230318395664445456223221976569294588733075526252606101843832618814286288640218470009174838548350778113429215864946290738940847762139781485914314935568631445006867358694807047260273594065982389469012407418429853982298468094498300126831827958968211246172794119379098529712673365160645767489320488538013919223326569969935582139226388378935687002973901169554250316274546985362103510554737485826056925073902785424306459135192523932210236601807753998404736377346741112980548709497667899482672990255777551383629085536461201850312197330466783681854191657134494662276442767133100302225613577707865138340931551070986645252513745963398174858180059942244122621643218171941904843685117547985238587170750190155486516856637905621047744235360009750066568909006917911978445853325118608044719246684445837250097636381397005938367093936793028452349764065965342465677686137249657463261528455729131789297221304153511549745434492481218170459608475989240209692634835825519810480162060680065235413852815284637870868377243079886889298004130706382946415420072726791208792889109465987409986289835201419178281978280022858244378485154124068992183664611038467168293868802607350942104960865793875166450945486271257068864789694252109746698874336473377456415488022589174784800363753279248720944171589829712525570884561087027900394904985817649236990611138837626545221451846806183346426049772394185743127663637095235015598025205469144049605132800329725207727492467291040421445351260812019945679283087990779297082799990700053036586498051373640612217335919278428861549770501697965804344651385385556318930408912561814228312230170888226334504724759128884523376004531300086520128765481187448355090275058485791182493575441430980348348916692273053515464495988914934950235677786223097578944042923510302786336055623974621709292207683831526269089648560154034793627911290937522831835008369703990120399216823511240467519498653465861809022302302748938793551188606911552670073082385497421086271132103000046898094439519540715952755897237980422020530434294609904140162947721730149635121499007260683342814734827900809318417305224408193315341917462497921769211312190782094217640128129597788670595001320572836292641515538581084940727772340426521301123273884922611566224647240658986617172475553325282045365692773203531443690524000342234812033389104595305141472847013134793979024213485232616606613342999741227415103711413108020448617371473749339846912032117697614108402252898959809216185173067793926131532323587090501286088999390479067582522929818750873624540995741315038633064333861448102807601853553309745961404298201296930548830983897726579488786571005131082401406153436010141068363418389798458995206384685892754885457919473478644899281002921500240475156179812433100153788196026258899594269030978117858365638103338707359569113467716129121804390854667390297172140117703236758377896690179897716696374007397313045984609187194599730944927929208251750710599095941516970562178802380389476451230491461205882496001216197080254111834316616879094871412706398375184303310120524482714855618025549631233409849260152740880562074067768829833334509534518874715010249768091492277527237729200459371296375975463736842545480375529883156095972728505686334694531778974323220107176793650217810690583058844094650089245420114422744356828147163714534407573299774964561673520991495192613332127232650612883470346440163674901144605504060101587863939826972889695323424936145657466098123196573544483889281934046963982631272352770307930879045652420269680938395667957585506854328152983280738121598077933123822183967736429752184272079574759931936598909105005788380097686924966601812043346254499697133145030486453049201504764317832455535474475790996547288357572213817102783503818884936462517059621687305710030035931701222046945054782346478518828878754379080534549679384780460080517187802566614762517237855018337255769746349514386640645920488264100213596361573183889418564780196156051028243439238844790217580533059189964494102315236448462971679499310939267834702484029805913615750638593708401857646643571504595828636484935678720330428293883941133482624827859909748419640350283589467099071767168993298586988190051999715388308796926854722696172997745727138091254277347597549703323383262914554235149619302096727301968949070418905817473591888708728778530345570507422019690692735665904022802641626553967189782047731408932159001407132531243539703638605831839406195059361227842536463393275221685055779072871257274383455123762444248170259450259407628524673636638796090025763924123934563731114179423018362459116638186660401764234274566658875393802677186048645726160259391537177012639576488363870943176654361660389017721536773052385934272587510306595475472937666642638995484648680147274577780033736542301524204233613024761608177972844840206260707492138383009896624896901066206806436861839578136973178314930871573952144430211958278804822162434908297245218043388888296078883133273300857820981932666301914615599062601020942498348842218747997855340014029969105662752966544507579801676963308230971482916724597122843517391857292274889165027838589957575461762449703068760737087467288512892843037302965503066062320996547507865894937912750263103101421221659420855427143237584173511537449023850120848448994083186218349959759127669681005969883777202078784936482102544502646342951256275127239938577633345782665419856007324841519912203818445854759002744063197005338293001236297667625725742900177851659188607326033438787993588509727177820289609467676155752047840983343311819149751946928711342474677775295964219012581272610203167098425275703094445747041700567266010960716920017674206365717087863687769742687353260768571138942860287098946699437848829358470924680249578489771142231800531499838872155804284859172717693741630378006402160097415098053414679400938847269450749866131341826083929993074363158650055925091810416037182827479892472365305299645669084245728097169273354556481955897671605160726368017028710083264651649890314084499972999630058246802545197193668001518364984830376392123865748424420523835171999584660347204976878394633561055467514176471232629978963436559453676034042069615088117903542210215660457258146180298485160927733941509403622355084351821950055697523520899582120595199298067298163561535032739865678041162826011018894381422502515001956492182094347766676048739507521720450686790354408632787627762197638979614613554157522975548902212806861323547286239536778138237705599647278020498079512926785019650643024388928509925950815683572305378230705583817743726719408070246786345739503217193343811583166254855996695190268981794397469512084316703219435669876107293819580071283157399133008156389059171377482344169031228423739883238313619117102885355124226025393979960734576567035404139515115801288257841007616814437548488159794094421297428136679587897024702801879787856750982358820919204002327601403210244080636549805688732582315433023547213792558468775848216192578845548573027950591476150359422503176846271693985640114933921912766259718669022556156219113277437334699019712625875671715647202313503425602805406025488478157525686929930161909064737424534256877477766298231455736372183627336434308292970234264594225755475513828403415402659283486314406882922693426604328252620865055600426483931597111292956717341814874018075410945720710293107099932043554176434646313721132271880001202866705328125695858569381456312168048387496760809261840902487032238336614527322887642815501837605060462970486784607927609642979664194036428265689558435484777104132402778177548791472668479257744179347579030958742320080128149540410873471870896507117982337592218720454869680848200233646817486709876321968635331825417821092901628722695251301079530626259226786974423246611741459480835565783841631894102878333022614902206601653793122869983923558504212881391405964168771818731794196963813036272493270873534366005053332506104111779222534340218989045373601195272945053316993753875491018488744416444874717026090078653343164778259984982368094127884356361388919727111209874460116337582296917225971901245662906889740425739980907199655163469211014731264594584566722114277120099648780448025720200690650645274534727884143462592065033173783821796843104181000218753096928790556010870360278286350215298530428829465983178361651809322970011380073064436114295287704947505581156867499879594859013254252302137481330843867682113684310336597108350480293923072965507718912270764937055968813629478149255078822063952570884290286623669651876259935209837546652413625134170941917322414145062504815666922485829171673389001545927262606706473443749430552792687893747456266317463987777969189894424407556935967428611465929843204547386714433902212925815508134590717665267121095542804782129135363949690653498701090937589872661417578276267028903717882970199046047176480258892058295511301695599759044110175677735515673249405556640344974359213901270258613928857269262619906826079113465923576392305890053334182592218187868010710346409866216739022384722865167778643395412520686824702714667586805992121243393713372832195932839683511137720971777305511312443394325863900390538594779074860503873890907397000341445303588452018432224507577283799918832430860449292886749790424664716065457080381758346177401088789281621462199921245176748012824454365497583541669677905732371483923636177066130682056131626664175497114160587629470346515448730652125749550004664047194535183410553283152580356846166396606237567826744524032946579167249334080434804634410166615440314307375121994040045894517551026224507032074399723564942886037058645459202989032006565008091698249769110059234167613218397180058248823922586053555919781943750819752938205596444605224044179107329116610699591759324130603572531535062293629877603556767696370059804874788706895061284418051922436908361815155693347736619112580109468930753803189249267651959545671932635751295773212442941542239549495179392506090778457299777800188987770698292062429405133960959199818906478625632556810631079600251331885422511558206151755289520072965747262425674159090685094475420188149687094751756504684968192228488415271785432625516378292940182843551042455862341174353723673051500604683781009308459425730724885671505095770579610202384661915206079568766480269736032039637860294211201679508607415075671695881117213036882780776294281366224397392144807969542470458240446442728951491714734009119561670257076627361424846245156940870825779404503748896712363365865951844263783115604195622547918327801303103176796723499097799650981515223124973191801339906613304713430846365188142197406570473714501729369383841301650199681020855606645485733775455070815156406581852391049111992339416035230258881216340675509220602638901495354263595352412467968499752704004819084671036936186789669762887616521969158698558099953560920417677328362767253977683324565167703803826780039150545613660015366983630455587020596370548588813023906024785350521237854299729201708711305673564660967012553807485652009889887407428370835598569730894544175262725793350599806962022603515899186520376348186787384921954993206924855446491360416497250008905507310169824634133571922379457878026245132437693030155681335413428037780214277821819001381122257705346811162127350138802680731097748705745665919549325861343700129723506735141204742146776512214905087964715115882448201679836162575279149621403901908699822888773425457667941881081086939947721785520496706335705412077035097017917894503881098277810285531780389692743980859696971189466191557868584920628914840542464450341354450598201975278915224697024061106955887125792844848365296522305929102715793413142102458416973049888264463551565002971585766263253716144302801586311538977988910021859311958500799675564084975942520571182432654506216788216621043204259719264970484630827183090954767822249203768583687963698398434224005013414851991334164451077459687567467716867655277981140816856944611043537889509535372212790098582130717404315976497752566853460653837195524190732496143983022595701989392295379220391865157638611733242731471145165402546368548524474261801937832115306740118998126355000983248637695778715274034358580416579426157285888189976713432432628480590152932343707295067427013892163295057978596260466321212121685972877894738915379383331523332942958952964465072491137465763931439678780233590227034160208271224260753801459506187089337457356268361094034748378428171848973578609253637436857666263816491500623073565104210828302941780835995721201427836785027896375799728062505884973083239918142412456345238245295446304774424368953135431916157885837689143616109473196447487980291848097425720394080058584315608811565660389149897367969962288494606297818390799928400846909359374439989310992990388446617361949327680485706052448484391581314569662319806718425005992696464513057245397115496763794350493252232769799322077146030939712212636143508953807159695954997797176180689626692832805753341419796179150471858637596161585007817071665534017583613257134711769096352651920964348801888179287960527896003828179581633608146332129895615977887764804045483656988512506156972719154735317296071150452230922206191511914112068855469550745740412276014500653720542394801714553440813257920615667442838287252594350951188901913151558866619567283606587944721521523829292386117459242538869347466754819407389198578378760468617780085035163811318230447896040634689474452430522031506236565432122198698609835855497066491157774923002325606707962558206264173125396433749215773905643603873025765313552660503988615495456884713936404243846241015899329033313805653989832468651616823360625147088818450376105544198413986642488441346742658725108368335820529604381168085773415176992285139780377864717156671187716520852635111781483572936854916773306539964095757082985013763697561282448294026190575704786578909366276288463483943170506350497858908546939334140086910036932408414362437500063977707820075272186712358882929402447216796087040433993684140409668781256385611435244073343275678169476251987708475281546413998283466757688050141989199453488717383775309667637557602117656574826697851934217531608038741654778055990146944505529359983259125991126561828154744693573415007900135263923160433837655330977104311273288190910478557233085719240357755374475199980947264788902320524199864227038921846675443701135694561443621741215307568054956082240978843458012065800926962033332616615714342496051660424710335868959132539346244735801718906890138818106139701391492122517046049265745777106205625408706663408424986036075422386115584671977431477161946455172116933858514093160788446775439824943689109942445197995240145095863577585438740465769325200907899234713397806900195149631280273044592657612840543053255116453005550315043980027516002444988732902359956478069509772097397053743526050650856868893425990365496513358866453332300385180211686077553995741213207394900921083390772460750560002185754535282153391169143687741735527959983740389956801087273249777280526092955372434366575790482628101192636372347800475883833542500453858637966556693521411034162111513095876222754248724841312784102606281654559496522878614813603471817904814440444791802709378122990646492309361035226026821200119005202332953204054034287512481677753464086108566279320946822362831571889899724986643810374218513516158302922729072923050100161400171830674388043626820979013801819624014790937608200830734215662087255789449667154229978461135055657582341317324079358417877507236232430445172925674471631963044804392945841977581954189004538747015392341320191934751302179403071453372202607213386015352242372522557598945049420350685047700850568952911692897660212675818650604483026023918859205000649159369345230873897359968760915823274054833949416584912934709072711192924928264365848124512909080078207206157908442827126744674511188933885209071210414583751243361681556716718039642499035688414248915066649946802171093662252052614825846962887149836093178420488488302402499293088970621786968727781333390607952791439194456027994421565388962914318260622698002128772082001624857281354555576172588370780784262203041355249667570962720547186641468410575090635654027867292804533991574668391283193741479687522322037741332573219188769473405233374825431313256561855640661084080626219462468376440043377512442331441807890856871799459824635530195564212347044611550918282073978774708958487155133784426532917441162612925134090899834957483292747281911386859702179411151168415767216246070286114126018061935427407033066961131477274994602938635144401518159653770859429323613806773099289166593303650521975157177803449942105147836458450072383674890817815686734568535788003525251883562086125037408000109716337882622849114292435860796642532018835524419123449873497309893483709380552073825124583235294466934079697127892591092303360796213237461184215083773971630762461931935803887848868279634626870111992924778042036208659603087021200982230353630829187934450519598473935704325872674887443774497576789231384850126653573308248316546168967661582620024357291011171338429484777390903094629799936517938323351424988814821333934952105618095472124039870648906280942506935530093598106445905067391719377839925205288015572222116089315931113071416222105385086908368628765054236189971495213388977672015412315269981086987867913847063084908248439554924327746344865327219734252545805984451519773985079052311533668049481545873288835870739228977247515548530430396976689567434411300023290342265898114231535788731397801442351207981337690610201287052120190770857047829056690409782103659208716994475952158326866027550842256793649277669599167024689990058496727106612254635706303060684083352009623663780490813515901453555175274066607342779986867867984721368963806641669317828233105905699813752749605170808331657418356353233478249593769724231418837969752906003687246240600399801521520362980183733660885579133437441938110418234552548062468306439169701594843200253439134394465154232178093842884598598026078963836812769945965138069095009378485750525805708990576715447725724247261818316036279857436296940772802055322634010299356211076864926219118309333999825412500107467836120485620674870739721033060076519179372241687190565350446186438070755602640663086780166620243450237532361326515166202909314338835183338921530373442028218624572761176713451297438051976181964485540699089373061289658253617111354941076564978556521115434216122328396814748077616589661726803597660265390095523531075687315603160577637604937701819374004467629499914343666820294981301403610943966084768870659084496607211241767097663350638171253334199594925959743862526287919119682485224641022763618328586588542726525122658189318251808864740651996802334019914706543281753664440559878516636744164317469459615220775942526608354696736371359450469361802091120455745481802760792263265082972134174452869886639699804113590660501892335059085873600039899437350542436257063368033023774476069798252616189940350142430677386943475177621009054511812625859444592601378666354394995721572808669036342435536271515432008761790177389338806371899836006120920377431011528445643117279014874683475880923653193356417841890092189416254135221457503304938184063710150968874199509825234931342137150075024729579838858128403215777993644055790834067072180306904019632517267760706372330780302658787213469456909118224757237888004122096657255841735552807065200381969907347385395531686595194626876612857401557262196563958214863111596008621215896893793927235387837010813759814698412919414205013496853529412559075615837556523974256817853610761921431584606137642875088835611954326818663770342836601083684249690447379053963189647857985336242373133351869817879817868672440175310671413764923659934635068421071934344082866935242502457355386725728929024099144911398129631891603859601542041188477250699818589937157869691044175676228709020179213589351768987666788348805744260902818426572663855076192010094635319860985309879215550277895164891468406125430326810076613625592015774106679249186620590403822930053199522704461784604080267410924160128127716065137178127713680963350507563927830408574760388805975781635161245228859781099334249740637518331017898988187700426461062181159523542310736625729770361741279596614161383156894448275572905436065099175788863580356944206620344068359056422947513415631613305287206749788380097058637971766495672784754288444184349439924896250631114140275705524084407705371575340088166914239258890206709084861818759253397073589498916240665933274992167562118950370537150911156117691491139943086620218679889990231051932364716556345126596181934729029099565803854916991297768610770380191738138888592541748658402927490278416801332777015396984732412360480265927880608559734144161201531705751021587155004516558612810388700628757049786533001435253764881159512068136977255424108883441997797739930665218229720926444094620363597559527927976514267934612718322951035801757282441198215035857653293886932174453075827139044373694830238419527368112475160674462488878295812502789064662560616510362195277247149251908123062182430539981503249023051051924868483428247023748960241955205105695633526820196169303532841026810893967190420329900949189283757267741231633602504442933331066272769822713610824237076414359270731369952414136883847691857605942116889877601425612733914472004871618692325375575032209801098123387733337019706676280139138169981977323475759061592494499587714131929890337768156165587280522353878109299858922202199966739400429157779243259474805006918273871266037238546607310346248268337986373397606583717238595615334747094097562300339312123827165785508834222408278937507792682368768261679464055048072058715699837430123277702572567407527665934178872160480939093288484965165292479914219679358275558262434485414717981164024849281186479096007681105904454000422972026906623173603661879013158968198846228971569298034993714559667542348885056390667940218288925109556324537231781287745527088875439128189392228619740196770334150458587602799714863317864681093429372516935568310331709463228442013528707003187200130163808312733542201044679324732413957424743884451587555907985435388253124274410985263956118202003289758379993014959892272992636165266540248402801887068009195747784754822998032703694447515399526128407566300395688978325800823232178654051483399673848434763717843189573936880525953444800363176478502655018441001995850259433279354705153385652566401516907961826575654143099933351783656945154006315953463277698440493230208238399036811175638190194708868056335673202424959259524869707903294516677614993894871760067289687909303730900228667137227347143117987721888923234967024970774081545755565078490204187572436025490767752074240401372785914143004943188472250900812429869669990250475195152671095711733238313480653004842252380197333052831551297421048566623701096681484846623603319139209725013470534890350873835556444246359786583585450784404724467553547773916176906825533053147445261695688434733230311609947387270654301643975991167567944448776437130216724577715096051967998448195576079165677820161981639390573152146789006397813577061886319979365771801928946175942307179041315068645848666468279912206626205863662017073886566556108322985360188230547310858567218052838522147170117689961495055375984156997943097871453712985067024367413197277128993148041066341782398214049762499407243219255999681678024798351239928192060584890595908386162366947467183591250131089436301158337910579339498690087562748370737707514461881101658797198990447908985736902782301060948781938265517831611263870817565522270659698613739973040982170430531971277147164985306229858882476637915974218458355347227792745885360055408531710804251868539901675852434334347395182486754714406583981532808280261981186728036720387684784553701926010892771046269116460596160112240507736008715128755368496384523388326286284645606543109195183708661171402950041656515721958185009374661926167286732371887894550671792978927198722568748030322641564547367622675491782638291299030443218329351468169640188547377793011869652212056720769497372976829329218199503365311873429021541511685880664434179175670463131253586567147325699940598224880553837968234659401278449381327966048298399673896556934593992856392161605190202864518005594748978900916370788072316664822941075418639631545618421708745625542415664141487361156060866092956027643724712350873711303032425247963268666873611830717719386602113297483953099698049185564150100568521746596863645529440308042166310564054637443509275162925162132307947939003169213425608884982156909503122114693617671746097969643469756531911404108616860143821095541639723894571331613385409692703960906158998602763653193740808249329011789837371691188549887779664994865222851488830932316192070506432370801719338764108745326743375953111685312376472306054296408442021509194328240676090913419336798154508302329560362407412452217757357279064914525143800566064276542258174760418361128065584958626002113153755931872749997467993498758554737653921182649740531446115450448826026710359860700309261797168604728869815191975738831853829861401116679150539203957166988760156180396346610096017970357770189061639924023283391743971028054003848061449324485168983616670092119690891057211222712503371109424691034508315110155088578101844890690420233141844169466892092894286801670814449980046782439766671019777074575373804049551116452675449703077532607882128359672534147675789477238576542098379998463247864526835312507590369750746078980362065987647719591008791872383722149735248035668226573856519238544126160217722200359515494560495223555541611371620014744313767018839510546992050825202871909710747963783346408179342828711144863610111198793631089616549902273837031669014510189882789603125686760024619412721051894223924456616334864119284825038832652245322832551618964685168711467924016535022397118985000174001234641789641301749759598441721832382889936324031286905230492913525478207678089818809207572451853487611708370978049172087005460887349988774102551910727424918645902610079738206579881130788099532732417943758647503381570487778083683385391132428523199932762380520965680883508597105513410944059506642592319730396463370645397836990073371966653437704881936440395870688613668615829325536535882138854234703714957704696651162888388130892854844343478605867142449778919502699138036566147271165507092567595885394204362636676105453377718311054631433833983386876531317160587991308358712251737187595362372157688734028318077971696631937569707093196914781521866949553819436919687585142770144471402420307298427550264131416179667435798115770438625607819136846347838058118095497289788581504202350038221574776804814152927395085574460911930487771957927233571678659198928257974025102161713762915894798563603898386629995867770347947411316211754545252706307579823879909813149249279659459534664273933556645168096249348697277481682015116295649731492371288231122512188156142200224751224190621839564757339238975859091330052675798050872609568004440511866292866578422272128351252883395534305015876797486894571278680586852325780413524381679924644925754553786674620901728397582191714238471033565321419396568666138664676886889689190741943072590786213893483586254310998446936644514897744877550758699432627049127357257649275249998457022453363038808021075852286230661420118355569331364241412958715051751228870954066589528658414842960842336327399943666456936264056745178700559318312763337542971002863154258558476325448501181781624899822566675614691951652228453216150984449351446195635029423265714020524570088734021182324065771470015518311705507176672021144990172534518530991317159251538765513385424000333249731134391043738240492398908697878682036622113473319065217836219682280913786144870128660605972954704910856289152601767773902272272390659290554327488948516218566900461617432290492094668005497222240762272218178452465378706247600431566937177426858513580784001422180762800343135101792931988180075664256661366471732836974500600386890759102859550870938067940389961669708505473513241598708622445855985252960863503748647294697194416705481783626659236945349064316466790490656047337098213846005855624113661680474593389475423604115639602685627869165165113139415151804989930325163279646154436125253753448954799819367983726943849152999922085894911982000447537729280023236394071709156217757346293758507561354889441394430661579036656972550252251033417640105881914643357466909224607383667998383624436264203391897956543400391125950994197657533596019774959771214605652146908263433199493008073048110241199691595508936141530296636239400116250227220188867772715149640740265324397154623188903252540292545177710277194053345918000515050109905870209459099290482310780877941789737502907308085477121834783326536163507353035251573456911334859529207630074854044744405940663916851610856139978966340900384051596963429003037819715793264064180780348754549251531924110075994941508313307197013175284024554265336945524819624528438532247661085750782323904191381797302285858191554663028349149242920446241620489746782171624854304510757964665072777334565851029177733019987252311885265941654789930946402763778568662804386488224508843729343485421880002526014505900437710547600412478694935919869132553345467972377862934698265660160425708322762257429427552150304630424030157229785868847836174341666913672420433930035130441774292685615584174486248030926820835576757602048323418313153402388899292944699714349862764960343911389512979882721438407536259075280730063992361445555655017434472655435131873732899116598313017861308314989032899858158019258061780857095937514107805085175102234375409367468877786754159186238617297594820643849020438616747284871796328925495592993242057287793864456758968175470144838527252715515137356982476523799587162296875748619804016201701853535285345061133182705291931564445427382933591023385083199261042650887519209752401018708908489825363192150273969126031680430484807650948228957560800983733772530839376746524611549089373237667719745645622760748053625398237267538829506814305266526048622647177994738277677419306832371700588569603630573162784198848254400120123936999906756040046239556705454001035658086902727448583924864217386557316003950158991601126577753181180083276330585076866957566097111874072629938726682564685699137503801949344183213880537059023902706770147567486765387005581539204089668080164773207376659491112143193888293809095922714538808145056717636807072388588869928564118896787950987102212081992494059734433808675242199501632290855559969595177855181665103921743284521976160952064073120247891581807947255543010249550639931470672493260035703750475782954173838489175656642486655820482035426931017299786586176802746801912740650566632456109656354522762541464301396638342855912899859242373386837470105669545387305242255987157511790158622256211207268143684151804524048014250153128120388736428438879572380454143682181851315128057381912044496997213293539106103202624781041191815164615013615487989658774419591368799016728185443370764980280344483823361254664676460736511349980036486419215807832901993980934822254379315147095473260636241222826336084132784419961087159832612821506234760535192342793112210459276050066678923275796082505316365631038107698737893984000635140915651882340901709681483200469911978503796979630127043162670361849975306645703970324745565826525650071814359614723409848703780655673067523403048332492859256803337476853660750940442846431432053660274996296850646955699272287399024397762082241503496104969828746492419894392009123018760680637813832985690094044275265979646408963627040605125110731106980051755301060228907556651898114273749729233402987180711048444927523057957303167023151139563029856977551927457390816530673262328324506553259392369896530987467819935329920510718782835202410961188426311522132700321516972509112044476256388064101104838005127396154962983866673518442640965201260148214084309849853324732145244610013520660155029857140323458583549018395875000875460044038155385141535328462841070991933341888099875828210047613711779842096228683274629531145230034301327632145977248045647115767458958516285292835452750252261757820585290301588897995094449937022894668755239935198677355963258826084765135857298151490469696544909559950383720099913303325518084736184026074432338137903136835131146661217557925079570356303398633458870781648964727927551579248762226624354398343553447537871733555752326124638987374472215936835654050477560293737641611400464700621157808594066858854649005272867457239093673115542345699195684247842215606019383288233275160245938620278331811162469030122328504785628620397081864360206683026908584470418850514589786335284483629793387690615221440594136889259753652417402234784233695679163102073384710508387530416972470538614273402598151625139781580604852112558735446529430338725202452701070532989178873193966714678633058652639136266577524792928869840176336028839105431704878248035586745141417401491751339714788080090547241118350781761226022100246988250753438253304840985155239195471368533363234838548802350293897290210614306927007953096217863479354909323767402379970006414846780109179754155354054711699579092820743190617518865620955939316333220217116088597526656550764893857583248800416718045449616389813584135291228057627974000515100212212500764987616632792056689049923869363751332715847553523655600490098532515137654661241925679500832440140362795015112511359486700717776625240849111828134821874783513953352936642985537197589370440329087341806266810855654498249964739652071406237271902478449910865009960670568387928806552561718960950374892672203106303688171556837972009895088672450014126480925452413070668411893238101655438811128985648813116125642729760826060533536254833434084226124878686608592559036981601783922599948736926066877535771168178763369310677089203621639545569106308319859546254401945252864338049231219543905989688690055446307698768336208947757308983039709492259147569541765321180920032295183790299353690217504135042640730658487986699611116405369056792448209378499118217307128044225935459362225750478037561885346662909614570524756314100203730667015364653360250363945747241179784135985130302827580564749371960493821638104149173075323652206809578845352440658890255226628299841369656620869465503835143988884211232008671340907852188544804260222827225403679980722862127563062989977114570729767015045489322705834866497824655804928293010615764209948954600007534588725432863703715606013457381741994584670160006055863290678119700991917888640796965155725361647002019138495238649254837152515316553483957264790203750410474967781741739249879734093990606532919832059145389931343973303955416531946587793305838317522514823377691253443700993469943432999915349570015733274001807415956748627224291988373800557811820048967784533468165657616798260555752791873888730362464436580076096528377978871469612901708555008220346146164217185874570592754205935401451100549127898444629995174280893909713772639089137835660174904504235565993228946139360438373658936842507579548506547217180711976805274044364838898214253757328493765863698779419593792004742971715555706236394139123156058364137207708783679840034595757237097060148473617258137509616394193239491195223793304870921452192768487161919919557314813209798845186764990042906224356578102513355618552046222330120099748530862615252533073619132690941315031286848751948859021453242037311851799596718769159902456427998162839962779867735754825312671569420439073383533000505624916469632432297998947721435239609027585692851741929515107002881959492425977411993710644464488753867433083239149147845742268306710530793463946173518420130383908727748030674648804896048057739872851481550335891792031697242852646452702363118317637801716359672028826915785175070767087160699890666495682925898585406972342792386219679812931790034183475299729044125757234803606420646318806830693520107489526480242780314963991698958051790548591739614857205752238957514795163623087746650215147791660888410344766378746954096934147062912972965251578802369930187667357220693000518943034942445748886907425383133264464550037316826538529504193907849254772107329975832723712154986858082893281502541356585052383211426901845413993469692379127664597480504278381146270185505651801875297394628398745393071336995234913374027194939691964760902257355894351024458923663462741853827496616509062167436420014550908795711889938116802993884896388612527659621128023086415442859298611748978484436032063897569112117887903598358038272096238897534273628622164870422098836579190828564602150990207389209939162862623541594405076883213821610545425728982394378604839661818547524992427356423479390849228610631481286275670701832836038046932404126054075484820512135017110126202754448953384417902763788365575185321689178188596537045096413855708014181415941815984122730801133040108503863514501875650998819987371183505401293604227647752879170893369380172881829229904908960910676253324185639895969652930772629679863834359226924527194867463176956833665623558127735230914242670318216837199987237317565403780874352355678477722961696882777996292852746842465670142259564226230709056647407911391558942299861759983273007668789526300141085858004054138404832541969259172153848166806484244980951598431141681293596420591691158750045934918067550325759546653750408279580734138665808480242497118820068220972656824791129524970553133084040761219160166042295921249183073902222269784756069149411073654995313921753368034642824312196314481593499340164482136446352825503522167805456040769800667886411791043515009909173125902818064887310465880003661095724063811154637489386024855040424819386117494936605441037116904701451128956393430364543993583202328254009982779423399383309868538351768194773408414840213763201807471057612437015947141550891844410331400467255880779578370874047643201658846896209526594859854515176709588032073131343913455319459545747729269853174864003009356273411612910218657631291298238040435698604582805132024274938355887015265159141272973513180688221569084893565646119866240559484586687957703388796156543672487591278913747785416168910391957549787521600952838903320724415205180904002902932199612587547219326286953566825872841616172876169671206616370472811821980028664530273763009533977324433657263921273911772843251039583692132893651569250917354988984313109855905491962909653359140294620071780723401907073384524223266441812753909461114335684474846533515071957758878249547644376648349467184536972919024505770217219869345940709453140074156804628778850845256810906552901790896849721717329431188097527058315904426289441614776806207644800614191172756657253784149322625727691991938746745917020867318925579159340538740003981025709122881060626067318939746218070085290635479616134335535173928053563337347599075684935651951304451936338820996787277155659226384624774681341486783000958336902320047809403211197315958693271460478758133259144859608880467422967252900399473284514876399321483783218225155244650170736276615597642441122427736306982939672078026495163662359475920791240824027202599708056658397086003770886671083673735919306196852063954733960195554252299286679487655147306600406774635643507464087447475343128015618456284998296928909590370653548654068970459402350381518188493620675349650143960952302961430935116814850040010549360909601749385750177780887263829285589173704762037692808327267089450058806822392291054157195655254367545470858145759646607541344685780827405720319587958104620921035653966967580877181953442530953593982414422277796860024443148494405986152015445293721117787959021341203963030831011933373151826415523916646742248231282994715157905204793662125065955546836964919879399285911252222269962308757039594370232598614342987493143589448799198048855171697572412080690091061542024035534795934066704157637491099258946268432368023484214174386588953453046703306803684124746609458515765809173479672388150428892055637493835783964262679694852135183852988088407414492876741136097942626259608354207243427277585627171891165280356826551983544059671200457752482548967996684069109028989882848919148815299333049199566137490153189716109558403423005596842927949126022899463843606713995791656982300827469484120217585337545092482308564747492563043677769786509742735653594971965463235692221720405489577343190806285532753215135525430226524820676506774311764371459340894346000584038849111078606567914598642943383648499102473572424914040984034544691016121828060737057038002608922133418595953919995327081127834428892422002571606942014021561495131113966377390980425421014224126996927829959979137483194181345697894767979334355892418245447322301721670586076971469069010716758548315526980921800440606517706483111337173746784109695753487689168591855528712033973295240214762390233849009483002783563589692014962098587325892095613778671488415535082292103337905618686217446877176158144656911028005795019439360508279863623824981130977042614395649917151401717768682975618942114690777339517135801850609230229110526695916569535551671807168522615312330515659839336551108059129137531867544096912123823311142427279114958103877255834837307579433263678549224764171206793111310829599399053737072168158350839865808992423067996087468112000229172618447414019254817978335081284016221502598166701733574451917190058862542555933573758684946107236979263359831590317164598280327940132767348444628342114044311504842792192833545546326359172595685143041430789939820997117868338556168274160095478174983339893123126100651135838849530761252387861023499917466501971492134500972343129451091286120465656717910905969001718140884041438476436001195618072203211224671394254019287135861441585214111811610556718289214680790707065187357301848781723801025063287448286441999853210371445447358464580432425468998134406768758166219755595572241547049072905716058312600540072615373119916922492951901194827546565375398601015701802198902536504652529423185159361234922844908303215415077923813744488156090122071691578058942478762297645555111330686510477184834364480767417867172571282266372593168518177437308385374506470923664505308854101867965249363219356291308639924876158335767242807469589770734936352839509448625390125065138921067802574508371588233862517201659774038744554711315127528084825919467742733301064739434435370335763107868518646384860055366215965764883962992734836474539353545266842653597203399588343821451582985755434034084973188823122587330910823287305487541749924938464372782635620498518076403221889780672980637959190514446032708701963408613453388955367258353799575349994087965311302955238207593354063059968804338874457651103108145161855540486024075957037105686244978641953785791767554791222524744607937964737495949508370345120556049011439440403104209801698431656941751887796084167977012356077641415610978767961936635433131603805979176318023706596090705335586164418139657059607847318675605573629299895576008596355767441269387507707909473287830244468109190556033392492385580992514854054930067610172709998063967230942712699873449260785209306505000448963020438329735945481918962540214098112292023982232084905918489631572373582990178174556679654591498309513332619354701957850233671512344690520328509733166010043419402460816947508022331255207864802447511510277484461263012840283098608014023688932765090032352262437288823562847946945062114621395237720634877910092454051238284194243233646711706252897086422547117858623066353745070582362920274416793250974038918647478109952147691323729455086000792643455331704371004172010875776552763013649652184768572891315223938909387642563302132355667459918858916510917448257770224422430869323338498839921444735151897822025938979990136917137160160308985108145598276516959946420354314422769589254856424663514612452103741495627586093127222196795479312153750692874633698199437748052909557905361930951317546984065659697072272757301594189696775064008452334846594088416265905344051237098891002863704708380721637056096826793836039615113543906109187205207208651085561240753944419726549070054890093623123340670066942328121788038171176794696435508173443638533575451288452555803710329877390188961824898318843867751023462024746053468836994388189422112023944077043171286094197979236895940632028725079200139300539885162302873026406803596283194881981050546782183384004530172364866745451191013338920307893643557580906577575311666010687234722684394511828029578294053200989829139084555698350362928232171947582104675802939118295854534680147929456302270791633356060378651193693008751698574951175049186964842454986257811212862022612202237399422751685686299545305117150231972952567065665989731046737725341798846385411545504478866796441060077837346901247633446861896545854599272868656118383438717466572762318825387767235120193508847355999719070831622338994242223204795266592374717179888070697149260024265045729775139498559257735095504780645026890251100250451603547519294010218474095849273687911310967638513275404110897373592028371413387888650197714607446892937532178624022319558921071114791692525935241141773049148430380793260043551503226368975239016376374842968025021351166938423611599548737715587847715137168929281042971081387753543483806639831574536530920772082254388335750199470895168520475906074203117701797634617706261150691021489669620982262784883796609576628637529299217176105540123081736056631338735447183664208413543889443187059106478786917703348412103013778073929869977558778301923752683240774640411468774814159308852616725091453457771784191838607833523299087926190001698049776557747876210264713634697299874896477418722305617245873883305753613359086067990007540240499951746717628194309344050725475708080220601773959706253366389419969936423227766659849902330515287435330179334391098685326992343933224501221951046969440206765839154533273949419549590439120228242192926827780643361841638029456772607140592936250661159986505768831118405376531429318389021297543708801851054093153734066936629712855908439811888250708771832196358814152196057505749556526542615642959775576320964155942395253326875158643652486588911064685077728051462890837395685516086366633648115584313431256936123765699362096421339875189247189479925005497283969723136839948395271366016705195869960479019720693325910422975044707158501929897397470467548659768102639638540593228514483492831342198030232387338643392150885922480870969717261729874635813482846713588180262820008186605016719513576541418098671592599799648005755927951895628514340484862149511939743816704884729350548415529484735998261638927230429700248973900364143631445476461242485811933073782686140306651673343093550498419511626309296081488764013967504630046321821883208466392928792408983194133317723805017517119851516868533327151605757156501054109288632014282011348912135120983278926568531572605142937086365231759605398086124390666275298785702899976471331224514594153583455576451104687215624692781698791367340254946341580239565939562135199900334995416195172716061354229268645305332180638497893998606768072441359497821262845502837257091916547146142158086330052241676434927007850185949737654308387573775893226899515710250846164299690165325296752344183970082494237566042378251037101142711523787070319350741776643704224776513110472566073612774404609333339548498683098678578494359388921329455183819562258330080371033048767366891186393839217681016987842629940186896984224719816819565289082504281981405274239732741214849888443551639927110741102368364298729636616509445120839685685311876099863730236876127160143825237472064952821350702513026559715970278826491665879381621656289029008641127495306942211175687068254994370506842750551092487625839816917713473899908520376870205514971635692173604474065277799804619118110864845177268142014670124003122159783980628853388234678855222320939244776691573248824311453338863846517049327411151682048139411358570956070736359913973002966262896735919490966510910789564559659428576179926191103832651979280267976447424457470411039122323316140535499137068630214037259822812319781165646465514987651611021616302242750971982399245627310752498635028757181500343278845894179637940211146205625514890326543556073100620088395530888690595954811296731324704925389402979873815901626530694379429511486885375735014523467424025488153385145836595551028315644798993415552213903127301823522776353979364132234941137004719541728643414322611374815334762542237474519514170300063275216910916261960954891050321985681806823839560081027807121959597953387556582549150304986962328437344227935655324311720699291385603407567123551771884444629077901410919622693487612523776055037117314095174301944542126132241513323853233925617206365798711624986029824637416549879480754048578876299604828839752847294092548390767867810794304195021345327512111398099255604185083595682834385118248088715046879146470177631694557156745878279442295410967696304347162529059265698633661020511998903888931365031722553699370273379966481753060291934496486843182174485486482656854348862119474752321595254537519356558482890956254910839975221377213699598132075740844862947400369471931267092457798039677219055364881399478107256367486184527292827861278260985838954423564683643038892125650905968367611080107316568360024437004041393786479503326339184778616153569529562222103262980616936724845047113927691630056584558672200632170922856200391326444360308940715283912226695990472710045280539947339562597459484420610857920038500800345901675762745762491465117865994982442678286191872027694347140258522322122969138849859065995378699705646968948363541682429691921441225005826563292291409143477555980413419374010246412215711900241401670536736500834701009249505264923538731853883506876264136572097093191488214599649168684647812219286574173034733366827555251809802073264412284650445940201416182613705631835632502405861782664247644398749939309167932650817215883068346997691540634618491792237803628030083981029192515170348568744251554034796173320403845889133496117259203376236660955418331211019028149090676043292210465539967464884852473297940115403508420558557067173481952953665396883168293736876649229157353816256506776807739529583370329116839373039449594992256100904823456523965432115723047380273394526104792402666669618432611460977819717872689338240082021147978243495005870446039771427662061039495273251036262327337633476798716891211556529600740472196835636897364797318428991799114906070508913152007261436694796292253233408341297847259804336568713620669477355539602826359647140784800202050743606921315696316635452003337427153036324758186290213273945390309206370042382181564031227087917662224800702591437747786430377613954436006432051163407763077811827797715265460338179963509514973058527465675380929499910073681653066338398640960251677105275483189741627208157767044064347140581473377242900351531857546063357453601221086608843260011874162120934551066942823144928450538415021154463086841825046625965191058458492835864829653193014900312132848333202597398926952639878440376410747170911562895758184927262370058041682308903009370649574378091995420285203576887539324072848212631923834065938124322162693237346903946941071936946354942400888239117678660789235802558223868906988669924488397302605442377909479710716890756088569002459545611170864638580375274020714820623597554786346968970570366924946617209918222004746595418206263879776661755788164716498489062537773210932047880185573868037628576105792170762451279848846686491668630226018594897994552566651448956111793713158562463622591332387482231138569721169336699794253015696432565091529684538350626054553941758196965194972219900663423233376459492279458645362418758801579112921576798404637200076165561613312471322759076715052889122648702519862867484969002628593267787284161224751765744440373397037715216447341291816895738990951912199506557136397481714893725407126064503580566979056110052730410579817191167931704216080517094552733604760000300528717863954918964927463583341486751788116376328064387298670706222960996898531397872055517661280975675039748148322867826445943189700340765455888233749121567213003743841865304086556022527812816881263445428671571441201546593472358481066476438415960348292577914194284651532070394400719369890288436376454738970139018414102326590468846700909463282641103152126338771615665813132524223242697437324649497455471188425525262303273350369050826417890410573944862797659977210293714112255565650352974822445909015945832451166657657970738172333676625772921312168796469437637653475762588920122364106356104097653166125669117949746537183869235101733995257361466901019222539962254979188306419766098644155218610030602974399786782430465404079783765928357843967860565466037489410846901539517515897906643904140505807642125620782052556112664401040969337229058932495323613210829357814525753021575726887306525495953254212320173878767371361458630267509918556222484727015139984068439005627882621029649307376239731990084069141486992278324556571196062054762704317529736696183425758661299577582665648327706234933380898591972583554935693480836126611044379612663220692247040740976604928373015731435951712329906978247465861407239637134043915199871617857558895892511366919113364417134103852804398403709323535537988187083725922955126458232854273600712156092072613934717830522849947053902346366932454234661922774145556166469564158969492529754194658458955392899574410615636716132356724512684167344354908361695951192776809484881246258525709465181431990907141948360435360723996065054709442567825815700270735640481604834396848025501049708317410656026807306674488155570556508323593165461168651206102807245534677219175314863266482242803172579897256053468616196874844037112134637522167733066496445514469305889669052613070056267551676787932395651200316366971200746306438184211629213226887639506689433920295917651161706841401758715274404793036948392855189484682086235677930146491717553759156267913717247167083270512846263323378414030975485808845352492508841607470955283356822022533781178576118947546237516513249149430345823862429849104012784365008428063233737846809183489254022664108590745094738375268614278910866967658450966408410044806465396840566484870980460656440512892830446219690851440369905343236929698575284329902372148810535730161590572991137648410943379431436527526640018333411300252353940100901327216258411031903512938716119347247027613334252697653567773097901386812172736364293837604680266073415247504102636282107302251025478043232597871073008508317431879305296578087443988660992857326850354401969999257000377915281314860982742241750789070684282366009990187691924102639681623940394500539725498282292398733476208148931187228926660271143692510092470096910708883808252016308875950064567891220122280920871815754496131680359128108222635251965155569028709761648933634792613445665504799181381873358745394283278885626890772799354926894229131511047342629892867631288324515511127067836581505555337442884447598227932681008337637195713066243526408673292700165543998401342045353904256859030502810904839882039277168324539481440716433316419556490234371471793610515869186039726224889823472113797005968370893049003747054489463467740995671484420412569715699357511367972084407425874975887505914490731850981098664773846303403538932042610524903467148221088184352369015135615381105266742109885191414891078715171883107739042571365509284696085756209742117406164547555321784323196347993304354140775224102309027292941420840480791277442044112444805260357657655758283138840784970727246248352055190535765665072605747642346498809182600173161161527480975845536439785099041961556345610194029130278878944015105488805820453827269634781354571422210565008938795825332185418263080614610583694885810128978245361348332866264026189031518747217777174334634909508632852911986384913455690722245192805793379417008073637975617878073943487104476594437642300046179297384615141028587165695711444015606432394107450142295080216090765180526398712582436616147970861741069031836946517891117137493507417336523362850136485592619267819051697249778027796391525092529387063909139805217233845276163407566047035439878953719346455823981198700208708715310144896815566354004956029514906098956107406788854092697259333392034596935493237915942127551416642206128167485069426632259084946952024931865809831842087470019414132038891014886600594920347735990702746270545638138341138563020086987047082375006601006024290961030631217340386159469426567457912382930315183205211501208003760699444762292142221216836995007191206178055546965764121619190497918708709371026942921898528442506894450999382611434500233687898908184151007893809361537679591909062443041354637952101982751011056861861705352739335474569224892541262513668897102235307187331956063522569046257385037756599261257414145893606216975155876745058912472115013579643241670075245315851807864991599134350377387459036309903225265095705423032307274505265749577667662829079421100999187966535218709947424265472031218166358047886896624157207636085115974100630683067996198957399523946243758733027020880358669705441900592676501203709868471287637942982560237806851632305557461808276993394700478920658047942464342717279449430976783287792046628011047936690565306601690675824615542220459212714800668433008566506083449678735309296675431364541503085954512700677944402749320693727785376290392288256266680367988034046016694244624544380775378525620277796237469682196476594822380091593283368438251059016745429290085527772328329580061816290239425445310369322209312557299978507527553150689826599075446747005278357709641847617625509456585375871752822098589379672877142416059371887313387976558351353354163256490273401497190938767809843017583330265293603557428664956734059389545875095435336166648468829874196219055026237535270746269197884104639844912639294408650128599882751443450682471467876993022206294481581931797412616839758190697772179976507534331483179837368065516819426688061771964000976497084166008603244073862764106470442128817150357354288235978422452051134822701400111942920340552249628529373529972304319759911033501861055056306930457942843235303755338226994335532567325442772216392656416856449632374007012882835661210785381575758315441922197305016664840798407903582805825033996739676957255480935931636254501585860378747401346255217422568099316499886554732014658615293186830624951570898015642524688020900025170885404817676189828691210980703688247613829772070048516570447394311609807054772110960785179206351319708763203977760433852221650672304740575632003593307864258503256536042054352321455715783996679000699453499053869436937843496392780503635741273461698288552947125216463742149965820738570066080451796339452091877456605029871221617661496674092362811763084855849673067419356973714447328069179904219432171768271561576818805747003893611974076107722384412015194009223686437107793733920716614269072416380076523201700017492368742421909293200488427324618905100991847274319685687615425909070824969421893140336299830893179004202786800679949242919835244363920796366986397423158491862782271548030682043733309998753715025549594749333416254888664711976191802775420278874787068286848894782361551227897282780749349466977082076869053792509282694803910782095341423605436388872912465630564688897467092107458831904887108047544292353799889420642890233050948643747446198315708440404737160263780038392104605842009986422978185424058129123478264659875286285195125916866036498308625917054317578576745320489281089117881085426930671086525510716332457721581256682991617250347593255429465125422402312890494968563713148374047810741707724608001606898597114292407628614139890088702152931906071526927214414558090042986653034789188236543976413720356030817726460852264004577637759176348963967492988559703100915204278013124560262401150328914384546704995393717428773302730734863792083483262989221951967360427242899119577149620779076109653569984454438427477278414245701429776107752358640964984353805074545666531591750207787962635893683871489601395302614792432974839633704400792461917016619310498641572513751722963294474288975502507174194501294954431962458911404945615013591707972255341941315050741929144744832905208934625696622337532365581464676127446918024716642104922563067160242630420897303089867975399839252840599019732524048908899201483083124841752851593434437480782438582100182214342404089311809330716095734295093979303131799078131100469523187734990630403474152858081821476722741282431639692984942826967370525509734873005592688899750353486989409620719489819923480439918608607813635830276100577041553481277315565139358528510376389884251453790439531004046090296930687417685703576314891348746942533071998093501056600321688400444106681520147735624305487015222784124729302556288297564981421209837975258655606199286294923894096246972897648594890927530615778028583393308805486340734744727493728814210464809617370990110182210995659491960772116074066508603396744336858253672654381026126072503199181760068363692787538741756266693875927899137775225438699905952501595023004575866474539822266995039705168957567979086144381265715046271172915962276723152997991641645064352366459823350699498901520507302591630379315050291255125007159727159816236813935366569590279402959119285913329555928204833632793654078673830554571063396758770048546569860549092149658090597716538026446173843089659207772068220638375361467136544581271523995723112474460803565304045949689401234867339192594993538339840493165615788410421143672444807024886928734889926562276415480946187046314417448609956980905834915456040071820642840227202140867903275670843263307440212215722547507711618435488757059480683697013325782523771898957895038390540284677857698861227758496070113323072689930597293379421565187804772406776986483496250563514876230095282106274539824581213665893926827603086878945578927017441689127035358825486286410648852393104194145067720740207138476587480046711758359419248504688905741792046792609198854614627039187165551687534249141242995263293651756863354365482000827944193806150851199836637881342499514908518472472827493647713447295958005400368155527394759657110580419473458600504757785315038986941007861734631741262951335592049739384181501166269591276578578667943637850916196032668110803661329993414659235110046607634887078240065373486828251940629496730321940717730418691841053673886699082219293646375243168968975905299811991569479861421343893907010360531718320609770910518748309242638884810176730192886919112351720937414429952097591083843053473012806695000189276683212215909330671361284949883163379493293855670440306302660941936565858619924616248752336637609150986541000408977991451321241784233985961796628024586401982018337123662483730995341443175763280792208798999097428553359398945814608275343770043729922564363270355148770271216493074475981526282806938125238028049819148658252114175287683737598918868230538483904758777484255747186656166089798513440360827308897340312295222582541471629910192890843463311867890773817833158634430425869523065153674426469043275788372462177822591318507371962733182293430906075983783391475477792618787430121151770625198725728133979231213909946496132629055063844921354054469955876326569569734752776791095922528328162992490568099219139088311828849393095652633541998352557753672175254677419701189741916703698119591785749827915250583995025912258546495662714550227699425144993397386350280980338327607942024528838064866041233905312511282314338481841872279648452961558062033847543675535891462273208091838943924053685827183398383791844530704543894131309776729054358101066195838947475030635379050354762023420703092203551728385010338463672728101737073153860198611827296899612000497661302973791328563222792328202259850788998169850824458095706009908870685399800905282412293865221844072709590730992326937537453703283165161019797410920987047176099455617162928686380414716600571413760264265350381207409310625985855780302644740240632958595323380087876222347319935628482832335491167457322882391351922673420657003297889529256818641294891886213022996094005225765699168661360291869845414295526782419031490081132970297177254522185377439033439330160146240916815668636301451340944361708038815819320026942716410606879178244336236033684334822040727963890287393079033896431091720213067241537765493062506338163168920685754013617606067686947812769590024047976927685717883625016685036006260630164030389380809663762676907185333587556805285923596660274767319899248931855645621113114755295073904933728925238772366953265586486713299399039144345525802824787753476958325463641838008792856062988283190426306862734913606458389871373923075542345478073451453141282896569400804330296048512998505880436727985524596676894988445635279337568923142694485708385287465495004969197826408010590939517937691754176659802484389152910359216092171386007130868747448454615164389936363408725612086419778893185803424924975811486292264008520747154896777160657806948583047036423894830645271277596693817676445448061754788327920639751328891894978450351695591322556156853099507141112793267702284234353813192107334327748218366953677578249682059677908640528563028677468135530798482529757647457430517109274296893499732961963633265692989789843992912515812679163591064083219174508675434157152262190036586280059599076499683760100690994037266894938494095981039343891504678946064907060227254723963635761987195888516554889002992987977769086359567266701801491342169929954589936587801473925577798843740873380228819117473917041349993077640227262972621409741861758609006658557514745021614336773473853884416557665356775039113206381880509289519716553930945064325708550295291905047853431362067123238488852097379398161284211962776094133729192397505418860005287413074454772560716969456685785340864668333174831284233509150857885268786999099422166993588402021615714840182994759657535901437061868989946962806970676597982594026930051346032536811900242045627635164621430815408503889544597658029510908018972629638169155220203728834040323566417924198656426347719368746065619042993130244254546418648559785496970294820676235485896526882192202491724326947390569625999027360249267471506314910002672536301614108111659410448059167502801949287866093128265532349407141579354767830331137838410545322130258522232000391241479994390446243003265192237980691921419758007468502868435307955052271287909487753156907303971713717483419178280013468925369163568509631231863964189355757270256894917526058195682505086311047868008181511326737048089420349133880836118561253870343441307076011443506756519573108605589283763845113069364782777533265864720150111383491218184402316570903338820318778074847311016292656690177045291457235777158495396490457302058568864619460872760129375134971792593599476013321021542776744336066931465503611449737124628429217301211543058742942510896184847078776329811900064641724264638773373694662964397429785819661427849274314915467988374539604887733300919031739967164954922762505607298086051616675270725731484278833461441510726620054086153697917680170891563567044713114970969613819327840973944690507319755631166069734902558047260986277635225087675829100331433867746921764075383896481387713410650066915722052409304067148026495023774060423430846672684141112841371536085864894315080809812701494267635278448511501805729945870269660896789256882251510691404350776022438551886730507230603254765920654316645082858497036585981707861344515447534266693522709209981694843669859451661720379140879367563771284445478328394132515167621751664546425767227320192301561351895590928591004630605106534590469840942415190293629019379839169029538425608659986897886174366081597218977327037981436712833578120111274774562237352406765982028148507210324208086055877995473393778549541405761821636775257747743513961673261749789302527231205225900607581468586671122437363566269743936943268553341107098261974969392407772616819498593849568533968679918469748023946383774808993422247750375262663957643748596627550124076308190541647070887800700277135050450341242725374516533019385011943799740768495423883874082412205607551356443956565149061522292022321563517036566668288489301814460197177255956707271123271438286128404981717959160488506444537670462085934508074415919840898563717372807290619648031869192657375978007221503598130462936822927002814441952691940391154465689016588056741920632824001584478301401407309858330221734712224681647402732609794591610854378025566777695300919653351918318590522160973034367487370548674279101619262692332839793512210906826671549778031869374769171857973007682551415090231036018480253012417773600840111792182713809246263672639449717565911081323041126770938438268991009391161214942372607107300023441823675468417370839558285701505544214837592070221961715879439545383905708546993099942650367667092945082319118156260603950207543533042529599664214118834039787899858090790052749688539286970263120332620544918462858698666805870250709198970384880091647032673723731175933657153606983315015162814295852258756569088807689527972935164008958249820479781986387939200912947933510891501169358851748674554919765441989473604921314283188040067320213488520772647303601521173710037930282402341622469814681472059743028459291270301916287307201543911795464785592933686326321074094564011945099506986137208782840054529510993099129964798584453542240519328946853902013833623138373708962138164387817672946848837573102998203684962584905987320895205474168006775935077698809148736108626420967239899048684767560280343181629139957724692372480614301556484204993908676203593963297386204825053987068441985110663187403695036169306484893311305106036344288932382703923477757868901999114791899768616250213642033840459622958618572962156775835113173918104178874072709556309008506897985817616764594950117582502156775196649580847467625532006935750308425271256802739907121663009901560336663861840756584315043948786863671071375791681690169901561765003098885331754350060343593181072366579621603431276990973587822590474743109370828142509605909990264075790841669216239946707588071995349799430631799605677723033857152279631948154641950212762067431392647534991047754893537677216160299069482000910919263911445960123693692225766168284257189620001018349129069536523346206395053921791771063116900761218957607439681943238676527536935159199841390518023479839014430027843999608431491754871481327624465227493657279210445093139417940479781974159569857986824155860634632411542733454666411348476677026778544812218692383947138926349883511508370940891236229993930820600120636519789678771865984694785043494989955958722387652140359401907027746759520519487590313086986729699686295473072953573802161565412572283135582947153990162001796559813991166198671748360494321852484163391959132386818819796769686256777784217501289543620530886358363588077164130896256716552109072287283825695367014693705396591820054262073871949941263169004665140789471693369850535571286178078298329587786035105882726623010356260627765276207991296049038556494122005304189768130101026118402839440959736664693582809134874653409635087910098696317060772173557721775611450908240971146156388885280437547983826283463588114953645883508421861336637017028222020553617603562942495919053416540845226930923126244483716177673971947822586629320835540030744589947879615005105021638129081153932817197544619904929727519473625341284557258633912125556299634564095277827526584212767222545056579267911208927562126158824125428924830221126124917997482892348429259332634191463285264090817606585700057369054650924315965848737352263082523860976059660076130585721761116899188885342547301822833795977189777295925470340147849925606631044115967598849723774555055046338576520455148157521928664312922843630537162426266577026096543768800699071148047933492628282435967784024955929394035785564658043570760577838055830627000444122185836956867726599677748374186704853399115775691425185222162529586599735088175261899198007086784985097380183738836092094026233412126360214924867413882763395704056766342170248748791170295239697320767636683426526057718317938507445238210877846633244793595521887782939072857207260482695353751900954704013747446141862827673604466898588195782302272795365936233671008779741637128580793453170653982677715564408190009179215868544767036377386271986024530630893535112883589154288980810624814068096940285380667873058171275307371096355373523741810903556681385270213802518907915668000253689067600396433021787606447911446562676899395309824571895434867489386679727788266054305802364252505511880965091269152342943800321121600690731569670273984529389126874121479174218902657593662637223285099336683450062437211231580084562828224775061201955197275482054328675784012880457114731757730372619576066561827639938142067553928476717068768600009977189760272399086596984568735822004716129894531804029191999391550047318885259980119579198009083042247532606386957921029259277912035022048564910193841770827373941879575161433143817044186436235637662502312506844667391182977801347358705605888082434581641097828099819498207427282101923457050914551804462667925291379648334759312147074672204797133638436997605508132537431602307496109294146644416893417450406319388851087357635729610326477923324727478339137895247804002608870498116112546059576084798555946196758121384812106158109933890767816637004363007357936218555006727986993972957032897689075968767242947191290702925415763848399636071311418331278699381948950594341030253392882086296392789822959383079749166941261276359891212434010376285911814492017510433078351735197960474757398109122780559158170333316139244170113842123043495308938178288090974265326990870146277003025582496341319190667119295222445321889324742527568114141693534221736458863929685162045960998059413265720174428524997215613233147403844482483661800701609341456258836313507962858909964279244262596907108015584839368793704006088774158543263368092400380476856312289304785492359181082355067072160136873321488463019554522759014277506341832063428979044305351550203702966878737219791443792913630035456145990114169542572416192831660511181895245733749502711571467047731860544686304213809174633448454327521143215182992507731805052829589014310283145610020243722574239055215190637953844538879131865418366739689605430283602814737021035119027356787686182726254189353021636075746562857954056451139583166998118165400043901094425212640687925544133860883686720481287479991142708258764771009487733578179620511110001936092552609024575979094209103303274126136133937610373104727336785262319546186787601210310696574595633259843658700755668887027913607919280469724340975316407322865547894594023268423132736726740211358641965731699327615430897196462691696575665768453652624735276003194876101774453323525326302983881733188385891395557528082404912059285038844393974392753552323795042766546716708324442469776868794296100597244252214756498165310617905952082462614614392299476151400250169254612522802710367391135792649446171541455529287475995652075845280581904590177436613224842568333906394984611785684385929655455372669491976259192269881649766672660937983107719247874973457154410141105804214678845431578689670429141696393945407628739806693234620192419061476007272179026149485736132153348796533014932110531102804639931302700393595178258481947405929776039461668219035193333949220022934316577107342006808033953344236314957548047466897800885460638726275655679789498870780673097409168829533514993151949233343605965935777243737544694488549734337398420373417170747471337335498955198227688642622552099135942021343212064639282010895311253568556394365317934483682215268562773530923683241528487768007594403624053188072607540096006259526016499091831010184681245033711714947613171111641598895654935717809697176756069697511223924616921714108255028986081520225093580380003950406921353051219644859764969371663574343199445591349216753328748881176922724026585438883305842591611857209018632891774792956449801058632211141998947485207192697258189619088393574494802045189796850202999347536659919200991347831325538675851859354246415253365683021185726242621447609655574998020539946072921779741997497896677610107708880281610418165717804519376449793687988922488474829305954620776916941950888401281379155009646652356044793328481429365302769731423394784309083933585417434526048891564141361666189474407761373358085301011073789884163652464119132630353322848539158723660663114642028989469570435321991101466002217923777486915548936848476591212906951024268067855073338968044074911561806190469520598082888316702770131430300755939151128919232968332900108233315025276893258521810513860242325584404963008583477298124157285721691177585379844093993312884323212096669923464364166224627196581052248893130609864607793172942783060048403569451539113176348897775057135996816448444277502571088572226230536726629997300680865446601492662689256579441722230688235070567020507032870400507535701905613112604303941346807689575356308656958380146141879061038185161414058947565954566078759355029914023922784493239964420013013504041008104323460820502544312893499979015685994573711085644428556248026197357347360859585241179863297731701576884368083625273217731915878229300695748441959914629641763190100631836092384694407475662570073895466335194527139172213376970687137662359513332539008050723640176752215334782773068917595375335398183400424472259552030768578968659148922793945211893851731413772457613512030616701719727213633553549139558870758141315632833552262917076300828737263578757569292223198860237878328144676180676312786843464507925882349487861252685685532119168078414118197059358405958624305938120691140304363411971539899219309262054076105668519328421613284535097244328865052727803230430286780845402909781581095589367401129720944033855048365508315184235464976917663622628231510538283654471100699838988717820187392040074102027046838640341773841886525081566884295137908395887561496049124859573514640132981728674760986777595573393837772147441056390775082532338173766191006651609040287625629827011192369247125519256460463798329773252393901399567344449212586333326474296403408007454610126924973961119894790817528114923370023934917242396388248496313085822533801188260529259399886622832022021954458196513931197365057615694408162259453057038660635841363195189093140140599433957042883769376229542308816263532262879230746032856458609250232999219163283364308338132102222211617721403284139590959711702977027166002337006504656209108286556565084450689070982029489226840527605718738816910803348093217738375856494202433764142131892792170523819344777660548838175110247107425463082804151084263763117316954845902695942901265229699842270698867603816088238031332255724274261330922815463093178047962811050068503186222372774766116648497418815599096157519856532745337157234231598627174005756193643696328230324359060320955675103476047280127342053998022679154298097871167989508314639395582953007933765013505923227904237117126251688268535303143983423677769235440344729559948869200583991563751301389371714463547181825031334607274832302401865297544622656833114262053967529284157145787934611876471061975760884703676928767579287920800406077872932397818194086417595343367492379654191177107535375616254924413470638700246018506656748768958063853080925634221151091453508403622619559517696983589471010800818986077049266438533024173460685208149471559815454856516780298997566319091777107470638904804324483780634119953208219706469704469359169205633713083473461602775353462837230354306401014035634988328500600554625707321808879693075527989288973803790070504174359155524909357911397710831741186584369720417409729607674784963631571385428249529243235399241028767528706165540242988083887939266477794293325722330401169867403450854771701976358412183543363209189927810888869740886365104814068415387864853592960446889593843042383524991616994842354844800084477939510817217621378431448735862009666366069781825509882689201846758464566883636658691803010061627202988487102465119459874518538824406740254613912861974716711647649837012801856081000647467745105557501911500245504848723245486748989141907751712196187484443928553055232227912945508703226661242875559993303002455153218258139718195117265965965037111792619125067114100978640129693170324358058158436446242210373205770022344130559419836607918725025846818264177501134912271700183500472014863544133591725167784546911307149999591360544486788366217279874284910345104327040766215078007958229285059770415132395161572834963900806368556068583791677775728365077838848931353874409728829867226205830707626735105233651724494357784424822829880957757808942296224514382146021051212173497404821122947656886404196411193397962225967303086054840862409495074135998927749279643701831556049796808284597391071701247321193838552123725273106351586752842545479122753972678688456151441496398836505536099236973260639331513412634545976869735437950079356276759502459310679186912345005626470709395714967786694177605457980199792317351859910500730110838099681478823488721238142661019203234939169903985097238576579493685840438878135117605685398562247121912019371816995573060109315349198241553428802438913465802802712624586117645122978610153571014763935634411846219195755765126269468185968983361429495451803196964198792824594993820646663345797013480073129314266851583248189391850180836529095720735695342629240570052879698495001626227675570839744578394608552584104310164216146985672936918354254539503660553774487756626028006897664676323437871931692992743065944719106995782601458586824762746564926135885748434640213233782080014928477809201472925432266887964807249624001513923007393400068938772833255623736613100793582200337656223689438932298529757867445821815886059425943003213425837465659068767300113916742647738157050507531504613009104020692968714836881500163713767846053562144454630305710732611211814893611574898641620848343559120797139298173115156005294826402553222801897992474126501517066579279954501938157610702707511189869901578849185912480917331800304391531798515219227735265519882073692455706544543888324997394542648016865839898786468727186508594958660477005071476704714718871881168281155305688305518157041066357765901795554918873138624495235226664236452318024653106453038568483076842716842470226349180675170514084106312354484389759442354726178495180240484147638733395509891061774530740730403713860947869198183840143474063382716251816333942951924793276731466606589366891218270896193533981292980835117056242542030227332247395890385798895158024735675012111084049032951007713941962864907695295685289260298232051072352360744815554139529260120218516848133747078290486297826858234237114140084065394130651471408426046781191959098150891239003893154323893092011142736966447359902420546758352461255210487662762754182373579031268592518083782034014935244597239320714070635423578365608563573571028270109303193002194101132547294932806395871305889269401932824028456261490711275608483991734681800503252359850981016364522713417730002043687839213562137560862191105113406898736252460344103771549560758194042063304568812841640255638806544532264837701929711676580620493878208955833926591750557079558101594872878305208628549422747526097168181049647550756977123930459522315061253401454456905193656294498545237957229148285721365744777373543980081892484166749042609904309249542644150104020351857206549780934954400933125256082368819192368727366925455072522807284606371610281562296552355711845673335009855974620201947246235751212102409191334196680309605944642387432254785548747546132812238968662512154425321638112860740444033314405860289040137512997124918034248438328479929764843024140531778435896649505010092747876658932910539525085498944193172349704188288703325192629380861146329620358140907247130862005600618118889268421396068880879039208033935007560368237936492189111617444080929888724453679457653695303700930217076829496586094162084466331825426070202486104525698451566693795365430453789237890948819386592951041262356015909959315597781389293634176930371008047486158522689465366170359174610635336406878288152443413059234172818031986508319371900944340762814600718445866803495484107672778599426043823332510026194151846444073216541178124617060622641584601109386073193860927727432401057593589094863307581680157870315284130344591749823855410184208550964629497024986146722299302668207995333974677671225365677306417596527208328417696148704875832865142536133466569410864669915962266082407151399414803130053687743882252932421664902409148731168821663072857544005073931018203879478635726054739306958017887655937936810524316770914374446679321399090478470364607662187758237872942484399560378564038545087143556427689487869597895881062617773168449766116492977216243785783472118018184958496850871305122945490638527097118288571928264183873395973356041639294956887406740791853420749159651562846468339323526207976572572221820971754055470032066853465117867431595341583537696529792827962368725175947351923379691062649104876150357352117201639934759594105332545276682653025684224096722996042051168947682667209412229842413198212184734906399060136689014517015331604126524004923768248419369640240712626358710925143013325032288819801293949270841120036447227103460161946707837297832980760548709309712388519344014644002745785809625500309293278878758379707544503449666372924992664258607295497694399461231415628437308095601892145881758795008320775822366686482917777742272599717222407226471937240758700852356590461169601415975830994364784194352336123259121430765072122596939010625072529990290476716134350355951745815182172834782123321037415541527463378441722532403699515924036911540084100398077434564592300373935473360169454600872280895387687100747653224947258485826444478644602803568534098049832640733373111983446163902842065106376243603041882589823912841177785494912564596145789647926168531990944844022167054101376474324030776457942039375098640893489406123875728119594617088677866134724978425527385753200462324660433935970027180458564179855440367759346410313076358546695529773726903927279490987713468653267599049731966510792531462406071386875716220485861195046289052122543841262177198523435325472302981434731330115539162411915891474975717157212476401493602508850049019670728750902531134264248653581640659754077349071815836091489359286477009215974651326070174417301623564386920127753405453240721246985949341110420386153850220862572414852201129725083353266001793340211752070810605507863371231093765155075839854645080482029927833866600989316111649802916401556625139751865539378385210607152261663238295274848135024649701370609679688681063947150455443989296357747488085879714496346360573448942741174981940545391378603736970488589745544256528291253752530534231206747509161334012345818363100751954544505649952344277325799639421691869088050570554556742870921556019575256952680749340880336731016369922469119960197882973757766709006375472979902869888365816407992572779754872164090404166658957490315513068774254234236858283640563368630150329226709225571824253871008812476114089722755565361126253696342835124779559619151006130517988306861911837898712794928819581324027765673052419283263807147018371986057610567763731806027521039697256350946588339817070899590428262958361925648869267905807354973722547717538646579890564138393376569981243949061241102371070635011656624832600442306805944304074804021243702344235951779142835475364235476411995495569875928138621157258923185914124937420429020470639193168447292941868967845464786887965240494998499226169602609843021276648387662966034448511329401204935392186142474146763792859554952400402183750221452930361720321236544805127174273358448699859317365574410265857960691097533574037670487738919163722105764199490862748717236361182611486508709827252084485741508609652456375108914604509844546623893671458584645095546184272369072772208206980323634823695323019148174795719844519296421963073364203039640958265061256644094977771427872893283691472686717401546502979710223875445074421084099836621793046535133564050829980669366817820809899209674895757600158093660865052123496095812876805929507921722004136544137074621949511153365652245560630843591363333533113448527958771703861000418539135008684651460013450095198176697809494894240051910149015232755525495114293103121697976056843037034144477740971608372168133692791561444511783669593112942809524392941151480267297301814421351631400439538352694346717943472421329582772390236652298972398767485268513591053026592910265971336854070779598447167431001055527265304120406644954163187392005376134976367824426940059037550981772944193923934991946736104593504358651255561669460553304676190308249783580211709445722168331193432779171271831000948249660917284661385165001258024876409053635621567391923143459426392126914070634218804348384400006833938000979268321226637595725497762049082246750171689149729089777137300988221918582438896242373378122977721183739600646668903254805238848071517539567276465641444657398503101253996014470710127571105036172309633098648666688025382868386986241392388299357206284860426029226484722090918661855763411090057357005789153932915727713748986911948902035994402247958602665619673849847543223292169025961571147071526655820589523973895791849564151532897044643569406050550705495350739096997343788756503519307339007262350198145076125908947110385888751430964551073279624534604144070668268718408860617553914420551867629380845844928864728989269308023409291919362798266549336469329566926754186793742837982937183024619659248306145182604267479182749771888196597192313399705670902412967422632982460184957782168859427379362104474613857047759937440495359835663885885760458362614746036325649004733607352375369695817261267938182517389357842195819851413480871428270897552664632375022218341828903553916094480957583458133767303970134105220083083235790046140041514471638790396637875588231737860367109706199589422530046747088297045109031486853711277407828515105973269083398582139674718977092159781565767252974703066036148972291560215469004983104289949130702755083637302303003386965734236585460229035633564555273152702791647103935560858229960839439010377188943393850496355654232754433943617490410535289812598144868655251476140934483334107588859988166307021036446174942514778348115901920242123974325055351935584838667547390710032274399801571416575318436183041888205928181896573982430318621406670647244810934815332709161714461977687102132154881845100275478650344528945685759172076715718406332288558409663425799987455993167263983329269496876485816407808780001804757714280256124646822036573887947369127793943251434678459089858615081268312289408284289072158984662253459812809984534185251295425716942150361783412124865522092319351022716633620819328104802275145890578434695857571124003488966501936945891874759846655017696160639549643907990515531202703353709857015706901767656165317050596210361485865043061700673702694272636224010412699785525095277321085139290095798349905006621726195162736681956353159856333623440846266445328839960264845604355522544315397744797069879755881323852564351949554021887705050522357242181799123066858101355589728786304182390802090498908461052517880041663676530275805725390645075352154079279224832665426886024976533359036953773544058193512047964991428621370258328032471387995440124062083526819085340344035947598198168256223392950509686420784038325364750091315256999372106250850537176260797833535000010886661190126679901705127559036535471746716521073338816655543194953745397528256457797624603478715654168828222428567946372910098911791343778367625328477147379368688371325018133807355441612488212330951715217205124543406248024833912635791457505912879933009742927473590380877932327766455693292270771416513961073905798204589776360635917322973001285749745271144785684828488376065873938601725260116968878868724988538567640793680313855019966861033042666898397987365027996578932344737628783370704314941480892448986420712563526507464888021521225702229235997548433863539980310698797961760069229824877553911369755201913652795925233052750540809806946220933346037640817311083655009170887255284253272807977483824406257663753096530051477907605996975362151643791747665744413143421082622735213143284070147449280998254597204028899687750914068527935857435898137680810400800696057715662255770692761504465515649001658726025838775948015770740398796217513299859518954690468936147412279573605381097764545934186367012965599272828192619208362935079165523079070037805857126327105643360003307218455160427459266419136870519469517661555298587446492706851442528970016178904294717496928191764887443386522729677437113596682599178334404005196582194059256988448068890907599838582536526890037048536829564937353587674812262759175159017236499311676096629619370697062579086659606728934322445977842178309162231904417235600396700384902163095054498452715152062268177847988804209323288243106201518537843065649185670075203242569762920268326096449607691797651807412776038146940748449197228134198465046731697347660866904053743108516910439327598424472492964591577050931006264644292844143423931185268275750173529126841072968894308100849119646344613894694560210133304865498226659241243679687574191912519437289907732809549815204787864875222311477330388608453478143638957996618256854352342120577452005282521133663475025933412950482142775753559969334058161225982377572719798368959330560992138756345028794950249649650556901623528043990519404343103297145422541475080410347501804041005891508454540268795817367851441548415590111621219888229264587416822438322683484424459537500454202820298582470240252871973946133902708545383502799949912885367474756765322332075906498000989243777152462038661488607369728480938000663269796325391436990298401239984831655502643565689524679105499991654322899708100793681001054612536430216775696185387749370442315834857452325826851708006988320636780231665506309128707988552864290104582412979139234568796949836875736619001792346176316609377878006135844561300768440157672937148141515779837286256000474420549178627823876496718421318479307800628760963861268710148389886573563841370525714469752602925415581776995400596010581547008501346915578457844463808597059462413415260150840863155173740373357402964743801115585305263314775348250820104585655460439216701460999548191497091195259602297302797945365378056867732442489251894944134794329070208484601757042777732273440815876050859826921214437457271760350254119060981247619386385592034614208871701631137984317232473066981977303734646852029993976732700726551281278452167277763039564006786501096954080082086938345481952539830625808305843190843801721671142745790162249828255305751293900997743928119899672701443838574764356663236721765192329635476812107519900537510877039980673909184264295460162323309304207925987501828065436173665810151978890577640448471381094935262768168609534149467907412889548140675175754451449829918763427216638307204734288378174601796322325720044605247162057976915135792684933538717976633769457449696546366741957572540862006833019617461335039208853001671365484123531000169417294485420017027019464799096782398639948370686504437130527806878582443269842341241222879630383189930870606096460247739147965568201363927552669132086957024835616233873322956107447327537718708819032317499692142427193320085543324329179671582713180878106578721557145111357467158457421810874759682307262565278392774072658962708930562256462900789764780941611219747878536852728667916889335020089947133823778735455799262594763386465705926976496503605438967430074521462352024451224800137306983004395092793103545724281978492522185973724667656563417619242995530731332913199984881874690396258756442314385408280591805749374018635866741682631557474195472555969908361151824361061686553129812416033936094986552564552079223345823500081685689407858735759747272691228579260503483935646201656685537389133979435588549525382094214558159682699750513774685531784939666179503813371507578467070977352486888381639659049752387452041159184399371734973456715765086261203992311442111413193283463018188644148797562932792412832211673868288531010676437634068054324985503146216068346488489963808016419546599403033318860961389636426420418165901883054041998589652644328174688503497484288287663499570535872581909669801716823309413396763147039705583115317019807821637225701171452861655244382677605719050436580379358688388000892592476584577589537706782308229278484868351456865765179339620596394681557913969219470412520544479755295390390559025729007445216956069026668909638095126137799863669637655311665267507523801985788750958555065490290728183873461643982867950242961951387268871345702787500882377178622730136596105347778610259011142999793693287700959592318953952466055850566805031993284657624096524069408064587718340046374189255150887458385692787866652922534321667637765773538550449569308014052979894707800963277780033040370505334598129285464570764524879034825392661501561018484090838407011732432426752730217424708453798345213554217165469643834098840273842231943875523614895029402975546391365058034883304030198210212400304502553106903448360510559402345753257870727446259218189640823366351585390885239398239072558959059388600481841896745387724540158493040751425195137679616460130886885040510904254151154982461040702682808816846382700258304659774597485869292593903059820082385638116189818155702051054390073371411097982741897254117205031988438973151456283669159024619166695601860470167334209819354008543497131567475012710425460793349292043734161725916253427528582075683275880569913594536855007341323766691710396650202747675026537195699780339359612552378120349431296221984441573012286496936401423976072311450778757055093479609049270818756674183367749310037671961576631660333526289611606775468839195386045547429475423939404247597902604424076315615803037542307508474618376997956669566726728622473446111932752895931658860973845177469857629465482508047593989711022633305906204247068740317480075625197147093808313906740577118285613606920432053946856827134586186869674831070807749531541930950126631726831920330956206054192393448265685656329685945274627965281561200249262154518664978344484365768851783881890121172793604359540582002997891740282183148711019022171619366390073319586473938761420349710673712717816269287862853860670720591140279494171751338215206744800492515621266634217272757867304196968994090418837338144858314516062548166937744335928182914990674927237569475141976386226230136656940830230907555929694802049811611600915259998679403229257366342098815534683021529916093480894023535508994674003697729138430679294726933845908163265347655010038850353895943229150138396827915466268304266478129744607183214363441795822066919716970652271856613243116985584741610814761377225305285217197750551781708863458804616877471049328221536913937189800464423155191339282999920842905865167754858294931456040180403724644932601088867976059488030031554882980381433441119272682009389319225854251447279866378128042613683470512180521158571000311593049587863559937649398699937779764354933409151002587978756464531443386135946967835086490048874325849977898565073814071487542034402418097063325425904439048575765488921629271158112973040750418486362350526786746439995277673941253013314758293203378661467373324666390105651964194888755768864106400854607791985805699880283989488249288152207560719439132433552741367048444298889991107155408115201763838275595870391328286387059874713113634226774180469073218379039953494879639012280644718917613558118236489294956974429606621321622403936697472153780478582573443276837330345790806322111250385552245596457414741208672681159747374882144737569321717799009306885351170271054535418283798241457552718608389629467763404810540009719999718732709192555140325052344976054578342625785380797049612118058517327723572581555205476461894218202405344557740732361749781031617127885449256797665050959628035769717147781505911775825923263472165999874627699650246571463146398273809878719074205247925034356074042754824816523556103707493776808433300989282638964782243061297691225806925851451487568949326387228249971192027605758067834666521760345802060706191530857795730873206863469296351952853945649334610782220903305065390066958839396872445694359959425344155641736553918953356940224510589910295746492985913978125328773662937787557616855327342951015338417472825775137879258334754820892703790115218744595377243187649544804227893234262295581223791692150165210091843977071380060976800795408956650851789916937920577472033906929334506724063165787000638625130142447120576172403244166066055438385527270120066897685300216201454866317853979706683208823779474241714162422113465371409861826305272521812382169116351617971722593966132013648217982670846107082317718015198556873439721800259419414762447293877139094548673582288708291541388790186171261431059785803460268323685266385856630768363295962934167329120246709899469016100453197215119720950337109696774511087956540359913742981376638933301371338687918437836091579670519867793351435576673477613285103101043396159277947411227863611649391960298858080443066886354978710582479899434994774041668807257901080099325839593526560540264138550847125490027391453083715136492548474662323027348854146365693252722187789397911490441434800675851734914023788121114635300291194170312689093892453699564147732293782409616817517733716506611245448294927923776100522827409099590111596542819409805665039929807305970355166259173119996540320747519622560825424789025920897998915821417652945986818702433873114254375611860775682807994895854752000648547226012302463993475689657728719566119936367545982065900333151577355846970822426444319645037146723178293957987651989974096385359609671878763466224781147795030996414643485505029017674877326215518920041525560599750646511741847395776402397543973278156129063262781047085483322633142879346105241887151330537718720710710336956312778699040102379885821093865465482014827635093489270254059408224580875809681474946717394514723028916323487472923853502679590918184882490896078639197508653907827620235099772952076116202456592330626313514171232233394046642859284037082203217793964924752913268146652585149329666914961869706925581091659397492666280727170353382651100673720725256537520803946157435153725053834194368069436093412437960627516492563784570617759491106320554941255074457830638773790040019515847695640599760218446067933353850488875264197911910596162077782453714377675165975245963863085473572927821148832846359111689017018105747349133955060650693520688940108938950584385580140254162234702942213142852776756108159715574849638711265566190064124776958509624810824484700659272335915081889062095001266481889628710387274522480439272653847148858713653415385844297805099615957122164692612476069698811771326058453868252988279368502479014445569296913789921883781881405464658020085628524851816258548330027246224830549686631110524394902710862739048504211362784209134217552385291271890213660779730619856163839918897325392770711953365492423907156123036346804477846616809310822394998907897742295085566505299511387757742466765108884381328815815229547218564639576287079301006899130572108481252566938294911038515700445056784730296067189905310268630752171293391031244647987069311373558126261289112453297996217853796147862840185616682809122016078993245620932146883201339717073532095775897072727571420756186861571693822004619923030626900451561783156753098616335815534067785689546541943276712969255405386893291099958924176351827781224832775167473639500544791537975853825786280670616303161407210991615843487785902477899157767449317143755551872161352011524896670277630812452937682916613358644366599008297389004650490473450352062637836635755896992218522709258435691333515197603698531790288992425354908664992752595658490795936027456291748071073983513050720422989386208591707295211999030208933630592941382546297393815482649271898282980400342845630832542746501155464970606476940145292053336831779727982078415794750872578007781465500004864591291088526895948657590521631763357287384855372902566662681211656634055742761649365076403393643561522743424220304028635641476525411157921481528660037254394044335860973806853364872284717736404736653805175082881489983028761021347518116038358279010287035738266860480054295401271662264042044522301324414635769684547575138068582037771615115716067391307184707272562359686538809783379627517598900505959178896000794873160803782770708219089189142731586224528234424373165026027106092966861013888557617521906673044092871902273732831011972136651909595209046312698701900813741986496313424000349693753432798576967808041323628278796919858849686088574857306285715828975499077574556018718821003649696830353245074823467965046106570842361251814044168387687000499211349817509673381046110196240759640116861467803239346926319110721953461991300379283270386339915983662567115394164220665039829893593667414164266077277317999827935276010623691203213181285892647936794650185248897220607197802259301726650236636956430807512981151245795324133634402611438384301864100300801950512914166777240123288052393779436792340251173671558512009079204325754235944185940894575145129022747198761533275526551494893191794974198061108013604387290548167849143479769967822364742596410065802083833475109028414424701373890822163915093667670325027995726020457100768081983977104332215585441880681275374183725360085715766244553846911115928569337994107561889450804519669622045468163211823808445095451874847518011971258174119371585291504007119897425425348998985703417740458471200419338738642719523214415577421859285852623083664934686971572583079085409450067531582390209073640185247547250046245652625306654713173329362798861194183816309487776857728153923482528458669782568410602120274677229222753484257391331982794510346189987833350573353718335415430969104540538998846180633624847020064115937895426772689397529617343328245682540284531427628950685213066734930263153056338008978534967691294214906904476604928380738114811849352131379545758131562157205653737193335362726764619905704297392984643775085857122885164753617667167429754302555258949351833401143321752571697374783738862942973476920101559859685256562917162165966486103292255428077340214371785377768838884798458458077566190830848048771574193691008443488616651832895921878717195020656725928622563740207218914427593751418495369160838005936568269193787067567798554112800705740284997545875345642984910805941683349505143586229327547923713932476855775319194976219184828237693647076400080919151503763122290214921657147766868792641000117976556232110787345460687068155319109563075479105751393527898322825154622725339723129100034496238893141201887005356542749170906167595198725694136341679400038680962153407489255970691214627988409447368064673227314543822029416988288710039690193464464613791129255567389191981313343211398680833792014330231243186665907906100405501874421736622917939694623188646441626197281420954066875408680799665723839726288662604261137661516893597810791930039527920953294541366372876271291621855347040596399041573976228726007136013089149707299854022870537625851109467424067323633142725846418616182759290161066269952320331130196900532451036622869130047816509264209026359193361977951338751089642452721063844789092369062066983182335567127650700220498705977986718794580216325957784345526957376103352060054503910232919090177147765269747788544742569960939252853089921702179092867848221484718553333615520834013241855472523828024544156319085594617494653250032929530058387135431275303277627339948202118325852872980260493143851192060222841197162982051107712945334622159696214867449982150445306781626829179410361149931892856077070384614485380606928418780558309175892657765877489707861633104763091409572068709488869225143002716705409383603469416935127902906031109445972020265841080941855415570810757556222094698588564796751251558600389821286073247028408856276032433036742780063011751203373212057077801958469296058545270273315834796203452805394359657199566901135513429805372085599032470468183530868042465284234203478974131481436473492291403779255037904028131578611169775117883189223661330031735407312615366782775895479808465517328462854258979528123895568527625319805887785678021076874004957619238292063596088724347215130732111514792190088213188615186355855960130879854145733651025390721362481707292135994454118895209787133930210853013530005021367778871662778046357864391177317401116500168138706174034927875380796819363515752736242865433025246054932943988202789872413134952786492500152401615798195318003410262357732906220651461908836669129958526888254854951438994419999475853760388725361038454161698087405478228891783054093805696291138579710293295095504637780703388846732402925177910537806575268089139860940177106562807688548711636754443977927925136137454764157636708331991602762780731077903667882218489122128867635723285018056417073053672994220345065321256825136898924079578283187718528791026759911614416449289716608138317200148367518496920045719808197679611452317964903528288799881968419303163335282610429554793315426550315534979553332641321347814229656688987579502188068859645628468493651942629995110774155839178012402108975844158942356826250155049351222496539544686434732197192864049555228733302526379702651713163828574595928316023772942038052395319265472991650796682154798308819492519670657152180563308753184395217058688491248012227826709115720922008320242160070735047586431566272872895666887842006925845637586076201890662020277030459300162423630455383940999138620081450111065963155705774935430655025109444970195379213886278447667989868895888827635087283278590319692478907019399558782186800921054388739830612512111559311246475975707503605761592289153306494625266460775436198701888068407011855130836930148645168388559292581962643192820596918362114721079390796095154670644131150119718245581284795988119923004786096833953419507209350220025018767720055772108818995376592465026050606165729264387154386386423045211488905470354560022268058889961473724550011713587463929074938940246809211833683198583112165355873460134181245612391455655261654592974363521594402640545936874273271674236523383867801373533832694329040847318082581921766051980644797792827525676625460194349536457786547752710529886048263455698984887474915501684589090185615785097951250384796947832815409573371684567576653682416653247062701903881298240540771180614675839830045957696791135028453942834860819056528948930374856803397606609726734870046463565525787646080968908958651256029199434158545288760478401756482214329412866750509417950291238127245656844238971771748260196155578762832727066546540033780955045242322276661313242546944303281641116433436223662930480350507885198092386682892833265449151546680410740127223681463860347633185567254867986119691111134927020869830676313948072242958499215039414116641845819409906733506522683253568295211180120411904572042057289895417800936347713977660748117181602645843168492093740948803574327597889909222214428202189095724803995632812238861682814852292179275033721372842296301790916646475278043772515440103820720246475992073828655307111202279907883974381013345158714719726576396097273084422504810395249439290544075209176826342808085587529078523934288174498825986911724410377862316969349555616314797762922795459760656858088797457703692333954312158540083885777581463943949048730288787015833784044840979597799677182761501135664406958619656997456912049994402768006975367277291090135282933838032724314583476955763677979528968687960814521296244966164398290698644854547222190291718307081993512365621966670953309885926315402510857056040874508245509160348156122658503205159220666690524699819737417380140861937550361664093611558085102386879668470248181307690043513190660991687677989691336917876169525232422435907621301990515061930237567286310217731341704601027986665623220033826140603823109562288263482028850911103990998739695898745899720936919717116767740417846529693720396862971277960831678278878025731555975841087562125356617510372769951835641379514367805095768617073029855063838367140345363102337096863654306723290283795003541942901855567272522909902348621407838224826830180999825116711663157290071745348473502028785459386880821247502027674045240223048913513426240198182868969683799922145988346965694805903939131365312473122496069467698263385560839402276985134082569810385193778563021719773332524388702034309318011211381505772638630386709444361297762400190401155181860825407676413235328208239732978746080453115705380883248520846407348808566246676524669766808585594596409986799587759340676891721657678115511075946378180959066564443068817446846271290871858197256798834407390375259620616113470097337985812627323600674181945755797511672964056384373434092264150410713750309229158694000095401535069511004056286756994521659811305487100926795638501810940471539337347460075303939201328351079100991654348190721770147342843999208795058925942568027366476846084101237550388778908943026118443083581498263444977216479617017808287037106008237299554830359766912636458971938190106537782057338769977587137813774610927315158448657185476224927920621746506629186164185376294301140604336221437450477662211986961083748888114216267433040859104301741839341829781135216975794955193412867714344817369370318648815251418964808805008431500236259293812333139036339362276997838164285476523739865530128752616565713682152506097467445774286836661404184674572555411238569198353035395318498289673345436134345628745409592345123467845610464899549723855294726133819652332510018369559553988353422230907445481137851081883927367899390038646129557843239586429859964928274199663149392860653548103015060861236003464419966360485572029745896645054383107248414223954333226456813881308050071589024656175803859205437584506512844166823977833346796469039771388965589194225502281313441134168242838991708026284490121690174666119498445820808077301148246515286690151179118996559141427195715907433820126347788120218862775934560317565219470338981786930964265155083803299472010694509909944094855137491924521574464240294018806927141283789967346979873254243301559906916273303954996329732047155659798760983494793508785493960104217859185738064498775164176577767286173950151238101343451641568357972512366541141104533203427938997670281258608405364855959213179293765282759072354557158153139145245847583727541165269129837901963336800901030456606245902239566259411531484816982893775291696146749080428978320179061996021251958254797675225077292149394863207467767762488255264697926285399975439827526136071963675819479649069419595898645447196658122418534560459676072938093768790406903348012477975769603738896254530238621341456838017703082139311938433734961772465467071552473571411289838760192814620881349292331345385404114081685394976415213238885991588097040406807565464852205567681334382245711570941951052038958531791472239874582105382609872400779133778334128317768252639247781118627523629581675029857037784476878074701994617464268964719601005026485597709541388257551252494300587030909327467259714005954652741125983365241984240151634984646314559493671073279712407269869561839128613436980942842409525356371158691929763682571077475751698254635193644162629257634931798955779597051670193241379579095580627740975078430371659268676825285233565573737619544816798804979034599065657829711534213370081028917939516405040691563066331530376502089993521961200851055242315589670536130111049187092950161748760058393788027534294927426634937042311064244233072563283227184183337839015782285584111639563513718293671790071838477411614821900866407341033151434108270642820574820568761230899351261929719839212329351388775948715338161293371252281454078192931526426110437337621262014398216812210980318089483966770126122530163224172903105035307841585490674575662859820831994853499142576461464975444735792556573971526969736180855654087057519897797111368438175030394337720638079377029006919311230166490465877082060735147301293306614717413647325547870643636848315012807819239638547957405218389432453983576758192318260337657506337606437833948244660848196469565403241324219488613292487320222559615073029060024997873792335009711406998552930452078108716191057057696532403324061283776732566565961260312720428903970600201911783439372282994625201579661908382025517742855809595700964645600912342906286386724640268181083752813388578504679314886041988627707713633183117477855817267142375087752152200017072140395080946298327364899259202636709590216047747654532629231054846661962674222826446926241649406357098539806706472317608197652455947163768682186182497272116687390250830531821315032687170849145874037371188776277563410297850767668361156655473982226984481555333792906774982210225709942880728166128826595347724441341895911614952741187295264344295722922966969580252358633064447300554032583168957262382827464210955127957711919575152809034646182639011993402375835793797225754338494666870187132292716563226897218285424295652650914399741302221060497533199618266006287982640040283078566216637700916845581507461480888260041516865234554009294176888476743452682903987767516384025033317148729618203799537666663428732298480924023072511019845800636041444982034612142451721564057921953983199941634052420889314643881778145024474616565549481418364538733471918512715423022084361617765955780308670411998063667975267983768572928474231152174689180900421383891406712288646103494862620749088138429599499207959667405113765094201170488682378343874376776999319915997017143956470549337510695702135398184884723089710124770104023708724906709790600664743016459968843432474543977147895316597008658068601656699240687235737494411960474528466963089353926909428981058743979264604657010983305904768960623567898636294817927978149053064737168665800334129873933853537120313481655264882940208761067646791969759993746712792004098506956799635769497097242987730475354916002532439619560421553323787658890759432752999668364802938583290718551314987210989422955099615385815061661949402162258614704613613871704326677767673838724742492330324676169065974782103619326235091617633831967151615639537383090622347070735117546222715683373169945926865524931915732511599952816684139236372532124164923101397947302919160710281632344917715420089689171060414120126920098469566440374768360904915782014691231184652360656745601594295276223452682836853483328576662040601152751606039529860439715106227672035357318317252089882090376473956515575963821697477523627975360293228493600620879935571903735286332255154542657078597448732442170787610769010284342426764481478581011802037175411759817403575753803969612727798842270912736320366857018317557967870689863480182137326263212674644577934639927162409340002170500662976338622630778598670925547944509718364265319868434176188155405320375549406651682834954471595070594971883977720048974798257300949813334852527038796359122156138605925083063982839382392011828184003641550953539617031015878516894739960676139828828595214011151537753403428383281804550904774618187080495355771243351581993130571458366077786178946610697260851914744772542819574896451450906312130795845263201488391691169375940432086908270696972730913988844670119078243239521494839553362427480615676242097211519031799502972693798915872207679329114006600623213855006024593227528018336341777100345529449436267694297166070582055520098371083282979496045175883247218240386091199792614676411484243486340251654182697232734544674308693752937102200055957416133169462536449480636291888232546897732560892386957598800455436998543344888580476790777708456371302194315691843295685665954420439960224615884229917008837536134017098029603391325878623115892761345510880791259689255037134151079244048486754044104876114388651402411982000026772098818522452843026721947543631828089465651554488582351046108405285214092314391890079079272053490857171805655605013612640364929674406861016392889516079024610923318308024161337098729786873960486104483195330070870936275352961222237190883122668589944341100852666892136833651024720257771184881030473535426762116032700304133734909210954480641491283396425585562865657146218722259471062742359148907924252818939186477141014673492123595590930651293737568830975410253439462606313927119181299561989651941438991041491312903352933918866642976926053415856991990224493300855418277391728131107447368627065019945750159255189948682984901139273530137336085272123257667800546595483520427749727136614093914687938436283913877232978106518688414010766669278625137793828801543901843037919635726734077818704899168681584948708645664885077679336817703674439637435594042762340625975698023024045018971569881602326683965532738209687620244867922380111402790394947227813681039701312258856115275013294086543129150504929144102197595762493119495282613762853215645947739668106320573027033979276362752228385403273460197683587669625143736687174715908465172975218645925009136316055821278310449148244995147957758613302529711537105541546933161860095763719405194141070816211493295852665662897681169501352665381057278602941651220184371039832002144403871248280977387852826663751027946635862232297432278925611898312970867900386699685313846704033869911584397683015485624039796612623325009265165198990244488175878538065140627194985296638195466579501609585531267438920579213036134276432271588171982841567584179617793646323804422866613346678731212927292130555449012899999010018568305389709759415690941963098054760399329680938791507361670437762772401890040643343823942012782345868862035113900629809343738453034055893843128719573352368549850846096283734463449813023008618796439607581610739981915902812129937027592892731801952737186924027417335135566819839801504855994936724320823172234075004213945417406037922281582730720736577100059420693421321952955250986787084540818196804691369398150264711682999724890175779499164484161442879315324156158147931323799728360684219253032004300875247942591552689319910155548751717483324565700655282726959279925331101879602719101938558800839132712585909195048808575633504524410322646365011870845893996444994648302683921719721680284449462197388289225858331805879397391894073252484136238937475871977405885232435420714885336187145339292782734855505568612719304944864430082578257465070121252938964989920762596449784315329971092930282965728684253150494020341577462843965560523464926292520815119308474810167598335539983576115807440717512109698447883950821607850030055583485484320793951637814247762912273670557527190386070851539716897186226296139370962340854946808985817271558967605781793956580623788302065491624108559972345587223558158803554615721218885862003266548890887797729534422684370272827936063086936662822500851616039008895070039034891303600816345918240236870304345986866922018375265379708158273187935203528972195579082131267727912829615066035200027452751323187126032876495046344579226332041189795863282792270654441495271098493979261873129709622257660645893223620346925705529687045301027239169425759122841136929690805266695263636623345714300570379620930972893335456043393203682127003013589457310777073189070899947749858126364776663934751411949599166406524541365153434177052029878398476677137122566590700109559252881465615042453376622584477277129844158355148734781630209933457547968379586256371165693959728590460649821264448374028268884496436785512163207523676657963322067002823261687138941806547385890900137504535981793964699861739549915999934943579757771562654690657392956797558285021347593049942699388646532316909210773907843804124149624803634177478827851005853539345185992247125269270582816111100979198307793739740940182230649013914159156241771277744302440567137040777159056376996876107864003560355520259310431126694697980096529194361837320504840456506500746528643415003727893063981883428689810489151456678525199621551709370344708638584802261256314334400296241691406163303079667336493793432864225209730559635738815023525700655093590581008334815695242929616849484924282423286263631326710431450076162507112675063240734164285712461684057332488800432155598048521153837136969213633046596935821256787982908246364678003093745739816409660451964081973200533186135661071900434691430794615286211134138513961033158792066228209716193271972230139405873605372310297150951763120049514768227785117026995089537979673259581398396071041279810531207554394903899059660346250791294445267464152552824765145116338043252136547278919823140910460913793667166119634030412741823645311608059828932928104834481129238890392131381420286534280143298511833197239775464837118739509010613530410129178464645616033805791470135686079293155256879281513205221904015192972443143426330716157616197057300894552126478218363526052926813551718720940221528608917853708102964459802805439344882204942307871780490361189111667437263730333920609739737423382733827476428581306556582116444857723615183791924373864999067898381605478770525969551478504331652955387675634745267336642621677373070549715380448290059689079122002072902522366828580733910525022638334475521881333375315502941142062647842053207419536300838006844129681523452557643220696345225917542483317307429465705519127551773565881248481130517139193282412807013585305010573698208571590236452398369721516660770655595905927118740253262346646903332015162658263141538548556265224663969871946087446111954534525256898889703830222017153644001530274591358048778319260295684039280054311844193746709230578924340796325778203809839288236077980120061552244545295059774011808157281960204565160221606682332105565703021482586998385550770612977183018854204053099391407130241354223160879382803738101445732854174964537090857971437277747586715882250090779071941660208424221444672814910105192559004525561187257082558724029848722101020672893358335691500000416700508573245846426212682843502562727825243297469284467292886374961253176620243558977996212446878519371498997022362061675026907325421727470571930597360136847998213430175498256408808103601068004129184965264391429123769435458246977152765183306950130283740270354664352530923587285710220122323439074696592417381310140285222129434333226589033404947968233146152993543841374502651272064334924821161708534462460316030048711799346019411823335748688517808701878666025926818123136949583583485891748307840857948033143844066327694932377143410388458371816273020557209530715652598494631163070248562117162508142091876882230719689108063085459936815711947447001385382414386157862977890234030082619654532322098785050133665883955309880223269263037097264272584756196210799504279299802062249492260119188981118318324586714469362896079731339334984015897369779532613734807636710785633955814361110294429126660321810586678651298433668326201100186030157053214867563452841696944106249522194190590766791808155200750019848267037694185721077851098604135029676170988951705020517178686510949377320238034392222598108089496113943698997592615277528778462029579024129075101256564421676035051554220073723233241786463077174594691760566894735520698335278639663670257844929359668327918903490466307563688790712694823375777547690785453397115289091090816401071722952779351368358134985208590160281371126002859150356380474848548362577927929522382163806391358789477474673574907773377353368265765610659747765423461170263169983318833364317379869421270463967892564955205272049659132876994356785002423768974296643016007644135269528888649072054321932571850030127637736662357503725319231101653278199589677491924578663897898438071639311473222855634099928819817855566210757704671321570553171731980659854425168260478911883447856114975939167355011902803878552340285294219567218453880232307775966313964519557814454483947000523539107989564814586289764020883171524579396346117098979717140146217799602456371193956147849148977926116022177233202354981348213153238868799306142646092241502475172521214987713172948493408983802036403776683662186226327808391766103853102379181508873091454581326803890612553054359797287776572105409831399559971241151061350537311839255056959173490584570454914739945281970304695446600357760235081260807608774585780226476835982523204096911324792365406639923255688944378081995086060863293839658572292830154188884333851828156799243644741725702636133527598702263870674313417495797719039462673142948796944681872609887317642478185663333659818830011661290330512732538648240871279067861000842626550474982507639128912709285790335129789723339874774050234501907717534341370017859097386140941178800831583641854665138547206239767491633750996574703143270701657889965054649666825401337970419511081491774866811572245053408526474480464721314854433605596860429220168162756095912479395740608193406845313315941019879501439831719478463671124620057423610937603005578269996149176352912972069342905470070428940681227835925837077985755902814238216531715969017867147851776508998915578856631745315746112609684494618072780925691166117538993891394446600831967901982342729954348921971180329669636321291262018607482258700515635171268474805632675740114996515463677251347619981196966615942271324766077524345175358053619137678223347326740961025554654736952719823877193906809129135461494130747744296340640648840860072862450930606083180312062287561003760790304614382719762691215178100728122607926129255403566926463283936806324653164518901924653204815524691587732619979311235334370552218492482043825164695186647707694485522564305267162896678783715252214700551298711318120153807330022583121452617987759618663080786544408701117608717033256273435557000319162924731347740015734169897559700939260542291746439405170039442847858825612004422972516620750693697257329447256474498701353145505710030432669126937381566533726489185694450201918581684976158199645586318772371442272432999094318346434218155375487561548791718934647050316661716036604713140368749229145067583354811529454829576934245481739970104718544740109441062611740039482836897088589374500530141700624712565899712654286944784914507650968615336407083769243906262530064961944368601580944110923426748927744181643121557652205323956040178974029657241663294802129633977199672147320023260828839597739245083906817803678649155097269211455827621793333879118365346436069025433106347689732335726151382355502647645552611861994894615268751475556569937738390576571285317990218755494532287785611699916389388075057469475813693289111384728093858134366583931385007576460177112249711430001323152706850188005209933953035114891617590419582287492434701398037447056338028085333021819521106540615687237322820158577506138279746532192656095574693677615306265224635658737003108397437085253550935244311087411979200764024031449212650060852063208515293875537701080784881436749101332207606167305097716102256581218459764689522867345233056213764827274035606018302107974310787516121437626642416299486559816395165425887135138947166414314006506051983180021976183433298296958423896547731100494345639505922779739461127882403270391003234450431130076686548300721820290281545695598691348071285053524044188442738658917157231985658925333258439477928151092434234295818060941843285445151477036617795016284046699767423587315278023408239559382036584513679478277349094908515946941046166323053061281010095605748174156541587641190195199370049580414501690042395590950164161979869523200510618916398174509729336583962144031764654548143457961368136460101330350115466070594646646449756673162134045128638041170464870225247829778773055359092650106702937589293984897915436244555244292718191469485117974158944102477587805865174215809513074849650975523555776790143235794683908420514266474922404388101738609490426418519801389034155553586700479491683616582888713067810962117264037972379363707104072816949112867078383551929660939951313371570271241330659032367054916866671068899713961751357821627479073289442020670495077769231456817186833220310836455598365981258825880293097822159461996940274341364349810426131811123306611269110978764734780091094921030852196578693410890063695981930972939420697175394602191065312380470230325070458367577970612930117375015262173992460888873650247594851154105529020156051403966821962070751782209684878699340031088176567155660007989808653324448268479574384957406733236023710091137074413940562881610735100666652292534837753118442161345182450666438808397729321479687906885968620428985838549701939307656943091509296509914122560905626000687240887354885057145213423379149763913819799063665513506999040107519319783360843698476489338557471875595629315797588604647145679654771778291484698621372667809653531395648572035797274500182228033019458363543596728938743302080563223459581031865998458434138410956076603040270778145352824974351798785030015820982062794932518694884131038312475625431804983101628224988379731618918815301910998713905361457085166976081926427795781817274468056512729411224247975856243533654612147446331555658309596011564567469661136420860492230816580708467535211248546361844611472667259562510358867764435886669843798352700697700030114212583534680966094611234050632870786684727536596909211165504036620841071897514054736387209331267179725150190470346118803246600571002775701010376614081908162607283103091209479776122665734405172094311132109588975222873562543884644874924000105195110689717425931905637365377959487889144118679012967026462891261154446150396353938819900536943325187917104590088026864493592071886345722982290324192176151292097092649227694204131663221185795068498032393450479468621097279926256363695838556296222978263844634881557259824046516755622905970989297131554940223793006911764757019574538596014908039774328425670301640781161321532975015861410643032961905742880111778354591775719429283222862542047250031191856707053896558281699119670522147661348706643352171853717533357331926099304991187761460470702098426083700198167802430948807092549991022952765775096005787009791825374524248384391662781278412487331361096637130272365395417635444391105580480370161524455774022287090279399052017150821111140218072905903233702715758980528018058781656866268267803377029976950119485853225397229411526720227612137792499517937840341895338330144715731309026965135466224487644059788075223257443083424902817294416202901597282157568498633224653666858938842516223219449867778780611541748216613038234848989955417119552101628626056517958073211904986363295116689505341015267358525308781789721097093266737846068366732455674609205712864946415696708115547690684683047766379333230566163308334024096594265244073308294220367231871012198378996105053254974523993075517890438123220160234415603110289210106189684624489661182728960797168523937737822495710774249300876823913291428834047509982346572480490584323124431735326930718471775929940402957788002536675669563105214154403301896101521728624824725012118349664037784918393867417632141456427336711692222465932843008574885826364057693460967587112922782429864895501771142129920307505930487784753116410820422505491623214229128143333901434648135323238904495155104754740381810293201935815106537219305079050752105733508023252782654218807391459950269525383544626166635065139167158371437023511572039202918541454882839296109423913060043294023209224613159475389221705278779524028014009153897662156975559592057933818939222705415412030450306977979007062754940794335023746071449307158895504156268291364840461340634186308815773013820054977903389866337429920530168872219734162906952739310706124311446288127403415834936942037618063946603149900200137045490616048921448726616355276073908380345512486849411233585730176705656191097006356995123653318400497951907824087822225924629757473610475335257414323500526511990919175509359402631596426953949423805220339887413052447175242872863229381088824073116481199925790149195026334792339277013860206354173472532369370561476887582560475660018018139334181152124982623680598500749611376116760052268557543391808776146832802323266105306689092747372177671465810229279703990600479153083424434564343257047297029564527504203109240159320882141545938540290797058791121235874802693816701437048117375912597381483899422423899986179517541797175016238308263011163130516664259581660365837382119387431074589219150787917803072264509120242649272842518162217790109782342394990350110549301316228079909313332929225483744840453399736527447393129013505726281609023518151214712605587935623279890340529904499531594756335442369147810126062962270455440764957430092058931394791997041398933078103131680292882311739990989274536001982797120487292283662121330445997624726760778623003980261419588339543803317835946336930256795920907765787702139960860197512166870374243032653670858158961179013618591930727368045305435280801077929506328169363880365971943087691295646284369880484833179046442779012242193265660344185512932113472446222715703898910170679970872998693304322373043185983396621373264323678172019945921981331814945498981316190112460962582525453242438336324053315026526819920888554573695781598716693015578086498300599603135872401342182562885749877455348201301898081704480929972818147457956466114908893925276925124673661649523486433792544509881645737883985201803999648522688898193281429472162780795126799406623977892810713214736148507749477318344239751085969914142703975571124034072216865639576439485457682864182833044844208523632474992945670309904318993807897586785157599030284979850350281471053986558503009226110602309144375722145279906778314779686396858227657531032494483644956819904910239079955328954372870280352281083029961209197790302242380556292618222277760208479865110732182413676839087803178811973668211031517612127954115100522900670351133153883804831059295253527759809131050736201128684555886057379348643322553039184794849208897907519535523528949586488189127676111710616033123972409007687762104792568138351905960564531999700076336387198286649190719928474929385738642639798037359480820970662205490836070509582753729056182633381834916804703041394432539540624276845742255404333374590871495833559134620710227615568335297248289300207264538247203649942909293868316090982164211933409013996139285766334933592529822708102833900846660322055129795063563138504972014535530790731362699899261350952310841976101035062479430357394766900001545916882982691106064033953626609378647713742336802428253590079027673592108379282508492128889604260975253465712538501067427875279084243779401090526370842424881479558361350970027486192170848117471670772296008409367984461519441355678282743433479691191361455383195437149114181644670153811089864574063941416380095549703060486452341099569441097946493852481725559379619296699454863044843595175456921502770736832818206245872002307217080586297040420325954647821304156681977797317274113683165744479651102888609398315323952879057745607165099694151372695031570239972054926487419704358217290361699927914850083563243773787551052997368489576051521785251652290993346981003541705241704591135000812945300618056086736133481758347673009881154892622900957355263507430509917397795766141812865157229965940587469577859705470524655589917581344854460366903504386032588166839818753761747922342646571142110973010694627372550421811124153144348848383452382078332877273185539203034156806505696429765583279449420781156772189066289705603924748154624319815814182924096718667174667124684100880665906211721484706432945051606752131339797556577892851478670348776839665720124099885130756611496769407654172797826736047319591777649064610579647587369318723507856955413071393684355407204925953909439562492465461857154453891787161409487595354965141316655343182455935625275498912627100195989931601939569817444713861490129293156872569046739998856239619672670126620449715047049609542692002009420001190071495128790160188936223308728953556137054235096022654014579260083425525918027731827655079111315342026977930240090945834752250073715838114773773710683369263702959453816539407603884858226168195026784448132770983898311451964584707735591215980843132888142574756533872747014110287866250544117128719156105189901706158024733191254251717156982804449792049419708434466899251738752289801622490922084564432605807614889926162776320223262578107647165445522590466363414414173613424452007832156474123021195770095620623496605512192770165131804102483901659580525904623300625184493918271123585241972852744254273369448152919207029848908658501853185641098397616004987088428505896164616233541343438095727610043276023398244427333633741498901091389064132556839892417464181192230932900952412959472488382710615601212052452765129815405894438323662997656644259746381765794689687231544877740327526284150141498894884294319121857691638644994663841244439525575236751595587984588738101461981424601327089686188943633710789340824595892144590730382479819198243709663603043489526510110874900845225015109560118752062212825447228000556667143867110261011309618275468493041429618884276423266296552498560175866880402191236565369576678812169275329474057614236738891293472403831760671883968187348833127695800118828154570880241701206850563966964172458193291643151600955696109319061380627038765800610694624531740379910884200507136565776948985936160476660800280316479689294557797029969881895714401051588147533015764108947291866678057602524453847904139747632979309654681906952976300478728742828136437450406858398703084189977648760250089854213547641296093542202389678345858677651769222074188524081606636646125702590594043811567367021570664270376827142221884271669821757717231490070079389967253164421442533287509445083781605956216084591201146270890989683070151162482286541064218263500885120953272229104695840516911974666404511556083096934899866838043972239187901007635586907594466168978010121599004184480084179153702257921219648051734804639651520080935162026824764017716368900738031244056719515127300386609820849281875491896257775595336355119318267414769959648697026756688704849100737370983397483085651412487707250922959756883101315868208462768465940073625245120804518284240617902211144289606879165680898768425165277471615915948288450131333987379685582525398770636843944099351460696459483503124163915800423907331021288027415535507586341704221081449622991186112005463804874782177992346516272850261341285614230130441397441846794509724960443399967659038043318352886909584498818983858922800514245945890367154701305627666218875540322160536328428488604112451405093250062543761486015934173990293132654744363176382654182640772273042197820015781083373937837965823253999771108394898585432502600788854542341574331049968627789669613142842891386392307720750158925967772192927363656742376771720325525567316342807980934459215238563172644327329660747837089125314723967458193711601296086439720021504637004831502767565861759181576379782967869092751492593366042536605803893742779597404611666325724309824049768778710186683150354807346065713230254286691657284031926029151125798283518184782291367127088001976576584818996974591287896059774704413491306149864986898651507683628424239874355374357625893305254855976047423304475750383961159236099909628830865241530684448403406466786907377292110470721066779808499629425259190270354093578760944050165220693661191943581453589273242215779456537990684771245791049934212950101341501860917282343504867480266662880329917215967524088893320436660982844676620373252562258977658190581495120830290258968523006544943923139719904101213209371822259326764560885639417762413279455527409536562873825047842503173258842298420263168682665827096511730170320364050488334133107495847454470547893426020928935643069878900489624356369020350560423924613011118543041187937764603048289345784324522689906983443053523288208651640591463108266533395114506939405991097880675318312298750877923822609282834892161913261224125158314832712339044710054628179441678246629142869833812294271593940310309280383979535902223749926906183246531250302091730769460381472576864776231517956457671417693633103148839448090273165996251853592085001422635735234338247138478226393306751096034087143555238680695894695801141054380670692560494052620514990883878889942426104054045961763456592488922412335109188266598315806221043570699984604539538546942585829863848498025805591873996441645497859697363645030588164161288813231332842430456631661464216158488695596960024506901850121170895942840849491700114038561083000381603317156588689268884464399847672614849276510639515790455571226340254631621724633166972490807769717664804519406344692280770849806768944518236436865476460413502233222401984542771315217670929486807116540575427352886072982902123763289837608299092151438346324034539282264142581420797867658597211470335869212057805934734087147998996412053485715338466193819593492839032128409083230094229667845586748362061952451469292130710192167141804422159925131862055160535599918738957935911316695933440450098034073417591770187973865101860786652005642473493183137299084666948255979649769056369593761110396260379512379670745784989556443352486409399470434258866610401022275296367038940427162033014826937120008052178688378668972100351975120067590096259124388263848919750677208073258062491019814332683658916075881967358798758472553060156065930426418477412487195708089471743114467945872940635702189885033406247074275082893577755746004835381928396125488745689142164915459506952913092563082550248370104012690565262745764230225183167428313370812517763241223163533329362326335212599411975991482705668604838263566525687860398387434687945549449745958618459574620758065408275994099365286880583837645912635839454626406989946411488849078933715483550332794893749906139800391184482808135047090802948321485106191208633764500336016614429026575395028198752057206434826237516569879510581757428917476277829035794664372043178919289848467438645596131905447359459127714973787846714921778259951584838776684919928249820662768290228784482451295465933626903591778852671267479264144344796588220734186838397472850157303444777190797015954014501292207874244180828363082909081723844422098024822462363024226909935222522144770438945100182663607203008643764080540980110165134506626479149880018799898238063821432835003659621996386114862550607490917020880838668856008742246717419520283243124977874312331550251390204061518400226571671763258164374925472768413894224779968801706626539257879028231874584152350691086081841082372654032908103157256590601013868517213170106247100138481735959185110372507500152177815892920250943555860290332791587223454582019214148178073512102459040960187861227087615574040673221339578797562856531838463891215971276087087726941773952237993999503015757693120022468935984441685860551890160234934595731966934671569665964594317240932897460630409200496198181730672229948361856641124933252801322345511851155369428896709714151205021346243591591505684347932180860755264991819175275425372431839428668777708275224990764603316661070256393510975414708725980494873344358253417495058745222624193980509352996239030291919616790895825197784281266222519090975045484594296011708166235090919486878923501354578853334000372804785064817967952922921865514430365011832656854420300319114519629399882453471295935086260042899346161386450705846933331706351542860292084304409134403940734418057359842654603717992672525613617100214694658679951081428304162228392511342370900180813084547254353788480191843172137388836541299289078719117775096927117993772178166895617521714666675327346283643148355442033929759166212430346108157871518997465668935221051122853086181816977247387473208670647998467791207929229774187409711937205302734105314620067969639312408959989160963097346935812268052917871610454381624099678240088308838202129941873125419118524146185125806008093457269731691213999220648696931756678676523456046359398309849869369711512313228327084035045586023887682993851599293408216178584962929770806778343874923223455183498543715864998746950422257599848516892287580459137673697917410524286710135933559816549330136446064513959582958611701390585079109609019397401090243375870423655748972121041983992487843804578172845646465837548577666097366517725246850120780927956591654158867980711788697031515460668366017632025544280592035350392039319469458157606689537667861498965252518014085883335128215353503835711587575869610300616235135845791292157370220750938213132478752459116966210302917863129263557531788244982215914053945845761246108262364225935033056398025297108718524536004922835039883151013901179995477382128104323263074796566156756318535776882685064088167854337081313903798226748235724831547612058837224754445579347121725273156997692718016098303812102602574525953639572307095312062082330021273117881797135737768767206130643346299289369366940876809239348828996731100341761490730300586225729860638310832471102651139034037111382492122455066436077003506517494834389589198753630265046671863743795472274640810205357433151460751152006850848932696256041975812281755023375485850354066959495657414388811317826333004345053524763747063228825700582730727046972573683197127199693256786917358861885398055690308547715382384346710681173864303302207433460261166053207331057323732377849764729426922885882041118006866862621918731221406073379280981441325640896517377786534448149553168700424435628853357874899759044526023623560953924303985196871321823640604794227805970891270960995040127834329899141605704492469848116914287816104818561269538731227433203094698676619896979045574055009682338326159021614119501345388704793208927738258612939703650738332369056691364674283465697714951663886067939195346979477564918272700528846572958123601179838541855829970328475217825362789686420929424361828554133190806375224605361628546648229433550793664713800787249832954484840751041406712490004022891623485458087746274752419248667059218436307640929217230344932030038967751415857617589422701367674498291814646944654210596012995059533022810131506836626008042847958661439466170274996542166922031038040511935803834737057785086629924648000445301814431910829068924174195821843327480843601793073443386628534233434890615376010805296573196702173957894380623545072425255917333152665223144122089740610420323090149126232099747168619614686580856651329946169987968903582509816773696966054746260725191019229073672049545978551672977566804350379109965614321537577665362699133507705369048158571082478089135092788972358389550914728958869041438156855356008147853471531514312114104985817786485080154588923191618628960566661130568810481068669468932739272905302374225142364981308093655447520467359414351967982613849909196607595772551773702742785147455390299176361629475185763333188837979518682547465781179252075390041433170168888313549664443689065064636551353801081474434418497841291672884721563679483358076199804013021490599587126855498066674661697414210957640158179148675183116534780773954829997580303052285003677216284126396086595815602305683137893906430747359127349760983105479464781077640674372445413831256923287159649302455107453239280974724782677930957641501453107411117883174747561852500967892218681121851529051011203979586300590731014936184637189728745159791728717335895766251461143713090436424295411245791781830352997771261487929084326538069491255730538822937644515446800214311754715763039529450484082333246713108099213525088968969056443997156407387246990593944623193896686202149978972240549973960223803894977072222787900987585719287455752326712401527650753580993118245216444494087256830934443186073685905906177812519681956212122758517350875826120928863883311793354344255442983835331969426853411072611956854506339987945688960034475561355836226710798961984215179765705581836645491926258231810101259110353467348431113504973180667461317978997226741616712980258029004220280693061486357677329487411410010593560141096937819436489163586549584489806575186153685135448154681512233085369281657015372771152341949941433927478325997511338703765439184628619150179818246745982900113963407084148781704347983141565201667523431026448741035627617260394167203728876364026089413299717450144901429607112078846329191427566367681210852451871826640128174216068771350906212774935037860298689641411541407977679076286770728556853558233763781724873679499692003297452784538370583421453497489884717016441319696929735579621910814724815522186043822102401582063140502599905876509469957469082474751315842129729998558581752280858745214115695857040160063546170689251140495401745151717012574265098779460396096635796174106014027629081907729409513055631749192355170153401934469822718853988741236925653477694024085819056690428652091614392614070481155836776196274411963746486456275133324354696523722025951722102374373172383601513202843717903789719519649342457831207125926666590682520662390789684684073138339418042267529539941271864792477890348379486305735168458157023813398427812322218930904429755513146521810105774365659650528352318866695539317102060884430166645499537269488258866007182906356347764056832136755933111780830848398365796466759256791116455938209012190637496231982083297267022654022462940187866029270060581174140918019241189086535485645232568797687302885452317769320364503982013717219509997984670404481042774825576331573640864013112900203815362949300957396535448882141184331985895138881282031982690833136198413180946267412094120834420424451434678203837703475805115241150972079496640927816900821393658407418701023451054529534192842456970281183559725354367509950340408953409088411511133340065680129621336454196380260950504612951227806957541242430560532109218798282275657207915353724510459530699633477772825409711012607303006396799260831724949722158362906377350863406431785398833845223524563350936767495394662824332489707308775940679397705578511924250012777315588019215414838457169525843578834374924616612160314942730474331585936598799171218491806422787122223762297492773452460170400788421612238836957459690877899233448418734833316806867012788737383963437636273933095810053184291572598403839072413122081128100908637193865690514774419916768821407868750205332354441418478774571729081196836364407509946481693145887666349409280996500816680832322494891518358047639677575982785312380120640753265334727813018416124562961223191043544081883882834475718508207593289242977046455240317060342727629153466012009341884310554122108760760698997211705061394127677815343182935125836872148383856617906591611995141960837548892925446164014589073376509138888986135414145848173700604178221843753380531787700353400526044229745722363908317574234963038030336594667557873374363805993621880770399852013029839071938566502791374654577947743510057974634303387336976701888788724472887273976947103968309015743145226302488581631224223852482064543139800141945328485241049741653463456495585971491670521482298099076933222147897090553536300986854151912394469096271539421223133932936405879822609864433825724552917391609079582492576521739826788150556144030170626831282848053672350045234759014612688147755570743016859333225388118686560423596248640266684007861152898022814595847893214457409555357904848546011647268047796081172327204960378741818428512677160931104652506084990909732659686257686627776313725976950893057566897572745761133562834480348939607344088393572762073815460592724050931146690972138628496475570985627322540009824176408282544670278750010210397441974236807287055005327701163871484887211079104587914269299463687826028455817292422242779865660385349125218133028925436949055012170887044858435416325133503332036084449443739098370237474325137719640948238766408023479907887596060967306977265956404666294488959842293675622216864498187837602096220012278501457027620424182810253670793867218979845256213613668483432057314518067294856197949351617098946748149496168904858964248655777701638631193928599864023610801546627740275058564019043546464051792594971289618418666530369734949947874925277990564995516647006061429983575912886794311147557292557867597177573381765558669358771664559396770337950083039076310952263264226337021638143363809796277985146131424603957868603565901459491527110565224743969535575826382989710893489382746755610557642018382890127637742821953651768752461255219257925748095903270972409732781960811972142675170198159135226861027990322610653256582476784107470726703613178914362602179996800200667886815604792463359076295302265140422906906631667071364206417760420857142754087248464953601281660506523498491680369429882257845704127654219233008740630971116032967229528103940159364791752816594126754754507843537038327339968321210899638572361492523155387497768213369786401149197500943280360165958410884444112415893036168253780934818200394378774991410086045629776566697295824873617720880436266549042015636759303436157604843583538648498316977887602159686518804658202908295155346803875540755870984323176620351845734239949513885739851163855403422600752793190971523444393775760572842019507257660152296650579062794670890496095478732461948867267446983033573304717744250325592104623123280781138683648666063334924010492970366285758236318211906689892730329775195705636763356669004615360685475580532230821696103901718608227047502754305235169808908681293151665125220856640949930545018946187983137046605347609908403734967965605873200929920910688785747647592066694408582122736394608311465103125217158524742093412693455193693089561630107353994097587596096250667914257867493324764384532428837955887769273836472797402878167689275495769660879334940769384846902528062255224347192402951869749918340238887017249509087801506935736787972959107201199564500532034496226167037031025760387072772958617465971662296226785194315403439453750682041761932859806634245394673355169045568517020809928631757992942178712824447682036038884499717239162585250575547197145399561651450067336144662728867836079448936926209131565420992151970158654646364104384492347797719188332983919078814105188729569070783882329296052631511860810325199027273675282093926323612845848217309333665646293174383320491544280685236968682857198511423321274934519412256710194881015542070749960079137153472064089776074968228450146549246017483230770021337242010387830126521929550319812042613636249434549777520394823786765131266734682669174331960270978191922369123438124368606591238003829050259128529536930194674033953684795795950315785809499930550701790388869448321133709169811784589079418765737540115230434220249968113300737979647829011622537699953173042422536024519285028684084557282717765860886311165269610051469920216079320918566557493578551102626776855840833657400022059397511069096944467550877590076961662255084516752281019599094660359151261111837674587960453193090253689938872830001350624203107276711164086305318238552472444637721574806934776566353984516015091996910808829386486215009270753890739550334600591805612778845345357573162610473969709405822835663178346187670374575858764511945374907218664855636379851181778400159674841876416532673926356844474588574536526387506284261667658203661776923175081469254975298019091818434067825820776369533458801242609453127890823186979900644859508765856723728592430892142845992087194422251096584652583877350067748897240559688033438845251958169417867643413303338173300805218254285093226214931140023041994035087218124898560669505603924757468485652151199038514061315790917959622694178629983941389123247222814643838633165203411170025302736018548646564505276778324882154047206524260524828530630809060775833711872891514437509261615518802601094015330966418320520357741886225113320491325538964523522293911569609685813330658777406146942303141921643027769400646966357615461287923624570619727469773929373800406175067935292475086422983764341211601333835888957087011559908091943310555275564352139351024256641048272134324952474887566817425462397438247689822979664117302233881543126360325539344850479806830151319208175547116388632852427182877847678026221515000916855438400365811652523073656302015925267402257865876174811627844848748165649942013840120320391866002735271872591239882754314647145445749328257466180479593004439584574763848545144283989820347480704765004768914203140532082129938167014106769276366727600137701204201702085718792614666359616974235408862519536978777866450509085317919394158926490608320204672434063218247392225345195806654647435473849558694281709225284207757541357421353185049629667377877492906108497265191714672609615053342432378250620412851945983666395129963761479141867145321694512331638715344330619085209534271222573516382494367785564754304618244643878174449773901225319131061772677500826051868297603190158404176549581734888188310338143773852784840844532979238798185682079762022819827570067560483167970767735920277601000575532140962727844166887052594933439129754803432980214781969007080934847071477202963859608470653713902380897596509059754363967672785224207149609052739034375925425380683353354896308112402454495814356102017568860591418169221919118419548813223464573610897156964221981706326293707986128069410369376661052959089186320803031196693688445481261725198276723413232800116965184830244066336250173831092786732822133924150202525947646581262996724654568482462739315558448891106510237332908029687068598677371490974616939175255415448374219890285668148558826895115819485449047776865816365914867475920819707772448000824154059272586746677285886106136026020903843731043274072031234335581363339463887387772537124262975672192924726959266816914144027838393123446767620404694356195370926680733576315882112261346646238220886402870036651463345669360602099322574324321239654146242198648085602541461298938523918616252871549526039385582754696764627162530128188182498000902261487351776788875333902119623408546268221300436971231500108003277503785074543427577624008658262631748606546257901158475579432302134007092525992869644465024705539695793096877244147482573635972603841957821747248169421343906629535330285752494203043364608386610398072687120327660415799033503357662455738039973712454715151795784963470133957315743999357186308445539445045118929437282944167832094274925431825308325422910518993103306348138687587494338579063479226849365215068802951665638926472790583895969449743295678854025762329907372470057547404061225303985093538780111750411834163937761336551816339866604466108014200185357194347295133467576106834391961157450091163655858994831344742458733688301467355287265751268055021412964578611386066757924693651930344197727751326516417254799969551708748626801510331219165501020287849722315293345494785008201757619208855880840656016091028966996240261044070321252322004599356487705659963540392863569217760420436040023228689842821696979469630420823390526910756602083786932441359940530595207071141150052903728290867478796260361295371904704395292923976606493747537523676120486917185324569402918694083720240138398269453894080093099576913066266617765917328589485769676375961729220179402042762822751284359509853812265149960059553381446111196859670792830895691740006241770762836373111417615842154702731361337540256549443511156445999263757908875692812278559778693665816305454609020350036374989525254833764202155502014664359558262539410244547717887893297965415301053480051729881001065562076695059053754446838299891798229160206096285763909640281184281160375241354168943590111746989632427887803375291640218973656251600887907742072950595774226847570238715472436698526262851095046241159447152509034064566404370029915128743454764367247775406642860343464084495242951705174942723006613342587887382238001921388731997624197979364240971470130321095111942531077211038392243004162151497904804634166427028680534006154751887149265306618477916736167751066074810056188950753164862031708707726075259933918340122132457879452768466007799726769173630990964523001221728063531665990943183244478736399186738842745599823086088529740151653413709866605063496500541589438270576382670538357377582716902741185911146665712846833395251358892916979703586309203674587205041872492007061037586200166679782580478398611344303060687170793028577142571537368664657647728434994519033685019963219836899546774414779428881434681308250921349907107540023864361972115086986499283089485113117488184658331455618695259729099626510825709490158922112601481163750353204959530546002513367791085952642002100562059415982862414110031644862856552915761762771704260116094117147201781335268643051956679716755624007772426721001154032702031104969900940864947516682682793822388603287688451084854654044495892871006846126246893782666619954326127068711724300824131949011230305808629726493486270336111283931537290538465206627600400282054330967801979372143182626498671955410627096265672229338497760844463298976021495582122043410379546010266034647600198257710411613242726252507313850914860149764784744220095379205342390309781618156779299235398572675573630892857154656602736402075566984498685008095593103466818320587749535855189315482721700744566513739426143162177947563872776853094876560391804452130357938422198687870140815093816119298877943662415393178076948088855390437593862674035794079896099679016176476981077825444384218213465494768031881424282553093034829630213354715904647932097694262277113161529111560728678719703451483183160086032883760171551159737319752025172398950831051212619105575809593667569769627637793799166481415561460534724215193003192161620554840896083920449846818620917288057479087392284840020322778346301422872413794148466104760628921543328803628849692904521479704976497945802393937652947405747350182731498126383574391550398027962980982307525478232250625555295045855650414681597057422280722781369302280610658130802370088400440731210277422148121388988026523679398607265532004182353172617889486644263538609699499515192245529209006472454484028132812374714689143292451535853487437843323762972692397818404114773343761813504865718256444621116092179854383949024137659215089651325452352835180776894991351773356797335423729309740487264632333539687321639531831202235669208204244559169364460157875518524503369743893873473529785411873945184660600778819773846718961035272650032174849547022827410691840006423932041336655756121615679874582581449833911562750738379693062717324094050064509351628603853193707351016866030066611626966482226700790269594945472419796229149167918020709404481850790972706152624497010390888991309647717798576993421616721828498407590729559209614158797939348643456809880294016444095029879089685166620326154878372814441218045057660151206575899125734040069835582209956046256417885664392465955895587124700523698790652461323573443832621439864508795126276245448424002683982042689880403932925952553469751982137911825055860511205925210253424307743847432779567613488538195567973913068962346578491412157283899841198011252100369067501338012054496007572357230222602534633273784687003726233874336546102814318491611737570438368438568407992233301019339771403344610331465036112873915979103382980992919540923404482089196521775296291284201342270686140624742942904069652725009179565807280047579548380319004384262619103512939061241161018645769498243140205498848375904095924485812899508296045368830415226347055874352634138718938022613355706728570119644368972825291963769430691574172883315471075898898477455053565662486365176202479819397879295772654134598272283514537143199339005836575598610109889886285174612160654017408921830996828955139223855767111605166167820132223034521962894897253326729108923009473466735010718529440644456190272675612210101261030848310586843243182615789699296571342636704885203848383628216979820815288524387114555879873155337831458694500806234468303574054708952919185957964249403452602105254734331337494134685134862747199077015892053576494851490524675409846523777840948933669923700955964906318870111361988096390227300699267714674340470483538491998737565113769746436678743062145219571363039556430143912519668877933827133361310919755658467042709440411894371620831068720227212660120543285519349278887599180441939329029083041593331472063579561243607759611184091996616113755244645965643438211496782703996527210470459633854373100598865649301507776674209116295253762793662103526005701108937919926734780368513621589457571767810100414501239866709163805935780954249942239686136442520994623209981845641035923082095876130430249758423909780233949510753282727796413341686297425986702243869650516546728649575731412939328552006883009997897418134024057132384093485805401854442463958260661395166438177694987744020819277863203342715401901592696724178174688370557031851660875256366896729340273652135539592927269624934553882984230215485264254970510275129262169698849355312533647879858934992048464239388430556351531068348279660361966302745700922072734912522944899186162270392612501003957409238936271582819367784636593586223501692867826002052661185854769239077205735352656627252534360823746360642766039533696734433596692026683574020479888789631832968843680124703404103341656991799106849596473386174398242695407251336514117329285223148755295472990500242513493267142772496645721906679974085724123351480959951080243592602706688886960529553913580833156197503939765259980147541572758594753656340546700294073100023357165857161604349679662031749456149169986973487088276539896580801182399386927103154487646712046786539584855140034988319401465063290314886827403826395380849887479842800774223156600072528878604913639276187672124562569795740514267320894455854084833511945312976833847822175863259813840155907576705145617427267922737348116769886204236827825888849150998131510432890509945778165618993727788137126710458653325944622845427525612536620321007103604237523708500710104654540927451670469414049332973746756336605657559240843714239236867027870384082715189438110125665249138983308280790470359098855710999444518195625725248077934173314734894409294612046291715598917538122839593865295077765770964116193214259711149444374751868153974534483737806586432715916713367782167591865819797220634662534983219025599589171387457494005312350325540970387382941287808001709263361522296226849449308296685616394359822488948322849470665861658143800187521050239182597605911489030933838773496877936366288030599586103992628538266748489600452728489166718911909158684432426954738729680313858619182525493546853267318729081976986322004299494464745659977806176459627149617010979223798839880808869837639701290417600487808055200291633836463881901676587578526606380247608529501636351619019314710027222312630560314551306091997094161417034676649041192802321566632122721625482246691894782441949222768100515831196568201105914398145939500140849328930123992229532178731040097241967938103649990845858897673901345375510155683308901153678560848819457557478871060452714356243135442917693268216028699377675146743612624020808953410757514473061130745351906078870730276282544527266886419802386298607319488370301553539107084882404628824944450470879950452579754963610384636493242688396781348888018263629587543535690639532275262000047874170348321933741385748583338814183501339659130564635887228947470426006397429247819846446123170633321276932256517618018286327118965377598628484572701369609165835531351875923389252557579160593030652035361776478913661284450343448330702839776524294936625051910576895577897746342897906866631533394607127282416981027650527263309489899266741816347217345503124803055057671750863564815142279312462139488722274009908972490180995372563529447206744542322690511307312048459291840095357248564713770725415354711139209770902179347741235009354967201953979030892186478967257184795728452790400663525448778041850396416282669397641727672499545133893861650379945794039323613426203719946272331757813513291267269590461342432340645949850165696974278634848732508682365330360511400071012682817721537185543648139114853189514656379778426918471578660939042743477455546305102204167856756375285436944073003385265642183048382270000059112805561115761786136915671181661619102944306965824369077965848439397640595401906078165577590397762569648764416912207812276002530268201495021673228504433274820262495681043725403010429113497158921148374602015005667178310247910206890118457589840773631445151228021343347169234126734889686121262620471646304615655574943352253976392614666377766478974815621532390623654520542709703810962002373930537473497623978556175905761986399431574924401370557738012429509678070345411899517466942259658328226706466048342263333788954206071258421438327972790061248624730419693202962679003776231374244544129394579800706682122963899407854380508578304063559984238078100376158502893408028649454489380634459021519615595600330594969349421928193469659293964925807942086455728218039466042740697745602230949774743029843383883052317704988737523772408231864723133177112577474232495583027521413007109241589860932333963865979167465724394837697956019873606869161375457776083987450628252177753586048896782626193808830031259368562258767808935399248912144403969862755381368564139047874027156387074941405048950260202528831078115007800041989906224111757586240812115098938623704667340335627977968288434064148683465028804327315034755393414869752966249813194789806689021360876687877065005389605519929259699127414611319269523101162874126835505048760459195452682564237439762201124122569500543916716782407806010457117026601597972518737643078080489432060643682350029224662233625788402715413898566739565356614139691158275904257428095238671452567949517736433589604721846005854949039310763162240263741641406326189340249227115169241363144889057772145977941865792461613806513696334481231718209283756346177986822864022882059617960619725968866855968816457721959637796620436030924792820780368853584900454183114623666971137101555622146510205883847572136027574401781313238219362921952156131971125931387069265740618074338081430023045831480162053879819834340896947354361132773898643815126672094827944257647526932654514812178930666857089443525923100333650498510435899591776894005237887589642235435903108342920933234204848774697297264688263771225213113501853182398206838933507422083215649520052240253611771166395005967240508621073705461928764385796177661666440759939076664141373157130221343337316968585813768988166406344199031714748789503632150500493927062628866958159466417506028473854437324508742595186596081606076097448951829354722437430044140673509799541580685590789129673870993900756845609507538769982711564978954880100118578696861506731643778647033370321198942337351574532458358605947122890529860109522966235608991511564812571486993070066505587978904614239430970770369084558992941167936083944134176925066025745256989615450850439347716905461055388067938597310015767952729097814850253048285882678116554763587415355187532697382301794353107621039723297427557397687020744239792633553771491511130597765224566379478606939664388592588562006965302762738003822742427739150756829747335409093595696872537184555384665366676553011938112440260545862142320687729831951222015007740329229529869134569413436489872236495736782870200953488254505690675716490282904484544270228271516176460010823928658897716183640979791549937617650938779832741122770093035942477637520497731192234557103650165066151080070149622655873445673813399765097441458138351335201000095049592901106833130320160610764260490858207037615804302104686531168751959063579041741594250472648202412999635916162995403386129271226999867559806697275784355525078854010836675150636364873734511493118070885465733315316682333671931912781086380433849302573420318349059972763119799239158224510965084129638592717968821206976101588452198761441374266334025770052143293027138080707179506225178541998364341233790551144693581684274044169765865733726021858071918401736014379287869325743719238992659450194501700760560278114826470566623666321781093211698883022961713059931641307861914986593889842204400477066447928577618973833244729418647405105838287884613792753020820744025855145425607331347083160448064425210165392379801835653492686452846303022092308587954789449798570191862113793166580575674783868829936371787616076472832023968580031281648717227339588286370308124809859774229571466653938241859335393735767063643184725982537288475928983503883035707225491647959295218297066229568333948567348825266802669099099554215803209763023855112815156927684814464916630063044902901982857285102733479111386584593922591810293253827693700669324444178146298322591748301637470162303189203991679043488705353422494288606517665030700147972320372226132277504913144954719624452921075475828979074350132022228520736468769747784259923212161199849431350063120498247158288567566058220305309139958623391313502163328974440605700749322250955101272592059596327470817290075952809900312568220808644726880854007120276762526943258045019397185649399201168847700293386309193383640368915437323854102879888623608088573344160250326516633954100669592313920048440769860389289685384330142020860107796357215929346649941662642775996813839927459739086275908988710105716222413536320471687973690990907212108810349013372002364918704057185985762828113672755651404314984304606044498500990208869638606308367770024482276813560204628708730584297308153557093113305048849530889719689762371623782368395218873813747727446432070051531791794513811432403563422298228528064564985392225172090879504446651504985330680798004177200898711622265256301471887981109156399770756044346497829716137742265632163073711678457279799931486995998590692269091703225362647082583794304477711239170572312408666168617383621817543092617229617003939237583921354384464073720436070163539049414176326167294939691254532049001201038128817610236093309300911542401132581908341224954663772618388659961200010852172166778980293853301632626496315711796668633838160869820835046491087369563014926412185487331338203440227697858643859139462148851156437732829466027487823944763817279477276228677146123561782263100839695381798284489342324805922818342017323688256035061768443856936149672382483812079137514253274720975929736326554558156666139818525165936514478406692874352991754356080023002708037839580510110291959979034571394915176299424500112664707557883871322791601607008166759031036309283025031236939653930661770031613462825774596523165174264343602236139352411312885274959914473632042949447608285857730950768203696427118913744280215196960699365084731348639693731125825199238206337056606863227706483571853431024937863787588311257056876413318418558330667846229018997391032245378625214744438029190263832605104839627649835204732489460128544992529043011333788347186102641615766799134594450119508554566871790471052008252362167574692214629415656937077225036189673708033661066578526816661584801997211037369081792084653006845786309162685489924476652781077226347907388202604283848815746292921552295318682511392178416186246818664021205818652591249375031044808752798178267323967269858801484946725022462682865989328136925819377596750004992608360317248603038616641461854854003507125200107232771324574716419075716346833720525413852625668067059296078001949876873955881984569095199547774179339065589046834906217517275333872166501403915780383232506067037203570917412672490000192900434334467600677619026077510253922992370031228004506490910343452675671548223340931137345653557856743858806029283428969806259908168984448499341972878230288011701433315783766668816788347903305698452280872785585701957102446381387095046707985208807041961022143269185269153841226361236746006426531740087495092411888054888238148586724303897561448107795164785982770596450349473813957982909542786197887585597618208840924898371659266601834771534606556583556130046596904336413818724883326721960752919713878769125520410520049424514391059239714959925706740482815066892547962037010112676717240852154461314269186157060637939217347063516238666869171304507104540236557917965797827910319348494023453643247075044585792184175980169803761110572713947505029870931169819572910651442109087394434834970038907833163025875486640801313360351472503211771620965920757762397852322822080031377901467676964181304913585613619534810129558662605802836067309560237057409253023663083129821823023359751234652730839828251951746039599089938651818601715979140190198688796182761411910914417615294706388335867563976185135246071104027541120898896128276640652240690226151179302409723628699213715247147842250664239715851660268965126471619370894174974985226015286003668477098560727379456476344464160709325710034154060707108420113588627426555855451997269134457477960340146658662138298935011121338969170897289998317245836908369000913198828743753156682861169027828088856390968802720027939740380614179452753860687387821306019794972867093767870186796481558668869254867796229413414152487201986915489772092002911764361145683241936726470881078535290332440203243048650979350778666680000217648925594547724733341546335146658686148872819939289457780518060589054317999059710293934710572077825635961504441797245512369352931518689344314144925985140195655271279384651561023540727239615058049226572049265795020288671594145806357816560711683652816173554732189228627438190051526410752701472535848930071372987740228159402932818090864765619435252236080404146020126946498135956000404508665295612376189445378910217874225798713026322069795819965646728956115708406553148373701903391430239716312353912707187995905475347909608451508544030498991583608236630053086300313413378185362401165250303320260379934600519792537802951063198123611926475619406791724504617213928671640874994235392784912443045553671197235816541071037417231707753931726402250648739657280015925213482429762449596564095607411495009847265939432028560434685061239291377033882680636753582273660377777413528526957547261510271139125423375740148244291324225727968224459999824324436461890892164774467314567650793923195961736146252320606764925905270698475721931146073163369032254782076037143182966045559449511377924973240245790141535292665070778284789652520999670422985148584201599727099459023273557747952870849605978955234831800510257342277995634892734095962641154768668530946726023427749648219896501524661523871178946941096019196029758690951492978179551761386690037115947245330914691179545512772006443715329425759364276871379059657096219127929742805783797602735702899299873202963031494608078927767344900182599673683113218793581514971737607365785163978482273239437428988796306014847908968055667920634056619180251446683707359277699365703997719833969653408657800236902735558416330976563564770824792975105191676856756325370173673315273960344970371968387297414858644351709378635590617037883643161643847453175499950145120547203899957206378829633169594838855382803106284095917400105949408561773782567701187724592045166934250503314828718636364727235218436369811562287844996553361579069846380409213982054992479660803867272751527547309343994715611966950130486766639410447101250822464328056274405972521526566918234244143266610053301017855980653364058850338600500962404661712259823832593369422288708882378503151587970015721118907553501070070850055878577963342571496676523532288952856823731523168620006337439603156589544017643042184506717424926708286405656282819962548049110771862869166593049807485566068946578838989510182361008922731310304513446588424136364163078257043617380191950767293189169545711289083924895819061712029708655346783949443343911046772592559515826946186090267425002711424243857830543011696117195979146597796249432036725936518779701356094162382646055838721083923571781519195432579163731278823444368153865162783080469363952076124189526620948442155090155192633070837404730341930066831882000211419525150263752196202318225330399121173915591427998536394611270931464574631975114386519963995373183415153222345418803427635155724033693248212289031315495583176522725756373447808166180344813155348618164138473714183127570783001522311451106644864850496727984689627872551467019350821338050297874716256084823189975262697254139964150424021249392178993895906356191324022574423180817772231832001757204180678060381301294437856399568438825495704084771407967713719866564116407842316027884919320248942671839739645575179681997882373067240532173788234980039993837388822322727039044061106930810821967468615790930551928007585173564093371392822544614393715514968903710894559832808668699417022106622728382918297027784291489954900655293386998202021455605382174190608809631397922106223741314379761540169879088436628929441359468053298490994723356987249408149742421574826554018005416011375663253017570828175468023859635495396498813339201538300547597469338220759101238931320730265616365742810290738741593394006873693051347026614570373234504963506160474752197084820337748000155049874353772291713204491279469778544987885741089241614506185718528136316090368882985164767807653576020024947270290010284281228788076487624323876355839363770780571971368029925239445446251343374169023045969266372876526382596134443138977776320034768537894583833379778952044096922909754215017189687419174917027670009660831915247324941430520291944239698683180561379923004929003812068164431027257300384356622272196184078051427616222898380892298511239521685446787322474834506607159959138948398180931968405903063163369567661100742734958576570504579128169826045543765957656739250732520697534502679007126243375924493587270615515925111217129702509220273430901267399593118543354012668152357551648438877103058314810903242499456563717326045977867298630599326511181353786992104318410552188463912838254701353695774133622618572833940963095489181273832692720791378956839773055701367622237210099508807883113813181291382350507350699792725777608166610774664911621681770842755256792420566726026708911987985232848820892679094716513576580760758054768175080051438375706935703356523352204403029458284678820723757156733493841739338928351432218859618295429255818146795563767168693547214799057953461506761104300982683058064202459497541007702180066862701284805154780393521967268508243008007265372687939454262993439767307701811148736510621184165094037800056298588586227078675098892809758356868351567569975542382116066048603519540092154528222479155230583482042393844787785579805902919347956277059094749927135079612775075710834011777635184654048322848083401227117137586411728444621487077703555633138799165903886493936722734750867295366815792637270578697183695020934071767400693078283937272384512045847544297761157824636747208889898321438843883472826939571514313081263752275141556924601187470756348047176114204327002483241889697446345613049389625318893152717895686337388454787073066170713835031372699158426047538290453584582080733286388504649028495217987140092468404856838309752679490495570399920850195538929095699489844663591789580322855966078365391846388268605528164498690056232828348132310665196804396840543686464693883875597780085780756425122728291544500816903804862042601825921376384806136929422218708964421733209815466814936289523782700194311707552658116770994420650749687615726354837572440089246157100399727571931813634717196907747531775004572458381614060036986595089141266281218155481955154630769165605178157976111619321253952503355624757118310453573764173787073002922276325599334078456182592001615362257800212667456061237442930361881054509623056292038239173644570093668669001587067386337903516270920217191018601576511406160870392516786410894887230538082616500308191294737735332986636181514215616236736981429161206399651970219931122155011829971401293823308702848064806770739593865946892288534202071068611012928233114765367199775832354946683137631277818410422407512329480757460052992998866968108209795317174022883292000737479605668235785386623101627146003995323116583075648827956140973634619586224608051298117245695353091837181578749058923536657189800239843172533973109482715945255637222417248298270339223533331970526865814098766787884321899200537075396562889869299860188366160196826282455370378487736463378366068589352009716743023862695244915031467441384302905301526633022170353184364685865865980349260208995255100761612336628916045467092199719935063476614461941665895913702653368941512590438263945684717430225692018421158521933742710541778089508978021384317300285442413964769401612003648583009636325354538426586236274514009922036629066579662511339063096858216985330489070732907388702930191076308079802336438823658636544934142790516777304051554218432302643127946014243245341233846921656090777024958863475817239850747773425115946809790944154081488794221584046416329517975293197249066426081739949886690353899305786177790947041837646798611173427499202567212552565569083481394610518775496147482625079568880688409352272002520600725720812635973335490529051869707891684885066140723766275925555995144829972003952771754080676383374477573499913271911453562861640056394075951844534132954281184173329170389221328906520535977245333321642472601318853120368433002848612302540090405566482706499659667055608374495423994195829595479350971048477418658180877970783069379173455235895246043331551110602982183926433570956936955130011363763749962527591726190003570627993801050320808858444803265573543055615894428289608937500736250446101501783338834948355584166887981079778985714299896393402595157202697232046649833439743625710074667154625023277685102793105187514259654434913525055489677672143976176658940158059403696640652411778690848232855195386184029406363142305405509094910031382061579500411255335638157253044090699000848278444199597167997865538244224883901430935193865121048398622072939234574391042819978836011003491108109433339750057133980390036299430003778009823328030795081475412644024254639015084416081156149865856285409658371142929149596465619559488937330215176382398237355419855194981713205577252960008992303067971931912133220210959575804514328009889089963968535270042517390227838916326862792070565056761686995538192113580068303412189723583253798578966947528796367897814774754234386891684215767133635844828460046300239069478523480232874522751179092195907808422921298496812109817772297265178906371262168129655457930956150355649636998023593725821146503139523886718423710189773753848760249311815899839853494501752783086290235647893891832594490053128562416205851585530377826039229509790821337727207878692900173177380527649693967591358924832416997565614214874519266015447713543646834519165408226606550765838511892600831424655089919592109950734248220256971916733521208271763705079933316515059075686115766717619372183987238683861749425220923643477743122726149695992224859772964316339931615394639419344146352279072598243880331290791538817269203199181404825555682991699367658429780184343409406748768858386304726887703196930932054378691096263752098282005036161135003673037801836653701535468124288017277506710290749315886173862333745527594767328414307855161217709248657781552892614086294935262113693511624891067454551595732640781200551502200968338370876862928957971322064586830410457158579103832558301492281448292707030486331604040055662712861652073681120677944716939267847441122557212113409711629883324727892502237812213179215851358171573402321844707610704456379231324299793342519098767196727312993812845596226509699556828013560180462015859363157648545043939945369312414458013382720742717799292629445015175335047091598314322534097303902318325631405399016956766599522707035493133675819449588829275095508285037724932210068095239320072593104388384975439504295204955091994594460186596879274127787164004903420430411327187948826160934792288459095878840159892780945231520081056672773776380186030725845196671337257673832360788063728229154984490415551529947732987592053646163083335433861592298952827251456572970966781435681157948808272429227475666214703791069806527264477443372325848556952112886787153134172657286172245568118789673898824721900748636936235955238619830874890036545249128573601762749117555229565018373529406637192194787126780247665827221158799876194981260568953707223016501814138306945119662969809968562994668809951767310638922242880619025983561841297833154747259618497649109209061007131554003091244136864043609588676771378033358726394207921521769878568504422241422798559403440413336197493232129730378842737946716574505345229195857763853589487199334607455813573346377361929928652977615107471743986353184330283147457077844770263765875939420363663773562788478794529531902316188060707630409761119336174708269204107381995205006159180154352533771027276950772352310735861910755569125436468658053224198164051720368897023305280300024050216034889831285694681167375981750292912352250653972578406303350707150533727295308910113283126988959908085693243217608880154064503702246129138179841837706826870327018610586027937733281630843940950765323690235667602884492626531159287699740752281945427200218153598378528579610487621766402834585392438470621703228365134326527882058029200999489112627611366598371006852729877660437008750910121718496719623045438420481019873144087016892821464717474234439077280616132891519628834054434210738910808402841171658237579242854594791226565004153406615402506466963858184604428596415776051554408799005183405736726913309274149064787146477170309574616009987793696996868117418919874722213282827490973633582444540577436817458933507456421757504618153272647845326102095554695774283265407985894214398193175143653592207156026024370881406146173739324875936662913726518182067160108144566214953734894812031312799141337861883905326434918098008119579640618723611775005926758366066250362526731828798322424146721397620519017975494353385991286680113033451901585172702924526508256898603502142473949493383698515184131149406698229481378297589976117125927101543386656520097827352731577163179328733620125923666809028198988017073520115947881614456920511278363819923096521045416076608686861755940836419686496633690602393666858446510186991660038175219066464896782982715230947303270274112208212556892499358871117707908279559107246728825626210644103823784168664029646996666538773982474751768155882227214334540573378376946151626648216382112708875863965525883722765003639568399925638402529915679752644979163557179888326332751246253796346350064536167399906753725410925377608574112790808865688682070331739090922629322296305666951469602782366902926033348268647238463206221566969806740101557366692191526333885661126027073148182925516153350978022536169758236531209490906225183562363413368745001211044830671959580043902624426169898668061035310887605996435497925631112057434693394715845620179657151830843790485851263927966932136862955807668206853380629391058685850137286009724498657897289811051926717281129301049457848699825503631029723325308478845188788901103249938654848944601928019324561743608493037186661643407182309466005350416023419543642594527684194963029923056948146599539609792298226947446891251918197016365200016218445666618114889090870574668557930420436545310582772689004287760902117899967870809570564465376666491625871746968879648851801677010966661215206287344156723773357127467547579146366447844257241786449692992037477811140290876249866876070431218429889699575770354498831444952704049664020909185727770539644540129427381722486455707010580597247754226060638723277321731891051493913141807995172832651126032245562433287635759318025285446259390159851240771642041157484056832130539620154341782507946658674029094572908914405915119036127445199054257972380851531093154473635966935435765977487790749310056825640290024953488624399696492469525537433823221092013056604661051438368124955548171693322076523761596388814739582788525470820287747794221529255119231256868826408642626368768936507295583603968336115922536856449771535277432407138263299259028512830179389125706920280429552113456207687771832659022427392442453375788847286720778476312423112425636648858147967273365660286435240847277891232864285623621649043704020943821574261503699319691825096195110375069993993796011966476863219328273353296897790269846762096196558492797419809824425089560480110581751145659010614193851034553256720385764958528324797061523975953461011970681637048293780799550883414214909077520527419871254189817312245428275692280567461315317863483922431354416870623940629549653856471726228387648502584475009069992285996859759889220960435388245080009119673081099318182350780610293108712230503582467472253228108958194565160159820233600304325492725458972042943049132467482727198496888400423617380417329232703815560662433507074341265906206754499235517242227300378874622574528417106134065548430662872136285765500471354572508853965524161032557240504730676909128535147553369719943830436760995730768905071577272753160025485359951352343914969877117002235147437960273913899046023270176022540675992365073997440651967081008408789506055907324120837799079514414720361967465913784044143162807715366313780527648801884141807516812429279802330711170798577568971283421716059658430027497275799457518902638414729199661299811496905729967483687604962019240166939970555919506840669925314732925124712474113146349119004233955719414345774100125457524780970463641231957369230545761590979918403781938165326574347468350481497119941222776432285990997373597261370588199333546219174913825501152590360510560321311371769915855122243542978516863148215716178303499132236595481452434216818830158978482031902301372655695775199908066737487134462767101317308833845103416357190426287012558690565353193663797804442152659452806867005124887219996582677467468081881051266150591195996484261767613416508122240292520228354714788058208848807119190687345418776488779597570186605360226456124345803002261383626770988413309524946497919240158366309628798032522755176986220755771406961144211050862534123721724333711260758677120499870385414378116620200767955191609968307685870249046321871847264506992237317859410163599632084776797461773518909857099393397590199894381745817790167367699469913548595707142481610040672050651354859084089590412103365898795473382612208445450678741650258163698235650179914142495512857697647015506927414671031735052944898133426540614217606669089613673590553248212635053993203516828258446420272292988022089091419012592764420176465463249374088246516712426953878975095358147900193413421660725836633176060690293856900830682554671752002779689695948454366407549114860263695608265574745989007318253998875149490815761847982787677793733494140882120466010781867726076354746460668915845569976320486724334043632816729341159384076457055254543747622865818989458780148580178891273228250121090227643430125567551328613595942386220951467866214036912284335904320813814374170873416919664400800352419787783436227505486579460365612838765941765643083938580700402181919765340863904851080150987407469765764804958167931322928239585801849506823074351221062486168494219416621485124327153013044848684462103054663229567015958322425294951992443323277020786993575858816237190158106644485478330912230644307789628485562160697114097370837712802949781728418495128917135361426067653906334472195434799841468176359110004158484144060466064686091531860303032898311146168853319456655421198840389315110234466519335919266554858504003512512549715073502429855099818898754777188156538442506152419143592739562569022595913651779061385663512933906886319429274791977663509222498585251097051739505568565517936895905436144985767215969979719857843929127275136271137552415681863362178422782897880640458253891374866588803163941729663925720257894799081732557176812246417370602679627546217844070014266467346843505037473965375349671358128511240368920852575687782322559420661107305749158081639372428317401480245794385149980187761317196106741085937892321594390434716134404997734377905770401163028706719255871755583887917894404701398697363957672094962447740199453224804448265638299959875006765626873338685601735231324754490857411111609674204159305154336906142969937512582930356290100847173284950060184965294529349645735706107442305083961690984999286514358214545703470522104948667850035053340978113508974252952261388623462655654562466934721405372861057976045805022563607299148745097992177566744636076076935877555598911176585779899557909628899672628903185566039876236798974327554366529753382784636986618694936119121973926189556312610112397112427776431788310019793637834674080894615715920301176322428492418011594454043522974087309657197703990157191279687661330477086757561018082557033457369385175452175476914595736342564952348771546451795420773662730421265054688307342696092699877716817337474065602997470988566069006519049583394437483625398356424196331600240064599091371564377961217919585768591949616090978829080287668692766429288773061882026817570193627363109628044403299324917988155416092869201043784835854792672290067190215921143559713407430082411737962319420446748892818310112189203559632142670880729481961356489396448047862485484047426134147896976546530236942743485501073492232737754045291206911972450445216475709955464882540539096302876034844341844837452687439386492219132867872734242916530283080382071120832511301668589563887423931924920700200882989968479269365368146158386505428413721440508173857725908909517184831421965956360521033397602803925383928822827033393196132384033497766368448553950641845950886103843287966683647700866914267446016215551206117036510972763730898405887775527615535863623496610902966590535507388861632916582797111553650052674595866415060129108595880677056726472077643258288542357190614607297838754970264300076749224045480936466582734314565459964636350619600065623146583605925611053405691375201206163756886799864901650059470371078269482823951208089208133762059050818128483826503778380724318476750697316451465642408678644589005389252564690501868331630705169155378357862958870699384427662942608245737504680219962232956863259783626853911936284218079638560918794210696651602627371824304672840829094247271354402369347340180051963363072515868804845997518249060631727318341547100248991626838929494524054244146244570020531223688983557746070788818601520075207498667282039268993903469374903587359582492315761392566235581551619965059852462878853945186767971498596648013237405989102608179763343780385843923791697073770739774600601353638610148885882745154750286228614110543664485655902219853148448711623191930630209331717155308917827218508455639795860363618853040472165553296854653476335717543704994505787746362722359821290757177133307831794211285472894594584990288599067522614277069684236064150834802750079121385744348891513496295292577912308294837096413448693650549633336914524473357482757259901024250640001173545164390266430198680976157036129389514896374574124128112912467687247932925420939859597518166908216237614790187190194732634152101777994612316833656543246614377176943613779386526632111783145787827381854613106951696423703536397946829978447577485901768646354425749989861289064038739397636955905728349491178922637175118483444435771217281263350398410803497414298629214365056228200236638427021358502585286714090640789563923552704691317581689210813134048864897221192147090942121995181291479749446140739178209365745275475602714585215033228924185389664217334080369687104985727278130506144540958033768247270827019067036929580268540757766480204927736966968204986159305746322604521569958452079990707754196304268660110614283529952816336704304734173135605662073049187214878745639037215118062643210728489693861559058264601703333421100834643472689888609499218156449976325723999784065227039935737668258101964748462861729512980221597803104469239549770043528632439186502187959912881170711896073832489146153929895190603954617396936028604396393275982346689673105679787890161165908310639665132169671155254714677489194137085570945966346324631369762849258747254407155782511709592606919277626265921029980163199282176792142807200687616946729813795257465377519916710391093783619309253226158782431848225781385378511639764173360905602961276523976250670815567112709909265967121668861616457313564144548372264242094844386270711441236138454025212047267253271340066237290912012580058622994819485657117640077644418857316695394382216411713191464278494251049122373085293470653503897612239306603852883106647230175191016592088966777779154340461602485800811101774453458050453710365000015184711480545485172909984431117361740446348498155927075217228397448999826977092467799857428722535641207753920993257824405911437967318359371094256247653236124442271233540802938857557706523099768040701340678460006461831920574248554742383300465996310665933226173997927988825708140438594097628597841089270653687080323618257202369759909448706059903940217792797464587941392960628251563245958964941971452380265199380768671951064765190494000173616353116310129995704130486277079801302142088893729202911966467049337556432782763917955158388323748428481568713680869641807537722245645793095073119246831040368967023202392610827029294959204252990721033148125874788349348031979782308802929717149807901745749767914289357736214125029065975322161008649389021315012715452606401726013413702284675764462081697493892116700800941126751834378848046796517952881389835876517956180188649257429246414153889988391471719405101716752322004574219897248672318907724986732035156922873481996414607447934528216885282458547633539030475520564360970690542134245912203299335725716751832955069821924967132269712890677636565752308076705218627213992868019919351985892503561798519840841668497950778354476031449738240822238202587069088759873396299961858744507773012561201290842010596338426512892243028060646913025871861220070500578088787958949278704032411640344381569875018615251761521918634544539685651064071542097905651180700983308064258483210334265505876192911941690243478542924744312327554990810860919134466295802489753920631137830832398478475535211235728491673017244162450332586274469857371701306848293728657730196996683931826384862338120636026512470130641846670230424428987186020363555970809329362844477754623712361807232759036198733627589059473449182248864052985993915130618794515447113069341083421989074984535336983201530411894698959721698126003071269495436902996275692574574310446984922545908696533091421391460430390718084228613563091974567667651839075845478421614146002142698214426069648207344485673314415060254916484396433156219321773677495684022941223684346030505827793700750498078441759239769583717023800757776446278300077196627935128173309926917521172006173930564351538433844834047787654935700995457948312364768570956468256660173420230246636223352637582407334546611719880292020797309510702494322788310887506213640525225099261260491940373538063035754828571863684117532257200633970164554922307721711022719597213415964959574272949740623952474520177598038190107214495871759291888255128238854999124804126168937517795060286132172299423640071906357185763434664356269206942724213431770659571023924292415735601680204746165867495204558012859642401252580996433505223034916019073439940550932131508863511604763535545399155075645191924879583981775763228423356908115610728702535593540392414748511965074484655039456533703122575963471146978835269167774650162126037879691042058027143826942001526803293955546589062595355978632057035592074284471563846663957324779475373176295057489836506770010998071847684119258301190542965846329847518711667272824702840417018383995327547713346269147197257153019881767798853974214960494329419163437930029260796462820341041878339259567409295454094662509101826628927849583697552705663673158602706731982460394384861952142466140054278065360512180680740302938311541201365025648230297057860862874118867408551666819014644797087819096472391047474349098499392234871450683247373427468252209733551297169639233771566347147786069732427130310685382351196328326729921138826839247949986515977744558458265854362020899738072827392530166746596413479531956247905327194188312140224713774111656368738345756052255825168382511827576574994242780327172597168668661446905490125276548856335967398738196477609124315608779484750278076400637245142648057715899806491526800537812181630990232468402936925711201549659888010672467376135030501771009735007422290365521483484687378318053132299771735777061306276815631912535065713647121658723123162799326984367209074331655511056725914182561663177711771313351634842026700378679026470803053758085155275587992873917760911111265081255618774588098570980215507273837907718741291648974899471816775980434548931950896548518780572841365243004714446216351689687393057693805486316618458406240963891078014790212573812352644962248311619303937185917558039178400858520453131990979787590238752117591822372739041093210119021667284921869586083631232824480575844276276264461103736717457981524756296422703579139272667232362762381903896658362116421050015436663284255789448418903021708178977419387206412875557585866403639020951347467468457851450829638977809302269925327984119472638819196364256581188418279128936006989144989184615977031297758948670321417644905584588370452417926881062899928319162867103468769770570559174439391933123294324827386270979409370662316266325902752383248546621150580674403740349867696128379108867928551798358208313142916605444371134146593625949210779061113078805298347502960970210226594316131521584175388971589161967711422174242901661926665566367927819910222479845575430520194020426580484403853532399371598084899545593726765952950182479097861981646504761929441079392757408184015022473667455525049636491568421470286750433739398342817796426573476679283214664476185912803948213714381417950815405320862226470925080073046754455891898125702760884969174854523482078713201193182558610217707322260201502627187084595039288825703259190253124627589216376399776785921733473721937493942300674968054834548473504762079494034812049862248749675772631419410483922454406053133932445745307711137785979964966078296869158778560097297043573975340536978849087406486338925133168496207867216019862635142637627560914381300916323707066656893987753756628142199066515866729709657177620588943217314801582508767824600878043979966275941877285896419298593500085795873859237803393463153893284179486287579966565557514709637345864779884991012889516788882841008586312422442811967595014514398178639792389061041509830933739065277204455843154576238794706256187449756729999585568605980573501634665288984767936006733402234740819014469342724683943431921574635370348183807356863563694907649533279972083376883200073937441424411540845171476231307924385232476872535331147750831451298873747771519371540218883987354836246698640214294594800338305197479649719161896959574550894905375997047105335771239972044365523031704968221736022293999873070271648053904141270534831497217722555402421612792659495474048992708981472321036010419145195646537224842585133728996357453504497595164768280057443513615858227642598681092126447900012151163059968511149280171323118926882591054087931243526979035719698520988739253570432142458079559169586888631147328918690850640722714042047243026029708271058567722137212316189111608811633024878632306952683735468608507400078766328786608086969446318590900100546178646252602769695771668024411929101875978382163701042260336231438506159325297174509240888357404864282148476521925951416352670613600866905952784057116192245387692845212143508960232243713735963197592150928903142512472422587660071903425877263467581789009977276976186767725474101690025526955145339277360029583762592129137747786577928769148418660503420629849087639113076418464234343243563246431983097553223309570975901300294732476668886370185594953634806985702894880123082742873426537668893184210075039658753860959753352232334909743684882242796200668800358276232690934492001962737538441980419029748023237371259317894304695447966961521578635090975099825191375180351907730912781360175075107026131156013013795529531281218594485346300734428986559959616933907267314438159072243571095165023509439669569486272594588748673071611157500669139462132686836419942135838261101720295840058859234915915640883324501703182000576191318201697893276322266460864555341143719387051355543378107425161900939762228602342084494100347757640473783234735839251822266451554959119096719552048530917504774508493052008045893075556323339701442381538261127946959455332714822393251071690961688890322772691502916705711668128321506250041459992339392289454202084587816683075969215920061679490473929890852697171713831895245501070941557503614595700421133636091069259689534720675509842377659761040295598310903434835078218540498772538300344785676875775186077365928446085683364203438308634570079020864068692544123306908294672137132642251555747124230025928183040257445560170664660015305463945703577418830215258935586912535207282082633427956944502525982606957673877745964984378420073389508497141786246609123085647786159930084493243050106776318202148632131531826729735652900177857341302560516154244545358016643417840947201251361291224759192446464624487843885626079029449531185314729447688932191674008362324317198464055164269694507266683832341961584807685315226237389653111394445760405313314250887558443502552653418288019215656341796641144973498333925479107832036353361301552030593068691486125214177087121895563400148906885660587869894498090147912356091856284635913087969122462981142060052420145728229804198078843265943621219925975580427793981381069205132079040600437114625150765839513552131977642127088927308277878179651711918229598601797430351657513350771387668873382197710506794000083320595942008810967064028978641239869967071700010684625855654089361714023501587371691529321347866031963254008418885688998690786213278794070803315853179766177142503703100489856170097044079241416381843886886387780768482054046314983760937330409160892580601980809852054811833038038746580025180830488383342661408453615570395878965317230861942664826687192040659084367010062092907856241784602650027639559284793469070071155712778872323431705172710387253776047363971206491789609843435477557432893654875582714107255605046648046840958825375138216242470243466769733394554837783840755578998578302878086010228752046940048555702759703598392755355175762060557096235749299706108818810128624179722888639793414392215970576548752856735043425279264041462582578274474624028855209091183140328060161770304316654662240185019452641763562466141597308969260790052600117226223861590125450274441793386481362369459358665591835035067185093551154047661605175674923678289954367866600803389925589426497168846949443765969709658994478573705076588642053599368635203741270937731510317137186226877522350420006431617262002467765927168065580908432454679387299906650347037873577677922175949155164012740851306285150642221646141118837613049289143211122580747887226504396923515691512552624088167233922534398043467346590914626023422548500012354547484195497206552809081269875023509812253460052681687178923043115038867708106196175596939486073909196818072197461753714472826120947497000085416636029673788433063589456596334297437504007377466779481491829203882769152221543420090573807517210487213867126417800200210951837841678743738896731932712291611947673138479422357264258880531609378863059551153686339733205271558029298179782081175025873489294896917781500536097362252145101052860760044719745622983447078462462976636720429750090757367922080465697653147282642562847804730079259668809979962688746205910307019397560121554355336231751291950129036579332122388308228092292451733548425425140083751840242699367951854212775336250394135957597203209164667503895595611888766872718710922714630575398995593519330217251493956389273274531305422787743473347791116789441805875016332440562292079675606044144013834919105426895909249824629290761919589449783288752592826150929383465210924117121260111936483371801284019437896392941406429068036718691025456364458181086833216267174075217182379446317756831517638176192718891467638683682352962615268674793127959342803967325822419477807775021887924466924428364448254260502746060188601066105990037340399310144386129079021787440925052754254745217080432212554671780861045896274847631741441354708794687971754386480002129744307419914763540092451286300938231344000027806994875984984878326219990736777767889186792920394177850571649789605505727939356488463878948160512726056051801678081995580836249307299498714258579776204546059271224851604204760954578286497432498375658309635667569338186347609563602272655688417304953437898295879626154692573725783890127315500586453062550408231977784923671013302890396948156842029189899437344234197989133341407504172556403697650912241442073314516139790742461883113178426880633949538920053065579672947762755175229876708815076924442746057541369393394645167815441021901101464065039832286315592030184820311077661101573695006203386359362101281698640967393897609060731858399107367951520392393757601469808769309729555195585098161005409855699919682200836207384221327958212286939348464092090198273565688532031121179893754594119091398804168957862431410950914109378139943237456012007399494603585311284698447919643217281400595038985582375075054952775278896376611858023577776976277575307020545279721580037897847754467838242352985129033095109953996763534953479234580078458483952176407661022352952934545159979930610297322148211497983151743642650422236921547913154899998481682566035683030480855582567245476851682451725166520543320619800282383323297605602418444862253615619022848872098962898225919667957869120848294843506050559715979441581230282340873988092795541830425641179704089853673932018359937609636978228502303625347979928171210670819115631597921643237571297794588476857557685704275672868982117535709097723470129564405190552099254653147245228540824924482608531746070185099217730933322818335184014218635901390832591284103335422865072632106849531614602740080550465574795836072573615409408564317127927985301620500652873356775991551043316239169217546378269814324449846588283996865932046959778429048412835577026968247169827122103796089092402960496464713078882272339766865876183658235860313502866405132984042880832208837171656056649688028299433784589393753323321868203037403563416797837635344992971901381032712783082948304839577069421598840341833370601948068806245526060415159441538296017431128077650972181408851088971961478536890926215377504683903716881882520005687355918824094161880730566947639540493985183549779929810106178177726526036659459990503249741921398569694497225076623858722240531591470925137613236046672099046554698200333710000766615285856312246871217017654824259300182950200766310622646354434799597551001413977473095609352939442635712067970300479448081011374267862732224938867990296180549346887599968496815134889943692290132806552708278238177965721380375640886882117110099690218193566957372354136229892203364925276073923830052482907023531837634822374002953477837272524888106913467314929645225172926071685687985237298850984063961942808414753497373792068994232790214128440158366993360752252970631707182293141984218489218478745862818964278914330138401139455302829308102100186448757051289321553301300973266857873035091418594906615456844723452406010435988083813265696237926305576098225731019030456291108693673109348492141080817145988244337406325931386869371755063178970284657591541759814731245658807472731413695763526484415312881375232161693220635987346837279427420712069076745042018358861206025453446704053978555394956596590818847781170861386641435467743129063960219983145654295339570778743163124114483900288429813997431626657668592897738359320731808138226000112942394015595570180317439514829805743365182339232690249653742212708219210379023097109492720680181863099996668145438565271274211093161216779680546753943065521131391782081828504496673545211801988554136214800233218585452204946094735267028434377982785108617902837588503074523549750537686929395325540965232403972847863841021103082307863430813917788805786599386600172281651113837946484135884693333605151270418038800221986736474242505356737501603929129140488285825012937197410330332010724733697991721308218789147953580286108929469772312902092387097082918272555518241241512718612934840674154125599693564087808675246288031452478347136446816349343990322974861013382499643048327305986673041788657746936054761872238047347314728590865011499956148878509741029370991932086339902563574705288175497401885002595769669642753365004793663605516675058054382505993913055335328010100185000136052522765410773419104425525310117875774286304391330322003803197521803302692832986502939745294730373130631511244718301307480268526722749379699885300371748253707287573666302682685442188165999547256403591284051991274657903022818038634673293013692060783476111224227713917112676107307842071801865443565731478962091082544859458262571677406943303594603841835416632500970367954466333992845746230661271132227169621648522514924087173627897493532225632187469454421637481949531611129276227388498156075666616711400393640200865582795161255316150547976161550414101789306532549917598538614982463991861779617157862025375164986363143374405178097144067092450484117407942029760014750085082965028222470668217646285194610720063710926103436850911047349010748502843689000865056024879870393699697696905115223333469778598246834735367648832509247520943337198803071261186750552770535734756180039617405277707539728765121593781796631332460159722798059480849997877489654940551565663076845535787419828182910071132126597218426186869578291564964575412485975766682035852302046003554719583667808236836350147404303430778188190385065837156337837022770537953181178159639395016714893301557283076149088357815905099450041745511948096859615273834540950447156829865648298947014476458812768796565673899240805061781390584970288639467385701341316905230590328786026818841482946691744929756536800337600250709589755215962150726755370771615862851206053539241774754535889878265714908227722108122351566072317403844491140863079209900133024471870500065397510125504623383874994125182516575729170106064303514778070893148513531599340717262055013463690853656305790361773643308964772991493531744382271589544888395047631399948823431466068208824110508185025818543854525105375730090407123353537549803626416158864467611404158475971845263046778777941621739377489755487287902860388060893896574860943542086106742931846462933221837677868905404294697080963170972047544011627031911106185701879813731071093868566888748971328304907789951440960623054055134528452789705644037081003405681685639119965985399426306219832359911726473310966620687274078659005531783037351540859289350704410920848317634427578753093388641570341403224316228113551051805929543871660342454621237504007851225647210859692796807457456881398488180616941716633274537876777337912225271081313228229623322129827123626697844561595192132211314673871579793830590181850239241626044509222690248405937902950309863309538648411501489074170336807630793739418470150188640630675746842588796199704083063082621303010997566843412377102460361361642306858980478304137658888358009493856254346782339488621950745714446150650637123364414588219949092516032392917723799681979348514548880410650514692624368082043550496874768558638994139073309872331657758248034817362366343237416271175541132507780899650773562404075407927618001826066418145624680402954875715301584061778836360650349059318625047542257185445302056002435869763383375919184662292402627519498104287765991916144718473598056392077776695097540076077945156395529792653728299159273815818496272249022602068615722965167523112558938550338982554251190253846995504031538323959465609785737122021286756796194948129662953522695457864831636182218774646992668462649935257916290319869607985346405148578664544027198882702502150689962767306776501205171320201681955261754819134706000875319516659888007924697352368667265083372832429117249650642373025611991497568849917317055126316813298606119362406878616438629334422307541625412618171625044722263996479146856554758121338905784638338782108619526382631390157086604578326332072795830100632146355666108225662133653378990262453478969558849209787019034475167825336869473025226710198091331910793345260703918695865316165669721183689816515259152750044876932716311786801323350571679553831228568580627885898690607768966815450333753680389104569148217331232037831692327630331579216237297137190454358737003148221130710498591079014311895773368339271507776212713547753442276732281405570570472096629294824535874748107237792678937524558475760846951015744333918070283158511093216689859196400430049355136572489100294946618995315248600051468094236418368545266767400055650155899841285269514384609592169608517172213674788914889790756483722713421009120408781112969458762984381043385148858833531136680279541518899621557943267644697795515123802694733525728438565913784613380492787927302378870906444735925473600046338663200653496209446385614510516262774347622738640342842474611083233911371196172944101224430833426755123457606176579000886654485534860249690633487204274395336703824943221046350826498957777367170865025756255932987424778251403422648174569558967607809358419298851432816081046453226928117109333433991772682984490847251356106288024130016357098938866377842569260470433661921628713701264742857969671087037835910558819104616524751955873314853115688796741148767968525917939496503163130172656604514144462500909438888542423337953052604633639361472009391757072037616776072872137148295555152159443102118206078741129041664172848229643932345788652159165187618419070545524004856019873825668202374452580515842432392545452917724652315553822387614829372505513762603076040916847079346503426963298085380333808577327395374042583313028850533624370355671365337262162676797063575175783789716550556525514594677703977376245378582084577899664972171441298707205768900757152390067356478311606196933286598585035458684537614015400117549981146689527428251451199873849076301079300111806973396568386074280542142735352142494455299399415912793696454960037404133594327854994815007915863644493187008363262154189613158679096854980043704207849917365576353274907896714163305345323632791962999037656582918615479344425876424008701694226042342605019756330297380319660054975051098438545507551739272986652754916481786322513478400446956647134410497720785289494632066933028709745816253944564331473934520400910266796174775683248359001765256423708284016206773409778865363077422536899095964968159766921427734888399730545145069094644158210699694139105933445285518807671654996413241032775585405572368991161798582010177957989652732904076985601228602121983891136463771936394567289561842586343569635497782579975447133719549932306184522873059043318727533103070810357229921890348130199874534767547042106731179632701506377648359201319189417289399209570282818579641838321349179745713148867684771206935152372348686177002080206062490454785816571057500737078958555159334011539075684923302800214715431647921447318429663442751844002194392028203324471968533464104839425513025148548322013713209034043294839302002113442680990641061310970355066750135901122800958854992211511786357573194869162144820000707749633236788942314281673017860164973873901351490824206309964675263748426740452646913711854317055409746632398388122178062184956369704557713450029149975261612763193538475842841182836185897853930974894544077342246884732307451487813985612636751263670679711604103426681526812103783865627750112532423700930472334090843507490356420311763187732143388929219257260369351650208460555784522892939826521838600704583881398821445271946225223105923916630611201396665300134991742665372797137677859400671706859363538042387827246713008017702335822884323397020608134449689040338766103000913599584307806740844967321021836506683338383594783678756735339471371433109776835328350923613191657726817639311373176128533661449723314233466753280806864153863890807079398472243613239542408036374303645993206939252528242596292435096666737786290277422349138123975475273533386550630992875613114635035247167900128153161382283720865960628416865170889006540272699889803185284309507865530419144171758227771773660390092756924759718807711405717498865700600842274800596261680885227339050866329262849785373372134195258568838130433533779514820049906765690724452244595948659907703208179702649731297143064522702934780491329305048676760719298031214352092917393047278134772447699723223023654577499498983016474152369245993415639429669431620812463845482828905389942977361991097846227402932193849845773034857313154421064883632643782355743837914061792069171706814757828111647833784032389435066795208498698440200889735878382138353270254151072221521061719012652784928112257737298572713539922482683623997440226106279088141943740811143817772859723273722650619052505224897710427483917564811168342236589280430212849795290081364380089761179370519144861618142937019819120473248754184842682965576724283742832299237098145504098325776425514410988375166729869422526225583682193589064494494821536654143171950430338706478979935044646018628699812316087783401386288231270674780532417655363955344086854431948208301220886961884459491723184089068816946532675426427394677481761450331879063134187420474127711813342654583951958055441296375253005942874612026341639287237535139073913748101787213512936195955217465204076514530945440678626875596021906608657568860388758566073344463659840270635265402394241064379430520595042664244955331058186395141444429639202151442584395312873439774824436963404021129938398684213548516608183679685334837206906734841711338785917937229017667251797012124088136518592665296156467626430223113969339765326153429615645136755196985703663847985430091361036778666762221092930074355962066785019489643286023754741344435001032875232050101258936867705482099532574715335409231027829485414052188517017746278286857247658675972900002552860417261955819286399835681292486374005275363943873798255264188862369766832609169058622248584895962406924322884563235689600296712813387933654541929472972738430923191774664062077682033481493876219669830930744792097720223728490038006633706726456856724040185485131522201263702894822729421590977553308063640020238219404170719280187155890004923492552773572795363445275493347853281475171861178694164540120682740595539216628664962296436702418807573735225408726648703692661203558666753469717884708510789102695389443743394830374552228594050601684333715537125371194513406726619745001868937469849062561807593121133903381575801350426028344454966949441973445625715903669865046596176190647607289288667353978844386625673194534372464123881502459496994316695822435255883192842620989453255795069910129862297946057082536849223491560150524720596349191237322033613353987494359606600358386649454686608884968785993839747234530152726738229427159401829948044240260432229651814179009394181604435175440924941845845088877124891516138719778024744078417292026801458876668212414339403658927210416472916929486293377719121495928735082365419110017849049507168698675413246194560304149760250919002822995621007484962607297645934574067910038724570568863789701972684019775067817775790701749477689759576222086522555848071286966260096856076924887838343874915889812850895183145064474995308223227922243163997759150802699972219192195758995015991025625221983255003496300730659392665708044719570315513881162377428878954874200926722690562162630948363739614581323974336345355869927653876558237309308580318641430131121754072019369429622245552184161671328851996449453154722388153712053011057044388063269459257592921928097963290505802234895276117355094292397362404853877283356549032684430034071933778134520090164997105195753265248296261545897879216940278789538235315600274695743573470594137256315241404583640276405375643939520855589798993643096298609824352574096838754637544646938047759506655889803803764399339189277439703440407556953024048548578963013036237797473089259095112973858195567789622352212885315283642674839540209446846485051693944941679738842569935710126319743063222324012637328653227124332774143684862558352182523414794436696730382552162828990236120975083729045010117654413581761468577333529136229683197957769081994355524954853724068814608350398232018622291535956715262878719234250002518501170900679124444405814987688200755686276590002451498287299374338592588039697064929723201774843390402445624859883186968632637402547941068707486604793973599384143598542993521836153701330075150033205360390255438796148702459962695272243310725332124716255202849870689730711651219577173437544321903403516995911676399086890960244070206338196614290640999146863283557714579073926599110067015319550905374903255162635021303038020455693809882316481194538756755061397804125710743992237284819112035929111349979963911643407678410937181184811019395227840032400069305193408754897548344688896825810774947857468495004454406929704704869526727846343510845901881667783606540179805796992255717192899423172644056941768106552183850777201036846024752280369509656518724720217649613317240647385064524708210824067718878430870840611512594930291221999603730193746779863553637948022202855597407643360629704786239907558683042723733300079559228641387495754968531639014195415307754547270227168091647737288389629758296799259680926425947014159145715967975521229052864279693482192215632639854893030149646349874714051963196662621789748711854512825502990774892920643208829981478891506274263979122765528733263610214071718788127300398915163464558049399530112836388958932790731195622486710137494689296424521937890219039157794628752397628201594068539968989508339255637836510440198211251500271944591508727409689934779928635052467629426070638825206294950173765086533117754682469738178799749350017406674148797316760958398455666704873198331996396520982358598705431076538317573130211095765171037051453005358363130029109119307135592735927577588562838269068161885749702765932818732661821268721869241558582254930707248376889183309452263410754893853196700347303838027190720551027591654794329412932213709650666511876796307115985626021039041042088108362593423110225821033156079465601224010734461541571629743814898563595575408857230998774034753724392768548228540835841571697086635909929650365609087189713257315582974058871217247485185495255072298073426913325574980451133838026645943226659689411610492844710120761231737093761653669184329259382730425919621590585852893819046660654604605855475062172435477227692994545465489640736590999632270266192023135181909331807449186573333639952324964596477510889935568903040735687939429439619370667067101477796245358874649652932805144943129387490458972125408286918354838814669846789007137425284979291819434208599352745367461336996652840894030266344296392111451040464730969337850941857006604668115605614782489459852896788303237809648619056162593092135236728620826118059596888839836534260312358587777706858514935362519957495760319813015477996399902674423239964765882613074643271400527501880937287027204906704352155072941326909899104342083618975798682774448658122145677611951300734203546410702290409445034271967080183347547059219634483966285414290603409694605976253862234638404559632150966356796954898208873933928113775465723938396174325181744269271577601466489238403417515479731478960025455893849620842994325399315882435528715460212397108447046081743763575378823558886245494674329012875806630800220707305110821783456759256583092490451440871804133706394254767739821228441472200561040014734109449429616360437860618182316374425436545378578783476503606221824669078017520663757087825484301854753184178432631523114461774655179044403252292806669309103059308181231321471159579738091792575876107369916575223849112700063051741202933829668272289910126050771382408866403883587726575708605330612629316952930053734208751176213125823198052336685938435856675978401715482196673749153642143255202019263727603055823430831761301343878408205314158866481213949175222017283994995232143466318767995594621034362797878165410032585835539036229347501258443302426804553093456183122429764862862028647696564991301561459447388378406269111649878728791629973077358978697064698403430804920914292181163643463897915769566302212964835410459687459419726580895682702087773329279460967179914148284081508814985465859484775880867663924040179739947608812804814990236658705594011452375998354055615663923615722036348457458587730972878693012565703301297082482120941770527821858341304892879093168634012277622210753771404937341595510434388493919800397364195719047495072464249509144994839047489573890032204217432864327149215310645831062312267690086868046783051812625162200910301728536743627770124581464004602472259855768241237970925477526169353259014803315539095260029742713102309083430612853041224313784376953875764524130616198518391099226904312333608535811210950952339975612096478658395236571447179115014070107513317844178085963957029574246268597275054805537708762412461846549436007028630678615150343700626527644068051624376580423801651737649143577493274759503456196861336016675920525620514376295370674469258634830859910464327990667710983731473959139328961180804064225488341829053062179407667169261873290984963308074539937748403636422297950291649896155160270405714787749610259216262065478617597775595700664877009464222023392980238131144759207135993864192757986542130166664043445181679398706209068155882664159702309675479927480252916644874793166420898203675199102583646063387913004230457335949402766084084203472079457768660975491076332470498372185717295408311860747654014916568353543563066748719251652405734105195599910228597130570460817610424234112505113326823848688633350723723085496707085076857985672388458361737976369843792910976335225054926036511130591141202814375929505904890330758822254188827931814670256724283962973416549035022879537730992623782767134439273232915241733899415950493016438722721070000099729009866197107001121511186467820267111640689467846574178338931314287614136161131909587825686756382185149614321249334788182735186083912381329125952884136684266129882576147569300712180911959933225811624418584227448861324088736715494055270940631554466624436962996974195678117049934652096329604395190620211108648393824915831708516958089700739629169416740750585371168010293917167605502533408513410397934725533944094686927918393384855633547432209924530905389303941557991993218945484066173752750648666123584995845523163010743044666139208565933941576971616214503845833793092983727266317510083819891526569920371318294031442100910419570197329331768688524428413274053986014062846668984804294272135539812180557182080810068716758298801165655475591680037432352460872983361234963142753203371535422703566716652202186353860171942506670901464945304232848973756098325706456843704282677417060431091198596133807467035107185858027349330570966367467277711707066092038243626190334548476705346873852255753826934070526442183863340572728163237625565510821749184389479244516690316355339909953441949791717042634007466920033054617193764444047245944548688953993156345362361130600681838423865718685129600832575332903280201087682166878002941954085508282689418797168013412771002511612913108762682301367366460248035036681354213105428800454018251869953375771411895608392758053601806884627460815944758448275639600429228891138891546559150349775032474168614210163826206851870429238984590448190069703424433895614508771672415043031785105202234900994886576164021733340186934142933652992866415046483837958926898496953110169738222054696291592067268714607142232115879522097254885411192080640967398493508322408410661469151961033027959455667607920167545895726073747072283586560945780190089155279604517146768258272714701071759794743530155457631264864554418555242312308705477449195262373709064129940910134800591287376844775755049654787685841460810895375641004664609500379599370015861772564054881581133978617037764540325243178609752486005326259449099628536899147863745440741988683303315029337468951617276587264246886499551791772604685402983855381721060591020682576381900288573876893418675984531794044210644691062505844517446629811466610141242738692505310967870207670286368860158780256362265214161586170130345636434481386440676620057580516919606825973179842506388871738438477992598904446465543811292575948117784672036515845560311856159216788306637174641787691503172438344620081588139971809251324468058862282407811700990343968433461773893712660896801464335441976622636010125848108599175346370748203206818771280650348713175757470466662800385842169331913706352739025927354311008345930717769245434904609743200475180721562800548319051415200490498838321203187616499662283067255702549406863931951347319499963384005559548879727740797242243114129123331586184492681380588357648329133588056515796486896761892915915028545838105811647846104086961854458633884663498182170922915244892452082758651416734572992410064347065199126040315281470567807561147920540476507911991889133031519221281443154941638423720283118230451237934094306980620631083709508405529019120202368861497448897367160616138975574838351350646571422614586068174194341098758300293893686888245597629308224416397952211772605447193499113689891915694139992792983865428578147474452298956793797667807335325360319648666345424055351569300813461369869673413303657612973612323684258453659554073712921238225705054884003586119749835258325268310371109190143941941745091439279628536134380637273707013110040215713773175412553493019438263923382301593274260880917812163849618060084626516784044870590782375230300238196504834724905482195573927777890716481762509490994666284257992791365954249187501098293819980668203841781772759612221633531886107204451801710964826561363440121665456448816122164713672874531022057255303707950890213661385488897265767947856471573482450202273380065565821061818675457134004238382774919413661262430192025623802675497422949074745362206985100688216223676082575703537896869718866221565047201801894710097269499745140105668112573650779748734840016325075206906406704349233315233449301117638823502481387206379059171125302990650801963141530718626108013265951725872111462259788168985920043640382942147568160845430312186982638740604946418483378097137270501583157811365024188631433580289489663721164324470035331613595183434420471413713374211350415711849990981331094690082380167641079388892321553640423466779466593337860975858174913070765595541682229838948668153574515379706491840425866926945283287028060960980185851218678978394371216014848966482457723178729792218665058050198740470409350494960398426324766915794099839510592416506593016788977596621075742300163842075251486803764023650266876399221694313947061567819402871106465518965903086826970567956312647088416000660992196973318920071971347404174980554501543516313081748373424281911151205144877727561742616040681184607522809663219916530351108266001189619353125538205606966059761522497064701996837445055065839875956912272837795119919889669247748655659909820158777258726402302010660812210299726406623370804611645809505365706368141065037783584048486651129060562985657166941874295368423563126987845854460212542404565738551288667766931453083929887826827413779543842097081115152715896943499993394720733792334611197179311711445371060648784939262184885997149265211433516071527652577495882365358990347987028425294825992516589015001928357584971801081002767149373232225288830330755488647023395832586310937644735828211393139589302591742133694575379082085034283852770874041233682196314361926598099920499658008898053346461959019460008595855697338773622164681830357447210426164390062677539531128690841648580143022669446384299671008900218360927360985969786723170525878658095410276969595799836933961875688542372955541380581712421265707577721470781491170081827663797593560217864342811077076689161409712333340129568611094463973532329769580485072274628539085640366460775482739174081365343430402014345010269566860391725455870821282761005139280982804928057038711758934306450971128829045466841767195354567885421032421475175124519657398255236475487703690391916242836199327615599307096656394621027996361530898913979303768904285136200374596945262048121360651804147788968455446288244530140772951448815657267594325339481912784563497885042026311681395111799900094188244594902785874295625425018508768844544360136380562704183896825751592940455688187738228759851537166580706367783374287280964578802127982406990334270336412136168429400319341106886231104219492631333388184399402332732873500698324647854671244330378447717976925631084896210860127305739673270055409290076094073501311103432120578695652823572157654916999473213152339130072201966922206817496804541835898262661262750843882379741882027183852751176015014219634212026811679841880184567629565352757676515414488053082348587728377222003606846025961270789260831235496253819707756180884565889504178193882910627423116211973448644774076084298762197609420378893289739016163641302349297665800058671783132638321006272258808963651126607267623358774449555267668355214168384552087568688548673607819609787676332803705354101721800802102247569381132496115301498839245560882562740395201699607850821165067837994447173681455923544508012255047964746291928239270849918802025267559235161189599589463055893012410336756991399622865730197457294930196649793089612230843434628118257406817507620106845072907110878024661503558845890460597378474932868543008049317980636286827463945516692097786320473699991224480138442337511822301845494987812854305545150873038243411311368132792350455197375942480584453952884960983287254012800733234188344847082966859621439524928128308064661932248202495020509484686940642894221119410136530169464051641320052747516090011065199008397762513713079843115343257117109177766875095234159794929911826708055198617303988809277622713142268866727467813649155092499148217356656868696284386988911762104839558367549091019135367024331366606863790707832895408760328673246503808617920696770665777205442921165800244273684551349037147161268995661151274066208138891381486651145377185085173263193211789192172876912447681278592806050074641174993069400662119897743195562433766341214638822468382304288911509800094433889123663263259157055865099254180359118988266786817239317137681017852148072576177300943403328198615396673168832843496358152213965159416122820053836008792569667071238336795551454060974899904478585900171221899852448528927226996558680262568303737434280968213525494160403574760255488125415914590647668434688358697075159879732066622500605490023747459763364460687246646530544100348768033381437613527456051681291976267048305192521826090332807654661449339832474564199184380260292625820565950272074098044699984618346834919277797261497835289088518136764112777445607484085413456532014160246373246272870760416468974347277079553119223233226236530137696027906675949842924642744275334297014571579325381045785878182315218588141616023410588597314615454809488379747705988701946293536181230525405690632871349558810266602742464829542818617767632696329976817161718247967179268418346512210749419457787522449647365125537305399855883535013910943315631869478599645892216424151985716187098154427210520908825589883261430029381548131336675158301945291551487998663192619902852179052510691369443573108946222962224217501917456478533890880099423634446159704936223028392986291306490788703555317950977482875836615249297550395635348844469159634541808057903957077642439680229816565460091228390222562393689021048356216872669557040135283835312326035541842836174371942125963143358498392314501220686855741119449355205439290345406192139544047164670730117744714127100580855854629396303634932735458416227519534780359603393600575674707320225021263546987032142524393565524712185972719268993836649441495828497178868770485712755310677262913916881721375861373447321593547148856005993572026449108847195339444650756608573938738743835185743641362125061519770119420051064511631464840762346403254916379651705715314584036366147419887142258381994929496354114446026561306480430800355472407574639766419913131242171176629613174592111649010357167754036277846910301801367498095773254899306663090997791995340645305745743208830140293405597016663797390060509421944801122721665432902836252349486167951060443207783356434532295926188593033957119206630557635978571959573548455641771576905638935748872910727926432273171018724728294685615067410500963241348645810537465700617032645617205024020861016055105267998679038027674612901106500415209208687753958967668184384518605266832425975403017636157301432729486521609494142570128444206898154285531385532688405669200470711749586045576728857425348831214205117323876972365748148724053737070720306182967956959916891525394584404637388499297345471626478675931404070353439083535122585747323121896787531576431302963683321835077235758288435418567870498873848958873887303342140190260518025952081049986199696565089007911999943350817089487435068235065845615322657671297042279872786074239079514828049113844995073300023354692803694606947257933677917460923716689501647397259853587791522392629704940313437262032844667508779307381073735124144519474302741467553828317845154950292954878954709986972077416788407958052890617952283836902963257202283292263631519546327017209921872487760063822590887606154160669936173846982316172120100594997488660315656509808606067392091602423541710999600675511956069249023341150088981268623600174153264882113920216539510476755709776338218095390548022611583570295543492504354538253061908890846033525185701391832968103215889330748339539627844310494798207854647419148123052200527430063191702527094258039258306929358611051891483438762652798471806049631990100577578732158394782326536395270047679646672511444239190292407640610059741268815680721220807581892012095474106794497640044532362123210613575179498056890462221574978585612634887759164393969556830503901724616502324433079052466243388273214792609584075823761688166174465455281701950964877233842845353115894843470713338899301818638554688902594376288884914140806004868486211071080034083453627861972736441123104360752844465818823639465915383120215032529195428123103019425077035062416045044302417776348055599358992159139506633676248396988747750949977838898628740475668119659799230576759793849939384428463667939187947962865440590614233087392234210075678190247628004457050370437910785717446102739787094727478399217078601862005268166501127053366024975476150166061227417247442983395374254249984598972836557777722505275478764902014484126966751932012550682686668700099076927324558964180872353503076946956790978555918489282425649810237165041577003719506011995973217095868162103818282219720868375131175984765647012929395096873899128149759293065712082050645459658078194871067200245312188432778993015277507472604644617178250397493414204199420348685584565424933782281891896638052116730031225269296917646906482563020235397040840608342213193802523799906578532290926872850667324531266648147391786737135470504046485657077151990995077227298696841392825452200317378381141098799227993367718989425895710014049334189405215078436430339756842435323453713076855566795379065602015136334320532110844375925279712354138437120593896624842251336555395385477462723984681426016242172600629222946039126677413658051951561217035626198471601052054548916017966562160132963713852636125455902375683658983277366717327335274474386445499960881408812701322019522242852692225874289485826162470909072388071976901297139929299797385819648810211187158399238245952294113814849002057330794150272240088777996388393378974078483481769812124219165584792289847984280690839291173772503727715898785525182340081118604749183875991298462022539190883746043458631163888490894041480873451292342365458767089469213262579648198096513174148735329189248777595520131717782641199914214117027110665554425053913354826150794331945500688426151697264505669789154970528716668674197841667204775895595992589051960061427006660619751099337795970986668513291380014127831006593893566308094768570478107114523203807819150839265771675187261864134530411376053834208972604168134352384363345504411516075827114246633956212558824898356244840823246635872066870102462715412842457120665246280353442469393633531840676391459197344148461023529961321540159711873429304289925531817605824184782937911305433031219179016263821566538203536909388867136567299481177616982465560735433990692479704535937302154382367247691400947270120310936877141153615074448991041252546590514006113428071821188702112498097981640006763166846597256261114449696329899525135553448456624460224036737440663864062146565530201326536355030883528634833023260249580170163808495401466229788753131950459942105578725450087540018219469804615659224988799733175993662898269368335792449649061042714545260416955968834545531798027517602327038013262560745082655308590618296453171363456245518699037847105552194139400311508745534985483264906962876696215403055394401632181151036817122466690905329751660892897107072122757953121532269819601487503354317742116383389679228233437064249552406450527064577012924526267709969082277410286116677407505145182952725281223192168432281285535500834414229649521587152203174435610582849616394735268318242232794313465875297526176538348253510249303495135393600525854367607034308250197050166329402713981768279244546891251998323081398692073263150778355031479597305125532601574140844485062314631613561344074469434201369733872600110683374804989139183427237582754230527215952788099728322681538589839904125284914746457555927114991762814493951317932788668693615974554635782875466581504767923220503245287145174404773513063801583015607658702968212091701656127086225573601125711206911983867529837911259452010988641922044179968609437687385994557311210767052731586851190089031110431124711605583817096036713007383945335916523758166843135724343403626482888272331831455696543147860769208578133986928836140429387319805216113529435926415665705583063069885793015117678167129305654264526811549719102690465289790303555679252508780897900697643493816758612370042440017587521497493850512639898265523515449984958622147173810346894185273339542418247816882411069070320085715998089479056515445815252642942671476487696604929046475250174947829682610235049334319991548297178798799806488531272585929597125176419339585419039731481617161004612874632598528908835059514186098065588681082566665860763068728471352780763425708873918728555122016097667110096760175914729271832057524859516230848322813446166392750725175760388293499404939251278736846259948979529351877849357107107280924972477091340626654607509659005057086731150319359116815040551048243240408177692791266881709191949420656293797926224576600168425638892337576466354382522538850463314053054870601097833798901808939384187593081097362110889532093561057557326972051709406895823721573735048948964917141740276022246046649699857262946299058673103652459795285480751690075916801286447319929048098012055209953524779941762062007326636346019580521588198469203382159407057823103359397317303466770588953339795100959685487054272387571127401856358185996106866284489895238947587641412343621098673803595128823813957506663891730058057767865577572018013635039784644577998234956413213972210541972592808547023152213172571166153094023901692021611675112616603645603757575172576573360387217832938983928577829855486320553957427807873677323504916876191324575918073467196336952740844028614790342255856079287558699070831129804292762428324888982223056410841764537790246841440498499776623389117308368919048717218516694705450657464840425143139940516509943465361285069987912578016346260567700925005377187129430126144046450609361856893188334071003552728683903767480600454563088790940112215082282457499395000170465547361337566704627866579412158975573238411985142609478306018374390119738713238499397680434180661835992760729196646667957389977593266540556134561756663715905765302180680779813145485497301899754336447390627715568439420838401295794588530844188039089608379719658390107542248539566971109520717417897882040710253213343755919275514207761607647538238132940134798121132924231765910935166802224417747938006610272264567399069240754493654857366418897827444853704848155663697410684300356672489261509335534169025956312744517691048823380776986225122575939981170521746802661627744202764687901138754470378670004719819197139132196345447549872906217979431817380721876031360705223119768875547876260376674044287770165168864875569925042916142892206080799595773736889839677407770053157249832245815532676651055153793462421480811615421995669726309034685610546215888238046504590432302694634975399163647285911670523108800069259623403143965674065298669026531839813482822286584075935951905486197405567746485305548124718614995506546434865458230983074687574643735060113187545332565574939320550355881762809565308947460817464103916178244663769801065425536888350174029118874378384739374537394090229545202281818962408916938024921524004171838189898745535742686938777778080765464254145456206064900464680645637466946481180677874842729005728067928157227616943621325776578167325177931493420588864323029338141269213841314917899987559469543559514104137903768227993557096550660371121656077720865355970683852231907034958148985623627730200170518197057470646875870480063363088568942327102694192077510745954668444855650328577551535100562027516654996196994253539201024653171867762870849471814411649715319418127514929691078575325576313199949741977807277875718564979445870902503579640023473474675794011063825500624192732512742192598505320410621659077991522504801004677541743665074265908719183081616593518432746205995811947139429862933545319199761927817665652253925537199200209960310547237180864631833478506208935373767224054439582671811056529228449207859290419861127700580660940201912343160536337920215852697468141231095999710110041875203021247252351140777221478710957897085592272891920574611837919761079205551263754349140466627315035466568787958658494104157138221804109371440629487100779025666426574517626168436652199412533647265944535238328038537539266348544640537499204075434391698254383498791225384313593222867757712368864749749453831668449743152648028727383948685892637025148796561000814060171154874593841884449108063774211209974153200415940114610363551936051942715703766798724100596949249310189736246856804504815055760282470753814436976222272913860278671574342860011596102725256203285298716471295569706406688723687582926255962077448049500924721262427154977238574416338695904071499370585658727769957728563283650978275059287367349493473386443388757758478643123230091386432154734959430440158907768301385827459256868987337640912356960729462577969531222067293700560545213461604731652357770696231852067665806454286180386494476348888687353989905741922441149795649167550131399340923619949632042505008449791204855396711432870639484506870543652541240400527364496486586730658616818841516291328441573322482093728032710268414942539829859513863959867247963188977940030284130115540460770965253495053770312205724728820286556587572020002795826221046423429589725337364408604890340007016307860880232688633224895707876811019159186983727261771039424641833738563378003467973377701825088128406289142863565359806251911265094608826065531704753299995863007287169476370057714023670877865846278736665791573226994883165022975976126510816658037766292545865155477599056466301264600609406888133334250518466375488668914997207457658527482114795496518434874685694261751757748707316377724661565051348653029052074123613294200490624150984277178317316762268387547257506293258103187399729186004098923750673157588349180638577961526480786736689701659420548292961320180473919719054446095910099868991490585666565690869962276303376394542145136982749741811266964216911101181986720217430489676149340014607990642158085081511633739565328764257481327582102134719504690910932026772551050322535416861018132336845566451693340286968378583535407250070713199877410292136826995132467905223067762042947478798941338977526964804937354616041693790170661845742333622275359120405488224426027785770044342453772847556772754006380001964333198072757903187234729848897892864949513060512993279860971205640514613708507611937057201354795670197658622788241907494677850408600683185744880513652038327611764305468662870621078256319757675361265401224134493878555599098995023165568169001921370303849642527366656550753315381577832456608537034572508011373423333099840040120452638829790500554529806585838734158294983154409962318079363884768386683902420468739370438285131560541860308478007760372166046841896030228763438771747217740767361045224259084503340110626909137792968708022318128315054907360345604577274825237038758831313347117377229813551487432394849833139804200224811766911151527470783685857700262221091957067950609471220139159475874711522357537838974190691534088323873615285603677059136118422174008408030567131348297544074093200184817282583360686563676248998550943466435805134544386341181837637062883018871445790984333392593197593130045995228628652006934129763298483265163562084335687172064985518812407327311183381406007928851928846718318740961667482359876481328881345972073689833274701449483786483516193012345555434049269301890520758699332681158867357832113605334796389907897439913475222498503494974027803125550770345540882842290722200938104824431140902649866878473466567210576663894380760708764110023458966090512271887026415947919126237813569484141477392489429844114510659429684786324940266020073337713346984171429087640514750435253198802637684405898238131226098981752048316027301274633711313449702057790513724827118227147895689559451697214726778299282298656758352490336404747690909648208598951497557469066987095036986046013409582851489775095346935020914195033774970896243140121651842274269631655708272431605225690064019233309616195487224586382210082944297378921371001999848983268756882455746653262263224041101522090031917342315427734890965436686898472937808256097898064324623634632662778679295994781288730970980850361986157324924146497372351478500925672142493087776033833621910600841318907904354464379278636774084691541608203079725843284275630008582337153313167714755749371545230625500899802327149818891011169009848885656780770429517723640194024958586959089837618350937893333708479418766726373368023108011125433479283894574875561786505429280027712578500314628691298606807310168305728677115866387012707698343126967973708774627390975305675224828193424266592756028916331720089987643172290122902715719389848318514784434457984405555096520280652757357820233171003230945099400055230737682934355419170870751737014921593772604713728347891224835093682146777044209922572611602507823758430026637513628937182211141916875679016182094717908434681446688334681688826669750210078460742958253426573430437893476820885836499883067399755828008411861310254062633010780616862768526214671869800529956919231190928774653902162388503478901289395024398151204404722446643780974360681210573622585817566506572208175877578322437832679260526333935740903776482703370014547752460261136002849673392204554477645558374498705985861818272562246093948217961469174026356525551287567084024244745703988670860053145000783988457816526105350682898359615461992626685939225998032565238948948891859092801808270833333756524312818808713683384598560166620694978481832712626926874551084345737208744894893491534090415063219891074679573054754469116165057044614422797014995526519906690891497813280835928615651674488316292405855116260946963924179060158887155556090789765570234040497840556044463722493872071110102835047739015099684640966863154136363509841732017188833460141694116942118351754911752672678149416431575379048214364455833704711201262534835303638971174514028280338979967738686016338001521147064154477287883431286404360633253171023283209847830370763448445593948001351496992891985326639610337586682945516932926371671791049320754407082183412816576543251007273484959593528042089495417242801957800529286096526488909664489829342476476421853332822373115552995713821583367187028363120498073995848649900881835472000986630304577228856665480199327321585855558344752312859820676232072851504049478538437090866754783010550718604593226780571325837155739762336949182016089382486607441119924781803604164936318990088434538091179336739776588731052491190054392953071287522627218628801086498021319799548095622955648866396778097088122376594651516070231459832472285691667619646628476268593158904240933862031172496340584251391522886054962631073534980686813938724674148983746479185033010153024500502508122843142589529412817794561065233126898075096251405093012692810385540289787870952436215729335350887096048819019291689951276303132577032640058814773092585511912337270843728399802763381558100876130197640134091653252194983171170726769042564865065812176363229022181311531373720317300958985742535074243275664732915086939956249305658617881146534535204090630189998463066607603429347651417442450625895180718603555521491908791643766345750611157191869058314809176601919184354208187170780110695305710458458136220988239242604974559497290666469708435823993777600647020044138362556475650649450643542859719257577966147666906396310510118597815759276273515411127755739859317918078713949113836899134514662053860963228011845213196772812374000452656645419689325887438791788776202966236423307025061401329269938386944592532752965038231979035465708724376093395050873102334911929753508052298248258048144269059744468495138419451346356718218620528678214948817068944555915058383633330385895476827107080707810548845809960723265571807274417945378820575197903892884894853238861440574197024560996471755235038669717845365721339970904604347130262781866990755170403252254116493119257947026233854995024507549320067452761913447428996002770252021227375776879884225603848452693401495314596442057404125492746234494361863892880008193359494937438628488174667522841945248172500913818257593226777063695896435339145426676315849047827945089241097224699012204340617016135631959749667850498156916764016780893771740670346760316320597777978404055804503140434691414247848464232166494196777314468694636370405769739409502395617630403220743089339518091875139495921059798918294039841861411737644895099178332678831589312331414655011309501689622981586917772368939144657832049815322270262237651119492206176916302610099793668694105018849494748347907294269138657708128713376254312897366660266182237772368833167817929953774954679828627969853938653999323272069647108952622567031905666743250708922372378401113038618900718751044876409541893134115168148592059082011782398589602702938587501369277233042202818937461167166416688407297281724744753668269640729752908018405813428247363702311367991262528482674970675186287619003156761327221434310161970621143263081310643132504095727898795933768221173667898657866978617258976117802502269761871100798441631872779328944178691881960770577470109458783563846651982435567257379083415171639824494782235524570489931868109998211305069645326945450637094926749077954341535818312626141692073609119934172544916899420331761283180097607727348392705044484834856113916973503511915670252371665291853474226740803011321944403439209644832044183476834229831216048025406304638382665243727884936672480468953852279906471754335376651983730772994713324582534134127064405311964407973910095631303447610424130168986491213553511089348890897696104161637342485004667752623298588852766610193313806417111967817803733148771779475942585713642789166555149582224358151678009807438498847142354006604116080473285727425049512959101032996145266706679664753970345846691955838211245289499876688136977699539323274515652112445429968298851988185898360396787226712849193305090047817679166064734691613211395873290882725934772193535308174209583535236619704624055889585253257548251407392435766335218212967803241132236358050288904314773932360485366664061157513830147593620506258191021253287265661133266522345032382763675400513195558205611635753651063400192042494133604154208526210525908018763351405964727328060151574724471011704500587507278388917401090749214403958209297282866719594375317208508440254510992398615902605547459051489839911231270819639507503616528217997724948659834919672156859529870361570783042356471473652944847383483518628979971918728970493877002061033052109869961622547418342115094260840238613598296006290966754010267683163001421491565806784469094746645137285848944176379678978271392780931402759195497470201872886390171362213793609293831958994659419969679983493169988208330567073076296741320380362499394591889772572620505014162845892122703252389739859289723787578866250931877168061186290635410316421751242702778144527202241640248285322975555072335520297708975989429373111887921309802487657860973106091454577094311194117564281783871835800457928677963036045514197568297184720886034743976994604795974958152365070392018396782336111944586541816980294001404814627716180916275217567073701552297634197284094165594862319004015937859111454455580438099143695088114751220693706977152574659317960231831398413813410356682098237184059386089294292056567396399368369354119859428915343851193989758897076779106764079136053127354054440043786064100857455709462304962574971070089754735368164518466853074140803989015044720534540426648008796836552197153862930515651610998065683155464408863781064618600050504950483275939408462112187806975064099930668724841199870636564700539184096524110476811057050440187296735310354522435217159121671870365331968372401320955532865243474384761993389975199975401150933235687949030126310378619994445159909352841615422812895901429820592706696054760366232957395904528069921033348058458227183141769623840028881227885754091207366878481339665518287093092367251839812250405005481269553023316770671763341106031420542204381190499983584929273069221812424279651575657691169610749091925157356689726060734310559295381538111311406970794580986934749493803540074720441653826675608278495480197989335920452735717611884566162448023587622340411137946880914701983773875122226892190604782443904269370205554326260039336857115163004868861990871793326417820911459346125172012125598525920554485317027143521661309571416464422348193691431691418110145000318900734202456121188763623854766181945421855445907810077886883002575776219573789614081260828641329670447761739894849733264607688650688274627244963455249565871717162089476682454381331464328187086963002570216402577940209341384811208641260211867511124020236866423199253795464904986929331998475321276583483320888557236387603922329213088668758543298549974748070140694652956096381000306947449042595827972693781017771732379209226479952102551908021189495812336850189826455766682858397641585067903800158112587632471788700438998270768377502010109103211492242789498605825356210758466754205911670802800152379124499051044025881065090711724257731769443622115236126999318584347646431886581978849221883488259221538389409890347264470243985574614432034906951285079434118344812566296211950621427267267872679709418107821476923121887996699858434672760135140413695572996761292304703696485934483366906246177722631938338526642357656329872138539466941322007710802270583563105344058478255262336995292447073202062511925501170264365204834339697868209360455025361886696160452043841371965574813698893460206054354734830363757667328549259891234775968132213404622196099970447413011268995811741332393321154583876717407749969926988532912871226670315013826337968267814960039063326762584752489822659134762783526964289351574667365902200589025221774152147171713370276813958529989187944418780185696156621861885701452319950597562283489954192250647582183705700265184575960647318745681627431473526161730763531141110771414679526318571609572492943502115589266064626067809165457847407896510241216511733073059131510864685376999791067870427751753301701396863783151530459694388416032574630175233540899093791384307653719449954324799744458900742414739715936316674413388971886771556923403906288089602213608333825538606154341891006003358784413450420474424135758195487770198253432159439190174406834169942598395582362345566626124009219417661065328074426798137122437476493317016965124228592603088582347298356892836748192508726692809133745035027747570018554592290329660346834760228492191845355738105815360450206063127941397550018053573935668053332316667377196085369251060580815271963995361948720604472396083708928329920158334713868831258702218107688443219035777586143001403262563762476999748269304865702372722100489307120533997678693803804948401199959554021948680407259465038319639744858999631989039083401638011429630299467700337769549968609692122760212303444222608169955241168054509383371777541738396745947869017623981627197152385981579169619316661237966123308666438982492247561283583812831476674418742279412098684237162490198035691167250575978164350844417978179985196854534941899578314359770677824569507343704852552006171785625319192705297236095892447228189419195716747106656419470979597820797779161182233563960348555344302959798904918282046638123199275715839597661731601552897499193372672064711214197776157831704581420631238080722542862802544128065279418200868989217106897414104158188541869349276380847270764526760934642127910235185332360711253300716252442783127755189421102325982749175302160970384198571174597934607931970012792356704101411452625446635211419581975808946473219447560183290780767679581663585050937026417881852739811043315856046985840434236064351218320007828632777970467638253434927922976335537219932027587525584495115626025986772938028842089083541709149707351230292389905526900190867798771471313946673594131596372000247831950667653611818898821390614058852649681390809490263519244639996699579156672285277538693582878700829016829381511725976309082170088693030516036347113760856586668542254123302916147477747623278463256905938596710091625328554471202236311465864902523498094076788529426977106096384355275769688554703334684605005578348178371644693297174697381120561314828150731363274497215085138083331565291637575905977474169230692469085781015184154140754409965121827708706021868848149604324709866000018860394156931026262603451467391445843179474212675515400333511553850656897738636615110157579398068169229517438992166061279599188063087290681496928920461980459432876814289189281749141630091396450888902064607756547944506934104059386557260619397686517088774673531234598882999149913645639193509615370877767268996387181107158758083216195568648610253825308694577299501115056330577453945616743595658891813098643220824215749181557032086134699730597270054779671684913994349738270301357302992266882619417420610573525872394466461152252923428313946951423877088127679412512617888667303920082892072395244713990891577313382108101675906816064681894213684454450186835943303754584491310777876903455455914740161252447417465260095049159992645954599342123587590813427478161517898793323443043799127750083832624248009476627833441719269073754125285221704248070604371094823002832062758951443210365588242724668371958335639048414162793006935980553058657843183267039162753784327781078221126158312446684806076332899610938570663809892618720391904330518636912252446291933694544032681699903520634446416438557702176898158576758333913758672439430721463516584920853865581298265191753871097648352296288631502341977582072185558316707724650381222810807205599707226802059248125469953159346151030420968084718998697216341971339388998594630778886896165567636910565759627704055186049466291701105026980206395026914076387503346121503448785552112979936631879605309268335065842134718362213104611474286887124696365758814930862894163061586830500973440183006695870788107858459937721290848731332458492537965123406584071106025731573176372073594506857679186171270004543600370070151613296118437766498879217493476158142548088475197497195242686684062877243430636541255553254759465722622586683662090259906750261787304526591103815810493362057845775789597354480730982482319728411739390166253497928257650737130061064791231119897940915194446340419064135638119198267364381207292795903233974330272152994814042168322218611413868751685106895480017445182044331298289384297713210645432959656452457392064792973780053578076740437712959928006028779154588222450233588966968017258095729595253758619478780046656883756461240711843492746303318022374019914606886301861271325166491874261627585210545126564961990729946191786426779927035107912901692376951487844976755888678244102818790641727968567920438292554188522320669285804411552637816594575814908931121785838220187466976277474469595583318658896768653383912064061684825197348685474248301108829799761160933397823032555002549282841682980085984541736910920847839012595599403188647854597285569901124470412905277318168809893935942776119739069560518660872981335044802105446498650542300849031433159341543130078095361129125917389619627072039992535655241267220404128859749835203686768659273399802491462793266064777221400674314024162193863708669151437216114499848672427490158155122359632385611302734073602836124650076809955978618543705656186342309946984398515636245751844579399294262054618211888365661719592390526765753283142826800574516587749005673655779010264481514991330643294888714714548293772187673860559114479869252189774156271279009928639162504619076402773242307583500417378968322178665982918175475835033800925894967412414399103569987167104415071142126059112929107834506422280960239825477896579774892218983408541362471377407346673794710209752856216972093372304609164021492745229812780477169391916410918816396581873003212405584427392572827752528712018521148134138336214438277028061611393239634545664357157424477988957108279977655334099414820342263953219110124294848186988811934573734531642951002498586927626292406783653068546799128881078896285677001822723845313477115086339105095853941486134162370347406164258506948247350438963489217331033741814540548415764378475660745069293563365516937325130950015677747762348456842236588552574394044584524695571295947127745302293896184930509980102651356385347912640370698976174310235654725151801369636105402895926192079262563078384175641554009001310785510338662131421645878455542475422019899394162542614629783445778211102972521860376640902108885001461343688099512589245934030466634865766337178377630705492391967969630303343377152106430866734487657463063542235987780107827017581943104176959027244389252489254668832371666893363089340417115516272907978891770417999822432927048650576898070867313343685163085928841640590592507457593450862344759851064946393215979473232679208831253439016543069979468957722542946256686282125226051537810350341766635432685578691895291324358485603558138247666165486520361814686016884268375210505500413205627934975265910899915630202485283896466094391447463947621892534317232810282895475136622797441792022411940368935581794218185102207086028032972414927560705453150925917184248725783986999231026207953255624872798184799760479480655617262237930617793023585895716298440397840904060451858488628827299256772474294341600851156631135005787115774235012791685777324549267567769858470833218475449027131490612961272712791933509408998742110755471953260881567206623479939078660122052380195616784723801663487469760178438715548344595327936885618951271043534629265142557322716398895215198316956596833547158835691291883374893429514672557708672094363485927626778676123323769696825586400660781992480129572058287156034172382525493218390194492431986593347091710026645077847835667337963464143420132175814074334159565629563341094982402556051101710461811204244617715888413691453053907073529398657280503543474926194052845954646262321761364267834697276927259771949922990944862582059284576455358199476506706654929373319839223835650155558747765832581445234640760795756731394758208671456927255911782446681542673068845661528315470180981540304895370963241391821623430816895316503779020225200318688681118833077325868807725578687023482638829094800980199881630294941738634318881001055898122702406729561694607934347425183673433265164396824399845850841359653744319826594966357079790809764115624524071237467323160019987567795357025143993241814164283407087016971529620891396503304941940628133989812708286550340150719056387658678852714144257692860844349502157382629748242007266833994343779037370984606068983865310224400732244409519074540167850642516713704437333606618939671996764076040343781838500272372128234050170806879329924033776474894845090977770348344304108974283589507651293470072510424216241625347702935089515853152258678026196461058640659897393629553830939645458280655427834046170093793194757876872752166295741522408035404578550094694056718741112001217487588501765381655556916542926593995236137775404132030739136599360522441642025213363575370281158672614690403795600603400711910620475045794121924406669428114693882489484596160502863513020668249341743552215485455435075085467976684256943998740362210732593485590102070504501547100964262541439398443282609596650398316276040635596163759787014258289287121422438656752527146075852961712481086727544820811530420943035929261128472084369849543407835074421480802101028791482704343991005783539088945355183495845909005118821699762502312257491500861849753966956945443855922920362751316007023389127028207658183934826375090138505223101120721979622870215552469989324542051997937813530061602223205203363189022733824164077709941164637324212885511260586611205943454984602054741849703483704529391974822272542040099918077708044798159529591454631439557685050429072411810667627281789349896185426841281058833050361786466691747714689435282956469100562804989880051416259395640959393615873943574374179009667138774155658520527084344301757180685452220291477940421366061119224475129239863425456814514553982947312821005870096676676206714769331657610651221483110043489554553124397583307787724567880395420837053970947443842352196515224624093138057486684834534359051045821713031345398225538955094754905074364710361683986557464029247264932646237054977206627689985115397364576925933865870500397299038051449897717756726169096191474929532632163683171113371541145118264084951082319376970494566177140639080824186514646007987971144025529084663209141897629904969511701490363793985961392802360077566479059738326490930662958334457978780087670000354960601327342721017242991835421484652317167897198968061073972214764789312186625122185557639792444568568007376202658070877744031978615291348823401276419994757040054668244379492746484418604443029059820308285349432543743906858757600088998058983287439845770244866768048093138085110600660367589905602750166286518711796682346769727323753869112192073402330780169842985870778219721303026489514295840127218901773485083565046516033368663918197999926531984261985901623289168844801935865358527117984227011117987707665448913426218523079576890792898121884326078068468874776720587703842552155492182241133703959066700073741676094471614147027109935431697457431457097938770238667345723456156634495492857237615558599333062193183073016522092536683601728325311832876606772711968018025434063450452062633703331992320209675496947474775624875226139070817400753563133364395634852641495615019140392729933672746780057589522061537308464911816938665065625971150938768400197043743130082028681082366094820915790237913877742803310737876120387393353607730197683443047683185850506982711637184550490421457497579790580410864763744300083418559649656824847047495587243639965042953234747293018112104736174232363295470432496567652366912634471756347919900463050278836890878034548348656311659198605787512513769614927653364615829102729719307203174625592942784525156862672258919310863756969737909002471718999356317647713331811611331540162834987391731479200493046477603628784133067340979240159583469247969648470311803721215083649608368833088641488984181177435245823650481093840827157760381730213901266336607207181244991052526740799443197714288406709051810737976302646478121267484410365260522665104660277442075159760713602636989683199246027473749571085866705337143439009946909471516416336045905859878295871563785570380916851754585088475881261498193631253629208870884129196417711090252335868634715951695587093547552255308658760117514376044315767897634274630084564302196163887404295552174833543513542698973486870611261491809251783959564304725812071843646178517863888596847878079223196312396598588134417519277486802326580093453707841281099414873229438909512727919236118568199701836782594429008219213974805702582112037481887372500392283641189759616912890441323356554407444526848877069758732274536809288574317607739906991299905496344563200552244787107114728363227898807761430968462254940954978214606338293992071991743610369054394271233149291101531827059846030179425946866441085739719258852067603499075266193831848062456616099676351875992628857455087696236280408213440360512584337941996852479142949558603858403480000342945885662992098878132600154942424723081053169900380817997678238966737322062917382822722256737903011313680039520228725908150099618473751896302218470333861974093726794703195205713691017893060391292101188886606743289333557384417482533253288198638530180734177088463039119879859550893665330387133237876585350840351270822100946040009969046736517531747065546279646972320002962650683798863381816197647703496858658099976456893112778570711173579238514217702007969464439322590507935141903344861242698121717073111710072368051290255697036136177787989475857422738563880701229413842086552661973348609779387818397164595984404876837908359039545797786035089691703621499930754451063261238214146519034132501984301912059838317058053571682680895305457090870843287222612537342451042937640556611227626981425980989273914409447401514354123966032705515780736822810516871840045748477413181499331003914275578473562507816478008111159873241414947087061398126866025031482057163171651452418602925625999594224686276270495226833768665507237262495509747142816485067987015033055663351822133070042902253978415849254105755117278102107600515644931071087229988432451451877519495500135128165430214200305063402247195171706274930357257456361594814343153569362038652719871028555831628501336931204811406151336718375707978662210249058821770932970853529455695083691298567629944143262024169569579903040405985797741638917851106028273090603236087083183725665746279265118423742608648041877361140800492200176673656962605430876099305476474556621319381831327429927204895736858387640148905817289578746524767947458693316379591471370746063576855866996635745604366986389789690975420680017269658692478034380607638985108068073597085799569879962453842059615764551803574589161590608781883419410737482979948024166138317601032122034900726872866444489090505958694193667810603473287898732952618420588969771526775873396065077640138920934762451944365691067468677847661389740929499306547386266704581315581371990195154742312764391531302990453322577198112075260329377130900765131663127018568654396711261313274655478120769738011562863030437635850479069126327929810217468868200464951979837301441201756633614839778787852365049076609124107307097670977421701346331676776561827000262110310314160251985951560213459192448957987171013714430775052577146670299534972385766391299775308236325119876324653190770712002195799754229227468462364308878635776923913779556773599395294771601852989137052427113776400620699675910625064844632654775553159677819812228632062815306236719306256617614903966703892068822096534993801066231038855027597256371299297804536622370583423670803109996644741060186095808266452898756837081312864235828623088534048819433891771558460991124562022638792139872304704089365083650008986266222176377867918804219714904687567650868813874872677309769400085823435217187742429535307737502468862795301734236668995788170533942046364776172825180155434002013721794811227871651723542873696616774696812919269466974172527302446510456868935230566391765310096647429184120840586325107573364928572393004693808400603207614476836848671920754494169609563732913196241998203877483252877266381488885665988373055696991864620628693213045640906877471837446650131160900687478159185730016235276813499370133363662979349161097665832121864560395073467513864601717112028282340614042222398189035573372050689798198943898263705239901820961375713952609316095145721109454271928631769078571116442830565965209666857777052488947153341020089939785280265771566589416665122974580349727368447610879723025103107763159069748830512471190722691438331329830369342306181859616885923745043722349800533689187895005345309893166166857196879589298911949100736448719829631527051122152338247729673253001091415912389502677590166709991945225348245351317284215040215816091151802166185412837675082860785224972468917887021893670421601310814971046563051984475632375467931860791465660540062132040517033397997076520001478788891271304906791777951252132931402570932965414212481597939161981477676055123837054240077916611933792274281219595768566965510873379570865373915460427221102716092272568854797796614023935750136718683179800452593927946274614061486684957715731505138226635462641474989305529873421767714870347413359301139843963096975113167995390242445209167210870157011319277388874440386636309995163767226173343002814445056674155530309779036729434013997490331189229661508661891671049501263706213928049238423792233900885469563433956310540542612141020266198181104390447565364863930321545208539022436833981301037596793526903138347005576302254848670423322926539683152234688940380480239009913772719809581580778603304664826290383268419024746129674531624638826726434752431375951856474538859564819110752485824953454740997801388659614767479038718822538679301183701021427454186811841592606098619865022585395757895371075067257712135769180354021988263166606753252487242776853207725872430462959961987527298044403287659250755577057510437028398399242790576105045712930759019578672937167233851199189176844486471383630248490726706010899175504293773492419493646688659486798565051854396266645442991609790799535791197905262068103461938247638842633798227831696600971999339941453280711738648833966223395616077497669821214749896605548202224099436849319707357972008968002600974084897733829285982198609462230151334839080167137347238487730692009095976635545894707636015429913992453584772001438528183269161542586399856449338560803410204574838887013449767674547846271037204561828584633664114058219711925567799017844359872707642262116453452954458948477950936533781435060787922089556087787658877936545292406636204992755656803483277264917754383193769712426658302247206706453550839476533797289265141605087541292798009014163351011097568872190475568680344586970328402814255947655733838107593772581856973591586480851660635145418566431494923936544499306398030441331833340045307006497805235760207026880597669289767543125285198305499298109461459233065720559589126420374956813826714268432844042217005431397069416590495157256174072563394402843768553901772863133347207393262275617450679681027247757490232025017598392463835721971298568128918628306722529500522328457548302897103385522431053264568440905857896248517727535231125572961812927501403910104230111017558054478931729067388656196804617399641136238634180589145741780965760075637305890821099180527887104165545431533501449585885781838501227485579100985789890533427083114030814098137218557196671191897292676054066522775028060991709861367967603357843662458519644332366244863135590483412364207723139250327969311272553819074673241926906367835262806452472250424480629984525986643628494783896054532643207289518531776562491679307211136230580231010092325861477220410056769075368462306424787616154858883053439501518640378428422158568693236500566316590690459251327835314983320384133376543650534192565560676669617617665378164933567702860896680304299053762735960922191283294108555529896022960410988356668214588084238452395612491911594271298821979156885392101654820843635451501322862013190783501806866823714455660344274520538316723445760707068914304616445172541571734792297832018677333835109838007048229370518723737067973585886101094307762388508985833786028696875976370874150622842105396015521381395936245310818585136521442849982072864961039605673449615073845727125822801011465748606932131443239586082084270177950844532179378299111052351918809518451505697283248769079608106142939646843435642870873753564269537529576620963834881573838190378737166268282194891367411716074250864911921495706677523137531734925353443255879472967395549100433491485538863744025813357113926860577175318826072497644997387235356629429170442413668987984822822419035480772703129774957104605793420868628591052594211933077130540323756408599345155303081993346601359450552654086956843469911936337813973519685443548325834818783270539231687623644926744495231159990835714237615736141031471479688150844000794866991534594204688036832921783657067621472860437871090657614367264942170390543029876441343578240319896027103668618353068100857142469377433185977734319166849669668855526371595809398080222369691114496162138283002685850110183045166256385007309509860915268445344494551160236466335745490238516188840969967695396613024267665306941808875016971951089882000526205137330751466919402906231597391457054005977024709180184971925214113140462660723414921349350596649227282266582823332482420819497364571905106380650069743918879641280780969669495824393511659486257553311028799931771831569465451792133540056876997098014550356042336901296085282533031899981775630868306161657162182755141103406668193589892685763947814521029978410879896396536447215216157009821117397569677277908215757269587088391365019215755266149948299122140950927370456420259819217359345262353840762060247608694700151434851254869274149575666761803028369150973550523753612643471179696902880735721770264613171532213889459711982368691910327950918425027181173025394112580139155396221713751317622745002824395519623216116248372844933192899862476268424799076883135507169424708958262899798015348685212012571357667132642782844720073431244239883050996199191446677101280929192131892007538476419573215001913968074424450516219922126332392047128059955571679703627041055955875045423503209827287459036349568146453000207544652820280497591441051191670321221218670116669398537200053501772458543138152646654286883218931573480639502009012658554390255742938471863082053592055879892812736770498085313705888420207797082601689845580353552029152315283081990074560168134889141826288684833846069233758167989946388273590047608561504021155020946974388513677945008610949017205638875029016333740357045590192325896610367455812168030638539235060557250410685526675895423985447624097540137454013135394174323724531537737986753853680380201893233891267501289508289032733367772352664462206204750961650537369871764532364905312071970945208185894470404537268167279984093715877933032092448738319951157382449760967528172701439535329492407575628771137237755787338141508079420241072431960220566938103942155542537381179625076201233616004681956936861080495390872904822507590607204734071488593576254784583687976797857948443366837556767122314054614839879409623024448886066821542839841145728325134091742873458127515917226610075030304820656333133586910297406435681131827731288349400186489765006733578821940556491579566536906496776838727894267288015323433716815561068656770043184640267432869407170575201157859019880703192782567592492496815305922577874416566925678825734346574895311686744981852941619952403208418673829936353326899495779079659988910339323738592675590290324365585274480015286055910476819052448884449877943334882247718900238135085868900241431082766478163521037519576144492900213206553729907123142613001644389370172223520006028264684173817798740164596863472105907199425635623643910726942919139011201028095717200516526383779214054084990562907923963722224690443958462887708947698941477185118427976723431303203328862600329212900843475524478046637261862540595384367944748223658530550191056806739782563325809857082778285305053270484958307234744757926030902759195313709666454436622985357392269688974854343638134405527284283370410898833220569268321086091160483075724633390421318435788922657632652804836974567879429254580902315088136897998317450486464426376674860361629350762015902525129982479024980183467884519250025898914296288263844858883792414442704968407479203551309068477462811083988801298197477534348140600710739701676227023488766941668899400908075788265755922074580690039523494971516170442864114145498098937944639776055724476939870487561399674065287917320081475443879619831018425612478462876980899574675118509726008557314684504190742254016416788392663096356549292302720163678811118349336457689151157282400424141149501567172485327714925663911631210992195558818148077311042462631111526806938100213310621888572434155254211871269471384212086082226705080623654381695490985212579768841435226020660442600856087427703712264055284234705884351278821696318638622042435149800002826559429526461886274183093272566982710976932461246708068119540178361273544550299242165876323802382462421096924690942449179805547724722673535470265891986287849040043548516302925320558007309973014329892164000488061955418623432622688908608084861375097072629534088134725390223873961414177231458261601439418391789719697553597470765138878273455401860652379755568839398052530258745726660410097596979090966513071581554973902486940266534148625292110787704883729526992680437713996971122774805351674192912867729671203308757767953816284579588918011971722047828110230779569601741195431685239201424699380275363559111806725216887414836978501546610432097560425103361120874752849667188937796566449460803304733222635807499985756535647813050717536476081862428330006961744578645224929143237327801942781533609827079030912376288727359461917743713779429392555140265242717232806328787871308156736635365100008883645331466694899733454396847094445589318661276069595164612416617574957699901276457102719295987094261738479786212295224710853412445888387429240431118757212086095670037795480064587321439283424779218953162587765088326421049524768537276017287533781855891206868126698019952512643938589058261719536462562470641163867977974622395093240898899527262693365913875143144919516640019903848995820855704126201229167026608155160791332925936692041149735690368921719680193803580095540203932236189203021158216761803067384690268031837006037611530662539123222040413056918224752884476587606696850655890880654146171495216417894021184893649338900576977930775362114079794082241931332495707785368215643780455870883110640378471818977341055505183437213857779233003955180420826826239622590808135474502539302944303207530300753201715308904658698553393295160126267148129997935120928897057761614801406331123595279987679881502494340930618613599681617737416032795155200561673724128797186401830750989452606572753447350120845810714483416410345464580263266585655706534670759125670930845508508953298324522569569719264965424337544334259879965733113820234765959774789129547212944314685183193567977292227851953163137924305736260053526261549791836861313458494934375320555306387454955481522198033909560412691693281183364549137368306239638119037804947780355874868161596566874409736874314753539795952852433662040120586408448345682481234100753204996902710566932884775174385576744801230691433771455692083297139614821155684362617005317815233767396376392692579177583630905031330422830653374433736083350436106577569401135610426278964764934689137644197377413341192576886935406308166313719013045924949309123492420656767750543222632483429408932055744020771798990843083618381073335908573635582305430002209768912554206732970601183234917140407843330962011533020959147397480671083855196256656335337498538174497020487827861817304752173743179363559566338681053537317645373683897969169984848724386405759844072197421034819300461777772177305754986550805160239018874081952636896927103433336999379588703214323066564301899312940723484494133591757532143643081718985097821667255990971253667227275977412503322944301379876867736943431162647242801887683513035914941480645818460599282789263780385793879216456773564151858032243677473351286970520378233450063732048098315031471050077766575864455339481490613088516344101670239274288065111937444493518043773051216012015958637498239962594129828324234446031688082827717814452030721016230108562567596464130085685635018336439245624721706470744440788624250914277370504702547336644142365035267994185007368854727433389081210337371848065338854152475930450147384408037728581837280250973218909199168156047570778742082864733849176247423017318890681953581170986294651960397170732107377167551888861965684354309638951578959001586557651469350859320809113932795131988918582492844600610144325594591123241311066287272208370374152092067207298078352045002135854244749909934203316418758063195021781008751394436095526751309915990057556241089327507079729158069730177201434642573782363046562586615296135615231533799543045411267992757203635069319820537755743130464238847754636440114652790153226272689505128466071863354431360652249333555659432510919402867527731720989192557468575557984496404813165311018661390139374240356207810654290050446811579272564369152488547054765969171800552448827352046253956968384948298452211890103233596144488905091408129512933624823600730538370677470719166628784647573647242156668206628542019005867639291681480740072354635718217693676090657817730363159940102723519715117118431818788534709615007877278808736951649047944787443169463766843480555988314478639267688141134125586652011827965933288503316750665063734040946899624084999088199680084632855996799297157449245248798952453772079962989582168004957463680469278937319693830743458932618066754866528680338451152344082767129331555694580252921980170305202042520939025579985096171222989735780022135973895903083033295798874955718457588387729562476151774731884382349397852400564217715220734089061289113791287812527770580108194486097283440815218689979107750034696366182679666700245702452243717314663953161312928699556293185912541331627751365761480970386591087016125180506357992533092687891147709890476054922853928100413087674473052092937469368622138048643534707745149400030700590825196482147422562142744821013030027101702763107530652831435230730063357901039296926492174613967131948919489743814830067115433077953118776939098687076783206890857136600306434729444198264805650113077744619338598537532209673997880021619178363636326026688108816197494971065954729986349152406864883289437137124393370077148647485035332492341008056148751565186353242245722885176256840475073717996816864701285731485337888449098411489216265388713372660101149458147074900042057832212473918194930253080325416870155138683667521852950639880270096971324508950488624809062488997925700598380087553296550935007901164156925659139800209511533934643026857503005251685695818530703424482873860159181467457651118270912718497821846278892245447585384503966553467825255014879854995603905467434959796593380412305799691720849206926416634492818287477906522704897374956727852418223743175861064806448703125055091484041479326846472836204400146649645851002300693288333126097758759362671671887343679858288078442210081650387848916035887058366893511796544733699612311441657340353930589402856547304683724341110150561882555406776580992476197067538261888732048707153573753004126214220587399213098384244935442570801823261462414335320786634122884869635039778706487906432908766184997614167430486990643458493361889999430757238821827166923838854154109771572621355120536100083618990374663557118267735825533037003009572003727074096315062591687269414894814223267851213427365352495107178715639577500201772721755955596915183929213145097403181217203729416453424888499501955703952631158151905590213288350506734927814002705030113673721460902296778744044117303651691155493039919373614818232720139228506030278196763685725061082665758794319284959685270831827571599406233194033711059913397827353626282673996411668695480032199015677126665274603805685225595569420958753531494683205337438506254882172406780416908108107694052009487189324353516971459874134408497044785871446367667571989173433298308744056085851337360365669167621178119179219109279894353760941276449806236391894015413572284953450748783375315037838049586491941079817447583878533640369155063373458018465816304997727709854532781986276614463931533692369173578914852205123800312855073182146797424710334204841822025708377735568788810338140148487158010086470490225258426202688267842698743211756112760538029990302270412758795339394958375554759796471206240864234290225706513349087563138634328328067728637691476927239651753219006892860971388643656242713250287088945258919838447498310387123491506194721937419426023364041155768297424761049348750665372273038326334537987927579194757707561157151340933033094182884589240496684939128990849777424406572881770865716700968475321177701957447109551367586867912497125755104619670355369189002709958179779383251017665216831959753284760654017305327200648844729907679160625737423760199286171928011345425494497634183143837928442733997181590975723002369952100152318448797557669905616898461707215753250089973771644337797865056038831174447535493721266964995985805974003663243985385341385387461407107809292026976889843525546075342066412897575439417039143776904649945666916887727397089144081370607448577334589177821927616076075527464268168708756537864706334571891050221191524379241740523675527178016872971818738546764560783791149636870069044839506097215620766769081532098340407391090187215662717752458279123152962079721162311757652715256546800622263442747728646061216656777534772308519580944331223612675540773927130192001967211853042760771319004601172869765680345889077054341945033538502213433489825789970813910742192610795313498962220508189954712580934824103799215783698590720085162095250889291225629240039679279942008266100771772435490909349418224816643685548169105332743802754769709076940600487667332621496724346127593616508585696960263116461230525100068315247124099315182445651725589939790994553676387160785208084175733649088169365543875414823595703339300895052888782458256737860945806084303447805453396736722457408273107972317444412685281390313285114841559879993975043879711567698602276289817907533503838928144041751321168357809331471107601185161727799341153190159196749699631084774269949108762687311398068384137379604696344415845181440899447607206564327805895886729373103125651543262234487188556927688576383512535721157626154326615021101685071088176458992300366521585546497698002438517665782139704187878183459571633795060988253116674655258823848458447252593620210545272143690319955111782436259480010769659254986716365580824737776131081959954767478822839315039471758073772471243823452451499454397687596520185638343646144669160143163446556750426976484340950988982059921981560921414430659277852614334930692749809119712244535428932892497524506488003345711675532521883837778368058727186758315788195329852503057800527122202387736844465123425503391201925516705574068346893404261073302158889918883016246917659806626887810115998509281436983780197938189965500351064484521798873531317441145753162017638959882000511101651792934946724471025828006089505968149036175353225651862300715415167562603328901920401768962318134381302848704131861539216293851775719787173143924141735819611193186803578640702510218260547146165824136417538025788410819121954453286359207580964100360272701739538775220738607584296237427489378354207805377782783147633012100047269291524358415008022050197637578805648336467820442633803748114873171889239060220991325267479167551487989410355177568593751022745720801224200973228845858355607837044901722130097416618568668467420740843665583236174593743760988243329061159771888390641437579360072113874659528237487065275202614081398109946885102375470645041681068178004310276826118925913192249661868325847889301160641247077262880848387983087677545650140002726981885697809744449663457435186683622707656488245397274086376075249172540952400238799538944700885372852451052807284080782914912189663881097616279955014975897036638372721467251094011545960357926276907579235849402094891538221413614286527664012569356724722264593024167773869152939878525145413420369967254623397651398082578235238727653884189086967464511691804968000504680810673932051205011694721005432008354978647219048484329398313948901337575947654541271864325434788708293760099690179906039460647255460819039845823511847582139454553371141289346872800924161088968023353223502652139897069834415213878326244764667067024179417425324517001115885125842360110351320029523533322336603157664608362050314446392479779812458659866760064784604236008517007006203608863578513586940731223378672872632954420699126017374887713753950959112524246965900835981729797125896223552280638399340935937574407614958488577639653717470996209291451607499896292322873712145904669624798449516461441016118351623184572568097463555638599152571618574320028775712896470720551115640259199927048778385675703150602946346284070108879228355574038873891133104075019080350475039004836410125966184622700709217987648733670815782419044334313634909735006487807522122985344418518295039028604962875192330998949076522892840929441587299282956467694998909068052328369884049864304051789185638473738748132492990489659249988081601273411242828663443049757448554175204204090002403832304500254885728160649703309177481134088702270627083408157710658759111346464704356364203041830241381310059141078007439816256419273206997130031502571271836252167369510717318235197719033529946957904253698186748916082260179656774099736137888676155207018227763085527193950312276945015824830614841097440747330339701294075718106158360548008330891211431412382666769271995843628040802923959959687126405591486757723471117480413377101108456929529797635468992902757314249783933910516352982970928527147022775360221497240571446298148221025207187099881303201123216332823918216768194738987019518391432297274366151854342339130255419809051213062804833620577945214427803747903228224788440666447939632830839347727481680130787966656566872664630509865409320947457392292800999983016431084094208862996575679885736723037146132046661509649696780269397285555438881054206078291217000071790209953915076311152427926673698407421413767588078640672504386141353663426091185099551765035215733934746055299267740944074045440282915906006410855766479037741799966953250608601882174538004813894231861291744702074994662087190753009875728177589414557808290523912577408268735307188399560146192252856739139083825748947366611674828712912350962029065726366875513418464730300857475274749310236673929596696435370520043475664395169599973221246562353319862147859905864899016069396603640641910400134097242301520808331741788051364734444870906069381088136698196161897149037388753586764013279492752947457821299060471482814339902544234181020081981902537069428332581951808121963534966165571568266006180942068781298597552305573819956266941634746553008992287508489813248765263094717754275467429770484742407450808794337220352470467572915143481786668147313254049543905009047614634113350884664859989136226685625967977226856363907077732533360325311262676621161301965710729465473338049093281048224623493270200587132087900744276036465358006045766396416451257570372901982295538788119691732292046097700060731285786370106132110997009313326811611822823882194823125013724965654775857068006310938295909680243095673974168974334968063258135707153751253584160870212419447746857627646719578289802897962694706326194120777148403217815342360057714907765711016393290566808768084723465421520549001311457117629957860766609739667978830691104642944884601758363319564369148340613697838989710013765154156776215939709478572742720409404761153854973305230365053712779548363344987596191268232639131928550084828423078128993171996341652872812560798016162348466609530287044463018939430996838232250872315000323750334093377067900833480035077472169422297447438732390126391220741695795878128327484263998775956980387877829488296525209056163977542623939025278847864622956392229838565022051801597975549410107140932785624120522790532865971690719529393220135464100034029469273954362436675554260481975411760661045663452081341254242054133504937897278154752788489342183360262040979351977730110839355408132022977548890280162782769770772221935742526794837463107004326709194840436750600746455133922464162294411123636839766269027715740513089770074187822120138787344079536269804303069030873690697356346714804952978234260144887648767129030673100874227564916730989439098900188931532929886908794840913353064258369348400472028807192892542643667840811103164825912295419212585411679325697299841717636108429926206140287961616596558099757285566030842434062906178059689111804193875915003522880377062068178669944115543897197444244521316967805347267692057332943786335337951713712247754161288680503769445692709526235370796369171131305807453405828839732562063922756368797785044252840038212004741442531048478238097901466785502637050219571735746564196956887675163572920278603928529897497390044929649008091109455657893054323339002815765271619221034829078449265044706205373017261852226956609376758566986386220226200113784279304804212847237624998706341318055976394187526440050037538363679334594928298019979703611849910093490464801465050875536116168482712576094420140076804628662781675426068997532564583511885476949395382834856102277503462053330676893045727867238985792760457567532256654711136170100802874746818398562760666058857021744770635619543890255495823634180114339745064679503340549505766624951471272402018327187047180861862144350812007270870909939215948069380701613316066300940413791992901601166202214203338012654568484270703929531255812314655112387897687766826925137495846176370563667473877657516846536605030501557091944090643514866441784069520992392732157453037786672786990149282781309597457358364829672146810646314427148334141796893392408553437977044423034399695940610788404235533585733583344068128023370240640694601762004018843450605318456096028072186429160400490431008335287262324608857776531899977424616357017138902125566447089493916164440768943785050682223375630247478015057245860965848040732628132658255832650484383486911542281755450522042500365216088745249872896311480699457420667287175493467344322043080778467265088952374157406293483859545792270220884363221042804980666511581847234520748188954207067024329931356593311408581684238850663600540081265296274671108873799948422043415063098437897638534569259794846264245762078987307796417189352719979931733500431438259875579815677640899633374508409198778915206368822017366579868092411536725548682683830484401055307414626307226108118558475871082304904342132153990133547585738591725326371949249046150865186976286197351983754657423268900098733282724414509443955853027901319647535591322145427959344977462605053767572058140808741696982412140287274663025215002303157072468318454971245203031587773270766713664067121454234582063961591152582644038228039897257944289653181249468557302749649410487277914780245998742956149838025429295701380826794534114960227666734346593635298013503710083457740892325963645286661612879751740214837581828665577671288267268074898871827726066097842872332586261034440658732821800836992933696429318953968819636623939909467160230503199064173696414022489277148689236800895198328689971079015365882551520012994099086207399608047599791952599639848804528624152535503186607435534751292040874471400653580940486380766699880980729604884431758681730671680831127733654998736070224880122810026742940132660028491306549296334627582977925774534479319732694950603054661692856129855708255176640372623838652185350015989075250167283048146003919104368794307751908022511518912431691948031806846968734660824192253309130986967465934701096721001079570673299056928868004906863013956346338180504826685496618161600762726215088283108014009165084572995229871018622420350416813570313779418777914753247711653005660479902897593337240034126204349437858133525864165839814707431287616602343467725229703505259167459482326121596265700757380662331090052834819776436887092238219670976573542055703841550439073614881632261942215237978751730443322580396103686438881741220867443613285255508243078118524799300559672607323401673675503546567541943012376039964506323406408633801271079974219336548478019655607452881213661954163503158469783872595780665186968904708670036540154315093994701014995847925448731037872947968012085462367613107078831529155191780892651978961344898247400509998612299863329093169745501873298791926325345121455766925393986148101509905340941347275475022839124887763047332895163957557776803378702385062306793268362915372827229348180497277548048383699454419057947637459375014327778672342385069666781137080724808722278498390570291436887100045740835033462182694087360204784155716239307040664326872468498865490239016106678466949437230247177812437268352625746542718843389054420955705919983042044828403791030856529346143248900311825783321740138457777051550308076579452066806241481645164721231001769047478527768173310423427331347508756536645308891884775651667338723275017392696240463316429475151350104419418311930481749454837762217678337885144163641608958734995262418703934051287281729549733576798145746190284498362956094881793896558345305399808239215933458051999970199919500080370764861375134807748332639977467772715725255845663530055690088713850825771698740292140302229297475084344716307738912028847231165589673100569981668949607936501680338206305039564002218547791389507544572218169117671212033036004296595593635968256437943482268834171450449529941192274509576524636670789606867477927007941726375323848287791125718646810739389923310405580205762949371008510362522181838849798571249848097524070827568560931444117638353684489580354696798432963452154680043803205786764915740882643807576841410540574620627953129443869871639142185563304434619424537537677339554206567509147675475319348347970728984082868737066794819659702322797622417356000957216096125799352339036204636103243750939271292054344151562077411693085269414115381077877403214434344447194453699802645955547112433315832983186186681526839314630657093183825643465119420783438706420796878589102645658726073281056016031038902689101314365481045892881175680048162711990579164237654152635715835773698226338629028616338587506754439741017549622013932726891671195834382576556231992683047025631427037546444019870476237256247350829771726651492125932087070772262419841992238386127954612369794914125331705942232163020794706927593708177317643238455142605568244051086725271103076038942952937706915416457220056444338745008459970161817962926084647568997496105554791481523014834531289544358155995572685525659437308611843999557416635866500358341157522731571697388039511103837302435147108708996500540783232669188181039917089155236521902153519083477355637006593068211349756930909658633456031737995908489338015387539554136057149667954639209797351680315199857442519597303532009363492850869356867294900072473043836571894518262811985594105896373111692920062176918901373087563808614813702927385293133634343301853150677413920768597115986131166750019193433606307740367109872529028148050663371034949366800516392958043164560837305913044618869543391825032068365196707305040135576491703436282804095926739379891006868919507200038977885042664719225917841971149741649479406726652457377125306806718789138021271304339192797069578306917014476012953801603681602237370790540626745044919129551857742294572283692385798108115290877737728179400571717926529579010817602843609540482453596132925085967797631477026987554972968303844705173588666672906747806710502195674336959748633561464938762961966360705557977009480747147083558145952673032776095606912622624914853494230668580315987011798086284458364437276808157473315923933627522055899426934300477246962651597825658124337682752802104096634511148459523636088586602374709658148160644104083524605012454390384094967453859618057196191271098392740886060345429297200492282813011310716002313258892661496296271823260551774583959085767103084710505082923588032972396560819229847090736602113925283224445519917489636745735883342734650270516005974025291538835595287632107813364252624624041525572419345675533378068794223930893406494400941547335985743501123089018662672991503168020212946930111554424312104025253110244582620479235266681727266454367598617506216091417542759333473015076719048825112129451839298729444639564321191704744473326637509989338733569740414606442178283301219585561884725301147417806288325865135219878360266581727850315270094818416601307629266110630660453663571021997174446295936315841205025546499682767584002996181264650980980702836507987871283944103081911819084136965050905582584487485172312659257025756295936196601944000420531447870732306349304079999327635580951684831680616003939381601142139767116878663688818366713443946402903705643485986229327456648862790845878964855207416508018099989450744070632282833795358205026969406245804269374200796261042148700606006460498861599508054406337499884882550699068216378254156450000546465864452719050207246688864174997769341550193691107987955692334392209599927773175022973107426252983052640197925211758898824890161614699651844235658239048900174299270647072045673503983811613969231064152843775794820323322259480451429930891820531642755818943645183049935432273093395755190071619482543427067617024311096470325030455515891227180009171672831452268352419468468064455525848817292065027793258711488382927342234949134925864461781158325255263299683145529342069736159294601856968389636354226663143317675989886969030450974054225464199145953193036461062503219519723722417592936604464027826140776404528881366816195572158077615813934140263032878228808859221065836162363239090592378136493809101989699343659475175955679449078797543929108605697707971711660397234336057141542984626915036292879579468072352928528855465603326164854427745213226353010074909724355753087904458504303545611628595621185750533877838771181186400345717260906612873714551021056057981403590683797361140096845073020869575760802135428482706112687039861097115144683702260558355367676032027076658007241315366835129517666603110915185933323184263558413668409184119832157801924517938582757621321990356851509425582640256733392524812666775055699984058341699012309548753392046462319407018702977589046613601455488697091637800800273894670796320792915527593737440223219844306133414028130542456322738008445890063155127743405594189314341693596683424881417204515433563170100036462839000477620352458306406581793967442208602162205432013934779329020281646301750137986508016576992664016663514974240716413837082366866596713398620159831105012375975189898862609883611850283029630434696995952193771558654762535104730137721463582705320061988551267263156116953244955647367665961733782857517830939094083909252032002426622808591865576686861706339224124757378132461759442630716176254157696621982816073753146161108316984228581978960541465854900950674750820597161062701583086542282661546245512789007125029017128736290218890501187258484707532795022593669262278534697206056868199319324437015747410498479566257614039258367349068134230442710531282078340267220516652653054151906584269785513152222545182848860356304893779583200787613318389406472103307285266663171370280769895198661681173405164838299972930272817795942853061736149608009319081875231538288692915672549680186641612967093933301410132213321730742874321536793278769596431631998438927413302569850167305692841777722573272315865310991435126240619850465335786778453839905511979570254702429013133366602544920078103618923613789740628311562543168855028008211575632266708455734437394933287482882691813980584382569097021944257197305582900809264465397385630566567625728929025497180513871571538177905785713761488016783513407049625479597930081089958505072450926690178055808048356047624692184890489214516736471690953738758526296293576498613900466991765710077310421369301998966522665207533705956230425629579374400655135961788830961147731763522690094182267079656725250127113618550341923635423691847193296447206354997202410175756099974102282450364686811417431308144667043784774752998545295319255207170466764610906500501090688456123173489022820538444702886573410240228821942043506710496174338922828079844686426638137745097636767465718729571346802412523468538758785006832426805266873253042228328169545146429707155866755282791169904997578625361592981617972654410264570051118487748838865646163001397341453211362198589071157782069211999040145329542058433796021582209082719121823718217200569020936225543117173723785186625797071601689939357498657777468657283667329916322060226490668572130721695794895511668629096624525787064801183296506253396126463107738392535140268352541678248786288111075978821401208604331221840041653020417951487319760932980786423607026430561001103115787119741441974170635353095545749900765754218249320539680004211815238152026357759541526070441008110045641399265151622681249215810319055026387067674747781428798306150327857348360696708734597006387486880082831929913562095896237576546981032170821124805803990480849397569979701631286164357515772834097735614536975682322076473561569715214376557276005891823958451834554972983982853402421963475401407794132669176389220040386490502494708188057907838182961605729215066740957070322616352132195243316572524757154886260213210875807326706741173855776336221427817458129906935219146918624509582030275491701763020717397620135100199404450830252602393308478102242734316981342732517747449105050997109246595126483326109065030559935079204670421473043089823402566431042688107265807291935105014932465059499523714795049839099962338488100322822641065983677230377469319416046091599306088786007974969275335229699402191606406857068467760850931529510098987856548655809749814326270979942135839427549465141898065350021197090301540573855289325606001712773907799631054754108261748646466133598848816475087408920000092345495303711222976861963813556735800171908142882928382035458846378158607772511023495365057288794905325333813431808982675161454439361685406277095048964870331238859392469167732956221141632421148168244613301554088036076201202388529596205120704367868542551460392447648018520422172369915005183285553664962860938669965844750114313156464152860910783913294316406128346620725821755342733079830019214760610144365644546815962713621132282345897974933795203931549973721456710811522105382207040092462654949309590101673048061284455231722176686435134142526318368314767461031829667504057916699348313774262461044847678410694415141876374404173031969772085807292732491338251027727899887984138699616680497299018673725391263372612647507997191529688777861397985533408757872023707576290288797454337880132695042967803445281956043706915079486841329621819797570789651574023812171726927022998761877690315518648712673415958022080279136207035740729497987629488517599427588908158871823829762559949051615299118193999983608583836856735850665987173867394848125317031051620307560204416191588413148308498542049590328333209225744483731507410488726381311528675387779601761716726480393151429373073761208956914023661363964521086300579917667828365935895559458050289775868843210729823605814151913851675612621067353165396181179396174357382246134088925735572983228794092074014394522318024279065416443481598658102498216959742679828377912069946374497515381499615914048098550937222303161891019855506095999717494368098552500487869142867635219430926157614847295988702181214729388269991398303654193472300596916305415511089746151518470079104008966198304582877355019095141756616277772453316684429395135424084958476020449106667657757961516964059880295601148041210804496214570031475929279515976289496899451909268502437409907945359872896639736251244518807648424638841089721520298839733116158380385710516224968652291005556000215579080203162561647558844181307575111443011923004220745859286571947712335278308483871566840958231891051948669136868175006931973458103278188579138062984874060879619943477931356526407899124316383519436544804646894954230067788224778477450181437839093898399158051493740621812317939159321206705900133811303689985563324048783640773486628284402030914215699416042743142995201601270146371083941948611408679205506758916078580501118478598594891181622429874262093434849771543776373972774064035059263917900766787939476574409759093022667283419927535137602085016473078174511091991171525901186903258148555501879395565370823745982515210930893301694089239970033379058031512803828340395954518164257335233047608540792652898729125525963596842194435289294661546592582983460440030025123949984292061589186833212424712353122556301706981471701030139078248968663554420045902482862417274362337510370913559200736713856607159932483496461334665584343988801333130287319298531707188673234846870051076036564397340635202428378492475016568962957867191952214238624123912504671074219414779874334137526066308580019992629722510582240190343230552414608156751347987764891876145903450662410403402628305101602482269801449105806379451665965490187412644627864231349615615415838871806601802230759101965257180741639494223741707474620947942166396170269162155470528835182356797766693454760112162288945441595904901071838488288494247670381924798380142823254194485094959971457591932876059874149627425510834258772711146855192672563372237410447229024424240343909677783141222983034147411949624750537661758108890108981499612093887252790002911646287975078668057080839524218191690769887746919700644732084925710191808964162473972883198458261408113300874927679248309923910374603433817717513537769959623448508905154536608334708550794749531097938128603198005235079343259361762529813489055621356038043467345729442131489922661202646787862224768068548514817879901739874067083877849667251087857786503457231986564443262522704696463923135129921168393108023090421472739106064339606947644156188354024775944145116142834678295553102533987310131281269497987957137518369918170264323522686004353383959612667578112018936450727722929241556144164212930421086123069307307120707235416749278627423702956933792867686168321907694886669177152605392366229984087423753066438555400650148425186126327006488125193744108903752095286649209842733362520381402543243104486299787598440210548819803600790188494245678883795358625542280134368583004974189306894356294268641530025401370361968700615383530612165078114060673517071451813053069473084568240650450252565733695830609099920349026392427152517697836917234306257833956186368889171584529580685500531009136039165016406610095495578543737303230351687221639450990644534471048868095742046763369353606440999211462182723478151177484626024827409946663222024232926176839846700887806996546438850775590022868774917822657000590203558505395611591020586504546328840647583640367794945437018137066459113614113571897594312165487367115805107665642591656413814660859322284544932402630728469930814700024051009539364830787008805462441420742593600054514790946933287926242246294435466492597871131924655500323837070821601486794594234852895246361352218774336323599585485668277177652888840132353918034996406245655603495724289214502991899298993055933723008258330042132512609822948405388354695983883120277241640219893726446239024555651791050563124037040192642482970653174274588333718574671567960049468805108716472392530825169665636286883194427076159613744625835553533607919624089122230676689418004410725816719380694428392045151290505358707728035988032958236223086186867078649578620128871198772695565702786363399234978960288000477130319525318771225475024259085846768628778667055145836245831213097919444509491385981793337573174711756650521061654247688210780619462222792157382557696414592961209648348549848799678473775920967093787086230452378056644526690428262961100576778340507479994627106041829668674541305251316968254691421068154121790100739180648048630665824968269827659181078309904490382605940799265385036193592300061904595947292272018947676095334992303354289721326885597448200347514970453162388704420772871882642228802970961074563163979037850476165632725981917706690197002487381381794030551748342404501524697346472149848515983720397223477185017401658016607061363167799556082832021336778529707578678537273382461480304898593371605859891165935000841819446179987040125131035662155235379999628165910239793650013007787361757962132171448987080342340943215811154228460677238367999767395533270482044736064080110993715830582529203227963523469508342779253199434916202029511334977574829072042595765183192461814427477525522796086972966371862193801994038908384132635800270393960649775575916319896301697124860083915458190187934466654181465407141723494088588999859497705038906194489568611197738249339358072007206389723920384475553704061740548089110249573934239064090711914274828911016819192702653261256469468736069888274380564672690940209433330875612685119073452229706666387095978912778151516355474926640193850667655283860141915311843378165163624270426573449475079957462385996213685256433412394050045745010903431257139460158196124012135519631893524308585876793330813109801807724238903961961408190901213324355645228412894857182589875015321299795035671537749049004289368221922795986671431457133262226538489286763059864310565888837267928352901621248600088169915047634148767285110969330643907645557632677013904164875696121624479852439806862393209580624549803141897231021354054964046524241508847496885465160890185033216497060900427479232538918229562857899487608459449341403326112994546921198792313654522202694954088842701326542867756999718818854212759236761109112790187871291542558622791202730526851605313076385994052463600739690346089487006560761497819810739921733281688882068595850568629724179581097601733840870575798918057638261735752562373507461458957682839175160581249759893797108888504952449548564503494854506256176570756795805048110800420225428637901780622963748737417549664681646058865869353605870739642956692647608784248304721773850382001254147997445051494596572072071850164784579813890327690658816127054229028305856225791098162103464712351216007832318091490750885083354425227934206388487240774838420176255241923655166082026928554956016817358766857424574878859154685184788741932581601194128758135341527220468414263475853785638081756577256470078431787748567086717100696509877478349987733879885339982869812573937961319722874839610436292452362994602333017247420241257155235502069578260363925467320697592223355858219436023886654576937098855313907648482789049112131856657807814491215049408277720834772452902921757836663507667230980366665164893492147406677439016359712177523828428339194631532775608720920019095918702447312739703835760231196540573613058521383770701109985427820056023651608188738611741830471887097135404762547235070337479560411294092287904569132700503489540256791479264549141373866411478733709980720961354639317860985219205466930252321698834252945150325510471175701098360966154815412759514886691903582590374747082940702685367572820421614284395614793396811564565306199403403071275683291594940277998200562183453066959407923463777046367916352180624860424957030552302878782656800330663406107252224163621090879014805558000023497199647047282664396397561501548331406566205950696319502332297633056380526983146980254045416974463547422877558800404565261473748995909110251245682364056780013984635329180833374419748827242734241203086045060198221797418426999027318503231093822085651185566509805399605396024868667624347146039186345171777684493455651096360687535897626085359423192660520098566095299951398887467656037363349753406778657834769105837218255866662198622963745122949121192101992294603788876027932823216889528862466497675346961630025127565682676552264602313014302181054813477752795952840933930974806580782697214047016349872333875307328296974053883900085549131141986798962517115461810814626970622074106837587593647433254416672423248586181261492691196007408514152933229556845309347565586544790137881571339336306182134030849227592775561287928139203242325716901951647703634979137338306095814023153014269305065083795552301687996701863816622435916566366945071862561642730970129064049517615442558093302872416227054727832843458061633527284360829646708674683753322777782520777643208879700804801284911551085387103134377516108653691117057464265503806312428130749597381304809863779806271265891908955223206454445863330623452411088988244876332457141710610564759766334973508509599860556065981077830031537324480466222829855011346157265964461106418850767265960419668157058472972006239241417475838747252115322820801119588332574170015083870019598024748420769470566029197263251406392610695278922426305143698845937247244239794655807606971455134185170311789928180410052383295066990266048171007212367050963472163085360053232701229532039923060125620926319698329212462807052651508939387346883686429967097051791404908962440218975305144755984553941403940814555294187532817630579793848110148391649868911519242270757215364335997662987365950591890251752640040216443754569639767346049713843055041691736043163100021994892005094138142705559166712479500536814017978755513540113891644115197089103331027843016257540524058000049121221011259015400773470723841107923099038005907528335723638733393239194926185002974785941850878545785547762176060257637413451006371796801849703975324458348588652757927490884022085785774830457541343863544366585480511484683488842595674644764821731622207222674310479503650713519097134085742057695357244916049368635433868485927356583756601007704998863328924077089610625051298053851979983075268064727461920116636561097012038481775302721713330372031702637882197286826419524509724069044297287375020881621154745121458501850818555617024772255840617132678691818601463758293918548966656834688668982428692488881730353983650029861024623438067778054670906873913279210715938891262369235724116143524971794478802007811557319367571837494635089258469850319019861230063121250816309676113745606816807111287453079617741746787085899090092186794398874469109334264758934605728711661072237809277855998661053972820376630361198120987404284073193517395039522428563108288568685725060804590186404590944259882332869981151221037279210034116520171055216524865992454352158742007369823773125119690541392270859430855516649940540515752952941749152111421924458211463017701282745998829477997072824608421632790306837094083971323703491182123140417421439598393275802186959988431958378075381435920350338241893254550483480454135785220859918670418170580655770084931343837021234640370433439242580944771215087121553132570197953927861861271547153978144904143342161795149137545370835952839098887030179123603289833283149699528944967025328233571387777200798573207519107062477405714317677432163879142744710562281374543801298405109170658588879794710878099998576648082055108946882515906553181325631331194498601005816821683918839439725767173997929427644331072222321770743015327120045495053384500839156159180532847651403511173132568989196573737876504149679904921058532536125352506415987354523830405457864018290767935369519561879906873077804759386582022802944795169474401531818530983525355246631094685416976388251894460624298211121538012020045427902256595261439708846386737346874955928911091133082852744879342815144400031045733584295619714628001779979310370474886896618934662338796538091405906331655979413974467162363331576495589904463557959274339034711077358458060756212317683415056488528961604017574787297180058035673975892910238224518396279305503313218356513731075381839569091987679629967497770832568284763073904675982938603858875475308038908266142266541933284101567886514407528982218058400360186871857452777023872094758609303274040724232363707038729612796085801604641702651624169358126101319687536413522967783184749075275060937265760514664780513162287151612636674266099424198883492286977295236620513686737906107521099025686527146690232690921311207129995397789988861550936957586712441911740736007774554747173131352321397142745885216760919499091870935954381804149086741269351999884431038137895056621132537949564051509959702928053758626856600823815329688638262862298798312354082779619880479530235778039891743593015800865335392284797482120278145240773719594337034898937349097320488893499873984779271392892705992621068940515901007284332497699308891630417569735403591355631015638443323631905630111194583418225674688186912030427173165723527829453510158590390069765903839410381145447282319970828303951706412352099604921025490640807794076250339206991405647971495301288743149264676565229805184780463731317506748752414013754797595069941178655024094136217230943535447947838158960886903816862916878941463362361702885125245140881645588110330288121978566603752199203726107646447660751695004698399278509133457456816333408499152571132667340645015311515200409874362737339965262622289884590389338185317674263326403002145715378191202449930778253223565072412754072695635633911056392511134321594445096701781304417688186505272269509027503934324869203324362664891386561850047005638107173749431359864566142297427387731258555419619285356179150362866917565164634804543227679050901370195399152769232579038175026725561750477581347473010675162101885247629898372402724403854843128258059984467633132914428821619584092483268509219926620211492194423610347473065599562959130992521811554288991391037989827391970595429797448897112076572421995672358997131892893481983804448472777869851445122944955425779151750786336104049522721614245472911481669034130638980874347555850712063358807086824030271644494883877157021318008717784543027852630203750777174848382852985417128612666245579344489443600074982129879765875649653141607914109651562465982894301769717669561554427677683110541824910199019870919699140435969997062356140012259724751916982755730015794030800401925701540041455267673408203424157730703526384787606270673111195372335352655115019985306440003857795580268165960787578581731217453007910502617603939285817882506708619215610201149562766970206500346488915215043454608238038778489752127200734050962403584065383673884720847903626174467099162878305327599383071158380485209788551119066604457960780866295315976306921056366236354306305101365877189392062323351441934228435465579417905606613807224137536571482548491568339854852315859789587857703762020858939388064761400874195020197713845675357151696140267417326979320697468001073415187046687300924583511487160793981571202805752406576349307912486728704127340695011561545961950459388080883954394798207679011413199431325775948184199160601229539191191930137573805275998676932214676251575199485855503352353463790625887608279929195033469521770797646822813585655081397390076166647423459533493613109629608804600444644786322102841305195013519014462160547453733615454858601779682585219975283918924199237077856444973783232041646097384112707514252036930545024735373923367225430587078932613273569345663655983049477293105100721936530977588299517661229451669717417721256492639109879576541823037474192354639908850578783966097709367987456720225047975534214381494727738326775117596167224555088598929418470053209207398950751357232039395301293918446237258951010607421518126661948626074672497623805194876992230211056749841011719306596569680103954790354839307496208325966789705239113883520539089950722160911710684449388764802577221876725460115800220549710797880106662257906028102205890618903751247583069728176742112958015607351022386899754468622961922383370239115951155656282167787955746179814608395592937160300090848327180532008183797966214410627492102323518996472844704916387266787999789737754332197885986864806461284934530268382926762498949502652499426881777689106184703619563437305513167144197050256560309706112926554582721979178154904864937679745533611364811001564874815520066684486784032226724662468449694490825321645994825278592143637644839491467339969571341947018644242921247602094675771738352602417121510367662361298622699662247994110739307644167023211313856905753694442780568213888179359614571180890257051265041647094741590220994778372871376826918146491722158317744089703991314287184098423224632191522205689038626596543282814615112834739139356695712120753699464204514690572358166117451741971192817425812272451412732805893793500845619288538638537072134421883722334272432261564049936314161526319192690765345069287325311185963274060878274308987393356390218967722812215327231454649417032118291408035675279085218102666702776255722763304389089715011211966393170826957114356147395578355696126745446163964340113183005527896294116426611445062691839585522550324965346271132838268103400668645573084247133190697204829212461898208673125990950446554500698873658186569931315549239887829834044602149098289701160633352776806827831112142603092626398397450728754822467755316242977819852662051554583252665552627664152146167945411114283976784699333975653370443582234896416660890049018063663413576474069640892541502709488496716589521604188000631352346871261705632485937405903986311370580134206648594316207178250848017178095613597318043617832818531944051965658879366656476017599576190385245803397609926678240624722413307351911841541997217534674470497237836880317945428578784252164577169085787736532441333276214463074841829978739474466720639286374936536348395108873869967318044610949941923243204099170069672256992178062474682664610519626871496486889539376865573985554782984704365386230728366943976165441759865643688962220498143113325662122102463463081677086429671912771002219147089850891867916445005712474745733023630303301273744150606694138568876557945899135850183349575124893860339124220746574930556852585433510001828377115558903872855346597435434721892605895248335785868542359030181997653228294880022542040825842150829481471342976918506719540464080862150398591964908829963574966219402146501627550618575678931495734753005364059848017713252789554667374913673708636533555690049187056831675722422763405489013390764309570363664020282693542162059110752722816990350941103490942571757198348093395623930507961795083276215775884513843525284188614101469274910367164828720553626229422325656564015017281653946252354948031255929512315715455699861778885141773403709244178088122601833196581405412582642737192426116197417465403649340368563422940387456066434465012371897896781893850122732727859184555626105932055391665318276740263636580699704432769595080703986738006683867872507278158861865698532891003642047329427151619056427996768095951162475919823591528148062022992247294976012784923343116125395901755715156917652365513701730655908307197435991471513630603137520183824586717467988068820180130496901969992805639285212050827264688364887166293888292852922433334613522437658989775384535962537253138708949472253939546548231481988631145944260538049883566510290773008590972872209011548563640042456995725242855238781765490360878890579442253192542749148464299810957366773436334226045317963415814607880836263325684503054746208119972867912435794757744561707519085626941274362175010112845136036174404072140706084629682371367166171225445863609324572382779330913388358583623134510515029119022815950753221312214715401484526905681870841148332387232953916713980593086382308469877993745175081145055656413946025143266743189516422091217111422530538826966464019955902880036339697088230290303589907837238295610935965518867720783697368558417704384043295732606814731831874719824156428474638326800228765148331919270376643950071487669120793338987530881202138440355997577779520320182543162283592876440352790987348623503944163854296381665211158182289831608063039197379133707397377587617489607349141774994343760039046582389035152460517384556099322438033966851294890141010158076412728069707954968387501554683372539737772032303579104769141215543139895760136215812706098202411037320618473620104394954234421434123104645951368875839301556203670885452656924677659591100188656760749947111253600436247492477053086076732814373447914357387176916313630525233485665163677937810917755224069799770892857605527009729517505252332606935500485994811131051388891160462402540652453324108172022445471372848433311440798920473424017947190422548040073896185049853816991782387194023353605708345219919384908712876350847561209270638279352828184731293150003488898788944115965267117060028214924913608021227036629521851247084719264478967110980775545223717450865207722060431817331186376755300338288356020567191547795091353210957721118536562519143671720242986364167044359851929354114104075156206414770580359908005775815556205880511033521631469915665676425180408433733392526725042366935182257671348575172732963868993224618263337061053412104163042012684808729813757604802510390985691351766468105094700537291870486614472056413622122866686232974527459649045603673792364307319235402603570933751870572253139485117985195110005429232671500225914309719165263596602393694380738789499983798719236140324883874716546935874941494397812086723653184857925704735845278697844354458421926824026878551753460994249239709487848134778323234748272651093072019294955829884776168831994874080606135460639902704733571568948533182053110466989633782251522133064807708036642266966492866145668157992320515095535525653203878476522463944107988436074511976684167451451183084643006188328502127558363930980178576073603155860588579305669247544149166012499472634714713882958987243052028016162604035408606684799395931200582509071332968838463355839902636644208788899885830195734177900879414921356214579919365894717155502882450206554792162684959874902133066428687816891414652749836880902092424626291322790858151557743268738440981765698746977969693713341504199001438186628484987610165076868639580033532286524048231529334436869191017044543407817244676734085313198626095361723334218484224312088513552806870288929014451013369006813749853545815792246473094807938703243502256873656280584695695888986637369381688771482342295155559462000262829347858001486920860002555758625469124734429553202562389352223563657191802304441023602667264655201758776624584650840671135776490408437111605201581153359385741383639818135996333768400367336966561038636713776581941549904716092435607642529708187540657430694422174067599534718799623796917425439757645067987331766540890355551553808739120008557769977464508730427142430576776380341400336695784783311548908658444561513562034564292012229035199322472031828773063811694104564270251803774287758350389238146578133596067374583665697382075076618124785247861987292298817530354665700140236780976224638529993741761620244691207187049176916322736994819573530428555527311099398434041547667495481243448792706512321228851486469015008101838919456591896576093565845433543799563431471410015358533912510286235228044109577298180752085122701375509412162204080038949567975543618304987052148545306451007395737593972434310237976929333879567174680832235635703883256587780058431481790504947479389865223309529266588573568678617641915232848481564737675813325370217416729610075505517574205238584380534516750985177033322478778668114864860129047244224204546187296463356021244023960145212491823352851298963473067669291758215929142671850633529573375527472839561058174947097867066275598898268141755200012983963497488295773772424973758994761652169245440745928249006023894492954304459560306147832060464201519635435695215382473132985521634522708060513128135269823104794060728320357640485249401700111734243022894600816731563788936573701359033528061957450406438336145865770354408009696545153092540331290205681513909395023621272727496277821345262973370321145487731495292835389941172012260781318451943613142711807598938734322097855062042025909544195857030392847120400688486431475112489343247405512791341982141227802400249499927468112785683536226026209829716840239186397869263923784886723076919069070400554385421475838474160842048648134903678163593729160016326930474456397490132251550919654819997487427858623272687262161813229389287266769742879272626209978694244018689933392476490665739277823851733901071263585074839799362431841214517142611452693505316547847002397361384003467962036765478549609901928833129907644840893773986718061066619983279179777357449461460058999287513499262165184570218106550677112434112738403176075183328185173324732192699446637338431905590622868823879229915039341919721055676009308182674240560321020175115175537457678728224059397958147158748629834005990542476418734875751528910836511929833199350385925848250006819228183723990677154314049949325234536618024768697231359533353227913099172298901409121872768321453071480471940607218261963620899354244254581886824793829487643179711354592942452743984826309714256334475865052969736750815670488938006488058200226063176867733999050042148449979474836057642514889155607415935751837796885564354649785285403463970488683148352122006797125027014216022105860387882449521134222969096742611007044719052752249331488123848119461815810821327782428472928872572183657973309275485746603357687896933649666651162827742889657845182726651339497127417939605774825175210633266376494326633503518235202971038863564705195042348826540280613891260066608737023873359259141027586653794946304638161619239625142994811548258344460470811285306400897401672139869305217119401128600913467223944003910456280805931919642758998365862928837166345744106152090034435299337770915000997621680003483205865233033912562999663055730712000687276683084537217953790532015914646649619885586313458655801945482062752111371682916986183168007593584543771054198057588260691381825634324002682812561797266225559288740362847303499390019049988270102842167927200253703010094407884899664913330950973912134156768324355272741140944630560631946249730278609651675008735602725870572570052975963099415928939644822328675187056449516198979831217643490934863612017662239665285864663380546579474728850767282816445705113554739005419291382278223584785807483515388634714682367958965628258613676701419210967678261296103573292632437488195624506201906136162535636961416734770426447915931683785768918882663892693324889630947953954262809613234226354938835259895318823243080614011274517705843951884215641395942954485471588017995904691344742667315415096781255440398435351098252954938942235303207402963057414155507050979148219166710389054507150147284729959691903276201017285150001114630054712642820481006241331649775724171716905745395593162091481034491755952552482567246338201208655735286838597211478538217561668324927623961111623760313443790158018352069441819837264333381075107687339168708742432382383737884704459516928362927658073183220052041139814888190152454625625415911967676271313998903179064110801525809749675749322977511014319601163156314904571075507770958615344087575369782925746752598535144215343354049404499229010151563062736509474676301176034033293108667678598464694985748532492609231982119007952943730701461106650962265113592466647476711528069825695069876668760605025217236179033951469567934007791950458067511078347886034654248326602811747011751319208433066579370150798300557187994643532289450684899033188019144503357950528031451028192060409533390476054471169395994920755087288490514236272935499742616509143848077057701717485692978508080335997231436479236684920343582567499202497235610692478280840010494373902489387591962464726904918475549800862858780552230390416622703487075130666459432300467713515955936174012525641235601831117584975753682099536953541569857155020971734429307040719415013334190178033761189150094202099556633858929303331055464526886467019120290942812888125989817647004662731414857004013798631707082159397326006230419695589500184903131651878473422674551407999998486116020308255729629269350169045321526707343901530738733021557374008699673459434193754403008403486657908363776970364711640840214348093188983539366033936059753595816009437830066070232902205561328018324830442847652871038413422388314082750761039106772524753372959793995052813644836536855151176023057862436132916535556184418085573502101018322538682480736253341371644996967106186373982239905116713520132465985802451245230037405844707137329954886016058826849981950781459243146527267234891896704154481766883439168645714946640488379159190564709426772454899155495387449594816880520630087573431809843336419819741781749389155188231576828508548470710439968562869408756745756159514745028099163530350128313652480454053743757178671688534909947413578051161204333403237426184384932524643836970812155910063072930974216762337402328678450512053922246530093507670674084317425648147663498683236235248393295348680876728693482954284330703824742213629351437775225617213280458407669908680252096654505478289825151475715197116281053199226039911789665905511351732864898480859976981905283312329836270719337031984729432973067035358197455218119497734448764389836421687598864286899272756376096235130801531148225718903525985627638320161714869878954891066550645118956122191933536790176067144262511755912282271180586615840257001062389253208662317786574241731773235091192055335789445784328807937336696925197014741666281511908948183122736044889060289303315027888079843330676008098683514958145355714469520024410900333494939242049993294389687939560363230736281608975543369036469087692046192805011435607534408214725422643729227898040990658118836349777278387814661493378786787670426354887428227251645397628014190528792359525582121008114269358448397756567639431869863347954602365297038663342814936869690585150876375879925875461157600130639141718296470820212749384642074627040594612163988443435062907166215128733576502877869573789626874611071792746167022728359181866657986310417333188834476761185197938866198722398617448964611766341256083303991470449372735660099456796523271701927588370648961921014478069441323774578689234611523396893414142078368766237630716037715591201561179280747455009052494960783146771852836985402830117506182169416120479454381840674071053324325300392980153623460847713077900733883886163242723340916436630932474393105033689254702787400750663969678688244183619633771145207441379817838305658227879334059616622993949502820756184677306137404474239072589656138503146850964741835706356195450505070752954405761273303132418883375102662187043093206520355188524299300751299708839823905627295896644228981361701681652402213326697606422867000734232245199699428543422987035539438099979967549022635785282167871432799643196621085830840929890796704131915792113252016546175960213676897513153625776636099150250932583394906771467040190319145072368106983115574368387860139975301603465318419882737558746266218347142471078294064581537656026051740187482564458833818986110345521128581539114114748062287696111092038981431963916126989940718523635924039272624181197971571484308652072721158797871337439446467515511203576562644577832167743153819395944192969406697363638491224569646391495096539328668417555118101637483058473633955049818596383180688105776709823262871351469798604480124122455674454647396654759118998354849145730406641338718561884689909628365925359007097864916340954437840072014565246045697823819849837524418529931009649394933972436023206767331094767115816166216652214045481700164556351753738641708467691956426898173655825162242329403879055041896452546260852147073738931158189255000198043334196292834875266801780718453680420270066644811907872635126959805329401574358726895586451987243114590918482430350837815403483819342082785742850998141158969200542312776157908390509354683126772490804424211504604092586143867363946100913666546168129500526153864633520767225840584014346086032444707914617147728748527466003179191471758404011569833507691554303721372247337980775613391659612282510270248997500491853031893541881477858902949753420866818386728026997342886531918768583873454847576555538011866029353281358330641951863163356550468391339753648243659103397729683822007735377561265704868664141973759620312547859651085580632021399504711650817768777500084736306773777431573360570060175898935313963430585208763628129862034501666255119428837889435192472716646707252237557196282280104029950017064191165980935386109234559190253438445620908364836242814929594204110114675764273726353841665966779008871901043336160428949950754125553504403798561764761884019420873163170915983658600719821611223896490680609768348078521178342194958157102581536444254208336027567321139497801401660567520347613346325101153035383120525464747020464935558941231686267124998806475259368572916704311920692509827306350850002054682874274340370264429178505906465973414986522798327305578381445802756426378094470207551686068056123076572815807388897838056993958194824683512678724867921160497123597774861551910153378652084681101077947011376338603355617565918823024460063761677505577652936291460299374911675210059548949945443585783574677534639579475739009033250227566564048046152759018018061647605323631876977448345873751672236035314171708219518510446345929743007257545917668274118548067703904352670515844031141236562198388383544683296810721450175065993037190789155451797105724042971828897052704088982392022233702748469933172264312357148031604309494504067430685697385487565002488131596705200994547605734023720055046803001520543687200515955235843497851780433221349254567230406028467973208267100990228677780266938352457742265417386910804416251777599529266766762083637762404541048918584492699621812500573031506942484544128982665606872330418229837292878105815661684202948765243143793200601723657129650310486322908877261457756734346850778854928566729648767299819610926743136951854778994033612832759855031492880360823873189628371461774302112772066592377651830021730498107703155022043360210475684218171372156661558114807184280510461396383852490827438280471269980927149103620571535256401669750103695539248911738648153553357529572743899143811206270868038498576547644128204338249582936183405936463732688437519870650619924499757175556035773649960990234343358359150772899454400266984576696182726066174067341719579414478327094649222336783271335500469291672864359364311194837188249140900417953884911912539986289845235114192163358659181304011263789236936534974126077805780449048755587704464084264042041884682524589189969836247175955726489354445132438055587755770224206563109096815643386939178300582756335590813521018455744196273442799785600118998430651538665344064915850781726020892053336762838813889275178851138335848197711415109321020081466080259073506579318771571728238461201931682886222340896643459420730228510567972040818013681633879513710287294818471117967577022943383378084096449866286957837789077752218881317193750888775056854446466007227222749920755718799053379338014229023467953749857484743438162435884032861476357394834032623599990886393130007407138118537616643588962725170930144516992384135658620538218264149076119906840979645721930090362319993908307331291550442988718984708781274253400661299242615312031263200283031179894028132912154295545054080085719340245606892142607688649161139418565145248647082504531065613842351356834624231914985707331307849695454814643031741537299618120846161923474475085456448965345264880724306666154444757939565068711264029301950682726777108754656875224119984824635312934303454519736431887901244752880394561506442013303639378101167619926676372044336921633795184274325900622094013236184995155551287481012622774853144025209371738570597443963589842742943828454212754160549852827180228408174076586514784235590689412566600560160486235996765546776275315201649500552374006687191434225190767587151989500257804049147115723818248808574624440871845823671661380371463213568708413675154988335337107287238774866463770542372001383641802481178754903951007553061883815284069153533075547416513097285197477683956504257386845516136299209615504311146783160754868561990158694919464063590497861888702437175270308147809013008771687644786573674936312632964566662931793522415516977705092087550131906920678970149504745674527165918746567560638899279331494364775021937102733548204091838967573054116937967855066678977982308452479629620956585774301047189839248078576479930702359793391635265914922893798273728706281656279833139557868554799612823172439448279318994453014871409354694790507414399646487735080875895770391476604079171166022469309380340187967474692940233719646184020179664857394292338951728899922900190823129478799760771367594266137261009868960029630415809229993320767097010084043518051255394117481260635935981399659340388855845287984967680639280463175708817497069179087797359101354367554165241598226875308139060133779182628442423176729037439098861562426460617565715327715933693350747298494736715174714838741901380408132475715232459676409758169916988463885604489092089283367282100579169034319058455685912117760211129689987626678248041990988444110098574007811377795760814270432394131780434712365296158152833700064917008704278931802365754286254494531713323712477810205612053626673954793081001786285400236284037616107206191515460403004774840648928722405431632682084174856709427787137385763901054300777084148159624131079949298456948051790955182385919587240801004391217379688197136025271543298431007858763069313858752904133906337049459247208103162162098355876410178681187779192599111989739946012791937000163745080464741663153618448318960974051533962389031560482937680116668026257066057944286928369646495009957140653513673144326234631213156841226750822137463111992232816782872685384887229727386620121379886950461897399424267960903301315246223298869636075277827038699362384965260754799463377175482373743225254403710937358084001398584759954612697403882314260894094377223684252109344993173283414580304595840294876236891842815823790356613528956935968813628684886423354712407657868570920925859207451775654303020724406872593383679043868358153574622819700532585304834240204862255142457896018456928049626940823019838479439093274901260801145901888631499924917176159116656522653025733556435946494336625934934177304062668665280166483237499003375479943191478774487847660350093296014952648525785265973053707555398346394939536527567989375522636433601751603709161801591084366469921878480672048102699759131948396900079492635818552573993928668116854233934971064461373640107066355714580730304443912614082953317604656243922787177944619126950519536825771649489632867381543508147849038645822371469328147171991762118052538731005363618642081160198352186533850648187985440950210938545498418067182467357397995433862844079506915840317097286257555027151666170108430757081109002267550274935913332937219744473647283751969909647792244260783642941528610930431790380807736048456226395579243853149114824315436974723347109280234808759625914792700587702817450885514780623588265745894926268076057471480125922400087912175642830200000236147535577503787569995157236299869701676576617271868522312349196888808036600765457217923706363166298800041230937885596033898984056126870084016069163374708855781811653714526565583001302928112441190768843107455228133799307905611287153184775149736090398491147083277649211780002359330761978924941824820283623135286454672032150296772901380900486173912055581497464777935664286662736294746257377452959347129951562618457566989340648880422513519016232156820160598782789083973590814228910474827495738193161316877954056874121771771849426805160829036425592028564152541176716390907708747243344256439161114146861407052308527690697222575928322134922030627796687476908553738603136729190942172291274878000465047426947438863330230103319477361748633322457026508579763305561186519126027610890646075178656233816082665742173168646518621488653096583826183039400713685498149881189439088890972906387571133914542476002862063857359422611123787420084846855572769884473859354645426223744954410731157958711453484434001464730391707108334743953087140344366762537102672835224913812553531013374501067033422660734563126247686055326082127778099109991272134200992718297694313956096550906536829868708713636415976929889417150521532959511756678286627923841332412105546331565870893682015014756732388021073329498461584318597715890236654626724620361320544339752419980712314275145715473949454224150409305259844530058064042354392904245329584314802525175511883031909281437533324681768659257803159660473934119881546365842047420529661659243565378203569904751802362587964273849939212880536452676013002252656901914650659476326535142473855139737876612807494995117246941917456309354644927613134365013120297530302046652660118153163828283394261382940009133024228929503285949488702589665620050542450734958199703505839217204881840990773861134962034884781801446962853615862159655719070065398748679559313952097134978935811568287557398018166695173803592090442582517838673402810923884259940282040631692825812491064122235525490010038461406707892301010559384551167280292742655594468848437552692662331725666790681952595530331746223947573519019828309203321511569483630336675172569152311082390709358630094206428018331915371608241072007943570235512104347899761913701963058177871282420364009816196447447679835016083116602666127085606502638395192362116099951158851531493163712864617412386039400610941300294807870617853244831850763187907026493738078873217735814916569609780059074320420462786043603777746653629931749955003775013158928209168561040547132409516367448935642416216627632468960503023111343489614170008382384788722982373556156804336703484429814288186679242360665670736813402831384085262371962884560507413578590332070213572378444241792808251190717237415529066933107783472412545284234018725277396276657420844358541554240758688100364778546722133620388594713207820450341086127107596362854774201616471905023443911485965213604566063838080918547233045662712662155691416417349669386942271440688834842662443336969572461710938825977071155511694161408557826457881242508211964427149650189283323655957287509192405834020812316247403554776472948869857742897131373745423811907663240145317477478947058477187062012558457604104864507383868621764170909323119795576236114786247509905897680492573283676407961606405098952281164212516110985486622325921927210354848270060456086879988468906267671182153197807618271508185425411016481897173490205961322555369218249269400372296348352225383671570430486506667922000573612400239251212357500822218157214250574813311121461841208435662260258676900956679850332989016637903051331074271019039143488751725126029695705862297720483824705262972885181209148515423984540339006819727164011277999828510607013357693437154904239229128305750372320134721641160620623641224877515613694079338412978614619789292839711306771455285227334479109937412943834431680469256259386189570387406533263641924365504902921576114518637824717777273072341397962715159985842311794033311860914304110366332813750750606645974658409247166132791137438808755259698064325098284065922233565075505939948957360504314398268595781671374301930808357636567833954702949894068433358629594086487007160871452199396820983187272835945518150254339430475189688894207148440234893189325290830372752520902737238599548450943998173543232730153411281690676882685731562566781704792154356873994647339727053633603704422449886705632226615362101189750121509891817780709537715756281423823837719105340731547431404053683373094586610859971979634393283936436759646258766539978029961794276017313557447952000774170746099198818512478562660657015524008252625842470242759641287693483106738056462001564200625747680357204952882059389631262445848096385766925101212552832519460172611586362635143248246164588075184027972582938291590639835450402280838739141271015959278414446759395443308849045511444981493014067416443885518778126322275086239520553422600910171640069121688022667974674651641409172135882752254958572802396191279567023441079607554638338547380336190080400677727256488234545159748743145820593002411214899038015159581008871979336314052176922097352568209675999293308846635845369887246536656098482485402911405880200331373147542708937710397459837994007431289056514071181595245294697708136129447017318536585350596734466568421575257352360863915812942584841318131382411674321345812673288209224726329968970942882165815468083392119568369131222328448772817157110940875601696772944681074442142864735577185910747348279676797233380513774354136699332673246929757156744136066034248322118737061804474329078557808405728400545336533465769129947511074237760805557462601221057515204628226284397026891960569510460041778069272981612640134998110577149041632866756947068051580040542927293855445825029612141037289688724844388240653931024713515762639782182855108312653819912227822712109075369359291438899383478121164240270966281782957172827030372360899242127327639139132297890743756534953744021745637792165127493504105136576160416491787691659418344218914016822334716498814526343297967743542346458884668683355447400501582026857504274919588441909252609608974340617864694827836768016690261651479601473651147927211917357553002688436813257991179051729308181247795086841455810674389261660159832740733578549633376920399740544052046938444795129055817611310457036315654137141935344352717567015019989861716594417190254328963089065917126525592172456488042554825129686401421656393278318580892815288772246245572874764189805787569601930915037021025039425175515828835943517375127130620835794369188733829661240437084267434085127776407653582609658909850467637760816218621106424766147401215035917552153227644878422111736692797031663858904363837658291193049992662226164076527489171512468231065107290506095005461183153350316817175130216526635149568540081063679685574285833417337253148493040830659558688385325996951615452137785615007365408917987061027549297921005949073548005941821894909795179888328511244155460727237983592354751065114997387742520270304159048001431896442274570008331089704514401121208658441254297027725697432239424612467811899742153331153514964533172409298244156939295974689354365061275822345689197403176391801860645347130415409604629076568807706870609736807836534488767470983935484292815315858605207049753598577715785421568942923559819138801269503718912049045386744482283526842597035278335205744411368069925462234475926808418577884970318051467825327140828549037470082246858361946958162061982065004490924343149691189556850725419325144995514271104613744513994554189213063495219425657190959809371922022591621977609464745615259203295374600891705703619128482889350657339737876910081811723056837801542266819557203211985213299204012407555794809966239663554196523262086146216737864038523082298304595369545817308516652610332799186510437576317139685528308323720744579688339564625945601241033239383483354812739486743896254005733483695308599309012879293410025988610766230844812168425837487533174747187049232142161180140228384782895047120077008580362971670119776239139224308394165513414912051856052469061656196875179480596142616330199183226814156606488037758813053937032745013323486140620837147066350168229320273495546003402995142292955821086228167735736301057177069325450697237684538841654653368502116347681091584349154283236503758133905893563451152390683486344351153709376973348749841350240885247949918038573430135655049600388621846322893710500093587805937844914686751409794015491141989483917710420056842698063929862844076140845423755105636657966538408301602427572441807878536303485810716255741369502930571361824605128956389223577582617709225948435834865477069638106520303876354969705482175759995979054789941439983092378976494906466008041352982730538509034669170986634815937758051821292629280429101300831834367512960117338371864605193816340156309056896940571893011673381452529922362142349843714846046027204870197914106902714479669349352319011509754912430909002948259922144325042848024617824578054136375996133000410642546117849739480600147508776721446343872021013859803354306039644523896295645654355664094343909622949344547541114829534172274790760926591212540549831073884751140215599050350143058671579478123682542530625879749113333196140094327668487891416919651944928141712023014655941707875365712898254223024790251196210847007011342410103710861978487163659773970627761891094373976970654918084118094820293380906670111597540233507648033001213067800149879693784639211070856218896412177818221889841271152370208565842620627919484707096407456997116519605155196539198849802256632009606257196209582733534619762685443817917380216679389836683124262078005735193364074625243568116742175499997296417382428912750233120540247622439180370090256299556234894255612734765642247192286426705292505264732166272605960356460475028713110149571420296258986871191058951522177857608284621680795415221686545177149949611420434745570048818351701268003073510670235200343491670836197559935338669317609565421491668317966416004338859176482816589394509223094543278460408294214369761724573439481639063861384891189171344798981873447539107248426280976376101137400633177752762602119162322616025012492895108707150332244471846101148523332969577186771083303717781810917565704009898153072213394293972334847735625280362944520583664624245845885485007988509236872243788052359050787065514503106949125819251413600766041907039485324209974624842600878307908581348789172277646147310744303192212664228828221667934037167739975095084813721116682431168197474987374141029736692786393338662078935083091905456284750568001159792329884550746375266757024546151496635768516617507770093781748036415880375340456764904732098654151972079523044246073848093892371068951415018272231329321561400199744528568497100067165849128877514804100899960465091443441484016070126234562343790018630182431558478547408263399124602708714145220642413597592083990368427986270237468636509108575253342803668308220544218123223797035894898880153037585366839519237652084607522096894371802458598104610131353423615347162802769495725941211856060473602294060849476809630442877115377958310407657626864141443089704605608023862616172601165158761592284362641224410182855930416037320288553515404627237585281775874736720699399938282907665282422503921957552081238345257315066656770791305590812263949982589440023607861543602581460581765056166862399300330396866338214580645043415230665790068774220960943988211844948404190784464399700838217217294910591182691451757016423986083434617152649384943359798173243725480452815229444890206812512197888425146881541919131685598027310871050405953161903028411813400590309498280112829894194661281263561540477103328042923181545282407225519726586783258242415898317379984891422792104633995527992833592245154944570077952880926440556154171616171660861988349160128769822142039430015236533362140607932166228571996683682230141604599380008299495618091362905720981467706947763318475582162679288044664416196295771662748765835877064860493562083196402979865938960757203483658470361900869670781259061666582707670720346463353747988695051820125621862288914854043844286379317057583463045386496234438771499706536672754131720103810209848954480116477570422511566335168551248603053708394196148367183713690828125625353222979597293026254337775628111776676327583653369417229596485290085083421440407376100423324188797459341644023451107867363545251090892550670881863201844703009139597109472663740552330502146228359956228326511599754075431098107606747090955636407324412171420160324006562350518346499528456521737352352824477897812904699241692711159220892345749632697600904089375470190482111824752234001420380806004488502710888505121972282510613361754213400820383015119475619467436052747969381462446956764737337183866772993461038995391585897452608679111039025978113631855512111057674271941412412783259918667827866208131868903713722103759292159093337613795894491041216460696634880932184937476322519452449657308599539470179834980438982214632025089131168033896752534382776961573488950339549830864511475078736142205002435679684273590195599089493530904446218335670714513252686860910117807229280750621525293241584638624878893984281910809306416373766523273202484028436714725813741703502449488582594478912568587345028181081098597436374589055088087725296459404950835785382056452624190246958627842717464143771975425641949767462386391307853813817596903174075569700469720690190158744508270472914158808925816436295552282511473402515135898145325555913221134117008908482348953371453180611505131601409365379541831931489692982260709680690289950526392893720456548805163087415825283640671894673611979884906611657891378915193034120808128910604213325452392057685039169515321555977011476836665430627185040618480790366527972735249649648340072286654636424815745802762364575080835115399130538800777093025725368840233603312054886839387645666105185225574689324533389572495645318506507295470116047899584633785094925960067680802885501468188804238865714198099647992645039258487793739172987687105177140453614398645390851938523270545861966031139049357020187252595227313167528724031067672997606550435123926634143244611543477888858363741218641697344628278370152843257231367855691785642261021087559299737796493690519312595720597810453487941125131312075891646999140360963586260812332252047376123059295658429041323582069516098967396790092915227029760483951502798453677819066586568174883385013619228141562860286106683969639533110605063469849273535122260920600783891224483054339521641777620928498624595985336258742641641029888317326566593669304716827991960086426865881056445773964927312290704832921055153000817047796998576124345451984658903988412773267300025171042160376340277501082934817349072280898510494735589936983592157850455446200355869595380376962783709610832728979292105435386661457710369611719471889513313387261477966857140294497000407365346757980585134430393231833085815612099595081655670568609691836644291652584348838122127872389120108711813333179602023658680082349214129082608649134108669472206813397483710991632409243372112135965790851760361861690758581120144003998726333448058430086481945738859660341896652878015099460045995478121043234510225412013397076424583249869011364289191994030418949852039463451006978943083974216143829926118756767132232634424424023966473132869172160192897417527146787753226504735765620965146555480153023746543067244859560158701461985753073596773594080156552169060421456301205153775533464233742695882164552354512512916794731225580013009243962964749497392546124201625591914998353613875644015101765099605584211205673681432982585170122504353998510662602074159308175013444626771934950276734409454530172821363632105020354310172939918474073736681379834488734215843930761187156547945151315542950132165453047180020058753307141579253806670584972037210027413075895045858422980791160074283899743813596268651721775755649848400543030095324070780086393169142516429801582692000709988780493729287712366835374672365877843593199544559528197645612311538295522367083877490286299523395152810188622535016301283219722804293645567688490477702297471040608318298555295118207992229139949997563936785125130368362428024520826513815052217513308483113495562671094129833659464905598084171712728453592655789108640897907852646582864961599489728827940894475069286764332063843675545874698561841159503450639115322794879616402527822182212006066712352886927655808487019521598713331583406302869228873753927270327779907734091661272157500779429288109965048437595195098597714980946270182959811197195117334397572135359666609161754945098644429383575123948169727999367288064971596084174757310140927518537130778387934424032697557598678975905995719205227215088168328095913429183748685121089710589105052793865812283705618266716009765421707001039657963225398546467219574117380734540852607220603373009333469879613810483810341128321694187835091901554719068825672527283621147956191198947580132777142141750858717623175076657588923785324202553727383885772405823563275223229509410778801470054651551383205845373116983115761480478231159291413227531917202768217522606212766578396156058781701526953837474006031240211273662426225831552978711303505727413187527977984051959643709608613194264713668585924006988193295333784006569470648141236992781143982384628129584566462219022389814748194441540339674331371858058605846961161719197615934418049661964611746950643299164991613319978812999091653707033991437375965086956489733193183789689371359756975682031903356990637748594221851198247358115546304275982940168999688990525463635858891669194808513132865658371557657897714476976418501346019773631798039317557737752998401445499404513653275476401643367418426913138794478387805392216028304350442951308159255312363380294039016349680998733155012854703576480922171771171743164418625397764964201559994123410536138507628095921746726832375242160443601015893374039619808355784123585281254818486490903874871343888570414749836297071410877266963527434114156477795149541724040793489290637282795379822003784896413422434803170748230395686002166107903715568388641706220317819275133100742321933523102868768843024443929433643021527878634012978440940422047668859382177113937126926960623104954147815686456583869894140910783461011852536162064187612269112305958247812668508925776622442941545283942243429120270037479452437268634436053015789591537466253318790971969289156200476490110779831111678509170313924207403630090950179163735394902427843480862424159971746182843199169000299379464450059307265932011294524493089763266989449335483533436189932820801310686863842246921203570845882725811547436478189059387811736818790711677543441646144241426234245462054258552904923107390093912236503806409182767454427537238335380415589847162317246802980679590856744333219147020765213971941296195948945439106761350601232486352897715903809013565300423080912517238140887426767933802070450600075227943445496314277414991368402214154024035397746388911523262347530597057393136779956609825117143248745845765993336866266905383405346240085163746491191765452844175866096772931779355737670904331545718846660512926887075113704766219596875801959300392966872534890510610181915008536030894012218187489538313997070509831845100405279401116966902437180905097098563332246851547808076340346540850510039149473825543996713773534519867531752293323070219049205509434101360899777260712155360424477334378836312058882365948273355450976866922518744041264185495519490161937510740405216628698008250512058880897514046455960764420427992335301338820482739977520875121983846558287759161252492845857463276002080457709462606360389337290475664603006619623807364302405586866937744294486869154629868765010192315011243309489743117749652380766943689481032084439381897742317608612291918415285782668692959425799056018467748642339960530457724834317277930207816468804892922246562645578318953614315370371435585547066799582674791574078654579450005289187291092583697139106740363838315736989413916852793363560108704366659050430561949092191005866775894598913364751860376600688753997392201943615485245759576725746520830340272644692708453165250121962015514724871041047647025659019730696862105635628761457658652008387036265156770731820539980039551505326843685642491043603925334307437210099914354105733315627187347602216655317381139213526407072684123933104962355890659807140260849412551599447192914851766516833444585662611039630329011471848332969185668548839779515930954552191036925534034154346221076276069366016421458945967510742186707789096542424915687177146361257013956870539271084060587750823042172609395724715174082398380750355334619080963543150258355151613180926050784436826469565631328207284948775910434346186778474118899733812517073848976240680121094628302633979201635009429175466633257550623937676289776892258554595407553045104699537543249049366251040557058319646312004725702296055618979004407611909903661895019642630586227224875098208620237284805457282225817505852409311890609893188790385702905691592329223807987229098434955962537643944683798098933607219318393006279054543762421847948380706850634516347568640168241155667347962783654237444886048055978552636724188207020313390922335923968866078514022528334562554879530301570347980454773119097014746960620829642403267958991300728266521704641961356371884145343245266720210484352049663973630323743807068553575321020769728567362084694055952437687963614781451705014392103693877953925547614372143416443592318126363540374440674763806135322449522723794983716863784381949982142875445026291347724015706497658172757077740311052377238296553180791721524012108418957020912536008419390957602394300026239060895137297672906557001858448336789069343803499653791358695698755913805133807910658627485674529679350119862598367415826908549384968536528214445696796945563429053766263459144934525291192272295686934527996318414906461879166835795064857724851168197441140837127243397189870516522196011014460280431902654609330867701551515666571909680081571365143435654992418697169154867121997554971311903468549563671380556619548898507454037483063831041320139774653047936396261014808173477175495294407897488389538655537288465954022861118905608878035494544517626211227188580693417579133793434217293147299571789344037306589701264583086931326440057539026503441862805069447709635315045662883124837983734720930029228285651639469098550215271214286083621984352218093824165411181757832365641054964106849677550963484704266742651172838397304132959697483383191483979081543039315342253294270657965268684348328390661637201496024581232591781968669605801638968810872011941262777393295519646545468900079035582662230491658588724035932790153213403826297614031130996718788981834030164564944406679609365274660596127252908273450708119288970283705692200701014025018696841203424644322843006424229200919197480646274312070573921925506201350881631349181957470197647887902684125751455834332129304099085434787647562884792259497722538878012979679694398479552524029623996703267550748164756999226146023142766025926346355787686243509044152083110386533545861045753551231028294808459862584442071436696561443534304960844631891690533814619375327671456033230650138115314534008363432775867513141584721996944133513623495356333144471646528223977411946342178388228912574889451791337394535034216498875639571075354763032364930448887014026259130631169230856304218615871526594049781486633547229393741634374459221449909345224451666349234721022838978301427596018310440799638057321607823498074644755870277774222640186940355403459087293190858862721722177011632392243737195128150320021732614530566223908708900964579995642882135981871025519250181570171100609507365749959293703194363269290593264810473775451182958911534109158685058307713093390865773697310159302720385441418212399588757882352778209649779352882707507266028442013381794197716341701314764107432546974859708479907625788694167508217872410929335314470606469336785632412778537882425630406758057817606726247114461519863981085747524170416427637659738746623945184907051401798163239671651515967759515100812185831852027212921442755191937432444188564806237558277430250779765584188689096488781878371325792430934858663041875592481170027668565812638308469911675566370337527389031078794058620315680786069398331832670722329777522407705889453869953810472758951238715973619803636781862109471132847678694629722631189301869493445325165191658268726357644019646804608138805065992152431309627862532736444389547156178398298469466428332852731221316346181099565615048827346660010822306538878941867761074409209622690107475336658223192332410730515787933929327470374760982564039944532961440638298191473878251168218363477835726008819402632322240093789261760756603245074159860397038361494353425083183530253708160906387195279193098852558761282104508289513497067007686119830083736288492312946924115059934855219614911839392025332001023619319869827326574547784524953210361732397569393929209676063034785835010135553837814845504771442783164384496805945415524944782016238992725774644213232617265197650028499143701722807085961620853157718228779718206800281201336401851355718283381332107074923809705052771226642076126095350981655062613503715220541466126019745711793890436201375448153766652896033094063801832634374597564494390263694771343473105105293400837747536366171640342798356593552649892535067313323064379132399187139339396747608320866038060269492702567076550055473927873258696949109489547159321459941521649664414713399679933963823701718420293296941675302398865088786586068530587867502294623557599128479043640616343755790121367394000889923614077389816502680603883589393199421415808996977753634493233711348651388556849907247610896175752066429905771269937122516983426159204384799191618829086215251345456344473544970670714592707771243076388873428824378897367535680405351583864726655789356059574311861374693609541270061895207890174970289464101462688164341769072686538490624338289978620445290347725640839780170962062372519198084775361459446311423547392000419242531187472697654629377379898520469483114609991491993636463257503258790340475389371770714895946560424505947047768408346270542342143994629716344261838414658613333480970729759216767241575211787871587180971396639183572543945428309381254358372192399846463430904542514531471937795127132566288377293305157573283387395421395881548589263056776888281327518881838392240755687994688389878316517228426244510146462991750307808708632005721762379166543567066201410489994828729628775398359265624439741626393069944970108498251678377592408959368354399721251822107100648087224883683825986747952409037006777433801810340113326462681675931168261874785363845943866069822617301977149044849949480326853133250028133792308405607734633737267732605174270740626038835733306544019614236509584283496064014980915007394322850073372010044616097080620301105183194832057720892151317127181915395896125025942941514725974372733772970164876690049274214949218714032069274516343284664263568041921567983533077872143410899804689459584900775356782324621287879691785784609482079298049204446887629567055627326003315034838021857917232941607146084488711287965838939231794883453354234511230700277320939295527094475468428965090721141598498260427093107843983261539575249510352992364239205011510492493043136311719360401497461269800247726870760938058017801473920750747460021212460760575476802247247051155906529757611702324386968103118340113118394686766072908321245546930159651743401532774720487854613955089296946301371970646312405384265569058603792681305019549254117725740812126556265185800141177084783658361252051270617562143701577180328278645843108753752494949490378209837002544975960340709990429670048528215000674147478283389455740661176594446426707733829123525360986159039423775430270313379969823641681301162231315898847871025648487165010431189452854089349177592693215242646185044898636655455324330508671354575828993133709975846449130245478759435096966425718636985453047044372946665336141713043753388031157939440649660932893656618066609065633428943801795141997563560312367892035628392787821488639823164453692028185503199085921991537906926853711744997869025396432443450280880136411359461649597381839190315952782056447763140071185150673239661433700962650565263526192012602183330373286223570721920247552517324976986309635679507179254663218219269101697877758473073776951107450914446465923622200017080032579152399600989639597294517130101281519091013096148805050899950604590375616679845016004042436574255819793762939681212766191996790756561070745191211856215629247750049745813140149376569621276155964681687909573824814539170366151813081758563123097170167331404303922038734682804008548296356781042612051444462348761249576736093622957821291213511431117089636345314820508058761186497766904861554206562724604592247476555651431063040874595128821548681271439523408843047654917921398604114343019192966997050835289506485204927313468994608368988701589681705583904496562198766745726867776028845233406444171727028908303797431626248359688811361792397818590836499235304085724019775388940276823744467187800838183521472552190627356330171209249128700601231563959467650491028212772996445176453287533386501579672845624468062676742948896107403030786462284059530823211954759036670534587841934455055066866499916865159819851186952630234898112243794590892018411669326082710849134932093377808698190263143386141921230415423021720790252935773674865730186664646333999165539093438073313236012742641912790763620538912194369142242966220446700486610803562042876620076071762678289439408142852382154155226912777018402263551585942252016918400272406385157094696219693555946695248583039373438724622256119518903979709690787215421161437583084424098639700690634360983575646892673511291462789422241257302226757367595887506272464258336716162943839331401925717660397999546726480231315481010975449915365208231538932736508565592468460254025180125731707975568098248268988881639848091988334313295625889952976753354225527843330143688725377919292891511033622375385284970244640936808768793657767282021522068136344119273570569159593443677268687113658121137237749644450272635802489091412900708944508169948747978051655791325026387835405574208073241081578744198392367131239101856895251517895935771547647291309849300529900442210048488473616413745178400849073244023846434998872163603974844077293109564392691602490207570638601594449798075414109161222626577336313029635103993317828810389611858561927184971468782601904708371040886236757606965787352640526895278182395429002304284391990390087480843343716432776093618708021631447855090166041108598857235431634611983443043486949331028480402785593584045361120894709121592036637701341634592422848792159490189998983665056639910328218774406610567610088681039504971791006642901594114186013799507192716417017509336993854169561348090995968056500324152695194997301501759523046570114876336568482013734914330775828884080344091901656358751092966037608148779081669562529399871194768363866532254562475177225014889364780861461129040189658535237609111474694434159188231274397407755552284131270112970458692189761578060079687624567273528241789107270396061710777166455419394745288874505160906967950071522703179619338602534537874465357064219464417345427148761423717826588315363148696461239433795746516643427826800254849866803766192594928265578980098941118935479397047585709723733149324682058322423964021088691221497612139741077966337852775113433483923228361863109456894065985940614070788876154351140451510611045775018418102545237463366443081920684896689625692312066032514949547228134314812303948576904442834244161063856111642321594675315961707548515800184595826446876132185116477859006591151141516680557728052901975992267093129221043422493313184728908838821098882772679628098865946817535600063938204493903297291817822632442205885236377238161502601597427032641452886941478138355124404013045926142892199271134558579703173824561133447361112973602220278715895736329365950920244313901685834103425495602009312617253012173052394540031694709198158798027258770507244312576223745374703956034055691830175258993553551013753478193789572274014957553432241595271665857502684753191018216335139447629599723251609448816468347763119670337522976410853105586060652793549483911606965804680282888702953839308464147372718512308336413707128628182034877848274943600815066089457735139351806410158051963770475796586443981131982837664710430040623572112383099703061236643745214928202754088007704236142101289698152020458467664244623620189500547659252994895589592250917233637931625110589558179713125091567632628929540947413636229192182286193587176736246063334389485872081948236676987239908746469839141591489191661512708600975962887431235602862767466242566703408650157348278043805125624742763330540902767911849989534180324538631306642686041375413548692890639114875150487212371223982333562476999718224029185470538700929658058558211764206587076133477839859287978698196461719431380295331912041223403360274715278411110354032186252192633751922452554038285525447121693991225089197024186186486295834765031237742342082330277622784598927968174145667079836588889107988649598795600531824215154287547840863374432075168094523088930056080431607495933052727124942171859667734990140755876933328275354117263695529220082000445141683735988887993974190210053533005335339209337248726886235900520845106243884256123393100776924542716464505556651716965970176320906501804580597294692518775365912431921738101302452783080884052843251657545147715947365462688981389396357843748097125587782099170877208849158889054082824673561501238807736225708683666870656374374573875667426113449168719170120515473213081297360258531744911228132104889118259314063654204719489928249352686956354125445736610166842026612687187505241782927507304923736820226029328491782500489537338703017071262485023467540088353610698684242594868985200951944230285541835541679517783173167667212162303083337120004298119098237197024044323710580519273221867447995653330808594780259437529896920499474964065117395393045631773067284341176876854983803443044751212821302584617147566202989119936960206108574443002589184482994879617838177560760395510153013009049196311251635661804429104049894327948663055940154482115803429020537830246120182624085007222661216339027361895207959069010346337707710147192622986845338000461961366563171588730902246957418710174319491886739708309828197926523779497924408630821666109102000594955161610314953350724496251548052410483408828635155425235335989156657303970959632645773801860534064368821454791404100595268071198866525141994732944662234484558637043554655974202403746213839991066780783828569394732713837468884191527722780327429520612005994719431120618339506605759009656774105714177169063460678587974604030337251035252721552705134400000453861449667068801567871803899338231525603866627867209960445309237716653529542198463865760315028186966744881582415216882978595535553517289627296450951084172190063209544984611610419320049682828631029879065217118181053515440407838003109226389654813989842928468993783748452385901727347841173051951199233716945606223102267783395894554788529513108925717881811783748894718830458308612173502665581626046004049530799877725768128123452939589601783534496625796801446078966583454730974913300713422755577361852680809462321400815868464132056409539107881064734959278638350909836820961215253277934979799834802886538059209522237894207047828039629490661149564782997623919383833534640203247068572842099877774257291403295767689997180367242673039219214991011961329040240935436394025717387611322292272392104687937162975345159243024935065467484285859969939525938682093296940296366236422475137239108805434085826793649029584004433177410758661100791128203660786051021267208062743880807518768162544916982708056365460978858520865999020899708253163556441270949310974693864834859564433364961931137881100252203918100872566765758409126003984598997761719101567469363036279388146694313204345384228786660113503435013935315856395259052091699645385282001553693463623068132444361824680225367736204989522531893792533510667638982909151232046766239240784136433139870209223125155650181352818119689891617333777621360831185837995262467901748852768798476310559988097791218208007727391968149799631977248855499095965803165516626518344669899089366742782253262918987853735070235229227966265363876061542314450006568572168678383162876148647324717064114999623757714560340708018245159458822901637045877576187161587333163839446018595311418384415814345247197566377945680742592098102746345074940791855334234508117113247555433985749756423451058269682726422042293763928664754231712166030070182096753954240850972055262159786256031075691237011909113214657022511889462360578952710962343284064998457071518990892222180650769738792679075266098813626284412923809537872291984522261952158843581599719619758760141810190515169737731570772563893622804025746838720991341980387758548663713931276266465551430284893179071218400920399704938549598339542504863680178620342823461766110579580920868853736589281684774784862222644142715568277178121831528148794416725095620542052723013589853418562310363296025150330194058487219118223647602424797331354293911671011494365024008093212196185903432471251630700396695482236414028004924188807771181581115172118446510633705377516900284075660121679137751437257869376318393484715010146719248612397587512393912634484802241652921776577813459002761868421843178080255846484615932110798462776653431253271880195192822436016680498581736031189144232549749893801065954585460288567507436818552235320470849220856456052890505511184594480430603939496288025742683103469235440848697250197622166565497499782026596916925979844714725079574258515996349829028342029487354498023394617277732773792287707091556113716135295223330419956328582155734647149441063927089527486643073881819217651761544407534797856410886750360166946157053353786682075051710015274751895130058389579289938367230117365231261538820747790613228168242112555408569837253879452968336838301021728605651138973341973917058388504983166222093856441983127496595918445711173961218592058066147970676792966030939460477488214607393229777024477744060937218495376965105387919622249690697795460546978270264801877865715435390486287528823642907880960098572389410715443766736275477299548007953360436120236398087828484051348436090114343843386124503286787618735390596722245750147673497729455051272207985080733541170943308906154761354648930729958308282846182247561701307751039000310233876063235967283815563872022693774027857475091465218999674416221246716362232643890643907783318670978438158223795881899653598946538186883751420919885715755981384029345565394636518616343383522577556106511018418822445397129944136572614458687702783966900865507473111856370547771261640836756958811412206698916169597674050568583016892245252874799056008995926324388552181122126585497136363003449345088078769208794795666298812835151112448052258720316353162222942035819755649894906886812847950778576936884808627849102080120629258378979511645984526396790604447151190924840724859697203322290075654702340036982980114040564218056292287089874512837572337797958904593668668270925668575218424192002008084141209043079730913868973533501947706903499280260759168213917394255059416103925071547746465638555017852081690991859245160281222259745539630657577839922550041728014137197484261334818022593158709353530472517478852626098308071511547551109801281254752526927750593688298116486973502414342875510603311240139348500486235655412169717580931378515048360714122905242001680127710679980801515275668496821382094693738052725844306370164529482599143134548646191145779992853290305069706972308786210458244492014018479615193035219329746101041623461035346619255336328723855649203814353083398725874008627555673642132008195083130482697731172453056397065550744198224574362450275264990241959829376122442131532282328512156984076067755697403902009410185223082132148017457669543034319152915697044545111636579253061277122658187849925483505388804085918437958814180401910707308536734057784916795226618100871730783821841260133243637180409937960109054255008121003222363320329845146514946958765209080835553119545210930285131506778358235274014882810546841312799320622262234929609290085156244892670161917551607057332054653628513978207611344179090296292824649016128241434283238324984542033369555098664003643524463953707579415764827807383622921508692865332286048253438505344608116479635396054085314270632273892837305037650425662512001463785478731307741280169313023889316020808219260166495898021606062930379708925212006057508553414771346666327662993368726452095375002021046158447322304798434819983914263991054646160406959042558268191473952052261535937326724837267227725046677429860660786820098780225767470036385438032541528274431279704896519577126129951545018574007410548858716486842550613381131242835333452641508426280219840717804202298761336513740937550666479312231038536435444459614499009949634995162337090657598226315787070301982764146012607613197915440224311354921006482831159160858640848714747058111345969099856717380035698879855101412089902588288831622703172902294881358599182291907701511995170328638757006215201837240482955588825755210750655835018859452700300149460040689596029656866094326187055383362253765553615464768838398084148145606251021017387395546467535694162368370493711116465083638920144480591440567666267243545215316817990460777527188321615134212751221062070937153918244970029000221223980901730523098357734305450104989052452554419038390950608100222712628833401228697761543104906783643071588871581751948372646470037941435640147393012131029058405607336335152458211478437556538435914912008885283551993922323919744709518639052016969534668430379379755135923954916853738094488113272093543669887457618756042940065157686463629651943473000974257363059487721024650816532028282210934977663179821053611024301453938904430370918547306570833579506438698487537018685208150602743937476368819076354959984712353894200747850761076264051039379936579989826586050265345474916349691160065019232461263083553022198329205048628685138283632567418646652015496619493204178698069175210031514432356737335688778585488656975939389745030340294560304588036120295765530198873079955595444834040033107112965947183282923889305910515423139990222664110782899832365446225150957015192929747691388733337021030734614697008488418923980982634347403229449926213656401514881426661011457147738816646543233698921266784997980794309472598462901793347908474717970460615550675300278773583233195456571753321687352855651691208995540381168759272762071526201566046589813013122727076070203490837467884177016226623878722121736088271272460857867683172029001265159435983849352678285692679548436702181484740499398858386214787550715732263432947870140653960196792901636203879843337142763260403013860019992152129443317197040180631670211018137848987201957410938136856965197461933708519724760044548792954312586617696737513681359226874846408893040015968009264136766151683534438909955676721308966127211999779312094430576673019918965977795379706582720719832334484010665589105142062013770312931629532312612839099928076660905484651380666129481827303726941558850514545170547950170965966812912651391985825155843748915321519987980939026530048923669106098644343789223463986456243163007761558551916260446597413971147493281335122507066393966133769629278494491207037825946168922302360845776234281260819455424223236413919070628351551075229090300307373095221864569250030853827640228263744877993093852914395747757456070164638063975005495180686736649654873150883299249678710601074520159883303374703214201596328489819649005827374772802130559804411065705500094509490860389674028725082826618152764944966012767918539062612676664658467317893217254695607681651280643770229722891766002370130610493812216986319543060031710066656042833737252675644809252829099747812212257406377286203693232027911218876817585955499679732650023988457074904604852344831737456732956155733987036965667656938680541225466960702574348046240405196090912711110436200922380069183704213801467948240240810172709177200785250522652682848015578753292799810545615830855870627970291241405882320268598459682071111726764384844416485455078204261797572701791277770511618962917807360548588596227912057112365150437733622981073317460325159132097916290285302260356330038286856691398646996630910783383886189084423621692642931452762600372699497803069149306072014820138768031725436215237662342229946590420412712186695788487061609999224627157477273231252754980134366733377961028798180414382135656239039116613409809611036910956673663705776834260963329368684452083751142081826764915797732208727406438581158579946664151161490847128412514871753698158292024972719301424913132170601380947462035352964797556287446024069859563007546269270222546867696483810471953414091259391243065376112730039210837274355577039835246627066875347060338640005333092556023789195555477865205365756201484695218933849913084958583791857634572274473181924772099431665956343835215741013950092588975945996887698449461152606224530832906537462423148262155965490642013362105044916735200637739415412452028081842233659393377521761624844446437904355926777558408333213475612165725918297864586731475755424488489151928669754933024649399045498917136409317781063558643446837812008879177843933809226263182556919095369085083803503011034358553077595334316019830519520124680836474300845799239493964225198992494549629885735662693832436995903722748835884233913602420926338367227389697387145040421777262099356781692452035354418284974419655492869525285612363246804557249699606964077382192831854687263610184127496107267853911846624250378844619782339043493087221835827935407948700717747121498533469905238765471526603288959524855188649098800704632352100175354193865977217696828528675413650161943859686799555381393178204307641729120899521003242428987759435373097974593728595074016270315931828435476293940830644460139102017815930089870752225183880759300951985523338782516952690361498569642814151049031737653829904254190496662613711173138620180288193555974306829347869372253894625700073561004329636122281423309579893935723652766064645064834992459238951947415958743722758617592904705190505651049111351894513816895982340995103230642434911610579496329657139255462365880996889691279851985994911740510010092398850674383202228595510451135390143353728125458088838292616545602852903248783153566350460235656199819044404624404680275760777253714240186495760834164152124905029052542524810001662998455378026389446494688023345315531614625280978996842523381149132662862883978770785277699155409617959107975057538131702017863397359177327519593717769214033680043798817581114036668137260052255168281313218628295174334973009330830769537146324495978938671346412563250110290426883116286351842987122337134113842427214226670132656869148492082967572284191323715123564388957967158828243972364541312010547655677928456199719649832673263233554617147632759729785921516774754189342444124613714977899457856043988804863068075879513397139099285539639364354528464035244589945647126012673052666976134828340761538693488156411257500029512150213902312742559222837013357818755567670270664676022887279661159794731710676368620072142188020914001296462118173299193041122799002945381114910405032514479478146820357235138195981015854711413636624083423692060164306613207566420420517898858533710337569781793196744601488860205597417588708218024532425729499591997007912520461188985593834599686191602507916456596397029254205024193259573971868187034853625833702325751468905714885014349285488844413911496257542224897329947595874215253480605069826646146235923252745520113874586190447436504315813926138093161252323046341199737437959429351146963598687906810720822689065757034902043489688175964989203546521793103228267359840292040350365381494823150436857041593929552794934894665557645170234446087531525223964532343688695961676831393568370633805997091108308154850052101775980848508471432405155607055310921899269761201163398440489891625892997190938972212552853254451749722153506648955118721801159995103500483132123723513235645433751858245117157260089287610119529368494446924426573893617480801127614984117781367363301098670394151281147278771579070172826316510090063624824386753689010933891098091514823878158099240836450086941243811046265314060901543304008021333509695258623777541724070585508775445786259781936966440774406672246242902665420877392806365370721098174394362977222552610575050242308621096955622927763378298044649943610646243309103936763426477702426350461728056287790807142418619866581915043688293636650321060362005770565134993046428636286182649038820406775861558403766842452940574405919537575161018266350681044351337366145907053836053263541694357069145664669329641692883274255973847322821560768819097886031660407739509099374486372477877712304694324962019285699313693757712501483000604545071361461538321935808348120269999844762940572691977376841720516920030813837509484780219000515755531857418109283487466676660581581127866510286442953393201225343431264410090192541251576353675103453565541287014502228395921384341271146637026306700632713019942252632128041661272553756514708284480325941858584786620392419493638791918685525368597372031584479830135438205739500646692697118750832234606366988725957482461015660472904129428121474461547065143133468162766700525785389272255022595813350765604902661531554167523914247102904147129490896478850670247019742887688851372785598437499291014496220560889447235495953473013400086528585346039494405722887946974695036286065355569978187008964832260462471136093096688859167326051058003078660513328772844933656213082294555160047176104966416443551734750371290279746221246332128976740704208436235050264848923161966271179036911140501777058177525714874423651774445076498524111366561457176465180586778673278526913107802145496003227757468338970510883842334427836640028334775065329821670891349245027527106927113030058465009184619015821220134247940665095463895147241661354344463963915796294342998981682139755078834180569000659595761049949671051324837321692023342140577368625666397786389043051685972564398937892530216313333791652303617009835192141404420759034137649844277461909402976255398667871116424708078296812447893759497792598503982040615464962251669577224501058870475258453535136306121926212624156481597356561363189256654001059087946801102560023467786554015759399604197536887066184068380040145751313666897534320551279590679566375938825947308787712661963367014241355385319914673391373785929340875672894575689690387757915303592929166676090727455016337798477895166395046192538513969661652447514081294073732342625944374203503932251365268335602599973043295694259339857817171146628855600671372160537672053035051988741414818560016202674882125711939369905523226280398009467158253205084497349023931262105334003901886442726936389534461414293295131565091350070660846223717809620253181943438161636496806947999346713190190550707251349433790021387090236324971767565901746589166010704193709718186300558631061956526933536501698993809744007115905028791218801652475170290259676689702264697161982396656766758270338961490365804241423872679221307910605000548140605147934604994529091543306518956586699978967014882147007473336058501903966699174288093555158645900949135528434984189863499396119408937702647393761616797766730537906049861492031179638812272237767163579109577448367143127951261463605036696889900385993119997880354569083456022021111464485893037734179200902261297798369387550859104385154797356137891278168540385289488364994559659251121729801393744073696382594974833675949843335555434115543975585652134446848464711275178105297506070456519085796207490876480007243441983093581278797676847896002421971945410409858405459523443021829686434878719694253608278919489055541581429742709869471922067671117129749498402814700672767007332192727761864493874307013403643251078410013763777878178712474546547904380193158783760169391053686223344054091535485712767951018787437567702134835605092184541779883420844566466027893056181556097781249031710505080711277674878257396541028951984175722197407503711495960729105864384615647128321483737131027246158340581155654707471075902552209922390795461359612950671741413910659226148734533375023116164216366220714958353601977641670901418146203863511417885382395296298957254007238818313287023598731777994698650009687250757536597524824674391227761745716126650943370396377311272858483964746623689346116440315713604175034083554557976129026861836401978468940215240476802747695223898572796886127910296262169134646109930420754606022113980217126176287465026727505192335076503167895351823093665367362354381064300410882794791216494579220742047867686266024084545110930142109731072296354522209244517325287204764232255647871783201974851240290271113854345791115040680876670527320362974151106429057767122322411804237821441848038088863837325635325444462809626290728976219544711444155963885000819080595334111155532416620930267413501086796900278950950975372397247357172197792560696789162584659396705582592570141454232211822097649204339810743243319634735444958575602279600413209794474331632905033925283548665261130880174055063608307986806591864643289817309106998144251121052245693583148339496559675955103995778617625297096203344247391646684852064336055245348620111139111810474532350460974327722716762491824529954748899816998050650803722386231559180166258855955967834410385545673261853564226150315926783376536069641836319208724484492437476261734068691135644050104861232455792998832149106807455119248056422781355573678928635577542477117535695732504459342965662921279118920442054922713977128713724301478335215363594040803120378028747640070248438504112610517087543360560251661439108892080229850011511345350865201144275531703882006029531622862946620997942591570254289844410639413730697784838712458662340634321783217705796777780073728269395597430978059477364373007107620410673963159498784051340148207551625324544956017407052286733097940782246806391715127041628200417174089290052679335494758083239433703955338594882525423922327433706040775227902350016193711641197451872340653682603951110696241971712913287002191062174591504418598651004043300841596132414722560979008475423601891621642339593385819326251189852071836033091982038004094614144788091516786458396290879889579466198191968132704133913902567335236136394599473681754542363095310040376121022714394665183537884018324219181213206321591086441304312853374826578356345714412057529587981099165980486526525873134894417741843616213301278870063269890462132481013466456477611951855745257307761648915708104538826470156898712966857847619352101089631723297567146448292082280718183662779120283288725315164965808806601934944537625752085711100300228285012660227559417247090838215540091881944275724735301417964652464063423208680231915747186194457779824879359072840378902187664549325295726848945161726086440428653526581950550074469932328949470549929737364643716425828032330957089472838498000821187121995677089059858296998738067039060890871188213490098794097848783775244147964901976724064415028159573165876992894266956847115878481565908506250064178605962600525156882753919949309871709006802089345460148955412878617434693990151636032863375532279642000415610939199960775687820462897915125927988200203589822247328470961129979529230940633572861703879347990821366325957256594497652586707679752590893331741401123223824126109073217631078322918125274822685989213677897607756911854711475883503587991265144713046636987239650609843105448485788371344225411773831408092755607319052464912999608472967970945125557512238302171576434961921391335439124243379807864917132504418146551452245920994305977782766772823091936833162718997755799206927396828407515603377351916504023179408437216091979243457752658719209802211581799095303465964967330515761628609791942707409193909918455787040082234189357318504941026275224334507174052807010835368997191249543018220228592379053901145335083999075241274770215279107157154306545912519082127136802070776482553725333477482668084890683600270189473554431942908098727109001696392991760800337499301564826185341838584092950688700097452255369165686485611306226535888667730592229996935093988670017227521168494080761173364891884786669774783260524226531846660949932814250546998960489582543177729777426443562444493070670653978144743433748007229407012724520647727357843013323683153078915588377530170504213384113045221479699729368890793838713825894912195931132041366077516307887782104409884977478710634068368978148392916119857698063688843637981006495554719106790227907496469601150708042803316050697326550992080362728638112304482989573049007493981840609669634016499002044551930121321456890610066704240246401466224720678624785934582269824158647918447436581778440069849041064254091528408198548083273171616852758145124425087971797342659479721110534416848560348799617413621310852967894016724575436372146858008826049507907565803394137658131642746064543487356597811819606284224204498251421274851098760981751847149566024611417293776832001718293528185846230913370743285059594963248946796206434918720115013026632284307337030758873260410591567147425991692135383279822607058575825224379436096708154077141758432856127855084514056773975553677166547253566872925240366905399099751224933757633642218317079655978868581992617951634574107212847235142266489074217481539785628396750993302674356644474603539989582558956327822509307720414531824756298969870220730878753819209976612691109336458939004762793852103502143917225656582232663591400758515841699843339811401695608555491317584437983480833979997895235517928256530045887682695722900650714179882924979063920267602550352185743659064350628106777120261779057666022850371828108667760914597276042053916306743697807334291913822592038473910972577349736819069373071589389081012870894957879071697399532151365692072609874044610807390336724634125870002234035547621746617756758587841875575029858152032498111617459014294011335059633635063255291295639751611351355243342761444686612682445082596324052843516407854075203519907720089396584360880795033061738842193029194311311761747181947233438079831890664678976131989472592478021750366197684060111397780710196715233940069741393143920180845099950138537919345574406426941127719069487086674525619032846356574716333792505971165692017061256335992952988603575065098164924616298334251448910686286064226344063717066595271325239279172344244190833368311060495144354338660581777988801213849870332143199220122721710855036253857173559105018178158945507843193961249763730462256805098729962347873257184330265734491481261012258073326370000654464236061836328844316027631173149019642972527412498536952179236152549985943424307803581119815925015397503231172358408672386126160761883287824772770925881510006484912373507190682397791348919458563174491647859667484429314263207199850443462324776547948341301945620709181568581519340984631796560508661392881253463737958867336370787656233558128738055860485740912838614856388094423842019747732020088990164018943511292289350300975834494632463456268895126162981514825003129551730742656182311569584159434422792514136668817311660409643568208202210708644213322232404503180024782236087193413916959098272452006222365688912135617306631433520035907932773372312227178817156241150516101815304303786195514961588772641889542165230029884533647214685917767329633801420620333042030322224341240614845824704293154212514055933860430542101705948910191597575239624336655948662757456206640382361443104541729580921920650889217153670997069288984104251388212271248894056358921988131816485925567137952089066220585251219022284963085254907329895288990417143342250652770667076820324914050204645907262395492567782771875226682780542077195469787472549793800014835603249203601678962475697603033221842783658113205366158645543328729885272660074013028338274833410800782364670563776008681351044815723163752567865685196136672494081077768937699916687204197909936684507646594795477724155672840055539317191135709552745376947837897408397901158740345312590133645431720241207336376338220571643770975864601203999306725315810910189904744526320354521359333441227277689195905806518546753040239314021381509822709537768114698429491126856934661129403396008851025922780917439894647902446008506404206049640732616942756570630021338971818116949088130728858442533064101069231996711716046082917235491611123754207068117162506588301548785812135128578426246296613673525483421689189725227756180803503678170173824136393418870954693389226382717687546361021110571592632006973645212816595069266865363947864083125358639840844822858973284891533736365058674349468445881211501871031373004528367148113569947327750681299274927544724707035789729834308245698514023510343409662703585017572991437360159688767084264628937386553944112374617698980308758749048886470400158981374536793120864681654047200043714701192750780628669575950238083014455668761695956330864260984776589243907665562414196335060965933048968463222041485062304733563562766565884889182742184929389456246928613490084105248752249912084872414200151781833445998269935914313300152117074641987571511247320305741981006626416705965300152365458559342772593095144774370830852060392417941840394516950948325753332705463751351059414344627635408785044888147867169910163025540412320954899579075490044588622147347321996508227692803671603418259532411792440766208650869368474490002445848090240566610503789825103727182619637816460656961315899223132898464518977724174597640007484835563370940876118792261792882337571024919882094039886209150529312873148297397232935067116203193617307878977560261103190318377775600283898869547653863363511822294459948065047131822566222640078910594712856761734907391164673203215288306902663043143298880730929252144446160453694259403962011206556435860053586524907966664203349500090371136944330623766016246978649771684776505776874524946579162050759108333214366442616182558862220473602335343686080726009104368622278485348446499818301612474088497664818446240308382255615754059571419131752091827976842402734951965937315492223118094116208146507601705063516234874068492513703208035406695029924554841014627784694990907988842306645286567295714241419994975075239235011171208477577083425836589307558532931600811129670245899570200846590533765881587746030331207841386394536368194201705423510927127153529855542855717588442332419029552739296197190414163786190223889640913255611161143523749740799479552784921622855121061521610270621646422248914434441233708681589208190960596257752988209085864683497288263354242004138121585267452604329291418036597090813951151868449055007555280434260757653348866745051428212230964852962994934882065690809584802691779961934210435658348645161867807901816838090946786631053215811735511992922086800555068006725650364215664079623722272338240101826385695773014768358512676172369190788304231196779687490784430816875158304228327267596835511773713779887939531529625905227821970951969989263559626371454063792088873471472727311203819644458317656782996766332574533415187618556247117220763597182184958778524535152157976681971833867667895521763085543313600532428744228296013180364342988069918896930360195487574229029431541281796163598308136141683063465874454109554502042492015856794930017519867706074397773848398716409453037501460129093177740002420206935448199025445276922674658567092755562740413088661829529539374279487082674527506552973987500270664620525939083543558493374363586345786159435375163021683675191565984512106323489538739466367568606442521587502802089941874097389614573078980772767024192165430712051736332666784384754986747376036515166433649272490410728442814345817852023077856996876570162159392019529864736152260599266271499398697876633425486896026799695313075164552952102691071574683786525231087954484698083398602426953312081352734543180264732684185576646038182336968181479835113849131298591847091981442078577551314204570242729125632057300091907272479886278604557228518832098583210303029182563136829609077150492236932155218262608479656716710315110852733813535066226028417185277966580137040583024464612069044998869005930354628765657070962924119462102754607717381402266924303127833124463493142197340629811913751504256829369412998679699804879124518878136366504777006677816501662880586018407770060596119206076777206706078619025319372826320555801689571685392178832440958225972015342506529719090446550747148175252390725871774238137383793165196014087162281691439497489540134514617705379401861696323843905809418485786567742324347050712371883265810631829591983982240492252092019393249344199060699185097582053885683123718871496172292743930663242707750151837139477445347030536458331845532792870218285334432223506532504686192651910162955586183331161236122228947105799227417485639142430628050882831759386982323592189848468882493882197255670644833807960813444294889317506990800560981855327681156107553261743142939021248533018968071207847396397017756385034184539680676326817555216645618352715824947579693256238388983503088124826103842021656279476909666787683309571994224669871342689550391398102536862721416952282021373778344550170896920666002073632511992988598586758662731347097895201804453000938448678392459653893577558903858518856880233012171895931776191125394778936302890275270386457414098688548760349023123618888558362410819807555641521483125431631256614410638175200296739846942143520048035139148218281962925013154700002883580305618369400935187472328576180818139458966930039763189729085203163916507526557623876607321367750678820263595320043377591351519600555969513738796676563143055209696893750386321312302234260361126625205032272931212544418494455459475022467738063146448018018894155518861878638526644054454559589568021558515416538860300577120090942314115120672283296024777490534479558006381539418989848826994726025073570138570974246810375431385050106646107304498375785745859138220136449404428823477949248605996443981486365606675227596158533137036546416087967174177949659142673201011922523538303599994874420987457414384120222740027894837824477240292925107449694414626575900114057489452837743304689061103706656886625029424327423347600298358947909814618535927579936999019028187164525655528089475001413071542920064727069971424497907884024654244913198127042814448715714147832551681011747266436193237833792711415287706409881948793717488317726825670219737320879703212221899121353672482707120820120980823960644327625709054263459010372699875130155115188490957705346710911463529220070487750355183146369429735132087286202658692151545071589146363693536176210963465053083440559401219516099898231845165811156778051135752153469020856414842530346753898621320654639103462584860587628847945900809486854009668963952659947750440941863408445462240670276819775151743080515142993850788176241786814201032478134388464718950810523927838802205229954120049654060623723669679822075254424776753478720720826266493343771431491714693227893043879518218274805692693518990892807911282875284447916744131719458382565707544228694966197284977466794372810065445009213532347112657816759049805405314457688174978784014630118633467109678231380963070767198460725644897944516871792256369465115174114745351738785376690187222299462511858779853958869494992150822306283968447217879001076338502962337597122641045521260136863443127808705778266363079449912347128967737201629871240829947508511038586940361617120538258876585888368957615933687893081650845081159212592520568130591928872476613931360611142460818060409794125559536947461046617555336985150190975985039566715632559284136048869474632327526739241483830179101384654565769619728226850319072247334869764757235389875195937859979891962271772140733532535554509006686476982680285864453892620605902226875716570036019247213556229886901246544790715542752295331591178748089615417695388253217038239524245312507133793625149922599107615319791279806843421784344897091643627524557067593149210029250512128897794061874095003448895278981719346524499889378318535486108063514013632920118835896360907141260431478752761124774116054889824376935151943641258650515077878567787322442957237157597616290306849006303002739035713390069481138055522020045606055985908025780194340057777311505180417880037594344783126163038887395356359265832460048187636082216468946158765640321155143136457408123798148169428341032260365301330578810613138394863093987318887882968941144142290976534133761805429251856650980619730852452544905175632202646270870957390989892459837863345218203523018299971979716498410598727382320007305133605849793163124022403900190362987344601885560048508546685937184883856038382303952265858400173520329592601606012018561251221896573422067778642126660277882950684906080871355389108820960221855281889217846040824307187401600072292574668062657025727765180771216351565937578841898564700603705784773619205017817905333840309036954584785049139663209522282039034657114748536048011923899128212199573783210131597129740495133143230613035168431800293593247993921307086644475874105415910589175172615909968753362360675143506701820385822498401403868813313392712788490312221921431099314761616648521416352253823014442554182040749003742285656047797412442183400178653866720313202238809627138712187979125891121911782327113922992591567997983597312802583962776110951356751218680924546335258416678198926427817336707105185296908321057133670410937906804867717166057154128591071053998755813464568020176155813822904948116415542948463338639543123394613875298456298896075057869272581337657628419649586007538293005801869206668014370634143643435827925050732688102049032869854675082610002650069200503905805613405848770212103605637765223815792739986203116455102190026087043536627607935383062432179302525255124037358048638953293918318583883252254289504484707930757900110001382599974726129305485584206317963547733762365685347636112416222002983937651620834619772847896978932466472942787750541733198318973617111752835663891989558578770003322223487455571385635153563056183882643824882362449273693085128262465019335020192476974232823722047657647538997272562273629215774336709765895030300746003862565954565603426595885256280914298492090205922220085244828177190314497372953587120964012146979652901056437456026739236088123264010643674530239492376279837690413224349016230560002634788381782525387166899678537258376114656685487777927675540920679441670000587510891316487151283271090898621925064267655031362968355785806305313357238640316308496578788875824045958996422647016435769077444108403755638979704283092329038358163943716469801488516141911590894420640079973214517879768438275025737215607019065907957368203167290850542092173368848068962318538878632796404835167446429910368275807023065028509357510467336921632947716497627418559096472590716512533200814939151394057935056579240187897212309533079391542968189464384197287370397451390394072635474854844785414322379976610297678808523478671688651814655315101865000616692852289036332859830671399081765024748494396090063151795093848701889867010136197123514387001333345392849078502648403710985121358949393533459616620506876950274235252277536205840755121570082499977735390879499651515281124484667695665341504015746610580228061142899719597850011709811291039463877234783089558181722420532727485078665876239726016552300677520906313698173162794719852492401147079868572016397077586580401188432696977689785050829760910200374400549464755792511688639388982945568027466630763342359576121558274676967689252822807983049586221635762097570734790588366238482094927184861423397940587843536102403207189155270544099458080909945019434280991239938549951165952038515585349734713216337255042606783469039943902096420295359667845026745746862659224578106452605124355678764289212154738653557833532416006426132451736482459227740167461506185448303975072696508196276390235538888243187943828849768837820360844391519885458490527682365972126912758622890667882361502960882844331885950799921405381441447580219307550703850522945894721630280463242007860207412030518444747206136404820557297884347664722928177128483005952443818466262047764326528419644236743067439526742214667756957179894968371563970846709244067217606349516490525228451892818242804598057630341321856276591882522246414628871118309630374096285946720658503707310188631696215286917973104090569378393757392404637143164117527142141425210266035933017600507927211627481279482529041219366148432282963413286549422767783288456579491010390710760869909049952703908704403077781594738913169963985057268873337029205635343284222135751572701885561841774684828837822785934743261670660623839313611967697894434640193737305078829789328460355519954820167708700778916821970583516277621317045278239639852954418465626565640199935066906087141494030697113684547395054577995883589719038271547787050903921219236819634395076329404608953380149981907141811625140817624212226885723246116629069098778980241177582469590272369091788914624524801474410075304081053678758039481160431957660122071885626869800281121246592583090570807413226641867367211167803424929606338335394096463784877673598157397321722317365494451180087600796838209722003933709662062654248370731708783031764538300943250327186477087039651088069474692849273708937955850793066135852604470043369114249365915008475784519462971861243315232726154644267836170378402820885192606127154040775782421032924267542796255878357392477982131826835612940316455053355683322839501829651071712058585078705539262549576017938191019209512290308642826929412549127173379158167779792793957950173771692376636567682621719048710623157229742389347612363521113596672461560279475278299963504655614107878911511308066660383128163256766832770567839798220451817976345676359422508060491416340085510093718677329556871335635292497533701938071073991472517859028606672391477318690261176787417573745120758801038611615651107457974835000846115205439980244689169182935781621402281506379720597421663780814274765736571186776267370427074630009481528555907084511612521941187091229503777027876620794427156529497873688904024451850737725071205987802832423671933501756570734845483141601169991327401889844510326424065626630193089215745566752655218288353992548168340730945324022142791653256060952528246253305406526183944876463451142541281678241838439828263549518872079625414104763856024367387395696363682177047389240513034104960121017384025148631001662595736028408418085466724559642617144953114770400886084163385310668167234798493914018533002639955654621224245565596560810994396022019767980859813125771963723394817845467476077472922296493356295465658377762414247006312434797419331556308333961142626708013623458132680473155365404167943111444861223424893949677128228761043858059979185516024431437691913662156556695179920044106430146238456309042416209051251577685679429083782070089118327716716445498443780948338477887249481101759955020624249063722012279869258205059667872263844080170162518530235252372027153015097821861756602363128116050519405927372631063517281479089612946915337464589088310399382443172658282497255704169073697647286899937391404431525671281807647779235980449593571668968021643205565150212001945594678594674028990599958452839041353065959518485935894434020955014606237790438265178118690168196408633501748848901871976806462653148430675913168059663237935981297761338707964660052615287187623125604269238971356427371447893408134245582113224339530377194840579910481813411979964547614285588513251370623726869141874378438495582455149112293861633136636423916437341979159181967792626812956859627348107009062411280775505799853895915416177694445000780736588389146979708036087762880878145645779204587104142794412407136235536804320125186707722718879020398264273701263512953082586766311153599503473430480200273240168056557100561192466786288033240906020922348089094629580756801344906319263425208379271181285157724912403361268653395164574228513002820876078280463779194865209848170154969167326882640740312763962609011995997536724575472643897876371948533710457462043334275160828559289186425385617144563318557912304000798975525032554315985457631857029067862034643075923318282873006753521920184641454894599965399957888747579469817984044981538032277979285456096152978543611425904371232232625652618693842212493419024440665842114274831824421540703921229016768629137242881826408960662316961537698854315778658756864894012327600912129074296958322430327422995437127930324791564571177154509469811499387285175257070496337935544703791223658227223750706382066999420773886537795441338171558823994631764456272345871306113848480871234375744413828038272161247229612335818901121503065010113856548903247619060346743529319299491497548850503245061287753299283174154613757311182661471771926564722992409316519264310883185744130429527251386563937381153075804285520369536738896997977236014351191384028373558473177458094862948308325133112402045776420363634324483258938290251696172557992224974274508673974371376219519056396380808125134433632540464964777159266332005766883774059855546989502260582505857313756108290166383261633900159733226616591208259592601378413515562702580133263714227699879950273221072385817931479800258215138209906554597664932873384323642409473420981698055784505207143874760245153700370699106516679765559534880560205970502334632164186135477712827329460167510029838732288776172199514645324729363491530569750490528834877595474603781540929251228028975409980083606951364976491460205762322490093701786452775037329749879282630777481246663541810649678812934562135745767666696904350770246729649145924479295855810554059841393042010547767736002921074487743621845569596347405273894915763053677448746060378139836120110422297220011956077221362542523165751726119749153902264542804402702318470320554665193326946128313217227627919400409922223123172638288933182329395046918282353691796455323270836815971879256884279097349209931245979815304325017206760019130306537145574782988152204006691178354909350905504852290979652411800162877306477337019520633194475419835366294868384382858326331533585333683897833483307230216915060371495657407274213026245446137117522277238300009594723528797063523567227088983031531084296798819903812547066442295238310011555970465370323285637679563687276378439813504188625535471859914407343181776942031737396712403419411334312621118037179591429296287923236293518757100894887980308669351832214832420306001102394024294739024384504307274169240615682040111268394443402714899968038927321853873678965533262508241393928085057920594857886151519606894478801852515722028585524163214762119140433051427584373097935053544710841417424434190397359517953600999991049615643223118129393116812975515772467696442654034905507322753516460859284218523958653114456390690918983397602645613249103121220451749159389719369475557945600777101277365366659058723975324841678858876943980980270597391040730132690364697852775036533366948867391302991768954891120707432223255959036422368934839849624768568147506478160240159963855881756826783959397641280620277429262279798766021389832934720380088191784864497426130937534760768327047701410334974954742323738442967686163712710682108926651245471143737197018503252223189648544305170819653707561429437919487159810552406940717080051405965897727953589578733185727113793522213942000744291981727351671277485789289891890876859122996648422799390247854134864375244810283883252067448744189466335140443781816273939063292251802921109314167307843300123075386562946136050446018648890869703968062421565493963254631778851029394948520484694031664755767904877447726642701788861993025632829931117947942438161696917501703368970595262027897792485172633261811694573326016808111731624890547794753268980218045953439026996749371599861855891550060446871584306158432892959468498636316705936439555975109282504485011864555184179057466910621626019292915402071762966428042101006474938295898017862580282349786380482203359037020725308991004572300648368653207315702271144700322562836552428351446663467196222598742766281451091632406815208176367310699120521387935047261963688379062325080098174618530916875893739959019782715673310428676498780898144586459191869315173299111206507604155649870240248522063577175722683196967122205236758306471431327984469803965061624658676643205929602993922596831975417333813210673079977880542874857822834425184044366490385194192492987793480493134921052051870641248822669934615530024269993986288748203330133154144157624826777895268018754349369899173694938587186694936494406578358352547333677562923622585316683069658605208640439789199421971843473940271994709340499800315991533063885310595319794284956294548258587108677036379779037674375477796026908241549048108496707328849921023040545147663076081535263826354856021990370399037964052292914530416514567234664472536569795037182676308980779162133753035287258667530133356754375550759029860121692492180929814719327633989979275969622048558592615907616113579417991871718841109917510217932464449192927230965421791706396360177604529836209804639949588500407665267653456552668223164635358969471445293872705015713074214928054894869792267009821508858349823802041048317144006598271674723460366843739511958946749950101395491312482620165089419651625630720317408326146651401160057776708658086444723001584690258678774488859891250570138423719095014067689918921796924253011257227575699900590496319811076997209417336806364917078350540558345404792844663800940430835984925936930584184921439613303904363480987567474098974704794744283983261991584264532214943073647528175302180080646026521429450777656361156561702427792851121116403814475887287993361284100588689976554557383403385889143789896381263322765126932328500119707503714133002250597608144430315721543991801545358123606421128447825546976133647579440086794713324130283983120050224244914052264398769786679866957255783945112317967318116112511959505599275273373907374294243460487899093611567539797020686267220785581333036451120250790364881116874495285244725578604078941416859465226284110814887255060910467681623760664573203655448889068616731534373188551980419712282757016042946223850355193668454802596393820476416138912924420520225281737752198284899928406207279084813343024154030470849597798603225401426131067378032490816095746840256720604623164846951946718637453843823543012861527090987933297105605995355203403011521230939970905832299007556679555365469920950016888141537388470716271019543676112396323410392440624499059512544391560942364943671635855740416680425648402733417834007438549820217978327514179927272268572706247410097853780852284869797322327234364337148799683407653780480357910746282035565113312622451221236925474467319904396318458312481460492447722122318244787702045977995058782511093603977674174729736713821697897406868907877066728134339222289230790435666386411716427054032642436778172951236202302695941431964688656448332105201448295048464405325004236164733394683649164740364116982297183226895989512643864933038573036859935001564385685985432772991993098366633683005108992074944904883705111178045845813641283117588753888137723349634364471735848916056247523801479526299163222026691022528186760494995522140757633813227725613921400381397303463486943235641963907720043455526335818742082071562878240498229835959361914344421677715852394397388946244452226629224815724656547925480907698468030025106858468158143135215793601131484852726010459368076431776282454587140832938556103489461699592429661126221768008230265841380595319248981883218217486210036744897390978251709825919128265936398808765475067367708202818920983273455151361036972289773639997821899381996699374543614345763561195648994796191604059663475845871353262149849630064193183371427226695602902316243041220488005155849722406632337004527520687318641049636780489363325898316986417753060448747657749450339725011392483342834852735423348165859837872506728070634548764133761905766037296204069492909055780002021015812400016808098486354232878531180185055250411427496959747124919462073038792059505801199582830919971136363893467749397788004247948309401161907419675855810037576619418609473804833081415768296129956194074279927071150252062229552480935590769478221373758275128656608710994471258500451498055095490565233951250691036123249258635322860987625509002244637609229722770064700860772863951433160588010293226650157204573360561355129894575547623430444403251528883445747406581372108769457922691494032898006727795417653849040562199984461396838157011370003167079321382423155512048624692475947543260593103627268654902207687123141560391829337008217793300147137185580331518072234603021375979801124705016225268010338726264591665307958556836554568925868021641001005003823387005936062022850548644853735269984328627170789310204949568221402115689273153396889572234088144449596482982087195224537519393818461842177182190905244507476637128179915198076373673933498713164127704154362378418712607279081597311122569156222229251850768886287624423415464000887554196759442994173941206532478645769778472498242589575876549361713207711456059394463743492325214082881812738523234918009048840366731418525946084676469368173532361688047432381047458830171436850224850678116661754720289600743848261861320156538746061361472154788806826943168130117600099968847437215446391923124128139529239471537748046113605244195538178215321569334672177919220887561435936388385939929324069837771576451764001617470656240598244212463983532198484482403910665200552472297649278741103071369433253485617030114259267453368359707951131092175613804314454580775479318028787868134839728326597027355253909566764064159974199312036160521326288663709362558638219841834839072385005066360806057538745901810453878823877840682783790098840158172132566553805595258562417006986243348618604287748538280373508004890529943923819056271844302677009753970746852349932200387546129805898687356240845872100187528323570554596478595372872743381149868350430060066119098206864370672989759354498497553457006914691561326011441203840258295148808514525988963228385311348033795471295822324216442427888744149593107341048851838021582352600352797316544044726944053734623386070931161116740547203056930798569076724607222255108338662472854301616931724651089535178102657915810132843234487701065498700798901590241357254998936180346732490488593332683467076019442411178634740472181249547545338392255851686147152453516350932757200382920603130404969459206536041645211425093635231179486148759959139839922154835530571654942919215670377951082655680202296344784158717832688324037861852893138931303349469593101464605505656810814562040095843212060102013103353323783877708458114754036371827651968610581810462384541614236849885837056113645958227954295270855931857145071146833855066257476086480055459541951164288721381153610450548901297581418345862958460980189558847381785542253428489317004241518717305262849903497446895101917043486190377511339306435555920910346665444496206908872924921762258622572310454162611576513917733712320051378297364838398984395182954274337499813732466421587811608950855115850498288048386049416377807520371769663897040575601839250428575382798201626085256320676986955991195528267590741410117443694512699495059428135111593999140863282476566304264561343491216307087982872370805442144242399304591739251725357956606316219911993071304300640840618211759022933248882233747334788499456321057408523921615138715738833776891885800695494478947169305693108118074718121196461312317127889454311551578508481478875841988236583007529086743478098117597952247798700931774133056541398743157104065465993118687504561015072961447965224151549640461030525656155246595111849949097670007404468392268260346257200120597505362814125292928465447307119619813962668101170199009148945548490357767100494270520828387778969804703826339450388320351820463857380717510302850507786818808817704730905751171169855198527527852483680322622986025635749702081798785628422698176986261372414953673240960738769088028662689465754961068058023016433511345910387398963009105829383876732413819670540220559298110813555370805014519855014899760447515672764312716430996128948065873071967236180602737286736493712845298759479603934841138784684992696207878564605055976088583412335276807605189678303600782769901928245999162419428983104039085953962464416710359290895208230041139888760738419716616252925490237429071776693730689181934069286654835808915959349466975028507324834759738943507301963856503654516922748775774157618028992944749064733032553485377593633338086354739789659278489749127215913551077283111511933067044014404922814360143561933503700167446272038007794235717647144829907528026360237537337260579912575609105971494980540989013959390680159983918831817698573287198530340912289393186803710404365397331216509771584811509440980102190084386355408864535796181863123739384690043466677061882385450981038218057494051886570708048826214518699118382338856014729039767046485882104241021445940237946924530400211170635742217617524908315420463319665188309008506100790394265906903173609703426178951682384642265047819588771845772408530253919841825140938180444444137321979958719757125040657474764807499847436159278696487411163098837349647380328571409910495178933472531159972308012098223849532796339990745595772811013588665406546141699942588307605898361871153464068041114583521056865414556217250631263557419264571938774329190980261361373656372860273899693477797829189473037992270169637727686800472232487610241378275842867879827001606299060385472315651073981693624688410536868465022881618538630093562125508856364335511257655862727096637301464311406115535597000869262963351130816624595851390608938395185692103072832111558161084072257096246166060343787452064159241509019922880183177591732573817516534744466613279928560101253332738845349512448338531389984366845481612767540836605419482605226999399966592770428372787535662196559126711416114541624727194505314860689230988749982970855286691450907707863763129492565919335968961922576335472897167341122748632652695208105664974107812647288859562903119392896945859817440215156663268847291401915002490739069564064781665136134213199395183057777338443233592702632439763098460629718405028289076339119823674118415459326167083614723800620911135740476355911277911192508867062417598768386596293332572601822794925950609449082300386123632372628193667833567120255131550437521198145935854584103460861293841579454783786031113733860613842403717047931040715140473659412356940422204215948281056743858790198149600981579026027740116589449288807025049094842905028350574498672087762240204720717289973786752108488601458714272948147405908132915765567251005823998002298710283412667890747153240890428082650564743476928666183127460458053997257277335462621899281030859733079736578006194730905620095658665202003332436536373561643847281234340046135084667985125918385949401372362613442259515287552647598795221364917107401962610668780504320377080073309251195304331778990223865697780467352447125638372335420759908238866311303025237689709992648917669646060759634129506744331384436637170893436591602274361853517324337980892638173315929999306832264710214662352442923648341517536325831630661578394437118342512252098827767043935011443437395183303401194571591627717038719492074816275142658694884932528198047863619813858974133484999998054790981136675125991160027563268601500649045938257129058071290153632681259626309145357017726935913055494737374577564151884034817481325913905537905231996419208569923107878941290862842097134809029685687958405483220942354168492952233727065835796105578104658129854128357987904510396558438531949553884735493575701071985174298978301264034684840935259350942982990033055915579746538068093896809577142343614962153464136569293859214592100365602316353861537472449220039197147341611529159945950483840614361933990012616538981533430758898981364675920716388044986384148905563039003489372853131021287466941838255950191741319665620309482104602435710778975626737688765028415611949510013806527464661369465267601628665869829176250347850383305085563621601179447272357832163666056066722599123392818053511705519207135504316943067450351731214750278285130607351809219275925664896744699177026792536585235764397681932279156319924751941831885479745318909603559767183135154662306085695940905386828805809772725769346148322283017054480817479453342005999746823816069126863161777585870083712440432501743789951555214734711358020105782346375064081685431391709176530754515947709296046700385582019095098489106426700301376757349429731354877446507178873760420850717371869042345203047459406603054955463032908697981829290716617242615693838053894778591246729516248530198254510672954406072764532250945372703007118496766143407065375247728519440126136054658217630104593579894061155879123159802580412259370742461399804447736000745085920268874369741648823980756313513224829388473742486408846947587404559021769509813774200158589611918549760377715183704944736189081260146420634045200719379450459101210724492338177667272425163136157271336588021812301069750021822171403856347442498340980924153107600005737500158940842231405750927672026266489150024763297169437677815616362477886329844799836631039563845815126914698064908518426392859773257167440749809698400396426182557510852705875466377170541509559099312083371325208644128931926342463865349124709931111547958689634004268333111409816109211732320519673698310673297151594067166256592662606000982783647439719670281291070608739171342156130384345800020868966011853035032779717770146981948603575410491401868339843358912809595848826142283235835269272833040267761284236809556777229616372630658054321417490412600850584629655383600508879586570211310593276175568533882975223179030277209029829946764321532335561591583465594901117984849700151180011196531500279925827809054847524822355834657140575866379162188414599980869820186352319482792216050271510698829197462348451368403630814071731222317113674525465968988395812300261373851870171086803045531038077356835184731378553159941550319948088026235857679873354048627298281076790440729392075320147598484685098713211708085052394801080855828757803380813296002912179558507728267180116661263363954439598914697389870319587304968415813579274635178334970302545014901333513350226590679789064921579245905518670238720726782487940062772512314910332037696938880688591641918934810121900906197327970322757762566810305044935218517640182630149731298053190486312943745517148445086601009666333170929338492178430885633040788053402245731502085610021628704063992609003525448160027982636593909101655776285441445212013311725467679439683654396923272461126377867458570906042616719610883728270585130488777884651033996968698226022563316655034889385861585537225087783911764036443271414330503044858461506060586670788130836300696879816555698735207867793739609749421859131643006112411467160321239298002258702638719475033572639991046166868755516350476658844870032550587863466007450715011467135998831331569047594398505664149819448130784792688262814468424737919426148177390319446442047620304967790764158044396186128477398062841892442851130298135836674241966628051969054162042567041945027252046237523187490251388539894647883673835870013357606199545911017381830541916963132906317300083004753194329907997840732617715898200821693360818688897275921381318081483964080072601462436111122925590183519199797422669276251791729453890854632076063154140668908551164531971954009295250876002464185315132458467263768663021861721543852722188963933129002847500070273946080464141500925512944212775857434672520907387673641566661646128439045867463093360287071524739011585734780809535257941201283308336568098996790975937482587009728853214377990385170836771977613667042060703624721599600165926416162447474131451224754715487716680260498541575784165742071896949793562808622366524165225889181980915652059594810656533025857790614906490413011923999784270733664735694894640863115599802111029639865490463766827985961878683351536515040167413144190452836614406857941728002980791449498171263268300102444531016231857596705804338599962060839384138162336626730938947965211365366273129696077000596077004561012503861994418726623899784564025000667929653774154374931588554497545363522916306397464731632775578562460946662815771703038864305787858034306483546549342908918403638529701884864325322170160764459200801875190860783387386000854320564184242054501535270845141926932187451073465660446862408573313086325929677513257115437205020297919064046713907504950787986656402623220426469858926813404748570722996050041824476022907659531304893919867112314454992766371961716838667589310777374884616866934589636571055429426356292855069162387508335362993105721614744554454004124981385614197895897655776566508881101916045506609603459818252769538742230167986375714704735265164029888320145872006308338323340405147030772348659197512524144699745394457782643968164393567416846913865508060697795165807465403577368573913015933345905690023806581750488322492004148075210482306313413821759045945533045683631976898745379936545463053938763807906052836625633899748309677350965431629243994997281587618959556171889532073480041317762561000927737041341622364802864680502966293749616653891666152051942267269723823290062775447199966645245818471199698810444054520271296856953106215307632692048081242138348786243715001035259950117730089812398242382760689752613683360074586757242068567880155087804356094736910514048222483679932497930335781749453548147583447462773112212419142979082702533128782927232267554897538035032750638510145073897420160104987627849523106447367684718085087036400254848311892114309744773686267716523594508254882471620019048293813419381800392210918230489016502601222028485874709477435202928979236962652332845745248629827948053520985075874132128934913278932273625365258597324215492873868221132033817826552647260940750785011616836885417573092058834007585072231260215128012361972006917946537012870858719351801606540120840680566940819513435093502024230399599485628744353099622736351911173321844019780264291963009838866433601869896357660957746240990935917105892217542568328082980037448107884345315468423656488181557385924135795011551440523411621357500163391370434220933274020168266469190371009570253602359151369118826796311879621011471359457829153661410072315201255322397679069902378278237293638529234470029604950588874444232746991497877404419712620485786677675312629455480617180245796250753119986855772937535876813892474824207639792645114868547515734051767625723674120984421459341556901624827211680947661868307836072722835452244004744506868111736913052766924167165535921429748411150074801590391451988663744822348742974622770839146476071046873148381361921099094165696561067855493805132909839751843607832151144659240698350795307075315356267490698979182747713856673294367791494120756689476539380932346442120886652177307559836012511322135385387400657080814340256576910426667811648745958132480976821289595260739777796509558148632628070459106041767465933733258855401729652981357592003397264294098473247032673617716623502345928630801283839394867580159966890396307706180611024572540078452729562214413853068650179840598921267203943885552773571713861104310272009174600031198271583141819306968211157750506723925552151272709421689945340627240463704680147260922901848424681037051991608588146614259757381464241328697909711061906532431380687723196981623305396721344394126713741612247685134925142068470498773963604821649999185439281914512511805169480816997327053856941974621356226440763771714365162398841788510651295459047310887607273913997669350226653617220975470685824697653035322732192271621818106357839593323914791006186606740991708386085040629857726215652637054623083464010783595971387325813308375494868278399762230488295523427568444122364348278004582459479776544775301787021238482512730803582697306553382730969221359461763253520571945778680419982188640501703457582190291972881950692903797527752456959056276683587022453498397392680414121419441120425238633978187017444473094573817076616600824870125292283942969635999105858859687535942769596663731533939360947572785158098502774734759724698790779703589901303995497496056851251037764114393344790790171588333268314129379486207472498426645416666131470892080814694423444148389761211040874409217422040566057905011806849969135620045797386684819191640390032806776433596861817750157474555839632741994777243547700158951306358968947401784667729092056071237725144363139799642779155692157391412817223800012741407945743231557279990300946623452055572185893814339641297493495544413114559003453919526636279194025895631982705247556425459119343892720856996867786544014048008938616297131535430591740442691848419080026392820847457458509745454363500712741452747383747521745399010546411345251746469492471914406316638103763386096240621928428249885337408172732895776295064779892490522937821568142883812520319448333794770260482614547188071583031361498057597082568280112438516901747864950788527710304739592184417841444482038783352305412198855622774824302465178075519553457475568991323078696357380519617948863410399358348191141639019006745457773835108410436203863981798383054540482774287976502401643275287115814537391103584225299754111307714024490806488152675321219111823191183929849930046516190562015948295523694179089286800038773204618458831690098887321301948463291529985408569989394875163544664308860793113034656868973216945037462430761864142009984864049286239305056107019452233484001282279324220953253485987501674376091630596561774585296227859298536351308210100450108956495637136732642951832824882777281911439754367723199378330351730854756325612145343550358009635070169681126245792762095908967825043658142754178986007954462564876301460112998777872794367620673889884050905155639111972779098025609576398442629031557737489466770871517281226078101656267554248871388827907259996368417218451672015995162293636899675256007109137091656381460929247541988512265148768216566262958218016986936686068608038444904398352550058340919898336730324211782581608816377081032050052212830237030554068866843791646690782655874293284039227489946371203683676486859992900034895569396206484665454528795013695878368830508950167895284951772155999198335890692815885203852473376972453445635866742536013371936193821287778319401414356644425267408280029184832257907019999019973257744611912422993944883767730039514871892316497486266658387374814929261537564739237560577759732801204168637966034701272643157022241192985922653036279958914392437961432660561228468943691606845381663035198435470537650361541663115922757140694066998018025853984539037458284270278456659657891841347388375866902947922967855525400562724265374445161307433281414619574654716038838885496973395218492611793861654293036712472853538562784550587722332403131802532669445109596192630044557832567215526603047185133158670648975499554522360199239266363346336214124651689746129341451095134256451001120236337102658400900497921651421251512964279695584084331908934645024772010825511417901667674091394665738922801498656159534184462825517657323537308724930748131812505446171359263480109147882948524375517430648776323648074705909470239110299921656157697939433599872162682944850787459326590621506951368857523695726706792463055557064373392351502746951725734411004134331179552857073507308692619774267067903488119379733447202279157263907346048235605291103224128257967006076127984272316851461379182631914270923773045477227807948551812898057862814081479639491252615600795387437534955929810791159802927723160222738280557130924646467726299713452092763165981007189228412685777586895748261342811199850472216848637053375416241797955777761691618635314607514668774810418031190394627111617812159132736144486385136574533182602889374159120634803919584228399073870049535454295133327145719173482664055619770434379654986158915943930092611239018816578625033427697239670468974911898272139560463698431621836631838192926630745390041933508726226454225464466835935989706936292889766073120255471856574320685440401756206924845043229983106121682769057157315456897071533170461745536805225566211620525881580423927356069565104791344134435176767649621308961063645475812158961353543636903641560925649706949808652375373508793043073361208580495890249182191299865610153692015877876948394085616059839839413337559521563533399541448774810872569552402432258731530592496172035825070546514769032366683056083884195303434424563689196654246616689896296168201388919075115665075333431800380128394325456618690684654389010636398031527034462245011630317075037718756043741078334798056262865061920422458198836477561074042035941295414589101955537633027292201823653135044073962226143581268182944454698021771620689174744214854601328786869791295885875682057551560709165237952093087491445850328172883547023902314671103059717923116612749339838517776263402816713020175442540707998302494801981245498259515687088281984823794430317666857804802955693527019576402629431382447162761761893856646146222503538395393618318953833578114678480755617691306415813310364167554992084451321046911329862155578463830709099274492592252599795324485002483174890819336354865509692130820512118014615965234246708640109357109157514877374142033971698828070007529010373763101430329809740737400848221218676236593011145026334130480520312039304862609938087629331995213405608911639973743954519027598135958459782637702269453940049683567080127692489365441317579668962323957146825262555534693008002271157125622411801831802004988462237810510577784541475639953932297543251709806482629115149178844923043262231331901322015697468662213071782349380708830667379174466664825017900532609022539071944466714215552682247830393743609840196663662714966383328047688688866453663821512302749186116813840785254793809297204644422224834633774474299878083498613169164354795974950760574522092979244528944587132846655680347483938726944814086517295226776903733490314895152138307328791682992366434853815086700207648652014300078183044915699520756852512168347148136574447653356906677923926414219400038883766911072256868806141398035822721867549744039438336730053324508281482586758234456926754695906773973992639524704169765344150797121271368805072577204102074037201630380826131258544679722074562234761139204691259983161001571439524604018333038914687595131735785270269407588037328114387319030054748055105793889491699548244903537294040547381554898072109820339949087043869063844460606159431130373979385499714868778763638892117312295280401948439167602394089186108381728359636981449280073928039394081102439140751937814439938847724184723350334775360581867858841263391524188865026645727631374954433989296246109149536643154399341118959097397845812496228027350036715685187123679867521199424278181828364737106590406035880566974797187917144343377911917252911525259828741923930686500370231478234579342039967426363113945433463419568736002859927115070814400566683551266053109041023273190938726697467261816078224873778996071473696341491341787108397229377796693849338785580738615433326122978436826245210398759450618916314288832359596808142083521324141277073490006364516296182438406911293220792433130471731763873683131466812814188643418936759693724514768040523009014861018804770990111806272095837389818636582097529042132623046681706458998463910079533852135019361541575172393428652551862042881493681478768188321912076210969200917447697121031064753344523569842727992572122283045721953591302873909026005159289596839361731708181103745297204078353229327508376707158550287406921412786807433003824520967642909858408838191651911779058063200932765044061869486298805407702948503480416168931272345694558969225831497135396043735867353272406023437041196297144176351024864790013331923091378968224523993798982225060724425687442131099899251474862238895549024425447274233393227158909931761893893570177972799902205389069694941258896398615370290704891845675342357467426520562918125360466445753691030355453780749881145427756093859309920478153700258392835531352876649564740971468078533006681138548690376045045928130951310510787287556285656927145229499930436712248966259353432204009773858753662955387437736460035998496954145946873944112025264507327280010405223975549821092920379881722778542201309959915897990366726559945649655651611675795544095336835782080885636655804593979984179866899548005357631390042101706855980416422973547287657963127732512476893242585699328666843091133787258589215655747650978463383103519428727712510760511814431500494951325303637705882366920941399529719624032969763838812754862485590906346612805558434245669651768156273461965033386558004811022142085836517021903359863124393324264785462949222160460850052150590651399959258461381453910901182396807771363970812142563001728899102176119291615128989262037224980415880044153831796633979361505270806759095986931765574254573546104242877076377612431735150960798406574618987884719747570480084846900842415591804114933408145449354833687986194543785402293726260808611763744565221690885855659350321225636134883331336219882145070998462553914552387214916582823105630413396068095564407740674776365440335508015738110266910575786105729841081447843032057408995433818644076966409412896497544671959011840666148580879498943754474178592349665592874568451213858153280378885836029049034151253303486423720724214844159754441785268264074300871854837778547887238384970923590417865653996565225991401185499575519676762275064700886084966568654362164714525487433523667172751803640825309228860773365500795307477923840694215078195500759689022883230682159803291055202847287324931569195578862205639059285743787443791083795720859179260132149353153453332901880028672193925085851523721641109350522861983349567684839484121633858640066855475139273428303332868529543691664389045797491941189220367007445549760842460003813687326773006664217149610514821843623051029764648335776731597693452121731409822301090996024751340526595938615652742004773252435796583801278658888378528924494716618037644145520916619771988044130294511356401438229359454269071300289913625963401657244878926758338909439243439496142477811438760891866967567523435265179652422423441010743839473855046154736173861813608796754909755731006293733649859268319925376454479380033004741514170927567477075472041555336694744103228290098590971695241947539372724261389551805993364918006923973121170593163951421256683792332981733428715685890734682920991625262081832464629614903569352069430886130702939699263383463868683494188662724266763874662291583958669348637588200705832874499852065676679031354574005537869853644866837412997579702559082654894332393367109747202729966489242528001552613706279499019341858410582675774595260250549776653450156093621781652343670670095936614377955586003180945592276050514618666662173120607786138228023514351620929155201732886852201840470548831241997378568255973485382291756457351581157939839990255737824268361505541138728796304878822848880178691972569404189087600954876650785755077217897888889233849127320628861786082877317915396872696955636994636616552522289739018674452207323441696530644768245792225417397413930212357426816334966479050419887495877906310400738661847635188116556517508826286596060558434204275333169072089518092698510728207144339641622533136562330840374113080309252932714938474103325381984887659907711084020114652051469325527634449716409030899797757476860863160088830429678471879064021632482260081629073219555055223464028647760958979458392943587493751501104026898362187181302558590888657803901338840424907865133304894719116959018933112766946448440234235773580559402612406511254320745260357535886690391170320245470677913171733786730950760620938436030699599599112917322755337870202668575519528443193440094133323395698207432996182130310280591936391637377774333094360695580925867242373844240831488098857416260863194907413337474751557137457142816118091264817992030391531772137300222554020785934585829486140517873770655070287414791463102348551678511636745562951766441628461993953161291660882067153450851037461745841002635613639161880414364339956118651816821872282040540987656010115336638128802903250382826717370360333207744701906512866498472352256154991134501316810545964249991287124529989627640565573110137973069001903484603911834291368025997941147225353193895803908711721850383418825171495525318249155781703786455021540260409663710825620749018213505167958010074676378781712179418046257298317761079475847733720847029015844494397240463002520038788456547516231841243552393771382597527581897251784115620691264002824388796506393493674906061532076196734751309131809727682150996806469042958660100425029092586209086840017897737558529289443270877223231702583766975969202382642510129174203012781458101193923803938803731326065039375498037138124965336760633648655268319434247181860681418682768264840881190191372316606365338650420681583733869725990125981159459463637395737156386894559645546049004071263591131834583558823751376577100220048111222474417500497862803381873375859564961761084241730176129445594925536431062252026034417427219240956410795658593655953905553947238051748121028090620204619298925382262331782621747594140522037692907766402964113712027684876503751347311313650591140904860021510535547680024251519095203892526199746241276632301001513550358494840450853849095722296926778701863363469546690892228865964461728185506143902669439012809127631706978674623823065232376228136284535127550027168411531821803370018097984394265743028993726950547733000115578028093629742805160659300225525960784615930470604246423427048205884652679168089033149927657752399840997548542549338805348476685194285551770215865434522068143387630693738446576360056133868079080919446287706184951997030026805838468149731108279407008959933563203062815262149633580329565490647298446400605702927491681166013279480313955568304356806118690415074007623038111195169465528588615398719039362878341250800236628646466547067066072983715732230013145081112145746643328795251554300929844775087271546739939553160601520545820124897237011120023789479542770832468548344189233523829095844886814506944966459393953124355039491212609289696148862068623292642833769983775319986563451295030710057724438489958952700331086010159294763437767000856679252774782555959740387092627508697000539624259258209363109682878244124598260765991957647654324007647118905356776880417162219515841967176803262069307006741121244390993130447347764402307772796570604924829645363785904794700525659647626464728395200785408267731435817029877590213639018536972186385385336823781750519877269566921694815203840753182822253181538288958972927025876618039756381682999743278647178518342657076789671307017617954347496007546430473753945846374829408886594951360317087200423957195593204509892758907655343517903143016180167023848098930501878962794049895405029273012409998859986183373849800193539275724842585872272318817413365680682550190619882536795135455324442610300839267972816556307615818201419195854510219219115785460420853533053898669731224520453243557380310772566292778595017718999162778032080319148090080940284335205175047765669750244183189386914897197368601863797886512380841851229367848057360695964485067400305534137490731457260679174618041294738295822699191089676824872594460614498372417951152199901506848304524133567553394514851718929264248440982325916683838111915178339258036347886824074637189261364340969943317597186875506630351642904445832384783568747378588507957265374613716742563042114856504863463920025523988900444281552086672660974340514182113571645683949151699287938829416646936493946684145787509086365605830868605245237441301126987602717496886941684160476445214976020093600158631667564067972897770548110309085071966853175062593465526132014228368317180864217876417711582100769076456127037682276303184981481342325677684369409753228106289802466516666208855174551219156087362256799389487284289568104678325673390105607814345785168104665906493189980367313517495809992290769182101707589762016457734233265465220972454774015789522398869395300963829651043543804513925406233726557954956591655830967543410061745076785212662783445997523302989972815044804531661096735418183070830677673332619125624931355327278129802664552184926977778443813710647306153810117535050183165627625266003939481283296636609078501681433352966459027529299044642235645122050939412013565486234879689335740945146877675944839910537705472451031228238839979548264089931928948739919841561525820642838451479933036307447443493627476523741424971124109635749052644033617687996837906202519960626678307997924023733270121308288086665927952419693570453754432014435122821324324221054395182441131963478143940086649496621721269201025350449027593462411270568363582042075351353850785520597773893025449290108416648335645773612966455859980007432160670103097959025852572739835761718201181138533407491587402152567427496169227077090978006390136128671016586107753344833594375397573055803222823388781458226718991064984395559216295487607362526562451504628140940367932680565616230221236330985855491982609488047623144422947513901536879136459041235258109924162603380994723625918967833513656414445557938379213455347031296013684130272530366140017394248913732095124454229888453985510087181185305714915872084739734137434571338420817981735482275949800247113905826341248826982946855645579271508039495956643989200153367882828871657916842781169548763825027155498163343219983124200563875524583242685375655401806264021143357575036865133262226153939172824345426551271659707818374685166340530244985006637719986883557817377024393772911216356300589981207427551145206286636039276517545319340853838781670713146819531149857337582719015543160614048954612052171801205130016195099010900619778688107079987458189463775293405643299862894824996860590727541192831111801954019312670194476341582835100022978648712194912173652135905685170714539421500587696091151449792210951039964575765140154123235318226925352171528046905315445923349029376781729603518394918100431783286864913305052952902113346911638729720091379696273663640308214796940711631274909628310946723159798825436093175459443156500742436661897188158161150682496900909851109588048166355552615314356266146562211502555368819182444087394528269958328278097922314814368370265974726058506641900738917932272056339920091728499128493244694421996165282437529572102564246796233835541905480106265842550773123426474502049516493774107052168658810133442857799504943671689429414251950790581001151382578817758305416660097566862582883670596357834224767594024264455571376900141989801053535935825354478679348315702345244443065213120679964700300524514356813474542844270074263873436782180818995125875592199870331089854179476355235449045328807886719116221620898088893475445707094683961668365791131097081233770997101438617217514471698288696610228981166317436844796654480958036428576108040491678090739766166346682554202300183408359606243128973969006684445720192379032563812458993709830732195224148893372123959888972350726107014994657420822832156666761730564590086527162321468818971425677556962687100613809578500708784753623449602691516869931798101144126484265601792516985279609058340269744064750185407335552803986808481290176992013322920155249884575310642131461504201521453902299073270520954255143403246977264336181637639333037968186664880772079767380212045903521032011656893387978287609458937582103276269398517000640249753398655711090598814941937463638504262868497194485877984252847827062883616021706996704036218456702520909723224420255939668244180352728157492864013717966772790131307134014091224104329407284016438470634779977737181809760302290491397223536148549263858960696269991649358191149435310894504296059371946040860170380393650257607586698690380364702240740834572411460233946752978287813383538707428238791850977470489898765630258761456984450518371606345375615973996900503726410558510403490276112274425148171751262012457806933455841498698363792895027876247621841720325491251439852537572151638654571551608799373748419918803206531878219477424522545661436867877815128412227441226509556773968758492033277901196562881898118874656559791278050997590990322093579908421200635980683727276234201528664633632519752250472939880339796321007626197720103870817902381003371050377796351475971261522746266763996603422859707081503959066266766260126015837387743746505683417364684949379619667956324749209004362001018593653081228400703234740104014201724895940409638283801948016832643189677051329966208789696083436979039919989107301676043302432206569100064011398642769467683664517699620595724256589254959890103128281639579234024307599688330629989990288028991075357572491013566047275229938034213143181426370764746406400083062424619048706252841116920962759150538486235096863846462877537007869932500165613539995375145005611322592008901121930358105167584706292120431023097160756852915199290286800766392433089429882731802389372444493753514241036490761672211554758096976758022389675073003517475264761050132007112799226245865963264918739625199755889360386691937238491148600650691847289391845126809693611647895052237505383493358898972342533961910895049284654076993323084124153738137172265230623987198804339894803291489713275015258050968284277291470376063372842489193221620264480082137095301154689241975834359232512395202870660623642118099068880496505013678829311694468089820983070859997338655464280910503447507006908688160215687012092699785919726130306968528117472164777787650201240658803113903786619671263560874115188572510174649224347551687168536174049216879983597111826793228286544635088213226026004833915611918991038255873595531242757729656316434944812546669210602796652357939775268001310367137527557735901218387308633346255434333857927619581473677449390900504520403935280950789581610416857888789620592532837209808956712263243163738402355651088856038566945389321153609270626837221496683419908612024152518163542666887832986030230790773569085897766473182481767143810393072902468972900798908297119122398647303492732104996557376781761165345717175296993438002827508669265244586266154504052038892676498650731347052522419396584463864551900569236402836125069770218435797391623917283134128444777138443361698460861452037833024889721961859374224492218020603290382652069348766042685916789951338462921962178995185358139421830286834674372481004952310867891107899670874318646351771607045407982064305140374890367090259483524480035356619477278297187947595086628672432420735897388106928347959083599728880252658512738019985634344458157345009764607246842475057755715963615595974637183899043903771782490084621182439455506529355096177162208947620263939837658814626500766905353896431768259765680818865932610376588000570623655865781744557109060604324922099782909999579545344029545128991598818051713863217164964747617523887659276436867189952629373017294340808544411537400909752306934584167189999770119269864484546307836102058006068522023760164872052296747852611742137117572944389722404986390509007167859664618563659634634083081310986663043436670124043237853172778250135424726871057522185693948572014224461892129975078503109679032975243449825303950224854759086765041168436760176590625720181442513605115797901569508401963764738567294561886949172707810930020773823728292490691912851847177122959706820654096314514896178268932424034349946639182339161123040919379495854514266349529370180638017579114946979281408600108297214495723353310672257086348162575798571823412414272284387421443620731902461912423352530674202838668805963037844245909420041532012107642951729756956439878286006739332058882549960283991871621682988464532830060195278366259822125241138495048020664552525303862177064097528511947066639616076047268130084390181380105169177157941371537901863495547702069030585060025203245144580724743701662279457818436038264766243816662253528917693075580061126797563432391128236039825106390316765193912650216892200499263619067388390344957924974048866944019146089001174277462702387849758336816057946154019771487483915099282314040662385866808602087852858948873578374827497667713000076688073995975386788214501811314253125603743596368148510877785079414567582944871839921991672837485308752064462491826581461382011957962299682014705350174650941606142151467369418591011929922407241346468014227512445923776127960198736773883641246090411019247677019546951748246565657544450627539048762881529868225882180176630727770985630937358559349846953872111594305833993811009556579797266903744402535661067853881558082432207474910936039029700879275787942066502266964665498469104641851763275777989125579683162395346012898923401335773387287208751186422695109044866635801884619224176381063481672072693910142125775411786701048599640657752594841161756720045534345689761783709123522433349860764613596378451288560117714672535006700566727918718773705494200800987134865700329725991767336502007923777976034261323293585997920211822781630802858606746261222679402296004648928435113251569826634809862935028367206285486722783193441887411416435261429205069908445598932180807821862728066020163607938908071680088195183284793987583425532260127965679109285779876133274048846438920424696671864796112722776325753346375008175611452986947291524606309896259580681438124992583612425350677478886597426654613861316646168916106409951724557115451886477417107350260668908790773208699643372500460491240795951509993385265352902264749822703653785621663725212589740645962231903296547246655546941520773925936879241971573209335693167398108726434936693045529478893507567104955463172069613579095102803356038151924722303499051752583270683048010503556000322848960223599333092552970416044465883939917473563789585916985353142061405893876167174302508781080426050635703605488197562137901547891917331522007336789126626780501802974712913341849225063065656489812856098511727277482824674693244778367200172502425222493219436102124347957895528395943752758021699329691179461808064016987701161218197071854922506780016329922188148082912648769200710392870770716904050209500834051108251989570494675463796256417904724468220224146007970567035125003755538242999006718310458933988584431133323395318864194566766189631105193388894625640364348838591836134436732856615778697479003362550008951025915708904221823060830173636957800916416807148568491256231085570884577984951281691663224756709459373499279812027916071873601323131117444394352675518705291104981514543995288433619322243787589464364378304202366167028403928719092113087238026084234702495386157948423809844306490513913224003929692064204097548364581716886484467180221832536880346805117612288727208873952134760733482429557134856041545026515145693836736007858998737434415082885073564469557325547998413387729521443679377986873507577787528784111194418847217672929158600281782431300877430750485309379054612888154511170452407404191364718478416468255938634693970533242736521213145796347242661318729027879948896404197522028454492455011726618569121241320649299869019452761116679449840563382185449103486641457599676366560102960138295212263587699043034553956796530623056758142556961982968834156022971418745787576647875461655935993065456052916521357810157852204809235148921690444329881495674507534748011330740935105956954453262967287467078976260559280973493914968312437330950768360563876492686037690115285296389943316650390219845329239035003139855002708982176475766809332469691337657487503464534171247898837917487939779900128951189355019289352529762364356592473466678838190380890116224351140356685733157046257518515466471411061006130883479807773811234999158345597208013429017417739164482481319267708985006769502609998441543893490199129368640849021395071087066155105512684788323217244295067726444811635324570601687413844552400226331356798277907899081119304461837704365129311589963400154058648628163325394136340065474901959511707336215038844770113370156346403059351686432780271493033344463305647883064640809529744026073978753047611769872727452999774151394089198527161403914051011343721609183415923772622976106608414832331338499250882796282871131594766958407955226567548569261991051310123360962649414858182040662425232623288656323462605034485501799727564619485187790318608311385106700110117139657290196228413509311867527007378467416534565651819694832911683179572861295584449381659726397019635950310655712305755876848446967052088262270995057449466841765420682339298073795974039411770368124062958843697087912690017209020289384879924565614375960617143237889566455566433889143742004446698138684428864808440183056715616184974658077139179689144501372681981075906623048154035222750571199586372154018422631283032763894321992347040733201530797774407738834017145253449058981356233169482587214604112858175330086295743581467718400974304650577094528543492658841684615991552477342434770354757276190691923602432407629829465444816861426870714348914794515091214479228512844192594933272118636056447303746085970409398013391132803930096676976142770038750190723375829201260561375759309936270522603146386097915160304555614925700884090868855073431258760636072173552633644978633400498853305202970144414381829756196269354318635785936901493275305440597604363355298557368121222094276423113168720819673779711379989982797765318188963243356235353024254052255154561924093744433399073662493357006669053543534583582457750958322988583604493939584077652739780628053771901053747053257105082252539526024257522149957820714668949461664542845704181705184258646451079455792773799642864357640723373170475754711511090660455562411238782801100955400182645589746712013453079644973957162484037692930176539465894890382800539987984594615814836773374690477880360590735723745828170566821863695164959895535871149595173712408835407285057652585752519412262392929458622810208996915628570366484715380845141475750025831734480852614789003750701671496676291467465238969808348177126887827925072196019310453711212012391306811205965174864411151021658437158788970355549488230483344674755335314350192999939676616542722912637312411183018765296943495374590919285026643743300330720926525264698056109899679316730414050537492864741318103078756944145833311668572998012476476018057213429970140026761535011611631373190691780501820571246379986875962079596397274883166936286321926620688789681390910299626464836255608528071573650439936574817161648170319019890616296100837474062197999160064348397450669383140489281317731655915402431949603469857916378055500933957005740217727088441475306792034683399014690410418551863673258754094515048550113261714561262129207288302037315600796802854268590465114259948745194800529470027043263575550393803028809673028045034055711395595018160642728838720549882896271852636863618844353741857172288151896691637913375579630503868230275119554699859704575015502535170629105304985973661758136624572656120873343477310451952482912963852411046614956648028234942126014715005217105883290276383074078911082091524953272210618885164141775261756155671424358068078092971538793045785624113901567746011881506178706512232333887204359501079995130263977965814586978240099636040136898987956460141572215093474985042010405368332127676553032192085248290637136725191103664262070780367117073042002348739681971720931337753599788414462804842726200565468431892404557671096397345205065051846440695155840109345654054663788475570610141506581274613610235942708440322782292453799387116989622050326331704312834862084539131653473516239014595924399085648394462713644838576007214166821051749796683328406789886721769497983935161696119395271267129472574761024067762869089040732556548639666822072085239129924165244316908407733584878611505337167509314431223651191027819666411668753125066568528939169244708158011076295791770306398749832090539387496227449765367095113280883093072309608399269220510376734859430980060216352897070360464519497149762157548311217153878806293394500859959762613310538984674288023074313159452041172491694414122440813969441031569017848627698027335879035298693120152492084460620542007737938830800909607426183231693306409412872438081069272928451975943738714309195284608150082755033533694215933072254690083150433390342961179198256639776340906229391929300674961643627972221223679397358034218116752444722767029319646467455494445559584330536508508103525953539382631885737322329743215946666806058913211719776232418964376300769573994284816273138204550827989692910418374825916899297606184802110672855715325116776091738022554211826142984071640134656419428597987588510949462543283280835287826620706374132658579545860219027529102181640748218462312333508504458385868781162130633758560657562405561332782523187597033306336833045067271903683963993945477099402370686807835164827121134706542143171860340848072958421515085328697146367245427131254919944072898158017001382412143653088930085874522945816434491120073541316890576290659672928333644318757325677794039837657206202614858061891114689514758624890886791488892173026156561418152606989069669283794069381637919081248632835620713840551632862454938010648279856331796330353654561416449824542067347487564540929963281296318782934353822266663917375097533226438580561027104378732172329443898611719264663587062873006429893440059910053493965638855634045124005021944368377232077271208855506922421497584697606629900839543152143663976042061521399674791358630480233245616627824623305789101225040355230246234322413213845034517947983280448682766474280665952796490859056595741106483592303768837995927486822237334286939510519467392788661972853853789754193954466874454323071853840402777219007865726984150337718111005323629846893887483530877850726196730840575433135760574967740653710519007525287431654923608144027570699134296233923191855091385989252979471442194422832049407844800367653996835663764221037875635918840799079056173629702066327519620613966879630170144890758486731521280433473748129030790561091811468136980424527407623599649579971619240472405212891393467380603749063112849452968726345044447549549849369441696887752557542706530501807045131091428518903959140382415475809884573560257157239635375711784719622258063214114891508477831612446696364257465316166880596863894900411519705320183420615065484695668704799263890582046587533179380416783514486621333905764145074504457380179300121891708911113313743197869204033195849314666435866885964412566797718993890034596147722645677763244501573228012129741504001689457973654945277433947104656994877602470490854178822335257470807280799766439411390920213809219165248231431888320881717370745960150536590170517299483037983318410197206058647374958677919669987034910855612342409260407425159153558431985019070324431145259328573098173318020095899938636250465987683296103725038338765871108927649052296728410554149452837101737716045351124183668869983557932791862386521306985045619475094920837620877143953208545764845772468062086106589186568063838875181042607621863208049645819000511270636427268841099714765403595931976606638072832235116953922177798006282119292814859889910399522569754816013456168900428292829377891163151988333606073178984648636989653518004900162753375685080149006356973550763253964565381624617041845620467976865791053102948386037395195008374721920549379727897011132240431456676244354489349046822825550315320327075254343635888425075358014283080227884388419188962536023502331787547745995354039186553781588892814408569360896636528895861284420951705981565045797198419239558493624112009748227823520468545224358371108809255477005538934105216564005262855825175874485497734073129920866110827121588188256103715038280474425684964359858675228586117447907204136451143051704538339586850259871381439485381927692022037472608559618164146585330755020605600009942139566506007646661355681910574537087643691111768057367453848561034259982791263005770272471571425919611124329308386786159437704627073613621998414085820444547763500574217707781300847743486306573516029846132973424679082664958806499337344922607899038326881184920892957429291408712722238957685466047365435195733206887306760209632624496036411368772650668619945227869469582878791556754942768450153014078470590944407621414493205099702817557875789056076803405039721932382393670223203578723339860620484132642285152592641748910053387385946805372114731554797429716960113219791717986188143625249786904908474711784679713848233281264569155062564320412967688356527190508434975228207730278391317976042824728034250584456029623055006441207369350234867360889832079706339418147412443285186242170679578847469399475574818855475439708092200582765652770736171145932418611860363102570320395725650111348348438346089299257756180912448459888853631287029442343203842889485483504585344094779575223860152509048404538048402637885077036026318757825521357201911312317329845397769318369435690952645386984935399788761449961116762987099776892527431693908839280165875020793095566481245785132734505622184041524207687186584679182527496453468489835224140235977448365595719344970069265805480956400500113975482733720009189207354193389977488473104604853562740553855827510135976732222525815343034779846559693861510831509468448979905054569539311212683552958748776130494957205929247307113440257362415978881670779096844063085886687988545800893184068183862901754941833938998130000474087103346452439396152742503812997570790004120588255752822100821310447236429675106409296583090207750139687899388401275723830656453976137795858951883466377243923347511172004751521455599984501012633720940141968382646626511589295842831396300382367898040802267320825468914845530258859472418490804438341707283721463074134030721467925673201322610159692275413398779724254486249615536470449794279536026158710696976841444991754830384284385376464645020769083803453419525920564474130865133891901185331295853654123218225656554701846624704150675634143933597091161678233561297069224100157881073955394999819551213745985402647433353183082379731392844916286893159838247551558130140295052123753794311132872792481735042763928265857283140748212922311829707636590891672124472802695197523565183923299870921761182894245541854609364040127447460902786190882668608864829199732781845847881439467601890348327951043418280783948820849650773447218786713063606317846597106184099493270154317333610640700605415973112903557648962292299617881154256570671006451250173283292401049630157442640082753306136091519368096081614333334666472916311184373657275779050989693997779987133873322210292110917408056716513670099512751128126064413353957338826280881683043047228878601422590049153423260793578710564273585928376476237739093390781884329194312433516388182018505906529364980371877462487274971684832238442643108301057606876874058859497963377332591227492546725371410611347968676070457018583938732304968113485786678822250424944760787869564043954543476327600491297369497394063928701199190708245801744338915644770489720594233960717365023209835389264550360693025910774442486858413593131534325924374877581269848497067745082813989452514715854374443760945819199785108074966322267061367241884636460591556784242381193477454562031798745518343323124851953480615076561345676264452608610080429190843529656205621703507105469441745690986072446685025734411446003672354863572503031335550434292542179542145320315178490893293297641470369716034535950233391583283952519833630326000950113890809529089287742347081374992172249384516919899699459038816390900616062037103790764671741274363513687996652638140753839998468026305490655894856591776745058462598720114516372802278331281894276883535824293844325173991609278781275817781326010704938502675936482667551979173904945104275184394080316873011362425666414159667536001302060946340859216396287536484283362893797913530111094102353136420521717009877526241594129297471798183557376410156940058570515748394855873469246811805342222235975326467411749798279657132146791185645413388432944308638861146618637205495610478797556628333145258322451827366139332076382930216846531658533531031716997693253893030200152043884286043493029521791744018194917599534785638438971289326589586847100575821393261474113874556672787877612279208220975075876026901752257216029409121326682430245194387028471848479157325417764017003779681946543389750473380334593703737818862532126622267624958152362276277689298144773002484122850877302950379352802741773255667893322467773019845720786237630872447561297135577224365242668056666961599661562958243802708710581057802264377273764434797985441592968598074964241558852960123290750924241198810896566549640294349094693555744144849812163930960544561757036373911260789443485458694516212712986583988039031064196198342152053762878752606400948018956458606987339331090779303107502437332010806485471361310795184388995659111737670860931070991290327681495120190342284058348315216536869827790457605449849803890657650297850376905235804657684313077299605705442142251878741351735599498597476102111392642134999073227509924148766776277305441556843137425627032233483525883550568436526357452043154618299045433200190759646464877195089643261761249628431960911872346706931367538423642266435128110506843922661267207178780288491606545000137762680984627571871259486108739918179967416129512083909762336416153857214243729031758104376445002382956490828409254649606080412467309799327762859807762651145916710488528511095177461370835735907788947259328747548909497340276810890946263294656616734313544940775405896096832989119217199009090964921452075876867229524291508312584485956056763846257135832320767023374389825249512352881974221748906894366508713154648329447646430730838408568777140151047746038806122234331711725327584827150432514751510318067886452259790359533450670727911028352547009420197389923127985540674022725181929572365800926891282244243974280314889692541049158094326315463027445746761643719909612358585378537808736937253265306784480486819207872319204437392093012626329089520964840488970405166557579000681275778570370466099871206361631650849162663785172868194928741516862378938162527706046256606778826309679858324070977579664836489296198302699111893440922968771558849547670306567526927593840156158214447448580880442644873884852203155497544285926529838668743619201729595541958511878405598210328052051738135658479446470894925292652895353648492291309469804535231196951688767484437374301609269047222011601688456026819322607456315339338718056240510250413415999232813805702148496564292290323103055051564211909153046144581350257838765064067564490538984763629543266795655145919311089867756545012606304071462687583151038621314363829451850765510861056970610263512409886873272312913432162433926903501267138319862395163716927498887589914058936643545066275165503228114564469861124169815893167798185232274654400855131891477076501051531262932928855128121651774667200794608439097590059731900531899271685057518817520971013837603390660572138451791443480514711099136977812986617645118219000103154585148044551351294329780953632598785051706323565454680051949783993635078711751815556975302803618357595949261482960296687735604830856149537059774028810521871855591975830060293863768176746772647135392683971961357580971037164779225246753769877984204938128229813244634666869911654466667501218443810378994870491288539378894380979382460586171655928597650317017574526613148875886898626311768566367885261875259861942280540056062600261361447128168206756656404191296595995287861758445566921029636050756920999073232923679127313444460212735018011472235461568124988837971802192045989954576986733933355863670932707741447930331026300205897859430352872590155355029154201791433195348381895180308209681077295908537747782194914814802279803013706608412387397884746234920638339458929641380644198269359857143396944096749550502985047241879988687109368143753630998042313955270900701583791288534023258174472240139192366890980925938966374129939769252789539887359194411361143408964660447106629925805763655080772031422541690805199077714805918912522088172731304298985212189044889255585431415323135953905810477103435119784325186226038150353901890309256604978983393339104181831484031799196331754816584478838043452693871885315056137705542391916641346322995004791033616763404407838110188699378289893454505236474031232351688588240426877407624639242003242415321040088104322179352276183138103112124941630262038813361302335938967998659891935307489318453336016645632939319023975169067732762766083498055320612762562056759638719819076487777760207119372935640863591064046325330260410202309522580947556603780175290355005857585819793173077485587064363266508787649506528363720477891042052057147443198021200059864725306651106732967368043063757577674260940237889953629450157215068783756644844474763339344954761589449856289247737446124176280873669845023818964277267644340587895123637501967176800882776431618032095832615166806587381058357376402417691075946227766810501003744485805201283734979601619055259016214568445324663013092404254007388246855689490662630555578739171696986169637117520072354415685249638332158148384429789834273751293201720214553408369302063234613146792050334489254528630582549488007730945159478757089511071564407986513886405338018213850708477732339780533894763699919392375871035812127824522906920306063540154415529055829508991345981351710750653059159415255257973726721871751602795428013607957745168801917589030018737815512663426978819812646389813799753824396449417478484538832841926625241008464656783193924393651744730427489643505246351087457757774655818285322844163268358324145689519182049956472293406369416062763335830978153562351933749401746539716809410180107271537929694450867576999009578023166804943420694249954853006320225173337215306978505242778580044658601050317968336055709153198138564765282268513468650667247802147929255198498004882237941684304715549047456331466125298687069695305932840967100797272381102826279992117489813636585809372428827484381901499849628560135806598117830402449165619034485882946560110199590375116250678192320288582547878682081130215325674144581009662944339221083900448026808875108941664093350391782568149808557999530645474398939787545395027653500119912131198636577386874062030870705809673118657568668673478279891697429850564861403270803882438208557937306683483229751306957174517702696955528612616699990990837325387041013911222874207078198956838727292596650593910312988025698175073168887346524468453588296999008955086640752574573648734719094046258707865003964156797560952095375594031852596330966327568234443042931839109924832983212706760223934937160370789141943199144666138151913250811499204707369444493012405265149646897536805400004354916950807014315760555893163722200755682679246852631573821105229630687184055488243685650509736102866698556599464048579032588017313203133669687811696560834730654238272997310881655027741248609455636641744001187988391902266029087409914414600172589675646006440854079944866596352575680045553710574598593515317520651694047184053300387325397430741214665697931015590187460472204020492593659082315304038842777494920467568895311185039190421839375836196065701804969307508416039029158359112144135453907832808103136605150603465410284851366991928026629009512316655207470340063403721650309945754093307964396296248141922543211184239243934349385421286299864882351102440176049800234039630827391421358004293905303863868858638288487881213836019980813167883316715478477234086876553423813633550028959476874392747105652171051394203724464243552915093118121457811434246933142601668539814972446568841537411403377818737051619009843051223029625310138063760075891770923681274070465911231988565083784036057266262853637552155214498934336207109746460806609546846941402043485237506346259740674643212892558812536578074323990660183759656208416312265914103132599468631275992885486610293470743566428656446104239072431938088235222142573004569166814122837865883072062028323973048015420073475556579465760948049809179741349815367543150162046676841604553371183435291024002081334213060164557721761204452382636816251687525902974091274798871052726526406669119528332637828074281790487565058808213705727985991335318744622573358354423132456458121341420634807562628380843820794876305805944675910727959929255212189641071399466117276073179103834399330842894104751651281873327870086345031559181972807430815760335599068047932247753858847614052318931787529688346791798233812133541233193943249873319957549662234372382292262166336849470751059634527583338078994433401092443636570887921129004852385556256120284958951201151205893291555633845432752016965408211686213071486432202396730101091240748509125478108057858632139027617505836129861433093356442210942214340536970191293059036462060960319272439738552233261446628012638466005101270542165352938152963432370904613688099229542560718575516307942541423025919649046870743129025121553577174705205805572467019802825417324652657924938740051866637226736950018829591561409565791704527416042259818915486063469117569586602419479562449458366403351010526975811847614119901585451381036771638486872431994393768704111438417259080122447737082192195635889186284342582574781049243390682478919590182869320684506802751225267375578569464463785511312722119431493230867450154653838235896008354099504868960516364469663249433751498550564009403802405287204463905492871280508846461653477311782292214447129012510318315126779416135425344412001375637453834070123277557725400101238780070798901253752389126043106768952121002945335145486223954994315534942335813033933255607128711380217899006008419568516082122985088762675101084382745376216706081856989600669588421984633020645500502362444555193135508242601436796078593100350859395573600355963209323778631752623817809846626996195138658398120541616639991625691626262770657879031572215837598105449848246089158860413361943235392036739902011097234877191277375438222180075317835113898789256592601138393343146343139024885962317046742094840022315664629594408364161535077028962814497205414241100919395979683535884674876590120565885211143527312772092485692803955551264456908726308953699240479413580204583611955335512426646225192841470498168818817888506627929017355998476913014074297068743554125667424562828892532491145734374117639399700103029690120068671883645796528246469077308665750702276094470617516280383245593053765038608084723296373821072202602453919520156478199293645267181105170411921150985539627449890170866960074137883970813288952190719734621487663212020720564993480995609239691889907994857482274389434234114575395354565015384402168165743464560406795384194127815004984064879235759203735915556686318328907750652428707637644477548603055379696965694951081056684255846557984399596692976699667985477157093173272965594539779294795193266005333311907914335824540627285226308335410860653771422373637052858623241173590244759783860663336979764940608353705526086742829431162316182940108743725444066461877123175295955086369938341563162211602013772777708473721987562897719755297083498327551155640607558870981730080951627938960517414085249454993656327628385965908434699991460631376553993830836472612921104204851910056259082637698157621453274709934109978982177849854663968293745792779575562709942289287722710632168541566641747930581956941507567578637573678775741507498820771592082030300053829333135679501011206227287100909902564189647183011950340566872107577244453059923219021569717306391004461538100040748900190809353405138314582958392964859049720148544121822745889969043261627872401165082902669330982330964601692508025743760567842295455683725119360831483869859686946979762992635655897964079194057568394274896153498470706874143161089208473874934405966493919565183723012618654875019241705591569180761546797694047541472802682312418605900293710371267026276874169780084441538469709475378606401211117963791943756777839723024871459670071627309619319919042624554954547273239030143348169553940995354458901312826518272974741841822718805067690219341257662330105692473334939903565051899492382990177871139712161094075061569327027798155902471873579939810836360598030788145961801230612078247700316852436518589953868197688714621356314107385874926915917019314497970235200317590142001932794443073833814993950693891010441303380389785095325386191971779060019090671987846997042210715377580531174547845422940067592888883028214621607200768629159424918787219436760937107741254595256699313498742809197869974949540341496555779831423843681158494221414832760930147645909999351860863096834392375495087169842352465490260926875188175183920079328099715854125047078590991544513365778462015051300412253211808573340966991966328287978127396485587530735125658079169483108867726937226018961769563123099068086020497919030605143414136701973396703973169569808120737890286659775746371167101763764711865760306501900109350921373565127272322810171165218674968651494599654735009758148319902899016139580847696723526178134333927602619455853835595228900358507500991414687322744312462369172350510925596152857968044754797097752514227869907669395466799392281169846144303257314325253126545594872177090125172298217119664045944898559335216190334705417766883327143019697638051713110783043161806969307172875201570280802203078908166379407705259815265896099310707015643147126038945740205102428905642692211766504384407071780570395443764663869992069668133480863717594861966480621928933863452230878442239024612446437021635075741026593071384174241454106198808774203783649486354311336514548414821452028059338752020785199469219967889506857551140091037555730872249230976295625785421248201711328225590612723968787583640036296234257153897693737973242021235971688230743395124499309254692506215443993406900382673670280542095873682613565756765439311908469820870507680327218458854330586289667689923680320096769164259093779770157088149843702060854913369594253140009403282186010131595317539077939694028577495822883669863141642459772307703175130337524145418339554498657573312991979225659690891124196341142345517773166567895518953901783861886794018748542711176705918464555684567062876167091509951078637620649253021068935298551517255244258577983287923242397850160627734820949411734778381209115622964728523235655866928530830341674053204517514099102984264733113260764860425320601250174165227241353976054391961232886704871562682052816211743744348885463607354492328042624763203176354386126639068839608809089301614952892822655678621944856648253465504372242015373642869736201608039726136102640808871159145933295675206852674196479336412927136329421851580529300925061423837682996615432029921100633270235999399238436728944563125703583834166825406890602536051856854920486795438175297783438044199869677507993034366136500667901282793719027642957819488341506261884867556436726097515671730792608271616842139960767074815545324870443322700867359215256368747415617356772902391159360292933441222457361918230080196489056058342070784209314911916956919495877983688875183627652571060387475083008721595092674776135235002143303310064549948595036339322118124554166115735476537857652305475215943382661238486648329445244745243225884663134278112113986290065184486897813100370718115923791179380997189413924811019837255297963279063705861726976911120647192523834686274151598878825699064052251297748340181035732785083942221111087791809203382719165886741441984389380797372463623672019671833132878613712276860694076264132740782880645570841248275392019103486638053057408580652188909630174359126305499748223959352876039633985241268076897420600617207911245318741400323775867301301728583063144210062886777057548233445319873539488296297274208185040758995849017179134197158721950238660830778700494096394689593877466840727784481056607886180510510121021111399383471078565168842769546853311478884730607320180951745229336013900002052553532334488551844832186705935400404099700501601110694090287321020880153637156694003398744202109591527333814336993706793785561393961970334161772583105911252417249789429994717653234784137524685995375750976480706391398412764924932340110914510000419357696159630254398119832380076490990013020613369554717193240093217869296490469708765704709275740488131376465209790238842519676899321334238979087601456840552805171092032307970797786500037485062333867307501581020997112560184213216920310808675385493310329851101095735322828984880300976824353494975654424036589715200533387650466065353035492454414953521566023929918867780610408211317632914138902165178913750402025828454706390015479744567429462793596258321173805421504183889466484319298186074688867092368312447564623747246258400749500913444683748486513596267185984517022397199993194661070755390261891660947322596786806201025637253566960127555501044633115287269547355413718539635002835523398155050672305256068897816661490146293991645245447378575976544075563977818211564421403495470023499396072685426478685780854193189327123289887751795484627220644002417316862393863138714514179099728896534416879182521036119281190977470804833366815552965095530476323690168133681185133779838032659566541980435122472051357400627647237384369004626214262838276175298768332669974151951335456104797665732917369439034016785274492319625371971050007157670091379970809073270821745146506259069462058232048755826008359147355214890951356036180254417227234503195992004749975466508144428011174523214185712738342857163653183682794521284045634460224972574603697805560436425878649807225180808793675130992901842544100198084679579331392185509949035531225176788350673829462856106743379751315548638236544395785491905631696200556239796044853618522594371699169844744937390012875321115297961588415124118288816933131979705310904456196115666386107711550046740151450798668473637049350953871202855123751782608808585834483539803526693262552252106560081771690073781649438145549299396802826151868092585476633700687552772313026008565095736678661865465323322137710321420030235672518885860603930764553975476113804723062782737408601358247488682044301450674407753376395263939652740584683179463853461955225582421090818858145847232037510000346947776875603742007557549687454273623403338748825879439666726761162226796337389513835484820831288711903619311460137743963070975655817539672514532362401645413113640577243026770446095247444156978106116960042082925264813438699673603779478572580171299488259386495935818778272884652019814354974207076126449951874307039566266763488337290875326446824062631682097573732409215401659309295950093216839315404573237482570587150007500782797533953982611195168243748369920828229022616116743281132930614970888147650565765364222568461583470088398222953451540625926054483688272858616958469054707480383841711847964497771651086454539727882989048290786247794464550287488153063695330561892503355873309291101434782731761130658304552199356820770193429167376085335207966031366832303619222318939367194165031422967868871425393666078732358278334848872312567563450114977249305891872939178303724294392964911617586094672339032465877219943936651009838701596223818282753975969285496908393425226667188730701406045382264838147321084929050572640908153009124767551855555042116881401268327656963566505940081338698166072931476840211318545692378407169375533153588467709162727667574172826855296751812171089634404653959180696867314800293302102509010593905582857702441695645127035245422903982536498959486167292577167238997289618853912658228913333736792885947898566624548620849491525496199784419778438380777733134955748642440393526138324391383465706509798134610531205978070018449388822500040169078537221005153518334455308494950151725131823926025009332554562642733538503787939814679543561062869147450765061746718699600414163690792973849039595151159479061916503712477915496055843773474897622630763828875453773310726604910250042205403151150406116886543962415615761530769348205556745008193748078453186993683419879978885492536735483487265997152658717301960777080611112491850413235139497678517029329085140160034914816354490945674175269234868654551456897065322233232394693343643239057052335549394876356570748877337743930237158993527630191813568983617304629864689918146708520756979357395985044106746274237721024256958894564163228310359862880186198390337611810044813847639485599563306491805636998106377994484191789749858091871245886169470761416060905822541720440921392181981338195864714661461456092514039963323930543462703716524795239949138037842810179596544141525867494806480403195678562439249184135560311901740290811758548301009578863721022381948730251873414383322340952192235125770799051327689372392674678693449622356294926998342736895689726003854619406508424068871147971094012838583751825849308760600476819151321022145026948524315953555939880227022567700658445089262160825583759160356731805028278071116490605627908492596252570040729980652690999593910107384452253616216944085085796694835231339542357750116153561969872019478899414989432592651517867631022972010469623821388782772692733181825580128306593989062408880391700731613830823587738917578553365361258396243391335363905744496268284493031402723689699985067450608729876102835053735489267239233774821262590182516074010278754518278371261006493739391932337855018278817587546111323458426058600734228766386992536382703441398359317637030587303488057220630418726653377238959118800972458369772269349084689647946903221348779537567495278217326214897876306968257701925150163177143145523406986356126520633870811034865866576972275275033416789317898313277819497446457054231369370556650103830005716715480929449896183297261768780152797806606264099893637850920836572859323374516188578915206058276838798537154619772495820760047447107094213745282044686534375365685244996052677274132227362204990089539606640311680051694271748398004424693441881772727180059034145723349665059578427564306452511647678681496555017902744571493051703583799860353718798905509708737658101654674887536688415883069415510973869147601224995420718007196080825563193148164881568191928962721188996043349882418271416574360348550395467237517499523860951220398020024798105985460288002247344465972637277716572314818000928176890736443636929053783846429750127449928282888782744000493472832984408358115062203609549881853846664466209093051300373431990516067774402594852119701371206111578789115352110309440522145338288899962139426308722235971402696273538140874816742826530467598926459888789273004831853497744532085414240813316523833572740283450853377619342939968125776066135730570583036380464041240725004060772259456281302982334243686302411964716905999403040728144856722222134457505761675842101303940507313902818665566867217808641574674005480503036365312480641425207647847152106582286325324567100190560883541630769950606197514634924187157392290565370451896924829214552788330261618857418404379795596675253563717649056913817553283238298887247387199623584219718992888727476311082850804802311629030761422586162601069282718024906385797341478394928672341524824667331483562637237190571875775702981295738797515473716777559477138209873371007002888908163808889090058396550404521902174729598492104939279486264951336196948877727380825242789794997818355766081470204478749590009685747108650942579387317187754612284695843236748686464492759702105563140723719750858513802539043572874107637097224885515507696743298644116125542591990165144968002929901938030317050057264527842874690775163294005833285783923727818458824997917931525545660424336083668160953115574656858653295276691443062679299002962149673513082073881455391688807446834368600312716001336873708815833203735218342647925303671612518492500947227335211528100303151475733003844758818359356566485283440018314895272584533590035621759737814683990433353976649942352000176500754138946426350929667931821715252955824754897424652100573113582005014863266710416257777437636250097698922050353577394209644725011230185969590880106158717003381780189387133871079894157761567581112005863685419855263019186718421427680934380043549726031901732446587579895192790860029001702018427487897643639037104272323448798417069061150541632837004719035115854359208610804665221812183774086615139871496257252893123820070587814348547208576249150138873093784864553474767920483118536150315562239070795039125348448322232360136932561974417140477386112139371854288306691251021897155555295798646341592021199573406279760270601737095387573861697067814654088064042705791820802928076120979047600113423738067834880872402329879693358603644086873320824404733131777089935931426115247088347765363425109773257196581886026690939726942174493836533365391414454155284156780553093958621624579419388817673845185011007719467105252640344945705539102657908761225768313600933520655718806956864201001998617602611486670925698166254608473208117273211996518271801426405631439890232908270293666781059953224093202360027982662907486023965278467456586249373497703942945819770576481848849347982638376971783978006147824929036674102363563805198488860833592862702722015575576116999538766145825780114756426443288252271438400260933357105561269367649081395907688258588990038765573621026985950291022899546701661438827511509647528463929289680093059725025474206180121304707615316972889751731243666283919846485665437432464228578256705848354737539582216526858157422325859207383104816601115743744418973894807070956720866947239767934261063643682971731441554928908372973837437644567382080337759769987111731979336321007885374803506532992853455643547308477313295322921824844313185341364003639431905166822342828339056161598587695303989600312817943054217131236111132072180551449192163333472179415780681134675222320876604229352956115509232339074001825796647443766111466112248255050529682674738151878761400437999080156956105530673887928186013026876866347101301381033068316043429711545476779492905603196448801820131490193361216990146546005591670435620314201241095903390234429642346323337950340860919348695792323630854540317549293249193091449907001444794053470126018398787274071118016020274748435260793547240783448566156823339876454605231673838262631401658833322898961429160238761039155369250129188364188908286800586174433124143433100648373814348865111478886506399604112058589203439238489291781851869694726614795168016842009879618627530567808824441469960220081284154313579377099695469596450804648044132696259156841064891190246296132556320283758135887109099392480295654572304638772674015918088850093140850568653422611733623948783607203746898518952374427653770461848720501573775249814234036005869955491152788771642330539249711235846349342955597621080056458767622770732092964391590743682209538519532611599327896730963640154982352893900272400891987264125426828403881106929324613471884885094643934109857788768272164779906180144896298421115286118357236218301244852903367525572282241209706874011863518458587460312718122959869424021301310724011482893266417297560422283972168347397506547318202004988166710823287758184909300824420765081222336913452387992329538197972797863203540791273225942820054427909508472803027225140894579118660997628102265812137509322065506185785034671923740301105947662575544433762056047255758656576824489339045065467999039046550828594701530275271225116073790329089264158051690110308139632920610761974296977238382078155767485685407519880244391075986495395497577937912628866970109245208451871216227209885797801107680822446849648764021996266401746966868943497501774047658054000412513773399734257070285277615676456124157419057499859838192609723171222170173662073768263437208864802185253200816805036043376999951306435403472520252821549679557785393998408210943794017406443766528723791727492713354092475115137187282970457060468792826089382690477430716557336167889487260629757676230387571558441549880904695594093440422713518940369460551151306420702855034903320804162146965626598497143411565220530603436309887167303861012355680970520730692755073046590474885391670506289869886877989897467487791823567695523263950653963230126582928378624764087265420379398069395611763652983421917687465053919664118632039074063708973346058792529797352584577468124634969205982644636465609375007029703973900063041567756981494445008283212642531887217660686283202341037021693229300644753819745020703126111614678877665839764269956268810690898882495142357604052750289411569447409753544980282981949794344087381821786277905294355070769899510861119635878747103196787819980995612131089564324856946204606560740899520365047270895530250952264544794947318583058629093972239358714868922270809555050015996504022677057034605803371701753034339891262861439975640208617410444240533341070873257924412599552507931637802917046387699396189911021347979097184951768498879927511051224289897320238387633290277068467119391406780755845496111342251378831669914171374249062917038695029073550940187317767706076675218955622122384149529081397045027197495043961310825709417358836961834760672291145834090182613266177893926235346537793450430852855811649447779015393258773724964648252342109488799745326423643622469029193124070876771582373100723407873673371316315497112596221468216620565251836268402502664993321883581527948855568311045430590902532796404039918838255434605171426053113717288586083042035833019414584193278668955224624123278042386709848299342567908738244869004276106548129169385356518367344452771015977934179630193412874772236300144996121632534373591356980076946031762560862787322669961795620258320377460133610244301396423093777347778918227263672596742270108359756276277313278059477218752008294809494208556839860427028052785828655268265619489774980862887405321835416375745926544196403188335118276172419127672440413760204223120998432354192116815411912408778057616438202559096507965045038347996235805296748639369912829906485847562834310306267545643092949531815448952219198675095455976120488317237628917414609528215300440138448339256903488652622377883404352027632301815135299386229206406944437090141371289882754551502231237457068894202025909360255574047580978609995186159015238378348426703655617529186706097257494615684643302166786555436167625496452609100789054605082314864955056917430593785371454741570153152525843996088735599575450168957572045473018765769298462475988994624278396103997159911136819393842402582250582085015096865379342959962979379771403933715661046813420949915407914012729810981650321451957439766844962057515847473467426849767879819233538188419955309257099263231865930262982601355630515089912193373172793279258293439917509272410710456948685698304133651997379932805622845140341244363079688679333631591820917821383688433504540722152493521499091422586848907302866460560761003697318122665217718317167697031750321546594594014006211433640020276578968996702912425689845809057689374278951401793949324123514452569022204251103447665573247889059268331817124401828805238146694746114406273914432339409311501706091744010064542937125750819759161959243579857531584526374118998727373028979921666470524197236539660149852234491299279798164165346332760786189288412056200815773641660575126224812873387991328629869058906967669396179678599381773338955333484428364885855648086668999723790426855343178141186984742125399427789718529886156105480888261149175767242947420648147221075028245433583133285031796932105248810655307358786502667422195159832888254376469968111813621191813822824622532666566465874095082089735459760562411711647462071068340849854006650111343778243338286862652154241721521598506918453770948374030170125818994539875684142486390778055002372046217176287481825523803218638004624840834709593155552572228530302273094196848070369916702322846133941919221195648535123877259878799027079533222208252779271744075001921768793723595948931886144181981577243756220528004720579123868406176212937302068136628514776767058531643038696751953819467659868530152521367951755821942732055206162555394204032859184359395016953126570979034306986028189796236882525612934930503968094217453440973589290996940743983334932162804864031757280703653980908974998159212239395371720431472464362074631940937380138121523944417324565860188009704162641359504976711479002390516239916994903630531997528982595600761592690027448222903204641198612947755600451410218878608351160630340569283091267776983675590679797647938689729349013769238778294182901361870250012420596703614117720609681583298774112810259323296811499880586801148890849796899487787915177941176541932683537295533223490580008670906714328353455264652213257685657730921937162525222538289665101428685123945977809745111221514643517549363696189870842398331986998217206407326573478633874162104333190790005107716723703545187778345170219206431191422867311769942024137562172349771941088103557424961047457039841723635102351883319169092833411074403827868436407982994676638107419147506720551849555405433930114221058420373629872332596538089864483983834355156031228368238688338807725176866152285141379392432386514283659371373903984853581584631137278367409965263010835201678960597349910272921655229179326393011392363610449551969126877098357657881259306020111877021079343204300632503753358919935936435833340314599301516803434011336171251391655370758775699561963184892143526092874999927835757477464877002948458869742245779323656725020549883989708335123496781726795644697406641278398936226787582318343297521883266983963213171277295201003402949673913116099703793298386536155118611460911862710233616373125499974899712711968234857509605500418294876215715449858831797268751811199894030392941670039198180244770852393571894683817995568950660171099816591183803668423814021639566167720356587867338839090294611046452221681227634166460732942219758919028817062885945588467398939966400331775651452921924287315627453229704596156537573824364488408519790185721191741674700914910395733646469570402251828073355329649054841935952486001693298326398496709366189787662675826597644693537387468829077754373458569793203360623333037100852207923318004008652163487885670051929400443049534188471555981990065645865597365936773665745209046434621762823631777393250161081346028398111755604933725295721316677168107737759234633315932656353963721794236506306639276643498915408454311108846167350954546248430992782414500003898966578720580310632456018480383438762193390774218779202641741027735689073171791995539766228111823124516475938726677216343867279800184674447395177665793561425156694577670995281974381395605130138548788927730475529853299145111519803910149202228596362303757122324271269611919865618217971942466433044746861925272070821920878723802891467501124815505311568234930079211971439807430928467680330799856070085510497795643717482078868341113560017237346395439076812738746316651862173483093150867568355520510421583451413847068297172934917745737622458427746475288924672296375940823598691163777804153707846141629830897302705919935372745504188773396351275512942031360862991203461730386156681625871964370737179269908442244891547684792203360609023077820903216860968473811201342106998211453435305250756598307645075958882108809245451744166717324694098165283235120824047325923936967387770134418633609320768054376544492796390350712569979608925157300537253909439050196978324875581526292832767271358403294547725552213176661683756116989145042369400546636946152557117606961222232766449576592857861939362109237121955063047610569135365356518743638752362586253891456551344462148528935058962431512733899077855488617060366769832921115299874318841311039170600558073431445126115871363268605674652783205806344458814674128759504257073398895486275502285988647658393205305041295564544265910125602215293104877868219563718938445564826855355220898219340790605693162044835057362258939750595489792153023571539983011942698550349550668317500552571054212889325397215295778321911169895963791750785070461174464524786936499013533526712227370218944279571741486681639219686486358038671870223087196399534291212986298047813699886431660385871440773982298426396827587683846701729425063954857025980361626976165272263919514831669479021430943064089101754726466595832272081971619260350861604942516185995360869490843096409037456687147079908648073021428057859822034017439516738033789388709077546274844759242479450098115598027235277187724598823762122799970896170070428474225180492337467208401297129654701326480875170944584832338750182298738005478399988553809906581955773408908627150648122974452990617425663789448194429682848876310234793538166781167747505324724628462272720372528880531187215977515611646663700395008576929988087182856049979168847916107470778598725643013702544092450070585620516429398879208122715562733229104825871595918624548886893695159743260481282823806492248107697700996590609642882296620471448769309747302880157481559715795911295492126768308729645936448683211420422244302274162091341857026112100882949815527468148413134078579442955687130077434873046853290442859484795557503753998471071252860894108989642248567270941328486121547529406172270953064818095067155916739407830860484567040554573212080849297576710147438196225717890173686558600254298162381374532034311928851127736283686079058153981364772262292928493919604099310010555613234859317360591935703348699388581609310225350676363921741318595651848163401026310704469911013456000980128848747520505002751188587046862133441238885052703815381494949298636565938714856009224911389144907325161317755276654894426808451064575625151167870209966258812223955602157265435166870801984524744604642606150936068959796801370154566347698741010359350150695347350629020913287955171638082813502640883655214598985009287770298212821668215528799557906230048173663605768200012116251178759758459309768365481796417204572742066005837155498695302598567928413629275998763390056508159406352241342378193232991910078700634496937864584868875919051936399748412037655623990381613677484483068989694156733075339021939394582527147379858098183570200663220222185993381827503855671005710566697299536127341108290749344658847790598586450434769709525540234272479089735170889182238492756331823324416614390163982774937843054105903849700759958855962413539472205641455140973024724680983074223564006627025797759712288289363381874774544476821117607615826554119892475255273147240861501284398513992065368873429892442126772157881615276211677971805476171360806779862268789118055147274652841128979862395782022815393649574730045529056581846771928878931099058531082645371289681064181710200491753048720358157703047479262697926137588943100127660175628189466352962772118710271193697257787703991200594092360912933988432636743537701733715980611389796943280156155009109780150364607262607612028891268023431907611318255235345634043092453423386366104216084588992025837914397550099742345613177632640116797084063343289905089245777651030342813288671574788811992478268425370140181953248201615339206508574172156733855670243651874028516204024331809360155409696864881095094997025494216140800322729323584534547735843767286739221780373042054534859954137157830383921784819696555394242592031063985639003101039966269172821103581899573555131938860356341854587445337433121960472244321899840227219014405979428381084688541976805133612526766553020954294618029338224898902669653279646056835253097270811707578595847492361377142723532447924421969166169454705460286402274354046445235193239101939010585864718547362433052016094006118027133767360238779739677643834899173494638811595469952392591965574713024048845305764664796163339668604747709809850437485497859588373309284656879802215742451062590415491037770847234528652890258656608395292192670328871275136559243362761664209412387074338177112164034837254609514364262078163958776622898313896680902066860270388940835931683898088204556446868646251469613074356371645330392993866545009933737672134597187063120759846275010209394765988480743737152860086844198708613542216230806940219314837173491938590248176059588209873634256119869553015800912855953641909144257334534594618710304725850783481778118194986118904735855102248892871901435651175215899801105749631335592915945366615585422934729606804854545199365375971071217062472733291141488703080386035295282376992465568001037374891678299536696907553889143450026689319423338995953152700695984611732934168968831085939086408401709080953249340123303159162437464274599556250688789152208161146127734923799632325484671419548144377514952288672903913544165713026931635704264995923386375716631832680289523454274292710688072665150954959961814188242369165520341097777766696842807708770817430300905694956818266768185241638491704338170460765814729670419903343948236762285338979131964038298273990431656030666933175731983664656917815274493567862882532829359230585052264581674946497886424315356919790415210906665935896106731947537943849470790158378280229185811852675124626835989883515780171956917645520790008042421396500851304408324020638330835092468181848837607647514374327723700718366563653924105825055203538766681758316629463124523034621764283819164296392671119765638306231956007723791691746533973103593771250690948785430729794809621024650225726746601365958035188059793968162385209543240887051410488708687983159503057369884889039913263839416989358763600086121082743625876330700023312529972664127739395667864229079765933810399259803959487454484867672874775085920933948681283642456598575472768919402680308663392183624389583334299908367174354025862743263648215887884173507571472452351223095520021455406884321778242269123008241357259815130577277897808137494212895163412701330555317337560490942064014938307988819980518751165455493052645367531611177055610665811271335656032906967145278815122766072413535492793381576623540123916347242060020758741059965630654795702453413025550110602362159777943845546257917545062042197773218982702315282500219790820585350620506883388106682674915829308939766370530169258057888631068014935138685119330798614213219583780489957752078234626629359239808033954280427067068499057577100921589826259130792536580863101259334746515555183540706957929679755007243688496900399172612658503798276747134843819165741155716364821607970076802983505462461302872013263800168116500539103763116273024447981476480189718991660241572237298984545910603059262917160808970725291046367076243464934158598041983966913874070697221698641962908527039881859505098862524744581359534450032743120706584378683756770790476222388494904681132245982416820560272602287234906163259143328840535736872164143773871974019210533149979288620273879508920989224678429855843895095859372743489313060352205617251215295005257364504543978951604337135501573062431057487771168686732210184272982998799361742729027561155247599412090088665999014115245246336335941425202942425210054447991270340747473853395003506105911238480808281042409009559491780017396075599981194983647031356400242778379229579551590576054467691495245246531854286022983982270537399173289740660291701414801829549869075177505990124355422244580943161280580402018493570698724688207619221879282851379311044091444111592312033394815692859920249502544292835121727702504984037668529717459273330976065524216492038728152226071510949771139132055373488113834612313208895270865429787507905887255339668341295318488986120806679324056573587877228526175260793600909461838660279452046548822696667881922816253075975579088776995212962720027890835311060163064993346206266493780495902466959334053219695412895713900962232153805420395581717642100559170291927525030412974719854132800738340579212739274117048814468379408881044998629356684316803461443532332352304962717917967863501820487718141139742416048343094522392477886709670368655860078944986566446993764473627707968084012836094339711115952723952140099691117471445748210436508496303968325170916157694725520580562107319998149705280659346130595548120661468782895601997886664717775442249479560858969951204732116279359359259486359057582728929559973378032990065909253604021465999288190653847399649915919570260036605226610237944113273028530305441526872958657562291354473572247554909037083973631336780327416636966874326725759131342818606928151291587066046479501273651203267015334300956417741870593734035249153526339209145361461271180338415135449537556623881892234497522899883499180293949274920780394159869873665755091190062780908470859758585273768776705963725296819527561069232720932661797334075691695335834114835651587665974015870799151978018368151546105455660279587021210005553214473259538479572065427229312646234601241157307790948400987623534305088088186504357032016301940395349419189340961374928715762672135028489424620732493715256802869072778113297582496793938503952937023585692512293585435468857260700832839961399036099599775799955255409618461987694368141483672586675051100310317073721202392660189487924861537162319649272536054719649253728652692435837031594230082403209027338527524015196366041507478101415382025920188459200495677932927530622242206021112315283255211863684051955236699517824114622762793275815527237734146544820793938454048473648010944023569369269115690320890542876096664095375074398854693290640241997491134942059290740814469234771984775687640479012136778744740719611364625024671510508788838379162543343285393305097047853977835460559374463041936927357062774917323225854515481441857021894116890703228443119219169624902008118545249397298334772328865150584454648589216046722449628757551250189916731227209182355902187524022416943685723395679886410668023463527304912585900586863680881398828442809200137765243247968813207800890318477931339153383820325137222990689704275615197270765992332287475089676979564198126567966274149309516106882901723012290144210221667581247696409274728534636933522672212122051972618174064120296377298934601532868266491950263172687216235597035241200292100332164281820436843842508460525553614432582763767504483535625671633828138935930325245998730168121574639294998862045196803494033922227550239305224717803786236256640696864048617847967184609271853430747729009162119082995665849445884485360018549690964896669449329338667732503111737238073161020134756633109317946531876039972871499113416776816214764328463229943525243711749247196173387221070906585050528776337819818966793516632784243206348500929508007434717667311674172129552384224034578874915812493299818699720367034917235546876593668581856771679427527736104239698470188262307859203933224915268093401891157380334966197195296029499757228490671473338319058178915589029735458222347572173017637323654957301273691342130775911795369614507187119715267531372602028047441941941338400714242183463219896468992206917812426826142439407033859163495998990351668931317892656036933729580114642771543126528641569044061761087047278512857192858818333461163009280267726432603770711145189359440659172840599338842203305539158637753572783519501730646574788035601311215454411054174721593483200652822788158121070245569588339074616902276120036244429042489169480691447312170039963789423391621052290232329703574360301380764699024075610765423886625449649708568904315370406089998352274838819648496896609250040268529754044794239594550880139145043082991092479365753091212929689457052365726756556798082592401455538082384021998813564903954907273053623656500497419898217296195526685412433095339515124528674506757022763308837436428075384196255784508398347462204348870288688527350641425945585583309156895806119030577225549683270570427499780258796658125824037686477565147472497152828316708234135711310010407829112752095776345536333752216959844337940928170835369777178727839689893050778263131003117732553785661532703417094126985708829307058867257049701463282292299269129704466103868486185346091829307220486980507727392865603733639575938208528849582071855260034666237218367460243621665159233751434111497036552005505144478378379365533560834827877959519507312842704876169386221987049012634154558648884097258359750800004390047217426486168345332451889634982600031798709590367036628025302796535264506146240993838316870364926840683322196070931391933372071673632192644663803763887982390068827309888435384178702789174731170649717466491657192110171727064207505504448132999683538952410603061398440148605462813789229877965756204809512186376613424467538933430766082858461654337984406081260809573478229875295069772403185578927633766812483820560185724590961945260166890744116573932371426820613018314682576628643044302404150928991884213643675237698445900130148967513825356514622039656970660447746041104675389552016493469125126464122184691332666034622744271701824216763122866839750022960948452907618615108752003433548509495060149991909532823836589323585295152307585132140067496969981272334585176036425888013361688468644944616239722695217426455929441246486040292637093586923924002634056950326489879021377136307377550779126583039413836640761162703470128851608776724377304716193191977009874768539824470021488551269095885945147589265460998550491870179619341148972910669167596306085120167391477958204701428706434124781227498310515200742650361401968165475750216165869329132914372165719334143631973202288335671040419240566126069383362345303292096114474288580270501160022104687122204022629787091440397973496544320716966320081233954398845781648480095335319672016128309775406486025813985668497501905506917490989181581320824021992569909840525891880210962754544989809977402578968134322957121135031190453984199762834301871323689570986564632333037098356030229263517294044581356254875086272336977694363712012252534434016185352394528345838157357609243485906596767369061444787543721124457577627676309601632171829093399961334554425769822653856827022393900200918022049171971384517332425420043347039420861243416069757813185662200976347410719378080552909293540113224663950027629032742332165946992301875547481630605057093213647520083416966715719130320831173228280064412974198420283047852224175475452363334569411440283409882592701648338486128207959535786009359186132103271909914764773603211806960449347748860427163355571754994685593209979521417315657085753743499649323098147869782863915757915378343889122921210846480960145827008494193648430778693272200558149996334293844638340810117001124214995510988999281921018991056314991873645370833005131059875064024985888507036408882140349486097187700250253005724507204728363686639288272130106962902565958395497119403545021415406119428180588199775333508121145645372055278371797629183994432337500339448336118140677070243735583360292750581840305111002754881098421597354647047373742251475867095767974503650989850432258881192238231767954614876416390614282279471837003663098261010480839108321020900967232699070064326335219479311405841916728217700977249808593110846203482527879837197985442170216651305376362107156391483320463064984491844332529892417356581820945940929568337487297417245735374447054190094913528023784194120142389841589906267367992722682947325863174752402854240507328915574248565368365038354051002241973373435798595450135668064747039274043119154797808962611522379649084789953063293713172373040028191870258571430635144714154177715148538002122211424457740533479119032662396965952411434227030075459486218274877807214731358380639455885771035486457505028523695830839945002934696492248724320996303755015587961581886602911868768998969487416632359148946316981799010820480598742138843523483438539543261075070362695466949674314140659032699054995192163544005750628745580874409606200611074364648878756557502551098651239113269028965104361846215360692394758076372525919924381831520540760899329576745186977307166747341488477216497646812725936466750613929722317873748474245243008040356987352570422253864620842954695785356995897767899648320408678996632462683210632581082262495195819234915729684432766326161412749680925322053121248390965396305863295684656841370382081519197951381028454581297712928896941152410947132346550258500701488757364642092395959142373659592500823927142736752176545085361946275879761068982919787712247459623771469511364995732067100216416470243282594075348120374989271191019133261200505552635324319400608831526880759357766070080282980900261353294007065867344664122107146532339571870639968602973353242969913373496174535489456633017557666096990412662821121364796389212185571401957655234282162752423354013471496915204692139979873989251501697063517050723606250471404046942615582390065800318146861664544978707905324940410426672527948422427463137349114221886349073895796754481592699038127125225734788839848430757753033068656978270708116875282184278318685436293898314313640587502877343595360971983393587973440663828279809560599492750393898031684320119250951527695679936603104349579689590144732839889135357358074059682693070150968010497430700750973100717294943318991003035106867137908049720496632272504956776353583701485648655408596349416928025943980789841192365385779504337998736100558358613558659491663032013625873989838762861999371252450830617130625762511649627817264687666245287743346768834557124298199739828191712792774752885851180432225708582186845727106377230224671214833767041390785125766850925870345417442384731837281849086371894079335895893040197511395701247382819460907591419181379695284390156399583454312339248438959547764331581957131958386414522603888244142904711477055692577579029161702278540723267790234713781415564054188921188879048793633825628424096266775838519860517514297845888365858151348928112735517030923789550515606977914478697902095713829471177183678167727656347890629663973194494105577859305400037991402405038221392851385309832484900661810002106534013219004660944313735928396102267716097184502164687117071679149515875566993442639695555683640648069379065214484575210745113353158744688673488644056633731135312707180884571222607046422562283106863708074463991111416481112088266104646438958214155882407290760414513316127397649131662197726091928937133539744335161014727209345167305458496936478215728708190555042896637733653458928290763721171196702948625177092539404585151971467847689967163386189353071214591553258227815260388850418413753243349408364137495689481865608242822039588081631311922867070183288539584509238845552363342811342564534700699522407050307168355358508885161496088834480895742560857432047539033005776196494480061279820545530215654031089799362554139031087004275530300780100206479391898619807540255975441321759483371506688291513382813645541809925115387324159120790588892357644987416266795761169627162751325705723270930729608890857559218155606511642364274723459270544191515686579711861015308199739204025841266030261210955270191817749801380608702178216729798119036489820305071317292370278659776660256812894612368838295294070454478124343111560839909323972515042138322123762167473152609118799270508263715500951282661052269715271708048332424832129667834230420279957148610095172165919935613089933108535009227612329095479955488292096822696642340294698923819454382199859744521754190979461990193063218613904545587564641671888693395027489941491746279571538422801742833237547402377455532512374334185441099625554354889845998167411324331970368932199139187285485272331227925321527432420633608173577247787110837290442735460331902668269082704943503860103349765787836675336403634798972513124651623260872993155116905904654286499316646905623021190613920125731486383140208735425758533603464066674895201259402706775180497708250567721509752391010249134786870804142795575800145509981870185902638971605958173237272481089058663715546545317732168274214839013178962470455902323289958832076476589422243518766408205896525863885286103951018359887749213052216195527821010914105346755629688964403636488794658563550680450166752071144716350505288824861170662487905208445628377560443049296023984214883624765611014051335793719466889596438008698284513635673688613535848312874913295567487173586469468013485685096311378839948874727870282974160454184018651659171948103191188481174570332431438563415735879438931640354090155134184352356624397572490831816533157986829331953670136832207987003581391490175129133106376450634658010828678444144388111048135122559386087749459390904681397708212274993218485237523986977994435372489230919581797227780764109160825629784711447523461759034047874412772784308790036800616277023654402552394848197204089087918104442861168341601121962691410079680440687987781079267627822157616912976466271484300915469836589215143172156563630324626610673531071832142238766241576444917326073421579714337991140107596510383855436433763749399441247571755654697028893364955388934992029912932007938086633576546297643982706934704530077879643850120715958185409376073705691971583684386076819721904290091631795020079469795525890655982530969732138968837038711862935047135944800831162946170078307775046729156548372044497077718617047672267546600671488841398310392253231203663947954033594974667954013402339588973854760237648114750749663082524997081251034557144020215202021849503060383807447165898228089479914706100169823095042523571485051398839855576359527253472679479486442656953894095969096313402362923625741114404956686538858215965590342770425896543592740549821219063666383806684841917598172874283880529401068936809707731809103750849407442549068346330866203931994843733860262842164935887843133569642209328404043547346960111389650769520221600336368498601683700505303374289119595993809592361180827652657401544117211539138011898467553458099910688442596075544646526106220963515655195181112786036074241312508966931825078596867081280552328338987148111603856523956940160853329470857525373099366437538010665547260049728545251852970443215097678513167849462382994221126544774701880427073491268885672606541107393826148404503529644210198174363185648929483359090329790471524758894128657208854159069646061115810257727035337202198183045457420489020380274758564037397017923476304535198513204839036012704993436388901466482394367781988729604713169694663575168012448136291304722060118201321800639770782954103339323698098961427512499652739208576388595169356675080719617150786175788631661219743198931662103095055345783476556426799150025386670427217169271811132216060065336530342293813190006036339958630376350305141830772622587715412125765409210591900994509654670911911065698990816584452867071248227817805951969055284255056316560164278485965439282114917189751398523275564897615206452541499371959752035099826889333249294985468262130089651166202248903805911627300435060429992445395100822114286004913385067411149725295180581431816065455878018405059360558579196753637016331332678255047193399620644247838106950811377570074784696376593031207988627439300813028942789297607230711423328686155822450484196938058815091774738736392283861930147046862173050323416828466996522683483305198553528080458878206652315196534336796688448856580217989937619493517781887879346431758538294960688836815997520790902254891899358401606064907761516616168436938197072312373818640328865991939776507432263080307393144206644308038695831730450951562626824562119642594359834203429145175049656136156719388471960170289063773411972678099908792787784203770302698112378929475406646176705207538239674723911469521064167057856869886935551115703912125587940967744992470840233281433000047491026423222951793715461187938269053007548267375422039044172696241121159280358897158528214194305438915441348707849551194338037455683626928893066539294172083575995081575658388785601745419470554037507491307109157500300058448474546361091089047663202410040206926230637671598069574876313417436307329305472403245987093495755753668024826715747624165734634067658055602805958017914295459148111707447730484763514631644163552609764596062135974180341511268873308298208634846275042357163029869798062786176174573342800062164002788729848277150316182739227813187133152550075532391858184213906412891586005152978653895242378455910514309049561367798466482619635397520840938654188491647726791799517986147518881828284089653702188399170352799515463051664455643491401276650388910791986586830096463122424255693973060817095649045459393580594501887376296033389796573517377025266893251994370433391715658608511550936381592054016203395242890677677148567964494058568186021000814320331444758063181782656893844468581454175928967674881038258189301595467775314284110594862843227709486185082953507868448547294793549095420714690851197838171251674631932437629805158763923702690141708249148332626817819491671304120889437200559742786107254486979464458962524817511176914982147211536269888803499398983707197768669969900750160580166975567277167915295658284267886891616619426267550577973692316762974604132035004247075470324878217889165842450776863237919306670421306718459600903703159081813017078834041805515360941018479654976991799655379511786507525958613134353831519623217756634527196421656302017785768883495336210507147348572253479121095115231093217202004397615361170855207458646899715603066410329198873368986445809950338378962322692091301173949572681989562121569211163216330757496391844102780555195702756541782437300790483894820375792030000096279111478520656974212310589492480746333303606454692972171077687460577889344111041075555779613576297349612426953686251181148698022308001815213973912850198454773018684477612513852475928635757368467523173137334593292393864794186533685609703687297763657546913404696412187741195372190282032474756773272551234348762304224366846451381822687924889681810637849464772764315313640756101844004773215624158984251965487677421045309060963943371104875876670614267665910280124827997341027706724890491959341980395440901695501490586848404017726746415565986101729366371104214038192317245635077750912239992638075605732962862609871691257336873825673121425593624773864314662036670638769607517575027205529244309240622003354835608924712455297396140337288687886059166931936362388699642299054460633830121799975956492108343346896163224469263737720864210172834265515469843684323867443817727220629788464856524810611706246137116978479249395967516122504591026007331843197997936337219681465150455847347465256582665498988139244718856890159323596564321628246626495386440864320560834404444060848158645812541567952500412591453033145182013860414123936873606376448839883426787508252768777661337803953933389514253058525234787638827336898888705928452136737625174275930193544972337673783803193129504311357399665034589209274311258198978126322319836222734856942658568750460065097547182331626505608975022210220917062303952565660267942741100037232066073143622842475410011817283567326111438773801024647358177680352199847903651027641025114782005336586615028135945092071931941844139332529384170912809540971989569255607600798810660283106673319672589878572495264929724181961149256625854642016236225194978975510398833891343196379613659406972715265095651767458554287154183617348739923615751071856208034370902241337733435118255627770143804699985645338042387027962225648780847273441449335227728814370027874276537822640458194255063790491444411314978640234640254057831441709660669552632957183198191684541436987935816102932859534309664278516993263489026451350300807924193155205555892621917916719134142999092042054152174687088439334461160241470662217677388772878337648141469575599432917773759852546880281804077006474424180974317684106345370666596050699012863286951328376457877184374318488730133753071407950458856887144496713890233385366497885250190720469422981513113961036363515657838417243876375752222697183739262488708180539524394759726281903649035673376758311355482600902252597012302553463143383136212287024639179043572363133849844354579273147133328764984550179367857780242385885772100871652405550455382456817931155495874807786687117086604904385840512681104755530196460057044483857250299036003036778318070021680770401195879441454760490511029509869720395650224675025552701736656505186559854955680841687332417470754815686095262939168439545794601377359587845097150981610241869984566299336953495487254680741043157518659278212781134803450507425214001525850560045035590531757519072707442223995401953070424659559573795645868163098571701997843156518593049192114109374947118602320275025270272937197113912960020383166054081731068728490045809158705805975594112744847448237846240375935416603609106843554941110150119018560641913672231847360299381121484547204495455379687314614606396774812428720405867060419755447608991051118486952789191256701577416301325658551043974986477342811704617204796029387328501364873499658445428168241270666864592079050917382786636064155394646721204448661565745338907989012585290510174294720795120969417561553029086708934781426358435075661577071961379686564518906879361006366838589206710704211256666703705530095975241206517562257259312913157630668783835082856761317601470246560997352314306621294485812727738833509642455687808245867985902215698093992171755416962571714371877127394982716665457704942368372525436350673118210640015139701746257468489576746109060375822080678986119264921932915498594263948908893389840840101609752173935378588274527428613928033108427938885501575320166417668049651564891835652847697209029845489421891797886714240639905856004229190099765729602780352398813238085685958099252049264117084063632980571963023017377222482317862292979129947110849344728982278641641759255485701140019692553733093115213113502348519032921836846977073902862260584843722919046515393693042179972599092630342250854485884281321703806892176191855753286522976303389427607348194476666667661909330233633851206066992160653556127213008572587266151169998710174838713031094233015554445354489415321481194917102043552792312830227982160083442513187448545917827925752622753543217075170659300268544668148420061321982520336756418707599894250972652454855163128965560877970604459348886831293232342851215552519507941183908035795539473260734238578159245765614600655305131783829759396625269057060712235437521571562170302159078631912587474410042511991293929358172534312246966199492143693042957050171759842691999325253532097525628120467721841903517399980867735793337763830302911521691424192018687230232886319977418093426083530721833439035841583080163000683020902460828911308039444039893776683411295995988588524122821230047754597926884636016681902291891981793361525463676803546799393477270575555575380041901503575925988147881189668285327567743697319925117468681367694534493495235091814065775967593856338098395472450960782133316648511835835895980144193921157706546752842710828685721276336304951467427013290053356416603511098895118676926877357565716807504191100660170968954634806364013055102727350532047193905771141963548786853843722263408701909804916151037343257116951059555935780105620356113731112229533152025355059580898390296874879679293814327797977850342780271666195908212267266152278078806266465555758141261522858033917308256361456582848254382637736814183800531761496316860030538191449765954444272089755658649571404441435495052503508716368964912928225634987367797924264730178679013596976167131382345587769588910113578265895517194805939673449046665694378604589276805726430918134278576925653889006240542343357098362901415688106013667330889764733390742300183791637157167309600025225439777377874703652488455624498114495618194117734602672339122702817856363390480641960061913053486050341599648771363912538491937158968601934620639656193885149312475110534284264183986400366340713252066237724687362017303591285903036550592857380698498875362366080935697083084968297445531249102593421456481586451599479908518084232733690829156542312032606065009354726747713378990378347444604519137632449151515915344861986999150973722853957509086240909111132632147791326120821050107912498951763102734880298357276423686987888403734699481724523659449213705052292184207911735141225291897645036431024893302127300247499739990810929606182759037487769113362562167746889636507768034754853157139960139714009162492259843807548602512954327079370308313597802084972791257022326595375088330006037701695607814339153410408697819329085972107416163646405884749189135583981774763279034234153081010215595492676569687493423356688734013862854504042319569594290986433070224965670341568774523973172154697660497788745811517535855156282736090143481592327952493855728676356105140167559576155604364603243105690996202938882217820481024095352877633019820981779413966778921663904198491704631845801082512244905211019629872694980146368354739711500770530201530766952581359403172521940126463397499286830917877985321213977786251782575590018932417152588146735461220656873938087024343646483156476944309667453072294025120030364432474586530084911215433992634540746902321732630011385713744765263029399116779112972578523640999849221558271666458782040055270126866082119112937221974512504343856409334330262296777727072222013197765875962902878101630356010409310210823923065802489036624482193872516359924528249204099781600905904132251899540999266383161010457433434040635754071963315056400256537992548152114760019406688149759193049063351540355390681155786069798664346663661142630389724840296379480985428969660563501466789783055639030518973660338909298669917308317019886156203695718216876176376390990889848879053765252793597206931777328476071064696699402341404697652504958661599377806516651814895648629354958163145784949222772732852584627658552754172048825229875822989915907887223081887720256595980786559249149641815157050684945362180494074487226303578892507357262161921511490086218858534816804600958966106115378233105865563217192150156808179487598430789515611271274958948309324422045659914777320225293225067867948393210037420366204111086076162294109909181859946263094292435874338877658221733452483433561666093984328500048551665710570881662803993148730139837994117629048429720772789014702559288050401102448098357958269512119632930425001843450881731277067092584897086552164630391703171267970230134304757253882417445730640810350453685011814453834585549914015362644453136651209406191244254687364439181559635687193525736004595567603273632926990056472091378618886732965222059873404558994830171915528873132128691726680534184067399548288756271606824986387032854676912207189195100645291979628271377736494965919966060236891967213021180625709475612060833923657366770556438906496486426204969756536136509529285945787598666170278426832582819521871898759988168552194867559736098247065715144359207167005968245413831510901138733955509567984967207900123304335063376354989247581892769126925683104188689736752354749178267512566901677935478825159199526732098323158516369495045840278171422571601008297378509531853213754128361050602432686600223538754751898846650277539424225006836097614433564801529700293260116639231804644185825810246568340532201653021466097443538938861583159782899649872217252352618458228121659645360150708928856918664712032397204898775357973914524883826157952138087120286619750108430967369216746914190391608149239246064432417455049210771121920736853623498108251873534048533266654158880878692018546511706946204281315088162740049847557790924687353846474660261464852954130369607992797081803328053208564568551915947705147827608566694166181501279905493451906479161690662666295007348293123856860934278391201602269767495392855413731264985931764059914295006958924083038296651628782057833788557083234894007688994292981613829182465343299988987479950797061783714858914425754202542906381588733589044124436303500732935470327432062280108123039098306695321076099637620721247218811909168818396683488238969394690045333040882858977664801226967604246632882495271251670518362972818043613311574381773217228188514219012792422811899703035818364397335661604434904858222839595475652799651671565093717291208369130129585233836137224607642664296491238375639669622240621959254357572733598194082317849866317707217246263385239394807399100297766669401411838125859583674560075259286614815747066086327229559591384453735060255185888821767307265199221671770357424447719285685637092773483980465445675915814514227169001528207309908287474634089925273010207313754465040848344892294314968040829674401917453512880437693591476516126325100379580351398479272030358067298875669534715055042330772143050595110267213972748086543017295308879098384088743932300896867871859862228684559658044632665191584075179082981693024573877926101379942159476584483707176943875876484835471039587774242792370699212556259842542364098377398637166971339853156744521309531709470181633717807492953198858390985748006083438008298159769618557832468209277859869097522578524087595479971545330393563909414519447442043817645692064160768574193638503598146903709410433643358914144842659536835440511342377236386366740234617788598876283836664092090691848233132188884963115350097503763021806056593742290333815020699005089640087998635434249751756650291119930036294964041406470985236276448246348880198816657137144189488417771357135304780704910266871217019367331948865710842287769114212955766983354590613278820436835941301727058077271483456007325909056917836499929444136260054842665584534539979063873648740938981640702295361473988791046880865904217957834347067576767171429382970729084438564773943844765373987022525899746087303775140537133679219530247363153527941799122163717546498609165599485836518055306150728994199676563747478655764458200643317494436045693608277856446910077036946541230701711862900839285745245798253441410209687878670822148681644048627729386211655937999347300528268446633055859201908270338604892077005900240029969090049691077836218119347194318672958266957435614056965160018115733274960517121593062243011708924774943285548904493607064003265580796346997945378987580897217833918364130621464688580402151720496017921261170435827914869828521215913150575328949342354775546318245685722613206785188552563946467254823951483726008530101845102683511502798826961195540800784354511278901940459290575559397724410054255749762961863792861706005318533049726025402060728475012103008243547038075647864480087757885687508374922461230696146388426951238394787430769302003008412825973138600636189526793534004299524970933328901680815016909034033046857885282945784916932634341706651184717162825329193542627524607690867543279787101039920306803978316218671470613947058271876426702966084016180643565596805011493732054609107226120098481081475877221012732984667640928611026363390187509711411601785246446233055816281985102587793899145987946401048948518530349157571940690870507061014491638934922087993781439316068637034157327908361627739247841446023900011062767355677114255424154951696886537786847982972826882819375254844888912297549699692388163747545058212858956160709265788931524234441316919803279343772375468399943734879157940019484079073906852459130836773844081378750609992788820792452367156729889786445694183714305847567926373575915401822521837273006063653526835482159411909667641230979003519132233428202846283112901091554974289007308372994559795334434855645437162443686485390677365075414772460082890610333874543692785045458652524100511766375185234154915689881691982746955776551897861267966909251710413161066241873530025457697621321364731697620599528934881567775108371345960633247748757688830621822340214095244169136089048570085164942580277381728372928641187613385625956429355904837041415388893466337956352027795315586983700876828178426470653168077798479146409603455378584562254235849752317818672661280923507443123890506324599815897154820201812413735222417091331198227363207672024027071981611975041355228182412854846294298648300715753155631258517561673719384114581223804657798388001477177944830558772412947534252454802803705284715154759322466708725658006700980347462411917596963692886498211400594609622154226322723358736068657440270089903348209818256944629590473481165113712435019960896235864623753829364665351864288503640417163313286305300042242558966715960393404417425477086257800668219673772395382691174118329047373054521557878263588998114035101935995086947449177767622940780627394349460917364944272055884069186490399328132170697489384310908347142852352322258430849137943006442235668876132940508542504462944509189677324608260646580941300592742786512219476733047470168096003255502183335215015216708203646724160040952108421454901772238753743301701498057743354832046319747975799681014133533483171556087507318335176520624426001669176622104858046422241696819522776505255566125660940993787598232003835598246305268209604221475339157260143461077134973397076834506875272665217186080348227424762737956892990074706604158719220158664079162661988319051700986526000179089216623353084242903506313673253454850107307240590325821967115553587755982387280597545102558014615340817320042505358083225691353077724444738924861161149283992788420560511965513703065452223679516263440410752488232285536046141172333076923592264562621613976998226185046357688179873744414467454528796618411086931266557586380340067629064971593734839306638426010924032591544475643520376201999097721831284122771688307758782171254871659106450854040802896455389613601747869757467973076451221761422345882339989203391056680423615008129429391294064805494865024887394433734505695576110295224623259903068757560979256953768355644789010959155157163375132620124236304882076796371911299269702875641348436884239183148635509030094154318489159181445075641788449064491417137107360633299932440405872830571363189197889377331088052889855981284860382738751726398851250056128534898454267701034354641137519981991311361480516083992736511391246501577815016391075098920568782460010439611253623582831790070580946334776075776057903383643078313262817208405783702512693961610183986155322085221438790575421364028653380934162896442417231135115112473949500366753305204092870071803034378511131454836334662086510516539953584183542873072201732024570763158617237452766365497917626476591939182597773485929288107463101188595458780242041258763583459653999206260250570984754393056060671937582976623866738921841353869576621949571241145540522851264411135136245854684691645667003511607662784380149056991672268750863577905817390318931132535805465093916461450305771333541758955229470721053309552889547050314271145635631068412464461668341403703687991207285425157182009716082213436936681743475484320924097428293421449823545326167904247863680997221946376337851199513763348765475128794962892285817961477488743554895848786863969927912376516897350123868124036724892087135537594650684472416430428200110728009651072420116086790362166195310602246450399712384273592900494883010290871119717506819019756056409501437511787025132685958601127456324265879726757549834628297961770788478770791325174634165356095430728764967299368458476623055038953452157240574948962549246664951657398490598542485735171405609617862535785488753925620248513420557300409424897366248064065148562537594121787585220893778517979747217078840969738807426646731539104587093003531901035072905030263480219214006344253621751139748834668634812589971745113722542369568743018153191599370462231046395030643298253403854178310816832908216138079301574025180669302569779234176251668856398409606515122002584225261406585659406306297407430680093790096101132022667544262260852831793826913298784884699559131155519160169554886863734205511390638687351553758828343957812368204509040296348138211791789340609601853482707978915365608273638897099095928814690292539429825127734707009128700960332121371380195197509543062623083880387147208485460440868885528282658109599147076947342390125856416972945795383122603683571612003104337514799181574644453996862616355306839176079502427770560069634026389866189037100455243323527363833270771936102464882492050619985536234102020229259328018449279228967819335768544367822681040636600898317755105457686656129017091299281141480546541007247948835858622428885975023795195815993793598764739252226226848336859385365252868329787246890280877130994807394401303105289380257272709527300352404315939533587471539775175902700016193187286893684917260709354793083564408192793891838026882601200532084207427309037562050873925029172027947197278846903682633346829319130817089669822451802298035705750003647093171715936497035144121786414785634456412250819128054354372037415284508152183772889064709969127030634759360754112235073362020202512483646140038049949956941641753588119703178219235384360394679030994046364292926622705214107982525520254125696693510541402335420454198714982108324040437720978844604484738959020431322127016967377553893427764223738455420415950093399612314907515208809069522466443547261501127019629858721241176837994501861293956323916826232995265142905773588485498965078703464172600483850007541085557592841613238042586113948179153193023709767102045521201082243637909092360339576922563869411877126286142747891324453780148998825920224886101014483520964110145126980668986767661970839885819458979424214932488620602618597290679077658696741937805994945301470876678894282935414890935793765555297976819991833308247223539838404006500759059489027311111998604926904927402998989758635329041954280130932487507679670331985610172749756212440209835550686040258375409546768177852426626427468829032110872932364926781985213553247915811115282299531954673718273709904361566134811196071032561492254843585682767579933414100971428007897778791883811632274870540259660608593985647207803351821576987226154903301881169792916299936786277342239100723964015562294761593052919701890081742148571230760127839310594470706644908320410987578894296684639770780127845770991216260507122911115279069100253197965269105411261891764860092882177115570306780724959117392972897405828245658724912230306583633403189135673899194861093712434864603660521638395677812367978112394127472730045166597834221527121014522063063859458131164921148249912190798589368832098836604108972512162490810094371439887813599801823638485549694912357429350375893086403589615505580668853880201459429964218247586920799572726974942632447138800112725700818498047927816837012715886447551444225964808538838184379098246310289382253322656650803680208410405103011981488599214638985309594358486659289678192960539772780737301389496380486979769151315858667416797453368606806257721102690466803950270811403326036058007905783917554080401789141803897834772673776578989443293319751507458687365864216006793254466459685966227007242272502840020394046829364132152533921911152543809299564543905495415276076702254079922880249894112879248509926883504363713476809557943476650034329428314607242153010747605997626517611962004074517489993978836747764834947370040217336562808802996475134837005987794370865742008915722787246015758020875538455573364672659134197291104779103452146588883511754957240909313459358195715123331845229399083834643945196476614168623202024112827240790813925762872492383545290499379660425340400290011252536267273676969139110498675762015004562475899644137208088780803981034201023495211581125499878360884239599741683205385169166806301091246856935990250309158150391653531607714200958225083922554367545107741724934337874702576476449235642555778377202102504115471068219620105414809237559574076340161500670955422015487998120168190380507193681740392817239096992925515969330357850163486389864248827714046386093578087308774232669792965713346404086364931582962603292892716125174706886946266853595127270662939693413854884244734100315175682465585141824496561291834554651473297150074433971757678095290788279933452715224616891847994375086701961577118769889356915409212725597029059637044598243327793239169957485462952335028048902318816616629516029716572295164220243623527629931514699645954111618965666738654443882942235186182095715759147476124694487123125082726345686980108063485702735587483375655570946524392382940459593694881947925347426293033121506113789269566128136191483652543704644973995986594280578685556087088149336027750319245237806558305295380522434999340698487945664572644492909969709663609415782704200674867981905381926627087797295368112006456079288783361764497424752678614394754005574786871912526298363599193589725230866279242810263604994416163012908819377905836773373104805189115876280046063775332336034499971783472171119207168756846981051215047738515903458216645217039976824559922397615951626191643968031965834327634146364557773439702161965000712347121889381247424546846885529025687642564190075362995037582196315996084153302349592657159628096335634103699380631650890294639099128897455987444796155189465603321364951299616091099889811464468690348850303888249015223805101814866977136455514674481343581077312925325734650290266969242875038953710892575595101733349915658704715351830640469830068502403081061742853729517930048057327773839998435772124503959221854741469915609506308152942480127706900635369215364658303076272944199052189355927931919089874443655908515290724792731763992666252821862217890450105450096681805766369579772651673324845724541840430652942471114722335057556607137325299973386469344459611937140195345071402487469757234327095010611144746585557882644915031911341821345984272528155357456206771478701336748710580685671138189571983189620834970996136229552030089239233732360424608116942925690062596396895954725811416839071032484908401552633064473893646618605999575546983688009158992472372316202858734075417474429474993015108744125915374539426885178008630509071005369463791786971715247076519819712539770308797630249101138541599769470007596270818154318351031497030942022051096217888366342448434833356904265190383809267552381386125955831930535051074836353152691906273568183032569335026685274508982638428371336724732764605868536848245254308177423425579289326126411710949179202770781394993030474094718270182363576560962288402646193828281027683755669973683185964376871708509339014993531592849745039321131978701495058425044052222532088572493409606713801708010422459819060567635052787353019267149949536606039806928185645471518584559460453352192835790728860699834671339805142674511780219259245007474529275778105809907195216902941175816487312611431914108025958484171518071006712167323982279137198047646498030316126421728427561503875998802786040928537784296122645693156208814432748257485136421487090614400435336287471472001211816692045785170154444436475299166261847605764024931536829712153131306005130892337852146378851663639027217634175095125308093841641894532629780445177423078978402553894069566901281772770474029422001167529953176399907204162674508353811252143304385274724063347972273112144060744645787759183576664200953900292612278615471496695567274096080604960405360786138795298238078420992671762498821565857102512863997423587185369841281384481075671730374297623093608523716154214921607354061359668900137775836323704993711225546794788723091558582700389993921401890666640573151786622167326914830978560942153503971256529303297263287890683688728713547374801213045812126453197968708312571864044566274061748519400878196857426663683452422013798388215921798499772526700783587639420803599087346124818493730867047073096481264763078696614248472612406587637430025709440610250095302496541187171713358835091202473214535389317741522855529981354770544804649364633041046620672017466325217409182704673047595766830658989116605323433099448677326219066394573076185384906508043413680794641748494456763861516320145421822695317916558865609635275969785337598760039618235531076356970480122694464979144554520938361094916747549811160691305190909534673528942191811276591663680721928111006155996478577604818097974065814707398925424423633876780965429730528445246603153548264546679536140135870195354172900785837498157354248809013263211505469639056113309545145056085550177115095175287438529662651189924907566105412188217179172582870679131840761352741513327273036576763959929734301762425948054492897747051269766914445645752287521829326799860926688839307913239369220885925157428097467962105191138665970364738511857281493347221085344520205695134807016997304306778261270373521701560439245431177782465711449786305974426558725034168023831544282611699827987380987628734203556529108945541566599226898171431335241039286939694315116481114213385590132674208587048192768523814809701848097735265845732266922536753291695699115128345460431644947336952640054149115426766796887943441032228924550297199251135274964014223139374864516076515909668047035272560123528769509661387180978178757575900461164976434709255744445856079636320800901365173291859391866576216934171385872544794099996447721527829775995451279894780836453991237733730651954055417531331325755732686433387311947831864873761073692505268280560645439581174850232836317095351901762194671433361923001600152534479039042522252815922536524089990403606641102675376090958846758282151901554048381323950633503299954344437315048901559151259524318561688041628642720307961704660955642858745049604690388439104273083949949125235218539835479830160050756822298603001555955309762439311115585860546745457166234119441714246590269737876056317275261046345321385634937749045923199748638911253601666238344379643630631954229714443428279637366288766495302623411521159171410543765006737609519567106658421939889694866355784898342510971119346838798121385794739405477472155497818102944090166956700008171334287370176439904701822556839694505301123549876987415105859753534729371764092330100823700842302489327950444774025878450473579334402638808089950030497768432684150042315110896748361455901257148793996640471949556391557684063483992761294647937357611781459521059234541361803117454821162110855763469125496779353260851956166022494989413496754499613730899960833356479075284369984903050030655867142917971412255052802650717188272165313237494590223883084307888404125302070769411429960459257666966427035724334810671267104453374377934260938323178080021873818566502245849027679689506313399236274952271396162867367912566715739865882469561901784556041252488206414580961257681900994960580560480115411922926896913660546462775949955815544515370308934782414982899799476118269642864171379555564008183210429872365708669254517106559199868173558498006907938298967330595308104030160712703404872379787165213634463920737697364856886178686165338430485810378430718523293445760195706204701880147234526561972921295052950276220740471160868960932992479425851112327055473119608279167433175664366805966387387913555329074009397918481950393233608158930014341901470269805962627095898809439156264405507381946613972986731865713784458221057310094974732619916072350322210543580985512378379253799548803297639911211130337030261792767545313314764454090330582015120812692881765791135546982590260111185378821032525679400598707584086855028600532362475974642899236405130249238575294934243555403960216796072094225290329113248271103568221965341781347450942447854134490469557057564767708214944301365211824145314134815395443080247136026752614484722232154145689036417936774614992061711050376393072911944891231187151477647007298351527271453564836037231453411479963891378590943397547380827284790873616323320921888547066856996888495748391938588570252126556849332238005222418405072549318132263146619875479428961265528439924555132902359423508120628145767777566414792099765876220294417891256552307871298108122753765675826244837669277848248433445179282546872078972288195158922766561116039417655167707760327148432770769812497046981231122954527658856699939925652274371961266667729396297210157221899170902377965447798405161437479372012756953405578688904926587094454368516925489043815582664938926664820004179361254455999470909196754681485236233758705590897018132801744160109124567348687138348824001150044853174884671918876500793375482770522525260018319130622317325258373814295716576988191070445192116913394998599890574302131603720694272832596544098333935652873783621351152711039189378790815158624034380488189681126540853067562159429970154670011017411418532093667450581790845388232174272693525477955521693370256385556065606346798250479099592839425420631417420550497738136041916405537911716387887960804106250009112272935912145999406132609152313372908207387671250915247492112676149601094750942273589578719492124045954709891349535971203057675114556656394108809893176077059560309722844912080096931187720205501879712117145857097509837416250152131369925391007477158625023715568426160339096284304899085392595311264815951450737007260633813584127287142039965866971659370911453547922817748052865689296662296307587392558966186782158681009334196297866571548548429720814803035496434588083853823280822951073163051467992621763045690242153618836318906576526190517721159448923335685134908165284661074208059530420515678124235572657551350748839435327024124063277575444770300921565963350651330513840072471237638044365340646236559670899199855178339249133169017541959778352615567105226724161488745025600813925498543090553495913605041650052483192591103571591510919615317375972353265087151990509081179302550384997756158657479583883872474401413835563140908164599192654305702692985922368390929454562946011884393715579679628996904538721157474754280984489569215999699879688889281878385341650376569190872168504419894599593921133896751977211606955419374022884930052226013660632929827851706350108843153806121339490265409134393863339726032651598408937553406808159492565169630600646387759151846204803795191967355122385122805287353283464783178018114147052083821829149102505082729559297121108280949796860075453625118792897554679207620275228233727989139078127067403829468384970976284097447676580965414823084814905966028153054976701419957010176137013608875299028516257359981926588635022236788195408532745608504036777923633890114330121500946861115612280721213021954645532720577204026600947059141159862332194762398987979478922838886000227019996539484075673381709567129977139863742774889325655246275781036707849359311782730602800870055942023085876257633088689559368514284836575435886498579628357457763739609135380571278126558497508354001515219663197731424930513264096329202804772314322698553844520767705311860057324975724024785528839934517796240223812067903960768031404542003351451663119842076275154995496691473708645322446668932290998989721391527014541708337349055781357583642625418240431153851493780351965455497290460698193239510012239566516374418135884911108566132029372579873688913254601161384660007752572431155518871354062620346081816627161538628860054167451923945350306800685074711152908982301752899995230481489409013762030476558603712409061235548390249168542261785625618288556967314302311618796064324123851444506497782851669241935281571591761496247477039223444012754839590048135595128644285054061688254822820948546298479019779906232264862935733830714740817412098121387454768341266345483585688274329793930293399874970324103545640809718710377273342535093169223734555624570201130296932054085388198066541276625604697039445308012914340935511396205075628951048055874420231068669293257040073426973191401569962180085782196393160388910439701612390354997020289267332659816553074737514871522721710894619100965354303115542701592949309964901439179105364303909601022164368212964201229000230828329440333026377730927388073275701548686146323228839773424672084003899479601690427749699080058350251456046228522220707441372427697294132185759184156429220003843703915903235720719693607740635162040502702406021404052411462750536937974182134736946436908702743229635801211539401186129396164715373775161281094624110263391809523681405416611464354016841706946001107280282929044016394499549068825701115729568285301276277203722975347412067740575508782047662522695071045886443746255024903108962471726429416414257958931193146651408907340564281054382311279062834614983787391959643743718748204840306757837507286125490156917177225189011456064740393444466319273832745049456451844394061673826977581869864128857286777316806378773904441886577309231078941855711668716589095732357979259259714136899894808137392405058225970916235248801601306778801534729286476363448261387066488289862471377122754207278121186057991607652757224949630366480118136610304855626445713801833686374296199494190325817359704438735326341789958674059366798328051863736219616881194231959250302905712521556812890255596487194392308127598175958862530350615706999873707095997212990958350891711505987856163427048077167936419537536094260126107596174338537041018630715756450458735859878642555825561032459754958789054916455518577318377332802972943868813315632994302355137561594974366209631171988341246856365998178751180015328050262451444871861003017572517853409401143952504981950226129115423469563072628866749964251288981933741245620147771578901444498871064294823911375484265620506982594724351119869646482318891169838580082941917438749476408438669117462085135385515768631249023538398792380039194840675433296285361673255853251279597255005403185400571235709393642012595553113893620126629405036223946854477986630133403602977545099783737424857567742447325572507326932441894394819602575194125437862355364038557814322843502517141162674847741844137066563579365884271423864756322704744345323100429659960303271879886820225478412938259026663284852660020993172980873401971049417653425620830269265247896844890348561053714166536330860052568722001540610911013271517705272126793903179049196269368838497439000556910824803613110953004388551422253736916458834617746595345941648034080521564218402578337588246359895781852890811566597441102903697637481147099447746538281558004452535820699024413028606425536898699499572777661337945399913217620736271983053508393233073105152139006698146065662007240708749310921025395940491087693343360618013881404333705617848473413870400408658786782078857014158126266128129607999142106761522566239525369496257006043028673258858658480141654082137438468916610497216677445504603471956269713357849604932411790715781327309808394223325922478008971572888006751119866285316581479194262242240305068174451287239581629652759719292805250896354169789801702016942027469809538481000285324952598005304174079148727845205425480929797087634376280167564192280595068230746811340854305018952749254972429325846034148753605285766496639818770812107810213478840100611840375332697493707699013161098844900521552114239056643624841466951479707297026193495187561910232289748091032006219202688571511086570510731226309501150743263818646187407438307217935465186875191220625773330851120086727388490618940557861643812620686768953299634715935470960922087909828367995974361033318788379189722900786087225799830584064621924173128133403764160794557295020146730794849025795181604398845897847600971662988783687879993423049585795353652636053248052833619165362597271152819903207628025738875435342806759736488737272247297178799105287083047948108645950533366506342996889334342491293811940213984844843781698024890771562947902048723372582733704839816616693762027096582462534917369049421106186150452980978851493737248570400983454357256592675423194652557628667394084190722400479012179698499006021523473244217403611943303340248919236101045760128153967340436760895171003296774036766772756361555727098563190478725534650716355514468170585259709165377211190958794604514723446393684183029263432597398592221359068249201748432331719367289821089167478474088130580527967787335112710358659680847248949147582519674972246623156536132765267913418826135162281217156486412798689351594739966205503771205789650500807680025991985864971801827258322948795753075871264739225339801324205312223340525398683513004933335391496793306717242670088714007377556750968009511462808046589412899402395401748186171476124268264542126931084087891314996206467482004505205921924899655021328231287406615730880196010412141658469745877726141237161268521559831977982837223234361784180529637157666225871220989258864514380113820057603065513931483888434738259106383134293876095293628950292154820706754612933715687924099365076032035098790572289124243994117686489147964776849561201461267084912680776565440622394622510140624736079166977701369969650304438732134083346568883664941751564350877125783941910986710473621573672120737897800872531506794143574046027254756780821056093459190404773444547013610515061124016416764371911060747536880520006972587984934364218535903224515271484903541366259835495188201324466902720235726668780977174178677178780061255056408011804187945848398925977693897684468678182608955644237939695641267817546341285680057931178495310343350995923728824816079185454702186501550136105910094564787108657985679768547268241724356416796566022847686163488708879093859424246805471155226970707509826913496715926899218909936459395909977973219820285392568331117107862839990346069874018458565146128281805076235202896932946509167240195327753740203836903462705011480239096068108221540286043425937334786808886756808968852645666638009457484661890335100802767416595662427203639568284359509458825829100993202593863572372435644552061625325951734837026679898923521199457693037395901421874529763988156301583342362302153860178742064958352853466778727459638840520593900463657709031508191306584238435358640762294720890617925027862971878733040818693269464640909479476827657567253281630224130968463845788617665400907684248015687512103387547934991989385641626500056871015083624765515829356885447582923915531411106074851430589042060834414644121466179406419019554407556314716966582885169950331877798076152273336882222851049546460830254177788900534779280486392894321106440117630296841954233201254005635495309163140386581092214410887210166136360542580850758864880269037277071028435873768349549206192660087726117079008686656520095504131654527727829857898383623157055982307304580979863803490496191008559598861216822182330826086381804585468705485834052681937775921698988388393478594014570811726716325809112268199652015460093283113958660983220809914417852785892099562140281213568981988923982836231832261274019788965908936742363710493859772504660482698526126822215255624306453002677132681520860677275662427750225468663414372906161141266149369279460850166912939238185259174609803242676228076357784538448066080179864458700979967653380228761494994010855749115502364924852933598280058688685881908386926313495150984748431737673679071757666814826289730381036339104682494391844171994417199401396177645516023970296554629756961539955900682190834434914342409268570440651148635560975565975930857057677544615367781872352818114875013402968306686838769615567879639187146682379432748872450840811348428360183909392758077130405641718935719392583901534993900415465978891309787807199344945917287039882538733359969982126428892274204710697692673120509743523457344999232835037331639739476913272160297223961726594386234381203535935871020379040283140343059641307657898905567795823619656494266456965297638972443222687846571035470804703670636664767441875806410166367542848705377101034293675652403464586640985731535722679579270496001116499807142475077527912299421204416999239320146270143536731477216714811262930548812504059528370624678278293528648017800450601706621240054453795122620406777319589455278369373896322767395077127173458066663028861146991422523044727228272392538785607667067820072468895407420692622593415045957065540469172390829325678039430193639107906582518361220162869660579487052933162177438187828340218518486374733098001244071887224214723843452275182132479852960041346281210416756435041051825703255397545667532170423324073644342608077023899430558184862773785100559392356264928942024894411823048613911781729209458488396796233827681543450441997097212443032887247374699174390867948606313430583091490910511666258185367129007201062586610147327721598975052953133071117976302135603445526587874849875043224815469001849693629207873626649352719040885106630568334136009591247405683165514465893855730652058369028043273431904540404151472015716423141167431225371933387696309389372241838080496411332764458163126893408864677738045694124061525013804104707125150517287430967105763384469185542432752097945600473721004389776805849315795204383303667418276626229229843719541393219077751671866243996140509207721599626674278330453597873252272566159205154554204971445072085690812156646583431646531448292702056611256137523158578629353719291003359403831995631063881222447421954787998732662662296361857946751298270342506947940918223728335111944873874582110205742878805497388058861085789236158912696892871562554672035088772924867896552470154003966615879642153038969112387277965040727417641060020907858520400256732936281422313156290161503360130887940253247976609476523084929851908104307746980320352741843351896882819423076394999537610607970090157468446182908895942347893800207972899248901866407702878683389500420248986900964473419011273168550753946417325676068015408401228684101599882652348204672876192721330695342360871830207084814199452431743157617475745788988091598971447036912079583222760554572384425075677621722430594959545662718753446072759549917718871479308783420316447790699214593581801847478736109048790771683114324858283060476189130329925717380357868656118195811943885404116585466913602087868362292692600659872913072197301045856310200405507307541915401504130701362008518147661565099184669345601332993340301942493204459636028293809289271225207453132264860871888346827264441196366189322375065561188486078566705555713599463212907287822034522675958060804796970227412628291165647193741150220001718166055738075880790818254512190377984061154873355389687157752221405730950908046760934325752613124498920614767948613039839385489175863775616270063244170286642971105801064909682094379942669037667062769393726409644015278750176703583559709433076797357318149701092506998285390521731486930160628358614052027972244237961582593349328502028368062577260978176360574715944811540841576244395522861037076798593565564859532774974952749328103520007587761681836134518942819971662413768700682900472959002446773722749997777591106245268667117640704700760087482714221400665367619390717614920289705849448726209652515190226527412477589344320037430215208164605490173863577783880999254061497332126058258046924469779976012935681698968438508084450617725939367850441342503290123898691437562156300536779313455003261716552714919799919157362607543032836847568923526871711264960030443053648243865931379070913970177533837490448718641590999364844076771191293387971253300191803642723501729501791949523736032752738893508315826149414797951245263586436036924478404716353607974150160900768767431329055441177533267550491489580458476794189615260905881818676394954239211172117397257551984081954599236702229840074846999621563532806601623179298633381243705923283739716338557161082808338890744654768920629223789973116774878970197122964219645951105821484283972253610650393417513393579897315936549607068732299932975508025965502981774322848914504133347792379356586223328896734913310254632176337462508231886360057706230357119081713364976128744016624788154217888086805743814084888559318619562368571451945947262832398852455735608079105466403567574640388859946830900192537888158587586128882314467982729560786750380592258988491581864383872075873499681606574079974809820494791180759286061302788944949153991669181891848300460556896088395309413538325850618502917497275894771575983786576861007200249278988204300972766779391863326669768622140961043542503373235331790296370942245517751424332486285484466002575877398495875795718124034780907774060003587222530167361511212337998981363165197025935907443194240517759111423386145699947391817120689065749101130341494084965660055151570681402286395273318561273037241055907285934231592093946407331822571171030978635693845880857924706253538766678551945922769849282710975714526432042905256965059135937326672534027625903985396873379231657932815253612384472303226949893085734149664202703421041128521211621139604367280383917363057410796540855346911519021474552527442461352460555144645314140068947289242835383604175821862967353063092865545869524972003852299383530107724588541525562899438437643594462607654108626387894324876517303174620701964798759014781226502844417344198672926293970972218776355299714027012425906979786981524221097876012343005916538301949290620381464293373110816227716266351552962595129207966062015459082744217309472294510417019817228648943526036050833222078735891641021006249819115502001289938805755331295901130835989893544817418647304175649986369575994225921401598837421437485873533865245460770642233986520012797836716591358593551927886706878005383471535351154797515154943609219438666724891822883601539554851327775444527246897175511417966649014080381143641333770460438124647056075573106251388813309990013370749216454176764239127113142714262153023538066233168199958231989057452220812792066143291066534751900003797030767861183016599356368186586339029373732726981325674399363061972536110168916073734026934761503004983605372818318593455695578969983156340391020949564070363884022858937126221077118812136340060028202945092573412117759833944705933899944826121808456703897053086667703259356060931289810793810910299110680242555259882292093429763907452244488838306030802349477337372762288513631880988552651883659512275540638048706891665076172821830326369294864142948065151249628799036339698069577232128969764456885471358310304170342532846473944691436786673290662173824599761460887136216373378164155232843865018338382847467017942021146381541304224207489356265559277137895246671703419039597121055375212938399045617908399506545269849809033747004811861960570725853368107614834696113219245280911501424033846145448607341935931936233211095975060862318128030704642721346125624159382757521164826033911010441683855398184339026639182242910715701309214763534348438788160817410066985403778800068306743453572069607492922119309840386533277460485461011295154889611211877702662677160989482536792228996791080900302354016198326094161776458773128293454239566845441672006833786743412802380601302438730864366902800503422307201503061004965252273915864415780241941143876629980801512031317371584733826829180192591087937578995287409643153070970420192787853029210610711842942264035465092482298840597427496983830373355645219249222702739736463430529048518897022057110097877040281884118731264179006180655119072279871848907050061066668763503051598624958366106064519756073646329641416779094666802062404326744503232179142167056729942545044350309209802850598463377608684325754825774279658916676595590113921716865969303116959431886074270478381630704103121077557500305190549305738751683946749979990692136946167293357144757075210072080640727814185554945246123180159126328919468886050732423189741168174853694436427212564006746244994976961427218899023816032112694612359231533279564441802851283000309381589509610115624835009004041845988128635881301885143015699870746894844365389068918693551064452874334639762331398544302064187207012359351678341278412138785038764531681855338825480493753840420287066392029239084125676192986651704180046170981572759106019080640372680197810532023362782156729967325057460699792052519373887269727726229694417590969857845761893656210018468742586280823021974032795103158894322576098360542714006199568820986155274048834904221065361169422401908513250143733328246639020949434796224563563151009563005120661276738538350637806173501762104173549566054459535438130375464425576027200755835007900352933257381637302924048286022335971447794566240206416710999284819363896076538816081168048420069976727011813766529833459727466241260850462373438319350391040435372814186732007513503545814898718122794624500933914708558646848030457844406575039703225115871433610024836881634297065044876633654457673113590279118187606561536652377860052392664795659211501476329465831904394828679490231712700661269048703575135562847357901434266493619417708913848441999419965103804973612937337490518723539782284055153718474302040023145800115741834642010667324897327908395482997002081103567530735638851384715141432845588199575752133900706108705183801628939758725981884644308963900342741332253685638878116622955544575821662597167088967641813635010279065758003680020169528116312414388316737358616822321382496199204208369950213609507429116347986277370059455676241129006327016654338211357513768201841950715844495274672602011031140935913396435905839992379925961866937998437870729567678767592654480738448072495296519541310404553808125519781964505690848038644311454638255314505766940851580603044759014831481441904276278048400464100798689696276769566367832733487075700664806398611490060657761945843047925796355079795617136021696950816670380507030752342808180986925741054410168574448552500652577667450994589119373390657064282888630157958465623511916091323417817991876638272672598453652650841394929976288919104913302139908687537292299676700365110824828599028831570811984248488738712484019046543610270021599183447799382491327267947799296196405252898607756579261120970330108499550950194369722576540924250084140151445568929132881293369873378952119860217685845920743326778564978501658946669837675322868020019536258238731097071930375386305563484305913118945533559772657024397162885232924233193482275413564344986113650552093195340250510629494915245607650111897986973796621801401860277634813835928042682904787833076015241217427722594377086472067391113353118395273901645815094693928632166405883128072081551853237144965869264355160729742642641873070585116851809279234817129203168916824920822785968970306205704753232836710024401596307530125368565568819948274435045241169703266225906017232674083888616249561196009787711916239738102515132495960391043051891554031341545255016121757813377979882237667328380900673856936304853584199579729018293559864364503870035379476678667131923194604870287074432689114919771269151993611745526891329942874694768590756452378212801667630387030158162940811942936931243173470575506343615028754655792195984632104245526882198768220729886771194466742362293632630363815681360845459812793041958698091872342574550112049550309261158969955474836134395368390258381601236337415291106165592375943348828884257991233104394242955465911229174810645061699116226516784002814800307079185283344511156831096213059218705346854025428332310548882939383248352449945240567641740486014153612515269085038602969882463480602439474717097260571949015656331215368648180746383055548238657604833046649536672811855603180663165880627722636366809375409635706943251414337145876882704593823089594466725045065427415293915214687537378546698781429515864772641694707572406193702536902541680617651538402033498569402718193838266414187885540281783070918358611000935974835075412117959169736990813324176724582739437913542985243586603148674161294407887282788477534864294609230651797754109189311309196162628612528955730876646455658573786721878049842393991528401743772689105443969827451999277295448333613107749645884573496709308779234563081814582270833689108691619234310665959847490724090813860820908887365295713925462116286249630795316988321530491713892851899581701801276322783003041884404873541638411603175307187266264400629449491753870166958307677283851850258175839864448019772204454189459315033991460751864160093670462102699594422905837654112401973214082097895302783106359052551956593058422287777133918476846380608898168721852113720447975777949486561420109094166028273943330560718643306302801848199888219369187646848582668813057237336783056749820357467524079618733210190505650197812115424334937508893821046356049362073663106752449849540631966099933308960817785818991261279863023231782620591405789761260657538467038486572202260377652428543879803186382247542890422921985192847108900795691621289635440323814752931941712374165680080023125875184410629378642040112187416632438872638559587320354861474080247713155308073966816939524229251478135466315109677832041437045773648611130942033318305228275134054305170579405183076938475154751305553264729736867673555590532212662434385348586223753455269069385013902793801458025947204308197374581576423843494396009449251642266583060856846312581874283377213069753426444501104512419762764790304897794821618332877740289034045952611087034590270271733088747358296163219496113842808932336938377121412589301651948058795319144501983569821397291100071157280234709012345429581416554419131521470552563045548860021057406827346371020604491834791434417944975599392036336115258554228176780825872834265982546335307041422757790007296779410358534815350680819675444682537337028418799721846350580346987279852715623146712069972866241665950668137575118654409690987463907630332514364997143407564601263243364467815112317133385937120095775460894200850604912525487945754172916938905234030514399616807723137927661839002009474821678768957661068190717377815293962726175408591828894165765891314081722154345939628954835383654307448729510345246049827217924617772801536666652471137215048674983910162871336272401286688671742831063536642639021639690714930770614449142628381226124100740755043073010269666434241607711436640363749195124252239554082540107530894808483734397926808241590295885527635106986243039792579088245864688891152591482128165690775830437646774591541433757075296734297507769425774312813282402215125272418015133487575541889606683839191330031551235108966764407231811051380355437970301616705022871070745821550069608277026814580951933672922217632786148952877646809211555172972367597053781100259651347986046430220762211517855416796760955771830653441209813831721739693888252739393025928453777043946013516271052746312136899694132617783010902707363232871401159797969350356217292167475043003005589539165813536836737410952575708299379232105449531897066301886869727260955211041363617353552807484566860178187067094644943598264847909674760905173167593893083140651695326504287210835337835076911170216887608098372217339419832474830731267869783072025787894484039500494371717373597263477376468385541575665276677644890192650388393609887334306296941407111552987573848130803633758592142239815297570814938937232954345999656088759431290482745662259916794387518194522970575512462159670496109236442679625315697849096029123066713592182042384106969513408793896223863538571325221891073880336656486410021952662160964071143013448585945069560700911288480374973230610639941967071317258168487471739029614663752464304208915603688089120155033868042629060213135991590455765193289982734190288505384722153009671767806626037048544909508379006235441308995375186007489027255546657526975161267245584549324874493831017236736363322355806096147620072859250258226031361659328690621428285627573657722332355190757166930073222149154504214945315422252753616033707815049059135514081825170561072818133972794065849855544794827180084955748558350926379593150557660265494953442157101061869045955702846047501228529372435679498206555289009114881455252780041345461091872894899087448875120265015462128067547321184699396151189367575256807079205805040619989233870914205941525867115826141693054641355376369253733649948934628637303366330265015989665161503590335231060529654621117548179914218245763612519939571026965345284008364685947700749624556936548602634584763115859589788016529721937033664365711702881789437695752950894221218781164494958544904474977284807477665162700893876217995051057368663340486341081818184599494783690925849004321100065745385130821715640800392567296393763694141753360202808607887678775665891930434598956947779018698493847089669131583785103538616032834862770895207920369227122903176534397004467014149130195895057993569882010925741830947429534713971039460092162726172501025033891122702661761949994932643537749598599329947004137979554754530891300533787817415762796273525364192810810703781689199452705134546909357160009786044048415795847946555370265171927066482542858172817019737075817833924702963001954871170731386528544227536177430579458437821954641356172028653422293273512050410501309236601392782732746348371695471730448094405254759071400862309630507508612850486736588447167798817726448281005154643276484772801494228910621622958449891261739377023386126000256072197251713241002075472081965647637245901966285166829714247228427184124225593259444748261205752073419647883988694425747236461211299059874291609915067731248869138331198216628881795013592276878550237002699490396535606803367270800641987562766101803183302528058165396481373963700150829590000978339893374880066649653260138354181443497496651127035670794291056868268159343742434684209660325083254029857266333474194066204969181405045943904933000010911113169133868415129772305205074308386984747307641299892030961906179366801076277025253569000531439465516434709258810217529941789105769385564131065571791999627499745843529605709489124713251087411012048951356977736493832949039082462578594855150381490917888322514388128995304230290306956081709261788387296991972169170763382773349753238216455912143044562664796577436153173890876672810008132719741616213917748043483902010816816342066519968882549516034912138995278615811356720940520766333924065577644017742647132723160081183424643603020632166629860077960612212497644792121751150208852749384418782703507925975580097834050855130687153490275928284364855069041737198032420034053287212226941405383640890367500561602364857957528747142401726491120966465269421286648167810868992657992527262688704253603967252274273981126097033649296328259787737900005934054097438388063065753815496102030494292969815617906162270852808746464943672210114553474138604763111446600064621228677706310527947525956690993001764062639717089512411898756718750172601377701876920814010776770056923270942038865220814512741892049891635015458616994944085923235780012488995351322147311224220994832935332591210009715368084825317924318645382294428979018040489777550589541970237367696723199978873301720373859010893546334807380271501729584786534043591425899692741042179645224640189516129831301355713626195149573331212395017973140386630929309202155407568431906856611876542003301334698211184751315640305011999929485826168092480477625625012533937410098441432102033825613690598268201257966248241856053686982866053229885725631027848444189720360081608132092510381056641636836574410013742154872215996407785641629107244704285935927881703185707607542345871086052940227208043551337600559469270049313199589597175779260799784735222513186545813259807053521410106801491030074349722952584136038128150837805051654447724195711231859886264084857462238460784427359893769006959795794840902762534176083005940337358358464391843966539009441360299605353892882577658759543344644885203309201682076165406060974590437083725602643125329604641611915850832681348704275959974907802295644266375064824835926175526353039540206024045600313391237961196868374189762473560825329862093298298003459203088181653982289207536354540349093059838475852030433888871985480021672121596897671958352864427376706341106570134486100423005331684776156023218832328792574358538345848199102026167282675272231046550738275298995345965666765349125958976383275734648452249364027870780362227838093681721928633269477292675033347746388992675327629504117380425207429925914444721778039962985940078794062715510506283331618076249296573817375934900013705874804408304155819488714925028460491830282265925526831462483803318522012475416344687252847160175794032336575438513585635465647874580991657925413150710110237773390381161154654426979640121432478846015625434276563157986649565521936294322383422075483462739433020897234685371307671033623294545828446104715966238699575919548907819654878314090010824490298216973430741850648922237847859422058731867306035531622982210780025087523545961703663854214684308357106972796631485290233673308500015614589591252253776525975845013840292538038560206450862783494178834318177880978101622374461760371976807307456288963463137133309352655790987827381564050048338961146738960756813105741489725020531175414883971834227778447688632103253559144199526621937842960509842729193018303050671722992875197177173552539641360631256876816695934168461690672895244807625679363628734664375292181655134311017293984982064485978350829511146116229887341544526747343824564015680900464468945772919197414391810041899548269899024104971950334221711165886715563926695822889128407147998367469840283422589864668862227485752956397277808003293696939315848613389433709742509969565306505283012693552187803355947965957714667227652068432160715568244245998093702400076405438368541446339980308007885593028479640527203111817358069245342346660772186131053641564253439364144033437240141368236930816629935765544979096723840646810989196383319534692380072872468298188900072610154165732883272854000341150081173566795541269765660663780594401275335318384734791787008176631806840913348631688692574202997174359697363599053442248781516526506336750173623815069615425750417661539455399443670133773805473537003616775167985131632515001922661522866670940785875816976631749795798130830120522876712133860788840773882806283557755464474639745932901334251262732477809371472474657206248182973655635526664848426247644289149371208087491326640191447955753633538561055127596044880700623960132538331768725981275854149565518919767471030293626661791910763294281547570477966174058265543791812540127462983852114854996322413941019705704499853616065696496977264802974932914016480815914558775154427089557053719741420855801545390216540453460751718795874767959827204785059678546242861728971902101370849384676192775135064597459777847294918767947155863903878674874232391073923791992475675094064537049811880437170172001778822188568609514751002201625351173462194788886644149965293324789203281816532161571161483957470095844186317599290247199442859152031434614740836848966560484744885380403495359880584231411947837756670845126671240831020058138599718097129779759800130530089484358673443813898059200031950146369806107234006535838584644705946455003606021092334064037234879483615992108683868183412830370609717464979582478229118048637050022219611388643983345104501680051786420585375647694818973818292207494691761048457529553808095654145767753583357040912103261458916165980218663685654270981713452498145726866254011901189249394722269143831469398361582177688425441264043649956967864686992055643607012483206985852865215707215422334305458244814001502265269685744150334999599538311617553322652176871013786267184405425367083342609082241878096133151444871875688055501022486917022504296397092468230522912957528167306406598245004844662802272629868833854682821273553951022638377412687200894936848476442465671224606323784627267605429218501446699467541652751404191127031920666288709713889134362826008517535560134768131371895941895460235620695343693929654179704443829743873155045407273603960174643649340179924170223415350587883626689872884473304174225110502760835811650214066303133450996452279674708372340618824476508684090289705560446798565382353165759002650201407824969295495575271804242782083417096683848356275051055939722261310451982658718360759038726717113779991269235827946789765092950292611878548440306876325733784803658221892157028815928893839727320461273007017995760552605629935907109501714799201473542409481662436486096718936490542495748189140485104404790244421493595638981586337068792367086443469469474609225797201417854388837348658308597954726460816951627094049052754367726986749370091791901647875276778070434970957289234777763770143059964194446199389142582854782859065003158944597489971449554262896859503032446924765095370187226946187047591020375812410305053251678601356751506218648604104273221977932822920396918599819286075017429157366333141791083870891404919353384075347554850951889522909758007669971820651957585458454803515426493983361711513999995975390988320954001588711689124574601525814064875046918630664198066664371662006900861198998978743354157803803038539108224075838133748597677642096496273682022937357139442483777450367128131626915964704639363276223342933604779721067545685211786471171376377217949278009789808455886398671073311765080733524968147138920873239326932566934087270021931641271030302835468756862643938806327050206933637073018955303700332662555068483467251221998390637366936369718005248035298947910196445284332106604170467268138949189069860206614262519695573729652804816159434755090800196531123631140996917317187692302329000767969543428756620533057456014339644738598739637453931885428492666202950528676356884998360943412310719252402345841144260437303411821142424505523205549523953880578041608991553669913052326015425917052912461248373487476680952138838745377919044829579040455660912358318733749967325422495814163134810679373585471135585842706677118862149976142995110848668399272815292206641632893910287514521751294971554412093036027035140664352849791507672766412559648728661264367928051518065567280294554372544930210873248533352605645872325374833917541144445140140044184767254076438087472286785505793161957491191743133369416514210184607105320345952269169238306865976136867582734177826484579729622499428989475643681734818398331012116403198776539999264524492172673864676923129891995921971438608221878594511042077795720129598881563475260211778957363680115674146916991846165538104691436217354454364198802655991868004458959357501701445215308484399624831524135131586843697361885920618833778494563770836290975090279956379763234323116045759675356609227936965126293011563208468689837029581575195830730377267156234731438732533484998383027226509118960988192928211899385232877886289368811781765626840652601696773013666862682318548192895152625606133791227846161739343664599189297959990994469114355013896002951929167684522038207172299613759246238319279621261679478289774158461490241128918280418856680580464929817498407603950207813054252635691686558787303116043154204322119650124099648643314735728919298500975671587000968892207024772246997497329056912788531992302980006054472576300503017581528855608532677500964461749878808705941640526441493492551080141326758012842669703615315283355104994598579005484096126237431711388719193997588648713588257253798004528966569797925336853503584292556473102185336882518762287236788803745478282351870931056770595032738874934384788719241712979638963964924468518516651420224676413832653866873035846790411286324547212420170676904902022326906541494041826288961545043045993986147381323681486639405299849375404350380196073561043127989075682647552527908301570431847648879657645899940915188606323354904323968462116207561983656105841381213584880302299284063621261012533320850920439915602068502547144504099218763963619749910192189649058758955439468311971943665366043587491492429437921033544396656319440416813753813121855127509392852198469812334998027991400252520025447471605154167886934114835840661484840741532806943906353404508794885549347260218590620422674517923856927366748173399202353140964657157288682829368171754607595473242708983573626760630507898312682104840094824308572754589150172447834729036574622198537421135818654909783806773460708618030258637935386013414559655624581689285774852175717608318340692784129837973153511670677207481691917106452422929849510468920057747363082760066802347328051100847644222666779758885280657537754055083081008812681082141028990935897350773743065134830037103885128508413797691737959673228464349601449132880484757280255238752411221229093846277286926550729950464350451931350939721136184668328718645266865054996845330086223524139190268025773865956010067779896934061080368478486344552243937123039087663636480618370765030249627761229225057168988831635068386062655532872029862601532008442661596467822731581103389916143146115726024595007256332770248639129149334033073196875060916124519864826145619200019853388740588152155774272113657102849216952347385428558407902348135877976200462059299451235893524714574958625608532041834180535799635259829393309872101141610705074396367659594272977154608480847963272071245305615827472226797808794076651386861660951776677445044628762646797281276236249737137960069901578850912997457271698571386309700053059095072063542091330546876474103410886886836121895141350407214849672461805625627876941681087182359634901114469690565394120309264435484744247979123406502235688811111387195416772139281346989907403557499078496748397805868405050127196168425840698754125382215163406386077892140222880651763073822191988316826734426072882228943046071428342198273326690259400062968545934904674628999450642119529497638434692705013079189230002785008407671073500605811778481882401524750128382543120305456926293514972424318700212680187153428140900371363098291703174677262966685382209413384535559824178500904485943646703616770621431556184431982880842468100796813193301623157858447594993680233984969173837255339668951435008252353657371310813806036107248416138202436717563293976155349523880397736270511183673347767338571638376663324828851715842311756655368389525501475126377639563887295868492398311578833154699824742998315642307862557575502306785332252156691522973914611632739410260006760127170120494670023771434581861970703102894641614540469622997146351577461648512693187127829456367444681709803481311762947204913816541482643582245389859786662602704016253279798211789953788069309910059271194663274663317358356645331396774990132592535662286153281771315920376571413622577342931444351865849209638913896103379575703014205230434319147951619602756325040158966744875953038444895566626406826383691606096155868750139261777302366281364741690974829965027485630736539685806616038287489959051992017876971967207305120764152797649100454452638616396334354980567715002151054506900363056077201300699106622430201969237273029784357732369413475785846468438986775130960707078436055792987196960903762909913288503129936088379706412799396893349661222746129330285890092411316088663434435859409018844075164854414108945811420311489235402200566927839462258285227387352288675674713784855967754357323400989074268984616214075086286960786158100565916510400098082101356482447707505093167913847976426943436849959889349400884766422752752372402004631634751361599728639459830304781415685288083528949875208052158708867105995773859924879681207861781844450324147549746277863099194040335846525424289739000458880466288119972705934135483789378749774421365776150755195957531238834519052194324910068637638115292892123372680898734707818863038452098382735208331478298178552835596444550325700182756477515229692595126404048825367152728662332151354444736700382252187879197826561671716302271108842060979525397249903244925695942436545842416156046764406629011913943556504986581934580587850458892139696094878814006829167583206389411532693703875901526975432970830296078063417750827074857012339871254232857482051838609852890843550593321092682657737966530111908037885499930771827757454231310627654043419071597081804599410472578462901242677729126123491202965093668517065749220487087543032183980025401681212170287149928101764438648810096837874916049952155342930343358490557955362256410936586775500648995775961725238715675984753259010659809569903362978825627192224266513344047699016071050038519290325430567420957856565991754597114470974999741515667844342462407866227771497539995234735333768602972318142904921096626707779911268093308234817535509061414226557374120927890011492156764513676676595698475365483957628235804508578175515653782033150327144053726411657644335837705494179662760198426509933917264654305531581235133853643318852597930224421318320306302266479848938204769948135967700158988440681456556173177685964305245487809370067876793806629143006017729357532031403348166574082956332021876928574684173320237020786028559892182850331797019322847561292250092733016331067164308587305100288068057663660000024904166451896992586037941459435708988708629922449245810608827569858780982191435006037321468848842984017085890140640636212967719113609522276725429562279590600310226878308157392172787661012082847251399419782178647799270799188999105998707718935148095994586825438040741161160035912773845893272509806054737616599439827198502999003767925189770484404540249401358256415931389669085584511230635995311842894256196100765312670822590384108162102341927262913072476056780526457790356145572910351711589585865538797669215497306701202999100942665287455816508729151707068803008649971978811946486480383648985034214736165465423950232153879866680630792553694554420543623704402018229658596486036504902448789128051310501292691024183224654008020535404987796325876564175822832518405818863221015638584633080645224141270498043658521277367982943238043098004819803568940912979525038061750106582473344935862420273685564782467301507335818953912904611810897311802893976341257550760167439276476479516901140384828558381415917930581431068394949624392634214675469586671359530348385943460732463711098683546023273241487113321359770080309315979697544476390525325172673810804112360158216441542598679683166278457023484617534867731487974366463125134085262671833575597102780778818046745718585861080988102145647507996757551515107003741779208360241415413294040939335661558109128090052930843805069219761542603512564410176424027805749332144771283061799699259665423131944149543186101050305197976244304991697735724558084093787005650392290085402639918317537835387470251941230842810965610076763759297975677747344828849004091226782662895895078238194139309719299281970881704823775975054621373397751670619161795127098578057540038846064430702921135934307460429167847262303247470416202628571490602769756477464920603279742551023733410414348969596615785611944029334802340440019469384639249579196817027482641900098401362767233261187432015604814922814952512032186886880577390733044771893301627886066850796204560522293041369113895000772568200415836164611120920655644665057239264879251185982870939692488759034392159364361579093632815415317277986195462743944402967008904301596029483217520503955679841264385459506043246958262035840327546666006877934868605418064388818432307918942556635099259137878867421692093205321571684011349388026935785286885982805003814919157716156981200650024663484896182661968713386306504942189412622154670601127702420892928951578607081434530521190211607640817858114946585854044620739262661833566655384350210104763460878479717365386823168454809112957557180835537944332920943168871680104870423525303748766960968088228810541397406140735930790850227875674314649995816567972849129446876418080599662950319733906998666742086600314281043898733729287035056163263824274610272379336112187836140181116648645659365910959208184255272654808897764303793076161167537475583468654500662995956937521225014307201627238173059114658306081454807006776075193228996393960184800211590451068105470731445247657613385139540973420261298347621360962320761664460640192677498521176071541384278411663797228246019596417059406415235142507837635300326124570625613525519478442089031188711110564388076082685208622346178072915620346594073084692860781936058705174401572348084639566520517191056559288683124488716676214021519168420405363019886892748826068240397840483622188510046387459358914716718641507941054767824116018585710649111834292486657947582646408176407807718109237429019741772730649295830296735435080227989632549207297080037017205314798218554690587962809798959993553427131032873606180924555737408834404066701990967420567407205827374850204158160194659848894023521600287160320800332440927408260549416280471648373769711616893394797996502446899138186316141437039958259756154588586019828229866480663154329082416128005183347734387675636350805517900516762929180981153873938564394490444372781960588229488449574494962523550647494015066017583637467690545132686285176202681691826535345983134591384557574145709201197762247584060751562990413204232686449843841413885243620189820697370964892163817561261815788212084482779643024615237369826959241423982305153643058851383409470054454460550867169586899612949632883140427906710786140231164544069020794650995238669693829076187069847908406699245309437318765304858516626808397921859347045456750765461344241765895976113106117455372501793985988963302909712122463954077207689093218827011273131147115071637356778540740246750829719916401520972544328608506601870107270016410440196810251776173771239937285937394642827754824068320481556747866314681814670687430613217981401620425348668486290493327054053926098115828576001308243269363814372126176204137407030221486093755643191949500653847453238974134474988604247844387699153061115308843467193972109806510697198374324453667688271829341325280010338290959580543877664926171703820160051539691530728186254709374279599244639991098964649748075832798718073655669931684674634679384540203515525677795451949152905153710325024974682276012291844705420010632754497735757602131275519438013109982237613267411413151941956625390804106406749215060238073445672821399081079583455055481414841989174455832463180296800670990774109053414282548890387376242204368358005253727152866588466172383824397614230662668541921041301865214533933893732848436872974578642285476046727147710669216805015422417573810820302290346521448420765939726962517030052437959171159986674516548048990095926196593335799458874779861605177272012680679130709972113855001666897293939529488778601508686523994906830244898075022307225841034663299216909069084352297041300686705840152481510441620707916901512285473122452987644734184974693211127510767470558139656043797753029421347114555184060307363872287267630363998187630192450937720697197780918895629049200595126077385971847250957148513584785474035608280147470108431880849089464366844882127160264685512526238383248451278273540110786051324747352436651225567948933313205735362616717253492898775176719268182633211653829702778613767194808238414560070102218694653942810325504534844435362578422508382341156366442561498700967429177384370074447209544836862013739087255568748353729829946825362213513123132433274278751598055265532021233190466631820534069444894005819819464861202854662713328901822931818274964272706666688984712383958728468580142740624910871091418336824541461858085193444758978915559650079007640298119291108493575166495467347507076284882675287395457100949496939600103127625305503336741853250764274407781125584302152571995915400017838147034198591750723487018977987259676497007584505871946877334282629580187824234463153874225743986254799378263083891717228920854902636277086695578333772697469205760148547786853150376943836537433967277241891675642166261527043283755719320693232953046759507423512527584348320902401423954488270253533168857509318714211756362976561531187164306470305457277276698816937102742738899227079475189968038348329148130033089723529844156882519975899806977960773025547727177672011455747346905801114882432221101682863942752367207790810086130511383578544637979903410965153071572611801985168849098952429867028099934519034318979195055947040425344302839074069597177205668319835695307081428522214386724807920556466877442959741349146792284530029447470477217292596672352849787617792490294480571342397544928577273114623700936629334635562344044280316453345350540495293483242809019463111713126079539616864669247204640371493829463209011476674989058737985450870085115085100147402105559485047616051173839910095161680841636738270132854752017557030543512156157992405870552171070747087060319527692239197853111160999301880801441023176428872731029690237181889430581750179134705520724842880071271538782988478212587930554516388694833204263145154219546880068927164936916911076256501465882076890294816788760735413691354494920110552015694691872313566364670421955923941429668888795370933816506931915284885030174092717885191083738358646103269686388951658044285807221021107945814222129813507823165235455634243437773121268254455010655643556246005774485845902192911234411776135062002726562775976188015876679659302422468886455304204859371373468972994808427489686613271520439543870091680009677425509983767104287400076491094022966739337204974078977578641906180325437959905074592109209646565117633091587823813094591982879132097047631597370930388766002431449869991869674362703532847717723237961652064956526609878391851624978603769703171376449752948522648559613070068363574989382051030973976039577080632708262852548032458508098307477419983210329581909057166685456709319146782982797245930637911047598275159556106581300011652902461714787996327617058977373446629763029053435685839453098613069735488747790349801549519666663165229020768504942950627064593663761759670275754067193223312700395638501928430434088956151376760790918176223382995180820920396540327546860471706983094361928527329079127645754657814421428255731171511913997056944214288592843002077668301128457587122836524946082355471955283286632085206355360981085351884914317489730934357951371863096392993497957928214798574851992553127602073900693744771601239116302989022663411035419829570562622935907121493102312323614046504571181969940308721261367674366697887713411018011353398367478708613504633989651631259895961957032316225355298673323009627765186194768032186677975544791654101843292484988677322160242761077986823529383060530775057850543175499905273998529771407328116277559213830043483823728467415262319308559466791401765867674074720396021196856985718518196405619675860427319727133329950270955757565760096134661608401187040125230198024124325725059131026207534126424483620629148756927186247174642592989392893709477117211756767600722489948325144801957443482044922181832405981072667986659757483459319151092769940973194630422615886168814100161183028257842720743773169271594638108726385824722109750597613344886022208756010787077922797780517374744030846279847454338566096579837631852790705692952972211799574198753736663910957615241763536975069147265911912246307011415855259056067696224907836614513722944949910998572150046390490939326373498014202052047997778844229088546472580619406477990459220461395444162341643055933077586517652292031188504070490527027465864876966080417739072799159052554127261518268365077223328845849573059631908266658322471158667096399681904970738440985339588423759044705653422660117707921723532071606167364900108352191456043192152362931589903992937756736050266531656293231049644948101151281412931991448549138983261440541771885197298062920344897801335023563730433310491740662839669531593254667848081542948734313353382506955546619112121187436413636235356257374766858724597318711470034297207925731813220938409587763191547740353648754665924841297327794379210744393539743170329062934248957732170856305642215430744246207690326737805410224509626861098200301468723106705716048041581401020423510446984743896268063323783310418770191517816754327216083199700834769515651137223234648777083933733287500191116540418325232826101687810587327045779009757560386755638828469676828732401471201432681716557654034066325268448456804509510402433525067054309751832357305779391068434206705312426813782812277934693123688842234668079539469090443728499227425810988190252965332331867446850227853060741876621285554713142685132844520386967643452391436856916232049790333394266755768817893551770935029383188353259788797663887561038208682273187766731174896798994777173091515575551036035289182441943802586303154775465762329279504687071471912770233390963550977864506220232626693039315746237230332364346111246762477506266107145936215027354639469412133768942752046631708263262583626948504167238321624246367610590865014269007233619056264712587610528962805499764629184769908787863988821046179210661634924321890189769428742524968767502295083661272377370449778067859238150081306880105268049161068932870823266980092188990645259264748685560346627013920022410640303902540254500889347755213741861120664577069206485499719253531403494246381028327131933701753092470020006159377298109690566296807123108130520878216408029596056496820120361779816234336794803280716272622441675825112182658249131501872073615245074723301809810781989511210459484921797029855254211227957795219891492488080836372892803174079428804044299974419783406260717113529308002123949931705042629028346532810962070412545792086340652640756413801884902060777225687272201793799496887523668326520166343255848531518563023238963318074602946664565013925223177162122899490729167559964799042795641392121387828933752464143974858109391825713703328265540405868944880135052418299394988492619145952905164320241871719162448642519084940030488645257389602929393982525259362806233162912111040655391101620645034236260018927004159242323956583801559538345859224764536510116408518328713042013982545293241351091692375205856044001093917385147764504096404678949686541328414252782359812689609196404687779982779320686384378080824639207585774232419305726485522640495834156127046479190287045212177372523271641915152608963500991165043334121701521071995076335507748638999442177940923100694006891209347107557936926426366966758097962900876090364143639775072553835518019224664576595566862353118702029300667455041228177577037601127152423076941849864322570265646149260214375822330801536493950212478328228227780526977232468515973687423148976038459406460741967874295090212054395629824297669222353630128004892920361579095856410548252272092099619120053756751720834200651866668826577823095249521364088865225288580418049978722320343883533640700929936736142697595188879057868985847969004193626171038792798198836621785129712272871351507434052143063834450655664574281219366508766613509901731633721329838907957228191194968785535834000100813822885686703257733399828722543019436402665416535895725252719577435167733608182508019409308774601600772802940729248944308181924968042874238623852929311117446627973578205799996704749589079948152278383574012855321281838630214506773389487501055907466247796166625228493774974223621473319874441568309939125863832174551096784534051318799235934032303281942375732616903150485913715584660120380615336339114064000062930799764789306812248808846407426092267212257908562673141106133065988938440730298148311229362939254771185316619152536455830849261353119019294460387108855525776792853650054765609039010216320226484683974559038330498069286380118122201098528701133331857344454089196083647859094862637892994845905487350407604438233889001747248301326186934030799652712104317027821732099045043896626717337353902858174439741666616746639099918671377737852917440896361280226295392587437167294214276201693096418619519435658979777994304124031312775088210686151157154374967344967278561195718425496961874835998280058745050102851187512798175232308778954977895003472055965457414765046691597272857796407196767441069103389289610844218569215167037101871973260942619787647899369631415238895368550742403331219566491052943784013199701126306896453158892426000896438244302660600956752973645984856762410126583618303947796692681285708889061305345769280737133712566943465449388030893312878763307512963027840809477271886559837465058724625452829343363074718528202557460593077396998771011041094008228972011446116096605860525135931940960541049204162955324276199971342889916592774432424247476403041925116570541405205431748124685812221721763423685147108576596902559193755347784924221386337971907058992517395278830027563239919129089404464187868946922916065104234525689646580933758497372927393694707990706294255572121340788440093186618606883765773804658730328837551447585271931954594889870182857507623205837545726213755857896466520767505038681833850790575379233498031623020051725281389671043062869734754985996537928622711785317078566626092404789986710386286462991782978966442030801623259751545134706672733496837190346514141793147550965996865512503375847819234415231217746151348815699018977978837387579517736024811264148635370022240460671592252211130474862353847943074289908251211533528377755148427796873330487232217685144233378927655574155791852463883291106934406876252941307446379938236734675070765839771374462603815386899135562146145654589341061050361875592726825926254096025240374029222897662259776691328352495388642876272142993547978079237781418006384253447649180717355578710736211509396101494601740526674449924961433867298353444135003652341263700674169756200921015492584911742787920953448447184607391483490618846805905677394267517676551677493166711282853703038780714688288869714941639547430183929161045680040988594320052470355858793886794080803943366849009349728352057027097374727634620641516001740455406990489621948972011425646811541283824927469486961445064810714190004671522203070564173567957613125507363178187644664597864120010290232979462859835266660956467131865456637721307897416346073458732185913597000778417606790783925664527028286126428582942861052749693615331829968444681072261414387431756450967512508737041015093182824467587732527540795720562560855661139081718992126094545833330045081614260975197421826020906032823611639985065295247414416115902739084920578166909298224771543511669971679182978447052679713837417937377368040120811294506334316631094770504879531503426510192087838947428859758196928502785372385116691465068777284358777841507383760883955774929106292166130216644727686312425040920300368397062848555304491421182996801697583712194070414769031955375714874841380460895555553682014744169906798701764638724005246101611904286083441362314643784273998736064577750600237911811124048662992115738112462272856378190673304551071642664882018259198476693937898663490680167923993067751180702066347227943365994762343465056830887544356735489502414924843427495752205928497556084775080126509521494447117814170898205010882084674742628567012308365523038595031564608181426115277019379644180974388603260810321116257866683125752766955907036789037942416253824353505886245398443606786866582481080509171537561766484873960019345974320396048940428104633794555808769275807739179298100689617127312584338111823192336794649523205571916746209324419553039936423412965625283690117915424591937590876179890656765613059607806059540374770243503971808504987142576737691899771367028150186635607900077255849841362006629032376158748619760947235479318578952467067990634525514015522164052685040244145520767758171105544218007765371091794456191501411151234458170776259933848872980695160021424043940426148320684040928209596381666550619639369688226488543919417886058405923628617234126106003338494419432393848669897779279431740419037385673122827604387751963462810923673730687552132688977642241762427784284892081984434379888553278956040325169506109323550505909306549841550926267008589282593780806221946355176221933956567626384644902857724945561771060798907347225516350738727857660819499386792055968782396092168593638350789766288801908079091414310737863708710090336531355971359521929520175648590737508033553661883163787938759589640587357927409859353938670726545664584444379131966280232161732208017409404625289628272649658393745246063284079066340581832850434294195176396320670036700175217868252001158487205106641841268095880729714934394216191403000822495448465156219098049339205122644518666804630724790928544606055154251113887707425836013571760966893303677914028398128628577545672121054713423798532927787179135780143720349979651063015792671405088660032308075105274152956900685216673945276009430055403865398948567798397727023003664223622015664366226024646080529315840030687529130015012705458941396772257308171604777750060499073873951143750224386827509978594174697606195277208772551898958008667689299192649220327232297334813936787608491271433015176554630471032804955275378360118966512694421433996860950928020201694293497750305644798948606668946854818339930937785612475735337226486009607786568964129475321838692754724647778911419853711145334605702363900614959389566752790693889356319705545797888746760715184207571576504192848350570591121788165602939761616314386103029067191592122045145784714217388785072486104268524938871074929254815360344234202645053553744633179481605312010070283717620675790249185857882087295108619841887798281188172171700360445091129368664885132194143683673264525226200413867870531613104987243048249828006740049359571402599105667915821073110711526619618280264632240667790909293093784303365176294922657098443562999059869740747147996841149585451654694751950534959897818996706194291231300675063705931562082766795125571715054104963413531878800413607803005333804847088869606976964730014773853692470149803999383176805353028186030707272050938878413979194259925269273126496989984166834720716044944854651469376785409798201845708520452642190838135432515191387888384904882132454062368122653656602276673455375068953484104503106650566867245965164661595413738068119093717873299726439329364499414353652286846770712029943183296239814733217892514954991517613363335569608918538720479376140089948287633940535563451391776186468426389593049590830363431457688633184206779586944815897808405379052414553749024524796507430336541650170962368730500938138219249206889927158402622498619217699473759003508680756999391810782060667546196292834602138997117156967971266441353703492941022229305377878333372409822889863931488712103513451720747456864106809166545779021150747217659104010140413988764151520245403414077234796288293764611195719838168209813250831808582240930954270789188701942155978523316935399669553569343168402443632069033667236294512997646338786983455144452026990891041959029473811726702559202084599419188231988602122452262483277556100248149719894521123325819885990817319962897572042125450525140089127590067258371208024047083557674888609710861155716384510974506876339325022137352527700751523409532150348607894284035103762678330140141017117343424367492653525329618139030405235387554117385575085284589572130482109870619895092249850918957829421349741436820254510709384987628944997876899933965077487664558633430507576706771421129821402188479872560577393486206015020703530781573076146469562594468997662347117370823262770138890026762723895289147461407331429671136284864253155698642665019897986534387446646894646519479768904777799480549709511103643650888788747212711808356230509755144523012071137325429170747435194628675517759858592804699721084300677359783889062681157456027021966632244363947738039088573192633241975550781334952632710733043798406301843898358185437005860915150215135420347832651405272701768203643738934228544765488407575625801568905183710026905659588117418524144649900720217378476657831158679040181336999197893871776053968653052289761463964985592195550538521502085254817292939940992175060465249191180958883013669101001532005920635745623344838139465407958581129160897191230321127194161365475647106983256463684054247016268220746011616168008081219429576237933966410965247763190937086834470316653132813279234713360908102495290971679671998891421368946537191708466972232802942582197191220384438468155926320192610588189322071995868432223558590779947883580399406376963800105933533002844287799596868333364696136603849826112834408941832904232281722467714286691951240727779614331858623005632144160129621926494258046939288237715438458665404471215451944262764435395723533137173804344982649055169328363311543190937601456200242335208183306121457064374037878680229017785991443988002694106047353930342887967325344101470480136941567963960843358550162277393799065251028359595018343602534245316308080999709090746716814448055767392508430033817703528614214993590324798651539429264869757112780540281533004821857584196118075333452349787317831872904288924858808543972918823755351593448229612669643930243255596997644055856258746751717387267811492722391746574373717658732471996421800499469375369598610109981099614948014224134564667302677795910271003456997041099384783696287837251156740564856369610263919397341858512624102638137039003678080569417083067511402907760486214039051170592482712277586964837852225679136290512006111227377886966101786100606837700411490457006760198103829574160131057661997169248463701093235299536008257090214913555216440063449965246614841135131306715050431748338380247811808163129784121828847030359177536423934633306470370796417811621709048726702519807787973565733667633245628390391605598213942447826602759195159968877273917189499221946840517313485505476128069126362095630828866658222596238496006630487865737169480102206887542837281967582858818812812720234790218390000647847274941239096777949609444198560150687077701202785678075342038289863577924021605547804602485141116296456016197541322511703453072018880301470986332273763556595408137344125026198175340792269145179481503228822408519585859351928322073010300217810488702130482374486368025540648292478923535494192767610927046589122096403912005749713763969938384959226978198036226302037474935783476075772950329587658395222754704769895602370251263690934549173434841811501747968525429442401775802933414586113810530131069097814594125991740499379860633648343274630166882638153041329084554435972099999251177652858751486931545689552555001952822033298000574110416992874175176309445235598930608583143553505384944039439948512119149247393705163007081679545015028453899334005358974300676035163675058738509525886438308502365014994008367910210613586810963286104159150439352306815279839914832857685963854307277982085307976134324933597892212065723900407609279359503797170653954984401706040860790112081059955988072597825059597281032337717705367094601054686996781287103067772666153889769602282646861544333785688045175663363097821402233713724212074408880973113807622149559005089416512023882196758362791047015405687611384768850068301341040910928514182102700570609538218362461082864611312964419982874640671968294475616178142054313329218592056399446221738143183073919969711384162780266101189532282048016491236113529283719413981672251232738525627577098738364271575350523764637538128865571389911331801170794569254903925602917084137461498867566209468082514808359706393631278413959998732732265067862924532348578943400583090305432762475414254471524185427604548177863313698490838097714330489269175416775700212921906263195364256654418681391399630527987489160706973172706481154888355936574148823667877889232144913422509286418276087020886738024375616157198639916652830355364904220508060455312688833293839133498823831279316608927662692006924424271512472332326795827773196132407221512132573967483680013730821744784581972162281101583735767872805164171592249817090965186942799912895531506805805101189179306911949383557508030734155619786733751361453993870924362462085209560523040116010537989371167699113101686494133697815576580322257916210441257886982774090284906221984761694626112670786643849081869048493591234192028617666647982018952727049992964363856990109879309678604184735623306629246669397422421031083192549079552549724582675055360702024158024557582543577917997987817986438168693893770920933658727411909440157334866680786954611067858042388854065956247085493345645415615210914960480308714773997410172842286422141028510699093096961957175032760744065539909266930080281634040869954050995192831745202265736482873479146126914329833337916492802707344519271298522523246978869131500079673356521014975463589711162921618222561635069392946586908882165381916454462592073839215648634949828095467443476669301923691330648276521927339674985058162871774260451324084833929079308071131118967296475432392232342427963051858809323643745521569443297769854612238623196421940918503665295208658504326467166185562922036468683254614983665273542251507345150043663858199577778812186190304643114455533600383765950841107079079863572838532491758439075972742071105432047002730345150758737621545831762025890290070998358218199127955230205289508484381660256628189586760284599865779939689092015665291428394732939503958096806884163295237288602810102190578034720962341009707492542268048256831503019011656359318330847651886813148404739737911753537730996717651597025157401830853926487994312990113709612812313845145156355060678482092166207534949364286248929173975889829597810639245361238133715715669350153101827644824695636454192567961103071225895412576890623917866938449682821444526655772454993417103005886174531034475246810873101417887847409602530588585852106285053567424570147427863359688098208823865780732315203375272334923806040362329182211097265399808018137507484110862037859292555753175381390575011249293332427371264688291735744436651376352274156194340334232007434355486416372421486964683301904072994168623082694355438471403412255129332590821560012937063880184011902611047882568957681698258293410921810511125778669049140980886300222826114394205700251615462154014361930778773917860196038558901843164747060661020380131396976112016839401971887647490044139751702808394765260779939747820650114166971891859189737610000926884402156723094480268053769728517095533526104507808381362234720470516358199792086392436887567460621492773368678599059904820396109173507645192526604392112245607256067744880821629210511952103702888268151509373549484257131307014715047460306476447169699837113452188441363629037346878145297181607922665933442359322502103233587517275422138538809376838940394007242147534154241164555843488203351792788214627358163063266898879113138804106999283820169649879858924320205047128598160300558037486050324945294552820460506286094470407743149228390295019031990028795133091453285769635481511680021022821804634702733004067146315586750225927441538778232180544032218987564212455152581802432365130716913856567067614245264485928638370064306789608451697955112499249430421522524427342510567486391156390140727259387266367089169403077777681911863652093689478324338625318549473556083309519106257006005919810505303980770606407847260340475779917195698821529834288848346129996342136465945035519786361858436775497252761351631867833530167072999315162516466561566213444442338586547645024037941464921172157050481445404138998294708955953425732602143919791484772388426874203181591674226669742175278379372918900727992761988874775094968028447805155053392790118562798128110703347287293087504142736798779731127034904471382515360221415093431316912229723433239991588983470779114761167550895692282711777770187235874758121501957775223664897114199703140160563023810814552657730549977704222987390447646242444419199073459821283750011689947214932951227280334213402552861640950991899680043319915621161288544363104653562937448827282357238068268571415565038070349578194971619937791829943522283087635614945475881574850160317693498028929384434516385900959490901815148294583385584161670832051470423162154789505135680756848104598337846254857198666963026403537442124677370637725787058146870022933385261755971625471629258468464244809720778901929276056576318026941606450356397169516202141617450675349388242239634646946265137323849970457910124411350862581702986204398396148158912038423969266541818015405335777246922297611791148981785762139207828668803349270601099311187530828792744444579698394259586240416693271426513779876344729215842382563125176979836200188691692363951519160086466979107778968416650197143462002080281625840135129367720842165465938130672513634422239425406485529778346205544927384448624000908033740046383643040094869443521613933567944248897355929999310438774474174194826246096371572380472151722461171999725899197942675229896435840955856156780639856827067256283188822659020623770756013456844507787130006713289916325347841270110745260219936504531091440128950522959146151536425722512746801278098074816664893262198872290926959857737288919335859774316144520882464421805861467317675337461602509041430594819638432143959686077562822324178740483477268648241133473747781207876913765622658626694471837250213684459749313648100054929031872705640096425609095478561335856691581875346810814063735702717855874695432224509496885137883665901702803090236768571834104657640927462237430574029734399594979414830572825360037176792114640122505260283791690703389351852454121026258888995437446017728453951910792271685321039662793919484601944922346099829783472502143469854306308980410474726780659482014807511832169445069446052298731541219589952789800593955776239362855502986623935563549669759512010301554400526921569289858470719222830336244341774352683690574937229819503967490085967020265934272003804728581232680751177839333504337683003926295999321134681744944837214570947691342405128096824686059424141676520340415795668165116137724863912796166972405184872005816229922640312158058657906666434738616518615125091944010303558596449057056660297309345790794639027284305318852522429779351092989128633659682956793893260568447355385080366874525946178363256817553448331032248925596431155371523964213459557601206365313898311149443789332569246193463779342308658666675637965919546802799338651311235004437626957305297200952122413019254888071740556143242870390125602583434778538404516271541266892502898073368695721877005355455092366490108049983460979355501059943394083145182029888024644802379827811370013900218571027287020532735206071057608966630981290424432873810815844729278106165020141284458967872954998977839642426960660804175602050254113937970974406178388743980766285910472781836789432203068218187261464601430394444040134301146595804921242962186829428930892577542873741197328482587431780721268401003327522759200573203391730582975348489923229878238536726637177962271608919140732591913929314098062673122105612313590115333133653389597515125893200114093196685899248119996000881291875501637672598860131141160396215961407073501198837651290225494566407996677704530516071659435157983404270837169117802223423675346373241649940044934175598062402246978316490814598494171009139022847176468786206128211042059307817052179234494658728457267837599997613914233164125543857336687717997757145580751206428316445623341885226880544558562161474143786436338007402811501320357648394528418997174952752098424042451447827689574770174614665980762600176739262113671123834182903298597227249428897424242260346134879700066876017234586550094154936599122354156704281357446096941880450195789260329698481845362375175421248190639408613532508140624565860573570298551532210680637216445976307824610726831842942087900849233820435962854412792124321438029915533276745651233792968683688115807618019535275444808370154165504343680861894743687964725488876538931071441580247229822299752390149142364289332737896389524771692275175433174727823676835326988936730912858415086309602740969850158140058326845493496884212822525023202523555229297752196692438730468427733676139037005110217527055836027069295746457075576470586555087961414923307126073136802980476797502641588569913507147525012922982390245856057913664400970091451488008209411302281054391673985172155214558529125918513338072102177934283440762234856408360119501975495005474376735866245973150035118341397844402872218839127854974924707650795011568817689795597287229061850025925950684237187495190960627892408791930454073873061864200284241238900876067215589852990456021811344345157799108730197281075081205566522020532998778940408389428489213503778076112144011818537790743440957610641603370503660577376400150601030520539157081820607721127243264259876391063400517394242603768673458591046952914851756982978715225865718511646255163269472527545812485508967395939584485953768309381980122330334011186837956760634584765894930836120864252756971282110488731166203353941119781284227469501317783021999902172425433802322767561503210674165049828798751219871309850825741090299480853886478675178064181559627034127589866998037251318750711142755973613887347170209410244338401850245215329504194770645806925866026403835247674876483625541527786243889470593504459692481661607055163005455883038041245416475443579641894278939179812219104735676009519141258974447289224411212583450880480806238002642479843143884612249216517753857284581196232086613241574801520373022608188825350421801630752868790416362184010672910868328967498160375477997873605367968876810824357627501811822590577609409500985277200746411883837140111288501158510317605030608238863699055866973285940790113246694769257284512382159567138670630665740900084776986969964396464539450758304374001299995815340674558034526924362553608808444206291746812381501782425424920477534065226652993889021752612367936134747717889273796548287714622607006023376327248410442921286645781463251370534977776238093439555472852560841292897599993914053764656860204968386299975678025010352877119581284355976042777414082772248829784543472501165198675728686033980574102209722822455026359221925681883172372925858949884052319571075497322251320101053574835984554542199318866937263030388711603218083038053395320752101227272695667216562068949930069712213229419940634817950228667012774661627718295955161351751398639811143070327320000722388445950513902320820878597026502151471805259877955898690339937620706633521152166155836409876154985447842229025067336296709010639744279529728796013050661163250319576688700401146228082862057903128527848402478510189486098374173794356525044995503844339124000668877691114336486484195223725288662718943562546331034632615429062729636891903193739001618822099589964764548583729123366552792937518487015986522012117016126367742191976028205700831990335247403795251951423264869079993142162864545794797633778006735564691825337611401182732992652081528493673500896867571066455661822170034218167824037050847357244321151008518791457971568486087073275843848331697755274734233977939193307678199679218673803293836844708113610886166587144244658049688810357734165796204839774755891320166858779556368257638637103920695641218565536109370646731921499202598119873908851281389857188581196589836423021522866220138231663999733664827486072813985666683541402935597311557879895071360844712939736068609652177861750196391700192082289622702015659667156240295996891061451993784599346520794442071389223336442392301078055018929443834275883140039089434876503974406066318754537565854092019174877230157191463517027491801734632798703066967070520660180243276138163478249393565246379407868909310674950980354522347764606403247927281966604845417376817659304229384699423165551672077113036601809147043368089408437563851322622279172950656506377837863629377157216303684029243182869286061253946733772415526506095398930656767959318449530688749514962040662068894023609904627681732746338652942800629971803974111521738833144149571667831965184918668744595086820106513162277669394567209902905440270810037303653918470792930657815299990967504305659702376333847072238835642493064298202668991186798907811535704003323466898847905124810520692668144515843309725735136890553112074753090308054713616834040265096177350459744824906060881037434995507370767910637394798895684655663223021412608587955143433898337907952884556887659982117418326345180508750974674396095737568411765794443591894575464566793468120466862888846018054133000906747331016544148375826814656026262903015001800430548964363013266565580825783534924428526224831064493846665092765540654224275469015046148262981255427744760160927634071279470654290890402147271616110973265040544216788333824654277558814077876755222379825661861229583265391148876665985469572140541091543306438896490339168894815199062503182091210188406613641883756228193746563819900544044280880610712269406525061155960609495736321943812864143793980227545326102309195190595876552995960623349260975673316837529479332246908255580959088679576867885785761056215951897671303722231359484960885661406143785243178476488203908732339559554466727559480874107321036442709910516352739237637852044821077351990657230662357469197669796770803106965371851085107700947037992821390950324903199485616036274685655129704449744616942412628709312337553196588092944698141271584299325267925855260286684235238270802105718304715384565933879862875215211311300553578742811729209879881533123675410302681574576563847615780173856135285126985115376935761267336333817183588536805800815786728033439215531451996984000572161609072287179124109102260541726120048154044229735406178469813494027223126158510299852732661384288232197915793197306371421816528406799369823666534532620864114480035726492897326618174604432914291513683805516875126540964071118211344738745301496775593105457632591815612237233425514305206175211665075886677437305283472708141876869225730189927858786852968461520437666502869071628137044887683050570141979088785580036217393239736708873299469656777033774592708406866295881666118235345867601916407250188537278350053324809226890140077214476930010344906721041497204534319782768979379559159713064932516756265121068023566818578461154356671818160410889764053955136364170948025816360738168602538125197758428961445026927515600691843571318209200302628071902871151768251963101952784415399934669153070619326229957105825385091317376389496867635281115442089175018220455566066521679330524542101846518938402694851297835900959460627790857806951480256349514073486651708280442390409704967799210522892535693611886670727877271368357775368714170224533112142164886641433103237640521488116678757885749437571879256266746753754821027700307349179096537450982112571953449134911075472396293195496913031367977318847072898632005237614963166229612397698479852323161011289955025334567998496155764246767272911496292878338981078110313925139987420901505210118101212821043201739826012320786452089907468784447261057029223105814944205526370587338211230553424782453391793027980755838591683345255790861894978437901573943194896732151630675083202376428251194850153289282726698106098694780785979424716444489686291194378830309391859276772868303423430377332059829500367683916631667993637888691736627154967123475155868953431311924936347914148773937921075256653212399997762463118676150847049397290274028945493820456478573810794294843689924609765900706209062508641736332389768891733583008228388023221011597830946919614404263168498662467133075777573486537667703184658276413617125262195842134287561121714976119535809774063513406333939431211640124782009717923296044831757473086862879338342209379026635856364446745051138715225060551725772465312213987571604376830004109783400727953607896100645995528329289132608447147577045166686784112549088848890221541429309444335276887407598156943476408841510421425795336756140734118914995071166524324858878629303460165527378361292104576366400512315642918536976923257150774311064466551990579052847214822788154775420443327353143517812879717974991592334539222554384670236841335732690750677391367419900214624443800463066885112261787523657373859550110570240027177944054767808004790143647696731699391762988499019610178784839407832360586126594800005748019802168807420756338098871396651354821208755179520875247993713296531486355490903037512471503011591858033261018370359856698756506765045931242236576470243604885500577786164652204790185117107718830925054726018224573321934712984066320542979302635126020451080369641479344123985829604576710992251773521452000646206481486943686820068500969689373520188675748153092808523848969882422479962918487409186926356130900607522578324948416934120793689629987959871072940785974003348845043933230710845070259420443798123553956893689700208390077471869498032547503143558662685575915475217825778730031699737849762726969182212053931583293149945368541955430470706723920824014590945942625696237390552838240371306533237322184423296615180159822919648976692955716101968548390913526244978769337575582933807401354843227793535223826433347266942709438526664925958541255302117251914994074717039506468465478694540682200363450343758651315452592962223208303529799324868073405574056422282845397197699253625698539498641746928272059414886402412382191693888838703495748594985240742604472287690345968668778502260886869518229886125523486465650772585461489415718981859524405792782243376255031188869003013018613489681794130277724442837200152085049813628447689450071239386335391042128290796140086537644003604781025519845496385275701788511818570013242756701576762812129928228766092441485869504419014296844859286134609106855661941470394633871378448025658786192943854836725412585131697043243523215786795927014699748336351247683508428568126837676079305477722559429167897601579729304083568315166950382024314401299360507689020945229574529952268297906683778579684143136196672539524887121270768312834577457692497302607787124487586507492211863624436775815270035793568300623624827112389651388108214186302386159291800412928862437223838855278572092300970285883880002372471430130963187030945057210539529292662976611518780862906848788022278104675760157886362829846688297177052159840148232381751172367343439274145641420028063870188256348007090884739820768123384078804465211152662014906822803522676795507522874215310841419919162023891333553416133480925895184617634140755305660601373456645795994481945874714943118487898053720170251994851740699661796688633566857396291920179417799734337017153505890515319259009516212241050506305658835650534602931392452530462553566270380801516030749664691853659007550088633174655609150141791832605493819402634950960750573409736533394816569952799702125919426665978730135965712628658538139237119758050177747615433879732551656984671118341496793462566075967112549034146282429480752559971308595982855726316952718600419405231249753014891703351195741101259374254034682350274198984975263217926363403303842127029983263298201003923449422880656720485089980723763638712654657986404248096373759699324811165316823441925160801615495517012059683267027265467123142909738439139600316194698111075138181205284052196055297971063449604396928800114183063432021250120581869672058504090983727590293947303101215063126733366467856054372073677514546500143151637836702659997824432580707710322788521656030551478192981746629263140960731116405279507687284095546422361330769673921115692766041055314731188025099505784352434227979321633987578249778721335858687954461573417047404279955545110855029043776815287485467885105406435452401829453258484941714967491371427587232806375248442393047152556806652991127147273411933501797100155774065991736096990963744987698775972877396931090068732298499153958195198305413828738746879568265851545417457011559640474855297087851840795157112962410754965170562324496135992850242517620397611549062567473758968720706432417408083082464535806795897159256943884425522546726603566565428076860977575012055182820998368855426260705342095464329181746465774630726167360299080151550875594031665425042905898982185485260110377525082394369759576641534833475796966232109770620918910689895317042344713729343942992501022826259836643242356911435469338492975545932568208445209307134904636538209363922846586042748836146053276544105393958027606853254175793482342304927309681493579549380002050712610333668159497766058027648209161860807411215434249459968898988741285703215738172607764882023001481729372799735202004604319484078365410545014299576025291610132133879885074720547211516304116572833663913646429632014093749964755290370124520903033813010319258522166581992879057887742832139849428546922894280150891817869453011351154386018219655276678487532156609014552093245138416907985251786743936773931013966964663398120546399137680101427038949600660702731617565023500796468010791260536483548201087947333179245262175850158652505980003164220950779852609595029093143973863767454811414585124297984663270604339494840492356034577415882255599014429768402779785262869457647419938152488021260758593477758095470554563778828212226808156257923735474802694308769284517962920149124864857222655548478274972436125713959861514611393186068688086042240401739513243759796257445002525286718176468630171408029242823964658634954293242735769519467493540778695726750046229422998756664863458590209379793283954243806701722612483307069969163358190401621934219834117750004068817705984926081449981546801521402594832898110323703094651869978158189033834829977677508506112436289552568389492351884836606972278197483579573366310890129534766227815211304925217507180755219610023407840159488619498109630212645974950632736731445159311874995859720983164677448814945323471091462002058124586013562538555768673448064076640557155731807340697733226136990821406383738824291635577639444361021949905878971981901662346705892074118784560532199855575134686485105843773473991119952831093259739937765486147936326330479099403264058668256444025126559186199610422315945296373310643465764297226302902635405247232220067614750886198510738727948617938979722976732675260334566068413204634292744807824433909889202078901611626336901348577098666645089656146746862215661318831203400286432006199822747808256065742623563088258050035105020468789930089917080805535151987773264052787116081270678280623595356075201236776514876492963881741634854686887136413321854557517793721550682647555796556106614942576298650831021596003797849329273278486095956592650092565145391485936759037206257875363900347987594654830579718626480680085437973678361142931458104535698483696441332943507183969280373117990160447319423538969810769536059773912910576808596125711163814525754011211832095106110086430175130200863264810164901364522479778745997782178198625984554415728648671361137225845414154659173786611498417007268684730119894406942528611098043884943537400216675413583359491371786643448994884864443619969552236725935520765275106285764956841073079819315601490430718259754734074819504883528111346279276693181960686334362634385942052977002754484055869501067365902369516612296643140963989784660515156486120037105720513904591799123955481488467634721834018111839094912543658669854108116707026404530425839135542379583217312778937318532167305039522184781242389014075736700452009447138618751552093263891760644126631091880395208621749712225812590505319556289972252094436800733672979573032636599985270613699212729143773897320930083373949534693581835766645272178136153663883240253566400918563435759236231015119703340754285317372840963736386694446352599370269851707915092771242008233834261275670441238433119571018137904346677479200378550808785349817254971580595501623652514861462908260941740210015643056101319880461627235455230432033572457493000133711113754280584200933477469658032558255688193604128951115207521348084047232178094358190256107333981889182186796609884828128434687640685243205168281030237362537619073647508396825424929901175249521096697821112889553119503068847269854245680449783862403417933308210859398709588043111711464291820668032382576943464963186927851074643039773700198490143019840885387447496326932767774002566732601603832133934972242511125099122884485072392557970435684314493456858166676979102977125605082265106489118458632574345771066423297031828236250691419282169687397037091262200727560347778927620294522459957067399852001229196493940860875752622578728844724086428096824581609778211515352397808881615719155012356283516945025399806847800820236274816255956849337473391752468013068644360634728151551401607191450961940714086366682302485418134922723764322254862201810795236137058654290758318817677060314128974787840558703732447890291600442820756036028081371785320897932555037601821047224631069024356186790048751995427177478570990500989949602696587006771487959347632048674022859289442154995428677177800455791408457493757170737976671670264638843252434953957191240104388996726519527410973155592967706124826750035421231111804681221384390335124211676681343688071356557483783312612997540495078008275629270796841887841359032978428211475824053929854311306082582558927079094435235670988206120572633210518008124223645192692724784690952536144684850081670838958380625236056975955375059321871591669103628237267490283324866693425347916511127596820709314843626767735753953244201408343388347522430952545603169711251195143771871428788425725571343984428363322649497048222240019828250548610559304108150806907930693680556397735920979736333104026019042626924596858967520273489555403672678161076415988336671411403864797179284432286287646996372264819128088230057840074942411453153994337395967920867982637469145877817797118848775779228731599963302112993893069865064090698141719630636481885368234266614929792924106458072697358833265493531965271502234505371274248140915675971082823844917421102750097395315151548521510316791124732052736607983775017354565161733719657766618989155247745532891594851103359674073785766053015591881819104697257818030907397860835084441732474069188950429892460669094515270332411696625878033952556010390857262135493556394091710856889256232550738542327152115655460284464873150233809398867619104009959675864209056983872582694080897664363092575808559982340373264189567219623429912505006547531292272041594516143514699390145449162419019837572073557283311423688087980448771941774472755882931076141048161993332909506917399202855404563187548646667893814794837237446699162699306695027001027763111772561219148403425980530207687096972122410300143741539017718537898799670137691833318235717484316179803682151523130019103399368103554479761497034130939258613065244371380444787201028511114337223282301882501415842063149589971103881769905375473225349704108393636982398493260823919722493991123023343027465615065905940898137118169919629865851408725639981963358293163118427628328185318168259933015694389985302663195300550346530998982055060628066757141930835310819819860885989720939194421458651044722252301764471663516159078293383533286400398039327811370916151430419364264041613234532014954068492893809859819240895690172208203536072710202172226100989872260976958227657790446026772236531049778243813817294458559184161610604662207162371916549830413988482725560040213000292909469664353746234495100065694693879162781517027107977835432065724456798012952040758183743439956945319379317153458330438066575469390944999462592617019196891364758713051618999887191759821757278951151822647958682142165983389061159268720622471402523146769727259278316978700232166475161241022019591508627668709514345676180116496112426447661943111836614636383347915981125129805981247632601114477759048752647222495365800425542759115618499098103406960158345962958347946528183302041372242420287507401735726312663487895618352984303558692938589144856213559030820570406822180899081899985836766600140938364330359967897241958093128609176740971043307945553948711786287456388541037669271010613199354336073031706973734841015756345628255603721534518487876607538520475467388704533447678243057611109578400240546730825294465826165647196823328387061771724117331566841823119360196826517280755688353563971114874086694536010097320469922716545375826928295679672692979763214850658991266184318151832478899883027884666332058106709996801897196800557289141618547557482498703040535948511587872866868688166918578716342482731051381170374170144893482196479831329120213665187210824671727730645856116344835790338784176897480553272687328641096984267159910531191888021316712868411967624451336097923996999083377979509734827157232920714258508994944755795582326465897256951746247007559753528848703447074307105646403614795107552911382439488617864070900536366692588672633933415244801423508929650172613227097351380773198347499852301545086399835145994873058952310935431656660055596344725827866702476346643019159070296007205385330774674767757713893140058546726911447277246230678352940750501346203717626938167586080308036112207836139234515012338389356451644386924797608701189313102204873360001876473791218011501030946011968653875283817702734425351797778269805544390787492512071697618307110677010766194299154424755668336430676116258273437813139969758491670762145513570632499067812324578949997519924675124716209559524901130143318809330584825055330293962568164094521421065426333168220788461316368236708337861458105464595241907365641030780226664768470951013634745469868251734975110475963681498188706293238514707480629970224254298739602267888606355214453726915375587159086512925797445752745107169258629119667632482994857040792029360879756167771060535199206816607943005635009213107637201337305579656367729809337302667723736284455585763685764932298965559846987795345671832276924226134040873900231665493356798518953961013854209310923594648314084601682051087797277272455707367081918058049415287380759370534880629929504188868166885521185180180724452831510081178742204688720637192987408225437905699478446713353171496298748176258154249459671172839345914737340401178563733243010255751050331259516550788106006061855659078626685083696860305443494301473547396530112174662948127109546887355898866421744250621817079617576617200639943725311756540338921485814011086461505548114058604301599486172366930109816836113324784831745812494192616783006601304559210412508980606816883306232754533288804808115819370337301416912754687248087883202969672731657423145485832742840755859626950819560489726625084576904396395422313512214377336477828045512571207633221686940439546763028369900224705689344022754825472724673087612312931810611511418846305003617867726976495040120636212878024015849037307073032982427540083676898513096327894044061101021704367489904233865356436904673840205345431155154096850404169012586065634755184942516856106286887454594539790298600115076506470883132794067661329475151571364576100881790333950121599271512888600944138893904786846783386979398115068978369179976849483403639353582513266957931029164476644950871231529977574529750489009393477910815709255915504250510178847313464654218942649505195500706670338389200394693849243283421496664950823856257622018409757957240280135988472062864548336366782007049887963906216512328502845225121947620735214348005002720258326555410286162770499644234882427265588220854563344594479952685518675881641618772791391693307017166606846362261458118081235754617230657408750747863115795549353098132027128385499369246502267590374560956607031046573512874691231839583943656080423794406918610488548422542727294269385057284508117745772090251889006286458502913595368570018060905019135964050123409433539451842983468550449416346890109992752869401067923621580534419725129760302454368341055355124328040566001950439433400505098822891285392970441651916630554412491593739409279554629441531367623645332142761888648771386403686914543122577814134262071993876559382058769630153617919960200908082498175844403129589714902866385475742562761416474899015901389219588209080606326796487821068448299841971997693765810682763427383974446754043565633317501023015671901567055523644714033776909032282899757356928444415330355021798992677064057014560103885897231931191614686327272031607899969081670397322087673844616899109713606539422745157729882514361241373245988110078898332009453283158970376467330750885119788766971526778431340391670928126560815747930018028989640629617925049959823689252601120622046609856786597027586781645595830011538013730977949287162467355366126953365448037136856759505542083161861115414865537429738383392462153644618156062174542606214725543168661367220785932820539174618714390533256394356234150132680503536002028396983050816620933065365320344661526099560898380890794457424544645958102022935324301649521559621421858042638159549023522692587670019370410263720840973655903402659309951833723682469465213687586941120034092042619050480960425371853134255114872347867690634542101041622863500967003696040660474703309577932014741631576240492540167169240969758357539038852376929992297225724155974739329260680632123437849508623619945921777555019657690944824513464921339749957169075647211805625104483856978394049824983281195464763117638404452886430536895316124100827791848665314325897383543409815710309590012667508061655755004373203550115462281103151614930665069700132169839878704639939056447972778531054358470519441987847203516315159203892227642242824389747595747240883976925118927776294142256978176657328516499990768547941051526143124367980276187242851798133648105639254150159146404537496043619479093558292758381440378162919387045863850405365169377921564946734804692795834473247653849045933029225629058008998251242167066181886847507355600012614418107449339697838020089965563815031216909851647304663916366851468357271948489617977288835857599064177429432843004038520649625457393573080286448934897784868582337364889209186203597148640569162977917332792140868082634468768336593351887550706618957037457983874639660211443691028169313983034565409378973802420888388716212972665494839484971804153304038677253514160590194460395579497445695715744515203296139249065736380943303803006413337307121578317980672717360068270728148927772238257637470975740323855304588241684808531106852775274123877678502290233787339469309869531989651341840331973980877987954287658645822982323177923431225257286349922941105689505623888342800820367664825284257179457701707188586964325336678212094755698744450733401219001668933268530296862104035846683902448970147580870930555420422579988539847086390329336701152068635719042848251031914557928440483857507158158311185377163545537256002668264799052121928236004331773456084552617016217121084887938651284100817987443328643512903636316553659697118802607269828469164947390778155440654787924781237944243950782559980686032887285001714554854038070610122952298203718882444909579865077708026820684090614631462359365662892766171789588700919348846478121912062180002345769109269721806694539617304321923150592011593266257826835144922944372333214739874569086036652647563390586367723439621277105616719813576502363889247224242272818409689109634350028788302051718716664682089852127602090377519860548611828465099312551701945420351953316307674958882914474501744867144749795898312879228725688120110132676814250607006103237772355961867763808381533539419720317275307002338781555465371181593936091690262974737911490891681436042304035218206800830064183846768445789759868875450203279805375265770370141332872136317005086419924848717815466840210136438047948028636084028478545902531242172248848042690644315179091139478587104762805973559907770763928677593582599687103855716094375451331643379547563353396447683644173695625367006826521668048892337227455594278554541137057138856471044780578914281711674443066771646812447977438087555067609936474312836558825184866741878764732924267480942522640967803067050314985872727745513692126371785313932558454205335382076251399936354650358962119410804648200126072558077953967920925242857689885173894734489492717244640101605972060483217035566492816617853796237290685980939278635744239553167936919909506790754810972270275100172596599872260892666997795134246206062751188926056802499329811471704562688896815003652716996279156126253043636782805117120724381289298981919432739330278354125820182323022350679781578496845427988712678617578413174258365776424593310552071091118721000074736336240457647416802364647552559238120806403901567345711481732665374286286819058949831770192167349560176096361827433498658888510582506469615082870236794793134382388291022252997690835621634083202227739597292405765476407711202521142907621973449234553600192120647840112542693767771367092606989273606124105843516647375037218785317476360191465928269208876350702914314743713821685851329587912648866174169293556874402634605372971412327991727986200387530594758817190137202019337936771064221498563195952717247054358243061848926919056565590661496975629892275616933549581558688214495246493356065711055552570663005999309135314815335733568620949563356958368019779477959472524883862696116373037766228011591287891855458299824433798930410676863012101354696619000896058008604540114221466229386250391573802479298996674333133361172751294200319230107188315139529843666535639008684342257671218061526426799487458571000013959833144187833362903717007692565660597163353834171122529317642025723139907480347764855865647473034559403890249539349638519704989777975571764208319642898218978578934282955937867965450303569406389636486415800162954850080444237811097353933228079934379039692610497651581021613477998148359201815670323583835293490884894424163872455615110082971091425655515959111446321491633779549880205222112164883014997075263321385464865658733006052400191235221955674167531424021631371766003701263753839956618469785990296477865299199401247697860550405847256413306473549169845063574896515869175125794079443726362187789013683766534869648608995198126709093012073471306621191109254971984780951796195398816271085565718738910955382400710554234518074566519586871519405323811328697614850620836256997287519390471195526962807981310752376375168712206926036564112041038013577703061061508804307547629559469086970578768082492363262934877173142071490752595861566805045568725250509140863943861279418760558316861939644075727562388295481519580900527751718257345701455631297198541176456349897929473290527404317949814402065861151705738779822671092865071728762985857147439210061247077950386731745897336185985776784953931448867446354045168181862630036851771099400689660291948300332833156550657407087422944259590306018199899164550795209247792330316313553766921481291100635883360347135987683081292216211056328358357213640359187396115229434889966139344820895141779412419075890338943126996815060511157241093679106268482615221491484898967369235089741007791269881338961943082234790390373916899448148826824516389681693209507218863718939866784906463792866297092337998189575205895213052296802257800867518474464329607783658406673082247083685227930476600829380423822955307959646391161970118365119353131206279552415441564998158947006329608127484380255925047535013144085370827850646210930078145450260698174526153199804736127212280602827407222003216650113395467956555205033601848514150941009372026433679519906629008038321610521205041923777439619489830005076458859235037192770535628435616111527475177185562902676230866517731668700724386169507906677276001843096882386972845625585014112323956060730619408318302447900635561260037401017475208592732010835980729109523040009103646243948401005161064080499771326770260848930912162651110830568209783855281678473591876017222577173914627558550013058506362530666559032526092105099513818905042153780623763090799985754826972291469884950044029047295000537858772581445039251793678968572262154872109624140559031570058151958852322766608690470501509653593139131064779044607644865637452205670386385028881199534275840491529933063672471553744318518097261562803912147282378872991676701453196329574888246086238822655610882423050685684763920869860145630708661362153050267995498878467704062005389646374516608277059457401559937305605668217137525035338588828780558814620497447916726643045068795080101245037607915311173545966526454584875758328444944232470157856485395745459059980151294809256173385339815603946222273976714422324232614759736969944646939349265395711223199126706698671351166047494774317418522951040185788841738989645262436233227001624102949760122598903284820273533083763916415424325896429862248598684674178814382100850383531128083656923206351117681051539856902141905022735549887947547684691190777719102617382190883143207507261549401135604675383384468176570077214899595903325808101329059228595920466830551116172592641232832513820271368100203125451701507352969892485376987335809298823617069333920036231977870919392105334634314560646374596579923926470332120671652743284359690516592263204094380054213546440055018257203512977087813101406342488504657529032779271840039119318877001389649441873577069718609525827309641045387807147542277009275737381160471776120780757339578767720330911510469731156264718778158738446950895785042116940780247453785321598100417048478091919936579652368747434439376795518493393853248869270471903587423825917725227425257392260739567386490080034247913733637554745457155018015986418605536056587079746098341836047254697059018811419815462974864910155894247086387892240237656077695664088389052998583129037273102396107129164871743353162695028552001182224172143379516517315020664939837606297374173653994602809281570996657663910755244827524939412722707192550865214629096910964130634481483911624591299748035159729965300076594830234095361786012434548034967544599429085304937228314383918267030339207893763023364833874744315506279097794018021703503253292893394883387332272645511674520163347939518023188596620240198277531793409286977709231632778958338648003578177183089308435509451815162119042062826934359189859705289128688667044469387635476816850500075244461265409324579665949499614116426100032544160073410572062171387354057880407053118456340034014399915074691915590206991721286989590792437846893162159184077505876339151944191022363311454623721343660433036222218735858104590547140126068225045301687693483322082537086349606628798380291272762444859578690687248917845652343088864032917033602905395035364813649116070095179968245795310163100599288063235681571862342543807811137398583023492288803198000129361549939475223143548765611345648102614533496965794787296878993289897465842003272182244609976264054162504589415632717466970186440517214289060341079917216229451176081413280837358788859768420621397608429607140172803090315041841415867664134559170174528010533235062142058741273326304835275484194622576286028146181962425142878965557949361501655287870122910311733614447177143564374779441989091113138589799984978143806546545676421791313341668822407725796881488041932224790820042164585043408368293235839714344812926474279247585377059478707410472529658737951849753214434875520021318463722967149417937150223607714450169006351185479046237067190504550251127237101186357405958351679499996767944514599660985108873186670383879498660726708246505306662013118820340699669519179262583356391479113493159901991836542849076790731808105611577868890612183803486260914783008027952234391782212480617627029960367430903517714632152976933111738484045986377915124839518070983862509922589750407801379930315923341193017256022664211184644346841838067033605969772908735744921336751011226848548085425784210765188052309478441086956392199864182662380674943224970975015879971053460807529091603141960323729616840263932130664164349480958945475389256995277673129499094000678913933247183545293810555576676677161389192720285463203165404395662926566672295683288001339630832456588979751909641874869659796098658976229076460536630072316820090357190299384882465899960969001581924106538722489199695653483175369947880588937623477137220863790870683529254291196624365380474821185645595155295551845781288791549520460462614136008693941609457562009815474412335778702374017366220411401810667250229128471774358703666903314699878538592901631404565633687392371793838175736369291883158637006459162720643021682239855000339367378348617269982152702312899598703836663948151208055739887662529392885311731764479119696747124312765277970683200946736393164776163826920597646949046094592210188064839932848288002662681769651397269345876357222780221964933198014516399162211774360635326624790890830985181865464914263971286222769391850217502844620030076738118144347976918320422936875536277839398827159914957795843646651376888331797676794433483555872270682789085691787597422972492377390641700164047277717920236596490377207451109767705261871642753761905050383904379190984646434445628680330917530820143140813725469434893088681272994280203267037254012568730040892111879848247848461432164299423550017773469337258818618161280041879585651363370275161375979554046354978389032383173912932097876110941719203811028347992813667605482525602398275609489474844318136030814669783546593811674293146776246718352056927469800453298683405291692684345061015810536872531600434423427097542419176695172505790985727533039328156739387218759727211926431769586379881555345788645404018219974170489929469005344080189843706978785437582320129772874165819306530923991913702468040220417858125258389162267151219979850081501113702483292505112263372210867299257832406728589337796492976409303473133014512277255908259244359618352288275223420616520938934967714566681941934808962047668728203542810533023801517982672708719214742818403574108439993913419567663305173211252706214661507996706469766130490254395278877842774203024124121850899602665168305055459561014907998329344247519856550110750977799220234137334615980298086542147238426458584272416648596863947695865626060550780134089949728207509873663542243491770628384898253604070045402671572351454600607852225391608945086063028731272746303586074918602775570077378239365138094650028379867473727436941783998838955016530282394380030234248573307793705319672392692651110968166118283910396358449024981475896134717659152264108705910114524839709701397656452885220134174414927138813306668592168611463691485974402041429055473968049256212804017580802828026406145718083538389134572445993165555092210306444344032678754749136869490504078131517262959472815070869941065687721175903890164052474415572227750269530788711878149261804043911518247662083490323438726894839529363505454008266611150381824913202358234837536635437183305860493260154922538116658586857632158626213284793584090432823014666153532964944613994978814500787773535253969602882816609149166614477223078801871432384760624785046629344754992960199444595639159136336306206137197007803269042318444026363827036073889454194149492580628786313241719429215424216928727158864201118885388473596596096155004429475366469126703602580912660033854038120801888422652752396132203080540264159974007351224927700598617095089069342096498205181494218513210609623180103678031106473895984543770212113227279421350161865998399870759982019694771838611857806515466581189513235751537476284348183395287978847287173702491280747331350979294452083648619553217511955038584338045876511588794521712819458232194381065851349342410656860141430564614804219891449059477341356613850729877117660961777548956608362384080669763674559250709570839694547853133866913035389661242618140133337560911997963686987421425256078610405685287797554809593506524563122382173016846806241810580299424515488725282824573948255539169284737249558541515274230951708369409111910711575211867934978336232467005496187339331015162437089926588634897579176350905532426061064757556597419309757283575558507231449821742031279590355787739497071223864931403404246512534336983314297002214203280440649103258599314552495594625506242510471561161815408458456399224400245065179915320980698622360018875868064078127687576980991177422790405000063597375703180660352572470937870330146995886281676904583340195148166022277709700817392889933407723206315600912574968704836454601755858353235710192613374754925199358243929067311807278689922440753374317052166145159163529197522390659322277586489297109954486228130353030701902464413545570890366485602268832113720107965123871664913328148198608504304397212030555429143670260935800102258851329999285523751145528076630861432140358801928788263837557677560213243347536743665257613339748866492261143851855870766257244689780834831252722005393208822570133701374166495642006647767810352910665964699757928230583670062509978325507834853087026228015440643898292065082882539267339601491212579571603188081116539420030686283678246678144845340148247208675747287991343918002628007404345151323068691879422781068309745774389765340423871596889811960530877740496521111794364892712863983207291789998598462159806369971098918647120762009107583073676063830796114184532944098130185007915903155312491217255225952212563630315684417998324399144256662378032156201576843941446550745082976118403022060304779450891477110808669779404406214150524562975765258838580444754230911930282015570327371723337723530976479181200325259106839351569965939571099277151651313258668246605723818850242306319356052271702658903770467920544395692920299467176566205784746625721974870930115083930354587924638124794498400611032291387992595661316098779915787320854328514194086837339707033057525646772070813134856839344365903237587384012641698127712472766719315588176004587456956528989267187188435865016386704823879551785261631321878777538091938183587841848858424033302511477656929209464883554849161040431865138286334631908434064348766806062564147454102685179557437038890149876537759769405598302980790052824670864861015672239055540976267807166924708102864829616742735027607042199676029933702467681543847873980822982208293500587423679773209248030219427880653448987318604495451537738289587624630583539514367404707325414052996136716406720303255517100822570598785469275115731518182741687332530526805001025861725876482866225761276340388593854124978985250070762914235624681828311658708814410069224530802625779733226744752941474253593640188354465062327924192584634682403974894988166858602103119162317990416510162900813246692814208657563517257086988441916653034582976060777110637910114587283703975542682989707465304051215398014462741527203509856996098323528036562331865630588461026545732488989873654635659942457315462205239536347039183379549779180273681006509201542357951485130908789270906152647586182436968329250607606088065637645734971306801974499620102817592613997478188867716034709543671909704787503721648510229902297294853164075262442138953653317095830628237261056455341211320423786407228015905136602221396227390383018709020845264695466393843732173742656408350956037255595708108339181466402144711077297334161431798340604439355037263183456655651774496517753281482272972602969381370694594911583093094394777002620913645752569318170277695295284149698491244639959191283600524723337913183425880512398870542934776641341749501853732211655457730607879018816134954481289636535193425640069212931059995183184967366829251631617997109753937780627189479544503314337940713984390992984677332537731716975723366248711791048882233646194676976247463552449821796162962689591404399903045369043804277653808825579113164836345430242187823396679355787679066731141666774823127016827360981003417399857039374378683339467504223791829344275726676364867944717110407743458348098513969985031200650768739013446126327423210922959352874847949320420855709726390347263666664673557967156747217006120007683447538605865669561831757708886186213457055076375784726249871600703754694460919984341198805757200564346294284582377942070454019106953544833820458897683790994214502145913731301530922739120527512524406733215149731517110958761205485742971423875915405246370766881305610017851537863717538419349294486714649787830649776548185817818475007559435095251483258007349851976275515108277118700923596659720266797095305294911674965488413332115437854574302947346472658894166342438690561567884292180342770164468521823579751967073873455058429440266615733057935457873952058722035156062306790822017045144759162671763242100173100836099319020769650332309083630539625267393193658349225458083089453676116527984923229307341728383356410630929272818129196774146254901926440208323530132436665158089142190991650711247776966370638240872327871919580082658768026129467263064388244296643942358471602829470949948498846362859230059935311393437433486921178110385927212458026395322984073801085220108032206173882519394993599252522000589628145711038640220749425169769571939014069968734043459224544604496207248171960186428873186724358263122377067524440034328380769639159356967979651762498279593842885244314241576909975881231331173871381719413123872033303926376032135903951902893762242231315266479330684362163176964122790131907574281517513173311851933376669249145458717877631029287240683181843539067754907418912565490189953449271980167400786947414296370697140716446232341825445881445767862613858728792105650244498798679106743090256794911805325257540835134327086791101863457449810624029862883539610583106540278111306522384707025758263957051569054993318979426245425164539317983124061940136534163941869661897788717064023540247617630306983625660087371049951130916161078147944786081648984932090527269204930459263312667414403398233774533828012678236102723220209908024595639480987609796567176939942325041443297030018339632726173036070628243153039229376436554727491726659227900716712825382968239210955112024200984961601227837017720135547834028044494433088989915541015846355813544012216351194079332417385110027265784976432607380890985219429366576188583335062462422413625990635470363030000188075115879567335878153460524809790731358911212736748569878077021709999178035489541993337523769100325776131116688743342018798165483268282238994247470862698340459912545639319235984659195458936780286234372803428069572529551567010191959493010171174891930790701345709874160734338524049109591692810879395484591731870647232731747787952649475087739146690669388510396129968125414643929879535303629735678768468719666393889745697219272481677371542835728660485907157649001441301366835131434760499116545184533490395303353161909563397462453042164381436655676141401410961521211412789409860405657848794734077674809250110174123953235742330163888851028275516934913387602671108979142291486398676022753048216094602103143437071719807061098470792541211951049880840784804372048619451558560837980812420430422918913457219949234110146860966606947536572900788175348993378190233507049666912121130187359779061873698222743834172650190586950630918376188396911402556650917406639390059686853429786020816885606032794752160310285802807037568408483324045274610043717452364903816159561457677318058111771200026078052252933442832588952580363730019926585674044762197669678927579575116327089045419348566084435254380599373142489290414569448909624244391607204547596462175908302012007522793021490590621053925904636829999913382372649853347120966011806432573071626178826549970148037533045099823806419762573892807672305730802516868212663431563287258711973994105931241204621758857267569496530939709036167846358027825560004818397851256094309603442818612576552823278355382003626286798485103916426656091717669486141227464539968430392114137918013173385308049546758992057945552792347425234655031735504040459689808090875807215807589725375907653879174763521784866776923676348110167858113770141703777599246428589196123286153339870051899774107714383499628449383668835323794087402694307513234732263817333769573688475593955359442552803647259893363603949009453552738908086181750410728081491720615180134248083038350163478575082280291446928184321910255527501760950343837526241040941402083965466495259335141026248937224547785744557194761207440425137903261182703457115726101723549884516335631156312523398418974341167486958698908549202892696612304297380459538368575534304085071042191251634324883794924700679212490639731452396284973398768506816790240240454312635516308023800330172378207695637203080108933087972584320903142433609449739684894333125087896445419105375700957565894250530594695044611450894759022935842934225533691995987473935605307533868721640785900387648413687815342813215884440555344597324426754239576828004799677241813139043260800617281364364625304588493282278930795320490569183310304288416944705551326315702923411323231155042806589719078004804799038456007473705389121736515105172909407717572526735240662447186342514223882644514675124777250098937368265251100175747240053988325818553855964668868446964975477699443937442341441405324124318071163943544273311988589160756065618923133309290882592981247615549189300837339945176340453114587243334482888773830296557825728906257458868176241380996033748650421468566215707981801564569331228816960733644520293281350735993297063097231674661979385262543229617994297851877785214388376630465058047173711889648431174638698207428589247906577697327101802415472103453030591088885991349039910889553466519673045387930046218808496844522298773195979472485713283031975095328221112598004320601355442349953912704269045944186672474763169301145248707382794894988131793195273924169718709220416051183817912301190722617438616408332881752755460400125578520716733612592987326005751516767854731901898936126376437202622361077639082462593889881452226962643682721281181230352899413904221839875702870353300586394416709440800462175878106135007160378074414929592456701074001060281822207553736504072011745637892773278356457409085024935357103001380238255624421932820406767572043214270826068042884567690830211023782434380490985916867090622866098228929275016403722299347861787573365616054522469821642276872734924691617040989168836065196032057269986537440869335564307744153750228754616159691079741674908442455144805061238773577607812829719672165673800778307093810206629545048205646176754414888097085111819105517463225395136555644873493460990222703869751761139829015179524656462644026404133343722891161829656599452110133074478087751360182093038922923259379526358963087410835782815381602387001832586030980741541177544427608319103022335664589162595590845129246777393760291749188279711089511439659652283677233164815550792563693408922366358442343785222310989310901756737488453548047054896190443614688055830877013132425945237376243554510157626452727112459153877233397996644790777164408493009356221534440377970090932532687812111250292613020604751953766025558111409775742767914558727845824607648445658520965216495371348597078860832342488691378678282457842370758462551537038839094547820098353724090977902334199513383274631510477015138817585766040422448876335072441205479823822425459845259830228202234081610663073941318362562965971637086869371384601944520476278048435404877314763802819484237721440089833063137574282422027947581172449858258503077619648578104606784215077483948374587691369517817552227728743839246963618503983724752462130566661270121889161262926329102922063530574928091377693778096325094628738717376717320061296367128773329836841250838501546102809758146151107582011274977128624860592479154148325136757309617007224206146939904078249286006282253482050144809989312492375034923839059789363842363982121180198403528525713110165319537219469763359718616454256655933795531798849827272790642011802849780283657536910316256994325019354682585431183765507268618157749598799605460678546482622866745141700091325482387057487610600588945480071827060794567419797894593765523653507630694226997178759757851861422564757320196588266908591971837432954027887527704772172701582996479645594715757876439478847557307906753287671366899596307249945695830985620097198353930664928229190560269918232277917414388410511783875348870051209368014938268729285797009564834118219453327637128606450914731136140279903297801994502510539421294359891452244213475883111128841003025294558084993612420240987518371242854292694869574421701904335924897604441200748114585448087162012606075376546404724217508987319023187966189628338317020097103490172020677086272289181178104555531778625915248064626362337341610683228815965239549237522974614242701871053484098684731342119471473875722377136356842782404555745855310127774206332407217327382377426423373645196117600799784540830962552637126315501776758953497346473392268376004004507836782288019938362047945787909974900691655558319895722671256764042780655525749626701640815679487434411677423264367693151043099106791289374559891535370815012776949526247016775289142997617323791339066023080988630199030906043141165135060330104460638340371625250238038135919645452293699410622595216475860884291356945383356656511543039900330183494291999722078470033869601267496112213715558882934767709105746871694351430610996383756320245712575225873797964282742062167613251011383348263674264959109994366254508361474414011250335873542869993564993445433271390659609371277089690594204350190598449393541998530997160929674412848981754510563422401912373375723179217669627173536314582007417173178479229127378372642662737984386601612330529045537087801620625940177097416238599436618879390960601202246501642398304987511842157417088951348557761036329788906248293206342976534183631137383451742118700818660349467673425823155073797217914272712796415134092720044364084147955296767753184540924465132308612134247948248458318402894788758995039288644790863945679100310411235610002583879462123855448219760598206910696795312307236010530754719428107137496128131272844354999785708448749520255717654044066402641260153750756429427962212830485196655362786325420565583060199830898959501883931146874620905208935572337024162360235204898115599853125790285835069047363850323729450586627833528352602523269880084051834182375140916810206650854717412055779196540448679298425563135896101167110232805062136203717120704676263801981815255302894919324616692274824897996794639739538160586057750666713256184092334887430561827107822572671854380931499859741538149509339064540575240446952542318488819047011017641207121518849478229241403649490549165414946479622798401557661228219299058121762012805796283791361480582573576122930319327908095674967922250797042160870228109073541789105338766933198333276049649466880458546221977340090056865690076836403821183585418300485266431813908103334267768571394975422808687060567909444719258596305867558435998093740965738030018001586171932092627051743955851671344372367402246462511853864995010614219277523357417663210740988093332233898234315071031592389845061478010559671789217986765696915720728948304780715001356969612731589766624231789109538066508294475496008796737289812927407027840926500168882718915576943884155381797869979526794231016840128527118623056600206537243465744209434515017218872942673018426115369868108293849337394785365053054840999838485818014904056808928368257313645322839382002226644161820463732797802473593353665400794736303620427487592453632514547166781549567322605683826394957264265930322321893191272089693291644395275593457395803452377117099742706834028838022481195694369444263231105381382524590654555026034083491777495034730322818715090676847245917457581169723136329052720508157216975959318574787514164752887232830622418214473119421090415265066230812482087945831674640111726081507599256156403439784407717291169289837295607082219154609826242138553186460935699293824869896997214790197652104613458697282952806679746923787881493435337644087961331993319112149374743913498258142985359388225816679730586609027606400592333721073214434779541754578914852498273274286335309852450653924824635388907541994153204037720299947756433801969356671644147141089332540451797811195879172629608062534495237726527395445342653087958964549968305088464753911696691330704543525513903057021647226764368491438185352280906529544569236916584433750666652920627929757328192052653705981355522947762389278989389990485003657091375911150271377054625477491591743546941843083163350090218006561645071390624582569193035566477239742282066435724436620947752592084944557001325551608303854817720820457698363305901683389667332990442216998530582834485739390659495293822190533229859848044802705234410110085748829500118234759120549307040908384464276653986011267284620082843108801881385370927565495512803818237448131920732477674300954742772308371050060380112548302186292983356033057247637406842372029248089959188912981524222094331709493485504622562636140689127156618061354070569780570320788657421938201861248585699357101742137758834448969332437776136127769234619773300915544656830058060760271621551170052598044207123701282441694581741415738304332457605482549450571527353414598455491476407089920486333976395229136055420291265745111001778249118989132797701278052779525984709974927762242198361173043218558036483004758337778417349661180809665384591844464820527084951394936658185341281459656036391203351888603321727767302761747710077242022197546910854224829320932988200053985244207533436172602737399280238926422298326428608657524281348196791091404445321612626748362838894431901022190199706212309899258569223285740303095285352506573229822391993051311538052143848130516807528094635183880128477988510645689099159998887527217706126500599670281455306541585368717259475888557101643682040293356472977739481829991347180438390094113703706870420378172218969157158502064513484336303824187928024301581473054565544647432492492880463577602676864927878186100394616946454430797073346245847682283118729481372306495815110415974999301524019360266747208724438108682433559115793325253895463226698041222865194754398965260105450601207951898265433613331463173096207254481720759209384821218728714281133367554239834165969333230602992884632217655591532757344496050898380426146739520173862590524203009899906254297732739255365475676846782010517319650340072788942937892418812341518621998058974422605744931999743531134376983272856214364003283310285413247480321648326354779893933560603108189360615343877144245049066584193237667687416564337403216165003743858023911390201581275957044397388378533065326340778282263053605552194354474105380856679770111050111180117515052199931368226279407590691772137799777435559323993593353027618338228143057042049514770986972057601821319189700449875853979609822132653705213907802007100301482188424422827237987969929639673565802500326179066937163180196169597462379152819685331428286428596152312885302778868660367142533937160057622024397605923253299802206131827522561839380870192546854598011590247767053123613515289086122212766272596315275535348970881816933010891404763743148932203593882484859919667276227047195289819890903516976069229495471383472073163329840177654677020383874815440125272094772254838270369657468931173909242562576823729201959645155169535010747178170339267135330169404934637198397962473512611646276512682240193800507128011601661078855492145521449141306003539003538485018171280770929493466476670237818492769019917130797538871704586729291485996676952903956274287013040751972251467329649898052685295978643931419751196168050641637304038054825798191078429546995249693498655078891489615867219331274906909973906187934356301656994219082878125021647765147224595008060911206535258268753114998583825291490419947691144956404756872278257988565131263623586115240217381469848788356461466061956876793179000052337581793380617766750753586037645533800843786758467808273691320349620490414786456320919692449545138134236459660214091639915381260878442051334506016724932140806956843095452331280423553701300597035672636994664379533037878311275279613865461570702559969158241624076834539513949207163429091343710142801150111017169077857265757977350313124655901230694145308884613525198670068024549281770923226990314169264701928004752553363384600891034144408689331674109301285399271653354287750307334161768325911767373817469216791790504904079803104519448863681661215632866052790506282322490381896272600757860561429202478455350557477352374211752733551130582371189560267857926729388057399984545428776121452744129562891149391429588244241465792928513859172287279301841197654922011928030114474581455159456865082875037942683308363426053955548951299231053729270192820640353301563406245411904587576381297059472343884532114103434091305104190271458784201565559531579353606463583465640452413660894387113708524904505152531129824009152731094249884197839722789998216868614433691423329740009160118351327079701670506238734661762047304484210874141139731929381660790171271786709355275276110088961815291898021668028597114173046797336412676175922326450668896337639561069090472851436312492394927451725800516429186064254682252673209508686484788290149557171902267952088127889069541949645720543525279114534732737746155610101557329123149885929357282632373585805521138791405718166814151522297162224205405277110697526948849355670975373520079765854596704412025537748089509275698362596546044128497530812060589593743693291004853230654586053044782782339657557732593123263219140514658098645335239734398101224331405418211670214888298620208016649458862161456348858129266234457825086865764639766836984157910338556876997265890756514596415842203906068273595602856833607583846961668654756146663773509806835988239473866047465517413984762293394848645571942964697422842224235219721767718657117485014857654991858014689950898475591481043041886428169103221846803509298984189189893025705126718850952233535660649027655115546762815991116492467995303223916770604872339640553334014953165232367895801021818737238541774839818428596132160022416534131693875543883070367916240784215061610085005126395178373127620776002826908204274752516608776530738538243172585110485299312148394036190885038394867476974110383380859076501491500234951645220010723299505633340143579872444357133901279823090416372114475467766876090093243972474483183317953056600664029381671825905447266863843439678383540032778722489036266941961778293892177531919755916263500717510680632759303497507057087180212343826059700735364833698365674600101605160031849141997030242602287457065167390223052542137657016419388510199826182050086072362051629120663028610963623786039079944676173286283594422386354134792531025501028539449386993555559442786846080095679209837497887546826168602541288180608660073170864984223421159528858701949342430939913080038275866085964889757626814764755362630531514205983659313626539469171638405693223240293713399631489064324943103225988382156994196023140996148807731459132613225049133360106553292922964040221811661205804315873442476323009965922112130791688748955433141437237415638412975688289439978075785880788800474868587225648493883729161129144357250219288674014112873223971143675107468944055043332561483770972383047234050279211046278996895019033648244959927150983827383990526647939091946070209370473268080853612889353751920761846665851407320661139832788134344907274597869758989939214031077087910325088261744383053954559150493078584139780707248129241662042009984661604156937304431630409319550924221912356553995119569871641989538694919040953826134136597475669239491197857833923340256589860330255269345974545155464229518085402041764836855396243841782097514632210978099045397947611169549295610861669825133478214012613303276478784094210465603122169222384293598729783743011550248765112957571802939608137644204953326183201147045924329495571948692842686734111739916786968716926393834474910160979364911375684717310815037861144288291976326552251707352837462235669031404524766244547993893092886535348017657812942579520028469052073128168279467404543578559214538051789313577517137766061824353815494220895247896342041455468320774497295061351928640878535909441734707976112642080890860281358469287893246254756979833112577128303143706383970949701780281788624622424686437313411846976974224772206438237252696005414626868298348973490135067713169023584042678879637181260181875222673258490769575422538886955224468298184232147281598470900213475130613727288161282676674881048558039039160754251085836211655387284113482683183753520836365017772592217698261709288804588407906519699159868231188939097474339568165396550723408501342736252552061868536329971723273804793190130626461242810785002087040541314662866541760703446878214863590573914085714513618286357842273327921592776630868431595306018869662193340266125938700286989965611099112429781339799505754701992886282097134506401118691352900286916600325009706913552404701783783909964933828736977561805458845847172858829057476272129264997589352659502304004937080376119032148366902731693603818803667942936553856724776393715965321320725776631851329090535244697438329347945954524976753457799225924596664932319545337149382579092571942153147629237630837091737582189449573315901240366404375795454115139339694622017661440183414741547746270042172657768320195995315075038477134989372592445809000334258117290522948835909796801951986113628264346594955552965935137547445945510542591470640190540959371046717458744252254432948797361336999756458862115645884923438749716322078791680302067460009800939762420148136725792688758500962564246052678660801564580690992764271221181372192833921612656725108395508469101387681293171351418968897818192712021170178512794067168984195035986647911091231760165885235776612057276335210790115984710576041105926711711618190910252565151314199783888217278387495592869077421506570647191677507218934003294536359206475242256608799525523039965007139105823935566748044623148045614315458157624499566883901623901359562473021095039524876272790405837235742370673085496452221795508325977854374759753371344910708109083796009667737082760836062717922340398449322730011742352777221218441177911732939599259588840215193666600292167650191430253920596240121361769756218047117804665081714979880123134951147854684563099632548530360695460093347430297412450044190388802379052809544199043812045390598724028790658768507684720569868419812418191166560153451712153337214160260972841381329436904993254705654387104622022324261742908416179113331929899956411254417653461003269768977624682976983034349193352462922183907789285314133034456324951521545560200320133207078496447709663300234658486743632192341708834260562638510080998797742050064175964704321856861451442193601226492847970974737297080805426693246501245930615184244307012896554615023751260339023685033470725001884027053843602062930915900614941332869240934745412651810340379952235379201035638560180692763967395445734348155499649375805675184245127562915630188381547287721753411086345976669006584585485124482986916301172738472116942572439285421174739236535344143432583277361197586893911186943827141296034595344018046938097639519504331224896564914894387626149639779429622082827137392506859204479261773659932933042547206266338440523160694381360725674815600664339925653173950537878522206900474993303247612672334272323800871501798567526880407269827471738929282589691810724639234148886437665524020305423043539095710226339571401944568895089487670368105421084017968303935284825611368874751474100732612906775126488423158749361616206511153280910063232201108430901330999286992741748671379724222209755429394714173007131609348264098832903825039149577761883711750747557135840620207131533584103319670469738148243680493642576813049012191135357998659321862542277102953856284825782197438993747568110488707887811326462212031539001698077976143848144884160033089629087549550921481521218756386328200561907202948340931696310212193275393855341749321475259630200919035577286420526747733854311371575430858817043556264671710028677593392672202588689063644760451480177224147943181981456776869810939772125007235152030691556485008451752822243187549754895505997032174193683066314593866207269629803546589734805430986233218852273619878395861933930273639750460863442082570032762329439677773085949910965563494880752808810934456595119869664340004333318786265989802915693184304900033156177623368575834674806586966072873316945360423713438076650070063720287985189221526893988864878447912689674354686484399453380341680550591327123786674550226361842940218514523404319954627346325004402619303843035629593694651867817684256814002897170222012347319229089337171140496255919666302505222576673236379369765422479655200544919785867856090550929648273348874469985892928872661461105789669046756486063286456238218158018887821265567858862743393123557084633236353563491521340191849678690818588781919111778681887022151246291800239939880267587753541678649386529347112680381336518449154783001324131355033337197336478829130791358177999168291033743272347735327064697825544288332503785796284262613298822619448387489255324906794179334092089096949673723377100471645244781417644695271733980867131694229717236807567412218538379840524656410593646030993295867521380779554274968427443529366094892805643324382819119109457015684165965898324515400324104461726607913850393527439971147532205199308179037982665975775466928554887685581977617235137091106376611068834812107979142452786339479027152622305263566636824663045340538105366341308904006672306266323033442516134785886885576728337059888715187115824210970825065751697827089455143817405418634926823128480224434274798821476876411338834304722785882457224505690438813157420649684187579671922192879238084242091203073334515752940496544546289487592752460021322032342923011596784616143806114838056266410621706007493410732947894348529837279265147809553594779004573354822375745615326703181767500489088161258396097646772656565922732868947530018577294044839980919597641552644383881843007716902244388631223179722643755199264336551431287700959389720367445007089573433358732359312377601072425139256446768397832326560121498273069290091863639031055423712973261426967744182026264841230569668244121677747466008337639308491262794860259076160263361444712048784015933776945905733959493772820152692739293066537972236562218377177214910158014749563142158687292283472272211778070142172529830042186833227251549197412070546789093351674348978726530077949345334425935788552174823583902547470061097051526566933378332330767409377108697894300030542312612630476582340613547378019747991599452872748780836889269796028254260320784137338338069675515584214047339149646373878976504930588188841019607184269691284524785251294739781732648024118477220291394570560619278352598875699507756843252837511220593645782767686567957729339535981673968575546309071543903782379730838162407820475957814670995612688707651204920703235649678672523391117876374380807839150015365545059612726436082060808627730221962399764644547251375416623065359976088113302925191971539077043703554873090501376293871741371695339368660189414753810132610181930248930248144092448816484496047050261267474195617568564388707234938225173419801596955408148262140162484552310882125614582894213580159268667697228512557483037542286337267685275323288361643370779795621240574777620086244022838103131527905205764698697691228170429470742530871241507459316841862277424384655966464690767580851683107541093542149755942686272703196118498008294860526754626863282066107231614044423990326926762927872683600660703641426178447332314322309488402128659185241943313103175912792710255199481414239544771935288100274667643216913149775544166978351635888936664766194107290558311266928512936131052692274141524261241412085816138281652998156152806538411844011168482962425936009140625282012239369358347831988213379377251039816794165961262422661747098586722788823749500215246936262759742951911295410249007884721490935021576201214714959587741191364106838904418777453131055834102511781004264090374093219584269247278681671038717557522374573478838432625592047040833316041680006799632251005873587587943458061822113499476677190933494427319640380596752026814137631902924054544923663329610571030714421509774287898520714496853746730860212300774081371276595567294602378358605336851766630824806916659291367314187302531119603455865689916576471851817803376038253486062158326163128382460480519633086044633018140550810231674463200671397525961630392239926298127274146103134128759834292315672872615078031115762624814357515477388573838275855698291549688929922300403295846395147166782075779789075312690122184910914756057440255469439344327807548232629734094916720418396855235638260098161268089097926121304148608444353603825472839984307243226102940690634865168328027810303502705255183785943067632238447402501180630557796160501696256228519605164817916865486361445032084466960158804034185787296095488065321795813418870700202247912421767393318235314476978845100021320287051749968729231188221502729726845060956755619448456907372827046189267140704189549916692855142629999474125812579831601762764013816888104875036393684224590281780538693799483313572373709256707569111273440015927354541066867042088977029291635684094874544410362585793970217900287028302374854127874076961045683358802700705159982447020966430702000545382546089726193952842338256123872736331565448116918475693076944435599923408717242332388287466776472460284594410069123293122272451850812024548854937073512121276191948606619304180340354447631626170442281809688506858922565886918598330711906480974823355073239111023528561345754265061240787824075461748299884450713464032046791417931617588982627096709023603435318306426641018980048839577258030411567432387082329408955956171754564035251983450750458218609501195386877008409468070904039801994170097263002777425337345210430096100288387749049137319438143356585974366343259710910860764155463071368755566984946190668079848881140692149755240373163911991491102419261530956128303190500537052679221172931934941203427241463009365937993940641803164023287004538076794001823526964056383814352292224277113309480171915293465687668683672903257298493828277722852974131785134052384877733325642324210136291855082078549891046960288737952323512736667986267454857181629660239067372502207932225241883130778910454111402171721106829643390053318335300512297160893799726034407250672033946917841419378344179642215618703809752920271999734243354405113133256799980413671077798453601343202419903956016346534429214446753849736521286648281236499152807893894071696537041733566870772485724243265534833986098342106110340661440936550530960008981725207883135328845258338007067247616211274125510055819598372216692979387299406028482088197205531141180141757512824589026523937417853120977549497345228572658920952238275778928585283388852183005049797605402387748619176044207930341836036314091906490155970263798686222760973918474608531357517962609783648045757511242641171793063130669693510434974409723947824355388102972243840255724808031672497375252103988636748080139764150390785171232551196032713730655057841533283014538480881308380001987463134926828617853050272226369466384739595479309371448892215851046255249908144535310114338178138672568938412334904829347376443728062591291969882652510644559162731601578164354114619706849990668145293279744193584092099362247924567365519324500203045603473312914438109215991269045929259469861051996618129610745828885899076956273641580403568000294818023913593626351376026890250681056323897029581527455914737901363584703253473174213394734186396489175823169171557811549371520449829974203960396553709373263001821251042977549154475299930578142635267956198813308202152455739033739999064061923975627232277915217243117798619929709678021936799978847346931928513991690335811664572847907632170035753731635898018653433102229282954431885255372187149659687967004881928941559473374901323014629619692566850882112404799355617998744492784793265742649993266091036436352957958389911379913740434814928466672178493457660868761907579768057116766360497629294383618024944066678038460139706645996867823469069571273873460184484031973224847796508908801187714117617105755271556559224132561267827222048943132724020917389552222391859948653009541419500630654747724811133645978863958923354970137360580426373150836313927027573189658825569033656170612488270162301748708226020473658466042892580328610463771210543858006840096508815757272422899337547009417162580600819263827593204388088184915105714276453693096953521926038979031717204503118807900961393844615929720972103932787643680772055994568667334749718604466725548542511591548046697517838705156051471175370766147034019947042024496704451766800415347858303375867299219670829316398116927292653790827802433494522578348172708976026613200756597356552754792401131684812730177054793182370564540102076544259341493714180425648819206605728292664908012376908058162119610912088248706406454468609930558972927966094740946924678215487732181809658186394726626922383459582487195613849247379376425427107743965192775954470481409911432152629600429035974458050044017840764759309916025830092245396104773699621273216046568586908793914035972111557868352504943874467643232561882732501983655239978308286229019553548759972217233973840016858494125971228968620875551360238874432182808375156637660311434771279101285493535718555288158189160226835861163350095207429251248579153289554543428945071118057193416332930097813524784755587744965629120765692602054666415057515793804928504344993151876689223518853966356983669234118623095553906584365592307823675853971198159275094932827832999157951470827767887082690904942799657560256720577687207653412429054732239473116470131860628207040961806900565669583820724867612098315574459950395481017115455263926895321688030144907502633980923937234903343906686967632688023269648853395078288022194022999395309430141728932781708900861538672338539549736928714314375871616093318374750658807818210634933782453297538800110741644798147466692358918015694144751598614312642601496036763355466412083344009304707888680719687674311390982559523512626077595172662640368382050145418100233796203948385671025768358958709983404941630823118544562994951896036954746272513324808508296297539927178712288167087471339677232006652719852821420916931366224444938149664937131311557035021932732510479625041117862504024182892166209046725664042443080172424590959153719070152336079474753674970147478761883934014131490312492269246552777945434955072941863523782806375744756391803187518835255817310128045373917718467459202898061094729700363851939267441450391706834140208827121050565812174731844343616556853859378619187078119102098089396211541491082597744963567486427635002825240191701459986119020796304670448064595111121768927464440706832151492061342258409098930239545101000250020719436108169782903498636229846718459661076382923712410168456015533749689914490821990365250944349332435389865273996521209620844650680082184287272525782401625557747372131552546236726324084093616815673315382951143949067780283513611459660602021706551778399582228158296420069579698946704852422583985868297989080294666247505510619265144452768676108835305576782430073967143900797290241890171366484637272672881507848241779871624910840202235709825505738439997891964256529348845814326621117467328634886588592500255702645982054611184738529020440821876880435558403801915738298433043642533798681976195183333214110480796982335920454142354752640977947367887652444543270032706183636206381853665753276634815006282731402878926996938363715446717978504668203282715122779131206105829274710574722727736345433320402671547565376173237363786632019556038785063357026771064478381587240882189612612525481693706254497533198865695180150663203554060926314458140906021158929722509933335058787143102218531106512900162008448662772488895435141264152217912881732032386636919720857312203699978512736819242204829645985863759576394407716639105120656144230625429252823740198411226447001845457749805450905446459218195183851147225979289972950136155097559546552303465220154005823927012871458657338259350019341250571208800203620700380283807868214273247923219757847686302536591490258389615398504940574737288436329185426455464593707333183141955675558195028638936646662708279981133620226192657494615965598698397720018376359712060017801239374054705643187839832890086472340026872270840131785964336627331883847490319257645876380222770600854213864346919217349391402374146275231639778777139023700675232043871604930691795675421121552098184297038449809946083673879054563475789020132622048506807285248272037432947952790970758252490909882499337276160987748419689823580957794327698346637675622519665688533789339713777910567008831106279827286946613496028768593606507853464539844597612273248753642373518261484939997663607041136034879346914361734589668933764272909474765612099210219450604714752435627852529723663492669294158752736690016660245587449019940854318041943435198145492442872896564620728370310833204292684923892198057905330693719675707522185427877744364325762494455880897596848548781335905781530385119019183350234410370120725068456425131697616755175961772827183942216266502925516272963991283161063279757209569566360120895187998583890936063339801042464297185421514105564079278417393886348204270318725832814559599287018068440473640350884630061510210042946134740509328933775498667056537616740699459628822646106763638083848834358213782043560423443447806778157957937843513323065499886976439722976179273962171537150385908839320509868926155728496035358231325584861004910740350135632799671321162147398933344995949420072623319207170167392047336692035895285697701729567061785100279122528697244318611740199836274890382555427384620547044203343108163455254537236843002464789796384402910451389923042393433549814744850354128483990401057503225628658947589524623476873641840922670512426437213185314288979026932327300535894594558035267155943375520995504952316564982227678027512703137721997700516971706654893846374860962432396602812333011212957690379558196417889980704803032004742894385625496190499659410650769514372927783403537078888060589919551503446160237111031301854068378221428161329240777043691816917895798698783778074160213411097259342785153667642223108432702577429685230684323828027911084420208435515515723940118542223551274597359769160331560878071898589619339708440269157804366765108889318701356089832667362359302025143529530599936244811682465133914260238817793251981673982856496913924127912221121412287923510365014815079769666905074752504168933301936196186301539226577430123064081265747981220487184453625301967145982087097228128607505129517168449401478487863390403621332595072041965117694848777362434155525613891020512087070274924864925236715619433459019411859703667739737711064645312388796323618446510539523619425156248010967791028817508687282992162019442782252443831016700299513539992848075204298434656901470033276047716303966045038483511066043500003190804929332264195406552662623210794817669209133500881206823906256712295611327643946895330546460530456388688190336230902578265825054178561561616520657513751861885643162719706434894210480932509434119317435927994443503752108286607318659413538892946413664551455885316776138023089477711002193373565950767832566457995452490953319670801555443231761007786896388223744044521116137898895296627970322042091069473550850296096079065903549559972204320983505430594739860243312884354064276079690496927500639516491090937644506850070440105599451423713334748465169405885921145424261391367538939087124181233534000096505791520334059600920199180041828040488489811418421773364901235424649439690859969146659718265949020927850806209232306612376733854069720735600457450365420916850210467025362458528730890727093485218256238938564546753831595215749602012500609490489698415526015410839620344193881800151693613561929265199208159128736969450621940311121560841032066636755076549924100301007706319926251968238390958982273349567533664914845451685599533114591218269842923934148189329048241445070749375332090479940224250966493627612738252842052836283599435811930825873364164098486427683339087834808639041199428480737570052100418253161172801335229314497386118032728462831634299839049597025844410773326138009626350713210769332708050827297522772601597819573204225701581769141493916657869213613098652261432573314607881267295586011065918037531671053942317123574367575595941185173554205301837735715947108410697711077752705606596733493157379072800801561733326417473353872453700752005778889413587050288715816832914269240289600622453731478352244661810408433812693133577499603635565676057611987164282320514765173792618191240726311839252091064012571085922247057342229816390285447685115911672434399699057114055221431508177868299342417184975086893098526684574558593356976063458361432376150757491631527787814718762822978433427034503583545646904810142396036887647486359530252785616293137358090813909903931143049848559470721927853616722259256401079480078142096304640194487064750891417568320334283461507640008113951485347724283771527875732425456936610797732005617849888726005306114235501573212271949208485646145777498558374235136584852961509060172605456613276930877132798760621449520022848836911540924278280143217391729124962156370368331226250851972088709825412637045671887168224597463789190823850059161740773886380530887483467104676909139100338331489592433695938103278100996481713545654317484413386309158041230434394635152503593505057898686753488090381708481925600914956411892407441069831823240810883164182062263921104181209875396304908766115202486895871403658404379374699061115951072683975165906149024692992142417576616818735919086313118673413651352575781322612723528891457520257118905775272117605813117845467453030334700785048118099695094050867383391731212921349432397617972015557612577830015238034924428723511546617526906030660970014391218743081291123168337420891142723444656237589360375033220557878721239853258762050535671536425071401820371101239986983503239854937661370982419310998042508355683834148053414690879335212319959913525543911748362438324108556352787703732449858245749510670430169581496994569074390089243801368367786451900770605997732360061843275554712984055759216047124836876788644088925509406000476676827249717226041287677528457240745382089398739017708267492647102965519245033427921816591038239785386891292336281498637374676838807299227747244700860860404640569879955581889003843417495228504463298299981081685000656640899585897192382853453539824242001792207779659409327036568607304841287041998383964573222741360240215171943139663951504032893149011540654465599475414894854939147767777304128773634868441277969416930362635454070584377048988513962290216911757730326665168213525183616956655959400987942710863916294405689814549430113842843812428110783889952743430179823455845227831885410947539316764830244742058170215048135521801596532445426978555608646061818245437314093155236716502785283731753932749594664010617073609472230040360806075817897460552822411378440450488410069673126071420292813717663306137510510638093227404832711315168961463645149712356681044615110747072641528887405915169220318131063935142349901357998255108517559161045794602119181644225647349915275928057584412379168026657129547991492472025449881130967516115920394745044494768657879682843934138677202135241013075938560760939581737999862752908304384928699560573091044037831504004972218717017654788874981133486167925947027395319140864102504254336209048469135811837239689305770246920542783550552027055140404254966881285120005918160729787348908634315747393122889938888370135260937277754992493032447122006298457842049586912898338460582550283527803604994565267754447217569490998098066660624231900567330600713089253664217880316557912810517925285466911512348834442827858027377857364723169624201896137392075469574504471140761558517653034275284980328507483746647884368622456071180493651299716146590974897080568233730393340558955066926555824678796778487782127022018816301813623548373984620186795013789255878136611388786764746267142299612170420020131266251111521954776522677709318226027720330705535025199423242732867657796577368764812385296952746292577279324962961389063833751541658020279785251511223145108134738690548842368474395493573996924639082039086035864998888614989456010450714729249559193018675673954943545146853750963309079254091263939137250227551222217415385196108524888864643059328848545300958666645198984794354523664876869346177868682569384505423952529625227906206902177419520554224474365553646532496736224952671889339612475116144161804754239595988543512156991843723821447029359049750213775384266715419145333263955785534241967891347189440230941588404455353802596098684448807711179905787826483549269005471279115152069629396861957026492268007753377127271030855043148359094503851688552895754150332018288780257919988670234832890255399580838885136936500648550445184424447739383585250536824757120205401727417956858717116419981934410784567036711896551555867185436518071212517737134506992531540391023759201721708516952146740834844029656468950627619052441904850346321029613766492726879054226271619806841722035875956551787557880972359658554195993151315415987847901660852041942560486342223883272152899591225755124801085750154767770615880334056759164277270261115535859418728281073617340192553578554426899391190959633607265300561269029090293463257617509782862077711058083385878304557545286598267030597908797982453164102472454386727991071287389215525846929843336584325903879282905091399612693698818721505137019178013174270227426382158576117017597430085286346987118295592287256218085093694773064110727692807089415108424031948398084855154133457748904412061746156526510490973145673310759062779008095539760510593599245495625171436865777129677291863787775015126774716010999426076651649303583666220081463516834915377641077048506254151099623881077047278994564130410270211661325396299371328435681461054884516403832275322737145810785775017955759633412929831998217931282487821519316022952446616735200867355983233685409061163823305995945418194137939259126124167125677005507293002883483318547446494484967379119610360010055207121441985389904382873195185394856558757660414844158778491536433152794895969830872291569909785669660031553840696223774223458887855702474782842429267912165301606351824408236232269304760614157052940406815549978816815287536201385405687807307624459557143180809999780334390983100673792053149936048624388634049719669175410962284330484561930402030000555252968195157378957917180285017127903229749017929960629826067599419261970961183487842713595540333293643759356168893451051229460225063841031470230300668335455618993795631606785588787786707743866804040163922721960752781105761597948622686524202258181180197297886525313463363789401868888023404552066716263929261878377553481389928257669664528781191301869054667789635864011465241105157167400283889698752091853538851614256741925913468388999148285455535778141186277689545947501496739330897864935084452568707623844025540230498260630781815696052498328680767695007962336744246572936781194717685382668773854311970653860864504307331244019502469700093609430690389314306657137720246424167295105564532372990135398912502976665842955468363851618138611434736756379097704387289714797745695594386549830488416459561473390321444865858549862791678244853012196108349210061204396762800204627221091283857592058400473317435975975559709989995532551137201000739238151077253485742432486818673058287477062919634219742149036667340617114789256242647625776392396142586281226625963702485960471777347435958512281954595894957243738983453272532373857697742774742524957544516969753154083059532230734639322113184478524997434289127402507311842940630840484399832880700561148229159235316949092860391568090522014449351940869016780369699740377209897865963213428527538896683660735692305870083311796121406239706807177844067318206919876590080156547694539907915802034475750113749828497494245231158747431439512575902397255387949029138906297725162912400938578380047706977634709161211828811659072962263163161046433560972961849468516879175034376240690489581256336938839418383693309936826355549645821658687643283411241740352968046109683537466052850557073659551036106108331905763774918789592737004049503589496359087194699932961407449670761153161384511801872580894084373499983431140758986149400707295158542697123889427181882889525825965144153407294354677276171715532182770631117205291940522920665174059456200489973338997377796017965503537485393689849047037040931911842527887598182118113408811026365330971747938793624036043006159692408751615558229162021623028474613755681238932740379864525103574392715523217740773370277764982884466184750892974152682356463494630516084303151513909991659454029839278170315399946676614317249106277609755554013714902902871949326307378232608615186926340797398549420278719989659379729316960546962366888384387502736112107530673831954603301805188555945943170745475993235385395245454453128368593152125219510182588320364753143079131117751260891996159957890731976337307246408226026281977023364290996725589402568953756538430962200621200948332827003972997223596554551711313739489729642867331202624060823213218086886761343623226328415749561085364795909464017624040350874137372946092804697635799545942803786264561490646449465188106102043854860770173186422180699792273804208972322215897056438592311190336535103827244603015117470146607356734086656301916541955007429603068094010997009509345471638097747847593888676734772615440285150125848511496125723657100480953494480309241850990457721155607814918415131414806113209624047340100310691496885442366701438327189847232156428837241064030054054303869735185219488725184661992456570415185122290498464576532652585155880979177772535468012025123133007012640466710493642596807232337220265137577373020344797207815309345179667546999693064568976798697805734674416742828537261282788691085758423008696487369329147238569340545444375443785553538046184716031493465703290214862387098454759948040004399520958034463934316844354913091748535595609332265312172414278594079572311155254586662420353429212739444840393132257762570646266224877008928214808082837328481927459472737919446728016783434316646698467562955896042353154297893160931300959320852150994929196038962570384439214693917546711845426684282515438024661621090378182662812587457065027387421214988386995677077723243073228344466484620185662280047392567625397993742542953037365976776851864502224261806128075299014082722234986092949410874931065185708717511740490069292942731694094925461313363805401232053607489512427688289800653387958331266164172506586090017580397436510739596880958951498334912848156491808613746053509187060315168447269867759965280049320935218962426147823094081168353090654578673980015042771704317153232969418935368953086451332160318130880992847684052436102354689096704015155719884017749370548010382480455605530392235086303134385919617975077237501315197878203215078244921747439690977682887118944100156812301414603789398310345060933336467922114152863469385735201446666518455445732761746938133000171918057173847428105406073773823515321352475789379088935114285603852671621103395682918146644582785265596280415800344691806622726243107095349761299556210982979931071572604856564234551020324554722897838415195317729975706151451378556508192395806338835566293823476006266243198246830000242856567498260368389523109676808910121873411192598911935036842576217403052617413830890255711124966589448261655149933490855978900834476680909714213035326856391362061561616300814072178249169577657655837179466860756293733414367492201737148041066441438431310092354513034328512309583804314556448801338396497566759856168512162402314569686273566067669645815861452932614286335636741152963800948869278200240370859507752050571064289259852912533087926502588453095733922229136141074806452201572907843257297044722678343815057252484882616477409276227850996137598930106541897922388962952602330083976572691372762454358857226330849793367544797487784669138120228822014833303624510131156916797717765584762762204735942963631962880377825548486272056509980501397160919852944056136525815887617800778999663894110390516227899623560306836645992606311068135174238966684772713812047372741144421762563081155643430764144631765160039886749041016557521197768126440776675620636567571451593273978943063616304923464591651511962038263746354760036414222599176295735854308508858037967849869062252270106775110820201038887323106230023295544412688902784610194670692720398313155376478732984293313416945067156852184319447632882263503350915521662566996244228781475465624496965797064835061442701687482321278597379543294648225832012979279707585014860132397657355973025116169759308874765727860117751639391723368092908518589283099175394421132754629254434058004729979360244423396680916220615999949835183664599284894431845485021736358899247419389435613239343642242362218663136239206386169808589661263747550956073826981463475944972154834347681956557061590473638182939773844992104016456588832175404873681434948956392022446123122529574747681244252492065312514534076747239289907983780244560230953042980080815186552462861455361949385554146771219943588357149006963047277767424820201376392975116490844628816579442336344566762509098326141399253723082823686145941404142491888130323277732051418356135124261639337752510400905626135689172201287634843199644849082211452445685211055405230949212729813175348168537886851884918906740189961720650468135098030203520373196047457159485373656821563668236464533659381260103907101938779261284860692489186954735475715167474619220826956321023665800555256243613504073854592230468801458142256559027851918303641034046224965059299044962540324495114920799709341173552135909993193984268406450581294372403171205877961984933421322399799217351336294898094198793487371519510960793950273888400608611944537226605720784430303474804148886422342582959814515085545118212961997386600121483145547942583718055638410991054105474684960241910508020210578094545439939872662962121561599794021393900843663404063295770400127432972737608978846319565945368435509858173349458487790228895719879358924932199731022669584086653195955632626991538490020168999599653502458033683518850226064046111217275681072577170435322067498363475640634535391439895990216049115291525003348910785883761137608335690856293748746104583193991770229906252675417291299324075296335603562521336051414266568965120844853399809015449707281670203091702639330907824945927955399915633933557640408711572773356623338553366419254646657771535017790227818075087647578592003783679364524138648758028984111041940774143977283530184375839363027687382650429421630328992667185337211228977518510202750073664839931565322607676774004314743891760558418539881688417353278476834500893639607909718100587163674527727098577896767217045445540052895306466950312460748210363906716781020974898439788854601960501330090347177403193879370690086720490585504532402394710796359806206851464505742690657798433221744015263145202582129089165861426070555550964292802432544123043626856106333250359521128651114767974307680760429727828308134788305663761406031447753157110941719362660750131379156165121870542163127055935890736594287090955586532135522092072112928168365023135299334751616693414384506373216281475805793094699246060994480561219371304031976448767549654141144680642624968299292013945397574613571275730394025524920526122536697904133891144309193104727042157893431293533863211331548497269689227058920429403436791208158827306102629115276588499746231192273450403210913660865830515569746349567725144943009443932745937443122487025511687359701713211217777171928247021179941689607986212536254692941699483964724748680668096521787391699316748625765779446307123738536181580710248077960478651483218101590538134156575112384650530564602947709523994222807039717950783109719548124822940184818583742954421414103283690062904903720865199116982484799561512151759318716789933437060328933568368503659602460764236317042141067471915624700911573962497848146303361766691892039662034876168144338956583114503674588720967655927959822260034825359094948588241768443949240401553066512335630712876431110792387161724102169903388660388190475985890388342453279656401036398152249993790945112188829147027890102402672594971358735248914657473508173367221206479104859679811256117622320054532617241136474341963887772919190695759636663308478108136816230720044025025141597820183497918646697345044835177040116456972075751305868307550599773446631931154514065988112632827903135337648255977067743198650030017516575657563199187225754409851424851906951480927956206621888915850501245069585060782240491535259744870520382339287958712373327273095515168205199353815725287909440402776930813134134922832612991822581052339765867138819971503291115129184672293110671731265486721087394285146918147052574772021538610466431022926845006556697223873985507604967358950213769144811370763730273100592017862032034293562928320020598538492802606860923846458010185803889751886974673578877165448858819248565615716183297668386007945214880374517992692098215166987983728688027965444585814336714553216342666621606600503086908765775305968775434777838451413820578440149420636380621560578143759012825898888201354744406247418540536725739255568494077605294739363841603235709905397223977985762116819159720788855823928968957615342069068586210354539676619557518127163784360003333404424057752351790215467496831008152146490215953403047517344700515286529815001803249441983402750475715238595134545665035373867016434236867963084976746143574416916748307271618859933211341235088121512557755392132467238790752469561875961204152825887834722456411442843866128480523266086635825765763479227239547557731833888316108031476058050868764820665358598503017918911252915080123064275217938828691160306348878324534648800219507452793815449344261759833696974387365653752477358399074498355537423637336408415746683152186419425208215369490805575150970666078889298808442801251784128295745459312413641104219741293683653508782391908417824623429037324552758920114197742034038157712608554325291841311423868276675194511107416356149075979437688925953785479903563983035053238655357447027876028613123424558571043500688006480570103495475652169019428121685841703693920476008784303005699494320650976663298478850863566437691872660902649383628712602802607242003028233611781059025118802897209272344594880499567432860016362120071993237333829638422052509638556004526232626655177084136575380076265622784377103309871391798331378095360996896445152831629060938238313699050277651789749450290633563150565498941755189169665934659967693135997524407731568440017367890427364837140786668891090019941416680780679727862229726181928292675013984125210894158871849986431546035537022712708635575610830589432226571603076829847049574537697769916149231871967875651382757764168866430055610930919771219833177569463261362574056982439779532877796430893569160009875319305151584895662176905762242570208521590717558176156022961493053689079819389673853728666868567658678296371622455824932383380825989987564619238553384394583223047478046667911297707156440839930596194575930450851151236870334050011910496993819758447304517687995850104078166884736673538334112029742376717325691424117023956526123544630600828808779698222406533909215132007096540432549587907025932439732170366035174284101043053652955653099689321233026703370412633688496813114854696572346369226729505042720953474758640658055575696937688231390333030385892771336642930336948169315075108080971960271080442771144415620584498116798242433095478874698350693383672550857824219236820542099631656475243222459250756967027920718727089159539466358835973702359363045339117543889959562000934271201282389367791552752949171284722806700269935098857977953464528476117021126979840253258337955194719631341615631687669539464133730257551334639602669280588288415063227408867168898020897070501952620533340138781951853999162142961487818332580361638072226570791873958227132018378285716384226573532741946754688705632164457021783737803618470074049517500173689085688080817071853827542531666702535398736506325668700651562083394094713801426626837235774845596354752956183783499627698574577557617483362175687548679281774241334715256384552605441436893326709617385320349509303270924808834913516851092197759099118194653275666806600913759643875303074505629026307113010249579154501064008507883532097600028747291987859745789393190413928770699013432884654613895457249445676440640447035015101688966768376744808025772679611029141298969577248907935880138189082126786203924365897359814748426269700194926599371622508268367031732166646329293537788480655975522176264769810289184689245886852192577581269896892612309502314964632812352750734676982209983772722497876310619693468500083394284882688479880520208414444650362648856301896436345895060655710597366930358716740180517353725148269307931023088541637324916681879605003453569758054617016774684512833930143677374759078995909048523450107189727466241745556169324117751185675093990081435995274781180808670185017978338137132226569336428829316161947397410003283536085052305160024003499027581387586151538879410988938307881875456048070537913431897951356727245655832543853947424672596691562705656440565983940693030288226856991416695006098155084975840961020037370283197161458333078757417656459746377857074292091586515175155785951208170989925633623248483484713113954728242978152487633017625095537360712260079836129572648181933303815187782812751527975009530307935624250459576053716653803933305279784118874123052055812913746654921683755919613480315139054442936430043054715171629285246580282195909830523832122664591450759487184267201162904627162679835118808752892833543157838355505944142058930172778118472834885558006216331696136356784756098955908335183226954479030343386805149558281413299626643440222605051131393794357052518068078244640732334656695703979155559060204763345387001383265235618948619788167821323886267668565596413510435314120584686189770707183551138700642535712023471684565268628391436033695189675374782722001543138625461931118586765456030683402889325654755660245148934893835802150031321106752104954122014400682171881937182946829495561143830994980862148447411188063405178096533052224404225971308119370395657259618810445561585161591547097098823618127987338515661296420971511546355712438582324068324561331326336792163417408071604562778448518978480510159344621314333941384038900227797726653708032156290468424496231184708794003302999990560969532796079572141366168036957975293196886366053628444802506202406496114549921885614385969138545714077026971901616710035136799733217605872080037702864351676241050145131573201777158169230002956926386966421581132447038904748985850874530780088552415258105416994068359792143313652936076516260182460272551584567949651176788405802095618451506974547647211117507479033102252336404842970190812592810865941837594346802716139550633864426659467622551679650871944060873187574672454558545783027202622270106254496785655326190239630414476901267207675744035163875599854733032335629294379352029416118671615751080550287258365854128827354982671296152331016982491521638757627675345280487306722664374115545453999657802198034442730445993307318422017010842870543399710167346183146917799857391539891844213515302913549835666189715293373464179898327546199828487060390488803005927996535662608247183027676149327499695134108395894838035887172312790986191060178308708093212625477587587461675327497841937640758256201636203495647571795799368060971140569464461292104083423841265083164761577846057380961763873420528037545311334921579190521529647946416892125304360193818148307105509188727475059588734809588697453336098555159110799251231714429385984447944641878282287170942830212051342566722262948352795234001855466094073531339596787100100249992717504139440876919449224808164174956682507477520433335382097250680096424633824128219361418107714347351657769887262882220968007190349552922993654549897596568968838192732116473468722197479573248987448344672358133597889110128448294763414524312987565813199857047441807503080113700641382273690933224020556119953538970170079085691925497745606454869017131913276906537491686503253135962429394499238816380575816827023464674202908888617489210474134781535462241644982162156691173199878676998131047663023680942562375069058783766378734349470620794082539499181291281718418194573722302733357692953488954996849300799980477501399937376031028248148853016747656715109855010455081972172701637706252518744873280223655624201552493540373288630985307133086373616821370178410401335011116909057909981246424179122779787872322697788489993209719904617991017232812123313487189570213862701003675111636672051547720109855804957718462277596096552728954623739652776480107303312210046002537895532004652936488517200471772607319775910620406069425119977480524563469738151348655276616668534558740905478777145631313275309885068189025744098719747476052930704775811187134798612520189115427561636686415164678071295491223951247009875633951942965377944443559923414612614234561378832297488268531729602909248639608604315549441897144141680113825670260558492943048234367040539666618909939111521504590033682446210988163023617236791829698283024889019735240680570105540480710422859329482794461017786899238944049404839434884929366852508937119487644034131564588797401497743222131506112289616221507567271794731215065902566963802604969183343082082747040433077426234799475256464442716467681550553759345298365155635451765449746475830645662997945723937191594641701933792614798544979519382701224604919459207010562881387344439073765719365520087555488811990546265263865488677868200354367427237736348880040178896103081885260055842920950730829914367515421568963434524095973461392263263314540548601409778034760981753035716264340916734580900146382720854985827940076076859695902200717712848042890835286030576704019202337413214821284165983353079671765435889837680494349516910410748511063051462593263024987540775935130530966955126387490694178028213791739296015484213899492832705844319728870544346168073821894141095717138015399171052686072697916287003070001629804186093003833065475064216176452901997449314897848226918628027391238185017320291736465680289216205572103003635575043219347769726136810930133527282027092631960259709052995602129218337393944322093831542342866527393207326675096538775581309607011728876329149463013700925053310822234450608447565351094308941960372646128928168701851693749560412455339128307587713043051749046843123847942675917401695062466855681643297930229817344802631207467779451684411604265903315890805448483436467022397478578320340093214669742813683241945028415244002795445694788851743601321028824604324864507098210367945879905249502664760087819811199694888321036695265185887288175775969076148831499059381239630060005262964854127666706903343379463479596101200494869669748195121575277900603204714436953542337728063311520137704673670614747052350961839571881541937101658635002202194390916213706138189409935930771747070835093037006034677876706875138179175330247221752771510221298433921491914428152264937919911395112806996689750011349516168043481961696636846814512254897502054820735522140220160194380712831006227566875837631431258422194402580077968059264895778903740534406876024454574168308765122230299606978874349653526975729259295722480977698900883146369307726112114776408211108171734320764311832047612687885621085952530807584715433165101276139470481162701895446723626025759234310426992348220915605431358014939491085286506422639855430705614768700612870682744901682277822354554201757084822753124605613191835397442286586197089827520506093048568736700673056694589268012839508667448318848975184542370611483014575880139557014752919645690740135519557346030283656690803583012111626901649370820527442292093418334946041192569862312331115889016134282642725153762736535182692327672785683921849581823694535242901702341354703888676219689965599643859666887289788540869105155056169955865829545256865076265315742048210002333597721722791100611184961961763542864940107055760452942527135971316637440512390627824565913697287464735373236901534646055842661299737632953955574058600848045598555343873971226646311182964534772621811798081446651837889289177201086379564276819653149563200613516849632269166325916433750805887916329934898738275881774996823986915900982115480897418948736618424385150590938603659378944511018146622599578461793770749200362126850344952300094170680198541830762245812767983171923589448259568634122797220050178590986279396222992046566019836545663809986191670348777136785446541501174721936151393021539106866613074412934058666990313763156372443642257540727323948605495009706891912514586538301975199926143165286169078219290958535591834962383985021693807231684391342825598514295049222684230404423593947615338544441642222541885463020639004799263277752387153488640855681943511615675005798067513499228674805423892466238788559122555970552155191412904756332900832459702213103496273711316952985311509809491888531757279064318965406028546508281791131470900161572481098704444657083194959792400566626484809713063982593780759478918817703443880322017235465370775411402604153906309986793971912247939387157687782500345269607045565845215198009777664595447370769783369427474702883761179854256690567783009393668627342513974501191175640812743404825959495870531831792279552482191978311522029543713891999384567504836999598172644450866486332000073452126675004368569406994705570426608800054794882987329156670217779331202074095298744156804228480185839445982790805400557954675170289278902949233478887088418479192010885534713891568301250071637435391608193722442280944928981337351425148030381986523734574841685434390922743705535065843504465143014114068965878557970984842953063365698709546430159958415168154516574568206056964217870514298164402519176569028758285282067134878566070750206819718370183325516377844744511191498137555280515249384494367973939470131793468731051650329058305238012102697326428440960544201022695679229344640541535110716403884216063515404972056217246003516591120751336423885748719809894497351604197383386516750561635806445866474206670286072807264778692393348962278424794227868686899997895320383817485237270119527240176145491317579248136003985452969133081624717475740192576048222624579792700358549125731166929421896664622590637400252445057191033310266305600432975146239235950386350254095121460218141023676000436213884476578020628988127964469377087411479571983889731593245264236430114512380552581378096685986339705239674895863501082777655634237117624692906135752815609953675618575990675291203989301267512687265143911260588156282570217596481900009838520711745107781114001972627259697778863242930885836285842655873370333303271601491706250556134292935025836272332588728475012001769288794624785379688868423818250615717954250049904383449239773490021828032934877471987288965608107344150958628293271955580356711767683829907139615258193460654606170742708023259550225121906779680090424669967920361496989440860126283216404432020161103067150516619721516634077729384514910455600359671398456094048710087759591272140516756843055131760198884576361083454409858096361245338216344965827031322253311977630580525438092877631282046574182362241677215075217134581505272113125396722764121766805455146240098612944142975479832843709367694872649649955221156481623407573016118266755916703425603867855501486382909789224991767037227146666164488303679032273882720706062479250863333592782756455639677863455747381406036471880420594612956405047205712371349046718960257058044743897828363303203851534621741247928307698120494689017096549766640048188902437506453630038337174709196943216533750644731770153952929820802193621156474210657861742942701279927063514030150436771291631096148696007218075029791713991269031547946971585954484373285287054853746948531676228687657593010689749982610383627035482234095144452924468303413968829121652611799632368637863258658907218893140916120495998030819835809841267423931535850590832924551708141536516821476659731761586613959723002581301845720078190324215790104759037895831699486269942771850603136827688420315515515658385008035725863486749294496319378035415937280064571309670893178451883491597992595800353025487764721114793585355946928913273091856680449994121237346241153733255133424791548655098105482057474339796554052367056804115811156604172796864811940854460947897366929204802449944747132288596511809289570791090682606528816765765636153756254833268042940667941213672462015255808336540620845106859787169037078598143292889608352671286751038619987012861257288162573959267034184728183985271328002904726799658039024073041585442231510795797049203338833641804309422184106860555003501534841091381602216443439723319582928332401067106831474750362132121182782543054896788853400013565022367008019370785718896241485657961653575466275998122080350192369903075642340595269351809588355993591376860562322689829003122209344306149312595186452229191042702239320619517990796858731087796921862188415693359550533075692422170624871464659275426847577401130919976945442925800183079738396254596936839117323431641218837467376812673066851024658241373288193574671903119458968575714497011934826543528079236742256042377510398227762574404052834333146460581109314678901478269294695124643281309083172327975764444499035252475471736958137405044313926541053728513760322091977877535120323085115409896824877606386129568924173951741875308412801577544247928133306717881335886820599260108526080506255677785055808675304750723133309536042079802564023703540033156804936397605347109232961099803465178811363767357308701939040599443983459346972005631037321143648307158132711007126328352109705344226798168459253648062059959854479681953966972793782287451655588997819950003160510173190038202736641943167119578370134623605787676341009224703079584057256686269864596320198936807724071647956156041576917871334253701363251382899590883537974881172278630036014146915159772875971971997655102738078188373556159345661265617123551263918295511981534404462823243125219956573600941765534710249864178683500059449980935765389480615794951430654376873446912018914320262650021558838254986513933349851480434923133967481809184225244896047475057488137672224461981700677471084042962403145653545041177905510124175458289456956295286507762464134220116640337887491999724537947258868784072205469795387610977695373861071342819061279635496107479830568947816614380203650512183695836497570228478102379869022334766680586027520693351803924583721374910380155174701452255874384039251136894693386338867914151055741232604342628699931007003505797027638624490238361043277983638276036981484821770631849424036873221144565142829028178281685571977389761648008576419912343734752101045278851262255811985076041737541052376827136906179330269016909340034561520361395361413035700252323306601399676055627235747285537908236116567653760353595074279541192572275494541212135994524368484845389099935842243642656111470416531057485355979791368330295238526680403447559897691560765923745164343488766955490646996360253031548473268202378954246790840371806455320923110642851989869015692567718894309416985115418583394084866567616046152008496522938670959578741449279107218653534295909426321606977898005235637407625069450408334294339473138773889268460669470875220349145730126994067783410179070233527419454409634508251936278272268241138291544462138382481786926244690293004181125534386851809131002196541495089937389895315045567015568408169347582933588760644188843695917308600025442249666191623073754654130155289745296290466686203141299685999633419059300507853450561588292843855911635465250171726839937873203287001110409078660337553889074812666902068770624899330556864449544007302554848516615510926407964611729528937615107365620063508398928109588966325001661384559710255937657946656828773280776194850728885076205033425240209231803821868909169898772858667415222789878032508726487567086102068562241857093056397866240586082781782384393592761994773967494492552463658573785238006494238636258012098374221060316450440092920694049589147549238930476885977593686218407909645108940272042896951460554434972295422135088104268644677288964852633564305553451516872025647903466729338824730075732305438004746651843959180792906268702237646305928426657047911520201908997936068331606772789087563562808063645684877498983847739492979111043053301589668949486840989350734280334279639070578644582847739911347168422920532669014541479155047585294058150658539762850178548009562717109827170111839582861010203447224760900452220251889185352795505509906518497623010269532713700756089115254870950048455351968674838482824293254880594227924828364607840602666238139718529215476829704518896387751182889901917328549750387658535738342917673641638038526740529867581304414677378073426254709151353490644842028664891037527841764051145316118357711681369361657973846871678033978006620545185758482871540653156432179759863082927271988460766216431116705885128040762744731345474773480330867875212724434052139871210212057250283084096993114381777701991201927884169670345080221376479945091126831096356234448458040932627063428264592238071686313173467041208660217504532693916583070605792655977942921259103566101804717002885897968594403466868774286037151047327697943493685037539925681484558881859221231714764311040708764567822806364632597826703475950006090623512808494490371123828658211875709239200220077456638402737822917088503110987177893919213323613408430279434525427775149743641320808358258559123153508744131735177297949288865500498379824555448955809871487124239825990627300396290026908331303291840059517192193109910370768556892889102817519545655021105104969435741099819576027983194241544288075819644356126743772546929704689813742026949351423549072472782485648815122825086141663022159899724851617883366424678065992444500324651140413367749705946096830423550278158500101423597860274862177916822458094158844569838670178175159667164949281928660083765649585680247371426548957802977674738761619272374103106447809192575136183447503020010950388976756834642078039706722128129049553141757567164161440038220403357257325263512001513538219761417135844672651910323946094459640075843578244815804311600060133182784391840854929130396995422663030928300080845311847773642650209359005498884895974889033177626272587767286294301679890446483198818867027830533377812410535842146993608602705947698029859449496454975839224791281853666820545146741351826161887228443485842333426239149714184204899597954182151992109673107732964519091272524550460974788223379829254404484003903158991492590588327027746933240329921674498817407399566160010259465444036479582058513369506362623773472350962370314888578434335720194595103276934008101809435259253161402042346073939117323665672229360651633685995737405629688966271551858678278015484291591198534109412251717664802769003884706707795663965874686020849845244977643215765643994778781542795138609131852938262634745626757993465977815465072783318681262486755563999346278384850514382659829804230902559197518111574434126892093278997172148831704827060976092016482150045737430808925024824574742801288566990149739807285720929096714414360155749127028856186275366143109079879939943790402008505498291608186246808572932904818235324917756046560477028946579517343718532988084017953426127509404853210649087047131196168122885157476267778345877694984918294948909952800150824833774808822220775364678332766456160395228561606682523350445226265109474367530892188127811156480092132732114385197034571283931185039076089505023389402344182826539479708903178779695057707938863953788482196365136007348207378413212767222106361132077877916282649888373018759006574935257708979542586623867835161111386761716930247499747545283310196404092125567192956869158414204145592055450159912426181872104671661667905824718472004146265856575000373138638133804022254707152696865830136592901923990171607699022221094975571338785848853804492438930847859129413353582373302882908565902467537840243463021698686506295532757081837943066239878069999778740579047040916693461487119168983374492277575382436116421785661280528973527556765024074564473094596751426943657983637578134167878124401981312173853824141344516996646215806040828324278024767636343226691326114234582461708341978151006883702807405812259486360589467911455608362388918867295932618220164700715797256199793959561391120257477798846515194653673418848472301832419543959474956548905753699537862833479344649821021962338129852385035079095617623870249155428837093352643888945646309287025478682200201916480757211568378702246221814610782864858067313303673785363948930890580412483552263232904553670961564116482857625437119338934035953534493416498908751107445500421941792338310408616702599509526598024468278478856371930314734923025393880622524328390307156710187112748277766426797609520058397289153049985675358633756410115245490388431516893353302152148977054012974470741668454463559369419831417291065310057455555083302285323853905070920368349624862434001971913964744165576300314935519898474950699338411743809135466039560080902822585881843441926691399629644021846739324662953272981979805171366275352949759782431771509076874377926573812643803896964214602407994015140453389429749046459928362548989333826275399582974820619783118780920829900169105681119338468185134099924515188432775711817254920875763222347670462412928428051779378736703488036524876958129542322703056534616762287475357902114657856224640140816862750113291720628103337443469508375343807492145156149213671707608339407088428089845686222288985018538727044430102638627262233982094711782096046671977415137788789134633636968955212769763792388910989495185735084653529274222380529398866701549805247947605000036868948989756462716713956848258962491000286057649616583405616497019985033837987930213824837102294874066225982966760249546586787405744596390156452012758000431980244915746547224411624872116518732349711570793015590018447055341277875077895864680746755803269331371386705476187621915291913142583999219887751544173541118937179056152810518056519287116719377024954716677046268682084319374407725620851604674996458446696988949020076508165213678384694520905847851847611574553423653055323064285273846725685351801298895230034877458549934523373042376690775120418563055353737592857129325787862104346913188573667667430328641800583938034612979935619324728299769780252622165816989552328239950487932513675523502598855142564974161933530996621936512949165286676517634547887160756515219531363695963760076262440913731005564608496269534796824881984892434364695069121434972138303744326098886665503806229818269174592161033159790998928339548699715546863045758254746777224345844705403858570938102712828528899099961896468908180426557555133774153104862801891726905906893875857037523983760939561843944845244484458412057371984558319170401773405073950489317551998519717085093984058421293167676573199045524505007612920971984836482962732464884704875045548995329889606774665767357071874250450453735317979901686398612522150455138121453774142372369409028835892343918584743470454704756370377036437708112932178805954834027318880766030506146292434955903314452557577545141306414584119956559868264909264736649634734876616876689599595937886464957729630104884530103150853279795475204681876656698683051009901085951071839406269953627300574335070467945213262775885520411462722221144815108697441649370058976630286779444594337662717525118313897684734756008259408494045390455066526994957616281432218106752844150051489834496509675123243506316872552821255175680372468964462146292857695063912819725877461275989956557460473848040489061515209084539394282305714006335688525166029656168253339856437711702142224251861737089360070384500522521512359713251018168700777247902712524113650948126487413011904432200066125690160526850724691530339722904201471366484732855658031115708863259118773603394343125016870176723878179869046942005890671614137423748364756118354448530053596342703852078066420177375509417762485474176986287690336567395670527117149955219455222426272957324653393739389654614263381732554603178903817773787782081835020620376496725518401995127701435924307265924723104818315717939503108885391787934446361853860809854677427526029564271505941788117485084447331659212864076544124461319802184257106181919838265643353653180062378954224758998948435696852670759242240964045862501600478605647914939601107441026304452102294278405260348581792022356857975197062866208408132198532842215193650734539376146698730178955770444679065367741982455077730252173202884407618313141657156174517983163151670444761186308387963083639250741151165340712549109318483283235823446582048171430144440632104415623286203822722212939422412317047069359648194791618784069329532447953707060711219818078078562100203900693905209891904490608556266649683357772532488240334286333346062292303540553338623810149937127993866219028849498583516210913514728455298826693883295950748389919868703171920521192187716421881697642744932048362266570441284059727064274379026817781632723609421742377470019463399104912793093555301211905544563211722656133266616947012658913516295903432761058093885864046520229157729205375059627059419275012051059846325773970613727546046880703465070176813101897375756549276185621833741914994291464980222019780004318923820415186960627445125241719953549674220096418882247241552347140293769423866280264532102928958445620648508195727378609967274995036424935664704058262381613862419893879297507609238338102561200283097903434062682628145175421383149026942669188293133795011422409263003154961426951483459971211116088522177156536633089235899512012969820604229528974325055624448033222016619160055124604210456809858477153386614185854032739295887129052181446168057341241183911733585085629384641759446289206967497919805240023781263361479040863742212164105509517055796739483564329223774742546383522880614969544311565272445865330500897264533338127526838750677628640562550385981927249161070133215962725127003896777388161821572882266222397981753926122494634245738245470416982120724569165098927999381888869009377330228090810736755105860010578792126444945016946665837419129940628010170774986579486840912169586975628866180028859208520535655693737313077040556769329489648588511291773832053379680088148503326611117225897299674567582377816923491758399085606333924176278684048573516916927021011592115650602730876977841023610783075381184103328889517965433645623183076814433245051241003605491132204548493888431021586479496005516407634068090806165426832478242219485353144966366318083800765901448722000556136187823807743375438804740074483406456805088262478417967781170305500775140958553365608130775272449236576124332716824138390727414093560136646237399248609621263697704578355668198249887942931627929067452502620083266078594739500262813015758108321071925392251336325085758704883331376320916938983559550526830682688753480997621425516038266744618246139019903221525888959413428699868202339079058005362087078098487147290206601503174515206606301045529507000574581306063660008290344108626131621335331023334140307225896521354260251990556743873820779121649131343308913007491558790278440734547380226977990107829379606516158653741885758412063634719630303043366602546501656978435460504469452433957957103679961370504146105323643915282642723907050448109359287226377932694199776432407940917955300031802857361413012812849838662902406345919860586572444461666294294460880653278259897083474062693814561247611546343335051472903373939385510109765878968148480244895273067475638222756897551889544086706463604948391301885906220070610039489895283845673769671616851142833614148951297320810103676598536902188792570668251258532556822177427124012518935223610950814094126816771645557166455916937764388266759445793212251492665916564213509332677170005804803854022363616322763425565560177459313474674345471054882839135427830559924149224098244067261540300785190851504659809402506812490073651539157361009320468242980770867361144309790712817555875361998528507972284438493241668489731685307381826921018203963178112123829247370204929255942693638276688343792914865677856993170782457024149354488470389142020648274412284699263598734286965711840802977275824935679121185201058739984332299405059938612939514252503618594246988285251261486299868552974231446367382130473898708609203883036798885732547635451112867248031641101919728172849502721901081267511034041211792334766178340162436439502418251236712834502694778503903681142676076529762341161823778681937147269255446882052220320882812958845792840551341805255665498918767873313810679491024362954186802652255483973501216942667362111289930478577272093287858087209229754189552188270087531790073941297551384944435130944141908684475295379738154064214845085928870822600262545257799289503432315590713882279376980910228862512012182256523952467294274941582137735835215935989929090928284551550512828622618116441173294284126343039916312676286204858726686996187052820441688318232485021549461544248158022037579296500419526676420411295669708980050271139917758464248503335192622341158665384096035310190205218121575456591555643231368879283268946249666616142845947517192278139249639789933343769609316012571508351392817992328466014905942140200866324677036012539596686151061203813516926097651333313197957948271555104377731555191585694268417258593713318745128029525571460661807450740694520164860258726237642939541072029736382745330809215403456508210375736987455136270156220726600847334806626115758931834236771817247591736733890345226726910854385154448629063848393420139963134589350163033766664196065774102041902766002280075174012400215700415181937355853284221443478885283814824652587782662700689445046014426108092729673619765854378655916959804883264668709632858010209694956886154292446496195124376104370146415133703175438934143766103946611610904172225115765300568024992353250453857844636664167951149218796833587581190629361187667252006623951562637609000480788183803089189534007499836542161393023920034520208205040461440326500424022790133392210704151617214589836556714346549303891856427770897148647925519947325885497138128938721465365250311404532188610711731132034511509671760603401637307710552313272748187979058546168150355215483796935055897030110314627595547020430158741421941301960797037418058815053313642018698460030315955075950147123322851528863692584427652774228368579007074237889412238309781203496157210292221681235491964687542647088299867368230564560166627790587641497036934163343147074303947914536941518971557064395591362909972828049455688734434452932601275165661738826563813432708131990293284660084480029587200783112946613418653530876904008522611373571728381040762376003643998190018634499834169156158933569843193874255047800564840382139231566626515816801906191747419321958939696270499819798387635210945327101132261388305370986810193728138867118744190443603547571600217029569897076061056911000438783451802116436982408616776185766268966068164151593335224953289276890611011732638633057230709531745671990862455104014630397836772506431273651829095295896654423030603230901718344286909184931310593337700540836062498859507033906609222460096471174940844120827216618925791679370565904085635188255556001759625066561064890648669367411727132921098574021778744800260700990639035500297251456157570739497293428596635607898560307914630167337580996908280455530503296786431219440782305774192702051410150295070409213608345247005047607427174452026194873448292642365730550692856350829616050941931218834157973163504147359607974102092012467966661410901443706381313760825731204605707412675967512514182912172226032137757071767364508013612077887280875444672854466772469648420606609690096750825963156167757191784891109630817511106523469598094777053035119359728651810966213955830770170424279307962154198521328473730895576457194639894194917523238997373993982659411295976304587713193247533582317830358812346025896962541326198300377905338693524361375405322360732076815451468984680846528080483163759498946552401326093316380942021687358601045186827170832039176358513391957442008571992271189751251206003561673782416084777411235709205356081604983350254039630432661490379082727531213340851821080860959100320893105584153226951140464066609153181059054720773338733942347547700839360957568107127206743277586929178489643249470262876711961490012349789563741107471853798080083879437269513075423404522839474832143197897740457181871650813847795628676410611786573722724945895774276788406239802633406663264231751695647994052525923343516202176193452064154977939200846321093282230895740758003027125814915661024100978698668236167696389401965628084816072981384889310084492430439863043077818208655819802409971711813001436816981392712488309904900441477120005461999110085582247705070431918928837183189080046568765561809025434790414037033436087953653595763540658746614250400849720637970122789187856878274758563476159226244347188029218612782290554135214570249818962985718726065265875798184468622489615573092439711536922269414164360417979783631305407119050210470226585303280198825901523384764307683445970796578434540277849897328370604160915101043384108640983538260881057376738862259434411139491153913062053096184712607117051669332259871485427487635120363962070829618117461341616567766972260656846922965066551289804426763391909785369360193271685491702454637432185037457459494282545386839284271938309004482005700152691778353721889759883631055844388790540263555930878112469145482608262156167816888497863831486458100558776907366645828142341163171952385225321800697593573825127975467684037234919672204426558230032675073809469444840567308579239637425928081563405873622084663219014212002215115838363314566496513166298515855378099955943430461221499035501987597103253993225873661597397758163148440855719126234268372954140111560948806207975827769179648890079297462019842271901969176308431006083386228368010888437388899210481255256059713340462917871932872216577627623367419044670999167418963089045878302671643223778044936334217734909042816934559048974746069204477951800373700252144436024131502996662444787308313800289821362509389208393574714023771321759806893701212217259049318942684575759026001920397424454768400114733847537390191830525036032936396656062150044299900063327005524390886522334180444566023774786736962975257844690836514701539120767055614767371653560125419257315545241115425883491832592389030266655170814992093453187672914033678033903939155687705988027144060154553912532585366667628183902638193507177643995298254254058206228503110490723446807441203223583509233528362496230194623960809244918223469697307067168592198489035664217145312415660186052494358046903279353714875295015557867343935750693246179558429124644942516986965167508288179186544082953132211816623090778338278733147194534250709133898626618939934685697744889184316527681595757674111077629914287069544418191203195390482888714023143657955979627779847017595140174610731008443468355102549487441442354871174618127557950550088293489947681876530727763689045277393174467194705464762440548245896582778897758889029109374517250822206835737648361835188125787984497329908159091894195422936406951456778775176312844371588370002213210711473848983103871822686297191777226478773212399329202263990207526742977522119658591791957587415908150317327561650237562966541646621383423842546237107617604621151381482282109950285316237245260311968271411521020781763059855623752953717687614481774150253730936466371121145718315400428902825843391496656912408906122807509277816081895572274692202888655010167994366277716744113800721634839133584162637142773870150652281810334850019285508351340349483381435731523740432290698596474791095861318984477610432496748752101368518374343362155486588409504379533410636839686653337073903960230460225184877281735112185099594673828791571082116906062294852404606413031504368027441624650326296287974866016016079326251163247587975096859251660772667258379120037137863159323138431091291215214912814202963372983517720531135105670272064653953605058970486602206700658977875441010111370169512794630011483582762338240814784987922168215446453638515192717260979285095595749708157440915590385275783628589521145606236940834323418035718424241492270526778241224433630085985034416850792525085572512109626452536279515092744216759120550846522604211234389093353025436519531493313489548860682406419718478308556949882607574419698534463652112913253436607359532591483231406526323646568699367105175982378955290600196981903651365700519451110999398430451730042755256582656862088492258806379104427151411551840766003169516907702690911390755734445611917469357925529045096253816745568031607983092011532490550590625123733868796163036299007507851913785644701163671603932753119066096020168432305908568084027673813186485587232877733476194501498176122228929140143292087747244866686661537777761344600463646867450226565170193251186412730133458358001851026129603016800737231599026237308971947934357205670055760394574825096483136147444123273749323721371681052068439528048904799203729867037425548263158592624728067358240475520713650448374271233472488116178152187216370132604050240570084772152661504223059367252396568217294936764512038303247062122187813187501026712236319003263255927057118202405155063922233544663315964162234134031128133929130335745193478819272409751075160829723492248349423164899555192809056571467447625675417469950313840332954459259406968006932073704274385113390390044910163797331608379854679870508082918099551921956572323698017099341786564232129487916720296979991178402083487736402456194845253950332412720270871477617031011773144589794125327765175620292030027186524550059486795604957512755582622071579446402362536732175168120708562809525956547978775867981378717370381098584714689367907306102662571992930802915144900904236593394394722637694785806627125632316337443969371310594738185952451688252068407206920439750193921128345818669821931015526652620616465787589324244279523486802248623700048997970580430311947329352588740714588762833835693396984708766520155300414438527047113379429066494636673137641222985095422304464060780939644862841130777703426246748745792784100690505645980095023995487165306083025848828821953563383680845402185493031884894455567985326059810766285278696129046394894704434548784550974888383660882920581307336162483324296466608670027030128069673703595469288261087970846713194282301580998047979063098816452006072616693167762796457688804822231211625478297241604793998832818196671350133277624904860615505037659284174559767155558603785361213359884229843290176002878417685942057928667953836654051790300481821081511702304420160791437654803425840588065500939972018153973832738377377673844136403007841729715220793967736057487670478888880470984512985095011733931754065262978872182033587792470618633627811246880496316849112744502513410764663103161599415754104404872918946927400000040060745880978074971254649242281242454333092861095400313591130508440069774881241235200950076498499731313544773469528642267237451843589250863995969917799722910195072981909961744368667780749573651618720911608828542980510787325344326467594451920786451441273047520324368721862742145226536862125283997650594040212990998920911070266619341465871599038702547217467088026297207729098497651395300907544928930755028294046117669287685021294140184254540747155929231231076269656406714768559268169524433456156162931502313805318868088460905559531327289789158983244950519393703565002973040496609063304374695749115983821548072847380468240954785317374055157299926233005203816072307976431112741240991470586628245838581292026141696461582823493179434750097242114443234705694187848181264740383976814371667058555923852279726361378889218711032464936826402396309467719502295694391703541672062106259908223128261457235061490822960052447974069689444474829584240430250894971387884846669129857053685210296743433492562145044748572913288258305770895029770189985136831548834543035532553276556532397445768024557532544972521447076965975018580651748093316033543612063820698558996387946100156672674389715925994656577059831702908854758067504222757498746471080514487548171521850321020527015977342614301899903224747572554620678875447365878270921630987584508329649580471665420230099799944068107766166323973973274976766115957141294860688171248340995874436830582483407279188045955245417140594763025976098117624593807544706383420010091127144020305510497710137816328681706360234313690942196304127617667753473705936122877528712028646527233772243707642197678357368231783872465562320138130844096196626798336240143605615379947724322778736209271671417734075877058683675244111079587452962020112987668771033576592671212190189130672640722291406467571614833814695474463189925199745886575532606723644689212012552921138524718314941718060801475243691878551849681481117899112976643786027785876676313877382775962759141793591397773991574530951777300003288335350516262340506516821013525057353869298212617594808712068353385157309087472610539869040864348468233128658574503350509370055806139337892226522357538829443894358987012559082844936937244390166908181832175777157006212433705114886223282199710385216302892489249061702018582398863754741038932468701471669969623235356180662813758466248671551441394771521600198677879338912014615037275087202135840772635866570227912158626132911071392786656436705287269283997401450653892155827621611819619177761127238408452816743669422804788979703487484759292436763950279008446851018850525299757733964984011648332859589299718259711172275882567212404070382769147658456042590363422628792635585995938628638930634103155978830122091410745200811226528475286793508665007382749986802208934894877578797768794323855608189292729539474609154927399195701248810390306089697122819282771685082950654245328774692736864267340559666978591958722901832814233762085977003027231089732818787922521095287084488504931679282576955223424642701685329676759166066907758584184537806333336988226687239875657159877257242595231907578263070489910972508951513686543894009717336138809157374849795114247759065326126454547960057157986224939259306398280764005204354590734218559298977299720603439683114874884983215753600148573058232666561911078535738703943035414273339180541809445158178741465882401543171078197612877032568483578381171788291785738772294632535574416358067069385750583432392972272297707544055513196489174552122547492232624654868526223340829819205986710336853569081223483619878109730730393797448821646917300192016169693652813818626373610261553387711739057680225429609284358737162276474806267651410808432742826964305449276807247097426889042307818315138001240215627102278617970601948916092342502524670838775951581777104292401525590234061077633540014887630960171395564518296994303722165129642124889589780943974055509631833831129386167081968076092750576833597966180452242736646956352298578070708001385872310230838377667242614080696344952284412200083467234637077426317778274485228600468120629315503008900279584832926596545623919868570389502765985878621067056369997590392922596254714136466194004123822866465737802027137480554321929022764217489973413174718714301542336885419214382882774109357531599204498851232449138322322607823670673837816041211326246897453789051493902004149252855511121323666930181932134115302741718145102411270671395797089419746956861205029153317001271460362511493083925931863475250280103695818752743554792526615624453892046199724164136530533401736930080304905133496054543456468235379926172873155534861612155535405353718157334482658119082245371033731639956407170302060548062782918303570343575033652013845423595635653940558921776308606035557819946993064273852383377387731720452245764972605071468914545754001867482536937024668787121537506727246441861285236327508254910695767218347296312262846520098847576548042402379213981556265712373490173304803077381481495036593217481279792291927648618741447838900927805633372416455898967586634245368568918927731895812386176718389616292928600177820593162666397188918147184095393972731080559890821127119740370791369929768621434260381554537532437462696671444901755126570047585840652040195162883256539350307907209009452230254766178493326208731246221568801616781222012620497111173142790457212871546507532915257406707407532436316182784053475543195236881471787282180690651277506542015385180450007063755495812310093009401312084364990064896697357277247000732305666611004703952539462189751573431666622737145555580732728893146718161191792851128962046708898447099021810297992001407818270564172425948491556995079972582918744970191581965757152389710695363958341888019833587866298409372826880965282836571179059064841507589165659130857989220970468363500467134767337421895987717296523378744559252631238358426012501187198753796724691976645504488381715917065363325272303813209512128244672262038653182009966024041321979918731084835691141368734767085733083222022513808685884643841718461738042858687377749730877255080119873018452498259333473992274596860116517243873406692524049328513713658502581498948596158867955203505956365086627863949787844018370459642424468558193290877423530242640391483977377259723757638531821846082988542767913689318753057504482571426896663900763706446835074642399709543580759926488058728294570040472002651475232851238365329219195478243549951337423648790975598881173194681243709686406948214783667837566255433725977179421693091665556406354015217062836352733218255533491351003713490974620034839527781894250597004570530859260345079365591485673953649288100666317494537768951451422199430291476579047466348687104825435829768114070915484598210480599090408566464448157583808767521742028513524372619500143951302856535839403170579550910502484667725712506927929114993753990196595279620426768969863339961063907271928063403172380108571961207481114979861369075009439809263776116753768008910098491498832201872857994924666284866436922291424983361245875864367025588293624689400629783556619710411828274534874194095674433965035436644681405923371222371531132564295097013494570728287098342166170054581949439298694631173628298210735750780020702989472688112802277778552285801290150027145089332112220479280897757359259573322854864261632944099173510286322457254889303504203317105142593442125229260983094043368724872929855227555673919541626505274005774498441622488042028553451788814976945054187427593174216486280831701042749615940534276977641590083073919928741355693657649015913672141929475611849384203930439788442558766822091544802722787507336797407414780005703721148915555669619658212108159221205245124130827273808517532704970800699914654725939868906969749303290438806525697423463569901512261415624569045070168068160726428448868508795700683427442809696555320892256618705175678175999341911007459468747717919560601358765195820385171495224784801158039157951712653028579377589904512439725102454514272214740104528304434490196382208745433303942032588991709821370871992714687430538530473494834519785356726468495371545537066384936784577213193552337771950461762760511277570890047727757775023187751600781730619855090939974253972142677392157481413018035500562768591773221520213185704337773218411851271043702414601331255847938287501978367454460917527096981433429490407577755111344579858899094329341413097777710456959338562082071558160893199645601275475736411147814032911665676109665971658373665298616075087610080544774145576151184315330832621753161644781719979915955306280000354817098332397965808993966569729061847986031151709613504180192493381046205751910201158533568651813224833622196904298158484257831495369754301145633076655578150483568020147985770150805214440587233851548314231120904218236335010455068571819605487080886878386910827616618567051410975523656517550592365317883557196312372023608020632798135583963696640159573071028898168908171843595915917457669702935756501440374810162110500482597056453527977872890003200177768772897833067577897603395029093278069721129501593428245183610409445765269281166386353673755054452697029275195884343325813612717495000052113056339675121877768250673936657131070176447258158888292217999335184377116131352933084144710272373067374342064316133593538504888139770212953822041014967596205436634441361293338148093348873051238694417688121865180139944801576776483444858018232588661211460186891826147213233311043781987011346467724003555035746907589710275060641496885338504363088305384478947599482810358583965907735653959641500370374955453122015755354404884573841582670559664359933667268664678873795392211843295296279568853975669819009361070806057850261896193407658021760225764770373447979118171761371658797733473193707718054104182424827909280939889345417174822792435250989768749007691910905434925291195547929913735926354305156495502940757065745048177280162912198019601363567708835349589167803873820937340270051258268762954882937428863558494281487734902804507870695879214806337135495717111523649669195752518004589927614873243052537091660297178405681951684253168472956859797092012301062681937908172965449256063319064675471648838144569453039349038646822195319397751870036841057889566598001767404390617772163679764001913724137205610328298458081359920000013072042539471523557176999074729366639727016889851848519800619639441378031021604832559760990772138652039417803419854095037870944843812853172341357415655953340174128477306197474523860982071835977267375690041928960975315439734193628472370535529848729674439922297114474707678858312102863072461373568371751017432826872334636535888924495198663965378708478067854137212092917835383665689421890451514136837901315979332670412607033192115777368108785443874154199942747237215026620232160628107025051428804688817260452674622813216826741908233400790393456703963472175089918495428104369939378023569592165064186346591297052471914259991952384392335030574983393160551595789012138235752370633409853292208792003868467345348041070614919680915670459048068254802133720760710194476056245007283026091183070735334792871121501091540186772878788659688763948222170109037701347802459286059820074930990573500662095132422676921944879142354598326201368253881055960478162429175136513475656841504453840490939518535409468640352920031218434994313542789038330702135085038515494695306118780442816095819334809336530078498192795348472385792122705168450550439621594082774637761993917278975558144127792369702395719849786857919658364811692815531447452679799215235710081829027301675991789531261377869375214490369958715257839052763145685975139623299214903783233026701784128253793080605270938353828086918965502259494751149966940808407533964391177997948879930665022602015534642757503881417552447135782496606165923864529813345047072632868000578231812209842120309791696577216892692687678952498892842038468605080603504493288762201296460601874305970880216453287170306483398391233137959843486308285251215858985691571278731919595417117286938127216523482885747704466375871570851253123973644057690432906348161860272076708591912267522287772103329249201599015399220409112717225306337869152965081728840025108710895175538921414184245781622938686191121069158953900330212890173614325752850891076338728514408236926798501766715887292224743901339888805648161012894920861797332546727979546211158915629682129510660205578419588628816705646122704421699226765085764591183876279143775048903012634907299393635912448680298793046650113578334749334192183544860971177703970600032282773844437412550498337931328492264403782438839820105974763827548824261748939545883335914481630563790650670732796018998672267594971057119500914143943054866657236053603506996032085873400782020144934721470626521866575348105893510299233694606558400648925410738067982740956615985621200744087117799228742906475533270884790610832619713546447078861057950616118997106447693522676137292908860751296699448939279927137701010709973671631987106827082857268088387441165324477862220387778454158595119475638967046702760518140872051787584668204746129488811855575626130237632606000031501633353607463641537673799455151736047598977395787844447070186791204188594139175328122325455337420733140292720959414646892518456357069626780407013061397830850339529083198088258010208927606533317481525319428176888289542471681340076907413144119126378302762378995434514320688036630555836550540429064449065424059071238682391592298296945583478416318927763450784042606962263725080392554482098207409014380889672965500433952030293503021431927659464398527763557973597714667107670750502831986084153533754560724954552145554979482513493008970752090899852572128799453022850389620113365709061685634557195262205343557590324868624696589000517907715569301991687692411852051861859387525391586918611345234004633614649527597628559884551825119683564877642606286683350538487671322385913768612124898245885054306508310658131754415519241729742330028356048857234799553129780273412352121216488592943918228894634384695661791919374727763983801556385442758239920137173002044294886845072987453972633755815439793466605031554079789024550422959792441333657883897859590102929830655085243871300473662106070488585094783938766002177140379455575619468955547017839894349158795804329452206824501538152798552146713975856405572444999119719202778251785022081919521628951518992171967637752836848725413878506361934309264403587887933055693994706949043975907419195786499491348443956710449429094032046605897696884972402109897586901223659500802416025601892127541325979742674605655936521350119779733378854303678031880844675387000737290458412462879925192823378011171644476196255225082762897893228414224199197072806171270962400780156268058225771395870900175060993068862214080961233847197901634837821774074994201513475031950366627934515000625546744129687596584490594753340382207523700738668416325207104586973170742989946344870063906581387503351639420495140516425135411197656816124651804325145826677442055210722183646198592323506975624922608137808561782765931849818437728775652578293994726417376768314853415910836268875185000261035823143789604033977797183066954884480618412600964520865504388759180448994362839440754915677180301814881219582450799996790427275869536823485128080372496367284434168848802731899152467350871431759921216114181449570272924470876139216299980435723759790027169547552693267283600551856462315219855311866973401760650063741554459626305231985259618980090705231125649701941343246027103922804927474813603971221394237910465394253106340532090252689007280736983759921626270613825139992915710387189053412489544438958018214253097405332835107930290777221594800064656108809328929375377851125637256116319100891620383450036287754153724359956789555976440063976363429287651367400544981023805254198285519327187267170198770756620293568443200336147592943758109230612138959000099833757429730356852435062841941741326496798714760898115750299698160497903372551528108447972166496525863711116966537956860905692386196074168598156909856538321044038011445593221524677148362323882928197265415001621330535603254032168500630996424736487942199278497968276314938107160131389170453102964073522627006479941229965630652807891922645813766203584422090044350036056587285495298771517104547411794657166113101877289460757692517034837618781338559594964454868531090660799566968236021089678652660537881129844498917494642146463362060961052898874497575445418894623597711183880537168452266414502479468580418402191012301007367088705660470172397515026445645726129592265988800391084422071941682420424649641164494060260094073875653535847146196244536698759078039612992937339687393581232941680617365928152150434798196059773402264179991368230264454580235284494517054524273973282506083684318792700816703032077537963417486255433806898490182934406888980760360185848591903499629861736273086913496867245611142981496905104889963513781571444414363690361808847911111753666988268557442557707547958342604956160580665098269991445584910082991954647181168757267381175954595061935945054361113000297163389435219658410119690196575739524618737895346725805751187238794509985277933582981980786737070982418427365128655667625144948063036446465068103440912406050790986466262953938787490204914664279172363505515630409113731225063936085882065068352570256327042141948101789461987238994735844621383304500932286431190925762174943604664895848309391629992830134663621931635841058794082145500895651476309742988451402126647907982092651305264955345405230464242130540382016295072381124750079539878789358273501562173699021435241084035093792195147658572450023728950371980443551189513200695038088383645230279318805524190716740599223307993189687072910226701169979529005725117630114095818023981610881328807275802138196145797657102197801983401156435695442437414293088275887962301202563643255955562490286540214126822556293995143929491290496081181573389717773375713721602292812893821396936659392502782446460164729161175299349607435740867301406297394640029825626286662510023589404339304628098071508199977954239071576659249965277710098739528876954695974425693460088084998292559756201164650848043964535000413778310680534347737786384459484510879844509553170712845013708972334310457852576215289168833975644104012747399041276102934568910461498017665146755579382048256809041204282811745396854588913024692294113562389447087182303357811455415719955289083968592612853979694938911913313155699932965003158163281795065774479133066336466781039306444833393330919349042799329304327265864122155451233104016289808151080647471877361145458700377956123949783215239715093320238833447258390124969940566361568289442095704109533084395993167446866810623424605605109957372804748270024935595992924969164397076039814524184350874534878852167483500425984134366292565945058925739705645331574258515358706410868584166622733186942384732721267768710612343878758056385768774212691296560308478558154096393459802580656440257567223413293569585242946415231120182095701375891691790140181960184228469966070257355234152312724594570812102990655447240510745954334673086173870607002327758167913605946666649820457350215173922351205256096706696500480959689357386711357085680541894710465468542334565659401465832409184926852880280282864490474724022764842351857560631406490388624847365920325572038648013943664311875277795563485988183636394664174302654306516973444678919287845576431196469974470550165663853290538184387439592329119108179336508279925412168105334961048734663741428454077326905962907953413908671992526818142966689815992945960328991157060348449501668069725738969712365237364501172951596775416157790320722908822517084015731886699665886876538279152697362825307795560281235599466869552900121027372872931145220535197160269996467450453415379186147450304051577302483475861290316910388729163890110814162178869881734113911969558381127916557742004111194726052591457137559442897082068965795751427870816243402538665715605596462397182555953370373728607470660676367438664305299132163999579549170701552892189044793990244062097841051580048763423259047322912902639112258284610809249823747984831566686481533201509953328047478599437443034871492783313546837597679769978696613347158827328450606969897619576781338196741864711160169056440381030785567603543260858216667429623952900841150906667320596511770440170099854200069883713456022693988665990636600315306129975183173412717585674090993455343667193288085584191552497189183320404342104821897488664433456717496296125860077776294928021480726249067223089051622707974473243933956896887114987512697039890990102287101602590591093778315108643670332398876386315193786448150024253230814854782692866148936870664754091997165227908490132841487685835531699092344522493618550489188656524739064973641741276596506346129108658665750313642655229556885010386610291613426362463944505806006081384070614082788519674917908257360728687545089249652880998465264446288943981117111033780674017634489108212429282772993395554101867046769326141759619790552420880816466539361602883119866010108735671673954307151386258030332677220720627012292961443374181011713556533878181266603925653272407195470135089314117126194188992135340566235873325363948419281761403533751491582933855496309179971406691517074166461583177539272739804463546939213831876712939259374571259646985263329561475343058985315738798507483223616409595034763946691793381563983865199611900635170849759064188546521711068686289533253892548156846364672091939775919879892492582433728983602349692785122624271014923251340145655284648461791567944638050277290676105302830109324344501313300451309481614715869118421406359152436164685064819642362333022513407551199206803173367053976291600055989101472273064013556745802644199477690707350274999817659583195100300322900537594057585119220861744010298200463697500585740155374112919310823005874651265578334962144835455508726883280617230251003611107155284089441803650356352788149747746650905460943100705295436463504163779258689600333808309103016146841160409810423946820920720663843808407653390261026414249534894576397679337112234520979586938101230612082212297701996734916425257522728638443211084280436360616413785164004831884715347513527558825763273753712123727545440926661742884971294661582650624638045158003070167794352337149333855700754322607752907581077822140487324503091320921794071230133526091912237112234850478260581128724990963656705080863954131939365159385687135482223283300604055523711451559006918729916752849999355660542684354893859319447613799706766162026523437123363409550135185871155384134837404189706320624630272531635438070569990490725439404730750081070276212860613527205901503798695632880886733731345855045320405405570704985348450265313938693018843667781430542834331433099363535066448399903139606233338506856062396506554763810491053105635009274163550871620429987888022722275439447840270268443515826686857893571853001734987978023429818405519537572057636818343331217626311471566128523670055123109612099190888788240321896881628523449402177771362113652995094877038992292851021122168066736231237149594378355594306651777562099285437987921372687909000359442035560521181786477464472768868906723057943382206935447673056471237038046005453648763410140021468415783636767840250233574660233767907742652761096826136824094414292535481513263264143126696361654322860092785739804371532619542411645942144654159248993696663287489987382091203194344947810985866366111051164875601135342249431550100657422425006365298048128699224467176156077123097989136755591821374713406265993316166439654599529636770389631771674479626132502653287378670540345590697985461820666647442907953998512005295416226199538366679469596665258316384490930162466348148291267041797942859189741678289650794942665975323888230324354217247871572089962495591365436493891807169265788431159567037915730480108443784844129864526787427246471568450220643718128452878650849419052105535843667552638190818787721987722682586408822468331756960313622179941858574308048294506168747052489724498195300888384361190144029696473275679131363318296891209126376211409922163536889684988326563914255081832964128621415897402549494693857687818373525168412508717380329095505477577579192408310981876829623089995125961577336935532424318390664040177150514406292879884566034408515013742697335373963192428959424272343978831536921496210647337598874823281577094775912529981433499258990002466142868659487740320835467686334965488386976359817241883570660971121242336291772490238655642666709827251282472721333121730337536478217623957758825651714952229980029601715990654553908572295174987903598733966257070106726180595491830153156344615241056389949961074781904183784963130032943220941591753647474066205193744913882827065355681054633791270847723067513928187178380652863622649311201878728147072431761139475991862460100720648006820428447792495909221107381623555632814315775918564582306117601682304905033260751161594418024587882620019037861500866429952208502289895012421284808759855765428455389145904380253654649695720829942630128212917445130458917027999096250995938994885934084195615097799916251992465897878890136774902680726871115308575619573229958231351176337622092658741781467190673096292103155260181340292388333520361480631336918403069461244930912399788983796202236792163514560258201844232153960556865123060483333772860624520186549280916239068192736973194702537500335748121628116600107934237679667344295745501419760521838948025242639639809552807831533316679382365404774754928369082421550091331274338676210593709298848855378263019553043686296566899671989529369458001669349186722115351649789389497605578513787229708228154992261721828040935307380678413232507972150623572207029073551556811177959802151778482163116449062773979025419643162251671823319969593918003760213577706151967993840874733252838731568188355603157568485038984736691557726889070630802439195245361124337476907496632223081326476524012074006006558084796263499476961231321781351294194882872441592843605376665362481521242295562377187806596067325174452246253869206202390059910386071374694231309532223017851865294304579403872793522067100272408992169444128548802299871564254124384807791149436225971890090854083246884871322341403654383793425912360437630511213446895740117786619253765884686723388765835592504470675900936365214085003049490509024124276044873772726682501251867401628660297083482460517984027867589876825777468198317721122584141927983572100259283210442753328204088121113170122759787815537393845710424642219103274960541024201139812900465397738889742769756881012935250069893261874381607844763253614101497035064708089163539557541718945252767474339034522587515201928093443606273411019610522299444137179148330059808352980820769954048086574858794485661809941665113760440565688760465832174741435344623959153797210698832074254269933649126609539338753670758340043560689864962401806439800491709689382376055919837114204254812342060948650552560546171286799832384109775759778400840322577348528042762507823264919530241588614727347911908710213389019842482766981672870181055220031499376185272508649675334818157177977296651645274135738252071775073020836730149496296514795259378353222409121421904412251979649066909140573600414468954606238458427455045820648690534509240478905113861579807314049636060899201363051625195860421526124634717554973166290147393052053658336248663171811759319798827340295235839429931022621794505445661533969250927898942837106057742464137554779523588106299877799857620305071578326646812955948007981259049284064022842090234428232476776009119561501114015488587899206080391586031090017739144581482287275585363591300405746397431333930847741601923026098217032398348859905283363345690037597389420064299731161855131894954348672543355091424474164417388613037276997025419759496582651751795631434011207613908407692771684658736000731631111255496932915386913236242086539253148708891742257923587040561515049742312711708335341881800260854277909661645026505226279753909697654575122805922752944101647110046816687377779463691795073895814776615032331689448628588648204485531029456469811002045728959399751465147994149554265300082202752789667157853283690741007821696044517483898194807469853591613864538899573406858226518628866547453695620975859646325259560117059539359158895897479625242057379202978036543402351783495607391992523022523164449299599586141758184263592540996708350554852632729459222383845831100918708775509450059617116239187585592057827915025676477502875794803153905988741507712735955342215232422186859809180145797999598148997772801746661101533839358360021357568734148408983066510548213181643292198528498660395668347916668073804318381636544616445461757690695552870367231599959015137678803032131381080857011963904358108751932777468917209102769537173268939677876146934217493647215436530817981263328390405875392750799172347734025705706088729784488614613626119340550433201154700476071992843569843121904938285277514205705746381348887569082130440644074872379870037735996457967576866281354756636836603364131203732602191832788160458725836948047013814056782937986231392396841875052216790732674562371570741765781843126531355342180394813111105040871995833589303502035352418854014950441380417816732465019767780416989720963936904464824873349244199562371028265044727960383931406600102056936943781283349756058601595016645505925906057504201405792181404162394938011830142273481841234083539737796517806810604521458805752458580425803140178152120218182244507692456636670200183735387808336304372216618075623751073249407358303772899937335639387226945414102522488693009678901826126952711799392357308726459864457903270149216490203101872193438424712087365607743004270426253302928898834047752076029041406187292394953773732170816794816361397387463402728265057749006896571381724459970917829893327694131524809481334479247681702180564492134173767002498788237479653780510137031309096312119672657642930953360605949541888526977411216489678148121048812611159561027991447168154443308193562521897328478179259525730334647714835576972685332604037538869299715436329147455198224417456297113721890614296505025459568951328115034286193580842954036764809393279246854735426364153963659739657647896476925738521804131896250427021926407409789551257089739450956100133628603387577118636699278496354104233733431387446647386040191250521917967581863036910880903813072637889079138699445502298884487940957733823055040474098746069411539750619832296379852113935097083283842708166391770359306719381782117523460896128377368758019416656619675036428108826196616367604234674986344610513494245092378313190074584970933337912012638571352730561329030510745589857415069140721225503930950317132501695490647524935370162667256727514183523065295857323431696832162452063512757915895606453677551507622574635398682675502149107715808879672370811624267909954643674034604440590045214127734946122762226710330110086071446465801318992361794850424398030610297025087490907438893336584092731211472247569259858356168668983833373417744074576410146255085042472354035392972667863812476030965588478953561011827236701390910984756955829552726021345885444202242074991701074165746749871924640212492727216648488541467480742867492861883388844228578989233383491529229509782769889078371099454736396371398069795377294109643316844889078805172675070046671851655986396591161212094411594073618095253159405898752757895707027430106185346329498034580819808992888563463162191229708690131462897757017234224856429269807338302473816323975850117966589056448924909343400430068353269597491788180621805603585748701638376030596116862834371037869373609850230183482481387274070872650081082656777407821259122236193026095268493419800295819069884329466859051012448621686903518707299887550478038177021185237591358144003414189416432524434999485008346554257677076159739153570229352050360300773784780388606274984338379015809644914090686473863524420502003663256276181836163066222797862044787195485076959703172943462148980997855648633435270189369384099460978228504334887353386748764148948948620915335380604775400892190867955380394613952178264051970905298813276519149356394181763479495169036314711556949606454560830252255281662566515825500715231622028066869500989442977681009419325228641701050282314688839256184640231664530047747763451600251804788764386708975998334075090229828679174760012633883055514896676513510468592942012674906235381751653208812883890170176473907269661357709113873414181393452435968942460682114695271191680866356742115361584103461073702658914850370894543306815348284392922245075065277257745933645867256199677532496109216483490911248209019869585859871423722838202335203506442655335574777817751505574090581106680722608149081247036911424415271721150642989904874959446136608977808461023065959460448927237768567283296733454010562903954253020094605284659186909669584530556476679860240209381405747482193722511613999085875198994554862805894026470246381918175892173667106243798413553430288500261015077816946329827813788852353151849307288045656027868392447515954303487048976178175163169402427415261741712977872412944804481797576837649469435409884425821387187367460790885610743467357601205464669148522463660719202984372801745321280529144680941600797721218893589320401772357838175746822561079716178742354150646265926093996564864254256520880508977748532221178349443709709906372015365758291385421131566597478528486447789986093951979346074317193429182024148928244280780458181086397488413563656754419633741222474641653916948186225442604436726516322138013332012123192016808201794493932311024396608261633330633618896553152165725459909925581176760753908458612747087236465766572487070411791432009272921723309288010793936462248896047121582901203503136828073688128541447305497579698835044615093578933283250204813097334710741834338869672495128281021648160316637893603337384946217834570803217570615197997852647820196315375886111351063852454045968030927349177815795862128557100146906628715986776385082183010130768973593885127426260587448207310711082524277859048921135015082489913430085340265430799610009944688853369054092422683567447997192092387718861734031385927180922657430405082340665855012416627437815449974923910139440216107362337770800980812273787986822162776368163647955142311287400061410891335785882948695421923081921625554093333554696802487033535024315820088811757591525856479418587612197305047281811624778205072438086129318743693227259267802878583261316692866304416435249812503282323144878379209543821282471358890353959803623505467830305092531937160158777239296672778077302895882435514563177141244511653344874712556549524089185135127937483622576295814971003050986498680525620278490285134352761537477202313424734705646637433823922014818897554573125772739068778035315959888514436533049918577524830923425078248459812309603799516491270178762540692903100897101883232234704959726271034961667085263387791233506146680349356129914108800440844399097119166674654055787725791139907430240668157960080652980361805602572577205012948278046437774017967354910754632715681846278730692052886373993593325652364769705906523199980834611867798547075836377268545828022513889891565142995225333405757503033820750266899085565119443413282189338366548045006669735427366484156726845558194200386871566394614465779824129527849620484944194839450989532537901375832703133183020353919330161672884271027711349007729671201653155442337204626556064417955367918754574388258985063173607959456034267624132182790984585630660036955226794418300194713096235543332985240330560062294593398823282365390938427183501912365698574785270592470408601904153109953658575889666278500620650327663766378041755404553171723044855996244958490776414107707912549369383837519913744923086307324430311890179431782776726090381858623312752764047617209531827489925105355656835251503179105297950544125035321829886891553921342247993398622873054811826853912259184557720828166744671120307529598441006665253815632494630675978921258688774092112703560280341717969952778160809814944727189427543385134889897213533096446513446107400649898632320608521063821669011180751037503494876998014261104544136673443060975684256143453495652652447723266153445234500899766016039419237095270261412004988488459588943541685338976263668358191010597843146650785795561598940819365438599226039049000705758015069169439824214654404643461120478095060505255070227928552636617059366052654689100795693027472734514243398423073362762159443007145838192963033153119492438406773415341137059794482186034617870404467214082332566055585065738107096365226493086573107866961776853981582555151380522198569579353050651086436442286120843193343161925331017417125697315236814710303443866267478783001310348610695030492918496356180497321903265760133512785622890599337000329044197962350741709653136708167454278464473698968572599908789604318029778896709026923060052172166713712258865210054943595815639567036173128135111774900544866591537149148088040388221278236992987348493862003158972708741530281337149914124691241488980278921914459971647294070303951390178622811986278218465041671955569386185321072827205670407746093850841187305972463525949127581132949943769371434180684132273208296470984037468536619981986376149497628842412734367885767034857890312772756992255481101009434510636759071171650315226655901540565543659625634857539185270416600659798834031480654747221295685982024369549632214716997185854672361493095989043294079564763305666993184504461936559452243438072964458684076843232426574030652805628725678031721814393423163986104042931715601350170117732919785706964502091114317995700031830442354677817307814934828468382779327081976084987600699684413239527273543149161051812239341871012588688763570829601561880843897239202748329633242473444936118309630936315159125737439428700730108473649289551471436468027134620969013427811723888345172738655386285217682606575763156524263791168943182418124468604530340731235191336228261820039916947773645370116600568602946637766008024819365876055162099487963330785475742109345110719819190784262658531479644306914074810691530049778140789894871221917547771648826055742472276448271023484483207801009790341178438418471342471358489511383076216261359617965179179663042996197863062924710096983526867930251552130551862851513411103601472272385572336484243953205476794577865331854476652231950559733948551652252750727237060059728301671758506155854513672509955530662368192508077945252138401759863368112837446993071947167109977005196000541134302785637222540384681127315381864143275381790389912070661191186259985198400192895539707583233257464671874038568190535594312570190064152733002464524758050742090036317073718474879338456359817493075384530466580614764604931120982688085531827687229846357996153863901062616675455805007893461416766333185237238388046337685035541770521400723798201973860973432036198271717292329271630258843787099476678610806403740739016089167301563771410872354364428280806701547411427360683258058440128621817366500726947673731026628726619148553159964695758557718476284191088658063959262564687330592344527636835491104725001246530468164090825535983159105644100872592451487411028287593748497783860785670518671351296940770838502719584911801288221504215932820864986256719261970866725036729321600733921261789416212699344980043377654739907450813724899167748645456899599486571459174170526375988927210329950436637621708177765384788807063249796081949359344509179374885888189173140033400092436622533126646478353141962811231827915305608579568508051313840303126246504427506675691327628410434727795061679187666090678413647698898199732565791653325398258007588073153934050942181834424700834369072931994984751351760401225750136301710462241412729083769634718282107556118625782670008348783555253922253691009159679075248306214612567996652688543941202493235079017094144293864112283015080590983415626032599586990376487322635552550259432864094094217655378656358651689911360400438469291978872192151765306283671969084054002265882710037528712521499038494482808406492937844739245538934914079311275090142459152303137080096599723366299987980045770679134135651588335519874325380837743824175082359869087673893408251375054603095541391327184054802204413382538601874993549986167477344008238607658263973321330902476633356722375471943270663685505632835936083138974778744183801539068088365415246392317281527116625337463376062394888500976014159790163031707360723186785544607864413895749362056209259722337152678904843192303544804106622608435339237849419742346840368932100468197493446743782174668206819418126179696406258709761728088932687902763944873654319257410645793824576218967860168591540754566533774180275324092716383846503131920126011964634916799149509674717159004253038325593794374190177978682831484841734013008439193898731578027169678775110421794034615547898950973736282937146045192125807652016606897599531720020410571929895262018869529425072627916041996321116288963101828416756625731780077315844963939813695988017008069288343141777982058647759139260798495555790061004437119887608727756467955698617831027307608771370451344042707184387253619525161377016798387514918313222762471254009390259232080484893837093520662075133536243868707914220722427715272400556031449846485161805905988140147876697506878539800054395749957883114471363121139388829420853669243915138826985533963493205293970724818555023211863628686782809759213008714656685664680840013440114749517715126697482392672366539089556227020417260938673480776087467987821220718249777656812823933683003994096828009338182932272033398062187639082384852057890025019799780083358519753092335613436885085944654227553760787229984884091643020846498060660646375537280222164715186001992575932051271356327908656814545825670372866620164557523631718891782565382186182572619113121516065095497076112109863482251599932577365776913873089602209434877214724032142440500444695674562293137030073830050458817743299140648580395382991698621099333670708189700056575437688342833517637247903888439482856293244139427827254076713556301798665388274895548869746694535357333392139927885875797824489871259812546001019280173371524323390285759239268109021999126714269273789605912062008742817369639664064963478831764007712304188404794201411218351090265898947548903499587105331241680579209306171537895444039852679032217870677247826975430907604721186104954136320561776332364572585866677512556828976001534102954179299706239039055024211364004381557148934244518587826901224102442584892443829460817895916917074947662979107219920270097087925189664070392042493085532803586492063695519592968167408468125477638755658095572634521388163256054305857666524111810666237313266396059455886860336950665524339812162065731331121395655360266976826558579323917988600498623339171295764071170264612923362318832711777090760629364015033424856356631310568896329352978881365536530722929736530676395841123067426713295893876631731460364977945430646775174942989056298856875522972486398464591339289341923604666770415895925234829947945881048907439067260882742088587613069923630488378133111325069374017796238983693456240700443391933921425881833791719368479003042539446229387945494464963519177329535219111897695947784247713552501342440997214856940020632760535502196176096197885952010558411967583181232557628487086199245623066727633337898741478974473242742941338577791572335734869991058058595243600620664994649614514988937172959749664635868051925967699482340778764618382134963208899516369572939239897012444251222280279658378869087884666087349035546690934849219411310303845099389552219369467312868130707369575380428046721849039355018908750563938020950260606272095901701013246525199666307421146148830870985964677305174696754626577215476161630563032671186393286303094735275062778941628315860373497704523089298056554151042307984530191173759117837378806536018632686930494378437309168300869586140967551854965850273647140777803272924276733285517664970826441175708286391360469984654209249264877260161133767319285867601644261108530488909467000662280079951576943441078669117123953292871762979800966016871816026592213245243170066965993402277752827019598491848496274424920013298508376943061649713684553181748895697408351093465463474012737083160126351724101798157584807976563465280617252480563499371151992453577760959633928651985808412594618486917903483104846951685809891730760440118729225715427278282786173947026349254385329480954469893575922655243993655574690902545060060511018673902550681329352407151743000948370357820036739407541264150620552500425511073794631283541259770005397990042614071967159069996525479215719784846333995227453626311722553312258750478989898040662613144720390293770828606066126650238802456326212269759107337296033409160760511868072901990329924335337955499297718942895185826190572318940060506465505123668303473414739655168795761408025767500989234053502905218964829802575127375628687084724898271382624452787119860293722937681891681966455015128372569328470368197926274783927896160310931411076284543719446058305374408292091039145556391610868129965018553182582697774218466112906084851356683183740538746503158748055648769934891615835838246914980425038896520329862168678402183576592209810876288723691783190816824528721632681229981303036451988750931358940139874815136996965496955284435063437372450823596951628206609725579055634826223308344323247351777834184597113805491858805966626727649011279236406700583407764992370417965407892716838957614946415660626185665560677926992581243116484084005134917000884804097054022439926638134486769789916749425179257499448260069596037422546248543869051428804940331798346706219132842388585226925241164870886466097012558584592059068552530924118059369906548668894602881579897531152905544729498863183184665911091093924486468986224902065902907776422129067592774627178238068669296270828451969953396116255268933406989353132266588932924540103623310638005280216739526152420836053445295571665497132144346011002173823658526342780336194088757302871827687807884847208737391695401287540172999848785210218620825544896332170441154350978518348703501812300774062024925356378288660559298475931336615656971820352834290501062324836613626874114113511611430799503171247535816737704552446028478936275758025806346944175851937323237127586742012793826418373867971397323832034829094156702125254757729662759527432296825130406954293248531038072844563395618270867267360013281440331211600026834050926264258895615479599893870784466087324073668633045771398376115235351694954204791175606933724562126282402506314219474618569155036541336079699147881773027728727811743965587693349482869393410966330755571415776150779056080188419714267711094033762320740984666055428925257361826954673471345765933184395588357991323369165742443904503207954664461372309342048231752158575152288077078205139591549875086820005719476475905286462656215994976137042648891465717714640448505621830978716160619346904824542451386664938382884980872542781380489863441073045271568942113215713213077585465371117259870731790372347829279787333666579528868135969975077038169217537674908248574965815538747901884111148151534056811498272527746163054210754163816322006149618375172894946072661322322711906151471714566995222496925358789275944964786867309714263110811564455834596496126404867087194244956702295638358746899568586309902176657169236253108607201794985864323955233732602384931481049713024594823260932016838942985781899589721153513099379323199464282018575785525811379452818359218742319500658171266441176219278688890008481826602626697019655535390403816659807600758524254881733342902210234838205645970442946996469758056327023543165376506086433434085482321523022870417361239457265834145681016682630827414022934857467447076307744982265482919008441534592131861175045002575701093294795359275196301778216722600270409548349104533360197729042512099092894810032387327027895588068686412250800787425797205066997787142569286504092756709681975391809100735160905137256094985882810259420676886807362047554283395437433777839603203510014756284502080622654661541976178308558611932933320896399740822333501679998095783177180408073234323066313045533528271036401751017295305843690156901416267414524960048189929795544384753882372025462708096783639653757829997092343042388966253465789525500234476652031257182444245614188366792825758903799335204958947196105321210847000325239746560090765589909288671802612321946297767072354733006117861310419330090109144565418122552761674481883473399119928376179272590405187798955363283362061636545045779888758263839149473468276690456075139532098615465212989604258396124802280452722940535995647765153945622306153787666284097738637492611207393939780097540534495785331779569554272723229251643709192012604628173948690808094651724340859112022951699598685462370298394591330236216625090647853167443558971028734564766068314843791885152543876877607028183091936794953081167168313224584895962037762637107750300083214748991587930295342148120222004105201653808763345113457259584970818296297792872040264645847538803715208608184789002920380454015438311903836206634309246712237819645787624835452479363891057068094937948711893496816416950608548233506493334010004698265021513903123765086858651411960011059386727514198655082920993146189377806803810283843220390640596898833071121645508896935627576304463978127329314372408869613339989944726420876775122916120477634394601973585920934452941693379636256959343349366637788700570140671895511424250817231686695802675732086580538762521050395151293161173209511181202648319963462177044477457593208256687430195920816961467934715161660975658725380544912996239045366508437077626258907004265019932427340289555478753369749486535657908537604030455994166359710816235535387755099035578222039899364335517802331503258513389694362568279175701381028524178864259653328230091882465937410382004597290719455239712469843383124426524918413098927252847108966447899091575138907213457737198911533754635405929861612577135954555563604913456327216423210264082484438873463222918629352416691881648148309244361685042770025063421677527040729695571556235788866782740808665505398141544789756413001557276634482799726208108169137756687240887075955254372358011330061565997411834294142406705015352059590914650156518829190618661211313257738823266280435041003759031508775182553811094731035056551691476326363667006519889772295673914108880523678739245319030380054064747791550707452201340442561629587960739148535168307754254104622589911163655501618697366724491659146196997248486411120708189377059192899564015555247349290734671730396702526252158470852640995077524507920897116608135976044017885493816117044692909985351065766486997579234252359986162313064604083764975188300495926976328109156321236672738117075695451693807829116659678285796308729603998882293623282219496261912308532502759284825378702270693977722729268921777152903103489035631158104879288061661100626434121916909304281724194795646145039227155879512648266227634701853746735359387551165688837298937678166964970954300785033947459505814762046257296611742131045339236920348076684608285820028520413062417324282945568299286388760865481635095069324698614018027699861499977240054057612383386181526027535118904804970536089862039119070564802933889782733042521308938938066101723371812085153741279779039951163436100346824385720365918314933897600982959177434278304465167228691428267472519036364057717738694824890343124751981802572852115226521752729054760509604276934275907766633598065521077948133007243210210377684169798764692592176125214694450959758876497864193100452686242123216954544641964544395036333362980510306066976141007971040575988795707263703367303719650353142799873006104548018532038034084023525197865342628390267471862560840724072535967091313061498800632867239652199230239290257924202051481861111562871063944558408756508500290459770141673551883557280719194610188589556533449334526049487481345256465711065420711819824872930509334864820069363329098720445484635604660354740466859663640492842731657609045385802251712633614397217772742135812630950999626688098730290177472501183267866882011953971158105435811381568133514420442316583514297041829395445495615758913743666944196840609736146870360806443839533344451856541880533113989676753554538835994216954823736682863526701041390277467478609061934554609297633419204419431835435705176451174840866615029066711584086007251563605156681320795626603975022976661345424222491570606163504685687608086948957935664174102735030110910355350655956713182876111966227063435438711369896484624701478563294809200952398512307731649084327716632659727469425231271275057497654614828862056980254091982471708179377759310371359433135779764681222997766358194635009473397629399326112712384188770230707931282346668693242109831253876672078114508291616339333678504173912042016125626789331216484703554575993597905775652404437862092789696942533302537609376815915570092309480493174076643689580947852847673158779094180697870014450104017589068956959652548229457862804991431523745322819866935504000156645509158838135970685351104480341207568875121227508537733089921196330123012588461097088809936490751293556535682741351001416185182392008387788300561482766364943980376081632130037724434760789700618612323422188592953141344577675248972237207341083066903616755167559819543896385206513712376136285373312602790395314429518175270838250449183657854257160623513678440499075732264758679080246448372057104645313778561303677640805738243148448345058013813087260689796134522873854778388422634734610010819566798797857418434379581010811589620563919996407354418296146532047101626356429965215009157943715283590720518141908972883278386876225715831216442190296282540071008549579655264151349027750134454922554256719946730524297879587140223870511496561450637672603517689875907994318902711904594381592412630125050498553097390875821573200336984878100558557027987076183085345868463340717743103222812651371732386431146081879282592363301689112107783044757405892094700139239336431731735479854303346407260908635872102877915563834690060542761606737070196717289482146117402088997168060049667876893903933083346204166926747717811313095962052498341720969290389376361315229616000483157014755439338396155819458793311671929917075196857051105636168298653223182906355238340799881262464537988239417673951461544445084917896242948424110703695177763587428216543764294386509318645448224302324354016778249039358389621126031071835229700695681071377843727590930453388480144010222741256924487439219964789290664608526200494251567921773211303133466873522212951756973585921164514907019322889832168987182025632675430933940354320227484429756411793545645679940749192117548661398712848274617062041206899335590824366634209571010800438384057730304461478563032143435028502424205927322430773988517520269867798602551647319853358241978126689293051883721694854046330951046302534152956037641133571250194272976783519192574052589049702982625032340578292650765369498398811379967044349744122369187772081322216272310037349204220750180943356963465347103967748123794686693574284140750536264933340405871071036442518012003002558596543965974960605070443820194191346130715620733529799701944691197651429870926876628995112605820614250321528457884930561329524925640740405788327865829419999950400379191893417287141090195771911169752287905376731218142823741043396170904580596382367342120271228365638901429070158462856106995472685385192655655334785321931751419098989512788076535933918529412771051586481528855056536157924968334273640433816120163535648627998691823323283819675401252427535392640656675813245239608913346721694156135924321138711280178635648009779526137376707444825859652267847699655153895868915994866224336376487498662318593101255309875065016223466626375737081867797446217365903296644759160569569148675649722079603037232048111962695838857763335808781149538244886353391545315526304386873900842200383778407370225101466646446348337737248117309350957496351190554797128816908344041775341593355132788437374851042993771710220751057825818795277053589261411809950709020007952483555030453106176735261108826396389845341329628656124743079744201416972159962759215502925117305290437384725381407994400768331546683095518085921221444081969848878985560161319399369070384069386284364957273932534778944817535866904886056980842273712107502486131681221235767676424999198295375617309754573650084954910300589057736251908274279046079168231466047091265335519982548009757523232425512163348924637686620328722720994144466375882349181510469204770448131449263902264793436506064177948438903085490195293854641932226525373301173927058125323799690871163194766348456612523051894007392546850896623274398889767075923332054357413099833993685248245718456675977030811368151182838189809187212545209788593968073546945443904111816501954811745525665670391955163756437916692274776153494774555098913972008590448939346106006819666938053678378158830711329169301317384087877944691034182720463885655504017020762881816429280332205130129625709170295032106266877911499801825984304335303685180724789166551606548342069279933054563815989889340366724979968814829472331963749121385851142241124376839008960397188854092161535464549092379757236545603818881551770972654659662925654309801642390247761210268401538313901639408810168951432809635153642600155660283405270984892738744568596709088398445246875984163118540559161577356935855860644210669463199334769725516849762997257141496547096305376742891613870089244463768798565931589825718943737338651157603150715632147327748058463965549310931636511247771349158346435636715155915455570847324571318470423643103522050422464466385841492754579733084672865685985645956167788225224126347516048338853399057959373969636738497291373769824519143347631623919361781516709074182847385257292059999563346186854264678122132568752958097869312349457295819687244052595855485318739376186930458842631743113793833165644168261966002333405488573976691229535902443120705160026889733995940753375323826961229086110469915766941484520133857506813743879398907676261800672101829813610820975704570091969269058815416308829080897686482274120855140387524973374220284933213540598975023893396968553597867084911266688358332063218866805542879321978464271883165518411535775197406596310101578642952292459403935961715265032269977958275459634782775130930822505466843541739382689843555298639664568645783742892195647776217387402708634275190281330476515092325915373998892060416287399044900945846240292051001801610332381321569884961154545150926384928378420798336684706346945784113817751431745662107534048362871268410260676222381700373960390583170160548944759177250230916023664335625621754255432798122876704183041927399131214318805822567449859713142111463504422970017383862098978109240807192025571952866805015959398495344362200560945377686641138227830028521001175565563240770679891976727160352477213908642424948589814728927782234268690309141482074209829321587894297532985944386922883892128539263521684205531616406640739605541373473798951165596563118194611284627660744737522303229360825553626659253817701988466303694816056464017561038173345944964971992353973261170587275213532368444126407601730013777538314352044075415610714009438575446630974505334403046698470912074306347012058722749484469124719269463770324160779187833903567710870940642421279256573246923777001241169049702734455310127602856059358789625959342155743679839442234183638482170938711126789817406638887069659664198106352825877401513087665734995656491359465297304199820876607204933883962294474938862005125384399547858080194085138557400276269668272525487281991951323437656815871745611090772504046921911599152996860448051519085432964705493649584641160353231250714210459109386099923151975829815684153276740343616686643412356078039466370388809409556918237414151197737155690571936831565688023067367785791592459949349842026176399793485308763892266793084595732339019478857308951110379374200661072913904074740973242225903776046848841702562830991919376432044976263002087985367766427554846922209068556245692517303175636490717491605697740461127869900017343668911486309633607767176007713299698593119302292855171280518392089783559209388936303179371575193145153894853381965235392355572044483426564464728552500209069632012748083987004342725484014903064380111446427156657765820991377498611860357753497081441736284114881076146743767378709726278936494578668695598672909082006018217867630786475201123969732009389495088955182351245741057626994428380473858017227044868851280542777824083523268251771764948287514763690663177863686829434629224677354842519390994590028719861652427413627392845920230385893602241680603089733350326290215271469408081809574741576845849734886941934740723348965056138697031306354040190656414449082197464504208593684072768043077048584443990347005813092906687605199951091830681577273196683673006098769480697510597054047377018062663181301692395004844526520660970406939412558318084414672080065174492944348375413544486897817553060079348852900950788800727913695813437684054099319528568439097897442100022661970971006155745818174510447473791158210077816169684512901064623695432021748505055458320590109467694903832881427760608692644179242006171085185376319925651154543157860563926524456433307007223278208141996971872177998599013479220309173097344697583142442910513558408040304273133463364950447306441239238554515172866470430199775792769824685139383638558027009089721104157917899704904923502309626666998951100297474518667357420744525914289280445640575344068891128531230135493361530519725360117511215261523270173436922410127898451012393814397187666908818691775671297100660116361812153185469328408132712408052193945678686753752199353942106072448722184760027779592288778780990886586187517560263393552551964200429633667459736954373129040194392410781166385553727001589530404803125872001394697119567497259667844991944099740413144113766784749428868798147787104245530366794793303141060001239102359770045470859528187404907034917964393706506367571895975197671061684387848841484090996483883792792842338974462528742927086471930765015663081261540266235980721327013035033605356399301741329351206919022982494981989168597569256575727422568366835126889291901606846903166719026014141820730748385204179195156104890989329307551156729899291062481152917004271928558575236746872922194662041193748564824581170238964472908009159101719224824432084055434909911951918652054368298267994012221547937275462821984368558951083645954819463874003594825906721895133395990906390294886614441809475081508905041423815607368886252847930118408188664005812747933958055975204175397365577988590068814684378978373442489738433777055770614289009222246451320277734287294626750894170056425479266376752087956922392056700026485803401005316129804828682055842716492204929883350075144818923605996993184828760203451028180712017227209224094793272477227552695178912374299782528638698384895690068564150551020937718429028902740069346212712845795083997623766304632803851172034866861768544291691502373607976956214465471403186715127654398819147246758360757756811265504088429902939131229977531939632050254166418651577807215921474322231250356713402989484925673367003951039981400188750465015233383939974718292660189536285465022644208472977572862684671298414330989479470813598728477448591342349240093774337796506508469729896157553854240675107853246619776905482817174766986352079053565685070274022812767807030442534243037235773299785519643359602599276466700687962353715016893854720191137687191595080843663551323607843282155146085050301120355918254826540647608996715870858208766287284424621249153409557810013226339168464306797754803713574962462311221050810220810549475511787286040715770501093499207180986174463635810793119800352928140649600480104422929267618998666852939453585168340409502893889408667346966420263440992527345415583988417025762733927516226146881698702655903428400829884522606552148816894952714000063140709663259778071046161184712164583209911727684932000476275832999825281849725311875385333485052850680457825747387861126514051335212879906854818751701124321492814356351999632142193712269776082548648381713047548074716904809875549015100507316123604197780475543322094885116384438838199102987723660010854539109247418944777432810687189326390591862454390632526737289307914331955270290225929050234324765413931048830764969122050165738239887841414907771693794381562148438082839476715793490468855894676938113907102814310574649030319598007729643307814296696635656059530203654644813360971667128586128254613690481292938616204741320056711343478995783782826918377713953356305172576479762649654108256214827821388022010485707616665025120713017116870510287881764542068475914724341767921973881652428713463508894656477844425418188652624774124500228048452280509185400653485034162281000987679378812702529879764940667674428010368773270625125661914858750375713611400493018287557142955642919756242387695419272882982988274553419084754103453029349475330131020606349714680875520370613953744333789811179126759323617210624155190132726303895850933475589977901959339663347980669170554597680306796032825938674438845873728932404226851778043525722146754027595707281010118983461358299624427452085348965628016512240230781283421613878106689649453751335299279172518486842223536521563602220322120990885154699331758876044208400514866141996212835962961831424338505666130697090628524719751124287876929400080424774794413696543929796255906019804042310816776485798691441393129786323719578896733567945535723608332304512103107754600209153851436111033091081504887427398175654255709862977288269595846544201717637874637008903987248074804787875935814447691537249251657254849037284840419648558281428049691740894277106542000695316534408404601065283931236190424619081259924428222848025863680930424544027872497032428297336033085410597078275846746980524069287111729373626755431835878040862324529167365029611853373969584294151903487763795814363355150624092259364214470444774665804406941192502732744668014442736863439565668204078216249162477969345519802979502439964283692432656438938072875198556074871598125899056175003631645779059009978943932025135971800198442172836898796687012873285858423249137760923398031464787397042590165879074805053381326522700873131140456119457749176686290359665133390409062495989367613082365083263654177202562875681337875957260543497508353121943050026835771224596833207774045393268328375774879297648910070630224678982307784384837874674168912703995032456545650806911456788848287206219297540253658531146990549687396862838860824365974995937609302503175814713779013533416128740657962137018592830179449122572812243596139045907845110332496158797729460883910271007430663827302506208154585037950586760319888788109961315985036006902577594181078726582825749251953264796247989180379749462463831638626523149350083969243273207323564859999796922893560768718900733889444469150061404568853731844871838896087929597883388562716442469540633517396295550997034426894735057511159169783808941342063143747082824946572932103423807080891996720704408380967643419611809672478107262401395452522161695248507205061373499476328304854537590776188597497096669002774026052461777042314785528287947097893476489495087110151471186375253016717713845913000735130005273236540731778992785360223223283557816145224842540627247881928337236756959663098407055510099449593892562850129574115489385418706713059567913630490176647588155745604077419199849389089640873388612727593443451043446406448033527953761636631846788511561392395701035515437054365745091142923370029714030808499672141885087896526471977234713378780316580104521994270938949530423530811622993025156558487422977697128521881805073609362410337259073863568505326318517118203521544413343600964675896125377000056834711078018934439819254624738213308802198918768777560897757937379061846136107035055142626870797371444522890296933703950855497850093472733149911414924792394654073254071606046227047700918204666967825621041145808336079332034375543770449438252768913677934644093275595834356593619143617378708892108581923772563235767099607001097872724289016466865722177300985640569960301493697862191596609713197091701747605688405682861530520072293167948012173199346771187719267054417727917210540326856301896568086066839144080360877198436762581810733837970596097520318497576342304510396764983323542741318040562408851187808115375972747044483283734427748733937431010805317826830579671989462850459007292382832189316558761049333361874627163917638906295955495832587007035381708271137606734780483114190419776849024548088670936010050852983705338272088960883287674673998329760664251366167953530884666359719890135294095522512470246982387679930373790727234450526846783536708415413778812314685331293148230768680437793642747044513577071219310747150293655616723095397618942256833130886824596718032954690432406960309687736296775343875839355472929012918810286182784220556031467709358032286942206501329549795352182965930080024857930418102039392515022473056977423129691281192281229876103913209195953063736162101020408887233167562243767349454722827585424123020804022529981337169162759928744752230536452150597666162462058252048203928069778146576747711128145662420649928104830723314633714094394723620589561152819722848314575355722498597409163950495067604138626906458241564254020705144263636935236588449758672403437908850700678458881425943507233309651354259350767596734512850603285707299773584484298048672843564672221944145002892535340052687929271693107982127058340467504071145669341449542954370454672373657327655856500289636373933212748631354999132890044045409745402227265731639350345263651768767229381600214135124876639156891819119095373943717244250299498001526919634654057600777166356404164135664973663318807634905501889083218160528925683077557073947207786700770920000369489611788786487784019265033298953440187687969112776908936794432091903595230446049609408309406609507762220343972997762377723889836742950915097574427448653354479053585697974443945315578182189585838354925475872743393387367894019147332849150228816209816099229352101534881881325310441087301995499944285553311349868433543760647956023104232174353334600700526163741239275913743288038729064263875642783783198564772018025144977231892310243272886440729595349566709253921460429592357557472677341616412668976376338342942733030493248003097063223230299014879005864676691797675357282961745734417549111652792781454057998809289882332418578955500311654404770964987028739078503976627069509799582530494047101665229782002181438491891328307225161295387009261344946851233976262517833267824933711803851165507752099580104504390455833873913809891386074412560219770503606467467514078896321572690936837190575877312359676023199957796711514302643666928729932995819726538186007079981495652692444642218876316709667407862504571891981135867440059376602837489167525400786493557497797672031674407756300224851831554283692558963213292072317243995476393769984833159133682395144876037700680465993458885706311477064556333067464653063498692127235500974097361784629304705934341578992623049613924381518649084726228541111446037149237646777592428056554474228868839138861925428185194971787471877650963764447888390173234998834278005118644405607835067593427134362720791506907867222720482342501591000362081594647404465434051694383847690219783283883870143102266660749322154741022334909515999472539260534082406809820533706140000976929193893981369771617078795923170892917203605610948425509815580374882027587585857592041441719040685469713240644754253632606724492274746266932325421230092101312044730486388516746694593225883504520994453733345233634202675286620606875920572380865606104708343017956704842137718412920260043969480986641886885092379998975400315076540976061997858804056509033527293182581741663564960838870652155498357684008289690798196209685815387629838870389898421098768370065034774717890818992179995892430577634224416213115248068628618881578521642122062357944628985336695682135631417753337063280357918073084020645008814421098317759171726921775151625697930827268751557788274840692073372714704583317764774673212158377350718735664573850628879661306405049149323884998643187182067038354256725877984377695545651172103183176418255880775766230578598427267005662101349535843482129267621374132398413534958456058583165422283017596408292333223182543842606341566419692543376737204666109462078166170879445881214378388015783689502302405036383082328665841336568257187856003717802748055023140656655628363538199453839800740397560502535362856843490459327021576734484020252928357067741094609403508861601058790531452429345449688731280422756220593019537910840861188596652360441349922389002636734924105964261071784267279249575395200400340510587330345499533754511860965623234308682814879781475032753942129376489167175383547747259162423290591417929516752580632196460021072940996829250747735842746339247272347077662739276806366297519478933509958674986826131354781600440505862982562559249351700704618854291128524271872839855047459764840303504088242890005638138671279486888639752433426852906788960339810336954989783338024251955099252120201642639818582895071495205226993775107292890235134528602177605867474221415801567225914436166057530662091661359496504692221072989907704821934171454052614000049112139316713284375899274551883715177661183828956236472550394587282758326174005334180185602678171793222846732724973705783714748043100662393526968605747170264869467683114457106663243806909001203950251570577518757441009972673334025247599665160850592282877745762748894970229290478328310583340535924799425746914673498558946791473295344269140184472496858559394572016949793897114458248762491580576191038932663131473644594978883695411097774728514233079371430225115622743178683299840660067114554933177077953678824036319524177744282176519020917261158446783205617533082958062468183553076991497951799381419314287909183922780963614735768046515812461339626558036464994377954167909045646270561321268392372098077354079842418877178209051867985947610952406719865773062137416886268972764137721609751779995843923893844617775629691968972511471157264048034365995526089518005887591930452418168971071701910244475375024361027101049322691071717232376246492678537073392558123724714746660354525777092420694881588473535661522874033558656835563517113042992370995989271704969069153264102605553129456086282593449249106466255474086235485265151917723685133763068042677271548057545646606365259297395130713820374175781582665186610137979013473116735940853082327737926755902839311211686489611511514371237529573756822672745760997399128995268161473142989155229592614200016850676422943934853154991544354415086151067858817114306317028810575897018674372101375688615869328407747327659193276365983263739308546486634329148945510621015126476821126947909030211039243302151351834973961761573680541752405547172134218950608655545506182301714984213715863243556209793958186764363390957325021218873978776733410491047465620166561837804235387068628025774153918827679910578417523000084733632398544646443848644537744402485432691963312704529876023691721843497856825392451560061030446161644543371796040578961959201884901294777625743729552651955263008864450600989237633390645922099429516087832767569853540287090203124097678646065135954643833072643950544296877132155378469949700721816584449960212599566588785241894676509237835991096580015430248072440546184116656764272460523384666315072259922377266200029528918254862743192287097612365386092260223481648005623554677908727123213333953414510864418024129178053961205782884264496376206991654053994406671533636999883136921307065146797986355225261782989803707650715241226861431930445964871178751710075200765087221089508942337873900782827035259024964496451551533782926712534515150903479855456312235765136712867310513814317527050581663707105180853853720082845520050534815016832364785613840336721738888187285951751464500188217801378503495543128622632108300153153409237788003093337071050460048303480559553901758561657774786697517161102464189109302110800136390882904799486402987707129441338180835022694165584826070991770919587326605501158736327834830846857990893377753619783528652985528016574557333415637130987144061171693874531260799117916395730104925101952433274860011740672525012426059689341478852315514174301486254273268417374269584243229528430833508672624960870273706036561970104592106571328013457897120140373626851098692852063375679568669148399233375536343032403191144296662077070054193819290697196714119176923043840131583172955682452754602017159473454822663775360913983351580990884350708494081251872126281326534816010661599146031223564737215525768500026772086504180824744119761636494965859383406308382147569860833788741442350168459086962275017093793216639489635171782877887493602503872891240072834198702857650431088936994646640658523873091770499409714631140505402946045327468402042404435372334824317674667823158110216042443154717247490949990656259506672629486615084102117024731554388340468178360533038711253626388067943011731784243821863747969837209406077812581208574440594168480989243119717263547598831544075535181247627780933932571995873683375443196442866035287851149598119366032025565578804521273683805173039248479158339937765393629542254850890743569488540297347319422151079754458453164511093719445157699801720065465841022955149070228092992936830772503781833102914324337814427210079919569287806893323358461295840582636487245597772970903677911228190746569365448059938339886614918861613472958229335948751822294378101100353254140486419761653208061064997247578646977597589428261578598493088907663527009308079552342082498892716662933585518631993196552396576047621766758674243721797223387260656567847565475417244522382228420470425061255921456849226570658857253198357144862355524758836019540734591456312103967064567621245218623846873812878152538007906597972567408364498234017287068006296102768647037589562723970386509037999804079203591961490378340933439559214659690553178507699299033315741818944137915758602030833730712604953412815766746123331429480609189685401269322487159074807750799061548045241441656853327180897633637516809606770062460666807632917710353470093807687732332182163002193246314032972134814003856622251934079190742520630320447740626886921273454808227590548576088987229785591510497184645998702009528408486172988125735020072778050349570591947255009019497554030648906920126408057599474150057597845331522807641093082781825232987822092329748875264754587632112460731426525335157650690243953527901487797986648995010629959483943646254327033387759741943602931442795552257015186909040351073301876271106389777256963182138362557875026566872564224426992974620444755842357832841088547271785225732751088359058611204976505947211590032451442013134362882563648196372116665906950986845403631233347516204563047287413878813798965212805693987949757623944496721503709481754182597395026748312166049818723744466768951556644180755295242628355425319695495827238864621089939739010080402315452295765687426472436552667323679374087957529902629497314260700299732971126915088553249082467546182337023472942155616090769599377857812240726417747689571559141420688566042053202174790180018658715770909655230885892706799525742321503545760570652727693376407210716413116361486130747099103954128765976838786763921289414056913419297248269836215636408660256851750427200392593294419063922655787458810128103116951940303161809217755827499709555925223099050741194551338635059434365482308561178893424727821964425114761165625059024484698616787292390564593275496547548959456345667509362102671158946161743052111562399229325948406896856991836100733968496009898571562534706619532779081405055377145019436340514808545227783201839867007529410848024792708944650354890992642411506018355367711878087087999534802065604533837124183386361618443245158417019622576689214374375145081660260292215004815868948159655737340510869815048752292191876223929279702560607372191853513594263399084040474874819149592113788027447567407725000314178238364765931992682651549967138414697065174950535970177025170308433773754583341269577527513982483262598358940813118914323453267743120596289283519906079611266177017260556348316934848372020408455995196315358566911738490471622261672189004631124169944837931675606589519557185651050125396301167117518528842899104690712709985038897906334144013597491336728131981425082859273282701625350288361211865768773465303235672813690510136004392439729427961413261605240878519871585052317054792949621112146165744073700507963679062727929079189767144403173450679831655931901166994852060505842662372011953615335748175289720737107574267690303898007208199090455781414259249039727219287039517331769628769765479266557153192017194925763754885918636308466816602560089428588088952993841729891959496662791638989238646906891522323794568014903531199761776989345234795649433018067780856766122951129080541742354013046910918741587006634667772911960252175924863760810134722653365750352818622793068885207588696284647202437653143253261913223525484950083702758765843184089993322302733196577552088251805658522029957937056378279344392772905132541589363830155831226730489171663351603605993033491561642074875370550420670017714506004511077132918900537714414948694641325460079460457329775853466820127409913328958190263098257062914989970918092343772722826237338250146487169645682108036037190742056472816563095910530633038754890680656460239461156611924641445818119126753658578483847370104826833964001188579129090324905564194386883222344981101763263720196141038501875805826795719187494589350020664801148013004719725097997464701901786199728625653671878149572616284913139536663259140467871758520269050401013546963262363537725360447913085981609239583443728980137524163922276541226029308209422914435887875751247646681296651839594589671157203326887865682007090105623487442478700428864708376414328176208386998793342096535809702257380408359177780628288999703614390491266728613698059371184911800896090415883252643646657283281438690931364070094039772125714376392049581672722511098316629837862083924313951562635596750839391019617741589398504258550869073387659072686732307925002822588037639585175563893108451789511647323535015031087652167851391574361741230974639651412323563098660345188595399090506037144911612729726076948374087702222469799370479190082534565302311374798109431267980624762919028495579805223384715271029637952891905614169948030922632390693971392960188684013130083699248058302605119157019027086439256724302575703835566870896537105000449616728519504213904383606493879530460691130940714791162616859772411644090296190918632204290300291590559939421599027228892927592555455276084700097016240508454076986066379815088228301856991121379852802267660836446793343063048910810299064959464056303836812238288471191570464305507435352228253362991336814398271336476971390469878411817318430990966879558261486058121263198818055273245295907190462386616695658756273223289658388363867036291051367518574095367986244753376700206601889444873043363003318854929556866088896945810421869270493583919958351813365759833029019231692083674485476307702842262229937868291047742392925306007625797748942993627115354869205720141517175879552777943316566271751944347099779141598143114552285021193591398808585771466761878319319295257374103454670623854457243252751127191984568334151710153820839630567574530481374417760203190649670281695427603147913249742653625493148150589624832208554765210068643930730991547627374927045802101804586179202637513247499159339999151588929065240360120856962966693857520496268678559066230112925653374331785286626817203850447035747046600089247532445885026598140336818228433241669615392647103254296091888105446082874305342499036284128648301101144792988287289332646701088877729156928483764294919863148176582597859891365933048210523179759607421980997838803835126317166768839315911627425932180509955964994487201954042838453441069528724426436430652246473652655204047330197767558680298272975392509296932134662608772466538475902235103209082924033131034414303187908770576154029431055627494710326375825626411853445498823971746932593095867444061642469690753193919365871496650572033527826313704749115671140855710240585952722667273476736885843659972194703017524112754467874898316598485257393777811043602413624439441484638440710640685003173945565085524209531784896716083183785992623471533182197252453184447797220472967840606029618327849374418902229907456258024435344525807531136674255469292127143270996624423063621049008398321734978039207153869491241724474716876888283764739828378958022333809268871987659863259973836380842077142095796291414083667627843605580483075329888705742812053815865788656014416037247990842205832862590010518839134446294425278244638629134520197673039181177381196116509501839640363901309914704521417648510730708155519265639268690588405935404645567934718021349059267321606261925592426513913690676806614426421158613003450178254200551289124060959463846281361155597769169491415313924325609794383493676238625242183932382048329106963922406210572399498293617374535248700301674311417053354078950319141776322481553134015261361859760553508814428350418574099285907673387463457945857569134976110915670432420352603776619063220737036866298339067384896349011295398465753599386250469871934566021562208398235422702712116254255872653922947754158870602662002871261885744676268524843331302585010657426701636415871978121730276650991276901885932923360566067147900004793371862094882896613618034517584485192689864243468928403066702980578478768715863102956157062628472931288051504399352186711420787729145856439674745528566356410915650464723906513354302296362336515047025208846124616280130730736324208592553707359630406177840545332508179716254900140121184007385707683734369420361690544615295292028311933134734603729990924392584013900574726689975044188504901044982612944942734507069558995056610292696255841622204712874895644796399253871475385522735699623374666959979593892406952061101341774335988811218314125546713697574578011996371549350009911472653055779840096358846543282820174538372311446338183272804476300862716565460262475186582706409285512324817085977225187635889319799471139906613500944449011436810499498437576824444927038958699625101486142291208071495155484891268357219258614430944435135051735992344897901546953448016515767677055889741606237189960175355489549346273164280141098651961496661867230183462174123552225976715592698206330907145826680506171985654582087515017244797125380499502269462323989897677915478412724122247339969147822469532986370619629067130980357793515925586528807284466374899398882811394302693056548550558722773318971110856667528400818629880110860217356440208054679594703130930691264959388960001654703878038399747654746584030063850035570340719037537340828649094747858895851751276256509952073301451408639605525096106642323695658317164039500182370540565757022279575343046523703944069324823750572234449978084161361492972966404159693808438590801979566634536495813565275045011043791369755009517697419414575866669507547218483608727203883287070383290221608899965283459721459822832886740320461387309272743368469589947023638192636190496071314587132081172763902318784325270933960039278819378693834507701432831080539924288437145283267079292081647028418479418416068161364565324628953649671040952324436298118438785904212956474933216437021150824332793357932920649699132320662105846275746538023170932350732822995221540595229070741340124669541023060439334366160077123170887001281219212306825888713698070567187746830852586216657609733589717202275279684997827970804329123251537069081486313482271572465113370363615147787216318160637690094125953038608206918059973264420349311977296036258618978404514690091725456350376568811048173615715335640433783255440136067711795821619790632858841559935185761017358717280110986865536403227709462833642896898834435918099952287966770260143420466912125077321061142092191538164064547383751124814000427419912799277328329223146643164191832620356837271716473830327082984588441383299381227604517440835868485220111851768067419755542638321536877029784359379429815808146657194137581362895645189913497168952344118527500406124384437991369649395907102002751845275522410589128512291786125164948743321292967107716727540023463122956254223433046215840990279715070494704472313591658704370619223508892618096180311294543194639514219756826427594023233121795210929546857252865331722895226419217305051312271829261067180306302431540087269635698027023891469230405609689253961440558485007876536256066689788664251213473641095702562137580540024295405925702901453889944267097944886789674404388921376577950317000263715649627307679578376618300195427415292121209357925636118563679438762069652103762133262790823836614348005977549879368484397810268518870144014407442267059937023754325036118096305447392447289573526302635172892436137006909283653917708181869233275383838623818954193486049642817056189080855175974497507347066808092493719319933176456759040305670920590556180803975907495983590101156520264948059079891331827339679653991531998376743720367109815252184952258917454793080363010463472125724114922583478992840180851277726886271907746012836692981746301505516108218173479848997232979377411324286136831611451618921316536544755031290741817859260465083233470337867769188303997568999428618155083225848985815745095631810164009682331359033857685160188131585716040906754244972374101230917851321696173769144079465074445239098552624562878616525707286263627722741761746023453271232915144951346902348218404030145470712940095714873237381645355246369088725257367348559530076241806188196994246964756109906033472355589523097869192419872194653782350834962923212756381287028110246525733707409338692191843222091868414071777814004019049106522602011589192321129338781876599749972931192657647114771069564724580250562553867391826811520018616896421095917171887162939070159745849347489416822752907554786350606745754460930705640858442449587491264132850387491798033140600873110786268498945386220205643122363859483227631714700283552220336165672404854481450002068899254678452299655591829723939065314076591746525954498315050758951021006819396462056830747140132005507229972768428664718274443741042336836267889267300404006973463738358328474428801658812141762630339600309950453879347940861192863890003610861505723478396749537760390454966422161281302575804261696035201997647817189667758397894394673254106564043704253167988806290944297792099541320245754397772431161775990973010604472468012200949967197370633359932564222946672893667363554061632269423229875655646006306103521076513660687570786814668689315488354232063420419145749889532240548775300053448250011245130316710180536459597081501406928167959467375073689120640747460926112813630159416496351362410124470451119224257445138218442345651920475534423694697373722501344564071645413266277936201349334422737098872421439651082196936120806117596280573605192606379927052001233109467123762444515925479551435830236421168735084419082504503536201319468767386223398100277024382903104190301056780401167930577064586187833996227804846635738070170815950307588371366137201707902179935646443962789767611870100935140641769186877547725911324488311965991924125161689285542254442538823742017892442476103503828074137903068281390271866017765534838429607962896770136592608100026302784418349270672839011859946159434585610437933450195673745808248696822587432594412057515585631133183936974080575003089129547397260135524161466878248711339302331605588144539252911543071287777519231961378259177586092599400298112788223188187011473733751373980068022192603408981138992676854784383095256308047804187704774297356105949279976521415656823185835704552714294819832720006449873619838060885233854042873152287354701876703354075365554214576617076481418348039153029575102173924292060945953880530735224762724968564456524944794202009145187903907628279630147781757647634459915304740414715899223163824957434100771770901480850919751905085122363077648296901647915129464098060973826398675525233242756978039199131935960972701421962947397667342023153309572806991387129750413998580868211366536941513222322140610988494284655788790067109821668250814602091052012624918960341098394399808233700594907386446377774785228443797638642101356149322810999034067660333090598908357648381315174443373973950118985894920690295011717804072017789940217675243581022844031557555999609125505442186076834262549913276655944061728580296116275896411008112423457073184681930837968581653110694013324592023341256307459083842303327848576722581273288713895988016665237168722424981156681127139306697691887270943987894260861501718753294250111023710852902642004599580173978541683857935464874657373169393028771199368934733756027980114302807067256082913358699494154198039319817047201230096467113226840434753511672006304111460010092973886104451363323090317079101836731548269755437985002866185481485476879265782603844923810410437873509254712235420241814641992314342220853584431855856241591993032945983678334587913971581278229265680407496609520172197308650534634588488399038029015531954455172357815136358023507580112865910406067646304261103668478102839378339456103683437901384406007237979521949259744667574564747013187969527106381695898741133113139786412924664494614771411760486165277659023302267683969205625190227075282716079280831325339791417764814051342465354261648896393090675563328834964811954537686998894321859865354892244732146645227840020318848587428735019691407216350429592140368925884725257469437640946998802596794142272261618475671267856959692299104558219821235033779352241314364173804215530076918077404192638995915198435853336125294183980492930207463751289432381019406629085805387987896656828663098892531989577388161387696290832184475848490220231569576174313066359543915016557400930653728641560709562053832667316882211355895418437565022061842109292834279939021484606977030680689689695275541136078629965297680549448002901357128438844110616740681957778662391887917762465695249900574056125040574329595313771462801180662145595783880093792987084294710296993249365345823551848443244694213719449102497825440248504223890958384688174141702580145789709014977753808863099672619480992034733003787282184857330628044990364393413063566992067136889525937264829003697542512396219699599242971793529745209259673655773204158095866618245058755570172070433363367018312265648478268940445726937680890519349037545097178394156677378153050981399961732805786520295821770060944735453199264427141310036963942883391575524691075863764735763010219475897296708932609776029913548795607425599661318569699455593382905212852344946574031665358047636298486963302151487696368929584194398219993338889607991337784122636331182391908782723326511563394056505878502833398967720073549716967363442375312699431984575746146294256861743663520534171732854487189732837171039865747527980643862479816965285688886207023005311615652562287606777211520303117452568808976041763003383220016272518668294433771075981408201042330592559325507878391125705382011960840113929134985821756170484898657172926341743951984358056796862989906978132011042888064185122295038053073779697739893771835345510966302401584073064344991880292722543493068477304800997605885530167383509411428860776656735359975500836380573673858329333590088103833207822642082239034322122458644952895079429746000965574973623197203112828787633501409038991055480053539293874235196463105555122843173027685115819652577706524938063108377771560819903122797912485030979414661399090980530252602992131703163030278991924868580885133802143271659864982761955694991785293323325083477687074394655057899807109081833117373745258538893982668093271434806349831212987102665160741625144201607047624163329941645259540707637804396515664858448309537433061465847611353606608675128472742440909066561955635704049404441630834645215730965965553075397051319455324809761783171610493889020374933704436363556772846026785524031430850755559879257148569460398676617148651865727744353980559671095110879406484249637332125477360997941080666872070446490818780847815740811505426597020170832860584451826794859169029902706677575574243445046894741226833837237072942573403216758763822575570415790099232789274920069881018032972071937294074550899422603243263562893002319208331978304470102839934941777197075796120989248933304535997498349348920523963968468004353334382693679048972850769030352338640771142250848308623768418092163157508997567770629110412506003830739844337765760728604568268084359603801030379215970560288453683109330807562792174228188797109245930905658962996742222419880536535015716055007521407968715395687293052372848162389716279536546339872155710589064344813800269930004718639346426910805747872149256492843893832124874930415643828562506874793928329572078166091546032369717500053523493632543394631831360789371218516601153150572228142475974190947938789816665733495672525793708364568418604640921208179619031689892217810072386512375243915097568442733256240433655018230727676012116808955215822283301655036017533230047106400741854383331323800624087557061031158718604852296596955374428823877932590034376528670401983237530252881275107630451822347402737038775022498255291619878651329835681455841708764639230976281610688096355994511359386304964509234656502806772960646183744843153726747762256689516178711358759942930698655142795710015540143820254023930790528408275632830361095431958379174211603987616410502805795718909716737864375856512488867303007220661580333594916390550040584447850273797190398658652329575431474181787695542773709600501490792155843730605480762230694359393959851632209796450923395306947528169628343587969585841907064108450149055600850568118260915307605219345339118363610858542897710102182265934508064998847302339103455826655001323842525679348953666016430327059752112087348456037094740217313383669109701999698375422917341440050523080736591840915014182048866723222035411685182777036569327313920816398350157258454915462971628168327902445223616116935349879173920960023796335049148414897725671524636461428154404639154565726512214289677872170003678695710277951849478363356401449410738734159118270692572225633711420342450145686671626818280649247711989619920901382711182722849545900118339429280789951964073131302446759203642114702058102771657263321523858277535611162760196559026366623966508998724672356233644392653490915327793395088791250287335471899908328977471109003685817509392023596349431210723253475312522820588883702905178050705258070682957864767867332091961244743847777525562227387419057572738873893195813159968139725891953789318510775520741901620570530898150969801428342273177888343239040510179731545372585779771128511576058097083224688850453850364346411815200308561717534399243687058446521411599008964851501775053005810152905336870281008211817897741141698579630507296901833903472793437837491616134341973318889650363037575390989272360269443097842159484484165743780279420784254176137011235167511570856673399595958677824916328527864213144762374470634174230151597714217415762559261436660092492510003961489488119159005187893852074060928871179642112361255752648685892636195909130859825310702925007907469176905755140282542220951904301592778417248734914011246771862382939692452107066251397410815436707352340514701915543370005112642335876674764088069843885604082896240370065947562961964309464975565753196470777660085308888851932921169380974120163085352898822292412602503852915765395657117399621858292287138140710926965204702513295738526856526693029479099656216954635843637682576251034273597976699983632897093465595962846723393706328430102482899114526985767182204556777992998560452128542432937266708704833857986248939802634367654012832489154007741772716654001028700080403494427591519946894508769407253269267724597263841699079785786600454313073383998130728441048707078397155172772498964117687507688304310361787143447793526830460022840544489650812605225120848319186020155683441530873327725807770178172433080198298474791761489482908151340457069859894439364142734111281997659936580859520765218125668976134173355996335383522407784554793159450842255496493274718929748845486431286573933070325772491302437972451855754774664619871512191092915077830758102762888168913076494477733527611363556298348004019534284269832006783169647269904110466788735459709809962738737685806102216371805289348944692322228143455517771311165372652578216961865564048926772157659151659587938394604851612799531496526051736564758274041315317532543542823658936971647993010692746510331830976182339022253584672129536140981281822071530858040316232947720978636972487370854353152849525160104629706376665002553514343653130961103336235028784324243521799124920979411822921365563077284385731844694167670720719341236120569056491958810082232639734145935127267950236362817876766162011161815993447339904702164368269024439134589131128498506495093148960781785649112723945985264960801388489196344366717519734810109703888635935120982717853670676274748711335502479664700452138825016212389621195995585234106722421593387206595807956106703283679807077784994279566370587376792538787880073600926062349994578296285567433819067417292079477901946602526698567788109842629782199314479206289688707392427480425159604449450041696502355573462848670950255969348904512762766591332466390199458269482923134668372296082109035522661367499703712948752195724011391924073532040826191300202857332701960827834857102973190566594839470655728728090928010614519703606710633765584496937128790798071267731280282675752365210657568349488521857626932265173975125506061362793542897483939018477962318081114178816947203621738651551238468610156762172887650728457479621914673380004990740930287812739477869976134920747696340455367846215991343843533636133408261471163098714064111316598688472544046420050816815913740278264469933324619030260421531858445415201735854531558743594502018012315030673509068200454597510088434354798228776563414396840026375693678112284593482041237711906211817392291310457028148702138647918602595370040701999106643192562533261573893528226640045835146414142180676913321950922693578526551655168740775473283645477122490707747059057615804981962434206829844326037936986013874197280761377374186180692234360502710184461025278191813820223865199971300459522762292697922332862019752917167460764242075248785213438769152442428401216496413145241957486259210767690855113614570007561281903429679345912103691758890526616293458247714944527514370695879430139224590685806488190455186237845204177616372233076968836254164339515144457566803743999103019414150955593716917196512838903688235635939172419315940735388776070991071696599703620469206362408046688156235741692525840787179179116964043903431717012510930818788270412154587968278372783837378684981412954210247706102322843454053905937943118347596574505009719868899541365400570602759076711314761319177888153904340123028012295828101730935276691411462820425829372159489314670349131736423227047080033568788741709117840545321237625158870484122907713921021160364828156589044064723209938381028176023983896211940554667310775923112759937030222657776795329189061758928024132718193523413708721062338349760919510910534800702715772043617482747584264004339765065636600225661724239997126897095992969854442881218014913292106702159160331722844594000742169951978896318855403105002005854446746949014770809956659723753850812849041799367518864143272970950967213120413961080843822297658416312841073908586293746991757718452385293044836498217826392217157459178300704987638464364137550280439718042134651017168780882288572575401698973280102674464106727884711775970531594905606813064839963890488486197604840012288415226167771717467093902082992142716374854780881944319718574869717016478000314384729088677973556193612062704593937482156548350874789615874837095457016816068595291153336735951684991501964203010395321010671149548834585027288539149519362422511558234713446528166732278125153383360800269527339652717583356821660831708479952014813278145884413760002802587761689221640909144723881833586203103004801321551830383173627553654854024027291144214918192127967917804771481722892571597096127831686488323688714999170936547318084693123894071743661011193196333414480380921134730269136234016199215776256733567702644195164255630754336623228196748783770487569758136178818289491423224948112998751260353644107532468904177290049910728879946805262261771448702126051107957870249253955391782847221362161799470983327290238019641349895333251344404625593868808837493855025889144042452832651338064501451059545592903136831268365710482221055356422579858720670236160094181039343136528400963797504366907369594039092831247065083242614750715886454529996995915316457529285465308311241441753915366550214624792999403590206798891464623978426478209197096711330992295025973773698648688307620841058851690217254631687330946579961484410756237789655091946825617309620178503123923254535148187746754093438079668736765388112432534712833972662055358681769371332227752984070498564521748533031809270631668934156929872388050343040502578840418197457474773772826274925133934938643528815061999498425072554503835141924112297327858304489930251691116932033583410330998607714008782924642089742572632942379354325518890020845930208044783407919622184622593628068686633152719664308143283427510371840154844017123379926372223263391169788351165330493649929955618636428988494054287458203466257098169907423290446624147103083547030397634975217910831245914919086761740924885934722167938355247143242856581529919961535055785446270720093625933647514094325792759434711804771469038340924607360641790753656432171700068976896695787212898036458348906036499974512533567521746737619537449076767885892360589020594825556185973588615663330241207577225077196798732083663607584893358423995961086726807432002062391623340620039848799249349789766851436809042002521449822617487734166137965438000380097904895377486027220372349748463697199707353533320750691248759127877301121410137853297518900661873266969995286812340434451196654598577839636762134590205942216235048313290475458913534783659374039938699023367040428330366670498301746214621894969229556561378631159961316457202996946003779922193978663336557935959208876752179052431730594738702323962310518781726255297260944404915005513245272736203679131603364134966016819018481229568476243505536437987184250898847531964173560062881580286866991338035227119898570684677956336756420054200237401295380167645382396745236624222353123471979640339955613988617925030593298308526307586723755158332068915467556518908620578799566702836810381142548528661887557875856441023183096086595584918753269536003774777712220791485545080263989867660790216667124724781830563345628323015370535908019602963003600895463208439388272278668728294347583328621810736675382924501026606721417307293725841288947062858660308174682172855198703598382309110822409157217302266693792849683893738029668074852000827065455311749111559862363254559197132859379162528405814716635303071893436499389434503169021180860963491973345637945522419392284936057644475393483350629314971292614131650648074222407341378009162096177466141317006011300778692317688909685807209545856063284813638883355107251717695987519237061283241456946540585345148306131523502922632129713878415112046582132701854537134961433798845065904359861099510886603309948512001363896582178850907193754580919128268214736577490136721741648531619466036245024048390147782255906355277740681507143961492486489664420095662134212491994578766795456909676766264920966985825101762358846701615280879092967212425892140686813136912579747179591748440930272135701052829342293842764039830248639484707772217856595818249790728120516605060135375246381015591792808906214790411052865841457544270179428736087809216409984514217909886397832584933509209889969843349287910590102278557985296554850516339693202236931950631055497431510448362013247365701827818008595198569849206605911466205368735104378979967670141054841047368456126921622438003579718893402105767716299980632942533844169587391570944081500335015123759074719255387134752503759311116413251022794126726687881851513310816925928807806572393658671680718555419347672922947666674181737051683476039709356971036844042228161085370025665769331667932585210800646619486246536864020304402396935406817460883429026933469988356456584952022473416606644734371718697796598404752649369360567632885088155582934305572023007025500202705544359305638490197985383150026290917785231220958595434577950355195851429901140742499557841269856969640885968447893987671011230190306257571223825222533390717265189847369132687233300685189137183849803793282910999361452179107817115708754038732567698574617173400629253132225028541698970595954345316540224508385011089038603175663372964230348679599469270094688580418212036170701947257095686148223572112253834751788832437715029183763466697471755672658610268610078405215069851652410693621270984898762786934773008542932996589616091544191923406297638967943141655191729855224853441613510989714462781847552001430592240352382342780715745905956822990697863119832154317936898932247219734888473118089038767605271772949823373907123108345268410515960474650398945945602344615109372515918199172408120366677524155857047255298882659850021657525696264149918188776499686285847911671937777626887893497397308552099360325825209508779390583870047377129975527259067899788373389563440176824183376623928684502746899187201493961583171789767151931946362214630379562243624535902648144129693898387294797169437593139162268146180159361281976766607656624787211070199709128616411853412002197589195064470025623699622799291282667652903894507037738017466568957643628269511177665182089978461634048636368880090181036993462708785133330984956184319264394457383190818718862829172186907654726539305603549819768841025088935844545506330468571351640924745105960994972477539734739885300902216406107226067039700737141876066115821813887132838095769317609775126523505009202503375006177184872241880473958859146621660505927359587980116027170819342301672640595120971775530466377532711859116529361119182626265509344235978550657492582521705673172603463030704876785034373391851095865822846465305315961229646935287862120843390780660054539056627999555583070155394882691462057594666135296490346549793096341537169463683061053992717748298187681216895297786198427222570593116512639270156708822540274411858963229463167519165479307543275987322610148771224273400337953302520627330697204190247179508169307152695959867385896292879469857072429815262526044780328192519998012831138774608579332411211167565272718246683581670298217581638396209243777892085175291056711385057975860360638258497672599940741373325641745314110004230123836801433085426993681610170205400766984419766966028823788568278345810852999137709821577539991848373517649310417062555790425142875638636123149738135708947325057994647200899305563715807391341044388109058481800660208145295867815446548586434332383623742951616132578626512437108553990381845783029803841170999195352508019384375931525846065399101251725947082536700231732082056554271704834887960451830634559977047669153028565391295618053366862390440214264658349400537824617292648489457786679354416240986061099375909361907269281237433179962843858365930558720012713408893087615515619176702401907984461424937672818526020837112476456421110989701452296216636461216472719953694271648595543112392850941236915548981008667406827773284188317346768976113681645161912823903227607879257803582209337978370208540029846284155204635986274380364079504033895956334755295167087572913687950959851448677384416501274075066368967659752055821730915506496402060711723080490625663445544914355416972426245099300776007251122478278789494618504249477318724886684799166847124614609132280135947999297546730636268600791579081809720770091498133205644013247079744147129406548367312617746914900228802966342249372718297177942825612966295585417034960572646454613884060135723436210488562830377288357332087637382390366077630923399961374619432394670402464231292924297116249362353858897476260977471216869095268730260064405573393040316425065755476284384448417829166760770442755913273941451300059741847737630982641219158730907658103965213331151553145133142014464748630321390441023597437744418922278547608041387851587944913319481397700941804652750530657525397660751051301391889226512237340568629032558094469637869916176687784339156053205064788376652525454891021343112690381240113698460346928567631494553261071069753961674669487067311340660409459124681485996981911501026451077454681240300117061627823122617364304072367695523642344516898401080301330402968023943628136824489597575422871605759582843055021329576546176747388698114245569629419746317936043191302860332977482408324193324064371443036269506100636112618749231208990890009039127970177618648051429300650985753200893887815342930535017707395398119999801449612119246212435080038251846020545865209424067800594389569719391975960555124769073013357217945352472207309520001139443557593846999225790256221813881136302936773962054736858031832968585947528357995997782093579193754239893934632675268945681405393469022852315541154759954882937841466274964422205735158371714691333364554449153875125657757733455091243800752234838533991593350824463870044723612970500107857621076026866686141446182097691891062988304399499675958792793913048033292946397335247887696025290607803696584756780952490603035528219206984727667713813427676954975766063556394405419847360112778134404447292691941714055716963485385470990253439772354211327495996105500987253648723246610159657191474797748852755883635873235824247615681412811542805854753162841230251700490042805671847393649146953272321473851080710030290551091891192465089136374196659181557873867303166593270300680514829949083421534868098188342806121411455536894861251398885941572105940138919912820855982418269354519965062967465042547729506058778112890752666008995144085968622782321194014532320158302959929606342776296683318612893836305164444620890155999258769013131907139187920341645538644999489821513447440576966776963874509355257887491286634350826156860657468378835387227508531086013977870273177978472637423152079380341813953776444274547653221954706546880458012929868081144600000221264617179399911696234385946623853170074774646114145478122660663292173798812383296998277226092535153123020371071883410633605587560919346778775838583827377216301019418054859012373569643095459529965681594497662691522586302774930979917940556604872204729381414712479577734996253610552742785966408615313634820398431501679614709304971928313080355250373306189179978381909726406926108547322284040882915855662981039389358710306764411118863593301072345679268552348985669698225057297004355082069545060143099151965344224821414617994319048437769475640985919318829223970446335697559711233309710882840105167537501818931050270968024657319759289461625610013163816275911258545422973544085015156531728291580718943885496932686136826598025082652827022702614173001823723335427286506352318988910925439468927783244909954682064300441479942901918063380237174421368934748638422193414196384430629201395409052663697579965711417423791379052281454999484902495135529332945025141414562825469609522120067856068711335870304380841020766947660403620497228067841380465009042629132519647535858812893427963580849024980351201844724359616534275895490640996210191252912213289509666555963662235680292100842805982128369952852909874237003118421282919620289274825436905656973277818546857959046960611639367460764968111702188614821244125933735853546491482361481448748178085742381781854620101360655834776472797626113418029709503546957735383611231469501167077436073450896390585093645228101146181610257886306156535082222832926846140268319663818589276151990826570264090342214177960234459969629897929257986392340868409227925836110135813786773012487191830285004773566073021127260941074727159022856069247994114832833699708756091912461097623826417531804831226823518972559935225389370050964765719407687637007239906839768404858266158463276004119012568450299956653408694084635788567229684002547421212408920378691986994936450827881111454411011708145663853355038349632219583361912657971591505384803745114672919202769661136870874464562084015476405906147019233976819365028337232606520800202898309408922885747704532459788697804679226610885916717615243283613094556164341129550343092402382605442047773668363122136420690906085145063332778551124715776344214344330366986503009220674077553934123773310357060977299671328053032868109208824666511713717352610108775968602988778236879711933540100172836692074819529495184310396951015903846715368005664042817507090360200658561288656630245580156190343793824926227647058627063099648707964619434905480377175617321701332277029636177275244222475914298533020922334176015237396867504142246120744690598471364557724481218601120095232799817122833247341418614693019115702297533571176719949245311702784428527511584782184748256102677174811940421341980391759013818788053637469578012991974187411836323615638610581234335013173133612774735639621958249245128164416366976898873990076738458037738102705107125517318408509426879971367739381795691904428812494293055479431432166872234486655367567106621028554920728299436511621435079210789797941510929242707782829332807500296567686802830507092677957445885180918787121076212535444473145153495470183264864749670545773594069511311689218737855750391430073228241321580089680807137522909534427068144895920373272903847842836717736870220951449320569133800070882150669605178996847787120944869390782516078378395387863343008266468073445053697395824180450027035196989539341238728038650872096641856132171746374724908711823808547797050999119231933958943257073229843810575072849973506892521114586985917347811233676075043843212703890517692565409084566798420318066083727750579523357474934760920368734596242335126461688582035911048451497826438437449523857920441481779832671217125511815837734548975776141368774557869670299281857738390686005687531853857680258624455917421426688072770545259855035384962816934019059378429777483652411053570113259088760471858968345508795068679500430893942518610179110631110782543838866371323361983378481642230255846619290789934796243725513552882564874110032818294010151689083768236203850817476511733630174829682281780732110115349223026000787446581875401576982230742359878192836621562254209548196653576210166574508952597462003304773301068786200877851774443618925279871681259319590927668827941403954374495673465314606323177919944344401743570455848617891638985415949459482394913367347089743671487918028969387350094021435742061038725813111422060404580582379792232741425578283363791464830417821528734300001854924612336575495062005978123523557589809455721545128853270154508983627164515465302963102839140908141047866198397814382262032559474312704813549150096649365446576044462022685214218713371606688019412671316399535573826252532001559890084953487241314429978306677792990678205030525502170190655394588594666090110600401284562696605117394630633872290070090203354874781711613387542625645478032562300312679769134714082105093117473056436959927928031867367770274741914005337091418341641497003147960673027300128469531846952563589949239958030607953286266068351775197520316161629420985270918513495524756526027967180809529866421208313321763870055557685404523974651034421595353612270212210404263814205572118766937759065375949752226622668623788954520326467897862409293324073743476812956578261972210921255626971741320394548301690037459814616757837929174912187792001035192957454499703418233424500345988748184016739374226183541120596858075038759380332518112422586708343289774821428864985561516680418876992125135409455309798463994720745931344396458947829708747154175568202393574914867162111070353600923738699979263011029685166293945980335084554768578774781685177417600881096428657983533788978033224322698782713758857258368008102386678059623977790423623528452736159129145125503290854241149106459518375345410191298724081187939248330653730884558184899163693635998855531358053565719307206047253018701781813129477407536995420521590704065076381458996902641537388067277074608530742920044597785436604254329095426925774249276248870502650066886842394555306002713900436711688405200880946328829509068511812658513782836275013325358409726471728287034789083331107269905251408101123832559743624121460848212153495302757628672607303780223698584610915740553735172772838573537352354226307758912928950720407016036966657923967304854842360649198931879692556307544812103815899095902120232867734249870658890870563164946183632699981338943621663881653887553098540453513385517102829713757110889088565780478058534132903983878946303362267298107391882330249123844884615215635323765206674271190759525809547895922192607212942054674922786137130092175206100714335055874376430726296038000323814419345261962820739944844679893016472622114040462002679764476650993993804041323134780214958734367402640016395785005352016477744621983941455462867980102053505355821908562829120032262464117514087506557049705449886128323338784189878443978249599295251748979224275661228071610534411176057651933057180521983591182744389927992919620394224738294330125805838465133435725809731825273288525362151002004035779441046321625544980353398779272463469566292820119811319887557018845245353266076540504968885480669743466502674139304465447935189945904650714032579985393100373395567631506330859584089991135855431956650467848865669998872555418978085790952040623692421949403223253883865628117387016552903447004445484153206418182053322932753347329267032708164654786916256578137987231177810876697441888872605303679346093118057263735398153342237014189974081321603670487100823841147815184088115231607905543462540060460454838284226835325773826012755007540067085714259149629522781354807449327606293052598396405210725765490061785711615851476120121460978652981193378274841873537256953610815765757363709542566176547708622112905472879294704940377390528082723876060063585092366783132380865766866844813963265813667506564156339979066888983265474065444037425749950635094639756096640365245039419896221844154927752823050350448782362388714234902395911348090325458740954332990155133377811954324508232369177283424995663134111625544761361480514674939595800120105592758332637742851719456744077923559477653573558713143292783343281878301192289291950105965216395869103189460069498647356631458500418641576506816001902952406898122872230736667314466033378648952284760506854382032735158522479401751318453654786282038220742957587403729367057403303424768015951425175816627084962710747575664871584996935875634315429095072741119044213274430795782479536241071226545633751824873207919742208610744910515712361412505034890562443327265972628120503789357564556738201495499165368342918793163690758204870017797621606252761063998562354053561613964145942612052965067674800858736721094929194654125246397700788097706207884953358839425809334977038774184211165053559990113300797487004758965798439222206897805020837206267201695388503042680227410372154934209996781496581914529333113061787457450653392391005391566859833703688999830891213566905209783725922600153066109948109038916363035427031178107570908627148867845582710309761259880667728625801246312366412448247053475255914207624172434437774394016841108030080165163646832186487289398244484517038782978529584976744612000055935791297221914336823515690434348936094285625940013273544002165098825938913434513702947801728841636538432115098913185554247126098343683778805811780203140442677473492757879099229937032083482690943929615562468629678327212450478938199710376734785121187800697213941727355326582828778889286519109515479192941547832904508438470038133580590845390262518866640899782244428063103551689027261982520418250756330259676603377288308368746241101047339613704005325753453135113570198797579029427871271957058428246808157238222270138083779259638357604698707308029347222307065067504686954539065425130324546280976971889346632538907085780578718437991242231789350673119996534410341921604971085189106695245722563332146029955932985952611880312063216985619932511882296423195448516197119768272041039186191229485417299334635537031026417990855147201659497827835187831782166194483629595947235658034954792191455821651565385457529752731754291469368566956209020700410738503479289531862444348916319814762602732290819300205369543726119226757690385019398631991488393297656057227449286132014563111256225275974999551584470183977542157988902384672726973265352922574951221033818684463144892750618925524628410057575379612172815127968813474610360237470297258160544359073896678074679030467283061040196607334111372549179825300082495530156123138033410680715740303903699283734873226246892275670971052767716943571323734538031152863924212139876820642609803286088663229211187392462224458488038758124364200845709889678177096088971877985850286468395418710937648370306208375142177457614028579054329749794204573548476679401337639825430588050430617574534668414493804824359378251778409819474004737807469709408049155879717753316167927103582453163682928285679333839851357790136659907655972002674924636593724758772589820742905368533013288932903686667469044395171752457049177008147789385891812852916102633310459804754348160393713848595453412614394330655604439927579831647577902840684997993207580821307459002723724772616253759785911978942681089797609342438787568537366910876881659416802920395225100418529446060530856911272695768368918944442201149577224931847794730172294359247486156018638214819641046086434800077607310373926848578169992802409959067179355371419825303944663406617140141529174601202064453705093156944125973981322272567565917808273634725174958538292853559755807497088346406468007815966429320907139641951214527280992065071111281451136715434307178290431437052916896363904551969851367364447128187778528151163075336030690542262085157564147164339326813756428429536188786471293810592783791091008603666742819857009508302814836457350638041357592191584441584745444738747186806908918124373479589656065468306174293385655695059688880074047189028615663319046445326007541214947073206757329881287106371477438044682526245879799183808861565240917290286636367702907735376078871887050893379363437735602994396103209499063956793228161024256679161547557462546245206375040494916203688386370346499955835062075957831365766392251445103185043640407594550764845352094658901242464469883845824862867797243863753276300349989307799691909054649662616950430100529053546546536087801478788972215703775881472686248703958097313857167674096190939772513022758462495849872615864165677700318736199483533280406245916311396732699645665097659695624114161963523307036252309453861543110237066859407691125601690552315808791406179202892554674080764700340311076397147504423317587526573735857362291429023521782569825653229666692692978839182589778951044620710820323181051394484194802140266680943230925373471137236673588411119688602121897384798834947449801671783461416948272149372600762506319366553312699756380829782550959376969637587937353287445887326316740270278697003819378761071064025110729961487975655152985377840854064603072733207551499129828221816178296005700977059135908518242591402065621893467647028511404206480125023514002598574827832549798187885408818024376197238940008072083031962330508532766660840019076983406510024928751620608834541733373802220180597646444645208391456663161924038956992326868617982599950819664527172372185593030257447675962282724938431288799260280154686373078691905433139816360250900518541768502314914413736279967298749640620237647040663277754703478454530399670147394110568354972595259129690023679027219740016524892800318735817348384006249334235837244709580762801675175320866879563807199209586689152821886066103442821594852122803199625664372077908960877796636406129429805232338996775863581427524024515876053594309761638197173425133888394903472253734639186465798567547479643578626514838241100607404203744831267653953057865281376484484940054289643292799510318922557937044030452403272625276284433414796913207591726509045564030597598882626518360123694694225726795302271324695557021558149235209905688612365749847413269836870600416159649269024112693913932291018554898009588246525484647529107661914739489747705976744806251419461125375438885439880295983779429100590378238359927620117060134285573628926850089056934481471012167121103407222496340527902274392722632609617897510511908643102905558281969598179783357480278820744122071829332124779405082367860281805971561870416045568355850125451711888126664110137554738538135076755262992016870433694745895548348323823707956949688737420374007972716893066199752031916228879514954202054396417420653907046289641910967412087834298035278605699502406722891545423669893091517953625370210650874555639067374394548577341976535776849306265225892275344414049735419998934116692329367370530688169455817217639819665154691648112591019032869101783298089424484685567854242788688330428671651906687911646501664740949814058366563534237626647089359258935350228895350933049132326130998289832087281494783756229564101131551004150835832501297582750670554385680317532376144136564262035234890649516459297683748821664363137223872600538402456091355809796156404904187256855656951941844061890282525866590211771820985206157290556663245428616570943413941549727348070309259879863078881486652381767500012404791806695378135917211465541207323025366693375187881814678981837358895723068391805896813325327695094607722866542128781179080936422361932532678180740080817571969671434756191267670528362025478730236886622471535651384545005200829896951986810446298639846058930526102328969761082981378769567739796110665673835711653700524494115446730318588809620567425591173249322145951781177556864607493927755405471135902694963832285616689491458387777326623360423745958923934503899216357179430935259469609540838111368459552729900773166548881440102087486443713358330577015831984672044891553000858633861473570624030360518894838796061480493630100094875166195740410107116330306936288097363924644763192728665121781037192812819490414603231586323653385814268654405997788540779493330953191973890019883329947395181744849580017379037597689174538199841546367988134248797481492595798677068300117250577712235269992947234628470751446741636899265904386439537715723716487848662402331556454840350892901805467543055892557919167648687013320860441067456077956581350954801695660341165374648563435568503044089133139736325179079777864320355244267458447317353213829484235822931481963593790022960602327886669919388471347303319172834614449882558971943513849520438743687990597610396399734689811425787185902852993635080544711454187865252657008888206736414606216142035474729782323472010023653675666183220693816630269110163963522131700523144101144813829380291014195028270776012861357875606317989505869115140559012637941351900826576984465937870317131397204430885108611981975477894693545096200398305737753672912034457383730281207709818561795891824520492704581840404941848396136670785661090254060905918680281986170137702700899503916886953656748025290332955786707394555660281053016939370190416700458241761184658112573559738424525809444087628645871234762561175046062355272238618595439296113804764277525317824087551349746190514084300380822224121157869884510848372606958227004101282188963142537900554021770096802408659317228699903743423352941454638571470622535774229350003769055975444481667409980288718444457004963937154641472737634870703372349362198696966623610113041817136833337566140782110519918769813381138358072282186019808469315256293875629464455279558403408266595155322524428123410534653662726371749869834822614381317724632177760895322052137612356894810427883013015314875338434107139075848774169774802788584553482393991075384617331975107410999600527892406698673333841126710199189325292608133682050281820866026629098280300814764872124768742500030840619721096943175611132616046911540902869669500422208264213723233118741477500066596879699180138078647859422418986966840925861049679064513947408718268352580287122006106477119882085545718802050452868585991338153019242530390434486559238469638793476494438222341929392230239620508501315760166796946404531656575197027322508059353375600986825492549492484395613682837622697213305782959506695583926217931203586470458483921812394265358737265847801141579016306965379690610996639151284465290519259529076133291872355474985906360840661664992473058588969620631896568488740577801606981721735355272997108069107555669237859075870520597778632112609550785856196594771408083982641497485087763973377881157855523809691588980149975105733927073783028601349913603242805669370710873190070376489732764952408487685124538840589415907003194638446200496880705842244832542955040896825279350333921031415255318957389435612744094615034535904544358543528788634573120128155018415311777820444186485612217574559679063903950534168815749138491569318905425453379775794750043241104868134033047614809474447707663389394805039285774940561402161606838096376076413216272279445032277274390224000835895758937787320297485281835606320051329624034631875810447038363067733231758712883960705478513464812034390549548263907048233556153153602215900027942307031368440958984177341035174278749620919579036804268339159134088560455828636610603648004848342531151177778890582331794730090362278066759882320619333284319778764853716363760540686068927697500455053683371829216503192123619941927071427343193639951754812684283830371765973620336170865466601676657436998109095568229983136985698944866682936801415378683818981584214460414712489119869350776169269271391607463176369210986847652574105964769043370206283032921876113213867168039086641961918227815158075517178937338055518053613582710376049534107842839966661024737771126844126801050205406653469598666360813133828082392028414922064854202016157021548813414818309648289713359510957384857879167689518270172043370024918678719187879898043228293403837279478046477975732671198218954035193620602695483142338124830471034090843332854002416594830135653095631406094206473055069274928667838517460374792067744200062632364550529642211129817901953724584502249226134708731511438517093686703508599331636560087876770323671309400912888133888203338443177646021941770263880293044516199861117372548372137570852760923820388384398334969094076871355136523786802726973445500303807153517648270368653071958639079436516203016719048261600353291252315341770051061249661213719768405804359936441369998337556886201054645679556019706180151967863261345632253233966218735887740564482909950492655935756579975869563124903100971700249446234578537039062217795720005611052883786860545318200569169726378947727139942227364579408728166219752253596315720316743650153980673189422405787766465614235303756859633569190860903632355728241570135282542617073708527631381868336398298078651527790121774898428117547372607375709961386189816611362848528161964014163971718663874851573943428843306622621130206622004156082646135605744073360802280765673369155045191623501472265737860599504577283320459622551335141357117407779345867828806790395674643750698055215454245315951519326300520933422178577100821389501199498194395188537982020670453398172286893429159937688842627828761619717953327526363564326560067701670757967228965763319434398411411432912847748835794500921183501813003349357909919984604912099024644367706656417498107744017973135282825248096950843043995500285081633518799701770322261274141417975431088243878690516924077540870258119195392127837798429316636868634977083044806997312316014736988394805670300612636202412976061372774330218965291936920923400619332432730686826913648621265985771549874508624602183941512746535404190369060405171822573386158256295767310004772880487125161968781030215495897423786054763741829537578428731310987796412536720867318771620214537992431515948113311840297470466831943533270546351309099498394827779423089857946529591786910069871112860703192437486813005168207787059875934555738346445746297802431672472866373576676666876953424278202592276114163323399161078304935791300987819724356733751364225311743297398418248480554993214532638650870063082568948438368943685309478312526495634383370430340767521592259346994484002051296029084042116955322832641516300911206079651796059272511058801367807635361751240338552514315701055156726793009016848549823459950593621925483503778026372222687146672765664804576054610492659296434642485001319946679422172887565673965535497195271205365355427546794851868631538135266556359874342994907185504800393124216189523821341829102322753865824760455173015237155068227249352329138693491663621353651375702150424414638887000807590833127166082803993375219938418401396496435427871166289304298661487127109578876026094025369701409360220880049013783533193833274495543554312212033596986464706833980199732796560352030587583160961333247141338982356104851528588975399049031259416670570548163701192667317007585176202176404616096406542010886078802757619113013240188074075632368447306927864945054113353076854919062056035261131635813463195911982048553044702224259013271895928485864416477638846416054812315082734666846201422276637210077406997041352139605375717974697456864134022105723163197808809963750827429255134784173284111895695622015596227520506529090375560255292004975530166392332277180947170955725987301356592681919824174983573462228981424636745271969823406579381396443571694317725336957537604192326164036010368016187702634271918047653186943591507231089592093778133645194112621851020157388646317336400564288048191487573188949021901969261347578240539011008787360052343069728753512119248589047753381073900945137938338165042049238498809348043512733117814239427782650091873459800890669720370700840406347748768474384943394310661631687372725008997723847031955396698874225059683801850127558135328092793704226041480484308322249076532937582854556198360609858284185120140654504388317760692326242120865629656035154508425982132878612276223374277250860790893033782593909876946685749165388724265650328501379685693475308198953861908569184651678062478824485176779938193120428751267321525485166047506899517357034086662894915939691628770686818297652164683340378821881944534364902349440561290892248599565589143400582797625651370957513886111871648973028479782809125759878848680942366835101582660495690389321854330385835362394976638719963429577609206909573212410725845094244441478441449812282408832268284077677559446539879705867296073826583504687761230600484203120779018161522743286910380714301531748805544280002959868219170415401119488977194870011708654107189488196995127274165071897017772172839090862573299703401675831941151042588401649601884896361330177116036223769715410418303127251157584365988002974801473709525969498288700058242009065412304360018728188632470030865881826575127309605369068817374292996384832220547453505052276606876131791302756517176929260927011513109779057708906273033906151899251029375068733103776757327850751938939418323129278972980895837643100477584725111200678002191038750214387509655868998167461781487636831936560995389206992377508259969815860118355253014633154012178564571467069440855928722216285304705303680985655919856643856494782047281453525967643070646849248840323099254619385997010504654355788792306804347978228511618044157179493061277062052884927647099168883069740406373631683813922354049811070047981070077648119604340307330265574254977796619528600733572941953344694197462133372790740241736475944371850245723693292420024008676870878805797063238263470357035650727375535058471736170269853260858857513699300052269894764813907759528087874858696542894180485477075232974401972608343475984466766762672811732464007663119251839191685711445011758917723852784937813324913163483403922230690359161166633028162815350399941732534512228124724606063001798651731224193816364730936605948330175993875183202649981904110710292208636711473457584687304234411979998069295248746236653001122201937925669854346493706204219850288559065927689008417920746114100257522009993236393156665426105491167537659403265870334046250437966338924666837955022894975510781225763420466402116535647477298882368891904867521030073039165901228274187483469512204589998996269447241742779412675441542375699129493670109108670670641436569331180281235868290370602539588710552712864978736384513042921514192559970103632267298058520241793798750727786195232957162070547353592516377804632286970202500266844865605349332147707894598134800511500350063960058351935903408003661968027792050174326401462969011605711748536299434851479848344442252665784925654858734837820797756610384822934107276507791770067929116103727944777202013104176441651176821130727819675970095472859995930270484225322523277917780427779144264817287675164005040372079072447368471057550295584945624339226281691887084560820029551486208687448441570039126734792454477944591361248070327755806440733543726815358309818893215884268383482987551612221012713960384987032302599087923523559738803074249087394820772956832527805723359383569566859970002889339179205919965707156852237960208830521714395561348118911225191043307963645652678834133133079425508076421948145987875241753493803897728752458278979144710584983211337643710530379685869542848990884556386967943565565636896593523114594375783724364304727171141236343632309942260751457466041291012326474230561857844278107673709098732687837204209516097609992442366383351401221782175578389981829042107216295377069143140688484854414768722855910900154897214974370658411429851680894595587256445903218053274310131094831770129779310978163987776084394841542444425514818235066741310585432649097168219007369035844138338677111029229190851043487747113479324056468454076443462492447923317351381473966512730263602542787530330673110826394951255538676936900288216044878722485711040130280587129167877029559758984214126809026142567555899977594841880825183574948959347443883787075743806120559504661686755653573134020374263109594912360946457484333832120477529002666518611943884169342388347171109569463211814679844784534966718479256079728388525565266572980710480154837461880457123583318488812071654864200415262156740517354993918406688174713405217824358887942142170446943500118145043892548860636746390505034799513315195655938673004471563018126528513397823611183310296494550108308983813215009176955323163534264215090765185602190414232884012666802477789470913077518016988137921018604734853198704261461773131799885102142151835082052862702072430922871348068077951986608168966118535615507464227929727341984989861760975624116779447613585554173148131169788183780233705550638178500660942438568028327302786892173733587668311904027466821072601550525630095500673446600260800980665244851104876953737604356242055781849160480434251841638186258159568782388311128454153021730156769438032103460204949779658242093021246643722687614935321450167056673311500016858208932439008990247428203184963724940283385498935081331935639784649345952398112061102525572851808261727454312283343959976755065588883195347974123594586591975337936098933475463486363823414477892499206451020283682619408494187914262000650111556398622929863295055218358201505343493981930822982404809266484287627762189158809734034886754881729031047214215912746575826507669697080007577346248410296097015679218478206572284325532089025222576430136829670664285437771899051719386162392570429926822090717494922160947164800878974561063749279387577052323899581310956082452306554616707562073488394987342840184821792105805997913796760444834272248811624256388430334006672085475160320655020802070965715261054736885436157524272425378668615180261295661635261229658289800441341160910055191194269221430887289062038126937314596297438230026476522186816997220644953091124992562435428459660661548108975743135264681916524504420941336528078939937523098382886225526769495940740089778528269351528322341663566990646037855140361732029246267465969874293190914438512496384075622486354191140756916483492932887049539882706760397525613107289479826035494612815956230813219905276632863918293605709378880924243661950106737340911809674502488611966334298201322035559629259943545181916481262084165381136215346524457754816891172953195744799209984580868869802405959224438563323408369036323523096151722274441932460380007247533026382110609953730352946108314922562112873874138012058564712560154949495757205810570982254660913044944566772572344624324684896703106653634088965508707399315189769178905753927000744339321766548512905551734534836562043921820828746699067043540635535270650676756229156029927417191690967505764866103433688743146481683849807171917544228130954212271193580122728614844642184191723509611746983002795955662648402659502921653593159952222463139374917776641217830187288975874399594948579084465670610599823210360501102929823809700941388244371758405376694815708034316668158791216415926183557049628904298433817317145379137936211705334949307243881649080581476952470727931291984891111836797719242046327983610315474069685355799168010993754859043456735313271116406921665307118983638526778552782359718765994967345756335781158224293957757737484471310728472094977040464486763254472323292707231623119285560833874962144593754716052947536046455887041906655960306522519206168545406221634177529657741433338341553251088596609394955827304444975176506478789403536773631128440917573039688085265117300197524178046461885166149319714137150652451600581973940250389537207424492628780638388368941161247470530748387231112429536062569437095929269978036223749950901736377108153154806357578901111194166081975586211498724663865760594692864797715288043241076393168542818564262157262664501344778698750602667347885065695066242171579415877724707963211728118031089986891967975724392335573332221301472304362026865370703435020760786969698319866260575521603333466726898291585232717113891217933720049818142950596050987927919485344733987213267909068132610160393157426724692560799592278765550501271391495831078913703018042146658074280883367317375018347071016890236841551325175787587503974978699513674754694700108812276653231212369840331408329487353925141247434600767769356415588503563492745761538024836518884402369266274834683609696703121463350558064982216049168517540695908118729667311111433007104825519000133984010728694499646550116101982250455534220914242882409733678942547518000310703046889269878392713300229255585714007250732721089864617994434239388008138969295802514425747911756067597311679379326290627504963321395836803466317468317941673702065439421657927466955644328213184019793373864398013709968219188234259186450863036147679686746493739431702326849803192635533865890914650877523628876502930222487105949642771944271549241776175427638209722345755868455554212042809400980406717532888282334499237842387428686847854390522671588278544207521747696970482106115320669809795394685049478610157675685313023061195816685589057440559437686155501398744923044321980393019232098249134196404724947376818083109780277494748488176349357889422224604041836384884462152183638985122300586121525230305816630851586993706851312270221051179127551064857339334352484739134257309069772206864668795879313294141309142852886574825484438368549454791712434521781366039586149532244098201018803378503822452833042708468104953545080596221280295603655831325350853160814231355624727933373829359072499836812265094584161835482163721749497261218525884671426479184639475103813950262193038848313310591900725289956095430189487351456554115808154640884510191648029355303351010194905696061456337980985614576726787961615600665996295220852213648438955035481843091678827577678766863288013341681041010216855292918429250965306588137595425208603688080133310148302013857140189189264332861853615461579958409825716110277376570935764214883937924737210902576534740674789168143145745186730612295542164702381609468522127831019187806295987625329387182802953886577398657248088822666979665694574337948805155299417844986553158719852818560251033803638978376976248948227992277243589896271363488171038500444175451969497758065095333233141986621581785565659478417850394990697787570913425630932009127627936148534617456558599522903998287009551758621997596491820254773474056677598975209521153270787035588241869930462919546152691043478133140721790639249105544013218288444243367454850019102683212018301401173419922115962553633508735621275255611910197826327350671199058706015653124209730539756358935505598120927940820094216129251260295060590172713444331367181987851335598460940166747877791268333728903801445649943256460989729547251656918574449645852981080728379917026877911684392045401765450058138870948707976431257746278202619379260695598514840089774756277797409332939634227179660488228671252418647032036550061794613271422374843841100488002675395126141857548926121648155992387794938829811144353116550832980216473124600288020802504156314090679919438137485195279077318811147303250886332961070119472288890290989956081983764109373002689272715773809164779159940966145956750770982669352131068779817472948944731634036770058551160835835897990442643725773305789699128106036142682875093055820070979226829434761608386491030176476584489437201584680425390452237555889760016084433269342176213684573270346937534972379790421528159756876953898406469686464179099092641355102892290505408335660067099843143963330694659277890840871303266692147173173857758422985060018582506307508765233999548101196514477009483001120253795341200345588627216473673491738912813568399694684782141902326352745765995739317946749950987371345384056051691376709339885201977345101121144804665041099760942369125257989225977511566203702086683578764116046933031866839343924329897777338099051679660986771384959164051785636943130465601322624109473453551004909277116798081225824489849223582394478042827746112115766885915274439525233561026200377505821070526697554165877650455877886562887900606951891329921355121377102426131051640926557338977261451060543271842070829647473658308083282834810871450912857969375774602402363047793375583054946488011108245523332926646112412387741821847864559596976327722949681523395674085566244447547583388696979383350481971259041016307051571601457173471312983235170910437537736850129308088336253532919958130992661072748944349181079121545190889903377915506007971125094989409762260070938340378441690530520217216449674027894533580203375363295195079690775696043405769860208891993053260127510773193558031797898500600914324780839955479218957881417930728589457696059943720836026479023816361773376564859375908820582775036677221206159203314395316444060358299062223101714887481407136915314874562690934351189749361126062749348346571961064146861503931135209424805777570104034409791224799559014780612436004252600813069849989472236672525419663902199019865263297590313791565196800796401333986304707238607579248832799897853425993264633560863088293042810704913204945158522847678430978205094495180121338898645411375342409104871992048905080766318462294638841235336513314149213072528659849405727011840984109988591481302040614325861518013219479154739226506387979180339106894077984253104417593584999747139694346816988140860324907263258473528897956312793678218454891398712353760911150917638433313819747255000531975463110945319554760118842497924671591666845696677259067357206601848262036643164063090863187892966411652493474193276382033372670135506946436030457671978860964495910721507776027054090812799007563564176339334243036806576552665684036860112062377915065954281405161574439862673457480663654045942849807592187219501025518907465757318647684592357394212443397045893628311766067281537052091459916986375642848601981667808353047800714831730186333621326841207007019584560930159180135304349738687031124513430825006343705153401783441263539719842907780922893079900779920007207242681625021311138907768705862513368017175528508182920837265535694494268452376725231436542969248533808221773203993563773891318229421958405843347006100946654104327479582506330470806034206024871513125254576168171583770615309398318902936362910910545592035176297733275367852472299503440745836049320982813874195064496002286704399047419438824225233253002404243747566184707752974891041519031277950659182237263751339582646436192153195284438736440547481184432601549631412909348916177920307611739939298516293437647428931953251825283014547840519105638275137338095398791857582998013499801308795151310570448110798110690957533158748063073893882300003856871395157017872626994145151076841477210312214024301158006850989893902570944488977466135350019770861654314424987608374436438591280044280455717337538137955442652279010497349058362677602148194167776022022225992389387117212816133046271362494789090931374195088213733116150629681808513150782746801698953254256797123806229418679439115473878497081714437106224313418030449612345028433630364267239822887177819498334988137485333045006372991357114347423787676954181807972547422109670178398976753775507496214228131785244158735076029906359757506308575874866647124237204257617893162445817256273133565251210803377378715047513264569539759723605697780310841311292999564152377999742519924845016633330066300162854719475742876606547977793981316234135847142572155957869861325448490517631387963633342030187837704534079761430779109860199890416476911563014196941018202585080449032329912303372629564365331017276001298327517849563169704894768603142949496086450589079557832858311996633571545429204811451041314793637912073290779195842303045654821670951782030588906557510451236402962223864036323955440989225112989765184097571090398863654031932832885769708649167804395901774656918950343449445094535149992289725102099583564924077830845793886967977899478527619193456038458708325647647399418849506017464138039325275195983785619899027652922334910481757225529530322349687241655690345467443665284346540841289985334804847680497774387642550164047993653226743837402551769479255052210407313964165082423911326488946070241971079734228658344763202438911823472003841328981927232082863975088561295046987262468937325094282380959434875210028681131618572945039310351633813645428948718156097100821800242370085469547078552538890878959369956555537431635583544290482696967307065860574097967349778017672147123174503551350874253176956694068511488835152524100918861733327964062031425446362343413592507755607882494615359571495204485877087616698700957686071398961312316494306665726507895380340613387537869254330109285564242101223981067117485403688410241161895788227042565303153492360364704149947910950573147112424638840460333709957571246393198288033115289218427134608419683645579732699435857008641616102688478961398141902108513149751322412934917059562808108796031243243803190205079792748735484652290032029584888963023651380686360089754040337402367434001777034806663864645846449070381719374095576794273838207947085244323828336780605457881243209661830034353236049181967701438297643561435736838265134963404183463883994035510330314610557475272392801851810208752943261710019917213619533198874685124682913850622113253019527736184516991263253290595871665082681540498157289331048915975140780621167666551023121626209529050785173323453139530082722902286751228203980255597455105731719578654039225359158861949687243496936625511728414358199755441807625546378784629383078650874087126942654466481682981397611014383381145675225429795414138523000596981966515031587579723874104329049146156132601031213520912154631218045567275627316318216585676596813463568195993189044097565959615258842151405514669110875214766173951401493197367602907866106730968361151865631739406978106831496779909293124359657744128024508659053727020024144045576824412831732254125490969429638572944955454348027537690930342879015916988296189471223066296888488703982008469682316333549443043493468220945808419084597928184418465089714480945533042848108402733006146219630727391999785852372122604039523454356276998481411826950553248868216718125728450056628360792434716294522574528923615145276267285576438596935239420143555518984700088376332812394025012131697899927813528887727575422518977091159377060549657819735481310813954265449063290370712662311770461641511594687254230159453824403978637266423089940149426818320977114170249639596237040116324483433600933402148298944059371781841702755739353738950026866060695498169340432755018260321114798426782147187085966979274249523819389267506357363888726248828392432038181904103905562195071467186285501907105026357261899156851033362786503854107957745974909692329632330976315837426872880413930745344055579884904655949754901974164836981608329725151880981881824719513474406184866538559964605111089401603835219385490948655381596530946157851045084068834287883282786495996483117088062958714288990894182273501918125922666804068296762171579571778066037324687094781738433301965931562480795217172647716237218423526719582498578901464640195877451278932242873969532454387577283497916588551214222360261383939818729540246869268678105886731301199982550825485612485187137484114824864765871877202517690959860944919075958270220794331795473122809717194579593225134952008954050491362672679094260708116524752573311771650598350032516058381732981744329575925427110088168453215907827131350170989499540268193721419996527902837676662855156345118549452300752329616363861716179113857727843499421728144315168102303250662307465267380306457956110685925153434289982045594938767170332212715273615870569487056610736509201851566270449648147331889615901888260080471950351024463410585461804583960223883983162211796579076727864081304453133222794693775333611219501215223231921567348791898165199778656024548107345784639820541108691669010433399126647016098771740021585803205731028191273126200779594474408221203500064366111507127924285580391412994169673140189955343133332514109625660833322532993080023164833224510522465244183674758508103162828734216249993860409852474685136888461753055130072715739561580442901121805991917672259512242652079946596996799560748677253623959675459251991387681874401426925609335458098914108637931538924952754844373177075150949526174830607805573550286241382585147092249671352282541844302752262144468580035151134411052520269078749124778174920707326795815137663643522307747726190867168853889696947923804844452365137407689314533823006408971057323405759497841018205473241563236650027995897889604291052366076122556672467778909830940016115540876081816773132818117483815378993217569188884268877962173215446178055071376039363511419495934856601742423596817431463970541871270644054154514201329976021547559134012987925878760252815912178194431099180708545814112507779776094481967986533636158280843802189896863754294243669007536910673989190882697763628237860944511202109582909906982119670249116368222349001307570239776941271261701555275290456610388474005606251166511282441186394492732400613075974331384540213057149215394209362406259887887285065829973254191097780195657336381171195094064368723018023575713686890569972102629662136702666331507922105664259035021023827399835976564814332535738697816620217424160051050781521258088173204672916616116266648160353515215927408827811705806486890915436700776925977629821076151545943011600059824831565465136036496408193841846210560525287790015527971962485569394566542777713865157539951268698436258142272926268641847488792972391029494823145757021349141161862670450766358648777355611341042030846078382861113610834868463939468059931866899464941418531851639780573926724808159706397112082138444640761510130871229916372451697823825027831319850515040461138086043373845014023443969454621540047918848837957449243912066010905760197419892666090819600952364287202023637313735300426464134688483420947118109654910670185315254224972377730985014920579209872432659304403110724768263407522225741923496836097552264386460985414922053913904145442610554642838251877627075307659760830579724023213349169793904851023792241799258340078015426051011318722911033948945821384264781827025735617444628755011079876386251248328478984003415958432621963276385467933362374146410874476759100341919813941154034338543054742645875394178137061020026803383659533721977906678025969371741081122574970888558794935660003206356230895320408257546053793470565339426768196267119457986682815121111634830817487054647691131090027779542995758429589613075420978657468044038047144348709292064665661054801671283095056251019264330151869072428016170346645034905681559244480308511354139807397686159228316738690257740234873003878733259393199545342508839044758478517171166883765726752578897611463215339881844460319930393589425875582269127320415378707524963871155379147043611293877890416533487056569822195994576993189995412263614173289598511197680114532804146215461501413552664806260616665776953237141768359207961933038791171824468104933338802867514191818901678899596064914417153009798545165228635246311464153508906195152705523862638302930060495898382592348211627704053624313507937266594271090310175186131124333800166238208349259215595525728401693164050571779099080702379170488039071013750877568607012304787247890104151630602981462451858282093102316986351808538377131087389407978352896909468196087057583808381116626428147949087334844204392940481356371886141704118181026190764876760067388543800033108256244713459837324353440449111492520304526109040290189590637645460068468739103933588276308914762027395146562726326557528654018015955053410739360610162770037561363823045411873367382044806470661520305052843308635757193060037633918975983449714535217081026902166147723738458970810250361951362841252702173789511484968681564654649925686355955939869130177309990570842414550400366945186037995653940416270700668162300293342436169021324792338890032775585462934967850408457745373178846000328915455987854220823206900486139486687654444323177276671252894299991371835752445854383162011791574409976414327747151703982844724512879712580651404185855573220817108420498758068782038958495334933457238984677612484698633512983669350476619210281980895933924732209683096994399396383746792867920508950127280309688309070054348714869186801529781317502765830225370868128137728116736571283139928085586415816990755747510190331654031223551320252271099695042377051286208574234907591827817177290874471595616317045554088728037767660311784268926073120224818869449373233078936438334744255965178134880513944128576331753843190445130075995413288913758285319249763943304291205763750853335273968790967761486368255031075788449372451695664234297697497916209306589170775397675505195172206915404691106770542957740215565791207673820983885898525415536721181087718572183937032610390611017524965318012779451780053475939511555939955128044000208589485452756587734060475486309111951276688236360466880554654337051652938661035895838847684045181380629945200210270322729980801379789149857428909518831600360802564111543485251206515640716199228136922455464294806244287349927893747236078101982766140780728673627436760982923421759552001094781004861047289743528384772747328876381230165178602812338071774253842280874645734668264862902119167261012954328371142434492746534377587088819727418806878359962785646602633566318409011566599819739824035064633987409765140173378808623180113739555068825407879520746321630462395266537248994250411879215873960032373640823832775371067664566531841358400122112385083567465886677338465525509523777039814803996406592241420447071412259847119701480059866374629718666041260983875252066864810039352151996636344909098461593188700023555577811641382763530358961547594527732287971280871759255035836266201915752594525732003489667719097408510709214607345893522138284824042835709478244894553394386947539981446649534785592924907525183983419535377489812784330215862411434474531926209578052047859768016886684208178632553174381286143339796558812855725896376761378914634459258158759655712958856506519307656422861949133868256301915236613601289419027239003331333996782478055618784883402091789914575223086175573183728434661148862379767133303346779740074250018761993185179364838620734452296257485988192417391567031683822724338462076046920263736121824112026831843385578744059742186283570707363835271442961055995062742520596344505263898520145466721978221789542546041868723121188656567178406073792539652104503635392972133868974273356717446094041842350396560522675352472434415577255682993598784288037184583819882145344709451477066600367693501284656639135466087799434676769035258384082647446386848269684680904308545279814030362869374995718154175909826585207139011585925907635896150291592004265669402286369747535544903550652071046174570388258704305728471096785923670951004311912274328784636242407905550815682763941756934212764795101604848472566358115380534606001160137728956059529869652400044982320291854968889862332263123157939619619282957509951508727781253286537015154445632273564877211174842032362964361595746370996626414762549417537400233501877400833950494944240420639787261298017040173914204716776139063606981834388040440643459116330652403864122996577877281113211107393629453487777675209869652944751906313827515001426781556753522191889724821364803541541553195577033177190115322676631291267888932695638661525002213345882117903533825607191049834184939587061771603234530538247035991584771100410728038722047521673972788670585158142788656216609346249834119297538007298116347071146590423271420158225656333919956058118456578431135322974981735519952977268817084185524547413120012830543000849577734957338452465347861175355763598621155683037090593743149664831887435335536639870248547836152467839493541957485806093033480014589260445470286429433116869516344467481609710252118705722687838784713419108225680855472954746647664816028773113593691720087365305012468999421398514976170240214942169089346198504427759136339600746812331239458323927333091866757361017912534169419764033275711812488404338151714027491663434725895025568775384586189434603099940086428202246320103200163553606683466972430519602913242590798982878123135416159909039015276257799037196778061506079141469207589015640589510575042209075458333137508694669971794089859614032295735496045559090565447030470909927107341266064467152682928978568817421537033661192303217561246106801544548489476804383475154889484624864000188870547480800260641988419942338868640571588331575974203963989102849223452928292104315359895257454521778180532514577008980806129129778085998485240509310698397746159405966280469462490340088352476511000343297180862028059694066448331810011150191992752531263262168990101834278940369391111554235597963453061450496974649033462471970089084109992886402926187523607402607528081878050947723672943605993196901543502465977999894152360015872191656216994427893962329214060485021383243170641094033866271814793506997784700187747925672219818472711637859438436878473479067263610833521786651255186608875509960490362899452355015984916449752826129421639027305992831498476490367369484312624830446043974159850869194651869724274291387254124016751635380374928392191488326000919914317759352339789504540415382859286089786794285299954068909110760556451624801405346806485467938205323300710522060076879885485625606672761408612411662345296206534402700321257533672468764300263339519441691964776827884644774563679508363362740932395676661922759050647270113962404230225311837663123553879662688352644843975358066755243314611534374483056805222442354065100420950068838770734826214936569473718415762708467990986320592850803959558744384942730367357845719088556298976629813459502826565528430187731902358547081521959120222048602993371759823746269739318702522595190608364016480889704868493701608002467494715385583532337609777803853072169768853631866961861272150260453078823503349048269966663837762981332781375979923174904086667728795741900455691905887079392286466802191628913891947834608449150307677114301067206643014065430829724073404528480045754242019131477585095371774616103754834791609134206838110483864365190639676059843942878984452570290021876916470109504895202532369527189192620623684860312963093351449240228639538669015863572991819684192179874179130325109445084913030781911180230685614502396675396125056078711857656596020671979538601742559265475801545070332487398052804251153106749438538543996899548919868452824769037457167288448098096451710630185049843789901393883675009819124856528935506135805666230012151148534204230620943898069636349793763622328420813135173869535691611620751602596912268464448541692258575204354765640251429828542198044293518058055503689964732933630924363035865948306152546146437008589339025990887938084219779761352801819122688523626617532893633715632850214629729019127500627519885616799997486750923824462029703707317423385346320906400072484871669622501003052217511423145055558867219740415583857667659527947082424853159033736093855148019099248876656107947412652474170840793363726386357891306078661734438869200245403591080767476857688513513161529276360740629221535714873943377580446128132652598808504508803779222524437177346255735989554717679800727525596699349656254731687997080299085594064031425054326335543993369917799828374792830564589512080642366590184969040809786340927330106698451127522820056092653902066808277398134231772131876445087658286812333883649888304983403826316559337248312611364291160535730905997920385748321989947641557685849765105868201257349214596806993990725461617000180010544342755755348218012895244937574012962182610512242891007714312765152497537089523066315054101794944226172731508761208621430414444742429614287604642706809059408233431349021789292412704945513128620815680661297636018567282870690702152800958189907912049243364617131511160452940297388681747527409783839872122176774393533152555855454506899614511220856480233467791056078233144944540667639248226007491486943312573304570083050181470030119427450710057755806232720402353365526612446974526588241652168259681369235565387483582603382743943263921860596483162733243533430804748510421415485098445235333899948862230349213044915477006906385765337093440200368982388201161832782622961494498278628213430395189123120391779955602349659082404164224428718589284244449530579722476744875975405571989722659035540379403246631852431566313368441218490317534892672598514943817747132545200724031991974017470655762816372507378700227162309997917522892879368805422332639182670313863244892037469162926800580005277469768261769699212710441049230428426389257525998710016625010438362604219510027499934745399702837046403895893630155115133185228068191837049426590452637672849881792858792047515663607428041051180372750215082951580929351822807344564078816965308272988711938866367970572318907317974908917750209978763893974829514855899663976989010075623072386067853888871923335649508250547100173259357912825040846767641345819034231016385262716167616190611799591769152295374214498345660950129877588767826880897482258359331215997477275764455754621571219429983005875205850390599094911828168858441644694085184748746159082309112790457426470355687704998970319714710086306694238538478666951455170279939529507041579611533240875190318397948463320121255439833361366570440746094569911486790506864845914963372834433972371858554214026360934571626318495301489627538210874726183790884841294696145834085576359237554587877363209048564507653212210543704370967396514410211706392365669974999140222491267171585921342378044216674163000816468706007716125006300089083364093664416104813689877206823717593412041094401984162357274549462809870490778815852536021302425334531095042481718235584976283763361824693390381029641342054684482886961123287814552705006100780082857050198626813297133486300639777406035672878937807030268896977261799011843258764736290752796020552134079153062393587400356578230732906609246834966961078222942732756813055428040293537902524040912533532901883946951678669078377001789186752269985818638448527792489914808605015604286676693165502391668532460231421191815874976361967119698594018003721919080889713594172015327426855774561966984362862074038199162976026031212965093136210462067761484116309210232679499749619348125113589968870105043293661114245161717325844391319014049049755529856475177595498344077786192687873764091285159675748210286208633579863932663675768334735125146426462493240468454592404880139719305964027472023901717267932949622629567351343317716821088301562318184260819184737252512915757903746499810762647013611718865351164116466827410800696373966676619445171537662627500178441370701968237495537595311851855450036699983693632086857547701744693025397499696298848607271958661917951352971613260685518353608334506611792744094226327248065708233106254482867575540728188773211493232572342282216367995635316710807425182466510565688450611128767322005872500414447922376603061637224832983104662377537088560320535904760847538330873940732853648724438257261136922758907768719742292852496412620332873547446626493514248558619766764335054704214975369139782074763197516955780306258049707001073578983783041839713887026970577221820856614074690221077932426610672257911623122690934575126684832428241692527885252365418555240428371070236708948439743394168050080417673809416670509400460865339188526985801343626086912810758549505126386494777989373958434939953011196749717093907637276450382357927329691225020680677618725846298492079164371700324303381369998362546948763511678434320132905461358029471144577192772323812456003923521481982137077424929039317295676832610132065617531609829494747293689055153563728329219043622524772177508989392487057615688213733780050163010729222065889570920727088536210052903335771364608400348420884407158444497410707639376632811378060544008950964976337324449174987979077690624026836763137062759777745716531411735365124272797333374171624902098765228852257224192131472469669087448601673531241439335502805670926507762151915119416104443506318502239509904023836317828680630377676287453383834079225698301081247824373005841038875904085248207400355212204890163442038643002420768378510046903222083680446258297564800407633084893135222180240804000599874169296463442892879073158995256785537939748256757808510603293064671589376755488316934384233608789482157364394058084864599823584866942600335685499210882169096282434951185627189425760862274535431421431856156410188319442187806007115871455851436751030547059332657799825786341533883786318004554110247986261885071621692925236773704149628772577087511124899967596460809635079770247554721191792341728877271260156213171334861314751671058139412436337150973551013740608392007630026960002453652022887100546689993510077935884409100214082282589909966897614518871003869786752366689021515052988997678605986663983327967344679960237913458697932326069255416797807813759020896684068180095028426348492015105286297866491121525596404320526523305780262618880096190570865592895123894403113562288139238339815109944050798128726268889832725854086204518902842525022244580681419112004629968885872719463218488168924268005913699357355562868956473231923128654673600472761992106627592658265341349384563692321882896597662722533514030334848892140332507868883528379568115447208264530130077921644697424104848040230402988184940750553150720996663015234036779091677733597184996646084581341738941783557525926216552519843303183789207016790923332562445571896967343738173221254861550693222441370204897189304466488689372035361270564638943379182484188410288773465791595718848075740606060810466180797724551966979901986467999134696057988946335775584868488528271881470669945154795202839017034834220592947168675171361960365352639083044689642618784769597966650006978206274867780279797315645708454306128558077398190205836603763642683945255044280450437199753351666026819431934454568311767370045992133828506804972135553910970086410027572374803612448829586243584432185297889737360615602015506279932627825059403050112897452862682948270442891094716636654950114159179790172887891726624092421853629740043084115966470844685539492241497140649986085940682538695928719743275441273693933438355851742678442885836637700915731165745877934057868366522625326705850112637761373477528881105195651366986511883355826107180475842446128123207886894379657320594135343620098510925172825385129024392780110184402499067495941929975580909567540351150200617533659146787896520923679284479159004004111685284825055601497652064917996431920921495603019024465934831162842090767010076424961381924278461070682771210540995564053954240608850858670967764409087183555620887596304282960580174070513726110610978835646263396911005597107076740775610131508954149067152590451857756610188831283031133842272113896173396071514243162093304719005916438169029820377868633574959412714051120325538027331883887311467380681122533553130397760799337736839666193534928298093477509337732711008303442462528822716312538763653589857372328651517921834898008144826159409571371135076416070290608759288482635454904441479473748818472694956123860652216884613371924220320847450358404693408255569560463050551751143966270200324401788333331126090649974645630265974251151825361984988245632473015496043670359533816885192349463029633144488752990973697907474898460487772868204553950952681324047212680719245450717282210871361536447286009688762417919205464834895074823912895208388202774972832949895153597015642028367976389504636965422959752631979053682093851796262522293634594466458337825161447564253961617339047356086423435559853265260052129247960960649139569980855360077325214040164125065177129375819444576871151154929256599514683604682256643261076722560459593655291513734077657312191738422729342903094815019008679065124249952596375951695198955318123329606211210205930308137053808434352819614293158701605415852569662262395402846336597688355991232649279565049561233885087012779878072321546786459321158913581869907835887013144377685069803564479852662607135431000770345501939247792661529318527653841398537306632258006275649157479389192769967873097212337234128298007951755960876866202871459738825960103308398974439011137878038600999136161888426304297887105719116931705295580968838917337792121028465790520236664219861812873200973879631678688309430715501830303546513666959992769246021559172064484014759230430244003089481162762390218500787479289521471755643585731878375824015114227549596896673848624402229079984476429073946604232084085029362720607756755586961755743252160386598692575752427299689823023398296863992409450087857998282561356432816593126448149716292738408895012311379524242561996503118282065944436242300146578705609273631904583469959076133197097493757590786498264916585492885167570294850695472417363747346857928268030223372113378296575625862008183774924594010263300462645536949720635709912291863672972837484199932634621535930624139912773227846910394047142252221129471526468565843720026113784067945257500463490662968338403702484680007284706188936024118891232865343505369493033339731525094812262590543363890066154567603464774483062450213899368547954784726070557130286456714172954409878421636286368324073370853686123206169645642768969785828395077988571536033623314568504814049293795191018797076329234782320207428404707961835828188843993400737270174792414925850267360752556991148450549155820868934663965967246631312367678795574066588006634068946759545264899641167119826635449337270487528180848402655358482469925581711102819097935478624143735647937681588006187773196484582461386951369702657657741182980389186517682623168467496918089282221976427539479776591929860610989757431000211987014547951295699686019027095736965958693843286861934100939475316325375571752811589953641024556531147425320565408815160140498303557345576499860644516567397481267140148722707946527125009684103210171005023462486770765044185597970035011025548868883222364360571864062627776466292179729927917195313732739380416129318765081090179801164887028113235002403549500925139176579304867865945554362800981777166592437287405076702792097782399183322763256712464006378197577148800424924649680465741399069051504584761229891828175163956934793433957969686486079875583567878539202190321786373279478335883703432708201661976418407186281627980871643783446513953730186498744930548909955004402401512405682882638070693856587320806500844733728076530938747671690143384751633343191533551644702514500703907964461786844486242771606421339511217094177471268354620416897470717744151766522353896359057289687299034941297343542904311012181413370094862287304818781550798638623146046452984231153300538418402217792634677514053840987739199486090662643438998618797607956815227879933184834550786824855318756069103434113429575572758414134563677702759748873996697065177542726966570684232963233719002988539172897102052521143779789571519608617556136231797286689892209843262076279752332194955295060317155926234762649639479281592499052372450638111586484158360193018358480720808068452541007756340148660344218089121728294136128503134925493329220451311426638785942156543391058044051403556640039657922618767062696836897415028337133605561163864481864870992680516818200650104244396811753519667976056487151152540525755763840902112588614706478261856127018518408847228034240639028525515495711736630510963261035826300260704839244640051176515849546060232493942436883101572807313480764837357458944584821353425539135493760959837171010181457211227445760418159934676969430490009964845128306325171226555202116382410974531729974171082975808600914711339397656193150094889066493646551683120750176029752823185451584722415365524133268710682066397908057963527121378488817255746817084388996254279653282560193681559027426366718640352312545008103803430373375582436349729340932544740448779169978795696155052719475966010624761836135957076026062737330112106028024608915078339558906386255604324388174345902209086866797862176606426376394030193311574394140957009979655946110899334253008980368165279981871846268702728312538922965451685371714259673365624251020510460696430799200328358949323554511359570126724685013886531365167032060269490201991651081856811910611375643266335657811583839553632330029617912345946439680114702570362473018284737141253052702655763826796858188194438673212335617158556248791377278504379293982302532977151246781159109592358036650698371853323533837791547046418533333920457612664116748654181706446271989018854083974085514153406345592805337852200024025068775775285473103990374807651173187755395172283756393006559896707051671348976676735941060378229980051323096466914894688599623103351062535991446739795060196552652304163259530161895560453684466710249168442533328813112300006477884088890663568837764045846651624365908084376330698197671548438504861936330787192543298971916910912730742255848909755228709257211355210034572098869419766591693855806465200930235217674134864792284594311970609971649179058888680722772926607386250928938965201939425423449149205982965344888828243822620000919020247227511694064028838426981963257379919492873285112945413231303979453583408488120406041377755275045620003270755780381667551339090076009698806878300897078954821064204340821385711040020179848380092475788641427277759588676332238548276600786416430023799104392599707596668154636959427113697735694735690420165980327523848756685756585194051479843156113576334807757893029996605492179123891440819345115880412038362423125703332121194171012242193520606992626439870012018332984382977406981967819198774175713585153887632372930821203943446862299801549118255742075196002399899330488485699012966351487793751437590169190302106599864178357665074770784692276697775084664786347871103115018635669329446819570979267320741748356852338205699020122054519717990222339020595694234976420212710181836416411499755866686266887708178782635694645304954117372953509206387450073682195702972572980066971573846435722732478000336193744093102255318862578289445616306036511680668507637950214525344900887072646802290313072990697652366097852222237037970394892844296137239457818063621829659403336071259268682972888860406465930721516700430075169179291689846093664178603519250196738856372016028938138588265448338779177918881921189551517679996399434768575525442103020979475927005969175211770145959374249848136273504512684975439844042635819138645589654196340265175905592139983478858680134646716651200578532924416807239027573958034262059638864195087564975678155228210139045260232989359458743817641021156524344091141036790491792637960703066995015844739628073591982581162606850465306002156776033114227649386076558346509286812215732943253888430396517926170087866201876923599001629637191236510429346791866243686111977411474930887299415455363334351654185589853450768596451855613126575930866057850731479307226791562719824771704400808124220994998313510314906616568639458738354901742514132895119653327217976790391825693815863657946049023963643130038928418234700822102457877924311452042706117891776185807760810107286673025541237559713295269981967491524464859989586284305796472540940411973266302529852510839494896169404495490573614408584788108279458547726026789770256285572600987515271763781301241929355988437375423088595325264477080303843046744224732826213526230751670704368153554749803730477837020853881570981939344529525927022818907086323501913560331212450958706638269038537369088970851977055260422145673217390884915487593887931809409548692067895061327789769284392423323075417126007360723653664712469318886585036186463331349406052327008693146995826941157249691931229043413060826572661014349112054507947077841203331370470167994327938272244219564100993607183992478094720990551531120591046142392072131128348001698337632104916969750681660811327358467159931658262304923858825005930574936903814485413243557749250040984654681314694689504390632008928043893976012559787910679426528272629238941438188064505660884447800266678555960319106418966037084257724226044724105183701263058399033272134538152889667248437443100596975291757051906155198476885769107050463366550530260493218114550870702933919952983542806903705889826326400784151751054325891190638244801966986087391911730884717553765678549340644588718428258466461886432079206437748365651700930050085470679377003251767658993551875735737767082283704554840410796881004275636845917511018300278384840865497764671801899504748714080638325641843903503177063638125321947355701947244108489006153235973150100650721564101424115126417766322703169076965028090784042504711980553335263474960856998546473707190824406578583818991713705655869331069491859198755723196871483859744417264743063639192120499974650283330184549509665363590615367103553995935277110091087681787820135921639971377066165498039555239291086336966968682362868553413335538002209834196554784966326169809413230756352685049851083175966462629654786687043943419106777982062721868557595479110292577379726962668965592067357828792137123748922013023234807013564244931327970039191870855138990829342116032698165676862631179681554109623166869985445253179781437345160439626308697218146839653312513052169854052489902765661239666567163273867278197335012715564003139136601553031748750933211759179170215183334500644973951593373347914640193215134699905163199624315558323931805061427799677609980542307171230621167145442619424034474698668415791738966083654471722229210852863765481949807071790588968315906155288731072065608823691883442800224013679355287294768652957842885456962096929145644377563273151821019188695272517638522411769349716153552515491287316673149309453766011652882739184822597497208719887263035705324535716311846343519797596980393035728950004514017729714077015914103705572541022579755859550866568362129950255076309780204375668738862868392884435281667444704665083624669514038205272980268351933443049634160823993131591867686499430576432142624856937527463460743100647911681966885727902140652234570406632444864113859876437975853820271991792514848900753212485676442146726307481181162153325423379518262620635249015885915840021377280475072165890454895255624081669027005325135599508403438454922038162560610446242135672869006386576409501615144383623675957883871144820651973255492582324921752965278564252893856584215656428454079918407170175678388731251830918050879955250400941138836695693728537049511637154419184978640449846895112413203720802414529803753375518360066868178947439114710339814445436857963540921983077431683085154878496929241636895530415778764530539436547490536170667060486089234021456920171631480793455254355775588765991891334331655807883792644581309826190294011288756802274179110353743576732849044566386022904842280627187250308970830267557653859341400875520439925219621918946887274249253688049855276510143781734810945265774927200236168025372381402186991478740109753574153804540456250638799146876184691732035710023599000078374674285217165295481760350834100643322388647577360513062204018945349134048555528790342426935974238336255101248903518036252308515195272454796418232362596624059603120358525745678279131758652086707736135598082194143415399434978159110722674419016008738028933874388460704327141343263759233531777956706602438380650969542697621741190658034966194563138796377811107373758650762735854954877000852225620979724686189530443862320770064302334556411724527677968707415648842940955895475437036401543224656044803606814218404576336178234966228052821052010795243005424386332804391584639656825960496787206608523947309562505424786570049198134309727717350243347091368126175108437248775239957983773066257997948548497748786011634901165449703341185301445019086236343108803404916040032605618312158483586938432776838944443472159141542710969872481099669102941861526712114303225208517089105805443142095122050507393333440095265786986287838181974911594745000338611065668416553159453333988056887323821145577151888465426958462825950957988083347292776195050184601554700602009522838503021415395518993508266728784525562277535248014908018561015087913103580183564894188248758094657573829191822378661667786348961329861346946609071267647572051935379467776608496147635582997536010669448345747541831954320954994140573514213241898682454226516177433010248221510743445504146971462575821251367560309433310489733958540267990801952419403668801925555357158413991485147794006147726567457790543953513517942544881287213539006771711813191530719440473526701053883908886497058341362551126897611700957629006383909078850021419728815630810534071357523008141287824786650957462889744243007613778366609742761508512265855539756418928589156654270634089264320847340392799482505622103390697284456885628816644296443706690055333665127126907763240625974038456251286018027348602546212855330948330292481838100329700487154281137762365224892386657447736523637775687364717301851168025925469141048237237334614682195860134490668542932240852323512433401343245701109856206406282693978557613467605076964613047386960603182453375185875166287295831173265990887612284210817600012580212115865599607726231923923276073884607434125238468604178939257558886115547592802302382809883780218855033002124519132478781606141412287113125491515163925496484442995667036725540523616706194386584582067982986266650964039385388614843297725379463853363475465105298604267320710594259290311126786833625030253972301700794747220625118054621193007770919968495713586672874600166324930618741851505045368938269862393119861268678958174620907256019242779038877275386580998586816901218708119866139418836111216234912161188432281275076173324714279009811836942496444274674156430014841760256193963198071370287025191603792267015501102478069571957395270964643976708221440142194465593479038030003717268501410297264815758089367281603339213965081569537048181593510354591592599888631506348202501309862015820841066368482099769061140913369559025885569373167152536318795959008094478701049348575947123962942110750654227746103391707676042459713360327454239602830522063215468872574832541985745193933461318301149729375978532779358880698888166320354143793690223712766887344372033152416875702652484462285695214356510907452012041458035546522363054741213027873286028702986208253294933260476446579804679043968974603097683023870601836155643856091155969457810552003084227994978911246781397276958517686752663997167163675857665035898526309545305033422169359297880256788296542516125392363802639532140210633213344798936418348951027138972648628562948190878961335851742559114697855325695882350188406198666181528125227209816755603540418248937229832631857203043620371837445121660690416365817793825006914774479900972852571639167361756290585276252170880542857241581097212487545828587497515676817982692174807753575484881757589109459129999802151003979459796389892569790801496567422075866457291375758238828321221245146782542984483441728314562241424822953663624314247972555423916708040793825125256787809567498726472711590851265532724522627394748797157225477078891246769817190960662418434033034900434722398243224704661380960806620359042242426692613859606574453674902034694392745470717438720884033654482804596780188482725582972306874912091883465212047271390208038538762355389702801844049053059642857071473905190719207727612840972750789381516375425858339432936551584173004556478440228550379175104007768692960087764876886999273028305539715709924200955020870215417023313078021569474094232592419820507382076053017566894853131795038822140950674006956603340827189561420366435930185500399649364311431232850856155454931101975461382356786673693283577593139738311063872428519413432425688114261966408881440128416618661234350761820061380984153313700013559729538520607164841592300780584097196632922465293325091963499727279345119882274237906980420964539726596925953320199146892780662535378852888067108259765661243889215066244481728333662781627968559781451723260083882291869157387188534602195413894981918778077645177454632848579655985541847997464687796675692809646181416464476266209859674394734173998085459224932322693972022569434268185775071373946258564280977730148548540330212457174209831156596426777941230643970536105524752635282327154582820287994451242503366764470456565917477160196403638658031304516207172091137322911560791217371127326354399935682465007213166998867790323305920236766266307854364180725007169747440320255732786898089261493913565868806937063028433699127493666420141969060652655839564127144676174484865176653014030816626989548992648283396511953742150178826406973811454685636172584301204603011135197306684692257565226687441332727006634923027930768604118596637848971009738522954323331918521476040273027535312893329474789666090487093205625584220082720689586347855492808902129553245489390458225407899592938251217808916567250515603150269936207061991575828733457410444951692114837029605059361625582400992889925252430703379381324321494246007658241521826421138205737913419116951858197212314364844247299137267747456327428179466986053993707704814732700348069766064380673063404911097308619895205716685665724155450028034199101348230970669163659828050169501043058960075709042089002859775617721759717624038149906956773996155628593516883145434875024234478017332224498971398798140598201458670478216207868443632307783055207028467146739172180147336083629169674283252758306707197217793216706158297308640779155715363599563708961240312145852485873506511434679266627862859103438631410625550355698450108558391829041048773403186649454289057923825393875174289125773185556829114438336996637341686436312948441133902466192509763097657319211616680701656989681688068919692756784136071902057625596106988117987791362200565831973443039674619778469088043180416623781250593559719944594465039697910776391928756271771609895795863058829980573870963804104823733096262188643537355861265997289860083202186239619391730650814603013556591560189449075380890531579365768362802723022871152807961262632056088309085173152420344651484363648646121072321494698277552157671726377408605042325590100697766057950304471436789439411653135222358248893827517533370295561400223503826446524612444474833818538024564109561545621069248034612969165789828613561680299749513115431918895979976121866334075808234471624967383750561833312938072822970037692556954522601946922884099021525335319672529049380092811400657435454136725161133310043085407234932074458198587878965991062357785118801980357462061179823902711040756292388054719006176297217629912459835464729783423141747835022956950271498646938257876614297132233860916408330840678539470466033977408319136794776521077641448665125291535080592595902400502160169731384649354486530120348717337157359533342231415990074372308840302620090964433993652253889944521052644118522796479398608844048213154355716218419633775609032791467341537908531095571887434327984157169584003274937501961502699532067487328247802586860192153772705556341639800229881574744261199210605088640943028739431065849306325908910722207047627494560509803562645948033456545272793450904586015982843643222397224167532607042276498379442253412331624732949112697786473372624585614017941269878894002613771584400748758796599882863732818826281002145384385776845661020564809903114995473809536331337492752638792577559925596162672092755483490969373654501717166220932988226721028361833110029104576402753747527759466549233780383027807250152682236862270854384090466642712893501769572225338634185589609389997547040994608517282817637306811303429663665651653443068193667671074126071339682708813932190773251680628830144618195051429973492781205760313013613215594278754907147931115575176949021056175039472073044633429887703878209328340915396925685914763280796070259009861882745779541680014173105742518849727987042255857959822398773530358246188193411354813146643447071792885114603322079264348808272814354560686396876700178256105063742925692155318835815381121766907547212357488391268138799817909528858694358401141570119181216568905683034371523256517495135929962148124883450302520731594268066143404133321189389563885684688243145052063888761240394044467772929197004897216046096952423492295594195965461498786455035491827693120555904620560127769005218669738731199477651749702622378848728098596728283857450740967518907168843847174915075429841094790029155173197028806921659827018204734264666964166736394864754827812243453583368459572475065486906588638082576405202241459385396552978656605889391777223548005435447894845216899651754220070840051017251375387548275583956784397316181495882445756598387858967563383743525756425836321229168498605675517214772458858154046423547523033698592699518770012221151191984676438979315264746819205624455216306706948714026700404073541634176457089303929133848621376214489903629497415058004571133252824679264466379047349458441776735720955544835408206824498616856702283154728685073766009432500576671836902734844418731285618864128116602799836087625784381461859523162927245502655365520892240044047807562959287467381883930261747645005585566322369257296282579406427263925574006230112973512225123072177113148802073749080882286112863451752608220477144166796101780744265200134455296755362512835206303627898183136154888082674041723852527287717033242514899217723782544812751531061088673772702586601810709792832774789261420599221178400050252795696018435078227558260468403690334895511574485610804102528268967372909349483529997449756496396595665612926112611546780362173138494343228054594456567349987201591011509938835125967501347659948310901976847127291475735465045189691864847251007420799528924942363009519552747891771007356233553079107986922966241114602568228792373484938201056621465834805292894696111291115193251152992974283986741325986513312047793461355154260576782266352794016230285701835010809526291515804623458652761394735889048085916738164146375747970729302945143148301931864938363209432876247562644354437433376475401980320628173909732386221328016001600587691961702059137492180933686817414841685211160567246781338646316344357467641306010754618363421531200325966787945661825690461489432141104531814257760321818350218914480273995400940418658799751074329696400325275739986641086824019328237562196373082275844739151795666800014503810095806831060789417020805834119099332351668544677934872907942305387442917612124418230232215649256154702480895116122741521582402472579910112638137585073729422215400636780362318475169018584813738190513717357082588464404779549041873655699993895224317743973416216695942916443672051254078752666628100364769157629031970942647426041489307565882801353440501983758705344607108894587661125878045072410894203105655814481161212582809996408960515752373567349684084849554070277106719688196489781884542638663093013263658867833350636310537464305587554477390041085573150181568251412537899467741149658911669329333000300587396347161180784612272664683779784711036411637480134025154741537769827427987889699066862797191616814569710373191104916293584160960481248757825568860629917684104357307072765550624954518524940500207602472374416215348929556502190932003490379426868880094591599400269610392063938146506055909974873540228204101443773035574907131113353821158175626167459071182187820727177492478365856635534032837952814848851479724522649093561562866888134283095486392369239617444970906625967797247751552815053615753580896967034010662145847668391918059735190029624665102433907256714752404220945697014815452166647405179150595882462095757356218216036776574297717817580132636568347384103986273116970722716034405164460761477100786842813338983097054337342379864505591121299827015021111943405450114206682082206580358195806063399417087514409100436178031809705893236746840771925633721087479857300206242802026454778817263069961628972965393006940587318951470406729920391799416538802400569294368204840056912226168681395913943558146944846073035656755407935571289116191776264342393277227095136855590100548948456913361980744848275496712835942479679209213312455407422698360573332559333085750167692746639153127128403992857584384590277329486318643667536669880583624603666589938004957451110634427076726067915314097932891668681020185030989639878511059052753885643417108934255673245085377454938210149324551808564664440858684340576196060795100638684335404229676851009735011839575093233334605900320090317553973936891120228823323806698418747336868448775790471820202288592281544232099426140431371557213457061572464458790600661167263570963576920697237233781987850588668163256823571106622949340111526114825313266922587805609202943814631774535162046015034831466101209981555736986562023496027063268906299910086322072305890253053213825524963247245924065210163141430485100395852446634564267320985229385580597043569892188481152226287815323105960559529056121449461339605956789796622852996746467551530386045005360320514366525647821263599948324115265214937046808816281670387436023671428318495701561089191232123713700860579835428362746923092666282333562313402335729184907202810775414944234585641660198716938047730215464875267002005805823901328942661040143121860351406595021166154412349645509134870808771093000213554526759672453948311217854189730476601711474804986590492384564263563730100772989177080027509420049980415116517577532517257307130500245947246126271818898558786378552601530032321079131239356848692554734979359446409195727702159919853470484769956613848570252908801876455756703497538669475529614485905057712287338775554558767308220548680230492519999277870715016253090432451051744854213689464532248920825660495728185478655241665005841476018699723664075770426859774225009421653663506081251342650577359443789060831738106309038370874961021533363293808374157576569335926058752930842119951879772566921086258689757803351022310618838030998391756556657269621325042082312593513564342289865959218967005782969786692780843926373425764332130352174261522020165858760445352570255979977585152417523709438718950005593425060281126051044320584718098792982193133425293528069615571710948595390384738194580816595311694419725565713928863127354231777152004139414598539994451613886323037535432599031889134044084692261572755404336926312414021482988412416224645914850087446710179026348390437288282378172819713261988502367444502652162323123211483555316736494579519261591386020025205007352153048870487102643017738630528552979817430836138550486974385277138134136131854819855486848039070780601200771846026461747406634553507713555147880958542345241227652869915023166728658445326980692102351643969663329334696778221493637251147986611947423931941983260575710791645525306970447639180316086067545503303521660284060910260318700394531938596347312770628473657275047805591045167936881515638823702619406108730841720252701585142080127935369604023400906031377179521231474692757193661706945384485449536033511009115907849530007061328133443371712862928555796983930166527527900555779912423684585824759145157592329152755205508940778301870230445332782773008656435997365912555973183579752446825359984991217175402865477695312169492534672461426887019686958117256796048346380995851719292663371620675413257183331518920507451014572009878861982724773250983759993384488184307486042909279833362643308268979740104372372080106851587719984975078841123040786498626388163236620249441846127065897837176771043955119646563059606550665778032931860174078604703795180177945986571171282324662830191565168083345051814406321850590776390961507326907703028370024094447197320438967046054713742464647029295535766143256823014115025230927387485373294746355374973349308013982696124367373307881571682383077031405533283991077289195367075895993593247438596689836518362716372061059837103920774722314268455303183581361039491818225164550603645182204611608079609735829371513024661651034388059309269405692115009061308856062277662987290334425613314751660528170861095119566015012595956856977405601543896663303973742155869196059491046864133700524773101641233786397027432719413705127976052011704986645439201761394941544231111850762995745817798070651488855154777670546735834990131661528463814180834467328770586397745469370552606112528118492679402378462615023507445030231996401152529411841354492676605160564942305763618396475858867869057778747681757085898928577345572242949716154448894523389143374624554839266862659016343170448101063998979283377518544433623283997549417834888935032460667324244866496041232430286234113406874827814287940580718504845958265128410115237946230312434662896031881141565705878340071622096671668405417954340150147725346822793851047244155217963969167572081672088366869189351650109613855134101627337018912422634617937408767910177311622587216473277457492973345146259690129424628976502317581355260623579903998872772528330655854829475305622503570972188675077918279725121860989520002632964341167843677153542083802157975120050673626082403657828488387678921875298478754527018193666905177306278750610357419544327139027843586764585967676246307575968255418243223101771082143015772225645607632008256141213426843715034009293802991768837662623274109601376896115090306464417169694146546366357142474742142288933658865278045172670131600266627916737550894210958110113537759617969067256375520069526137161632589772913894283964684070072404842055348038597728432899553993284199544189603087036274732435392668397439148594445642288590531466907423467226593170750808787497178975235008672854421383405463052825419184667970816551102770256724628365220222522553383564324271073145870838704503105624714217145247754499644252610657560159757032425152938950087663509840285318848542124461492055287367804767310165669245288902257984519742824089174241546549437513285343120504871008305591610086361463268483601596866547721668584380507614599360968059227330239169715941223106025502872755576598424167780134425339143706521225385318063620147795029293968126060518182940190766127835992554944495091856904919641957028866690302583828951011207383610606386121054645104969301943208288523760694605486922017992295677092603164829528829816469565597602331948496652751613279783772306027334345475252242936632045124840617161069769803869579312097276245752373649849643121937334096387744081603668784793169053567808567666679558856557795905479623042704911983101803985302740598121240053716655480003615023147392670532322845704175105761769025455694796833104792627185180034998599214893224315139359252479453044699085052965375756007659153591365567648945712195110010154698690139544376230371959999177256122153069696697172631506986698507661226337524027722511328277487837660236256725117563384399593946606384554356672414592868886238818722446129596221893999438266457898856109789486244148924324663639231200401799834783142397042538549554004594087813280613754895626933198856115663666407410659759086328646834437577704262207364822680932789070834509570667435481833199990293540764977965315776589336718023105945093222383318916328891838502079975872207254848532511028912557392653935770947665491270109935712386114786597546405640969271232395396072598101459410789725869788060364053796824673580892456250307306321877948825995653777024520038717175843606621939975431690094043556140033875735241221016854036104249076076157656107925444011025523880974721430401864006981431670256253054661559623576912574228061743562890605105606883167494278214395159054679346980925265366782271109481404268129411534061085882764557639879402621128790198342516267918573202581669286903535597437004561291888851608141218068732069109053252331045534054066488680446871175274457935617665640013406211597931241590880991448898655627038480404029530668972501514489594379240146877695806525522556548649899323519537548431143598519651100947729128591925604221531157050403249652333438106598028248942084281529227354619243369800686803553344952901659628314356908082614030929416251853057467759811102480249271321029981558133001648110055341428137975951990742826114448827461890702830217807763588159587900928787426599909391596406468044065954117397532134132780741045422095137222837901850746070951409175864549137578513329186803434302823705544260870977232481355713901259007539983951405324243238499009447726740360225562717714090413109584637586320639044537816345490362393291647229909955831734046627886425983327713650617900232631942653690325545672345407461872028579826813764228891700545997326168552943303137104496297917745318772845969310017379159228917936402121188818039069860008956774624137377953568958016860572976581668048169306152159315975597050856398368351684950742498982662821140990523081866206372827320071748023476622417591595191693111279450854051571392393547926332236961050777997698265013802729309755922579283032351674404459832397732309223602989161993932276189948909697879468218388723133544698165493820579564067441865992893525290486706957955004870962929070240954038931048324626534159652516397691483230908940161267588718218620423734348063967690082391671937665535765768263703768290698029613108889325076397520514396177725983548074420396573738650198019848886164494262251777604697902044612121305021589244263258315255785195333436155008330146760405167760737523297003753786901813204325203439332282212110230298208521058429270590957366977157063355865458851815681542521202924570185822106529713488779893347362865465657182918073010683023125521267979024200142872726583296370259845695496786541691653907599272375487131501683711338347090079233020908489335655299355244482108127256002490435776023455308094782261454784879110409999771675402182021015638779700100114384664169594937062857206002910920298239301587814336443365892005317170860570054310028357205662652045893139843291555327587505170727546153853788635524618861736037739737319080480766688843097505872234615309096085076385244562391414786741668064181302692546262888888946860183810690050306943989066148356369122008857702078186212679051636482046625248268696655860738432569632660773260834937189311688859011810162981860461158290867211336321613112323238181979716292715097087191032882188188882584658202708403585180846268257187983470244357752500370985704746080715949488365643553761033004356776463326513577518728883883778227442730920988414060528498370380311915967606213058515056823544074401964117618277111610180008707188922564675311447853820392312280131151753550666320908331881617107254437204536234705920292156616040940463320903460652005813517530290972004385526468521056000719607667016722870986004210455675126875488872123768163221844071995885016515464792036317519637257474957180748132454555855612096817634471320317352196179926423661934289568221586173669462566459104633314113311564809214245855333585695814731191117718819011750030551123661284921965309996168443684674729030644988175979453711529696550477791018473951981205871620647044183114221863441959639089872071092103935902445370376943868210905897143499508671122774924288790889739587061608719600050992728021145077823588613470389617126134279644553068503204469829448647831100599832615723069230734682888141393527737247419891240209211972563770184693892781013539990270831034453902070152567166788272217819744631503791155126321453613207470611070389219709072430401180260446092703416795982911761881226120858789375288675995467285795044205425735647447522287965794046966150487927359027582544734458355233404793576985008449625117991486237627524264765878592116231680060769580483855595145805111596967987151136665464320828796140267281634219976296208333294770990176360510937645561125218645057536198196300723824552882165946241174173419373136331466214967843621413834920326655069163980296787839280637174154597511096494347728916009034652711880456503012949169327196056398360217543290244795294688081905082799490191132747816049252671161645971875215379409841417216483421235581204274444172167532576649355954475885081056687673187538010328013715599597291696065984082861009569263496762455272684201235029870664085573546730512102896008711344394732471086124945906086790293899778985602482521276196043429041314461688793697630717950223088953127964892235194186757383534076833285252529645038605866732958493165917108399681307407224087061106847606671167941203375874939072650396180508996454526872061786411719081760805146614525091210759327332632291150654281356330473202449184424905196236175357728599948503992042532447332006309817325679614733788732715082198958275892589310436211018155157179271798168716982546369452098696274428416618336003794613973220379483786198304936435090901366602773594842611969549683753615645121700868183740660721441912041402782799010524450840299626222395862709196449449460783805013180360582465338817191386970310498129632629009704218029561485359914516143784429152103512787335890489985209557800769487933065487504683962074427069237172646000313996290921320426167404408360591775355523193095065297851937847257293181011574588541237273007050387913575716717357433571700252908818465335350303080718860594094443322066685506582757633668983948327569625245381030521953738047387964797156002804228230566079001988199883588985924665580399937597297542416134516133316217404031057565122774500347140141091128739391552378868128837438500811460417802174501310071406445147169879336654058400950547969216745734375481456905502317937589200455670950313000955904147081550138274725380888614406068857195515175438122033689595930011754468745342838759285725045542595151277736746766890311085913876706936002500968099708230574198148656712155371116918285047526950580154956958171784065077964997207658768774185138617481926890705027529686480899021117703231803792953430396496882511933699422752078505229613804148851536978526036933137683534282673417557078695915191692051426059631951135614524401911759583759085631195061988973666925093543551145889145531628813918117499983089664554078225192432946390938223877481076230826367952502999020440822722174091096150969969551802751487021220973931512924672940430519361427891510807268835517948786438162814427810728483406657992489450667771264255427619043962801639874907497359114799900399678826144208564772035087989437395153298983583766751055536729617981950125886606272519588246167402093698450188621289251751982041951940148261368151996843400268703254505027395706174781871936335834317038954732804454979230247820254894082745743473738950047393079812210100544334055423814988885748569638777406554321474396752110472249801089392155873200757210746029111456885325343976540989708489747074355759863644621962447582634582186633209754795689740183353270012033952463629063767292430918084864347539346978734409654528831487843624994276171665994788536958859601924045650035982746993268834823707464847774646460088251406113747445515355781988922108359029844529914044644149637314310775638279484107894850977451403776549651851445547520933762195660009864807867995125151415936775963645646596112471188686904219214513547625548020874253522018542008094350857185282527339161253978628168545539075242371459717106706979089162982378015545246567946792159558825830098969640651787497332057450626680389162539296695703015139862105931607593975649405876479732466918180796867117503537019925859139197426344565757007391661057929093296732851206039243807114532700755382041036016130720733826109582775609656129003973173543921346479951408160674189620711973698076484235536926813812233244707784607802439711184888848242051204006124445387812745378283273684842092896710112512193724512744787848822587823326571424563945786429431785559679008056900393379748697293859619317046899177989044466007991709987561339291802817626006710648192049568723524798768417555760020708879458728444649999917667674314196058777319157871715117978067865754008603482724135849214938209420579154305468155631339066912258843962200198164125072863859580381054383237728103398348546969250523010426169075195147730168547645631333735466853899097467101261382410078924106791471648811229607342927442541292215322840571052030101714378136031800109084522061825022606950478337738482404640677713356334223710468573337829856224874429118971083885728692153224608821209281974739912085281761577352124515658205926750076147969127592442592650146770461233091901992082275743034976253338844627485701375119502672794192484324076317672429348643465268934441062097790972739047522228919037307553230463587008995290490182590340936202232399215310325663941586729040297224675447716329609166687990214273646782388214910471776485557554036278970314448690667782726085943696799057724882968150960963193489778753510536128691481224768104298673538728910387467017800458512133302967013142691621575431902591945944346545875581320820420500999678074690925088236010807858639528365755365112828858015930701311547536652209968495326981953089465983541807021046054799447588451124301240924648634699206208340982809440390686768840550499314821953744617363696625979076926573336704188864284032253430763295735021468938415868847348837708772100629692738617156893427365147492517915635181261262937017323229297842187570275054541071700143801045405610565554489785456237831663156534967199730279954708630004824234673510412113543552127091147277059191098237785080805150772575595732335700872120521443318551985917718732511607961687644412233792112238628091911839592023552000015782879170545292904962111118827006755047000571701854152955220213605117066832856241413557845924979636347762694638119561679731644876427430082828451109930119246471310375946653742067550563470165847443477238162179642867952115676745711305390939766751295872821064506766624333723037081850727833457003193933697805676474100558287046583053378336201536144900320224963077440421543363328418498779775605745258499421432356337567498328162673268480488651378405399575907221907688525033262431247295237530514150908494110045950800880359607185503188488335450251537127099374506819835420531503515519241096101820791286269447915342953233848356780419860748161840840619500250344913470225635056190429987070513468867682387226466145180085172902188821933340433111814246396049528606998198114833304612971625034902436058320515602818485052458463360619925588821163828724946185877731929571198578404480372995711248479282703367147522190750753380715896089475405284931064282309883915514696575574685245549610138645445046658491583147927645242497957574718961192775404347796841130195460990735698341894828029107490332206530051028848360740864200276585295124120216425813549833718269117880313907145336241150563662541381032113888332381101944412238064768720374868635504432334756381343522649741040175392630616194132332728883466746382840057446006515046633259065305437516237156929429011268656936139239461168487541829585483923095472549102278963802591810988941594622881278913255096823345129733625524733010050947786337123954113496849254270340414066024621880871236786620878942159276835386544212019161103603998310846235966087901295723530333186632322276632895764141109500149608444047860421652144105382155376000823334652834632769126209996992929398375250008199059126757106568152735643242726745657465652180209055112861198316237372013895929586948303863499900157635410792901079730177371324926299837458758627577416043239240812455087150308838208276393645060069327450832963526014131884356402981272718449272864390074277952849392023073674044410862683816638841887844344401714061802019133388627683293178137262812754220242339611104194534054370618847970786850891544110330459518172396982517232216738985056063255323017963514301644320832532012486584522977220957475916459333793574634329554280924593385515790888755121685427516400757961307327794808350744664206968933700939370087178651638868485012813850616597531484715652518722888198427189533443396525945733462281100193383404890102416026335382876719707212343586442045958577932784870968711532924872840895995713919503224997756086101116781233267625393195619836658379929732593455644306188897546075925790170617323807630097045424858099760115123537221843607040429746789612477770158766540777395109923885007243846408484127123871543409745699259743600496382761212078435295111211306703672406757811527425225723506409709204545615090203713414397506197326909381460920824585299037673664851556915559137937554237400426870748483901724145630238877943603729883006755414467738627519933713769811566732910222186066239337800943203398807411337926975487826163343203180726382248534654696736960598167070824058082552703703034876684683291520452296841869496118380513330703102598741277282978297216220461319136420907857966228805972992327223889498512795539176192542288182578239320647697601117388052694415625001853867014248806073840222023318757018136292702870862859984839004594771871016034250145165585051721009807995972128305362525341796877425699794225542332366700095580503250841670909796649860983846858939917291012472147493991685777188371406434364146995590221298537205397642290499000255196431119641159722349634586615834740447332620512971258659122086639681519683410885944396868323884005189195561857767682729302035994349219442826806216773521688114123474380716467078791493690253334676691229981903302214690286371114223453191836330914915444492945435900233307889694972692751474495085323363011159905223046054039926425730633609413144011963718435638199557836818238127058825784878334648454894752424625999513604700179562832061160771942608534516363537856961759097613874263032042668381859806226629869847613343726294782461905649657359306228989774039052019396492151637843864751214340954820044550605079576492014785163693806865141190773512239812726335530881200022623440054055252894997130170109225611716636438671106080466134957652309408407716438913249447885105041750167766648007513891808735942874791193884776962136629231458657055277750099432935878169748433236417179453851666967975789642635357426799854398557153235046608963679310747380175157794358096011347394361155959902860502147828525459225988101523280742417795617592383579876270346863932918622733539485431093370684336556486534582654249231814448231691648942303398028916685355076458035440773408915938615397183258418876720263017816691281399761447759253643586596606015943512948995105283101154417097901083695386920456108264213459905095236677359327193339824968298560134047344103389645643907955649245959139819828358531632020116903969072367107610497480041540355043007773150203195577459363862396208507264829514296471277175947037802944457718636826998075821485806870162834383396940362484844859412445659476202720438906401684269677043623461077008905085893287545471528886959669768871427493082309776859827080380440750087456297815772148796435593403437046573872438172704327802717947930330434768216635140135657674996917880070799837180672230535917152515308655349575210268839427956820857379528682229386801596552321652175053402242190285419338631232435469960220115254552468373325416521077644871127018121434670104866040563365126739888537781483179929812724418611607789123153360501027017462000584163921099280984384370153485579111340768717965547576674364765959090487746053383667081981490232895641667713060874558773233742965337883191716254602110883142519849008405500972934727161948176536704054039387564523444497192093878642783880559101343155614023128077017466786617975821249115786615406008949357197135633796745697761400369578657561340841573436364454141527489245432618598400750216156110883063821719449167105666697615542858724296102802258084231057389750316572258865633625968907146137452450266321253876919809709964809979283144902591818563161974916086366504614495856089918682466091845520266068145213741821950771190439578034936757979340461420802635448333990268918619688869892705539807833080016814305252973811708032280323701591618246053787580239651505278965405664351333870086509973940719006643281139476014751976294602783682698044421948724409810386818118331943019355847884244035176965657557130676251860226798144099090745613892319212792750246196828118184793592431398394204434859246664675168533039304665088897676478225780775918432651588757464074340647642201739404097203588903096132785782634782609025864305274993720843100033025510895141675644442935702279356312822731616828498338304197367716922673053327808771233185370719822673394180216668609689666505736792971322313500599312058958680031613577626495899983101766566395643515457619424352428306480004398350034622475008785295237769178075851083041417521044722072217428447744584234389605160116294140670205505686820653937839518644092405685069846481791010877621366361774940001859082453001210116247557470254041925070011447781868870503130740768856390984313441379771140839526430636578758496725856093399896367485349364807929011335651927280113099545457265535450152068688940847453746216025518080884738006891430441588611857967147133833149865828652613726460680618016195532823120532475694082575800097931126800270079259431358571542790298437214970814475231897403492027459924813204412512040275941730286862596192634101595294514895883338366690485754313923020391814886222363453080889449930793789622617270916378150415071745881764429518919169599851008566317619645283221622593795262833923451847849725465415362985109806845789541532828408258316118326563954458752917392480526029136272450253791475571930575071231564858989934524288730944656907017818754594008918143968154094751231703687617635354537668106122269380192955904210221536049971588730310148743333997941204476176119613168869734704126030931451282032415034321601677730673867552284225626827979153017233964015034844941829271713000988914442706647929030868108980152586055727066503580768031881072197391655741304603396519194214360430262632037331352970977867515923852676269440440209219103154506301039940265991813647362269273938059079909770376576016162360151939999964539846477969824913339196592403100075573606538473933260158947497627637431170597546914118988393416486869524918202061963755252516476770453934103990671092227850557227090636673308436469701503217361044854504425647722647447385464077203907611816694440429491259664932351602543947230319993669682296252175961679092925602334575394197502430669983261244397988623374756672149044386690721686363644955546411736180008025720678487589453630054061726794923717867854080068349214253675201686865783944223025183369614938013627412009841814286922174176882392058222583141931777998297057017913886426907393686724253500011680954442240782196625574376041428574637114636656085640669879654950797122473821303873923243623103632108050243062885486199794884160010344479870976915284936490889288424912137553142099185187646825336112189764587748789389172889998600381871467908625155308207338886786670203529834622661863579320500299690991097337150134907071770272099322975412157106917041270881918551782057784206967257621665875620445779883993575392104130959434610312070574390916820528729928717173747775302782659288354862566674235976775042485755533895422387986128759948629880782980601049618113095456368473355344626179133302320606960444996534879838516415304020306232658920930758406873834027181823181806245229549965139444094241591075115268790577841794615972201872074161120076000194590585168111539856771191787364175570384665872127829212913681182814434050936022576999320603205924412369287667063186105545566114538200746305878571248567576211748227316210938423999379005934756823059777195380984850569668273083722299897989593938909066955123346808696271201358667420921102353828907756953610717875470615322855308836867708046711062644103415466167388218403844757841869287822599856689972497127563770596264899524556797781679126453814219595433378879293320889306783913975599210831723785275642497238235277445131446536620482084585363434107661045949665504649317694143381382997471831486420046950403047422208721919024688399198511006691918497001293549051887771293237091805751729669005168293785119320018054501670767783781994457283469779772969314295681618041557890050600804721647193755577908503676475031076281773235069914062014481745077245354162049090401992964949308099087036313359835737027580014404118512447864008821255003646591212180020101915656641556578300184087133131307412120874046274185123225748023131013598344091614604192048190962195780597029800361306663016411764279425487867433692880865839335711881061347560662763679542224093258910016110527110198805564479411355465695989169435362706340550194471803716178972227146719978727635650633183253305019301327125582257213606063783080382817173662557554213676653701532526811897434403953459400287702433533121829470904263826909444358579306666028195098946750903977565248196536556902595228695102648531649842992011878696131041531180691507835226420874365995978273720465753084626483010957878420953048246468019117444017702014327521692242435417094450723922061542013811003456695586632024617933372110551480169971371274076535691297701013229325080054050828466791631633028873491089711165858498698253117654550389572713130320728499134851521967798796511687442101282076814508501430763146521514247734518921704715869086059954333709453583376395982228694964979824024744993547614363023729961663018167146896988257949953899707523874063232886279345783688825681931593770902026998336021443712564923838670517433984024472208070119414631297570349031046901358198411349438485107890387552624961004398029464663945272647434164761409624800452141137938511097577730073396505403788246774076829911364188888207823801359368282738720094504340181871600298219304614828380552329252125758388607800020182287013773222232670869779816298435300080729526960325553280139127663578844151096877966575281855964450301511730477453443097368298997215454335812574558553456493851012747337567275321481839085211602060204618569732460254873581579746439749746655901619647353983620690056833396594672723851088223927195830926962506395726185680128947095910126184186376508747343392836193984337930717114874319954704106473915601351408205279651794831314166678303697304342118616156334423998264577756579520812914872188432506010576131888695001226856385954807290988827835818809348736870049227395084255521507127612535744466699789552273679815959280886684677120094722592112124521891546708166772210336080379245709155433453691815613259073145097289347859961645468692122676356983268654816066724144947137858962774939434755562406722829390013636656591787871800039081457559049297031499914101969279931338543702786587989865757682886300769795040595558728743661956630708847241296453517526101752495324777873246624543338268792937620833325968771434850034195323556946200831931055107253850266203261282469812291572294536356650265605442951458282595476498002290069496092800982641773031717724020270595562465711451220124334253609069209246175229459641813438040393028382208490892897444433338658426928103332181560127655697047452121995129685211169728613670532609827876772753116971396505273946692204929420382855787108899775753838374700366661751499785335682408772302062329033726673014640901862412238200702787230336714455209073764993249635585301971082772311299334237029320492106198493451546728924916622367312830663222055582354511427108513804779474006958589821773091864792300329888562067926098232427002911150627586291840340618846208309104134923382119918759636596588989061330628584903337607201655083603722245825736781734986778024954349419759303691164238056673175446403013981273260383851952563997055676374164276377254298364155378558516880439988532133891340053393801987520334321379379054927015240200180521709291212270570613882351656981739315062308146545051803694702953830837967888581624501014226044161701448414698569070369314602015753371758235602652741113025283293040736452675184665011870137120933520685945740145956343647135125467708083503495119534941159950279608196480025441523457844401013709619145989744474158675723092536666480580553120113507381592982011433279494990606031382568906542533747311925126731333420031912642768741522431389039469169460981024504834223698463000367939717300742797301419928150461889893723132825824149070553218856130277346330958575475893015017790322567067729440644908226531282772153120459354952694270586794904597430655698533155270355436452128590704540901905005518531022788877692707831179399989576659121422041803771804008256952171379659798614811168313968964129640081954214537240411831952502966934253155542741161605338898232402769883994734724898634072692580740872449104309655669115090508107883929146452896583982764979121677667679162663900436897504177307909775140206835456250699391153231003009287583454072059053181380201066907524928124942459182204766463737650489986700572913637531033409917736728454190474790933380596231122026951727290525445852694111008391453111798416219439198480046893565324123001030921687477727025511178045444964642101372202761802808994993739894584028128313978217049364099210367120167751251505760195076249470106157019502157411929347705888697092594564430238132336170437319629067828198384480293691862736475308031628102608501558877806490381897571086766611061374949960418791506211235392761418950855403606937194289603606702540804927482154316878317755492457136076020102689909951685160851332989625965713420444901878167462789652209977802972158673889249021267485468711073185604360460634734294798672528110341567125381318354115417296909383931631624034538564873156099244221502779791096879747905946269877083372860865960940160121904900013839349233252380994251382052849616095697758080064589096356940032578661420304026555614725207669218659308056927666316002673506968225835790741323501541117088809728570985955458871813097446845232974342345530904961325335132317354920419335834021237309890841224824285226113860252234466215686922801779142295682548363752217639103774372783643966877928060248644379876305437968405887915178054479921092419470536327031239150595526364060991223005964127639046086351647510479328148223920870170731221240389560188294037491590329249271996238543618466825296331143173706822863486490834717353965575526171655093714121418061540088378088839563361343397450120205270041463357159186110844411719092971097293356727093056969139080888158576682531198661796296108666647567129181257801684436113768182287733968209305178554538333491238093125406001560191841271821840743127276349234739761433392500674968683810014529335918964192954808660706341749826019166407135614765394192476369503021860057011188630007710450737997127996190916927696242205617684327775149447455053203833674786757228270419615317640074917838346316251749626787613040165691105549006250831048541334891215876157344288486662937059971200685340572696166888612314234399699046536002083596030926633219167576331932894757278187569297871751430390827394935226083882761310753726136825805416835267471495273641459993164738812433713892370633351397222308254157838173135764975288349184848399688621470589778947799818490485777217286651398713702442436228774429452232906813338781155655042800069796103928768279991981968001587654031038577892577807494503609789868802260563595696202190019184497366488018153499262931951064102793362663888427939921292896706563077381531034928981243361523568932430850905495265192822907330439733516389873713442441221394737794107003478566947319696746013766648813772167090303619740538194160266133468597192073066787328115154956353615201777066661653763113624815242827262061704905645762997744627383337776065838708241945661567517481293893778398426409833143033095202512242234942449878742600923434523935988916110154330536578290775481191922473361614119764181700720869122027369484809326434679823711507889028527291738123973850887098051247975266617915787040405779412798077972610573061906567777911990453026180922160268742250493072845941779616803818929390790322784837797327891651452095196026802911002100824118824214000454086717288327271021399730248301037646498502559767906531003623324130587610346297799951509854564989220007503357254810820596648652611228983372553353979478262333527859554001049073352183872017970500420024638238170753750109983585194546034638088590075576705020467147444653954061363918795086063073290325020444657970981207967768769052669168924938875707799418008415141103493151543330751465111311386497402739081186891970273660732036695720127936084877222810845016975903534119612845857229801706190439173212236411438529373132099142411905146597954410798982202919511597659803509178681085653973946932572776998521038921070424725844575828765816345225965540356299162286057656111154527165944990127862219694770697316733691213408584966155720196806256899653769863288810907775691066531060054710609496437394458399823705534170643935141727680756274036134903082827143341955951416813909561362085726090231174657433891450937565223989956463228431468364629876877694707168196481940940528524684357331592458358501419241003154906984040441956881603297589157081206246914094677190527997234604914385181684538665930613002853095738083634163390236889903810852387263639930418714831236778752140043434618349433609384623324905192712412692274016196671146518208751360319292881508333406614224572392314638776889675243651672226016350707189861856364760665482579343014762688364307056496451054809159835790616687755736300629757872375687105658399990140164221011416711556336946749363824587804001222405065272604881950306580590780132805650156789861537157915435090450276828803180926882772012323719380779350221015812515796290777020891150695122291407446283896386091730355692098143934894159080206363702678816178178556269289019560740571566580195178878704637621350092339264773481664609375632192698308980892693921903352044918310715274102368377053434550391300704163222408349150477920174208069145248276732311652377929939377369729171741648713383898607266358761692146031057282906246694698412607240190974172055898017497054625854960846551575684175254140430667719516606394713241125987547619404902802911637610172496159327329488172309620015833353588882744787703754517494717244017361839774421564566443729327313622543414620231324899748364746748680144504542759544245486534791694625697887218546003828388490466192957457618164652720111336940640675589106420370974838205750886789195093618149219401835038883637133367652397740731491254345378950693449249108546577332717587257543615945374531367760353887462520145912207192223891156617970780774525228013795656472445352585786549880729702693386731840113598550067192675009383425737321001852521703332642778682028097487714726864230929705117871929517255819704825439292706366837296284142565444978559530996501120330902588359051971323254049565002998435850574015597925914221311460589110427804837129725553924932746625695180848258334465590619483761831669191707985922167206270940518030409585942740790453015649173157922270240403686515045226241489438271787137874138334029637044836478585240807519354856046709750634199084711503020851640486573498144514772923403554074363414076909791642583419716488664348667166401661873285482680117872273864361220246155432347380991371316487341373876816559756651476837397451658861547433322430891226978934866314191286580674765686748200024266467403896102640586626395548064679150025034753445892174600426217846993626910931334156427523195573248743564121335912941634517945831488453646694015154543228429709111622489917674225793164554398005093216248109097678970404899872593253939965475146798755122413753412454033166814626723200476875746845367308429782634459508618324829822231963102600994633432320348148561142131565484682591850134472750232942288333163452619045462903194631471500068029222942769891643137125048942856548889643223966933382743884029266128944663476694561877247526161582399769066084482707956103444577014563775117476277008169752951336109710041045847791491844617472720280733802008282997988937138224426052279889442585912170822113152655623188458098029310651806628357810529728198208518686661345839633020343319602850758054632172663844878800692412741774875880913316498709662970214642319794384216541684618827300287064401276667632681128969395583414580968060178268437959887951675774808701983439135322463579833242502015463110651189303136227059668619378864307595630598573742518059423244829208495211336333109788367896701378254220993119720352681259203848254679718447982852977555462231304513710996081867169851996651263275681500589362002486170854022055158261039908998707948926050287839196668714112190494981056845377858316481624032354117334280531252110797119513245776597461679550517009912350862917427104282873488057585611037987205293775268912982672668615801003644143277982106019868235693607374936702729432088046417765118801235328079232082171473403095600567080953844044886892710118656677913386235320055747408354563111072997359093047892541968264361872903483951013912364842112389624826916817357659689400307187554602757196758465821559140913376194312274863540483198687704998871206591006367728586730374183296226393865516043205446239027172818127175559749278768234580862277426749847210036822983897484763704175992935252873565397282192591037649120849960389013276993718798924021283208196116680758765632314688184083173859258712800979636124257566261022988892168422032599607123488619957468763451069225629843900111115480778111133641978070944110522169524155992933622349585835578509682111233287438520449292518586534038215083985425795630977948904670247669022130217873899800473628842475799844174758151437022493409608870658203011104975659784293304027074016548423485957676315073192826079755971770729162411730522501191653191876951956813631903604415552091256077267947892444238582370047804259420746073828595742738199768257697461558168052413215163145030020732164887546538345728835153601545226639571065224524274514568697093588355427910161655082036534154845546498239247437147032588402989582237572443374521552733240810881904411624121238847272789226541969262051406894423206597418416268259246127096037080406047172686590214407687270509001147772718494004184716493146660109019126458527317004854205736739282871609145039652749725256022686937319112214626496228126743953476612813765975460457945622333591432732131380292003613875643318580210855700515805163390698291352019217675741106710912041924402469831539112751085771952686773248604864951404996539684765146233795675770304832091529932734630779877813500296911363230615001557989970182381953706142334936986559443171869351280290444701769423926602294359365319640483504161349525544445407795881321949868517170116599221739443482913132310813222504324120983539930328734808455191047459392782640904485556255712824002117397044624619307051746651545468736987447573308892581255210621775472675758557980446879016928766706761755412406746236237179260570691088498742619666612597655590117206135521014717062617466721692035897474538829041002799563750265668386285117776325790155605279639520780448786611209075397572705172299434785337741739295055755542046248498218530987450678436889506466592101202529878318463931157723865603417595537905255623026758334038603560675560659116982776051277350576407514046532713055185503331082379292233217264948199364889710116903765440232804730247493746846968353594743498224325232169305467098135313527154974538012617385265427436380814663445564714193625790620581845726922500806302142493493768350810482896910815894464187948572272168874579808494339626775252248747918277410251809174343335306580768323697421029374736995989450197407438369307394960136062889755490861082423620068343667743455767748734797693153978862979827483531346989142894942049877056239074251605068900345348715762010843414549638482825099757951617498338083842731595180897740108274515804737087985574490339640064188133879252786065009008332075026528482322026105591499796853018426775260208215977968026839326269282982971747418348868967132046060925310682424418748440909944116521743018957576395028293594687964487327599544695679901582835019164847693130451370205085428828588891521759059787376047514507098651179203459204224650418368350568843355521985689676440706572629746638403068666738433366020813359534143097782731348386418481721092069009437063474643642885837285760635935166127514016950029942206095711791109956055062871861307791941537507613369427701231753105099346470565907755884186581731486220548902064345242841356404100605218375646574517956579709378907812700649085299679786310175073774259290932686725028482903361272734334768486725563874366379066447754214060915845673989841697684389443387389045877132566616942447863426782429561349459670218259501273821558501131349891709876123753038927693764206002634786721039032252029597914928653133335173954275579365817356899450057941607846667673452922283830305426428294623065640721477020310984994656063390216312816339562623395394342433132889513311517056941869559070567054825555765416102866903824099680289069928853837670369659043261427632592791818890617527479022683747198777289614885718983928355687575936649320237012871997475952293853614800427450176393098215721938694068955401172691369601018232459869935271707035660564704269577979828066353059092979655936533124610171022236255402216266189429968097324642253690566606013476083482885191116109062402869210392508850011809364247393194818327049283694524102705648055314329199828695361527824164213521566267981070411292994196550943035130197299520842295454843412614094209939806664500299061020382085668344277053128067461807533326656902695065349465784690940617240760662318298626854762932486462195853444448292158354154418145128701696386468649219068573173436218437809518578108292260979297140249089507373152180067379972023137452304108014026502643196842333873870818842443386133968987261288864555420507974696308311570107934360347217774519338804237991475887678697460186336647388652742995002077054616181375983921197078739486888469482376558707879266246202909731213005561016126909845635005283570304902365884512379556724811608610926547485801963873902257825578279428287566312395539258753605174843400115112598322567785620299684962537178147819555259185627811141416012542404011108187351664485454355751636189703005419220232157902083677500018932294919677271226304549430774307304194058038879737738511520725168993331563897287717800261135886089558491298352259789793923171667866166850483463656057983756838564514369977638569507365420551433700233998380948993185283559121254974284064961356577261564547468064295085669767605838201439156761176492522352090917820292268404862227909673298401979564676341441694810473473884511631663481835851608325043304535783396126509442343281813413073760966175076615111709506141363226195286273330154158297521741179007141490339633234489260444923779505888024369284096423300697085735762975033550553162242326117188399795669657613438264118141328025091009451242905219489760931366913923223129703456246669283699342729821887409129818795415753531521079650921773419998928459054054126372335740508012973565095951663212680433178835230730560132313033750977621380847827001080628175462486727465492560875375563965909033617568813157688720987909648297785216599495141314094732113447590056270816694411937513081856118353348566035728717152631046985253004226189789936704239311278224898754244867711467242429120304045305154139561914344063436027279634710900271496780960566445713996890606258233465263003512079996155981737692182956408134163584840011322892937726427507153398131849328125380393846859318837045997057696156563953592471584624175844693428466953147128833152167061818588453578238267733973034845041387435370454641382516557901868309511072089633724104484260544969535914195140209199070058869283699001847692995964874163719697027853916751936759798525715686357688515614470143913809986108982826002042912058972784056594490238578852794434321680286618031265177223260422166130124771172047335729975001577438550348576127680089922537715489940588518133089124447039700729428702223896195460130180813835986016397107666798159007375492495989511770155196025157558174102535548884229055773349844590132235153577376463363237511417610118272341191930402026108367114136869853870081123351984599355583884052979373028893615066866960285725121378104843315495757647279246008708409390783875764635780523705162698226931934017485167852040926180304272192803991091666175209051561171188832596533070407640953137147104932082992104668029605359731235798706111843550022794614255063347413328239138442994503865318797424648831336504469686537429463841956497313172021218466148113715079760945686149696287926917270687529829994077261253215533211166681160141397473319820916985405312195042294323458769573714949133619646601598402198853536225243553436183914379065492076057745932359440085581331205693426102955853298929336673322591000529601349212159131551565986442425135470347350428161011688698478732852153536307361233633691193226527036702447594350069957842662335766036050143370108789124418222412037452831648874929559503496827138863627691063691134194033616957889225613901481651521664640072737281694817127278372190097235624952215309400869447576236366848652162350856432972154802595689734302156368183594598902742531115508274434599180225720702694631507985038900472560840884119751134939570398683354035118180237877197067216386103603232245109868743151164907406276726043915916852818724656251657794104446617489810107918690443961758950036869242468007918863619323528007726951086676370073502664104879329125240811025919009124039615296373188618055261307999697575529538779082617096176615698207801784649042295957079984695253697348308349717524854837830063707245827060531844695057494114210517106042330968924403788135073895240590725702077325011207208116928324861313613581101436628314850766438574035112906377501186342682928086779262480115088101578186597385607725086995833833005076725646470898400106566012021611334938374296404854975691023639382448931048270911573525992734341107736681792281615210824055551043659879059956766248136594587353160384087571543871515734210841620565719423274558207324544527822905226421956137914038384254780015917927462135287803581259643089750729813166339214359698385026307558982655963362804352346695029693115372423484721946097721772640311319117012480767782315161736485080243171452868244130646387811988534508609467229363622489578833398256547142352584683256548919027697061710491230940070663501006071826973980544599010465239129467833114405090139179038993953845674792954918044184011530527459468516772645375704297575432418802350692157470814705901568462625324044957676822425494165596465690952829048226490564343217061531858782667385303971514211808406629620285174380457650640013492423502756807481306446670964092250692002039616763014256229916540960255934668780871437546931687742169090261397924671418281263737634774334649221788263776174181211171517040935850031353768820578705937270398237378637981476832475625738056916492551786951317965663856476004359570234526382091993046216802600515453423084747884679948155658286984743239903167229459958521003018589086363258486576488100239924201886335191361991824288758349384254038947158363474945235441938246789315772192922068234364234246658543207215336592482586560016469587836795722053782105780980145881203780644678723067241804047136380194407767218038006465600727955797644797362710859807047161654465742620583033328115757860136296585241321554380521371901101799716781763699665635508612248311440223340151272674346985582135757488832364592305827475753175555326805238411219810599903031666568416163694634695104095913881024822500608719013086386152499986673452641591266019497584449018537344569707793873335115467674311539619209552652861780561107018045472768097885245894387291837387454882907784143009535627886658649978386262179042688945942994041946083629886031248135221240655385160904987470192376786869969384039737271867447420419687198427365184750705539280606154592464953576114824765732939917620737396504911576472862776828490924727074248697103052357079279795019406773029038335676904210624390239845791015893520756117582165886222718380345110179158374115325624618471666728251256751092655931541056624933784356594786972793952583764822686785362210269826074536395233072779640981261762683241559930699173317487620041044401849889451437583313814571717446276334478103105190929337685515895567770303570426989214094635082685877239197530185188108627976669622307575704452804365391574853661318185225494912250645189168903676141433165662276303341243938309726071325247739286321747063753872138110246236369911785607646035742740257979992684331187236112138795916932740470228830750942880623016961607572656197637207543440393806090222831396864435727200482802585031816068892715894324308810863452810484737440383571205413527644433168998066598245082150951945299220180954152006571014868119247511420433807747032622653773586050184243585023628977061964168691863175138267779486698547613167090520974926567184147637637408335259513998852485938072791462296540971066297616695084573439044943103005727003470676917400596280311853859621373150353881920030101385598681541300333812134870388350432843017642683095115235507349134473176369985982062953390966286609132188129594711618582790857864185327400751261673261123383098272463228988101957641783300327228352678691875586868636426460367779905808390160981262040733543889541111042263944155981131259560655826416577121820154844140439812298755837470228424687512412561638838890395402247919340919673971321113412543463268298123128354131643817811180559511515386249617332694056618257632790980811815939815778968013727400261407948114187936639811247078982658667538239790729680378951522235344598523828085892441819774567027414441094002650612704057637279757276797081996363017714877797451428579996482708734610940675347937065004420304638398414012800260017537742745762306432049723784349497092179951302512066118093528418622463452343247724909325054419878935970695247048780261852532802646272050993762453317168723013210480708733984015093014331627918232393813757681316181306701469540131779044638646925652889923040224203090156712854013303510515765467941797389080328882181943851279249101246956921126650867542105382653871412544028905482550867497547365050372218151915118668517018161496596855018121690186847078020586708039608015501704401800803948121939509379187848959131254258957113867672505381560966405378646781455144887114660533378219585402592172105474079721987525053690138917299945511859705068580760648783405007086188638890523758273862087098786530160625657912664783425306229792834550078549391665733558185874628189909552376623793500210947467425538961637413390537327051987055701949877952929883014081091110398344608283195652838314394122037449317178068612196231940448389955413104185310521891314282112492914137296619634294399420881720198216309528579833761251676141124470520216382644345574546967584208871909532777742048222902321671421640584997603303393599148822487944469995818958544756882884644026524387330050690994042522398664046778895600648596184630505132150123949561872119736225153533984790792590108686538380163614047697657345441780288496677499332599193189344460300945337155448127459142654789058221267808940058802350961573497609741895505676815955966846520537537553595543157819243874622228929164711956548368583124346861189049568840579996305819465020003871372641833094043196728734728108842964932811748072280879871038800759042223287505541176353815850497377661106448241569683034678928373005166353499188276281109139458624375516459290225897083969738393590762646643052789486507270439368062642957859581526815192714594947974845844175448785526215779689024693710433933173257295099926028240815256158793565831972461128211784051628176494411048973082366091303118545662188470530591567383710591986589553740685640839833368042740103421513662260642099874659312395262248705614329260312896588843150441286218005902256123328967706992506487238386606383368834034255089544835666688377118200801198961777838504512689591263610030427822853135883727066444840405792320633230578864852368745119145262426877156985385353061013393766576673493079815691405222008400819249682296376533976599704668463690447489714991788316307906340645436840948712817211568082147213349766554219743742576271654727663914459965193996163614591099211739616819376420958454482423370780067874880719700523778211078940452898917178787818703922962523217172914927685621552854706062450247917989546194614162608334801223887162085008512278853501460325059181818079217363999155040082719340171770416311266730778930724816866251550938523083671264524996013392244858912276373963257972457235756167977284704155773319403983963880613845250338260181171579162447041828442626711096306239192309995076877427699321217833926796245459286621657208175851370737524779647699666553651613641815085556228254951752392753833210680582805784617011387231589203406758641059846594361906345641482792820394352108731552606431737631774032953994197876929500081543458976467472649486094397367088650289410243728771954126635996680441797089334781017280371667841635685423872232568549034562875297412743025799875889468181633304488369919501568955394319105161312157365301362965877735226015817118418526476747089563392370556028639277893493579776158550685827859637218817210852275391858970512570822991712121809056566842741810585672252864953994484385038444566499535041719085462111499020633054754722213651245457261651024662618808590446106451060182841544171338153330697974699104566477196279118230198228379843988964112297270734502380415044332483287449565311162020266126128542454967074442857748552464488894281249707665309481102357267838591154219722648300332707247590570019160215285571950210904529894357855884770124300253748270729962448680169717993385451620629464867521434624892660537582725920774361381800526328157850946100718363487620439553907446525303912763361987119200662537885030071038457316976230771545957261069730735445698100570812307162068257874079087004098623113049908321808362252402514230877354009376752894393530657546348232268729216859651179994111846372608036460206855806390829071381877110915986747439070152536109716580418207718112712294239796560091876846959044627201209669059566619998453810667471950843497525727280747453697092178869232437402343209702933790142190263484606356059889718463865277736715034331958484306417498073177971849186412890443682018725448463450160654155411624145550624622407347181144164539757413180020776437419986708909161664758084222371250424536941943750458325564620563396049270476833432175447938136268386211792518048764854231239129571987238798356251719828531835320393987034256635071221250756518090127766444013048656970235113179989528695041422340936517473065718098852709931781256426103640860869282189980720433272307742013320747084019333544139796461511285260023563186953256320067417992090033000395352702862966848071341253549412582413750165503451186669218524147919362972140970317378464243034001072061189243701906869165984762844278977996329419830940419366842564779863710033985483859118746135977542027276005043600864566919266471616808086947692249888285149977019659299232544557697370380088186414769112113598484337875246843553824064124902260973253362367618378979401168817499247652549666189611121723897024588678677878264028840438242034468959215149738151057516118389999521080052024036737664564024044103776121867015468266181344649939518904795845614911624969680207941034563715928382519712252363173345832898221584836336928709260504822217633233735270936004006605384312479769872205167422674180308025431053070712097013755704354143404011539859036605865235881645833481898545239003953663561893803469161469110987288163638745230557946801327762823338277490534388720413106497020976349217450689802719429165892705052329000046082719855515631627318075388884157063417273661841902147121382338330659496042134900827768359509901620033889758849498600727821435773169521968034243866335121337939975504426603153740204669648465920137522431698656941635882229895445261799756631699562848108847507967866890717472200865201034798179026413114099324318479804961374452540902593634848286203671510971721600988555088698408552211856213181803742704457581618766339493541856630860505030247623530930577594234728835699301795935405881169998250510883647653348624244463730567865656393764665292284520285700703440388274780081618985681315125492421412540070432459601692529819235020025516203165597093450292896634639133912325970096972591764586774363507679196064705614659623627761628094913460732858712682837662371890243829936194123830713597361410038985017291042570482768032281929671200031952886562051892251186560403520264433226143222067505092664385195988630136724729643162255123210789649819520240359275764173266071166007893868251893029191659559616847814549610679908484857342826561051547522093279347764722716155705081164278114222576758321367713853904921531450979684568993166119073586126047987253021394545787974655853146049545798521961809415245749223016495219740729512656515289671736373228526453561008800610943521819435052051473005663703932797847001682998690269665271169671214055962500739414791978184288434212739856533582589583557045221941242318376012652022111307054779080316694639368991166467252247794709135763737394280218867271479126149585981161999007564321755514531280353328621245837216329351353908606248768826271862033262305956714279605345138180836193603282077697120170101379295873549896370460605300847534531373622505611536275261018763261404470504293598621607978159527282858596301921069933137022084082988431328672698923951403960840704245587021374723119600018293095819590997691578595154465493702401212447271812447047202965592053298088924519434545679076288489266672930062810676738310002880835395794930325969208675465916314666806862221610791493502242831715323479984483603140386962824738648185099422881408132257911969899199349539887988327145996824558476382108167310369987136006387192848093295765224616145584406495576810305205409182845937729866925241388424656048559366674883354917867303196590060536429386397338618407379624417212648127845871403844423565718964538424277483118287119336102800101790975747116937497451761006218854287070039897409949819268521381480147156727949582035550992270648385383992842220090895174005185662492295431862791409156589114231001207249632299064197101636873707666648228001479828651312736678018605831557743213988760386928782981599984157428205700354755378779147599175954601283276326764996276171194647616660982173479073601308392994663238541275440619965358853826534322523393010580100734150087261271029901347377920277419168434466531930411034976078609453329735211544322594053552038719725888490790871593190947578470580350523430415516432103349854895761040822108219630381151753518465329359169929246536465048566123867470261175324221759419054108661143218732465367648400315944290990578725247287154657223962906006280106132573756120180017233693564493307466201038921047142111190851013806015875340622160769786378596494712923980664489278632397312019952465412780209226915526593124756553405503718445325656187910214530271346433773898777012205500174922253045407135946071513934648710123239596564569114591441213618270992240010147167056334874998230236331954447549091709546335794792975088348796278331767229518006459451597551034773868602583232971540414576493229150407719460341716846481819440468173360971590565150180813793602457146320765110220406646427497740481253382508841904346710631751338799983458136154847164630072773293731293748292156798092608528016451267098249997654069143479528449025721446994651670645282152562988652516335979738882929007449632663201633490030317833702013095895997321865770345476090279983070101125909540913105102789412790539870631706193584308929608743153060263248044786337809583085168461317970948664129711607529368005062592734411012894067678388798430995722779913765025028843564548958349804422254646803529933461577665107314922237020126587987717712472185409739936069781161689488775423011920343223320419693768968798720486407103349543466862569446650532891570709016520026396120691388116051041043042907869537708141481996430158296843099712564200369713399415083109710438117479326516926385541260185530069591906221573658320720591163547283082483012527437709294723413349939910362486454663370659711738351416311395405710281076010504525390763326223501539829935731341218952086528311240331393249142576056793408261657850910156957718936814848637110551487688469189006248823680350263480900046314360845817158082758850912047404134541230905616989707087992864662985664508497631239695097382855811202471000217825926142339102432764169988916520401278565769719049629815779570657420451382764640858980463767067884166837066630776058376515506550210835733630466826299408265439101920358448404341039537817676008925815591326910200927646306774821461869985584272615755937856804866599443755922811449972336288735850505338138366837873130062684099860524271985858580066590481586899130070360168054819063964727953929966405929357672559361750349575679485018921738766550237140013396571179946311191748829632044322461999537522844484236568373811204999160584528538941545509994455433556832583032424676011707084494404461418126708372839040611333232941732358602816289556356680584324300061630883402579458163100626724938195341483430358463957640761422817382491551843299426566637885175730715995564882243652190587040495978589743959561081878197741349009693180103288664276194168667813698529112292710019055287818360485740673624209478535864757263448232481014866402185671118524368421807384459250123253589005049830190139758694597141067412260314876189214729176455899992666516426678319039847646832857354499393595076574619652924522718352492686048672732809292274718643113106281606211809404197114333802441388266895041293712880614845237896389595817466345522686546416082410471881213671605149141913834907899429037234673249886993616623756591282252365147130275946726075524076347063949447477671928890339590029620726529691025682906766279907845928672386429501760220345153602897786667325277148003783365143944609481019011242586047903483814191077056502822884959838000057428671617953705896041120955755848467905287653334562394195979250817844515610993089797906942827121987984244082273271124569880704641621401832543630647034800910589406268218850410428254896692076167574773340884780852000010874508363824822703948623125928916974046389958707776713825932460802816981657665722404173976462099828294272856539992113695389282981368511261917233028917840295084812859253875487797779879787970760158390817533057355659029525157914468617246415814264507626165699107559984594366775162431240498499169429109169274785771165978967463496261098072868475336879480867686055223950824247248312855304853856583082885827077468798573218855381338252880040016580087908993143086597443063397803151537794247617872340657740921594895435656736301196864869282565676336304784527309769496219361151634295079996874842835012672215085319168743878923189148549813210687632480804366739801327892030194341733463913461619422490731788098747297415069636374960238276946405849222930337915402978312282971400637734677776559188719110998917632600344053201278736770821411512404864308332534074476576202328811800516302866071387845414400846819926129797324676320110846671234071379492898350161503635706803674243558074211500291236897047965917061372195170186982549674861966306070845316557920036099178254340376568366982808783078590203642870381110153517774307419952933729553112847172132600851812476464931779066584109777571990397944487469414941176060619797232222087482582593134679045951052394270145830135022130379997947641372439157829611004646366504440657988540192861448992351914719877458705570139943942055227529913265623183433826522551479071343463225827057110648674370188708204404048570867503386154884346254323303766380016216212602143588199915497234715223371344596496334444758646751494563235536894351363473811398686312594457492483344205205446527635777772157801987927446214407994198561020554553534371396121245671754023056828251266758549209415349511424541883547708634665408461263468590440792429039521062125109585148532459577724225848291006476900522006451689320923353140323130870888148392902722802780278145258844615172700144422178670714229578728458563373002690628080992929897629833177360382203384775532304445658207949456151052116018038997424448340909957127389433178116316375285527843951227433397250477389209881267061760753547409624382284891416616736645328940850398252861666048728927496976987204062431781435685224584131670293633924815665860186733149029697676276142884807626238960771812037884668422750282512198303775412740394454377241529969259580650862919474052571569539737836900288671198586066488194886796137861648308065997313282468636516950649436182642954016374703014253466887430901515272758505831715632078717403391937100474601850400962380112020779039118071031415189540679030305383024221917698235640614587843223176525400113241469606500082669391576122095992014775307564613811817395739915156533201266678612249642313454023879387050023353910286994969388376768441911726296630601894409702009767635848686762682432318436862858972228719324140951929444230227007074231293092137926313143547365724112651018705331473813097364555087900112676496853387463950830179283690723700739219538538447764918582215739830182418625876154236039753287688690978979573644951330417988612426935161186627930333058540263102719130669212220980759836005865983631158353481562865406878488782380836374475127214461139390781448484645364557340767472267222363623749300348892974901345933934582443754752395792272876883051394878753481944735109900112819369201298063071297032744611317041128942841069140501548070235037018071879025721575074457993532371054787632245054412503066673376313765514399639878452452898098505704150879866622638810311195503345338555949538089102557946807838358292493504558285965288290743969073852444590464204982571742554530809376398730634103971673772049860551122038276877130619759935422981002923107859374066921424782406816279510932301094463270346412870842433831606935762308071922626326338138817342079469478099010924144731530265286166994744284014108024001769508131630272436504704691991606751553163013638062817494115911998554687281916385403405055922274390856775238118778587491671980598584369532691774332046029695323009581984438525681633945455633038243221218741454601514359581000260464878165397124482785713734459887075507782729132943422482215318908529049118094351640592275330820249436874572760236624800058015179913554963353278978728054991618843126443181696802696194038169116494602300074770341090956900829290424693010416274276032903493906975828843314398453959249916469735782748873534529133080426855410662512835846002470436267429861692943213084605768177965681722316353083679747623230335832860020834914817373674088454517261361594925304304405384896907825658394996961773781326409473300256949761894165231989011234456293829261044032817081125906844562318763040132751502977441730095646054433877894537044123401123846991814181735459622386014338562012586427604362892855977274698163725178041865992640818359728866453513048231864029750136238059353496584389382208318203374763472741934661960571580768375092212619947411670653330365528062974224078601876556860129483939472607719249931495105558637501691887589199197153498337537092583378066222683939169578065121882827572982852730658598709157644163078375989980556771240368456551791465160666582817863316799106349804690854437421837190549213621093739680716563773772815692568603052145312093963962001419770826764393426891847406059391246412396286067006805363347706769703949759510287319893388402871327060578750659599914014619604427584084559153436099423537506630220127824967163086481138210141250366758885858860983790316623677592973003325970417853869885047432036666411761966167379626657066303782774115638517355784554905014895880857924948615753741614463726936767390566074401047252301123606927684643563635727079116324819333169352061421390692862106444369393754836670535757717609479464852794058916230209110126643103948381274185023283408752866873708303536699611027790859283819822549704652168265770130369757944831020440681924340826828053391957646631481736956072931735457628792631169178059703146911574425324369570521724418848137107273029669465246661293144818875225378660802991599956968845181770346296787328839474940311151397166788791622819503982566387321152621783606875633139154901793062399959000020285014277764485936490544732563095285201471387908008201823764706071612747491304941809465444831637126422557624925401288889511432738965094767116337426446656206117804117585131592919366972691138218625149466587282766414346209558348190112405821021128668542303960091768666276451940025363853416540316336796537258159473642599048146976458080133348809893020468062511007471939074051038735290914433866612115182185858221108749239083668624104594265542488969541348307133159413300381262198552804368516248687687974472707216695513785495086841209711679460435292556497103144011047106624086744289305651219060103596294284986347391796071169688171771518107984081673165216248832553745752954726630769348155527237060543181145313095179265015083858177865554361668404188649376004657732794303321803896409877410519820001937629826013926182554168676180324662112955280205174150835508346453543928882901740777776386879066207812983305742261119473129334964165844599239058577110493879820626822598373122036835579958447329454952172561445626114673504204510202253810164080566833898672042050348285342352695624422362672274833424536741265317830014601625289030851250042334224689839541989268246565579253518612102048727728465418147319150795019966609325788733877278742040485244713642832869688790114383802092687936576764565667975343278240434793063604544389839794712193526980527769797653635994525014856413384819977573782154670886289387459665543238643173229728769204223356522840035131499101084458286770417758776388906499433541249965924920047223199328665143322681498712345575642255141750162656894368449438647040409011934628240534589809156020411560008002141216437735926682995844112055917415793129107624832880370660716703135074970493306793595142290587602029415096234970504199138908153293387468763535027793676090278901929121613553396413581980005767921585927898076025588653881134666469064797420661092279937110388477998753502492206191273438065284905186624694296857040912026473642080519121946537007236351135543169089998716004653339873003474905407328773571813472934277874500247912924015602707083921361085898362481465597297672451491245119123235635148628737161238212270885037111546787406484968334983023271308207116163838531128195785785578018883137306193414200179636322504037721139003951668126371631043844650219470135582576402987272154192805187794125598021490568599637941901685199375265599699370260956155393413435762399186210675735669211904949182421155916803431624848468630145226219758133381152590454818398382366222344633594729606321689376268074033491131846818031152198621979398902787759442730149927381982446952846424458121989608946157038940757669881329281164534993080606289483498608201067786877980760640755056424734645236494822477533457291312909228497706316991414514405829576523632216213081789600641215776826239007315493220662441549628654005533844509692070844223655678485640066087018905849472046296567321913041628336403908804606354685211529248637146534826217055943733720089814980366194568751801649370047829552270281935504041278549535620813425791340776185613360346584486441927747632312466353014015763211677713811681577948783864885883435952060794349737945265750966868647871592706126662236189732325912315305864556380284774271224279285075408127900940488169325028597280205278853764016964376513512690075638882476223164286215004914223811633959743116968580426546615399838565681149350472514715354299138847817024267983903486396109725517470237099903926114754868034321250416369085822642603440992635619984660323816378542312830065610026770857688659111186750816158295512285948139898231718601063062087917344938479527890619582592764824291238049040494746246466107803898672751200766048737530165843765598205770201635608029752250456471555186940413303332639053403787124726437902046067654883731646702702132671869951716569095886845936791280542226992672527287174410078212595888812372183941803619429524858388442754444742799143458716078112714941595001545844905608353459953013020647012478853534441952621589014611778338815359565379691917903276269571336968280749480314056713344145482796005463569697068539648740842476169499153777136220563676031833288247546127914564203375719125385877342908001734111296068466978233988208305076065368465315511687235194067546067736160030611986698664294347730411615561498935315654660491731311112548505988194668246998746277209012217254461672904126649817802834780610753467052434062012206090194257789054204724995847346691788756298919733817304395065067296423606315515861641537528652606236267909664399310770979573634568291688701712770109758949218541861468379869553894440245459946396357794900959968583073841204235151293962284657182704123396605511314765545108350594496335256833608667724593820430318661315557948398006348086152250579885122314589519377227660862446132843842123456286603701118550305554200018394844750854522449110508748321124461157198915224323801567171377067301797925932705056454733197310334429580103090933450951775648243874715361673139428901015007133227997352227404292106115825457464497258376425571422960098845515602023406687206399552320288734908886639817303189764605090991826295830815962992131848289222485276582507278976354303255962235030953068294621205401381181495335132681100791758880050345685397898589675862649498883909429051671143504154441699740719591849542109592039264865509373404530918611271261223912368759938366550694229304882876358405780646960888543968256746914350879152447895761954379036105394109531824037545937421403403925674577945409890595670931980119705170861509753592597171893997053280414683413471199392892951617269331243162017253632478397478093235557087767201142720402410348682207545549635917163008430673907489889305215233882036380527322409581415095020038961473096373326803045408511181189645634242901887603592362077063234073302496633769514889246207643121070505606509426635309904217094670523780624913815650190216284046322384100261883798525799648408764819193089642164851794747806783384669480259466084305019702179784548886771161063152569195612346457370828939040187829375665135537975028075787817076620895750228353897913475347802262481222555968792835616104116374591540066899665588354714825407358813250000409836561953328333206608012040902899308690498356160334995382932458047871515064529789364242913267118499304194823958380051839345752499046248980981524807516141854083990375972142742068072209549235145175083899870799412553647827568885816018694504436432232282967337416427270558830198611465131681673476318779228663433791173489633962771214848980202148046746581782946665484306872000652523387707827858265544354290328868148500514782876630922612015143920053132094113205292066574650003222943358343753557794399999817838884991245042990623663456494209799666947579193079328326794455164968916728390003623617684631327676515250755627284068606178105885753968670091744167936420492749002081102273418377050940133641223323495065237348691832753732349782311883677877269613227150654733894611906234493404513637348589719060930916960187064091401239207378207840966353331904487416558977784491967792219687689238834238333922931710939894303079112697197676167412688424562413079966762955040279712533088057402651930708513173788567641351274586196263775016002406555663848954660537476072847839626015303975609382159411052075560768237744786462620642872682267011884853308484022599018337559000276653669771694428147543581018203335745663415300066163855365264134913437551449154796753483052630688829383291358767279371707525746542810039121527563214046240105557056762473562065676021985533227454700630224870825036661690661805756720240146706580872888939991707584703046393623915211379920565841604747582210681194746352451774282803524487840759323537480203105615903231023153639860635045183238085373371009068953472334054153056298740743748605196438934051019427149906503114387784361470012128532078133417509493097111599159350929937282640989239278388865422270908539463750476980657062751691384109247370902674882822300278418273742471031285056451911935302155444729102682375695773685894457490254519692731050028002922031606074784813231058359017318640567812516972344499925699780440130805543691067386796516122019946033620217545985971094173913063182444780954130421274373833284938338259000410162365028833308347674383937972804067225111774275932363726435710375517079242611695984508634814229068740105659134680867800486964966474669446948786368328251129330347767099918042434176944723780798129239123835743821225529134302138282876559195154841621739600384296062468750409437497447731046956359894341909651402038072382822797405604223974013956905836558959487732757054181477596559975870456791181061561821490220116923239253740551960236286287078273021466762203566127188270125497105200786286086913453980325233689642681542408596709721891290101579539980205916971104814444571342774674393114134324533901754603572534475010274635396991585893395904442939557060574372818185255635870176978819901208361098432935753184666832682465713268630648375490344186885591863053887698828915704417633286901621216854726584173345938260337153327186447428888171593505832705949497384961012103158797727538906484587320013035516714671808837631755748171998440044590708605521595277996339349037337664069274793007350203613541585956132974759899504517102430022777506864070082258274422393825357671583702058988117480195769986393138033064321004054294995298556049844013914430190488642321868996237732457435247682751318752482916426442884948057034870340181046870549679398392545444686367013333843802515559243124230385846126081699803962816611627807995857915616116886368005223925674571750775162489408929494847435519000730751636661173348704334884086002383634008113381513228722117260167919784958060030505823729031843173809362643942676659821325695851632253020319001054704845987800688119411660208956270242552580629036472667051349950409967921670030259682322804843364406008588612084314995341959868976197271069660495806823926798788101787018040642109780967104850418169522813089242875274515498349962879221755396932749833357180614769772151506999986864631450989405808155237702997473839053559975665513417052594283175936801036895175734109592612167221151040892830875211109404135620288841388130706690129298377371781451433550967549031686170505127108512012404311431527116745573003856524404560007727274600571017094416618278135723873548027827276350574196842248695023504943595965420865414153714410123665401361309518414727043012476568592759015248315554591394319052456088980494478334730683958849600278906987711515295142785202792746887685739332651595228470016498817946939887655475804951948816311511292450976087729408079459541132134621108389456176482251685234048458661249436192722132263625304485293020321426628251874646268981208732618589790625494556291018660247827236368059685879132240365581241366213367831833132725068854618444394856431616905898033455983316681136763951368032669668079862004397752934277867419167124248041506521556174830999705966914303995227605486253874377517806849868631844815615648759888645838595244948953956960628891428488949022933247796742707102760592923793487251605108931571523134180766510607518079192925020482828729386205025561306059582876759506866525733309720551045896414421199856777940959224250426709592363956415794119899251636424081984626451830132169920925787865000380803178379762607016006164838067263766699582659358230371364543975201473629671866490286598038014907609733908832925286298830517297104118541153348238287353501828773438241100347865827029580056987680314064622774605538051060445195870692035209358331047586869107176301679507604922170644216168510738952788404723050094215046492061935990433543681937672295139705060063266651870727962320717232990477552198696732715217386061278218946955135447473655759741940692794997095999767447155891241095032288660653106781659380780824102311348570670852485845676720533286953041122268815778095485804452959465407318708414096304874855536202193965427437216347659113219120049719266258538601650125868580502028264218078512021512061385691698470926442899655485816114850875334380923253650977468966822847808843852356686065268550072091620282576379614161828291618196922347546858473814620527880634609813419910435609374850603049124081927981584158686417831252833534266801006190103867538026967924255339255583013233205949781742089872995400224583632457745708209701024067921960231943084137963485592539696903209673053379334075971642844778199181958985000841156906758601783844393773723521804504329481661025382321833062185820344664067674578888777026705130862916896490543372143874321521786442178199091276526611716448589333246558617052916039077040268207368698839947333894789443332232451509005084295560341205581245077454871010985976719212241140782047100532546469978660501774056497430312405693458430537371647798529090104330236806812313919674082423887146405558829353541734221324617099468422461991762513214894410370214494595462480119383618039720400725133131229247479262285567688682071681517602475654783589280167165297883897961102179387034177176732031039288422719177295429882109713656654510848995971015428496200345892334026769030445402499187473888370788282489361288549411541565121829021035465175796365855830071602900297263644385790594556215716653801793298585716415905390402933542374641103254324025556778652253921235622371393972942411787257543239212527288885518594929035957334758352192891135982084959410838491244000083871923436923906892658055239148512412868910322078126156459899949543954258433125243762916797405425905006651546281354667960666955758281220990173910956483465327608781759943012494324918129753396737161212786620728774018709450651636350242315560953641084515490819464115753152565220771557200743297054081459872997927754586690550818005876174304991719392389292784443812454385963255379232899576566611148109607893211266401374986885535116583829605636261026912436359903225416242389187942467333483995472153654448306765949583600822477913225062289074444230924648934600164166411189447612470036206097472540361888092246303496531128746249015180465810489820187273309421651660525569309913663660131478741314723578529838264222439228248561728504892652675496542912759139759548981908255828827084630319367407974601407169360874108311751020179373527339384580754229935684056451983029074535734083581717901280917101419367933541296914574639772054315397419590243928911179250269371141914129642327133188671637198662116844229630076061423670805344953289601269140074290227959840773576279061378570979616860258706083373658012798956495815198462619611808075047769475338700550056263997966343120388373972885668020924069683072338550078765988062045024420813935565602759492581674005877712543955113893185575251661433670457397029387864121590020184871283073001943698013563456148114750760333959298153870427007596138381973019342054347419390187223801883370646239151804385800688930292705660325826138671410896345798687588512984403927586574940438585420067252044672281025267076671794336476008338855172960139600325418963935432570650943272312808256912010119158502981117055124284637536249071835884471765733171183037226564359170993249257069603977080216397626642409398540289634519170777533879455448987881216131771591961697532149953441979904080202254917365969301259969366068472104439559499914067707278057875984197382662820180065012350701967599557194018338639894113131167691239137499992768170114693598806944242979765191355109444180755154048643236805264510601629226435454597785641091171063247465456388562540908008597477603303133953896213623571303235629945914919848616275937767159591398200300326625762837757248528693676894357497704260779479740591191581764714265977163327070447722418923990649868961079323116070337667443050223268069423621880574819334261960336113271096414583818048474496643666272326528452840869142493765345028068036950995757690420103203763505814784759130527151114794661417437505894654768691265591201706601674603715303491114015197570435248487649883974186462866902247881929894904792094731300146597593895387272117612846367422784222683924521747620377787450326380016680763022866854392253982460334504032098160029585253103901432504709752051746628721792319408775594209210279269616419963268696176504652732188874668085444490376852073347065158046278688471482286260287973568073275444209890552690135284517166581700720722017489078114214766338308145912788491277482508232186121295113657773487938369279458992413047376767680485070071709134637291572448362699498555002289921536324515325190547075084271512605689100484636804830264960954643063996179661232038773101877689393253058214361587513881751814839578913671673136840007670037272980011674400245949890932879247360406366922356390577679055815421235235919082713958590193459667006734640988138945489948939353195456728619258315381769156844872587924165542202645789780608961772948095964484780609446407126560867585990101231393087587261627735318019722086345576801324043946720792127642520748208997403966371341752926961207367019033849683692481827066564327833520965927493347633532798569606569110524455676515842548014492381709416116984790640566483363134091705417830906587382144381506789503572348101230861544929443991650458456667166702285209356477123457248295580533069988068133153177498130791720765370104457943282241063057395621274759529489168127584344336397605961084368792475705987584465761625924953905491086069689524274788136271734308951105913168873554378000899929232927760047865423048517674473514340225670726148042569254016787631301008344309984865368774895656266576668069865748623884265218944511110768165802334204633512910390703588450593065930219795613019728119781066063654461766484289616383280734805455751209130888588013312856296166649787832915026925091552262581936779432062412566142907569259703364774654743755723010595434976775307192675460007100870423730224909346413538092970982709092861876127631645116623985985272528663154934005528348316455035111178881930017689295080335330017764917259070396928071583166837125557014734268330704916008761611245029476422363191396862578122000481352248067608913365879844402745535786933212265180033804010610571599335955592723429200850014594830035029159106338829565024575890743765869223985485200816019285561848292442922751602681783189173723376682504063078618962395545364195535380655138122712758191576249931978448773691649836129467556878333003016955108259401493058677199950789101213305311561274071719089219929312384859943861442513761855191001535041236862303133582312968507925310977555544171770968008101896238654381707995401835951948864310237865879194665684617265987348308926102769828098134067863168472457503347766060927665531960334712077098572419803955477150017264378482955864321241014661039316615080392327649351317757033017635837135176629913313261570537855090266351195430079251432155347948058791222451712200817517041646072806743434076024145381276001987602982942531641253624666539721921628354231798442703525141405387978413148480689159203674533299991623057835427856389330135420530188315887857167570004507056436827702202433211602827750913748576412974562706124186186532179595425389777800743834116059159464850214932053276572576877756270414624778605364848923646262091911929432570559461857511404648094203238741775732840172313720070906935214424119027024463581881617933081064180424306337982940952104843318760555712645931683839562965663532228232511951991785456919755314867727114681064494054500263706917900382535777581867604167210607240345824222345073958379502266144431878799443482755033201998924908949664828290372873025209866482081960140214590391268648014285623641549230111650283751186006225333934610138920622390197851133402039428429977523860490217900381502665807944821983391335991560105768721412565690789904326410687380939037249711468904928377703584850671452421809294439825719939214677369503521246296531839218415574097435910132795835050313754126930320190816029875054673581846393416354512648146001273480536325319544328597832052283218906627983837541161312320788147055622588462881540838752673259548890145618265009748643385333653283986135853279472895415501476587438170563137245618174865870456132533816650207164502888565427617986176140665727307838764865260902457761663871257082446294696329742517636016800302053446816941867184923067926007365750390851685677260891166196263424437253541866893879423105383389298405508765394589897636316802840027698568142700416332696229665145431125067688382678737123773268103463589634844804125378004896134549404340323490024723559386157908777913085603332078057369365550769346334642063573651340241423030866476810576490738027579272179698514725751974071177031370897084825151427942099021020541823395449002022338349837540060500010832142736610743330130565214314401223063091553420742860271724353399326170457433031446598662226634208118139735941889100786230377304439909772481116489560340072050649245373320105089923651619808720242113912205314000800632044024080548305829066856140430303271741447572909562275084312973462483315047477831933234598545269306016898723946114123085729666020529239085167212321713948102668449233651241263267843288150264596966754247981359854712039460631434789550797844468559690222363145163356438353109074797776299038993409457843558080074588404336255660321206790762734568396059890244191243129123867853504537376314366564791388214924552287778480001113309575375832466778466767081589378097157531063142986353186465505137861362597441659581429306464114284820124111943383872050781320253866558924773938378752875789046653455170882216412043676207187746444643661744661060099566117091307923483163158642151952216159623794850178717192551372543017910844372141556262834313707344998607231047625883161142497129119608290305370254850185277217954019511913528254534872811573115242387908314611025869751857895925691761453300427089857258150833158786317287701888146377242657438112347598273197511858506521729682774671970601406341224572825651435738156636531737798314647111341413903667381672467935797911587825010387941543541528750936693737322317097136726444093468708232556568709198299495995834376952730422702926441826464733450064701345913125827704867792422172418661884193024283342728865658197594865230325376820698896042865231209518806438811374640410128286168565850424718242717597432440751932332103064541578398121293921436055563003402409348738222700168857852621536493163650713772622967181332519501498695418961489764988681208884654733490546810729769969982760065785165213457525461997948881615421974210032189148667345448491888078764450745883985844119276559723806321381512569828410259627697189617672863275676631057314122837541126912465935207980272496987196285590707267964993962222809933414823967372764261012766170841207729663572058653680814747618119499176041920341910572080943489038733197698733485447647320836354548548273858081051981209704932979995889860271229024692528532195039292167307109586060411791014450264785601433555676161129052335508051787564869400561738018953154123413300923296121957849192122892187357411257595110933083207750469147235370266769800210555990952922215276356854711194161786229525650430498926355271150900493297805153659559410982508784131776799321658192506572205871507272242957851131248300408456074352539044032136139447273286578774318889707594987955355025302059104261814394268643668854724262552023637187521297622227858903875167299941720321826703046312513854474271432162070630540049415263564148621103760101908808063539984388139242402302524983547458654747623094205517098738800474745574514938331889356189867671962268485023070367189341923747304745820727968541525626134669917882566283948652891528574429267507422952076040610638014790776053246553995482363028454430696485282373441749592988764103635768058907379776699597561784626780182235617376041404405116985400126003646291831536341608247707772291637772626556756131516818978897115054828349112842557906777255130433439438106817060087460634270079680557420307890257613453536827894198038299248897636798890389752268549512952761746718483429030865738762937886526572624455935100612636546693296052273916104302369340231848851764500218323158736808772288374848904146718618643678287947401157754478254725221129240675124492405050604263731560299514357026997413092015132823147591039023168359173691215876868698205117214470613443135622302645247936999774738534023374967576010230154620444792474072207849441028781053425782793701445527311928810041609321374484004219679097216862000035555265098905947237028424111189073987857324393384486838997094064093308591098109265647897665115406600292556881906246971228698991470619676132033516431679567880208157313683131435033952468596136712404460223683853955432509091557087376692291760544642638610199344589460586986024758227244191078574134711893090898762114770586788069301368576193962248245373604640188279749128049910820917955015811018411736383799208016641065190148568789854978615091605193547946015937196843197285807509506688771499207130134841842929662372452002198114182820345122024481959445921067390087924699918549080658242491368239856006159925323971910621235671478051950411922773468224501467115341968597588320043336883585112376818499066082535341241401609011203896554560219948442967738446367223811055212409790076882866693899465453521612486123686984601310913063868977883352966975923608467542382215946088899300386937203847104463408208402135548207585843148458402751358752713562091370594757787493767271972721654677371882934362402344992028531604022048169226200979372445484561290386862845462390053451961734670422649624382165761876292096741505785122674251261844046760848583400206609971087762585137270050419925102282645859566426075163297927246186967691093454270297206984800749417271286547897825722880932793242975636443474607454678378409451768430024941476480701154899042184375673728854349379749220497995717018748200160121368501412499909602334534151275429289349755824741783076082225554463043074860473594667071328938367582037710622374940851249662734507164157378466917291687117079294480554161947929602423813183215674345164478277531669454893940262227326657508561586847487913508597820890050479716427263807876706082504141319096935720737296541016997765439578564053586571776778888230134437747900862678265152582309468570591646337962409021819846243166519591655296682682106959203883388288811682301662819301329774880397444586210295155176297335878476215990357661430738164240001821831541250539967325355747533182717235960232954964416508099730382537181693708788853724560783331492566562267898818278911745105155905124662224647861818068485515249005011029744945321774507630339052164740211404023505820515999348789787214782798143305942997418662773710652768198633344418851624281999254480360082647545296092474917246850181381943901809143116125290262347141176546703265287559229436601800017750059019740071247581952256656152361680296165219795006696545267219030737127797947147882419647968600965233636624055783619636629260291685950883794195085074379329692367038762697636880265672938460994417873546791187966232805954091316617277503179964845015721509429932141351450275904833160450647999980579446969585191722934952223300931423952724824219907892392199650242517725362278269069218532719429171640231248600221194800083004082298292584142387499000371282743335705361048571041253481937052618885574320959617340001146595718285682649926415332647647619119545099851366508680736649612303073819779418873509817550353798030148305123654604826307969274175562511328913405043959455213382449865349683371059460044086628485532478136068457641585856976921073336578295335548082281938058733390632246834182874867030044602564915502933722522459404506643376340900526096529890395771741800138597053312828629171975448641721698534203826326416255078437801451335642558467231458458413240257027378575698959554274450036709245331353060919425519663752613476037456222017382634864215300000950005396562646430978445943641860372277292937263189124834838513243814767204946453735117877507683208964225220088534293706487872164250307162709498590035056301101367654601501533507805481187464093794425807965332174990350886404092538672853246435006474720239445481953074942682908993595015173905026866257083995520369745327782335747271229426372124889544362325948273098086925416943730013861034767779130929714285884604708280093560891473923575935360629529100833841182358076551101760689605758942687865465933197407112839287040048644948446972482094777355338363013829713797767263677042710798271091282677380955328445122716853802427605212477657562473435080785297089375350532059371216549819481583357190404287608434109761993772804980306932422284156970674740256736123485191374570643127960021939566908307631387927127517466660178381408294131842110874695620316290772956793383545830158414149670969929514437254011042455011537827695217482006967335146171993010624410522581538763222366624446903033129666901535434586029858423868292995462657672637620146898087406002984124558165063598938070154514040827100488825533142840184859966760272263958815015344268323742443119084707585086918286445165123110653478848232142303167475740728592929606118864716480439555351576944075808731708643209383770637572851476893190494815338795261838174876482471636985454712615087373237188569427277973233354452010292322617948273801773995470102572194564141536517110040011401895011566453010296014377446518207755917277923575903883298835108340158277962070572412505176454883716266379197081489678604740039539650805168901026876492891539462422753574794635390503841778556613308196901432029813169268052735620455209475017474812991661444224546243112038517913574396252716502113880699311530206301862873455258661953416077672239928001991308488552395274287752963188339167252531187410206459213076572066481764405047141565208177930155256183337206855273305743460917943195774292129334878507861154551112267326354829466785168754245601036614588219461385026906280178435495533470695253771728894686665634070156137356283704204372328823213199231200524761035594299620847802271238940538804266862042654121387148504898492037380167256782394875764648690328679821264490634790214883288934538439822981201086395193047985002769666222691391597002623473295645723035274523185383782615150703793387971464943335214644210845896233584641594271280093612112702525645589833501458077216423275227188997616165659423595124400924087127208708016038889299768779465336364259356594435143690873922017631795090637148379268676414382099011381290060216548961077831387258839013130355278168758386652833870153211484673187724963066038338984035591997562811784921693456406787183492149139639976537532385699516934030771645831637012287300651088622728800909474924465855433614965160114770924940394598610704110763770179005577479756596367085564508082828324660666815061066901408425092466266535773247887704871117293886874684977721831084646395628605181904363699543657265923837306957707958234759216545379123118432172418068682501886291956747275308535588084388075010235084739130933724157622854625206471525134707148760316654956877247787862443955578142656323510005311980148883932829793457892223411216728769184407704328283268365315137839136308264407246473150753388315569354765911776405832311138554155177451120081320819689951309138750846521355155424971855279406815777645558134586705320361091719344164240614167965008196890364651897326820426195278726021995209926606548019996425101072100183762281900562678329554435962711313822225838771561529678121859908271432819330094557815909251329690901224250367391764062878912267240779350833555183312805222328007607994565611810480913376778293379220461664832828877311554811344072906079406930358153793640342211015562914393079694574760127773840700529106131642946374196990110121420812957858227293809675168816331193037987707003874848301965198990019313816281735553734042144118527167428935521055204309316389125031816217418564045110020142942927514711124447316450016804086514014775845539920293067249725386929992037414201643347444084908039825787665906090347163197418157296951970460152574919381110802553425831605155652934977515215533560602597053057738490558520737124309750531242883945900529050921920314913747669872229695469047142813846292562825460663968111141957011549578934916111706649448992033534203690295566160289023017769167718011355962732283017375466019850732513492096999955947594491097442369337665689683286355438026989144967190670643929770009892179755884530369122968596372083760274314102373138214251946839999873203164821408174845130623069494551725076616184979983305511884604175836030856516751265315960292137492599823841988384322718043359303089497997029035672666633647327387684697221951221863565475606274554871568613482790813007931777867286588107360156446996527454594393030304494077546822095850939437713069327349661843965392021862192848929887066322323193971594719371522419224984361968855434742320524090806955625749357731709224530120468686225768685023562018921236846406707949614056983826245931396831475531220366396029018400273411800318819189639151611744950647472442987262442205973949932435003868438364050357366136210322219226820275892931341094890522162388665803746526337717660909451870841121306716741182583558168984214353483015582041970839911498327289842502551817419640890550351887105988220767968656585178527441228015660569612252103398861534980294642305475166385987794127019248881538122252718821343676467857612556281585806360963776916758486198207041115875434920076158069824536197900768460579255805956119749388431575273446070342838530598918606991173998132340155427953343945351591770774902592437599985577996719942975243624508746753363608798468483308102265555878322679588830188068711341382510631654725715995450493997450633966423105725446265217691401146957468696247359286810797521786912239996689941931383124949945001232070434091693512762612056192634567248285835200168402655732244221147153962990940504391473645451427362254754926710693330191968982867068690424274635721976487329435055505143988042985873098560644432425382544106372937195978631217704151339928139359163264588491522003363740073133576386275696634365728553468025806807123136901575331437122011617703021152295309452720642306478200347740602152555044771811237218193948564785904380863722078186968528945544264685632938212781646544412406884994361771847072470669053413789672257616412612308363068468668382088471051736387178474001699843331801839232622057864422707496624322757270300803974521377605241261154622426072780934788843886395139638883690507112550279516980448006034066524329826750756298496133694012764979353363975945961653119183580417816379870692285780632994593104376752871927080771823652852678453395992447542510964371492231619943037487997064769852945023174321070698243634478103256278920434686475716927245135224675993740672265885601545841276897436277443941371265776591421986770559533177263112399494059433542523044865383478025144909620559613193431792593800174270034570766395521985306170521908759204040494389153220948002559153196519612856924297239754387080562335291263797226720899772105858262433064141981574836732292217583408086369761372334349184303841797519307391975057561930003856282809339906770118728721447103913540418169064261761805974918038487451144090717937905842989484799638063553945829825143066649768751719486348803643666964039044656423962506552394408275333323915627876623727600343144419710162502876389842105133547600430523338290755986448144854042027232605728950251078874766329768730368605060044714592424737830461366116792139986853131555933592832469073240907396612692769252380901402906824765230374820936024695620097755367260137017168879933249777891483905531424308645320884086980814235616105413443416006769901145409996387248469879108048987092652858819043669776563479535259289400903317059182394568560805551055886698959313573326874483401002128323045085808870466964588860028879038363615118443574444143232807742004025027960730031507814589946924462101059778449361509861736747068241421340661004761517701341696280677243618960575139438430209900291120661933314096953793984929010299573391210750063610354511583659664560410283838670824796692692701007139896539383158612044059763430872340835065339081970303838025269116242817878916735328412426853271727586240718414437343110031988760060763302059494956875682558823156906591246699772862351413673198110368301612993048425159714310288105185833021516080880653124902882281675716519035087266868466511410010810375311047923367623047167520975278198386239931434065424624520363231224618944164058686436265219061455811198535641694502682920453236118905706073145461039651347159870982425482503545566330687041105038921943583006460597333462395390950008745817136044004955572789212756567363882801630068195012460125151301505860756596539266790035457109839421866731969657439957266678843229685729013665739009057975941201709817253623105516386903994895927878800493300699199939830487840714712584826309513866327736970197469922266503531199843422132169544781358277301100070039559778032153501916339768171687190217592904158421336113627644563331575177154193986945763586653226596280125523014589723843580451170021174036704894641583451814475390206919164272911031731532813486987904981659725063831792966493218352741112186390229617383792847644375225856079159114968327404122867671572093147024751720212156906850170297710687266343639414454382476554863168625158121555010406883358800821216527622693496225753799004575400838371474327311932404773240821516242571088258038196066154198453570479992925930826384116713416667893360994472927914118979761667041684423631227101524417689597316043378726776275789166267700174628547470037174154229038197061022040620371004642567624123302340142448190085041727980398443864537924683129694271612173951351482670412048129188764918635769941261835107151508375112664734540371678774806398051055863370415143214178266066732733204215004933753319621056782935900715300460976628991283055519301777239924499386703563767487122535126441758756531198013378080719831486476390306423402524192538095170070067390223251813369209868640877869379054683583332442797444007207152579580206250478676708810282030168855185322384915299273942953147165008509748203964028349641802139845677719028556713982279996099138182002377520507019164431552810624946851278851799690504812920118675707433448069408228835625616398443177096376781793264008285453643545091481613046888148386416142434458110355186899799838231580176727478103064391689477990276351991617962743396116642654992737009430687454943852326138157149291071050601813254031131422610948454019311830581357566197920506504185767773103460233189810871153712481973443104247437433859251457851400339316868548767824206454969487473669088065847431558253190004181905194645176039188921685492202702931831472267727578832104173658901231214423178450157697939109016004119517256642110486984647204997886033633819896009449376845602135722751401071735731138278804399478189889077634943161448208530840328921712479135310914733547359856528922593735657610234008233000395288035663853297078686938171680577769141877872597604499114399823584332882082902412091669025045973077146448680901168980456985379349880118032160992413337940770779220953339680471548338834459957298798836369544749241152870009829581178715928389771312296542815176217365760206581521963648080958098959537237019124090354217330496465811669862405857707130872487126464224623135516120122425181722854123121467119038458044042608155583733026334111638450306257434752495608367740611382378344943536385349065967204576746786931264908982336769861628038642996874561065513698698579997296485744439710916984240834694565785874647729337019283061320622221598901719037792533123050166199646331347220464517690469340553256615680342687250406189154307033988815157304418233364771770740342536175227326660127802320299829165073065661336012864542759975256439703744627962521001450863162725403195178319816711357810763923072359418347839963090133956139216562980419223885569083758755266204084587012200652702149925967157427538205277121044456678653443974339362019689405381934629950355651019544325440494149007833906241554740889784904826055287503568396785953374316634227803248711358790658847594386218204889124973484525398641870769238355454884134768111805771266050400993085466593752383558614285694695063702388219882328110696405499977013504298205951972922122413968466715678286867687392087371623810939994720124698539288783080712622047292904623100099283485697666447376774713915122579399642900335813909272956614950070415339532018420221252186245190245960215319157911256755189157812445611846779223599143126054304304934899668855553534145212606003896023648747542711413565923386187507063796901938828736541912346624189568998784399991375295386694230785231961410938610529058856876424277606853176988810103258397976390837597506835334326323858841623716097692780806080456048718649950672072461743679707120539375211543646706303572732492336846382392198206441608473521018396395041354762603824005973368651493486391580901424406298400148801974842695172487222056893743383203237869459527926854121878532089641724376804768232357351459472069920202956182414624330935583069311554813270564755648641217145917729866351109206385238237607695647643760484305366066246025385765658133126156552815261024549779609555642326842293851433693851392670800693277484378050415769409131143039345065477500544665459003637684646802520438615965425319587334701733772829563578777779399741319670075853119620208093915762972552500234134126337909319243682437136808379413096687876036685602283613221576554390024631311822766467798014263276485142765597699713394987558633470245039431382139721076680313980751673708006457949490448962204040712503042304195298043240719862670015406621344404461092996913013410033727351681429956704818240250513221916012242915414983962890120825796188172279456195185842520647577929282211227270031777044179224640581763046475990244018924268944807538277078077966713194841069869431872774277018588958823895296769968735762487542874928782883315284440547757212107578637625233184063192213310100431595976193330182929357601007723308175258094205458448949254918263995000862358827449001811076786048022967471389407342670351153860804631053340282601191264690554498474755137703693145517520098839011109423500089846800340006080569282208177055391902370164393400172011933980506147235380761852422354137560675922549219210027150478787168647401554832156148449418232165449703941894078743414998009775877366709430917804475250957560762114950190552253439337281404595879051214922442031791085600049063537206978424723314407413152374825786744859989440723726588852692280461953419975111443666560431201420622576477286937606220460244019001369592672436717546437508141554099504984927595067669084461482057307992556931662840473137312341805305792322900585759356045522618308939852458567939189782388147646848253484565335542807949993283912121962439869043343214059844907648465497148730224329543793712678072058011360734613735137109229330102145590683692693455043326114933167276156860779597178220563520766306555783935212555634085913129181010992560120970044300522678027341669594615997170812410672589794997167707890865325476326197161493193943241508396413736810769125484404522069172811138502577148469732318613295963549640335859383161511839377321989971995647444722063776495367526487582841422770651761346470563789202609914226578259743986992793626638662882085983472326347262175967946473044397702151477515864483521009870541945006394476841110937923614776494645938336734497901002549224723248255379463167043407945659186021126649014658470799368874083907783811085900837064504634292013531999116828501567899202508128437855526511241489329488879032478746623272051166464858794889271809194123263885634277478453527020910352943858064507340298413557057396455918790736867421583109333566688143029003160771882263018444905914090859735262161670117172040247968312314978553858811796875587403097598245991067046778590755230057755778804232015604547180182704932678289649432640988748045556330668575718137183486190206921582884817604844971592591237900646957210894525157708829536837461792330968685703563855506243116685623664669561725872881712388754010655725945470994500684275128087629133380153387205785958513342591361328342163498469864430281421935212698905311275880037904521117605844772535042058577640451234223039388019976730079653624460461688752940523465334351165663478407852590979733130588192432480092205067549948437528763525901442042951064545465569496356587782292006412098205330039473618965933389063733559866560810741704179482309442610707433034171686469245443049012068929742346424678072545505452511711816471557837235208937586902718018284178545935494542026944594118474421512494793631543529696849681647731534294144797590744471666828243209507048015874443173448162019227637683869878995893253360123946323215129625699435220075728102035411481938428745085116839257476074808746085019162262063812497919157875164497695600118590466294197994361396248044451102565659453147215758554623915241963731515477740246512002649477046215948118556000699256277454056557529023491058161479420600383985176418703788124378797702863295640976800309220730567186025175318374811514849705614559538566649503419600616591032116914721719585581594780177840630051945523857204329262329328243498156973752341226817592522701580935839661349473874372343813255675996468113056673787568621182053516242366238777575942983780677269989588921273277810021293653370581245893511977095072988877029926806331746409446376073692469067372136032946398667332167821888178196246393196571381860119504073756367099064961125130504216021741712875164888442155318144969989065599485041437881310961868417564877551697967926017302975935533869783336980949152726617228053151151135175333538781335654868670393125830610480372498174450249858352591601719421881358123699963897094006044027292015478590396819637659180410009298773242534540159840303245144295103595998358356820982069117113083079801079600044622649094874248210141331506865794868668652820355697575133701825642031870998787663535682745643937120954000490110954304002951781229571955780917655428182592694253557333415218286871082332147388253497302497337913321535224924904967006209933231735726219113114318194488058302415448474266355524477084382957836341460514781573276925291661525852273947336900794266422079971012228874756023997512899189798953692425148124693084405003202348445207639052007078912713489884227157853173809227195210974697861673809898526000044585480730147842231301893208305688232086634144847382841002722809688741233575907049025532625326125352095714636049063301058583384594484835427925692873451367758470336834303838084439373249810924507504613694531367022411126838426058064118529069766251916724173004245496460169821657229327680104102979917213347307880326339784802388705329948601755250664777712813988535210474596510217109061195465577092039926265508970980192142808857981825277412555716354594144336339884698888166114209809521627370849135050274278216454082664742252933208999799828439707465272955217112497159892117531169999294724333786652496993490093431164582804053180365657991936444701179400975268120343389550478723774795971546871861260945569049160760089400614384321256259034225646029774250905148766732633721623839669304967450204563725727197356948221065461329973539365034350444120224727423761158553889460272406230597359866330967477410270013939189954718030440281516231281232436862857107057342646679350571760868798367331647391861402843799854816432392299006132652470194114902823290172121639141223917841595747591865808105579989579903128372228239231346775723906841250927999697421687345700019508034131404000874343766310261076908704517511107773664687028916399238045763487721692149128015685291783764931022618165514240819217193011444457453056718262767330719845941973206781379579482992091376052187381949072120914812721059917834404827568679815588718191945769435112455301999052667973615584084782471667329781148971891861400400934499909254813618555720254359806694821743044395422716551375764671118631608607272353295971582072528385611291721474751930822490342088085017031740956120225803144480875181026967736195556014436317032725533283748091513168241344109215485144514279011091948147859600695437702609426167029347403066258709706062174481321949710361710222846958047745635358969504507172356795202566925912466147653333763243226063577187574536696211039278421716681595056022336677542500014893488553655391983037112210174164861507380748010323944647823494710862754806497703342352795945876410985579969041462132125156138656069679683839528396760380759756461488879559945580174962798643918446872547338009228192560509741122563402086146036042298025774867440193927912329141796543278835960027855056547091749890489824824171394753691120939726836801301117678814799773978954453345377737913234038729267933892163594276047542858579324116687029708524474527625687914831530171031984234224539808472960897656122205585158206429361932575072953390921462813865012592782973244090688176377272909326517336112092334635831869043552968064328633590861124742468490996482613865585212664827500265917751221822386777631362123257349319151237586677570673965637807672368408409706058846825569642693643029564309483518758137058333532503834554741876903318598729815666962710856172543162800930051680887740377847004769182139212524357658650093329757377615853616818860286899395889462928531129548311853204167761976964433035958697840327648886578303423829356579338841654883940005344592761182658265369797475192245971756249996298694259140377441362659899192659980979698255308652429455471194058002801603834459980946190188653744077581206249638124856141219899802080605728237947740992009357682923342639325524479565025945554200415361324175572665643364335063204187679875767123015270326713471904611188326366795783969528812842959688501709572188179318102454431993464035153927936388049605667048502398949153629190749935292715307535486053389206774624354771299229781781611009066021289294430522785133441878138051266690979153617899871516234707981367236353258155970683918556670513806995599193236228873386835451583299376144391526937906171580124912336548122916659458114252657202780270292910653363419710548622027107305831979915371245629901875052116249368714546603248654687321432661110491316837536016700732497892757267101167931985708503432177725370189671626962236407277695068623142793041484895393490834175041833099510519055053780812548747660982421307449359470191578633256197090178717574644202363361395296838000139503753877376495019696361739941596517716561880856728649241288750819427715336664794280720251833747277852881562484090119301407400163291088747981432582075858176561030060041856511326366507053472712447461978932807353903019971387455067788512592925848691459697058580456521397723955658411316135740880406679996031941468073139481771301231956372113708447045770415989795816787993873827430855142315519920717487674037792820008788105283994166938555875045686790114555855038073877493538694478053596350623122579046794795331552346184664255327303991749123590000210712486730458184500386654082501315093261849297006104369051076793088698389268849891459987778710255070819306528556942311833938722868470754556791003115931653591143207131404930259614153053789311733997824793372082060604099343669973391208980120961470524162591550638270161565557489209507437495651359190100011585086319685949038947087260566655588385819719273370498951716114748959293695457368988444374239928551197798824683072720540366738012338216013649225891570252628239619138163229183377576554444521538810552662655944261147505662126884394222098285446445977734049287370241228865120328832919636963045491947422562644737998665908039194251993954107618072299146887016221286451777278377331005829822096425219198471160155920842297233346134072213664479767622714680921468613590886381253838884024921672121953331823086898531449864501766100832125100436488880701207698017436489361852986879827040395892855193744620628058330992467075834374318795527098828957963033833575137396879987436275287367047420836291036098754395039328029464296274806118425121494051458470737947676815241013077945551026230124887295482480197232106985490663680001672027744989107143495025185285207204912414711848032095341486588474001099799098346108849034348499506444224044386039785155323508067481609895764305325518778034877737623647266459828960167195888686398856911567654619366160102501465388271574306916566689158839111400683947962694950054177390418854964541314804500521379659131183374860863839820814769915159408645666753163565746569904584848593442113565333745249979941673616111538237593717698418305481366663782239240044859787557312525231546723327366411789178375334088602642522930036348260439020363301225644829241818170232700368173756207925111472973145263666374501215794910953013501970593749723439109660278184618377435530256516232091067876592294205553142484053327338441233241835244413115569674120709278213475708484634378288659650212084441114291090891804049981391979135876412881602924940072311213770982809894797765089075628606658791189740210694875503104006229202750250059454247603054315619854170830241722563637300568104446501435147642537876652554928164032072839559209982670224641917861187174146640247724541788003959078963283501584314642290983820032906898094459974757868622825135861511652057234169461705103675442267505767568122879257655837367025927556041599648019734059953800842405141360944046037147790519843992463750291569698491848721347845451515973123206318102459600400406048550631656375715622454876560775273577510190459532863103773871507542805600403481879450033110682261504916513539207370809269251807532148088306707557475044592094601859515116893198647744596791383191031550135404819139146508580116285829746479547395445004651506293170774563866323886619688636079046003597779588992076575779845502919712880510104685463332320376301617937325497713880733235532965352063369500821868629184473653584459079221583554294739853798687231804650365466059202044833604953273682421500448129795010960667607489396184777647116218746534960070661355604695914926928561583792884105703336019502660889376197105400518959279979521414606272899625409394592302707359222553920560002716515710400114629027043075721007235134655252267118845937049479829180777421078850099940943955344351711023786479029657381230301543694432782994059432485695811444219537059550717716714066620683764567029006507005256864421390335378250796450823021310200818796565320255946133540107677653379822178162796547491123109687350315675020613016800372174091249604978161680497322473105153281014956306234860529684328397914963827309380021558959096875190237132464699597582870430857930363078204771348337712996697588385144974973001349561619735590808871363724647701172771947094881772845068167492732089315806435174977232752685834606761564626079144802383574987126960537474317811742736446947859017742021857409138254589170085206308541789690921674520336383520667233139201204361408196663809478332430539171029276654166399637032313783510237601129358660750679207394577332814711440662670541066724831602429114941322503408653730548773958077709589713444318115834629225185782367078803654715454455943595632711620922956643146712156222551700113990127719042489859469077831067945258838911376447041230646742052637039781448717192010523895686431450536928908643656577846287996290417198465904938756381357487511551114925963458663302002854682832210863025141293308863737275908046479320043749057766751288719481821973279162741331654615300825202292032576635099099703628600353836621266762110562000677287870708912934102404983777262895162888802627140992437913521528797774023902518966569999399041141826443634698796760829295357497498206908805701762026998056132349046074101858032096019816953239561601913232979542604835448284870664694142549407233840223382241479489709140171454649098987312616497226935110150007691399984503962689872672737245550953682339084288313872114699708638062286219183107933566026182141164821005098264415087991814631075142812467816979950386063141851251154394432048748714195151773298955326648416345276759089418129678517129168762969567900245030509416969483032885451007864957096323915050480739857752446856481010624232065330918156253431683711199978291840056083675654616771443870651014021028548084256940540734964694878391179235929205439471713846198585474498381392095022666760064259856106756394425463671356530160353814263742356978699401694477285532384524521147893983068262504014411392070355797072439399340764262611464726081571766331611880174182318961456200496566644081617210610372947087229743640872025226206972480489919680761277609261464375557831044336427189423587529269815632783198556803525675063431173974237423251379430126193087246318561156610149433615036124826711218559363512838811719889374942630026524353833723216302755308974573194861777451116932352990918286393401778292647850309127585414635575053521209400386597843200916001847750273045918310089178722058800646243241456616881567422160633858704710062050295712485102947785925962678694894831641680833604912103456436561775874933227263737705825124717304233054329377762087516992359549729864319704583190446547918416805778005384290788787166717510089706161974552466893959652342642732023143361298248186530434951616488230698370071304431538346929679330559444285993896545348762224432728842564763823959418613973509607969774549220106668245387274692367497698970654841348530414800270599544500849044846836216978665872152088614269633218145209116731427948260967620838989174868711648860236156168378926768870975895483283999530271408428007325951440381127288795152523280830203577395831990634431481819754179762285727245131577857662933647200916688738547239567363078866893337077745522706176899398061975964515098437738130310687033238500814500814051915127718550206088928711130560082116882184444393699955072587187171143400406139551756383386414179203209733136565721318279312299607482889956850776630795563365803973617238500712706708952120070903154086697170028512634974676368812762178517141460486526094513183040809200868191315948041994044284125824669771386707621746128990354237260579322444978210975884009645361915108398428266862875849251020294171571716896627766507119722003566919673950395221908484774494184184737695879053282217879589538436090244213346265882794929521803959690195312685590871815080395772961950954027983170258611097425371859224408134926980652102873843189590299578273534452118938892339585313493569374214989332006958109364587720437615155362828160648300436464251601425419916666435350380176832868590101773743844963879468769848557039105891850806610637292097794482898517919055115120169329990119238018045989889198387504652707932242217474888220214818209805166124108512420058125097951798459981201928646931730025244136070692895122172544404124913568123329962882378343328641169321356453815484955669717487403127585182714009949063716117544953187331121826887385540964896051720505660718415911557386349285296646948005613223651482878991273906942650024979857917431951948521735109955932145686562242934937908177994139286875416908671691548188786970206610220167363296571421415839386815865895598938509610092351584390416898784907218866592383858665269111209703800296469020843397652514745591453722609201025495211786009068939183635589685495925116898847029059150425036208112668273686086643266832521958626533887006771574143008002066213317333260642989975360229183868093895543306242680833909583125807026124327603735621657291151993626318831485333472462734855563771924654402860521762826804906730743366746118602895720999333918085511876945274883476601921471266270688246195346214384206688070481340645591219751941147380571415944209237798164248410022891436564698524436161302499729382547600666145889744347920383165431153027900983175694114220592142700915462001858713328348052590190306203168352533259296288106159132361032916298804812386323384557530803662487808955152895716078416263910242664389068589282233482899518454314234919225117845917652476966466826452186707216117920806077472661386270367981661382829788202238719011446840094543208761627712228550817911399759848641096198621442488867043619056087019558673216932723635249054990954329588027683773634937963362205430547217451997178956533983683855598602294451796389268785520801386540237020281476595874096273912030181148432387265007133941876897868613930534807415879437808001003767709556717805666303822199487811838584756254843738048594695442766876408609575267271243603352086435790233420966304487961565904087113431912393549392135857826044645320159176228400189027229925425799259793505280724947877371806514452073898946516675210979232761668358029454182124443928958683232551223932081176923563797843532926531938273127131637452576257907228505539415805167293544827020388641662147511718440233466188989219111375585776718861468027128181564356936839980422560798920132387746181422577923094507880817720900505996148348261370040429861605117901395127145561844899302999992768240230734530052370298298630042445244632959967422377115481162359473861338933493189192075173173166038115439104660376413452156761378153597398024371025214531599203779645789866426216285653475540303623181143832509857668743414329388287642730214372132929100831430928643394142112930997353044561900924725350442979333817539529703560794123298938262917809218628974188631955168619104907044139767617339592641968696084302280201552107079813298504648546352973606008366914649279623317658123172100835395128509616376591175592474410130318901870540392822250952828571364484555813126492259995612327570217607885372505823464844528784212396815215453781233065931976839911478454653958560353014941218434509925032358033122405512139661377480423084286301896414613604172427386012063207659247751214972471160260025283386886793540077856252917545214836821036203310770108070631739368536253595067464283058800151056684239503482767385522919667449560217108488940630514385577015640376063472423231375017241083116967052028558432735072400514870330569145766705180513733455149994751796208026274161961154006678736964608884338278206314082510982054279250383540557363495538433331064775085094143763267967204668811055207650828478902184867259141489085630772404687158239800748274081728813504273945418068830521662732894239952274705140155077761441775971990751285872793368586787983366123882036052129946396437323470935112398970205975544808518434345938791567797418535289769179424435720163511001626013201162114971111801210318426934924633629298288356363028637739565612138904298249300658375525278630351611335511314889427330696763595572414037504231159692298672410407397494945075900216842957435276071487917413443621164912982277154047779001521196375164562027386727063973202100157252078970116539669204819915620248184167679537631125196578954950865916728732835933135274115848297118001441723063997112657105404320545670330777705969236351743483072558670279210530843474556785661404355767798446503727926287725641685519325430993100067430442134500745890015446779356762116166231024173590140393426444137089515091196630910971420467704425138053618859313855639085864622789218461072085958394687612110176129325622954754662540210694605645389108329466686891314865798698382529804902073815096618136667314445922110759683167756723139982976300640624410005592591594838134084115744290282485027031245520016571810754279982160867423526201116382962527985969762281372616703290849887477190876740629223699821015335611145414555297716206607600822047680442270605351431394960987421632350635290048391314802965931542683750797927278615205356608611028538472345908107961371377361971337002678216339830945196192576914942782232543317608665515038669134891581010797318863263078437917724724660202151173547869351846198696617849121788096101868078919242789961202521191657542105240335302489255432170176906669975711327310471226786248452079072647869024228454952116169872353180278474910885680947608949639098662406850903375036338235648564967503071714985896116020888471883257967996516908634766235043052975330923323294679034836190273935322474594611277491525206332395473680525205111062274424829082631135395520153969230656897375680205608438085381450304556957728914260070324629142928441888351986602751890704306112157984862827986897430711816893626863155527603769826865517841502678095157715115110716168493903118775628964989372818074545745192185855111128925830690064392613028117907416472441574288421997822413746593084320001571015313676716304431948318478305576463207342982547624022186370260394353281164192326424963483565175643702902001026458450735645321043837691945043524823654489048695085070394855988664889232232607197079218770453233915901973073004731449392096938837788680249897096900524946391986167448467264646502104440328889667909264190251256629943357109267050709052832177939871968756481567794528571899289537705673303925624001910758931798341317196836970393538826078065516660421574457429550120684330269886925674572251744787659939213534352711220699382382324602736308493170755223614262136448438001290116084987062842715410981049454989057849629974912369963117719630999078218248530456076467300908602896544128277638787982576635821797977891272158529548802316956153999022510411110778840928916419705287488825653394886235702650955778489649265351193381759960257139372289185823596678982958707478704821801493868865242610533325919775079096107110247851628099645921361352388141269728633665164994892955699506514031387316357441133612177633461369237914117764086262661478275969010332452507560799223800887569644960076578159593629198794543244995553748601026958461095937061254023115027523574348845511003288109492504656966252289548524416019292773535981508983961636113486584500181512580119842667361681009262693433170399453829792329251045173443375412296034692323647478708297632348546213028952405249036873408598018912189840281454820749029870747996715965730772203175862149996457199008529817909659556226779996659836193534316529263213103118057380035191597216551637171502169587361148163410819528719464460965240889303060076797040444078920518692603905012246139927888352293871497250882207767292439678554512139042902352788905090739459666495159855593690681368522605670718567959523166178034070843643187712642423357582828096215356075980702734597633750379181008039730572772325527645834713504744698310472085920486001894129437516100755963286767745179736555758621740939181183770462747631337678586149390739483471727779560396890601888518893319365397952312562099762787528570493566923135819257788934281806886063601015485445740237957179032237199559789759419300117735151357475615783957484398485020150141733600457976026011367985269961375192488688871106890780886516705328503898813298869067106291887714855950383986495465162156624440901573758852109523547263669621036065940880163462340321114163807291458055327012823510362992057164979088558731713269390081005275366892477215315345915446501513257171985179253822849073597364448649118135191004802002697735957890836148865958577800371937033658015003100544986723698201310813527890448158173912250440262915428881952286116282935118066024596686873479985338553025067711307274632586231041812300192184878457465027563453152944436378992877828724674064465011675112216738864149629346323294414607294479407903006271100661841929731863256977965651907708778058465597954904441796245659349887929760094355553472666673955142715576993940348213749916522261171534232377877602638328157598490930316107381625905665433747522371285984147262991640789662429955196887804441492104805587929018135131965841364382716574645163948247811343193642605045230726850500596115199061079136896412651857117770990983116970311642100767768310078390096283583585514586859772646512262198406141737958788770339612003195949926416613384848595654537987900661173671075718330242947800605729647590476973431902466412643280055852844278074163393305363399828553447487986028958721360715103141225861352093680011341195883994112471264391638859757065954692753493835220105731209691300221041655639672691183989734320991071835893001515766211811876771378357546734006060149872706664818830717990544716508179362157609372389886584169064760554635147868241310386129672268404467490611310466054090200273959485260294644863254138951518700946779641728201631430669139697036851604814361310174486618490846692900919871801665007027366054786801728734608266377645784332799057200249845246484263465948057186862142508838724044488647586249378697950349974917828359979114649600770347913158170589242517500007883458496703494588796741988159124065387997313206343582009109867155550527146040916280526779695778558645037625304731418185875920922304228059305877216464803737104171605154232545777936153886361228092317781324533346108526667426561526082953313243146293535161736711218617942046661851938280942259364293674195768860772708424824399404415485128990360631388353941790762013848640338510630779943934098026409352830112618311552994804130728839812874194426475997647058952331788688775445822056897829078019168467769731110183658953121427595952657331810050129543626412117636250473475464198680194492107051878359202671225663440583234746518959793311634381042234236132374481075790900517321039834557756663071187965861891400616952646893753096285659347459190920756414817502309369734982013891399754701783862745576269558391922017142790531461633272293021920992819575991411895286441486998727651160654575868675069596172107808074358612363457487166457330523425310951694236049266577781912120267093427076929176619046360318040620923239057377584847634655954959821194453022072408301019724709182993844558170056476313778965273178556918142119509070284193846863114237941245284568538251409138644614127779962786793705463881929948408470362943941764785274303169236903782565834879709643282258293606158082431518507607129762250417310082045551109521812027752059429193008185063061413107237463323034368813064362215927050582575187679004310741151480565699885672885957491403062051898673991601470926308264707950044073785158072622844311766749454264124203435633890030439349618063624354550672399922320954507415415755358601325118732936331173310587021909191830793327753736792751087012453577774331946020396760401431313489400563374671658490714927899692839496053947474109757277422540412658422734534332580394006866608759809019175499066096951420880704629136674129917552341722747560259366776567615574797848650751837841615903018591818576040569640740320832440596466644786485438750221200849239237708861934271669459066761155301045117523518417553646279276977427913064969404507837507581175661920767445394787383153645808307486310941409161659551056070919121959900250291055522786882885482416993489512822223886220344614881706623789398100109889998808478282248175566840406767638052158800499130684488155360147495511507502853640288188119583911486612432336361571004449821310912099120850083684723526757567534147091792133487782730537756482154118531532567035652979266095467703389783937798403034070443905139944713010667978350671575235732510878511056072308599207403920576432382795068409797476773892961855361740898935568889669025568889088505236447181108704972013966130140221518756733603297116072342895264623618421318381330438518367679801052105845448322201370843535884308705945441626079919042550237126864615439638885933795090877980082184296603239043933139753910034245814273217417192457091788070301624394757412485172469796565022045051279666938797457533847306853019371955648771242733112136263868827798598597236404590067697573560673509158923184516207169661935347127020580050684980118067287432903467119417521662799434822356332613898659760066324229729459191756534751791158600481528827967861835226239411999368199352109116386327797735876476027685787933047900153596894754635445129712691459960817040086678545387182881033647046132851437761687394707757397318573627807179190348216045152110606983705207714755456327202090676711219022636150754690381194571574326789685167223633774879740306234407294474970823159467656346022054373813422555668221626322674675703947135527686396256586693916312293355607883272002104137082921234144115026650685012774434481794146443090443407446278123400608130255892446683785219463842584519437719524554978420424860979755862287151622673169501642289412362999775155801614557589957711396366140156492081289984766033766937982861838742805081587004386957471002420424063505968884519321477558257853068373920456523036407905722433686548886591069661799876551187043669916957085960004453346153136976008347549102972315403401646736523319517559924501506402189135130192931043104566184570377907178568274056369556757626004951921721607465881690198166365386205448826516665023655081331542851102032280125692006588380602481343543304018155534436924759087182757231520920268370471079996068639607927546441138173268704611710660927522595499791097610811051699683800161191835104912039675474169661347071112043346988258178077247788791597885403249104942233626764804303436432720963525420384594561805457059165902439501017645738267242601079693365051046439740717462156842749221025782909517137776685231202897662293126475237463566823792019392437564986466607266238790237987873058035843699728780223749814012954426171532292145640898592264508610928965638874394807367197896118276499723842282779583887470895785491311117909877442037220861925631333147127397302597029341701664337919350560475636092615814709377727822374158618345854854049427204487804463864727313452792652684164235116601268065641158411330442583439664963137473824623106775102134589448551042202421548367472863220177672828784458305437997188258158386609019910833017407870412201061176637648576948199555981915710871152242616961767385301399423779643147059550737541237438174431927921243911319036400738563839801907487803382284437826659317046457158038809795225362880105541115373328657182331560569249188776880537110009519032954164607352524876990157710595769749164196314859043655067195319598616616354218035216845824640517332183795839701572123015104720770593696148483029618733037371883130921342172342554202449340626891735129991321920194418822404569932791439690143727007550717705329571281512759264468870368392053854380813361620173469638951544562108870640630088028751573755788588508281681359262724535913390722498541484879845670568881222038971863553950382911066229856319997778763785420504339924567897697385239542849264349691782286481884749032213737753545016908338132419862713862892592705329278574065506220123501828230703494242912643643791679373762545683851065359771403657796306071236494307374412981263470900832736458505526616572962982732253079213265032194176621025471400564339264393624118155297769558723811221045938328419479277606139191709423885155220685660470497758483881618283057477916645754114363302991011943345540900875102767202983498842047535086880189463142847723630911507471756533035218357687321589764339771980384068991492676757078538725124718171507352443969448866655203984861713051250609732736464868099979342649395849636644371136953193681947519467574659908969095401069588365063419897789092116881572437260017460073234984031521823098030934495042679588533303220419895319775437121935361292892977140657954515840236774350055606993766491299388330345657944991190492505180322288629159151887108897778766219642922529695481269867668501717475057582562088893813002099757411277963103064909190702461813117554870068351652911179456334111437696376303219554002287561791732913373570450697795326439454042195374095429565244951452330282845085284776373271042977506728373628455058432854691181434551997796617340348963665941105618186226929382638650184761099673461120403830125054919226977214748430792074713731162316707106386542478297964936315081593743750668073743277512514086028485095703236147675355913034515071562503759065941025658396612165911210839165640091392867424584554280493614144140883243204009953042688890576349221524451994919012728323529030162734473320611450006010701808197640519855115716832669689747404989448910263537848304277954108102673901930116553764530628741232228007720106702200921908258340729212162472556261588946869133948395414687708157879591425744040057159481820261596936310379503426038959773115382413494073132977099551424917844263743229555902028481729414044521208529678253343042645179552925701273029049142191021455462185348455246571518688813969937301247347126731569506498431872714519392063760434225079631688966452870384898712894045692494458094745707424404819625749006895729917680690892741701532798616743109122394065159686246986540399230097707942973732039279655323147532302858451546713123094720980446377547023839383440191582981185795288594106273551487833320129119900482382859585001787465460604928144989242540527258079254207729929842206843884447614438989959460162245321657598392228539450475508332923641247645193789794228774472570216323359262553485437287940657176182319085575163666634317683314545584889420282451342869164709812049883212171246901940586215615983556465895359259772667800466369440612059766367637075900493175723036497791263268625364830168404791117175747079505168911153215340398041228388485704614741026492095259938777400354723366854916492736662002637641360519802756032022905428191270703050856593828513970046387808419702017864338472288299504651812424843738515539333048087626611602359907254805703438914396648300958124602848678210217331235131123138002816091920003226808615651030217324832061136462521853976555402062070956408223283837631311523354949269328718581283637482250957284736438624918135939072540432985066857418838936251635635022874272773889182838382439685622495906463432476929467813078255569009401931136896880215059311081133305162587312246589084624102922378589792416605603926493530068131891878051172769405144135021115249171640747142420467384253558629780725864457710540823708507246486670970540289858522870373196400478128722785964929882070696903176666173790442427077001033861951058931151191622482454304166529547038856146950900200711898318179788416329493953445197860974146820930275827403018648625212116206053191750564348664163751088297209362385955181305244599856506975358046637096818522719434985863982751568767240965803426671056836704120741263837570995674854268567529824962220782454577600038705498322125006953148136174847034977928256905756000302207547005856149165945015124780665613706192679977882694591105518731414394895033804082197888309618642726214828521779052686178270200809170202572370997036032995068701520053255793939243025286304694630679852336385548050924598763154759830848009033772597012012123629755626390358643159509755705311662124865646612834334405664883622749470116562653408301786507025978251458128569444460507037970697725858656168248481289434896101641710260971299461598519937244232682245711816314749636337522628081403087632763203898510859742312718820487080059403418119873914978874053176717295051842136752013324320236768977255381901347695795781058672460195550431146203062107642638706576743917954795159306428193515839335257223823803395337291314253364396844225756654138968999318000223234735457211396925500636520809535050968285854006267955937801755557769067723911521553923064383211805517792706146223790841590906339196585526667860248570318789193678655918521894526631670235855084199398211139361474468972551572847056248236207353857534073622919198833196711693092006956128660194982495456090274249982428164298537414504537133537407307716083389203174047638737219920169347730816496657908721624631439831581690126402619675045814843182227157378938984395257560487555959780474002131917052189408751165409132608033863170575761886252618728843324387083007988290579955607358443295867974554063038071976677445982884319628927387576753150558893849105826060601828179673254019290745616218353744624622939651724713242946274991212582931074521466739486730977728305620582515403174924340407135317043968213362262697235294263780960106133480134180767945154099621282628479002984361105448865053700076614696818394216746123551305265822377133157425325435571100633028548887475455697634662821096627213194435473640253621596353588769596594304538648675617492090218069099827276230882336331137401549508657271540125588499144160838573313404969204616201730597453029799720836411452481477024956211621769129896494142755448697438656687552539079556581828477322581098087025631619502083065760205227903082185466022294689973155297429451168063321909517844229194482170897654238725277028308782712385490800674607073984641391207667651397657429114461349881973508904016315941074474148363093490828560828713462715822410297509529440307642220409954479659613654066733136939379811675217114232178832470478995896296840898948109955357253622201705383535989322754195919980982881480269277466968176152565056840287445576414187159599921489145402102011912347001428248763619487681458669319469752784611688374654558155517534063185954143769552389525661722046587426572662351158422443315187275911050546877692662618997545133131985156347972855253919291988210711621665519095673775916287305206515393596280021165593680412311472763112377102925159443583414815995204310161733666756761532010557997572146705075328295902942680417399287214218124951499928041982683493432351020508046978549015112316209333349269161074476013662984940267730635527881217573871911142752100850311799238417232042027504426310007559595770882310231478568423215511503453660320055329399490964417337090878875983563217098231754431577422703035637812088877612911013310552046810798433183977128582075718337688369114369417070257954467280708357403873733071641832865434803185431560737422030753834092423242244613285768219092639522875067223728295406628039886273046163685700517852894673435951933175589965062639386517889837913326098522869739474055228256978307499241913322489726781305468235432498314610627352325791738407882633437955544097249994420119902212602661687634427237285859480814424003065663919108866197104063402582471357110317164095481802029680952426701212549164534127576007322150957135083417989770827695379639856751042718429213774737396691714024201341241764131378380997723048757121985229922279651872403213469477896285290275129464037151989009125557445921143429035705945331732413400853353185959044293276565148778092502672993557532275742370399732236854267673885215979744966346817653955274835520501204413988968116029786634505168944878551364312294505465814799016144542365243624522945953090643183136761635940395564504570154099971069350899676092692803936880877684311055163875093132938120961085964153632123209204227572012743802792312496895021512745296531179271506444289457655564659348852499026689929836849390668515929531004909026473074621168098641360144491021398885683452506012514564691466084069599965633233747631383085806657650025991148525117341734131849850769767700474124591904782949831720637661368533519014309108484992530346165570402337543027257074600822568232064045895309820413642857013134129335848609349031047651113893520541545549041390212403117742454920105385111518801134791609857095599370082730846418058239198858420312294626038811728679121066325202887118548100834141119253341027642326762536884769737653192372194763711248045123747914062195826615945816313206769315747949944814169927731001831063778527801179645572750399739759094070067749848138486111393765563371449560334689935714461030983613731836808890269444260786435258825704217261051360367219868629170392585476610649281618622771045262938625977213848836210019227929798508624179866368664372957531772528929663318406597221468697722624827340057813463853550614737022463372963746952781265537475021705208124291304194930059280049385045887268159520501182412580698277721008025634848337839565724482284182561254976621888897132906302338574280054717924511060141679778931421695380012607241744414112447566768956614398864611994743524430750694525790293154773531973051501564555689799605637737750196137198863418032523107519914491151247384887099093751615878643184711274305948736253129228320287520448396056114989096285310879128171518789490490437932857188082882732160333537697919620658258719088176252408682639381899508508373193904774294724056401689671742302821846487647832978214303619252829864676057757528318946134028226733789683563011189376509236697560568409894376204177297547226431791830013594778909509158801769128704786430323063975848136546216220922613716816874453110084062374211596393437591766574611305687515612777049044783652337938830305471654851424356325134791408513584410445436436918981698358979011876268170023172574822492789419943463056465885566038621367535772368049902199137777731812698014628030603166455081475973836266668213041824552646365565609687768223478735934370010619486654992968864773797173480382681381862940801126602170989681081343338855142524164955161084816400918792841395778744951141721555590561406751172902355984638199605018393245238023385988059737968735594204227392569992181014549024523283624503473444349100978608379165401845272894468738470974828547226888437558292244903728375288285634128974657131322591915912334648031067815880969620841871111228581284812170859465246617329967562640765805554966435119089658985054870913241546718012675852363283389644406365870772197294982185683288353037005669391121420042470243773207478433677515451988306878906088036223948625928574085758869138922776883351912900248092107523291978624213427550049073235558724570763528516123649227378813480209919799078484429705707045221931533421336576714519303049053011057349759571180776955572360084189257322352137868800281422790359629433175386335548380774256244237109383824346830842825000013854554964036398352728942048237079040920338996989259951491855104750368348976361757786989860938327575073647003054918645575595848063019366891175992316392816828727356009798300598642967676690847175028810849573799535009435197230748717226441940541844841430895425664451090489445003468160812672470556311441931936072713173940597198029278268201746144160469323901296078316969170844803560976980550630432774485541431881314024047028903804208396359672178797417656288621885132156631447505050651919264373256401687611281440735377319300132910805159854592867997141807667057278063769001883988829307044989050933453942227231709350272919193899720788266340792939809203967664399854041662773459794820902524513788063161536837733127975101228566224113244038898653345288359708195954041215551721909339702328030225209075993000116681643019180651121472712842684466989371980741245978728081906179173007007512225554775399432023634185994709660705968530858990099159541050732565883042218921345990958996262698913455867219683365827154230705301347498878351441247590496117971923828229059110890163417783069206184095484227518878552727432232254182158716333212026929392860373702770293426853283215229068929971232069620272892984123683847038061129520662847732964116080172360315933276069955875590923360150308839921208344100656224064468331112836922139724555780783975372299766063639209156605153079835432121357770701275448043916211673581111978123877109586408722406887784279395252624814461524358714624444567476085233671968438496870089594562374997426500885667971769156154845503972977269433689978987145850210659716618822418736444722232792936228941749904701820912617578886546060697263495968132111409308087283320467929842628629337613465382310250716286978800579429216975078766812967497765390443812367357100075868251952190474118394895553279646619373903024659447970894033718699343903986910760943339724711313743918195345947585894686377004222497002010992278685138326406665240695284477694565844548249883694118745406441791984228127334272211386664519630197750230295885432008235803055678539943250338590369334900464164896161367709525887814231837565272676166056568421479562096416860894067045854810063368496928120030794430905022823748219727222987402729627673871942084277389646047687231178861769843132479032572128020148355787694019387579591966633103666545834171253201858365816755612508584775462648054281880689349986667027299978345464904695287056486768287285166655684432166694922627843551692910741025435292377193666874661483604580359539583395699326160436429213202463343589902922953832991626717866019250440230816040474014387677946297176955666105128810005457079069755416176340355290203974488751342777815994389607845998199169134414951208996382012501459242897272554363329201171945539295017641025601758434542398587616559182616814371208983805724144027292664470658330384123425201790178168694335248382505129366912044996333410390184042029321340147978225479285471335141621399923229228617919166855254196065436224091957667759101846498974387827592015491151859991688483826244308160059388735953480958293685759166319284920487246286892225392346871904186901475591346604367207827984947699131186028704173110620538098726397161726437646188405455041573143055801547890699747901566651198837731065205903720495979200434605083307539275090718184682601042518225493846177854678052476838075974391653854666845920761748817034772273418379382826609474577505109148738082313606340032846391437186828662324651656164628582494965355018825786098855026788492469041311243840436707677919163647821844942344168028623054546827308114653406015851418173845457550547378172620339896828724980223057337542363784963296855084890923373743342605755559282948508807938829593579696816297568369775388616620570065618513509695899346442948973127640757760027519314928041658107852317115369591093542480556378057996850880786894214753406478609920885973754026674704771267928344690996100675834404227443727701952032645986800859693153996732962640496385158590162762025276040381475739179431938316489972210733936504846061224829130165116321963488327752198413445172888928921758093600443784874869302634117499508473775534794712000409460610396825784567422470543065699959668877749586354325992656992898220098882518193955252921316217790554820131834287576857003334664997178130194100087548963881022572607667933643377819146369019830197437175607815054234533748525549544402487501587500688855214087481003073297503454043482267942910665831788903220203931849275606743933145342240758666166777551764367586992369836075372681181936855624094329328212646346974573021133447021182156641889006412027543483417039797224820890342515413948725223685981129243389123310712576685831572652016312746709866850949232329186719052637016505216327494501591167646091024650347622984555235995432524109885655448969947505887635492005615627200725067930245310241731860707625661347218151835022217070336617855996333835039674066595054307078417525900233856219869944733201495251496962420950477500617301814573250079622726699227026378463593670597151337885475088006041653810235126192908102893408702834798779637704612375137530874841304820885495727302509851597244975735946471187490526223077467009901508559785059225364214531214476553566702340179792616620263565457217651154280863228069218463192908237037806361163336739007432075745242579105329651317573806080063404394771402529016321799370598072748463731466182568570072710605098514928248156977942971599015467702835165837328295606650169398223739712711055749871655599450098803255435717523587793535039992876660578705885443714241326091027607664987672119141410304693522043826907647023666269995155449489268279837313724202889398303958696363789508225366691144207855719303565064534994569249425679559816605251022697052622501050149274196856170677872184674392810452410150888238318582558516961335279531705813432591314306676893030810428037579259879784700666578193902837355499955623315262683402343999967598716954118641544888053603330742775463612210061988459189795713376846723340974928474886885973117988079907896347663625616463662020094540357792329737523613035814033363858636186471675164325247011672084173300293603027493141690046229047073994518904682851819588842244908866574758237512976101113278876582688746679703124152330877108457526070535289302276613354674882154235483711568105261594403556297766893652704144308226375170952685752372226899546484680704404765266937518063832765955466205141511232503004771850539376731299998590422659029445968446037417103434587303179525560959701201166904804113787514478381745293097361967754809667855468409498201886782799247091203748551133563024350260819705876588617010529842515930468831166545088877068468667333141084501487443920117999718502661021614306130988208620898821778065834690090749210592167305750878522752697926735960959089159258654793021924019734378064598581823896713736716951975407612281920668414794658493958614516363373348816348302123628878115476465638063396508102699332476332812443422659854108650100419477979080389376605238640848274441788608245399442972193138828946420377082841294637386131637717518900144438208837854710807064185640240469509806025429705880997433300343133380840590739916006863489471853050763255840045161760874033839137414225122243751506563773146304275876785269286615349034197968632434508111991182009889753776365077641534573601828551067958842831989415346936510466841131541435623856103441572928697683851633319040879783926551258083315696605511566462857114436967181789488674791186065030114758421307982229991861670774583028321093031746558419464026037847326348590932581231281104170791611857802702169878297011649770367872426838551059099586911353912450596378565387472031185373451748761368803837893315922931740717855717920724525625285674842417293432518327485456979650473271338107758280756597272751124736853499882933305754837184913514485203947692727873415258368511199566611990700306686337733012234570384736119263642139107815856865758338480570770570107471515330799652880102557315444638626730045461329440483944837292582725156839789623069946708286189672261255231538162939639526619483358925498021051898779689534568931044564209825971439034368785997873387862052980840716162161317059766274482247082084334354442919473084953306386730982599130103363480057695475181986854451882962259478373573576403917418640003642527504629589645999189926171149824877694884246111392255573471121901195217930455613530317638154918457980294355059980045980434192151550826334072109817166198392066474462068291428598333661926337551352042755960454440530270720872764551195135411090860868929647238373235722899303948820688484975766270619391364584109818181821666166128614269626214029841073099796933463051813124468810353940742108901897419626471221504561815434320517841378603516581926531557513231219040773667757027171990069298427401245127900070380474804831223504161043404991264553200480937593695788650420763741959258247193131141666481015561047117901346057001069178763683646425284645570666830348028480810531674827216354852480670731344307309319205082405322315836801574964093753354719414203138759147615973857574986988032904743725356925636169355913906869184758246431135936249513065168191709186687451266806754977152650330208522393256705833909059081567088593782161194292298507079008035580775134240532724892623678786884390853263944740574759819948372255874198097456974243283852689623643965534027621391965012511575030282187048312601317325308838726256045641627918385669342247280522698587006483601429610830071758675728066532263441304538444023216118250209150405643765154905044146135066023677926656096816762688335859819697243152864510707497504508411052612226425832156298631232020891461159679064859353794110424236875310504821907995687143276603006900795708275895284509123866050551293765705209308098714688731386388436396174620241827556556006611287546992852634676910100035724160715312123142147526466441816062265773620486883371701137218235219106382578717276088580788725829407385347117742479714684739076464276726995245149035389012195217662319424779873697283075000365346149880398366862853838901061840600408534009545321021034535787559553434154541075359055155973804116801283682246331435656107271834158124401887238107040772194748166582480073418940635204293805900276530831665374954882652821321501957028439677384469085168990090945727836020924449776743698105921374615178542293910300271303802440283839336916408047322122358006272928042751282765244794638530415921609245354304165292342136350260825347479056948321669826670039034796007038605963727760832057588211657772877288584125749377986455892525134695264261267957085619886377476905942212908058108772148193970143108811408854187556778318571043589747699577482217550388885846663399258826560173880154028282146060400288059016125932859718362317284024029023828565365437500935492925271941230874076821561867300077307556077996012439858937886676712032642277243590610411173036749364758379965218751910388486056932473779947257318406291993843619974031177359390140966481214094332178623414330947327691084306062969861838045671649195394701194990912196835762550833112041071704959998884814701024542612868734634641972905039586484812799767936322830008660381065164971169744496373221724572132232951669281751362608601755633976499785028848895518272624734829401721388553604674419961422048576181984067488789313042182422251531549972718297564193176482059698551590751168910273300871146868506991565342367430555111349836206066163320346997312610968879489321698737173975497380057690087384873720913553326376564380977589253808292353732388754374853846242284169604844291642942178995930414904646649839586587678577414565880979521235380825470079799361039917249391273981857914610100194954861844802580066126163069591023467152669760676787854674647476753578354010314198282164411885190724563249645828784626086039132381453347493986439340941559340757521958022598434210837268762604307134428123422986247263586448985899639678434960584341290260398145869772281493696908313815537689270013292767020225589779383668806042042663080282318542041400813685780026961109346904703720369993661253155579365148149000187337332206189833968130187364012964218757774634111292975633161912017756106714813891871868646997897849048588457560602404925952096958690547695257735815804390036183541578419534862884621227383482741729312803218287071949950201928732205317806489779206683908096146121301016818119007320085097209357332422018925024720709717709557012162533868139207940340928456745173767315192042057388426732741819041070606078656633862151232120958195806020888961386512312570481558510115439811283588164231457117423509471385883640734988490110070133775121913865101364477953858135030461465638486744460712423904403096404387091905395823518373966239446599445698394884100176534968228873330069756478664752091293060517206239105535434561243045919538372737748715055008086243319350218736231749021928636117290288786784132824392185127997736509890658699434164461569628319366300859073754147562404317399862751761312839879204589388271830682149635303153898835929260881827202463463502225204738817494313779207033922357223635030776598485838674490031871076054973772047713901799908306347884994335682816244515552277032479611900468957372479762453743085606017874598787143336517080909253725518737483965473452580159992976063792873931705345981849995304333039044943304776983508517378233994955514682985054083897042116866507428505994058801100913517303281655494157541317548012637173867071395882360724752234968628720118016416084487993541143691179229496139470965452786175699960874756748384663798285329043487468118506453314296370980091852618157618830827144090413541632453479508969293648323758027061557004238051381966735419513729023708114187642905601997816102449566233507080167352915798100009259954288891626537826037520208288501826446844473174120836015383926879114858690524136507075877899003998149302904247584130808620835696962139389735713782457546777181430989671093059964654048239098357477287284254410769121104071930526338708872325780523195725592048666254300658609585059827515132189541973364891941698368801520701581908873027102825376024687914082334387533476566432118964473206824008594878220611058684164070054483680472918785346185221434567251521802629584767720556071565855334722923504703972822418971919550509834082987580169483846302196015753660232607404327601100068825910788619632745608640129673626640544302140343526174089718888859097097826481717892945342516807322832834540329278193224991082215878274614827721468338955860531088284625105585650196714486671693957774445230938528383082881195412399738815671421598465445953592921243606976045591646484675972601233715830021812917808388932078392354406664326301816825758226016006750774472027700276624919241527042922683963640428265346024854772555493681666495097957205365108080337795465946726515970967719427149065847674377957879779430622652153707574818139311273640451941298627323505696857876299561428354052894080222766288777678780893411246987622583438396881014617297132809908868252931256696705919030354575563481023547279557068980020800687342527169855929684459715892697235443164195747098204046295064465558872467588307947719625763674060357685887827769608966278254675257154532138629646547966898323540859715347043153766209230634336517070849565182373055540079815955858474126649582405796965162434448217932623998975415322868872788360887268608123468308960440144079795082983656263689475582035266737024834714360031293128084236030989367447612902974799380011654623425226227097599072496721023974900714202106220611400835458108369006991063387475166550799554108548002283153801314961300260627344616941366524954256394580462221488647373316995789470643593331436843446488751673695984053385996275323993685846784027771144746362872566986034452025384891531159277026556049091256638709233424082565183768482228415882391274807239988100210823949665175045281709129289058796387452023889976282809738181431409392556006497868907954006633245363418968191716062840738752313226296137309495291438152676149272373911114356306695121817515594491738217894512581463600956358453987298507609496764146036332830584062316018336147976831890676781391534643107391988583904131207271959981044023868060894275438711983192622543887853174943960867333434344324301531368840671083273581918535639136915867870586874740906540888979748093248438237219971241114629446610140668732209712774507742587826816876852960789931584520112693315238938824235043419056539959077375734265393714710137087828323589359154207278806064625536348323683843728997901789286571579733477720776380265829593190860958395589347340392304900714167588263932852637581457473688170143853023392679118101468129912751629359123867287503542128491132153064513842141773076853173589754659358172891943582886244038418153634782957887395828180610857093247768342764275749794050914874058613243558305589305721549910688507338192880367998867209754801129700071727411259994070139005719125179960800487376610445395761014737110448748959532625752614898466673670551889928996950629637809779590503365098152725820747053638489186999984333788402314515496728507523022962784871646130639920161469229903750190761794755460179286667096256759845362968734727352712097196907429760325947707092423673446899040362393474428493774474060959681786885927068798695077752935825739890833745555198531071159030956583974361785775501047853842998703548620811114883926330345292351402691840745359865987619938562312494350214680747474520094626194794861135086109474004223088533494455127846123588076080093417716686204144916295525823235080824674433103575581362050280813880649170944316864237342596683712646806283350839494997580378761062698938583955258848068086076919510496292904369017617694972775018581183722699281692955137849904869060425639144010703484345584120939584491016572046742556724810071842209477417625526317390793783008865582836162005732121637684670463804149502766752187015691931649051712646830468598014870999213707398730183281559328483078945216215512438716609496937910481458677637484415620869276083931174427189650961572090323404367566510504654292519305172577288086235033512792538625263508196603863306654774936579946557406956288832803918111477427746020154404306839918701407677758237196322702707554587082970066232064282196760872250153200798898665068198564845405143915484187747149612705514533687145808012364772677822254557731980068604920099017623647739634105946059359814260761352822989180268993612948576702969658355908183900252902469444945865860870877354385204463347834342972969983363359815376856195985773337677694879756941972453546376568297709692063956084143385880993171191732530559492198211266953317901281326644941068480800112700442146963415546683024017516143707861029925665022855030668574827996328653291625345016744910992131644452685991007085744400470655331481300427687690972165804097457027460439990869359769764159218559674957598181943619146206929445136486627844810674555215790956119608816988479171640276672398273275667248909463899995412389867507490678502302912853734703952437062964184312031738995105007192117507097534643389326347079404712696442958263866298135013157266466743312195591110392501996931585062662463039132612151721582430642989713835215368659103164546846759421946188856430140356750412427775559942217279247147548593580888597082355299896948749554492431944496233828339114567373560185833998473478391044355803754880974211872689715804152430137750672281812538965189536355570619767913720001320933717653351018410298847767856324087447110988061020159353972288755005127554390436856876028641846460664012202790011070534347878356082254529290197984446023621426844337082265610914858334220507553277355103882292435489912656654285006291731427973076127485740113021740638003666168620938375755114183481753154058349888150668555056778387935365507387144555602730964861881401154401622758171883146276811484465140201480360179309451142768857584851439932636131208261650663708431658772904018057417810688203341264714132758802135509914010832277314743619267894552834555215483848900317751220700294688242854977314224020560164590193482487299786650067178504496964906171038402667914785830402680313029163402692194511214387425149133215797296585866584910721431253218044892369449179701392454942357890245601071293085273083152001284084964034529969994923872096299852069795893680690720773721768393396154403516645498560413187096408839056180504885203357325500273734259631227751833620342090019793463224831110569862293888482983863615973972512446380949128268040953181886680290850477545405375739736765946509527985899624545503788426647444721347472645497594013956102337175275986998537931841056723519806118482686703532860127772796217568227802502668298196204682527499142085265016444700542251755404252721735162253045308347483332814431550472398066178606180581603030905986589344914604543645303567931491634967979613479829472952799684391283914582829034436386527889761415923526465282124904181706027460629487356765379969181899354172825721984994065282746229157498359158912137226945458629502529549757461716729956484398703816056524550251609819656457543233429957641579147155098851280971621902566888947178799835878253409722578738208536926230660207387485945085767223855555484232904032720316110736938378916650674108869625770454709938732327017049032534091038809570847651572395059314705401310610204958168533378591382347124874099140328687780453742734575321029903039776744819652226787166914093759654853775072725476354091557510110261505945812465863180390508888743957589621578372965438056364633184289682042446662275589795341852764278770438506727574364982936445056724853499646537624640376352821481379340167768273015074315667763625691312646648387067849181921539700364400295667914684590256338196158526421937725094346228791466427083114213942985023917702326325107844530861264451428193070963722208962494485232555397603057379145834965458270761147959664616057379058083452980235226779305435994129811455609690366404113559788544032365217845099419828245003546225987272414035269654966213386193690492394128380132145700698615888445504480178906207685661989799559994425912099931211335265604867809155069337089328612972101204589284150193830171924314208720237636281323814094386174379783366716327270851501966147211051982467077308131483682198013497681255697133413032449652567344372501669234621111513467520042255172236970255382702101524990990000252368673014543992170829289068904076434199174487214295639204725436897537584710133597881778457103156834540821887888560346055171384436974659238194450554132763037621240060256375297879502820198046176757460556170180220757041015168315793196358677109161201526610141019870469720597522901123355219787198871650784420429285844919642251299025997615811822596108540652277815239067426054460804612452814847142445240005447811266094871308500131936678399216861250263864480684382587063404047015859714077219870080970220851584171951060447424598459708101568663144352353399221684528118485437146817059988746655319371930337427029775337690461806853198939510466267529943873688713886770858506503132741838221641834529601325787139429044839693038277616273339516167832497410335310638783612514463854746705936012853519602432037344189636060378562328517232132058886351639468642731880817143090244646730179126985914228796661545647824259010003811785640096001196861110717810820197620716796249358316044091436049882125015937594999044310226754604195313243207090758296724358271853965850041173900629265252632415828099003528819540588215259909576940323871636505639361693491443941493097673033122433393671334107173669597565323280384318896624373700164652366965543464206635532602408243660249448741549208896748862429187105991284692648901712671149590166213758927555298728928976330455848434077669442131953045865372971567363247658267539208024492934451135823281987081389852624462434969379653813601894248418057662076937241027974480342938737658547579415885372141493965279840418889847271577558892305357303436259442162758002563304596710879074970736507421883554214866778852113678431580464302788084235011052852273683657745183463111140828761401000674676771598131256117522542702562566945789697899082656196436501202277902291691258652960259694679101905979242745203974775805256610782383573009401315559385266199560076618294729394795935406247508984327777723636538195821106248038358443704660349044900430764656863069180267918295067271794238146723725637472372660352949457745585818608617224092168221050682528901139912104692169495689175490821511893741273741213105820634120657823047787817132897261551346785844411513018790198779382775001947381137388367977114699652792079834227158906596219963047288149358662698468116170909184136898467978749984074686072602814821277625480939513272090928633024497170814588582647268874832469718001470958918667036022823130963163776292516251996055521178688493502378236447134754298481431914569435650020243664429573171110208252391644658112765940276469707276443483119750673391754171405620827140112874664062980559994440907952045398790931984010572547302470844264284650868726656570947397755863375032813096387108248498319931328107284170053283694944080602042776152675584594668394110771801251712135000740960211013297763266754908568469584607951164391759679752970213812815320442933195993316995559246752894553768163364011130132352032830786902380491766907849227375600619603437853313437952658112465757575450055477042989671628372527384269117612569764721350494944442829145674833849499257247276520331495594517675080172181922022705052949475120571779751779156222297101412611374933652665695444218337834465188840129907181206171656113479928051706802413837367468332947389568430158415720693531820899709759548418107692679436394844161393875095584510947226937723496205856540433931908360222529738865780171297968637782264615943640311000286791557376840988134540343818939671571833958562989815982650487816299663539359923809489408493132708993922740141585626139665686941156708569979937613852586061189394843727038954619333541798320261981846376204997159030687639326256066737661400853271259924320013184288992423232432191350393449294532779702054454384790222194860303030478324780171085246266375278304637836378976278761380656424321580562927320860088171095359864897082013117093553211735215791252472138597441688205124425398662522819665890302120459674402745968915451449397144170218905900653170163705528489117984823286559193121119600562316874423509268553042080531254398234802659842477657889767249495456235293491006064273910856890877855323428374203563390480099958776892855041637834514420750837018992621189023217742707443832162272277881885852272731566741073140305100688921576941706233881708752241883361737869050888587865180312418580026234308500298305788647582427657257603857036823407741127810610842115699504988529558702508142067768879093014625692198413468326953873717487988361880734772604805119020631582009323457526911319570440558815659690015122159577836741593522983686351109427639771500763601597507997275581719667771793197594477593138275073763680074920165516926623272016646236481910574573755390426091545591907588497256601080973477042286424528381172263071084532167871793645188362775212028836805896854906773814286164989723619887839222662846444724683577813847355169348588152186464035388565299582469741900784175600213383526399686996617742491190699755147743990313388122278344582837416752239417087875331044502467030155582092894115321441789484500768513914866999434327398904793860240552481175814408702929508399591330279769009287597952518563846064251074826254653208724714684460780684215798896995382106507211227334775445659372520489917818293323255624681020904245907100700774205359476622485033094560092890558138694379938244033084459054524202857928133918910446063429174346043864249819450404150861226803241195560231137039761156072494418602028700042126956401647218454731635003967869690588405423041504271869490569305582989392880508825784614508479944515447044864908790451025296586327537784974806009514467682175780932080311441683938483301288544386465762770104155939018709949409277288391995551554023404474376840505098154203990156093785583321401584071410848726727151820858421441550957384970697571164398894454037676330760355465591797298060456398339548334156462977708364362983709222836423959630179507933691497024119031682098060919865259726140780169248896868703724193727203556622831735730140966001092931023398729898709246756565360015379766918092616424247473047300955196979479265941801166087837574933593510303516636778070878199783940431777188932405117632383891098334698857565674735488478187282300058385792663373149923416594937594106915296242519541818204294019050248924273169351998787441332971649982589588968427429338483800651316744921403997596100697297524800643545507415498423052457577842005171754334500851352563265104888450869274643684590159752339002200177407362315548216682774196048333657440755972643915764826280479733608988834819701410398004753511113982731264293750723243452958294499038974624603422722211749401765383216125945578352049904053997179848865921259481447685093687994623555495152591174992215073714754501568521679202107311744835590403070827918145132705028463882533059977992806612246918267795830578015908880816167169847069569246720449584375803809995578452503225273712525269272307266204033838379105291803968889723222689836358888634101819896575830907384119603870672700908313495250938676734926817538840779475284891220634320228494797123514459791745212357227466435018675308712091050727928554142863981410232141026238380884051966837243729243685600258410500143785578544366091535170003985504937268416107988496413424176566957719926448358275143681563525426994983594006869008665655106755491363601721742444512946442023450943017601622883220475640929412687705022923398644713382244610236428667130556450275800403245127234829601072012072671681646558490780114916906141650049830558146392740487131933657531616675792815104921677986217736988679859935919627247054593365638223570382020828393391553652050310531424271486375650092499660599301406576594668528302307291386246650593758347494729891203994806549820396956167715166784734878214019242159644363969407430248859145040841059260211264018960997047937839782639621270757992124050722762382254647450279376105706368270424614731497614162099191858600469867563603240903105971936108730459796507494595870913369185528779994936716171007183033952972572536690106712533261844618362148466877887020689963801105757004984997754228695747199719567383150473377100037007616301645706358361280206007205530904520161721845683979961847446498348437882035519243262165544763679266319631013132863279607754256728145660085497796418914020438680441295768638908715372964321579152621401228012303675244985335972937917497738495380032752966548777170503577559888210910759819279363627970532645244642591856189152721876499332961054180487135452064609090031050838655556280637677076710587884309982625812022021813157134419848363020173891155343119481407859910359486087342707606588907392750535604380915939833455091401935278201927324389371288931193482415855842694663720874492231776428381178698899538219694066385632926330577331968921719183919075413437158836825383961222780317733570042475266906485469380543089207910400445714332963552871635919682917765364557370283413277554116241445650041908425904198953111828284167598648114529031427928588543206101336062459330752356684511125233050735148670192421610833351838443083770009040517416882785553448254560220032789399942368049740758927397744068227999174323467017164514986673084495541944141975570323888029841937562222701530360956342832996104637360330674753664984690604164895562035948085060231706526060636237508828731985919317722256151454228679325781929614251385804939104942701895529764000752448917934658571491510643468745828353761495633687927634192601577611108113571567191000608615711309639183508338621669210927704350392307774795301291563509854667024682806666399709635556685086767988826666464146040821743478794972404675179505450127801830524172105285460404804994386525769040799307396550929421794959398344585735417233312676422765392286061973782077868027309719115274141898785177833971584076044807214528323933203385406438615755260003108119076790822325303599187931206214820665780701466239365613236653510552777314467789727783723816821885726825883000831163325536418838716745859876996312432412251225597075441640225971645426372797734000695325429500140170064445690698413651622011779483362125398849961112170468922340388337934926876194706430395142394947119372447697722521851558979632455288785428178702778679624457963301014328394391087939272725651943912356020606466900590384272646605204594537200783527952133940805243545624621745602087059554614733191726101326624578057540153140008186106542658210778860702644233775938024302382452396802584668157543883559614759435672108018111379121993898860169847674747849727500272631710351941730914027976653213785709704742937692576366998060367625086661050378171912221558595422493508502852877776243302294863253708017715520684967130620932328035983817821765133348036706172750993695164122402321991043638468637775633768187423934065789969124422571388881621441858096250600696086916683525508977635824671596434470028725636325228170047512259856899932323759719901134669731643686174284126702267020735412051327794450943480381259222932473991831507674872728544242395788045491630487612022462054626939091017248435273549300609465826016365012350844227455889470544510447758513759446842494173821968814955846613936297361391635187081202355128503738531703942290202498732728165016487670755876086064843252553083307559342158684316141727369303858648261985353422809377020095083251206163310972325627904033446475112509126775203210123464275793849480106804758775898229632152340510142930662259763676410723073570424458286118559309506359814643970864047634858388278651164749305022685971767115124315223825469945929668660659330312996734512959447285801144366495409911461492648622102192710734646786495432008494567342415380256484232884777606827600757206385188957743988984533863607390724569198497252489387847249480995520390703010758512524979756221183005230628431400434410392967826406494766501435923128054574372039315966674779989898605152495810436205958254091392830309381430311938125536648078362966200113301499714017484044203368219731745850819415045674609750170352882486933978603600530920973020810569826384776223893768763203929239798631953867536983582245806561892379470859948274807802695973078336696946532756758270064812486086047368878514757896077823746507456398345803558005995284707082452930188549362931778996651154544919879515137229776159981859868119969067777028071533659501575236493748720923219292856644794272103265015896082783766358533353154918769675744542928156151828604196767333562833327384146100323629597422431104466914394405371473973679393594698652973535628129650386905987434374672487945859713549863554155513461030139899787335859509787072624031875541685589971354313732029651744031684444280490983000838066529898617715796487154716129667064193817400032676766543168019543749173688278026182822213131152897979606733383040973723666411668302256229515097129684708690530720692933262605476754309199472689355496385086652522017225781493685188935076593847704881706338206209271715200273734927847033800931544784902561061963399849709325555196405440625585227882049553539797445723007443153009397022841454698939900326512283028102495012249620477317863634554737983425711163593962566828180155916919293002720353516135645029587344793321111763297649397629622039452969635281289100312516236585207829398261765810569148389906755417448920489564331995310701198454608542868411561631221162732264088663604836387372627546891991181181382720919410495205874982151668995061604184249578631892223340443248400605697780563362971764392752314944086851614111755271541453315124950457375800882595634245111361479023597258318589826707198805541732462417997068626351125893802805429759842602680740969343954183434703835034525920556145447624252947379121481439173688204117143108241140579414161868353857340553735107542477797517706933960025012616109951787025710983147043144928639248459913954815533718744013728036272144220391599889130455407059634382041403729102747943513792469877403015128876894219320287108226430491855947791963874621587448580537273521966239468640958532678566652616633671499426663601344513120496653213121595579166489329854832488890317414107659163180263461261563996612209801641510630128900804075222266203378656569088666986907182045421240270543881942917949080622739026281594456672926689844462462866022419176211772178852406035156140332495722270909664553685496329520676254392848744312299991728042542027280038314351470647603790901664862948484581592265989675421642021245965854233212169004274760916765741848257169825741919622287769195531002923646969524641661861214829439016193138188556394582658885913949827740286145550363824614298748254727084881135073952169201890114573401153690907944713965365066469626289472963351781021931708772472349014911323841256204667370105646286868488829024342169455877815625062095502397954763073149302545515169612642499339121577561140832433827931238972152639601651225531502083227740859088289582514506849564280387429840454173264160009977919445644298065658939613794104274338229776375678020732079818234646645249947903188330062050613988469599396859097707656381400987691149280704452619740157136472550985581044303834291962257145194817743611564145856923146947692918834527602372940301431136198656397201652970338500057145766713622637910309161813747612939628145710022874972397639445883410293611798757171777953360778095970908669476911893773189188947841397986992701363480039454424366977548509264284779008101558717919603644740206996834620516287934860664312038680307697379124816586415735311476683277422444722474030770597544605701311978207244458866265390399131057072626681448232021928708236362440488301042819822471652939808392305143765521962963502965211008734734713962593854383932092736448828826167913993188549291217386736442478428792158749272497530355569707570747733645383950370031714094359118870319557706684674977876311545586321442345196777293155504629174337804015600252579303374043803447753761255567947252036023421181598925675332625881378963648596304159670421823034532533648510102927026479150406617209076588232372215593943535870229854020317392064940382130311749513043951466175473951508546116371646389004164308708141028917773390832275818730639908190766813234161339541853331663907108157364670078006358764273916785143736888334398051586797333103761800884183845607807743496112592474542713145800553625875552924144525752859471970393306420690253917972358140738984650144291888196501780284470437718012847007762240251775792979086308809939850237294160632849336287662697634269231748558606281363604222616135001875180157901468123677885834839128773164099613974682996522583291605083850302717508883493338735714602167362396407589927478762353731036929563150707333233667734847210787698218835750635440102644309757878240590064146534333686953980293403619212075512110449421742925332953523622580434910956922427074292688357859752068837593572891261529255799664169198830710069848329809776212571645484504944166521003674741940742034364143993777713052435861428921117672312273726016879345037046006513985085557776528700699156353118055261739426808690598646995328811007550444080388137453011089405482222604362235178493041175093478145833127961141567226542107116677315263747215661378933059064175005815650662800213739091352118053603705111081207559264769088801690865070440117592256985971320932303893612440072138882568621955440722247569247650805857996326989504138923997577186474178256781632476165247424436749225741947253931470130413027608818290170304899599548139571627000680384380481496840096798375841164310400929102840097692651001602509243351153930133959868246550857590439731180324103633767999682700810797159504826516027218525776097152935409001350035082846236745870241021906969591491993864981496448052237126918693298790714771985022245897313737621804520701819855361466376584029099631770635902442628084491717457459090148063993915486072094039158545582656472410486773555750815416170338226431130334965389585542912264590023434819659528176486813488261385214569433171603748110763464895219147259999464207930119205140210485960554347842155068801628493769103229666938953129049580975684601834044412946373312482195078302466131298438412752670530285881407323593541406299369663582719604302018612511979708777704149542816862750925461710440432800888658890497520156020234685329483265014271990223270748627648241204044368891135290085685876458036742505541456503967866263412597781232387246354612727556169451891181460532594765283017644422524446766379720950455462059880860123342231002694831073673093153370812517600006974461165132550571118337883581214875474929964489866586782154120324304919936113562228692133803499439832531243306164489564035386556614477237287106355551977566036322248359872638843238641956379012985822535037732838621902457385596792855551193580471532711464325963929959199561268667498764640966592506080540695722761965419412258563394841007961177597697502744760314723038319357814848616891449111327992263661122225722965758153626323035248211066390601315501642297845673636880396421573813817457878944351524397405221783889973016751515679497489302763905513707031498431325862117626167543650122698342757705853846175538160223132899048189792560820696256411535763213429636543892241201593240957167993286142808849133547127521691401491388783811357407780845980995154045895967729401994762135591870119203430741028642918332485484375498650717550374097782776398123707874300396366537013915156251432926703717400994752226876343416544373794911287605193335994854440155191202728888707686056006741425652467622145884331960726062307349278220546905898615476297486046067531760269771472932281894132561880184465704252705068781470625289090714863682966065586774394577830807381206325997710529953671677740249532662896030896372457283837060900267093790066721619776657096214804227868134372308527894756125290206564032207064156125448453931843364868903632985403148428833543320847061779682329989091585696589715917368112270970355700533659044724666325301365905871882590291277107057818227817505444473119576787895793336917784626560259052364987813685407819423313294133494732011632135596608253941646794140852343901940783918349450975616418794100241649386641415004089781855282838810134466993710774643274799017812858703912743546577616110309209583977878240119386211380771902398375701492488471123308106631135907571119539864803815586055772327857857252536886200474199767340022746498937006868521578202960656049281150469547038600432893692660030825187544754546262834556780323432415367775184339177183847460955471101864838434011186359524680732143714517186006674177245124881630746994542827725124398700664943696299106694162683278545351531758035599667988765974446055989739495633044154299294246576822845422589763182436898783559263302263435119571426001213291494837673863046401099070030831701290689632092228746175847707495655091811656297919941893763746901380447249906648008848871010009511558208227916007328563667867430107640955090189933703146532569425206891253799163401555309757689283333118796530917430083576189857620969380230274258038872612752375539085983523314770461060596984451895152873569944333503252727173143212923499069980048836416672694645516121844853873885594327873894245742442739603016562587877238156941187682262934939030680197314671057933023543795040944975144583440981102230739911948136386811780247752646095055460363731890867081344294344057361360854139449134317843598692995454287911241655301922332241354938212448415119363896231602706288936493053766215179970688315853120271158320024031040605197612523932384361201280542560149096721751648101974040063018009915634173711691328689654690387308062231487938317222984224114509552606959287608923707119029426464617474779170423086862481102193944825587839357710760151478151693475432655885153542197581563657538649713026639405072525740327811557365853899870330200104470397272778088611351554920473684741885304564065213108112027236460709271001640616121692251463189549015230495570333000463186681879480247469625131338700150291220462579273197570008685511529367868844168289064032288264384529366677282937888901997308957574429357494463042182040956547175660884815819518372694588179575730498110561880974008888480344475925852543022070181344981312101064269642572382824438520466155445371213208256934826024525045224609467577463882130454035601334971640194888909393121533069151493378695449687911330170774810335420506141263216403986816956148987331694663928100935567644867733688252505860386676475618992757333101277326608637643660707420631081279670165168212649356869629208445083596392327002839478580706232615492102403789497500429900176604416999099985503534529644074901723111399686109809758329258455488735122009150358291815898260190464040407602239311261563505584735313523614969915495409437903401104525066150569079721400585188917822645294445506969641746700281953705496239629623475269743787146111924965691466487205537933695145754764370333863445352784016491045473345031427719878947059001837689422533821811988104420907309587315009669165477470486818769843356194792045501247652625782229952087658257221848599921269938516901018679368185874940643733032445824122184469048863067954262680958346045577102043405161821661517228593540816251529659652310351183398806173873058557657562612232571811309547466769271957578383385115329585101373094034651084496156663801267190751503647310256569407334266477179621781317240654226746897804545376746458723367519791563284003372956748890874286409285098205090297325552626172983671041364284525607544413357029142387911941399829971017102031488481954923541103509251884725467813670402105685130818317797959983494395072764420822564692981185539390919910332450406768393650217424795453419763467243011755610217136090326735724297146074371593124681756338356545495406285296289163971795665623052652306177844655334714077386995180238608683792619796167098037188744379215139861013316228702738490415423750402128602110024908893148114195136997807708450166358246005402178460473026822625378510006551220566255266421665401353495052246078016334212903009495956159427959867872039295692185664540818985734639067898180980874178884476420170478233977096826406870137396868835245724065145291949885037381120443765932932324703818453799914065000514585807269631241445288973937760175329808492457415013572270257030968047929820413775183229359780215395115532592768239372022014793532939318748671544436848398597809534273830149886644053239292352194766248696361440941720745105997697219703465342245498274359689553996647593117639503538531541815641618992525921975714104746320408277919229292094512814153391083746601042233519579249824588994500849757982355202965995794274313226322495014153113747126677823783353977762471710679704314900127031549313756719146717141252499776683773981829057011473878676626969533965599923952054253377529807424242455774866940801442834727312101931959302219382613458992685305789010869295846669124966368679867094242617867570763416211078777582400021199387657891716746773076904761791194376794455971831698489499261668632520014615979042579152160994595997896722427939028322650438148833864345201002938890758703410124477831491981811550980786944874672276386469376710307522018213927462164203182566208599259729699161731852411402277165561505200316997762066423749940409539501791159000043250200161796476520859624322851217923273213118474804319811534924460269385034922894098032551411638850159508483542965546555659925541218021599924501410187284101399111221637495531938668678428520025445401914347858851942960428573353832688545830968642139167492287037869234072652492596529834703615576355057580968382930657479638127179630104590598838152020687937641498251401994086724903627633670973967225746328754402461657657663260228615970250604143754751618445175579553625763847463666879632781231285434285998364790297074499083643256856057258579025999484488224474710035022870165063389329130018276675145586983093795645038992040431044206173493436037209273907778507233614723396466714693535172575756240814693936490749624645546895384807367141743327486489003679455745974506130260265839678235497402993711731775624860689291269965622491477287550399516238350832159828361534592041194922091515125738447496048297856232521946192408005927986429085311798973405206322884224945275676773140882660724881345472224500956386776226329273027063924577670322871630427763496067179362986645467661717000175939627981680212696380499136427167063860889769738191098927311130043635501393216105035334012121315508798106583821661182732700968234814563009669732946670918944856342238468868733813379327460719854584990923226759112654969392437868922287809339373515948186854066986822156797683055183504638916015174933249776829944127962346912072722757556888948310630430544708876218575786641459423452916100317348316972188022786400355714236295528678993504584086350613373779697056364010478853461974727666166067696867994186839163301089474883800664503841363626975031138247463325354230263500756758110230747845246420724088096697579476757307091235888848497469936843127039031899662075773056433358962547306014635992005500876385844259691218106504268994508411984344996053900103605879103593018877054641734296438859440564076733031880590573448723845669305389822597574705057059660850097376643918020191132168959858680142128728438182524848244676461781361250552029788321419060216773878624041823404300598119314714904433254013204708479232548353982571998693245231635334510603975740804222986798109548392772862933194764902929262333000901114134292263006858634420574647337126052733080136845215524998079520327512614599441252463275422782612672780483282712290277014401361367666514727704779385736286574752880442347756506347397305252448245256055282863060776985561082905343945313258175236235144230526615321985568077382422641244409572411814303129236680313755768981075124735693162495613276985806366188325499584407173655837299444353513122821281957459407194437729015418387667047492885080509434875254435635795902346168043376262582132058770633203089112621005154183748313738290829279436150175160712040695434244878877458710248892847268246867725100455843741474476393134440253209986092662569653425221028765196817040360152873066031475707078556631234336455262040261797644538533114568185740020839978197539495613191309077728459256298433167335194500200327358296489171565444740908832341732767221863572507674982503943704472786504231111086489634739655720711029520157459637371891638786535552778130436508307626321015531799919863829652989608939199311622003761710166902243302254011561248307797427010812239890762867335360768847681568215252854646970691658014885980323134269945068713185210503028985235767374037357976127840181411072279860026263815233435123937699604784488543061808454947885514071930092635692651668743143311547910808684416496747285018802274985552957369937250167376667819309117161850791225682430190935134004655517702146557949871712201090833622714086705223382734110851252814280348488668042417398101709676118695329269400419804610955154886545043404574830878765446641446902420158210441042736297723899561950621504652572036319273683878486571333473081496362135485982638478603167069494834659845438225331659362358509027222250569592700937711459571551880414774450371535016624319944512274281443593619285536554112802920998056969086279527204420065272775921689148165003896164763372097565338292408840442256334680529719385871216914442862063182916911891549418070356518069008223773369771709340090362771770256911140799962318476762583564575729219418469818997856471420347168383905934642577113439128285479810382005048063979445867821515392959260729117890305689092794089075688025577269670402285384646147642655985190436926926253107033974665865391882707523329042078217319759819141428388272754074693384169783469773808422037508697463549329364210353409336722987537215113651446554198697938487636405273272550397153386810216774431500240115453156201741238944349160195840000638465241478910468300586765784336759182009687553229371112958516563359688551757159066839799369917987277301880801535833395077451561145863050439533022445392544533299536527702770938276255111708283760085765323073482961026790364475247213316600614100749804157414247131590242988337468766442327230809109211967165210845774856599964136191023270999829704701833632535202103583408989549663301943396686923328546299665671384184526646960591842268010452829995371345104114055744158073853888654538859231489758764685446481651624481618324613992920661566398619327305708623919326033275481993550783036103463277214387218539031108061024552310550469667158606495983889880902011452011540091455525692791096883503795877819036396606806702808999499264448561499304609610630425007319976686671785867367916021379372420286861925507291007572813961069023775689200296802235196378258366002657464838781601517716932329236257238377642816756909356942325320730153955921154575264465284800630573066703665917447336618305937303537737760865077536651413031673291057878390348328475778686808113095642913415791157003526571080539081240725501883502293291999500027217726024198421744476645542816574106385207128883793715530974789851333614596780549719230412266488185922460965500352166608491439538627560993601966285757230644637473323737523378736603200554692235654160068719754432983376397023359875578446043359354145131747953164795727350051276136036300951002029193323368483841687812001756968111909242719164713171287851896149816186418490390098011385092171228416453952124233355105968344937564966385022331932400430582021810686588264272641796014901091240416209936984698080766999096330619565979507933638301201124086706418351126666727831922300629093069486178995128546917530341974594367976070391296113185628628510075507647798481910122328370106168540101079940663410584633104867957357049594092488975499386937415487145665335072417045346001218285370267683495120086035660346072412543926948752822927645824529926561876284395507826937759352842497865703831844739865602296632222743023851662822849180990873444528542900602167336619063748996374042547599158965712402879197181814137361308143028495792288214827140022782334086202950915765119135688809763608957182021949052079699716176696197554888525456957758725697267654830668296316494015418636124087427138653106459325465844532185685603150871939248384390376979196733571077069981347225779589439324544084245394604272423203880292317845763769570753819623160558813602061844223403003947814233879736623083138645046816805433144579010536700130474196838078084213900241585591508595281855795922315223083972247507259685047165027971670621730197310859598238949668744563763043396930290624879421090378577714846648241814582571707222482072458386370082610404306717069496189086986290150915113866917435726411684915542093139299871236435323193835858869729804107803184777756044014809003606931457187762747770960304025596708333603027936488896147668285325994726731970281264421257617050895947800786647450336803948572333232069004689723247734452835249018015818754508889994900916057083260005783132444278870484778513217989852775084275897683433732500803346854330668002986649471421492379564889217670202384261761777030785545202733033907036557027078787772991762690480630580963458792499626919239379009398667474492991388962849538933385675320381049854834620483403930515188321985962844437978154033236011323389472728936039595752950763027548063516178611754670740013462293587840020861723175257734098113887399226826296894101307854829047116201870763098810608315216325605147012612223767570475108759280686439544154119025876506553045026840991873980899036924785612067233941456153323497277659024211519579324862471947850629875266670968962074796252117008864982727731424268695876402000164428144206822209736364241125856988522495625573036220264840281944073690236185725373143490144794255719874483517836524127364337541442788651043063758594557805993694644491423862540652482638926951248251998546954092153665422682956285982329825721720663266783209630359132536754618104371513542823488285529496840367977155230312027267954360205450450024224110564989992272045309035368121535168863286269596372239380010045698122969450104074619370268040027194043364878504318995368254189670342466268491998403630422802671641462777497455522555142959745618899191099754790368017402804771343172031889410769449812053272559616734363257556219398534831155811999195461938092911115510922560205862383174550249821635799266890769772402591371242895481444418867191077810381359208716450952693259578419373346378788751955499503217795502705405771785445718535327985213292686067352615499355876109000408253440558522117204796069489527059895570049777904511266353826730384420417429891603872766483814907054119435682972720574815927237875864131771193179539331956141048357647494124573904339098965529069830560472593958876319428024171953478490611756822419368386906722636770785117903440601673220291844821288721222677567130974403247264750417593276443089133178767361103723629157366042160736707456597915221276809724175235949256521775477236638031987098276918954272025259780312747043110049537131144180816885883435033068846099956598589273663149875957971887757422611011094000884046921737936039176867032712675302082453017152606154422076890176745155908010858401343827645487282779305633172786125323503165630671202913014682155729732810277451978822920284495222429035766444447958854408187644268657710077046760314264210862247730594240095218594893804436469549998943435204762630258412660667533841745965610107223178253741627577288931599220362129094445690679644401500695853642680943123529806284293321555898371118308254705778933907641863377680720903345474460887701498724742917242669657447281075710156972400698470670949212935439154842237655144261674296253104026761836651512586222549532351277781926364081010709881549901515231385966911342655964523098713737589574637699394594560487246669005382112147503137368175272283108186687325842094129189992867254804354904051522164847807554636167105567069772516112830813869988681848466022916876974920633817249259825655387945438528661818806062397277538376064852970810363331687245825584582393136238001326769616109848714298508249341956871108111773029934337859971922381188614035555094888645033106470699076962356549996325233091930362917938473035059003791444680772874706508298759090371018223064061361621346503060064005793836206723719844854048450243596883134625074740805287914282807080475202544652806987739254908137020088219849094186499843002103012769601401047277993633920862050301766197153455963136722027402180909483268395811559697961542625643526173146149454486340225896275058492929765616632105778151550537497735653031742340774701652946840569173439367501837044646557278915813950482985352890937258346340172602137238116715859920268189382327812488953698738946287583104789641713830193700169682803456210783498829125686287931516432656481281863648912694884681244338211019053817869720248128602401629044393482308299609980991703552744647559655248955813088783647040363487193844094381737114212686169119201559798730022716624843531660673267009672875898708147876276523530127712239117293733213877643650404995699092372353557978902127940646242577714078934985380382436038943720771036390442907129335094670323910316047284604383395075053668238845316684098345273922607536761247987880073808791097786056048180048974591167906446564765916030315023882717698080699168451209116208354724053159088824655429805332406647586584583404180571836765405924034299813946513411005800749596444553062443007057716239543149006618441204316264509242273818502855276834169504910503864570158388774866465150795463678924284339290002111766860964926907904495624793905881099106808680654470435348228376633718724423819942993929119776774462555071305695954282881951115211543028375021757701466418843024057260244272964264193803495576834339343596000817769961603616142469674911137691311358570077249562515023600080632289389169279737375345644402090020287959008417931258810122697456289852638270767799370830299911034558794157314130010194418698941482153044851583876757410160850430265574320002226242458230477153501591080391369089424616742018609954046275463221971140360370348886440751848285744078541422847934567892296199108008642895100269467429084789897558734597688805391394374866434890066810848117765190745075025210865524621723009956049383778678960346755648258083205252280266195649689657453788472269118993411353238204676595003992246722317064593149525376027027166019492189756184291387831165046307876379090477664441179306951814804913216426015517095020556676496312248439397928442039074815757418849947432424859612983978901545313434789390614813878495551929833757455634509803161160841712255737860409315425544332069680709910315876255767833149014517799319379696128995440407907340277531263939736513689511376404530022688599546436443649267963434625155604428482983967645498851778299667952094783116051084336532810394680674516008184676581575206382560897409647906759224699428321194014444364075628128633626063137420578339536901522277067186912769365804914440515999698174842803886916227627076530378895705164635889175245267608002789210312457497859164907530436224168874812295058805232741421734499144581531468755100251744140087227806855814994390489641781311812355612637688471853122798923677155971359822705951359192508679909960695625577798119095438097702938379025300584501358080530440065137238588259013902526504860557311014827629946289808972046659260063437499074078209619243788103614048741999513245529744897826895586665145943105579990048236850425811861183928120942673458167597981529008030683843605593789033894331234802342183215342618583901959869914679880817317229594561976489743143447694917593364522050162764995314738996693258150192365243732546492760096040541079219233077927981057871974474116267437219632533433784172111067313897888176632423396789100372372690037157121056909620310547003538860325227866830344558166150822282110640277337913160780316916542296511328133009758351725777442984225035737605708085067709667100473454944691609570213214206510191376157737695878295073199264765528017280995039236798864764780933276121779537065524724009679456914783502328895143508771912852075141662876280474515890554791323657312694766568058083491524458074147705926407002815876883064870922979640266101877544774927864604467381939740410938537344149209388481355138833644054149356310108847495700815484015291048132538955933045924331039015625298541106759131571894732567610248901280546812766134954922862900445202378912207832939864524267450512997102707305754703380501571285043505606907319119819892424351189193946704913817224878949599725099878537081071682040112801373648568149282121633475619379377495769082046701408597426901213183404621751168772297788931982017088565905812874425806043459232233881985535716889399233916674537070389125347543808894488294807270717933236900882699670212926867527480871958140458385878096805741238566359345297731544353794412424776556974778196926526686507103908565761045917174533471721507305578255826490996225815786826661926453553143161489834757931585660202907779801330664544902369088581529837402499680032317473796021335126082124060155476685273146991118326283393338231748239539857742384936294606927156858389891732998542081096193696133622629474533480618897908828233691822578596409077749982874952514604308748464810002661866847263306768762682620863331582996239728809013517515123621180591649711931839384739873636362058756941148596750201987416743988344013398517362972431129338649320715640723722612390832895826658921612966705643357227400136579158540496769586439798663629932536091731398367444362417842781236448879459551256883192551189163191333848278154542739044851520320226033824445160336653147057724884396484331105402434617708846420380568916611023044083817171095493229037598672311039305225572444517420370883270924143539780140350757575002720773347711286834068251223569459469117544734836503786844561157065716927163590674946270710071067290839326396920669221955809274874251618842636067654453761096326130840051882025007323995094038049135481314133840729695011076942336325978616651132907255221222016195060306166790552157913645925515765042912398515181474642999211666863493263612672511925857485652011259224588903228986052994910700622588088492252772309748361328002293548497244712759897649434940005730173454775198902278099364046371161109230932446406168539029321850899711895288030823922539655293015407708851004261832468775666726168429490189380989476453181668120478255530810507938809101138497241990060799745966134400484575008473960564036852668887198852093781929382016499473891539644789470566520856708141140092080337852430382149035915847376768510230683270963251606775918441356052592703726122855556722922112814158788491427552381449061683219045979469017099337873079209430429692728748271354828968644888259365146995281262419046537334020701476990367777699760073577558268557977831473034511857583735361996273310460191933862736665515525796996952771625965578860339902541952490649513027658923818346581935010006061670402697682013025921830633257066857868372175731648200440532179155256855398166228419438357857527614060191518446613317195483422683976795081786931712809408274817717179424358391683738909184319673823567739447423957839448678470915187243561325120117499521579258806161857786883047852198148129810618338689204147809493229476612569481488221962093830834658979996180417634613128417144156929064233662555420161711418942961338043826676636539371628567435934486869585611437475210100812713972297061855265115797635121166969802489688184854427861004949939691883105850400558552742215997585856940368272619183978829177329884002674597709113928511964555794880891164878407012352872174588311517020922576809738213652009603583423391779187650990877014441115079161102544945721640421382211243420515615671138886621477533228997802661629996937241753352612873245073791354060636949457713181590558172676800309101146836852953548675137666911487089306061846396771588705474529829855098703958944422725971405407825945248166961587931143247949123186681914248379562502191857488533450620839774572819982065220944035329534551267099159693336835525659557384139946134711014528285685364290653647620498696868100693575419997537029306220231251903046143592649527084351278228205025748693923771094762022822611411056489027968621519634188939730533376090772815091170208398015376690230435241688138212892204004788370061630476038022251060355222607785745468309300595551872147242220171327024458207923688526459018828254205347493922341617809916062514387289879917143125308998062894590576938629386129329530524629757193096203283598457452568864688436345496822669445434936647457613523588461764235430265079625655160487552592040211544407553265944054653675708237573140315249393821702037063876283134611562148371444992450698011744535399597800863889490237632906365381715113807958357734770012902110361589051428477887683053484666673439374789047427487837303967750107202300073360894239285521652717940343588245787901776633100744206424767166461853095483244629467086039749240122896857445048581620980712949847266858983097815959396963367682115997845394672265008639737355148499939314312469157948611576073292058581128597707624074208195193399580089869232750139827351520805224024870833158914672831695421556785733793158117651557648469912052947369805898456372956260106000005388158578248021018942669975157706349471762056431281665554711191288100528035473019266521273445336046895037507747984488545355226979127742253698667785487315639489198210024944632663008796417136406390379416226857498129043907558317743974172088656534467437221353545696058137933164768626284040000629966643358799058942458702490709898383820610655801291743740989075049855773664416800381919454232081192302153236032512659163537011100262374977102113267570423480274649441737520363112773738008498821260511655429083137016136240357269548773843663066655958537273033670399660755678099037026053977402793477438298848819531647345615612846844477904965334013604116399765017958154463724505933299718055384995040497383171920387645706175079121843990364894339443853015774294538256026056424719807903501980770518789305279008440974947531447947362318559863953915696848803804410549457968998280893068813949267387934620935256704046532593233437447486298649581573136512007163021915531102610643293653299232657087554004861098733764561793200812360947955754523586822447150448770466474757417366192150008159557378915897911032905894592920279788286803011735694842336476069264449488868981445946519387658278596553359445955778178309673392280253841002513962712739601303499900038131789807472090117452812309895704631163384239902310003715484932916779921597268298110457607273907419915918868574190240665597226157182568463838871859485142881669240798491045096046971204172872727359396258772382059323142291286486018958139171029146748881637725819589240822016976514066035487195125670491437620703008929264053726891457325985101087927352342572209625523798481047174186712380923807384584357141983055366829985391000609629354335052399427332804589359296349665486145800645596581046320983107781635174466792556281192013415144135497964538238622052494405104963830230466830971873339119404827328888666843453918698957845872714959877270969430919828381399211874238912080252316088537065677301387762022995962810547624465947055104763971170748558864695702611486474723557237844116849396814355567299424404097042859590997736378994882884105778262599722035668018091183379721275392616004546387486622381102300304742577751828139504804430164984380987124671104546876207431489363202477089403141128405530366237432731904506576572249587070280457393965926578754619352839946141612244460328620827650021796941379805276760122901730335562503190370093131720614050636067976556820633346165331117488445118875555442053999124654246254763780028997309489394599386756638587270270637285952613017608246933257711980939371049380687485538612593589643783275780287636043332387136033583082330537987387957716356249399504500157695187210676115314803186503702123985302678724643982364438758411392424341152258901489629837908801443572367383883295078581007404985880484425041538303534889422339326801070966657266007021321948526720215666843602430696377337870781117777103476557129977285429796282392705842135650459191861208674799779025674910516229180731292778144824451310805409230436947656469923097729803015726265473856177844408215177156134302364289437046072003648517059309590500921563941177776237525691363405112545948625864266905733490820509646190534092250277788973866592732147400239420275451734468225365488615126292400108171563534052990174491507304034796050279974094331366145493339943043354663401448315909779384144573204843278365958928663547171315900219890980919307712929120880122279371219263371097075248060610628476889266818646697098014739307436098554140131146774950922847391185213026510033904368798840901746724624670385920912054768524227762854985096047259193069870591528713484405387695669387705742325637418536911378002460004711498041633067351852310824365295353277321512896711546816896257652625245465612764636793667638044989874162379570024142300005521832134672464778892103342574458390165047561340112188503402312670751728755782317782070552471939170928451087536494066873018266774632248240975952404843881429162960537148891396182194025621552792135014742840820340087449760104665481278782134654114043157245202210644230157784454032617994681158571588820604724523203955767828812920606919674773528828785653762442255574975920688156315586606478334521113778606735311889837202883546222293667605562935294488221789458289738762900813787162450929961342415455248633960150026258098001266593694624681067672873194444338933724515521518284627051053678707866943188960087889123180724268048654314260076547942319813230070413322823122597494245486805037866427509494225627992927300304069120752690173398558497128036262916889745446678212050870725529698256219512173592584290696819250649754693268373266143831518948372567320903179852470154516883254568839511008477271772818811029141572125202389044228096223371836139997660218467523034097925411581602874281168598762908120963345257223380764768209926322339106916381219425916090063153172078272116330433913761144627462814561095330008344346738152825190460867385902822358872029660008357376627458017605841379946491103375760187962864816415593591093630691581214546161319585299926586047494660782941030149734833988458007131730564095395974278509316850967943269663847144688687583956531515161199984359335839205357950157846006464126429322004758078769154122954295033121826355124266987361867314367654990830589696051565673131785470787751538694091581480503245021850262351692747874252239255465746048960557268795404912863014040200318805503228049803898602727434026178319872217824388978316661919070646491398873907462504829638106503828298165297014942703582757161938835490895401133804510982504673780027683189513078690389438861259253524578156442836256865028213002215265404768101862380751071473264027792560492349994447156060846590585483789948800324281612514528073490122010169510496384770900743273508961677832824649681528420817961117581807182662002752547592704406528965564616186548408988352519157323758567844523767283659828511781603349213048219570676974080280039471471223942889159993046734060263747268123260305037517244058161280841785997786697444844152671051971448720746894634231275129135437176480014058522122994784103259892327332182510019555645946792888449228995020174196961034552874300875085376067082109342612842262472425643094620169923882428667031280844027913728997198557666704837021372196127286911472540735694611930966980404873500438692674711124996632547192314332448170587936546884034852202006532501164633154027027938614492218496007540263510672606189943154019933767278483734293070568881955172563299369610128341429285362681904810292563627799187076719112184139634815718340660227263146482618957671048859615631845810393729194372355319975921692522679832923981570220365648995098709551436407338784591395151764368309518855493988107537926395690886313764943930945971217413449722749078686711736653681985714267391404067105343783522749736071227594188288939984167284302477895489138967524938839862104873342101320389298618292419331807610173750681449399176043949455022436705363373668713472471273281144472608177107856339093736894661818188264544747868707373677821544085672673591045181510566820994962878719864794589237776008241710852933327204101080488501273455343865473704064851417794380713611888110011751533058826783320328871725870028105953069701267007219251785651047190797244386153648298567293500293913813410079967675357803937856098438302852777343559561982177206121570214511790810213347371966951311555616032192723735155508387384465202473237412103833915810512255079268278973625261622153575064179545009365514855255013960052229221133636788105197693484788961625804010618165926218242579801397923124337590314000595364414705326820222576005110258967183461571308991809402961467259940325318614783287038298495357320812306457824957920909152268984487229314827604283574057106974954190384781238980071862698958541401955534968654656804065992527187947861408212999179911670183845330132877102191668982761866494375488039783473623865720258639023974771593293068347625176972361568424180223183785257642703716693040459220509629871597258451275514370439643731985162555134944943359287021885163967480337119855830938548911140830802883306683499826973928865131410460974946073422882507320427705740539386797994843641194715473210998856026793302653238351397243345018902445635104007918260537515522543813012637775499577355480624106876440677821766105562006804166980107416984907401939036825275754812860931067834160295293646574226223525073509700718910538695326134605413435670125490365516863270106552695869093135839655954521307835432885151097943548288604806713764705276720834564410436934992277589329333267716608990391499062886996897735418754324084869842122791127996367511276977801862801336761657888604001018927478156523380905359950749933551669178806499080454277285863136719060431120740471307616502551986378332074569897528606992009565448128613795388683999200765294238862391231891392693467280382209915964686253558515883536727914542104637866787227192075263688632671654743036104926434022419081231844623034013399464408122443947324067501605940227190231612138954723354398146220621460091717030632875459904501569986035751107248140798301016110104983263953470023551448160678727918175917226021698029507404212930533309775525367274056994633949120443385421468134240560714717296584379909099247710812069837106704908044777683104322267354119601156732951796385221693113209166510620830958358593989381703182325027001399347154258550376787400737631443219691341210527841999492082017233783169239903385282439059862693052389565053271734596282802581973889071298747916676243970170368340957168358095128570883990855287908275210189917999029939647590537880566447329287110064788385413745778235660183446646245679559922388875442013754232162639683383048454427656585574790830753134792114275418152163194639103444902305852778184834536712960321391143064018952137861735936544378320963545811147607368743331071446702899531017918053425694348510592123004695819386744266630260012903712926210230277242915446249293316998335826893336905104457878747924179964448061004020400148035423853527023533896319418402151201869315246291517650881072203332794723117549883966471530990756527051567411499139839896774002339298855586944868731104010275176419852183263101358780260806161711563557913815359856862544004448263519578715657935335774567885136918837692265376087259392975004557101910898751907575555080907379051112370020119795466810249942267111928053946073876545635364187176521517952303868428881109228763160538792140371094363886024526601973627799445999944452177276961818892281807219351202296334165362064370140866104899379498707738321221894705646114431707712526775673694949567499220134980357267768109598802562478627065156288748191613050462990374035685444042528226549745252387488105073867203082413178062273120998894372264283462248951634639830080319673825955949473215296166843680453001962189664032418683620891344829325483048318723372458898312930788604992880999772388806685296125402741664314698047485290520458095983887936132842730256233688655942154820067252381458592220284303358852535167848270983571012189637300200766390332183883591575889980553933585066968619855846344310781107861478729256383135141666124738852291620758394686196822356616955331490790694507459370190008513161170309987752625581743385873854528180549914221150056075064283106527231685180763864185131806308598640208646627547986133778061271084444573939857464620184122658865847585073750844725331265249126011241411391144698568363080803007598020224800333498763627411130504946793576656668276158163887041668720643173835423726543011314796236285720435662636806158390340900281674714548918469167514721326496774256564163350580421953519675942085799768964368746847075455306748096327258677147452191513233572956800179101339371297879160765586455191733281521554869473850892485924497060172680634385548112377644458395947139057962498907280406633307173147914783716110150236138696399038917797174078008941340325310950963969306450792694361596754502357528842143975760162785302682648820725253960572303476258539507618637917872005015941433439963433340832688725370897419352873969747509748946456307527423690898850985925431476369131024215571443468872497368958707888635274309517303200616982039137078307179201369012442593630113889062615791895830377949501992914420423574237569844664667893845879514484931766323866945172584832390064250488226656912547424597876854697650288147259096807666163129837775351284597671724917712965596968066957189007061690701997322043153276405334726457178877597472707655046110365115364710243663108186700495358217131337609964358879207373362926030824391978985600493029268201202219546827168983315544951407954410083328154980217826216151147603954022402902332294278999627230951578246030336618218086267383140797308514622781626664906801876131864586248955856687027938554627190887560193183770506144269306303186340108142272625588477947311564235849909262287959773792703390187596175704503953219917055787609605472249679035733923281037318907551368105563889354372109294103065419394099269658155923354138852854812719531606741968093646572524261259308409161350222094803925846327112426743178480602592033426703288069238711199901209946235384779385837487038493034645131865687545499564197714491475083403615827650115508989629636755145502400881879957504839861454712440182871247695668482525031042180062402160576001911519170980396817165969169915567918552071586064644693165702411520494093339370673020655957253535873122538310012546019775573469852771861551401950341981165947901984881829795096761984685513734061618638113382188539620609053036897503328864488806288761387678488916955686066654432429191076875287241317434412141386733906631343404734349407803927147247967944172636165952792861010619828517150774304935301419750540556655738923236723882085855155071887134972529188307742687223967607220282278048271215870884812767859821834478969013666963143971821360558342453710326568663691758993228406932607448832591082250481208548029772766758231127561947226312252104886284002151973365354978174266616395434868493598497368281730849361314056772510679737502327957688219834391984685292770295561698841430617675462337001511636056575142105367246099358886497399209878392329872605672891825600415270035122762667077212147863726659459773333918667296665148066219967011447279724241839135457528736051311383446439655922505232185263064178065160298811582461796297364029193811498396938089508063558216477958131990012682961580075860981739518979322824227420939348252205653603206582591981137585259801670659901141914291737946045268801471998476744680445782922742188548587741507218330422276550751375355953724391005944047366145068914988094954890225743535881563910394083574446238066244778589898279122266799795964085079113176505580946645831750533135166506816089173618925509674495851954476433524921269901501173726106859555025812027584586616637659818758758075906031372515546090925885581394965601601171685909081987565329773528403508039532361139205572085334250127196235689066223953611044432657846045289597793613847639434204637841315822177089072458946769813041271519860813654910482097789992163226657355467408609914600440283515092068471634280907096916121384116503826738308277721692564924599680239186743470488126811457713945863549639505246476442655802974124133316081168112146319396621697823580166240695533126926174686256426068624354840271391243657534884521407954320033468327666961111487020591706704080699763886076528249373246323735833821474875007351182548185623847891064447389783741381018848383681422017907462575009872570808480013791609269320643122970918096939352080767986260725307153644689463209121691217141225175833685132214485538743754113924223104950054727664179924372870736569096325897430095203074266372592563198981124985636186007808844831415824834860812378527549325527134261202233375047050623562466889166385603455053745764974435735073077582264535315783551300129031809230631281737316469405375843122822858443085275981699287029223692181569497477704629094116895727075877725538988620777160133185523775658555940429889820311797721411213066179391574595495619817205569539937960143492394542016626355884434330933395209304164640034252658698092283769307979104952589781636485840389734286344626932265090708672853724069455012155649371364286107226252351392106365631280117986110007628887132361593379197333123818904174905881182847104486431264147408271619083616347871786698722362474173722944573555178657851748191192193287235160766048332223080095283612941490616406766328368697315444197124250583012036030460502654352180363168938148989246854225371904024366078682868745462125495524550046066205034238182312380247208711299963358779858920815055179712280692934293820599995564882653065490496406836569416104327944101012709750865096459555351296698422647854519111118697832391357781533341119850813135685080946651566934944346406061763255061062361496909389226827892785657044225168203734601713546166724264398896461799064819856992689703832675252355256423697273662789032943420936200268546214210452599459085572785751285293975773338544830601396966735709364549370355420395814087513986445560745357922402885186450397701269770584440945396477387582957917930745550357252691235807029194926080179826692291937940808190041642288065393666116565634859877473892417338122969525783401813190964226208131890815336906155722182367569048207627673490196786469454528749612551043193278359059039390697603273607745896272028084070852693335443574058900897812554163027008635678122854254686423426879732578712397167963853601128881142949657036827498207359204010597855349568554867267227393148418742921925059791824642967024077010403941653485680141712504791876526955427859583849122637083273366342076024887869999194237793217896827189289009958337103968593819907906078395765245507486772519005153159288472249320364198556287770690961623531412376766495460270440571673396571040353102834139063360611654613799131527043871874901288556986118442740302353361609304232518154708615684094074600604427220026880219366964608143824509790768793254729251681483058152066224605645321619062966960921467281195476504185393635987191609127566424113095583218348745292582682621078901489958508193365272472891173260598858987106414306752486316674688505125668878605635844914662887246984136768766205314781778235687335406212761353080095242622505208997888704737449413186449593835174690421687216492669336048893275474061413241612210913277326561578668728748378850595842065135591484730217772401722374683716899267024836808282952177699661477247156949504606506140040497402419051107363647915834676871204999339191668323772375004486867958139489050760965170347695746603732122190706654464625762925298682943770404478805570210510972500309614948991506320409657685144454651475116229669882116802320110183837905561850029629932736000260553328092430861985921446498139307721016298222624509054985497222198817077322446435857455361725765345856371288127926518334666670717009678431992614825911919570770231208568402908096298688545886068781369896352085338970528029003828430136482987400629658133168387438532968490201937213061821223160950101318485931962918176663967498652400183712113800680058180153467543573676823865575301939891792035146263645258956336231726237362167695623443848795675923415231678072061487856740549946542661292815150657110444002468269239741219684738791836266727032103629789505809436935718428000779011159733446258353013486786102434728393145158693785719018300368759307868884659090558654900709678010727401708515752360551665394221342765328365064858521822181959202399160255408083664417818782756891527275123817369931489795446816435077729203463923779211459195141204616720014642690849792317909848924934349094223475095598082148754055079537413964411778175786608541044552828543987454451934455916800554222033516529779350831573822580058152515195875045718347326050727858040481249353681687933597791359918678913523595205901886515950234674159615783084078928257242652910316108988346440671167973006039547722189745200389791192395400296925227795428689804083965362427244349818745552462736462288767189672592415963160390944481044953775405847645061556987925226870801586639726059174889034753594335782652054147929050955190340366272419666094433560810701100267859004295655432104837464592216676247079602265539299483180560951222141561310864313197831048075246712186803814067974954284879259220777579202939348190221869609727454292440189940135633977017197138552535627369390470507350372155892708052379799345884259442854608708357067651937332526695249014779776544541007876937212726140937330034456035741700210110704977605899443405838914092738126321541957364742152842467743792399190801643574121624645495173839250854999999990658581427052505573856561545938346670381998349472995268733836482465418415985068695354926285424213386989739551777315253510913564762662457809951458397625846471586125386917580686948645278603991669491760288727446260807842269928078415944881408960484817859022292650416602547053951173474771445748139809008605564916513026795505150587164500493909963335021092909943986712208067586977762203328010193938697527620110406852760183650846935845047498829604241978806384436478537577172611171557340456727180019758647015788327937439756771273022456991256551988516447489038455283595759991679561847937959080895898085237784114319847575527939957797226414299946937108034260745753515283340420331341176547167658170113260466920426765746021701130563816708788556657994109817093932986422476020749716160461414030732973223904008057935905566183981348508628020207149787281281590825940303506040743094014903544402307592105155865311644083094817400163440711598986992785505418473969430358179760560041428789267888389630749027950633879374107846868461466719370160982016425930973153381468652855578583638666724386384869113652890200326120179977915474810022460746938632803520978342905256327712511908814547764671854864475379168972953987973311700968225234801962562610563193217081352581001701290038344598931012695779607409491925562538199726530280232549193604748097741463395907834991330921244608693958425968893498210724045284058725583668488231563687595043046282656641188467040475809676166623212737006611683717470241350052740061669026037115934645680497971874658935361266283005733306853519983286279057378626239812001702205410304981379422076462922403690287205350445748827003234521103641166755417012587647639335196384033545868095089299193600449413743219799772439628536654608568030519663651599292104037992327979588648080677700978933732066111085620910845938055844332004742191115037374999687913119066273711801025780009738344595481269120344560710032836318474069425828726143513567014035355211595458252562942195394562865201388906678681794305629005121150084526938904064900088609949688424945751406829260071176765750960450652229431888968381070162720068171912227952761228596677873410552205937162474770263273849768666336792351623012698428117231405333933161575527579062095198789612141590639899200685111623801365895281299388909997329400651169835620854481468397610558714595513737985094558686455125556552611260372237844196004018302969492051945132845842670272591374974794494645949870796203325744249266296961249846443405682814518131432795498480313108993289168797677136584953426069291495452764755587856069683418790112053311501450772028290043271131370492840469492089488630908689057548470825325966977059780359843674795611928676842426537388738592992210909450765634754640982559558884175770753473496930748018746014176990559941118051390255517929388042551970898877093970196973651712744345239589878054918456090142103215737795338989093000974455544006783427009139948733486909919681637473356053160627162370422385003855199333598354239639150811766957635838282480817628991232962097834434222781700558675001109243321877522420725066283754367468311280696171683854249726324477206700049792438869758620991932594485229449574952906370719519815324881756370770997824452570843555080333428254637224566740616834247538269007921677415386201468648126799905601189831352006437118187782225931605346770053571240561327887896785399372103559781225597210255507415984481278855229276604746885526175474583468306970964619333877555043929452312610574542034815492991751610092758297004878362765053877275157541355521640471395254097027291965569177599469461516829068227090888050717061928616894113856260375075927235944599350403743430299680071646252866934047794369716411575381990658866888753235130915129509842957665480273818857325337852431198962807447887316477283174557356786860345719423832631183260470401852425623598645690718779429161403869380047018595526479093304009953044741973248499945059684502760435473301249317796817996773048090533646770519085063417816375341279667136526830422384657494216464066324019521777560041747944865218880408756869604281474952420892482675569230684562869203130952275450442094418796131104254844626656843450205481998748029387182930303529804069503538144427555712508275575359055666884279074408277367693075062802236275281634762602904037277229550263871509109290012612869182716406252047498026161129829191474937700882321313786537919981807922986600342173407853717026965712607345539970271894491728245774102225265511601510539808386392424156665500935701015184022916395163284793289654929756169104296371865003733578563426082097110725975318424927542531795802131117916790634052523936746090524028749184830104581027305269706688707704784723789685065305054667205987068328985119809643375913177568354748294616057824362928222238042295219919316355012153101358121405155671544747467143033038610323028335393391537587240622052381346522703946371181996932087958780813768782750437900026479754497804558150758234706235731580995916601786031141068283657129778725253726762495341887657432237744009795737753773833576813469243625196316225155719425977021912669520637865997906509741816772477475413736128208555166116197707479198823380756425442418109320308370595006441295151402147908508219139393138157016935363892622577844064730953175409564243307266072633623049111132182388675214159079187462722814253399954940347248900432514807033101705836381960578800928792667297454270305058357733577788996317409656406261388424462874958162452057743181176789985369495728946417624213480337105638280086070362761738550575897515170587015042380663834322292974336488280750116642370594051958743373024569334235068690759600025365926724481480508886652736484772223476188937072284143077627743463305475627841562044279702563598012867187019155102367769699986369048372469370557865561914804559630603572374368856001995298403484642593032657304217379653638480687011869985067957378396685737576507416627563348694973852887740873410228817825311156407338801855006121868881910610039160330160750517096802737347514839112353946199242903127986313146182736661575581297563701364837913243759343979805029998043148689365390132776858731636912366830974731176290186805247627985800559594079613284388248522700878641786502153558114280266618879052938754720247060020350298752448388572008646523407932930494532763217684411568128059952492072406608809618553182636699983596822415237746861094308510645923865968994545954204996243533089878278904568343447113802711227910830650346244849598999598224396346717843719148971119020763046618894971029691361945453817007160011211522415911998402615884500697149903677686536280333593489400786992321053346220727696667966662893253387399677520124242896961464744786091600004339127311248030576568213559773205815554679666600524524624759651357268164277156874833281361199146435458236393304106201507963491767615902498214280243320858702135913993441713216380082574420097474355150613497300493188184979638404607889424129688264497347778463854952548743853462360879283277224809785334158003375182218706026466637266154156502694973246410662974382686248116217541186997325379575005330105180832255874017624676316003082201705125896047136867086092986013097032813454644311483439650983970815964818947080525099359025001151535678974757335682684364308746254809783022443129243957395173390617504135734955022437840638929106124761526789145509474923966965793553618011592838723248141484027028383886586510194012999619443082570210426598247289388880147532189888609480400340443998633830937755597867871840795317027229803885936233958910047857144894635652292309359861020250170822048312035710353929939933642280465878352728978048873119399321714139543609573568733707043387426689423728805912291894682444973393493501749759201197270663310320010114770413592518535942803643923088302484361068116401201988894954438924602682779680962599438567053120848393514169767715182654431404176350875229560026969181629515923716266206075212775611244039775124690933788612767183475562126785355204480970718775171708851937293911941765421733159391115441201171420383494466082777494295544372183993519113726265910141353306318195650860895580437013050362988846927165590751440056669050138982274093800331783977672280162792263305857561053116959391854194383594947880112837401259609223898708274227800882433160328553795077748644731918988337025425580706109162950430472739944579046108278213675994101710246767166609099258324008903945215310940714882381313243183266103838356931505437056244576791120035936948850536833202754045567912934542106755846413991724410695436771304326020682469886703389125323516203053321884103858114819036119994499724409164287915845792019226986263847122177860158857967503246942163174454790531005198861122928942769382099540323341897654487112644488009666655229419058233902849468274120109731252958789876560302594760129687089235710490653141078847341827457659239176722804918948608367156472412720600609963851884911622189746719735674070144820117105581147364020825631756332018730355624910884656912551224734977572426812062709799874020328993123512861975001625133276511398059891894088195423478864178639270939605297847308846493565574660753468961101118449703142277892448000380237402179397245331685218833643342072708597255932167140811021812665490329503888977501199450251561895763265346683696433846678562693403522358835564061461447740141160257501294478707731475423029673404228038978517524165419172633510418891750324575471873496395088197286802522558087741294225462275993934839883479021699743049413282697819281782444679689205175381210374606502823613946807530160340899094976080469784717324845274845470048414251807305728039431329074779146621321577508760162382097589085441775607470077060230717051050162739059708403241586607505317789007393461749713355673657951769311939594355479691704047291583587729463019905582743559104198296253678464114481539923223109015510618693510339005328411445033459007715552760920669920891672428491452939242349959384365865005016020192755134938504006011776877960381203212212424479433337446733101993723632979471519669962335047912277200482880185227835091544564006224456862004441438387266476737323770583457048108181023626201092236020858182038488752335400772746724748828485166244533211632459466378179335828992889879368882292662432679465693409598334558211084229420539124481481318466753263256913260703563255721412085770953123722098611377149615585679460621858689889595725201712655085292234840647501019986209065773089843179500552171535329257237640978843439688230103897673649382610097128750851392905850112404988775578518542989783588500487411718851843295887789248138139636757286085483073901147263807711165125118860587807660206174740586933451610689944847682136733770246489100677878016952860553360547550974263713663554456779812872675920952292780933936926073131781015997563606404531345945593809552874445037788448080922946097119808467063203907304215240171783072700720557992124128286806343037112686064584662627601744810638511814642203535905683141586941162832334907467239111800340112014748607218105386563415972397545541295526874497128969269900915313565940407859042550236792252740669945801920822499975246743818779746384011189785530677560249817880825062449505278972906085219726073498301631713789289173861563190386629256562943181590155292789181078485525343435462200876094529947278799250301087615782884853132522225743512798009177709530559796823373163172593268799848855414203426015976424582337374270131154296412885383236620871566114378570152092190670809533327326572280832415440633635041598547495552402702375145461407279845882638016999380172210474313391485537883880405412301971639254529535842358859739371811847418056807772353961866784859985336758771580741597442472604435095562658098674409138880821979335396793223191164982333894516373096417064133605678917618132326489174917813900462524871458287929414841405938007998047996326144065279474102866933097595203121285131366684961444747184797360023058772175762237344412791219221669777924614799257254670504983935011790442373913507290812380512665575134195464734054235444885398204703357024132367226243594695765492220444366042421187403666989848908001525288041537012681343204461408817482022558855715847920519185876887093143275302311588586713118168687206530211419675227161550473954325954776832411923776390457075226239531402513748816663501264629695309914408998063905119912889588273135416849176654491821787165888813952628711770313636184049584998376403962162790771378154511457726330519475543083795116277365161050062111427415961684748420506572017336307209689839381532443856546103053957722033851444437100822371612428705242371639877218393136186436992571459962271027527465535846522042031238114727932882666178618217458625900757918612675078475332236908950435023026265086118503965344145836119461991155114815859753587881447424008839274822869127851696598385791243442259905453140922213942366344213483976798607053061772998577778532571129701682494954404682742567192740379019705088823977367745531601771068286576098099772632597296830604260278829255853342375138225742066471149216087803939616550392601531636740214636144545594361838508660729779361746348881597567686919848712028135419277853539261788904648207628839149935400878620048455000657406494672504174703522678427880762205178010966226685759888208482300579771463127255295127650865070594628243581700013850351021738022069934294789234073128054008657084288631640107951413920229439017613285587439143279159280350227948281429725866280104267707860772771847586703446707734112040662391911101336957825846452258298080860891150079615628588626521361599151045893727760102328203686809913761085087667959174730842702607620872290309218083222798820366202990432520810159055912582043135186167684895954602943522716582250854570330293671115482304331925720096872977719033494832759123066672296593298187502454482661090172112422434108374778204077764620131454581578303269844291960888471739328426404710226018605704148366709472461708481594640086921103765796289953607980336227163350986758814042282889988138557224555526240736759659115907558933394498672163824591826056485088653006462353024237711835572073932446289190799599299064735235953204043537785670345398809041342085723719858992420060762986390233912057168806981829314819593371933260639464033695255965991995602108284252742390037497857780185265777883385530286698279757122101537824364818346263326976757317746909166652592007904647033392565288744143079497974777091992602042712323597737692296557094849994632748899074357326751926263777557347269005039654085640886472819215881657410190048427920354934886428054449267602670690919883426246770492268164164631996541343819435159674795899758217298195749851802750593180674777916688541657127572181094635602336548912335692036143073363935046013102692721140655486379419385692513545538337657546610573607657693580608691324838302905083607087427912193922270099635434216162207973551597577937910181770021189152143034593248210772556176043950842660829230465313631206442348637902533419329549939004427227102301810439179481631850243087643892569658212786115170668289606943698361224222403548219020530518538798803475231415628663366718704682208379242978454659101811713993677206974533691207129859716139449563143807351802255341177846623122230044015649001732471873858114039453013676775871015293919229770130398276157314065331125778035581057631332753843774305356712021585819704980832404127995065081756905002393268102033991564800682455076843585914579491779111182184217075699516872723955642453485537356668006868984924848693822258075339488642028628349654006734587727382764749407600559260262978160590391459007557052638242606160280240113606454458209824083126083187068408646297557507631154346490260357624377152288187735518871894258619607149451235022153646429811986663321323428505055019500529634654043343580259464141091245514130086871358188768550049606085435275834083627164475522775767032255239745382070959355302411316423117800278740870715672901989671678876740443316568153973455103763422780322966782885547050185346728942780114339084404040892597247355369678338488806103582868133696991667450235057266476634592474674323307375553004729567968206686221909563559143055338169967446259572988853857572286832635191856330764310809390166680624967309575065862353527692569303489552419304220232883765137580091233286985707706356055208820149906831193723381631189454651784465360079133823894416138320224677652221634491971173237689586828819770479302776281051012119009548408379460388782890423074823116003193831411260490730476949886778202295296701370932994698348794177323990060634333453587795958556152794655854312490595696286319398117283761792969677932406489960670957193773852022609022277971670456718699583215416056000018698295115320615021335843026144682110956516703970881599743449490997032918504270801862533530772856384392130933991263329406723536896831127051688319067144142607848632752585284276712143284966782234912917658264432652471385072774792621933117998323161240172095360336076748867380437996792588331053345468323040955433900888939890919507248488069938971143500507294773819817605016844316314003826882014997699278376201511681290155743500048683825393677956235590775603276172329368248834379607207828992700247775882694196837748769599308990757005770138776486585827954863208397223947605972254379792794999179489695938910583317535068162650539171090190639961569391432642257975775185725317508937880112313005781781714004889353132479679140931091917761757884539936791043438686125032013639920328238944015908737509949277316015001760181030724192873265946890340023813350807497498409485378766482788079787907579268348834059622802048677791786697169842007320714905045735570897006834333864652706759492865572959291382431517084829620823563412796719087870071565498707655738332721863770714509396651408475370449646220952503158394565634065155532597755477017911519233642091168262150024256589043594260873624750974121972564200738933997843727476547034796940819652181155474982366515055915426723616531868596869593386879622912742768659774254798726743946692346298555042295290110841897257636178003480171997270524792388276822559912691539362986186730545067235153752350997149241382070889122106626775271155392327633256590181141868364192795233721837955654678555045253442281598711929319099585280630147204704723959390919109314257223011912689408842582280772292424855909497150741216634109964528801053173842915174411566762871390159567496931523503911704354907806545480515984315418073194253616921913021208167730691249572016726261729556324321872991496639048133918892037230224471385500812062338758832500350229866149736113429055581498068593655005772862188158473260478480199733603014328936789568554759424210841057938662219921460756140477572014998645575222099278507181489839378270586731314254516661646340385853803982886273251856264434151433207510069453422933811784369475007798444022799195651785549274562481506012112927359841555660480073639113028029394720897315353755990003531968538109951299611570085568508070840144113773326030527965452178967657807554493521387858344042245699992017247701993914774348895398847912607043450722434079913375193731616840384182431566371633125877542712242564749615332121425971905250270227389220326042283958533016355133787126968110531937442369408746999377382469264985390519627930942216416377600959140218173929179949049565203196315967004092371452285789533724420224680113487209144336145977304145882890407539288620856585395597865321841306979101411346839570839935619027174758961317824131381312533379795781198140171884027200177162904922301305963614060133649924042879546996728660438502993611767765028040664718829812249959647705119170330956824201311156409774946867530866738268350418659951083427479959518849751898119942931411463909454030424882673268319657155680668011819187807735423024895794101512888427459140651302314891991871429101305968975478265767854427177426758699368784564890573927541373907945481552963094359881288591838589962455591193586430163641092277247087259114626575996742114331285612591470784442351313941175139871557826916828623311721192453489055166739737068736029894872121655847105453248229593618411536431150858397825151090009504579346897139324489890429677044362666932426062333931018826323890805305925535594062594183804442865997638268043960482927623362464661913238455819856275129519553038248121997595153995268063731625531315095447308954032652167699236816952253215637745918507719681693072232032627194433093248920612305213129001480270251142399916532523836842877144975035244140157139961126234622911972643663180107293199909222830087101386670537392009693020070003150206912281678836888858558937576286921171106355120407289112519132368305602357742311073480729712305806658540658655184505636811192097082287997405799517532588547704551564354453163334717662060740281819561769788881792751597844792883436710540595579212730561321843701070525001012944761811438072026309209666980103674054532501637341022316407380589686481492816684516852901375240356535447273782631403893613629677942270144144359796682549758144985824321754847290858950010823388189076510693647154958769602650858697858992114644967974130064094725243037745132432725774054167899258210136161503185470224494425308484174524506610445327351813105445831551934431669153902813123313935667884399009824515338798287570730099978113751682732396048287791984620891933351048543809681103274550869816624376931681960643210130852457103142048925145186883228641962273194851281226778174565399062034534892946455383067574521385685674664488796221432573382162484060523326088448504377159814029135489055396962579280186138708125231448225882377181153295221552159616869059285609890898764953321046165855936655608168237982544175308008779744447407357408390712034270380429720262790901951801045085060209236896552453053448810489829303509792317958843193493874791908989530766901751911426773179095459559947624151362215720591786389746723512003159475335727756358865866542109842829126313670395910870287246653879068336864444447810542582789108718637797582300967504701310369748983859009532980214562508332364486777194312442554238475588792387180548145037112500560238295559312714883725657804646939666872226022248312435001718396360485721680934098188598650938894343698595366030158182527196708646051094192075732564814536548943942486653934941034026248238903813736278222667056315466146111354223498467004254280750488976257796007226723185483941269325746811323494629726918017353150287299624548675054410530815096506159863837780451491790609901581228000202890459402998088525157878279066604425724448206915707795325633075323574766136328825607829664575142572032640563859205873606970000190042329347109219334365818328685224956606510257430951120243937604897270424353153156011807848647015103295549768018323799669212164653151922854468047539148279317374610099346624241699517284289462954378685396522484598443626503719459609136806114169718856852852708117953268570063310442415982028002365066238406907791820775791928329313817840941259276635950859217950028035308251987580550220862808969517325359219595225868315718311039551585400479011985145678017768296376251877170812966787686796413722763769453537464454764823246801288871690547888343453478949983666975970347610906670983483971184535048982188695609623812185152809163666781646076317775873957076629599338097487953802619555143527565690222495952546302580878403089144953096858399741420336652557284860226068581008740700471075552309159510455695273537165813790099361066436929468068238598229839454854369272704460216451286602047854480818324538802274971236586335231378768890864143414583324184599192022638723101289599598842963967930671655846248976915283022259249079157828902997864025409424931635278958113181562666442947100574429187807041572152321033662785586469295541752935786076190834392974432999720674190271841675859962548320682123103362014206575893525526318597394499919971814113193255335296422939050337011793424289762533702888158152351078281929807178210935093936391576651913589384518489742588274872964249536235874573717066928255571340493737102471392120154379165866849617906596596959389180071500830239973548825635598269098717818033807406124299916601740389843018340248787735742227352893148432033443970081094283376225781915313551315282354687157304591466124716004425621367577758972260324141161148951637566217598693650643294009450057580341945805475817423302783145834378114836662722367506595795736098071183163627214433603720833648540905309615319129721538991315537693842074867011841255618913408415656054842936078254225190718739763690664912477050643262819487496590827316165854260137018248174143993470988128433924113744593666421081933749773349350014631868636922497713598967198583331661051263116454603813173361617663917477298356593237077958646047782480905032686423418963081373266053900122383852637680933080854408628103338510769995808795004681126859586162278581844481199222383676888657771635673467736986789385737334420707741586438970694750735819780980211524709792479202218355031219267501181833877583596826710259096882669484578739952407270361134818826238864779291209450580479452789520067572903499944657928323229824893565205807297300161205098138404847986830396665602633124272527289800595389315555298653847174880310010418125165102818919117550370346970208939832766149835402294740136109486211198040211197465761643168624794006710658429244280293181915400005539474953983195739974896855787502381520855567347755801057386211851112469990437056548346518405016363701356095622266546521009861801691902451711686650094083655410303013334329625291911016236104956124971556457848403145569378228578569729557840102317750572528715681042195978245868627958860424958831135412749326612808184799019914585968746433495890837849235145478056692393647326291392440020120914641039765233991195062078980955026416901804683539719436843823924287497132458416259513679241928717370368748548023315609302713855336004266673730368772328330987516532127139793895117026369632883127825955203751465882242985415793090016532075091202282489302419613226899232381964228700760695787390020904542570694382987910677819560314215920401997093283492876486960847835965005097969975093007052225094553226990963363741261969731729670153203034398519916348145272375027837073040295908182239546756079452841141998605764340867367479792498124498011241819410869715364173911597380455087881072569515766436802463609621248721977751530809880335105169876564634455887925006392087337424654938531807182890082870637070835526010182384982416402409501187270408875404398508407018294470780161866786861607821048987184049691683810039808014091396608343035384566760107633512571575650566193803076306177806450160482228889261909996167519059613903806375400451169203218079999812750805716611562628765997046102173317248764824164515640901380306049776869279701939335460551857388332394708671161948840117531608230733591368266777156655121776037824065971925025898035663178141196298686380449858714415483154400294793690224766512741010658959343581668595448368394425116432635201950443416243737788366709750203856175921664542504662597376401298604542609627511485598844546018931673760261513026396854140931021459855929480977531081748729680406130260151956169709397580076591872330660735548198144331639079356857311633055271277109449749726667395037165875624955588944611892173235115143180743832816198234202642779960881811294607857380322363196393987198277519294524346649608944450958458287448204102731242089286874214114604230760703506551355464922151358903619968547795422367358030095602993255395244858971944720539407155021845008066813886339941428742946641456015834922545359528314715784365708229571956286108128035814269715559003164293473694363124030191180040396908564756490095567698397080478287453908025077696294109274030389640345565557776316945319422318228120799538271088450229051948276866367576113263569525013918195271633939484691916137019183545090221943822495802643387581961034562334577597881837737631112860076410250618167046456404247901373613392416335032129404236252075249243676721810744542657554793568381921105767715548804773114874011780671979641661046856053093020131691138365775073464538461317270100328348541358414742980613666174947009250290926539557415132880386149056888216615910280716268199454444787359126111739625963593029578507580724588311976150906151382818936840744112735847693336143651474370511033365842197239927955020522150691402761165510961021143084902572584553034975969562605140408050837713276273073611910396883656236303810750137470506194282560646615042805588405072586912399387423913230345718165028095419954511500614277485940314689583218131992658880313616655044150512027633683941529700305248576164289045861766801175055776703023113756325995206839888449588469320974517359320325451014350979666219127200661900818380298847898075873170956699169645847090295227750935929066750308416788013088821471110790394399938635964769246320244698186272941001872419389991142031128284329289883399441877911794339021198919395689925936494033093924284837388629680808043091953063875312639480490690210375136540041839753644696694812432817262421440189457875216902903314430189151464122909255654736636492239553853149902983792590874676410344559689880104732429932156552473091076252499343977360943561754291954347749731320689749182810614065138839720328302665226883846392333652586080935726353361158671065480216326616087290569377223324007958178806252118981624307905328394909509506562839926684340355645119210770439747424776802368662616052310183450782170484695480034509833066450312571378500488847338791170906890479234022133812597743281280177482951154558159601992029787341594419271776954722490397550715605872870270356557057413390529628411878811105935180909901211592472966860165163831446139374483404047379412757023109585210309760025237430335770574197561771907097973426365110852637779588021798481715013494999524601668596757715588499385300802822487969609261090645825737743866241186182700467959130979527659523897038857381832395730858456091591874964188891514211523063476490588054817578673412045397946627051391133917000144415001113029006870480627976791964843619543536904292782927526936278120331099182165240975630363769207963369375172691668265751835257074476091902660677215513977940230786600459356207258475918785395306738036804051380563329756163366229030722175220013353397643052359080782289197940391139122857677732907090432985286486004808707882846475023508904407278153168430793030610751979829022536157981489474232416932846729489384755879251472648977404455484109031285751081537771152433333407549792549057273659866038571888369635270938453243307128102594949942375200358511707633889660413880524204566968266479351819718606770182422971718131905504161825465817758426055849031495725792205579902862219742022152430409876431164205988659862147378327784724743742364021916150340037533845615859212823482920363821958868365649816136769814822473211430272897021808893388944585930405122697032975377676501506919102401195667574470106390666931123357517710487488757960504434189819683584868275729781370921639129004161855624116718905775034695553727889080090635630193571054469092471301669499241353276345963590789513690913784177776501080764646317172134111240966900602237397769852608981718409654637849954993285467654025205625179342147192681511546172649409606381513071179288380079222954719176937285291141449527408299901091721610192475960480955418944776454879075924379644745368022309999995373275666676128061034170607906077030112531042673816135275756092617818829256868775251168169610066730073239858335519568455816760138783838873008980175445127726430311487230116093905477502979034348228595285298891329322969587433752680917367775073101131889475296528840778335248640826855260713809996647469778339291082069777278001416498909319306061655309214257046624694728720707733050333821247517536751227401031245527491038846070285106847242162847860408687762371784821517236724240869473816519294925250931627505913759937670628134149498955962037380532084314462109633485220855383712552731238838009767597801385365998704399444317168735056657073153500117553777906941702958335834704214888508568438800572825000561421898343365841773408993481909167226327819374450576425038280028307412618479236733789215176408615034229044584575682645701604278961920991420775461760932586554716672337206450342578285608300083416288725694432434027735249121963270737005930499808920355360489228733248855053952619490887185898763961575448275592431672253096410110217316274865640589732141380036150030795095976663444247004581435130305563504843674144014291546887866980818272047969296207957925225657129420407701565407284893819331649032049701956801933716506196239840923762361487571031385670924757242037717844957198868894811467795875074734973154795522191144104427785284661521515731068935944697914803032699860987665874343837773272899900408681645613674023446569744759822011923327683296003732566901367760794251540706453317349528457435865059031098023266236724429633799445053072726588337092498294726314780285853863311816460589569366015726742180426102649922126707723013735380840560269990634970748383105036039179490083328457774533013203170398809557780813122102364115028420767322552304676667990788301074841845355844879881424110737279801852816088231449712753317092468373902130857145923215658590564730219157963101857676598693638827851713088802962746115066584497842252720868316331840750535598230362089226875326496674280113325242481939921928480937065770099171498416378446580354917314353729353732635597253044746899107019250749071043632521349337110232310477749555478899763978586199757073369960964450849606050089432824574442124065572309998455787599725047106781835065857056651537505995327224495478318035535676067648645564824131191363950536562725595045996694408198479995319948491999056729075490268773462636685432972278532184607301564315595941180928337643800622763848772687676520325672623571924953118997608566882392675344334857329146617157432388426320660338205439858920378684831107683194475073915392905530917397740452933127027525385446780054786915781825269241304818548202327060209229596605777815154996703138146815160686969120155634342480155344200779063276653394616172512492792419408404871474417747734525986861333441878142719029373894286554235587707169590767718113490968038611842925676274093909217434954061712830647868658611473920496262430134597058345213767916301863067820746596167294251093027061943348787941852654611669342294470180902338368535722358941652132504415702399260652470971980480095843232313294873880523260738090053808190552334502499441266374570596687865787529226586997332121281545296595074674593630966173539921738127336529970313655305722988830456517580801112552803800728130952336200773432563537724809975402190716668640392529943957214930730304054526246192515955970246073315292390626447327347151687279323349223152932784559021011525184350769338276134991946145388911972399451971173437418405698000666733675709983361277510863589749496173065647802420714058627021745844432403194903466241360875150441595717036455104626866949505734432248529437330567153969018216867136883572470445775744557111565035266601961575090454292819526120405148987321655446323678870178859142821532487593536872618984030707592319968552296513534854157919971685777968214051799431290285946832049780248589839316993778521864027077880121960494436282856399673745905481903355483253664608478038033426569034469731501528867646970426520018036504661773149978610162039346689876318481909403587510516673527151539251244380632655374666734859151526348551635709507608362024147749831391322078407851349265163415732300738486518410765281312750822903121175016616171696084338697937496240610488041982368337623687780908507545385975676140253727502720005404980093119422214603449069635856342400042352267747523228175437140820956283931027920271449760089650411900244660523133016849923659363211626873901851510248908771736369013711331850113245818412761631709441421981175359928999744593765669474616550156378305273790677367594955812108911664612543118689579878692451752008473398554506544473291233836848440040333416660980373842967532680861676323690672268543693222231959063133739205160419779747089100054774523322384487192140920060314581087246136463729327966358050881672861971466203854109675966197421246189287592446583143946649693102500054262463462413149519985724396433905671125763370286671579685725950248145711045856916179386830322558876215738467308736008175929617710223824752602770132529686874166695111372895264128310461512545744141414795196237799900215858718826449427667910676798813575316169571569842861009666057648874139248658862020902014122373472664832096623333669749780638133161339309827048304083969025392897603227573555347919450591775247822973722252566853536906821814873910827363284807060944226464592180703486063924066078863761114748795467073697234547921180141071997562769049192875475081683923051966241493663036516426207923505083149108096897825738681891503729546770101019203631100838510467400853761927766665450434873266998806457877167650796549853859645040704300025164444208262591745314137238208498121379094672429347450490616329339141451958370051240896231075900987299994849560791065311202677139884118004890451968050411485402936450532716569946917949153533937706357800644450561747079761695188434729700227511031378257627295516356573328152940681808194977036517313866426117672520461968000151063789507830798729514303269052038301129681391070761553629413133235563817224623901725207510747669794000084194500367876281598672017874562262013267298670293454416667534917933205298493568241423108458061425339964955386219626362248051607365235976290211583533654992724732220978638254230676643134480897769406994131825529580162363769551145030055345584672303687882137779212431704012835074157192131066285614165698025611760988744648703848679452100110211051326702705558834154404982650207247617877094265471977502780171960925503850827702015216323394047825323955458606401672725808664883636404038275685268484207380340029124763220104561839389885077396017789045342154445578509689457914705055218203259605313195595686847112537311485335945216056104401146851789126680366448239277133037897318483377630429964691704299916860156592126034456115796549985735331262991160767459064868862202595980078238885863575291382637934647775614587529065450114641278145577266696667475544665344867953686768303128802710155541960565568598423884947951518087959072769848676558253438615286049319533561318319843063053840998663993633991740530726069587758345810951409990208559504365026352519101825695936808535364515978268156367827750293412087905993284933941295721834165219529075886339164336627493867351995778809465627812892450136842723285584206741897673202290480521645734140464349951510301908102497890405445277588789047158090503388588625395917905832581792289196247569897164041494461030502206860479491450869170875020851813503719831701681661637056498219667422040040411394246527121308576279983434147206490408747263919746225632163148774346202600207784195282900535078133967888312499680365975273704697131562348072573247230820092374337868432448174335745550139481576598368075437857534108231187350152724679189597578232902453038593928748332181887227662947065948772840495649971820289415910733848293079465393096544056496287238894726960362226123238979117445550425376539012752193205770353552524624656271072471354271363817122384105487274300144641267836066119398771424821311998591423512616680009239342540258561232232380152744616804949410619921681984738848616548709970333885031826376011413406902934262645781662831963162144496355079726936339414123787968396334825028289292529804274042556991759732978947760881698759255724250266091096582697734219437925879451508153894369780425749589905861676516078027061056325381117168060682603115342126283409946462667162856309572765061547861508889825225964119885482179075032767335413748925693302832832235251859703462399537357355995276926772782041492199470434314253135229232806288453083968268270645729888150424309924716679791298233014961189689593916668206797350047178149775709705302880577090432284104284545727460282468301023131436995999635601156728860583103056293474995016657586315955577741427810088223147999494455726260237283052128962401705723754693909070048469006902204571551489195522552951862458410123644941460920928704685124054923653539801869857385428053300380739874618788877792873776415833728448938240948113380142476146844417968782059527726631383056842623483259412861615707176659673727422841479820843494513492416971349796049866873398724230853765292906280916940534366750577473322083210627284359478279539226866119666017727173033652629910704444990116953946142047527450758671320635633609503548160525693013930130768786144939134059035155740478485944356544620714706860835851722364028871072177317901408255453334893997914612313168307230047595284355939312458818035820799888142256881945540010972410527086294410368979594834940688777031579031366896150917309930950406540949156335209070721047972671275974441106814563056223876757569702528519272015654284294607499790147524700230110786339634436018565501345912189229624520302592058936874640188134486449226855525169817652544889346485501790185005278829450631828804063125693963923823513902260375813679618186380898534699243021259153368842087294906501246300443328295082556751310545897807994061884941163830528008174221128544195240049130326242896369729726648451120078461392399864628289791339693853209137179578846764644909217012171706264111255237835140044410463870086127821836444310068471059453840141055976672846156863082362931418828608502074891446472482079523865442320266964835477803901964043754347158137614159154060918775622905979014223667585900190846323928237934072795042678006774675265874528035647383443003082162315616261953988764630956495833435655153867510115685633237467237274643712527501617803241745109842764095523961573621090268977933246103421723140719830316962208330705985879382881809263120057681962448605987436893443643877719235748515219921470007032440113225894870076169430547497285147852473115840923682093491591010663755206254631998826383648096982343435653729522047269953128605165716272043375095375252207228777138304977505220367029269513890277565206260945292879001788185529000933414858899615946619309995261004558080236291391743329672974976406053126565728516087978241376654770073845342591558894706534406616668350086529532479065261512847091025857199221585972864283642944555352854324801549077043162810872013448974876501284234992056622825959293137486825330186690959064198461462660856230339579782255351584312231469637080062626867061701745182502821389330743770264920649951915667382285355117098102449954336090384857940853889381088155178882956240819936685596484279431876892922060116403825812902030553473206245835583375718103118248847474941434793105731328988262788855599513457628251459814877848851129614597226186357831912339714094784738292064003282442286624204911574993101807629839249875413314075284375012636147981782193065894358903957437484104111147341110023535260271870493125603979035355806715007339190170611273519878645279764122389314630329058246893508563350800214152188263400677079661635475340437463313515813280381089551481278430678540678749261920590346797896567618358829932813488455017373846326948566264761057662639615987660011998625427580497053411845022443002474494587084770303867801167941610750985508561049089763858578577553424261353003076599281815348352876128529840700752526078183625531113313059912692247280756210190690204613939529821313183799383545964543471748079462464835584553152558928450591435033754552587260709091257622738700071049227560832620079057504588796289568883716977529407473043423401660080031906168797903114038612882947365398558938401437346622771029836766581636938315007030943798130771376279045672575551471855418111117187782376348712096917632897529173794289320289070683794430751667917792427052206185635154194636358365953516986811500142137120216426253109234205871185740209520931731717640153052334784066875054118334116756945604618969740574129713099155948163016936598612773165300626207079324158337577812957529516074736719028373555134916831970053763400422361888125075677400636917803488623539595513264232429193737788832082162940126390021441593570496967233519227752078449806881504094619658835054967719788392435933611213930951504250849459849560467399730853964218239379216524437438907210235536921327874175936643997104381957878637411074008108297708542617627264483959528826105171947905029048837879983201660526893505092161539382960393171778585863394363510010514497830325594747823356045803933012508331808317229807188127893158912898119489144213744943077022186093446876415918884360921076094884499134889536148997787699679324884904776751875743670273889089038778543064937884538201744463039724275191990753547644471311877250856962119496434826894789706061313014832191148091318819005954008364591586489996732453094697372471486182002579779527168908178600298477005562341641316405690882988226198898010782443010648107338444753712038633048487839845853429058135392793292034071727361244996993383611962572296266673211313774718728126858194211690645546460713006312916708911187045766180362648074280674583176058621683927828101628279151002923070714651432148259772005135016517361943981722159481993038195809426338872793121958865876062821276530551216407709890524889632376270898611414650456061932495868001591350135067100555922809510761446166404868889341280402372872264465353660976795053090778891587187513795592967580037213573423711084635213121187319447876491884864375024671681058568842522925523863773155903157257795851489985084646998747002103600988930626356138034414973793396974594324400914217963769883259669002113602376127264654381019433387296346264348093511502493421960363639028861680405133311858759692967686011490839881761726158290953392033747460902981578011542139978620523122395570251446964202332525794052026002252875797341928522690667365407321174798472739158078238962025603418176448317942769155917140095041670032308206696694965637874993402445057204891070590219708034269782194185967124622107234214973847596511262660591632006521581380925815972696439823014544048047159337293351991359663767799409583923146941657539714383503766455687404087174402196921288694874094249674371094577596897651030319981601257291286381618899863227692913770107705740490641883140977193706241193956614571620927904433446267674174809117421797521067028834826618810607618639755639673715785821001775488843379552532902479644461366290928545440939848719026634493214199409961903355832078505483556901381934271542607744952346825428327337377149058670530849067057491577246281329451769014335894762693713682529031775837191155175338182033117458800064734903609427547211109430579014507039068539162233812731383569272164727431233668096222166925597252802456858398979420975741291888556638077940974765447603008136133546225058120235933162706842934214741795325840298927210854680347675597392648719473489762348863301267107225670706724665521925044947320861062055979555333876280988515960250005786799105492287212804910274834828055413302576261291035572442711970982367567910009811417734157872168979797925809104673991388149917611324573835034481334609790560714878422839677288570996678213686750372572793621020101838174643602768437183616991703738375795313211482730746027608100113332893259874050028112820539941077416494717666518583613603337882321806811375884266755629752052571314497729800104198149023397243250152717536252819487444126617689203296316422075270677953818173321158891621095287133297704908332622793117527418584865036200308956814742535983046813609783155812128147485791056385405608664909356915277847021329934310998814740431716795398916916339902415686991919300034855963751497912019229413552591190840317423471407638346854417021585461430708409309238027284008664292198227971554173101136336315097163861280382803820539241796873595578390729788605232090346009631714390219463557051056113747500105674450555214548684520859187028224414498754974420424130593786099171504886865181317979322931794260408477631096550052788766887734692226937374935638424847692217899247584111857470836991753454002830388401677479602380241656772430181346994344888036059395774419937850401116271705378186989357691665670234832619123905597795370202706483885675225074925216570647617110288624688806376316118678652261131796891269932293698490963321945449308502738009307424085111124708535114003609721778433323806979606776303654777564678420349431344447280735447675120248775233372905801359873462263325357038294550928097496514040992931620057765796728204440602476053367203901298768709104117387491560295217960862836697091727989558308908727395190071008527728276493606315345474652524754545477614886178201379420941099427892174162070458585218179205783448830701012601360863924178838450935570465228132751126870137945793328297443503222194518790688626312251457441945619621123342281780905627854509743329235816675004388512301224288655547294852447031768100985434707854397896052346968599356075809775786873503321847725088952391367197358991200700813037762434859817719891587138341516423570393136666905859265301262241991473447131786398746971465150229137562993239431632639170446781892263854967558574646085759403929186656597027739197196827226377555089788085911681999093298767226245931171179803195242485169008610351230319365933064564466259009752782068940670652236717432321543026118251132174582411811377915267105145274396214680794203023684651027610588131875404757476374005182474515722266470376790514206982411827429273112269466759658905425062310339269227616346451045380364541124363244509836059221400153280403268807762827899362745109001360317322735374988446540867648728656579019461134910747700037172061026410499494423573731651861786013072009004847540129263973278976009658099770746294694523517958400438368203413344488371790446000130357150461869345694929632042978781773609335783598037875011409320152189703770320276218121714119364838623037282709976521047462493533395866991006806532894707091081363096606052119678844255645562186123867937786490393784785737237660995308839911565768811123522843408038895530183079135596691482444947778561162303175835863734126972499155575639175387314404729842418823402586023418393814007673616557276609177368021268947457720080097155415242237508960315222035505544805698344959935238263429104057285104975355251412411977203234278670616942246633437317105705112522552032276226526442165220739470210719008898234801609507601030691196776951556848216056224097601774715283905896093425705119102824495288860504165053969023856262885381789974970866851555383524866191865171535317861702057205079339009020103194827942452857783622051127417727682762676174104228302963353124499536291462770085190091562416889499209392491561656598057702988822906274829367710036462788843349127960487712914672179615279670465578746845513998866563643457571265573137785919842999612898357699705953373486257731532474046731321162843921728497713627309746658870699064058103023888685613052693291175292203963021740972810871870329212276242336233228970518190428124201545418384000797232626421109419794669387999430406660829749797542468922227065105481063679144630329064743481337214595893326969454484669294799836958285235909306454663032236250692178531452936624764504352472827961982171092343366951546970509319449339786220112090668232908898379589904623867555772178907252219848716127983736811209264587485568423320767689126757564099241259906593095503452443062129746532153306335052790534109414895489656173716725286663915685266444522661868210579990963019862313506145954177254565666745504652793078196850361161299130872032507254190247197724778255361869797535288975158105123583084605950819186418128427719938477063262866533739701279639834032232700056033377730681019679639901368083994821996315506053357196247867525963683190748099469757407825793676587599659749432456811662782670190199005723096014464864646505672064030394913028273771344545104759091597800180079084777875552269066128460042892925310677895752700432355403004226990985768609391885436683256035038201815142903039115731459431488641130804443182998354440720801741465382318112464619562353719092452959222981118386043989942632477321519810388716292054766647087806844369870130408969478197871616352219757912238358036519852627910940594648994313015739486350232148890133612505657439534747923133243443112066688094824658689053117110273479263931270823899820354884104415011784427012697884326790666062611086507518009989137058705574239325042315179155680947917317806145502603880089666673216066626599446715188864572352940066817545049409831366082709647734265923196307357026926630478429095340076651751015219552712403735327333434962133292730890162021778694099532038101102085926822826929606028588966905793106785628437184772041098290850478228824016250133882223277981559917332769103229191263178138488116504681947870478793237560912938979841816355074060825178066431613052400530556050247734380222824391050051442866304158453441672477607974604862821142880745058742730191738206556894961563294578547572493428179721743010160315247833829985899268781737742635221051897680251298146195632365030610729390463214741865805788666466922020824581219518032818352855857789070798740942734644613181873053962798929512297433344493844481534216950949816286943153513645926621943784888154546769053727747288205769498409948934610772115848635206492075652353653625975953244454693052647597400724272884116002081200401561148862272167483298868665765044655204449995464899483347610053685178177937898163091657953858919365167688875397908757000586780682193419390292986658750338518496784003762709955213217271378149001522663022716299244523242584854586430333930685422222007895293133858310511575383553221788225682543252934851935561661351026564449947924633170261069621172815794463901134780066064468319894479061804504114899463378808973613015157850502698002276797704811632290388251797174754638530103261762785994399524702580762906555215577072505167448389002070931477321060085162239286867742541349379235690948134054872522331404212581107618899341757198193252048568893683146986672945611823739154639115409162938019957299927242087346549368627687473224728038313658306787003216641761428518227521443872575267837547434352876301401612602667082400490876754795617772595267445238486693086105649719661079282167173989675964438583531248025677960459648332572845764842613648187868639516857660943201672344154326352980330220758910708947823302749859510043019732379401749450239275258553534006956262352171069465292375697543589746997515143780775719171195584565728280936669246625292112260732006171485764271024581942931440417058621442623783541878998171386989611410193161744497361759929939673144752430906687540509691950583643313209265331130956984777957690428581185747278005426231750422360973314425264824036715500628367352616884142661896037445210999579289814680791073047538616341841378335598147003523313822119753032087440576334334547135426035068830749176995114745958424474674026501649909757530229738729696698696162573931033375817043815669813773660063256069176943595917391300807528144889497260767462650945128939798504681475362987670856876461243749598358050959826568601036293691430275402514774553330308619883929721824563924225906426009976028513353807284292100136513886603994916766569227204394639543588193128757003143463508729410189335623937234647998424872762672266043894986436229654195053391942842176388283533956145500272771165005989536506599376448764606968561019561197692100175221001143180844567648469165280766465203609336224264912670628159021979131473390964469545851984578911491731431418276371287936758664980744120416903801822911008954917101643811732564310489382843306014645149988849331067211819853080021064350865683474339761908328499878759360938779895445268586167072682246418220680143310426699686169045613657287054390764660093553248923952211107657647710679632535026350676674197599424345679394499567159149652956817418344808706388750714381015848468083926141965351400272137023847708366558221337086915523512410360830646854054469356661356565456087541947887941449538747735780708256729257109551203266393043568757090493493289100512624336233372952574735780198944117539665057063017678689282762191638385048712014483372937368803875467818764704841934226007734587373156020947198353281342862831974890563019638462153952421229628024154755903205631100520209223699269542961206174797315139286033032792649606930249946265637470050232109623187135038775611959117369564186566263113519101003496093376954021756551691647453681960419896454696147806247315352980676995070341980477733866727792325470389092094944168794107443025246887478082267258654584172591936291825640215904125496808337569494869436915774305940782787441657231965965902426166034638070773447886223936360507655115398274089083713109793352060990701496493974471789592863890277306427089377153422831564480273276750429802846177609020834125250139386804506689563450038312546023980416482679855745797590599952671641143010630170533310789729990064176322724941220910581772757414080035453526297098566612239194178431227432250091797585994890949266592749097421668505840866277766772539290656210260605572244497168380009341292357442168496060084795423317410705968909395039368305108625824753668503567693253430821360742837957137581987411284478845783613123732326385268151370810975851903491833481315310800222300169382851459336203185379770123815533188157545029237014518929768505610537496123467314692835336405383250768201114433514356564051606395666892548224247988949679766434011687489771288061688731039362429373680695238491221450026936894338543565521805677795817200337384579190887399772281291788269877191283456198142765513120966728172376379636255481159384418188490999114182340291024193187981658232904492444729272473706353234014978108429827299541371458969838758651343731285999526943110310303222645237800681473944155467512378151238283235510772033902745837967833536631398274347454518304377206483840025451018965866626331961050279840127959433731839221924316104073784303093525974308917338169712393622948890626160368064287080246389579425282675300304262394053724223829346895800125000397193347855741599742120396331095691683148848583576427761846224280657395085087540362682305123506360325180221777755054041613918764154680219388083252760677956440105936445609564831850739770209904655351447002052360534147108716553877439999683727338932238071361368482866075661135792186355546647133239368289883988725534287826955191938811913376142845955751079618849737095115731613751702592999152184088470950717572039470510614452398002248526113152782468697525081820315114166109565575272207855368917689539426582462386932211829350287420144849732454451337120748522896265733166657292755347818978819281451963198084683285369866463907434517380253039453482381270819234818153407444726345924214564274862039066330311803656924825531180954610764643364003235567860856196920010572131978653399267795868668111559137865875408445244186243696395050312055950888453345513848561767950453070588924377116133668261137137794776968199515863013696855841951620555103102967751760243121128194011403595616164547727650996610908970045042173537719400204867867954506755381041007250319893281310336139767675411370742491949584958238766148327799646702534774126299254044530986836053687911388445840114652154638081889168417703963012703462237026094771621559799944926314177539244663824005366838346265606634081269932947779994040020032310651614505762386591894279854758072428454276404572401518379991379592262115597165146336515793699949500963598332764075573265210800248210536606924558514169944621494684844952483323548434702169910870526820683804178736258370803754151595702443359956361074672011639966979334884261543737690657989403886202611905991608394166358076376641600243537782549867432195950545903930518050625097931150583162273423655402963207631931519255882082724166419103203799662735487659462371613456595503123560329069234905586123216295046097359926313578022541643007306567897763809656931174562741169781234506734928031663207841809583894268915457808589356331852684431222092891950538223424095144164818927661000348425338807356916672181839290049474614216968758116677492136745638729644973017836046229845561213978437300874785433852326752990755265715902939295278966900589593599815079026834100804134545895002902493529781849742739927891914012374691269127659307337793400963755438434722528606304992449747752076276784094691682372382676582338335102119266084463276351518644374286150336573010248070172260956471224490639178568195133983917150697506618987394484159691086991502456502596629761284357262530736149717759500847993195976209158409013010331667574201258758625692776844883495468877693466468713898145893006788508153182936432146625538490929281516213978790779494446805684809543949305127974317144821544515909035856856978856585058434836556247858482934679689422927784910690676534380696587853622226517935879019546433992587473003859247052597003729065701978329273055333321717228414956132987126975550060888831807421929592902422511994333939775421999001627261746270727360634879449264655372262734449069256628897072810559733237589998982022830569115959482450535342681711391237882398436677370550945592005706274914954372528392269631123354373945966838638098699680440720609695167001698750559071903313094479080262158772724804564468852231991908166641907635834287261710337722162404446239048355744187905145892397791023507124576511738327592866648276335622276534823381391495439398247781114052065114753449647626021163834357299119523673104600620197206324219897368936956017087457035868278077535701136624859575497064557867396594673499483232059911533757669448947396733415230585831437308541382576465025777890877272415842168581396404893603772069005528401286827182631239002192582255962058806652068611950384128959779621401121482031111120834836699619640096903718039161235132785952136913921007978855318845432099237145332949865319550261003935927437451905618299894304157919968338193871921259758250535684755846147091195677904855115310128900897806593835319153806105694550118315595117979153051663202451356921753201075706694363538973599976436468229791657376449282220496705395793922314041597424000042601673032734284037108926383195957336717383717162111468920637390563121821405454346832160515361305244667703763737760605854494234556922719761673342418582573929497492705158434713420581983899735663640823032774853646244437308309482712399814892815698965595109772365304737121452293080897181291408634790759844451036581907429688051611858648304844463384086533233913152245686914079515174083548741323112590014762870172965733233213037203525882502137169521143774585652703054560301687864613579308517899086341924700011791842936864299623849128893226357365686117631193641605209253438337598469324858411208659597741266207709993139494685243474121150637544297163871147009361775767863909979018077045265722008232720605932760380333164197197978479706169077222784457405497426763029322703005245716422321048547398982351584888578292401785382452995800431416211599645867801179584787351764323477102231606502567953078140990290354650603886348147119941762351967547208768667231579423303448280608154969581741349688352751491880333141579969928073660885424604939651889435302915279520760947433807495787572073981369448658441980722186736596758089626628774672846424639008589251628584205464895257794036625843302689515064289001759974986961762113639986681793699295926627754694243131901085008372667269953213043064495798853477810934895180298035955397565106971906726339133396936374548129688483830919424254591654000241907520512823985392627720228428253608922116185142469511188304058387033397529822979354696022067614876555906513473097122417379830626734139104453407835136182274288414783986712886633537915276907252046892780883716760036477441347006271400353650650300805655326295446163481633619059500538951350693933365238960707422619734301707930368190382339686007016047982132442468623803602707814323434116172788569026994110416194913917448312704517517225184896573971750019516074225179863303031385148660079649956751373858967154723842736198427095985997103701360421586317089202304158881462281269233698895413847465280973622060337852427237950416773642785431736948650722850173649161665122745356177856117000069181863096138471963512816168698642995985095369627418072070195928027953732419248299485342516262206976871056574096362037792465562664669475130563835228557559462492783750142415316455425702761812444947601573060274652042529359893987040036342654581716368114380776080656549469004836957368414341997195256635774780909392566382980154008592895576426610054056201878644934526605061441514381309913776960164262276306302129942642126789509635885886572052597318674785006906780678886361457494025928544316456224739704911031273927454368131842826519836914109567732406769553751367810650827931396938844373419654821938321715732014931259356876190348581384304955780059818418741261187841108076474424390573628086176058840301938909900160640007917272435423393795740502170597493430452798506292716729551546811708761080328854932133839334984098775401547835405717822053469218775358243411263952713540787220539858573474633621120729882938047056095737614621265044100197025968367769356755664353530376229681761113156489277547462127404209567170050917803360930086435741682163894983491679531479135290941522231367372206516651456846891509012673613405509553187405743396974105044468811558931216353425497338615677562577232871486368226625680763593327870158483993176396716212721683449822430834783576293201125256072679273274758473603297488278453987343865690984245544508127309245023451257460861924503989738804012438537318608316236263691676749727801573009802450663121931094335705151272239096999742505507071624574591119019408416097277708659507739984062649750699706421493845362007665672774072523691773515423446520107655381403408245409176756536905628217371778349660232314074739690722241297669579094440601843414468996748637167743672971997385763634192663327382881468009810112488400929396199485997455357538275987802920046614294524835026425420591087721525795469812143953303335572588667749757788769219182697807682613867422106560824124255400326724558152052674440783444703654423296712291125300954559993334950175291610072902050306797944439194962836173801858531109222570122016246095148815990820530275941725296741400393788743631156134821720286998744093836139822697573575050586503723014958858945510918420795679120664291390638731948335179605533463100830423914239956720074975796674251158569555318101834860995056283114980152604594331453501046582681585090915375307292581601991479011255815987759576631794860153166705231946172406522202004610767751705624875405124299283298913609936918432769010111659456634097691159645833482752540739385584291116101402140299653970161990565841905028276079359512073708802837191573115091541725966432316176650764124703176427003624885194128401300233982808746880243643558313134210238123442514191052025072322896473315453885047014420639322401208399600306334947855802959964861319271678413106271385792053364949893149394693932757042024969734515849932711135304927799215912291604542241392982262227303003263295570681016208773977538705834468837082225394671688503536078816276455839465315831029785347391137963367736346610994728196918194989734652211232153551927371899134933137318753002486156095041306284293963832375349924157306652026996702812870141326694448764882356823542942145785343424986371609887111004910970236119325513142906357332011947294556909318710582341203202320319331847866704651278824338481369064251257965477323000007975904816081416429623974073609052097074887996591867626476252495863636336533850833757226727720000354622419668582169419205935183465965585462580253184160887876781882585326105755723348322259858395595210936521147150650777511554996862058505657173557274623479881311285622331697214536728618758099886951696310084858154827676337218338478062688644138130937307870278725996395505724422028359428014917918757558420196498275614207490656435469719458932317876983682669292588841773052837578940255755490744738094364900204154801669784902774722393618012162838882255676587192814546677072009444758484290760910988100595642868702294725422449310516172939946567938128065895708331535253310369272702874295934880039585796845734675436482933019590088932581137292346730180885151524746406912357060765481192208502041390202619735640566342658095893704133008957975458856947753390034871070326589414361944430909328394456078478797046035287813771153036606199414271661442265575574037156462982791101211161319532133328659897335975903913311691277402882847412926167755204363795564354819653318062471282806195086616460802204417212752234890841908124117325408559785350576468604875768427207979719701579623848334344943998053626862871168698515883791829198275304880782647806528075519750638054388884203843517176856062284413946648570283353486103786269607140029808632924519564088214752033270922985488134780536017724575381783883031706631751095425406988870004793355050975647198911437390841288587448942642705411747709597195932488058409198979949442983955990565402488433713428819636129695045198210589152828490853265437585484382283479680070827306999609416921603066971798575431565358034076369851501646938916710871402167166931121649366815180723012257811625058292818040644560814870392819125759590520572554729913510933144712998623052526646729974113278725005226804000591028606199718877632716672158859535704123177889826362706421909050092298583108232094367497233226840090851089054356395533105268130177997119908211090931851786053812279417025821619862993191008541341051030753315024460249128597763420629037007392076457244613388711930068034452658667252492007105360412222667557432942683406271371046319925835507727544058712863291058290629064438858957091812256778341095726500611336644712572559424339330729909904400036513122514913538179188113370909648384050142395569219630561269612706790012355758975394566749954223861714998818867094281160946588122598969579709152988105755207165287505189227492748530021659822136758079434491630573544151586350727446128534030399153080353299481546988177437506775154154343133523594093886461363973882863635883915400987553449002924305912303883463326709646380306411920208082164251842577485000100959548834472352065675847611261156577930808010473124099505239653017163303125059578986294414293454192468879697687257131008361747200868743365055056019284471251468219203142333822080500848318711733445379774758649106414114696203718383008438424601405592179144225708130603606185870596070994289894750926286193741378256143210322371308392574217556696606562511745721079564497874185682402369965860932606649499190326164621574740317038847315015855457026052374418734628999344079632453133938477278615088477972536441233090296283985874240680183146490280565037045518102585522225614515988516348068387616850338397736218597805011314568804876075411930174627323865200070909379539424083813920560634338747510745648101375008039051054907104793816103235267900959413473817142712776305580163002887287725252946217314324877737823204357825770579940925075645722575845265358981764322888347798198093469882381023615467174872174577284441531121715009546042489115596272592825244554616317429242755352025573987340529802115504698478240764381433076935825053133825415462887762154653237417314932694914860346955943929037489890158607946604129616881666206497745315931546182679783576395045604032287680487631910479716603269302272958849672225724663737448753466472552478718207614163093016054915446930732504942211585987375991444053973195192144739977738786617547848198539075719876281428900795734498870628329827591051389977972503007258786171660014977202315164670647217677115013719974860464802495325443102030173171135100647724139194090501118462499598416481050274522227082706951105048748320730242688043279455230296521549112983552001141847486489643379333929877608686610551781613224161054108455952144826358904050259573200431042571023799972212835309472529444147848232151169293931494801901350326007123430053931530503024751630622275874409439633367943956707252106358286875945827029045784981419049579011245339433086718733787807319889427549564472850199649415418350757622872506537893792168425053733443242344060011180744525397095639736284526610126150595214267983927435773798008328991340386790914327369489505938427538050234688760991103359058016551468858229929840544681862690446518206505774596018269530160568856103335315110514647361401064821706376131603485986429715376898984541056028295040202724183875282624536684591219342721998463094331290218942721418252203180890545356857618820360175248132977482276728288238006473456095203152308021018609126468485134568844260934814070905004622013922257338488121496071669347288008892479535346239558519958146905037490035140897063232589432614237595903943427070335221327864019341406395221190399086086615684787864881480959385576536489333171058722896524982213006071652734544572738476719612893154039199631062130752466801479457392232069946926481970287527776258334319474363414520152388625407842859401686955692616704666099582029804538751165246458410209761097084698452732603439025560094045712683180621926421513000047773252599683433679281439140995189385199419355316928026129558344694527056237741332092857639540981810821767395164141501406965170177566189161446570066367875312056154098726845117461678962975027472779082500118193758987794337448946456320230112453385310444605306411606594652543568524792942740473001572214823088076447155309748745044011041162647607651546090499765386189759070808187236528867591544916688699351567295806527534109984049816170942476709758249358522456320528645508846106211317967540199836961839099311666714016000222936091707152309968091961120638708440054325362729979979843927660419709976202171566018895683725117918827321997719271321644700778357249453049110027295593155145644166746359685093260192768026309043345624012158318510790685039883934124720477837332463644038222951154556989043216213321103712678104256731648178711220155530108597782406903114651116936086159976159529968421617116304952343446123449614719328560281898172958491826352933347309557561629581851627094853325607754469727076210040365098010929070728619414231371835056617076830132943921016910099467033428457407350421507020177199422420339467627964385945678560798161522263299230341943060170107900997859398517696531316563289362992318461712258569905510902720537413545781878628700717605702673601549558358577127894478350200613543855911398986511064991548729561690292110190847320083553079352947726771850652185481677167711778456696820018274715758422798513458044908403577810626384718841991132013190251568069442348298258989915883144136762874276913084506916774511032965267557905734095188937224174297926543479413013356373520952400213949456677470190246927595231193723402944797503628432408905872652734554545896147582706760753424732668810200092394868533161456538238672050047955469140445111849786252370842889711092130804885383565593967049993769855238633682303411957628724181175310916112808012244018836833505292920410270012070899286545327965383818568971171319500422431249850697323432236227633894677162939864954319051272892994054644032245761223824961471915019775842503777707288935441337820876802729384681244388439863981487914797451778486528453330833762665642433498928855980213006807395588534282014472829593729578617470303203830473679524669306809790593161408034331955072190272759999599937506128396059507109226757550191590692912489618631926253465346034283240463428381811849995445758777974279298387006072571267527434065622014233570306186744914986615987286198680398057393933172772951612737220420256300353351789575895703156453189544719188405617335544040392988190985292690896201449975860688710618265178901989761144993065635154294186976013524589394053334617954338717846573546412883016609940841922459474310459414915674795027185862874209635906090360358840059801141963024578602229162043718304367049840192587613148041657387610421399820908604296062893929449559382252056738968988958435693762956040279841541227249187332453245403068253639513429967015067605750369270102857673868253974156326604545236603609489132616162455742381880245060866173459961412654910547007354492962004401721146261872990429937065112272895090246849442893920443816699019888836105695557380378736741307010959441990859362069758682119721579369603155482536824282526206349390667986540016034181630620097486028098340679525399467296704606970093507660687486057339891433915342613891957423419243042028879183875888876378264866996002745828616320450307636426630219986472116329424364066709015577968057800615893173608417722465269092645249162701826917468104069881292247717603429936979576968622949529086870300251505096919283965913916624568537533039993048523129256276106304220560736800378147021750072893707860349622874631315535279957148092587101874290665076030627696355998955832025792064312095510870315743758741617668944544749583397323878058610524063139741947540821494998699292573487393112318968684205602232064158375593659236141143119214009206092584655683188782797530525568781813327958536523386149939959413832310353371816322790929171178909500020443446258253486910677656034639367789115235804665035462575151589548759636475521198515738462656569012843303024408846126004964135115717072610613998950481843251188726884379486177434702298718423526578706290551614064786252505685874960135505737287046363135828856585089539030718666267642415842307055367514184323108760443802056915631035875330589046491334628448635808578532855638291635404100558113090724419515718694013793728120831902835375254315554239258610905468768187349705628925075474192588215673847410471137348855460553027015864021662481058263188559177665780924359132723905721364539099460059586412552677088817754916872560249792961355496272626906896671338448249216785023891024719400915964632338713803012486210265314215714688072110813726188598326532980550682645640742993882416476609602338851974459282196645060233193125242739838639403881996720643771559580297639176119824672653922944944178906891237325596746335310025908595891939257792425435279246622144603231684499723968904177170543507330687303889227781782580898986101102630544686138634290863765358501965166081734883115575387069971234377630335130007905023154505211880656033605157831992006560051714512211277819684766623890066526021726554857206924286646047667591462780010268636071508951631700860907515375824143825475961967967082718599987779506091266887515101954331304746813918251969436571366788768166563334335122742971496623704462123844203965644545465443488444207140542628720378235293981483451288061813992517043732801267537277043601577527707157828258366782613172883898090966712040542086783003777722862226675120393136192348187311573047289688325244416819113372053324128698909160936503606548046210424871458860646947861205921276571757621957448443325037672931924600117238125844664171779545714450978565843176072121198828597152572325163494842204650757855453483563111401984037883517554760792165580801028195650126993452278777650724868821536079396699602723661193083964079261624179494136611584722765196798353485759461192262945230314104002392567462309116866314932664367670375954790131796926306812199683630592402465502330699010269732830478402916221805023266721631714353781829996172974736884295459685437202435784960993266546737650354895893739299174154511687253766941673745251227053124101268632568469591512774481165868325702147138314615897823551601880230112816250290610492198849418200649307347178840690195479958423072039401881616145070520323338597170508730435984362920468587261903878737490016078593595870316354183168294205733002917848088021399553498390663977526733520698824872938599543912625838287181340289452585939089689559920097188311600361558041229507173542839675950328160105838583336642997260477795224456709477979714576024912893003170514882569596344120955328323337352454326161692177227550113272356314077184300180531423275470274292775129171828604908607334663316682481768815563675072778191124811934337224125673451277673665590792617086340823209357268958137345996872320435173532540632592769370958891621473876652704789068569650396224913371912265071239775195320853717635767457764480540894191807790971587050816045766817165921747570394244768712486938522864619837336972456397289299023769802096150570504508894049465859019470997809589484093656612468471118528437880760900220328536401582827311528858637727378841700867273594430341961445714251454126170386051689232176392779566535434028635086028585424396939285230297358265068095637443271449169480046025838628761047168733648221512146835803843408944934920511705425752606639314295733017319838664118902150745646624996524869951901069756805690342929534135234516480049598739493802744904798442903447697509082930008841807342373203820614875028344592218141745659732401136490311026543936251185007337341999362648326802611590673538841418596869120768127122459335550163356800288686293495304961019882691621409852697253905205466598731420870643466914492922148280169770828523820241395035194177332795903728437578073781600398527600537992679201947082661366206332867212643901339384585917120555362231341732950301769046177126639458189909278670156571270227949368086396329704215816847809128036272804680077654602322200092689256724888687421972324117883840603467275230195070457411164130915955406120676992137937992381054097599756144208417369027881741219914200383992467600188938321111744292437277054720562680414899845565009828839298730059866554401686689810816062141000364687926333795163163696140121715060379100208964405094858418903872122116451097058429558986424840554380040296672449417777762346517556947453917152331014737311927372950647057434855521972301559328690046382209992290674242607878012284358508502255024555456764246196124732195743437468461441987268250557194294139162091878226097673414195376529822014464121135350279643449730158538614951839479862058599886861884438263902508559913335915244414708631245129353970389405985486148273934650863006213843448799445316958564455034547325278931310081519879739120908839976211925028239460774968663461884256090617545999969007721578226624767936625979368581604106080660516067760464848433931464177052681983805094054419179268757503713402611396458003990138766485227395463375193188860758416040488202265525599117323671014726664236455291133276379798221794556595153850208732015050261426044996326386245066323274327342847645914307948803178996958123272280751564734570722819438797063385968754725936099617574709183165674911979616991463558039168613206920240878006332737837883513252871144981611392870994472670201182090194554670380949748031937405283205775476910348934141120378434286248579130901080278318894412352707353548944798856358707973752828215534226782267879475444099476637843548371979150175733725376808156021906509960482522276301004834267224931780649724793963417167090507978185080750393682527343678630767735296321928142187031071274892324586894974316517655517365255180652538682293256877192589113032508604759811323243733040503735816475785453325051481480196159709642939316006737584873902306355087230769996510386030494155534126043482506901430847070902285007693203199714863621098750878800066746406421446364733109689031431001289594126841755056305199152476833366971696508307738558585285213054411213250700386422438408298637268923811554829124146695514437580464257082937387343349077895133899611025971460742637574200330353593326510948480145521476930578345038975826925368466550441480107890024084584371487935771766625362959438319723768488051552030243949350360547070627221684254019227280230894841341603320811467552181141313567175115328318465818805513247349704843437624117201138918985484624572463486776496568240554072881686695184409277868233740428229715914423599629079602697479539180450279930097941259814446270125064951293670112898304607331257283944355067106386265213255501452630770367921150244472850473757294947989437591004937442981308584553040083698655284319572908423290047630240043310652712554793845062867691656685922389898701263060205106259941387237270097439314338604883279402850785349948049734945952217032005673273883624895080684281578537283721960093629917786191961891435148016798356511871829093852848988724121070356832170353504778766829944942629357668711651575728809207572485385300115765198188739414753290090429171104667482401584244322877213238719843051872475200125730553542926233904648901411123052968021308449686032089400456768132296441025362378107391303896459996408654791716005023525975936135552378708375899742471273315837218152144517434039733506404989505870035923500185702624717273539453486498104857642297991255857759097040805132351297215084775217289838852569142043490745632069663379268095803358581487671657728942231912374501670395345370178834941226032600677941842361254660314673258398220010407321317686853320119815299903037759444656773393275798208484750419105300862770716501293114552425717102096617006071504332515374594821309424767660822863059881990794879042533297197628176153861850552916022504289366740364476009855370328320378599747338534578777819438259864428453705101132004899893333112570672115074166018518204051251187297297513384165787743040810424488845607745324199392091867842328344547476110760971428605535214324279379287606418709328539197857585610157282149877339003581552999764854418051536696370930060482471718000370459163794021983682417817326737538422482230939791408104098482017499278941345446062322307504160997872259892386144098284433877347675104390318912928144743395617067783520837518106927748681613834963580801942641319933177828195964997629448031993107061271050344676935937535689114618354743712876297989968312723450490568746200247415211230302545383853182055547428512673893477873587656680567568934049634286147350654504715487731907814811005834784323311401941162667043579726181666942059802496235181710094692912957759302360580981681895377052704004260372035886853239635523989081645224112174709612753981857001214491803780071267868452035864559408259720709909529983939118477935844054364994777330004011628383431370730623371946119774939525690875828355648151211900391083561911237819936266733754886301398799988976694178187018746835700812049375456319810706155846363095747435535033569803553235147712348361658827298163280781663866805895040925702183351700409037268275758053260659457853701143652993405976738142706818222216898792424539040284935834716035288772943467300952892051210311861543656221329527475825001994153729303720221930990215944302498829401565526136907596106910704025279004497220928614413169919425614259017524025170378226459227437494865406515463271792892754940085330861355775510566584523110773531890388872065613927320388887830500312096536955013929374540939877971155157460501467847759254312695916346897732042832109530053284403026542527269474807526535113352549308070797859210345116534537834912778185042183963174243597343742184267747120464840510709593163971218819223525703400414839770047046067674712450082179624241473985817605115360675775115748828465887871725807958931574470206742344253058612820010260566740956861577778222718002547814199480163392449135018654239387166224576234029535384593820886072187339587199028760514629400714297721391335720713908353040268454332295650306973617698318296853851801203957975433695141784834686752415189423462337403425045632292219060174511151077257656517795214756944091537776578136493988919227886917764713757642359098001447198651666569035768888456733143070029816914761537805138224692780587162129853016211303472373319278231636544985374505704312573430526260505202423162330115832017923895402282110216250187467839609090783839970506129634247149409872660489882007215788242633426526757472960097792501074750549466159235786413350078329273473846275394128174096966859332397560538178558442359069628627414759839316691426961458155407603618646609665010640361226333237575867937129387745223994042334933538968163655819595085751627275071623689488692516977962325331316882756507666063307204185952868729510981501169731686416714160401158044417107669918920590121909239615372625750139503384041157140562881449453074897868124450698516478402683884634244622954413768937936697423789560667444850162256016394754610538651516440955936415282667938630142384054377414889661921321992701046370268424927598922182070853066974745901107836743109273055678402796421625265314605609089283915813368137512302621432845540514610805750321837262831251667751036849710265862711974119957857746158087963391212682988622431180206201875809247674346367365237346800478465246828421134967741341436464921512787876672815263078699456922823843422261924055131888271167044437262284049237967124284807319581213817785106899051245187775718718925545885667243911462275943112252634385790345602471579766314940725117835696328436523399641564083306568061789186261098658435128362426247388499377263787546000641014315548399383265306811377366088680263636686151351746280265162315296342697308731437237099522466002233528169195382777096322049411097061012998179879848929447015218581270055324497209934516939001100472087774985353427736506390886159675405213311426416617530791057316430452234085007603737151322125379927189052122117022169564377029741775534752604795184173042743655535883395467675677248949302986185820564072840341269435600110575575937418862226105785354552158142759588486499308552753475318817502381804494650093395438893087294417782255361551340170315247262480859938222679867387819652255900157652770726623860151052963827514080159121451237451720849826569747895570080181861525319327725845700774555841142696832575296262713098503911612576241222093072646008476538534309525659772704505732243905601289333718425726106939304872173652040224968085902248646187734255478291071560562816031149868189129101876715375404685091063413519680722790504400877148974552902858091092303958160474103202014785828152219092565891241757436270858310847068178997059696485421038657660601529990371123826641373486284660304769936624761368049970684289012588597896535300421565447565499262458302288565664843231715929397781234160983479226185104778952815996086165420156464454320985340305147800918434252706182395521000505822522952150822893219949586031036537964323856238612067720251946020692999901510645530910139693983390432338389180397651933354201117596642979250809128459992521855257819448817740872932880553126238948293141859411401593527446037198168602753822439463554642879650379478042794679509772263201379148453088819682880216678980089035253253196101213090832789907104273638184285530305399132943298637305247898507646674890279802519783774701301495227522978805696703476748393798177518554998334773076012474443829299334236736153019527094995899690346877908806650582656078968649810687194006563546554938148752782793682106324451676247176341368109180401411839181559168657412142660545109301891903641156850413734762694659013662387798577215224928231181039495161626596928032715078494151934282966789334754763398539914615320716322401331676480747841588779711484981044923120885232871460248246355442421194144781209277285442566977759366630293180756789917905226852440096327248958212695131977118108823291014711178131343404603862787056969061112126537362100450701446836507295442607738950745693098860478882763215269432394515678616549246376741643022126896183136317508109235079943214556919637417591454862809532739847354718948207192031852138174973888174968177328801502308375214868205748945018780396876994652303250271201233491754164707136690855555430659555786628123261531609824536966535203864812370157160905892715556065550798137384782716766953528501051398218045137397191466904553031146512695811601782797612469315207543940428931954193205173596060136082857261130106824407735111989299471667117364804263576844815911838120884931974732147581318004040661876667554684627687158042127200515854494300758963686510370505844426631384193288914848075004540588103873352905556023788033809268705969631893159726878888003461910964677390589832409964252613415215089164667133999231473429915216264746726457229903717951935487812765360641893140091049889470846737920475453129474609974232804579128716391721917043967891819383353422397047168276780918355008645711228126931405037295052279984662066882415965140470979899417719556450974939466688197857820965939650222248439888127113273224739408533951575762462402885179646629933665354881567301609480412096853821396404233864931352948937829826803371090741033235567550854372247334332165563796056219981400493424326392256086376166226230608965915426167205149663352233333495011528311442903068673844973897503249411609898464412404215003011559559462026556042904196963918007712663401908163634044453418113939628515448290630385108536647964808656375421347502238731031804071875714894153133479476659641579275333012647145882851172132041804520022323997079333337258945555287421413038398231438289765480690607979922063026184090964237788903428012050571980907025609427843482294949749787967699342118457663984293600423284325254500921447007476954778203577554510121294169096975891765647315729967873005158910631907642254188658804637964354515448903156923171316012436440832919282233259032918383981853159601555454094957418121294875446166030553152320910627326355180502798498379295114979002153118667024011074217949426621894324587956670226182933488831227462573830461466619970997922436531641203240387915130945589460012095063699410377060457456119283754352535977060283931582045200790952808149530190258912107871520870653785507454724170594074056734664827036930290140191247931192694218666199809190492280397321432906526223658157750654517388046477918952165552662758223575599225717357031979776259525765725387167010806947979357712699476565198081728106222905498795248963521965346918428069567799280694956855800266634777926009922863770782140222911803987560534533703406089088648366535569214744469419141157047715783168036068515643215594367594362027588383130049909441563266306040298686794649292690412197017565512220497272516352455675805067235619736755696969845390385456864909076706614699646387257124016350340148800509092910003943526996072281154977366312446492010393351697728373647417623743734081000047448650729293796168681757142407538984784718955511078979909244334481722742444037178124640902593313299860751201396837697253684627924950473097598220522278886639180080300287013382808041379142303276222470873949460916744921717788073822897534026588406857984003947466831978352011259511020433318202554476832493585510451981277483349203744422928759459585280779500615244781301168499658160366384611882813310312265806178517868006329624120538042030123847044385718283983859351221967178782650417687456808785604282019125199891754181584604539092446984455790366737759111220069082764529673576446145935487552532925495544700482727938003116338787265269954345852920861686680319264159116131415921732391189834846435332256614916805966384909553974026955097207164911039569660403119430685869690366745280897991561744408711678829817447322949216880801829602139969561165222255728916361513950158702397047376837390261727048161299581489443765550780303741020788295787130793509776334235019331083048793397605460915606242139208444742029008568590521780478875434692879126083055290992516228942721890878781546439355100669611863030613710768721510879989672278502033862511904245021117497764519576417940672351212415763231696798423199878589970146655856889177345928726056998153735498101134294701395244990675365681603393669076278061662055602047356434611330954435464649344375651599541374920377974884039306585961536838055031623803336355506340699146652851848676717669838579994651571328333849662919801169353425263610008280631276369642157412782246560424473334317248699509298879115957569283970240926111808197105822686506845446629733718236751843951289930277371076560067319062906496912233676569514314441030148496254676486001844923679844231610476832283428375562154045748262560415217927567020496989712068872995865432941404714554142442682439781213678340645813795135842799519276756348295949632210818044277039867481760481942448163787135511880554936552678124487553953733694765706561974056596413468593663861255887709142057462466642079981127319278504301959277666325988399555423147762958628443764968587561211077719708717391577164789246545105526323665063728106643513363959385300205376459556803736466634800872995057491653353079693408629455109364544027323335951958741366931599671434767763323994130327421922980778974825357716054335636134714697272781476593021822382639784169723506541898426465667980780664126716983756794288740286713562762543877574855011073993834820717762789892190053110008636796280472829826804361472694854290212246539885048633584760350938148971662923161812307700584309388251117583262944097740383503248720278824780842362702823138909163729239843977678574786062376885755664644365761228155598265341520169339808976070727533678641995670654202738062015458118778307255433372133408728571422294243533906803791690122336158368228787364993124179734749958061881373288222054503313249574047652877268729871375971557210488633706058734835313836740501431470644960692650829295560038397458916665657583389467982140848057217397211566941893677942039500091721230555155298267103323885335758914916391864970759385345097010374423289760054974799259960299254365713332823773228938450709765674951473625199937787049363486106496621127662594465340925662470735788021132926692392864151047619510191592697403231180281857223543234963324158213148662829353954102568522182397458853366599435234604343000203453050795574472544657248571523275760591968851014721931648792640132320098251937343029361280474253505392747941301857004292507007032488095847862697281824681269288262486498283740589283407201712112762653495854149049497624291297830938857546434929989414698278540954199477527037926950034667749376340319605313638264595762697544481099389133017865440621952973899741492123293857991125160561131654799491642749744170829186038582062870869060524473662409050508869783841308998886639774276968017739601990137790343360377003843119956827504795303767937625742991783745606767713726453327678144266298658597752415757014959319622735216869462820392007330395164447602966051212105708913780783193336290354796320716758824065314286568936330501599653421104407694291455903604471446465906147172833300736163582148138081419726176389800073751785925954953165830320254169685843671064140010900230145893493220017363061373318581336798532839894321193790075450395040454567593997259639794330546627677302707694752153116323625009882325822409693363985288640562110847264784079105354164505874851101243074204261345189056354759053254738761567600550366397617530643678422974272320338656053188223812671854460423452237107111667800626185022451443694285494730601117394762467415886863254040715772934126657217518673064687321523407421355690404091465523930631484118061287723252284125143299989052884067602796999979833260156069736155763648714979102170784001073596318909186891238929922932280492974950354678797446352297937368191160330467512857044301514485221379263050296037637963841820368159614882228427028860628676592444713710962715660226831099800751637509565992929101139498542886587754041768146218940968809049566644998420943295434131448727288628074345267495406173689757088515030276444171229698855320027872742665272932879771699458936681782194655142509687884616919752983064804457194617982561583698192045506320276862156136343122926236084415176808574488909731969260543445535150504041596759565950639074610263043506278631877758498235690869380711641218809201967240378337524407424406381309006993815543066985864857666169001300043393233509554410379827027904227388821578115034153530193157037178424097084221516967330306139978766184436908458310800097212485873180032025068891823212744270748247403311634427532959132292505496589667041701441076813627197600894391675828029909020787784200268021221769909500522113860092601249090820354490008770378489609715562342371289124513784431253424710045376140205560824953071731836348222839124919160185499686583379486765919768063381452714102219551896523982553863489717900189020490540905458890354625437338828232914721218236143045083831982877386213302048727955916434844971295858203507078004179570999083938497058400902493626346071439151642942683354971323024153712472209554361359975728779696192878674051921861527169181477142816924442977117869019765165956687588694210948437918944308019959707434959592076116047229922356731328193193167310057265837669444658607559330727185362425113117906668696606403268147198331677017487028094811507482546330206873324554685684619333650780913029043695892247897319650976383116228804515747049243932551818895024214156252836554230003191917761430537149209769483245680874640415202155766078175759280189395644294249537355755499173113654030742533691484586426595926476108975204700774918239770195651842050424667487767717140353284663051750023440050601303150189272139077802290205813274513797341839699942024526262450204057029128786262524819258006771461380384588214428535154710541913108060227554477286714823667026288183274623418750456295382945053955017002031760674985760872711104206353724822250655365296675295741550988680091899021316362255995191049682307663900783611787726006966180827076720273337415852560695310068704199127841305845429040666094477058663076180473072603788816387068271470683082204116361342905290206486545676141390621136838853667850959590154952730430367857690993970699330945283239126198323366651313936387388164743241829246268583362540529863148599149542353957367268346916247376326826539762660208520722289774005759383774925815892962612605789832645434595684886128326938836013000439733035332038199276882334886015531532697483656827418526159146766126564313421200803106972252745687094190532532270276645943634588987865665443680609478695942309067331327979311039379697767439371069389330125359027366939315850701036306599838200442276595991120565184447652716077901663869498508657403830685223093376899737095690656972167524974449716751572581958603878957664245967693300042752928023852311448211247086214893725191739109426410863548525547802172550834012949578047925760803545516371985683224910337897911155882199841576502681988437916280314417229025717864670293319964867293924302288829999733450993871264305864033191892324605287576233635146994396695791263185472952093949495900243262340473497803574029224637226378239882101226487972355249630254892591389949530739210546243887815373784217529144642497978134470443036711686529094025399066184428370228317632380535066575249030527275331459575356668739270616845791498043862775007492482141110450999927682671256932644592796076992421121078881028243660435776083844734252547481722462185355192323853684278107881678392471970532908347674708215925276761122353035269070766615289417968158088583473317415135029511323008055869431895363737739540381158626085926244754706715513567228503510688009375238307723985459784378728692817787911246406669213879222391939745930517327107274330932399576811958971784150358834847831381549646153316610488844111049147614725138611779608494619265157245545151001843368440995505226429103161878515190486646913001238863622017980397478286147275478166495603293990976224253426433569498919165943240943599482029219256954629081836831149701601249963501403480193664157623799182803964633881632804076485252684725916553256945728679573206031826518220668676897347957599976541653748262184344045263001002914738743036301519947685321283336242898399407164815260268518087734401222071385480598284765736940517675976728511729594165328331138680440828604797971708863648839212016770756035348865748211830920347496324799264263521779290004052812708659199360989145276580403751305686174639236095589960384895553181171740149707735869796291960375639187570866197827929409235689852084742186407414644844043882064664552596347052519195664170306134437502869223813309740570999293745732900825999835390948089903732707208803542892431679817370594357662052520874573490413164266681332218714528454709473961239459898209684333492150060847441018473954676969160272315680047183028188912681659854147245325920689406276063260469991037974288254597537803631886993182950690313516245072537041486123924753108770204879479345571703755891454098493082751622370743023325978106775658869901287223507365579640443208915310362809130404061787822414836743431489266819091358474164509217353266886887646835446765554544398538809938372026396274075627791908665647778873949124958168340016472587584143369227875988911384237617237885235426736564983415081699371644302699482057588048277518943972273858196092732231330434876395380370276036794086764801229777722714296361207178294329374850308373871923855775773439122905970987391441426761576774030705147952022561684525002212448974197441714203953300078880802042915480278034652446709482779000818701940312394303282477800864550784942225222024536601015074570299484744841917981177458146921350697663152598765204654630890196116420921306901537781325561127942066673207758058009580707219903190404377389242442085189739740087867556011034166370852012192157371874030376830786149571859759286329490976539404325739157265846797932828223769762614902115760599655516889323609333104489626956432301043351498032519137142979853260695028843299726577280951367665225713112475881396960911085719065787993289391229390865547026651434900526474937249265038889958063909008606847718400116490159245120602133808579136010671962883855247659471167019506255982143348982527008259579239387603288687786995911397389183574279985278880152359989751795534532280981734147459015186586450800355746508141681413895864450792626193384357262757191456779530095028935834540539220325750009119230502846235310129817242391741335413519905019875066890727506315619268969801436038299002228005244112005495776723673836219981649915797743430370333708370857470381216770944546771364535986281712536545919891451468425916628044838750933918089433442190191516395748280847345648956890507019209408606594213134180352232533967048353609933933380448223085354864543777815382563300880785055847487793296325266341523920333129451421697820826789694827007683341409623736965296790617405297129800042306141023052727467856157144201106920497839533770594368990252233931454013514663870599157400932437201350142386995893737014509521358782136880898275828781645924021953933386405649257440540225648277101611677976396200523552036779722601171709949793687779060307435316052922827515281701207483104830368487518955639745651986153601871002932705279517892811582892140659470014409469413663621387293892321511022180131592642794107854515357298513490478826048952232974641238870755611027378431173251190997725686139134680419608573936039183431928193966053357405607349566897505532576391566864272577090583960081598731174977161345273202936621992511842174444088526109781355037715426148861686203318599378301548754390096265168839454587140861068753737854038459491869303305716786056518015902728989943936815215100154575848064828156603533332651007603180861447336406322289329976065651183921408482417434301868497437251755990554664442511410257398524606506924307210455046234342629177583505451447196624141345105389841667422604197963034223216228076620042634317673987768713451368216884480951267657079879025658754375554366380766749151907272511068829785522881754580466041463295399532878128056230971475408876704308992095099326413023978983265055004781302300763265810053838618481738315432913735313681175551522491409343151956472718019074486050406586002957359900221047106623521276682674963687402758727567356975380294675963336375878272024602070832395700224130497360104343198436121599564941108343917842851726385425881452859913264690166373181558852454463361866785588919459500480106275128353687734820235122534446897909934205302774240684705944835278732397315487304825753149206605112414978866974008025458373681752586932633168197177105827823122341529338850637563443639522162768034511826631216455162201200759905149997203487466429929363494328627950390473147092076892040639599414768371278798752657194095189063199149362906371191964810299636358604396590365067702137181289731506662966372676150422314670470306392412200969525348514937680132009667403052390259200023186550702182599297270098441763802545224085824006844795369520898043302057467087375998081374885808869805846374867374759517544785035979280474780386944061645849316262289031600520917771717909485886861373198249632586186958231328748011039810889403845248803400886639351028052305828756926616697091909451870676504078547954363287389608712383088850580441073044633865101824745140402439177458051759653354067865237453165260150754957903508325806499884107740713275175408175291709818246492915781080207455145774077863606113146700638995687635219262137022308396705435107096728475888003298767305976945034387782538590540514763273520689829733300896109257233108179445282632899862752722126889465318304679833559173305510835776348544475991414527292372354250989806900994052799440658931851994607530972469237049690852394009677383722973538002719963825277670315375499458902198678145810401483366574430119419124611903692844132053992948622930169877880274306562304751303357114004013487049957498130743795028816151102411456194731644129502753944279443317384392498015252685358537707758762914106301476167014076773332562165274625522938067371040720913840595691182956822765284785841556730761688642865160531396939547279840109200896639025248985616647733787851816212617839248047930502564935536380619907829298640365527593748047105791421590892967769762063561179533405832079988163783115378861769539389822574039882762860285090799105219148158577778623139071109984946916569689920975041209887684796426424818372316968300442303884130154876394880329606971973150105341991161925541913601009315422985591838162202156144828338223348725866168411047018177227400651588788715477978841897974698105653009026542064913671917225789807141758958234321371914119179648210125893709570467328510929103308490086007439908841661800582801025570811387637108276050033962784177301642670488311676688404417288511475547594140956314745564012854610715697071982805363134119671464346479575319605696862972535920867432723167595669439146944335229710947815143748171774913946350372319312168353163891199548491502115176516772656238282378067913369209575656375679148651382366162042263279884597415397915935152176110561688124289835898844553210566279084332306246308296303886281963922088797564910924578405763270197941468607522643602303328389091225481178929570732685349607285249649540935345267178891309405370383493524860355419933166860707205161812153130496991436921011011047127175560323361183542589136113846265862862177955835105726714600081925318364878375446657129174972203883530556924546718593113088564239902289729314852782129053882042440333315279166266394915018490654630167696461106079770169074858113657807846129507979062170712726882986783901896537676261369534702249172689523783204597295054344474104935922336104217791575981865244194663312194364412569566748774293016124237321833489843530885925319623930571451293117681251368789758569348241000134303885154808056750093037578099642199609155164739030282136672999570605803418923527328425551138952587749727908169979454431923824961569784544542768314077880761022256575171403315014631097052661445911743133818978290577413048992533377525602945666403621468897180168851680594933082685939542764467416521103294989864779261647484414386128110485917748697006164870194119179077866754521869860761198456685977562296469488754199101753108235100774803459355294650045933869999754765181832420873104139970615787418031921988998701808203941373315926735918718516551785294834341088709895379116148328293921805754944489196556927532856814892243975261308708363788681372108064236758489264614626528297501238637482919214599788838310814662423007732397268298591487389246201215512202762110152356971849360238406895576090828485039134079645372538359383902542942310701786427229318325212653449954952987986073898854648395155581579396165608850656686875390021073034782785928344339147028842119480699193163147552053381405062033635660919620304294184673454933237251718521846436496736850148580825120097358402001709814870906784857489547940885756733273168220478172435268026958537857121290738067565263874387883302722255479291348152016456403052600820068488934266252819706097857647044779801299472683363895681015276374520985024591052456532917528946017551427411587342133243399156364398746982525804301526916503099006883221412269295355309810530729088810834679395204471046241551070456515445011539025534874104446582183421396171382615054235041513158038762644845084445916675210737557464683364160963996102002536224920235838607335434032986156173660254004850616532236472737205200778861456527901148787573937485118483224015607699059309371205566583186269444103901331207808342735701153068056278832380606819273449992675273087407140575649498272945825687664424616113858795418854558769414981447337225675206465416095031011818457372166672209987334553515611088854314188292999907788834641335995046865330778394690422615537805886777049467385324691623629773531190859604445099318051575892461568504231644873081472838128907298831576445368460782262529987933406190640126972126822594479109860081013822110310615464452485848855905662896600608316477097953926418810218014782191454716509913532641785735539778321468580608612553696746887206627153810378087010862207319084947386726298030439486665617138492533517917890061884628611383601715053444525826064540579667798151940098630994238081043806642491499149580606307224286663274562437633485696794560606740906670358208065997594732417655032648243519831332682164661507708725229907368612822187376049182538055780105625320870502146662202714375247490834494469139990835371034215748163562439286122431346054036054107619996396798676071194886780431850643923187556930543526378703422711268595686443876654330293205506626488885606779949285736080318031239005116473231873183684838836523266901636215132745192952512697519636521801066225388244208287139889518627197021568986619448398709902642263276918649045074681149820599027490896190371808621418750165954313926238102527284324099165720606413986290497726222862910747726834738173785667578915773363541557248671436771617765756550643710325584139548089525062724680525115929669370405125577443126948616573776007147321524726758562851368415806804158415358298188578299752743302228724527488915807072940450619754088897147849633721324742897357681857723057753760124872787246628117602254519150500745080565791074493841818411887986147496193935147355247140654886893439316774245476043650613256834771174877364651950846250104884375050766552812881948578401804742981766201051316751134713485645404008114269490127186038860856645590945441282962334349577077074702581524243378127112659753875568156100175124579290111155732565885279827432563669396487550370837577301490517416407981818304762914199986747627919710146441786366593145953418282196370382427194773819257747525727178016652720492751273402767270359803253298629688451235134114195981765801489141995916056465943759706502161093359038778606284820866753497528264948261304726082542145420926081191587359263299874555808913943608064931046762595180887088096166077112763561778119889455233740585818374332579635936026479839160968053064846346211205534480679048280539277119256248461556185790155980687464655476504014186836418349355057779564839989011891749150876883700575089428130410629536471013196392456495197243741926806379723607605531433494873233920161354421384561439771333051517289017176189644567731515950692562675806679555467245237733351757544266016265471087864038737460879559467690539807546740129574836539908112853439787704201790566987943902706341724709702176125560315749108285818991774546137442124732379830171849326780635125197805491780454459673982518964049912260661321871170037541826785426758722108385972890325967027943790767599351058554014238619268446982263991797585426815109962631364981631545256736338571278408603841656947512212213325036742768739202633369837773844393697787854791498045331361411643797397172914765371993238620931324532423274139742708432925823313453007603879830962515831074763204970518072274169552257812417170986457215295000751370547495861413531215759085771797943061185914444320708484695760021520332685182757608496272658502644151470421489872204736673406390935178246693449201642703994032489800933525441538839010935461327915751516562462468630320191028466377016128116157202414717833732972878579907919904275268193859131377574053200504397095956657461047644237788264840179754125849089094190620357490604837102727660878678672608731339348492788550317743248181846980215234917501929232188204571303729253159027491695710604976651973573261601023984667382272849347489320458553956378990022539568685423107183878877354210110104872441159379014148685204637049857664957990866232627184332975068930470348527479010322709988678818273273367957160036704430597864689140906781575443064512903515531622378754610193441380357117387610152113898652818856317336451564037034039874589647823271917404583926180469125726360957604701820219968224966501313947723113406495405437957365346653984729198987747409139069120134079183625357971210336772373960321603439513758438702743657754356569703048734676237088996352532892110837985280084427115324799498097266882983760064395042188860713571733876512558227597299640557606636497680430249517233009597173674695312180505854965782933963216028203787988252003311462047401483767666712529373560341665032951590959006641130795721585244510452626892019371327048076198343900461084923210152295427118623237153642327670547416802330115397000296213702728849714363946805644497882572203608753262859127862065638823244508266977291703129245967662571884483909146275762657536470738009235168172139907498087040537984273663263596894481278025998666418815239750199049562724417553698068170759193250117196254564235488418459367426153498208727427233780192879540710430917054250272933859722737486274298790188684110360150280271803375225821006264046022947529779202140536591994472241825226753600351207262934671109114250718146192019879752801317672702320402655837079610529482906369260426538783817927787167359584662601689512397806004733636912698920823946676602677835628611654576836861924113384300779532961272326113930105756868293930878169531142750310436259287463367735205676337105593494622460562875382415609349040470782182899853462658219401869451034167630111390849910481971605580705393803721397690062465196423649728979606445543741839334815342989816576398094769342368717885821495110837365310860465319146890665409186802475094966233981921089150055553339168107453473554122558176689554388687990294741108344730937625556122824669617607592586233575172288421807492825050472288103219867088509141274419769613625773281698993483020805015042294074939052904250885098700007839127119573131448553158345306346995838785334634653210198746879827089828600834715766102566174075836083925184285651329765277025133862064683467026707014659987577891829793353037407871925924610971251780276023423916300829571305032859957023605430713064941947829768050767349272719758941242636569955101724748160410718318764663493061629780795322673586653904734559623931296974132538970547043851831017740659578495133440003481158215758780126419887742659900836549878670209263764417078191649802733863245794019352821670832789660906092536894871442770661368208155911763882660300610621018356614593237652378715907832281637259672088293039506559717623662275875469759014478019180395657759954932646484141368281739187078394390500983615021113604035349256362202392487882341963593338168150445099635162273859715236202970328837765674896004961199677022005801205702225519249009646073683235197738238857386014203027894381663591547494207451925402983890971190189169908029369849924591706068790723578740881973119318665226638259705531572800821005632921238970189606289723221177460053324267134988692609082402894146191565032838824280129845828110959851405921354058225643945279550774635145623015583219780652865253150530582163205988962873892488471658071418092064508799140040810884754220569352737264209936126327775071962405759586102372248257861226874219576382081562326707003871484756854610033753315436052084219729753350144143181543840891246542969868762106881827683564807837073056848862180810664907480708191857258802391971813733757037441909453140800829779394419422460505618837051624560494515607303646806201572979172834939260139186251446323117895803571796651349629692011611204257894975867433024453809857576672322438615462947714416609412691535718553265579200538090566275912190706512522528386094647460679758158771528112695446714892396654229007688623441729078138611160699231133272180418463301438297283324422093673322373068017426303801902847988877339856932868705624032807268702576109035723178443171541095581654783071956061564585203407338300275743268932220903030623739700924155494358431451095354698311179333418455619834278086628320752960220560377115471929541220214760441845623186493000472962974176114808053263740953972135292637391341539163444146691800039422857456725815181455607950347935283471437869731989377474801378511960649392457039890074628783993456123636186943459415383922745069414945345319094119695001494709140400044034312753200855007833012311969535759865987871586190458743732701518939452981955461404167250727563978781675931964708843579225596107355833113888805790864578981186351021632941083953596349700144755652042002441989339449133306127698701517242871147622601198296462059462661239003710242532847100158909335069300444924759160566074938289557488837755279682457755338427851329032952352955627974205807570623440759081831608460212427899437613781982824795335709979915528076693099727548152712451512736592989874822808429552546187403091744031362460359080378886502158622303525467569332709232796914492842078624905171878001595365550515967353771421427711758834426344272572220329666835214131215380348121478695239057889820372976091399227055035336803082933122149465740491469372365259179348825222995411152081886408952522828711354466326074004895566192893704175272405140018094383339706187404784177974019194717561202523091827741020643891352040158697316865715339684499792580612190264842915583716723323022709145888975023268569515604488221314154659999734072616369191048565643538639064997744948552459473484063567469144713227285392418167283610143930094661363677725586423787148410839455945871745845311447974490056694909691577118318223104112685163655060526330434342758116059456150781357479406762639227589232253271454604139803356469476821259899757278203022394386811738955002170769286051790445494045818897064444209244341045187693000007147787955897748083269258202172243189347563264329665736985645220613842325765370235913687651056659635445010713877736714158410996946978625987211869368377556970395340983481584559371283469227331687105711732337663528865895964341460116809364340633318980083926785076482769487717866844398751943541941623118015454488597437142316725007580244417475059812095024802736196791721595705327955057958508210073598654088725467661171011946955122433545858981607078575142956443352010066989819741537173038819425340458414577867411896576673089229625787792474580932378439655612863015699892897044135900533133746312205037126740030860712521637137978655011582533627273697122086515378375786754531815222218950317385677094457173414504849486255061889176830964394244276515721740790388934222732211463908375530518671374418333721715395617329551705766087332834349099781554584746973351277834797152434515419001696413004119310221016935087415190268444197692467820222922645254592041433612873560412673812234084905931279918810743435238718464140072439953167439781975358248896930211202107946256212486977094622040413988886408281780437685702634069708140092784677723702897599179750077998313081501628387993442688700445446009507475740917207121889923827123839272519436048691689155419273043027969300739184805708191718498385142209170340781672218917531208401666080844768923820242723892658456238440683431813577517208880846856760088902668839543323332131437206263763726169207408221793499067014903458607739739737248413017525755183887844379529650707548951145556324180053283273500735508154726316683954200218492454137883563754085685009914023147023592522748676916889012656595016402146160687283577598922709723468972354268080263907853313150521839747150320440588790807179021667408713312385118073469998927450241466485450368098810089733789129428501106955899329146655177724070332652369823002796066218253482837997765312313248290691097289962127716807723195320981608088540769358510447640637041855031687541255088024290082205952259054369463791510859521965408477979543718746350224314115747095294189942469034918296037367312217458165332621840049644572444087992620381024726482949420221086043814727520253614997997965389225711009441759681430272402341259751335942902133775269902463338230475813284434203994482301735560675825192848917053217675865482547709850751454298298782946355474629632724108427559072488815528338244875438811156859032064454273853655191436342474552901168343182109994241447865538582521806284370071504929937307262940312548469733876256243528354724668511177977859441167490049311523265139760384338802917928357009009973809711713120727451914688477737770455131356499951607800414774795971801244325836104014881945800751140886048149468187471514680921231675917099948042303525565022584188616753244672346526480573894836121125692346532196793733820735372106987100345950084670078663290781848290059386873121424569305339883419465932369233549526009636151324913405032781639558691344388660269931944879413057385610452782638170198690821693298557533934816083311858211252512852489667955545082872026080063135096262060798118330181260779238730361837971077732869031820183523653536290083005456634296377829972394649020127850553862519600331925545331054086108436948432339068538599031725433208860116289783630653178844602333945766523060630266098523519778990912839635431518674677740675608001050514830387251163990219929184548287838483468696604555812141149172022138467351760103348776410386927763575950315537254467758274554294603374553329171993580302251629250106312409858952830210702750412785922752136992194543886049899393254931520943392239738821421558118568012087474892051485712510210343624503947179065862298859572297207653568863296464679498543773378150781599881738401610107467866561030499472483319933392803690001724192124956286097492380136037496376646903792406893119400212462924285260087211507585427127760602700398399531072022744101070546120081400512758090311290322615584822777357476879783968840260487680749178855644650997125015657433095777356626892749245395020475329329290988770884242241715672006536373708110666749759580441107094868179766392182942844612680733173498450609465091727848717421872486278382116403494914419046138796092217521552806992573898453268135776249400300470095587085897550252210260722548200996093350048229038988972869084350733626110731496852821842015010488580398386107864386469653583083253510732776934692261442682107816988642423371254803127728460907550178491547206307050753080413289942876992125416459870305726423432606537615175452149213687766648810184702296356997714119224038302874440184185843451984142618138310797431910084548200749551772212993669853408921937601081815289716473629726816028097539127548090707906907258815797993702286335783674031439963743933764754083895220841957226021070412872859156451024838200348442916035564033349215878272830225680687594071113330142086302721758183390653699068343854578941757241961955177232324438522130536512167637851357267803359947720208722928222852336839701545977105637907597975889506427068464794253980474442533849095003476851263098198802827281873677179154550939572881989439572431162681372336150902984120412739339679640702895973023612077146068368765140265258530575062086741650818640620655192546134142109633784920753022233452275520634520264101439087819906984278668560769072832464609943814430835674885475031206569988625633740335893511224415501746483782255772779667216708003473069888529524292941683445597707124345418950514132491259306378595044654856773798533788887981932217084216409963416047217422569540365096689525266534060020497489565642411949947699069012279560506907822388742331062977600367309337521366450585648046453660540266248109395830791318663920317942147428419063630721030804669133250655701979739126070587745272453550342562670432360819814785399375981741124348779720034210896250423411658105697875750129296115795763314938247296209582143044097751785734782763963390500219811339784707284654829712777719742952001960831224924615983674652225732931585482545888417359935251765283948752105180680584717981008463605592650872059991657600701159534070477041340646573418347558253054039614961216255213824713047649801363205213576656651242777378601580072784181217072830023904492764788227376789566766685857144387987658433493938818424007183377215248565268902836165872473953846174859594904620055155530596747156600114635020143026810802458408724580914212965326052378299937554352892403470747776959126482751907473936949144972673259262046893147098994910705535783405814208289667325079388458447304235266191737536162689251063244695618369909081175668350016026015345262242087538738457311073755299430710935621619637545341234772752858985442913096712034842921190424176619197785046606033209553470759438582756044106667630973437451298619193210085205608873518454431860773641615213281730007704885806562308428895004218008413972109397874259081256385984730085717916408292993992459705710585308797390779495145345778655426988795657306455902611744093071591013999509952526395921640750904765857042365616341663114474100274935993484934796367184385816606228569214959950460207245128759934151531403477284256127181450171580562682271547067879193136170035364316190262607739385853622401052791737849013195611566601286212752349669477321210256047538030544159885556785636204939651146101222948234335430131573040004671299570103508336049950327892365619745643701104478367036469384371172855937855620387800740339680075997472670118309445169450874550759573892199906301392155785122350220531604782791149299450879098358793692105523182381404546492921181103062425477078098236145308739652129526580242448226323993389253160648423547095401653280337877711285425273792113166033020475345870552132648392436021762011342559470112381825034644693810867064862021918999272466960756182732013757985937454413240954048955628888847571438591562257528301790306789843974437758432488406746912985915258063131930837072120371348623089575453605006362466209678837493029685270297645588634975830070639735670696828359468493314339134191348366189913891810450787385442902880170847345920049163209879073249227304072765147493677356336652594432311108918972721111925425131282859807061187864439154685274494982999402639417730756582089808215855668094622282140622679123401959696713837410414708999374342995630230817595297192816450078067513721143180841610425562209932783200801061250873122251899337881695634148227041818360310974272031578666661915201603189060240083216299910424669423209138987011808699218422966827396446468132304484993714212519325290394138541920018923720773805850011389070237421461466542687045822140718372126391848593970121547925590643260714767479265697927222122403413815621483116306303727403638623451647420491777019448311002003196100865565723368614594280843735882371382784347301469708669723358999963133516581653320617823197630041415980061068826478088888007107934569997726699671853747284341296796247184907174569105180412566268767372009144735697977110102113182631043211387547060393028209066198996965879482817864705340537681501221864275074073295041395661666729469380023921512610934842779611343412610936562272318402695593770444177481571551116263603058809776452913824594492295615732142110230963411800077778081544033967551887070542537048504867137063893379374383019414648332112363257468743364026445606337363529125743996002892812030645001361088777715530454709018188084950188939740212292175789416090447060673339705899706346904367361705257322353846567706014454836839467946318762773406515201745150434754766535853971546094934830570377743222215037793441173201521612545020633175777145405056528920203194092192528205227594853762106739557059546870565733970418200516498672927245248647804653612562264932931225715732392822853211998978359273502627619306551133196207295209520654474484826544561207993187570954938780811504750605776671780917359487266483410277256412644358566742642000463413488945586504612711135468340612787176619655456724261705194969240388287386620316490705855289956816427377759353355571579118248354081956402665128639423547603115334702970109668590366242140828869273763807186259085697931694232191192414063495992936640184828878002754717305344827661065156515344017700797271613416455142385492619860647431626487121927015839323665571978537991417390595014216623236599742745106356170662621857055172014092737266880424632873200590067242691972241619169133824065262980183613757709641976124740378188101877664338060230811042711201217008508042687366783546301587112958722009630437804159839736098481650581726305865600207687520173010026505656369976978511582873937077644280350288188039417813643053457047972283408434388484171420476216655457677257312639910526543937242820855113441431888057958187547290951396034530181049372595723806438907831205229118210253916845352542737942380276062589661227942327480909197526639783293536629962793966008404292190109209030409990433760953671235446001902962581602677982638414074541433366126801235224446021532066638983614864330163961181855232086408922659458275629216835658377981796895260140559723731107139926136882329276100928621154603092927857096481302775457991443559918102885312147090048162768279409834790861078789267858756516728273926199698147837422863802715839598707056454051934172859181529800018557003456550614363021377958963536802812317459784460050038560596008253505409889919522828662652581551270943985545300106292053843200718196914981052974244662362057282686726335601478062681810004015143221364418078398463859892082772130297329930403480824564978739633218642276390283764754653189061065634098799559232208897000142674497664069280513638527658463684647235683144223556784138252214487457518150043712082768196399070121756215873092388970762512881787527555784031284480572372577186173174209306413193582817476798665425926003205194204511395618187492786229003673255016576046433878872940920088684475837893148284452868145103418803462665020235912941346141187204847521950528860086990952670166566506842294148634544636520692941079557380087112964033189806713459469597807631455567551348775484987250374161073597472063477540105873302426688026953904981895011553686179253923420953448652187796891016039135411302287373525011100941213066333374986859646687341661051051243088181101356016139008996254990315546480333812780797157340389257824371683271516648118248521117934980626365127105068325696589737748894080645616140089291759793706393673681366205671172276529115168510144632726676134391450822798067044265256556867335218895138979374429007478985878763896046894739268747284978285092575388471695412978128586258659864747419118836762173888822434381306960789970482988991814656237065134268242040616336056600662586267788412001861123766337587989814870396641256463185039247088616653073453817973811215544821561803280623474178908601059943768444250567584621270239686844561065022847723670627380564418507746391365390602117846462749362629367311712242103883315371756127316585675072900047839835051236342652070553364806082617231161298958096182865337797639803401373044871606885931054128754624783319125935248236770335730296387842891995606252643371887705596312705567850480098877396156526688838808150612849183436794769519813890405569205958266754450156713838315060794657410334540076364730415147282350094413619104695026539559959515699228359694439113916121709552539049917633430464681598859920450425981903200743226618078627014979940257553786109229131506240422301616079806652956758554734061043823833014365290583937366533990080749817079146622714350122237414184069445418159458464247832691572876837310590419734292386288625776516072775096539196786129132561649488276511775611286894155336201156199994832152566340340588306337582667927228480281039947832388752364207816365700822121622867789178807312684932855251039406615869877425634701967965829347029958738367156046366072621586930174330711201950450342811694178640759281645100555979197182518817715222043721212589285064206100369759565367990172118737436124286099863579529039204835167811064794130249653239779233516858644818919152050296631902588340071407363704679434930946659842771226536498218444822254745196618789665136703528492242577981318325038079250434844014813866348065855845041194732856732065344300653773083620460600929263924727558478613419976645485625881448825035845312729095360635784735279159108044610129013783035220768187219717829599154454475006615799775846909958580470424871768278743944656229840214052397629731154682325881260204897219638800441522243475926084171762611161998018934616986619755572368096639500624516127904363382072937437850322403335580793863656183645757875916893699320175327929739145931930596129462097580763785415961265888000991642857648078213155207045019609618856870283036317877417472248457453892741788717473830931108193772250577377621534154775737712319022409938949834580627371338382556486009623205897253156799900893563404408195866484189625407627936655194439857577735402654550742813955158732461683417521772573328847171361392374720668406865893205326686660344082140243496325871009590798648355113572844894059112832878029685209711621342699678626100520922934837479584887626007135390142760823253693094257655637933216606291229239252487606443686289792423889809531570210405174119504515548692337514573444097726080047656353472266712474702547225951356628234103520893795358647649270648464820670949501588510539777990959404628953354086076331346411411104620258114880099140014675571239319348493394331604597231440199463026065718347931767227798018077661139067998260982646344999275378078112242484727918924083938123099249776128365624459786275660435910191979192710615758493374584386723155893582215686178619478021663708670512374042111966412902025647477015759649661605313906873108180939440804880291079957799063308940978025294852520976188515099358600094727990401731872617013440996187646818653364044194169484738778571260873530775301554607950973625466504450040885523317454509769140321872250307366727715382876606224860912791830901582046661069572001543653560761416583131991118741641064295473407241865486050107964056637426865767708567371207262555264642003947394403906383131568078352349846989066998322596077891946218402367624891133080913457071552658433622387094199822784794733156055223746563628386738487569943937671229764532588492235684489592550235326230372734141607605636509178806717584755369143357215613398109860955088170304383404552102052768584394376467591232562192647480760018289738464125365598292733835035033197183317572174093314527905076820088654202909091489806809352147416749969444787127861700224554019034225307851364138073049642075783443354100001632854511933331416765451893649337805460188881502735247102229795368270132254216751031534644946410274947974432354577170173595871214744408574113507674613163611679817276804178385596964837195484792364239163005491521405010357971524159454814338499721753347362586535306306742087284907591059340481605640406265987448380219347318939610503660129711290342893138055325219539077233490869884438530264501240410243629157837836523949906282037806146211492781254842019035296188830761726666092004618461799331810007513680422666896132423806485168872815977554982708154329271455640163669147361802002516870940014658793333982965867674955817630272855710911368155357242427885302257713301501274535108896268604410666345850001657754475266425486198674446527339312610180414060470180760105813627648932115709798442219435799526941532853919108399680227334552275041088289896196143109742482038219145337143209483553084122120683519383108691627948938297836457380266548920412516093735453014255287174616399905767072631788957295829171387549215826170268118383563762967348984731872713080064327070788868952817848805718792259741490436834642445114376833503952883169013153831618391939490000695188500480618978479182248530740973854083807111437661997433501466944386898420414707442897304669373783290268717163675662390157538689441165079259381341722599901121724284420980736883483487338996599969549720043467792960294589557940605951291823327431562391895954535413494974863782040262102796507886343788887491354378604671208715892903697756482495260700729027875236878947054180986273017062206968432661475811900973556679712130123537920484508578111908341894228556594077287517316776413582434473364443926572299891486310332115864861649820049663413166272102358717765574724550650896265933807761779592414610135080997992050586987941357976297320297236463128215062161361370823915596161177693262076706508998852308123953756881848229230900448221127124474458133929695789567243484881462272661462974957870862750522754908671879065687846985181969426098556971382364424696568075237927847585707848450667364856536181007317465322067678692763187507204077221713522335259723673310266053746867221759368474110390201944884219554640022898803942937607981165580822920427512603472057819626159435161181712190359917546395243659973244735903122668571288076877823371204091177570545729893120118693797233047680449523264823005230661436048710193897310166737494202989529359290126427065391840134809438252698737692920972272732626903079858309912883247570141677132670638789877439833827498376872023743753737447075562074318108198289142319100322945040214781892664009594335251249681676404997223922855575892379773801627380990345864021870695778624989242136472045989774147492892420522209047936807652601057202910450934603025979827342378203678139342528127971769298589606657761093072612622472322285607354996032841197346871750291604074268968224872074146100367878749566036950029003379290377800989990782585332088518717328104662071395371356158229580269848301760610950389865735959272397599607086531180268221133538506469966013832853873754662629823071346656249991127407065848004848589013661767651829794643257937400632104193051887720759356939973609817456650500973102412365049851845375723996014334135732187009778818425103247520269590732989025053878696845946701366781833867409931737661924402061407780009979522371527811785404079766772915486615617862283566798495969801509543589904490471347607168398426935582941418386334756933425943203901987525509046125713847560295973355886268506722416121258274785744881855802565415518272247199189962896356585921788049787070799376906866055033857005865808280790322437020099443602431964508455147930572021254744670945123816451685914930772441662812344130637148061717746592469880530072075600382120780193081652453064889804525520200391773791699670885325148925595061052833083502633381450007658992223331516607172412721024265680254196322698960337231166097367824736097658148234466152994739816321521642200586534421349507650403199814590393065776585694707840376763417456037821496162745629821862855170258216192572763273219499108129472899982143943322376384800981076636248441208310830851165518085531602327094097814234274868551265519829661318975351750071689110477505425401607412876182474728718547168939999504365076190828070818923751941997698010116066968690020692973617502769127428030286334186392469886639380289808669433466264691551785826747265875179832289983744213574672879598465505021155430331570839520667451300092781631846288990038996881905908922506296300964598640133967557240219043067268262304966637224946341812459439860143782707525516629204063495219927178446212639599349020902634738202660381612162994813050488995559227040748272330438416561313610542722344827892854197608013142088281140110449653189006248601942997755706240441803094473644310273612491285935180185812068303909515727255749567780097635691367444231540496455639165241867308875196594925444752817522329583199378911508733990135396554185026492661743067067768970474793874897714823174954203120503580232649287775272492423010886064957006060633888401045808149987001154656151171545424091478665481634274457050945122851109220519240485746873600917922136998579394133643661969481326150386451090184067817747115344532251100391600779843734823433802710216760444603796478347306524214029696991174485609205947674338095825041792197807661974349204812669963665021407024607402416361834167102805901147732901938160934119468760034952902250900010970431054321994384254411936748184254343988053233759535927134934167245396593403887295380174088001685843243523551120343964581541365083603111782482799122743837658067027746537985800027913311046185554696111499712434142415706523546255607262041139836031451638164766440456188776634031657937619888890502998240638353022590225246900744573093378680737633062523861036598138565880038365559432711031395656371086495605595848884702757079035791803969833820811783827555794284279970890333947640951675114202278127155733192002203813094748064357882291023523355095215390958723440269252625634816348109629515224189772389517432521037498092113614259110354320997772629825302929324608739529307630523794071484601790190305680578977363123671426142312512851919318092554196921539698586619618792815128363663828822242335593399184793408752589457536389997238669154983703823682626051302083733074504070134273975435586011198375435244104458276414418851745523491139236940439541215227198719824774984011387690450637380041693604720374601742152365928270082832643100119128560902927868959166794591353034058479697700959771686997474665505292487147136605667132840557947001550395901505678310200686325720718972061646951111333938435293948686818697828531623034114552761722845721498890322070589950300320938622382992112359023272916095627319320154347179391752493336664603659522580729907547685640849082696378105583502226610478095244242219863027273205659197267050347709742532068432056192896319246036650165341132314017628262630584462650772673357034805891775295662528480682927027437698661182212770574476904004397053660511080062597385909976340490420240127946452692262686850867224827836650164925715366348451371399601565938228748480450588886714654791208266139527586651435059037839582207710559126111892271696356087539234606990429990551269877233581753382141527129322674185289531291755020920587713427534095507847133963044669677668122392373125736253485300597472744356460813387387787779637470617744501745102410507083077657098045315215873210158626448414073749070962955351664488715529969060535356725184911648662225564859152292652983368193441892771312672776654382537044593418618859567705653098940412950334687371345431219082348073360152704425223466872858773832154551005259295160590913874222851455752438153037180719935250879403315325035409474726221527441839793288018329405583393106419928084495512926039015016638483365550285430947527173272914811809538378354919367017240776408815247792272531418497019916242364545144737037852082437219611268475795012750296074952376300932340845114004642111559278797583454218397060320735811788669188195687715975682394043836765789139383328111545960751716743838483016108024012854716920478910306669288093029841020164134926154116096049572497803406382692373919744174538923226342793706131452300863521306327467147391276430569149570995073845828126054213642426634402347954103398694459514451726562545174810278792837172869976625319953207107119280251265392396384965880591302078610787982508215130955016996361202206947192090596456184649237825647803629160462452707520367606007604460017154901748731736022152310366146481864318777234434904737954165046202528235725657316680511596924473838006388993413151235986122048438304365049790187920294645573952612445867815463006703252654019063958297238054135172769786394450745609259934181505251016539874904152831253711718234914893897469432786584054101268513200939269179079585273667003639851319692708121267826679784030916865191809109100133077627426779323690746257260521312936275403913123632463352307335716107999608167946897184003237056726546940047480199235179671946377823641989978417690969677684829527304207144308182650134354998718911090726702786095062807729298690392479375083981940844229056249073518201203912792454205966598425029952563607585492880723262925641077687410459463774789330672906183719025828072982308034590742545008705080337328458152544412188697668757315746014608576379795821658765976005536707324188959536069239922314839743397574122720688059244134819376641014661359353276343322612912784188403704277714301891660540133249561109715275963766657597353226488112479080163268256956458015620079313595839570764954362048947167591696564439584568972409517835665152561740811702965994747657125001301980682038800535305670160853110889256971950621271427713576894316834321195326689601217095331315489242231145763889332543747232262831087153553239177199283484084825829235991200904704299781315160063271018195482346548622362647264061796449119152770634225688762251610206515640884921142494134904228136051170624232296067887730738825730973214506283895041180493980703801896176434191920838743759996593507173572978986054892640250087795934304931141473092490490450776108850207197588185024286781335702954839689896997872623662847464774382322734376759768117924203715206346253894478767660881471538983388875619535457678733898653820540934478752308636774396296107388751624084004067708336705785241698616194656343955629970202025568986192487655070774082055463011138624508001599225090315549498823325767825166777317241807403608937296298440748232452382523048238800113275313280959255102938189154016933599804818640429087679159164839517611553744400860626069804364673514497892306736812674022099931633914700733578108569569936441629650513164965926072589738124319571536979420933656963838135083413523941144698870787923162160059850987396537342889555495496584115511312843645139867863181597228283893749723039391309111663660976231564996010885121568627648445567128501120889407432362356480773889541939187711946028713876632125422561806918132452462913403304023108508068341209573311618068503445269184390157265595506765391056098869832892193490417447659122838672757251391332837851036191367266249353849886413593046722473635378488776454323954818268149409929638635412414808961330230122954650428901963256995651623345182240600244635317973907826966813969868061330449247597758312015226899667417580385275093093217626616899114477210885848779070913030409361368843069345150436401730807210579896934588767280968522233177553932923818417714089492540884038970033988108837623141706867919246971631300235367625832432036601048464259753372186928540951440630923099292407302428889525283750027641405968206552468329068499868444629033188679268281498517589853400634734426054452395271099018955517414973936753072456192394561804669729567373191167322787677410741508799940410578676021550407111652342682855885981132479774989069425021658270787623068924111604235079704695260639763355341592950918372681259812975867561938170899681459821409423426453667546789746974565615241621998412070776853378771137461669770011505136492533184039240670999252326140907702950294943932532026111143925856918150741712352547276279168576357729675174318078567364963061465831586057178412890151389505995621918227438291968491331231532001668145391277889325401340502916329310849371105701740387424459076238988067249328874695929779126565046545436448753148918677367603050868099472690543860395492515514131441115619496288043249106890765043695787422249667008085624008074631185917554332283030034627594048919801252657091458004036241713990897751535623631049600298154552319408289221895557493653967693056199833982069576401638176129061340796465084973643819806936919982800664083100626369460653287899237136212407048186662151182235907471425348323557652901225886762096904916344508269373370007432564274367130673320285548013635749595180496952619744327618404029487357465562497257547739258077498271659517264150189224201905734708737440604963275669438482546150205412098826327493917775233403406584682094916400352385475826431684102263992235653392356692985108511597656143520558113454749445762797081840853778508590423214969405858817247141076599447330741202896415919364275947213990486881732532625367559948446848630569712980352949843317784279104048257836886617264203991461842879978130647101088819893546464231876877379210529624263657470764460878089139851829529576560262159760941531543246153505657588011990963105707270078355293634459242515981593963615655461789019150080585091053050600463000901697312650079251964226839971327391373474296967916501804819308929222878686950713554316195257165180764499439196402199656514635613094316666683035120176134880533802559428999513565720908286682341869572899015741969554287394888434680131148212902090078553447559021698468435453163036184105287507906837202088125333086602494153209499040738586467917516352419987251030708625924948997481375661541132805065251045009303100488199751691620404711373734632137068394002274664274816221284292731907125858192340318597200509662824947198288066813697531043288821767524663832422374646964430572135713393762495143408026945932646340459295277274680508045267999035297602954145036601595782203133182054880448277084320599635006846738046586032186277907216682976515675658086192999091942454844171855361423585154610481741117817109928154694543644581383102339992498478892253512800744018071337284524933527952652574246377228047292564288114765511798714033752875063125854442353512340554328231313533234348904323657315651196267178607868637482659861176116560894742336034048285665283373399151543482194676277660098774431041072378941858258435617444405287621225913424879706546433253083526350672050115881671617633103679855852077041664269591790940991250294457396335249249269263797551419922892746149281729280824918724743011210095874985959627653820863189275107744614815773464435598940324984822757526516569948346564801050753684823405745952192946821475605467069597311349776538225683425511779530333997279222619661751985537295734984167614161851612761998357300577589908343609285841151910138832602024548791205188871085593275215630052794150792511062157239558696065269821645423680517997580047275761476849393052568173643100578074089885406897619130096702387043290306269469958139801552558165950005389169749466751120447074476867211335364603830616113801266625296886211837771609116363473725729501418375978762592821448301327755807078879202909855017762629223322666338030107043453856659824766367402534069527334363037723389084950502370283946155266415629551508306650150339221498192046150430645532656020583945261723503944274615950185006506518765177595304006579271244166574232632958237989056896142781146042453894569701037397571517877186916290010633599744028806412581243991078921715905839442226863679602407595672180106632236414881148401691501448757074008885061728212757046161202453854022545414970944766902448073104977048176600547629869109412057958013230327597699861563663855034217301649456286150811037490744840112530567189723074738941564662485392446004635496190859472835808459147176401283582888532253546253892733225697941811233304140191284352525665198332734162679019666514278235370160417523065451808143712143907616753552923197569693957278160077368450171629966630122616454726143098015709448072150098361411381847156118480124925823919963056707907046222762561234111101031966702281684385323937318087188785119330677950280808532403643315806004252608272952199579474232112536121204159747828823606641144796903291601650775272678485336961999077157342903337041572588087126617120264987135167957241820104075155882226496497958416434443701334180741059860708772367371709512826025828219802919779503787839305175283973513953267813891887332920498370850119420627038405649893155890776253795945672117401286119417685749024606679507674798421910573836397668476942482379833254818783183227257105477299386206670583926692795241652620590382070391241856305183550839000417490607181062081232454455490352005423122703646409688435402456176492062550377741267759596010026962483772679770278664435061350418642240938332457704587448367812318131006474785677830741819435278016846965531235154490108034364409693465258813898827402521162009331701370908550964873976552026270468430053052653527357115995022736018053728078553972756320406287472169625158318852024925362390046525494647670383862832857244534153706380177549534737111096211329236923483184146455725325202738487694568230982462529668506443139810874642458672033527545036118468350356633620676650583919508966170027815820089962972566673349658979378329269729893661581861917613042156572080577044245781527215624625442223883608873361072014098338264737722439457174891569402719986745733347721181502777786506721259376314686365925539044964914975613008347331015091780240088598498229096717269601184024019759472979448076607803237224420225620585138730904782198081815586976944906655126929001959155571217210503444452869546767078279210161753725536630806748340988507132148756379435640303690467588532752777625597973514444742382398422530486571174872675939991978149868411958028101749645874853761457352087393325294057839177269854707773817710398762864397134669232749632402800548325396503834461014516228326513061362895403469538284886410813502007175473072164548600855315695145049676848500354511643536716313241583370874604456047300722368889406951798914399052290474978398564993463643058653362752617414607559127294867188369216655045688128602080296604056775834725386535145136090229565577803269722592829542945174147275149472918339823469173591506303994806186884052589572966964870874658081983370280693265845494559965705873331027152338569305288486972643973167291777801588129612677082610806770110723978574979830471336641200478353592481752963285254957588441030228413499257095486927009326391144773817842151917166349856627339530537464626942174694417560608943793753520929371856519805226482754592593569592520938067331329075047004630313657785242733894846618047961406968624820437253204342734502864198439038824481465438077760152587218951144676895801880412644001815454224391767686767972259123335827302986955638613455827240515399755074208599101387554075370305914374007383651335349116317861745977911354186337177146415004937854908292572736985248427848114881527151022534140938105856201665594357852174192055380873343795831500998273601426026209082761898459641785384957413746126822682884735507097385309918376235655353381246271586834008881123980285909778045768390591872725360632766176501425310426784855418168011209502294349652954975907642236387713487339656756852659752772021479529400294935788792718550117096837720722362443113449380897655974125266475422682780559226312380267097243371538997848434492699969951594592073404442206533342709879286038484578667891308485736303092129175510506744841393205368386075995835872379066691380694570701661316329895582588128884220526985097961604066247213326495093586399097231720710230333869072271662678183807425605076477569527987468150142909976559007505787553154051068502165018738037146989496776701927888859393795691173033314205631903970472642174440809489068281962539126403152714210603034418555028801751976061990906351654921263656899891579406871166096647646075586828116099580535692922576488299876310174038707731714086318236506404802360510189972004085041809227417914665229494966527499146568449845378953120423842017574084723370587033345425524869659077331114843109095742447812300454270141259239152912405261995023616632934622816020191330884499455958242539652735435475254049018422865890051781083944982617484766722471190309183633120089783063774871888135275095776470144561562076240251347934036086976989457033553805512765374130060291304856118629471462106159642209264232088910052670186179017188366437581269198367285236166465012172209518344512145503479161713887811650502644052054468839794640153825043442226913307047907005233419351476948369625135789829307519762039686918825412492445445513969896663596910141453448365196481237144717507814003190980347264491511390505297391003735686546946516240730484269071380186235334643694967977428542086407288206136968495019019833711511047905448505010185711691056578915040194029287189027944293137611260719330385212140767437247153677465744014951814695922132329564329461703762616381147192395549742624499885041154655337182691635064943236662063346610509946952095829426594966010927872750115490347720658374795083065228661189320160877872953372868746807723220970072822557012196332987513906870965609128274520319868587002818295298431715067721719521626344747217871982428151993471501817091059607316966904046678917489602671217833923277027036803008380710495710551324292299529492334177522151579695450026737294477381157687521740770781375055348345634225636273332938164940134790234274486305537411714076807074256769255051594304046447193529563122062849311242149481988783086016681093470150359795548169524515154704462543322361501585114057010215117778492128037111307572885653932144268621317976238013593272344955782792774720485272698086895834921547819919010813182896717521300425159296894614222990041647855223291885744343200674062122876061661285800201635410237249464218187142706337367314151665582180558748668223592303030842610532718633864767277659462864051637375595865136863872421224786825951570746074642199210222472752399487494413399478927527437163065194024644671996874208624155590692742875306448575842772432651810847887289934405786306721684582547738883189589616674841289540176547386820505311993831119081834323587112327227056393193934303256768837847539504470107577482592597759059449629912809651414248196313299303192236110682780798621573030057584998911754563478015943016158006338170026800725873204320568592766602656315455426580492966852608958206941934157757649313340798885347045889339174218554257943531932989171460555414749646795106565037034050784303783264970668718364946919438449177796386277037015026999050284867939131888341123307142790708536198195292187327239089118443286967999289433402429856253352841929399479393309994458624926614079767545211287810783754877571562305513401453172111966768547728547559177279778766213585989352360170575628052878958512610366228238359758385526703706735351619835728218207509050192995173586419427913198718329331000867492440963599872126966225185862601116745190689400894995150914023291305696647456485698198677357492430315039845312153118417978588544587149979586797834938042381125506296636092390966545925247863481385795398120154634615867684081991575069727864933767202924346297801383794068567685537621937736792856993601383398720976444047682668999607769346360266037592457006729267854643094437061155343999119794402060644953811324139555248526181776123893198433216979817801385233016621892033182542557519838225192673531012056231051379790088805977778446143653553709006062677602728409199414206780205717308625191046084585716377110678353055998977193872684823877994818558934781172615657406468985545777551877081148636154635253488769182949356032768738963769976018218099000186607808135567261782714210478632900496852348705354575788909132948543473736356470321868368457676963128277828779421788059277232661453567791594945719319883685493874326422773694020487085736976568752265094902591804759063273754971333819134625959180196907361822388115815352121101125813152115703921757832536261783067563991976935585565618089631531377904576176527367641972866512791291018793345315550669758407927780190615503704524863173345521815990780093343024445687298501591110332685003459212180732687016047944624348780417663612741024717760941779001396008368317254839156418460263858808078227977842147383879541858620632226012730229244241372272763230757569440549023951776233021826135022790159376916456856552176715927569846453338256021968602553017174744433430384665250291775477200813524000650112513266455699445656309183707246420946951258237722868608904817604377184827353780803368145667000651752310902471326180335608554777711364481189411007487588571639024141206378587374685655223157113704807461804328268899256382639256147813969638054761719119342031117857924709567568235565768453662906161635695348776395523973800962657668870334817175321179802663389220658384590258371181535364021225211625006016385365390564858103486491426426399444218418100023620918340513866604245609712868152106460186993630622005826683236120599503692178272859796017295120420397455184354873954220326468468324745932804067125373072991466619546217664300754757201835731402739106006168407508805925478131082630543087174623147640835877142493789887550892648072770057998659427791428602753584400515755668832428761167686669059702784652357883303933371623375508957131104471677654573758476167874601502363519888512145858128524923125032627753680014371207322987719187133711285454823768337326600302064083679117552571147359253058611788012921947991469019351399527216401959987725247208720958775620958615335491174113052525620842279498203194526401596367949219034915592579668767993085746298573818691959437183234343745830935750246729186070720614028996394642854774935008193524843781499033207638913668880993361970560454707742527712875524892005115943940797968355157022293038446483871860434200668557932266199214788939709027392514347834811942341790430189748983317504457268870539624250062845722693221493138824383288992883611286755092478551194121686980789676720528191251285390962804093039518377755042080879468329818989190593608554842548939843527753088624951437431294322542966186193281741741907300086552663916703542672644975423796858171471477971302141272006377270455573910847054969727229453574343167841774249906969812039595289113474839421563391721818352662247248924522717632832615968660362424151077247110450705957240649894063842893278182330579457213117723807252940414222451119715120245012490017796560233870493567843704776883816945492647552984677553652609481566266704092755407712198465700063959934518620064144859867067118608521283980690571088000181478629302739334578515040304433789704164602696512489696977349394685366576968063101275574679046904673480596893109973618574758034016157980963452637045979754628450697320924896062100288772021326179150243636564029539263731475878834064367284421199232547971374951844590079934818600689346179116873683250468911905763427246706381028980275665943907270499113066199380835781605705625203926177926780881989454204753036179274737105997693716371320482761410793006241188489792350502924487581963070373927177379597510307318480981467552850927064111727060388263815417932153902690030575471130988421013240373281242793193672426419872704216650711805554640634670851716294804242870650297072734615722096017880029616779750591492459495197037685735315469808964832629646720909855220719755412587139708455562972088987021040748031015122399511582120320544578128717507225737528916378527513155165811103852951690938862705522099945345301496101801412269021391483096939147055630824709178293300219240442298462099590078675689427445071427250934197096867943426973665249996866992016993774670934546250774202566408004143334311046832171909638518858885805795102468728440568379216116986938479401177279940827123738301024943187329209369102675573300299715812789318814533489450433758720898389877894910445000382546170743019743096895782410955031504010994153741251852942393102855982501874961920207206542901083312693085739302318479551038070434648664456318659090211475374382303641959193969281784449072846522901653267095452099396627304162502907390779282380257461301563040306989028441104154098112763562727136253111513707422372436945891500101370840957946139395919685045104285485836386798087272747056729643826631412191956491131207209318215904419399432332580174421325882199496836052643184338831084478840665675166893705239567404216806454149985743510792400276970448469334293422153139313902797192257241688379496880147941818503760663068528764082568268292008714477793026831495017441847987892017263370386055058301103380949786794552822639390338655642226533772575813001135155599162405886112516883097561948907114792154133641937563748901296131124645336856547304163441042757782157009778574759922864725744091538791660878414438008708002583460405728750266602234639749639913739870530828632834006668293562494213511852848262728447908423655523089005516134732911763736785771802400160096359169875855242043303500817088886708773541806624986699182861146273639161782895264091124909230208645514409844012849681952546583103175091882733701265343040427026696806641894430223465614309729761029555739648615517618277701112553066913319447691774012130376138866448530437780781932040441102487046054802741221952772943880956177626434267430163832567716225516681508135785457303882211611563547121739571128429464948372863790003589610238398944667437941947635632730867249576221575620744495747746635251662734822735239392296629667713083781680547663000253283488165100214584051669860095868299070411805267358934098201562052758752924997092961092578754959437163427732509291119913335378722539942360248799684421468879764063398805631906410302276821128988868991336508599670419055034707190704607370215122467171738287076978367898404810057916116998603482762925135217849997509153667493602502037933843619023127093201981344544564500815350492449996996361302848476865290308422265244036571814597455900433200978770394097021734311631315590225219303209910747625161737854288581004922233570655325762119118573873201710393324195013470217189178384997006345501498686612104913105001111917017385942533841587434582217130770661828120618336314107701524368057416696474760421364912106916967202210927420825121668619842336147223149763697640833702246948654062911346505348653645421377213358635080427648006068339221673635075614984771823594315854559250568685570143666009802335688498178919132238994528606105896746141312535812011448449450372955333601538039796356849309705215445336724828064358347583517243178805318989838526231229220547609012896752716742194453579886277782243885918091581114758904973618461920956510718701088221684871285597852802031805264750190187135041193560562400941180540241630598900504615501469834946537483628358455760897723855231130922251343356937051577772599075513710232028779593981976572863425821231847465732030370187308101174561742847059587752156624913198414302435465897736278918630251220844913417408512615051702942477125930083629996489798333102738719944749534636305416285468877152212189036812671750980328301622034324983092372439955702084762478441346340348934794624169717219935779770600856386281227198132965971575611561817301490893546462273037647936191008224443698943135927666984878778319479183147224698157607338501316480006478549138615432186081759231580550736219283591153731682394545868581711639872378054337256648150501251691430852229180007970672628934570329463975396265966291894177005192338299857328415045934942346900965963038511131876869846117072955073244689460209215864235429712917762249646838870233671026846822049368429530298730133334750457453222194316395878227071530523774191382138201249376636252698780633780204056966600726357063082425493943107842014583069813548158919530015711280036892288212347126823611568285432713709544847404090905321677147828735079957966290363595927677729711377655469031981596995217321548333475537026389612011708117207888130504678339716041737650075211749653430702498740006117169548198971065941931054250395915721379844361429513479594916243763521972008852475846686869377457806087181014849712700562853735656181098621922478618189293522480045594991669347804828225450764701981774667963587019303629142826810907039645063510375528137615265509831616888957790524748405574083290045594574018209355284288871792681742507301588716810185379816072167151477000583770502243423088812053981738894100994198378365987414530600853091023408696267125831712272518803831145728192433559574286574965754269294793926024696280868192603921745508061666875632741657322956632470080364445488018370836719112132444237844795180009018155995248476878388446863707188830070845305569816357446962668121958898167806345814595849435456289989157306113514556904735750101117854105029695113559210701149245780638635733092083990940103161357604359452404149381254696855189882863504816837162516443605514893370658340617046987691148666825583711688149002590051625602117749007155449928323821005807780923190755599752484282590540410112754921411988151831671713295089712913207645036856879415075630319975218657493018250655218650734319550284919338038113292688489223784587782191181565342482629976274230902538502781751539665417713571008344094084863254716966925570864074208422496138432358844211449107477481741200970055333521568169004626748796050639255295556569123650331960747947780676135794131286570901030287091436121930636704643500064527981587158609505509834339246485579784815447950131334745217995818609473298613407765814024764342717734611196429341470011455892481421381314074527037709334265914147308597075828148616816705818591740474070677735531720283262118850180664439139578032067792922302665123681905836362772825885557454577528732308715100413766251214464095544821412720465388374905371829619951438384928337723701612287241567891682857413813004747340171207500749368798462306790258800036624446328584425520216662319509657010001546213781332619081430834482353596131557381709806212014717290726628749821338325470924239927072757497694040390034768021898213962266463140297506557664641849855539919140106804953947915018177310862723607630665750238379371668875608240513719045582277519656588012104554054267888371320359413019758722878607981600573196312527720394234029393711367605248997725582058218831640714345464891070494629204337110670066585202616763309635346303651636230981215074942115647852954729732063959017757054578540347960097339275854110266819436681504760316175814297077188310306649313735987870700537387854789795500082779238593140135017435709354666518739574060020970520061403641240142034967921989482885236419974027738322116920577753272875071402172391577235028829939479105388095527681370655835167083806810812639897057680372124383050441231657324393762710763036074125367932048075343695285417751443783942843728403507214783106471532002130824138307414253475278795975685971232462073803452867295276240375783791769007048384845005089802120288673419562612004897438256585119167379414903647633547279318526959258655887740240735129993011197003072457622451793240268890663418262643900023209234007225044898981599732091908711185607768079842182188555493179512216283158174155451646046184792715250996112137841750499216372757295697521009486445205285045726754358940408193014293908474345038840252556696761003708589439469952605061021962728709908605138729657660125549758545116744486843798595640505804388291064538713205577562438258198470257948249991286538132183143685473874649323863857223559109412384045177526115393552318831297942021887980212113414014787063646561318233727598592294448174683404590021916589875943723132032172441497308864477477613165550228307590811240461582325273661070641354737852830694068717894227290398490944262473516001876096534032241959012833438771973409025272496136262585822289449380255449623767364479045635282265562571392082841564326083247152756517242741814573716740668663292052974933725971674994807532117720454695743150710889262904042948442229097587792137158281035013751901479940854185338036121723660054124440161052102513183019593531181867285103553520458031471561901982637217435079303641789645913128585902562149237769433779418053738945339262537546186819502435274871309497758653127475163971006872988210704922597499458127496889515352177720298407447895258461629294526496309238156489189625124836426296256602564689737063893630059751381859812931678430513621265861717118377728895098207340367713918797826818918764019408649473978367812059482421093349417688538091714750597189186090591182935898178919528948942549741585297020133716441762572711206311939486575618807603783010267328290501285323133059390639188555664625455325426959056250368906531543014006264080201256497157944552049585147536450745422899077867628035979853272488378610582843389451231243564909015612417825903525902577775528355868714871419541821060032568465990927121193464134094997754061258652520337144327133078167872068029871366849347961559694330385007108570394928411409942019174716724285880472013549575348301537697175158075646534514669367548717644376266932011995453054240787889589918731069057197434726955461809304249802150298307672654221745110164512307381180806658050430668577286703592169650995232198760520638938917910610591174493256918059854442701389251529415970417707152906977185865909549282057162410992377740900716796140817935018599268765118344870338319528791924667520398236890655533835170598817394710198648008696536032960185382229429828792185488925179098195299365398110624350291434742414506519077354843352302033576901326066330903494563020838641158628311992577546896211155609142393399349497225654918333916964990044826018705041605461881120957846112586931825334913582775640141482773673959291555758882335208071767287782686539397118553993541238347813593915914964306108924977499089693292116813488789351152947770470392003301477366125204765742429519089809637134347317773266749655094523893583616105717076291451983107642902182969856043992207791509143835384551430686836963859921689025211084730996949961363988803733606852517722886270397612513797575625499144362095535876309289855609085780785014997036873462047114080284312290458966539748967764791558694482033137007090728712022846488962418315408456785021653874948958358102157673316221815197872485792477867677700383705023075000648883204665544929589958507620024679559928300251164851698781479279758865827161172191735250195343003204522720992927039735210187249999567729269039373728110276887330223599082708669439114443014226624756284861906613239295100312448372027042444496372926280909867169810311628867657717675008033884386217972228645239847536108175877383428372768036069844310556813903030882898638266294645789930993691103737426070508796104257593957599536071672373555000738288281393306918012072800665313050648376201256570697667777307472299709469986500719775771106517425007216481723087800218752189803269565726768208365965844255679559921094527733218538528507545678011108352020594612464781951990756958901114510947635774511530129980014512515957663225599372229195757766202535918066562082854553266414918791320902599030878370584951188317747342634926046043533748688475313742034378240149484713903407713153258463625869846083539646558374055836731099663916330989240529160470614861848246690364779704849076496604712826910606312666556341386011393619911364172039508260981224015142084921516255966097623106901502942348875947773307781322995327460334793975788996371084468693802937535624726695066051269655254711289329934660132582332977701402300935603413890173352845524786086899860592184399335512516683004110828036563385763903912279593010808895727570707792154605747702655306325327912643627371679962115799165101697756350196756984728374930742053827434900427673985585771259606782749439708807032928932078505044256334875443420712604133061459729897062210120723994823827773191210822882949770694106941147944829054715089765396776021067230142953000014795231682049640890377521761331672108997511806470357757624234300414617755433847569538697753721178780011458409960231957891925478060651564614611480305850414030255476395807897004665046444976757771454080060646172258195747586629043068331854203127111561075568099941782544474719325566822771568256730605107661468923764435010006509888489607964637661511572601633268101332077602093670847821461240941220468882779304289470599248080597334612541772722554752666686981191730808712337618405030708656424869959261667253611594380893010273453369954615639636314189341123445149837778402652476562404377626698434653176666810660458303045169837547519703283862455959515040068647769847865235974990721139742562164972497948046879712820468408568374253370667488541413468484410358538952069145623680722159124774207345037934122548936016917491597923525354088498590765371716292083097035198203781222112983897192550075280804636380068363949123613461684909103959849855761803231676530566931034835435896766827934604844884961959031525554625951781490830395345598084247916504238831385783029159749443396421893415886962700325570228583555471959014067687275586638664355732342155109739142384730921653944316750653423771061568026438947238616207222208070398471081837844731390542666214107657247256037548422557351912863588886758393518781216397390255658650992630382305815999346522143843478463295194932869878330475071327335759912268483333760322020762073613922557040682729769506345610978827444259544277423794948638415455616021217086355122095303034252343212107640028300613209969159844005903714158249573828169107965588060957988924218564131745919525801492929601820127690616905817552932973795323660833383158648523562210984974147501646180291498541172955173092255226667844760253562069247365441978867495907255219873951786269745381792261904740425022506449660228303375184891145640451811695387858808427497312527620470395354777375418027250216759781258657648818641593987326853238366018404425572591030571055475470390986583850330521415025299979492919820717956500031831780579164197798593130286990288355418268400450064116940233318433547199262247783735769642358337908896106005008000664731400673531772742987210465506388829461957794712690167489149681989119000026027192442017933913121471589451098411053720141933233262997936939151956577564234737189021954055959233964917498181114373986569087094069744025534554414535338334919184901228699643995818822285640636348966380997014157732980797226830518807464387271972808656807063878175783425507965726780974439474947669961242368981968105240763544605833336456175227639294925245367132188509318079150966087878955264817132432934435904510084414522545382654394990087124315561980713656295270054310619825370362876572734267133876754568464495204449296533659703022745631921768528470257999627537186955227597428248533519020463074940124668866546463498544888047329699316533593738357921972183789389334652326077841520030233880352824095564253842867494836569203263204435223151306610392201919650836662606987286201211768749235065185733857147724022290726853440966848674326370577254583029273403388482835636486279237449378085118354913005942942257588479650032397993481016169288781770325787864107170176281571811738451929625899265982988233956102609384626019840410976780970441670439443586688919116760850028300881934973605342441329835386544093131256075671858522182781789246230355596421502810728309482724250700752515748283163985648619940097879979836013671447585081596601640750003300567161827509011383110390401327509020316405030733997812388829529057744142132443691477487062960782311741699261778768705718377589886533535778175761021472812504070775046539732599740532815469907685866058960713990610167636579226264310001996275561176826878054281167005919665185487160883066501591558243246505366748979481557479730719048328862379118518776371135854800175892442860130542823372295034345564237616064036560676782718111848904295960930220725996264733657210605806595990702605844270143764123807316986764475994565782531672700035315487653930865098963112930800900299528427252374169863737217898977055622830695518170186929550223347875551113233940480148155622747531487791784928743153036467190451301592439376188579010911732245712984569430348694100951407666089929710008881543457243479717805259673604634944522629120615297576003667388671433572839744141781646074801042436514145491127153798368527586043071735284943204285060529205856053873778222810357481139762309998082417287090636117661658089995607096637988157087336868596050149790623443098715202616060925371753313752147416629753125910445754655352824756205826489497761345706751238787150806774458563446700120097695597229101774451791528127270650066794849431248442461295934964345515503625730469272718834954274128777447135150229503373453197829369912149449539696665924983134800783582723937914137399265076196410467832330476155753613682721823951620286828893220523304722303050600937841562128801809246870151674794792837635025274956966925720718532123459563914588631515594547135395482271449066915687347094239593832006368208030659545721397361042580064032481777883384041174485034573804221117135037043174524031694597812334414595516109333501092055135086146156530462675387103622585718343280957927148642626758700324218241622144615289438604110528898333707679750558891311752797548185859812389217574419314467528148622912679244743112177823739059093336635359519863754760092832052679706625236997028881470013104833392939132053285706034354371095429687070302465999801318496137485432040030993774852910224496289222936902551945046257150462674195777293216053464514952529472464775561642768610993985852008583510638744677735081667954549314757107850584649671365233280461243020935198410303121229830904148204749270357550150103788724639690081932496599469965980648947376272951226824304603936918218171056671838748537894336312905798556259880028207414662825170030505917818480589703896701345158704607702111140131969666475787407306076021799435286498864288048066118403156965807172784599382248359895880094931206040171112807603380456484537763361093225350998709070603735680841573200401625269450340105095722021781445970300914278727797368752526820786275104037749119033024664441109301835956285219200510523953790831117502673798770526347954450960841724488049217910027031920175476211036653805408842103006994427285328299760466015629149366992831715638318625858110992186954649521011544740910177808822946175276050220298372424715439981164105510661259453650372826352131141184287214398226218306358830248863519342291243870714827014913230076053072851661575909386643651625849994161113474038537028544739052717730268820026852066753328070230948282298753642144285382708307736686980958730938143690205137382485843773317687582239356671299626719916351370511219319258094871377423547111038268778340713976289813507006086935586016721986216010748446928598656800237615275468780409218291776203621029070479828848226483138328044095265560612390060006521888215598338149217128409940196592770930220968835359188470080889832335210553156178818445022378076381677314160342368698211659586652307802677524451652362054210307822757461157837747961587508379358865853452495901201791802305224395112489701368910661060863326636362752833063218902817944806862501135974380513561120156620816637147397071954315155510154282651448825255312197005036032480077460436268828532701749258309545291684302327935979167869985339756720164533947735057034015448752561528110616572169330322198904571901886108971091277786681705640435665325560459457246525725045494982915748852924135511231394266682313785740251427903430097182262874748462478293493143065570568806826448673654623030667474428420716454583919721031820840544831210743083361335443259426669377910667458459339217635653529340891636397663295554944945475145462806260846560209491779890097237909722026839044198697683745565737108506088468079745833261014830947760308021615423870004926333144623069259548068747283802247152184176890735996538022256190899893235988946881955768444696243917437701646050448707680516835137424003162046678884622383084512264030458244256741135605259230293120409313561381028864282850430689037279103772980506739929027046248558489947087452544705023535771368216866205665806027975774850412199470639541176454886121539871485673577453434825236432541708254887844205595295514272279403266292601346457194329969846286007535120142117390384765840182556786112391756386577416426340387069323216579784145653458081280011410166541817535069331193572776997745501605903483197577110560204700833436264436123386493707451350832529701031949352428545499057426282633136445569956954330073311905535272639226482923158131285257753064165387107549512904420674836954550710718776613032438320179994571058270652469180366637577765213944031477793808675736138078700021418397847666231279556379488613651512167019861900787012449136339544585267163054732482810141478966871074355140673416836409403534153236924618044991782989373813651182556176343253437696309715262952895372237883734342740745535040080928913904298505018030189428338223728019724211082741066685254062812639776039896956358753317958094868320553728575964829719079174524312207676518848819981014735354255534855016471627353740526944657607037960378709454528918830426215257351416905346206148266591154931428719377755704253292409884984321618910264347826223273576943268208998141244286652270539951784739187139927296621340809866879094233754914249668710486301974519035144940455936426319739836635571344894375838426830701502279722011936905363437105499940790962308244363176558793974261582596152480385817312321350021575530955351079615714824346357539438267919523703965274066727838923350091944644373759661714656524861964966441290623294801470753604594154807717721496767318234868568238736463702012743396322648156747419312941728354234567965699275112333017395845068182281431032095835630027032207068271921257450891211525005731842838049895990686794162694124167257993871690314098031862140587150632125391633232729901329601714551699310586327063589183227763344791468695241021187016650171285024402745182106018124490638861149061045641952886135769963668259054729018304619698605439815165933406468586431304523098780448027141142978808437874775590260780599935861880094596554099971606296164060362407581446123621090946366730899003578707553389888725304914058579682443050496188639057215169770756634243503369458848345386912613855427324177954773618544090653923106519540144165952332148899945510935747142560469571258517899133520083513284938195334748569294514916599402591985917875903319058737992185277864752010824224393843025032171117475935472918638745536754802941398293679703485818146817370111069315448926397217708334443105113237073214693426965524384402795002105744785241157091152161668752427998414466414341126459183490002555210156979433908226464134136181370983052597989596455800359467688228403544072008853735692717558964766991954571019796912570279277078725806757373583593933988264893183336648596400969027683313493799301499273341461285521417656102983968399616110178583237693882614016091064002397831809855686680165372137366485289476543831400373399608409501710005755171860443343705337944546012570198651532981268630433798782379475993536636367841344541196975957753963004160701452409569373298257835308679937161512633154220640671868462193108467800665514858043178065148292123708976195705653836200581959211689799274161192849380655562249754764768888358420096882705708616345884188405747365809285443076808591594367525050177980032545619043097683571573241707242288847285659548567126989120238881686488836915924605639087819158589711659069489009746416394510004682494734474389993336091341642039465716599025567827758014150737021600356607942098174660660284229601042431259187476801006354838313187166331628437203250538170631166394364983149333045287815892470156261197022169167848666459072031651300674902359885791830804687977563406256831394012323837635294268115406822492585787019061948225609564760958164691785641234057255795048700171296981414788497794535653890234844938372457552547723212698367782286528802653578164955041871647766353825303074348521301861448515132197789496806431357659361830997550001097538807947181835217416965715174946150826794040036433274881413747996468221174087196839256499732347002029396458261781999535951654678281124203000998066340521838216581755049106420852970252396268144965503954445444124499910313849801444152096175290811643021570202614860012292679659647963844165153443901269142757646160061861908605898112833854233350818196567385411276135464073382109586908076651698823163023060265749072970171759408376500283988404021800782210415533163800889705669241076202233977808141055185068755583405200687966665996211361526983678435808878036509062718351209114460476759625900484835694219869596997619767718607314100280393970030861629365453951588420560840243750444076203559169642137277938003207529932924983734401922502786417710000472991076815551301650506572821623892522673717548520624301559162411914259527844267792558191353468449552208939277730298915157652155711727401666399996295912538497432313521703946269387949791004345420807513042743186696422964244178849647473731545869086872105858653331664336287068741502536702073258943248974144855726260845020088255465354332315942061038045125161654013271916355459638569617292700024925868258081650538403413389860435580406310635852195617318693651102841649122289816520683236283074996559024335360580115713089091459734858487279486825132839867278593805135672819666175594743152456228774570052663406962711613881722149062607317231233117845379471289202229684536389527099148365430211023067426910131807286566546045315624357202974378160905517501039222783904578562120237069300491020937760169746169929042174062396533894866055993265506950346748387838043289369350116908124669238070520329538727567935991282504758052932537171658916685326223296752062404291476148682949920673521779081559166366071802748003882026909518323035216222362586330688027200639246314892705184251210690727425420895231129415645256861438081383282594433688804376852522955673555873254557974976967751986789887168521688575903285398291027305243313514370366224690530722121455806112785089592777468637536510653777257610677872952413059026652944512963350509548943255567958863444089386656862691073987508542637766852878872472597875994829857375874463006199131465536301843051183544770551489371955297348186106222604844553874860313493866056568158196122397603529827421851995049517697254331843029719742680241075899264034253411042958437691505294317754535703270023119358552578731808088706347794849994709486387034590364852548719322684023397275134124803288212591295787712539571464526106450845713778298920802690443957936934922529010643641546753272227470570483821720627287912869433139175614800668393719742044117592347878183851117214878771994710731016440373824343169130101314925818586504921259316629982042528762835456389518867277632485471574926107288039494939151957388065669055782486601667082490292655898639664668568447544780781002698851390856273445749939198043375060962357458289155184022620367085162439734458870001714322849485090030801263689636306081474406779983623205363183773075109712939966565927245319564591264831920275846502423845708693137345117045824916327730288662928361584555053045329141458239898802846992144804234766705398082430176709041505309891325174007465243685431681588785561374034958843147304847138220055629046682369773052801334145607335788574075985117422498409733776700633644536973354499232737566106312720984708941502738687548349682960731704288914248968443485066169055487209556222211757899637635012331833509742943099177677154785664189483359867095520160956957953827612856735604110094493134689745862686092253062294819270883997148353687162032427600400588733983523363925404174732712910607712527909694603555230829949971153115796556656584704197668410697097602501828556721832887575289817027368085935196528627893868885055946579521607346966548744690138352143786586663610269150638582872261496883374095111309975492047809718760144985516129426919492005481972561267405290751224170745786610465810197200207985973566709005444352978790842086520814716211845033251902987702306633844739925270612496242115451812799257937030263821974975458230780682731038620057619275650582731545549659259355045950737637204913558973187193343035068167156838399497092088943323839301881523029620975184155161805305312009257539999992100647536317917208937112202244358375912010053783542970078518251801226631205740623533053342568818879502329979380565738962059045831569661984595853832222893239094770306491918936553810235231382933063468708994458011896806787704824147227514651376733371857062022505611756863260815461484148505451481563509901787074844600760769504691909764387238213760747602944891604487144227505558927219898186515318074263866675071327541822337107295436282610663637731961719854772518974135062846766464271651497709039396868102835096964428233404874828483926957425318871396207326350424601557284984452722140771828676253323213296517917448436238716568618182282268516686846067736582979879569105870307179467223737378752616221109480368368709922821543148934976970032579056363289720593388650699564076606818506000885909600414994652198967631879414686214549514810458390348008885858364817137789473728942886300075577419490367533390702839388688474671870727587896745734282528987172773818362755059755324457984499222662335197237996484260058002321348638979006148484831192443905676730683851762652402737924643693696337896879349701186429893812484200860824494589525448260942750414060225355692309223136533562135777322130162366299048293263904277423339773707384636009019764522029548017962508239397984378537966465304967936878306788115444302189147774276460626938978996494735086628738946146235192505835543299378626682184384635559189393353902893279479706831051254640949186406737215995959442939117136366549282087617737741106355284000059429282311380046318024377358863682653720508566845240656493676603492772365361745637405271692072115233535432331216297587754757193460859101496393291847562841496456216875427856653897817311847453538325555753599590328957273087751211870306463193585491308562765743320811747988847930923978217850420732277980897504519257577343941278927013934700351066334561766682874597071215536998237948704838804178315546500178040253605038508671901068100216886300196980062288582488973715972804164978442374173499616125280061879758275348239773146429801036572915773772287697099549457878138323828752138675758567898390360354308667591575823491998141456364314943033150221531715474666702010183368470597296880844820706212409809937789711608932985284248066061808812960909614919420001180813865597772909298419339427308840592771275062094151314464384195211796713247945496470184020565252605042741601804280183229522216581397841119832436281867326155545719321346236985998016762819813949092417307518290295397025444018245072260462633626178922637532670915278242664387941312368589542752219811452951792593055881978743134528065909195042141399572226487963963548844981105098836848970461290039583117462924175030845830897330401821474763764315332263825362765735030592405836253192113741338882323911209072131825472448567101201302725153245579442255961247605940563468087099699191514391863612155707460796083928874641896637289553585522980789603405031235425439842606875842792230859902960136509409144926873867710680556894272901338454524520434834396127152269168989138517197992195546315672635637116739366160290019088680390973446288035122802749508903002668870681025617548960502717160275558848469066457896162845648767598319713247039776132201312979121990428046093322710599680699782236249842196816185745454981261558441891744337858666980081511698940981900123209367918739585240708726186217454439134073545708042444768116981967122413591105958030334361557691217263234778656761503518573048989435784204407955018084994819582236432705878623655900541344940135112737355012066123987039200689792864039147925861106128317330632436358170066093202565679087178969424003853474443015912761529295373391528220232231825145662390699713415369169817768698431732872882108329207281348761643341925556564977529849642892285925919940770547619535924073020598553470323369634334748845159824777173723183908567118983265832465677925323614170351134810229249293575010509968390710704637088295860982773517791232187225449294607790102810240796187131698270637606499164929005155304395839829139275444052555609043450063465974130568852201174470539648322105008398156927988421530541403962626455054717418154661588490818643996252912830225025151477470920145156386237599832218941816466558698640036925037905247820995796387921429054524994900386508098191819822789653170288184496581248584497137234316648548178964402448682315560330321432738251817234722553758504978670028826251512951100932080950454271628062258472736375744371693970469550477216903583927802648642216500565551966260533597309638074705017282976279690302392586311681750732976692445875622951194955127711065486588208775920298428922565759684538145856536313644703697362962695307200702945385985959790980284135876052725952655836261498692964949677022358121438423851110907368901171221893730023918638861152948517138033063988564774679218580866229163534672209492656385731458380893657144994076654929916186963227079626290643662028474032771668402732995091779815648762070219107267243820750879640905544043034098136312011067832399174615051294006580446449123419926281419644357948988663900758951259599104164352159937305032125625663459827339666905588666894585460114269884610027987703523986095823871299670023348032676909076897521733124199632020340625887932113738510360401101875168490697936566611101838252704516219639945121642755279183255584211405078368914967415681252439982826665433346961098917984026408171313034590840330870458129599683248397955213299598162486515895488884833098964874807861893659662215462313120926008617669381682897667718623632071041349893848900616215655516505615941537262501574848082024114099194062012595468143670724306528799699842252878894229403531641666671943739729962637808549819729358085262217012197708520918946405211815265197059641784243901286308043392295203717268501772683717466349813625217021482356051012725815620349503487353094128535458101507766378691618727676875611103175945870109960569354130598964661791511090413523443831803881204277014039508261828867213137401144556791812363850384594126689105446522384808044663386962220598088457659968623722040060448211616924857285214233148431900750556663614574174144433705121884187245490431753537111620468308744703799301970499893155371345415742686738440399669736785255527783234004405529918895439432110875277510398250905847949258098791950765708290677022336930486962640682702784473894731034690527405660693214847743668650118555676444007137373947848508793436787058607342994669565576016510882407275566060413069404100891206262508624430204141460700916394087686752533111709056501216208109950338035743809456694045772485401786970124774276719455227381072412504722320055841677948876835967131154372307594663793825619993055919854179398100947305879899883727186219902501905888838539252719208781249276374968838051188817563414866919064546061675464991799881377285845933711596017141671667857273165982216784086424682861819471751541510658740285309058251004580436772977539424117619672590741350525915824959869938586666594362022166316306418164202879529399065836415855914627370210392133455882605838220601114389185893224445254393897587448965223848143775497458714500365485859001794488916941848002451495196920426140767254762640547337451725919319908522086324274043741362459613572889760434704512356275072137909109323892181795711453011896677583654397016840725880410316335999164190059263420636506394214292080420387550033426575295436239599259656299001328716111415932548521700364760089241409145870476788631520448619280338757765017638620120727326108287427004377044453084191003015883243155725209107004669874220497753535977364630826105396976672496218885384968964757459030040504920471135532266497964360090919435333023922389694788497046681617986767467113596452107250208287537557572281511555980326086155213190061294828484200553650213929103908705677318737331477003392077967326715396824998347645069334069804827314891054059626968614348579169978082672788895500102093450023815283066905021790216420538378755001765491664702838828592778306137910906992842215904782606572985420649011790389511148710305533444918816779719922055527976725323430823334507241076084952068582108282201185733851539579111010143991541315477251561701986500387089168876269809869960915654877107486969050568626733634478989904642608135799938966458778371297166645112677144375397237574826078698067577671204913691946355874812093010618964308291629462259899558151470946324591437009042713949218850577792914549076968722041327441323050265693357379395965209469173768156100209785265095841042891656759329561108174640829889345930404371276244349322982542343512023127722924095807172499098821996438084705997121338817583072939794381131075116764615839373784103289746011723665613576440204365012659259141564281166340329379005950132662382330614095727607024118927670346871971081680801565612178003779497675928120174967420129677555299974880620843007902338931142116342416472292887695675919472899825599281518774445923077910122981774389875818803964164098712994295797264993477187359771559189266757862968840542953330251680735647925844394659671064694951968352777506548845775011404956112653308505433932146811590206785394749460211834897768377842376253705276324727529163921526230975530164792195811431811005334483905207079438008350803726295277741092460773280646942652829471258011006021585665964178046447995037067543410939912558431177833143335492123320892043459355902489368972727158744963825644394527104193284365948447479852037186257891482974293702643183665694698387602939410627146246182069056906873112245579712998166775761007737786369047458897334534148167984268841459400249670742247933803390409113718079315462651208691884323992369666061142467582069921583984482552339764838297615263399117190084925822121932139235276503776901479798886382608571374990513407331979792319030626002543206145396754212170281883464279936925012054795294293281610112027023229193475077451080703583070245573937035959372486081130476291290850780709634602759139588782825129743165200483864009772232020514666825828062663733109172719150343120140633281096974334333098785894758233053462901059655720456706176500005240916235246461518238432444711952258700734278103851672648791790576548647371520235939499920348578423443776293348634109188646549630376048062158920533313044914464756558843145894161856095196624875317680387063192994101194260347905446415409802948896136399904086053759836324129790112873657862663629221882210592000065793362368211554935557208553700961850212139140787536354570935483666652152638640413418215898708055642072947676798368999318199502344155644154763123452719479309575429864604321676448240287704828426517355560273795605738171589442869529924803435323479879207309266357503519360950218976985561253384624060218433744920746350175939437695221255181364491745498148711698180260932712021175984050035014212721180689454894349223578586792409353288930170850782972512945720084808185621082842297585296460035085529750104580777279616574888377537427974672890851216469864217262686842442977151619585738942280400545472928152724066375458591304306206233007049853586165813589183364713731485250000151679156237160549072828853274527242837270498793683276076491623007301345715741909026224317466597268312606178972943372197864008253377714550128646763579781950989366493265439860433716916834414236328814038401698617602357342142359224733791722339851169807415083571004042565333007305838820980929946596734497463410954010969061370317412630972341865273239431519719819574320239571439117349141611032148570463540602715451638425707488785684668697545000717668958255193579619965619316364949106805625534614861667672792066125437958164111326772231730710921259212242240833255034709809122335902903265994964619138120215751186554941008470097511804948971146765448731901049047911614336077138867126290316308134802244489618423505610036277752863708948384110731093965348948494003174385593179219437955875784760454623038958925689931706384336310207937157880244947579741570288887650006231243539700959423145472988727228302816533322833705490645406687480682674541995735440745687383710571309663108773542245573944455627593427505755463965258462059532785168557774922443657445121169412055003162592989039653494377417094788540659990012516113710018606820875564634185525380451319084877931923005418485255883393767956252572684257421016878982836767354026786422769338130957753124587373925509622824836722350192395376486567936964433665998055673982522108134119488735644927598018705294852907041848917308768643139608889608620064258312792717493815376306856486550956293688024064331499448764708888999430672164010694186639088107503469748822619960206741040687870483363295756070002755906340668154602261439418492344937812064500855656217966399032754583901727102663377033986733760128512977015258177925445947496272216624933673008798075072931865831345477199805135783101452034813509575751875658439554823063788824822931067163399364541317196706622950532553107611637875336947095721387977287185790259959159657057530344370964697276851409119697956410671527248705233862478090875256811806767919586270251056231965282641958006727556381618142912008271276683004923700306158420039024478325144292319866178284684935851698368779190423855840983881653854819171843396186040031767980326205054559397188803773718975159832878579196685359753321707372977777330187878335166318420302794430228207036397671628711739543084400446093936992417415931160896621454003469824994575265248131176244125388054517627351943516937933905396199227809309576344763468283063555241680915705146654771803309479201582264938472298898048464058539944898932687682470906000730710203572626750449649833081079793195999405883937752050991779592789977324095654254099249515512981669871832034074408660154240242782440576498291402100420545165327880592135046299212468357076135157367878021993108314820373268099734281601176889537272742600604603030581062890636332302024858021519672794216407318304779258855287301259861757785711079188002039278157177572309340265360414615949642219862253674057432145472848502908000067148560527369901649778673206101125008560383311187052103884265650149971881151341463193773751700576068562363368038257102631358088490347006314174880538117541888498335902581477361986671742177154352654945248726152409392383073295122184371547619168820293402430208619865628537520303369701871808589002042043265664999028589747190864303182179180917163607112408381847937250310656191420481630481808282221384522031559660051424743474024853630201634985612058616201641729639494849171996948354002241427033112371252057417808038437797700688357214792761861260563824987951258224632135441705712307207824724408189201653162961412414857432685225939251405901216272968261559054154201380118142661462147047459854309363646886110661799983262394641757531179228561442302055298597424313677722091085573956974544576764130168538736522705391560635490116878541130361228468113404868475733446387696029670721626071388562341859771860453206605345478140870222988727307187403883312015766029423290151398129446058609744076664708426319954868161763242066409862243699712105739474128126667849341708406306812549827602974336843770231230352675543368569938587958506647423897988595183190271384042985200304284350803560474438526591030747132982990286895487434393673351755143638373739773220820371079931222692881930007238260031918549046276164311727112951844020665377674233862021414943203276636120772299545239135573668458211703377339584833514721419766229833084640263868211926111903495329809349128204561065637896716687417451099110388713984337090496708572343608628207499604901566674685325402131520855908484530879497122516544713261306143782945852723783466987301305141935024073702762663766517678144075551453271026927491230758940553488908050554831884559295615485249026240768616343601340339459156472877573678097101275810226673499489888631811885513094506106648346674075134687300774851053700612169296629538698499511891058452699041974938184188152415297697512341712139827760489597906439285239508654251907081961001553595135529449389018493007262710256075615255917536506759573978468676638680117408995938703512721458236764393063195259474565396686060595546892977906043576382719906515208824328309296430385818880107873488839435316385511086231833073956068881376809792060472223960095363848983408918947239319421757327297045649921595168276147515955199187616272221609599796882763745242429783170880682494131618354334714975093592065114731858982918079171301787680238125399290843999121306060585961438144236929282349010425647691531467950585939639007051147133443791828317014339755815885025733787386451106230774140582660046055684345334840460302855244361239541751350947283230432987540714313839668312093158767312823383078021016497683410684858214512415816586624810836135981425083992306820403187509809156285492265362642242219460257532328693923662285297222838876615893122330044386864754792642887236570473425522662766125742082549694713552554230706097636554358931186613199811998271982614992857970083470364767198670194710112803279487729601421847271131836555785305225124775456660462423878657424060043475727083473943379539059275288201706718376065394012523118189821154206744128819355402135714683910010715815182374649624796509661021278576030963513948683694324495506838903552686912321236304535930712026337134224304934811672230303675960337314719957455731277597493465143547019743369663694538755790214876417126470450009936350301977199134469643322223653421903096692535549388709120706116655846655046659685612033381731622556221916449076418185996224553030527192057345163755087172669401834244011305838051549509978266690028059417515475544305080089148185822334147460423715574823235277557102373554539201665708812040346402159167840413866982903835106217598482051889527135793665058432976334006959974217948483202526465302858079640441513713237897707960481753310691235482713604003481429123418081711654985222539299231187063140894172524262252756035443768997151827538545216020802833655071108972759849955976089273566544573536749291218239489356306019058778173325205070439658485232596349677633518760860504570977859283153115523345930979550624580290024127569899055987416456464978097167543595121785265523170606939433521309280869510318581324275170546692025350141896937824515513716373305335268403975807336511414838529303009779761031239104275650963651138896244026281774205028343388789031216349337430366840979820114717110352188271560572710364242212106488467742892174983929141178219672188999693278227906189568132617746127947972180059288665720306074435895939844833038291926863601275936619519173129491937345942379453485679615434309909933670537337020905210983438648792114630765156658459978758194968490880697960077306195554587214754463477269556718955906098200412832242298317279668502400567757292544558158652124421911802526985773956575209412124046907234831360359699765160566872697581903351810943899504656060125184747259167576565637192645251975212545377031155133462407935301644325778292165392776946161195451042412648376052179674421020141826180660038364106816006867943254478950555533032547083831223343094544181736029656354886207300745367800264829373774111140748175771044327093691152871650808829027727352189084037996335665335822190942158123654066058886723886266231324762844256144365104384816121025113142976957213709462190176351503344138411156089363929462475017087217370290934600151165431592074923474834904840079042830212044201119189393669641319026871337841122191684044898474752511468761679952874048897007516697666196673709068302771125301255362157845929127513693721595982784616070797549805481570838380135713283368089394325637294888678599603236608284580104277410813272251014944182922347333328162426561785024140180486348917553246039505770127878227803620198911041485265135686690798995289115112272394290138197322885816027136883688861146619940968420073377914835071721466654061889373276562338376681583720014347676117009278821443557722365112825564193195132583661022165407285644246020974378100366866429507283838748714435008601446635599540472670093267913034778149092611660236854667127690958019563129288066049479626908606130291628982003600307287351072739348699567552294911720757592150910246493428410487499738689988628803118507787269311116883198166878157474734176924608278829068731020406305607386053650847836953188434428539565895742425379049065259904712415576011904867198060817666225451428047270727666730104900045906884424419120698899649512489589923567407760100663480730993643286064923751834174127841654026755787297135416231853779298769869745758133465577823524287702268261450731171540352780471701360810116789638647240064508803197104501356415112213199486403837715231304402742622908541016345760615226378885858096159339054241432199706558014866568760924951942712440556347341895448744366341680905409729701793927725283620171580820009243891200186331653578864902666089299800923715722761073883610035952172273681597938990411180552264840180669343646344982166692926812158116118551325487720021342964194848519830673749711939613930133741755016774327163107587350897631813888379276814669295598437901624015912305694537802809364808937983490797729080745789693213961270090277894620545211654164070518979075185248341394547525947356776730364923879530487272374908283000950005692273190091816183295666368270317448813064382085898477732937973091792874327258426746595847536063460390974930618885343352126301967862935545374176199179288995075779656887694781823932866814600174812089679770280801424681836027635700600169012791192210148366520282546544292212598962382396509372502069256333229236229149189403146210943042644004855658461847268382813434663594188685802227651308816892446484982116896162173163768657461107101927312823951741765322449569966566246273520114756155771731276618151752166017313282816215473807054418843824699407777258966964269943259094893922904487340811946818933172477183231802474926752954178201005689230905259433217205076948381945814426833852973777837236553973500256249797998560414855711299835845026922584921473172594072119331465402759239317035334696417023661098275895280420482459179260889380917594553793104509647636998673530768752375625865651264427783099958363703960611143889809778560983274464513395739562584529938118922096506603259530858054531077776328708980170093018141538521604301242327707033624789979365422456063602476292301023261441410386773779331405196249384796764878544202458546129721296716172393179279204175212101030109396077725133733445736582505275880616899343202408005648722326298463685448430541434952193203896190143394094413158232023944013838594733136414014893970021180014073006079772595530379825437855227380648143391442475327874472947854128012575580904700090909296389799399101515009583204343262516093859506174249419500137301381062065666772711450696639718194009531430282451618968652591395721057697888289788753824350898598746753092955086814173782637299409768597329414603422440009290108404734327322522093213112053255925229313184218053880423239597381683349267652981135280329657521181673930426951949619478044359648528875161970699782229361416334520264539657811659355972232989691710294107854575393792642742847082159520602351196939869565615193485459285088604737181149567824323336098376806655720965306680213870867322948939119916817969332113042775265405444554876901970651780254879354447233672509739216662073924934042086577916193585120979648692973416306443548016377687374902699019175244190511904530592568912944275692013526044085491971079607384286727407478103534993753080415996218485214431125567574212054547112001858243076109142217714133129503319184407270100217075839122800925301531262255015400263534848189000691679119058312867889885893067129220837167322702144565099579597151340192588102874055824998288499937326173041818310713861051807050706427829453383113962814937244489004219915001114494958966327181538827572098016017233813502819518232209584988656764537206861708402852616036119306569627689006795012000095309622808370227868000771435733158154327692173791744560434102019794570702856708090771634095092702674293527630415439620453298988112199120661824981627796763834964576707583027967245287618214114857553750409868003464227675380480910126832319703533669170100299847360568892570508268518094362950740669444230082847751059432202339188577839986693898803237487358985642385457933494799466316638607469715685531490344289742423159921172296264707810027749185704801124773502279383822886381441354530034775442347027836263233604098665821647044439180492541396236752303837378353943569734970617289364454978173494571677997297149297396903194278572522151680227843750501956441855228489808975126145170917021684497797662579378554322862007490124897522151535839701907837779768553190850748195953855762627981064715492792796795274265652932674538023782788350276281787615244342165921437856425803622354089919084238783827625618375479444704408929027190249381238956262218124835963116452848189522871617622812169309339575871385431165251984713042494465209441736735610767083111600115715734374226738488556775015331500583817911134464723659508716835005356055387521908329680066563676443009444997130630617314245855591038006218071251047329363239218681833224832234312752651797690749134792537464891364195196318651986666478332010871652323162764079670211189255045683865690638150266837362067059761033898905872858773877359100422431302127121724218772078828334291737437407227918505428792788473545657587971121533332557590573000762769769565445118180887172418249510831368130636931807223995565302804882246403067211723539629589381462924926656493765063350065214130445304518753748378856846577337932354694088954358429652101086666286956281551607594635253554198706863972719562395772572499284238847717651253949116084849427463010356926419975770165420510280213044825635163673569513717142614636518383544814391934301895114951001043899861883129154385189089459221429600811404283442000319428973316344701127573820860376853116028192009628247550510258365487871589547918441715025698902599591862356855235776487696214360663332075539134965251027836061955472174821225491708336834294882438666241728727213525872460765300684353317398287232529727528663059401316016220063817435243617004088973366177682336688693858133740438352664172456409425036170883117119084511372347006536617509506357882416120220057702826195199331236907787116084561462077430612163120400846334513249540776808473791993680849204881674350276314639813214552151898682573956840692518040714836789273627230927758711315369459077576494735181251640916894613610667246439718154071269056207932217447274031431173477090487061088400379373128540761540788210173142351929314416860910243873775953866922239289991127704292519488863549449709918352504458609070577935627807123602623558789848678940913516382848599347500300727328019050949709657854274210180904205472223882931364174125074255335818773656934293580947622329707821101668272901751047963383387120041830652124972689581375991174717145179999228854873519424345585815227570211635424139618061118030273261427727617973882859289435612675710937811186334081726627938892298512754628503662017337024318195069984989172195513157135241233367716981163490230496468154155052746393955474656435149660489857742454439987772886454090148548654688627462355671414313783549585952885602966542738669649031172337445675952246994143103885663789063992386287043088757736620023509715930300783760698891157411321080833778867308040228302669311896915069094735025744984201124966396269288380080963791760817275046443647035184671400769024630674174753938996103699431362159019326350905105291914044514965849728073214563455371213588468069211648589479532796419135989602799168312250834777415901195386613808722407332268434193703360391143688933153782648007473813994821411228220804488661215914965476880627534810625760920826563335406489980770858948523282036583741395823113349766193544725235676327880135951668980940400866553183005569802680927449593755849549398397145226112978755724725645770070640539603519611609350728188797350720569911860034619872421428391075989295182344696704161809518611354533371904876106318521522078670976486837534615626511163602302711286830060671285097919263228117316680544347189840952370160399877848141977711795751108590613766552775700247259350118763088548026509942770106280648682243021677305147686647142385737017044460276325912503624468240206453139842661847937078023346118032702930530900757575311393760906801480040383860746803179866489995108178762395924635373776896807235800933229434646834500096825724861260652156888004811587984498174149552743398491353085493412762396643652602434966807522633370580687117537879204253671744776151605062339542705927453493553216873132088791786831051768997848713841855979160514676671731489374749353903324080581581212926447085346559434246225619993435827502230665055704037165168148862299340681944445888362837245701447195785900532392263578263100100485130464957935551098881865962327755471287478511638395512795951442396094730374733477275921973510784320393482434404911924883372918396509207934702958911437728673000423014687348860861080026108010234963867342290648103692949336003173829361658316255518760523821714538468687187116984088569295401423063205127010662406049155050693525211786564314780041038434084256615792875902668520680409195912219906867073036724149506998977825329513124443633333457301825879243863128566843272024445845892594426494567653463950440968406415246406298769999128813415627515495629191120320911112707561610789904400307405846274576132468682152226918534352842149517448576312901068674591597772748071411428675409405373852659825702008838290770697774586255194174759168472715517295060114385865026250569075305973377549422508318489424165455816880125509051856506859394309729145742896986381669475494376848601331567392234578074089040393881951719653000525329090652291060713899987357839365975804572645497855705119706674470679299216685980564263849941664081643971640113033327056142547160953669517005113929779268598007712546559060258371909855901391689839885351955829683584536030904076640428957562119217495717449446722309072292989256218859314044028218219429228070785947751548644098147139722230547780509090504657411481481599600327431642245229182921028263026740128731215727251969744654185732615892282883146162030404415281755874959457329586740158415441537542227957720061689853667206535542357495064332506673317486280266238658930672426343913804296698525430231067517394136218644770020042571330379063819904299486452312406319138699760142307782171737648233074781179186854925247358397166715599658501686864314592519748264287438363224807162711061453165234270111903754354136192611122590270891385669586281309081775587885884711880711753260823130151649718031129228292346573826032789420525297026342495314079486460570529361951459464066749195143891137143118741530739120339356179657539188501298354987276271438451975226316348641715702310124618820527992167308145926536605399384589791256197798580690848854775899443696191732107502794720449207693701057936555672515799144217979222813706707923507246888410690275286620224086186474770894462094811110253024078988670048117143358277484862043323814875612769429587701858872817311350533190605546721643047645809617269410610928983050104731158556004257000398119366108110361830742222695917738654327391591614162234897696557544236101169545624269371879487120461341442903339462945120875813064869790185157236115636779208650777027297548879257764514597030499817667503647657024150394571051801078556713930569572670871919672467567129118208365594726432801771311258423244198718062829549048572811407713550162481579150894734364261719881953540860987332532618290508583892302946239778175031231638433878327008855828708917174285491231594354652235168732960332939196069573596478767734387086226945724537657227278283392502571883664697981883567699173692121200699438137931827924580772384781625359243822037741079299269594516276414348788225642056229041327719569921721945553440691690244755973801913433382790134596160632771697298538757655667214924470443232293661821001813238994820515849180127540758138863983718316150414723670418030680586831225114354953358851213889599566443572187076076501425927585533547750633104320255105991957521524506128134023896703742822182336945983304289721370099213134022887617435162387422718208464711718817113596351903546966678914613520625530688920775676437025702713054046319270491964663981331285741738139181894376389026891392278567496873470866097890371075757293415540591470225901465345208612952774069302561235716251728566698786532617030506078625889370095649953376449630282964141630162602050175715451958256022937761926001233121371155026507637351140815102393467529484973778060839465545264733381084396586421424557017686822365294888202389874259369335849729660619784461751006731848736668515301969367383221322771577152297998630367751545835221398683627348357804927483958267716988060562703031491844290757285981380287547122721558789956979577478742677508961461118619206753722524055138725210022199262027786899930474855941659672528749765575640969039020960346227324634417488736344675569946593107727760405347370502190113563975753043926060590633481040025016880781989675677317372749723209241058500361768417900906315933285354496904767927314999428150708226880178436116017570194914939301275418756383791973038169824375932019595516903256903186594049781890990512414711739504270949645902965359408352833524593523390762296507935574606521350072398435714481218237447057530100621566188637103806557068282016515388358105156426891146012787577891597377738605793570163144401318877920659949903944278501084760577165950781321309694277492986947330521439930495758536368092872423737327335227170019633925298721301630760332306500846055392769273947298790216404426187422481067397094976427684342837241259143508152114835613972099714629713860470036678234457694765825168972201103754076720897362145498029241692884079750822952145704004236865122597950290636717461163598384745172387365041278103006121108443809512347252232783621617381053072534538603507040133727147422454915404923858071822617486389592745147944998335072786396337775314256199010079321000638684891914462633819558957382433692309285482916777399764669788211795584613884801027749450728170789413740579013109870264034858165459192625927444727103887777203211249107252996942778922323633284563124842302325788995450732506715786354916958433647798349723254084206261022625775292745232388508118156868992162903735945319982799309912649179721386425585852505046945306100229252563326454490836915514613053339565993336022290564208601685172794168807068030794811584554125531170266412849744726861694258525970812441005939273498026383717575487304732596494410733470255051094848610306036129101028335424402584675129615201798206293675716545582746786282006276993946870067443183181687885284639965199985621905810709748169866373514166489916962306253379275447737783971348162477658235606333025703533743364745646603352818218337441096214242666945562167533216885417995848731155228069373363194976807533225484676839478816522122742014160647073917903067186594625539110982852434279639023483231889222062522100059491943020547730335462016368656702770677627354172272069159252721423755925671896962144736653175266785493389321597675921551349963513635866600345024249947647598177888010528530461114241422084759515931668439329114578674516006871452568337488485612575737352739837912206799878138673467806511646160370124693809698738800178448678050507699101481046610894772560320076285070372831352578028959219870670829108796043569453549330252933503036783371020886165957880837933818898369547921822157442904712302207137989729770773438647455747349677317703214354250171937476254745926589235893997955478412851738798121768304798282475103923244914180243463973698983766198178037842431368502143010221038538397596350559141376621187299914707730730369851130547231735707192012343184892294472196744412219640809709146476142476278253794369284034047059630259176595534440093992718102794247709231070846553665488978059845947953337253188057324259785397233471413681214124786397726539460980097408796820642892070560095416921902812501982286410057661793202802729726419311554197441752605183207885102844094845180156106290397345807104925898425974485893899364630488710339882565338853677324073939731747556790660788118704488265766106835395477426953862411451918360515169086688474026227237260501582787961280441901820708338334186443232932151493286394489181385525829417125288814813968229240725132060229404377367996442182930278907579594577473910642052587795528226794321093807132318190192008558637007578686916005639293851755048966414222953167799995081590958636474685460331136829903253039653670485786724768156146004489009768741620449642961122761380405071809650480934198395591453544587123309416052374330874832670095201817533493034636281515222568386168378926368958791942309537631369349538934457811182392636143712650973610752146381658997006130058248950853848897346849159301941877049813094160675196157561265608388526252065754552671842360824492502863599471380498898866021279655217245014014005108249189698114878596613035551088073116954479856558923601409377369033465859684873388793275702173350751928745725559941719976333872955932066793967382284756721656253649663709787011995141657349836222251503459873491899337515676086046453827792560717447652022012458889805831962742066769824065018914832064185899521274719854132972980515576240939569650443480152042315388135552620649755855975831510937923600980974378625134061776624670405118927175420244958956078350594716806994832705408471360873487366062623842620682068887625608001287854179407979347983745008214611783641336889716898545597482740871662650085811094528753822640139959077360765576010697076137135924180422823126237797543514803291217893789754281055633509657172041717113148501709995087121398773442736594851902643109571001112489056748913694779188494587613979747330466479375941484114997534777762774603699359569035981013509517599349018215413054968029356093134044002353526782307624371600938209331745516599562337969577946133975823313822286564645030025386149736483508104613491962350478355441197672158242473928316628073879279448091708376406216109478063317418382838707009865517982963907767264113551798963074912880248503680613581252196310298884352991451223099728622016563879261147168333118231525364916013787902793466044139879237427106415589064266262948189784964808628319032937277405032748033697651780440516363353968646214176287746084854588753251827111085174610229406211767147855918038316724143575748763812044497294263761537903630985099688428693709812798926789056712369807920155345744359555018845752420640042420463870542155078879358803936893860561212533034669281035507591558644205672087679662592556959351273647699622399356300757823793882849209953765815035222945184282344556217100103137925135726423281063915025878686360710715280824278897627776091851586894075076036493975332980740594811527384854228526408202835761346309900305411501430258241353931602971367477891679380802853406179770774094762168613741071685810287671764006206115519845189417673460506252138215861111284169923909602820860738535054389778609728140071309776712538689746046496283136500356133300051991020266695477520222614338541269746182772307551780021844352955234426727006126535976746158840121914584229697523330805862557765210272237273381749796956196731444909617589114078499838562370378120219454985906406415331106822986758264774213254922952420008612274035284238161302216999648029712025577012146934243220040748749615295883241521202505118136850414814022960085980771849395008608067378184398975039721561581085577305242390339690316289135358949011003234864685542129907551689142287918101444124584029904043712311790621198917539374248435640478113397901889509481747447801537622303725885120634581864182998507424899237286021773382837623337094327255929418449877735720318473899991676248158869675906232072145989179508920374070734055429948618639719278105501714330355075213729315874910300041001441998618202540113633383109651080883833945144998102973693403199987383478631675624125065187219409392223953738312872570512525686485581173068274799599919749194173288862395246840398163004603784123339470057534433392254364537559294785032798466082913989825237648153187903736911847652955527261798755139420316275117207915698264905805378695939017186372614059830954580772622325511895118582639965824433924727678134765683838937645983679495168171226575295510863420320608791900941959875747464083653121258039285847093532568377314799079945891774464637469811472223583353960957215546939528190359807072981363539081875708129886029786109404990312501963665230114806408626259423620019811634394016666813754683223480129671278949018710960474533474148992290037997701058956981132347704155866027383016881311475297652819321434551553731344080972704980810028920481728882254987261576552486397823320085440463945586297367941727899903638395505550701846451680806499884093894986037734410466143306695584428272420369888849489229919543223071008345054701938174371939512703015005555469214890906723218135780598118702110363502794127479374657877830796917694360706441258451717897917269943600293330479733953684276549095756891063498837025187990808126785630384595338497835409082582043786972694626765777760994214166283850562063612721574356393503835984280709735425257933717739780510290078307968357911107199928129381409836856418449636392315206039752520822414423455216127123980769105221613836544202845333175003624672732283553162711137039974271136799405126562318199149278110280412724859843542907819618785635964145883851722485592016371283967646405161818445197884157321181818402047328196454373529229356823754012130396806107968307591261507737081382564050122727493581478420203151380373931180417026224014838019886498967572058291772018859130818314795120308307570581910645410057227150509721778661152513862635180419540157746240523914766326071379827052983606047829856970971578717849438519771969853101028910263036165241088205230526042687650457333745266779550018215639607261814594902298349426920572954024136838241409215648058316027546631829254133605148129894826906623839111611481046031516516110482082847152542408374281272125674507184385449721752741409613342758208527830718211565360286699415122163166470519328659131012843368869224406641118146054679978683140636474193274055175397857242973406478111713601950891632678825229813236451682682535921798870766948536398601062562642392513660130645829855136525322785548767438104614784631248652221654852777290399787877732288760818501602784374964082828819581845318309962694338056052224433518812186216019149870431696721592201822325979008731313110569972875582742944494858616168751682009340250753460374092264921166081627411280166846302258749548714515227732970891331325779904797301846465932210607775468233550433994924105033960591608541348449824440114227297938643059761996899782673302076174661428700221599223043927265573198775623226219220295314149514199767514849359034890666946128087416829469043531932714310065262718198518010435659462616528868271003475122255999779224460999804704656012445493918160488471383943277373444310329704072631228626801808169204443087388436446878027733398903978495675011536341087187062612329321294790061781985978953948144291815812784987283939157337653634149127415814746973561298602826164569400620948280819335630135211476104810028355499128611869804523226870539016032367463177319228287436632253045553529433186047865329280168305287270939481032033547032545475480215030153003643266595535254480920032518547074619936921809747737794240852437103529216060181184478270357355053229973077719727746796510733983916000899929727357381662342753858765064733273796529427465845611070000841710367160170209292849490721202688504865590535985518382461620647420220028766159218380679085676926561276483120439494140751039572728723036949489872186031018181238038259987995831635774814842671338480539034761053739052811701019164699825867132454994076056378528621514297280637263951269228184454626367387659776295522401329174761859209989554667533818589140926762760401563357888278595638708406359560376338715808805457186256686628768657687843512246612021891883303442701949548812582758886169147985930759877201660715306283173474801958098617851516688344701018023272976540672532116331697133604028471353785966120032026137804704242058976396723770962687860975507904831571049467467908261760130441730498361468046945575439107876603720442606916633896381488157114256851144245160747140034538483883540860652219359328087437721446859092396543298049540631502804294382340684251237204030535975420760328998126247836225967883423730268913747097976558829765974029592393812283367782991868683977641610459832374486225472282482453409321504330385842371266155129060796757946676985912381023888535217623199136932935104033746796866080588632031442690703132054156924208417245482929053820867388484219335243298177799897993281683338353502554994419022518994153306661872303977430564047336367362320278155422288632796957010915167124738860196792231413262641389224155107057493084546641010847388682105067486451266793442822699923227949387707632149898815096035223316567738871849346039029786016894536162235816447172316854986550201509419351963457652218359202085171911416460038105053395921122480257215994899459778888312872146788115422507980246396526169517380296901819557074472356009826390715803210805162969965680020785639771138387016169490316940000891321707693377723677557461397874430534597967325424687610613577908644542450879559994639852509691751981908549586381039638225366703324876241180172894979279873614791482714270319204481025941314092415511245504073526829098234716610378322936841512351247374679114592621509149719224585339462135599593358626975246540158930869352646797615098552633809651506338095707586340932489473875896888196538093792960853014061377560892526229638061547973004013432231479205150852472346523945361412143762658049770195096560482635698690639003672272931349969810395154658716223440867967712530312736737306731211637284819112815533149140283243069143810019739234475566275239927210569794396904264893641919765900319686582595889553116744771423752981922592130850955837947929060645200949050843260420904496034326138869078209724077892414451688242772406674035511726129451059193457120980089304392920168312479534149600678730983542881852476959379433922807667325042794739034140936717630325290270117003958703033110354735215281193825677285127324811342111673048225325179333350033032014170025918884246237748985140512324449173777811732487713203962011345053596890182888559543730273263754925333644927350809867788803466502745110079033453727791754561103920510592483478602956742627190117315940104376472567266109029857419380628831245754931816918013138307948209901484772580468428135892821751577092812362044065842714649574953360156694734862334867478821076714985216546828354320858392200811760396705973379715805020841768160427123273276245015892297182598174265117691370550555326235718556873965850484302340549479055962939154074638454923996751336994609487031493876101626869432404237439305273318642744842240198658132759600373326685029921515806235460019821758582059566536326885643427066795077535547944758504450074662957273828964931438488316900317644231746412997039301731529857314858477117007505825855926696103360650606539684691363335550283585691684931103125872571480983055954471428697234257680969736132477211414496708006361381513098223613134913774604776348334253680747259662861581951889742971933743152039064914088902185867705205488600151190730092811724793155654418607321098983187377591454842514757358602961955513755461979724838123575548174384277257569717203672159462837635242447399384543936169963550674121637821870011564640221610914842133780854983072287889752722810993177122754081386087171975067393574595285837347310150061994825759854165927041900341155092333164598560289233459845895062780095004088470692043916244150731064894754194419641789668026429253057495227210480200710005520212519889456993622660741746182027817492962828830783100164193326431624851058420099459767544007122555448461842653348028337702101413961419842294034015744184946904360275232899280804993291091696336280248631403861902445527323968270831876442020086553823209832750989815495592243877902525306475629056531183332920179622405212809191984109448809221617622376882949403482888255124123642201669064869584810243946828802129266814766275724047955923312265266273466411371945248442164039887393873997251620385991876908291626574782904502817933912464845650585782731245978112560810223402868209845196070499759175887560283889228461059379839726721050651559966956385391494006684044343764585792053945429685237239307036497352573403507595357398303187589866693460446918921655445954599392895053045642182061921718749711206101458875371707321309544454440293563249388731360793498137859574466214315267192600603590521338674328426342561765588858502389674968204976245311342898497804320055727152084783709455923093584046081097246602093230549305875493221265123713546330323965927426423810115084964960434917188961991865395437925793376779514791557353311707242982918725323138924455554012488911540865244671868428840257011950249247035398232965351805779417118587088006324947939498051627883263493004542211607030285251081263459047537659528014249456576524345748790663957186509842084401267221379894375661777912747256392172576303656725051686206433383834055000638446550391010563181408741327029567275494835590470375908997373778518809447736847617505943155182564592617590053489436383340965749741117019899415647862678390619526220943992009126590313346636727941901070907089368190874358609308563952214637717821353035415432628538694625128083741128330834558992413621142417647940885524427060607591321265096097881186411430669577306689772079162706557316768674873067135935261128333300180820943125272121035085964978245885749478399860135414571667039795308786792213766228700371252548341604284784275206418762951163539422501691203450341534806588495787546548144697600883048858204579451242766838884492087830380434575055540305377351091625751600611037543843486957362737814620160803749075928643629641255614843936256544962162128466401686580493354661058626797837502366903112995513673115700598968891178626881030635803455474278972938641715788005759746659344175452492181534098484713172594523992460352693064172926250376382068479250801224189227983600289420189489856739719628119973401184927330184463500771303710366990302976308137367560648420699496592803350160193782924943918996370957521283405679863018875411645724036288045996731575787496148469351306736891058466048136323271536410699520363952794464722116951352933976277809163347956603664443696143379246929556090259264599687349717559316754047685744620964770957643279074359031982827582472334328145469459965251545908300067845837568162767821930412788813323973331981923202602973209260403070109180703834525168876830229966624614051016644713626306831216141547730338095159351213423685067755150305490198820683189205187213393578040288730987886458955813313127392378162869357885244289918777760751381171325493756207395449620906246138279884153940597844099157832650322116563482035247100226345032424248546103451846481067135870015619776173007981802756523478968599555058942472910167250200131698426840270403936921178357283857266020572883928962581140715552474293680995397727378644576103663946079659772219754261281551097521590808412352312484206809918465055107840053148843039488204060917150117493856679837319284608117343091960130328229541865491445718797291521986139498809064749845472788216770565746171222968072765040042753154022283402511648649835066990339332655503794778674992827951430431778832846715511832237376141536171027860090727432536026972805124580198742289990256678885824077721429535138262978015180441401483587801042308411003558759294147064478329555324373566198641548086113100910967103114411953081943871530346711077672070719662705751362041780884624604569751489487007634792469303307869830169618408119062590782726033818912557046057592443874562749109790179727720260809577234067081791157371467850719663866199060820228686654249144050868918699467722138467358833722060559309958653131200239442095941571850571013464991540732105740762899592035031998518345672968587810101894937295163225939033000329324360694542972141018209878762725693142937670441840990929969302752869907828306294283116695495996761767780352299618326579171546125945692394052076173311414880825446623226743458404467644185934586496831260086173854081205347143354216250011691618900997459538640665649870792767250917400739054966414555437093904540506693098265091663652680154049047653803645236790383438411822037946582180174344570068995613048808715503597172132039177716900070848895636733378907597026577451200016686598731895168521257449593429639559234248704776435531023584571088236008371782409581031757724678294753195663869066140750436378450996273266627822309721344409190054097606341591481457517527874899015596070528839521642111096092964200082305150404094349830613918563959860432883930425111311475580142790482503134855360876120096971426927577140405292049514870134905334669782282831587931295116927790605314231846944083287108039731992750761776071116527687411060267797368523201435723140265280300652959739578920953911153594603639823558629931176631483383960566075280474977415058532157357542055768834160895290388349280181776634180039535422859210601383284471219262148883551421894998344076319375013377429471982939898750629235762164866765834942425666271270044139295285758306135495020807391799652642309907236150531654184730924034434240974023510614140603938242493092939921354631570108520041597225825353171929447392285527418431843925650583232366856667827333888861664456515802060674464913477468852097281291065770560849200116947272445595208797451267179971317952777775486862968242140515713139804484932969105706221264200747929154785865928496223612752713385461843309638838699384513357883028711915207545406405910809526240284747477557078983836001062379088091440970413902217777174621864916855637236704612310826171712827295921713133257299314102900121019759567481577677471722425239133729053460105827485127072970073563304328704681963601610309634731946373011567174713535996710529038144442737236025376125587050110994934054316402179242520651871061785898414311284353984736124623865167205390762290841544511406404175593696328574134884845832158267479660021946853873655050642464919748742656281990086861909691304194943152700787116459212311859491451952770734303682269080740282638733508010817380473867556825086478289543376968846324645568885205230269023959453387854990121434168324290119630914114113793892042578214000501150981681610783667818171130549125648201230557247243980304653154618451212701736264526339158635788407959795379050524562726738844689615780016659932296850128549444349944670596104300506809681263867746136823978043424251941135092908166834453736752734441595087490606652578834247009822726630624632874418777291277932827482670436592893100290641794600509465092244788877716167863310622309185066893985655456562788685208744369409334073237644219649343450247127295266502648917084572887899566268097679570628754741501201878560723580818335300690367780970441800460680381354268727111518384656207740337228268908434828667763261055324683094394712766082445933425733952599275379267976229997318422677951199167920476552134732623973757857727385465771594937525121777492372429341823333976545487299581196471563066891641435484399151609468837298199012933064251675568485733767220292622887370299817012204062468034567344843831895242168620212614672305060656786300718748468722718978972572187631201977776080691748286206236572212125201272051310089839699187515078654412802266594273239378437365958040051000636647397039983353723787062247182565828505702895373435248179517789106880730573431572252132049001473914403901636272639462638210903692212509178930442301797378541917903547955839498734600143143519606473770599274987713938024723269288134102988056095026657810696206216837000011699211952255535889921656243633415024823955655007109850482904716325130832636972220868351049195941340690910212076952448996934162691311617181806381512338380340793619645883905528988147561259546499274246607988799655031410620060224304591676597174238331627529928278313183825457098746539542094005521175390612104553243498220040148405564714386848048614804352626504053206526834762431261473765402037399121933558001602238877226719690731836290273669273820207530921435339728072923776450720807470192637243181981911896209211168492924174533726517602067123856067307708292976472421369911899687692743750680886312636085762516191136573057872851311835260039034687102473548624045857884119636653081783394110219469930944300356414637181268940445794466244406526700330322937864487090999853714697967149016607908413628943439247685131541588484686484205428364392238733507038261750143642161562740077265667670781714541964353672218283633362879428645619874398830726364825892428122039421803306358207620857015362423587384772455150247493908991608503429295149040664187247514690011151477499714354051252647634676183112814517467831072925764388653382625956461089858908295959671391439345949655537607372292376591198719459269621842185549165302027176733218437843724221457669596990929181104040904871717186775400110604759576926145621763788794689930921905090217592871324154382414064958382909769874570870793585970445976199813510852727879587421692011695027381460610145726788188211944469964600390394364076724847060856158672504058302040204339800963144172688430932472192510360411133147266302680773618260232817251244073322272182399859705998607522856906184008585141795502826641086912112238456105123133023526487436263289051665329143703343316925625866966388764075217179367448722184527448539875651756373383662585762986705625673618313562599004831594501761061031956657324170716497109786789277623560782437590214507605743793913187557678034302079101445028064388661967118578625294346775810159520671744972355181431980038696022825649342447156282865386497821206709962520538523708390548697597073098382727897398291421624579095413511182262237710724557636891160533280503245851654417054245981373522112767917841673913289750719782403748566946425609572427413597841757717216326920058665662684303588782496531155065582285865175096733032049328046344424466800441367101440824726031710525984267972245069767670083383386942816844603564278141635355700929310337648056097938788859923418625028922314343465269967562104721895702109109229762267351539764180784221445072898317802761971271225710622958950502643325615921730472744686891801569921158554802072185041388632919435830857668528663306041863892818905686673072575996079020132295978355040675430577323885082576969589782085950017023207492440091363888414177352308343835147903682158778232673668109710200651604896810643147725495089826230082730092711365541779382721652784142621923901376672991965300466563405908689900461353048849665914793804497991090000199308165855616017162590970765607661471234371340827498399935471181785403917097977921778744067121543489282757328060850349023171079531565347060472506897109842029722089293944097091835642658924948333602088146621393562697984726286659953122394197227236719831698602030952328398955551758425920977842731947862147944413914266801126952627497224564318243797047551477166549966588323088998992513753802749332015358366938565375644447871269304626926214778225903891211507279366586639546330444740492115763754687250997423812598362688975707953418343888691035551975784802821047234749426724048491080624661230800661971564284554486685704822279823737124753769468953129234343834227168557912050523617602023263194178104477258870484095516169531080716620420496473286129703522354425675905280336842405700081841629714134264447155605065255328519548895509697095127857567995837710570199741386310614151410087461172730628307353397814931854433078395591398786824630695612010817357286980951011832054020901524942269668381111091796570629902874356042521750835456674642858019876995679402832803446158880743478678858901461610086664406768298219036279405500957506860799438812549406032922484012840312732726367168247584837121909458781730777660671679268033796534062360450749063747993875969577944585179008711715689774601803704508014038261818581446811201494796016804057121346122072940565507121684018461603400292930147703784810867459719000284847483468012311999540069603574814339340331904854623135715528036678345304012044331669191846114222261816337931536998488253903416517797804189626777005043174127906479545104816237791783737931432592770372526685604091259585985895904057288276766741718950098563817059481643564648740223666035573956716613385153169739581392329994858448246394755381468068332628795824986379429320734119956665814818713245402655184645840411956524348001775677493681288391509009800113558881462950978932442505387714945537771906783875225420810229539346645519267301205527472153372490067591798771055096220515299098812450832858459103634587752268513901861061378294147374231436461355571808981678160937444922303945218338946167631517642036512075400245049771822858600585046871622188687913762513835380051931937027271757981316446735104490095325288425460930713277821927072812916978072259613142455703635372504746118687893517692511016608814399898224055315076138785311582117277653667230532439819796661494018486805659638461201585148089746534512972164314326816851877918773921219167838134467875505010886135234116637523617988538262027234296575822860856463415915133353718704399983883468738372118832775469409209879526370811488426154301606422292378840624686463463602040058586237630200965477192936576691028009092330457994025286486526209755945784187298395299290315378589749234688640060330429613488129813211173170597795666149893375853079434723776103421677912504718457799940721749587085401268696330652477813148315311165595258561326707988610532442923747732586066737335984893739097717362999739189802977357138981450918434776224783793595508975916066040708536126944996356808462628304903422638163079406660848447382057392708048741453267117403215288630417693910458478499763644997320217809053474451683030967857612106658880835766282345271833208666045502816811149294016646924697496833438902096158735236972292030555570883328823613084720327599163609568564083930786041562169926441609758482855141968916492492270875406533592380184506535467014594768476412343910139499258699627527037401324751757130386735627346405097957186604184229455442407374760767020707422001888808105816950386637620822547885169915398036652781236370504188014702805370136971269983155831667999545434791300085608324834584516073476721020529474639132285993089978950267835425805233590033628514132287180225640111692703625611397303668019103918925850357815650906839757861563377977435872546920787969045518216532778227502729309880653162918303015367032767399694780497954218684407431283899238907782485766707177511507604071121719962575256680739253156419522158226411414899696631182966487106997184553869722165272587362552280199953056624183314040278274807398506502170199629986853970436629628448902685970392212243435447617706682149494414386093204370846652176470173272601001775847606675465665496003797785928607744766899025823070318334575887631729998006979792352976130437801138456967014510065967991143277327225175204637147003878355003000257722368560040320093230687553761783287577319971939818770428246755023733545576821249470042868995624765744792475254602384710890731308403299402095160590866785702118570814177305592678310970172449736185265481090410983663554019545124014701185633463084523829697724259419374156503306341711508437549279423997934592171252489384125825271036709821673820831147581714403931021548362265710699060813473635372362209157198625265111651362129206399534383086741347725947617329916613855459941649082423562760903483300464244758637178261260373897495429061921358624365419753459910437733044420226054477317752434821998359082126512827303604416327198316232387944958590757815573233626062418698303327073360845917616107712988926119214417487116090889167895263454788605852799868451213670371387052564271617242673075756142327665766318591209733843849188682990151697300928569755497410883358447013502860325856609639138353678784833429000310268501769675097885971205522999520557105009106706751828897171229258750376140742382812233442405190731919266380666930494444856720045573186294626276298582801878384031051470880426979753102962369384736832414862057731210693163627438925185486448943668259855882244067731885887902509221851817394673190738131653632064445268584844094032598783363216304516974339235599121982682361652517854642878505615209085228687918157169546799212987611876030954963639207781921910003170287462390606325713090935062705082739779967655998424271241657946981156817204330947791556536357777040180138518349092218957830393891477311313488632230068325056261194150669768399839831282178411566363653824569207942430042806474415089276117455668467975122756709485687094038771390818837927967892861821343567087514193243685421392936821747198644269058491267206801971947163393966164966109431805875115892071108781798403245870998420742758646361630497972738988941498814140680557762949720692374589770611810461783325733807992734094969007260308045963352644680234550911539808566484439949357203328583693235390969752364424867056850101703392818963341857447643449397630078881632442350655244607528602637511631029389646936029509840816794682745558947622224084397934075492860811856674527314180438195648128366269393554676827904192458280761293884819691435571785874961561732101028670709878947608255360341298092126980778891659599703382169790849274178866429502735513265645306037276178441054296841807503645081037067936473823706949510161934019395400176563732064376154483264533182983976320195209562871635339809524829494251920594128935575015990864562752772969462578635138345406257815941909177569517178879270089805377440405779316293019141233924810477367632307437947597517648716581551613842548947889312463714768321963731753664814768485064705480736857942366322477627211423372634011577251358804405661942201722989588176385118756495211370730351569371406963046531098173588144076103341365737102178451675290920711023214395195988756885748436065513068179706571134780640910019438339985664044343292346561112424723740127361380811558528132791119660854344716144155267718505154378967614390997756137684468054559594352519155412876323614858824483306948300368653531745525766694953764267431797648215814647046892719114465293529235551820303263007144324892936892936529939563541162633852148890510521173560809093845827766437245729710413152392116967402138100417747791927415564133809404352862371057147567086858344668902594825961378664124010334655651402672874429893433193765442258864711431524975930185116028866090275122991296226144406841826754596650463789755372336725975512971095721398434153215483064076973955944818118382570539368117477251980097306878636675450920810132254731710753516687669829059745367485765237194664477663021351603980856611349152420845528686248903946071534623591400098403008314254614942748692283800482845881757206315413059170479323793352991728682869549994097227830154280581083525458224040016095627610017403929650129568966653813129093187631783606264896461538113771126805492393428414911216944187483055408299953204576914995241835610744478977890538218911527811525515501239315889728343288739582065323232518603778839529457932696630053686973235822183035262385949490166185319115244740508634643087171502211706272091919188230490632744868629745886211456457228724605107856885737509918065002327390621021257592993622926639682345806331937392584007667908059002465590604780413423496369231220660105793394655664373573353748558870288649613432650026406373768181916134150529348200134912212972932193782746636574377368012335857856531331266290525827421976630142178138267451047682189553070446901367635344960112432778560933909016115966701197297641433148049578846027364465207074344374267037371035999277913718403857710786516894753517168703588293019093187327913405262368318758849557040698946062506642450510481209765530369394274483198341652030256022702949701304060107966020975673538289182168068509075670925912314390778067292325166526377382477314271002254953980452962901335961444008424236433867186735384554429254035183124135300341696726912398461261507044877138788646625579637538969969158918171429451062597338348580621448543522348661863866013404554586514211212235375984122560061999781303981718552382731041938707902477304649968164071518571776670524987541139296057072873211360031036332290643126328774305446265602459183466249773883826725741500440082276205597321290552348892816819255574542854155282793336438313299703828917586664300292052747062470374760196880764710092001213545689853503961327672020609001704703367044211642003759845466227198185746905425545630830605464422333320070205870320272713772905468696937471255235167317874153871438270918118089510761602654746391574319645182174110248765595665404437778511361496854625097967584217196017421840882328904129693669496952796111167288456446275858477305214917045104686168642871536780860830234618126848895740633399994639171242079941472441774499709383361072282857070363877974949607046741409685567140694869656089634350275661320743842952067113324810175212725565375934956535810752658029127006489909511876651763320863658829686719147335489819075123610108039107335343949201743605782654129175732655790984603097491046676310682126317916281640869039011429019967148217634856764880209747452508428764362342699552320767648885539817050039319111557439566414746781351761325236149825645210096506004270753135136610020792787949577862548739102422863109405113339662393331536890692328169630520209799899922421791357125256979686124004488648230718278345837095157156641484166093125962155513578630966327856939505719452676845229838098505706205304532831516943167826012588444657099442423949631890306181292007041063750229799083982586330788818498651383284805504169551211141657617463845764375934706197330061420508778312095345108628757524729746535590241548675170120887340420793854257808799387223480312225453316499477179630194652949571377970962900743137945020373878914616731326192041443395097046903172625794513707584693810700274454443433709241994216518856609410578007866583687162280265172857591054756050434573460719814649865229358477065347609314707837156875811673176721897227669278957844122447643474702237668841875716976742802531963869117104498138559207012971955596117167792280985717750022016457365398797239143461451497367177075646644823804114660938237255557273468028719442298347126824934111110785347293338263656132779398397703214856172292537911891014058174338955592461044389383088052050458769001571959693705837959845637473122750409802509773783868992271764279749560312931461367803758848244673870035924869520342824161850787095497559011063817091899806789506396509526299229729144338133482885839781481369007380411314488095899828406151068017702282644150287829442250543177294814906124525720980742511143530004826601286926696492233353847179009884285022231164129493586611538537426552979444655625368076538192579020646529706550246369796977709312355896677249998552903430157502841189113359136890249342162410925233574633838834004829500467407692269974794926317461525349922801683662035283479502850066575121596179634925857765793705849557360757193166540667270493927575378279351341521427341216104050037140244703025428167461455670366500531607888427205787076707420259224845238630514447220553374776757760670360058894343325621083864383160615893087185254473781012567786033446036562322812167154571613030244297755608730933539014043389756891107704111225494274144236053213200939930143937862478463096382802879517224594561631364155259224572341055377609570361861952756915512405926624330024987650350826050990705832041807573873518142344264419383538895248515224858206316351147304367552521438023429715068026657303621995363141522407715609554849392980587221272788988283733331641380114229811868638799875890521701776774040920132242069074535911426848433537045378908244768868928350793561859905250095943689492199828679426865026688132634161558613954500277206164246749387337843546032294697926987999310292376272327138703767727954334889419880433606216189736615560024345491533057204571275351107044787671430870797090630681851815096664603860464625734694243832470648942791048409347574114154533922063830880252179413174402105113895808565053133915885565940770844081775550041108735748947738290479456587813104135524342046950543734604792454047199034906656593872418042588846107088416981752531603653227687958812427898168894397140772720022775296893187082204139729325989456140294705878818473700526051188405493644249377648106418320839952198620307951258998831142387556229929537121058096079344319723559175361352340630933061668224623627549354953060159951466552765604551992467865052987273835488699364559989563138889733257510987559657282222152235490752621086209678483914509272656772037558869818414141563803065728324476790807828493913561245262529089079832115918483903361883713493516403327851927062658394987515182713002684052747964336900905306246149496167473841283321888747366726791523976658319964720643956735169556428138687272677336728665709974320453727920539187064921714098480139287908072819597816071860101606914295634795313005338477274233284140512861698303189611683359328820293532626064476523733176840341251329610284485818725608230348945918409063657674784929695764305769677619802499655135412402690080077010612727930095042601039605901763393253087752224972670474104583332452734715828048534539896214929083622917090854616860766668193548087331501458179285393675569083148768756035189388411588676263502599445968911614253404328395390241919671903569912865287688803345101652083804798425062968422062889184916789178837951796978581967811037935199290658963667543816109797985098682012560630081948700722255573085778125928819179131103627860204138106518960670315865201126236853043021775424579151260058910984180430876894063853936465614407916486564640665983885672760439002334845448728788943446592256162043113969655112462487694765786734240977653388679023576703828842160224868460468851959079099967025945299308031718266777248951806997142229186224313204718038729500034847312848045023631682755500407696686778695200303192390181855029973729799855232859303983955629808070787873917311666341198366103993886834472324264054691230682420931496509556006961876557329864972011893401305113750662482354080519852849926129492808638219394585520766795486013924267152625565577905754459030864607358693419130343141581639069673638929911793938704581707269352671494235287820756763786691443452459188185368667613052965281201161998052575599574955128867145248691493271409933369909398409492333458884197890787646787871233212617996354355014178846108792340574996723076736165769944021100174121322129100769687064774006574720720358122268042027318741735537696910776470463525663229050327052240869393990549134951854876632931000862060694639907429677411269451081988612949392826667432571652441835783402307755734634044459237075298895095399148318153596336394742012777823021714167552859504857992583833183770561525034654220787287722103302743791348830041312607563910156438482104361339485903894464625340165789116561919165256757254670176236254706155355938623169483852427796258626995262984478207819356125224827930966609332005762410362792878545768433316824191961527897825724921145243991444535132804652057878044655812975807757725860224901907926276640664648994937237687798330806743713865328211360419451452755903439512774373813124138911844642162225189679399932588294794303592708935920458432531759912248959258183864221055568092096575578906971339268481299063765459031133956582961426951422193509462352486709709167796192286893829914334709060842427890976960234291462947213486719581635492323473647872608033459886951279725722774558894842477814096853409178538694296796535381431166464478902917799596925830215022652185801913091850965515747557855160598337857002301748738292832162135587432190605415749585195684292093076842519722308369211744344052761648438703582146558884080402385174144780134809496544440656385508206008302839132390624589501791684821324644679024707604060947813685536373693279717029948900377966358800516489827049992071870693501832387411407109799026365544639891091601039033240242894923064130447150769505483588646222417736194391976176111032326610336391608218866062005563360393087428663557062752756392312989954715539398009741767577714567695807389822755530939360988697696280839586046199392589155302079526090365141593329491982107195053785948222013124335666379636125757245599343363390140789285772157894641592545723365472019789314981469009394287513586187137925984292871028536170860829317456201801462917417910121943199005382892713179602155329522241449734188626607899976142960460953839648114969955602619607353642904111045226038722825176490098830032241186936004817200629998905531510945030961403173966238017573908114398622589129101433410106405704816546537571825403588321779768541521292338672606193517268200319958754650261313883026401388529846775855760988562343350371233268417504288571304280283593067267925107237554473225383524806007154317595040238016948930298636557297677489284421787855850052099143996265246254495969100709807530799199866575759639041275300708771652928530869749246349523656614790086933440065614605453149490253798292619461132604729672452249860668502365544467818795439369087312208930507357794306958731778019396736992203780780186697705949995332705648987876879600591286973563562287764276996320977671928511560710088972237195056449341953771436547962420805871234629932051703363849945130112926970181655459259362750212352283376193701990331733632144897825591739656180639421036231698753661995169051885805756704640903742326749565179643673005658261017580632148174485202922617897752644253607938565263500454278414056417892457578777921000727139827121330821737072353648558938833717551912795328217918703060536204014640212369350489591496765386356233451360675535488911052518565403072692965406183000403337444038769164474786460985614634579706328954898414159060248881339406779135896024962506701060139977190726754606406949651808335116785365313957098195552313147540987088746197241087027224980650044812953722384457570187494757174774274881415232614414805040628557359817719936190875222067835876423706267436531850776170116665536317301939469762025713682428534482323057881720565201649383160513110225797315629126019188197422626036261122728475415732148153228895422514402695802321304976415762114327170906615736616013214338079197444904768175041229705776954562225650147189572967895966284615271076907207055279890227917289907192446719288438878151216981794508248771050699735442920873975372361845849875485748728004340944918848935881469292375173263664769559166551092553850791611422521145862977897865188152670687172325953328247709319140045776489251365342153513717250731324531364072838630207181081622456852902063906842769001143834190385328263594403570047627822350623864776213019674999883871907185718988333509552696371186942973831989561060583324240000756903315881995573900646579866964832220983544980178778583376304183269680240226681697575786339140065628233035868664529088104766118987133003632851004174662839136967880719087837828361823843897010180033035849762021774977422265109810807989111958014158557125465346365605286601605841646144341086718073009956222342953353567122172973383406911009321175419396408951436063989288655273725304013011090340897424333310759940417995682975774893597351650898979647556740935746619540830115899303496760376264894453991493848773056944451969037100275954986387531122856497631650714938129987941040870811397926977802700979389358038766912729447649933123709544799900397992256333072417299019866712216428352235455212500233536424668058525321316107685067347523828481321512700506475207786080150518481944080612700955356977433592903311892359665649973446755692393162048660073573799031152185858212068940820849967721477755577877815886214821319876008205167171174691483378128658644719894602457452442941226157949023790569982058185438870123806406029476689540498503280868490615738812077230463280546016825175753758215348714846165162769687957240441545541099166533460553129160994022078755490375987700095671633703519758545727398743659315157677030516390961727568428754905692893887754752216598969787881043565106738280686139001079190371962311127687458076132321720787957600725314832486156001040246606754658467575483410783146932670263647407268284646152083339790497376240473819539815798891723454916569537745507242622249227571919058837281330381352583635113352696292442195727173536095482249666289407466773767853455570839462187329317941779164990209562383354211660267187535038129417730236490858774325150125827245912589439515454268685896079859426754637072272069547119084773405191064908195442411907172545915684363624388366425525548044828668034567083998911421100810161947472995030806565196880298939867000849160674242610975907971453311361325895196862723059477936512088982344527048912176423121969791758718557484005040071324631846926525683241376714044150775418792770510984901596424706468373442972168436762230824052165000410048986594744075368436397537376780681312596297598511816093246160690256572377398798400430171564107346969797890565666126043967579798405679435535883127264658109521750809326974032622069609697065828270965863144836159823344731805783133703286441168823321017389116932616164601647640364189604480445965170622614495949386014300651072376929336552407574297006696583446981607072449068733731722778603458137873805720941528336269591942781350655732646068686739032705342350772502937940299669446819814544796324293519986278928514010741405078438406797444528298855731991196512950889651259603447858023890516105514867881102769387857389239155741277247099334934083277427490231102495387436061649789231712598421268855270974557791763626540327102150741263640847326640457975098050189031347292466509375454213798864306153480626194221202823037899303901745087558500271645807802895734821307223048280364141997647313508139665744955191588387213724690161624870497779216009503997998120612518337837078024564109119857754756727974534793071202834183493870579495458886365239606682981144478242097998215246969525045027149512669862068518023514348230465499457038984082606182793007721787962255676108623019906886153084329315748800181133062416539312062023942256453229530544799287573475408028381410654461298667928599690366506319325482450940069331330277332431576923250432792066424230456464280366663943920047756487128345001763357659924228317322581198372075031115521199639573917488239519531747317343544860579413135187954808366669829587860693079287237811175011471617101820089968044954974623742277433949902207217998191306120932697316597042527071177202229945746596693096445985318213136236688946281858965472155433194003869238003121113528403602829296321730141925553731621399894579795558301468033998360427163563694088902562344873389710418074039359106242244823447834918207356022707398588963772733432290211379730521748943898375361371125003019659678307638126283323098421080770523384810698509698191148554007251555387807567294447846359865618119410549751866096043076889500598809243805815373188229575092377338555115433847355792446337529175381857780111726516292655739426706455784222869778134394193660103700028362708267394205650547951672471313163854584752769618762309383533026452771759251942764765838590773579807372102127391135437045437406337837345837964920798559649944386006758933624086041708232429177889809638513972589064668431051851108387472499638952936912624348506945994800356465415382581669066563769774919329366632652543811477263319702858671004583746214198545978819321894404907803936930058568932248910588779547298030979973165011151928688528529490455835182373852287808829859233463549818059663318733113740229098208472861085622710985488722139798158457845458526899875979054417605467305727374339291722304656511735883143472902034784757798706416871955941061127082774443367088568147600732548098036118091242436276261909345540339567331663764544275459298843194401218596388674968514681247294260518538227677117934204026705842119723209107077327299432242620385828571724799809289958743075418136261279168622693323925853670340520387464998077644775642448672777971344677280106457453184951435570481729696533709782289983032090899793450414853065431013595151179770211703994741310934395332544602570663050588309717803452915999648564403181370120110995689654046545624342793668291319771559827698112986964514736678961260208955672962868729905952716821978230765536856443948136765902545594382718309924813936218330417156414048214091053629447308050059337730594489304344621905449613809485341631102614641261268886053300450526895280871011420542285800752263161188174319015670228402922703161240391680726094829780317783925008303288882836541503872220861384605705559360021526678515012881238465102760621761276133629802264055485223235352853129836846036539758867193648378240864201067721851495123233590692544026009404197492908594007637120183185512184239027003339917094138481458643506817139540699295693832725577641474065090479995653080541832725892026577339240188720026944649518335742898912553327578744327243794127830796474867807212743183335282430057405607082094681448130333071443442958394679206892007998193869346775158902203870851098736219091156096327452441279801356041301211006281687871883853989803372526918147254331821412526442822185419503840469214154502829097202932915996222505029059712773371107959441997754066028878044648470820232827480312818465130966281824378720498667136427948751492151582191237184948789664244778592460212939170858333495120955138145232002560191909345011331368314076305344031194016754443014151593317425464070296617199430167434970307768513436444612517413494179121579448330104967326245161615980565428160670878922559500639451860284168440241212548599617084260986245454279805714694674978485740220908826927714220567429425737605209546245972441291535733668487703228273927015763288733130345103471622664034637430844459171970170263770092726650683014568273051622303318409584189070443050311431266413947635218534322163746157993708001084542444953794186573328538333515114101893460101586201902838156445357987550231782307248328162842283383686152377902996971288286158852578116369710893077444267868690780701540876731411873586852056469114697367812717122065009535654871954010227189360285701212153167581105069645712354261708415581537726914322161420045203536314210541251928736439393235251179018524576843108748585247852966834637141930873033357194810091265232379511642359199046839292085240435017076506918193271158244580897384916452862507453357308341132983242245476320273622178640937212963940726607221220409949869007082320693501127169213467266009827910502933450123135704472111563271192089558188724100181837471779649795941732977403905187800147314029831229733668422519903680877361302832089180772958130950473144315857279186238375933822404770324768024459646035673649705520650414055059342942356833877538709285336676508883557532265376904131139443379461185732956939972356007797298966573901666354899696684385291323108568748898387684226438135255144356614257669241972362745470094689931354657085759904108962656303191404683191317974471524569924585566884099349354371822708910343442710680720294843184181478790085314083098665312536724482583965677857856111386649815425747748522325511488113721276342227803524829132906146407932660703202447696032036466581730987918526625237042417718005518659728445511865267494295501110448858578179500938936104822815248337153390403467032987628900378563978037662493934906257255161274110798221902859875511249202208233264372391913043410403336280325266630163456787694074235554315206077282859317695051372100970357159497396796746815031952408091591124814383271902465343970754771303839077936549792792811890749486495663798864631086478490976581635336717815825472203842079781607718571814703574800980357104071102408202527223014992172361537424891037869820728407312516084148400693369664982750210735722496561437230584733396018560965631659806088145246165359979312427705739702752940637689575764555210421617640452585744735005721687964981344585734623772256561102734079251671979276108323915753554370854721257260158932212946034092474554438847018134116611707434315707717645984089657065360092807795765857343498640968469199628701399763695299695293388161884993569370852263601784667049648106341805401043960009797707187459891079213502624686780508596227762242013991726075753722156107292417014778201654436187193965295556814143094515258495496259720478586855460016486734255442753566260107884053870100317467407942819063521498988756993549957521873475906543514736548316343075773565858928538522865016794225663014845680413490478163205038460800553234876091729256987973643358510511276567070775557989812977364091042902491882924256761117394236134735741176746895844758920684884186341402721440291155467734432977506295369949337624547968019759091877201648064590661578219766263671255165815227910927753818281064258032023564849702719843296673312708700747884228059576344315731588671739142415261502392104109156423650378138462071557451179327010664574962247059222782155927255509050659095232110533562412181593642966523721387660452600842876314628173651070395606029683454118892411693989769056104342355411091057581537817624502931919487641378663499327662090514428969730238279742948337128772485739347799860106287817413717221192613248005338201981437126014493908975636688419342000803415422667785391385290687676211948305482771693969720276577912128539141916480501924462056981642498168930059466988922268329882493184672966592586494236287116844563896129227934811764721812118724595951307914996530194861569836346039549736422048863126925488381230634680678890299377477897678720646951293817627326978935885117940629994124605967205018613155369936448919109498698602457553331988470716771461817376939468661597778348038393500282373141156166153287178007316552235897364741264944544394018148560699889760755666181717503616337547127909327758437146975037054774348466515215272091085127147448870967121322645751812625784596989995987499342249165725225210624155901641301202498234649295868203735130999809864205194536778838562632029123238945852497019075958223848138635055977388380552438198534944969554062426989170221459666632355362789834945551161662005895205397339057195903384507032407234006137463594307967732572337582634014596631747999579977807687002562654206893476696922142450805504321999198367729689425662906467247777753343112551858759853546620196230711194105513914409383515458553590500824055193692233416650402829197443977439729050544091607130569988607785048963466483772597618506187007599413711774438602025346029648535823629807718274423593280975219057192978738606225168873142938919018618150383133259689927907758185325496274235487514559230518316252876605762710109416945492216965072395049433135288255798428937189475031384960373060197898523495432573501181245111218476735180218948370831661352997413150384894587911121089458084240394422078155273273775064050933401066677451693389566324372932271864836608191163594795765409893280199404481580542394021042810789003036378356935627571893717439583978329974355524546012005123635902465552970106202556430451237267697460646660515980999525294792888128541623616729578175982444327691668966526716731701297466197037012383761827488478495453112035107922231976866257005143597403075081767020957351707397610168549591575592055458817989355569569796764270477826595122851181376881547147888952231610298791278800851545159306607239717163816540997655568721953888181515300800054083959813663181993734013001260098527328253175322687878340444488155163073056775653553881930659525563551022249991159973236835745641128699705187100519793651042397425244051045581464490437059631783099018188477742347802514150082066581957366708521650860372079376678178233858697517549737538163403967277864476608361035690606976913660042670137258265496902554053849141985217555131411191138119271998008847720611669965853934119260441870328351448625737610204584305541509764259128885726440298534367818709985948991429877473086898108729931946745143086591907581637756636121987335728739706717658871005807117216559762722804639394705048624197796433009239618028134563374969577664286180750833035524224748400102261858062425926509586469330068245779037296285412885243037379904997674489935859180040921937781173454807441967463865074972112210177254574188435057503367125839950732349410766088490318434997799871054472094356323148565687127200968732310740943700559203979193222772509792043611075802600592772977139382955233236799663498329143820736153557375915752545052296073174548377187623356126335542209356341718446216862065845207799794549829472294948614622660348645168701016512573903294787979315765949639249772811947919298905992086807059869773275625299296587010336539905237371605225903108166491901539517707620069674082510565052834806416188550041641873251970837162547123713156648151894950712399397774193942240905174036951671920613506259686418601237278312963264041083961077723479825918612029573766265435565590197753860352428209068649165742807918069596966235934536647535095934048968638922951229308047175710042044258861551982044474776153656177948895341134273979489233164485453796579123476149577580233141129838489009897544887449357073091587820636222519943453689053323112777620140452077169502201189450795350195347107663065938042315434669458543082875513155171565405654340568285775930210214028921573317924777326522593122770360424641512061866859775789659673508019732887167008697609179740527257124427384985897230454849463182389954831714251321084458701494965470058702853802226550759360438550336065001435904817704815323649190938751285008246173052410063518202809099074375367507975755967535767199996096855296522857299689314495648059870759914792419174398683847208393330451387152149693047497298963791609066416990913870803022260353894863468519359242740278769067697935645179963492338278869435275446251754636370583902562336071956579252105449819413945168186475272233700551384468914444889232169019967525183137258855193648467748873830053302002150177003639931033950289000091488504832473884211893840172967942071035085146900980036831779522996201528491102359765768655613868273980654858801823391896818256775662393844085401715981181502837353000850014778517400558971618630070190130143037101522859224693182227104428176063738787928141991066930636311964536219916978381550904845135757061140886364541449694753719153979786534471009666917309964349900421380616845258933420378132072607768740726442075196161967195859568911514207650276321633592130363752712799077171647267104097999711494577085261253098886075525288343869313059926517038640301551237511307824723378889890598646021144687618976266867536305216816127596801907128263305285482592666977927706246829223211401276204121937056926653332688459517662906054800613224396628234367584444250105060513384008059375084278897039833693975930695901601117751807758211343202997674353825726799534913576571098244451714806291015368165175843133470934773160255929451388834389636533009630340485169218432267053569458040178555095910304120621462407657801277974239537479182629524014359831011052928135505117152801464817052161923026954854684710164883528110843219508900120796966274046969579015270023882797978639117233615260293913225743407735193363249277467943690646792266853129925565448368116923079166849712621151294689163401992789084286543591822670565499654042223085807376579311216805439245333063389813370227393139618992835431362583874470470905731795136310461111276331490642625616928442164140357673225521853421313886011404784523766552951682275938226701064296904204309347245022034931797305437296678645270685070859216882579742551323681337191095395359293208189812676074604791213433968643746203032189813554196547042189259027486716398818423785172690023995770888942913153910660204910848831318264083918928505318592054609939262940997175283841558907766648007098485896953619435784507943017726654912943777047962980987295798926112754649497764570878132949181499889032283106844958567754247896431764341033800677063585602658654820954462601186903813961743992756369443402564978000131433781439341928065878944169544385203284724459835215230016059813409896828167391397074093024978000571248438729063956346908923057883927769441329346873672622657978461657073455666384316576914170708488880472424353362111345202286604941747877406915340235764828421213095153276475441507829946995853626139578201510496819269638751473218426076543028720113555412980666199000394967165251163472537141741655480420694543552761254309366434745663577458880633275919074505401832804090823321671450743158164788466664364164543286468277660892011470502095036434757442915611891483796482426349366315099657772645989891275352988159631583249495507166351513730902262607848887922553873176895271820841907960735707346580477318337657137881777565017325022754905818881894664438238190371440315298330689546577543103677642308815666519599924337984595258623540714617421438702224619191843392965722338492170649071009101994415780168554166202916890239105172512015578982118033370571982373095448498145657363393595392729532866279387276769541126210037331442213283187462905679059943807624509519980900413089957564114928230880452528378906860926043960916261574007785225747117317795674292512284824313604483204822493308013396305493921485466535806890182482470106008121569872927096500944926931711405767787217371208075556804947301458120859235891454313354889091275361828632629701233346608227147680171868629736678496352344918627861711915139257029203522075486705124450063508382875574189864115105261971062272920690201531299457135881007803813053047261858848983555433055518842543975600034068669138744394082170967242206187844153401229444240917567187454835966661218405569098293132727883152142786721609159961504698414501403502535001303967471273122324966164427992506405116670845981638778335920449097540340612694147111204125010998717885881416058718012724761055892860792335563542938474652827851243168671299245855927646439573347581283362309506498822105688330916635263412098233859799094358275455527377806531127816168191978150092641106476161454680401301611279535470022298848686417150573189337904445477400795860554236264340651690532556677045382224912237687637713022807872700563417915779900193405793392583235769065534862583895877244523852994304870309770491794523640894052963263777991073867433028870467343883435885187358123484976170507914267038510734491771305129117947831148799381699059957721143786778588363115950157884563143840565724811979603715810101006286349602078166733299858783300101558864159824662328908906376134903390275554066349393760947585104214454182763333879605331778724140476808829219046182541803829207856377153529004117377054022903770347787399109121503780317336718091099864512299520408674535523086829439490879919092314915518502156482889058279210036472972291803245977426924269815947101877042977868989653828413597334261838588404811305372774593888424509998254189441337272929649879892157405932448746936080788992133480912993580931320057492896125048122194487022917111749849294117253480950456290070883622919388580178826386387199720011366924231319758908651550880074674043541190383132402442201929746155312552237663268847020368117552845807486169476369614429473478610619220659258683517626961444828561476766231029677248037799778147059061103140457710298258195948155930635525370663314531684694938803373390714146088985752489113781657782120720868367332135830578709356770978614223169642780020157693792099360014027902896760103949201822914762235491650343533219998612310921784460531978814212225408876708115242000550622663554242871209592104584593774763367778396074673209919385012492899476977192196544363155518858245180394164977121927526355487945185041315625757736460490073059483934712514960415036895368191862543134242690752595390363170791300969383032804647081759317457445919367912633775304435804512068292793385211486078591688942270028942660874914501714614772303510263014047299020471051384092883861847690972928927128397886798139825285936096477057607306910990526838701797047092169855612342764177673395909970225928486573891371564910038687663821641203564821837801432586691911354233374567725011209048192473513732119264442679424335771075987393553212231160293230054070764979446882521492043894276892653881548656019351477693181689326407766799519714714319273632635595641900894221605649579966778085401313859674832258723601625144281517657090348944767752854966575432965016642091242751391550825881471328073908306251036831516647833773109873348100692281516881006882287278480398575438555114749401599443906058530289276400312007421254209138427466113965274875838752023385062858483707599505622216954923538515952509040237881779066618310698743271119203502460284726714422697659363602745813057149125261914317128651051268994321698786290470255471844197037324961460124150403779861436941813595806274443435738452465841432324773222411044740229502024926541722794269400579258724286504007548213818925331655445405310761964410461257482265910403095530874148650625954156460559949321388102573070107364234712023347875779045249813804956468326827760170760756858190977904532438854183917107632974174419160220378668389507389393120388147491662767690438742880447432267256058523836658825884694964983594735585906873238740073896090683094211210297079247289694828379836678731173655504047766897823384624323966124871853742846884567774236877321076666071489664322793091928476036194325916544160135632302766934748563089666816867101127648084767870666492150809368477601895383824024946565801992197548701102331408952181948848842399789772359239797354336154750780772410577832097535651979054261558550776649589781115935197111326673710961172638554349846399654838142028590199079890218194293507984647920967632143113873562298184414152995638831982803217517806610502639582591515167740578893974682394446144212828985421861118495665919383058342850375670818020106792615609447452086841268818656077168561805624397293158271550988264799117087439304919774952060794345969342577840162031961706456174377065901435589350276091037924433095941199948257873386943790571034417208609283162526393474062205937804087180727570736283736447455544847009032400188567519480033919317932516341008173024438154810238399949140640879829418792780096130238899848718632128096283499047922356159753230233437310776944172569244223800475282983021106780701234753504022047495195283066010619647391657354535494440652359860395853477538157860044840861424910655728548590054712092044092817577043351700911626072816259302992067309573247761976719639641530790688678570026059664557619457059248816230003084768420240689625709416973411799738903926899525482857121567315814535973622807022821542971237215287985143815616702461902402662983065014722047098834015635298533091085756255982930838120578168909976025730051233866483402223047461592224721181492505356035948713067490505001742523799769513073839452796861920216107216076276660063249206144282637594778109512311021794878644138244651465078532429852604157063224258469086223774676619944079417218917904726088098025632636526126742162160002221497409918246771541473067094537047258388582659924697584243830216342719081605889603384860256171581606360057189325374595917387041755488082160293879517716460284969506406464585188488623775960869785291419165166798436886271245403429471452941398903720786263699105467947306088574166981439882357339514273998159382198140791972078608007921093921330537387321131093592181382942568030480045567382080285003007669129067251929527606102733415651343178519193674103932996226325913538218530179705101106963861128944000238171979417150443038218804831230803981043114332412960630028657892204787605568973979217340271706360231539569684893519744195654913626123073760557937253734092327564337435976856661290774727154642430319353839181623594080297982544230214824436307545781156296039879412320388308178229124260462462599260137048265766697156297833229113749601072835195216509850388606635902848731614424111650069271060074682728981665856132431638469816680748982656287824127888599239554431932805875853445045657167319063619814253492286715511212519361009377812752608864953216964167550085568085393745470813798443237724956646179031567440379243709358110872628693211296783474890385581679811306536760455806254104960931156989709309940640498170723607764418590339851225992588265368779950094650283495218850138793605691522184080382750674419944001188394031069945718808021331684360973790097638593811568437099622844293016143091439093385845417063359336955296980729572403157839188458267641747737473072152114839823172525419161376848779745959233314580722388967043843129839432931810227792256723657321356643707576835703683521591185713211172397804116544053274988446637466952325903560693617614466288334819663869621148395697307281790572205131880460970672425826662465453141606380989841717985311480718862041151144367010245785222203818369524320825450309154584939638595679641416250918109648986133189147518339039475364889994350907362171390396453711714075048533638650824705111275413700750151244292515326720402854951616892299163638240043115945925882098830988767597279914445624202259067136213561297224796283406946229366739320787335606504797416961139550773794634320021097380046816266991638718903049702996748615708671109379269076581754074641138125730275444695759655218054941350302235020598825443161319574294260519612159084706242871099240690360297453041044290840668991997065950938504208129916409003688663662808492825275572839002862570080959198495890693433349456158279279963310642479745458319026757833058629667129831715873044690457169184215950164277469729520753053435648897551274460227475202958689999071589756762396212931984692280178628875436918014333324566258633406768850923034909911425796897075323390575486989377853761716914945170332729286386701971021124695295772872798013973401939623654923028950720485901082281012895851872557918278978788107008332548562904523530062346919350753421309243317901345094027007269921441265407328474719600035984907652115887226457084895412106940746153236510570963711822650685146892466881789925979036315001666531321645243804536453263035370891179144171327215805820060830877671875877644402154526167577371650022037077045698647303794031386828296245845023828675489640400317124347579581180912709077028383978547412312887674797555045192376110470781286249760451836515376089866477556539864634532275522359420384036689902925865018475910300834234214280377063129970867216587319277097383543635686802624277878173076846712609021692032168270223264732770026946301613681998172738791878994176569389112886925900936050690956734044777903405879947894480912476053698536905581402193392906248744055678872570704349339328539512327935044744736173049822781937428552340890448298874019247855347309169310789584787888743371756614940454491436585004155780926406236864973689214298727283292805150074016841227731325899576712682515785730001626543753794604362645451832215387968238247612006687921293747929392440026200312613049120456416026531917156066830432445246313402155687361273077743740112774319711866609759279002922056194006414200430324928547209497100548158031789159441948372088437504648040039906703689436573767784453950169043426305199610619343357451209088504700269873029824258388455448447068594277592602004817404355513248822859830070210042867750623471397701791361505995614944359551608065409716119043539845147946322949332211383135143256950085654758029567406145996210200506540460243341717810950771042043541180682143607564537227954869429220727673683723461454981350505955616900207108111768500799416915508430666879655846159886352556978931168361504614357754532795127840498910133846115210709550458027149823752259408101659449860898850720951951185664827000367698049848722546796230151888935122714520809780064378098492564784379259639994542937208182644970303786062722748407731416281838053802426493179832555825894937364352398142347143768280134869321039565018550297443626180292103312236757432773037446940192971117301462705887641968412032135832029718235475738292940682858718731086627779084416797119780759671735321181603248670773590437781960537773146633529596162590698473821098922498777339458558745579228863827546929276524273540233030201715316990396043606041650649114739114008388482859611485965991165627933058718494617416102271369201180562208927181221671274707367915247288071631857528437894353799165036028645597176713152897408225044095577291441232921951701869005935155051636976296687219418916094743592073357929150995897174686918543991153186447321626964436632328612347406965093528600931245497118790458773095189804093806960048973890623635917257224745338396928601649282885755643229415414996780817441551391670835542765244662286560351410101867203979091314331071834915484664874334114215911384367306380659578745008061315756465699134851661387105523135187372433964253889078349790374655944298258625641606991276368869097300476120101975364726996367844700904715818697496636679593323478617940969754687951076092309677397565397260120508447445252882973282465302211450147184360034093976139259459496580344703548051341013935628425832042297452204459513534379579887037237712373393652707323349263640010372143061372908190984842292849457940749246259784382764601649718115191759205459785629241831516271971050528138594175507723114789715060289330837277206809657390110769622287836149135927048423461682451407583490979654542347352576530559305730422112767983156386642030125495170909977998358565438332228145629316039677894793649740502107015321479963549908612157022083974414933561967441458921292756748750531122389370951106987591997405654311717312283242374803102743207656470565603356792947006883018561054315229965972409862636771500885913679780946187475443423354792571300284037639223350795106707632186834227821459642269439849295549270520949002198671576962277629057051429023741082936169015528325262396527457587986940525762854185878930543527458659258105651977850691251973551991743731379822936063319539576465690370618490975999607730155944658336545658648675001904891721916761728713037660564581495700946576534871116422106227260496082001814573482318590480389010686541415428478581491204332608890941973450125220955126411217871381267264435243568051874830579516251016930554786268168594353364576317075686808305012440982942262648055107803224075495579310317485016388588537041996516261004710444570963135440086282393484702397494441986167024690501119242219833780637372660074375371888168794790416920465574974857515376180188643045996294658370408144957419739558082590775274808952629674288792247947895326055853567049910664885703065514592043385949771578652533674596531885445487362163759042593254123251715904955996118888656347249881096127404104661642770550679642080778167640972506543871186179069808341732912381359701712252764089026312382392647986423362772663388629388496575380239322525752499043454946732258927265921218082872045389913769353459981416677834815344168248480695050614124739946404792644760411466769189325769692383657452966568281059751286632077479555054628093392925674218144199498245920355742036324065500751563391329660189052934591941828185044829203429674387683325608703332965947051691788362055195442688011315595362190398727218826011376788443185367246496592146855400103432109143432861569399003657406599511720369010742362761025269046697257995016368867915975334825399777655420321397653422688256558730547187028241246368464978928400706247871199910948472791785158657456019604846210520186853976587619281382610425451533596067069543099173986084579665942712169475143978825856809546176168331906393777834533186815206137869330275481127355284430090391752782184130347787746733455284796231163191140294830016042411561556438312190301488368824036367454942389623589092417341083300584392760879935758587195153169014603682159167838625452754826054723981068588381031839948344074195807335183651920460454357861255430788777735037758093286240628464333809517631009180655092128271607352514858579035906864507177491479061690835630080422399672807393475227081683804050007405988621425379976435239341798668210809148477091580452263469787939396410448028191593360292814285857387305093563215983633958177228359830543628327854709910646397415121393919801026973043127026015137100443253974304446628016236150716228386700310104929316359027268403452567042710501206358246536375144155282960100974461823634214448191155659386758976007708842653973927380088401444215210617891669323518200332612638241595299714762331762869873971531125112411724929807970993629043854020358278546398139348222697477443183164911337254746043802835797249144072716776653011061512811118955253445686360650633497559273214245473915573162867543618819518780461048816285533957218357807048831494636575111627819007165884945097970477663665849136547678800860485667763563496316874432588342301693818952893717368412641458085706601957791572595976253148761899800713027111208042568168432884623212575843669532508783166840415405004760264889632941045105834244298134291138801087516701716512303960783978670902588469807363203143099069203461366075402798789266714818699814714879241098720044487356444050386195433066837949536648725340781530769182718770043252871401726815978798465910471573673499826249808284556951227184519606052521037661605807536549894145429391793593866213068292904503759426348286166552224548117358321238867057073985455391422158526680190012072568401679116125850783099256985755827410839090470547740726070085346507920855579406584969102462347904042717651184863941929184695542763438342394556654031067690808373200033360365341661883728435950048427480457430435566648868711681862768505572050588526141860985929463599763169439797122185797928987591373986271438300138481067935963733797199718373151719195275872338349531164984971506037534454620070187990287999975293512876227114511166865774480307857621316594086063452861462038283056479186519236501786011427747119314875163579197410084847312173961451433228591236355364066724252726034271438309264488354346941883839176314655894895410825314714861713961975224149743877956670262231505061600260927007562500442229132756854506621748658361487201896458579936588417531266242081493645174448565485535882248620284134247905686291456294010107422956543723256649879207134925747077381891533829894472137862644220454437085630305722269679702870303274910847096971133468152534517096999448707621506798213855147102456232652898046085063635267328495109527249707198616060261022624200975013405580660421527732160647343062586624702222489064441139124418387008707608418200509298833696419950284772778759200459295721408574029824861232177557088382949073922918427231980193451724731989800407672481740556162795186947441976385933847682896691707972117969240975560263443427307840756009597084975018230219557866426065360187018132733757295704655884387862147657746995905217669194158206013911042889422777631279842077340171499860298998383183782109713001044515829335813806463445664231903805130752158301115042400040454782262026293056939476747265164822976116314269170203638515183181668365791235940157175011240660740863459548972867465623728749411040778393710312217620359331222879490773713341976131613067324055628022666545034709542342172027967303413439041653684842605682814087482296778174625721906002254989624379341025287913736015500843775743251135535030584901407407995464163774691809057320895735908306791529178330762313381861155642450876879978185620923292517256495850801235851539847278764882786081312738247209885924761827603764332395525920848370046985723913070017634154990028236455348565425657705322814677621302096617599041377908312809246395298479490355755550868347442678202537638867842972251962878856725900876468288481921643849979080546708896256514107570849680751650183830351327014504972797946317499161878048023231658157217655390379154654067239775430461704081025024886046590692157257292872964099201559451619775443703234776589147906641654292043606530977131880963615483186023794480756343704865166204538958907190538407306867363799663372672921709775518503884715413588355744038784581813875873642950474015285568270135489899737897689723384614178650317462023129545355689277168653621984262925153585459663912171189021572149471533277882351272583128101092479823148711860771610367859942387759572995259806286830975289934640843734472452381283203298619735185172785660620533164708267923085830006499667760230418220954157961105573338978254047292436033737216871705967193260343120575399582757538626380421646047572400140434504847910301787699340665837790972503913934896021401834860671095062739071343788161565582314533403991345506260849746473481299664599380663983206131941684448481713821200240768236930362134913360003995943027133551873089949543396281610597477697945228074709118400986788942402500717184214127321731509950223211006146397148759720287470606255703783398308026798453321358983356024535217494538768695423408118054376702659614341469339377855342813189059043090165232946433430819222544050745004854961050548058057261968087264226186369675027547801602201313809281822722039597076130282155484137852162787190395638450455989342463424633991607852883415666671431545161971230329125784521482332557845291339904965668900477805676744007803195264067499339809962750846771504065879618473781967397330104449559359224210877084025861662909821133999669546484240333877695075466017246836540929511572206821410300785689400998912901391047401546028883654662899164619989859451777410927603039239866207056255421806306653213634885074780457142182009037726668808553745640445120832920854843863253441677353407781061149312257711198854786359281769608597451366854340622434875311826152964415032544009117234865139542942036416980613209481653491528264992211482255796373280516995395441276042927832883217356334567530199282103495707227572264984282970382062291774346289939756864332536772072324026650718655518225409591166870832443726505572047394768321208563684084967073024594489638754607117279759764933556889609222774621909848025696147054419912994935618188668125613286080593628260460254314737219261240530040594197741354354531665058885288324152978901321507960135652637380252751319238724567996522057751814259871717478844678721607230814965072786901544062148007978327809624647113428469959824351081057569927284417854408352416675666399554717793574524058051999535884588998728351844992172211999599267449873296574546339360439317035234858652921419860131203150332302468433346641050479055277496637101481266344788765725069830097680529067635615483449097502847956644010985452404002042616094554839485085524215008116757742287999818220712852862595964583422664019865115543161054890528945516618144643011107260113221819804701661005561293372322561973914010508061706536222348178821787877533332787893710662270038663290544479730320214490382869877733257303156960401159662413644081259245639525186365540829871622592221340978764347694590498483639283086291408427521404851291048656313407155904702326473371032773575795838231791648545358956236984273261372031354763720800242133065526466370704083727375467115025322212181246620854876817757779649867542580240845658201799439039400027550349532590390187223646309424664913011101045122913827770219725208145010239054869814731419407813203628890353453977091957027633500206369669341585103022653731960225682450082839467229177865817114833440204395800503989129729705795924635014193680077798615576236901672139367568580702195520937488678020243175914300703139054195996281202298723324316050435042486443290180823112274625252158945032908654610564713175776067780108300375175998930737287828422585670221023857391632061689400631769855851292655820185815683955069829503604693579907418814194991195422524581311223155481858911632006044791021900574907602955883578504860633592106494258165476185750121871934073275905730995455311014679757974536602382320608025914673723685385863826337286146032192575669653793481004992398672320730224580951972235219762010386826423480126021685412784492490485710339772277178201167266825667884211524868494225775059810111806529546146316695997967681084641396263126550813972316868593377140487939237155133760720392343277826967825882702952377737555091704707090988828949355794809405269972018504169029146465191822772837539279823052410472111731519321736505123651547313166811934939342917165999123865785968442576087847493379328782093969454850861037922316748892346501428343185580096115055794860810375634019932790643243468625670176893780814836958820044288713495620695857160348380910742843032579684869708933402577214366757655756150587608898259489181346535473265096446093408721873102367936084324427036522870018913353215440281126143839327955299366640724685342924638296815727221421660758014670825119184811388067023536113535815519196028982984858379301020656276500865427410451702047720128177142685698788548982108453303332300246914822513955735158357248930451789232185323056433319836256953462014347222433866430761079730962003023290003725560844684775721150788523846999639460405845646100347275169599691826346597094333179871840481974159414196657874808385400853715300312842916325930752526454828629514369211496536633158567523032315809231577778165380393233408404826034920928535558316364421141955695657827948590656425139455686658896114530453323046116056846592070969550157549948644980274189636213074682119445077695298070470725968879405710114606329548020751746984791700500792095459646548768106019224151207133357694609738789295050513040769522722700724920756995004580294677298838398390695213598956765951453318383618175511658574202536584163728881377667621524967749665092345138411696296007796956234820800987598539907483588857660461498195623866205296357686371356202094271802927889555458414032076138493393416866615621845288110483903204242447093287606650644188825823122313458391091778233197582144811654531048253280091071560575901101109296224596145766120043484670568008254358066294684617001172415256069576994225750986778882034753311432491432282662437045358319764326996154820602781272305982215962288895985144765400555139772305730722469422367054350912145831517536909225128974840669707302582823318411530650828632192162920174915951979954029345351388156780957813466008654561098019715861840142681465584501768219354010361312032191414542872414241017781590669785592463093291756938915560547364316806242148108039671619322563704246153708562889609745607799722522087443289451108553050760304646959386815412261594843601227888068663515061663732505704513237348336957767296764911884162368556009852138776898071647923186913869280483731104987021252685403938375890318152999502221236411000341601053813593294471040970503830189690979324821650943739555995998078663687420223647279143514477913183581992636409894492952529274472019651939577829909208466262137261286954749580877715291400004721674725677564741085987903292489770818829756231281975405571025642510218103839062524842449319996843237280205993787252856812798197610960318146738394904074695140372421291417097622301126537886010940982941511953771078419710943295385827417061116519413714156200960899380259329830115798077073762937217063604525702551595119647109063180756462992897869424780570317438624361571383953656379881925155198792209735197753462907224044384586406304334375258795440614960154346511189895143730315743701517872555207859251561606249341536771924358612483056402900802825765097231593860219882403135633578364065430599626152721901000846426010196950960991829812936216222697716609621232944258050608296188517812954280679099426292464735265476664925318094162893085026111187333819777126548017552157173892901932362189993757925724848950407635869160812884527826656615407110160033053144279798809678570086200402413003000335285277798051218112678691083989209492129982214546281393659359532884560537695700434336992307065092990792874285497424386822086192036177568981816180599853416529445431820661800881587500044819450551635385809384766622824417172092503551509824734760076232298654357698553385410724136509964610926250802262322829387579411582796920615225190364542258845682293091818075774250117452113507841327733391442407099694470033332482120822556045006372276408316717292575018119059481229808189936015395154960752795838979781474353446637561417523490972299873005035432052573840924511149251196009918738031129144949990664762317703299109663342973338289900566702797566346412514058315864584603295905083579613816742752116565412135847644923456374471626810838500975062095861822896601933303757576013287909152558407030442855874973928020848550710017158163961090013804166033496744416753768076791633817690836453450513023304694118007428116574515339060344345013175140361672237507551643190301311748124204653757002967079247385721733308179605220299275268992940992102409027391239015879370460438063346911077839548208460660017289077624218898619477870692082185825702692871554115564474394523726881955157841449725346747158268447370544732451272688037799110270589996395828116990403903517479439108062465570350084537431371258124518658139743699181518960737924887834067463165813889905515759222206303950312201515597516045473462537154410420537881887601982510255946937962997585788951086740217659259753706553324733808982011395533480002237135180605163150349302532631410941295605946440088991340442508388009531402508804689359881997751489022035157062214667515158540039889910218255673903492585022038350111279110108890785075134702576503427671039928053565214051188395025329104087512840098959289177028885019751197211155580571592931336555174701377177544569614171847767646100486321849838005550523566437796617816299804461829238827464545151172750901518575844979485511934954128471857885769203120620007473023311667089250502540019255183601181968991377029904612194114193137925068200006700956819058168398321817617345695663726408540615483817237621820547852556970761029995555170198396950375990397253124440876517961072804972521745401472789035069135616363118796897643199085758457704792260887610528537096623605986414089531901211185591452953138988464378726610376412970561311036123951060325057764182891399023016148985640285233331646485768749926911479600141915551973358721538738435736143230465584991492421271154061280698672035560188448386124563250729622009269217974699744935467323644605416284713570142644360482890890957520425474485821608964367007436598721135851351475242458475251449395461120259416785292407386270242532267428007022697798051508907173519643312532813635917612127468403041105368252492386499486896608924374172249343252833047631900267565486111479102236473992675941364193294860186027679126760808346550284466724899727549593784499437789126070469045661792954338454490745301269051761682668801485372932161781052691800891398485229069837239783488574271955042402440158109424900112521587399719983553810774438196912568744869351406683316197672309382886698887139072649648922666816622324511024461785386512020056181912818744394017692277663002432566823628348052063350623608671847662943297066539625720476695924018550221746891253084890923420462447090769487076915922426515095287782924730514592637536697677362523168272921875784120552068432544354714112670592340391284138279621425699585740762964680294034834819469481289237538117458190517891147899513087987271388014669870783909915369690324307154604659715429381667531244978030053990195958581667653187625133766929207676643026699435602482898770743026200508773046421556412828594424718294434891594483962047690281049000289142375406816396118001158329512992292091818774947374014440820594159051653322562223153548718288586877922691129872542142847898764147776738751284183266321553669670060385943927582106138676218885722908516383895995451856102021712949019842276031892803308505348236859552911251580374286139094202898017658709740402619827424207343288336496151412893106122391279091492182055866967557993219937222586695901522436444270157277216234539180385951776244325325539594985633784202916683611372749658659532075653779887340182578774182675707612945595769869025112809611619838294571362409920751651178508205094738640580178364507878893628195164671663676235160731760697654349277998553432679971456949819646815191956445630275291280451833108465996496691464725201124584790286719080474290905652964806560601455181559250324731331161269294900842561649082390139103522168302866226583023803172056927130678054921932248228897053313331188547236270291793579041561354244054845137874280503141764520648599771259561694575985338073857810808812522506935444515038965112366292309273783918601712466713613783566256250672418009876241848726620580745852320506381460432292297407667595904466302290607520342993260100994021960397251460019257172039561783701655908245022800159665912664250282247348316621819259717903400222816895949472824964222028980267443254419685053390200644832829853202235367252985721261270034994695603911305092985461053056692684291532922985989248495866855642653171365324471490085249654854228667827491453404167613886837861134017153426850194177701413203128778435692959517153505953613775327177395419206257794180583851036434599322728949225086115359603164241524936783229261352001270455392457782517502343283863155883226197502681232934382672118758918129386263688309566802754928358978025509643798602051435454405406735400071666346721174171721519781615546575957489169128759944930138378785851019978885426907947075784086465411857667206651621169337453965152276660184047834223174384946637750458234502032347217230957395117775763946972361990360283579645613238264666536526649226222298923851494773612037215398654302158233211045826946525168847378148591041081994058883101303687700214831822177808686768279366830558300865065641273995656160247679044863677244590672763151353931352285458404675099839509640417259073839800325545724076793194956073110161193871551109428018854787374808258559788644612074723263920183771746199070216658977449695127860727211680326501347916720643850614352037295568119349525920454835958628566170137695799340422791268458975796261715170133887253780370525300324934751669986636099520241020172764972015858187173048227318361218988617261536086076451315683768247634684487849961313358801886063830884019801273550747463375841299932438266696456872685628100132518953138094618849365209154351990329537271177580735489098587105813710178243115973585458615103396035488673046879581089751674606864850746343122389607693916644165148726563028776073805016861981311906765767842319243401555403396622231762703403115645431208871044825484424864761914551821083386640420104574486029771000395682832690333959538296341843921277948318948657591412940751831020671192269616466846434233402109945544017001191919647304829655699600172502690930313946993553751902550262989887742556935362981594142561562274476031789693927386600128682461925394007675697757668260424506693695366374973003507845803441193989033909108734703117651563078607707022528120225584213234432308337119473356461432925777375293416712318448339728785301064990076262788693537359673151535240080235536813821411084131198214612413162786920708283750810077626350866749502475292057686548649187164844261914200081478275009494006041525119219741337258583672169704654439895937187288555845429364921341432444672665924752909667301455377191039294690498019336045349210455674315464733295252116609225866931050927005697393422980005608088258386372649879485906870076279397846996478651717136692497538800102492245821868338265683797322977392963238700273072209630436636986716419329645832484802480943100834062959533269457155170593880810523172928678649352989118197202358491997311180451732193473939145611056710682874065564840192795114424432795956452412277793410043669822383215604577749009947059587182129954456147048227012014572579798698178426904108028320573653603080864675834799602789074035403270043860150156862296559668527802465598297651538999685791344605244846341455948184554086046580321017382059475853325140935103075598552055138308256763149201130385262020482618504625188423486460146765334673335705291096853251992042587377145028718868336091839999510514146695293481838989948968899211392237045131924891427770428014873596249736849124900259283898286011172949319205877795932047212209272507335078705367046817539114423190459870697976738746957009908359036705956704181428214150008070142293208648453869056613127907669874761200183820068309288251340386283818533463810420845173772966609987446805672974412332112302143684355872945065205174679219156233034493557077793314679122043631256151098633395407912816578346517169203205925466220285301202030693195788918424401414249148619454870629449822929990824581496420053413459248918216211825293057946829677862441779891761920526713285487357183969253399231999385512907713865197135693118451324226842234383049261731553367510394572638696586143550761653096314798122444757446599125925890670967847101288180377062050207927168387470184181717960494302167492257449719025062158588493913194092076364479445405513046134437041016033453258979041576066023857381208375881155865025589744075320550427624343274791018221054844238538895059560710609555128711828837244400533797019069853937942695067293383019821853568806626258739643966560118274752158826417205273712010465528300660112396800410994091244605782454820690733507933558846476004754738201393711034595925271900595487011390092399218368082906296591934392033676110961062860261960459786206481705483175336051872282787904366654498687431058248441539194385383447523620580381562622597550177297789287812536124351431319281100775115364579488405064244405039573006598285130855854759044371550802259500577102826156140645635569439141757309679165445250306510839147761238419847153115684124644540503186835048453535266255090634471656871505276002775588534729325397289229033564566987712781913473186680963492292063846372182334860462722418878911829269012374019895578432869956589318044232706763840879736637774608287244441262608644811100984930846429234440028419424610777176434734570681168585983493101358527546484852378975570923028993148653695069200272850138142187937532416914763976582545764189964256609445199416670723387256154174603172655886507790973360969788005821426824765466542577097648957641477588198407515971519918879356548904765059676132138737040632598140043912794164298119631689180470713923862927086497155410412382934938930777639074776862031186443392392944233857465454008827433869450596984244284348958053334812177602599943353109215960818243197683527189349117205112852297056115417009097031333145850686321476161412912354093658397967536469308341693664006541429389116149457495252422831592206089660281950391238234555878448139533075671133432862929967029203602244032318784401973796869949935724325957626203588894832521915650825763870682262231333696174415438286032162474153182723891629436080692595357932752597016898014219426009857358380265697621854324104426329095884172164856938807997375693414421719710819219079225028666074237466789233400316266900030859590210923410419267334308016983012689308470210431528597074592699293834597854436687568418311596881691607772786963223024899686275957816617929150909061374693369300037366698358641001427602601383147787335935826392118231571495960082377722025399083646685277385768474689895920253562348294078277092089336605904918351289503345804175636612884578517951604240240970066459164495702384460100455620875037047761704422875069919962377763685077104633852414667731736686576223639245329181464436138293586785749149566558797513486999640097426871913095543068504027775358608687488041562674239765134411936881088651922674259539629702279237442471941310817317786970793328415105507298714507655086148791678657304836625102758482865081441927657287993728191414994231607213240552380184613953892114543771731110559389882390454174499065657159785378265301280070764187551875828149338332306446990586052509135760821479410381536379141268433582967304474036627553712674717677956207681289169250664874955484054415434294290655640266817101447260058263708896556990798070890827165529369494288659550432502575381739076167134921047052405359288720455877975682373973072390553539352999164480651741035148564573804567571140691624517420279063769360922651010128026235284353685792277683787393890775269456035458342848238073446489508885338622634554589041647533620939775702060819444603518621263513743869948517154990129341971246930760337259109769022502823107694233916441698091361991607375337963699754716047560976664208816207439285702458815153799576401976017974721333055274334286954643224751893497617367085592591374013339126746615159423659954493159075440231595344422443482905709721990949865636769953896706449722803002163983663130782205431356916884528493983104752231932302731210964097860582938069035179236213926984667402675407437839807048107840849459604694322234519772459784274206492508936879395692120441483656405032659597382157731251207800171053629455550185147134067308064375953607186995143565876401433424604729988100049892187184470857749106340928320947172536823071141610355470413494035334692540683637105303265794957710829487933717404824895104404744775256219506370087944411873285597123297857215683559358366569586046641386409537859039198301483802679258717978815778323317085909550079988933810876397429095480546050689273326697991345004735476105601704728361870022475858870501001015823247940179366194990917415755030655718698296561023485969423459376300164010736695758591829346305596173345037653077075194400589201909531540616348269955422201527396581804999887690744199538878878633726157775425884662125456384286168036136938640274140072219741858766390618769847456777370720698806225980731545653305391698934303295889509546207285555776965884918320068761654482431827146390572419418916724511417204131559319201774817135771084430421597033034729336193795042216146250145258768845911921136742523434641902551154194873281599725643914100559388625109537633769530375067342690450821282874676108828210067187672383853655273612995998474047338181267855977460836419380365708863415270059538529704870054690672334307620849771986148166899567074633325077743126830696078162020095966486420676617699522378283542460077856284470988373548627243849862571258352025189243624319700651480688405872372613770051126319311208898021140512221701626084299893784417485454782251552762129851333079861574846425838484234412663721446294173863604904150971702747849979163185320434051196282031029050719421170824258058505365949265616873118478175367497002524055093764904384382219279599358674193861828461099502410152844547846910959676603418636013469138449950221876144084200746541495460479701867340008460286489610928100035151496925115065289616011437904310797531664976644162747858249621491699886755866751910115746481282275554240529803723114515421292284122915841410343364249310274479513096446266866726433879393314037368788190431325534545953255911584462139392993633130713553611233958642879899289387718371416164486023862380608314894546174849747469660036222815515191248562100302969946126047366924008280054365858572815797138866668824007560931844423761129804132545627147109380443435560994928258021010509030148294215909358394997620379026304503425091796813624204657935356638567592483998730981116326327794813325385101392229687748968526621337937659543137119466099700290652548225607528783240697221295753437129438822116539573016429064167877912851836204727040535118773107120248991941166201061729469986970383341087633830245241845148692114927526829679215696644750255075482621159906375369772772166165542415623671805700009604996002901777759384891841148065683658220542993499372017802063261490299522842161915597224875671025717455985564796930180483400208224748276988946983245107886403530046766356768532927005457502269650579829707485056192636064487504151048744867787651888918806343012350551761689904502075277431900235247853327491557484375666175162532403894351842692953808491332539031126430464220356600430818017851930858630172791297359281976635057549065378838715728608960135952176907799311259582527786891302007692563862785288761785689590817199927547973125891212034141379460605162488203229977310676406763888763323225056452783428436325226338934751659737779536896799670456951773234943721268477124389769800453227413671986045144285097815481133689344409976363393280505985243748860481980185201693848874150520228933087566286727976810038907638519209950884192978330104423684905268304047071904242575030722926686195952141612255211478519941737981043501716368931827522577125648012382863145581768745320605821984211214087067795393856804555732550038679587006852460852030952211918106023019058633484426995130667822120005235329958885439542937388162895710238801237294563114397344199496125500259639796572387901078677484790597358536260085278967222750405867301625334704767122579140264185318525064612149106192386137434276774819071800096131847045703928995980381623942213797726870055191426450697785991492117778594537913124791028177485657126075805562531565749180990727554431627108876153001942673913570254744589434403232565995696847043721084738529934408306514982260614129505555445960586684781993154827358214784633324452360912276375081372670692961721682910173547953814483549552229300851506467458457573390481977696216629150216752556333537018853008942064494021969767801478704988774089830049215804209945045259876957257936364791917970544918235691138923195430783866758897577011362084791412286785937923559574741384417609245040654031539473159065334435726126028567261697967709280967005556366291518532466983641913670840382703482788551811770537585305267468452054214366536419107450321917140648070916715760700857136535038184922021233830608030680781079553143796120756938385858249692238985216124972447082070075279496410259665440917066134975279144926367164026640753321577199280170822418632099164842861509689906879503526978952511388848913167168330462663289044801595908012926377189897059740363307932409519705759501750709253061792013107484193402328438051222765751347463274291028444434734702617476326964544115720910232970900484221811315324371812828317525683717772593904663972918388129265492378961057735867132429874804066061754817120014019353993076888570430776870395336021917142227026794178113488635900454180329211119011507119732882230574709360845993001419968188488788163504591141978714645939257576445436914933775010940208608487407481642521410170808522076227855503190968915184647592828217821906660318390890549581113206427615691883544303344138090636175884933244649356099531225725797543972391300512158458649723416347341459688862765493104745212871812871711598518924094706020698149508165359231454618039210549955852993645400397283061629184904938067788505280670945972812353356910683907305532124685455971445003303074245996426738622415869288633201699732199309228740704639909369870432746080663086544859530749805297303843337428489228053595133786959663090137823759282406801382685783067793256152371241596412412798884898283829352774331556434404641166143095833173814599100231289132515679812310180463697771134099056031009944221683200738605982162172150406511475122546475349898558116648426885914520230828241127702474742787545195314090070089240863543776487186430101764008936888633482198966288317303188301185562885283399049412350765684633154870180211681957077270729968033440805368893555779182644457488502645835994354565670168348966250020275338002108133637540364298721417423420060147441900331960642641115365571131726168787408532455384755130815868923126884805672016637068030888369733573571097586246511345375993246627839573849982819555922783878248397540999912381352176520770683622191560302707040499814391527846651357020929324238272907903088974854356859117155301616583205043076236907213108737826608714387727933221006104716657852506437397780722325281224357990273851818098417346300615541441562752361774769080233517284756362107867132285133615018377491376639237691406490730111934727531915531815359926169642503852904277124453165312843321144178853490525826460436483979389218367600019321165603178048248759083428087671026479388345784261254149203852355142915247885926244955384303397819624758999248590111141951529071676911040877979166940705358491180920591806068392202260255350346379628745603053790758986436278866258826571453421484723640484100989746399196164578061842863754705720001086708775992430394943174808139497876895043946127441606959637340397574846721477006522471631025954994203376148555794610769646931711544055132849936438150209060891472535309770875714360995630952977903162288008148731099070727510228298820864904299630342901382644615736896900966599416665541775235532927833615078866630732709354082559477002355598053927950994439257559225354009070657661711985990233531116386967456791739146484069652622354592117866812425579808756674064093540386454902040845256206072043351200517950716760109528032610898193600555699634869071655406603701928337046486074928105409457621755931502078754112761478384793993635100606426329150613504768658857235258932059755772537540346008069150700681700204346171146126043809998637572882672037586254802264471003978717392736968085354480500735854801261468483953329778740803926855379153648719640659028303449771061681668610192009418594493368691315974244071541395214058813948161206386862880545590920669437672638409905807270453723415811635215443412410986602633496265146822536486235981628969340754926005830023040599372762166854431438188927425485319245488538752965606193620659000316676596262806387107001389225221582738873582657580965210352599748832569194245055284339884656818640962021287962672567333942562118025475280885078136653614359691609056996653699540367967344257466239899938074515136039438338729432773343911901947891839911936383331299011765580337961024616644075377638843038020574195698937378366122259322151961028338737795430676786060124300788725278688542760492404034176146041494489956283759536332722179648841077672485326409203469419540267192671629281716076722377280088027948320672377418173937305760183572913176127762923935514920365068872407231132517489385096122902791872493331520174845403270133092149595048488733223391108275784409703573133995414907457983023999612800579164842257798068127738927973760355613681204086610410096171281223868606147973722483813747254707499361647141069513342148239473840760218600227002797873253229871061967003918096128947800425053350559818110371963772575331418878702021842910739649355869092847382430280594977401741534252234045012033509817731968164891809581149047662999019215123095388332389032426543596576472209573533088684242201931463517453668838864865243566195027170023406065489970164759327449351308290107815623342589023824168748378610409829886672026937171509157060288855279309199247677625174198695982411399468512103845270341419868066347612467781697154681157804404353817530137191093682087013122292623080943124674495951989502296670849586946094560014057843473790840447026654792387124205144280536658316135888378312174367578019017040869740302903742477398541653027354639158018380996388513714003846307815185110722566967596052909991521378240869118284513938465350922197565354979007472587074679812283067473805907304548571602432350231727294095080641260134496731248241650050342536538441304460320296415596266681775694392450885846628403412416597784827507063181953717161659947075053289212084942000505658671136417209221642138979482821382753222081226655616750454535307750065221435018564055147109447165244608601884912152588638850694068112373440990718182280448762379234464338025275974025382602657047367038174642014293207240479347524469505717427948594233683176856949832154852825572259806934742558852319471441760497169667753785757401300553542284616708246448262032602518786081593128276502118164071757375093351780449263841106114027317539654816388658205029107793838306893512050109729031378424230233997796179776840311653926269496873110969908016440733629997669407575254910267483615681141920696816025044157197061063332405993474157927602611277383421116835205467184068600273212259612757856466420725128886054355884796286595138125432742165614469769213257409881798455280468391852089690932160073366602676521709187243667781989801636250962236517561612234225813627411409683036792096746509876928162691949125845721940547450005562487841201661736327805801086349865774688495855766738089138959465318563528187771426254503539876762483989302624837393325848867992977463621252077170856400849177978485266583601877211668157694048722871876943624055917317980197389533045064561604147823010188825472799098647576501173573010676541329382354547506422413126693245480225218861046238540882673537264495247935453109404821009702932483010369182461254929397133798849136238119113961940195578475575990711733129141959646491123866042959218693261391069137763848630702599765916732067902232703817526002337977543186128617383250950473750232969928184341159780409099626352468267634089953022776184985140650124463541067910569853400329482194398695474855350355460018606396026722838308140813438253919159855434251229521550795636449642750247567729623374560160660635244218297025830785549763397200038699121793270677008663435558053819766360778356684638344941955871798262871776126360556538614864212059458903724421196418552536882864392951957680542880757078966470763930701176690289289884925572925367565473961303319565666449116223225446731257230466803318314715127848404033716365452154832889315035862173600674548822787541656754597348823456884028177406249092245641485015771620594452204399040184154002201454187331021892018259822331349683036437767531771798692523172939410018414949069054676940352635230743954163165502895143709453669402759757337038328100651915570016818523679532830026818735232036080660941064307832974681063713975137239526870703686346112921635768478029688571959587565869536495431474604596936424455222580912748576499525301445849238910753801827723541926684165427115655495508127850176899622481441425680897849188170582844602362096780819538517062529650379691665846139789661431468088566912403942751446667750828525050870423623132171411333197633417272907697134121695251889761605664357315609766927039488874708910787859346367680698103301896870613524489371744222178966309594452075266715644939232562927918067722429965467142453322538912193413754133534452511871666089097031991969783358353880311691105289486916915269526934737474790687195800480343079816611285087663260112291817353121646306166886312559338183365074410972530095862901629495482431870742261163124408032674731939413468436638992478409561888284398648466421451252746478750601166767140020528171443343759265258547903078208723872657097343771942509767536485772310637808330234738557617630782729496879952005233809888007182125536869429799267223703828825893876517545796622178984094194813384865644090523674758110773040743199574789592326516024177271586102136601618720158510765631785944126170179151219207778947162206537705412221524576094221682478697268448080902822085976108640405721455543136171669930608437152879266884811572631279018704555137893236736812919749898309294059888540176943257207981587625054851997000926478326829055369091340055553195046703818731070492803390283284955761060510150476636782773113197281689052071083535626176184670113598164634689419470820575121486610563238277194457090443480721509679035445267714113529318956252415715493548629075769514281663444933720145044435718577966367648887824434712046540370269437764567958864843489387327078681296048672145706486914538364450044011314462140190890312494462569840061244052439263858359421042953325648761059589451343293122310604955447262611134953495571090296848315636946512867277805379675050669946865842500793173865054691860639378938072689646099464089711190327955990906748799404362404241997072649405357813702417839205420698367528741775517335086842703392392435947600177830435163557953102221209110837369425032342305174139680402742731316174525099419858212528816263792334542211665318883572293699176753854166412180259138979426698552751923598632665800540496966890888471313471208236535874637991614563589198595425145828426097538691475130533255898934747992795978988635247082259566848159745455498859907689560176085179668853715585130195618984373067384152391098493965689654901107377429510316870869067366044623565905077254866158484815246806596994076466681354456183043391897695638748967724473839388641795450367223194023769154909461831890233677408252350823385721265846775713253757045739930356301469585422986548416981157393041847486829869007083423696046066014308067365317352161561680770812300700889972252373504228498324163487156197721571448125373894402525575282531579215745051885849632871648168134871605092546425615260020245864284875544929390591707814185547430124674023399658872356984938809327121925085009222859650966009309262916468577718069863420627636760298310155728103503660696398345602958033990356882286451880608003730843509140250686224817274432117394355582737639791348476279204424711861076572724194247735193988293012199969184019673696310110640471997101601931392415548554652283578790744310249098614573117778372577928622240425151379930456323385965520453750336100827178418731386897501411083532989586493676674061919412339769901351724262648479546685136164433694212843865160517331887599464436135893619406452289633463757840758070703920647070157671770792119677235796973062450528090090225205552094982650430362075577779408826928931257220051126928495503559744501100491516664334923621853431493016299195763134795283086103636995815462264083530831737464082712115753086882510858550405518949092800948881868070381375516420006911072436493480558295829681692989538900329551822001970965652255330692603505097220723134555347408688056454279662719808230098009044530832253589464109948736315288818182044757196483174845645413522175704173451175327336488840085799079307066953199143265965519097497233743442920036545692991698076394058100894161441128116368260104647178151348347073049271533139112507480725145197606695528582160468611556537923406613655045432083342075875188687303959118456146027885839741664526965295719305983094736288587338401941529096011379038172976382705466276212105199839522101241724944359261738759946265579540935948347170203446537975462665247602328774167850191028961810139829372178489723257207446632401454643059172876779686072068607353853767986303089541107716218753796321105272601347652593068655680361128918892513113603717259870798686675683595118480982493550797473712601086128057117382241784640918706130719884114362744661133573550921118786699710009855928223905830184228238565051292219471430801055115243630259539211979044346414843562276418309264594100649885812021969175912848357005053340696081986266347137735512518613288095389981773805351570981545148129839057945416849711011439820453022387938689098845160653424830792842798513606024222178451333694063554273772261714561030052030688299091223113377360531883804828533684213962942476045155637014473335099624191436276625286130594937715846601266877187612660521177384441818015890969587373230672861042952066530530352565055890082390426893107489804358311441786038888644271708957983604782404153812571196566450356399977353624816600476824696762118954363046097151508848942274046556134591240696298622177631736668437573384363919052843472813965779677437015592948946283893306437241934892610544012933844278180565913997802811028353830661048380037191993190160248086528877423880559054073351756814215248328072377461976883439244393464958538328533411984832478219529197987599373097193674507807239558575334117923237586156225413162078733469634147474168370637188792833118501142220198852304402408087240572541004269741814617769844390662969137902938704831357015214089899358179856381166896202624159961306493857112754138820943962852322343859904726443876182027468774521451260794565030367247125033452704367805291812292914230111146671141679218992916615291641207750197757973667385497067204003728017226565090459234542704923611748234642342398721475987164658483906457137295196197955144514134791840553876244619150901559004428707699271248589676499426948652499878306869570420854369591342551878113126962680437074371075496724447790167431388776028677073434367431695115373268289521025486889853918301328781190214839659655352334601222340215365826387562762905793365393738923322054738902868734929748234607511312076144975064792188202318188044579707293388806715835837590864139424657131343623430440504189873674633264139526450525309220518924906058805677008797710407210056319368811383193042995832302859311020241600333994054545733994346061097171360291396144687198228476356504149262328894203223252009199784872854312766566889278875531073392485533328117461100534836699575395132616979077743405686022470699119902456041062821214629202945155881132487337656432751401120036026619815449551851069308881764186047132864968760272004404327983870562991656011872323065676230282002534832420859474535570540998198330156301843879980832548145854075035561245684581806701176771785195103314156049022200119346854737428544292370065886937704199423026971320871411234289622669890640579453173568533803372848386369751532472324841156731372097126172909286665301480680013468819395145644190651746444665457315472706778612337758462452525742948779238860768525071187065181615639383947012072410397657499431046175626650445748299211352797336800180297199409225664431969418342371697018986574950752892202712683981839633537376933051120657689051627427811569150762748000836319130534021855274773593431121248993717628533237110748509436067545399055761317581683316420603276103381740732798066830911340091066881320947936118630298856396618041998149805611675255586491726680972051201406224221228681091551862814175361787539995469079204576845340926024798906206166341828132249556477816631758071702623800862629074231050557437187828948723490798281660886125077396070678178905962432980930135181685337899654818485885207906389721984114705314157955973245354395157831101413401535046404393988742414439479796422777556535756700194830278715386088541126755423843123313439402536376899377369637852041908244577330212021002401345694355511824954163822802993823516144437656292124548413016677514609368950849702808535172768360547112999550585990652788525307665070762698578357129815837640417761693458349861181382158578923503896171569630638996526728073331520961042804737234721166602004577443878667689483506403772022358737825460165427543469750303832513471950028358922449680999634779503106190908937855873096853155807076270063174147000914397713350989882358362465113114703271683105118507918259533227686827505594919143183680011915239840179838987648629022708569572771147097290368158757191441664480637704876474924111414600204100012897444406774732801630843485774753950922678377766336715094426687743112949341086801785220269310515636796016620373605222797679345761731471896277259175776783198683767831840181346336861374489878843873877828413250852820558716701743083315501895200129408901901226089353436916116200982375006036822975339348694132337757108216709285926411407986931439196514256167349702729769944368096049598750683954170103651598392495141587678540428037390742804100484238380125407332452941969575398429051521992992543483635147410957209851621033415090314430327592458872881611842043683003828890337228909896719717674761562631293616533338929140194347643225098516561112062952224954059008194340435684767574546666295315960537817197947218146323956401529066364094076807127797680551317541643816288758350136748263059120397268214338520287291972088303079397773385077554370568830912492182947874225775652776667153907936830254313585036440701564113021823635248536369141334923520517304924036408947506327522168951139750698987708375211438673004087108608733876849597287058517037857207519516828712038858922797589371185540580223805754303195256067591023152948144522616538543672879615329095168119777514156484016445380553150949752559382646240430601061066992676143460683347533845962968317927807503071134239254474145077860686777445736272060430834411491086537513898656151082775221708854056691532658027908836617230157036001723819106302897437592041992321295843243102177434696729860311121795879736887598214232493683636644990593629998376898793019982871509444961697918062192374607218113886472910362181097904060737521801409644244044777868191500311854987480148614160370879976112299382092896097421643845897034640676542110874444137354347954481464354814258482915794583511641252310354789919558931218686477037544854379412815249254241941574350157905056143940892751896190671655622494861048577477758548598997151429576722991770393994108031722720091365648681082668565599897542807883176148514561526438226999396741258015306189261983926995936298218633976587952303304932984274208766547724369265670967809833253463717695068466181872872556339489952580735231889128040346013689174544278772043990191379010857359732009311217719382030719026468631100715569114628051239436817807437138586796696057666997688562779275385599944776581541530051955830450875444836140617484439522027480530550740214293659268129400663760966835891516533222921135252212328353863712429386499173931571654521916908067530928807659622347364429653902198064799617918556163448378494547649973742496868715554076620554772913416935647988440852015492285882456204394543127860741138448443016058814815139618991356717586723563614957167731747744804880926887914411765932794339798447685966048036622398498436798471239792391067254118970768083642216887808699861864280322536377701277907866646464803212733527539302226724367027106021649637848283461483574543718993047322513386473985123093045662834553707088435488057731775514785533845491592425442499477394219992938951705263422164189673866714120986279483630478393296472947607875783040105642312215084671343466883238043625149448402607095895935179073590389430380907728260159894751517124732706276893304328549237417239284262936201522985890641568351783064895548668191244711579751617386061903069996614590929193613845472960257897680355380530955661433935606618236661454850634849866675498685937089790199638250242369462205598774770115871558592174725998352968842380175035195211139395380339954128060772289815748250773532744979644792418848773487086003244449182448092499710151820264718344474571326134516466601289190567576917233605982965277054609072769288135403527766143438468199420608585168010047408819497763612526573924684351920438047372080598071111324282818264660105833545892815959456235375595062032578825865274282101444063957374268098858467494114772222564361202256420529271633182042331553386649943674340239061047883889443046329199181653609281481693731987836575401598619440206681158384606719880269453383191170718949160295084195354099239400819606807096350256167667376884256665510876603626415687365534857676833105900739568076371445792703622228721421211432817842009794075101899435130544514395712956731156494758504652803089863547435212180448586303245603655862278457448625541047821799436246837499896896869257475794459184483810282385701415215729236089320586227787418545533184185242423028107749086146925691221801934231997863700332031471784834667459711962247820648428639580036482537453237962667103189644079871040863087696154085831875334447226167400112534633948827700444147158942642109826544127821953832068015773896617513138970087361208714762582919690826607804819909934801525543455501248780855795439499250095666723488748956551853967162160974838532016972766593834279743356698526163473574078164452118803835221500887343308242864674376881195511148856188800292724007837602099936419951037428721449970458546232727440956186385199749453520422294550545404844484469150791570341061471627299610071713934242849177893385026317383098000038176431166016902737264422923756677823790411298416024753366188776567930971243753682963773071275647883600855508860330447104793212379365815040129842753275462202369616127245665749756685685605042265450142560935494231517492577647898846147880448231207022111986964075159544904826087229909849020345717015422440362567462816275203767044104848004677014919661853595735520167192889847293848304735353695151360295158684624894647857248481576634869156425705452920992798655364649882982004073491727557756737470248215902966001266690874655453306325336771267274768753942729994829600184976256016646427318450069633337722867211448060695273873799040650356197511189467022684366746618848468013149051904096413259491609704438050773587516393715311483575882765166361836393694699819156210323612612440970032195520946165144858423272784809058093614173137284814820079479561575487094694551693568182124254110831431169124328053944012089100894966324315793563698277028619399765370264699645718898757496441438953270410971304845936350370203219548596812239612733944647150236332041895382342592691319678146463440600154880251927494883012489035913525200468626201669671809958040851761365253979818819385407750361203851255054401575222582342187972529207698937281134234715969459174165777499833947892633504187676289836337494511201033736970315115701524882523952448359534779595404677061417369386951492765631465782964023899858830645524617753701423739354986554970569148055618620529837139612024334551600749494666833040235030778313061658842430075507315344319807162144619520047508430493327594215675807671685750066205401569240987407197034999046109254494428546431200525564256170418829801487081843183516835514366169158033277881379722003090662053101016770747999429107167240330729956991621654914235942329374363055678781982888856291757975775773957192851651543609038875770295344469765356448507545294440155832514093878508779184020775361139038787055357390651307987566712049626430800893966027354750326922128112838176158461088684441871703641333897944429854980870156975093323317785464807883924757147154907165972905772192084370556218147948628601036283609753230855342049941985764710777300881776880833752749372137989345077776043191763237543841865332553096827422562989721699144417359760503775819317253240430906188469081479747516649140317347506067506477187624759940518886386089298605746786720924922701108377509660605606398750045074591085862686469322138503638443192496817401645104031879980131026218816513247253339257081016794389042184751879344652096061031846965936253504189993932187761908598759854017186398735330632516725220689212999857872938457298217899408514441268873852817015201184529706501226255758078073299902159885969779556244041422650497826194435418851293339796444540835899988271981447490154211611253026917679897555720399693136544798355376068868287435250711756751753515470437499110336461272264256771240186587726857265905828589075827894877333889500160463774057470955364467465164231444097620030798180927537822518918269914751266540018078023279287222852288462011430092064669072173533473121733076578023570129771951136973932035197653860277535178898668545609253758025934156977057647127714933241580647969985112741931991179226473140993484321065130484608210416216209939268548347560946211687190271723321383108256403618571630321287207364626998388937516299701886471580449356504125028232468016803253583363306176996191446928324684607404166867301575766190547716437697789081884685472417685613140978718581632853603596610621301178011635704122282728541359594751808262392487442464901735345721572455357909510806310607677153401485837415948469274205056081981783176123149677898085408123249978632952610892378259037294688813422774996012703575151225965778485671812213731275548072602754699158327124052617026746725278429112455257784644123537238071044280167098710514794705286879379090897727509929250300832323809172611823300647990399442327165616469685526360373728371356903815816581489100476690923851754904782437598715454071183621966287753626914003059195088133619399840498685808401145826793989569683407726464930492371093673223889890051982825749107302509348160477398316088084138790487515094391740412121196468744459261393446923624440633374450963809918239474187411115278481477931201488546777451658242860394390650664351654988229894629323764765402253918514992105562656480934132831790522479970275657946157832466112517223167810692606919682410431653424060153358456841486155041835682386545040009323586246528012810590512636627526596140377038835615791022034586455338952444616965095526615350000327330476533938904433046467283215940058809092267626032986215537987015987648069095594452324686971860623932362716664205111144484934233833160926742805279569021103654794514253544970360473430749323680570728001174488346101921726876708081269310672578306862076846466216623516743726950984139167659980677488917715991406605542517464725519506963424103182960900906313697918606799231944384824574876078497508031587421076988336483107318161222301393318888769438145974649492305594113793611077145585172418147348087132954986525139023267110155434084273817054711375320098949736223065213673139436581319857819474636279364250752178385441094072016598234854784755766792180304312313504039343001849191189755853090862017749968931935403685102733462436828982421117412233639571776526408203184820920758514257475585962565526542661528815721454212907080717279964636712846219424975471838431521871465232798021676112795212542348636393877824971431014564349217896833594457886088853255547015134888469268563810484134126733189509219043598757451580052289243315059308989208656788225968715220334256724727536015226719968740257310039472938253405666744656460345439529198963309221092401663394546426368243905888169309260787956621957070761409420748330715537004561670801482033152687880686834399607859275262375651956003182293511328385581184860242272988532218176644886296716492360482183245521568330126235882472926371556519016877545289764399932995478157793315994828849550699938092465562415710730528715337087105789551469867537959332372844517892982632328310640077557937354970267359385854555272556133276688249516956050624507052688711509451576224943332492746218762053800841418703361150923635511358335920276400164806603632177315860425134898334298390314164068480132015393456311689281324683611138421893752537188120128069996633249306802445880387391642582848410703961480589528561121672543838851312865018794366913919668794122942347770182401002338178677337178958278810649774750125545551111307536694385101561203055896074285043178920108387247622665393430124008454415133355094242422068986484562267558924021813570259070984085021822128938909675617897490657246288306271305437702525496457922325191041702206071250032515931289477386286899577582394606958474182170367393580598715422135219340073874607313338902026986332363991255460540540713280624476479699892762880273098840708836740823210821477394272811550049685155679116820078980328853276017835104016274086519836567776450334247950702008017773309252876744773123604231701873289775990777108845453700515872292450019732676307469432748325860106956400016127123358176239660488037577655018277230083818989837032885426951766040910147421066658312343007445016524772291902869059587452399191471251530295700733045353666153263125131840255957623689957087619467059610358973518017015367519997484141681584450347929960762349180014419284278703008762960358732633376601222980791500713291087236390788625947924105585573700204695753564689491594670423036113066679833970194522758184960516478522092449456099182169746195104931273096843227765881931597493639838874761524283423831739415675143251307743521902763412356633080047375183989988890128227653360190309315831547072383344557274237388782007921397827368432674277526224181533199346555961969689812945302012174803766276406215459105292932569091935868966029565927230052290128253128350532882027924146402827821219365925821644918117378878547230926486317159711311172575455145073387199277296909916736168319684574040973655063732199546451451713725864976626236124466060918430783807529732839961712263578688669131562307212674767611928730733449919464010321597292109139300230996782860239134175566405821569068942685710142021796861217291123268723546969281212757700908224975024261731537534088484756979881332361243507210247793663571085426860250865094055277437374275321882839027076708562451207912265680137625570538641862861475286857364197978239740448691851830278945369809653578565962754552562414309774744957641492227497894039136644909962307972616095578541315996877011287607061112463082653265803731295913934433568329908543908977118042056101784949899813056999875869788549313833576353707309918965825906690186127598534266907909118677019877363046771301177204520276482975442448692019450424255383274152124278346191880101317684049986217039809228109624758423528708003250789872242503406791720758574592045976411052036223217312078214203123351570508684958631131290666309966442599432713394128723671214098494988470349614368317631834138530546271534178300213055900378292144762249774625297416091674169342538941181394287797250926915282755690228152079035384145411750797513229115375203824208860354988585450053076607088546910806971227104994188947857436594601541972622139903417767238999425091019972702776435280275661135362908757186997910500769996375341650444650776738752116747526525575319986988987773097480361450863301126627674880078572297451629291734883039401014823762264438329973170587698902187828554075519403611303417249598466668894610144848160748521248705847406690224797844269851253495947357190435050204451436502193970589904102796108362039187398606068701561675176556769948795987643824028099936631141993549726951483151489741777139248413425989673470373285416592747498062276307085305698705947957646977434408248031600768442975795938437323198914717440388277957780968133292872867241332933850167505514069490210162684940550214686996814453614803755747358503098088135766849321421294831183073522333376450647485039933045500338920714625844225739224432778487830551407605608285748501175925868441431294728571554757953751583700579583791945632454057415844973060432148579895521882961069726672241149322583303328565354443905146999236562659408349921586874670316243949599108143873829318142322594893789736264078549904015852822587211026909124749282538389164082672105185734948831029055871310660230736043996667204325012911809811232419902785250574731992359552133357057987602076572554739980534374650293222434418661811989897049547992063842480821578221686964256400740677794096945423669700575029880222781909518922070010965538295899370727536605855384050478244628086053079728895510569281722996939326166037041541200618517464739110608389984320206421657640617541738700714892186799271300212606296195597151795433681640854661573026395441580431058188275131328450249694569430485825839673903691847468468668185408852389929942358217226879161070647548876919397596843024397868934156122425203038626715378196048841617266863562869890779308455016659398340245292651420758107050991478130435060480513043828555221462438031754808033984317566881672618716660063359102382611190612284315653892079728220553977189129610750220123865248521656153416679038249742679507763978337510386810810446564531784097206123268972396283450714105656796109044990304003786793505179029929016858849460176614427936733284377257264879553287820014756871102861836045246913033974473179796920268490465122927799827696587047780109690559914974262761019423006169872437701947344267021295509818188536642790736162074776127174753112043631052154199189366582831855136519958454130169381435608440695741938102979794015688565277384232987409844501447938149072431373712182469919848446012583207091822361305781778152719497495660055737816712386987387340307417912523721292790255662876452620311805739841095998499223652893441319171468671778176004752051611642818493297796312617042938185797014823389545454215136516753894759567257628196538769877388073311423587007819835018509854566922903221013367498954540069133672729872195945110152648617152273797161060535636186810555222408794235224073690253006590192005592697171878262250977191862152696032134348488070601050766003367980213315613184238854089838502131512292380660351827564485336628875557396937485649143402253470622078461100364310591496564777764862712316830681559334382582313940433084400056606700276177020945196700214787117718524212831363725818819744643824578771702261373305997388863039916369564939854614535545978577800022725523600328317349843688470954314049518577553413564370089128284223810919281721371437061687633950229982107105580021454960923586386608363266563690290214664473427531065071795082670068342319999308779688167089795503122447128715329481977415716804472179501273233268672835518078854393775796901191022960587328712349231986130389489121506014533322297850928505515238557971342388784719317880262052132119792475534511881810554239527022475973326184851525783173693303144062413668291973682458669333676831143356375753389416592345227453356778778593112096784687796716466877707193930371937288580705874290764884001211992620368112908234111095767668566574816889299341451823552518250951338006177098745715240776483965338399783890922271439605649127218718521101220128641736532744968086918825071343248141214973730805914298071720240569599649715724845995453833726707336243625344246085895149182359879445278998756972043870560692757925070399841850513323047016152961562899475217779990575048520326561101147128001882463232823411878176457388720214487796533239461837814113510672511379439810578470986738800520576150202664096044247090886471012874770791839336267939804803088088418237605087522325246129837028062075383547644478075729061150925067728852898370783319735080842781445128424435788947151237922223051666329406913429933837718136896866870697250548214721795743975529881573247364289449217505554753740896205407040475678637656708477943939353503557280265732880867446885782821405834064875706285636920702638892950764654687090048832282751438813632837925995357286605356335780765448259021776225961539812275071156246588714671610568720800618143513713320450131070753670841287504108179899134045198812258599581819091942740471392408287627903178444613044369906274738456131411985722916915486303958531619650369415760158156323325245980227853667764288761414970180678107842031412868123226199536467755343642973911333242999532386917337247696986637896861552429934469215298339289559820164470766862233615121000615451894693252627825710617711884764267220294236427990533317803039357696448144545633200010859220350770635053740171700242440332474934863682694281894512886042498071796823726932490421193421869002127534108949710661098129192096678244200399808230353562783780442251709371105947343582680822270380830879245190244523210022283755207086459758602098587248112247879203330637117831246237344427824725263876610576108479500873863762664139855192731819124987151562850974334853977851193213568937292294587164452932196639006745655785218687691929275974862030506173600405739303864888669283429514559837682402015891824400114521156211736500371891663907093306173984588697530035815006612760642711250534557702954047611766528156174451803498330268630042297073321995629529039129378588667353247007963331279422237328068388614222067980375894362912206858621642154657796967361348616274685314422246479179058267968682005329559875637650574800067418140206929494894113767876073892796657832044420956039599408304720748644015482564044550182445141528066103681257657555098676692209085974144676865463243716682172483481881833460803530883828350320240981370855149252915189029926576083244664429976182940107567784533140890462610154761217818199837412537757894533353364086072647215448586936711951503818403998082748177312601395827712182534026941488210492407292700430873380758071681697775219820934352148412027774710821593960706050898651722908438174265475316093642420486445141906563196342622866296391775485208108176706543810876077817385152791275472047420470669885734293297385353657736458232761598336583616182713477316344606810366420644598620334165938076588890821497318785491029968895693764323715694611081120695031533465562834765873726914513360834481562377740776274987267930485312029598165751553566837631484885095263895214050748802438354230762740041326677868655820996713821102356559854996615256155428896902016762603928435197418067502991463760701923800118991811349500799705446066894062155929339274881678100906039598765482544669745145813333305611249578550445522396089428527010416597373810687034837992980879752894195621773311205730832514289133811751823522676496902455032750648350080199363817639250689962280194724623839454901762336842216587751296571452709200142659220191997136525842054895876460056040422197377818036223901206354316102666068761884742962310846265904666304159256005668670915875349074951946017365425225622916798172334129057892099177650019855539736696870582001267891106657926842047422426344600858254127032367706452324520955605918489966595034988027335676653671679859151420668967914153431069047191953431114492949833160497276477358796324834882508404964859389616914778926120646633157745498551553602585402722045876179832982977378719118011795876125036787257353209717158518322458555943236795535495759159806659699803064389249512311918223982881131144011833474998710560084359841089899674187694219387530823056097864791741043360361460436930231882220474137014245056456815036066625628565765574626338246450142387575093485910288348786875907244524250190420019370408020603074161064241992134507597074132204841952372389713944711753856665610780374553560031292230130848625642133412716915548639565448820799556016130501436920178535241708067276858142433764306889302356803829366337232233244854824318704315359682137965983018549613231329016852797354660058419625066588186366215319771793216126230756240875331327021529135685033066476164651912162783494978112715683417508597077395197945938830906080771530513683452913284419925694596510174148548900334003465243530199421853847756817966386498075053860910450834512086432872272359791676820283475093429272516897731170427673710660965634345346038358529114783535004255189406781284819807517885521354139770990596393115334259534866315738189085946907585059693443112824733949290671918480195573498188131251077476598374181709644725801113596581195871146039125468397487402570575569157666818960722522172592683161413559365932709047061990086734650273545051428151131157825571829173190630860764036100190791192181240242901563255732258579768804128695769193652431181026375852507439638119738446101379086875352304102160731534755559308179215508404623780958691135063349619342836726037945588377765719029729834895191646897193566770351244257019403843486194071009263233212359453151966731853665406840953374455697795211730948469729680316427459734762524630255059859753138161058429611260740614989693844217715217363289688283716290462912823431076741697534881155737904159746270320071495504406268622920558246137172400722355237912005722502331775058305033384615041616842099178014661985173200410140563001938868059624712358321194240349366784140405882069668045035930925182091762331511466003983153062475601193389869689029444236275576421096987707897814806087793689338655956364512491045458968198900827210709418930780826833942290047601884393980776238109716105169297650120114045297115085722542876209731599989736576261334033701209408111423502512508474413495294200060713291446608516885911691297789128350987626453620798941423848058775084134769173553489864365674812567082277634833052951822265326433047331302532511877501473393523476130212527669033926851936580965138426914750947832714098639475367683373554306408710708288487603128995280412036591465552517262214340784239550659242339107080200486658970385120918924747809755114375981614709337091095811173976991889160737152048226447814174083282720887292021610049634277253323871083868783403677352317216190998936434623119796875326820708201673726464885888840730634283184304732652956951632944350764846650981048997784543769640441872362246589853969838242003884449406853236946856666480437443221422060881117282941910045536793604564510078694375818919151678452093016933663304422497260787499565205178348758938756871621250065000799669635577726436209024658777908895679372282383283937929791362444438318919145455302990267830743522208571997351626901020818750515548743228776132408620182224136101620139996363722351678077530064926584288043304885533194047409883250737229238431501264831809194077291341880565839794282561396011685309830648380523346066694276864095013822404935315749571311136887617757813951436339651910754068322956556082074088442564753397523385505815544061755416109578966659122125877943569886438829975497504981264240195837565642930289245165517586494377571165427077392140453886707288007885172471428573612424989832339759478010253956814099865822259008202102298064254524865745482952671726738360662536532620409710720196472443351075305077221201501053461964646403852657852995406129688980252883989806139642869374341370124996869312693995812197741472599678721481470477585009337258735581897106938249367691170643127984985172544452507523335618533521653947113340714474005812138189630715930261271386525321371566359347938261918769142837967414864603992276645389302008059033798435526162125722079807068535397146835227683114658615185304803247363269897636458877803051962760876182040306204527896463174934685098211692833394734603991044713012740003568451345886089534295193199133506994251469639776938967893828605006112571983796236037118325350234023029576336263818224189322497241512382215878657660395114624141916778091682282911023250535146763813400236876544883295956692875128377455830826812102901115842862723080374607985705952210272169976332898391609534198616337537469533982529630463229643012273323494872731312435047611626354278692957442831433135660467356905431902838666999504947141907990352890907339346980481788935973006365863987276877212866483963032138554234358816956767674070562043311804387901064599084018376072944094635029484566235229050533390647944414776565059130911249826597703089172422463698735936464313910569625267844814888602430838981192372280946378023439716812405735363688166322492814196637184136386589081107073619996256112461020628322899658921814275437261509162895629335895822217113797258382065418272243941137680340479283379833693114358304276298728288074124398312794209110955033311693990968002376171938531453585890255402896827329247619620278368015065566721818425390516315597973319446621312932135078908749143628220450389834669348894511251223749379821336136573216712958703283131248219200691689644072447617941424410577175617799093926524891094372207471439975230063622924965920947682973704863173681481240554004910173408087564674002700359915193800573389399259585031433713018097484474540066763359592628346804551947934914795769303538472169053176973431357842755149489581941224062094327919771344989997370703142985988802102513971159074236827174051163863867404272595170556440163237567422876730851271855080704490325602048246222786660372337350425883541181324766253293679666480534322033680251205390977643787176153675526085400354468395515392617800844870809866252708397851626059412477694037022378247106213688730636753443298486406780648435850848395707068416233279458418953538223328653170309243924239061691601165719222206031493071038120193467373792737955643124664767240374841476466397309435747857827065169083235818446156314459860073961337727786347261424242651566337974249831240980448820752806018341686774090891203001537131305399316817977495520557336242590210169891987552393462186639187819715118456176067843402758377457982235728274423980313146860986935535527595456374121380168297209396303113337620875154424154404155524153908911214688451509395123106525965398819151606771497385607323901024316778007526279440131824658120876859823657988825108373389359400686699554567013882904312438150964075508422927249025546947044692471613772241742186588848260918170034687138517543410976099951503752978519864641428487886229914170250476446008255168622929520081118529571502726213850830017327978655209578214610413426789989324176930642958801102193016456524622337917673608344756639479935720528477584132448610548813524620736835455441522161563603273883643449294309971138321291758391041630958254204152962075556350411056151518660600454550890774495457306484121254111893930736900249686937240361892420128403263698014576036917146342240888609020263021397919797790844539767526796718344642208508248706701762209082008551039182248294575915748159460612118298184058285856055531014906353252485379744386411535429467859692927130066672047378580271229126985826844267729046515087531407912326121362472979335355813944546395873670919602275879813185968591186786143649844751774926998080690676022456369353667329676917379383258904373820243601705050297858789916000542978500839757365454873537741968994667632067671579554085312455660676184203069485614459348858678479146227659251630321886887958362488127997736590163472061388830463771638795867647029702867701468422600643362242974950928843193390332901499830949270551875928428642773421458268515190437268908579695104729909068168207677244647951815194815294012465036825294348366294302966404041953500855620534070730490914317730665048813313565584434964732520498358055851541807115609476275301482528612128306823772953982223837121022571006027904894402623655819846474545116357958817722375802914228670243728586756496963534569406802973368353971406221323741394643323094072618424385627164419021709814687229596420252756180142835349485330231844495903847863045406844400531968836339913554306926466346279884578557394367840774815810313083684571170948522857646093859511515302800438452271669498305127752018796381578966372792747752366230412734699553856139875944409151891322481233456553328576878315784667386255735296049072764708808134156306754220770906748749018433917411428406898759304745674115379366795482430987569312964809916635076288772781962369493317445902544184016468658563419106376181069052658203970886570435548989583154755718410169981909586893684977387316698890262310963407489218864961990980800634807923112777161352893930346498440464804665638999760984400680244603955164612890378680919242778803175012798753642133268035895458579561902551576267701084138709228438687636489235269997114017561567168639679130788356423897962576086289338330810968336715915218393318988068986063555997455730000729436208366133493108436890152013193601955273018838200750520248944919185485891560906170110440971935787371356699121758021633512626718327061748497964994965807574534085888932700891229041358770572981804084193664780369668103239487941476987440133380713934569436860260017027051443776176051901404265177859470545279028018142077896804568221772424885346216300008986395473549112365943039770597090784750784085629022807583389223496942258115096873160627906976415527511375709419364342087133117923433609280723564873953665544246800346100663651277907138679751441263285962019573668817460282680247168643817429201323396763490446661249583514366464450478334320498319704463758217345979873597674749746696011023426923184371595311485497573475085365765896930816003118778139529051724885046433233498318482841140616267179199784628537851293732983604679028321911095089343087769379883347923317531894132235685963370110142226044280512358562705722996773742622066599803734317662549776660741881160865955713201882933672518151086276972852086136506673341675194969816211642217720829138734499330710101867501789904173216772982754630336853228913692918494727394338980376718821099707439311361755552500858354729043279478916992170646812091407124903170906105171123552895527243963932704778332902788657319612164851647872265272526236517478635006851099696842890599886883041160671362399782039447134434683815592248042857570317711934344790281858010876951854150447222336814551413307201111597523013427048908769873344218557722147114986890202255073130783966504479269924103129498456169428601650269098852829797402285428163082826501084549008038177717966665936184499680287899660993651726497879121711567699546297686994340937759940471489938488065991459005550337143265046548353640765294798349662977273451009255073377940421584202315752389973068993443104841189391285573541056089264415775973935543945768769706516073734369002781219601481068634320681771061659863287199955292546584284032349159212263899049724274310276650336074355422468846508968302314288493033291999273465389774378513326424010967664048023027294973763013793379262348822769846101760556213584049232629464870776312824821871332440267528970410049141756679436598005618444423825369036759294529470624483590452193824241222506824973372861743756918425135977601788534066572694101440913526232564314077671834752017103652328544379760616167555902940205335208654511606884160126528189061582160899450834776582064168624515844944908324432573995545389250767265736882127731387347093167856523257840774996232698497415998872483890786538103062761488048710793694144024714860582054613190338187737197535445339838421174749620908219152908759659380473506842808651951512154467828127789947609853054092109588694980383112749922155071507634288435512199913980893116893155816730436275149304637135517077168709519950544649413352052827834965564916447258449812455678968286117940348478821072239231919844707262140647006352740307486578724344629534945375383816127110662369712226222781035148465965534527067358457960215323930436878042509412325189940817449350151494317317753500700692329143540980228968062206744280896020143829779254773423219613998483139948266443629859015005863573291405225890376000532783971981722999110265715136889233772530194036951138565472734237780145460662391792227515602393473251190491640675741335179928776522783572350114018009554295394614329036682819500357539943451627910854766185200285453655969801901512790112963666200386489584034851232862087170150010534480857294150009654551340009434498601773552354082290111931983340052737058911047677968949056038508630980092084648665106789294477658356479967473346960308926494873480123193035669452299143278730285932849599475036393235590286262842157358420320114395013776007958323934363525286202046678853321222299875115880500464648997867381282622547393272120676310893790762538839015666846977886540724782054448993202933635052174946049388938938411886719630669420773511436549008023990415943620334586243690689821005369942236699120867041031170201878904278263447016158319001143759566256005720610702136041046639691081441076431204963110450081527367014099087209943922735107124334433525605229438119501878935257806408394638750621460118069391286032036722086972436681842502865505526115287443296735726992352305273208502776071456018283259424172072105842218909122478062606147839423462532837566344248099830791138409379796582969998429681357753815994010632226702509106743421514418555449198763059840942629797869592915078218648388256988625991610536858492467373329778536185276203872835816194504671713723945788284794081311399316798531552464737775045457368058805366480624750776804183499994201364080506263758322284719867780449377292957467055846031169025545394481211142091503912896413686588414753373204610480565352545642025285837939148255123341666774853273388205202753318298522956545453226536684037049891221658414457702242621889457394912902581432151325219578377994124763511519273530674174142262543257259511828996837820409413149982995085285688617996488013659267594230963162045366423903592405188917391439657633258947021341968126966551236495858838038119992460342829185942043515850520663136777659597419806442227053037715119694554168643222847256816100086598667248219617117204821130932009334383264928160505623437218934706496246253181673867896614122750390418641553376594981286397358736880743236761692674237365589805057169627063933441176323470327304359202565040611283833815445064204573434204984016213602673016045385014565749126550462594274423004496848991965682626579907096415887184650818084534624500657639048421788496882025452844498829208147344548652168953050012433890045641667371242585983676055857454298569539772512733478234404627233072796729068513927195827124940794516219106526974933307260688688636047516353488463524028253223370078693216781535334580757824839929550141400995039970313599072185205709714203127840522695384872859797658054030415288823282685376984563804735502782493409463257612529310069406122379197366129065728030654723347067638867798635335979177931119196287548905242281319078235937693029536684840217348767212183820233492116872013143316498825425243653940610560919458993529180372067017411722414804461224738283833705588030149137338564246732472262660164429914896149179063414194710722517256627227743509895856100067917001018264532532268924032363952855969463969188875059685688277830802005051414700574988790023626719474639553628777988248923939603217056086811501996926116697976159859509440144642238822734897420246952363225350278221483676964721234229616219741744677312577109266679040067319005423203253578455833563960829466089150376952628475018817375021022753002947364401454192739880710156160800754867208171805241327721584805752453859024809198677136438338097718837927727108292323123923897319223580425936838315887349694521827339082974841777876579991422865148921587665597526011565323364627108733780587546302922505902739122562078908073831763584350782416420244318625612867007118426407707273055942413048153170075297576479871997498648079251211450679063100403935176987167770050127085803743365696147408424273479241352651685558367766014670076262209538107632973312711321896305143824747433155460824531142009544008666718565576599701848750774804300410135932409300843921446655629742048787141114559082157228501561952452805289469666199618802372393297239466048205654394787403621547767589606983393966914771470800560993361156725812126206704687266420189252912868082019195643175655085536621957181857180626824804889435755895231907059627175299317848302672374717222459749331051431214439862226575971392910421826436983703904465389843443949738481732345325653104537918833219149291701861708135202665281417879830112893675521758916968711447774005996688606907994810923552581622668479748232628953370719226872500645505374854077254353983169961680013993751002519947954694214428818399615138015932651298345304280416384390687723099323461348478959974751220122340183547611746140283764357274794849620580866733770339663202002583484763735358321766714716201947146586917595723214265837395747087616718291589745728987235611685998611351742507558063888552165216937084207612468912036170917029159984444865118950982628778586484326599503457024773624016102909497364407265145781477176002475547377432602438108929908339733451588647975571917973365849783015497063932436797307229604558704449291631813806134111352371967906394419117126646721959571806977092512378992714353658821694055211704007197483678431889204860048203201597630299154963047006144161238653824350014806662251512526405910537105577696159164207578134582444324576081368090216283277391307099731105112122363327075044534199933008338473111082143913245062902042969210647070856568876924892459170616673492656113313453972374957740631448044830679353486852122478543936583230392888738242144180996914998281475206095961557973479470351755887690891742598851100518013662771798554361827643435244290376847901338477681549877844048709313694907141385242757963731544283358408598975628436616616128199188356803794875529300748152856006222519954037721631238920732077242897320790895092502095207535394999074112760695777888136629747592596772621731832276825038749737201867094834098513514280794235981206502515402662465027701528772796298501971034455284601689390990849568429980265714167963559440462445268173000416039577047249273317411346230678048440803586152803810139109845669194788901957262599979345183063579953239454107091498437379366646455025169068537656407108992712248242835169968557570733913335816442148256073842434079987300984544726440279738061300797374506524896979853555412169448943897482849682533809779027720457282511421054312173819191881276747649266852545199666724729769603380593595862824657320025318223738949090880291874590036256183454568958085414885760182632826950587262788132371496669614345139043022939351185838789690797090525692667033192428450126528195409418064104054790064589982150620110269925083171967464064861229434188224402838594368547366932216796005244007972616018203324252309279663568104424446084345574159004195985427387852680662277573309462924712844292334943261177812897660783798656340080196845586196307410238129076691632257875993124856664816228915513403676659935555973737286871680621192660654138435551599318968887641243344312403156193205701617022150142281647208589974344187725525519089474795783430933747537357259485438896672268333565698582578521562572171326410008087967435980567672692044432262925572530323081173036000203021778122505843670641548159704022268960953394119526870806169454829171615469916054693946323432190127786144599075964780866388904781046434030622835029695839505830990460020519560509550459063963683464519656893452240654117824412901661085468011579060244690702166645810401012303398489595485977907206949841172858466021194300387185827229757738094679351455874177431100452733237623818361146534422687452748979306590957075174466632038805328608652770417750152123863544351795611464710812865298765776220126420325444522564572005968393412569701809324056568336062966675125822751111349604469959319006021262136147733775995573522342465562481416289201134903130784364944901727010487488397450292263557429293992452625811056118948354980982591042806791089688245116446102901844555302670762826975283605627595010943103873329556212767308174046636198819645404283852804322139695525024589090887497058996671151442157042128502070988892852251264818367109494546523628345622671756360432802391651016019518205480483149356443151911966119734056196543438348313949735510252320128141243861522241067594197986252648586126953733774845950386810639867584327125382567553023859360553229015895829306968730867935267760678758511850418547213032343193162532529637616382268121886249229394531599519108573050278120709654989189362789007980922352188293331979998679387359354088590941248621273363364087672675135552416432136310891882743415745053999647443464055692676015207306217342078759924081122400727047283913290885873839836309473691805064732332649554267857959726930483392484937083484379185849338639030231791624524755289525896817195639933414567267155068888586156084331712300992151581164897831643686984441166484893985421318061943178863376298822253932196133197346192624545796176473246154577135859548473177149586629519375352471569473419943041526686054028256069812225159575315702965180447142891741839210006132387754329051890610786958430844108366972192714938442773944935893505483730522541425222709080536586091081682410082535171175827081180499211472704395978013142869747996812164320426360714881488578860222034767024968769793534153576694871477946831826968117310401409297801623037081598874287325160112030479594450895192743769288352211978472874449936161642279655835047823556522479463258795187375046009612555441974873331542833503864254004114102329568703302306727146726357887032394563983026010132205065807368547604200267976395225405844033299664681258690454019003812240594107972844033134620288947750209621337450257239379131321973621563330863215395691870569823099054483787206830320075689084341584772002312787815404353994141170854324513440181741816028737649664547263308918004822256723528339051255751771737901077210182226848542576357713362262918075044542078262146534480270125277217231381523194111535898390327618353037291784121627584336939681192981877444040166298110787583468738371842464277837870267948852850245117515513081842302666828128114074170207146516075008375309178530414632992966681377994409632928565457176691471388236767010018651310956099061640262951553996540890190185964100422398353135215600171799928150816899901800817692688493649692595631772433610666794390800841871458391381466968758556340998692095393951254940734336845367349588845994173552273413472384512548726488499096911555652068983862540108778502976475853330818969546242062772170680206346663019098013930285604186314113972636874371667913341414662769808765242849694676850178273552136614173439502751762211832684941516455537605608991302959705388442793544690209075760748569181435762781857668672170091252310341723205809632060859362426430831726711573026374699688250829501066806830078362609309061810941408166481186268148180510807881279115719355039643603156161046625776175158176440611211171693143937699069583208437992920540405245548140797378251952180260765584807582447116712651741197575266913115815397714118648105441398388151205369679334612364664869372466128327128356303417831564593905578237509729799983360369090790403372690847610615961290623771072064204092565588681407697619259775379979027183484578672327783166074188108586000577724959023554836822687563738974017661251073668671048308638520128833669282005501966855324205122187687565500671943651834089042616871268433927663478632154347655964965290437000915721310029904315667497378597570761271553344725561461055049547703268491694063673025348041242303609549612232568374590080508130446831557336551380199219028579036300368509948587034037563310612389155556455106505587623622473444232239387725586902436455097960647567800227299405454730226232159128356956131700062031419229692536718471816820991043232900958101689623692543172087928056763068944012822887112517841641607790983521566840282710019125662749941115094573614547668783116490191865855159635400094917737945137854311987674320961309290829312707903216490653928488951913812274284864708907815169097191469810096657144991842657516039867552621288964015582297595434712191585807969592811163174216680752899440826709510392652764089706958207184990183587765237217221520482829901002810345858791320216909410882380010350705676363974068529066601029450181217366626676112144104356094117718813797226889175600879711659354586043809580937938474528144384815342460960545161957212313911772963032264055523003729553176764763526380710577014077926719380268866143945050299851502986766547448607551414011633842813087505862515506539236000624562388986116680509547561155974879200535028447788005223043974194601527033921711968017820346054618606791148218602242915317805180039719617846122021321466507631532422465756335472634342751113374904708553843650713047213486079433387379514946657790445336314669468372901445379807617866866093111528119608319946701092677700273778850806862759302141449221648147640648592048847711218802926054705402803441298028988775115354967999592458499548759542771692663897570900238154932118204606903185761209079109890297673533000187909469866385641446957273598210072344444250658132926515422974487551855800122321983787746105471472485234991958416739747132731083338061776349019065152555010065580804237279866017401857785952246319632259642312916080065396497834428929998836123439185590245752845041755714280018867518653160681902889292698497054749463181057338278870775905614637894589144493367932660964247293525917370725068152079705431651194720370327273532443800691829890705371359272783044061159754732083672639763253898437736717332633132563571805989710621045971138510549238161550273862739150708599533794056475909355891839262553291968868234921629357368093218942863329679901429355225051960822931743359997556457545213449845449174008105767573633274106109436913528697179428644579010838245020038923839751620131861771600091061351077192784777215319263666847356343595465619123314545874264839779787471416595194687628234079947990954377486314135125366371122119211766887953130815525959208885233404656422457047533119394317542579790415411299171891280675921657329445682717141568384198162102849522709689732652412684117173190879613166336921541106720494358479964392770032147093228182043975430534820701580657968080860308202786446989396737007297557203238067056503533283932089067148277875187304746821771989200334114210459499262452853875512128160447114149934773430080219866019460308225247563738374208356443385071732373925790994353882977619883092253789379599060117927500692987711988753553920700667513459721428142793054103278335824211601632740782195258651671484329464239215667107109561112530866633141276547912303911775190261612072314278746812570806635641304153376187556760326047222874406801591641278023708774474647752909082011578805246090289594556551182667996453339493449149711911419229040079022043289443498347053581959735152844396767459718481792311964368284952459105978113094969995874803679476647863411890521893269154442836320870651630532337208531872446864979049680599685822588727075505091087131001113510216925419884742404616037017508340129221289463018433767913601370441906473775350845957698653575229133684360971383440581309322324426664769868415495817648405779282616069413478829759061301620519375385877699775111453081938502471484666455711487708237735411431816443007289561852978310285880096318267864768925624821117713927688517670291527120231111285092043764006481801136112999372376371157064201663103366172427690693911576176353224483817176900968922987880035047479272576604393484471932219521317327721371758203576776965970183409041628809744840795627807091825867041162349647277941421159885072714730939618816411887675884339688691997410214558260862623899230671255105627479739350429462123013389794097364290013800648237347134939181898071631709669292813372039166755049197469858856727874197066693491086005361625709715904802137371915633212511721381375301537870685196547831890354456001225407579102221601443096894855712154249333869799631035830734490847637874815309490500402761041947556855202691818993453162182195354228419651872798157881218520471785771691136599974021763025663329768113925258191040708973541828504405019843777405912369792296424793190119782399017796757428489191971931279213932342932834243017524822275079763278975238520786517246294441943042270237850668747820558528974094445446674167032493495145820009499737058567217759891149181993089006380143703213302190845516901814411666541017314616421905256579160315159268271798707987477162946028921042597836370605248241418310793683951691174607773167497931075741392832517015031657107445195504040928581017854617318885157530392795899066295924640212173704006376878201473732475023519595517277599259860932240783739296696622128024925436123313382155587355729728799773792036179463715767668722863519968772817944332420010519334276089747142984002126135518606747464004016673319487203080226730599009851949449631279194918792649313280103642088295068594258146225938295317355565520330700904842690073794394009765069200013987558636018865558358306483478220784054846217589895931487074751084487542322047176218915113469063116684552815945110716872800097444759769914407453994397722462265583218391148486309004680455174170683330055426185700353713761023214432541112103352837003439663700349060134647313030912986686570369609902676216761185789587300461829527964997205263591956820333997994152825729101694221958709582568911785244655528194098560350952215883332670546348049917530237016506763430309043214350470122026094505024229095366508621957965868246045801468927666528173543076777697968933828651985150664381005301573862134539461016311209566351709956416094414797253776589365571966158286717549750243395206717744982344734490971142025160935916973487540316869272677290043964556416049153642939007021749358578835908570122883586406899572896670243053917734465356794973248203220730468182868476568623018553731820152584049945849723038300683348816169563904550478173316096879261300366008420260740410371642425638815654438626782640834495450484660068056954807332631051003958126751083080204963406754126150492652683157260726982092056678812220864502411999221018143509961925140169715651567950050579053562856558252240845803004937360609825367092468236969634843550314133338664164517414081050377798211745346341182694889929311446338281801699747639632327673350703256170578365557333771612764843579456002241147087787293802653070139409768010418371793648128344964065318245373469985570904232761156730112989603798097783355988737387800802398349474917088879868939297872931396804133767119069719674642762577852607208129902223506133229650914919932079723642892084310976891815862429117236378843182583000664374293560533523853732466990640856999004547034442666780803812554976501273457832742795385189670412022432929334485694790003774713470166714458730896742770446681548700671628833235194995756032048790786807458054731692171578462256462227861142991377773472770752476667823729606302700814358122004175810816174402848529418091145257752940821831223714349589329158032971420095820380905049294937417889010855752351539595074438712392557933830192034867586632148127689902652566325936553750667734395582034514482653034440788230388816445295859651877966762938001664708569814661194702990803073653094459736682167645543633867037165489025298629185016590307801802796918506176904160423538163418954795476013197190647358290986587773882238821818418919907051248973194288516140926507510727427199289942756018569625683213805974436696256534024904096323328480588819368693981098541381640391461671347965982682644471700811939985874649456610484713416848361056809130166886831470845953436495866345077743318355339448552639362220064045988644309783677645807653236742545685719675752595937231306393941946444346934963326346224583032882191083466063120550945639295289357396794272902658037160377704297593664525962469049827533838204318578180419100936320692714819841495114873819147665231572571974341143380549474964283162024926973807324494102063721082130246995352242015255474316921845118081932499950153656221119166050439752556830250239287413240218227780321598551300121977696687300664441461484019403880383827752195304438583814748778995189106091635947629177347583372291546166410859659154492610169211136719687989459365657381788477818478476961049938904767247713830414853765351163680810133140298994542282985854677439248154751888093111837623131016712475863917324117690973949602859048035191663979886445262494802345995663190208268106202675250643197881839405005543188125066929040366645218240547908088730062874759860777199269913121720702030851146937192458404065596628310190150232521128485771897470794840265077914755403658997468750144656452042574941996830257193347392319459897105624392099784770879041737226874069856272949378421614065294267698268055944475054144957516650292051983612171850451391740039270102937600897312541091889670896215632567654509955966264870348309452146068000358521672500225830853794267631921139011876860893972205942621626074278239397286294874870283248598908763082665311297322695414312723391045809228645098238827586873612133728149469381346509764105601619473425345119905295294852750369055443232977623548641158824734589451089751704263585108484273345350187998438476060174169068087050301448509506851477154539408762660825881633251947113575133287776163228541010103248758609283622895358225267666755050163661910017862605749816996357821726231207061750241719218962391890191718549017263947875839617985847694872304504066381807689243696773738043046374432702205682995612232385025259478938039979893863938881513954021938747820134731535638058615836890018095180693820291297997717997559196078406351034503471000989354261086047688895914515021116641984780153705714203919941942369525895168613266247441700950791707311669763893163795729374220197399515044908622792763256166519711912944339186634282589320679830293278311542157361493919332973628005238258919814728096460619794764598624758670012407286834104936248628981393717287436244444212050909237116290933040838014434411691260952454163208941225440588589881597108563910099470380892282766499434571161737283964140604934056619743243851368467586388322173478910348373025023957602442439654946411032001093382545363938115945091934639977960910048045923795860478495029231284059763042857234718367417095927505465608065178622651862550748283966181288108699186046301749446378235615818897404027337970562030788910905189645294822772709591286021646960297725319598067317403380479988360453015560238683956403550202270385372490936824612054977841517047304630677685032695451841530043789261490256206342265068550788960690915846631626052716171751263238089547146915306748589333671618225593023000873227390054223318982098085414258405664469547512339055280283294841240557754019575112151249704547786320798098319624595008046105838246852516175646849427154841851971858719209608500846966614711662827238138595816533600083187513604257281696117289575189136387348447765004252558745459482044231520417377206697075918681079637613834810319852666269103367023152818392966507356896771396824551825408989762284367198075841924230871574904562835723783581495726750985235500706446986957105097873067678974300700984141053827314884388619020844276488253532492194603222826923218220942786649527182724734634930942635031504645743268261225720425734316402970820394315089965421484710745181331011372800259831694247913548833444324193695476941843445115324205781980326569837745325383440707315250377576952381394519953138619376874325523602183929019691475354009739472262802237595982175436514906479824009076180803745958808816092251409302633242897380827501179298830825097931781308557133801527988420299996667687013856302284705644128660088795289427726037377415042704137969659044862530087230638149073017998331935955137878036559340501935404417373789962209728633682985877073030879653286037831181210284244754535476025165024982133018542563214489403467738901483540910455428945070893354846514465479581820256797729123375059377460334768010336063279757058115273978298032374043801560802971500677950689888628503002717010692587606558686423660212533691700763359939723476886053187764924368773160564892129465066488403869029414648753735620513367838664025427375964608026147839702351091604969029713629968394613370838825802056282076514805607720389513865155296530529076446026278546897935436708341070442623917101077926734742362211833374261426539505544938230295984504832767105544842462092467008701212986569089239374883539804009417349299448528592264280170444895991534776933814415477791087884974432975974582590117698984564669363665111639679344436335587657271594745346716913714511912947177186827603986355618675140835363627269707259202588170944638205257785428011941980929532888365302713910063426152135192488941182824359271253167089222433246161204900829959580319780374367970677189719583605275512290972544298317796022244014660711659397058899130951282613167276284375480497163277494629847622575690995054239375060575851815830787306695218004661841920188233689463083822989485039967584917089476132467325153709399591432727893118062521134974480057137405069023534037910329617890132116060895827266734044609713749239247864754503953628949929812304379541324228879479406445182474112783424046872659207980227374351026057607481458709784997328464221279791794240074561762089789414734135719385117999835888434640557130691674006463038153311773266265174759473239492618574491380278458669778642986977110117993388398925672611504903470052483704809141113553671202834955766432611278859362497945351848081466692204418622105276784614646324673594979682165425884211321904209808827988823555163547466425162419480989398576436262971010352001592921650918916882128979789002884173286754729806802425634933055071760165608269963274346210430727233083791795688716135238470967145981543726819134847450240054737091514612579713147828752662816935799106109922423165063905680450138361551277063438895336559393657832898249430810966888805444143121861960261048493452625399225041905256415182689573796048668895160728288654366588119296569317527007582903278525321472195264198149552258649684783823922472171695125019124765348286389036444594014350939664666135731949569961643658690382418074547082185726737023575104009598868846864629065369398678778489430476352919898835873392936601367453798928523201851180225895086684303931488615554562892913834416241522524405398014364764107848173714456560855771690140660592151761790953822433747964676960248072843025804581514624516013658357197070030445912584168914470074622965846679261458791050097948404451106409887128479741231772696058479280916094011061587367094508464716580251752599438353218012288001018874986441857314618929164229424742291697274108809092193823864130847735213749948458058904965029501143259901521422093082034052679539382727315776035027141934059172729383188571918793180136609291349688621909534679427695278709389657977498566009523513729586412425829704548609217827493841470649064190927470846731167395780424634553237281891628360949105871949685248550369154613678383823033808036554350145259306949833617128601575581085777639828536237382815347266757537317987349432194967128412186331639828717571380734023568735861686133025642065994552415420153384921470530021126971287087822274407223603392618357179362789916357833425201843763223561645003218391572623078310133017663459583214964892658659288851878321406123703206155598005537402986217645386309134750308603494815421034589486262970649329087057723534868232446936331215784459096764529640437168508701916012465499693140404779546446473482142637118688082395677665411339081029702178012684855925694232056748675464560903151017909670578780974453575742919343192126333021973168044627363029667262016574786695521455437247895302571544662034982590489043506164222293786774532747704686672082876514029473386770231167227488734286239982873662613100463471525834037547515119662715385512515171248689190507062624668130306515170458690491363050169627007489303483646503353597404489114254647119598190377456613963168987946558433631104052357635389163632995982465733195738405906264702054898551551504530717200929691430652025359901443510858218321922760262577420565088832063336704795953742267828984947758436017107545582200353009063246707703415294708951685865958682553095409350832431477052239781849531798894944614758361455381193304173710913900597274478822825203094103994667060197641418796836189249904994958975230134854593772373984412680412043720110482358902537880175659153408291459908592288983958605604704364558270243167426168213638114103195951847227375909571440619713219860196610962228021359951250175039759602272353951417821821956050010685933731936516436980525578389510799395270841290924005961880071870415191645233504852306030845427053099833691206734826686015792595310222670392418030022743255472212816660190454367132390420836666843101502269912389793777041130157648480315348284754564807871726703786316499610555153512035448228810121030386843720100401592607946727263499697914515130615554340847164129579028466444948693283338424557561329595185583364929764305394886009797903674284848972956108551661099893200358904059134157968417183119728561313901862123594765876094475398740515731440382002397494987558951028319101837894035177949102195462801961152202905368394801170465163718461049683574816587198888384613803295807041474639616003925073037422046024034505850437416141638378870165597147836376267564655086926313605201506790779583446283619183698652313292416488489268589941343245757349383103131425121347666405186419732366858703242718361769467032594660952183278027459621816754103959709570777072596314400749075765741747066497492203532946540021978461818287610700546524997713899536298244075136897448435833862811738457423061310721207720981507373779531651488860072342435706635648812203514372363721088685986538721178823348741988517876020361880785039832032357379503123881031731377178254911901864865166655858751177176180102049295890772038411495327672720805741548481639202818885248016847189114275078452854124697594115498989851966797047332094080841355394462150583303993917290715251108971810998940411806763570725731141234238200133148932839179653927741792785828004821896662542498167725045211575439367585467384836254259391660793816559021016644787776325618286338708751077035458367504673915020866772181666155037244236564538428376712666005744542698653159289400343452926055907385939881071897821983336184640175105873194035989431722195512021737486935198650043777986531659638016846115031079794956247902490249706848917062988147715570103508889733399473674936667793201361134617721337471243578252404073312251558412947857699936763372265773317633157707850408462435370981455528846730164817976375784173937840139589460013808370319471100535029367043095933377870981318662672060295533282513032168374565520776281022903659258907396934327686189965165715240659766141250633831483212085403133007277297725345596636110362221105888723480966935047616403017648979174976384232536291047773149678133939440721112097471747674613804299861216997046997884900750868649566086848213087031106106981367081712738296063615599712504487661606949624788403134109052514162475587060273597255388375774332315169653584428467319049199864290167821709240846205633854091035748150175549952835963179077288344286857686262786843882887105922706639706761972606200518116740449391202002415667778509614446372203265685768109369067502435740570831968940945426929995758747730438819321210990716656641570340768586818204418290928801518307277750693556841844846075968997714807717960302479484433143339095907535872020520952385808724122614442731588325307129593527498242740105415586508830554679751689836428874569428915130369687780759884573996936245137304506215681944420286897258861339872534334523126812874230985778174489891633557085723765745374245696740582269232580998926105449525842093717344306994690307668883442030595608594906497403139076491038118161052298933539981574752489243377475831845273964724866709894984427968950523474245965696685030766129389724171200059193670336138962187800835713386748817543888894539913804925705382654834093635471454468203911508476371323362279807940835971667211161438048788631266595024253700286599894286576043292544355281393865020613203525938269116700551449075982969960443006356041950339422705005547758146877867388452781260928010344829287319096154461588746853118289539289603997378982387151139138642512134323229258234239967868704790544286662405579254444055717589744585023794500820635872332893442976484988694221372726957022719941841042798585972559853814861504562629694622370514315261903224495279785859449910775014918253665213973507159498361863209063118472597725755230566092881675678710150403961861667556322945103287778229823941736124849984830002444532804774676147223425959828732263431897304745578901735172709810470035412740751278064175722317992024108309374306883882146128469609627326878774836629107504453499360162656302019686798059969312668122949959545419924132401407073904688252713944107273107038642215131688053059669245746644891648846192118512171925401316672658247305701747710282931826600123015838349631973108741207640176685683446396551575478610115873998381872100317814096256028259916648009761068150319366788629442643089375423614681181940572221193414523637876168366415812586370702614410243384295393058411584544079066642450059502559421419192426349844910652735420193833766011346922974135120973273846977171347467125623471076311949488280297551880018492959841210022952850210838987427384882598093328954386307633723676158310473077268118072023140658244268426494239750659193128064761590324596912208254777001194088774217429525292939725728569328053030214717352085948719620517483757789550371019344610082013799139935871853902160555614971603989092979547128959315852053757973156648828628713404153479480222820593203382378698590489263922371364378501792695768310324141731886469320733013480683297001107359613784935354639825702814409283398944195425401140949184402781763840906276462867778775356328013303749229124487879050637463054403669237690928919008347767009701922542546370294609103135747885200069784545459736769072800306382961325610008784227868743177484680420657186729590319709948581050302434620567188682276259080020170157055623715507489026941703749767087810583791029252917611704463552288717991667222516755229483944908769692564430944341071657476438002094723513943464473294303012279590415520285127630992831811679024883530033842454098095224757009403511177824747788753304445609009625191226810655877949071051844838633142408934618570053363472818736974206577923878025519006327135049196583710174525264052324130048452878267599493863539311459014516402901515609273977673396569954769720758608192054294327122415204599980200312982155197989740684003120305822022566093021080103593396793350036043696651933477421328206132312254139907026185733656374063623972671870909616874569610331073206328447881583623650296229913369583082817304709741228436857095070904136438139739121596208363795968869174329663759715982039367895163093010662523121242220030062985641316020342160473890727550102096637435735213286450802223292280094737908783563925212349204912394657967031935425264061930040664306211838147540366091856218049919876124596681153614031611152013787462704128774850225907915113412465206475144166321325700129120236261752323546811110016826240242266098258461289649296762869286942391931933752956351222849549455133721606327164610885174310183060369348306342254499921422231700447249314535604562338661998210568060132538225109592738311677941833239835919097751046134531099387467178097047978801248587424212499753229047984483965424067979216963643333405212074655352476181200917244046204888098173228268208826657296987747689142896476229992040381932212702575130173818396181685579578727272506004739029414758654168483044501485329994633725350697441968757709623729605236961638865695099360860791636475137353470513746097735848660359610562640430187188559216066010124841284896862343309856710291630346438832294337463848266994645192432613823404843896284508212823624366985437553137494558135041796255062660467329436066333362335305609592339779902223637247160382066406190136536611137132108481918674681712528841380899655071377199044131489643550939256489265831373848615055893736454176907708622747750975023539710350882194120131844573780775672117008756890124463379765660317617100781425947452592188582152426191176542761897854131048276292001893272326851226945894017634208658807123190366399940622847313212678504193752190094160722493534825507561871022397988396729899576359584188587873150774836670775947657764213530713437152197260565592119346305566332306552848606547236114278087597936932575949906903588821289438615431054988277486572120028443190570312813289494417015056351500270491123735406311569323449968932951425123869694364870703314763506103154000350056997493839526899561571164254276316448310206829137254863498796108922280227037326586211128001172638529951747146674057409639793310726243641955761185380325037038533104828987645067968439997035809731206583312910419406151184714988249104304442084646421622941585114792242334143228214267748810548813179537212619876717184976731631355410983446167454090842582172514814613085795108980251498110361276580399013270821589277715688047170252369874181047814344350622058057012658388920702969566738244806376279913590687591277132877839394666718119215734221417988203507955491534899914132575733439706720397080980186007928666954988249130796318315021008085394451347667431747674293313605274807018952234698310628623446541474667622352058618254905279014365036605748801616784984579632365411908547340215940962804313440160503442144763143072998380079653342602912599080826929650365736024130380675995010451168780510471867123367461486466071733886261991078869843974490269576945350905468148552308136548734904746564667074286890245386200102967717692275668359904610430340385739173374746313579889978888610460289093922515427489360388571179714566542435288437351319541688316204198530822779135892606839942754182439048206702852346516891877251224358922799308861084673066844310626781007115676901636304829396940305636967028997520934687907494042110473487797648617719322407200708259055400498600269483637322119039498713609088232725778042573442550277807733831782516315411972491506944885431905113167453842110881271570831636752119969742267842404907020901093816423089018985068996872505260492623557963604447977984011972920616152079660910758313640558686962148215761565315116422878190868274490440657807195591192335626105841167799539058555681215419403343177575970019648702770014574283159630665143382873905215742588691662986836876483923102920320383257489512443440346572179599194073233532860812965977969200916116733369275421339770994761628173115291740046563839635578783837347196480064930400760349032623993937061994927853218734104257204353825705559851225477052915279792437901015941070597602560555342687039659857594788043264938161524433339917301944687500577574918499648260737764185509700889628980103290744204853174584676313085435758028239420756138560801702801517902110340514577496763191852945624595237673991671681531266220758670577113012807017017884510607344830813557061482071377380914657569741927327459272012138860139635090209762075740724620381823726665592355081730065208001183850548498052646636014562366308803386402136337504096825322491646557957845201527073491263259740169693172447895590232793298578085918890936409808761054512729869111493596201414088903459474521800031192856055233097195273062643646248027617890861673177611334971915565280793358046252116645607246592069021277477048377599424208089552745140273308987608964296995449846400196449048302980010069204073745459822684906340716317136841420073259841359670399481403792783854828525818432275242315900609197053536173925355948755890069576040564996266466275955504259121539442798847750929947257477403443868868942333180762244873773091911243947687132691660034684191680130632200672492387735579196549738000728346354852022686984043748540026009624435899440208944511759912013608151033952424575768196459579501856806957918277151614291635307654190404953331472409613430001422603709150189197002670622052328353567935115400395326733597178601328672974905667613996273654502244375607040012805914937575151973850981439503787527501420795953216527927167923418621803546027713839204781010574397048218708188568118330587854596445407050255405534781429609816062423943844521455719181728371039159968165656562480310855753099763836418856626451018607378962476203099396395223065706044115504731150570127163340821391858859269642160482920747131462686425560796593374497246711311090272519137151807218506677324536336670635749624998383053657880723740689972909110417358175017170400995776043043148597559095055473676629611504696838868049078755277704132546733275142950755187242335669079413210377511467206640813729919938066116664875043498361329567406986348942848326146232088181602974536124268638362960959435520444553357794368987603847146221245958123078923336017368924344109448840134328338920097986736955824907059651672320506102160575059398342893777231452374431884768410449039620891719337836218749791903309520528168372160900162191705628243920234573201775345757959546428326024602818174559080799860285906386726970384189114176781735059680748735926141761878120292485305332931534199247972121190473991371451720762696170763969693154806481454964923015571043586707284866543711690415569044397046516226103526146703673420079805232680758826658626764350671077265973576901707765410140280263581224888288623325333866248727745077294657003933489604678814199765595352382694844907015015825055479333549122911043274953056275062743928096511500771824280615055413858450173829346960126266415273136749382252314763897236698851325743245444229989730573310953311415846420845773651185302432225179181464984488903390506244564432424116798361733813971269566907984489071592881203421877044265512083214805919434578092438252322430724081769401684034717833627189663774000336857991558370804921174851233197945717488204584334890518279306248761701961864110861609179042940231725935087015141224606335746655421657739770920634203173161864937890666541887574600009074537445620532203867554801746282333608662665580765959728133371048808344258695195484574975582757025378601673801539438825448651260473370266929921936124941272884666421207405978461066891986755456715823156344136229347152431199785132264054342965225443298054142582795236859083399551539214485890050379370798391416174793866664338398131765000581749109201498448861238040223498353688935438418765594223328833651519879486367384422471729221395211949018302934887482700818066858571668890603247054604570093173942148259763046306015803934192243464872964135933128832224029114441595904594285079142600848982069632379248444076570050661388736097313908994897426256850487517441748339106207495926162941359008142461336862564497739490121700138405628589770486107355706173936868859474771341698752390094916438254586685776747353019499461105475274163089276703103298302665709599298919854245001692055025861993349089374359761680881988001594352346731445561561153350594256193153723186744850268106179940402655654434401434407008700217719046542995529085345124183574396995771520272294701792215076594542284375448819408541810240492088876872499085223736775577905228509262255861622559166820507919852899622980105314429155632407438445236730276074290226586082078855769092549337028076438800565080520244024843994598722371709234626220074477705859560001291019399473338931112902426488516571697285370632213831000752407591882456828443775418867579312444439900351388860899535883990396715686430362935575966812832755607893444192195784155508272274617492097716594399788703757605256637429671303008143946045243788268766897319275536193101099134616848118350610770934372262217794582928455264137474402954975563024577902103081816862320616220757956611888154024143715267035280861218026473404724062042143433896894491327264136334503027195398645472416117119911423169795459842452704357512044236288738258183066304537266190062028490738213297939105960076086983877802710277287281239417015769434981382410973817843740982590936607691770994616786573265973740365971494772508164766438037151745807393274984598645325637155903805591468644177319786144176956886558011785196394428136316579414697626778169792918106543816694116140598909599439405800273901998449394047077420360949494465558943744585406624757187474530083784376264497313802511905313525874210011144510356148856405905061624239227588790130851359839317892776449712419428424596602850530040970468674663914335154997170780693311775602036139617523151870540891583591897869810690517158214120936729877615106640769952678834230144285068216459243485337929942197108005886079909899012947267687837568551408631623380631066025197874588977435052968168163233650931855658828712543326657354818891443878099159898525071671318274094697764223509481522588082076567913983707658031810894417206443568607829697121036307247694148064023114859179092915033390039576009187662232943422606295030559492900627547764932861244769317257487033164438097225104056799830175110482471263234256157080771663570806825677006895581366223274900749199957130076251841697728558222444990680398828272423102508711596145757902598247821017923899364926357844154163611879182102864855585338812555700133192960865302076304515379748364770316801655512995969473842309903676803475555739692120370180091217951538654516256009652995821936819278874549223181185284100443634286290416352796994735407433840485878054899391880164474962571075907057244485872954235126557220719404324931968568941698163881572356404084509467414685496041076702009375452913891376684284870774896045516891069958532023520216988115797558033002954902585427048043247790695361959424312190880408123934278171449031301511738585409961696127511180556249925960129340178963347080748281280185716338236516143639783692654990928027880453388229241501831341913324037827937631400228716770912984263469182040069983571331059487052015008025923635078535607012695677187640451622706710559781913163150247107802815785798652784673903484327658430344413242265282703628524176977429657302198396335720425275900448840983318295371086463146428446428504896352523062357911652015582140228536390626711738248441311201009862598879803532252309050905907564785440561465983877398472450245953739380476078838853677322645388511130473488943040943636406527561800445237894784092607517555407943644079153817475989778122588391347856000166611377132823167597764423034285472910906839333022340154816445535960829960977860234409463435662236478301877720014965669501496632778686281736704142507221703089513351668711936823428418267888180204764858629766061520219392977523696175881781826862575925727155103318814250837021744437499874894747329113002126245630588636318693479487767445809914620576839958093421687114407347749737024549347513760563891153926766475253357902391449062541079926158815423227094369777862573084519222012288154085136285124958087162588360638374957097012232830683507685863587652868689817554821818472923688628936592923179006791375586367689722037211487043111699193515212518458174222692009425272233364332808568332187985610936460514692127127851896492456996045796298221707442750605604591366247729387521169787736101827018986597890270122654508398833964686571530667110781339724431375121885952720279721270204369978166385837901112936321564969420522259442914475450419102553902268469469015597899057711511450169605525811518767042739861094308634871024168115107905772437993650386522855422197946837320677892064633569158776245740908736605471028570782850792657371975790185855150787718017836966305527787635797793981917072730932031723274075892649369636057986258328550419262001844062731620449670884330138000012172888621703975065929799401977252565597558186955929388526160785977668089778076048408210263673732754432232346928837565601892306948027186946027874842610272452007889858164830500352436879663169981046621486671762687024034950420043127590299141589497184174474537933912354027926018287030555872331724669458743412718114663794248252218737458247297669951148546155545926665424196544112396924490156938508092862716058865563375916805571449741922910846484577047498793027441761110372083057899926019609157242189148319648211523919579316100885844525804677113002418849788641080331010027456773804532966876870156829287455953950609150372716581858134301391543601684259134467138005320349530585391511174836993435395328976743366968036394352457562229413622439215112674081358802506541158761782997824511711167487217712911720385521484748095111086947024600551242974216772945506038335460087772564336968520740401405915008945977035175492360758970066566375686039537979417832100261156222427000704240194984465123124066349403498452094109534332300060524559689504370233186987397709523261605512547294972924571169134288401279217447768414394325596903764937137300422169606824928584139855195959380613106493114070527795695986469291633631770407190311099276042923100844791224289771964362066799775694174888319780191115144108191897462814761432955534595914253198078640049261306968588688894807228415462291147591754913175082817516219602526085105529587397384902400630513615181336318649327245809254093191676977956295415603393943416186691322241438552787757272078945213569146907569510246332353282625916797624380760710415818481230522636119101192948898532239426936535675366123511093624800390339272786571347227355879632081600898597232680837893467848592189870710171312384285104670574380924480331943024194302645693607390428872470177405023514666290082008090515473128518588930480189450252573306387636947283433052602648018965697928827349789920418054936591289686841071476253591274320939574716272873636612490544728394557530218706241080768895536495011130818870153823552446192502252365156717885084716083577923096096200647717296312514793166642734945509001798468898141102126379536557284747998379191143533469892120126639058342099417540015202655094875867648816362382444345219982253159819418271217256594781814164027703392252502888662852921594749295660531533430471669533716514022321505393026153575724893051382497167722725170657849704308715746207713490572647176160711017313808907757841073917593943794762184540439556059219775388762825951667370017495018981767691522932845497236364737485215160980033157480644668808224449228047427939318681890765410206239517320014322536318247551192774192683208984624121224169969596076238745027072305474305650850407732823928661497787422508460936975942082796872579195125715562972979831416940378604320527216761331389979209587662920843828910681846838108380478013299904334533973468237382680922257544817758969267512603653892094377944502075064450450770651626770288097362549883703505176544559280472341346006970293614047256487047613178213448419468759475506959459331564650371822105390874995075086635131132337073298670416827042851924745168933441955322861898787251433553507796701997669481220928580648883816278012126640451834446875803956513586729428998155147851421221713598989358001945655386083692488137299454415615394813084717457636717632496331932551980617781622320946715792082352889643041627755473065368689323542354229494454012145924510210414629214009754409212934280618106569009567596563233361156078276155404670998501934567329667469961620349493860330821978519755119795355354499169973897582956232928544035293159722409586293117058922691930612790469333616647057181437311426345146455604621100314580651876780181595826890490427333925404696768040334086105791253892904722350475619312434208498215354150137890041415045461374815692685871114645921344678060946461191371102432948150471076174568842406152316954335132709024123677548114335988893750056343320210852530122484153714731734257465264831718378255397080309789401599960785743050290092459484843511952085339971622857478883752762716266429436336104537030515151319652128294832428185279596743481329462599803905458917202178738977342100061797846611147860651231361036138081598525290166769317191840515412305663221061433765686439362398090750474690437121748961107731528457778305265204074310939612639017802168997988945151348994134694696865014672656859597961255538814007327832494209041395635196060596419614119103552453713080185243081442964341982203622342476564745588381938160613863227347892999031051153371723421766920268859292863747153279338138561230382340294146278237485434063564390979030526872443695275368162261426023797901055973842063824366915903773814678857829741411436472618170944578694391904499785988203752441237770870783847055761127009271657280804365594995371475585495098806104513326615473146294527656817704990384370029474639902611321192015337087391455146820730335589929239264174927830232482047475100312475899841603483159040711019623465497897578016348310495702771358112778397250179122679143877537928941337258054668599180175910355340035536906793819359767189654579069241357413973001197502979699955460954957454425229367917117537300887550786670001658056121496196778060525134717970369041200578373608765889598867315312952204117072822938369489107811908452418952880994142996009678634251593646687087993364427800832048043240130780649247832257493181498098099871729978373159932102511012911585162301821099728092880169425252709367816573659525586510466908558501131325511831754893690501263885168258431166103919523320790920756810718190504556140045526587881983520693997060844706586107138093671507919230293460414271692605317165536780578804861545301056893435981712000673078945304356777662248256184706622048415917547471911044784252153174002330647985952909491305505301911175763955976401904773393582079198433771931877911998948895834817419546367025677703441109936128620404941900827645300334793569744736676986100416029915529539847722783180920991670403407179409205499520850654446466843177383730402690313578609807560637555716646895870440602291994890507747081028373032107820162082580418632846810808751265490444941112097646135094910565985329046684011104954288533513921565353504265751336546781119234302828739940414056572645049243363886550161515294296204996717495587091249597676236448548925074274390007962252443043386388559221557131981896319507705256885984834361104142308271706234597556880238962228803709117243161217975616167457706813468372038124532819238269086722953300946930450494945227143702876203119010473523317180282058217208922184897076902028367434950514334402216896379434550291243927536104453877703159710436822703520744664988219767609605143226197144797430696451612911380544185925194655244604494374674308524398355024338139722457170417274345280767948395007873308102339249124822491990095089384164449362829270550923192670621214760666936730386165326717887399392888546584590661349186609094091918230357877076008872883385817447926433231777922122415339663210956829954389263550815162364283833777233656953827451750501812626123305846441382152351827903142594739583053271132125249189722370082214008392291526350227290747689994607656076224285189999917030803754584215165029943224246444965440736612984511428322457846866745649018531332660136794038528700196585547891567272817033502565594699664496672211210452448806675358150672378612291506814322190965191662148159539824690534663530947036858189196466012427067271483687188427629827366866967121432082769920635105833338702362728556860027176013099920746081330659737587615692395174272496825004553664516705850537698575603994119245502901993962772236998517860992110519956092663233853760335040175051125465433989266900067452939970788380435174290305064014966901635051107004955674250086096557180798120628196745590909769146044584413998490339585181461282872547396995769661602619399770207412943198048223977596250184545135523173042771369365503838752751342558922599191294923579359149516767332380988780767390483326021214914720326776562123531190435974803598527254482694407401485194558424448685435743027402899596234490324748739283253175407218193359202487947692955164875441978251880608845954174231932175357019769713995788052423333723017352755859987878050932843856629005088101989037347989799920676398880989711804409847827027400549832304345710754434469059250663545206872813419350262447318131737485705681024721705054092000114423256689069338544334114355460674003746160082898886246718687935179236248435642030439572639176998296986961270237330549424478610304411697215752361222532342555030820307187918151894689700031700983369550125893768786303970128200249381650789699187813082709727131961581756195237562823480567126696115603272338175125671218025873022441813231776941128262607134608702189756730727054576130873720139008994088310683739133485601465194720408896522286102251013253087321339413907549039706661488181167235474611000007664001951231653290520363489802939494255610747956695105383764418389293231698250438834642734812139772155544350106801520777448141429423671324143655308244360552205487683556563775269182334159658667282678993293590806418254404423935399824365777854941705961539352573523975495305854993280099971656644495884334540955906888244720574408585255953427854239447306426421503748925425277534158656444476597958796175045078943470343370357069615456838732733076675546001838968585156796772698501157130493934972506713181475215808285462392220035413915704466518078351178137266838856156884882470534289998720735821335783364496374452849447606156259633507968971658474203291681912105057986055647809529005136460468568878989729212753241861286340214328628088435813329560749012492527959521392723187679246360362523739855504245562730464091125060519411273827671340945884503721107632599019633689361034548102783102734435059088895079452499077616619926419416586917997575192792073340758751735462742861765082520528955737144723962504797055786782917630379385668564858944985250805333893922623771480966128670056689380697353808699221992719285078550779446631480266987508167949051821658117616747578613052771174721154784947382293354061516140481867104505589868733399623535578215868071226982455471101397112930170466530071523713614378576258878578735138282870573761258038314728341919655046452508546472823327421322030674077331042569638408584236819452348919505505774420964943976107673774384705975336583952320327557982312830618622362266674510782792165710562020160604719816553893828232552341136829548405522276002546892758031113158338102380635954232686945052186127776277116943909923189167640765847204811091252649979781974131377091269625062992828193180338813786224496086327834832758768416414212381798035151550511295088757905424606102632571077256312549010596442056152729189418779465874108680024463218799446263313037569233095647133799600739188591493767244566554934739737566678542112341026276467706021375151321294861972095178934925052244645054370835410810489967407777475921385581031672474664375371345998697132516894762007872224503348570890209517636174025093169936708602576497588028502469405354719047857299789871804901714480070590554411343158635710120976539327377180422470429572297209441067091325079119097494013739646762413485557359737628597646217447305291960216941051564199398908591823510308530984189321614457544678663622349312229652777034948493396738649254686394740407470297478909482768183917223603896220343607360195499594470273521323391623711516120715263980784905877088500362894274400644620774939379201955662430004481656541610752790024998190388657218289589295030841352940953848103405312300830701752579391673789882903240724249310361418352294107489850958227392699869053957439960397494554292407229661108372660488052940276975412170306875012401498051490403301775234127363486861254316953753874195932520846294083815567904762417121687172812854143525640441279577341057197102814558302675004792845770480113273451820986660663865861005839728025791976656317185252206142113478908435532268951269975446670164315316523041960620943903531287999791079159338476837874577359190570585254773514630077087691313537763706205973498537243753227146154133170751278889080629201534750564906510719311620837919088023778517398478226909103609135605052548043733332325713981971407569044985979481379597957269662571676356009478376779723794730736819495737969658658536191154095753982661465914355713453737651525541836563713863766318921715826943469487031998465346320361536378706398229650833543301426427669403970153518133851023095135008207793592497016599515364603460874285003182671690392993961134613146462164684691914217989546252921483688753771906376944798644716180035061922255787830832685643128251731351782495096788322779785678124910413643309560977032369714747486697295042481893994558062922782652224477751142309450681960061018753495957422833896958994770986140949666758872515502974550636706957988135627158685781441784437247137599089300141031338537236277368634593060904226891792429913991125437851236708287160914641988315783751266235265210774754525814800241679532526395105239693310832071216648734825235266791828073237630979031648970341390202587244405391759090579773012692102638313462424033846157230871681520221237795149908389718466557936168530339417477331953304147918374795609179263384016157066539764845605257997030715622813839432573923827823074702994090340222147903097644083576934476177412610098570954473611256133437728173990162367393801057233557419860397821032035516062155657130144394165747062809750076888766384290816587469469674224602575961718754572367428818598827147652803042981363922799600300145364376403711123940719191295217224710383122593022768828080405623172079845478118162466054769321101222533180939170718618953035266214084413999002304460980902962356083194403255974222546303323841598955715821250937935404855477532453066780487024920740974112394389988890380455499378141674307616806966405863579878484587600253033880800898330322170380057903196519269654013646518317069095645743057398043526297214147408845648528246876282988299276164793881798447916527066415074747358226704987429704152941986704939415781254643862238435167896796264714253373712894887431609465966862202444388365518556723291186786194833021950411535911376684667618563798089569229253063866104947544303014333139653445298649103557654853370616107271171103971521919301816909055052469548700069737610576687485192122960106309200326725272064251288933602844576366840621374491511368417077056345291265012458392288441199416858719117488302860758431466237554686259089129897994427898324848438751993564102542085516737249908618955345511635954757098028238877082345193786233394380627106236539155971212791845690532637475659576437078909906358494107878772092717924181312214180168903240451000944548040197135367987164004436761605029606092726402537198060292603676453583803586060461989931579915655397987366775577413605554327083587113654220537162512240932130463219442473753371824932738762076683349684942302176465344699561640210526357794196106454619748571536494004500298879335247045584088798341212791050357734858695673514995562243790856435675472078821014682944815661745485139139485107133296312126048338496681549935224212120101772899696322984521382487656515991284520673594148507382533431790402952969920249091587237923895377608281818277711338986726193518269303821495161635003011643675138130610564773393594854323818086186566343471628931840447819424761326450072503658436593703404971838012048164037395791118856092040052363300444650724528572783346870756325386736594211070482675761047042691052624753417610946868237751706387295762896722213618760446619385637519942906211449666653437922845424995606991145739544223350466832601956753599804374385839346097241235886962223873390248262025538145766216258623773274201502512508354142660185243164230540020569944339241794479028246778304117004826834604239588974797548490568894877809183614582384750082366819155507034213930463719224673554026834936869584212486992881540025505749793728375832642253298372580772505944637579765637111491254664641311231645205951816318130485475354182877730315550904769779340258934759416712455012038714326926482304006758292832773208536020406931163108531544939414233568502580444811987075994878625309467342255129663461436230643251153106215341096516438806203184744515027590542715079475537059495910861877983505880890356743076614407114109657154470029296528974366718020025279884810502004580265906767613811285695335964386303875481131949743077253275452870952307731815446491541385351769768893581411154902402968551674028747849160809977532596818584701744557038216052932003878363012488091698878473419184136694195455582937132295638300584410303576548185759930433749330633195186290143695183225025322740382715895867161170102449430050288062176929674449233071086351138644755256038890728776337071453151113147728562739104317247136814483115306956454037266316050942741346636317117418720920344889835892603188562765619464633532376252586231425490582636734745609669377589668156139604042508878458972947678404876877935522190924909595638968215720523384196611449703456215758978583727496065499282152835861046632442513450248500619954298175565809328244625136423077985455800702199672672864525026218337734646497163942907145219029382850183775769081898872017699187396109763358227756869402597974332443457468353799699953779288980465863935571527559698203163124831267340748306512322496878375949186404096632294772952959871779393880836627173237627714704915639612978321643677812453176153025297079591826016404804636800306111144331120960189141896421857928778332729954883172880015604764551436716563993708420608819744962035197781464287192613788654375855142455433715818982695549505429985518737306692905943414209248115093273062058874466222496602282678466496233988303656207570480810043583670512648239296985035001247048041573819222842775941371408807163150545345541111513390060272879196880754644142438724114960439698153009409612936187421888326390598242099348791291995126245482698673649620730075059540403218142759921135846868934774107382021216200013320151786828917628639886442982254664929195249731583062584221513737938732505413030416268005316637520367587693001521500811825308733202717350340404213639351503153910213465061664790554392064811810881440364481549846989703793620515559304188688783843293748654075532112195890507534509706277723323524060157724054961104953657295134271844603363200753282334688190691468461841392010235517867278030130805685798085418273402152582650829300084010698357711101373981962216064675512206091049130308874298673830729890667242166177562431177060374982851336642212281922495999906652630969142519146613179321197570119040151457489064519056132716744409893411930583054450092842277830606377587329727352070719433966150095914649257236697655995803667110141020245032500523933512538840800599213066758187884323098390313999707820943965757840010622820185649062547058183085046245408606893912534232095728079580884539361882237278183117428284717270209881009097817725977200116330919472225414023150214944041405299401212411457295129357411826882090498484352147220528756653915474493035130565308061309670865884176032627617114816022092377068288924710725486698295744641903166011681030601967950409436406388978758262820771844391470624862578541499533440173121477161278110655308825697803644717303367332461754980798185399722124467661335801675547338932161168481727398638985930653409857656836940634464125887959813677053359303374881617225974570903395588405604889827918706373525445685651161717312201230985332637226390282752035844956107665868198115671522322856610737463722350171973827765200656490611172295417895177275100786624645151085180433762961397685241836665452346937371366280115290474059205627137444311993324539078907038150267283989778085008089758478310513218467205007583008776943879396991723678395662318790446047922268152990423150210210716118874710578958197615524635888069678281154220113727217826010119333079026257429501731188425719927355749473878540380436752290201913423180533436690640132848726232515690624011672767555462153231268814599127156361658468734376548131236708050456153303435596512427685545836293588191472361189767604703232840621283045139662509712389289131916729818874817349518609370858156496195676157373724305481763254696151398363525902096746361577233488365864137751869938633576339615571986586362058167595985992507013749101095718618105238360239188320042864764670281822823360306431511575079038548269230700833659644415254723296861337390059724655721144065167804532867064924587367849801223729673093546764678892558913744276729931095680534324335672908226885886989662483748984374972699971931121405931862832964583075038459570682679343959720387273628816714259049622193228564742425871100096596108592793485324591168379594656766685051635137126935386216090836227632226367771835222408875591808594152292503900042523390771823107754617117642108971272481189580890130840893473499720787386942516386455785509852734306645174092145954023061536079491269369986783175739336521677693891574997788637589644686564066466491573344495971132644657356915660458178982290030148414631045730484027407005691964051641194151296641704913874978974469143084649495078029537729105670314847394251319321306750583087670662059839097900362631251863589405517503467720770656651707700261663312355439422061353383216211716956805629025782696038939106512925806846021489290240855552557495992143743759140709480837842018027369465439393687398888709997292126986631624561279676907580960388832833394787799803873077987974669633989407846444534653693853667418788534337389417520736116654645049180681573246192421567898745508922628857054763872636731313575041232003011753433587354767234121339744675665322933215718169047957661814138830223913372473686911166648312454192106344802827031831395897083916075981093968197761221644148076517241353700037292665016781102382474372659145016994878375698750061032822968577065617983176208692151056488569718681028466264848287265621848541602181332919779528441656019035456425712440027733553712718384665821121741924899059481058981619671744194700615000216160789930587301922873855646593884388657520562378219964013220756187457495060650598245321628644100185757370256960298235586955687726208780952615407362860705365522629753118355967778865866527972858465657313745771307909267086783259119413502208272790705815991096209569287404774048332779334990630396115759604302154690255593939677296660597597240125473961025426486717985680216270637661039175078061349970320093758666533964031557131118716288238986866869278511365140386688042708814645393036773836930659912058824344682142180380413754511758204922546372871882058452828198494301380276137766588019320372369228505104059483232529928586397894536545162689389294697141369136208331796212765120092152455966398428365216036530399932713223075077473675692004047499611061450641680333134122656851961965836479126816388330624724029981541475182742744736786267787063460144940035563201672058071133888722925157151623559692126105391471582998735037861682105608340457189552237147629410763345728678912949852427217959177622056048851530516914740170999177985696208271663403659158517263025091393101162830624722634728587968346734867821115089395569240273039284346813558207001445478526315578363215142808124611188398742094168594572844805433985909220036394063006849988028705242097085153656902725802121401454705118733811280508625827297230388400091144924707568188789189894206699704748098140959629106720039172436708886175530340271885841841968641870728948785364032526277209246421154733431630588069917318285466657607912195556475043173769485414328957267365785454576222104710798419506540820741191636507647019295518552604073759495384652451339691799036536422151453800343225458593991038048408752041291807432773162499353203497739584434973784021715941846161709356037371842088143530075941404868892873276577520052917337347589318622521164999040729185899459632304868886300368941392127832625813395316210039398904575695640796640202762550934135085017609543706404807550776553179930145513146431674638268877724111446669386319834617591103295307578647997384119366406236234710871568536282667563383271460798532747573900426502678416103236819963263919354863628345539894779328219327856609122524887820050623427495310190447762448272145136237079863535510740506898130836458276769079690064855947970529345757640032524061084566592162911434350138679916674780041603614126249919888420986674232405278255194841621356727431557044996247524719958113760577098001187127853068801970222668191143998065587322152762736456296710243811195912429508983387340518900212397093294788521263931603847014424078413447474523230430357093148590338037750084047377246890839783358013416804374491013825538284840446535912860703549095131690847301662900873998482400594212177930813942978883862949538608140592602653738862426815630922943689667820972380262810471089172551718918956623694260009052529410524562246732434081888530745736478518134453324288841817396424753704144855076568581252854166107986066678467421894969397754532744330520346368441597623949722245966062646229950054716154328698890602947204954649829932414892784278707473839032702537021552613428817140597999539378778610865745224283947601968061706955627366746749147981065573295796568622859670823805389444912261205408778304011463521199098190901814431042058774249470056470391619808171726510591158395136611266563524030674360900875239972641139698779160753584677410137379860788602415027258044036556440926743691226923391946348089312995440437325708576380513173299289288589935357471497287846666284693787114178677024290526645235701940826096636219976131004168462586957033238418907110040992166151739453409280502019781304921117711556711163941687919456199679617117668467392634413139018997256871521429865541661707146148024809073547836505605436648723424981229385660428265138555113711083994126884047525787276666702567529441962418175566707526366092501738096478782740002804033463635343769138965474539312330137301339350001543007272684704833764539678742373492118987570655507774488931424804345258782114219595416029126443893560374756907148788432963954834232537906904991664633836670318141661407547076703830586039125009647307420302520297035909657325697810184158087409830615351048874336407475138146812765747331624223733683058675117179864330236241800902035449754350860646347835725632586878122705657371022002143943883938005730446219391016940116642930813305395642239389691528990795939019287252557466785286413976202586180887184872530600762187192892801494745229374043107292664192375604898921911108774430290024072941015745855564482896642211121980409426801206146277028680839512832188608193895375203240293201863823175944342969130308417306395904846990045946908740087761216483900767877157107627898739716764593965401421546659092327575975058001893384346861465647799453705506074010483335590976581936216777388349746676203285484601304592918338150825280793297756437237551067789243573640179350169859538739016772875194676107329120235088145914996778576509881792843864191330306794274514380355541566064110946680096461862558087243290802653308069054570959838839097447151477951312356526592450411066757113010216751961672711204918306523253256495964115905607465872108090557115733163634307990626245220083171067527945060328985580948890837473169238956876278858047473336179636341786872858440224841860506763794696685940689113220056292705751513230481680608819420327958174261845623339805190599573100549702968325721984781606660474963004373775057984364273227713738111167585675339090364438966810149508273696238764028946696422149588804770580332073783405449682391046891468407979490531328839427106908270210430387130524734762791380861367008941832143119760998523352668574433352817940762081958117929817097579047834640845204862770915747621149137226072993032878110831287618769936496288892132849975573052575825916233520732398481377882244439585513703009626924830017764543196068896640292675530255775887666643946573358341649470039213876607829239492958964037146109742511489627685204890647371365544569047084529389580249077042393572009821322611881200053170591662650199954641978152694956977537141423079770349059635920496067463698643754448892767329236911107757676915464597738015703727238493454247282931486079429908470055455194078197851837494862202672167960154952994803870474338526459408096156304674009210784731574486255531340863322103823055964252714757081312097985431077499727729268123165247195182536776204384028751970405641897101245716542760110098693057332291744604515089765519578954109381221189776108629760233442779455136206821154744905160804166160297076073108416647181037615099115411603718925386253767350853632923030372584974331134900526613024537386753131168302357734473044866215791271075482730111417056216738899895561050494754596677527613437274920625460529450726013894552871150547423491435629854007453765161804896879946167765050533951105504642789163071913033089258885674430803259019617896594655700723235022103870142393272057508073496820524555295101869350108959015269697226537882480190747488071732753412823654904959530096811198679117487793816698331726647127487312645112834644449565604325882288705468474309433046461714085069025227567579852300066771392640211226026835952579223757126429584746887898780347996984866213006782778111050222857905136775223788858944518135845180876616450046295237650105170932631241904318095344291052885925826718671761815222641609344437669298772300278408012719995665011896800777039400022730136431047492561176583575331306529287577028362270328212953753620675024031840159448821096378064265145348006649510889961531895894593036035413793322312261387844005546692840264010281776362914197312733975800145991149787202941411127650031865863176368704223335549023907152778486912492060403581318701675980235785239952116893554761659149692949201041680424359872430042020103924884145122057203150439597964315901051342256873922099833484541143918713287418307884327913368319962731694269976679514375613969772691794174451510044982368697331976457615331294843626555351620260088247471509684816277843904024333407842515431169943834429804751401031955044737589940187942092613293618344769138813026032350298185539210128512828064185737572746416837222386544980278525515939011740022667082165454657003716834988581845869807081770233578078007902819064030434661297644268491058074410103055997952857261963550187040374308968997429855765346128369366552392921496756375714555765279468501139444738535502139333591208278290632944760431104819177353967626975430448036476912495408539365413747942696133807951435549297165249352781412048367247095153383148255087712141830285815680521641188802375244007438641221667038572404269842943205431419208822111185088853393947368675286752889064108204921110936239940927017223702583074838379513376632000921774634068767802735537008630079583928167238612048767881082875832379376492969283982552758209787676671948233341983504484174425793828138241996356690860101259589658258198880689163402101755343746937554865487619193791600962702693178416554264411272088662118354224297614582806185957247759247378500174377423536166311948000063679604744820354167023417208187447683439527849481199651610611812301671827389584565748803542008891435120035388322129052800193130276501974258221415391727698959406802695897516123612563527457380405539723597166139226764624418324587678589907552501296905148607048465623077085621338298167393119896821097109328976457565127578501795887322143109643420329131084830643198427425317879679137435258285517286481785153829464468193585880602703499939298516708274538557103903246215217444861433928478125063284913355687650548200506725825676793779594547755440790903124796971838816400724955110426111652799546825623770146443828122852653138223473026633938608645524590659311340229680897702818653063287923562368677507344892074174777647084836572668322664500242802141800028451669050361442754536194019606673962290747983125339033542602788239245887600001383646279171614480481040603429560998813101268596632315646546340641703513430108708974950147740280702116402405531271391311700717207131252005766708538000707182741510014642192176151436063195047232303373337668525904629219034649084763830949895801380036240881858021109421583525568090292240332404336344153410635053475310415157640100113263688225779089706841633801490500794363755927393630481656310439478254864969592530516402747106303969620127957845196505376567777238410648474504675508594604250381900504902770480493012403878293696164083999490178940151594696559587789676901804265068901951408929540141898090262108386939139969439518793999769542504306943621522606289134710318857756446919740848359456009330358552771125616834945639173623784436985891339313807727844445490447658022331441560424040201584194563439275198304440957422937549790455409271961157873292656912739739437422848647454916219507351783431958963757624235951051872157849533406595935900006792892121527110347185110063583800824306234058924734026588568303733834765452620295757967241317065745215508352560508349860965349796767006143922733144391099391729670833172752086934591022841437518094390724195376236745621066065938393215660902805477496375792394608653783714901969740915418372331443051964903607177506320860733275419244965111779736898424009906527920035206925114193112362240629068141463472407597822482452647313332698899185812312135167621021085522579858454596809121765686669810025461430409210376128329977681210734193232005457359364022020883448996583477305444445440634231981299003496258201319650481317343674959762276279067623750059152550576406234063088036727230948637727842620815761691945692451967583710392415559077163701482254386618348042676814526563280832504693460141445470114834511465273109283775074154288664408558005195666767611513773335678757738887934295218302795734361950052565239065577602750676743795348884580872598713201077279284058649902235539953075774903680605374531007079494475138398692502231664258435745226643773870504410425767912220218423415183597444466931575042108679937805825375724748832149037139003280053338576054289879623387826621026048036778271416133220231283983802500920618796354435245729443843478473519933078109340858582699452532858354737719485954597385546204997785558596347872034855437117647585663419679713104414558501054877103289194331593595898911384772445933207179106494230125056329589567475604991733503034129143790092497301671654878705635085569277371039958884362763584069540760380326269358419185983628320641781727802666790047748049404535846975142406115547403648728449600877157008979238890246196366664224907992772585235298451865576215151846623908777069965375850073275364522264578368819079635052851962944332367257395844607741207090889457785880738072962744683044347626843425741072015149547517686781224529300453918238777194708126508035867184821842793900548168076983142823731065963738255858360303972215984653345679406627282347766722323391769691232728317752891479681353902758708387425333556498672162435686354895978364983397900879413520231300850175585446474829317986153161172353775414696269083900649426187662064435028939006117930192184155971969585101988293057038904596252007300199018494525010575496367915670085375097766897051533542835669510484267589169588711302675220586513259212381483318324158197780294161602888570158869062958300231109039220410287373097737000814920923717559194837145085066480842467349872644951861359790619544529173235192367592296052098709974464224566865328756479150099129368058108067962308449002934385397048272572381711161831249468441847921584447312160057932431830622841037335426009342376755059988340749522336836506597536746318733466953413559491751085392866696276015018020985383998885749552876014388640714267656757049920435350241308593234959079761335357797760591864377172458294353081429409066491875855455477992517627561217459291968457830180238975523146122687865436383796411783155308928805820514501404437150502371605176201329137107208937717183626389395530042069376713422362876742860478284933773231205030672088906827481535827147919639100877964893102905315260863274372109181257073393388450672052694515682154165003691016330528722122537875010205939795451859864517928391918449699895359103162133962892383323556656921887435024355606553020733665863676006549011991078710001591441532948852730397758680111229483056104940823737513247869038101898828583247163729959226660470495990782077889555165681341873033320924463781124419505095386748651430336174440142450990673144610242637103220762508803210298116020629303970306456684018197566684603261798670733413963176194096639408397295390458108596959120534099578172995541886392276628503792702687145031978536048308817964995557483511240996946382797137695099327724093237645400396439979741170655629996906018638987263684818289304503336988573112609105569598089789981863652011739104493952389542802698158738307086005193132197527297981291622593835219577843751374197906819568021028953876014693231705017751416572989877250579928071192802395743366370008039597021240359607892992686418986908332143180046365102899292771276090963216083790075225737156789985103961438398584040649900608760061113605176766916941668109303564553054435498937040060611421456274291300344716301068422937730160979059690344352380378448714757764814849975180732595113083768275868299099831389967639383923050810525559897659984799116977832554232769223812629744326089613610068000704631379125545167781930997172165683025089233019065198763260702610149159391161958352571807161228381043335110283911208957420451423254011935554999798843986709176654957873192744354698947808270628644512963763039106410579931575484055226733350146443113945377794125272863429719044295637894352329054034191156902835142534602917325616550640835814274992177840181498959718388374541745864999468264903168712048063445578339051042156650538832266342957666666825228525871619856957383074362887848023782699142944351702653216802504298149042458739663305808111540812274550964430857960236341399888638979266202442551022455802269010216295746217094117453320699240351983957147418531583394700134804863808321265337384719060994452867631643722789559957185708485203713179627603505142952897831623778324879452190858682879688423474419826589769382861649779747735702099752449352542226222486355693126955891645221271828941132419029226310714481269530616982274846034145295062693859697849226185164839778778013795687940266539746831932939407355482834235859913117099170698694957165307311350430773259377108030259891342425686940772118729664426848734076580171665576977246240033870935916697941167728631721151506683483847395091035835210765798679337566033083979747371788980932461820527324528149350677819426014876929494425672688124971583071876040641355640025016149629498197487231473237200973481910441655679694669953005123860444013800919490448232724556666905140923531103579024928002555949782688170522256741361532285901194982651752994758904655723480903836456649177971831612298837065662939022080443083573732246429265438745830060371223027796500595030501036651408236972598365950678874472264126674907632962069973092786282615457716769834996932507619232427563231910805687540784918832565081735399744024160001184251220839710308559781891806003389882791264166168494111309817787322835314628392043085098214277567470585467497528940684409207915004732729609311694882525380821780067523634522586297146106202870912717855827722919243252352659000957438918907865049321790018540881484366578503781576343390942533863199185761321159583185414296520806098784255278676687572451891126033691059779992435624221147079957791913986399345591246017208467638106193262427780935913006980722312497350515177723313754964669479162473133607234353054624395570205984707544714829805356799580187515944487523061441747039925646197503416088010630014436778021992651022726295083379269486186113694973927228893812836395030363078886148997552745607105954693004483403175129242805973582743425492240766376083415809205142338220110866652843991465770215098183032359385435299943949360350546322587067947963754813055843025526752763375289795085996898367948193381357579302948096976694977693593385804717759019026162411601801567402035698592219810921906560277466190171824239144149675367708495552679643209334096816180972445277684311468095619397833691577842833472426845434039787481309797576935815105397881242301943122383974288837533329286430282623331356932383729279603433978835942582697685370263497301102393542535578448526391407495982718663203936896178977796308812962861306087548199591667596454809927496154150172049443185657200486213255164433276561589833827013537945502583505743060727296724520025266349107773628023833375288598471046710426642546148435305946000125376400895880400620809878093719201721971560086469095995704235108763139442998695982770130176498208997350390011785875250664125844073448104736904089474613696878820914642026007158872320276114700583101823807540122525451265705137628702956211563915545899851370501519341386666667608162997521820113687164965083453371982200095162169537953237889196732530418224914583248973340610222137793999744365950624472036128995785439292606865540060668994915771647854893484415153058850833587768495981702289138721662566864879929282069576913645400088547541762796752849391185511765767961507466836669049694859460204319168937097228116546245908498913946757236176074074556817624677204587200401232700882840837731895709877880419728932131582987980876380915670522082641475466896746846055147178358596077626560501145465229178617507339899412689591702778750462893896099596342535677650424245495972403909355380236921675782954607687929694206422463922317038157573385871582812053031429280846917031115749441840552610358971337174551023411748689312773885028729410745035824361407193307486266982636676238586739515875317770275609208976805401504986574052458688581318851506016869476085833710636412051163906042961176528831063992109911204875725041934846469755736886799179172277133938320274422492270786626945991031648443426837277366737103651272183019797856530951895685800169331352044919174582859424445756630109309797526584282488031112666839670228395664449143105821306385529450151681222290658519872893346597281847085017267504834829967059286640062110667699709405278440945689524983391319338390394842679961988390335371096586726297790724103101758104036813685617591381851028283658993496420683345159023815955938863855929282236646828885386566188411866394877826456109562405765124158195248670084245773115137734075282034626488052047751603165563470020560691567962117137186900088695373339681759415631076744776531866347573229081461148313292712670080060740126660904802886938212156912467236294575668150436063410883250398724584489877102804443109227633805310375961904470355334226476937598314679991142603809821190031821903243764640458896134553453343289237203967972929003428261725995353155725652674189746483296305457954740494043662242028792807650874800270565080322788917468806145143817583853208425211379261553007597962402820748065360311790631628789501914816605380447265227177155406043220258872441437585011881262056740139177119973719847621408424733325051145404607766033964291320486819995248496197702243792231969648999222187561539047723060596548866828278026635441120984812239007686455117652472421663092212360462652780958498869992505448825816060680567359456180321198438933614904197386147254134718410349102420815104654933575322956967155206797233890109803711911443894402524426397154209571285661648165959077428084890769909350682562692543945790286899525028186910757469952013562220287752412537794030917421502852442187719704918842789136348885163401942972732499385032313345438031922991990890534602927327707164052746444882857361130436425788370026087565114294849701317515700663180262992860212686035715244689429488415929913346896321739186674045617421313962086814952513942994023827403118775353574877910286440778423325447761414270902238192874412775065508416949404550536708663617141732956334899186922323896320928502515204201007453197614005672986970347620078106358959895888094214102513295818756175235816581964670418592672621919731519905656946104341957950431709066768634508100045861544481751002915182405599676430412169786636608214570179620859378785272268233047958153477547518917778209535346584516366613570829637708795114647456481682659693490018266383357620147565111783667826948010236240283859307105849581247916940360920607366705980615021477970618068664866135112053678466238190230752848840017054600344399839023325451754140992557980743591447016575522714457023450987197479874907793436867391465837982730040940628055794881731678057390074926719379961658352802361071280323634357785748597902198181711930195648732985823840138517161971521073943579740360917671884252274947803022744323988265502518048037423095417806833406726081173105186970139766530175443383760560661806325446594732761984523088125598535859579925129510857096601348059810444200150770916916927037092184572844663366300725840285658745766813662613917391398770665689309140409624894003699971280788925219642339983551304716788535661003816237173971254536523615503708435719861668858474715512909359583802522640101243666326299168805539066580361121028662509611630286671691185271201556753239237743509515380514876082109830930942593595497840891809523789156730623853331110796214633939341885644061678466710399518020557030193748567663702772447371590729481812220328898757151863873581369435149867621586251551938087355776676099026025021793049765745398662929306268235870117773305406248842800263503588012369665322905465335111138129365001769728177260124073085763674883131039120320146054580294888143445409564841845005146137145569046910592468210456449950514309354082986389685772807411272595050114512324242887404121838206924610417428117675022124459894071877088658739629599125661084881998288410976781066429372433337336134664173117249519137045953155756426170053149023410558082083921207144676325637833463478592713649214244193914954280604588309750299741821065362443256176216804520925731359521603118798923470716591316013197949176031614237456523438624952518313669754698555346741232991918039333073663982365494630857999134619028564713835029155031616956049981207154225852998999974658659649169683674894166053536377192561424922641052398331726354523611890726857012860099500150202765643912185822336353570247111706880290756637732312245835618336470902546017451827475890690336863219043114613715938969761926836978570635924776236550654873023583487921294459834052436444981478210703897864628408843404766498472527885155085218107861700278542538932866699552173552763320949500142186727167723106587923219750112088032745175170491540256652407402356046264802534043918670882620785877413140370933081032055618415610302094645398882770027938407873780730047617001480139300982906209389937113153637252012371072890079337633792028217384629773489200104451352454900742537285880182250782091023732635286176161737218130743341395549598132804264673354174951218891651651222069819101130531970292863181860653323246916835929188867111540462393890782904005042999553562438911682255820011365234687883286649647310190294523387267832652638815218888336166113875635025202996426481644215889598475324713428571587987977382284973065676531174220325158937794229344279130969993476813960439895778496330783409664110714842725635028119247097528362756279754184704508085055352995809847797428316492236277777345761627534873528108310558952887294800187616442894250609470925054488096925298764725380699542721204070798301996352985690228868715978804507259356135038079144539146892726826311824880475657180849318296630225980197113106576302314011645188569877739163325977693914371700229021541649060414198787867406579062441291332237399762426302007817295612519357968862432678290676597788488459759779466799261914243616515341550225298285529375056840839692373343292861808965031581947748178860380080589742638580153141448589161069010652273499001803751055017075685926144864815966007651533448505767730390296495982955270814372272784852040437519611527040203839585074445227723103677234471409054133426162155965019046569581854760013413707194635143818797098748370121634660234652572203137619192486922851507023845665995220985511399608128315039793958430895451321527087463525904407062422900450557914522495344292461625784172021542261947902156915267767813203856518616446240491871558315946355644604239196976519892977980031545404078473598338518085736693598766519689706532436547626114832846033550772708517373813449225627437109731851866532745981904194777148746001267516762227207534483200349508064874474246623263065370958573004331353906090706757018414142298101986483219055783179427534706134054924551629264720651143217923402191454197261661945314375694980213145773049893466896341958840472913125057547429075493965164489252449449840734334877445281659464548766032167280309314631294858068986782384416989830542365469950823656910018560981279309431723366703285761620567693462514109570733475711526529621998331024739056102470627545675722252439288055016300684524673962016727583010429700459686608010648043019153104383543244156015911671857005042529275052475916198359947844278361730224729387075425425213667492572579935777565012923295402285513370327837683849093123390551514014479170554961690013631882045614048589708789318582796696665452638108137586224181467542688709819225202842798036242392853905078835126835777346282980796092074977420353682006576828215167831264426826697642576691890064459785994502974181733001376394660942466998742402693853239748990498750158720008027772470068810316862885034660912688099446184433319479022761489458898876274495758130884757604928280548517256631398727251289332251479904981670060681140339104112362631856631271857319519740655106754720164987727310612813144427118763592241480400122679721209073092238394496288738612280219211966180373291229078150367993900679990448299469207963675790872449193753980574517367423109511808837994982494481323260459125963755968030769611966444722500120470998498539186765316515057043850383244828909456415705911469350615212000730533361616230985756149655357922647167752662029052236747796142831696739173689141662340332813914745885659393058374349249708218205715069692338012761782142895529215819246745753513131376691295306223216913142572540397776110618498817611955741534521000667358494537928131158971047595181246999716778797296012195969863223862478697241205453343035596637054584701980558605986027166033760139638858728087207950451998846556861012655814444275485307804676264768101832144255593899317301949862152771517002220777595543893752524621046844492558608261649185101958895986851096251277772711426654306013433985137449952644139275624941497083648933116222338039395750478130045301727923368903874075866050117227354244364572001161930984543799128154636084157326082562303278847206380634213085537467219561446945991117654532483416253151004386264856778408938063469136171440608868033021435171728538167907821039939286536852059338265986941856082593921296936450027128608830357901709459683020448751121385028883030401545284343492757910474486599158204187189152473849694657447926103841567433141395656549461219449394180908535845889913444352063035388632766930368271909720906095241923200732125206894985375464365188113715072541539193949577309028192784813408642200806326805543180933617390995907418641179688239725024532312676419926200855483584062601458490336493576620979072763559703288051255438302989787219132003325498753977442986789718784541261394362505962644340852904564666955006670856342722378235696742619296697300867180883190181285336248096337497502232025545585415860160432570410504577930707177240701354453930087330892186096625896980616079326760080089394383297814882019796164046014315007359274081564794587865666950338486149026755257577024894573755622596402018939682446822761456140680402768457684878644419635560099725743516734021249198855642892110495727978087541363309120978549445817830685592563870080063509171698253511202813883750953865987922196946460987950836297641988175491437266216468208320226170998348041994103609010448601707210917827352998699258017859623438643389733126821770003366456535605636986626037622801185122191982631288824232100851725940927620605021442367131083618409906025837885271595472672623795414472429185026095460624993286926658905988086249086618178106358747986864271409399827844549345976773897224647172225924988878258994036546006695933138622472959854461150210801425289403499604351670596225356298010582759008178729790509784784494744932343119281012356178088090257466372302595358067143782120747732514013183734985659415458451190639122966811336188494503174886258866262694652587793523048956937702453188547217590607016792862082286952483467867463554862820983096094222144464133322933765480431130701486141510792168427875941372337651127415240788042174800559787528888937703725287222658935706186958691273063351702007354129001312403153445416758822536240075086591365527021303703809346166021834051535104349387877870812360376086000185088974879698672074452411446868005032179335987557635448423829463286260336084591946695400032301790298023429589407441501271124114874695017153162499468477188794880077673651495460417451191820032869361272064361784241421921813916853834465056860500270682404997695994665528484872782534850685689380433551573766646825568305303516633243344706547711606625966641041749717904179218557466941163808000102414766330627254744217864242640591168049466003882281142103195540144725750448564589347499276696982834820015109778459320232024179859509158764449449646989940719778780565670179758770154649045624087640497556450155369237466902969470457878840603212628710210041115686689537446517450582781955325052970125743622790808986827913622509615246733749032334925855608945055935522960569540567740902635344485012706313154983136337763483072794073281647232867888320446769562064752720381382363937742837128282361362622572117875463355395750049983724489735499951066967451479824853014969592231855313304319340725823373003974272026832575995049010071067456029130937161686622929805092325962916199978281101680288996128313834202918832424944563175147114093234448586082955111001717475539312983403732758954275598271345047359629840231320515496017763622517851241106358713698820468218378849495434132774443617368444212220644579542157496354822265904736791498675462696832382117349520781512373619996841428995741418213879546031463100892715684937425269835771151351227734486446368212898241272183432385672218691450494786719632324522973344157629695887056248500908143712802671212306509857541395590777130822717097611220617183935993444936156502590586994968180219653411006620093345498214199172332381870718614229218504792950695717271685083155825986232392327568823817521943399351411190785855747898336491776223926486075482111088100821465335536460428998703085044906458998256577695728277709505718536778199348827473711793102975207656184929010600976116908171422974532793479966003573205877989544023181086561024850806938972183710640127428728731804003289008323735548610472663463674305805138262400168187754131574008102128544375574231429621922010889915299807837136152540655847290485391860335891982628071818850796570992054690732745930846888940970340307147007457380467183697992663184288640962944585862157664575390551292560674812402715737209459803056976751711821467658538088442181050044297676783330678020855538014772348968555749280206176534200162196860570379421111132859949272388717727789582569272201665406988334615244463751476100001659604553600917321149015571543986441263954048537625477615379341879136613968215201370926716850402213031020518411155651918948297740608014708521699030744491536695246050524417749965022126765372889273310473896304180656857323811195372617509905246582263488846697376696585693120293626943299223130244048153794631606370573814593705531898329187349080114145524528233093017382752541541595310905725336925512921167173960743035434419332287509003604705797886093504126497583721635224952682564031245249857806394129073300849952851485890443411403113389112893348253406223774811455356145062736371591124332429908692795215870958582098269721862066457558969569325824824557084598016706301703439077698449971089761916433441850823332332385887191028400436959173464650190724941149045479709355299929550620702966309782618800659262684492014319391083307634099224255197020260263339954271905800610871518314783062547416597540631101740316725773117955178312962970327175749426126479213911547933576328904919120596934085728631263805996863455614767900281955412705293670854915014596826363547477630598613248694897495384291116079130664370489073493482910494707235609655540486200593543657911771889476279459478375639451033301443991505171853864592762775449849992038773078528976427672151897801647037699585726148583417986768156573748541433581255939685491745632449292276954760973428845044139115513148531229181148295339344673917092852279436499269148894089644857075419513803066692082140370876246159957778897119637589763679557581957496867201256579066440689097045635237999326148251545461061347012087514011651915544587937154037222110070064160771877526235193389112933792272442057471504650887058742742763861518734357666026485227410265429890033277982791405696798380864862157548214348667384542633595871364878664212938438047436610087973722002477111675319712720875251321263214980020986709055407821591143122672479529801827532614382377889651079603774837189059308282099232900638325390161324846037763527377069043005426535781100867377040369123223967683831095768078804237632516860839713534615157362229245699469850393680190092617167011514576665183062832926244379943386492305244986494327904396494805031026178899705608106243063090352373374470415151406106422601475730540822965109599058387631751168236280621234707831223281217224354027298490228907237160157721683254928674287640064791498812087881978063728977397426418634869821666893460758692914889515854888870084263903324566186628780499362153788245047676806048318026968301302858395485638176957337823340513161921784093228434572527458157400207623163614660719230227960018181510547216982924211895326428852011146206099507926040004657845244357006258227565862756016250600846531356628103299555690860461035721033991307090103611980434010627708242403704000580153857499888651286847065421818909503385550464447541968731069895303006133660699167935841440806799317656510887413362943388611647214090889549520867997452957597010050373408923493368620364428121047312688004356418187563287693041189659758144808921065540813666076132792984234766558434120162961416363526844020840688212928984327373342084074496487037117324153848233926279703259887885674077589480400055649796727145485199488864435315824210241701268171776905035149460410354439793645536063165473108912809257185441295773830311713264372080274410043189077511309871438206323086021038467055061396691747814987217250722717026624594654680779757783266715156596003406665820252622910255284085328059814558413556511096052129505516936357363991687367314076184254366565169732508911259740998646383888856759874068822207198500902284904401768745962014991200605903875834637537053853664566268989905722207087103344282064660245720804742346362783932900066963643567603016341440308061795604601999745664372400591586561891632546267255501933548307807444544008167314430007207130661848824244514451132954974786801949387294532098905885241246313151354476755895837282617423470729932520696484694746722552307880394601027007412799830516549427622415391552071030574413588131562916622766433880511472695275672078725625351890451858116704342404937019098007940968864964747498712905885456682560244452268092092724499579375614650988975586368259511393213852986089505901643202838867921574361686712806414655426330880832700361736056930843549556167366400748874874487096156527944388978670200086373035284652110706821212365637925943480010688154820185488760687132890834143443941416352741209321904157912144211314009002148562212004606233134847742127028135566576016100730978357661200559098485799402398379835332288850151178739749225003449647697047299863574634349650470323259082558425730406040676508700225956749999191270187530204267562405635630168466170799596154105198038133384515961571646619681669165158925999022374425422249592255448402796085212158192505745571195884967980713720277885382321936306603054593882799354245011471055607350888332651933840201912417657158498791581620496716779070496606693342665784219674851040965533865714523704227931212927235203911322046257871405979418386616482711389069151114911405854279809225318959832242384362609497227201982682957998030031802403632050986620303641687957675309826611683932876165984203211953424666874457145324267765593110912474034688146670509220128322348932164083560478661552503563550165758057602526527103561985747797485951477216461691287535107929109382430509869188993779885931631917678803874499661448683596047040462719556928856392764906619969850723722237223240209573418843255146391510104785180927282196796767506635019735649400966986850341716746061120597729637999345087230476631773373873103627634236858491034802457232226370325813595109697233417272260175121289277736795116535618504318698790937968612392409396985876381269084291670830615930019061124167060358569363523559556722450460032007569225170941434318467765431452706748336901037551914914292037567735045077097566790177620401319167463156817168175479055500423959001790959184223441437728298459299888999474882907100574835115700900524376147027213829426401969354103577337505690243069820135756007291880149332030590866634028273363189522066501834022392468421425371684707565134649583987378844264622344948373385321225102994767119723777991595085949471883522724567473119347304597033996338438553779968600035557659797175029354005975379801561167495365143629657310058034479817067179883559935464712135957134103364084239643616676817417364553254109880165637445366012408149369731003569644442947367696006129722179953765559399465572773121316065227478131522576150134738586968639106662749743866881780193395301177404299582950483644769809996014614010069366195882649611075482884124852542772103419643017314913146660914388728105598547108293665825763214919975694048226148627101308115548863069611394959943700659156374453853652949086358841033249157772460756103445404943364500943819301395792370621849826957967683581893458146291273473089263282926630914352189983812276192068172401355054430003031387325668330376686550921490248439939619592169758033039413386598605481559676842531051218780756577622977750841968049900885176985441068098196172839904396765053788106949969942781197772782812113280167071301886816185642588642109062289291399343971799450458670954832432030022752131939966603239896620980137234895890848691313998567451806376464847839133260785712075940730580161004599046351427916728899423558172591307359977115631425472615537472087138856285919691796181311405840901240176171537693641453766834411179168433514943293549321298981603875761387183538653090973292656439024696281297453821794704313496845217324253560995643427899100492388590186970355770773879832809435571060748483805129410214221843952212827219342964416810059045007395994092775611425377674850320147005036140036679673091916140412457816053952078674925192344486803851238477547472443830220660970709977580275171008429727755109665048007855080876809021763012737823158136035177943752313737093944495586870292300231859636262861270667922097959572641737429087782553361081300471899845581512195038117171341009286361655762503192749104096312517241369070267703905486300172337548396938712415473509945652847704050062418849969498542320071040617549119080192401653431759035977619415587417050476161827571464041775138342342245388342766445792391123684427411352952130183442198424375165809387504619432201887387235209385842058986167256037068225988192215855889047903483457276170286563494626352687334157535514774137787181508228874732979007035437428234066286619885638575272372590370322375220021617467682394756633506986556514558379907441181387993838510877713753280282742700258359440085337736704092562664065920642837816065260335292090956961392470687356106705769165584413195308290595621242381740634705812734307918209166226970835880219953920966415371984546653400662407284625717841570448765608261715559634170093471598168819404888299022146143406352512392459477641934558221314381012261020867319737819049957653050150932410306934707697343732871257858211679475006638251145016964912185850193848781910930184830537770561104295378351397041846344403010930497269371346319878342342976096505879822801342163023601159740465893203780268175679876397222022805386025198168183900382835904351929012326996166421777040789132455925215020359518750793159589574396863477125617647906106449657198414512690792574149972344498666744939625732279467695069301944780597056308226846276072673113901275467618762725635267630254545309777623929628463515135607051742745331511840651875889635714365741021076949632234678042429060053376407225153470136072493386842116733270685217680888588336493631483154873172419383386424769221188522308293593149438038575741630576983980483965469410126552463844248383724878487665428985449316350393082688308571956141846886208560557683793327679571884210512935777650018723781888925558710402397431983971613265879702347968016708900013581686532366289115871593064952560336619820295783851026623127311504326413584017011719839144220475590705382954254593595451807667950729744182520282691713719547812004509424924696085878961504742834873041599501339851623714350027586594651182336592045545843660175312375957326808648325185176348000812356159027387820211768299932366866935794845727133836128899913378763491451336706472221674866166833911441827700130927205766393453452128708953453082067849230601947275104702379700224697582625391224277609887548417977981508750014122283421327206084400685462218899712241781319183245971476020101799062266979552102162534148161328725252979723877999673429986468563276099523650246976270603938817188239044505952521966383880545127108948528720184292226182257268376786521383534656564051774277438790616560387240306134884339558540663928362799573819240287160900715652761086775228393846388822745684467092422648954467776348371155883621487026695921691443196826657131885774709926513091550226261009684440853064688062091851241980112834082248771710158275990990687442637670891505106144800748257870899190193564310595113028436718158012333550803681760524400211087706521063190193054714699304798059086724532621705793746290855211229001189231399955116231024271156288902689193312252304834691110619193624958575509232908433998254841202006667044012860637141289105076697741963044391724397757510791666074340985080667466477235413912672957530551348185345860357560941730933704144007035706553959236433381498941572693556254105494601769943340675321618427001759413619732254993695905311211208516754265063227559478434570264986577410233831323613594749707503582557587051786844157116053703791227617855983899379629661465907494686972269466275442871386989041669886950019704670531769667136676200040554178077905511540136724712396812574961895833861684390015897817932949631591230579850816764175199502931099689891958291426421144566182809087683396567215603085966735481558097069288289822798140384174005907588510551354531751574517465399681498641886812160157859460013473029407513373350598980555073514962004768480789220064121907059748915132121691324682922961807494964028903880742862053931123416093828845579656201600130893724522289439264085241513381384410186719168261481983860785718465544827665686088860149317888305868469092208388745936877457696160858203316506666686130768743862913253176140577416244930741162026342818779873079443485869453152845191677011756600525827948783166333479222103895468212157946003218812654517519289340942045271619884585242887940656095341612737989226400226715766531884781833390064175645870063780292446114086227860211297784427929001840671734973201282206780772773983849880277344173896308234914071150950423323104700874002795897223039043301416033951763642854786495179178608847879232365425775461416082225854649176546435260384861798199931038369908984580829965376317652347018026528499033223913425156242535943653544168087210789706352041926668249962949785462984629441539860889965195564225283238386164793762037024230867993511651782275028706622061959255191431549224098243171575346710495266060968675515142898713967907890772146467590649719157288515298531209431364669397604934361143565278147946811682998736502944247286249905567554607518145242023626323114537156921641209573690632076511686344611399245551830042289982845772950332269297718106724212676313627365871589152503826517239616895364923006395011064928770609149569784344523618280505982831651384488236062927773890756924852572055965995730524522396940654527856307338533682566387935332689536597283070084411585507019050514650668000125365420654949160720052910536625512760424165858069636653562513350140654185165324395949092037859309612010254652669296880800281442398940668031281275299015602439640537094371000234006555827382557168215132825523811589145772385183106439722994492524757293281320731908338867689912338059099395310670290027659094355920145072177045965551054561805580744700638361004315951456378300210492463468014285358677772864051940917570928507560550935455061371607343137732792931983497890035447838335260531548278137252495714040273760060216295911248924668377396948210126019010578378281654141060520092645853555833320584799617867227945997593763142097188250077388520058578012066335773537852520743041163292002269497320834251028795591602256012322916734208595123879787929402740944029872856860708974938431857399808216615256912758513233792921226972636090159879144959475011552890272404230571380239052570239485786536588114159309552267295524675498215300079993567633224546444389101729423014620196508178982741606576173138646023545189372257489728918045565193183727551622063334503286928917183463586063008093303940149531194906066268336563142481460198589851483145296116028675796451476622581117618498347252343136137204025331468420799022514695808768267607242281676197221498590507897570163786135838698941818883550223299746406013892290822534086087041808889469695986708473699589025996389957193005491560142404088373933959982435270845974474444254347748294018250998223863585293969586032006845780342849942115830274852495890558676140231985355867329968158575757047126665192913573766218543285412291534720134216530445262231278784900298178224197691030387752925817206332399828411365648562414227596911637605106879591404053263800473323158941429505447745209890876626037152246627213307748645460036883594411462520364418074633760351390633569222724122537600729233193550032395480453366228119748611712654843331974319863437190466056162751207676242908176114153906595686396310105357546397314384023867010786577576207457860983579751522885030003742015940238630902593081280000093135730740743944675453581000090852432046611176913034599365561716697436508387570700308577534180251628771179418046713843984466725711593850327101020859347956042039184842992723238488161906774691674732637216430507532417875443502931196405259535453663562500329630582447708863764245621067484299792146688518762451944514510370027351694292147527972039693237074971234183195005869553458900559823523236326505018188260168434161481009000580160996987738473487301694682184344536729391617350362793167233323744431719896125449338824294504010763510618664383324693326119145808893427316259468109587562716955047250117231865322518478110472508315714984541801195748880206460150390462470463709927013719543524613859664522199744715424104960353310566811395337980461871506755161237007657806141580635620008881087301744413926614355325515552589494339860677959524906138232538675666873884949551264531377990835131365644680664154830297600812432862323806252160713444341868053897173507971269451620431604045313440041080662120225024348300080489706507046251440437183711158252914490155526916171222332392739173041454967245282184726407098208797665991599746512895870270297140262002393916542001465528348499019117172433094846317691642404858440644697004682668516133752713586278382516576280730206132111336458447995908242023166198804010143125661207221772573366864001990433381093158975236821040117648115167683761368682690987956633649503733324922180184879028003261904191260586459701543428913626497760223353269702909358869999527441210579620006402923360508339037838251393920604970939830455927226029826433091069462297129043200910585914258336818832888831301123561126523284389849157603901162327152438775383516489967875222518327338212804197727027871367990179485843820181681931949580590066720400505142157908881191540550188900628958671146189974080176213117029439163264446615996937724133267609352800553488623139517524670476628979800320381391749234376610647988155412192414145584846016824109817532758422328464384478636782703999045962332112702743578280670379162879939998492126864562039237113534780776660612720123376713604239572181868196483805660002953982985715247636124647954831134633394135789509716867335344266939740771681316763144933782657756210634777247558151890437840214785454592255956645540312041680687678819943990987712948515549090868647297127564951636604631129337578877268329147602998916152741392580923689527569689733670945288783580355949407776878714950022788669104570106171773949517245749064772201617128285094804768014327648617744039194257989196901103002408662599222889620201216913866109914432539659203702535057282769427056887439164815578073765767138807324575592997542160568146098281434775482744415255716436078030050712378298942410672924886282088312936608240700761762990427529210587500810735685990056219062645387582794248251352830303779169299804143533056912953169914203051416220402976206413295505765537106068326226851757998346331946673718723091609591595570265616805265251282617580490577069510768148916036038079266358048074509175338857572787955492508022259831149948628924459926114745613649920176863299158025965728040909726037781696261466576424067548198153416693046237226779049606628753801591826591448870222264497662910211733140762992440603695052275498401005905795749370112915452375961835485559636191093370177542495367924863719766878024207125966947807960536641976057167740529621826293837681305708751732176919725015786537460220644539664903792639253338945502696176920287783767848053776213842959404697883327313796570928188403439120712446710522406846471570435719371965853093485130386876476509986437138611965332588804046095421482765347594823942614241855975755703398851875268740297510271010205201588275209705922221981773435044520848085157087138499362714241428970037672295992142399540110610766551764253641628088733438149346101499390194678623258483489634357797883983804685911298837592076497083999478526913562513797180768924844026229109342622892646502969161292072085072411836901461027787438379718079929555498840573125704763513570522779835340953651752115978376808879319891950125396372176176269224625986143357759996690261074295922896938300372778134322307711084448814549425736944565554454429077216672707273118163290253108743168785311426206322290730628828369836018630091925773616973892476392731496091823761420569795387231682873922118054254381555761404304086311540395260384858233071400881620082888483322739230151501238127659831259231485319375553765094568037431329532892538447764634559329307495499341057435610377450029061960598616110229292464130781740194359522849045786199116692060858430586314859702043981798032645116357828995170883639531463492900280466803264377170900441459332567221345342916798624662127743323386160158309597028269518264798319427958458655224709015076878039070119983014825794770819631205028228060747218370186519025434088620141877509788642252772633666696400563102882713101544269990624784853230818628926038238504950457084969484666003963163174820048767737881361739369784982917620386628049569942437676472477683409301901628372011578397147207032363990124787505362346818708111659451331701823696017405030806529286000448229843619239001948553021146044329227040675177006147185242367830913987393611196092538894831193382903465402282547580096971894861621322771286692586590311641510849363258035231654973617047119249866861067272620884810488078343072157058201672085452222524519285367576519787022633863833274114630662686193286150196563663392225732189909413025437688199678487230342837817053677096154871126852521101338853007488002206503700638402095260793025787252116214773328681662958522106973746326833130262090031505363667156484953721998798937619545454033276665297234681538870367852949290339222781890390001448908976665016475000728268772605705582465247717912464727286353799463087020854674156047057570925771813614310143396474411241122570790422100417846495660527505244116441300514082348595768929102890959823297237830077680063588006917426557871444746629237574167746326059597337535519144236654453252573831369539575879527558594277550601894337882797885973906436137238462036654162252303558429480764786928701211840247321168045383251899002989660014752850197429946311344619517495072539319085169695143357667050215416023280485905927121073385925713321649921041340442147498750275315580345154528646427318189778512885398069042739074615596917252109963830783879929529982435537369377936682881227587150423755449430837951219839371180894500637731649971480560545611737964644764041336741324058127909955229470592493870991103754304019675078790269638841775130508767283594173745352673571416928553245098007853336065002838697461111488834146681879976968404334721311165155676758832560448871855972814072708886202616032167988260800980443151123955486194172228476882193252901252964453486145372370128507441773924640371095858705551491364879306676915699245701531160786368099751576830016741254490638648352203278675088168158148540574592985429704222475272093104888138604032299678348043917234913577030323049224784482775018120414640278830502765454257538249178243382636634060241451926740199316402137435828246329871464404693441881823445330129597748815648268457010073410944982320324676581111576320599321736078086074817218359549086616196678803557308592098778260210370354035910358972513676377790179742740049053138484437591727835034634311429783548754694250519654444769441527608466128089710602783448326391298147221130223769981788494663865028134220169987534799085114265080701130788210601115064553591806426761987487818644308599639843481241464238305887410059512861323938139067252277322204918599308774191014485961540689365179983202581767341984507702048960011661977976968434623044329161888584603303904128114193566479524249639151642034031690599741744648483537461421963216087454976175418150972562523634900038239572843644491072250337495520380493046959506942472641980051360760014208484627580601776640432172074953868847175472495984866645876323664555839424915023675154370211976140526566889614660777007027482730589784174838476274722025820057036996836713861624665994179999218632642320934301379693595987357522693677898183690072366089489531405834595536680362183264266334262320682549850644668891063613381675152753467730800967450429874456794097500960551352473584470023815595092519073372157489705334305751485926602292730560061294245016416240812047508551118748278594058882831036072820014998995291208724620065983987488246656907940848795513148511513613665922371667186615988493851946280832152031268349641725599156636553861642308479941483210414936947581547942529732274450034163821036643911555042816417932088755832992210914917714865276614653293657458340538174698666437493251516335467672337124494554437543317149907503676284718392791030283645124009566767564293492571191162017747018149403999390316087722003192422167188864224784125603516785680866470805074368075577500669427689138802874108951604703827758209387060554613341238419170601653488178153771005346628243291254712874429255966591505786227876677789402047247113664640322405602642318657437655449028257898970356573429114471247117273560954604746828362435725615865347376453140657557578946112526294998794023782088375186984140936430613266473199327023325623185310990138717679877874376392020801403341935633120210849344570444252449998066229542178764688560016511346124154265267302664413362262617365369536499878202797515428139147460754448605821980194290802848902503800574657144367330517587765979731196567210076305962526134374008042043062197005815490123026221828447620814766694419716351727710645303224820739868003899344420642799653028157461393665883872989166623567549394867870287669766686101200704906238795479383242402502050517870491095617827994247534154932555834730798190091710099592192867791057882396908326825883415189378722982565977779669133807508235983605581949826627010098984035720717837884477038008225600534561147416738518352429298014244670004356908023427429461792681787915675576045902188983854721511517508205167936008715829177803488462623554720661309080490681379427477983896458292394127525558900517539753606383682008580458818798923261086528670431902438969364818638639405099081985641634515147711135949979947361250434982892140945504786016567482250248653983498862923365264237118724845365660600048580490408884517768302500075146398372817922085669113606848216642110482856080040866885173978372917823278472992362411266056508657860178323162971143441503277999855549429416068567115982751499174566835535647506200851550955442796838632853724351102761016056430651772000482034928332022523476970384826561678964908231477792034235002978096956551250185011145974784208773377466131388650913278677283441819667541448963881210901060880285993251619621571156546544396714285897873459038177524937843442306814661093338485398386213131575170864901492161330642072086023194071209745088176604539006827624027860672460724215432369289149438544910713887611997922196967559379285019153167340847284679925555927557343379475012566960174822783458682174423508366268330921448254226706860644412785078713035964591223521406932215070513764185678735319856483974734717694386650758493313853628471907454319686672966194603974584498715623023694265295943949260487416356760366842717690878038762129245173423127829122392236847586597348304410899122088968058348473657131737946502786602691957004093308336415692988986298364885118800003728744551410702865485791687141380064901151221472225841546217542269191962652216752804768101431057074998692651031209762810822209960076553571517660900532568032786607764969239959141612807944375453479041000739954291946368319792236206122639294368708361665272843550545747831489986634502084444366213063372514298219297695380806159910131952066332019309969577390432935400520445271145893865151346598101743873799144375184614548649732228855811165444140960462801080447329176204181931136703605113166619834325225238179619330774586040675021525935958411798639767721308083212290061791417620002248554344239966404253847613304635064478098869711263459254648271913284444527252305152003800429700995674544667250727250872088603513929588794078407489875017445038164872444397062534871091821245024605207756662649143715834462151100599292395970518580990837844255026740716738279233724072325447770773583071335944582759428911482919557721872431899968250077236520385046415704545399608169768029596472269640202194343776227313019307807789571733713823377220955264456219030948449423380559794368760461747120771761911682775229063807450716579499278701065806978945515130389896734865197229847484842400048740636719752538673179771105163595340686260064259270816179457092624043858170407126460626213410042979606007389871067109205224066871697660881943021620160075395454767321016717956569499924008426960884896483134241799624094247413660759252928667235273570574353945298144045876922735295233441942351355894952056976181965776088865098460783614599483517905728682656096597237176624233247485952863355071607030365160228955375483140354443185890114941259070915339445057157470273180530493583996947041941061549935329171083376385760361079891760790194626650537470706572624184665567348822245162167491312300106131508393465722890874994833082507597552263436936965474620388179757000630140491028922513805757027826708995699391934477549953598373964638659410103128138703140731391601189164876251488091058256288024870850160632187262249045502899289124634342849579830021899663212892987565372132532098434943715530095444957715291289519341193824810048763430484595708691944548209484399532572998542755825588498676991912263147623591767823623475268956360661409299380758514757613248906699877889866212544013025866612080249839392724334559977676817045148209662406298850320152318440207498009080694978327297278927224246148665999242114827472890420614566310205631048194423286061837139922714340064280909470773853411131923158440505546621824648946574280592501995180753712533103757074454731883560190401318818638214201872668163696238288667663732354582125047590939170736130031891624271260301279856519602609776503801707418127205283001637285184438185231673293531025530189908010101313926659220235021129530628620208020897841056443081654124777060389763778170497267493640751870721557339946582923168843684230908757383488947624898199013660012859870680459048239311479473426812717166979255701052993267420449088446092181158689571828878779018752361599769610217687222351011200771076283223775972378952230106444968519427634602931374195892229889594268921187612405649842535615909331985058855804088170635592698731823086659068759052122490668479195105506084343805899666898330575052589188724023966850287527338258472654159899558589325802484178036832012126518987790098694251384106342361448702892654545966843000582144068415651055489266491948879508900848480064516528615226302779858232529648609864200926881348908235592179101041524346154744866584299909755092230792600576369976760074472687086398323871504156067197726741987086799216612160011380834616861427831751925097597307777446060742653159454776745990289217907909916639329487052941187259497002717705193540512791966767733538921168042750275775104750821213912353422489743290664349411688789820760169506929775307414572820197421581857873341467905907319393919720345931566807519414392205060725173344739263804642061457282578164291259722165238842777824737450352065151500917493936344604427306302889810164200046599392144673495522976924401501867532530366915735742896400490231715171749854573299578553089399238090417968105929082570263519686299196145982411838469288842909907291229843225928176094896907476387445085257108487376529415803799611675162578706468126695239930264611961656313020458566524353311553072083999013902461241553633551344019689466936448217468737106818993299730546092326189744066796986289244959311421136274375120391841599324132997806528167673346790988355379800098801315951599534797253123945280957941211781250168604568097302180583816019889406893292774942231891442290457997317871639669351299819804276604683075813395776590831197351493551623553645109987645571237473157880269660146553035010009028500075602090825663153033859085227419969145075153347962058563472706181966590804341451253927184899545940052639274873250045424892676617051308110580291647647397121326282843627003367182400554107510804609035491781199122775547807941928436545704980451154552745293569616842526460241809572026991367496734375597638405261202731132788680569097176517090459433951763429443776337340322053285639052321908772066627970248454271092533568443219082314930875412980605485194280249043044201224189576588440321467586344677705202814658967450947101581988009549529217696959729271942142223526394160504244548177261225687821625562071703553363343787026029480027867949426748342376786358245623657542898449467089868352975325854803438095605802550475969984250886868016864836102077273760677895049960914622950930555957975610726313577755186878088896826833038912530038818493945315829717027996241128747856313219863214811425749276368820628066077583739118510464587228829812077548640069585704898224462895531963297804368578484295239327891236673170244665888520613724104678242529675019786943049294995483328405411074588675573211000042488511850621104404998169821688693524574728897281739913013248145270745899573642867296441063764297398875324091662059959832169773650142600121449803913479309821404459082954672535224609245616581422028173954587199944875867797782250316003548634957170233314684153944491518923352886587622512935805684045171631742245686257828666007300825276103747736893908852078212488951717459246281615662214952584465063160834580039640887128026966936717060175195825118239658387676297764161375258594531576325969655627005319601757473003887728685383316280519561865487981062480194017175167584300829360575081203114472742841771776599495185682050887460498604692225489971043157456734601168802828626802402416913792099505496802612363081900500013271184815569548361522829420274781905715931954115339220930798593741016193033775302342510207750447289629625774984678252213287211892380502412044748038212331049516734989106790755451676687959376577855328030075263056182678151414394078188054476703102203829325485493847060044357756376072020820805299878775300775748349059142446797959340519241116660205670662353315960059142943923882443346587194317317530731144069499199421693497503492199478277174914462556972089314640177326096259098319878148589242825593606792592045671573132567602526809389480407063544194222485936579466351691319247258457269005530354231090202579737195784620845157638615269390508213712519890101715884459120599187445167567413948781342114284133949989849357337003742100906872592848608410397232911612310441574666778770112257934763774022566177534957068427118981880413446784018931252819301294104951020546237746344188336798243785773167153113330006003840294833664971897849006445441192233248839959513840380621371189644752185012709338212395964686721032823752349912089431245259077245297518752790013638056229629503043353317059499513658043154326024694352692313530657371189919589342310666841732120047932792743714263865667126853367144614451599155791336563105136623969467167138099878541535982899237085085096140195868956022280461434219086950417942934665715619272424404550086485388930717183010782885111319318242111975527774990006897028458483329869239125796220085627538294694048824660204144550660652765269290103714294675470433972811900886846581153954334426629234589837438270521461706993261618328255732276107098749668181532425284196751968431338251319517089808582821692968858064430642038721104327857988217310212430821440036233361412978375907199175891219607143292232248696795202641507270781167158031509065865515990796672699940392114288038275863478501405087201807170293856489723408776007338698059288774534273752094863129200219191403701128758751456175476645173830610284247307685573503680525353674136976029743592218516372830226862335577015771085047585762915371096045327474807347212701850405833358998828355309638189046677181941917966005341513882332157020800172256639378448619233490051055809580769993922722238470166806501495477798257139109910910359414562831651597798638334763565134186121735053848057304722002504209409901813776580620043877790709716788897773940663121575889751996043251968350795715668561139662609319694864063248753918805946325210167742634034700247796374893148678198901216111848207047783619162343349126208055212363797721461249367084174304425766106878995007944818315441303544945088215414712328061421709053831828106153382445361494447473943507671568429155213627550857187449855945035864953327106756101087557418764859017162536311154013519881107412746775941108155528764231193545427907929317498060425611229737214434119319153208086413582667325015322374788671288714736488777477975911687962858318474479558073762056126703405984343862126963331520792615495814926347286536436978290673306509404435359299115185918403867230552096447958495181439330171175683626319686400386695102053895241130333132790919677452096711714660579999414521263787844181539957269288817125109007032049409794832309123011018445425852079500018959406348257015267518791857410284557201052475658788470758523737042216640398503196400012741666787923793323159260111400492256392435561629353824504011220426894329400250841621751568878407030943808866847943410440268356264907300769073850369361067373204851074909213345967721793417589896142710245956576910584291376102116067806350690511754971456133059280620627861808374126452873849151125083490956774174843580009149860412313970780345290143894588648406147290474659467409085404236760799826984389772025595927360399932784519615379498128736040057995877573167492610573359256269937370796712756834397169145083920701007835369860446140448665732492541791145464967470598305005016286840685055174441964365485806647938242473103245670681659501172008100474292116309572729674791216100938840854833521165245338857024173029392234473481785697509732059138008458834280048104383469920721904274205073007905077938284256350469685043877896101881399924656869690755452183128965840117347420153669062498110126917896854294046751720143424824464479188431659770790103630550040736738317939001790728545753106776221538774324322816751679981556306337357759999034700048119035390145521571472155331777748107959356374616553281548522375382561378736210397142085786918659632034194815394732049260035651722994538255165754831258501781989339675295963773511247096151146286656092953244577036230488070543176205135125120848906296821073341167221352875586908046248693860118852761755295656985562177783750258769310880121241685463769073718200097434129045790546325331230703249406112961711932615242314865958899392055503303683519656417022283343898467698730976632465490977978971247520075371742510769117144473806564962578983721943985839160492125449321839852250093761880784700912510112429321353099284522886856266757423326717126777013851367219938411392679014531529661214324760067461593868417701215539366269903789428065642781745125271773944564861508531071944018247724813816988054714798813284963726115565551413172190350644814863957143354731279316240547741649587717240144797248360249052713563646069400088958532598323147490845729464331962426012284908237718904948892212033028260975031806439487657813483748540597812139687521444328116073997204698954536511985502106599490633182408421504447455960520933368575325706785858953802800657314410459750475214759253095584775177155092753478750152971482650163616122655416378994943000201518642404883181237716885879581464011070429549317406152617665605471336730933434310226161523294941082903488873759666586799932366266468427723270190160090435228441548492737620425392779440933045577025403583843093992653602193714473267803280445858331466186786015298403459577347125209360702033638551995816418177445554521361445378512294571635913520132458330565646001256061256805535593886671937463635753246571359357623818833329400927271164240401528582993758180320857335805638171012706042187861134216770420585627258074896177720968409603313452229721041087131150549272235110591048066582639989158322261090088512320146843335403278892115813109234729540642031033522257631250692307500056659164581538183181855781962884447868795171902967136187040847205334109916196736437930716688978977525652608469601973585336121064431728406129416321877415305740145168026351142565817046700612229114533273272374597414298038785274425072550523460724213717780297999389929161639783919738269266186497318396048282473506859638563727746754784997729456691169936719905927215859127969662099254853057208810200965194417555159256995481423532250793053608270424803220381803482705322592164469704812953265243886051225744743600849866845472764579170336491402372317085175527468554385099000699312061518962659742560242532491858953100639421209033583523051665777757422164974419340792247127928748985215899611444935887857823623168497513570185617748834319610964772301878331595347835190246066666743110960940985901171565845370819484654244309875091755593726309994314392106876838032217916149491400009272121712488444785039510529659136962776360887990174064301485213983955853720657016001687708746827824926811366009221863167238602423480210467662448162130887209461787790809023108140247948907761497380703126118632227295048745233336358326945782527631515001489602720996598835615079827281087983940998704745408592739850372288866834727575151764246783240822935480303000142549466521164935329731685586648332186865378660014906113366831351050640188879747237435782801545972788718145360708078374107314483239477426667037450087301612202067365993209472300321215897458403970468757323266148092090922375816926440419811048097465022924533167392631021183378735713675312792059287025384643032422170502785613286072504945032799590368431647231806687928698800535431192110723890761132029349062939576136555296146426652219278525946871902412757903615173997635109684655875649442475856143441992182150146519067952294715300906288120624215863586555534551318823061787743371574449869444922643239490977300389609407678368630161851464066332340290628858655881587873334418115136148347621777751984706764875762641929284985077624443275508369214088877716825713893908402959813054342240567573715373262073747788601346360018025401682534585092877782277572464778149351731950681371101694530756598810143338922912604490257328737315585027483811924019450247330777878453078372635416775121790574040859040842349006958787368481353985902812008423021046605712300697314719353078941841328032370397308694387076121328138893839953907177571853671344663618078931444894583998016023788637147804635432188969804947882092490742510077820520656462121954313602819885248729234242888060492770876808208013463504090436444487292599044691889139175653447968015451956448323263188839957292739703733230668874728055799495270612536371498190473198261404123324127469989957544939686185142981547408821581414451195463868520561789706003180510202876705136135026519622591149198296987295746786986688458720750848482207477820888266536796412460050215770393840537389045341151662786566391683086676766814456710798260897124003159074437239109583965271905810310823347330845827881491700172448109606174296124620081919278204043044369988640037599297692654189156889375116287964683520393104867012364402534213930117324207259999210093007982963518957908570649091334716746548605915823173931683753824356179928832714716202100836065076414107420938679096161054405073927279289557024831690255493783693122351734811982726463843345880703194610195876923224020280962233764394961913414496662649747768909895714733596559546913038646851047007174588731750831397429471265289376577029607126004183615980307909607909210742345735860376412561644053878182049627707579165977427531409511931711808813945171484579326419143449379848561779193400564503141034356440657389233921135950585257908593712370552265128227652624112097173078684911618497059375100018878469384395131226348433587849153966581300133899442472121515214442403508747931529816616701203871874369534539854412603013549188168581040078431312158712054764487324657293470625318664641739988661689380747122079403145405890607099508826669364598797012580328629626126905625360826988159528939151162399417805614984577828997695090050057618923375808732107487898483447116867557670920872860866506101663648796894874186782418047031686759060540574431210800456708259584053712796905904293735626618128903125583684539118121841124011418959676140289636690466058186711132266664976108383081382470564541386572642763514822851092973467905362992491023063678748436517214893943581274984201319694588305982391869872814948225996990110824718883087483018157111703081943131150383067508644030083427039131777693374648215122470530794008251758446171477388996840430594244336053178706212555119190012365798604329084214901926419851361934107634639565469269404236321329423113856105778544944004741064881710423439213949330051053846749608275594597443231506616867018859255943336619493368004381461252471601857521650646081964610799622611522908392157048761388474610246232878422955643124804621193876003029753539216519936805513309856780892968049003729943803989839866607306340920920616955018704873013811981436895170279497629257983840775232522856128328903536778068502903692458508592553260176272305500093498139251369350326614921538637030602061382284483291128223335163221083396582445159464569819851326785848870521109253250393035219019820759886694149293258563565111290905209669321845741232118152526642105920828106521580285031000503924320346064154795051949950889477960107222585602491948516945232089074217625141474434013093453241578286167712731816443419430544365171174573264865223264498596383094848583009806993358676505366416898418429105653054419110676515191555017110103621988457346105639689259654595047610561220456528443049116530964396985145043571717826897484228708872962704821870205383391688906101886757069629020396113822975910499304864228717798927072930665172610742707443759802038113216024782436789791985080697405284738705135824520296419955866020096205951056562097491115014948446335587053316709762799344164661328410906680579050934814411901384706046652195659637773976135331434481395563583032672909647321449812553292496164150709183010390891860666916039973060208694210932461788349230081040041634454386211871410376432024481741013945975806934553679771010585182314198165169845362608943925283233493313796332024759272131871729304794180516308376944494181346293530149579237225053473020193906708507355558065255162059592454899769290231332590473192063666689259179086777916866377745811692353067020748236866089129872766931727311750700069275767819645035061354800450663195388680339840458548165864120651209338738086116190741675141655793342407721045811335998994393525364230566071060951400301068008739771528923381349867249899239676168931441186197715856015411326319996266740624368811985399722520071617736956289122199127090585949503686459795670106337982422112266127985285987353258620459401413184889335506490057755941382180855311194338239927722326314809311368370652284395934813076022502698919661114839204089149702954000908018586043269206263000546635281023669285257521539735838028235631580832414248316970143738744152506946069923773483730424308076559991681785900063374502810811978549926844439853142576198448577586518439277633606821970384109730955428354970510073685746472518989127169741293794393725867741224010276185805256124685190770083456428874941752319025499779320164101034697189990761760427815910610110672293638082060782388296705017037643617867636217849457330831659777420980006882205780985565272094436550051765559603924576927758205954893825527082361857405541250756491504762960735282563657427810747856354576555102448659680750822105682488424785492270326515381970660807836949613594315833243485038779272994439282572522913115213205846550561824100737519384228606042942354942477453001203583984305371253895552492794304476433211462868923470777031674145664393853288190052646133600168470600714464606037002243407236359725180595887431381320145539138801830496886303395229834846828764042312782701051770051844841839680080396611384205129911093654189270280638693177330477468200454759528611003158912954725873809014706509362444552209066139846762289644574336089667783848517575177935964547213813923252847137410080089467395910183374301172979251796589190378502383858274783827630836005438762644588230218497154265767669517161847882548284657876422245394144630877121547492341695408618267568515944869926122326563631216533743818783474166869691163225177871063444420324425682676080285036799119660072185905403989998800006951058589927653485734653099712573771420122608532966729357315383379472514763947234715232928843869427403207183075929864722204688562424779384661329285862820651336240136574696755380450384107693946224281273466744938861942827062581369651122683145156493225504322746751828085033178190548495948432611544314561423936043323713019387488101711414670909510701088063701614838734534305571680847450448439058249492864062984392401356911256301754632385131944859696075315239056119382767665763537206261956555665372414760094321131099946422140400626531793913907639224217307851358459053036451152042537231437715826168545378324410010489146663437464033446206390405360052597662662517312323891534115586784162586882692933843083888420419075057248530122126748123804640615835851570864541672116676466836567304133394260830300142704156255941015199970226389134059559427532321067423218809387901946977195457459701179959889757244221321316554234392297063427982489276091068967221180995463955759321041394282061809161978859562616639991203012400315734023676489967420964609573442498560161450460445327438060810172447243155877145902881676579212516370752261805530699970367004533201776271431198357374391893532659458597131077709933567839901479775775277515571589049237160509819448817477914961266835118268785467152834760361385500311743535535265984484329551391456019551400137775597317373071915771026253919121991643867274964694524560495594375996975183230795293960840692754149900213425423877450654789198073448631108716364815619281789464130461252470536730820683193649525227263088080803710367053783122504618657998564243502352071344695085186440782126870056202926653068537412492103663754956085831768992438806058430869178729094060358484485017111403966341749158275374736190285654569833147566481978275147548409639459014510508206175307953827204899356880653115609431057501558484162578527533810099973981303998995309967699687653333604210076316375744269580666303704839269910803655712390683076951992115083366381371826798263808081096507784285020737199150783504941737419154823271949735818308297571683155201598194948430221195662347144617561463272940445611234315458258897803571896290596508160650285024169696924469153121643140716460740400834983312683949295695992933317638896142485501186807048728821155328087241817801657503707030828140678431976458825254309587239815169697162045615751008725987429801727818263681042273145957763234167006244284538140852978369063846242542038091190593668845739118355333090504590694914995931292380798999206241400193856616059246958790731781654749259381885158113080212971453647422055403701000755442856476967535365154359851916719248784854866492066181804597524369881646827761468700150578070570995239580669941071260299562635153265060462246106990654098499370798880218833998043930374946770663503619319159356236610784014019022420440730438171259983680502002522253683935114970387594622420441501433018820981771811766974274445299338494867677975775677432687022699795967633339238789684300501118986256535950972479146318378129111305458283541784143584227289194497715658107111020028649468078349936956179778423027636417897134005337269114003623299479386206882975391152406257860951149521781395300824065572295810085855112940979632356329396484987844382567198657841846729680666352654133915100717252015714769160246564793497306538588560933087161972746270779951356762669812368085567147212914848041403338990089198087370452240243803272019866622210564788839047808388675011836059622203952358201980374654387879247519157636301766287894662290621710944537660225078294067659681110793907720723548755715568919875958377752365849761668884141356770152589045665436608898507764344703300811772235225485313242921775977195929872697843359052378842279910169424003500377172666704841726070440772801692132313857983630552079421691942804898256783497803985326282257901364916050256765345082167458370247547540563391331815574133290260540326546719959463198183926885315445075636542849909767949398293602713257042039709374522323932978968993136237021769214801607278101449311860216416761569314366119189854240893549104672065880024119876115950069355442512062027798643956470107115925477424840763609225215504483906841002042672162931417615415865638222958327555026506787137071292582249732994625931801077944376061122364117350617341248157942769142562600892174612679106494946764010727257789240828213706987505047417979211369526452238304529578406739778197936966941902550375137285007136771260643224138893987469752045175402093980214549875661308515171546127089959779640215978687356770007243881011587794912551197930177085978147042805154159529128607707513913809388402284098232424061800452992365287199116658200085886699599337410867524373533387583614364405640435393995825536233802597214452016075715682763214083175395844099744990210504951004812616766516980615918852579390947489371949714298411108213947045309475313432136296612716244281229511133123035026500974851606096684736932094514261109266811458602022710822152571451105410083927476076139786278206204640364910784161620096890078952763732202231276430662316701989896649032166374973072718383704086242892255675392069401397624266871729438017447402393937275791897083618981418723253591015150377060218113530187489941078434801093979855331485024040545646649721795757152296919159740201329296637205852875246285603048762436232059990691928339849632166424481381696546206845127885034453953860589175273377347353799577721888637366647304004614814566696194839752922346398187767650400575119804398993303944271737722883175545179524389176980078104951423490445883865149718268197268931242002260703860503481564892815439825655718427275793519847057265392443692534986389053933609860384313275568079301958569581562753824133612418240828929256863229734657175236245720202657159619084843977623368089931397082630768571940443906483191494477988417737549565369590213086586641999821917005278121332384740882004512283747285062417183890566748850077873735294419252462259857507816463298254979222699962162204806241705853096913863448519836154652508952697606590234911462330850034761495086097796326610130211576332009790443186542061240136761174671159265118483578791382933269025717846383134196216513035690870924387212169005562108853823152623412250925764898772010672303674158530087140469222172666316416597790307835259602190832118755612128748082124285063711000349897382397196237105900502857149047260199240921037902299094575386637437041814743971148495398941777476409545800541644369280974598737641610300811027879808055187649918188159668475301123326731828514518545203665430114346771483936358569426017273461836841411790925606961965644178195558534876831012792778185697260321318498223694932496090859765551561122490686753655186445246423492415232522010110740327816441681761851706934714258057709268431584545064762218295019042111890444546270805881785073504606568483339287791308546009123735127876818338331752233998806777068058441189237198649003080779130768666671371786292333488407619175154214416610646988966972983587597347038442957309812016663063133127298195673527610785805517979353848309492905162657119143483994643097415154105160072759552161898446843012139179685238667383443491926929722228261461064706678361335408194413531054929960686134146663893655861566158877552306140248789951812950463099837257430552851895840893755363185997654925223544627021067061123615650317233401613176400825481967967185986882827526849693045917188813075378450580518195195123133693066417879556371585118519795777118987731875259905222385665823995429330503691284099253911752136799986583629064183538968381664146773810015705274581872561730802342054322207528852852243866630761530412241170251498635891252569417000441057261126632713441816078431047819161520105487639232899708689546283009408269071789236113654475853405482984894369388996742684506103229816806189995991321255438598101259265608072023829452837964681874610826322579071780032689622230303046811965847038570750497359304128433554588928073518487036426525770552420806952558609603418989517872415276395372172514807728426626822738770022434688284883432080098540289114754532131635368151665625802269840798161890931736335958780217570562653481354940052945339143328356192487117470423022706027816552623130544798862914806844449644773097853852637801779370301559344137913066005706668993147018406828082433098104242289332139091963259783470032029188010188876914779177883297261856739792980934902027443469926388041724041434972570369769935925549976423539296200154628790744663635688192220868021688741190069297585261505442043496595331247567080992818740300413517587790669145992065144005452674260803084121718135013006550255036369398250015532774398765785894180039551224102171525838028224390836471664696823805844758230175407945595313584690603700713462544162289954134814878272139978612269240726223434876705569380094782171732372333258101717007775850692724515457916624598327155576753991239445763214046809400083219748759221310697639455860575405533965190614440092181530142820477013054300315228373072546127113519725382572691497675139139278147765661108626707196334821075790809944333021461470083775014526705276030600627649039866070893904881219372606245586108772506344063923463566070693598349454741271895639847965619698710841976476246229624219838757102325807936136940480559232881567772177553153589742703505180598125203408090642020231760222504999611276678501784762916857833728317163929424379354245942491704305861319453782806998643069849540632288250712441820182955861162735342431948570106357979809955795060057597666520235658329781359541035515599253817439931630289873231625786528142487651401236507236440033985501553656853242372037178460828919248325860790480502051894521352123883087077311049730107099998308490360352075235200332825462451876554651101472028498346983803961898555121300072921453396772904288105915988937631935895537165646938710847590445460163915255952497855830592671949556046309730565306523469106442313930820493990837501173267332390136077328767212777716781890003628984599604776995369613098625645877845203417219080354188080044822181032575055958988772552663897189490959989403319950375161002778263941409480093525780255508968523827612237869828780082498045297489551398086726818422681464986832345426874929940000917790776744391436598983693761910639944212419296653371058678799162707733288315597553016614718483136448115593882011480830901157034234351145740003646398499518705496450060917350064742587979573948706097579035579101039405680564824848676089018133744978186271285532883095231658833347284904106727815698890732639512201403746968935476645989037251072251406769496840321833721602655969129532845264719203722055480198480593985520965577053799671497353602083185006612371773902636456647756238768476900183918411579958290148176560421948126736297017674556166883489234594750814721213144188713204477783692551341106576416756330806934373111351302779033614978262070713109551990813800822966695205451640026399289135058257265261591705605353814431855278339260198624663423546808309274319236469799486577760083295609623277021321567314125303261130159579935699636932442674936617587079375982589159965680648671303758969978528931319119914326089167986776738849557995647470718114676435819510129647406424089087629520294134164671236938192870841121354870583730803303831293883542246878180365760767697871249176537265858769709724015972554010727391100243129489915197224781757383600707234439552514157335228016380872694615372698610759166980002923698503989605764651262427815073526970632580669535970875723553637158303676637843888863106887635099101907826619900525796334962627881868711283675872638856724147329886390198297948763397917392433312335739170649158844453179384458422914195384248833388117176804859061477210004303774869048534746594550183064885392228117033710525657351665573853085498144942415387225505495133794543244141530301304861318617052318080057509232126466987775020273560488530789868484628685777434589747707266137729876550149325702967486392474412524461970374236204161972609548844886558654727233784061362748515147832735917819961037364477988055734686653584819232534822976652592066885954512440299734696854011288534150629176315591401287226320051132346265762398446791505319089226073292881906266244979128396330549396829843613009839907435755641175077031387458151089409508741900274866251103983412796765732460697750929175232677543164460516862592611536003268494972308366019404144007280856097900422937099996030004503840771290002966454333315196985207459295469511694058962769240884258982302498254165210033835289874751076901455473681952338882135936362096326681320088418049296144455491807218811491393488832267738900435791926927492405486415937221530237368488784782480309551933277038261903689329040160571221683433487703974269911213933272643078714136660168310088638639202471763726094447974675189115230458043605192418674736679210137303237868149259643547086793830861954445475148497589081240430892600084954605600597832701878040292292043612889852955269553328529611105669993926992143382387046867374185881615069788479967181607733327885925314544490804262793253499886304077118414325185705371969534242464482621746344077813368859751991755420439305515194557001730031127635629794479928974900027750807211912037427243548646364967473383586777876427395373850326339973823044175491427330438707079052104384286488147348070091024700857018011929988908012030259039361055577295879896260968743260082176650513680367864800669041134158141335334707627587416891631831956975083396207051318648239865979428267576934413720781950855918390283331945472204666509186482948983952594089664361888944099178157988951310790469497987693812271563322983284964183314908378179367570847027289840245798764158585176018692949560180751934504178000090300558557071220611376501007000992920713669475881554184024554116790070888295557961413455854957207243760091475873930971820035503794669434533643708378080712424265181744899847152787021204575125002694631193004060414748741589296729789938113049199643159080508605327034284792808679109194017442731359619008108701242976592275477628918986976239927677093908273744563838886478941515248208774026131145035126232870674288326268023635152491720181286761981154631160657753687892695580205984147728560375341894298573899953657426592212865116564784264150146158290522841082465206562460468852642694241674539367289852284881372509102206896097923046255642192955835008253815507330771768526199884550068337663482235898924354070495792507378450703915029241580550317736083172695170484218027919794020825358616388078413976671729446842540096717048424594888799047371911996170340067692165509935860198339161748001434208949139948897667917358987366588529715642164488892657437041911438143980096129817468213479994925484463346275921066774701792094212830694456095043146829009774580635445501808091609917725609335723871416782372026445742888810335652311596668460528133910309827249098558468427950691264693555415719578237729483937859722862724453274990120240185574538337986257590091720543387375821279599360576725451708525306981982258603786535025302377469221148284597659853143105329302481744230730931642114615614147325450679780917378135425675399684204605563227807513613968224026438689075587899800888498383898245828685710460176483264672651150495698086512378219582225866953843374107940639075752119041251889469894537782768022109860789719592711418808126226766912685419252604635315397642298467227035820000283098302561460512288051219719252195778141258091676707730299492525905204066536270872360746836959917884989786069669924615663930231529085548958539127286490782943302549909740555745841633151094728260969777889903988690954679112592570722640999049043821556636449343443290458917592550014610574311294247256547898783659407235758390986248373394598293395421041560808848116783487654770793481002270921073854319889293256220741839455616831678686158366954042799236347017604987345971282894661709746771977003717684081545634487282854762933412906626567657552953638810380979335683511453090419867004528475575498388233253144765227757504444714583620618838834936076823183166858749990427994367711503604453275016970006637411766988754249949458796056556434422501729608072249191876223755307433338538540684443147337774298793288520757165483280100230728892772719526872716973381048131573805110662164670335335152126623616719145611319270555607623802181193444453362486184087900668009117710803237989038207360763028119417744050416212857598220280511510934784846127534803325487249569954594115887556709919281441263715886142486991477271264886615569597884905296011402809897096074328494027274222652432046902378523341474927549782177963593299503044760884286111773944786377382184680517244263880539800487628486553761044975350164516890781968147168674075448040809440073206973154715614828983287013964011283449099203185308768664526234423426292407579378644911905775322737863276530611337771187117104350045804463938843846669009779965188698991932364529455189844803813560738722916165934034183291904071950110082769073680348059133264686416302914911891200386001026143530786457351034983850738055066451907148732443040291219711825728997234743904472243528134078411461791935193951861972428434609316224469998429446503085201918391815548268937996368641621921395400717524555364263950097579344720413408423699622252801145405057407461695335425502590739231097297593871875453597349205126046962139788593478860721199260205739978353468364326064714279495309406150412509784863974436275349819452170385577342170473122994993104180865147120674939041842481373555492244119606083994238981804653542669471250871628986547701909569033543081911339921481598482234821033940692296641803058901558712112653729594215697166224684599468041195244840619878968041775298413970578125550500792240827164151666790835568809502327593709688497544349595545582792808622755361013587470044790321367125029431153889931712477358852590173333446143743289816586219845694169887524499997537043444426775766849137933843006968686424321280363236175026310556390367852115942284839652203832377855448134105025736694463478334055673158383038918793850184378915431880389557978593560564490216605164314275724144017126619965010416574147063030242938872138168024242609182625496540011406795657685593251947681177711099045859864446802692382652605977104929559580420600820930861208781787243268050224274070630899339942625793122774250016811634996681282407788124333270377045740064282499425522476812951835936325805565951512025188397136102494693351089690886876210451670482273037645965699062825297337657639493714778391031159763756862354265305868838516563721698883597708143714556886773843661297284740537236462259044020583253811194424130790431763398700389988008812233742554156390326116610815804357151533287074064023944466848147215240854433676107469649951475770807514078681876758956206819175408056894902746862603798867192109705524970287189788055873220013199605794195719070610287268440911069461117315587846854378086647065618963099850952412518449092749320605586717405456491276210446972352643126059454754218465742465930915621952829621876257707707953462581106127015334314218918955730116346585817144061921672151223646948499997286932596788210489157827340761916128017203010679695817452073517578281231890279478337024479343283230052510135962570311476310631945839669752433038267013960614835767124039793297487158046169889545302501525278382655817389192246959903543191717295555051428636614337732978286642135041414296458830445271661046453932480191516775555316513686989819509514530449947835541510407966212570298934267176186219477525967143062115442549820472282588030415459670992581893645017405090622368225033322756343720297577861358326487661732279091470309052441397952353163246037505443105063082308438160855322516442360386027022025674626041445062076440852117328575099869664891386515948013171781239780987902247530330961855318353554295870941297178196789387766704544154884082151751571764585794025132386287107980090659976511903302785121312882493964108558641447354405953315237382077835951955062847269617667368180133855524615349876414531279257253340578041493299939228934466599357215686593878790564770271822360363953119743299738429437094549111774106805964871371184658524116358635510433838435666171014780658653195442030943615031802759868860862958403761196768111712990403305015541471965702299598929143113578169143978127834153238656276153733922178020031084732363054036152162583660450406158201823566236858559678699088104008179106746804339258659768877108674716869692483869034283086373589118570842789431841265968580090457446886498427031020437518195214508352566755564728429093331763171946203410027041041940522039215349852287478918485363656557692096170242290485880549361798681327512155809661482729665886313697793481420107016243236649571502319564943736034486457749329706312222492242660319418694344155931907128548496611593435025318088971711581943756026481647563045283944110504347211788288636143554383954398431053838254559759397412972429925890411882188855530221407120598210277217848705693306585555355830117444231887354566334691893082490551932372401878425907978208166652372638809470525284437394659856403354344743807230755720285711784642649575090627388584945029166031960384328521402559142717026067656691255068211576703945299156297034651115291765229037866662876622057797909856556225116586583565608475140348532586230716224929065612888171805755407551453389124324694311509074183224957488377272257111766214586192690609876957408037040889061939557625516420472397711727174853499385884392240779487561451067926360321038071369739906475755779413508624841291861268877380315029466640609549875784119410233858956111721845310738936645679276918111827777815487790779191375246678769061969764539989673264082389734755075359137238497861089699117956177065571243408724340737680527180499036953395904476166205583944668820954181901893941899813881123004934000100147261360252855669376333180213888566412790321505151209848365329119332967071356404121197094662654738907884974994250579269232086786667117752468515135116215351642780493480328668173847600028633014868229297040354427808419671634812639976693112809123952299420761467543497439900724853942279641711002201457641717502503608502665703058380503140128432925331386382991275345641687189502836546739035818015613540573402508897606216977971956357258217346680356808427006197579886826961792927889832827821858595139705637424033851158490108237517608959838455805314754762691240242901617833982441091854967739430793601040982429279707577846894328674979865830725087450949693713758880457625341369486314321598914442668088622803177929621868198186924692448096786946592761992792168724867298988689358325646092011582372556632297919375839049241495876214213498392051506608338228783159577522050177993964446341460546808825593766014224464650344662663394496703270549542754521027420175861542132541277512666448968427895182297410703331573960481335487063002812559381367881684573076211108727403506794286729466147691155868019823090983148592990131282431691894057748014809278076577487564764046328361763064775592507000417899294479356587017265483038234384740954900430112987115504738505300047767857958363294310033778951863740800496891493414495888840645839288531111579799301157739548242614037350977171698140087515281086703662249838523217879073500480008779360405224465023243101077557741064844584312994556707496131327521419482029554589746904526228058632771491128256722411609023588171699653706050686136904507642818788872154761476126108258055573091096597486926073475581307133258610557608104268225942152905824015547187311468176935643141376225513798555224563005496333397172951234820046966652423059566107098356257825008809430762669396509495913222617136583934327645778526896513582225213503927693730994698540471669129627941254789371262278620347384744015379030257953877091921552795218484164927827971743398306830266557431618202802919420763698933901745514081113539104264705741475466286107277181127713068028496102861720704115969490694199892536701013585238438358481036558164569033779856661146229019992531578486703473875892212470594718154426180775744197316733529444253118147562273415469777869046544591109494110449480022098385665244400700277417985337917229261594504893588077159826346710063491893783081744511248958105744330754493000656222289189287024089215128534719320890229703697562213124943399809070594710993085781911057894939229145434280678515657365221066193484101057465726885892487632819610272645026609311232068124070113839795152405156624937785328246783834692568259454509367789011026990080679538841604987354849954057076851617200920493894716292647386427884488030518432575499847115495784060328767402214900931837041222426932156891397061164617154836723814150832695265938430851465339489063667935985639260087295362400371563370638383768173611701074544633906233282758659170364414749980809499789077422279370064465640527318258227243579280072404239741500913125255394897851692579287026508262995720570903033047534846707700311900814284110720389633585390758845804963277489716280232588300612435065039697012097916498163643069025671275713857549911999203545237672284944262614778676094508223342657261074822802642945239333887434716877220363359862493630350121066631300892020372588066456212497745150769290238828614896637406323562583257715526859248599116778224341875467577676238159947376454377959980897919805901916757443469101863262794504577858655896259135654363951933551257348575396135240290719952490434062573382982169127337378526579533927989231826422014260217133000028871259117602859790410949075941955441546759264148012174932116085943098949210314880853445853506061731120312233711511084243902875870875200190659928821113867125714571563833330584887583929110757834306190036128263362863238935990601188788570618349629570843626474433474729764956079717015810798249543167324256002508330544704291481084949956703716742957577217078842069629755241749588431091550229494428639229257863667732697713629485452733019676312259920555191177733391542708560422341620359073306074757482747111491463853348144066434757035534892099061687927178940203496315882267724671766313353581767417406474013268387777433475827803269869341554732398904715296481161848586852989978320650302690073482833194087484516924681332217947144502915492291028289460745183121970994512401021788372011683129198600333818685509856427225508174367407132118603377737901697631562895196215237004905032110956795669336267695643965818223442861878949171092759394697165569132072778501288682666140748690891942667726286101410938897987531132140916990099143912283029165467634886650589321255204504608144173545712815731183970087681335236443804768235015400126992555179755506606427354956448143113122476870831736110954229112098450077968557823259857429263444983279843354599655768750366570466761036484024568029832511993066145196043271445742399323060408385020543484096868304772804888982060024982074954186873671184093704798724665022317934533236237161087788638008668772326627390955782388940584169435765538636620870114294990551923768726181242115703245267472391180668823841246911620474331292109822760672780785394868514353857138797882342593463292818513372273072165160688052203232517901660003908726311818237658793937562165940284744025691280485832407798995668863945505507115540133764531535704888636955020914308119755685125446199084439546668501070971482692921359900855847777159895494284014836436391685432245733424307721179254192087153094724825734115871610609466953147482800892011924127220985100741717222401310543889436134505572885783878056771563568631750732363242360578056120484843013269039200740990514043803810872480163802327209173717691137997236023125095085754404919621656938155709013255868676034293923516607901160800835092785053990221289932815135420436384664121298600710498050273294209056804684224623303181874981114260426123570268232323278565310417431125360205276267741268743907271405943851345968264104485520536380613306786698277174223243860168739919810610436660692553420859576703124697131207399165900055356387823818699151002313551876840311577504027653122013000314498465636512232405185801868502116528809746357932484498741887450677673604176365752166407073208488739788446463468598358964106409338760240191133686513784556929532918461379604845627610385415574336638816603623984298119615996080736068670241657185519631989939319874136669011220252527383397633843101455613829499976060142956445823452301359350584952564341979167974399055476521230464362967412631575735431567920126948687585619117248197654812622474542250951231863239218034542464190332873519127997281325997052321938962838482492125855011035338084251655575855631516168659698597588404128505485043178800771572925246415999779452061629004558946308154445054430214225556552497976777668119088629728986903376492425059242559775231794994589206404305950542943552114413614898752849566058592202065105153562818802155563860289716479087293675070338219670675460685305715759341903070776018075237407579540108353232975668799794157448601511370948047732439601842376986521474053444279962433228070576059213323417187763260183887208525664205491260340017472003684492647875408432708869968396948096801848775789860923975140628340086711079890256836382704715404657776175149240052726387418000833874871509593906913559322467354744814129504893802398633470372940809971453961384281438232959284220282096758568503320022132731145918647272891225789904953382525524795483316335269648833540495717050139115304427421259255533632406074009993087826973271107736414344174206495470129503820483601800531446654333231666484721765435711717489683807674045642699528048628274636958106735620723906953076232478570984346803546117993485010162511271106547766616062946965001548878667527875043307299595650030150674868208819064588349137498210663774264880019431101951025658852656345656059259770546642199590658469846712621677857336938377644318636601742750040231024139133755283053162511816705200544090806859800303922234092821835070107140141350062724091091977134477442988317230851940094463724092091340562583094672839459568756735824619428485934954316136970128134890853489180689119296451944227370030356147326515442128832568463583440183323593307130053312033062957226424479763030873930611638434735058912074983371910745819076446936919474599109528408819311345479889942429831403840898361262516309339567713456685773301775029568357975084121719552705108118702924681320147645023460565965728262024865685040163671200085743447617748580726799547910289553799971931050415885977152560087218403414690898304865045186230098202385175344719730120217903599630566545002520731743274640160173839877169338622161093885949397110836119020266787487806214491148948085704419967694744057223279800263637140725347066890795709435348940071836509466334049671557108359432700419573021834072302993884203352728418854166175191952925917194144076142577424723058339864571579639063330043153105187543206538710146320418785136319043818632179323242990728903546480270715916941824525114837525123453690158868560279366236563617199663831497780838557383468338273259689184675867186528040825540668889981211450277345521972208571956264353949377307441001216488949675778002047833377476021598081350012789868719549152291328615444091469909989450232411385356194615764763663604302794840001794375171899277876154313011926868963274770504866309470144598668053247048862087527237229963447852160478905194453451809803837051325366715579505242549878104749100066563727530953602304370003364398274385756383919292062389748835947625375283442324437659947535128739723660996074253110416489905108208303332767115580457989309984697330781226610834694054484008089453775597963615934772559149287586440414245962445379698605505782838031420661355549461618028329960458262247698110783606141940547580320095335451697504030275608559497444167148445060945533384375747837054145712381399136812867815469750824005515767253620277008928316041317273316587770074864685213284908638899799887470944835219082204699748980527969948948554917236345889634351495058356399969662234192135265100765316973602700513811131879209790091099261137787851510622649545792499429630867007039121226853067323185393154078280214565185784174313063488683060758299905188112662647592891257069777172581107604777294240301230716700873479168538351833638116920690698453857808556153541349001693067716931059164368991139032707268551147817530860607724104196599341632421145989012920518845219789220559796615334288820227010050734342555659359141875199255541999699954906441908833266595170117349748151835492437476725441556984646678952051755879214972025217275929776416693909523938153397575626321064250359395204685282941020973150951761509341619515711751562765287439704888344251704306773162236076583284427515256846720312443108118520378723576099070598793656966525943162552127741770627230772861779315570196866912106314227921779510092635869194983768036765997180290623135494673779914382308852505661429777450586615769370996150713158041047021367416958255111653127732587779565936788914322645213303049171669365518637560652699771768660439604661493080015513598871398838363528622972857986675751546229058260602775661318135707508365815081777273076351129630439166321924977543659775825871819294666165423827493929757128948079563936279344482735587143669084774809554601353451461692298580812109913768857316872207303123100278747879399393086081078700804899155102000954925831989242883452455687446572899700687185333091366452928125393287503668347964336754697245664244198277958562115404911005330097180067850226270877209910279302839951767834125497598374899236907690983318007011589471424344515987237429249434521544509914684990055442035788631990070101613429704869703950913597907544173997302956037117276403892787000355522158380969781592790857189027875941878171068088719512346752028409224148339977420012943755591796158866561465909904433292986779386281303801863691758005669061848503581529905338658247944567360493091042544494045985482470074953924874253918200085018962578766334984329747779650319885793911640221459774591164763347165995728276904855886170654291635777410004853333735959007061037725538535700937692199437754739699878613324035430434007199737655055727673987261644111787756277811393470113548143807052972989086439365029584847232138420598961587206309849304953365254287857217967992873759346639267038041593347681292103378229102842983524537618836683974105413491367434808630713981626656492193093832170540317523060096618204666307686364735036664187369510291226777373619136628819890225923932717818124052940351295212239302257893688575770694486754981760270582540681599778334221633963342808964221475191720981814401183824236890516629808415508486350573284224881271532908326810128768181741878874185209506698321112274783007060111621392195235738546804665682602331756499999920508134274093359988733463291497262118601780841833292591627780019532845905084972303656449686579578171032064027604141075375198957833758578284824605939230412350639709033287778020237355976408638890193721593276578835080599735790177815502834199674252427835886257480815422573213200398397070251571027498564077156461675559001961114015357205880853091057463113479332733450195538320900194233300276306102286095623779746310070848075286542076809009889777973099502847129238283543409244841590760867088071089449103221304997853367998093784857787551337530937009134579298804462383367429398205909670964019177910821057299854280582998473537230471927556461740484420061290330541773142769596110274153380558458089119919858124962061243301558991127808514278950341416557617041079713760162305250161018738376205689941119829357947716140712346103034332706388124233769241501502948384076662505324670710663249328261867917394664895328238636474350348677726648826100821698591191757989656707701377294819926554298876790080118851280357083579124412579038235244692101087475779910138274443484415642262776513880046988346792603800672440657627502580048387511109628850655289221839339585039605425136673019798308723557181621837691976419067419090907409472876518175151785559197930411911474952447183866504903171143890168914595037034423242209946290243260117629820841658197068741921004185987556641423466615900229715581299918560762826573762941631187248620945763161129643199806528937283553582763845732800308592800545471617766405801457399463399426205010353106198530390291473165684595841578475690329696209846966111326871103178111620079747700886958065965471313825002885834182485204081029546075876996651617785509473987628722654909892234655400746148219244546417165046889973693762474921449379894290673933532395005229139333761888252547588567353269780467571799581555812455398630219575956909541911207814150379809429113393845326235355755582112442194921955339569941754587631449697302688403782853998799746466722744020558421932390544496823849949233591904213280961556410851313371540305482170652181621389075080714899598967855506491209208529294181612107411478614302696614447352785479868095273778820754363210135953497135389848256211497011996413907298195572137737239920298533769466273898621262223092171125896597786061753864727945605080083980797135618104508637771768181376164796579104470765716173700035119881408257251418077694355540256975898624636982492743902263047071443209208116457596606295701862740905603974794575487603696139962031850986205729362139231519830429000394869133575663791680295183886354694039074025823021825505099335942702343175831582701494656467017721843695781777375811205965801809493874872396144137382542592351519061862001911463465042982442098699547568331663295472203479217252474863117902258235155965903992119785554942095502769657046557306036013219110512967133168935116110909270338399134773055029821570470690240958933505771391692060413481653746131374851472942244098667800944486786107696666771695640561553259288429275853292584630336625775220445393687554340533046913167525586632668197265795698423494564291159396573445173464493860140210242089829960909040401059428876176358804360144033759732115988159179827885214252639603430538207174820230091404437428013355825699611702234154927541981737871454643781196062547488994770489316817813379415371639262529220642892988629371986911509039569172522245620379431513609467441836943152100705709670435340558583456358142405737175858525596559037462821650745549559729258746380467753081400990749779789492651179415323159171820029366453378403540838171217357175337061991369189544413490880290314248243584802294486357221099788699703750236676036414754089736486021561655573559580118711385695041493411090899565161194993217843184402229348109873664158103141643017575465603664405231288851044551329280775488259219742659466107142092088273514724581834677186991314498205830484243158550464303102579602892589699501808673090967170661978634188019595746189706398988213257696051215463756723390007031687851876309589717176732524124324139369942298595238948698364181607132626676696321334194163444675748174551690019492695058053108180144154104812002637090571936218173269491531838123464743586969584821228777753791183368679606304323162318688559264075913309726264824187552126878482489582785524135600607334130047807731686418375898306214359510084231293299587937720509405023403661245794883344250541171263065746565913982808819277743059784757243928001626900426795170268369663543405464788132317797187417668008950916605348740437816178581976495335322732531238479233488969507284691004794271283660601227930296306543450960676045719706538590186390976791291016823153454115158515741114668248246876002444999298625032297884422661665093199458760959392447311839048934562009590372075047830492945378947429079553974670876650348557489367092127238791556615493792094407541329863679856683605225398577522170717818278772121729792628256760350726741115983121653382943325037419687389388352894545182833075524233447584238704554750965158046679392073658925689130056664408299530248633711996312553232970199397538011276433699457250568237726567017978023219682912002296371966823291192440434463221951948422239251693405601234545491414048865476148509345269294973689393250145847116399918880491812483353308331944384829595107011418065122395760540795525703801514024541799783402189240242567082298354528088166922302667001238790791888501675982443945763084466253841732994439915881508414042488837311807155731017646777657613943391720063031961575095234987262257267466772527527409639569742678910144719020714892143061793076448834275994439429269024311885884539023239171089515917583655180375980457358925785386169001243071666758387299990113226963568187020551921903093451895717780362491439874854001410420056953310743631626112150321778535780349285995389874720711236777950122898858163374638975694216392946561916683937766041237008915673802262853071219868140577879859465578841599846957500752912544696164577325883250025867445843633982172660841463171500060203956288017525064412408375391943492380501063930472705301139780510474094711100950689271065653458769351087145201800368399339492397662340653893955646878346928471493456026459616125858093525053063735014899407724327470255907762635002929102774534649771045575283625675427140478783278291507180154587777740213503047163257973976044043485197291284235662631770819374016688752247321312895406697086425524918704349401388065969338189445943675027260285884364950169694774700121205420538507067384594217086138712702938150155986466865800536238211792930957830279812325343853588948960763226420325266951146490205542303301359373317509711641829869004866800403644618723707249525767048583999582332159452865842758683871908582781084979255737705991260256129356737724141372162104903278553647954411421412154090604490884210641427757182390761222920251077750704045018836687232832870626710077726712965365158386102400000889251838554463064357737411641390682553850252027375329754473193174653173679846348489607917744725538580456398502672459530335607668012441283335815147544776782043684321497016525763288604672133105297869001986482751382866912164465664376541459723609781678381910208148572840881198746950769978194072172507740814794568742929671901825995843248901558536266288136547065561223647122379942852210920257962224246204014267940045263513961964398604677377006095016263754924398358173311934174542285986856996178617660949857310827398327856846246646013289111587028108545466500727919350231882894276203512954249309927792668523208754382627660661696228880643576031920470171776075744764611952367240810855596881733636279523792014940205942748350660382234503384169437150803403675294093558495083520317863635185044939841539491318369066734704869624514612702069163119477055682298008938926915604589948568667140057522113478100597588821128777107785621049260488170826290385546287855781766892762396290505668604776248897402644949159046238482953755146045623914816544155906131202460883062136960341050386629265756808020337133486188678625148197263296164058197544361779391477047353893126510413692529135717140247263383036381213070331774405552188748557161759610851812056301150938011807141246388758950451973290197561166253903095943503932332115737043284469317936686633630490390642818689261985686816296009647723555567640597054081776996952727811841518049277270249880199488395136933277608656272168943502404520140316810147270135072392412304614710698467349440920193106632299269775141286085893472658540598648522986985324253655580773291070027341354767060700745245723674968923556956902732554891276322060703022593442995649012994949692419002293981750992995558446146122573908764537006675904941120043822155513038169517941324048013610125302143904540631365055210707441455552051943912635636658269027231763005124718613549431250947613801511678355020652014163683064587456795951955524230087676826436661042612066604065881761392047031212002371603790149238164422344851099478446307809936454559119991026726499441634674820462995319795721211101949908539064980535450939038271355541904416848491905595647325842228101438720899048502857213613919022825589397227325928049856514660234637671045344599730906319259831975542921779428006679465182060003204050658319610206188470349122375751167180204141278511312420014257611212500994649994081465984098442154261653773372740347615729977183882203969272166158507821399368151263230628386468157172253966214682008370502427585434326029551689801496060118978666973694296695378525873029568011628937272267700266583344043563456483649419467870666204892286556768581998613297779021863479981836953221637126940267804074826951421570153051398159148285385814814987077238854206329027433579108895170868281614953390007377393834148897001255590458163154447168889661274946532127080138932035415347975871030336733217605305844912734433335892231057566463781435787541423970932898261544682102206948734310123404786086566684534580430209699113606701829721620041287110580764921475399391488856643605051811703313973133184174290331483385686392700717120751481018045296202117809509718605806638295297392203816876034300732785108062606951350596425104480471926240656562152642747109786820637497479244119729927885100314084890654181810244436082210791633630818485926243781583957288497252986550139455717728822417968551565880900092735064504812349201384623214987399572229874405345621711368431623076728767840293497858266495132333129524039845298011725078213044303322590269796709742613044802558870874991525990902662687686300913170051616233391480765920881891152509896518937891250270264907465932669339341563769187427905562330654634905175781638061620210043775977403931697177296521774186065216616009176267345943872627965972810309332824018652817410184767435888447508515528543672671314767076399457163777845563720534732507697361397571390103262695735546452691522378551665535029561998006770237236115845803805006439450883450853224222258753644602118706437805857082008329866223240855052960445140200100369462502698716211608028972549952523314334060651184394197048384513653737830336124623956639255339038014365273100686029541894577553148362300486202737231493520798829736258618888895906806443921942459305403512897887826619885716848344613119431944953947914871751926301906004248507887549362996132209016203301778113455208059799681214640639302509127932276484561235258618841121450164090117394045439466977933658900286795629743621222253945071063931895561496097902213555996158145652828547839656151229958327702583455370209332589109188143855711641484960962330908852470488494555657748239124096516925778595286383626093030318162457799188429056275676299692101524158945902716066235519180824423471048608431524255855497426269296517354938357799809324152683634761524442676395237480579367932344104360178612110228189289177233387955131164333733743551201963523931554501903327444554721897121559982386120429431168131804361488056452180754145610072345097640421867575990428556669248698858823508819667963865757541920187460458908194203971672376789027577425869277499777786191463615052731422088082922768369968100736716811831590845463631734962620047611010787822473842941185067268331483995914114060236487879864878233563021699028650878066378055996160053101191969426202753600739446894714887099232984803433370723742817658481567501071547288323552395556367222103635481240495228185509658020102097620383423816978710735743388854781282827972670881652574804076868430700445466832763580274317773437446271097844848346803779018233379820225665538280842846745591420943761367416775450993795090342248559114641279352859083360405991783519339415110722678572100566500360062548141012566460109147762487723852010670834982270717461391995810928483890118600709172155703324118663207162667945591277051888131403356233872345636477863743791347224888937988728969110229366449685282944241634501798313628179961900436562285878052382114963794055307863509400114372018104195238149573437828917396131231075144590872467694105589682475323085075142925187488632602808832445922725033712898241235594661615177536846598195268428561464566271409345500380778063033898640556423271340836171118815295977776848882957138376828980624781850492585021728464030529031185974796118475001412671722875752747788251587282755274907700863236550046436062216851466475052413267472579411374131735432204239032089507134264506961075282084230191184524325731797479414329037137575733566272119741472483327745600751275215249674997544408927306901280291510262624888356584454783199686298217635763433517385992006673150747391231989929337046845293566315873642351889731186573018781796274965775199310690332250365710540633350866524051696336066003223222298934627819311394483943335910760551997137964501818846872760752938472147356839018562678681175028361352324558874475380476493001113848503877787656614137732702891820516128090101897844026662584184171135081409976744610814528072018345953747602687668358848013350413313264539885275580077333174499412568767850904301026781141211453375827539349467592264549744006969420202413166052849207912108991558221474089028692729561264284395306640891344037664347304776069128558109357953610068170119343710326114894486583084448493719770476071970665220536295006789717640781957139116825963197725761449396766563025210955578466652815496247310056453709039728174266060923221487465742975920338722963092870548417976371612133559884645266211733160740947392111376955823968894380644265793492825516256604388913830986201674340187693561589741099077469314326476258144505543576803215531984465107627943792315202856049498008968142875985139076313742913971380688316080700454913917805768726797336335404662339916689290380440776609478217865655043681708942338138697947168785918150850878521446591556098063195093533017407459329992123921317442301182006331959258851854694731262285089988102288504246996482061282510765018469743134358480756869030268114883085679932784690002602596960428853862074529323402457853319634324415446775482615225840593546611422300675619748846886689509147673360471613792970138626891363663603143032135749641232715901282970742531671968558224362492215615898476959092006984799286109486647218806347073592192873227880941234402313942955401095313520612401380873028150286756338157493051196003519203503096782056209728172595967888718314155750544469623391845462668829611144630637742443871131659638179296197949185564003714926197243349718727925610935590091528743563377280692874421054481499644538774254792964884539854665305906659301719145807857233871361953653946008657745887655461472215663153496537644893099853481329791089805794662914078176827091195848902364989424560999080580911418401726743490157631308688541033974201088814294611693828970703311856974133517583464836874037106748211324669253401305122120311918267066018050330874914363044569785678249467832787566476294588667202670998464057291649169438594288643465299849742780965646870746429309439331751682306884280871891333304805402209474811900085557148027713666423442024082598210484400846376721181898073915811796157383711442091055408177273381287798119862563527356738143940647389399062959914838800841854819068695486070595909784101296458822284884480190896726497241910630734883928016798721541295078996352510611268880831840619453596235004355886671314156641228368299834169817608066930180052053957891851724703468138428916368967817611338847352266285529871450610715321237342491777312683480280769053791489043767647070960530419820446788574972210036754509512520187925839419426239696352584333897938599666552948048626606908593734933515374028380783203413539472174679546552565605520249162376447277444965456895560649447751988425393427305576649589925472704149346714214279102649340450243630010947704204081934484207605585005026735683214205605254137265163699461500825525069123783796809826397405724464069030945041695129618871004883342463344011691680548607581617377573250745694264073393830964320231411517090530323078585721303255960239785092436452808782860971836117014988189024144594837874261556067312046106349022324050245165489761135639453110129060272109864427487301012445745986389670866580905709108060757775320971340253819600605680536324858459897242778579569620463396578152989155788797479943597153560096626409430846297744232986051053123601222922328964919437612226525102489267261649004207567575111421777884195488687959464051066351486949242855598675842776821302495125887488674706534946729556004728421946805043863798178005972041770750806582780482163716965497510695268125478523187723277970923660526862321126824019701017746813821358051135531632205345984217651300175999199656221411633460511574787196968551906032324950815547975597809609432555385985123391028609739950495423782115312011218662412445054629447464852876578058437550717718803985694735100966034431034912517130286782516825583041521319019741919635951295749026210140043469394382743985692476168493237350974200243978845560250535950052770471407195254483695263250683417477451990325507676478015316946115031699636351308553078111423704777413849551619600273637160129380845059131776472754993850614439477269695315073921210212689840183208028155612004896506456478671282019113460803225627201916769131083101537901502541119172445616270838818918853644386461911741176912950253220122612617347022508638129197017826432908021848132828241182019545339339002336132135260525990737535788787477249531248414470520769904616426381592932105312032490330445138255219806743440755335295689430116244465900351119991024806594924225683510088538895811400284553858715245759625169256158025026318994737479537362193038109316348081142943961700746695366009557159265080516702249239842614457120871081965456064964271362773286763771818219440803022541474536605995204443316701411574688897985665234391346272241839065443214368512289635813307774527454315598244575964309994384454279286104217890388999381067470142482135137317401828809453747553244033909882980407210554971611487630256594094037425519017183570469711917429057097566390755491203683025720074639013927579776045817936014427371864312135139207556950491690920012960030538500746218442005928750695839835585288861417586605334859551015931618591154529852138324003465103375517434802344933625044972553018325270019524916954207627429012909192534623961349470358264513539217767928894823758691317251913073008647811135505013142577190256863846974042141420568617689888643123229603074422943460496812228999219042778520781095225368314772335550846260671981060962185594810251261591506633890683964355311472165529077237169530548321663486857184018660626663391156854029304892967649117979503169770571496659363976206261663534546559252364447301616217850731918138333600965302253497473264363721589046792893973213301151555998982113251879591182799084378774676847498499967098594637003197644103703209190699942873347298998825093834593720234219943141746572066913196055341437594303259082369783972311578926569882718372769636437210034156121143486411260749540934601522885136217333398109837034723233053238303157423664648148112223206489616434195392333287173120177646744494940828975302060022471543213160609996706365744806869313986579365264939262975393338734702830350966922500452452418340275176844112237213051747947511491754861637077335906070548845027105571164623400205487943663499827337339741032068402000764130733133603430412421461894203611660261800390844406026594271252197961327449867697722685228837789672988362757492749329401520138616523539850617176798820891232868463546993301086112847711322013709725472283168226245550313434260591353080745958375360877216535212648142414148915067645902642902267652061838975556955542559739870885528938813234580315918705153973498041230198080060830686756405731898035352039284711343834353874134011746370651069240627877824992948134895047876502246874984241223036182204849225631679807769475268980319824997426953535310971644937795481945384077092284771637130372712860353300388309364530532679907546231717797817615021275494976097003214897170826189542452365406046466504410236357535984921277612654322558484791751044631052525776354174651987448774566637924205778364187696844494264037604936048353704809958426827251204176435497808853963483582196190129303510073476327774383244657809782327710454754273263094282736485763954758641199411789098108955122527038235934807908376510885955033879922282563279060679669985578676917786800782705834049439658847737430956506254151957067815664551581607819465402518669914682620657957645852430245172543172571696258694244195899437522235297429101106334911053337871993698820244414538895087957420763056451341594096047350268159378962739656933478141125174854071972086196149058256607043601557878572927332622758308383267440744825043109864343474343996745611378103811990253683833965459054932327380681007753693985950295414673756606685038575976937898994602035356048832689723306220976214121455908003841777400291287352579193856969133187365298870665019567525029613144759367941141672400942848248768733880098338558818148488705330540277840976009803677383731244759591189959642429961974659785218523043807902568161625314721854086587432184725135028396727133959185480521122457160861622345577664530640470078925837069388067056706219333219434527286175499611835830340645712650345851709673110321846661236731832866630368405294025382668984982695582493846044575454263330954858521699983170549990720852420914429342176962923868438069452969844183379465444609440082838936406295421080355385408745874000455288600499940257820472950727335478791199015862434821314332717951939140630185001601768164490603449433137038184504285944764839451471989511373537488586163827285298323499473268603653482105849534510247084561295515964470867183535012352754485264976221409846816866426768009791578149395908870025700423225212951055032337767621145249921157996077328441051292810230934709815669044132747992775681510780488883690561229804195751708066288412178480986251639056230144601190459271758237838914638158517517819243194280571247541089123776762747344306394414062876616134558972016276986145589681987762948525129447763319995491992570709323667375123068572294659470680189995426457862332832462770674047060219067403358383321406824830480311583614594187996385309404229935397242153614526021449488766824077263757020372625128196070328986438524333046133142458036098363571922012436175748679259693972023037869769261375571853399693208195202174325973732463299316955812227334098374974947853424717276255580176749516602750862753844801030037240866757052234587506680542427009126343938233131695867391608180446060182511581052152197680255691831391409545691753914506586510062395452985761315157046096260627536649542917894109398898039236267824322880717111798161991662983683084941016900099485568175745519432224426125153440822155167622108506704785485909948562246176103913345674689698155925347819322670728473281553742108480602750078014621088232306096612158625619710306433931235759925730240988731034924321333780005848303595547230198949899184914174904511225962998758592860911056592960036332333356340223937918709668900972027758703883117452809848744155803109829208943890258429770853690021776601359527539647238688897891723215914115056307889705911912086898207078313857377520500589547822280933279513766272712934806640827463441399397792380285236917940975889505671307462691212362612763096609274037924498261204199034946759999718857783162730930294835252688745358607895726576379230311189545446215491682348487594472892199148483554537844740195957174203866401352736234123303811037346841054871105464642392630414324769340005113402102767387289571021540841177809825493543162727809590869569194456154891548523740318875753263325828263801367562347135385651961363221636575475133150369302757346138760369566477463482278515203524046032247801866558778009511685752111991027414684893431112925955092033931380065566830401402421750150444199730129226941589489707819717452321080594567430791731233503424036736067978395780632786279146119881371132918675219896167797274872255904448963504612598987595448086370457663618907216715695867810757009635358226402219322451313253269356804331120647410941676898466242334406856972817581357299354478704084591457170891835781956735418582061323122283351169724148903643316262490648556074944906494756305745876699043407140520052490084712521977361741070535785485345085484403118194326769938118095004184077630430448914529135374913708509658999717789446755345034793583535354186467723440502663121644606803521604270682003062368579420202924607540169156653460979945915201857443446313214037824501178915951505333274678152630212396545167680295279072508604718244772627659237996200997302487342268148803672112451099419397873947721110192134593263008598454922095264466162508698537880552886672662722767640009444373857155187360066730015140182593490746063999298859767279813709760114178715400595602940007311974449034520023041339748344204607407011704177580071326060787643156513290289920717526724225711558094064842552426518082879383949901439848780603454939240442502987607643432614967378271555271268248871171065590597481021334783478834254638856444101404664227480043425614609628714677135461472756480022128458390955098963955173996989531384427831781743985700098558668421435096669685249017661377744305487516121333636187779765506797113683193099017046653845670395357473927460410117374913837402528832399370374995129916642628229803333109643886865734610891069601302047597573861285106848302034392286312389076756154806875038101780857872674352937078958107776948636010749115068380322745560726284040018185626435161459591864248752618815281805571134972263454296793727745783211709936035963348773886409017180258247455121179448844750850519901101781179109404963286344795141748792421155786921338842897958984776156770301665968575633488377192416212958691769588730499908693937005290552977259048317520468704599635587191254617607358957854693656842566942285979794622744232647617968294815297410878241774220208466156571899337079480977759787961302884072059682423869731874380626035024394030900954530392689610760614325781680928258745071198398901582370097443974023493557076955492280115695453458521260462172627183961097201263440568180255088054638568152525523528334465678659720815325388742477925855990061213645154002117597622808686697859919769873896687588028877670947381893449774851785101108574034291673261209363688788094049065239010579464362478796451238906238588163997470690842998765701384152956063296171117925567249311482105938457173691309275201074855682789094998266897518976179319652241875619340595190529549057856411090439737008943847149903816368260043420773028122243132307564946012211311105655751534632690588085405199921561323178335867569745350699090655484475200229341177134307573331759707231878108751352038644011615102840180035373500441887906380304561636594586287232255647799615334368173722123142511490198743714249764516774908942734046422513078683456066711188814190309501041132277607309909091287667478785340931714749627908652861147106078497133203016421508044056590997498512935164746804068662742853768435545967670247459447365964829095009332122220786913634546881448935901064383741085491665645453730329089470704226523346259488486012756221581721926027883893426600732228017031937027643755865041054142171578379254623991889647493578774671415171570543424536292053409293330050998034846766138508888858698498849199507699528820034775012772759155566225763423959679037070348144412675503874059745434409741329036927660569882541831037694104425221026533593432946022022068584742577776258622235220243946152170733288992810852612434237798687359679267896847341153984281793650294014517168426842982367253655288672937331394216440044995195946074786197630842350525049568407039084276845260836200252236439329682901989713440748792391165620250182576111428814285709388279564176891881337473938343505521412973751854568297893392615882278137772046712709118531229628973219801444300185631510609377151227175600232275864712270761200625400233698131769098591531646027205599412603643016946544242141491055173259986759393772311377280941387275059917329695610458155371626853336517776080027503727361280858412361458834431005447931021297012608020997122398829800990447890474052355574841516067555585330162660472362983131031558067325960363365239871569393822377562331999346798367353363876643144869213779452986705479311133508981322150367683112480036723441975463607571076494172585004360821333236760193126063730887617841841230816961663422160422119164200502598246009483366548002313776891284114495335456904630753833499026905831605385520861897102220533003623143066311067562048589695335962919470713387285793211949263277069456367279236830218718940178538677730597554400343953692313048330901556258799283807440194761629161893339411048646832116140270814647855182599132945751337267927160717694410615275404517048022924194090209674452640552726912179104315071195497650700051236742378823454784377172791181521963997944578505472307467934865064837549987697059441112616144385544793875076236032510464016191676043067256729803146240125032452965642516906734687912870809656017815015490000674084093062412089445836605853679952646898486602127868757979850827670788059124988438711922433734007862911831199760686031032111288483364624329733385931430963275219160292149504044426292049024806598588651065572520905575091705481799652458053512285318692201430329586121033305374342057249636753411571604250757348654796031128765057978879577701454442120610795657617596344386172321772467756079835124285419151048744687870487636122798938101732926894337454803225176779407265724973768952696808312579786281822152594429286454548001873480906834124765161510286511224350101572571420576160643277665017661694111323025739500692054486395953751070162863000592908465265726312619269946939599819597637198115793518553378917742751164370376384951616326974493135878082822183403287487788594615950945578283491714275940224025050147050129253893475384803688033567887705364193834295957276084350891706004076820838880423883573483192354763528926452643918391731862522196215463240337891223949364251289258364534142069436158043149379731468968708545277763559536116431625282346443805622923637787120780115326449991371102830134299435025187177448629774280803080041097322421329709928445395524855206844066490436464137075495016079424577995477769507915623508210287183891454527090580852206185486439199947232551813916257043354827471619312747146998648862475654322333830390103661937939459575270670380702136275464223522014233046859795210888718505750816002175469274327165860732977983538712432683933209725299680816131399259256921147574194578557279626584160551688323726950432224633467083504287696690037509791343122500169766416375502164405029977984348921060269238684532305744744012717938384959778346779806694640509949134384855895711109146948580552189083289060258651555025802137326659131205398209396335202606011007593308246527278076533477482558125794096224862028398486233919627623301564965056668791411825227888132847335498038547445763025108865561181971729564385510574755266302330703523513451237611576615233695746260120662959096216641663363687776297619113346535436801474963714856532920032695701692487538317328300038203771044240866844781033456529464151115146182649803076896678284703701691408699711835035880044226312158411585744800844555560416403051883802488816668211042700473049332878650632026264468926969445859741574810825392668956838506307488186632776799310997100051140007260299287534566395689422148285279181452714400126177262677556357680707804193991639601898440945017620581403776652339311281379044291483739983912315550544471234265915366477935101089683112751731136672188117865869087299912514283279752842293785046084011969132910528962437277464090786469545388963936835622230079771825496717099416618192797883937762417014571572342039576308908337417361637657944238978153935068381561573068122554132934105166071956839128396452784071849450744766765555418106895437868195644862063650638127005297130078015894552840039847216084801864810017698613040817577862546685413209849597627669058805650903588021177917812287825507918665505611039953496853125506409483791804524493444788368331672160199412402547670890803243387015389476651198498558638010057169747585758958813991894948060952750665363502899353864255988630241834457017118656771068840666673773050653998590451480044838593942181701450189484287561734680014341630024213858264109764067277679015120492862958929498753007770973983450129756897504162148830973400784303807155702540589794267553457199647490309691650240773098716045839407287391102219907967990204942870663200687745099142735370565603619578076457519467742097044679924751051935132617070366580053918051018976339830722178625085161173272626562084302366259400624586000775761189332237782617686548765071625353325590761895729812957843857229261147499557687189421409901497747322871285467049033697592333068421452093893860559572355582751776384085482008946698088344134479174968796683221702779780607922782757371999281476369887423085002277141159409957882476743828390803326511379528022963731505431554432267875333362532332036490472376516465654823277153933114913378344651683955736350131782671667537297833292212770593766108709776659435195796640841009831628825616623194642196045853254348848338515814744688576387085780446063004061118972687500925524131448325026535484351840460254964443251956613764638036224575870613254085550846521051285976334956145649547658713496853977939394731204141649070269675188599849415506310487380073782118351500799074197700326481217863390289368738379644657162428644407148479048422364818282353803975906339555785574215444959784366229448518560876233930107424610801730842315869623120040362681802864892833999805618434322820118461703625499468111903757662110422656632203475348961269117879543465528496490042448125736423141312030522365132902816322519400275966448914796420429577404568714569494666333760903240857382549642948513770240309235330619077988137376939402207672060856797380389371508463361336130096373282644601159158922959211256393623392386560875224400986273447634557299171095558844332594184626017262346168165656182560929559507912854705790407161859587253254218173021894412779313642592955817671320471308979571565444043708325659337766460626474616904134986857058678870289747660642464827278171580664650724126824189854291083257313654381086729681433121084887022343789333031530256696592923053522098534764653425041873372533301274654759902446309080097727390209162047581320395514682006450230826836465037079746455094212898312634999017165811520737633890605151996031706386843324512306538084077858847347909864991492553184221734607682576410703980595605679851066464195443846362742163510722545206894518555642224623006090229203677474975078292006792476940768350221138502026621652304189999223451241993712749049892890732057725379557693086691718352129102830247635432847252737018878403837816858715080961820973948465694679744352990254174577062061127459969435930338052412890367911495959947565390813611925914274941599972564712787857964138493871372908747385817042536548149959535085076551885317530991295070601289207807831091587735274739094918571347861503300222879678076814955465158533759423075926261956172767814177425094518206286006273386722644683044065987624368140193640537748144290204127434367618250511372465752969129583313958344113663531870182215030236888938242503171193258649527111435638830287521466210427664788098685647492075630693659980902735583548217080879793748888650252814795927852870503017611395485023938276354383059966022922865399617357805512663464299918913529509534205109282905848669174500179512488902417356197257265397470113122585675401240576870973461325603709852903912861270860035678306561971716542442157211882154955907129477708942814617683644554040808220600074540285189335562287462067722817498588786529146857364915728418199316907631154826397515261019940399228952421234489572050486503601911719950223450392697438504926596124176009703756389125452969810303152782488363080841879283409934988291278622984068960270208576930938440542178335394946589266680266456995209444802996537963806213463695800622784860604288603865948287579222268669877271695521383344465794659481921402300053112591096079900912574333940189678492384155954349963180746465818409355052310898555396098379032347434320925984595172710215673149013853315496814359384052547261728428225273979277314037659896681604732639201765985611785074636592623828693962510437015542138564227720950989021753740785867905494239391976654735972810170866382472261386135825710441508336646076933649839385552812214573584234257220661530536510949038763771464247624942469331724023533834653220224983789045978430969559596624538826384974800847671819638197227558311737858192734093369941629354572208034968889878075614658709480571586848695068328464097835492103807833074024220622217865649327414160728671863293747011712233924724045114333027139083557291801613728377040890276727030619463548430515622909620882465589748173592106312447660343216509425604774338633229747727624386926754646784707031411514164359352787282004067988503871727536203634805596287578100548187504076510201492256076414735634912519564453847940726301919731005416014105641538495355986392280516120747457749772856288350231875957839364193692932597583285902454211430854010299323930599162428218918252800561859633496509383165971104472286595794159314641802921702040555476953206226867839604452864915759561608038501277989029476794313799978483897511259018912479855145470306107534199408848194630089762481812066473997981454120829737390588358501309888551250519800571160389209411465869811646781938409859509462660474129129062186486540961412494420730629809536393913040654132589520648554175904938709782234027172934321002794700660233485261350349052511899696251493119882568040551730479585833823066071732169214566703826888610808429687000235373484702231528275731417308973919406644320465266449114855644870368893496026076267471775192455984281443857419445545286573473363976750742273310952816285851057479042234475914794509183020854770663025718677133133375305857805681491556091640695321376868086642752194513056185874955540019151115795047150219412034559324357161454917981331165458607933009085846205920975008559081806430664287889212717364423598999739241609316001133229185931171645808861534115128262038421634865009099352922188704978177283662732287717754319753892705083693096809873843349400879163770220485393314258095186409241343932856182464815298966062923863347670482062381374041721637930487655273336379899286941486550939698287333305392725256280109817534010521546369149627929150318465130645381587454213655783629487747011780138723902818165576204813836821215630856180286433937825718482013142661043034170286716302491645198487930719356038905557443430201620475661265301156400951502457131119479956475467733787375493946189823873129997941227617191305880209952637674125037928866909449659876514542050151523418060923525259488674135147538499572232431319060162891169258213998909880464442266173138458850983644518124415723668129982682106493038613532489924294307676498294603067676141610758489641875309218094068420456512671057784183916507157394045452980251389242294155743639625149108577142006977785640139851860766536602109442692474341144426532133833302215727327894336170716017863656619365824147049114163075155006900527776799330242489482489367429183082495991272880300323780349274293114477862699038023681213145965538116396380677855639727105344373203666936041050672959657138260683991535890794223600957028471580066700832300600967667919919085815257981698546327095301008752228354579412657018338149486341511158554192561116830194881877488171170942144143312680050994829606402446155303807682109434643784256211717894303885563664572686901370759903123253801752916140798666761630054075317486282575006006775715742563707213094470661253257951995738543313524618139085375872254362971742907101595120216470161058817378778564900119924352716265735895866794056795756957078631252976640337661714820313721738958624802504093750241979576909749171681415970386702139129248147052486550380751313132541227520451006830960484481545378074666792336866255959182706166654967820289254622548060283444939000281739081782743469641882686632795695853238262369190722962589443494445800782854262831337550352700762936484892803482066649753299654988100505512112410302166279050100963896886263292194213108446840158170431143396674979364695517365049915999090132979542299201694385574430693683359794154716821728122005085204599376650064699529805054488896838322649387568678299443202574323420975505983574137251813663879728466586069763699668337716863484408246057276052021218342747553833821233322964524512158775260002117298712614509265670290645069355886948711087376226791663591643021255215936739417779785192755355243034679634441394338669349122104603209840191286837026537089334046477517891853580714863602262472527910812988364411393771190245731318056532725964052876501482558086162174257017914868241855742849338529401470894157783028681037800302547138293387022053362140937319377697690416473998423220856936194329074411885432597825974096374908590714621597605699456885511807144898897924557680624559817465348345791134519435525233252554500443256581852802019536782517042891711006456933633949557506500264694870698260274247570812379751654472444039005966893481713814953834680457650557899202024126557125412899988799191074238498724350144338119597189011697102335458819784093265954299764728475237394320644616325699314767858066117123502604969967877259820010861284834880113333527508991411147883560626846192810683135550045356013461792251311847217895873008597489802389525812234698490171697202387041302793111305688251503063362204693719543594300198630429318726259040017890201981054271022340580268025792890473755368080838666424801127493290319343534116554121745944596085713758310495895525434923663050615467207800010237101831131798168509083897073579776909709908115281337878254969977328287888541532052394628134736230716781732041380928094594508275526450427340434985607227909613878190591750211153657448093346201090043653973458850235195437401184800250572316435110383241526697467061460670774555532058905331341701034692244523453577331047685959091927611373534814286309560773168306885073110092584571765388778792698138225228947533101536945490740396435482504561637530079686988846581509309651736773705253056415882105011419643390711838411840390542086836677247938722520707927150898395147186593226264382418023692736305085567546675356101293843676923991060317601105383693293165935445567583384428499218507920734479529628264251241933241185552048010808835205747892126099009384819222424885411095908623311054491706871487873300995026562218310796322031457771987426454705924249037938727858656588606237792137421612122135855676421473593190163862458325156821682747191871398725292687090136501832738709326662229611277430394309855531037298604951672844359549622136778663307960357523306770703897628019754219437054944838916125070001950421128663382263392546902115241161833354851375831230900522454013735136336876927764329758242619645731909576396852149957356988941321338662022763612843470412178196082030338044641440297190927335946032950852434050376493525009187324513135416072157595646464921875092138685041335232084237229750950177161628952239049947561369917567670369881660307489771071021101777339495011507591629007787391990591817779043880770404346397857084573724390038358385974873170661946525572886232124121561259516076765524856554164657628917689492970072050330914317001771423111971187640072743501192417466215344194168574207943285794693067583886331711601298934572409778067676421598815063057557862008498860739046292582182989870134907727184401474211650934451418868035999672076880177820789781334790396862313585309368563415385553533162249770790727157667719976816908538021386540235266959175479168850617743627790675389097522318404365194252282731076063254951485076763286334535150138896159330629127144525162074048020348815024018230745834457682325448349406708437270432618936558809101733943604869607797450099792733337269234715275940367792995427004199053501247656829068726397619852653537984343991005122004230113772968812035990962295747050097980531781172879580688599509783484728035937173091289856602645556368733541773279636630211551169095771928226986768393301695610086662920319495100077458273628540537477607347111327888147996397157037549569918862470000966991269272816304792762101535853585318889277207289860215169954960744841930663107093284712260857799539350854220981115078984164211287804641807512650132815672782289926051492088277373165568822081132995699021224560226931855403542038301525501902143624731601157134927838648546739522353161796542185888904791365263748871595257157792886433432292179487277048348894982762232911602257060364264989052672279396244741497486723612796633950448638573779425140566906696120305784431039126548112097079071353777352111131583257891264680829982666765334099459898355624119350621728048694344720496965990869569632177624368430214676529469579828088338071870122219989682674199002511810424266947386053266523209415436051868160037106101258683714585335123630325663310519207922450131420870638004889984831213147129522499633299543575276022414384839515460042271711293707073910710896886957658594452440354488268399443174110385324254431363676083282566503193109585728030642979234023054443391750890119739767546282316728761792571705023094670821000550091755838783103570351904629111123097108154932969592348632951062865606621448916650290916127490227509594877007636649183076252532526689401341492034686001212832509730109672246097215355194531120370994067204648254659158250242687053572931548260646338795070101980466969114237726273850475417312343886293657680558800790325524628506984723460048561770401306883567549637473924623434807790969595030632087490798012831886701218289841969006760354299061783104973265289060457315444274752252990083597417093280241104092020490916180336466872861557276707389128170310126147918353788306225045147448114829243601351416531610166426040363699724317577782062951302815043737489327593260643859483148779313659248226685856255984816387065294176178699749353116095250331156721268954700832219447957074091498890572201186916411582095147022941002631610530562252801763936960064873371999209105596668328891498988545345853730540712225756793820854223533656821944399537805691141687002994478003179342633576740914088433240757731258458174169110082826557301958982744260484407159515043036264653093237353697608874993657083703086131605404940757147065842100660480098665843964398165609185743627683922257709596070155175474918328905732591306799584727851613337716634066510628283185583818704051423480524394719075081025809355399362350530213258705856178111147267055067757563376908182151379932272250833047056206352892834447072378590154555548122121418187456989613558001927445000129080690330901228732417529145868199812051109239274025546926693439341474498292606627024079281348564467287154677602193850328492691924027737032502508448830234599739255356612823411286869078811231772090573955251147713645300513143628800457323982555032761179724279961787919132109090533238004277765382735165993983818777485733684865314863868118373081578145787446212719988618706458661399944126988765621380477065439851589029477034465546313232440887885805434086974346878008347841164712067969098054317256916650806147224042573899499368380304386573265942670775989218532909490364332489834479850590522650875912342119637350921959221436781066242880053147891453286389831559646682480488664606204830970366577300586433204101720182099513836680425911101302168930072339319602883683108307802333812731189575602840420295605298028475460871053662471872360537608352723920669419061127488245885655171003166536938069273336809412946029564750296053906450581253550461909737366216912538527547048545754910395928852072116850639482523935354671950605179091604538267472443084359446101867249359111921816972492387755756620172022433001317360313057439789546166767333876120395685564709855646403323523591396626071270620767754403271379497059406027118997741279258964413343443980814300582475271353865047169515221731428225903740351081141961284850840532654601149868655541798232563761268574695682854143922571190748821676431592904338275204891380044621626140965643833652136657719125593092043577821389710564707630669597384706067263353565210576358617368942264947651053080373929730673257182981136738353434995803872103390705906683365464442634045645361723249055065558672930446578333476031911583610144052119961499095347074436385415213610270559273128349199519346861486686750051444684277410693063061147326629252614069997157435279529516974051812516594508051496816493907254730554324630180320054723750335278045315053080542293346429469313616326618310737792662051381190592275231766451878183357657159186290403917934188462238028817211430048171333025172257206056159271925762973041262920503241272741112223595282222904124554145000125376477103721325616185423870051648769218071448812411022620886692076725160640100230670040800847658404529033988821488683848922478869820591468577586412752261453358421512745538035799295688718343889237518021349861490595371479452125789678227647332541973947130498602439380747027880485810618318660286031329560227976001169602801809004145182256065006363451548203079125030473364592947058235538012086521873116608927066270907268323807991338911495902296435511495812902699893630424172150810479237845272431230139359972239571485769964767069530633540562573045716945909811123000596506479888977579777398261388266539530847485159606880873852630409272448046214445849417473076720223622657342171466649108716750627533001281548873453530320592250886373544765575445105411080452004427510863459153760077615901069124908300512135773297561273162858293656370809847812845665088307442873308937945632504998259919441726534422867156707132455820092544980101770321430463915397359967447212391698439181985115566274025782148194959339357966474238207262665540701162272170291197199282171183749696032921390956013469511275005218881263303646457748481554837861611975480106997756348532083084654739710276597732226387950976979260766146452720217118638642028592858648084309105639261853161938205485319628523300949260076045446849989406279577513590838094181243201203167440155044726095296283660314643819420481586687836845178459856215387289207976405490842860874635543856668462824738064916612081830914468823921930022288798031829600533021960206311727330273472458341841408608723765807495025483400324019664234318883951108305576758220506800723422239669492504863729483497201842804553519449649212804327863834348837668696018786121255335772162244660423731514230004696992380709461649150011258712720669201403005502296575858591752233620798292131010385043320285779521358856466222546856365018556435981019328992009984111302330064491613127051295907632674697627409035017059735964585983672522510158305293754757567605464884309936035700208367667780928754058124289201096659478030503856292043566588801876410123529360622020167095807324647162525614036100928393468813831963267254434484483549615519440132963628015556790537396271513736495417518949207862873482260563948697149197481332811796477831267518594650034443524720668165646939410102938810988395418712881963890949363499478685985778471291721366461731679054811024856244189731428272287903740917328034919198939033068179282675625434659683859340923552220314640091625082913677979983863882883374831723528729129779981980606128060239367080045976309778078797118093239648668809345911123692901930541979131145430269196020148592959109101864276317273150361314608559032544992661795871931526028684149662282095084560353197274062562558544567377622190880656381410680697961807789204131748854083065170361365487896536758902464810146674437193755383574848426742024870792895854938453722118818503396787398763377643204762314802089073146669984315129399511374919225771723753418321496235403879279964160963755634885643584701472283711279637005769580559446307875046157279776968991373643655460233428626704946818198021522786237900904599045101034462297493396949947401116844601529939262918312735559241054677623660978491514446171519296073454341874573248164619891485590124231995204270825064154578013952001797590275144366138660338164670698887686726153591916249422548895511271193632300491883599070463260749521877336993550892064875963613308651833665356528023427637296481318825838501027998013843155952602339413287564458758341713455494335725449702463858498035513242039247932814789434287754925168135214388556622055178366112608865920662136007323609521053603552814099275527257862369885613183233014193579149488674280645640486495357820791034957737760671324810300853090404602228181768154622368776785294777483390471735872345832690609561215751582182551377060207486452802513654996419088494998810697274427190959907502239852187638222426374047928164106752473156044298879088776920357784221838198305358164504839592776523405889343424966253357271187742906724738745518623171822860601869612465578077711091911929228893072400800941864133195971828306872302540589223366589847478117649434834360481722984328991271849007726420896056779568911320998145000782915392648655150258593675285843576393998474932521103955067170112738247900771484778152966070287405466269772115611556579748214930066659955479349933596241459618606856546245150856702342901419363199463911473691897126379462299043120735448878715529042031781565332317622250963046444278747314423605791242823966635459383755782471023293926505263966535544240228105236669794346933117074006224916716605155442449504077770175850271332897721857966913066740969755832068407784397099987872489898388176672243464978212105135678788239982696447528869172794578489121268291164092244402010606770023495789626998310622811592046870006833663845852604573718055013178690794982460744212118854439291349136196651068612286278992489581729858145394629720004916148219589135879365475804600464468557625834944527900595718977912395568748926121831932372660161616594610940810623336299199228092218859938227921108002215935579078667005343164870598764970548191370598513277965386886828051582668504141790495568038090836827876903935079500336546036267267678962357802920129066923007485584093068149806152153498985368387935568085388224625158036064406571201436970999641348906503413255252765611909289470218004732648079389124870495680525380102530963955337466259934290541951737211988176431386692695302418346508196900105526224382805941579234642368056810255290408977555585165112408287284629066013405837595513385064722802034803058089197135141554857755191704186420815210116136214887558779440034842314635925509695587689492147103403039539511269652270269912444282889760872164964652645232531006977004901461419774574540166542644056737332185742058652054256829049489135415571946841880459379530133064484370102263349800010886474759652506483442432576855009547223612858020003344880034052705951755690021903557078737256241217255434465892605198743113030372592626485799702519768279343597602212308590612749802209315801621071641569453525878305748874303801302286744031377075262904293571373845763667819772693087688087400484681194694698471765460342929006845286234811462237051974338243096616327338661615500148415114169868991699813567414129309756869299727654546385267061338440211605402992787014299924482393080816531448879727340193917950675311520640329442939510188442753118932240658917841696210263056538015023989421875546846047110931421011226654313700089104204744907558202308281870824103074411336939839692476659020647138896611783084412544716018427528988205266620563314207374692176461273666402712750697121851182081401483508370534102350792769620151112030875034912334511436589289306517784825922215877621131227285348823205936088034834923711347297506585209444682890797518594470210029966716605041844115876660160334429396880977895716053822437778173080770898818057539370624119072179832267277303192426082282481478194586126935808751073395940538269862465608124030810858213947262638177382845353160473737278648282622393993860581190137232601633234951418498578032272171441286544674830109049197357738179197577454761551944191917662652781486633301727842999648619252383261908189946109268551046403214267006393981632246700121556026772646350216130566768686578545704376313937322162148399627995833186498067898876791485896658112630894400324900641835274084468191838342200625775310256981716393343088712264179259901679698741534852362844521583892077637136111345018452631538899660935841464397406979123469967217972213986365671079121243522592733321826632932249647998955476093528849316633306577738090124666617851724876122304106331009521223708889722132419764065093389781343007302045638340789945908251521893404961951005106358054175276518254312861540424009807495897546368494799243181025366963757750966960403354819706208988745969302670823273711032836755250290322755880222469695335960987244336893652438943948783573272694921721401213579314431243869263804113877191824833141860026519926674341966951324760195092482741337775331644318948973494247009443869157311443593810408122089441185123175326081109520081931977298548612255178287589085344263536684740755252471618692047639848031444123899203325636659701017454095966380662045767051003800691622696860021534040653905459729469365048630086595343224660930471803194752098885663310382489315260702517096883752927698848879026208283580050706397109448076533948812979188474293582679849317769292811000335360841476208561101761194639006934346004495894141303097297604023997520373142421981325820420253395802442769852311844222789704946161037643401104688025154424061132607014172064259024316813630141263712525170837662650275647521304499498192038149502223464761915491771534082885583789634199189539444871135580481391507167161626187692396757252065610559888517967450914544500744420520173708996411241469780019326770100605688985545539374138392865480695756701896105300334405265881745141063856613630069205524968165899184940272373299773253731226769857396999140123814430970005764066436868588424983004117799469797963185254577949690586051819701234273850624119673036107289234067907052159045053123329059647573137373080773317789188728947909601783840409747680068575250327255440164176922070308184333622462729100512342682988837258519838868364323890398244425554720234692123867256982164490088580775432230625935838376075670036207639387875530387246001642922322354541596728108521155495243419582006988626344758602604069938791304275728951102716855299264801716001852244235056513484453556777325334965198362910167199499155424381864697343882828904836725817212087680831552794803457902117223655018376963432200519155993684846638000021206927518324125298667508387887441651890206155562324569351194732492393661153798907391191855689261593990036872836918776212884029572689950378083256831371968544905545011042726262407549842286062467021062246857451773887994703460587783747792753424069397812788841937470582770453669087780542378213965796553856338106750262658436040549286995794589922523737516570864379573251295138072084885999657846042552351020866110349834066462391384608253914802554466892419536145055356506043627785576017254336577731667411937565609845530123252132208213343185844096281422264182795876955113628924949103506089398494808596932007754667155360913820529529567063203689302140986401510143801504468254833283586068115291269075513172961596926894483221132122763613802373841851031843093493562150112590706708119510386785389640727698472740926332551765085555141011812819402365864027634472743288209153244402455820371124365250542676824350809534935158306459803650256574294059044778731010802979037352820980955541653758258454325082905895888013301226608218465167013837254408955567551495864061172301111840092337411464685602072041020674537391693439702984145163064390161047245090251995196336038535992663017320172892993246697618865123686712355552176305303405667553322957727013281524115349105268804160010941072003938588577736877693765229493652326298420963906846882837610665220236653601604464835311277441205116202002953116421129582854930382287170952900922664345707262306920293707618433642241886004982834477451815602834690372600891366924905344030703428243156764057224432052105646567698700479090480379734874144180707774000536518670779854771659320327990671132101995609901535999169786378935694834241713553178553396134460176385833672610903873042583748427623306955090935479609721527986644383966671523280361774983100967172910034751762017487835142471282762637722865858135181486044538487322762425252997886362373614078815313784828730417720940278434611619715476175974246399121867160070017280223139472607302397479814627032712686456278379685017280344577879414409931964801445833808445497178907800529594730046103399847781631247769816372095589580474862917441597225679033645129531777197106458336349915618061825977073134539300634212203475007548304815109534452264937301493945898792035868857117261494852461455630680449112778125612522858552879218908096322902247278858289326979529128111457537415685551769166017668919438063403557566986531422449792733451628203750568328351515866288965390391723979568649120086385359763921149265714868555169979262327761356472779248757236644799413586157971300599826693602418118138495276694839659379673247187304937167348147302934993027337973093678920166373402943954090199067487851840676518418080048837270041581646296670650796135031691773423422181859314551856148538701741591666053079482018983768447271091151351181732315124870546571509576155265208537695999528964965121303620868932862621785795934821797724595859024213921457603858117151156464893268324450625960427534660879983075659218739027486765631034965568580232754060023653561348838784370819107789399909795354404936850206363679593778455000816533126175165961824866568492003221836720739602964970897090556832017714581080277522589746911842566884937994475164437698360006785543718427962580874039627300373521090804474148298590908375979818177651085349814371968453494098920212972796312894031314629920232851753148533438185252783431595137418806614591133974118425808731617929823819025278952751475034610538195614382082152533880825885750470618045509301478943039110818316990058582349930906630283147477710231993952570569642998121610373552729724269811558409238956909448607589104137707927094726807436738410162239151173696873699696375035641577483121251974712442264386320726996586347818940379321422819439425863537503585830344050298907977226291239213186375084082077456436721534109972983794758821654238510868678319417353751074345304155291240877884596026884166444202518176387353154509125643028076759992130062530929740683891923084351997010804138770111275594782946725031599858626262155611911920618005100817540198703956764571255691921922999230604693624501907063108124405788128060663837426060796061094615647947352397779859292154262212204824609271205566931517851812049055843789507705342622041133073766214694797882531416532333225107913524311124660370178148596721025547089740258960558594838692720435460871829982360830534752707897891330934415992607177926111975020366326975246065156694876035299380799818362009291595614052161760524332901834797497582542156958875092659861752621353683593989102524589041344279364769727608585071621281477124727703794708675034515295848714256797254231747451417144742338191294556838679340021769465888835169833051495714107038073772805547931358749680048608738048506208393938651451291954244919471676586834612002331687572784119217227952528630914086391237777238262582318945704070776434057482118031838146329828834654684180030740009464372309027364474361735784694274357866493963923990120294168351886559460956740955601386432785133209956270520041755368499960112991297534377655014464836476051520553331490973985182778674907107195249218503215700882675584872144300023319181612962165301505829588164571802754120111023733483010763150233710350168441066157526447992603882843370777600704368321816501470651815206791255737210564700034084244368912167680259371033906553825652586433664136185382471950704787537659021279649280983035597757818605786165324651330768167838559063035433157433408128553911537564496569344352150662741172740469778560533535807455883266663027125886180827310676759153274830122457911497583318034167050812290370974113413548676012528287884089982929589586899145946583339218716561329963143155056021346455837222633687971660628914703317195111404842417399230768618063466906766543387993809660961591894194583659997719677335435270003244594185361627381619527975016784792009668097667513310802061823975028204751763872307817095865213756745195838434125818441949596190756286406587055732056881437041841668510409540602205210552480712606535861961860961785054273895092742811244395691030607936111981270372500106057990593717103060317658830783651891163837185517828512212847470569054001582764331400659127849054756751613017661725893659102745753176641748144477972338337357871330938232135345778192653055489196540820989280320825588723310686788043853421833620662747149206030403379737629319130518348441055364137249446598909175496110602035110030411229605941961807325313261766025780966683529564302295980322409162478856911894238850121579760798384498135035926230412658601749258110255175217651915440671530753379103775092367418399893632909733821876679094646019755721714304737530325084688704452707406569984123182384821023158601015658831163517108253393072204948020655248581941308219103564084992494727123774651145384907107364626522680597012995448221451886420213362477092034744993003695493013015658365244704453465146668824300766453672455785315284173885178882181909392231762917945212612315841564576678211680202401624721854773668221299998341602529009382122002533387545214631808451949271089511218156574551359034633814123552794343210942101193324165843541814938113325066982091208288478024224123290084203045617087020209279118603421744216895062865186554221639265208939794322513504354393591432974936781191800971318218094441468762452168534718477034037837929015755334028922056137691898774268470232385070211388591343858765473812364961528031090869493714867948735041765087463058675122187161842348654691249134104222713159526897816059417779480951792088445168995676283048698239446740342711728257170156015903569019774315156681131088604139102784565489834889877485992357108582549601393307268118641329245906677313098707161789504960240455425173737877567004733560584994900223806393065887502731361917981894538554651709445359081378453254720271978860958580299223429451250097302764064343315339409986564427618698451451677272186193852510467530163365536878351772146835506869606982692114370181485573929699334807119565346326323352857108252560414661245365480955212357136505163359139925049332135309022667234563252627656993394740256332854729745844037764453257085739809809138292915184684829776628094939851452315941864119130886150600244731866980415781419587643290178382494193121706028028878195232719203962174412437389514756415045312122108956375709921743405733424560491158891700707805746928945816956865554110624574465067222289764098816569656794389116796957754922272371852568420181159842830131770604229643527268986790047111486729581025156743221172594338120711489231818826807858437321742742775055713817670976209373606797365177970439513336108075219263915917489988078325858463393589021958711530243889740516791040281429331920582820469125558451202939174697254913917054782444451463766300942455850432293662313523679009664249566723829631473578475149742219133689723192781667469409334317270886363435128852696590203433484575217933877067493242078926323681800203511756555381821991752982789438219871968410766037682526370903618405875417789072107759264856923105320841096187625164370100122527431517981692107353136439141085844738903173808951669475626474338099067067225189099958294997195052118016697047015582539791321592438761202665187658565106979177342089836636804165060861185271421485222201924423530201392398563509442294284146719546578849134002829862761343535855048697768089656780945272682200713787088362105906572218961971819122899603926718178675214362119058060119678014111268295280104514999891370856302271696267316525209446593386599448085283814809927831037049402282053866021122113643515628294069330571164565070072441074086925248057513466942965375575061274578783144912404774944619972332551903441126257661331787391657330981355115401128643791069453412053560801402698144810903324316144245216980907543682403436003462457313647896174423809910883316162318978885601353003944707994835083782530970577296255571128796861431316526726527937234832206132769531369459080235495749235344695316791382370156904497976612896002294313207153444490556719197644493594121056351210150611395613729025124338859136501518630808769221181823689399537469195233054450686872501025169549014856376295170032938071724423013437669106170774092821010714358569330946300446441381425471924497252802421216137514214018477023257710611579228153992820341873215140372247908090595161908647335611757662199197243469078147420424677296169514824510122390942467417152561591618192613686027364692830774564230087139712241666586080625361759647371047842690662938556042231134428597407158164763886086210519613066805008111385744347741678296458146164235756712989747045641151327807171493085837833707379624670675574172971348414240486464575048950907253512805848510585568704446429568401444289225379945159043555450078154496210925737925659064450948997898836742338053765270204038862178167548103537995879618382963080347579158930979596333058268844793724556376350321398946182342298786849711220367387037898598478260155705753154969520952151540355600335856653001442581165067307844044167456590478592998920410928221234627779694463739897689041803075033597213205143466399612789307294067273512646558670273421144436772093744679247978113479276460773217840704086640916456227417421682627883313765707690192253176619562269152941011805035323038255027599145265565455083198340263476043700544196096801713896637815897849313330682738154325830470275809484422359555067560061683691462302186832845462181342834528780256400488910566498102377669971135628971267228189822131112911521863457304244662770403469559291363038477142079985380481580142989628885310707376662438281391157940066673875862449061795280491079652768592752247837378915123309359885705612477502454352382330131051742048542570941472582510279826857922395808216105851320330650033040749770042099334372579557963711845434762870623639305763451748259531483949093790447878297037575893901318577041257396658729693760274434125378606219430494656606493645741441909639732880129780115255478107698187332485788212656910725803087844274900660403258428035241648205100477903018397693956772574683877140392761754715976091911255154449843747268595243310688049746891284330464433393973987694083021269013963232348545504258135929576538543645498345619446120529276970243359369488059480295351769579122408930091257288525747196351888738107723570119631593327050673145957554398507891218097909397534889905699905398384401944642176856898590056424360567425560612246155802865638513105739957111394175976197436552681887054059598045007252475033982556832147440667090608506636206041843383333591223486884710871021229592624768829510951424710293230057588447703463065565497209959405218619962136121461396101858011151670948842765826616021532463199382311085210205400825561536333808320325284098861342562543420235558659001359493145571771928883173281104129903529593215291377467706774660774296755437569233660874422319338121920802580647949110596880571862274489191947074017832194546770952671107546424161733748566175206294375285121238474578671124733181304676851404139561998230103052874466886180488329260782840176662324728955043955737618501438969488093671407155019932168495942870222609731447164471768985217907188786693794731592455306023318269253593047110641841928390641840191867732562346395526147023558544657729653717125302904618436162748137310379832007631562300117383230345481919371426309954556252706436833079511739329145452639768202591432779829743685997383289501501676173688457534190550387625892736056560248256734258348043069622067635082226654152253122240218530652688940119563824147669862136636633368286447685377262186554298567148665982741031726746604127091313855650026999779449158284284577637740359254954579359119766356251177078519368844673442281513199385871597714155837974584463916793331453668224889040349538006469034812547434434699561852082966349782346328971648893728720814639098286820781644072006389002653063217915048847876870760126309585804301710408817869431211353618021418139577911488170484758889411109578157466569900872765618882896828036596624447276997340866385599971217104903323327502979389965507938877743327673064165385852814061961422294404927711710331197609038014933818341435792497485987679846505877847750137599492411201091669439640845390521201809952369005400561930720169000327876380763081848381172763384789874525607350338415399292515185227453505535867614026773968939121772979478453082269541942349332496334718630632414891382596025215163783434003280663727474876668677481807069134386921359820790891551078719421042049454009238543778646289651328521011046005763961529009146284638010834015178682705944074658128853018507018163159022426355409160386230510748360060154541163744921224523145103773742973709076807226777831690239439624911688474266889480055549631125383248924714672419252760405530595086715583290516312242699838668451467243864689604283218072283381815168549555964960306430246862644892143344125120347491360401511237598384359906349214840734704102868084163686479987974062109749598940603832736827533374691291873568342752953489235125825074447102999388325784692308659946594503707466363960298733662897704882437664702249748442444442895323310589854538140408738249895255251009317579465888851776780382554127917504129640679789883243414712970102467623345459562045422907056074909475144083088498494652280643348767718528159194601320042203200657162833593965556270238362163758746592988971495282866177680367324163958881058881963543551443289378985145394524518255212248390779935553184698419685371135923475770883567559913732295218751243509993285083408786265459890596384425012936820382736891209307060614602260387630707251320099886394087125577125795673023291912847549699093439867339420450399065022106820327165777310052502919294773123065472899344371309712714248205166957806376525625819202381620922934064654843394895189501582698050189588564024644693697218951858733753176661971967556924712456126692879719050007622086453524503166741136623916943546483549745755467185239504522793269960118585463324438115339728770876147299118398138445869535883405054722514410618085857155908987512168463160206074487082818374352821815839774845770964412404679372095574648672630064480979869268702937950498737240135478625013391798698887820876238860942664967281008726249683968500079325966635666819538392699539737812160799668831270550399945349725833572841511356260030096035587972070312361128135120112391537691875419957479755572970814690312099743867975276034333604653387365803767055438397406747955359788005505666451506268782149734310828673343101162231575703315096768667597511199363115816409396840271364340705276620022508882793669585034100937608702277200461178798320774627447550637150068565968044799341617537963915647774821400675220651919238965010547743111969919758642128113450218716711328026472928893847568128727262786025759243296011693087072488396216574487860751782122121514003350808337445175418501085379443712074268297304208745426979955803904132615576544691739344590096432417841812883515958702233298912069050982017243530579661990479001255653429192111428463458779809794785327813000687132089104493724911090629421206994499045347379988729717645854862951124713490972612777262006942105736586893156825395054250293755156638248823676668703297078348525425613608745048541808615980479414169757333301643035632470781414367927930556112785423871252054419396379571840685667898701002880538196162339156479051220405370724190232520627934250523438225150461891103304132627603901596210197208369848675757746875083625504744692747735276411635092968161480005377065730511621157485285190452077922686627198530460262829030183108931967808700310635233148569441134929639836648907052955811596098497047074247148314333405950594284260462923266068283532836326323008678668446965860760976939371818695358958834802194999443310705664896365084312241206524253358282779247253787688979498180280323213932532748070030326153099549803725086118539424746295593274524312404771900149660530446612820409470205678248036497108596449235304504195424954349916535642829121110530827082660411304782248889940864477688607888649836944431271819279876124375593462392658208101446272676984367340837768426134341052770631224599899054985088849230298524105641178922123634526540966660508640656032790726175503769385351236412482005050917013069593751373632689195867563130097660131472560703064109032957862151658913557597697685225328120990864462574194685332751435476491072852154978744006774180796761701902300877982549876019400402753284449444046562246505668501983721628543839249989925239931688573869586200306076789727844138486847619698058331741194166775105919070631907933259790988037980754917576008320435472092657376298591068295331377438768714811021837011155606749049917903883504562044654736809316694754848809571148091001974600509861998490980632690542586303343186216086959713338750305109577977845998776686426720006058792382176690196201560529894163333211647050489211802377905595516806616723859967844705710247582679526019994921054616318365950987880662155354797010791015936380750793828592757446110643716873821894552693857988895058366319554918867927363030936434080933114833437582063787896823572179849304155213007197138529958801228948932055927784365766129431696226714657548577037396476085976769838109865537917162331828008875471846389157738016716201456355359000100179136923610001654358578879908889221286320243609625076612653137836968487748349639337361883663156697291796743203801823024790101851732194751745541902472556399675476946282418947593594602487306996810616291176149589189243524393437143537512913635293808800839845944405171716001751405514685741031485748914599739481345069800057133611640707186092333754253623693576339707738008822575433612358205794214723952438895462684960801325774908327903040242799296287161321590049462567076559778396980561193008476562319059926414069844224550573182585740020492600458183322025991110000175136282151125791756970380398430105059352110239354411321768247468742847427245247994116481935836709113843284382728515588656056432603189100477833463730309302336976110045275790054493902580014777677935715001469591414466455043858753349606918187377143559437061421998485918416940325313504705723512680289155613441453548138239234446835676099165738853255696683313642360388684231398447913283168228252637911970894189286990220559121774777660728046902801135646246798889761177133786246774124223830117848264053920262517112284326902084783165115086868052427066653773190663615715565656409767201926276002411256791642790775962762654356685899072862667022703061795346319462358569722156281945266521584816752069929324389666659472123178715284679292685828271868794473797017525536054947265389616500006637706752776015324614574854771842479907328364976559737797398183143187896286646354608586408390787382630085683952895225056492174977955648823406348793857169509036853868774248685859461584789758361146760196570803119699362551684544588807090916851468225534866782599098270184033728598845962993687649068862635662471872650106282335936667020985455801939534067311182906562236042424773183659963449856477724863281346067909621247469514002046742055476453277959113130909008640878040521579896449585477689128525154829889830306561397466250088479072195184645883479755691096518494959563352844909963341676251740723925912341428187156275357097323476002932419245413822975835708530028282913198791225415309543357185677479160365798767836775965527823403447299232478624836318549951605417772874402471851988410504957161517272410261576257095224397410234262587436988498868839284566012498634989179069424353982490274539268830512800448785541631394781165686139505286466856955407349888009528432886508420243742567209203923364723031191292862307406045185410102686251845860369898367562064793569429239019414408355170729456150691143091317183642708451248783590045140517030848728465170173785567918667737205059048235083196260692523854296968675884898661656960943376709314921425021735271306787454465088633408758279365222688677889357462762782588861838330308644772067999131978503170537339804576587216815064004187993627623279205260274407595616244538132486738715353945789217731626470547699066648820261546045810242678910397128329939582125518046680183423964012032372827271245099549833552393898014208347637735814400944868371257755580356740748437114800352984789093625172983215505458432069814092258141710427125911453878566049726177485572965456814290563309207631927484902934314690829507032718615278125597759058034621278215164279899534640553259331779201410743861750993267374350862921465606167873704663165207335160203346449257879814805021390189292251282366816206888337271897447528099958612122166791893800560427860536106615762378293382390214101361202138646072939756882465489113662034035011971731986980073219968749244062593691437559945603604144508317078130527942280113249817218474009961017059123482694764713622873857807543677172896794700167683962468447070279074173764607679166271083693698216264000151127698635770966279282652837251890528475710024383029822080517378552758055118700541638632997229166892534648965725954938883547332786283676606437055358771304542179885634063338508333109990514776122507739636817602370978945239070272530463699110854235505523945718372692858893274246881508939847992598257697071402537584113031760965963992046808059435212832093375977878649476179572560959007145670282886473112777608141887362029230449208487442648633419908288843056937701562144584677700543313227890225609099436401348007993847711694474880788651853043431775649314793914162771125363983897119211140260169786718787837960815882055755813106519274990581254139863874910636051350873507783633730698005567088504025489931795109760423086450085380807883485118270927384547051539644399120590541898547911818385113808932422966215623030127519539442387114141499611419662798683166076361915714019248532441153905081494965529724015219337585881993957711995416270413130117336290641421707567603814199753872992707678122843195130441856898560608168167191783528918634414422044026616430206685270657597600602094603679273505473802076497174639331593750159437230368985784852564199312502306768592151106089874182960672057464196882072600576417115010297743646149723415145429897472782150127201529201720153683307837408815072741695348004054147860397379589007645721256018016418498915707087994407390396950987796887349016079461545025962011431142640082107649598460573388446299198188602927061108815506234739035443712325956547678604348275863800910523412584305478152978313383186007049478183091202129935907735962370007272527944502249867935033649698148704000283294747921982840516522217377516993247990677261046052337168692333075909305483902322457114183620934327196373448313477796486721890523647364350735716488456925562153254178399765778112954461605761142895880314840313206389065655839182455533481978535039447595317161473381754567033327396747204310113154996441168211835821393863654582038772145183509572978947464320475391758401325415298798638126399303471445199782066350067490592467195256911683048602185332348924864854299899391546608492422590223829021464315516458857160652231436527494157881655309375172248177871992340575859540616804140203323015777695361290276148732899065286011163455210145299773704406403998440672653022751283604982404990330536002355048747734604583532893263632257763336899762936784563226566287973012013883544793505599628195188655767905749422436340270281768401713115440657651180162421005223840378465947896515816855318552352112059269510089170413437646301616292681145118331420100191057915095603691209003984371008835854261868977037358166013087387581743280338027460128758425558604863309007260772060170693034666258901578305523717451181879372448844783822437792097649021523458756177114285898300006267734893202395524660742344784190364167765016119856971690502279145748326073924826718562177354925101550569126733792029400591858568024360665538864766112576780343494895540965183902279954993584871042873791189596250783738924368659915134476964212796802966604797429295073228269718212852957210287075547843157959569651402232851876042866531585457315588409600894900734479942952894361844471103773348522972383642988382838415902240020072192177449692527237215850387201279408185282273869617478289117191001404589088106736896640776666827389454959619605754750021993598008959954462857761711599468589932882533116898522448614682597888164198618300453101043323745373574442318581108997730978318247004016677953291333288315598779753518238254285864875888718573248024987124263984793944615091841635140998016135606848682897572995359673931735244568702495677648883353095819767714537195834949785104680128569011038705671175926260890837156364765068406302278505490649658976558471236051417056515613434936644854130280455299274924429196677481696201325633566104933345525823151331868128113351574172766522288654613785016831728429393497034374639119482171858132668686504471762287938283130359491184419899974897265384192678639335598873478513379421352739687484067668593778977164307962407731483439085366365167468260915582378101315923181026536524931806508925580468374318622309454025181830451392356258274585490181113170900031211654256011612250629279617521654973791517969843875085978687330753357854958506281684773359816025146697335292292933735858665595725681316299731365567546263049512356935242651917563385246477823618704531680910454951079146205870517779732832301477297296417751661820986067609074309532991160956864516585290868279666005073775651420332148470826189018547952680547489124577171887195596426445854041159858491664290561297872019766327230765488897648132189659343221139882013572251215222209272151941917876254391912136381967559513594107723137331954322101566486517690553425853207748167118997320921121769324973459128432463603724324849974050065105341046343782491098384736512930472730732065815067114910891958654437593604357102739525839016063158481600406353909137279023831574773435279102803586700707673949689253781257762173027994018668102363177862580212767368916706719813232747762021060578848852937283553939585006755288049178564972969442443484551503189018448388791148693453948508522213420292613166252691521609273470005605006319678675374641419103316225905940004191791839695868039020540989859406624517346575341409756522713901041442808094876668954607987094749991454214756688968050207066458024451512711616952945314017045190973165979108737244114179183797228970568999102449232919411231983012396772999375011672329807699688769179376693424912191986978354036497814641346214563162357715135736273051835050948581639522614856271988737416216350634207415895978569932232426616271901163300720647022558468445784084299697785985355653548743412854017540848588691294694063401698296162306834628644899758045187624890549662929402864010023821317621048057664627289472643173897300399784172998098474259357828447909690156181921380277923245132145170066500915910805600480780628171647473206150561994171649583650376020787606190017002165135553981057292819209906827461766602799805823995807810083467328212884704372090582560649303062188208590349073611035824205624933206425726708627499698288221945816759357992061260082698465081202383441668235691489893755083190032182049117519593412108368330893692895111020579954954437356353887479145511245948479661385479687842761469011348559729886734763713537293184558000683705729647468764897553813718643579863612408495777513456462378710440236646777098159818540523087933792737930871639357126720331234974227436680861658872994318327749298821639894738935992407406326292676773030957307634165386485615179598471287423109347044279736219700329612358239692036404349782492050750061006284392820643790880758616144408008458343985072568676522260676155346783722705212357255654609855258492367514211472690878981406325532767061791506438921949716851695763398192786465967675488626116858750478753932497677397541234710106031138971666014503512085872001242301380610663141278643380095539860241670596624256139883358475533475068880397393437965310627798033646141568730541251471211814402192279956439955595816037898138659379267207850109598373641631431853620631725156985282553730311488703485473467292346605655376318365460675441135675651318670596886816668520632076261251362760104593300588149839470841388127895249538859298047773435942522547003461899133780842957509731435790510921424802478823462674588754676045847688710538325461952511930823027825167724019271996249602739648607729071338267368854396357403558378307015824135108696360697684039669417136548189869718780269689193523279929734929652768851562730701340114785001557662786303351184956831441507862915863577280826477625262868554990931652203032752426479903661091642503524708636292751393000387966505415008907963848703200563771674474312532616080664638591799255433448051388485824751073619814391078680807469127217903318882102432660303232882783709705574972544770208664785007107275568769316715443805472278332550397275729787790458396714419768271300117969042661368312887009044531495089962150999281409277558668078786838966384892095677082350003250224105544853829358326009301929535019799977841405980627232134974959286847926261562706808586407704164318497117106178597171796497537116253753847798663467291998990984264024304843733241721364107443895103884962657505793334216669678384700498399327350811447428753282983598096238908963141274606566670657686869605125361830248310551800322109430925230545111438916368779433070356809458463144317975960659632120196453599632548989751949005383709920730859125799385949554555222849398444806195679673968272016369885120360847029783779829479470618148485564557214814109400385449377186810904338059253776993778559699215086576449774277398561899559367231880244534915657884759459241975788605766768550974756603263360045891784728636862098442737816027808917143686963165284330110393330610001181290000584213136279267581705078070323318641361150619830054453596793428358155822678678722331461562614450336444311439288716981425896342537960457516895313534027721703766873678960765369721098913099452716296396586806190370202979742993308486575254060810922165635365383411456607603772804698628966730718729828946758888622468733329609887821046106960364508983537504862691636727478098433637775290071202080629849162807380307158738314653214744068924680396551435836305995338995729148291206038661456133919517903426551686791286837291101435415332964736607422526436217453487798075743452782000795560318226260855994550508873074510507031914000618174065837386898793733063961188972823417440928712012530697056317333370033514945711550649037643532733499937547030528385381549530316778718820148153262955762201456803411450953760038723885951652481841140753025411289884304131952037127060565719526753195782637166443005394621062281155073109737994232266142004399812949109480104969935582638276182478767870479697172788891207601390764869333568085973956915211577697996976036965593198555900529205780785505340024015145649359517596003831547256930971366843863686078769135369036892441385086883119407045406193146239851543658021129767404864140025088568881590410380898931383782074904346480059290500821832698754154348601217988218191075601352549418238660882455824240468703061945051166109771834321106831494844681826193652716116546151863087865272866573381204862375467106071788381747990315184397038804654022670680518034279574216368501459299041699686741994060083836399563564902223331925693877690730901854916024091965593692186369000544701149913843417257812034685197930111543696849448148743259352122054268772480687544890179678764799111356768800055611157769962082842335318964119887942219492207842293183254033559562116858324609536776427338444749305024768655865041556206726085975781751312234212948744007429517000084117414550563495604610788475660550794383250649279640822343297925991190490641840657125531945566925987428949124578002019787255581179037578969032517660514028997833269810574601052245218489230410841291125835109108264003381170269206949057203829812094368764052265676251077338954859424020154984496930580908386386738046230515414211598407186684585425319483987438014414419255467093209525861770871138820091269674297206377757562920871402770575746325604097669480347039090069030308201483639451258611970174158241917175130708117081219069550465285088620000042941006529973834609472776026291659929138661860033230050102795497092232254248070083927400287814531676612610828758713508935801830014422726335311561957954366723906255204270478708629575601835592145013676503978481697862086290846893967523460573131253706935645324342945710796605700533142889938204401782947594338054151330290416638547904981651922998274330503361419751334881264556268404456377542585124810333209413082773623615343076258300051866094706088954503099830690153549811881153171758373979501937988933527082315258756294652807452550944678519168933479483601447436213940227186843394049373541393959663051019138382579836265998958992131388920004694859729838828377855369636618987515740166105053500118874256240422564595030195606815204059469950895744305116101685316509756244996577328369817182240704715216800969620255019312757161279651204044778331868670471044289844958794557593430985826858271482577373631638785449527957162423565661340702103773459616806048037355515892098492724973801850238773101435638685484299346351651106877497479990240888917544390685037142852037000014292182568864618802197266874632335340785499974268955163187190006752233896226278747911415264203730326913171091984491868370596149453194198413589711229473609519350880042557496845860924637096532880031100287973398941613178171276630125791081350466671822586246552794439374636071570147372096133401183565141649100710055116400229375111589682838133184499010049035387047835916531480737023323509856450229190449566121219318065523481427416450911611195782945918232229960507223519546595558968982642393385885574519846386287118144475996836147468046793304002799003388820505690924966165993976377879681007243500592615782948824588969648234908105323193294440409428613197089861208131523029624080146550913125760636274210835878932216500040904887323248703812375344902583253352115751268348779157437190396178024241236810702116912888650612548790098608264295524423665298800410376242716828264463852151743491254893065521791162988120139995549419078645441338869617615294781787880984045362349868459523816568220098385276970757640866626170381155711109247463558677491186995411959119474529662001351942696989332840376466236674095927493494465786104182333375336833554570597462370967854423691046292311979284413497576541761907934371571193892746944100565180702137937858383901622550884188583080132577135080328969200027046933535335271175835724483820535649052573307585991479043496104527726811509232284661826368631243252510874748255324869820813359627902930360228490178975185713639177735758271850165298751927809723866550352798887651018240948678950972909545766648723752494065099076140432401773879131154396937216296552413405297241780238380738659265396964210527984702461824836235342117499738664072852850864770235285440958276281660580218744137684704426799160183621150926363980244700460360738960852737004426407140643870397430000249632688737814157777087544823201636458172616256906892427969388952950672707036485815805696594378204439247668129070224465568090518638165304475042601529176451563699016004983640219102710758861616123724609981258089670365131765997083271102678257232605226194676808706398419082751024798882039962351751636043017600028652739388511872179417855343919410007389676668716211533119055444480102210955512654562661548105010598442099264108628558329066071908681668944763899399496030713907710510946258487609110393025480730709189537052681911185131607893869660604640321444905000197298277359043029067354273772476695684161108279528227369376633796750899656972087209670953266351036480861516259239344453329148754027169978176820465065856718240358444958179634717821530636918130771319445767333212863254932893582065190481618853995923048392604683569267531181605779189792070346232472240351292189048257599391894586402715793197275688949238656186695461354219943053821061722428490483345144905203785737121422296327061191722777657168070837510533679429551013846015570426187806390322617107968949043753433709404011824784618384780553301839717332774843341145927741607777121123507546222423765142838853887042071354443676832748628894659043195901950357344281192592943215480271404979658639897804167341538781989181954579188136042153302586905303236399219913193338832122502844670978240607169496892465856559915469041320195447817106049674460070279513136165110903534311737827608815530273091688641769910144303494414043099577831930650701833335639252165085033839550376642461899862095207068075389786607624175130072416270091800176702813132486176223693677767983920739946033100854320941520787755600146900450510803214630128370419198357716030266178644526066265775214967858532317213343936602366790404898828329201407734578083256379182438368195744155640750685829980310847758264270879467024550001767384130914385367403065079013962832830538366659950131195540988532372692052840635827755145191372993758098642727450297172719829185956385847509789662268723666907904604722139232292969685517119330377932393467461077827186806795179925160766423181100736319254277614172982333314321120225106063237643588999585313157052971504620794816289847851062802203923194868711875755548113451811729800712475780448750566247905454562728562121001057336457870684522818114442534045085101645308514383216468285800175864645146891167805637368358111466466382034068942969433095782246385295177967517026807388646767301024568918077198569630956578288025987586607816560987007088105963126839368834543379912049448557490772537572549494067338814253865440249458959671023636008255354449258122692897109839057499419920544818843516701103691008257529229823070610078356950595379747041910407542472230370509359189850563833639961708899208932147977944324898167571019247707191872829448909764451727184730436470163389460826544826941347571824890668229173105680858731698871057401978712999118601337401493489086640159623524661567474092121768482091248329897060474542956903116242440888509727693430335416600044393569442952570415843302924209741996703598852194636363965799543404610134255563907212393349054025063675813587048671730603137286586588201610102717575084009566290618014616045874037899359148458396217635942191689032757747932567984189467667238576338782520105778637663056856328546031860485119063365467856263859998594729801001524888902392466020220593085096534297127128503032567238431882428234690656327856921612237858807995847599986163385479303538591123912193324838618401916468713112516939285526374241649100728153413987403367412891687240286276764394095648642560611760354758975619243616334453858828842420206996861346326342434418874793061655821681045690525990888522432647691393345807759333516605058434771723051981511039524404775984580230064833094643835921820071998143565662822080263034601295712461192885407576665027816297880860166436316390547670808004700436430406727387506630880382175605519305281700294797522684987678472085541117190153175970612400131591509402270860084474325278374661060016278072400919882057608938958252500133418301388502495732778495921018780710256260222702764329656147498004976824920379858170975227152491217252594795313465925658134911538465508899444489756704876740014113650393869665401647784108521624822616501161306279672716340940662129943223009538400956218603332134278572860856856164192305969462401136273565337987732120619030608630619168969680534157770175423537891619329568319767635378513478300683884810752221654710348297512879170823258673696408336418827834033871612948656296516484240398129274575153979713124181502487905357631784425200932078013653915854067938298864750963632591646505418472456730919701430252163328940522622059457996511608621908250770425301028638511376640819171158201852923423138856743567979979672891419879762128980707340551380827373170727556879732733993407090834569072188184380840859687705268366830670880026746632430035930827441901732229126146104350139704253286605138453220875546906912907568688357390739182160401395190156085104222729113187370009141156854842705007052069475801873309393480066342486793500009213364446298409427484846149782027062139689402169252144486823089180535235390175143315619369833870467055620606479047282578437388161624872796711669795046091513593025938615008224192677727464784177250641320376216449382325901141889438642582829564906862676168666634647878267285643825243226513242689967130860085756847049187147564806498689319685396735156580559794631489797241750000687385165624139859433904243044575277193099660898925782797968320187417842684190739377902691648328221277135763462840256502584139323389234521749328146044640376100430315012221080221056886001383296962101341390625317079614768545379961102282970381333636897461774390474831044433147780563973427037705574677551694887022442997817506683292557544478000749057039089392748870296479748687910629828893288222725807596433918356878276905596937975623942881245495480327090048137788765187061909910728502934146316162225911851052819159139541924677183290895785994960550469067158623252172737586701373492162983581810401546916146398874415745933243195555098155784644769229925344000649636816201007260447663908793435308249566428601814616494723268894079564909756994296085536872500094953814557558775717679772625889569960529610150930511059925911959621924298475784674588327130911092286318449195192220516548435955075573604202268413262999130656406297288460969805941535898620191031117958027015590661180809571311362917001279413329780028460649608547216385683534039123841049691996082412889161613878279847539892076236331411309617528901158090384813058698459754108402194615970994959338710024908298826852947187737824445825947433231798472046958238011911458480202165110157291932544169505267424090049653275766402442659080784727337495530183002121995280486525460270243295292060890081529501458738488002930348448607601454176900127246347758102841544723174218202275990897881137118963080905510190813017435134168755808507709930237580810515830106748165276546513093299892207871802984083249801515788175538726963270326943655156131762967194918629228504512650454742704080917985729632840858660346876596022107195170485326579515752442960083304201187417146253410624549391660753142255032898703939925013415415005264890654032874704254722168783677628265628594311979543055094049426920030030827246556199416504249063710722949823294541480683007060477123640966086592714454736668188503488409017290280517747564133981950398528094238712578785381229813303819517406652142095862863114949050997950632392010847544555282147915113707837415864585782873082794144941961092130746204008510833752119402148285337954358699632905713565173571637705185791166860037693918831404393424595182080288482587944221581346850407507563611325210272482921590634700959894407764879331939964945871633039232565028754116056818242754833148648825551257546514626012467510047167740993438218375510302544727063118855454202198927073915884937924545897297579343073661150893500961143361548966839419098764019032163562428119259379969557473021100384822035986099805533946084091433365970046693462238417941223734536420342610756211419673096963092344830766587328832777557166228348307727875538056548483657821537733081382479614049816493697565591216062446499651355576907468388680239815381643849003445411348622987805033114484733002661207156346504041684775286047358992585702694085522502592534246268942172446343719483530660319477998656745105125294303949368483224739626150303467094393797074751866440595847035759912439115684739529887263875557289754598507882755786937306017829642601064796980510409630247541385568718771134692183837863010235008548253249258216551037477975729242839224501648325223416894888489554218879282808583060583670288897429465317481592468643089935516237117537911934345479661796923183500024713991033378043760922614973221984284489309815748089585331038802114444543900733112160052936678325642975604533908809210566512408406343471111607170776324727959543827895512345572344048894573822531441771371097308792561649401914664378444348452855906520711366154898516846637735566865318356850738789241154528746472109231391160973179295413564085263672012593844177306456782422535068293249102254298927000892826477232583221611973769323625906789766831420260367256920540601331692233612235197496360266835457673800246590795572121102159225301683461437829047211441268395505274762557304538592535896905645343866011840751822445291715874555392605951230288682073035867092456252316835671580922049548914308950513620633490134934170336126576613393919793260038240793200936564217497873353451751062557107633126313615146896070453428261854965180896998797352301552532416991749886810671819241744339015521402738028391795427879796897506782423277541463006076299640599043141343293186702849570630970538619698929063457224556209708558384159714441433106865700199800572402506113440549287819885928907797074904304851518336180870682589011510292257496396422085655123864476352727107581383330072976696264488013823805742079081601919662494024675134102064383807072886100273114016525640052105698975911214062486205543064156292513481013466764254949544159405908781189301916342124392861471756710731367639534226429844115463724292239258435031013519468063692108508397568711763372216962899937724241047236246204036379115840549983258838686949239686213231536873997469185855756741599700737141937168451588258761545444548083959285623807283759184224221573249855410303151428952568769595163613992266069463053580845543994199332190589401061339083034420235113730349155280118284066251930855999164642248602940767716807300263839295903770527023910787107557938718681285095805964903004615860898555146439283051090707225331949181149185671109074345162017772838137801366121107470406417350418991090912965985053549971103560736372482265855135947041539413020496759681641758285590809521742694453317625651086353199476943349852837999664766118358859830858654963948646004832673194549419361359931312750486997589502330552445526098568285590747470559196266079635931378619475138424347255522229759119079113455107241423374087177392100614476446639183346276645495046477234778843637800482834816997435025963974143186768799083563182156114522692937008938306074533771358841157658770064553626958534968717949607359651486276426225130124027398416940861495141741598371083467831296341046458145904961900487449232956350482989942960826167395497810865164752264257414052888055728187171982249296227017022803686765643074450239981996521220024198853276738867351270098154886124136238792321994589550201496089055551241216213918976246404014932331608004450458621992946393445747876020244114164197888118138054829568384031967180805800398273819782737235684933501361587219916391238959298565881108580795475971136423545094964587170344323166567173326882696440512754076926060430885933628731735600397577843679817413197399103764564402031760005065206304005820126214671826815287109166398622078844598693100556638535913063297026608583724133975555994901760876768662808795515601718151182000743963866665902721391238482457522042768417943931655974539096678360772941022448771301245027464297435565179538708820593831547462371687116751947688056441894611104356703295394837494244565703085434401915002298108670264236662296032169295932738704319394138271023221445148681932606979217711589382971329305057803600188745356853985685682258560333135213568961836140840526569495639203673247593634953808626234422979652628002098051833832216495880741768281059205168244297363201486279269097758883477275043219570703189399120348235903805634456110414851441044844059109799348776178121917379976795375563657235802863079483321734672979281559160931380887584328040429968814283556014377252412513765819674963587008040744737276595065617746611657279877992825715278087520424500124534000299458626908852403333513008670297796286256110774816144116039541722315210554427397711337095648271251892759985138290061358561526239115393729984521536182277279352687939095743607202654506423988962653130244975505501950093758042954013067133892082325415426019490752059698595450168149226408658580180373740154244531156425046874418435855052635054529232939719502116217730883263054906788525087626735094849642943370841907042215125424798101390095291843843837147020814786979909116874152085957754487356962010978648057845046970527442102827682531527725771024211266718979162777487840188281316507868314849961951320038918156241951723961680692242900763681289443130462500226436214337439841832883046293396709279512866418882006828564653676273326702667527178945151357295699686741665531058757724098117645094700191883853407586459760105358582146645422057452277232141795325746391126841800968208779697081143360279875660881646181235290458090198057997856385006539174176399905264276543348846348051576497014240432999720935217272047300053448312349952980452314739323940393138988089167618941637151882852513646540920289800005477345757772058296323618589097688249368089160069966687415469417162719279102754632643317031432854341223511181198283488206030672050167114423249629192964840875197838610217221321585395375871277910141484577454147753836527482625076988444949705168738159022127787142153425885960907757130567442147948313408437479916083634401632269047057848034536282510583939781029840457020137010227594740191664439379057137999939912572345498692525643562264080405752836500939391942115710054612653081120469677185015188369712955459455812014944304001558782611840071827707224702642802396435372007796948212943339009509827600336891781987502091358059580851856453068238641558750304814284008540489098902207780380710244061876896069638877289648266209796013014625969207784326572422188132570167112037156834016043380203906751899296759618689568716586185482459269097974844741033063337619044288011403584410794130237598461340956780765446876372659449596622604647392020391637806667004228853697147008416195336483215529486351509182626623607541081427552630229221074975194632126096494120822002111187937430958754604579144366625193764417009471364958767657213012678597574360366448553528118094929008220503974679737673958102085863937676133470281718464211335414959145338290412350319633563730291453753484189873361984870286778115823866877809530003696277903107753678090367852445734401400191455586724803820244532936658728229124831564166459757826594536116183796773607393833503692049755843153510893997532408683825943113270772483115684710832711395390437349923373051592910239219604641170105061425646617927989168969050734701664874030113228377337611106391274084211756856538379072080204662705739703595115090270783891291255504715025814461649200856518782908017944858314359389346633967114425608506816590156118065625709009155788842580548442073320736045313132673243436149768744287209365688631637495394677898717267795546362424526424308673894467668000709290763035423495687802713013730228766711851474559313223234837296657357097034178091045906702612184379731596244335639764941508064162387829697557383308983185395614268030180808296674766050344262445471368942248744163866346129353092937496350499283356222120183362221935871733375088860743988721056883183208402827638847386299475580859975193637762561529579139781758774172382672183345240480970601551445884557118965842915166984605276864267525065822241439834031556441142919241277893861586387854148405960995530504057777686242472848625396737887219880744704116819939358744695459528487784021695933021204820823417628260916876231156678372891038363959060986809988300012560017202269823588427310669034809783273086303324682658798606155357854791784939646268602152394099309896971839484698454407003627006095916377220945703485612014582143418174170667284709875505921164005541325893286492700367166288676189879071489795365250643356326808374403473485050121290663007980616234273856159187067446539493413998349743505385573957558558279875352676622180713404736072272832901130942766568450950136092214245138673981510445827998176361188451216592117060975120736983476758981732866899142443720862595358118343616488045276402550659196907378336409545954581842332225339968933772153148603350734835075629755366183449977683037296665052251376723232345150832938277211891364277503682690355227332677825222110571231226903054473975926407481750676602860096263220897225943090299374358755096381604402875143529148872262730306954317227150337119704481722091698273428268786563292824426669225090000823498407180083630052377962334177135352552693481340123763489987113606285870990837362417783980588270263971753994660816881204494747314606532184030302421237571783107459174900962979059025583788129447454624370433170094021374191796802576897414324179442679475217780772701246942304559364631489642908002804169715533235924255983976411810162757246100412975761122222324124431465152554562067135830412175819640179779202549535668948793033299462393801136683626523448704496459226089740587563899671105346139718609006839536002075811522743369047902752534655468622089316991274356436664117972925009007654660731070695672106980170722192790081677706711702870948728529570545944106797169159362116410393873364002485121443095605178317358232845521328409738952834059858738316157728383640003880711870510747645727243575946466189164076820402291289373126510529031167543086639138207959931241692601106416603059850454428982698989949842633058475007420226801853486229850262181021256148212003810525844830922420703245987356877591959214889589010608230640643392083506012246809547200381453443700046191096317721181009681797664972558552477882248549303715745681066942795701915890875233906531877935618808042602016978490691241093168413513046305920845551817674966283672561830885417164882477782105013733583212363540624335668332743269429422252138513618938086829484452970573117045317098019133417202257708718167633837645283649062458221601438584752895230367583619808021934640042698222748908909781316049625307256062198081056920843270354175142616087516022884416913650209736786012419079862962992649321337719070570065225872160948291482658838461514322563596371645457388695033723833620280681515571419940714643462914078636903081542410026582503524598668676964097431576765326805030460595913247134393504136098620329101757888845643926941856611166275262332938606770969074464576183166891677988851875030241386147069543578671209504649656475085956740528451891589729861448834886398157592537804538674369712127503021139182644978180385260975960595883233222356597597873809532952138963640837546769420022977922181281445458727323422069846159953992759156697555895970688865179280948178882866043780130004954993707826565790105642529553160037420200040208147957783031060704353073460201779752303846595919934212568890770617524476262638229933421362766390755050115326128497913789086223721593874136885178838178764042638365884332744580962177844346424809163459859369098201901131672972440491644129448901742987755888008281905205682469075962355329503746443596543712154823603979750869673626056114798595455177744018778075731734611556892149377406767589365314771366606902106245923595743265982073034809421723460976337023111812678488168287349639498635265603015067439717085653656568921980743732185547711113493305356279320205685389768769549751139331530799147880250696010464134885931100682611726665020581201003914639432110664294375394078789802106770314610166601088713017787503194920778858482023283441568207331508753183199061371587612293295253170307568941190203263509663288677898732331524381328130846115848987727752218034412398270695238909860480890148976392573244706997894019647857837709514789594603895372340784097277886339526628437421185152411296029067579034416456284298887358799383753218217023680397769208493739419108098510415316368722516019444212568546958305295977183330211608288897010027825549494351687365411735476810305886307591857805165319183589847785359874699792894097157062131470862882155335918675116836362070452698244057113316700861758469984954192732285792962888398581493971011258161654345314398041846645729200992093773842210542668594127095935265373841791455510207275180575298228413563022753426585571476616055735461086862132958379073012488096603902719854585805242943993559281087550487389743381496216516539957407353907821016081749986376029791658326804096048196084963744126412238859240809302929000000384669812745366745393178478844033748748991949222082261492035229113454062767767809866345298720459669146496038263502229182797706880835084595013903998399119502751033147764776183501545530362351850150714315718614346036242923701837561545478690602112202055248114247947937694628498603456915418820931454355150185253402084833791080135790145067935334168271618913192419542238439223547583184692356620242740665748566365228314728635394705095454166429178982080027431552934871945434278905648881292629284872174731342401742607890045971973840451947211769284645631255916016298101464532938745660746852311232587078329732914488759216512389933461102853962191368408093898675002352286906197521538005727770223894724599074474261552375721870797787270717960638453635129009048954073011300827970206655021868932768966840000198072393621324750999260819844120555187678274327049855207129223919480281799989228627722374307926842719370439239577869334023184543870939760915955558068640901800104356156949607768543573854881203885204839122181800304452449056140094774721451713528943898602554503576718720129779670545480583435398513008318362912035895064850331604980617985531032070349993969611243695630473106252770815764345215331189381654046259960587632723713713651533824826080066228586817710667861128847964471208791878300701989752243688404701096501529827346817216972167528619692945758525052080503692880793458488126112888859531380283808108317270688039308741161921811134768845183182669625922685041993055090109753768030494789538489055484877806519396748993207378445843561688928010629355885504153562111020671491207466687649315136472837018410529031839773833299022888916719134925042485689608759503060819740673053742980554222150871215145919452238573269493490032803167878705591386378444605170899310570385931197497695613918065128048393828577246139420673023822588316044984067214212480052658390198164859916450361386707065987550009161912964859534643353587661209134337562726577312882757779334006050920892700619943872178969063689397526619148954705249189751140884777577441379634402404898875156192242509486028779980355393290053307336442887077504380860463915117348661747952714978358958656203922923911796851036813075650233722992474407192355691746185742894155579312706686631824465168350069631871088710546271421715216919285781090375420755403142267549437604791732949434768982263316559944973082618594760806226673940356288538780136019097978812692222244753549072240943098198606386923985755129453827071455679155623541455086002559206282176836791464267237308957029277196467031000007204644345868476946189716102619511235143797504481354741202381565467090702171799408351017545202637937675126931166890416551834695508022353227370295484212088573324978435227057362825016284763445841692003274856963372118921397648059256713865161906543363445807464475499475943414376353250090243334283177411977685371981254157196773736247170374900083002712111880381394573497135114681918426128056900430346991998958853666723646752776777674500020201708111454113592289593003085583515902774034903347063057234633002668787635502995688463267448492768451852642749819133775179446207469178151178079239170553734681137774373537924812065634558804523150117646112217541256562232190607528090596913139752863130166735569349879128404959708827272306807405878122186090320929840309872331964247116514166856254230563262183226264746560806062893001164926521983949546206427922603494963318543036918598261864354518054220157689072766875364884991442213188462392394727625829172023542748795293402504256611929567094889716811787315667460088069574341783014638425330516661173745410656483034736392879295110071626866094972902500016204199963584847839195681783875224075237455851924453446147494723409556953668704535389554892930884068318364419302513924798472774202820186108904414357426361781219877839937777833245423810955021359349850963983150363720321445067418239140570482661252139270971918193716209873365345565198494788213322071173647555675423734442199482756694587513294015605590378570747769018584473264785209349101339506651606818203515492257736910276836625031179712978073966875337352784832527906992442014877940359859479588341909803733027333731849750835446314701234442672489123496049572745420819023242937501845410650054565631960934022560422103363179790308316295369563180460383993937095362905102519229609346136366104451319490397709423551948410410587316773495179819762011453608784413418304061025215931710868668294952333520185592164584058865408067177361993019527481228811694179130473037852546509343964130925088536274090521303790210993743419129355974940614819371789447622142848425717515351959916190617008997193049242941880682930905516463011370146663577829491317109262894239764344726974969077973833729015948473359040429507117501940566853919659586253442112946197515684552560101937788673011400292435571888759305181769130270141125663663012585530238943698365946321352261106652273709137033080741988691103961468381981065515016422613450515174152955961347555623275771418712671519261304946549180445659941033768220716847395036840361309765736350091793410654625580723737100169181745046325308205216870823208412429106677901632119127748272215079279027208744813538403160070777138068439728863520731948630963844847684911774029941983877760695236580313237842331741763286771284873056831240366063193795148757140870777133671984343509394943906883617139577063955148254710015695129400235694320371468783501575989784368321229622818631645875050091690403430720434109404775858974784051277146435831128044850619815457269388278310245955691113654639623901124558904062077302996997566719425775214595281148225064548273112229326290891548728429278974248989062869974275253903886002417002662205441536716361239642768375828371777224828993925893396577797375548075850229341446436498490641290499368196245230611687433532341279137283554493083458533865581168977480810155690018617696222019623489040425271269821201413138470350471284444726814571756380337432260062918055160744670505938812414521956717577461163863279704720385494899845329435047787882907510139829084470713704394069452780080526377546344718098714251699923137558362119965994432932086404032186494734149651146473228254951255984321334043316141160954652815701318400614991049161746170506171118407493418643808182436217687112924238022056960030381424370979369640906439097753901205735745337473440391477584739597133979835103619040273764016199154405289824323968787199224149530246125814607480620078684126344191113389131886840181870504645411398938632954596579040127398227393571236652824551022946085535657919212771639864574480333007257660285576463497445247690405965729185668219206305279585797508335278505689366011543858328877957900544618227456671293230399993284014875196858566233226851074507161787558989534503721439332850167129447774291574762393957121558554116013801066327669225123407254933872650380603780292266474476830165398537144799180758053870238698809315337114999548991798402302022127981424973898251671149307882999716254384079041465454830900100098628916268704415651971274141223809073036665961333460647707727524906853657309927602701999623741649819207186806623321712774728622860717713411482341289869432230979811025809506775636102146031509985223771146828237396622164151067411177759197120474449893248646708510590406082838560214647071843600833729220000232046911068557061392026386652962998048662148912840252528594482890240008450300438500400594968844669107638557895123268250426601379777683135562734237605642335161305968076169501547975073619144588417986095066504393489836347711291776367913925706638282228493169708371705058080177659561679446981249079240360197055768272138195053117756498692573563626700247429068191123245919966564272081447226290535464910622942197084132401315887101573415575435920468769393498123862950571518659321951774752627109894247621189505939194494505178301848447355017142621491673511970072524377128466545893842760277969734461423820220193311311123738486883275292508310742585996789924412885602058177306782861669733757169354406927762959517193434070298132712865390287508879692929141604255297342821832734523875070083044182201650443962743273264075265573568923700406515435311834918630327125222080765332001464883703859715574666779738893421593487360537760094306610376713421308767092995205170473175107411063573239973327001135997823825489493672485061714868183493978886214131772565228592469751198305874843607708934171508428222961174689962778572701231388894108120455748635230229895672505414694892961245087319800378817192282682402976177699598854449289773649711018233548260289845430321088488376233965892250985087479363425698439261858180357624401297936779969910122028758074281129182583726397934492412043756705408518497244273955594353248969651448865892436046166994837774110829711595347528876267610663359010187965737635828299921014585966478727868859138101361208422201939608028610329822915352089115372919854936027864971930335067072407112877807392946268650742043666164446615467236914949040128888525650027187666748678043784640887509263532674373048743617693245910099632009000231037744468734784560213677550713614432585546419750360955595996108243694149131691790814429424513151394191537471773438278960861699992095612089632954695275167596542146505519340722886862598073317077863430460196449763016148802246695300899325222675591057769853237126048207699406048702131045782642233835036292063759532846990754689510154377240697834467563141716035046741632628437810975808545248385607802144231700970494303349588676871191802585966208573794049535741234793869334216168608372321497153388824208052688425609107897657399878910388743276262320800350149755907422024479798405887388896006000539567733814651646538102098265267502617747924540976158512606105720608267579791154250074160917461538294561078977496200544135940011971582998641471271275334070681205407986892072107605378562572710306880407290600537160108339420514100478329851913140058020865825975739784554522560612952517381135591698901901398766788348452791287154975564036208900212612368160295439632464332825465999433514911264836292927120971737874759597412690277141209095004197445390204698772997785171806762748493535640475240606612687803677891758774406301292021333480809138828408490990838440233340917588649384782009814794103708398598446399125988742947514244695981531617720435692706446900848995375809915463574733387680736339531285909729501373835633798039967940932034467366212848521053070538641444814758352347009782582772608146871880549910298762774339433033498311677405287263923116133624498864754729037689689609473915222228027607602270265542623379323593889224657573057203942108162824706932596244648761682559602130282147584129931049786858741057053952582521446238825464195170628824553753582476453957441912595952147863006927473288351520898331237870400724960548842296797997441213639972828724279750079476711140220511525074179878491301214506052980891183956348037172543773711813218601797634440313037535640664002095822473639880865451467084485543161067780572031823130446909470903123262223346027833113111356422248978290086066590772242498447124878915389368355126021219013875274448639325777541573518551819481737688891187706702566922743035085681074196194359672619912344404117137917416999576038181185431690513558242395202247008687481141866109510201835466687823132536828588962017333714799451170415543928000150674333674830322910410174268667267984368355312235294742579822019392199543011482653707996913516107318927792390201335117670373631507698543154100095464850399954580643615042237530468943147780253633790101009031352134155534408937996297616533634876026490461938444899037553037435240128620645534849976536224609197959582232905162830801698420602154529740906779300993438261969434771584834434959039464010991274829734784545038261072014974454544823969270521574535878334767641126865930811743743868911857133231803316416472966007224520837600735642314650803287923387161267739866416437634168383123934030903889283451000105381159376757336097507322473331411884634894780149464351242690859053941442920255699668991380121805658140472944541718675163791299105035815395198321171177022991828771275886820808167606776845392046097485681877305995362051388398626106072298816425318856867269345169319873783646571085078621159109843411963457277326638627624296455448920974997577188396347278862101812418382461956908117579405580868092122166536480448197932345705903481446974244043700151953614806488868299658433899816147352709991128169044185673951366884968583289430317825123751435907132812338794308296813281095374738226858579241904624309173234142401563400735155056241119578960212199046826387645881786411623111968395320331706326569732360357407080288387385988039110289573656302319182866509223155953052877776265427276069244816171689348071038578175500419138571524138317612063339627369799225125203897145109809063327901273627684001800886098694658864012697016386580141110926443441356510677740115459264003319250166691417400014406860848107525756837901279751846511483476994521519129580210352139223249030050137321612375884353005960754234873157399545218940060979867922417203606043617964658569050815923247727879117411371822768725542492010971787750459924158583740059932966288813028593296754842075709418197875498041943655460834072289006449021756655775047854834873929305637446561104603738696345434844517343258446245596216348919048237344710867971496487878845714614377897391413399976413159561036807426845542568777800710320545833284571201788135695468958084954485729024492458561916422200477433987044388596863919464432163614539528051028344739378985346768561630732738974208133300331324890528689588647970808794075173736800907276408181868493262202851608211226028467005303066776033283266075841561467735889920574053318832700530169274167539588867673013049189395893027112486170189639248663759041907268093058595328996622648033524907735365642545441809492015599200726365570925202552013541204982650378863273569234895239225513516823357316171514785171371192078478295106421301168318856257973057652192005965281645787509813546479847086424285831149178013639054772821939262714160379200750894274616992944779519986960278649681060436579418868657702767938647119782789808536145565214185239679152953889171320194111811378191150607295716608830129949007472265077543439404093710601451532079686685898736265936074872997817804546556539359288654395082096842476188502673537174024340870931026237532511217279300758741926399041990267275212508904372347396726195691395963852166923359948018785801793647360474590022465712597372583845013694857117699908629120522458236011775322580553762538466011705974349942558923119727143905042177957936691722526178284195608120444549940197599629094818917426471777492277667984240762403705427778776179929387232310129444227415524265778461042167255844934656682527819881024481219158790977517701079543631415563148413044652366925692295112978477761198673614985009986583350148861149622239806800060160647540001964964824632960785078618095865357998605109193516594257800708627648631043068980105083076458177303662874244360762441486344297896088950359196065526964439170029677124921643866176423145539032678272322157113917155620802591873014545657410635359567645695857236480691036357156781586457230527294666738495439399144059765382547228113754115457217272640304792908254280352264908465940287041764876319353032554775726643811148961231001882745725623437100295007157758354942698747760468583276646700417845319548254131387477231583178937960807634982303602870263080358872212801703274664608732892303507737701285320796328294117684395013256058597183730887452024121373719099142278967294721460371156914391823495964850056172516850906914665304159321392108444545033114558155826630583203592245470900800160452685333056514064478379829797154752691864064183771583834641390407506367746101278654526855745698868309577443701109108425474143842052849832611631332296555821228850811973027699393868517229912741762060870614188493111847235717904603738906618142670121206004131132766641570255006043223749820070500637936816890195720934526213208758125257438643412964371562325241495913195614226962263180886120561821270795740228083615082994759758349904961139489344212407515684705849464601891064048425505651683259914175199709372937712216126183042208337604676453853978927307447424334191454400324312184617636808998425222346726295092923246014941596942892725323779549711587016479875865112153175373062661942244178453139390823946721091889460531999371071260257999838604926861609179027995591252032879500693577326592538542728929948943992172999800675225527283208745337921179815719112207914049342647068359011241453430272449146323370246118489820440720498445831453921540722786978284510651713646144237619525067850583257710303980279344439306005515204582975072536636804584438345326932258986349131482146832662503655099665086866594297861228239534903548126757510900565480988198723370023004025566205701418404172825131701488219766375149897558364471115234207888579893730699110587191000645485452389350939929374889671674238746342139599937354331800419277112504978067342963279463897998116051114194893011468900894843294811548384293988731998170580053313177679780545062608003491458296910052331955949088732955116701795242556658044205912586415138266917161409784479207432438968911211794464064317910740624630212332456473775207314891140790608503980831074350713306437722472455280115218496533661973179575937303556026123644596963546274527308600897158530956602305801902214417198873633210839362899400551630658682048491552290068528156792564379158628810361334837094535711118289604131775220244432644201113379549406793159570349984587094979397175361115973964280265528203198642687204786642796506332778286313657382616724055408155879243572862865756180305929748604339871976868805398506316317874766082061222369164407236001030039823530025286002568922277646476554638478628468977198101005427627706499153252996709306625931043842491046246846531135162079634484849283223823813805961243958368281307890557076874085287642846627367268109592348884929259695930965429952531001942702039600121493595260183749352348642970939182767070148337561685126421097501755047976471983120327884700955496950137859641159347059977078862674283717822315554976297341495301740243226019963931980224277055010671666243382969245074229384390590985916475769457782965924486387063418851774117680524656156464909990577137744041483279645772923052629926933198582151033533982313163917495841662070337509386928405634613364495923920070296951155343944585719273599266766945408163345437340995461076796278856470231876753676712860868151001778703638489568033107906009665645395220141812261350001876148429477891502579876949226316268505606846487112904199431471029542719511816966756220416282902559711174019348371291207546736526941011664825916775212614949329293292986509229178614302879918718778696642467912405237489631270685245935098381823086569663092078912976490018260027719849444145966587746881206899933242701537621551335812056152409438275766642100453656273170986327401621544071352932795827612840238489186567043815304480678196567515486112304512299162644155666619265399934303730187846936101260799718878722796865426668721839490632971575446884881804511475755257565570882094495887779847945610456670097528801776387979790873018922257746616061595562818225034599560262556954552925890607523445008678942286204153404197436809258783483283169028987053652135475780802656381752416901330423186884294006457608009361108214630640902582030602067424443574014776378971517412072017618629338739955159717829873533797189421889743614758454568060648385917351368689897726606536690175405818958348755147005357941637094931063299582946408095306304184038371557916838694390189002946316998625612011091708176982784729446230352900318145666529422859522581233406497800052781197658460214067451973005616722831557073841678014688588386359584029376848685592552341878373602567835244198112981021234150794261970746110020476364696009591496885513006125302340721018650946556984808300091722410799686769454314570685398367719726228586345373674561281419286027072689275074236150041728039192865594472841523180187012138116347721335893159015540629523412533433354599172689569779588817693118204921354169490049993243093805887324579960119716400411451678350670290453612892218860483198587628690509892968265688532050311973152958686410230117759224907783758220491619252870857220863529671579269089240053281283763987514526432516752087674655693992239888735543515524023877604856919887548842239191360986167443507196926013085922403743241709129698335349248258211080584027318856425275529124303691687161919174137516947150587221748876481543806881179534545589907996829891456378952653420995520940328799578900492050958319475270268833164943053616464523499826776149477579699023545619144479162964841284604029134260228933897604329250821498347783351110801773970689065197494272763952456723937657297229054891932423015355689187789785227963357729309484812232207726838473667579996311051097728644141578067910157364222490428250781542929739801720253885716694265431880017377914791868456161985235797054679744132107151826447219236553824664251056082228440592961210885731501594140560501784379341232006430297538576033548327476054449223863155706272728203840108667160774216903306562711448495258257351708137931648061518101508025996493720360010343029844273510547066700442627112319672482613113462792585950515396377776823682896261901228234295400265699985716836654524918929619823152734094710408008567369791378527238933417689127403153347152687051289702749563231341366336439468138846313482188342227936058177918330446616834884652267189751765713615810094538091079274831362338957194182391432848227606068479914219535566935970991628514099419443762108290880712475620066809409323367543434651340031258565535494778342126002949911953832371477086605246728391062772268398538590457087840447276758420715601583694137052266120958622697880013613307578856895771185884305380099836333097417582281531755207319410607712526813646688088460111723882235295663026115571169507199089926529081969156474653956989814630325282023180156802406033611109859839387502505323010372603908928813922605989229573076129532039518945466200734218115939224249566748176410177922429117964477610701910489250031918801922198642904881905945648790623036783488528129838990394903615299898513024492721218934166333701074829027217444792289054375598690596163716066283823073744231730947689512921732792497739375640337878732509174268136889395458463885466481682143396288776681520380724611841915085668144476282760758574833374454289366011049917658504415471294201328092545284344714960624772267745679634855060186468881974816695282784172475321733328404651519842964333734644033170028088444527648831010626598110811888830107903286042795563493628518301799151018782913510529617329577643437610972166459261204968326457301095323606727135329230734790904704492271969075667950981975554355797303166608196921320310956816326236634398470856424093755688124081368009989804746590001568533985915857643207829371259478996510914994613934737194184513008480108845197032484476209833154147849272732666637361890778751469217337007593567613699894124391567436898740730824925077156249178172866358314231346159017623329536296395992706659696266244280270043328357541479852182432839802293483133586627620855067709872712020969913422083460757918114524445718218538558406064403253852156185930588184041390186633069370773202136097624481593932553982329819091501097614547725644529075192882321389806103247653893333977636646260577571352401923624042005045912603689480246385371319888231343058565159092901480841260962168124195488443512152217855718901648949107457711725429742810219696381416557562061452937484450888658158771652178502288235001532130598838050475949976009277470869589083243438906469541481124920314308297257495124054886798022306596161466628652658294463188063423001591328721958860679068301984711163271950052183524232030333173112719324497473696769102154906931636792901459025647115584048397822283770599171738332529340468498701300395530392391036308977043972849328752124406300683692943681149783051030883873157704782884428384496488042687136070484342070735113954865042187468969292449628426992853962531362401765716946412440191735663385310273452397354172653895032239387825579078223341719245355263640015344979287096160597556902041921420147764234029693061361590676333006662198841880765451906990426135600103751763023996852306062202094868578845849740224066420369530334828296254542385372489579558610155496350267227916808236487116318071400044128983492973790361536039671444728268307075333996530088346680512821687619553900811646106296063997178152173439086492720067568498657502039581477247085731975274170067029864029784933274679474785556899790168006081774113377283145823440748387006383308898940792490337242480824382019183429875090434436409392764378866389445136268494389312609400442136536199527289492566518270572551546904801827574292621081257801817651702089935404191873210975293877090024254288078031787379695461213319203438747759282943452297559096256440702041546594852152559218897928778485297468239397067304959564148732974690284211430751669338008872751723951500100900190054225966754052546121038660354765834049937852454654233949694453850513683878448657617918874196176151037110793052923040518908766669971637299142505160575664878225903260460816010910877830818858892877277456161305576933287102150769927008771538158829004404610122471037637644317058339420840697234572676402615316701731192599634081144555029496874119217542545815392595967939776377000642316258050805637017692264450644434860501869295710357501532999812494609756792893016295779710639082872829556801296116810000395773978799116778082910612270339361423263463711653843055302733306938384471263309879133585789199862119117013793801856013964085236396572458210301484308075244266692020816335074363952026559349620730145440630219148072949129328361920242669703690341311595369002714954763235131221939389974797482646786665061181751673819271575894261122021102224981307756202387102216599914842850595894588904015581320637476111419013884208900187153661290787602646404887104498921313719156361420180824970025896833469367341862056933302051243507199492100247817145017963068824908842034979830880621157261588170484798572913541749976791212295072984124375425805091464326948458302150125160182718411096393512674125867892180584884375896530314979408147804267404836770661274625301692620772807452515994813863486559567698307692953641727442998272844646535082831774521585849693210075405879641761819489122386123524905440051560631096552202832791973130104147769965590337345808930464051078244248119412403811465707323550447409641226048375418437723686807858338066731805787514608607981081482661454750518630201181981874705800690696808673745390464958814515985510733655359293585651708855641625023217855571339517117608695088937460029283771048575183153684891673883305611915858719787116868766006709685122298590691696852969035106500457287672050319659524465349925146085208585035015150212619547831481251632173838577087531657326239524458614033995221814267189208989523670887714699933127415754003187073642520837051063299008853189438867588261019108529709726716866120448412155326548401696470576625738161013160860083902075050812331423803800401130855550441736053412112687344831569319520077476068518555198145899780844993989685629897447826773592490783856744483631611619357410677031811494765116771536220753432485333716335495131783881760813645153425707739167429612494753905348896072897916586840452403975491064442084620103576744493896872433206125764519967848937934199328707765378926169878851394252366156586233196903517022433392146248219277889827798362369483369625261519705323569015968460647944050034350386905169621762067697741843442027116352178307661621657506470189953719521871864119958529838506096641340827712461112429068124790108617406842831867228831649188037691991039212041880445602428668614440395449145422483664200463254636943887742891183379836982325081263039114051202016906611057290319772959535834816567236575533577238629711107989470793526127767110837932442510190628557856721992668220427433183397472718867298052923579645448821171042608657052725253591506311875037141591152557064670081927184769338455154426402241692853593263764048913331208408765514415105065743014315993269178928002112146864605445564461483966858419414217469939032425671042520774529350229252920703510703753088445351510584606937730996647770789948773329831780248343788365324137872642750742877767323993258965608643261362219702356623073525730244087423941422068473249851105268799328753754254811660975568369649012141770871480610135693573109560243845980092085595172420336783986467805042867569697024823718285777271011779368011701705761436189872793587069677680146050053631678637221555409066317597081169128766531632569049035055705524552048939497115538805112958105391349473640615971204407208505680915948431909230994340202468013631576494827055174545276917419924674794563872286151054753209663124613888121545034232102221310866115061359692463223616096144811026230126873140883752756737591153525329370646316216760340512945835869403723672085339562757824613113616757534852863282615124448503436573705757868236274160291735840001732763492599232831620708864922265796598139902272096002494350516002787375971189548266387120606494419874080998097690907963643780085744680382221280794308202595722582698785254695080986434369160443711648226040751675613157204078165279185163799020160958826845344147914293847063411032535492784507915729117429362646271891710811820448766535912338579905811286796226501821383581994605673320905096034503513982871624017390438470197185466040385431715001940004300692261163495439027743563348857348661607906133929252118586173012356221281702121302439511499628116007150549821745222094296486324600406373808431806541883145719271622577573880198168370619376473509584189668986096780588549089679281905847955501689564787862041552937267532891798276619654907194272514239318125433981519473463885852752642178326007650677077718377967069037933366967848871816046035701637050199857584515898677935609302601554495320002163293512568766177067978060069314796979951791866670175089911570782360028740937321761677891396458621264873071573779969880519246953394619331082829788386102872160090837624201750431702187575607330451349598032551064851813338242331174982469222396107588174565930753761713679386539486496542397154929848592218160007739449522101172792040508260652886759201229833191944809786963213064670043895514146048059006377600190987486055637994910605941336438539704077874869641080575480582041832287100670102236504977221205237756505938976608113851014539147793429713090365753144690544112668086249592003696526925684626201903828827542293391265929581091600756486682436436456408609965612186005613442217269394207749498922348102234544911984911979437912200898484415476317866741841618419151733230582509194601159029672715575203737696656644232940581133118345844432345184710107562397536355828404569273027310823143990077955151450838980302964907249250132156021563128496364260691825428343001242560848132972770738742177065376773456148589566672636392360710478234113946377458863486322161383882613706241737906953433582434710012185218900774848340118840678550279580340465699059918526490746659828293454271648324917959559685763321696687883114734156034768839363741408010880578485290980907085706929594707893917669935442828605541235786043079692900490973507218904908679049248859730546574974022817266889542363398748656737294042720638656620714544435888539940731933171488588842176120537280267465509202365560641058405493195050997357959367819650395170754602602127346865627333822043713358085565943977094695638241407172299511111254753756829813893687921104030268054052542123231658488646637386423598194233848314052066607085705874823943293297183292906980637121345504525001524357173757873952395947393832118635249400910168129102189837066172706110102811435399864802965191711298564718201214884380188801532537864455950053981191720703349585575113700773820990596810240638688693863372716555247398327358011266653511258585147329827277678581438327921459145193944185464971847466895902414347606108007146859638221913104067686843193310602974865539333013911505842861253461051448946214407769891944109933948269822256730533585721153817478344221791247418993235828973308155372546344584642809559150362736361272801851055658905455769785962757925605256346748797733178721133112569903129102133494839878687717290628851762936267114700068055379788611732638387615981064282442248944512385937179082867857906044452434782767459741893389106029739672717127268957267816738510168876155152128907415433602312911318563827059531699715470382928959321526062462483173411504921254369250016205015303308078987695902472383255224708774624441166165099724640588851291233848750962688289360000575460737537108728999482516704835314546537218582761276327142870066692033382443279053379005000767321338826077182274747802884470974779483269111385583058697707199344380488505526342588893798671024627232477989003292850406394893901795842271109378167471803931351431504657162053931707294922415033549481449902508625926379379143801952523002339851536876859624146269366550524151090486952842309168867952598987860389380162755362425777123942022439639371382031745976759613863457628981610618576830336841693739892908830294657845724713883093408268784569039098841471284857217504148347407085719547338397285680425894436001298536210789795801121136056458460550766674293178066056662877050321332984964294155835048982714343743715594886706002880980146758146812218658275938948482403241103080221634541349265808340811104446539930260665433036076806041758077105812424508440699235108821461137409506370311885343727986771326552906230193875516368075849463644580506638607695656295004556870014748848774205836894910775641090347038130115771441056756038433763358080567599208223670130994087497840133233941782463320710896256071936979835284162621076305078784997216700766083916656480431693076675802986839507914003070791574913132675218657859116417956604515063678203866780125515326734280860636440891837898738942148441191763350150017195502739237711354543073638560492258708779196808529673339195746545142256336768756288317121893140829131106276722486358177235797357395679726290885778760746503527267940024007235474869139856784286638792651543826442772259399626874524551038156405157109752221487243357261768515292048997785381480090291049473638932518786340099886825366679429570917494214517405623305617532389781671358938869877729641543827621927818167617319264822349095885103091110496145882371309578013908194478071689753471236376124972157757893157324066295448105191151347939171855437575115889970971384059345226694838170460590897727528424561548551093751862367795310609217636115034929637264437001160506156937557510309483809900786142053331158141645827709156751712066288270873578924203984486614101590878573016720033945507553281972450165865222225190487791086563550003847512218355246402057012804072475012365034222385270410389032807817837351113106258154444725625044512565633268070474702046695724598181590169897735076810865857721788783720042378875057126398291323580492806712208076619374506397963496303894340138481560348800342407855532007855981526543719750402871936209403628711734611466269158628638112666121779585608662604953338802029323168062460416814021958999781050355440292032624528853825546299650492146516434877336313764119314367955286311220801439398237240061860046748399276331631782204498857006125422648714903882315356329109636650276157391281339770184967362203737631432670510275252589336992588090788783234400261173629259259244113652000898999137967294955184625756078927857911155613633999390784726242982969739555331106226440387904471507880569932341230067140013212122117455961860414376907724126319645988079231398863179368516216779738607598692379494617106602863882632721825686124593798159239684770590833365684598612071064573753837602361181000963543112619051811994288174983336593124987562500622120543603467414180672953571455353816238778991215330327584711862039278064014790922368273259263394583778020080723364215959600024697961235208873531317497022944013502564638814145511315454978270124211107555300639166432844670801672973837976008266719981347852916663021467726466828146150491631841284374511658678512600385163108382688718440710501032395418619149703173968646179097417981094726301415136798469273470548940224033611962663872758029861593502108140319492905287077531682834741083971667537707014527860231343735500396891629916978799256631501141622127998170731572718786524557198873586052543520813448876347628617080459136395702644845631585114436878523511923798999352796893644206654716504246619040803307002861953418585606482673809323676393547045337711572803381896767282463794261418263427070021337898660105222357497570866371124603704247268649186586086089171746818148370187837217301935206443857556457120378767435845445600571996974393013796493795466663532436057309448134743609332418446246372757528974570538320953747890335502362180623455270749373215305251202658372184148705889231653976734244242547391730117465080447765940184457654299310274719517221725682961687584943079592850218504113045352668472701754930709426306574150761839072563914547903378025306166176340793434955955647015025856414075599019875956428814803407502374164856561595855345585085675914414297228402575167135624586789254703774222395712721429385206948592266056197938770955895887526532241940911849563877288231738130685612317738443973841136342945089559706374387066506454393129059439201599892870945078992166551548531621593583825452464625318600457952043005974070374359268121795703313465314941280174281774053551481205926317309570051133036237828344933671542055990789761229593226489441836305643840970504137366562346588994847576572094962201555118469198725013990249257906145031852254548514666813657745494749561425432002691753273977402588408743141174055159479406815470934082905397357540708615946559504022513376598187012802176488379822943714062284636280837725662026966137590212018536928608869221136169585048813238043611536597066213010760472621760118093935054881816527956828431017843583183114004771933852037566220450328255981004618263311844084193610011286592025149460337983420539134502871345883161550168852996918389461634491113892951895732196134161193721681876466392630061297884300123036880570570201313274213164091139864012379057420188201298990744003982633389324954721227126350254881003427466670116616961393725082330487915323295782035274092145389433002820454417309885475928617850978198104427476428566987629591442798819688113277256319590263296014977315500777120679799353970639759817305807213759543597862630013416194330198526137435000358236295643871086414995638347613181231717513300341141536850453624153563894860710200700500720196224765764533207190808632460591933900390038908696985456087344704520323655104717276354598041016957418549091179016366005506052800532813498582981203519402000219416627153495206371686294478860891138449641935222779846555610041779588963732878895526240779370405286574139842053265536633185254537995028926681595205605938267619065272585838240794117169135620414127991558082980497813248754622800862545464031163498044252554241344219163597549890541155551993059944473596879353641018993457038603999149982311435805088412260529525691577818456561902050243629457614132307428994465734613792256912655289840300851337618022987033971917463830764667194618869411385587118892516600911159708815867210574617013195338395997449038228004156509465611649988218390428780589714536249020211770455926404643300288335886418147396053534874101561080355031625186216237571464637895387519271060414050245321808150712428473044966453776066213384791401135345242482044948633171209124761903817215673651434930306030625876528827768240515346044948892620990354012865719539942817798104576664628446021230998602381445812099462803524097533093678183456993357004368237573567317544996146748427750655405384789515124612746519088796114979517808553085608620913955424478026543820917355990886538523099142552500121808106288186585547148109812917984565367127329778018297767187334196279115969490254701027998262485932691433134173599005382190793500770688525179622199948487781322131404122169224463582724256883242943751772964744658793935131889924958556267702443563744896609090758898962048596424143478017334628221825842640104107784113069236242359824490392903901679911179684100446646942539895536488700929677506657012202268980460897177572878841027171991442378972431068348587249388342598620646479092612463573244301439379655522805460081442600215788693435996229698810342461498824042725855256203344487439281394987808974236184757815530083325289324163862416091509440019899404011759596085531656052625897308149499621362537543681182934307564949151965326447114206765147153313358468918236866114146225712850008781414723683366280550961335847922243735919387098253131713888888425531900214630252855657424161608636126889199926344224892044119529353004722151480377444151441229268444223168484657619293381733769695025810832751341370424629947512848498044244381505667876924533661811954133382318457263786973662215038529593461296176729148175165151190788088032112492702209273891216958861375481436645147239780463565565767848367846059919224585175684170439786243242844833797906428737421231077752453338601223428016880642643162407974527487096770552767818813740254015387164105162254303806767968279442911446590975301833609854388992640576393060985702907212996264309532049256058260882058938904259641956492694124354033184001510047400959240716553771832852174073469978203577761996590355289937415691856492070594919988006172123199440644265561501770692755069847201270071972663792377078297609780969871131258208040514494715173336082696171251647058462903295349482217034099934035803757065995045294030626683275497993144985202585386850204233067438478134533162333996290118688240133956029335225422340867255354424964235993999736232132702661404561997848100682270074621086717475210273093955642787441611535714018311382402980372800028886768019001176763623066760242957093640732731795148451662036017456003911857637433548796604067173322847849564539518394150537161205815376075952528516604031410013815923224569994629455563746599702956058486940133370017991557780388923681679705379295534392738766520179648287654830811849717925546239868274939941351163061791476535298568796689161916365025748081010316386180927060237568917271622018561644756582363412854436297839824077716084966993369212200940747281465522085283007126772907242076205497229745019299626676678593462606358433344149276268100969744325959879964456431494968981549174971261813857911207663607523494242944091316316382103561523423183893526909327846050291915550783750640007740020618229207265364603669110809108210172734449028386242467170607210147158957380145714182796570959621689772060169231249488468573125368990941337983949016295884886113523607938827697135748214129063495838025514149543276807097225751562358600588927342670972269625590227478066056185756621048309051957578940707704390990428371342140042034184051208258890185658654712618199849685504395019700252494158442618588543975805267524247222928030214071871496666420908670475083942341159397608437815263361741482745450288548767174911721639283830814354256765956987408623649016457330257694484592117840736499966011874561134727401630660703417430016519401878340982031032625239495261900577047196723124438136943698125046418707310307959091085029506104439005150510181776633255596382334093440058930951309867158942671595368185725674403938834518692088228799936756833116458332834520356568355272017889266513125889247567808075400209126766348060352970537199129091526527817113459844492624834177914445981294432448473104862656866869079597449394220822610243207085816647226879363536996176866195080688722345078749694555412342610117538317853917651953101475586946209709320741356121918439266981656962865067508422034859639157292349814301265042162234206918051718096638553788097636436580620471834994540553801793045298558546093631045835144295352981471355713785853208846895295628774633151115481487366389619272770201695024664871461436589993420894103477506679175366461208907371128192688002340888275238753636653834390515072885173542043538173341289045141088373392654289433052643010173997141458772071942993445362238020210697430357957097858186728035369327971660617423592546187653277570903374255569259969039397894528070111705602449214387222502664667268101981917360283463532956003018693494689320169303160726828107837748337349935081937368990752887114003635469921453357659919496424604914673578461778725371677623294287709276683988661554276760412403176127509794707044370845346239707559938976646646818198413141519600195047002934147188642812636878936955165298424444576759034479809066280420402842726292863212034277284161878213081926330423034931235263937015713862440411836259791966384245336503357739033654469172169348003014190331301165022598041513933455971693523984366696206079916904746898677071360337779322773097192300238511537285166911614422847048157765903725852272022992227791804863871384770920744848757271163912596683915460480868008662007808535711533897920973722701304744677485225452155031486784064336784517716649603183733807669915652922179528484702739863074267036244507897760375619407287391686186099378776328087410418931636826224328987485456661575848599009554655668820297434736390515504049480199695781676708532749826601321436492377616961260021030908527136559239667487565121927293907850732679930593148075541197800951492087107428933719677904327992163004233081751381127708669458328100392099364905967420065302627632819129534362653434435250124099957161639287120217518502727469662948722844804663653231741484632773563164081435156130864026360194933032431221085228928154533624288482700132354788615504517133510851587412573993500151102652769973288706599238719310298834188718158823125318222075444714244028745864320405055644942128842917274668726981830652552394945224916214959889284066966159406254005990719194963231727103909346446318426147086425779445108930629903872256225547948553231240027400935229822750306871836724295060946542917138720671844253824699770433307370503238371888415614211264846903025801502745047990270584284252175899067149495411609528501520556020558053418730274084407641916968006176821779912341468936417799969196426968709577943585955127728443928020252737101495181987097063385093744296929225077606674942445499534621841469774707768617447201368482668467564622212974373871253805028661216863215220347424925751091703191111624228297647072590097711134086440958315398805508558309589877597476026400510814716433816444113866006747644390308693953746484008659728117868964561960030538315577539209832961758093693269247393052414011571100703384517799478126828012660002350225596544947557554952281093362658448093995345712299986980351718213063777517342271447242349509092770223985509312991158940214211795494493351543428751783486770567998331739428462023426056224895637469701328514842438375540954851232355084864753312614335575316964351386754063998141824996058049919317859263223270340212259257615431181510480020646915441525902552512932111212997579127356806410042177891331679694280546494801702719763170813592436716732042304697759815085386354556338335145927917818016800855992024189348069312837618525486596954336046208653906628642944227621113102496236219363148822767932976039233889132334272242295937550868844273697271250941040355303739422942673412975431225137622314733678337811679046645146778178789471931659096847950734731925554324004849323408624791057042817174509430760363159666226352541144948021601578676961044706494875066778172342806600205752843602537896301225131488028878892043689630003838707022825747305686699759993645280762479911347724549041614480926838215154425461642518510891155899408193221088955362384322876646677306908309798164539731156530205228103034769422542305943044516746742380835714636364939986855103526319299342072767275430544570111198300413326722841665961564590521860034168877402468198333664250656919049999496242365529104959489960409222333615983331192980684135988834496694654139358030171698130614359858201064500625734823756822374254653202647548680094882878718207948648256321148154321266379255393192331364912990679163688544748788626958361899795492785007884339885105627548052172434104031061725249275296034039819825083527578801405817529773201964321380279193430653405775560365103128903891965759845852825646351744349006845676244514519381162843835270226226819244119950690264798382122405207964874844951065614001336828920364006171819671644232444941611517284431697920869664395560952361287309718735592403695894113267347068835689743058831949152376942224365533610942797905966510632654849285812531315200442303233827893652844221902323472529533037884770465236197853681917156429003409500522978667412937856695946712831046174650662966745315847905176102390840656779983065440011097207285134107707664525151530790921268756944824435471691832178806723119447425780127279408265737740602820252381469173673798106745532735521960943224844019444234731819041203397011272334432158112494661936567814890370618942591436056032862564409747008259937931718529175588395396353396635026764552909302116470714517970159416962040843820627141235133363982724021636324828522989964924633760314309423776856918215838626887648069842735838720623645613069731588438190110195112813832824318495519261815105547886101460863297063395514082908170934119588886272480831349871105616369759063805684980385101030785761717721976312428938681898570811025873708238398890859875610152252402328679586658863002940846837353237637620111657082021994607081995075153561105080655994526722852244922456686154131983866409154634105939544824162925025124226239858167457007405347942977323322440588805158428629578126605420385606051486567955839244415414796819948639022754906405782184568187212502274079448444228841234444287923685558319182956185027983191490530384862930593856868360286295336231453995828682000056323777258432328555900510802623154038206716193848706932090075017848755174984795515442560447382098062516954186229253176783297907142810991883445840940107711875944006346274807851231737347820729596119348235288388036071662178032592702016870245744073192149931416766501682233754617683862055380821690509828708804063603046278428844968929556821556060180416896416201610438778107053826008789011845154232888577833496331241095430716365728900437118628994883593409207107603798305356019912313772097129397599484874571520056083113368617754974798240232756669496248889462030234033086048733797979674064834821842593212968601830912306047823621015872729267860455073870696675144374152206754316940992507811531408654704014340797491848176221498600031483971264480204885353629854980740453161852775511642091457611055987003394922046600542247114032798815433091739766230314878790310619380004498587187280910891022739436459667980014347189604714803001275003488343403172922443438596924128899779566809373730117606908774265527537383314287958496146071093070525612638866381017414897240883527900281085634284761351515828135764932365575617051282636260292397563693869672022247805347213052214429728254361290907235497519753059056267126899163406582036813175311062050712897936897515120667328709928624263185815960046057591543599480988594498881832191767411316300911210877902790647582190042782147768971324383447618698729626156868575157100704667644679922991302188909585523807697501380619210254499347453246208898822202657362030797863991359890859117583648949183906164855532369108024050211779964450182611434391922919193691546638940243023649810660875025066429157581983799882405652543197587152797307163341814199711003929115012909958864484635158984608613811816508840142323609036588932586634890381408429971002670801926715480922966950988269305253365997215674160412277809865931170155796251778988808423987256303577318259995101763554740139275165456995992939226877549785179862451204231235130580082627052325808782399192928942533447286450994318587662779057557695782417455118758704269734630334782754844362526829204830323269346543521238923466259724138507596264766200847726941908179235082226495444952237886437076019826495409645691854190203388789590503224233638738448971019342344655149581039428248655511215701196236661921240373423941718845845509133506792504328377272406055394355681867653590201382078188443513850153523361687914237256136252874926506137253142067265314229303614102297408750816233337689624734172799091843383787440503908647917610591975339181591521623873868486353002372659036717726239759247798727884939706003034827487066505170967689257193640970050256569356507401638764792843761888705562940624727160355567534418382556749917670594531451796072709749977180519260429287615294892699618387750535553434293519957777363403205020076149422743082251095937736432963547274614857588986800397627641515371848979186799726735457526122756649625167724707560986714230811364176718578747885799451887016733133794998361261867158329351299911941555523791515832483703916559385362494269362625981801275561641032336396485750869834699758262897903778955406078198261352630033914690359482841844744685512963448897683249562991488197622480802974800595586239138619478141896884217844242645316147048710043654878797038558460644826055206565506664918008545507307194287862189881938982024690649054212328088178950433667192878259629806004982805837944459851833178480866839840325235054813170967439244150697510358565611244510132363791444688532465325908026088479793820703680309360513664443065406050723364896004429403234690681102174183023188602055898288592455622455083177062267562135933129528512602289950540327515550488224415247719432274743024963738025973974538521971350514669635088973436657963022746070098437070072615406447474607349336442898742582435454812542844345121438193028598376217322648653133192921550757012673254295044645087113985971516566911868204561036966953635749122947469808982380702954627983471808141487087823575819130500744765801071572483996115677807428070069576339721217029212483225170515470004315775528547704023799533004276996179282955764596307051613077381358362600969199576418647388824394830203749361823322137378360313819547491015548543012679298216351590887750194265462184320122059077131118287240213313924504849521602184442982170278534622637666238492661437759437497064136417348424160262722150976955298663101221374045005664810163472148304820040786700515389636920289749995419562540277443697127722143473880718016601365621700439696447951658748284440104081517593715322258766844785617187691743225536741415318279118092397332134373128770867872245484819823839320253211213840774193240801880918560077408967795416160778292409753197145264628582627350520458302705645145820404966566896385824249736935894307755255546455587140457809309032948133895997086548096218047343256693191867974623134938033581721099417477968663917437088446235543391471596034234424959742958711596039167539218252508452535875962845449336307537211801924871840572531038096769553071427925457553391213315915799840852250393480910400141130426002195454736985509769328157911478606731078528495795079237024507389042526230478666925680868469139941689715234106473621168002878871068518920389747948557372501615825957541052627678965783752487363541281384623680148857008230549136444918879590907645360464497426452470927373888295842979419323909228666959464822284054178639905722965484489022654118116369286039817682292738694145647769341501072950349919013201995897942908398916499054258054141364261477094965641294530587813140305660626957196815749442871007300351157332743566489480775489957362454148603585341409425339454983999841939063129836308608591758738303703046425007491512927627211794774033178784221030902304360117845280798001718731109004606916589157508151578540928893215294865497395308512088422490239574319656036792284564227843561571163920967853638246385196167688507635462448797954917665592751265841000783925231976383438301471696121248171563231171545863372382323255564594182560574869770176856752422344025876859982776324370894295721472078392078225371157328909673823451556955881993737803724233939200756676274468510366522068052860814203684774984970250052273518224575551162374935591830135766468982078642299308376172875945166185341259326023017235309182310433465853765490555236358785459297408001307729948377800256751164391956516594059536741618211203959908049219499177069195281535577861539921237743718072733867773971086544327658455169273988624774641147960941587205758281855611617623116445834239951115502808253248834086311978760621117826864874499394777788227344021548571221077222197956007689530038349393150712800221278720280251883294707116324937877843801346996520830037504176830248929400285611723538208568953356076933783166967403395219214164678536630900324604963873941483005183995774132373078453765601323527326536746580350567006943268290678307053518855715958254370029429837081469082901753443752520008987009428287170550290192098909800005818775218912764702437724610017949055952101075676177757212927395805824265435513722247031078452416961065784425097599331038036280247084552954508817984679537558825880434915849189668074850446967763258446383639203759104250290031269102612744881266167179486611181369223719092480187218990127350834893963905285315107059502637787128849231791202251168327142609546589407306289605092530482092901471153892990795107897699717081473635944015420286429716321054802046997258911229257348612506682435625108061291230850658618842532918881385373562966497416387232301451069135495621396578740994967984517253206213797216623697989941079272644218001914866700439492950410499719986247003747336242031520916073619841620169938582986631337126040598194691026040310504916354479916557063100697421120719607633072191016817805402118739077796962787500205433913171278859167272950680803031571568016863717045969806938864028383941349457644969297349416699742616428504724694572181807410595047524135093783999625548785502159562634388346258677111534365829680391959835604340745776101682381495477441785229756699036108265213412144424187532295059732991179486634943004629684097652275910103631960955888117156382656977591247323277494578489448408550625479630548991105365807461254763820335421695200065288978781753685718423774488659542480333907142110303943298231355779056490290034753177562606851730537084499580980689636842759537147895839715691921826432341821377972786328675798933483410513127448180448061145912131296306617789869935910512073863775446907561093676768393944807522653595763117379092686834606321818239417250985072030623297202898737916220415496075764406994811331529394110203504051081524958400720120389585109513386193208401801827063960095783637682200087088643262572159190272972992941470915995443586268332848898493200820126429239380676959158421898695477267197160426460085651615824837318709953257097591940063508885872515536360254456163984153652986943612441578453765161400191180218720548164722448668297676351448958830686135993293256628331902456800615412276700615131965889839870803922297088855551526360514318724682339535202513673063972216527886655941314802867943867230635770984611311180455008170774546636376252921312506141494668656816482687864734214230236824010340821811676256175094036301236750768012426181961806422769909930253262162344208900231845574323591662890006470688304526175533967868512613380297041061455109652029422110746588591481755862781435183076523729541015405929337539438126821978423854544659528472428413866151771263436391029505820925205682013678490971566525194190154209472348670511399431209862802885163774103759969351725165063477617589068373279021108039992366816821565769965370462729454150997755221023579607325565661626387400934392570397744420750378953733530138149748518974729306633016330430725124161719412660358242907220836589073718323684740122814404797542840918312934616330078528968317446175573466433407310984794742979709691039852757383812763723399683499697556084724699961862354140087939450679207884589278042133205564605788580037537677660009193217494690629788997374943054858091377095814504559128652152554833387838665064237822706575958684247795842009524313283266297419297847848171328953035944263454538716369855461254240098428822952444811372352126840590049067016776556451614851189691038663126836701328495314265930329073304958136336927627319097321307012762254914935327417092407088935382347457439288530275582044462859892740437691693986355879447816780033051821590107578078483749139690478639727448574009876721902463802464356791066768949602397861339755029754547693290530256426823294895291920474679458032529637197029210611865838669389689051021528836414458399425081696848851834146732499488287454999871922517706549074287696878067223336356626652652702258606921551962224790580631473044557643163207784222374959586342871244388933882172131826740126176292810471920894052809641142043746859411108258502413760315740830202817054432221497890923943620837083319647301689663597022174080303823769360491998040135573166368843373720912639158482491237515947644009616677370878652142315907068374513004145925876719444214929591261845568231335352916186708999105799337774842890073759245385087658654212126382896246658872935398141712285891928775247530618376142914270902793051896986939103825904254772844849270097377796536789849957101799064873158748714154879516290439547007830192653715487340450550515420301137837833479414426433213599183263673923924582755362093335734352387326256745988132153309806515938186135400704514577107739191251527960306593317489512354245766168679710193636384500214448570655920706686140072516930494765539567197230763076444322514726396457831976086166665375888511105513626048838617790894600228914659695542910222595944039619687006138034500830844360755115963164691811445211064518504248820779131562221707469134061144416210886737863941723324645600486927450629171326224645989129316170683564847682992383606089771987056835413992753833560330537966232218263281407080697500282354898680614942172402414046382942124643690289577641137747810837286691245587238415774267041519474794856276108072087170118712319674457814256469110588562433458231039188471310227935164479218564105414491707944340036898670045401573034323648747541601472456463486893979294266277210629982633027954918843860707416086915415610082693767397108532201811240455161405815219277681192036452878730220730688704892045726050386922868357023337117148813300567344408491929679897744023661822338074254267745503144812875571441656618513808631622838462008512977874179229885992179693416617302862125801849037741063690074739609876282321885967023050548235428997631199387920164310110361072650665476066160523247339983662291000002729290296278967663386365130844020953095933771130288067244016946552817443626617393225924818087996101017174264252187633431012215778203024059098564948046330116605543094138371814840381897620251850507237940081760545760198107096989368296362486651310095887975560357556860110808043202012767385229483632026825023473071552084016866845960691249774718186436906514832121882578528150411636563026912690021435659197119697635155298218389064024457991343802261499068075244707262895702221308515882295063995510909659955398642193039200924660142142841072159953807733045802173520801828762785893914375414712670170053872901932555837817532239828524570587754180635215479665371840549692832073053324804775583318031231754831690326685438189721581355890782849243771285858108094280068970587508151264953127686887267390547445998484814231243521911199542049385326608467218813718514902270419860641726794370240657300886985167137130415842891156377890296429529088563989381542798704084643787428678764212395550581606426417986333344991212874879697195432196197307991112563701060766869389205831545685979028772733849202454729699509832709959506124042409981100849260147861829706874612382053996924922047177941042050034899137198525166823026324375415707439544781277232665193691152866096714678909369444448387073341641028769980193477626064529026878527546530307502755272072554308523804249353950988791462926380042209617149122930020808462019574784718434458110416246093051216861555070042757117577620770732743562812152842371676303062848332766761746982481353015398484647674965449237196591048809732517924378288198921487019558901101736650385244429725596559966909810152437911448265061323755651847008645289747772624292698707466048613508860192639320172251250502852752687917118346795250054522452289463330285101782322474413672259224598507497552557177775213810341344247155637453456204359095279184461213538150606824343112060496494032603355619731888771452105977189426414420106751504981601044818598607646062958753911736739724960484779915972742116570386531488976684898007773657728034281026293408182719173410325430795785001617292174015230169696180345075369671302556108032335582169621856185891225964857678092665261002750277228530155863836084834636363036236579765435595711749412919774526120999175645831212640996496935789471229011221270302569360411353740700483796137728853398717449190928258032471008512415186179299221184624439951693332174729664826513660910411677828618745601510500742354790526810570642078699327174758191720543022420677555850236264418161170376586484347252243199698381224470273370577230708626923126873007580671190786606645002252563550521379500703305167769812793325606473086399126909521374042777525437493084740719676132530133863589473690145922865281920697913767824582837876573531562939643199211932997448042481189661324321138876257877773509971510023324548132175799696113440991997418355699751655485011382433554908883729221385834096152192368441072716986543073619948016673637710753134769739275121191227848294287811784786139205185809624377026941804346880272164526603466153062574112816432088218073197675956947281705964848066144632749584310994423575079176070011971899284090618982448731497002110416689419601962832738955692966598408138077015691645578959689154484692201992418652316092171660758950958768362550378656836990797436666428605895617554556785619453611729223738964484989558022915869554077521460979978537214163249567507882802138650541029947252822009307308254254276260373929112160781763906582836754963275748130597064380346219730352996911324504732763259819665051766770089115469648428112801906585122049399717844057767743728217836114536500515057238141455315286198256311148967952481569538114366590467190983222465791637712929078563581940838433567144096429271220277512849571721142651393130284495368711611857338153031761628097045402527974554063612778600751049866827351743142049285379398366397960354556957082114793331120477918020664288639110153488776641901506807750590537292908600190523057380127397213105491725493327185578625427743944607495220749475669505474187089133954234429422400133622816893061417366951546450896330111794050528977873638939050827326256977423333207181757936887721836897894335187606632678806721700295166034658527346181557493536388547880909313450904235435851549220077557307023579431789958739480418323639435618289853672862180291330981880862592320157492629137590129199377956891827893495638185682538574064269305809654710778111934366951816643959293519043770799721215521004213649970850454481221551002749722305701957667384481091942980752244520590869814214522856923578768156596835395658855299234089549616223272765229192914631842964159480288299702019303830638701082224615527823654040816211348940719657180710623148210038057128407956917731568907896774427220106019673485458361329112612820013626519173240347193387450725379006466004208049105657139365277737291633423732681365040825474115725218583238081304350494923408355167668446446146182398341214471637989854733063978652803411491368108167586594432975542601025730250951578020006602117609073426595503921487496472651404390233549312440293475706261472583775022086938009071899074681827841288307511493716974682720139522867804805414624400654503134191598691408390334131908163196407462733158312784557535776650895206572782057015364765180754624665474582922984948894448679156380544348964474806070243213780442286439852418089185585687163362429212115887359676905015375877722293804008486191667906303109873473992723047746424327478895267605506992108779642968123616553625177757244500687187513951690974885826369169353952723798669330927964101660397692827674359605918756516367569068478733253239631879346332262195946394005456114932990758913078998122579795566297755550595151031936672525727081567934392024725229855332918895471346986308551532221147773971807516248557183377522857436733175548954641153330747998455572340153900595377301772260541917044863165216285961746035225354737112376575568779515819699400122402150567881684590752124035302304192633945833046894947360840594856788654297440075320344265198154176503172049395139168480737913668436915049206604121704101916917324307501153454674603946653357903166584658163447701064448711264846914395543329888232373670786381687494874662225919138260244264677151180328660471120891885615652564631324613010419373192884933625928446796345965473008422690373364681365517673664842095628204952917933396779063335377816297791157250599918862159331217231130788502247226298016617015527445934041927884042347398073372187529500023528077107656559683755184875907700854086211432122461487342363253319101507182908272743002518638539382187998940138374556976326470844405937130102499557536917340888204220855414271420818618197801872891980252021018318180008462042814430479219478257427574132929991546859512861446865132636774122850846701337446892032541785404424403551374861938308201224161452545497590814887425999298972294951409875148074916466411150092410226050503942189692375557461977373363972812040713094370683442482900809168309516249179212447889993604921344931313779931917051061792633802079991784718382528212473485578663595340967024455066796701617733240439072460896595962976409010573188925334773275276129278039957215978449967549890696793852123824843675840850242682215950742472150728043495836785156736486075942656577868406652840513145175867479516691012543417076788322076149172203880617858473699396584578483318164115973728778954096180050306444769767692909969197751255335283368627760304524295115558351694577722315130576823026544222376873387374029485710006218537099223836459964479313561558584223049602841585103279935813445656993254071390861151063061996461245905506352226934876047955659241194476020062993356083650944551177256504218759164916132567431603647894789491847882364721295184483083829333739857822011047325416316805412010625638602900806735973158885463456286748375428960983023698833987145428944202194877774869929168168916390312829197791774263841969973941747012286116955962532171347846520860922483270946105581299157361588664547443008615656241873898057374517779381776951356930785266258473292121542033472926372539239938751900720085733850307157638539332036093166694111972574526057756282904995006993395609252552077911615814424838699020615033822552948007078974052764857986235359799122153870467021844420339573399379184823747101238352140949167542373582381733659366095798559933746092288164705781079964132550317281609084557029127054418141851574926581037938009632333564905497418655308637052232237864518465317962199444604769080412386667419279601266983381353517151894478862659168217268930570655989364987845605767029541276724948959783319813501460407342258741221016310788746753164768568456353258486889921134733426006414166302319885076639003236973731964563996339960664206870562302577763876428554378935173480522213478013603409585034945796387491774482702605357314899590619321181299854857679568317752686976751590573845448718830943500483954063889664878220460117725464040260480274553209950301832801481068943761107421835556842694989120990348604573687178943123685880758109901397819248286204389998185553239776691486875595096518477003357918109687888585734829525089319318765380000877508939339562410546902677484552276468314493863728369688211791824735852702998815158109870673904964482443312432682158418495534254381220806719576700549181359694510599138719803527542986350700270062429912138579243338490440827866103790466272422239493828865783858828234964917048470030771907864277579756489704789544260770696441439076250043683764020517977437136184550575254494004251421870018601044194762715106650358231948794259134427835882834802978133385810830494154845553749868026339422285828383131823255458937650718508769321555862282758116724384592626920302171175612693193450659294705145981989056138718785150271878034965771717688389145167853970181209924403904960888987281545400933535867180879608253893138978751031082885248151786071315209007113274856687509198401818963844063523287808203562906031338722009917200921704706132631563784741873665393942308133991635554710386137317414243640711590713416700364738490257605144535740678418915467334176141117131899828595478171913495308755051213572703103483834332284647473985890215818190142800225914804154650363124566749104262149373180936155529674987821872623831211504396349391702783627146362337711660628210648994621093375004883038282958340247953869400246114344013457436994005639730560902483659753745918637352927044116703739698051057925796267812794777464959282649723731875576207401158530725829818695129770461656578389149662459760667648737862676658092703248978056296202819865203820244927844932639816823816531045152999234034742713935845895030001596939388857420726404726647835576093503640178596036743305459556894679159126589921986838295128455697249347608478935011964197157610181083478120061689270501301512990705077323852314724243818850761337140362615118667950624339419885673611840581033028850498766646406049905414880395432535400052437347085802806085428650160859447023750075595518347754997245372348259334732541604429607509039924807837429955862581976186602898964762721004587667927034751337667773775034741206799512465662214608477504212170989278474297618588194965415852422482698187872635255945631101129141296682153902610419460594085335089579917906983595150132241633569346935356727737995839231401727064594260440326048155601647276860745728292897360765562699444129933797261854231002091539449825939921942652755587508001338502226177096968477902399688050472277170651033239816618804307009183077164294019909947829122885580482096163408037725922860738940654127735280948086369964348311318726808060565526646661956054265227829091430051423494966989678947485070590279792004525161775173572324404525703818576718188856804560301984509336001753195635026227040489459708457968762418228366665576919615063513871309611054337372920810685566461477883569435507102895806468134804375975375239039748993516944978260696942964886287424184214112768303577635547860333750482134793699671583462522057354843458793139981673908317913447715568106103692007147864681267964563773232074833809555143849260986059580329180146427497118514293396490094252471178908907546662729620363732305842608110230395403110511368800573615720632172469385743528883245356199496020544343350364919272343001450795537349850833416937128499709739247069518345818959190984474494199359804793335918232498792405274534447098576349814883478074018285256867204921079969990349586357880903176363869967567582530495630825558022598469587149752771716217590916023735550098812454473101678819682987483869478998655037638385792033187554298615453284765099358502358490987689125768728692866454630741264400066377012161730339095027959465239736745609515749851807241387547952447374998154930677220333580799383479208972170236186562830949942937328919155835757908633958056125474149804381780489855349410235318064796075258813865767162816942246307884055401314394098636688708077193226144851327247920153072333710291997841846080410295824229955270827177140527082705393430376466670899283150278346548513375051862206606769780640719223755560132608946505149947341206216583305165847808975397142310066737680286552598436721937422167103596812539047786936841582918408173324690132403532060196320512336082469985275858139900987767096986760425955599934319189328207073970115762034478306183347137823055253281369490530074299256688536463873128783458348755743949588886493873158246238839095863373262457304008204957623160549993372627959847186896343461012858953374138645540175259099666348168936747035440027808640511486963519508149385491494119535508616814570062813404093370635565385197045933123037443580091127494277804446190497555806600058788042685397825230673548598256464434740076350412736600847235526585735759036965025460190409641701287355305767135007952622959931402562452241579393971521191640838841045735190124940852327222000632421786430820797971789724913014073147643995690149852861252236004382400890133482197089197267240982079638241453082715508276287582783040659374760914408465518934119262089689845346140142360683622588085066223393017198390613237091586083471605514293674245306872933584007723510453693144818446254810630650438720950216011369302403862559885630640972338080975346129598891632871884297695116226378606519146450261739022367960650408761991904492989799197830400867603135486570689656810554912914191521859980787545717261790602051467569410238347653889568494494936903667041851612584225738084108090839103777621943928988276391066797139461595486264774167265368449294333290329740315561864608309947646329745752607779784678110604279177087667434739140839561733180610445500244443601852168570838204457181249557895298396942765202779351030224143434513079328121878523713840423463816111977806278231304821386988117872765165081711202061462259555540631662121377995060275735519743980405223712528435754086206262755497878049537788410328499467288989958163020896604629624681360277407007537086537728377659108084281342260865515575718930207005898145231689128153118935841114385325883403600138613468052615958064057112010955045450593438139869945946858493271049833576151511471972648840325773970374918785213841667524647518419367935249201631768176357514809046994409813607132844856276011937003547480798859810936669832214891140007043317529667845279201871759051252403506903432828221209626928105284670315201399631161769626008158708563690259363193774812562808377303555542200462095937680323121417874470678942929041128725592013856566021384647220553048864978948683418688798155328386667946783920198676018109036306212419319227647679308305179033952635334764392751141510127677980110961722547389578702671162483373023081264482119179090930697296260829032106959794474824981865282406400312165311044720559228846477819479569439250957112116724986199569940212312490915733235989107341034844646123974022366317970981414129526491111164826969052169229097386771651331036635938520342589229340352650565167739904856262734581297411716488455659693399982955367849241296159850124678884300950999147641865024446145091336662905110675166599989283791264262282515027005208244765386606550877633018027251208233929682749254038934971229030608327147501222786425255677945456440077909846096613943677994295603988721641723215083094455412628993344068205256783879052480251311751500530481563252595180706238788165015338359019108021986738592618412979927933154301512026517944360020275829307108405627918358732909888538438701046640642684390837125537137851485384715690909597956342315726889475634812964194083460970623817563204807061224113968555278155859584134816370668360516790511986006948322571949184173556531870039901100223776574669147238432220904267185174784995783327281489700263925746503179894274729134874109805186688237086417848538395721248249646118904474562397436577614261817173958252057134162437661839605765943954816226482076142985903355671407005073152545468012476027210872171502727522510159149778026517964486360144611604220146630762306253116726571264231742913579910232366454742168103085707748706796649783194930770979477615653407275508305475207790120449716422577960451568207039278955703404651210222241031866079312900751791769368877270508335281392646661758801727897779884164533188867242445781384825014121282966636824172971209976979265191792372755711803915491441799184066205972805419958921304843784780139198981944944040763808430885527482502031015187995933238541582274675359875684088417383571485112291778411832244294697476336564492724230654942229644856078261760832413680501334711165805632300377799445933412589681940767980222169103251827537309928923125912672080192639291053142777798505483541464761030704638805371197733909234081726428050871416981172786525744878549517390448215084658077721403442807311239132785564321329208731100446778127035086415441573732312507187296734675227503289581872674845326133873880853478367159286213177238357450923981074551091056257265786619731287847110014879497798711745554401736379319139778193199317785249650783440837381367337101464382699306417789533340143061672183800807764782637078122778000000153641503236871742844753291422487577197233043232612728384458742531749384764498253368898386900832717087830256988777598922880129887747897726238557966066022689370774840540458421940193845034589956331655327554893573547553771203231610437456200605823572760024200146498544877699553681534244244285567370851759225993289303986757934812165402109358043987505996457981888819167207299041686706024762780974207019880311576780418773528392732881770598358309296752627016265839608969571674053810431806664033182071886814071590973703767559497495039582882545019223636222777603676421525624912374790398301133663887284094228077979347447463799605739080376854244871622188177788166737824590507533739458611792759953177927279195945149412662806240413516652942434243969867666896542901145630784019820599114357922821254147614436956406074213046925763977560770420813262639800081464065893043516690843289047170879988767635732280596070211175158170460158601195533151051041414679731798309273066277787490124254902877715211716198768077761644399781239813388102332675070538529678497285483008142110308989981044781463901324864743258819666282369336017202417804266876290926932198420769084867529774843154636575966794679714022130449684170282473596484846306219008911356990738758410111190984413485842961628547458917953811327616025888426627563958452230029600173743505736294808812615031391897643031375221157648587982394805313622016893930606064433779617918345763764371808617634702202792430385889352669292494428004984052763946316126369338359227043713843049037757882645127339432994006178492247577459203437162385022674839406174142095249295865304340925827777488770588688241090487498803994150958625124765510120391607918977161691170547911403203145944250253360305909428499842590214098887255773752152976164148185685739785393734231130363219765467737949166677304766693423245116189283388919280920586415575463652046416131540585179580364282651278933611958052154080796499032420830513061442656431105287561604596625240806106089349097553651640277746734910081438569670173705210078030241943138201999570164668755882118061544058580012294816800635357088234174215730040555443929247928733373055616274675175718518238228985806383574713022418101835419788368739682660998619910162512592171229404892626125311749565631510454730518536248154351984051297753691571505055682816660094020800774787113351612814965494713534948384330143981737771362986231715172668249433639740250252619628602981903981512173012026018919743939527287841824232586462126581305087600561088147880624218778411289791796161758728330638719399992564534872150580976585720910491263460097925438184519945173651497370624011583268874908681493851228369584365559614486109668622753104773339941779148935157498854537103742282452069524175938722257761507503531000056958415142579923525113355318273236390914757760403301885147647063605911019327867701932860580140129845893410396319880650164080688160837180227631360643561850007433819234177811754852458007110700256049350083405896861604527561292446277718661334704667613177508797946244785126368674040966417908100902604565466761262190948799048395697314526062254296892624571060403821262892067519563362326084300944845604251280150809866089995850592845643120953276244690964683633805089918429358855561273265230554744297447264963228767171288644290831339917426111768631678289051512012595000283581900314990319895925959626165896435843503160337986327816446221197553231699403785403995393792011824253509435144001015888894802435793540824684528758337153497719883280544396898163765219749292150065606309631217073528226364330451867690638846241802884611692926543475978058665665429864712850652959010392864774398427850659322962848949391947061317069417275708620119269767914316827847308975722138144292696249024192961111158863520435706209438520522445061541864166111760762921488889668323867036458392384863650420321329541534004424191366660469696143097868919588097835410009705918929583851453597785241813890010641643004584839057212975093836179895315979818314552261219287036761947847920382198562206068555837960811979652563589153985677247082761769404961517283429202184226292647002242750405060962202514745771978254239059575203844407865438768155264135758017666835088693510827106464784756135158527866991422590978423407029346407403633613047900840544865959736519096309515654511979089417824468836005045039142411285951354199917852458744809492472369806661567841873056043558914843287045247642854640702105088313102914342465634226312463878460412394981898758107959728548333412055863068040911675059525715777873303584409395406634785868465751373382130873926455109987752711704916824853036073448443056469224978199216549815836733144505127044153344540593165425382982001703737658438261700989307212398583368565000596420861022936887554601459125340220627024608373200767749647481782976191546501639986364170973507201176420155130762868951270854241261991780880095449573009404497960473523333809110187652459108808861935416777569492543908876115442620856391575844618588925609652668257145298746135274976467142936528125776587896369012614851406686279177850217455931337449559113679450217432020336189838786435952431379637675567516452928545498787634016992235326595730963037743257723504959767249227049429394354199066944095161181536765013177367019099859563274992661446924257825836795009829852734511323087050811071536794801646265157243781675797834349735386599060414058483338834739684741413880167032900377559292641329661306134808814593211841540592255947475517035499365955838992565365910354188610919203973501858243526126518011353843188806200927125688378175189982414614608555218508872246448340247505724986684499081947133686169353242816490495774047048904787970716349076584755202101337670671864877840370425328304989080923163376494127075509126745160800449359557035751846034325276770024355637995107488336366226527709459314153477038527370342454720239634473956507759201838625024922138364841995189091466554867126934100515619270630598226759034743309868907315958756580394827309343342794033196961600233600174699855333716754861296252405142686825928686289909467961989758189392545586391869692879167766802709235217426920879728450150061611052308851290996431167549090225199440787334133957473530990367386610088559177756024408604351643466100493432915231392864875920601029330542204935958639564345396453111486148344510412661741928819787810379155783149531102688120646085668916807844645205630290881327645075302880283658573658820736833971359509183791323383065607563442698926716924001537725640408544590744940181389417016360866816155089839479941851177913635853193281222009149402540050519846454748796377245526624757025319627707426467551274389127316628654669803294614189110641559333276173945655928407749175094933168247299986712558228181261412791059634134156914920922034345728995848260501065659093526230519046560329859365621743232807065226717122439519303301111889523478988010571122585249993990030161065746164249051510819163519719654011448746201287704836400586037925971066190763168812002148062235238926145936562773313775068237917096587888140865146946777313397622810584108619452983215578533381199075612832252799634430257638772256452133488084552336919232965959225715155500379483999274928689610910960519884218363803465286931670937071367233740153883532594007007555992017193283258404935443574880045678976580444506454920598562644829148438591354051834214738180839134820658817977745718239510395771681095918174656109278498448591286567416249053388157461096395190119401371355664097378298505868204338503289494619660790977478653135696852310101444875785784576599916174558008010975396066166922760216423402450822641805344859278172016696627104871574325812552439464755287828305901887824858041106201568386003935009242409298014267167469953394678927963557922533368950702054725316128176611136937987644261402129168876383253901680008631589605233755972403285527027330300846915856013602979314152274825248219905581067658120158969938389077667403663127127818926795770988905783189505545323744981455956540616035050655433797774477371236474362166538268611223852075721666730959560157570637238738326636223313974526708610739171646237247404087457396990561725296705500407994898056685241241916746515864156678841596688415527588525801504959068250601262260482789835222459912941972233931016596517137056102316041193075790907861284717550993486502556305467084181937353041880784856633748169359211612638224952015328391624049141533071435902541401409920773710334944491656662980813282710197886569666563250997358255275746206256200674960554786997964430725817122751893852254921199176041774272628575615080579553539796360212295696757260061087685868874036797725696306629530556165888433178841927301376786683137116359835404006512125740234321282952571433737458767572851567130417619070235790244504918083134584548786647952866237691625653182002674072107152941965540116819755830732799012267534325206630064470733457069590694249141879567450967452055300354047586162743785013964658144696059390394039023826750550675515141787548529765326654473261555326278983693267863675656603909585358633362577839001881116035624199253109894959317127595711308758841859332597835163108829367669795108872467106650548921161419431082240710685146372279376331855295366575577465705305182214620636779812014844012614839050526791369452530129147114202569958245497268813168382889004985692505896744030561510629867122608086197825062989047270978547706002825229373601776450186193533713815564540670325957594991531876858778124749505913953739094168455372108230545191805540803493974145856453237911072829899994611399262777685889831847739082261112943633907752904950446405779861297463020142689927442589728803104283479321427510518128487428946336108397329747538861606870014144602906734803956505091896770378067687234829938941740781205569037554842982674309062422241721213570958343545974763389099391186303741010568333390438033500192755557925895555240296659241306935123395951779258530426290566768575750341880935851251390162064804906579692097297331719656257760632226812414551207623273528878972972414205492970032123034970855785931336540391866001588859093823041515092767989682724891402706615164779574692509418256868118168807613229487775481803608502713743943177281109716763969566572286133845973687861410281136852481688656734640805917846809458445050636953006933144910436967038080268315635008161936040010938547141018424880180286883674249852374109416581427162125254468984337315629626093749979510628487127226491688130985393332823271841383021510245900098956962456463122247364313114791683693803698878424712006453216236729194920444947033293659540242409796723009653952425140604206881291471211621549835102898804615657347069219190117258728281366415088808059956252117062068114570609013661424132968012447039764650878105870884332541459606705898207233620757642668529798362396895792153928027441559294455609385489112393837152787421179867197576432380765533493548482600700005377653478634200405320302059663025224703313176369689161663147916305195960368726270988413238274630367913545206696458727159887055553614697062147031885865244375113600676731581992854590654095025502085099172068254944668607908148587055965171455437860637148941349402308518202127338329902530907815037038610159312171771473369183834806010534161109580063943483043584863343171890823433692137364725699519026608322537365776019782751038442948471107425787090085867155657658717598967415004939509031761024849808447245569067910562724090684383611509403222706293847247691969919034291367193877818843158573942733073256302861829092504610416684559556100676919664023114763928562774724454398260010107973871132481168757969612951582203452457482445471043120075182719844285093132662157683600526411916876756485060928538455266426026054241040780145010600465022798406844162884845143571525966697300330900435730291446309833497196144277006853411876220671237922766591075889627013544965352718140407939797396348571682250406399903590548256950166717548415457405511676881940535562778891656160179341482059375670440236242868617163682539089591403851742764470748217536119306463984002843503444033371437724318729409350011892681923975292161641163907632745787692809375785888054379757598310664765264790629111666915344458531990289622033525161636707398392956978519581371668698227967772778648321387845295413885939968096529701901284134152138763912037466065744135704976945298198098022187800149218266978365228164072803080959567016462172447054222440215562920813187821547133878563940231308018705669576944018695876474301963481271082782164220675795636865057590748656490208395589507309442012610525981671427662064318771236297293066293668472253894166591006497058366002771255742802897154056775925189909241684142568679114909399633517824652898133567861243294719196522387245931383351220808169411616272110886135724744837388388196152853228795613411476416668107125657762294604472613651608367697623714456348135380048893690008009598983389916365379756933488301911327252696808615261114684510829016206440671176272399061744596322586889611556755057953095042601303820984938474416293798152814095123812409974257197412429822120198399399645389303016639826039674678572800042670099004971096723384988946732201579854909043274817493572742352836938636502779202658210420340942127305293843502313014042052804585477942632142458448730975815718788265569608509632507442834766839682266186174212388352247471773294077241256157882748841260476932657621252139941678995879363047056097308562912987670952295296976445454254836316080610098074685833208271050550278964217272133567653927420936650189328428446359611153297208057659912813711878093681070405546180813260768354178126360473291914207444408282195158874945529052238369967132992110809763919148685498292900047004413967119684038845101573858825287852193029290004930131129381559561200600123460779097838263564082225393939383840276713329403999520306058706460199886159895287721709031014092446931546095588239462059708302393832844305230110467399282105618596541336845174190081166602591912865896736375702019915072210275040785508014805112286194196054129744280912270427517704384590287483560706505892336899633158170868044048563523255956723506819668184962832385736325341728674211934601384005965868393230626268640718135586940770364097218798655844376110384527908510691461109317342896669857930098973330235652076115518005411868090863663760081863242781314888249818334298688235370507555692805755640220743080044160912005705028358370203478153413740977892554568498963568856163163132383088417367084348549299995906832987055885414301749512014242994389903920180751721867688019048420297140649591590930393490346069486655077201850721230003921086528210602433164290321315746571977202621912144877195663287464408838431899134798428805763391349260984696344816121214036246057204916111705987993388481040390037683330375509051734382393493009439229831061467605448313648372868333175623409373393802319505032707773428270809321375714967903047335309349066156814993785667730519276072924580465507690450605853636822064407160470402346888162117899003677350946151983665842462564337078122884419618401735997463729569213207177507120036654096212351133954621661234153045228288092217663582921912530849438615693918121462041572270884818296481993125562465792915909848149241943742440887193995904489539672560992980629906817706615401594072067730110967664023174457524405248229644299772435560349308826605586828228158377152007941465215622163357734889358045766950582555096219946786764734488897203955640961175333169672991621142595706553819330186748171590621183622905778147734698288038534974936646414496481550987425025219433952567102034034409102333646747107843511010787049156379734727075885438622867067072397569787197147653619416737966212880456133216699320159002002413162333530883944361992513176501769941033644969585051192403669796402955441621334948231693588268405759575906191845047905253211294677956004797748887956829783357478855888064235447208987924588399877732226010090814520206603468925187446751421061917534812028309099748605814299974849563848643454414272996991642583984021869287508198152770667855225309627941064969492644672071018001403908895401681681948475522721676985095160387928749204399841816594852840359825603022274849898736822236993889267417236966460565885081917246822403741700397091184773876827100560668481829296951780764083441457344642613143029682740830593918920959175467492873155488362730766415577818348903463511085790114428934347369625429365090478940662919222945625145877099172431222333788320136099014609245748689144535402082308909635164651495868430019202127558089554894354198554787696083256997556049290862838518128858362505311070232854344405356251188635744260726710370594254727296323849786175219678496437494241071920674684640142391190712824580911382403655907949231524473721376941928503982987896418965599477901126698421694193393167723756813181117184671261808916636158658391385535277885889379702460837289848164585489165186913337837421113748599821509327078436197362165238742706647330840259095906608817582200613477152882117879980127612611523439376248257953961164504640550578506273802717101804722136338353598039512239947028355446916147152191477663361373228619885260628948723971499875086523182151740898992674666920660647699404869819247605169927069995757817297263232749945873559891991946335847610360073600484338470926157875016581581702564392453197451135459494007399678544535990248174455878471379544022633230313355406758708577802301545281065371582575285904756973912204042420234735504396217894508968850543141586777743234832656561700367171597207119313361715163445746582508581963147494420149439574155352616849141609588869221550230196228324367874440702677628759335033018266625944128169094997281520920412962149194171127626012901481880727521587931739663496087772669751539838334140762497998810147639648903726311318224473120854166800773690797474656801515503287846523714552082159606481680008960350334493557503437706739057474831639423672104126988644581132158533214536484854150847445331051171435626189854502657068038467447546230156826466442725543020309145725776495640205069780726294818283750964048278996840212338336103284193783119375647772062483183464238218649791631434596208869677293877699835808013481046885194612997225933767390122197822762845781220847298755350985887751996838885188523095082373992174403393645726923757822496355354983221374428438169549180095049421686733051523413908853778518792498950189596355749694075307807175823674934227370365801070387793792714668789750086422786300388314148998901874526919054891963749836101878548935930550697722243266516274787814976117161960563264742052662975259395002444523970428253155756762104220944106706458089056991833689981723079074440307888795271844409004018351231235622751095273063542293337069276553164675481050953821953768893127786598410404877925663473811199801058046679912177411075495423540153669428019078371860659273634851422404510276677630460974473642340920602329373326630600213879043971025551678495339605921979185388140100339822823284930911778141608054162230233639640080526573946183547055590448943873174228917975699766838887324974322757500469665977984067341237626561157381343361122141742469302493138801465435216321404990500764872367920351500504819208960633639751879086770420303576954112675735073214622289434773585221816023824358161253997358686399964416299365123684626365204717133558186964125573391452853986155312732320078305307257430235784721210585091828942721368667808917533268397220279322108756273418827787680875140478388671133630206621930028757217958371272047200374681230534591110302318193623174566735650749147629637580487373557994590201051569711799090239693240603217721161137840727384064683260498232983590684187102957543964758619644456413606756776744393112693330046569232211036070179280662821177387447003449968412030860168704035533031115277871694349226286159935290440556494628851454882709663404323387976805280953872591452611935977228202607235915794608407184523707633852353330164297182000684278107360708949013748192340842563076700946038720715559035030893940480065020381066855342810508373106959892565646024870877971157454143782030383831380441255801930033883809136168323741040114178792212562686650712832685680523856250688199458760522157423858454711514324523143161681682647654290893871240748188424559553524210680396752160874528820795774218730385624037448502584190545474821970442692856484061397361412253532993303518113022482468741649050022416749729851024283086508116233748330339272424462152508539956141578084974237216995526024748689375288028853009929975709282556029815010072116621026176019185210052208425493849533247580120582709539484600502250602255254182848732866755706464914113779548627604707009777301576487427768635839152321957286360816225822395894707836987882920178549834660135925535449315032970660097310146231691065885071946342635741542808285556517804713685020474875249580233489151786298553552682220457519962360127467463357280144298628795856897496535331542826325807798254674317221969607418711204959043410606588796242776816829664463145558770224498655149037689368971838432006777815682903398730088896896021974865892187975593597712465170260740965747952491397545124412207989540914190445190793037993221658888891959897862914011715667530118125150869750619737825654907012740042830031610438367678797328292198411134793693872040076999383863233240197776465078080860728011019893445825897773887768796588035499127959242563696789916682122247642126384534224691115205720417687156724924142482321670789514087961161588511867659567079527047410206422611089207869862544193584311545330205080261894655230668169554974219883152612234350049983328701799268976133088670223460804412389170807839898167989964210422297154193105196259007007179008986774791077347261953878222339648108790454816248910491356802762582629246314749701294843751722764655314451224881238290390378690534216044085835552816548175172695559888099829497811676517403620689980048928532316435781212309365065482472784193572848632746391128316584977878555289372430627557010132687033012323478529478222602257240496362017251563221437468031309689354032596729629300744462382567102661220764511117319378924624323841991320336183787007992494335105925537838576554235433520917699360637561710593422792942910496642292473260808884320101913566602019544251412674541197738338872219281647854755462093970031909910322695523159058641087022118630888425742473501896597801383023771506093387403131160255550227268874916180865146572089148274660758135070932384725561643734928264365020769081881575200318715437463454297173547908615733908728278610126043399554023296391882797550259181938623850965397487543420333371025128152393521449709927118364445826485900343477449350364946621834748424691132722216993182827747773357055322491120495624381210118426219923688725996288924830587350405119075516019513391815408284994894764135078543209245966573267323753763770668644289091985084428626632992846000680387493324753599208239662250346991911589177817235972737961006534546810928230312966450996016558813602245243123389065012872441797725762439093126113925356628591273369817494665537424324781399223357759683318598309051856278967144156370791598773762794827915597313379347656246492227048044383475080126306703980573797877351516012903845600773925978775712192021273531123324357985381099853474636832038327840825082975448827578093335720698180572223819857171770732141796010024131148964561629969684147906330934744271307839696800427240583766422517038976422931621810822399994873375345688699828739061069691959172824386331047000132151381782772049673943353332989534713698779817970037381936803690933196224370004236612173480294601317757724357547674888422382483124047953641142399557398206796543654619739140378746766157951674281756584492095050604409654536122817728537116287452683107192370752273044763518362375428181126311747982247515983837138158302142971293304029961134160918492876692437683760353376435687779982879401260680298817653178448120937909574637692013180926990603760536419199095771928004001001676438206556482747707667181025910200959879608175884815528338292387506692772392971276179419956867179583606875853223758212123533446192510822609157448411597964051795763071068447870206144899071175431034615871258313817999693086413772568073519873731237696951695325446384241548967317861054825202404865876035429022172777006692949207368744843136142002722367989114163089131019061417306699493201988747460805283865371142332161348465951437570751647177102736972328195416867245485351527580516370375114581320487501200213391632605499460315759678725822360723843989697368675988304231612231507909036286123920041492691158525564499224133511016791393805221566212129196590798213530060407629306615621432338893470628406085132774121996634542280584016708588353945849846497526637236784665475515584088367893645483253999017277819358507821665094903588167367117230531949615646195357166612766253820109661430800533868559804880239730077853403306787456377894062474304753482095191122721985350813077373609814505683352072263051465682874277784618782050053342437111428156280210817620486161706143457753092372521932355353449671980999819642785914901286567816167045169690561097877594043773841808841311744217389710577860024648581073227777791542486280914140571786019333776916543345305130641970533662499686680892354342802123116613011835322134699905172300687294898183138190761361677402739415444105861383855786460521451736494736948025052130870885218758430618474829233160516797689650710193576465196757358462823677861048817921833036874255065058336062197067338214822969503687935645890380705109957373052729341515372537130938260907308711595041671575710733673677882828411265249119599575991160663197656491942042659333324805212175497999659536131671241496773140130400234876806392172401695492121321719922722076525672276251712434025001303499694718397881383678555750365637858924933954837971745628701668746063023267245559891061243399100211680334376231759371952000228731420765055930654785102056304561620121252694646790540736521656172263495695932783755216649921380196431148511264713937905836285320130116909620176336742740333552953509924154111855667400583202044703784669770696186838197431132217409492554530870978122899474159541441442434883092526946353019280781980631916383134280771308743371879901259799978726932239261276198658947954386201308688313112507160346601523361291262668411542802874973130140268992433342324606873969447004402455826044056631161232350414128197735695278233182945978244372802541115117796944243951611192940243099269085056557322112101793413423232987588397772524696056217680807789021853477972396753243241783034376652055262923562819956265647949468013178028420618609830603364640789069779201038245987078103723851147407014323246372534008278619490142127267032275156032364897541906132306252674471878283183196653888406533548143614784212399502877503304282773261322593056510477718125994407508824242269826715645231818522883369665781559595411259573402488567053477245054904251775425185947756297415567089120092784850931380542786844185635730567867825633282487410535959812460675238423541664850371222928918187493680516274969548783093132443379962212757489534988650617182418912676818820757412011888066823931188642808735960407297724676529840340650869271240674831476686191385376879354353332778661417481507203091152772140658400422512004942548216949027925548672205081761298948800565362584595518599779019943720116098152354660658376217739413412979409618031132460565523860661578072454316349860241692915660102050521804026826347383771652010468998305300260582197588448853460125904790409341983852833857512417435752779342015318540818399470224601363146225599148636938087865413195977076008815800204401404133075251280682243951208524459214146281548525609872626107718902845490915828632071314229101926304954589177846762802599748033687892527988977678567288199515757442475254125842314256301608814436420247766988723952236171100684577882940903779474654683443438710667525938923263881458688238122036037845449831858259871101080737069716673165447543795511055360318869132047432464959601938186935650637885645727093411366343363682355133203271678415920399887414484551430701648965001524347665392962401044469062681249448315620550604178832100504308889288144420484627763952675844775437835809357202634398954218390461106791468418604239970104149613910908999508821212686806029954572908195440698179255742516518204234737718434135515805985514233049540077556800468592817901830114112880352748804301256197804010915970200221507213886089468385208861311114853249345030157641886233789923964456251760921809554530861524352806536042480915596008671340690730075627486203390599858524579418025657675913772124983078939840058839322856523012751967782363013568593300635542936568037225651738595420548023110702221637156592391615907213711494965631239465398634433410491843326012892386880124857822453285694825076271768353891791741436062821241447559499079047031553993636143957380718674628233034947860945829168832508595768914076437510793540575980901354965784496527099482608853785750456061146678914627726776875112286957142392679422873017644121792738441082252037151654536671005467100423390742256124771051872133132195216182151001936686529729567507925945292212983962436421046770680103802314901385518616127539635591127403443124926808155421396604079350063756992197902383503623589803662689563561837195161413102727062741124874808920243802286018463980173533564165406096309111841723570446655643542774304954693936915030826355225295092484591530674317778325132815761748944896927592747144915819045993107723871511395276665413763006480379434065976815599361686761950273777592376872678653442352863928340642279333357325327982780849672121389542217469211255250719317143152342490697552265583030846687658355030363905900927872907203426677715055900276047491563797058015373845834908061445997375010805354649003374980493064029596996455751167002692038816608315125491105570844134340426120907566206890282423132392146195378994982418780685515081037214970977755888283472977814807958799144871119167903453355051744613503224429636592516136958835244796563099182840111168365608599565969526618688426116635313566965368754471203631113844119842317119220747581508462203748683580566906204609715391244839750259210271428085062891511434494062547574348493974815018919882069087935834014119372400811938517980799557955104436979024153236970878880579475530172029365067138527610744681384302370959688192846388886483750462649994329377618370268086071845530357927991452637241029935173544995067945808789205749756950090468186123156977600422357733062451407743608203657868758067929313346071019772639526737797158655100327266345425047549903574792568288809620876463976387851924927154703933752821469920048156956669005787226749473823767104698233574628729930351443271602889311674897387128600690515278747145548973580229857054790384966241157165582079373188974292330705253501701341874081476245366217307162567750342116837322114796975706043700404042543902129645472382864720673255634561048113790284120027843689828081148747283028340497736398774068410160105956633341581735142495799153475142503003943047410639403007535751577717305760507511688912334711292858537043662837633247224714010621082083044503561161127952643580926753583641550650187776203085957943914583371359308897022654966310566949207168375653457677761642954347669506894271240777937121679092146177759313761077472095264330638716097878837901949140515851060223017618054714637332323213612967752800350800372290442198729467847623031594376531402992900266685141232773259132496978473117235447515575218839155021098623487987009773663847957397952174497535252057368814836809652092889095978678598977672551365832507557330095944124691744939890066841204135288000376239775088904039336281976345060727365643940793153761263873864664790043395702236486105084714082960581430853850079096459047306877675180652345751689046927802924861241837093392372442087442978022271494428834162227703392983493436069207798980121628736010052438446661604948964447084752959802897168792060217607769356453791587369955481450235621559673346429958371005404794031597833537855376507749529659723477817515418529768208945381568938515132663919070727030787814445110522838027843556942788668184277517047016474609751353208026430903656950223749725581564160086060347913926599226594613648565358460020506648847914148831775661691310706566489491244194426619481906516868151706120774580789867090775698709562449814537077350455628202964331071292688252301319619543980298201215769440730835529978963238824986295207557534476214346084650174527039999749428737668627906832672450349887362968151604904402690445362484582545665573273201193768709659172103801300988305733749409974114889456015699240133377902008345152905353255900020074569991704488209088870785399989852360241587002019865246995044217420495328470524256928741032538557594707027368569746364612533872477727262948455818886756285190761439658506513902198686304359101608591962152888772322479256031446319059105131157555699140423376752324809040096037375553096032849510682506852297719248499976398831946974736788726357839830756630981618042765356305196152058323540182134030456086869358243173924002697411517060330266566766719510268822700805936418440617705225446111487583516484176468770035160927077115112390891579565395614267421855411624228803437148073073386094287984897096237971288390936238363985684147219875062362298272627290620122474994855849279213984685458328567504162360284737059108122660906153844363207183286681000035850968570074238026684325459615644973256967123261116165668120762518725145166999089700442724654173535120806951088575816027878026981663767582823814203121263406342444789768725534991734527602826146738787767492008091912763746079169154106042922914090939479942544254609488234265402426188170845416503964677273343889094535019388657216033228486903533454700379940314824051118471648771032767771618185664750745684199746121320921341730558706672441209973310169473960101957384956310125275612093870671118873356546616822944274765114457459702910970499362876339395248632938225300210536877670755178671034682058550414612353140005467907033649604380181439517655591496433088733954664861336711866652058915262860316329629481771381927146842321035943550565483712121080899047655724281673600655764664663971810129820031455461430019153149444284093361317282932485021762737673449049524794160577476640913417379325077115087724284892985610570474415392651764627935992949129175549952127623576536784163176040221156189233123976289960955682646079006095239593875558531725612770472720436401088395534574698004051043873538943958462117681237545591732031008149402656774547363564378459446080715855428683871574429586557457276239938098101438294247389578200623133241960115952294299000396715638071824022849725703913226264145437435709326209154095767176403215955048019435771569013813756729638389060236756482388002953831889282495862666312111122802997029728563293187305823070457534965239961566810232891500902004345895054856136721081737244013002056461719908994992426992005461235784939167832373131620189898362711549210134527338900265884910587170441681741430499927115158303067293323422181982024741215667929145638170946730584196653775413438957332231457572046215626892926643445115922475379542987314446273513689636905629119901085222115330448651725530195959918100660159776397994039282451969914389063198136129572464596843685946401761435528792992067668914771501050770000843983970117025061211702614911508075331885541896910938264026006691172026784367552238569167735003154282672247817837807793226315480079483718985618125651341283701760665586223407669453023311223421708844442037190473331900531585501316654337379564252073287990924836618052214781908319527730933524100527502886103340373895555609242957787818181389011778370307269001133771499846887523450413165114332447203841110312182829736520905968031408521567383494949996540211689601352213562188658008375412176457776769437232151010458250720255284452962800223345741809345772530458011628985845358832072211081597393095713964163245544102807072801826203352109660682966465468571224953375195501360225135138255166588071492213109920604225917720821617776879119736538604423730326977060310207098187394312788778478559999281127539574987525947055398361906837606745745502756767171511341333443230058666141244067053818180786972520849074649465905607461983835451811771097893075084429476245125213805830080521297925786048644078908535531231954578025391727431696005515204437465438309461109678632763559742071266868290060878005961933916042244771664632556230912493312511358923788490720994443404058184898269239031190735756901561133438472137545375634836016166460667522853280618973030390695297836879931499098008212730249802453797895653178447934296404805081071776275772425179558131365533115354704863053833316251173653203104829302089824303530718569789857416357390508029903038607593615472117352560491917090809331395000078488190954271988643226718278913952164224702569522556673250899252533365514566688513005136105876765808496843649143704733036855892630466191706836246076820563974964736107150049044227368523419387387345690383784848018840170783031299749774098211553667761293705964839099540748039762200499921057554649202534474397952244173279214373029517567290087767877561420919083409002749767479783633282475958981924393469910875769399934483684044191637098818818446077472447759244960735348915874267236558860727475476969859576415266571133503892856764625185956336303150814031842933849146420186095077940288151993057401495613100415746480566639280440355008028311325809867451789728761715252419297377290984035390475765407373254254544567388605149210943570842701449093966015851682571824477292634354609579518505353320764645247334550187618745125665283647674261549157370166951748786308698386419964923120957615135313319328936253265536066193373475246070340661985955828496719549418367713833504696032338069960904860152438701962237319917093270447944929114221609541579272046148568550201020210797395845768105909570241070403099664368070008079136701397687842938568999447288877617460303574907211178840218546966060437100516296844366168925674107458523447272112110300359061582249578896370575528131861211557930448762446549722595123709334589807590337893685867049392274291165512758831850942446895422290203809237172213154889097410233280077023535300965624016313226502458013971916855345924261482428317513174715885837419173680132189929063752073003401001396068643977616919245276976405408553446081370619228877547749808738429822252251175142864913454305862224239447442821567317209335766320764045178928056480370744997535913071010286866896010943493816515452532359343784583462332119578100700614203035501776118135811808617094418014234116510508144889865553292413060305059180682599120154198667753198690706635533081727250565775552754130043096249601979780608427336823764427740100429941556372524195407435076518464972588179685621071276714593532436443601755047102759559816238752251956611447351782496620695826359024483664906087571592289872340071010737131770893288376341677080592432055478877835569604054741272537444347175293624385087215367703012400404085373748621703802262633995515569033814274350584571163511477690824571009985836409914624303168710410575701881971543060182163087552664307746275464548190206280436303120645069926095928466769718714743711369776633432609325403937570719533672570113933249705456229506201458776893522065931075890767939777977013752346084569822746010639258476382123437666322474205322679358740109858679405349312336887651987718557605862070746697101823161633936382757774821832614440042521557769525214891697683999535053144213432423194744741748124032518148200356371454823899520410274222823473609526802573442781082289098300133309095181615805229200739494149115866218451210367737115036798931506346355050742268165896648398659882630396957565481281640375937778434695659623646358919834333446447981763290523250940577858556599674252242473657431059723330065903236580865547426872761150539833702748588935441425766070535379095413031607253220099884293128387026196707306191003041221519872167298605249257963966905533432779896818543923950706181523343039056130459269354137801812086163636076282311880973977620954822439144052452037414166096835332641566928820820747337399492706113464679823981163613454721944265147080958365426072206572717322515044272326708977656720047171186865184688563685197007225102936162355611020665510241818248323639035808444933423285476695532466876839085261554614302699081057177469988455791808964854026705245197840567702216301627054456515057696248106889378422163654524830536766346764542052608384441485707296722308300777372135384841208564445329006035480090732841979524582420653634783977454513566290117082564190481732891613150287937514155746276647508856734892881746563116509656493718407390328111546560823838898274301964137956731836937868698974649685801421779781984592965417734904240341522175258385603847674560718231514863312460454576198851968113869456375415115283229492979669639678976365167151024418436693063785550721406513831808085761756464581268644303450499282718827667895249906070604340152792528689682420376368866542619078072460451905942545471024722547363340092723292462244356863625220093651393650768795816622580489393527165129541167167427809341844619925452594643941865679385287620932433312156148198359698376537958841999242559210170292748346180522788961355747398959565008354714667836236133869276747314563161552769666154536634963346462989087144639312324652075572350566604913149483184551790843560579299468366022879882402963616345244969647394508709918206644891364522652743010822772801960815332243650599645793501411975520152525225021357824242287872321875666535909263514947876910880546056112166946128206567014947791220523283394302520794828097252119063069015445942400602222322850497180793088598567286304739402089640050532807693090775243979397733398208162580060023002969653289077945000120678524135266200022127292193969622387567147056279827329970007449751204762778205794512429062110243562052084784792989918072388786370536228316545588390594408816560502593388056716225326412808677313088419094088540282965505777733423969963464555669224033137857351266562307006157083058625269352472677861999446177474627821741590227164479366200744931168688485318819642929707345301800527163591676817190829760575450470343231408894018288394763099967620943787755878647934872495045266671113981855289363601802218280062761875979341099080189629765855507510574109377520887168125514346894885621459077064281268400240689677170709079248978835368124299216428350151632873047239758460761926760537575124368452171060930407897347308108576371607030527261073460751523923090794091946492030832454134452709601563866428482194756900012143258801704678671336084455013205344686364205540472587614121875697043517571072190523902548456708498771391979430030890041870142891784432560800057469759912464058110032200586091495118808581606503880591723727838867899142915521469063997411896827662201850689751060712947478293410958107833477859432364124798989670379383531519641107255719708021555843677522469967792798173377614072247362384535739242176950160738721684329718792342265105879293109517275947238494535055119112055805761007080841176010397604672867868864352486996825192557885917846041974858931148955903990613434823887084562809210386689616132489640545214024415819903068092205312161377684273164667034654599076339676356337525083604234011951616047345818437388850017917435354878726381529729050086702239967671138049858579503153617378624462833196697483696962147504404927604526177183709068466499384604643192788756967109079916586438038709957747436423107662384047991099335808831309582870413563522022326432163458337624286033852184524594915052986832652126383095444750401528990878449287984015447042567185402625032274890278437442065531916379850706596088997129816770380737290631912742050594458241805153524488224533227761156986796021800504855740534282553317856431929295458536987271521310240148568976353789301057434612664690438522306853546824968030315600796875442187492192181351448572896535277460449291171097915338855963001350681333338706078395299388316422819838608509475345446086373888791414998221341563365615764730613937492896622795374298506157104063094951665087161714491279763461006592656178362107960437167689828908842852865775311232504931962905682516439426417200821469629148180288004878830706083830918590525534607054127949375510304433986916049129966202067161954091829715114236964622205753979675027679879164993670101236408226845579274345967767667263230319815629750191612546797609107256801204303410888590108243858631991358212992062133567324060886535660231274578736486767396046766891220800336183851008094966900087853328587262508397023475929825552170944200736235870686235929348566243057247287128566389571284998911179652151816842510522818713031896719910199030887494354990315100800525646606502240792347148538447888155001546775457051916166374694288113157029124876820599832874197929045037854227037320081585121788361222820256516477512829823075067143139838224714972386938915986611398363277845304818664712662118943061245659982432642382972991275979288271912625001183880128231036456901435520442503195131207921345162400114209415752569324944470005747944120997541405783077502314467113859470975458646791300982237232315544009824093667131704612435498174690313824075792719804642561753656744889410958081800443200937066581512868936372335268689245284897663281751237571016135681303666448243076648386460634630278553386780310296436767261678733600198112158929290385875961308150214407337077363730429093642694575574843363033214651053208884735467960273637757871287085043904240473928367301351040731072544239825898404156120269031006933863458350930302475939465143670004956652950877031965382978339818524865667450384403720034619767338111586016246475153655064784386969323608433159372365343798421983497017797666640953029155317099507086893334404533084073441208234788800544170066380753225197714567695503415396092654684064559263369827993656104481226788234322801564485712672561712404169532259451118241995837879024852854207334396906684702743625923629960258963868263603357038465873363036292059684525559854287473369459204170948864277510416125737781721999885210042580532839233249611581271347421133275382942061615463324287489440838393445405119802190824306173909779368643581478414240115082449936879136521046023611621408542530976118386398028248790591307427214590247065341173562157538096399549716141213366107911898302297106769201930866737960195973789695474352694787333131730622016834019547724902945241322392086084668608774016424311996937641461908292165514074848284788153812784995507231456380450909004519542659215328682235302515449112343368565339860079029169342658069543890343675155825855647102362673788533330901488327170067424913209921762321691619564024461253645068614558491469810949176850115542284140044636706095934933779757081427575242440960595640805979686796730378614637900517792982178378755838389925324930078778625228823535155729537196655904812571942374795375380380260044221417818622257114467204570042342053914457721196004772065218490197259762489319610335778584870647249655494452179258526114363484762007278619723477584762265782036021577216922207587609761265329116697736829329398229048637327149356840008883298881087410433582567303983953145773376161496034586053720106387782000253531732078871640311780524933586503089932315303082349842456243486411095078621290085833884501532204164322087506726019824278263972168111975410101686351591952221688178253621109417092589957425313677114828090250932324078418779449846874446315109972835080582930501619848503865653926518794111277028730065490116718091101261609978834255374465475344729420480892534294314706928163580320113230837609376220290560552129953877142239512931177472806609602067137551263139735243510306504402548753687085368365888704576934196538367594509236575811299699325802690591849675214572428407238730860203107682720073322947785745144311517469055604755126402836015895953214001883676420406358087200982695728951105962665272160535069671523767598795466048980624520984563977325180760688324639568702824207036888682344528657564004944839582647673216523570172856377357290476557162273493665360496697667929209688219790000601571773529991720060542174416921067305456125854662791002951873082840701510112652430042197727392169423839016042071580263781105441363325460672684677040119387842949551905191222039200369701163626045353944924302384441881512250356958123781266649826329997700259880200127357596928444437203517671456561837000223092118909125819096001522096461502514654224494279651350262583054325264580918427655716572490136820357361962324519005066265428732557105734681941669779912638023847808820430468011852226685461932570268415010033526140451457638382473951548721590074079010318169206497589486208536284235197080481136601848738113335051413324268282325035477598773053788188637292436163730591485183245553204933530457593071843816077776948170344522440902531091062936396944166723825945762914158457525142074938198161762251098752899016840979442860601594428968890399968924940430530363416111720638507348543483440641542698599650293300164549751803164064424965938815589995278205684441190712578118672187892124016633670505882230208301776719764141653013281799751765660172287850373795554811605619879446260636935539255697989002400272753940096530653431254596645308247344011791072401903064856322137784578637923071563181450743704201193944928893318001723389666006939468623018437613525470518668763804289201601767029928744580497391316986748807576149020201455447355089980371573575325130340715825807586740743063518646569706730067724421636285908203242992002412456505500779295200630043917767888783057750441125946571312909113389564911241622570280941089573795811760963833370474622560897072627010287674562068429888697808983166730761227261630325195647827676979416140024277068569735295388801491433817600917265026536214097703288223135130195745251171906676753556145336171851291746348162320456960195804381027525015483750497486554253079630523230037852740379726577968414151069794702968169030642244645556185080819397056179508541093334953300443971620700896945468597606300180336574970266132165359796566947817810396943535175997041041980746098620287558499208085323014252965610475613059795820125797674561550592151764888032513120968571147712249997292416270959123198925069020390539872959982969373101407964796819754289315907609766136575909272989592825124476726331811593550297849044454149074135131749603267150766506078594108865861357148160696694294910484571843132832263964156973462272916900895637717021576589319494297523049337300506386172076783782620639244418473557202970237659247226928576194244406215826146777490629235991740305327091920013175486452840926156156217790387861279284321878057417937681065287321326783428090328004938305367917025579039423717462585963286465560168688898162479319886732682293668595306050579653865823608284701434534245892241734502221949341717269540691789695871357400588701229859390093504840164362773192068564905160117908524327859791168106220320181922711534254821461874139383183059422013423543779902632280598553643010435229984363885398639388466466217716112426872000482682844192548663278181373840306338764967960053086777246543195633153221113854506648612354527732652542795643971833457950972514667461266195414029043513624919640145626347699414072012797844251607083682064287689357711704091228637346274204052050402024055122212993880686014857052075129762498559567600107734743938899217483498480318553699582083914251397135536320280531454472976787024925777435357817923761063405461677076827054313607717007121746614601515487272936111261274365268163043346703157299577523460592792258684873092389120017129087129075045435192998413108774689143462817118502846973574066631869730646338137036026007504246701457797775131646037499312151615549580937121327713887900237145592809895725939608902714603558303941799044273180457568172216689927390585446037552973092975346029811624588990095573309701571885891017567186072397063624535703195744430088268807072210514391633266924242901724707138495674829901666513773678972219122625028050669805160485283741271172246231944885234243959768892293525763323902310616829662208393008543636175889283975305960558102081838308034048075610719487289337203557910621960136937889839537018926096682497008336959846096969578267923443687559918712667603169923286930302148020375436814298219431800821527386788886293227867836894752029115775955726524002820732025330642901284263302493634933560580968205397814520869701041816855617136521436142101514066383007692092437842892252306257108347774209324726078108646082075953681962176435974963376158792812327456712382217542431452218075592062990539321243099619700291054377340612935547142393324230906304045472476419882604794485561136559495915394059265925049604318945688378144971940147784814900781374525968827615490999198678777606449242785625677107426162069767996730409641152025129651140723530759782618652635828743103226106266718490066204911821449729334682390948335702790660383872311856007138557339930197184054858196318552193985396072429657552008095135036074203856764247737232204057321390874921647318013092727689657664371168176479206022589286407829308053434685836627268545123327190356724988649922165549695410215297467351797435858337163067158498407362248303428206378094143527706751064517419088025740699111264906353383373407674291518157790845700923857338767395321957768903927408813341882025981366018744436330553960275862341426223109186294857476003746979593490685277727750372506096781889732323575933188111577530937193379699620886627520763337229934837680781776624929956727134404008088727111830227697383618952558478258149627899210011792290593938725786493800454051314365537008434262456086620101582255473979911756113096276185627689306140793339164883951338869942463147376786461233774386817432926770759695020268307255368002289422264754386294586617086706361963227823125241430332089214014495206140244734982575545654876935081113999383109828501094643293447360946094784397919127112869162702350589432206099915141912909376058947166879644762711189127302248759840218463047560323909871325152915932059238929989006419485397696532612010056230077666734677332959472402108231282714006377581415779108574060511163511644824769327564078044827589872031070291786585898315917077918277333346262028585604864504070114933443511870901345163615514830005451958866735712009706740695741868880734937210257750697585135144265031954289877706251232617555981519819417882130571455891965275506188586802496094513122287125578930763679403821327041128023511105573155956329343894048280763592242784151914040406903975918756783253830854982103586511936380260022428938746586568063458386580771752418063292219945172707860509663368606417471976004296054156624062698370592887607279812524144785508856865876531958083832738588724647626906576397069657081508275966190464169097949248622398860402735852788420574317552351808458332622578582185562156964513058104756023835989386072771753743208472510396794068682172753554057677196071991266836837332773885135683654746260614323528666081627311920018073163401922567233382043030983974071833966558094647341603499692858703477034662648120456633276870398538253573236277283316909169267319211854578462725470967376744722710698986106794325079499992470191156224856614536492426857634809747564809832116591022432500814645184344714225429838890887281573850538369343382076677660512344177346849819897357698548128966039965514142945984248069484445140348323025029502743017515833201705753435297195878813514059415470471838305833493762058655119238917939871264089638295238796878609363312065637528080117786185530483978333280431354371825846058205908706490494848383908253595019538373674580980261747456384657911529235578167935223917598906409519242997530002027881046935242447340493088709693756765346582234557023525232236902016052834712187782091594796777905580412834412615415565548168482481075838968034722845601956186447349290671696313738033867451939941811014184296814982594880194926816176499682544322817127787729638897349664730205654084084621955288792165262994270481237286433378223932469172337498630186541214899612518791573612236633039006440542153538054287244233408146379915429071315754514021413768701984850622231288102922992257758779570380952243011498764366566693395272714792333028801398523994586511445889090214241531114681595104810946586378159861988547531932837811803832883240321250661057376094952443321568910339502611347086769489169960008069076769201044570786685000204893332199100387594038652667369518659384270038259716206824919834164914960726489243395090085684053583097106892252034903531418656861477903148320301233448880455970856218079081852565295606530138373551835306938346869332152738955689656503767018299648455982984364126727902752079475973499150106707721308442778246944925821585105781059346173213057722877320826243624938605239635251442112743471621764681981519201104732661019670510048536868603762522093108010263882221187305816240745551971065676598072317850798596734312298285579406591397536257278593801418627654503375583045974502518417357252367521067315816696864422107554379852330679768931849151687566048670127423450714150792466527480107647013215996977447879557719072785258521902019904773802429538460318534808169901263960667185483177890871682601116064025703955160068438576724721356891278359471100195093319975602519325060605897427511452217806793584261927177110740625896641156339395093665316961442614156819229158373184180298446393089926856160320611344312251758289256081774426457224946248462894632943574800553052112267952962848253288539564639670042270323040737498347076036725178159924998106263880194908293139948880638919815836152563105516406696010506743828982186073162610035469196202774441126859993079450796362848305347083323583863670421314857894708763965303923243566774851455661044093423624325503486462563067792469174921016109068309936973362663325886159386862870075639445065164937799932714355788242779508505850363442789509204507827564478430706040830968716567862365717611836023722925543811128926768416368392245016852951270476837340356180682893964621218788108926179405137371396091428391802472174201254643418156345865140885886402400061427666344523834805024255520910550126929450680385929024450660777728671778319428236989394233698856823728447379361960800755006550435237665737926894087398833746451294005680518800520671423929967096927486558274099525191255419503956416134897561827490016710113762262669129676674448754666946026859849228972548390553938152131993660401988408954206910745263247490346472364132689113057282172850385787748565139571609576678651125132792574886734954674673457159129787172537885770490221530444667926856788135595633168513527904770644747541764605794657414362149791579038034895078365155839484386004726910950734987618503550662506115216018929241996325980838695319556024083955447364192434227754182052615092902225013654578750026857565217242209695252813326819355722659281105375795951140595372285123606185211682406978129909372118201548263415280468208370040331363386451177502025244311544064734773807950072868301445300388281188032918810176394111487219788541151423198202863702891152707727799613921993534012517018856007394718609118708217765056220999197938017838189391865482827693138309926660067948072851001175340149176658361523528725049766379821071679099211851645650458985979961119219939314414704600090804133560532151672818409806682737093590854268277643079520527290443982026828471141474049761727360217334161708915631322209885900326591376115662844477049384387824269729555182530468578684229987127078146767100083599921287636241583219486924083460302368415007607822187662633901321768208870273682246896795912203829684335314840476120516011698488471989263368540916675200826316515263053750976413575360230409265973412875786290827739297764233527845551281043821816948075212471823866532528198372996130018066458556537421518228009599550087549532492870235547048840805448745601391525365972244522563387408209782762674608646349326947462906061817606444755138785971542472708257739233047424844620294588075090065615846054175387855530738647327827374477927370979038306170568529933987730150036313080788556622192529871408954306713535953670296306054319682285214400744684238099109946144382728430899084625049386885891697237106869836385985867714873600675521803433265409103799238107199127082790562696395783391874315791847075929952634192173358321235725525810293398802902442962186068533590548802095265239868398479502134584706537693652302452578925752373903077770636158099506349798284739085275775442229454046282436503654890828693424864371722663777417745213013157404119560172120476967445727926758928713796196391506314132792613612155710876943952118579935920161929057873221503611890948076790775645457864404804430955091211991240744818052302149805535670227528367514666672771297047948792489743650037131981235941683360205020088704865165474101684005184878043866534747427347885375996047271318700587766695446905686874209979179148044045894673291119803673284497551955673940640550110255457928581937589532187439329374398584414681403743293752616864936106238540387391095214667188546668105410933533992928099511319534058800371037698115896870601938450468356904731406084937071908517297352048887228365438187323484975470178935888112856337882594766088137883040037071934636721831064022995516264334823570046976327437218262023188041438838791041102594889499373289859404235296301170261492306550793437095292187545586736983280897219980019007830245269003046325770933396381829969649822398058091650999563573003583525260840854123619221602462475516606384974389808545407963945530941245901448909403807893908209206976305989164355009386936309433143544106651005827063930380601180583351730808993108894774180154043900304313797644753774756698426303446018500845808002121873798538262392325854160365194106411179519562892914081803970948696295056826430683659255856140111706513291871021476113463815124976018145293611440455077576683904165618851695520411848861953105321968354576234179022017963939733550512704930164500136446028160987036805574958883538425120123759972769875539482714515539739892582815125099944568799438822759234713876170612001746663107998364621054372579836385711941033218221862913250504487555884484730420384853526690069628851356019644863174828892669593917587168372329654190324032542488780578062263517801751514570728791174308617733003877807912470360499034025852271854512122176369321214777806957409051472751101554210700356324075619080066165942617191611473220349761654614555642064421379271188936264593376166302689709078821463617058850964181178682701931958219738958717883106637731088249445244952495707523172802392075970339370562870070613639753162073308887865702560533157180256026332758019646142029594206527916303694564843698299714809407658900326808427619047038415201024551337199371609112984738569580657319794498402379258243037689301458579507369825885609820956404945539921780988930971490565900022850822477051843477664629530433523123544919879256614214887894926952116987838591764465452882519324457422876065040102099356380736186932706053946602453960859726785098567851995856260747516476716100250127750903029214665162754837929928799051289001186933809079274204454113249322353730633316465350493548328043902490285970649898854727799929750116710830761170282830904369651634572666401289865106496688883868424137657863729655672542092551557700670428098495881133633599798451449140801827933846715082120903006993743645455065708297159931626908398647528046088872855617279710583969175515082320253642255102552094219094272084150506616719648148054202502311695861265447610712647611704138224079909739619078200033818893777786990755347258995338156525965193484557188841594796450346934998364820210233068995934361820758865698683834737804192628725135972653385405862218635029384069271932023345414069259846760545060093197591910644531496694941598111502508089903055149626195309114723567132811242056290122650279862731670660081082987713275349227127879219746606233713925003990272247271830095323982806650405432858832330721521115822792050372211129620111024637614901981336157531742771524707420165268603446874471851916605160722117822583292094274345691923472808543355326770036393694359866725519088567617499261814829868282761753109735862805040747435749967254064060548128051816511547758516523623555704183494616471037844125338172850012236881822758484674488554993796627997238508813671771325726040377840081127853275721511494789932774720943176543839629944392682432166552420220398292185959050685783123825311834198313644290577896078807941649388164529776834772548566617384460979899450259675676388013637141619983795289043495818822442574474541180213850610966018257400612918460463799401345531482368777350347962815361398465623618713883627593033807004847096378969031817237924971295436908833306284314025454803091712205981408580388844603530278747198788622066802841830789795736436267138985095761200722802306622531519196668652261700703924983050867933896721699824333252038159964299767427168261271090594666894857147179823542129285770228265373975568315027865982237640883145647274441063077821665408098963476900194344441867290873389448433559958335323428989747480783982972080137519145662294324399253409062795676297626460689774613647356472691886353726280244493747620496784949517182127177899626837609616378060369986117764858774352253276712407180961165386436857800711889633348445780711549766157649038216207052203592026537433440922508031071909038920530512680171646747058424112515156783609257282696188607643686922193640534079418137707700417618584621637439878240045013638905541196924084367141551684946093148765271096336377231786511910885838388865828706639828645692082100917107201478762989112818970695275902613922376729199873015457849450285148095519581268466566606573944817563319005340761073008073658741788495950886429240937203523849317703954483374884325368312052284564798657129316721315844674596116355350069949256491796946987824876290398912548782845600816609554627165051377011413376156440584540498668697146200258311580254347540691436513778574132675650365433856411967473585254028713822656115694010476680474590354774190631509391925825147984228451102908597846463920401623066183128683885070197291296608856464870636530286349273137194139792897829517186873751821510920194177964366384544861957542481333010764254234723421032925321441096625464052913201292754107314487602470211914340552144702559958974822368899847367554472695467713038481442553450757816796909033715809170923956368268984594925296610503446127704912867325346873093894494327334117945110135497264858119012530139030127507560981629445149520984058984860981249904742895995089269114712299775244999147894315731629539128370094409913503957335323275995354345869903934588454456693544994732467814246716592179757976302876130128952962431765065577877714705582901024776244568176899753074353667644633181881186331233563391333386197390241816387265941920833364088908814134070320955342939697754699764362293877922906639249341009087444337570923930883786375885193334288685277132102935851513462759401393078306089585413494071954815776359781217844539138395481088484980615047257093213450205914585112714246746860074457405834341233048927590977661904397966095038863229781989635106911723581771304554789063578472105635014353410139198164837043681085124778755864774618706659486900179821315913438074453219476003392599125293995387892332592009531939379258399393456299274825280704906558401710994320079271761227923550325480758596783130008214404529912534276937330228439394571756998716366196805153391043240884040436068718989357319048001303162261261702164689102553157169316316098783489765735672094625813149603054413689339335435686451402364764658501196819040667148440181580091622751130947468304907741442708965801512367535495784832951766867825014590009974782657529663679237792424580207992934595507381695344705400142000688140211383398825420189082218859708672620782676802123322468460771940048567165841120663458898582896277732392104916429647113925906803346115110989190689651345219987765651143603742347064481819011786141685000909404716945799040945248150111790496687867603297958718224922877961472942009032962018126679938163410389419758123875599177517986835781318136964967662493005552692331293519477635816665965003457547603286853462815379961305798374741837005778083244954041534775853994084301250189233131582732568515207407184835207709260200335989137909550150935896597312090342172536305250691704609197649925172629543747644296933595277837050745663292551546389483334803597492719546201831226488189388974904216339681290396045814093764765791817371459602788037775464144027069769616219806899353980614661288305565260207228053755039619785065553760930413814603571057237957119618349121666817877289411055064433615214156379820140938030344434692113080872879450615560538835318658845755330558528684579639498029935869077313879932341580962050617267426203040322751773523253258255913447682405399620492953973356747749867132284804271710446886811575590842925413228725283719805182710133573670125270150433872552497419249868297747614704649249741036200825305582036672174186020893366096012771290527797251057725638252955377269445953614397604694598949858966903669485089112643231652806038134253355203676699286831005565104873016508379817595382911865198602738135003458163103759150278456264114422595362970549285131337130514041864776292141931859485344835332924311888459422394900271653313424865593026698951635983216766566343732373551531701016725993060628188346796215604874050459342588086905260015773814427222324409595903615919334295520316542156945110611642025437525378490120434160180720361251342962357009303860335904254419416413996416464107541377833846291767846298117941759420990944297484075611125515480092559475566324308940159113282746236137835528059579994204435848394520462865529094438282231368232578547677389721088283087223900350304239442500433087151802550228393922846863687510619517254982466355323051565053065610741753591660296243479201015389902349497908772639764623401200833534753179565275509492973341506272505862323758336801345492230767661064195279396276055945435080556291499668024943505044621126099631973131524913708806321494641446627347111711330537437269630576558647325047422807482941077145400362643243107390943142611267002350042165137205472975625761840200015635076336855451412154519418607860204608180370659600972303189717174885168888358968893223710732660188315773497481614221160341694550438712882770600943351376383287727123139680492058950810230146658964938864625017723769821405213906064380228709043028865672823052244781202561268802324608384576997149479713905877727601974609377817831537563328402518524102795633487331682637630262219763377945143425012273498547627555242481326558506089902608711416877248241200288255122258882048379090903228881263766848213127058286339808273724022000872635640209606944298515081339690882111385512097487374832088774813483056870820240049261899868661609790870601955592389716886827300405590261442906636894408682459069199803533912144082290738228133208194854088925130753235110807309953097363512809619606339907054550826697333335717937012768119769216026478537957962827012851637580675518043142801777253327313043565901983210837431322388570204182920468249108200690497843202546616833997052965457725014382377314649320514612820104273914362812974476071181915594496125312950830527467154072993884719000263229452209732166540585879196512322759628979502137150632527408744292150135598963600214557646602944076406936964725055069771020790951776797813167505460916161448059298259297749055442256606536401372509820615688592556985573393341971239031441621929709114740679688812258525312902300929333966339811519306952445214031457131012767197553965323622445332252868270940796636184958172316085868116234639156067294640013242418932169787545264943895513953780681746716516028082686808934496312724166487553079160414399177761762903375347769903386601091241733221610332405874047949655372326181265763802033048774722056068259662169640510799170693813834564087579909186513224795240806446630628678136217114479358041412710210647421029131735808451985326541623415839836455600979916526475728931058935886281518259757254228526491196935553939270543527724381706179075246305533317718400056355949552455755081353915284900217239773085634588317961118141818145597118537706730412184933073312778020027275528269443846999265240441342553883301888846680862784011386897732710659706346938246451309163541814255915540481712893447019336282192358097432850465172309136944762938199724793120691523953242992062270729437554167610420196642610701201999535075123084727599240032914300280598629774460365770163995891289925136441141731604241280271454058979138650959737502297909050858870787454757456628273074494588129881603428989386660669912189506785318529144273152420356405864751213866511363924989739776330159398755806496382066034686508137494071839610594722860420782283258109158648072657468295430523200403758918941500062472737706264832109310445647943564671355043080730429869566692457329302991152925405254114864095549151261280424970551532627701741395832671822510700257363465338048239491608274154562816372424745080203818873754984321627874934023708530046585049074693693413837172739528809240070590481666075061273585121169544072242928621224225233118167916298369062356202527760441200140330174551421514291126001137270564003483519218228698011970824688376751204605143797134259673118040563803517950131737055697429986321749359880056545653830937478341365586451226420432047258693904432550601660296378403848701789247678352992058919323363811788975367007128629152705523787604529093148823957606910530939497683137364009991888788147076661015276489256578491607206149098146778391941914044204570325838283027457837289744526626999291566854693590996042846855835636979778706623902724614331137561684953041435758935265585404579646970176502368313168420477119618690768538287911855321569217869222151302083366447319773152751676732757854351829688867371906830652163003957547726331059059030533141882453825716588900506119748491112036023170966036306924383370554435880543783133721589933608618424331816838180230939827723363091471928463094171052709108408380478527950475612430377368421074805710514222900344680668045296004773952422799923904419677300083727861271960994676447203767884103018797594864189893191726376879242785611526854781935771268357639383733011098299635143398304947056321057600767946470922050605982037952027573459720598244058937910268329776092726785554056844277798980249426706440733504589531888518243363934665822405049410043325760426269986515512134932043223216518157872690436368098898649346698939332491748552741091315628735386410863720901661764056042265643814221667066162992847328792154752852141612400589613352506548525170310777292610130360625349133831853085843866437234904327810441060860344819358500050729498612728676780865103357542350983512497019996223479636374729983261277412644013175161474295512688346183638002797393529915098811804942518087722017082305278516974208279001886082934469917475044568823430384623683027210861883141625987390742868650430605276191730965627714485890540181064735033994273448112819212858979634317292001539449827308523312672586578735885644486961329395797143453719879595799488673567881410759570778020603053392107414295895741793924344491704593402874869923837575421697119304897281277540995875235311762593676807141172632446208323521895028666346566548816658470656611753738643191162067442877006735573645417804425005564450482456709509797680493812495111555728398248119944752424526289814257218944588695259960121216730445145398663524711458542146818810810870937357848631575913991759953357644152010098374376145680352368967409144306676379538416607468430111837968295697028407987138293319204732488332864491448056739800820784891768387929615703654779164567184902368167559192556091674476337582478207902815398094911176929293110913477638707007861565364662220026144447966837814885809646058169078718087741340415047441280175409455700667566163162868394319573769547282050657454665601431229228272766613957177546686164412026516483530562921776646173563601330263850276825859540379377226330499367515084121419252479692137381679418840360429082633434023485894947890113100641636530576711030801382406426702494395299048764598334694298377864631106747919839098488499996537689030460251975200834243256609626252946846754444358955931097774771782385354232337679403730699141002575534548895997650865144371485765756448660126496554341225068689191717620321961912568026392763124492321301165076399491939215074498016910870684131828975899981500672591294228703811488003169565939776007936822065345023053480122435311790756185120957058462944475660663364088940208306075785676577067281818842875350082560868880878290108190533480127268946803854036017745758810100843274071591515153519078309941828089225895851538293350954285163573994949735960535567483704313944475517493250726284123515513783532614550602056154063292666681599181783637828444755396205582694688259668512282721271796044897626491221635610016999790819925014542328555660255269105142450736909693820299101056385120092020027031516116904897843731991485384726258248235717329362450283006852394969746990635067456756108663147724254158125702675848583858327876991687045741966999489272282505513299925205358325742865474848992218167471298065590329116488525039471086167823314536229718112535000425260876332426567398931304743579426928628053157626205213372041881781076972214816236779852641009532666227631614961587238489466776226983286232236254395942490618537865206081460915543341307305458569685194031959101314997708814658014905900691025540103951991308584240104170676143103406834531207218051152210944081792435108959392046495989608280217953454651187641610937002628372505062362749691294676892858902257265118225364940552886174063152286208841036137206812719353840993676460866257621260164245260183269069352899861496083795756676505813127620801083623204003888550679932740216528084630379477293996136022960135414080584558652118517596425604441973934005827223842646114937082888064205944183288423606948456553346055033797090248629052752555143714077316170447458055562175020821796101181617319465060523449849376176796913550192821557648053602222944664245616230132601994368365960136039061665787683558774202601884470067727265320537198247989064425788924712482558331729816421201125928019872666372666706017277920571880896320175717539783125938869754220150102926114180784756034082711013602901448790988420346861003527041219978024706732917955470750876083401803623774576099011777044340261995898089386500762530736492678415673956577701214908313846174635925944639426427972142588197498999106378465760679314660709543960044011405451466877867635967227271042960551961734252691090867549048886830769716724931193349384665433351291498914198782561727918865041205318344367505314109090697099599594742015370308621928228674471810973634388995937889328372463421996905234892856921285499130857218017957898305121797969569304978845473007573419538119745728456238309902316483379099224727708817492409442388972498678858091319167903228156526602493095591140137038489413661290324969745890133604780158332480561559638436980306600094712073240408570316283834411585618962071677797130979731303654826685126307393738871076789334763862907198317552661021476654152461326701476660627337884445949943707669158557270390565905315935572056197013328660243872131934445378525432687223881222132530870557374612328568217257713467694582340728086204297893486509418286838986909231269515593955044956266244776579285634109827286261032293328856033046650361296972027295808263283955992307913565547456241815653027277447028980871995225212829491296022061018401037407904705866995267873473600742191510620143421685893006882868644811370884141265577595291779102700789165689779985148670454727969213738767282883931446969609728557797671586154305811913641560205524370319518063535485475486589565464060434148496746332957754332471200919460903771475236689671626013430170436127179028323878935652486107021962820109890462089881317975044594591821388735246438963167625904361122818674959551626380568542751521367944316946504936797438475925425716423172694177686344005872818079799591180756020578439970947507139626754276188326716661943191978086319604832732497787630425184472836383942451636844258638680623145803165340513086105843577420400827721020916254184275003034046088906334622632572368565610348693918797226535991459998600983781660438835813530401195002303822528663196785867919990118619427467018022689350309752840246987863530449969191451088475693116767929096903645184857416374500371348009502710034618703785142952165802748438350332565082705424589322260599553764592400425613948445849667909921860136074740367505641881020692355000689531364089929297939499341788235611984268426017922760734439242085281966291031339446876279301728431134597544503133156452007057697355431366871294855611349898751290429021008952385313227529537762988455938905697145638158285492562712415968045502613201380874976789296475238350380276112460096753706840413673755896448845771309073078702141497968013147408028859382478912103115410321913619614464639062370492613820597709082804072781828263630490565283864098261819009703260673934062202858534842267345693189242933188974513647466170539813035213390091027025938932409788767953656810325378324124734076805087246704620578433769233920710189750025709900677571855210403212034848931728521388304740649818773359456877634011608115842195295091044794861807945384753141684270811156853043030890294747376263133401658395426074696548636815012426480102280720707493856656956378507561073372605923850930654517281820444640097748153331752644495536808584657963965039944789473100703996936494326329999376518700846298441725144527913759335917804533401564051158717261976778135038228651483258742719826313836470863431037662391651912453863131893651801271423115857648098097825929415557666300156919750627186941435739761712965801307207511246835148464876037567258794545057602081341037562127394910085410533449081289754924519078554449662521149660469428732696908610405305139420401555510424572428675188085236865515302709614302181174764678009548774358242168345825831136967802325019629422204929923045614625761012213010354648638506415826874422793988729669613120904778986600379837476728867613010849821500025403375592225295044807999165595735166053283967837828377419022905252004429991568640774253651507011194856830966270057905469414582588194750005975144251237062023474710857007826197817747326940079856958459370658828177189752419603178900720751785460635291117621078672806283948621234546470621012507747064812255101154787391796121878986190051510064301154748263735527706187324273131081524887411972000821224904337132442017190217372089282855293898012286408615546849306056413055344518840866144301390618505015258324057126351497606622727145727699119019451169374774854795310850500180844671386354831004542963438000770642740946485485919840006824030121694997110704608285715936034281171530733779796739059783992209209495900767740305397595930599373070140422669328350888397309647549708586961002629006961288025562095952319556002777594290478163752347170024164211743607190243578224019580690579308632743194225129387517745935013502882130228962505255755182284084919592481277056578352206226973582409149703135375465958140738843653739455061403502302151741929126205834358246101456975593216332075345196127351588578209577452125851566951771746236830466357336457229900893384421875693323865053863837650731235601142739141647402557152113815037463639435125663806232165244335926869282528257363693399614998278187556207967254296960044130211919360816027709515249642679099604862781202585198864044751816876391771134969519854076051278317582619012410092684175178462707266806742055203427779317250187463042659098777511675499839192924125568064204875150400419378816243273284821530815005007582175273363356744956274264553649117311565078624153279897903727756904763305973018918446583452317737281200624038988744832010594431071007869636533550045492650052112577538771320239049500286752999224131252314522731262951577895501424094403519917590853570434421147534938608863859111589530366297254605935574286020617043438753846250362982996644611999910134461935158155536306647221559040641123605923903441146448258836421390532519179198948831720185472101506359071303204845647574731020596961904994951610240734974436012202390512968915782536545084907008659079991543949464125744783434298224645276810565950626113795268402419895454145669907236067015449615377478861822712774226572423012315803645678704951585993470583945795920613868585027229949256564251511659488671302071598392680573179253800294704933482186714741822564725005296688162575096087465409704994233715470703783904969045638051507872445045601251972267674797300350472728134550705259209672411090849699348838010884114680280229073522567002307805782740715649715197414804408700283329894255996467013998872389911820960599273016381395306146442567918897601259068432089744209901237330127821574028098035977668097065639895292228740534576116695764263765936735369554019745547020769827586322243199181484816464757552849052600610161539521459460870079837935267484642540576882299386453281858988922063707391880261624558277706387002743821641916527182747135008622252288354009609814255471976814266307173825582780043886828058331038196150477578322910402163129513514655982813123374628461613558424173762627507184829684798866270561330039174897809765377777986070803143066185056958191582597050291100302868032348734429741370417140696480566511543423800030017071421874154008210471087241314295537476244841862222315497359154683105778308918257072680686888170641718760318478870341363384638105279115355494617411482594822651642594161763156037738421692961684093888741977708841435051544183148982020222676420650215037438640594422973768217775740273575646461184538689054314953195639031952926082585289685188848416747730118936216946640662952380026806638990655404296999025948175032530270508606513992614968669855713848312953718163560239662795220579387887647260881334660152049490626739382766276435351013920959568038325977007548509108280434618585451130304899998338120167397867979781938002639670667265739640397289705628574257516885081349542127128078766466115909661568587911625564176910371343504633070400155454203837211819896829760437145064040603342117218645745982518535508906381409815034928412998502635953684239818161040657271694537345339405414413820718932186438304455505861834425663722317220366626143782820541578029941016864761795345598239261716498013356226060523522364741642171075171174620807840203642656138104315028183610667876848538302444093798559464620360071635625397508131051672023964313585993171540894761963984398641502216466131623889524227599725413231462762484248900690896354620301055578522768210080273399266846325914386373846926905308148505040470870622251526873762469629560180263682428861525083358743318471151547961612419308451443577659374674448337729926027928440940042284849240842255616526294398807481670161461194142953956955005188749903617361918103397893887194238164706013024799866002471892550444690016679896077107016254889497639919978612934676972962755682151679264876964025455662863681628030888023748799254308275857710384036554627316204504051565493487559023686346618842935303654243667153591063985864141457809838303547402131683409692721963199817018746295050718259117115091294588183980122855875058696072131960150310613304900973772164180830610149892874418984752686509974486129114534818242796334215209918899913870962600277213808802497376350745148580959808588666679115454039078430004445109294611868234362752824892550529300056608572185621250671446453060290471572078303913521042423285233572030308074017592815061798395589699432458155616143442134581411281773729657805870459148876664766052163327818152338744605281650815762476847158247056407514522090764686106835396907876807947592585175782286750022788746902819810299857788590507493757298576630407779778238420134985693099855920856101568585134678902779499757917918043809592644423403052126921963029188335983316813401572421837150631361496787867151986915599966101913452119267262957645903501088385072291436591554379084540787185499405003167313725339513695032541238138713114304814305045736428341005449457495755115720427082351078569989775972389837914021636319323621830168727330324415657164790117862454102360108611237959487404642037146479403024154015760401808859950818860594923436568589717998449590140729517909494569229143776022734114385735517602275436019616615419823383514126207155310382820524328326736970644593997127471368232830004463701860921233822796445800635763793601988932960511011008865132253493012398118449704252822907818245726189580449393090182553613661981778635787882325023118260224155586265422348834020718939325763332632113496979142749270578022826259965703810879929159565667674840550311276973974438237698901329998902425811143645294292695537807712377195471771582731086715033079313277863809928617262482997606890545787406817311515110847135734647998799923949426760879647148373532697786021721213263245723702756214799287395976999118920805819393435980711889255538785622431847153862953713850732628341396021870402662957532116756810402639842678571326361273609870935394309948702650484470339570392932955469183549461386955922666051237013709870496635020342266117563322348332332600641152426363672808879152677078323774765759972558346346304369218870569972886195136553849883630388713458575000793892826992241692511832429676933500025905110607186752765914522748795716222522064427616073050275217535403004322333181856016468989642733878163147741407753772347729585590680077350875378111202528180773654855390077173762194077828042168198291765915286211281321231641306801216099041522768413612128974772419137832099719160251426351198793861034726246581322808913900301793557120013553277997709547810161444470203091896474247761554151391120969882925959295864094525699170700554402940885340386473816339410085448773701756322565241796329592174599359843180567432863205166890035144248986728616948649829811588484767581031597574206503770106514332271552010343775763880038791001388771116904080140132965041493376232451398839405213194802043839010877092311724217305351872073293820543381226686264169779110931771711466641864816752783457013419744027393704434254332426305930687119555789991649115028503125356075064156049016894956951714730766777999100954036160261127452465670620930355521055835408275485567863553542185069012119576939504001627782242911206118719185918321685517941459357878582987285141381480552100188204224000159756256868076718525033234811362289391229136117857865035972501374434358379155236266974581813647948514229823461472180112287015619858508164207583537962993705318722851769171673525671197067719834008744980936136333165719109185759931199716589912669632494951329532339424475847294051880469677494251781564399058769791169720016388923161723035522350504613346515395245250904938553522999955024676060929235136578293191596155136763254398756897740864648408708851254700552911402254475867030265829804951981613775455367876107272250974331426360501474400340936495771508355733808686296916295696547724633652527235352945784069320678008775113049015833797335747768731483542930017229844083356884713652560286359146173670179851441499155791722753156798072541776835602917469417123230791544236462429088032367069519055882138440177777612434636950207693975308045004556226825261285995025340457518114101463841146719430198464247495825951742518656751635871746314055576488991935683096641955010207982255883644105957040352208323362557067325893126920375969004899165967288128917464585845949407470827625894842886797066006259312376247673211407785156253947080377664693991026047744343734310007902110456929992990946430849578815758591706922629591684990922756241580527419709873439602468406771188010749045524047224034281901604574473584676376984342943895427850203824767861701499166127923667712730581611929899302180121760643321457456508892770493792996758805192988404754961994203031895113782430430867725206577312200920985944284042706255842560623685862450229385250923950840593099792155443710652427516191872651318561591993613303067954454803067815911466759105050774436625624729963263159586610283057115917796165698217418677452270925928084691388389289355558601489244073327303809819007024362687798968641367638029292337788511957453880841827374683287140523699306552714046842281192083248469134736315389781716169847828091470922083209119652158109715849500031360923676314217212778765673380542630134124607503680693929639161449925360783812241990747307999858734196224317509506389895070616067015414060528896295604064556756782306022199070737405375253448604135232560665950686052053792910405928839073965069356527861459105694151534979305053131238504086345344107132269905163556585743902945524063460956088911836947139757436402273216576596689991933804933314924299944265065089054077748871992710721570446632988121549465826923035615818501933741827269711959018506520811552185328563728577033203195979424113984240238429225877281748141885029501195567140388148173250723338884603430987958957681836179210759203510679971672107110215125212871887863978455473030383867501265793776916739720693732539685511625669654938406241605995913428249222905376268847559609800555383925381756232015340053368418607931147146332651120830584275116140231261348973654501739127697006747426794783786217721166080771193623363637839739595813215011787968218360374340488473426236551095158687759335281084896412015280821201381803761264315969213652517730466782128249306451540165584813347882520366751520270577635901824800574836247027579200751290905502409998356729167383455712975056716265667339935881427078604502236128200457699746147488446323134250625324805408461553618560880980925608649086514832803082610139185525934739152638079984031439125295812118237992375547891100629475057114271002267671432190258446184055677122298610544532943343015647969802407556253855336043379139912927501943198328171596325377858949900341333267047936958086344796010580836219865401506518406262986701277045108887605482259484347600603573013516292361196446544849666656737371729966524576739441129812001948414410505689319546748180859160756991792256748570192965353697609326305363120958163469322480471573614101003976185521587039763479498853427261595808118611366098410071303638045213429259537807899272279376954622804419958801703649460392644433251698282682496794485498940762881284740845321338119496094203669829706093846052575461679622452422208989446899787838160448414714341344907166281458855811689855325192683786127459422527638045376779336468672311141844737416530951216401602859124446858019738925097202546671264542874764165861814186596226246776921711949899421772527901573737941895038258570754216801121698235655216941107630499965987751257338150467536587395447973867984501927434034543890575946373272615685854952950497002304269789796303340681394841946631578001384408897035745787194585335145437442242098852149351225060228094090229645999526649457129194135556661778375525412199547939360126241133137292265302695905998433259263557565216381027410776819113407370069293348013096348335820185830562218873745883720602744626264617441693812292894562211444311548051651345940666974246112399369633761641849982334320513788821924579418687407208087520513021762217393604122206579086877175624690192059565064796475819373891693386361631436218140035631022063749961972666049606645559006247862461972403580577131770330560800633598638882429869946438551527671412505957397392501237957485679046282670474852170557937150284709966895798032519264774565986238411079232269761806733680814313754990056189429456494707811154124092803735084442945522217151368916137936625564615679391220740089098189244709719520955154775894120737182797684970489053639802249861740297328925129363661775517138076423454856368498575162525691888260965554225770067381205867467978330447115514883490666603989247879417938657700519379132399675069490478937238704235857824414346730294012135500578892380946068301937959715830342618982862877436019160513947139757154688371258051207579269492210431608017119950860627788822464403153580668903384884684309009172463304405511160639656540225662536645847107004775562367848439558207596117320608629201870292270512343592658748011603458333897785862104700943555786659810380026037843866378123317542059037500782106272113086330501661260579381169618754921460216074687303411202791541821204066210823319177674695854468473861428073898688028612663481957870532402632100060788855676191301834930903707525870547620046524837616712703206887078567136355488156642281383772738718266992952136865097922369421565322932679468477421399368850590282554401226301498792417472395865514923911737108684964322714938366297011864502378111398702458987793580628967154944264049513027674436359412694312361547067554710262094578355443007078404726806564729649894826945812602313258876939625736419855603399008598570629988447671201706366911610280655315229838807283497760680233655246639174381669002785335499317772662078300991271287968603299555880896559753807665322125851289547570563092152891123729196717397962728806721192559461686679164848413090465272570624837810574633599531200937877325040376657313970890243413367165295312948324072966872524943954183177079098878228698084598479886450305385598327408613727776330695697775054648587524732712341811789005897943290587028101046553588742042110396738976743294124069595728027232899167322973824497213707235561977385036593079401289676633251347122214438271532360562870367648797262913232726092646635472021008594771612524615871962845685695782859916541947053451820083703481589795623477476113505010393829510424070349297467697310788496600506454742279649217949875639054275580483089592681506118273095132150435956852721920606966611131788205971292774329784901049165516537805503434198442527242405822036978568946854528081705842687186035290740667537891740918291888873644471096074431151648884794194205660964522294911633679894843572217568956996441195136319713864746422758517466059291789444576067360121760823774712661244388105520629746890358264140187535886617512119183243023018215107106220886232108695356399993188446875628498227618633821919415197932228446809888617766060046833138008250208289447037062273526143987443027415306198123258521875736670498717810659210637324478990412631329487598914386615667339492151294885836418266688421383465587432214445335464789677036590822951383481987043066784241715676403588623228033189876321443126439385557704748804538147683915818692643046933896362612355543718694803056423727270698182092310875520201235231734941289351715690065734630226109866661152200464539379392735057109828954544506582694965496916511347946555143919650737667064629929423453574000252095919990910414977773473091396092546884310738413581086305148250835477155535951309956821701643897345995889477892369010525369412433358196167949123439284021137703366496994191696318269897230228951658481004682153333011648118550539048054736024241401865322421287986668750157144503154196970564963682087730372158795367126467963571936598113495376837046679722728896736040188208813690608412118922098789122949268180443652250781793501841203247160141399789974044770704357547637093909299143710090709669139143128227735234650998318593599514793832414705462993311931301671354558179823869999318817915520955004381608149416998217677423133839256928673689438141372414267225126342709404434825109532525992208799109071511256571167724495498498459173641071309375892936560103836727011971526923601885806124533786829243999001337599046785712867642518617537678847678188426796805000818449826270856452142952914891665697245901906081969212787217157863542219648299567506124741303331232345636171834233365166697537399085975296281446095973911021473430247143159907195121370033790217327489717203469151026744900676318938754400960693529617266209800840546468423129660021807260585153817684215708122895254888306016700006584260277126682056005257565895390456755648298501017365342955731303958779232864171870476200610505652687459251696718388073382297490933294746018711059191748601583405154963160961013746448129120049942878686582918282867830577013878821772956691419295587640065704913387895557133892541347896802955465391050525197366150402652307930333619222972624943823725412001245061452488115421038880935105450828372181109299768842277522488619851045077207535059814819860228803177820076500514067512195039580688948988741929040151479594009631614224007020495880526033191974844352370996572090030040465669059416587463799947202627332994112809732969605385751527933790260158543116177076712529922188870695070332647764122327140392894098810703606304683967525918431243081374263739994215752622658215826357857961199073215084157015978909827397850339312953156787247362832847498027558294996322547618418344102074027481442770296584168544972455482015111285252501133320622249164839164303330731540468376549610087430989275013493534652142118221975054662065485232611805282034659540676226469194803293462836078550207535974557263223747350209642974884457886984096446897793148395897646833394001471914918470008508022704627634625646491516465601285635720591097667130289001628173559581308616117111323495752929210865200091599106530241584455815386967126886121086113509150427134725269071851149283525744861826375692726691784726507614952737458777978250983214184181984736945328989622962161676600846337073966372272033791304363113732695940114443847703935956079289633305838405174733700736547762897838183448683377220418220424093029256773320602046534866946801586892852603211627307693577494474005817776026282643872264003437129154176539415241203791938390880062639120600624899091068485604165959985210671747838910057199627252397730297609783480062707952927714082812640996917813526514953285767694346884259405901230006974684801280993070981611060929012037890315676321926466642057168668580716111974064409328762243838338309000217900659283042085163881988006485812647206023188672414841525515661697258978649468753079648668825008626032783209119416328585113988913468970449662666528603423398333657011849253582125912800125742097949727118868244434889240819642168908016497846933280168440353702920642923167426548743604470474933669071873393672918242091644216019529774438493168633565982876428088814487097653180421947087911672392217211376081011103162221910523899920730737972165998420560454803586543345510817412649478250299526135817044944161336519122503382645552530520940431317152615116657432698829752431020293392397175647992049853248375313840302224870879300924531864887805783652805000661368976864590436394298998927414056828144634378829375458774322639670770381682897413263605018782029842266243097541807609735050359129650546469691671923480088428775745138035349067598811160085064661343964101634733535045510782453826982690513671186869073118416338865125665260688713033149109097846348733690016819712966627781014322550217999345940314899968704972095270982950284470228480619297754382076261634683622454631570220557407054185665308013810765550042508005025949707880075755956850224893020479875472717459212431441311731249686943182573391891378744245625703490208220485078004614182318964957894693764948428071745710609322649253452561482135650270531835772941214928286818022800152900840697554369508223263111949483456292437973825030122812698860411058004821001059058985489772369498745047016048538762665953277604796350842956391571606882987822644802303977939256194077777594751054865722774785850168088622934732943119764431103953247854569408251800328303408150345734805871864310617438656702469422926663939333286511518823389618768262900922656277678767515516443585887148143849312461688075472992415957341925732021778976998567518532948176106974854926166105104549619581302212626793157114965669756394051705617614601910334443054602189434930313002943932478529318356492027430090584044701075760143004939963337129400620909692157494770581781237472653726859996776412322781477467740168237007451890321058755474409632834641981956700212738444965025945554619026461898991802363728914111275052332629378203161360008694981759313152104433848345418497416990713286032080163563159714303038723948752830209989548883742652146259021863429148699587856448686470661068268283565097254995660320652636589296718875906503330228018929777729278486987812283583100820531942550837174216034362288373067902570305048108973496858288975164374461679331478448686249968152307509405617835644839491704434219691483327394039779703566078208489142786743200499401538427519079308002463736013358384490733074980998184512313954400248070017633524192025325511146233395557350499812721557302688573692265111545931630532906740075905635455960470739800221824227057856497525243762892398249397637115478897652135892599691088999146027951943220682855921378337841908910061012868586501669493044755625521438878441222393347110976506148992768256627031579676076604343689235285708711862647363095436846845550111805664794125895077430640629323674507107256575778961839893274323610429790247988537832933311615434083172564318551350498287887237652771893479209902842934052314668294788807265165880980437396339457194996062428021795513822521542987700407687362052888198844565901659522901454441728280635247782615617876561117595603041763678095752024017341211445042823554231032259974712839393246559351615346967343262202356856064876483221248806734562286038013609549485785272240796568652890484855600086205125918628602061543479811371639404709837775358228687570485355083411433359242751894461359762352217255840901095516655385393083145974979607785536346668154732414812078577212058388303743105730033854209137243311542560239696820075791222225732510867332989320176517408299377903131793728886137119633506425165118174234955333713396729780425718046936316280788857877205731532560972965512546052252759436121021892576847272729485840099383607382521625904912511595284358362987428183584140217521059912237900004539305161342882094222251759768499797005579778924469967381179567194572999387272387421526963746443437724661342125694561475960779436268264732743834776527483133646355795221203381220136324574726385730601946888593353495226611727418438282807777232694577444483620241045743474185514550165305731849343113111604357588255462611974144903710130231516200436101737595036492089635829669745136110913689137571322800295538867367841960057363636182517937889628926225714807312299444902827957708624624753154249180710222398972130390758128867649592495062847060996015950683219766686733575876209806270114282565231413503531873792969900607088527051896518647214241563622949963864136743728737537269415733026373530162723147467293084450665880388161755301460801365514547269374418413260326598745779156018593557031754840634340750651993377939086662146296493903066475899254428919056315476173037217189355629129169773211500358198261738986633172109453976342078741609575404792566446191079112659833835986883917692358745523846366929480676903243723262261287396590743834073944778606598280813498692540235712173466950444507570601597848746288065411194086720299647481224816401621656657985554754007967867395995398495390070022005065836223394855827610686309297612821821570859873557111350977062271391370285742418876592722250934243941130418626900396966006640543208310372873831792319316242623058009486900205844287808940781321186237863263996427888341760145444358552840164852897890116027881205218082387066369724116431826418618901804673360071157349539893247260799351468380688046699064648754315878582043489632665224860860800962083274398803159569678738924223549414832743891307581797855302907199163318847866295456249996019973975927122844642849882079427223107550078335255022504780088345422645827778224214040017080571348596306363665957693366779169069050221943271257341331335668826790851953818977151758278137599602261485635291078823891332048636761233609981695534987922798928876733478441961073920701069371297964152350548543249126271747616524893284854688946777010944595514141209437401196277514493155486063024179996845930921288490268883838348174544533798910750155698047439046722755102280642253139193065493609916695935999896742718286531384536187212616782529460303461892015979778562226589199553383395246624661103221484565247980529817028880396105852276883948341670759000920958412076102421027682508525511004436309287329863788385157287453592967026766095349323445317448751507435074095426220032276559484850214212177289654100653300007456671775281961577941915463511416633807896801901188851111136031737131567412652690568573878446640832988664747327261390404080960432589312890764914967366754222458159869258970793297773093900938691215031891166328696431564268261934759826539101674627893596850919754849091400865033696443499952983002566036773697790797133945745598244992669653146652858901194772046567668674584614730014556919322266345283468099959118871707266982447812906031331489490579085981330840938035951181061866888759203706155379766201965389448562130611664300469939364384084081903492451210800318880263163251957576896255472386316825920019753772908973417102884442099099004614496831954572015331005951331275188710120104204987883707731335005226838813646082308566590960162276714627378035364262205495004181978791620629820842043669458891513313180274607081732115636448219645312081321938795785545181738798041096176930765203154693705870666448515904808979125267418145146892536159364975888974670874245217005812402635821093807321816454199305241410774253581738325958589573156553765624852607157870203745575264976075808390937585403265045212932630477747460778076110162841518963405897744227405104570691975575824660471177778074759298860278914065411825618680856960903267402393200313843651474165339896841503298751314498075899497516506966408522472656676187384335385018693984575957041359864548648959686187197115209801745088201330002800656312313515076994964822963155907689762783596122180682531059386878875597804573824648746979609764464154932936498769929569504246240238707428597399326159823787659464856957671997707104939096479493004367286516144008893557377881999654532138113574707917076807780912630113616360557509008476112724449157181654474546143705874716527801913299414928672197652018655901466511203240257035404444350824990772010608822929697959822313841232316322972531320973292121328369430902406786399506347343048149252051172746403598382593692864961503700723780848132058871869265847756873538692046057499691117319394580197972193121883520023849602838824194525287586253533723493894081940208536445705135363991063618827981212534447526908754862809306002910848554300888350038229966081271274785040395036113060409991855778302606682113331899988817213118673646365534506510569241111342345932310137970531501872224459307819707458248511773030708938986118306439838637884211858015085816074055327345095218949200946083411515787840013956935388889748948049406287430043756695818008763431091432277002682724279538627834834628699880183236652189181138547777833311595039603108292291985385543199838408089618979918899205795708818965248534868056383213492610153281933884820391203482629212063252106154551910288580259120998301983959262713648378827428637972404332498159984850876757550143133706021134098490102406333853731224366430753673946858896919280865296506605107455781480959426345178282917089729443598338078295079210462704760377528183910630786833940409601075716152418889930803652923670671940743239207613569754034143419557057577753683171965461962605961052998376753391218836084512038001185365239261667952155756504398664460835455232717973144701379661774817566117200840975551837591569010378030975683160210358262154482052985239116283051439733625099880141790744975315009111593919808965556371972163801581392587297205164944458110699016212916601631716195172239165522329486434826896770726757104096779770184218350228924834628399184869255392802253899382083865719312296250342689230188649113875684706331010908859939957335304985358482425013797674307736085568269903078206124031913424075885964528234070483978881623408219548437944238392905723551912104018047414503764111303156882929771710595858785966611482425680121234338103382151549087104784212933601371341398529411632481808832123234365190580010794586755145941420820132879982919047430396448731952996798500321385613225403310701958794800328011821864080378122737024604937036594233785688653407169051632139723864915142628236808001488164137895255298312503116150382955663703256604281341158994419011255439077325435159832874562964157057679149945993619523594525530451023198746661027903748931179216799114841122789600914054796628841048970848815195846018336089572542796033875703889869409639203778349409441302725500750034660891390122992584191991401042006620214597222623051281274814936680444176091814628828103264571508583094137272777282207193714032865111349026165049861765266149991874610300066935817049812150326637800177946842942582107593214032250872102162591256793917916727037895070163809430226022442157894043917295675138064233171667888462632380473661313730244416881988980238628511919245016761960135163259662644106677326936916430400678477633752758668331245725190925467476115883510754049750764157644593579733909920394108942180931741442056112759800357726145706583797844362506150112669908423884713325162945449149760056301116112101949580677213032911211440870998785837477944507062237994861794210782086350332089331170815006768794320588423647406090254892585306481375423344917755325717474725846120279091775157486118131140523345137550289838200703790742817833943226495303547419601101757536919951187130526629814592048386301402671732569147469683129394968549050736194184088539142140405919734137248792756607857355462722442075384497239471450713561679887750935671411472809293729023606300718227201315542262592646460131892804775181666799676574738826126409984496921203654607862840443372585564487708697851515794927772460507236241029065316745103080942957445030701444263061219333137621183449869163179693995418079180273424726520591234127124272689520711055999556275297773557344496373068183101343513925885256222604812921838232096354704006065063543104105953560631789709756163409913888936484689575434573377007299211004887031321203587572693599526145558529883768227703293447156340027967070008053237906532715341581750947292857287519833464057480527002090194438896568522730510552960270911265710350727988269305789923159867113539188750145627986302782103685164307206543934730388572902510469792211442655074161220445398213901127068597779404280741754582031849002019211689706954167853736081801860700070302528674996018344796519140439120062533668668251079074870310224817472246038051591002959158748103448655538893770995967511978425498810371553923975975075912627154400716759426331614009838803710069864946997037158923159655744072444840556303707995055100521546354311692382070262425009472302330080051468495101347976602633968823406187891717408636616550587564271941968466549877670425240768797020257499491105661151885466254057629187280730677962666590968327479858266110209125431863517154930666050065036150619009769083546164824165350971989320395926309587974628041299109855306337781238453009126253873561453245391393567989315616242073475258664877865736396536933971657285551194900096797061022224398091193852617118706926891343675115599046946340924984218580680202774371121833290273028555252523039411876887678134358855843200660420088156615116438788357443331374906470414930676429043573946788222115133904015304355718745597976157565941112194799753700330928242709623740470873027881619390044037437132205960523083491041948452832997280279742136727468578878424557592354872205977490758842397004347424544922464021853022082886754757526977790684101759966407574837023479681125388920765266735212724764663089616818902827990436517057020336551819400459991256692301121594184678807563277306268704563082614850496370686914347926541331708231837794866308301473544650990603738284239419613808680853218502780982279885415381119776375947817198425670055373750941402951993690837128162620402887106779648099112107338117666809071182590459287509594522954665586240196739919640298154000167400163334783528691367622676233867748326391750444392181978141064726355200916887642647015405901128737690992408931659732983188545040936035282619267767314638094443412043139294205780484723001465489523642225420515680777470754580307449717215976555242652429333162712355865475943259701876021457462574752213016119177204494869010188834516731520595938687752824373619399798039840781478209746108489551487328684926175972224801719858469439055200360679874546958373025569287221342538531533957235119862263873796514193460556540209234712198881304433794914640576519835126573826648700076839462525751787611890478166292260358488516336191962994434107179528461051688790634436927442032068855150273457989736089249198583655743149107429103347784509940737286956561300202857696773812339514294185971849343772929221579516547493907403716741190896213154543447628370058816257276472422550130127847586555671689136866233143982800159449161028188942465057995254660451929488950443614621615080977241041712787694135254032130452743633071073598733821715543326962026136504410098600194155055760616970320783535964176928544236954318908798841233051854183645636215512137379546909798262705184869912168879824475165674927965634611214780840562441059428190513659574413887142933578184991019964455600068030682838507596428952191271787935697126206122155453683990544785209796313918761795786579152064616878657882157163699406811701551986178188746191960772302125303462046367984704294479414881665986958670082212229416654543029626223081100307777845461918876906730327911175816882207643694444479465160194213604633322583276699399732080494291526209818671696863982166263584106523167161295522028484341387352378106633568986518111639874420018132836934418501561006418990251693658916915230400649235686597764179013476440130368975192380350515440708469002057235781538028353454344673592566669949085269924921805179969836416210687625827820858129847281180169772895110072167837892469526842668819804131330117071107569312933832270927165634646452510654172479291921034580808218936385351864652392298432654853302087936675422009067302067466237849742329903179020791359908844608990343699867111669908790677399675148734179363866493661759605901719975992070694686060391398521972109731210629644560857551611699475185717196882050950561737157686513316822168026557432170705562068320491329036863329726645358587217807892354797174722475290209449289956281140711957664293339461966371151001588589220767412757383842510883403556892226711228531796098065448344717009147807268186938349029738584748127681864604974881860695472072913991050634644186016556749964981452144102217180727298892665870888629458902349174676924198503580692252182070469318183888790262302816010244386954453262770994477267242439090088945136347553270541525450032414057570076810680773888646012076370706706520380178005919271725575907409690494837140487019203978249326249183917891400848184898778374866638144496336804880266044363402430059431807433927654593083916672838814120774255889685284619555796888960166901413302379527912022871532092962298266005016695882484206165089531888895537531323522049350325404938457771004277592012365639748872021365549243792883024854237423674799229069733306068941754077490077870417549084368713191484551284214628922191803559156093281369511007224423215556249766008419520351246288772130725539625499197299916932159883654285326421825818120381851653624502517848362939606066701075747641500029641538412483794369036641063048566906568541846046305077984795971451217076385087803294575607463913828357021289095892981240215394170457971570084652883018458069428499694287037769012514463258497210136962531463895927836162392928625807821885549344822232235153295527845269084919760895921865607573241917386013403766588458195792738447113271942011019166434864884365833168255656740710182185500398697632956853273701687641380285962855190841936303966266064306195667754581476096670178404905988920702122795079986779684687050437259754027056408544284942911918797527127853905215556520962209661955275034930557720141242868781122370862288469132126901827292590633996011256391603600023156613615349249767745133743479196914594805742732710638542087593573229458642765218019927958948421837299978548409148825496644741342079562825388243064041187409196480175018801307814931846983145038305783163033131783856677689659580773614930928464047499369000612926666926989422886195164760043671007363964972669533497553803881175861251839891736788039543058533142064090521618823099728767574818958280636722329786766165037138318585361601790127934510316569025746007179273242003631824328255835630018166710952959257967736980874426824068420858153928328130590654859914094242022077801502372985671546892089597563200172580138853351608081051481694140952864912621510278715978473604767172163618391227790077544628627460246951656149345655361953100589545560616101986505270872283252500242654002416923541047010515823941407000169668810204046564011898522859946892342225933277601202545452355448737909072237921300724161247561000944519952102254110249789657251431500907190203830509459335185906182046488737708120776577931105857138580215145456777500995132821122741986422446618142977905231406477359800186256169646423625283922682032141183424140408183184880619561439878807020952158274152569137379987643428902902031921515380257360110046792135062622981006505706867383524530823215725426680735309208792429268933252182498840793129964616551837560742056086560744263575519526122206084554702505165723545639061100890945041002004817100053386026618635837825023022424307828781174916551817309939595771088763354963524706584862231398180770952006071433562453857812634175747737352329827388819326859157509998322532900423343655573943936251251048007583248777982582085498097460092869467707213191099533955466900677534351954866521650842089513771391685756659063558265272276878145917328408213117927335216357498472652988166048182602135107395511076559476644702824352517865104530228940112682492390808882927877279166133411546219594713683349571112689443256503820313925591759518286342460076619567180291187046956018370069463019790655806953656835606153342886518335851336990329990839378765673851524456659451964919921166969178809385065525291675114777707826013918211273806820254213592289526574073377332623062508776259578732266011970900640429392564276653071668512812102881458651503342899250353405187416500492088736615645267942571312280917932826423105497510776240369224470260343890757640566312536175187891462058502662687581300652412379497818842798110071620234774927808769854303985201466263907531471919867433167068782244934024856909431320316581388347434262577283815978113925226754426740538123756982543970876533153193918944281856879717315797200220291522157387880781066368348009424184745607520112017610641479480671661619527243540497779225085543614520981246079243349373816534292731500281878643538826168448958940690173529442230501830010175869040843768201611244384121755841564143290508495141682528608770549477409458709945587140694769988014091937546586538377711466671560203205855069596291368980684529941793129143917781220647273955155548366069230882085602807929913403468492534935304273545652848212288888647101881809570320424038244450008342681859715834760759920710499189102264251833484848233672906579179697644802611365887610175237446224431788436788429791172880533802349689183191407841832126748249137977465407962258003589389432503858550124762486526981578858874326317744429610925200211724459670640542820588831518928823199711089727008337883537209441413412651284552768357472837953436539758568908549982577036200124969998152117127716127629131117596838434935359087166734382931360855363544986493349149365871317182469196502551004098060139191087783707440929565456998473980178203083520971633643614033265743500629684279273818134923076034648011939710144794933578618402045450158916738971785712051838593814437473769243267141816508950732699824991855890861581955413603813929712362890204650419077032495236540858838214032737900532864400820959786666569953762349909640828206098596665594120300521437644040310455398786892418361510400953070528039181971009862334251724571286044519899279099207274930065742102739104746829082839279834988545362916189503480575486871208631517301391092092557504282981315061685187047812806078766003335533561197810163125290396505030465766229673863628755466012249900787860758566122181054333013862580499322972488024106766377178081862070570094140486710601051687727164304512918825276708215416275763343088704374055563268238434394678599363258325982033054579774076838917052400672382298586864921129241504314642536979778400848126651443594280444574658624983940932872186188182933653191374470687233155089025823541835633593556495202025348956637222570277859936507870735155614605914078244277642470435003917163317956131731917215669623865357049408781574770264996761641361763993155251891856155310174164384215681761523384456066717324822162618090844074617528820472585556266408238834123867964180007496288363627609848469569132916314797108158020159724475293772693260781013024722378977039735351853014710879998101110657000077961999143018711578442030102297234292957915805852800732052214979822662228748399666644337684770808801386438272299764992442270059497172475482595215687186612762579815389733809469194117723559235388669575289653784058596685524618780018401392498121289491151518036205379856395762698737741147960652406614227237138899913448143150861663008261995728286431663606851079044956110461307435452720741969081621497545899769833415708825367127030552811855640713739982514770016697766765356730422368150207196439728937277937517369630606374528668361896805498990780998551077020014919616124739551840448191645334766465443669763827212172398760520356270566143915102678282783228348191541899938784708139327756618410773710753617819417586198686347463398034139835517567909593383745244812651211951661000913484116214366143871371959364106131083655990430423547013947488596665841453396735818953767282746800131715817833168908680853182886941599610506145544229673463285608699123176545458311382943702022177787978198784948671108480644290505703449606161495464762425724583973903369410801320333222795901185099402252854451561662576064638932630891855943154464931974820364441068966550437263041024169074149662317526695855569933913247545333089600667604910065318964126699187648993109549946179035480496072138900546952378973447698751077589271580761393755441717645696796462266599726257260794086921043922915538583827391125071303139292253644440261177141032371197472082295737122093699474396868240215465835590513048234367662825349971135537924346761270007984784972804158240168523139975561565510603854254830707961561188584505452993670807126350122856348782832480782659894578909992499930289771523145776214468483127670590877260858368859724585812018028961280475451468637645148031934550420307119515673676763639219238539499841122812232196655040827763058038524801875484057580838893674283709784321713707381682767064959590456075007807538286629643152131476318480877742147763133823410812124376645683401682438642022099163393750330794603188663977719364565855203600916449031016154457240056381274593715681513062504248175042285839811103795011269580444820580628748823742584488575047110060750598051155358091349963653499217992614341429670503042185132063973428164187851613439142862703245182567463742424815905644125539045234331422016941780895740801828716053881506695467053752195023721058128887439363358274672870609312228554165910477392774159126395958975183179492248853532424850371960796588113730650836551257968660034112577074760137277956751942136854570501548955356898857989943882067289808990242561408699367413019725886968803907283599736497134006811843523502298739997684967697239995419588796665887302659151865370806703800264092759282785160562730717783096499756544227960321093160419566223809977774751764514052000180146888694769366521465805927825550533628298614779965533814475161982798044886986742793683020591716470759971473949672238419494106950159824808844707611200731542104491025442308225521606211307442235643383268597767930426179869091208557563035755386170104898249525538615442335068908999215726076511898844487782526339997724518720847820335066338803213488785979897532040936256379117078282074067998319883538058271897216689780580766692518225703322792678646542887608819246000451063818716481343803112768605858019681623720807689775597435019997748319381441225588794808300972200657518323330835242530355340247066516735879070377547896089449150996408311854478059601116176165816653743084894369883244176945507783391528202924946684817021424873394029398675866979511036270247763028331841840045341753597865945951288230974412428016707644168951531546626151291004197234343393129210225031297488847840842112707752652993174699479946578721750854494284963667870896565851922890145211257881030889312143131013067857966296344430012272407288523483260508740171853668414044513159430729451470083957893673074529329980419021511264888867115174942794377443517481676584489036779260292779145074310613509318530430714668354884118811807269833043889748170680088570858632790823685279947461329109347006892570100881369568023022962260321308001547801432173897695944128391792223331423047285741847191785388760069457887674685723640848585356477395625706597842346277480533415225323836066712132054432838326124374185939377740448150327209678706005433701690555109347384268673405127629205420200837655979821335136866755185393125940223027103429619927209365996783373624269469237590031559873747117454070336230522613151977537949694884822330606192666197862342915827047415041413960427040313783302485207474221617975763140808655709104892929892939306597659075704341025963056205257919422069444338432313474619252363599055241284391490141421760676654626819100796872781673093959054782129257808246977162187511941976818090827754942167435870878736637527163810829241299079701202907969588606596985044311565403790061346908055836897302731163392880482619504836705975187820008845862293641211494655908316880844268528081186602063291600009605718626635050416004805293398783204839147489305366120263731456335714491616312262870600743834468161153616149752858616533560586865858892911435406130263156529439873601167949245713194166345686235479791780812740648912743673190964290844272805512560585905643992320079693446179476843385843455545626852953514712693227714948137553500465477339334512045077186786099497321941634708483356375005376608393637321182855625185776171481433483830212786998538846351328929261494728069147307219096687643740547354850959767937068614034000187515437852700640427326210392667203991899253981468381648285864828216219242729945414992844870635489917604533742965390513312123402536338839480882330135145267949708025074364900343931614363547797018611673621550030630445744001307412212569211407803987830300248756785424509791211593340133681077731349706792926417949673536350167939262006741737901483766785837639410915506992605418769929334950321141681892195735657319168541637588713568271197729249810147317289552471519111456663442352286384956000616561276224923389321616888969695217930708774457268832003223587032086322605690302330405864788845118025293746718107276657410876448174971447818718080837099328690807568445349628697268108053453652017307943893381268999623202782738279153065989184738936671350931314824694396769394199160851135737567755477978572857880793073035562322741712653947517808888070190823397504432964058612447778822078514334409924585879647451354175648768975652877980562120003882752142203579122809519320545584923217595932021398026022083180558680529027664017691593643008689838361456047098495883428537644249473808469466270944596446626516081952327393778915067244805903335723785497382712912380750423694904145208550379400475033444571739429644077773633097399746191143616890962675722704407727800438946960035051704810057671898535434309599190187606267218389790462996604404550255593994418485742704710081057956872555832411454542133236591792761433653291500837531761485577831133914003243607758444507767308653967695938247757794562260839395262313333515076324085954274013480946732633863979031849768587003001869132200653230418373645796418806724136226170370369445021766979612403231212513472653893183928482580199882660246257625301995643580936122424572199429611943653163357545324486023725361781481732980914256728163219533884356938948795663433706034350653748713336616561254812900264631410724983032079887227856999349212452090464297746785461297080014426164830660778298639694496830859064621374048655117795597374151893730863985894645923286322563682144203080538634145821979537559835029125813525461606648332818813435729791891934892955817756085724788585785494404749876200472195804625140662832496828097207038977248217459711808302561659842758783097014779969901906220254914573254520943746657282716856949588000249666284755315183302304493497073280897573337715706517882495151544457484123968349162606816622559285331810458195627575655466526606900583575463872920011190677514057384025154938651367784546209856716029174425780789105840752394647522771291320788385029016845634923326448531905593407049358734931434415042378647161560740592905145689860457449827174419855141345410790427695578620440529830845411239124517858139443039265421365169942379666965291382116101706192815346494422846825927583262080791457829718697794564516861130853727822685517680581377697255645861525574923607341640883525421796449665458083899231375875522595494486862751734848755730317429261125996334218252096030331458788547424861970517428341945996047769535036351289313669580014061129365513613680020826112670249702869741163940212539633699935359510545646533129891273653740020283417386453749633143351242879124701463764524330581110936108083120187690402047559970717066716730197046202974161302119287656384282742326820799703941202525790796760833294874702980831582525513817362833388440794534612634560858147098188341434090900007729095190086619789365307710660343618867117612427527216488742654469445981579884020786028055112399418912995552005829039261605407811637695721227203743068886026246689317118938361174306021410662708531232119433209253778146447022047368120682517878714522220591496928301106147912567729269479848469291857453851124226525051734070578497084336958368850537627607444474303238664350211507921372492428624826525910868531791058718601591008340643794623770319011516824103672364109453899905948079356530082921821441506947222942430881234990012529989014092015009391235065271035034986532564946547994930345551115877209082475552234679081806760769411746916120191288821136298903183617024867998550372702416536637739757357514024403876332212609501735877100698644909858930293875499104914482299914991139358702332823172520386795887568911385526542723068759788083739124075711597697743435217159159583019638248655887814670134300973181099884830663509317903492721115782663541907035714310878844841315633582947523168808147552185713798659861648872825033097089373728969791592888409851995517383438914711136161785085164786166320976637233348176285429612630192576238233684305839976803477045808848936913043277110664414225751239830178751657021100715450761956125963827910853849916849745589661625190835134885880498889632449334075841502995078001196613090731681292978001936570035205917849931937834314093073789305257226271445799299405813531525121273723327020631920535784150153484147043154566290978869608155723149219549363984528337727962891281331487566079332180798538302980894953290301943684898246612440850632781227933022444357786726776467233332770619123469068105969418078942849046164554269157350464350409813912295157914988781777980803416735104207745120305068639808932581949649089457579054646457039883044757324454552605729729572218209208485070683050658622098716132113299658598197020917989590885136038434085516071852190161992353662540697387404119118436381321494792511478577364199270586417119779199795636888830728880858606594710160740413288454149266765993327926876391284464977627917378580894258185953387803652992795269691081850693310447083369121529986399143510757359391320295417773766443235422480405247043026189005727082189203629154615952748135842118841989523726273530593769159280178824584742465609147613004737984721218916037676981991149878050489535440286972619066941160102832723281993397113771220661630086893259724948243994879726968265051174054890277555125088690054088378976213134232626127741818658154462123529111184469011563038685278823414229552693891123165703644426621123738853083963234272729361549566029989109015656857643810382444418377975262486292891944460605797466235086549944242039998423215769814464380520361266611689514181098253305352253809214048282849656250481120968300810976997909073818246905663641871471373689614445890112420292516843313133669113500181268997689133194087743425323165453728384625601681464272062972152220762859707136835978354381169803695845989942132016094079190020659838745156507968829754611889813144785771721324030795531666160164760230766635802852959552010543046829964076702303204823023618100175464976806699694319494656342118522261210167282661831383155787549196624500646179783450644799405781627944267053540873095640543969897962464512539241084680877200335639573939935838059068859161283884100683994710792314114808978221120288376966978692964573733671877216647276108435633747693170754916765787746237654112060361445807699939427711189538726739534657699026089737763368863502250445522150875450778009658407453512690858292582726670450441422061758167080741860600481188846395817475306875519659209445086806725186424939329346128022662460100711651332571614219012652422187518433418033296966046385484386777408765459890363256990960238054507438403355977623180634161773533069475056178983424990359981028138707621545062249232723365198594706483061932905352885847534409860788387693810387446269422350538051348756367823757679830414177064098676554203144538752064798151942626601302458859888113600618854085960514376687755173630530535333454442744601698307522979018272835921642115552834810456185873986403865737503975730106490551406035094725322907686497785737753316382561742701945853042123613232339419800382134839637689432742857664427026335562310605124227047392807892612330858975514311481239469503983638617211101997321525002146832238155903273569687921180947084702364489550315037178017168345464056597255491756442318444622188709816611201773236664913193684842793608494599853103382828772933850119706695817518973475337573059239749039082977937520111389457282738532113124597681141318931735622951947516725150119255160689484527958277786500748339391443414996459495384532827280834431307209357083771262781582779167671580273905289831984296343931784131412895599480448224484101053379931207240864261594119260644615579356597205573932015309949889624792239556419058687079455981743980758520892546804501682752138332261116964842166470306885887171846550134036767514151857174012594313741893136424700961520533969660148343452869712910462919545721645633488220712451030240927941347020772042895119770290790354165798553069454919163902114721708144065411395869167210002491757220868474077908432921463565380656653140960330950248637607967162388309472625508169989020401839176444344162661706682231475969340107127810765982575511976410601420000792519445122099728651372523079420980131118389670642093756481959322664541019733545723079325936462890752276988262184776548863727383340280106694564505118597798661467737600923106620309507030181208594348331396991203482921424977148271233802175607016640221239772155817593861461283492112320786765706693196617972990605324994001342512937028898454935623216962498138109421801817060146718234190469072581742594062474132224333560181335184187765655073275273149745445923820946005547636354967375008340646490459504845956241554265854217254660479033408371512872534615290059705153560594584932134169180948334113759071895550088683785850179383910950773552585539846145511997169061876537222873637548370915213487858674883056681475364982143453227575505564738763876176715102189594627158594489389092101289504288272973191943355903268342604610397525864455465716289193383484179990874644699707541261881734675359888267384740760520488121928491267756952657217608486835879598151094881922025281172728248859295152167524611137263470683842535706176742453580367356982152632737950904995283559157570063932401988491136085160438942648522447857607048353244383299102801303774434234908029344716760290674680829743526352550065829937860599566073968115968515079140802079606111165205034479707694457341897588365517050404565596096930912807264824524025593741243015485766471366935758266115294734638896532428218746398510578570732055639064031709153144127941983100008176608330759984964896066043687993221557194665627805810508737103219010840138001313386478177234210240371970750410632227912717508128780645100062822843989950986545095842199245578960148103261501266561282367436402071125164998329286492602351879931659101919445721121139936026263937011655421823313418862756038601799460057126564253945361835128006281518434757868557254970137251442366980237017992077659172660330353733648645389709816081872507540291525355300549228967831633131397234336972736549421253318909513805111452221232975424166890815762719838239800363050463328103482225644481348446130181521877047306005355727645824110089322887182309118899614376585393347725812815729676902181240450340471894546204970258524320014506877721893362382460395861386144261127272415685879764252350197823922378048215241350724259289240809811235020361575086712953805349994148824001077619809566539487402309920343300742961627216296471543371165677523584336217548242057021442488827724411964030178004865250572379545087584845810490501572750124219342613159833666967888208553090900570172817627136328130001757450035865655630022238225929656115099225575612439902508923446303450618996690910758744553635054179747581249135706216595578398983901589012499179248116159748279699924826831300627357081788704723744521215064426865865743565228585023160483501303324012396829192683697145081102753881319622237762837516661840999498202212859820620352299920357734580090050548183315244561039950353142125531657890147452541308856498288679941389908037408769886098586377497623016809383232103978997439534739119886323967400949518458547190891810978948989643705084093137727762125521777735678078198883814261261226561223909429483882196446017583496022005478359704820250036293580723521666112368123538607040586390381132700805953111743189050815755046481460698013548378206182472958814715125242645791786758251613372415708738573657963214675782543400819858819287042753420273351777689683557524500146968611824252793905337677286802989165627705996703153258744310097803170273009529647233155038855107149917727510637020781755652114282764054048631000008220963408504519941825821125349576120488294715009683754271548895534702971122639511456498434684867323409305332609892403815566266184282799736868134009249533678378132033073878509652420502170963333209241104319923339916003194891745362585296339039033412218548670243929755868318293600336915171641777445197239837432198973825445119787474159261244215236824096340418737454050247208653159062208367860482391896806518516040117313236095317945251915489403607011475710788051453681187484284243033903096402489071288795641452949251439021829588392023192177692281898119848548938368241526180694529078882854968748221582428341501149213118172272556917043171444386102181054375982130543816296499956307430843885071984082533782767429014782332069701682425950940135663405660785361712816847331431004055544387328349561317309521275308985329435438996874388109444871436319924892886833038289037531411037622552248945900759553869564542260792754683605942160462388139394728858093108334653444548980047877096886000653452198951328481937952752979186311134261547154770171059106727843001576653953748258111475901169837622406135774118234009054280938297568244941877736136649486623090221987120106488106433140259696307453047848998521011147585286410479472676478228907000937869054059547067955082183379483979602905748160094521825535374948676421308529089044326142279894234131609937698260721273167585318100253730233077744883344115363132355029624245824415050948760541622467716915207606641634072117235071320910189203331227273253385046140903296703610817854025802996568105821987843288274457475933525789050010746167424305928784722866103103885805980054663722643754061694815383515952432265136858952373743145545476356381736923658420130840923937031757095466577547249452256505962358361123811883517593015302341305874127533233469431976246051923368149088698477817155277572292338322553822504948960625929726687085481873837180041499999116911492468563491469749675162467520148167311558623059352298652571134492914208752204152518553957678814689528385402300899218666937364553967591430680897790902161944129351802478409974238726735414683839013344618364870435417730611032868006162098520980222357205872730709054694730206242300018487156683420490029475175971043098597328454889534787334875251532031146611178202326304462416558401050258723776191348363018047522354070082635951914065512008188992014304234240315429591962518727144752451342374520636128864819326682007875870519902932936512124049585922677513357022112500772197571665672528019008451423684181842601126162301010218394803747313977033512841660948946174946478911305280703675285751990603807140424795884088503187962917825946244127811049926514271053041856247134149786353096239584316990171602828646084166220943099888459183317503137063812739936027821024586074806988487046291609072493204912116281451466849144170626753036039067825857948923909712134566566480415435657446294588509635334922828881095337434979929603377132901854534426202300372336193237573237230289378382945646350041507248101233775429105710148549279892428451349174122828871167726682732612678341007374685896080558544587494013408970412895723032859304047592649766096824832021313012870180868032128033753519292177726897516399979686613990162020378532775051710365633097549366666176915540357520260487726386167192602982113849873338974219325994969969434914090740085961544226597788940261803741643010932136848831043551607601855478130201599070549904199232138744984652913463517782503957755891044999036361172817428382750057712275950044220077759583702449997642831742278843482216020053479152691070320529331580946633058893442289922546598846461490004954295261400905832309700035947164591155726464220978501209692912881073485653128212404760971754906046820506033919984264863533040411430424777171330630043674896049236914501749483647902634720690609713438947617695376152441527814049868460049169475957385351298487746109799861169841310656763709571032684565262992612801556705938518622165717214778629274451889434224438643690123968191311977617351871702925232612990956818586916341375217838678428435284221933403462065332296270051131038163589709361409738623863757412933161851504007943253899602171245278548678365038929051071928259223582713362562323370262493101013469321026616007934699278980001220240737485325119953877857631692599488771279819193704672212460855646819664392354843977695853874270477467073931000713626349930573950422568064656362030767495010237903594262700489457061502253472711112858725814835241046261829630013857455017883425348644569511350114896426228181466631358124663765932357690214080365206805877036083419437935303616341296919312578425001779759728434840281506016083018413988968296385163041835355688418553996146904640916164233906723425885482165754517146936580473963221325149288574838161505949227273118337237891494945115527560171530586175950682841027278230228739310376426585219247940146262846108202650126943093203864184392951702573106969986429491362493239912445809717710268137284920944641373928356095015433190948514204977061085210053607728512821927258213561544518098286809752902970080860761703662107249020893144230098306911747219082479803777288326885302804512649878931880564912645929655006574388073331965059379864735791631679277479727690047293071288640297849188912333025177901617503249482902836279924352653276386469886241833136927035184082176903201187380002556190821385327131655573844927790156320080681519176870105071586708835643644742889319156825195341481338850614866103651709530126756631301706466820845929935155484736910823562719501726324508096546209895921854780326308153611076843432394963326391324520464380517957301015553156109343228325688734554705223999701932915453617825471729401355531857797995758759908197079234404128853539620045245836054300325074734552201076733234297902147942417063760652613662819812689312051179768023037065065669797734790898960801656459591571943542673665289330796126807234004930606293740185216826239442821040135263607463321076384501271254079165860579972873121857832201370395438191399500761992001551003123537206504039575816413493350949385565045031657632680789699965880989314985636889580073821340774415111174348479082357171913635886797393476315430015849915685145198378917879882830401625980439455158386971224279555294997550194137612460531504143490760891153853834076649107732969008125869134294721639367462625627281522996193594127637050937571785477087511587802146965477042396646303318416049922551879570916118566836607746118298509099805300410236018905566043390423707761696805930609473100214992915197730279185928558046249969700344830343013824484305190108367031936974454297350540310032311618591410777617070711635092122109897081688270152381267615562357861055716710718604833278360437525409436064810429111196558940859196389807180064622929976750360702493057276576814602770794086767982727478012968664838020459414971717229694696004118794764348728724396420415537808549605481801307751950085815420685900831940096727835624043474041700254028411621593823724790690084695509389767536463662356897255251120277188039499242558166009295715201579319637076742635739768167035407725194146856737394635051213400991325595901673023030348076776767595535315761136055216269717031085934612248105339981643403989697772904077645789833466565443422714857489381113278841665739037638015533454596620181927574575740887055903596514006535276675505752329300091473056564224234102149973278096737901556308880256921617487363266695831341303142150460588923970538038450221787969936807123270268941861321640463068839365732015872613117477820409983107718243503206575332070322972859175579404564091384487054005474910120167068082112529224541972664425049153738976420560996371280691397761004270346284147999346311933525838246106779490376329042706361887906515678539020153494607189685683011492094791896564725157354048546310231060635467489023471838921033432268911010266106658459688435082331146388862219838616871474800942405878874600340663980193818555750030404116236549062018857081072297495919253795093978310097732448629668385923402928573869394036002712363513207936729944939986335844475925067343963390237798508961998269713624324351937129901257655962011937828368569569611704160623921119852366122917068753528705644993792734768441450456013022674847696479251120903247892086000674150182275914871025182094784726737407986766091769037610939007148765112003297969679686164071817707160282343189070887516783223158250027931521830162754796400144655747670946454432790115122207057716756387219916394218956626853277512122476983178083768920196897567266207747624558730162796879630515660412949204634096308497658076246257418157549014872790858975684079796450247066280226990327300553998278257359856144557728896461827911958962077872395710559626457278108005072748844446740279361692958577203812277912329479434971971705267593304519600372822643809633991163814204875214150801405026504761525418486098848990844918992523223986592270944154423698074341857559129763482669949341486273029637169442299686735864961340347339968610321337237011238345262717748412555848828554665359183937016532185226083487894551558798451178177551268104791528312874128068490561708330673675925652613791215953090851139236147545450409341406141334372810976317074853021242792208458475767923148513525114168446913856240221682272869772341961704681141891519131820688904561139581898487567178787213082195219460268760272629646225251075318024692951318494198723337710027642430492275049166856322592516446060210759972681009133442415963404531329547356482711232218304242529001446134813746837280577888141928296194029454227977230426749724009473578618832194678525643307667748012211018563719324038128369948311532299514834326560990023809065000965168444926618186101943038285012461723973383764364516573144450605325413064084964094185948634589999215742112846282485007506806267834522086447715968238112600293076328470026480032770342594127520056937943484472211332189167068083524018375014700980219834632369494692978585440056305244658805560668311786555263197764521608842368934904156539531175081118341023531378761941594867486212792469551800587072745725212480865630595228160364325536622589281006497802785846058932784709315313862129352265015201570467803998683953673569562753109977801510869482087467489313639724931119648038165298254989808437735104622696291166759032344290670741708115444212406364739041133213883865942473957059264421479176594002962329847766164214094811534399483303762591167715290347390807549814812571687097781301299115133576982221125485095566864736138663933465172207118370710359661969772027005788268750018327889470608984339935341880784668704580626047961857469591402478965568794302669586567821189559681669987079235962677238672954845075625786288952310465067166575575862069988662374222552854343912395660144288471585299889042512858692291278305143409127776282450575899792236378785816436635441291833051184687287818314295595069212101669597907816903771127461040647180756393503452737370674883094362096785181517538529012840482941782581070315226529878102702195011313511419296105289073815193891175272787678914079472428976829895703480008546818324899770647809914075564811418534042689267751855849229282080129306848813477853536246688417019939053541213827554212552945381033963589331328663742862411043867044068370147611302976723792696439177182978752963187750438684259799671277352480369821883872745902290762026219084310397693344092250722757237777130583912550769178541304445256777704017847045108133311347500439857552108917079526734127470356266633420045384275814356195106515740054953245382933011717766287900683090708438603223032644860729063047271546096056029252914273018127329914501795726435325028983065445846223762016124391404117900864212570415597447603930735038707673306434457689683324881133688663943938567452338941547219158871530065794375497605406372549076439708449756109854866233084346041788810707958392482664044003148863547147126621035624020445178675988931749091270645839033532945192391863047401014523782406431517337396959531931402612079456731816936666241888619301496887814983544538011886597212411372880975299923120142654177518429942937931448083258738847741194651206468230396648060396209388658193895893882179222154392713323049739771878878899652560178091657281955716028828570804500394335010584886821799317446035537801242611093770881518470073884125739541686201812001104533614521633191650012481849814788614620136462531939956568445814734344821134049264027793592476102386250509659440072121479012975623710271375382175034214482194787335014595045944644947730208380382890758599489527084746331237501659068329609765493875622798095776413460878707927796475595588034590572644069418331158482395082501591561714167278367532590973607276544174664079243768539126088882257657645187733955537398689894509740636607847648992951232832796936817545101817747499120602018337292479963058986429585909865602862758782624670061296708489401746750802720532337591863547916980682055150070861109427853781834573493936976061715341103127300639989552445502557253920317992718580018328050505526685236220470248026079791003652571432472396208140374191124553044028181911440452289244956655657958964565179768139918964350811873646883709155316747938897896517195059541192947884739462982748159754122069217034577154392878152968334316063106360440309630190630978464041249633631925262857315501849285280853040514081849853428295835650618875313908251985851089538521143312806645718921617933220042169225303985679801236564395124530812312270527905646277931576626892810197067341293047156485559966447438828449260772683159526316948614100360829085532289331630117569083926673818276898284996439462518144863238488506153686722693727637351448748441868887656703173532562857053854959987056129522418800449019733714244685475899995356226115979264355542829906761716280680698696471219353744254711780784331122729419797762277370816121450001912654909227851450740661840244812217866356939179653233476623652790221682785353616539751506414847598833510148461365873047425862178532485727771107680128205104655707171424551047252545065097017281875851012081870687619459502414334334562007097339222695929045510716650657064725775730801064970928554675260142764501263816286960998576262411669265321265517414841487889432285591394504146478535759793528185504665861059931087129448021997065197500612266991763192698555502717231256787544987466588464405747280722396833632883167919962700015578744954051796585360752737308310823930876102591961127443757097367960753238099124428974379421292506124932944048979386149681215868897901521515048599068857698242317446769012047872455432953540232369663683942701578712080067135675263626518562334616649374107915210598692036769045926384870307331535942974578803839077596210176194545446376433310753560740367164525611945028566735892960629502851620686461956199817691565442784516245807570827706578227624626619726486838105193107857112347178647691227003033651935844930687876198999884656196108324314838246973395896575619720743462972046772795027744075105893159271253004182699310572072901120361718388727728542139889989889803573232950392792486389711039603714959142806469069317434411567707055294003795219540708202874175026953648084291248495259100802144388499284928934290119108202061926377985522996342012193781844331017039535172355998105932727789461023123654252217734992071911970635228618548424421868310267470599879951330232631218163020129891291873697319093112678702991565141446242658030655840598884773992584444392629445259995355147776946216842518619471519652679994427501633373169582554987944533320871270818012266678030015900988984138706298562186072295252902984918198996292076988542005144674104177004364296053789580084768554853614298026950757020246639699483820176999571213685956873139231384568328584717069060001847274447877263652618720578482057468335863783155922913053637778488702244829489863253484050508912064609463807230181986157887067290632425850108275189734791359899905170264377392222320232336460425826292167197067582893940258449640090520056531977083692322796420975928794097865071611810867772606897267100311065382493682416844701595897117093589287122044345215496260978060459798764028261675358980208387017842747988351548337129002112925292689918100279571038390191413207148118424742501680500106330291043472038197040126946264814638745949745904031224428120100075985542492714278519693408359539156784164492029054977402094469334910890647126918093928228842925389049206776223162952688648168936973628111898180422959389811842516544382717876976233578544129198816190021443256460624331651291478353877639799111751838934971510445457497839130949939365377718412927883350181814428436135830448674918905877521683887631743611653910521252026942065748657659454970485237567625054127869172567950816601360976534457572089934917678229890582230903607184461371095177500864552860311294302880777093662266233297547456199986882232974330626832772993419650903836482968397653017863475189390376528037210990013493933147395754268967093981402876594655233337453760428952545488043170163897669896021439047657909561620801009654124672435684298060953044629790499830811093266844966011445977673912832260114551195681880539642536305778505420874285909338473156370542479317601669758326010170615405382225789883700282066808462582133619118148211897142543210479608338868018144350946540318732792865836069415906084268262003731308007334627184464564546370707437672845702646067236010181630581573509056620813788452250253022939975555174096276596493048052712527633671111254691709549955725049867500359666044544127468310862070486764232594521435886049811344541461586147273565144761686460342774500880843988490070329387591248642363907725740371087803043477558569968642408719437794273030632541131988227297834211909779389965611445911055448175596623995999130748577538246950969679966889961185443842598618507159511241428369088702686660525780939361862496189562748237107373086891203662572324309248163475409702983561819998091133052266917264002771443897824236933612014045638837968863651771316155745231893114090267684795570590780946711294983858858999026232081112458213628531612102515536400120434344943948574322514963850019302487074855951069179688437524805256479795875357475583726916055231812814461566681051390669790619684748063602144722133876242650694230815848691331769445557700619028795929416732598586661130545070128332134871047520821707733770913837871011355395619288329604392231255080361611366863599104832875161693368941160232860063700067808875448854415148681962442857298360324833687756624653462650017359185140319925195553761378922743059828452823083788729443724118244968220572213437449656200408489016842216666957117416654796483029770187146951003652818449316603769797754630770406081583924336730312364210681177761200835191634046948860239737871711856268322996164563612832599666315856622984620221951044630550974268882955309325755266420985683574081042380151743879045886014555367788680722110795232009448466347397910712539465013739361737045387254351924275104464230611918694193634665739436252081688453670599607281618648097470099292646995388114555322308516407230755434330114417967563575661362423257199535135288610487596275051811357711435213387502263036639251701013067201758188783745574971630298548880984442298587405662628979256842246972726467423723695533880814555539420553902960691910268848966891580273320530655646880865539247812211278321729729582906706586211193068288672948354587608510318456964338346987383910217348781680598004732121419223285333342704370287796250768918891857689312943312238399912626206352192649033477225513761124300031976892006144726488780639521821327276487508058727914408307885988152416227398618831008370204758158072069246782338990947037687132204256354925689129472838948805903452652702961690287908675457105230428228311525649800123992048080936776914914365620043536549555838698991252785632469153572760600525066289351654535489329668616308685322163717930442610870257058043370012189746978133331450746951502664075936623888254980757290481398621923082381310425411704015659427451407114982047797380406995299567108386683757578439379865373043908972943832134413954219329799167530403622668426354302328410282721307276809013593762471387645022633181615389931951074993765743699620482422924667192452933556397481565162852542828700440838113076915185572898625812829281276111188700101734364962418942212098356957442261652570787490623879074766857390562311216042488535936490407692292708439496776486663919592616170265263483427518844930923174768453911556288897620539633631644735283751214296798572879970187555938217071988666031120709406525258663210164387424238991244359193806417189149980842440339669391121175555105609981748455268466814416983624252898930650644370706641714413853185699958820279276440921865034176378158124409305195510360355496971661796855433622096782339290405431827172057877977224024280226910091929901607941982479547328714852042971910091408480446631401667872381394769494180661620421788652141415071737226330384802391746508034720961583188517771232537846978499775496624633121503946948964657894145985128464501461718982265035795586586439801188180114471681486827006987538315977868034869030674803403600895022951069667774163920824310600282945308729661336916308210566659652538063262803811387735741705701757913727986435969220567246446408280427309052456495272549315354917016111375391046315010922595499021830722958123548916616358629286536830561871328842746675152649286385691259126587744017301001694221328546365363668406945969285228910483936521603397580274408759434936969285696384767254099393722618090715868626197290145027172404280437215949478450159220964760209592200421708089395446740248294016422692669696103883624514641588674416096248071831925004945160890539698227010861624134762679696219838531633940299012748826134627869777925876760674993430191068072105330242685346366774923870586092150246505618993279847108013416558155734548845273318386532619559619105820634698856746833036577800662981839294619895793918057413221203795742858923216927209195575222698339161160865221184052104259642580171297280640193602255884616723331927062274043499920276226612104276772536830705473025678656698517767336040269586564577557611048425341519908353144345637555729070471530808853013431027521455438616983412493613985910226686090223165178252903758109026724423973420580439846637745723487012063081599097860997785837679287531194922251588296421674667533162257451735040447429755204429501964014322856098209811594186755853604086837307066827290842087861748669333143768182125049158898919872702025999741534719558175489477871226449739953296593464938359952668978322872433433696450039323368504814877284968617314645633990259207930882658631779569593129795261355738720452517325245467619730346029033917100305698316720231822193480403938086625782513310281535473449796758522045377464165251499378294895891981717321520639636355793374995663182502274651559786111575738627355103972777752885936843223434777616692888651557312798946018416233490246086466141377282856881057947805300416031194584655481062151420773216477332699453824385436496573909515668778484342941904303407874122367256529917578537977816774997653849596541875403199961048944384055340441223360002167227822750318019648349416642385364288237378362638143150558430810955616685943225680363957073883852310350206347599571819925830218270298095985013341508607993011098023590199309924261399050229917565659035501885508896985182856381119150397553176570402927330210813124546972189533037124182961077998635080399582460417281606954575545134679593894304005894671651917568269061858034437736452920653483390518796295024593086021656449315549240267050593936162264549506021083407262201502892427076968309084928062298338734096225800954097675518561628035217121612396667439981411665727041970452162406730186153744273786824323964861137512709961087850806527750320107468609360158211284064173684220277602538116792261049398131168914660879200657568461894177062925539644841728856758933452699732347409551358864901587213117098425741265604737410878332961774628237234239244577629860510070607095934979784524950363674764513898120671623690143902993709589453270125863818378259314318615552792790028501805178754749603781749515579799429991621321327800706120270292248723505374462783376971246453759880515242537506740355568248706114230153188941701786155434953226430002933347255708972715054951290324442460282479796671896998951949386660286413132186035232812660126040518518910580860300869000541548527722414794038217501886124054063318211493186783165281337566755461351588042051112457473065879973180474279665454118059838324251590588993957761747897270162025343053670270348839953118462060415261286642761664835612470003163118804767136923883516633545955177124381995494065381781184406052353878958252024967940198571751542540558975185685849900093817555730110005105343444741067518012979230092705807172404596797406127218579129266602624273112738097655444523016193827698484475760028811127843169751168860842158098918079511610425151022607007679386309590876791523993942721402645308256814245234145503107431857664311157573682889224007473068448221521773657235816647919320677739417937148112265728551128430707907229796785972328381237407815471465404341252111150934792122594222734621097207723680494804582149927341954173539632334601449387123044093791376917604310823452689499500622233697065527174066741820141716349189807204312931213877539482786399334686993910186805363577896877106038233229265451024247208092657052625681819619130018358989846565903829479562293625092297327409086063272387856025603353062229233231747367453224792999580445766218955808903068271969534086593799458802252449042280393672280247620247399472063672072939111113337174589272573735278184299500187725082257887668144388997685842576521021060465368770797706429504166844108125864234572356839086157771740309994049391390753571422202552792692831152496361198712301535526567105706323952072151578369181410302799990015744860202713032419199370847000230228770496876340538233002692714378754012171911377636247317418723928210877355994579255916333537699838533154015365549774299315915870758622810790117325872147896846943245610690728421057033950213800646179679499765718568352948587058052788646638491545028793224196855490638802679554913727894954052696695409416779144889345930323817122802234265492726166816430711109877301204900246289036388579493464572083656957319944060751862498085857235810096321904332327393181353416376491362849325616892486422325839032982780731367849514780145883920556559349282066404768425633467570773338999612855679338128604663796911276751124819549980550349832567206569123776171235662796291460314771298878206192127061322862367957620065976364339753514984438146509826216033347593121428898370989640413362834635967004890415156717347950946316700008723433944774075898287540393207414227016364208376563704933926242726825110643664019278726674459017182851925746907821535928124443015289145311418238775862984015440310584813947385139887239847518690867083613048175458090584233850516141679823209867521686806439375076383591706688024230090686850116074401233558798729889643380178526844663867772255914655447675431908174491380246434503652207922035033227217937404079574672412290237940642646518785276649431634238062273214180425911003685358302560796841768179412127770196479195787419531027672135372322588448489685904431407856808498632673150867468144979277517725567485160536049307953339165286957135111565333956766745515280109176286053227783727154723822717742545511405397231670277386940246558976335066546931049183464337526773723700880447367855032453951356456246725788721665314597307386517955009007177413152174074552484426174651443064320440765407503096040289132489019144999397150309791012234742564522878121064307608927747178336103496668587414366145785014677653366481692790778398288926731115614101465869206324130743112670638118500914878861274699792713096490444735217663710181764738810977007890273752833070384846148037255458174016043143123030206641522944867669803967497370244359415930915901400992829006985328107234956019746604144481921043975106281455056660091125688676305950400864550159053072261301794238439535858621918640621156015194171818686863141943161588608835610567168637636318440876284805035120181338858394924259499004163316517552114862284386518994903975743505361586460715788021950401041273610029538791495584935654300376696246197008441079698143339298292393006593684210945545505054556243645929029429306188926789370242010891806455889006093473912147387260454750249180545484427591377953426274399522710377016945351262046105451643897592489851912586878937657612170658303309930601728140629270327626627231900238664750220762010373513827136131106039053834321035931005138358178639770143079307609909146507031773006158923260364748745478901931692350487526261235256538334698791271416591510266913921372748486516976178063211475617069628463591855689314475244825132828384731147981776927809259549876930422614257012861052568119019672228523723564070705104900044346908032529782386409568133719029536762705657097097058898595681050864324171149943871529290623855135818882562842490236153079539810551100953341835388462228849826209387577311864230419227754613995707491244318735050331921266552744776148306241410987065719954977282171915095752332822990823879496948868775582930169732658916659273048791258951998104115842402645064404798595103540728013868006103613098958104752209292593634178784469793783416368735860190903494181696933007985979477122064938022169595575984265266459541324066463608308864689883834011920833501036242259731462956430935606156275145792577278237927785373063954123421852068871975167379686133333749743728969702454991268904787507804359278625074358193041115552260931616740816939091682417221793192126773155393619846974115173807425535264480449979348038707864634316503449143869898985289871256683839438962053331649568084611529480873477948914692867850287168376297437306968352250044437983683844414536263010105281235568176575630126939274216404998375470877513230772812062781547506685791335960265811554847790225680971986071614484350195151555971958776675627778138281398528471101360692095699426529608277155696592630997359758569109833146160910356992542639478845684256059553638921083063632994711496424381871919469049576640340745652431882031542212259847500558795746464179321887763279773503515716352666661296726972107448126295339675211125921293109814364874988659904961210592368893186628280369484290980903562014456446260319411706285098981816334168434394591382920337626001815404484618332743221438455361693250329679213799826873155788213245626694963740183861339409655856582098663641291851269527296563026863558229597699433520205793659556569572985366189463519803973818007690029930361291207719601966487015134204935596950924523932247280996782653691711861863512004234989238094941328420078888493184758868590035819020366618137480554417079486157930088783837501818230904952171592860520163149834029971401845446376103880776413921372059645843863825754881493914076917605038359900253694746580877558198665208046872899112236295405179779487601723951695580990876066838354421102026419694930542796701621533708036945222024436712050700000271459177350085129526506852581243738542345062074062267673873704805943546420496416103345269706903326021250267135460262783517864508895402385507806548555066744989638463248325570125072108005315479927294975064928729031136497787487319174688576619089307311908502381541642998847350624348860032969309846654991644853831502148986260295513279212255037599744848841092751976980865070601141480228290378444395901365413714965477208394054316152803297445439025242344522635074527675249123721305552750631641068179904911897932257486432121088580455372767143033109398282800756241411024025387526762629506291415609951501831105207404899887332411363659340348624262462993514059936841040849659181058354564309086931822036169832590320601417090434990960246007104853167648729843906634646791502577361994935320115402422922164367584093156631263314789716994468670460989179186419528880819832644013363398096906557260747737314866607389967456825032403296448884120490923026110380699681943422860927705021623319013187886157478419014600564191966678997346661344675598466796874453218354983191695322305610809755166828830729483127908080349963069776170173971372920489298135824311771831280102083968962722892003764814232083016561494964263356759154284134046392269011169991699903008043394276386861963950452770854777710888935770436939394513850121378568467869957788576257617915079389734979364529784751434030912564364383864065397035108184476418262543224078487499751388071760169412728889745870071089368096039876687423704367757842451633871529783732797583494942883312168854319300056068722692510778415759628508131758924230760545166354068369637304261679651090278315673932527295860472887047545527403327810250292299351802421973710700457981099755904033638101516258290603506052392646745064162501364329236865716304085510155615822020337080025188219365738983371253548464977444783151774554643493098745741736542534215312366123952375749289364143093472385222983038572850651843395806204607884861819858587138072831424778637700526944419059880662773719504431401811246151238285521615793921187841873811270908113655653086793455998456785672738368454745968514849316139663879519646532551570146690323253479367922410706384054084265656567117697073471221723641464463221372844133870188625359208929540773152661037686780267301693309187753755067068030893998123158352506047844428787113054114729986207651155942635147606644308112565907989908125990464811278653962133155761931984085186242251131651256368068090023643514283904221338907977685468875664374587005262420010276662927542543230960074505208524838176236544412289865504000399423143821894650452886749065551403718947488126326894822999373615925559833952139286601424199180284119574660414125010616305883579638469172100758587048936908719577707744849083988153341139909631764662041415578671173467305177036056988486746252598206851269639995757776114422427817568172377725147757612024645327201135458310279221325773912618412983193205155668633072861207756909113654798169379899512857957871494649737363439812850482423143294617313384404330751747985203747976902155539575066921871213492276042026869154849387784535684902205338996370712616592217322661724144946506074061042563342837857815138372277645244047414713056768938137489382794130286793132252582166317483761277860192870599603404843970961117396033098358643238559802072991308446625425944661505380310930641927775966013313183865419271557629066632848355382261308096018332578158124217377124456699145564032684212650948992300323997222809888282882291704096353794402848652967901123338329789571464715803153289976786142712555958313338256374325755708766878756556226232081741308852810583459544763707161968584102358010040409144315731566205458318250908462936161176248832163056334859449971276902034632119239222604458238207769483841395288584063931164566573550409969300322084171240988922237437691062449213089907259669865615432743532042566221147613055099713473441952074392412343750320890112024997838592407639153494214312951833745018442903238628174881417586297482798231322206444512053164896161996595899434360203289350573048432787925665853036386373305432814593228218405614870962466555478748817150123870416723878238257455864768871248607601584551853562989203904551827494853822096389067309050705452959475798502366407144053639573719537474578420641697726182498165181320365027887463003293892769376347883932509322814060935806736529355593884896700232083654782664970301090578421127267001448273103267405693274302955414145407926574164524544055582936795727859810174788988970822292986567678000180812487370378452546580985343949921504209029039698858733673118813295194878495174641261948983146998558602553791500483321838251845238404641977227381335197245713074515110967970319165769951333614864455830585453207533224500090155081132177882331461265991459936119882385820649969999352361841634888933188285831278040860432042129816808286943685287323347276908242872399779512541143482160361683987079462500222831256193181774073887381488367711382067566358228944198769664693907027797161978037683895554883365353723521121447946440748978119636383111693639113959767687632585954372855507691824853290665886535951416794714181127802431155257025893480371249853595291221891947755780207407990773206121145668166440885626834933240837542346859028899484907990322592950831194779243966780642525699001919649210179598550468749366909344706005676991277387421998448752906358577514274541797283047526470148519113431866221841204488364859187184068736632461556981966268057932123224272621054575954115636817712156448208959288127712496509386083324937972159870624010704095892147980302686474207430901903926436000092232497974771303256654943005672059480696051441241911509605440541692964615674891650280039439814270616674220786163909623110572292860263967044689691028367448912673124433394180066483780976459459760330214474582587720329026865811860098505819360061553025683225692089587727203977934280207987229639385092651163946580912466197571742000080311458786659736629343670534601759886785633242241700894827216628725952956741388044467200428541803867690855347267579007601049260866803978836163651150389501334732123955495811298353248994981370904741650931011698038162167306030550803057010650362085413788402594124722548474258907296957313281891657432166789699314347019303417070704795838004966777980067999928002649326295682282606341327488853234460416208781502736284243117368568330222765490100302093110706266075151732031784430944191130910853692296455920275120904685790044769074712571950584238335387257596932566705046555557412659728865668523668872021140542127881247720641793332883095811469021758454200388078404682473509920258122596250780115200550393110207074364717415374579133076562845008684742382381246347681855546326281000334535544666516275750843887365112169388154880944672402776236589980152153298457298746173193538766128520295670231351082724136067797877735518966327624147359279744836341035251600412744018124309708307036727688806482981625054868278656931293554551103225019976996790605232355388469176358587786817164684880685062935205131051357247344504600131084661565803055322224108103597816365486901361828691020345344665603604463339020585050082859926528031813079150819401099689854163142744988549796757568044095844586247006210896782936775774588353707492551958817239570330773674663777853559254256971283963533320784121644657156193671452714002557043128863714127583122058323499792649398215666169103868307111003979164496695550334551737509889790150159831646567806981101937428935298055231511434808288182142503256246023147355159417101600842681132469692275819707675949791803419988708294999532396462195963498264975651128452907519894376760678384549021151629390556869138226670921421661378838935334563928831132392975457493546806705597646478780490750766757106253331472296531528128594006915487623115987238733733974369899436659953590606472689045809132244090487090697577574932007603450560427534241932184578262815542857176159804997487453522581731680687168336577871581504279854541379851002251930075338357201877397513067191133684141260005689490594624713000955675087264223850804979483049892700490609551562151316314680474705037664364463891279702566995530685194691311828875376364409685853838958851241951869763820145452546944770051933283723826399438104698556226631915932909003078983608649056573777240653059523111953178923288606711753331424107495334764190408740947238834423943718572634117555814645605140619530824535513159661550330509185770820847257907792297870557580748997960162456352989147962673438910150361446624654580385915255933657170047942402610162197552603049253357051823812549339659932519491778529209042977757210352891790033190311318070834369625829550268574084883390126290161140041508390736382166228530813145215677031377104584997632579783286531940225343428997243460776979407093002050508417344006049359591025574190649462055815534293657547548236013820803928954896820573157201448558875354694921318445851520769383004577621445839128522858134450629981190575038549556465131941356633554384884107243473719450149491879719789681880680112454396321652017358627725632059335172221269260338530126210785927657205669183307957639115099711478826060222069868923281215868344773141682917449080352066927375471540742871681969746079793883140911898801460990728078706987777077774020481825730092500225471438738353090768303780633694920638677918572266347156498829236244849714727871818678076575771905598927853514990531750174088017661411822696696210676559525199220139725896571903335742917137825855870774665570150593795778433536527441750170984524097236713002884312458678009125604446893347854468503872550204226745909425326982997563604953304665800019549980287335789465123512560991038134722655461645552194945832089241870825924890799237419511805864387628608206058737140421623429111681413846665858467958613864320325107723302839569038402778272198236150955023505144329630240393116991114207941179979744738253799686028487148262507215223915428831586199605210654063543467299052346197062124371786400280687383934756220132376768886584710324760186699663930680340171946604518151859101516848787888590204135804221300987962811611674234785616359625795105696898420707412142187669502266492750506815222110276388623178200459407411944784706398060245913739912964416811074370884777819282971467437764929413087278852466192581146506183020590054733149154042949354631933212313398081306212811707972071468483222335003340465491169030784523383110634124647429039248098695228548650145998055642040636398004923699842852546784898624622280045455398201334509718422106214670149720396322208257676571950988879442135687506715432501967328695809349134544878362276420405739551752237732036170124384726614707717277999317104867038293095559473236681866692304442582539435056058182309347414580476327540543566873483217791414310311256103312999968244757565792236554924498168805100725256951431370564473217548923809821936912512702690279490646568361629291467338307853951793813092583332121898507903511685000314208904651874475713189154079552278207489136469095538338694219140362688882747040090901915810402423812567626077919049545335408810257619985649035194555923395670995403604197668029750652382216290088718062645349771923897335302870677539863208355046440427355635633347866068930867222788615004495788779182251706469743153835218127082897926518429766830120818346654898206459385600268240063696184520478240312012905538282041392560716615315808227675256744021380745842966291494802934131660560935464084288786212301452650497075027697856707575598029087330197542228948422773994461730190716099881420509195474666811716541082185924007411044305045921026439969183789851060658614171581573603655901684614181515932270267173314734460661209553632353107785790403775889145625152133166679629351951031171782673477312640120589236596055140689775223591827840929548826295562113594323104343430853427126886741843208729248953911657876587067149587325755238042877918999426051391696930252836438254641370394620823777112015990915421402785306437329219720002845330006200732319545895811973982699102378685162259452720597311743161478783000990966884131316459330163379780237172401443521808233131333730732428810192496479685866519512826853522808537509556554355463977637669802807346994373348783593398958537483798958290557351593801902856209298939138369616245795828020407897211846154827435174081845570757738016473627293899760149312103586542087812576990159092809885046612086210749201069482742094431301575655436047912977517980711385694104148937120459172785152290254822670469423205233794260105609350029714520984526414864834175801124363176452140893767687475084355067385685495277437138964145904772186860633739767749107001045957826161808490238727417370349744747722188314494929168361911919002166187966229464724012285379769880044518320117126304223787788083168680710502000747483558156052608256756370694592812969463271025366683919359636452804471254415859159725275467465427066137122891169109029171090734065117147652227797029091908064990322394526261329835083875095998029715785950165202362327248090884376591183778867867442496024997920034909196578185366804776262142742747945933344873863282852236232490902884261240252933661208661591040417145192776558557216850820758047919336807536213971161282849130973971190468230632915064073106967997476937223212380977613263826205592849746627082399407316825844213972622908892902020444707538488709563105615766643344003803626963673794720853417767970538101322161623879742179211440477428913741895729130392058517583586436910979675438898433633998302651968774734031862256421911496216967376930665046483288138572491255704174916593163040596255726124935557942697536464468703232311038621064687232512942324816949223849045939515759616419238037304804065590895448992004730921387359074776451303193103039502202744192559260769731368743385313109466377205744647135951019751162990069764125984846083587583474958226456137467145257714108703084538424696477037194427551095267448690273075715421720954921017721624864803972812452634225688275593010950423012359323105741419742866585960673537705533828796052308874915052249280667303395467829556702794041441362507354256905173336904277457874193011294886476909606488002802026084275935090890394454838318568433137701300993171152442177996921741700893247355731841524028623302595864272945156089994603555567111938379012972296968972016101615867127082163869599786732054828939505192280995191708077144520679799574755580735845766964515524976217381724268862985029948655971885708732151383368754983292383720437897362783411364312294927611582746212460304671928345082180532758489800426823164659823745213914520770208539980178619448706384368936150099433659952378071489481570195360671498367608356017808523013481704710977960924850965003860393821920592916990575546206703692398768555859950693487553482853635581737404810461349088228008058767493126768239303878601164784548342932383921968175254324844910361026991332578328597173997977032842685061790408882904822089214310774296821821814017052676844037234171277560184594971714579421930208804006953677778145009409114477798094400142278144243279498922399123783170557624291299552543206397745047566680987652836733682844020518871069023776953649240200546176522357446315364411282793561583584405969160459616483609781632876654566655569624639768038389606474887813566224436743716998201103049544998399372179484093955637479534591564940838330405182412177378385075156090356846549516507763695276301146359177838655740664852703159742711593585661519362094066737217212056384834363199323004132870463541069709827494198350181161894130584384398712588398060703672596221394996630943148076728163202517715704732687262038589556734371578817886177106787413686030462505329109853162708797580812381636996657749008207217928199872175368393701200062035779066865330658528453765936302019081543095724277982477465132381336012929745603812575445556164704923599531657207301355091320582993083043604026612977982352010830773924602549719113992840320518621017773582683901301937215690009056253107193944090284121663624497824692324285281698626623437385854929038512205816149637844369889663655892685263324117536972212283451386277559897587512658434244968839124909537065590868475144769843754032867657436488623744905575241877884489105143775344390144712767067005281759569366087926392391380022218006092936904037360325933877616886952476744070068342133550988556843057329387632292801308329931367430560177658962282443283333448564119006289624059802505530157520825744083338282369011613096682870998877666995089556385449988470981815929469442813555441659126065184061559106652748996679758112259569909540006025326084937530707486574143955073044119192413833128921785006740676540781465621148346277336962050972342350838016621269939020167174267925982186038774929895159368124331716983717572362403434389910958640862889931315232512076650798159149710138446353117282452242496887060152553587256041470322934938689541127844253634308471778281536650203460660735805103625197617828556842980572278106484660647046873995131400417525160865381720026004691871207391345130180499405819473957002097108528195901297842732544195369962624773357848090571618482654011868967158045119118795496458023097271343170993088067942648281577454269054921638241375442480433058277521816061646477669038962528266663393218911608721625162655725202980971222971979740123356361816870827986821792616967741083206621504057771499730868572302620143184537196781797787484682598864874666578386956870144443540866300228628422661283804236840631134463527274079251405358399259787043961925269269132465758697274148210716736098755528874589503879935779657861287919687638291357848842777221257042286946810991149477809629242244362216558433814166143175761651238164651405846942396542703543763797400251337786401082943008377588852033688263063378651287509718480093982938663803999664193534624664045137921950588697169570560791467903099970115293136471427128322474047648173894088866661932667810636232948778582566705171558981828822998337280710400291327982594669922873223968812823882370296381819506061208210724093804994049695411650985209729662887865221550559304339774730857955258651414147981012046454757014245717508734607762404404716355127950995922740150328191590530617468984445885026800523422545624733544194208965115845069129209024091896690583297414188402244998582865654604733078013653588748316086100594203451743217013816658971837766950918503080313838375785049169587730635191798293746739410929283298046555447416125927780221944872810227502079182524404541800934327979471233031157976173422744370814650636954833592405253980883442602106460559470952176745425757744964897810582546873970290052053223845379875671998358736864355273158377986466277584569704007564903722554298823275771224558043518751244766035638602118366999843509749466245667358447732407279202616142541279539777669252350787816228271018586577983035996108324339231875137255562834046169019397319072599440163800873248433188427946583038189169678613553631772405446255062821581482018104544411141948009938191590528951210675054123263200721789714585594586050647970294264010551946433632072305235935275666180583719756018001272141123350184778606137908727003061357828824466704920029169786846372498756137781707874660005042407410971396406592851278478809934457371611490039635043997226767149351547208172538186896781732966170730007256361322672638435940766625372640872850977943285498740012682542616122940919932109859724610934169204092522226681379164003700700682651089457460098125959598244469797750159380959965753091370281412334881607413805560914556925270019318221800829066593182578812432124669699340958566660707195939009090570697743882109670899989135993696066062152966165539354608902303832346541930268934749218221836747855323659644047512845031933374857722336154141704865210574075540369171394257304227825508108580398336459241779094125786689260509475059277545283047604797228237335693998343325087699917650202669813943050797646100241108304145052172736487989019740624119882057610201051544536952764942791034533391438395601184789125858509902386710755095899126231433088685517998702025977088664493165846386339365998553234814031227512880501175656352176922161661408726725550213638559037359688656750645828303284192568716022732289904230738534555692560758460641844195034740329968717136932203946583573953776622643668661173378621815278471885682343402120123565359017122799709057432392762793982287214028879742974940829495856505180891390042991713746059432155213380878080803768196770711717574784552482617171305948071661125319500222980295310129279763609135311592719476219207314587394174599950514281045407332472939628467142612483736424208996639860074748739704819308972277111754881125800774993092549017401073437979675111554021625879672979511751970948301082017813892545083775874677983007175412033167451087238063475313883422904125091170828056943582456078372242139417870983292225130305129261208044025344622848055867868546384850720276775114309316240860088704663343674936785986683936651411844421964028201081078222236260265265044202441371398665771158075537600015193956751452034670047689668624772298125539119594281768724029371656577104321453793261566190594931786425232774523425182758589766374159184741237675162125118881198724907375310402153385787126721589707228855758974602052681371982186386637670344959505503607563455975529272625874428555858886978983159297266132378055383169479249338791700177057722903387573855106073420709971798498150712367824743827695319327604441912253650476049641700280965886821176938665356963170863596764839354533652473973344489051534261700401693570815291441987266287848486297425684670525782947221443372949614586819918943465571680823660949573740320257325894107225569689190927629075155940786232515710104972282815445111542856420870568975172466114182988070760313180659331817168740239166334241355322610889713094888202482503003253297541923514116000027498662453278030467875668741653221201306091697321390716485765182591033122999699807026494779022976998587232555752074831797487400668847526190432399195455424084198655792483035215945666884987445861457793583436936563500819098445082335455537954052699457403895185103232265783779518499377090784321534193528187693394023084693514747790810350052624926648526706726258141755667680867939974296465758913597776997925989217135291944569062000821718463437693239755439648435262757796166886872290485413457362170634137319082403941618145073238529472192538930493794410436546929939106182612161887406140322434686854008582785878492116280788472830028038814556373958312033609967714179063036546504194526234504492490406917517197537902421794952141791725669632232510618995951434251684863225235196815363215577729643105706038604320950965852680718804422393362833100572766923598163231444971579434862034289157248032411881436503691468541925586336099306426187902059057937797241604512367959082111513888306042520650238158679372107308329393462811351168826820669738103768352947812644780530987276704651502346934519195967109110376602794186903609823543135491121660313187442442052563485679301395467251780632460494583539490415769329532548033543917053578510163927657205876213717182234934198540001889786536408612756062408693614495368191529259191738271086240230464314226892886713094034716605728182354224092366694501751755593334785435932077831305316208066380527167110283721714044113192177060698136482442618778507981961617627569765719444191499536271597716530873664794245522644308545808717830365579629938077397635417821014717290766189436805833095428678456373419912658821955789433642108525381911007577817649517418922901946340360320770854890944937238064317298622130475666789287184310204503909177849134772680186496392479961751597512803363698911765006992426048159138810719078420240522796635863268973899746581141742441885650407561414836047030813036853548571084720294286883996365392620783872439951934479469348718869874364691741788432212095580188778160362297287456311700997273613374242078117415655205968575671979401700763794361712051073697407529077858335908603750872067937475097666778844840024688412237764670981693427450479053077119462708739653866154281260537882667167404565015917455098660540093055905242174010820057718983421604995562608080787119967667428204104829863857841912075791475123574898145769059274965506042086948663353335244414040855348869501302000264848034786395794286097105928160686198416629387219306631337634923024052078006793031438416815101038422346863457886522874081345837217205648518967695097084667065313087537638714788273622890805328084494975446499672224713427983546336271379153361052429489312249731658851584664608345490809685656911322997820612570825546284172830803630591397387430249600420926281989455647462818724485113573301237211893628257436836562610784639259325125505861908683618200207052833432527815521790920500107693903951077059488542811035862426765526050537568628772415060920884171049422173137968388380074315791802213804540252800276903000394193091116208547744111560435271140850072701039179919031211358592871935553051612196970281644427072246021990763365448490934622179668142918536001260813996719079296419991068800051800138972137920792586619853549161811797832249470145141508395403421897508646943829465755608716983571098282865604120476861853529869685470339352129275972056042571707755769987265833014599794229993460526791530579641335979484577646339589154698429436874845562732163666224611552863580275801478066340761161063962631417238425141302269756094776566243738922323169753782124646977513578613157631695698240588587768200789781558716569361356723022047509505325458498952774876162512219769751078638518483760932956858496568938807359782644553180058740212066625696494667376951113985510309844122947513644951100592868509054681238139142848258261497899114132107129587034887617707350933454900707974923589961298826872819045740656913201767934012372552459856590935158385410442960475538826329499347669823731300414406469168882481732165972310686826826691196515580932559671117491679340473350948306979490545914936961103128256822970569649951784319855838283497503500223886389730008199012798884973242473835138661323038731081811550458488568705875467166556375842110567292593579463935552080744397502925500649815726809908055666559776946914097376663422340018333667543061485348140461729615702320372995217466608699560852743585424040919361092764687619266537497552938430125501144752966873664299284203543580318135901629137134985699627396648286746439363987169612006630995484787001605185546120324050899431796938527023840442960801444362912329448064413869562141981466056787664124679952084309255149504403712296269693061415918279733364034968870082162200373695733310071855940250862169949136759940947962699227965079400453617174376756618625161586281041223367143570315123609206068564471511551983261467070725450563954673200320477672940944811478806474183353029288043495128133627481186281897240536049932144455796652387606618915458741452973906893090226535526876481437427079854931267721843102102758597144314260580899228363019293752794859196504658895798042772252072321408281676067295359676543851228297545254657960771022430944691641726306478105060424393799325215969079811028804922685343017392336881398669690713218974539646290874694707408367042907233417917894824616288884470720277996252981700148922014452503434664965462011442951340340956683841388178036821335221771485696054364901580842541211848426588691636582849871811180475282822702095900065594942908703344056109863211141666762664489671856119347780703800212980772841026103309797755793753855987125657918718713583585859784087274370226556501245959479813729008256122582067564552625276259943107862298605445409619258332369927916444631444688772576177469306971845788827475116739460648102054613955870837170866869780990563254800188206612434178653956413244029899417608116329735224417816713998837754240493679300450788276212830949624194202031766303978295488417787301845444889782514912865233886136572192426018814676751952703433248245224324127298512582623908495415602596971647812032689802624803648887438338727244567593146292627919010225452573504064219643195341051885094400720645571137134702256005489439151976838964507569497983123431245847459007657195018428985122304755526284543056167918366453716142458408683994218285624337869803408493264679287587903613514131916046207657370669113554664774677288477039643178108662676881087204383456342286121655795091331307568157103133189035718935916347195117987600466409202367597330295739363111663432817827485683005995013648018910070646563440384135523874033417590577940024764115505450682533671778080741783920916719480517946395406436413103700903471627121746419846027683080377392131139358437055097489359359846491428636113945417652631762591599450276360903270812857468386406596441623542260972305391630159680623128235529782139008417466870286255311698368640073641433175663365462888439158856206447100752716284261183221109414167780079203691120099888034040834247439494127013351447632727478595553275045885942008755270290225938902409769676709593942302220479520296534680019697858555853642871514523696278037986280185442976820150045058632466349670891575681752221396050444442791177820283449876537981837418428436555916483543763160039219979265156790871558948724438137863437037474506299675044232673714850851717091397048620728996177538213575703381578365647480720771397236075027535481338405057957786436629642061751606048021547179884908530358043033200291627210959445599314355527454585295535771289672796113014784777683192970202377329982199507823929211672449800435128744899426016916688295424832951062028410628481901186211704036059097397488463761787154216241660752243089615307100869347830302155747022281397106963808442042187533215779275144262222463943960448233669001912624285102008340855062653914685153948245646291397719690846223602909561757535851305892735452510502538716601108051056244998801164811071422596619094513644495849276148855160782664578837006384916377940154041865921692264072171395684505467685386937275670282870931446544512901516702833783052198952669779454223585512078337838475653037650738089602174700338649823376172344356412861701374978760494982245319820994053908972512806259606710088123854939980731941770746318239413340731988617365253338933569309400238310082817341419907519692766929405897089232594922865325061203476917665211758614032305152527595119929115008463921258144583453154585912337611826879500859616543276547012088489780961698567408112988843744751732183652100866893804080120758292098771936291313983350247169972043178493573204834065578581111267296244582859452038431167603633764357082425771566317581248823370782852127634458701125402441832417511193500160701013721774962684474259942594982445464767569064117252800092364949985901939480208603916870062192270956980745740007919021887933930753804435667923267309873821074938468901142081358192827315644959080443041767144748253083996707732879068892481874247527911299388436666539717296289627000491551949148277958725013718108429652637476861233920633508807552224361290675753802250461385586593164376547747482023227589802724713730580377450874133670338604807895288478771455668200608599200325618101077461825097749811608671551450349803082817001646022653427593250427246433647820734862619800814366015716400049156616644832397416340360262332669795210906072088800863380156485976647102808373567160646511649937328448212149101817791922274847333809988772359865662854524870114484655858725039034333905354505239084514780463377982999437263973437641830145956361448494101013040743277587163033897201566116421917989819331923226023424758852256479246555461522341499427902041025903860482823827652523912699186849551030963485425423461926410909635043840555858160391126153348139528241594265770236111160190657772160823792027489708898909394387049237468518868925560545220419691507907694130927282055087630869911090593133177846495904306757024084467093203350227290216145442809270201979603524490388944354335622257868483126362771184678367639865214936346798487398751288494341718909428917869625849990024758046994734375874334461164203319406534179602772758920522189062280602233060576420445306482408124341545775528145643966032267720782716528948256053685484283280773981288930785060652080475661231837057422585990212574231801331721489853359650726701438638847450361085201140098565581475722620518136680463269079106991972319617760523274035268100038986119305235649816166334656905186145586257475738833333584342330934806107825562895654080349122584026842465706495992856917903322271785179765162560889653757290351879776277239340630951567974648310595861926138143648202236512201411812918176707342668191226169595897382466859522713681151091554951934630847051105659297890881539031784321398577857859630234863958946945216189425004584888374329037894228746739825967430153950894495076733361093522427375586891924430824595409548502867139872472240729176923922789042460587223931404399607905049990360012721236998684893748994438523096566986991526515168676479937835817830304992565784398267471783130072366118784938974985281019547263018969483558962296339279250424894594214771046067736683184849562565506471379279149947219854606685215689923396066619709526469453474304475245656126166178020634499618340733630652575698339583270768408107173145644593042834939193489588477790605365605688364133822032331963356416280757150208625032916279864114003144388235072605331215636338346733289657318709244140327998249457776055257784066230350148142100048606908625842330943130408236753637070573853422651888152581374225713475941056789890027781192997931442157640251030782456831382494277388328571889882229834126641074000803590982925042092631628018896832587189375147057810905306304875037448305898522290969441607933019949443118332752436285678772491291231666756532018284937986405629414663677786762066968298495786748673958184960311885117367206893599382714768011034781476281441269356047746161969319948973134510274245113784210844343034765301042550231956282445719826999377147641869589592213487737002894683597082722165181449687888512483021830202454018230885913193046326051439483159353891769226763107505249535804870102462994597216031395397424352373461977402649338052694311564561727900396144371485098691749887944353069448256075976086980455491820479514195645959650154616046259291455105427646903736116374806086261560970295309153147350237176034273680120442991638883707319250133521054222048255463747021839223743912620117230663387924593982886503895066734133566071508056033200065652187599779242961319099758548733167254119129123668118389369322880849116521920845067267731677789210364063321974000146303635452772234205522520429022325751924426995081522516953547771222751321000699033028707733348128735413122587826748667997499319768119724486385637912589563417217296548093484941243737827166343628713853718257349587179841899707742615185883292957405648512806662497168832578263854661479472113056515777449831786389367556881065086495083114622588449549032880105372119493192900929052744728733482901675489147420234660139779963702771166972938078923615678594509306619585248083749818710053420666974880407079641439219457347036383012482845291459732769215672009020402114240019341650932770428322549917388734199561268423986975318251715762538703866517821959611581375696406604832548665013916598480564679231094204788552833889077266299563813418233308133694033779273697717839783380315808183526554307848254628590326644075282015801528407991704694834729525007520217627879897313540913156096917953590062840105246176770206031842144239760538946977493292972314317342815592576822997032458850811166204109212977800225148508666468102419136589343860101672074031478447788670007554791924686957147424647920878927869908924965397652653669106321974165853373616065651363088398603944060079383065453677208535267617361472852031478809488846894297602282913993388071207947881627453458326428537937918371227447860405870915184753644514226036571623801050375453317786024588131811693202389928497116228932711839117780248819891952211977906052727694245642610639762823461221715576354935569616985472576603163166749419440113668993960323327727028597834338010094373560744246010307171267805726360009112060655464192421873812145844399425582392711235472070466034197074387612421131587808008294929700175106445000666582044628867403658739688765871854176626870961083314541095382685070966363075265473591805872174388415271065792137217186995600026041638352109080273927930806279306510683340110480911879521193922084497699361153666104112590377926471944084283159545047954832818812229058515791438986697343641551983192169622791729767685117429184965696351455370691583731968711457228787430622739855361812760310565418353071693570275507138439805714237163881305019614702122380436263321672773734723739785941017555550763479986385776842115497760753532032039469829226518154638158357959389740939020369735079219477005147914599642219581155342985727625380847883831184451310576874597998309811303369231617821618631850294129939137526814017424390615649229748194662127698045356134251299058219269411309850461644253892933375432803425220142749270872863987454034367113740415745873635244604065879033889869302063506437310359266511060717655546643304639107614174331818645375773476698808024176027525876000296602493205161023490493801384323797953440373483135891847893925179513992765551457426385039960997358387486344017386832632464899336159837147665782426301516523777139595775783762870293115568585387873353090319067783636408064818441320649262695606797245332231384345276299028640617854570137502813852877367677672989671718352615947186434015966712916826540058065789597185498852966738845518641761391386594919557218274859829543027725347163412062807890854743859703164741657440124429474040871011583725631723353224989435670981950883562544802823046511201636197606332808225036884565577219586006256686185407370806085512946056066729012356658144122166509776862944249351545264903590108122333606059582566852941237622108190392716188409228626161098400701884675515793569599958023870323176688784091063562668288844602493884579496637854759653200322915194047288265197857425630211032866617745457110577186873534106962673353470380093895357669832892886263472623891109284731258800082980824712766698388259593196889756455421491810762936038659964151908696510114254553570907287276561797074676406559770084878125312769565790046446022085492514848647800113548054336130225311990572284793890608113248787307767385800706552545928365553233002266801375025732959692583827283231842824575115656810903919660518740650385333033555391057457897494613368092753762421351492223012539426181242317196495133121655377248010913886844981966062244779114398655206051336406569025596071244332911960132219776997602142505693891000351527646659143303513077258984284995958800762053334891519307078357435818667270615173530463159312285141531139309635078041562377480686033377154638541049339033967832515376668381722938997558529040567028330596154936861843464339652454947923502032185476453886058880863196920749152810487808500705672865922948127406286467124062734436713160489254713531541967051644099426831880466325823383640624730684602791980685593963019751064417275680265953420856593850541272931432903494222965117584464061359454082892723142290652163758063355655601941344077093153834701636620517825380939604352581410446382440973424481299341645451272598477098071956490543795886118825868927103188292835948145383531590164046541326527773455629953341497828831956779163715069950780968204210986822560127293724430218593446701087789261904128938245066872642597316535793685377633654650490276959899239981575341253495682648682841444262668862513688087387522218746540514745351659156415037176646975282351407295012587721788456435461034268601953394066502215405452071811747232120812511280725087932945016040514972684846069877151233336603202366289124197458517640626830086756855627542115747423888994918533558337795704208180424224338317161355716582535281572955062388064372998287265611264278710888429410028152409096073672682717157033202143320270038341757061801535587561374043422801073388572885255476445543718979871025674078066141820377857418548066473655868128008294184376347207697950112979888309734921172716396757078021749223306511030684339561256310845086204818189007738801841307431819861020291606090805882836540146727542316935624726927334026487907802269730116821371063241275439622631985387771491972113043947445062944414363008833786812043495726056554154775469847203486986521462764472683849886644259288931433573662946060660072654348863300831525316672891518652379274343258043027349664332327319186877326210407424166501662812162613497998891064398793254422937171290977729317052373273087421883806601352712188702358576067959126254988368616104122178936947124569685016050376700432876132721578852602330329620940465505451455149913894371202140093006684923923841949261494590906382995534157569082324918920391264886918906135412968450651585437188109883494032809797191961206247891012497462344184655224414513610917284130166044543000347402359544770283052990695207187783878122037400372571931163582294396560812323638041450899511259631999019354382710985422252837488150683812235771234738773864988342720875669792784009319759279286023738207916420245313319181719447361568457531647611500260593248262059871780792241054271437682686193298129917102482352680131564758094567980751743095803944976950549240479976866397643875718183748777496399392941328129946512891185036172419997576973605113158029878128759554165070212781522028624023579953291797085230655373237979300639163585430788188462258808166258277652421466040227522553368877497428205601880182941203730875743092048531142441759922071703048255876426870447195611883150655500974023173688611685723980188801851470816731474843071830497633035702596200547876327352772256346538906951093955128426090713449543022851055600641894074317209996295340449404471979740572225859155771673508384923725655556611432792699989954387421288023772550449179146866152341990314036732362573877328479680590871463531950179793520972417932550541003616000261233924801889836699911632518778500613444401744088899395886184279999980983998685676999407668864795131422861313646865899507977846196938537832785178241998095722059115435629652613823533395064455760534735971440212739518086328007442885807559061593829578970330939588827260609404799403976145100423147219036123588094519496854758075863584174409348185157599595008488410302180226202363115509517978389012395574459918516641151195878947683362753906155097529848962124313595833601177474183270846805330650398010806153109976000130384493802269181597596370070519274292463686031313019568727053461230633510422272866740737595000795343726884240189027137711440149172471731287283305821282725662122952395313201456753913559292899731258586976665338220565681841075033631550327486397965927715793024325268724378817678623420254007289022278076036411216765330760465474688995064717896552330792643476593080591467788691997826412481389989126248936195926065422677591138995830158539300701653341358926735541089456536553345890412797768093026730088426156008364555440426342067570304770824729473978237696668573213406804191252242895131507738935849377876697299476669289731616608085676437401436724532886759921461132582612147526422079721314061656968274400836082188539368805239449017335573554983357314671396372220967850995278947316211960112277372844594878010404230227122796071666409958938456004165818281847543971900619402396355503216864872747622039182058184810836038835748728252279125297877683463617563749182688372742158202467256532686712373588020214751104498353473763144935734679233676735838054799779206031022245269294390570331171526390986940844282809262244638468169360415418053300245454586554409831258823850826465826449988519805906775416461895355114636286615971548776635727086493148434152156890669863251802028029769811217524568669760626708818089233046274608083534052767947571659202661540758961841671222579995022924028226261560910725365336060206197600617867973546326712346416108036110167760443899172309214522530907354905730325967135929526537271852430205452165161842801229190781404828469564631869752975787352891661764241728295676466930911158663468133051432851632809462011437799721066243447065607205630676591439468251837831344808171024277157608452680114940226007640247443745207382771098198905348428927539004230279481693555515442628526570818787192932863577972740183254795389935164531189362756193622166751298361340818817296137021844673760374986863759242906117471367792978264751446772256242612934664846423547652215748906329856526272192890780308017029797027493379110384045058636850878409740416060443662787158652124989920733228305474084116327148391361701448858642080275406056348049554044454121778902408649882646338262017047478251346362196109448618645930955939364594421289387938613392565186150443045778086402977646691073418789621253053862242828716164540838078588706422460284726680799581279741666994120078171526155489312228282826374480760169674377378896881261178828927030473007158889996498413332650838306558824374775997529568909954760658794682149282680074161092729902940688874263790995698290686063347793016187257690992561232212039060704606503063097780732067282398637909260697301834461866054570801971596495901278074088271066175304897216092204047138090095598162596324331847862708433493077877531280466036330766113400334419519889315583555301576446546291760259153123517682899224033850495718686645700709490238146327165501425003890679601246146530861165203206521885524085572272618403094565060153512389633341116367385665194136066579220103918097291524712065117679617888028873769485751926054834148420904412614534595166062260789019456696807651099500127213738586352980609998044548970737806432269385410590182678740474724775126108276768291761926571828937233523380712475666577243125510345148064627905633637383719436630536682255922744306559509070435358243906159588282812533054361448565165512240624170030859881760953881275961342517964041747698937250250421800302282175397058242117611141479455829218857995542501773261409944313503539506882052826076067314485514022654333475886152401417278819333591597248655496495386513920368223757407607431656492071132368128283539129981783460389528710433086612612480112889658088345134212179047278839233049902169229903766846092407947319616353772695581617360275566574406105278737525503950402971936221842511673010788409596679655585034701708495878029314835328444176515110004640279388895650864060320584189511403302915251958646653768888843631065712471355989145583846504592294998194220679553274466041605905229620104781684259863459630090075104661963775274298532487674629483777893940476067760648412410269956495846087810410620130738750558487636951362908123441363427006371105907863570815944393898642374489464898028242860988395596294430395157119882865102369931836993965113803955575882538429945814340946011224168553996896597872575648370042213948153557337384801925859139924425878757434679282892082207077645175674959862440054325981926362455986990673549474000763534147729549442749838095194330851666345012580087472408313582109427446187748132737731622671984795000684261873169736655777361663270989372759809376414906891951326589115451968893788686255584736565765138276166569591801397135472772145796790677322491459765428406122579435505610326077675384655386660308065492195043737043927575317316383787732373330398348371722413362155905555166386723498260067989495845997854617840606844233293352185865438083282859207997632552952004453974237239719797074882525201682019746664107875681320710321991058659415419462514075412180394214914443608063852898527335873411644811334232961971367730236467332257838354750199352459241374768084869657210060918428712137296897897025531721901787441096442148854838892000759617585851756114269613195358846795466373958100158625618023650660227354138321004908346179222660199246433176130948683619896373739275093931559895371727339905407792825736784854912632656247058289766305990015063880677964662585284477979900070944430763697052054331532539866788842296636116458501771770469098226844219239016318685091552030613201965827375176651574742579060487820976761109217477177236150430878419414403501565725347706897636618240239476908864727466022295830501305666570709406127944569948657745504347694964409309647922700791016606851434615267228430725800427789228350453170245830902405257799092056639180743347870307178229433644215941871606308135659807947976245959960393031896463644121130597715996573896845653921472250983891651204783120457579151000401119878008138275938835166281590453106317211895095395041915001504657841005869520714636022369956052008057785988940707059371367011438380218415426003840198554619924194064421518359762128695184705552142278132218783844031482570643639299709578476914243207338526409205038745179642566252792373804321646891074783974084025125042951518753897407648359827114196643751699746453215548294361561161353923173130291457870690824724228794188676018655810686894114812544686817021628962758182215181398419285638396677910206368171010410398814755598967161685902115274719482371561257114122358487513005350643137171419823314714056966913734502280695285965126976990208819953489363075108237789909125940346613573885606288550931058840742074568672801461623863011482066253540662262175507918571197935293831486790737534775739227388338580970957076231640497626263636573344406105871683346066255667212155913729115845372206727717638108745216143340843419009506286198325442601437272647345379256215594411904877971320252774485351685354772809335706846401266578921098573241687259237026508060931129746098910901007247768493410003838277228306594835592168078081620052920028120629383346438386132086548006349814406620859695029308464035419299470348742884380034289808697308219253845120091400881239671161994675532807563757309831136265805012942484912563474142637835830631723844247023173421224126326913092567752516694345615149495353847240959632438023149361778057606549119684094700285759098275081485277712481858730078761306074684565088567797432867305770951702698469964474666537211866307997383245149265886043151259123709850262256273839653861720601549474061000486160805810738970478022897427007583452931892232409694292639963277185010699857955642794250069963097879122709840555294715364810254981487415605047399844129809453061517595603472254067765402651053181278963559988259747012693913925477502383585016352771836517615696076197197024250550485229593027182409605792733879676900039856752844568287512062428548562507712762453740537346699955270685241210183479391709112738435505098289665721535497890320178583605896576005048101142161121192331648639907801572180939553737770772026805911677537574046135288918898116424980378582054638941934131287106452094786671914346332113517327363142273408061664084881566806565754244230314694145679534362642267996335100091303424819499031928254232004551301696944192894713715923966181044205212655283512054604609823864991689921477738009834584514868958970075480074433005689868306316321827247508162218586220134839357388161797608421925961941929499594925523005940834908422212821690234470665107967792229456954591238096427588172628640454173903322008140939983971126940326032841785805810082919353860283694504258999284530491363288429763736276587625762163430046699787798639784395868347031479427119432436982780608498551081554807375344663864090712002327255582140675288250787781258479785708546541684139651948659467694293176139496878622292881102854368432646872292092360564077479593000039826467305431218496713912557255623932767846665270151036714545017744749637964038480746653004911126884233576045259643931293291679758674519344707738188022888181956772308461343081389988411451330376838196910214224716851268052431860061520368781871656700565107641107024509538368200575293133975231525929474363806495819607671139306448091071914678322086031166435481137602530543889395296966661556797559646895262316940583520589982474124333319990347098833748952008829877675158861949466890054438753342036849867321121690317966215288496024626338955851773126818582552579695825687488253909325024232645238370605549813470459338394561462018662632667249642402633835980144434860816132275561838433535154812813906348105855401631061306404415989008504748958402050397961632075773148217175804901934363271341425855604254494449280858378907423287620629391405822078800565079296994709160431413787042802115501632523186028351127644218704088584501229789078691855699143518430814036366975381697100549425423371055675442706412285799221769602033849483243588423642127214814329208302200989273441702933045269258973602063861493384164051527699444453410245484089521915385736846325007405687928698502985454797107966735231434609584380240360148787237695762763343513324792171430336534674770863670775109886872702701998077633547456194577900293289694408172219707229045634937522961242853972868689745726390291244423959719564969194476503014072657498235132068163580178738702512012370471244685714665343180180008276959648976667065139396678774304012338274131633496014011387227150341055618305262529252623853188814019397434561798130337763465863867236482638544730803953961352616089188051063585370301993658649197301296367023858613573207396830835158701278629821563511825785237535779115271348621088199058373012877795624159968169685090045127056378303760247263282845079676045789460181641435807498991249693009599314444859555776494584733917366669764371610238388598394802518616742074513428295066055956722821465331967206906920211029874480031395759721786398837323967620306366046074546758083776497754327499370157345246260819859778529464223680166061663615538951390849406967957272938094602630713893203745641645946128952351467203737574108941324883053310299684707026589215618210279930464874381191683300303789953028281931687001452790747618430668561622927894970799373756621019511311045733309236071933714235313204841888901161307617686263634793126879167239728191290777893070895017469784461864175726905812947798561724074359271594105067531686623913333159395487739137495488856291062789804535955909732506011985928614466299136182272936196965184444032246702005589387619702499962855960147367091714838246197724065797752581795954418999822423064050998853447764616761278552596135747775741302934478251564878479657216118177918435893923762325997229527970556517486804523636558467594843452007476329709482818199627160184322868194093840669413437155172558095331604436861793340195312057531823161005934409632991846609975932055462824538777315425990038365166732764480758128295875487973898715157504810426229322543713427611907765301718591777438708544077348433025196575609192794811932824795849862491508760626509542698118136148641197620728359366683456435695452810096364054745989834463383798660778201049671550426822719368044571734848829323165665611293038823969775582171577605122964069743456531752488474304936632051911891454826316574882435448875789893087716023524220101107505809432027003183679482223245877466034073542921580832911220722449958174639888528193727802939540316000614327252837187698164008264442588290013811496392000963224312766067067028640628243646540965441595917826221504327385098138306141353489798806516837143727338660421484012521759891635490030529224115043335352421122551987916102306953964427352862381152444157139299984048626731219456047310535572086346954541981120670639416917581953833423296077938381950149589884563411697937597268238696632667013493259941995902754965351282382388272468142367932394904230154972219556003613712362247390538567839413465086693165959665981347217766011655959653781050156697800566208996201408439531311035202037217121948003134742999171706376441770642574385207692305698903738599476167099027052857092591455334274185917506865917251620952580384226420621123741853918575822967356329005051386751521482412243217572016941838399826999258230607212192023500645223620714067236141870943791283467102454432548216588551140798440373107145480738124350086048349271178294379774373515018560617225102977281722096025696164521325814503434852066579188104069713227288082560123452329310492922631866463797154840913213604220209225170554086000545063193728285638009490020500929999630345119678749462404751965305629379821331503305836769483155325244758924879867799583528289613488307325439284895948349328159847532656532742461619922578325637766823300552512291143395584190729199261768622174128375406436488958401117598765600432298557041021931367496336699151358035186782142939643979880902390947392785040526790158282598361563737663482630210305162697021291426954518139620706452250005750565014684432482030598560371588301639688811042391101612195564509253875662419716809231495612241545560002121767112928755355538159534125170631422485876887547272071148705119515503310439204343139505947020527922872860052334646576211254596500559533260263178273000357588957580941202496421636138896770273075039613043070400487212157880602968931288648146732875968546223709892911163278335307722807167355069173535361625202834996552186873467442366349092432698964794679568624631977592296855651985730529576811296550743647271797882679685192829299953387520351775781525856976863998518981433477168725558912783639514644597139913444633374779450111292026541506644047528255628609781731549222472385054366411167371155504173609490419092315426816607842871958896467594736467739237904116366371195023449472946642726390191300870771915453777630274171883953758424737471473594359724402316117807096554854846876074219500540277406374572302077768591752721256457149733103101832002567769923542385778053037210540469031709586474179003698214207106694685613398375435030839099567440744711614497743256226190986629825398622921165430972209075296298698617623480893981899094971836839765530792700949603178767739690675123305038534577954179399024560329533256894421875536710783481840331851780646604974164358390706356230728959542290370751399924927286116725525385812420651217246642076111106879697136589165294853036709232902160939663508417722951907793700142980690869757280233505358283224531478405466046988565350588900958792630162669833545487161664106426805044550723604304630583366231079711771871443266559013385103368843351392312273310873941987256618804313272802350865907971192488924247252286777632626479003081707298949183292971342018511829080504029157511488902043823817237971099967351842342693087432502127134753250894549927039292888560002359445334183608114136114755886879620164553576375833975720507312898659653692168154401774646240899855139477339455411489208167491244248577916279596519260626858866760650570010043133746557332755945210283438886023892873085938896171293447780866077101490923846053671051005503672296866227272354265405338181097800124562753941096898355381106380478454607793057333537263284080664845149407302701541565859987176627394956782797523822560816778508981492821228611356121001173734878584679428827861250419203839734164798004649542981619860887121068743665205285825941615793253363519817061590611079878792262718045633271462181451109413764584164147353656052519339243456998565397173454284324186473627151480905351203712255052278741683472594243326814593955278473853196673562169365359650761166490223988971606769071050905937551685882345271373652922156155891080679909543532453110270371544942310714914842052065518308999751828631581944552574227488201521061325071283393267854641819702228470391728651260989659954347287906010807909926053862186409686098915661738737408193314669194643628384580088381018563685552915290524949972751637538725615665656613876974863491202885807246870376008204678389320438433330968839168332720323100697340706826894295757140845471675911061010857242448634554677683762722038914759512359272340416534869950587267404340539479344907528785701216658243651807275914866936170899790475685898029922423965435154712479685656582892316529842369271638848973670769235712562979993134505710417068195584900887528878158740194849693022089742569095776593753622651495265983567978066045447614937854580117600785710283343824316808076697286912480815465061193058921237612992291026855619399541927996573579862612801592350682402396036887124184442682454914929677844244720781222232358072386535215762278366477100727268839816621639515244227816291945432684683232924790772744882819785294327942622639330225935164063682510686826710242195596486832138787091630658482717169981925422038771271705008923913637078218860801289738807552420955115884760123187463482420517572766986252560113466683925343567593317855782446781409329431924566809743294333271604678433755627219765075229868462415690135206748290321218582284983759308291252540171215587117094668580594798809561028778441156767507846349205347557406799372195575081411148361570058253123101806729671253638485430691623984468210394894884053629929315054038709544051218102066663174376288357674337914153671213856207778126917295553733125913125999174778358302002318623109195975585196051693430167230601384855090610696301490045857917813466724894970614472081829297845294585917135057462216757845533892869495713899605715929009299816033599514361815340419576441241279406477964431331066129503931517419100800046176259870794072181735019051500387384681417403209362090192047496465846506784219535867485613850085019168597224374455257014822699188649382107847858797074388160184071313668145228519419531499928927466509677996943633598909857156144050526599819230391574134947132188138561487687266861617892805716395529074907649124276563714262128457097495156499689976923273493992130193188484892241997315871173512185279610182961503066849308049322297517837808414153178536170561578010060906261624869428283299664214504948037845838928447724153669388364394443567984943803543584426190303982767321268012847481376679291336255055417022230787352146927798800721998986907217066685689209234047260721909789344220705731407484455955441704832441766917036495086316370240181802309344904299319255802195012111866320663184054206240611528881833227843751728158071757096347861454324660341470001703105465813364679795739894065017814130881854860979401243407861591601463864794618384020256914209466628024664312399200482246935938440249051695808405819417463264656282189091883325282581047612572601470602502463294132572987757720795320137272806752130307451489471323081345203305774139572518759430989333828939037584154715320248309128813027309901009351100353654893621348639739717041494715946392302994803698689047293167418165715921646753932681269428373013986501637125273197289486664189643092628239651186348546032417581590892745363268565095749182240530793681940482838974715218536511461949181571957707765832248504607717439333629124610778655430935177259750948876580529471225956438026055083399672981362825583182738226321441480398153240475175782787541752877718608987222102790607542964194209779848672604410840521981750450193799182739158447234461481876081868382593742738988604505685827356734758468593219709055235687717893385850257074508964001900245546023870517917037550615133088362146182581779931252961259893506655834751591855661566334399317750015343787568684050379727296493474806627998343574278416442404707861164614232444753585511841785264227214487153202837293723510417729425135973366295062236751260695708311025847696330312557267934105412021099612007514011674618524280387634658429634497129254572098420634454451514751067122205400523529523344751077406284742718398085635923877714714082911715426248668690132948031670377311365032327798434949431218579592234436967629029144443014965378774538839569958618915705464794318302405834440709155632782415282962757989878067010372479877184745385738688895138439086985342082649662177588992021912638802837209139034994873193925127936536646708014431349668879790663127663822256080450501714557994238317124265488031378897835459158864316702102964325588152293771144913965292582880437152128298082533037190814243848661146557838416734052663734988999181523867732952833989159118352505666551877686833984454247549237004938265294526730833380167842930707458369077851533740121766206346909891624868301078136030672726852192743841845395067804845069983385786090292613439032504020296234896352846144615363043223042661631424249132125863254332147153903803504195200564015900178199524734650513627754730667787955544097066494680013929385539679998895238462346072861379613828409448029440930563007620088115690433912930787378174956857518820527207406092766576691535203455830969869823997499139666453452725203844884639316347123227658690455663734085795242425413698734968871349080361066626953651896982928403927387540063107820511811318126730271468284209102978642233033603878376374881490785224480447984164835288704394441121155733019896008650979270715160148540302209478052128203986910977124091197185842535493388854569295780522249180481554080775116428357893682599377205046395921421975609062966692657493190373062108004618033786051798102575417524936559275283740071580863161932186269969646984282397452726912958796316706138790651954817445884732043124936656727710050910795089871739216225938787143278462413127534832534590305323930062581665456203412634338573892678820452432923755084181765756527263190179148126735011931009626641961162699161313286837327432118594210284339375041263622377866041130001016630718660531717244421407176566398871601362428644699778048738151994219746151750863361096188159143799602698583823761127015998501907242938550024202702950154975761275719236952798917071958945881792547693344016232188994781887493287929147602785139228170053083455909232535777186371660930580511046104409772425579268749160526653121138429446896188558791364248859156283806217526233563543624017113557761244147960646643303753448135874500466164039244174393722072034754880933873214133172409165943344563824430264662880199786228494328991566409691952223430499670087640304649691796253134152873669482807455706447752100937119218521935396497016862973543857975382153194589574030881948122122676709141881844345469858504085017599879443425211919918035167309328707460559533439514058193195472647674580224226641803133309031985112074126071832340878014810739210670647578450362723239978844458688887148388985605608292570814886758805514696859526423676160795028284723649185052332872338192426650727002701410808235538689698201954386387885532859123274101420133755715089022567099327332409339692596657747914605004649133953470837942873635181823675807671749018913342067777864257438730990820479054550256438112291360793558090289286031548638821862921555954039921862805938107745711011082246247345679479936752030788661153530899230850994886500870028685671162514494863468091545873927945715024965382084104932600695110310505107315527328290729343207901442655313134680353851606107237181976001596731755411455025580768312207927252351060227416310674996576075575142464719171905606505108716146131884605969267636742077723514353722910905873144196090135532093904818870407069807845394725735709122500884886661555136880760204413582377398673450622342143603052796344482281355141459635085654716918971989005935468715186828345219798574951590403519542401431920879924134899018834501732469495479769680529565336196387826735027395667311696110407258153185524880415817049069463399398060245074101544706169331941870371842985221478745362063630504177247847934208055117577389430354635122223470003103715784725717886056241203166355904086020970079804095080814692502281871219557345759156670748258682356413209166490715636005289196247142914551420522753372370717309473184568413844969664986712894789412166431736114002629906996832753877353600832615246633442711362303544555986580870770353642847357907429582475470784486288816946430862619631266623587134293474467457026802566097720161688995805760423152687191383596328386357161738126840260385029776839236456768728987157460690079572691677923212198746188213167746477525097305079716438684529227084467845236386611759487911934993947173334547707073026003053935577224967943744906771515776382792310661384763190633997441169072529743961531437885534783619168645439201018953588131394659920952394289167691598952113667813046751268495948312895896752815704736767677197015230616478322378723013680291380302931356051505516308344539919245959492048594426237926347511370482023410986677298501878685200235287281676649076396422069837773262401090677241175459425393049019418503713010604213781609661074522947429806011397556898086438101559268456445699764104957062644410050406097538628371516010398330279386098788271853696261013934266770098454880154659965784191053008402978783216457746176769101614871855364103841223191200084569392980462516845565211860997357412211211525527102649141534132041625493521680336800198873705895334421144379408507350142664142377701187521938099720689400313133352927805178591518760618129526681459851237631967521099129679557566596044726901688518055680678074070968175573351778850452262918923077182287551387031801529084189484983301453456822425608996093204339375963798189133515586977377792680449192636734897164240838198529474541829718701826592607393426085456419991469302002606564815482112406988778935453750052727417716836465468187578943313086678370326394049300239985154264561017418221035790376258358764311248216292850111873275976848758300761546162039395635046432930195768810684778379773663203547488047137071300490967783222278294741482440300082623492247210215831820647498779506903222678199411812533264054296810618880594768601346269854913839624203124945899367632919788298672160571812916697425090962051857981441176074921150244361818630587586035793612290474676194543269736632367088953732288036790043734058190842804934571332360932460253944371727246049003417090905431125939642753945693586046574144002424192833300721212515681558007475519623590451055940464597492263730356022997115641842995093365067204456526145994732490133597180831106284202303522930114134282807323652549262366824248129764544672927280720322698870868454959931028195354959752945705627914430530722653570568564828314869853020775503743937888826880049814006423889644842851548018050917418455270356225454985955294397483985875660525110274757892754895023504626599651661474232980498699162546107218032160810019976350846163773357907829759916946430479192021291313565800712667729718657536255961198608572464600049203236876752987606553714316235604772879905522208636404006181445750986309323713128832649189251203124315365428005445846628309930453808674909848065012171458590450024466794087014958233979601224900066450082072237997019571621488933696168780552163431930903526996152202279437084753533247214621738432477912222869656350595277617900857321810013076011334162633001317346546032207184202361810489180174658223819362663967854369453643867681482380370352970134477474200724146015237858506795580443743040667735576572123317869505585088530868424885888018548783044876785829511764335865843896412078641432673893734078477911955234934290141818208411676114487623972841342585350835622463111236167613338193556302181808353190397977558332057885421456573845872503747285919463642024281592971279305784730947503115337241267952807780300501852409486190348562310926493273215460491503318733499862916642802807186460984768031302689570989479058258420564821285925423872579625467935639016165453146746849067400196472860004290129450452397496287543561618388552737709951887619398061066997449145399100416124020794124688637889256104112188585981859107828897349574877186641807536586955756456442512413485635486668877975826989644270170924612247331126205400985327089235011270054133559093931944244670853797841342724427303661534593143472197481900582666161835463753709308133855476957018576116306314539432398862251924588478664055102003893040798310639923651095718780593601261666065773163109533785427050539797365759826404748796426687534730193590395318721727135734702844984897208584263433470959527976636384684849798062898997865493424498292042203261014434686071893422091361599526521486465710615300589315700171186863293023601755637986712245712479224381452519059084629675957199471503536859574252589666459372698234220262202668892057611777241814022325341674633679138526689137779189815586875389897675964273218264195180715962215083226085093367169238696598228524330441537964882900080102802009981590366389311793547865717805279331202403902350473351497518746279194983689078768505634064879646357263169154542787815958270294702976725285692281387109304699294062577058013099455232954335898496989433719750261126750215528980833052119979876292218784412152298715846222648668067505960268068747935394613791469646683306981054048574608717024335763095967559249604926264234082017135379780348757188074826892705419926701253848189200351166461728982315596133123583788579497489908247242623305642850167491231863060902955342213193523976863620783531475968454450965697260918793201021410823639930788795044573265373196947020470317972309139252202683781071128229623857054799172084173250240033963161785262711957985303237324845419178456013176015753089749232534292121543727984248107651798226298606226561778117098251315866839785651335930881799680018531427808027113115808910610280820421177678796475927184323611420898853981908319932364867703499581916418194475293473220214811310437567447440685370456006535431109020703781994266212879760209653653709859482325078494547526285835584424536300755610280505151826342324172438982197386724750949862005136096965045235854507688201252438498761223177631235943496026644974705976535534849331741632847544190145248777562225150865602922545145415893782626698742540534218070198890467114261978152185280772058692304092444303462671571299699585417294076788557958392063379078191253855699525989587903449898257788892937851435934577422062708112357502628160029157010134935967390525550410011790071901194748130932968762539830815546765941901789997316035780703273566816715933782480768804190708197852366523041600272283510271416584987997299634926013173269839684882041558912681504417677176082299382248464187476850881048239835755177057855559868160264944527255804370371394747240759133026689226748503810642043655730399383253482601365503588561026802912370959619992364696466369567978176517158222498859398396293399803856284224096685885228778979630463181135012316300447796162498770071784968499623914418171451044523715513654783207001225901239165903099881679623009776984169110129856461213928782112366500857049890684985282114505153485951960125736223229135574692345574126600353975706047768427865392991245845194947515162642237850445603968225007994668203647899108253228566092187876196525034184287014839449741118757116823545658579433878191009059494645042840397363811879981563222326556004470714242911446827746211574378663780828075684378089102375562367347060564237126116709370946515153038820636622982970994444524147967512498824233171684106663965688784003029407057962220976292940464161466540766209853101021578051334861720552028184950535688984092611888073858084355066534640331788570262022787420747995222483670839407937003977983575396889299560766486318732934325796500478074309958170874146887985334186458036553955393730934783033854184924773787266917122454939944674085581557258225998395944146085950628896052670142799545668505285562027806865392896809110640196420234136134514008543452318925441664049909294898053118967115604432020418766704891243131847983388071607467490527915304223593121671856617084550151485946861086981045853694842105887061800902352223840013666460767778525826414132254539887999872955676516901868258260546007896808434963097325280193058843657367587259029277376796022393760143659779439851278877011366648310608556000324235856620843154031616813365410384776857893905114268138771490985991246468539181467258956688832323060339123611598259073934404317055072452926684574222588660848582452600253266227360933038407036979348614042627644471794935207535781217315886742133161166883711428383050537558306943424604284573634045743763585951596606649075607466853780851684734306635164181550905434979948575799342529856923066668064571388974465245603559349863974119444506088610409740545352216281188440003710451506557563355851009972029091264362035209197471690480535802618694496248043079730038675719324741194645083903078148467319093213473664249755880585951127186753057032464307601713520225155500557404504338881245950946798788592565014756065483612603899245724667144448519424231416063864393513865892684603660357896509420945467380242709636235534726130572306261526374526248154269194846086804431841089544900640151803639113066749333650453396176217798972057544218127936633059091239718781113140313253628938240863115815456849916460172039377793948962627238669065605650047209278924875264384410642420462119779720068186278848845261253237795687399837521041859223633996780076526202535106830878206458190145247515709678532657805235731734516901826527026235895438469002335271513550973807138853374882829071951441124103352023000079808061820397534090938827415106593510256815162404825350646689559406698999864582338970817742740471202019875841810047337679291076763990491540384788497090468576629165051697308059244300279366649079772890575219525951239525962452635075757642961009950538430566696873495081998868925021553740664091601307368337730995002049795532628660159650314009537635137376131248000776871219152835164356466660420063921008139807032404584042348371476375268883016616331286385302789370863582438389116442584693934858529465765591587881041825441163018462133000253252009641811604390602854207753482142312677305267295546437370738456742298035035195108103460438414724313562600953012533980509205813366704559246268000553504862168785741415399233336663883467448851111911979744889873489753885083970887712177800119701672475058673793091841733231749045502288352930155513555747147938762643897527618197084948431509103324595891216883698473730930741777113168693219951891544394038820926164974743340478195246399519491713696326417489945936858636527353991018972815695472112980603547720962535083669099189939673137093185123218173173175420566310338061920922345985797121971065317330599700803769122510690130618639977020659917053798638389842631984899902836910675144134509855856722504201460094279830182302708197665149308450521775501647749027932667186193803380180537205809267590979882659987827358997475695935862819914337208909633613090678031836491394894668626577434197985949894868943077893927414188815694613708422866401221864144343021841493232696158337834481735089443471886170052930402325195383639588209651553793406520935186447422295477898563338087054338732382441843964008029130789596858867624075758516349309637449516843058436549786846976472777651138828532921750471318185192893315106065235952509844223733860985022969031210984821538099258253144021647263737175815410382855068530818427344924656306136649443918406908850735438039379928074423479938297484360484095675646723744833723973244743317196941965386589533814878039560981494149344794985173693705915851351092433390515010329957113693142675313875725706729072663527132209471859725408226541301788811327812929614285703007605582525784767105407436437105864765049017700046588898769476638831443697642779886219244557324274323974470941150554605671183599451934540983012622213916820890864939910376985174666393509818888926735510288950339021619619213946702917807633767927032757332184953182685071644908864881647708106435094724793203541116394416099244967608080173442540753540323843241455257468116670522402556634669828429357594601622466696566999952252521549432538377918936720601303328877193670099037390107970525742232920127301443369367799699450344038501017217390484466506508654159455134418311242207502491604597535415090844614689816337462795055196700172842359973175774116729898270109908062421080219294770628715345295577482998163830516647230585646064173121203035939853511805844391394492092686211526849348922013703275411779881333208600314772714847690818171435212047942056810851628839531612136095557966841371386138954268413808175931078035240211460200929376809596857171436988721366552397943828961863423653000412297779289370603158921250484204606544729408029507792597181692611862503483687458761147364036047099093975206438404142491663686730784953683591839711151977069355048818959143528578403508477833905394882750131592654958704431369744969259118872095557471916298344844775336629454894449768981345204594842716694467155453631427248153170362273818132304160244951199538855081064119006254819957638299781074352465189446713974020802222724897662525465168445267205547292005670841893452933861456164088499638272646350255513349510234402084851810622834023089093892655136225758539710403797947836713912754120083752240243030940366897197498650712855111555145393562098149446635149471755801646950521441871848259383569686269220376094081462468817088816616669802143989639533222956339231220828519068665423366239553907795415929567993210816666163131036638970932249681357934075579745831051602374121193637597101123187286933873594474795066687962630908216983025454351815336982225286556567039814387102493120935742308909860565960836242532433930632364696410699273227609346968611571444198175416995245257922260350905265019089687832772129703957922874535006264484911202719585197916114005666245772724159391282512259207048589641991175295681361315164983840300857991901074771184251875422002911445622676690837605253669315517793228533537438163562098701760491433596689374402852600052962927374126357172867692880074207571567038063515960399447686539848618627476697125616109918108411711667039252973851483247242706076538837265274499177095332790535012101922403300685242737879383726045613570383064127103649349712529041504197828243807593334199324231426045705839896117875728754602114970695529440557058973804560004761364796148841136308395285221128921767462565794883846159312901203791476291713365128513241505902839605882863263368775339797313116642966138070008275472336996884465768536712740510486527824813797725923708340821742974614713932647662733494610679703519477200082779703376080729851874988613672029111447962556281053091189995642738528482275867196202739050749326426129390646680327392897334486130947003708966181885752141622842983992241398542927892862835093065129127111373922446386820904383089036132275683351540194926864553923123247329098817920800537577418313620525870660266930144016213432441369398675531895648335074443480143330389443757175833465614652321999431693072246787172053114683104752265793045606075192012830561781824778719393457733379131829807702114823401081586184052787726708434749767521821770405120115119832261309662752964537600483714783116802310055065902076094979844387882488467366661544419075921149493364287532300454648291806567417580601471342422344717278761079960121282803885929456572762941043218490127005474559527973718544387613471576102753300340369008937754150332335490839888087004839799049412942431647133356408408958078521031594914708100547635762304853140828215997040087365823553467587430894517881599226674232909131639574261467842444310775509216238361360029478133236112012041979799864052686672660465588059325165732217303055969253811597440403642697322888448507927699416637488740103486257920481324063733653336219084837668811021620520574338516256755116914483377586664618131202956060296466988925528465362639788055830440877420522677754794573545918603155283941285998316518891589653302676100533394059946788495094440973397895455679318022157710393086650671292712933718239312408567635124663352003437728755365676211946369264405149180639171212870376418736648015834983176347998955334988275865129745421670768033361917490541587006828810114590539907278224672837901469344002308927667818543700976070667345468142813277030454161854266597808009644420226621945882724478823058995460658042813145153219718960838128021998501428093336144922400575676070494746471180902382619576015288113455937005945808471255507944440901543097953061410456782771388671943891603802375237887592282920146896924317894953792001745604768739424502766844068967607749006903173710461110922583313833667854658408893680122081187678063594980567193101454584398823294405710507190941054330332239668817760987866339545256780967660210890104241814514637351390278295497393231849316462479241107298213264288546695702085246312763047732474645079410152074789488357782531028091499011747437891474623382012770906062121043408619967522699025797817622081634464395620251777156899020010072469906614376734347044550901214697990924428274616638788776656311794698207876239295071026845131927534403817603934906250048825183638746493944251257188184957971769580852491618593869703165141435256635403288546316780562497379203480781379635377574413522876900943062097720410543421560801987788501472852389884211179065837534624960718456323564203002673028685037181563670771570706609592142876079004328691340092898086818665905128057323126251205161681331343973922616918749596394218189963609946870429108958537175186550624371095987308649902171428784902406969820321672898811451317674883315233037103137807194041293172766431220420809004797439450101182679908604447857712181834887329791246391555509376603779959589439133124541881613712563379881080172494160340138694992124439424424206475047475706631835248351055909027726686586697473235495293140872484115243001766009680114388493314278594487292610413205180679727582771738947077767291949093700991410708453236165677089775627881630442402289697220104836207578621053130140315638472596236327977973910609856913298298589821146461779407367783851891016057341314040244778739973423722329740333825593055341532890558036144259660438538057572649296066865055665717019270552834997121709843120225658357081192120775842605504771641361871639585956488809512654309668197099207198635683128976282930270989660869011432632031689031024437567697037181241404341321274523888225808572739303778782667604994029504169255308477800632181102284967307094132857732337458705006693138990590795788008915254527831512497604068873731390632324936576500936100738266023393438486615992808273779616039003482821448766705703121722719504872813791622176952418750421887280530959768738514947067283690866404560491786044488058927535781794648558431617874795452779021468248307975774052198730376372402885036647612722203953680624730620149392837169654130692037056384383205260416450354747266336834983348511263071434061328756476711390167429068770158832998779506813731801057672858790931652471695528393021990162407673957324355740207973330580441874122248482548269405123944433006505232809324561780005945123095020389195791913141865422086340538908907388364437525314966324506046143946746038680601312065095399178706402098132503968568285614501131983498279647550098108624263218957290959159374644625692623530531378083595927441164312512171155504073635212606723910672256839379973159318000475632489891478142931133843580321925427994429089877400569727977263047632580670362440309569898086465658965936357065965720581010592219904940842394910502084042966174161187959532303405765613871603873503348207677852002509261506723210763141262270834195471028587695702345731346550574688422032050543338414694354404407758343967919599411174690100519812116090366156313884003195998647183653824194874150058076897333043478862499192687871082397457099988938264623112079413244581863106567688189480482580267139849967271502697221770574260297054408141202468948251657248172019142235363596515470522595619881898506904305496564120329571471117346355632471028662924010824014185371546215885959551170650682827819315731367932904821410066988866430026333630460810503688621564442574045852577922060783930911823075937336690285624183557241130316936277330088218137228506055925304634361388652675002294652848193440472917991600209382459674873866323082790702854079052227578789679850207121532671150907312076120828062672344827474570396997281009014223836748946365113341115658910764192652076209316636729459400767545204108765181164230541674792384213082398728137463476043908005830597601658694559259514372787731578647853362243166507992022745923757048005172782004902974608733878931801138822083571979289855933166906207749091169700995832824534721307227786057216379162765595750819575853801549062123936404388336483667851731778039884914257312283506172567122221934053455346717751232157952448896987026339359971396547552961636257776047067418518821477994983176013792035849931371936273135700168598292496508023613653251235945771778401799913633503222806712719034691181331543046611905339996957918517076900945983194211889899442758623440950852209384187245200951022241485767014203801043764752771644458009683758679239379264394108347755680501530239211943138170412326235468077985863331141387122517935744730705602100619986917880094976473667160475358499283667225474278166163739337268379089006173571415353658703251187182983308801962481752500566821658613011358268362728263526922059718884994650439209765311318453101148983196445386459464682727854085045062451264371931464352086116324276060847011754387995264589033937745581525501403505568429022189552324456562992546407758295743531727144931862204658248512005040411656680604906902925353072227344647667422999251775027989987392783573729110267358919038473375179044864424188429184553153285404012899551365277607337968683874514873882083486619050142272806278801055831456110192340759853483807936635344614068557254352158971690717354630321235201309889770649734053748170745640834776830307828626184787517548799123553877994495982249562023597558612491769729431290100368200475429559609719952201256385795518119218942467447200768866359763203012368457258553764077167560171333524211228945424487038584607081204704446666071577598880435506012847866500563722445305183268700412512680493290834492113990540880900564612688021714843988647757326113570936138842275154499856827580619564200542878708487787668671152039173974553028306345116502732977240711089649634833789913031908708895900097114842367439662046018926691788267581281902639934101127060844649431305822020055812139912969890298316434592122276929545833970217717298778066970694858948276889654088874464220060053003315530534599308334716985649316326142377150532360006192272430671098427482108872976568885304296347086809853321314241076583050605805973455061798195191073630674292291036688822963334617830430245769178212386832916082284655691406304387663810873356587702237109446765358742497397242373436408329735158680436678483113015782428145738930112883767560052629742683809033021000306987987547562754591428581822131023181243051605980699178670157548624832546256156114181721232141392755592921899847914528759386695384149446961106333610155472325065601277979876986216921885044013821665495989464987154200220192880824213062261999125413164245372505453239926106812548852025922765845228184834460669251741414515576498560205046536640971452024855145409872207932661125333440865328863751396775873027715319687726652054935859531333222890204993462503411384276975871203492019290201557869002993206495305743364879580048790715767621795559896643406362985247049244985231957937316798522116271195613192110231271331215704403767886577967225959139685890101508978811709712385164165828998521159107323372545912724295651910752732568394928359597032818196696961299766964442242621962152157281864179443614104155784250955848495465862595082359769390983487211413269036917312443535910171446989354308771840051760094151531336326157850982556143450344265889090714882427574032053870688771186252441125169477239383951934769278812845795589578784407648313869321800595496876403228695726062918496995355516577563657279001620008096933273725542061558048919537372671189012310827372791888500725965230721525815730222382681762081896176071350758721302371911296725397772925998485133424317702997680921624241651650186763816062821144435837512356972104900245150383257462288446527032533547881579217661068180471882723766127667414065097464853025403644025503722450701750089121628507102715527780016187588063603673199608466389124690985314344110789309587985450572304018025243679602615437027215091435920029800898574886466811399160455460524013130959174152551866439222912789385776601999245759095191782141413574238627480240396735782471058820316351347684414873911601386685331062228485023283784428825886651159993091813286557312588999240896410823909136507575401476738947717966707230734782159126771220228050850016739155109025367057871757592645797675119941068327610456577042569967138642714514657391760188625230728549278002100228142682418013294855133688229097393437949753961078099165325494101301066656095307999122199881078498642388538264481645896141756260767014611646166243018377385762847020436601153729519397152587196732852181918708932121407217649987427751940530248959418770382164078560383461687446840113281557141746374051600631170994350188634580125660098658787565419434469579721459818732163605278185225807333592249660446054887595675153399536518138327302073113466101734862586603368005287704364776614056649749828743358447874636257639224199854569484009470505634329841776347426760903110060311189108539752228299813987849572656901422938727734091457114226973586649470590962391547036584623491620079218121843953340429965789291162045873360330710187695934379463447886404103886115239275015925372421160456342013826433643749457643008822302034421553701778236479380293430005771128362324502330687293240856051461009515568741948106795849492423870304697388968294463225130134016217411592595444876259087799253240012510283316534846155911644890883450660524833031688759904171992893883824971676513975459069096326354831652659471702697967283049803448822574153291632894413437875571442094822319625436643811989795820247491206411338151552449290759756930191860661725108401514429599972736527492073098676466696036241623889103376689817690908025698502265646216862768869946613645876689991895109755807153306521914295888511772056930214551036129146359909066044169143932521335972273518302970783561168946010445761589527072360026938257427647440325070718537789185125580689013845007957725002741724254256276806961580754587199245340893747772106402051538910687259260799317295944196965204174455580762260655151220259076285598178053641434547690135342293245125836413588850826234382038308308697156447305856311707471440120668046391296306584201554430508000286911911433348261947031484779017849523354391216917877337365925339853262883091279244519492964163728571515615267205672214917698880517247997169672966676038457870983793911747611288314362055317185701646196462003752422317804229975115069613909608098352053142571956987955887034424829649780312499565280622924187469898750059432867955417212547349573444875439452115556509569520322124814338056426766932988758891830242986600493719310754876668327999705849931794562010141382022733940371057965685891118792938760618128421891941256935364170561360288084070547724802069192901142346781773029075064303667292073298015594752562023324183302746265750693262740199219447710001702978096751547086855646431255839292512935376773000978062944710851886975134282968071959134776849029090701544947642415448202694416278173958530149267554820130128734535243409107452136165939874911868041507676225756782379069254087821156782464503272164746245292027773414709909873214960867612999287578721405235894637086130230536541847828489983221678952748235011148834042902875612735186844634235772994229104803549979181832628325991899372838245985477228819504877169727941458098859820402821243761031097902574811749039577548201105875051507358439829813541414056703584529519988620840351052442003604071281116667703594614067102565986198726572309631437595904974062261212855204552183346916311415538607979278665593727325293996593519218783518075346655972148278356175586063132952982438444610192119352466863011429009280917403529332632036440408411693633461562526793660908896726905607021054208414649250659054078993682016530686301150484558817813790638770411380966829947564536097624696310314574561974502833705726234468018636086760978630567584825011684335900201233029617770043276934126526028264215860463221981772904312494803042525156155016839073908687040145179926724917841186257982668331330724496278379519024429720174548563353216012679028112620734290829548567849953615291271035209569842702449023426336446449221702178714527553348458957919101658873436127617512076146548462772452366590916095803771430102324453749222018109255629739042088964543479364894998412662819582745615336132460419502168800489502890317341560415474408638540495137069938060742781918953883270833966060221047433342400460738097828552310650678666353792671414129212175462205446196086729113799348718456291906369123069782613412925949198864947076677759375261913167370146798161130794478849098061260578191017205974260452438642773217932931679572741424494715390382133022673705512268088682380193945268410811044413302426098270291976716685394503439894753803638353114693366170289327228239652443258634791394348938762075942464220656894184766474845294632444352560203353646398723341919609721157453502535846440227578228994575476112666058364995726102881933189104670066445463106430245953319494412342297178420813117118314750019005024204182985659827926992502117611300920097736892020397444335838396549566065140030616634426229523206562744422225259428706109260050485734298871847579239655593152382723393796027582934717918336889192254897196115768229821122994105541004748404121286595064852340535772487668156838761660208203564580021815303078516913991798101830372032714575285805545964221601910656853116760419614974836324970045215000855642856055254430007976175838231605955368363882749943634541847948134185933620381999101627090982985954428536365090810451449591719425245380956482245780094395331935000052176916452506420346945647831669269007554754733227581234232502130779670704014157225433888770629120386959365529600873886226203305333447357917051758191573326474804165955606763402474105969754496678365216996523943753769356849283482375684930103761836902881773916789112961986574174442907508269874075161413358109292932529904273621409921152035927908451609258173077693845098706480123073201076218078982044777686319060971793604455476295812605095621346467661139030878420876304411160881191087345246185665386619277679367392809802118276821495439480130890336629346941409962028952561259199252369858796217488041529161529162943407072232552352071503369263488687860308734135626405137899561886384963214086369328837315125752172278599765124446551496476257995357781285867766217502703842175223038909576181528901242520242483236497068655779692478831820234976236043936159638282338382609904103362737042415065284549842054420722900939447866689752891794019678987910512188252859913856747023372565290459630146142628478551145975403747417389511715279676080559669167604760640285999765098500093147660888850265011048826790520085288459340629092138843634847850817997240166891735479847836801231459957957273545596564104923152228063240155766535896209407321460911982938417568826433392964114996366479202855087898185790461447997449318386356516726188428324032644491079211399311682068872612049768607104786044612128784010140154124637117008158396461249819094458841729022068181113740818624884755218448221541408087866064976673716935898763253957178814854404367079690296356407551161350076846546574087065809298820994141780442541382089561385097440786664971726660633076464535814117652334371587131620208025228216529631102431301725350862024526713780074232025323526047486406981463454118567599721432511664948442748935900171288873380867967572902390596241709217639007726503648746207812383907281461336782804644329755943176451889663626410454431865292702089454499992801538469837576494394525198722289698323228775516821343017524811308013530030383798618884138063473286117235175435823405594555876546302071887839718382540424483668586147085222518622119263693247312480091360390207515604078183156029580660533639845279834231383356297127743195649321072114394328091766482066883378310594561564826964192111145721807958242544917986522314652940451879974649231529184705534527738852133144583674102623636318048145801065985930176011378193511600422801472495601343818170821403164118239556409717684600551397565392298723388984383647696295763732827241321774209255568904109831221031451542853242606756400626802606887824715630150144311601841743403366451636247555095383839316356473674352131307533077560882805980550472076654747367281402215412397464864795524143003943939186239815197352558993358996268998797306100813768137438621413564532871472792704121060275144113448179729616168571825154710454744164071485644387318096817497939448543061363062087942211216633887809199086920505128312568982791372641147270416302161856569818371954153311758489415988046042756409598564726579956929707061986269820840397756202532045333905041247343508191865410301080099247898643923254102946695387499014064742124520237751993838755120143990291074552637973212174803663589577700523505435291167815013785043804151627581869903461403185252499186570818394938937032805940741407123972531936895309065768186027591798586940128000998530740324052397274368086274129265958742313841900634361220341227800696392573423810357254251607618976893195509114515368916716709697686587021942761531772072899750705830440191430344048662488079886281369896979028220883328293691247552747203267315534481923948082880342715001335320275862247553173675402156107347957249829611352333293126472151189413015872951739139099788363509859151802541083767535824572685564554086036893673445071115190856837637130375842671937345965002831213622315533868190290630836957531653095332283173118372213477693351430094557634883801476417887171508259372988504198272277049258526735779997970707523604438267070264414254767366765358117694431598540891788080055934247331784876991217324618930315325295543659683122730931782777428864006113817860998125610630362481686828504323540967118575803920467626191506132857589562150808664901380059630780641377459639353859044097078648835567271987357822744165438493163196343982900029843299610125523913130478220635624986989642152233884992475715268507801100759029726304079516119582447481476994709914762444322236586181298037030455807741005160546387827039009084382529121477314511522357746481737692626203471233248146366661900945087113122845275555431055611099041663244537771865112715054876866812347338603187670619772877300954907020470612323889825547743083903256138039463222911653961667728263406199725594260840597404653308478942555252782901057826327981503846623903830348153619274733218140330804467628784871070370981494808032192662449757372971743978505228431120147541144790204146013491980211731454135942210580178310287468027466439252675985498278568019905057677729858979005694184860075249012208992658314199085269815704546543570763353068961125526796423512801012893755158231472343012483262402746278694366939185230541919611918057439054269011716670101631200848311940773887162623327424830796280106258867802126393300799023230648968944923331389244497786874291405651627314626002429636537171193022219768267558035753377519124809724836867992429981691104841464888281922936142442187364995165025322110005835558888447287899665924477027582690842391434257798108229755264174953422264229441150147219024930119815114133093403714718524845978264541907444264888967279886384455921137502880173368107120881763522539135837603375311162802454569614976223085330588075823614786715106597710980125123176771824819170368863662332234483348544046182443410188677250761252356164507638626063544522312418299231439191970672921082273921398995551206274644724155060222798899986725661009166377723386247372532099521257324140528204427478705731229966949474365692491308868601494544218374287398722109150147527025452722425620659038961437002430487028042009245013290836685800678883776712309585023715305699237188387067006774736199158445363135138015031756191521441143489866198541782357340820151648715858578897619570598836343316945310362520198776301293735448848452665923992890811908580040780980498201245974385850842897820786756939183286467740993814416976791205061495641910430467053621061385395015581507663258675913472886139098659191531107903078610836937620002968905167503866308324677189793750294738529713740168327276101371362717638309815202341350647792166201301491379779923714374791566838239369307843779898052769902633726337303187137008680997763840608543248998616940586228325322550381097097846935187058514470795119238507779469815943130017524201911024111180943571161986748309852988734401644191296547995013843331244595751345534872079198304531401160374771087726831144664472250248531724991790254322463926446345491625132528005765372537222158809654840051712560939507734989267036679260561753621543446672358197610307140310656308505716541147900594652122392433781243090434582938814689512706171336110061850767407111953579140854479842287017034353692986827978723634673611469950189759744277975646590759150346902082457984163838839342059429687441212136397865336539186580201873274301430230517467594671215060669047907287480883257917961234524503860134065576388122997131950479730410800170710912381556452713852711702177186038541829670689290431084485254566652487233634526867520895360576770529867171718306102842639135546677610340618234218332981431850388605104395216989045205376802538744518788585017490742374061562434467520149569525896539934589565984254733709613925028789842208498155981525373175431817191593706068930040578198069118821341485330655716825554846271709363334315499320063653059826646497246071493629749320571370065956671012725514759853984845671608423471273242553378264086230748327528314989066116419645428819998864974194018576389578836689312092758813310801661962770892510605720972548958251122453737154487851245640628170712424975835970274224652992414844390109062728613935992547492286046321026083937378218458516106012572581860853449052757153742846247117208325102033983390400857143175167768194199951748962506971080003937778647376536808219584949707975676393465056838416797151665439636642722458342307200537979249083547856180989682741321652985153898639193941050631421749639286484637067959262460652202212942670895905903277295494032983831745879375059163192071623452837730616660625875340609009890906021734318119563394523134242823893446484312531004085150685345390334283806761862910087739150196860756006885116258768772371490699797784324726252619499381655205351178923131497566940197104790110271896643734520275600783411000320872334941463485879915848775064241008495346139245829944745002175543840760385010397551732607920658633991319511433525812815930646300941539506621148672459257503501262964520591030609154217129109079201168293199995930471196124568280020451694820964913092656740141358325805669488075204954467563472228961233152144298435754427712006602620379088818705818323396960003470744347820358161322347310622771556776840540881672039817598701070342251579947525701750605245995703824480040274728952793714794666358708762692555914923381716772303343064950882377559620525266839017964057706002046496419954635703409508814739426192227911442223521255123401589449895056389502966362269612672392372802635591991352113535410043076129609121078207809557606812071827590504528989602771512459380787581387841268524439801003728120389495940187727382519999130901128621796048061021194479028590207529597118012528391690556829377136245829533805030692271092409184782684070737552906600444516872859632821413615801137216830682473816662528907222999815348673490661971302096894461934336369322546916544862815018219064430062479337581816381743570089337537914692526376299027998611075002189558837409350792973760756168281996776816038083124001538125783913169441385502960792618754290407824494260496681409721326207037211933314549647715817382460893772461925995544108852025411723593964698496120799960441284565144257954826343647659727812427712442407305433384370023113103886638767638738277883413783983660304521199368232360134606087037176361444092499657390405896525812423025762712032370731870800515774746466134574461361548661174811274028364539432562301557040072674577830651244392859444456679728664568706397084696083744550409248606421135349946402512810554261035810259611949074121889059976165151470101225878090332961882161912143067416044384025711595191148095457310745532845140512892502252527612684062204215264107442109670947720195655762087542861354336375672173276536778263323900221735635796625763827095326827668131323021455759856225746539232229485468388480476555087823159670513877080625744872894386926004551886245016273289195782351167490300401023079196974650619873807207958455862828199685869895157519825694764091436282760953242820729883402277234095857667604551727274603355782771529248000064853027879515144468529641277546554220889055802602453728709816897447230474832202572291374029803177369626900063335363405356832312851476464356755945896422047674004180987372839538774306822870721867360667912402628468095667167080651459023943111539302754781302431215660387407345599672190912865027199183300175190292570402459362491118730968531674068406558365348266240678232080511978622054968759555216386172644054755999152179769910496634638822584170108101226475896901307227577960099412648820598415954173507170424620105780773442444708919915620401989494856349758226529429844635684138020599142287941214027996644033309122043830034332129791712313723612654923320584243751555573386438426873681850705051657624684649706914348133784332699589726695547829549627711949134474971076051361790649234984067546213321517226835380773646913936407829831097201081946133145610071831833705348052165351398075499944429167902810755285819259276311465981800524967992202731754682908058262244766152713494916061691244091266783827158180516294959156817527369530771836876156679812301506164828045998160198652161739598825979434389531583336165959863974458257931548721955962379561573647608324265163140200640160936593821257409352548931004472836261103101001433584435357390440610504309108536280915574520794300420499544479721010807020208416436482880347488594322808625460426597529007885422992095861606625009790255822706399028730412320893772211787002410405594212140556181925701808570586844610105669797330222092820233960384316968982729057015258856844607274803937813242975623150524699333763764084015324668262713122566353257477188234971453080943575521921524982438737821348270347742850919985994478150314446046959660613582093408185043749935605317218229954364416020124011565988100439238890184506931037883943853550641182388436076302149094288033011113971108786276789137218865493819582287251188284535935172156324303608521304277365178342190589613695426646418434019004485612372898333292449270970803164232096700163175677046228368490799425454772273844809048194193238909384983897552491025721575768109611567428404600846569427601190834839804678604637971705558582453153919360384927660661505901337579560734886253223314744674627349303257231580952151635723388238321239402539931206636179251071397763543480617813304933996767588760284224012801351360619605700555041175357768279846126782415797452729383061430428922238609184688214264517628207881392045830369309615360749960307962716000333935240171682105450120380558462450157782509206929355853293760448346303429992488444582619631885366684319241368413536670785261467620440088866210401424414890679160859805573035495216240768448658682879672290256774119273446007983437888586254828721494728618145438900247074097763909115842470207206768252402409720263571616595386685549699488198114379411340622570324136354830147930107145613365715798506971535377112589262979078154762730913739614009521598567359656381351489424031615057724829614437932296060146874054028095747072170660140196175707649863135980926047394815852239164111894470378757963646807879596493065292988876680117455167418848456120634406484964442599966193357499054528039595176294135830925570956593923767166912678816320152394610265836006802836421947315283614887341342754346944962831132709576568163637078886735567339567381723083893123282593603416450209159106899443227203459259877542048517721984191790623291241252392006974116836214119066585570204894175223697822034445871113052941318317226218474272326802637260442121490272028332533670224514403688890355632590609591699466576236706905800805173692828894146497307540866400752613808202899722378597182663137549198770914397261828276233241121017602844409431675215144127190444051668995116484266231941302918613211653382995911174713793556046420747526934143380464919061890055880431268036163565717183246769418694474624031046913785955316710842379584111755467205991841335863433324258204541492885771471961588913344880512879033559339675348609768985741728016375391135223335971791189113321344745805612563122221039113476232089074204047321496621455495196552365589043463681622995285443744486982729044251791230285275653524350012447643791159221831730477774473530574621966475338039025344273506298808613637071658718130285476712753933169181169998744398309460303475157894179180506820586356582619593648512542192879702717792492763050838766839312216879344753035376621556099035332843888614562568774399766053845770017512575066286336097153748600620648152035780643570037548675276812279740340974175679523896144216333511589078618569674066837196393335283119337710658499956517012514357491783151886967243245427228469630739287125187304228913084998573268339676911892735398392132891015863791436026147053515342246446030000949329847231855260060343695733613524678088440706126328018949496561088375747755920727350712336371478187234149983251806194131219269172965244387024120976758260551087915771982373740840260941249578526831840860248944288853232858848018180124889615494583346043811786338601771534962988696934864213455161836821583931604495495586763636040757317481297466730762562660345285550634784652837747384142324898110282355598687687719223203387814462095896569027620674764838738147641151062264225993232802131486860164985588997094427481283901462868362929839856478419641567217654604433806856645983240812172820567639758709414759324919514773301724834341663081513681658200793353689469678833826369366283736456469508469882661856389664042334049734718735284770090259208698335444958089207574140451117296774602006919405620204027218398212965827143123190112485496380174007385455325682525674415206896265787973122950563693766743121610900772696415869757137663323084175615565125702360568639395784614708990692729885574003404088336397005223279615690532431222252321028847706391209113898284163837570885487244448476699547786777931953962506509424726255758291991238246121153637221735523875716469860197528299871124220488785041670032766063964083212540221629187488689062813678551453968666125165207791130718343550656788122731257335097715356272887443015821031115636377157016229128683260424076025638189826965190779495023788806895542216441587814214769117343193133320512395835849438669572070638553844552014867920082037598386549043637978554542855259423728121837007686243494595228086201267177322846497590870572850434080041353138198188017077173180071304473199362819850660663346597635408655464185903305078752218738933014145867786783203778476159229549088493042443606615166665301078035216422009791819157037740695836274002048558246970069238656694601920728598999172365555913772450076688293785845465802706322508468563810184523826474477638199966251899708541145119098902202236077050787487722228532295387545793909745353729650034774955579267085066800286534202450444668907359236973509605568235962805179375138075370577912797322509346185927863815320867275929188854901082308562207823454310939034476422062123742353889154386298055523398025164220421330757786146433173899071379563761678793277371925454883492348441788948324470619103372683894676400209986185641517897254456931159474676041228383107303510913189447527856417357905724968484108738315649886643046241614378263811245314384141277289888979281040466062737168298537388620767462276684526170053428850184570794540522406138630409805340518222232450191381667852628925016776401357782185150204455740408676222896371097154393324392915647705686847549617892243519473086803999757788540483824729149145780308341283528553247651134669221347829804373224708523734642595306565775285664173692954002306504992740918523743741923078878669584652324297894414312795715226645409930289777307953219891607103645031958944936698245671456014806374733671077119455873038217453038246134954573167249895204990136641563426498169076106552659616538971002543867671748431621594059689572587588128435644676612233665976136914201568898145034958501619172337095009256038475991425732165142820961675718286233781500510826656568224390936773379523692459005025098645100309439109427396047991629596003224772765308716390343496366235400552177611071032328079496816818100795167948263180583652609570797590188367983395234970798344648831399039150869520109000169025721778782644693043609195540666465007328214250769886725335183479953444387490687799874007073742199982818293742863020485010643377004985106852682317339264386772474510791453983846220339845952740244324391187104313789478436078572595555707188204068111780157249963104092232833524850371629459506953457108177503835788867632179706984176431600024291977598200506231785074140079204380846314943480486941066777375506023931151886522623139109702209421757786150211358095864818536688192321854559514234688348485838384758299044183249337544898373844556481942831563466479061387245584037787694728921158160860099709763606497400529920229822579060003359962652735023388383488942263698353337649111602395821940344617602072891238046008286755154346432550167928190484068656075986109725653684661867790836256133617549700729938263320132943270931747855892810322661731856387382801606124900405977510063481758724977729061083688739174873430374254830187164472302559730352817460630337049301090714231000458994037741125810580477105190562235197396082024254711683374308839480886937401797799474175712729778848422539163669771723909110832819938835989640375305416752892779926817427074580712862591972171043295652454419158447226649370914099625330677143836837990851096812161117470850639450254736856246317414972801767104060652865440455480009683191467156022338978212056881649329902202899688525500073604876800887098510189992497582688813429948507009357515161448557643786595451511832707630096071350214787310860707406593557864692733175252919462848199389726843837770695320257056255462391576795019682153932069265495459553253408334214588295428928706655156905990153827633091693311815268715933603174149472334007697834351443366899627016184699530536373731996982170136449142629935468613259977733711089982892553119462061806666624429378458732673607075307619864590012203122369058845741195105461340723775492803588609237723765401431681930005135822157135509442874188544225114815911744773875995380849901531487153732190132550658500394127622815250503483062177963638682025425941500493984740792299528673105682542615160804019022153008999336706306317732346834491031767644565826658759520154258984196831719469608834583083966702725651002460207762311235690094110094638356009021400838142053364366106755737623052257374814310346652283316181502107257398605529862471289394118594511329845676097690370117743761003418249537031858492157774044154603992757398101919290659209667605764200677924381967515420690721339234634332005973645942510638569374812284146269664115865623094712887534156650249323273174320599436707449258976056773427560838702448246727179324986644010519309785425580313247501483188344059534211228638561271379476224637304212485845536003403178327940960183088823793348903621752602469675679947463679469600327100996355514315904585297078553557869969873950998610441221289925900800306455061611804055044358226914887300475537933855453853108000992778000808499900146517861304920535400904093176420769133435679766949295097182212774743240957215998490914554200567430309299307851415143158979886656715252873587190190786891806586881851090585424030773984024044333954190354239344079852854601094753695108272869080052286453600078593195790103085263349336852715795251330312456143642192952257863088358989389387166197228677113291109092247864399320703953508428001030981528841473213581815995991119420345525074218844019878023363170304566849380109500043606582987441014472974267317947570573547857549033049402905205956052877444597139084166273539930363085063184628553684152757728104246618452078341206709939049610943676177711488052814048845140472417731538547177115271586368141067729696782159156649977128705740602379030932091574752693683948511619892682607986083413492763940279483291655304310109165198252776214951655806088092049600077863272834766086376071612495071577795716577288989496152944087879544315351110196587597404175999002050264449966101774520181032106768146326177904098370576523404875681700302084675185084953390311679188373098748694331372133221185070533102107247239723762828265722125837971792424943963759813899347702452115072588875803747856905294722087783660282283682309292312936980350923096310052437336647176483711607238249301700735444823571948906428517076447174000951142345084566698586369811141515508100591158519123880986619157177338278133506937228651197873508107283347761415108278201521698528731068338297568900785026231132938711947600250766302830651546188827593915336619117798820337670215299586971837822209769599739520833035433658188055019761087466851933335047631766443275910105884515195034740409377410064895341854745470781782343154499433440404228443676001484449892408046651553977226278106250380252704900536479305972803207062824528935292345127929714467514014162513411863399307806232608064140819181648636642064065587374902117829217878415602937821537122843364338842589742093692857871198969171765083973517738825368866991779246111362240314516461215986962808645393921875384004957125336405862960601381626457650768646727993837067637530130560854309757114222990432839589101512556968124221578452262535624509386471750600542987221815031473587053394129730362188605496855087842805711220161550593592092753719302310101307458723702034421947797402539042155079002918916777432289003226414179351082945908266396894261489010113591382623004133269573807113603869768416601554794686732250273900100658567634326218868312511057394753027777367446496085669417686852121215955863388990537819966605237440425221581902220892058957660939286329784930837921583332622228476203643850647281449066572059865884341284477865587629786341199160428235848457169605735834191783016299204555742156527378447990699215542896388822264481465188002328073291855166618124427844020016880820547460472401983322030062077536911099340838769878800764601600180268611811996886365373200029297293092496813477537067387254902448309165238879928120178067046279169462054926009780476867919685247073134386575048478302114324184961512982797712552247980193675704492721019776094408474909543625181384303509056998877295836847796286133575366307828100941337712900162114549265793794687323724820373966008745479926196986366349119293739887981168430229781007204013073610411625854547126623718777365974304626463014131336475918503024320668665918137749154087509312526902215001273248504188881211514257662931008308114880250822631456268231938686964107771934946883757889053106089142156060809155811430582300051815011867902712843922000321996835179189139080000743981148857782400348809331328145971065224342315975582274951624820071210295608951560349827362314298550328409211734832686075768162012726595977961635289251017484959211936746857195684872239554814480540483200701471691013584289239825825864515301121018215598709593723026075721264160643690147764651867585705985575020650782013673433167856378351903337223032101653240026931627534495357401753149553365311168193333863555647798025768580379698627329623101259473138503081216737555638967773484424496176050979900738174912467765760484040096765724889620565344138328076575855748161044007985270861284352741128701044355060153300552241824013710650327038039314481811280908415104907315080925544563865617059121655167662946420307256298890273933158130941617464114974240389499858979817053697614783821886250937140328995214610665040937484459915722558726220359836912140741810256131294484325140230290889782477701003508343843742796209452818681566029205980489746418019432501258365592828050884177963013764391389157497708440954944250266332610872345659094977199462971406391769140079389331643266206424851540598564861729560342706327646628416014071259109799095283796922524656652072258054082063458829495479057837658701916912718777273035606759707049994344091804523394179584848152263943357075835139283031163326683205478508796258183954719797869731756939486042807375540124836320927633151680139913100145049894442518103698645467900346372962776422837655811702574841560631526660698782767986833033727886809454275563718811486073203202055442585767903257515879796271076796966441142466211436649799485747040963894731840427268372753898808765502731528924956615572980388158769830701713770611192836989164541348510437706055924658540195397366345250656871538600691170459756079355784098518156456507688293147119624409009783196264678074055837072371501269475786084717896603590485679451549198072666661467613530645919362015909326313228661833366178387888528756454624592376378430917165502328706874070339520737089389174908585699690251689111089971045565359688730997117084392675806294062531741588654532307845467111435728837342286304804018293940344586665508033563564278568630772847508675472582625458921979396258245592302866458630923059722605790324341528758976604513294159238277064608982016806274856026418770498813662008895821505935383705144577817421661387151367765064496822492375890180232996088089194567284724090552501331649582689622224930075863001584626110908320041610667652155693118245631328730798380868975475068096300257710956475604952030390057263036682141257941823770623283484419153028316308156884271433505373829386763675389787784688758511175167396139923488892725894395236820337638494077705946340772049943996118336332286373929295952525623474911042624482362810888351280322307094336468925455704286084821144102317462234470081771679923621852958083832626284094019739195448661742007271873981838322287284208321724729742107251194408994817902928607648036865821694918396139928858803923237145679813424629867159744388323610353715144325415099952952052678046693312686892019581517644835575444028094146448970436796945766604329986818455532882305870636079775726149328493097099247276378059201542490278828875586599336465316630294748583066901801784429251800078742346050062935494811791579671305545406340440166066620990207228544651582464712827370098144557768864982850799901301302817486826498085864581200421207416700897776952906576992593798139587662433431899711251473826338551571305700892378738726564332430853255224059853914868064620419383856990899782710413128052463038871328446650269770149777444605752922841767001874437779431594846937260490215945264158741541136628179414386664381385240736962256069926100432877345589606158089050142313295736318750967439210565009479988935065045753198889311897262139770138494908631156388664777549641895613272982881793985187154451505252731059376228272722866281927792997497307231959231841589341438298454355103860582612541331717512855990568050241419146289696540108664573931683043164375072890946889136465249082446238771639890277567289875312041547450115101236668466333198992520155467223694812953930263997986956869885354611889441741192422043111514667318078682564336609198070126023314141063397014095347262403227404056850904306507929823174577523350833972634578907211951258787913118545162700070205259362993601771248921304401141948348283807960603155467927063425693818906617063233908202328687674625916807381658553009610147720137680605356781845159275524258282189063367923939318291748589760553121931314220289145311606779085868417058779043312618450349311599466540329303626814129960243852594469050201578265235314611356708953953956750986625170332561630340218024568654486163962998611040688544908454567360553718349323004260208272695329852895434944515775405138727215343515680494596022095305880670301543048066210097124757156666541135534484543922021752118002663604804341857260672630667979565765381968672323180398628452161579006334216975214596444003991222398090691499984098980328128033932640638566955824885811159766056935812922762717916539863956497744491419645342906157246849162734993838748015154687614844710095647181831238233367927111435674588972654038395252456046401555825171509627380244123756018370752059311979544554378285435915288971324130483550525485838437455098511211966484257585655174942286168405275192550867889797172104761096691682980049658429430370720648205743272221830918605560386326247756228594382924606620860946845304898037994505560451560529587406144292914843292210919306717323513125680716958042374469203551992082044689926895736198395255679392803533074988252961549192719697786035099575130760671801241636163878850104669238584342253977543418783814834947747510092757638277476418361559147951049544798864641794790321419979181150682692502043711766984862764913965176528761111040172754259727514555556576619075577657728103637494770456774546710304081284796660367135053229471788964390646535403712390465697300641660967324403785065919151987819816214382952286235223276108355277742478570810580050235225511847881636932434942711321086581466403496736940124404529567167873514047893671127579576025959054780875273395200798717877746293833225132796696237761146771528887157138693606352678693437267243781786740087900394881190336762478502549775433876598620940830591773361333083483330613662462059356214482681128357877427556540528947699848188880160045136016438640785674037630893949371090821443553140871373388500139916581413592324967638741802855333192398683391004979904353631457873525800935930319914869787521925804886187338976023267456416401994498646997048413491688107383827566015219495845516152664475045253891299729289973389165511301728522231118104757363391705203286117811659350170634637283955783963638124666271743525363241060255676113257454211467606667129420952672520349599873989805615598040242195865802413533382816905535118593267003735261226672600982897512965315793624513502838902861517622265462173492477696013859217990763689030774739474281058464025627619516394834071201742614407508315413937610250476328864699075914806458581079594663885558993110197563593398360482020376058966143009472846974893484091493185318982065248702501593342209093358758710461434258288394683445419495257248544710259844437614793349065581832221008305365393855032265182048464432737354475585056932240372539615496996244332765403112295524913652900743820470766279231969999776597778402415710556755145127255158118180401099746663619391262202898983381548069072323938977922327595599049204251643105876407300638104607335594452808020549051508154698172767013585303845332581073928141252664198874657884419809826037804310183497154566680599912211741603201394996429116591272302637328992036975755159768234328081384865410878392749121453892451261428105140513582770787387303347979424853285571351419187489353396007559348690298488194370063735553165307784282774725247637819669318817627882147441173515800966054491158589376865242495327976254582234876997729912019085823626127737938441438964172515488889606491748819217006013634177857140352009385486895780356155860035700305428341716409224889157104629777216601083756892838150575001113285730590319373220999371207296335543221865397919405453153664089255543275160776999070306271934224847032792685054483162117144391389638610511192303908568330541197471884419747717371587849638529816936568530058635564998067994657621665105014854145510801915019801291635841502610796590558360018103779576013965653562917260445256314371854942404388579290435638716982106832303014825273415651831690646218880297560876875889088273558897489121116662137296962560300332288297218620406873661579388992196083777696018195233023690226654020741032433947920178083678355874068512919235887612259346187415669321286677118934318050098628670009047442339525461078242867285293629122656859591471059296537375026437912452333046910135994537811635121506611874905446639041455375905945942218738113477593764696407266907248746623959225273313321648171179531381149384100549934028212697156353899163222591848044364598204122460423982810057608548301044353304059938240640403853302191357503949985949811798744920162315546761817898550234619001084106869165500802248957648908367004662589977506712793350898829610620307214886195352111339834350392308045369571913384088046843416402985968802320885296982898547696756786207076792877748544217802723820473415419887649334571490837943245589675677448657927964354107085911625529136971963612490660971129522445385641041230396250194592912608478613248483055706580126532858328782440589764809626098610739610810022674781737798994710172397917130435262950909587344451481069800665945259866182879199217076534998953042139399410535470391744553984022602615206021845123002898228358675923297150207272718453263376891909790635950306879052626969227752908124607380048563483874467050435322022644792517416771626504911363328708709251772559535746254061745517649254108775942849421882194344498986137160384720358486003545319095718083248136411872797244487453527538034548771888285802338907452276503986919809247303355969704235803408380483267366678708652466284632310864296766238973383855379485046606561970424387487959450775779392832045797665970486163388340561067769576984009569560924876606595057229488114996389656384571469840469804999385991857439607750151657011409896338519640819035339252866793505967916580765851731764616228817573219242965924871856562000399513447104930634522412687016818992543918114753595896158942961291226869681261394403379698660641739390221496043424293151183347527742983943389542116752407380576541163492221475502188227410541582014558767261698675032313312046339284816019662156071793594060186673899223467978040928213473510701499368967066775274156002254501538441355396618345959777471199027132923101799920103416704732052960969948234821677254495175382109041939631347392392135909409338552527125927351718668771559458044120960339220087724561189699888198786389838571965351713594224748493891389310677359348023441954524284639084344600762940953915753509026222961311139248403357764515109987377552793867930144360894968153538332121522122693613824601628056584507836428897507700146714480712849454970529970582688033956024333416827119865303773562783297589227928942129064424493525520980191551317386915442038488041369745373413652305101929478991558486377376007465440728253692340885166015008706222279926398799059707669584846774748001676743122436557538080427460803964309240814263491198057835875275814914222305628338400386363528870933023952734338313759097048722529390814800314064961554517585447982277870648454684845679146617872065431044410064662080927193984945208794230556796494281556150518440203473449650996415935570061385348767925190522041509268136833661362749596716417456219130424059967926375451988946491190911776367989462189020252261419659784899093800112743633613996703698148193763208091781523312142310827713797577506159908871920100725295652212496314464786814116072675930735285102366782693384569562167445222455877783059694196588498503776133093377959254136800704865848062751896535932629477585354884158549042384781287477839217702655792291271979085764319478811331572322062762268129679135952854873772799905170742116203142064083411869886509947612671262936479968296030815171673865512121775849788321095758109322605772119431136701753495677486698378353383863483307250451720943915760280822899660341520435405075568000217762117785482495770539650892847905833844704163282648792950259963168008149589615210623820179159909971911158764611086840089367938502299883168705137146444883965749051752905634922227291317335699975322905889014503604324688658330290905166684255032206057625929734887692965253292419425887275553229539167868711365221807334382679552995980659929057339549113465764143690124309999243924869014607869670233852825708173422481603083722893095948014547594497488556373058178906151274470785092299932885990319846996540576206128720455434305141252385059910151919869889344762938252803240239412927905992669213022504490790873543786265259523258206302140747163876612625698934804543504223146173292246957079259631012778683897684703782961009880678551226653468471100905200584930565651615329483099185697463024418665291069024581382703176103885438519791810536333382353822517094430151778664780612233095422181588435773108283260211461764895036400218793170305463125828087025539503901229617643781267710337152761657375269549693196266235164350611254501402104059011008415431061909402172244442283561375727306094686051628637830696567982111938209392988132476461206196327260185224495968641071872042324113044145133598246413327512567699849263085337274122008507565149849499484810895875141496790994051245908978424006442336090614157405720056447549192921590100813473033764104972401657450949241314355552813648940041554387757332108613279902474307607533380893784339567361951683077738016133845590124405262456288952633875182104144035598420983454168077234665084819702776711484026508411094353624509059013030872174460750564991483582071925979512098949519510606331650062902178624480337967693254130497293709086575336045873406061515405405172971455447751650739595946208157457880100310976959893766793171281145705681034105298275499397360827575518980604500080995611500571304257680969717915173372051609688607335902835696767405284255596587519662425894997823808498483056633986079502416131867615065449998591164948219147497733978150955201146456832404750354015796385117520955724596154090960050167634948640979415191727198814373898274021465693390777878170114851590369145794764573334645257622459702329590461167864588054457480295096677337820149370899585009661298733282208335527148941413979536822489062238115763265009844822845977465639873605344124008227634679549547176369866817034687377930745553210405000458531904633480259844351150684023869651689962178062208423657360037441597968458529065721883768056158648982378624855666446816787742876189276363767780262552692398809971954475173265143171716895789601825816953050075194457352752723603514445064840145993469784664662323817480044520352994968665406059544480302592181605674112933071892923347589375513995229706050459307908742205130711690815886964728065402534151824407073596842376232594178815117952325677759167662050220431557271220960959203164979801433857397540948633897840342011674213772291632087167300226799553695067197302744736825181136370548520709517492694564352541108543668934322732428483965200562265280663762707204361426527953204411746163156112899245405621486237560967641333404447658210373884348144439485949112057550197253565560683549474290679806449676805094324837227461155483368478812545298831516467848072167306843075976231811904928507984746288072809669749080890666175094000899913829528400944915831097801011438745498233313287967589792918074515856484779925568421420897871710616425351604876368867346574888598451402783356575728600414578332547699102844992749127443469205281446732660433150757320482183663520296253656873118566760954148563863800117591544746384881027773209612329580030455310432936398207306232108197195364537204748322965667324719982329249998039469720443505796478202762647521060565683430733070025317744842631366313315683789597552961931253670886740295817434076668395181377704373201373303253654214118133493600138724950964059569982841144921559671158926057074188894828369597098402916997716737406974997518051175146334456906205795721809515540726393631846405098817690814793208019870797561755344871704706288295265928556895322767943668479326046474927359059308044617332056282139550171614345544635600662855720182887086788430674287000957941709400113666498277658495986984616851828730563602576154779873849034285417116207534934840150392824503388274221409945716567788220954870452076561822538270007624748373130976441023324071218210065426637228035461687087392976993743652114288470743888700837367723986097686738152299790251383242786338166059730279191318746587929256101367797707997465210507003024386873629818135446336653265690030849954204658885475540233172250452134252103484506260430411699665190583350136509553801997496717907818714924603769005037941488903126274119874226415601250794223138701650212537774247531113686021155868941880409853274079743826174562511519413160650017654773004912534860026730657290907739812886445088931546347412171720093049301361535271888965525489315046677389791118123993920164543593705420900628217630829548699764843679725101076590053547434551450661426633670262797492246947713305027928488701090434843005954893422195627662959559463840156948675589245685338518672398603791939280762706987081173392204683885261409235709710587340882578065334868845437214831047926106563710632797420281621384206891723038693823410091812454848949093262010115364954998611609671949210410043074159604154454478259700863143873499472598752259292052370223039150342327097812586415613834035547102572012208871722356992194321179902320594265124044596224201424147072927618324249830152243125210151245205590936591103128396156414298457977487042892728660570584422247717725618410349327470622928878050457367264246923788686559487934430643532663633820533632138509026324917514197984713215216484384634540564724873417596805829396253939583691358008120216573057516160785499934482973281403598876878577659233418915272309079286182639936193157202364142379820581726011832611397593268871557583358451269353367546444568450877292421588172280748011430049248399165400820128169719753609383176403172876432555724665036019821484717172972423460015258106162922242019049960143458237801293918695073524901333003892337181534158394553289224192022108621505377436127518016722863928795093254339163530536370484670893890131252440055799138358952995875376283354704906366122505841956323535251390661173093784775940683150475810384860098576906341827985616265648067395472277405921381928854702942163660781194413335159583560693489576358784646244827240808895368916619635261666838653966745202875672347697951583809801960106932010744567275096630602167490145375990093392179220684605102296121040090959520608402613641050336741687899240117435108031370352354188384195566575340254720468004144787856240878495377122936487525466285718179029688232488108652344460839578759346217135504662871972632012415971199376842468108861208475850854757520738786461207899395797872173082999477587554740680969743792837998802917799251241002962482475021414894394188718492218804433821371440524506625503326713151320040817177662255897006234577832588526858648541396181611062481721721098806254179949607433078460897538551670243171237608551128921936301309973592915710438260042171262015465607019752969897147277973140017287907933552512067574057893032336987517309641276679569590521318780788585151099577811674577948957231871469640255450705547637228634312054714931685231078101709834647502632899240301047310158492410850766182712672709370350448553370695034181575872900860336836265793157743305399980957139890989323439512599658243522392069244902591847228673742203209091910133813358393720334462771446971987968247155388275671964713487078250732324677567556378329705408727028728115842401824535352489262222368251712394587702268964884576238280905007058949975740384366000312827449932931531571178097691855141638382743297525136405927430264462771233189706011461517090635338620780296516770268715445983674314100616954498269844147511105983029966562736617732649023181721739965141677609691943047735453223555597442930188555446367636850802376119290817331401004599995667309815183987838156870516702099276569468416157845509090987654820590414351998068669455871495320920584894297761354810253026339922531010455524935825443157350075251070241797528465930949789996582201458533053932496941495088594484667062399316093214099781191760124566712229160329594594673390513579587748037589843624163141787717390875739019445447975056280007329186282701266667097047242889032775852191781892066337086869134272411757883153462196273952406954683335064989824937953336186884563214452666099622171771654622997860969665295248222406218628884453019067216208164414563642051843956379984345360058154180462481060306856895836152201915098821102331605909477342729286756337478904539376104785111448674110568739755531247449913515111961647981486869342632097707665626606425837752826323569460275315151037225074846853854080734384956905647400829702033027912083264021247352536156377633373262389706369150922047343876634370951718959996123283555333916728864598880060558556245031014699206809683964360803349058872181021286551578153685971412073528048368712142185454541609093218232944412899691596659227572652543928637332539216643392079236465943317781047562700971429611380356240348207874958303571664189006224808793360443295178471957035066162216422047998311951000129484734487731263475020989804846169044413997083905324660908250536618591027954940576127647576963926448607329852014995722404792529044326558520207382740499921038077116636124731903234263166678414881779990706870516752363079472953111241926236154699577564085522398421809628903848393667209777360450504790025230006170016408118001280047714154313669690258840550296195800800138495629713986175257176861932564277531073922671385100692853301157172865845760685915025072002057107168933724069106999118862692093776163436224676049944236086470546685757359487952846908556577408328780974443645862991757919049314933498152323466224094752192671938538577918191178695203077145711126557428762089723909329063913651262626324834455032467050106749186605918194723226922513529881169220734964541606037308433719647322552298002562809103691846764749833793944241801706764390313511418730450579188151723104689528571773220793603720646667963108081883300263305145342544254050101938754000231734233274841696739191139252800898598639446228837720702969199110462345555180825147507001544713808424296344734353192999147158512342182770944980164764368557580187045880100117149811840456104916884095148425245836855697461141937748390842489365487632974178765170269035465132249431216294131262371486754206085215265141454344623111542310748487366230788211496349883566936477734494694614929240494890850706013535147544018756524261730965744521315164819468367533691780543347974324219852384788852612038753132739970317994508467130760072138218897162068077728903792396521514859740605657039045727546013502948062082412138124991008373261232815284483376949324386379466919109433284009789427784292089774327994305802488164482929375001864922147214004311660061821472786095254507928390130931271437494322768006536028055659464960813681538844931361358165739568634608279432715760300245986849315262937532648377774879266883774450646194637761247809061696166519643395395031804256044141940765457816580384038743854845863997738336272955855186709383641789905628156434768148145411544719744972456520428385098525909462464280893878767930921079039879398825712351156970680389464113064450154654115430103378860936513822690813569122037362994935219637890181909697098011981465159202741968149801766885623187976319172861692378287579328713547364588286539453789973643165480736513185627749469873318943854792645597308201026152675039229238812463619224666281924430715225908690608596059510950250972101040819241111284096685908838091468860618918840724032526265535188232497368028509212046490257006051585155474512287535177445564160129751300777114221959813454933662354032867397166747300161921479325696251234960396302823853991335608793077179958995089916383003965670369574969184387529729623176580146239450857716322971724032288504846943489656785980944618080555606148078994523625114777593400640304662905823675271950820679221460940375955498821013015928493924083185838773389782297879901067250307589120725982550854313835722356791902474405950880126188420103314160276414179750945068722234569718433582158856848314247758859241987032180213356405324846705819767567048109056589470623771179540761742453060148052851155597660417173562518534785534408190451090308463520201200405670964922163816524111606173940143905376295149676855236054511687712500224620352953119632462962634013842252518547589124407035810304341833061369476880610255339901984554714511974360784207629889072440806437003025338835576024869498573799358272605164418657887377603571511431536272218336870128097380136451559933998423431115164892985541526457085173459245371531811621432922486182470893248340040118572889442750844649395789109419245867948219062034840840875626343261032600389418396231716028019546045838440248429125788477404503552454239624311699018857419480952473601355620736471735060971652874405286909455120242652586037077845397741182977979443325753013469362736227472420981213181720066991301003562978301089579670503879837420844076900177472745360033038915556544053406743426270277812202173523229905620051742515525961522451606679905036379552406148929374863519296841551587556298510667385999705870067495717574580965859169913009727889174570154941140332096602777596826333169351071996209682353248105987251289889136811647321934145901100254553894321866715538063884050137202059983472068364821036775431336245533010428651838197413757229877600953261603578422112120918814438230500623202120674392047711536628343334564390301247699768113133864746862251327893657622426932647112579419195193309872440560850360691327880468273478411879087350760128848035714353905997766908796812349103955010557556608135364090635757334089483894729783167785319924974140249705256200791933202407559826895364961881752107467230936887559775729423045530520314366688459141768874474872510609239307682726871360462456478620381428985156867960188036330869427781124388903939006794493240849560761726623975890827172941479390494123772216912293130208968200514103491208796466288553766384121566480447730603725840903145716023231660485929358421688651169728689703710509395964081117440751625787603416236540100995108806285572970040410697782828283755390815825595459323880090944268351727304739801950742737535786195803425212028582654576810824982547629148394279490954929982941341218030484051195599400456201943165748985659730455264711100016152581065377712748775753617598675844162374944077126014597340398247155151020102078147917161166566260770708801777120503437209237298115887044826900719266335291916840140773752172645273259269829026230853701715301667434411172727693179190622790213106770004953424621498165087247795354122028626899970057374831105575521835560240326868670806472715556248721462707418710025863282148758534837843137470375631764995679628317688172619943104172923845888544252243822552246334930582094981713331077662923130751899984654632530790195698971193349501272581796945581774361730972163351888963258680110881084709172329214432271173459618808463059182442536938106260228468453125211654151485409974155449238864726032140916243846919815549029943067959744908472270776480179654248734015749486599692014532681626601479770890158899564917053499624325637517163366765885220788814416142963665591561866828498466030235697723445192934802060764523976083568072900492194954718454553634909064779639650902124304682097852242167248971781247452558115369589878505491894147257143200911030100745878052059618311942298780535892737745653114231966338318858036096801652835457649445324942551161768290823805714894988492602201839249755556748943326461802618271163319278388821147466013183895898543043462719416802368691906385560235469040090776192809651771512691529470240377359464707827772735384622947389322990332824624625138789695488014479674888133223068461319307705172455942561272267509056540480478058224113343232877776105886895570109244967455832421616670771868498041915240975782728971894772345183444080697891871410099923338750108750162595744188145351314803244872038287398063373099972126839694050237123158261847378156492951886174623816070988680064777282767096882971266492028247752690140464289273751685526774855118339945569412703801486375870892128432330983807654020221753979098700592903082242722269056789740896196499330833233782284562610432717668564436899622004272659098276122909210689384578293535385703635099904141427475457981259272527258905893361877050294633888850650339341677776372879393750686322227099481458993940892470425927809339565267748949826641671849331805726966230175218890702191979292177888447498593840255596731440330253070192537040943726538061822478935476711746449846003846828399340710812060003453570164584760956485207668105621543331411129651405160673914246247752232060355921366524020998493237588186170981384129021219417123198800789558453582485822689893382772454830183212543089953579649476283826869694076719439233478998516364897605214015024279333741116560224358172525868770938556440955903819702917899715584887356179943799548373223087385385103311674272646767064604846726594012877222359336033750969569650350924579027943307405582845890654519228538721251258991663808468017784078275912169989662106058009989269282118609976647486027067159553338142253999577857278376455820673454008183758010897432746304142965378381691672281978746568793070329125120650589108501104257091894327573555390385336160548990310785595006641099716692428918933749028277245364015944640149760253660748012592278873432564600695257965776615258702482681115221660902720534693245188017499880494705916243486098427688458844147498265518289823839113849475441829498684481816689556342637830492021738591554502065709655998383954760813655488625067151256566025411025843337848119101319286452043268602343516224599969915730957383387314627472243294584005390727440022976000303151757256746722537878018895774972394968835049862747302208231113776494212680055340470076085145200168352860127608448755663256867939565830064044142585500543508851551142845946865771807159831982412369059570832626777282157000539942117739261191199991640471400187445291206354770572743679714383502181728063395288826317867860429770846823622544624235740677954975369576407567245283605639861282982962342040803768361616657093263267788701365974900180164907639203596621501549908136036688651035218133231456528381768189192695390499400086909334738032176560793714250612560514351237042902001306063717979198045566271771986615328039528964639591104928306508700459983291093974423939485819066310962404595322009536136587529405197990702725372552704584380536494622155183592606459310938118316618661180757178256339538819283562594418131898025531381580373716215509492707863045094065756011135269716643206680408082351084196094723471846048432641145199901786646948835564578148045146476005267350314963225582992123060527497912775399395024151500996123013670736944913516449575472822699887462256934340011907753287357024441284687255470905813267410518610585477161758293811953030388125981182757874692877278055214498049033083718760314599209837691450124894149830740563574428470471500486302784967658861194491728408429603452377778118505808813074421733153505751452494074917292716105623743389604881928447012275179562054547328524148336101088464424888318378560955976723102291842700345204335719012622007211330910913043959423370639686000986453967708913293438695682882982424335846934861931783892355502034824565845848672729930046846759648576575483850479220405725637666036758065465163887761872153932031799032521850573654747682459290811216514215687042152150560897511843469082699653771161424421313737828068866568497902190005560620126015223146872042994626746622197773885568812803375848094274328799203220571568092462741293414771948636839883872817304343386245738693647540430893481883489018623066670609002089438833184963106175175524651805946501220233359073810037674405025038758431275524305713092355164456981380536918840824803576394801144492131395041999265329677942522332254602663944464367011995596705836673735217969964766069617473630368662142916168118152559251577082432039560356685674432870132264346217433424659690603692389018672168062161706574235126852557424848946954488644273874366904221237612887428677666279003767675419739761213206644821619406655525302649286492135445568675899204122372633357723395534702842919881398358886352835851307951753617701475188779030756660807640598834524008245000456703362511622458673491252123553423104232532413203600474164116894809967042365572898281252002785111439552146330074715081608198271405563429388673140189827872139315001899873946991607614941555870851058685548008307679416469073640082337406922016187140709924600951288794332116555270254199765968969849424104871863769519509824038822801667836349642730451190045979369940643893312725413297313191684569465392232064255274185542767512749499542580353887610769620231445182752262729254142948580481632963438106683066112562608810368382159147162516255801343106421542389855051942936918737960399341780314834933732113401179923424791506875365192894023320526083738433354597366461664397080804564455268041326649027155520158230961225900895254072720964213079916122049963665493206045101226756705610472916313361698148559814771866763775412864751456139675185610664333836666887545108442477046532663405705759727462216438727698532892402733387586813257190777832923824119232664567681452509199141437042805344605115946673148684078856038372954188618978941130553879078275468738630164044077178845971345951956500348920646617357161017235869717940321090945156496762787778062340567001266941136582727743680558562763058180070606531930400455463922666872604849456260968140108123507898183484639364408027188018648035451729083852435646205438327453453955626628565188707734717240128713876946081621982392808187184015562747568709414094699559336095260262373447804687822586377706109396016081547657064607194963479321743017430671467564927220766451353628766257395622780839736465366425086825941918598139691400725667815755659289409813677050375782005849619380002238419582872501602712701493551477661964721395977448452810171950546116745860321215606926713212569449705362711165004351040985913465882765734181340525553510429241838019939480056113533871358709916805408843342051606598123559817818108184829291272107615839288072379626798708798439770583859309116221260042825714386672768361793093987059517525986657651420815036742653381022099144675739644858399000160841187837105827835164359626068899819319618261524080338448959993248907903170056010152641253537300275251137634567266474148488093180402049205599011436083927360550568533108773828681309717290963677477504723254670727223744610595953237265741987873217517892830185974648190118636607580181925182566483176634283581971544440104346760605547032147375434711317562955401128417961964565376698653700634477468357064775139655605700332908114848573758514501354553252545705103384654608534311437460155733641530963329533211895828501772132607013753750245068724486839530522006291348075375047319812897331269826223304200539824331301839989053216504055083295619942049870600060726525151399183370183604731173382093818026665506033424957153173053614917745143700702284965563007411679574147383588145795069158830860899615936306116615280052835932086522893328421482787330700379749507939207393020372113019830948760326716969253010737565308894461470027028275328813291375991847337219149747863288239180279750782621259980147078078305462723596121374562985318149387513775066733499375567975101577255155244591830547445212418108121719066231143771922072444378452814440804359309225616920407714168338407912801650465264786213300115336521577510284074360497610940213900576435937470797308409094359979997707900093157459417835189845877864080924203913958514122955054866219127078950978116633161882954976895829921222218275116170444742898420049677116028393110247445654358058552786953357003094437057031619447079946671330264752625174160214111881659335462310551708757881473841860207878027926900095625125308103414150854167527335353259924971866611348135114505688686235914518649428925811005746798831281246563121101956416899551052851175365682739201478273824503029627585226457398027094485117963586562094759881200259034604583198658285269759745213909325248259901482298763403883481189850609135342467931373259087309855157682012830277469417087631235991523175013115280054599672250402513874608540242438651620924850413841813270763165360529255577030557956005781358695137857619952981195511095781340045759810178361326364420974430981532581052664391832835768083620472347626064125716213831860945285536504228392770215668571857852073412431275279534783288990733065883206338568593544391722364781736878280370103236957084191209718011611113595823515022201312786455738065717729000505579152013661349027825196338041411387897405620827690196272304317049932333490407018285131531038454930289320354335424987681102563232629728866855330244385037361428554830981712208669501559627680066918816329031850949705462824653499763315746998683308055495496680345097847500218912712063457182117152702646856336369952374371182353470988883917073987369347105902469887787833913692348444385927413008066722290545647509176835008620810179343787742886842480944826927738961370639724246099310698376711508732131308153213621358917847883958296745120107906623473734900474969491215004572927282608509981205749177270130991099578896501129725582294355246493408049710632390054211269024131035103405161578127916939903474299542708911144897960571127726651484836877203308671202548998373385580296952267041346935922676718620076915632923828205439816418574121180377968634267061826825518788853719974764310375353901875027901247674733429566264327116348477315174494156523933088536621315615604300553336336267519257997220971269099714996811851633488650322650825671455678753245943697611584829394324376942918008075465748264589676126487083380303458881173017928052484185284186337331120704285474636710611360021168356689312080101712286262306048571481615226559397525993996770450056229981962803061826946033430873639373444066442268907457090157659758831392528664836765860903718219188651407693234133633007055110775623851057834079435669502914236921638900717386816362771109062328614170280669756888977063339278694205453598501767373947696901635217614744363011175655816560930205001232710060218463562827895469641051425848711833841320442283305631841780474232670993941415860369840598792412582373541402257530269136162933465985283181153021841990974157979052654661179514898430769308528419663960232929709449461695874724322032164586122755241041753977756835863107353761800644789936882905966256921737055472447211378053507615525540856894141442619544120874141943209458865637053983664211516389880500792752871730814013259012923607055120686522587004347724629909586354300442074087255105283014812749184151401807850382295714100495409181916908047720565306261150383975739701533864386391072898317183149748446421476087955536585644982714288605800272876623742469369628627163535822698550631047872129898608979096435828145599748628456689536156717022263443561658279678403142766381920778001040006316573915442447469823817551750889005382312661230109978190709198197940161455804239292117598426672923404663989397147066178563574245130553592888839405455864127734415594649665109299766838095307001427622645006367473835234886313144686321377648011093683932994823069476207772240203005988564975034785810982489536080111126753006788249760302282671845076812787426098988974263797623045308891280983764944759639278651477098727818388828997146397680985554377961944784796199139341383679557305056415140755765279125449929869829773200148594595660147879872429634892736777062100042530970569012832674505248184049817008381212193991905625180266681427237417826554233072027416072226326639922713587916837521526950887024699008621749361873668462055853378151488297648511459783483838364914413284308701704459400452605806218743009270062975372190057565576064207658668416207982122248850160017410643716220932234215185592929616408962429348128433598749000838558535806681458849413487862834447499856820687398719159670227106091669818550883022406096134717175046953925755933703479196446118262620730280101015347325420277224786680303841877528114643892407686506639823546915811461072504829938165288637411840844066221367003562470495510714333776525503759704537820567754369136617278951812286768079590720142385082201386702185629749701977563171173573488187639600189315106826426571151308206974913050860132864728765243194077009274153879430892890378921263094102347019551656606064301052610525035438915762950733133609715890184180607800057937786847281699267261422078252497339049809364484370933295256881984457739163322536905427004794090445985760216282351631286664911301030600009914447217589479550527102583575445930662085633611364486440593307230100514104965474179429638321282172268600881671405099829290717212834297622681806060704650905130850977503869922482841366376326659545105508714861152623008439102576481049970852254800303289216322816554249092082574794754599010186311533948141289138853571476342361170516968350899318171574067199598962119299434834499077462209403495016737804818578166058872912151929821073976135502793867636243960569657398380084344529562872670619347202541074999653186335042793432660580627917991383015324795791927258223125325047315080318655069979031093173825940499012162712075706579529313629236945384247883529985699794733142782270904662491091033948081156656749915591985888121027022114500281823925044445956288870137181763038273044826330923990712642595424578270979566055839272275460097663841761730698981152382529375130687305296565912398854537274333712131824541169585012686488287714553525443141146659810229196543330451223992711583671680758207319844230158414287272397939247389851337914897471015063677617293270243410415715623085821915665297846306099623502232969789135793309267112772606846419510376722741158172992164766301983445254791319871845873038978908345556026219521550748708088967506178701143888211131789150420643528495895185463911898093246424640399776808742214723348086900150803491080890097769961249733907577031342355809347195425939269815480821085314862912382827123634838425019136636012716479397076342175960207972763849506610198383960396050921146732043131705933156568305397626936715698958785764400748036622903422490012754621611645304762212932633283941566623804715153570461323114179832063246233161308426912662100511689251313650032570438445867922829144566122763379969621202105974719677276785629969953979079164108488303580841269359233565889010317294299353530445454801022497850825366417188364118172172902680531399835498349591235688217305996012647598163991944500448040685077167421407886225541078306564701957785303627153864835949504408772377042618775307214823411468779104371515032045709520918073317551061583706636283684830619384227417973861334380820138966773935716649171140543070457191038107374538967834775648629061427914630304046360962965565525529341152816562074936004527246728421814020358981346808064896705510346272587059649843755443364839843722372110658020262442672026360628661518263439254377567992011150731130702172828370366860611617841422669607367876166178127964680261882067518730443101594647004996775678777083370676168131830428333461944793177524957390318755349604965730824037133716551602327420797517627527856255163038370814512109303506409623323009968641071337973275183626832842773449534990756437941820220231761069643245432130610958254145770961616509784804767639144594480029021955270334497136807764714957829228171566657099766777514769582176819000632013123297852202813893380590863918553586478814768384915105173631841872773319363846190113891047564348883105424653148896080241256291114907902400100015263731394823372532105066344371246254133390507245745434182155327935944380546072613237834681008084327086739610467193802010223333914875930422248339282616443455409391346576958015165053027400340454995188125020889251125428644991808318795886293543555430317120873038802382836553057640717162319540410859246947319312099537369093378578937620209836241021116589477231758075633287400795848159656813101205712597718126047726356121954515559225050884226232537371253505472898679605477599857851028117248852485119606451208623023579201474699007886952967469064495449260069280217442864564120496956773001515219614354421556467333143916649167667323531491480634482547026192202345238600499832327130445104722064994226868047134505171093110060141012749089734260032907605880003134226257059671267951420158037055202907268332151795617895694458639182450386373495555020343354013333631728774277380027119625652683186954975347431018962248503346781847516766638488133408772054858339243787278170877984630663305036382585273262098613488437321106462173784432798205292156561796061280958550187481690302925452498102254409752263630841432108227805072518176998064884878706039845194270612590788704459591375706038744248995713044647196258413268774590022551947681238723570285073647988130770690435225286032495476775977410093949911727301129283707737509925386920035493889763180947547058755579922852602775371714280306966824192243561080313521568451700704562019840229017741205614083264674057349404157476714849119765863522439481738910772790091287351114512352462760249643261726981648967766986412754677646814012163998626508840886754164523928654405451981754605144735930114651106519999527905402210110052364970112851387788267044983590310545875345877967826612327629201026195556671046885401501763739421546580717041001600775749098968202536420574637917496616720625750177992698853831168882001875001547542176098424275123362866815350293896289279772210466602067447237173889581384045421997125415443742558365024491706818510256836393442300572337381355967595919294868777063229725992625273665400666732188262056061828829214256592524759280954600105806486923372099787165770973895238323569112923417193586216193362644640650000709319078079972280728431542761749939762664024458946941051853851003706956634442754526836610579075255468965343048527867554102260982110194635090180227145186405897591934088728491289726698926142704276799202553030066461929695339399286245544248874779333198955529976081958696499461199191486869239322368629581992453679255919996556965694940060860781807780405434916404031321343294839363193732316083712245439753985673694140661392614559654329977274358587425804549827075312771877093904054444539346613023422078827969014334186839893459655188979861546869655575441739253183957875464920487755054756125543136809894510328643546911486353041443795943124474658651844284030305444590720150404828723038939948499572316487928562912105383543891947908818766276873380508616383931690465315601227567733098777881575770218026075643923423093979235327270473147923464768565226576042227535138286196876619401299531440229741638252101637146673039662437072168230512789512750203195618176503936078614764042174989319761109391558758570919536011469542663856686873240021056640323936946833446050164753210261205705079238086259332243057902108193774718382017080493653475885681466190222282795578712426304902219700712633614138990447615219397253195843340295978182490945966042104979358161418119842178316263985477851718474573848339787347164524016226540924850510752537249359960941681035938585415665424161863525313706670524661605836706439658378534089435190831325998350448956086643777713776238537936554881622321844356735567251842500419581788129995951933914314862170457983532946540317712287454862976335175337375633385475948660227817115195036936914479972524145345194941191665988093476390070064168255084985307033937220711239400627550515145290788257158574356046703624065859154871141585340556646205623078120597485763012628746319905240019566330714261089770198835998603396952226006990495214396298758166903450905183438888663230004878714475885470097975131684015910450690393891682466496849209164491939255433105289916035976733273244934955868746354277093532606506096654585281761010190236476857865115474797137381428199564128627181598537365942070876145291009719644160656596515258289767201260765346314342841200464632751616357525166374291670670059135697184157526945450590242798975332640321623664304062691653163916592987380833520705963662121430941211241226150446548113951930508204117461484313000969484801614862324404898223613758997388148166735957481381562171808254666615146743962824561523260716502107831512898059341302451899594086731139876244053344106776727101430294002027676746957972994712497032469765514376039712985257592097591166352448242731214467000364278905679320960009990047807089787912149269084118839701167325367519444750197681304279332868004967034411962759331725547307973655591235950470044110086887125012678479659263125233317726146370637318572168122344741051390612208749786950187050404969947784668749206883138315719524003733686434093528107550884610553713148819494507142417189547360455544783958807030367887793046378874642937319558250608912489751227176284076754939227102435442594060034218094608324254427342094935344565303582766709832716859129928202211218054838241928173007244976788634602279278609416488346600625823728490584533079484320749328422924323988275862489785871992402246476045042358013779490104668469016460368886393257153830120954334045714294264655896875686658585210122719276350209624589648021628807119171072945075108438839861329904786444123084558287760141073147190115646815607826686464559371031879985740914584977907809413787327473191568099197129066146503162531178434193002059422930593197386308382742676331658832317970533508717859989233495639548081458461970196789358772532414502122502902938161529994071350327077659144683333514053494538328175169575208934246339328689141586425563829062344181229689488789403236077481407193163041523209853770397157441647441947604623220786326142476995879388006742040062151535793332319385780731969570217757308844800709920249978050890866231855832484156824125864152687786298499862684433647046652010915374302258333686416024000788700033488209968449319422154889142430760257863843569863609894681685234190187092554594071557451087399931865851733856046740072243519635471280932974621815512931601401359018489304721977565783501231128188204816908165006677038325632371798525145260854241436961757062458232420273380739677967408084053447576907528529176480782832456673151182106827515918296147022908961178369589302802028382532237238278751272669644484959529378779025965455255553801542068375837650950355965569405302883407988286062292589681704389458646362155883205898457342719376630280813210855732106912085896648931546761863696032890526479451051871252641011101276537786923676805084948712316511761001153275383509490089794190284668799366713886086276529132867213192755801662590401574042965624324382251434069542828509295248782346200211057279349670791247288834995713402474641377122798876236708788964602749504332499047827682656881066692883405524013547595398314306228394005779515013341702043868752266963728719108115289407931719618475355265955856228890269493325340584994787119729574798814643428563537689462644902231673088394933624435926359348302907254290214938462497181304807372472384792054813881078401586404697468336522182703450971319830662303122563158479412467779843425211361961391835653965812697026694184426857241950566276137931987779584168017055234559233918466558169918252547455800782700333979744583139968316610463985289520450903871210405128483208191623313497121850159212909124886602916714466708386526537166063756253306671834133693632154518921797101808047727813669044282245881002808463268653774672176201010167387683032456607267437019825734183723011504989135020899380665846677896484348350334885916178445142050355980479723147839240287117082379973260451140394379432955669978311271078450032310561995428576284365643419024092973717823340578766593430409660889635458425787228132552227123711648430579237113484910892502591734878166415056422172993735396645552560246475709229867282415416847108347093297726515752643451698045021199743255484526540269999420678232887758388923556457369654833226152156161195409435800359071726539085942107707043313023012370169219469088606080004736878514756508820462097858028199848537328135133255613882748806551661509682210849647464309879375789900461778002407964492658522885799908974135035946110621000373083172369367443247094685233214318757973293624621170344756299522227186780893641952921807955445166964301733062085818364419378638681197567570204745743303078877348743972639540700921652279025747897720454580853310098909901432514191065795889114869470739291229956080987505124944171545525256053888587210497938491503086175186189028855696018253364270361621973780649698533316849105675112452269207356425064606793475687251531423499994680658158434046569744090893120593778210572044763724908952524045640047241377937702947739316152071571701078916513210735474436730204994162520272686836717519169242955098741777067111588382495508613692536034020683874178493526571435384117746281220653745690962925116869533430871543766850701179239780164422599911302380985465580045340535457036211099411894947760914732588848753178159066618153296354087485196243633901593655218658697562104366316785947444759678410056890163230696203904125443428092048667365387889198608338841747095049763132769038430949350463968521768072691260346275137372460131847405423037519845577308089152657433245468796920290220610874560115691007796013194208759268052221759733198704930283798278067370485208075225095867250895477114359683503925475427274019047581682509871442758287362537439627739603085907861841721430058792620735810015889820230787958751042411620885620309671352230855039745143775389485576132350976179430801436122882726798486178737105002905690303338264333873845374084085553261889543472890986375373775646144496326255683422469358213533656296001868886407681306990541741770009084716469647557362313811391769715666384791707385477438553720356614379640397856701250106840753262119802600736838242304038638701767991090897180697596953940733275420033983252316072499222499959218339493459492313173042392326450383827365443836361604244392083070203959140853995458906996839876527676996361228692060647345355612472831220862315474608353918198610074291105636568806235333215101692147749810589690839658887172019838215110950760238765771624177588831576063818235384705795747969332692253263929930018329351974293334233712150388321611378051875863331994539487944742780069004783472341130205367490568300449900524631299155631069575352568220616330838513115238635052205730326508294862225781718669629580071414944927341663658585492740265300412509366971381826151667408616451457678280358670747169132262721690118245739502698889669475244709682767852840395234962236524419104232487957444629002832005593030536265754968185251935498269113862512157947398401155748705458893920390317988421045534298591877988307645479967188697754943031650762910774113860207163375765571952432191599537393262923882749241200807281015789776479382758552403029236858784231041987033270101585323554052756721448711603166742750535969302053041511542539847589801366379615477434958996758127084500391514382103782272881473514734054912177997007309773342789546393498957102765326220650900399406322337131901475232243339644134700912937118559433428299280530091111302300904981084622657257452066922700481168695328393842997495401888013858494046927773418742392287298764753039271654519464748195452242212450720561722565018340362325667917053808028172932362693477804423372411100378572699392585448319262377613918440081844301433010723169160628903006334748487037445633302261606747390628067985476018949883978332528280627158569289026693007664876081713372088948087447401175514327490372272004128736400288456577734881819440864755436764537957985130333458635379817525085600140738715759290091451975117710136916700862252352957722433119230029433363374215949925324376972476631523395457318863223222289287228490162153464762076186023990284478600771419712189579770263311995123625053052238633100880855668576633430562189072232542825342426616194880579940174763975531944858384356349769722857098458730684256099428334679447254260551654677525923214328072440399052405682563015444812642781172073190375484297326773788849957155178939302305716147347736715690261816916967588363654396797551432194236478848371764539893150390821357565499672118738954836620301714137853889590836460966487434238970550306649066040690571744541396307168536346467005516828091471560120134391645009300675420608144744316119160524601709059554762498683236826842613497964919695000761408631179748953686235190702515790374726856821283775761144263034831622187415468544708189276392708224257308747910473253578237072685550068343610209619477238635322244502924705871516943344498139862976855929365247841374216040501391817038614582934124950544089155412750864997829057601559797893835694317128478249258509420216749528868050383490183386487171575735766601043410823136803967116731886056656408714221619423828835070556702328109875271395331746872308253617445422501817329362132105034093969261375154419587458523805936504847816026486995134349482477123336738425010787001112493257267687634361723095996877809002582909736225159143501754079737813059305148022460087242599000643739331063345729423815118044106392568840942610199178160585067134597811190054637610408683216762068072689091659961979680416109634913227792477365432222707862452794365896616852909774266349624248703828371591666648030823433616410474489684335001320655881969799626868375083503467825069149381725458648937346324972846862573684470435297891358284976749289912170117906985180604133472687328088105154554717469948418972419311924257524365273665863425794763436087409396431496534024412111750413644549807724650438758330291042467210293443532288889894228925530942496159904999777940757516319484427405506374936038544498710481145530395807740616086705706946857239939012108547220783226429297596721607154350686267630556588149027320258562991974596139428839151272659013616006410903275067117269583606550244086843001697553612223674599987769251644128407527826691333341301391271508983314326731186431590971081322521319381304482650673737509437906269668686764672549630967079245284557753917398952268587365777928323727032890777676577295843693561595045432776037039459212874582201203435500265426928971072943036843522783012769044161714816230156071746943962184431640624325582077164169889185167576810512767523911727744455901652351383507356523623027141903277657099679058457403421787750464920431069617588858350207249453038681536502031501519334871157815361217143711371693828254744875077400324228933852744101377859649146950248510919562190789090692864662214726460480690005424251310229226782306724184053504795469763020701885354262574167661143227247290977134096095673310977312232583036071638219408749037705452015547227202949695198511463214970935029473695881767437732153350934995023982405606369103671670906902083746659568158780981262845147935577785981607231401061267069427273968106060509550131134574959118138186161905785746930973761223509131452556711460621658068355278372214400642124079818115571034244982043093434036624839744547225436553768420745481208029470224439530310418817833052128976591939079167750359814432350919462790532778172764064782587616221961282603590225285507688559585442326900877290298424831127746231532940455449360395377975187955418488439824487524930880927178791320722298643381816959229796319470260606149742117615125576297623976453502159570285974523873620858361728269411298467201545260905916688401688521725397544013186707828743490578818298789198082865680635650948039250799059140751879393468715307692189276123442202818152105847542206648610751834391440121349124661689993957750177075212884884685950335611340992386290992775826132473647702746825396012170305621594487762085252292377242448911150544676630566919969740573493426553085434601564531071020316012553358745213121034667587615650927490421367327198200027438850850569325302485482421362325075002444691188569128924025475859546121687130107285508185441597176547493841442743177824590348007941751017897388974925564994438022978501920779596273434246932174191840389652699557306303037120906272951471205186676061294587638488608126426537554169622901228091443220011331927667645200984126125774897224973561169502597147544328197087833071195813310215334855228709351527002229316509056745487904372917426667366642854901244215803682004212281118818492229557724889599098662143936291811002461547194186025041741541893741976636907671798048981324568830324215880326617666449656136547165176745594434519938815637813212581605772558165341476679801387820154638549634668855582447873355669571875674411587539296596403562640222703502190615932326156576809091234814297814417379515045715335094959645699942643370226422015562876447043614036207011363772374943595662204877617699329239901859579223984351168654270925933842464452779230148070442343555361416510267477233232477922392963243373263046511456300725025164304767887109752555765500286103389447886352589155918305197340873320050900920580645344636709414060789530267337011695236156090601515062741534041330090731592278841735194863680112056383602117366123176767574095432010584358483190434941869517625496730270149929131225861089273919821472206264003893653088333667253880747443908505676822758224666768549077278384708301726963993879347559349450440964867917311095931394770997248296249592020240852313815274025191487679792874476374072781889664938977401167072540702196821652837323559892674028669731889489094931263574470999826813775714605601957572002560264086788529099707574413177957604129808935803819025419998548550231751891236559384292552666748056003126263959200967166296153422502409927210977430942571849467433774028849663978403890244005302029640200929329348919862144958615165578093484013600331185105010291614454756711137373344670009874285299661343436763014180364662419850191732092885810654688760004483880441650787393384652450942628855258674200655746915665584905669400048208639960062129205538834325872531044176504925194420123780021650105906421965699620976644359210300614400690088829516834253509591475486768300726755447079449112847464662722307267026626397586181762695378623433871661152515616102913109553066652038963162643310040069631522806122581567781300814106490558688451132025160488156044588843679110611530700176143188280410607475235660851271885277350091679423996631004371995559855802242960655025796314207195194234615194001193353321298224786199595176031085409774233386630593631093944618998573730942964059514706714640435950190531512638843742027262358414259179224927648370650320472420433802549191814329869532786695890935299871177713787204203122536980163945266077139574438407194483058586486762485580633743329312290953706717404448414561368403588160430834469242071929607253040320533503432505584909958668122119807332359165923946683258702979885166516305065692815058977508011911123795524916953408734156614218527062824754394326686096275329894757284899493076503150898361238133629801185564838788014821376850104865604939694142088467644275767914227942083835566151824966070827041115572946416230668751406602370498634075250651457123009644398829704750283375827664950414618599417048261277698312454778663939218994040452696569492801442861590277136475519160950628430381140607753508157700978669699394134754511898951923579474439507690581870076553948201614755779629101316309704565750402452425673617271087184218392682333793703847943114204766068473022508814986127336501401580470417022622316843992060276191085828141119328786563146123985886365663722757266186864736990910270526982208529406931431699622222677478166830474103181257334618194482575785895839265078616049563646027934366399505629482063676250081220477171703298141490397524822586712062198737832287277394760403212295292971355077567031380709251973747428722112875822136618103311948372752921364554208367891334278028373444549799279322968746429091749783610811302120417607641738696471997397073644596666831867089907867996261135242075193660895195761626031102074883727389103810828368949098124320774519313002732630278149126701017031883670364231533374207570384373692345272031519288285212699793976826172409789966877122335996942853704107961342970411598709774616780589635328578764155424444409212459535570065889573359059275061972028177967441770198161633163335049365194158383995881852117104828273925926942214934011210955645663831036976043676446648825640852660567661642417471213854253710879767462483635567465359377136076938543742493905655005764789797161601846456294847365350840820445953937680866314626925594137938511580380697277294694198654880920651346091945167644142871289337467901703786512540262579684826082763033228981562537998156686305802662961949909029425417903372114162579968242868532830514666492514651308590840181516485438356066784426498932511590262711969126112324848025177258224511220381683698443097566729250686983378301925008346423006485746830739771833848342155539137439659443631302047942425687900690920514477061442217814221230508684315898844484066365809188797983086791859232634430037340968153895417752365708655258494470585985783776192397015707889379147676817474089998675398674454624110297261136223469709928347733091583485339357158564530954486398289198529928306950812499001474601393967577989290193862305143451719536203488298897222201366347564264723046784224423420539539523912678688166177094416665435216930873557039475921613210178798073720018086041060057597410141874482373615614679572744038090051317337197683467760314126122376461288396175290147958784299348114263173155712855016228147042246909590426765333248956844207665212937047183311307683243673046638393481839326218632826193118389109916235259946835927063312102507246627156928156003671645244785575428284993934173413152487176029793307518790107062711045807367315233053048349864660419852389026194890338366269261851628523594801790207161538300597188224702264117173613703660457100363104949178958406995328756844324471890581510279947466986695858617999838883906302310026483466865987294042372019623033039816184729560809580895782246299054109875492190023577667050352125205898235504861348005423847012561929591140508208635907541402475076563987166610712243529402607356668470200556240313167416323035833286199979693662263680908492862031126810395529765077960988235503036065034305476822178865149587877749631692050900423213024451087356039768651797920119493069497209519000801488179156551205256974851417071988083759461533916895241254363876000817298891115993696936899490941264505989669789244764737455657508480158516457205276661909136092646832707374585615236152516468065657862158429154725128142635676334366243781963861642656994079039708166077584757771691311150619622229768536469690573734711866306821713159476460659358564010665284558415650159480429630866278523250743969752104080000397249544323067520832396482332687358182495921768844817238102694497983185304052147061972430972507626461040209288523550362520587491020706266460764433357061500942254575514149885320838473194194826746599434557610923033532126873594462297958519122163720014768463922260250441019379852873873612471508554307865345847489996842153056919794830270457358045843716294456603325562312431370361664071745648598105389540537038640600646595401412989909908772510095834232421165886550414133690662668012233833168790048349906742356804555388025860404026162269561168747933622715418386083767421356590206456238818719356324951952329607152502635760718745902325214494014733113357487945765750623851718939200560221277798529027288084404118019966615209793982631578217525409381742209837446278596540261970757004593370012233359578953928112448840564419097821134996945492611446761242522348783267828024270314922520530989753511998265172290145000357047130890049683466149622948484080055976308867666268087418910043780048664105772910811152669064351005905439501963854460025822428972792881844251229239507434287655847673517778085212492048478679225873563342082126645915387638937546781981052530988610665609289957972796808496363291671101083790732382605719198666828896417290158880774220631724673257726365660093883384319583558099639964963312878553518237661766380786564911323011404847934891951916012939926211670881583449435674038577518873040000808046574779862389276404386973357823635348820651968151752855329135504707398841320472800288855324014900329548574900646699299200368589974469576929524270640676165091879058794981428940442247197266449363537494157942046500138054891106939170698840192098971262645079556900322028401340116131626494116572208341216408157973216891769695192753252847123588752876525083740050541712361344439789249237824080495160242457135415731509437745503131472973441836540945657657317101226097282054242058590252302420415806071447507856211264233550299692786279067907488940209261853169231040504141756664996473457403577438154829392791122348313388929686809069100686330028145561419079223420416526587784990678979650524605339055053075145216364005201441554073832005262673323167486642918367290172034737412105656448046920022685983681206468489219914067132595351656693793034993560655488078030379742139486643436148080987642824945126641186571622670028111987065572199543429285251392650107466956386225536273956301153187151406695679814900783891660162944919900394966208344491797882798562300159403360832477857410925100785806712201057116221977949570814810444258196962767763190654957307671112303402667395935502508995869742908606709791640068039602572312733041320279001226300142952196684691195613133846975982713575174918027163061950705838625718628724827463012443999029223054842937235728248404654388224475184802809202996762031076173404475402455625060242720502377183225463885322013614931173851182190154980750166900654182005424947693978945246235756905856493897054686073230295604941847596877266260516349382129700995760301009767534376416296625196730862354411061671154337563951396474189363321103255510991104750345544413506846543961974315983670760940953113516672203924697683084498137816491626091890499497226594387917176906220967640681147786181173158580908887950358139647314050251508178146293692636740229076261964711896367908667024804895824011373662501069846849760720619288244880874925088898563189260858547052083333477274071852641922667700836596047311269414541373874724032938430741250539286907088800856198923367940397689957091539227596085778907778823581810287960673298798913383225285551914500629926645293986102288791751231646707665973177005882111400905975841966307723501189602562912652550514492480408194283274418579958987910491154444258426882185164534702512966591224472894199825367121461554978795251901827938479907637263850816101726486366295846870992796415685455339325135795556424564225903565791330032293898150372221496114595948398399690180453772406759649276872560616985007688654084947008429651432731946885871472605321145007059975582003160691965912916465478166029102868344065827046484891567174396339276753928491364428110597733169487767260135506463325398924315430269512956270553450095510974670584077933807971247760491187007956305573836734455144131658483308971682957572218635167685778230746568386738072002673156815231610016831374314010610976298673626801261976036799022850819979965464088199986787293627987930975945596063303977197321382305145155657034871184513565978598812498618497106537598750005706498381941866407788923845386200046736507762021045931516548937703699401236772240575359951804455359915051295777047956521567636442638915730597016509278048070198956125233076185901113939105045603273057257924652126525080474042591777447593949916985063962216273610159595232492122521917719767556345453223114097548895895436377239181086770292648900601317252403231386998456855590986408772197734602825341993779639687011573787096891105200872749250898895199480537866062010364622300541029669940202331814345123948582569957677770326983973906986010045929503200938474413666189068726399980855802268530077757877793483714310346023523582073788390078200345397973826822166294888595559278498518533408917978490594956182022939864780546207704108409523569392825091313717508155598974544279889096414128884991616118796515035354396315130874315851478647711582302718816451034851258311691735535675904920668537544554749794204362009798949826112252813940209689724925723345248357750968605927812524024320014330729150208054887852711591279159944174801976707959333005908164089897524731071514726077813577631101108211157726538782731126112398169360446851255775839998134868647742009080463671946984504507230059012166647360911062000239579517297036910394504188337530784057407605003094553307496483512840487510230665027522774732939308410962873533136581395476435168180676616987458718951047165485045333984139025205234638311160463845691618323659731905150323049059567185481781010616359674847013934813800891763925344274101970229114471714618576391381913073314038519182068628048409329974974850676576992389712803641935014380185895486699087869075087475627494794741959699963809391745316596397781715467570476411785210892534096686853437129547449823108542428064138336019369906845838179599106533470565534724779780566176500771325327598570739124263500506015614978571903442789733557076713066930470919515646029237643765474400839401062651280743312724351416405053915425558833496766937738536776055273856017146232877565018150284795866393700844262550270810325922216753098173136477305248930729873647341781609956889954233097838986963676641006630147044471063140200103704055421731667737696497865387196713427969511041219933254557652233078715595771385328157017279542084399746991987843889284905429410629587530230785553525103142325321227406234237267958954986763914961733413127009589778864627051685241666980686132992574422175249660276131462191584925444547149253486796105118652299175445847856594955774047211237535923136587617569968803355200997182855331460425332094024560714614778593101588892468092130668696507637937391855161056487447046139096198511198098821302568533963663048892906904086088089165702542245293076363859245728391330369854188718358413048097676274322222201463183101321561156230189991622471848939372720711469559389650562536187254278881482343546151472019045640598498907478274621057913845387595442933152988366038052211792077966057514504166510039239774783275907656389527272177936653733146064774024507403958736834815028638116015003213384643438823225845353569458351272189615207715394495371116275851825314616412372762920215883525090975176739757282545396735205096796776232660682686897598628306860604207822749365198127674044735914465871070551428208057449369986358736026850312622341353714190203809534700422296546486691169770041564304703438631486310392851873181944376360664966742920325032586830523017483049003562604665034403383934273586964308875313890631826543954549411858094077256566870263065540194373512244415925869095542794828410980739283997163720281947481781381068744977045084615046928783900089860677093468573680477384231977612937958462961912336342572827116343609902584542375943933347980878721317683210873718100898895602247633509779666916592227027219129971527107137591279070994666434648576516983962668787890251833393996778408182943054684045118430242542170329228341481767681543009828347307529844124039273296273709821660562760427760196434249392793655533376671973517677252257457169812068787390015680420426466555601084258599899414586524878453350250710517706227008404220138818774641594609884926142145758293089426040918958106316877439203218719964923438195381209572852202242799735880917075477424926609855852937550878222929620574653806147207986408807330559329168211802729998618514637856132371533395983749030706141686224386054308995561537504407270083049756239795945306208748995924728825542123768809473437441030350905784218957488955505340629551859699474094045304041734847442896082438706225169975232005420954756966846530355402219386549543617582014124842331234825618298221298930881335161758098938167629340443603444745042342339669127152472535228183179325598136346927775737862446906321505307421152387400952272260030075434964585995423446319062952320777214674746565999881231961522309386173234565157814983877035744041823679772760219594872947200279345507782917772235369927609913621430088394252861571699423873066616836278185323005102598028653033045391199881944571970808329400285903242994863225071621309385113988860808108005402190644132858586079263651367516177516698954593965253185454429082495482866853063681483922027078727086381591321593312198899976412089351684594482593374977527110296641991327756262119327309925469616094782353068299675279044794692392842453248825209234875938335695242622801256735652322447955969462110529427104407884181960203118965893539671024710068102235862187815673942548602719151807451858028918240249711114815034428509315721368967402597947324140554354990885451451741204133138037562549401603387278642647726626837592063086410759999952121722657383439906607994291904601290801566680128771541911936002811719738820665775270114661536819331480273926751619165589063889500742390467338796513258618672382526994662729406541017077444322975305674883153298003193174196727074152496815481928059138097429690357737585318105527935386886110409255466275268599420404134923857231769375650141677962100590739831167421999373896346045798399884313901669636189610200815968102285409315311195901122502253743997158968308341966087423557162478179987126114436498889516313682594070400821187551216581306939657137194830243856882014965342936998911721388479442784023426934804356450242076633969836179026782442305511366842042208192987779893512691157644456957315340935654524260041576978716260202837376001257869752957706164581253488693777450835739009060365548430298395938488463498915072523465894663081785466057537587623900344876927926208178490423038878355182207353453961521751938479616137692743703776170270933127437419757664058132483741462524078557529377333303316901284886109004837476959538329509173299661460546492345377935233222231695551315138569354487897599048934061308040547921794596039840596836100799106946496190007222276834064644948366587015581565016103906610670105015654364506080341034609019616625475666992909065380773252683691242793155525249182908503944305747304575284860078165139315049175039764590415840114532091430897117457641705117901485739969113632046260476354277717059563757390543030963197236325037353180022773685029554904688798075209652848109243902367956844812267223921613193155740070994692582993486438242923000121082547629938404454398119149515077692043045637151659840203910944898373181583456949918873376297277831473076829248005785177710564818775116274064251774068664484909841060055517351648877135984658417602676445164166709709971093240888843106280860968383696236493021590562596201496933870431495825028493050893720891830144418422139394067143646591169921069511126071768257864700013000496904083105765858150714696035870743520653339733623704778861466668878198118753855486768198060994458332377552469274805634684924455156038956391089556083917854996665128135834964568839118978941678282200295939630893514413627203142334372630305635974489759588142998324978219882388092045102191702443086773677097191507779072995138199906416359606010328760221553981432478604170084417306903829375287233628562931597822828728422422272151508025500723840731348521446410541321681381330905115041352027001964263917955040260915558876877154899713334297858028821111326053555003081975042054742523213045695912214998663772876006234531038620007161268011515017878622244742960570931789198912245296996506434692714587813789527994208459430555149621574819487355566456413623736824521924633039406556184814994745085210822829985186236034604556372133892188395015401474016992264364110752906072248615606321501204263751804183671339518474174142764955967570717942653927879951112056400122395483514424090656044074125345368533409682437400433438089373802127165472725245175197344667209522461052807089862018345183036725679981854666865378865063741749577756184340647178005597796608391182613805913753211459053642830361909027945920346861853652786699717478639750384168273864458345885954405921865458194975405636756222703443507696220943755096918664607214907523670631162004177182364290166898616351691564456424693316327772345447129392686220158291686662963561649515460765953438709287984851932642977644192532672263745581944688992566291720494388514954423332811845087227638756568502138519973542295184824563939553280121912493088305197621602672116036345013670938464749762767990367389905789455980093870113274022541484795378934310393717329165244523173686156276870619984766833133575356291625659151722592384076675954034887960944456905563657968650152589175803852652869903376424755841745546640997794716105268555322884154058142422058791870600869728307188188224918595130734586171031455426816156441159532024822077989452231260667322215248890428062807490793939261961328627774064668148141087063537502890878529682030804992837573181314494505604826534700862658442290656049035204108475673830563529351877756427470533274161156560757240492850077962951829683798037171270232018276563163542530059547675885152411552546669142990461376831002618250419017131652371451218994777595380310924181457693129915906273066875344968575921947966521108249383151568437619307459174167941601378637231775290531749819209737409705198836413340561157791303883190143955103770615279553821505191077053874164249832742642950538544601835908642511468417711790354566971659886801677636268194936957082062342282632242615822858624386180970911407717943551024550049291827487347549855449909728792679831254448933465074904542852334807840514533040256571472536349805052792378799734109115534922117833043500808180060091584609479215954487480448551529204778126183163238685163666949768403654184866114857630063336450986531164883740157003049103755931771070505707138613896410888881695725363114312291316630446227387267944382005622141713466574506144907609047003851983685058238382534586427617683838165880514653002303092860787363250968909427444408272795454286853787443013075902581565095149505057256660363462106291972403177949922748978241730861641100018981994494617415123989836346386419552591326776399468689765211725114507298790628755124695273967873315202334979260798117717691423256998277786299976861261618740387891634426946425740838919650927281272061162936511842155274942906168336155378827828785607702819160307132517560912590314403164111873585703892033241109314456350204191552448812046687206549268464395192941649112823259396993124497715727186576662897209467606105620086629966595722042380748772382841745489038093462069086342554605645684645740254077838862211403134102165596388385836139910340641403793499313420805544559354707336033309137567034802245240590065882506045186091628576617173554980829036358815026691094023666003227356066162365225239158359129800043183167456699226416389807657144595360575701847335894280153091625822331619822008234262362844422864893504490609781917194290255457885636054870654617397837336918465338783362655298954824854179772420693528784005509429350485774403353416407726342663737726235585119821285848619056030585212611036759522178411814845966903463054494289331365007700778181470907082552832264628500385738243596171588069455552153887758321489745976440565493929092772376678748968004617265432238739155696734920290346742726017860312424057557167544393466551316831511855771355574982416131442957084324538855009206609102245177360829601342981994858558554164543629129097459605280057432745495452678045596779080255373259178255804742805431171517256498580375379616874508687716695678316288432163005647073406917888749835470159057173539954445169596466946167029356168794615383011719014668058359331632953080311694979290822677382040899714464827395375114488028725217578445519175309071129276655291401645970322607524730754007895703117584831696235546311381851936826500891007354858968318053167563032501532267286751133145973326180233406517747687954739262871807245173687227180464738153453318822305750498688400961224396252670852861721851285659396023541065867485126254028561055769294110913442658044068763942061306677890466435674060069282847821416614417699381362372980474880045831647510030888641323158737222974643072311379453783094079083559935830629302245114555005108485179022833188355768867175951812984724951466176289420293827580486122427479334185413805563512905092222564152811462814352892977962868828855915642349312202226774416321151411116079357864857283634371380955229329260145537600775355726405697829951397528881417516764749303312359586438884441403933417958822021571678633106652936361894832512583268884942396443367449024458000125697912883147065751414858648894309749976695897375316773014533288850954206352823687378728327055342718496752106283368880164488771660563318497585025097784860065516160658328071659224884225326118808593554735195417338789058215990695784259039929649055321653833268103955450144904216768444003278559840312792139119789385101785398702096565996683532617043142398750771403118969956008889278416066135218542278450442482299833335623889118084792457023927618171628630653378969801303324871575673957293111322084194480770035955760847949976345073549479593768125411657188451015056874056242972128698933563521727202477247979957139694493948543465100723055887582843593903044767749526920200121616455156780878465587160163641572024252291017624197598581046872778726248059309859114193199855874913029567720490060115511135064953887015749612996692913559248513767297530897964157104850425093095601717938386462790935653301407739606793541816728131470425843536827830118326134099694446854260662972047905634180115388561568453690189219370469734839366128329747682263239551927811925925218910140558986377654290663384949838122498023053243518531055481512653453470293677525740455996451737138655637628944574894506516246979966313386868269673677931185607289032946145601233617705402468525011958271065361971298518805673451872803690946235536536626518187144715337116772249028559206064072940193983042916223433472427251273777610449424934758763517008283902991356480294181895620293543302224043328955962545722073090532828200462540876452762423531962496558769730131847173871769136590519044882904173688812454067826566183108418303845167582703355824369801995994169028705548180539603720172599872426970423965163882267556888886072946467460053732771426307770970947746900727589933729650537716690982665101777573564933240313848964550838750111643509501437241141071733219427978445146205060314390114542144700578000340532919531939759540533131994551255684260925902829116556489610258039881006728894425071732187613097391288321362273832592848784485577509503053264851733977271270037838590678628297061331469130173633899121904094299610285267548994627447868791335465562879247805915824708735525201332478564668355637387123297970570427922771005841939117041198627675761180765794993976969584152428078864770009720008219697219344040657156428755819818538424447569485426010422915472951985142906921378729857052282683366782546395233388110320296621123330321334694711875610718835837761690436870829256481523617100651331066828173997760280027407917380979101214310904370646590131204919442969133574683902597013861559602687699477472811897050182349118853952580248482824178889861759846732956256210787296392075692008153326986258287514981087406015637059428836385831243648682029980017590061150310982453926613105717714970765361329585529357112193731719326945500552157030876130015018150939287217958893154070596786897833726334645319541611655662278102726302805128026690817578809867541192540612005224018077734741996424870778722007125173848697419226254921829214323898954216969318850220407030800987661606350407153523171893905263097516838666918955732246794518994306428946233417618242156584213038540565853844110966179241196007708398831999438230373692069036029655956286965242729336837350210953524029176153363606884760932971923843526892169496161273618069452184083053774277020376774593198364568156212577589309961075734511894754890387949279217127118649276020947926207794407143612872127120086202561973423042428372783248190293131923691386071027774048085259152720008272207755443334004578838681573730765032557465195261086164138533442235814620812486901571563733386717804641034426756720497562418700044248811063375461563573539123900225702475295598552286060828132350124566340273325274775909922227405877545554460802580027967479592834513035402141802769002922031134780061318196595870167986178619622742749502429297585224715306428288801534352345825427803226535087357235580455608543803970614834097522944344194615484343793754752797576976227461482758585952795999924461464795824083963497641152348346127027091020245549884020097511264515708228326807610110357406562458249600833429581284683084366539436914553797142357456319764476629181777646230083661203495135820114447104635517802026798682088466915787515666224166585973998507117445527329134871175995360073293492020528081529670733555514886349870407161797604198489956614658354475285169528151730813770358943341279374385504724893872421699976915182579291494018464963735585337820243663853622747349458745046847956148638915199107901031236120435565692525206355390827353029768430615781703111433641906387189455923700306764630739720502102996947306410382901058634444697148107885310801681907155668846902458234540057257857023269532931274059729575042763609123362506967110789041613669294431185924326505132941389267175325911988333617309345603708978788680342108567155148776697522131524219214906170328374965825711102887215051370649973457660807782305563918322048620909717786809420538777284731498335932990275682325167851643652493747046907952730165983260019027020968380665856282608839066890997580776165325844406763396347507726849827659149939174330855480596163195601235469022538651926544404045121915531150914069504259003707092318773605250263073870462264049211883642700387452959019542813568643418011605573361758234476537862962333179274440072202502655843547505729478787891749513462742530607585738980581497897519350374662869931556096777229345407830388686551707026888380177841329073377432608618475362841247805974081387883935076477533301671943095870219589567812046953245642724600008001564544898122136917774743662728336001555127524623807445620649500067238259790572109121307902970595245906210012692398588547706081931985520320656815163123384803123287882897714258743450546929504560739832965716629605105469548598769182838172491051556018289699999699064811256376636688121427155648087208937872676023202387046446897241324978857583453606992907838349251521987524633644870523106458862275342595636982139238002147132597257879841491351883900518355315350421103960055222806552384725877480990304338022622906444027215915977879497352248719782877570345104318041225690242397591222726715740979082611107317931908165614910981189273353273797247568900424121533626706342566253041600017349302774512581253672451220754797695163637862946754382113319830591817079291915247322798005852023300283722584834666946939502963721935721062264541919869942104195869330877012145925615087158439607874836078386640837555233819924905566569013817381274244061273043213304997959622703871860571855209474009775935315882082535638031213098370284710068086859287437779197285489580540233721721261190000010450823562004663149171197789398250990681936415520124220558124278928385002290949738169601142683555354901348791959305950436077059956054976479198713607056757924184980373008414673301679073531259718882407126998803083818010801604672162210996951356112521663538546051746010264601663534688064513109411218978363655286238627756726660817314102982651929693951498805269493786463044225590916755574627185283001126414866261653975161097335771187172607879231905777008621237572976775085258830430407859473358547467675347095971183563392564108128699580726260486786303053872539885397459022370498069650954352174494445200748398842725715432411051098222702039695251045685862932597863748664203410607242696163258575347346211198187751949896223662314867470931268723087270536421025254683410318528233211216044809104620284786149135346365883607165414666739958583303101390373180542740638213753177515087036480025725217984250578667790447780672230547606004508666984049676008815659934760174007145548347004385091306457310240320443751130899454155584109324239479106598044764072109842327502665396314578707223994901367237571463721225659769830818974997572280983366106362246334916501531993616546070918806788282909227623621373244241022230357230859172840965418057135990156361132913007226489245065820241911661513716740335471806473815361605946866394444780315852105406785914346565384742537522466318892293925250377306954256936530785591771630925285192538781250717120245266286097337359519346603446207281256816238731368122152675869328195311537764846321850346065978850617212257872591346838405050521287022344878224498861514993566472730064380960414922411717990593276723392963688371177320102073398560073882216874895550319995019668794788124352195356541425016781053962678532779326298556014264064287891513235825102805780081563168332838435381511622994531107594665258278041815160155297684769739868247185499610749876171398659765060048277444724527756117357402652500733723751890699169743534063972039984468899753206550507166836725347248940129270761081741493406838610841749923471035358624288016728689422537070649383008714645834375863970081801487909146730655382160641807043775699219230325596151771297699832659314643729938654453413171416179468048043201887254909809207858513527307652810558711210166563887726361713042480880996484232006394469642934002631177100318397181165157730965220780171440966528363251909944325167409760901725782704167719610010059651779762089164838400526975894395025848883756667718288117581886691133832671916752997403785999119803208444453985281957157073582247926875982918334177351437772610117556721430452263277874244891114291536096385820456979495187453303936932335527033397154599506438156056062563787326825953326141835381270353897036489599302169451738549327927317108397807959229143064241461168681389626271691246514176449286319543752025142991430890182765003917047853932126719629211828415067361658647361788258570504916571620752876402779144279605661470479039510047324180839193511785970212269174733014916321127925178137847260690480428913111026151953368493638773670091868452548839743869751702938870955219690565364667232606564965346074650879055673532558398855482519668234858189102399157619852718450253944330513676228392743429635990429224956407718935578299568456050072291194277639167929003685522524553274100710879932139822427353407199350120728011345103721019478029420493056118499545302483038288076057054115858345681326572045897483324806880516341988668959100489400687227821052694897715371858710740189364614709315777390238878735640551035788308714087427624326096816201763246214608592694364415444122671853762142382104249034562577099924847914531887370172475477978734380264810908179707605572350278852290640725947322600548881520995885907943122354595379881577659436402838978136034207819351000671487955169113329769185249527864215341870227106465214465188316298003709882843494301103439270370385245330732464518520184949957464970135218649974476052627066961224452903224072511681132470286791801670031004848823969435922669411985605370841941486535047873775559673884655697643355756550637386364040945574103494293309784116739499490272549806245337112578669484594387668699957515929010353042954032236162055625077264111656254591895137991037069375999647141020278810617447772607394405314399101497393104607791635443516225472992069223320279283217929074485375749403635946076404731486408556824697827886082708762361819311026052559724650665709024043007925374533838652050427404725978658344440635972213635055866014326895325767556603203136537643633316437415201680161382099062524257579159024570449967455593677881706368316399729249125713163618139189643444303346365785394562445911033639635326070100307337372755547976254292855536679736228742079149885386951109396888419314578389244790231823101007608767842330662061908666404020339917821292165465409445288992943884226987230106050199961763228067258041193824026916754376029562670952732456075003250169396996251770032760596229876409247411507949572128482077704490879760913917668720973626221401035451905872155468370470365970465298740887165983204439281434924318904415010546685555071275890427716287625248981831810635590101867021596958470877905617602466365057738270042254050190504486468539186853742093957071042545867081829435105193426738949380659460137360192456174420595015685349636287040455121185862110865543148831285915882119550268309553549750630617272800334220929184002036612804063872487473040326647496360728822679247258537621063339489953092932374009556431641418050876346208518507732741423235930901744730905419950017983025641746837569154432562505338601342734083334420604853895902659311377113979965988641075963800945873462606274156922617205825448355087347748440629641360300852394175883582039668325077219209014221552277660501596942232339955622347216490178485310810025838968994710948113308714059640865030250425713747422853601656020123064558140547529871828984194391746376533425212997920882706039509806072233108104607010020627954644952602160187510657549828727032558169155398175501725293126283980665132043604253061424816326234665497021091493665781593852796073635299184402379830057219649082079720314894114042628699728845801605455339999840351773920300298738505808068256957266563776983486349253957814861885723160421223700431565170244045407828348385885661191524756157600148511284689268231684632949611979642874063213416419423805975491474900307561133658482363030258459712294946345288731598182989591120976400613759381018951148138428683179223529443573988086430819323043513659266377317934171642446773597526993531817763328224719099643958627193783414476069405932389513151136515004531876855631842128379279596395740570933743161712822514913710513538961213919894690597575070014899873605074048438746197278197510042425987397592885796121690524911403344932567344810128600252729307432195743415147641666693070176159713803251304174038024014344676205818057720629405436613089302262833457957596331801026591974678921432735925792279126660775402016483399167832430739479095705790036256606854905572890419624653513006052175545978650433931791441442557846078078007809441904744076910835839023914952327195379934480790578391447131202977504333169206489292913724317413173732779884635352545488086653737711741105505983655442569374630563385708837506536859676313888914301843648214414773699706301550308077694739576547979482884420623155851121412615297480616825728717647708302124713194963871859466938622804235966965734049717159854622980259226394580960405504661784240155990977808689979243762660620349015006494224008483399779518534883133940668827013659764482281342021960920227502576093349455388253356303459897743599223152558569646749647681528725913234990666915742654856036067530024377207250730504016303482358620841670489940380048514420169930923160891906043361461291102152683499004631117626284958148341501854863533430825422009792143887144323974786572294916650075795762223706980452611127886962014652958042394093854077478534457711369480918942351537133934336043516903562753552518898781049362043431659889708287224764598747767653184985040679885208184564374907718606873189501292365776568947747735013448729086212678363176557982548693575817151322469258906576398780416851814836042125617025534162574101201028970364866955009426115159139185436072234702700914409397561608383817264142652399485474061238274901502578694072982578987519626451335362269925150745358571134927566013470811940709667156426182759691476437369863906932677519800504196436381777294957910910996453358649860412858109935451266610035386064275686565588605175117548576837757366112533209657525650198765302999127229090544323343701801216082324229792559967747093112380560334254622287723189954478011073620029743527800571620874312453073213921335032829227565122442308559737482853185466719238691147430919245113706468597089310142756270823773298667473604501048961403409276811335254547095514750545497036294069098739258919697053840022266143052925423513362974600912431664288659186746107118809332928700300786228452207393432417797689586099938528328791667952083493948492084075102984637344442016147438407683745006162082406905559610180579895878500913190077815479934402726041698214500122866159763518036116031474617824763403279965809567843699997907072021962138375907636265426368036118310092485054937991378317698604160686267673157694167519459874165504286964875560385787394755198904324384985343560392563377089243400923248729384717854773597646980226292562015578029375711415421045029095678058990421920891729129893532942752349414487456560924257808703532753012110834727014367922805400486783008503828453846682477223088904647182938861818872359410416944810915406643528992260237361136931534309574922311599607707735105648618700610042740976783397230575618810420529155384688024338886738276874823139718813635918003007615631944941399200442762051336753828972692333248282239270835333082200595794627603450038435020502914069512663548840661880743480514106397989817443588768506205284405628035744513868651317095019549061935786373666033730691368264441887806694747631757548517854587190585046130344778546956424881151212524621087708995392435997869957547973440088212116670411720376800491856312034964860738514361563181072223309319329268309976244592105106962658791070136868952129922237637020136221658489766536436819098039634666562459524011225830319618848043969702630446012751452294043809418035643583051863601306784396854146462140420840948177869154433600850102079355544121428626080791218619007898656479462198210312549147205827434930618515574826051834300625837720165821790066826500641078462194580790436063047163600171398632312881015412421790503885025432971411370872380486160652539211821315763446675526051206314375923206946338856727044071690631392289226138827170310353058977394023150144004587522831037179980573388320804569389412138839164686306079743218844968964516031889270520673791724636092197863617548521015878704189396204747742944663600185870177912791728909700101810356859196968032240662876740898433052140734700062635477930103640519789522674195170821889352769968203580092144113417151001387779618237488379766159347314976999874346636085747411522562142062668658809436207154137394807291569286041538958834756574303752764284418317608391774561725202656495182490889833909104946282206428968811613734566258006556842216975950419926498533275980954799515143068972019496746446007409862793424568505046054314709072279974481081000864975025868298387186104414094066107807245756187000648712752819712928503947431635928739596777113131812560512370621387230987874644801391000585340562302222201128257716026823648461359510428094715703368806220513696227381392722741728621618787284407471804232774951709483949465068787305048628519865494609448781461864412685612634458824231764922818984782979361137576038559576025306333927790731306671713783113467730471091647545365155608932109573425311266126182601142445782865804536848810063495196364455406444604302825703578770665892806208513218021238951295593470916092326793737385746132737650715969233835053134362009210901293279716713418965789744509954515980100406889520704767144967367991338476040340417033639996654564893527836181763706164887030595759952594069389125728535246478163574617203499744981351452752266753362206310821556154615151608591583979698517514754901461553142838270108271382459583493037560372269611235304479709021051156158519648374467544823724227853863149000776559561155961558159154649631497230716205373327546989694845891661620714174492178553440838883165879776737735697799102294938215462839540030339072817495080011850521313494844107585585891145285919310004978154031223380174399331494758666634594442260396002044327365630671074426394284051865100027906497876235077775293747685039285753807431568873896433103575377776359407695647036107007201461344638316025523025778162651103982370710975401551567426279532663443199116654948664211236510773608917572840030919965944623985288964259175926612448609387330623904054688930413493886334524301327020851447190990101657703381006538321741177262702686125159532150415172445228994954033749775953017039121165911777376170636410150453605280730636212020436895871131540629958324448824890826281500946114134042979840548801011305265327752426184383991049040200565805246337980473805311736932093780054867702902792878488571181230265179742687143498917593439553263058340079944251767144502358770513364334320167345363332346945468612433225389333940457733538942600979836868255595905282602253453148663481711407281141264854779750738092151132615394954603291087940119368469605918059723036112145528191673645892497536343308446447446595816004082913974631012131784700976614943556275539756721615593834696105839253307523473286763148662170290272237448203233453991212118318205821196422094690700158455391540052639206414113591934210189810290935250552282171797823687797456516256486414185755221136935381936009250566555057206818203887291273855537741872694587177560134175027102852170446277841276935595544826283835483495207820255039196653893049172442053330472938022605761900846265405494217678048768983212034345043139134490230050117621387819730306479299129791233677411738755756690772086664459900348322885290479720390874053290711499246930443113083602184944908407438756640724832180365396387287368290824221417396880485487558467237670612830042832049867188175226435949808997528756040788864218874889678709805376673832055618724093926451149656837485189129786329707426806056231950419846454495117008237692446441321110113155268222342189041707814903740744775487342121120820768667695220315395543921865714696186016936733969898588580374840405873905583260282939957332903866797963282737481003666902551287083479468538597958775079037943927927698198246997416462005231730948204638668059630699945699720628684044314883029566354283895164582328546609245254473711501318618515180025342154068708486897615607349266772109398935098037335066785171682405996308912644392406924467373602104374239303114155007417851942554820740740107008431642309655864649529999207671413424061755594110073608702707740597793982809482852659211278112910013300868828260442246778118406634231504521250987725831045222166858359483046297330510731109596316346996076557932259969766495367543384744964029222706177789897076523239179754475831182527094077730009332403193379218128725260729979701394754901003011247573886452267133522351400941278991992094390933411593129602528372777732816828918127209712333376408401103208090541823913320491432112554665739972180965441035674261714273799217791916076388567114094230882423270496045885767768110960881249817031429624688512527070064568883436669262510443865849127611449925164803287019221867079338375073007326123110619616136925516397780599021275020125814302969978211119372583475235397930346653371021936549142016030751951298427790699424100893962517568130884612708163224676293514166960976423369279282697489848252856817312920132268038724063878331662209057084758597220968990637569250492824693142080700618003282127627207333699027765584044629619655771232796868038403800952640722808799344028362942369520015229056489754684147317473984277121170960128259897474413485162846415918447614606128794198232756360717981235560561198810734857223391846668286704167668888699969124048335704674777133778590662282154914344976187887986489930373560419852908780477788927294552357996484538901869631920795575179074048953332549044875015442458676319228698206051793750524210911972517749227453232476409627215264164828153524496475904152099761588892234595637752229411267426515903844197044682889611564177846998400323966180660143537794138495736097964833327874545723205813605614333946043508937555077259994981563003443421862098794875214838391846646797230405664423543802001106338636918759608338006643384245844638483918833742355307782552861829452534497357254745508831623137486060149158357765307145064629356379643587177104172566367611299156877188687921254120249087723701771067353109559018935225636266210119336741263082730205844075466076454394838942190507351514235508604744341511300805301282056452827777638527709510204843833152620857416679328128806449754475859946776634446125374435190084542861426965987484416778151193700033809479738664845924853020408073127564135541206700412836236419932039588975125575595070851914643564682979149511805558037485232056155451270890496798149261682930776304921953819994719274103144929948188629406883147146103721698692920163560187246231251242299975666246043732235050256513805340450864213248174739647998557711687127827253980360654382460796362218448761852825666907912999295468725858235322460389088826308595722358742150374240757873084444696038008119280128447021585532298575484644888390010770087900946148664491505674328529339241060695473177195245458531646728143019088165600187329564683358490274957598124296573401208540646764652467381784865779646012796728320518071611001677790318118527216815780371923238955874766224984276007982859779338618092355309266270057740762050617442651775084930452104280470536407996477050354085756604220196930670708827989206197864487919411765551926503557611285080226777603273347058405927764555475176601012541937646593963708326148956380783051157661563236895482205721679014431927369789511866179757392558122321876837705609979976498997052969587199411507899936491975832495559675989073907813429807587123741363659062686312533374323349874735643245293286447891768284162017818679238997484615855051739950151615636593105628043178241728901849975051382731007383611991412587010897380604305514114154378085036448796598445879217639127947352627622981801610035474729023491240530065369594079626924823529686143046269431625121537178050753758972992818049353288454234662058901204927991900300923823539917537647195491742179530253150010746723748582578892063815591545927241061923304435568277659019289989246425535747011010685011478396606137990047055077145103792643522060967378313641313093767153868944280605899013532275950977780006468576569110367549002531016987733337533611766616103861142616824736065643435769866084218655875462447461583487424266844937305115236592898175786143199489710657891449028911507621411703386803243246234999793034803942846287173837883233596491593553219007686366495185610824698621887793544385916024178949296368469291789202203272523174862101728281243729270066784843244406203012768821634130535964913921035638270103255147002651081112595711643062587011146543517972153355455116935528531754367604087233794913378875172602419202712258544488705217044536322664422915834940518094892419463259760379110562712257671181351629403835116615583437729157826332236749354016320707943855518444953978342995001418028246119498381560076910718542657210390607573258523018495491898866112599438353730154622185731343287864099736711566071996900667980554036357244662204959655481731080903781037730758655638384057923972731463165650142807806076103585891488676339083637015992013915212095278765345076138373632714747246563684270711210707897921911604799178837306680278127418249217816016926865776954935666967073258631848275630610632406742629523249927727143199373647956042973851611003082852758605859610449786544773474108524458161278204173489896831064704095542352356245382483380753418126539035896724835619526898633363305817935795936865125081308052560551758893916543673172659137367351042784347720068816404219633906391848289872364982115373428722911939219483939697859816692591224825939199755803083061168916937242970826435816835940152666657129297267898271886732140794631880408335116161617482725472070276740667848875804819890547738976384223071566989939282981578307716496728175315994639616155951239592930517264353027571661045899788039571156321106151390739030519022681986646775233992904693841994118149253241917312984098050500080421522366142784074789848199842656004519357584667946581370065183818250845620873898678646524976885308056827932528379131637619461100641675059071666151697089555850497806276483827695671548989609743362871527963944105291689484201167993647234448607290392148776354377000928299953021070968059654044949864667048236767702272159851775810501277713571735577349624672008267479184345697217769951515463527089950716908121762848496948701856143275216903403344132585773127950393130212834101734703095210135153571265607395950034858366070881529163368219212000134114573692794894620484759771907257514337379160240852764045972575565813157570584863789642843032811049539913300719304136954462397499268124018268762685374564098547820190733528534525577803670033486785474413742770022562614975524583404435937273777967028399454747203390380023063959126512511900020130081447916999363695758132195687044443890782570575941259505955627839642433312436815582149789918727001571232496815559926801662300044487950614465088769274519675054226084750962148470691110620252598650703038845156229890898400084718427071400523151700456770219861884284889755332743581344161721286316588817352163933987855767789172444424408679897763097595401271435622158539288546048044176829982563690670226429319287976617376078173232946217096105170743149304557444812251630962490980991466760640847309901481178406386803917276754405695430877806322153398691182119819752432574508262219494229022481794813702180530113912971569968614342479510099011871689685056845568793735636378955627940721320854988269687161702277825542026448766012978888807552516453224283457174660763117473724093567686814322815142615169656448053598444058625810841556230950042369679863152379821658721223352029864972454991673651413218029113000968848738852504549857201343641412782072628313183517138799869749328070026379744092698689829160019059358966797594433168977494202565263674693955168288331715398267777870298214118341661110660634432736376319702829482298548187789069289682085507506163892806534239151524724177719494952536724048230033702009509924110915654626146952993640677699611525572183063365437448704883574184668725173204352257695202316332878959292596290376104534841765870377744259303684504839161239456019925749081080517589715242255495164150266095158581257473753839075859834223797093708739513901643030914860020642524496668026299680352761723873506259262627965427740026896962381448030964563583558992096282633049555708893343390895684184854585416687723983348181720953540432667382689724197667470391071190190811526524532284210089005438703990993431017941181167117122924668913313636193055862103341581231501363966428033915183308479342022788234397730810922244694636600864462707022674170909417557216383850777351609642249047503944971265273266433512731445321733362667600908328431424477368712225592260797719684464543830733683825152073177987261460727605496364330902469535270272155665662695248292013712303667385210433533000896060439693358844921091366343831024772712424251114406001670340975797703176501801613946583965743484858923841628198137523454339770670728270744610371332485665410292324284370866274926442308554493008426704505136637812589985734059888872430204839620553474650117431439563464325232500738629747209794092797241201289638202686849313760467978086449351463640515518361473283802610481235055983725465480495974879034034342391111574206142810220196404821789964241428219032082327478419938329186531546556133290399701395167473569672556625172348598861239550924405184359538777747521122838097457710794722960248269689460091541758088745826894080292578047367357344207693044152393937422770065420498494581488818658087872949091985918069467285108198365038572350345289712008896041916215172275716180829186970341788292623204976158885450102654013678912640468020359745878199950119475749894878917639396404536409888820533067269559055993628732114851835325678166645181045017602104834252008588355929053977551962118864532679079879211404331857631776267909731437707924565083662862679905487083767340976378682422200848248228640630231263916615154399689690435449153638732516658465643900120182446365677146791250823395532808906443481635198758429576144931960010605930325893999881775586201727079823536840454819683212494475536188646453220917420179967607170342810682996353140441396593504983748664527695226093146303768230995958220102112642003218890688416896477718822845402780885296474882194641267004993354086008948066658410044488413901167667620159720680769256121719754325302475216949867181429784623030974228852588349349000694031849080508049476260815951120801487253479734355375961761943207027155768081940293786912321351513943443563744994364263425682428888899668884010304711511134533174997622371906641487457525504061646002151170911477447194057177596256627058153128683442320393468750608037162370988408529129040326658722497988417187512260722235145781237151299884772933184576290571576614521541690338394701426748646911270987925355810009412486043492350257358415471650060988398996411707364482110193334671589905782686977491733081872527726121890764626830430253060577863064639641868077782718756302571343663092466902592619654956762048477274904893573933265719523000638157548541029843282129827624368130536787249855106916778411535276066235111974154221444106871474040347382636268843568555877651807836786982111728725405083779632909559204689150570028277653850444619442002173484544419812184888092304855488214549083411149137933414951516442614038056749785583566280291802242245700946719410133245358626873339471075406438733909171945890526771053930154681792645903628928665921027733891744069610191281104364428516503865244120203280307953838091624122156109613096704444094342451602039617333441712954156258358254070432258704512441900756207414955941130965742005170381362937550734597226438823931274640576712738528501030029596081456594987231456599386849015507095531074477282178729077358497440962315225999857034307187836013184655560619912444281913242369371625034678118014111834478485112188693397652333111828692741954816207507355532905142140348898813482472047969643863603505893937454333377880329967218293183156508470465003135035799321906526732109830937696731748814457705043576801903621996997516765465818908509480487998804347010576341446914933876765672764939728629845310278511212879680781634366664403430650299024883037683181034087581652919846135695905796273867380917247417049306316103843913200286004666392843478071750046680857372824072377971976978818593863326707739583089009008112976009216442556214074395185884041964273473655103913121993848190100295109484079936929163863004071625249542950555226657124573642796419719360191490287168519364290867659346874876209788078227786441848900879692770518703310200432886498673423965304434937069543770264124456094627022311644484219964612852733520507209920370286763444360874748290966143117624972795853582415030172659713244579596526978997289141104672301583427919905607450765531170636897055659722114923492888474298841506736155172194628109505898794436453982888787006124090039085277477926323971219602122339050842238308603939004417639987971981818842672888739920629516647604443107695873388015695000027513880951030091278990475146389645108383040753635280778979701308030158724702704391585067673698529037649421547401622813078524994814173430249987760605580930807998231018807162577904959609252130812849902734379331169084124990329472579371349029579493150533224190335930651337331297787631469504766977717585401994171692930353200312630577353592219649931514371928505050129897046927693339539329578038125334376330934968867373043717819506968441426196696286556374160284121380464795157546991383569922597543006888286797042686210343612547755204947542100303513718065348770442100386187208018016199892129655564235125618895454573052270920605630459747882499718852085238660103803278361336249614501561683785204300018020814012459911351815330829001978046752732748011313775597031098886464318221700997104977993293746679423269084940958704580847513477544288849766569312916471269341652646104131973448681422415329772930638226189147111787830388642507974311431807856328703914530110459672899725683482628478207078880993180479192948334803482812892531232623374018764097893488133495466820668326298097400821271537010743798699223685491450019947764243130799161377345300642376791814089437048348344958968365939372720022777706797177101145032356522476479440578796928817170535544299491769627115837306094445948000847610453107374889584692292784394163829935800093393787246843697778379965771681564965990600111472672863612276641076755514509666820932875665343669489237501190189063614341058787534138263494297378118671520258099775691507170291272309772382293599202046983266599155215127923096259538137392095784261592600454114527300804652652750668819362647795033043498903094929621329885472400604520027820785521358159228810623517261968440702485225400888179561541270052583717642374525648798965403804007504884177429295669237082247614729879318588911790934155810318572032013697092375802351381005364127302636352227808814949056077878133525915429180320574990021810323316570836782158400473285058408592455281527166357654461505190889208581293028207982589676207901921299832165655840686996339710120977608082901941989236414556727000453192080787671787345091867436129847438378697651007442023284827721475624201323900738199110496130156984297235540212782669587567695101893238839337612374980826346769121878163500760447570583070310993286679922931510619749946939671405278897885481754605958853123166490641884365472280662071332836448720861270014691808342639875411028099866220027133338843139327755465149945299716298331405825909033728348481982055119241996540096289999827424566012128547622826824710732110883279848724934038130628753538160406827559557001823154997278090814964741561538980386162889084471465960168869093380732257665848713303194343107622195163646397774805834599977525175568892153460406893094200100102123965707870337509096946233635872118651143734455435215840640896052920546288793640435218960622501293147204871554830166303011906428836637070610802416158762831389958371477957298192796866081409841567202368843383079784131438934917378789775959511278930562571204933487852082317663583750638528275564376509506488182319710926531261126139743812738734119735572166805145680830874645780669139385731426708694937679822034403909259078725337203145323900296036742055270302142626517347137371280088629968000918124440115858781309067665772201196556140262893863393250457307148293079754016346562000674009912350765321177704256011079397460972558639610133899706688631126401820598559736531037723217582102240324368653688217652948317972326325625792222253187531922192145487866291148538388707284681854613981253674432686954527645781475792350282841314582872979017897315076629759325192521043504279878513360921368786449384450262650635671022574572410623797782669386454365119896753330746842142534329069847652434745385104388187757822006670986149901311532217781699784391344377208884715969231369628350617718733711880610604095787806040083259043829913572006557072436767132315801667640860209495275062962644489889590471210722049372794134854014047782389628020446477217252600277791793673033805902493264915323431100741689576351747900364375681504425706137760173987302951769541061447292123015893207089698283691481035588678659534494486955607094099377894686202014066272682892414520886225199757338377719933926968224313469926953247992606679361137861666364265766246452781252122393023516074091468111562742319322153518046141303458133038588042901775856439631073670141820090465721722463741079546346820014578913179081251383080361083347181573697355406373970002748405981276406363188062970939953259237963606624754174988734330885783240986272856258645124652514406668250465354438043231171795300397014287213177145171395173007386855386294598265827172375317928090920077070290727371256350218214107059164732438712679304879057759758537085721650061927453133137404065981258218407800196858798657812171382571215865651977151391524449719472642002994118657803703698739316679444844628979769307958937227565420555769682364944795707183857820301633422425498530593332519761196184618448279145571855719719743890605380810696529539051701813850640867270561946494699368458601434880581527167090802279860246138013614109723900469319840169867290841972324535200686572497320179714875090351109127816857069196442626505778475199960600132168439343690446587297599104337462987744347711256416184329929476732062497986892892975888993219458425356410003225495201035169953252088091975052117195858959311430796537119547556925735712576559376004458834232265689162219201298688289779989794232404578924006551521868206375664181404491117538397167099734832001266927931601598591817563042872331936964014679715357749300017397570588209312618169957226323630937437969495742396588239768051714667209478552657966342095334316857633549041238192472325101566038575044563931020698079463294336389429515127422634244980039773130237332079004173550413191651270939447746448482052863403426149364380574032203906109233913624715862282834877612871242447681208802066597759730233377982136539562285588402401592234276417728355458971053619417208076806536812604383055372973939522721276236168030018047362115687617381891234147118910899241159177221968039422071854157908436286674627733046474637194809496149068050036585344433511078686021846011288965387937183917920733400244873210030097762746994677915394368729083799910572489378513977260335885415493112256642371058930090915244871938933111374630240169966250210123433187777576687942719508749478187221157063882158064325361919847107632908385311747743239408748467472294597237267667189148681439030863544859845772565238055193319771717494538025298503705205063778038255940586816337665741860903879187625720631179299571999520495545615334879401184927109336713187885377935035174846865491749266830602859165648700920808213093585077708024763501443218821151165678306427520960471267564561245503677216362800542216779819811340607593381534882719211029847118680914753411454372919721773504130489633424549101217731027544095694108499732313218605666537985993454965716968403299287848898565046349288432901848976246551017274822988472365161033834253327087999257289397629830358334993884906445176502423096647552342420221224719951128282184922891723679185534416228463339367750297457361375253184728862802563935689834436243774847396008701561860797387045988921715076950982782448819423035769018872350448928320342484912305607474200111333170985007723964876602213999093948932282582111814315240090263757965565122535631982132820800989538158391886865116783603162802395260150712431626160073733821935208862129297759584341354704076702111962798812031615869139007523971429474035103484297878422557261536431878028605557630957987667665474396506275397474517561283924356380440389430551661448738870195811792650785241413490443613224240423443153873958313019864363854933547612441805791784441541416417792797193661126934833992296704952353022470433404274908318557782389635954254358188150899625428770164154269166830831198415318306185771564260525958145183757143690483347782346443362230897163634563046680047291478986419291328154526687548764530610792600759681250766245349428096937766471212689639438681747095602160241763042044714850206472280225531132182775232964253765708974901422722478231436320159419762956599390454990012280310172160206486058029669465498262347497547340769247155663071523412619338364671795171292382254743404011019325633770425537019534926643891290399248001093024809982579896703936865776453737523426514162105988978940579161774293410214738972119584274980470597127677360569146274847547536800972201632445403243783869028888114035819605199606453536310899271727426493850930582931506584300508899849343637790060865312150596325964572809021564628027806297745090053869566885707235579476683538271323777970077069123493652616995558908623189737520115612337416914475918347509109456880151538033830350567628970969857410432380479959525959031448229568795004424453948473453347622666293907550253584493336326101620994269365733526528537745827813135858966231933738497249566119033385552268326560238737181105905117102162491096411204933652158487803069239638827452278077868992793576033666738377007192306787251450827298959760644798400391617349988248912119076799702057927376696771838697456216560951824703955850923856427046334093231230175105251742481220727025076995493296603164661740094165956841069068778405678520662369064272531736059985821854183523474442733541231138986374412280016005829389051768509124137149050345900678497441314107900577539746486995327126657233878313157594361958620367439815624087458265369605763634784673452889832573394645777998766444596624913314615874034084657980493687200228775236600478442913384056833807823005520823020390433733126636004793738145688855489665822984399494125969918135939013950448030795460932574007830497530710589803626088578536405871983150566662648602435385060143749383964301921836699671127342545033116532387638715435112202408504062943089206875618830370441484117304906269593248210506563573522993532041536258734345773156252958296308564161661272122983714203693727129622226150077363776543594845093326286626595057275710713934119337681841324519672371829283544809384855351730120491196187640061959018539855594735742780352002060602406193966412819956166209495305313155642517134829068869611547844637896010440112853924923416455970293102797200637108363999013455164571225242423560551483577004420882713783763841068120637816910392186693017366086134962525085411260694218847941412061641515185789910683290892645330669724915505135484847812406767130262128420975396588525656790243652222869841979309807281427686766642033123681980018336804232991743508506665446057388048932815443810300575906732794890075451275712461782970664878156957685323420936061317924749563408576288295533731449123911115385146870294171570997125716022149025798616609975460117964396890864809802245554500797435748748319233760897082380219303434708107707334833733849529733503611982021303007409303250274796850953965167293888762031468024357584674621996364987183570033427513782943489106908608395147993368503236854031377580701986250766952998290700807081642867138149704562602288927287036606533017812944742423077331562487455951602490255996312090921956978409229357636181427777345203888832507689582439945406828329320731340498228151105398353545336023504835481742923797784646234119380728448052928567894326943398507158444112911470188913413868536022141173262707568845124181726065757477207559404016538440243692433168135903989833424566581771542167029867953170869039950076502687251391283021224887129783815012892120899645214269419455623293953867350086261738555794211645987204296434727804662000745492747105855935452947427108261766109841027065941951125404674459096455869013650716520582695428249597855878146323799787068184799038676274416753918017927841413978559540564582680151788075052326850501775851210307959505565975977260877748595244620488081256864595366926534829507898673300616429925928422052650342952499080718665591330687490790149367499204256212818168180237583018032268619485233470802149888395431292006538288727019585087077293205549680865302737084766487263693701162201591776372003747603998928256541621973951884881208180928905739538511961596033397723190035094370635875625212782246182232532923662239135279502116360920100881839995838414149751881370862769041985284151245066195339469034247680734551486829564131865234416507831531971045139578384726268639819272093506069097006955319334632379110263328236177518594868727305931228309971417298558236216325796125538296536853997086936319755832407641637721157035917460729632514950375230009822435475803656952765475219832105002849693001043668253442974823368966342910312391712124771473667934082415401774635184399788371514020006810443204474397414158427187987775340641947462602793245123149277898555622580013492955492819739887201317421716940870901271999386425641889945723570010101556619281011217050593398576406235312820132816320254084296548887062090171729788864832243093870758488545101644254246582044529092753962195283652622115302646497017918072506699048090727201524158927891001923302959401156364541507841418184775933758579379194819615157785328762292663440230373993357723409727713200198172203683800805445279165524390312105647674045966170828357307783184608418763384273853030790960153487985889033190314633461431627849107972485938502807867045991911901025784375047851540725933915429189753378470513247142054642256677504740422133148558034742305478194658306877016634197266570841124816827800549243813314686179619458868444378394365622902254695875670377957962205284108815434946971111527816600081958408502651965296067504310952414649479770332951058620055450358443298299622104636510664981244790405640711535182242375792461645417722562704586985873874576643389597469281327247779262185776339712775044001116180133829831887247073122157886882547257575222762505076766438076894663703751635680410229457733744817593398134506845123630638307357826114358583891764691541128570636060041807217444388926097596610412517486709951265936506124097415755598321200875184140577326035162564831103332099852719133015166932200282636154689079361676165851510973624734579219188079665849413061949927678014802908042986842764460168344875293273733927653529669583265183891902092700279474648218888411925947094447701199509942098549133611207655876016728914047072591580606077695836486679046309493162591932886958574904270323880513591354107930268004149892240304164679771905098858339282361363170767278280891140238259985134600493375808946105330050193801471275067005179001781296094986626045615112752345288659342395324846859060684728389629864993802853426063156349927679632723371566657445281495568997338605663277865541227155729231457350498383663692068096896883254235792754380044251399634551230471907283904454418805072933667690376075324376819094603723713437173001907909577972628487871544301024121693870788940783174823628475523935919894499655126473809779984500263122634157671611486689244478591984142527530818183487071351331208207180730035642455573408472257037003398303069160890832779749496048872454006107233387523752825099619321943213153376068796054085724411946983400919662101774070305896166882804310542085711786392371984828668970923674736090863007488421833865817962067862957751812982291244774434905822924639303519931150922557815903160924602192232132102480552179654546460687527203735160048146049846491897921949229929192403570993455603020663427543020077927561357495433324187992825739762236353454987865570979760763076222870929974308888969563220018280769714445404014090042175266308828455480736044435313632059803615484739552596484386883616898477716541565625341137077950956210704017800346269807403355334522385171254807029487295304416526120269856773252635805692654473047564357520963329129530567258623830013620990978556536866661931858924366339059438310047633369586676944171887185189638186475468989869521873828980910285381148986907302723043208908450110434439597359855682928815677443039318621341226129551119867376716093036031405078225417332436845688807598893200127468645672048279680182161251999013882126200820704013525534409994885065472563724187725463745483887784481608446566047723900067748451607894909725690726308265249653719499291989243734478594634089491139613856079349572435315242703051567786192458477879293573005548065281089329678614889240056214234477662310325505427883140621891680325223357893193530110373805983517360548849012299174608413795479332127376838259060411914507145130542378094027962916009181058101768549243065961683938529658934592973022689183357731221645851364309534317788667234631831333932601647597955586068982977087613260281321354071397784734901297850403171984752859743675141805587686701975518452057426868191180671552541863844093767794905794247396064709360474070226270463581557956841431461822998174933131954476705743761092210131243183650457538971196776541581505735961432080242304695998407689684842758079527806639850481575949566939903537834784339929737859379860704321859980013992450939524293936307972351978364589644635393658855603433845291941266518729316160442972044813012867979401815986150837902948196637985545381500543436177154482449550334764692155714931474442615974672773520649070426001378374526037699773339966581773099460445317090126952619953631910253360837145100003413345688415994697855814502205300596152568589785486555880362621504592495703731080785059260209794632830452212499526238167616777724402462012663647419156317879040248619587101384553256612631939764195070245601668481827148038420179783179313459409784758680571139285977323614349993481953588569373823626407154243587954747824401754957515931281490618676466605076096255711979191815765902058162382653277233111156550085323871657230697847106862452700660378050980841471118454342727749074066530308112754435778891175867240238749959989192719748197734389599043178361859025398758269327370064525136161238263150785176645476752959197063704021513292668293794093572220927085825547835569431616186235685692767254122477660557645532332441513346933343152578301339505941145291969770766302716152300848521507062266684899256087467377834431708501240246382910020359894526724570538967153947643931593690995621997041295594267784803365871434691058982098695916792227149772382641149423685824832801083148801635323940240288138369316967194036613550431867196407124968708150145823150988068090032224526959114975748782585255066273158119008264995044141268475472126453623087483802526154316890627151103618136822381595651659659480705974290644948396704815919705537166927099277828627757038823005068344693299501946910464291867668580561957328606842356210377747401477985821431024953072286429669949847278615449081976547589706046920842401611677561300571605634248501851627772304788920719150243433428933139199015812958482055541621650672272605045778932344315794658976998211279289875765832092365987765903926043616769793801305674683154681464995979793968016879926772032002498814913708346243391608007330749839918359752673648858883593530162090614714724840483115053038366885076671900826592164900417549784262963095075736998201493340710042836337638550439385936753772890988763142444764336174170973890937611749582549273747400660570805545098314038117934472514281803121832322180635035624059753252459145109618557531494344883323895429631372430334673164447121257491303136265310320047795052664045268887069451352845090613591108777586934032371222273137059939029365578550199277540083132957747197442942584104740190523255271107366660051257497592959879383207570419469847391984470350381496788400376254005710405427557993078078935214671527188712875408620421746070752749617291159681229525022267928337828506116851349965577544968344288752120012186699727791424326160475158721963670137782446492000187101465469907545569406196591530370711814436761879660381655222199917865576315260987134251534438631171647554191010644781884101078226444356682253115456531180302477848139068840739997143014765649724400291030846534919381350921620282849518224854582113110508128503609135086850233369604385099975078843057550001616288030111797990422410986053368185108093222397788860043607696789690983173716989595708985789265380192113496336680495304228030123158561930629231424694817252372340568765158246758066029625501002741557809386893737612603349792635870574619631469738867806829375915462268672155585806731412663876238699933917095769660856196324404536681720529447579933358800875804252974559151950029707399783889010645074902943560789966497646460053292367341340058453381714343668040576000641799530202355335557758012724966267909164572359738847285630923293592355381161297971718649047009436834519747795976634822739033280888101918238435317861829711540393165631161829309739382362754940781719522581099109945236576268136615531325193117688078652922702808479513431057124226607297482505249181452777954419941337687186340476646013861756022060004609870204853290311903881603760691817772947413696115960230446301639921466253628267399976162756078833060369412092917466711210652485626655890395893436748147068284617235560906841564708050083078991614365671972080229552280408375640243089743624895627832349231478973300467395699812947332776340399397426006239641027773420676311761028387751611851650074780179206286507254580685775546368936659447332585857186625465217720706147203498717483734847276556189670696443996609037154530952796895599561957183661200514865378097962354479063208837375436564707856221654991720233177018775155850027344880192544004551186742898671113169297408779415842394431388880745747220731775593477162201378177000025813919831743117421644972221425850417011849778361604198410348406810995645878520704118696712540384427750074027583778116327686247282108961406428115254647508922366311153901700240257556861914959712942330651841282862279173550350303840826351491864049906437524395121301566511013109619056249768478335860165087306929702878066104464312952980823365226075747677744227457489869248633420465609749252330369740136349279186882945642763035322869434517927365955934988861146412552425902075886027944668695942978933256049138778160737698955835156433833694128889518728043352190870301619883209561763792750540963360571349398881520298159274652492984542409311174662227604128449021595518177852763021239503565726270556567507073889241147868303005552698195751403439444525104540915216556955725766394292624116687307484500733961330316694542721996330167213518249943327091628198123730956309141660721095336922242136380634091768101941481551817611624386570420428336338266684038835807950576137995153382702613544359267625354646132528373024464789386077235015105514438386767254987413336836851150820996668314497082336614368574881952497770873632453988959618656806862002240144775775464159774575062080849388735427775781027465323511685416425030445584625965680105978871118192337457956043710486992667664135331752064297438865860388931872669297639452362897441324905554748072376735884059674835278846789139754343840030782003995940615547754502370524693745877781168779520717812558444149374366036410817616068259923856466347138796720856096868967419433745003428796114303487083746400737972798179482596305573558962292113447699845299271992489927387719422118367648482059015509277933018760541722119290572812637618362033500654448923574188051149605667130791150203969404304744045723446155103456693276468023672073051383563526975594646099950228584563664605013353566319507067581337227403462822935901306943209507051401999648241759776387489052483703388349073453871210853398346298803734510965202287103084537060938030392499147671805696195253859938279263091363758387463674582910694630221706425383337331713751126668264064718668575282474212268552881739412938749692606427637733176550626591589543553745408975875612101861809887606498826890325888902849967620218713734407195071285105703796431797896177832798592538475718913468366664782429456273587333580204559849476103801808409235708910198446856948528176994545540245371687905848988750206582452778774599434642747742420412742283892889113950487982063767817364183703556743250766615547074968079077308492260806908312251731260395649777386532805054852040978865738171826763978092180482494779087047420416443135048752962141917884105495063733325311188168401630326232640037296533197653154842398735182667833689938661872351906391936014501623507357514283955605822877781665887664469609987291263097163979889255140575390376215723699970616127010762155971892392039158796171568535861082998835933420360329443092098367162559069378470041735923180179880619033210793682038342173285140507101957214157225570367694453674941126768667278541027380255314252475704757921825096088587418106779073692286903540909556501861585731283905753498000858632263449178433560943173014968545815797902874436679894174176248041614461687621363829864806407551125963027060804100589720064276858699818784061465110897372619983792198728964922609711654301294654118301474822324321056646417431596450688272037887737292837202815685623518224361362317160706443938422464971569745723224965797882848222948255989233512003884876986707563886225702761879127608798728532138817533727520279951958638286968651861859646777287826263872097199137620471946103174795854917918324544337637263224746170632126625996832866071858666083566340077888599294902774599270262361671528782870358933738902324077251319185091797653131984170403399444072687474381784982547670243091458616703247600895665755477458701544361251730895809355591409521208542918929401392660948436181356051927091267104926870496595074636144856751246970622736909159820488450140465873699783892098293438894175986379199777000737483583535400457447183404850791813607151903820751906153508160049640148480847655779726621653278371878413857768538390296784233392461909860069401378430383638676463318201379336842980621363133626655167543131922372526902833581530475652438281824709606078148666979432388378951669189485044090753799607622769677258783903097555156372116227394006039847706752327056837192640358676880874673724475393157825616388324490760026666506931427870100209199882054932288114119149404047386131607194153773257644439898017543073742267663171375963521360946017128717162479653056217108580765941904562555075201598210511487758812837953299805012129308520269547098788188897593177268675522568949360323805501213553166981914007485761254989951078033501175543200684958518080557365973891627749900377695082895961065040190495117728218518234656648006799374283943200340192416547503800538866850578485691609612118895185235081095770120724140577732449180184978661386608900293481663845354328791304815441785184336389977421619598721183467525256864373361557916911188544217624305001747454412158138515804491255371246160032441009762778994959309324907013534811182434677497218314346351083644137423287872552224633332301783205708716399940443774900964818153325041625664900362197347635432736233143392649049413332853742197897968847202745198242026431628439729357495701980469437250387115488999139707827909565885160515590455448347890514607999889079049362250344409533589830372005676374624480144015799165461526623866291153969944215100309509299668044187493082379859049099850240694775256367532828276100010554197020242178691164326152649434986383851813930847673791591280556926519015969613884381925691679204974796776284531587806706008123769714081792531456109375874334515378744170577621646007505766436224127162608886996010636120559269684972048598457480809707466823484168069539305196106767214982078488644387695946181031535129860738283754331280539686765904613045506347717147076591657332297702044726733272765502743760190587268335861788148902683204932741946214015228962219435541028594019772889069441188631671377166045808671535238708231834392020806933595987400970802935873436094587407759036190963012456395746254507692321942592901881384529608064590450122944948851524140135979833055275061613144748285913919694385963582997555472971176436469133599657532392139812856693107982201651526893003278616949383376816383238552036718463188328841254982422807993009522187990187889944507267726381189045535526058725728024345435375271668891066301677618912611446353835131160945321305017993378268995609073767303564522467448019168218745515120531044562447489343956265354284242194828704867355483194594955396518669514327857351282502232309692571634423410027065222043036735532856810927489525591664444134122093972255044454650646752486433386947249298719608124810121318403181571869002603173768298650839430018232269907943682113116830371869080460534593094798012896076204536841635512196449321229462766739652035832073659903222707535394838479479167665174107586602346867095211899696495017715871149210410799648583282944053251372139210177936738403498905891475986892440721380272379531984055982892504609157137203943116872640949956667764666361500729853461301863928704387109351781256212081969095299430894257624279334583457406896179253051186376615441877141116142290667994857215526458873139549166539427143449921327631853210402050597702966863749487440412556644335413300152958553014699118661345439790610572825185670305058454503111612200090246262762520741817432349203061024555929854723378461819383625752717128677985358920696273681978667331423700524468855867862016463410228114998992759977529207878086640738435957571678627978876520381566769276780358079417853987795695555075342372515674834613770194778974187712126064376686987945515031336583178282645280018665382087920217814867249990278558171283058452509044219599145697517143446026113657667373364404101427925090419139684751847143140510700375066884392874914561600706833594149838181560132327563382371169873099388730218507784563591936643604900878325083235366403639128370847260207164708201357334692744955332178188597752060284015952598898832497134798427535988535617810374053316220236164030794324601873608448763024949715592715775693520353638823042626649233920734609038866655209500547089830520123576097345737361032073298229946401630835717929463649808196256567926351060908583136130182581671402400013615894526038340970295345379448944481080638977103638490624660170772340414126127804051948969566662908350516841017960989370436036675929862109845963974301113239211197500732922161278507647939719322589238516458126986177084335989653519384314083257229741737054277668625096638965739286558404839712936503093624756527142876180474348601496849389538050769744260777615628948151051836832083560899562854104279768867620029324379286407906131545886666903562018809427527076147621371124428856004944249045241049649466353391122339525948291002186741618122385290253445294325604137686989142428822783835254856502889732254187243898996153883544631725681359566548182142557992033988875359767085022632145565075559118865224280196544366092118118894699640464498950003218574666765390383705427674614520375970623155617684816699988427027323864458666961857084533713630329774054281626695126094359467582105006273063890521461125931818008431864868258994281425211793110496548565753965440635112690394299512487622044011862593354373618424429435011294320821343078171668931868772845993984393229093718478327553797692130296211064633613977597636656558983297121222253631405928862196455094489496412720717473744994268326772614483634913017062015214997624997635888614056143032450260143641248830358154375462559050204120719079935182158769023271910534974197179285999102224480677032607976433719010987156842076704542348208572156720565634957331620417409228063256838108459572609532627282720030336334079409704055759413916717012695349421251943498071499882728648064979494910954194301339444051992640239470621160243420118030793743274941745135746645505681516919138518457049072246373343445972982208102497748575728896649792973249748941481623085918847865672014937933799395937743105379142205852765951946448957961273675212450697707879109944152464737025973428871119781319519737413995080769952691178444832982354615663949197083038229978682681917980480004334274788116060963737747777032553202232237004455010864958976515706808211770136226648284398739584618767136219480962678058414102646157812323153021580024482483611792085728633247991988992500453894691478297079952227124046316639984694126570776191842297091025259980584476650449614010967083888797153950433794900750835099761088950471768983092223231248721468307492044204890680297582636344868284783411436056876772415983986078936789633476620747533404091790446160714149344354735027342582552827526640689021659462121825360855941309106237956010574421619796005715732545199288186489413253688554324937497423716209041778396653661689415075629867211836261698686244905319679027803885887566163309145517323557084015802299622456376962009098669739221097846788612227201795650427336114841954908951674774768418020804695524482207142808465165359116233083090448035520326162818296973934452795363407716688393143323047120742810061699139975961426265531024058981290978223364347425077205455915446243553683633210419391344180636566756386212421934358172576060339614934290834434827172131193586367886777417357213530247573001634892489987469307836387976312808030025764602603578745253253265880527270849584133681186631156234880562400990036844996375966660184043488905996586956790740358632882785568297260518769776894222375359797145289523681516247551296895116626484051130077986310237683653250725633968554419146846965931540665167092891256477234733849296580791232027628614821803915696433020738913735582160340847529992973600505197539784452369092405049200789151351613391868859537164808809824906229042123633488411646736422879406484210575925758838106136792137313115866978427122714961684633407746915828686399089970867364135027834735735780568421990498274020969140624648604763322271135251329857406464067652528488977514522975237209119303468304561228007118976159958474883899333171021004578694021003441017429616579221437483949311454630812916204270383325198612103795888042471774316946451475694078068826092049192337607619815468650877792442789729000810415450506268185160451996104761268240539558480361026304689801462056092281654987069999178044239588550226714364543249758286705993252338859164459521990480004092137528508015564659841274660226010380596326965386840513417771746633273337598902458176604139787939019942375450664447316152062634661950638313674880368258657166396575737124927799204933546111647985584568463916475608815741302888497238232678425688788315207192939827210593271250205031838883172479082797958196788847592475931068021791783694061899033444807190103977578191759881195924285204859820658856414900589216698678987548646300871125861017738193564176194647320951121656042489094972096090592697956492496377127242631636810000745469689739611207720402460050534388363871200090124514157935317268978969549839614193718785739550010923020611291671101512585850562399505811616891804416952461705991215374718604251033862767337232271611902086813742768535350080952518133649289233672304693033844421749074704300094658843823297994178608900043583953934237975527284035705172023689938648563495046661324777413458048011449399314673245177587979839228788707594198694777128135663159717423063928456600219411661399198666660604710041412318819651540035459758205116463932220237835866605241238914289887871658096907627351674740036809474036829728849974637395973365812190328102721581587848976027706478662480846984940707083960563008235726328127215665063716787526327462245904136997716300244940322461173616847766149783080645045301736732471500862210765287010780723274036558998178104577688994420714799373010039626229719647052151985306017039435385533680686510217506263696881581507172507306205931427319914162458752541398525243440535702888962014942754136920936506943852748677212919707203456296961224692116864868978817365811258061802125351156660715648774693621162309490788465099539517731299534037609070860117981548132782133454506468168293194157651915868990206684471298695175574061911742545541531736366452710409413965838708325809864120848926667372773555850232665934444799490248102417450342716619617295540565900073456167179030559842716005334965550741715468562866430507516631737053490077817132100233777885447517390025190692261003807559368392158701761176385312735792214082342652135796146180754636184390378796568774048743791703176560148240181369755920409548438967877534077584918488836746369834949918465888673606452715622800956704064796333385846262679301183456313194989192908509149448668659549210762483954231580537803867855255104976038786208851465783635781839462998967576242656762010845856096621925178567056358831970361785932824492552638015325933932335883735864113225409708083120845459238694133389462995167953683300210985939498685799041452745038431925850453080931026058812136618262137935478966329542216462158821589472981061320623119794602434225073443013442666599654570242579621694134872406078060937757322453570170147399390486424975935750179981093428378016714040753543223282826597049839641346454255558258455271119217222532713138718772941663511294979698165000161706692409737290014659092050822088522053752217382545840634113991539362502743344687922677308813950338590537548594456565470380096970520004047133149047910432131930114569776565914882294357076826974251605242741506569035125139978644310415625058806290912942962490145861402336555795220809488239692953004758017032341498126572460317162518493090676177939383013515199500790725865966149849227956947556799047738170463388522136289432680528369256083000043898411083409128280512729266450926360262485047809177881581850082340500696083011503833904474678505914807351216721158598032023073006448520625666182653857979951627816096289280885503685563966012726269659057246074681891129651063756823602555134778958647081526315007452673094540347768847015259893446187347670493395138214458547504852787616767428913138750815101180524435516967134829765688975212873197176843868090400269292533027386723834766167633355746072748543799504417427469414914719112477108153935635464974797799924437134518573345982065955309668388406109872284025760934865398744208559526023658439873667085680680909032288508047444480347122579238511461503283196944313143928909356629494684745277892165020021431531887652037793564549993307580465535437655540915103940003691796496059620541011671965162981173687521018026629774915244985715257039891853533232474631057290409919983118507065813274836060115740254141399906828166121234965614842422985441389042753540775459784140073602747382107864125324012317221530338025675023055972111175406083151516205012438386346261490274124154700761831274138200447955551857078806258483408342958688596316709961859335271068164755240075059184173400473476342650816890500532282471087768477199881468132601437869259712590040047174763426770248221416646192447272178961169791094038708176539556387227318533176765895339170547304231363879280865225433087430363243038081166153748046983116177923891558676499172043789987394636464393186747308281244372986940480943351309789708648493813435974701711641505608246308414367839138022441237659110939051942067164229733041075928394489183429645932778407953060837586146794689657970684523025757680265237177727906709970122741669049138310799707943720833387135721436409359055474449141561900308398858450862782914084623801447260255331581187950820845268543780437009057668003586836782017239857305745432947783093990255928982943221603303267258376401904300560703434839655284577528341266636829565876449588940258184916894037373653343409790931292342471648886990875938093537122168914385193879277890111886290209436790261188456234893190168827023200846205248167621869845660753865426296971212614376754506150250870056618987813058095371972791809812724050561336452905467549822627077498858581073052070953191060311712345788341880548019657276754043923432335480208999861990134452805761910889644249466378223447748667573605088879305405083227514423829274217141193631094862336489935227990690368379260063175505304177775184583661414613895433161978367273349700091728535358540746490376305678724101612904555287282562620230143475415055955251174733068463406953911784081218482478877059390982313533560596656799121668669006507411225604715892057414674305362978544752168615497867493064124335585331505416899695945459042993452453227203595208947254088093654014564311669371124231737585463586172355816159092642711019755880345430451124420593252499724451087468184656007398288309690456879796195903272229034685887496687022349786772910659934878271179533535543883467243627057584911808390619813972038584745047238480727811145180569620804342841499601349004315442348630293436244527763316430346395458009154348238183499596226037502632558464174767221808680953876731596110079560962648548739055469217159252695630216720667478296316355876383659144418726171596476486221431109301286307265127017992048476990238582156069459573685336668986403105077151586800195027091701485207767941289839458715939957883325364567715115857100039371182026080882148159612473648500164332818805054772226841877559987113049768167487282416630505414490315671578145850927816391408714804062648605182007304042990536772262116102875082460400341207044469334191673469050360685475505122795680985132386386094267612881590703111718294340240009711946964017903172426742959795387686346409008260526230735424373534287064205109538324100129882212088990799294812241269291117765994305521793403124647133154377682011063612583031347527449563104080371540133746162665293164434487269222124840858161515295984048865970574731329946135093029449212527017347118427963244340339716508623123908969477810547215580377292139787452840834610889679203623695174948453822548131763891064039770491803721166457961710509127856102144031307581171456905523470236779579122314568078061252627049573327665743499142326783737381096791808323702522821272245245563524880961319750040339317845688577407982380522352366262613548266632692923807033233410518749918855192087890934911174621747794550004661507228658873880084352514257841815491053234546688994452983700718284135836822365761779469435691571491543127635130869020744345451116443227169341950742886363246982264580056276025831875599144251038660621186825445393704258553430610614110729914264718130537897420772715401871591631679519951637052454524357458175407372024782863318859354214726638872761951037400219322386757614343051695754978796578978964934538250614311759859324517291332122660973912767315518352002507074497017505940232959321462342102855988570915665998449793870138716566208486394706267706992939132797336589346417829717147136838002079548015574050342881342013485923511428548657381971522076109425389191740315898900928899774181046194298279579229932348262346087074693969296000083058650457299671387599588492613711803545204462557290391513847147732803655046202198757715846483510544107644421464643574562214860345108139202296295869265584668709354534907093711641393758610702499777805634705869920050653046750013154079196207692449642173771396547177929697335381424591445989596265571244080004773760028216057040407689789449515442026243809576285906759709586228042365132312907278786088048478134728355287702781668835923224876470855934963740574266586271415275566238779314031004062783422394047316148445950987172018737168140803681482322911974476991574035469788479501216994152759598886506861541830339910610865388135876649146376447551357431759677791229837849534729426387478828097455926944197788224495875770841191432541886798306700822329917881651051959390564694878052198197073983405646277848264175790444190458836953596046973423076096542650240607787890755859495130418692288797166514710541488758752551791042172963345574917170039679594290286186116278897933357706241422859109607929387754590438835982122717276137946007834171583621242319789126993761533399118046517859257801459227420480550038002455236058383480649107257917259379108484969170075332013499829930241351890685838592797044248757609353802997465979641609623233753838522298756326640772316193496711612147593406329955691563841005264690622994474188948802176572233712972621725830275228911860344588774717673988069525642601744135311300006649986612207035416756782184894226696291403813275987873256095315685509345735010749119052922930402135268668825138821908222929108122321953710329565613435606810733453328600406268132578275103871382948193726117370544457676037333043060240419665291190028776436905274314790352799881379085378692557150011130227218342457920511222941068277611428805714342857433029852740631841163522446471413358196427853599427453026448751302163425004261989619145407450890490080282951068934758446158301388686508965004643865926072548593023401333686600932379255659721181056651469374525703761604262592756037565850686693630777113826360975900026939784431119287059889065478358833428802975269249287519706562010114206187796534219523917273962097797239745645335413257142183242400259355600055394462309965590043913394980000871420689633983295878203713129783456585799056883191377667799528761239825345565559813665604257724817431369025299625017853236436019810678773044310092678845031978327547161926973773340399550150147572228818011960009767447032624000564445736370985946968312778755425246981059081064588632680612142067499360108135031196053895713860138790083091327883154778790734990782190830671305344967071869623369605325900945006930323619225884336975609326072672669070880770814272637793462070069161342033606907592903960070515374992516740949959445450229045733331012958664729148867851364833694771740180453533997399962932307339095938154492349001974113721132082278699996009406376179364396680572085284578560730856815556767280124659979589653810654502731279060240547655897619344187506176532501576771624006698520877100793005032973811229495266213960134162910118475552096294279302525862099576524950777572080901728238532662666423743125902058079531690077765108129340912396528038886916785070671288029710618264124088357036271852832273760588017449017637370459881766187023806022278151361878740542500889678581493665422268415971588850438381431832627220888956171641387128045542537219923674676363770518227874864517903663577017904161000373041948293618857471172027145277490154872739679229093303906121675955958936155274441811155160114223615004006529247832022835141026249194094894349291034735500918996783179201911715925731258497285903734415182780587044709004653153332256388519379817120603065108177257025535786403701974263785822196271246562631778193222866178600429750206856902620525914294594180008731688060208691410031273246046378878532824100417385503341655396720306826377111752461643576157394527152758467884321040865108220507455226143620427714779786432013903081647378724110983348189421560272467194944970175265394266447085015960185628586421814573853699391337032199567613549629647004006282941511795144973941230441445254899519994617816926753934624695182479520010053149869748570736754352322735046046883731146557996698554997744954133690543681167493403876501909576850439768698121690226636078010963322717297951700946652605481477435183635246103235777554002841015756067534827695163820008001106143051635200142724139991897770942372244117384601828877713543482733973290479099607549080474858955076074670762727718706095861920656518127711707599183230877530747318091590632373478260021139788967495956736634910293711032273084316086488727951194749205302421707187607546143163660316747232843760414259660308128306710617411270675083925319984885907397957989787335814828332661403829829341720060157973091268703944930351024635120676409444036474828313529149025325746497561807169217813619639150678392475993964487048628809343693494849731581199037525964520186122745944854343812859546710130119782606005806449725425975222638157863683809396630599150046494925647609697871914975770686582260106052073485679963454557493094812269710229551839012987333968903393787016760506753628871763106110321407139874560761762146915009491531954761383733755359281108883551918040066742983323105196670293956824841217339069663773087248146060568449733505221340737669575174750579891286594279104943416573908203194118557744817086173740603516962463057444304003733722408703055569137066528866287758350055812581156420623552753496746695205883557487713331911736805860204727899482477859634077662971206239828131770838383529812990748354472241982993929696515625111836917095113174055191779971377118188312438107420512802174011404044733780920709164389478728721496718611145155177143633698075649294824202573536140924632717705777262791983405799693015708531890397845292494821225150656707696202188984546174754471171036256178471968406880903475045896973435896176602965760976316500165033696031815332714864126169704042763521543221251678127781501117503706466563798894413706332095686669223805473442594491215642224849371568241259743336787309412706316628277133020524559039660394110109322273615301617656989100896754772194736826068115541472450246330248524489883151801567089938839066684669092921754388358312709905224991403798062790012816199890059970371075087138785712969824629903449356930341354879511734422566654813538799104172422631593377201619357239281375965235464465392095313779037693845546454892625944840625731131053713087081366483650442294005613534685132245111176652533978354210151634024901808215730786604994749632222138126010420011181365544433095429432727103648302044275864384058061362456888061660705812154656602970015288853941873091241373845106977023238203339223539824062838120196709996340669459986207314129340895253923139600793887998181655554039264648213264704211045546175513731318640922938510366631687674797907686090985411912650808960366114741011822385362391345463300987110654843929898851456111159450317623969484881483884695495891072851082671689839981202471241864227655600998513110556708807636036307063915581173300600875727559207144858942218324359792772103689383247514066113488138793921668558140002138149499357639634074310073070924063600468788639958167142698175140614506049515588783404058331572104022497571263230898702830838471267564771050016354516267490448443726528569004824865048510773121906562339893712769582006801381522624436042875516911106518763974625226843625210105357481292017956370395649882946633712117315893972647918143475958756203105578508447152337952243674010212426860613917987120523800819468771468440478586138131134957343365907933272995142083860573798531765545429762847745811443785352024701737866664887971420660768020268733506968857659997130435113050575644138484086931463533309893525691683556091177999411820069585227790147289637236777816240953700979109171319454462365415180305628395507397773196971256799075297525139843098442738071745728235484058863556842168040250619131794987646264475615041861844711915936962587230586241711661955182563509611832263933035077923149839021909404113244223153966488572340178624708628770660379895098879355186539684532376774993776694477185594395325601536209629818518712444931691527298032186557062439555294503833519414559106404355121909223193289824016702636188860521554349600880313236267818029561124694039753252922760755865261024948979991640513815663560064125112780946170493323363050058285128957029647839699593685326767901631523573668132399964187774695472591884674888610318362743045347472690700011490861920104755133636199067849489308693511626712451597202580472807914449416787659707793243696502665547261975450093115832419130705910998511021056970014075441888239048010442630835804467417925843752183251696680308313823806043925079974456350392091569412786769496482911358648632816258385470122580723165046150713536991130293270057832474037270788626302958095321825498881582056724105048371967887411260481165831940559790828119065016663097636086446962437810785716177644125070208888833890888243464153041610547364968267836769454720770728432440941608174830252511720415092337792050619545702991979810928026260763646819940967878597664654907319689463635942337881715544961819713685572936342110082893158397677652214384135246180397113686772656288902517408954270852464528940766393296731696234411603122762157795957815942573996304199060749759770867321360373100649746089880037244684092505316862797574707132562394069077645539284496885010836880618381901892676291593703353590048163156922896987341717873141403711694039690404457976939451787451221985525983897767287689860088070185062070659517228698643619277739210142358399925328902442659223352757234868747910138965384640964845408905074279687771259048087039262088781226798864629693907555437150307111812349407950958092294152933298646073776888455054558976770465481480599213133338135495588572918359738745945758200157787080797590456905363040406915833176699387968443352787659369521615512858060193567438235331869502221242400097464810339244189790107787864638553619120839863558505270698340791796685383973813685918280288827117106710077938675321134317680115591653902034495811753122436147340417781665895480289478487102060044591730816172669396819018752002559578324353987989594644459300957141785662640474288903518577451726778721110533365852043955150029158978858127147695247091064350599398869816881294836030113073738080169904229554899289337056089350099244535499699056517711814532483127397999033686345865568960931458138019251868809398357063267912776589904841621820488311088689417904239598804784478889515621111101289034893389752779325310323678018706126684263972077896638103231771672546871787794705108846042922001631189765763350159139919551821332684329236240711746797802265888917071964359605916672399659100402558170912688291247203030417422857561059810976246764085244490444914185783463440580043434129012743377274867589803253776900062175938121322707514656673704120487731188728850025224783550219373792997314491299438448878744997122896374980017133916647154290454516660189855642825630330761083448531741885309097733382185007969991192007405014774707092028976329029548950467489697807143502967180600659387671448550539075592925332540812527348379052202081552400691639576886928324101486962781360723085693790198009179434424551507619814615321990839460952736147385758271109064091784925786748276112012065151193791871545234725957619121805862938478694484258125841500616512751490040876580354218069728765994413800920561393739316026053882599832468379511191600903382354980499260446192174738235019981946086391604694320931628239433608928819142837079665695850967169804944796363317894080840010083287031379973795137084055889674435975627361674818266325675984043039383537460684618583714930207148107013040216261789053315703237420745844515430094325105322545667233981887260883179622813206436733225066611002058114910671036023291219161201323959636257746510623183311816186956770262066969988188720191820312189010228102876411648313083728803045332070707283625214060401967530279949279680488299096940417741993364924718912953470677718311954318057515894873379056615921074062208884989258095171563132405059789868959701107899998461796177920756873975633862350141469933385714286149348798386204622756645976751168002952922710445390285880825606413928098212142979454918296813555733792327537624693701003174376231526966976532490568566214200753140760576613954427812729499229836407224635843767606180817180653041313645676702713934252730880949570603673818296213200812368105855647518977017298830798449529834735157009552286880159149546095536509315133130107020966660535262040457877610645693368597125350886184647307799923792312193811863112198263064292315579284718148934217007774310474996454307037842545744624766691302001584063617384540665559957379997682125604071775473779845500031112119842772547566501451676145217133684797856223252983198018475438700552370694924417158561416625148934044131916144890778416148709891202208902652818933605865110366699665028094862791436372771160951237522201530385573743939999854457810022348957897546005537626628823991502537782024157502006858813678870264345305538436827578578414298660649891576415401316552363910523971930259291866287578826373668046172490461010280940128531297592689214729838395873809498067389630247322664546629635616378507276308927172406710790121254152038297736642430302907249846296944787188661071249963051260682931878413039962857481318522480365522932270165704776646090329248132616059837726029579437022733695958520798821677322560244469816513846682164561127253683413771678644952541322038872987974709099519842087656166879856570860205223526812587122115463850082614407327023503267170777939494000479918118526829802697577664935622011001573418162953781199416661061245753242878245819774735467077178211102131500383526290295319600138690065100330961428773916261871183667252421606371643465430340834150367135724446992565291283383118601347653808179527101594423489620641703607393117104664939104945481080308811678918340791075388609754208250406734519877421904489692738209654410915545046704216135772297421817847672447374722634647700425622827871152812178589765342040519968019968069623232579666519424283866773271372878853532885432810933433312110366632611210865655228298367347006139921934315792627335399933303685739364884724084813755126055392044535678711078180021849665130623505826550200072199843353108565699590291193149589307877951432831050609992209354714981753742509747554014314076955493730432629583856344949626209210418233049857343892684897734621777650308482537066914591025487595300529283018290723136725099497027173038943072978327058662587048919191721371373445349184237935105331506911004487919770803159052321882178761085198059528531588897731747427473758121165146797896145800133157511884743513996871210384484956346132821500618524256926745994493813444107096528717288145993585824575455917092790234261262889248956944120618505671264857931712468124026760051758476321375074895317615575488670319660650077536987716609867061853988924747916439692576038082131578676489144143775575452171644952792783958090606215559817740529087098774592605517319673663081239815566505464387469288490686328681153861572709958754105607145042017825664323384296712896061081254278994787398390883099964113838750249938792613333228053125990263566033511140146561562543937736507864796181445327704403728193286238540123820719315902657345050397134923810582655788083868159318074360293882877307819334467806729716216167340264940652375786931139057556938492010690696856173140571148779317457948539951280576741476507386010467488783099632000815969016140977834645112982456811597939123515910116719944213292522831383357276563257778513958086571422617560003588754195007778100081588783785944939862542626831229224107354996675758454088109879348563290067048616208003793212872423564750669987122477925290681356413728637484951755530687529192667881840725007156598588454072947949356004957563743969058283343634780720146080761334036691263598562606372579481707721907329064584094904378555203697723025917197565547435692278025349381123607364446237251991267279726451219477543059166797860115082156879652239161680317891795562881845143356012369180539801160505864345565618960192794618779735349304493113577701975565680468715303963351614202644412346533963213288853675228773338946076602255133500976969288195158117885475681619807782640718236540445295857077070544722784379837233996940027865510741381954423171026039869055462724000018197637284467301766919925400304444313098354948617516550776496401197067272091324993399958865897058660358834370097310700583053027876610711573067063553108594945107263040497230821130775371044298239019073689574220913391465334503051735882821926758608522384529338930571464950993132892614925118575478338321545387805200113873950019564806270409271948476352967890206404789112948634678702637104265543361557369883704757246534797368230493958321026495573301321649234080141866052021606055523750168993847855426637199337326003670887847704343876787568682427376867420072641116712166153562015185416356162891353066284661069639777069391121226328864219597317365780133897982918184755531982177159601845110901619571131472580597107222443754020759664354259725158201820656847118715402963448757428639329195638114881472438174361976746231673683875382834765217209839657318943722899024844387742589937439098221150608851173571520394773652909061974709743803918571636742719748676351035022970057170936735231263670853243426515970044582926713495546431398663681059504106547291991629367668320223020665293886837245741674288048388707673766082001285883887656644379286086453240049891441532919396096609227789740052905840290305701051031143919126947128665903999576052791406629648070880832246134466118730645978175741496913675207543355857701584777705702155681156081817792168080095158527930662969820432979531295168889182737288260092510510296016223412098425111678559859728511389538304800229144807426291606661137685724566982794274674397678642694315108913252111506558953076581801219278110109838492871318134022996590629031531701611913697679087288366169484447693739730263944306357697422210550415208063923191309029518110108288890484509134245028440199023481923844214128820893263121131487413711082302109823567802418564429077715781198896971544776825735544955629834140801151390486509520371881905284113502247529806109638051797543312734191419805830020641726419195592890639416716874821842491327090173573915524484724586817704046961121832237252292402909497958203726544947340077932826535082471676477213988238803877665684945767858878411359916559959340525933100316040157423027354170926643930722022829328659230588442211795572280628033656751316380189458350907092862052193912380501306841398172058338702644930359983918732654304271046852867519306835561749035412948518960274435266814138322026744866502984697185244980317977727019717285912582621134582767284534649153312631922878536002925571080142389875774669492084499865747464121297595586988050084500235806527923526284818972803011178924587919801898762132641966845587388906448823800851167656401001394703129953752276418290509291361361074026787673119806647960468815674831771563680407586846606664431016563118203321405403858840367903391458099286131607038278394593431739200696171516503042934269811507060906356675907167669182874391855439429016408137606227909237636048232420689691040214522376271648184650148674931623278043833601145059533867580941718946957655026865126544603183863723627064733072637078996260041081446000832082818255767155200969464827912285114140825392395001746566349498336888420252318513524334080102891319516296538437937473494670322927653761307957424918881027882999723329086707419858284612709253457952582685090723360230658717718640661564125044698343805259111778617644698314086003444562566765167406924114544960432739389179738965541273635226566699440087598326695703896754150216594067335682522535641121557576587944115507098003609960851236090069500814964884969802323263445402707378268406537885509752289939686590261149025897890309035220050696649033852120305851677143900132035433184455026163025122821487184165251959883003807258790342172122792706961034702022944291225340246688780801485678299132207333331205772188665573103261709734899857872904510988547642273048916265348701711140862536579733500353204348773559140987397167336208030091055243228747233751737585936442690884371726709177125988318155724188632906200812249016933228426416060563334930405716442131036077316734872901384587821719334738157349367152047310716729654865953456742115213353101289788944948312437917232459419588047123428339382670229751422204636123566025471614534926176715539749355663927212321824375424921107226168477879475022195294063612301404015155084292115393800052405011891740018242929595889587898750643879839533617408000032677848139531273567466684322173337736508811426241104072727802432904797508111769070620901504761394976037220425504267793749340256140460285633886262233072900432148467840206463346844505395660180423474490559642275075455883461589733536507735713333473767902575188669775861566627165459843603845539739553674262914972603686976996773912152238024820162488550686310430432039817956442124593379130521184078304244831199620903486300868379949511232407085892897655777187453961996608434650041335707500160131470951719152131136020752531494966134053458534296396785967771787249780989982125689487595667314651687603167367431323652674202623029682117620523765216165963194182377343873245166878045054352366555213227385711523001618655391808509229050930419008684610458611149474823107275468590213621252352815087708054431168108320353829454566257109933316730139428549198297190961991897492569199055819588962806593337297444165786644347617395278894473625211645531283838842692070599982548122616846959824129603379344951457591594455758419114692958971029875991956944386034326969489566771049456416914635850692400233055596376606076632677946009658173713653709015877216698095081225779210965619267990479378948205736365541817760567301420999258330590370747059845288653533431182664253426125702191975641555620492906123479194984050820212963148003941927900466228332915912893053380609767009922515810879579040405763256546750834946571152002474119764943478355805054356539257401507816375159780267419425118363980839887333780112912906794717581117924524740683520367212230874618538456168371085812840240646674022650234685382401973578978282275612742726147522082512405438655645155483112951906397980613570731554468837122849624497453442413704493995171945258133009184408359932740478401803884687204895025649895993731771935397760466357116138096189514028447385635729335083784661078409681677422881657611295503188273619099954143401334845956202874181287611767990463970775575999749110776012145481494538639889245047467475438967196375115419158005307804449090891905312712306174847399121347436943191525030663223864846409358375526998494830873205366308181996301312443619128591808952265954088469858244069940833007264270863013901357326057051940500655196956668942705220898598611227279121363515991670822768896522614219819616370658984755420218967659809942314116279699142740918979212289195378688644097513895138148623167021206605499371678879878202056621915614087755307246485408425819920217459548975783166733658080038556704900697683161947185705285638912591571822255203876588601731523587897881133909397159234318765345627621188881607551710244844400227080301126637460016170084354397813425875594480125797491404260650507044310731445195109908337153153123462431376682389143622380522157961984304372963194719122879948842009314379712151633370844783000597634054611645293225817175778970603401450283877947299391149201598234758946797445657639535463377144633520966982193120451095201158125042293430627529300985749203179532410871422585427837084195845203932666989444211346715414462069061991768587236605517519526727695303887762563738078320074270821772594585226971664112340462657930153084402081858303027671766205891544346019729762712332972596345079026607693017823877575196429138683447245563056991990188892682488636977996248692550398314888137468484969877268870216780975488869417732479357506264165780050744626301264640365347581346116082549505235498592688831268006291497187663527484506507978100899146959132891600652778856737143257810303792819993938623294926175060913905361779450101852828910868684372009901193823838121486482643061550368916777580200358287267468774526878422461684495563755429911374551012966204990466516712689908436001155454619130111504270550608358084073669161054642452108399373618144659535039562727647104299806013142424297985441361399063025060944428191457695608284418331673191536361460744367394943537294506894241296372515774566313064451194515902641224130581401699949996956538215086560435632664429586827386149229525110554396675847974299165439986168599315475903676566284554464475683262355813900921107322289363376926773120547790891233616716662013882772726081319819807435807565116437669454046765825147427245747341553250876435051931523679173880352891116483275743130310029087521496124077063269618555525075638426309566552081694442645020467972522507571273463442466284050324482560092340039248414013515753318022530032427525762889929366614915952673343736779125046273068889282232023998331375441885528875104173154084219953818963531811624661644066901550291095213086040606226014670571190832912213098522712756925255313735661589185228722802206235579959387362449054820891399738380308349200926373652278344266453375826220123996719991489987492910636461860632284223797305129437643630559889226175452987791633402956638392759869332413337389025913419724942158011704409435083386765746879574538845327789595591502158092607318065750254868815710045380791613053444858353992784585821361012237353492456899343663119417625870916841867364160775622998256769866130025431256300369856268313382698962671943511984328887794725006042471880646075593903692363564777176658227814563542206474169599600799409233420233953724548897748395365701232231052043599397720755863268214392959268613278350911904810067433462540589122351502306357937585297415902996121241549314196447595606511573325749671130664519096418661636866905009325000684301240952695473345925031100075436093322966918445642502629246997453195598243823447049597441491083670324113218124177349325813719044838850090342233921315663020340826900764654417972734307116487421808140887499218944282593094065564157651298825691199147795245036812999319227977056952141868862585760248862320323076736473198258551638137762913239169176597642716292746777281162953360481513552663109970116225547955869938064325229807536051680385080516362301731359085367976528594478264160226609089504061549345091438594644657852838251853316263439383472794627179826228606329978082640701642326539133923755896695448902625772400579810767255649576639135583065419899844888762566623254738380059976269976733216081231534767753990817342086332291939145012200560900254520970158446363707990463848193609810939769231146384759460108582298026834720253102862477627716838816929312373502993560603990045614859377052269122605709420369814526437345835386839118598437013605055629828844791063469057686550534334700631278885108633278339673894943589818973463343502354962679462632373914787227978956476588434131957824839146600127531755814913719962902958984517287014368257434460368964391322966348723884988968986303912769012864219822549006886614919226754216174858744273372539119019331925706693541552073098384192852662380847049606122727951313805783323934746739162874994720267401260896738567780625633390476354695673367005514798459881452697853347989798163939719293589289514192075038399171637745195312015481444738589790184306762762555606260127197577825487589429168501329628078873546071865975930400381935696628383824605110849980243920512448683286105997571983026861846514697801697358627596105066858686558172601315267389412926759391532147787957876960025111009674652778945105472886167596956993725295298777704119621950873328235665380515284007361259910636220352291786958872512911854579921615247624018221349989748172868869255695446397910681161596645591882468435936187866108170060779953280838154901125239707872049582960202039153342402857969170974912406912770926477135625621754972964852953174120865396461322262481326533230208457215877178223301181134053673908806539758428563367167037300273268758433095630306324255518962766963573126134547824745210064035370410406334918541937571268968949556742464240832760558766591685761316238099980301904011541498042727045859409527346234861354393057794140324276180817442151033427375675868220262186207441074283366690448599673006023444454103636918171612985657066889943076966231119879697490797211072495916321477476153475770361374705773305134250830580353014231490759142367466997256203370090997274752955581721021930606782896141966725493234236511609770985521804583725719195400919574788768667515157215352493313946272524436329490209375237162836141870191482477736604766995803303910431046063746650972023945917932621592717656767028083030392778561151505555994502743542765338920258873618659543766980952719095543146583286977958740124923900667441786815357990539601554831068089207817791604229872319914713602946827036639413629896362755926850098397923522861032759562368604066738647619504920862247272133324825016472574145679827022997601723617693270644103572549263014077065596119216036882780705110652485210185160613820767632765033836464296733705965079594683124426687424537878118252644881104919322884542705847965108223337582644848039455896769730665193441608807193029361976713520157546308172020822122636716097343967416880302155496691486654384740211516802878008932979780821896828558121306864017666153441094682361360335426369702951494205736196508612779787208146589346778758415770199134498680285413792884589252690881228593031442361975447833569407027139314573555107567181574752655912734656793289833133624433334986677843208722366083381880210918489371434863439103825429397713216295930415204522900707696302961143998350452694105997978949964047598419249001186311721958538201675808101100420045202042707524229512783030565146937528284673777567218403229792693266568387599572945632542815244907415756369551146736887633633745561075430634678411517728964837918029611960722093821239014081612375773555598884197591656581935546585042662026332933308515042336361533885654954681555871204223876662217291220650479172408694779406763794963516867249773352946538587422517914378406673646848458037042507575084141659079562104749730658753246205547582205319434369794100082768070136143089778251717154864999468069010303819705022836326706732837333367770493447025580105089960430678476004762534986309715673739460454598333789231124039707834192349879442006990458786138893664178887874741272256233952013193368092715836827559130650785710053900162260252728132509948376397005580712023352047896790254460346650216409063528030376640989926397243871768229596756192207059801715078101662539849585872163071432396018722025507000608796297499511451447120350833019295359043365388641380559271405555718606687902342765432121814839349106246015720201606090107839367899468417409718511696137488246695597505961551391407983692123494211301176989555781694773497332409313618240061231103437613760482025470428620708132435710969539718018623605591400718719056213003803350535876480467139799170138033239625194356122176687475148369146120736987502805495024695791039269620135899425620694469785664510880625464832761673187673602223838803301497407552166690037572826386558056740519398210326748507409282451095784154902151357504996321417111447359200556954562767543652522032166305913922163182376721126981536362375442567395345499812068449601376336943235514369906797869342582510144842141659663592456682435642249201475044833882740654973312987012963134416864647064557103033347456956014001725138355575386654153279948913195860965899478822496071162577364326416246155229917550494310183612627496860736892604031695155795627670245150816143661120781898161079014372998082568316645531185267520459370959196642781011090540644260183498508226620246979316636476333185924850050494790438553516925834041424173204867109273534294350997123003859320219363410118512802789829175102953979303120507326038390767054161035685768026956433087872431059728542913555070744630095462882119612264774247625731428995523635521853658302895126346914618641700539259066927244196928688016560525051420856025852535798049549465514163242420647288390345429814677610021413896615480794391747990018831117425881023060143819410185858795886318369183374199153361721790288362844184783396031964014439991659029036106093503420288465834302706383377172385613539148454650548889437981937656182352610329342235681546451136437822211874068584744821285256752018243438185181797897200159474286777090710388948373574998731939500867314870369775934271864055457098748582362717733374101210887652438349257194894555425674689787397338750886247852145044742971556078425752270080971902188273348278739944284808510017347063416459682392600934728417672099030982980861695906971889850418936826082884919864521531548789578660300947241470429682261937925405847402342495127297023234990003892255441741580014358934110414682078519661450209400489839038526058978660980478028294018339064292770581884568769191912153495235182565866913147693861064401163076388959499552554289037435578030768534836555228054446266085328655521468885774915097259252850151874291876791253381876842316764606854869797050395677299340624355049250036605824152344848621823829656054942826880058326993155402769824800738052788723936199917921640556921328107421877256314407418712371200324847799005871199508452381963200284004334002778615825753441786078628776879072730083995374478137862315079078018115598248357949555792659920522218771308674568201056012004983196273956742992494652077468054133293121403979903480232720813591359664052471861149361776271833456244132324205169062027697974357050914926604982606146810170752641195318179516613525262836442883298220443841165470093248670447946854344352181290364810398389375957371851395732384718462275387953540048153642753698439080410001867369700747091691526972817873218860913722572288907430113260343949054766755089943767247890977513725850315458384894066478062018493780104792775870776984778808048191017618614082679385755227222858993199945054404546018919440894305013665675262211929076745063501554316448551259692781056257504784478387170525940793335242031441415758133428380439912159615234466708369746523793586573178135508090434116050667984051695438619058214136523043849125354824563335827817321774096443129560751496606783350105702889561904423102025207856677921500230967318173017987159182580700607747242085565548249297832555854670768899291522670118206363902670161082245126824476255719832402044295392241470730516027069855077256609204936212354395755341889608028487776208808913259750530919999791897187794479605018987723106722170069982872570095930345217163714477157961068561992939761799392229864241175190660801922430995502583619504676358663344421247002856108830232695108677239271737662291550503469687616133379584238320320298077144464525331594667023810904003957027406360881996956797775032460459500039785861326145332266461799700874667172002849343103895325229852103316469132485028056898633049892877405752626072091784614549284950757631365078799353822769430863953578054360223506050499523441186570328884156004010602628389253768713525891791347155630078612050971151185453982745034044278019602789245931677809418428863367692252996579165667696119318484317982971864552674964109956155599027146228811055538733395841060937403039966520975754778518337335696095760099555953299061990090053086942052169871291440374819941499029038436592555830950635086241297153350141282681068301613574017527690000349493043497286874889447430010852220875048517889276913000272891240725501884439580731872277059752977811787115268933928543361144305059419622311826169224241487490051858952219979350618860913135781505137455440666752927611102014460828590298019987332057286693945549854471728116365402463967545763902207552178597648344305936999669554608240608011701032432271707136412191384507967543673374199410923712515751750605486373406439141093319519821464622272613643468047635874206945993107280231153419654372017527930320675425718783708429218341513288326423930542803760930070718147739733508356744481017830996146247542530455909487470685267145473536319682788440940425165733564098569406868698767216648449334170548631135804697783112301080237206238106980778794102734811479553241339329984498551694446836490565278263156848088116967923090326500535464794311249549512472993263136751766364521088593512668936665102707854544096061442670943974928721572938687833015425844296197295534631389046892551804148141711507652285726336125605941016823995724594535125325545978637581024682128686282022117874914770709628924558194082468336215669642432193546180877765676120902197719686326427576265235977025496772702507258727646061952076776116098850461421893572530526189507555596143387697943298248927415670043209724556795646400479891803524535115955610819053118611676213709482756324655841070411463141031887303775612086456654530837967561476002668874581741830109813025372722607425568878108579459730805845655423694122681798296324266994934294776886237828047187457023830762592402797018380962137883305264291673596523342956311759542148307465337679087035138032491787963927408770067686169613340898936818525205055156442458051428637490425696779882857810935016231655342526511082045031040310501301325665244619583658087610346404065335778057737567541746720905575963944106346869567400232764803035882875195208601043216852615504341414451705907254747096180669054767706848849013059107271716379574274909715852308393548608738100778555663417331484548237137820681486217970691574940385032913448957182283907828995288505824108688647645962487986106581257734164539933825680401252436582258112804337339549629521694793580936341280614763826179707463189275658884298737252918666441425300055465768717360662162559105597400430713776484717693062633394457972923189970349994239321930917152907354491021885112676602478801344588929676591828973960347892011710968080824942375950054318125677297906884200188018079639931414588082134143265278765830374633201343044309018920590213948773173879687184529047135096057689534745020837630102500136222922448366821664584685573527008098713067818037040323469908427346289215379112293990700933907562871499521542526693431774730454441522431207868451912695532078521812570652617922419520036160928457294128449323055684204526968473525901439999838235598115105609286791918953669798780858360257624849348044561933969534899077044217272919101416597722498843670485517996798814804192853544114610583941563909309546523695729150974606287955902866218027180586147734079581233532478765494676548120561071467202759367867941491216167617888929094130633550412472848795282612748230522077780172888329569704955006294677995799259698125350886287461338633023658918987425966233458281179372220589981173361081912905093030592560145322496169454210342238539520281212277887028994833564681665858810319113221544453261641587805602699511919362244766347862177629420825471088536843983558519699392194581041723213915742852767832924870454033316572444374600980042954915521433887895175487016500196297978269370561749676300113978720034710759618170017201817439869347646229368666393687364496770842718673914386277050384184572639854877119721001208415073347490535398361708152062942153806892398448647604268926239189988336736346277445920681308099868589441825338523118330618837205671926967101648192925445218420551057895112699478190451932753932149454964175256435639455236087882133163870939496696540143029686749706663095436661048124475571707246847515254742913421235024298018175767510293613872159132332564207708730729894906004297792678920710832155824307663192902239430106864174109634004409893113849676203488442497277527293581316326494927968450732889670752081547847906115988556390240924519120390654738956177626160129349534520218551856853940018907666965405285180488629412550706518294318924325598678921956346088427822715643971415601964096274448569128165916230291344687001425698297160152558830100776178306825394832370847517167709955734560793838840103203334373395152350152771393922254812007997337911303094087390464130026186105753636175676476557029209764377543693727289117602998813493262747035640250117263412738360281976200139039224544010457192442096628544276229706258328656777340734306706262066598922546227200397066236086570510769605342531990272746607546716006894879845244020636421445884083406757242573280427332028463745263385152175191157266145355709300414490383915650195714786321818454924602084649216451767289481378157224365790254264350206094476727895545779046810302573590071025153951113498178034249860755470456363341943551069596187476635686922240360352834375104145417076072104736957307824731560885694681417733916490141355591145288483316385582425503637872599086507162506384892571199126747244814006649167617652070727317969569553673456331567627880089209786382909396184925023489226332152961615494895345969023440684988138859677913782878013757614136952218194430815792680133949328669119359406221767826474702617441118946257995440050250566628966131063817071533730496047764136892206553739519006875856630517753854668663229190229360421384435902834137729967821774890351754233672274733763578634441783720579409739934085719000644771465154952704969385202078702069303025694951613346326967400960694023853730962400455311783761711769577730440393135423132461644908377142080224380503246908790301421615055258667308778040636675060722186998905499392429297991298128670387303909588779956223540183634094969851176140341936259004184637809494118363484298703758927869945878581511139191409267267765434222062024910096144070930565909371041976247794510808579752340182512420482475228713752830288639029506707207689804128724257459124231311224421711418559731943844252924130839104048845537325930124125166981232483045810034651529052963407092893399083864052182986030020498120226767633801118922706878296788169615331468608784892262325036283431651288696043489862120519180960060873629600739796373950096253257204314655024861127451911676926466155896089292700741378902065939955668111208424554789343291656119388710293953915266081075798034632816015778763106159614334232935963520449405001592399185533073995954466882186246386271513327960526078198871682195545482428158159774554122510023815894936909434559785293364488366949639415733231213282582541988701362685199954135130718473778780036965351910233437062428889416264168359835582453036926123615842648311034105325463080006183108821676844857130207366720951805165784912303464631421910516788503126749314554536382723699390697055987902553353374357434713240637816050076626269478674043457232809383731250467970914503344151235688504927454141916942321699577115991683076263578662758318520870246468838682378952072601830461263733156942698762536132400812677531170278816284588651618627457261628062251329308383343499845442979425350508080799309035303388690796059649830188960159188889349869381918713337788970537788388570776756710754777958231435111953415848777418675807408165549072533643995919573203375057280007856475033018770521440003285398872835579323727336759353098185262388193593679101554116435752102098313651482888283644356112772833762596337865987733153688357524059628098972772000921395866622297033280292688971142776790556767912544301058140515750482571456311159356795660152364815137760399818785414624861944574427605434987709405203058224282848402216922629197610662148733529033108917763121801177126789977984339518769263644782493777239957169598789986478935637878290109310840233669393068411572872258586623504479899969761022507721864803710972549945348504402495462316711322039494989630749536977273647723669951710567480730828476143649584859267486147890790412348179445011583158583454570472005277939160670599457138995166545367885860599222022365660632420291829280757604863535828366628892790866335293404952851520217445016752318175160229077008672611759554795382618439475841488181006548206002215508094436242028297425882574007279617190259424519372423433240066659002175668296877424666849608159710698200963739120722290895630766708775134710360123783303213380685462452874247907663026410687935730495780570577063927337326747223032518226299398696306439929346685157091405013949784484251771188179146574575538359585539363090934623705749352196206790507183076967629635564197695286362801525632525610260978606220448412328994954007555573060623638080516515769083932355292553587617460852935031025007675299655818069688148702437342827814943969072503895884806900715317561486018849193746397036701405463937740406727811121059905079371534103960198278744277128647834270606766296851452945872919482284448977001707646781733515191143667523911339972035299924997845549437726342701057644352349953614933011022490526363310081651055290937000491744626467110527455338444949614178114401956371463853063618947880610081979446700051273588003033029446892473077914826085067651614327509584404642881867056486315905377374682128504913841542847536218164950179139778325432692987287888685275015519394411311263821877227905490039805051617030830371394803868917432250821525327810289232238867297264545178230138122089850176366582186392632201321026207425830972852244600880874464496921497078274930877080290327896994183030944220152491206084074898540197437969317324671239505645004661683529757941575919320085657495720047302061319057768294193193556392032057895664835136296488164424940795931403212702206035336819294292570384123966070992601692446080740867067539102743684851233007224894447756270805124698269328744888555399874045003312371035458461213585817074025014754875937250272214412761704873794254263962614805404024084203810174627837329254667258678654446274817438966885654645942297202771233906845802145190393080754084047372133528901179312517114636060976003000250806510159100736305279426451605234578191450423143538578508836943541899385352479960783648802366489267595491948951013167616627597886110523046419506847957642435018171206686009195149046189364802224697157911485402838464616145670162592629986171832862760179483323391453992326206086568511847621256807611653195750951470107598521323943717366543108168550324645114021859353542993542586259660380360483705102308597983356806892715567568707275863437271234995662549745490732285926511106726904655285471016656439270614184458626355239063114324892850941559748972876894502853134669147325217099249798675871807271533349192691201343776204296777014763032105677692093691995518291088624866313416065012921217087345609691825609209284552618629052946078780230952245243629523663760678871850749008313000134869271558904352735724485994901219113906939029341369997239679146786083964765397172646145823427949239499768671837045841948510459786776695602065460428437679220128156320636967998078754368516130752242006879325020472644280870187918752624772851419387729269598616504654056694559726650750647345565825076760106854446315601719378082867103974725528943447413668054339214542332156916139660963683688750975725844403217077333271325145385693763266590982607336446297806964887026200510556589991440252517760221220922167903451918491109003564114458464635406759093954703155718209155757125818287525727049407981096171762868602149925959596993525189788479793087805435397992354566356441736059918595383306225707087886785848063996568168585663512867691774824064208167235919201027352824848284214024655539795927828873181571809021430938455814290442084436304147876959631423859128876681412658803419147639903491038559367786410545585652487938964689512929823797122805697560492324666299364392714488461578357298589284069661571549713743770538326519782274525475434536342231926772834563908669121446167641164787171770021449364451215181402099323734612842465171506723176003063711566709187817397314484397998856169631477506772109471966160199411795660509138324712874244586177759998248293328825298417386832945048810924809922703723024094769792702982833172424519345173587123462282619644690306171015970163301465012846028145410816965488107828194515602970115174176152659827259051290746184649829784583576095596283552986836253859210110383029240886639985320804020166837092345185755144058675951510910865780018552973968955875450001437902296831482547471634999764480213081450852193292560896651437378466509059284120677036936598337199867053856274362855724861228196707312256781041760901463558451746746856928934618008076141388021707066837358105465307078461528304293073275299670703912793461768845348821434999159818250103930198997152962522232861388135633128789458977567518280362104306323168781920959019700144266666502920692877870646174237209825390529038396465115877840155016735428881816489845001828136276987294837203578825612098041126754696260730502440261238250789435234379994385284161724847601091473025766758591138969125091751304596658988077922440396110941783243154820065498349834088010654724878009625145939563875700951138681914568495265160189649160079665520037932399407253539940541315952502954834616515385656014522566481500147194212131864731219903591565793460153790090864993949064711547109252747878104572299241520881984012867818107777715313395436018299774993813151099245225825819796667255021697939917254329580189756804227932391686295690873031551974548339512164535360627916619602336025789811867481904433025966747162752119400323983064538181135902047939120981543129413413030989551954265237911282743546944270741668752723127774286301558916281586204123594970524610319597313556901035902580902414950944373091042926545368647934933437686219452850223360898590309425815970556693168031852892384860510075288256349925013370211685911544345943325543483354686714280505519251207594282121686451398945635834294452296306125096224717940267868571040439495807277670988059054621636692891704458743372866603992668727992489917928597022339534731391466416834948353977378772057537102008534591525365016077112782978451227931495490593338094037016414034595817813730261399854262844587779017761860576015704206418301473932082469791850335148428433287681598462143046530975940377760566899213325360410432232661735072592781750206176542027140285551491308370596933689236595631004114384844120980298807665269154714974210783613106127715365118969364030506070812422113086079386754400576026668727489189743286387215843231717177409534119829861063409427031970715388393773435408368712798172747806746868196480415626650659900677260600144273105869136674530722744846801462776616738264477748355540572003328926136091196786010427336482971080470511659914888072571177890271473621628986099444224097957511145001812101450108466151633953064592504134907000517529567266373911493259192956856653873239655130596177946360149172823777499267944003729969605835058982274547771429329513461939010531169239201054452368159197876409406787402890531334895656679086568429208449971931903508924323493104292516044110304487774052519603027951355393849728842351764032211819257632545521336583235718366061232202519368995725333107428499954868682049090758366163082729316336288226109749097619991234826201285910711452049063208137266080283797463339329124021685325406640669480105332737338659863348044875181331488966055874691348648541707036190383047113197759676327787172312680557783289288850308589504713029382642792451154094095122295556375428055592695591171068859004451642567754704366102448646301444888443771924894457145558608436745988204008780834933542480371392469520260925988439367444954900248731677618548401196016207402348886583560910218046511382407515782012367774056148436226743147752720769551418062894553909472307403484504482124145627636857130303142755102235194236656096195800007035064202781146255610708178462995960930014987639819484713238209084780099795784267158697810984994634323581137058436083755038537545150338641603987224190304409720211887879162759010405692181904790662250387129701507994108483404504877553267332174552278963229012984311993559040429352852366466696967881880365588849037984323704465087292473018474729203843634907790697580474880680599620101688386269340529755035732373933642292955530187401137347769684441991680065505329306934096046724825761671260486107979281920463482622286194696230027358023570562096704738819067608179444978732848190685867445535267688235114722587909194051679643104617661686453448595557850093085004736720452715884405723471793494853007818874950675752089598344196315642320761490530186229582313392105554326776931221786017651802630910280186777733392274448032270759546367696752997500038257925468823346456577680140876433757633728870230234029108578700298024981840358949345061311233986122418492341327071388845803815038684419710227015185994841964713246265264195842510539353272997740607089234751711403582642255002907870515652061949832619816967714647002445770635045846082174832300154514582462073135200082497000574768357837062175216649410918023461270171306034274293334510898331392618916429267239119855062460086874418271831823904992972979115612027178722214183034254291908763526674350032087827905300133540352555806511743623403901075316913784126572630217777486389615004150573387318116228332551457605575929509379118123669039507668363034041199283315593380338828240417855185422221485255762608594383927631848397509819076422749298684159212262662708868765465051536344600217696557638421195886171554445696199845347596139169113293942807872349317378114719449405681106063339251530378433245320471180412581140346751111343664670225683054283101135131914519133117953754430825553922957392317478189142732352294267319222574954392160278948389792024055331908014598854649799304599099108717244149719495381449689720852913092573895233429791315126463319234274809935446662538045649065411982903847771438954225013643470097613627750501768192042060509552175502710537527663023572453047079042662254530515565766128457831011352907576857001532860729979429911615137941385863152479981498344536700337478882302302681622883017933994157606347781620939929583969612261257709048245850009405647112267921304428243437238381262825477283233710698094172617267837020604676740415633319164287862746582079119872705571571790293019832023124336228308753244052744401273444114765762611535856298485870217067339168660036181316690572571347598590865101990342082831914766670827748991940029399647059887242634507773278212174959731984064847131761138777270045777687384014576690836456735382180917661327128795960194108859853659497360781494021428240800299922931719064187587430135575420427258726659453173403709436116148990946582159801343738748492703337171794413488490589025293505562690799594427212406117349796807307972396655234968455293856468763229960145173757287755942950582109632721103658990941281860157330485976813943400424067438438593785030942780161883529722996804613596548913925894684555753141805768937612139590330530377618209124284058056677619059026394255531474652943482409803779587439880617137836671442936759081065995391465058386226116303515754817960560287166456622621285205113706968625788804598637265295506871123767106653724421851060780184143280748689509611210712759149130433767647252789113911194860472173982683261456263190858763308147344885921512948840938585968260249682140158392689761407506670084808111358280573590097537078716205015933947721289418557725481167986567070725005772032011858686029751612260787169661692096152673810810591155568224919978579232939813390520448945942569906264480126661785830972978405794147515365693630764361533324371701745017349927567729724916610367318940077664469426895024028987664374996306650935379728486088654895653756434460648436669333832926839572946419121943090835032701958010494597973692920368426928506951567936269159143539994048177879720378071974434445238292073714883208114590416490067765396728954622942246193220167412415727610498159335272113724594091747590170329648779938424570812091537820295240041841792949606133468750856990406068977764968833547912950012097420859705917126106868791722426848669533790672620879075571587031530438807444405196228640810108410118166697532842011391129683529232898516703219625964241776442465705746686582105546276385157445804981754471369065708908259584706013623923165894945082729448329716106910054819038578739909406768291004235959836096378633482347892576960133528780138404433527991640044171964396717099125919825370824112092759311930133560015071937966242414634176027188239031318458357471357288067841246221084461530288660252778490518167683836153435727853911455079849033485419290835796605690168241131667720142346116009829926785644993106768387738890259106058500363472316127060262379332744699704252727002690833932251130979854593071466808539184547382877290642246274848167316316392898917043475400052145884081483004980444781517986176028024152232000070708705751307867019862681955713587172565207363779519806570527171660765292824139635166386449611104745388900487201734226361912448371846688764288106877456407098375202454591913454786789560102879018174797664054225595714655458859086500562330468461659776988495589396130592878331325963356911834316619295434244766056802937478926225835044170894323346882878677591654688330762656506839336200273820914601403212321487562800737098960583945342801409374335973667301441165052646964444095143676892985558551357841997308621221987576409266056414047673862367566552847685431681495696283596387195788306375292144026548975896793178378330176107912135086457805755747484018917366760847935443575439445805690898266065399360990494675364551914072723275346460212542366438202888449888299620788059684487337355985220965581098365464853261332964904906263830397995976984880027185951811708876618150372455311730286309762248792267103020955721558623606854549968452501775933129113395721052483169095565107264877383653708358133696167384287938138894986852866358658760787598719217393552160190664699976281434968664039248098028109108329801365654079009023227917708694828973126191461685953899669291627547698227329504218455644018157387530841970317571749709599781430795708102328127244514978922511767198117509351983603510042426482585202800822508209843978390927183318960334221009975814463919258601718664681235597277732103772526153316044063315164110535618962511125582206000658297105982590906498990123775371150346687822715430968694993837850619741911833696575683647698676558733250156843467455799759363961330780190671165552825162934699085852322691906647583635274286322025815337565709400402531394958830079019328179100524433152998463630730348735599113380615781901386532502150799492543004850712424901577948952496587725864005175065478275117474780860740385077251415769814977150031956598886850127499658865166035360625937460101821971143723842304163073484193062842923555917731299299774746957267729384591876747001725949868025902338377433686752962170404654466047276478890771061281553366895101344480321314495992404197013506558708821002331838712345585625357138185652344021484889825040723243440420384950415337135973045284835150626880374528395443548778331096716122393089032541834529684487487392631451695710164844746075680654813553574486695179296578485346778316238816947867325625732562272278500490850783424419541398139667051946667714747339656034906685670525676211325563317266364851835351134656545597146919345693871080389229499386048850704333165858895849746011294921458569824784082415583783569046965088349982726872374533164211801452057673660115574770738738208504333612144994566224195070838923051665355795154463317467493164820554202793181600171664127603101757779777580997264847260174280750166857795111002428945696326181935929581796565226612020326920897413823043724569216580071192709743653336267106373777455488327786636897044530070585458529366677145158946689750532135976355434082065043531722599342819163335206027817472776661506169019820659121205064848380380059051142776502305386349134241417858821032993591952629305898587984092230310420922394836800984506771803018321181142481322358474736504306853977345846869218645798267181649364692528545781258462480018143671368529379721958484341681994696909388508407053575902002754015554975338704922978688851607403826941479405912562407385727398322460143601166543411906415679079461234227715623852081562711954575388089965117417335927017950149460524096176337640503047098329252212083507288109815403804602873890456006110638235675773676093234375882142952196701488817501209446192474671193074542825490486804922558329334248849121511477245380907861323828195748989518459674700908928209268120916138953165481851823963704110063601040019649197395784558336146358669092243148363135820858796182533231705660221610326179096622136523457586370216698418895724755897970746355746458192278372526498690981086824791911954293336046463650248701608604464952861265271018866482970903129848952902296221099149693174744799863165584566953748587350843163908194062305633299518426748144230231371701595803302591189832762406726362873611060141480739825721202389462985398146562813243086585154078468634915154782936763682773099169823689498787903820861740114047076361347109178527465161428714913747127654289885695073777379265006999110004775836552736593910022922890478169710735834678687129227860462004343233454328278562033163895809430304481388080251917918454118947608524997594505370394504239167223750548706306438499847443015525680199113220392336529972808510975970063677375489390861827993493667133923036012143503196079935574569002583739661330773532682964641595796143003312700781976270161434126739533563598334416509513413594294420046708377669897977845851165183870312638890773279758620037367042218185994622454319124343134879466429936466389008997545726203075960719551762836066512492003018809233139337156872391280836078103916377912042783812601719218145800007961674481831779507441722904170255894172275741684234193768812516453900442640360256798309534066275305540877045781626253618953666064643729250036591821361164753503123771381372313362139600415082721218812476073736535108053659592815497268985261961205241703090375282733877515538583741251587912406461774436017049855131328690796467696968827300000165083759699099297682116750591252007383611688382041126919621163921717444614075135607264168424270001104759189247921193215415153009366037728910981942340770513106286311626577688528480672994002124501435034587807129418262518601507153052758633258863477460581497795821511118982594246701545398717979961017949396365362942425711165470928621980747145993507190401658550640497035353814470744446779105304092510863950429431127126436147507652503267916199777995885519848492143369699997573543117191330962635656950295520384650018325533848688799535681209512062190535864690913134480687850127163166704583685401043081977274978224872896785432017031447715346026099152463883240206503093826472427525792749160622964207645112566000819877827473916291810491568141135013274611109301449243228757803058005065034743858198591157870317596647123869863024986764786563466387165784886031247259025816238757334400202997344494423411348851119010344534504844829793376260087693020299946308565536308352046353495917255841229788989935673107109507094598753022542830012779316690468461754956260872746659635875672784688568827989847311881557644489126744574723474761317691037843267384688337873629658409021256927148068271396660173826508056137814290142947255246526965205262958810912157292129828419792531211050224906942084764565261397856628185167557934549959817529045194654910519028918400074398516508097751865023210010618756871197589775111102816520746445713923125170187992641270795119891627439999967030341543181328545248842044459258002225970349785368406572544879663401792200415653414001599010087511970687669665252510036201481759046167841394100629841864814891743499940210942003579247141062653231987725407442463503897768365891975540910016787080181709416498661451851498392198939070096381656594387956722867903969140861117990187615577219571993282977751268438093254870839335892208674512437382114244810413196649109136267527825552403584915785259396260278112324883439050259322106898346192039153759051507544573709916671650366508019424352941203332356519596978597677096653491380162043858673139548303397537471656567673353118641899918496658133175330541004629481123206093250626186620331988852566550995256581865374020235548500796776820931070248934252649431543711170034042234578209821502766780233496704321868944299548560945021744331132673275596236568168867684723797969143814435403496738334959655051187488736213638724898421992438951849654926351906423524453995132044842555939574114306212631108486081159068325612481202213787257971374131858380134140299934679169455032179593917582428368671859295973763209781130253652859157537806268158703230716948583740327859893425997540692492632794652946660187637686672460692893262428761562238490812254608334367559094697252047604000607585935978193203743718644050524086374907949872138393104738901629695326358457727628059823071567514962092640535548762503810872751548709303772114341207671674369981629866410010698908675590297195143312220040278345607702658444741344455491163625317185811607141664517326290382171116480165858482147360511382261051480622731023009009322549749253581809591291215291855981885820508985903287843381332254001808092193274226377599965535073067058601517393009913604478642054684544208146798855951154740057382432000994014711832412300060126966696984257124377648046473254565494701144001935242099230608618269082089190837741564708569116013588060466323256485259435161579183683919037222113673359252953444427874841123671498737679035559325306646112634134743404222870485414040789248640861654276320229656724168607490739437720063746043052164773114135581427132298337609307652846321787846239208995973792354313893817587584540047835416612289294958388531812508610194193974280959971311270341855311792427969300479221419905700248391758671834967255593723140352770844731549617190633484942522587341311251093093021520410676287170960884252298707220453124783210538245134256839709117147856265658188659087315777754481508443808606160961850380173878146463589823764070194747208826767453033531747393916429088135140024940067184539243642726208987286754364272467917095206927415736215794465034170780599507851583454577369872182840483071886162461485051411547185457688226356908723239114996873032925789721076582757650713801673454990169288769436919939758773891045320989997493904886973677881087321938595231659088920217226465388033801702581873383714976898965918906592749076387492376630994323560756157639810822439262056348617248052574507124655293247831639403895375026162456551263132687629080349682171348151244710949620694733821571900888814422717128843307637118126994333017297536604321604185153958424284138640504275164926735528240296284627548594156467364908771382160162459614484294065458505385084213058890327904538392403175513182564325906105718186175065231048092908875846705650253597157598797064949597862947629300691456607045269228914019823503766901702766243689172661998467150401648360055624537077188038906713504859048959274498349758484484790346644100977780940683904107852347295471405975837302274588772629013393323328329399584367026753453315413233476183541555593400952495408377564427439459584658788085325749896196456565302468595143230832104549543940237089001551355323797241476959320615751458159335947908380881415108672023657716957476602241937820674709618975296628303217503606835775433406058553260170087392202163725195851714481195697626840033245879359218804098010601320455632581424416741760194422045433176767700643510697517776665527187065425095336456368870031132811409983238014303995484566359294281437062756568761296458538204403059134225647617064509267677107577825989398655561985521217810911809230696721874655435407073692167408240320735912596070636573391581321059557989914741087063587900558844770414456091885559318674654611053779893410115054350258187522609335515161820414323146866935408233677651182532841459967671128272517013185724936985826502510691446979770761392320947613591176184013824974903336468368240197254123390559935672036004980967397053336876371307022856484408788051929908508183883095712342272778160661799803244937858826481445058265419403341927350506037114616814886418315775203846409650742162839903018144572108203220928731041514059579451316261234311688708221396622263314984938454902311116282071132314117968171378148945491318166575358086872277465119883217633472482505921203309614906739487996638566532010125309871068648560996171956400300552696762285075735896434099013707771936345052038149500607050417168787704238570826722050739852904222512256621397968400112840447823718038672925628931293861227515281421495047055895299112829103817565410228529118029067306200748773860786612722513915711333425874356084551762696550077898745656704807688414002982824609921765466188138186649379121599644189061715174980893272220007251145418772348901553164101573391945383536717928860729347003909010375294490851900558767500014343830414492066224487602532609916918509457892967710501050847129437650039657104000360001268096758799226992601829415196633222391405155718779855425216147449977271821449141672499292449916773381802272111613797650398548659040760250713258385582334093314671848084427478374890876943581792190913501202616540227357697939879599022652120386154359696290646869435051257872814414567029661711010051728923057145996251287452203635653912305538125430315731001129483099808825049418903778181759815193080974556528815731291081627892770272606185765463136944223375710604959415418108431190325380191827862281593590877752394423026746844714136054242499641690453493834362082845429051585214102491447997940727970779456212297449610164383175108794455801434794514746590847252539281569851255132488519759943369528656537256544762506459530833446298800473213794241715664546223756315064260824138368547047104338446993453834100129482041542131431592443618097374790053503029467467310510751778226258219570131584597161394851099263471787305348543939219599137054761154463443075665860268674680859462354159791117457396244350022505299809903237696846027588346023487664440623664072299019364611594838759264737076513504949780258341705400286511696794187833097834436361329587879958640342959710195753058737770609728824882517367234130338879960589023615041484216430806931845746884098789302301271816533962230090007345811664722722675154549108453807715087299816044432542939011998608690084977243957894375542211179368133319560392177987467439692315745371346149888188788207462465486438840785468864262500178656376622460758993379801369482546057723534032642988717082834684428810994266225852379890012388468967330360336614836519375499360192044779888836087291012395464682417395809169078286728338441774745081380812219754326975235310139093855804331445460979679425787252196745016214987869917130930194280897585641932585761101093431117929897758837532868332212517881903629689047367833769926009749892100586505704033552738474054929626974675166389420366708060481559276283963864158345208781579294530050732876838773779514298351694879523396491889987528879667740261272144703323044597746902335700003583946581806168745496518274904936710684347500764625136137198225405481588307651510003942242370259727667201962270981438678144216028662178377164338189270277202560203904726831451637083150272460128973340602947291758521475250056795392168309445582201614915259633511939742627747181703928157871218940803777816048270234305516311156809344680452723806648273310232232480985091846341474073023403717842672739106459302546776714032466489749180379000432958011643937359973738207273777232988673398047135135925144339751660085309621175766147869824112816076888102787291934502641613933600419427680021969901746672385681547356950550467702528635136678203878497662385873550230553780673276807392107382218649081166012264484641664943103053726306056798925738783027683581251650523800268454750938261050585297293383772292505629656800638079285490003816700893100090209650371624107269822934723600514517970491342771034192347031758991649812023899342866078019391603285968346755118663604571263005072704239825901463743855582552932415714661427470023759421706548394663347424964566188212722768966625133974410382923443733967237864807865445420749298176833857450576686963242879025112190571916457982425764675616721743525884759983357922818496878543788066633480197421304452609334974114332945213887479932526643775231197567940543737967190421395560944482495393758285430356667905558536285239455927233935038039806040163404591315047288284846088529875764762951194420686653677276166294871168254572050513432596268198302042450699863417736535524597325148224200393293528139614573788321912233986802661287262762298683264077162995801102763289792795429402023041313949085639613207243860581154239651666444505953560801149806798241068806349023899895755843141658710578857594752709914791188151974783610509738300891835169286743052986204777284479910321277071697539508831264106297767669144203594386797817853003658837644095827902538545718303408271068728164484767820893017220351040497722666459555241127513918119142722199713344020436714530391403574622075957221518402874231601163103238784115467431139906029085471791656636974947732485375713063999136735398669059034357417966284265564427909934184745457009071604564649334642773271790385768499834759092699301212361230599738695516280585097350015441555577045765604283313910438538482345306605924643725224677272106944631899333570384985175207628189689177560425584178821791906378403597021457863378697236416600579719467602623847591823447838667650285388090575067917489489140022051382765248377220717488945506190462181355312056465142447660969569752572836730240037666064542497986443429054685071368452748793482137376397659363507745800036365451234233193997468164114255572152676855052736648256945798565987921492025572402658608878940135745983061252913374133557753631420662372100310997649526513155826559611395798631559052773000189379116046844714060444243774055152384461217759342384107777610318418803171442632963232320708785194933349981246136744302084439205318925771018330698742576755796448123179454824582530079548027806469063414824581156663995306287831587263236856691328235268224548166988170116459385110514539429150844612773679343265436866602545505384578627420670202612831688433279067553420321225495068336050747077466671854473488007033311238376655846951794085750949047363198183589008386887981659096350159549340492508670582098539055760962592537028153536566718330531762419846176223670311154707369266557446072867650659536012299354194183108210296576423466708549602977313096948100002593812634486106284372798081361265179677666501508618561295930097697116104553466505832208102717856620626461804126875088032543871896868355723624155274202578260762315121815889699012895442284784877411794203486399309320331554704108830913604563454619757461727789411806348593923513434446650683614676702231757493006323281307271385225358073836433131713910715948531942809849569610341973314579202603797125316259521291190359569059610360045191615478847688911967311878043504584526161819643737166263286920407878996610384932022264633000103131215099197008234372286358639917815502976688797654658547744395616260170381866437986594759760005430045232060238367606273670858118544388317571568460250313774735522028794422554679597773738319842170904175995308543239855071065969779202440478231854237476727405253756394429843103614483975522145119279778832930772024823073623493382745234609765247878373549897942578584130079732132479207283573509010532452139557421618739140887749956452208038434419034901779486347362949732793241390980458366091903251361625970810285212308778006237288487351329216058530937236121680168348816546879364120686009862563494277705770123562609939269466200593804010085396074708367235991819020607258151329762478657279384490798345866377664901198947833107955798220628410918494056494762225775867697412706376168531309984009268137770004589136234811097787919728342107810091244987761853692846656386941545007804029126595915871663367313683793006165347227182644701959103265391591852326207497003749220368532338395676980221922877917513356281360489010118952454216964157911558037276793705262489394724726186104738228116110605844648538294122447705237299071103023647452215760657996017293424205352465543900380820387720764788371316149707065272966577960595600291164591856456518461504878736942101989918855434950425277373159520805275641559766076450337210441413574256328444290058927309287186633363972572479057340309122987237986603874947044312471188678176174597239118868439226982730722985230830257126007113604718914314480707739747810705670833650101114069935837242223615780750428535112527686194576955175405349049171004979077569877258232637073262821672254883541663153854811322396024845159610033310364588114010974609142912032312878983376251846629292764689588517821364908012361285185771906383308366329870621160397869325725635542964282884349003453827378458165753855718308582894008006932754398966905824013293665037603756946198733395001411387631679314253785293087894820303825162732398559214329566247597053137064721478101228737766068979365366868472763327356786366339168837273470419725683915896275637744944285898424447559329332169670770839790116693300166311161767965052921405241944940911682316631237403673529406728596538581149707021840770324121953215882556647313379257507095485956532590039070470069756756504231525326495638534593940771412864387975287157009089744574274606991320383987022800863417558069246035094898823059108786794014579214825321585106674999810841433708288401211462727285699803464249757203678650430997199897406093919082395296288476045479706148116250138103674154847656799023039411196538629246471783117396855779370990907702362927583518911738172736754433479048903919546966754917397108349947982132146781769696251159883130410152604985308273322698552018416327556966575513286345618747497052497619478220226752488354105822291988001626846803461587334928881804076051901618820906349022578184749226720264169242889277304365389695940881324054466599567999473268865041310311447233230712036268565593577965823370271205665726683043424581828708873499448622264106487533776494782300159322162550744892648545294594750591076701908646716484093992961076936891457173117661371774117019807790444459806319653761426015999895482906207465091650107841099224948137876039127810692230819184094967551885225425532656839571239473608713426900238518596577470494331598610329758767920291688294184428083834603045973335585998304600604069763565858384654902164818437612719544446028246523984479214651548455901492017096899277408240324482609833057181711277715667633710499731261208828601482299723774733506851188488998954450793991176859830086126014831662842959803932056339009523188453693544398811422245917532410188194566591297568455932139687361508620616839352892661546183188408694833084880571496055904334885751844254003925695190383316473757762610851979855539809348083932531080693442125057781204340492679385357766911968670687382555570874064640329320207858557760883866155416290096985709421021476776441469860490891894479942734813006852122373851891589012751196476031250829622733796795061971947827665483986555712135169144807282567009944880843551883182372448938517707204016678351003900166336750421087051676435957679440633458028918917196534654025583277465227209762187944728179859443573945323822460517060313444703727404905469163634243005035889608749338118060328911179314706928268797312250298363530942694347728909312201011886392090250334811357951946061110746185896103110740825480877722771597664972218836525141304730062494823824130742715572723864726638101110098837933031693773287364964119908575074552190637101192340879657769977341716332893587413262577878131150254652491715095402401813839764309403001480844132676944430020773392623651529236311468748312366651928986931369572048461940841807435814656570448395485805930869831099866180717954692147619253023352212507852864072727609097122051973665467045782049588572897579152034276688821492529911702754213492981889526211167923804705569095608024402176065063924881063588199431519446113956628806760503684425008252640094105464658515318559375569572631587452701451393391342791058547570667945843298842279063972035105076157395273378152302329714461132019644278929361306247913541944170422194964523326741379649421569170571178533301390526880363138247315644738481652724407939091357761958001570557316009705480247542492646987909122851079291871762220519884977635723373631390819960574731056367185260227533532339033057311721556025127433894064126736893949821830793316726414174085116181183375635307214452194249898492828095097110990542464115633984423638849427562395523239743980595848374713345660009346488967069817062660431239674973173970946294183080615711119748417367735552551966063392024331259038810110264891995667050454712565878393471813933037126968129904261558560236252051046685466503989137282821423224253980513029950875698462218500896280864707642688978363839332463998462776645598762041834525909117125043129154336566460225114653345402904750160121847320322224481287349949517241925603081732430115865919366263067079698773850419920580131291959241640761082477245634472166356423776881833340743909998692347135447709888865495700478179873469761955383193105107409563757576617167637094323212182617203204771016446400356334012918139997881250188668378555165769505453429242611048353169517018250967878996729006967709238958400799214411621757895819126282636826682265753857494437050356842622640212020722699222877506681371539645674397097293111610557305201204210882432143035856183897758752073936462976112177442905644737057260576931672095636008481390367399353483379406330474922107384945884046133276073332934905138507239770876826942836663711175438757738640050833132047112154396125633917164206998734762136535681379546739634987334728121768503915425897841051421166181065647699132311480212011712818996795177947848352314194842807040438525281010503699499051939420288621248374252689295164302032681915618260054201388746909960780729649687650845379986853272503925387118535628093351387461033527299411276677684147544256079592397276313041422334643419636560445444011950808670316509276664667233181013758287485219685579358443842305580231973674339694587723565865551825578211581917926453193967858947156013278523828951440398987001292040107361825618613468338824094341204522759299034928693118919794627080253490382915009725841711780089680450876578670764236201350928051064615797969572613870566613972937301559142662342876519790964699675750770731258265042613035954341076703937773621933866417626562578611454499689567287961166990379933338829305295931155083043883392428734419562467935010613987908999441351989179329353663217805632392450076195572025098554717690379953043068219897246416010344211040651751566021609332479794114073147788958320183693006959822618507233739219749811910435320650678579903247120132728160650031465639868287412423483262914224879430523679838646674198105655661198739848445706833520365003959938344701405176962807769089717341979441069043417617606928158755565215556951181061884089299916790755397109007570551617535909842323418205428727166140525184475814126740401484903144287347781945429155596296909099298142473277894388008917708399004493703160193088325554116251695841228710846803614926509803504645632233323706162942780233253897910060360920273875888208584173833906640945583763203699194029296497052263560308539412399507120886786849131392220839569378940905324421337338703763478277801057901599661889711355349409599176255734391488441985712040241042938171824981949906566117552752948849801395220436165869762352922829375369892855554701710403542779546494919940641795305444313217158742126080592199356138671761221307378927838072451908245650070377556447613381875777765370110406864001049793710927484336733374738126808372155376702805198465364480193973648263964500809501297636248290764126300044906792879965307109065831099036008826472300961466709557859210926412200155389364386733638003498912202406899645823657706515763218990417877805847480873183195153973911321137468664002581182828229127721474693945915425024534425534358282264311490131562431573951632812885853382959312269477850727907138714553191681850287268752752640590667571810353196082404085674260143136283222750998359956930484550865265009609535090163798723154897440629185932917061601613321390236412135990702819875623093574041996237886816700308232426404401663351256799324796726368409646367784760352383878951879794657806000324206584180083532951503781606708676107434305376983039894682856514060721416784656048620557543973469823910690887770739104905565080906466367620217948185429452209244433203219485618535266801925401891659632227386178762974013565041879584140604207601671860846674557529160647665703008268247997861383931778607478168917741608546438030819865544501208902992641963485632782132962987879296780459292622971039714546858764326286608133504953575636555855380800243223023717274081938010674592003482256035117789030559370682191804369835260095040670800254193831397816996756436730304747301472841696526558160855749251557635642778842368205157018860850575631316518745242647586670599286861083689424787540767386099612977996849755876042364766446898602532226026389469400116644669037778996078210997558199182181134227735330498084027111133565407661011245294882816270593295361399545351509354310074088015496344514719751421828232572156924193389057940244767164194308828897004606371109663326833566790413417040361690263021596000428318940369073081687409582588145853400281002510784224735250273758042730728482481240951021293604952779506075538808644714558534884157812685031759405440882637432829785148391683997405429369205556531700461548730112963262440503077528651489132909484683929399169956670584715324206290745391518124602072635443411833420742516667290848235538918228323031027871270119643155541947784766049009915549831375789787002341027648913856573225213372324510752659601461316034435129551618623258449521802184522724910013011328349665413329185764117916033992711258290760721795844565207121479318487351212036641731375475316581689246642552066150082032863859296662305578016429747589092302260221545372303140649652941640929991117013694882392902862734224084556434814004298591842629285358144542717792104713790242533128412239898079914639713065037162932377676852611260040913169933224868836076914302161342141388068147547486763175016970567767671013025887823343006688959190903158139768138970569084700720140476826408712414226376512755116007425368038895383202721056805871939259027373572520996642992285135621566724310184773058460183855198383328275199293464796212025034350624468590493772509649554092131632868989866612322462261817345196161242956045830259207267761717351859747435851920252989870409133116795309977499824066376880264650420871731796414124263116554772909234426481968490822440570225893383034531640208604195407728378804233097016289721062250967103746571137051102293681280973057356498837396618487588249325572739522864427956672333097658148278305778771808405954137403514338648595599067452298715081945157695488902430872437779952457049861657125250707615614372739755774695312473075420596721075715559634070928038748341278044809896024325591349403564401467394816545009001959016893435439078822243379929692711973646027203386025715070077955691025819242011039421805622097779415351222285222413362486270816909352659500006375667963731577885409255305326247923711086372108384860624712010768704591505454914942908791773603593320113753043084730638881654064890583047578186135254964188104759810291858990295772269038721099557752886013335923830884626091690862537201051706856640028617180345847016740630448478635167530415041830785841933211766816708487603188022322079315563410856700526983534454852194712917539334594894231174195784674471482340081519229467026880023604722489474242702204768631250694157816742712160816582516785589660277300597559643594689047838331627785989880586051103328180185420488503639957085200100176881684332779996182218844920448570670456509537298565860556508962711997052189697392446058431798869510790091081312788069398911318660017709783398905966329770179050913763259263852334224579749357110716452993606097422244630010057751493598583197071133061829788025113447222557960659520823261063399007121125487520637103238562905510199320196316201282507931717859348323587448601963233572574743016594969278235552966360005736828248762448812878043790808029360912370024448882076287590320322274311916275076745917335941221944707820521308537439237703723387631253766905661031299973768448494544914613581778717283950606687779443606844995848511864066723669386167875524136407000941649526864472945341769078064479209073221149943019854143072898165116123693892763472932387258337298896370981173659309063231146961983360130837165354567672884656091554846700675067230652629776362090579915016050851683939287864812720340808340022052481349307234333381126547619278566674360858075790189226805747523594300536057458421713633860055110268756574922114470618499117042892716848957093366606827317354580792949128258729499445306844830564940734052218757306303321937139694968856299839308599857840416812540585156742352787770676792196038230059874429169858539014357461318034610642716136219235286359416368188658170455419339492167373743764146820547448621569306070648019943260422790317733160115333782745892091706136194876128758082261816318771372707289211652005214464864081009510825413601235261650785585334597619503899611423534238765746600137030752741722839250507142181063677544965210468847996334505559663777913778821939582288388991063288664766684058303719724076967900506924916294084307090757075963057891352408979015419327342763510787642310881415423587154736315568237692396554516207070917622333294797609502502329389043333297334850285970166446664756870495490788071598579461194586202638670391665533379468456873308254779117149890729257244338402126165280637952059685081327477880366563743776181610824997664171941696736210724853455353820260686808387972481917777794399084176873220388136793153943495065960313468588965676135960265469212321338085381792890382255206365014920661163993839270992964066431131856434768353730520130988385391352968779316011866780927361818090538485029484416531317027456832978693596567625210137435518456281440822480331730726382863811566590529838915925175271811693058739062699873622263823522297605429643056606148162153839827495133852817861057685957186672320024216808688588860243647904347606430663935270819558208500817569026186203660713556913945856097895543523646079883092350733479098047138413008906356575156693446299309861448529810377162951437017980253541904150060439241164595336539592857467074883821756131553929966392896694980070069257050570787556406227477162951241249746411958228399982523089763553657555508085862142332966437674785856659452671594858118478965258358729525288338138183391679678037846556192957602774646700031391140488270467133029734681184669626233931074187423564911104223219120769469117246663514661068167792396554472048717856634618286703782927730456095784743514543925227627913151707793656711623718306455001858207901616720969178943953627582343735728245361509805774711626298348472755253866446534588333657023119941089760905476384154593415899394700509296880240578304197828227080871798798445911298107587330991965066720626582008646393990446153609487779814835093021188470814729967497826803355249820929360908070788173559229107700384163007377556799909865742712510643875432301991593227707383698248535150193584882953405106312353382298721896046355699206812105133219998146421073332333586127536371981048062605622407774436277555499840930406086859415155102572668408866194152720677223531747553200980089294514045475364136245377361928909885546138286529378270309517737593631752277466809967292406683366135385178061485606042308500620009652055412110177130860241268507416738809683864655302021365081417406334379846000071342346607325608939827849720293777901047330360964113670628388133933574840193118989863106115400629408356590573552657797658411877978253335109284805374745684191613403936597273023784413315485453157469876475948942720961216911095623128571995355133496159078150566295151193794912225036533182276847841545191226935945652062539120662977229613111424117444270620263100536481248780916528634873008385226462959159818673925202248297769099456986579652559764549509253151278093222881375998496814280021372610595487694749237363891291954620642415858584905199034421075903114375164998252536659147557811834024030120174537920536177012031942199702092487718907445358945578216919216937514863840619849551598031556201134067849583551871491334447795799352832666791295375928849122286854927896473946301535936158000625918489714561455821373900964853501337682247846559796567268427057918860794848930392311379807504017389787786033638210311256862708264626895287718353315417673598370733385470050775485143711491117692038756439095494621580458997783647343486854701292869357131010174504002624103683623581053309549727669816798083125033912389179965893936144111936020226321053391865408907233254237126153257634847079104753036134669870822156613831853421802704572699081959675627747498920424967548875045838662781269848177944627471233590639075037355741092925045151598190506538792035313742608976100629236046854348910270793815786797599553084755872601660267695330495530017867400985268862300719583478579930838664058772302767637811994680873819411577904249638145232870076726434430189332168772576591991110494728836047283608053015179707141914002068942115241579362976701013116661926537861929894919443158541703467738410016471035157307426971230680112454272587754414513133751769042995331411106325781605429209907514106563619462365372192247348708436248540563093389892390695698777554000027587429863090696213620880305435096739288963354390463726304326213420968995066090879558004854327288066204241763278401604401804850132118283656298879601459615091807299889332910262260314458054409636177046159883328961398653727885846482025137004629038407961029040194199490240629418617958627085671518585445929419252469834758807848604753098998980136891310923243739985748095376697196701133586408890977010858226911868004082730518147249338697177100522095559521254608675553790681607353711517946304389459439208079456010900707756472226561904546457012262328808426254605050388315100035377942177111673814980772362018645716870103078730968459474705872692892657328669527275005555131277186823173498083570362198139880752116259341084460876955006840272702103398305230633502038070863346418758237833207333771058621592227943426223052038058742618199860807678598169103598373420619511154149087914708326709298112797025118209990777257683230817048872563399103191018410951191730850924911012094772436980383449134337998777589429069858052650503257233876213357051767518081190071931982571978284037004551059399908475184807935727914440039902137426389515185900216944544649738898021110236267301739750259068896184565063800428592606421169965977497348501231509367110121058355674589671388951256980926155608487807660284720122185116658841624313879284938014089106709436897107313249941724094882608770918076666374282665713289146225566009045309408841068683690080475731260327259705518114749501527327284468968983562402274610325081060256948429783004848859755330155154625885640064242626342804322977109107631979488420934546570530330456416481187146925646539070804692576127767777103385238526107629291761845036451059740881782256006766762707197018276373541818880472144321969759837905194530543269462282978635787673952334382617949596783678068617377902609433333424455206805455204837172642559578943317483309090180093039348615600779723944885857942418888056677309584142618915566231475549763710047304720555007204348031547864954761711978838150233585128574068168170483702784323747905588041799834232024588766078092294472014530855385183200047341539184394654290454484705028547062465590613150239148484955528942543150737771651787123122306747517616676811387695705571525723105342920735922058045077855018078889209168691219457058380343348364530872273814712629281799780126003691055100515983529465216734263004876644999185184241101042782883763769136216037911241637407871417894737600682277756092830662461068149377823319785653613755571355765664488131193490111169909956561977438060013317735566424802076273834606692960540607150469971225810246683822323806958612841169274914530208659374205746699984894316060586185999796760463823642769234688618570228751657882740832066002891454508207704721103123485003004175798695857114418242142202615266991818303600217886461030068282207144851747023737616613346610870155301345377018971068125762810531858045068583386081605864595358824501444506886022477649281862411396570276461606080543291098610091769219542851519696171299145125115174404967141897298176244277544552774042998680198764085310393707226899845426031393511522577556960950836335677804052390095925337807216152744570634801276349525740473999509531635304862586428062127735127495475588073335735947123389993987064366822400463842348526652996294404945097015975517420984828061185767119106138780122490058041322092196125642639986109033685720004584900599743216372525517657840897740162604088322733415739240602534578835364339426892682627159279640348695921426902276325923611385649540967558267486923725241053110161464487936705528186183218983798726747001167613285887377536499652197045903924497346286617429454303335060843720673923057122287819146271416627559744012509087634684063485929363136296118573424953528012966673958171614317271963175447866277260242964849901242856026931598164450833022640453750369557254316123694310150616107165166859781836421710053894121595286148177489804453946820691193870121341665427124106274882503913301229382226080642807552719633412505297026326889846327452273340406115203510938152324632087165166831817596494887631005870650015213866633774674064241621450145863724642400439966615336318038165015764967991456058923910862869638489193658645361316214187449977675035435089052260389980677509688563131623473277955735801336857322587361021414035523312814443875584206778261682703733752894226001373750280321224317102323641467399237067731419157423142223477327757556051502194800552620943411971727350445218207405203458904856922770623592467560806021590038135561423651504918010318190529051292210715083435159672964358406550705461404904333003742111503481527045849660725034246046802431688427092144847206995678867688676157917292135616987337331566377468408235916777261434195101901018191755532503736206110026206279063128401930438274991482533118152569350931722276419825261759496278212902840534601297039316861667400967483802336292222015185449689932416541287313820660240279863734660584099447201711217391787237295178030248193305707767773690049988290415700293915031389098979105629528780380999106127229934801817016192448612906371046727120115901978972108240135626755640753106403622439241505111736408572401833332319504952687520419619393670819429850105626216712157637047043282637856350680786505649225556228937220660635295984873558681731848474356119947505030333262366893044142321727442314585064537924349801239351688613785931117273452170875816312584027179681013459001250487137639732010436298078018413274888914354515532706866678436100037764920035125200767629311089114530333011878201650806954661222922711999616594711194324597660323453790063389027186519277449964383207603219586602435090478541015537166750988672548768462859477997399155346970436265694954665424519616219915593294894188354100048459612555151255723888449750685111091167829905477942749232936457103561616326462157571265644311145769412714039054926945607337356008159534113377665938887632355010041061451676509393428311954055978960895422998864038390101986139475488112382319509875984291978579937834230191414733348563512473995599193231360242295146289740775635805245653695139703066569215261830370280371707488855561462421326018050912272254002307628295570601908644670256975949389169358318406390601280672067231937089985841749572030664505765879458977115574614264658446591936277018385433795288332954456310497692353267973349010220506642449111462991792573522708000228191381021142186713368673605067828791387605680221599292131190202515454699188808529362113634315453780216929402035542866406936626923656822088524915394669301438801351082591013229824605114269897695328061608284882520231793629634339259639220301386296261215714773721680542123033739845286523159351432155271939115854820177057741458031169650086814468719542752152725450230320390995793755067473782422017889745786896803851409205738827730107993333156941462769038231121343996900469221026847806688932489089853541217501332540380975956160039304843575905963237112196317206082264580068273718050287918204883349093622827176101844889356836656982232546409899629554975523918212794111748068739681380034340027275721751499505783479868249693340505771437638925703346129316545902474665957618328429040207243154904147297323062111749868461043099495500714870227696710965511448264882071159552723712684740078022383892143879689765257938105661546192946245294565033520788442816366870913557499746907274248036298158863176485883114776933445878182723369236066254711658649316078210252031674526291553496487934601807551877315419395499398938995236748864291444087848027747228427387136600746287948704155007284405764412382114034165353466047560392799750255108821579379671415274410253314271576873974013432266316954390035145985003945647550750563146005596436674475963598030375228920899788680822214045769672752165428417624703343350837013760071032290172880350166441470722546869078074064530463217529004703738835169111074611165920715973999965136463439121683738166370828499451807268281392006548239046164316541563063387334555843659742536329848901461693516540965128966006327487520006373854899009252354932225769345165116114541849912943346563503181819610053627876449463838021576118088636574619453656698110610605901846355540290896468770229393711830581991046788351679060924758376090859607728353377090176392998737551524405537992127016233039935745188654956971248160269899580554567788426642395702238693055881101068619312774765598371522289977883549014984813956981584405458972195788020306649022684460807187270565736306221166642219408346770533878324704026740733891726484466898900502071648553198009647116308069485856905226208858464970256112104976164326852170306850079522504620084375857050332828924943415213047256178347946905751218467896112175127451528594913646059314048031457455766269506196606467978663367225011162568109912249175022449928326476054575193409623094314722841950902967035227204787712326727330881686201682033377166346679200463007472245293426332005278124826892785863563721964930261997158157050132891247160830043790891544193674184324308691715256501294645807762057757568378792213963980727779375298027341653959613926169930483844126117808890567893608787143224360015700600119905096296721861835070937303367340493517890242480807210416553396708908083099438638631856528806338618282602156688066223697481834957392780361116467593144130107584927323369880091618540010798619924107896651312994826783853131570329247210466577886563608493082172795022617931666431614024394379218996907812353018187387135105684914358294697141621718312941645459274226081285696985094110342581910599943584871984007813810050845566211283216003191846797051675952435313948967105930117596082525529794267774150203754427858685501921645076139410714241293885811859534453783711697589140756829046096464393201487253833605761753692313508622042344967633076959717229585891600769029567765591942511283552427826150905264990367250999489909225817332040701106205496002326581485195990720018903783920860998600158704239148680279916402944978643157529602016700518876875383383440259060923219447114250419025854395201953757851343196067794103039842316143214864255132199217048614754264461851830906716893602661966481934818948987615951966070231272599605980126962738819693186115373781134451251224753077134008456132882532749644895979134080726661165563855539485859648893471091871423668668336430786650880591392875560526810678607885405335699053636279406765472050740955274781598048683079702389616503674022888007541788070725453044323800225530290399780151134278697751554155316776583076684059892287641484133075534073764973669346712980256146946597128717009090581192203580023948169423287799260311410623716820454455189514593090796329320581745208065530303834046533456460999491468323167213310697258942026777076236933804023857033145777526081878528788121402983280717620242259102113604669539807481097406182990282612378699386096991699728311455285810851767684047934220034309504630530951635855144758924868946842181038007308143901597742037723683785480529880595363565534174568237222254889784601397112154744544272638078631041963143503965896555686099981751000612257587490891654985882307742987017197857760459359912323737487160811446549126859753055362897633009591839743691823492102862838964024712914179734795229919133448436478712752698019894030714937411413137440288203196239132031672792362736974232941273117097715187188385641701515889720488659489646242941103103412428933881204975263065268494119265373605542488706258599806895737355586736170011782415455265102541811261883301054935079384329949365046952915635282476676389704955201032349521266223204797328163627338425078703650540114869673679953586720678653526091025224858822044028483000216469738563656226636454437107104567232531892678412333759904763683501317881466244052146026909136386472766120072668485699881210307080508640228745483648736663846898387423930731500746707764583203826712674119406040671951934171581424185697855074799525302031334212540435262972674715515093405629987570558557030328506914461566772605733989928991558604939621853514221723368920311306466985191324547569571992216535877305562392343062395347034361644925339745919159539820329148473190173071622765633536118613904927793205346338805329526598838411045684898142344746397486620247402307148653113813786242808968756735523978603283406194491328208921368154613332930728765200223594451828743755309572962790354973163604612358870628202915508219738514738827581935277537626999783552956139809139843399739496607616839615891378826891677355843344351513460417170954459152112068383737899837302785064317179297576982064609986241497327768713127606481376021820141637110703383178153202592537530883563886931822527124216795121185130864493595613964631430202175389764705952065529440994440098966381325038757222415765209840008582643504894038097914974575126639443201917225311335764121519518294614005785405193581109684033656950854824475151953674439583626421430759449970284014734320656171022752769217094543476699133005792862728870149714355861964665501339940669985254772217225633181553448309634050498007346155929459001564017881033649675863326893639832076756243320829399347063749824609811191835645343127879519808240083636159025201849377592218459966571805136856422185591458520021436387906758094598681559290164741814069672134816498663724727127503135428290865170963067227310335617073914374670366898937327034128299029353521125942533295065803572882597737078765542445126781907094161789290709475127606844297004010286020892265842308426920883344599062454100270661435232366116996344898906049134231984519250657397413868836602995641728120248577693333693010962638148167315359661518948490220430032529970043904710635375032629668292677158039707000729221305923433840315082405380752317877403131870968211217636714209647603816601111723954564887092291439771031702635090586817867640347975127967605189047641064977808012650359698784079901491359573882291758063083396023810443929892060214495224110488754300452856831867802737414950601051868839319576029986374443162525083436928354446714474504443523455992098701969040060607526723720441151858623587572999962342329552451033986272831434214746878043723021445250795706468751133395805774363430179949523116222932901316885327517124704735213680551898173145479441941997056567942741300669360420706006750429380355502397086280567516586024246041707129818560986943041615358796459213116078096912470243159324461099218029370661576336389726262242116071823072529866513720030725993602907422000104956157244271061960023426672525032134881864144843539222368229188678548182127868661981959496245690566165400029706650602115077962671226472828032927903936910419723267081877770858357623895367909959520940536125953022259962253018163863906033010588907266971428379032375168758683478784147629500620643045592738185380572890696284163249069105094119985538610624963557449841504005532850646094143368915491868027301566799625422292624096985702419691843177436925951461055656518984673295719211811076264335263738041586264850303545075785420370977011270223793779638701651589172331384007885130413213063145967192720296350881750118606473728105085527644015722890867275989752523077001230306812812072665488502785902079947004451816059947439095008286450411688725231562854420125045174778749274560633488807909038924776006091534425372521192687380949159779523002434890209012956616225242510677545366182678415627292370220663087204299702321151575484991392349580114053163565083625295474803891225370132970213638083515228119216830545968286449626428341318880617221366282570144078695529635810423026545028793226432471488224924147851323565091807033802435380821099826952736801844011915249880230567512501862439533800431959214914380266606825829960611117495669596443230531637423582760932584404704066898996230328017461358023427190079749310635786735111246222680827036680043654718338493763439957873645364873871078734572192295016705261819339586355240607667557621989661559028301124708911799749367276017163211232937800160537785551601650911248788839559037253417738841172921785377306427182402454469504638049336225873505821847128492167127532314711549561637097439163459429209533638792671700108032147557107970993344418899755612147045679186606711557846242886195718729708358327123843828135236249762600703186648610115068616427922847168321311033590233033817810855539256615933594977481482541985082863279617100728892996377363262405465432492400048881147817481654036874375960249310424296719466455330262430255149525890644198609905061670346071325267250218706452033859732467631804658049169929419364000337477262175225268023339736158641838382916888279442862619941585894373150741541716472392324665717048719611032715218317323496406310139138614908733419024377908779650258869223207866965845332394201249397123568819618942809958088958177067406180934987399915528394812947574942196077636737018915030920635699877894803944058026165832306017437107532414630746363078413507701845447129167046693031803909660877631338514006846470788282598597032653217464213044613708655518891762057588213926280427414718722334797653606843248981368008438399212755403462050372381176945145865009037426420385181326144043645226583381940183296075511796363499165641523336147443949528431398385642934646899225071086463335963376103080969647337099214643536352634717536893392070310056119580484245043795410451178269315941081173273421786643117809417472692749500450142955230684587909004195512204367653059189526823774568290436586434807549926421214334979702792028414689904419041507118445660095149794071225645606222558663857346793814280277077237682495037303063258034638927306482894470868406669023934172521060152263886317851797219909807181865727119687204714639590377706017358185763864709705961337512082855543879846633757906936882416574754266959921486326864115229774758516383148754674399127540177696646478577447858088036365885315821884332689690182723017127147859632494222543646306670647553064888576460261760748947951855026843514315081588907052502161002898843743372174901979993571779629475099710107775065729818118461938982022458362983238655829811047212452355468721957154396097799634746858031304565727368387786218969118866042438565352087461172658084488981399385928808090555971210420949962561720806225242762777330957646508032558686529026788126816441057027711550961854624974629357460100762535719066346783027589607056815181260872855862782685646326481805514147423294131914265823882210675878667162652176286881982424623273272079609400384932267875988127280847039728235204938757902792731590589535349560161202882229897083406733731095189462654962329828345048538993892705097924320188352879898692795744594506725700542018952372703570833081613357525004965882285553104510967994664007961355972115497696349768189015941248670172479370888964469794567222439670546322278035030207111797347527132772151868589193276183843181810341843476150358468427037926996846900382494334247589608107386130306190414057299207546808865711152817787370578602640323774818994397912727661291589158042999872080575990236916335993071942497586001148694812010124981634183864094756874245938006049072520082832053188854203052487100992076673707332239871556365006602109523502643183078841168228744708374136064084183562006835765679235754529030908365635306240464938678733426133862325310978372085469816967279100396195303200449975797986383605936796626791905012243830222648473456876714691936727083459108090532745029245132462891951784720522280780725350897390528665493941903485440815236029908307942693634632550924665792281546284838545439453319031527488253426519859892819586059054919064096881019995610894928488468116907369483011593139748339964536648956722627190927704165787538638899258317113904420440428505922086893868102183231707122685453873671529759716320562960181557831043414123078448884592437502861615086524470008931559884208248361148580416413267290400463822667674336810966314913334161528215330316909360572767278709864369252715431312945188330530766597779293900960540801775753436148445123613035575253092551376122618410187221755338412766302065562358737613829839144970918663534400534467825158856824629871893050018217743824153266615233831534669594092321457469320689417790877885781057638524690384245188597172681211308541767333300253525342224303317383593406620194761649592860500697388455886969408758907062160970437809191844215825434026099552596962647427866069748403299997678001594625052075564807179606853784250221847815990666789043233710741384583712775626470904848257737365850315548263575017876957258834006619480038154988337131241300528500580764773959272152005249888619650641648797163070062674883490677349813649865465348239955802164071958847160208339212157163124134345837627100416051136785044673787467734806624280808982077536942261076181983191132988607106542212378236547510586067653908422337355355401716403255268433109399567624021165589212663808031059035282040666699915029612730272219061476322241243091292945558072914472663239790970072344711268660177750259816064595516449508046540141210475070759363822458570721996461280601326422137709832201459480753554540552594070568160006238057821696655545641565632237164116635058449471464250175590693312679049900972479113948317580249843568783982972691864440611496333518380896988998932606466983267691768725329976772985125324661758825216997333787548762968090979027055250692604852200204980726644929129443262331399458210691918324306324564753377270676136706191318084859395655046397632137713306302091746932628809050134990499218740063414431090157122815004342411892131193103175153477117176658763459163657860993379805961904190208060799924005978042506763162683522464849574811787955318105353128604081065946368824260600186663794391264909339421139474336411514148435868322163359369509260919903448655487045303157969952010276879930709072472311961610825281754701140439968358447256257294322767433220638774905588318039827877874555915358153703672555821472138602416018882151261100200989432347227420180158658839307886496560491451276039848374981113453043698264272516935789673338754817952382533966894501602689270613878381470804623643425442953891626124797187640805140681926828271375392908607645489807033989744609827537647000902220908046791380243878453241122538261161950479371127288854048681892827782431588686917514705945035002469535518740644361144721830468400808855231167622076411479830275623432621132231823444164488052177717459016975667739646712292784330907902341862833464136996996912663775891807612038803706086897085369407194299603992928518323712025092325773433693865791294903011302572374813893276060359809885551376391340713874012946822878627879306753072520333531669955707268476201034139338330647602135413549047511641127319898455820988402971430274367794057471919173447902661668224202737808846987075296366237341697090014175517316485561170931065030783610387999314320180189668506071155701367177064952474294240609814008349406124761190212094086396535743550902203488299123451367834542567512188681885253382227087585903109534677326952948485352322308768845153270318000896395281072890025674302358772502153083757387480655529462411866190484685171835624149767726674127048526232301909900031380875515397980585031736339717711161820746451402048202653103600059262744930512839712113731108052249944678551171620909425397547171131180092070955350469016396385027849457070740303024900951695195862904678603010514203114410687179279450377430068930778284842685587449734537899417921658019785929011318370408773411903506161987655745578651354335971194574936951729367661332465296209742338747109759064205484461066264517021713864732514777430157814020863782086680307757350740090847945007211509024114531285858465160206027166485325388898383424292931343673705472499576612752925268195025605035663300242377728791884175928260011369216433690056378266922475807260250882789307105163644045966766271929636898056153298238703258364538547360676394684583773436953859982306171479918544899277139991339999070932654797663031553312343255095034226460310896908762700291716419077887706630776700844295212028339107378652694498932748011585406142573880440155001986327622959630771485508534433828360365334267839236622098139238001502393746471768683600145552463377592655572618542392944935120769815258705521854622011755287516770176614569123347995260800834666875467121350693686500433293655303754848431716614184224751543363378641159245832030584259359074200099778746351573216584383029264445337226835155100266178033585543188167930536634739273970226132497136500894010089605053114270292584375993577131013858841000206970539343016386341452394621832784499490022593061634881213600253169684144922947639860781192925450806082635964716427011732961047684885347277881341316909938688914092447932151704630713758511208462862294642142179979638316402047521969800880508796492745260060088049009334435190045472497782822648471281652915289729026895351274852105928326932665536821585959388210629307823688813632107134766112225547046840730538939620650727957832755841953295292469923071067865411806804261762615290173946428660164937358815333941429938585926459977267551906534354964131312874054212832206128747552386441924416734841191746904770805447354743731403582752550303909420525947489672117948657263567642862451262809516520203819113375358302423565175553031140505312908202299396762297377207932314952835323497938200083508436498282649812241156132713959846158394832280669165187783282551585796629448999608608290500519904818542156817916524692282546024079938168527918463812995968232321073255512820329988182673496255326960957802492075849853507345007460401813009002670602010430034474656970208558556003304311740326212478056484824609256338189496661598371012211460660464866246947908768075656425293893744778497698453187887224520266614676278005254736312987727221593526915495423525997637953242945229193179463238967173499936577145612041001139495518432380974761334879941652791081909941329595676503903573869797737932912075395576219115523495534386129755826224607591314850771383133981404920210799227999602440735965405710791284927008244845598307281831127846042803029179337739769106368841749454506860656093884759661344071921262408375986823427308968919615163244243781222163123402454003181254884417108545046735489365021657391607166539058787433508219573422559729161374869420017996447307589648274407515122664057728391020099071559929873952190367245821315469422295124633303958007522414463031427661051314173861369017841143047779938461775807128674821237426252513658389978276100384914421412281190730437248351424716496256477285217533360491066840948976641189129859801002764204063579286955186410119396490577827079371851471651739547621360829455135418209802412888957940232645705103521172446482972019950685116300369681196823333538351430318177686626375244492322951028663023589962992126602974619852925977700275893042035132201087802723418484973632930101768504428818315191542512185996839533465623191177131118420456194754739452114409602657478244087529479697528026549636636474361916377431671761372165270312464263866361111847874214973358949176682523698606123384443139794237386625982424646460054110380390264921826035679186854066407164131093248397338098455092069592677131681443989825511827948820139448124189731844012835796380422310848878696377935873183135390032462053834211111755656890096521064452899610837883601442728534524761857295247829882536223488812286828082597744449492404423064168467748644546434438758725255767767427398236145992519236553525934806490019376516725664601808676273913423345993516566302639802914083873541407218989269263262047674865523076170578554495411343924112602199056964374456493490665042855647016199441019400164148642920918587926346222360759006186934058552132312451015890248129536490610699807756757098812958434947614088319413181827550841229020656931966977716113919722643210342237500999463533155180737351995071400783281640688162454053736243651826492830397907343562602733044593816329165225265975044156475623605427972089424889999446234158272176336650980822700775829487639717280312469537668527676900530182613497087723009171492616975964700544735014610521019204033743928421217273956544152105142097683086049099376375092800152559180174522464004126383219802759782571453849765772998111558863916837274334792902487651393468638459587919898818536437361599415175961295426554016329753681520731298270579274920345582467331834484844563068569201991657948748189643616931098205699148749058391179934913744339708286757696360202339808835139429948856824635781067693365730792055015197752518996865052296171467645680171351142296904757710171532156907892836263169247519984033562204710793862568257349315941347127210382080248400553100603932694011420276482025438154939938494635106509897824872149788673124175638892296427372469979186851847639606531435028186871427296627674297826042930024868805617467555047022282372135742505305038013562784313119229329346450640853472366157233492234368874792982147498345189411293574536151144834438221344446081026966776191088998444986217500698710789573633070126683088719356774834103802127704233944928798154590475780570026313160764332802072643187085411620828298376713697885653140415903659429867322203658303176090612868097053503433488823478792075036514651307869893932752088705313485659129832736591974397834584168868225670113190994207442653801428300465313779692679941351645814649372975989701409596297160393934917921347342864354700575810173306800515346220148434487516333740742683336357207094865479372263832611418670256078132512250703186391191045775806213120599898962131079115752015546965806668820391979700840205637872589872018318855355361156810963202226879669093250737665823984192848777737375354177999940084216330959170038504891757015950334604754416670300768468954489484910769213897344087012416635521083747109697291910673273801031965830650798143001980605945891173361678383558053950622875788295687360749057902476853508924057265626401648893091099017007192071134403349460769875411144800660231610452619236897282565155812734519758664982332954450581059032465916486186192339548845120942844128136470977671380085356511044439466902092531275636561245415236794542780288167749099689451355506280868667145794658920927645582271574759775452879629015301884918330167870334916036962134281080518010252917496333793256111565828038686384479433132133678987531805802587705201848022438144440846360838375962849775895220871564400798396217633466813976540860009433655720895861957715117590970632013970877097031872802922999319645519982080360000267403196885712195666931579555822676824335266759603004125065205908742900306925950661508119502643052804372335538841644180229041777986689121314437959223475973829246258689236757509240253918328154249632227288806009661312846343613368419216210890073071379887947817285352359793877149378532129321942278919283173616776495673622698819491859596765594837883399163910132469420933593494749966522519583332439313698674163733504886994901426476413391120526346658348645355289288391638310534806646544196036010982244331885899854094821642030637840810250972321476926639855964268838719173359637009987071022327450874905186026704480481391526860224064412250385900561538441336221860705795113359836617019533223905561270581161081439164411785364663829216198040998899559169317162547317268135239075424334245656032539801297845980014169027247362086793493649851023426152298337076673257557553742497759569423323338239073546895824028205904164670923730796245822532959773154150732130031204696061287612987162094732063919256338810098930504483240036554601688928281895963288140827999687321588614729314824759727518106010440263171694771387121129693448360675405366175702290952484285152968570139472609964554819752570544735558755759323030868012465542546827806477027201646660979615782489354354170928358916665972811947623951847862778256413796418753517582057817621349817618757810802863466872074006928945790351503747803836784298983745547353828692201778415544671510362348563003910122917988137692891035369513611120725556696837949127873850296519295965129029171240078392414221932139002900209003166346581159623126768127927785155114608409386806233076698787456483911473571074084888315959369058253956364956081682525923030757646880674813363394806802319759562759658900474200828700083309999138537881314297345704199761178741739922147311085579576588259898757437897768791531077012653567301074582885229729208428765910656485492246519124126248330623593899838697983490057343232118822317267663945103369882406748490265563410353621966290626778500659380815254669383223212725763603332690019551469736764209274156328696650961244594127499398304626602267755130566383432636640064906415862703155241574108689101827276108396078428173147277975386459387554262881342151423001421202119542858883336785019813268191160547845443370140860395403972697012276045392009314253946528612025945544080955991140750992182790799167617926163922708024493280916825530420929141643830773868020719431013292311435554473907919084331602910104003116174513349419055749584320034483519273755756181181245200577150013574225912436625363002813274605870382662260380307132929973254388481669617059442460050068169994380244150808557525775405629465869085180649342042352955014658048903611414987137519492201796138180065882772864548677223325878056442882286578457533482823422584258340580474704825303787307193507649326789977206532456608958594980663152054971719548437869292965452083112792663649699717362985201436485137884012832419417431886884447987215245469316288224329156308793635608904542821280580305908931642820903514911469492410456880302109159592370394174316633197777514700873538941170266514496340197784443748471839829408974725776894041102074764840651567469948820963911972453859450944875776535504936546726152139625567548157394758387516013330222969021826473543792699979505487985775330961017477589683783177258594466271744971175324377676653864665697697822573237895276616750729097687817501366771004088751093628789736706142135592707036720720671039418149087518969087488219566380474131853933718820155583104107220498937471938365292530596893124656701178591336114573707573052681858308190219754859409180228397614319912259242838508145504196139743420620776548392006213819805029890280479156087928831942561369848897405260432023237775092625055359819686533879129676187198274848846246289818073882872179331195320819791672465186723869670880115608446532783190846766071890605732951112285892250529719812241153818205208570089281271784187142618697504207025474409972703516040779493623950361191401929816228254575935206610516885788225690223656092550833295817510775066925869813990966087836354718713814745020588642587618512685210494403310074878342032292339892755242883281156453618250614674293346961621219075414434734415698205748422372436746316137969518682556255322034783502292005111869611099578081137847678769024178710304988264584258020653431800476636928924650278748308329957608052231341830239116643319546568197360860229031105473356663721130778323145259261989248325335783863155365817950804416117039611979750830934702958333827899668040841383893985894291816566829882500490387705717337017595589248692342573718944359170961486328778419871321588606666576488165172174869391955452007167413930630617858410669631441550993520192377697888534836545349433512171491161839302409795979534517660958714495900102080760715690885223409693761495704671994700797883427393388665458767440239175373196201333261986786424444535201204923497376736564707815333944764367715132201709362164593884822719867159955513155898311391422587134961655631955467956677756066557221647851802212547311525771345052921174944816555749798449957819844967756625153165934219376104626470829813529887908023509203834653950894034761301909346872875821117541071790196853064101530802772426613524681960547521358233323843461383774235990875518064259263358837035214587284392067770001231736690517364536980579200294443273756728926038483838416262342449071849257599706135540171248267911415601579068860207381881771158385729554102009754100487620038081714509153653448574017675116004103906612630172254403068731172991613231980402930178845943954214999255643607951499756361245677016892028735171390596339246422212940558490381508079319427920025724239943778225976113373877508186837726724526579595767802337609718426031099993465228079456591979972018849307439347133828809182705003529519568472779333209177763363566110111451914545984374859323234506320102136963728237405750659674561731333243668062743250825896492674442590031886765570613521495761901576023334028805610072957550634431386984340517051475240816298631302269201129078053421879627889560986413249049633349206509394986198203637649426353740761071699242938870260759752890864912513733660164291244704642476344103493835808202417535780994022091026847228924742304739999743025210956348422198192511343652878205961733404283174160844964227357685047769483040599226928234133476230282503934327669807144853998491189833391395204427720543413926210858913698811499487893504600013520229053765513838807870910131180795011868131061916293885686834886267549990877036436186514688084359147175908976456690875421623241721818422485801962516233311203282536651660997416043600355557421702038281729444508295484059064446144979923088248116504528314962381094096579011563240090191999783054800719563111429846164120872200113887652590976526168976453412755329497715285641893177442498909194040656521027708006372070256382069411816262438010836368685781366040587300054416202375450138285367727555000867953955456475718815049637144859813333233326300139828043489016392207038121450915383990284120288257497991324821385389614650007820456851180020675036385711141237578631126951267346061862794430931542209014049708442867035948671407397430319217184745872668075614512402401104400272379749467977364013037205186865463404410921647366613296068531081677942792405939151725218830254685901902555980681065374881048886919288747901092515374173722898471588884315057409798254386976730186550057764054444843249836561079854378196769545350703746093616878944333282703120463378216543107065004212884538749977112663284506002782827941328203981126252330596825451180482449374455346295803805851322118920675777541530081696063756640570525586669418210542537903782596324523882127733839339603085439094739820505757539691981126100059319690248682087722736195655902781653884048207011019831800059074911363882508142404359481012704483365256317220970395883277359280268588066048864551777464103998925702411328018310516525194181691469108771030080447596841664091259179313383276904032239775383049832027340254206316747313431836062808774768249099575648726052261476001078281342218522819769201420797656202187037349424189126453811517800675810290144175148808906465811831900992038339401706707714073608534363353341859245508022780755737252982222453767767980828774268377651271497292294135542548357185141212894120274476969645354546779290593220784951003067514383707818739957137946525709678498895372039877953991471901186315634557862060001320144084416485466957037658170644135445573386448389270491438779108202546090998905330641759395308342013738446436404333146573705946678471560534253820951044561327212077278998037048981757429282764937966023559701765029473229476443859319516708147017497674241654238424781048314846276036810280299172133288285110040148862054936311514938528704279032527406031303358703933558969092005880772661135974639283918044993102769223587697278662297064426297087171007457292054259835772363274573298201623255174465536856264509678169559228896843985884033636801304168103735911307066702410409647533668125774069439053301740537288539153072629777203319722511674709645018628155498819434007196528772662725780580601117081488945772433815028417407129695213372097681944481483687487446854708504826971019156653014128046617267959460590748798049194875661704940729006340479041428153315135279803967682756796538624910578252316707909550057325841630628705708460979112483276664345026048660959789023003693691862056614631202284863943028195962241783310620317992655615526036063025776846280556149819315131933474387915612309920938723231535895562261729639264375055465727401239295263162222865604488253393992610166757626429369146473997528492516298505970671544107480562056987086255138621179333093182471663979582610539982709803586697573972628201269051172150894870173951670837444933849071037136853156531788319170448365683117800155340375542564610419723911186037412020801343690679940532014619635926600626832816816489165009580554780753318679304554815170667330350800452898816692588632270526359600800305114585064013536419157807144421908832534172509804233451253348312610142117403950557263068854895949314891024795563704651311583466743465754243621264418198417666637179646226976622578589254227577625727721703376358785963971407015808280351044462237464813330166497374454729936582555295703770815669483866157511328071002158515621790703447286889784492835755439801572941862539021752159331074214457952476903746750371157792316930295161536196258674640740159708137176868901619768283639904877912778942815372856922003428303736289206426426648952198032086122413012473082453356615941800747911795780438258337021687404634386702585535497471484504340539266066862363577038572965383171888905758623156348060835505063640714673971208084442475598364234918233513968485040495207136659509078663116407419265386298524286260520781100192443170122808912646278173398035254318853855147697663589478424995575101399819663654305439094941535881510068223258408478517980705931436070191985595281594175966413618768404249694849603395276288761151493569795500992160942941619421904182703614238464195192327205983146320411736328124129069456791036976674622446879450419005291723271162544008641613950266926491049770571368989814302341167516983184269162672936298595368338217740938628582384439755292839878059205790685440492576742511427848902989126826318430957436018192838029187784140807971935473655281011212895102740717248921247938985959428768621227551440236740327689399602070647875723419452466860769333195579933948971630240030551369328166262562224784553633623850279593908616778625618832483220663217161977458229137428889789789894713020713804418167296029229326857572802506035287982927711132669906450902979174662178377694280243721616495637099608229611093918094315231002817418562851030588216997311880677028745373984816662201197750743906630660103485864690456432066430954441828338721647562205710957841646379168475950504874206246399957545744420953206591843897849895995905198775870815324967641145928169822607900482201795698120614118492959895365543445050188903969031435079578782386038580711299875704460373586621287392841425937205690173348683290160416545968538162903557349459381317405468694452867804328766697877850944426657146911400331721312326586025690467953450297190887830222821167463134907736864599792277403649029280027811741744706155816320940937615235909269720044963951017959123310560207179405538227371475455438311818802569188803582152889611606807289525541105839066561127478744897501548929892894640243149423833341285369433649780847186609626605361669719452259310913151606877069874149375736772557190123329417827299223835976549816421279598570190025140152686036835937447388209718532468066660092291001809512589688529427737236087275746715088770589355035090550606015168138399824675226361749682344231966446725632026919539991997522396277585594169895730595945829130950512882557689286312768203800445401773036328709315111804112333435624301200769355922292163502446429135856709120194950669773215783222773127135447120453208064785575728622446369212203502011687293961888950879269784108215578112081058542998344634218884134231015884690290309890872178462286020887838012197912890891751456003463417380023746565951193396173075137091102262703687191173960962291316486075455590020423437050206165443211148087814409008651882709677025263511535291607370617341365730592259783610203855977855818803094335291669842559735511270249012302420102988125869935056267464739357365499232275313597809976131690814844197347864926661371790890421109562054183536408780900632874631821914096528507735700917632678278563170899891781702196213840792336943630957907956822534695690101084403629462893789713726546043286032744657860853045291725486752216011283797077914454743328185233940104419068551270266366492410133495784086753894456142076749619966075404172020799240175705203586596005121324014053235236076642803741544283362486343628341311926344083054488679566962903268322217728771546866438132766204788760794288650535233879904296580187469649592803264781954864607203538678221417673883967198754700696955830613104703714995482154984777304482000265825784697099021742721798118649114857320300890542649582868607045700938450919365942701389743027076125187518791490233250467484334083935935344802205312957481549364208431748525065027244899053523786537470979365690974236527563760339031557536919250884830128179807075374264986766164825686352645613534047655985356469814914214719410775857919345996095886645530087843882155524747397174317144741187651793334681214605283011471080285998574027208478037501868604280231630312815818049090010371114224785716970880465793171496863535813477799732356344236814274244873590256014138256859388704608008426161856910400228420744217660306029784678575384408119654280393325385184690214205428696144727144657142107034676501587404695226572646834058837826822725174153301002093513233854474678346703673641846032024126320723861370164204352085014741283519607242400305222687325690540195031238138748589986279172432265990965568078021654840542601726752714341261773480106344060590867512410845016618956804586487853434907726822310957875021878466676755999694154786820885471066085654647906580290817156921375475243752728505808759883745428569303676078062105733999462683749468864105734566705843574672564644462485830266086870645547418180217023720692698529820195504277175954659250252073126162915694311438713515936815020580389977810919467346774931644801437373460453861002064520702784093179549716467037866712941711971729641518547050303889419776066449084752084725260934275210584517919944853083322467677470958982120510733046610084435121694881345620140270633059966887503536197142045462103125618775088892113306243317172133701637906306360974443938608876613209690139574375403470669881601804951693594494053771978027476654228728879913403793624418327256415393368065845033614841450433188895588495274351452673636430174031580762537208484921914605836407569321590032268021327993132428847520228023815661371219779855882496542269770550406884265522546255628538119158938060657005743731607835075825226966048865291231430725674143961062451480381011471772514520647661493655797767748228316130606782141140750920826905991019164048568398513667684313467563357276052610895365829254220083177755472242378285182956347319792127919292031735213070527235082887134475477799643083193416482123116145443634626400708550118518411036668471179621926831677153181240456871043037436066884587769432153687410109767507239261921221617797555511571372215658128420466784526217672908204629902965230948815604132981217093213096923615312276680764331628383559491920902199177565735533673867603432656142140109478719660985654237104434886644060430417951264025057028926612542432915749037751781745752787393753889291505565699445134600795288445736999042097554571733954758710370967372966567198500012832156253059737598140706340584735684911782169208356685774243249686528666998643663587205099180767994678417210706307474518364197755085340056932206296652159207533349457502966060973438457470392768631923741803406613153693147051538014793168721286588748066357941292071084002240207567275307874602557198104871310896056297842219923179874814794541535669487153310642559969541435990333299596986871303597981615908419392988496861871769044683041872628785622254611552669162470403733520590635192554621055192605852681272933839950246941141316529197811032034583510112448280376200933829453307064264264656620824514840269491928444602436771738349085725990015797127099887722289470337181060809218683982240303826244157641600644790323665669089046728095931862206813614984613430817202162943756845584671532993165855631513028367333160907144032660055851380181553994546860722302008966205708143436095933035860378681826100533758203028745243417491866638431226315252245196385168025013426324040804877238565413378386612431605552224754956661074209292632000745454719446346583866382480726221531113359386917467382566907901839084865778286398708674239768757154630187533023310758314923815237291741640705802221098291969788123943595234239393750500965780050910327231842270476550607547447263670180196097001770107886392781970689549871636677840008588634062559220521638988624977138674336606204208467721171687911272315093766845304078070581497027910561341788978597364671568623776523855195690325588380680363831163506268550406372995644613259554194101639283136612099716753664964045802349014383371556453725531136510071341474260043522043387569580693847422974192148951594813797991496060266698665915035702611014258630375344531597526434572750960961839608359943688664902827172401232566440814734220236021242317000305847283845888704878614161842427569032594089593231517971662206463371342258091119136822726007446675749727112000798426715573174121227141786193811369904341276423616850342303291987983361417177871449484689996507167602225394195919749698259927590347852279046880356264532984847060433357809073569374152429353023436411328720959734562698938973763951094403348030711418914497503554367701445701484287814741800452689846500770571684315076396838824763680928819624931805243891139189584412131920747120862164812435171163883024525618747844449545027938504934925438554317552094087740623149187266689640826457928474402597237835212450917001470476640773660122419692687514917728870177661252438100280456129617121226148772838136021568771734914079482459262304180549520842305732315792840490421922399331567503477139483584058199664200741638572074397782750621245280767653831292957472824256125230657077265655147665163094406164295431619123086273549350796870816409084180421565268735506766297911405276726478915819511718533779715816000041633047452660234675348278590207009353587214021525685012134379214559522113334212896397683053936531176916457551723726819979661319303475406057699544941515683848901629486354963100235091181974617807425775252446974809507264169433547641747123953332427264544848077379846177257154034661260668270326373847445623043311359294115440250001407064850561239603938832610324885075527430520131600211456750349928030044470680254009332804942548534263139426914739251309161806954315344902009535688620015109475813147702826459710169705905590711157439093829571004531578379082341089218943744805609917444019159759412927054601857778997541601724455766481235263446138901826421935392955297866371275559754650637226848818345832544322169034474515524363763111854572869897659335129342092564494329022848238655132089604831956471735771389469532379292340133940760553366346811152014126120479058806650665641808348777248633395390973185466568914557218933526631089906797955181948048230136751782885307591484434792055507550413091384900383836284755344596577090090053562672450347644723111811691940243778995468990553553985815724021286999799187083800996325057241189581717254906111510855122864067457441299367386625801495065992841848411317546851109403146043769206833375877961207620390380550688278326632575457597854318655494695832335747367598019085629367342367706576286272345003430713297554561815399328543481168091110215552473358705547711231971058516099792661705138072399167722239222355895830306645680061743717473859616419489847022274162993597958596596326368032889389022871874007293048952913135340778254345689983039531125381172690137111734039681802559808668524597536600591231686723306685743250721262540041977348242292553321401653330231362440552668962605176345898510368419598044016862691648551002878486426374881742127887931438696761638963701653896395579464287433458616365054246605172985165114209375645473051875587094907469774162773599180695292291943316549529363324829136731967568703784830141417365416258986607037014587221135551879290108101012219347323096447610567738278162609439187776172128084671065211297963427641478988704597592405423847364070893057018867030249857698156012250222182010387670293605239007923660002736795037244691112272671876021982927844542286316180472081038108291224210909463512762092181177867997647682131579901631665175261938087948359208757362738806831963122047288623688327777500400150980818324268184225067413293244206427363073458780620282842287732530159209424608428698581527506187032064943657775712067750941837002536388889251823200982865590439516080373203637491732167827099414745472215479697477162621143831985498055721819706878789777964077634546222702715527084332312004948039632683045049949636187048672952112272699084768125844185423956135663744089180358780822837166248544652523990999215545464555824047411998208667707404345806258627983735679359943919367914793213646381430704263044820665551073492351615439135359477147288478756188517762130514574744738518480551603994028141227922908326223513315306570003680932684491253431732454970698699500954280233336791299118526950385957457650282691957243299432658883124460433618869975991843226997539537108472414003755131636851446612766980685574416252865194807355529346371679830941008980047838201496975286266033078621445157050686882317965971191533516445137153923632011577103541202279971822108303391640788543827708838301173222108176024277481483746921239241944978131691427661680749465697444950964066495403484881031815752557419948463867955000249641575050651998741528196564500634245195293574272389388061200073900263119455260722198127784743329068517780727392795666341642494212172827699350705803495416707896018543511968165183109578850671275795652804440547160237308456534257697338449092873304461303268228946470983464391784620612943052256039895456814053708535714039584116926695097879555425934856393353509568553566637661255388472917648285460945903851800274941059285975972662752447466037327648592936916282897547975440123404957155276134988102051806978883105874045805402360202325585615771058856324743266489207727760577633484247123618540302261187309680493995835119480030992609246019715891296424472525351921886275313617655048255857794126246117624116066895318704894884732195952162906740364392991464794945908863364869217293394549364603780410252968603996809034838126636265161475625089360176710217174204722322693787323144726544433328451978836544957072221550916032971614119486810616275824713888565486065670338883143535995466046478425741436667323316571830788350650055287331828770276616993494645856340933199281466883494337254070870305924260636430427701487430275842685424467670919983733404851400348694552386871305587556945746752146924516861097771289931454059491722732991076894648106596813667235362098431368790043774127152606644220249539352779659447256233944784073066982645416112755020027992716314990879377211297135576059610213216097647430022063024215078240250138616315925026747789264382374618138188773391731120283664394499564664431874420978689381010200257888829883777711149713354138129667517805496547944451071790677790091899700966532922728670134750736404388944626902732180307747703939889271225251326495598677666397002986816998889603901498286849120096319120261332705833635978951764748117165655769073314229851531942671797818444300182740035510231166569507394249635760738446147432498934004697466553815624036833712260273944313773669175488233728623861308529249948304381792525588894650463499640035611575394802118441160866580754751046992468910576760205027683513172564627087776802155661750887545321058876603464474336821328658557525068989681196764365381355607704461217672168076375708290442547099520268644835223097307537111860232743287844809250313035664412890788615747773936852909544913470606602296130096004873094768445840199552683060501510415234095176902214071603255460324827274711401017975807053071168590234320431272464612602139221487579724540199457143096247166897045495884881285480187989141532730463336895745913734390829886488607893905602709039833610087929910486188684423289995402427144568216091556676858140115875760241159815069325407712582969759623102502232466291402866364110522511278192339376764982507216911601570463189253911845613831576162396700862157265871782619350067234740406017212481674824903088415799721391613972797483338635001031590207968310079692833125834351520663777339439283473228779721495752526344195651703806191986489731826240357936654080120506502010128363525848828164189465700253972741331586226912463866869729606503983006163754266469794379201701667121390948203242002148697408164310116447837437442952176045201552237218841620641438513449086028866361118814778185850600852530535139074775474221263635800937879599719703863338620918548627139697131069786151504678122941338310689648270903015514506730119318459413793925932033560308196493976745550688482922878504725707640330070377788630802555279567305555787707269658779055972443975528291981388569054294589544314167311629458891760438863582290119700887591180819478609199353219176276758223623909695188531392418411448257152334947893429809705738921544462019174190241168844746106037080243989242595398183649050121876712383963804672083650619499987379454775326613662942606086896661008585196185658581634752884161565077802060745296913541164182361481252623036220215042991754362995017383104543881709708887975726761128000073670315466240612214885464698177677604190035462696553933174826876103253195718274462991119224916458983814525907460689408702244162081708992956603981761450778254221174560604559978105500699855546937579251215273083179338098517586113228468705433372478431602309077723241891974650621788905051804818623245245680230167547603821428409110936922906206972907540443295587264036202411081499402352047421763320488925130237990329322249931185919639746784423078760011061127736764833601365091399425536225695953841660606383851017715846447082330704173091313445474985889746437922175579971239634730801860389908184878934489146930573488402286860362189963619693697027726533763900406178683052699930270542497801065601864185495824948827165561181547941277798649691711514894479359643513668153038333927604941476581895892527330856166143538272888547336788727555965100498143789320740097532535159300512914629504469344553493655169912271997577567837056629177969778560789644051387568195923155816869033426467482961136235669394306624960648836330309827838879419245944656500810793070323934386936755053541799938880601950359711730507641175130446139069358367811768922702825576664273530466380147321861823928734662947355572409272878428040478965477863379350524034077786883409825776709976995753303109655418587635960392370262936185514034823119423064523884241944315637584172634175627677676269414039465051495457277688270576500891774367171951853661451937049214749975172438025467273670583972758512482784250060562066959267048557379427294896616923554059097102782885970267598960696102284296413851656063521546262431485822491860085247363403345609418109018101002952676169076304494831078063181361374921954664604726203207151925984434384824951408653865612315739999770368877791222943921573924110087162131113364710388362944062580309016378029986168944965089328347192227538181632467966930685259306110951599461729717854552573189958245651684230062665099712353271996155361300416463688965868478115245003778569939197585578184015935481092509885999563336973843909306208221681064964873976619225604031858358122243905016040628820608685671960856878382061452874575354316697446520950853562106935101983035214480268539679303243182871430564912440108942260730756575694453656384411153473843313194180610010976863387823557284698832458948148692773979427089250195331136761975225174737596185877681660171107073977242920760401537261507011527404715349506762902983933515167170610577322715419608510800812056091968761284635338320082238728608684243398381046568858702510406893677921446603419273069516522788510492378971905384293562195027593384891246240980941478948800228887619928878870061323203965157081624795180527842058050522940236885481670938514036225633115601439045700935546341014238318586679281298813315404493450402660413229080606007799457721790529073493395233570739131718797356287252023602043197271099684232239951361771916943164763441279716070917316715307460427047993025957744288214623376753543657599046295952690959545734212769809525849139198946132640271883136819729671342557931928050443360047697181319864907508746755073406376882170042578991095820915418416964890150087919895726954557232747621777893889262590736810180499198409096233435459447764898774814801789134882900681250209844321036823312000007928202994906065095942436114128748803175500548718297899812592118274696491619268556460467324006275250918712085392299996484109448837667336719827791456887072130305677507592954720559143019763262517385173519867935377086485475339280225761683019480034771747079563275249491199436295640039947961112942768939241233134489616906769129508518493111649378442301335473778411462826955717004939330063123361879026243333200601378742323909827571073335684147918914803109676589351733411791127933959893969169257157984919195923137726645134660212349919632112787041891044717542238683147660780016604371240784401512881504233215072853550142346161411925187437024319714760564999147373094205839721516418911522368748901235298633509975613731920740623199069821658686589108285219291407015666937052901972766069857185517740700781929640979648244014486966915890336667981811837582262029317352683674855296935754919975434863598731581381502024517894636226480251706402597429696960441236296540937800205428701038077262612175457944279494900799067070135405382332696572331974545903733344649463792883430494103914065790552051652459593628032024009949519128128998055974564481444416161203479791928885878780665617173712314120489506842060743702340211463293152835087180948824699036432834475240280963236123214753178798104130833215510090668181745084979034844732169876005508062079705718739289796800409078514308703995017170220343007165358407147170859904121366859548127755547767040817640969871303721936582157168106935878091557601640397745772681642620349340880646423254132733132265905978554620281607855332452866163484219823051217411793722664695473531789132216002258514167941547456830783620459916833917905298836480043735424739124421353288214108335609768928344294782241492575420290191174428528246900285462806674671067671383079481217482568097373088631145008661430356143851563822283968135110161373346759859504091082654796262127380095324112072426702496279083335940920061825730383411475693117825905253055795023569528890297285699327372232607511108713110051146710651811093438577880953292169916770430470591193311042020204673176246083646645648610278548752333056739496524341881116328322266546181414516858366798827085140176578211090962456836905849869783466908768983479849415038427875267577394407736462301865738766492550797934637909104457655800375892541265450927549755505140911282708479562940868701560529892161775399620856413825303120584885239425016449871438973240193557769418516405204166580968617208538894080150814536794753615536671945588567811223191065869296337120722112551852807561510180752342991731356176395634622407950586220814771541325311060616972743708601223208086337677627044754514700882856571065511227280991287641514275461144950919315928664053841925663990878190243645391143265917726928171210636282301125969117767204959928832427142213639584366895478354604584270311387607545165208789552500844791513122504414770441466062435762323215926978409390444292367367544032176303894886335948497465728279552355253107546882332188126833837652489396619466786531596050672597420651408751636041921229064101328427772432922519267040776524231968796391868086342665630317978206559095883812613452395412379425637905788664131614389510525668352709852425010496143120736573054944866591430349853582043833399535517413247486444575057829096850249901866959123554912214371918458942475860560832619178408144225553922344951698204568142818822120345293387107988425400480179158119419717785336313499186499498747340892064275362976584647848821953721925962510106706328805752814614312221967686259422288881040797865031373732369267674656647462268820847500822584790047890134402061225822877164979271329247568346728065738267454052259464943692441929652794855140820130547591532290904501155808424538510412466410070976054151416597970888277047039123459504814733913658543447441044905022580257926872873781854372608125755004204529861327618378908719113843970909716747533703263322298266945045795780233434486921098925713029981572360267709256790514494271876764051392079452355356096726006919175242114151932816821147838084335363933898699944076284640573565972616811346228911790360002149723804698337701698433916659242396899074879345807332360706764452854329544891182235353159778650533850502485232057239092692985068189438652325107847971523611071326599519078252854249803396382694872434058179216451583259076812901087470224054624134658591067408895092342603339266741569231375627936043029645934078987228686568364768857273671264080592954050405627882772647687086967967967245000333836657489370773371135348891167838467962970281504896940975879460019271829814300224257953999465366811038215223833767956043268471343992732853441939168302326955194015830031616875804716925885548112807527097754804023636947858449065950146697078567228864139718550172580120869540174251920545537207322970350795610271897068198999381442332256845031170625968866612879110609232097177749870610213594843462046515896634169610144267785767188523655166647314959978430585268731263141134427224469369628144862304280449210204177667902305687810629805729708649749739418786548880590412168149081941683881032427369512377909098813915852560049234108931816199047306515433005307323284450911242100791620753593729279651706948129927940513610744545152997031154043554999632417976950988379646116612769312226383778930180596350980230573870858109537608740988677377941321237321317468397206628303902042241312317165152509639137461688237201974585010194340998979959956736014205822686749772825240305786743637007287006126455871706738826672950163399800445978775391370179665901198809136903579697384777290341867185538739426938531144679910443175434985666721866756587094816350752331135270299990470145547398787566040431884088855301552468514567585705581669823579156201176819885451070293209178642209052860510273170328250627108538113082861889272923321078970320043606072953316151788233488054106305895187173723222092285713002913280743930079820389729478786126954995304914749448081808754544781255390764811267319566792000733680062262701482336193019299437433623529822400694591739119963024245443959191668075293857536784003851279471397697910296114529140712082432495535388403711099102494548688552143754255161829622096782697828547349890054132176055266055952247972349053008664019915992836831339445592474719942080569475404197687466865661496795663667913367599902245054126221074754013752550338987714388537044970396194940177232876860014990406830376608000243883351177544507231343867049710696876943043805584402815512809024429929700475709790796223622851124856097793915338874240037676880023932062181718574399024850586163227805747328279625856016581326904978102460454843829026266582772043269367611354956637666452177216889493166103452146672037032621105093025706431311402179712216298105170280420715724580911605266621977767721125544068371248990942136837525281218645640061324619711481222388629980988005771875306594213948042396414335027482497103823328670790153933638523030689850375034777124973335534032816098695420133513008288269613633351235022944607307742411928531877301923631612565245277965377355694944049409668363171572793926219250181160331050747406253366831782899102498872439347010369551379929118359929423560987715333422293372550978210239455425775932129077886862400307197479701575943440291524706323594415315930343759648978053731458284729568473311952577342119969791907647321925912597427066457955338476240172148393030406899152646324955885688668543526722459486871518840470242404183779082757169783452837218433111039679423577524212595215034144433757253027496927719460397284846612050770987533308396021976492807574232977687480041818804490337034464412535208443648413128695334665772570093022625047708615403153254685311054938220958123765671138073444768972366509388090619918009040624197407441421659158945247512374441881355707495761314045374781149656996349952833819141016106613950554562711492986181110393734735426009934666334446111246146413324158144215328210831397127033216346660584743867318853536859942000269314433421312862686804826600139680393025968003712801402604496530044729769177575673957596743086837784478344583518489735113069626696062607178109570445083276798203660937364598745052070428121629792103830693830234678598265480043341682101282685790832577735304831576916447676478491619882062244481236301272240385759100124443413701359379766154673472586878800757449855821580058958414453182716406863779454604749168499800093491728417249354548038339302193955936739334283107867770153750695323223106482543781881642778042859719845122074225985036995948447097109112370646724539203664480455569661825433124586565907381004225924413126608478780696947553983936624341049742404137632759538145784506085697190945203720947170922112544678482885007169376135369560934801852471188707221100356703475931805333991427905072435948403641450673521000465038757159758663373955536750269034250558199154011306282526897288388889879683501586794654739686472557456944218593851710772669208071319681018139716538431686862197741240551505370592903948346699933026420283693788721925861637642175138509994252529694103508774674776667156840460233378299572351489470495106474655058236336859012733635157522523162335578551983385629111830174999920771586363980663703359665478927954820593949067492007017491355046028306599455440494352360345462537515223442920546386427477155351213090409609414238720543110838147178789294679821645274282564508118274136492160365740948834284128136727095192050849053217151334782129348262134328091960528428050871564877505999413305710852426853660508539812830459854140683153692392620289434854308637609796001687163412866955519845739665749468090243841690361791397035698401746725608714591595621729943836053351635593211153255582009994643689526983226183040644771675994289259793135086545656232245119763286789960950106190461479493094264721270806754277969145016559328109266616848758882371436513417304073616317560552782631713935541857373022932617713818548575825131525333499623128768215800584830061537389901087265873201573228718012144686869077366390584663422052659688510757701583620810659617905708183952705613196369639884344707659517180524341116363366960770976346670811477308402477560304270871592160494200446508858541357370851418475287227021245097926527045279927360563964886870561481346770138749711237542433235451480082757269286112036835568234400532909293857870756033810296379823101030281985554461712084427147872632727941545369974093195798306305436259489654288166922758655493129548357710986841998491168026225252381541517505667775010976910988390450427346502655474660265678657198745307308572440391747262648757742144528117863980910571915141615428019460227867290129914876832686133014859784071015520268833993782025447725941279691166599947506728182373688128690264733671333498944005883341234426072858850195413557259503621200379103410011638383726583012014127127018442808742139558646118278816423220618484200291645086242856641452920436290684405277751557648187400762395906157332083313397240000894403658780053238002107077503485310533288699163804289900245836158890700229246465721190426898986811015684783518742125911947379088373640317100237687184075084062448858967593197923741780813045422368758686506190416438427499719418893831171578092711526313236215942092117018219263651069780536382888548102827034121350178908449103625016459295424151711473782191297516746284455356123884775927182011833227315238956373649679542790961273190417141989844473540518814083166576467084282726840822783201595687330798323648689139439398539872386988149875457857647716880675952035061901783092740154543577420831902375992887620747504862600199637732044553571371325621915903064685333908289445618952688414393634423991356660430405097408292257016869713972867673415377811088813136485429660656944059199345563212979644250189901105698039849476183588824165321264245261678686068092536809365667040016854488032411037057269320971912769053591953393547501598884038529721199043466382961009070562639119143316214488521073207559680669702923092250057374657664259368223682404323885426278172812116378742769343005869587715725865565601938046528470947206923795915888559389510882970190988656518052093990270563769108276575304795948591149027827829179596298662505112498551112219163754375945667452128007158066573125812051839642157796341251214819675372559814377798921983037913802635354338598242415396198869148264841657528555339302936666881244340584195884813881207318859880170948110461202296036990474596644670324631743910949066641304184275444897103269465540435448694971327724923224954636359822039655740011425025370833655379373836433084159723829214292863335942410254784071374568112545715224373185950630914461606404309121330489734530110967256894967525353387439719452705698121838399863837629055467854767063395022982721690868751697909380564176955528631906188393869096794274969308215887415111673777457206435354548069674442736898282841487350619059457681481385053036623743534040707229453297220387869279060240868218086896365201542779919976151950078574991287100971423320132622236940568085483781876599408466460224134115509912586971632467120161259869900288572810481634024011556658672815724840832570064289702248091560502907090550489064865941380334778892205585922279452523927768315546746606204846360592361582954921214733522922809298271940512490862472772880684984387894814679008889734318811942792999241480815409211347711599680926082288945337507032993271796644326368330489743806503470265469907518484129021472125215040049724978579526199687861742537627664876014544378130123014718065674512896520787109764719682142354230117300785198420037498621471251508001534364766411939315724109398291941959456367560187222613266530001169440663228909316083011315014438711020429227273134839237125397838304159406539567941905076926496276521261226914764686240064599939433052916408156332644082314619748608105313762612746184542301680098532369239065143034551764690663146760362678834508799651511092361112584987932276905879507966795089342724576601589422303163512331649382047464648800552870025559348095698665705812614392414620897914167655472210120290946841712928466427396255877787287220870147314313795301803774620537284942259179138986437509699871744860028590657165947800868985718961110646943363200119050929471246737542267406970333975082412925267657677200034511204576404217392565007111684477333394268932787304447389513092493922650452218713789280090054912551331864135826268556658559034591009000701692585182413574636120430775969142926936864987599750096325642504523536459915039908569557888615054095261662268227256198522956798996802046063276158444079865008582446586029751443038134811003173112205875717962116711405506105304498163715849089929058031559648408741855990013500596272007105707785494997700370786297916620149739885065136225130835647932017912794175812185717751171356217020554276760695797013695702439692562516292762543582751294618027290077189253908893935060598791857991422000445375816823501238079212839754078904101301849457491214249331406928853731403827182341753982400794736567422629175930233140497360474770319358850546335517695279730002066894983509572599028067136784389056303790979844990112959981024863600596478716396167114563640340043354113218208153225657248776243161387858235242836654694712571713336084780826401963856065663724100106137721108132360956750217643731498675540034719161134668358676494474492529658173268756649663172319746474948636531743136068571848833126931595966858526773103111559715204293402492085996531436651771593318083187165576015205219016891414105753750874356994936725515803116981386635142136155397412591603351832677757803968119572498055051888311871376430962456226927072580170056213163234650711771696535674727327422369545071948698673485827842307679987232650073032024669834807923931789266838087816707925649429997635048023656888191019219736925411058297336352423430285138645216190877418449670133255640120389694850833618305088449665020991087819964306534455504005944332560094883644489900475602389808113523786902674141619902303290202457259512533842586992120149324151334841026234238966301234189603166942736998748527781187562139801118220636186461156472138261948729223802688325661953079387947077996663307697827858594870083286247795417931034199577414957946122139215316041754380462527955094179587454845563587831568403884258508642728988363110917114960273126732040587718750775809608801786068816565839106035158490549504436319635577846620765897480214703514178318466734580503019227435729695083340034219922748808323417399693356354830002438157478366229495393905791498090633064486093313055944301224634159995461840154019544696738022619156117388523906589345838786625589534984066930524403623925620900133634472305546865393355555965267769341351649493932352272261879332627031689351061210259699339274247132879727371916606299856975350766596893732484102817082670605205465879429352256696068850981633413306802728415071386985508315166241776889826927539228591733113965386632731757539234768993130564947149686479276651216547783042806758738679411303099933924748593910615226296724165592068540472243656119620863815966613473730859027352227641449093743051664420243142941377444003344452554121005326525847133852650104265842881089384289503463125360680226272218524165313676728695951284832218833859681503803355310196242488807794975146305955656489351589341204932355559249701529165894463375637434543697562597381799952697941281610217401036423415983307531677553655306476925625634997363005848710155940133414799021441869896506996503067417777337947445940526181970255047046562716991562137795015431933741447821042869818860690954923827447169374553179321136681541625102948259262227826602473444035395308395219821935787093931277145818714132665848773291075884110032898843940440482804456501247554399291584792076184997202533463067220942874319169089494576904854676260538243045572455988027937613611228652935420843396771125621428379603922615540620272256556095446329909429254393547522040226351551577026588850317884530547058860405694540707390572157772105763380935746786706318708006462411090535046568526014950745125261812323027375875768130686986205257059364961641239105642225963353170988367297874645113021731824103647168186197429074142869002104551406334406232574822599107819387190853158038421921248901513048617105393701103339236444082985651016984916054580164065778881788001402120583950113276852974403206236014079064592333644515823887278290045574790913358616143556100828270300323358366938369376790853672204437206471751275976490181916542187876297518401566804615398107837698243435680458219414747702997655885159006643800844516963353839307382452013471487302012131913198307155035086791967750321448725076447733591493002527231263173531116273616885959492646733875114609223866655569022621176571345487214768047180129029732980627988622413351958451938914220433512279499032481623421649289237680919987211498531481479464944240345037157629642138284951859265727175502784652251890237753892551374946542323471815085471422135935603330151509279719033841611724218210466437691044417389507657670643799947831910584880024327717827479272674602566105158020838370741854920043882649065980817561608337543529192713834628497239097820947799376118192069640141885434928554684346497462116265107816948208688698432010923539792975195925031861959091662850235370962387852919963876266819771997352253963079589360037566587930679047271097546948591196734744390777366548352774390458092455278031411783810568845357005987134284613551373417163296122900535773897163316174878550092183895573045895517710572138059144314372864115191445335704972688627142833672140762974813707829468418296653001474436916566676835495931728175163944716243717308616916282067296491120184976391112929261226000593117598255754224840628868022674728306075169546565565038048288779843911894874743425076329923161513862791598004285311828731715677494333392509330898220603624667943631963788379646325472481478126126980673129889667194768929575820998251121310466086163895864996030805005837327428426669540361925419494589557198687034325692995630259010402881272463808533805505215278978300554049696761569633610889408076188647429678730386743999530882346210004351076973274089231917997325935068882571657978803390317854709105948212144961945329453028189739596167865840021426025020802915154408251205870270705290303669207298595088411050953168015386807359146432640088708373221294343357435738561701329935866388653920296223097900337221398059966689833505378511430337927905926075775270759354737736035165436897335677100045883467040447072843719024035405408722182538157331518421318451076261066021270610795926858878726976759489641620350710520957716709949174087907008202818514675276342212399650157153310910193528489165859499177148311531804512032591915657619086002196406786349938916014924257430776699013922696597032446132847849597842842238820190736557394314030103940810958244729064156399672105838554860330811403033009086532298006386214718929306326202671934388144184016816746220890261212894157238981069625347321709759223541751855478204507308628479194848408671417851078787280011316417450723440710755478178410839535151910426850935357304164812261056275269587294812380592714973502059013946881229384930215656752016067308878891518957561267149058197625769752333287377839928319878143984446896249671691420164897054470569958170772538856409654539330201619653280456230025155737490221887805628872421078592690173703682442422415312133052761735619385234731131363797737277629068739848902153191821761812255487953685807429194535854248854017238072106244500131314850957921655126338922411586732985929322886446165415361693574634779168630565850281235740864799635502221665979797647256985205808066994475627732908351357022946614396011756323961135998014242824525985226845485599776947714123208830313503659053701704630911549765249947951717702244974227107791715616297149890554695100116680031722809669679965095523406868635971320379925263528115459597484057515852541958580750616957157879738640519747295888642753702331179906862435878584830370622685465001819858681524724793189210629693975099954130308089419112948285767241812707578999777012312291615246527596562403827564237185579027435940055293473517477355191971053198987480359978588802383804108918112706270716752185426620358531467070586213914138059257501763377464035065064574808513545421330918234796105637777859715705528133560790016735923679484303115491141242963886583545638437864485454782549961634226917217602564426993249796808976666016189152007387420366547621914551008384789279854522585070541401683147288087834186167413744137957626287177000973874914950943067807590885031168412278680309883266070048465905220879058306217861854047455409679630066575851252596449488780200363594044599407419585038664607604189369974227645572867662961283258574999875505908654026045546192996985430930591681951447512363567863629912939963556248463887939803440355228320317425600280868946744229512650599622807096754382657666375047602383589329292760722796824932520221872662400090091300554904857471118597224061438934792442939571391564936630903369877727879995138491211103218773888441317159607866811908752828534278746030091441931122330009222045719818975471322385988146729779652797211901603249705025380888628331044828970107908217766766406396324646342058980455477127779758124310630562869144801026777702033932274780868611971967497101071312863981716045488169108109436879379024333767300145601593761484318426417876118265896610798925393426391497405614964549120589703473316114182371305436911055033143120370302223539674588054077981085745100563420378630585601695476622517748667062064249423711140276197876732100160847341505920591059870558759330223001998145531444419279577460838555230468997469612219945930485195454823379813172661091391974736336843681067192337270739802382785820839633211336737583018454305930441435306339386586270374920806775938869150407329891253435506734757778397639391939048156272906767715395900295441659390249074058550295079265845577919479564443854439393552166260693397631978308395212889706245542635296807760381261952906323856535625902808182144912762909532922801221335339085221002359750229621835017478064712304816705890489138906891087501000217559132067455024858193038197646900187736729366110787630503567240228226370762846249774421244061837401676596672035338885991091617233440168055705564426836864889966978672646958731219240828108767371536849220849819608655172251494305948279717219709826975395285890390303169171171472773225499579354766513841132361798501572883575365766940433528002360466696410961515127513507506970857203957782389172165142354101135969578468238546415690678461035665975919139187018701654084495234102394633468076538425124295966044149148579214768286093651817794795147076712456964148016722300327293071152685492050761101561168635700160185815859728374217457950632754628778189336159237835019605227629938769878038631371804911909194605189820821619862683368063900298391741586860534282041722765205271933133082764336832394172425223570655437171848293870201077867825907832226467431868635074923387577874694275079672850306348593430474409722397054864818169052312763076805198785861816980437410477266307066665622734916995826712583780264171344899765911577411969585635483867012695705883342929462098739553347499994048471320335088962956388292553929070245090409741400236972757903233577232272641111853323327831170364977102913484647095895184835516994576944542840251542712394806133571899613292785217061684705688636030813791869535277019961054347744741872542257301955311074670212100603868118955956917799936871442867641621634039928921234741580924066489067000732858091482165031016600702540252336226177594038767827725105244942675609826912768425716317165442436966803526994308407641882334007951968538125559348929814161135783915208848731953105804114198633724143503135203089772600074135939005567401908192515866755998027783373024609418480560784656700316689905070010922975496998704911613830391783356457228387696885043468413462535208188202296022234033929671787362296957814630298539935567175416714695850003088577019187990703592686959662590887736683892479764414040012776641414891231251115000569197403002742671657241413589407803653764516012457545795027637235428620792169245023500936060375203074955003555521441288552724752560698267598129364294801796267994057334294185551660697993705606171398692753015410146349785684684288039390028094950121935663361561089336532020980805749045254921643812105710745375754612868008837127209397139459347303914116169909144894927497206645421562229663764637007412447214139023726718651571730906216704853309942003549452732039017799284957726773654621176758220101339965527407360879072962087957129819147098925848547993834219205549224932528828685382537921105226214032514037597287999838513908820175485985930425422890763763003490229962933630576037610186849900214464908439785994927599039695342244368590913085087871024675494049628892791364779266371922220269113123638437310655528266068390470215409831384141275801069455630979794881169867554382336288997336388941097463894990362713450999398451681107279685799569496853906614726830954335121644204616559223179666107355829269789050274675124313033195672726055630077801443404111774771577487838965954436568121943504834022415203363970417528629625291719640094848919782025637682660394871623646143988575727865841995827575930721502230259060358018770561592668215803756972229319671552176435170354596099300821553747785972850714621276106011455558409091147941152254559511519709617752408540960124557937412914094911942072196006910650266852178851923245619979974553355725025081833957027400884774261334583785804173179246097886637939970076814754327529827983940422149686597827654941651010444207473646368723801473073965668714524492955569863004588416425950228273206928219048452977768309200891490405070199141974892919554306610226143056131368594558041482203569445389558603801220364655558394245588508125865845249621853049138411550706194743945077846699783193845646352879250754814909694144944853348976414902138143525543078060510892648647874979669372585614101634161256229601576040177962199393707700499225320366901457666178079275689299567437591026670932280072574181463347384444926979814543085709745915577744869623573313701148526968380069439363861685523864947966865048426419338614731210839900548632015465131999557762692228380404416239100245297191752756327474112890672093168672257386224171532217117187940735828480621445276614756349051504018004861956951512179556884904012325999560835862800347753131217625312926822149624877059727820929028417570135582874089318968007830639534814364032762824032129626504276865482021264099569641831557787759507279770122202095123189849598533182321854541714472111280324610682645696707717366978611836193920903228522932425828099647410138027982249416067039815211709721290863681642840103648613744642965595944354752310668150396401628938860540465007126596504878634302356658078168577755336721117131872169889686803461780173388776563034853688891336923651051145528203038727187501557549841347921510736075465837201322768901199843964918713239707014355824239872574925278317184540617476352897524327094232890372487788843454304414585105132031346127156764522062468079197484248621096414840096863220072410894870668128399145863036846761789501609395239343543094150955452872687006042136501916260875946143037494904638466051652174857521423316716879198034835274756734532299114147723733066482928270603517768132023956239085243419965210792097497958517904116039907311359675364874278921154092121756936280400261623309179109232142474362301063425120882174298968970274672950008012474651897352018106590488429393275205855534001447323895074487257215246213726738012152058271758058677999842681204359302268874666794512397368304733063465203922899292113224031117519603578646524673361796515805292852237887091968825415173169290499451289344500992679553734848776397278783469208805772557294096658628147339994198675949624904046491796788411813238906690414640511201562066190033700125537252070385463285784613591152266540287789368588651515220388707959234434212561988680930808769634213792290741100427951236939286450913028663809746853924865172297778494598913496583252914482484981602146810098102637828544744667308475500308461561260896018961257160129309076921538704894569209275463814353717667267122986822082005961000699527818069989710827371404078328550111245203655675788456419225417185198492099284649501875310937860732876847473693469418452556667392038148319193482624143098895344544359098464581297263044908274101173744751389193197257374569762284894398410241601932216914645740904254700909205779186429604941006579700361295774024988351195597708041727372326089143787400736346041911027149102547667901372118995654246080640074746624395198527563258096745150057444301869620877261331084954513860458086226885503138471052183330792839790161838968792229197892024095113991284020881965818810466805418657070826548206405421681620146829043742672939420603728471877989381174787618385896460163549399639025431733988020851595234108220512314723568567507348145697425329276157703432248233120372368890872455126579920975572967744616236021274019750140282008091331844682514631777968337516617321014215416498550291061452275303314442299821433834857364822867563279657626014117272373481793343158437292936284657867603589483410926399537114693446489120831349751777928574360268085382982727969461037778167386028613943295238108032848588644149122241767282959790383303706509885859603917865661330601346281548734494001561503377808923659258688489442186500994776340181081442637575245569814666854986903224899200571575100980354674108470480650911143053811078224930784526401726204288244518652022200733673778119540080033451683921450820906079226249433380053071285606902598530597067070290213849677202933268484856135284148213583509263718900981678472366247288722807287078809683225114465065583663073622676264536425970314353832805215645104749925780515261990483536611595250496153546056786828339742786695509092593576656994496275312974229247668152938734316616165739430659473794534500218011441677197837031611567451064890458911965561537880706060743779038740149996237508695275985620837881942995053847169588049221058515930787839230257985381375898652801053225452668590080239574282767952703336163694429029505043000055389880314340980732507684890460914886899662409726988926741485001366875707019501185505170063038132358390339444154484044993148625091643556259172997109854202421504202885911542666443926406730839430715083503083363395585504843870969891361574459809084510713287301116478584419353596917984440396577069789785349091938830738327835807751049494709430008881440509257874421859303634532767347555073754434595982696788300959003138081233486136664927594311732334177478908019786198707032048370541603339878869918727390211120008379217172441820710176561781260345320844755313727146391158607726961362107220021463846255998215576247915201930022090582530411759626773452149412296925674756187288308568761880385448345574933590955973622270276836464454726794379818920050353177640569560254952323985247674325708501239344334519894181548015579190435096091879303022097270207366313630516459679762230840109333346054958176021868187705175767011592938421285010758187383549145821103813937617475293417095879427857637473856236012636244082721917518686829611595053116053688382875899060663423384555178874587530894906322367411204297799758777800151236436189299578201296043630178413979669321956217029061526263273000948379692798389412602263442887236819911099982403812661802546373166493118485000865387154071371521584087821131925459270427132645076733686427501856679983188388738347521357838024609035733866983875626345813382916203635109603285681993741221213461596804691424878318978157486845146397499859786719760149700809842046030119061165661118741563187068001714671500994147129450671708985105693312706513570481431578353164724826942603088947907485293132075678155723471469563712617735463542502145866672833763849152398316985773766167655457998203774938768723664508885195654833879189952379008741561239015398434557733697478225871424015395103644180263039931250870505841057479988664733706378651090850930109395131573846698379999500802053399374727456014475522566680787202313826828113843820504079480739460032271124642952656075202813933650941568139349533983062219170357670058681559542231708144362256968269452763633157747132924621059779939253479634565442355750081249965690962890921041862706869195910132214263380018674095443609047661976226527272354321986311129165790191685211009960137746008935165555345233922720389684608715926328065792431695741649991444406552712025744325025752328661611450874542643832466285118941774969468349037116449092450106299824014301703844347331936484087603713794736100272712791454197507494291832517452179289024211471766419366970578561915074740904867704883046561032206134516038831338342459514737171452317530787809218390128032611000904129952223311395885136400322436027685849926755662279934769870487236591391337910284558172454228600620986551963626632838251868451516689085784501611630554112473383359707867379678145485398397689451123798576446672701676750109912595929886690764787479814378170473394837480487583102655323082720139133081514750890189776469545487096713781263242881532438374909690880298606978499641326674027172111783955249949007127110713562110179617352869519713994892817120459016005993344194166465028243742887867787231981684377967525796344461265414483925405843571482704148327311365702516770757077285539279741581366020315333221573667705952156477820305553332396889372794084498298456312247736046239372030195851207931089580364022940687853674829983047493447553994177753845623067291721391020513888909609239542399449092175088701260237462966675325143904712034322664226163693582215793880910932276039909986877989952840258509329231813037263865290527244089943719963326704785018668472035896072665404183378917367913326327346420494958408565365956537182703938130134655702087189581293892891251656866068205372500408032239754362838276655793793650835848790933698231889812198390834486042170462061042116558972483789886824360151582015702220118690116494199497196719401423455081927300536267416184751347833452331429830819609482924444187543963372385253101999498763433802008160476167795889368907284834052881620182645982523325571396927742048984549476234524546288189176745478106892692418915678339591697730196094192657944383531215035043246103389068362250906439817070109985562452657399345975185932295709036507320623590929171648223926956975028673812347973017896585965729065083357369302857355973224339149824911009160562576761933272677479307990437022170242997081385683198293612969512320616997380044444722148418482473359678056860334627303997696204260541978652784010026559554433413411790580748911901915386068173163659518189632600099217167627358857266072143724526600632857095813774144582375476871320836926899825021661020513644864698820778803899139469120150916409776460724781630757042248069358126802503486040783793712356627505060598846562313551784218301694858095326320029017297992211802956996116810829050791367022124159928988764171800704345245164929700725049286191436889849939131146960477980290968050563770805155721596325810645788077121920718927542968356400762845728773582343007671535991179621642656307170130625342045663409046890089150327509194648687210452412509144178626439327739219368436397856920974351797600725358536969008188822066002718323446532162692586247353078296426759679864706682731523903597098189405513172336824896515853449155934231726048806018713809420412238702591611948058083882491504526067052918305224362829186817846856073508903528717929542462698452554310710445447372502308396557640230030366570341129237900130266213270586685451190755362448778148906766392598987044382293218551174145775872224392612051968471511615224175159573698356901786118599069819441058167898124351953997507911398637521425588364050145833506873292203192089725138914482831407699519810161568512555658339819060647630446608321001156467441959776194053211226876170710286845121870223427353784939501978601236336854531952430417171169628671222473673848586410199328102154518476165956758614473408165625856984432409895206916524517123686571343599457298678749412967544797239113529071041398483130437380222839042786559203912263926301914537343345960055763298101109419625147878727362812900384959698522840868920976203721473019510145584553894790020233125812924520093351671333450028651715139991026251961432699699092925318061063187300534513026745755994189416682599527741305160062609881544486975256690079413863705682126888178614669294184319479383128003883067086284735460797243064396397588098340829495556260125469223997694350760068817474973505614832423525601596358072128868019213999254729928824368591633916002516706440689341231996011589123654297627847216939955239895894701497600381376757259008196650805365209701739281082662693685766367824455110348791372654768346990441012746727061945837566624968472701029115982787804459242477863092841563206747599699126245520654505596074269759248557998946507752648886779996295337431378284293176128573331218410630590239686586943991498078586964227736008576498586931095540153855830283430139920727851763520390630342938920440333018158335143169838890030568655226732198935024501213203165026953445044470300487431540211663559089139481989064285662349349954296688732260085648469433507326884535055246183712104162560378594579029096892998041321251193541811992988447093910631069050844830910485666795239531020602875901180445802090469769022236925765089117961363148272875094657856406240896460580094730647148744123898738194309991957504746996147409905132352596347582392891906144032217901172353052890367979999930680707638179667237266245083361961429510764981774523437235694026097346048118316852773292105628556254632777503646618243459499762121554600972320534430312714578653039572791860021611276428649130904920183131109992336323648123651935673666659391168678629562240801036762442302790080575714412299065755076803444447904750598565641576675152346216774262815098898097275357942274507722722839022843573723385723628622327984379513737163211174070093294783150210248903533022512044708157500378416235901767749786452130151346947152912526147483370039592288084400899242604960765688968727476251322722159836243874046300392238726750741035910228337965528570197635963369101558299021837560369890803454370115189770486303935201903073991370806372435449377250188148670199278239628339359671130416224878056367819751384140238148510734897483620377099554570613482516274070495356741901385188317751334542446261767038883839947490409004008392439841891239681850504919273906811050031262533487767087358969863690464863180865991150289211892756212955302362168675073215364241410310353114601164772621914037004031499318093377919319928138157711078427031062819029026552527264279397045261312614148762806509263055925444577316568332363408698682750531828721960372758085224792704435047302136403347490193332835011397744614723974300037763638603595631473555266204964107914758712010598889246502657554528168731564640647662903221929320866341270218954495075131428796067966821065027350199682676271541587416697012675489524615422017980404886021046149351802918049689663902211171991468164200204927873772946418305154668102803946820224468768922015260250269770489921510912163667455882266396862018614046472613165735702104514998242787775196987379579059876112220327917852682036660943382254225861279320597412852524393213221442084561786415828178861407711391259530072229494377129505863506777670418648084882721253811268284590746356047167563914638634303201435430066075400878525313476773519614437757461035772920042897025438071919876659219119117949989774381499313471600568290518827108661729166219143851543037460608257785848074224728933050369574050654157412949345182238606904821706601202965105646934329471131748651373728747211503961584921197428217845125036269510772216656455520213436956004907700225787311109234739823997186121880619045956589430881258255782808244783186370445286210036169323477287138116481787155253985637761390570014891726543054433360679368499044854377414054771156967638853939602590858650890429037718759726840756245903680267271790916025494530687140541632978369616320730177534448952005157839046668755998095802078857951866007301499204275573284733000213478165051599983855528239103424502398830395705316958297394420498779113901855222305118874379685926011275711478794248071916029643076781997350860015468727945178431080798126529488380237929804014077908310583992599182636775242392387748208232112289800346062262840981956356674263243712751458784236850741754184301851554152684598214193484185782566482452567840363349538270845797333702270594510006553224678878501216072896350166189907680090093308812233329916835398497900934222260971115131193888168307808184624000731507486979257031544708426022585465357124248043362721282603620253044545161387634873708415014937170539653731807385617584643994062411494819789632624254274741905067119425200643712883534419241900886094270708575129770866613986098066059272499051796980043538607797770295015301897659999470404620579816447357119079530253207534387931427456144610001029682886371867826100287969082479622529836442072187244805959062947575946527075793727004534037510895523849290729155041682282444540825897455739795180758917832491747821817697007253070015040339834946798558043628012729577393711261463165149377390108289257559573979214206706702701821293837678070530550864877792713609987516342291494341013049178865728511142450800373398914679037783511628497907121752376497384615949377399364059911418073652974430539760545411880567390617759451989911529118293008612515493159811231801259000963444936356883479060752315161412160332510221567621725310037926573473389857268280545347012983501916186820981256979899674172217416599085332948607141713685731742437853518800636699580793101138310747505342436854389695364080853265135488878230613582437645537408504620477345109233007146362717066578285420967493674879608346096445532631170379357540546245639298002580891197547210626204134808143463827627085278223354066182198612440508817949230849392706068492851300879368032925149749494384302011842975099005636943538691810145731384363346715884552476274294519943993603391798260056615880300776375206040483601763625733695197884260799354782942100469170051218764403202665304951722208761303250851639656308826682546434451703786889356170968494736013675813917913894001283854321928092136120064236833962874559089716121644618249185397937509782325295300976067271819724242243393212941581066710022260610862322061386467418165812114811640882794232043989232567554082702562672964174651007882928754672616348222411413368670145989816163106554534060488579316632375156846078904386466979881034850753791246248655266140532613621937920748592822907758645841397590178056642028807882807976200714695313031306056187145557164904222948918458494782093744425836377089525682403086511710299243392058386913599887150832972743351757810736137258969640066263022806369059226344951999845899294480500013683918260799115028541233649828137920343363031637548650917797991713748215378907122124823395243753164860126070054594349155311407803529306661829713127742268449327693067975787659355779897914572625213214213085597151031505905188932064035230587206188081832461046228776308274759428246573112970084144781781961371482602482089654903984395421403890193693805666639848465216258854661268351670829226300015881517681425581816694002710983587619828742492151679471810343199915783415769204109213619454941623390301383507974663795878562988483677042596243103243789196554367621116700437816658278258928188125545906035143524437944095790506735644273440549885800336225393009665828180537901714996639435171155902086578125964367603398940992575166967882642319608163458881768826169621486882724853939914495555074425757326200335996320891571937056595336254031144771705260906674373416113489051694097661245980566652348098632216038301138801694448192551487765130189771542259730354016901329023175615364579647670142597570820833708930710588774517490657202218368352282607214879489545943326284525924215188728334736411366713822092934696191379374957838347429911664439085360752273425814185762296752122525947416548672770920036257787038344714202676851028812849861086210843092590045153697428726373294205438784938716028966917259801315396222296716278855354934202313778667794873989145719938838043559443428164201984791897678168325875354855454407040180883628900025897455720726222101303722368825425088080246357832056824992179289291736693618441661069790430098814360904569049324577097767306906767596160458314442175818706758990032336277679507708588679814548139687698445103503425845019395359446441095499886676645720632058650125282644499171696605520071319788163764398124711698869727137298963120060620407664637243464132479645405550560397176082000972024582476176808434762388988748551051535019305107564537810376349038146375141435382297914963362089702291442934774940465065830103398901779243016823694937366788299765398504344661163615485729718496752551976337392123964867822601944998554539417173404902834101675662451014354380968304316576398380663846182314396433341268859114349629967283688721368717883360903289027400203374390756483045455686353739466491718081032292192970379133760323029947912542227779600886563468582163148150346175115155705541717705808488847227285190366335327890926464187713890048025296464491094543461280593852938133864736011901023915607516574379825618406201325313067537562126302192738989309776551084580108085436003781429794514714847507347615424890624782071111570169095312525584769578010144815088434542230951528558597231509548088308959694101460539957599712099012945452011876649642199542730419489226747814635687761756820922964966096384548219941965593356550028211790048396394160457590120958636865409747828812106657743059647201969884062406509891933520632346390757540464797080154102163451692277575813181966009033971364516966850979797589713679864486931007397691523168586385084991013162080444275609987407540723254366358516612892547165457302706377968465418794871959490134689267382662950443954410694198788438247679007254213210240721885382802655429083580198793558501491231767210593431222140674424680962096856928428982500156650165673022544379443619600169490105192381100284322750058308067502327984601462784593836820883634696636206449586208451485952687743789360358759114640383815862993064768780288830640898738367788366743255440328346440733729131196043467592354038091419538872628569115107636377031571448481266717896819308076136674868363491849801504297724975368441516960953924275046036834729479209888065056287859753055013507350675783006685174247889122483235675819632245308321157288518637522498292366324450664204526646355124286901567876445392636839020876852490822126353170556462999869362004628101255621712460857331094622622052159516516208668257413891015817843114988075915352501970070353529856133047533244636693922509749330343466356772398190227068936309441277436144539418127172879809447720429776456905291840920198361289601514424692639806560945294536377269850918090699446216339468190242472919025137555744368771104156251099531662371173337035172908359897235885746168768321255363872857388783268229409612972201361250896132923856218837778116593074840808259589338437062100856006708667965572822369999756431253152387424914387474060310477177768654320961553036554913289370947542614272450343587387853211668374111974146669973741752221483000889734066845043218255507149779132354971306773685556708760743211679488649390042028042389788980098359261133613620105788173397652799680146824457267245229271131513152851907360577420434321969088809207804019668169195719508713738299165269811787372197767959151405544144841394452118308349629163598801434640504852758059505926218063195695237010683850708675116754510831272075959949800301740923669291120386494779597649848405714610502707397571902762677092089547656611970081600181152648550544596073178824434195488179790715349108269337169054882365764292910873399794935764868400222618303165174622203463866052332743563478822177269568244438054725079671176275243676921619207116778285366597201721305336042044008218611834784375744039323589671725275575628681818029729117669331007169844000214034752312058260138870209760634768246852259919454338361691720444749018285524410341135210539666489294304743318976437665018202556206780643310775842165596840078692919847044333749429644643009759740016204888681320365762950482833467782409029779418280617025014611060617764439576791933308198544746989798834807277098473040975067493511135147227935578163000421294972340620593898609925594446294141886672811030087019509531689589414968953804422882748220849726259259694645126088121897580304053805473027784305379779185605319349565019543312290555965827700546984203509714285968886749882645537946085893584066099213648645604834082969643967729496653449183438239315394677484207688967587107249826967013288309292462478959344876128286648244242479095176498416277541603046877237493210382682186365157109348014547147427864704018569403250570712731530796431660575626868825006612211505758684424453975727643924465507261543602923315279017299892052305603666657742701307382063885007141114991749613560613853678312337872206645727961347573129490210938361108328781891344499036172831171707713972567983786526451202822625669149399152445700472730493973253980462335321857773399572577401004062645519468425689115958164991190107390779349419991694707174534302481221185062031408021746677929170832719110566111165361180764860082708045749692514641016593596639398863520005598424979133670262011161514564943492364124470690162341642171767932573880752078407387535842680051361820832327609389289409924834806332371579443970884701448035498966229447532049149075877018673789414759005233139200699270754472333234157073430152063018774369163983268491716123837537640892041623445425893118914774152117889743554237087247839170864603850618806364257391122816133704845089266219502435870658843093157039956947834805686791167548135713181476912456653942018653478050568343182970093047412879534965120194964971046054673424561615620917893188248116674685431683566067156207711592872049781846120656055203552917111203994174866485164826986151254661310989998571449643170081732864941538345107656067139301941544367859130495357569103338799343057365240042101846965677464249727259861098853143927928342896496480718026990317374325324542822813536547384822736922004984427473140997676607901728974865443338475934820279634208574169147699307364984342506271619727918651870594095702265480115033034197258781361549988144687861565124854286419446984573965393948997217818281662512782328602777331799606333832868483719451707526535037659467991603221928746341349087425125591058674891134323294414962253689001790396844199903748435034872414156991184687587078680882510301884559591605871408005213514466018572961559027625699121956035878279557133441430809634222890348230545129769322078562458440096513146227333673112198592073611415003669531250202938939521055759355477449370254025386600861459490829598355107172343921981823880515146554141691113946426265611520842415597446572801884405544737256263594691371164647694840413066970643139356138687888415562588330738443708032165042531618290870035651792126623268859869616519838771672154022593893677600609513456616955833038709549548462219672410810694786028053394636603913868984328576225073437174280231047935509036870058672016503991900817510174254426626251595314493912476542503878238046623658694540015440622184615502387789339582706852871957905177021542913888521664554930998043387386038333752998754579283916172830721888164005963404558689574439718529744420104878672614446967995644117156880867457174486002150592076861074737772111170321435221728326693141323071295986991906209997818210083010690500794387765444461029117466329880685047860508807202144884366888734345467340093147349153703465744794582072001903392111999582288956627989723923534836158415710361115594009022309635440316950762319998367047876468495361836354004249796829294200649647377427061282387033718337092601558532098147193062092780520940915017862096113625470354944046020009060345253656836192950616325363957133275295651737841544642341896345391892113389526495341358754133121851716118432432619241529434563287310527768985140565848280163937141684045935807581188743243252459453687059750487488626509500796587586734296586654194676912384741665819211957098109750955596193349995120735561150338970877615254967775538948732254823875635743695704791127147490162984131075637842993363483124338881927806043684211172456368166280550069772926991430597622694824973947884434637785966706727202286140014051180430914512614069440706960533965522054174332654109419850661327948295772304091474677712534741731339197777402269926829645000922371115249247966268907746465413846535609045824750490002412611352020080865867839069224985970883546212174989942453786464179827122121535396081561796572993711001085142320659777237522787106116938352255782328297494300466680605779308679135259160284086490753606339948788481854075016320673798207226344937453297606955026413945843639727266178857454988957315838549814950404886686922630355000289801191232800272072931390127310674024706277038289238657784901945137220774654544825182726142349705599608327912929087622531834435334131401967712583268833985593149832467645159408620313596444502013461238313635439259713383307430654314949261165041299592069367186421220612174061261421730856713989452590386196226674032005439919684196286223791177464121438764497796028813933236531660363992916909383275729252622525609561512799101262678798520208133330061388887293283112390846797796319516744893801480603513424764714081950129005080854730529072103518734063474839680050168698346708829961945256487147416980302472990177560429077038657279063163984612295066722282537024795067929833352818650232576969704584903565991949219194626091817272405186308331811843166230483544921828910641987317907407589206552064885491142756799617697757906599219228343913698741805389923013408667669897480373049869231878405499306040693059706171577489704734761387303643544353202203044157889597070425564111789633974148633014924738244998972403073063335300088005523220807720395132231334759196707864313728888635195101585094468776020476845904509478709075791726324945892799742501998730960039267999935055426679179901869941346944390235223143994904006838284145996868913351813132422464437227715347995797723680649399423395943210447752703914228887599421981214338743357942213426993838914458001257798010595599728855463656365800346015494426636222564345671943312527541776132840769174800754273151605352102813532441625455058968819435005611472714985042577803060633431991136944020418561212058310806008476609573923003087199810453197457189009471701218011457034274651963089340211327546987302005869521365000131703876058941511740008892752844896757277278696660228064339444287555567141373505393198666421605031395540237275615820428566599046825789802168601813690092193588904002829469820479936475601624565499529867838000727032747909257693295065971101969826290911258091505439867262559090729878440917804671986478978257368533042524325951336118413739480444032835240897486235935265793800834977743537303029063446366988972473703485907130128985304146468483338858499383303023276176959491025921381432861567739072859133684812202733913208789019102530066083067200777939433495358008995735946124105817737271766271875982894710508033837501466761920847152249776235308927949606015640665682333114727801803865460317750582129791444209024102812639679807100083976227480312805958712895269803822772802295311575371196739417431866275814704594663961708794780709193884858145716127476238113179427777261474183138692246562996612432233806520250556358757722413168630123412227039448280313826022745261226959427321873403478628430354389355129262307067500022940930178701200166791895477119058451178104091932780903573167799927993926735314697999911642893905804573207748936196533333891653923329606779139316910070332943183257720489754496411365768580989197526157684958043919444647671642677142742848788248718609030930002114401085805479542742637218441714185637792842231463003735618539485661209942770675594472471502026029194060045864939816101817399630006431795865123152412307818134852606326631099969309092402463493022383764334623103374841701808069835032205085472070213512987496145499118894781132087221508549022405439390397589222018820262719220089018670515184053421260282352392510334931364231741282205070352758319833930117818482273146020427509081265954240321841317517486539301528920957610948647026690033385505445744714801664381345319506529378090074115122043941330966868368371954062654281531001175108163211429634708369850344698550208916271885565041449655001473896041188925005139173087769348567032146745884397967896448466724884889635407350147611275311382689607932422158611517490352254423328233412952695354980564904767066569184375224494657157399006704530723732151254435561164300646966238929440916827952283831683016993773031101853181039277337403494867408689836875885792788975972247274758304071845220853934879462447585234516050564254390022238170119413001338792239599078266866458745480068997790530353811166439925861772553879961956882262616259171249350480626372863450978666384233252293215274721221644554962808579932934717232926220797367381540015693797287224251390299951784077653675578113307468699738439225103602676770519382343847699745594042191617140115153078480734694144013728914766788563239123901844335463887675940905393456851112412404466123291989989662080222965509170417676312291083294262508587104158363595722971192404774719871198815440967800393462600703112080690364880530929481963755889629244524261920615179845077727190981343438054474883433765073111286255364189613021630269834901766682554353835639151880577130014493759464245578514276566974283224097340204432237279806505941375299562083915245864188107118985625815976054392018665139729765771611945385725062039578844974245061429929666327825674319684160276922979474095439908227607378270966330988797445338692653282808836578826835646096602825393564969256222246430314069661521571514002867498717724433441281281573064062807505309486526460159948675552218551796090362496938298584166907906468133560424061185759541643201223000129242737082233125011528917875490487109468096318626623374711270557759491283914019254966357016812284472398258031517620109324787731074246106653997586929044205472415898023475672128570472474748440072882534502171174209741542889128637804613144023387617923061184436951471958781803732691870775101939452981541741958038543307748378808055079720800757562295888041466244530296748909730666957130116282392416943525496425820745982509428788509819747519292847150613955676464017393359674239910765855085720475455842715239785297589136037854026765575884328619914810673934515797627151202762591367735613038936632427873242617480130924986284829981050800009663564039731414637901010755550926384041993665637072125911256028665589120486903900972546957677592110241327944176279157334384066270437915592184008157798752349768657984166362548126125538372437653399873101264271654055997680932713326177193373682398969052851601631878800978714422892327542267248606947983771031790958683900149150820197738865399005199875383984316669093953633087090893694286380878157150607513729052379387302566797191114924643470111985406243264814304153668389233101782654138116291517488397445025963965377194258300316618690550895684810150447731724109936654251288177631660451357244517763045472267647184651787974356184175186981363062681035945813974018207476431182006855678099258390867479862152472837313835801204701516963009302160400445539057989984189710328891712785235988751796076441541471213174482727633706373899806182159769630189016079449621811959481331700202225420862785794002180139666374742342882074544981177476896330141963577302578966365985077606339179079443116664789989460365679869796910704788868862704346450827811197087175978421447667545400582335394132567892107968258175009033500507128474591466182062209923369365182307918120731889431457677819310561185452502206035486206616024858888733552286672231868702336811045000270882527891406585220725466366563450221129879256303866237751196152500712706031018439449092831857787183217746838157491170332989479290976827125019685842089475625844449276010252350301885120589766510220751540835934198249552436241202662345284167404681660813572091556509040811332396044108798205622524410912683982026874839502073693782416443888462471375719659252779148294708828666624349993865719785480442539803350116335805145052083182697503514159738352131683902618865762344581615272111151272821025262898808797228775972262174269523764395931156254765153416432499994875375870087943381630340036897998961954140171251261872946134487283354701072830869473993323738830165453623123925673666927188174204137204649330344019070759267263738558115531816542062367975239304270470295693168782771106244444831644111329597246357198934304921830027573125606535109426587879989873024139798764598782423316214310160156723549483268987078651119173439366465880686428843432646558205968167963938015749104615547794906995368052049966592705097990062720101342483426854888053172200156733974465879768376272516053026568260435641671630755315177982803072743229141465557679754075823518040429447989756955530178421429183754423362113623383400108050942485786378228388111434370005705971157283633043512849336215859869004388016138561690940736017243400181857275192662723445893102189945960900328882654862541969964458485835410410756445511284228365587937956069171386739640106021418363351276158654026984900659886113860808421059855709485982434872931500928383701701160245070516367895453790284711854359104347035120538568752227349154361166918038902459758134911018098902271904826233744333857189762823650077440544141089445441325372028251540475161022636905034750216059053563623192393475644877257404908297900640863420380529212775758564277344609645836742055302824864920475373138437657529028625166479083697331347416049330062783534601794944362178483206758562616247548617823660101942454854017410080750937047992433897110040655486008056250285605591992661757845511270665695310111707024820535899524375184388869613576624447473471700420289834503305050771432621499338926486844053600409840112476437956663285584031096575198494225057065660143705721714862811566009605631937322928867321486447843716748212915547232600888340097320325073022430547080643906067144587269768389743455480613539675221823892466718401760744902706510224810091861729794285453540511887119879593069743348267030055263462090471945977624177606252030480536420127139061576475433069985312857620399945160624904464460818855352567700577093385402695907127631164247045872728896980827353213283851508799543422554995549102598337851450448930971061801427998922387175331922578976267673492496091712228607085121594641238945533936003757850356337503690204547634366850090119250841974598672744855444555998048490949566924759475003741568961531639045148817172473071134873173513393957259391877456608667233757617532147459557899577269371184174702970872441431895581972045080665686857880129454340566419346752047012809908217280164238306040668714062423424303692126014534906531653112028866167454145538672097994279706559390243155550648533197915357687716443880581103463541352505109514951280804081244151044604818615261343311116559640125558849880412860499928294779183294894651498708537518824610357983806850444545713066392715630769942493030737314573281247925048811699370207890937077740992039566368661040729077463180261290004864545561042134307875016339099844647024898991549500441851433050316185174210630828926329327297008301081971104019700188777928456253672512531077047055337582950370381770152975432852250243885172653752026964609350783469115412014984254777053440911937745581940233483646351431323267612093231669358623206649758698094669228764207114151088422590821886176275938036382083424451487094988642002700832653619337966509401405609789803394536657995811363717122123403145417511058153206138387193582084660427056236525059347721206842543793719087304806489929236040939871213447510820722434429277737865668662362130948754428486784163276659433143009553981379278996211103007646907162699762999237042339688439358127988280416168607671551221076941290787028587315049659469154328955788459060017283167861782191437804176833613985983706456539668086329127572306800846249406586065077916816924989925064013414812926893036030995024078053223455421350399177394700724015963322263964127814473826585400666018824347148005783071320009888052273399636078335187965197957673948785784120278307810074307080442827787765799561704252720662928428142541332329664031205578979863731239483633529815843330668164093797953454637324896863145215825649477196693557502663584183783984350587969751455394785460400843005861926413602914315000621496317579471384239460114673826270453195859006773106408683806101783794082521093081886908595710784576894218677950229095639125246862561595040742474341756688469983152263094850763158415725942226418342514367509861278447209143601674750217054264846093967767096035135274897535867256674501710423367203552471495142160838899109746490746996127395187923148249529259702212262471079728745728847005788160286507630343092030490334987594261702771983493747688192284372704258973441738548165898204150113647948701840966006473559217109783708531057579017786220878747571732642460939244900283300116072577478766401281431034251040513893213234971511001836598064677907114748970151673349270905541270630189026663411958348837981557388425251010909333435876723491920980310907866712541497303929799892574064821579221870237683566106085073119844255783850026169238497934926607564330086453617392535420102401379128525484597817342514145556620773756929416664849159687922762350284541432636381783788230708868244876243822544063361677252363884520320552525524748163845370198011717556190062412639481691025365024998465824651823090600186117890311167381929901826774493349892094694160852546378228393293628190002611744712689129479383605189623609040908561251687033256867749366587808149907574488582344888308355732997366855692740184853231233514324089213832501543267718041735427140985433389560101507075929392801934359682890499944684634634166377304660949669712275198419816626803451683947754962198627553132391479044211488738185408305068161942056785352800409045134620500371993534566694034656968880041407529634736964159555461336939310940546828398848190061252338470197341887026680533678996930502476356768940070981924142490859586354965245999525740903942930018785145775937915097434569666531500624883259051693065049238888647500722986097286176540876592277064514744346683310678101765353762860623427358758578874607209255378089097203107181088539079465362323825885873344443397256759509731339419880240896751414784419775281066072753267623681035727983698591419986429703957150687094873971377246928828788527922849856780916879367033328517394149504793022693784965347139849194912422727799478051913146567765648829066288463670080770364368974978413255037648839357979093436411143839843282692964959064464881287136034364664269792062235534232122240404593402831197970312213126913885074762777162016375062884971169714800190597023810954273627131137196279673515207575103367024321763414349106799990184643410566439595524106308583854915926129848863728882764639076832520446844064127161576432845071540159173944541519578603218919702234183411854134107172694161128779199476986103172843285589786593846162385067292313779547042783614023055393808995729544841436643562613964178235780943608384943170372353530116049056915947752138087346672264778651217272962411821454448348304411680340617207816545548943633179730524119317618462989503692306070801998025097258940681729772373819167067700423762500715448413758618155365574046783581812032622186079895174044659251042012392424593959317810202561186519476212994550117569183876421341949913182785690494834346890747915845697322360388938416801044564176526133298076266673446439284587625359750692301090547718311048285911213920367064170991237074007009277891603405355175677687766907832215336538350501028250207153249623646707742373563095783473443254349843977494890727947200846152756834104143219267198613995288906020318967449388909950781499540780807019137629576147776075903214270658908087388549521808025485485752193092083332087623217037649167817589874874687391675455440700766358320637165261321110682117321487586814811722512329043635644626218984921241498056723892748502704349699582154644389365991878574980050568638835210240816612680777808796853045234945939189729925475371190280264658550219555500298985089097661837056198023710947087396395031472915717416022341081038496260663002108175447929629582627789140559774288481053609717111558109485737450266062804081952387515001673729080762604587574117205607298642694554522775031493326647214731493172490027068780219444614500526166093905193595958431018877039440027568024535807149230411697366926028275438506915846538288441153114840361064570437553803229302385568957007884615988154662370450791562320200396311947753014139267795102346531813758003122427934296508272997831121156223872056559926332030868375411301616111073995395114545903161654443374597438975498191823856728414891916018603459244284217239601214885339309211127405686663468287923366745611279617716429463519344477693261307978801094013348096139469221543080113394354106463616248610809689320947238835285290261277786515986224782449694910562556394649591699161576356638260160855793678869901753393718971311047846163936351780799831444273021851687097512991308404807238686903940628391318306997410526649183531760646098452743748884985322724813328226533644113897311899482717154986175746096194401105569823080735028371660117172151272495752254231767307555965612050940897530942045181482120681064646862072771703255052491351230147591367751126757507140086944186315168384257206775429079113761471783776193617390967812368884167877286511990237511645691846536547483544490680646372218555888692851591039137555429159996821587029434697229118529898164086084912321780923011548592359064795288371004445645265743795714731955939664144079502126208447549957419867170389640963078737776968504828671021557547933960901021709329269842329817740684454850530024137584947606547185429739582519752548570765440427590666994471864240273436790389859163041843478771861410363934352575756777671100837079965828296981446420415851953495198190895179003961210279210525334180753947089150627377480979480069762886322795190801335500305650497513175188886437330168678698102141135796589834828441048633413256830197818789123231285625347179989196566589879817432780404105462506673304966723387382005181112260736008794277093642413730926541180832681910627470610643703659127346757169460305623888064746484517329323622677127469034685748752090154244207674763816007490450007890724761585300483519178845768455895621116162161096691214764437949258674586543350893881041633949682209646949183995461399545210167925913367280658670244107202907575668169501479084141702151892171360557355190942696223680121079841235518066657139128206421665920794587341833611168585368265360144466918322908845076229695215748068872262036320280914585105410730123443979299861048566187264609903742134013194548367488031398336446265227475619328172938689842127410889556280197602668682935528160490015089129621815538429390466331840018146762611676681236209279692391112611571563252725658614909713739580089592259321101758460320890339260186662025407279322171575150306199396487152139099964162238672647712117827285563110553401934780215805027674558422248072557332359770515477188312212480596411699946941511016939044028171215738032160003570694682701599054221868439633050040599919856491307082556927534603625672833040244577529653953382325460996765077733668414519890140866897763091252991986645018831125990258784277394188217234560715680052841589387426038232339624634756471417829451436158387356395960465586338433730789925666666476080280584364217292917966389821276188300149126263896949291754699391859924773429623762697941854463470250255871379878692951136697281558192835973043336493467116460608219946193723795739775308326657559746291870786772672925634807204156192951491241931902137732700635425799218026296582666362034853998060005567946588449362800329268711230443742790414152783266065074089796985008983285071066981046623648928836106645901760963849689400053769032789598998391535946845770951621891656168633139471255124286548807432989516098885177487567106453567667166318517806368211323828361703325386697823710730890515656656857777366295806030722406167771625435091118759466850806772381244002225184851257084775134703148360377388806204727044075883964964382386938002994710536577564710489726918814367724856553236777732871690670616300034270297433971837218251738132842209268253903846127965501055329536991749147181614822547902670447257108912999589393727246748162782484399771150845391520665286898560220034723128534444508674209071888883849145444535177675977783244714038861838503426694816854065608908682538517685252699010878706616071791767224510006636492633660152432211427715156776271410051002588193641960249543320900253175647756515757645729243262383341672834954377487914274208218076763831922919448845988564241771261670528220507457751964868793969667094178606841445841336727856825502116512103696677480899243812280169054775956784377641737616456492303994580960366885187351833600835331669413545309569774833844763843113351912909316532906677077986982402691187026349906868963104457613546089606556724903519758582964261889316951458988281536730526979741377119415416233066765819744893260127483959275743359598272368514870192892912670904524201399240672266177941732599658977716384165394370344427397529896514608921262254085132210134557832963996646809552959588631272420034200854050137024195496951499684262903434706155301777797736263113092325345750647080703754683686529456862078963841660921218526776903360482397264043572520526550971582208788676765969228809270185113848500814332850642436607217842733145589226590610720729612034761294380353530204065582628978141557764350437028849606338500082897193068359409067818697636930126911743593808967737203927592462240627348517178646124555160925204542129444896158868927636595198914201818828074534385602693615795631910808922071661187492267897138162459444921717663989701454095702786703388188474610129436842222678872898803385023564884583007257467876625539170323950076401636968589158908469301793103977672893308455545477537792780626293190592750251089678112270782636129762281914628873960510774819752120972700554902715757710846792877075115454747150698687543496128596577579773570284289383307774258751394812812052012076453348122277779784956127685140735832802128101993196509439210348365021115344504732717323270545496128477040707401137566515052382116580657979196496625696606909658976306076157947036699380990299512210393451903454210772500550935622485944237121628596597543754063100528565135266653074478890258403423308033394850322838982275916359772779039047347958550348640753163517000453319212405445544502111927841242606599546545769129574759493652253599212507977392792525369293958112715646293654349973895410645690174654438220574488112499873487660307425473826824026196962617923181501667762600649734978913365653133444688360347138461246034127994242237303218139296880629676696457070678176900929279387092119236163376427267617966786768670283817605345240047314134605206648144491004584181506047230315830184565692577551074896302265138409568053499898751216454769752052573176502698583794914947917295245611589804604979322226780040277007104243073428054456032109258028136737636761938543463823949609272509683237275160227499971936776352710280827218004027670389755822094885221616211523177646462233547720009282725934156727299132781598730262625257232618273946472237001059346737584134649940369126357086867119619781314286870324031448415921414576201892378940990150618104756462242619829677839838514857382054930963485475243448140048286722442910448327807622350518257005818194542878592100106613987543773646341083849020445368407986764114262597311850176879685903508289219732655936678722457001402068234360697681193524735494009753481832806367462757800955036772160079421507259815097279928711568402885726943132812529445420461636453776348311888883533405535050211846508608973339863948211615437121454193486383592357834948035256018313006768353045657159724036867950631812139536243582594332443419193675485508218109853116561960557442083112321251157378772634907981786909277722184315586366075767021376922076676702663593279851093395211391585767094797882582547929899581397522018861735533533431518152613753612881964204073201450011303537420185566095825557617857411338265437328768820233499468408012145668386788324496805304831532518109003670502304042683402011434956964224071792019780828720844096451878850303142241984869739754635275053502717809654742023755334660858241914067055414218509625770992329194523252453979474604433254579823132904687852025963558078827082506152770820754215709623139588537370200521592913094226782959091942275746453698974432840766517725488222554290390035124895783562136886145137890165313977249140510487589147140250593034118351032352061588016417474232628694281877290682222615946793068228421616821984393537018949293357044438329604983321897836405384123192756034895601225211529826078580022480259054073194936255618254412719950544889372181657717073039665027817593063908625798151571010822824717158069477109077832885644995750198963941785462448603225674033545056621152252171650798615015174147114058230734854383222080488610514761546644271793129963598198604660276104439256306837595011272948666492597284479006052485453122758666991122184158103764733149026477969792924383938228542810227791349912365391352033586701592627993738367733036965137319516630323700658624431690463386796420750123877553677839430138767843862688929377510923811609240979830600770560341208446615164716417189838472982265709809188184573114882611605312774398377866177336337556728805927186322479090630172567306839466581574626206118746409432211505724754841681778575531659765010039086373190967347388955837905193045076269895339379216585503900417113518356109466607304171675046649638258542697197534479140370809607998873776720847468907307703524681168921814413300152685347417846685647657736244360081599133761245383038853731482818800526924280458486473701719774963814427634033243958350273419346109719336405051106635543884965378871847312632114506736247382904055264566216506858495824133055673604546141721815696293891120719579699572226965521152636161701806585408310089808738367837606769704896936741698786367371041384895695215298787750535172203936573469342186029598756145712180637924877805574128273995685572486200995787530571679737001008779094977064328462620829951278507179734082423500665426169783996829084078693967678274862924574041042228080325525572354456055068159819744961184848327651217501456555224572580426974152916447575723816297229353716531262931864048576873179663743158142268622683173023545510692848600915389572060499322312290870684282553587693870446962685160529890215459236654430567508341276584050490352819324984746187554795798889441675466272188099372227511888655867924426652717875050412517213461614175826981217867057456209689750626741003740303246531362635475533717968752959799500516328354276722614234053296799224173025023460887581960879936436193824227978215425824984113306172153081522404924224903019768587096153954398327613817731230351888867507415602734512007560925982067780755148145029852151428681535538252324786570178504361807212197681613868834914168779109718839204508964239573767333414885043454825085674941350389223668173765771995713035269630919901000830586686001694618504366471107000850531112198783704855929168384973029358731717796750251696159485167796929007009751400713277678720571516877805979174245840538445959695589874484363243316937182306293641156336535417384752260365883515576656515466124586972116747960386842617173434724596643532621590294628040936132561854103880036132711561382458904749817467804244459131558596193207423561934265329850191615581959037891419543322365228795243821036973385220955842554934874215801009334039499222132531359828425212597549763221806340619198283986508956001829295257943296748564295453449423933487190995654260308481777880884630112070822731071446622135332735711319534005556043308199008250294922543893196448740945363619446176115477850593460674628911874727571762399281200385612558822570990697657574494454527643073872886721235839942658579943178492506184519813456060573639197415913734761646274526805509117186925074481530243899163617546746027455221803481335584293248564019794475718194722148699729414093938777451041666743938205135111650445927629259128382711265924010232459609610900301328172437594889503420508097094822388603833888049988024317615917594627358227033255185302845780977996515615825532038679421502088482461045199373447908504441686405787295992226700240906136578076243573596856945273705027769845684172559976453368393171075621969073735587432047434875883855815277885061838928608685188686421011948897898614616035923107870621871158100243883811019555978448485696072308059305483663237667459460189902399153754695607806061056383171426962530385828158390263009310947859107890179065390236226584073120951715831801905783434546618070247955514663623850636231169918171747756980427660700907398111214463563928136049072940745137923136051088841330585221087670091249547688112429531704674336847277917162219524727793763680171260276132389889774857517705571627416327772408711883279504422327452134104533943447239654339406734086660054841356397947531209889876643298576640025023256896272037493749004949417926535011826672681015192744700054564211578966976778335133274784482439310103460424824786031937562826120549422573149922456729828812090740388725626387221400343920699388495015601159288886817057500555496223846043356423906591675446424996668646700142906989547340150442887715865042213410691131725754681264006387046944219230320264322557610597346529011999193686137654629134369087138204148373247663702195430675191895068368852909468989160361130351550214463588715574072294505353398454806049472804609187028703605527357270284794248289023202966358518134239872224484588956535217270546693808688775791086283541375080855029680951447665840238486075804233086390562439811219827944783955519154132369135154871255665904698372740697929366462540726888588778482998651977738184142744187534235044648665924486441850381155776508853504708211231145943469590702528986420978755328795727321128491016511245263495250577936290702685967080521401948898874921836206932992672948748102274306250478636724135865848042361334130992150173525524263180221364155756205130614687345732378423956641606277852919197237820397164186832122963842004957566277684813503336848113752308070198132688782359799550364265434999424116906203101295724447938065301822704079117207829129861038086315843729236010610520366934643397705030257791147854371347910336473939563014655948672819961660369410401272305582841934160646900673137062810597644142912016765667894332140819029659356459987895090619843978393044509338405103792000718592180567554376106654864493055114375505103333491034894886294668331088200471942773009681590347823607989162397310236212083847158189014421457306367169006547917446786227610552345778257085603560808605802539364006883558537515150579250070532528408560059772267656139198597172662558342131141263229849762051594201702634585350192880681281685249141634662129421581783900058736510434628341065103887065797628711854862930754939203335708958808765811992961751022709033250862640709371489624099479809276011648008598584517416887654296451082724210089968804147134569229681753560921828770137667783416584364783728562106603280310187237279172767072131348405102832566468374637870322780689020823778771613380715339476993476157100050039127310685153608742217968252279777240416923269040555370006520169696101549351738869709545797200669167747493343127351974855495040050383793521102823483725980524264282606446784041306460736741482988965555247088609856181488705314279571379079857596449024477977296239508180805005165207941151520271630601194058882903287101275809884320909915179515643269118991742550150403135345159466524108705041728958555992823001319524830694390139217284805493110811997868427228012096215267697499681986120472373094770338914205227518788453780727772212070979802849359502729274875107133522701646821435085175515196656130399124936472728868379961026127029448391123956258702166919670021220422972077054639808749578485066924423360294474869941633265181256160306947068108242328347589565990957784045461031665663313438089533750386421270611397871424162139142542946058738646782344419269027482535420730350455215375581400036134302239454485081748400976708462496878576179104675021458529736283352943624140880993478103198137546551687026485912781327510193925120550615074179296482438016738085863805490638512104870354029394814069902298091617490012920504197095179477033863921164773430809530180888763336951566513827164827735186415545572434577078236481836868330348043274668649336075270933129413571129191867344106449876211521534298538066144076492208864458738990525901802014466369024612611004584472451302755726714030172602510803093951826943643483643089485766780569687063969948839644122975158430259487661974597039746996831467950263676493808528351906386394215962180522868279461767000841516025203488895852712196873388775708840778433019826079235297404653480652682902348999983553497800296857743829043263380243344389015385950986361397385699640232285246522033967355190980835105088189646953091826377358079003216086284461584482708664576826996900010431200286289776211734077457934923085752780717906505968126570474672408117574616188346107970659529859846826593809348138191273768579234026177079372886434737411849128007155027746681415271330602122411853441056489307720369489303097163839921177159622691934323690439365370285607810322744211381478061776139299428172448410500845880030206781949629346304157155596690006045523244447201965617010299040966787604364687511372938752183787509176201093692398278340097684132769099929567219944827020790176541264499940713079792644429770187445922514044063529056054145606617732032046015662216591277614984684042852151560828786624148705925137580215554309340469033979220765483808264736729822082629223552321128340334333009315161723746803735849465355520015434216040544856439368735100612764901406965024873417365243190271289116861370669247818531979510966825743646470743433886654982681508798795658836504660282766139339944432075990065858362095038565824961987158191358716587025677192657864549669558297672432827462259143451258873517777276330028435401158497947199813214175424361857605412647927473984314694314888754768603447240946041040961739774059822549505936601556132761479581466598180903051489333633701962672073856645579638659471474206353987392858170322504601341669588782987412342100073682534319823042801108973192076795558069113742814048658583772737884178702920994393236923866236581167482256330120833978451711789943984871577535356071835058338162171512473197132533896220653557894132039178835537306117519087885112396249948369952663846733554803930990634615226447996223655323561298892567738457914761352309209169811206266108327762236900723319347210856389316967118766661816035531714006493040944987360586396683738377201451210977643573151688303400820199373297346297135522180066081905322826655913624634808884905545169890840315829438497873786626348076984731462338102751066510456506257150942677327301621155248419786700733930452227143687006795115479884487214854457812556361923978459306959448306634757631426546962490333121553048968325400138433243099808658750424478319003120295129927606265819171031404067375615392524281143669049778549906932360908529678624660155524148637492030628081551334559353772353632559378859553511047914903126123220919147606560368179393321357738966724729133070152073317446439987663179785170226335853053555318253220828980551687076836305125154187502763200901096534566221985286664682759807467083517853308415942640338488746967667834146458926219684679088927320828130464361068754839348820317197106704778882845018356666406411050181085666287011842022700986072240621043699401971777859481581210260833683342551582882188844412449883668745945020843058417757052770536268647743786395330432783321521752816603545073106976662048223308369719951968201361756700113442450320434963199061991235357530812348637451919781828711164445974255698185429354714907211670608695856244724366395865311375059313339380910987786739279770508777151884412489488074360949758527381167369388904502180831243344875671074222418719054306805440573255715776805565353360963428825039031445235261543437329410629506471916106201651189582352171479490196490741982069404447835855296887857458536026213714158530599268353225409364915594158952031776496929964779105719081339526408808537220849508200776476899760616463692870201850082324785368311257148596211132894260247925928114092226056705855107849703144426002917111428074702676168891796918606292529052577661770534544732592122528793786585537159725539072230759879112910956390852390502344526002244619226238206757414824480391782102859193068413737207107415473932304742171902878283033504112228617700047235651424277318455469519501640632022144854021410302511999898027570156560612945282361165456414531897372617817009227177482648301968077098481983629351676162263674440637010391254996026366299778781527713999986451074450133496383017848611055852767120314031044809075649909078485963926045523440380905285202473855660817018059299004442938652805578235551763188855264027480275820584418968112126143883849910138370667404773280908361741836756722969065451068997417934722859007238374711833153863382579055310944116664607506002833788999031289799123331376135234141340417897683885621480351883715950249923388327750179587089606369295321126459057468008940146186234004326432618403924160565687679750909540890813681395532032201705671138351144280523010271579125823392780796790571926955080495104077019989188813915467062514855311115013508000073333746877356340852951767907400619110772313573075840948611199030047555662306531913330038714562895030996303138509229895854469096127687485066718333595858326554223246241708302311429101168688378286984245955839777344868402700892531049025913902168532914477101420718072638937703202485427916479026052536276554074912210667396391894498597779260038137398736256229219514763404661023488080749786726269648307374529103110886533641970524424373233520650135263795288927053391599923761044625162734236614996627695842214574853583831422153907335230828739206186482574938626890577927719258458198037038111903270537358556147135199235904343834519334664432324270055999388477249666699588255332844832277187558221186282684118372138410928828375080065743190422627170304689182989766849364188033167781333638263008083487497480897821176080579001086506212137696312353760681125537318481638361700804973753118796284087870648740292255895181049227908724763180090600414055335514935298159241496371594024423891769676147446440134074372767026376426486551696754734142156212511663311218475140685958088332942397740056220036112000000091835444446823785005391188255969068903823775940538950459632676947649826311390360747184502109553054772467192655284598566305111728676701841709304016283762784453750658065759766965951795526482358920153165850462091791825169542787262032293211428198935873042575502434848252779554203787600736466263286336144544845713740756291540793061112331926039633880384777821528184327842490178846138420350962013237185300363702353711772173473425240425020314825661730989529367567059406527142247603221260410315520155610630837457551519002360630129654870805953753209221497782528206860391664642591415775809652424745334360368594328608212498861384285702387615203623333623080558684713704163807038973732378613214275614344515801307449061030590195373434897562051251535293175493308353229493340309372558483261196406916502744357644550380465210885409657583033176941037521143663731408910083590515449212858262736137168818182900966822460510619393770340491550626459674383764443377490217333141509653045434097531668385042599660102822400243590678368495694946934764960022569426308164580502692420529242087412982604018010715413243104494352295976009440558807209560879979408381962473940412839553653590016025208300092615902316744545622134757080772337742239083578746614037365012106759111624699384662658863358800270482390897521123766476515642379900873478026098002174110114384979958879673062247458130412776490043822072463158526370706047498651808322431464947675425615170054374228071917478677115611246433365154034530771428242872670484551488762031812287359511277945940302158372942978360008163537903899485825190915027992936651513306293082873842329689890658431284483487235869768075255388593242937213578976158308284175602726908581871408295128547982487332689120826117180140914090136287964940614048670946797028467813725701611198639413027660966790117422865177631775085908917710934403796064607843353587584731342437427722437154876738194105405684312522845256986862144046194725605042808853127427837921926331877320507445378116652238527165728739027944193484736846563338931658790912602878095601502684042361772339133951806585652482352133504510952407298921432635205608732312635685609780939297197138143147629235977068415603888880446007186472529763491318131089796685638964235454230695515862350271078090524808647473895251049339507949218919353782222727275448124062836660336697476726187716573490343991314815364826542981807600623020363984700783665227137392842971174568752303407019307751404368626669890426982938744437326089769646568334374746939358132794353133774874163092316628442464366417842988870886839319412171042152510896658190921587828435459488226589304730496626900861135846521895641772835950802789225232326039732451305152446209141555250426007831419809254424439384135476965640050438889031868119986335674902225250289875384260282213452971985823702631522763078883677731117132891838210610739721497970039194437611009954029479215391739808576147780651025367846602840349954444338571783610827781137260597784087168843622067691696585760834717413807455466991482610951570063608464073475219264870493640875268961835016049623422205546514893026033224812800533358462954804233157705298208099947531341120057394685718770079237156078409329436887932386722564626798055235839648480356973903185243445337197370727873143751170775171510022290606363878515501816408254697122437635294944649908618714377119202951333392094788081335035428526158628774144867710290288240371590689994054966619242161166301274561348815611840437811527825935716579902832438386428292705282379924615412244739413293479159692046664746760541977519718107675041573117827959135392691570642343086097118180594373469494488140642910153377898507191621647761186593145122446796301053224760488618632495729926603952168296089878488924860479513408862100545128091078380394673338667593496241565052478935098795296868758862262278639620463826629110230318431621012963190847495518307318908660760374375541920226890219875448679546139899934303544314578726640344530073614824222021619071720790016439734660025049133567961245446209329395995474011180186568823186403849325659581748494050722372371871382625350121052781041176088597346981489793085790591173215729473536331546554519817175717550431118264723330577177428323053425384301656393745904715168012815124072410899785986342040856422534168435132067414745833565216426649601061135956862652729604422121908581322844442267685539306827113373461825685915432738793442108674647897060370255310499192207013484662255863062717186794446608904989357018891957090056591690466395630483461717857223686459126322946739104286371024247381406770845018648705738471635981304987383855698258105275177813272000033785025490588871374677819039403445628798768074472635623973195337518470768149732159848983145551672527624318980008229466553060461324642325832217018894527466021352405904743452301413974153103052556685821600971290587950422879391049513603302717032762675655319132731294327358677596616147217938544063096422527015438641800885560524571002657264623869637390201361000026020871408960739659476163929042269785357539174327011852274475576322654331584777806499890269830749520659359997544223341638228586738051312135190619901376437683981762969525018871238881886098290556735096663937057688364973089230109547338544155048807373615967340205216581743852145431021340550133354529787183294760341557714230745334407645939825600742279171783838404639093892751467187418658224441118279610909061045546121312514856149556725899191468486600085045961134564123974384706217960558596801415488897746272054605541664860426348885256112495255946752231144175733065849098399628148390653239009931147127357792255048477060811756845484297931259282691611374966189653554266277796386380347195711900043004575376557876754907229279152213149290428411357837707001787575721266083969848816772476446741215387418314586096847237034186907544270379092807459988604383134520833414905460719426943608734151846321448205493020543340634635660759329190336088398348869260040143525737574873270876546237187004443943025861893737862946717474420918099080430618141342547109602030302789015662511598938856068763015543383632308596834244703554369462758342351319585085659674899815009365577344295768532818699741153539973806462125201720145927544142635759000608574789232548994648198550376640192840789920443218543525841743734147432311668367104682483550772524234513090300204961711502683191058618456453896424952417901101349703363990231320607004677745713880726158589284708661385417108622139096279603322538241497192774918835285590111707055594645484838160186583566717613679850963895259307024580175051779050084043607252488802300368365623990742854113765465886914353040429874986010523668866972713286552012586737532133255108259237024004154298511069426482532136214918951761808526723938372152441204431516358794816764585632605799050948194302456946827357487217280061297956337756418417580305754296373486186545372325411278119318961584117939321815454965085662978225001683249554338001082554534242084506770149541134760619997528654448756697423202029312305050925339454694534973597990235900808089758378368111413242228670185353528231856381101557296304328797768759808476587382540505564204301594049819705369156460022893662700666610202075875555815017608935096174345316905935917854592785703712788011711991025649756519258807116531339969014551642073618995809928225012468748554153388522077116932792021544527348283215597909335505113945684070109117958252049793123954974228189375935622008794174349814207482280907179240060800647100895798901864468345151038633145816031155192217270216622327146480343847428484422821798135348892443833259676266091337195515225806909228202264947076290865734109374816265383801771350390143535886750695630650219664439138760758551672082468920258819457496769305445993260232581926543619974585794277298789036847603767441169693384346260895166389110954412094623063444242264806874931722052786465410450834755133189441919859557509926597850260073009450425593846299438640709782956453432940658530556715945437549555334197308303804485637703422415535549394355670828096138477508155488924585671280388554302962949606777195307423639465024223122969365710463118863730656277739761086088320644869074539097075638310460657171641289188856990308200204306381352039323988022021281632969918210987159604410950103779472675115336481337276973428144184336429243718396199472429840895479593933520308973860681029188700280632009877461974877890703016728101062833519775141612943786988763422149644298820144705813964413919674001943558676647429325993813812667520036392057425676346281763716077495198759527659437132190129943592852204578409111234000753421347790059889029865358435050246013459157705978890228176855822957356430758495294516883860087228336586961281163233391934484487816489229203799264458591674148778425749646419635388026407909637865063758967086171266617473654990086513125689627965623384329183265172189358794796894977970210268909392089024485410677046874324465499578412862250818868629330667955822600187423531896749996078062703799077694746700048457716010762804997262238149664571600919908060637590195267156254053954411501326462980808447979189767411442423550844212491491725786439386279665166475664873101216941817171115188541545217722855568084179649105887972648688048493597778473993966651441143516247937683851929586746358682692197163184220667767783500734483901113552734087717545614470690087591876356283892525350618826154548497367034780141805741045337563420562243546830442168722427399817412431012376978831717703352706021903815886524904816517200886881768310767537336629080286321243388825949803097670210898331237739411103710026019976416040764828440319811368718761151184152416641959319450375678362704069008854053609962319755950644706619007061498885653934495498944994560667652984813396055391883227171339720160551551871259881966839324054490797783098081665660054479087145583631985491445647183444718148042848474778503267571994055047901663933793211918836348436514326272027370874778582272289649553012292292257904420215509709255413607183560832874116146626845232540680088000903266259806072614994779422186714099813580909449257100969343596038464331245456866239825490085281603940962810259230345704786736336394874162505628190116788492250490437549048778288368834373470907504705669824874039730127570458504127131685450024901055798207405072682398479686438068757592521670298404728438926708393753053545400256915357763396248196253063938970895942634942539458656771650189417070393980549588987971253415926175010035664218913366241281297682352029910045988233915153047579857167036624273302065530329590176472316563084703294847535413037320884066380602154580254746881837410134851628857757291404204010069664404654980706320316140387691263162497667626097845812450321864902694856726175137940333413200024105359897841578265762467611911805378641525179921518476948432460322123802643470138282321368718907870987616276633621027618853181944549487962792620678279717910456648502750944820171183777404300540517928661680365423031667352708046218197913366600405574222684691575085688935327175813118285710981924875396080039889090508636271670698084929574241903945678538814749576846213750002871349722135165359287244835098875819430922984740909073224722761190330082437856064119108848252367485848212122070848640919211603208155618731779275233667062664832339647579330142914902283730463619725508693120486961790364796645226190363791110467087413612121293491477966034929649917928827466213340311860417268541003512373607909794297783376410222391070785335533591751903634204768995121503695896725589938287512305526239318022929958914676159183923585185287486022913456385608413368832852867040858269324751921365248803495642720869799665124944050165864571653208435692298450433196392872283253529865132254887943171686595857524864377319860729836522838700872046039932745545925269972857178620881688337452841668729728248072027462185613335500814660118142408438437494285779043595705366304605553380929894891544031087706352766961780190365214229956358472342057949523460516024743285634510346612439598829036681688869691241611508942015948481846883331534711114069159608565811850974977807929648253230660591667338441522090716672441927299242769182226418779153950511060337259338402429080255867796764532300394549617587766248109148574463016361583217237398431938475151553411988151792507619947403508935346227950840032221620258234961653745533577740170114950828323293792967747583956040213642854058158267575303170544797466968824858960697553073233123371672592023433331806112606400519716364136088313510981713728349515702178304997024262858507726243042291402258628088343309022922850949588247437860274397197255308048067917708604220415923950601487097618746700656095384008450141273364172488004600652659320592398717841970152865676829438686407919950638189457940270960693125227457165960113970369761121810654437062675416336240050980585382785502887559434594886827869530817784689670870571701842912748261783770587479604873897769559181357637130968055234241714154635142855544691528663624865480350055386401263158516312062205014346884585326249394333356708071383275615990060743255841474993968199607850886271764737598534955488654404693668148879542864575905176535542630132312146356614508110344339290412174487404082486674232429327090724083380540128441514997032170669510546640993363512161494134192511201106923569328626990078460188610952257550535212981544753905202019286333834413118704041447982028451638168602507985499067095761030057023703595932085415143335336886564564058104641561252375927761837687415945198628607337802949296035193641718237108981620323983474579309694731791861281947366032494806034261217365769652887472860048905976737588681079019328376558378699982359470199285047989111368814466055987071417731386608163255134009907530344292695556882288796487924609958284056581425852688280272106357064406976472158844722982778989816529942475453581125487407020042588533254521245468912869897620210768728741729094898135692633923424796366564836400236867550821355531499431494963033338759129771933362153243477689424961136450899515230692093188206417842966652222096097592830749124162115463031687145248673217456833362523969635882095145894786725453934098827060123561198372042602807399248749584994429638010678805460661083468710391477812703598015687259218753924891057604332968723679526696095138206907991746453796545120544135614372560355531863670048782772734897700117679991544258429322644545981237543721430213270028291638515069329472934407273134371188266116035594310986142792966780132339462784564292745154192838289046964167378394396145073933928420516379146485995555641536049949639233922638840193817861467790968726293762946142176610662969938376479279519532284538761174360960587690746653331628563090955076333476348745564258503378965911324160654435449139305336676632012476606364388239561584275823810178535191587190785419278135845925925853762092936309312951757162518677124817133776927260255692408163842711177372172659314992390161796951024887388791558886614895085063155255102834439249835941323239477871897533463287782769017389936244757203212496617358978715320968263512043795885535866028497698421801739910288339146579988170776844270904258404735816541721711620773138439162509081556634906758891048936492124231114017653069433486301312821707870235939129018502750586885724339281369183436890320251317157697198001732707581690976216422992047862637410239562114807038535395052950931039003622741913418496325336984348628917741542315054162855209227095957210600549527688628970942870525899768278765741178040407436218015127383015673999374237519382744141951606126440769768381750674056886114317711277586228019286088444354267996252759458087047157126325038036710062086188670265004178683348563678360238753313705827271970530804070448892588324069179938999392819415030244308320330312224536574515655839845380650701227763744907381442111214303573915840144091404398179236820648358195517188388494486911017021141974726262746581575117847589117267494455214022447073306616136862330924809274323417407058211693253944574012804986099902588423308756161233108384401488277018654581484026090286211811492343325244826430871717845356301683462979428262706894165181034374002782996629835393420254790142552005661454678264791457319640947283013247234358819681883254121104812006970842926866706337282594984871694296592574447184407429641810395302080535432846049004703558572595775146077013952424709647185539583049833681235924508974269753142324208860700768701208928562265493523539023699862675296414216933409388364466417368334774539875638596815198315348435451879553597722224592019278869314097226325312764560445013078405099456480290251877940704406877097496754221001416970992248088764726269700388827732293143981123388277043120466388926145182107865054420392282186699425774610314486986888825113648663352266354426691242605018236315674159598812135385663449383322211013174850701606347051141214063710613075568920840235183000091148237381838315534611948214783265155963779192939210604448784444172973824641185373405341429101843604327089884734246964728641154279657430995478919689033174906431014534553877053117272049282087943734762872502090212044890199506392663728882514579243304842394917710338714572551613599995715890292448006469840643867888244358853967393938984346871373788896436814135435313050130513932086472074855292454168569186178848716166111612325846686874444358600895608313654303592638966660324981137541285474275899062997312578899374657523968879121765988263271572327874237154609583467632900136531900028813142119242570076856231407863603350406833970167308586097000191039110894835586111012130237383859847702528423030294006926027006149027537361232920121716945904935601245404814366973900409640631953397005341139165494829369798378270118176141008037711946995018899348215733451921704960088279709808271843478431712311251631499799245630386462492558652392694232015899268364192354030503811341135832298345743902774609453557141427130066024867030107187552933686040885834394579706158065704632836496331056726287573877759185831535752269820323064963337089997803941927949215459912081985278149923391263288481824825679105246591667451638167496147442666566256104422627034894572212995457966510185755546755478107449940398794086714898836604576878105183091325878049072627618562845061673497365685139324521963806633152708631218463887286253311926287978168436361608648964647354041824791664159016253701935026359605395463729801818700997458208720374845596908905933039902409263285078891025694410473546877917027475223954091433559065695167086136946476106150392936810443423046506656155566175437093766873699187640231480170617160905132210742460659252923598572154867446974440133364106388143353345945523491521216016272114169879828016149533839956348507345101066539039916670547516555322688385445830860389375232386876883869088916245019038259901272168189090882294728092551083786287241395737567853908986178078879483264474961163806523557453102005367121918016233978301452258593481238506989167038931464695886227454085367054226789244997874415038810873059650426529558634450296829715642260973442168409598347407159194747404615667173671754248900521737741724120715792827354835332774740305330977159246527360330948189841621219710021494357610515831096530718096437352921149317858231499929884523852062214150301181029795743932802990166312407819716238215852337084724704468689888458364966039127900794816863745017621033056714257815843552150430209567575647612682721822870858192658577212463299691496223692535617666190070999691864046325428123521358799357227135269932589454694073977454610893601270721962515307198844310681856242921114678003070862404220180663038397538396605277337452186109931396599300720165048936627801420910859231046543553785596267390155192479997041647760091493928430612409744573150707780261562493370598860495370462043702305527298469200214484074245513328995252102354954831645010906469172793499417533888630742075351509307651611801837261120493932967484704478988920202214090457856122061674599444900818407416545417777005577880542342612523075129872014693433005215783154193206304636611892273932054159037057826397131842592944702118232539562043065706461228313633162282629869992704946855767358209690979057523167437273391546697390294192339167850946330842140502401043517309492817212625820031722883349124910021306024641814639684853782737982856297913280157742909699357153963050663902813692791134987875853335857406277437865351119266743226309815592392615163849741697178502198536739339594280339750127868961789106724727756771469005426346671304537250613536294131833012841570010936132352573682513907722820406591926991567203548178118843047705983248113015473253643250842794870956316884471622660534380392969195094588906190594594364896658465660129279100291973803129939033686832766368815831612864412915634625955202962733334970473797766694211041719823935603706167035042768075858846373180553024026097717292825210120566841504187201252553266421109446008753914119329175637005536325141550563344154884401147179921184350793340859440522377000628664295801768289293716307851744986639328085271217735281236259555675330151477492086215346212784195939158942822766527914610920593963625403905083648602030156884974514469822590218981209020128675924642277385245035637893153148892521449434813323290419126698805655608932047611195379248755211559975515932000752311505146239475129744372491498315086657724650930251523930926071159495986139062552402880393504426460690807054508868216280249532156376839911502629123851457509809349637012066985553960083672587817222544216233143564730217515292224153488676998278373431645031915474652707118401928713331542966369589374272820051818442671002129124151933458696220990099701068551791927422691041640754567055194741981488189603045737340636147462865140770300794301377180645670630849651035313425470533265705410794171358956651498082399131136145576165082024313045135751988210877028398057785321984106476116612530298019073199134025087950829662580762395493429503658468090020367220608876379264135764574183920322845644323371387897667705307045560730708838152160133991801379546499079382037320861237421011965071701579096165357264554836228153570575894511200363062954701971592944851971434430545926216439241738983117440458208870839926268588411087007326897225009441330803705956381101507715627668773644759638866928214994517559649965997887165217917381572709093645745379476736839173845853328015135348338583826968349562721102037072249289521664404402911020670849045108327961048798634603328869698830038064027590690103376023456208162604698460832884236216464188390842731882820947240674460318843908234626516026207649707364356598123090057568417197618530585069637272136693445435640462934278593085822775609284283253643370678010916275106203072022335425358324081134089883826592647960584679400140667256563712073135011078575440683849779971436116804414178002348845314382009317552129589645102128275704925253070220826152571950058348755185246742748723461417753235677397873248938823465402649181714475144133068894696418016055544008402651929575476336592019131640667450161614152602460099828513464888138435585809144599260413244910864633426205849525983401801664936576369529346448058195914551315466310653655978909849831207379784456532491045023326657457891043352699188923444567963059304174066767214485847840884586331371012351617094944908470053125416126289994247308464119795607848707066467229799636992212222996493419841404857464457383340649315000911587334323160147705363788649962871169171842847144389294174355514716802109010805124249456833529746405068806678629111899164931827766088800508122465849377494353950683836274072020604016713576571890365411217162995845163423015715286421703337656371148730720564877497137092678329080269064437069665033796270344749947897727038835767179593326835518185596600107745421592483604170355295208762779741862701110660434861860260523352559718369348111752838163712951907047701014740466370009507131527200861148277878147124791146529110713163260260320253527043243251928913080656603259927379575939154496170758220603878806420692253878146676148272837209698996469390771084404046976067006355593959282806868163956113471063030435810261872840422270014922867144262465351620101246629020442758923457803630461829017517633848904060688733409475597222911503455290373897741135876800309743226955467316066381407081526091943808124448758495990635861074823755388269827135260667470836795590359908946500506487940713525297536246732500766335357723671018707517057346307653305393417537952738019959712333315065010769636876129012548232723193239050722990009491122801403044588417779483624356396048012183692975782230548989284653190600833923091683790659164406063978271255683567697137835752672066371864267719476342496960028815898882505889505234980150227238083584245228882554467649209403538197739471929826634985572609596741551450061686416860074971294464439093456401056384433121313911844078056305564581605220027440951429528375467640528723378038238890668703335834499679148560064935241256093685815365511586257319767987497423292239521683013343819153436323438659163444048869682691268164591609979635328830231450067247461783231831046176891390937285303229521239067826848392742777927452115121260068792846456435371205283240186668738269633028391066530637306843359635982918567712501914104247307756987218229251870003966428977111407235431141490143110246584953162174549942115184431603045558638909016111805415845587476010551935876844440548916623166556298492698029250519116323567692333621474550262100371265169649299263479634348827252985543361974817893029329592764337663468332403782915543337496516701528409709838554133747638229383104361069886928275682390329025028946074498418922949895591682560062218058189175467468865451681898623549352076419332711294214563645694267024713292580507735249409714888437567111309754767376197396194523618153207369636821640150887244815748838248774096630541379266356747368814839001182534145831650238079323393083028878926479044572196378537565376752995830125337146760780885916696269849877037057544130217696150188674758713424735583662739341834315368444629390783997452812775898287911402604857801212423323438420161993458676400745976838749358802101782480938534106003606262725236065914548544785909533142582458972203855877846821474293757571862814370027191550219115227328227261971728760538332374655382697988543635964158312409260147687396317834181085034726158264424772376182909966917584559919926490889750504395992123556819874740578680927985199743937349168546228301676750468180369717678632962837366054045902055096519355216744534651986249325309019732576282655138757494779561915309615111626321382674607737956870563157259789912226077423513219252368986270552497526347948676005416775648050751191075856707289592208675688534514107367737619674386785869920376252156746448637315742578478893125540100540966488116896869444084343216130055191733912784985334677943566200158780858433899625056643355599059291654830458410655895228288583762591334401873813238920299473519019962585205032522439295571371027057467533976674541039069429364336462328003686432327138298875899741221282654196594745131612450485662107152804229280594251134603711661002288908032802755821969747939173186742567604037037818756687761120745700840708674613972427263920350862504146945471586041405513219638602339143442087908371557768329048555525186150596543730439786372984078752322564660886150822352667788636691959177571347429975533296251679019318094385212981149925436848149042178999919493541988793979762213880851362898128725510815131801159926768820328156751627743173746864095377569452174468962312532918293863640338479903601894832332743248349073867926407886960888359386815347586853845542862725763721826408045091953227485107462334301346579117095706287854970529724230600702725282819431927757399490399987198313067303327158420617246722921462729681191207306590909790900514336248181820157307384007501439550284592405452037916749201932968576039112415157130320499202252788672758771647502834669729207235047415921960712635049535090473726404971301896900755173834424379949228400282246475090135738640384221292245586006718848616291440305233689644979246286859110052513300806623927824221162223785426668217122549592943006190643124594343628132281684863087256537162727873268945718885424326757729793842949924076866320013673508370225179228748491035894661138753303732501374964085234780752744755091758946440254770910314170527474969306354371614069256856225066587354328502432945963185411329694183990525843538123496688168790464416468273125747692534674543212197228700147284287498761086838225498888109223842516260795952718755766464315452557564337222696424097197764145023304866348846549083144194793987021824458146372737181132379486004721052384559809451326753608093537375169749201582878584589825508414376431937663841441452145444795093526999610482203417355234084842524436074373862745980286805173704571022595186590657021462721605770721816105517824942259536219085401179312509707439657951257923115094134200511211418001527624277060423320413061604845971226430102269109120950765681518745701020764386193058858328775759624257894596854955133363179369921048361448075869990868116587977513157795677816274530581973030931689035509472820267095265854495065170684174433697121249942248308693198428587895197389168128216947728958981612068898275526091911734619622178386904788046348862615275936497980847846600993579358480460249343921674655651402195743644640261981983520941877088011657506558934628623132572042840961175344967173343087324159139613287747735230945363535649423249093778425083033601700101047255977661146283290766991369783279190418819823965008444690634377366218653810086064719453768050345428358640710221195728536357993376713090240165385368902007526035289141213710142231234150885674529261359863279877994561464268120806880309200904524721197039887008756669676259595107397461863777544611360735455226954112525062016111783496931195895643011817946751314852505026980611085994975350432267871278523668463478688129766954436385870687437526005905510867108698011430919436590646177156049057277175779921823828503790097072736747821194015680902955492655177002308317895577583997212351937524980278799569951958532507370991107566199071870053511706033507277512232565783529605692590329192712402412722927149586049462714856483977967277670830462798889766667892005230987440286760032632700052201222174280992557540259792558380216836769050395675686095930541077557253902689454522756796331773057628784064533981264301609171098149929169822408684964953251235178930349257566738539467047060122950733287333227189422376706603991649442199911650438347542135501454792946662183615807250522158645328157975324995260198259333220019068648977222979486187455890828994373655200133167379104649416609909869859583813963892635382358697713750541731132779027408025824264176807507616399012852019785650969932746435636093172395719089886165013244077360106458328655672579273388223566047586271509254626309287684942506508692739795764871106182178241925177566721219589807246015528174023534203864496831136268314339476408402295111037072017920982436212960497302321080306607832556506459307698302533055270867624722628468681904853063980514606291276609603574346864735327236026193617077921184301747462345034596627563717871813779711411599621736847989276502828660211146485580912539735235197222661037045042012345395669133273379675237272119572994715274923597222726947197094180990009636070410851976688085367744253543412333363391867042976097913787882846304338274315167698132355049243492176461700289535096858270442813858137503667483039013012339825084444380877619753501047476366801244879442972199165541244062430142144156369161459250909558367577106441449302997395940485279206696119627366030999493103551060851402088523563657523991688761587990800201205215733032312863655336940076920886426172926428277444926617100405013934258930526953216528116172419926569517071374024785560910511928058320479998737168225163016507494379361157939723898924344201812823543414534298025747172715954260384597290119885203205347231417960471353064673710984648269127512839136911677434525654331633595476389432241378277001674373346389835350690208564736926334214417229237462403619667890063599651494029050366342913074872121658238433838525061409396743348907868833679190716848171640052034725284155139813247900586933199280235433770010978644622607307617563219395308097151852929578109522009283539400316683753567051705567201533193324042275273880927163277920960618342124755637785349554822326656319245455580706833583690474437541348720911284776148207194592237246785856274351969918775826075831960220119707276325892149402240689032581388363730612431551686469925444910984061433297906407325007629956638361401598873735645240133687030198120633209869831258599774420226872967354428355967459598553252284616921023737957581334563639146054255294712609340654431468578268769649200954477377706018529033935696165366235629351844419409269567137858491212123169207353494552056804139997398809078275045388227860081369629685068017016016904436421149138311842881586699149360694193199057662055850341001306659330699209753487547746319641043222766018189835546008350779429241052116235653693772436711870521443789714574050606879364041566751679978068735437599771637569739693365493864151888694331019586989109663237385650298601440100200032835916816871420595892336580997435938678231142084436895131499411407807751067318673434713303516880211815202503106118982559610543381426566276607784519049794163009509832868192351976909011920151682137253040767820556306534258469691401217029247723805092954982129299097956070587189526767691873755930520651448175730582320001445384214577071464799574821277455015289139477604845701775696387574654880470415737551454695613599524205022104963449629478655927921546932476872695018188084237323265386966529570295176043999191579697880402260069784899093549847066048499817730270168772942608802053641343810373683868669611447165874924311354140801528680997555306756481469450978301461902529474337280657246452729256521867931738306797601951756341801832267310237232292228063732266604191750495201495587839804399118270885833028805377211123235251595266149154507236672251891041200796377429426299706010413879509579059282555053889068047928450582303900034763774248373219273926429905471836650891898231403438920089692140358751602311148663774903533583477234392546732588465556514975482368444958051168207969012404517547687771397551744667683776456184756706684326903997361196394715386313760144445450545116725320696357758031360106200971178936711800205466981734420132957235414927838456110066628069953887442739203891516681346644739575180860646240880699934944498735540577945956625911722702992853730610074642414085800576833319590954374449651773057981973560084981925433058770857703161908074438437053696147273956313126586127212696418242062728883841800477516130467910886822674879407864367529818787756759901765766096176774758529910503814267508566439616443850630824999175106781072250671699396874218555995023387452191022810501499442102260287837661056608137128524001077318496491042944633552598961628061364229983450197398350359755531949632119820568723149979568064418031152679433353226691702835268900554951405563091492304265219072711416011279113277353597604584248434476757197423884487250939819722602475169804829252690618767938695085544404562278043563523572712618756949397349678476050445889141995492634349153515161336065039469098942165991259952237795224436750914913833954860197252081129262803451035689439380354725432293365454044309637070075655778251100265301712816410072055321560001134721986463515099392521940897884349015183607708467213667028794819178373466830176345892927816759570937039289791134355462965107312929180957082270011614164621666022880056391791224247221927204148249705279456592912253710529018306123145223185575244565159097635793970219766535824270939602432538097026526216391378938585542483639400838944851487825862907267890556626196134851133096850527232532077729850749841850736227584671236555399342639847203292193241423523131719832758518510980804068418856572415100377704460663695504315028562650177121936132772023225348114714080365980698023856452852308748060087446190834817464836084114145250694491103730774908684808949888097574092388236637112201884330378120294032836090186471462252655730439936219218466051227909745538836299333898777457838324387848660896825170300368743329346125943927104610590938060815433495913105842890540964803409153930545142866165100820734637725144211738331241155325947999751869081073022011008780243902179111978934760303339660827223358574527679145433560353752282869044267408338585144428527436207363098061094439945273799629317759745918320021636845546767302569376042505158531778247845123888265600620103821487925420974812150345083673651616167292461917344408242073020560764334186918936568660262398329992442064529640396820646726912827738647878531444636309405937466438159955735540168424634019779036885833732505006791472178660269681862811150167522814098979165705444251096389280398767607236032378694815026829950446963324859743372067622724774818997439533058887777352429679355780365401286820844381976386403295619388977391569074282463925102305300693996440494949731802268124241067687660516909066112994462918694771624622709599159841094987739117905717522711894916976232607217374489335022497814392028624975386251007243412126140214090397156242555110205326109975503935957671039864812976342957006156033119940817427422822288187111524741850806066643865385468391231350680184481613621521693281899685481587234014319897204998805162969658188832730858533561118770328817029071993293709524163404066631721300672179448613536914775512663854204171102465378338054819806980291682925220954901815322093527110179311886555159527499513544352412990060947098504253869400993798903379025913651764864752928290128927286966377778900794540157138917454378879074836028877159909274910468877530277268163178165581549511246659884943827860183443122659506262495378048567873923768813536127786409732978342483155497625545406249431507741603684506474714299285544149106045894294731520510201797785953433015349193601838063356553956652090133885280658438676946665920916185276527818378643171914455801121880608567310177713100861076573360120675870410172105247503837599253704174279036461908113160668865062524859253470071794138405711908832391671391315921173060740168725208957054175682510788635755106471758048606482590844270273806962918104270456693762593008713812303787596155199205137536308857896747601809729386697991123204301950989882122083252988467348296993166212615315127700140807869804992549564014252143613337191864360613104420134937442877465082116340826487277495556568487015428154489642404633587507623434358270844797644749951758367343718088999333105152401797762258428787253352186559149205073333143341160772026868994614730454106443229324704490694518599161775973759104609367635025471176010765017853446216828022245936894257575740597012999991790711325117072784897224851224041604429615485512571215535751462473791723585694376375373110335451613978702616307401054362708487958250531604986417852097798985093971864113395040575467406517984951973445978409281431707582231908653656281604586610394228436625528811431777418497342068379918001015271598458500898704929146759219855689878962620546974859498643396438329852457899371788337115113110963962425832523023088033781284920300018378308000826838803689841471699947104185223580123669950755458392288454703498171321751989286423813591729902505340486543478173012739367530749138579610029216090468312595079856113868828703751272745703122171943189159968528950582770205181079140141022929893675661157900301411927598163143850445076213693313236209206938347174589186000380823316288178699090739832083207066248491793711344053886658325515825126316771440513131590360682865959945443389441522689500202540144850166561660585828044883371455902041479916709092267719800544336539666992782251085884094943703388529021444730824033546427053358099825347466379467888130989336303458047523959846569073560259943574325733465641979859163087703651377049870537697571473431587889737946750683300214121068810215268698258112983877269015042588733448020345888032550348859974163328610651422396843570583960448741803858292737101857580722016215343623493712393778640735315297416924404404440396834330527723687972807979909888169329896697987578393388427146171898866638013798699446590409531284963358613771580189635450849837039315945992822144995880162900390219273248206171726672064936621821053906593671637902097324816553874851169338135605264792022098015378565893594691584985660434296310248085533151204127604155224057738969880886449673408776840595487820299964579452805738733288661009689487242587085603503296214516273112624432674223946447868765086899812143005336914026548228132331488952090939214300826353184972913271770497479113489253098559525251009956713875263752188941487807303665376557140608782984851745105372794507712991472580735490771489423328374459469429721277450911770208275950772611932388545828755002054260028198024350553070165070832864431783741715649279451686545478271415246346638513180007744688078360222982222964330077633615713291107934542218797083097107685516844141076193789263778232349967243417657902829101935870609031122831022095782494855983239648357108758263725315776477884521149119786155999209803687486525120578058612754901272671330221242126169129962400081961935735520228116538707096541828576370758560135515601261739212133940599982953289045027252894103202272315170392973729741134696309356771732124381854041085183517191214851658031665417064440671026802980849012470266859139612319255602230572767395898676494048597745645207184452983702032704779013099506949849527793041829019274664025917634918369899014626732936342017116042205109977393287413831812927139593791723175945196956214634011204956180771707751449346171439599697989639176617658506949595787724353811024565588181880157653232595183905831754937453252691215523932292871580808536895106995185458651882538447739241773461529292513833665605292588521940600316771134468229192189651869915332752472784308717800416588328733562866904962898232553952313349545997349672846772681318756319256254373493880328039838831075653850211247743452008168365161372924925921375416882628778845132284120460152419003904000201962881601714873928535412603802934053044586600499773748165237012534109440741355790437995108894409771207530093157051107785016365628299724639345918867285646087968885777587563960902677408964714088380399856503847536428601408005776057511236321144994247410491964427984831405355457456355334911360400609328210457475409954188713544001686131939048256615239518373696803001508603394958495763333368744290956530525989978030785249134754446065412385441720837606234484549883540099316956277193217680079677003852794323647085509751956861902585446453503247789599829865135145301691963070063772068356733274051212524908183907995937023508933877106500427090205475650890299351433802696660560607809054430917468141415842065799896445922929704777706037979674599207393024936466131772049331539590203369953536171968098063339787692464910330490419480525714679826974550575760392517425733115408097081408908302136169258919367993675441662621690570545911907982353778016983126901779656835805781824682213005280130581060223557271584700988065586958456203589880654326134372504565826287183962211276596478606586196060909470204412066316739250934573092577358232648149348242291094768310856996842489357148225337243961927125141423216973936380177011382049490834981981977868648099887754011660302554928568755510481626607248198545651919337099449866215942897517414308210121934856660683586920696506863279021518420637413843225196840643076319117952838326946674870305396341635552513955142824078113011109330378471968395609369631040897668965134543979430300341689834926033513753443344431717604989684792197759605696634849488740234446203763527748051692790100401097904905277641240329788154421060575663824403260922403586241552547964787489892679290126629841500973953492470750877276625133426268059555667721404074203675162243684142246822066946410179912070024228859965307524989249888629634998263087910127215575440069107003912501037425857220861504850451637641535906345586280734426411556738978194370795229448453437615729174856814103508061960657692250574162574354037558422203968672341182670063761438104837720099066698210533770981517314909000420063079155945025380856666223828057923603667533823535321196538175059747422424358313618594505362696522518892679935853065462318164854356607719028896696680431700725316473310970603322555412778358953751046052156356820121521503854188198110441384983609129489816651450953261264060188945563328529394716953228882449388900299942180745614477180316852047205246075661224683110780713026876888676385158008992549029234903872805097920725825217515819007268734946813242562047785652704981170693650925381992698039678522694915641057048957774638850322482138199520573297083367961286683580542719011017225423965521122431860912523209052733491181322331886833323994811347832514018200024653577008691341345325041966739137517220513281715359267496458045223214786078422479654090785221743653856693966159105793441398967057955247515270819622702783069714414577576214824448770890855520109587934632699447167951704910001174537522263508896647616386561028579027728886179758560680620833623785773273770079034129758181964958427663630724230283665606945297131347005251940831072092788514059244451285691355543397865764087014594433594372328009375708882679286438115013341581423298335029531239892754344293466751905833475811517202721455713446300013020543607553116707976561118785397108539835303882790635954195764783970113474337030115304327339606128512597960741453497022583378763373065576381600119546302416206965983898795727826217503167346719177030141806971348552914646389982585728957561201227335517965561776907174387077831571175049814545140047152321437697673389837854767211151152785552883903671624389646310546434347046184002844292019583767927466891252952364454263651539293411503816015197390464065659610430599353457740671705624647150573569015464014629964876242030312332774743183109571600433293809749669868301372372195726928238104869876865909611316625954601027852646381543927120941579480223558289559992095198005991744209253928354190919382149904471664020146262522397694669271342771112103810283558637301803389998377191987470045556220024514690793424287599492239777658077685529309486862681271458984119258043420179871026725126797034097634580207410845669413726343457652799329543731483063020048326065441562635108581655138468285403157344718526935669063861619155703630147068609165931689795687066116665253213053787381976594554249703585675827346608033364623032583555772578671108783055955725072119451900431862708532102650506393508441031729658908867514999489859050598469653987394376800612292338147267942553978143877577780212100181514684570208118955045003749069855257621609144638846975539082681509028156200382722227772789636932214294122695475082477701475870961293356937846433842653454785946989083486732675253910045730251673913634722007179130399034250727734886210542128929991715355004666769561198876151246606566161764983578046422306431728895705505725690642446748323521976886528223074480855286066059446479446773568653152087040144468711110641024754370282527554067288708674387544468116884445382032188024310757755937701368371552815044618875694353007775865222327568996388606545616964332294979319770257669561209177531227869103765312335376312501290993219458805471592668579193876161174496905982095839255599360374418565634281466294969568434662900573670031137738350232303123792315731182229759484720255518104161305759809441703601959046450492632710080757684824120976532375227025884307327120118256626788074780306375971717287109776858005274638930031607981250147725557168828107704416593485337482239581281098257568839548274084734113547029681041558964597053305099545031227307993932942152036744548942732843892283108551721253792955308328926964261302248845207985078463146370047220506573331965769015432018109000866109615757055039342173084387304701559128221203257350944029769816162259142435737319052129171433540614268948707298300916580944457035563464827872486094295669683447741706605331590216063426720299132857860027670621634100447770814585736741606648761007389085830627477895765920451774033650786824674236706712805398357107490380770094826639460985254977918129804878850040299863205238574610260799619280856101403167626651632399312130673368483314176003242915519073668564095450979423935051704341216145421619313401372988269514448804408838059262804859068636543340032927221742399462128620623759367480313887920910190102819610525942744445890051570295765878356563490185163930846078406644218514484430328881293505838943183932698104598742614380684315518788342488333453255104809970000696196482049855991550619398821542282165182622527081857354324785883266627844164310753125094367147793291661937595832137981818612365520646587351919039480044213516891185108048430410793449176442333743971760331965555813169007349755327363867453676783242529478384048788491655789026472642766815230949665201473278893842315816477842547641444075534297002403705879104846232081310854706919877997424403364377877116723698536548234025979765104319561396643386432129504066761096345102794878123700158252077596268975656580499481867362201206621619281185289673894729545723735735949105084261212026276198873840646118045343563927899416684174729622633880078281217337081898663668117061785072829104108458395492494894469461319551353348326752718424265235338411720388458269115797784173161485968711084562406515953374866508696084704409036025430581950158858662844677395985511566408229795884655300411721957806608137525589013010322940575223827648467579181962416193092594714942850522019505746458766446408704902537511097573651998760351583555684592456071060348112603393682033419989404633460432943502675689065010111597987503671200980161871875663174458261220055741483472708505974266004317227822346397381901118491065160032199511306945683160821044945058286124421457298191640242093886320164602682259618610229794218193515448639558735916121718768647711613747886514263925778301881104097388852540625492444669261653996268549580053879022538377531912410750602843190294062120980463106396489137356936019381417438880759504855661724813313899611253185019531518258639735270193929512781465199551632291340783624041296574988686128097024501993543616433412533218710513508008386500748104699446379156323914288108984439985223860347731069438831617285889380636250069899430009988218827275234890176021677880193758894140696435597025415123702201819717513856446210119396132429400859007881993011467175729573238317707844034003220411154442467430762181415438751072671217766320653075573608142047392199004925287689055734181717255160654809921208811820920664129829060854402351243661289616000179122942086264562018385220199249928161053175381265319577509368692094688768807083733812671888881577718113964269874718997501554089464145962922490170775356022889968232016284871738502848711717042917439884310792517258335316697041167519350007513558756775562643570324936743690084787324117577696981922960455849199392796305797810797800253927470012425915218077516856959805332608625884192346289518258830308694846277764650506186355776917861614829970946277063954723391357502429794605857543138986936543387685400146787568475855630092876358788802393823866334107428901154891170506466191450846460338297006698437537046778247833396019997060463028901779901646132045303587556444610571815693798430092193280872095442188283771729001204631980746042623828750084374615864066568820146753759653937139455254773628671365020048009322181687292249920910847430336657980121719193527642639076935309206654345719156444548841261434504955747519481228601622390098001339593926631190398835556042167706525195720988433167725170810975051770647757132326082508643235621679982691551355951541619160571680199717554459622251127800348842500037342830985422068825932906199477125972318357518250542132336030650153469473059520191696521701309021855096438825017185413979240442919919844671307751953985799164303381775671148999175787005227061535074333953135246633928619742705000097907666244697714392598935601490333924742384562258674472098617068567434865771438617029316267697347013122193901847898323285653139465041874852578952694001719209919271568886489848739452524227793525285187793976961465931555098829956203455494816433868311911894498023013852679388351130704879726577146397364423738949408830377188698993851427388823285566753373377206145243362630808243693836824077692883789928951687019248028492564331794220945721322616393698230925504695868189840765976301911384817061248493144248175464665227729294449260292379080989065861791269120439566123242477760290612203228560812369719055666465823191164803217177306186340244718580096155696829819211278441363608560004934032770012524429248112565337245697255132903284277951158830181077066589534876038597270347758962678302658944389489994118657907071454760083781599440625923059498747277395745220502529666149590850948109720609694408834268031918097064869322844595472275657558320164670616894910926317073908619575472842285073584320240575453937718117219079548833612458682514113618879508792646630821640608677081348842380659635854342581846779654049556403885085335740017948052656826185566430106227410057130245598578720165866600814694643516014839991635496828144091913257650946466572262151973026892053965850925503149174644357040983677495069005102439458549152539540489932989330368005694568934979807097441542528060805257013946499285000415874322632968852563805560167638947547640025171913693545515855450849265137559172740275782296246969645675677813150846650322981613631475074337178883240814428358282909073194743833003281150117071815670833645719089651038125906321445462648023147175187984149852511458315870302852241145645971795820488120840096857853242931032623130929906198375266385748156051455493773105815056811664026112007052767508857426755288839977582584984154081608903769603408960670355744805447332034159855844654342153387735865079408294972579129960964843507226838832677817716826689397569752432123455893522355600558014677498494743041767416880452881737676733965055208110827010295681111201291235463792173149050652369399150211673123742817444480773221118442701555160403319265679064979548041498377704269334375155487566780164124604069725201790582723737969753708287053316886885886227948396979144017595258238866213012602796692229149961079047917836311604843925180736082615619318110792152582232127619788383726756287171763239497071045635671082826350368910137619313348831995820727169244291430050142257689012952904226821323436020293601171839555942683522748239191699359799729502874989991419166550847371853539562475388678038132323616471272727841434770244938114654548495989500910202679856532047977074139112513720832931063896106818157280555104559522965645272046711017957832067486723183382672357463381548743689820756814753789835616009243087310510948048294728675727740963142948632022280697956786960591081733715683561732207659606062888108765903287978985736733555296543545763078480508683979748971457709031291661173864938872795739999646923815885148022247195842672248123100808765988212004777286259874386971171235112446277947030092867221209998941053991631373597413098054996856804177650886031762531566326137864765871086029573575058245766195739461502588473256386709837508285793218747596739989251282936335434918020440501882994944079971392330426774523305473823978586560220700342968935850508186654656086583507013479800917611988250241677421806379547298150611656758716972655857187976052420999862027599647693797273405033385020418775001107350773506840530643550905284859985114434647370883594367851206912273171740033096595688578857836801161286739458572410050344442133417783709825478963658149494832120939511325674205480467743721025887330351005756810309678128872401512497998550773588107769671923851413984495844679147373921991533839621007465039537619381735754302281793436662758317368395585963452729942670644667578655197205844976405974729267088989979395767565348928238598789234441947161013113826852345551551049532018740868854649545197247465434479516337230009062228925589056751812748212710345730955678349143728428647029286913892089567130087585238508663891362213449127591561452702235659634112753922431634328040033323614830501659004626945204394459140741603195357676686995297345499047786643752233845530557295432413735370255753655863635295637345005203174991889047313479329984666659975731851660353666740282734799758332330062300175999882768703208953196657704716008016920555167906022970041415498593156044022836304917806297631429554241765005475383328350267534237926809673618402822084294308830484191941570546692966082423134539433136744944991724527254647482233053380225157461338827046094060712476278589360857358766949146477697930413347509492245840748101050659720287971385062718787858100131566082072197027912250620726017680521954941242837261288846618905863467718845010183766573147035724628415368135367569444201399705426628755334806526704396106838468627076643901564632391760131862205308114485141086909837769847388857519912430902680946216451845589365247602738635385384013133327303171064126334688564420754473955680048872298211952570463468657000457776951344208124961008754674687847491892871913121470965632032764259551979809478370029639302132967537455676513884113066803663468530985386391349147000378346177034933781706099300912549113609567864845856008673626754634248499684316170525658143490617286891814887389703076636060918352517972633823241591017709948787444494481071052060959621417019484300995643543900145228930899669080626017967867576477834152938761877980615349370598215158077658022144138951719398812746843233768422821587808836030270690119100292073802329115809569837984313677803335639688127385451393921138333181263605243613688764907688600803017323640955306200651343656104020060214307827983296521277464982874728929581310652830419135204355953358527484506328801656373122882693411258261258107311823142436583741251593220239670709731775785712124419237838954907935430920579346405244556799107613123015194082690559635375928100380666754227632450479072165215504779635929893385783980474984011829110319960069553709276663647470751405359044907337214984310848343775300658851169467566214277891088686037467182366076752510085278485015149931225043660794582708921057703242623839760667903451095204641682339010799187690393345971443721140298621080599254279218451447268034297823313503534413394080781145337826569581878986728614497004004844162725427930320566773647787792367999261579253952766155920250939157750750129772343430302659475807174379048099808506470452319172877258008776610357515880920635585527963444364449125942376630036787330964030402519459181887337991292905138384284796471102950283646571258150514450504799462861907681743411839954162197275962998793104170331764856325404970395537939361829104756618563766653614469305701952471467847160774100648913810310672868014664528462133880327948830486804692675795204407801862158307729744924846544018655803147705539658298738053966903483347999436051472255497882680147195751236602512047422599863530602351443836459279918503745874280807523609148115731945890704607258920333605532353263995744971605844305058428768975245127147913153544849312689327833003097164912256443517788647640328336925054841185091975639371265583876344836341195958699804105067392515467151550280700604640903434733732549886883651930697412666554434604249850719091267465765566046320854379333245864997715235410163289676440357710421015641210116330071191800203306089583684288986730152280454323536722653707652204306495920631122168321959163859051169034905008596774880264579016803540378791434855411424859368035028204673916136011173361191602396606071601241096295949122509125426112807111662054394989596714649248294562669659421531785072868673132526436648286077833320329473435272301535262121104304871716492190438199212821294736067370130929777465699196844771849956047453388061636345287103747666675002686809449841342738611057380073828708098205459942005732297161223521746320788602539511916782043845231440428745158775381698878525733262549479336675308654992744669794417590989763546510726081568146963310012771525135503085856355557461470784512853385753042744699750818069160342471772336542621019339101401120003188751575519640092430903347237770394829560867385005560913312330282845364651821065033751342635293643317788702524714713468375243876134146536043642477273279795202273713682594068663374783581239386546658010278996338125653584074806381665094246607281169082879649473969439805354504896206978111718836308894969569336085154452629397810607582461833664868110193924246946244750856643590292854156068850230690340117770207704359909174259293600490836969397735002069345991313144581318468836640861827711543837807614217211424155504802224547312013575540528430900139582421722902464578533066220733204161579720367017885630909762698511464608402160389424913498732746739786905543585834676516769702505146653159813505911472841163620909503872891481555240309216451754525877826509592611785165305145335201747278842402487343277488422632035349057989550233785155233506806582176204488380589942176060898086314478696864458899896429269470919055736823103043239822736152769209731759809227971670050561534737224499442547327138047405765949194709004560008678772890184532338267138001077945925517756938888076975719158575117005328091381894621093191507684827059101200948325361937785380226214464272962087219533636689093330796455074690637535636785970547320388743414211541746666329569410509834917307577191642926560897375082636824388542210556765083098482595445347813863270846169728047556744480093765503908104925097444363437883999732383976118179765032831133559885465907720607806879372049850117928202965694662775030024137375384378630989224187590519678171106896280128696088339049707423608566027393834807675656815540787649123706070103925141734139399280440123093521750831344650425638026102738286043225168114473345906557481397299541639659213169660209091408761464727052446839257616168055432196281866859314430657641841347583965442972515932560856727473035614060829006082044079723481191578871359957980712723670954193495448079926078833138009985453074924294147569060011365882263392016162704763777825514770047570717889557687582504187261210778465956076286225481719961405154829960836011856723673819061333190721227707575781551970233625058481471877976383008432571796987403002124735723262257411672749191307606945359020946599359579497493649911974759916822165093692352060727998168624164477730947155819483138431793161983100789605261409802428016341227091116081112096724106870691606015261267181327754574564598461035722985273526023299184090096568315023938013622393791295916402190699633333941965742381920505346240316659621664075881389946476905117105458619326409939381924215963507037729726261325718729506556012003372076131175561533869865338927704838420458939799404899684440010903122598387076411287661861034536760716180783708392067754706717749171321366822999261318959589035019175139305687690622171426071730730863339958959315571100349117605126893576077497784646194026863840881975901243809642164998998211983133402662876145095655923545510206326447926038259299884332618620556444993876054037357636953470127060071452765210902487168148490362420821958037117673140157817962623200475867697470188343344730297983021681158757650310185324352097871078871175182767635433813624560583951647293476519129342137571268925097098157807728711212963037470398185498361882664140504364531189977534511923844699675565265612622267817349353917612628168411033387266443034604392480796179320259383924087037613466129178403042793897674143087296272334398431053535312783589150433738024688006695731273136129665004052397555995807411550497606795045282056175698104963420950498233940496383766117200461118391148436479667177245965175382834175699010452726615364087519205362240409182053692189486472279538244341684969995742817701672260855294251479184724868904186945024334984348639253425869626740475937678681407797070782814313398834784783815078801203538312817350024340630382195783785326355504210426245028885699318544408068849727682141134632587992111329795540657009072727295355012980367782045026882225307320401190663580798620892939860569154992317036449941205564713190874387916452872118768159567750722552447302174634240322862823642281413337316121442601172730597284718304966548189866659299826082892564932674260852113285130119613886019168520511445619735246425348690401959964342202235154707129712384045521754680818702393131583477732401098017859144951392815678921249242497851370401728371580200300967134862578159305105857721811643909693952169580473962198480824418251373514122434621436258170600134644907081756980718185877950452903967806735026679810234556156064519803737614571452543705300668486853809695640464656914645204586364703824596510390850127650060765417637103060122997874258587570856698122227648204903593868158208324753283007497238742094577140629249095089584727268029038496846211407168894253897920575268183855556028879036211656491818400614202890887156259114876823983145874223771458706076661392844122184365867017872805087412272683035526715544105767818928802663834496213962112891007425911056120085570060573216293310089389124155090560325442583366036132000473541552069421444181300087619753599510153931053606758272035413291618472470722875855446307404153141898207373628238326513467983617559826697345036018063010949402696349763813251625875084845854164779390816308702702442115297796332258240073956725016440581366400796314478357564892622962693700298074257754469216620850142329549300566027040694414860418767893440384019343845862474344965373526195331302007668451474669371903380707516576695637346441748297250094324441588391950123358038634446104728604077258005675294685279272700306377568745936970051255822538251965680167820366910127262826710828144851769502557621509228282217816883932064516414277936895261658749449621048861568457418182432551967602826011519575827069293559972886336492218184548020243245827837088754887411874202098377928328282945358664058600056469090726030831178731011512076259369426530425749556379673267570737635861737272522312762045218878223593594406131840123817988939916685824614210714648831210493147536578028525826743118569271078535687032796834898969317828882885513352249684284091372606285203774327880174023729739537748809854298654203451082873662802587924120706465358086963058035066910528855527551559679282618432925537997354183423830170265528458941827190061127433570544437542681027922566102368950741480643116378735390585392442834275800452659055349060062193574677422310659959791447676517382121628876235153474263932524233972242663500347783674540118178240161989000542613096703452594552215008741118132401560923467359927231667252148202423437042546488047221895619519106161509577163632053456099454026839019954187315320589974119946130829206761498238946418352509881044152676565196408217977693696945817891494496338806297228246120399512271476336764481742519875109985808971227375340471201390352002661725818945515982169537485432390101182503465916351499702775338613955446788349026828508317080094224642182194958963242174483713028686213134848481305726777504396575322706309369331118870400196427048954843896774186017473757043360942322339855250889981019055745388043133529415110544137896247208563395172299430246526571289149748661470599729225904723725486246118051840031020678214225974417073805847020101264770186025754705801666269920776737362896158063036302298636601566523891239265705602289996764701216501309861182288379183961756002157384895255733754591206173233188099619175976511890167570706693115198785018503847906316301295946923985188667076196968176822293849233557250242488965395114941426145839830297523743269950242300127213474225984930177202483424229191992186852091989736204613935037179866904510917238498906177958841512839490806031631969445208945689385419998312434142078478058234705722916836855040456484687830185910151224180503347085612885282502689554351499150988391213179106975092374768620209433422413416996802447860454358474644729675841114968669896815730824949144356873164320237523608842096281431551261223339398292316134554435360843925083350038051176408606837994498627195546210381507699311202000925849820065002807459794844863215058849109048503734673521984091624809415878431552952538764625247551410788014343347603566160755454485748220520336799395984922843971501034122969573039176335045220467000631499101015587233355240947498381955174268244584838852771418100908502406296311610570749592574073966097055204337497889522971838881197223813453375241563468139742983680584870537051426089803329358950061353550840720942889114325109074776133979775349834480698296163314687884966774934017763972858493806576507868085443086438336508667015329651901506588694047207336759655609847070272414465640339700641855314849840190721800228946721152843480727346678867647659485562045827327263380824500410645860962849023982752631947767752531733739402796432830938363560309550030509945007964073751962172577747763188547638201663210733548930074363831363976493211127393105969356880146968902705952130587092084311348834214642545844616416712477090795789058226863773317864048057404202037309607709590890194392321621098871749981965190709911517239420681256890315748592799147680672506102422866800365654469131957496336384871899009012945400411754757513682135692021427505009558470859575154020090413431836978150829800865301581361016896530529495399555388103336187808526441128115097561091748826810552354009075216777151164235101018457053706160113663736056342985483667570655283827654774737632565174628486600032815415154655923846926540765870016984440624007915568791886808736809493865446966076339953375669446890945361493188972280251091984097331121816076956358337692057176727313377227763189376198871585627291686067844092181043293546712381756355380774754693364248600088405162037945939100412825326065316275249135290380810597665357666990068111808294788742033094973975989068079290601561317391158804392316730939638696497519568692078505177452017544255175147169255098605139984755842059018280293677345903967758815963479313739266161496451686618965020101317162994591929338338774686173377276378918492115025796538613131851744616358641167020254639223727915546520879348100738584049475690184694070626895742196532476854455631927288038514617239190393240790039510817582948420670732504153888246707758402986267948342671830648432129688785446734743290519295744973049216525959335463555745005620119564483087069711794505802025460040672769333493317684119104597522624027974312286776102586675422417099402713389119757724142711743522971359289406114990466973232251853231788894737443373067004305558333041240265326352633336575668077507390736423785337926027600901679562531387889155651544248370645741957989719168388425656773905677667497515244832095983191927180183227310528364367944825618448829416135340222807290020074088298547540874625929739867505971286212489167495795375928288959968078556892945766861640096987706278125062619296507042100566678270989233948469912388508295977893507499470004706604190236054379890118886388677316779683994683672531219036352800552351253856748061601548047324105734140261757858614722363455794494547086944036847217013977920870446103281112090572838130230323848852139645015201799646326138401301017013082437993794102013454159270840822647768697261085168014777067960951355701663250023016715108250012575362967388512110671323117506084166873152099897236021793130908964940799409478914479903177887463431710593057638800510559829183144386078972475441066962910754025882120116195066434402003557430782049565763515355011201702726641407040845946543430925316759437927947113360307007701019635437346329688821720043869897911509596136845186205846409892823739406166525175278210957428882883069884804402152374139690292478504497397805537625355192482654366353963039715943868895738461735272909394752597845305956965589548768942137255952706538697408342927772462606004452003713942282689263144363053405675286295507506782750507984170320952414948136723459600418513742648087140132168507420492945685076239030377815464080616291062449589778265945461312973649247007711172134296442653462483449320396875076986585019677297236078647208940250737763231627333490286444129329374137908866180225028570950660984354441698863803345082250937002989574557747732748242916909643738198051327993313468957794538882252157282983369513635759621072943528122844603955545459747723613747795655535889600029760864911315079306208088507551200691271241241054843741063349448091852004914939282111388110987939873073689425659301675264890675426442318123341981311243529058571530097719600536951138520189154377675841426024462260509916902452388126586002988068388628899302773039080028460480035706143222722966428427318162286094505990981388601123779897246178733953951800223468975986002568783319206438597804593053324286628689543380342837700268804724475728405681739055568184615213213565227936887035258231099635486168480232460919807769047916353205367215967758303820349848863341945127853888964217691484404978816945389084977925202862840320238193735512809689118989709148484343663915312454172992944844939222399153594485215707168991542858982732613344151189736803551109710199027342114065214857597886695566207862291917934678158272760635431840051296384852802538966320707779560981877642188625928893419751149234537349174999624999546572664939828854300198090510034604444283614754830749814541348837387298906546650022853936633763408176894360763360730639278529795945416828282556120122900897919881655561964659803300362820806496549881797626881160345170986713320490050683928961018012307598926120937300610318642235346372561153194722812292608261457702740684509691946970424021323635983725318028614587334559166852328103931882989495479466070603397001577091843443183775026669464308675492653240881877371481213780233998123438458392592938934219380016044734174670686918206671280325067267167973503020808718650563256676125981435181928812127074646920384878598893313471989143349232380671676667519635468766762208650763204129508415394909923936902448261444852922891033757111734801177079224818837270709751119989823707350577839571596395053221897402935840909896444085075682463928961741023066229375507433718871653096199465649693659681855491314042775249912273411679650124948013311060857711596014265393747707116088543755710975739481619608682928152148433254199497751080903184183643738182975672035042065095160948276199140410539248197286315411291713695405883828207000358780898492943559636571541863078433010229658450225886804306246682136648677365632808247802867976398705225347287640873875997044728078681925811831546104663910799444514995026929704086698354244090681503635721140152859234870443454589120445532725338525463866045842937500084502805001536206309281729204839836350580088052971632619822201797188478284822748119225531972153372899775763959457936505693901303043706572411897266740486015525801391351882376826366567401923665990139661330041941082319972326105873043932919830698740519128714898620302974016149546571183345528181782065465963559236624298820870617509365395239708502203664183433704032298668454271386580647194207320724338180014600359905756617059531034770804358547682116238045527433766885215303475404546998847688356308205166884428107637561362668551687669630497290678333771434713372676502868823389607392623729065450974085367663766703821363695671599473719895575841784412494390020232981689646731752701881805638179212581036776619832303644387345995370398523099922681369261564593391192569468833697898115698946902508616338295797028684732381243644120843641482947538106887447791621020369845768129155072578131303208663631333457375339712159062928540669836688491984728629048958516317451242519076450132607351927130772269397756353608146731730247803406889676945235282625314500905395846317209951555092260578756938252828735513038259347594513611400183312953216705892115313317390230040009520344897196626036270542814377830131145116214162806122002849531526264947424942676350413981810448370803477625035101802036850166539202703567073028913724295272278167146657580494378838134373318311064658885937133262189213305890000197895718802095232262612335737165877775597970578684932738481200903122611814995042023541132068687400602357564312104026628021396032829352137432892994592829196034380922876354232655325157005629963163965159884361906974981733690105262554947095302625707343522436310584645064482582146064665678258333279733276095167293590166102453433353613461414334158181173513598956264093151582934266380242049654060724346932900182782852824790454062642690704134545321545168276763698216908240880339374649502370643113236717261494927622639116616975754464469326712654516756423989876022953820067726668733388119564413943460532183738267918531298192755420452169373025373328559341331080812612057438274043701426343997439141344914057961585184273928437744937577934517454007079565360108958549203936181251142154546898213692418887885625717462332554645467869722267877163606236751821248188849693218034531241354280194860625964420019603750316805354705377753878252701987109008261151971375039662699993945637764131119004332516580348185885586057211784309438667790166401214666003187259209424219757979001851333152711223361950083647504552194101775231194422456879003672055737764428078639196635160226707341315667521013376525147220391880960661011305089944368909773103101252304534077796711424230107193466962195287040621788249919978359014823701064400144659279019910798342412017901192728672086754397417745377397792620468636957557263827149028780483515210097579941374280468866694152738449711542228367598919770696141841428174227581239959302084445016605594605611579505934496979696992713508234038857302762621760881649383403363992965204152634971057907848645741708794053787984981391756952331513931579535858723227764380203627261289652765675610849614005590015841634137523697551499658957973379401403133461182809734374087329986899345660033284178208757064657695260634799320014776316701836347520480565372359539077670201300910600115974626892597099722578519966273191282765202593191523626389422208517049532931910056202966613219901684948821863878807995174614892833487477070238289340418492207335582133521396593937664301281736843208875369744039256586050641344895198253355637158299811913525192051180902346875109584944842547373833019337499528642684966302124861094623810697680472294741871057818791358301804376744043117226571188993900529942137309452364930918151568454116671498570285081028808915239794552955902618517918209146850437737456207732310016292132732878935660830203926499464128235650073280290420806304790887038731373188052821681397021062920173110489496136528360718621676187134273155550117811983356901446936513718256505359960771606106364701084695202238232622646879711058417403364841327986685262233726565949740946217656766293909929445121842021670993465756033028059679808139807250094575542414903925690595722471741458308834466974959173018862751442398471961760736083368071666668414374425574956200473034166838010095757662499973906224137060068444535398685142702387493585194551707115114661558060468826408052377506271633973019632291500205513257501336004966377168314169426376378443251404591240311975599556497578178500926385629352539433481401822294059688905206184452667006902263471907373046369377114648811033630748778595538076580633920669698487430638010874166391761468536294555287157481433765006446540708245584907458154018260663628949863977359202805057325273542466691030735887339951988155350330961649577179943539727969120648562049012703216410204888345880867796826317867097159315779776054125796826978297080149597173164459639959918331802483470579939882191729609577031411066274109493942379799753547081491907439227906003459860171811153236525670266216117932591180742028537639938992001630986615150518578643175595027515186054092541575325069204846617102590709055537206333097767194388283356878411783010594482162072098511642289483691789178127306984507973710002719679636657556925500407314461087464155911112687298100071307605828953300362353081027655139180929598249004443305451807985858792753683961438521607938140300463529210794481925699178495374575322652836895907965406483435551537209406232955445539300736983949081792972717687450981309328014571244696929777583701417079911152903559632488368381656650366782223691335593284448961977758249193075156158063663892020551471426617316134173865372011112160802832822471773294004703849683283319735190221800379396962013883595707079511771305664949688817787076024465619982611537736958890671533822821592271209569833377464875505358832374339855601528838383896062895995908446360503345637004172434087831800562981289606413135081861391473580916103293742100345625761645240533416144768431158118700970935124021158327453210149171087569850234048794915859123134270456081882495861752005949437550308004824182723529789620787565308242560754440306693546365581333397385334274329516914242699805032103950474945331771210557145229806869518527889753713503622895403751616096643523496819067227509786201000471852710051834970844725221300274283979208610216159346476949182580769281271056543181448659944630882145726740504229195687404224536086667163829533711152695427508470886333004006813242174495904680610462519996594172146029590471735883629566643313253372087599876668930722472326872649446230509232251931670033126293928213375645975907159878955054953583178143342135075866916252786676899594035252859386712564924352258577894585478538114647614652370101155157847156629628318813410047211795835105144591367468577503174574930889484553441128002674137109782950116578862775296103747950916382421536000900047864518010004869511435066264722983924109421686030193223435713798861089732984018744316315353867731410839958618151758102102782927528593560126049929664387846105062494205529899961166988413507379302288184317580230904015685356623746785452927550871745875082076945585729346461996575428289558960777029019271847134426519453751949946842280407631809878885351097891143317279808204533585728556269965189650868760999928861505009806407851153985289884340165719252230949618761973149376523040768053003486560784449422331318266784979558625459831512840429112853364204753755446576117086319513604372429148725298085352484235430424258136881451380203298255127515223490150077100805441175417210915332779159724273437479468073770798964259358521882586844086012654864455662676534610274508931456010254217677369598259605782417405890039842162277278124920797408594868785468521684726368913028352703135760648934441605632861984884723059005457983325926569930310337285723961254708837321975179501224818110988894568373678275454376722226450487391394419623888969981991803469832053775415635669648851310430479071620449486993491641231185714832577588605669817922895032821205277210036686028951650823489372692405097893709176402418119755459909766021788938636791613403206928903254342872768950222056023820928886796159597084739125774081009476700932478833025320891835582956328103950483740941801014545305632015551991938897384077323912175550343041964821267096158255760505560212672618762269759802216546483059584201177133637788711224613360459458650662791005158498375922741216670601250666749148839625532409447956677765489844028827054715009361945271057392220914789795898460597778855817484083093583513375159286428632554748186946004342704828571273054068454726748056922296779643904598985224652220185359349002849024594156109493516787615501710663219846036105621176045043289910543283429272459212256168273459071608225074695049264506167742798747548941195795831074646951163338641918635054382364908190994347072610149602868281140955428938694952055524988542954353505623438930740600147132103236440097851053846238164235221526221693891005034061872200655480025354826246837308077187330075241485259435564216720502283907443061147297631177914661964625566395610656248419313524309284452908458232792873544327169334653768310761769941795634143187573475952555015656994661421146202877794972402147155680459224094501514076810075259981857110989691974189992675369502672021274252907660745028458441942873342478572128400611494457596762045653156947957751876542815327238468115621040533942478908773780763252812047320987413255360698762147846272324903846624842006705454906344041882660458867749665052613013002333823729769979106447711285766660231614169028921231742364278202295660518883051746120072801830857185334611678204038655183139298155214651220516628924160037346898662401475143328823891009771738948647464298489340284776340980375039145863250048989259238168004233244782098380583866335746512820111271775170892178412442452945742192293343936520013386970230758380803837601384872572207973252966819426312734480271705808448008546127498397182423785627870913374647096095377878985279110623422436473200699992416156250928697198465515297441978843067936371994425677741906324304148261726072326067566750443054151966784471881452691736558751861177832059048285756734058945011490868331103188751395440708077146087562192498161890258191221909950937467421378029196361200707003891811659383219663450552305920234757355142474247487024685980023040144678112286478576483436731720323732811738655386541169312775333373301591265026953765074190876153773098853979141633693769220272905079956710213128649811718783493863570166564341518003545366006459140668266820301423836236679009937280315763196319387929584688813108575270568116236906597593468692985830102132916963732725541131749388259647340245651060583188994905685915649984847922668927197034088785255801580193696254985913714037164428401750670374957900307553355511009360324743755632109907301854315439999883483061641930455398034810348034902271175794004731592472062422892659949655773939152104980506116465494183690432584016167661360870743838356305199334313656961130634925561917619123554237263751045338524699114940426293165094292163705371972188531918892021912266151727503232161427973898446769417222723027555639745716375221322988003067125232349557423302814176939064343963099752375574015483656735030946298170184691047903805514759314658736572464108865655083227268599162889945275271733963907345447443533484707988192101630877855023443057500912627763171411408682644150642756352639779640569131971251070074212907378624365266623208416840023056121036314325990603306644414247994669841743907462632943871380474393184810184527666772122065744822898513269585210994432792879162648072599140374655562090338100853179034204262310370450473180576952104259830499211792127123465856415316619449938210616936505694873055807052854220323706642168379047919886184945829667624556503683742108203046102399068070393262857643590150031104271708680424236569852036221005596098580791336762651763078581390391715721234264880657024424517233764811770154583713471711468313139743076352362478888797831865215274232772865018490409635750638106820675728643235412148413547413318778206200374314262160754682264463430230646258075831363679940451802483471763343218238455418621286056960225966430464897055340639544625985782794471410176925948732043970386159743659030462278994945224256068668931762513274042889844128799404639451103072061141756388719947731392722591149156173387491969386284857597002003384509390820044115236414519881023870599989057192525065424380644476515152073991248581240434519738390054671252010891452710340706514358315681547480046179717199837806774813858823827929972816434666382354887749493160517094869850955386143047515394879777997583287563419612858974194182413344774006107065434711758663979256355103168505151528580329701859028182607197335761381786892659815215015782183092026774990344556699571678460304745488572488903521967458785718016078607817636094904002405262405956416325496196791222863891040880911274400039959418144148231230508083120109276138390037822035357573404724704687947414976743219669491779314071739795601883731072027118807914302637357182430210087135936038028969595986640414123774111444137673753225351326427463010555238152002075602483363555407205069448109791814846407622768722994551113616023761231121130474981605444951266460310167080254946545504526285638660368288597116044980613744606760037185406326757383509417836327012452384851284337615122166098348329805295154076487269389506642771984837952856057569612086554176759772789672935183160468271082568047320805035068992977083923099509648213429617039184533343210544090244772984199107174308251550643884143399672502079564443661699444321446544317710992954046951991932724940382676148168114110995433136267109215955866842251580809483982247290667923860850072975317480433972084346772328756190563666220774366225022758923347218071726924372957491327709235191780524526105069035763793025021151656090619626963345414964681136035848069364472581247348997654687949780823627642439079713974470112739834276045930979008666350058995253164964771954038218384169587407686584481081313240302118179675386340698579865547805920531996968403076244521663235315325758141237460318090945366887738560416777839990995793399774383255252824149848215233310153342090641967553176372023778860051920271894238757892036870422492712220423943655438705086092823025614455362185867016954681118945776172750336326664681103567692253167097592572983253616669013592204760110169633748198649729595943698843059108597653129642645323237847211793962275615937723692628123889471378358137378648915643333477045756793780295741811655666439625338356992603055782024962350579027366519330208315290977260513673092685392349906777443816706815716347354560422976592344832782153456635808511443503022751935212736757198035436916535314633125519550652488474492116182734628586721606126816936523344336564665449433312235829901849085377995112051414060477191427764916077451473485783934145825805294041756594718214626048285732854858816206244172447531482351365938489896539026296738353242410255711823761506880335867033568855704246115289174283211326374879185301473351476786744135567502088199043169962166452540098967144854967996667670088500782407806619900771776600394882497626876889380615020482792941006775748138045418645993086224178878499007815627657457872908730241121777473704143334995859101761445575561322547660463832651616357031401339819225191460152924279542334666442469542716516732844901402835697465508490435780139780053565243047634743508899807316919605637233487243095647323357324313991873892204163721885912776467846530074309028829529919020494507226258540976232021022258409493557161431007675560235094161636733136504263078538540456288251881778617866163754261878981707381162669542012445724080883204155443731517843013367519333893761810198304402169672302636637179901955366601348023729205334864445787355039991682566335133091032246774115667259818791405982406192887759494283385585531137200657339423911249156188235014629550593503975608374469757303794257835261821665005053723297993121697358343462111632797389194395222660837932258377878628709939454529071059138804848508796609855119004182014745858101831282628054315152935441700263650500639971151205768801843018798115796787432733882537490769332200302755787342575729634269320339901197336096679774625844952289794916122498489182058515009236148878860595191473591392532239540060154341254497312548954025962783386569303998142227214475880022993535905551247947304192625724393959459188480852888985657385645439337941519595915411880941315959669478709123130804162457595454844324704338361987923574962658692478731539061405226956455071159674227681198814538039309637030197222153668120179810549204050154923805197828205213495862120820066908000697873035256308154646305652266392162321948293514443945941792389576779895549040119856885459746092460506558124559042342547559345882348061582694136083448711058846712036160922556448934341288413591456739640455742465514836977919395279007691769557664504857646668879560933340858700875058901843632226977927986903995631044170498471982118328667987818077647142626403717303412059437156072758768963517508390570616036091291980440522151292452808555463747788004726762338637056814596923012887667399306352683819316502618334161966586452065670065255963910559241724241610307778622924741878317138496677459575628861987042413534964478438392190686697062343842753378846343455866489238735006029976117295197806310408864588691420836043179362465043357714317918379851060494197731261734144269423515998776283170157025010767278335404436075069682192161788163185277831568407149336564155766730737773630064957859716169659558794068318521100741999292843582544935481876302680600814983429780817589386020062265444874197827445031573005823437323014619550766869267820010652223092933482144688172034770318924719339837004509687074477596361001611468660772475038002195135756795722869414806247060836095359308032840221817792589084292808925529092668673464913448590249571481274703793249634962200878527910272524629576386771997766127584320431908563425833187096468297614799949703478053662791112896543604856028754163671240284183737736242334274312236312326271877663896679263501452349325365639203756928158696717937878548058971950523491698425285101891054952625239963828570697061036749337435268770483327296624631994968856957852692388579332109642917374899791150554518699920473625919455764897219511044994540262348151647784734075091401236077227815258027111118473148623075936736506300565094023266447649301669869734069944744833787823077010072198780563835255952718193745114806589468024256017315678916901856141130159308361231586995784794006664285105972875046330753815918886214199673715271786749666926857992673970270016185249549316462822901138006991248818136497379122458750717712526222578127269595469748427028432672487847206872597133793447343974453794959376483217084265246349060080911590974638937294103278413145479080187209608891847783372044201006820246330552134812206198740549559780930883989283188587135631809845722980681032914391790347002386684691692113910550744392789818503700162515888291262564167704042677412290765389515403823048921750385691037067640017770654510709070485637057613092856596618412927040479678233124632354020260108147549541908294989448819116939798849403742318791205496232237057884501057170823182487530236496847037417154456900668350868077625574374839410183290295551777583503333290386058555965460761234021463436450532092746131872596325628138546813617266936747355017786437957526786629876407049821428102267494366098764636248681172929132542871935053773261994886744525766617935566104502484603302351899720444359019159329804268884549586306846604795190201392573236754115970241455468184295946722627016841493455814846760044665121768332418721663238500467268914716710911901991729531225688808168432442642584134044130173764947735764820085326300558004846004372066171880488948759709393753357714781952006520565171090390265337388163355270978982932288394782513886510289465505612886303115635955505885655036672633538187692771873633314151753380357887864808943690485834498079803484900156343577390729529811672068338421168013579779692030637634125140710601757413464861363020167090272603599601942363596304316584325964942713699611522750410393751015328011492454115753455062556893528960685109526513995672348016883967685424069819174895977135628435877381649829131206164764115537734405868615452434408816091209645071634142539919489712029281918274981610081917566310057367152874838049708775263787147608105184614711126081675602064826243656242008993477507073201055390578333600178525054490255286852766261887182804610758200195682981515508355077891858259084874959342108271344055861066690260303931571711295673802716468262788505745806814967593855464965127202202672554804624441817830522944909139366073089216370588111207979566878392612933650968139605004820667279532373631574151861585271217751501859811186807602198188771750274831486209060064378175963972275109873538940596869427009978388839969458418222184675793272677382391343559234360840808854670137251736818760281683709750422693942559435410567824333515381986960405407967073331255425284755265988573386881378250523520507737791763051269181763597588559232068761027755838589374757275497849429150705054261652216946118367534166325343689285065945949084133590403621388165189418645771543587714089607225531489353112415510036788263580709500660639456588709615441974552489621575160814338694666880409761206672017817443006090570891261732268866864744048145271258249665019620114702493093872836879606396245235388255867854571911358052772871011721218418839136928362260774871252802221137621624715494389018286247145922879166949989935403274308491254703225139511686981611837395755780685742541341300385202570843681288165835461747151323704756195475885273940048454149539003208218598091762017408535233364236330126242209340848752237720906134994099655743105180892189413743300839537809006023541257176080568911420632464734245503503856126444205073322078143149316503126957161848302554044042715126963007555601167964105150985800779441946363368505474366809968419788807196545722295283710253222805163863259088693061909101850498039662849349381053094885996307133679790853521892425091986429792217749583761993833685191793440798529802183825487093544122288685986751667751570543761644762265698693302008076117020894119558904198710476737008426123580792722531957303711422181779628404514602928192719766261668280043497445154108304211780843724358154887369316905978882793397522828886495824946852972334234416320810371454700579483134289366172184590744694580253897423562652833600897133434216646448994752826209864454057710584526499296999561948199284071027263193618230155512741919751059438873473377660939994437862543945767243405500439198589016706560881827934732898746010966919765296214282620962049565608530010242555801305506341242667080279752133272104022628978889531098708758217896886854720329938401819213006722043839171052269281176781843163433429464599698338106920473570039450289525608097070389205178753148592259106666475822146272738993887006238779874544849851484706586135171678812684527635477341352272724343798340008228330723025621865846866578359212182172737735213177101716836093349173073408736840177830638772502974786415956735535337847891672984722701063802091587329075523160614824703450455414239621892938732390125542949407917087539848546503021491260097376777934628305288233628847241089146086303200908232250852329486713257606088346002462623778242901566046745942609433176371582108019585507363152213827209957401422126524712339425557039756539847345702519684770361865709945512322390940060022402212706237727858415075005415399355863329404617613365728926550724437998741363943374841004273693187177490196330011172342065543788542266545996048450591077019492009708721657829175787883746587181831720736212065059516750819145106939135061060881396601841743894980544338578439083122476680824789058981846274865882440263626870501363289191520679656483688121580905013843150696123751752491352482570614743187365570767043677578882673419063640935111873411350617929618442510673740374425065281643671428507279162777528353863221407840884019087847029429187510766549025918393492576867846250268380348009229342020051241882182289404586071780218982680349606333009244638554935581832973889864738450601898799120474929621767571818364341613875606330347724972600119497540611316679053144169868249217637603563572492734562809674967929195654297428111139643471273699483022560052176800689376445468632694931325818354274812960423459698646253824383708341601551750418459838430905686830238739699913025618136288433346073859903328333339652267441819570353910809325626101434034131976904607157216300552497442302096800153697381340845896598833256387368794522521632592766118987299367705905147707337142492145131719016795936524674073419812773062774869949793593167192979349808425947500315748498778027460241763017501803397845167585274288363113085594995088991196637581840722915076014755076784023478940878771251847992852130059734887214630454977592689782696299299420708874702913504015629470490205008801591235248543426609938866496594305616792070832203359292365015301665189506298491510966629361088687402721093589191033242083260755899847085194215098903597059013659873514091253068242789720209401558719131091893070104427749364795484002362374663761862620681755836796680424262414744780087592909978263290451259439881151799999128709818369313682717629121361706077364717556296473047045244700395627800178211617620510433218156097805752660387809720484233724319608510056091992005226599731111083659378124601910690926477600664035021802361387427136044264077905387617126954487255202960407620000515576616625845830700736001445938915218774519500748002364125993125833186400831090026290761437077832296578412267682134873442664812571009829142810285497492309039373980111177125503480703111364203527096245488730661061067257892751862868173002944162980204592379815973376197205108068155752372429731345593185715423605290250995614345714154353534440420831274800349988672272621811946780474794632946780367728502048666319741455262324633169528059394769407930091157503135049532906944680500376509696171549284238131675341996922509046456637355939759979274707529462197391270774666761670928366629735499363338781719607291020240546388430252932493184902253154057324148014939268238823725252591346050912974595775420613807622866122662255729417151404403462001918016024019811335618914212810539489192382981921510802974577044668615202705562031840648510926216228239600988039657370335888890557099870282652602884183433649375450626737850319823548393131665210314528214233641126526388539867866417452269662929154052990263466418805974859303035365869393604071951270059533113495956356540673461001304526596831812607210330916311018178649586849514330290761278340976477841306190446441538399850556645346820474197418358507429881640489262757054549840666691734215201827617488888866078534138323136530943096493113434896027201686957149835403357117502249205629962574968331256002822742410972981956379730025493091684791136469108346120790733046933785650905488743074259041902016945387493328199763232253402946137037453389942446228729581562063259891935688366093568395437185853906832149502153273586919390881243713128232898089517750201818271491866696211749788865349473259238929555597998799061892813916335302339709402853605678804547346335802686259386933072911090167270846097478030121037022335603525278529850125055832582505256884393595939693352509049937504693993562466880009579473153254980722070963218092320009784174523682410422957177449435026301471011049152209810434096041550146093929361089713503079110467851949955390468476402873565393339937231075798144305867488739755443810013973492556515696319948107318925714580764326953124507538218312589515073722760448420457260437783837431389523530016746030387522510027098941268573173133582270227929353672607905270716090978019609055439785656381227950636862505933479837624564936578104305266518232872357640660330474650232433918453405727673389114892892800167407259533654458108863629810612954549456448901998217752997618326743650047208491940424684581777466154713818158171411603796620325568389929154900142064395969571665054620966801887881266876348034541470915663863892756593699000566333970407811976049975672731715730397350584173538725329892951404978837869208122280102398123335797025839715087274829060313115588261850342536034179442743546261679916857342219779897736575510990803267195198127696675839650398033481444417352293562850286953963068622489632174099655876356145861058927496088789171812672038664351308261634570238099241002345220531385539869737597951245439897707083553796382257464552496911678982881366539038357855072707640553679201088806790879511644772334529002179808244665482890815406521912521162278666917662516848511215015070660875588554299913338868131054469269864662895534452576030805600162189021145791824671832221561286051623977827745555877059030221311107466604001738382022219415379828853685862306144902552376898291966842617458085921927375286697488368166084014063451800199121451079530269394186978246664074193362012110998021083501761093717094377731613613137071931440767966323188698994971403526678594951322733709062944356348588199977146181257692046674178290139736404313400870724115471848047205157950900217946209621524908926934068975487318176389987765949770012896580143664564894042611054515214818993490151557396429769361436272481179841447149050295254609209176724341844764414097353870866373150873317241309995480121397409556315496275969125671867987095375798862540363102444762072413179185275195213552572244010284611209034847396522763677859491698739714490319676733151468242837220671534299204081355878359043486157612065764694128285812096974597405473031761456526391247314944650852276578423003751685664271903412380416183611031297035215915078075718275668719885391332098512355036014827959084730766271216357490230036545822444794132787751949147527107794616883000576960934188511329571289480539087390581786868840382273248905524446805442655191581698398222991634563243859019993322320247271109649820491330006005189622890977002471471486438938017630309517419630248629176357440297876311710016287813520772583971577602571922588072586606293156880917997668715159710275570233107626094649965002728129414371546765800667878045406380401197873687570714619827822761400717978190962928972808262954002507547750707238261330746386438530579014853313457269139242608346914764396523972050871647969503793851575311631518026187454061873057935200913880924883268155597113157097939783557201767232320560748371007881173430857124096101760052611794378221434152522123978122455675478418912794136956377259579725960169859863279349544703903629048892549148737019171264359884682631143746866149951981288589694374653248498397733093000210801272333762967048544526854692229523741760722109432461130730555616577460451107099355939693197314901971501434819299977295713586577171780329738298091635788894259562317130087100438723173725981497822498382825613599159993774920565535306953482897579774747951040429267956249749377778743228674645995451743989846821724356863572215256077364464410070702815346015799509448210322666997483731815754632140691045909902965450332339326600831154066340480420414299668784356311920424257532845660487271703851295492741224222942286334127738313605691762358017620713066497376713426029746270711168790658384304015851927608079081175439586664102699149809484194341847861924824014864409021903123474710513152379816164433354015647092389052576726653973320042753622031167441578438800923556628555029270052891569983443495867445230486656335004534874286128868778671022866792929505603864976486067410155050865272916182888321503780308984993858636774855886380491904406636335089303046972607770501092823378900932185894297802439520110318408888185958682249487318591682563543933054460462685373725311363530226283343314297227197780033448202238033270678339471750362209623678464459887193065273940874941705395025949793893888488037228045989685337874885243020366285894893419328194498356025002458507485987112047949636027504706643756740874075478772744781737795500545461922311123944454146465464023498507094564227854547672365695790202982452317054619046989196677504895371942716516241345334091780227175133960391617562777344214178351690746882626482987903596505206084307008628746685314307601165125787794218946478641093989202289154743436492265256737488221337503352292308697219449140102422692956307258370079523847541233195253267891311001542333952075567710490792141213355995376609735356097269997860837867251457576864765112224319019587615174741887107352006734420532594388691271665391712380346292664423056070827067715139185790174782579414847147098812093569386493875352933051539692798392681956701921318342347401770870662164024327231247765811579316389509136899473931822695491192704629973956447403072420668381837498548218775881207006888182573457531333661723580874748120746275786576347421025349905473646753457186744856695710425721033732454128025550440240124645838797023581646840609109787973038857813840175406762524801162774314641585231645849933896715800850434747931396317566228405515055566051163949580254402952929975798069666382904782713007814250053264337290480940922400948325607638041391422364148091613060405620755234071229705845332919894032709213345923456685416814087933867161432985790219173060747708690304891815547772330561019572714054065357022450499670261791732173187245340367466259407885352619571579173026131934118642299723938855623199609675687872908450265567956545508389658452070869521332987290877013951985690167638369108366592457406305357071507887948370734980893183861424815779654188605132392486826591046858164956077428749811422963401486543604705230519751694255004720754610300043359703192894713352563398956898102118204736743199232102620599222735500264735637661964618804390243821480063186359688022123173830986982546995325343210163354791174421015631328389332537620703686074305919774007227752202238730886590890126431453122544988652859077692373105149165491854883130328154970413233359071470922386892201877477017787777366470288963659716945816700308058020133759512498073959744574641884400810200900078061706747579680588668632922732602633536773401412364076335823284448116115113007790470793425438840214159053141179342517257273225032401388099338534487716097210312821910255970810209645204071202468102575757593927308632207521493412347426235950464648485668584794436434476565358173612768676036207907149907033301489050056485733819710080802335566070871148003409347550898616854776685816949396886550486873227251422705130993930325798112625810578219700089736076380513907177444486816252675289411450595984914903267625112657608579848652557922392357338489355262012985038213036684379037003324528024846458628220529765811065314262534838724457203606513060541328721805929870376217182739154692947284356657252831001514972110576565555217684737797970036861024971725882603916213043644657906105704501847673246227403597840111098319637081277354416409782385124955984052488654031095466499464851368774348266855625671426084660038900612824077678462982004493805971068929782072830549116071513927439989314903150822038849784234383355367387144712825489468445426573844668977707446638059406059353510529709852207295041057827112942942959820671466672658083757415476081166014996545739117012399568511534464620245477374011323465306085709441794056861781654043133703130571084199810147717248170803754365961642402303588741004316112952447772254917145445859935214497543110588147690162253359358214821106763759274812987371916374145969741254074327906807010414026340918347077373719435301491270354552106772510897442782909170694824837816061800202321758953256636939331442678230539131692704815507047168717060508852267337741379993656903098797014942745342175083451852624816501320581217087698279824423472672538961374401181811223433607093285593116323405387087366585895300044383308919513927944613420037930395821286373347864881162379395372056694355324070534218564901292468606322996290125777875214944906564411625577146589511170917942438976533197303261144662473527076347428872193482346416601222456866885833372369753192277284314837264238992910163402836909028938696846645599477377137509148842752598081928562246210629756836896263155515040958868850227405052589301079861336365218159064093736834365546778256644393613532687290124317166837729331310427924063055227600248732165810423155480091210099139925330288725326927148111529289587737910509617491885541219961786707939256098872597600018602167205545307797867031102741299468190050529589032081617113850914437480132178488196167967128847792204704748454340961667823560978718159778520931910443772203498048251261733019115108863886918475396696975619233112873083418949432518692853230931218265729601107126282853066413844164001966263559775961149864247148011483399641851347376749905495568556107417496655377405466822753280482014028249397523483629383002489121652799603769650897103521017327979102402982127315142379406740603586875547582793092227803786291121261270027775476502873956865272586145007238789700203322733814403537034075001111412016848463848812486220279737368011863630036808026754653645861081558707089813234329813192838625112621546170869811807238467179882544051056657677774281824569673108869188918554790587673968467847602700875119942704432272681078789629084938009014752352657258533588768042279720775507783254079570220941389386543152942266232243117534721470057230653508043315187099747817757890455574178012721967175381010987275945960111079896684306725183780504701600512531774295795344811775604588799261604794213600334923958365811554715581866596068084547255702483634281575181946527972072377981345434900784654778929011250487838539130871103206548041365356126506079504002055975990081306860223348853838489438861501211659478521263465721039844584294192458602902519507649951096693088170042501271488796202128698536043695383231581410447899948708962379456010790129024136892656774325910957458574312158548606472065872198852749990948728137576073256029095326190012307119329367463615195766426487744971221618436623163982251456678607732694692050162005572391097355621526474089830361876385035320351700660699806245900324674680036400608471908982754235546454784941274913820425596929769157685297709138157525708686762910265704834519000991737805695500933809742175921896629637938619502747818409644626562141310515837429547103308746570639907314963148659432982007738290215196934820235305925053603630260803018297200414069788406590526228115902565153524639460775487951298826757044058079425082175971673646926198469671283224361838860644953383526594509827865698408673384551988960436718821156887865891598836918998970279060077537194175666200401372483636733694842328921884426377860327953376287230362795692905727614349259150049251916675116845713256513057181919522640931379526870756320566078929997370756312624359658357092092712591278437245882402329916180933858869396176960560702037968190872704368074981461138861698641033491438121646275162624963747299993251275046426715269765369140090433294209402014940358662434935895755988313967892688426161273345746023201511823835723420857027051840666073288853139910075630874822943961103392992393075640225302905957938329101150458058816718973133027500324398052436378146207600147925786353931761121447225647517322946643180663356546515671310399698429015393545411491176347999612987547554692246116426863599227135783238175438839577809687713914981688802877168866376778341310788316573521823844923009923216653416260393697813866886777347955860347723061120613102317332089389656190121944485572399268021907986536485302800127936915176890964418010943129588706162760969441296593364670207810228782340390290755927339578450402887425321080607846125097135385968765675056692531581943374807686622993753195286240710619008843552470549792251179036401967920874749450245196853140037819840705941522181312234470792554790864492869276470955989030012947917066270186530612449332025852055595399634991354694197361718977941200181037962523085278034877182292677430646315952688459505247433765161351114183183439125288258825022682598871044163183621868832578881385724105609591979986863283145907244261306483526180856667378208768126667022115910565105828465578605415397186269265773678995054860240114161931484911375111083211598453354321119830226868252179669220299643937173329568344419299684288202972981791752532718384538658532407896380300394052977662687459794373287054412428473503735862396314524538836236522697435462562002711432106566261669113235819765833966981935835084855885014046676975298086443694467809414974053587842273849281951535730848667866606773409279445531641908889292230965268180937159063696964554027352773046918907012504955467863864617527565459885789394897916952331916442475505821839771639581501147658351641865962787339636279491402054054672415185367594782803584774405423450797787201393047567974185282146510044403165085293940593436956633724587943030695609046953474130980897571235628955358127311954691508538231778335240729123208232691218140032570625660669236861427097850612544303081926364702984078816397199576611292641151745898477567156128423347104722878924068873719681860449247933317312003260545771811813447195728297382933151887553284998229388338171703332150162893090853672490563982632696036829380404136409100366815894410791348279641227497799002119024932199598730558557580878143748618310288652591976703466567286424962776321933467487642554491304857435751749892696532673391466475961354802448052674459116304333479460462401628825981276133568555065661468214117976054271553222639444093106333018501196226848318409686043517741144458078959935677583378182874768521272044950023970898043717092121601618111900599699713806194318352717858310233260419349090211219336190089614797125984660620669785054523241092715866188432450550913606888232792396129608005491771954508681389644233220243029754458574267083623453022068274960362296892730448729962605272838285963729260387894698463705626997521351708863011118667206227920878399459762592288095001381706185585544018214972970895123717434866571132205608114818375298184676338941101318262436323248786131517624376774379833149113984257767500309134573260942133818369863750447382850361972698009596819619097438636350033709150423459678377514389126780725804336631617807441952844394787683632789647660949921923284176153895388604294083758516469750739054049978739335287043550365120935188262734051246606234508847328799281130993302749063188858384405208717797273687902260056472835942685006115643003698268462684565938745095737243224183346954932586114330516235776512489859566965943468124893291293648885085546409053389205459410419627091468699167673342991774918137060399989266598525960958005824299247409393899282558999737511838629981897950629738895296621885954429920379921918890709799473386427001830898867310485943193717685230414908095534015805497850288425773841626537505044040612742511842157523827716030192274219364499806274155810525753454748430014490920235944772857915848801010187838344124776032174317455954363751513469913864295580339225879388562611626703733272785374837345059989801474674207297888155479054798896771763958321843361063233511818033946238860706924604282957230763244999073812087961198680593525150641998253422925344729677264822313867576510858018858819499670012462894852064021188635498401455169747950910977446304392838690494078434783233232017210441850378889479358920519102997390608774001207289065069263136803989450850483053916792350558867720716875698214022629288785205777416813810640513431864036270572346785947971554801621449061324495384586678419111340963661355615127102902615518836865873756945235572424052444986215022210192483128295949288575900774318074952628626775056493919952213393387278528125913925388597350929544898539132634023242243407517990931705900742883575208407292825768712151384757708306305057389029344029479327861087762334508715905019021011196116094739065235301306393118544886444359828093613132466476831831495070870380614298863363927472512359290306788223690828982182439053261483202048282452436623090962345820850329134508653779867825130063554971629083275700706867968823766807622695817429327472052182220406353404291607729310452387802807082640678035629892950977073065071991498578608320959277998953632582555565375717327752827427782224501626184230580488568283102900561932400225635367194793320144995667246315883244381665624840172113572911235097982072041544963020643014733185878680398714489261563006446676766797299554697840156408324567578754429500881802504445522834952695831105920048766564287943208847865180173014413710352824947511193086560271113637104320218928580329872757936332633318983523052666298592989304457077030673387997666985073198133799835471296995352988885741999373476439490756603016705720031141405925498654272510339414672137794305160315506657086227638775580760333948840160976280664729243430786011504782922861895921877593672516002351544103266456202009670076902821958342208449514691404665391043623700480757599580418450822840799478388958656382411968622046792738457841821531046816927232137432594784223407209466785840314102235435969433688232872513700714676653892856402267875896010132865890804572201770533933351933891789705848555650115673687817387333059941951873031553644089771537207118918388638050618375919323260214109447016530502751524229283047565046784409308948335982641932055554579550419408997213235467861784072352155266850019643102326921397335632560863235820085269326173199907720767280018124727103234067741776749646706599524934518279617994165125508569595945478391288872067037360811100313919875598581599162605335870537802927221653683469756177246204810314977850743460499097951596867229289139426789313376258102875527079390366044511737154439438971818133716659032457140509764885911544536698497211706137801835981977762069370736639553242360827201447274087041012672619046049785861891909247968710357869518136068096303672406731918993169045417021910815974777988170957893520260385158274297727746342817518773611697951535857695588004321300443256693118435155929375685776506205719153311055036131108061704805899581003564099673054426670003833859894078668369676835977470059889813379794949750583139423584443164063438178016348338081381310278364877745420232068427304014725119690286118338093446455599928160866760675083145853989374209040924486788116198207200631349681913632803889265925121614344867020822131665148321635184422054764949051841880188405118699477676536481159037390383552269100316457150858026975469969206997308551675746460862336722999673159454109825632655952617981957233900675189828723421956123422208471756491099293314075342124511141996255930818717386831193770879604312902317157975657205396028495924094260227022612508987089641593470045327876942446477260249079043711713175568613749230421340704724526959417318558925069317379710212593517373014328754531951434491644253263156881208687191046164151088160180732190448194796778447099290536879951017206380701665397339905570887645615593582098973551839420471027455848237628301984317204617619486394508701317696278312214681534819184508398945470857038798794704953451947931708497041913695710458324057706285546794634358883379992295093842250947319799425151463686046822524900146374030665308217793140156183261953469713864188744669508755008393343126540728286501460606269873740281121100841852968165165121673598992650474437258482025657506356047322263771963460031569136323052999446871324510959634206400609144684674304074796825656022499811636571971409925834707649177271288262239619779301513271445703275362083812498846877771073393509359223232177921510148943987862192718120300039703482176082801269448170890732813821671758362174523269273512017043527887711758260769896496528122488560757671230761342576452610177373097657071363367364249448052751812129435295599235846751206319142480301966890087568407054040598875259340454126395153667101086968846120559827230272995221963576708060690438059420370415123734040625501631920727232966462065286636737227873995075470938941027731684947105362500978705155676188245490255779893460177832057480350886189392647754970689511732187401844147309820038891282254906419234891401173139029137105872768721171330742487548021538606245218375414176551020393301633869097821127201890656705033017361522101703503417352642423233149949594647325805360719583372746134475991628858248165089507886932708707979904828642357581057682634796441872081327940213862491795000219368143471269551021031153981893150113869969374865914496023132914344290108183055391128222615809905416184528541741905134427072660203793193098315119981233955901833445519825731341443919870464278505938478729559157890101736078569187010381556042077401408404016783713125750375229113410689544490317721754368356025041235808708295536461001020347642950966180536203296755517455263992397404945189248860438944311296204747505274786906020637064214809482966856287809484409285162793272681299120398058948390487259838457500662689586891262525258864359025780980555079892783084654070180337530939279889807986709294115048426315736676651508558188062795567848350033527817263334547700503871272957579643219011176306851275095083057806426252791908930373743674450574662837911226840990082152979015770329785338822405722232747029149121385429006404327492544883066544473753975637601881081486466428561935904701531485982251802682972047510771502472306355296010270564775317704100260665285734073272399007766280019463192078866433277246757541240517380944469225084206243777842847295011499466873015664676606338926919666651436416812479909043749327471240632818434952413570237922665188348314369388179349939754259887357596152091496785462583019811138314544926925288216539546347890392160580317644226785649356576088471255124479522058579420727719160206461440710058967824016843658499364873631528235467200661395522745213937555198652994460579780306006520556510807246330324926374362967775416673019393257502631941383195324076614253846552578420165614232426702211975309256084900777949032946886088400036037153250718769223135213310194367080678941305898731134097622687368462409929585378152280155926525915252081463328276898648624308153169195913084117376112458315001831061448853013007799794124681781644366927512222266072136848430100311985529437838068828973442940529048069167221644361642539050686216881345399348373881690186286740950590349518041956738811373879197468789749402724280094221995046675766105524905894873960131260135134850444652524325429284658282467317229616195349771795958269649975228860008601393441921474323697469425897927370720498402298212615800755465723614126410053009240379899364341253540511524318445944573372776861408192133993359625332108377167742244475039843633976741142467700459828339724091285774277888636796120874021986533799207345558407942213713864333473387697542087440167681713461489038422712068076958010322407368922986950821174664688153417100662217369917539079467484685180331099049439973924392821844953995770900128160529249080497690991209027604125066466767620760190441977501679825099724496994497503678243437331643879041780576108950975448052671775279503076329152211844371268368849614834631699280851406153507857276667450676387848630939644942627835613174669730852824103692880813816577909507271902492621355176389362568872170542696807358080867355431151113935319582849451454197294951310739909643176325501940541170658292180920393312029986792690625275219670560387660687224848202552172513679155878035393400522312921590368695262204895764422192070230812005230322304410796813905924604867062360352359594948355315864021551677512393768829273578861530227790748438899632814396031625979027690958749684210864179600755377256609997957791361903807632573785491893727941201013395590709609408450962951244833675884962080176481589031502548497801810073638597535448584255974564311333696183648703613567302079414318285184232044819842647496859813938161637523329528311267085307908461970040221701913803048125838797914789921922917563328772248310639310264730638474775383498868308094339868276462896840171440476746854351604934849169218023154677630446453985698103402823957680234219945264666350288595062835387877308359028673237468639207700639845267367230668455603428602822779646339187283309885683457440322372225032589428312277570406292125850624664481788555220737406222195388619415791337989170694579952469627324318262897614998010562953454906418097954528163530463784557403312646326739811423825374296912151415510984939415505593579466238384895714576015590705579079814413598128475151808855061826712621301939132583287584126046663733384596384472655098694364261492129133303815811053613977786376712997204474214823474974374066019104980313613341569742374800709267863618256862012933177559318162290449477953082825683889865325879039923954133670337015213473175100699516108417022416127860685922499935680317167976422458587543906355969286735269065715730348555966866662220260188537641938446932244520873173966604069987917243360084744938731791810861566812684732150125660808996346049156144885279749063770860516519626975940924595475498820012562164274526080375420221969366460761383360765393310108071340087270205411500501980169483924647145114639289461855506691086590009893208883772689311114042095447185232117060546894854833856685720521502768190216877335048627212583751263030686810856962231128897404635627199592667919221364036629749645061721989259548201515580766284729720349607277067555453889404272479159496773807119920879939454453767081620526052304681804224965701820569277237694024930309284967823104672642916331034555123357456817196961224386515034861545031969251994922868242438862816851936488867736503468519292195433147186527419148206877055485325206509636682204625676763490386785314949772818450975744553872685290692159396771520354183461723501466473741203782203183425672655241895712840929833020305347908451620630772191658432969511164140397420655760847919066689781125604616232109787666435986267193449637246720510511478686816396927942568692872220641702321015874835618826895188246586827735165693066322308123111549133595001953924750604533223539965611485013628980103915309818000170060598578287903559846977229427908577243525768857447587830313215077953706265736991336601023119129528038260688896505624643239260619315315093536576368430323348164370633740394671098114787941666026432270230396826513621943268938235300755987173724500974978951956224130494081402456877995671334745465180345829439863125428518044114750251990043359584281792962931366324223168253637731800308282666163439132073937894610981930491480234634152103886130706093251247726503182484341551245674084243295561103402661111855422596616643967156927039391940799535081561051188104116086738750145757350012386498389626197784745051129964758570643122329863295063877008160703528722723094796699774392487335426284535171532295624679193285968264361834919083526596263064694274606829112358051354687810118765791827798989076558594020790314294248826517226423581030749174057748130103292654057196779259985006977508499338670170039921194996790423936378600197473303919132209026546173197447829948784895942625366030415184958166269444407111981609871112009272190444253907875560731971800741558695401368444948631897520997882746605760061993649252814391785664313809571049621535523254850123321074337813111466252604739664208416427165041676996023233406122998262390798974990314214595348345581201157287747281513607662175502183076375942807310666299609232852757208162259526207301667479553710840747045755241204936429000646161931027997073941448588066272645730970225481402826819659553348528288596448135037738874252901460423988986304456355511968325516084245327796046243409169821558197141562923716613012823488204770597913501694846506237726197010641863719280810571860514254890985452631637244321206300461477483644781050945696806634166651357358939170072059956438252107143054151930240173607110598498579556341183335993954715998280525807238325352522951038547925676356007344367472333424942792561626393030724642500636032229300959671189463760421835499457910653997575769006854746116623029426454981887692698958461416307383487422678458387669001867871035268340656359871864014354629048989493038814667497057480181879760976765553337231842507285927242518464897873298071440490863018370997506596316478828932499482327906480225442866522729730861542828482681932062320449715120708868685035799548088643941710016701142339793524229838553429892781687817432690366941026816982604054383398084272299195878258866017225455900410653325021633276537546862566773373687195725023037548427890803205366301130727978193791560003813220750801988381980764868480621238140003243409996130123118217204228674592186933903096582855814583820912744651216130543152064741080790600986549738745253141921721415515379317590979044478506196222526276555067188578476163038314330239089751517357556310716297687187543588285132923226473413463467987243922144601794153241563817435620233823885917529448509882158079633941344554074343012607644858101021430304141082884560379739562571347231310281628326474058219804794119047518141871565134529424896075132049671961222532604997748608881317927058705230175177160862756411190315267443416395281977170371578232771405932985954045444336727297446645069225846395736195915701478732701603613787713736972120490226513621340968035056977504858364877790198009262465285252217202361499815374308691363055117142297635338714817501078998545520815222778804585085120092077323422823663069150221364308710507056107920349336267553432059502455162741372412024683328019082065128273496658569863641284457344842488445894971484151712986397208864969993008629831561190809222867613902195274992070168291307755360763255673617402859589593905854018100300268813492859468569753100392531113489860235383063305797676642861543273359444222188516250356721285225625510128051344243493660598377896697477549127569571459451401542185605463298319317758466725192273584321885208061934564371830943934663100767992661945705170681678926841021461019101074535060952577208354024397211474739376929110334691327125480555727435740600260370969765686406821493897463334076069672609398198834329730005140242949249609944007531991990228970936736464698985884043827489124964018212213654175454730166700244665493282258085256272830471946664748066792557931589401619081453606681578489419107407137805236384899755055005881438242003591635778346371495424927777264536427312274387445884973321435363867354221079196794740210313558520440108900345875279778281123693079621139563261883062219287687550642772286961673521844733953885672542201358025136179887568211516053420755818146336540662242513905098590577023095221219971628354472866641279517312573549186595326954741389137380535338491634375262443315040643067199310722225286917414402447268077742626802184501060185413657512329290299744539411292622734724178176409743968214702374729817872982030159178804546922977147274377144825188926535635735012304169463927383265647659634912838026660042358495175997221441964644489146833424770610310815951666117704267903077289404126950061325679467459068520208144513998474283658190337083292439575759820923999358943045278906330439856963075165665480485373431541543987089066454448352198267641373079264198668655457064931096366537599802752995170983582123443155161115016400330669838294817823328091745936605011419538485251988439729503021818964332271067029321693681960619724344013176475549171562310316301517446425564700253571898301987802222532492501010526730547198841163052713552343234450128738537133977311173930784401928279989853755971430902992402728047869954804013875321552047808030750785958686067723884395728840561985828781592027300231467164355721086227614619137750904017635209626241187276491475794740771122568606912637087957110306665445415699079101907797336770163923238223044295227229925085463098450527830980165092589624651032934096585532245794439412346832641516661604996682449638108711771081352462628530194062993607388937923808409162155145870610885189355801665134146737028366756344330268400413309609466230753643364310526975871936612399276184879936873172464960563243574311633801527798231550150803362889167715695675980188203185103756823693705910765066517693945840604706541065979253755337235714561891075221200420396608464236942143805104314311632228046860930704923217205847862401032562682164435392362435243026864883364502906207306503362105747830465547132721980142168433255375625580538447086147589260749110550513958762610649341303221030446542881885369992841319106647172780571197479010585507528121520393785411756387587116388447038227451747868284706574847891662587820115134090074140154681544071026034898157897212786829806905261433539889949439810293020473624270235393972358621318009349970958285103539589890213441546045325622596436031003266329440327441292259532522096792262586204949895951360832262501303156631805672067570354167611099500435065832827077391746551761130107864147642686784034538336218964861826387268535281092881306020873184508582218582321935039706437999254243733716136145273638917333730682546431415588019998068580814400000188926357021843547755102678735369659576034797681065615277813857266465627228841088782719732859746616335808681064747908528717341958823847252740853927765238205421796512375417995505626465696435892533233394982656511827011695683467174475757521895213855197392527605002423695635801840301830152831755853135648408113831963486162870911079557685712739429331441427329010458965760863150710169214092693803392720044889531324783382979536056390003104381953128638544505956490653101696926320525495587528215955119546502161380187306373145420825643569235815505122870259797801210963576579277564105019590329942749237492208178645251133501222480836747916970205071447287060315709818825040151198193742842991949206927333155117035767827105007087930657098098263831699014408048147029684286484493589769940906715139604484039690046611275577963867573787516679971575670862873808859035051360421982738265092459781661857157481763472116474282909452163222958872751178512870749173394114686621638446020035177182089297276858235535376895854209687705617701275710820625945885173042767515322683617977992501327640920512460033098057381452319195650277008978255948243018220297156712757991233598352612020986027457135872572747088348423903183119268326510256382663538125208854036656875033915842789287972225806840321460026995984348565167142697936006915699751491859161735211090934368795027442209227887136316165350748084869589123734694184694371897347110932721805875147968835367199952168105285771233828314806678412215032260655277940802473373573020296628548997795437368717704480021213333682244805794670100875585787170841535951533462337879739462217418186614580384124539423170566250903229841088464255919056881990304178632812586164839491084327094985049042310244223506661814448706482287475329301855474361460865519432406006873751310378763013032858324774288493431802308354048656141825695053031311445907542039796262602231543270327766110968808601835516187100464533044932150243541050597191026366313081608930096624202583426817542300816398590688053255587417453293135605802652775869378783964919321156503926870445769216242112137751405018229960226904514171172318214872225926065133911711822371001423113241519824714829374088385764108995740713454344993345658172679461893464224776456051709368238724594153845765539173375334378749195868603123465677878388285837236328601849223906002420929561800651847460041340050621057896001997230390192991523001989738830415314774375629984319466498983104308105459227034489188384648226584410075919778203194540119766237738569107028137590069899210233665297895518537918188470339636098891415768530999571342829889989260290389705759806619650980588411937394812594108614331492875361453209796148148099175984762856866971930881944211020990709215064030236895621697200902702010057422561240614351610483621527246458188079636482925060535476643416081322800693954707678756515861040948224161954756418170846982552466032612003900002344089822900982730459298114668791290115811349749296354260612568870100157550100328428111213042890711888345511374625846905066438146903590810578196169941604173418869823411931905005134125388884801280466091452746849053704395548851016264090530719916084640548673839258626103368521728378565268390494500497676215872012565044752635751670442804164898135820484353206776604194192406568830583212427506391915299102647224420079808516500551381281541259205396928343771783754376222556675673673500462043537984599052667331233072865569071552617734685389262675633534219074983848649634600335536088900352156460421056759155001682621069238547335270640555853332647823378786794169497185748093057784762531215959068784735065342250639502350944381260044807258757749939565012535664155255619487786603526375669077692407852221793827990597211569656701286813152474121985691670868024035546026399253669219743204832596330369240909080787090214891174749255930017905169103722967984342506248684442569934309366489683297330597024888589820358270300718974354037780321499544836953876541147339063089171985211236294318208013988586298461762395910769736307078357024141117116202373085509338042716609701491119670456341745569968237489178944687679081547623327736018883727490232681710766904700337608494204371882271229879032556743304230018316990975855461321274834564448620988823546086195406153927780474335848396739346684627274204617387118166960416260202133588819469260075123036586659144210570580731369781832934270341826064348063777409207596208011059181594262612777574810098751455776734403922496534527082099690434639540809604632960224916581852355287482151096755788735418938525810301802952149330176627823648526192496393216151203780584471758500564762649094803817340968537998949554466134761559379224030506721473952809076869259259583879025968944757121173599557596400427926337661848129804204274640843044230645517918549777420372691049983785936510493682454873316654447677120462522648325313653550046896374988987229107351109128486974395030841991333553553752217076351731709954631660311435824207943027199268460800687282340192936815741058698400266267500038024832735722406796001169961780897192679838985051114948343301254024720178353349969593565090699251834735949612624247453574018176431512325472280502791523203026127258568561868651698946916120032398873934272404161249991839926798074618087769160279700586625469161963445455517497546300359452791913663514110858992757618870069889539011018725636849047398152524123339657972281280220121761627892321150293138217496549321478536991931632466088806862738264497610266529550312271679626490464642768665852906987907293012470714347292243726097621825271808017833371894878772172417201844599542781578884883799518965661431519316810819854051435877961278965522352490483140679893076560683045908914240683093150343283413746981638017189835199305838438740900667654734528391099316375369316397111971131905857558127577012934744131881847830797876055890701081587727477659114137841645894369911838348283616861353456640053767796576492654576202764183082028187082460255299473990794027704000772753795866097470803254887244933678890168031508100495840605995953245175293665486612929181785941471283174166123480011254381617511375517846287306101972211276626784057466305823727496846986028205543675234387146262586987964905148325101526856609958306378269528577722731170415567716140780450615398528133298802681222174492148824688415224521976209463864142445683255625874752832200318757428065294109749017744260586942718201941567629034547622261526613163298334178150732554511007441206436865123663567410402887573132115649393764617483431473647954158440625621033647552536202362931974710736430194578614200861861772183783970497229353839741263645029435779670395769592040238441221907159417877476073358589629827118949966978273179271293910900025340477787563687109080120881318573687709094622445122398804808837478222039592259947302694118106794008147074301736515792850077366495270533451988961102771802641428038329103117101557598967421246098026535994253972674222929787435235671562308935140273077884771438368217732016776912092611066522937372258650170188998676602249495144532116692181215484442890546053377007406534023668527970429218770235417685977583403673339247684130229927564064297232132568110258011598663359339180740805556297891875546260865446170249252449107523738512900667357867201562968113121296281039200470635449101467537260399233982594995620242526376069620392704759501170155001515073205390326785359225635251677384051917040429779792841214082384487552748003016765322482789117008750332182986708531779220757486316500602574464252691968607019289630118721488739156027996346783191685594630884110250754194934933842557842574558550520309049716574358901077530083270900708001112408875532533814120372444643642370871971931419924262113402395508879879346434763171978929776888182143770867632441021393228780743413634288456538468886633049263982282149249395999578973439247742755670142677338623174568756687717686720490193261446782333588651648202638613399432148440256495568503200892275221406094592586059560283981125864904816800467969491170465137036390313638345597611081743665053598242254967815596601221259788572467939940547494222235778679229133311403165986300183604208854423853257252998574543598616731120201489655297826514258491582827773281609523379214234883766096716191136944341419228502135010153828866105295567475007871863048175161862941532721796760200235440697752902024369702558825848788814596806494267325464156507444821014856295169243693171316088751948798713351469547795904305468818134229829779030130279863426305642404379366717474371615569587390798594568070489480129531002735017920654319024512216434207900373098528501923429533874859398157814763741504082167661358220868359251274839827805715875889112939731422770629116807458868887017008100946959196525288173814465563998587480661431776774743199569242859590784562016854589526652650285154170878006489869801439112618087914261076676513333648760274317010689784445386667376605929606844998183427906840671373476221313394142275960095277769584597683724581767134097675006732939099743438669794369058136958359298642389778705340981968151593446515867917142548965853185879586386419006852245946818346483919214740043513769448274593145109477882873221578174331865614232875799365184206726944725268834485116994169214560816983617303883062558615494938606518468167573199504654171514003470346485823968179034157830116669688064344929158287868478552651239048129621118442551144725841711359728800852246423704442386216539204906489822333409185028719452752693314710003203898377867582004276802873122674805734684417789426842138436020507529386013260571689645658555652612913772130790820914467885572229865949842436711244830086657761640513139730211822869230603627137716709605878432894736544726169730376432346084835814618285235211389004260062394487008217736311444621127087276410412117025856412634160360493520052228061920684481592524000937559193247303904671889326594457338104247918548994956963986972946777693652715205066683479990360325824745323244102387060383526673904516613383178666778861476708891161713594313878548383461683976729427199932038827726390476817238833141312342209461197552081182267802149284576972134668492176929290113947534418714086946016994395724000847713960419267269581676998936825710611362314292661678934384617332522111050353645676229126219188732659257591108793343795738077259118883777798462518372083017224165515519287435966968995629316538274093980029427872678289063623172789214252612908813639953715900775404228617852103105495610816929220280697864889560170780316912998075050796374264002425493285897546266309071735786987687179733570376478783502179244894481256483019607140543912525098939791935804072533319724207289960263162690378241652607543752456043690219311872987884596931556063938249624130737644764739892842379835912682708120559420715332003231284491014174390010506650709519893602428796826413983069677335468982659174074336110680122048001280854485647496978629526855654031423223041125649155753123753048748337750543162861115138168241069455900517237362520830200756328303877148278611445444806316006721565376955229012413185568923197420586830803795355768046337898885322724458026696428020733268063035110035245625250358039357226236273223018923381757692894572465280841650790370035524738993165776557196393386303564165201800625433355753366910202404903251691012977450291822868978342599479090636273468123975049520730530204489083691520998626175342670173248279077570606819667824431494668651665292461474935192814296264960389209497628325524390536263069289276208153408792049900304380878655775361426664017230484785580216717683284643487485213243568459412554674214321924681349546567563303078809066042019581140083183624564826864264066983453952777393131459625898908827531496693488950336698373698111766624239951900614831377955442665461380234370826864784208391673402279779068441669522048808226484305241343723821046628897271184777835769703209683981643661456515771272879064532032892414718296259238240715378953974711457879268591191152841528807377115637907495180197948271858134213046947763687952172996040603309028330064372648517970644637877431792676158170351938926472298112060435110608629666232842060444966439492257392687593468470349760024685805771200172363320250962527492887721985094843665900336987235223730244189956940637489396514518716954030775373605399055491007344044303624232178377405903353912207562845597802624263022399842069898068255246266055949904148728325559783979645423109178578545760924957211223396182224184809084161719748462117551782188289319718154301830245460194906288205994072265863967710796582537537150767933811656464545047380173406467126038599330920622495547922987526371566251584510269454531275688559021424509145296145450208087092912918088617597202440298444662257603552072464696798623718367617279503050310687457451922956155182611682972552208248908769378851956929169443733114117278898217756337993386964444914359376559614591911520049698893819629015123785169583797844509503502067540867646195115962028502670777249719962795261158346352031384801409045852138940255347839264307304848170866470749019400733480002470644432413499022863332293065577864460527877161877635359482350716979206277343751505146949191313342048042855786465214932065361797047165886360927571980261040189525917746387745428374308460056092412832147437729923865958028975855975106359000884491988152519494821214349506642818619330407343377410729192273241813729078227047876239185783944585652855574038532134164158416384257826077337315967183935227734598185960529068277646864392440974843275578433710396266046293079885211152951330431804917116480345729450993075422917011315726191235602236412070882838577143008965378395952031819974017043148777171689548533941458307461129234560280727614318242757419753567191279968387856981936178264382831724543519758411416864934219987754330776936682360704458095416748259867983932355534828557510939066163562533553524187484922833306304772268987817553283366446291599190248451337814901759053089576977132196190490213331596837546286697713053757470954473854601294733707093662292187084980479316737191281298271210376171741506015740948205253135556968417534793045879363637807511604622894646418967978816268276116188690833480550761632065580606296009645770721133491806226302024888433991651289830181462900134976905646467666578495792795632828835358949080632196918886205196025822485875922333419549458487746769317668461954784922210009440432590287623909813435732940247522660878748061966304367327637956950022439376046064647372490796516975600425348111211843696754734712481893378248218794957226270975344045543088601893974226024004847302778908772673642075570933510732664753256682236467943025113002868383699746774695778560170667451401415352122565407228733066684537102149129961041550411610400225884031075669846520551981114074946382472093869540474622017628550893169859036524027904414907224523889603013378150071180113162552665216975780360113706946031328442176813612065948869864094753661796974240878473587458501729062116734426687107443741589112652127880432180370015463872442475538599151760604248897358021593420822616624343906907917736665678138624345375762883097406006307347272384004447262871564955404778247666103188936505528076208384769768350579413769529584435920515469823133534631091616681663795838783530277463892761767177816849118126941770707918331350276231146317829321020218170020599027113111243748446686379448280778496055481873542357813801408283007070368829691902365598211887097848729314399631007194393492081525676074184842615166255089965179373389049929717831177243798511906323826587814569422660142924065733022873614688803022199701318204434110808872718016256935995266416581330475197712105974374681466128491327857386957975264895830714906403832083874216922480628928759189109923198697479976601251036374436587011231376176844736173124066561635403991328854370082164457193098824604580652513535226645268835279550291770838088584450209347368465645987819866245851497843579570143430864217464621622488757253034405203623534425362672667740418813239813299880157028934155107541651406692822673466765340466600591747858551956372467996128849735781085908371685589487072894393723451957667719227295724498699908135012408976362460980626604237365121082399706323123251260146342511156718136202196520059648217113696024879933762687906796835693087281781988505065719714521880469199244476697680400065711865973163923145208486477161343967701360503844031720110723792234861288592284569649566147734483136502097934356106661062464044147753962645373478838043690705332372465069666249457318986562751924253019940984978010788165454463944098654148960761589707689879027716542224200108725221280931019499603242454385992016495676547740392290622084421205625773481276777421700420748482609822848831436456320455176196137242437285736051649698093982672904108243359083248078179046017542247210782168704143183499864027630797081932012978013553997998687089575363512333830431894851508923080504951959483773992251844627845230460586046244672848635675993032524900883699117018014411609195177348129817945667362597462530644904910371564199504050225202689604006377876272253780222121460938597830633067479214612500832789841989760565030903157307263082326845034767845645793155104733527082105365828949157806175254268906687137256359293502501839193730894689038978315511505438001996946081419610173918534055588219018783897566469171008803524663034545467906018487944192437280162349012035470370516923045548865669633930214030447995674499293741754144747179133381746952257130318007042079665807777073710670909496796366108841438426006928391619750910037163980617235869788473003325366118804066063745812340582291210229938754600749366474000068504758582375212151427188526977780987303507272641111373850675606941142265373340000279859696347777216196461981337338275122111541277722047999972214044893894704521644260126836320122516430591548579763132494792752131808678158950107778982911020361014434681513033312937515393328618339560129445503220846501078705067621221743594311779304927673428151208255161407709816835659794402078015736251949693560208660881997854159198272768340857184976073211759905827660130545343939317077120970565923808186421863074576345513274686935370842091767596482227404312870809261638453256140855172178385759102329684927549711335634961635416790851564443850025172271788074023273851522984277157568248161078477982770261569233082698087162006523292251413284581689457867340744413682028241309641786801845161483743978241200538300512132665711450509538043555353380910074375757940329118269927190805560793541977133898842747475357094149051266905431238221306065020694973741194442987448950693278208939006663426532436339312700357441978705831004546962940187145340824191617081359366678239189125136025752457268244779714924676117530251308549958959793031292602321174374398348833384975855199687661178064419456957451194946213239064998538782572773523325669485690368895076965790487805092705587811073299808802149873760320973826886196317196025489673221670772629383972548590300368310333144961287424112554453947965186923737234568285133964679816456689041701453727179260739438229238867981196429822740039775065790125146730733336909652782911996880340926487585424133059100116916992717198776443922939306007239368817513707945966299878438409767939187028803257230083923070985700453479954404398294029894789894317788508047333989076723845821410428516548409169705291636478625123971557294947447826907689996962357771033878893795782566042672468907182743786083134375390966272526866812963245570303032972707238370390526474833497974438853666798269129979827774622253729666699661525076077012678780870148186373123059912728680224660318625785693396500223033562854630508266485126760910194459116665841012193095999989862168396206883283692036945168330301028775525050626628458246101932375209988666069125167480688201167879244696994954536089764865338113176265745614418405416322054491972973569469027097440914959133507528877129013879848695405811247206288759266268692657251722929874860378738417856407245456351066256793626990130241231258159429373369344862121410175843152973538972872066615310030403544727355238562296994027504998750416251797033192503022972620060712644545850919945965020850234293934417268186598934833193722907468967903583634562911086321181889491663078621661055491678932671254006250554489973859568831909233614247587072876087634713251805457099009956727388818902703219375376739685139090747779739995409458179066875737375519623218446126292929800762284115842735606692564253331715703559153573640716624952283982334817515565724798263324344950216023135615503076796439163755771115720483518459512518049753592825176817786263468216170176819345821299782595575913487253080113842482051272794235380985940420878075099001703436350623837553331610140980999054860667395080756194266654146899859651668834448038825484302712160031967334029137820011752251652848010976886078861517905724364115700388041619457223565975934889889010404843005766593268539660781574959014294363327666726918601777683076704470824129320342509234006246056988169028037951462032175686373215082527477472743628074567853807037801321903114118893402949149706920760125837691516990579886249489037059572113415848633110574761659809081342485550349550962372191564597543641831034072128714029527162079797139664187464462176141516242449749221034771774444811299830278387864951944981082916138089836049482016399101173399164203303236352972793264236329941985276939227112396415191665104760519199940606338796812114171299520904203218901734074466906864640076368419702501408744983944082049843043593514321722346417977796748720366939205312701772416990900899863364369810459256902776948995666241957915843005947109944268834959071639246099478716279114390735448994475188284553229104675345087112140308008072283058276966428141609122826658613082436717633187046724642127284133779536796604473696044312543838932449555613700805954791908255818861329554815776488241316943442615816325249092873965510535835956721531187209995165221814754387914641407914596002338225094601048834480605417375389567246719867016491600671754203107179195470435825420757135291917959163556402067282348983815455043181115822227631268834622431965325038995444483866776079520027499711956583103268244571806610449768474742363067688243316624307262523827440501926844784348513971428653981183799871910373251932840523595391516947360761586240415030143549829493878234386922302872039374981683735780607473121289832877694254312870122707201561005941213304824985599987464201769734347005556586018047822504378958295952183782683972121056311636287432064191548968732927265106003556205768076050425485102270303717203525546836823418896501119079813364924048694489952464550770913394024026585304602361155155282112212003689071351207460054375055339295317169268718809654873125981771236375825460349887069208145486440656937603724282929611945435670350846118922043257066572347972538757251167562436608210262457919089693751362522126129026697644648929282194446347272570015136222681303950593486622857331587935631099461875994957251775077459489202728910213854074245162295464712662195196550395268242391819353896277318257921762111118991844980671763264421666989611909317536622746160160028359805691507261615099562269471975760763680236093821273181025298074990093401711028937912982838443740405683186633650480522406441886940157102706048007524653961639529046303917668837802027232185749048649921516564505011771795057949929428061040818002834264966653683500804779224161118987740484827424093973078797096563069752793422929406567486060680025264315515451707847152336485914305267123139566975495466821578026924966071700349098750722887793332336933820982136206218459959462364622647519647939402869743531908241500366299793572662099526980380296356632670361433328017444289131372044731979941724453211642377672060332969083811041323660395638448518181233946972370243360713090729366634149479765657022126236140755077154497407268422715797089602907440729568172697499436889143978530030001687032090629586724551149913965767167244552391686814142173745752993084324203626064007564594780263614025313635023365131711163950978192030249646788362126431412306613227228442241069838767948964128713141400345677828943166616686109098164501859379824635687108927451141000798905081534406057243997993411543625518622674380015487138687423372774056868037710798419975700006293455919938208554590007616663900921555044166045569926377722399077155998982667080491163746368073658022715819494537908331383501609556735324016419138103617306610683174690089842018025754429086103878559579960892143380343956633960603152059690441932393918750163141137790293286126642024486965285725454064378187998589854395942292383774878482650471878739174076785171725401636796958142945890042743336693282294540347330342003066337239054546879476107606815009290764352789167867102445981506866272448413163376835481422362905234422971849352488123909325704072587905755720755983929331012080570263424945922550264701322045882404663295568660275508799701289070339459471207765183945504471949266137450529638699010823885743927785689530590459257170152406573445676265248285849912178350760786353420086065425197210023969617983889048988421122382791114468237933024162168349525818008614660056908271955421453873620286726279904426683196204862459319069581044392067288166189143053241835561607272331401863866674696902648155919878712062011900295297227943582762165998119361024725024211663570424942048316496533936706052336314783870898137197001430263547723718784858626549994941477590964460192435368845361028661975635613541105826702063604477191164959766669426566388146383450143673017143891588055957177518262274706710966051295488490513453512732091356408554438860042636221915312534081634119157107213839354440319927099202385993462669112015559193996260379415030093091623469294901864120603862069935040390787520290055512727903107175573242920493660221522843534347357790890540972772757872471667594897054521006045320014317385553073982301031800711219834710325645768838854246995580262342709795846701267560732269623139686330117596556950536443899353659868747318820090107944708773419477877242455220881573972213473466119652568155809095633589075623127397468443794433408169709436092808575166315404807960175125253177086028152586582714821065146798875084631688477318086839426476479468007430432799040806779480329841986435745527648254598303127679579630402525677044956888883499851897531635079446854496029468434095226528536488194017111575865658207400858288590541476847542372213597940635606229956032056457166758600432902222049041071582848696275129512517878817315071514978068201990432260661694684586328483714410138673055079555363612482612603130217961360250516370393450509442814774112064642815938173703350245524512389636586515874149322718936760347235963209808913307717015658222169476900285439738059668527811373605982620242276131482361572880732870074534036132406543858363275463992108376818163523195938886363116309814147553332008831845588044609447153776067200160251836750093094395442832121777066490121897975071736039173576841955863502206532704428628101604212719357910691734743951313513830500784520861262339226949057165946498362993449912299228558431297412853830043552581696381598664274546934277004511764088748222976551240962072142942350807556762243751475277787064593255270621750613645677374750075522922290167875311377633003442117610935930834239377092363257265866102425786009693403502271825039707228312232139907310147843495837854543951635598092787906511708682279244132734571095833743243921462229866151611562187035006300213831847542739944585793462834933600226524803916957216391634286297682011697191569533584204362907711946526192137440393392917174131233404320209900282882971653917373099322451952953771104771001589992733587962909724626482940869672401031943175391203236841536479393728222303376862366655254300042507399235733996161966311184557745348211216698171715492179666814886215379288102466802110868785202821313989294249935618249477995740903554135255794222900117637803024446674507694994379526739148631913749444929151780743568393759756020255209945120496394778329170590524312364058408068662696816923239457505277317964267627931826344401210884725297689307844697874038165077570411036433981272121254915650321226712168960125253125304788207773637379611546863748487420601075661956094535246114444845393659107780757685792975763004824980456637110992926404170217059328981550510643511104381931216645929544743313174578418659692439795514323370289920345005480291601298074401872930355813939704422164191441179200993275567108138299426794605227599769382585119432644009551989723924810747338097267774005460466561492211092549121162165080832062766074820895259501530872514154515843723529650794375221976591284528257035889061039683300017056374411453705382341220725325022223514484403980562578000167793280633132181639208284731495809148237621065109277134445343470262056892068467016344661204896999273069301441668817507154797276410479161816950321412259968391149020611380287153821325670021130538567420952329913815488869582392696131840057791715206221575884831125651240765147285674525224678625599155877194342925706264678563858568092907573892751209218435251385939417269136315426580724970297055257232647150718351672925118666403584671418375613845556746551343973817632862994882682048735837228643989818201591299071381181202476767110958018382000186372957388425591597030208664549914884095601699427182857677436155067815374230084496094327960286649929227358538467181194120660256356268759940827833350526797787236895794388970035593034469873586759912129131195606981348922052408216477095967013060164781038993600534134949355780545775584356504835401771758820877390796655167277542386770952992798856252334370813914989180481122182453254404448318779614979742218813697544680335882007585877314027973014719546035141054978566183540934629155805952352854894604152885575306740390375726008497302339546800042424931210156981678299130791806361776813593431513335551749904868112816413629371903488487061116011053639579028470159405753559392099709026950223423766681155292230754618325119735755304133472519058163532330808223029900320074009494234694749445626514583481104372730750072476771562405480156184903441535246608304521214263730651607247929620911638777547765946503413152473538543987645519636490762728045380782505880877948800542862711931640827760183530547411607686595380520558456798067168227662391746993501672478133105968381968955003673515013389506459574982840652774276866002182320716468658152766695570912484429086647068057360565382552854662805402641441785698173126277646800325215684620231463764836029789453898391757879293634736577931404265266581776272139715165636708998671245572436190916492259444023124106551776961967921462866045301279578637661316573024923755558992520485231203931716047779888193737559366882710872422117332712209017718468347232041641466426768498603089667285641566391829199187414528605884616146249156731251429609516737759700929438295144105299539817199572940580581409933354040303404449799191921120983537437546692129296996325942226043892039350526200284137547250001244593506385277843767493441348147560019330653102584260705534259380342584053556143574232926729274785887442684065541669712863029084430530218389315456391484348090752967291251283754045384807674147200451825357875226169926768006413479893432081036472765088068195407367367624049708610246768998539418625535777083430185532089069234552667411923486406413380827381157148915468622388731967639454113050100773999726131734042178376007258047192483206789508135168565366568242923226810302948759586725214442189853691296904741872380544819016307429035647052540324545299955549506235916184514550456565932172553592425650282346270029553618844643076193853435294088452615982893670705903681410185006186320485257463736174374678493968145218994693855211584442554520405996729703708749204690028132420544866240360049915687571576997352304003467411742633212509762422346123343369618264869601408034521529550553891005524352583476011502158672729097578583986056571310736376847822752756396632221555549615698291226202145423584828467544507503945730640969308346024968488902966531081526393505960594141976643047342997452745998839235313315026213005480533909116562856256860327939323150290853317338120897418491891548742542726120622124696433879594584088322148520992978154259067876501039519555568698784445410890284142517182419675150059907022243763402327906414634295337269154031780302999219052675495508373424305701091599614916541096179856542923477162595506299117171128223577368186948932661105651521967401596094798582242661161723456148504138648123710862134615696733701589000109507955116254373849570074532719378840534494246374862522529494471124976842138632581333225265459699834964597647575250791251595533982178573230827788194865376151226777015986555720285154907374491517473080078772715965413753076834050458239229002456579341715600334930164818757764931733062278826431776225264210008176180862465136898827246467459308099675807972700419252147691150724628219051837381468199898849947878812520661610432749583529395341844704484500370796911085590459926104643304196800804712710609660066648151501989042480547848647890832877113059065105913998900484309378421017639209923182310291046411504394264913090119630634872071941387352360332000909192592654228141754097540523551703679300854931027222941608996431587720001458215965579736079325164281248645930124655429844192892907722550894041367621726777093646963659822064525978888335529181208977791601173698559240340658068768244700550219945564776392884963562395725395059408550287813619384229996546012264514645268634029375572558207769923364453234244879737074565351232287092778323140849695736053383746511968677587709524504968781743467656150765120101249152564326190744407079345234629937162878719579698366702420067568461955683234820610274991396063078406809148479084575146228161959962246198017838244563735038119995279916146818873816415981905441371154020378906416421209883621569312477668741425181319573971191031507603801240019260181799925846609318395425652832722780750116316858040932193886723196882346007612909281989271266387004611271859935108642199079212644329115886560275834090472881773394197504940653747088596646307691133120518414729534672301479099439276212132091215453449965416185583270365572993492468998195764051184856676916427471512192617964099143283281143094355632111842923344909427688344187303757797345274422923658600038041159407367005018082350047267580359784939149304554769448316350795361493593331311388194748020117678403569221606226744438861187809634257740410066694484261354325643905943219905557774151726763379551137133154109107108924044740549536469224829310990640267541339067635776167271605166055231162882601246533971844246989262842184254668784487653262374318679024206107476734336316537128703398682569476545513919644804656887145988461674789474634984777922371658737502475354303015963628279858570625086106781648039847902949525406281375774285536601476684128665549390204174315623869560065333744581761969859962398029716541408498121500853938603947863036964934249283516316512905884841456417951426017216831787482493490603557708731652212875620817498376982111033058087774772887550984157941377875901806105329938743834747250461524503870513340373284094433548182112195388340164515563680375965133181187641359053398405929035786755085631178664383003299337785798581184460365912611158822234527204662951686181509836495203235156037393160238932326802205719697514059639811771307307638165037417442886197806052431308625437412588460178122782438009993677712918824393416811964954816510867198894617510719261173885613743401175353782522231432999340206787546576916865658444546065974886829943115730748194289671668451737426640694880441565489304027274576025434955389379866629317278797152894162379279432352990155575482303094695688500914620817233486672493730020458873760890314615269069875513371781547668749283545715311873596707160044466360194170315037713496662252775433709626964300615763342682503996820001526900303522969711933093732912849178927248835474332187986610577689707346763007723244582273845662197754802212668638810821012639490898476094692977193102402661465533643424763098620311189723932265404938723148050056146891245914697568257367203683447207338034490074405400923564771470383723940673377310699336745856962925150639331438230658802835305785028356230614358587437940319740359730777304247137617656525413911182587536883877689796522805008964127509474134580221356511882587812503816453688329127845853905226321266124475217820836471797898723679015411471121563577898668414004833813046469416727164183043600264866854030583259059157166909594243660046502169371534789557403055167005083115177001366262094363695211371329860092132049010752499989498505880405495676799942899600868975829798425935430815313478399492984037688817759641829868160022940309202281811538772116654199261584831207693698842719511827064842114936614476382288688827997143509368660381195175087130189672788174382215866959560753502256417503194577055576941819459621639644143705285443215821009115933701008900399249061488933136885461350647630552345709045881689056650583102771391863764218648506834650221490212202054867302149672217286901470670355795807791038633997685715060011792571560729004703437294473186973084432745547791038337249105496698955308013467073607902460771422279873941705770002299841986743060323081246859986746603274574551608489139682172842574728934097927196036012624448607451668696825911990215604257939385254357359301929030933171895190283888721687950273813361753681127377828913347253367770071284055035941400524171677751096392633065278217470870935529806064573258730465677314291663358464423383897148534298321326262894257932366294808605385291457431732197143012518183706500118425487548094810349790047138856697202003539107039253133192314839842747567395294234895558030966466043289152730629756221253882383905967017780521787014127249216825509978499318656768038326687576609704852916751764630593970562467287080740297223311237451906617953290245952101295762549903925730362677261057094983977789722499524282064850155046881660223405359816260064596532793082852900787368372412551876864187927926491906559868366663665005736548642069952295550476900883125965215740729793458508755546421577302246396348448329538174675617051084037836286661248160926340318930002903228795471303463180187624222018063467476993477547932050319877017345916622588274575132422954062458540324956810490226538688125334212447068503366011412754384698641868948487975861155113597954534364191430641338271434308682051709480024619220448781426711715345314525207128148755418098526745160243160360131489197416625792761958623081752459998511769461090465345333427923329290548375891566621493766117952347948385863912538639526505149246629207593358670916429238581793515062152847566610788571743912152638023519161701928272599985918406589873751612478386586669283538383305628820313724202169198832959587399676118084347913866206188776906769784286761726356058490267366485419255194499711830666483045961689682065525610562452476898515011034559570950822957621014467243749223542982136698569021302669199642346815341043638185382384367928842138983357349301696233757991978843616299022388373659511717341037634398794618957439586590318438308072148903484444854669748266575352846307468712552459581216757405238656411630628944689249793304983714812129616125641369651857326660056633600738497425247270912164867964540741066563579615786725866549518595907316797490937817822496703561259517615092417961012771309676219979497675532091261079439023064683681135196654103606372118000258462957571974877023718554012472171735395930220895373890089851830478838819796880128345575635944588296384619713146488547911289485669424889984106612448626228032130993961572123247914318962655137202690444449416828025313684991013748060825340372874893650135816604266837011148183306427174198185575969434050381970250015972504909032502201038048974772711095497833556758202279932189204134028274458693812857132109526156951362733534721264038720798594469804808707938338715654501638248189934512642112510317913875708632798667869124406205699207019042447105645199229731180695039027454483518251063988444843519118268532868687539423926412622174058451700159068190158845909039314252647164428720872833266763406848866467819730547217427604420803239106133262287714346643011194056712605782501909105874688665647810039888755360653906431730174972752732574179399540802731620718627572161439844349122252068140923988780909311136051318078986733367038286846005091410409214255515780815789215075859583075258548071288475524011325360500874217442133813278227030724167673706480273556740426099291908775630613393196905113356346010958049734486404191809987501758808491418895900015144005017055617854375845368196148279248326421589921025912263134522369354713154514196918792742838041117262562319373679901731899236727725380131700633142527281821024040435046839064454722003117485187304636459646643738820439262617511990844284868661722168188776900494657544921771277155159105996360485023349759794555015686445690121961510089686600687563692418083748654074394832546795734611709145711464578203289151004159284320809702104910802276163941639759935896754859435161043284824686530536910222686012497791552227680250548861902459225083341747730482828207081670602370653428176778302194302177178911943572602385247856466676676171232058110997906068866465770762748764918011030165987655234724266348243149750266853349748533040955239680309972885682569830371959719128321824132561445484143100969516881576708569488590767463622464548760594556192573265349971376783265509220310674221484781904993496055168899629766158826544671938970634487680777488582868991282000851205620536660160513775388214812389356539263082958901969706713084732491865900798154823770582198905968008499650415515779744809443132991675040693736202013603629589321903944646144315959795701790352832531337424801970465247095638084460993863754613036297101436902529469619269241202679327784826657812602999459367235498397779556615124126596574153811637346035825211947740064201058971249020336626549509685457588254124726113010429274401804207381910724668586809638337718069001984306584272506235546394422673206084610321029264615647411381832219238163798061554221026697693976064854742463998696949501040200571201296196450239802806311147009620368854382377531273695818201635268918673202505532899601271307573536593634035267345979621175543200830011393946181270784415676027962304908688558083225622920432486743635110708448271256999237805445035067456320651861914079914889335979380795406972322140375268690033696025407764860644029804955200208722600267687815093841361924472448820474906496751302358957258873630220079483316345306994599461173825412883222417998111990133927961952186349172662869615975122360944200834125744802545422924390870141730608288981631248652439964277949563377672182456958425800107965782111463141696193864304087987459726389171823285922258561775984803069592275422492700422006929903379091077509759551478733117486873213621860265717524601126983681067682543156083592834246888411121325747651453897641596664252205280692724349616965039657951443315795467918435659485408118567622226447610475371131663902404117367412725065542657270134630174972643055150194155730534096479790161681881186703853089972668613028464844845826398415210749531679233532802064772172431256321518977988853833514051916670883087283107808489938922805262411326134323117694910047026335631012427633463280721729557679204716303124052226905531108734612172043881059138552462327135327981618513521667786098532212507429651072249731940718737082936692617198677640888818260912859622441899559399145024227370527710437888588753618645292076046942398207360606456178381772030853752517043796293007408892786522720387981811038628277062686319849846335746278839731173333262600563898973084390575891782958186096606067667601898080662605296571979490391346311790175994845346185798511086754885288006076383944102569899006581439992188687702444842964636721980170031718136674198029194786463951399430433121090619105728784889078252068201049852660259592970452152303936260601368294855660771544169987013618876496336474337290255046994945269637378666338247995267549640957826615113302070293001511429876426482009073629523896619248076561881689032939132348809895316030032421555365655186602995425025484020819677390182678538565765968965718775794338636370276959822707003624052080483738639148689103258956144609449405832717638243068554764713043187992764379087453930672180827304849085871605825409091026622856025541996159599924963763347310871766971889217248173358086593907601626779487275851667421844951447449938947333543414214798668239817213835098487150478387090865797230019054003779285137869559942455649921451397153479543372906696329604661567324369235273325640401576293264427808044409121827807500851762498608099947778983144279217694670715830923964560572363639565942127435639855210228957691963912465810973711016224639920768957355217309775263797004872010881703897835000205843534818467831649069402827421374179893041715548433555016220252222987802879508455553707488044146654143156544782416901262980864355506857123781496676392264355960113230560524296024222867780386514839967449393650247225128003540023971392459885737058945836225712924634275068006444075149035327475357642173089253378726932740914195456190324384056713973968844636319784119082134274105033331060085501904024418323945001919988708563040188372504523561202572580718537864412353112900571898555860403138944098967366516861786360944531645970498559016003809905409519546323905074139847856531256633847070949854478085817606647217346156821810237481421463781316376630810372879681268630551575389940016359414045606081377319111113344303604256234635426393626527899214584699054527282743856103121223684995663475668683899109921897902336579439303110959787247799681501942413959374261298616156955751135206880447105508042066868812223570758375046978623013959027698748285181586004056535923820324914851932882206543433956265253700297398788275283463918704171820639554142615051493817248941823871122755407037556723960353610617319300054592576688348579861223086601593526141615177341941396067749327270448574431841068173193819798594676951474481976047175922759246666597265807086923113922878792877049353829458404575409181139744469225037505204396851789730897337479515039271066634613227024606055849831365270416689513374092334714148082482404629506502472347672688043267506424423235164693471727417342104429217313781915335835027676326823229752555819383240174353229150802120369346771110187202588601060535207037925619117927629902972585484623330664203805787118328206626653829180952910688415747248928478710886435143566475478010231313235991959861464418178324744395513167181583488821643572563582677502462130006903427380577374167206041617979792946254593241486095938932477081068409599070078956529271978934385820339591679708237258840132451055317017711166074026624660321005963248507841178088533155164724050659187040275620993279102627812383945711880053987570343354661459800327630472379771870133358219976469902199439033665125252889472304903407209789002437108404173426181093470719831158466674609899405304461158240826292334198226037772709816619422999470930455850931909592629439396407917811224266118598085601403710015488728893687564544613873236031446013528464865350567412485261474751819200436710538983137739682707470359300831634814647347814620415148469387840082944020689129943244920606024986543496477538617902434755413190641196456032171628604345904382906989236245645929917706125777796596614568393617675824636301298112334667111359720839973449532033688873244622518543110028947566509978635592734765271001544217732917171118778491040663873047379697188991059121530237278956110382273426426316110509485094001850282642825755296072121120954994798072687583398833475696207771865204796675688431509642591126585492745148363642555405154530328109041108867807500053818732463658188366764167261297045637457797891402051164986723593097654161438052321445784049380426088632358652261473385624030669856899672487715112722411795065534147745302028653586719309103226118050462656935010603462627200964965799723539897379987143803316972102950776287456532877470780882064395917454576883422911766222724768268987092179937739111701967793056080082925720139741674172422840115952556273815658772457948455468015244461822989867990859446914486499707812620096165532700429204744011586883698273761864175646889165105905939915591297396973048094238484830051864457439449889913718373450046219779522105790149835739797278962633256590821445619210329527609190612158216044866443188162112019363081279748905548416296059193106175781299953308174340717524047167567078666014568393756680809552030908561520254246878019880157151951436766619793599799550767438345309168765666372202406379861467920440283807055620247449463064324649497013127987758778736214208827519821682032994307511658533244587370612741528901313270555401296433775439325098235927564625956053548484921676026739061526551031137890790338635378234756461146495517062519257753020533600530615878792380682052927629170024817883599664181411970667526733450608450376732799412210636003119497487248509395367454489121822778966193697956913136475121242039144922023822638524077859733036806514528743924767777941391530027133432243814489327117190322329931238046757435742835523522208742025305341086965483150051426012040217537157695282796295864938587085430377673095801584744170575149013947118219163819913053950088269858655797267663980827725378648491233565014677316793756188165102644532354553414690293010131822085995478967490639799891949623266730664678123314570595015257426072516348873144077364761421649652281092309827175030403418634383954611678479796895074100165023767481979621876106811455048228245274086831294366261114253828236920430141504255182969201228984852839914925712512670801251147711275318086359786988325068623699218264345468706280065843456125329362547357587569981989857968966276781132389777511923198030758714417701990171985916414782561945090030785830848175869494134366135501352530581049066326881980504526801048638647826511939233223224569387177051073994589448722202581580268292408353791734694180231671950663239911746759194663428276035763525175811625422269607822599887116465965263546366481897639404978345490810551396628841178765087723864921574333704014066462073079582762011114077822484398626810335552322526335719355105859627079865547361208291391341848697679501256431364127921359756670736165418362862500931008644915177018703636142395003187101209266177935024123685196586636308072731987873663461905203500921680601347494284101624307107057951221127856028462156650680537902257387446075035087641094740652912351270831709213411470250885944667068708735753210469079185228929170041396593009456052590569531558535517996356576621888137029234076651713983804972960990702945373293633753117731172678650020311277902792062246106655142637626370380357019087425176186928993459885551368544294281925366989936835222457163018679905163672748650414027293904045532926587954746359174613103723848387170845753920674010979657782727033507988720251825375990864031865999144156340762663603996276306283606684875611300201889959311390542158101728426847962843256782771401831294277595256166113605504413049014649668849781210403973230126542687709607405405593849327555362224819518267682587889618688170266128861251059600517257446215815360414086696807870154305674774117386670336909066607600567227839637956574168657776294138359419265007342976732690454650650220307941197760556026698941598664067151851746001464371777926830204177853658153987635497617447044078690888781506122565051993946644267278997943003174015051680255341822588841366998687694468675125340516695840141805964281181034058626809942148274343803497267436480302639488909865553650759443546114252468580686251835246595485625112558931216660732174226121877518413066162969609644996616317284937062155640923257123693878348947252724860698191174905477642336775632810172952699198986189207779281022380719455145109379592883076111030475928411781467582976243967887308706977942784575500353078245683974293179703206698171052090411198732575200127162261800514581215041207258311616190357459229827161788045796579371713182036239434506821456166328822600719185916743707131777294087549325036386877243570575333040788027043631366284020305541595819680259817503862067793550428917542939916364229957211934781374623883953439880046335568427991150466572931751680154819673154899045862146319836690124267535544261949620144056317424103797587365944770087029960520730437680277833696614903418558129565115983962905196773284559081399928236527664675018030241217211272842405776616356339058357701576669973194472960028802807813781813609314984916130827957528358712148611607773284952305989924661388761176212028508768466392472838898187510215145077903247810341891601531523690627404695223007446395156551292416141536882758949147925192644219254758267648630025785534174215446656937241513615573234230037938875808734147266575221028350918719038306083129892053230318533718829212552138049597956503121769251729214532775366732620990448523015555812857946006151059487799753976070610147461373199416341393694840502076317431298715988962771916740870006091105781815670135027179452977420018886901514843396133956968279433211132351230202409336178972485091393614341596284735543705441011261176254354970743215388435579471847132922331901378840763157388341466504217011380560124996503700314138554572072059136003763769163625801967132763306733921205421692060815155478456354178529059550463844100881210780257708271360330853551921322744271200153448827482317752099633668184211390868395564262681298993372806946283203179745334691059602683390268174592641150405556693296845486656980787494554591243945468404992836025053691748706530769134505311303183329572597532940715363862984765307172106238115452808791239436253430203244465558057291608048758725285868494134031298022058950762206454737293934153896598608246810331268746660123780653665586812831746955562035624928834691444648637486985435732816068257559179142726855191380054265646088732979547693614090571891663761250547372150369330458498723277519411963505543905511256488616256982792856274869421107805020989639757129680856205203958638443467947662724468669181594697624515169327061038565317001222778289402234727537004167549399948581247898364936447483946303882178989189982567324133725190349344234753860796801952894943801698282958353724830934636158054832994254714906395924821547075546423082430382282633678096584122886774038216854298211369419748039076193531616988243329613645674726886427807558178846287788045743998899561147978611541692604056381307077696750324253080442807988106049965239020375442048755469149927099608147782524246593319778928172844120934288608572870582408536916059237514487695358110163258346138720300832077842238723737081834015927145527772558378027306083288025144970263229878905459654112910830174153320650212252954143488669960896457919161748165940622313816811445782796755397525028722547754272576620420512192685892502488570793709459163889384070449430761941410224582142613470522388135072066099228223743449250505504051023891335397626010480238310867582040752732510445266412480529825127248677597560071418755218816064679664467982024321810811851126360929915114822824787691701390093220875690434563542916222347441203069541928757306531818207645957053036826895786105253625133976168379716642096855423052334314632292607032839993690448346403615315997824680500144744138180842817531338530885529239172032218532690661293402648904026811470149079547162767786485109696057072595733747072831577428570433720663276359997468404440054250842998133856283025947118074225395975351486188101937681123396416948046552851372297083778345013653806055127957376828921124569870639672528465577053886618406415851427122236613943890237692665830181721602919744093602993454978164601779248142761674303622962918497825120821490842990428023351711360938894690367107812387598319046014271085056936414785503741875530960601404038845364607909650719164327362423320837177299830098728412416100002918042607510115516039216330556145906013444818337379913186313136004209414193994939788591022664482401650074399825753942939201213215390848970389564768422512249161697357346377761710324052619950432534568788660390008723220084219697584078536632261685847568532595114828973561225959388349834142319306020955157007395437326612195130471078751502947443011124819927442303359908392604198361156779795163849772976385706491413330065711894463155961608108950003137883499151679825955282500555236676700222016405188910269370662284806630908643075606333835897480662082210020284863730315081789805892605385587937232467675596270800126591022817074615212356804518615110179099482683377078886763728490093658973636102647790481674148647739158980877945711788093703170887486268364813894846330168139564538872098822295782944537310716994981054035574937914108806851494893925404189003412937178243872752374515125362898479059801976178199192163389247803723548853077435897515141303036245826578414895663903493690953345472389634005860486789902466580349102145143653182860309887685522776802010374970267741563556181839537854880481322592650588279881453901868839526735230165761182830308244202707350665411236742716070195960454098730414551081263562749914530600713848546712983432081692863648553303282772889917052315304154554387663710282728169688122174102964323119766133138132166386670678182036346736650339661887185559855009315254598982143182162004565433786649655682038998930387891284421721270494260964222850550648528227682483427181204479126606313325628979284648707366271882577828143336942357283403977572611013364286114668618866340454633635820455248838634820221683468855284707826324683000492481491971934058240374927195494407935787848753801190331514103278548377062484415856962658724756898180435420436759952371137755857709626578764255646710537945027950840840356966907765077660820696293715117913312280018762351788254557690426211286116045261510286279524484131305705956313227236708667174322366591778197604881986687458088575464538763622418696737866076360510207363616975139354726203747636380379713452134422010094696006060771347740919279394588168184885488348117331775974353512334885512276384436471293003977224119887012981424692775601347416562204835089484337818277569703185531634082013420841026540294183839765716356505871006318019653493759621532508139924466209482094488884083361024781840005346755604550586606086150002470609417913593915368425801541789795211718851318535101225877956195705236477555323785930030565735818646434647481758501422159322668923770205053482661433637688922700554120680020494853393894595207804683154872465652409033358039656939626650568870334863574159695173873617086732355925670268016543650363393347463079892098645692803305987524600551274196642220955951381511746632948840536415892762975292060651679827024269684802955922834318752331069100317676878989485945009237545034320820606218207553030427389396934402836117144711959665924600399458519887050899923555278614227726056478213791358160128439987025743945354898152786745181873898833336948990311926725587963514623227624926529044215001166457025952566855203430092415756523352355427576547161758288842345970191386041132363606233159496536883488668874275848057201663036986290774512860493517688076546480080488200066195861233050177235500887860517087926420652091486213464135386779345240736696764507198230472095675358619393015170872299956036952896270606795585096966098944300972687164233906415232351028327462615655544910922003464326605113280275235094250955611644167510700110782242430640444391247057377733876888447579858913248606840466007858232476519746469258916620663834825027342654177879057795209146434837735996203093522960879352311877030282018059664807479808369750975127716615664400295317215501072143585120457422504209492530809318308990287061425367572278570771902871244413999376162955956422404879504689266393151281966770934217350542307605289672337464411201787763154903835398690397106990603496895915003702187891746105626285610218466879956407083970033197448167793550208570371266594502000087012491706347318624822970552850027984036411948129767855145610842764089675844598270322884786109697171588753244931823246903837477239404818895998954536975861707082880922526872590715324292255670169912387557464127502760018944208533853917429722958648066458924177761777381890521985879448623519191201936003386197886370114226292983110220294045976109173401297033403653861048136788045651822133762733383406682022194140536995153860728129795313560238372860763259549753413052296850459898457389278046321341005921774000369514495561353260816184198374578204210327829640856248425918266135075858420455464575146340869341831304113402123789451867568401834138417417272153227013615319251290743296961906595586808049375525075480221053552095313036420367058190481235467781002351462876259071294579362191794504084909497936939628893377963498105396991691492157807257212981191756796230395333811370230175101108971824798732541242187034514208328797450762836036685968389496070437280464346889889564140975020620332152004818839633944858587993112779830983094032457829798690384217862462808666900022392927686013854447588602558789421307289269401528691496086837326616493152782929283922936070338872739321761422439918634792411825410576403181346900218103947736069898172955782472736205524682319859422218836177736794456598698284162163632451043338284515895554408664498042203827576465655437610311181412073468793629091612721758741069021274619054977696046714620711153595090928090545468129584491967916132283996895931411605093416326317461221585316083419554831998943328176129828800761295749950239260414536475817596252716523113282385504766219787540823065666589834219478047400047966943155303182830423442071722594714076935903388666934343658681137614409237808489781595205815489175777116101125503754519385579889923007466150884755066627552154810354562876180731113935829329137019778721878930010178193118329015063772740863833761593480451218646717217479199397074899227044149076335448837949933243517614071240850840485070753387818657561394314279063827078351370468416781631459774419940080626633872870413636138919703372920445609735900700241176689662582790575091341197553476660877409810417152171749103859064812109407117387291595485545592250230054280428239467509434473070410906896925607515448984443245142742932436972594156260827071944871703577731627951225160704988456246796892585840271392356856535123108884096013595760784179986595291578825216501029833650608220405910970910384928190547890357561836606378717983252631804131996147937697509084325665035121827087523204595464988317889641071639698480485569929774250977015169232759348737112849069000782612174377655630721049231770675414773046960893313103992802222654039556630123837104542360472587534666973411397828116119115816664632301089003166580006840621120657873247371978572660852520755192171990757809021379916691660157329222495792242804306366957508183330013864447522524358304386949548876552623394450327668110352288529732100140240970089734586563610108982111687998572147952671008726948796151408562695485180267862282638101297522347585008468162280415076366493412184568033309206194526835191310438616252711799866446965783229221795238673364748950015394308241835934785748395583420765013724333548680054810881692960584061632520784665544739455637875805859152971918501801852121321212892222268434423373949218304420530542603995907186028544283788234249296135419586189711603088234790914816450694836809652848519064489518487395601599468520041485487464093791614409515204345933231108131312559529812080405461084050481416130246643067667797916038254719477838162434750039223423610588080589666128823816628158523872863164304713583021319449292872672435542677369741418958668914034936197757095262909745794503520086654192490958418257602255767285352853737854003980803716447358050366222996938701415502610054232629261569366154298006876620000908498198749516578110482081900887818349534863711176625626453058450269117269060421470589727641583857094705051426749309746097371887397065546345689222616197175111969290012487189894688808390498225470186380391985127515911562946772780702839249379462898411267377636349376798944313360688330231595129370850416155049829028790815598960421213241421949821311387590428571801183431807610791949370981245604221219598940288499599109264550827198057270700619229789038263291402324369754529929562036744000932123633205896669250404089035439935732329094954433526111936866505481102118627629625000431646193934398330899879932365135743779587359821053335896403301874990354307795853876464003172067807081802773457929980944655072759078649056944078271574587528168238529366413076267348383306465531491562258427333656063092249673719172775195054703661533368035064600867873220889543351693149127049627568608043812274730811936050279057568612274369634531413736868569406376951891882424688482036414358471127579727318910794452345816351825990342047593323474279496218335114099979008038661587237170884297005848597876775832119480202002176898008109492672843241362162611695133214724943290541020670497093160175200027846788784574874901743770763974766799768806271762991272030469975889435075181003599108607676183424789940987877118626413041343314558098124066909905391093075126601667105532371619730973200963194871738922066367180248625673188935832859749523907378861237531857415141986254097648081846041572428572123967831600704043090977485995407248108840373803793290067561901466340726559953591609469698274626688566650191336366467527246582177799516078682200124096735530834858838116787696810112103988711500881275067489586437812275561195005541371283492074732100113681859172863177532416257146058200487977134224035626086350443673853218918366606776660425919238790989281203811937768979055039157733878934869098376348586009606397041990715999275715607967426605945318651738964694468581689244463240149613846329176750886627480179912577971316651950518040548294205130231061658379775323702355147230356975922854471896354798411755246259931585012689303226541339392386274191348411349133811552516033900923665301035192098667330613269641928195099850639795432997607152248480366004463876965353865462434456353636640172681349077759277794867839031776676084302791721714472491540979663459922980358470901390384853343429981722290670788128731583828193094051820260540431510948251136566366877425789039067976640241554800382771337991266827511399399755481090310916402813655036409010765941267181627555503428410888943828933481274974455732375155464539987947220570570397776879283921807778453168272593687723288421697669549498450357463343214136179611751070894262186223867592987807340584493441924327953189811599689279525384021417991354469548349135108732046538935303227353954473807482204811225898616651493693199642709344868187155823900665919110657465742664177458470076595359821192361680455613406851885367968562493912017608948476374309545696823023563296168047021692993294423412237527912567250853531757478143102930067216829629446422910823378100777653836942042760937875842407872534378638294393108376635057120695401913657062569883539370837896985252540403200510770469663708031166450015311534009594043395614169706847206347253689565148551403574179811989862369385236888359006332785090878838222734299100168041198328650054234616088881665158714285044149250524310952432465845859107493382729177720410949295867813578343005455781266174372208305014204021486659760416489512507495112359881666529992051559610618643746907788339849017471298439453012375520125919312933011226540567525375636743556932317044667885882585411340834742281955845870611210757147371307613224352314165167730029386062281734574303664762650899957512110058782510304300339220063772962319728849776927279499973552541649872319763346824075100529749017813367788669484353375240579942352933338012379059845636495932540179834284528231047081495476628040928827962792249303305887893182028231412672692955737161298724792971896313744685206518885329506212750504885761041241455807615611490775379184642973809404091608240808766216709990009900090597680310197068250060172732232110678247941615519027659506687365039004185558346943993846847472214641590684549084946946521960725419785372096725340728098342895272392140404861886903939586499077180113861257614256129975134986231182990382136539349012009831002566270618806703939671481636509379826915824869296396581830544568674358650566425153094473871317972085726225438907606087075446404605943572991949255070255798269030872925959619448848471926627090581741948272213393436946256178088023759026828488761155396243190934598709356499299548992309716003169517938548518299102059678398834052545598784526710163644794379069804058662361209435116341866500200155025255678475979517911922075309358447583767931412335032600334945019566645248119381666873192331632857766057113210177539621306752410245830317060533053767229721045173397092583436268797259912003906766308873433300832817503977167423572009983579988596631980038508046135077548435420307355350517641530509296183977734636041888131196591761536517226199768369471893522424738201335653630221836492142715925642327617124090034136822438353573754334310898435651028988108514126506703570556899529778922928004419114831624358839838287764442479571528717130115611785274355806373316071231958834479913273350416268035705682761030389328441656374063462839542906289269435610124782294428943122865902313855527677635605065548597473933294654309473138846115333618652528400927911551611535648823219490707301446595311546655600455844956024018655054719706672370563226994016078187349056467049747483862175744569512620648878074476103237184573638967010681892411302941486507734399580074326691763875270131033070317860947128635732085345725675707403315329236558381830057160813660598267562601913293450542619145620258579430913711623876374594309446517468256346462954091411669594665249219225266278171809542089884827918756011394033406563998507972113540404274734538335328569619496757293121441881149348151655184983275647244432927315554599266116398736621328601247370126648408954160922082092467858623397416779630893912904531929481276361211512346025064068080007799038121594328687002158416985592938157055936527114796690832788196146789893634774623396238015322016133555280255734785385463927277984825619385365523480065267557421185098919188686177650064096665092591059115165459995116148173934535073682065524589406047697544236291956739322919745475585862728598616388515572127829212999580157996166461383936939985557182978472489206642064071217956658239164166330375410920562269067858204473302017904563297572647836821850405028483081227995586682893907174206545024556704892157039614214353842968686391496131906710908840983374283523436375860737788709627083000019204953371270760122953630163098795884381076433177647875964746432138589048368134662604506907821615629783794458929731001047495665626216621917611160918994723682641224498495795144218143153345581285570762350542839364772388360040529320536946814335154860653862132236157762354626675071748626323324128099188745460388655681837742014426767110128489320891704852345926927974928319926156056487206145118712951831320333631182584622502770290832177643491733428818030541763400041356114079543744938381288742656112821636357285840111665212461776757707337188085512956272886264067754751392876104392660004051523810178513857402534386371115339718921557617433432194373743629592120423768092930148577649536999195867365529643255101091330410800706971813151526375297396085309745356638688630224837473706714626430989392838680165575044234415410114734416325103017084003362406660098809425087941920609670107479141679489289203651387009622757750827446739467600901181998413403266704884408405817069325065930841868192559848263950455208288489614770656142100526185667360705724171642303282054142211553811062933616043557105288712697799679629404073511505138709395571765915405997387215874163049930320391368763745429279206607104411728117891938891399684936971805362638450757306432359613231235325376627770184782476733031032714853842565788156173094609291123135633265828632736534048937242756237867659185876986850864443597752477972123501030143831467322081744100864470922379093137795714651190654206080921504762459657769039023716111420555493769606719766282606493044604576581704217838028488557248447490004079400739102465689064741845288695851564932102198596722908757907747881754132136168884390916555293995779105557709545466396792333032677108961677295733304378879627492516006794454292420956815607169545204754929433181861443146389167204925521587015109263705117220473047123849259285386792783612001694006875529897989293102721858980689113700886265568013015452446336573284471852848269627750072566049000707433721816587579225609087435990273925452410546572987131712730607142762124944465251141253948434732687784545435586950635933580826510343750322624119155718643921009551554969120130629696691154355142788332192298662726557891078451484934115939094188104470873089737501771561950007670144508649414004487326973068828624444712466137510128952902482339196511174432904254186982717594711086284222217604979132637158483311474706764986856741269126585800262361542881625908864628221507814267669594401643944319568037630360004132651272950171006572143643865616423630850872062209946602469114666751751660004212184157113136737103319528150667407827413825207191857778109088731061499720046515870043512885754238113096243157158032184819043344576396030740265641653995710409298481744977977598638784142720299119663876137080032040700116655638617920109602181798746882049151404941972392513884957869662053616713452436060863674771969694386507682852227697456656262643387361782550731738608616320251088977214981667644668595289163075508649959968910679904404036374559474283058322855970833773302562444075533020489969464013895165693472415618282042340239183790510055049149452432501777416582299718078000094889594816831318166768333966518896533178419937874239353085304292335796471822330927892994982879983403406677812351964430431609742021893440836174121297773102187591600438422768632634188523260411112231374098479914568251571281813087460986380024856109677962623096804610628268655075071195459737878973114210984244664690339769619392464955379884068124107173717622325569993772569760744113272950573330636616585547929494381469920218232866272666487128191295860150617937030471786023980726905466526754396405611213585572626563489212872661025746563894014353839758602415189394515398811853427524468602590892228470804865085318112264712727366274655515479802705512198528750056353443904969326119007528232518135220952210001999207392434028413333417722598488741789052788653584463312626104843991560042344250872310002061453896856264883340740212269598448553112713565404535798125469144154929409688566127224530250910879363307458645010074877161554399635309639458389442612224865457729353570991715163609138431695837411773524820978878358751553409081139399604289262782083049498021043520111774597963943062819033801307464428696689825434917459463447540617165472963621997765128172726345456809570186791520717416183868349828512237163666830023739861843460704279180477615880696182239423808451252833433888833617775211875508525345762133237084273706043593576658502116247968063498007429764884955961073425982342538224324638117375380884252933796952027065191251860376856137037040368567274890167484988860203139465512251794663136579506098064794593193133462442192612026184844510537005631244572457342759504701814481432076135357281157934753937733026889886688501293038073444674872305402632626934411576794169841982162516481415096920275796717722456400679711346972012356667074506660832471495538669830983685623881548087170422772215322252066194268651049573916809872793086643609283076067480858746493622820672798541545571057412326085601565205751504410158905815577193433599797820887373601851307122606023351432478003618455113224225180015111469063837442853464955934973928237733736927585578715883756246805078380847333528766584535796730841568274163845964203063826359072710644753129970248223358049865238411077477111742759916656834813633519064849423268140143196622445086461179986962595743992193552563584133557774006655473337632431810337491569193829728875409132561666659508191799857764323767883602000905564071398926331996755860074220165895429931925594966371921622468453809107713864828875187842483610394101630330405277154047387587828082271073885964967953767081558649159882597690425233470843730970609189895683494486838507717878673342107646013353339999794656813911405889106248810707707261694620400826436267699980471238788421134303043701925311329488421858526484787942573054116849954765386174706298867366134914041254865746920586514640138562495375565143093151592365166718775803881142069913001330758762779966951833179757714979221051480017568819634481812975072339233469116391239326757918595525230478580582084469701187981737668643263061579164692771876200971660749150144432226327245832649655965356249377654671430518268839879482561779087681887652644875294874455766444266648484542926777590680619939129912182373296396045620286122727445694886186838843240898600910118756658674197882918053970621853683427350845044847027129479970792669696505983630000915323642208671960016812505712618809294063238315659541702015596131276433901276498789142933986236737065294824749705851756546922204435491868787463794194958305049872973434194990851562561904155712569622377787366613885867852000566420495776748466339057170269400745330725381537014132319601798942330059557283558638981731059122180716792666590901352750830050288539500497585615454215278330013334847634896159570509112135381562982482044088281429988177598993649553401603699494682276414608982162176704130426466408982289778853198088222366145621897320983955438760914822165854894785056396942117967488796346019268908151530177885025289272221715782609051733693277872777770491482377729839591287173158397062445082832100225054460890672346726140540366666630217058005754269258094654984919953876747443663167667594593932734087562884647981988658915508909389916367360027854199459833029141481021707946926488058202008174575966910833682645805081046330179023665724318542179250315697582198251163236733663235858214647574976585612767586038114147232702267743914233888132975651711599097661811979509014045920177999777236692104105220365320217052626611646533720415943431037000700904370479543883847294304352198038485209405058229212109536652489474996049064922144407100113870485176967353699652617840204871753520518711494515913921497396895745791762333700169441300267743457117839362127830979531388638584712393214119697770871993281849393162026395962893770858458242991232323653075227385837027773466149666275477403767853626197855502753748731892864228420767194548256728244525135008541963943954601051644128870588318458182864274715023784771388222744288776030594315755431435341964470580326304283282517902756175098282132219463665601307954876552520370355609296760147067455805431306471047098768571059840415893572025770620849567603914776903037278093009110824831526611345083352164187729868783976047889328508999416556552987751253625260881161973384519215142324681639106721175528009488617431212655424032258690545524368457156340851108860357673583952456642530511345720326537706680003613467110732707799702680645467519544017772252782889184764324353157506032619790827280464089353338247167234226066440541126032384628890903534999086366810543389588243508804172768560118954978161620291324607451442565507338350381895074134856905021689547374633377922566918238945259330862360323770939073058470201464623934943204111232292670999006548204115865610198608994422580435366477497940996318589353812413146736075753313272657456315671365799358742648320977895664327225634418136774970696346247679584814927876038848084714300022373805666987940579892839147819315993245698309104037925726727587549228968770756323458063214420359096055341120106886087925022565085603393365865950287596807491920909796723840695407688526342386307731658124465024959727182190209307176758881112308019115588936504753975662776464581202036417541323692177517706589123093823654351923692242804183203299706874117764451419800204870924184260686163933993203987496919449615108459610682030801019786971316495281236857006667909809348243333471742612272572081763039266401751533082112079323744645521197969186890696262529859423707221020731058454972697993480178330407935372759588028535839516848097448807006822392117461213263108602828454557850034599741014219508705346781372018587141711370849222751451541986812289687936739417373775605166541907024435090244390442587162918571540520821145271065018518055961546927589191592258329952659354475754356899119465489147439501483042922016595393477336764827870065571968662225497962403782828679888363557296433922479023897667937220804772488216730034251006671097078994323405028034160800524048934014629139088073495755988778421548900819457418201763187224716243625641370532330693013724611628794599995983944006543088231343059932135285771117307901504308036195223572629645710428195310339156292920659163984896240384796069212547697598051897445367683935203269519234855883126176867214774118456374769213538710580027044608061944079441849657574570628430715900912911482605603203799773658293651285088341430938763012540374079927238922297409085424711257043322003689016736321014238226736474352239390185918273381285523447234354869057648100706934625458767820967343001838406799319780966852117884803684493412493552062029101143988189531249984756069694219581398240820851736847953607349535421521526711424027061258633990309542225743617678035363674766725455477374517137041189312091423446865061504851299968076307635570639845246699630890037438491522710118498085979848469284640695707187031994925248355424955538807117800573563701513305197761268284335300200909257982825167052663192664222254725980597603523210402237819662065064409567792986783465425239646996590189450708778065884223766017672130194932446682015993722201422919327605203086321654785386507953584090194844489686276584650600305529400367668439403097471651036862171726342821457335722283301504039643276622857444011290046654728969166144816225415264814259880594157573354000406210509677089227017728973440457894428362867122582729515340540951890275221727755081225875136776953519561139591222005011887274699657243364000303223255254108039510772606239378660610554084577756073815040952660033572905111469522388066429734564151513781622984673042309516787415674888044421679600561881488755252940599637066173582640726088861023640381107040577782994779820611026973098158274974079040245668323448579625076246617337017582680187618658790352784682959125265849704388951001100503974443108376396412537009553949233896977298697439167378912251424756123719142361604311877642881386507835880997360360364835015457695478988274521882173408500436259714424967114770185261312369203022773861759846220332958928215551712536016589053303306497714268681668859246950339480517644010588125875943988246774663890914500570315192702999169697941335613497209233088951656006417160035742013470083491292411832570146132248892452451575825364542471445253220331538717285895151527780092098764869416306849771581507592141997951912133740989130773447164467126919381299889042922469629434673344827586002099470910892001996411237523696312158957391863703112023722310359189564764197486028545533623452954580917674989043841920045828605002658941310623970248552827060715619143947704671018247106875164090733286415119036866163753062494661985608246099101502990391609216750136907569959273835881362740742714669898764834514327744334423990451530662927938536701753909310266300572160658743000612136703048013165564676430746134273989087577060816744315164347491728697547603374589688919516171892653154189548820459528343055700022482714149900989203764673318935460890713137140057557123398900038531151258550040772680999513112860922003910692513587581258663248248016663207720583454487602242177241622556986597285464351783480568006775476836878689727817089658541864327079042032374758604597511305589276814966629588495594982491124796888423065878129497397713564502741590282422730906127126440983793636335159465245877079543734911323454628875926390117250458356469861472516430419851915026945210919232508516530335142507148694407544531023653304771007664856330114098305226342679363112160478937428168397983860859974787342766516960886513558961433083789424844879723138139086931680449479781765929693555398574010544220206325653652727709597742610442057558169719287398536805786446291890075022493850159472673647900953064517187154935013096122215429976862950948697858176009595172706255234631575389581944589584009522590827768210795840601973678013422631739005849391132476325676196738983898859393892193250326135114650051280532335402933874123599091995982029488702382315269722025958763429565643411197948937928323034282084745011769023808290837101239790493468453156471077892141019270919521731394508831787439449337657705469387889988934915983846021962927987955305222758934382917963619537248733237258001907266484230240678536178984161403721908780915376834432737996903149955209203234726105229334975172086336323836843235433871264613002597494672239038449212188241300244928198594113276705883620078446155762949355834889766177372611994503672342460004789184762680454130811011078345345287147716925080240734555389971608938972280693882021438290561641813173858290338489085313109790971573765276307075875581344341923357811496021769776019675210205122708930867285121876693775444876455437047161714582435671613438591291439202025351173554800604777442637437948009063714887080763176949017009862298144149772814002137098615228584766379171570173034228986192826143758704725295863933498823531921014529922151856622825005076018164518731796522065617408616970921571570352467208850401865235994884424962282018809229183114937463235387685359507946717002957996977515904757164643003380784845711756371723882667786401466173002465308173274670021941387097828627239744070806306104708096284818199765034559886614216032771935104543406002949248487946795922855907509711713862671875411948678821531512919493935381110404491582723538412438606081343223478978611355591595988866208784594297431076302402784395976315329460576179557175547102130520254342338473110937529610624618675872443934320334355767835800071710248086015439781031176080835235648673242344057526063085072661970060608724054780441478897591145890967674344554361421300860066131072069071486376349499326212344546987962560403940908504046074359746654616830530175514600296492719886153018641040022203453054033177094614147933617944429082883348691361394984084087184021324729864310216254844304631586642844818672829052897778753344142864286777382891601912258253297890569276450700013819309459698028443775932550477064725466748649232698275942458581412227009803453017121181346296853584221060795351375598154736426587448419518105085129458697533416257451322216200508753112420796980554979135206641574789594040761632746844667959998404793668090527173013030158284920561998419665194458619196115479902856958792218932603525472527006342560307732571855528951988299728847450531621468643271217525637822263186377291815950393575772976247688999130791686040441931144282174862943399177654496732672005537127700010318437106670766344439198447488084938130856516889473448412256405185925685469563220236552712654337526984952424277968459479825883699903194499906332377806469632461122948967403497754084398481626849273622160291631570801222107897912950050006918108519365385061110539014363124322624211747070915267902016474425722627892126587535860241106588271170961132167845681025730271172292657589603028115669483339481790993204413497103284732982595440314976630803741058074252064605764022775235414968553188891921915195460291249978279029516317250793989522937104950955206872760915578443557969038677574945771217654208140142853931528605887511742939286550771898162298774040167627954900995291160476660847463426849141721820967098870170913632381119181131231654944566929685332472701427135327390405637130317954596147484822120831515408595769082033035590522009327390517113193145142478973774957931641666461690564425285130134153122151645685333470223478043551937474375111746795016601651357115378481903789284817921088299084875775686985445351118987631005529071973725112963199357432713728595072026832888808891038492026503079246761694785803226781463536066857823813696141548443252841249975943681804630805902336600355636319359888269604315872629885953881063322692816382930548980930528418750326195914087622499208928606815714375404435672989883212371772613858839906899182412001484892416700086438834201303301498315411567703749959827223984850472910101128722176924651003549624369302441167382368219649719018094641066398059958282284294115382625709270302912048636853433912841362635259670819962172209645897779694686481136376767540511593509476234565599008062877345931594655180995237497908070354487968308907951186805741595364567765886407090342994864547225801331579789456116775814885765073045341016470623415761449576679540649884423039109779900608347899132176401875437124150403967408687528948745460428041486272801632669388824689221268154566995718509186506566210136392869885897410296790292980286987268816276861247464601710525209613448819439726056700649977810258828727397663254543369808655692848931949607868360908800648603214074595639555335885470394706392263810600978396677705956273809256234108360251652980250548057851310254016716609609779200298755972111008342995092964427382112956103703795915616013808006652778945732784516563966422179581265036140302067198929727083680183300774721704597328653701651331443186729323549742552595056598441824114566677924280115352985211141318515710659688626799723250640425896123700694404945654055949663347493071517723830341821400456610353505059682833970275055204342644914791493630413294228720464966252158965836743564488275871718615266777512544064321459443611338759338777770313658452251659710352834113594159629696304485758931528723549717627893884989700172907465402071652934464581607885276315884432980178333078145836635923124186192472073004899783893693951541557634325601023593428319164380671387660108491898198157980945792839065615626765170627840733038713085651226897193399861385452472749136532689368575372138097054224445813172712257966154486560700514090857734210193422993809745318771166930902990201833895740933443755947451512845296753112578306154192745109759863407163373666747791083795061766366663024867052200761158132821225984842937424749743553002939525211362963516686084823131158538250527525161881883083104478647697004325094916292653535298701901218610057749494138786075268592662273686124417328535026401943036484500642970684067991238655000702141836806369811029446611107409196534604066408118390504742385004557762653756635706240561631809416409592593666412453221516509795942740138640207169453993818327193439050384069150957544885397831305667925970345632864816550427680491998677292247813921906985235958585450212236078470884853493423322365344790113728693444327981522989111174113838313112000010558042722393784385318946092584751878417811971569562696062514872663215713272751687272674828890806979311675025904725563361809160826938025145007904087694868016951366831501877957860447540315215298317813448146917514817188467023504848858785758223685546478337266090793122369346892706694217870092262660709435077433183869437559936289663039787662264868599415262750705185912389621668191475319604345347037373892729456527276058196110507371110436402854713201520418850349838499765104295826443516253021803358503833448551860255362205822632717325564474269766457544393850931754067181023684709827197952614033677709745614300231736372518940777348733918168412273606827670028458831172174729231374665650475654234180446590644254369594845313803225697494568117191140910385342968074570492469613295219194723241501666085531111751419988290450408890271469631060157791503038162656056787247203901972470222051585964985560497352363552383292294810089183172193906973915583784258381171153976458492390359338051090821545155277059709651046994730888905752327086951105440194250089673240274739984490432966607417866267981397264966880439759182004401508215892686349172554887841974441092148444503930403900487821602802077280667351355208222243718357364494307744683315540181933381774777634129758928221540827097977030842087671484339263098442283483808510009541729005897947403283734503285111396068701094286113355083732413100700714652266390650834574167845425415987244192177217813618626237226687056248595556303845606642597528646680337316590141386550033454840434934848757809041893332982014840477957529292619582090202223109613004126641581634397512901467232756618150625662441576160821077393183118545479048009837322546727186153335635430964200740162394919720009722249603197456117170450755325971196911868681068745055241006022518946485885830648271036701226659286701656626960024070923586160806873567559131774808902426654730716931566304761799505236633094337380680305797594709466234954342754450137933277864968872723783282859224812769537053743791413155745099832773429350769782871343009031425976308849804453685586640063834796892578526245635867793416467228804503179836771440136114299663019915635912294959112077390203580232836197756233620169760598557293444640419417644748721693898705892597027060047908871490139395354583584258332179443112730233727365072540131654328216303659648650944901405985209881428216686870079286016772128118175369258312086294286892461908745999879165713121590582800124656516164449633854587784221066064075351035585071860991722064343914066688863785683261747355869125216084844472150708949137681037458981773747841222456418240476340087865527619800074657799609538693968945236623481145231956685755010153279889153846173139920702404225334526285959204061674404895251427412246679523347094976219743149367615787639105445532227728420339504394002932038298630322403171485823019826208406948168094559667835421862790523597265641282103569989374653241201519018018605883169006630272646680860850965479874801761637509920968784971184791944894430445457096935157845388343515131930743370932436658438050631024960356308342124342904581558259507848212904871829927063591507401439344741704577433101374627790842160939276504334432038636257815289124226800871888429139820994312083295131680520883764996826381180871173177850151672070543392497242106898305288867177327550429523882286525782092559123901857210493518808524675227313568131932622946582964939006333790434584247305823715115034511193052276570592390599410565447679983091503499830397946344889622284155429746957907715629220577870308777150002275245493067847749769628737932125504813721302385024944802447090099978744851801999700241106054880859021140229625870349489962127729727218827511130820127096019817676725279676002132638738594452385887386236842427901395324502796226873307954674530546451744888401197142789768490599414336782586640397314091630248137984086188358657932129779823381089516108959029464830365207374446871142774375657692923621140588125983462709463800017679007742731464085088798027515756114203540092177261343485564796319465900344101847638414129682142404711826467630478443079134652288062657619568064437129648480092562437750671613865783817282704527801024292839787784670195528917618158556324331181015351124322409279456920491948432280370474739528023859989770586201169456851429032432093699050364739511623530331570469862318016388619645116793549365359386489394170625632055259479083163287385741848634113431129202857112144286643121667360192646588485153047681578487622785634282684909086971545004639150220587399462366395616983335510587773086753186150236719909860874827328032560100168940902736054037216976389432211896192197197202816957644237301165263067995573042879176691028137597503505672776752910057885698487699081902468816003829847922715061330593650125785464646863821205747345513817343117353850926501471986266869306070998663172883468001859968667818206194618454840604320996040022509448969684259082090200036643047353466942183905340288989198865892683604683416440171036680681618887168039287485235398083642936779547147663784154015351810520099192060961373442513220454409786457374051964254294334401179802079574314126792217737299849568599559180700146487050116744801253513910068468056588502123661801112744152862349143732388586597537253364720797525066216677796926219878688784926499152620820699290789152394575709571006100416064548998998986500163496107732256986795045605404301915097724164109140452970839215360015353829191417131973372819411760746720591041577980673908996384562763066416565485923524249208899163996013956155151480051934839171516043591085550609037949709258095648691150716107581187016579766257216392966274289421153649147786291524434537665483581624363679951429293426332269069934693530731739569111467418076022952349801773766581009020557269060753337322436931976090340883445798938091755389924962290578981291438612050944192264809546545086468429582369831720034225301018120095619722003732778385787627900004366804376228766123465147233294560455877527902098594979255722258405976072047975987505156673827885264458250414304174063087703114067146555397888288233069666288585196817942612056343828387843003623813417197031912385202529673490460738181351267890028657270840581853411104463674424110320556387223120647004115011736628766845781709182356144433963345559023980749140287833167956295347438938120254326430598814573598742807831796674760626354023831241113935812216892581363822741662857102535627721690530556042892142568242894060931561560449805266061091439298658557314806891149875978592497456501995356614052991795789538911475100662717797347466134090588920928845245708752359776743674628214308042619159131129083500914150653792004306859527219756609171736068690251746251931923050092980485181543724872238878164725748822391824060969843828068558059143642378028615140185736327174320916476439312913524961796699718739111654121148799594278848947606621335892382557870028704353527855791175142803105326033639567671407535197379866727411194341679557749244387458504925444617109964552207943671652228088054751580612637528085173075276555718077272160951154406034059480432427293382443647011455767388895580465416201968242544438382224780662743778586308365761926325986617254260066906469146468756121687671031864823919979302346494000119354477013175293675832017887804991018235246805042529017481879879181963209730543833992731231951928217606663676766167103240631907428251843709702102438335830707637214342716488864189105971246829173857898544998350143880826628732655031819999216211196468399266228885080265188711889648289050623611410141946223765520927883575204121031746968290917119624840731588811818701633440591603685980814575863384459940311465557910785003053607068717526501478579956186268359915504161740503568750986395795589815152781595405887716253364899282512591740585073553171296363274013192728187667632139253058093769031898053054358830573045358875021622854938824934421215221155632630124321132240518898414100417472602938186683264376608223045751434922338307220882413349071035767711131508515042488697748168950225753856448592031916907169616651274693899226092307774431038559634124590776221406720124794655625019454474387214728005182462336887451299564466079278630906964398057730093625205520440414998607766632435101034776582018015516176336465979680582865363526399918092626233314111961858870967671593237097803460448739647231194520465351927032376308008021075640899896311322522776897885786872087168119811203104083839252033885529048401642963950262552548249120975363106494524285493580113361068556436207166999991733290075852062486458870236575207265373653380114983751772910906571819281208550798135838346564058436312512459477162160532264504568459021096517575900486079965464873794662178580610638537509342485199788360435317504681613785956274647849328731016766010193396292105462653550542205135481762037410978704404361137990342663429185682961705289635936161349899678925383515756347831647699332657700320521466413006953286908599315120950794942107038030461015338094842977768512287496603429824910110621008961072495776510604536038554740151101903903863707417160163776951672834582107550966021178259285787882869667953528019570677187236484638770233691856082470576057793277818724476936919683596120453603027972468545410678904383535319128624466918252672468243331018701216913563652555992423948195090561175249294404532254119859827545328846299786966425421500155051536623525202620041539646104047037633493373312046341663434193936047930850898883307533150746938420066623404047501272446370729767986509434702842457553012233481777032073643290059371875473843428784871295515009228949662638872708375235423952909694260164715270709599303918298277070684924646598534594988676144043665499487338141777974365595554859643463256628217471303534727590634430328517670432472916146759323788457144055942262439140788779197553006969995126829814325587977183644876392218142809916971719733643476029207533653391612999177805240821114041065082088439060002316545189136624393608011151559602435051219077022351134162017326761405845359047181327409739120229002933293779047019913603891915510199570612397362674329193148162234814881779085548291507396851662832571851512620272998959750566315106775411144921231486680754431955251906131111664315553959397264633387883451455458453443646032158301600808895546801945022105676812436545754687441070572178610164064205685907992802163366303576994699697978111476509653162241587818703530358273988902236698542776973181572489906661752203879764419443071857343639312280476869952519927724030537637114039890725683295276517296027905485063012505315904706008325017131068303420445073438992779063401897806443483327378759149054279359739327210058423185854885515693588426831433839232215541031887623672418685494452429042835728927060071588302494531905228557183598213666532275829916472613746715023865138037335008076198422837433424772598416777485773839344228255233073173430555198482976706649095862587715188790379674795830242118407414347230667608325611007533325187779766845358759378397837534019557191820596670028999263600977133167481822029701422902940757700551089383044352482828956640469215022766620840526007590827192451585175167105552967059569519882046749727546649568390249098553559258136391465332451919256336840017708580657934221342859382803095218622524441685323614426660920234839128434439954009132610366683816247246987674692723853221378552066090742117761518180707280919649003162179339868753329292992303811379029106806811870682046463418014959741817651336041981095442955997799937880062979093780742880635221365011695219183313221955920044315386985766740609728647275635988999238237639846504732590865908048906086010607055926678089923936795631909826138702564642472878225477381685601383956694962743948763709298601688871353459589979942436311615985040103018043734135020105029039494851889005923052808945601162336697360997185503340494532942334358882987724229757810457135940246945026211327415588514504512686461195235012792426302380237498571980545070418928196258011635367458827199239314363500328971004221996649165454561931162154328739383420459541102502895987774291461600479955939911349214743497280083991429895679656439901028624921837152137323516597191803766615022302082709095093826642914347262476295020368705006823210026605032784947705691060953203913595642213026102732397598540412793760118648811325301529315223373882040295216917205967317009802540433679693109739930376825062437515956699878974322227201668686367041265213442864887044594403784643115765636610436946226957653998377513507414983214333859431831765883968762015572403121428632739693603128416661675808710677856796028972474046646873563417452575683257976420935922577550508120933119558153795869336201400606203454337868058034136897852177921326713695398688021582887904888922983322623012025496048317804993246646623190397469073843666119451578037502306744105268792228197134452509132682437589766651226306794219086304215400257240083907607586109488425111687506257708163323005756801764305795809851142671739455424426207218384028190708214430535680351952890129152558133325159282281036148198052595606935611835188623542339174866652223476978665926856297877232765248112293172557465986846663394176977403123789892370928934084946936609525866478465104657735696107530634648054856892178543201342907252949889821370535607447346874742291146579913513517229328581524245563397344083398957179764784867521966606571047631141439752163728038655259203351529681724476748263353764155938644276060390243278841389493122198099192784576154400882438077127498164386847472061122530833601955835848931003945618067940106123642680527784007453604858541830624686666880902837464732891439251406217065107637821069761220855936782736174370366573286921861593121773517915885726157426226345035540624131599797631480848330904010608180720145664092445340318482386635373139912240274768110030776485933757192286723470370247385647708767851012791685928529764344404584999075716581483856067582230228416531051734080737937570111324737604141534968696568607984725251402660330839910232664988859895743054731674945404331734940597908824237799975868508448321165894258577277436481369948557231143807942106616246562618572238308585599874112569172539636846303835068339422658403685090952083902295897231169982970689444335243625271583907918287926296835905550817329199207252274906574758914398552426421867604020893015364315754801016256557963666022238761241219494662498639070773480363924799321808734584416595597965838421115859026598399523960868722533235242843642662749420588844026808773810986464650915843945300189576866224765314415036656166857029567412972977175966898918500510364110146689188489272087414775102285818535179184323769062938164374106831703354293341424375468398804691482765804905455612084430414296530447929279619058817819669625288340541692853314287609712565313459891092687503594805472142015898018267303411387837658568990377285784569973872584846522055407924775210961877134547530097433812386070069775912246003471806931395946993407268730568826269002679881872097675378942793515444821834088688286202160544654644908208095921316548671541547261111700009452576441458088909288146573502174436129122041546879618893714313439393300842336885549139480422904711078280162570836056523792250442987783700373886694098760289490199771551463209409813314327447955372054600168631472979101280065769062492405602576355287455801516075251335802608846818119857487726462266494273003689724910773284712014805326388198272225731351956506770783052731335233125073720596530098610961514772044589767653416346036840836465444073269457484189492711544613315338635319210180062042947664595422167566810681797744292922846657788323949843973024563616532714487431025863855985399654982720055184371351116483767574726584291408439066790781500292404887560481540258253328223600236426528887608269201213339969703266454908097323368102098548726429590589270415927325973213413143811008817418542972126031123649576228470026053522030829166620228182703102184790226700728310821057177316682913460188522622122809602117820453599495448645150357496107991178643291636943998779490146826785638100157459753220353991731611204908583550412350316027948097916841420412805450088626103880095967602504262311646432423912529060643114911089980377885863081981462606058985061752752376340312671985758503594597162871614077368896227741750956411277493531716749999247752487958411889309418809886417959269481486097520546350337218878291085515422125881723859906635924622501769843664117961099170864956926452080455012720472298868439809854324414277176493821053646045306346114575377860427710025760742859051227761441769128528116426627767691521574326328110253133809317542059065307824703354234874092508323367667077807496237868079178900676011716292038331950588516168840557637526915096667489614046960660362308732881009598778599542592096079093303027593191129829978182338113708639580246061298684188970957341148703893882536389199419008065894467554672098538630501261442684761163884381030526354961789823026128338485199806321728146410730385065703665211824565204979428366963657416253773245935095381763342938101728102535335366198622773532148270686585236395744219472914181428947125710571904972182156558582503046105137167422518002653482126166351048383872825570598893815569559160932626572683536191831761972372399765513406935782597853134905429409573002740513987289523833215655683430771638490397847800549937447051092774808809978221510362047286944564772578794516232544033758195565463535060151472164801864829966589787261993937104577576035813745194497465888631003085103747279292257303523250025108401614359942067755913011769297921507377338333166281791613574610952288529990435816991620340687780703030972337382622857089089457721523234644840045166020796415087277041001970131705863674293141938565794928922589922346032633103623684401654551388270632109384281538581955498526026850848083356930284759154722274481833738515934601054197658771129056736838228609825334699256849401354861386732511106127359397513476764431826824118735504553874291572842035634646965174415867362885139166390072569894140432571897819268934767130753276040063377258930115161555869709360121581570157353652071762835928452285038351940932199418781328345959653544154942344214434018747656191041989594905152034450852725730764363884058870062864634029904941168273245027823203776499636044173501146237956647488944228866413671435706857150945938130204967568103395239874727052875251893270241795366984835684588904232240169533832768978488729629768511127405266144028224454106732203214744669010939206745397446074457233696303213858947164240255626655818829895694942200746766807407228575761829089485524689187990034073019306922004468090894152086242799462004927327287826386145522253751209577672202430396720089318750588703561759895272978005753263097371860956350329996057140434288111554306852529373598177732688754833280986805858272143557741941448780499269251708021198524148717296821291256952283467033612611310589524154337825321673313150712499773479626434475138041190723751591049720176195675250860872381110113225749613317095803831899924952940194251169652923648526504689708159937291026900183929295752546389320659321695288132143148014370880135630725844891009160150082557727773256970464946953576865007510500770329870004333564200143528212129332929034368047015799495255168985796053070863859579875547217080206661867255592202098214484101043396903912646681452467260295041435236787243891720182852204449877827266288595609693866637679623309786850713554933372494045698894886084963223295020204206305366512094321651665242750773297538408325942182597276527503300150857915902657093807509707426450598573481471135797525542784450747861053407859936333530253611221131730947450948799351217818038247352078747821381664676053179090574863088748527482576316326324633590749729731278173261752195425962157324932692464159155968864856624023490535705171612362253044084995535672823083232225987804975192575827105235908159909226247638160798783140378725237484007660719855903284475451362176553154391933472819396099910746420051775804289691823364526529173255135558387628628607327165539003905909049309643810834418856582786079816378298786886127399535316248063903886755714227947293002827104758611693610439819642748624528782353549618701351613807685791296512065135113314521702949355387940802381141278617157864913933691652600693965384311070619758771579933569375120757230927300833587684227837920204737719919676775361622099438292600850991756675396503097554467233057720626397024169745381799433532128509939626163154369234678831762960405570940006307353648865532114391946508562726149599613414483487024268544974388368713627833221953376444557555378851635830602351802852977637495077730658499525397495038524649383441838474717896768553217167680986913049056394057371031493324938220951049399849864799452569039666313820158801335508441286019324106799640135748498097907255804316306927700722786633472059380093928249470378847366986464082584775632426477867930759482298394233745301757521365239457514504798870236122956507224525983836629767954514802544390184086220060564854142572973040202580640138480919265838223397569223238511827577461568939550445214827278979141666664449183662525034061912821689882021820932651315664684288822926102300861488633030322606991554970442487937662442792915105373176151452373530502972208809737165578671131428411097225709120082372549439944020071735396309551069922856447010275437442251051145929406987202835517634562339850290774359429195726516884338320405710062323062407278644715283383422028898500037929992210571732996228271931173414493878489622140312954699647228598119889858751648710194242956785063006923018731302395679915785521173873482630811639789172582945634061825606488096034438428381239416406916604798919143383007103113222776306246483720320392667705164635476957374546078576314601142894661125486683439277889061493982568221135643536996394986838707185032432205478758280527196608235819440835722854163973061167969151926054740939742697232633012155977725454068493418932931374829934815519350440704047347912440608529349106374256598110690765085170463824052557875181874258465274073065733571385611327016226610764383153325679481064704900136540685921585832913715277381005853494830197306057167151576340663211870218469136809637850066463449097378689037937751646864620343784671169731104800060398560745147553026835610479675577333942750522593523565662363591015034251933734361827202943963891532969919020702861064479846719172016416440306151594051322956602716092837880674423255379472330040313378681433180983892760815180053199448816676380889894973050108841263246475614688329651042646953096277576829805134737344304508239204109429843563984238241120849317320855233772270024596033679831126403371313318181037661887321319956226153820477957533164518439263768844812736043169170771198358119044496878376162676885157482426701367143577064227382584770433677758909066805106159607565939007969327655716483440019147772094936243116653662496473089049103898019256452351481522558115257308288781058420235246266782512546332063553813574607515616516381690664462786325733971429343996069707423442618905233715447616246668321700683272409816209719025137972226814286657193432363882356477350342798717921359498065418861542753202550133055514595241776976822980574329716782682997108215843530192678060899818848003735717856892088482353294768031855359683931801238764123493981921973290399539093680622035730177393641864717043978902184460071009615799841740145019553802295077372020934339768024099233345645448809715859448986414054063584538290202171965401062443323092377238746007027608767631524092089444065590913713620312752474635774867819918457489634632451660007044129246636481751811016221480411301539267414004830684492075908084320637373731622721545883031049432777292019088036899064875511730458068641502575542408043699315595203386711830366872655374407905738856162507450881567495383353050483270670714056127768773906583034626712800359638917353145309280111854032628069421137556195349916689223024424085004290566485960468998601124976316234794613336560966095473023737199174374225354315119042220737005727852514859506562113888146238934122194651255499417977636352522635599113399945331541606849859845908038258594293084984607444337110098860290602990597475820486276037298165581103631655958199791239619747357272965642939210620055091373312845042916478131047538056861736046095577401356960599651153108221064506998658939143800771721110734948631378016571866905683657175598676467655743466293477364937861160608585994718470073157753446096507058968536922136777560090303830674592142810479153296180641422634712201413566189305611354817100312986835847041289671748352913087688455006382971877745685312872972287325379631278026676979528545160417791605236259223692397935887158323040822633855466375407535874053923992163874002196991550838768866959067181372703013213211710374812443176975304725508957847668245588493707079275867048055065353899707294469102037809207612210755351029835373097094275677731576504458650116638795913340553712750855210760528255311648474929746661465825000892284989730622783465343299781115560152496064663424638956103633243248203820856504640653399994003679132400698303265793985995225870076070328671597735160828627797900628304112311651357838108399011484758992027970754281760809629385684038116523432784798969932490678349978164167553431241957398568457677428093586034833398396052702891101634293898689704281516203061336865588853520211097228276985385001009868574029229390499079641214060254763759971569511658378091781028789866904014591541116053901123974581138371412290279603613265136959902034789653893571835266842981393188338714966944411631870868144541940961790931549842708741941862037327212973448765947143230671669544805681535026240185327311574158527810421169135017026926161771291572701149812412771868811440318085413643076958119714160762161890676168783211693020909866810470620267185738419681918915105419655676847983922552687042709533862623733527492887085642271745332633472706057254492312166966867591195775676232988107492634985887317140586270389741627075571505389404211736776697380751180187172011067752007885472965334781010026734932120808504208397187489084515220163695624325967654527679377378351350963973708214732803064579609221027096681210413307588297330275023410931572545111530271561652314137562778534675312152850573102743899259857563331695775305536349758034122196620395041679626373202429727849439383195133784516244921768892552606098460262346061190624243558627113375190222066447324522668949445852177631701738527210609252473988023988708152390253992016372132393106907370563257987733866010591911184796715954545706669813872256769150771350933732887085933703644852952793526406483756727738239079389355437210327251343852511292551832066691238252441739388621324615063284646365855126647360027845822216977771136483449374559989857276834520725677625987717369055862417548153571945801761625922594102917402894436912910934701958706041721544866997484568110984665296009687399314480595343247683292850946299335788015613168215927623844505931143026783933011739722963196670394425171304461069134591007292813486819687512934467903302567781659996376951700726648597921968282158960262009680672858241584140726385805603814794788489829243994717292693643653627356643047623664688290590867282055706471519500009698058990046687444802801160814275280534646110335331684919915305163593389392852788486950357207611495814447398144274110430941151826744335190078548104130405440939766599567034190831007935036439053105965174801965856274719473666594353470871292411405885426389386131872635693578080218283102741365110743473302066445365845155484657759600768486859366485132439469557021497271068628260334195185809292877780959006843059800534855216819121095272900758230990829900335061480650223597946556342076532014930036210960379393877756832603238481974846445165724172110863489213895350615306310040401758958964863930533141423414529519718915853163229846764392135499035828920117619592543986467062208583739972758626048770329572145696652719011475947439518796904786830249582515429191354047554514191385157886120900940405459261452520820672537489482647413393528775466201235954723068561474085680169668935663199250066049584553923338233878309100212007718643349775554121797038770477620884312399988634309520649364339514231781969173318410925577350912991105175280665597389531299222696242489559851411616990391158438246140286653427498972290086026865162621544590198956355110814243791095374566337432810610542046485217110898474985981028949044852343030265389740866299645709201548683247710256983152252531499583464210012871979797754467743518486079650031832152544320798054881375179943420650100041536170795900005984268451135247088985465323884684223811322683928112110799788465749208447967555237342974929141229430700619452458385611697385597115436567701198704977042439916667996854989821855280294839182868877862695169369258980632645048369514548558201519267132646345298165417360607821335492358755163978116053554901259694677421680169292193543605687632839385365116324771029313009685430833928689941523708085144210714200508860566592285628457712628789230178148869819126725063621642733314748433605034613430628853745901558378584916512630962118877301464080732625366057701145369155859408784865359062824438906121571685009186251481759349247321403968269724863782101050255046687603522353307080681276348967625566402991651076890860445470458351704421059777721168940842328439457643896040320175690040104545107362688166439523749223615316739581188284704665835816304384481995889751585828500478832652028177458714746935178624737910667834890464365265417402223610525174186837270688644211386673549267910884202690362953345423531063908088021005001106721492606805065577488607436408725996822737150155468663437203892892052505886969003053994155332571528857585898076310054795239264503123849641134741455301849432274995345495997238009340881028839370485216596219610583786227383568356231756238524330426710172836380905028464314818010506452697017549072193299933542651062066709898952415722624674654068639609539140426310359732542042783686466912878826972124601816877547958514699947093870081705364614477622339472038335073795724187841565243189243364550560895945068612584430739780441840691655238243062310580341265439944981983709220281881242343937631009164931389422291536433732900364500006750497062817592968642397267279238484727793139691575914310906725676314292884683621678542594294342459839891204234676331067885613269435521903379904069004418912201032463535438516593962324675955035506762049393840633857040546236418766049263313243111871640733418467225830963177164318942264588808733959070864522266556126563624110682757060088267544905629263842248791467029770054964472599439860998695784968688381974241029441698475502552250403220740587886328464286247735471425555084064623600950365408117956524412065358097053977380914497993807864089533837460832138872758976566900058789587686111317420312423701382458362323517622392398915895749983990364359277334637419271061296777369483685827082506848232413757770791734704995243170247032212209937721744251009300742682837891795183358159130094262261702036444801631236342232796542528911538741281914963240219301053358360917461530329320279072669280560420430809022903033820845203051384547237872574948466868626664590388187068536839468493479124237475952689339552672287757481384516387981765350491341051556132931051921177007272954079952207634384086304464514299818448814467188291923810622320495147202787274678969212856026980146084300062406819025967700258097804330028241726089394802848734253984166591822236676933671574004376082063298737814219119696436438462819839072554280598891733634220190151457292273002877333614949956677650842248820694422252963662544958568148612028116346785906095604014305276166855549149292509356599895693711874090478730008465664580721872893529540646491869946195615405426763369803664394895694491981446639891002382911155635873752865707949675331130285979609444392866012186787087079973933885594061923673333707440278821865005438101459778487161312092563676704870749040594879004350868314101396276416272194633011956656120389099675647045156323771604707933682517196234347982935151940108232134705429302404400331667000733879691114474602942891764209743898194360867890797984861656200319526151738432991388675009037957568541308036070166107083758429045336886715698643464189730002598620202699286854905581490612414335969297196160649357892928394579478341254286803018659684696932897463866613812769838724340996969921843605851293808370885070346926483449767170170093591271757182284220983791008118989340615043667671407250330614439559105837693111939642525433556045856869021504233309683458467227247809855556669579775508823911106201132012765600494126746046470344334436912725413393046454039135568985091635583922865017850560442009676708306520909050759993385843021839315874951191749622125188645887408000166056222499100486222832208021276153468100902943612217635398499265923748869234181338428763995371890871898016640793022198789920751830857829625987684247247804848668079241807658616348435629328245737283676376474157447305169595210362013550561291205336893657063116393539381212757422294228798968668419549585948433786886343154172283625669003557580067375658437176441564499494480582128433633747948156318122535179506429646204392528079021074881080749553555841540588962182189799445344240760592764488210539542949772379563148777428931026296302939879019640603726267192876535359955523898887920136463391025478272668666864856391956014686838571138708507420207648150855139695785246669695865849183056556107619277715642390652357325876457910594681974370838117844752887407369501128875447350486110173296953735086927022010166493975746461121336650409670468646277712295572200855541481577870645144675326416949136641719162876272736182906848420626979144819352396368330796576021893815894625912311997088533061150458877948108008038669001288048580203052788291769119550800468962178187491873391470887001438818150253733897859130048788334748440830816640332608409877806058379654908737782553249363581440636477184015729575747720621769601900794276409928630178991793797568772090969832795665765670751488393784748016157404966037176383012512127909981663817390047462121448518992125523847734409662236602577730145098059011915917750662860677675713547949273835364773123609466480618276560867429423742697497805744055036732334031637903142609813385399206746825031761339508928415454197954321131866020693422493557087079189484187669447057019049998616099734237907136465172703078753280805975233994885245030628418707241742172782179570350449495966259341323104598218981033320790885420434330448781226461570302283686206584588088154635465045608495116315833815478822090437330332645166403875585918006045232647841877045610230323967966419395313074977737283969513089769085373488120305212337658541095103510604987073420494114735848678343339060476634281067264625095354914033580840679030444471450482606006777566081630113489894823607541144875879522028584430134541160580232483913927015569741427105305165190055524604694303542774770996548973525285238390810901886591986934021269126264424865459055602913760007473942054250126292402042458945495129556020837658241217734035511765964993789148605470562594389115695126289174292959940820940564588870528172616327279531217228334323263479838300495376798951498068998623348359680604443556882210399171863111891660842554696673154563698757199608121928460115640323591340396618777764245027781567066361732808346990621994572304271972587597607275925100358194894609387330348728199865615904097977530098269820925124810176923899072570954053910514912214423304809858714317837392896206748389810455024575307302272258621917119133533238488716398768167847920820287412042365355366929778594171435691628635197684897358630147312525331231589893404801946672834477279461381437654816227391040657967263903658818874826044105911921752639703513322178982125696776441334222213372710740659145710006978637666792300854772542264455918175543204699203548722511802271511850956835185186072116737312456925938767020480334270855382795268866066886159452749426891546072783088739530715424895798346423738561914510649984336147763784476716205957652121291161571228146288256416004105647329194446060189717863390074269416191883653697283751938484801309479435329692960901493666376336111781140860128818993330332825196979993119730087172763035225198101283066717830618150223907812064769316472732539733189541137877745719536281765659508151740868446578291544559462523237612655035904476153614178420841865973574604732552277818548064888651349914997377318137457660511311514668033097929708610739323063008291860627773576485669687367085856820375291007674856188320822971508191588429719716693288995103994613530942825647437005917922254900883411202045575898457610806670144761413188377146084366403660606690324795334406371619752041800103642003807469666514474829636216563120985471081990035777790726263273533699126299892208799315968736386774385857736028118030853130646443634121838889424736274871658199643747922328638644047419362685077059873017763230474958425879477426664528726141451366607908302416193325988563580449637984705959333841767131800105374872738257426384444626792090744482554691315385223063558727287529057777986300651638991692307812585834313580439592637224254014476859803692912751456240236303917446573128009184686111095055794343471669986640293579559078801713384418798479347887145863623465296361867407112987996728811562957725192474100878829957067882163233257620382412065115231875533513522275276169352937098474037996943672861887124823046072771251379420811424933464606392042558196205513101657139334801042836061290294735555007687702814084314314462007347716300458425776424861729355419446959273631318282614980505060173808185186866156807644995251221200466565142870429828529766497212591480472616292427998318437446798091528219590420967963691635448566222164503220172193892030854462787680527942079241441776797722398063151018285493613549775208281714628809792754447588863231244824955974555675374789270000071638093577939552800435044390470935406816794479370819675879664509308880412871310848059144641713801749662253230725237643397850539131622138995513569012991205929747846225637844663322709013949356693752633574709689523259097592656772760500830774410211050272501067441034624702155202183230272681336190892766837711984829186704021067011053703880711797461807753195723135513025196750632893799559895397006606428100771450962745589085539488460557714505448097508828265975772849537453961180608325969372615399957014316800902539694015484302678314293435326761057960774010793869888589393737352152389312942535071854168187252278329787986622133965568181721222234507425464364550291904899903388884270981633278988411238393946987978743792481736035528491011855683677312655826019211429121990133786233319925521403609638933136821328615274317731578961573723688967766328867041424985487487971394939408359478984307798059334375156211171058104381358681534836382277624885922855087179234610206054632741567381548309035002153400228655609923368458628375608104909409279291281130983603909614007473788832124790175041368408044345484629896428513084354766065661094127392929698030312618773316645997311935502061328538584643220980565262785654994086572259001712115314241400015542693861796336483331846197701640258766310273186080826858540331042020446800084732706800559010018333423197975999430862630155690098594860609758098438129518486918039360702207292001422247730940414906112727348413317599225570144883482429507777577427168673323298518660983908004726361260454315352495675918817186972792310974029423778967743378873544885935477505150159323278072547463928565180604044853294976391521067363478091530587846057753777279978926930137234999345930909690574613657253680267238335244438621068315179736382535509048256813350747125498729911198286271733806598369167598680045376313320816869189453946012192620407747204004693523454684970867512851051865359794119454372521808089699231355826446622712421051723212120609675975360869904253439829337341730604478890247651524883778704642323503421204937133418450030018728608397470311152860617599784930350061878647111278599032002275365647201748404926716934397954466786219836422123055567056474179258944004009390639526067449255069325127246480853035117714783750258745960429136142274964186442532433491918007140163648728330928644038506131675291197245132452809849831967948427910208429809807023120165482546132228803257710692699085146292399178342857203417511886350391245696857489272115950147137080253730211687811746540440648407693810468779379097530562279514630937418503712251900288103161498154369935900223585134966401856789301194889811339572756233491365440091956783728305382541807160472301324588193898380571778129323670775707583870441785477351990378006672256706987366241013079836834874217733887292408379057190642195269308019479193277814967036204053660786002291799719876402014302575705928461088754193722866520223867071184973030146816630118868144657787192604284410397718358014482339443729092960348596349898301229799920318709193022037909303928789875137887779025974790380971617671405282315084690133895171100738808664818377256882573024955745069040941977034716318898265770178045131724819088421035722572339726846356558632971039293277639901999510991910506514557527337251884895519041035146014502671594887473680672482867487259096718310788549221356879445503863524091505760738714437143846330972996238976866220112667400131968981875777161603874137180753812930824474764096975080804105656486993604004927590349740672075417289960562151482305835626632063226823606146551477803936974879220821583517318332779491904523409829450617559629878792363072534476157291115630223946031626803877768050178124134255994270392046632890549494454298812296632290067610700954036911206173322019006975738594807759851252705994355338030173577885377854197143383489495758175825297177256833414346275802471140779477224078290890547902801006511595788512987143658451874805873869269887375275201179347331906698761320061923810150586361923560903360254239415784046480085037148157423871250810368174606637505462998217773855385369268887224979248549780340054122874847419577121611152135232646607007539711321436972002032187976094239628786849645053397412744660282684420389863617449750768478258610680043034974705413788496864569565938001942902605810237416657427122337249056051505869309158589706841378155748311660008874995119129704014454843587348065528662304354512510384299725976905585013028335191209637628104798400443814749007161783726167069856169478661505461390295815218094543166170888264306471713840656797021426932079076174549081270516503656743390339946755457912574987312221624075854230859940734087638555465768571200043502701718698978172566078057587828489336867558275213724877223907233467482729775343603341126535780768334462994341137838737025541841731560742350022997427155533040948902647642846627190434163394172612602645141098129614225334950703106252487812756354954273671128527242988025536829454955317610960119233268848579662097477075409267076011608456617030082514202915190555461320481358138908150022799364442477965034734042476654850880268380343441278977852265725035822215953931440354191127191341244165802867494219178792129830150414811809558465790514347973623285832956512490334310021938406194722742311961031644707665334182889797311300757706510627286854959423775000867174476053757440965810091423879171008079650550579022301608560257031143735492812675193561934611218114214915665101633218601786515491496412142019525572864235502250882389715872258775562288123072137836123902054392625266628457752312761670920251101858390997613674266501891284217524298198747001705634461459836595255723788253301168318678775433342908505594943743283705285540768344185240529429326808978921210948365399019539993521354672666617201501047411114120913320894241595258292848163941167033119826018583127824598922311630319463855117255975944061013889258233338457374662453754606672934724527968350059010444729943844419625836633542707634802553082206859509154242604067586196141536461646698997452063391941609266076307115324645884771070219721882462581299669808174136468685486914909577894828923265215948520484192795230428671781075972582151873278443111937312362406288349579634994408507155720037429213836267491180609800138805878536454615731243662414093925148700347100147852306793201886225845379762797584458900299862919467165928592097741971266278171997804931717996630404165374251804856104144892496414177871588870906222879684696812203827951627751840027261055460356797624967972370737263555322371580704242252332960835745893031404422624400059312269423299395181039360213366566726299110930239318147399361846184443553972778846180477781211553615992208832421941208468678242295842267985404107208301681860317770989801331492254338820452025395178813681346168365321933698749792056150126452220664864161338865090621406545246902473205188133808072169461019618757071698780001472954396079200672323751456784445794771655468526485456907808035782827301162799559664263721074906393312639247314957387541922135614704970373246805280502369717601116163727513708128213685609433309860562436441521182502923278325452960511602363794336175316357722600690595950392558564927408172842624647208168561247011406809366936594262921940116302954640222245185899008099682815856444078255783445188214320947692977290392398469589359718835406584154664403738697341738853536321006712248097373828891657545973094418284623768063082761140105796347597906803186604302955619595376243559078000959851526273346414856900875295468682430936586226228808559496172014766802562510860261869656387590691920937465470101676819697771705296935744118758261727044060839592958854498891249446109792977954434851368478629665533413871236329321541972442397481078046147349239995827521305291340081950494250918171923396673343727160443872884736961262493000447457887034767011861818156289687682718249667837085315199724460530863833941227124780930610863407730580406358562575727131073632481711927214470364563845172041306561708653053527364322631950436953325149294369647615178211596414820850211247622151649730164064887902394744997805570426500802849507978636364444419365840945845126986195629055231213356551480293797309069476681995935083415098135871434751951767714002640432032947790275949278177437834926264504170977865224810885034402931002986860012012254887992681803176180947404599522389383652746427456837078490068131673896903142889156645547825292259375047499811028155396956643461513539704263709109600735385225899180150630205308897015873579081805079261381254160733509144809793579570796416678421690068757819009738690023575856068340028798622506906245585399083083067223240973977079766833030298092962492988462940713902393669962328222694243107010194673840708596341940231788294602742153132555771605989700362668408642933149412108361644777395515443467027710101851880921482348199587591897327129350546416643001482646369600680012143698035257698171204300399977253743571961704302755168070810963617764039822482922168414908025799456676018245869279782725906302321696097665499624920348067735065847501467168636669946229841536618909117197523872149322260670445900335968612040236745335136361740307124052013565352090672623012777732332468297283308627222371793659876460698243162528878170445307487140191800373764593859435239363439214281180251829654164857533868608343615156647237299614070623756580593357201792813235058484220934045166344514462326244478480092720894985309948126801985193295153862880816863466241672532849875072777131064810007209850017178172583639000062921376055528394403085141182489966079295224821218817339604386208799968518291465292414363672124042285006259920353054961957098436218730322974630311579549611378196061795715473269814255228217813817154571492155382644635937101119189175142926001021866242684206939492157658801364078211474449870358657164407172307402404370013439896207345785039566843641520458651195130866784946528406316858088244756199634848010958205744728960113505726771159707332676444897536975160856031281849821595995315471193707788261474241845810527053724038550176031886385171745905875983742613758884985558210615321153332326783408245791415994800084226289115111513642952465451290046061771969981882903549969711494634091404471210816786295855141615455831288980291275623800706347457900357964411021719263929071609173269551886200110938277415134353437892916001756070319383174286449433579822769481656216255849833483987828262534977469125648906147253007045225191056531551818666459021533124072576398637005473210240801197968592850106246694851225714600392113321061737709627915120855479030597335577325338144450714987179980915798521703915250807010628912874888049868691933168316593412776171057696800857390279802959520323295729510896222581881111806575115666535244097974127349044359947260025503753786545555236082530809535514951018825075488218506036779449300692787580896578219032527134002274489752237541052774630403808899063048056857580057512553489294375070551621697712447275296472745119324555514256946653103845451456749443504189344178700358752176385494757497924628493410478701833692661042820637422719140876281225928029440794432970170888721325172278983697799588232018857007247927060326221829268119830694591935496529155061991304830255120572052355699870266564721762578280251187825367669130576795318200496834683785523600028276770897583153746222312284019106408813318743222346767583133766186613276386567778828961627018324114587135336336275777776033667245089921013053526611926227089504488780661134998387400057644412226749762140515224219683784506238331319239896389413533688000371965060385949475236011820952335979370228726935117349913364041685427303038781434950099971494757287992720145830207173696451743673828871643540340813844721248980084816702674040072050713871467507677495722684771294644536114575077276883353602651857193773645708955085349190696749371522385273599528620098545454749548858386958130559165619616826244606434618441467819896300607736397572633968021481024403638188429532272258054424816220037527410533625199141741817847020061635379739072566376056935118569709130716000416761250289201608308536205637796173293315316740562092010239357051809288916131056901466473338328210746314109604529730863473453281535228624114450272113821540173256066792649674949927814562051047597065840576873798165079187797752778032696129602073288780354583622609374079831165991429711412266605506230812183502654862960953567279157771966389996274408198387278146412082005942974102349498483581337151164447627614140052318439126049864675303161487457425933919903462394559058204450093666866021730490819842668264127938331818342179598272079130080106217866131439955904597743426027463049953708491738561050523724726321073683954865187415859347356460335444813345939894363519024744708729882211145553346619725187493752905552938972784884075794203359440119656921788110982433883620355650851343721168164050308099367654363986281728608476760475770577963486628636706013606713403919236058054439689837060028017790571692880003084067189984204727812419522784660814389046756964145603849471685842583153114456293803708307079285376730905695844570623166606861952179711870002351273536057808399255649478142271753740440877273593681295532889949791961538498088667780627755143675574999421180831608146451545750409252328537788707160830249627094815377648110069579781202121373754040246017761657006946956275209660551057546823434720345788586066724319799025872968697945220639188522536825440547411479459104534843263260926448457237053691002041542837475085816421763313606432442367111467928553901251049869266693845845394778653167231985423686982429605158671037694956571383000406479560656584100775331711922156579644737227798928393571115987323794774270305321620166354408407882002658155458718796192984079207472777529745558352769981096345389660353307548819663878673427734251634780327341158976730957189952605343469078027615791032237465607032882034381983083676220278664922214156262671478134591017445593287529656425387807279693069609307443353228762698851081589869999639848667269507324064501424421249340532366880596067192597665390285874904024962958692748366425486409524003740023226155203515126447000193512750255391915218712776862525294749318088648771035492521120202439367185615763640064101406472988361985332607571696328739522467508795685423420214902409838439468412041462682804686885622070946657914484190229684131616136314085312401036543788350751984746195681602157867850152068153756850989565554139940407066339692925520144222171180137953467226692755526045700019072291692091514351234404131540070756227266757690817562718234605352455208889788249197111057549647570107596650579745247578493309999858014772561693491402165308760548470232277884468290429456567977707739298669911380214295962203942441245112651097424147583962304605369066660200102658479606614526445708638627940062363427030020248975209449642421326038215274754067282179915399749938906885676517485512968023340261700377155987654644785321169398449710964819805552947971464114248076409551086198297505578365405657244061385033165699544966221407289958449394633197043434593342619476329373698438118461415817450009785978460128065110451965723598498890982691049152041793386196785870910214111762191075317356732837959724639958952205423785719290989483607230984690461892838446583278753269719058757555401437841110877564197858345715333405415331077484414973566461580185813951986185215528898813925140353427983656231752135070240674477167712743189159454022470615310312997062465374127854963728899513663336973578989376978244671181294542400820067324675625920757608654351038619972875385828118726199431989510284881163274163595525457692698149989491151970213494846837880733126103453670203420644848537153714028402916958338410104353361080039737343539822150554912080740621682034271946124620330324805620275457363125630644353583503636681962071966818932248781897352912790777184668875282305764276424266583263493284171740790587730363578953052606145235730985290680372981375633193987443363574956791618290835886374366818424811545480573956378877953159006061650073628065747868013762429520239932443105792850756377905726567638391692280354015701763792598044728890144032892130808759444349677958677214953973911203113149917455344157131000737883023229483132769162175897621448249888362553586360659984486236087973267432145325361164414110808693225473462017087923821934673635022937754815132316784838587984907790022017017579933597065824232391617467317166642210667599589615574537445907562046094835629326486380215698800961743662613432897724053114550927472028634036194013194656055411484223010335020099255238354617062933467271225571088630253256837838160761910683278783440974796120171611710172958238078138719067324783548482298555683172846143384688525033576478060959258101265448495708866461222424228739790360294081381140949250738147708110754341246226633196278189302856846602897230496668949606197730487920478542013531734971423636023724510429235981659057764591621663365298756727817368064345163465972659716493891163562147192884795529974925165419034242131485281169137823333442129590121286266492469558949437714985539624246522874283839899011120144763938601831173856885766319196172416582877594709108822273780214596656236275549860589934268287851013096192356825166312490509480931772951699910701441636612329321481313430607161980346982252786084450048870840120036411352298134516865404056157385308121777841446155943504959604219115482987394269693172538100018869092963677968119155181335374492914137685422640635121987116002654684421347912913205486869414500698483963370637948766808804033815318549647739626969458785567854979811132451484207160009449147951395642589493354601890344313958684335340109494637657363779810477136235086030679023237025421199314920226432050341515407772966982712218434471955366630202896194893476900748540970318968371430498014787481086819605901387378586073197668019509815622525856270208935103931009678631600554489768471653116854363173974172871771068039409305464870190364912011744801160423809317971633735586496376055148074920899650206139423708708538281734902738126792061219958587813479073110602351809590074259100201658773569216277973745122381162755710542689430342388044278138909070266150806538410255359786770426923365777545668206646493221268368179652628517543041734129944238378245405447891255602232448423597198466282788996525790466676866106071044896243221997524748325000097321419338839840542658637308834227179808284588810126586070476384998500869640308023278463306027967210425999567066977230016210940896782380836915056127098301057930298014843255594913545410868155835447290374802376726428728859964461624376564807209608628696273740690515514209700960024759543151241152450329927686757500243105581529279856962063635353521523069372165626826867416761529599717295829830130026633059963646692090732400993322010927922858054511803610310298568931833153451745808545253845016890632605055114115927782846588982618934099392186109030987878018333569697120856981191837280467094822041498832720428630042530936884641791753398251706630491854994486936689489377677574620531779361436667367681823716757485445055419939760752714741390983670205864502151818250050961719327801429399920534346672247052108961988933861229464741748166957112979621695178317368943645881854102834920421225948574267994951014252827778161164759104598208171954224599488303642499682403978242581862569729076479386819137101370522787878269941174949234103424255818345694268302699214958159304999057436197545117074023935676946418560842284508469329545502150852841660806982811089001717045535870650678850240591089477432871575739852259113041431131187221796115230901507846731449426293882360605127869506890932597679485865905304134192500318061552248580822217226277053679059936271111781066822128759769466386793281580128560212327395346795703143044512694769830059977392512454113135209386308870609161105389051912631066761887869081305290998767144464808779494882571774723400014565397153430264619032886160997545346510520578915777111980470156592513442744918762328305910221690327481427257886855815058704438457899595943210122198600707142754467845698061089106603790992799254760066421181010098786217464908107952837829599462549178545756847664990623242834827172348495710994553208746288389178413618160014619658451305286951215792521552692656661200592218850743183198242133802058324320071400174694283020369157368213102842988361226914707487320768313253536150978138074341784385743739531721408819578203067488491230735846586958617158439225649852503095998454255684031031372944022539320076384416421246021329586974648093514489653480215694725772293215531395671526910249015485254606793972670312920025799856249276990484386144191572034842080877334593418137574035702514677989443566831164280851266338367360474704163064355112775074221109400358856069489659987707438491202170199969944884361260049688725818929702271709750897977650505804800885536504144166203112408157817652482377130614885497206696500779239383614539146168564209725637925294965125838559264962980326902774164766498783048226009549300115998388623279831269568548130212885377312248766607475537597132004776557322370122859491668827983477334324741153426584986138908874875570140444211211009647830104402915559401478958617543912823552445718539805231048760912777411895630012456229847341594920856555935428613408549926562877692857823208034685346861426726378409513735940603047115476505035920860538341006033839805118054653818956724501721964837320503830060074361722152066750619951224198320648281780395257680604568027490868350236915843391884710306228934737376661495771201155831901481780477916449093777978196324648026084137260598761241952703831607850710047594506402882293073733871693846552025845237970428517854971053567482062033302679053640419513454242034303886199431679703939267885464695615928270638700663345489057685997480269535395240587713821901045122811778585355873775735649272338856668845159927819655538926260218049815717314252373515772550473471642658945132141094660122487801551180006089505577836300886869335951350230261376909119056875234476931046535808046533318821872986527351780415009611031830606364893503000401398303996513488983100379295204548887784603711102024138157226108730560544404861562170570300451943396501418111754938400258845539120145166472146929681375484452241891237987195749641542962112444081575835578547101690280040916262683698486011702387375287865232139235806688786430957073540775838178385923987250642786672031250639106408648917890681672595317691865223516425026141253699718352812906896009578771530060747717199962619494157641066028056603391354394811172312016277102418192438690894820532689410242332347610079838702538797311235741761549178562339270476316059460155304028580517256352337864102284947534863578878213968973109733279635667715840145317333055973399422185215889600018891202536753574972799103921071169493052357507890775917760912173624396761265131587087450917389552829395018570550817612841553002810275992111620411060201875899126550287428249195192345991872360531856671695578944767851351836874149673629798107570936070983017782275822441141855701385902620505512094072698901578980970842943535455642718904712702879694529513763329197020277237024288907104286176101480270507971535396524875988758053493591780553249667983650261147523998768455897618489325608623789068626666939939366246578444734867627721310215822345761842206856679175723095615920838605381274345095550344242008400867723152693799895947291844162845759966512076565914711827118552766458555501902095631384655903448156003592046811096592068594955270502883507821082549642048740126227602609713092106008858479962095126476971585574742887050308018703305016496093121782645474629924258796501964652655833559787277036230068387183720303873909734308191894305821523939178434518914025384710248703004561498547602254631175088318014757662660939389531840807937982743247960235022434551667032562826947395990216992360952925118893394967840591335121578187707767860301318483616507365741221026016253589843436472344916869069951277647841453930470435220481853501827121387363436291189221421197463120206044022308778763034265876813077191663874137340728022812472274717696347616427021558211001159208889227825853628425805863858170924577562316974846215188698628141170229902560812924358501395622750166871536235132134175283293066353868745728203494603966387413851375155299274189778320589295933640219398038584936958241772352775529431400127505688109868818253273753615817716202070083792390793016454064406754734398975419915447151775871723935652258605595087975511317833445095596907903476159131860451135081810468833963495455320699554340360701214919466905976824769798877988252177306585898984995700900302223620024274976857060002938400523429456082264071317315959102470204650912011812426297368221560087102494980843613055939563946827549752793271446937879935455370080687495800916932927982190761369146485023291583078349334327405248621678126545766359400920362654128851503944683704028714809099862419546662108418339775976361366929373953677075528110375938146370771422198231933292806704254196448954882759966758692983958389048038826765405059008767067114070192023761386046927544767609666526825984703942354748412956271508859319082939818622601497625029441860147838441099797256684574395074866870527443067524260843820277136779170053058925669204303017413627765869503533624892986347329751282553653591602850609056605318632195404498490240808221435511555877065605729645957780818783375598930669141707656026534625102291686238588452275759639148078995138434748943330584349265183944921786171236224607175559795093891816332423657891527356699796294391352670075460380548716113855425093219094144129313185070775769375014271087966998400642693252335408248515368201445874750817883813556690726331742249173823302685874091709536047410733180864734458905101655157512861851803331994680327169057267106440740440700211891009391442133190874638071928335307597264492716753822272660506506094056060278252877436168546336947851769982353602227213401351006332170691476688727014671801593188700645075014747325128805455158258418993242970316950174369510995698957527197566135432127893448134461163561911984744072988598686505858668043165203719659697678369515385958619262289224086169241723700907147861242128118002971528352422419806097616686974674724477903292728373783193657373284458364828239630331746412699263440220893791496183905223584180748825733960502566527584092762709105822409674129311915615786610086647064968697642798898355791653822698688923798441571756237202854590596081524521746545811215247953282385926151694294328871676786174339704986698825699864889112504968566103556883200809479086613120226565000712681356962973040463275953668207204071488248939277297117424329416973719249047860686559672987340240168020459246623807217693147416095860541412188902791324048818186546848192795229992922980887408596695987143127987035182018082479902761087374831457135716905405532455596580873046506221318023234175026476609962546154520062849635603704693913371041627491032738469053736964158937776652078003455957206900420516080282998213611521180132964967247385104835750548174423075633129046661765660052575360606767787154821416298580742582162225574014399823172503119615616145907155418688759098073643491805719933236800902467842525244513573585723031066265422447361700181142377805253022649500169502279486466576344240741184527832087986909824224119218560466569945364661951983076401608887025002272752795628233064250956936108802903354515559932170042724422711262989170435947781786833888091928870645720139536421413142061636150810810474826001630384954373130749266932445001226015850655334230432107801963438870045642021193689292590004246351520304146827347520904764193032198308370263112283971188822929603508905441324296516133664621352451969907489873270977697588882447254930247031328406666641679280347683308593253674396109215592485749195001253728015327799764528713131874906510402635270754162002879099139525912739829059544805248975641431377756318815644502980895604676648758961653656114102292537501849301505566986803995108004916980951870028477635024407078636223170806786696218265347206436633725763236539857091127765591197987638560347553474174928353440763968002783152988015574832699467731877340736335983458000506161289445015427064611122115474610817525997577066637967996213345796605781076140812524540490506038396950472602662947142936216098659784207515662868115501945634848705829100118215553264605910461611370974472706316453238416875142025488415565439556425584762482203189226928563558058606999437744894174817524450473726576144934545395996887294914150645225593014285335007130949339922275886967991062304659397989155244827587222518144146078105742658544015785997591476119020298600116380617619413485635363004962709980551766235989548327118811194511050245497977459653751296492030590775642939564523342742838290898354586828911453317085317450804603331259624901078159710417962778836325293805384354375133564608534188384951664335090355071933674386723034583107289318230937206904802516213071614692927285041726308807230080992750851357609017082000170569314468235722699961267550793539822687197487513063841375119011842876472619527977855920068073463404648599581672964665253302612648232585903856114345789650706437027728388638177010476749209904667462494906102382707703079177254865096751209434761246603259490083280820793232886162258548395561609096629497401102961218670540948422747057595276148920110853149817481286870995099962060818737204434563794623939643081508796077771656100812844687705093113709252531989153182064939302594044357278686129355847960442729092200804469543589196247104400506111629728388935572015824940110286835660641367170324693074759074295130712225701231901912566370672693307161158983152113681538004087756993435939491073254303965155334313798819273234944479680603117247664217314311080629293760785358658316990214084023361923633401867370487046418715813028979517996585730850096531955625234426858808811509347270345701794154767586548474066094966052296991612152127970862971341913594746861871022067822390799745531677663358022024149753341187853361728258597306886026745832250366571560595667409092662470317687120672721355268740953177747387204349117770949309515483311375344181191941655838329283153357990137451112130834121968755863714265211996185780042331890196530312658913898255290685116822402669628693194826584011155403094483008686085752032532538506282912050884608306608893227764133974142040680632394566051417125348151516977315595509448004580483791543208899869849401118183287163895007045318725265485849745308304299395843002676919551814526448023634603732992600972155316913608724087467091162285342667857399821466620743707229784713266920402037311279733508690606223312992447479262855255094808640897631678685097104435903804540523374188398695391287995529478147891796113373874500440765728473938764359092919042521480897374817059644371644814185468860786790784007851810130370291162617250107331382936071784194963425517896914476505112133092313252264917127876604515943175228303758019646204527864903863900854212922740361588296511535842470226027672175759015988294211781929470281061353626022190810200665835403945185750049709055948111992388287439427064392144579897474709902095617448117796081549612147906207522283500806159645956404670358441165107822372690574838469200679040197696301669317227855971666860719011116487894220737326941161660029441117354408365344015818474611365280966199195373663871765279575303763864001099383483432148002155530374291260420722487071826583890742830135368303326774764463751164604298159008009060986547000570858631957102673029261857908183808921118136896632152586792253266247885931786919693134524488606954885174411755245672421657648153036227653177980259012803367590331645208562084208719660458957199401392261403250961587117723095959237258850521852280426800460556814065807741643312929237608932399011005551097090927828667876612128556140787228058639264210573883252561579082954420467928230429154169607925612889167810585070230995005576223204645171748339076325335267045530688885489325388547845841442417128718531043175553456191795402009382829444366356254327799088201922999420976228030649686990415118768130369595511542189082304987007696675552414596485436999667104091006071881904174992061971136544492991766659787421748459671816690673114427950263086511257295638929285968280385571107971942936006176116246063638991235197133698756205497956880469354854339045666061448911764596222913309823657678308617268545625282136482815425839831354464807425713838050420219495064962901613496465881621972044989428149079539087453104449072850687056986195375646938984946596585737427032626642045913814698894554541273568386591939670535920812121731106113945115955881320571820110078400624660273556769760608474662609555602747996864943421714828308900187155596002156350266922629290128207703936197496079976184136310098702433766794203157146241746230243829748029164548591555481070625948391436984033003490476718350444907203552621174220532494755846307214246514688897204525448822956704645637557162986187328637572930628305884158695312227604900560965586085633178534824096505205737271029583214881631824487503563819893968089922634939630869663711914422447046988273100149492797753264390136922803785440706462410346445071798994224276965580861837594286210465008306478022371323793340657029713364378243194348216026976655852982572355415815878408993068584811933677136982291791079804645258694964250756282707495903595888649479745397415381653592728008738133939267167134351249476048273256205511091476136084201890324604567470814313988567165221537377335724860039820865168346582804254189410082819271320950327613656992173455311261712577537640948686511538268323144425974791211349358195964485587116591192159615224560640218113788727797628193404925667240691064529006869899502886176909517307536172640227500307131142970731348092873101224665124079228430779978431338831064094561354653261643966332697750892107711319649936068610261605434355562884605013031797658285544247416407194809850688232816769953919400259510399639736325533356917305094599303651902572909358765842176976558071895462137362090924225615233951604741914248272265448587797787960678575761010153878750745818740137070842117849065622936041653519920996996510814824958571378317458093407931343791801396385028305791972850655468087064361128744921179381354986258555927455512128829433529662182719406645747536543393316818201584766065683087004473360533075722444194171279405198686497718379646393013007531161254961742584987548814243041105728618629217162595147425106183423038399746363024068871682693178099024743173781860086591216110292423844231744650141591404021777558167487223491128051186753602119314890973541303615365405950170721513277852167562185695152103509473727620536572092738033267377464861419265563477466488871887349392905464521772418669810728911015251283864351073410742470300929411097001343283256712144617273262551987420333363579313446356701305599226959479945261871502456212887981857196615789104315213743434713533468544193546674600502591267776918973279997997079846198644250751248680135456370003178326834412339585532395161338523629736092665219108049562581780450742903114809559718593844985078562167700603425496305770563544779444206900231457813263731833287956343657796640593919687316902481283247417479775583008230555953484390352979837565292487023936462533054005869607566020818831758965014004025441490722790004545327985406246775076356554832174858048359649889269639036049161359953936311400177073652597173627937660899824377769104473308529315806698887341737835280521908685369531695884390103596308265699000748335514585779178642636545361322862388834308003756685044943942571775398889542624155738542941080094941228040368864890712957154188718402301545997136553322438210711386262239339636954640837584031157241523471934176925845507816458987769517350915030023500036452522774272801793347193328409589380436774398220648931789294781828619163673711672568022074561769606675264363638780041423895172559606700826491061460847193920088386618976711766910639560141957972529134648493316170476672050254426162420721320933334396855442487557492452821355056087098661783723698062724499406985849999512968246598459500051609363271587285662790606358166226571351625665789984024600343202414886276597713225572560804266342069669598645790981880915289325722835299472431334970425359124600519097240699434322094863272760367704150958392127419254450822767288114872684069323870263024272028396643017189579166643171699430415154548956771327962445092678076548967304674023515494863980975135415093169453624869687384856301293109152043405758462068996845884458851420309903385211411162335742911925127150573129574677493620849668944479407174303158658850389953308597338667986874004859745673040470847388050690331087458226595512646847842295297279503873045848975724049114733378149312783139323390336856217903171442088668385314563861428699253295788680442616302594915601226294175738959173013576434546556490550536445544621250473903180205043298942610552678799150214950394912657365055946772942616639931409535360621043900752443169587406950094346812401059600102943986540616000894960032871518072367198776135132369744163331921645555392357131542793707728746945630235741568431891242135411518700105411015126758084628468555784112756498019815754380746000220036675651872019400548352946392350269449441526947173430686305064523939307762682408803148129095782853949558949583040027295590360995066604920907788872491186305391004671329795181895292597478372960361054155215859609580834742660698797987220892595331020891271492649679162137254726687544006510275049265740274907864779403412261857117594576100408795490674675685342716235433851881861584621126158583393708176679423049972372755597399796957777412596557076460773985536332471246208808921847997656608948120763608627348653556224210033299465205531224878277580292833354820930280786861970717171672716465084859549069731352831305423952616652731245644232706359297876850782996171797585075578117326672797830220223078379975721729173928807090376723711718224703026231415173435657852309206335919100771119455816902484818277628069862922726627541780520840702882959861469127146308704549257406719219672846499908368733679763355460804303086596649294805841321297794210802731174391283786439329986640956615396283094639866016789548872237175792336995389269392520990347512254344855861248085009915086800507171541843876390906894169919512084273988593006876333511804124908593844200339288728927096157168674340599059855297840845452091868411141727834319451077612000893905559227647949038005789128241436275545842370675333897803722423828802901831714687545079660103380422073524880145887421021578512284517936507723114066684883522304816109606034312988150518284644391681438894039589948179786782405409100798519383770474272082595035183041797558215866885845516241655716547208429935102800868344825924209051215856645040747802326454966272283523200350947473876840149126420102512232359681384819819270906359990605034323989164032098755358441522302244303288680871472465927253922526996004971060780273793475380232181495162786390446614545522366638925173080733578565577299961583477848916159775222710291460840932803524997609745515859202465403063314033194445224856680249890531109242886706669648887934599211419578668880904906142073887903909496692125968326306934038842867956629939719922329395990684312050336291506984802913385412202840042497215778286988982730599242678416780987871625245405829598908411081745243837272336460898659419958372012820101822508616913668022538130847393330398110455110906380853932461534796256786289326052743683589005203478856590219493933773659484008329804507715861734104056314727079600805327701706526515371569896998857873540731417019536833426502290477562294715305392076195821275173956737474658718116256874658087213400017136512476329866484523342380683778209326880696848917935056660189956398715666401352323274084334689007429770176549301093183497136321868445383386477966735649635046027405798782786039219804872763024585225167319019565946319566658701783190466368837296169755483991555691945677427347077154337120004042850630620049145082130017708549169409666496468933383129050334139261535136523049306838671493716056636547328631006135248851456764573412617304410345326360127986310771959817407141847579035113441300134620926290456115943313498824031620173519067338189923899037820966197236764691012715437801810340934139796895188195599575839850256346220648844329658946484542173315557147912132029991634943385870225828835891694730388897816473021547937572492573698886629698045107930282926740077759787690526900183646675851563194400868592283102388639065312649006538563504134311382028337190011638034590571127840637236022721428973349272053093004967824384356548668883716581808272215888132419970591545104701645247320952813643070252194014072010634857060990760400788379477563272350322819926388666289601788743043673912099789600410141809226800797606796037302485868853884263218337954687096114066236507921190550221560002374403418757465446769842351468750862810412156815935275207979653606111478539381264589158031973984199537068525853559993628725706433644853291297751143226861812573795937966204334593605889349633624234382377691631399520167424481299045625517593618757512893881209168028725744691275364932252028677443642267502290367263653528817904902305336589872448122996365013617692790537698321581182071544229530069498796512942957334210575991602897399131750953721663824720329725149923281633351499161027602813367891674626997566935334627035318427172157128103389784817430255484518161338931665260902999682001289992327229140274115459782523528640216007768800529341287522113400321495768900047604131584370932521486055238011442291201214989263071487795985083895903683126919849966255745742573319116326162675536135709122310561896218723565939542182069628993971945635765097932655716465373386486993142895197922743927940514619182429204729096924039556414006668490201929975934707081923020885223761872699685609389544073026028990793568723459321570233814552530718445313711848876365466338799434876008327035485751247390978716503491721045644220507949724935444615120147557200142627946592456154683341459647310722507951836921115476582625986224633481680999905769311356725363738156812190881638963649064368763384056361519974002967183976536074921395214128435261464614810350072862120501039912974783506794646823998298482446988164389392014945788234137885910517528859237428377301292507276555036983532524769702797121133867934802241117918908088245566592251687595095003785758340604705238022701791235340011163305051172650871537199751277142158797644406695379889790157123887895562491548303830980841965928095852408007607882513829094085847602007662105121240300090505218359931946792480617670254782704168600145322115643942400712981989357989054489943584620695163443920158866283890614645261834782416928946379458174468060905733104464210087219227822964149210467596042308713758062277658220743345447728645073128478013370127796194735440293195595610988335274702227620858268938525283055738529176086473856366603419494486316280405060063292873381726683672621905323108376998606698907288272829065888131423411495963255299455721627196750885388017347589701086327761359550489678640981308540452969024900987418929802568155282073549952962100233471948725086326418107083673669227230551361685960778806207895886756469518983790080147667712212235808031575986201812204154543424929829244667191973597859416111814535960203570800197939800421280870114358242459617449699984236558564922994988113671484530992157561174235525305644830998493553659104622406522925084623079391872320133587593664475459927486322298049919168959173717812979977154033429236568471599618168168709730150910678070419579387267317431889196600317959666520876109923538817951456905815587474280995664880552849196696177725253500771159622813914653745152490509112953784438300856519994367891531139539253625960400296261547503696610168624337340387387676123681024864702865142535797439144478326330911882947382035147823184087387282713703627653676405389786049629694069669201036855368161982974714016042096621262656288376483452606601032285949269328677430792669504375933881149309045319744724943220040764716353083599860689877182181404284537746612466767426525506241167015847834431431567033870598782459832025708296493293041449661283029495609650123888630249333854847887251473750301482508216403503787025402352996780532515381450490798004912904995518614424278058579025535974442933710030972957661894682012695966775619246530836170121308948595894284082723344957961442928977911855534352976065932183313427114146234912588928787996466464118552576796329538997347093896253043880921044666893149292940824935559846464854590000682853275860724667303348874410910228063184264174671711244172597715614315116533698175532157148290928027846272028886872369421006891608953248839553967078761526382548114202389194550267266803161563958226585848655476642056109892340518663733371132728382109188385941028913512116701050578728527523850808845491702406330531900829938788734024496859491357670646823280607372261425447014809064414261693314624382459656595029633994533573930611602535706452572125597936268284669565741425180136533883308470683040915308653725145391958213987536609243848214143483052963454249557190671282105777184430859614711730425763883811024933316208564170442520060449910148134547640450867112652116127897160371709187058489894412196404610748440777300054301466572888109211700769510950667997053490386922581022343977413943335734631808776871240180792509925071312270916182537091426056315982162893393787976740787495458266214197062141901228364501740037729316374481553695316456240063110969763255099341668702327951090062943873472955613823021616472724310347494570432514947708928526718076121227829807377964146729115834127064559424046088336332802881811145779022885528433333702826204204536081124230608523319772373603372252286440565347178240609418802827653502821600949675648753672003925902291958783415629303366097865548103585588894917740176800952987099126810446578017432373004782152087226033351185891404807473991854212963048790866941432299520108509678543133097448904978989276490299747063350868126113815675424408388712158960243347161553527079307839772277604493164590625531370598175944396111441422887504314204456462082264879785569135217235616273823975149455888235702017536340407856146416202931170825548545629165689120395946248000271808117720471285686780027396811655953651015407913014717260285363076567484892500217121127219651176942732744286184345561763409865892624077067883256211040181792501405516275218976197447009260565661858300506806862877355211300357998812781026393875346760901420865799536715777487222042840368729268947087823702182679609445842555748857221856445900444730912896505974979977612947801292584822132713507914511494709655775156501341445287728212875335366042373981722499620468586257471739843348600183026239011306927458077402658214546715462635980312301258243448992097341648563488065524656560455907508430067752260327822570407576155771056853113114795779044626635208012912583471886124584543888061313578281185293752172380133658029149317589771691963200602441923377214027253757296203037119159108492399995432099110498288463960154383373636051814880774740563811066718768428071342604245106073463368524502996648988765639913602000161769884961384832129324376035156187326465148978562505842768831235083494689269420019529578721401535977105486987301085151004329830010507473452344010607687822361525832632475036754902939327052909862438050967582789406996167839950651518097508360274633446043130761808286907166979212864163907697670357422953235822696070561435822742005554818854402760833605411303889176376206432077201863237797076789125171627158997168409994291005051940587983530881041819266107483594968424532582711225376480599852355706698234409368662771411701010140018106033857597823739859513277585072360620795710158065243584656565672183941977672696912777076345512333529045174253235968071557224283249373933296628245314552959600918643668204497323422797584592695731385105652733405573043744223246798291962570890400762665047370883295223751713206454487831397784756854928866650620158099365895648270511311764387318378628138821303253022140439433653336510045372626127198104187805248449399022799492861117686064646242557745020269592271850574254151921287134736872474954629070154436351925072731990338511395580517382280559908996438848257188320605207977485395852147018359180509557591492385531764266515378794514150465098441500600814576986051696546830992804073635164769524180691260233835946972544397866063080350860222257473911374526699728791421335838571592061709853710061782579919631587794434693753031514358347338770855249858434465774522807856364967960406619489958964381562850405845518408331705475431261517119303627871843323893635543041709983804260867321383306196425409246541086781620103610917554043402122489426219162791822249374930123835889092417084590519658017023289427608675628332039003205876598648819070012997856124279035719676383858044401876737655196351231371568056802125711333111179647414161157907014185824800222937949588416952683916258306705222370846515164620006036683294860814405716633564260705982071874883890800541423449810950884579236572962085907999598651168768751976540904035741896497076137822529408837554344787032452925104014199405443207593013891266359264776037184434938431978607240505265642412851084303476750942522022907176094428728260801623073408126400917654066170102090398733970273967518181878376099743433183454597402208369321716639464612868244236710170901545089477580169886845456973725984987089004062015198044433441208032923820775783159004971573288167893032514642768475039337271515958732725082722617285050092967885874025894390641785424649730648948756236649236696607405536922908268093223488173768272346071210218124131742158798041689028413049142245960420595365643010850792117240701504664764442176011927287773584991090864647762687245571318017208418277696764294837103804453629888661803763024112207158083054555067969356668971027328530545788949808639185226432925828491795350007664784144455526390843315822766205273737396041021100446145187316727610189002159577065461150314470220427851503433255681482904454865253137030559849863284420810683351536477890158088994137804095163262665222440722587603872909701868142608615174337162866933965736540974579947149513772077085643617546487162839101656391505520618247188363609170469043364179694844199825547882342237391685300418103968814377492585013734961446698148848321527084254543430508665831180669736738080626373993894877603423888668063030895132827357838452667785277096962332851424613744806290154572430582083783075775974035244851218429895754961642362233636517504216581521292553639649776483714625357110973599614138583480584161813113527380504724686047395769963951989923965821131864905273167965380046083836454876556372898898484531653333876239678111197864756439634882933073501153634453560237361180264638821446945823077822762060906150574328659287625896922458063780488878091995752387402085403056495411634429225951145155324998816870538155935885514892735021675031918973499343844595719925598082459059667162646310431027667475804026558454160759586019502563819000599518413576463929604501812474074615937362896367307369999404404639105792031233021587849848573062247036570649583629155654301200880953441558648574765970008034184410314514947081787616453287198358925187766861377647043219776961727363230139084721609696069425711979530189393466011501512728257849318964469040279089972879023993226537202958166180364730553858161326287633514791374454186122517410900476207682726947470608351665864957168130233130663740211717452145457488999495501631329341979353482566539776258230908332710272993273658803740231836002974402254971834949462842309862057802383033002873806291047231262149539473026784550337803232849704578908062704517341461321555017705751010370409595845240757652755514682821175745612687241736810383897280476032293231597990412006498875340642348015870705006380999675960329774238276995234813547914664210611909690243695396383179648784139580103132664240856378396657570815349602055192948267335513938218544933663729700406604704718779153883007546670893016663385982797737021420199668931285102352413303197919691745360080659355343191165941797815052436405462313747659462972031690247293164842605325485799905247744867510836975230847299149955458824859684276785207030692217751752822705974547742865080903911773296798979596793606637697060158353203334507953648679575187113009502023153262215504155422146284681812102010421178029069864816399071535002341759614262094826183864713393504953711916332208795032412954735197543268427515842175379001337941647229713838948789101919296696339932683564242767402703506634496267869133753039375191322606362729206210384481831015870449222774649987191533612526342510746995276497057995915981422442442676208729059159524342073263427515052916524497619007071170608926979075319065437231032761941397280957238031325185769340711542021128028905867301118324171399441918208744205903974836429173157518549704943117893822575891788711913298768425164140915751138133828378509447513198627669317754015678179420473519425160397277472129342965520214362814652311281497521433244612364055340584390976202291455125218927717638871748190923459492207578514659509122415453030147695337824149132762720927020485623246467597163940257953789827796206577712666968131994587849452937268992955394003908638424276794014065213654117665170281518044412147952038760227693847357075002668400667790637169084108386093313551298140413680355298089706580455359835119331955982761420536402922001617857063679841365788855586417344187739162300209198777415901819193483308824468460775049862573718793202921761588549419925336650897686579553892029784439477629166324967557502939117712420345927072311624236620508323085162045783577153316340239465943856789174309701418568920536592290452662132980197174650558068639245950009874260441764827326427262332970806386281162518615318699717600683723668981441434388109794673906421138557825027225595003306032069671015015592250703029578370600341626852628995965492358658742944718655245321509946166355110678274973155397200128206134199899142573164061430139850909971103405424700821412965998212042472856128614605005774090608540866497863514217518466666837688207585749122474512621279664484588035135044094555281892359243521941546136558332903878129951636518069187013732516462793982224945721128242881667414694031201653587798403873618581885370096352623776554126838514922733718182374348210950721221607150995399327511574075915058014932684962123347441421781352558314424997403784607729064945819349447429740976604272348358612728768421124044294018886922794788459874177078786081048411348320251189799352092271385293238672231022090375084156140444917439223118456879115131568553885656619515013088464565641051135618050124777253613966860689893744223413882908764726645846326984389569636853870690403539436602790720991565150455755639519733478679331961549980944244776387054594395738282235849005995994069514084344442732228442364123469921867995671824252284601516451335863027040279583935894080328508149184170929750381291896918429850422108387550018568409261545568136549607011256206314070141955114610563700999507030939042594746180103001199749885823261633798835552284189521818310971065122170050419820572407174222017647071792434147807156126646727592388823316386836346548413281912180849675145252635143893162871391167863295543465460076302043130377253322990356877446699450710106299273754807946303637660771715149864724682427931190730374900243138290008565817928091322668959788274461310533275063450683578702930539899807463980808447093518337045851392591235547686545465534466774164613950748976669321034241766826326733815770368044837085478904337717622508170352823681922906163729180368724736921394343941733511083243216304692744936834326458408710539525485760841067399206106599540098800029618365079403663838544664577971705373198706911562783104161306176150293771304138036595464398820144083881358316160794805041302738058573579993544417277533318238061890592661136627612720327426595190505693308182436369043285107618322995133924019249571210803242757121842433005286844525228503625144412938609953057802333946498505201866966137664956400478971640292808044575415617060565210997678380287204526259052335462851467958159699862205910593885108242128462324646907960805934857680323392590133212370433663317906841258854392977658437646780431376569909522636208812964001882527986561741723515355175141423245549806078195385118591421586865083490949782422743459699574830108045477171513335805756374724656661820670296485262723438970825174810907473243743784665404009284733405328711903131994942584248254950893125902788633529687698409235682895536141972027647372819530629248887058793735100006817625362552649782018720580132697206968059187149283591749648297034774046667070843588201533365675405280897370437081213936849392521492532639108884377654784727908272125806452209535379011157919467879644679670897045038375558322724495474873645165959769947204100882759290915875661333892913880891335948166396907976325191417946365280132872127612231049144087186197142214097285449358190696694212105601656784962876725990190199009683648578352568797008240438648219221469447348825774715154912093648757475112443388182783612644441111026677394422700197856761536774237585709947364225832704601156128358974203138420503909806785493913164251840002301780228940007948098749540930182417990160679849086404641987550054185883318737959547022994849417653434015231936928236981386462732625997233895054699231939428059304551826506689344680604575187464341970853238489278994508257474241583839287678689659212548953276731976624368077717320309609096214292202679153212541007892558746516546469257266345300762670392468731642877764986349155447959244037319580140535968544702267364873681397162484209463179150749095681813103614749879353132199598366534164742530785108105398050915462403952555212339197784502689654387664656156819729857189031812415964479211767382637401121402069415056209359624645192535769607601975285535944415397275837775406025783762915513774095348670703218345482067320670310999860521888673427726666527403975544449955818255704253495615440775341855144185310578643465128075684277856545105382132911611170305726945597625820809422128584942624746187823736302381790282389570971715409436438714655568306966116901521674353372255233363639661464722582857206706701049548933534341148265694498438583715816657261019284517518440819300725833414015865688911481477421718594402551316567626912679092956867684538072533982559573309809054193205115071013979024279290476158883406447712944250098473925362347471247176973839213531363907950337605829531238659577446390322108446870362421677284620552401619283984486609331472004014529513501598248369594231094487254462853939781554556800546559422321415690065908974796344726826598444051901815940002789027076100054262227340303681695584018489641260955821971026123195010069814908079450396826120292940650106292159381426316169356278268483521479342904516119638928961678364403245210621322516062601990388596981566944763856005366293200923139491446775690388767441284865498198439158884347409265588846488912547801198764879532278967695475281885700345870839352567963289376909432830543658646416987090991040509573101937228234126589462412130237342421901545080898191724263465203422539311332736909674889850451327270391693826899168523866146289417700121894390975840856810911992838532521248744459620489294873924496196970323861188149584150319943230153657576346306229188547459875075185368544717026850701197620526805279199138135953422865882079882371200141547665049701185168516078431544563969016329698839666191252825405219193875190622183983367843439923052901822818615347374937891927002743609305344580656105287067991153403684070159438686800508001850095591300121221779180470831123900306959987156001241588922647667699898466039544114738710890432558199162941711581974774669156308422676196897348037280533571723562927929010053739077914370577243803314209095023333313144053607592169963625385246460694284408403849779776281498513629092604608796147885748142433794757595471570879962924775283895830047353446730083041008420370924524464167565129716544339142503651382717855184194281648910897291086388784019646621574729777036059749555564891368368784363266483447417542666567562834097290673825278095831183818542800231153866255511394066399524699411972436822008852755964853395400074235725427714820781815991170628085577684413902454835759232074101208106987968135682757813299198530009152562239277597531563947276613291096325184397482138910040359402634140996170345890880358650683095897912290526304682076867850234537235558989984677558038891519122113718296489491622902090892984012887570734656833256847501746522318331474555092212551913350681740248031019031896624810932576937588136025971335843191771003774489137766538333036165064203010979022739047417349953105201656718224018583634869772243331706083805621109433996778811389754304405458397991426803548249308582287671205982016875550767390099975700462011858746539529088331083928226573032367743755443413428613679278954762407458526969260283770405045577198981860442550331834905266091037014426230610011678983770914940741346626073577194370268325668126925711882480980823405533797879304552454941282254751195580954276679395088903850312298410985465066246547060205156886337939147274101996253268846960325339096283608455517098202300433785413754073293642862544365892361438671052839718648892947553642400438110047952122403246853091003578015322934045718400850478077811328726800644898534176984690132814627339469347739300501354852091965022498857225398238586582075392340291464063989388302795946370459226918018822737972859049915106490136250185906163489095380308837725133216447666602225524065788912945699519553565712630127210822321688442766693092837860543244237598734903831236891655979105437272089167458865978458652628868670277817213085927951121362789197350322588093495220944389787988492739759815910900643751722403512387298322283850503847982340365321579626945307323306483695045259691488745939857788318840124912736876806807108576629589391587367465810456043409490451570711057006886459190232514544077622485586330756619594510745513521972048927357385967132055766317405609238713852385579881762024965981257684470495326226662163987471778401156216368297695933324431120117335220963746209789375292781798167786165163808981005991963996765449546518021067088269124739438123673112143443807203289199855444070046056763235453000130260002269661707898584214103352681980172041370622932616348496008245646546814494769065431675682104838110502368372411150676031729484363893715424088014704793238530067785755766932180804319893357747378747643541741008985321548773156045249029374570130200141488657384731757917104445016678223133582287528700942351655412210399315994708282763776598465349792457813332879517461637081159049283242529968029755575774914598416923556606611154155650692933951572336019204920801951433487935367837127679125467237169726010168449991040104914921549499650299107051941559040353409370090608450146756064864434699242399064989960863268989937793082096530067534690056388926381412441286384998943376017651092312615640672550103969892530389365559468629182830943180149793076767741409662650199880538393451516206845312093492605235869109531386751864283930546900091246651673136330082477677370978901368188202473600774384493093236436459584096487382429296549466892711453216858720887923389206897291076378833982015427149487888858886515363421578006819394982399379573100214542258462341278272742497755019408041715112614120526212269622971211427827822291126359511948556982603676910330907141147982377377822439958588694384911608763905007509846052145069048812589611700780684937576769028157129574250462081895816441249693682696304035800196945930898760452406377526496666429707799219063703989695955477910762540272485652838587087681755267659573921508255064219334869273598145684462410199004599250683553899494644398558257817054642320814776947339791526573640581276861060311106788712241109350112029531173053501749056637241342504869782787172117284522069247077672626651777429418114700649486190523890493225730078977021698162025184128599341350255221716130483709990567234582213187732787979356291351612971982210734196326671430043672921379410135939873190867070347984480890848164817058639489978543901070807771017898744928228212062145294153818517296902797794655403303317183646609320952251533174457409545698821110114330195471123607156067542352255116038865592959939435631154635674526917972950998391829906951707775415207115908108420623406254987658984446970889273721213179306017322133796876076537749658724447248867523431023058811774412062424773102060492104988143857250952760946743501554696323634710621239865012311028384428639308496072256300045953248854996585022506700857923132614248608246613502648134916820568414221585916183562893512539589412524032519303191591511082939764229919315635067638916490319468380122058478931435967833027426552838025579969629345516236056471064947331915283356918354793470220196213272653423776054601662194714249059277641578731004492532482828613237479765347217744768356177925180391035045414264319860126141906023867918361832941629862519555907932568125519438115225298534246061272275390080973968277917293684756761771259870256946634107191539871377565413499983342077310032135102271226015858800165419890534519264369406901286062308423071827056859155237024125228775657199376663088708566413475734233611013016063509866630606351878341238096751892063216986060102551645680370067122724370657466464893271357509754711634897934678310336185365734094518998709705521802756498585302266809562006666826596794851426467251403847944107962820957446082161443781280648932792488678680113460410855246499248055660723144882901938699921200740255005518070293375974491127464230259024617148317864048350073127140624471888290581732712425658541067797095605768559602247476300849145829991922325362462526627401168186440976933054393400600535769915915753961207477315328820581789724129047459262635642444499322691761443103249618639358887277140707662501019604294187662019935100198878332908647522062616041720339740944024010334723389441678683356494770745530663232665731957245908843746576713196477680885781778649043735214775039416453260115942464022045550174564268244103586907268151009648742111755723648758852518720200138666897097140339108853770326428563735638064686182284907516196461204379472855126377399095974853387656614965432831572104711103473819447922352176339321512378240089796196596929222151664372946618840223193032084091718392280077891091085922103049995695908941696576862104623483497404496617526402683741482573173160064320111113649783300474971048853553120715161553875473487708348100110535249331987085999776223054695675673307917403426287257165392496103568532765425526713829431442071758393751125186585827877673143662267984744071308987078306308301019315271274668020717271426605899657606912514026934071053366824054260849688745315825316965344366706920338400611529957502223172139798617577515777498695184962242469963676663238399249867035157121859931504133936653105867148551322184595302343636760183756424450160435181637022834741565891872875947513309844155125878065898334356850596794961663617511737799501829635931122091649863645613973685282937820771952575965109790624814470188102556433768818949343487063873033042683106250107536520091490674348174878982466679600402033424222878648518194170212203715389695797672903755966326676250598328111528381651845010223659308880407104064610366291918431466971836313839792410382961512601027751118833845838005065524480738694629325133018458677016624974082354488473486498685125027649739978458013437667179638636183684002871515137909342702383624965751887329807882685480997464492779326064643392119363727490414922350897075195818280386913252817677744846776169052163331700062764324431096206396790061199248189944678464963290287984927866434622689947927736457672766240974364168610388913061812729575631336951258506537019085517547256349304221804853910802453334922019033618121050346661797171708705522926222693427780571075554948549321361149612932033510404229687816821390048412181844856519749973775481650185194860132526349454318414492973866649149733637836767801599484798853742545501071133480845135453482289882896390578228740469393353845264976847635482285626124902574184524718441596310384040665834158285325197507094038522600145598286883823443419029492529600537506834844612474048014037389938358071139613709029202103631533356971965735633255765583927424913293530389334830402511047054829522785994007051670432042071066640171406147147424875230955454807957998333146147512349469019539495705791866349227531256787941355752287108142737029081598606815530545195129594217975729352090650933264735634881982960627645659674793478468831470817081754768728019747777036793206129625503745915708725465721144171228842346091641055996230742095431910760437503441289141064370184164761470644692785792196384479922727759459501244889369735055376390656758944324589482882917594423087614473769823139426052222475073084693825287207141703464187786337878836092692148729186261867149547549718693077337350669134849379174369118363661273629424472275996264579168617930993223161720926967910945603486646866827097081796506855036397507625791724874402587183162724112555681736752838765807563998441746335739469370376495255517289773721245432146108104052593887998568977901342774392788894990359646217796640685768970053224076156003207178368207208978071483446368664683441829872429503219825204582518786507813419688169765189463481067798774119305708347895602168936863070134396642960281601547457965770643525607415129322404139834302659586610236024269287812257346597644075877776124238751909953934652991007130025410339858020550513465317036149112096312164509264699065481670702490039056801911709204655486516837711815788380950302773527240405092304203502794349697688726832417699139005093376534163273591499714431686558050692674571364771766819460874729313866627850353845924364286762298036218102627441061391676021197209938521927606025919174783777980649743976521641535524916597968698903778131302837695323246795065097021334316240265337276024718704537270340000675998698050497293657325732737641550958611869265938545817730478398678941613984197938812514059247629707675533792570484016892595854914492633447065625824989927400945914323213156643837809081712560366476999118350322669800390145284710124963519701911217093927828875093921238395849924091973819359521371494632292279438211515298641948346004923794421835036033102181725329212560172852248420091769412640899888495578417531887644136188326248800936255080449193059930615346030426657026735050097771812763057801064580732583722435882701277124163971524788993076915118996981565775980210049228171736976570491295187560480079155832191631286425073324971159897669174456894390665984948449050198466751412179125018501992482777993633770525869996114767718858703429597431281668649821666434563326879317237118505901927300938569437858276769064835364622034285751451487233462288876266303639078538693834544093028474520479437822957549540516584364540873562244384169663264290033694336308492492306556208130262431104074942523996108495228859023580702217396534196703024424257710095224633674090625502678273739789151149152995665340855987457947401363750919877582316768934028224326781280366308610515924514360407078350780048685936997179087498302471320022485981379352203912975125275618544012534788547785913977202118340275453249114945078597697603792782876972887095064227878689764820222859203738756799432232896777145140275908530661736288583188890843291776691168385738255223803858972158386400311294670117616181581746538144450527020617192877267224884079630651894428031943900138084919828898859078986470970656228813086804372982987830883655546223129410522578292010850474958299108258612249774536932744764086545921557967542212661418159597426484688406125865289217029730876703486608575099223202128590394531896571117193103838929487994661215936408978908273384059022487306217741156855825917072144027386529248821551645040134229138017024600128221309940513567922112904772415033035416868399677993040886747454247659043782975041206023735850947733516251936473362045545375251896982677241280597994213187002860147224629803363407763472136702393065290944110812588273514545765028767197701906828192347927057261246900824349225030551464013059045384004383471571402301206472421236271034154164979653512250183910029959289212863637191109328204230799463365030363389098209788717772234222567556229939944787757825266161954869017571634109475954025491830539431083973938717315455106713358809924288815978984269814725732219142240867101625439686767155157898152330592141959795397193846609188756877732141533751782127981169080144144612682520132722373685048546516259752594455536797799973482732555340483106418640226155917446727529159248191205225923066020560661375647078219646852517491629139285429407013991078391520657085636580667028301235866514744814913267418588292165637355199444637485629745159566565268516648146645757810223270156347853790802351360228445261379374665664672163814040631065041415269630732585783756663611662766621763459440362777880519634108376461016257687266468645316956798004566411778818200626747337563614908380302702386708410672081273021533217925822632930097060522418826751118748483689572559871902215173679212712315929741745236632634276241613827215665901770082180529156933981059168206877236169215805629644131725731426197416096012126048631162885126538555066624137023000004361374347807360605166429275421277199464872401845795108992058061895408564630230818299677528613009421698367879295423389173865719316340289020518035095874681554036019828834037978711588714367189385392820591305118387226341805816486399600258277096457922988731473940100333867958270365173437614654575741746961746478170660352510326050886732794353379301315413539477461557271863265389978435981054021500482326306726804654301898932607898309540939877771076552237915652071458642280536874042244058858495184366384992977420838188651930233197475524885398693018702133438271195640703770783857704435914083364093567998873685166619852708557071167442108284290157774946184587832499490275621413458540900806298585173900439333481133453597213705742501449281887654089129585897310809140634755754559465309754581541697092750969027344600661324959836879580520827669935669940345297976865055604486128615570149902962933094139124899333610961841671529000424126578222007123185285608627156711665004332227761115251617375159359558496800962336403367822138437704658644644206209505837481896274933079363747623417923508906096090407917392770083251050085756570003581576484661688578963029670697851345941023706034556526991724131508164557815414457994584953545131888132319266774855896036039089061139954451105791257936238208180992747215119576173237038733077658846419211788009471054325584844125989200509152387461509573590635096125608493250835860035017473107756629568881972129439418131890871806865787272467785561165021738612858196138654741690565320345600416836529939939802310466210212623754872162615136543609219084659247429543756723814198538468158287497443788926251673245469254333955032212306664303548293645331936548771090700155841072154239316850711815643175486409379411627756774182315298114593217528525445286295105140165245595641610666239596353239313251035102218790517033753274692625891833773784185778829852681758555722623885308686364807963390659535283625109472771565514441349257388329581630076530356948558178253143670896277117151754095268137147775740702674967858738746686435036469342133834760025082716758830003106390621638706516747161718698992724367768527765415409604665214343011248210604251378490333414124475550191134957001460321811370191193202491921924728725300569459474561653044909138337102849634730748467374455356675180209948053284375743185123677798965263876169949743876417061033862089700880827613728415167483170176263361410290675643777478523782457588003637699092357652432356174092304122982122884457210178514437835118893395624334987342258631352833965419396911352045688493568758268304882068627654370074224136096859162303253178364240884294057721891852781772434200001882469294110405016619943330559120487616949735755090369695949807013675006424799142684287934487453901234854216099705953910672095852382924074371218205066774182196438546044074794566677038573929163642268682127868714009029728406486653721885379659622417625855953980124271741851855121396498259191960829832221001188646520045597432875420447743905158636975368712811866276052575641078348425428563282133980454409404289808365755546043604407677831801153171697755518299581709862995056026356880211350506586404504343304579269495068290645220424231899800675887201779576461200153257425470632884410550953785617568903153931545310584035499470648490404650734787125895130367014613436958864426052755125443304177887902978859294970928255099658943668222361254232045949987214236290343009687152150727195412036331443360466936052535609982288432851481016365378327369156778051734464576325166748115545282245607180029269133269553385677943899933151245415420984248153040129972936993599756560850518205510148835922989407926384904199132528925194250682255971754562146526607701695692355593098615078506146120455020861341071513847475408631445900691220430168018479117602666336292031269426847449723671095005978948151708676851267201522394978254063619617341422251867981686092192604019999248396415877766114527803834940784716149879210759210234469848268812934943344257080584101160231366505693871054774637954273968131937715117172198895486913303088951693178890026721653903352241249690388483920147259899560565826824126821387295305551696395557172665403249657778497097639400854624795592561768346307256012611068118718213586922886829258932725413202787641354768953769982140617205958063011730909531388520415617329689235864562016140995318226693832199130866889036085630229681658403896478459902061961300313099435328768919770535629935253944854119896814480320949323626244809832822348766951784400907543534797772986321615813181523443614773530563874427121844996996192258311465124759439687824361768856981754755477427607773607341513837603221433579257240028311920567492782152702928786766776249071218682297808711726065359891441938137535369838447756738547950269003801558442931864912150638515269640183498172103739165148775396549115489628332190942393531895099957068089553106695151409320817475995518335950297208185621915757135645987000740941855000815613795003628038311835202906677350726552122353645050039278441917334670376691049229863651580128155856986887460639505104629219222603998264347890433033158281409600390015261848262367968128908049530242493234092654937418824145997882134497397211626232417254495224901431123074056925627227193410419514254371383462833456375998691787970774013228762336344975643553314123760083585422125292180573902304414412993030676778447267685992220814198891758180966350433883332377588565155574072680099790416290427566266206109013291874887922070528794685336193854164195019250986092044100977671553680482848570436769533596251260565817350942555999943310285365667681420095063046061718778772992513920552197961235353267831719411002291278940829464735590647140485331613051772601870527605207405128696845331824042070068391514098609340829693109725109670509983975494228760007585240212511654409921063260955501060273622157166433298081058471539845606270333971764552340490860792773131620982546449034523006628208913535259182502934027095754121723705843296209490407305341902212816367041322686722804952644149024523575447248636039982118670882508937026691960479563301480809959905625801297809886705022428900148223538963883376622339520355708464945726301057992469094178249775592776904155897022782520204714248782693445095447606379418539677411632292014785509030747895191895413119581820530469664004233423961245051372638037292984147008480951652543686686866268220442109843694218950234536954069252595885718134700219299049585816967602240718204346620307565029343387934006158803971346502003041078601065349248120032099674774026714691687671883242526674646431943611199650885031980960978912214142731536071125838033664777675667271109355949562634995282707361375604739967651607698334850648677092468122400169949154116570287414009467251845303764076635102637129970783669336563985714781839649490132754949803438009989545703458849519244921887208865364925117182457187789166386731225118126590621075741420857770254223592174528192672702221448084827383943241421271398827533380060631430453756182361821269669965106740100185020409212436901360993007030446786649855441197776399921087827591099442560921197649081641566260927727377392513556285854204908683427284531044579627881830585252811423436851860183076649958309029574051742624386465601131963926211216839283185932113228547941313084457674179381278784138960408624141415931245577539913832755902253337359652954206522824947491207548364758419668656976519782905999237798004704305160224722194809040341613835851951158019003010759158663816889980996593717730708156754517817082013525353407402220248665438640667155046535956581139921328665450239064518361081740186066230817349527042366220097430246011021299726010582724511810540783212501513215371146974113384903806805207026021309990874474357264401808492673199333720355565585879596069448708189876877408477877212629661269507493962434539103798971690155518092970606446673765929708419248543640304339503457464043030716814520322709176798652178973951147644108590045324510865306894312813180097854914741145695039244170326950844164555157270392067148835588218048527261792076990607808721521601577513181616490562261686614839727340901391734160443677218959539472560808397698909497618256422233900862222784326892094449498159500234971131036348750546937160919366451308533996737016554200629145380113556304427572077301330806165243434850215100929114942198589516859317258815900586959428963339271753501948821132425231731658405655014056283712026067758184619732106470726556465974859540407105511381131126289083468113879195484329319043928871953192790209742407423671712640517920574861619354565829633133981647702305816110020744085267812965805951009269320044370379915829410470892271135062875136997832848328063963957260939801691991876902453150794545893133343857786094869456808592803027390368131958113288274207810963765594422326078085702918602513666909694482403621101537373975407548834010927078888148628279214807305287768736346056764050748910926091857874321371760650070974147668699755727584657512550693495453988453786664373155392256509687638569519417148564120334999624551104483520683362845401308357703420890643549734557300648098946695501266802269767471977930932007944741816606804101262854518496209962894543109638748386134228294077692158524716867336837205217329127377961502230425718148828791122624634436550558056762596165736962413514840922756467471003060205845618392209719875697177373761401608543294723713540015021687891188583330338811764397159154733774433072769990913451321832605381617734962351393303134733823888519319930890999801511669113496521027368187891916886864190742620459816744522603610057646338781609517818995244828050852783486627354381113001782685868120478113401992984789469142988156921116993507054843460618272510400958254920721834214614621033829234567338365910395498354868635974365094123300048683569075408995760065309161137130105652883799646629426602806560620242458315720996188106084788203056874621601769314695450304998560176965827552194955278914415659054382865671672029138817652447063822031693771598321869702371760384967608982008980304294458202117370564912612791757651060568175752915235017451003864076486960036499782813838770163701206017138629942176905887407980820767335840934839143912072003990305484371461479900752619558111164301404170362707295419972675656655856490006914020516504806096790216320095507801951918371633723010088456743368576923762227724500500722998528988239921809686267675565369322271152108879894714438439509532938484737462880192252577530022112360687666373985081665670973191394957995875590671342855452438015489457808047562340209522825656343344338854998623844952002024756713230858056010714278761857771624455646282023727770292244268394673635120616765854091053068895519694976511411555005626787479948590493644441246179641238528794508696510247350324742062256706629889175345685143251518848955194328925783913428503756180335904531167869258161366250867124491560659753675963655532880826725158724679224853866336295725454982979973847332658956161669364853523916953674949060251494821667623979212061218480083494171649821561442682222520530875008235676790688189399505011961671076589924359349943338085487214735564838164051076472429356301249000380135289740494346108998682752465216654784720540742052734909659964856861541784432964842934348834492685425904777027496306048028979879244510319393853426680095882028870879811952751219594841005019066666166103146404993832381511332643155565777047296910045795077004424951730553065078203523374885847443572264175687344854325232002852663428023345495569177104145512947681813012644758209825101478568174771854887749951600665029378296888260462480012813300939513327623495519155276770948530806977922481341172596976468732651067039908404309096662235115151738483680783912272055992978579526365464710472505407015867192537508607988517974314668201035460317955601786566092142232551652504115162223594352962005766338187010344895078888685803994366815256483184084922278554705450425144740606666462483609484745886189444863978215422320094711784842418543305709816949482644638300412749493601357896605599211814191620169601962420386731820039878002903558744313441232940097525293325079397617338023709733665025848580642824854035919181986715997785803086887265903297548916702305858069771062352206480231981864078318346792848151479054394136882622404917348411840595330366653803784210919530604295883918642966667853892162107414723671140501437439462800728010319387896537251805247862808998072211975890416009194139210871279491182435636568101720059424229959920952087864754829603159012584096821052451328372306971825978959739615656821564557817950796698930382123481476289616833456576946970571695537204199693556722459788252943773635208336162666430500208364342837621801852967501423649093570978723809833814801082448946719612216505902504418642190793617574766924802169508734491636179766991449968615422072572188836829591157331329863173512615814667942242300078399679197425229109988960927055291816773968462807409900740340539810590441084736196613040041651555634441445003471032236130603457945087828722393191738523148899351673597894039851108324568999406102315961539417957620040276627016022260230446813537915522488083213622483477174712857346858280462651227375266695530926833736491377434082277178756775247083570871579614930504289163583568445200299680198025628490438654473200005837923017580637333642965099493485341317582465372750616652381066638994201252273801557511934151386591993406902638957936531970476039736591679793075615525798678876031562176647115032605441611369341434032234584759704892120082387037665638906438966567772645622481664240880136683616498152312511462721988543749324582758159728120273229692138102253046711453113019288358481337560817595484610591612866346122023835478679941428095375724882429480793505785810088033213041594526306834701216502021051538403457903422517497972642140337531160155255956843905385403417242016111281081824762469887845188330222867828037041086552922976195863558623920182222838150426837534235133121804825404381880376007727156219471858551427601382306859809457256201173114488442768759641776398928659793244736847545431303816916735026393560091180078864629519474162418295688630429973856256657102331969660813820595135335122470626004073334038483143538076328899099573305457616288013026792574900108179609588808709067210653675913582282023874387984668042206824179182702748024006881333815519412303224427370495775883974755908869090570693073117690924060888832630754625389748097469817194772095784974149517533284950187067771281222949119129384171676472472043074518931720759839924046113815089679388161467254502550271225675922523049840410146819280206765800549927724947270397568729183337487690349819078367162553863367928078575171240770383398967097505103011925814149299539776195256755346912808406633978885653905188512896660254154793849086026735344239408846562653247767716798323420603424165833787501086439732576929480505857321137129615503611489943672587428551339928709348603413113149150710049196908900030742287594349040646748666680872690313944487557354781826760098244534063207664059718241406582237024030542557664916087605410897154901091852130168255183944865357668633626255870596748489287245070291160207093751044577139746403506742615219936143840709698413958888884501014359818322316164457234000120629823289648234933945326876023564415138876200347532361936185470573985030338847567854123714543315667261727991124921098347682402191708075755905905531577661378378131436274853864605460362865876800973708659289745182503501004231728695114093462516084575448822184991406597678644683405806726296247397498529491527882988777709040947926006808056961074321668017213095704663027557872561653346179553042738304267540343311138057500680795490432412924207831367125448590316493208182610612553197085462909132770202928535803647282397840731311222358544582334977759137030407587549845748709552970932370784706954379395183206543166763449360430453297649476291460779533877751595990387635429654035269103624023874270379732877394935205037198670465071290646183824591078527387460569873041158610249345654676383633821214290302169478202541824188666425665556697427373582615063634665611298093109727099981004150253912677080082870843128354585715999326971002366356562633132295377406968452919298480389826613180347317349855502373604189344343655756863454984320292126745347599733685465104719695512178981127465846971991019581593261958010467370731868832734880345054951355905465816717080806641746750956321841979509737660752492980046177082612321205208636013920411367776536298155945547364278863325106432968853401690077008876463489362614920148433816274693719178279926357779754562311570367961574218764320171257994694432885288523675993154609010938601370771500529740259160783934780328643744016766266388781225526634442746792935034140096299329374009576596735366673860007422858202264674185094333411079974767790845509134497339482406393816899804144015782286826501916236200756444638332026551420880016097414538038187025868017629591836453632379534563026755718373393828149479018114755815601823811798200709751113006332923851407647929653554233490488245107390932517413934276625024044679106358091566252652748293628705385300414601705655902919234324717830910459337982180905384984404865021998625804018935212993303830558320888293412334719793869646298580814313299799325028728995719835211630444874997464228359135130872283832067227548875336335747750014289764876337865258982602207485704774074085357441846270195412502527267921632006509476003079288794365965438666448727346808581629985039488546482761884188825973862506643244009694287444058525246569095369756376824979112691179828287310817340638546512835340476843977436147824557305492033371347949079354352384616440482038900037475964700414811619640370921822366759662026813401748139652378843764556630066607672615710591162676483185092797846192189829119928888717935502464697623059663733748331937343256945384427311406778741514847896777754949958063233205057559952372837019965745783407180414337653842160698736728060015217327707588973921901021327939374756176657146904331628082401077187257406039914506963115425133594852083302079083204648053157756174037958233036664487713090111583781062033801409392120923884861034583803261680748761114730722807184789914429358968304071686669112053197499565012279890612891645228942618935791692202892891271036744528772582255979355776174207962165654946387901355599800206227171309194809201123108928970632765705573418424499322306017453153850324141484150509123672040125747120536304530016712888862432122417753398037453692881163838444839425852249298232015120439471329334646639161729051869932549663806688867531812225758046560809204245316106467706955569792995868280484703851165650092070706842150313888484273102158078815623334320112876057345013438992103301184422840285677997339879215058398486947576050888677629003984246156063151507601384321186667784011704811227830077954506614483903795640019087174049541060265168270765499344066377855344378868519663030483004177648801265603946634303048490048672621568048466361419619960399720049161878968162111537735748676133864345416708177580521003314019834813806387826620401647140946431421749907063169077533970964277844352830242475007724132547966820957947844973010640836417124780845170051921927603976708888472326927711330364627225936656459973080416314121891260324186320405611693007496315799491537510797683470951406941489364646734654822920069341431823073604469728568491413746019746199294466784613649301539592401216981821324887048203025937091163895989187997654221712518863978074735041088009065365373924588578930704197442483177012018402655963063028956495251294755046644560440362449465690604444212168957633545954401750610975751711793500184569365367203305804440219783856563108009678541120395296200819992208232697501770854420906816075564849704550364432202241000971071908315917436099203407201460017212231859451506046971585775620481240018622321160971625254373103598317425558953518468841044834955155003762335321259726800520502069456400441299104796061815980587238017417620795042918490866762292993704151975203897615497048993634089332692480623126635631400204566377882903391139299769827491410678629949608313111805530633452004396771992005605103812607723484847961444562983249694213495849309424183180177766376596137603206906421592842321814028231230487113940127932105196627582438404207207177892528189161953104021386030387993663503694887828789295838857691974690598280167116446155704325535105882967870161181368332827291353487158225362806117871272759777894536618535502980385277702643522121452762234059169976714955575714412919820484020631123309073077188670131587851532279183122908658013617541470289691287517178312288233803750883671364601208767458554075265263384734026103466363875104242277093875741360095250570686485227613467229554935332249327860158841025610139705215315996122528361038094481946943690128653526506973857330823440691179571556258640294071062487389611288418272365728716940444828660674787737000573859997063713394415754345433986228515059965673806757519817861348804825414929599653906109392065074760283243808989143206493774634189830784434453890794734451376109728038496903517771771675511410272912207766180506116873691493799248322965788203923844790587987960067370934844434416635021533174296478394820785338952370407663106278729803395234937967199875054899441961242250945923042127789853522252339099371215524207410063651598779789184383895617441414930080064806846088659410059719657328049986301103740899846142509562784021877127428071178950630408453258217642996844811912940153844541955264831973446884099978941859172399516164085890730097609820577343758574303210819191284445112248014713177887989678147471692895175863697397215251061460246493961952491795581907862289565861481736898099947465434633683981161545099379960317899437293840980358338121200262628084084982675193085186111874213413554730635931859493645993754859352197571382584542053208965614680429650435192516303700748581557213542444781334102146149164509759073624791808457726221053466659264489788066300105538303744539151585042617033982334719260709003835413002101165203025794423390498731552646570514933366774826152382093018270782962026921860594869468719171006501811693775409485916730330666974000553065843685144945664505233087815969709052319183351424364839330597329454001579867814830882542674466449573043037945987717619568482182973599681471337874489817910971360234929215719668609539239994933439972962485146473436491027757297425418074766508738394450735005608581899925036831887690286125099388798747225932646824814297620421775667662204737890370788240475939870117909969290145545638613438730823416444476676362552571552323255735750239646482561940289462861831707548963230972517164298122091688141191191527895339666779267142502320449041985502742128248168632593900038056400835435743547691867620224148419314015760594517750488918039200613161690528443923782264086419596756458040588513994949206568583992497606546850639776418489168316152004867915004595837418592658015762336903314446585402045845264528113517185945027140153073009494646055093049035146363340985794572713638218374561069504652325779593485594786990238952209602046527138406066471758359588885557359138719114948459270553626356413714948480328078231415198997130766548656064797813665579079092153214185323272507686894213976793038191346862495004125827297968651390167009427301850817007011121840394434344168100827116973864780285793729300285461266253795708049913176060354043441947725016662409480782223623793635805539768577216965895625383251872915999004716113615534360363780187892615398594424581038251433961011631209641091058332795576241648674084327767319173642717371637960148236306542733462499383201623994860241255869597247450957293006398352892435774651541331731821348965048318370421526569300837644436607694552805555598795941458098513691199974578279247318321073069815084904432265711469257742173118448580449419947241366430509764764144300033995412086866945041438903058547252572143816664115660341032285311151461255256607577759278885693009805004267124022739746311910943195059288668926411264353957231079992476760030301223563444394184658428491281337942148246445121671906486062320198171275364849099475008309493054737381092613889065240604222276681425872901150548159600845900553109061923743048340696777160565980444597578785432916490664864564703677700831462834302647581758909169219049366233228358580869726464175534060240743192553713122916813276368525787298417186941166117023806316224734197664496916199473447561631075184529740523024419124693152392089707435973329528592355109981601771591152023272235872897902655031685827260744816128181927327472726082969385115854698041488161344366636179902135983463105200387041689679785984995223822659826747691666552969523241164029802977223939238313180886885772079285984078041448778418197959300306702132977228900807614415285285330864711409927369280279959780590575075479531997591004273132888497957413102118968069798645623216844711529167672189830579746143042392079325719405369455249698032178395894264081961163675839018183253622060516270215454156381570130246952907915097167191427785127377516649186307204172667266858487912019257765720612864167821877779155882065152507904514555124403385779749424128899041701010202607051308291552001010754900552777301810230679798107636504342666647483287430897066788742540372765793045012821874451863651409474603051481154335135317348885545687246887139988984484066896014279882138293921874310642730671942802767515985722714656087189382101405355911182888879599475262378926186583862340447496490783483489039194463015941665387692651336200202225531797360714028426315753000873827362268753905275996351045416586153610204474160884951321614558930778515213040323398960177295189876749388738239370409423919668768643791688020015657173479286669721247563893893999524400520362565579774745660221651145615593753718531337406577758563213005186813423771736878887940631221597105581981838658048431967771398541141590469960620382494926391007089045319731237908492037453542971307630323711536916590930720159978525202945335786028787847056896112618633893929421214998411471977891336387379434774100419018862071306940815619206143250234326730556447962114111418256451800200768864777080633197725149333661295206242497137335982105925452461640530805090740472763591995682137653460388304203939427585068145124336178861279581397493732044812345719410808559253585843392124813697105534862410911596362227849200441779468363173711355493418393754140703240843905083503632201635890601272006238867417140206288096899607448282021334484871118235032693775827419295709715654679267040066357422110650851676250289173676439216572130260989978436983450816668557787039546919001847828612432071331738376851455133769616962125103085174665522584380292149268244925876381565319676209524469544061672600957373351627685131006231348900644444522452344384415045830276263251865491065738133150751455816303228401095483745519527251296578994142743230126291886056236244489288045588973090864646163504540678443516382173728889368539928108890753653823495887061741716453260867606241379835181042394438764651585010993479122867710879917334827352222261891485279559268383843381695376018282111891465723798411384243395324413497226974282688326521853571399098316325398588644265185445628393604391560052196052450257295778344049102529006671327453101627866862401803965469137654344511851693453996978434375950249148144559880739855473818481997524241523854680327421842751729743045602869428143583183349861370693441310447997012516240475342542213660393924628578584433756693182978314854409188679470078669802363206237806172119828338186088255010249196020420733531493229157500397260255034153811461682035819262712329503063411957507089599614385609607509500261274244047271897647238508089707930843259099687931737859132100727097474055577305645054546275307206908185703371876017548224639635239399491101323290764763784898705284265778096911502485959108512258231800736824129292401020556493955756952384209237759528983976609702150820979944822200553329278328560468881526932417924660457647537009751327421599570809683776639380924702095397101175547020957807742747372309493110049446807940022289824276954119552574859363797811930338679589052758486206760553214641102097694481934425242921414030372519986851150970856504657108550557977464609635801819864408560105252692195654060573156882254613069495806975694806333836138612658568619647230174515702872487696286976075437222595532599905524591722161416610951394877437236275256537821843360342048022040614576758398078168998729580182476306445970538476120728297411697964535451601514690276971919969912575604573733140393959239631930806230694179798295993588854772893292773466683409299223757572324518116155557005981915564824567188977480710738726071696035287642158479947636254453746395256905163518764828127452286476445459526358614083279760135595519872056220980571394044619382362364607909734377759536943625808844602249124390358866569548661550983253895959094420063155787372212314395678297831644113430125512662186610898338254876366016388186530146926677068692019058481809754390143600026648415756712284009616797774458939176938984263825925883483009090702176821963559937507392215224725946460452978025890119685317026001535214165594531214370402861143928550947436257269273867406961761479266325557476643756644811910104964220677631783840263918741492719497384267598292829282580789715409887232089653393572801632262910759196970718086125575331873213764542258029730150572896836401707849464931013633163901939461751979604089928917094217969326934898318069941628192819343060905432788168979201315036314238883009632941496524981850620984069220606030125433918024754583580835867195996309967548747905499176295346634782925814564237982425641580809847625340762378980581989361254856186183566076868952098444720600636752336884687941568106927706443382105446975470569154650500715010625726399330330841340262056142351242991749172635941223193509882072081828087943586007713098929392132122854298995993824001029593007238220079288471498174533525156551516266403699635897713067981415919900833787880570796681735305058385970510679318261035874444784613718866683953434011007922135872016643410138952713106094239705642999081862367696332281547679571066187281400528636075001574140103799128207436221108377020586261067814855623164650239461571611268290767612865424327623020403366808326154602985470873492620605438435689074518355282985676132799611814135526273628572870953076195952463192080346200788697025965649482228901188605689402969432450407165247119716660472321631644292189139904231735470558341621400818553131911071811130314920912817707752832306567055494633589220264058241979572319401687989450356671392734475793799444931911260864708800338221802473042784836695053320718779479318668723069066383394202593308414100780948569472663041131908227311385865584526430454572761128723794917952689034399430933588527036462131039710971860978039469163804303046987253723145302285815560918613079750846340758988783090921110871530586252746237754389125992607248477049274834276517549823785745646308254418376083910277406410652445134930295561973588857544441605184056592392166456076677624388774898715816766852239277078536996711645093490373708253310748820358349694693342328648642794538595967063407552399253636974361685529267524489353053667227731194232431965934495767044360883305197522047345262725320485999988196988273545270074738403355369892464764360392813655480010601860093740630104546760436524913306672639873562447577628421072950789414371293742358231076583535056404229173838946595165270947144969998479383870729165017703585268588658832937568671383730193234685057087363789810057121161106902948923566446472319164652376534976340010770575082563846845480879680407051180907788509724330353176391863767949176019785444752991816094347898769627904601234591278553690663251958568016633888830120971118915495449452100036016548213796551686035425479463952686886916615866194991092423633162640833796990055342441517226408413649772064571320536176695091930481504645057082679695885669580659047345291944829597513831077609844581532874570639957854556576122026542957872607779915875647666251177754247524977962882508173357991444805129287455808864551401573357656991309459027182749934646323392500394413017729365781545910559220588706859385490462023528940297410674527462192965360914581281664287911279125398749044857063404981762030364643831770958549174678939476721708889186028741845631380105570504759415481105876746558114604938077012165722384984271466172105353589132502757007755585012115049688297902553839017110398894913205956608506290207528083606491663825356752586415269191173823951263532982506364772552078435530504477058379853137326054433727045158336397464245230109604882720806640700960835092328505265706102496949191530386268337080984851062529570907382863410237117154807540144558145649803626136572132973339584940586900662335805383778015671446800533788884996604189461919308823509679754667752081784749240781986543764216750586440590414384035907324348214441547346453209439680924875921850115527134851926952479362945787053870104272863619725981294282602073075773960366295958463279890546101683542792399027950548010211332689878481911095005069132324713998155295465188675485669535589432403543161190978696927271319097591195076599965636063203708285153941832725198817574876697965656627663652003650729579552922732590395006706986493579017667468809559101155837662756901679678789266074438973664322829079207849532819246456657684095831969517075685820777201561039858871096206456874609975138958035239622380243782188582713055595397343718404882437213037535887579547705068872411135677535958205825474137294062664375235819374554176284304383222434210917147071014667223895807037938701505700919059975087461626395638640924854617617249213502340966426778617446743446606493123043370310395648624472872712762612705481030981037398250714103036589950874385275539393207357852662919615275421109338816566840573086034802272990873469876618980096333845935355791383575648808147076776092429407157881084263048588866666324995613243219269446601717793179113732787051935670615119292360174062785427469656282355127138849748671947635339842684491870370970941771638422807679521523519164468806898856763694577937518900994851025721983888111028731205762278085873321720639430465361474170817896328104741259536227262416720890972719430334882384829860678673601402952533678384235992441646607415391919792928049049515405720603959093049146095840453117893425448313777535369780285005950374037539407208290399212702516876413435036364429009321364500010105030001435483393399794581518791703247556973714302360472872191916694961419923682753198510747973980969602992912701766714071149770248757312294378303258944620831745205472568180128703749789164300486288635627614363821979426442894587908649180663470556545424527212830715803672258715706567539849280506773848919478528337502240531365537008268829701972926712969650223128482231826949963059074562227826272530990774983582117403439945564720176528383337888626011038990452570340748708504594343679162962716578705720106370885349752663269233926120482756160016917532401317072842848604562060528783637452723359728545526039299673291916767170134325837142659886696001601272241073133641521476228850175657982467156573068427763452703443367141943451658177303706183679412669102563786276525671703932343745129099119262909373424658536348770956419014610589944645777529660804963732722139504954845922572582257277580090811429395218831891327222167162623752437606979650839790728473128356436643260799622066279623654881565182652261741359639442744248479525826553400070312078727376954094805837393991864938911396326444770655996637966780759385478071607476956538443899712013549206309483075981354839110837049213132128897937494743841632094490563461756827761871530809744828784012081438573416014195312808474335892017236497219967512281130130944696098084649937009337959135300543857196479014221629870177287636504118684280666420378691663253920439995611903120618949683602548584204045414825199492298260273664530204371224217876009694913210328940412409642679424466027444943584693830611159765572211049096778912551543335167790740983653337628704966728896923527265594662669439847991224883184898918557282980604232737462841014155790799767924215590422816028432710827787859522817760029018872171369274840865322039506056035152079927474253839235864665692589312424587015362082085550597792113588070080840583812537466362274894565013200583431710835146381611813258202368767029145645375331367115415022583483502353564330169096468434231887120737137355250150611569074930749159469936838032923733448733787459787750515198655557866567335913760453459989810965858471637386031251951122404834285624509493562637822585104609095496053953537164655724584890557944196154810608901361504015740680599101978800384122499491371767760967539381829107881975670632790789019400682631019904500737776202809103528405781781944783441263584288150875862389564178650387722570532160926464020465227666369035216531624079521477809698727635211627444975701725760630200506047602379262622035948058623481040800702635978186525841827737585902464624929829431306926415286566055267092312922692191014333752084933938707226481058771211504324747240671763552680446073613602021752011180716245855091665260377797169963169568137362220483551664617697157809913786121905466017032437232438380744407032602034763415643775456847285199316823379934371909862136358592763732844094416936486002786892465604120106667337592704365878923304861163358023753137023500988231657624782134782550605443393011877692964653588230364225034435635923070650378268540916582758306701530292961069144706521705568174268043128838470678074087488921655671899833751557415894382984978384853124116638723604171951215441127380591587883537994147564946021518794971365858002629134405847326887660662008954704338406121012133061908857244578060739757436439710675999325253850260676745275167436379330663270504800458400746615742232962895871313521149810834732273658759844738083340799500124249617143964364852806778873491786512146059648934770231153095732729011047782501453966708945683919469698849568930848247546861350683546890174037557717957298896638449269823212758854847045510370190293892086539946701998583959710753453985814581029420417313069963949882010743277320388569563110936970771165991409587698760783416900112682636848487179418053250377510489396051987297923116202467269868931480475353829376167358107322350017779425443604004372488500407680975187286318793245557220046607565121885852890515847565807376640464155727061357692339139989083596613918701665097826045902241972888853999989480255397655000460855022961761097352105508263588492720465437852109838052230266198115682818408118091807167938527635696278011822291512390192763562689620077503854436991843676415628094797063082652126606591078241210016434557482338393039378493465562474384923880704933648853720344870085335185433483164219759678443917054922314482542465546259939546582943706277028552094126805977180671230423546256799869297304167773354327732084944157044008134595517318350449440957522127903814222848634230650819827792166155760777569785775504934677883052176175048347245142366734325906417452890085010982078067160901759508505869402398305524360086348695437513159220828238604522931303653323611448552137378237965968289183969852269521506974680160167954825636805212495068804410050062653426188472505125873415186564759259396800758913056607181796757628421687098277296216218253396952288840400925379070304141745079464039647415478642685108333295430360961478233680672407423290138245763236693118090191152299192054317600838860251206373975266005776814914104322532703758100023991369746984079377315959992008642456163780311460784157792455982915917636831025341822805047742950956291153002818913228086370684856535746847969621342287075454476910944690125121672346022777476613982007069347616573844250399478521428220589703034335504161952134650480979281267814950609856712802998396677085047111506714854556508591096037826563092729949730161253356117220705114144523855350300670518639414541398464916418974880750067239107135123521708779881569089769565965632883112704054711075230754444453724739024254008791860235511939604534563091150093024816652129028028999937483839830381728676140324116548987008245550951364069354761713115205090702745552692279688808849380747928379049630238915664529015984542350180190002525301077721670425732138279189545092847180947113643714945092657947251830393756583812472853151116258834963564250732554659364886573016905847248153779092341483970837988969638678755641234605775854199956039262050041653425003669710318178723238706834198595154541315885883608655910180406923796446891940638631859163767331262394695055317065225872228320276096292943946631854301637139863830890035285804310419070908349128812485105527278510068353522127712118013215021159931414550004971089570598602500287251038901483274373948005534033007601897386328688451002698764512217920445730024320352663371465230753398018296546041641591172501631480003256193448169528995427070401317081207438540857426567413320434647874642513608546094860566107833329439919430208878981563360601920699430728901035789554744972290414363009651053568330779307040686719088069125997494776272646720294665466342826475656043832439889306921664228174762881525924316245274946115114335933617297782908661678154337879492646550055418573072912486926935550160457525636512078823355290025238025198702104133768276244047105703742361018556546866949441452456531533618134594005250580992869199362592406148840832024665499909136219544464542618733852115446824988206254816294077761906101780109960661997097118088516699649293831480273915387117895722299894023180476107874932926020321280872757500304941803627739406711367879463484961684511844891663473692751980734391119293532899861976206263002724917104086685885911164086551616851581355821998067477482830083798363158956697166645914746493716027947947317991258985812280798292658546152195625126409324903477043594701339685304694675716566060745347261421624680823617326346540951630192263662345445635359195176224380003950093598974739165430879791466625088355355736691157272108996223087689751391876717242281066328886712025029020908018322671575428068696739713646049926747636651567512972309556538982053337201718282895781193783872172659220237664651347923534770528694069172844457691474553017634576232378980268345530753754185318709361287456886109265304981676084306644088638282035124282066582939786494037392866178194948813813520914916876318349894076802964196794547816641623966286559214605122646891593100198783798244063388226660462522666444580148558590397035656416176846734101541066539416657023428039912200288003103233303519099963165701920336787972846382183744145849703651103685036351137279279184894273002897871431735015484305900001571050947993065721024001127450150879017932333237785195479287148334864773874133263013925149816634322620359787823818688605610891551214669271765557708457129687616705542457874272654704287196791233786443847355599044909722437379002460313591345799206894766583815055779579304435286560265407605636411550745868626603603781467534635828576878035348339421968988885282359834570589516040376871888402749240630969649647262189532078516518151096605564582191379621841830904818005209556014005826737445948210169614952530073913910350357053957458753670073294408658711756119533728714392224056561871982124522854042096379882817592442001619513525095922775112674109926514395685513523824373765017994452385401705479995344480845755846625460642515626393540374471206687606186594050385310910434110305379103047895517938345745322455377307369568462373550982171118506732890802189917545818006282776150483028840098225458406220404660319262136286620954391792544873197320431484303487882713199747298770966403017816634839236640033014599224188637722467399110503203451430470219030428926270291452774220543500149971045112661158016207247443025200095815513490402054459552726056870974143755587377837650039607677830384084172955032187123312789905061839772472901659473632526006768379844503294489730500488104464569847681238263360550677271077950770127526202876344452236884276893210327196344181192340823745531924972519314132498437131412853988158314142140293906834135480060820319687204961401069812456923777470133289031713402134944421047419273015331431871953365171720308081497596579056536496949393916912580127414603433796766123808279845767477432459591902607150105480249335897751223767503371896632859359476937169867875473592070148252183795024597698134865355856950749436876791362628217488819825355761928528549299205780710214228261128818509700985644878555235764793417800174576327012973370929148605112066088656422079843257738417802638526629299673314407006785109459707150070611329999446308105455792240378721705546485237775117053903086319679226642366656688215725364676059011682612599817459489548006575391673042648129772872534275221921578369989366832027164425993840224353999492099044134552998098749392407669779071865209729482094218342857691896117211427106669763478906907010808075920054383303302336715888573259044138801698091441771016287171266830704084695170906407187601022660541176488149474035446481611298961973761558608613770743825361143085420516441198457636496179740732171409572341031510532960208352248734715985807759019860172663973119379436429144706104680125925566370424093387154704201088286780143750534639393815135839076142214390903519282318204820932699850334137299196811199257906488730154231809281201629827559637749547893299390928360116514073433739438199774041006370814164820191599250751378886094192735738938502820534620458027672865602417021388318030284054012078294521829559685427839261270677696467539075025403626172285539927889834097541944549410249676632005526557409520738102467109193324334499002717410864331447098781673272155442857362660082099754781018776353501575027214992640940769972445506112037046188254262106415124588469546895235897039568869968725987715061303482293654280309007134209779112851946284626414811264796724831194667564723925908236953626119994557296082344860033703366239746069478656293209523234165643917975410096588043480938460643815858161997114227375817156385735841179293466864112889199756550189374454653803485589724333032540505300738827827142279976833784723015230490857737646309701119356352276361668605332101686380842037500638975977082948682388620096816333657049088813969045085402931609094165920908237608111162634671691158915120478368472399670150317587467119132935244716957487329104573331059050894409002968764909548078444799734874165113863647871742661197898495714226329293197600734834958129944019816930101412696581141673095495080632848774412638678575671093069825741612379678930254803166051192704903806529965127797775891271855342004319104064683849003303782447946725573121258709391999817453087696963089135430016228597299146919756996154727089244522509322959745387516706833480760317938715545746586905407122312311202868975526498304947441012198699718128127452748348343142167482791427539307421905048587791578231251585521828196830322194926294347114435461826813007108017917215643314593226181175559173906534064283391865628004094660224525761623990867447887690984162229418333592196605785390532812930747070460036412134770516903727442040330951684918910399337927883155243726365575389073969522493531088098233830812227069686294471840554438084146628313625319331837354657382448274456289165262195342948358280244298130953305152487003768596034890636540675403167992872128231930069088233404853248294680889975341934677132435890719663206043480507785543904978273263655197781361145005324214866919370466182130613926444600053825332015751005284056221778541411355672351122014298856733343953612214748940087047234985689839195859049060753530167668789775033823049601555852438594657843650904348234741221916857836050969330500911401441660376930830214184855273669784184921963187017983310779938858558301225614609642105320765687907913939391677762237671339214772817998526797111007880580267159913727199080600771550221696698517333833574039263249508726054406035279741871533535338585979256518022733629644017483470223435391160951506597690373409265326940895670539915753503154180011515040782550122600747504430393669164872514752335705129624033075652473400291806075548297201036070435473507734813448336529735344138611674960613192058814980757520062812164873875870157764049339602677939853758188690754267788875606115228788915372470120436063078765524208628382186500094695150535964687412451443590403227241871963025261535525461397042908198346829635584400597676188706992577617466823032795932801180428172731171196394951067750338824569316182205570646128937564416516946077353399344918050717582766602678041780014517654380004903228696083847740310003072007953969330495991691839446781018262538313700345402914368558769654599304309560107010218034254771430798359440345585641283923209777137123102627688852417612275628786604537794427500022312492485796514389126218161718570832395167875202925577311979196359099246584227248331727634107919859082581280813625022219831427039023159368344968397510173400463218617872558273902018335937131893778227611783089772307448705518615035142616239426806825697910489263833486472492997613452406128334226361697485303249968484706340797132507530123470038211327548034448944173974288006227155038714029440668999313683482647770693531026631557608324060220867988223833061236215787101939604234734872511206778659819878316472071802878681386229711924696188900524970466828462941047107939889632032330222881979821015685959793720765140183217247469709360315413131721182485056028490855220677804375481029173367456062694761763339285013172782868046159018912891202262127827161536920823273643509879799483867064453104980429460881295463027168974261204989173713130865974997168851404527115901288601219961441811981861971385036698863807805453295892454007566670377047339376226246954217229227129703001214095494352891525650318460951134011410763673339287160501352927562854741262041410010063956643345257117204621117465059121789079448617181280238152351864565462331868436280187283330616766865077701773671261886382785587652927455571832046026855033714181829936256857543738002247838389729815103403439196836711501322034498406053384088884006170208560524323783164544625031323866141294647147826584705626883868526905510474322264233509220475931518011583745681055984480736179213328135536072425377862912015893436623146381711770884726276664573494046712405910549578877521231454497722063654882417357592490989177898758444981239760966960293283778928022482892073977507890675845013021093087047597817291285763797922442284034591327614869933702211002371809188558888786347492420312041102527858710827957768530881629551427927995003466147040612830253737845505134451933723214188745712356143074151981704457949573535334832288756115082180725196031879603540782993510708499836044832471326400868979915601729893368945643582109485186024872334370592201300559930849117307343854998865912668684798103762479028625047187897988922610945833867828588464576781528189704059775282301896698872867895941154928313656765775194460491118797377819091466299165960477845901949593030217699754676808478862392577079828601885463317445689562306169805319006404807904786307394377808431430407198142281621725098253399807274838718452978550605928613343846352520522263797939545580663373568258995414600632622760325571342618476487145240050816270878355389055976418981643802031470110073409894569660350756928924827378659037922116945752384969132611617162134875745624008049679034384437875988302829289168756582038652239998493153256253904360190315302762933756645473882548622078343418010658121339331748343596329370922501641587018468535160603778816634194153239183813815634902178186259862422350441969936104820062507158033858812233373714075196992942829864543816205650590799525897817170530899137606804169028270403006692497832151620490532284206015193690732375483816982646074138773400949845354917619252462616322675640864608206095845289005785861191290616782270787617122000700091447470265774221387917173842995361172700352488277083436387899416547046179062262890672831066475513575967627656774330283397883953121862547293170320893488609838354689711999567389793564892226269080027499475980421128904160052131102647702989406631717482303311314985640282944454760989088641702716706105784786465025267935127955759786850983659021966240992301060874695229283604930543610769872258159028433450619744840152229379639444409568587767643444832992377369537746230764925621048837892704413312100195411041312790868594872140248842622044218474291459935887008154672417761782600747932738481830193613666739409803043960430418953665055724105554549444533124191827047198860524739506119501346207070111365044112480308848356410278571085915728734138900418425679874294616992295206343049792924093485927911693792607776843138675718257441355310034721328496652545715538842980679273233476023336593399007577412524463565157688753353753966395656878335136106282262201369683809568712652654889203292321220401142219195154328143404431408209844984238127592072985892450910955216634136847338468652509213012615741587122831884592772825636669238979859946396538504944441058554490123807456163780379581793348895332524063683374733804638041649866338965632961452618577253617117507861559754881259249701336107753072263676686735761992913060396254931585399571357460244228399485695974981636696620406727453896381405095898284238707945231287115053628910320816028324769440747703187906300202812081681250728204959258506852566695982249499573371239495056527738300612329851707335303666493538442816095061260158405112773475290308005137255739207465564871994502684437415061813530212404839076948011886073076545554373725084580817085963296525933253878080852912470370222294407814483487050305232689437703746280264989322789962723743470849275394878958023972398320474519751551599701041871442267934523998835228917432872301582306513817996326850778763358541879784257214696644822710681033669955984424736542218856164176982237616908431814690016377825637464463056475327001082406723506354113728472805753949272477877468936357424135862447102767061438457155785203717166125346088691964663635169512256357290407430693658583928545948113905072401817900413286208424685664924712967183665760235228601363219121536063569678922605610267870279320203472401406659540320759231480669329175880611696866547763908186807913291334923814796081007539795316957523272975670841863303253173763778371045661946068609788614116196204396459286502839948159037536504014077041748066459534711018238936695051370874329169214968691992550572470775483095315295782386338402477197048713047225593404733504981706694120620870185138563482981852752819942423770628931281418919226818722193635648961792823795406439415064056717027573684268505539172391846892886844462217823292613228324923578045251441777564789156811589668826807998227278928200225845260163859096948286734835750021004881677464059338112615902461812619127344028974164992344915682321798640828151768119374138135522879307758039387940303851822995616335716959572927092992095917771714730946394855849275546894373114944057465857017740956943028769856121949701346308035893320937712328606326754570926349645725267542084662926655500422662230288426308616749250513326546831990632879646188132904115352052454569119506097955891809645161457175458151366196258437020225164689212251672745939874389536295221051333825089631651002606693753124364058428272615562275580143812962571686963577380246534628310796965924438007391259671855163750423416079419946970883314169141561102517730681888989797621961647865681221451676096376383986544859037876492286633579663124346676355581181116070710227899716091981697405346965249992983952207809559778163675833977411838357925410860108156687061544879102342354783639000928542668666269243522988594520575919480340026934524604036763103778416935525675451281323460725324166791788884903200996205044275836941662524050810336328385165609243554181140314430522393639291102689189946059435768303853967752710225123446153032399593031198437872613463831760248273702495030980105549040701873246778680847705846535386474695067223879377116755625454935899171666578128293565610479132962601658907482773753318131941374429210697883774230628714694011323623891152205053986968152519519628030658711930616705045498745258746665595759953114568232317084386260448008080307480849644531625978197258181024790025369242614039748842051460783751767401887448098359721173491305311991970951656632066735288741004152054477008421349213705360418452177692278299340916565239413916184008873911363965980823222171981000800492161125508717618014563175694297503472988881984403702711890650379464850295078451706141678552716946902485892139153324757008242542755687114270266644843890930331669752719286274304073650176630630705008937629205615272294235002781799372626274442926135424389283671792303005033877737487180389437847018180684754740472814635923266329569773450937212583799434445405165622717675134839320159045527379078528975928316282106619340962738541999930470632172985551514590007552135782763875716869677733386089710420353217009696984864159937640323825475251422214133361230984524859620441859687246851164922713096611675970186480556832372475352366807093519462801540910996515776573282411925578920478136471486291799241666558148984743248780086037219581356354598464916425263192527018054788423299033375057573260363963266342552719449265087040280413207269234391895362302903067023149776283328671125170228070613407736894349705862833601287951897729901701923123450785217389319602492137777550619965403982229429380465863794238198907956863152858034306171697383880524768877049624508945125760517056082513471496343965038547794086302496120605776199261300448191098086377580658608518487135881433045963114659487383053779226166716152284111114408938809151044640237155278071446876553624668395746577242691321984883287885175372225372026772395191235355738548841893283479432104964782518265440211788243033739747062460282119056443102922281093523096790905221914210376736758804631383467881659703941814706442339841809872144185971783537075176357569219358385437804158645332592354797632222387964151440794448230043116344957642113651503172793817659097273542500388758130705809536973520790005142444161710013077197119913163565390562767544093096262945221618612481309215728475426990863909485239712748996902155587389089166472296172155420695651698265399822680279662337991688591775431181459666081060552541948731843223400845031416255570520851499475776226320661565020664990543427314874180636781545618636681375246686305533459293387885577871934441274495247974503297681074535084803365685897498612919155167082668525486402362992402123697315319987183335274141882816980391179053681729000395176888688616260701341880222309166588041867002565864425691572503264981694915686203259833685120771923478618675518207423806099748650343294606417338859497775830445399423424690206451311084834117004950161346758839133084023188267683222992791932146388188981966168613267596023402789932849474439358634506901472441107621607748439571555509900178954103880322302692427990932950507883668135694911684326303499306048755605289688211772974861366259064618966857078323009743100122248109600111309319254557774796695221046397317970279072470485389484905105202170477034702054250330171514738129649678463929274141928150158372661681727040913240720519449270992509594722181580522555585381715274582915752323495878577236504808755865850342124808141695172544484729999929737846326878250935451438222004527513403309164250004051628273155866409393092902061565742836610250252051039771047643580824240477570813136465128335598700020033522648327145043955036425077472483996631606061517995747750516347950304615429064848340760168582002100000601866048283534989625836735547797790049569365782435633313842509093378802970484689715148464560469377231447483904066178610568490806768988126425415481465739335391999030811302853162914637631254973815225669211151033129782757242334289438970279207824285401712406409304325845239705942707220518816541274768890108109216878520697829547916831257133205728110811541761493037424983850043594775853957292502920484607164191762964247394135395867174854380654855110447762317667662039175628639150612991250750788919432608773358515118525198464596644501338437491837437300179793902642656519030752932272323410409873873138409299745380811380491088756464082471552094799140605304358203471619797938746252953758243704393611802025510343798387704874973414090030718599014962056027333160444299329121449655374240305618084266494237054483257973523408938984101778660715765708627129812106065388922560778493194450472088553412865344456195656214968048997530963849023717496944595730617906013856605219121698826245437126332883896089785451552306884649717186726303699465868684043195780480750416689885872367260767029071317313653130217576408746984156518368140790044666581331771458523028407508599253098023316697285151687699005249205091308328759388531683984180420364262664695239048611007933359107079997696396598391736520251507560813290171858409711758851923913585485723516715143344486370041944773394770000216359805152680449573628961940047479627457229057105301382832410394736343161468824212345580043168603434848200837010650115100720698196435658653008902215080714032540527683881597968560436649068058304561886355689727534008934911112810672604029920526370373536624031020415909851242745220072157586186845077955443382673484009508135854838883484932657185640880072237781350515921903711353554377047481739910681745343061559967878362219535182010741595289011459108925906536501775005370137139414763866791272031430169932363322494115490081044117909861803880747560253554742142159522382264231515448963863347225298025267086218741209603388095181589286023223293988790206027264602552591190648083785135937772280316622287425428273156334365068085275362900781730816455122383621219471101553011020868188916923927301865853173672963142631248595206344547638312444347845326491433476216618428783555311588695512814590531597048601708195675138255571013625301978496737470018685510547817477085407521140032013981944666305814776355776238402280321405894838028634573373181084758978609540361804696028056579176447027268027122605278162765960114850188308531490924129506347576315283028819964938629996720150412780467806984905090768328434190072306804845911065762447371712495096354705320408088796279863710971691982344708683875342675877936730339939695233467908137972341150630175771024752508891307353549434122844623924105326868645604409808022971692729810758873832692122714057350369803725981202311098465530470959193342310325186315445676210940647915544641464125488441200825728501525853149575320689595479256692920795006940828518835325164347670488359813399113905694486668993272588447250556773272550540133392814996123492394780868571691309436166615519918730936297472603915720924151828647301544162552418909250979468528281196287376115915087324087229856103190119970337053699564722469132488265048859735837876256629419812337336757550279866793155081681586506363340348995284753797550340671890148964928322571596769106092844784500567815110905881469347872090586312049979510504966830886617184282612963718757142008532917206088284573615904684770908158174077224990472500268603589764781281664052635684829669148760035604008066887993865704558447536775500370140692399864546503698886985740141054909950732001649132821156273212919873902224532489263776916131597634426507414710452109331536698675417691975661916179185086487078649963136194550990939954346819292463800948147829701901059798232973345229888422907717927036706741663265227881940399559912159184093089626527579928117643270282428167811128759163605370335669830402885830509452980268566114316606404236283335352553918820686582277375183737000905777435405541152613020110955646044900319959972882050795151214962274106359561733959577752252195088530614805335498112194236343740294040276285164934671213828220931352986241769695717857077173796977546050207638077219244575673323606825096694173796780801181174071354997076903148999049290148142364784122099663914054412811896035142068526656463647541654210530175342755114958385127892577744093493519744414349668414571896374027158821775312186394906698810721315111967943789811224541966098570486910184169976615104514998877025714637172885164508355098138274653512893961397073768842598625489680288173013985058467520628007632820848025368850664317443252442742228646311933716947587124176092864627326579343848761443624320276384007763141235446297439547035886818762819394283132480211524110440615538456918978444991017687668092561539081014966145159043866137123480159127410083448606420497555316817294996018747590205346879978418041015965673943507924326432500635413065856982389003975845212405017591853901677856803588326333959726135764178804297407664766884630874061370561537308013803503469230457890745947342755577295918013600883416757995371013563003142815189531360516587154953718118014029771724237929739310092670313820496207568103830862906714734190072348564164195059700138581986261296350367837844366326304698079374959736808712614567754857378262579530838590545947827724759981074241283422006265383230460434421551966173154473518137076857122432036683544671239039250786046820948576064837759815042821193246479206676220217172209737630294301542471886576042192520535128141868583314923363440612691940183499627465776203023248699246543285097688799629477948663352118968512662087937902017527799189581039459335511485152175552949762983984058179053694016150790111777940175472443773713289691446608585549682677337851965237281805845119889718602940419477261921471646854321327851596558978449894608614313932071062417698737338688260180839300874085764271410340010313773031869687665700120131088405288240895477534990820627189037587965739041533907184840523137048071323276406774077680834727628063584682318164067604921262931401140828489066973409622879731921151417953353392392735104823282370501708440654606140684850152968499681270701948603937706258724509998298655166876709926918635508640140378914309447305732524639385303268492123166769859010096007520247554990101155477268237521923747287432249269004862817704904042234718482888272200009074731950145338891317632213912512706259957967773027139219686272476368865104448267629920070035666298677977872611248063288224130642627488372468454247980192199884440566755917681870780861685507932755241614168169225986435656052417019855292319402831794749145446416004390859147390913154251205437502343853025359714907769046994254907982776916945791123471682880624911272868696936695129258278023653998007127286185994668643734893691775569621951866979450455637354744525309317245188817754983348480043048100253985107210790229568572050582709375434228521379727544976990344649426351188808502574350451932000360979668615965323664572776126281726130713950670405289184615921867842907189642351661466126523618836202915483601659679060356895208859703920385916284957675161432377370326114165185771531331656156567918113869659645796416124436147620768609024816361084631207155312947945035686822979842434769359117056757448395569388183574267184703180461415107495950458826893716640416194775913883191889871075037195659903532806510665909910738731013545717833662813850896708010621745810677799952879309979115397185645322306623391238358431782703361243553127551831563905136568947357243915428098057313883085425099596423390583866497637935209702097666191290348768416344704166702574704917466880802286634289108910582743749187870195750763353101515435221570657264695230650171508608425768602829788755142069497777165490292645414901620585127332311402327440461332698408038586062004696009641223085622216423024703493178168548982708913650918744011776770563505604586295142259745886429672325951322922468861518233368827844255791372099224458864167625550710201789117298767314067016804072660488023138785893211655757528035243100070380663273339766173762001952547660911266047346826587807609717440991796785552448195819319836864837417675016479757423994265234011954866158456158578793268071052224961186661765174445893580606172069226415401099902543939390151662570853471577184198067565066376173185602811311826738962705182989413752255830442195151477010336585855242352967417481027852171576137947262162503999430149953475206736772742819767402321122809805377670024224822152961146281293324567428728401615374693691959633072303105173812102705921396692163603537073963568019016762055412633037957903010633841470110413066719582469794574546328344055768701833767695301796501327611996993479506859206519694458283240322293965871632138237312386582678825904832618859719902754007695247311097300941047129581048620010381183999583486605245593053553625468349212168339750954289022956596508543752924446918411737753020563235561805859944621385279716707642985187727533178731508770527913823032111785398827811711611771213948501695230821827313501372241083395075138413859499995937477302931871837802835918667918671903074989068457128031918765340791993681543733237913621815315933120018081411285306200183556254712880412640136031939582176702742852006969083264658110761208986273085038593653860163339527370761843549950336846616340950849310135434464651912705858615057078544347548029972075878575500719986121316252056860812209574366377687417999989165054663998267202273078845826793691736121493725708842585398523547309375443168663977425961958659815746420513549934255396698958869172989765782863189379132872615913378994036809133091193886117799376191941661015156848467970460499560149170668091139327607534372494582921191320564937085218518270547715176338767042661781863217473621299483010465397105061863166637350082047109494676172783184864806697364317905956232502693812049718477817764482938026520163280651028103239715381212313917055659304550640522031839694618520069579194892130887746001549557750420325775789184652114689306204694160908980424742009903959146822875659274012269442761273864495344444717958076256981055731172720736108240665348852711011500792734073418593893181653532025014269867048007275049042034930956981565045352843333142656527250809070902906164363917905564191716187989806289541995449245288555361780092603975137337217961440760712712384446160318424691842304290188740698299373034712560961971855151564878510923701548447626383270924345657227096309521508687238742867526378073232600697686645509297080462959600538531965794836773557076260772995420678597159273127699552862101862680613441548742499081489187323041718272976132580497550864382802409598847601552656287784367270781299244474232030292588804405214215572202877252438578152206812547071208863411097885105988073696954255334521976923818654292309158319994231125528693439230335226811028635451777866165341588450712098105031603749642668611665950507892952881480703700378340231323042561616555471606395964010840680428086197476568941542861742467166960714242612186277655472577603221259836739558890835104048052408643614098433604091328815702889239140127230490177541205173275655428514344361927193940476637531861542166212705738247115586118472165601817964741717858593811659806697494194631143192795296937347483910990169311959507222160184848405741581131912718981545389387395796992867228658648089283708784504695645365157330379110615656784105441556310903828904005430741082061266655602387881585205255335455042426836367134528629831893029475453009496926460877707068575085091511328068911861627021978283267053590238634815260659478026652127617105308792557675535510182761591036421188986071457694396532871870839300686213003369541028589285832075460772822623458028468284733348169417947760334980282810096361077068600121405001707813620188031839900324319018061958009094852762393366499155404976683099398415581302895469791999094981426726353417517960317099873832671407156896173431177669839784723720613336609975803666092618534734390090167958190228690074601637420430167071786042654217845409872253267513917744429885485398548836175080012637176680067016854976402444892308150201700462594901822005779171459567775424943038864507038182295367475290001383266526264839107009394474074944917454421355094922149684077670474306423255392288867325596807659592196231882696199296717978173612514116713404211782591615375476357282044436584242221425683650967551165116513546457972268974463690944636841435960558195145405644200859602421194225037440995872651016307072977004203047398642141849721327120387111939924972368593900549045612087393247663295196495351699398486087260999714042137427243630393006281140377063971197897282929297408538997231094897236418997075858827812679129678242697972877627064583162167229471288936972320939333703644751117956588314371604830561193560680303776617787740380087115922940157079325178971845723852600381225602742870259350696879587509283684876223221130367220638699563139723102462352867671049191610783716556173251531477909906994219886590533334437392019499394908942542639358668252177601164847327556912956407792970896522942716174886688341521367190047866960649661063097677474803236589294564586553511921910095769582628465494978971672457727612729336251636493333903957299417154849409663166465907157806483408152765454830010940268792470494400366495296443388579498499390959073488582071769716521276175932450689648399910046637365017951612260071388231339342144483748799409171803136565836522170753697931103902052271113244322305302992391886771397808948462504984878737969980049160130735771629492697813620487577739315415751457400066084357923172486319628747424455580892136009484727591706079363812751480083622801683623614903156594947592166640208266589116749496612690335424049956188357805162604691399910465429739783178549648607324077645528860056120232106806533712473813048555245932405722493975984199624954612726873971130907207504189244995828816086742277594999057780777887358558671692124970845384321337480101341334561744753984371026470641751934534309166039904381450438794730817448137808400535160686497937579537568642974228381197829793458909340489551715736180710458467602933527607247758693551675451887106126483236569340067079591915365421834616222862055926722292886709979952528979744027230031453801134590917884580697901737764396206183583147312383938897667767310840159862061208190186294864643906440824309700790241751323821044168160258772227806678142664359486148384941328494799547337999980942074060804103398116579658235031932544487938286881115412866347654535471658158411235688535617673518791306187760703318182562585221014653626955282374531198667499575674950596788360073693863035499331107791970101223832519966286625171178187326722208027358925169654746528731381836538674492315719526082071069717780785609505046005033600139801403354331302787412066842612083013236579624139430476630082896146039036217339975725054591931828604631856954111315470205156872875364544936047720350866628107471335744139113983474368400800857290533682512839142630600498080978556186690125012140846082753489849846788934704778967980750986505418456000151053514063768676528706681740768977090235001786463193513540932318288531950204842201325813209292401567761403786733945142585622332558847138279971706313488364754402509075521253153664842399012514529001881521394308990144968077722896515094619531607600764215667655442176758897528919337530421637351983151290849189743016444624919674404236403461636615333562560716294696806473876880719800301552847108874696162798144325321721508708090336466495419348592920662299018429666992661081350461629883376996062235990360971175540720108127233619184621897535291077182710235674209216263485471057550925745610963062288218091390123144787329700836866569591819826982680564289941988723760250671437852460089229657653746694756099934074163196469150709172759617415149145210645387347469640298401243184003633960181980759918710349146250936648524142681761313423702253692496218091549252085726793374754670246199336402448208041117094882193651935727744446320224888155657088536051058122462378998775983115321488639229289580890778246167566265344236574381556074156796722688282022172405617418238812460381499580317130419338291159543495180800716930189565509636053956722369925773568419390116090928009652803442745147395616885930013020739405399152075897576134958195479885118972895495589094203420920027838026470468963585107883949720006839311141290714626310794928558414226273843637789132002289665892745768494105716618377442946389870820599675470605455316035886681525323167224856866934552145295487464834575370503499403790592461705164116693007134013275002528982078318310255655861102945622954380959613220117975343663007343071235358248845543603848686287040882654279278772793199333280624250543384212820843917261197064697943940400114494575602907979166589219182149667138656798505018942723982589457466196123526167304570266422652458551435740891161498009955449977521358923400526328809065438269456555303923487538851740955978278094815841190504034805498669171729382427228847352619524359103805183650037170190779356049427475800008401188920173977270247104452508799801998913905074742108291218718989800361803543429728116605602118171513688838822731738338895478682833216762358934490812516935090626291244083984344320082912458699873374130205702753651534545494299091720138250631783616782166008258811267405427379124485205328054289432757710931405848646463389649781513810352383298854841413990574173501750090101805880353947034098380103843222618741919914362765666613205269191478528343129141255671974104913779739333719188294846623926345912665307161117980884990344143552161468203477141855186976574240000491594646135643896135223610965810044014340195830274237986729425733723710175151029874906609144234339680443947859475710405039504000130093989297375154326914419147900506946275509143095966329117756546163909574051960078514623111775022663854763926986810457564878791399739629091825853978485988284622616493460268654504437946611334378939498674256877647321214335328856117056308352500651647156793614121809186282817323033002475441694870737516265823775515365652470506940051953289974555897107070584086518502539062987001423001652643904067415443389823706737647962626707277015818807194664544855363351983502298769771392166836333331572800840544688690900923524417387944626518953011609450338987647284141953027036048668752423106149079581184754662935235028087523470774268936621000346374581737914948458453043413265361665405566418921613652402522127618158628498440270445228077203629982467279737402357624496377688356872499964961809292593524246509061048853081245760380788773269505302787080416096091693751402826954198063709113899771879541784291373626888349930629422017907281762626353660758404592451083817411908497076740151945043558297972872982597950992827391117348769491287271138052109283141657582187573907459983228081655288643091485874025644761255121454211846276964732180564512790070562630168825037559933281852031243077197591348510494975924683192010898602299677770377561926573656270390231338862003373143804928185794245468091876233943587576381001094607653568369811039621712001258006987304558976460059090453992632638318625179457968416978529512383597193219060729625000331819941997931276055861423064604850876711214500769619550856596625249312827606743830668089235810254917382066758948552776006414287666819661233432095004425825170267439686235283440542073478343674986545205811453428821399059535685593236263321019711293785998173546060694118597353518977588448286385189729946603384027137263697155959780630775983401489192294071135405734136740331694353830139781060024486714564716409317416721900231166438222686156477419328124654790881632434363207935812763486976516414878556205936322406381753554023344886812595161233640594944861305696687522205277108591624421257977763137645416859092698141323995554202569277096892090190495505293477511501553039603627277838530727528833146573204072291918982950827049899814307085096452376333420840119770326388109954829204862898152969367724930242905987455904050210206885925642928535847443761432680240090806349910642531511192986967744722500624013391523775179151941619957610506148624612922333684751812837820258077021898738597277440174980535191004654593780697159274523070282005448126688246357696229981771503479765961299301363379775280019019810574692768890176633754565977994493159454744930926033260578272702868458455195227112817673807071888226212967792670791091931144888413525839958587191308779118246448896812919675971907569181538877632811894570031783302873174396059702780262325815907572356164821796913724337415681586644563726214845997740934880149271125408106717152871447756806673831373644691580091916645957621274015904810710644037310936268738929676898808509289269116673005492284573979339246879964888870742918228023344041370631217519096264577255761567489905496773497886158782478845568127013861145591281484205041658287879209147219592268083691777335954279563097522155766439804937879064043073442545491728995606603853345031460439522997264151697014390107235251106810350171517072286157821636628394128951732235280362391430207589488650208888356596072498379763193240036409465866266766078631860542309414204414174140029290342246202699578296926750254099158032310895737888085739963552517769287737175549408323879185373951705815667852368777530657233532999756429273101052859124043455505616439013588259535717014048195692536422962092494471446321914767282576916317255893022852126260807764295003355553885055415028623197616623220814066419799398742520907308084811967574709649639195390664124189975812011443712975767329743057921137169544178546315764990766636930621702881378804044762156998882026360425090066911896087489102760516889943424173908447029677823266721014576231723469970105986969706913803411404410028837859491176616350230312824418712076563355124223476339762009111610203928442917217547350266763580913997163063026462971463064339445227049370356336921900201294623003482744259385037720629659467688964970540507094751170406191688158149051983356378367892803388294211260866030870969209413915106029375473004990089707456985809017064707926120661137511813934445604966958963867544184548424135435238795692982285789165854587890618389276513690482420294344730053473803948128880667617920088966928217863843407089471930019839837364094384301012101528373513409279921477712705102346022272592831163437036991571605196716871807163712810835688192193457735823262223315164196500633331166563958082608432100560859433278459993751349124479966200587834398698668794635255166639235084096387249830960956877473629876609894960866581033450586195054837327818248782553520514220499645891149468748280860016392439757171443941707996376930314505739456584556183556140810373539431855517827225897357075201834331670164117414994875511900614361855227714187397953885411526105132313115131669371497259190726090574794192087894802857812997963340834316611557985193217244851706867198138735472240126343402322807683358816882471698941235816639607965510488918380044840557179624121520634803898099871622872927752078352599261583538479467790552110066711221858237026228400756465439136656688485637762948553102149200735441353077546398612564545819092106632119422418782855310136063221965956280365336473146627285359330636991612748179829899139738407661054802099988297611506163407555228719703663572469232266818265399423290606156908620931066426368307984169195539943959780943327194578005689508059684478476669385691917176030285040810887591639336882832740517959053247895962661156985932719797062731018124700361421896742058825314852196309832021677395258319479854097075051998991265908841534646663780731099160248595573009436945748749276017079569437241973424387509239949479627284883073390894939172172670331454955858139205863586388079305314842864457477957563683884212945034101542388854437931537779882354374544407953211581481199785719463205248084169279957968851697634896772916848111459676189944509893319825446197679783208163136038071827266400459386740592599963469844075595958847731277933784751827878948987179102538268247685726299109127417082778946973178176156459204798934467370582029952762030518080843738637881188910948020595000276300561672813543294550852198726105780634900501102862545596663293967432856886096242739450898783198111208221419527676555471465890670252345458656558166235944860791352629149200140347434154966794668306805840329871510683709496801585246060010551692128683036395849279853028792978397510062861113375775787195141626311960031334082759389033948890802416068643304880735332110332810499223859696312702969295250107825784718278027154080252905555471376301588773388630494851902254429619006186785525145797670294634938297307825166672612825576522300859928461010581827009445707855331139296652803837960842336780246919999522629597768520219499051716478546793752804894568843506172247842213780619398037424983065355820766144646088635638665893431301389388742062037726211978747722606916852890237152815212699642992576924385580512381863724108610215906385490389459899177316077395701992356008022323059356861444604824747990700027653696595431743759660632789058904980147805415740720119948551777992302235812472294050134346992253235988760455136595590951393294369945821239671168574396670641643491520819947350525221442546035823520183203920649491876447359986644702547615679266083696489390941521000774522127895911853063795130371108219287906643005023400281064862024718345790513739683408666276027395703487965073934227387545093485093720093598568126452442815208820514950941906086679237591562021049630866469304783279468877747012537143048937364638479080140343572173227737431700509184073943724330065735044890677563254365466774553660252204967487849304949383578212771598825353741424269576761024379381240040266737604386137076626415479762661793881340905761240717056548658858584010512385160615312027518856360128961172020033110291778484603570676903507853903372939652375577921577770652455477763632849555550999920971726927578212842996901440281527151610746101031913251220392285959077532596032464487883591788620359228610064486561265513093415953943920349490976263526495389239289242699163559454464806331739419617968543157603923242093898570335210994239444049380482614947345164714697644482300054329949625247155443081922845308067769461556838028607490081275759484707907367975957068641787307445494509510031802221951547641956265705006553445209422280112449282437567398209953492469351562765373913526056695340722104243062552381675662870356768986749922837538123402440118735351956529898339724979008906026256372519977321812604439798818126169879505766965145492892209329613162525250753683293958062269696248829809285764101972602200407949327545308454656374329805642277014483392028723407162837614516639340336589503565029325657599757223147673527552558932636076323727734154670921321564652116854180034059192825223820427760208221070962710063430269231349959452631950546892647137260538398362903159420653633025503500902827105334265628674681950797899972529283095323391296149663914497979227311598321893911186845990666218890861520861527312230544550352463641748260615050251705685561493308943741856535900048119882786506378879835467413866506090164067879878438763836657483322554814329918592372508785641040458883875388408755294504926786905135566843453821169169435181710119581454315668789331716265870997054126608278453802227856408020598809271522054079265306577048025306988651713100912962695764827664624173783094612591870744884586980019045512087973109527433265827471050829045450260144219456816164011619570377771195445973827324809602856621001182142473322275994534471869703762828514987030681683874999307370462222981452941345119363047802433771832367227274641562189952466303635435025716657554010973608381303823091371111526202993235568844219805700961901366978658126233622161549412750967992626039865163234763798242042163616308366195036784900210843349610050713345275206055852840782181723397241514120595257532212581405215577986755613846070753016739868707234878561234365247277527553111606041330946570948404465363267190343337661682258783625139749817312811603384689800741190166576265519428976131612806752156435325967974525958785957298732955468167201692349046866540687233351192726186565077630907375225803830427640074121910274766225306077793360575050635018369575410310563624299914409806413927267807837214131050591258198433318710497136293222601003849611012916336276916008990924550398067069667766870001356567157908255098525836966678470991406526685369494710218805518674880452793755909653080463432372538034643075387538114466388620228215576484076493492870443849245229382266875426718434379488172823260915963152678441918077171859397346707773502547479677732749980778518826745605437274542372141863653113806547331155656665954949151422059751250250783894141754161446317816383534397231504211381275197587663844770183216806326415319226523273539277794747630232265317509854900028691085421548120759231321873173543235036463613249497564530142012071448511065956459526435330042626644751532532569047695583340648393691029549186463881027125037331873001383398256328219427903811509426254633856775869933832606409298917558537505519166844082041806143035206200750626895900312334603108615517295105450214998396354142006186650117577995175118690536289268615443913407926196477460014055362735080926814922523629356040783799464457661932641162986525675972375094370484845436202694989524984449857480741566179090416030681558291702804485664649697493283213650585952714543899186584378356453884210216466296352918423790419634678626915768420506976755007970278343519348068523841995728705786773570882459737961025406880952472078332711296972134320795946338644350928096436927003093715398281765909242884836842137935060681873827500243637436919668164858579079518622476190269025946823615953214389979274381398524751479820624979671719425676309232171073924774992090161123366930328338794992582988434826706084010706401400428404194136718196839872067135043649581195377103949943006192046272550720016711217205220848092734923387144385913102166353009526259364958395542015864685561550010771290904049085408890578381511954438792932778108632583741305059669643047141100096856738977329626573523347607792691490340523460767399923752171966945385006380674207620725437375948935408702367978584631477893649449271169319351478807875582801385184652818751841372878611421943087842881795270528282450593831602498298547233632248371983220073682805537309456184293725533950444262876492286811812858794207054207407573216754544946916490231057037685749268821707677550362434113377582102215117674978425606740960829005159722645582497249787370963302231154664653295338041175063377502090800109185725300685883645913330979487287838573647856823913369118894241245990389003234524739758930168936304275136868878669536675940710446843967802486458851900537093864155141598080365459262898959778327481868453008502297288104082937924353392460672423509124320669325005566180024191518658910627196520975604689511314632537632880268133518477388974625051226066507361906257920081311901248464464665316728230647434733862614310428850121339191069525993664933915998387568582879605960128725504526283972527265632894311188918803574614878476762332873361083286320238787644491517040987987957865406807747101050926322033595308040532188053608203226670047366617295574175917716708870885674584500296871205816141263625695746347005984056747012275466279218699838142873860561936968948334539651654335026990264867628970283806677377093278561472690298712959747661399938354830867503664188429912914936331136930014180534853712699717976601935765983968687819227285492681876072641546077055344238877058805390169097332262821844027375860034972341493370874299742778300269912904795032228391806128202672294531273956917241158734822423089015051383881887743468227995073410778143871798073765610660011268518934006350542960149579444490031921697809026089425033469006255631621704984723446534711494486303330330623304221265009722821940287899821177349259526464831131171732555770931487145366811856682823742554963806731692787837589170404387992819841873774147399277690027244577892558658398055625697704653498234050405151100239442375460759081608671867114069723229681095063620683271560446312290291502578605212274474219756269863285078956258890802248771068339949729463063509576590988008328958058753212143402788697529130096909385477472532494923310464934034675838728949713575274022864401270192802873282152285256093802045962186682228820255595033929212273670967630494161950822705107762894013097738087296423405257118154266448795523106637413060346435845210115450221927759879973331272177369977287232159265820056866812270947882428249779460798335358362366637268259651156460067940895055521577933089837374284155920426619420753879746510873170219602967411530493058523297180995143056523437227939313015037512457165481320110192706178063913457314216893439248798798087301960415179536874491183283009789343495999713698360827342304369682368721710064175402834980186063483270214132744396726151904802130282583376054152393435532945114006243492578495275973943530846863439852913982125252975825832047611499138624341360245839700852787991847955007359051798055247678551584072507816070758229192950898516097759905492952553407958993919318863244358081594514823150596099371251719890453796506416518238344074275859471720097105346313456231643668958354515584731560532825276995833142869744490908685889603835618762657138008982399580133308073998963591215344166799217539995273777969207219108462635969865423439083249270583081202218207307559818350183793955576740414661899699821822110049565994213584842036512265533566598445856057510772442621162438677783408838158394608913475055067714569172069593472991488593846694119851278335678186960261423036129360243944053970856946298173670799956877184405603767649155651986638710901881262100040881973424825465575063733434339690069159211047757976317706098470759073924905915779655412593914485911566915850460835564766842547434343266121446191892977576160711004657296722695851800311934180397786367707299336117507359613867994076834201052133929679216870626449835393294333096486599671110317893591030046199583265686134617875567116632665720335391846715811747939658094713089399110177269721227024798526064369016436270999307429337624763507261193360106628809576894597528628535603221372218180608261827121952977332671804960365987825231795727230687137113651473447967367715942481074080145867471669414080916470529875590652966155233725539590103277850631416665721893599984731572581136979711502767254931178461161165401661236180379055038438642072886372089713470767915365009285910658168855109747485948814199205443966085930688869539912939968318217560784750954854337863043161502692842954402119138491286887756482625500444942034909690236898803635775191392973264054049074030469943661310240245267667473473108190288366223032920577444157463215022184084356691984840713596158235218278172510460703467707568293435861723927648643172823251974153224637888050132724104178960049476596016787494338743891064272500219137113848291334057681371235078577611016033356947122420618741569794618330799169973999428758395037351456885954301948559196944775041466921747942536110753179201147515387031265189314598735952005821037465131156514651137651521385808533403423126847467431992061856620008492892255732024652289616800293558122729146540483305353071345194809047410454067202835789821868608137871592061688721913384568675323065227385924116295014375734257137266056002054218902431477452157651339089040662107113032686462571228139164146109233044975231509754569730797145833481681413527075359668701198437748622033006176736268037181781846468616049631852401616615088377482265739164217810763509472309004429901552833618101349197382541936063148806918353555921262533499638559193384960687971329404263069998326793277895360973713395279636837951572226391301913086475064889950137567776545298728053784724402673550267106691171277919075398005404191388867270466574485560487100596708435644272735127550769085663656680376083346602509811221359305862804928287068162436538086865352323055903066342438300254500270815480998455035551523585585649728163151098751219031549941556484162879745921369813773991303583828175317680370384112362475949166873682513752293272968711149152573706193697738357656516824493016698615306049438601428265675926393157453332863079104470308969920299561780008471641942263641369798940337549247380185044059086335133337382630784063931353424665699524056335375298232569694072167606702533254728518205214250155744383079706390696616687161100690987980047038828730937475200341567313585201978657385621266991192658617124124230663090634624641150866627738639086401378671208131550083981081925129106602845063224721754846166420029993838329345177752513439302608981412106173443540874513491535616219014198209273267263124520813469595252793971173072837517852234875761413705740060841050629186756418270886006692623414375897950821472512641604043632712279480353834094938518594028231427532978299387531893374279857386057797253488035859837599835659621622052913968692498416253163879330032678273312036387981388606825849689093425794094570732362679226715215072023661160534443200289327633442680799638832926251958290049690886478449372502373850297730585666522108036625228757955431857073494923909007825977255719723996910726590603012489306468914775347536615528310519980278342820687426364241405244103607878104104897824385926571401626100541628318288925813323549417126266936957030056957098718060199393371845184633855811725751824082076270128532533449202452510090949485430557232814773625839654122006965110393058503769036571157844720769094418636638903431627486528176356376104786219687939310886090539974927910622190418583822374909325230033096901844713411531317192830149479979587922118822359081291466374593598400477226792833936111622466619570628352842822899221602685416720972898353436976358457069409311177376262633947762938763388944777213626626617644242116911270334417106150673316864293883231988411079403245813880824015972217837514058861670211082526686518380239677203358493433015395759384305510935127590775257704468814172143367024353897315712778903815577788259369926307662724999359650909645963112940946296043031030967451705010931056875266752126044065090550040615278945748889670812131481534392394576674357174703309908870686089462313726072365397139023174565782292329290877774565985396441482253548940003463327999887816970933493948927815098259065333686488874670766098925040124974647542500400273766949272925165434126026923948481020777467056658741045471912383771505238447805079634979234811431496353454875376394200758812893081341266382489815530644222119496013853269277415078453254110800517382399786216197809422686687678762690037135072390087814140125330341744309312356984685801733295816090853628373447105025700939091873648001381984506478593718356365905894766636718431185910531794669406972266382906379529285602835341260593125871497826822118696341740136494982018544378771914047598650493643848385895967058295789284617847603762534768130383559122024494041593558366836077648240185252115859830628701706035908582823217000517557932194192158442720362313838437577168745745119204571092933147827581513448749248884609546437943077599989067375643787764736100319485918614992543407718581348751811777886130562858105633191006727946623658951029325256628534186162627855433343296045568214652307980059315399498341326664016663767001870956020237317335203849722380705263020399180137995478242323486480264945211629259356285822292274909087090129482582137713621477101399553090802973314906543177724521919009368275330725843078609114272551090850319025197594147901042740354172963343327612301785848956172167169981647133612718281125227053111568076796366323305416519075008159588602381426089271497825969616624462068338796732160381333295882353652876791879372542877151682484529923598536646950665095023744181202850751803942896967607676679371737077822844001513666043488373918366454332842771039834592888555165693341475372213033648927268895625560524625373083836959917795588159967412345877602247112002929117369006990548627474934634909667565668562149734890763940040131100374933745552019208887050791305904418170250714360968397822270981677916721519125107597736885955455655117759640978252821441223696171341409453046151409831385906557562356659265143057288508612245718267696140542040946862364832028368364207162684399747312129957947900575396820521721991654048060863180433557781833144103982295677323293036640511746696911284458704570597396318681960787255109898933213319505494911262992998891216659218708641199288532850079745612710226082613004481696844153669215795147037437156389743469757963056312004287860930947877779431943668284941207108588880687764664278486063985969830535702520934496539552427951182959514353872353402771783305402703955265660399006718741627582361284699641868165726465480196070463804503976295193087148000129390166790697897999489617810671812695357660408160818966834417001208982728030542536759509992473063851682288649148855190612337297364927428507726531864638664812687401393209791802206333556464949729338838289808509253253644812739673611835318680462028243688810668473193653459176262565805786338436065904642752401785339043341245665512829271262774113912156393495434587045930617871332072802681772811209355950052906857126754814724450138127454901002202781274728920737991214817577546017605539068108630676038067540935208689363312745725256418741039746201932191213637107486146916509219735952697968251729313680356424448196236967977976811859808035940082414011785338666477364355590072453677292819564006712256294778317354679992923676188171619733308210662559313246628321983194022018229344614094591918495379888683940418199178190033857136167885211793136561905091616044170970134870755106033527757378377152194339661528689921553217741380200079470971310121262717292702803655957758784194008595758247797310573463995899559759865070094791052056996049332090468182827408367547236846504488866722238696122815854665913584212749251154360857666385252646629283948702016120207643087673623941708121423261757939418022787012180793579398026299669239400525921225290678440829038283249745252029396414661492435221130563686297088581788428622535558800232350622427683225718252198566923804559637693420504024745351247726300737027942599443270367524370174337380229692426008458957907610738193989515224857070926598191572294332255279588594794364146143658285816012254169398270939564455589501183365110477173175514384751641821454330787049414456444555947744025902862495923005392960749463144800966785527315524805152670133054051791008667781848867588136867752594500032159457531693375343491738784663015116927077205822814761983845064760844542408413535910161793420636285644878021875248883156153837266848232103637692974031735536597773194230039631950806784580367568716180215336937317637685066654932353430949668083391867049654981864814602816582302796947504912587469038693546099823298428192580517627683261224358979425585138520377643143999422996435086534202471264991803494290969842482339502155408469462298868809931553568037443007331839187929271257049746031638310253419867787538888920200498712968311036931141314923978892008108517743798670166358883606347520836673272112522465724616832435816694154157117464276550664457285428926019228501785895121410097678806395299693564075876167030024772521438517514612948197094298974647961997729084942172539957044581096037894617732127470098743699944598526484867199085550483636356458771404759068446807102568908067330648659523314231867022741376325322631432669436690419580396399159153343815136951066513173923463627633899557967298414009872705836652888470944128290598561107313722444272233400504149760091310918060548281617180738776958650873489257311614216966670881908497902944502465264736545587360139196377696857938682460979857124697915358511789869720600705862595764912493573242529145180814174067595525318145951745141196723996668414532305812783093997125970565085860502913501351525846300366131477805057790264069059554827740108724682404658047279282177542813705335157832774386069218043402844741432153264046212082344045775651201319287816443695419445822353888407862242162452641521524205305369484572810596685685948331710696101153360401560457191784523757076945901939355164397127131000910498732254576095526634645464329499886291511150727371405717240721965834859091652378726234713874193112081207874174901444310941101111018466943387040423167947998401951575266996392106995529364324727490030987874105813334598559431170916363234374839771630881859067216513194264749288435924780535169855938555781896276536825688937969200159541841057068819606049868005874477686583968424214320612156505733414198885082540272921811383074817796795175744590226616911151232315973705682541702996253499965242801285406842995683961078090350527587658177882813148619495368397427849004301952014325436144253816806848685130830025357867917317262669186131039087434339356336914320676117802234057914229487760960885589201170628308187244298130372831915290106490028201354492139491253968609771360739950680581228626580342802140268128460890080075746341286438752300442487660310878301819000880524045010704247928180002199757348908930464553243109393847234855208767654135433726636844591598693989745553089426289499964178337182374309630296160255497532910134222570187123241848503414018879288987540542871176656837425232934462487794670219743192973153255562210954312997829215076442939737374496479992276006844717723795726040161774329281779259624733440465393268154430735347816524043927376536627106364492486289366037193754994397082187644310486686684694985193335561581790785048423469860099612038375100984134128507588353271815210764000434578031021791767232402330348140442208897909332601895004287424945352930664419349440062861149021301837862859401385418373002118955921954175647468925840510982683346109034239202742309822999800270409086627301039272706459907548572199504265304321885909292055783010020410683288315805493968315769467275314299802787138405515314435953224765456357626820377879699897718163681401746587381988350693120636329836797184769518873842139962406832951545179098535473038698380271982961890789768596219363466899759480469945470429659921038967091380877340794528888839743838585856473416108454098704594725216408942315534404019419813362993896127958793922546701400390004216282892346470889428937020853472473540823020304671009614345840869027470296631998715508709937752592974258657335979008831556705725210145248914110812041101432674337085357196304886489396306136434978935306549319312370397060163255780588741160957834096485208232975344359297353829635042200294499313016753749582523796364062118938354640637669750774579914006570540813448973771273578864577216069163573716882756819200098068382398049041267444230221828924659913543833000685821695394224336890544264700327949585961382176919188335329108118573093417837764807344945305449815034381965465582936319872580728128996384081467218766667631138090665433843040257034368936642520726142294615158206068366578159932498185562392047098826778572382916514631465205003220487225919264145083657046729332544491938726088332060428641458240850313916808429631798838602455050340851012404368552820232284885144650249975722636065110586626094599114650606076820733599714161123319896419050876442585035700678419272874534311024781332771796672913745370348113729179728122196801705202953071667626296840620920035895939637685237021941173472242383457364722559167931528197455928790412162894731240125271417850564767820543974497221449297601364798017494344203534111899545947769983189669910578641419507456945795871530852916948423021124970735776662662563745390795845677324242429199090543147425100573990943885451617565050073792737294896220829936139911267045258258179403057070976468490653234466417209367697256479633236161895369273677951659769745310881122843661852206662560362706880555985541799853601468644870883469344363281696607137415139194130316210978170671066586809283407506681872552662647111490665642216066924131530736988860556917899619208579358806104471867254210755317129379144887325600830811790744855878487775259561758013254514474591920483098381315144533065266508584493855771669443051243028862561933379444128744138046468518660022025117877732636504650026666847707462873399486504057209298220290898246220783074181982980800190000708482982978008173356344008836072216613190752838613585461398386170553441181760764575243340465786129179575132301483061561514360671582380203960149722676196557566274789357433624905978388503958099204578233767682995453634232792988878061388957261316001101373751324148473910329226325812451828336225598051310834952881934460476155581761485311267918786259592511004226621462629028327216720349297426369653944924165244300596519450953746428775171560350283006742196546848006732843380001238480293219221123386130515164311379654760382981634999993075875718935473807485608625896545741919936039530258166238671181692468598999554047832178144711504552585168598392704295051522590129059162893275944330851117022264436177320234594501104063491730186057903898560086497620237583181344238600328830767829477810005822098098924131795870026855007762322181937238824225849997763185598036871732261032274970040994267520365994995711053529046395648997931921623220225341763728866135202987380581105290255902363970561846309823380604197564871134666101644043703176622728151144963812724628922524793554711949430870706616999895711235578618721207664702461402294500497580873448579901047703498680588394524478311783359264189165122045567635288665086016707420489448202723153802437002060427112777251661228757716493804270280946920593427604320516270020376721074164028969106625797241504828843091108546698934432805195229689896931095607354556059557525777965132251439400049048655385530033267171577396074248175526067974181859414700301935489814566250150148553646723590270621551183760595793020196967778931759541567945304242998212125588283101778607901957556726166964913449268994426820924029308970701696538533104792310081363201760552053404677975593811606606344599246579623327373111771686748514269302916229783280270050987832794559870556676484535953845367678774121846373496829614978813885149236163366414456987766779702720071809669645720300009893956849000853154958293052566377736145579659689980087492312641841896748613706517758385055951064694018417258631363420131281650457611412857780748029145815699646641471569174169149586035356718583423477422606066742208431191089531988785554760063223077127950604050646832196020485160815356017342448055417847468269665986801243394321673760332791554695554389219438427812933874443394267954126960105516394632727211484416388198372153544630065864033828864630932269059845917728407249422255184323761072034736448726998570240004761522722033813395628214462357212216985920051012893328555236426948898001781808176624610312121512918045857393497168260143605197449536417059852161037120108141531562985604123258012664075302214366721645259790690483044535681168204576395346136515066672872001166879170117451265525770880067950053394657969238182620148691143475642115800687606395401821264419908397300969525953425728167885193715967319360561789555194864904504413295155164886520675397015152167528184331852487220025975383741026524626052657305372253306208523179149524451429996637038524611303886551344558045258773148254230402368029722956241460588443171385448474510145989642917293059127716448563655503872757433232364530561868215067774247450003008196024217256349263847886975592147271874727624474832700334678338703526562638415420728308896832095326144152768891381756840878144987279626631127357743879343458974945146936270740847975588755865136546213279414626981686937286962530334288271596948381325103954624665349533613482909305607965279887822870675837478135300760116969110103205278238314852618922459742390476512492048296548453041346482210442388517860076578002864421648292210849947016287868385818749048911883500379343299763993728956096787517567521972005654584055899540343162284589820999446156227880907337311080483305283261724617076175367775711431316135380729632533538213301033695930943367145194949777724766071170463046064193068058263773359447151041196025014467829297827986579117417760697778702159665978920760358417271876600132890593551451301596906250020073595516694936088200787026884071303590628251392428767866344714851405469446496395561190145698411286596793713022238965936908279738381625504802548457713107487092268234498834349812389384442341927033355274066689214098417774387435478468592160567397833763910966676155481790694671265652528578246976572502097052194990089205161199824115278100747114904218191539205783611742569125101501612316455422709072501388006628790080393574828056862662786881642409494708983865131162347498591683053410554783164392683869531000913560833201799708879999214678869017248126824303419034987977778665700592633229877646905203189091328771826730713326496608680337685921718093526586836759453788170700555930628990161561830109218126083176746355621467468104967751798567543249406169415205607578015715199651946013043829424790892204943341784686273106306655324045628711817392280081320892652977761779623981364910978990096690843008813610988188729083366339994241235815626189098197747696948792826930474260256735991076807166478506177442828409496655979462775382078601819254289065898390228927719805673418078193704420517350910644202952170211064907870634867297584147427165320140251583274364573369764965543553918307862528926047230846795307692737443557195375441156081270341727687449593662297974289595266865110644663240148093678362874634947688741528788662857500936830153787804446113834806579604870477589390006907177290568281122085524016529980445918976979129940721753438316133291641780760022246082476759865173065053464153203871308758406108339593829760246546386414455184282447678634076967938641539273957739727216211416589891042012220511601210794156545892462593042925001650826762844085530963115692729075548266462413145759802197997437539103265034480305772268276487370943402967021053667973529700850691007315444474398522540450733550749154661843226768867951848984150879080184953948321473121042445023089416580525430620463687359394039761794716286293005180969292967569154731656282997917861020130425079530754768832284664564602809496292134494088644566919762083535394043380997815205170929592638494522580084438175213265208003637047304608664643754362517071893198226684245967127745748842201479913859318327283549204020339567135358879324262746748410292958057727054253339213826948597029569939204980797079234440313804998789291165759069104750029485287632743752428747392372044249957264597238808193974597269483710718871190129055563354463446556654758240675941248771779021188811709619179862980847907933763223632305621984792925235850412759004590660704724885789668550491385876792160891030333529867816496689273124643630524722289322098419941959139842360158605486580383266255970097203591368664595804744638253377234826141303844370981460737804680535867840997728132763892173637757450289056057500867325022124815062686296790105962781463461523831745733967583580700795026367900154024414162709199404146099774802095656036308020739052915663607206571534728245075587638738461406615645734337427816941268302393641687729578057307728710588724038415777750273606751646131504994122870503238967161600913836495963892122409391206196199019456421186510419773042156728452856406588576369588651669575770563403801889257379462737297742491111064551867786682538037934201256271449795288988261952808580861549442244050174154977894241111278506211076672413062864085433702229032510214948836179369663023057532365841774196417204346330106370332058361968523024953902822498034972957084091444297034335490343335430522317251423099332028007298936611824299391572245921998753029958633387071262501937701810474449287545166221883606761535788287672604302293230784366945107790378661471209411953481646373972916795941934553862391532479514716820453747482813780556775612067185580538912937389140175927686035001504251331256589112176812981548468151517182339339124867424651039020827661079812364713556615054172409213289538078545008981931656184388045835627045293511067793517370799334640340672763561788479864796519020964225380134043123233408392108038993008776373110861782199022573332328076386007106089719604476856222035538206684829808398609966960416100973157990064334413798515268592860967465869778317022722258934390472055179426661510403729334531317304076662620398298444746940875457600746407933638751209725890787379912629352715766632700820422582031111922034999274357185874347447024236250161458270340722812136119038996856403868569484975668310773597014042402733636529527671127356914001162895858222795168652008451634263287026852336907526631462792080019036559108117716413849311993565177098305149989446557952838608572449409401855293478700780862071278432551394298243980595429515713760909087251861744983116305777005371064741274840681583859317932890362490462402886800989895252163763096193385475649721867168406154882849479648220726936847791100667961510062131141305255410828511219141590634936441438550489466271653712266176914130181493299841023331926608825479459538305425240376130737469366026642324957165069525367929467593695715366646693234143649072778586300818730368732206165798253168272407561540427327242981967895772026143154619665833774412295207196806376822451411644346579180067318563214872045071417742604150083218921468342290719218815898147475206037768099429798864597582228732947278161671802135439976640471097096319825980409909222054715194244674046903832922345784242152265360251827034230030861749255277730060714741537590994501845233678713229781056729256212610118516552942006509286227146360547497730915056641819054987165339092453531073818032765586626078913565792688603040634100216844067313131836034120772103068633652596546702003541987950281608189525433087519646214084803380277958435517106393280685295148304745284731622249621207369188768376974037750695509331345281321650390119580492404493754066045897641384850204571562636644091522228818831898877035704133129170237704190143053023603007320789042217363588915913435425287262004904971791838970809629649805085738430666311003163458224283453922343471691615780685796635696308853631266699122119040345358933725020699957093126906188954176782228347867386620534799370900494971110872261511976805289688794086869708262463027820263109655504073868862639890303753060441406203787833138947894081261445177613760283605328141382934837748405540252797783661880983931634289318692931657743134539159642585232984575115644893334223537879129273703960877796934313707788828275294529209691508551417621622143817782879499995310041605654389251030597434118223245884413454803179577895344762042128405382639596576276079555807093575267408372616867527703735376505786815072129744846929454760419886395024138668835051892168878994407439431576746113280165951741416305686236705323037365794098566351312669919716611313878119360414725205690615002008093032259948041651053339596374896336664305720241072099943328220824413092046409605869158443451087123964806725215062011597042263380874332291221361416426366715730985306807122884729563046234327223195249050414544763146792522676375267243187330538350614672658331237868802824891562065185078874661146204189614822598715439279305649693540986294441670350252658117823204482468502008845793375422843161489045713770038826385266025947102118725016869477394649964560964298038035596971329830713715972944022291436581406145482355488894090940455287914519558307795356287295711288819499900136152724456174366831484721757992483964355562210025757604494242552878120344356202116139515188630678495329579211219661957323741443169406335795526706241417842562535188022350406481376857312376199198927030610352486328328977763099100750157401776880584947332338491470018738345655168586049883216127926775229335328957339206126718068972672490989342883957368521009618969585211804919438800159467455927767471383777566174965825085829495492335262703800354971027924527191075780461809369061006368034870740696944813898549412588209716463641060816753759303406896214783268939368569480919161867586235936723893033865434726094525347072873108966146642743592440032765884311984092305626053776414222244899117065709214867685514567827016585172048052216732509105793855563471420699728219237291980208342045515032736893916940797165553901318405275731182332611223225084364571578698238509705236995274454482877344184289002960857624903498496524382151518957657904569014697342141492850404980039187223904604121563274826451690954976482975059480959442146541452890968204635744605170842548241433914465663885114975958507088974551335564958582458806089420936975417113534665176024989834211692002049510087186962989531155975893336497683783215103555911082254984530731641537477584895106736347893799555575966812814971761101209968718324120687670097614158013036510486848246718412211227330278380809035183110846636652160423655552129260711888807498770889576122311553243070669625325621734000884967301253178659525684353346144235722218370788080970636400888402793213630604948804639521700401803429239417588340420969499074845701825789457908608106201806518576154374662073958336374234690960492572565542381705412295123910147874922729131581687001174101397534312509107651842571246327841251275923895889787577677582299726137033140733987830314884476754522877802990231847954788777146013239983123848783945680719119773976072597910949172872208469858674009531542398873253086026346914857993254956602600927475684625408404029694824886402394757512606958710543319573892108097514885530217054808927201660903909440890911398123776984847990589605736174307240420757856847885988780169835173176888523798581014089242879884093535083913667757779726249858657820768746446304671130310519293080662349097251238480231876073552747848234807275766875380699718875782527084535019210976088051044509410625238149953478762597312366425478348630161297410530432468529097379275952119333502313367796535038130898131784378984627664576404338566247348961133246351836381622817950160548497492781839536626998347476187865163313872370085210977998166290454092708910399382237781277592076338937901115884866063071935921951980049921692624227659367841613695507820608630230830576319745613477295982767007124777306003727765316584563746197898731135330653106825925159295846519334986571773796500369664383461802793667502851569682821519046781539643378360276526400161420224830226799071793005966072138351044228292071081263905216659186192296751950772577583181678906050766413268590214645108053086570808491112673510111705018181198395485659523703274302781935183686501827638479854631748029423697457250545220737628889776250249559552699888200958612672919146631043857742764893942437680877090870474008738267810968828051005230508211284786506866425932153039065770837095447708009802169386613431011703256975504569349100724914706954593676100294554201933460621142282890833913034914421589551697458653325674025675161629411415949149366794561486126690668140001874018348279068972609864886344751130781897849979239985677888446056947075499722127001763418563983231877373645870497914970913467868484119701100725587845924821337026775560938019384684163622597319238634869389180947219361011033195957014097064053969539772238319688404177610571333111455152952062909995547442476969134095777594326206217207307123708438149507042405729845220566391600807056488969590445428760049321696049916795693847776883113128752069347636848833216991695148996071574733358788306097519507899453852394132258789551231607095756998012607512330666093369708733795027190833981024409048296217894016899047759200700311633311521840112533019220398788415292856022355248069471988776637311805509140112122963672360353145984174117667813289502481369617588025200968414241365942163582666976336181070398528600487018199327853155353324602491433527969292870028487175371938660419308305774513774575336872434844490377860072921109645270126810207672815089606174510362747066834213112153075414737754720295725908834843800937810875300958300580960833018213151432366881907468513240706361274674951658613483950709053161052059793001133708704800517647164529841194388157778127662940582615387617041041388464123413720939616478835614560095868809937980921687556286410731458091344764768540816874330298768650061971778265400268361432383157472972362581976370651145194120969151026452152086842509841136713073695201995893665833589598506474512827761854621910688096029214751140053613573753284547683469288122352950668345616125241230785622545589316258298388181673598787618892248402246050310860202247951174788826211374987210425887972185586146014760117854174160475322758626511649075366463468062911330520349699107190083419886460770078419664672410500543153270469048776031960123869095975118749932980548289377420005931298544020338063166560495659654247479273581052339400753399403672531775118727553179308758128071501786231480193926600430780595283080288849750562400668953539279886262065429784501652422093157233004343837046745085887347974980719447453378410700898336122976700625056883163575239797257925903519046523119008624709383413164564141575165200586389765390145426345988344472396567639536995415685059056648551350873279000637569520568127538715255315527216680777043372201726240592954802513714606856300782314950092880907997411054922735374541532697593285405645649975204575564461486037848060253797819753516862633425062851175635515201475751630042668269608763996551393700971013336875658779114604839195928022184970085961340113551861115568859705827387675346495849795732869572645437654830326607138227274245650828182587024457831622720112391653782099146160786571000982915310665656858502163283925834740508780218048777755396154542884861756912732342352675724011231463053498301959243143701271151534116031138379438806326324598775889392444948949125464795806411287214250970396091999410166702334081032866269890517124935332430665224264304197285609453089359512306402083187678046421708844448109423378778963773215941142852663768723340935038360386941515217204083001187752268829013520392759297537371952864739367568228144914635875171630278797641907041722858892769791984807461389228851268183588190881918642430118190632670298915686001036074057431711630545546073965646978704980193527303290835344079568207525842524632935203606219163141327266265219341225104212995586732628098470844149152692643880441838712425831223661220351579222598301175047970979328072561974717074155987776702556024198541718160945057567892654384105881098549850875589777398327778471161197974220626099605220913656425984093084948076762530352318936073226638687656318074801717257713051565076792569012017747848643687151232942333399711739709895326352112113185443384738524023088624873835444336963927270453501277825977309942630580750256278489789249770936818870718523469293271002107526694232158391651272057319537775332472166070355728071511563032436123838716279021008197744577934567743842009385809982659826905852977787163802560864894437708157391152736413473325386625472467516399247796809698295550295888774938574445472915866833296137783865326787338981919819465620208837892023840807106602924456712646241644900094229039019839862258641147055995610308635741701778461194723549680376090174048099523208450533659229435483657558406362935196639494838762402845761490028351736704341547258518787335317884771278265157805247836288454592819950967231015186053740284476586765232875505508476455881198240915670752307432988619997991117354931492566127600160240253579427309200858047647564516292244897601120219033349483337509836353620609992393004152316624486568496414322758346501328587983617036627890837333956214248022803898815033228018381972239908038839798011657680143696582333856057983217209811560338412566432819085937606315660442482097506610018748062517952823574907479844509119140328313671352708205758922848397302315474919919305588832303146109918760023954812152049147197739743928929794338009463889331001766790317280529672851279013993556096618496723581470711277677050845295062638253567941122640251631613922981158506102635117086667682591208822230168365545692662442746309801508077812055603123859204879911791915857578394048455410419643783323158828669412138627660337356561660802290260937230938571295871887065670487593044216206932326322928485934166875394087182026081628811469647981446798990920483034466311901039065650336757728203654547248962936034400926991491766961646354468915970447773404815037636893795428275926259716266705168042159872510522589778550269473758974926974022922353148107559205182988587063016302800034596826403039588477352030405788708560975636432754860599166666494013087172032617228405234419763987301628030420175024031671955721498304146863320923956196869829134273630180119513266172857295509970507259142247346472806079674116969793120982505097190220177705159164087205943671679314079799708935626626978605648129377752112463239689983357416386418760980750752968199143910321090365352333202186143150470390606208707690095432012793032765897400185972517644888021492812151880118831985276748772414638162832321456064927935063311707246668756570847230827319407139753686476192082937838600394184010521789555646298240095252950417875867505526397409587221094124847274882501252478828057990132696469559235791014734514020434867529486996780061137722068308410585637508534456416888775250714131785664462153153345553780847496560804690291073204181519701294689427896803251207903966796815047902681326288644179601804857888417971046549885606679456264648829579550924216524641703621142606087428286031947049729494959144002419872730375428537886319914321579981851206514390467149951786295895597724474635802958414435113572382126247609883966918435822000391015630202264110909639060301058690951828548409810304603332232009212985201381218547542553388717450215110848223985978962015507171667918653322481966638768477664480111130600547529053947540030502073423860862912772572948202825150784728572530479498215127812659592754115317139727198002271928805742310310149886022937106829449919188693068961649356797758253727875154162532342213947520871170465072162361680351056557133535477691907609379395324799943342881041637292028569956368221694610027602634670066270995639081062562823043450200345992643506276806683321239257964990166136986681962127879643554756464103040617271073299836393018690786577005807839909823607253445909794829610249731592403406427588213118206339487512301965772048245579778633841144293543762714492108512702019972791055992652181058311944721018554673358919183912853913017530035552230572199886480816218825702404378125859468188691057170828560606971590337885864580705155783981953109604849033140925704098345919211023120525074324910242005967457430036106054945119830310299149031503226519232839994517185077037974247132885948910886133847407009607182038527322083115911687894536564577187599235676301027244412961950669313338395123966824922746501394582941457184377227023900281384659851783496483994828059885994059689504695620347903409063697649767478222511223315371560969099472134363434713085131657327764409762600631553902588544077381477882264619090803559795666058890748708163006361564860676396997434532683519615229795079352602509668699445074147274541061927862429975786703876851922925506793399571113809288323872143671566142300343452963550836211374798338571033192578624389368649488977165634793607714961457715928985579760411278263585947125690067687849412905904141281170891873718395487278208397123408881857885028637184571339687802246497549524889417681212096922493524607669773919014332408161159366915607277131978831972301121759528414890595272213317367706583492521947305625373188632281141986709546913118552364815883769993227372657103292295115769814008440789680391540489598911389396937016529596729849843424221496002158789074546634939276905641027929475579231988989145245090550952875221175481275998116229735936400233540192615128583683836468762247881677841297845843740937664219526769763302930556947958940629016446653116559902387514699904288935243084336784613166181806202132867857513396684386253024384262320954226708638614472222267926933582470128280087727872821348042350028448729053894375192205579533885189169766007095367840079146349266994935816414672783015115558797372672171373958492855575670238219812053223200510056570076452840361575639654539476078850588392513119812491657368399121758680065964651208776857425310193469284546659355486184592198556474062158330385521954921925398407401618640419257545623706386146135007093491211604098652955717621379770277076181378442849976601365603605682974114213002162433186735788096636922298462324832354567082332682160155496589242345632304305415958026464549231482260711014747729192061678109105212836384095883430688605059793885941143786258597381941727212241580691910441038303302612262079093709311732527006569468211904292709244506063800461549851120034004647476194420567284962121251060367537446291068548158713543233519722940912358277700690613408070671821030359129836239277743745147685588892211082861874405556344201745808515701723856754809674158139693594378339428512759656677022092692661411488634060413149643362829290399740875491017662657982905565379980367326694988803625725576067303798746968473536670126126588776857343409167796604254953781856562502715619424665208496231631792105401910494322170056128561977831519262682142039762651588619244044015223422040015793013100042471629832833792467062728535335175587347341372060550981380631710016225209216067250565806717860345440736954075397575217329508298088831876682615152494379764499210273071245917428230801315507739224975286001893651829954164513971533336556174056119591990807144146208255879741169336780406034791458914555348722185485936239362993738872980437005152780323755032671615900248312194638749059615791830389168621537675271416168903901783844525153571048783321433667550933438497943493873127011836754700332272244708502841484172462330136484348847797061987115539350518594866661723209026877012041517945760459083657203843049810855688795982644522281890665990408072226910553764431795477503069661712506377855391488383513126076199825395034687363983703911991526098820123585810649376071445154860422000039086707889622849881052168216360613206139699825305673881785033606965225861789373802896534703005567500572107299691433893234432851351144286043553735421678657267512377559228157779926183820939796269029054446445662005551634073663501524066438255220889675659914945126897758623934972761089506479494290474784855953587106486699274634270217057570531965011521605695774544062793853514489045290293434417865599913964981301645222321966322781538403435502469034775023624457012612383300550774693900125028643188518022792280935453466690524401431700485725099619390394729138949297556159451205704654802845543154607949619914288967059623346556151112795332000707522391463894995001838577924667837514253480534416823209029844166008728239401913232919758006972054173466074640559584213345584708790683305327585454944950479442125287309025816167120839603647915207290101394967823355503259421793046557531357042093875243336369265230817110427720168959462348832948148466406079275738169519653746681284157423544266896566424954189363600436818774448932319878577744900042915998873873761310378558223776579742121606288250699351342956850443306791705447039286773583920061588125203227701832148104368558084269989702863835010703380636226288579449676594485893227503765697765783008317552567658069975387962573478234289911092340594202644235151276487530375423867677361021955119468617125384486047853181692070060481356889239774581726350897288664978762569271352375550528112491643935991966150152572222682636948514452873355755830507427990637421984843589003802143670563832037427449373946889492593286172513393688733758346038703050851795333664210767659172370685797073506115107477266795533801626252402918203977705940563176426278567153074796450806615895233508709726916003179487322717139342038821542326555690626206567853922095101897282493677998263656074861809630919444694912153077943205847529084093748876952375980910143341938371758003024949332465949262770305456161674033804477481708259670061063499596062310358573061760079010025522422222600034088465578198311772957212126482932162670837351597472350258139672233302910752760589998793777721223801013346615821351997081895682659788589606112420432107510110110043746327817697844255967773185519247214644145071174267385764728020470320029314100532070136564094871739569937325312747487318687957080918240350691275498164371856407491918679461224639537191714130741450379438946700685810279927292769547919581115293427260409460414051767057013935567281306561646907505073618233474055220030879275460086278417148741239566668060631605883723218940327750952781634282727092584270956751297804388484901113942363604007091561977432558383913555788944304788519296908868041573012945305772597539624311471389905394464178813043051552559877206228537223376757341549007400556229381160916295722914874412014229633980327466859956085455430826950969066258131408241009119651498480677271996435975537705243816489411107301025142361624963743953271831681056365933528811918455448739451085782778743688507570453257377229517437890402630853384038707858110641773463264333746155824166627616780383382988376262880433485401576063827509475520684898204934368990333099714398464757140746656536393366861447526257455381887882675596629387130555837138810407856965202710478625330407685444471085113636667482786196099099277749653018105390344419198082487516158073941027169536843082229784019956794274094135754763715896985581425770234079137350213520019524282961620837310955400894311445037336219366264440413864386486992173887683180674889762904227322343668953979757695874075724272625712333769827331140842178186434392136865149939216018516603908035058040088408800864514032849056312727054111413315615940557404488615992404504306591710383806927840682257257898373069834503229861918783391102740129485560498340638549490275669457370675567313716424047431315159114546109999392091888938657029562113247190463595471768215312800476818359185170963661878866402328600127804704933182352937592835304583875863018781164642505666551543978461616654937819058167021113435367132066273118921171523016614268783177140652995796954711665923629840862558281651661694526526480549555547751089564889345005561198441016996501906774053171642612107830837296393229671137103665124553879118617099387411363363551215207280009957161889754052536735647861608680449399130165638306605624272473558487335573669394332906004419779112219620700181511391684545413105730809289780255185311925105071921621345829890456713626662325636801528140033818118034376582741895735318305342878280457318438451643579563055697787385026595701895337310377433409766346105706055425480311467415204962018416645260981708964264015447337410497605737860118726133400365709635969500128060935124579153252726559304397920329055475575065268868116184705865684215580574943064886591898801090594388384915678144429977444920809907185061875395079076846511021607202526995928855223362941480511053054459918754438033165448874423966789975949357093845251392437567096442161101568722513459729759975843906808290961483491830533738488167851043137249390142894246532082095231894647687615904861427806475095232637283763424600270123344250592028736439324099953980221442134864125467024834888080248585959854798939916902988155062417662672819638819910412139508793396398582699045276916784227353062259929274167810164595185000015491239403408302525731830921995242645609140140366156923936231087572713045600549671874906928791875369248405883019253803627594107602529253014280523367772838891436845011479501986481871554068891020643577093895773571156908383447401608982187471164027226221593441065949865370273446412174164618234041738348437892070272581916735284890895204610735366531247561925668491915855484367488131964821757284893101512703008871760912916647219761963156392463790775222321618727932386793421792646437621299872744319006449441654523168488245541349190586871083312310488755667063131989286326812950240158838268061825864861990185990570655965556635494272288444937444711604562699184290508427941133926779648304205594695927232356416534094124037778067665502557141035013928565231575681071241486629478344270049396578984062818746361017992716733331119633519885634151633937733189631756184689309118385915014891197502100734528050964960855557057722173860376978323791911180949291973476540160608821317820607157992518818244740269499287077299817870056684062332565070492989308416370121085153104160345498477690320427772300780114475767591445251058035568321044075179565678088156762477669871027432853840656061494251295798317932392201038683523397914819730569908271492264839050640560648626447396594180120338749700173933327012985136622550841040005417377559293415012320247003679395675730233785377477174849180512285142211051275984773567303612473809821325845803046930189953404937436978693518579464947243029027124162132086785899319009087121798378998808652929296728079193638130056406049974958862683552949595570532527802210908579280660755965493130190995441875071289251601723455445982718753125981271006633599172830842401363142988275639965762573595405139160841154845206077740540217036638071439980229538383218092439131810809004143919026258104108468983932125481055073792922463906758444392370001200318948303774879124838655791460145114279627762971015603269777161244876257781206574473954311711564242706401919799315626616384586743037796014169302339323553107277188379958920781108354991032330810063333987359861993565593704475787376956792307699135736643212116801554253067142339515432841770475839319718948548626754098903787498934859361751785125732452522538709576707044257276822042541740875437236037805585868197995580011116047849469296596336712946601357136112794077752721494313966237636928492008293389089591067702316058077405764418635488068548578603307229076360585674895876880011463167699702413782627728743921934550531075422521137797949588000098393122478292856788147231220298706663034668502409245067865003284788789198609111018302012609088156988993025640190394292266210722681763284109166515240549751872903105487884219240275215596662272540330011849172532349737437569382362786974604558548938971341738020434561333762359516373138430842314430425621299694497850714740451640057137408019867360622352236746836805865365581194598395262693663007192966855055206927863205915235754531722005590378336597788944219869952882855888916300415252244857583433292912940110168002188261168297079045161724555677956121577495376627731452786132326288026560042952041204336131011593720521732617376342151795885244953007557263969354849570985082815492199496108496123117180338856987107850708256734092861420783256063402002766211655083881033839086533730371393920275818312290246182632091028954342227079444187069334424866584456123320561430073708416149485406465567484787802547194860505448780325405888695078189425622631491642912857170479007711516171982310642444639803511300410574516919098554104429569184551271602019320707116737374286778667189500815123719086631908946648908488849225634260581108389082725583242787452873345431242962618634634544949731428016111948629640008424017729938300019326404178083005989310676846467993518844701639756864082058613531271233572286609417766832897863983163273775762736563920485022363818866358111335674118076161523685768691302315944919479153465004290198307075402959981210290629916361528772154738218353777357256017351957761033089411911414710864234286122020955110756548295591861989964433873057963799912326301926561680152099516761477646193553434909306799322931941019171845286599698217026676904763296939441940529468068602949180567093876202660972611882673835767569671528461560165292026802633586889539186665280032223396270606846596496615099961655464423823598687405980070215034170617411067038435063910060899683318821060955114540756934750527802783442071394636300164325606229564477427265380660311298483660281393453830458290082809249021790400644853584121322821056067664991562484676996250546162746333695368001503917983400446549040486512132848140082288099399682103519210430959227537172271209249466500915765405483572999802273231995644301094196367110026956991013745771448986041191653295727834348077805197191765554282209410062671689840734326743686150274414648822310949507691833897900770752262936500203519779036087173051989467302245066880055843660675767434222905336631859726977011802791017049983993561076667313394529444322246312718092346515815036950759626755633117552718147216809783005394219080061903508003683900155744233387154656397703144265955333824150457747727366829135084602309701032537841437476473595624186436114701579074094437390557423195156232061517519558940872687146101813000157360093957402515386523684870245045290119392319729292353852377449075417894614436695383058696780239049011854471235319673537441354813640084998920685618774475733495036393164686349664205625888275943965871139981543595300719551578098731887220258577534363130425686717266564227259338102234605702985395555779193270338931852222506432424798230772449615093664909582365048412348894448300582399330520610949738309238709585426365618756343567408176021424416163309327990433082936063574962152159162390828479723817600090755089792622853870759092038515076864055779760997061093058187993609859444382497329194560960851966976116203348285632537326503163833736518535787994001289774642974286632515344066962197443120606662165423089712179211131271675663386133011767630155845816505009533880544275678494729557174763789004459543328925646144338693705430554290785858401244809468214826494402301595278575696316482721121960794507254267818463901058465412629587471798801038742300357723952760561511948994860957676098430926787414676387708534962252909951800153788942157183180686621195949888983797272058609684460123320710642046543950846539008998859648182036024930400566174472538093625488153142240994901756984514182102764375311373133474492835678718832929384744343332427899509584015146662530830464844532133385731303122772391016052138557738604580719887594200429074308791874796696374768706963991730369859691186706079972727489633702961260749606585587831192700141748126691740028191728878787999903188266053057074506606598563683329652427892734003324558215627701173589703846218889609167829135781329042080248200805420912430817105133899434957555305988981096713772007247689943115689984114302809278589234710894234428319082036526009276925082663556045291466450843186521251777972200477317649166265752590747228845316711202405306674753024436924042094573603522014776600617352760666520438949308538142596234674769416704582160816071182381228695065349045943272091718848912992206322362344718410573909268948592621146811492221660669866794957200157668865384235739261412165305110826445133384019261979588850058988223879346310600099254581457929447190714365595019041558738856252926551687586022416564106680748391656200881558991247547150658293793751532835369331362780592520863200362516702561248007404492824235535402402107849407761211829286918096986628704655465645958210338875565866160335909733172063852512552539852751736203376475407980870831582820832978965512924723515621929557094160246744521345055051060578812321445869649305604160152468580868074843680901899335808118218865559270539629171836499733393557524734070040441383966690867439599898772118280999409945788966493844732822176319905808527534468523480903393756860083810126506054370319091913741583027874006713687540834456812673868303782849792405106603857701872499183874688249782492481785720686967802520024086836488413039942797467556441500160187174231388831303482549413161615500199439645125835200371123687026030653506323139336182750086892967596959161646811137392649704738131400394666659619055397054051050324133722720863416578111637234156988151745150464617047027442159229248451689230493482691541670855614451442192661123156426886024138567199495573803984029568806121571372087268909209820888655297269362394140631331749882809892828326409409321826264074847490685547554784272040248198451190835112816604061429539571016904280126328086297140866878914355093922908222374106452216349542626313751640203596374580050574497045442980364725728396945560620216053823283319508808000280394545861394504077330216364145683102886374160968141161397414017644095097736726912792646882518382504110447387018015882179722387021615195818878365963758377608560844711535272913614151840787951669747311815527751532625423708128540444675115625347951911562358783012941026679792111725776017544771308291621606748989276792033028608115604078275035334902763093159173008111943322782231993437273833378096449810960302642015604107203254869291496468884501852867789996702867361634949057524899285118969905804447786475209972512464681727448952401572055027508855521064636452692076112391460118525865638761673404229341472491164615591190865318321328947325363429604693421709692672857903491054565113400303073291966965019885566813530331205982967855297132973864163694805731353525816249426241992603768256725262957370398051281609890808046462011177465074166162216583487223472852503316705880690586054573436836460402684375822031893800244103778546001364704383497431943460425612214438123663517160971363312863218873282376815613820650238493455629164613256682510599814703267942554783508647465401047533251051498904656269295652509814030140400139422086523349127679725005492717330137918708446403357915119013628974745456935330776051070930999155691234016406388650598997089396741550318052620677001006087845283393144400674153587118112960836416866509962278937802248785139655101106691233936259469080203415611824385934031142848006861804746397753113821654957339505861282933141933275886404013100965068884113291328680131022587364907524130805426080447515326028218119435663558869883362775554988060456293374320199459173099656387770948181227354124400094122989772843374891932330281709483026472647861478148814217487203117352861245758927151476681066344623568862382250473416560588014418168304004114116207326827995291879111047063198407084789767089933003786781001392342310514700491317611798498143531505125481195202549197880371740039309032924086035286323309177782482116224792264701774643221615297643934184631391894480298657799033349002637104792070686957392956867917967866123321176491280990792136706893991360854042132523047225337337893022867675800424137013756959995506088585818685974772128130069293007575686940534237534307219260349389130140665240855000534026616062229253952315671618762194949108098820713592390541069062787821633823461411335390683007529777713653020148240324290987296060735332732576108996423172144446249310570147983848305850614015252735119618647388295726918550051445280798907766704084639535527697749540635858408064583796594412141989485634267548546621088375859713744363992304511807308416812246079558790277571008218991953035298749567859981159434985245139369181089976446276113116498443894039714504394547162499502310865903906757090740947716698795624872317979642928151538403723419690396983479363936411476675994830029391312038438353572177013559754447616049786769975693844488758583771454257514119892329811923030342639647748028488736505607030609735059050158447211696581000489569858784244403440412330981902335034598140794573169966761669143993875207041277652572042044065612640877473410918643263407527735317662990643149768343713402133452911006271657575897419417168824762395747528894366305776724273075815108674912389069230000454877454892245049281483324829924367882671488823660375189786011548220111619319919011811352307169365018156117117574360952192691684034047020626078290724865017198878339986507274239858820647105058096449081264661217542427991450276019201050462928076437206385132802207874441759974207858342843692114655035964882187536689795994630598904895265864255629448626410370354682392279333857633267351882291587219080572809392122709186389737284217411003066127672966960174692006906188093024754850896893666802357370655668431081392770461175107691842603901948138540502406202563600711617678337749614193842799877845842467754418448945470872579975738748855930154659337600987647159225198350399278976732937460564075076339709380394943356436778772308974338560436474687523958837744489905052139113148945983766753552163903394313039869134404609060298283045852668254461061246506100466999946950665444599870381649831309987849572157983587518917488380972423966566011474748937309307053143858834614469161886835229234864358578126536012426972880352280090528417307457180242996387323773093416099463527903301587318665788104810806549910408780653009237493657031748029720351311560492060136007990828998830101880341589828685040003449926534804722916898809867383898843332683170036808451945634657856472502517129488603012400361106849700985995596467222480771300848414194199309102018610900735470554446128407876647677396072572704781572008541604845632947147385283860146109370185616260337384901219996050046959856193889653555258293901762657480472738672002445796918333751845183769009383552143277342140827367217231104885514915857071942001736159650059672479953358277200317293889114079031415748348338367520252645031630499271926198502575306366570837053980995040480359212737797842620422581384479691715051952161083550604733053404249438029904155660228053949064170044075167386654708281474460545976913679909075922918505722702464928853214888856210598531248727733868223596939265717837984319561589429018098423111724866457350743924427823179239787214151704905930956302345992322051532090892957261831567638024393500844764058044125045169481521300749458232600162175991614654285268511076057814619067515132871587221700589380031755552455103809394284821372384734412268906905669587677855911836984357529551429500700021138553135631051091606079568463363135595840218483883339339000053691158686657768270588320161966990592531813280803284634088675183731138639341660141017774407896684540336100169563117006377957169794629761418424742367615716720505474369927016446406375487458769658878954835026301600079632239555229718296491562999133395450171434539575401908769863303285613692290970463109479727151336619780714434966689657082308612753209475471288742065171242780253234859341371503580128161383046976558418253049783915008982059257719203731555716466159293548671545462586411105006152123004529860637642152098377127467792563738178902137467801014043165321477313612070056680914916616769715195373646257465402703722541550589469863726425226777831668039837248147233318094206116972387757903123275481067205200596933530597569096934958408556611084546329674226578280932168663920315460194287351576859515468886438576364895443150181774339699871007039945689718485475565919668955794478965235962570956183572635877081595564894841193192224019470590079680407203641926557672706525202616377408569735159720628770695691190001215568585559170855224829258711012810332986235903645249098003580966119022066025099064683106317885378688426157619439312218580963327618117233016419035673998072702482384483939147849501039314718969183248720767600725216996314696226096151871189809643844974935396826934671526463946354785082263214238438737617453294715661009194511734317585870104341620817889771714019243874297371697289624035367995569638122349367724019023734050448747666166075388373950274282786475063160650834284391652472333254939137704829347301061016749856750911726989103441671241378255590478398911594986539576618850822644475106247524386333581919592439457190554755987500572779581535816830869357451999410400119743591513425791107330866778166483546112314259217274702359594625863901077348192763943774639099034986798948158888645864831666184497513506478895347174723722128179198750386257251362206351959369031748646257715759651775292276859434231977649324052091717399056694434410525156431453206061872982520476080817605153330937235894389023268234643989067922048019937778004476416054401946039161624145922863062056783660107241758147491179551144418670078266294641377764401731191546810519625388649946232016250682094107160140572688530699535587420850771180439228466433125993105007260805854878871161921287608842546744422865404610819632185409636153825332122838908085117806869648626224686627091858596587680016052288313402269992785592339887960086357471567602030018595435953049038131753842850764400915027878953087346456904451103206698660454878240912659909985587191931019978160240390791953973617344370288976065219899678444999232489982141977032364510028368726268247974893454699161831999095532955430425929576905392256808328506210759954775031781870036938891306536456298778134227513823914691261754355328255926179191601898911516423697206853388035163641246042244363787415354243326879229496161724566089857326545365046710713052074718300128578473530588579305634027707735161228349900547425833939157569319482878790869197042104987135779494436149322942385085717628054651340014946000246779758270396699447720689519007774891921070594143710509643420682648681903353769591278732813459056948433097973369717277214252075748455095351922482093221121090392985135014921762472069769010753955823801499186998545572719504005700482322814693504482762634945162684348154528005727944774332206604832859764875239108512432443781470886495449398338004928531536758411966468445403818528864606301037689442608656690942950859874012236887504526497045996235566764059390798601131801141588554846655703262151927482602187779756463601433770675228766422324461163999480828459301205197605659017253981381511024340249636586893021959470722047093024707886002752899060644625700200293947668684292156023357021714598111745451844500269487855839929489590545465190260539679767480858321690568903268067311296275148012932394566091320112542077706234459385827665302073949672853485289216872229649664372894158041261704573514126301362526892571967514183290850926965273894366234650766478230642533188974373171040582861894280681774200314615946076507923552406604860088521044616727587831594093855092115126843307918538441338037878180710979335236753235016554544333652996895644686437634396306907978544541072778081089912937922107462749372251106140939217743052471992596329916800269708437204212162817805956529457919586006247011869205989715644316331830023797580944904370258332070734061110034286391652141767455083997859426645878257952295905117550311746690067512610388346185510350313397844006520620383663111716544354390048199630540045920074267070498744525929400242323907808024843646555764793194655419230553228870868634840404834424296950020773443741471586116769834000157267713385113198522371466518787837486972286048243104752441565153227341357766125439503394716095121349466736507911598876427408324152171475562699390811724121921147704789107829964195347667145935444486596055990807906230348008670090528692236810563237929264360671385376792480504688260211872371641752440938186442580882944341533613580394001137410612123327991609487600203675425222683376626220161062859717885753782522641136130782943374945525438300582392100458517785828497006059105476560980399592793684327308727018656887174537086805815308914696745303578542213073501081186331407233691777905091384904544007388866899865080578834611528882843066805659848451348240572369199351359173266399186048339163324533587257125642615778054928923628673583029744528339879348571122737866635059473266228678025111196425925866968810537787967590522518177368790874218218724245916470182948477892280181992841410101725170895504089426111637042575809254042034239263377911031447202675871757942153066877862952659152612588158312148761438570866291349182319427328290986719607938400370841728392354319329987637596647701946158033542515142209676418808110999255727221483277500714440749215173207800779437986121077846950256930023581727002313559615094621528763592897341355671160304357036598000471109012395832539926001630472007603807063936981727663174331144048047450937315278507783324529509786780990521509313959636577981665206502699865821586174033351117821300075685941756669303333901938081860617597742617030098627039349807581241002698295143007463664473602971339583924331599309612289713856615833154156767555857607987301761586163052717055153652004839555602727361712539814140978807656707194352147410551594506093572184315166989805853517809233934576523235579757843477164904498437536417254046539481489622709273153044106643892978202783851518084827334812866736895334206221153590553048377917510721527711642141742620572152813788745298049685053425551310382629803576565391145102463602510411214385155495263071938289243121417884071917500292168624314356000547598718777798105160647993621755356527911209286311860830717609447504752745144957751676567710560566619216758864565218894064141417888004827247346859213691154476517916541635601461642924986357064015526920977492671390518591417652461976578987819424954586707085117456056892800386401492211029550891956754839250520358784662602836495856893757229356134067728259401075410164968102783136168583712309402902256456676610402444297540674709843522625739783813410717354486985887419896024281861784370897974027223810020411270929763332776107896231177304905554048505105349898948830751630002665992981849285409116408162769334041116296058550520982491221683342371620388407574849167310996688963695743984381227523916134736941832423433986241917613250778551362146637628916858711235906447414533160603584363856354035530306601190788770000484654441254632721742359624179285260037498428186706320180963397388865118998020905934173253974171880427601839888317723147084520437354532286361252114513499221177702607234100860009194989353036834064115284344641404560325162500598546148919968255559932553421553796158518614266435162740403440549618021978710160161852243792963893017773493013521527266750587304975445797459499324804252825103174532528336164359485121988217228330417612994429390654861735845063080031761842844546134063898653396606405735077528608839559999149385735605540440644344220974050090437105582118145263229457382296551155949551636262889780246242550917314976175715794731078533640556211080369283120974715295301749701822630165037401176064017322882568822434713039407508557787652672155143789562603886423939589437947027564292537077298376568066674276028154010495527826548747590561429872767688559214069677304605891628687092648877529159406450622529833865156711670534344007203287296185882325512061562474534173108241488285647532825671136620599156538975309205075421441386108550190074450094529594981364151145571765444248806804265916597093965233965845941722257961770072668069820057280939423558511218929750778791320112836321461378721764801692906396281700394085755061128630148689867829982835967362368125228047742368795006406520480816283519780561635510639258501073474301803536143663137136119415477074368120572729748494531441539540943844749444603412867571212715435329241292885186982074920072998748719677801505070363645273740500175615215443495630668590801520602705408393425069082545152234900266009619880191740772217138514119047011480106005803921043717545877617593816134556394345905809754594360110752217594837473311875233564743608661865470621948052764622190477758264394135104818179688802558973458915873445054645744657194491154537997780007755459410320289132869187467859573609271017720357068344608835260724687782416566776719747457381737721874008652775609636857808724221969758618222818369492944999622293625688949672979519692834845269849835358583887765610668614632359030090180755258210564313589260398444075815214147974317821218730490447372933953830098755590685559490551765063212833477221333169835798430073792784026754568084980166681348856585227062462802047117059216491766330268702863533151733895610008023173487436174589320402370732122687834384545229021785323237513640343032479161182097897920864387835683142994243762089830173518505094584828632960457614461263469051028830938534952067476378109647372585938886533705152461739219228926424068649294230968386529649724462114552297286932701057072085310737591094577375178408076287827552320304266218320425618382851642473796431130619059443848618802797290044642980191772246013703152838701344477304537288836527534722476201183699221630419030691275963705235486516566006920804691934002244202601730575447752629377162593176736618049303405019501192440321976615793439266739113203965566931479417217846395501448135443153170933254692464305173212881360837591006817920180401371628042085140187113753760640106704699013110060726544444169269753719793459203941105106719465478578741167761090557608279471180714090342739345967813312397092137513511313609583354505077049566243332539428835044821876104365766481751947423753070056775760689518752786516768961826311124658512791737512821357257659986967339762820231277756308640071549788269403995174055720450974594324761483215086767728931875296918426661233523589436644596540260824724332007172290273115768639358347386318846127779146759897899512928297132027242787623663762216330505505825069894624851653633693823147891770788030366284585865197360343659536420134228561657258422686222970761148151334167117240828426398483150222419989291467898082359708443251237911990359669640603970784395051264499370757521348884267546399143201397853709114307103377918051790411912869830881112029781170863366354032581800313998893634544112588234679873498190575371061930403908165659458675444843450775495444246654594948884303396316508055109127022706807604553646370989034914975661359270816093643252365634736808258526860102281174848772449136130301272649188669823709831880922004565261216560129190290353465782649542201249668879345244946605502316557689032742660266413956087410932719304605199594727264238950171881577355055758482756412068212543363759418887642595039942358778178868013401346189194001431078695639847163469163471971168237256575262630932335924304700441809048374462431334985251689764023955278256983942034876454112010040356806340241626735647088573065976304310130701555386213247475637452765831951212649296979696089323454586106164468301717734195537136200641514234706699635863974441742203373788144446553156482305119636128566003817499465000143181349188200180760709183765847923839783144772084625460266989354056228502662105181168052962247736511323692734426157903376146861855260684613216736808361623761675604218323390960503614285352977073076560384335760417017991627671267895187749280715387267959872678922163970387968884905577746553514877402269814497240017137599473702121352525245282295122534564477271579366776878335671210026850767128572321925704936520858673747356861093642662787189178740905921085741641290598416518249469657371849724550038732171823811795229197914153506187681926733138713972301994295226696321881279603020518638974699453726963080492603988268707337234057470106464294847599816806199848856702287742101435742662744717377385264589208415014179387161352611256338682609264482775479235941901676263440123793791395856392101251624877431914606783497981106251655158293570825218299889142348228954705561614145624130477573523933014428698075998497067838566352764819595970412840234914852038708934203068775515141393783430026519068291981705070415153460444545644709293171513680858494131671364131579420073445156397005042790624921398174165425575432137944585565621959164491268066355998661616272326838784043304915651355432275823227584095177473171354333574756595809739231900627208411941372318351417784951215119644026651767785484832738990286652283096838146477053807437540988322722259363574347258066881105850263526042915554678510349343007349412499919421008690294450199657596619202812371360372822333767568382261708936329818462935346380137052920314095603691177289262641525666163728087076268837154143397913131917100547215887443554666773428719087152634105787884343833568864404384051526253554593091381928836815212921582845695603002867831847553935557564773039350082072532499520605172028852370010539389263225945127964829733264766032518110514149474190582396470982697057600004812121245991814608489256080069570048059099692907789814117929152854160674628109198703592331455500129981750379344633519784773168710737420887244019833913725383438204372478467566815545617773862461432214741054715949964164727258829910625985182123569755573491298908111081010009376982609781795998178584016584276571110596752976987483731535135648910831970279700194051859713862821271683392586822956842455275017207160982191238885020521353887908418338287931530887890003517568543475964419330484427370235849975780387803473466368450337439051833388661311583220824770728838125441605513787671441171195023506250626545115488180684118981750601440573514267699503578529585563580675183395790135198633649844343476553621753564006386578907381866654058404303318754143398872786958460106688414275178671762138217556028473453687503428823130521706721025988863318930904034525730723283744239384893579219208819823671222479921269765351805429640267189223458400366912488886483893078377193211792633518289964505650607685155422270763596521559847790336429700581135160187494742785835310388314439724654005592610061051017368248738197045489327986425331416493009567630301619327678586667235483525617561948743204614914594633002859261287849734802713161271497595459959473492617148973367786939781825127568061569290931979288418247959430758149680507353676212183865575284274423470228713636337535261103583464171333213635547201174772487205719686679976075304748148219763464231988635158819784534405986038029765220317392356598602730189044203267147622267521512158212694312283552872247588523526643515713750173770170162296624120157942434552738586370723849668264721710646835323364134021926621440735383330700782810102552352398402612288902294327354297074456993355794062946390282896411432718727884257743958627356039185973315274237115650202753219536862829964699518884027663730800814485031492442528122590455377779251712528210321589975967559930955974232275731089830108050369055659338444265792376603664458213479517391299586714466590401046974145697982523926773589863170148886528311921352014924200280746397944544585847880871606931741374373372199424647439416619191510577655768507113274251114147151719459261366142397745540000542401695320320807569166115093548312296740611061563908449212047239730498566935978354848748444413206391325147038940853796491863794911307080168714146019204091213582834084070317758460451394389679648633860019306215591736644777745024008527826436430858073780476918163150842395037389699859645093640808469158322973242614533511851117189567861211188760061025595897980223441370487596134727949029797247205852880276484236912968086845389790303104865666346632501136607144156756677619296894936435850216349083459562601004432194325944850234251865264392869534798052993803366161836917454681202160276153973916452816371639604829051523775411988053202518609056005078106087301944300080046616590884020387717531711178084793953148879145827162178974555073789420262276539945649434967370047443035090292615619461685491966889891193614621494395689381499310000198657870366084319315343615277966506765143683535415880056459703947949547104000646325635201491027905013109555555580828869689053604905115045904606921457132747493427496785043377819682705932326096580967938662450451270336860512881930288327443020690416972815055919432835564198281233676344230630523471472220247579689309450757104947339996754595238994025923045709087730461301125419969898682999569970760269240030261614153773296669325225680984289106600719515808572010965095860107395907894501364227339737191905970306160841021109862423928975531320545238234250800408362000169802510334708825101707536413437778111277494304410975232094850287635941644177448732958200505549803729659209527767830134469111942061202834870698892282555466655090114065393256049813441436571468900702080786109208056168814927016622442745346677303070718838297773932607510378535695406471682978862184340584039010699528877290933021727065448942747954883639038082682793477577728716743720686637949976958325928550604618448314639078883414259395489132758570942409062162035462945766382125264613772321192591387016934258311319267056641426126635854489171536560783735440621203529108836619598181114402613761078166744333943043721447053778595320817299877005999601836006367152781605722788921339519118086150027722111239330292413303616393355257150835704117659170696167462157189793258841299168183949579400752718598349426533490321275615601747388785072010116190849088017376242371096271627350376797711136428823230251534874680856766673585243422856679486367903749690451560527470506040278910353766732070033791513420032250575567059350153455955726906208631903960501174301514815123094657179497927072038622200889289091501732456970183070034954132491867264363661755590865587102662601366982606171985853899940685655682353710018658657362030713499256160247864812717614174055482656508530116046349878916280899264795708857352379313461879508649755032323508636786312769960357052759195740505542230975793945488846028878667496851023874516922301167400263547826264555631352084711963843562830701696895704838600422094319616410975711381582461298956401706250491621656040305174182853199026338891850029605675085367770356560593322359184422419670574053539755603815648672886976018276239962418189279968610320110356798099165353324298529384398381376673997332832020475943582967554426452040155680061995335677224538615240235620712398246308905988061595937583509780123486638464402325619305188734755293114244366661166380395985051342227150854307053786287958048063873790069386896135756364992045817740661934794639272541292954690953117998812036998834751003429848527593416445314527898316951434818503346911754564740100464008669482461748124067051991901805250948539456054263440964034329127712970850441304288544551360193006696825037130558409172750150187443546791243489193353326747919494882518476077496773767324986989869884227307668418289298082998925114733423720995298646107313897016127691689677559864245393546353625021082066422682990115206622263972833262785138968970004009036314990752843892173245627029205374597681748767097013121320259107702886683116403163297525959319175207668194920283204920301660296340246088331215508963138522894170865038212773689029366229169173233532395056236026954809678023644874200090644146276661486343349082719404191028209085996121089157437376409668795788188745979020143661523784232216666657919441773868124330662435589122263531084778689269755843935688302547922805944368000801701031296025753984650356651485986357862005695540378920529156495314755094015748263881146951603148974767243484852712811258351683874292817575443674822837590526030986142356429282418174360867171564559309054979047727636527323281732571925925739455951444698521026595222605764384584175853527760074406673770897161362000613935996167211793345511981860741185496926550462967240994275322823859558432127559323752859515605695577248497706081627480039606732112331764762771358789711369938154160479837824901857090274410020236759619759584013397014884191410245521267161887279697592547464621686261947432092262416357642674928465750816538456693681577675859050496412580824136213362611069140580069831208478824093754921165109046333785631588582715190786279118995291563952359041069484721774990776796882830300700523154265992131780136429157448963536860024314930934330028489671450976369047505270865106747517693641306311402591957978906828943113571365245438919625802100901531430344973499649324900816669179698805635120826621248592330150345676989465782807725922688937557965237731798440271538213091868000866437814377665414337478569468505911799968957218919218989250288564713615315592227464360043248517379065892333329896338401229508614080377412844330350678594274318431987605761503000511574913326563346725699091400093225695586807880121583243730162489266899084252526991553438250439369560519199490878405582909879864930213301668626493575097990536951064736919099379118901105262863370305683318279311848425612340238930451320442969272131909886634815303801518159989097790104380087235949922550797405099124545760924551213553922299600003934640713897681988231000099921500169164258359476518231234336016193057137726411557204872026237526414048858592029323595138018117390478818525821366902545036464423173340615497296997234177504737555319573174605660323546006946313469398227701230664300407591413418800533116906240538637054132605601412143712644552749187919221925939355652007364849298655358695462309074758352931788708466289100347827399600289724781028245067477475378147018703111221007639420991738129439278304841753992492891242455863734251425108663519067992480513060574008813262204720317149157671518369067784742186999310266623797765942683777725862852107381815892385766892505267188685394420678487780648440863064618940058013417089519809983724158827006652207389647538625945396504712641484177808839445951842372946764519064490531723172750194123998299605872979011882412465711477644276074484296521933720578744510510244704262690265914450586111864459676041590634729515766451401670756219849859133264087370982285713984966125838813784040465791952818056852689730212952628491782553559706973267119744754005533674008729416064140726075063348069342366351959297241938571612671319071894283770188690245204689662560799500650459627950657682546233492718066460647676631166787322149240184229753289019322910084590775939858232075808094843942691125371322959255441257356763908309100751746522630938008393748758627134239516950472994212633437773407171601596152592149372975233170353497550907816591002578536669650009049212430454378745621008670649349241820275016259949066879485451875136444173437630980597818062346525173093545465557753337896176692855126085902714779069729620504982314465034997389146777834063937098343858192244427655283371693377945514726119293998663002454051843778887496324087233804500379453415656664949428728424589931967192793509716777322055937698750073414517084010316733706802697614779646784098099032137744584208037057474086269656298909383648307524496570701338085521885398557942323043374975108997349954843141048097669539593153957396981243219246089135007424680906832349546457476646330609923796919689358439918920062164340562873292177172649722829500832884315513823918384728373970161127295513302030950218141163629592420292594500944929865785910756135354307115225347061100203624657386103765617990896042210348665128812037786613077123860488802865844360052931673174861510584415800336229826278004413391071751861983949333541950256532399497218861927165428039403892013300502425268374049078683203218881019949841869944797459979462079033100731473485587727226380916478118551980799920840793479519389142343200298232258062949477728999926744317400407967308449927406303895152852068575178723104547726177570031141859792237614631038951896171925558336260506089587819112568820276461302180366786098582712957828753821922759596441343457311410637899949028921310055795775180266219292863232517383405474608325926805931756202115627947519259991394490847198521571673466995875882968866969280647537931215431050023851443310651750085820594351071847172285361040034933368792912098746151485234749370061840822027749498822679636393690758625603328013280543618972068779562596463919746320574928542508712623488475675968570371582290991895773789269411013119719535754817168525319603832290739856184051365624732586830875274611425737445906285911617230805130463165013255137411131407126990350994929042512646538762543745612341151491061484584180332250873478782979756103556896880166990336398362384079105518735535258612766596980604796009601669966545468446198232996065136392961649513287828570316037097204788911645006245098647126999994376941224098046195963518118786956133359250610921928553949121524081395046824651274068953651024359885928246771499645945592920245693631816731811358390098176845036853402567559614997619045845697028984652114453543002043716040950600557788236409283222164418795424796008082228707947089263084385312486492264784365746308184313148876107876104680576584264081499320132086035994131695924821961981620725938408072592418650409489902772637967902879922530079491039720416178730869413243131091361124671237785019424468131779514470013333839062994992050762708195328834138254433190718614101241832211851246717055844741651888268477579494716473439721765840215004784239367746761816780982369153459311224713268881097730407147781553085419538962468163268878907727406680928613796512489988413267497165050091619134007746348021371338451825039102026834259177288817887179911017460365729467420029322511130216972154271182944261443191903097224586726624233843476633968094135642850367688130187898716378357098261325065011276143770525319864792795503642455964946578659540041943911166309038199515831405172923521926630268527759878511573369820054226862262888506397331388532530599247471933579937179665232918774471419808883036911942573139111562346446610470960551954278796848719085820608803023386825574809203258795161129730534457854905698749269198075858028829679432234313542473458886256271830675356838518371079188895707646599024597277767715870064700576758820496382530566719929604671928858682541377688563059128468859589121355648712554847967739033767698370138370708360702399174934303501326120466656033669603188899791796706571290299017088332715311148131059810418567857676858926473576070672247453004650706506674695310776627311317339382348148379601588687936828714293584431159595023921831487985558106237662930479406924565083060168810606345636084443120600135746384775341480384909806469005787289645287877521041133446584262613287205500462245959868569803110746643146973594118324445157107231005826608604741774539149527968274477532577664143553055047467187920578601194486841455480700438751831200963722345169546476652267949176057405037008771897416656928302844083021778310672986755767381165232410691958945331780285385468689515022736191778972964722030080189872171323227100098289708768197947923195512966557635320632302227453480642789873364407798024400402665512885146377040066825117088966689321641245994070028120926874693573711347191148011014180346362879245942750896340246938227519106252477733673000789239715326287244980348774568040243727843815030754016011102118399969706981083984142754630712568063403506739301305615145780166552259988148065459430751820486912837944497699802365366534502139972552131982461941679112569261266636409131773075643572202910631375780981083282448563681178107589626618866043751883964832463178637480998074383046085161936973383243046037548230782984028185991672486853414196784649535909162760537371643405685664976484395323187190525920342832388475585968424222061691120133389447670283068927920272339612479110808148988020162747567292861753626897845231055014008531068190231567490469858175627777157187428397755595515911513504307204608897471815581579736072840927447868125225456824850741147846201534248993102767425638544240030535552517776234299618080093143104696897356700298385123383592125733005180589620091982628589141639562218722601540956895867251897677255790230926946614683458002876943750990912384860154156049236603115822174804319790075788476045214946669673647657451254328604414752683591914967339374991608361946369631588280915359613322203121316278311875452131524580332445256364046463776124165853794177690723555446085022318605556103821196148673332986537412223974629342408752731408278365468419324242454154471853617297105433862893783092858203236309941509913927407890232329582774561629808681780922524694947785787302687132368557720235109995581082505025993145723520501895090988272006903375921279833279102092534884129802676697775360811253852414047612791970677511716596632829306082134297275656307899609814587265634910509067220403951457180753138932051337504499416029833325980356689532900661643632924740170562333976165032254912679908831271890613299498014040250024583645806694334430125755677335080349315998946547129907360583247248524475604382768735423722153226742126449983346812200233129732821584071117024569831589307977950636176110204981770078497136040555924093942698403533767284553129925183731807122636990236965393928656923026588329077758836256754170332519094136279772778090046800037294376217269538512646865352644645722498673311210506652019019247025898455144616112482324873095907240652102809973509971894627287133228513859112285956344268348717131366377125540982459545886378449575261977245970112050844848908207608407810398729426894683971231689620353331091902994446581090008856447604943136508026312800033952924383609459288817975751009232641053304902106056117791643270266516736272287432625837221676608911845251271201982878373962966131839156006387290815961615828278333009762160033069153264596559351177362058819678939340411165497661498528723839607893775540739736608288624596384994357417725288256204225480173079180263431314962824965943654546545688460487003591001091652224402451271344723336672653052739308617175508516165796877823385075407648119204887114171738966479373715264292593917049340864864381344120017393658528759700117198270682471635528457187970855051617176851514671476838528703851518162732583217302122603095029134238164072229272814190579087912169008447872800341508980754211832367770436269204767322854610585151183087218276707155532493310445444004107230722441046742929822664662406926889456420924818653490897459298531019988984539782089103511577890161474249608559131783025684440642738056314721238257208612548259909663199386347597572488320423336301209437122384784575360495007775441911296030132256401771849828046422468163600192426482951542305597524439940865275024567840284044313137384433111642276688126736303380925656486149239349216823654305523267657272592637461327359882052306994665722917156061232235075462141492614180724253784025370091976055040243438878110271081191091618312911678722310816627845527586938650417404805061871286767453226156391664897851815202777320862125633315005130934530048840140336037600180142409573519684530583743508688046434709767231422476750908684465319491620848496783281355567810840377922274283863092670530361536481709647468096379209045123256125134803603275280549616136116193997515630729604520115281484583713772933668608106841257946467985760848195092292899908165940281435497153286117072065271055170281358050290618167657937437484396538948054558514538657732077181586760032159004061578496602843983873393856272699073814812572303456086102561576206835445450223442010736369288756847992185703880694778366576443578869255716448054053949537013067997759659578980909423498369264894926236492800919304805787900639128027700359067405531393077510489450084526451682989905537300745176413645238662757095168855673859050628541351468095571294851658248363833479136175882174614741647469103141489275589120578213463389224879982601828905613403769298392328923541334024598637855479173872320910264396983589807128862423224672845752069517117426634336311288646079177850312648218104624843286588606272706804778268043834253876587554024489110181133237743447841898200654214428074601690296333822354202856889626850383554192011551978427780720839788849914320447590541250344901689432679803031502727263718528192346597598845368144659131228122789292992033711888742218781219065648783163109696058170257387644596111209682182872193869424990728864012049248864879841880474492993256692722508887622884892281939859486798373369943782821458255913203508030622779532928698965244694660596523882454806141230323188573393388605035474608677246004118347821624749642415555242524055586336916938099836942688810807319348995636204612626826027196557005308521260183005709819926575138920395824937025793512723711324866564488143790445216226924691732712807782238712830159241046089349850356135187183990619816142905514977354564926718063874033823651589563583877992937954942535234101980857309793750054782721302246489080598581180320527096986507774505454040597619076526013868735193965225242451743459219581174936547813626290226143442190584606488313780538985666116660804443661141030550277326690517228650749390891502405636770888253754049375899010245187720238284731975443176530271322805259750568636395844967635086954785299822348774612522637578706485878917345732240705723968567020309409882438411044101227615176809837316650897644692945632565996751955997193676593487145682143025789350051995196282559558697263225579475485480829213992308118976407944161365528150587908024673018182771064626427716130277161524195514545493866805907881956025876735230105731916830963838941861472312487683995215156713300547857843721989138225572910698098285156941064586054715151518319511987228545032910233471508742039506253826150866170828580824669738633525709319026500682327049353738464155949731738116817232447216007458960897012109338936010296888621331509548483152551111909819641423433685543865994856908013056664476659736111817103855745577364600622845268093057253795947339875728288045792976204112758141567001339014012823617389037155366588728362795947133215520758987011150489611301743773491387502602736699491502700490913967175053043572845733023477942101677659927392046711148020995788443715887117243095190553377078367488646924941115077503579175266886188916117276567607068249776095123464607916936150209615212940917135697608600277055108394473611447658814368591479764262278940368072688781934555736344143806910214437032556173431504707373286552254328215621246065218228028167733106693258937621697933090801839600582778484566692891680383601875874072324506416785665887528257575800635109109035448764912566761365144691208233063612808095705986308765895700307268763843557584666437424367384416334231928841975404753693066550012538204922368886809701728447810144454632436107341352314486888826864797869711179016814168267188069117660101710928911671513278437649052956583992921005516295547310349776822936622377651571195463944027386250821556409002549298181761104319134084522529721473664660434057127127231375016280851191823497460604563637201518319476757429696098480152677378595315329079999290639023189963961733014830029881106800559349554447040862402427232505888978148534570444732563259975894035355384165709072518960052610688530495885508376654230212051300243737025981966920962231275842791633138691574563706564314483568172909098011218756321351962727847453532505821736267803633034326882814002013830399057134260179363590517511070811639963337908855837274197421911169726688482093684126757316083456892950123569296274436972955831085032665175956820477482854105547543115894914599141679378861196797818596037848155351882109127213909819066133301362931359970675531608903223365229522384213341605757613233327375682490659948982127821434043407196394955265744486991276978563550392833009242607780817253988843310855830048180778877506524055735227801349830487188931197320168660918172685887561189275923573552742141877562702384200549409419828775973289340748262243162804222868426623853355818508310127882753176699506782761976584117148082489171121326118315274379995022990020315194345672937146648289626369040680228049897168636818930703102416863813240654476573734715258395753584196886532497263863821788519930804331766795130891292938431430597952015429124388999796243330758020867710425307245502387615271978937320615511643390188830639249982470361116339497147477306624816634257970407417065734123491613922629717049568203636638919083222490693940200236061192211380691491537867469546002853052113565395948370518845930163571568844018769015870030110255476127545024368154869975834615558815058658577539479945721613376683780295928786202889495730742693192439398466375081654366252056911243806678332557420852938952068911646020751282596056523245511572340429938531966526749000101276201026652841063182599366643649172090724824568461890701945904588463503982303149985536895965001200291208223656787241388992149033579291888281187719796244573683862990346716224805865328039156995196448932618238187285103987166873969966571186434156874067760824732817546011047280295192723336722868246534705183884881185095906550862028464006039017211122405659893103108813027373407011016931580280977994266225746155415828196455693845904783493678713293504311033453296507121929528701670169171438458645221470648851064522019071534779401527968319492542334098862039555981278172655997289960198140740892898500846846405021849946896241007598813629554196899568641307993017785093616207983790184880201450606213086543294242347916071256059454647365777551671335815978427231194281924155444278656752913329553461746719707741943779832225105328111467948555862774774557705604444457014458178932798432850237966998852614547701310494819718286615985844917081383536466451319169443272686589613255589730520427225627169133524729452985450020940375504905322142372650750705803911298537091410105186632842070259427667124698136664327540748817624193582249204853146535394133433398936069413287554200729798362220038691946840771527199466593474466623118216847894525738688232944047574753871246227471094094344795995137579583210028806270582534802171523242118723156441221064579959784593816120759934698208817819865646191921002858487913524917752871570024346428634448604586728588948880838924682458132910386428121013831635043179397920770853855642785604704215396117354733427682846343604632322688305814453656224970003904750650747575551214131161881858272641451407268857123148656638346022757082798733870338281036763681713689569840885853308283055284595893136175558119486432935142968764464848506840884856911465629378620199950260212041182922401883271026346412475482402108205616722711473312579531688328099000385771112645493564211741470698760473216687822696658691104773642682282295969983474180610949292137954563123422409977382729540209674732920897159702745250150460380449286451109786021353269678126469084626328580511906647766567430435421886725558145086664318683571939205626322045847054487303848002235813650772472271923951047028830446930103400669719872130059290347522318289962627163245284723599117584657505562537919047673452883306549315599440349753688948329944736662140274945322642151971049929104964391675336895028715407328053425421886994694440024157527581263985360025823764143753483669122783016472870235208288742562678695255662732881207090177545906033533212097308713916539689546207881786494804779610108283755254909088522560828469926939222047098834012839342448654269479041179106116186111065603357035969186495722332109049580749280734283079966621433161776285184457875813333897752612867356105478651177866494290596565651809846963584155261478877945002123156190531470428326889001939007843051404796855035857968966874418799511138159152580814212288034879059341940234200047365527408662354528705386008280069693366934417434991830841368770446975702545915621500005861013522909455385309027836296708769769683150754559670473078741350290155255021527697847324955909482613321031036662599263017638218370743854379385166751886560540842645817029306031368841783797719061474450280840498171805332565600284865234044271158092586980267299401547176140788577693461140648615484127172676190839396735651118309315837347483840143672275072471211965142387613885632488037986178632048646734551120517345257432021116269574879058640775596989702719385599021116380264598435510247186334040192846065587858490014476054737104874988217952380189822423669786629759251597382449313288534784805584426820021863822907275868994001374255318124677354461580396546597927623354936192807354116062624244529272607314436708725454680254969593347884767804602540583197365469182144100462260473567411279182142736584542221814108355420374789211181362767099564692453992100535791853802162917892850028195245900760476245557541035658242175244295449126298972689293440575714268230360810116401278735150728473254419051422323582498046132162585744329334666501481929277293361173573632224819510618968099829263061693899522030555424046751945050200232112097717426251090210832984026780393605242048865623886476133714817333743674048169394247163278298292545424580924753087953897927353323278740745814988223177293262192107898212753776979296560343058287244460428876873094978622590137907974549370354909516170106298859954098966359404472512418216465771647230594922661097219216031156449917930535870708646176497395488262447392768980563319526327009766790405354522917166067674003441950666165464362206781396734303842037583524935099098680966969401122881116618834322562373212395148530389463369454411341931243517926372216542463295097760288248824208544250564406844230902134987580435059853920872695180054470282013676548671430683100464913056240322526721188086529459218446666728830155178989079702749424037965761199305553284748082024119454012016318363864774993028394221545503798084150507976300860135961337533284076124579465947902813486199190402913643737067836311276851029902804786657816349898692065918544733507388305552290979613507963761837399369796683498580742917583889947332296619107184600918865592410473828069417462092145689340766374499951556116974494819843841007415024894479784347286931306895303085654955630224749854350797806240870269523545942403605597127920461269436901412677874633414267650374006908518066569930821845382631037643653833031772497343462622380815083570375615822018409304234558860338181873474145626837727929649833146237796346993508200633564735648905018067273647171960324464673499042490763494507831787668094175148272947091433564464765798173091293017221095955610673431050003630348460979047681085989897300732698018514187313579674412847180628698493699844194460991302543225793822057489860867295708066601573905827525714745314769957457072813816567858587874422623462806142048085350380368880470112441217268743142631675197685882304695060006380087379360630630229993963881478305033624219371030412387937580957654044445632463525897648854637017497602913996690446381954464229560809294441416558751627838349350698605527864978807564111413110746306785239178906914466849246993468073029778032741395465987504027038619475868806400098709315848941083580898825530617758312379096253947532090214288569062326545269079822987811578699088239029011782330943883565602717912887948120944436228678623427717210630805637364956153598960582091461460276745772269232701684881193780110978089611837920658220597512446153548279585553256707356961592914963059335537756589093428984323553290682142436803976581332528858393874303279591842037481971763181031988790589201149594426410200872859918965113448941041624103080397963215107375991068199921495262176642219021156279711844852123693856036034553487798284121038952705155027385043831314262443558907272021566186823966605963262462356984426370645688422840965028847538812467986651894035970606288407945115681024088337463299267975351375883780726544629297834390715862568705176450154657682837806959797790377071598008831608924421815298279352238156843087346006381645307464035568021982638042524129951103398334458979757741601430019931519449479553051361501496288676118432554519513351120645666919285928827555487443404465692135239133083282459479369415222564425191259543647392581825949982263588234411314307624212044406567136255121419446289749341346441874805478324850405505871361098392441231148828241542210320838795561630845396978046667094189706223009391063108046793584613736919952504717199118792437267331572581975844078356901143809538528686222330473464610403240576511095469126418202306410928594549862353985745099559969903316752692849223318950645297753171379171978846179754823424872514321180615256451135247657428581397627450961263063516345915152450839081936541753841779680582676765823085687308326791001501345954402625413381992494891956283658403013129937606663172399491718109399704846621588916089667775083738106696945219718000139664096968173396874649559534174184408349359436313693281616208498128414578930608008334025194447248936206715210347804918574754746966428930793513359132033239864942043851107535889303049956042528447979357333515149496213267848573319790228725129678252469212241845926450176482922957783023513145025606764214717335382432197807759375598478969073916860024417257900830357217257630455140770851143879839631428309218603119014179097043849592298551850025814060836106592720207401698669032672969227589160294296121548383581267022293660915002049387315469353107431902120027013028377936485816938419929105648569328258308478972849115625659362260964679305108537403418321707241793541787236593242116749403371870616043733980797281491965396778361149875780036259631897873972880972903062020870620137365419303954811471496349410079316527258792419015934136165300143853711002650597684978731665219375885055040476890087530270341715053685832902398252805461966918557395591454583319569433527079744625329433508887743008528893079001790976469624429694555443015911662058495182778139367992297509867355643760871295892397574536596200358813349666206426183261751241410401961946909514376567120374605845927286552179973758336637134481145671043274419066485664807515103570861263772742621175846378492184078105863572380356084351420972783105580323699294784979713766555077603646777582056387670576631502434217212002208054694645784574354352711312018253995493521980335738886709415955895108658257137754322441670203782710135430715822431990632824041595335992389425797203376477776549287327828736702375273552281920628164100935072261577284995186841312618694905631331973727075869951988123092096861616907525160808458885469106189854996304065996351825739427079131361376780537715364297486647227428147899896520347027603055475698816089477587694935402276093688469843981332539664856862062254455006452174884137841646375622722802105726433187722772609171522451072212865115849139832303293524654775402570391346186626146478351839565787782678435096943761111463544240318833799411065957773314032211892092801639163083682562006073347388514681592316467322304761071939021223567473842150292170558797223506682495889397466863803384418862531769079389630147965087810295333054541606345929355077209785152546767827784503066684250747550606760535307012985427929260852709033051195583536709861545151279638853222279467341249675637073563731575630072681436102428460068905448333050044249535670904160532406239846723528641143106291073242685594303880952474178141888481295512011104909582056621353185919562913418152360047506988572643663530756110259709365817821898200781910516542317492060915829485984434763227612836076243713616971381136448197665625115720335352936333620695591285452682730022004790141364071774799837980349974907316355047630695344709252285271804743266287790074582958995362644880381356178006707042865572026998435296085624140077098747672752723535015862015273607476786297328345461024010921931351021293865248398217558227306773186576542963946161269403433479314864929685966700670942380132200715788588541731184300368075540926745412220600516345734284316204660217239933713045031168577328935644254687311857732315128566440306536334377542263932966959138795915292932148425308599671857066917332841015059817310600615931657619743597181185794986043258293951593028660167994481714194969045613123231243574575512790789939424765139260706351018493492381982207213197780763351653808713710989454106418275958232275101608680541715820556722776621422263416237144860963729264111794024558658193842042103982392963874588192278296007123392996523879811841091979423765920362795049949175843898717078593440238753667329659821933360771067470059440555995349036218457388041434616338117312490925807844809585504253506822362579656071661331052212025931989141370683165656347910272225721416586365434785151129572427696859533062719597796426858959732986361987045266554167429100440781879153047159650171343387450277391146893631979563119635417046934579953589894995363989401669768518295909028854391068403617548604584095018736499397236199555477364423582491759511368702377172365054155390931367703510454236331408492386446007555699067509394597682410662302490491203464996710173718603904359687708376376865012297998874279840291881822539236534246505493798111397784338176364800415536976956124244629337677865151912114488683578804156509135370517780269200311708254696002798494153114409831983906973614145530916358703259654501819620866510651199575787131739719681866630064062362533690157370043965511193521802310189647594352428909718703163959104222075363644416122935543651522299814076748011728388318303891146564838819687149721856737529592700299428503501143031382088809295696163827515531249691796125191729739832892212001455328075529271349205409254204627024748092150275257488203669816260072048272264003593755807949964973142895544364557758981807863062438407658455471830511744875751627315429807949305608005843314129455669064039513109446202630352578818011133471945862054769076957543848938100744571065078328282329670422530240692435467938971573501557524626627502004097666558034780762713099339632625849045740050291878869482613540252162295006339674931008374863713828901801689701339321582310742294935408533596193479100143018415069526346343641687172833994134825294145051131481603048329972892925774410778051225198644745532795828720224406901646764360589410518070761922569667001317198175791059181326576787231970832828509060745570260230010130779280101811723688298486835775979263143718566582532751942828079488604604150632992175924281534990444183225884122784213907629426467957074798485812780199884697523705016363409043787921121678886991433463899394674805823219199028164553227997881549267623711693517026393535152371404606448878544033777987829804353046390556319481975456593855866182201632940129082217295196119682789401530807827406061551942218159433331778024496572734301913537037482663681244188582350062717258393780302826792045932921750331898588749493549839877846982553585734432344556336333295731828693351132128832075929855809463624538179270656474997602068106913756528246634080207381847967817162102680764798968071756624190691890193043903278730133085552425384815415598311786169036499433705035129526190964187555999588836702691902230238504750129129705028365659152478690842962608800024801519566430595625266370109732196112109921381058820525471816103961152377781986472672438339785392223716658880575290294611488432406076743630563165882988076119049008902287719372016987885992733035536126633530695933290607357368714040616086421808669999334602473032038551890915937065985421912195247974406578038867675703516753673483810209563738163162872780918534502495068600828466765028103687144090308817682135048290454159420145912253202808798264542772987997521885859178683868758689900014759985480582515999123354022019462841385718429332324039411575231987708223191877237715611946409601131038851962818176910893718654750452687640802980397689711953145249947786924118379568989171016929549537230146305244429948629630520360190221050572331474783762456939444157363517864117639774727906729433004718270112928416193395263142337463435700377385610446258694333958375458076915194716982708447615372339506178187503930664953819888392725776639412366532655079120299337987342796038567156060967971640109963110149347475014756650255139307470045227738629768727415490990732072989682801995352743609382775078246549102778566894700327757399428498325773112679235956880412929860479378044966775001394498682446883290147459045512004102627241389543021255861724314818611145509130246747074481129288336383946915119358656079594731913744702561830620481461584416476712803186798554756208113824833301837148868263615177395650700507769460538477449169844645926418878224152142831663631128958760312067189348606845192426152813628910293762725675038745369101679924327070647846945099179988772706871514971575212177364022543859048932595968177472799513433687978547515732083286212530959579228168575995462276117217830732493598954151423003755620680520511623972458941529280179429504732230618941457313047122821878745396908181019045804884012007333294243773656975794862577356970739915112340439301880586111934295728832149275715275599158202312558111774724406676862663048722354914415218064076058247089967783550286403029340364414936117230893983268196379205329961932783781007717702280718052568980625156151365023505503743805795552808511232576377431579573775244779457708395316138691645355903309956229270556348930340180383361338796762555049331836186860902699455103356861198503585537934860021938545120470396607755575501149928877007740750781235137146848978924340498373971421886036305085035844024626260406067690389783214587818293875479691655267268372670320075456846312726003595384719798955488532255021345937556668648051636316931025205487778665980901555785499871114388293067233916937083383117456073212571682471487941677693726438098207638799436650057448995320723183807455534248787818297161129198720480647943556900067085697449596548872646267580756018581174393813116774045235395113532692619587229368856808389410756177846121844532780748265178578816396925575520725020121792067639256136370086481349649366657559561381127160025280850887286323294768262611291584322129452455407247740180286226340446074606892235433843565680812773645942920982532020249849944827201041842476742937754714328536033263598538161648647687511355184880585364391972194263672320351838299782687239962502068459493444633197828489316669081153885297916767819711175604282904295737159102679688554517935455587534428850639770927292724457854182512343863887941730336139082000432201698881092101831586916071384246916978892519745247846671106128006573999678650408554039109192490713140727540246416804815219832526229942443055890838863354977209378404064358557025478608656395659913442689962025132327002049329097492826399148471424318020536673280729494987018464930293012664466169780519124718751334362828472472336430299719668981551980267432544168351016465692002474278802191336420492810246520096952815244084291195942908725715703343245757437085839535365666489029058516266130728065194184986311588213010016718994093492467787413807044837448223906344162246020457895906298792089813655098188236736761266447955908648681631419418492095169919665236387123799629553427658311079412462269099677804899502618779308792187240101423724041817446237867582883686573098121523364599049400044033194904075588507007218448090216607347440482890411212544785481037713700175016031980815328927869365209174446555226000345308123160214668941436774780005236196332589481795131173783190924946849215402865031930551606979877738936768973912328408645063855541587128138687148005380201760586109014020206469380474927379875088068584063707713914647552752919045445070758865651175494524189736581031940991061314267082754430390683738389099364252783248100018532112111824433724289287164688780773533124456659518343079642527247684460685794707509412586595974043756180238452382952803300858261204772877504976345000797443858594742728522584517297620936481555211479762231844196797580046406351357235637726843064680925465985765212461433618115324198094207829804385769575709706844498256002094458632393054775093929721120998187564797438949432637526118287090291718996682322583236429976740806774815417577429388997162349315226376403929854389724196117058980360527038671778123534599381720826347465479368719084462564370301299254371956940141532138919729295372320052520499645514712116411459270584941636107555604116414232845074550673494667646800734540326437382444224965525272790929340182613349229373724497059286409740769358013730667171072179987563428242007322623087354975992359357355190362651572520438649523113420652272494019385141173860260150166096911593539970876354795827276690404509689250889480493584763323903506292372852107310434000786632700651874896867823238752819946360440303517995017132619234818927918047133519415940673748997286792153858590384537192908546689642277078398777289676671454343689080245256622847015043224571150137659667649429999161261790086290463760635274950127128546626288270930529589004140424066762986477609352034048866058307416173722801264148390442127747671994300129800159348285464099101574957249571799802615903593172713620378107604560694875272323452366431972782149294501314471809184962883073346970587386977188750273829660942599793617879575629754514310368318985704364476931693020016778282430093808132960351061155809711243074934929249289127079329215495372818244093208195488240571159601135283915688796989861163253141646403265067910794505000367006402306581278026517893764020340805902552300955086239603291054767267112685022884971834214559103243032766052838077764986646812846715096520933899832248780923875576556764803495680697402248986119618209872168248654263893624185000779132879144914768657766773590447194403865531757994784333293207316058074745018636414661028165335566847288753722825277822317319847606789340841302719725103599173716271986388987470277978381128515895868943210001084100030256153741687296132862296684479517204496918574619755594751860715463865015814537465481174103540530861434812451315847049814872543612379498371123358599810377775144857619980631656675447646724487260356518541741631827617266007933596419258904067207303032003025217603301237929870333239398682651020585576024049647620482234906242199700869804238173742965681758875029076067625501126506968101189084187997553191056476925211591790272106711368342833460844474674725510571896371610000723178735310946911410010675170717226438628391072092705213636570817018205994625330688858831375512857396126719190394583000298170988588642974127856324059421184894967100639054322916776175779615993248470851481881519898899390488854831308432810267936211646987555634489336839342764892646269569531627699995580408110116678744829312996278332965353123268029928787728669903513489818827180534858072742113244483315334105589904888993484573604424811196266519844488159527911338080312220531606272581687336316873362617008963812223966331856487419170135055820724981352360907654378653304666048115996861952914821771922838377096322926495557137015901176630858053071873463546968002954203911693516847914395367015335452589678257156564422694516115989689975080860279105761558589709062205685968923076463175467858341898050119254020994396323898085285110716417880398206654033973119675747774889268303578514487634251624957446754796883041544670130035007116644830496670615374745625750711572560694728932711884865072386099347127548492039701205665314727834276269951585832015188458090704884919603092173713533796956043985071671548733422696247265876361738892983628986825181500936615861918508046569238308968591126091332152538401806817022050747320978055613453947216241199946732667885679836415672998368649651442035645115899106226384521069162024922065437795127317098929471507072938376306765155335992450356720724492077244128869151850113783988438228352310400619327271488967135897224957950232091646318659255604095351175483439634992629309921022358849709390184145564127749933436335562025475050752379931999882350643705422371967961062470637750411777475607526968909529853413518138404454408604936655783236010245505556624527648014266814276774379901476563120682635146799988508160439411506730383765808124606207258561949769409840410259520365947180583163610505036687060004421321480103717960243323662753509532756546128998537588145803027100277628776394244949796919822539490994866329288894154255850549946714548406720648984838337257017795178914316818674740923258692605992051479894887523361087494006981232855034453154400520663599677903425506135236702610231768795698539341479861531872588473978128828371483251485693269195758126180481288015016930103416615079823197049440508036091310858786989969336671873303924476968626097118981147561667284333530993378817792128704165177716586360939373327542724149609122110715886198190478885020046006500380185813151687604430232149201087771044119218413162588432924160121258692569178626349886631394035794099791561264823855349441772473834519542881665927334070368179065800527695849986271695834789622684141812580625030741211102861091119016491999541688098076223219807442771746414748115476065866902671725481966958809762249104094816089365065553696402438178152363984238285270272910440710283015749564202549608402572160627250393710260058034992296232803586289786644678684501914648069708656325687855453981777128845246333431725518555850024340334367344921497093471187857787516573178460851865731623472783042389127887300110010648548687755129697654681557927378455896745336899908734722418221547935312173982103707593281704471683558232911930138892750764912010614463469556108685932698353509052933242860467942679085976283734013387550274273323879213112744351865495605923054119801085903411403034344875314732245046005278731415272494021977928643533826340448833971181607076202764289135674110244331427374840432334035419492649942425460935989864237727194214640387828469688784911823443210749187439741713041255119669680894869754891114927522846477084687213397670446878338706631202782497269531209748687574699197452389609767512499873393438213850510127359482704917388634426054082538357483498750015768230505990619628417285771292202485323240402287998770646787318722909574944027116140321030828175406535077913750588790415436081056873487037518547164268456267728432307774195467307074518058219530659433553489895375258574678963149090028068476767126667882973619362571039022264443539387496583610604822895292301689525785020376688707541090073081030098371014074783212964361025691376656410466755545869813000070361656776314718001603121216685083061214520801022341367650222884060595084098010110499752411155324266695064271602479252980092375125207823815333833172182054366485180633939263788150676272680850449480252452035218163288959597373327029131387822617468095753035619881931500254024146778623544843622742777259971766342965374650365126279180452308471956436751335108166961376599823658380328762370337364940949035313686228639998468092670469151151786635383420091415054621812601037599512076710907863140243685367449846517905849663997822533080260220094395029952650141798929575845447773474721387986837801341741074265129262829435435918232552193717154352573682440094381713425688450178779840426815394317009204493101593428272151697911959980155777686191537921793088537609621151631167953737401533353866841530227749899393795531985459105267516097202090374808311958835579407895234982527170123657437254490813951530131443101565332461269183892777283506056142025298031299140843379069903537243736830511524072499364893229268235083388072610152715947547475091939008486863908316362733598624127686712165050712705361369399175026015120034171377391233382798754990477783105931242202497136789373441046258062137970776128600441504158255687464124460659276796669048799714834618378382927381362245369182502785879744569275660082815954639172656449361061639683341750737380622310958880496401153386428662924723628959849627060827826616942738981237763590895321176254264096574845700844711272060812911855044441304047007385488088436810794939539891001213288241205337266294160031736890224904357391799413347890649966305627244398884471371200240663158087505967605311399341712029720356420239737613679638190061637426136338701625311051045979312507976698518126641281060750049981400353965165893156123737038613487451837661976981689914547917541876073772835033964413001015345339448300864355430464473891166016157009768923275215430439668621264243100964671813327112584683721199698742425216533345332703786424876511948472031158127957268110311119718853089242321277245596156094862415202484934294661663481461964557351019800326784274726386761342056848203637531632475251901825874631043868507404931890389196815353217200851553602900639282813575899017343937366641036998853685040255194271518143336499629400004925259900068336836849440537727312232524173936689390702908354760180256055767574445152347494760497889585113884597337440106197987324260139509029589676735420126589500772883275895886019095255841888531639914402596972711438058881908914713330426885385984726175109694472929096087158999773882349717523366465079464665646458098611713197470444983263942577183444876042441359143672787976683495582473944694461772819083404277903055597042845768073561058357780607986443074043115427430907749011309693391410485169968161771796958066994478891959242773694723605579282726700171270716421583629487121087742928376087954510021460064311303540085982783508767779928126202256577659198417740031290016930092884090151897861286497639338629553397736878224958774898402035572401297775431965140364952821037909097405814358337533605716192007600052288832202838519425498083501029810623948912956713454180995740335788654620067976624105364795796046498709694273683794712607230984954886108881155602166147322140399234752997973328153019092500583706102737798499534290643725418957895423875820796633153777035324386195560335499788850396955560628281302155357546765040485136851446828359264090693900738019698107852120182418079120569271334476847712922289989827245200349170809018530840178221160630759154616659692765438900239364470714599819103655362324492415970040772116446150364140261610909884253574817786602903547938805362159593108526027165526942272459713743929891900538793815377261746631560688076658486719487649386076874579702783977522093494858448262507100115634899432730421547702340400608502756474716961595797115439488186511306198526977580657298396708684584575895894436120023843120600406075083578951287741899405397495155086998550647803964318138496316699475776526391923186987378290345066754621455194088155514298831600261765603482295384581914301753175388447366212890864002697250818883351916208202930328691160105082127251955794332990697713452601615724314210542872403392007496073604736419602434189835208963494319651797823293937164440452334446090847058887374684595319679563546474751762779688084029854346936006700688424855257957484897297535836814529973516588286434251132983608165746949088342561190299292402337042297659599533868353623450086049545537914004607770106511273273492159268230184804018786893182094899158639534207675783631297538420375836706324163544372168082340898438568036377062300203685760957552686872787460522733743778503409308907233610746483925000973104263795692888624713991063031444374395459107202087286325774813725609990661555837342257387995458168309870383019932440060718350283926737500716888093803992397807857158873043684860441209879807035037154361637596549085885577737378671772295977014939814812576367842393922598795688253106306286276618166498071532090626122731380955802470820590215764382181079788670715527510521268863616045383355948528234074483746817724316380403276693297061271568819735373746471839006357941009209300533352016194252683381070086440042929254699303533081753226165839065789307702275810646914063601424663516472796187288037119879279628489620866324315443294859666450566878580464718470961448210142107094430524456825985398241743076739171336756401924889248512040564152042674432735859321430698051576757584754916386840211843919224708167287972496947315411900441838462792912819706924007192464224516056754859998735597588300035272398357502579680046703885555626573004112121993464608366596656446194741375531150240796236787274330485099413739249521593359300266623883928327116978828993447327570237766752398335621208229964424253921432359146738930428360116769559521709935675620988525598506296868441961893620572787536233041691122351871849243721410574332921726968225419773715006602442179274627268600701954404262252689380960760810144716196937804210332594695541841449071027640032495811587455373988556722400478555739153933402453746958657666314836009706561762380494842215982449052367132813893230079734624551100176763030622108083187598798432444992593431177431200420746861391096862397570044595729959141939879805297418795702797795799158756712575343616753650245265071924331633221338398766551204554671935194717399634606185316456526339063166119641612188548879211871758998432141527617283876983145600974272906893160384973020289156811666061895119860528596040715039302923644289337426377362472572574714483609705450250120387187218215138631801498088521654734634903956921253356797273885378607867563666145948518197233353444242997821903610558703767113092191991012078248446021844193615693494045677622067371761806746058949387887838860506400324316768038595351740262870390424383361677294680404067874903320134319330180340112638070671089072562406995883737535145888933322382206390265817698260296706392144991685951423511346388495774763095071049603674542376772785298096521545926557681335227503734230726684540463774921766546219165246826084360355891852275339628596376946904507651260956136646525505727827354448664424760313957004429085096755971003487237538623450178551386480929216619316904586690388481959960082629610698342382567950144025627515927229298012400046005748238353052431561854670849887454392352026785278833560955781017586063560784818422285419635680724682023112914312427881400933675882576775549075326300785524392892346207200657715434310930706520249490021409485259502781103489860264461150448294706761046805995681892193162811775267205390748858785911966676188677102899774980670253635171433991401034198538313213224077184325129933724668572799913047469159429069256470454509915555713833017904406326501936478652085369070038276884647823023024168921595319623593890118223316714496795199941473420295542911910273401510118399810431920821702285018640186716673004666124254927746706419191126680232300449984082552607231990359338006220274687532275210921289425294622856839032334994032412332669467318866918287647467384629627871880185453263517144762227196214890517739687477407120930120477782136112001369929436192697676506853832409750097011502467378475175126830520990369888442797825866591870624751239266142969742673149935931058158255194105952692540540003515863977422547720797708218640886576463423142385598258666744801236345097585475424822401957453090699532148863630658480663705735037214198369050982345782577965264653769484711541348856266721089194414570220297368357194681030133918412940504278743646245176448351414311974541810277038984436144932554829787783656494163542442237293937032648556272524363501577489053768496588694074064375186479000664802091244430730942479059168609397975313563664241168917635198867225883145475825279490193386677776052846825143459138623909864818119939879975432033461008872225119963853981473055072248861803854489946981731391612511550690355028624799986996299898814410933689454528946336911971136189819803916001927755118747939850310251802586336781774997901655068598551463764764071972853358415526739890942311830038315182858800916658661091691709239578097703071609004740960233268948695656025183422285225074517437392462677026366558296459444815393737205045494913064693009552998450556114837030600590659180988855231214926227051431400760394421675802669843290519632976704099749133263173270993920603044277925371631762177764957187263517744420496853842146909177256624382247643469806528086455790062790070206392348178855505964362847204785878727737698608095621669402999854563185098786953453125423532641001876989563800867479050813115214691654906111063493941258944811014435137436229077418809254212899789715311415653987201924053414120261055764071701782172993593359166045319959492808729961635524559308495994977225621486212403129996758312973520209499062511674943313468643838766603198942459860462163100544001939519167565141434318069236202358077338913558368827114798724800191062811531873048347976992011124929284248431453339360067725291126046931785895543611448460880872444856780219073234754954272386680872508526881312338002569013442098397990322821202241159334776628715045559990672104710016080290512523247029888130265469986700012130463352701846979422613073967957781348877808899475414741256538558067422269676264258646744264068768985638712483913341370603879703919795551161417894829671563242551439478055922548931441579732880792465632558840436946383014834864311826592488230642698932534413122466528191973478421593139283343452700189553532904307534875115194038876835169316123338005419651320832446239038449955492690813185988093220856329110542139980702455722903954844428130576902628535703521256019564420657077066344944187048655531301847462399289512862541696114996817536711316161959447933591558635086233545683075901894278586580553322682495171266671729467337093627439044159972732411746172685740398945450808864027173339838968583345659907434483556648541611255770319969472557692638642073210803488244259879258547085047842204868033336122815471429828901137329560861218316678075953802220285475444582052812361035926397170536654846138971938791297531921803111573008641036433091388898726447632185069691901209839855492556723757882984515070126807128871595946142028599041781553256265228536722974981664284271493856528951519851389254641433840500402227807475824859336107261154258808621028392695621647530496041308694677139881013088997415988151162038024459844687682761690389891824897056589648118808285023335307707050434653635281493375592627313206977747123400521457318303792539465338148556156343216430599300636291700286940328073922878576795656393435142604934594462279889272836116720233025599684442152604178735263429144358553364416793127880873535606938806798756156206456166525853823367452617419629591758769603057646471735904022833297499758001293716877994293990681680770827406176562369188394728193604918219158330178064745021469080301068831920086308697788620480197782137219042460727373838185874754679376453911668449188147050118234767742965103687368366281147786783408891120655021106257044711280520926929993278294160898464393292396353112983498932040126280767577619265988100452463657825571789306006212492640465340681162713873643535484486170544880871618641897676454924537847697868080978330512323006782971752826668577453587818854298504810794679822873833767812528389992020754414795564164092240472938179949724322877826397238697325667493678811461394295491757175805674911201880156115280243691745435215026436141292439785299989299848962314158506466985092405878069476206310400443458337856641626535023808661866865762991071816018206670554575341553765837663222901853453720539764427806757262604814100741777336122400955942470498186947039490267013998691011356914386625304224495912609965954606564011297441908105241483321011085663476102247119857757801642591542410264282938936745604220633282102393879847516396639880917159786095801814391140744193655397213597012261366713151552432194025521414815625855865887237619788051686230223213915818275738361097503465575404344598833851153495761147780384937056408570628787374025189507846347797736485757426932608970322445591166293063268751233580919521971432731196304063606364333182185796398683925678500130113260749720301479987159950768108193313281814436726242280474308668973961406212712679105474248978216243620931670275753352608282754056416654568300098750768555876438607714625597974174410258257339683429794783513692276181197970470752754067042632942679992891981641792329798185662148271782931695148379958116968366806669634349416051440383209133569724265858640218808611512835752973232568847485504993856860329939976801791283645724087196576947075162389706085947844459043894053158712004318105349349289840142202466026527246770542486529545024018770644907042782061600610795704094385228863327701410259198757423227114480792878067573933335703955141934652675230315824142497840802472010940866494754236959158379795116339641454782866538407027910394648381087335477546810646074067685325885415462722768489732792903836323294421322638345843847612948371428995979209167264488428000735056773888081952157409502601766641016386758320295630659751008346269066096200461537881990266589641873089962850150123914025105056216918373832707784883728363490524985804680393723717752101922610456538673071089485586768975490652323775125359302292720669317199636124097841650131668615567328955953717012631600436178919577213314563852504489727527178958152223123423899867764645526610669307661069413979306577605748129967807662240707803063903223366208179116256866408652470229898308880513499237361881014461973191369490688041112235514711635285863403900767223579639987887173361342436972763906837368745466072410497441126365289208593116794745305238209600564080285483824336409769187303174132404353956928070832392384658666664009652155159509312913791940389354224864438571756525148509333477874600530157359822349895738623495591672813315458329553707559059928073261761980571894631424223598835322239493916005161478460689421517708663601976193151344479975647030982862384197985278042896416822402480336624470059276969988406336776952302148513386682038525375828231634132432760085683887982237962675598757307083147772258672509377939991772358442584411190696553263285272562633811843525307630398054090362161625957552138967140349118325469142950204091306724803621948809179422990572966598652550610223467284892386966669530958088824492665229356423921796647838023940968684229739408257436881110600524851799350854785280537353377287469858105867573779741175458236975667454793278443316782480369798087301047663102069801191093495505858385958489587993734695659543388550744865423856766017157072398911989973515816313318673837149371535779341680343909452826137548194857672136006340632215665154577286425406081317082821835240794534232448226342568075306530683358618390745369702069793638397500184462962982705266309172426467786663001635151628511001465563107827887622539610686361087409610591558798759278268361005568311473579432774016862508056689635032989453084053081135326588655873163480974049554963198800938226780569151972328431588036773623928815764361852444196998674128484568711240169274289908369831692769882987975880304102336329754651670858843991035675002812506208816902509462423877318718226944589625931830820300125312193934080003583052488687320750105680539166179668865006197489660321319766866828417185944074897959041217845263342632228898244901397473881025346174695080612322461566576477627982517820614643595926733426386730860391599322792236012862788992641648740699555778177401976970439429081303600392624894629603631638716862589658305080457695435113197143277811709207315986862301110406872624900994121595339266909007609474527357961076315013347219390463637739786750817037488725051401982672379422461927598575470527602404776830633618766743334228217538790213658180470998918922372122300211567059605266966983823969876680868437291542924008944760256702991350402524689542213013182965234154972984491996587824462479737644495450400666355060216997727473607893245426626176926254960058777149235318640241261077740582021856806246842875582180396095493197828777485027809975185569295302526706767360367075145985809538822901873296048498821842992524841072144216582016174372177690138458303198610602994715732120178145636619790191372248468101575362041343947697382756375489318831713178896085496513584719690803478269148383653685009343791621314637481943374966573991028569927324654511697472676855461933966473532279867704465187302830674387944571431200069422393757404551086233251708852667149905941231241752544455328984565876495839809595781270465598702987774491869367524491343754318603511071665141268766409581940265141590251637471222135594331420567146119783842170883693396942592717318747535663917379914042464715765088894869573574753662024583441407720727470980295213714891037642920140661984436197810275508179323899086279854907940230349637756579395992514658275579348657903797578244585431558562592714516890812056779672599527302289329408492890526853200488838304709711110073759841934622582929847478205288814806559277386388612951176855894147529586570025501828638307272533049589514242163763461277487469988243285623608218048158573257342434289755424729683088480477135329037641117981724965481828484587127633453080170951456129337629100508289329084792400085585551389010300150191926494216750571322183525834941127802715798461544483718190180092293069827947274006449021680201708555633605830113719284365055635628199307524114136670841732556280184329759816195185558337179724230789068018454351887648627296185061398028582708319720434155477225642026552941364924967143243233253746660604342257243725668407857950935201262772341432570653468482513945559313699139265981453552670386808901406086532966590560405865898784218586524427971282680278927674172132740733675272303516053104272148448996047059139273174165901053534706818560770307706810438321482672028252466628378887917350337225734338921718821525121920156926984493281413185540556398780526535089835891081383915251080409808235590131955332864590609890049193712362705394601266650033897075044445518511512230247189345320596235372077754745537576883312508988021516290274259502968309873791323041470460639218573436186953831774417350561933949822979519330729214746340609368202689720176221491812137622472466721246943311980418360691705934917740320426239392804881198851171001266788394284121058777425657256976647492340730850257307007370807759710313262472817372938827991285018484340849885470050353010167273591974251269300724776668028395630363657868794319858832439177993017408555030674862857727583233872647688624769081870887357584698248668567687903344462746137341965631399393738246615877117903123019115918489488949653603194285395376938061583295224115665311790624695734218672136118155670149027297396605980210543537720814918343870600087154719457658863718864795315849257143550353739665497185283320232187266101807044685865647527813154957980000399021238367263307372572953481596009426646452853401685366633753583859621225690274723282617362920174709040381346092271577711857161506061670139360061783187284874684334307942561081684726054380946955183889158669823496625876721719575229543856259996794235999300739296615678522771871033544391173668172376194316909959062540400796307244679286252197948553944091520863527404899909735005971687969584830970991395468120428731034195681846758088479785118290519074927648188267620303873787049374413348650174869597794418456229819915564350514941060116691289913454682271017687397531721799946997573461093825418361999004122477476894210697694150317089557700387511482890029592185796464503183321867008896779829286834255439047458718362180215474259824132283406644932476713952706124792819157331289615331975978218502077780958515644196678613501876166105184449643907545372914076294841289708333165415337543367395613913485425111041011963675291760049576874880388359825649484252072642727237328755552445821695612307914213671581480303127760903938231178209711128943921263676520852722583956644379488133988844078652755869114452939378370359983444192943543318345466976452825600475593798931552353056070213819563859019301917079678015050849744082208409064120676113284932769407790630243375398403762675799343660062127046804138912814550472534271914118362416646196828309735656958117226740688407060304932702856384044322704387861324749009717529979084371603757587924125840919494527164818433322178816225092038811136499243953354336076313609036954007542579986340355496300838450773952323616921086853309502344699585427456048821479265162695974007134209918785030531126985377238660008300820493076715878941563807243818996614151006188299314840194647815910472127017815876293289120021920192959731790686610934672194418435770782775681664793814706994478687057143910477624358917397855191131552778874752599144835234130906806465576029227287707191090586667989719419464804858185119444511164583590749819036758911023677649799731622734485564325923389956511073849514845074916245341919137134527877267943596578574910359891479347463233561159924845440710704129971246862222361317399750870839465403101477932698676110913369074513631203837007775063723106866169247930562228237444151904633772462733578392213959232710105229062133660645303706547930603060941083455353644255017355661877979778513241086177048960584547234553343177106597096203498329204420872229248214937584100697442814063691508073196360066393098391558258692444117807860741464565551140578098019470804141308702489766964700228208630299025719515367918484204014968720834878637147632594393236176163107551672485798942423592833768328897526496049040875435005699573467291415214785816472715706290035363622363975101437770609943281965494286370714301210390154670620639880421935954691586243096211989651891305744900852395481467733811163718823829922472520950712877650013104606736745169948795699972276137895272787831011321694563590321032377926271533854894879539848733499989386078223656142738993318370816652082158328723636588461213968808766916294082836904268911616150753762807141498083840760377294488193858399947343768480226475149124696386753745646435196013422901417373331140568876007457407981196532594579373087958581559371188679380316268011301534784039872215400926714173863926051715889402218460635244122312469502312192242967631931539251583949955513964886029420824490550844384068827093051103662245319111275141610584330597994904990839727449466015159592375248677691956475256398961733139858360059003663262046159151943936098981355723191073795986473873709864488403376673410310385618239310093856138731666694669244550289259547721177946135683810095766474140436798837020864661177511369346009077083837047803799801450950016559754832029285675210942918810077890260465312554517335407795317042828097629667492454734234682902574769849866314155352974604472915680434189651912812685417601506586738455351536578532516455030299366065344272750693846843704611380955040980038559642153271655152596920469293595107584514308261543422173578782521898205203184438961177578137377578339833361960420487009150548135577593964735713777316330032302352739178593101745361771936785937291398152488757134392282478744907623497343942372134119383266361100552204430073980554933592873699321934521643558585009079387710997043358069615335726533530584145178166089384891356445432162864612291202393149155804811364503725051945469015716430116255365689579941000080957250873638707823057239702248715615069905483115201746755450354547480662145598657707378202743967121996441343299904000278820251356730925618748618074220602153376171081806054649935090789224470635739887637549273742563357001141361771878752113376695364748569908758400977879991473814515049891313212255045160167600240822635628828981936411432329148596891857941324671119467668071637544835365793972535646677961050462320343986915944651270041246171759835734125028292264984169082544952923056972754476368402453157269274148629789096592599643845398934959493654834906844394570227178409938746977443614718603373373980933257078069820688064651018385419552431930520670035948191385593937490839341930566520626689173287081752899090518918069375077351451657235503081373968810793999851660615990754417062666910479133479853962686793555414729890370324401066654110658052993293164907763083581945282426702690009311963229268822220055391990263000533686746880209542791768082882015378495457897071678050531858092161634295496569506069842037680671494202314205892150492866121820832855951426986274093486059802682810819079072019687907303216244246017367095112816609084321037325036357360074385091357328822180528751312221259391709131693127670580495869172490568768334262939533063703636527262356048648035340433390383838249762519532769242675487470666759250883434923430586454184034703409192473088933603779970527904082040993536060844925485209454467071345476562077939545937032652003002639750913586317982021289853428423480347242464641159980038545009142239472705199927580422978154135463634328937273512123496759030577793244629798529325134871212505258943904008162453644322690990830491941587506720221074534647699064918855912416810637981203265963158209061661194999783917893852924322590321702972564681426730781362337612224913927395261773845872662678509759685166264955805645858001194235805322788453717781649528512378367795037108510389430369414922895467391621382709189228886298166987286604973116486498685093557179307518741334102013689368683389519341065905718196134561022871922234745437661779666331584615590326838313659432437970160699944930901726693189588531491294940250396228742062516426693338228608854730320658346037853020826027147420728946969572785447423855331223893526485730406318038440590416752286477479317236054371964110162083116313670683383956543338561880342420879397235108849898008226137839480521921857162906295471591286570669351569553410483631222371053578559004855064137419784005172315668366009004017588464019710642869510265456924195311238430027911415500883330021460467833987458081280193448876607838680903297891115013366288169689544208578272744841896811276570229793762167360711029245764995562532855227258236686208278736836196483674253403264318972219188866576083162242584138544184641965608700400664226309596041385005510510373305532226049752784589352646878815008301626369168499434153574562883888093159099409033591779498105417692146155940417628347945196537473722575902474644630266472934126313987635108147458254679447231532565149957247749030956100352562884695256441907773862259688779078802379396768037137914431474314307547571556165438074544588747966401436092329785660792919316394926404480724485927365343922320953426286929528688775741923119101534326861289403819784938103645716324441285168293562387439535895213755130966151400330417779346665496827893128215442577772830945830390929667416866946073885907707661048885483443049383499230421077666984039184416416993809857494664940116712286360369575451581976986523368869310575319778007572123916149856282065555900789362805961821793127926121367126766880928842022628560001418211829790304435644027583436938175141179255024765278145065696800827933017088352454678351690110449414340108081515120448789584518970629696848047095504586895275365034922581662106888175011335486497968178571449730443538939213231551748473914030606323019678598525241747633554096751207984582173399910832010799558547172893279564601788264603983398049872629057774948439742413740055126002561282384821165776408298025348714305203953574397469895898974085615730837859635557024876627889733009837480878862366101205345690442661530332783359677140076825820232980532985198737862749282997208314743939091495996940838945579706360965827207129107818048729989159774813209016080148553214640624915334280457400143166889293735753983735229611155867003073638143500738140604116394983670148257883461534734257360284429231852170119192170565775895573450191220772813319568286886480425304976568335795215417670142824741554162155482652455805250435492126292283321880158088416065376108190050132931849454827123151301351710392018858033087339517279139864710870928155664683014090271533250876953256845756389486398335215267413898709959621536180569669767505932332213136030912708839230218929763591460593015506338723926060231435716191699990015488859845329372846198892960697455124705634641773382493444837149925240005460738480562552342227236431805642093724850464457954770753800887573083763116948418585966098982350286975212265825676556069267228210276367138735364895953191868827289830325744877831731688065804686000261889846947598940934911884583407675371442640585768488732626612125647990712580995192711001030936220778290795875601949392193024103552890234396509482834551109217230603787253324617312917944462714108934298201242931808619297292646198003401213115440042133089736652348003488002082399734418266914436038354401822497200746309417446672827266794465528432439571858380744992346313341947286824316693293041283268306284733083247090498777299321015446019600798213507041731435982354299365085843382236237771189988967478922588114435477731239963744034958725284114077214059827799230516179009319488222044873586290191036929433814276735657977880564764770888445779469852484605187419347795801999889767367002439794099859148627506996060493026219671514579611111339200379875498693413872360134159012926520306553435322884974697050654460477252556888635970814538511195708178613766627288092366745366954120267534583146742460416644745292308910373128778574918422021709743047961702094113888066324567376875605203364066147060421091251683021717809931970562459407113520908441389107035430809619478753432096306017982117386506456480258472435078539280826899446237192997046838159633892499221851845243025664908508749500763926512367171447987559638431377148009635895583784164214052694739907318803535232741366855301972484622513248440481091507155758202549548088243949549980908703113805759474465159011269728796889805113632401843182251090750333964088289273656539306481976699481772789707634260127876183918351044897689793244218520315179286964793899654213560894199884399012594891595699616161778141702754183900816509650182680430935409555602309233990029925379858346182510706978273337117202749857548376726290324698435245129067933837338126205985565213461153409036640290552890260876603896096166940629452927452218223564787068473561812881284859148977670553924160560787146532277867295784505726151270508847724497326760753754809986858807214899991557064246653627274863657676030543574460547420788295924979537081089898413846009081759217994823331974762102046503922499460754027380769055448663513489526215040682759580676297758769425082005177069175437447464783146086439005471317327204687859212527453740327097340716440724945818501727733608329863786990817157667930512163759713878033673342827948947650140914451975802808818225898595782084229947414308541899174761726250111023146635638100768906792755718724688274922529369150001966180803828661464465625492589211197144765087629504264294999338327739955683163841943637912259299992083118946671769992398848820483959363604156190141684735685027565647406928671468758968233084084353008437550421839878743884411427172293208847872488471360316314589194084773505825013524201356496129079110082625332394877386673695060900289259232721903427973516961968110289619773410389039274492952129561741319358601295462214417516708305768033344451922978648984129644908900005165021672428167249612551885786954145410926527722277741318491270900717420151906721143687349765837053040559556047751850425113425737856577861243812602353125618733809618279566014893808937711619667535020746216316908572089159291300439320483668533796903692145468672151531845424875609666286085155191632885466251312748797225228739237221717174553050690295195318023763914838510195824403965910962026966560629082676828236737532544820357542753600053121649915244435681590388524533133652285055790150136916466416743223254534180579033071141732591459084216440167258392224507372130048986508184314592040845281757833577977096882611585512115474409037025509557313782095144105502043898496306132674521763025158284370627849533295558578161355025895645417958085498919930566434844319452639487994657608357360651597154333500455375934376086712758165199313408719425267026745026933556314866472268669984598127708611697668854893551618398506984147970568777786556807659054857904045069995044235998281654028662631802206080959372242120684405259022394788354594838540881140392273944785463952156758565618846861757502261598396347179006660110188219518129414168233784854146305046767837574613658188013336187399121770751263529955226680548398731122979306297111649819295355044858573478954120972675745210414178837043909013402900107387512491971456619134382549369140063727708472352162421171019234153959423525297584660647570613363975032204495348781153279871371524158938948590851116924015074799253040872071010271703400500326423877082700633798226395934535729012086293887341621463342627400601411711857200003673153372788762521092406879002919562625853615598650179718330822659471958282415217067290529858061956754939556809946568973762704685620734700705695421073383187656872508978785896015178586957936608741027562971152809701576791514098951552601753763561476025867985869692217955541010927415942963346004182852919736690809202893385595121789636172700684357503603773522225297001919327051801102528583487917934207691848506667336624283320361819658715151646497268878701350526520714587903665396819135672666104451415174987712280857980309839400075562682672555173375068387627808455771354481650737825631426897325345636633669972243415508034546946775892710204839033211527841739563762011546865184295245108267087390638835551249449579597312116571758023037406099269231780135773276045305494619856953107031094744165669942238302907532474882975816534059941789191642589223620600357491429186644786349037936222395756464522778765577821138928093809877582654361826489959661997215427216300169125955846139350328342944161328408703861597627705536783403911610310706369572818383312206257539173636496123228469018273182037383390592168030687087591197721971438079165700509136272648212033274689864490389388026776681673370987238823354212799238113120544811581205670665816491605117150899326279021701882466313356365028394548348287595726167880541068050705563189686532491370953660317224108316685384487854938491066333581952718723777662809503421758566799444844529772751802381773070234043585758484711307291094114519374392821989401418500590440516999254869615388464404993982481239517309870464166136704914824829505269762585882496833195792437794942166121147704907398638684962562300468127279119642562586405460955889645644647337243802953903359993409398254317453282713341130385541895194954953812777460447954099750598845919543797287107874929618426211343926203690309235677527367218694205619095953749373168708014334702380271128588640672734150717374348261864216541087202817495574402781739723602865225124609004258118906085223046391887184193839971494650668533109601126542770588064801078034719645289811795412011572155684596413111429457317547041533294427319862562052527522527316665706885725117634573641282338090834761705142477150833586879396356670812096502544619067428454688695137647926181021090179072728316592795285513949257673168856934851942071857657502074288528738376776325500311397661033260910259469052096684818476027963767383732946441710398910776550112033282666815514036123084650168262618223905644544989996860665530522873700442874770092144854930081900094855150162499891212150192021248058073369008140145627157108745589822034907185672002254126962687223063466846407452795881054421384239457926458858312621368240296332473440331603225159471096464292236934787751563569527287292466825008362956830529060670689140334616273682549897141588566580403156908869414417920912180773438761003042366720093591799521938419039850890819113419640306056029025596348295911015329386113601197726639869578089617999428195136119293956161331939288660523434633732388491003618688641238925677863551765351970793478767728510429287036220680904141296610667587003916049166022927187087322987764459960552753212321759194932182746623059609876694133040055748479743944405703629708572616806015484517603308044318108465457111393102079453424588213587815131827695117811945651759808546617121258853844876273253951840586906942691713669363643690031071800701728807751583146187780335892733329423259850997989406798133038668943633581693905767375188461939803926388666376133274791539317453677486899213250772671815068320213462018481127317253005761811270584327337965967906323771627411439327517131504139382184775452816513402784231074872388570144829866661099280418932374107365330425891841123654671535422518802757911046317604261438554201282087756647047872789842468423925651452500994757132167533768149324169842560558309391964867024631264189115426950031657472625185943197687470874534986735866382275285155934152322371116887255737617219667127848979549081101988410056518891994985711825051391507065567046203026147268605749551578358465949447527513369148583685076189803047647757049632536445282311248830569873574913668803113536522390911183292721388418502636507709232159967635538725199043596958056775276857143602752212320121992275883277500449674987648400593632782242309040666199993315407016184302049247797240364981275874455046833767896848612428260353872810911386858946851733684498796462128708884028463056721404935141494557356024013239234930871706060323960092330267780806574576082148013658461816733298583126843342317978030175694595877088182946849590840627069051053825901486235504821103582888927935348667465862246009454590226279589187674607331176995429382757979233271314901557327466606928191766272419473740144847517443291251710295825929517594785861030405436480441958474586594822063647782842037091283306250114489397302322217788469112884906228471985111720101748702623934428411996480952843857074864613152199132184269598328987398407184569689480109455942940616646999708429455812801562603367027117448772205110467082090116076978566581985420510603629616902151818342414284719597073247315037262070031966758808492091129634722343134735211326472254402280525211705242564207602616197054047884179849696008071069904576986371580749106519245064105342713821920125448170111100250758016156158166182452808120820551342465091375312063494314613841748080401381485346943124954135021570141321307323869234738378034252502627841716391164836875757409299673025027536641442860819818052550653258214501992004131682408298441860338178848431302959486064225600746775079328718936851356709261476705560115845629858565133495972740239644273405751944834429111060514519552167953489167954471106530728818768915463034925003504932190053484321129712951754586200190284828264182056721712409745141249333951706208717358655078142693158517895253931172854883967834306448055998642045771859432196983399707721445203371071537608269433874756745660005198397723177225252160337114838914434902076427856361507601453290211137517238723811234130127449420615506968027990957365386018965252308671115577585016282096844610362780299411538449620694049145871949463950501693584542344787155434688982201966101515785036840247966572742627469401977587184625481665996526370721903198166173029517189019873065849242025840621626926687436837455414521214105995148503967352234349930317473291105181050118847004173937100362146298449886085783639049670380903460351308319302162614702404644992212821473035149915907575867735122889392363111218888112353813306480275957050557820477557954585980889161837305244190925305038089615773207133993623262767787383696630059099430973182105763320100293494571827628602817142710810649364521765572730798759425286538684059802570605872489088678342983111417959875949480961755421469200362683399383521075529136196928428003704266362237608236693275561431536851212545504249820135306160814724761598478699181832897804464338684528477734719719408814368186489248326759219197570814544552851014827258887355192221033443344818368320543024321473399379874863911675108578425687116256498038638064504300600235455610245276872009482932566975936855510574920679725424739401812046622922499202223812492352915365949666734972088246602440063970094420688691141146940371146415442755007484808817326441174830197608572130238453247824236033118195943458489690130946595685414541933443542634484965231440020352246580318279227048074090162250030436309354366325039458787360574552758227410309552351156584325783341348181546483249701841436517679251849312676065968311671491941685434230485489172089562658721940839534390117825072840865864838676400406332856634268791650556010822982277925397535560560672311852660672188989130037268195350640033157887640196184997763489566499884934362532456105888512426471798618337466749585505368562879454423791917860281101505177247289090500168475181785823464529288192344646384306294488884439101797123989296744031483053891880591934078678387329645648506180695842051026432002159201151175290379726101491218046645929506125125947894890755723700639732485015513439131171913144282382928329709410494364685452962551912029555286307951889598621979990959171039625022747864677274423636090822681206800452588441906612130251307750472972643471074505016530188756443230827237048377695242439089463462225380728883530052121423810305027012983583502815016561626647674184829231457298341678101505735796651576389072915880342880644826771885520323308123747010916068502828359380598598728268133734339760353713507132605924733814839782623506989876805572192858904951958923894670106650910464050224521374907401728368339383167051263832201112330204290506770056663523032507282869926900232650511068480790127837271248293395162002601706331577339618486495555225738035615412654805247232956564387454846321515024630725247467878216936258275829797851564302436770134280835563797045045503922309338653778094639778502892008538201874821975417584464359179028442821783346184385513259484445180797229338361123293352271018358593752037754071560737036170736574605474738391415666247689246671629475704490867263539080643440562625406424353175475138663925268360012146948042710966679833908684302714137725655272749518840427100972001080328507481247748270069152918537249057014345503803049364043301253130014619071449330699045713307543574137372862165474035833071649964846965962611645764972199279653416813456739125386919019660614594914837039253129833572654905994869301522563335559959819486859103144557823901247731757921063737940699591218642628703976644335388840849800007100390282573993049645959721333474614969591626212477149546927592818763838441846733839435145025593832410743717498564230006203528102494724573288052529998174823360486489588002843317478670209421722548528818316707958231782968829228660914694170539929619634695527570353054527742496535813428391294220198396905609693622892671431573382077175927335458334341548892288184503224097924683141341065845463109070491377072936266761843120408006601189023991579765365542303751473223065874578790623046170978433951634328852089228992432884118580726105583900134634268987564432417847188682273359757806241803162881197919638501043150690315534722943223464775406608196728141161942429949199172417911076735381862663924704490377374429058789414706383557161328097138237190337583800694420865068548825763289741168024734552698188816401057151117958020365062427574500335596684505464779335127275928575854582916557676781189702808590131206839626399553262856338494974576090086987949048229653527969052175827925555705024134733433818218387363991792389184678749587893252501509209908949479808523326343914432156490449030260310788782689802932902082935977647321848260744995125518189397902587149927315004231707293760135800477166507320866578618054074003424686704837176058950046100386395946325925194654117453967688796144430327727098696640472726698636099151697934455837233579853498456749177038391900903418836182554846250486199440031965653483615660716478549436766390303366836062379300302992729991115868057113198432606932175076615421446579382435150749391503737254134820053940552609580089325531541994195038342746751097592596579506961066328403955301714254011336611232664108537609850640490293760652962164664889621087642827939955877926258532891043959240389053201514329511623737126498679389485803486917955476167158705944620341200572291388250275444568172678297298516334708491790561295269132018114319613808964141292744760705580506554187657680883761817225157959303546911272908215210917702134535913133656756786677343691312527060068203986822556941643970073154709660474057200377804655703256175708373103996439389886289864492748805287808400280990129943975502000318396077986201100234957880481169868370465075777526820333346692552897938549421479743199750011537439324998411266831055830395407943903918609629533610337971678810197928550004556612776530012979393429662494534412139101103875710897530371068844437757705775621091780666489001732954259679692872485190591851819637439091755633612396317287941920732099194023907374459025856490120387275599385748188868994981539060279030921902305113130858243776890983924483301715968712474058372053148465386420731018317256985618642926410267989999378540002525511319510341386121485412491293325616613734158716217992717800114149732376645642786418428539761374615212501557114199151282444186368561568920409492052537029319435748070750780941982747144846005369578498646715328934223416753756772155407436258919841554928725438494045231888184434595592408172176584298318309933360776108461099426538466683196112586306402962233771305744524880019462692226275374061886484259893149021235558642858633335097754125714159974411107903471238408004427169513430221023658527260043181034941432844876516955864962705286774858108899768316520130480181367483856147499411597654108636917922214487982260543160321125386444014038721903993009846385492986227918524254524052487358306573395853629468174839231650140544781959504806894051827464381863777596613515941753258145058292375453330718248845119489183762925254348344922585925773089552411119795044191712841537422451389775971117451029651086280602376970088637657297968066935246225444463925329768225337923438379951980552540506479214735027284588107808835340022061363276220524146162282401913006385465456855218682351379712782621261871744250969661379491881132073353535431634905795456428798609260025767192600887932155051330309201211819375652967715627525842713251094761083363427533312051179863439070908159223098122685926653953229057880728949192015956844908878665193732590844079413485742683830994672829418194343583887877328476493814428493912054362453924864049217829999826785496422825224913011197690559557466046724167963850556849949494423432324107297742881011679976753375614587854077922932150666173003081613408269443854528264255381615006424943374193543379875720145697789882496492078680448427709412002615994728934346434650864572961917732387869754211393696375979112441247116856725001784016510949170933485991160420845222582985889809545193654403751417706984095864945357631995078828106620720860895185986545817824812464240172521924185647974301707561743397543949118622771541679840243728733711792470797684555592788619743710014776759256461460274722264161821186876980530618546867146828779785850549914488428013796044056158752343391852373096418186267856801546573813886344172360922414589204466174046992176190663355787320127360152687561326218681346589339107175285432048660952363176007766489507616482621784642844878398431799889456995328474137013087504290981595612938133281842373209134355597861970295689157798759783465136959500753363266211080685626502357302785730932253646989141642227568521414409356177264344852927215183307908528407036379527152546472123267480556944318472430834488916726924711410095337862845729684982637375517102304388466764563486463165296631501667439924482189952824486128414601375127227471793622416259786316827829625856594700020035686911772616303458952622364990076964025379477360451501069451234889176804232781758009624992980088874185223464583457093275226100225659853674137597860436554178810686198764051131494605553832211382990182765100162114864572752886083443840000452057763074169970356611015700462810837212552428647663406314469386835498861290680276634138242289597071296823564634354428463485576188745185727037539154871779587936091171588955583946493664078311482014469257728613745627537516005555721719169822488576885135609143665172668044412141940605938723468550656309147198603542808772432354180274501962310244511022711581065374116974849181786725164144373203700494934990438090303571906643614508728348494323777907854179819290619379803863943174387909856908439977698223538297549177535723353014368674862188558854529927416259540503209731322281777356182388084676539518245766643843323726829287923565025523785035762652443625300594416924620880303262605991832357753767475835193972462967554058334987072026158042099605806868754352844921917334930852773176003652257501348905122782999312739098829654745779337151949246355626537756080192351686978467088836308755579100655898160082734486565094027305771059629555912951962467417776774863944894125302131442297101444817747009687130683774315981355665970592153013764733291811343292126085283134693857682572920346434034935145312177205188081782970315214770704200964717732149968941047577218152759253079788792236732439879261312855411710830152885985182361561611301638939139331383619377875412677651822982954730276308293080430858449008112747160948975444396223433776949631433993888180997420271476189726375486357277256107454895587312735342347449997168759559926661097783360283130997980736598359765434881413546705137766143637656199412555953411417470417518814401504148614416847690470897114229453915934760716837161593065431605949057467667821573492123631448215101884192299926755772028118972505755935431904802776121569039993042049502051682121325079777093049235167368370518623022562404396252670330289673429659798103401267250082049165837061495516924533780432897941137657968289579381412300482615689178162690259168868937078569295914383575933635803154677745399082219476608353170115839745903603528062081189360000011388571825894498615776024810191666722999259041941755165198487768380558544262040900271057926076173486305056450520591111764562350119454233142128542369420240046515555619287126101414786587641551075480880868308575328669178038759505375590592983213160522380067241844573985701839133286963775928696590011917642051637871092625699934851861114792128493530490526530946904470277236395189753462254375606876552346882165666738917578817343084638076072961082840625432129837239282441138539664190629041636817723683198780203197253340945253486460352702288146916054022513349304357365509155854309113897985732349283805693371028457539079494413981497334977536329254925162072124051487742239520027623990153576827645456167830892826458852575845665392739840204342545870413942210400248806605098732863998028198318330889668784096077093720082346604971649418364766855551289007225453161748788822717625010426289980679010464223843377139478918547375106365395184985897987705479560855291682792538100589192413158602155688637951230407365310879157645406569290007326133154416818551425577095382502428364492554546636207863471808046416679328958519318435271702271648417442530355568216928949151210974069757011365439278408804994727292193188587839378621462513548063013360365779008223265540958166065254694894404132134975244922495989557642926626084066378806555800680338547796606673331127139565122484755114830664530515704550558170363583334962350376370437762649385379309633003436031034301560250694625121758477560716970430509079292643653670047251288086302361566415717726533404561045247822031658783912390282792361054210093335509284389237805422614483733980703113196809503161360188678101454097493069927529822194965107794793894975240105169311028985048771608508044173477022770056561945949228941793037428409082759868865685388396765961650113505421089960873125369609319566010470569545196025956592889611180620298096381359538201752588942507596891122193013885165620542946161026624243142438896573317431597132746808257551788235735038545714320914014582957061004603743538154485909954335206090427412944978756858182978481872130579696405971704155843645118100539770275534133911448057625177769466960353956927289690297260761823694409812682048017112851763357585205450815079288811436063430846772473636076504334259065575734695355134019178891674098791742295942518601760664125957000784111482075687810297532773065399307007764338216470542474466159298654054836732465305428218362237131048390252497425197640887232348470088895447915488408187925790733388570904265399987127575475126930005551317673024938073107085865685538935370985394081174305632092427919059607415598757587283970040899659063427308380592947796740318286105848140853069104214191005081701706014932925831069827544732119960050730318109920356401891869188791298960968785306997074062523136984386371165746521132945468929970820843455908859905249847478553500957359786434669921089546923855961765451688897743319266244164863178476432441488141441198405324504619436457244674672402148113831264036128406384337141091980060330602722254937354547154280099018845532125071904308727758401284374162309728440914010423133086762842039117251374173221651925290237931121110646171842676172820965641266814403378525043375651357716930788438950113148077574420468837955823295765422762087662645064039774229958571264898725867329279627241759140187410131258184803202507900647212788848878042096336322992082029290626993195128732590977084414306756445021691310384520099951148296636936005678675421568790260049101234244169159568964720969341900600038457923575151856419872093071187246217213460631131747901826814362350948372153522299448403089842110117393996978078946524758646177791870937817430361353326798558389207298794122163564377125910968985630887045264171370737064605306831579329631815304879282839892871698523603661807399807114064391580121173023012289495200722494443177997568567977510835990840114640333776627073000705152099606512894937854822736915909562276113607956364553612920067740617708374306453331842695679538377641946441458521585373797736943984369883397420481482159944945148328794982125946131484791491782906934032906880652951974113916394043073889138212716135151950615940017264548154281112752190951237073020834343181641135158312988801371076422796571093914059546696944342446272250610190280356066565738097104138629388665823685564706253224520642638383631657372566247754702614844689456714476867111205674552610521760176303960456370862182930349066019339594974706123250735431725141894441878991178675986307674524565054842906806583345830627971440745242730533507896789142753613716627772571131837348254706901799033508012169687587257232995159271778270407206711899457902301511526022516325484148089401920927553713431879210420078712754293340830320158535070742273011671298405849878726477003462122532000753520252732270261013514776570837915055211856869299959319489823333469851910652330220085482522824469658056349794887468035183398840473664295503327531608609237496885674583484404341213962620342913333067150703070782188104560814133112795317388583557813747136487506941277960375218070292583592066825991149891993720367123869643641710890655473839052215824999904720407458786408352669159874089213328774187415238604233120774156158690435561517352680445737742014806694358253380666242432181820081434010315852654268256632449279089053744256637944833806948094630357505551381009878247432027955299826022320488132867811913419211038939735738560591205404175333030545404415755784838507733331152588687815545202809505142802086101678055685239119998531442328448672664473643072329688512313753433525681001039532514659451346854020299636555105441739494543214199444025853794257458556930867883794890850680741651588695004748015134054316161481411097853394942636961576738449086212469968692800810313164798102368855676538143560190994562177896212023545897611544022432952723983690194666909034079306533802037161366254769956620785284778492726804855017795411025286391281545764680165934410071805110809365600702993847160002931485962057971779947449173175411864024894899381065451844588196969763473619131507347854989973274726806585419482821286552242171730372031596899714916928069894723736851289402747305389783234995155617441326598646584566845121916388681656377016684715081555465612094935453109349254218147820089454058696999032512661174255618261190302376858014155818962754697961465914802790401666218825142251105302491879886460993829066912647363035929348236137486252088135798265562817441366718047590892864014996564900487285263746784186762207868106982653928208838277880662935058557427002803863149363775409698822720111774174070583407148985105949486831075767896272128818145497231298632450243302949380037306197132628980474494838897942571725366726543964802840526647116772308621637981970660999852879224849556242042989619725909752407090076329549053612073414542535457404834656330435993520980732383000692337788432933299286370498196837052462898182787668711304703147073753083011724712825192159667057192299770114991532688660266280514661200418902545316419617156530044401300889081845139526163690261907944025926457221332167166004379231209972405909334116505572945656900201845651433674028657224962745125434707311893138236155826992540922979415036636666749855152454780029939364093483473115196565381585433700643866654636590417472988709703051645789527716588549148532097507931507420119195118723880882084346753070512557852983760704395741625320516049849387920610523739496660977241883673948870300123410223113827615072055501567165471507825170853847414200968327842042948976384912824831635397961413435738329654917199880375901985902054729719081907151725516162224055904790516611885981644193580051535130098575467805116436745950301994577467955365644530141340841570281151367589983936301282593935468843600946103458243676379642611567134242437370050941239828192057271691381684966765638594455346301643552465842054645253778768609383512632781686072843168855070075666622805457877291120468378868500882796004023397928840974728956148906729308097194887209024247192059545962052081170562074812233768471594676578617597688423819524864488431042478262355539675325797195899079024087200975164909699944214867888525734830184919575544364367953364990691404281644002097793475638605963026533270705712737158129932394708880686223388115727863236713777744976083164555125428008864744837443028784297642516171023938814576230012452066064313231268784569781649942469438168327878004800197962168403547922662993446565270288751517079719761049372541381113703637031334978464267905643821587854217729485736882171074879956253064132566410965283471816772354135866321009197249787822424864428389639176412293870847514159392354136918919107776865901383173298067272474146946587008025686245017516397926385553341204547669886345442530404572726037869224134430353150306020950582266191871513389157275559637017943205339256188330574447190174534184486532038550833614742272000184546456775868284825429820789994219528280805114396843824616539759450425724938860954418956091654269963446013958529775176840477113322646861125324085279705770611650339861866485958968088092491219021255536570007626745290396632852978182975067919693347711681529491828218551234777486364140247092771426579503692901298081426720329141470927044482834295948787641005790830229895191398359879353606038999515454431003076160766918720977965346652914999661406960672077331228886180221511293064985035904411071897914869883357234464499634946568778937596855359493940944902537025187433904241450554970401001105533414580764867544039992811848452428356861921727804794594698791756874490774677654265117851641931560387064304721702253625486911514840715491293324015912404689477906854317615717400901420375450216055160419081608370687220573411664192539860900155398046310910693324003018003284080485965446395592070645158541475349765325069600120368768052038978124066966799794665626239983925997134528259327994678032185678241917480997780405176558362929413898111502664585528359985478581618619522377522829593761402614264224648143608606145422109772439035119760826643757084685465032668909735959772396280787730409407997834697424725954268367432532860278394022663336898653016931697454191377094207815923204854870408310134376985591093003617128425852097853779523642752802438821629278573211763278572288847993101439654429970915469883819431956417602536309700983681732433234888252588489971913300585569274145058879627019274756682459987262468741267664208381857531496029660418724961668744285017207283133725253135008622385020101695040196000781910646791999990466851767162511241736358224979287181034455885408831765974225258638107039755100712680704535369695180940670747849038316818584043895406508471840633447752287643588378768840422641999961579278073953249618981214336581540943780904715753170548587207271681340093981429148605015619604994723398817034963491697200511350015660672397186177852686232857549947300490149951875572717993240476870387537024347659145716800744708649367891543623416354160907631132919759298967494380223841362240351621289206867572164980864351845308531819958759872515044125588274351882292948330871116573054231692080078207664176777018027638431800525621942368867116727790808811004702565709946750635568554683702388777812674040615121558583157219528760921198748570509800807488574990695576666144149753384019346970850247833743295565004588948526580253593153579527573513485616421327232052615634280054845184974063163004359041644432167288446322958448346907553478959162393707509236644693880101997060239847458953048760157236000489066742864371357781083690689494477678811832576624578077667269284122474142123208207895266075938110051675930315639724521999451231335856154762621805997865564495587276881521803711339789003133964319911802739162712003854587645731313596866363594111509381060527260132853979374584083678791948670606909537293766254778045240314068314149576074802882704321519910438864869542602187534367542152758176244248902493972483462655436039140795055189320332787679315310406510215335316317252585493782538889146063127244184269954204523436598380718215379685326066372105771019695792856828405989700721541686138855214246721716012252493212209473717661955670304876436477821058788020046314626811101077856063705848719426226505495924198918073333165032039787112512345463438603665045299215195223052602128352162562995550782113964702899135286086328503179153922553101770949963119171701133434317933349483624320259166804484027213405409866415486243427704917809616078150404288449355188347566078834199751990261222483697826853380869280085663939319797599885953464481507055152858189460369415649198384265555772628058680740386282965407987696261925628807472216667034105908111525082205680191311262623076404571758738399315376209199187309378657617231962031898003078689102555863506413904628535530560720303367952376279062776235201426375638130486497758184086006522527354832631989545388800673856375652307027304282616298623297209128624046073938515884776386014817179492790855444181415319004755587251332841002748030288125361202208979289198601086682963658436172308319632327553559022613415474261247148846042313937808132998220720231757973630094961604013148476070483608169867875831594461293232117754214702424341467961718790138789392189851791050624232042509121487693788029976745947886001525615918670526026029466369719301538757686596240533122607724996714714550069989788547142769282372213079661022549995841150454736633244376629719954775110872088397891344943558346636174233234306314017305461623650490877641583570891217566241613065640886867180936459313337231612587000856747324950254760556256617973249117806678294799917594980105171363121009644226067329995055484793648710145868195421251061641395314884978770162007234332220045757376851165180791359198021235365045974357124636242730792808692351442775424631996345089803074066128303306930944211338493223844567472270821342085824803752332812809215856604896185428634846595579331240197191643315351692725003659689686418595407651562031047233405047224521870858891881164219570531120251476503738831010610315287873759449368698798544552704940559870199319227357369208518718010875833302418254351048344897543636070723093829617034556518383657505078033259300125328986806497639712497373222395018950743637398148083866115431990904097156876342991814420084194862045716951843713760345620609746547292872089075191313799574735193375436117762241091798974445006577659909777759688385492849273741074196230926341144407881875412946298547586575450177741491405694751852698001061214866161493528893815407021426320369831429857166839509272364801421948204520629234009142120457368709859221030767608012108943946097929188002410746585260952867092723414987336028238755333657386940625136507804358818112254919532829655002186261824508548798703481503189196180478980669166785562760858532722854430048141091832851082273920712486877380084062605873427329320762405091215984708765875705116546537417935403819019685965098852056624841626532919580441952215892115817945303347133473732965405965938292995578744594744839133840854507180425678749529099899217890916626925346348723146085601080453974591237255361982479895041804420815606215189560508449250587144794720819319554759278013033424040519413838035778573337325655111534438787345596429259912975890674257364597174409409648683059260552853831921812114269583940731419063100798895755587291868050966370921197823280576216289916279215601290584834231188903785586145508243993982740563231525862006400392569224473735195458085833103573472175373652526615804020051266586232828014006918347550410571916001657419247025554165942800880764552625432719284422786809521337632050812357345062684246262842295878105692161983603407350165096852601933217117801243058405068265089118190793703263997268018467592065262256527633178700708034825891130131605133645232311360019107005379461898177227930077185709027678266866049601210925464849193275555006607439099522955183552453354084143894127736384092497523694910245947489696334025653254156405884253437790634884604449512041235944717973506836784786023029551167735538246038735379069259116494169718209872421930674286451529598188552802024892393571415359072676037256670583763809759237357323666736007270274569131431020353651686040495553178201553059359170761033133234175215828419195326670245885005888549937878110401547894763692410161034421985642971058172592599748199758349926966045133934763452665483355236668666250582747624002716437462630206751783044093509477551059737617944041296874039500199264031045273715536667049721889122347617630350608591945616184872645594799030252828272263945981300484881074771066293959076542821245772284054142067138082108495360618422682249638497676571139494651706278710771619269723261805966935118195567631427528913639912751631772220604147363265960355531804280602614545602535218476238905389454384245297673484156239032596998600339340815767952583967780960121720861332041041032566077106625690961537427250533795753266037650956336418586683272302928836470204698848134277769805701235858831205912166933115043464646393745325197649810784667876406672314063746228304780544691445327819507132273565093167662198203255178173021540777139477298496127193904188659291255450847303208254872163945790842373308544148228373041089253857873130226700142020117330114605457109294246021267135930054862777947163841890458384603772933330813093345715191222404074660845378304177920815111619901426676441080472559850418126765686387370549606163343973883553274550783770996018604926227407897928186428273484961361823054523027881051232872091030211722575056775917846793136882299198442041504795624089549363551689189953617055478067980708771261064165724377001085659955998828653176880476870534427970102232107878675304960489199723458246342389564656026576903550224176433649404849324655124342498881156168027949441444383604335285503113250048063837922953684665557844683848856355839586752182417664465248788534422636460640758714802264014630180315161537885582641565101555256496283919017631619354528206645787922402709120312375652797712582837268749648968302312473249611861204791563775811533123748060042830260143475340001338403944811788126828031460795593260567299952018837938936419232991542056910917013662912328043872677402239000641057388307759669896802607375551333343418265000315363043099246827967410775686541720575527971489806421829097601294078242383160569611457634012667235635793266688784061843007751262213957701847474258632060007358474098393573042553259062500862430146556648888677020330736062458454454328149611806502087734086480641733288467755536604881021663433663356594435018622810077390480118614835713575628337895524365205945747767861602551488607713976683736972415389907253450305845075795460535263282744214319346885010688293805085553614781715586636072792396314760129140870827034189921237741017758382022971759665826850861118232708314681508816445022406493111926879430600935242156984369313993380420977863655096839838684626229775345178745511198474443430239385180797231946121852643674776859292637311803608222135916605388639405228505701210101845771770047852171464110958534563401820157249092889807845006562592026148753838345221531103606765982444047558303215707762210301677092463031435513591065715580530776986797236097662766695251321175133562494279078097798843834684540704331331365954583047209832760214289915657591501531666481465944892162409126774453266414005962828519079574030274629679693725955997682182720422490397785369158653437022409368022413813993084840216744562776769785062568511364518002626290514404834699765482089695984687951758023084558726038567229850571921169196830846910271524482990914036520024463418602769185684750181163766855090983833823780718744059326107858285023342157009765064094354720833434582973931329650365020918723781953222130945737638085716475944543539684233637507457957732078933677226113573709544665018421535749818309738569375239248306469992825679988577558989685189491093288387128698306365388679362344858629569471050899636751002950035527013012420052480108414593813623660129976103161224497002712103845756152458755563105283533632290578065933815236886773777191207212358955669011960716962751587573349279680410518257688588755327268579753067996552391403357980015815968020658219961918555670997267146114833550496706414110683597827078376248449457189299611632408562461897102080402778909431797427066309515751198657618644696073437158981262421190191887175173588169304673759596382696998055869298978121950215762006650660215008468376672951678749522962254375118451867938629060382738062013531008810405919731757425117513101647127818310748149078872782972423710767762788649320875027276421501335216802381042305982038053564943888707446279057775763328658672138343938569541384957169635365048489676205951377802192297852295157625780427106212058739364507831029480087475051543041155248693580262392074993554713217864978465813035684092919184326038255700528912021305835111513241291816364586847994249359032091823946824886665245726645516711496685077503357764541434430678316795542355451464526504184083040735069320972518973224693443208732798957377913069836616536513162010096506810377382905521048874593639951066310737953778519685903438720881338350734667807193863088512068273878232029086284817328750458022021570500124613140656385041796636592363051664797209849687962378424112197843722245705675867683990231297549147981426507166435986909498151059630590094131174354116681084969188928605815514879645808668783535532442340186395140530062053302760459564486617281145958630234984604867224415478114331397170335729415028623163022914450577602828918372548694168222820083757314514494714082778230572431460682961302612389452186423606812042065836682009297657203272083657586815675784428041166621711576281647660758534813128922471486213927709731639207150832857750452507804464931690166305542818068036262200512103855369173338799870959708573713038442546097726322549988264055759177251710666667542555526790044492094644269862089220093265109575824700877801648758763440478372152072900154727750829325065892385456908357078683773158686387135292298298881474481526162125911769196244597183184179330517344269752556292532338865685580417272832302717256503616408287388223205327940289583574447295531862746957014312869165128603251523789551006825187320187738575506240000747209665498776515768813035304857509733333446744819361924086106443926709785684139178730372257201484729569404977440302291322904851524312431219113811690998383572979678002999423059295995433488630233564065053089490225317470590535364275189410696766483983247169848062152522739452597103410339343932626070455113293782776165568714558061176256679635931987552783981195860797664687389242814639952888203206490798057394822470298881530172861682101385566105396984085193179033093378028203971002124231437640502502047232172678825205159434684060509091660185519025218387698890405555511180060544510544551791534130361325751436006151513172118049358986072333414856233798585354507791013040140774151106756460958588569149059786624890196952749768969491298105822552008656996127710814320727070501136319316587063488802073751860560265123886780203076871577937733138030952485631365756693602254376425347115052898674002377686244442913879628643729477595801938971960205659673212384656559657034089296486738714871545337578127396084452681912346948074623508769556948384595709171478290452018743503389122037171193837046334236146087745522826812287063333416750766687119744331639829528189563661327887225101745252223336084255160950714886841125164590051407307759763719987882515106185962619124017673147672187538347725671284579063455245890421640003406347161748932900838680613060105197066850592833996971129339521837525125172656799901993473524297177753178809603345053057997689840779133534003867104172775434623098147027619634766813208345216145091214137251266880207871689250626192110159101156750260633760259516240928432213912748343308535359693046582467244238105850616765794558819945168042537400890358616878232141623004534066230611555340493006001111045255849727172218636268733679684216354454901987828984056648687862494227241625450817760145898375403720359872230782092470564796666035478457138084459776897865680619324223587468211584282166193766491322928264468213855520205367578588736890566021337811498170314135693545700273665285013099302856786692697586482038846881423703209991165475800629712282337536223494044351057085720555697841268353927836106914533455238534546977782327593615227119950018692080422821060286250341239736492189329630037384002300161785735503781320017572232146051303069169549089561317013436243156762976290917246614730986755884999469312053521507232047770737664564384375350501160626976649457575566395476468939094541517187637007111745034067858091519371676357533415845848255675361347047586811483072305048868504834769482347927596942620452330755587504766952074655084519464982052456996459862287392602921934596970992405809264134648796300890062008273215819451195390808686257634573323103307961956155693320943507092322916652605143305393106276107293323743054066022018513596016270604990785287982450441339430738219989355856493627985312113985036691615204032487181485825721667138727281057284260146959096194087028141179315131806516470872546444241105782385653960993865974070572221760028398109875614130586482011701700071878650097270630177810631624556642526122783532712594106904402962559051803430623292651266890211104965813101762517228461928164774243635272250278627110647005359478513353774555441531080755058213884178741446941018026798915217715760431100851629586043098438998648467038033937970949480687771143179881291613572488126788701024010711111263393435139454185958522279588631768613413319062724801955846697968014838828295355412853731221687995542520351323877999315602451379688073534061340882885148207778378552021996580983049169373112629227142039826411373317940265597582370042172451959000817709912078009569137061411694878340559905793271385934589828635100849863470778336948614046573430683919705720150669837105792626714422669046791605639776426174828537067910811495068514806043484427234067166774006596916155517303388389293013193888618561310328019178846534873200119450791450055484637850964592813499298924584871730547276286642517909153661885955586542332155377419550313542379350592206295029540257744751058514650136465561503400842644547151502834082588451628308451516798943049371118763604192651805707695701920253796495204762378440236061907781740671221219906771560873791988521115740078262122102411999759960028924975625351326057807596604011578825414990098464393454285218343563725660007479692352855417272455442904609194151197620127213107802782268148261272824061493330667518914894981459498168913189535594210039533709947702949173615337706748711379590332818774834700770449082924913010518283984896914692275319834649012489325464682420589451783770777346948867326719176950247058017931167478805918466649671784034357219906551347544746031727331672474904693181643176546050083438209637715225144719575004350865395372245966401715033743926777124360247856684889076242159198153878659853190648994396215051075086032822061537925989868435575296827359839703289419817135038343339243034454379852951710836975191231147928906165294277074512421196213114402585224852548884680805544818297090396763891735403866688362974115960684354877326404187579365759231856016025854786279067830999042533188217457576628188278293698422452864739063972942945538804283285600085516639394064703352464386401376554261606663160919142870302902347599328263622818303414421363563775054743223155907909833559833272316242673253454201540221587685794897919103584685918121166967941107158577385836308977941012632549893127165043651066272743927915710685068340824578688071668599094655606643053792420234277782897274951205627205639667204972387279118280424604012571450206751903730173169242795213569811136461416968951133647097550059424976580858545917306320684648338277012567087948529828833115952755332491844321396528843797567208769791839593656612576052138247682386129319533268640502733741763603768727593376512268605944420123552519002988632514280146845519346372402632754744084143467493942553048257816212470466514992734441809384593605932685740332231252976827061313656676089955246869377677559840840076069594026880384945231905097480421835545010852379096165925921523102928713645187587777568622392236008255088576013689123481233579523409956598747754791961150579024951364910519214076326465020575178520741618675222466925688076555889506041753010295940986781274766246139458063984055305990483002585356802450837992418885841403556734629887393781644672297058953403970983159072743423408856584985244179808963854158272309918339495921838582243031851524134247067732359232277716282409989897444593805413574435794738309224741908076653552072002535776149938242553864110411033823388324459572643175766754743563611534305821762600225633369629176693195626593212464002692365676634456048273075139127383402000188200140572921151236403268832632763180505550564406617383135102034895623775176019478093948641688617688506197615424441762534304844127354922957315751699938797997432243869673438481717735949799063650233433132275322799078269378438880709656232099635003193129890525014325120217946766457437424284281563723242936336477615142533878320984312085823344761831599619105681465460265824385735712507636960700830265548389808579740524888725142620242626427667750149824454000495074622931924528163043399322877852621064481266327306686643131772063900167118385345160366743651798281825902713783875935214708411847688339951236991682146184505349350952764245618840810239562057435872628582722228154932364013259453082490820231964355888907227189961728197117641707517703909937663789693437016465000497917316749094958124965325228424518965262878458480109040641102485411314765508848024409609205567203697617924914596938534649623581972077511989671846927737837932385611780516159423454298849244018148163258528358456129987059966583737343775962735343192218101952963499290281952292871222259191440592422361566681589121599990005781246838081631217991702371818562451536941403799617546482426852395816582965784175830621560241706545829004393924723150976699566358695148759452332954505472057818897076905590731129263455392605656359018528750069665926257011705535128161407615078011595109478868183547705939447827718773117994146654718890561732349390115519660197972686905433831814216491511082439662974638714778421999615105226131921303644102309750054074497628588959954218808357089744808536248240568563175468690562741318437111146135761038510909144841003070547641158183232819271298125238847958555577937118938648162838499524368282984847419555651397310985919011190290414339317073718138113479881884878076867123185810952360559249699541072487076322461914885458466510959692208738912534119506378976022477858563443485449958465343252309454632805989499518300291789524417474186722675063984993174628556723377980336726029604663001401341461111325285606123065233336218946555589922000466013575065419035535616684347706486543568321211216525942449780277788687942169451698375702118730732832357425148435415754261610378464721984442355520303276401490141309512849574234279841111217702443057811346666762987622761254608050843556728131004527907749773938711046428797278857444087686605203785654507825529039190905561983733481372903495035311259215345368187949864362634961606606389995326422813722686914777761284255119874362367349770192371724640187769740377361765046337833172242567351565470797490054269755524783829384237802344250388569264405990202831571877513513794017739165643212245213675934052195323878367424159957075808231088818536170146917445685868633960230244591497939388654090988373586395484453100801155498204122531150781873390848012139738173065316303001712019637191573509812018156795175667469754588340408752255015464266675428464015290569428985375038147798406155646929653684495077364928651465446818670904888113073158615452315490365732279236310595028425884458429129216923500510308886054248752044036065739804164619464232273696981311747684160559347405996776953761486387461654574288018468242960268218477929710533305974606469269007773662163004083915455179102291331697395371779267098198859063973174976076497710337978123052509427104580837067605960127403976737042582893702012197007733760752624263515260951349783902669660803802381908086136973968619725329823532183423347830842479566988314390652329990184829379033212066131706789989617844894753292007538153802292822855204253832441231395730376242145620734440951722034433691529128501235057901435272572275101065306153131652848288531181719644938026520034795447897029233636862814073218160453635622184486030671141978258957530215961163495254414667947029159829162775243602392088890866119934850978235365198423066681832419941366799053930107301644473151842118878642156489985454800431345296710565989453367871624792209109366376400171987832590821026439918008395739506011543120118196716109678159237994026265690635986718141175501159846739799427904867570243834007411818141290764599988632938305187117563838179304263244689919227787810948097664739624576979993006415779507717251678406653976527620708437847696538060749271441649974566985829989209136572660072460021738706339989994240716005503548416068951368736609092157252332536490239476115218012200560207668326925066904769659773796507978004827715058544720003064411440673892037341883621574015376620416281604887582838528603876470910944950620285806826021241467110824694623594071620521013543626114137867450240051957283552020929861296667165769728119347765658145734154533056017798341166577706341768650760956115914716658813552492730956058360312652188581267113422241513417913332637669760237487450668480930194514555382773269082350474700355981369737161309898517221441722620468959049766626572356738519891155912178441789554676133327348299535102407232998065775348050025929399496223184897403404423901520663029104202907715499532113538946113772230099082234521719956220775511141131212742834408979118335132150525369312710192831541446972810334477336414980314314776903025146431972050976063580307385134302085878488594580938707321013802863506685803819373897131196787337884575895728322650244352803563055886424497012276511819337703391294659814103314491169095472097624640930693863825241037487384504556587811089278254259171203733909730300877669196036162887363582747836505937558566030319201110419454694369952615860889438048709660665394702567267407224873261713517208153296477469055110929603192189100634608110579202317584201797769926640071421049588453348364640960246186166014003430248057125202669421821743294120183304572044778918817157521355488725419142486902960883765258679851794402170314894343796957120112202693126865444998704108195768056213391950164568859871102757763726889839162744833489744693352149901388265298912741470844950495060293078443290841470285056662051733223926260304924440028615563915119284323272784472052823535741336372926065970819434507384490586436758635794808500645846913054635122789569965001251044609014856849412389902596621855855842217904415794170601326197646750422635176405704280863852210892474603828114609844396213113294488461823118844568646899283594319296578540792215132487472460917840511862697674300362090291017405195827092201996299964286687042243555447553209814367589438407456153180770022465851362237830120530649537928519940149748241182377044290876456252028808163340533526035109103362172762931037724903824917353362507122309193650400364365986599989524845018618082730761202597485474730069478493078225833708751483196760100999119726556567885237390230887204031429350616958656814625514084837019595040818156737202436109850918687128439135167879602401236621297064000598127066454746258945614398031553613289812675070890210721074489710832150506493423804570115017087893468295822280173782625411386911467476184261626980862690853032010264569186194673675138909622867789574238933305957532934971960880657877109401054141238154203341068827447733402882287039672941248209155813478628469499257288111429349040413185298148857227675205331788410719377843591557952218115965947513092485896478817629583930524371104168046818161408972344541046706696287346698535320458233921538383208133598983344040851066956039930457597364584097382195502475057297243625645792823871276225907076774448353718081876539990999513737546353866939783850007001108140277422116974966059383451568860957914813883792255413874895010132782142395821561432402728627680444681914019668818854530106924323507112200644701991287106520059854904396411414131675812202949757090874211627634874677821940148482494117489680066769218891952540335444431343887238648202829078253544073206990491876033928891559427322812721959983609667834686981199079248259757022934808878947310765913530592636185321779032466201161506714031264671037296792881849825398774317962419576359508018335209825443266093030861766606345603672630787475264889828164376246129943472289223230911955483203845477468543033647666798663884439728291792808283922188364295144502409167774478340903346107101629534638145896255088343705805709254159542641664818729057669319162436793869008859231094116297749708581863712371625055120105182160380409158202624258507685160316705854037503948804890201421597097713107639978304080868031572156209169490074591045401490806774872074809455446130855535251409155061903639140550151424940471300551212043583419463930843892545400506966388653621007194255627580651436658654645644877330542200134295740092459869653963645428597205670060038485569555511379670081020383150950768233006531713584555327091256771092138493830970341225728341824598428505965769251524090063718071450342561789821300180221201914276730182672807332723934304066019552411051206857623196718779665180113349449979743894006397589655081353578375214956480397417539629028169561680762264569931234705447593165082189256000895593378864723594385706811099247330024883657556852124883383385933434674269224383175064941718215079982630460507454867990964429564597802403511126565477788939019365478683027397645223159313801903370371828312717235349550804302631980295705258833666025815867303244839287260780918126720747258747612144842237680010691939849335787180896667676149400979195572532593840395200570855345654673598804883639211136733733576180129375073687834463402609260460540423343620522793459247356982964517162421293543199383507159295087282803271185015098760009270378218213435965929968833021863796628532088755162438111106422064909386742272951819059585370959239127813993792692510853630295363172590753232443107234425590204933257725410412130755171202442185905278978943774799093775614025625733432369368549757125639519037791889820831971227546728704313527935775277539752310063799092798286409190219082943413047137399093915911469630540234202398870151164524921091689724823252509041402481122281156280566218610775099760907556715079922470639886457477815898598183445645105152010264872025125553672798601578236989691017180035909367071320423939844909607643949857683175468020833512730455370222433847513500484994241174383659508285379101153114076820153180338184928085811901318224661565540349730836717181805375430916050331594998550312671173710669017377203048069108176292197400232313095910428266209452725331624960290124109367199750307704683286097870385242228822716529982348750585538344448596365973108117001210355493051368692673836076223422051846158084526963553645949031032286339836172922681602626082664185614075102834424996219214084322936521805905108688985663029483960191812983478098415777408747820008876895577947055410717886904857783178589229050387009983357820196371930962930783242084958943995339411972735819597089989659784695911326374492388228592413369195635129086030994823380733357984681938327982619492268473963856748302182579302453215790512791916847104199278954587297612560862031738045214804276026866180352831686563245692620363298503812219872027369541732945265535996320444631783887110100840348049621565157831781260898945748255385087201145435621237991135584639460070838697496459993911543848430128616702145226631074031065313237237080667057895723053281847332756142035025081244436480203364523890306284263979262441992145894322589602802143344450141833300604170563101911124906521754813666232638068377804805036679850984674970782965395557656679339843802248583411289565007054505257667330118107429619548015069173853694469501808878539008403455613816918059854865718687283031138299568064453616305870795657043232906019722726715096435289489992423375245715427779662966251569762935184578214592864774494729508369941064799375852170286406479904710355802201047331672835067512854917638011012265982278259700507596156891657310969854517092295504945022230598291174316374232737113327683352515213334634350730986594288658613536602015374274699116414103692050881774618272181706130200943998623410026067366394077180674037617877630070081557927836117005198982814240344692610330264963789207914246895017635168985350693090246915748448725943338636077400829787026300782624646958281270859774194704355055193100209025536690100547862370563679531869966009862559429033480350097747485545031957478289834525575929469084978492685769831924104491351272884553188792941986777122279240079333635209423990464663089826297259842111087304092749792677374198292753275104183957260866601123005794687903653490064231706221272172935220604586395282372880180596043479857172037772237894916167377199457047438694251780235157487147116943642681684216717201843716697723987555837599715204886706752654800012592762336040831209153608463527276410802690474881771618381024448896220675043834908379800125352878970130233526326955119680013559449185803409734392575065276787756530511036232644653427797741832671140424076311891377157609517009485028040619847907127493057728993700442975356959924923227180326900219677993127184055742452531899445656573628091627343200652190333993721141420103234960991614585356535319627357877620588811990260691282514221113076862244476531796881825825299810870326736483874490626641416427178666069611809429992833685600986402381477191738321039590643845244269550374927934189700181377974708716845717455195592184766731215064536109250526822718753396320957486816556454130970711802794013007318966205511245993876792753791465037974988344159659830494352930771820913024070696529520647018044554384149877721923713850767368239727206137783957498232270593845353505915746760888807132783605930141220582086724929057621022417711555324687052056031999701458643487069450414030150237420592850558740251083576196340918152438161474727968560000223589265142574464645434766856552177341285805344904295103832624096957782729088550742238486644575818924845338976193972024808945518961657704663230779940340237332674595546529757165509877856221333248802391675599887589865453871778371050939978571157354186237473796587583383655212726374131471800155022955655021284542292914204205540882508166033500615312599860513733500264516161845996937316721769834722412165884966841764600136497554195755260844049631861285938362303744116326235932695238031469056181824198871456468749736501084410415702081276067583928410156198663742909283311989765632576129547815271992464376513838959718582870295864661906940809290121001914326404513938388507423085644486607997283898463719059526853086913111467002704963409817525898612864625221005223654995306899225047234193888689979788375223972065798063060116696126457605107735972222155131837663799809545324097537241224898197166888178756930713957632819127363946126633498111460783463308491883172291193682820005724519770824778789482502561991566904469849935882971365300272114511307457322990341788542296667533155579355666610141549171426176994714974880073806749321066176523279622648582929245667949384489947667889421801976532580283625879642892112225289464935077698048217880203079817245648405341100747666998292266253795772705949253989076197643353537718284917947522004950799374383418252781000400975184669080739061937009123636935915616063974892113870131111109120958200588984595559228673917762808792269152952132452015052852319272946418097275773324150680468011877924474124916122170992918334474306420025391401534387311420128074368296633090278850870845092166062464359303730509080455968706015833957927035544105164119596853842539539746406907468842238119810150971515892303592688014256629884156064488089248455986334820882292651742494715065810152871125739115869966696119858518393382105623766463021346490228671656783852466722550224975537274062228297667214166740438379524086579024254168598362589023290875660030066674738062432599233836529270520142052236486857836239882376433845181254652745432704516624020125995043593247352850421441273768376107254804662309157902546857372221756410420901395313542561344136048777418035317831450948007601977209830609280235775538601628123950835655576184828370391630271859152731759398980657821260216706562376092843121942673569532192416198492512763934396695003914189270101165930610631404993168352495930833399256968461732300164184510975023607892746720700937592275644696817984778521756102131152534758173457339697934450785488370711370462045460142489582863421601740131189727537538479142596625320941886249628226682327135552685375153592325259459932183066452345118186607874509460141719750417663544039486391846054615825548904361839132807001984638929170551298325993071087486911033025573048726262085456258700170945763160961770664019211184122892171643515567522888094578412857562255462072420079176978926296287265228618586430851190335534730440597440870038089558317082912042726593283280291235439629677022721626952754997470629074948884282034505243746546897932825232072925273622624418573145362650418485443557716712657981103118210104123420007392868740535802122274050764322202002155262325913414782519847552386662801485106292796699698802590558745918374977863805580088613850497327402616639991997736908757209783085841650246279141252369867109630997215655067736939522320043450822203287555778985259815311394232980947688610105618963433580772802588966304319390974085805737082608818416860031320616648935161275414262224823095827272233681068431256967295795334613987517090879881490583023078662438126132494129307591609431031164675787245751374853432731685091581477179937408456161281493452899534835000291197939709380874458716404480075503733423041972299720140273013281174695308387559522735595043900005655833124526522279327004638697062544871032342578345390835881821098695952260299319532371917579373945366748853974729283412136591186146233610311745559690818839720822641767445737726704819389650755886593804827226119883942386986412067495900759923078512838771562611822109591097997541340789718370525153712704301704610715217562390348538209016492354851624720922028255287336627081112555246777171929545097381615848476456162121159216258447491912348830441170612674420744475966344100695571067196568101038435555032229154689222683877130166838539400837920145907133944104660110979296519819598535237284026602059743219633793286024186040126055490723454690832369297894284931812217379515906364688821170483977932388421374960644139413147994341531880582801114071256802932292779699707500563519765898530623224964909722954180014782938207877282327635871115134342786805794504951559708543606404823655899113294600136069631094638424299496326316089098319538151483988355076457174940401627848303600081971589074865458081323367208725120705924611827162950190987990164112764934516333568184436335891441383948231724754285888865479506134833448210638883002245925218287174257760499226461965155041263050209008194890831967931215161246046657179584918505725649315652023250353872777877271619929397908583982554674029574315923303248835537598742570165095916148109871316781973259252764212091691516544837005253345754796845459468609503170361158549522410135621273267095817577377575246275210401001804552035246007887503198218893867757822293352728157949536434842623442031347701909514014605267509101691044409681750917495959110720513763244457108068413172047627441786259358674556298687971059409344386236295127677440426332264282760992367167374634172291831756857367661727544749245855069377023851618021264201822220774465670679192873228541022401785905167289210956528062337127136930337760317612449467139765715650625169146820025496887762123805186104044973924201995382565579686537477231765648333961094270329893200075057532073392998408362235287427813347199673990161583521326731473451140363750942863540526181446479294347178791210870541560799677236830406389050379219382229028339694052632107766880963603220122833990029370667118300228507996814352378760486190755892839523922135073137637973655185997220038669832041129547904680686394923458017600324566875561034898973168025427196787375796635049778214597524737857592128308197920047954577328691905863267063833850940147701073821835138617714853141726918759029702635633639421208466974940024151792772275688622071714484487200298154055076684487141127425093264086655957232827500386931949581870360466809097995839423722562609240247045122908155387718729739671759029571029132506714110565208536176427661863723608428268164476341918895683291714517278436173090556159767101309274170796602912848033780768098103418325643261805129199931267617598237302178572288497318281865441323005689369284751928269428489723886132821936372639377838731720405137562400740371105842042735491781527145811430432584062026900269254294413595620115097933725105127766756197455033005061576600957925432196779479998896461122024340335171127749105882217020262756764038658944061134699636334662955674073893287701352177972379688406579887468874644189814078319763011380599035918988106818144693521168707203358419909520419982178616386536048904738346918654412718619057922646974333784287394430921979416776827106026134653318764479248290381563288412609887396955067206950585280215729338710406647725422756849728053985032794516497156634989832907608317197888673878841039467643854668501310312680807087117921660083863991174915196199939365586050375770786794460868850519491086301809787696540697240667896453996468591802880556354956439829201111185109484326715673095544918791379162737673506425413699332191740052016453898584341493363767445943675240107606220090622356898477603119069370700247662166123028106886111216917048438949910628253576520816356938392801579924325258916057739532024165065186639896461810103192076107003863122650975193229701692342508419113498926097811453596531741861959395351681512746326157262892420906732882728085725359657551983753856295285795884588538114632117125676805454083348670177042093913377592545910909751253694885530476309623894660629257160510552171656983410314283305402166599090798828547296426471885650874357851955432086398130621895518204887384694562270400007833273925942559954957685471015351393018136207643239632036090475427908083864176725461051061886719915471602941538729179426294402770615220969138161060689319952977181744600465779130346716023797237789279104030407377007027873487934074033285581047908568015324479007625508249033262626384978587192206089504647777390693392413508377604147702189365525779405108849467386087997717805181318952857416702489651312229319531769360149208070424324895672171508990402787052988244689600365470225854202558966189506996517422687549993938398073699052630344167838191398259323432383711058895563191584148981911778707064676820022894539206015099558905154962374767351214314348882490558147617829291139596070452280055668884395104190590634190418041558718417791919093418867787666838988379190860801836994662278588884768182335778972970422234640285453599655748012213811136030402644155769345578538215711065802551415599160949082688458608540098614482662845109015174146508052736546835510487463302552621498365806310631073459573862443625985880508803337237728166276569372205792265568900278586136534147315220707304876668522960440792132807467656315588922645527028048468801090008145286707030281276844336875497611397317722857609632254895737764234761474266476330320581577173162521023540336924704743148522349931450340541601552849119979831813169219779590482702776552374543000213603497769892306255166728656729389620086854337317440539263397361824462766267725434188161069276133468299209363472005380660071421208277034198070551131675340398649285890560375075656346324232275232389649026425029205838533584439185268746592841508160774570219751091810686563879580916971457707168189335648844771930569797616300719035099633497421129954970855168467047753768579491015092519476958893564240566114060943018670710102524225001568576125079568904379643125090822210848665171577132890702737226464414371767552965142358701478147395094273975761939506437095285937894083367884064608855686184265248565197598304251509212579163344645476116755077121476102973655040598440607713123131046730541563872241509343578277859344540762084632846358389812644429387412872017287261541473643041400710874236197743031813644253980016403572114048628184498636802149302279235292849259852905988293037206096803632761911989757956624578601177514683383579915918380796308566306191190021810645979016448065631518680814042229757625030844683745943892643251309126689389459933807692490147064479132091198835169573313290135486928043573987069262297349148069769166415761698581029745240539301462170472984316341009684531822476278924340487002113166376153648904922728216774647509358384696939144274028364078632334179189399063198996140582339416000483987711740002524663375872223602932534473467852622627308943755783638708267352107520410347440005548113549281214472570364582952443830990887959338200972592241587106382824846646617535068061822836738424079653002088639529000474121459967902946856301632403656633896750241004898241781601396707190940624582874368014201334439626014079240063875490235090957258878715243253324062567668811467902498245514028594425090588890055401493997427148345238960059411002406536127433158867041575291394090802397492288452783859757587707142971903814258456354544245952457085104811135999003697877148338522439438909730291435213525549403969017832827854390835885512142971944240557064128559719924772102367539178053367449327311411950554372853569382023155357166194543188039612812653987869159532670533806029637645917118745457394921056204418711221863490801740260894001535030522471809959362284487713811422547008083907514419409842676535741366020037431356462737510973867692560224107749841662003586013739621243156739147951291503187661913628359485938570373954403322382978571566710890008236846586284811235887640842396189377609470263404255715784829972622345111511284484232452969742361637000152917459308091278592195803391389491492660378558710088951851263916959428648981006302416730932087301764456728269591119944286551080141821834656618496110514555996515130132275590654157819379645403843272216803183344248442558470533723881945436774139300612161839158199704906715199705727102055298370090935744484546235794681040518401106721278316782640882252437027866947388336565001905466105982357944384481629844247520217281716890670480014762758874786274696821120575703765391702706727242116381421740072259795174593812314981155238010655736619779058402092735192502961845069213170136317819817595519013975446610900181486597931036128632598598226177433026036355077566301086457545996060623492501043050343741142492736634067196154420941781645730820011500527317044828945169908712823822642204140942594064695589106132145839984934451048474453110996607991112496770065858187977252491116621072163914778257639419114123917573049609603050974327898798651726462038560358116056018056860623666866860018351622540785574729361818885225592183223259871405808425215023878172733756343683414506751436100403622713554612969546151436912790518432682651655958982834911107637632935415627351379307598870135927401955722858078610912016388034973912555988418951239688223143779043263240966560120251574603108563283127249948555636156920677436889921419836381714032739293247877090668975824422045755422441733748779654256224577657249981095881596259600618292744060095309508238027042136514737933652979054164016235605178140855897548779797394718242389187443682954416169316004695240527153366796076264205372330004749276878806439204200948956428197621788370098449383433110054466038997579054766630090314066839479433426499427713314626411843339222762919952719288703731356762359124774660498754440448176440149496517245612168757125994481520753501048060962669807210202437768626994771292570251516742831869970118966306858041737454242767691926688057932733478517749391084015710578608941658461635093931275977980084226662738230353531433845881541314332446602082615633037268557206210373947751946241578398542271839838517367675875411447117562293550600185782265417213307493237679136787554214989018904294337317486778124332673913695717127320726757244887451096177878003640091917799958238624878064070825814415550232159628005411393143717365286432412303982479977342857900487327484139309592320243972489770966456731990190260818211026938602163806745708696663142674005191635167237556744259485725198020420697201052206701374023950011146359564711992481975506587063112225029915821176181645996994802645799838481355060001307757901498959144000656673896369027045663642251149473337854294139862372417581146338560389865220505813123783408105168861437097500401134876361583258401263230469618456337659944554138423651666629984979297433533096471985496969724490458968197307262772563437269682540983371020629887681670606003461723949204374924247860769113598784646610870542530022387360754630887302461771839939536953718618516911533549664779685171267210737078090479638158801696664568927811334228917791121923694921101676756194159068559131011657313829100113750169751947624127030154803217119788246979443963274872349907024698338475833522924039763097209183686324310852550594427528011249934555777865157650561304740012785825899720559685968162489857765156644122785568286683281419263536601203716213528844892786202170135654518309862723529819588604337132054397361963214295368003356340286757579489380761840400533654664841164246260167622157392894870701821701233957006195580314379588394658315064212993344309127561418704028721694286924905451282374575931747784551571170185955223016748849436511374084407501454616778455657725586595046729069362387530379620556330086294498170684937017962303023809035258544296122841783017470522884408049879203826143736766385597816641872005644259019362769984723900487136079454356795356253573532986930781944647886917595127019564958942006546063089885961123097473298632779083442087695506788862970663730134785278789996855875874202456934323855544393199034665614158804998938051767999114431482639402550533261541583277898477385854116948217022183339005401995586405316838760192893465907427489629408571693666485633779234274815987937253254889483338721647234714421573324985298895436151554484739934230811298436559118047647745579764825231073887745697294706179484706876789657677703601084704945255226588452149575593004272589894034740581752906911233306208503787413182034913867476042700648120822260972145079560677153466056605531828572480449959138501045301796351204121869597572826648892941011725282066758690709011021400273640442488950895350161649567363317369722076612335312252470837698791296134946066345098223674693333304787017597590859516125152155053241324850770172801058165137558083295476306916186252243612854689944579375474975154980697672325384207352405425774947879030443124462815867758951905197562953233684738200803390954030195002169804091775699470696317475268643013977824463666026901016579351263300019536944016095352672227570612576401396469280401037009672005201259850642913957614575331067582291271606089774201367471255102492255505699753642976150415669109836867081278652808363653508372418470173844057197961137193134743784712981371339449529406478901142731088473519349386186268433074856368332397509157833984437389019840849192706781588075974227780481153798163475181068614068591977686643780763907466933360435146963162160998970110258907271587787250138376149017855559134840476738976354002689300298977594228832215259208741671686746455093104463968031466218495817666308975221091985406369520806780072948178845735763967483439229669258902706267061200591551614412027165615448660088446273586991595289328673285332829723537551059835413466991947564170530630151342583328627947690232468307311250913754325778409083916420448932064190901643395052317314203725951580794967102438376096539058112576517042648145929830355548536379436238089232733902197668283672524386499609837136547794915679959024969128023645235312588732857658539871682089764631900360134970814410517872541682079488689255265621363776993189091732180307238598813603737037464998989057047043278599584393608891862927580310096578424208777912363736238565788453772771568872584979185298635873185013767197957352161198650985822915877322759788370570311554390138665119761411687060463368110257743572766041235423664853927271786412485205535772013618775999439328960275023101168314680302404232505442525728814923005527658047337465734416420910882600556776177587957266832996954093353023193265270029821076968662843077023776046235893980285594937956511603315030992176024284455556096738849171387113839022343123757013652649703738354606670014711787839807352546716161479474625653091674545498962126840291429591354069527804333669964350708173038854991545983648523706808462926853422380612757493443032303264394980781425155947302144807181536313760087250258113136051583253135930353091563315143216764752150621002772803283371210723306300268641284914326931371075348274164162017302857054526135838679411135920566532843552992556131169302981850217728868098243321821492414227829719642401241196521759784754809165583615933700928184845313447360141691722018736343021011572929089004710036810514023756801515557540565326905867076122616860731218470601840831215965220288909827400684556115584457261894319676962737463811440567133043342629174607605787516088565465521322848446418762258642537292017974482439399792087662856491001720754835746526695100207571653862980315702351281211153986533427397662126338412034175077880403899490017326435489616885976450915928508638872169302919761794872123376542381984532312419999447877794836648396475708060526688676085404395855199144255911088637526852545874813888491534703825611276925326686871714502848950580003897538426501739188518921979956862222671747357642916374119229263703765693783378052279942113463913840913955170348420176867207930363290932623252176644337417773864814327216642789459697744375675758148731877348158284222426718436416457019964848242317860146970139186048890776894575745275991065602793696526313350324230071776096123343028576606987348751636929305209990517512180496969177496403892048198788323782746570538697797918803147385957199130500889811435543669330370125496691110916674215560862919966062606475441124023667243267547968045889911188643474701060281722357145440531499554371614828075253513742557901034475391058683763546283611993280369571140046813387783710593238460736056419975718823871261502637804522430367669200899261859094428914366487061070676947801878793839351428544885878253271961151038381944203758502179672827004612375908653321618280425374099996833886413840874233275210346553980626548493865777884837774694073947008324751599158984966759373104019142438070147181685257081737911269024561790646075706766229606314500404022696356414705247327737563597179353368315674261987442066870964937458518743482588328937016980036552598198961333115027112025316864931155128217049369065813002176928711113060558425567714310684427179742473330734156540939402680123501648708109323482543226330849290010356306655905150337077322745207115845491567870196496100726399357586995489332637843334475583650519896498896736523292035941039389811697815629787659723627185166217969843162942634595930702053114676639821366092874908066386109227585848091569390842568169085059035981542133695619874481726730740139102610012380147125848416585917155227632078080953842655252349524077616935678758779218478860123436422195036933974561005477468120110509333903774036311970727932076452826952420669196040552426217796288972087653222882700205414163585970390132356579548503488945297669301836830845387803052131280024784849842843144593361482355769792176019810990370319776055853954478624177183365222212841753295501672271695643856525737273888643804864147236958808910968015843068391542787101129011481412376086036415457390869490329914695664690170919747152496820912939241859269298820397919114433541501286778840490407551961462618257094393731658031682658000082763323382545760321332156631369585809440348559261319282348044340878350837523196327363873766874696741764284715306435889967556925014842413750675198542240848119984345160464306979198004705896114550246385962598911205479374772045093602296194178985752895340065586923337426341058809168778192215157909656914259959220716553748474623886937649656750977177474600479038777753342539460904151190758709274093733618839035541862618066997801927691571928288526785560632529882063530618963484083311802083458900650460060871166475222024748336185906901986997385070064813697775328198296860801006467426656496916955653210820369740122506998330302477590085113819161237444360810332422065164182243215743108060688974453035334914890687572148099147022501649000938721143843287847569624810721718027640618394729470288523901934068105194467585811980374910477861165308755778830285655223019015189745533516509657896811012274292330363131051125755990156666401403206342450382097555086517233121607550172296903034784027906573347469768321261451796494495118741768080930034502959141383365892471563040293536584144432357588504066739341223381252576259017702388483267420121451678046064104445548444832975029728174429439991500968508066149455099882418293089344521661774204641295609784123520606185870434069945068013317127025296091974018330568128920856515464165387152732508411432955517044181180723026396805784898911563155270053173955778404478599472322438986501172910090973408108084994183492334567275540913812749927100678110798336099378865882513364983053211185840482690323452454569947752773833744249059452228068626519045588394447211727815042849054314978093699790188906812346323559732702762892775616239091885225300953949444138811096651372660157128151905865839196015762929052089004006819589490272118747971296335305487930244996020881446188493396597694863710021368505472061299033357604582102938145729975875678867566914246010773735273569341668740835884810351751459098041306292709508229059361233154519066688108527699505665562340562257840766773238503105855232546304708464111078884409787746249510445714016936469848072069781626753874574565437355029414751465106505179548546863018057367636094329693136613320692673217558315900947581457830099365692778099817867621413202915842721404879147548049924808323371986893451033828410135910808244005690671794515617100908633584773584570470586582179018358097216193828334220572625113417112033759168014096952918871059938131359341688542981162529432045092511551506514025834368121208429426084611667385349742607373501269452560453638118565848423746047136121566218733442018077092539205825299122761267745237071613155516982761982555208098320915462130531187366073984578310304486073543591867537288500751515957994112938253252931257486503038299459607963166749116460285760594240951243864621136591460207379837923678190458964918871386146633553006663819757042342211154945539069981457709193131232835309661742542706325183953217610250169984953498682371145815067178811334561453694770803600096073331069494630699861473778820384454696382093258640449878439192409588067324265799239226796210998575340950862200934262624674332103325317670187031896142833974384136820076410084976490686830401616326914874155964935112550474029723558809752971721236935152484183640411048209498651622733868718899242248825793629269947328652661363138097102755567505199517142864127772960449224189179101217365287715546718168750911794636699760960685332009265731969532564054840833406362058133685438715305303289563753177303037581006707867412905337896964459478427026460875681292028506153712621989560038916235820770255896365770234729090639995564643691663374370840420727414405588845679744061675536727689203852675472247615322652942111366471116795173372747965783868651000909805353733777173560109831658137812999462024211588300781530725991584270040022133683144548125333677876485669085036059627499273229515217453484271236767514685035663104056689225772920949353671745890898499505768778617448210262759077282318059868256495855397679695562873115452246655938811356444776240834243386606718937586424811982316444317567272291597468849159556634943830409417261846855325330188797063236809385773272277286254319932690889703846146144485249898583197058873417465658668348451165845501743063938238003373249341900257361266005431831302468268982094546846684433976708061588918023368386197813012445273283603513704363447867342961237058501904484724519312060849857256588332715237910897879830930193617935632537150651911117291344487532791505339710478441544384089583897194077562600447885938303942786932818724139772492055622006787984311236310110704497235171288267312498250956006867100369337311966451362012981175201800029981965593455966568732731796868107539328182417622847519408940353048799241768773695114148910415316584810433639220623679954824591664870686151144996419892791094017851618195127932312018235483433249461715033613687044466430682502033936277124666337850417133737068806024778478959581266614738942981210759832626732536120581339566754686025396142970306891142949626476615764879707761971008462271280594176085673932520960623599195651969772506325189516517489632520025618799785149656512231635934528000100631398049330895213768293987893870041082250914538435505327038108572894112823182511444703341578460876977152611704500097761828946705261633609182920981071289819259663071907472754468508185683095229285289804033308177674433614831957560271378152179231913906519604855213463925535086453985979086983051631684141803627743164878476035630047714982910165383836848958003624112098867525631346233924376265976392486718808687072815229209454564090257940922693730489921637314801103942402700984094260439512176819940329080873644046050611907761773873872480372463743491069993211039696204080018579377503062826646991366352363919055860991889533849577069652642335537192158056920027219308085212495609871840440783457362236501789415598036793980081495554607165017389207585758051470105059014015700895710851188173162502678186633900774234610034017574521260105886406765317733542493846442424420759875224837578912879031930739228724045270086540158618556634139721101018163252361447113513414973527510907707704883492271536667198125701100888432645125086009175467517766475857723982693257687801772456120097107261678541054159012485116370727140652839071893334711337432441915501102266888293729061177999656646162084181230191099884598581254359139468818288426362465899733058817251560575584308894165291394200953667706007557115065601613083751838472475540522100387194774409762829593987491199291383161199185852340848014407138289720708139599804046219785397791193157471925704755935544358405590998473539595574531229259558652109556038761813396037506908841727406437804860458363856526578510280510005354355018943594305683648760512477636699315352369269295816097683631897460644354208760770104095549456128609788192422393330885774487999916133555566874861162170900575688874588616391497927805038957289677309917815208832082267771480911171440140782476295078686125026783723825625411667050608023804910239227328639123124998810870490432705839099659383557688735846336056587387072386418460785664633983719204029616057706705852021724219431415257142318014692770639506602750634971141049022998869039563480231956189433400222979283639852066836641585138090870141691992035185381504958077392246679580577589723629442018274350314106774970862473098388072847582273262372908432533770687150550737407152103009342722721733595614755183176968242660155877158093129363306417791016372818245127443632513155803586816980181704974372558366038369620383228294119205311044683702701492334135820320122936946383284495126992122901840681066546336735210326206782729063076393689737802576442791041470005619503767478356013873078653987650325910101201242323941776091897274418811060040738635519989689960033560009468914737846548042282649187087936419750066077749022427495755725892844293470217264897139513129170510170958098767723168120826234839133975181315411191295726393984380412113867243618199849151987372532016757344574198066943104331282760778229571533404784419029670931879526214207406147025341847848293316339981221260063036615992023533939935080001347544895732285825110958892881412983044823623244884519044979621072143511588086719443492968913294459277109560214945617769832831540907001245885964451249852612481407839019908486120612559007108698242703190030419363701394276311063423053712074787767958281372020989033475995087980284399010350773323523118219483897898691519796041792079553465217538388440015520929366803137528727146012153432360566533647833497153949987316525455259719897081567099946654006076759064923860815703874070520404949474198226717051103105550309236673618225974061891849305729984564234996456515426866247061372222069452070621427961516842021618166241948554426387977462886807818149549043857364196805863580564642117173096262522420446165169303825171263541355913329609539816395707814188849131132349496547155629117268809452240383240555292063440515351161747975897722032033033910204230972304451701630282473702303443755485457732209331230909440987299533067979305169591673165006930980184855930523671562893936056832751152783795538511086957871957322387519020034728000933249033642499184593557231913102269430556637850609538587904821220051205037718938341375137796796437525498272662811180760552089551330397997822503153073316427347794755346090784073747923735841561199885575104107031789672226326754942417582867459404361718047852475995186755683819503316742384693418190306946555895864859434429325482824671091664271934684525888676023593106498353667799805712833728098448762680342893610323504870264012418100578304434069497907064145699915366092439691869098653383986486055652570897961446844293151902371334432398753696666682605270136783230253471534969578657264570911828681655958811824455900367639558528763966568161878471470705991784884278000869366824209786968545524845725260603054716140944224069455142358955529592398973689343926772233899492603973276165413085887820213619788296182986612563829316445954888756108392270391550441118419649876423326151584649586183514229602053598955627390586697506633580088576280101132104137078398320978827372916232549905521678827556128644761527300178233219768554185768128485573440215831849239084568423369877231462934461673304479202818970271265575213800585757001759087191357006343329851119817997285727767332410673960319979182301314968600878671391484747980565151098975748156553365418341564280185935304604770110835730111591150939372728118828683518928285808788558886564227423799844792494228589465285815991474696373982880532670895053021402695251102547692476554396050121504299016848934722286103997568241192656599934918182005886577357361306166021928742024892180885360348195518321640581454168411044085139615027740592783739995716433246650636566416537007952430900290405182222026874137428189502638732217417259867570667064321469767717655220460413766390069141640281111521005720366696442893519465679672877288549088836903158838357928868000334227492168705420958420659001593444261048819539062481220936423228243208603124271766609523962537555103626713965356410225248487301585980609010397648272410430276873542284042840125068477503577918772328155246396582014280762239855155677285273061318177399816418221120877675472540558552753744310887231701280902628786312308158070665599422657378921486574726628308586275800632405822438289824815695686440783016042807369867784413301311022285827450548219799600288185469714148956473996497009311793829572378284625067175761283793244388343565375767304867813766942495440287837164174300541056745804481637668455198246993960468027325725521564162948543201564598605904906243245734420898383396155055328709596849002708880146527627741421740094795064176103575120367171412767796275462660740887860138997380948445745857543441181029886611881045130265940519877548345788011928117441909223452474896084598780600453547432282850849359608438860977813836013564153704684052101391397213425543582466836453937527681283548042850238005226899311016089135288346030448139846611976799721793739534533478027858653381145225247590056044699782956252813479924278836225764067035832927643915696835685422109258109981660576458140947603729371754977290742388164311767964084143180302759953530156192449177644535199559829008980557568632892510823044753936281642160532055836544296732405806352960910388037940811204480815615527839005977925548103518718328227551400792966260143900301383273406732011133923900406513160760590023627007272041626563924836726863601620510481985157353595123094225059519986666206845696069840914584481161151892977444790417427754493130781946418663869411156202834280348022293611359369137954111051999882052210497208775937106201154731054563513814402959539132678262054751559169603667207832831673174048700163991763749281822746277320229093690054222498547738664132526217017185586506633791648420106967141284518363333149993577242926155601053339429797342615149087992709986388414182769467706176235123584533703235961163000684425958058487650549345793700099503008877582317413430880422208689253593904321065224120213451285340613470044977243245548216826886451537996005789934286168761533785511514400096377851223736598855744577461311189345540424815239438261338546307050766301302057633355202485845919044233005128477665440712704098159672276404954041169989322255182741113658816662687549032855711614991928553842486150126879975616925287627649700225106130400005194129721913033529212017696913228241878584808004687671188573696216364677274650721242985112212656368047042465419745388421578125442586920833494038110117313680792733862154239677297547446802966357886407833507122926351092966161380954218492307316505989710542211425278552047248259823525282531751992197409341888630489951542390294313838911780516787992864230750069488727173544273017750468262338455713088764513021472824858711689792841543960998260053532460399427597782749091218049771154167529537637897005851840261021294228341054072159098904872395750175829214078737512496270190816684791263632420652800081544496121755286874344690057632257162518489042710061885821600713245147686612455869508507251433010992975963664045937967889901166530169688481240070768809834261692402593217828118446617977887379545503262078467699898790596377799254916468107909228680092517644818840380728190073803800782750507240971737679336353695441780570056898891387736870026843177892547100318770463126707897753990116362366805980757680118289814563733528379633429365296337909490671723100762413869932081730088553384461743348083745924562473348071407675304482498362619156313338358433836497328283404890029531377746197594076185993852891005132531345546009065254973843707722674123584266257870603181638703654757877772434858807330387156545565511157103676483411964421684373632838156778124838701811706624702583726901955532100968188180082606343505870441472674272224105525733819096907127482454205325494379619648440053877919159707586756430831310890800051784903960150956790095890720057923330068471864398635518081151741681374782327373189539058803091356758174699246686659721946024499111300258374235121852829578598968789371173427301837164905542676476145393269686981193234763281610744913216895030269142789057282136130468950048895836030006310975300287564671441399142017254506496316084590274571906818244661635448751278053586422762755923547615178048836242631043802017753572933951322176322414745715541406584231937571513479897726223544471181103797979461756147996226032806334014600363721222075216623624703394751823801326146137971129730723439691210302798320320507094625296425349766641474252945551177446789527413544186667379306703915147502562766234312672939133782407583502492875626760680220821091272330180412315152341831302474535278891381154215105237137530913772400608281096317627813900489117446254787650829733226749298760602646948088673676495298530644447304838207690394889620930976572846493811718562201579850351495116960800234687901169399648669483928222402129611299361628170794709408637853128350250238428367141851964395658981529618291853357411819639174127138936972981825449385363129232014302835592507558160595043914301465745227399816613687692742651143314191880480591800452256751606865165349200275872488130536810678309861503888522836422464096955140815686329011846220420944685342995238523026597500223795110597155965565426521132505726546694464314994814417920330164720591218618667121445494588058269458029934632757014471556012143370686095739962876609275349175857517965055662448065283439811607712928199998420214152418226889528606293559076243728537761152646508368012239615988445443110921228379720170958128630277473314847264503727727840835843555260720481975992188423629239022049799443329483526280857697379323312917782629558602135870197860258672682138041002765615497263468464903222456902141062388868334081987201318548742608948432618684375040983936851897564295597089407857150074228144791191952565486862205808333753418344268771910884654341563890334931708857976517564025308042312518010010502401987184650421619644825917430888194313674238495270985156155155197269349086927177824061046988191012100000001051292162061608332870078877382920834663496765499455147292526933183593619841486338774489866766035064407595283573516519369692921484449472240039198405027486938019197554567541135492748394541544846762163314262776775326566498828919499668984785283656929412292839324409945503309725938448445174002044325417423848502281730896549113331652709785992261053410891559210641221990431418380224717456506582368395476564520520239122495666303675160845162819681815947241724854560321730406859600069552209803322882779315514542344800306357109552640772206296246415188635387271427550327706329309622518183891738895251910849200411324424054408085626419526902068332417561468760767619488258951963141009603442805657053690939177976355329957724888142516374596227887486039806841284984903193517013809176294538997270954659087954617428643946567142176358723310812674706303233096679386352328292415182773714105492116053301456757282257451851356342322772256930583554660491581407781806711326151968804714615619887145690389233275348381473591094843563020391022004478462123973371600217277369911768293173632371314664921511824438036092876287093950207216823437881782863186538482427475367337501244881375211699395489211615798284254053350368400337482541239760293430801491278216893407616215978823779029986967984453693542834989546369389601877221446292078990813857268671988562202890758656026209825641205222248413884787287995841861712975747091951101763685664760521820943155179606920218576370415007267995500530255667346999060795488140949237292456466235972066755776496643230598190217924649065463693976589566676421857618320704132941483170417257830603768635550736542391474755873204932869297545642947511485194862612761618998905682959697216975764782187076220007034568252579060645798397385037871437174785339211860220826088802693516365181737137075772175640666964986819399532794041019732311539817533970071918164192298143821426706487614604081859791768466951342056374482060893129262507346840687556935357902656693876446521069521959857960819116995927155542583524364380427657385877964149794282439970573260684012408385587353402965855569449345362013710650425646070960670453173230226816416903994049697489507057159782967182025306733388386403457005374748999737521328283439516558275611712945618498121371551955874796714986489409050099000781313052148251723647122228255129556876816653012888081132241635447814387173831190615864685757222035877151829605978274894124277512309094575681044675448486136841266085123908382598884245912841990984641105052028906011273009953294230802333643490289364855684640939592190724616305331399151044529240661380028891427443759195659561279846907258403884442113930388246294754719183346773404131625543665073606515965930525255560572303769613321281105371320641859159237859085124685068070161613693773817929432141554635874994707820325987418956146119026390000440896311433983560587656960866801546076083507040379840113159865531616664196488118884887669480758372531075979298433366500545032361103427641957838030544904365717225967207485538346950575961396855366691350733097990766502236424694206367523867336810122841649812354022627186637052880841900127906399357898982034419089118239234053558823572897548861572377678064875351601397440485718261801195329446411580346944162732962383533619450983408269283400489194681549563906564897538008279246660373004870075911077318873488100418130018374697324619902703279525935155656704388762219151906733547801010520402381447491490434855594065386598160074073653455355371667657003042213401288537237141733560105957691234787873883527815799437363772000857874566826657456009523971777863539730739993336224404762423962754669721892128341520625693173685553275159138583589799660174741483611818061008523297272225449907801686943935367428272292866038473225016807669686427150633170819441710090543777002704737362672567386537376120801704346407809317005820302933547899276396457665971962108668305890332070717749945039139533876286400763807313542722745831018200478923688731905711594721515547103815419631680056334418415368986499769006468888327786547445103083230813492963708586640225741723577258151956124337381584487049395953858027710794837884426288524249744394617353580016578107679758422483889598493774651051077179592853398700256363932552780744854596380810155084917373399584606900366016591060569294923148330044700514638944445550891702412616441656735023403584680108977434770307832157755211752091515301058342231143772874717925901763637439313756750476099008383655413726047270189025322521269383731549167192134736063598696963525064477243932749761640963354783163669686039299167604424615469128704440293757412609395346471040868747718791048659606147414635328564176843359074055880441111607904842540535510930302617174512360968664379080299918327385377939041601479125523864731713082634099561747318738451559086520520002291949067613287207269664187153617642969193459105618596323014120429901878355777347512853277764330651337608794798507376823709611209365688945583905454778076319574674971984256376003486041650956067801884012339372776174297419201879887341096712731956367833779583051698590647230740811895478796048185474109182748373214943835459173573990682985931761944073381958814942857701381882093528616253583850328554378307662348901669933212624000895182441372179634294882875552611916059311870462399909024885469265128112117490125059170281875213091196407880856463820594410970795149511637261545968845809164362075699808369466699699458185244715251041758337797904381421166962715262431641596829639879857526652307008736206191135196732002393215145343567422951223728947054060394302118963414453625244026232630417779618955204963902602478844027769979202575086467504038307662703708939560756068229281152291540345598331712915391750313975718984579224193874805318043906799565821842700957439230526538138410509507895618128040126727640418492065168176831400392441699556266795775582290337453218216415188283304705674906220165118895058444210587292316302684351663607892885614515910180853029300668375527985506679279877223135664770601836974105696354244315357440499712289532473808054869501617187098933883544893432221805340320750694788718696426485352705413831669831474930414315409352086735632770557137804063225648120346680588153475277962769384834003269186595449456544214963304999391372130577412345965236677704483163043572436545263430361349203108216149380385768674912562706547081182187025122270109142812771707539780946783067778741068503701245588001420577885752870525608419421316335256377475515570721673690693809136445643555736292462302929152437958015142394398938906048347487561249640102540189611345574807967691845942883959090661602038801661310176333403629717112228440740426890436141707326655591799402043263683794623054605310485203228819360674589947337029268603897193997602124472954480350780947688026619101942646634564710859588933440655493077768666567892942593918313728985066799711343667750770823576350873229777580114018097256418327210558423939887402747396261829512267288049780794935476857820607171862109586501496505785957120402465760542299060534476771411263587076218200931453850704385794243001459477336241255080558518110831416269361579377993594572259832039622419745757132823253932148023710004704482186607018429220379024750755944200338989665260560107367157515688491943581513397468313845594501512455655176890820198562937271718822721958563920428543294478694630532546065802149220579442752022942457821452126389606464560263046908227594172862437217894068092109433830729124197952799978540390585091446965333042213820513884575489440473438246775753501642208733068890117360622989393598478797834912536798760869015787619248477330565970470226434123492875420158989440183079045737250151449343725268454389670636796799306132632989494159181610773597812698887296995124901223008077842301095399059522154819615985780869531855446678190716315764491707940229211146393295348838423053949124419936667724607183575789097794048747117134405250297459969180764008243136195013388803203816832309510012353424379791335127306486847465552929789941324542896210319573316352463026440446914295960783218087716046661878986385101956940397447664196830111570682726631979494664995983951181132051792444179846231495102286497970674936294178930284592564855256295930871698574864914751465670312463003216757147578433124314039400314113270743234338065475129643635230387579957940021895734615657261996449591128298162152267818968561121660043831085762185615748273143965144514598883284465958695571374731254430361535204186708246801537696660748120047347518054261503144889458720078911050753657426176291728133795409373992014670158835456571327831350760472062629280961218021176731263896106292430753592094533052546701357173503657185491678167688290524423425665206762873408945670924128360540631078704798970854717371419729316003516135560579818502743243520771118940159034550804658943814403009890297657431545110698477578240169335156617802528645903138777719535112522468087573935816357812123544034615277906617460286513313585627954943715736970932986065695580647304912053323506649464765555727805164005603457840766730900662943613111478896226042654290242837730563042772890451784344658480618026230586639465406469329785092067860293462807687797812846393883020803139094342354441687505982280026845280709714782841899960183283779627054005487983865862396801687892798309286248129291925746738365884457524690818536151832137344728515589468009452797650100704980490455099800775214250017625148673886895195444633229320062392266700482344627663074069956404400302423041781562623510482273190418336870364150360459675508228135904296531076613193711808307289592469846548100397199203026742721725690167673966219400043678554216374757045974515311828558760023115086632894291956265587448087910875187874458390296487186705420847322170622228263502221465562405157621676067103909628864328979515578897501662730453940575097664875876711310208151697452069823707600204923478426817155712405449910144990369039757932567689508853317084170166637243060633464275627028377616808391385402918266722956533851576071066932629530133034873879256626364345099203376745585651040284751638449919617137583112580727882129570845758094936778190814773301133759530185438785412717970794987702126425401696523100448137590049120868681077002045681286691492672111973970454427207272751151166068592930892294111092039277749523011890806667617884202801109944275547745459102420233664889192428498614683187143701828023267836669358368978713481471869386650046497075729267083200239934401967270780199817387435698827098673528287069253051190074359105757158033142023196115678314398917332512516238209360247531849530714846593780889329065063321532822048330887015899406977363832943261679335297259036862127396646869806200504026866818497395575821814581932026129697475085254607541630015592224002559054356047845119032058637624618235706275749076653660724727179667945483312384760552347366326790916923872006768858394759418651015301512840562064323158434099539411425647861479714401362186158156294831565724664806464657303814842328040950526460237075389796288940863103806335581449496466714343002432107380983295597902497971762255527418139645593197332902749747124988195383211798233665463573878452749385505701989789696672462670877075677255189081069445143107350972173555414358519264277114081065132272575467413540476372392880098092268420994309748108648538898582808527860665192409708709113815918901588048089359269429912564859512499290420603439416002475619624739453952812425554466393866087623310929042591209092820743772309037398501941313930402396900643752642965204586927433345114310981430555065558348567395188644833189470392683151725080770257379245503096923535104485127778771861629290371101808529043429300628784374890555662993571860501671230899666617460416184494665688486665637601563045797019251404591588242160922095143890410925059891946147766155399342854699457020182566407760551483353621618213841206068743134871840444322256170519960214524732792917516034151438964122742819384761953434130770619158475041893527943682649390562439836555645696107100370516990997516805599819152505633909044523690711956512176739352912601191580427250611133073268764370937817189634944114131344458610557371394774541359709842028823223502127273604221637666347172932161975000128364342042879721696500357156197198873529126790150192235869920037909919771982958094698368779789751286854453609292524720202142211582028621497244373265602937559900351923008355414768769453853687078522141149388653175730461068185539516394561895542499393348819812533640960535872171126585734226390983065680302169586390449419567924715827495019527803608656904971694657072552273210149013723375260251855851776353240113277143499449896869738856076226857508365192262280694032645103021741102691925463230063577507186972257665850424587611506652728577868921170908044479772847785150826001468053497025738800085031532535614694817424126991165709073102953396857479407050017788642297417113380127550135757672837925991245164841312130169690684366950114832324394172999413070168703742612287743180725830252084975980466877209054611056156270628283764289076364379129546372263392463480499496042638372801617370343954854928090203376616401442498657253654149530703692568176010676073829852843327623789163247468642608590822099533508148340521704909741269786224666494041136814051756832586698269507384462305242428894545883118200541124977532923783197813563626595413130069174449219659340461981536596881066896247430640486719948405299079604345298741819707540886785285209848395603801206168591015104269120535075565747973500117992833456609888133082279615589720228985111651733027367371147548801799447628217430149740607063072631297211093792069279817059118878224017810827747352313750856381597616089992295576130380228145907970318062710941923139576462179855570404331006281127876564464324156491136276215723466291184102557714498088858918098750014739293884102035262338563860341093488040695646052017184529983829206282659769048633837264428162580128583478505930761639328022436137092188686905020227725094808456039477414602883308134942038783182612786286269317243490220180681582917534125358952334130873033771152035985397896193390094322721324722784045108717740939451855651256674184334187791986811536982567970636713604624225665127234785366540182199593036897244475548986526541993605637099269893440633953169214353232582302105611485176086238481453091479238316748276367922950683701772139608778669316074014262413971999816059038693789679066855985214043927841607392063089772948293781729706447174442859786367516030650378747937640234536172308097494047669999735462369556226832418426693863081698364628344771367220658762192196580795848482227160945801649545211665795387082686618195348467486553389540523175968629203347816643324442930412734869665134677670604174371511456625950835655138533985797807504465640887556728307103237660206211279173804110978273507095550118443726191623836905859013078076079573885136641876446056236399479605090383880622305627276048495930576064097217771276079329929195409893860122411275910219637069802677313863433588681125941279329988385839511712738323322516948732469534555600642843325674468589804940949423390635224991366185363023213568798286065817315951171368590983294985158240979822270103836293074164777440009641434059131165890105975275183887207537935010669380088396839545037130885896647188022072621082376241061679828618632339666949568009892456148575596316779806324241523650111653819821508505623236862594612057076634804759735805861409656363596837257463147812665355224202776586273362932348020018518747040970650858843155190809216154765516064997079862889198606091221832354287311456007268975097786556691480719333077569028303735528474885327221098873493831869419634044005723191362167739710708730555484558148393736338843331198339125208153427630922943984549042351617948224493443442832671186486923336441124741769921360679846089880048151816873128917430821007593852211828535471184478136036795814012721990605544374157084059900214920471284527805137895858544362107239153456085544694887315294305155740439164037025094167455390050575696992386314103436470590318233526100346902834251064764225086362624710319642957670233912355851464690311532689825389893645458209635451034457388604027895267474861020770968905237105960547764789336804204097525580769536137680280245656574015776170402972779574697593313247467348235868269027603007666288972381596911436867744070360353243003713243371337172289858312164885861094176026584249167793282750436253829249970722842854654232641709472660976169201388621110183447430331428121764638815878087775246889745339401593276467070037446760687451167751246305828235517402235745802049775923481067194409652410392527839549339446959246481475648575417764719134220738869709965732610135008800096693269279610715122990499155443779123599436043879693752793700281792229746062075407749708876033663466622070248407958347271820141642642617201770227424191541386893065017240871795143360249871269629039551166750982430097660554675014147551609346416565136217814532117412114289978605986073100269241620272467395017283972522141418541405360501110075324357770507599789090723046315481315665896910003310141591607823211381953413631201211705439742547499929066425998383219970075070495565445741309382954602114604159119213168231779536823163146544327282317070913679405348019817759783646232795191457452884695029691866936614364731847604916235095449482810798965810842250482300614230545200298270591971971490527364418277080520411835313043473598281282988680643967933893157485332339440715486252765004522054192837232560888715887566250849294134490899363781819761009840858884466226808248493013625542304591096023693980642898719387716433850319491550306670670210021481456278418447313151279971582769856610803882231922586429418965279825283859667942008437196165114142381520857858581624222284195093062046082675722902506274786928786846013099066096086035371146858097232959987641465428056843291663268586948954803355279040884633563893552798954614281383729311034056456559565277052675928514166460399118548851433603469478642987197621130710061543735563027095831105179353371944474423980838485660766515374722804365384562992974664113757503458797929503841559456619739482291005217977176406512421310867905307870080563882562885488265671693800094729420586230626246154701558611176098587916838662255615168533205466129625699181851572255208042404845056601678333429330058281037896721494072623300274787485959108648741675334618731901247627920132921137828066042375906099869845643328938558916209094460426153362547025198753863444078186280614341967994059322927962129883076193132566705464970904066024999985415217890673781408819529232831171941733260062568859726370175325219782227077776873993427163875006351119983481834030441619697200238849142428489547037665262919931997316210284299078561151865069164104695790032111757416134942734714916049968254298984965967790682844018807859480179457086438258058532317711827793989688139017100219162527124125468878924454948991051594415781978151410467003262636785151083732064797401112486733998097989125416215207642788052717975109184608078627800287611798136895328856616242814116688472727738175375230290390933098630181937313612581230069361216969765802523574314665378209468192490624171944877087112487321052238015620197791488377710743080951713582430115019808139040269468657671083842582869444271656279664522190683960571860617824307696511857746353959196559201741763017118668404165087631588912585427891363596717368898860199241144371150945020615637575053435523260829385898304343206173855256075760559115603268714398689333256734458087044956274612842418337707639110886105830070165092107395963215748022179980430953636100928758528946950628194435996101112234580908496896693453455928891801392201850403792205528312959677959747747391440893235324166006643089960267709065461372922602694466319758454558065255260114837310943680857094650712228409471954807524109426096238866987686164508406256538700014984914376800461349624923308048755495590582265891029495066620600945177001472517975453320802542905692075657032373472390098787423337990716822059377663243625893311463310479094581172700326118019757058346078750677950067181377212238857593536043853576561361799060642321497569104690367161141909731924499113543811207566509192414598569238401149284454813216295529731165946085001198673552423096439442589237520642136419622478550178677022073721256527903793545357708560084717382803859823998577483078818477820961582247295907991447410916283531963668914711285522560323417217246723013185952185909912356848793532250547795194239806014686690379148143596333384863346571577521917689324308295515353801971118540299666383497233598623817699741146254104253696263776914781405739667422967081921228472676077863277737741241453368643822202806946784968919379311170998392050526545711836748642294887918090213298237323095752820103924881448036345288784231527040689664895039869127242596018288887271617546118679186529308446911202624165978932691099015956568836122723008597749340687455157110687263687292915925025213330211803734101414506135332603856064452895356474200003010168842687363492107603632392908840108795652135435206067349238377273535422143117411705279974158919292120438714283682748170178449068446342601585939002509210707061477294364859615354447993467562448845121403968599881513024289141890840811744484343450403751534149135075921574668043034755163361619643425482472727667229027885597761033756896865824531123726024362570129924398478866678481129899786596814910612020216432339816561765646694502081365970905258706751564175824583988553915114402504998809458413755718925961693842948586519550042234478272762183103141847476568916550292858307903262580866971978396407773124055638937133041059897118439909884245652430145773517793583591305395233230869283567704235179471901874214782311080516119386871809164963303955236811373062980139771734052631875690442286527305783786444757967787994694191007429171003141280689834620947603291892322628640472138336197078996925981790765635977025811079520833419971373892201844564393874567407161007769046750765680919536264362854981727377454623930524707065617367358813664668340548349419227592931265786238394590293044304567002472382122474312549659037780452793703199946615070879732385006537907644304951858388088836064933346607711968763236325615756607740482483870157187941488941729190268053093586652309138484222582357546797576311540625427180993426175596383942017277054491701147044596357748978681933036589692399884076718994938229025187603204120124120931449601241096240786075416137880542701255033731475514281746899256645658232932572522739208104530982048397608276048163132074530085857165600329221376405400381734769320806696953596755461548144225413036578844989145792640633558473558301507369960880117886465229359644744635892781984583291229450296265494592377379984060039133115860671758758766293101366476975917010993854654615328293364343135756486227245464864089771697076078204908894315569908599002882129761426177931798873578278935814833998687224586914603012697063889245260839444425505268723086796004882665673147328609034117269156903363426692616423369519651159084115793598455999016132456950320935585118298423681100649067152533823382238742108235628298445587483849625422330297443612133320026500812849763294778369716649916363216862400655727141439410137466455181533881180544382793588203074127634396342083063824336553509240778118060332467164365329061919181446476113005054034434249035798035070863998383505227951815831334230786842524280424223317576688404737206402132825380936847645348459962676979831740584343892361940730201787729057918811323782868527463300364813689434492724928986530946577811724894725448943566734536012063213793069764055005885545741309149198069025213176757036347994382672865145912264546763667626383713200973496154895816248507367638876838129819261449619111137946661388375781857597318921377685889006111218572679077984233491536683592328177892246221912936787109781849124555094042735497548403727915875782327205157127127727551609667857348588596225031436480931291043050778958197539582643243887869117824821299934500732284786504942232989252896393271969182963216613526442527501965310130738633508059616351074625347674558263317841999627716379801495725844188269060111506828054553941799954864620726156989017023497428010187519303646454411847563201321946146353829374750685152538605002476121992594647562591519522198845596245209786634590618782254827573551180009522995067345642765070952020890207136667275460176286226688847035861634496309991465525002490981576839263832352680679043795492034188436717446130308229793869062237951996749510305048292556165855103260962877176455927577621942474336334277038073773911453532360698094695982704837116633379440528755738830678532896452531645233367298031688041022139047770890118349519179228490182109426686629644674170155529778033158986978031191294841800554256369296035958252479762016305097185666538806151963934513453624235767263329072979250867690359380122829844995795061874335376759228093220777374757481195244459922665309250101086854714368410358673120455522173274000756455152735334566894285753036153478728301260791301757757664870009209504213329663307385945226764218423763875507904635990328173632951725256719057314235135632641206667924847410589442487923830380355238072531906756565757416533927081416305603544761762906811628208613158414083358958486278473192348651301089513725331369769918021743423805040507612160720122902153974560317244398244550285244319226298784722779829951330284624557506788013223277576905349005996236470509224318235616396904218163592081580828272140459229308827724036884415851237552578322286122511841306247035909724794350609901207535011858461606142878620783402771988741038515076893233522275563125172375526049522850422746280637777055061520875739394844928955716507138525891076825753771016458750512463134912616154871823303418343727976859532119396683700863003749178854942420141508834501416316918863207078669636894831686651313980634879076743894723678778225572295119580375199777890401313984079847132808267980747377784405927921055417258848443506277441357489903292408128567691969892404777230524921867287172758055052623917764788461373462871156897476280188531904508364766650416010091422979307625673834070448314758638203342308238639858705139676428645357723137796922873593563990207109032534611844443622236432617232065692951146009157643038730600648802754755450221248953152947790549274341679535046449219064639650385192134585198923484231033266535942591112295786131543817428421032734387292471807204844883335438002034497141359238321345399745562812349873242920388245210949973970249640194051688916427832110204419909698201774433267976721428366134190558176839978144027958816198359570626864852022433773956890665924543965800904595319539589109632792438428016424058384417188990190626579291302312391749214624291538562502435949092275398805439522967532351616593934723548056583612053727746541557939230143943947404363995175853662713435594023684250126811093635716542508142348024459519259394123138062332672944763061821065983534493224591983233541239140446188070265827310576650003142318511702931561323845567058858588823116181013604586508227281515272139053907811960106771879002839585681548193086024242812624090824639333882547766370612482569902167787309828746466265255878525441027611419673220485870256526212839630359303974822704304353488894405597034939942309189541542615812802191137747212504792112907950433723924582773354067964191496995965495301191866890320709885916669195969768343156201116677170703789546354020849386340705696956068287219445442040784868855839107313403829425670725317600461290713796877297432605500718311393098905873320007083869383818233581782280958936693387557456389110681006765718962028972074706346346973667314184219181458271202896721743961491458031540498542464809042454797397233986844311791803770253619977476270164881534712807449690432733612572194846844647773245628077686787783659053525426713382608554391319589556146683144526179389851723035598330378929541524562287362273628827226514604746334799449785672373598849995185293329501780438509956928902749681697414465744169559023097910661245041385483817697007235547548664730478794273638102547310049538613058254702738222665000930225931696900199743922833792988481863893363402069245106055578420118359320742054429900222401399818061528991255546499464058045586058028769694773234930522805472259218062563167920593098880617613360171215108620046021240015427697438567733554614736876261461342329693404751520782585179172863757075187480744012029822524048138046660075895556232608361857887333410577970623227500672503309958179603708298549089642380316320218314473992313300315016330661177672568575377964672150871543876334209769759805287638615011115356411680473811001891522380082311473600722660159709713847235461634474673351537624329782917659598070181786626524291387224447853628785339650253407584393850032835481697465436860570701350461704897985147278759638907749834781549934595467385507895108738352711568179272079990762027479074566359168786647291868072966548528278343332074518584339606487236495564641017513026584434152323108464106294948285316065394115070609306127907245653585045608581893552977625109593494886738738623704909700917166041929070204352095138246797128016291166246209249777187522047166715221942734153704391538898547171127274629160571833691368149626927557764326083599067619186547331493460708547541331430619187921321040722723709680027626416705774083019883744035168660267478543106710090059158836352395813430869029669792231441941881422665437187075840485825006611432913468222854969252764405664723731899471675075593402433917403167532019705519203877722322008947852483360761516475854696902693685097880338824213145209843036701389593024756696928379460278917326138857202704330591044676256220905099641369229054540559840903134630182846623916758488513695297801855737822044324293207682499750826396391420789152622101500824580778421069107767519354748072481954936991408578871168146368574702569371790466154425602686924362443051757835617562082800141282978594119808906304726390880283101629475828467683828782356544108592777616274706092438882097906534887498323585698987621458283314013298114343909730967006076874407375167358735875132115958295362335392799079195668963585090077834192076519941932223692285294870889849196942305089533280177630544879162121443362806993269941564376253170559600414001191567786690604065423944214712600751934585593136833520580725169787954722562905415098025779229886974598999099415104829653016804498948581572067271322104956649800097433858047734468607465242369837692474978400928505933838077446574171232811157115981956825368653373365606290702725461283062733410205799058110876806870156307659841413034721506373864096761806572326730950313206116623951903160640235859705482437277486981300391517192914473350637562761052525685528675616162955239876394386201983115889409314174059857844492934344225760398948061800684213234202344609871624127502351402359645257156910413876998749126685191016850232309655714325049859829657406889952117566351632222836781768543382805806801396925081541466474463768141342292193523739399361361964165427761306458070980105182130437746551287336701903900680430547675619796228868457888854376611509890799940434293822942137351704015972085485697143772797112687916870427574610970413560341193199475565303928131329997312446619053573098960318677895360407548390699048665051387878480779355860645373936623898613081497625583525863306888194093397179337902516213467760606515894441660800250749027070111269183570248326083914227081832122091320641974225369877016556141282810906354448977417473288127098891361319999927193638433676806242966114821961793277318525530315533197969789633074847363763775724528344579744716471710133281131917710822455613688082855934225690249787603281290164389681035643631773467782029255625601166633076681721592446647417673229886982663020939776750894706978570738073569078816009450946608502769705849208599044746534799071520239086327765730101942998661489449232155889612534787282201493709810059116856003968708024360628739579008416672197947130803282100236627639484830013256343456552464375333239953707580846573149616178297433232448283789787925645810766863356741916500745664941830234531441085071991196806457019300589323410605918074708776110611116373077841442161655381056050120727115509248154190044876149981697226533847048021244125116332167086683262001729960385526765939361128387581031829550995551920306234859874403367646321662449644803404288870108045278416916288736779846999650762829841155385629007224967335146077818528431647732233462105099664060177440745672987028507830087800302542222851590059856201684284994801137289604580255998181510522819744034954686529108180626435168409251497484414545667407552125546647106038575389768691134745737487121813061755477939599477656204358251810588249080215158127532715139006948591279459450674845265268834236217430221935406803560300038616838013966186091780088578363845498640725061140195060178655144428686802879186625143128644436212128533476464628826925977409905582735139886750575577534968211405470823545039441762546842157773041612967910390985612450448664758878714156688802042850131657966808416854367393695128938136295939904657624788933117823359680746564541565534594042467446151836519190926960782342991340575590399801500374998104102046922660433335564383543829457221552632490672779758614200728080186808731085719747363287999511840568869130230680499543874290979088806070957442385594830515039234972439498322230590599109028695827845163969100577520817286965040228877960773327667850924001140651408026409869543742574814880931025914304586629077722847141484824756439278787690744288749742261200158237360128241292618808317348743702343677790423722449183159908424739686254516569090167508940017757599663121409737777040233469865646247687116246870779747506672198731419277212360597321908260499860977122141113217595811596024033432623831510131541114223638649758637840405281024043620608379068277209858692758138266767380450592665245103264810773305746180738178575567307986203587682325000311381336246375127576461539475488847309479898660143938946806736100423388130597048621677641217156412092622699200776345457270167378643930648979193918758461080514130938921684661442351129904095033563513726855800494149176759980618938000242008802749175712590948033253633139385685956676829716562241429235275968642493223411539474453863516127495727011206937322458034117378169303784276618546907584510825742289116055122138510769561032949590098715784488589388062202216909382490429292721061765270171235244823248378469894490835144605895844427034196909461456141269338528525104912099422066928233539626923915585569875201006171173516617966894029893866875779048511649095262324450652980230017869775243792734771054805434999668606076385081425794141944230950874141205757740122986246034727138328121618102617387826739189844664419320751618949070286086225295367800388310079167354756117438252036270029396939760815835567051184076626722776807040452053163677037698583749614270630274792363700946814750688144389945931231667171640267739450124140177425951406780111473205713772946116873599769224556628473139789575660458350093013357179977425142693844099416166309972441340563594743689957131569372052201634345425457682233561208515970915832298066781166997318152602155035775247912368570178501241577786595277503753230770279038122689421549954338407868233387188097332049771947810379978713791104032688455767952416384018834622344609172780625831360114358858460245894155577979560974826511510222856528936575497227533404531589537691008479567303271387210882357194502626759383494140200673944428710878254620308813599512524040296624604742585081078907869163548764086662489102479506818236072271584012573819661143865816282829292069398589694967353205298883047503876668164784008021822343836139702820946278542216293988643897061836805397375808651673685858380161338605824947484827433210303900125710229549053400787740363594660429697461872773676284869587294069725573266206695929325334155094025471529068773765622873111380715805977076568039970000978688078343581234435732936958055023702926971461467163160293930287682938617942492841297142738641305418567454924206348483327098733240883522991743674515208680932278726664539913220979223297869210389061340812831782677387307310130094879522612621719763360243960555474192841870005518686627075822428976831329019987748351731087712816132733212233916486732857390750431790711815222034289434954115712256299640511658135096318406776950382677903931422117897717443571177132814952244084640438284935904568384289356000729166664000243300403176924777923272082568361789174456307885416770578144989526047339447488079499030021199339260478087930982365052397311674846317470803720013633138557716273648809189067067754850955101250831179003807949546521886002933850439931709987889951052184223571624712975193944598684078156520613663808515807434354070148635582130640279023858711601481459500482447949189982372535328070347299439626059839231014873222606638435136807391661439578361442004767207697670949257063527052230963461832511224328826212489291069816484406857010065804550006601337970240065966099283899419976688674094472971998654613945648611304765255776084280245711935071075666321320014037402128566342337638986711673568177110912236909454886528130866382545639319402897413941770530109570915349174356006836052737878104491959920363524504786208733258635526147139579771402649256024019597032803978636237048453750446819437905918926491346894571907776037243213068012174162669172687736516936522130890878634284287888894144547846158279067630870291414898074979288164532850272670675911292866439552501129642758184304543699969453417169182933708902258163763057225833125357746055991362873681958364728620494829139987779135176099249868843567354775511747637036229375275135193066455859296641687486153596807863639379518325181130632172754558069526101174802833825421971370229595620161070003251770745427896021043828118824317483126041881163099512402899625318661010539890057134167738239554496483630760497668966887142008601712847338006848472732398078579777173212200737869592477639491435821109293908616091998345940116387077015364432765351427004504773654601006311268425894804455896994977712915522257499994188322026234287158500076425017973562715205296004249675886940086475122982687962019242610174302817075372592446747627505366281760285477003779787211047053691229828460243393479065490953937900011265839210895944321949061594942848172782799161624778679759875791363248029916468179779936961926198606654700045804626209043529135307196042777099990887881595089888428102421451651531159968407379952917861439314386411388462644591002818405232216847781785436996291849317569246864353544264835204607652405205771024735105476840206000332698022151973799647489571364136872221441767940614821404669055566065724008324521666268531478629536317709031422215158929839336286978941489122464051442508082617886666600757493179756591117772067813698035182907917074284124845237586933968674760108962041453787178945039995678735816929755884473518669500935861438982273212941350880783442094245676792673856036883649527391488384386380994478716163135053055317529975258780804796496171364146519160749334456953610600617586409134343159287991553703200710839780402028579162068043630592014495260874580546602580043224609868185480839021541133835730327018506798741345859012706529402082636198136868479534074303393181492496925876698857232958931264997934565457380024445800353600891366457571323313015713628716321165629456823715706659252067791530001866268173560739151496145545140979350241177205818303956880441337776274769079515252679376063765227218117261772301384399814134554584361490099389756621944925993197341050188025478976928293479448591097716422429243813245007253788284759625790087500714835507108937672766567068289093265757104993047660143367662310989911957317341507856020582164577520084246179682255806909100379103248357171084094426926462066820479168166279868431660049883054303852091979574215738713194956589195893685046573255630014910089908881405020391542496959463442370017105056065492272814172582591948496697775923431382651034074703554959262246628096791661342952959171172724331335284947698127816168004388133092196646103676014002542294763703100130057912731215186745169857217539268638750656692732121658049756458045793791798470093796343698924157419213015236445142412616858708007023914996502249425731540476618469145116581128474187503568938104284226426837839218414596091247917069709044690386616660225972443199745672118578989851985432860797458415679096194285972175798336630643305032031775509009380218022890054129573574656945050970397921508252910133977189867460462927672584463858895428368258446239406219276346621581193246728595629028518184811423232994131149636913664679534758869482386024472071262299537357134463462806334281314287804579181825363715642331746706604586589825816791763635983444783270759879496309303528370529913195160998309839977127989835864119538814100621229504294609795429509630817319510136050770602002426455173882074230479189600625034773976417155978219857284787214000273632110004427376057758215829842851084742724217797635977850212894207232306533992926024660749314385994823081802651773819181967032858264984009876137415540457694476799211274001601111882910123208898945129960173806125539844695267333479717531822452337148879962212450134877121553903874032102960546920791127948107388316075921235244853649548788200082526855004965186998620295520263400347283853150233192976659994998574373757212294185572469770906718075860708717724047169748698333107603016224604801569080622311443884390792986032659935622963175612717254895521348984803614291046665256204414145043316528792200239055154483594916326521849305295659073510102223106393475698237817147695494913392316789985182803112208465002481915547025460310555519808560809158796939612060019184938597009226527286345896456746756273286611687248555148652100591095985856388946791012786409974096058174395224615253461153017582103435035768682599829746299331140028881251338288474061660722461474723471626006970994588680167874008397384998631525823834483290327679085867916322308561557753989805187309751349278226598512748538758706435269314453643547082726465751223711519147489552291516900735720521687015238374207390413011953186969321699060924439977551492883053878054904139211637385209177523218616475086976345850571234941577308681780993732472947584166861644928753151793875989934993901682086688037692688211429267025788122455676741610512270850597082541003646342599841173280653097922499147808055018562680670553818706790198237647674047400334176308780996183384631077988395909293039286615686742079600758763282747269388775785902535424941982882273217579510795776881396375494877184944250564076695714870825069654009226674417628488649157700667577231294008116484745937155942116160000764125832185852932111172875562478061822518211471850444851196668069793305514107573215624636948374336574884921235863094466780815871691632339830366656379828226277347162624036592922264285463045791884350755181414887007697023866053775128839201008122974668243992046223085167204071569097629714559286024519597779923788706680082492964122408983167003753902385452251808286160860672622641943478175042437316416050347001851153379501311799452822952073095980240104311503875852624571819321415474250207967896278725935576119703492276729778526951936698188131349461837937847322080549449633906699088137443814951872941297907980146787177746658844001201785885689384711727864007245563846090593996818957869293706090080566907190885878358326428980718025376408600457109706127719178810722837044187248675710019139169243438368218690387356035347765175071426186499984911775684842064697572106172983048962153146151429582169524016050288080600713466515837066186441500783507794227893077710601679054488186979063436887208108990713850529218602669420910923847002677344061587669771124120266275272072343915890966693282704113984908404513072694360980943026183890133422274200230171696919410160222457941056463013697367613045488453633869600934290820186504140451266277675919566865271297325527229363533864165290535088971123827969317082927803763690129583064649439771444254575388957742061034269538073265185827391072174789356126631348447184323410253131463170151203407035777915245397158843627768337414872789136370450623755963609497222561025155501408751673910847493831176498217008672231505254969607883606820292917086177921514366261345221436346759711036792125739879834498089502206240824830181153244739593712901826659323778169150211371346080638258156866258875993432747947123394611012350924384307490984158299855217182744471593272184685978516593578932989903146943747646568321698691624984303665991333043458494448928013572761635114593643437046581357837582280884799275087312939817781298181339642786512049858082877396751805525431073584876046269954598313647154444020943872923335753138064800875095978664840440325935777804840168848590112026966157404451873352301051529478718593660604510628845062777141597417781812715951026749317570389127826612245354609941718114507563259092493221644156767816648796882031398955151344156757374734714666020665745493923156524376747378194024525821414431899831659333142043382290572167768247516449669038038208123303331882592198196815839622693427121817585945365527554168892102254440353417872100809232019969613001763963156054734136362059616704750062260927618540904934572814249619669178852890524014395798690380369560797407597184487796424743064480167328553184310004872187373902269512872258058292797353079202625749082991115780919586212993862797950436651601008887108543465036747378692418070266635646895293365779467882683140702632347556712316842039123360608865763999279238252092150548225571834035411414268717712549960156866401944870186548361022637651161356516091798608800838457854608008064331670770530915359992849446722861809714428921532377542329773668917769116467215635419225262651599791428230638556021219934889570576954069382849724729514559832147141084960442168778036295850553955757798915184299102304123445671142206695581375454224788040143594845156908605680900384215685007274138511680704874736602788556900582543177568621597271771971513590191738019218877717467930448280349543905759103106336705381292911435323205429267801245664795170318034178059190260385506901437957314276370589954584244743230801529693411848488742987578794936079804367590697505378437307763360218841775132649078063073036430688878084255421441759552577383035149617375562771077864545704385770529476166833888161763819720272865600076013256276965404062158618442938466550045882103665883210600049510636026626767277773688199117213199527035967442993998845140944247253266644783705127232462769817415887259498033600148607240389646405797581803939362008126622425346258219261380232543480072126230929572843616835194301402801264607221910767249657859365374133602667860061386149730079516440579037974257450213333319682618035862646252764860004459396466556976283740831912354211561621096417731004788951063939157050066791534402995615427522898776335775630916267952476642075822927789460728933975900599907929302442872206857314507767794907804335715088565422695502456435487522262241635162636973617645620664851472563173205931188655689374575748999344753867582067760252860337908592697633513980543160189779154034538314896573480546949807748603202580132856089521652926983343106853097683653532182812952344598710807832262433702566956781202581908355858686449894445536602634098685490734654192219103478202307239063926320275584477887656968349357024590069285780190516235923077481327468479609281644988478796214864416508461568663737978861023864346711041005444775005248528100457208240947905790700046406195683966755420473105132694927973352538036205727834679471610478916283695345679139726099775903862974737516111739374871747798582239344520275696554853635478497907836410654162409453234502823791580865423584343039659553238159731079196328441256255157812751818536863124854293687388957312665243104988955457974241874114493281731523881120856153809596521520880967653281681036378138624553687891488795520358471141782095657765250859533378824478282037787131512489879283936657838458764938476749325971105997407663791425036085675484714240803820198989265058945766243445132310063945370774696538180780630203774294827267210120264652901489198798156211847975931493052925713385990284441595707667306653886819278713850593759507245646592886792827397058907493796883517304843962268473557377276311850964590037663665659781316046808896892977201995088160325362611304161106685823053387169111345803483967302112635576170249295644687987146136978199187691485570375407780693082852900721101937721392944884297489473464439569241382318624441110164471175194291174943212283731582857839406091883070663845855266947605032200507267646954474187478531263314615378147615584829576568375542846666787199544103112267465323046982234362952744047982345164510067515125320416370579910520736149161593327474014528559049620570897617150607723310550770037909037683413358786239851655390155117596634491047117441918380867326421619983056035194022697599353920048225404920643020536052855092513305698157808758748885775436581460184584919753753591773121039782421827113151206006891190142196472765899863977346437176440866732120255890810312420293868082914258360648397714991772658352155995131023054245933615350892727347498093460218667564437791520476995666360734608205366310015800629094197457046240280107078035225931369885696591847043316871483980877790075896790160964601844137285746549395137426004294037060929356625700094698289664211028773101048788134946797272653635158398397385567325235413586590667044900954859216358877902358904089613549012988322716748688172616618338643712047118870761205657346342965335739271434895703703972240398669507556409432122926410433684220026792189228002739820874802374486752984193279560562604172634342992003168655940838012479469468917467589216734135176939068244172503783834268378059095891364342543880895884294806805773345407654600943798169717403294845082402691528933964615838179615164175694775471364677284094226559037929425883284309275080713859862156117201901835848644324273153287326205764881733547661765949672419992284869413088965588583424799317339382247058925151959397968301660495102449398322960726264495338232472297923993541287627052505589224823498584770250180061463785757714552107999783160466844050629124450604163082489781386991976365906594160100973742445194299054362661221417885859097384757144037957591901083355415074247298293909139697650416698900424922041434216332006482810520409643581591510343099216343160499895842121126578661957075409936541292141428887494093645044622903191766332797842389730337212290470442299999257769085156435299198550055958246171541523039803995001796941500557326343059935422058824913517953170091350384088606495914109990613768465269236284377343114920715718658316597937609816313193477737491335116125088555050450617633437346893400675122020348618248684688624764277885941980413096893021504203829781889564810399199311653911798332157940034791272038923561202633984882358317066931364037204362862507571714882467309311204727336565328289931216934110288433283822711175016530658244625214303973480874747884322123541796327875838384953160103848434047269065769417261151702723273504470534840267245401362269334464236812117154822628382373479207215869041921927775772158643807896504151246444920222536921505693408314864392731750895019993303126041753476026983662037493784368659930404148279374789747296210721365923508672990401601161915724031674644928702978772466545584533653517765082167388028760292008996804380702293207677029499954200943045803162520238819368538774041309049423684891759113884249529935456364864909329492709941396011559530316769326111773657381094190830735595798672347806035598889628903499294184832393763140454367550421369064831867067643193128651094679290310244243660770819375170686358599344846716246333463303393660645737324557945432088964333291724615217519928074862883724391508512136841282302133409269895882967862050010712203040978724463846660674497583985611255957319721388967353270873053079149567721023174445680188811328275736673379467306113017072087961974140735131656431618478718370501761046828289616151365968237750945465818524952562957621915072965618854821027529136946217377366860981599332351269064911009943268743984578797262670065021032913283257664820131973912340636729673853833709130761807179432724703734036741588327463315323638783981567256441155310787388541621468998295337972225646094342094387540641999149054947286833115087683875540241873290106516414906828773641860104641104930781499491930325586938296144230282376057985396078591105913286635369018324812347807564616484533787863160228462882778636338477082962449399260455311372999832190233556207333617740136490446930984351954258485010620361499863963506702693119646625076699039839927233628845479689107895352980943911981646742441712071909271672750208458869002033845980739962548694223233739733143227573132320282076319961997048643558017641409164053479456369827303442744786998614651786387383433086824631436012786693890131906038317015882754273147158494425850947450280484999828002721761355805985192855921277723258649851660899451344641917153475606180708669142401547597065555029724134705139535279402389108197940767861494893951189888840343388480524809680431061453534017271662803452812077208384642275086593337155486214777671080181762834433341848878110460501138879214174141163410743209733025064915383014650893081986361666462811988926281902753052028433823807069766778303634162605988103431496956143146209650054426863525961085220317065347947716802313384367799282758154441748079544985695630458920157832894730458113945768969606893987962813766632647605078604542496683746313908340122603433960721981641186601050618530592010663297974109180853057943586876902876731943035201214435576498051834707760526053275860365273073371899992509295408918633717251461166358288527411296688675319249680334585275825157807936929000768513699468412537073461814785869641964082226082535463907618838057551257212615453106049494674853218329716883224952857709557411993919067416240253458025569259112499216793705011357173296328532390446820775565296423451216743548772853803610644585532384397271297354597044755068229075684026227556027512564621486805398835476558156980325095317871513579642663422358919717864037699161038424783045566555049157896275837252353135012007683609251358432424430482118046087776740069719737964251150735632978484508636843699189834908677575053114057832694579339894054697717307641936161747449541610140697044495892074872228300248500456152651519204972101392396549230331363503489576485923040268767383877691844857692995758983249495825552860661720813041594706040001087030077217900805257988049419575613472884251488381132112590383021592131772353678821416691498051672890574340316864564404442566370529137310373166670954330781954563014810575387355329562424870477724641536478032161742573708760443658948771307785604802800970339873505104076459446480672841082862757299429891637921259121188530742032839629172013865382506204227618101310267860446888910746808370832630149847919328878505989862031155650093605027796007792142113539894909082056252169080648662899675472021247949613079007364978118921870804989116592257391168958893146689751381546267495515387188260471177782999668820926275771397147619212803001018704588744364648044390509085419447209867346877403255034158674022645089443603529202226218843940223010305577330491966233408853070507048946925274343354844725004407214333857792738625322276772561064652367649284082619425484385263603571584161942969227524468687749976105920300251798201279524995257446539071229701291193085617871271563229889113202242128742238080740403711364438352615356671120566786509169923414389995281757097488663882274130923681791796406605185769778624911107224493841944800607032022113739349554054043217352979437757705006609295691374304888152119601632890692187912092426321842883356124207827166664155600227180347610667903105582559431043828430869030679022955109523638679990392413107378838806707378915020753897029301311691076198559808248835164909959398329170056380693787268521905514048382440213139897798824886219879450930453183789001008894332278550758342665119999025773600680484619691385953371654283756519878229790769915029721649779602144140576735748479553147274108520893839736305967481857374859591101244813544152267550074586315136521410514471128077591060547668289319995226484954631589891077073597903444369418262108627799037678748347267990795994293086824120227236119146334836449451142333105611724313687018618400651497782385161499926711598222083496284295049995739308505013997174998638310114068152801203317313806542933217280762111638092258960556196617526039413597883123431745808339592758712602604886721341214618428852417080911250631713562771137593274994439274278147920478430174849914554255889236144896042491002686697394025006259333459768913537871932904789030273507804131838648117791549187005931846692767560274045831265808788787943060412344368233285210656594391052534433145201801537358956362137382565943609562430056569284856436714733104326308213448311247203365899956909892079888552803710893779724426490402642220354546816564120408253364876758541173908983164175075509379487276292130571858176452602981466745336374191192187647737366753516686436859639050018651504716681906367062351035951288024023526207799479844682662752992939743279137127041255185107983172793633017354234176863879598977499930701386054364286092105044348419820643510989682735115000054498368143998163020340001600946386618280463681652263910022552064311947828068443918221060780849370764734054557719587614958258256788991278126475998388911742339034954227202525722544248653444863834756052087461033140174273447819922796647512498529836270210670576726563207462366898805540567809540681179589765625571250364295832224453424808441661329911043126330575834851971503243890624300462469172886057472156618554998333938026426416524044854924064871926301841421876371226086533841907387654720863584187399432977980298090865277989791911187144468637368686835801485080914944844819209799359661574596035003116077478672558844865678426197223399075444073209612548861793981640136416743950147271850000435142883730349968632239268278103581849593854130508168994237184486643529625326128587567072689536350439436195518252905873799444081838449463424657953756658896077900190278931436379080335293574411950306255105701676766436733489618221042142214479176375349148719644091729441294855532824062653841638668357040099459165757904872364275965185346251056989763507732017286625903604577757659904289986330437936311127306841535944848831750175929262678640004376339250192652796996860490077730629629884651300776012960690881888446536710677310612032181213267481419581988979102469821423105243786302385896601571646984241991026038176722006919745284779478952021705360808594929621852414352320033675142763421720497238152105266088091592618142076655931031233350187880532946603917334616615980691080083283809218620919729275080750733972365417310705132221077300396095653165674082204638256550740579255315509596414219959380632877485780103113145469002235278128081654110786064508112768558299161633469264634240166033187898889870097121664014638230932981568563535104965549666981525473390534089627771764994386840442155934987232661235273925905642381184839814184864890035800807722529810750063323312843851804832691650359247682629111750725964297249561845246311921783814286075492598949531463632492903758166175693147073699469502702838540372658708843106647567912551749662258519302530976161509495856884764386743553337098816531541844563770135632086195305065799408395564663580407404918579099167647384385516096240750748468810815999822975460168620073865744998071756962271454053284613981846150802553025456918756632636080488929853905093975941461439026849659180807333585689660999627417784753707561766055030143407074561453152354962635458199263688925836650997000781697010846805315433432463068053947446392386120084899412973930406500651172304989721444941112040538755407440811598084594271533133504754290055124430286980811930095926184016251056812286978138243828043393600412631041569249348900229363930048300271130311613926627226739160499188776486517117024856401184189742840591909600737625212792879658726795246757144277971714617835699076412902218881209430826803688655564025090227503970862109433502124526380200638186059196695738318500098490737677431538700629706944110062690362632992391669061524189129987651703343115536356364167516637104714265596215240342432088806251474838263606685648367720747110836488755756207115715148711837058466416226125512866183004353240512175719640268067399275230977948541731916945923748988243979297819242955513750889935791493393665885561505351542597438990528838270636451920711342827543195540217742627257578906217454166377368173439139708778170108299835645978049878333201027787545082957579473531331453664635855120193207390013318820996812003162043347178367547683552318415129887224292960644491426323038396888837114277875452505840923679413674563456341499101903926035800875750620085395209303062034141580627828993391399441696609230347779662389780936742714628810663859515127024374218837516596549949638125992229288308768722395013046491099616907630821085217813495318984021879894876517100978537631796284935032890343640038597065378722479414258270153141639167070639494662062443197021352505381698654614322950758870912739395064227492231078699898367086017715696721700688284588869326277004737391383235380469917728556813274549378518827345684484445930305000357542404966566993140981957603379716763430391135665379996966201171564026821899663502887050193295514162838289184007412006814798049349597244182462101143227994856995971078213014627720982962384073440442557364496552919501512529370175674069069235479682468167297257779607415316128360544761315593102029057225602214048402664189565946707051623796200196563621280163545388705391863451190107871515403338870378396874157816129843031982039902722870806582811843822223087540229092400027706421119636691207514042297662891548546789435810741455829885585474850253779608279542280920094228125272804844120961330392377621285984252751218146011258939721959376244842697665904605585488167965075332449403412867330109313462907968470205930649074583017275075015718848826888777063476060192920951651501278420169626765431753205952628069713249729594473555467042886018836018404890934197230635793759654218357549019925286330830254130729427197655811467198161797840749168627214958585139140775181317795406157463615734200680475904696049765929540213685121393061292153680970403682604513462264653516270586934635869815168849991686661168136342450418970486274155559876418012945272531963172757925087613689984267800874012216992713023458307229734781921544003863608468463453908832624763923858994270471851133409471725247793621831395150676595388296479079033050998602590770862094230894297071456063131716469140597826118686141209249668467397593129097238716049024216154482901219763153600653524308417608615266571070848966616797823639488997310052956459278183309695013199612406498370501211260719429853450912552633327612510287389720202089272415053443256131629580865020658486012356308727860649696340245689776156115998300988191351173758953843249461528238710596671509333185079563179171348499812181067087653081231030367460268407135112383682386175988810977693269220904324282213521198541329860749378164031280725624494689131763732590234455606108235988115198126101226282083256051774017582276179366863346531347874035382554326882012366590400948836288137488878583149092018947866503782083578311650778158423410138892257413706907974371356028875515804324917228151763909290316898341916507985513176945004783410860066802817390890208751815848294593424672239163754466838467688141554052174803717032324768220797151064789604149230068756561930071127457362077612137133952228364223941383983549814799479335742603228848661634449531396155745314946318807536881381704053469081852749153821356558128156384821474058302023472689154106001537814477771386772350209514538734363860056423832292980988816551607738982619045835817704590312347647082095829906357196262120967120423828045476074017737930709099936610453628007705505617629069567926323993098036949179557549453040697981449260523959379426503494979815650013652991629675835198265174407916776260909035045647367907806596056069047942883801974182880812371294866584023266783381293632756630928271841764349724893963772665899596926533198254717512995334898008805824531968248441927120626041898469105164142459984062446261132171720801953023562003524858963481582927473970600741222625325890845760870961491275255833844227945420872376880916206121174223453128549199823564764175908377430462508422585076810645100362652558420294479945223469948018320574572647065773628639509403171851998321324040134710576886792187191836866496226547966054002280085645653216892967807419314644082183885042839281678789677117717390289227058257731767708323116504525577754221881214517079488201937061507459460675373349762730806017439698941647456730814638668911406194429864916051044524389013737783597914178513477116143475805219224727571044997120408618359924769168833225714038287772531081066392075000155278370981124075983663108208761578477374075592230676251586400261015900302299715643416346869377773698797906260890836437250975943558587916068711834360334211401771397755226545205886175603747469885725452777505049012581939512129758786915980246365776891249275167133550049322507074295557717565212726571456191148283270382681497289116933933884783179140873498638751260707345789588566650080364496276257999730628079293917030092892444273299410668760178983283719109322276073791362730103565624513738447042669332264314436158593804074714886688376986580698337143349211555417792287860017786185869636702629120922567151135021673679137193369374036452515683777773938427165945256739286125293629781902742950101720477829072535847796050386684172476338564524094249588343562322383234974553446868209920370464868470567933275234261828950623278552824578546914757432444019555599726553528179129599240270257229276120965602248847425299745188198262565827530138435312501118275355337653383295506715639738986058398558851321854682871745860999185627449046156608314550493658081982566796956922951985624020526713421610397453788114977892433170899005154361288759125944663439330458734381258428002390764290171067588485918654842413060898072081669321125129424024706712003920846967608464959746765067191527753078628000577047064065838746086924666215247175352888941900728883517241122239628718822278735661190332600400698491159319765373936972393542117517638829229013934951873816346385377507020921321606567169337379496641392155249816609249952930554128355530001258034108849985075554554615144618544463423435920891536967118967271336851172283879363164747756852162200910056377097431222278170972637289811774397909074992699207408889359656989196202285986943561049847611538862607934915690076093603724353047198646675402530346472804043098198093733583046115593407581670795224768879207943697756818419396993317762914843387182171888963167514492949005340113200275489233439836835010635646221560615241556552042020976934561243679119817238294564147850730789179252667080240057838686516562043375516187634455202464201687998838336676495343938709661309702187413142514674344346716580250809849339344808567393688437697062746542477225962522051733485577199533853611751775074461266254341380687109154017394792780606438712595587112274774409151888490708253573189516661276306776409476294106807801058991677664529054164208305263860589732633188737076907164398817329868330015318793395235230272092088574220242635788227554243336972663738593300676475066664844032535798739027152223400500792355302088652613553567004652085331487176085636128689275056351734962363813429777651479426686391816886938800170187127228553734605112739764749251422297406005585768868054856288052249995462234630481810608616291598874749905036143438093139755000432167273218866986115657272936768441858100843718493708022532985130108159693182166697224802363410406268559735819619079947807255514679235516026783395394342033892886306454450736314305403183878893786883499709279200771101877641120257762436791978545381405803553046894217506408898423785059129225173181983325459921441345468397316485138924976772459462652751249647783329672461377255538719099201232746033859980421128075232167152645788631073631589092568257686893567085661311116877772696420074108177347117043122262399322840652152584671825153131413249638152649616084339062430315502880428163154627101564597179096166375539303559736842226357122845247746400611413724127292806920924845195280489053913457485167932606244598823218405460937204435974637773090760262322651562254311620480536470719437125748702642676162298285178523547681625037982585677560648895724487944430017930000867251917810300876636616834092855527794521791053906264755566622778535321624893071087101235393378027350760204202306248555556630109379323355917814370926975770351767319393761361569617288489040306258926102784053003634324368322575521364326514511129994680493119462918819062946032473082068085354137117351978944729554836506697736209020677414972790622986356360203826942211124802414779135928802286335174261242748577154781860226537892459332269525074118740802206816487265927911850405295108700025121057315479728311033262355944616229974373000471569508169047942990847948935703678328411832405156171429236692421712143235334268487359344729169556951558984000050693869547914796885197675145521292218317226429567092445272710091170703088107670257104335832014948089402037371987709522796811002582654107019195315422962214905938272988113593393032226466612614025938592816433628213016279398609668102876622876355314939255216352812788203525701501572103201088754307491400966216972263041014427838506608493128272737342613591986932970523698885732717432285157914842340265653487956281395297348517833330082227813846061177659486288472715160376173545330653107994115436255053379723479975034620522418739721482314852268539830510597238011962978239781762518227936037245018094976868382872470145697119431261301626046878886629916635437855716561081355024632107983965241635298196753290193212057607796871431989082224875072989490484094628047697784074713121856553944763906703539724468038379457732504935257064905027426125600073479394220161326839188171290153325336553126667349416939572658158275133661291582210582945763975765560886426032917952300488928430787063408176277240791422651791853051811463574424310394744554621581545165067275002747243353096702352287178751686307251392539012846561560659845926670821581372798599569476726020587195040666505233741132320003324900401323945510512655005289849963510930091779522988064718933380791047362512133527075316716983787628473652189233101028098858123342224364004634078688622834185012576671133866857380581356496331860906276960101165692965766256098200058834181701005491444798815849472011325244255191960899789288511337723281099684870422590268859326484113423394415056454483955214203268250450126196029774295673725952752825128124270179417045801595468064072666499317685352372003321394211361917186768558673593575935525947883553124665309546538014341416597330286303397340130388008965743025444408227448891677856217852825408120145977257746388440729933442529440563881371430251794517265705378842491576394183625666965933782651725382054788882364543724231067817064871578703692620947105759823179046294668150750635562058282146596084482261062482189129645895084872221904219638484614782768336962403709089799246149471813381047680794751556326513255962596597157519822669059214538412215721382260445197541673151918498059438823909034101437120092714412468806443175868884442697756703704671947366359385923228836449413135847372367446604457897571147491663346951991300101607034475415270029131710314342959127720925375758917787872550637087886681822500105035329109609840141953019741908729957199265270186226497911604719065980891016757708863881298812303949077937918501434021420717831566561645486409083953395968814716446722848595916249433710732247709625666528166406642759315783210380758888969513745921106083868275306072910523549266893078070085998618290307704825410439824491174844193490713510255590389162932256548661296899938427582958374320086360549666564289247500423886976146494473344918566128924425585018059691114480872554878053284844125997342476465670887057607423659338607738142559204509248059405846020946935191823053175685982633112802205124592580211387774999174450788092518468113997459112931720530837173276631072047926681380535301616979917124357154752485720871660861429293235752208736598207413214512717778688947088638082194625665084566845510237561854931813255616087781342704783341852351237406175821140224410282471923078310295047845828935690513596451837239544015958580628828289804988757287572953197148236275706146928241199502415656807801255634910439410863459768722618658688523426246375244482874981454873631748986839016399186507277307368120632015818156594057321778680160117398054484873044496658879242243430531997997574328773779250641726374528550102253913715868407208255775621882165627190988771433370020791581335066057431517970801906169853585359697214399995022515469009280524975488766992250285635067571954982005193284982415514281527512469775521377101316153078013662789754609495101251273708822516305330799896985168105608689839104244647864872474211510541661198829469480965077135116585134274289033626615057329890706685898068427875661863873368483747479920680085559517388491818907684490189925839446502695427728176942084263562917154326450525672108298819615268969260039285133858471452041429140655281040858961869656917657287407993539587963830281265806382286974052912851416738965039960887925791349685230290715751652559694534119911391711827080760195762601875524328758020401586045469619075564345051579394643678086224527852325256574401439365850907926230929807499643995783473155167388090630625048219706361444014234386686935921195005807574886502819801040612000901111047552515990699355862503267934911257779498350811748490069375605703863121837207427154855565592761280544532112707568916441824908009122953153845714542341147048714898612584871013455424218684299720257086428436595729630277093333175997371949546938500349323898905857121848520472342718897021337220333092228201675400961500855627419061272672590460547633667000245525272538696598293722075062447489184087172803349023380027615669814395329098596250653417809213200999325974609041914105766141940232030199882297910187614208404997560461469438794807909669670569983093592660920982087627155885635136851006202707172042387093784613152189122512243609056419121069536182560371557420439921750677051883236348325093093883415481130913653585602110072528510906781127976941046276830994120025975445378288653972634045295272522354010432336595496041855918538802241055924089373144418941117382758205609131954305556983759370169209687372823032586697465350670342182643659262833891403287542930619230847259643600031902773640741401971129618458274317561360088671404892874304932888658288315885056930287304989805671133166846472209848294036349070416071206592636072723265880747942745499035505044195255068165036764616509854630325206176354752726837151247223146002577240608548783435967351489480708440599263388776851392946973982783043993909217865634180602846111690219157519466213893387443531271955581456842427878945583247768622149226762982370290163393714014685405833272849401308357327894047711421782465138872616045570973331463849284130803822669018030342756767624865596387101695260517436966778478922775135354143540155597300366794123917924527775894826002481707675496100692526023277324014143628308892870232723362559638113580954560846695140750323599946718481226589518725919478268272725042767819800580388975549495041938738514817797795145885089099703877440480383544405980243789087484277730297797016263201791558346693050567716390017746466351635799047949158526228789968631472286560698055714257368478377116343109837267354759066351359648946196123722087856200623428083648201976718535948213993593851105736645337711099769455057009096234415808872143227479419097954230330420599952279863261129093604679717453088221803792876172862429845520060401142893558057178387994291049903080939474459743859531816850529586017929566289948640506185666836527961431906125279438774771061300386933686617361961964646578450612711467630020944548025351372655342318864253939679715937311804295143063299471108711323779703272267930839094685051462973314507723208578617079952398812330669777060667313515826676446123742555163913701465714819893022526932285041059169132020206425507622254070605656012282242156948642665760124759866514485590933185876762528320336221050436231784821763237178500912581246186276270823604658712413227227238361509835180512585332081421085808024764387808636707537403007261866341640624536237668837319416899159759458868841367759682204422411509734280883699386607119055998188483214222679545328970173609116715654857183148323951938242234941972305607685811951695022766216966955975171017917572432223575817424104597119633278928754904184141548533684783088126212468103902196150632831752223825465957157135798453826794268754799620664207087870532680578923574081280123012579460189705427194351878088310812201143573531958325176271694204446761681040612655233676536883388547900846386510796467243498888470427634021073579689112789160392463027000126514153390635275155933237746095392773433580240409990823953497559185669853815189023630580911053918190669242586653344003456420231619903217016038738081553497889597770418152324133170602868077391527528077909771105829102098886010967187359541431084553286509775010648584897373029464834804750060670425292195847490216257840207868555827283421521122269035796568422399789287561941498027844161330179231004167601117267772837336710326153880228398795938590007104517377591217710055259978353729700865134432676915017354546528135299909801907485556290529284327436258173777461149616894202614050990278989886148038111352946128770099117574238624263656423660348238714754345228830595097866872592255639790937577276549302723881519152450105754711841027717349399969787057818471401915488910185873440370890751986272772301407819932824709610415961334206205074951027351244180761340393596135799278834414125113410739890457651869680652150395040283178333212808461940292974105518982480349684477822902837049698462755612050624042655928452366817225943270137516119045121556332921498818339639010203236596465945603504643570819923818132354679379059464019884266653494635284034953395926126432885520628573654895589258714454419173821606948483218764411517524252641528792978004106473330417024229169988010740327584194831496840037798182747987055230948630177532672977252420696884268004992047470972557664590595124988276161615393157347395232517984112142953593703501633181186486589846699229321949213690335422815382656130809268578387290181438640179094599418177494969574692190621148021497235578686294824834835125438276640974736929953058324879757998474062264207775021114076100975716780248901817480035601484096372684794929756849370647941738770901443518682053387836404429011135403882503769517884614504656384819111550997269028238373421255913801592968022674876235627581945532416716949992990672046753843263927337028024956137240954323512936391266522619649320940443057535606720170676425046255455186285418873388364940312348290374356117756534936992010497671378250824908430444038040776092740319532223381226344092035866982787031625650663794329635019245683909663225033589009066761161972708142317493559011213852638810141479652142615675169859394284430468331529990460512610542280808764140166335668818573700013017151364833317501489156583096964189464467559520769494740748967566824899851881540033372394513750863622171964728680049462803656374745793296164607940119992312728824530142045271396699253819696013979324119101339580387964850188680723919388644703779326682673030243186652325633684401098579685262901517697475055793960777828123557385789195352529412539892776474267360193012314400342039539390556739506540795924749611365584033602662539403974305398052602686809007204876618589710226674687866735716930254011917983539792140257179789892242454829731397036977365275429367075634135616783236821011846726147228634813113332998135965490693200416916641426801674940262632096525780877767097753797215170767811194918881921623655148246269867406103953529587846852050942279352712642972325037644042922291017389880623249173796232142174580754172453443876823149899145733963030724023326237753385004895960864586848485162519978827847054281422679638197328175524548185019424765129190279319536933498077593631042357670539184798833372703817491792960770518024976864237742812712795690539026131589024208123235703144103279281433489989770053551667443733190156978650409422890854466391679505007478873725116978583753564912340180103171004821793289097455666104043893091182493065949138300070170034715476411507962822948648071611758348005098083913178981112309166873372933772842393797664047577546783203960839578284430112752341653508546282036346869752973320029553562826825401879184954903673813873893762635323027623668766709167270421904140250120494625622474807430968624142742773484932341048076570634053076083763618818998780938454958347472516785615803715463082494313782745990358425048809336657986437274701572730895275205217710419882241323037370490292815512903294978849629006368190692918391822442639970550573140234259291218350188326813801039019174790265922940037975780226335008147787642558282395739871514391898738837226800008852244089665059724593257745274119806910229595489635248326459503852045981223321897352267711467531993018407662771714793234498372400862289551356565205076019995873448286338642719448313142937731112369166909730915359033801056341242618350346127008168545309066550976997841524253056180276373475457851598125613845497745618252946075902658411653891104435334422006086808843577551654564632451178285146034550180699420908335254417570073415725942457693513215416257634680556353188314257245232657966902975529438511423407244477698053981053144355098769882673504250834356408898016960651419472169569085664030926059911046859344181281202649630882385528185014978206191075039405870776708873670304072690667890016305670336353068443802532570805639151724888899978273479462849440793027881480489424853588560531390524408753320903877167248447898809780914976775719700158376872216497896758533936710825178796641199589593776585770283280046048392122826334145044484634661833410005138575415355610215001512659744236912504137179963778787047087716114256557795345476936091139362917823425334909476499981241827858184933902586120197379686024786516407544722864968225126412547414121579115095147990004241828831455549767835500610264624182486738346150832558927313929215342492598804879174409082951747420269428008646916955647950584204969805775233525108751389419216426670925220488296276742444263905818837307233820763524274763055973655518070592608681603955257305895483759682775517741231969801765304666488740708363492737834507203105987363361193576236579094771463301192414445777929188926600215334551815014830509951495968223177510631073606961045670952103603397970484668563767729321830605656645791378901868715640466435907085620189210557459603646161416387038465609693330237572078621880852970749033208311991249406954450140248957781371514148132488533265205207776393193319615857067002436162201222925083593103985690137525585452207159627380807221596913750679498025637443923512696018745561830105725437062552619966924395694669899341321284195111029414980722097909765247840270967249774773360647899383429041246143328333782786487650066174138477710575295822338061978922142857929534040103476117316018752629383880209740551688131253637495673597452656680143122305064529908187097402692706999430108847132090482958911063605651485504851648102086415558137047521026078187549878273331350937120516466571002079993709893608046870715332714204642265921370987799550164704225714084810299464211725030887984595130187040018164101128668688776223957467867454877367974514251122326764191692304443964925067857100339410159809648060108883840440881212035757088438570079398884971195096864546262446022585163632096374387707694618730528060781575510951478429035167547113793321397410593231432096895236406859373869929652872572008612864916432601960538259774952648152059312414930494414190198264057016365621974064380954327147221301925521718699259542775986455148071862746826134535269861438169015709463381640248020143793161055397926979624856475795313094883061007098870938860694109062153520381159939398534118951016202012896689543566404557405087300467498325932899693548010443969990098051964160776994556484733004539016813158324776558585386669061064266797216605253519683930538772951504128230330097300387516021140860923745333115010042235030888331166505221875591308064464610625204251158320676704205249468618499170988543746432496353387438150840603538522257382844882504941185835836642255792976949155158422078043689934736939359352525651144422766374837965679887335854291386954711292187201122765032468222345941547401954964840432560819722750387678453643131376002520104182446167933160080567939216022007401341342580450210673238739781235120099195115905048107394340186780425361270231699283754456686630292558077548255624306028337133506068632517366067268094983029777553692661803598583310135840356000368004362418359652624654398259826904044075062481716846288101299215310428559947782656487787720816136674074182243664411726884363363300543877328455514213180808770036964673457654032100457087622105565707051730192678300062287729178466780947007161808846772005529074413674617874062272030333479940720563359656851702868418976762608901505407200591196912631010959683306802617452981542626205387414359011482100198062726991703300201648767761354963357422870569168311202554213353383811614738198406837243606089048224262185904460381227938790881845798895514994526230589991049628706638284863927898465982297231736320585094234419747765356607697253477870153787624574686358201397194851568456580514778124234808090846696733143178833981224250811201953774915027232787306518653661806417529357343349300441710243134848652162146232662506586908174874453423345346185248627301856720764774847913237308187149965183414511418267648172126872039913756458598979423894247291145104824490633442841632984537143810823295465690830389816448737230066583552430683261411089117885583051173073161833157055451502652945290830444843261494230140008749248830365191418840071254959533358269410005578395849904462407286110047417232007439262916700168324829340791465103116933679953200578917953858963320202980278832444354216511065930690759095135348756734824364491479181648174756481501068321192318034202940400549686154109206664560435586997935912427963982610473569610791163871146209311798201397421486321606011028454100539326627938711886784751389871684668886499417334087819556400823906499443967324827255227788095597496145615212602858236658425160474730773791982820235504731146608399349791113974605191842665405500972602835203577104393189137629761564172356285425929479356106974796124098908177595009843275959814440915563133870182353581473143479418067320630401802176136166486922183899202232306894348563553301426925738273797941709566830096163148123952949155133039430452046217358674796422921639805293643999986870752894667706432295113034610075384446860110525563647712474706306271365943667136311219721457984319532570561352095224749187655521023606822920660035701870534805662712116050571395264708632677438775626477760305459745338236300635367638783972983099014518089016408665608775726904408914171416349128592942006541268112431501039346128919929335740032498461087097717784157526437662488690051242583216890718131667189515797647271230885779032904697666969845035720206847381464940996371872952860066667798104193119620378205080443954036285004635837440417957076589750860608206280715672517490031219211356909103069264105358765424304968231892670695809431623396479612703247772576047782486114406954055296653117096748843285279114777156685455340797895454933954112003274970001457433890905289500398950207501405515635254905591086702544889479469582118181504397634265783355721905115607577968547187421060692316822335670480692595044281146463605915902235716773423815421485207937774444819808040513858166799001097734569346705749476918127389245419075824891041742377790882912042598756216171002010599668768341097807981343683093058153017302602146038607516549020102600218394581082169319936682138790373038393765450563369291162199338058330353337597666054238618440534721632652561949650086759802363874886062938467428468108823859159595215227944516366264652659749262776367929246757817161403685630104022521280109278823381509718809754023720893915874582457201211861784516116104694663041732974863461225023364597270668932412752524999784968813835896358810382330693031052042673019128023484483470212472666133775986649617918478994935052525289952877977829911028942123698188103703978163167880788618622593095366819031893507616721760698457361961634926360381141030069653057940439088530100283183562291098418955020765098095657418103187773945994523336951891502502938900351654070035231668085840009176722199857846014287835169669589558828105246253384879185068708757930034394113839128487165717449863486170341054293972124740810283510377146095943485962793757558951633290376151650860287637879626358523438162217960481812493500356353059212561739762341137697982087147120883734851208565690189620640996395243878663425799175753555394067596135903563729939213413279546207854667918980927800560458566585644207808937657706826359826741531469837598848140910631948682995753001237651519521201960072866336380542156942517669346233593155762781130778679957009774407641278830535132132271798687694299227716497185136354208177490766984372898440915595260877368389004896465169601837603439822147811784253930575267263191985176101768494623446700514369408482323988978590612666265631502330988986092066921634393766793308160058943287997884919022995948052677449453215551939688264210860313958569210022146583939865373631305418073804681676251499606300619435119606393633737989335082438409145822174886967423764533907950628324186823458931937942720997722501329321646113790707391370357115671621845075493183454685150892361686049599095235416376494466358131664472681604868372109759135924301279883859021068091100090490792127948347715846009322984330424630800906240945476993036929282607665024468171415106228069370433495897462735057574914932362086165896172324312975020389078798868152452530969260516761725902568349710726068783020960121091881461856088705986826182051206075891979224871747071678907248796845186346574723377075692729586389247625133798090856067727185623520073915126098565731781682598123566618631903863515846747915989957383621096857769930518845800690883591218408959726603862459857192153451555828139556536205259435296079239422137765422217559850950005298925594640320851287480869290449577562869533173163158833592727004029249221791431248827778640324194532931876046041448986869940470890460667281329935091799483735487261492688736381644761223428594558292637674145919892462217773191580393338901845555393834303687754124479720794705638082053300362150007033941076294698557880350954340389297276089678622930583071250103006191057641272359842493700430073928648617057687027122051520107995228800872401335932776645450840896132588405429489097380926863104093222038012621003987114775188508540541327000729822045414385508316605645278714864077875013590762119016925879952671452210315093477742075683903753188651139566022614160034158478052138336416566803333122997765682152924777094876114987682626049136283403317719964635988589805698473586670020895803273353870316236510026109271764745115733477821322535501901697895451763088570510981516737361124478268080111047400108866851052946621281622214920425363104048328939489545730276358291129916413704188251459876069668837200580660553940232665254357372903926225914144988676256643003475112755207967168638908505921159420849800271342901035851173635142426863542358353490165135095451123734182132550906412373209489421370836952232993831330414573021688487657327911069813740769464447525637834591420394217366348665172007532958620307117554493099051288966543824062456221260675556317333982499467555775624627996488120795144101284341339018079253801967926267988546287524637034017600131312612411685075214343976196303000283241515538809225391289167474724153948062603861453004724474029061397204895689576972595818966325562865129081330476066052896615039418376548447789433537093453941483296491441370876481979812598560633735127675839078125110121551672946887723958762780597589736749355329578612270243998746162712259205564887074604843523198434012412052138903565244000214411668292440286200966669138296235642675449858412979773667413579664860830536691784028412334472365460878811222635546347424092908025093125871812618332169427785403146599856773469413454088647605954601819344742232917794912715594455122005098429378836898578676655651526269531912895473821341859306974727317229763623348248172450508667458254736150673374671540293098483001897317936286376552204986377193597545849641208597077521820523851494274007097948824456392344653592317160069421153569899156314390653710843743702119224554974241512116628884147846494853549013575599126907530690841611419162428814529475287164288786911265677102129242953292064441117124175015844555004151106892691835233613920297387361637907965267229931672991075673717443023790391838112069743149483280029031708149414669096815177519245256650183545730087059113923502468122600448523604426217703148363628378740222124838127075466804157719688476945901209959270463956819139502673410103271669898763083736387032066970352906011166540403883194399540976932434708497676191196217207551456542679015935753657352486807350589301447693023166976788491820707143197713953136852257544332727534971266264673179385812468929522412070976785446723879801296305216507569266986663298844124851790858706056478652732282283635018267146644370909184752465267504176596216112945188227721673917047071809799933092124287651091625389848427493077014582186326403917954069013447109276479274354200463960872611613438250923371009774561387824306766463260936813639919443154952829275891413796026223097118956466351163187192730697022222556363559555020500433288098470920019261963383217226267241784099923768315364309280338853301966065527960283713446100074329854883651635181745130428567822138053398327867702946333809610229066238077385984305197634848759406194601200837935315703366033381596616438028834174855333539952188673466010609410868385786805129343912257771438275116125258400242205042493300397848228871300826634550091835577250058407196162822280410101341621711394613889201064572553926264849283750805996094921455971092392688995353715059687938711616930264119555934245233423867603466113952572918404744529433420544562513431750710463128360034652310617940326227883080384983372013513235047750629983788137839915459417688702492874682815163179506907765196036509009660996028958391480996009691530419005499213207574449800721394154282430819819831586241070111813156265060222886320939803700983328321363916048905156402670400082402671576175077588531570970260977194247321384154486824324841808513427323336159378577962394643552883630483735773108417390051814257041492504480894536918401443238102705086396565752734738377708413670549217211658341904471903492025156680436455524519323942053895067678839481192450770293676069150636937931381855758447888824235839652931256672687302054267543336973847388950345184034138892129403627238267645661811197686649217551841231382188343807853628970895796443365296936982806832905904668295626769631551116641793411268818397575552989137596915023950037744331139554152091623202845040166310401082995685045979775578576980934972524024766569071835498462487302382889860634433607295221895873154077085019096319996942791371504563524291733599466518014380927886831778983759670408478222079554059994666419084583700900180748993209863661680756174572261273363335947453430777132109061254972626170731449980997099786622109119886825399405341979728897291186054665683852995333870044651635690033105981749615493233540345316138539810887183187810821158403779980359660249497239165150331827811430854928259392154637004071371327396624560560605867352607883425972445273980437480709069439383673761534330598530002995014061891889177540365419677456569182652418921734161020989159963238173334560956063945059209169809119023740393045886933295249791014813481461882242135948546738587882194403029025223957471922864818051738395395324994882735905556114202401361530675265255355111591514902885630818536070553459837789140588252449286302230936589835986730405547674759017568903359122284328937124219923261040859505594969258506756056517843749370118839277318022205962417395128256909102194646150156850037217520093445188469467085924376976903467629564173251883725928757753279095647929590111373447999831318557591012670777576383551468045778750619139400601495131057788149296690353312377279762287968935404472806148420152127276287719905862461051343116023374688922342320565024325001045289130920998657082972040019495190339619314477438891050357960995196125605320171983279054361809833303333582972442799803353299475830196606355658627032277530226226157754759659181534072962542846194589621192481490639515042470451059021571724817358246842453641623823590854728226835235122101673067070262123004724040168793227296262957108625515108679077163949665108840931429674056128976541879455096519962225952906909721388828256978055938997572254218607565851906028946781794526753875735747009567059910791772032457577844062386120084723837413938603465881471726995506010791414129563798529812440598541624549256509009286767002506588173809622857755066937094513049649168028973909631441367994480785482916340857051024564465472090958502552882992354641889693995290554692244982476321171108545235482356278096581511327793441742141498402142738613879699819707453253504024840159664062481523200685300595764375828388361339764377952993412612965610525111741818226491501411516977805886303949689155716106421938942647801398822558996321580943651349004207631078163468323743807976832105676199020391206992506860429250312656468613433676755990788114450315716488031851348057279407778218903184984504936310378227518135740823525621451005596913913534567986131441405316729007125642404342233210711742159528553021215182013579274921909188469206778805831775105801461007435833612725477652149371372599108684757836397888389712695703909304578801579442814757316629465301870041040597679391074074117127328159039189383322882373003025079031751523041412458621085496816759768120435020776924732475205359684051198122464060598638490235598103648334888597987209459622326330498158591353619617108598434094367250804291871389794588229092656529310017753645962664769128797661087722873677929580089804534871830250712715596086376550221091171239110459291811146322715731741015513564417745941434891585491187216702001736479914026806586562330115430328545068954877360927936898331824821568558848285557277723834429921069194925144204671079267507229798828303692286598072964314011417262031087730737328902902980496635222976269816029683900257744340822102881172903887245813078579999501677768274366648775433037251561775126060500866721740884327821360002726256089849657028711330693017454505881924876860458975817380125715038884097378193707269860335864187548770052123777841622412517415415427817220001161009417809177931683566469396736476574667361473625396467620198883495893398737507161728829399494794730119698131613666965263645854720490228616163504476665811253153030729940655375900403602764411056280411855646590135443857428488410887290907231778162106005366549947398490042787812194107109655440978975329416891039651425347757154974864012786006962276897788250088636795920437050333699411465964121134905415742818227792437684378426422769569089874771186340987237104574632984585646629641604275161231688071899603696200049751295521052969006582430184957559179474596564945618621656247417410531343842036093494852718892453573304129624952563143105933710530626792615103192345193428998271851882127170644266521017257314771077170445804172286845203771364939693663397724853136159799867692473689016727018677472452639089714828732435102526705070970235600772945932233538110965476084938619051317097258861384981384285789455025388630271443111357926305515223769821649501600378616474824027405069623021568045760295776433864522824920458274655872038965404078324745305472731213827145867156090971222537047326953349026155432586869691508701167463064552843962461011384157112908731993807833735250025864902841377894846931073249417870392498669510403403534416722662178357684945125701019419764856153027074962852352238311189121993652452263776994036693221653887077656784611639547459833332101230075604454535955716433177400730383568201266703949160918924113540068197579400870341044719285165652016648168534166396187701237397247630679472536848134520272929260230781465499523876201029656667093278755037718893440383868081978283785916675291098637605873558362687542140942562637847588772287028046962411985768994375188875401917651776763632140576750326527604011268833016721105702237449191183277340210250315865514857584276495988248902677875440720527477467614583352709179468026899988525339828316567223212139312954260468802788253127535463299760289502154017486313090694080487828845863372653536781706628590231403847895572049499728871359825469614093516424367735191055785065751354010874030563263504180200368337028979277595595650984854133055439219826075477586475663162771928867034037484275897589786198359649937478380099475366474669668020925921104258578962410407492184063202477273409071722121743470100092679685733053018953642087413738251529694695921156134825687783088587442488589644058457293153215205310906763062214603259549264321778550601667180712196275347499587313281956619325983805522350331261945568036501677752559037214907173974112935403563833764285114750301940035031029628114109573776546808999072083250749199029394094934182637726681189293828393729996762001368322671806494466411652596574797330712151467812189139373514082481064355543839961747267435940882607747576431985630548831828952392187985726119876214673810107545834792912299964469946367467097814596861172232622370441464534765544280268355819805575312404897525246029028123166502963208643099674350333719498614609082348058181663618674800874930525000719906563062458766459423351258940305836558046728911236905080726607975299102439398576006159339114482645685438829634230925893329020661159915108656252608537076760383582482115653036155961398481372223212778509098452676870691265564733360531939742458331536108941815299194665213484712305854744709842474610464065606429053346056948891963119165519322355184149406553810067750169869482604621062759637115187642891609303173205290293852153766683347121768167445519306766475825792844461788518482152193335644729921608041107189543236153261387968430089538889390211692023153670615769755261668117673137661161562527658982655270986134773362485378095816768172366371918156894926611143080457072344618371491843940834266976299457479751981109117666094003083582423414221532986990654402769487449080599062463192823835796524032665008115919298857697405713002889813296623293547004299211911211898157037282512456592379725390236541262780653325204777969933512841779770275942701283448512338201258723493998674449884095883057415652150973884139309456221156903274742282674901370960859678936675846343365513588517186739709494832235566276572223046314339757618731954225170817103083835187650840164257768657851352130562110836985540077974199291721000669858505135213263653582484852561347792193635489124689289900347735882732899002970041315021907074100482955238928621694129174603276248613252280065573414845275010508416376198777114104678603214916884671043510639502802888365812858266877655813360847194722651925294092118897563565201147847024655369731396424432049881302377978405432589336191611670420194060149314885887843825121000781932875618284076906544980988080650135628940068949613109269627313481830147965747207084274619645669812166367787888913779759418843704716459016469642165069668425149963215947891997968221160924143660889160708356399614306379813977285008196960107790656763685363559424015373029161930392046112156691845878512878003792288057964595245958330024684740043738466894707063509690293910885382593680648523904424389030790121598807220529235642366989712795915666802552240077863438779371147202719414131380088370947878665769264356971374940402248395880454065490960696478590186669655197582259151451038630450122816088499532314648644957607875111636949909390268490581870899795248407562438025047747998734227650181370502024707895336199723334736742623617237924231743279902119214391343333878730202570429889363087830234586045418445123713727145455221529528485078631976420474719218134051562940486864107774759805483436922368943190758385970022125910933314477950788140850213953375515004081633661658753054618556399715775732499343692415333327154569321856143503690237997067962619114664961143664769317209926405202201050244587046099996531966078708661712825253104265926825204338380660280030557226994199194663563085745233637667709234483729374948361238892889300486398521427279999126413426144888915907726193159810485660114228460200896625970439497980661458841302252933360717901919849985422832198864333368023954609546439194868335495583357380495094715442012429065984103820523328709942871598977255535279195418164422710119889399259799272129095494857411211315243634646938223674176488301509580687654840254477017900858829832086249847496856446289172289779369847821306125967488673093374503693237340716116960747895063444820458430266867527350346434836220647291056627309881148958959321328294064374385034322369611338931154978665876770772417678604767138077329300672232596921112408945475261828181854789713224215505132769046992289482304337513674452204257036078449855470573362623262346463850164869081410623322666949665353201538088740900033831999241177890594417154700939711529266833500833596808533719679647824976595281939199001595661359320476354607584980708449341463214086181158692614070559003654471733598313840340422199410629153539645485547704677812284290498291215581949959649471225992876635109530186582380489823397408139992772332006645828508557663161787306189775332942766606809431072286077625879660413291579737356710173819561711740243217447970882678436863651319371038940804599114792895765007877979710262268277858410565790816442717989541196578388777965810371049246787406809338973928173197754378130310908589978534083107644617874241222754324386810296955123238355558652592946249042530497575827678670846694545552095916291341487111846574990450713385036366177185420411821037567699193357386038473307551944058689148208439386662015710502179505525643924334458469384774143227083477057205005592019399529713654814076726259766844501015731216810187415298475992435191645143881749695714832249102867806309411214364774293283675529511738555223098308363444734362450867127901439727744592493288918853312853678025743083975078027777338496709470852850070252560111023816243344726973335703749716087794339071836996056275772155597500644385721848255493569438016957521567038248626396553214585907766538592435816013881558267357274888655134766498829736361448214707929546232972980061691580290683988095702215377303628600067628697240902158500380633760179330087257198123905557684599866559344502759324607563391839295908115608094481903441889283872368201010860594838194142951200625042488931592893521905790291160509804943949645572382821478933354365224069190495000392963253425942532745059453189197956943282969966655020775595356336440761483186177612182990700614242884043299229849136061774938831240993331631915123241831909453590544190638687696638820010162653498762062097723689623015640691628900060960073377337738958446964235020524333234388746557978315198771566315652210164340648504161707864068418814652645892720539961264262239036024521061008850137790452126501068264072605626068769210896520445966919111098120178005126977385061406138283068249356699853092748329530418092327992095487394641239851749055586513733085361144928000786897432271679193188052738300044922043652300949627918497948190685669292367613943254640333371099492549251635322429812763731756313389672838348240948814425119196053354061839017107218073210345328096165494856816640564556549973006316275061416559092603091099955517055875132530341325403995042886012008825200955661887095563086613136970951913165939781733136961348216023393751879055644175776398853725929780502816744690209735421156897303005147762957952258608044297178374541491420504015768680449378393037275459316116516135454317922710176500048004527872122673467169358875198704347827643887996238688726910711179085478486263686311947794276867892397306607575629904325312820398864913419416023010107234819684952911695104080841093093420144734231256283894446461444169504729833812933101290768226280992701139171556954435830341227801633457019004269026672429066060664308843922649437442619192111228439605487246138026777181133791496995658988941408088897571187241004459184604319049702898381917961095404118408282489963520024217559573580987102965373653499733917763200572972052793566100885555802396886792299139176179052988935482999192308540239215000670042817006424115360545970208734551640051072768184878297819834261297376436333064040700427431695228099048558396697111466334184822924874011458179372518698010105766578079329206573435363532541089630321754151097300644014368914673450404927036619272816463160882967687877107883940814401489279616522071396690577983437596755028307262553024274967853533046790286004687577889426454891151658159541374118481593960805569475983751799068555096407963257398428176542984999707070119137362083539668529163310228737258220518571485990721535417871437190894225183704665539069630412481769890283591726909400985527836152002155125400355784089614616481438258987219471321417920274355999177897353333176220801568148257464892267741659897385710812098225970350582353206967478978818582088892674217565474636316932154075873738814663648458156912367355087186552858845050176709992498833384179888601064864488641294667610008904024511060623231151483494660769623238219792974364732445734460152380765015215877891701332207748219479259504458037443021963291338297898258704794744983427277259128696487081317575351901303396795242218960494955397027530714913532694527862313235803263774401772349766730976824402449913584641374886622948855082863723888654060879048203168840497944146737790002686903546341682941180822716059392100326568264644389831938111284490638135832957363234932462358418288295905096335767867853581028125016420372727083952335836783511021974099856739441247851079286756370180336961111540652636819861110829312978102967233776139625309565586563879097183645406976292352285506549545582113877860890090181213187908275015683570734329044876179087203263785290926597503249980878475796031195575837812375521787406721703741704336229661086864096704959268231325697036569933564715451019403784195662408381558885173076859879263196386089087311907983046527536605171105648106398188832054960460672583528270443172034012506702851972009182664294625494252070216984092573566520959520938982211867135511545265476490200964672112158169476656843259175799572016238328652901776060789805140591334077573318269424034706451611385130276731884092953417879987510468248042833182395845979547507142487704633048020531296171402779882648160988317901922734118654931673289223569471414153124897229648064482164077623716323302248769928851120566941020481764205171991679306153331586673513567917514781564041373443485624200406985865380426905993899874474970936626518514214589321007019853156613046180733242291970984540693563790092114294857657823781143832023566482089921180199069209138611142955940937008057745786120894987405227243482523836635909730231926258668305943645134485951554234010311089418334579392889490721231007019728510363308968430755916064491921638506758055860739273316522936143802252440684869489070632935153449017093818977958048948145902784156290754982754996492856707439622175701253680322970712238021357260918538021628668344164600423481308990171198766661590368810351779522692068123230785943277989334903767659745330019927695716108797425956007787848748042565219157560732545460450978252177642547722770208131948894997911045222189565133322355363677193406413853954955322714941464031857947656311920269116288510156616236637213004431706368718475972345773448520725603519743411125671151938872232080071138077665491953166073226728736632417723107836477335605996224016335339419847405438420285835625653773092780690415374094171843654329690040881272109417117543167851802260098856632213388532904497198838632544694390091064493204583049546322129770579805309268912526911317182009910216150444039485647868925121656053076111349632977462017617932353175623201500449907381106166220687531058697373012613265190178841594384613906650862028338065768526190445231776420058262968186915485147943024120953425409158417501274418995412399578015145438011726309401525113399830443010879001050832242178689011595949634519461555122952800134326610664560143551338794249236632093342258335859155699516713347707136932107771256328813809047340311479413725600753700930882954181570998650559674127338942025541779001597852147908367297141254199327594356955600279269802527512583147416745732930816313396151879920172563952713921061863649273716754018438122383102869837966315747863252255965339998689594534393385129824648310326088992145054100945494814560079451625178485646681750026328383407218668732358590344243180456917950399540834279111867908520260014715128712878635089113181692894575507274635684012467788032702365262468071715599952396958715688042866863037281433879175663576444294243885062288587599351833824849770786731173395854698235972341556628516828702798977227712405500231653037156268738905532278057432623792203124654789265303048653391155530715965580732122695709678046533354868121492526735734285788530891710744178629949843321639340002357179451727881133946024313069948841577708284276601657852226407169742498756648247403004369163571013286426539070034440074538343492215801427684190926304966953213532032330063503737252347940129974102446820445680215592615283443153182664557437992711410920259119449018056002205692055514785433075323930595844992662940310968347282143221396538093465100920260666722728394186722761137757503004088640197319310891587832301136218712206089974818570951621148026218293841818086649753891075893557174957869557626598382178355141331544698829852402639027722327803093072086003955033952721775882866183772963401457937889537185905699309830577150321786775426995957866246703836808967839652748064055461585924093120802107864470564838715453915744905749727740058508500453166821142789359510682588133920016797077602153580833809088264512098081000356083218709022480943818511967705370641329538224444869896150284147109831184756347869603514291992778839437467572390141744323324935348473589874681422209018797562112725750628735683840846759810531806255097292555999077636205643302643984110673712750991431819726011896666011021582295906746684057996531254483023926721843718180381287531269906367490891562198425145925061043658430499967341387330592793514916883883217430423654741343511934990648352062919809468648542310490504814373320788459832115079185870260948166533116869086445640617040953434247153444002452329872732692653716100688041074404308164196819497102449465718963589188570745371810123156940606895720394286885658605383892029691617827554376210889807815712600337861622638712937698324594817489818100722881836153698555925400085213434366790491649902290066896958215007749585810124669968416245235482199578775356402963659589673338179074216994389274200918624602030083263978455442459436830550898186104794157020652092765989858596747799833106269065945965243139319071391542387723211127807326264673992111463360112366598690785573085922389554094697609883210253191885770404990141505926729865302305567112539801800755372384981670206727792274834206055134225958612905075621513161040441135254334995844013554890440802976250923617361815553699241976749808822748513810166267723844877855017267891700014670636968441302188884903044412263366767527801575899198182647541018888972068007858860238808431650788549747935339045102183168936720036801528485338689535345403451418954400376719129111322338967959959338010588033542297708049457761858423825128836542279014802865877913740489181743268509319109077742449190069273153957156145051022129742641184016547412081565397709869411050798777701731517041388396090576777223766601988043826952566150041098372739863268931542576948039963309692069924770523404354363221345470286459312540776820961328724052960796962845846651170280144583731948854190381041018806078009391494713551721151876213461879833761044196883153580208745925772341214265748799849027746962918028352125437278368446048241931591064326430555195119831771824036899127152456003992111490285812059721850479668160234111869355881492188797436643911564284170734381541999398932876486647993224706742905145400590439863879800097006340090956819432270947703081011846533382791660079582517347048911488960773745767715131091536367695357394046568651494392928996682200526619841144932987018888743842192508613264065493322330534439623371833742697802461364867774726843597180608554010830590768003367100759117246106279075791170460226778585852420738969268584939199784562305684972875884889261958499583742681372682370275905189141865078354361567498555399241659249697772001659026307705160193315685760924173550755433530967122896089873772348907431005549587816597864954654222811298622709741354648253884738969887602930744554080901581824129669114777722667057761595844441483763834261487253918745318730442445138461885857377302474958198520290764275745412759695752351949552071223992158791006511999520576392440598878552311015507676284795632506971869742645177470409327052011594952194918205379190170291074266990268089634457314486358719343046061975552925267780696523431536069317424237970122962210989185305289643520432839662554268030152433679478782485506823646854602681736677043816759333854520188261434609099151351487898756419131606650718097818349171014595056529473693866625998071292328702245761469664940963532322197378969719940607838564099707804439971133086219473086382626742427881762161470153117714946735769213134549330594235265693073750641300201378628304471058796288534427594129802147443350164059474559571675234001972329530140466283444536859165748665356423233374650264176910872722612209916844359151136706153467004152844721223060082316630844505316088639631213314738500107595847203326633671931672967628137483674634469711704898946869323963622715408833058132150771464263877454992620130290920738715201496069188815832524503970884877734138628636671346887063909117331784440712742060752307686717428951945774452230420052730318267034036914426512884588837276947205907214811625447082764349256374039635349434002285394317268130092729825569828175501635675171005160164997392069819683890465117577396017157079923058196536728757126520004131975409890165543902071131095972940390768421489524005351901047969727262838998969347099081094129017875231937801560381852239256670169905740037999250483485016859639551123971187219641505590483842512407532237394843556539373824559896492142526509185632270261292460622337986161594741964283586104576601265710625967010883820129368086980920258229662358704658523469414925264800283648573948300511330191938931522223832565591396884000141267375514567458778396735479261377749529670563587560741837555635667978336848866678105555391363081228462233447526302254249873509819722930172263931090135660001349935783168059776311931906323833064518062337563254605175692783030429354427682606563656888566462017383474567536758390918112251647981351991967851314917044598203158198743886651733201109931507002201474702604566403434573543848386219432160464435082521709692557139685178132944638121130467395280708869350795922548864952954751539546262379619382328898978480437819172590007342419682010245909540898477911092621122006991837549451250995138140988286934190271411681146138286704759048246147183610379579237141360888174362883726017915394739161837936717636358883701141739525929870901081482923544508879473425882905160636135463268561147347751855967213209534385502186629240295493487778487820329274363344134701718015752061614182552308452419172703968216637222466309958398235320926776019834856506499788505523800630297979298263971965920529683163921008678462121139418355639561601403513966832826299050156025178821347728553643132348873845534774103882954437351118862815284904316770563593924867163936348194799276709455203729396848146200959122290658042317739061866272808478651134870242809744282094741115049455217104499205100792800524623132695186857412779894155026506267221111501703150964954211956687157242045793019033844938561356562424186381556671394333276563320231728736413584209764747547886551303162765181976244974233367138976508839196253173481857145866139706932891578006909624426072236651484269253376120921383777105118518229220175715443629792062059395911085256498103154090257224491280738372426251636862066392911916021822425434169455301781536962731935249321025107112111172494061812454361906041097354131440020243432823758337919677400808714753486069049647368797272716132131764016150975228450504907098755783304516619866987574861080333015986715553710356082054046060775155432446662420852585288317933550148457151459897961320986825542244041560029578041727523512890994742748641358105058807629485093460921686622179950688109588516143030507068705451537411056715510256784842715753744369567122077993264761548471807942037988781073910796992445797441962657435107283647234435254891588551185902586623793640890854402522610074093497837940978577954582651756986945793833498849711178334141422905758797762487918717740718777673393993797899000903605269082987320230138377823975072432351394730362710315433419317284186136597153397710587173514437813438681924449794189205490307982962839421766205380544530513773325929673259600869598413414013117034522382090954305153021265011402805362608302632099545297852111536714694109401257476728845696345374796352368361243291196541468209890270915765722966488041806396306632661700341991249587150915071096034165355044446823489984608294547463174597543375179501960383145310377677466916868253620718300282711821873253728525227105490124316224881371848123749190880997745380568189547037057206414447771101343998146825289705648733458704973187702469806766117274644407295036646136952558280769138666919553207362792469239606936255043354573996543815779209567192211313476948843506096012598816524861710841589621628365910053719716409613030812915315974368144429426313921404919628926682285616284587486201417554061676872858570520099412725990337835776303978243901038574605598348370741315516592437697483567868258858673000521354320488465255274229472662493704480348247737513951102510850152117902378466157683324170766425676573900626680098315012912556403537993652856120810945092433201181127734098227756540737581887932966055888076562929618138539017714773770848119949949994809618255108486636356068300183395525616840801267216098518539666415878506813514879905622342493845696124010888956300679979368336919154679647086635240258145549211365863303398815054053732621142245784287628183308960903998487528097144947633708016550749779825513420770273598537874092574277400271165261469172472043385804252748463535905958559751193586739606660269554446511327796019036992924590493113683837368076102480865599067760687806022146478345304221548719684415094732692899450908221019437418790254210936216895098725010274874806898011349966291750259258145039924448711114372418989488763009396688299571366023007627100927456782008339104419176660170571698160580409446746429643199374912188984634626104992500657409132057212110685145514294282475431217940638537227154384321827702045901449556557376449819919322555892665439107434564072171668189155882347966188477382351771067261460859482275647327912396618839540243030883775895280008260733745238356723546744375642193058333413392572152849069411835760416929931017364004402848715277875993949731680237123608146989265662366193762686139766595687299306620028583215229125748161793435303113501030013768911788350726462391731275780722583108416566188938126803146029607780786347120185558159327528337424721003259236513578210611669162091801949662456689495987764307525206904822146197892267769510124498985663152510975616966861905495319003171520985140956329965114953731925496034477953168721465419211735058731454300982548208148040355411723483344806193061057813562520744166900984832824025665736601597677759694301853966683513038741791833719127984549387333144712077071980013583535633998445906330797971698093305228893735640043646421751063073635325400062193799465897528406304205854871433297070242292020042796106702343018326370172232138683054280919173619608650221367859703627947389546202866584216080363761782197498760220550540605802394434317028551666615583621854233380648965002414129907888436915637656304004646816134498737208797996648102686436982511072712842351444083663167183833571896306940176940107814436167218793913860040221610274917479490335244986297183589678481119171479361987675744103661756263703363041917561218892283913869867104874008450032852196024132066415974931903156295107018278609115459679319233240140201279010686402838026730486997730551587449141499711291819909073558993689633844320735299525293615281095755999457171189857642749466090056552509276629975337293611080790414744363203383181812848085632172337885384299579351634541060219782548996747631617267989404258053675074014054583309346435535474230405295298004080358509947416922982295687929842666661040109799889028192872390986098580391339632278012820739093493096986073530357763887064343981533942953658815464081379344047231801383771464908942872880623853729815790263118288453391425685386196948426026639525896415925664173891525637297705146427525733675524367573858632773282082302494386855607559131139190193955515217346295335606397049830939221690147664611807856772767243460985189688477429218917366665315951229836232379644262493057442078970158636608324531090353608911929696434999686373041869059130689349260513162109964894122968222083452280008066330327360977122897325580339755941428028587739868477613829858462028315522901805271449656178419215441436956369641828620170702032896484065176160237215737500253905092819837661848164250526979482293909840772600215676157826997148844790505966759502895261003064119601253043313122553263349803266580078959791183347412683865273820129023474298791646182761425171323811818986791990643241534016991992091501481029484616231805133764765465342484007986599880861236439079200691296215201324919317831320243786992816718559661353494010085959881842747828216060086027497068344160400777511782674981946676586650481544271080719525778226563461989984899559261509792448509369787384092344593892713904570455859471595260612406821669477338315317522245177136797690992663523951194847132343147028716966065500796634273750875311587294050972246463430195663596527756966345666641629599023666118287417764992809400831771189135057828344118451625378064009105268696900097065933296311775949285222656027394324014060382259168967089882069920774576784967085342434088998537495198302776260344239490669805443946831241147141356805477582857642986400994785144602132181724340030893186865323322886760542651820782910175754469418844978632878529102976294706234005754785523989329367839797048603040748745928674368828880793540545553719876609994299934576356397882495630331458357519016557941325351189390448641118581501923364576049729637945218699591407198523296442147999342108480807461938762735559458930516653137687994763704054214332847304807618447349204109556320709833803624252020206360661642265280370711608770822318110196426610864887272792687811151055409847852815496610010835365422854682787841103749091390716141867275994628883048110044253571662651870782213802290607043280089210478232867732328017797458347127102792344559138485254578654306890804118516629756189445654139311598676980870148386323030302501909409042429706183910211919685890460566147266089758151622847636540330620395160300982214617370398079069684934941534656877022517467531493691192576095773959764153902160291673062232012782828715184212851108092591384916217456048353602203101573831659166231947168612380448372147523985828669327667810012144028269274793169944616396840774002862292999362107808315925438167923659001194887952946705731003351014615730682105335760143060219279511608796181869379135339030451031705467318686558799433048884397344745557631211182958578247828569966712168229383600688793559668898897552790125240716724693581878940480888227925216587058326435822020021659855515331818257337206708533213052372891964250012565731011635901636564255642650169738134900979962630268061764729533991835821684150375221052676971374131206353788542101776857016034861844938729572524735426826922523498769034594187783922028253955747241039387707349454208107554188349811354822987783041530965188177650700750231109973524403499399861414440228923033687085110041197838917309059983165525657616522008410139995574655832423054342847471502132240812156422966821244391818661749615799694754658836001689958520647731652465743408424145591750007428453295540677648712405401510327310590982973891285580199891382511331986622330354951160856086309023592112425199550576306977319995132984825980848298111617259995303572609800380195713966356386567829976170350932089519544771484430034345559988047469182114532125151751171450500004258348338208461535615937964993438174436148083532386146255762063582866005709701613860312260914784460906376932050594418237305028862344517980419110114524445840785000994381092258462369911051384927798091117319479643833424615447121422090026361950930935751375252067994325545648304760834598116494580700527863095633483050382267219725803114977581777097145820549566727488878241240296045716220049020672509362937153796009716387853715752626293695742402442936849211750988543336230579469422498811912137198827350020849770945274687699339071899011493498733229948323208846313611580326158993017171546889953208347496382036002772132805042259835075104435941227631024866061393369010621105925952479010108822722477506084096055791095831824374887074125865857098541238854208348195078591372426998707125275979893422065988294168408663552570358948054284878351572507208486125328837911820340219237878984356096132181817815487532736887317138700947986744081019957881378464709871671649124615900426479720495114992542588414664979707322397408527792729924358456374872126123287164620382595837736046066554515698971452823087457466251220655435055271028761678870077033552324653724272614798851217113182728306232397452769129179854504075382785576374542065698775636079747218744351752870318447713097656118235058589654249127462312429956604967375453499041383921369327392835258362425577639780668897101607540362455302358201312629768895788786479326234462328132487220180895125376629816621482820093809450037632622911511079762321258618749698120034131154919984871836008533939801478044907764981136816816333558839771105014105076718506750263684353516450455292933899959948864151857463355069202372720401925904219326436866849890807590109514577769168618255319943874259232137597193310702075768870832755105359503369732600221282360863850693764224893304877876747847231724645374452425888737372215164419334235412181812572091236780377773402943482932597613508715217843322352260080448160381963419439426218946867229652407235908476665438031048723449238805879657645090514131221977171466222766427769051316735456461950828407708754570042902465803922177468064882310512414146291604585512994973750150279682152971417437072837719239150951276881993139682970448078354784699592963741436827509886459510486955268897582934968222921337665111814351877893555406977318132777167446052283195504591762726057013244493447164680182437936378829640189482513083707812654930188347630683144615117643516044849972353494546460420760275737624236048712199211629642753094418232545755686884034495897739960443575829731319118871342674738426989606283888986406757096715715703246512509304007704142555117240968242914856137102832007224472369079364178889235542057515293040064691438479197779975786406654924614400245683224938664085430287816267459740391293719925795990112672725622761057251228123634012343281335313600267429397387535430385751389637070172586787185268051298122509946271180689836481206343833366167732417919492133753287494820752101377837726047462263905486181608867285263083954781709337266113478756499359745009729618839283455462124660165903792114558045196829627704749135294180863460916348445966786589603218889313930970995852856172688697175664677335598981096810148139525300041203996057666261274122838873395871127165495659397232916778661277058228781536498119529640535889547448598340408994789422535771009517329191623779106778939512643544321703832968028498613170629338040106063544942153595372678784951063248105520549854074128931437363587313219349441735588055510598450385577684518625799123782065090701373843081882174190435198809715701230337609964668607277551760168587760226575570908965825911521742934951547950706682102545298009293376730306983886724406341689176540468497999992855246054832089170873937948033633624795040855964206356523121311511703785087366664043074856146902104276060505841229260961494497714125369827192722202208834175622162368092072460190691986051795037243500474923564428091990689690642729726947052421823669456867877250515296066295293304090310733973734702797304421991411287297994041494011578391579573488288208643246489857632068911683938846626611709124328842787486195288161265093903285793187027162053945088436051813927897405041086134519356865871952217180604894508975406031079653186181307864998811965248070226942063640643623141494869343045383538544720748833940560783141400135727124698729491568089826600534970574248386127445708053572795891683131889841334950974265965892378694308971523848600368704479186495903229460175664834907328209349577131794612211187506136217585222544734795316288969251007070619276646279382649146074836244855446924207651812387203321793419034128297513446464187082600750265440918638407235127575953912672445676951312312364903594197496860984743037892840666324767980010746780243555366535188554607299031238122906269090117401238911168288447754038441280781274258297911847410501629936692257690054675570354381473988087231718772034788900550205320331439867906594167948910375530231547712095189652202819313916672236793315891987325992129532973184512560449600368133479109395742469746778171012153672363634984459401340766695378085944727708551022761103252636037845512674863483201853431884132085423049523472563518512834488584873444216680520810731770659433437577442759514748494046773438384605384849840678887189758661853641201200758633477987183821215781780649694336455467646401554643292485994378708910448605824742867192194380684213827568889868606906157011118284207542241541788076443780302492884580150735944977024344719177402206935465639436777960868671983977369756891754076451109897131030538627547440727809201059912664998967437485750798161145662603234176799949033912654872704446011962279449231121482044697413315113085641940517539032930089691560635624546050474416342685378094001011655464921237134756131768033237343884052134373166240169423608982459072413631925111523087937837577165589662915617860663728111964266905654671317730186557318935647861150355383718239998025845156677164603974869319247546337347594306792505471322484338493467136690330173353415827695922566057113064176403591387567728468528807408923763614318577456730405106213755357059708836750421785143723939117413762684268064828804303379531577205228848900868468358127756878305622341601076663906812173970435708963473282949421678248005405489021704078236640281631032214590638761807616795131683590119781959157752612403423999201381645708091298592457206651568569726327484738277339180287544301257835748183958444247307927100082290117661340699492309461533790933041296592858120855814819960683680951591451235488465688794182049118693370404672985454801046027588363825755799186421268948661733987025470275814628583183908959093370679176519908785363062789453583705073549264166433009722395376307719771211141243527208986340100761571629021451533587077139509408432271112633848058075239079983954901446206818293226476226844505765872508433115100638724959488503931850554135939519094634883076615432530310154175014702879792966559138291308175640156526122386857096052448935765206682752466543277605054332697238692900207207344209568737344326698075167778907070652450188347135398597300137667705195025488122501204102503692611572865640085720978381740451382054986912195202048360873863529096373493869475039600035362833776801095783607585925281023710523769534581199471487662476598593352510180203617303340626245264510991078711507453157398962251233769154372389926300189512809588743851382392103982355539084513142594800618697180502216387579954789354995272700892637603366976500284461353221295473892320375430010827601012771557778881024964552823424623361513043421591740088513883536929070495530749736291650573089598760357363905776208661584531391516796954537758198405945101309426776524943325305026683376766278695859862290335290230765417185349201574104440775151395450787095017481240144357203162757844169208661282668137490562653607266691104718710312523903016511412573055222883378455802185801968376958548336609045177017114716382042434801483076083965881343146295572548632575112460645637543026314293677288106236550964282187897727299396735833800023513882727269391944643944469223817546792957785435536723768375994353860638574365582204810143565166425471427430783371880494464710418498742968512632337997628328891960814605485766977330030275681212385950569389667139895923902275987474023318835400006217013667814550211356696757606687954692130704403579203275792298811315565845326189717194968517784683772721945575716856953539728126433535323046037988120327049520458142433898195197007848333146494629189678894556272727319426187649369573455155630950395297785153176664778234570262584825871714849826897639248651506717973134700853472463266971170923974709800703630583390421181446968670735539972943105864651261660405211700299449963083421942932698350231050776677104271244638188567021460807303721986463705821600601978914631732389194659939879000281275380800140793053891742021002490083392456121196541194825344317165288739464497526696171821623383818193273489197345690783966070833635729768332461519636330525087791898070172318689221873500245724769826282255266826484346562488895217355998019529164877931552208857194257237397820503029491035707631188375318993374225964858405335339653933050295775322347427976873125864455671611645267532506234771186918865861990714693559980491194933824849465899418051312560743034731708961533435992760110232975585323804713393005496183237880775751701290952739468943208675698947815553021960823451653494776485208611153100239568879086713268304131415714727052935794311601318920274798077920885705612309439433614587263647619760796764205887535277325449996290731561683423106532625814197008145781936888347740692689771007073936451502515218801569411519068771567761090100345891128003570256061429803340582727969215276197449837692167095602023835617018704375933212694476539223403512057949843795100529926340660547568011414560120910458046293752629960697140139746209850731917210397952778756187538598384950934551183858542304582351105036251348063846732883725393738983751655149241984658212256920276598296320854839164958318713839640811663058592244426497248156189994181623642338965062307877980767775848439730284074507703690997345051245064324045210298464712325251794487401304383756139500574511029172218482551261673234372547441659089825707185618132187726360741075234917719627321229863516732891065883416454717866980969576426917967546259892940016200831040786246029679743347441779410608768316098181349208547796470192033802851719411580790294332956883709616177544906991744790729224889366712875751745764863640469958167183948962494269019079891849107391282658487284302972069757656779925561717063098295428984778979231485545874937863603747953931394765580909823210107233912793860833162917358373837184888230800233115252309490856029946429740753057231293834781887892965365246082826871523794517554613659808894916740136081003597508588187019172220009342060629078510152663472564190112594554994519233729139974337000671721696450281705373232084073582714817071446319148752862683636030667581511134515105633096725403723388186182810553969640633636117340063669269190128023818259289228620325277305958323797458856005887091327505168847106258941088246010156092015266697536986597447386280664284171960130313334127857124622807269066166449438190909319858984065141751198610172408264975447905344804429692766212712994946067133521606056025928723985551527729783087971852996617694245820291449182382769936855154910641319739594802326127093105039047373819114869092311365236112100119104206794631294149741446890623310962646070885280521400249727851020935157117929425295958424475361821610032630770865401037147540811228786998921038685138473290037440153553174986786544218186781228611146520872947296249690042231419641668740769239414690918260126643861530143924270172455150687709322992963237172629431591091353298906491800325879291696670771598093095149047637872037998566185588256444564189503208170468047434190827792637389927238507161605515950631810798992070780786980374092123089176368181374378914847022703126458771574860897925587943565325169139478447170942236227438133187896914867553155249522839013745803823347740657982959048992822163570486120206443017779644060124156492527467120972866949433549656505980272714205700739250351655895321173242945165722121638369333074625040795450926693343957620572855376254251609617865208831903612672034759345920947170407621990196249362882557747027615839086886091698872219518761431066333980517256380483436573430837121650744527684583717964488975690155074894593025946064705630551287529165545044402831449552105852444750176271385684021994796544361710035866352189624767893316623240547514349845222363928852875680367216829723585305693458295317150058002934914609502289871359323619793292987622567256470344189623774682470302741890161758993944279549079077052305958521855476261262365528132340879713269397833910183053137364170275834351195564586024932731581934297276102360011989313054189031833900367581948462650218670662668848551245083680686790025461440900665270601768381792607482560120349277785882177472732362064734657186440963300754222301059198164202326641370138164677909705024174608297311661731874938773346621393382746602254937831347769982926809089128552842276295825418390201414699871294723399978632302566363137944348901559321635642815743082404936468572670803711472477223976686768215584344320958970767299089077250179712858465796469666480704991421216077312752770925754538866072104190256434655753312520825615618812446831327788428017391863654334763535008979725159236266454854198192089638582719909002114222185009205602848722721385104931332652911921469473772607057534151682674236642574182124578950535384547516546327782311523598328794707943629721440720102333187808182613166635427024446434848352513355582194450096701886292513759425618100426411362965108354549758052342941204864156092274213537987644190437554000995613295539270659115402369331302346599077642406956436842427868810358937669633061948807315272178910193377221455266477953894704838370976145721919742948094840551186353786246239080360887947475673474450044175927157354936873845513750916397616260788641959981572123397184423005889362356165713130748819409826627419888079205397286373425562168497101156709578773455217777257846793438732839385380024065503389241575563148596225810391322666171895899090982309965037138782489723280873426057904154256333343580199916242143451224544384827812962942728253185291111092783203676806018630248335950854742008655535929827431779802530059480274078137142283452133683656536474254795593039025515634286365776258984661584567292975704267576352024118417281652016950194526607716999922977387322544513361411911354316581922012405131725260821161883279951685743617303015454715491037617461716756918145467811647876219902455107565030794226861239350557487100634094363164227909722885515988210285836443017179068837691128185915379220884204567390915878957238448910311455574016991674939637180063271983750323584352369643581329367332132017660927772360143674175378189884998403595202566815974752167922438436851565610129445871507586850038968953049333009025396985191830025616016055884626893050409061104210150683075041349457025412788532260242958258107986357130519528269829633622762587208246386905237477792597498748468889232716687658708618174642809265482083718571184985901631422120219869230472910459044023583360661513147571920660248530588648503476977741641758772362419991692238834693153392842887263866910203744480097758142715650412549149089098705533517384891637744855776732399973009542933909346459158214943771669658887541342831347556086195082206572602072928224131345598430222271136186197935798766982071289316667150057578742509589404600797898975293642617104474138468901462034293429240503410312797911117111284363836988828177415287143869449174331995872999492759155140916955900283676287658722568906307197012018602152449122141804560019909052889874149747218539743618143951791727936865517444410422444049853755592991288235463716012373489923381038710393433163775892743300800991485334361083893930771386543718876529973445307087294718732458001899199758607075721182878934618478934612035644782483770486923830935481720182889549392554471224487731807627838163051008453230479801819148279076408520203854238543000793797521955973286117559404772795488879280488148129733035312152117426155470692316306077631963313938338526087243017156920367333257925884542786523817352111586107406488447906659551801270673837664238572572327528957032371455201150946815966037563616607005602359091359882268902173834461459923827548421429039271894993713239558497090200481601809129398616583762139298321757579592526132593239392475339738002955205038203863931989374257607737821993823538256757455418839528795137429350881049551894575489388944162777498081665072176063350631361679743726992286246628238084398595328604945034890481799379234100091825590279507765090355409050497956706693695129617140044773756291476243414431636591122763799079587031406937198897162570991515884395756035184832811520979262125552728445073869413080917305603717112990336157130691929045928516644198202496546773354924626524333798331889843840680435220375990736203779108626052287226152001817020752925453195359868096827389325268788201384041736720893241908755859261379558742712048117067137429452588848284054262417911312357181358640569183209780769174859237409171353212713608550624827006865244239081572548618801778189211110375571457385470480872495497645399686611079664062538157856389211662614619291042844531867224198982494692709286068471028398652504001839490500164939213128292952218365570073827785341930850340866884140410653366384653380465439958711385502692154128250962264662033129585632694698348169535513100921894079618070873955730949018562881138651228631364764521091067893844034482104434053671520619561529675360871351320740834294765778147111665624071220290505849623476672755931548775795475005711047143658790374080654994925065413375355861221851219318360891464833087847819594766656032129729085289908390420124786260987115586001323611383149895832136500494383550650044361804543728739293806531163453346124048950619200588258301424184545787357460349175261871454544939544863763908010927507454176454682110902615056853528665294760600626507121831991463076544127187217773116738993117980014406574490196112128870599008755449175753198216648227914264771041612564687716134740783321392406739307188236143303965528738331428656353213568153716886243458630153958961108544298832441616023475687580750189249894286455496771497800485556754725383900020116375593563482089443238953053910982831538147641257144772709502722556178334243179311575695856494082286306534481157812540553119522872586541398033346399335848558612191795058917272235998491310500872915292506473744025907396960919111824960663335806332281147929393508410611926568306517318733916490067648198680523445088082853701498006917430402267715659357649395879361414813535620396550898070116197072144492936088285416969091175550106276250856085576511807280622603111953656147823103976485591717346748372597067206859181823943366810215796816770754655408119135482287645055838924884744750131920253037093050724081686451922316197129425449956765894392674274366455218243902074537632234848507448259546799016564102990030492925312721111351912919968854717750839054210223858222195351638084956246231540149348386855878041274838625515759075314743767829395626123617489785820026644608569710982842686412648054772341640253757704691358627480889750327850785670316363982286833337328989494667530278607465731725823946221843195767316611515631522216618240378158158361973175837468380503266169934059821499378204956482784328703323002216618621729525845586188848159184345834467006280959727741722973960408410097886325399102367764194242012846633310279390148162895855358938102924633414868966221554431344039066832679134221743350613587850667499428388695927775693344610443688293367145787268781148884872150845087427793311038052081152055582929300294239027265190785562253378924869591365109768187489153520406545644327698581461627720245634047517855253922105744903454604052063497186524630053490042402050340194046572172626607328448761765267936242745886548050868379238016630622819033088590511983858467298171684076362061185638753938193884935270017674224827314590923437642613250737119462233323241062230771887737671407419350375578202320858081061225732538541082390769614959981804410046057866950890819223371149104588539765923367555169650160101271304105716889115099350524838810586567968115369489858979296178774935853134816220127994219304161082495566029414076951520190191758298863211428051459885729766983352912937604088253552130400773286941401788928623759999908178765879593429969643528718186185784059901574216246563685879878293536082232266911929114209110637815010405406582752294598510719723557732555185866113177202991147236889227147812024778917062569566792362972443450468362728475389110879407280610298979291050713317823615195899525341647294924607828052872313636628468499497679049296027231500583062005884467674452283614213999576349153594763744187826349503246691216198945275496729682988346991468617522277536845769955502957140909813167987785566958257688104116854373993008439421036873070061109487546874656794379276798244607809288180350358844138529665246841808119652965022420670092053309910612242365564107824611236258416759909768871339549572603785927998500817533358258868974809373392931672945892535984140140479867581225004129064649833589701595548268313166155146357762517047372003479419421013371672734016910073405747172952106418283056835213437977591269242788466511563326519175771491603457507351826719658639511446552423511728634034846533790648135608619871721922467000412270196028587213019138003852314369354407709620582257983132819397000833298741777699220804320199737686375079704183964473618484668884483902323298473458781044363659782083633532786938379722730468285621012509550171975522615924214108924367417850981183416778108223630263772941581950850555009756980417486410878650986868712179489349216772993249216053378615217155702896364052199339494740638296412179996844787378371029017537027611417944346402621885613269812905441604248815502936739105417148944588659932531348547141502988375707654193537358281295948688053806740410977549804305601170922108826527788408759823595116197278322347160247742237522411113734001508579280864868600096592694046320391881774050227844614976419140191203273446423516567106411972954534580876107023032175955504343099477502270197479807259530000291329462881263145626336296252034201199104644495819277684207805283252530719709111092023778775804680060647949733507870033167369057689041854616776196413578909536881288778270190314078036464907773779270977178607270987945943269989547181077835925068168823731680669428124092826645147601431703032360682445204683844335892161207031983193793489281836130218364349699537772830031385641292641618164899542920444305165513492532175469724757577230523805707195428514144726538257191273993582593798636505011929785529531938076750547813876231343630627823416996232471487225144913233369637094007338205880142175628670366888413754650088680612214324011086359362881170225155561945022959025656499128040042715706047163315432026605302136476492802543858078791714750587052617724840142089422917251204475675939884872240635129628834289889167855087042963410981631627533778712373202415402199984954848279834426975021397221564277418212500037642879909107537586143320375229129599421741994227071497111725461962190984427738935905247123374371694666181263989993666778601937742280574373832950491570243522963723892419278180090906111299869996416802409809422466029785561644036562160431169204149605766944122015856319190693495983063425180884423185549370227801944267219376670587670147188852783883399761970941073405023360333952631459459198880193243676202625117200554126997837713268806428536765379510482143212738352824212151729965376541578012963545880404394325198629378535887827824676816374405821881925088597756137556456248948419847901750789143585356316168044482475669356697460416783775077695821961640685194346183877248466518582882281734637518543670579782711697102864589900421069584945406813039402927844007100082365767600254028000328412565356325431575652624895327999449497620986363018724257859187318003908195984102186651262837501052575925415205026234915458931155896286705426753461711325618714223899926607818607276111567917072548292431572594639080908966971394876935295088415566563803134021115929463569862286504496362080162216260421551873701955354172047838758744163101758434563780897967939853682009022397066595227528379352901913111179510344267585044260994935170025612911050707658409910384380016049815527818714271512309479682595023987539301018506053155869862226620227752464262208488291487528209035765310369909452661726359422614313395418197211680147207935083842494539654692487700582686471440896472677448937238965703281292126682799913638210131073625614579708618176784459834847320563711154864229900518745165311188608902027035805743121899281378725964984306901111538738897299919497977201772507912228629098276046854193368887585586224841974743160074738464535530769982222134876549971410131217581430221235978472259697468567309786620611948904073540524837285719692975540211156571876574192880436486822512411131728012512687695877330498645759688149384092166742897165108888128236474185833549031971744759228876063895891507609354547321179306412256786690013771365301155827777393766930630580678158285767093114083421477543522145964068076539134035547144672546225508029991320148864446922331474504634648100846253740118724405152996760142475289796851807969213265420643719485720591914767767649432144927412071382620523233690100961027534270182037844101610902180942861398217903054800652489602490291616653168569139343842420721328091187326503064252115350644458994785696233527602211555356207255305561338425938781032970793589853155652946750687586749722729916683039477084610298462413097938092398426183491439171746778087889849356695607713642584257302037884436204003840622097603257617981142865364263408295102436573079261366605917957404698209666842962442774103350662219881579900302547525050720900505241798341505773889630269122460276730173595723688826559964790972271751073544513632601583678207227160382977434828460521773740750808851601967815732236045915717772798190034636046682257901664390703789069918448773139337533912466091227314695057607076720293573880164425376762940439363620091169743130585973874012454700962849329482938766718157874547455450162190928486265271923639887899391245706563467359915840756634999782136141302269725586615481013341658768141512701885809449630761798172694297501734438871760494384221601595119714771894025492213005136878590304729056209606849556580071074025944257471538888612032863216475096644917233686246271378816139228339087424930818022579636297642005051949440901393668808408352423700655699323281332030311066374033257809129877309862300391755229376561083561291415986150788211240991892574113461304108646640568720253111547656662635552145112986329868646144762633487079742608041514817757562882362646089216017813639035856873826673718989902651086464481605846393024850054137618450546342887566110078230218200923435484919000203803012756021479627299358159202335296588917310311540257982563372734344894866034751751327999275529054793699524386539005837857411425664275591095287739506283785329891949234053747228048897183193546540540131483069721496189933190658395048791006249100174440024495549541464393438221003726932949900178047213836962130834173537091735285343230945365135710537968411529288124696694163398020403169422039933855945721265321060107686427052140624449719128503030671995518059871879338498808758589707475016899765840018415358801666874659522441505329174465239029513728945917933925065963028206154272588714135398947613538839417707081603109170570943706866345417942835127264088227892693780077768991849758170789915673427610660490660973192858815601399519703619851312611665674315147455620577476810310502246130372569881252308754014060735374620281050243867675935503036323604435859859773441697009423873016731886286276917366235747126875404661103731433838105115527004647760883221980474246884650332470426524826531887998098143272462245160746908633705742362277872134422391449699439487616872997506647406704255814097618439458286914312410891174954060851737997246497668815047741966606096245669691948853832937994758321150028953469789103333968351139802644337883931074844657912728597653985965042210983942964467957961715844346522805128458418264725774800534027699777813821690755475823441001936999995358440399020167985048872803454324323522169470708300631893275528903733124640740130155462502643987866233678057797501521796858163790385898231672122822789743867792847224099212821721412142854152931349420760996671737186017712481439901606809324830370299547280475060322814469436498518744829783931371264268873796777448720579517133618984485285316317359550499239815156772299406705787641426684594896486034597923525795995551415479169413520978354902008302154976933945571879827834991863201101556741972015570442578531442782873686818037509913803966769951870749980183683823620909410050349638857479659216853121914052098943456670943324051897639918623680889805095002008718417384612253626442203894550142387413806816074141863176891625551295432900348358746322626364454113807896724954280040256779915691246046552122305795512417030549680629071636678935676872842522525656229003780844180658339071043328545061324384598366454344925344857025652984803108741378722258194441154197235191936005823799873284236038651638975650309740795057168364408967097987906469732367902616567767102877157396028507781648634521020332819609637679328360142929240579006618192774610346662943180000560708727310160264693348728208016682119166756783331411886861761129907535046840427415162688334219018985102679860672699066955045386284368792780512894539261298009714037057832288282077960949886526036921009128877778189579503603252420423981154479204947965994218312844948907720486388079040830168293765153979520844041810943019456904932981535222414213899257403000176424861487424894157695994463884677470495234612283872597425738473672540548889392981688794575380310855877964298274341526989234575741892283398203816908840478129898883133374515498778023863136633347795136415021715951620666275178921080433433651858804256297381876822107586840554670744549634470132209147574719670416529365964668645452097273491524988112142531082271115533608363502137932489862446500536650063270250603079473102634644582208187459740635267345319881490853298496047874694026599307362113943792431658154366768786332810159654124708621027696623849096258720906327302415142765244678637104830575051969740486441977164117676024407486958341465462641618606914421381045054107101825937134381845326830607457592149856082159862272608105192670565417560756286195404787756647284293689071957252249641847382648938227436182294573582498633840932935250013213185424488374898683215322902221467618601569718688306217058755778462036849871191699680205267870995624199241195126308830207680560802135821719845863717569858085456405271218897579803792278334551475340544843699739221348956343075007626417832777177353004426744082475029490363718376135168855256271923513006507167510248894819194738013288045239433903355483786165043230022319301363648742116286527999445103935221649071164931920462392459062047136825610557519369530084682080165821469752391418824976087192865723943483764326590773833735561762079788091736948473536132484998300216228308585901549872308920631691917075938276179676912597477848148074530892689470912162916386103067358504526507982780357089079759534893108147436971064610204871978324103157525081806775699487198861438564385436895382402420322786483522732512087099643267902316120627601928543209964593066834703565858845476254020054690613816409257836166602562308402785658153916661688958947540282612366790131660521349748834493539243282738642092059784620360327046200858824815850881470102412833021558622162789146027045408397046278292492142112192134488324911047158227593237978766094440821306161049021201196039076845537699254464716252268830423084142007498244337159836209088314337072290988985987762079494793482482093375461633233289223707987786473742494028422280733310512056181667912063134023168808256380174312198815985056060021357120360723306955672975899531000362203044738320359017913211632427024387457512794535793774080527896192753741095142637080602705182472654140210963092358649513389974963479687866291712539342640903227439278928103019424267481215346438607406102577679314339120208335144230523961728100842246810281152963935030936659251261808727600902464212157959956480172469997026255987452030235724728515958542020532174744340144564590705654072694913937348735741509400637981632158916533213959795865930457281122013791402838075476832946741528651114153875097370697006182476512315390235880218759275101798372254772138447018389167687082441758321879539729233771490536846874991290280735150339693959768500773065875008158667738035637471862274660187485568628550770708565500800246928813290930870256958326976134986156882614703637563878154314024440439269765609609343859588073971307384289821352525687705635128779259521239233048781295851512964647591450115582594697232911614947781710546617475422208043920306866954647063276586078856025216836768002779259020026721006849420890972785727279937677756970610847154007890759952648100337668427543589224681088910228691689574362254744303291944716873021979689163409350914319463057556613369473042969475449209298328619564790377271073885836640186335778120603043695748990842485370555725277432138784367921070719928228368612481542790734706406047257540672623465631445800560828615118331602857561232859067446052218692574085907139854602085909779407675754804463184757242301952602102606320886868598063545255257629419530841553956999034998701273311302867325287146096587714416501408744767673068529670697064979316186352089346647397739190594633113930152516438244710702020110938872576734587047458333736375463927485777164599050157731726652769961353771336601411928651840821540038036757684729023531218055841570624980091905025185958860428678550315765836586333451885437895826740397762292122476076050140468743802941645909671632237724171352232331531745739961884534877643972426046768581945412905106610486260504966408899801516721739699750691390624839123948658160645994023535266662924799687999453749106514449334084198650182956156475111812894423050289356129302711952300107134324781254942629856075448771195289922412194656539538390414305854172139677907675516535198811099002861566371058845646371606830250737649957161865775192431348842495928008489299215888940800080258955613112052432849229063035268626300772300412152653229386767966835408189844314244204486964251423218063648164971001497348913508242496780682555168021634882423421838419392842623390873568057231897030407586792585130868726533999100012203430091339943526455918630945454596380004871117715101259587620666437412383211250449771406293585419741168230471891427924483986342818952727676305286261432647271505141431360272753954593166197060371541359332424904426411849195947813487203940041466431104805191805659002425159860366312386977009449183889873008951827172454266060402948345086739118635015678657680215747623440122573625045138749383852623074109530463292620810756515326879728949789872393724810213583955904322351790150110773805978801462104374665552594871708123711538100058445111690315806656181923454466901111298246238736292414633608219329756972059294712558569070834450074222910051830846802525554969477877673312789768503041372117516584252215665097853341774876333275612421505022578481032946282035196209054936796472386275144157341593070061634603199026873210654322674814320077202797975438580185340511092745827733447515382966813715126844229875663857652392475066717579180841162923165588070706192532165626116762377701040462779277438093202778680205825204002418918033670977229731069484454651574152419045241257549032551709658875460388722761592858705671327106591868320377180326720610883659376344997157364921176674798368935276331647858962652054706726780635331015984230165577308416438539984230233004581658944290875725177403297255962449584654120302098576735214697408004010530255840095751931315178018483042968070369047979368002860267729223945858994714219889773619884162695201588989766003456667758850008867547562133750556574516086081901646715812224525605937431650804158740130202936444668006513470176190396137076169144174098598358178495768907265966695992300155577218130575838364869870419237601175639659331227257783625862647412511222747851456702357333612204986454450644669690603583500632806259268797756439476498261384086982493149023964658338206746326170600260622492439474107639063724765656427880320557798650687798664436467933620389386824286947534466595027000181448017883733817526546257128963979275624098766127747869960421239563064505109522091455517687709433587999049920851857691101704642234017860868605172214328966851000906209740465530062400046935693751269046625209832961428175068785881360045467640641960546372147542881136335680083944411213729967043327573892678883752653652274425829676144500276490951460172046553686974152103894893405686135700267186368979611971967024770896765934963233668982493645448323899789361935652449767610990679923666216370152552087242730029551509801837133328320577964260802022593267575654686347456148143160657349663700226004638948209034161249121954481676849262108785994213473544942759875101098035115839504377724180170123023140798136045085649180222462614578295273433356932296491374471761244568114783266744836051807866326530822008329236376728671453404358177747771822838291429838723991960801221624019725128174135451957883653455806830672253585957589619001059917470400333067642281155661776522368600568688211366409199258295994039557260480094476786233584499417940454500248488781037566788026229321425448755291341403507535639231108864366839257448074173137157535827867516697456809209468909561602613144764182050088091897170512381810700521450288659242272846423958769912153628849724490124426060952592273533370345466362099515743429199807373680961517797059217878581704724869020010097123951236063970925252591261049172584831269206796517243766978283878107743901059447725137409016585647276814306420573421923092969726657033913729490212698031099995804160432215491550614499498259350242705791138940661206297020635014520782343789733761333442893179522286921885219823977683376126646953652382389561600299823466426375349210234613822452299321510097992848090803560829769648659180652994254131984945406415253553056669302280194093353937220312218709464027064571662430716850429487289598560688303164207766750492474581529929491888449234809899882170834980398377095557161080465205147655683688206056815537892641432944854217397632230862644911263329649798534136749356500577798616406712297964398720976228732238269253792382442037936874428255797835693128538460429728432578685350088590094752139375029891971990453334089382438440506803472107089833268812350287443266851906788961029335926867892730174074583544663067376131588556347603230186410648513738892411240677187540903546178720976372597886253784121332549745437361697974234580118609612515546332789572909528903081856545485960911317204797965769741737477575929660328054345808562253045508018256361979170129001764269879786738369910023014178113530352054005356989978045428940488692691557649527360806175269911202451199236366602014482407802766911083950301495407724805790640114160625354855902709374589516885034412403165294928081950446314643002956626574631199284436886820664402861059899726475838201982761858564845077271613754981610157382858061494617012168049133997351400154013847950234374788881793469364379866766934964980990358572933425390814400824119751822105913390440420273353175991287236938414049630465890700739491386051869700408040353611745091594625202410820871954471413384813193641919550356343814303819193354536215481202962381603833389513742542592501187565167406785824249818847951800510697522603542459919549980866855868150657990586708320865128853310604116168594894015103842908135503068727065527159034087865989278936357827926941039016441257308270136682778020832824577479064724251311673057359619920214095098806572987427572965918084805157015350133217047454435698819806872037502330560262077501649867015191124996320399868324070032648662491403404709947637220839300133874972552596875398197562418176595477952273536854312282633599807608449292120857293532390532942729174155747047704797880394160442534660243454931807873489206031106214826219759680498123043984416133715280440794239802144207063338696996842594630189659485821565368845546963156381222739432925433532629309469270536470406933847549841968811107574918951579961414621199201557048217643185860896551615608059901814277134315553641972685461536736158641079109450725055749812477277672330540460412234055790738211090694181820539234013318436308583244991222702497589891983103411106428929754854836035788336365603113759113529600447502215100521987210882572694373317565920994278116609437495843043747345620824285345551599239484220288996641647382518621382762167391902913458100526520939063937389657053671541460537234918449795471993928464616157916124833352456968570744122055122657475968891381568121385841462146365422264819175498394225661341188146016295507279489754518631769413146668131952951394918258432850162568143923115739972055044994828630167812754096157004427664197563683478210655525660464544182662480493941096247649823562757945860617536002017328531108087225305942443274178465288617273209588660127948385359245415056585724968660161279905676242613319907512115390547440632096332675191677455900003858285121417228304663581986149024006096518235467148118149767143571130370211259239512786429135949553785164223737435588410775225029345664926361891912621494910793758091335795337914914510031566495682204237372257128749382743241159558401799084453562951923972156686768456568874734151283184444820773639966517481542564643064257444058624750000938548920460566384359023471137599574361906337245271109116101507632574057820888045234723485776432638046950118461472273118937466775122798480914890647701310611910778932209000534477644118163967044215091070593326328042895564917663934864803195896253892604364107706231938546941848466582390938775052855695417358096158407536652498913137909782221372378636918162889644741203056854584152883840325577935204888980039913807890255641137855002300637436534509840111781962335977417757918597553263071948562308256411909041536041267093407434503984611368335036887572472004569802080482514013263970766405842007072584707499210982845130544274657427343574945685146784472411771224604437160758984904182009604858775864206327735484197276608694680017637352505502351676147550319400107529903863604583481529944473644261670141974003641380271697166430356374542346283308175949971691958425144254130986849213036096882143847792217154634461770535493790730123388610064897322081038454082125364655091074277184967135237876254340656244614674918123252807720129966909486182511766169410375712867860054542616433964980043356756560276663803843921135476793983775766619383297990479097658649992320987356431920878877400324693202849437113553415533992307217621649198358995640869989549229853687268564861265672619456674511583763556100156876264778443531459742337062920761524630599423979884616227636389167557736145681151210715877701382136920127505235361584243667329119112860380318652028537676704608688442869174471907083276874514803378878960864423404432048742661071716727001985560416000178960864890999300770503837851246672260767717767484509105663246370222270534613807193290601843417520351295920241091331585308840784759689339877590843816067977190962948890975894023639096507147747500711716236999487689062868998562466319787462099667806402084492825987304560755758004048050619711658364197536531284960274716956692295188172951996902011180162643600187215407869007118646921093067536471497363144454133693856043004301006666129806931297713633477091937988380295596766125377545706701940320267777764612055783574668416664351211328174877204272931476506660687181791084379738999324553110945821333397419722047776535718058545131411689642290910295492692695611856653217140413978018013323718341103821391324756398503927080948556541387620860432530268164772233325756097309300886705821691934131399812629387925529466149684156492616662438385935484203358746344905701420772745140989469266908966714855598269749731197618697810854155057802072074754078309288333401056662851167440632194795550415957816127971875628968453018251074630010037153732982312415541605338397056457183813302191592660209291291792003592107873459088771371935477067875275392340400758085789236911401077957160031226686637488760915970685657796270919200491439699326716857383636354604762393030905214481254900187994305154127442781805827937147496362512974408336999612730361296814810268439282727004135277755466170450732203225827101537429556952675834261543185851246343112394509507399992965412853844277590549172552967512815383230943615021389354080963486431126781054402692549390968817284034590713827054124594843772483909699714832490535484178789090691580876739504743948957837799237010597526136156821057769338004892799087228460239113419380855049780749511932869428575871258330648174710184446262502684304788295227276818509146122105399946815606232299980360481307929661915809294794019681426879556571450528349374344533715508769661454519897337351066618580979825740210168758572734601223344175790319425057769384050668358193396353981492970713292485838021387228829535694124253107454590499078448121713968435711277167214805129553954860423919374097279666104428887267880780274700221114562285093373552146816612086822055211363356469402628418840042142159962308791076492580005621246739548998389893751466982345632414977669677413387142591951182105195509730869627189935653330936215392076938806045657480952887006112809740098311536090948432919111361008070190544433437288360224457512918956814063930664947396138935176327086089354637439892105993307631060344619704895319098045461601343217625063225761370572753389968225891483380245445776930045133161008035024073723627769521907643251383875134588345663687996343405308866980471260900275002199720821679928303229631471076605950522026492916731660295542766116575340273346305434628890707323271668728972557834062528002812718570403688964138866198405463582463884108563330908552998608036195997882415595318965395537214352485890389418671726560966093001249349712155345583403563815662073641924924945733626734705864246751754732229740590166827098890940695302801170019517331229267614115126294787176497649769847727147696646846806253949351593059314849777386092911797829412900471072813494582595618865116116591613794910041808309799097482570700064944553738660112841368277581470271962183927061114724044278031093743031733734474352100524163653143186946530130589001462464382510734119617535939150796985830052389878927577784178960278525926196302549487870687263403095322998064886520480478661871182538445990454070794222908685495779941582885573034508979656461641324476088589832127977550027552023446436337471856148546188156275057915126754565954738042798786080500048163107155192703206473572292350974760787602679430694121157229392733861380185847720795792771821549099363811398030139283802555063998669820225330497679328167352031451716728600835248942948352076076973449702190711377492498320497636137270721704839988855258324760328435003469878801836267015900194533152217840839937687004658613469997558542938869582170459568700166989342084818674602800669813424843993097097649432909142513039234838348322442967059288620943191165111434367656844346162915172604022801697870855578363954220504341804232144992933811809346312315889482713348930082447633080389290931014280574262000520320908658392485429620347949520959684293563092511381182535430569239117466332340124073040756397973765682240292328231944753680863250743128878520395335100427171620691675187510319453225180112988502376137171742793308163209588389168538721964943141095280646813177790210173543534877726380559151160482399058569761920697526128443633704736609435287555881192486574783197676792883661878377123551243264564816666118367952260086373663399340795623745490742044324957677493322196252628346046615194148293295492357712641583202542480574700889627964401994084372082772341769362079305125234649581746178078438300742543174167056823735265580788884105319048848706685409066118863627042367192317506995038754027278964688523347114278382093446036649960413820969769807606617452835960114447900665267281467362695845959715803885150168692272288000897560882246885337329038257324393936396884800975356546566615697775110646684123240164333454579874209013532603632921706109253041363447227814377301590993154085311043592039071453308602168948585310667130046640548995159268437225843869448278375245910506294696116988835466980924954238760691242425476186513204498668465553215512837886350515545976026771894971572838397135836383930886028941060470322069222058300371494757066665228558358919621862769291000947594892231609118586335996993655177640455383062143188492637184469817440141633222390092284118524454304046259291102082671091759071747360478162554653021381267921691797941566525190107828798756701340812057026008304015897127823069715284395838829587135649746388653638248388299083937594365798161637719311802639577612222590466365609479937386225651187508077146949376093667267214735375657151607047045622405941979317964157142759173090117052444635472058448078040059063419057473201369844554825392800981852311905290345963379995874831170944569005832938309237103573455517181408255842225375527195183636269399581214449551365502653358460910664546765493588260466643799297438546806082111855588329094822725648848599463981495378496802826460623339886433915435524939955335737258299722964886404283504126078797357776069421963550216370005573179296477190601583837663186024038913401336247073912828478268402422677432745534839476515219243618881799785805674840154169367047343347668686742546088264798374167650570441284878088090187473482724773004893911505037777340390055394994908152001752575734213300707097870535473872028386858325538491481602746477764793633461555827053268706261669375948402261141052712576974299884310460475102982501080393009602532553745049777937594774082448548038338107195016789127429425590649419338172382355338565014433495719039277430799817869075921460381564770812599460893335292068044396423481595401843199612333322043546984698397935359769901791672201254592773690816076435339164605084623163670730421651487927662941848306860905442159089859448724839737394626948102380056651131439140103914743183183758371193640874354105992078414284336070256752110239533309659308959984760095539438995745492429199470021218362276685429154328933359284572942992671425785751032191896837050607191571390910431772441719700976339428319079271679404049049740341134812856191729265899312276661314507881056757424007775646254993603735247101121789766105130337722524706387833892809876491657109391442064814010316232684420369289974866297716194464854995935584478043773901192796762244792994585622749090852291217490488021200493720785128882181521274491664135140767976191136786507641697537937205900420527445210270683321917156239179570688646532237496347827953321014121299080377043383801568434081120216279851899210947382712038951019368812904109411881593539288953375668639949140557243927583938196237226365520280217952551683664062492990196191838046247912954618486306664634092589740002337209217876474404404924506165778421937103293458250595083529628982783380558164194884320238707344472410750963500041927913395683349967702433438485354069746764423017055314371561320221616133342122603561111232506079069853600513077760270850638761367391662699355149655544050207431774849471948573589251495014885019979869378572216877230953692937663835505512021750515532604577529048932582945128676895899601509256227891691103024177279684032011704026774596295385910316004532022217855071299446306514793450780889283568259064847553409025916118452185363493414819961469394255055042269039416521403674346081466495081612875682021150067280286845737269414050760595929832285858799508825267867223902380714373079401831835440035402515307874552886713903048247629926773566276575760607346282522887228783484870321488784681092451446783176655923836593140701988690637426180069452035246093066815954720748098951726687058909163424470864800504820113507349495108048351625240260072517381991208928003971392783079501508444337142382674280850147808687551302907193543579534807423561831583978765990990827948630353809248307130582646149778330572023975952130888354991849946261968021848555995184547045200588657303935470977597537581636409309234054052191060497040116839858477733158081832617758874957841914665400271852431632821032282692238019334646307142363288270911021120472311732382899666855823231691360628435260034907259013244403788946342700200548406510260324974795853727627716803679431671761072607069830467556509567360103927951122620565879827446763133573293791254124837524646137273397014728763979210027791813652373288461505476908038161719068904503412648836517996013178130384495853722651723728300094885915110622553021917234497214651805815696581665676087152697396658665395090632663963658357749606698467593053025835589640865947392067624407450641658012809991330120294077912099890365884893379706165762819817725496090946887574315742646166788473477529281446370606376443794776646342260347076407187873881891650662729245449327234576937876006228673770514754244055651962473780209231752694165013508326460900165962651896741431404788319622191662927595639214053136064197219259581671509562836457140208383599664920819565895713281788779038695292173652046678077353529852513264643624972115984571723936994924498593824633776131991098723970477331734794896817997569548940562816773444134776638682134935525764142579577091232920704237851794119991935197859813702114683278224953691805114104035524234637778195136098119270783772366753436697125399597585078848221299210260920329815482480469492011283448740020316696294407086967268687803197087946721916856200211877357911946125385800579817680157544092688634065385421234345432272994117994618390889615910956097780048497325163332119172239876869978713467094307592659187288859962706742533189864958202823444971763441138439112783938032789505804691104093880914043587790905536334054992393825895083032460127090945201334761825079073312863735255949202566038396743494371179143376628937438151224902599789062022946144108958746663037237952781155241419653722231283531155057944074833555387522501940149962354958505262820317107571736078127274480005818430748525429540462049115849556139158973762434231847531796736079744746563420004714146760119479085713736176405872396481263015111914748720699184627093821029302575362813143321166273568753214751128860949688555269074112291245321432315187976499196198184848812668167260652950338442813603130699885958229154040609946406677568334451124795393580762507493731036595082490704231930356089575017201225495323727685338767511157180333048999073425104329801044281260637004674656984375647527160947109872020681005038015181940344415626638099248727458447706600422250023433406438317862975514918572135927120749578635858868659005609098231610621969074029821736909230188902800281006634493344537306460477025033233528789345141163781891104549247044833775122147322342107036232717434601914821685884845469277183362004844260728757126747246350407010161132017839138851666168555914195504695522654967285256331187183432070331290477030590511583458321541470218491678272124635108676690492308896305980810351755764888555447995458069741672983762774468348413134120068686313527319680538623117298355964400097213675861341906447709345222191615201786792714593442445670637899105654251639502448203828125077136999934737550007333786529831583074920374007317247411031500206894641663431288979561231742468862684376771720127799953348712724496644073106973886093903979115050668693295623239780308112320535007694626973700988476382327591766570301895015155062830015017694047868510682459558234612356909439042908163692274610904580883609422265228503366939896557868656849638243868358854591443108955589525350013387943104792790563180251955998032421689121030470622502771792189895232174249147423030691741364209302856386943456188836926506916909984103124124081573339561697416395529640206281031372572518186199579512646066154003573962067817156878333575527007627655965871227575549677254618855700620652706345633846436672243168303215751557013323298321575942331435726849077393920563447953985350049846393007272933590383131711163164803509724608715090723367488764751807977957789338349086956984537589057889590726510963879402322666733420140242151096266165220392865203441092156578294410397764858289831676086441791763046661208610984406715376801712736965001827596991596189630788795564365823075321823305785642457441189580215312440507342509126073045776047386508025946470066737904812008031447917264136004589015105041417983947923200327743239180899126162024696421459067896523488220935931086771068582606830167309366693038039996627466365480007148558302101244366450758989407520881272993233049549293443940971581147432451553944997852475566300980322889199543845617026852158613667077699073601683560388659756882759132285658236023260857908056426562951477238568687395028706142366236234139389340302769131260565866909879408504569908681779597677744409583069705528424762396183789180431032208487820564125108548971295699392127818305985442512577057762109295058663986044758251373396079182622249538437269086952053156888910134734093068071904969731612333722112583263017492335959659433994670264772572481546550662882680200656927820401955221376388964381076830106908309564628190340926052130023098810980977453312386941287456871671141262758371109568215753972419444309132317796497288011363044151193158377505251949657953618997079448737495562820511551208823910931060910059381299890439746685859330765066857922946325766636818525574242371064681729282071039505639140564635630964593919698949443335639642227497614645111880548016430508898251092206739046312389051187212320263112299124011485134552316510722857878880256862293389195826880729039426602791400025236299470269418111152203092510061492436473453071427594913996574764574190003953532052561185188202898770852132015123350290360395970498771909703386629868630158318165279306197500377738984292472771867533761900128141885601716687712743990663085229919902235659465042579313503014835075139320871259085230230811871130473190531147940850883391213742427240685221683154661783290406975486539564513300109117400280062475317153823097752766503643468570891123861585169180892660393217194767110928982512729725383687023328906632835566627520006039993536068935147439592498346187242125333973245845105987093165508678101010692038822407815383203957667847209368325499076735510772101685918186012204163962274043535689938606260536799620016049929320542762810302586261200568642020694183250692836165534767628594146221675566286272286944415590622981773060593236943717722476602404014624694525004852460371517118442196337507482992428536828295479062775950685932481360499193502997542992696605231350999241315985267537369606161192048883715661563348867348651025597869933660974721842006226368487568430900862565758776960495748992177313162880907049947819621113454837340112116670795986618919590540834146390129595799373040353171197964007355090133130962240756642441375780316314822033381563030707308097246544276556408925905259675949882772799806788137891733063980713317137756280953441476031221563766563065078098682254695218863681080865971077517056406404421361718912723020778050224197250042305013559690200897726884753623539481853349870289956721229075288697485408347747476214842376117746477092456159845310732369055697001368018152587705493829985197208453257777998301023012122206879084902183044687527721643006648355350057597270615563405769085634049213797911410209159185586924649275742787299479616662817158416912385002809300557144955375700691607393661821173528598785270403288254887253808709764264807120157704305118629717056121599654062132642668401044685952513426310402759479242208982067685701125089378958057545871355527953668705118631180606791060634246456334101823820259629272411908496023352164311429406481773314018307962667124847574482183519171331077304125596349476476004847405930099989744670758962318974911789194342286597130475176872539971742863065339453661540805816164992051668577585030986069100787289091292296570822620630374005736895914146581392407259320690105629282869793299397154757058045845100774180289863879444059307536124985009799723398809986857326463204931270449862918871244828342267161158828434911287921864092792658897628985065214968402527555886259590261202854514794939517129662022509582287335724697113582203772904291355326407272299826337477454727378166727811896548804084855970053870223262405224979753363206655687740924141431920060069865933083452265700161349902826403283027003292962058445704042181241885880495154866188953843081091367751947703754310722048829867757963431440920040711115425783022960488708290070462484047531829155848801318605792109758846659940624020191105127743573132421358663404915078654060512959021512452054383239577370180399602814653614006981421053456117273919698575223461072966479257856861874491619217180495327857313079536154168830263511038387876423772421083065589675894597328170905793577270961184707664079748276168955381655415337932789131773847847189229862845420704564012658090713804848518340010732858457251481202309508339227533320981458125104854850464204671723566783116858572307968897640804659585807600274141110981259978306465865517730040395589915810570385126376393275589268236607696647688719167070346919788448175012885151104844900482287050902336165321596366188927200602717781313761041521551358928916683435275205421848121745697002227892379060662265205223716923153524377887539224647194061989584781330933334637209155370233578473616634430906926111994329887986297689655887667703005675751593970499686120939814753856474063436448610504746569009406900040605490690458851930591624603696384252922225955317900416048815759875560620400259847674801071771138165390786527616457685270485505578386907887570410630968015158949860363163650175039552858408898607882064961579050423049426002108743842999626470517906014503546633217546312084142188479083945115084670426309634034710063864247466117380356157801761195237789945818226796439121248012842928558205996023684352207600685022077492905660316048600085827565072702323271580360657155454416558314615384675806182920853606285181186804158764968185475074892549653782806751169100608963222857281732194394587169212271703220300221075731878656004776892483129115118921297170716800181988798460041354034360729793804837363525366837132093302271862057714868553216338555458261515389447445223878143451056808624088929891027586638511700911566751200503349294432715478167431192167356918106879080076392560849127504733815643947102814260297916586770746292539239642658844519408687709392085267497090961205605542867296297665495822951394027847544670474573041573039093477431405892511866104075371573052361309792198431999923869370619217445475977396367253787763855609318716560921099029531186239442274432222507110437465921702989689688174618285192482626749095293890059714038200642389754950760642158553481342682856166436846538252028278426655171884264030771069080680895191031957871020276298786824126760418026429791432684552424895298594677394180890710746082861712651166370020603196203357371260521492079800065527556058265631261578892530904615162578383871747811305714546529256446026162254564805922198421618821421939796086983876570630510507313789663674399560767766751016066385592446153384967621259139129880848789011253633164179014059227113531874324749264967889805883601916244368360383284247182656507338721951595603491662067984562779521187846268455559911767270171598203540414480117432793069785602891301365662418741457756091692730923592741324456263865662394691832283926953691095074049775063690971975327358214548847271419935484315999686772333813282817375843740699059969617157480759396484892655465044123804795831897946411577925273766061039355871932718010576658942265064545598786218501159491423677655998245080540710655104341816475973411473347503084941155707033828379724411737716318809292382197450238257343686683482981820290884851811250531753124221277498688866675875532421074117627236891367339502884997086144582211640156031750876674186120526159991218056362248889462596056890546592373826082639424158258846082838833431451948965074308831424205962493603946643719470556796834638326775745494189751785856411287583644266865683049853225147570755988564699517021989173257491369502102069507771386131096452768387020634458711660633881043218033012702482407256597421134962311359000334675615939870616651074098308863738463479078660417562546647151352820143943352739758963615560071450485165394733491292833691448258572901631207372667640313573467881353145832843621180348449346123853547502642881947445194617661738329739276825750049337842547554896667506742146621386756621567817583180437224722587421212661702613552506737420016906081159682812004836082259875558915720602233398295360590381475524573616295248774817302163976725620693508671421298260902413021703290767175878635312415826912028091899987290633437999423279226348242255812207590869097945870335592182940347269251880869203484263752635327366988100182011428442420776811621423809156616323073540731691670526173331639117607706348029558839801070040314784976658708660758919664995411697425094292938559309960093330949327224879727972927352176174120130565637444531714269629991221947773261744009684173949747134948014144152581309082212825170563277932606736978471555178701979823805715124560233282498206870364542128353524909133095808535290385824279608909902516685631527032444242459327744170297815404823841117826374480642368266968015711093477499977293262169464537424952936484743362208285256362777396698907739270463669120719260269374091408069571507175244676091536498746660245608532852725792230197242834323105517800509525620194588503291035781159646623366905743225187260758795422753412534659712422853889963065188010820324329443533464767818896349557348025171117472559667857656706038443209556747228829426281463362379038643671828674133290594516163468666703789412354016099178976601327700743185590885429919976197059839766282882716979493176737649398687668317844290867410929704712690786763423069607386857784857408173311188336722791623929212252011111853444439357953502596479063384863501345285112470138169661080049542496518404853630036918298239842612517921653082253342877648828859663844110831575766778999421248724294145840392508629155349809239584436436742830912515693327582294795584648217118608900724238848988776380021484954105128435538876983944452384432518178805433111824090479756388845690030627503974356339255890199673197564153690715868304082529559283992414935863735584756951004898539770862929161799962636625398065870727787524916505250883661155051281122613141980586048492786208107296999942098479335377392878651685088712780040836011796932459477634794088785116015056081116202854545959874472080357657499442586584575107479985277854041691022065922204579941164873100613158332180827493387728477309082957023966967152501791846949845651351714915295346096612595660588293938631163933743412126577271804773352486621188668056829204733605194724061107016923878426399733706589701588696634278130000173002821128193938381684636488380515039963763646577431585077617161030364495204951912182052588843645353587393296443658943036378343787267343094470932265306350712002109596660876573114083192877896598151053497451746306084653298564283563349049634236218015461820145401704574219406107423031436489846417183514376421011446090311122979415869433006655611062110028149723660596693401412373917138707237303820390247751788586638290130887893159529607350921630202332114405500768793881336036208540012666311210680425062380486568243594542956849231868007961243702273111702991605633219700510561058593515862026261335444212245729382497760876195211622546603664956929616582560413114790217314499330986546017338625918151824716778866887663053118223678809909127822146288945622183794359268430390809749865755660822246227317855275514759412603537338524596143287717141930197266370100921977925964275878497509413950735113045284885365920186622971540163831748524329341332074353112108389827192667320752247770862557133620975227952799953916841840763527529633000615833815813001626721064737214725714367420345031824842885112426562291948913749373528180106723147531232073311328709884096295161915256455619179955179050142415191389282923026335977947021959002568855216474895751779594203829345549859874861508689809244899463861512352966278648053533445486151432758930205235432359463277480015395528093537305888366476380630011958669843228541191074635042512763897152470932357546777520276181397109783080347720528131231977017539572014454039394314697347690087466677052827309617882877860586476735789857275979938898429536282243665294696235526144450921660839307408441514064747785491981108891196356241940133567390036822625382595696970406704641382885099132428777022792775837498102044482005052565179499683844101042818909556171094884029850985734625040496110010780062939262319258167677485957218952761850228941615602937878176189395194263101685539715613382017681437573038979970542486962759795769200917028543990748430417916509267390723608321893383611482516427481956728209917709719732416896038638493108472976588934120719555621840653724714079390052789860832714084270824246144018331905234149649359023014488412062920223662598397525096355866421993738248718178452175175548587552846471885675777783615305066162997617115760525965656971148129826283037049317557315761286936233216364861559723394182697566354725390183338472889456140829239306151116071068069289824881527009758482664225197711424964131485589102553539447347240402053354242271604061409590668484186912003310177664142254047971035774631383515108499272417035679317335429223601476005518509553593184624789194679117811158921767107959712477923048634840897313794720984861637768967214849896451286213584906728747843189977079944518852015223407837466677375280738381498434702286920904884611666515700185989873136592630896878466723601402511475998930383352640945772976218425307002076935396817688249924521530361326361652248589137018741998939139506948748325459202991918984961987441389122446353686897707786273843979688568755381367544757761567534359348818724286017563525689238975294916973296253377812056411346011719467495013671041715609672351032781258911951862519836066974914850118749017131468580772587064517491026978975318534883500117361490664953282167330110559090577301339896252080798280455400807869756738686490687596429084930650875067920932101531394139728640063790143008996316743471536935615807987166070159940386422749340332889903198945290222942429263042111209599718556778293763695478284683508094967933571446064296582765777590803793927923609902050000137041084796900807929666790798766451619793254309228726644641921022372779854300276476598511178286701621546632179666557530975191165618412354387080739201302778847293177319367565221119826809650834856814065229352356485750339386497571834253688086334661677020652780407549663579960793766272042138696409680818123145601134928521474878448845219591425888241767959056908765085170078389636712984653621671241619098392484328438017121928603751615922966510040464751347080236037702028753329038606482272063291234385107178872609639691008771638984501394043213214068728565767012731829894488398037832898222364385236080178311089103321592223327539826075672199286132602301562670378691568256313713471376069918098861599962495771232716398894596662217430773699894354541603264723073249979874384621349967535574891709476619574029658805431293031749025296016037775980172591564882053830102608518547222206554660048624123925473850169324056882027136345939420921839743273992070528570540395369294044744996632553595922350359152658957903383256779916840969972393372166926420246340353179990063186562356329759031146385615004631871358252104886932932673770837883001884205458753388267411197915774632369367691597312483983945517885025825782540132766485245009200902741674363179504621060251320633977398657805410838030915081805372430707872946315817762204077792479185993267048182991290202640568599851056766699336077293045698867423078438961621009202868367344805138386061754374453022215211802970921456613554866983800643261380909103800352469777149431502115124502164114765909094837517450832514237176218171149389535045995286204680522545928488304803202263482917296587211306112881945637435047060271230049998729327284822248921943057157177549124865307817208807389645680586893237427909331300636836402571694247968219762819479949821363530430794445227668002484535416734593276335637032772072131064717949878537858362256267393956661008210042305815067686898783618883709065472709456000943985474142159935546146115397221946145635961140464648955072654638003688614032509052299637277189857488067837681724960299467849862771344342183271878371121799529993876727121202411296748966232380486395953239672652560118585335843157670646629022740672193772519140001870373483021346329768023117916880345404005412724193736015026508584734225546150010093140639828454470729142182166916468686460550632468716531973153038209819901014390247758144858792522718785138697859653389293814385871612689581198918896758126432815933243561552833015906398932651661493909148627824071427970804046535759011801696550791955804060982511634697605747284030562101748402432521974131806078473940077223118378671302808251886981208131826790368030772477975265908419974395778914504074311796646890908754671951605311877143153800797561113913509420674917364371112731088231276586563891365685750295585071340382685591096596327064246210777114348341224781681290578994047091750076993511524345476814722467738792885463227106378210642543275957611268914752816059054107696801905218779359873145453343992433132607884912140642382374216792034491974129875541420471454797831775338441752852400375505710993855715314707987185772154683071946029252259919368840273763469943654509930029097924481342180841015480669693233298248837281218002351637069334551982984979357817276047150472102488116055656289202564740550309083249360379620009132161014275585836068406595365572509837656034460628957435260509942810231164802339614537781682631020877656515885963665242385933071813521399196096996605344048129243499156852004388692440907230366746736406625447669286118037898604314085445135279211885889452395749292273668446936037474440889972806617204599590180651993619432188824141169225453457454924854912726232271098419851778968764300144681926997385392633281623592597838939921465558895081499272649077130907939622694367822735241282680622586786591360701057921214105188047969360142084266970694295662411816541504498523244540641127911193364322888089543305557585480346913441672653795335161954248446259184560292059594093981635135634627171223743404760840491285801313991303240680793613849055863545215180883559887772881717148914236054109882833543489981819434299116913679568223707713411410618503092306406621844052316275075035933874378902992416538536832794142916306093465336438538317292443292915881822337643597145224776349613296920566603472019375965822982991830532010781497526904152909543496061656915052414767912349765761696872893998624919861743813902557913176017969860617542228307226115167493876247565032097102578725965106362088258860318732000622103921280375983760975492836260764092230105317104577906727447295614193626281979586466164130630482781582244829295928915441971388920829577470541418723160865261930759075817247438411012749895894068115458465532698342713727040099912800182189786263959962530714145024348273093756733683095734873180295892329396161223745409381958832377307843793808642846034392032382036807300664749361653522169009765512675591067557318133660141545060547386881475947080021228089563064429842353070293353775467678651440189119316534213741997239129264354300938593148342581647603258184114587166116153022935368288951683152494888098547819668879919240153116026144800646120512027545747110010930213022917326909116469825646474882392218405128621914970416592360394335673926076211988623490051025118855685065459092008713717148193412961184320216544221021310813479500057523242503587056402261398566885404549073623622860602570139192529827484360777697495503219737021784348389180651607941873214302200796506600571893941346526449043851305857272084809977941134540382033637480473241572027599588663198425701328765883825882636683775824432029631944593424828643552229859732143734727833861050985537547684338730859897470082941561452779441198411235624736390686813767480561368840943655711028015732928352226727154727205841075309491704529080086525336650431052705124575936771903291683519503765501869766216534782892240233881472918895250766698479872703543551556828013041594293851868681910661747288336062946233283900068039322308555791066639593186992696605316096356001978469069237905026890097397597652263129756190949853533370683098710954105564593257796992985904956098485206554905529196728754017720526497036308401957346838869812728234371241484965171605841025149232953700522096461553691190552379476089225071694219998884681729905594178927981661771133778230720636059435342798792572758822417433019443302256325632898461568812082305590198569030653891770709641859303079496108933174103698426023720208472090131165699622652981951872734417077601019733783053865935188909844222927543654236273663089241496438420188546638435674569957927473324480999494341188043043410190365831731469592052026522278860082074291722233966260797417203638498211822157264388424455941018699385523899626090920275850940729593492414704944092431666738798931815102983755921729832960413219741261481356320111831779480164598917108237402544637985194773479373003021532339951462312080910200188370440182963815308794849223673734143583659559739296419789661956165740695608678667443028966129490837056613821870227495413881306291868844719993497354243101749139560146413425434726292142186468413284602317968642231975116327167114047398327974485591942020857144595384229104759323165386803858401186107943232935073439358515644571899007656363109512382985212239492476344451504286680503820944223719446777705145637594906008032224788806839956519963056843844811455647987877833132985488339620118425431792098781710394182878700489201300468057171968606063405825551864868015058970310673978840500957966868275720574978975487200490043960379799239855530025907373507302913349368654304792331548137997169911120358277094244890554114156250351268480501003810696100099540540309666396711443453388147185449477260767670059171238452043172106719057526085282676092032262445700146671151557392403854658503374215809173120987569565246039389084857042248547008799198657300083421463009661114897254035680325982627598005691218535975511214341917596781126232145297708395566523688089709349863422572715241743632367951421488130947034643853157485556013443046901687282393284467982704846046637451822866867895705777533537651503154583276325817899587722931140212912908281559393647916071442371107715278157274332012966514654810311990561605321516588961788778287676003950128132808140033671485421792092558807846876690704373780306392761382502749409857584974651653744970971158445627764478490235111149528345999439748535391378087318567001045036658282585640680434934793746955506991501632266631637886712031984195704838385778566153648785330540976029027157009824302418206201313166275352974065870635325240873842479022984956166407809052645937657109556338515184841444461230012909780977371053251678995096703460119416013611548871723033181170980010117279692347262660994138063649365174356565481132586565331155736115220897012499998722371614136341786347437378686779015642380496812585851421980750548370677572330232155164722270671725847475933512742318993296713144679118525134992907835234834665064759023133776813793668534977142553961766337007771983251675472440224695121540120771885601379653503045987526444964257388740379833446407168824754843811157222649125528410285344301355206497473580573089925271251272954396182256036576882342010293167514052928047052148519017098864378889526399202027659569073657133998705494053785933042429116692003125114668708550870226433115715914041549546753510802480020019379167917191252897719627426518511563757466619532005273569998290086274560563801822211212004398679264611718031542962094168212864017640756563474567862971391977745647521792138887260938195336410556389611635222815627899957621673161868056543157158886321642547644089714801839688361516251623169371981267799446649405263589577946238259017023448449646106351015864087750696917627831140404411513644195602424173144717534656911763707403145194741539078874353591137718231404290476269076449750316138304134822258819855922012012719977253869689682789207230530551630320674013172818660268854189711162200910193088606925504671759720194735167812597604595801207135147288951401507659723638933636525844603681214336667805989533784354795639541755782864859399135023982730871941470747504259560816839156660747109258749098246649861418765024534124295208852385470922546484362391959251904135292282623857817050378799692009209576296650118656466047467103414372441289204689299558164503620814298364327428892250180711917346041103499606114839300950696716999541749788083048705473481547110372233395919625919492724925266425469801788686414319591147750171204361986622707138676494199405062448489231206493097233019398407498621331922450278814807218236728942185414275446082151982563612772517860460931040883026033061974245309553435476584693325849077420080185686431782986429601510028812756770425765396940624611357057713654296338857403784446547473306785115970379324075469220778862259416886233665704911876466985905266776128981749194956009169280330784053669100463541615306738001749856783663016500834635646440520208883152879426683865971921847145629602002115488618965557572623008242058250190967034304964935166124752790073680951790393453972640147930847577417874123180604659275372745835949404155147929492401661717325644894810821516534229209100950815844356782119107274300291432184944234021741207212105370609784587554079370770953041063884192245035083646782460313471587997905277815668679584905079809175549643000304325230306416665502423958679650823960971235406466324734682331428499483133673519070361577006440195873267018577365073734371115719841658748620539543469772780952911625357068016640816265452313914769648986759982253311884689889580702499421903875303793673219913355913145957860953514796239525258863740998838466773564926446573655294769619877538524551510322694992554432904325870163307723365845748207289701765016668819208342534699620951237799632055202557143555481135827032905223323819112659100107598029710295709125609304432506538000522959700417141678767965052806232537934231066909624234203646590901225468001405985636606770101678105780497810622349034559020998544324095759917479775376603301347769092993648359024415424653590952508524008605489706054270696493661383336836398297304201471544413457574736606135699972243547478596407001665206978450872067230526402006583981803099925313724312069530808766127613208697515025275574840775495314022485706848184414867666806107450039416808853823058275402849348925324202213212258785284419820357573803392497513619447397138880242136150348615929777662527921608696015969063513359691171274450113698089441205089585105236546140573524044039481035584986168834791004399862938870735590519091640448558242969491983355845883426175299055841756886509974605557638177868853225262967427899419122544890820315293024599782432870287166158390974092694123304789450111809760561294918162992257167698687178199772572052314496054754618279978639669153792882190122847619907507736747877525684685401167887361198756179616220851526648142296655019384884303825493625670303136768493692277064410572355988892044170982224753866425101764093550059044025396034133885656004435285654788652022634079528833564454682400084826405254352575667309327289136484970229843224925395996217241127086417041117642124424297226038778488978582139483322235080704465225639552156816152144956807230354323057132045949340406258407063784746299650714597027589088834070686991421828776697665542153819774221134330978895217302595417683444942118046004184435238533950717418956446605417141974125202461454627412355595427063648411784256596392116495846858876575909092349005950779732731758208803730128212081083009602266669673445548411194635967390294724227415570162017653131980669822118541473547394156627857797887710149221583298196897737716415079477715108963273388226631090069384206493413110477276191796937791469553273008305920627197736141579309249526772402008427733476015966394076390441347970123663784755918096493207849415810672783117407923794610996647877465408074431072697465266165162031131830258617341099458507126053264189905532866694406137505965431270436511673912653641060924183424375457000403191091118433812750529261597268555188815286513840522506420190143573858453338546716292091079593096506100972721146935968545373447896882043930578320145461450988403831309916947004514017683743023904351266888925603558278445655652449996237644816539588615270612689513550933007207073933577198048274032481178925713915544449476414118693881516519273540194109105434867279704068195490457861079027797533172513563590720306998871532804998153146309402141851089331290423117243885050636715690196817260882741862734144489701665752886576794233470024138631831451388552324671019159585363070273777806241180435615260093971830557364351534782215859136351948463253505033280131315955708952321271774693830395410900035517367055760878184351497013921622663532886913190563935573812551592710915424451684334764075093271136851693224259483930653542459089815847749696143991873798593061465425719417984690353760782711207448828356252669862771742244587367980557032499192935314260622952852441464834223482235362341283730278318802722228584574084753696352121191256551022076990440698474581397145076505390870185424037810542585214156848613514337936407349119518534188634273020836223694594641024503224534718915176426759166432238331876167863026974767520476442429839054801374282681379168032617451765146377522713204607473432023076575396600811002460174809563345103993469840368429912752041843708486104024782977615501231169290192185414457251802837053899581864017144654632018474561402627254495141831253455378073836165674526815816716760017591005052505885713531877993267019415057798514939921718517887805538988069775645603512243671602380537189805669943864877742272165872404617682268747820800608921587767997900314144647517755760809763922482030193045650693563158024175352349939354926632279720330876098882687746946754935554938063483188702121588282666218382641237466442542933545269992863909189909329219747522980088627827687318972745887844429219695604451434205713266412212961965062546144780967853008965416483665302696302942298357129879593700185922534397107097773784889844785734420482296940310163591121387383946004223663275130173831778210527975974603066494003426706490299741984842237771318738006844290866246643513714838348204001740734994251998482508667219492226114219753091625655442414894113856851473891699990790392115587430141287035941941790493416443664854636391216621064883130204798253029165553482390356374146168673574888163145793256195018151499417878919852554933618037219528837741252665059095765122709225933982469655123742852447659368355421128790074528574666628586347677391830801490646563354167462567551156388329514051147148214817411181910805587184208599090932351885860474729982512569473467732450063962883518463832179550005620907029115749370477986798067716128049143480472449244022757345319919144482466275688493370408628466082030533827349504911502303090191263399837777142271352193933850343136107996608303813307595100490552983508257934989903233899301017176645128959706989305521042123488645177793383216993730657692296033847600188559365939159925342844158737729105040206236777364876142334299093236141465319966293481109026830916087075043081441176527892583074473401071202204815467055622285802079910006514947562380486640632290002195937960405178437358511800360877951896455425583647327380443903885111072164718979952768178563760767221043623353890440996158050141652208496115076136656524549935953208178238550194339953784193498861015386921852415820196590259307625890477637416250251025036793410167575200916004762732981669155739095376672838585304380308222192635733603132997934327470061877215966340260038576452642527947672402965178666148500434919461694883787540915662469469265380386276918539056484902480357707458124460260786240004140012112422846901912862642268769085346280593216422848828944736236928464529158466453910463713792732966887504105139802825324261075171046041244431217191179672852386430338459027062255588860981635912720122145713540747663276241050491852205156113804287012565865292998375200757753309267633387562568363908803023632875259313851786237740862383038275287451096230206182598952367460665035594884118383523405857001573204166950817689683154299153558178719906241809082388114506947889781978858292873801713647008373679700371339075838761881148729300668386836312854197584270706338316306997050567842393649841441993629201345965176637853972015622705564432160900902021320155360787994706818316084080612196664013034314143080055031274853171740647893906636539520384027082291769173490290358459828422109286623779335694268432199886242143112625545737382680849605157753822970825374569174432219977728690951215181212212038458864087645583650924221096014465976134471202523858886706492401786263146230292438909269957047367977650850681369134336222310610442755489123730553451795929753769930215049518097250455761792933093842988290087877229516629939300110560953678467178457364329314911097110094621461132706535704415784614319521078069869240534130331236246397112828640516183505280246668602968812572838714612301929851976847414232903962747005110891755192602282678193134629923484280079510113727081567410006224971042023088508525422828389637274721406843659869900647111634391800982665462859133706144299470481175052069594939525430752364509091157152277356171558131687846998904263136321129556415728963896089989151650795171046049700623399600743068159518976343699606059265660154399250334164778430787165213003936474899651546746440124222883179241819024025163628231016571715458244018971553655251312416640827139046627945272668356944257521344840146468044749912100909421992554732467160669925851856282645517120449203743974023878266429819065343255319692374644522387630995862802529617415619951577720087573363989613042740287757331079758194216130700894667414239112108521259267888009463170589332895498235648186920740915262882358585768161247614781790418867340986174374010228438014921252323362299648967266709552378648131660205471380666113330557185225684218196977403563246907110411463494276534631328194356056783128425480491613218853629507559338456657125895091926879519243051036612198342818990373704873762799942537998840907781709966952430315629518019715088867401907257057964689291598817939579343410171790188116933838092887736532252436240445584384406268418965970563569849147752821115354118106097945300607656853939215656366770184801683329120548935127623947376827098548652005549048738284300375475242178558850204750006779798460534635501890686566344641800770686914116119031822754939315100941384859395313285926334074265344804626824923021403270580398973900820661936045468238481242197893232540604544176279291200921981661928864392622017686318634620760545701057426756417761183943429864864396086103120345418969365692175435498323282125725627283606097976444161008205231652927690254354887127350365388061914827939104929145541705359977175738782319310586286103742874939293970998434455613834513784457860006952903624384476944094175818729689118231928746903273904958061181316157594592938623810330758229216561128311385584903202950590459956032671608540700076042007114221702906219009075182934188873628599844748348388852389628398374231366193219759733908653881148170089276916383292129675113320229504539675434293247153004281170562101584743983577511321559350188050629656424557107882712773262513953836794289787958727761809584590478536640932432051749911497122728235693389587446416180993814714943108860547242698572771090250050735398154082212846419881825298294978456114764258082731237759408670418470505585349519867032560710363080404968113201020217126660628538201195362701220174372091004437819165830222155643133860443731349851730054080176048249822829786381591308884188773889873832726426692005942305051299139048277107535361668900107419220899648818182784187887441499508662682791319921097339073442031770579554508924380733179586805145400656117795334841006584555593658221786501397303929555194854184198838938280979139837122583575531829828105795290900464326248478088570191460797818846278712001712666213681562876149138185845673903456074445440165888356157579895091781056840965853819884450135278561843143250408539628513738062857565743948074501757488738475151686228881485027774329745637102888520722204827765372578546919075209559901227364287041524480702450165850633176566416159563787227417236026130099299243730427889725956598861092503856491890544118547074345776820942173073217858213588059393943676830129082322898771522320816265683094776083777418763045526453428914347509042844572597960750577763328748061585490655326206813194468168753993569815230172657755117241215056647534847302466347442406457460568540570526482706445738938844505580292023399599684065926628548277407118994324253686338993568247850300961921808044490786073097990265464896025441209734815921120889639274955112461107189784060286865630283235115111906164139090011402270726577805369094623281435667189035056166914512156866970888507045757228554841633064804060410528438621595305796123699423617107078747021957126322418299489942871442509239034158093646055394441374647627581488444879208258164774597656988997070404020253972678617651035603818723333995975164338263715444044557826453443437427202562211051477096735604940985231377391760202169359021772940641127362947106608427409551431539352707226422841841309690967481683702496135020957112302686608217647321182686074942957535018624958787169043100729706748282620277370351900912298374179649114548133694961612507093026363658858651728762600122925284303760823613710556170883535807314911488021906776026588355899552530268903454682801793174786669782296791823221964998383708723211616508357520515316518276326117490429015085534508587641660159268869143856303865024615151622483502277101994146870685536629612894630075931716537708772768199284771246153103180826363249704409155560456820433632535552499726399166344340652126539428008012942921869409930551971574062398534242760780966124459068186553530209282855599344130271201101998017222687516085575349382408118194165826108375415107751453008571564512076495675020617795826788496446717268819345847964400348385981149244809861964583754407767788287103524131913691421950676377844954180643561950772924757959058432336917449964694848531938999456736127901308094955116564603141750503910669319131695434679195474488908037710756711050384859183160280754466188501275731388634865670695602798238223434194807423679141123984985346770386270475332811465207376748786536562847542867394207198088278571411476300218519814719111819969926732043987418534424431923068453214246529715227619368157086316859136447509809966017865325050984622392676476871838062067560833780165821952570909830978187930106368967334769957162204689221736038040509716184026719821742989754375157505480827602371580691952144370762164360111614641344726616207904944746604166495931969965080003711521679957627140113692838613358005389113161593549739709977125866322977884330012121473115414527295325067311395792649540560385243711523449822745219867014014945938542008646501347830897286825713031499488779430217263652206416428486031990730255471039264630127255342110646852531868801292730754863487681502838143029624660013653438929071696571761006153110770970642176754232200919830090791698082838849264856753455156889925771318327023175479089811848425228946996778131067098652656149934742539414808961584353141361935734030759932972275636611998058087462116280734205696632947402365588900341406824021056646649350939487976529628413351035452247922848582800219381931335083799360658524406416588617719133457998986859652217828427755774519663159498023820399683946859588517314933117614826751543749478948390114583864378504172278144961276062215420904291249148612870240513025432153135760564746820352729014515449275964563284987453590159072629279918956062541673407863190107750365709300493836528418851212228859857619132066053597216028456061848478795648414965421933663937800017179156975078902459525338865828221340525846754739158962958197974831695729936506531003500691596000159085248147592367845462008107138151935043188087191815088182098327491943833350794641417787614154528307705163124501387785780137682260693426417455212987388331264669391324446351347235892477489028940443165028480412175562119308812819566907296657085365224019791098681531102604011673798193891898135228583403465259669616775440395685096927804050509842047902332998826609545594313032040881297591891106893766271559252879852762955611614609589478656457331689923010963316518969034456826756460668858448402815196148804540089714761346297144744023680344280969132813867611032074946954542471178072354888157592145229657972833738934497666876087942848991979678163014027654293295749664014856527363320120765473397513890218720755807485377706616137822980072610307910150362190422624903598918189145727685175727553851410350622887872620681163901170416287528538009895851909423777870561714242272479277673658567112639871216453999845942623926394212296063317764506443383691609668692297524195562722390426324311317496778435715245121657414999906266737332243717396707470464090562103313506450134537322528514896256210722462068442979235862807713391405960485904117583122588591879358950524055149430166931564434926409568712288161312680334062548022591083521755203886477331144089819731280830715618841100382846408441129305361381503802903339508307038543943585013056298601102662209296900592999997888361472887536420814071627007917461004274154252193688442595762212060476306018794907417537849555155980303833707036280315240702331480360185285186716403311161327576033019778946963476685467783390651640372411351203785953862415003808326146752835044103383794383658213109413988325995449053554999212536100184540419156411105299359969253910223809453122855536290694632730714187298031274223476545067719869429444880958915174071856853245859033926628320932096131043965765479085464095645832947351889648945006822072365323980939849789102820402298985247974835316845823269590536494844009623459616390283499465835675033841478062230937017285754285284026407302727663647492950591432363352904830112608521665003372666669921131765620606522330952609103872983184952314006823023895370758220669287450816175620222756988239254110277117774954837173567816670641156319816318106039337016618793596046316601707488255106065089778296556934910758759377327970452497205562595318106939954909672850551729979053306469441668892238357037062025163603892773739478335487640024210838758996971899139214628970985000851384392677649205592459516157435404948132420325117943708102966111989837684230471778419992694093616356552639270973433129041620914097828475693746399745113275121110522375963336444494891952671305853635591594659691798862340227026500251527480841802960704824527207226357723962204030149832769320767606539921050813693758548235424708767601107686273711495409494404536328543470558365241821347453476830457350974770410984019832228528781986271127865950351742112380268706596623653433074890835346754749139174547886851989103194231796984363917973962664299752591833846586101523047248226651760410091485600877813497571299663606229549863623698965984970091862335213184020407150337750357594657853691887317259696010817217157962599300285994045206833955509196074801983864742481835122693557082189710140806200630801508328933222066263266798840727170965402743117819450184765881893397321296598887803340898578153651122999767033679951886833231300055183313028324874685563903876442274495597763959312650121285913333650521715706190010276112581486812353850495113417664357254021832806373643790267467102991684566778068982153829716433390917120055847187700691645454787480394056107902621028574512410165136278997904549329669618245830286604981737323581195808850581499757907125067979709467622892042051558738295481482163542950962346446946968771315730681778831823732278671895761852899216087361637355676343249594290060949751773200043282679478440839045321484808802316704029646102964849055335029160250323162279134257238383071662963999066724737096966783761243233434927446394230486197907266568962849243241680844142631583019295161842996463959124473106586134741526950155403128524286749255260848098846925202751238755057613020975015280698539146653278946916019931170045779629812829855070859224743267975938969780865683447596970587842395682295651049503269826317952489254062107722980597877748121772179226990819558302631861284791335365718417465594032539167998158515736145174723442512624539009818136427122606122263603372871277028370665473279409837028659811785239356160090067990556177697842231892784878923489614512489937885199595558441694944534059605859042749897671656367256102621541349929041433457696194900883054901474345735364645189275043275052171299478488522172615283696930810372572270930346808600163164611545035365832223815056493873091828773080597191076511579703797161724105268121730808233765921965831394756085537924220103453783821819093802600321680034920700866189546369959658388856623865178758637845796871680231465603538988684632893543051397464743309313729057075683168515869596942912754269484804100173568881425307179325714881498243208320407199167025298410009012919297442546865955075350103634325719869527774770308829868507774568018445940017376703239844961761180652993524269103592986793605833921526200185424402917370088795247411932389752483444066494204594237467531760028456101395106279558949217100521264134101144304935685063325728171692502497381261365523497961326740907408044211651376685657539522647453278205181981105804343933384627986296462572487429317253377456522844407179450333798621722423200296753113585366629464400772030401732022921929653505313061068715193358894219952869322253258632756695910598723248203887696929320394526510411391400883304786740123730534478125198631555106766297516655557502933349390175670381836780974573338543918597250630966054207067194614888575577992133262859628145645033554438873985172744565389886516803791695640491011555561157065404045754301160247787144979393379301377906976381224043027837251440266617024485636332093475010235494852293896352886779966802317814103607804973122379788822533209905349057836885359473779581788869136959474732455763583340844642039771305230484365498199145660928674546697780931360681868511781585638755804745214908466279148233413068407021181111270932923840109365860738161429620919925706776261163717472921050687747563334901368139451973744439968747757102211860898519077490439442987469624879894883809963153567429289868938945051136122065267923614658003981107980540895569145125024554898957014870480577432125595898491655070637702838951280926466017845237619980323640705547323432663748813998636773095605377467674135657631295981968664857178336025864719091516739083729392224648845960877129312127603205975900376440551733750194947850947735933978659123618330930598494257224395439001022521601979968704711171781773213604323549189899151028317867793019666209696121322679138460344282452993856648548011213957894732505117686389198788444077533716877532713967651896027864790842804254545879468196417321019016176903750856196399381210222332421718985283378780103084279297003145321751717459763663413343761374834693808426224098809486360363620382824617742227393383650203213924603073106854460977917557058923841332842654955981280024520198495792169717815719104308278714428689285095014803992245659320129781065716770862406088242198331794964438499424905545725929597806849719037380571430107442637350771264325354103467379803060588507049688451568203098241757248627748727932927676598512653700365198933900200352090782778178080659080040918655286162029082612225895083347325560551659802744338463161324976107354455081489697209510666420964782908639726572723037194916799734909016039537349025683270408566273661564319429329881456659911325628425016310218826162101115625876797578828650156788602533517945489836059470827976440648408531109229243079145464883339262421823513607346023952678500601729024105455668155010689753226092202231313149198598342009525803085453846163673762713277260462233697091312566410816806612188462442560030493578702571461911931107856556343596605024850228358150753953094279637223652209192562224436749699890951778723452818411372180228762592539087086824702762565396290358159423230627756929928388489059912932949795749919949796525231113439593248138752226624544289547716580737856339110173594645214522728171230107011712764446644591706927264610040241816105332884219818231324510689492145563463495117770476420918568238895468999086234446932242454726195768166759165290068738162038714398275300732880210567579223059689226461975918077452871119108698391190653875308244373088061084643823371046187418404832086909877726123526754288888524816523866802552679661381383626210959717489799766066048809457911114728195122598114038726967699174778365611150614863054909470514479456639506778311151780753802782588088062015716327936790784916399130455830230668495695359698204549323424083258465089800347758190151175148297649457424802263272710181853114767834118583857893658470192554498643005183299660730347947922462744461682888946502963142184786296441138520882704981823711368352660015068202393978013624599233754303817838058072311580703704318060513270212201682105970149439290262245687277716020149773840810840044283387757162829885518579394980200160582953749785621118794779641222945051565994865018590114001886949204437274093810087687089902730226014429774539869113452551135224357239271696000414845319343319351695373955430890184985451760676247043922287815328936460359151563860478909447046750228885780818643900230972670962536160398201622671260723262913953307683826931620652828575843509672631031691612913328149982446005965919214042407061054347196225507116675654326061177648546289823889741096509728388924962734197238087535537032801806535608531209875832015921678626881191052014346185247267439248804425134218944370214283793200515684855262909693142010680780901066240936714950083653797722212528480648878324452885907384226497306411263468506304053102959399195850211639577020499479634326956687055175333822184445395527658611149035070256841888319716381242239086866085487511861081118667609804105122859143137447666693528293098023465868648096856194360759473309975082457647101086719390810128440896595188349305736361039065210554119532183139228145873268909577320919125069362048034764779740607188285073173638236069773861722857264388505774184994617097969116490400790148959113307484025831558099838477203449057467056196340744872801451646912654920294525355157662917638026068325073525448622021177088089581853938289549245989570796412817440661272346092723952026271635706574698538472127310926488774881760127329969663621517337824416720198938125570239135485495045564467231609345668194617045959921425797154207362496780653071049470305570795637344347406134598386076534389349378345139014208652743273988112986950056584470301274949961924648335304519483998563694692144840728014987752730132435219984640409728756343562608314420163975329626709611892921197801480120703154269982189458032030817776553699801831934375271814993825894298261609185817661953684117601906076293668761532464554785434083841893037527384936834258329299218664550984433587118639244020655866262143320720805341502072212011201096697571457224681137917429315497984386295956363853012241286341060269209961448045530115569269000516791708154348085472991404658080862370408830468310365306136549174135105587326993422874486098968284452613451228886285095662450133565163259478106275561252693609973219121672694157772950495913926357843388912768648013658625502794068039904489478367203429922671795600820031630404394350212312626560414613759392483721332002912493697486970894870217771678663748658134934836397005478556562883696771613353161201440018225041018835434771669581593447096313761432412603918005181267454019819972548924136679332394005687288304859644873139902265544420683953384018131247275415948282592298573573119156537272393549446159164025043994187904335552831643755362264337714041782371574257391232453866235306776770726079687945058887226181242312407157860484798410186096108155034120264316476888920417708987450444631160663305099813328690023888582862359442812309597490796233186640655055616886215530103017514596014968427137306130657541580708209993124342656400428211967805753124293946556885479502006758409638142428371715006309421477562463158724202499548710958647049728753343974389463504800982377861297138353016531128100820627938159868074374216660145749001155171068821766858976728968523467378421882132495242387863963038060515717394820415046403894532881410471375704689815109846199427148383141376115371350391481120164314476117710469937864511545885629278208082170661330712142345321513243351517880589948361667595916859459150914919699968631280692625731621665809300990683484077817910670107234880291659176584235845853241165844229996689609950547529255203105141102656130789099721351036093171019663657570601890627379717855963456308436333544490830779087590496221660227878655115537108891402912054259447199036947724317200287732824730332367544927215372320187224831664710774686917323204689088327154253420053646511739172401945082329594744692524080327922544017735416158592473604279616275528585623168573655764402328222891145705544084465389193157846997487514896036910813476305911298439509603293283765114187674092250343563383943212135997574193553924568771221089899700727407227139473095890099024436546471659583560528577752993183899680868774640552293982171120364518894123871031758660732761671786534370664467528230085727971247931930937560335126478933641597409409463854727328060106652024156707595711280879616832161931373607488127079379049172696354658903724610453263454074076262187320376200730150674747397861600459972581180092804614531831247350493922291750288264129533264597725245912801537299146364670641464927621349440508090937371995351131762014769708017344650236997676977879465885046185654609415221370387340183562100834900768425932450776642491400874590590403054567299552186909067019706426582396722456591338765405194203340099816604993239265695649256310156147419613744960962059322690126092882958914976530015314018587702979408202165723488029186864716441807241366916572881566422014134038252272545787614774596685083775958210448762420569837340364801444670640083369535542741307327830111060413853349240244278046812035121488297823842270994508796020267320001655770037781940117033480871200416333541267462725945012252659474050524641244727700252696670480218990102774506047363644072588800444952603074984779247598378354847908464883895449876150993044518224466060843000447779245843826308970310186459520073536749352705609714727202948196796291229891885337707113703588816343504738608570156328825873104069435988598681974984124728584855640043145684749923075185195557258347893716820013859435253261953706445312687917654726946048626883970046124262526169084492632654854735238394407863696199343597836240292358656423535273068158372370888149869864713787796344031633291120188101474319061739282087069988843167868655777107378562980160526587905514403830919807181141573784489924586319846475178932360019345859800296646264502719089149436744779083350783943363828350070317685123382309885514813721116855716937087278361015967975837144647958139334178264280783127819008132802662678227099323061419533439626198527126572043689710741716894800104324233638685173120563663212221766180472062003997696272024407402349519796535134415446624753857005074357012354852710434909898264882044577811563428648846764198172017259844573598810470401007112586153306208044879902956719931578806228306137680515833359043342094119722698369854845091555384680473571336747177122005007696017457894213255263894205705994874852594656847531250366196615687305074967737447807300648139696135610268617788918341850816035184978366821188020016820111275882823047358019674881429625749503607885901692358499446689696740343222902005577625592571256507887545214312023466656677953877317312183195068076085841169017070448237749303068010140848064259491017976103436458192377166061817353782864141704102012110426462662896879939783827785045361364547003045269759797337806569794459581662331399352679527475618923960825913006260262362748210726639505599263095186304899271222078381560807562070974622365653762394285054631140733398790217108754822122226705707571823525680197082153582086035874806296475226118492675514016762791064445440520542821999202234968274120803113538051725227452466433658878116550388716757334406735736903862208835887587450873682702652047797207266170197749395360793535479910516731238967309651208501425027026559480653946866089177083650117703230644355940270690010661058283066565396408820942715639360659404562591787519128710936105763282083662710299648688059928578232904609885703004634896250997786479870049584215251376059722094020351750229950024258788205885062870785939213486757851962337260829239658588857536910159420954417832975436325070156165720305541732068693317929374875013842552592801974849966398642950786676820106585655791134813995160321330610637611320750759500072208354671733278224964714732349759828203096059708035578397598420858193907146750897719086660284539833192114576356123041448557252128804703096862863670321591639753073546281824805579510385089060600881393253295664643328846642405892723358132356371440683169098434980780470862998988584622339861626484599278320349191171041777077161237058947030528280987137876805825042564714651335847426684936131367727455895110948642251260294728357271905026413887248098928968683294712438609771026615671052822824626618845401440965216955727163651204175329214918172929630493482859453846505362680936427703469219049247694005359704206681046404763017690801610707076624587123210098296322958018493562058796533141310499359124579475203292003323607252847407647596052166581253104548187673924085607729455092128842240553493735583402607912939290225855593697690344232031475819973680623429528016678595364754064329353827886699916927272646247932002743621436194560868428489263657019397224103194789453879552638415787421580746339622246704801531493052740113856088080913644741827141647471396703176819061799422005408581190791119085842327798163304368285930316397667745867519193623103886167487324494887197584593995854682992662576777978330256678052226086225036173615574119101411946662463709544472778541315471591904545972546149521095203090358167140070763146498281439948084773525122163046189679981707051820313417813930251560983970193563260094823542059851371572590523243539002197211526585140781114080840529446383862096057795035636934736067497120455520455878159820095608898172781626639147937928988793484242411965997670784061468906591602147281544059556004472179694256460317106770783255198746247932748466314964335703192314346131082247685676960082544366842616561910446261826143746050426067775408670805329572963121489646149896514926778674466380434434029608533425856117208798264341839352242967526345019275028010430730343001745182606745357491971829309337645912905857174446913662170773024055569385571748694283551361976171438821418070182923678892955497567471446064909977491537065667481432080368148002759676699171857630111289851972461183363716990045631869806511387339203158660075749993829113545741113590588378804158732250526441280672154214965278798077350084057866085766198369282324274792053195146612694262088477913357744053973167178522899602749202838391634010927957181576841558739730357582996767805497421380720438232449279109560239744998379188762857266699277670808242244783800877684966843799931200238514545515951798351286505351755761213908083364104647304540533365954794945804079737559489516420729272333190547056367300123846768190847504282464667060373650925574628141926784678910991907601371396953731196672587331750513875273507494010299088970443959187692509765895141447497745907219071466423186696118489640645356435846309916978038848562188725414117668942593674415141468866449981535663053774988073771955810112849978833658107935798280243370687962284300863466939354275725647153177258958649051721243495482953652945774902438548006164917408264491282670348079506037941199354360488456794162900955140753251438758993019775589980726115140086860647983409000131493685863334184386966022335748367655266202169428984307990324580058317586053032717275456705869001924165559248255265976552850152869738724949256986083314181457979437194458513430096094600768569248086016194713148792877273921083271752926180182835556536843668116876168818220811369058891488535758628196378495526705868286549757232772359423394737399738964170401631831043493224270074343145739068050015229850262525824228263286421014640632797492538413862183703175634019782451638195936826246209790810758825786552555293683837277090466527917007597904112893403751536832990180916933116404740966014244946740529371855395620402987945678446652229374338604573318933864009139390835638917334605637004798153946741382161282503211516262811772467044977968953307485555580654527819273198396263713318023207201279390205132497391838541709638404309143246395916253532009918804741026560967031834933318844627797931589444777102131755002147459165583031623466368013844580008992752124442770745729448075092060102423997168301383738452613293116151532492575366192713250448541620354220183123874963007970037748334948488713081576719052461439896148734456757087874417973349396138303761843456456871639439537766250135222802766907875092042548245248175318412739283176168887073196102956688632656781115591641962648549612567059802159764106963046092843778550180387607557425654050688885513191105140518069816336738039587336594005147113410604771336763770437922677482821642236273569779870961703780214775475675910688196260908445761520163496187078057253552726785853062941262282974764229256471099209198214454771873998606220316943652997071472226874292048590436474198573471154373452426202377844682940496482157104536747066770345944748636061041824549105159369100124782901957728799306689307554795235975692335384229163977411158112631042320146574999092413325565032821308940659441290263097354806683724268259065643252215158819851841711760940410831485528565374910054210875268747196109965542477163996741710033436398683253288658246955319085006864615748948790521635927937388480070713659094381441930437595045448245873606858261144889200622744454753158760873382611985952825129145902792411531160691191284748499794687799624387594691232377709042716467851402330307775709668453546664217368922114037375286123219189339807701998212582112925342148327947998283908044588762524456169449701280586981190463640006414834802504771880120008397761022410158450052179728846076991252689932088295432817760995149113578100086195429629499466234846466160188893720661507736267107954491407488897418362674508631345563241122114484883032379566641431822313430719417247979185164949412328690486227501696108694665122498752085539670787984999600092175725518216639418962617924046512602789959427908774462495084084606910535655208831152834590055439497870282440117020965051945830342582100163296153664059068779009787562334545742424335937631783414733625145289922920184919408025446569628704791548217768657834568443428075116735042235913060520038174901368864544428941135202501634680568598079830070098511817213768036160418474095084410796491248750218517570491721629204951290293746842946940411962775372767514753914281608293771161330608318100657405964593132000708259970995222915093765081584484438145745853519249071088911368021886732457310277999993597487610914968821037447040273283988691262550188567118978327637478120544771931490388583254822050879021011034689436639352505689242945880302999811636622814307338610839058600552920579754906188475467602460660857469868647970486052041288747739849493041483903468148717495189956254343051331259321569159555964458736253325387555726716232353990922425604120418759059507182549005881230212075840915252970970053100845268236304959961118269878922361226499564835073409331677618507787592396259799612333211355801648466262755883510797620607637771597498310514424921795582074882442226899660607915734848744288189432065550747022332459518739667591701096202832315712138151469614251044798701472919228838622571424192320681859105006780662343025429891014994033816477038050920842471568470761744564705412029545183050585915894982748231562717945978479077287045388127742236094905927022574248218063692282697251054447929592067178328766073791384153038152928292208584715713602275052403059878915034078306091416461373355097662227754145411989486795012580252812663938564166475691861107814667866328683913983817489724433563524423384843464908389840442967437765549224705821944288097211854021666858297694616643523982325273162959544511719270745429196192216181231920039327075398948522271459707926495705147025938207077603522226112505758507976457634069836571036444020948035918159551724554085242413057738864732696316815692373377351622820700140434666693781201475316593165427381332667007408059964102316555191013365188814205378925677288834130370381110372304795739969600366291899958335439158196360504676786467502137862989443252502196254898732409222018656348691742297572896466197216142683508077569101188139843576987252381355696185818106436364609323677607223324085393748594298140551012192597101369853045824832838844297158066458338162583744938710867841601917152990514970921101293749919636511486553630492568865055856636953051803053338048671893353522142304795757034851282611484387452087834577084510721135170673827806700348975622791584456759992163961600716995843946785347726305645230153159874157409449831627057939450968793148606506366273191520693385335921158136833623368557960791910467491505777359199434721020889004230543149479832572299404799824679030493274460106670445531145275199818885898548068632083571069755421049403866940461108291953483603737619146948329807708127892649603437836515124520099980864866711057497573942920392120853715359318275845612348058312165545804852422038690145459654219726927905628227929378446152375392627863596785387217327195582500419445550181249651512459651711847601545873810990662039680275459867063258644503350867748793830013715729617546100450964696911780384826448346635636269470213483910996820866078496235021621882229371163648025494009491900776319788146855515490286592783147400666474311925512143706056590297734081332999280688941521419376592556732385060522088600412883865817207117984197002971850942139651203347429153456657570364587129687080212439814830644523186421914431020878962692738364474031006948492855606282176560854019563876952405609502787386939738809081541035276376520261146704690167236764921484572630098805360965842720256347080201998021758731147258301260784501232569078236483583068135343028804827455252678581729847119243571735565569538590516899244936039146708417924861646518385024735448905951948001415365201329936460208082390907627458205493665296774876797873008739115015312171550870958182291295839214999725790568766861044628374109407789322291116678349084309450630706897154200206881077092112014892995981952788014779733371642205022161709961751647688322429500469450886932330059761616982419544407732832449970550632057192571179098171138054166617406791771162833568356158831927986426684904330739467524173867418330191595026463877427156496215261501080457275175442830321976861963298093969091498287217155583817910412054554917643298351421071390886965988610453494567647779842466127624114095060429229750676898512519282405475001835739648178952100286160247946255533557019188322688608365735225059122396666965545587289929338372251310445825754178881394336989797900933793503352175278545697998142308745944547446460615299271770878293065834280376059543676812633246660986779738080248488915911472960044790391949929321019193199596799581031808559613788976027994652461027391827217087084783286669882973299988102355679758667420435107340803452102149498600760409239997002436310697975622956859619115133522131036818299880184338483541864570293481602804999663452210801445942526608511645307843231905490171349683679197987264275541825010188424539223113753069874760302342984823375172268484607349717922272835622768126717208047866113411174231979575505575720378094534610414099093998467407278946848449951154185030268428712501191150871366579010449957268687136487346258459062022579480302049280794885676800818274741874741432611649688647147212597256760921541354415173603641376280302810337179431356874270832506103028392099052013274678596355357244700043268320980106579349298623334363377864932419094829552486552505135223560070421929106943725639475155801495297589828416199241910976727374135045576421814088726970966725719122965348192179762286051257433215364892710138011386000478579917688288286143848564600050802239026088885391767526854788715543193845511939808785475118189919865451230289025751204078430480864048684181716904919652691742733011128402103831521411346470542875509147485180662683333693033980454989248558898442067433035851157201412970371733550885590720396536862101441511042709610996691870993128121168953914512218381685873907158573508137120774746549918253401219626520646755125961630116260251361725347399847770133469184445780149427519679636049221777352573216291785902479889166778603533014890765322177302106027960031314661106642872889726935013707589246855119070348582112809154398946558858844707607201030367415675335926650651682366173859694787938999679113694569908462994644725430741849530173988747846734840765708732320270243101629523529981751071797298736759635131350439794916320375693938686874142510982623068145543235443986566641754954393734852984846506170169510424046078821061488718331074415018176465721111248470112807206298653586525190149045939888689172758777732295170196513369933422191005601364722857109860917901319121304499673929668116988265445789229653876648581946564479298452181118882952149336875898092613781494460552792429391246756503744900901498579254008536600263534188639810949647691589050423505441097867405951520173601669455361923181244206003162563552130576321268445381642965066478200047241177267441288760197650088871331902724165736340681296220336451259945592309328422328488573554135541707167546394929212569994749998481529289838364111868414836232999437776045105219788384207378300145600513652703933289442378380319098367261211669069637480111340146213065229791555054888139786999416591779629620638915655341646487658478940675835836902533179791592170231524122189402521556501753749608259223490200483987770131947901399093477404078869788591851778905837839764252217162031264479643633703308733047290302594829401286470560907808246688159421266111717567771016493803595112006489576477523157701526121635107168823424142519564100101288566451094314968265221439248634111173105770966729055793873018062531164369306302844189761007038514928860071100933301185688419078391005088405525932928988528291498332280762037952190583257413581263365175259278849081411764315476417049274547851657789938964646970819618516932317568936059436266420170003221689287577868389925376149586052964706585051148190397362036165554393879272043665151581055184480781994669039002074009021240157367181321569831119064328535622317821666216074643924315035762453073955388596983694816411519535245771931870993092943480017816601125555108653004541207407039182134020102062360169235977875475633649874336557574949665603409353706265647460408752117239276160898453303332004190268054234700309351401752589246013217129976474815016759471802687766537430835589755760230516213197216486913499270898283218832853814080463658744447168394224001489467239037737710379262366779145183244065781563518895407127355882748697746060598291253940556396543037554373304949168516917959531591286926490574017838267879185559617543860780248680777536843705943117485482994235902560287404197316951265149536653583137516342682125914301290752500873361498216133344514353686949500108169951168209875912454180731295214541455531059559636978010096026278740800691013432255874276061413021567616244893689670461393487861678627907572748730870993823228256482053955008260461658512477155719768684304627347766069079307024572419497337769976853099928185963861102036290074090654373127126109554666170457961081040475403714733583577336899611457944676092599325714836463777920381723075264586303810020164440682643479438891916471195920519273409872003495917783010276338456767084268807948466603243486079767863777370863475587998966686788926979890733507203720868150801041067173611870215888890227457817852376674290350249152031256649074091074009204244515931893053567858981293931668917130438392274630793791091967291512836418352438622916231129147956976664487926431841304902007874114396837725859843054579477259477336297886194663807253353872437481829539734468423522696861824662096240824037582737422881897883915609378060288454168426343100184336233417807433380352085497181466800319255608139874887181472275923428401077763529551274104564379453325529896266025586473219390152061249628045581929369665756175649596764860073017837652104734504769219302121513344881864945507356124217977032094860840126250323804091475614927544457145624901651126671412724494887393890062076871815552390967809512364692914193376257184488648056984980428267705312173795149683277973502142490994384304792900133758642599188014429386524291576425379072719781700982647116539931318083224257592708607457651750293879799427846966153308939046119262001709218622047475600777863509336254536833136526527131370875805213663041704895568313609010512316941947415125693848321690029096179559909004824199488722100420672121770139894592217953084136422988643125980788185091474640814086383656110167585029927167007779974021801801904280243213499557774100218211982777468846148175183890683548929872817130116950274018630449651067475632452897459050120989588267859444685906878156086681260034748109553833115145260315102661483400925907459049503155683528107313468067955273195338402177418627280796039184051591808791949036347267706622406689987208265600198210695430219075217809600683075738608199757983492805079775826120731769601994190684063704202648038907719494217044787140903970983591761920243758527922000597301462154480205390754446729423007160411790619277591705486199341547574855629166255964171225719423363103632383530677086276466240925421239140156396191930207009295753007436283221991718833893096488115434860152443786280717867886444491698494440737925253992291780419885288686669515033388195886487465475761107393843544969978080628084902005279941248451295116945970863250370725401904198367910024100471606622312873287577223884499387160764185011844881589652039167803329330554347754915070784388104475832853278020064625903951091317669655765842772103087109589824349613951977227155496131013734955752461786155190904577851704577078201273353929935624152625061063275144939844281812732241228313480146682202475247228829837537934538582052752579000286279955067043291418224719989701553397598714539484768377823162658991149599335848558465035608400553115934448799196082366757000930444765195730279791043011899080944220936242437903306163100227610096596822750118350634531784962526084224320208578225885106274146858544033328201206201756705479657619188897727389927166929722184861671374552855987080588083673233340276336601035872098180429175437656263443279523451701482267510719486920232304019133628915969596008836863077290949391854795616544678990720782675980259019518243916189775300725888477106965160723204668951487125004153156351525340598646484519864156102039708005869138714571052466119072379106711889222870847475728761411427830686779637855221492208986990849608445983420826291018468186936623620623530454301552165221272334190758122267731643411487468845641145559804400287228231094152190874819538566444388831937155446954344285175870300750357804088494031436363026563339918994441753521892345059345209309097998826589030985549101417191922192798497485392900235465967265515546376478201823153164055637840973486617552054017817256405141243461931749573720162062872764296848814182657036789817774395663398136302568789121686226762631251700044533349072523844264615614504091178075789467260916814299021228806461073787600059845148277174080615293405261422966861416067142989262470327062149154587099883323054938602799450066278703135597472322528125700947461900633262020264741244262730032218988598036893890251418641798571908283819593477227465774127497618854640665966924682615978361863506449870159319372273699670710460799186862064325576626991666628963419830328598295443203759421322177699388409089326252879136014190050161271521376120126646431655036505800617853048222327631425863714157817799704255192498668730341896959222939596201975456761182981627799220934536894489503347359991741998599408128336968083133700341405058002633326000534136600473942578090259630997885230064694212783592757316636666473645735701749145212732182895124552359340034333689656829942182611930755941835390415238585372524095963493328878301178573480967855010150067385986385587226897542040761815210160828892732192007613145218530809848738801213622384391524921735575207619509646993037414160908635295952976703648868720582894328951776720127983261928697250442190694634490004468851594367689988184263821880481487291369782197174719541160943472728500432575892670542542681535812233052609932581047889262393872141560706280066273273612966697713722753260082534856008525324973807833065312076325378007957404025026615519103177955893024965143694033809334151974930001463966895527885253107300156180503911506537828819237631170880665127488163836162378852098565415489383447150344908280011484824975589020433077196203373553954630434587028063943748680375924114616489522290650289937817443503985525192824175743777637214750224107752535346356801393170146605181158979984979949760275206481020322902167624955966657236045138716996924038704944254460416124490010274279871274315919379859322825797670288490027895470795576314893210252791977470628125141847729748035091699439504603408148912086099722712604774590956918465874437530513208325495373983965915499770770645343796404134832798648148697923584390686347940309863490254366487081028884219085369732213330317412771814841454536576846557612774931077221646238623985081982473634338094465442079772424190794986247842980312148018852770376478328956180268076383700428797330909241484755917896424243471850354235716032530824861336017060048856493894172364497429545850667808137991826606900114008115842433259103360280567718081026704477758890726818148127794846476975822119850491334410897542424019732305916039594073059765103992563064609225890336905873106345235581286912477193437284008292547367320062974179210461027635444668974712304929067435997028364735273694514682580633594864177849102896178660867909218241876360020484821990020027810735957096817762129445715389904976179507424088932249089076213813144306700205912597324306663010991050171045566597744054362959576524901534597397421828970791424100073736125277320539666187775533363414347137996157923419604442458199202894239553541774302755422507293661318977425890904619988665880076845439141549890345295379516032732770051474074837758702584390356902402705052799197902575322335045536677344200972013733871688499487225895697320471245497187379674871473306398421366063027756852539796505809192780824288639651838157066796445050312463417949592451112995192864085502576651550495178387970750915356938789005573678065512467879203206427065748454201718650625008929852113579347451556602015762021773918030124313883747228758850382342535779091096363464508685122219963959654088781393779652523984499865734029870402311682463455223797464924726154001101173228833363672831519528211414590875685712755891149426480544855989919336459654650450841474161944175144856991780461207880641757079203608271498238703419582592242321346182825444661647033745905235656405493048855056064653537371603175041668335556654729415910260425711639976043901014275290513849859558247313835977379909796582255037163983849865420537801860153227689826240454976474770273337999386462732324963575242694280179044317420627272462251606752211845452905515856784706265582750414257386547334913484392348895922676481859646504656087137733380006291740336186196482933191582823591037308438422097699007365300748071797304188715149731378774255073078076742320088105873115406826172805137132461622746937058997468427097481169285914336865528009106582783919486607335988112088185355770040884923251908735592740490725211851565232999560836357739070963359282564254424437058684363286791972880196363864652813373035455796102240188538292291803852295046435298704783179643621065829054172110756598936329103349519647051234406374957905852468922139205905601791566609009457213593494470430167576300381862653713515051651346900200387291999278505113346287122068636841943790486840628738308336315327231284097528854587410524697919006264343389900492238884083916009763560481793953135479202814237476605447993291638048814358583259924191508329813261543412223327333058704186944584545173267667998196832410692383846724623323390331407360110006753199793657349453025931636665553354679078407814966943330568209000911803776222468212802779794598597061244232408152804024379460384560869462075585993444422214177845828320466412150629344268900835556775985713796580418690833479608756106061470819948022592392520884416947199192095595569023322321129449135359101000787254291891480308414199720419218193673707037308899644769232542005411318794940653957301039271898075258420916425170273313237383325352795519413815329007715171097946436893000111913907794518425823090683263182400864527207414555153013833336230554658651538671207502173576084885950028808803091100337570995930710561424724361203366674338556655753668358052436300990982008589783791139798327965058805958860928446934355560048969913272308971523861074675978534679406882102266454563272722943526777782036277221957300440037124245190331970169380290717855494989373525308302839767853434107329702177856106483759627869675685082813146733224770214492484468332878116738606808668679004268562114321325576359840145117613133359448903040159975563939271556463539087475340455332495510466023144835241630279169253251782457022983367638605583972545910238447430670457219625415482203472498471384067946011404500856642278053460126092966510778033917137733591777258572978016237998274119932080181614070103073606060464232360616640501184877199245894384258375946942886995452367037569165495305947545257637034055167381588495154094699856984277055434935758329170292693566329242986946383649210844450881810952976825262600262882336143609141854964618523905507048884559432463614357782203199454904551117564383708714297196513794286556642880012250536323605604833205288380872169925180343642572806899953792839904638978996845965205332355761007116820427268242465365652476003370145180822088791392763616091937672555457323295961484689441960730765504455349103743858841223027271300975719603391726001200267997406030144489645270885024136413779068781144852035923198130956011735706686912815066295222698723168045317565051489278221507540093615385212090021886726270372232035415532950452058154082725895611115478041754812398270029309138457415355992008606873050911181545460109641743189592549810971472407156024332963598375242147433508086776104105816880905951022532108216846665805894990800721904477211354991790291734893752410907122273418285021967040166456645424034276590007587696006132819883927087540246150363087923534970985121272616180087703499297915730197137652005424554349016241783931320138927853415507821909842876580447001898804242805793351832043124597468259276763412172644063881627511789755185191228788525283399559985278344711259931136177452798411588307782856137819661391457175904802451273394365117637236533638379405161491205107454637787648773756484584661319665071722236632303709732685021531583022261482515877389368982608906763178832584626405840830440493243542175950006454969814063793723113259882826598001219711842112392422238514889621154452324885816608390436490558170527133876193526724218143723048103091850839661620241213560650412049164656601095893894227825942274931616699827075994880513950074175163390535740174495280193590748061122465286078706572239479661606609835213309802503180360576570410057011146866716744706945157776320520119054271322676507392469616119904745595139270255546588886309698667522377052360090298316034443502215646691308951153616004652945994653410606609086880658018703274721148998501065974254477791910231876405666250014291073017836371282299753138969929062886995454681267010142820241315850928253136596779647013661398349473229493104991862206970633002535820363810751950267292983580779533652579650518833659204498123808106202332599823822177044196256145359795308438319680927484686844626374054107453870257660040255150227632236684705093760288313814739479047193022252438347140402921897113923781702895861773599129652186820143582966457060199607802422474040417349760117297347850210610269516924720484914256215459404967148928010595732093596476859559912212114718923217531215541324302553045641678957805961842173898606660785797246746307098610414823982947849788945619206045637285128400221549063065173262847049558773758060126200385080987327970692124856950666773729233565094008470268596480540372813800403922723301398546707156986016649833169387958174868235134130360164750503392772268292788032852045225991601844198863601885899023319288617197269818454605213339877258018131460445782003762202244290844046898185505549202726653432009084232928874418416942552226931136813331790587601228845161415252267501999159659929630758776088172734206627477454083358994648094671957191002310614486752204116650402994250511985106865031739432395822559330951209420713659136521666539965805824167470022051088250369018389491658792066358307722344668367895991822729844626780046368779608117512876515258944811147436977346174525713461183834871587062354216386765086361000867246151451503376359478650812538887887118382062002437881955544715731104595685441244165587756785094590541203508867445321303248841553666412009977543010001197599754682448306944286671149407453027121885423287193650132489377799679145356636699611933821627441576489412429451551480399903935271912998727201166144488509508835482305289747936511919622224649998473214788674848676823150680322707786392123160843570102185729519678974285720712476347806055190070880331766775980615112563466229828759977071554236088212543789162351897738555668294709602967409881152556461703307724908463770367901251882260123948388974111521764303467795810376968151558975702757184661585592226829428624614038754615310094354181183387774934792258867914173838102914842725223692706046034932975906455007063537833526983388139777822884312264943403639927892903887023341712054797881345530770469983899207489505319741475190609368490491804502475110798373238786125680635151491961778585719401244940496693911663989362106758088871076079245454420803941970247255479352218653218095207083469876921203474882443885937265263484508757702592429263638422986434095257531335904277669980787008246263357544367125773095065776114594032039973504666452131910922867434787381601340149237524991982728168461266301301868417439978530500108379380540606486462700805670557780737683043886330049499454987124147241868460934949472289994527896046970108283257340271317470840703705674604914907770280797262359329288824434559179693828655421286961246016244406806462387089699444305487661954765115021909054945527116203529901924637994138836164946723901919958003639349281820116408112225076771406062353496130291196703357011217119627821995560417539520613809710808851917939131376232051945668333658429567291442921159542044527433635342201988363252265133593327213593975973161566102098334310494052048449139299207673615643428402318338924355060028616235359631504890087571760624074431617978830387316250514112372116631412356583641599580018543624428460044358900619807493889198783326704203441896939655220926871993550875641301262240301139273472920562650822190882164139510434884646470040776032849873176099406678824936481006004814848796485761418640179383214543055911632909884703729212479201452635561691329795565643515620109981605201221458792998955846997015098555575321116970848670925293107427895531971803575113751913087759803674858334368200707425945394438329424109329408504956908815550288902266880361494793666493520719363120496918122787791627389891956039820397326643510424332587022053109474900460212833794653210980466322523713489196970226147907050571613102610016672006044450933416487979832731207375724295970250695564536366221327416507709956685673215498313775570387876442561086408820891194897346346903387405418581899575033045830340389593816267552612731266663236136110299305974558692892304059900592707694855258062525025580221874487040119587114242225657488855771557147473397925732644551325584014779482187972924214077680936956998126307935595978449390957578599897373868105055862476836924123562602721780109495574176092195256764038937454153438712504099742364445884043599356891062538564219249941186010908849430623406615064979327415524478727115976846474765268786166016185156574399636837422574008027570494409510495976961840895102349243280613056592411110625217063357785142691852546054235855993388803114452278829739883008825998873848183640957637297202242311500475860124496208794964520138435845789755145091459130054866654950918425107420522261476700790559293580730415444680372059035928059125967668642986218246097314485794755640148816650771578550891592527876470817350227870714204786911152876146054651903814820455271051413544009187654769727103537261683032435002737926717216010168098360643893832727585060014976470424624782214986651177449442578070309482284926672675515645700584809769728367030209152664746715355765828667204597185636093702771732706426861738586507670879254118362044071810526502115148781789366203221948747776019756057252441519190144532534533708105063816761215835217165637098678094771012222874090162127682548574127918622622663523140406268790679884752518962508080630698576313940554880383700141254585250893211051603886552207236692892394444881913364159413663484691736538270357331563306199556541599989362471942927222253269232269845192957174288380025964402200569658124722615052825110549707982556610196348162652857314253714070792292260698908050689129985887347162108797663569476712346887044811394620347779047764166677437921029244057418218628494991948604365377862764153337175540535358356899088463433518664923076384673010696740380576686981961505518805718976074354511252259446388763177179448890567887864074058264579193904127257626013667687528170126776576322345448910198159085907172942345874284053157853449864993261592799550954428089429515288312659479772133870207855312665532366344111706776250016714938242135446268141113374463216766367100304979741334324234336072645421948022488506540757911684694819524156885539822927074158639126449049804945557023858673927467749216601875997782562502275377620763322730941057549312129289812854246441840197446635297421192213591608510157489087418701849016658210459362546124480246492861285542800973117753930612567704795582516832362020437526196572809119639796848863909893533187643045952621433549375320164923108229757226695875181119757796244775913418185164660010107507333935446673933293234015476769512588318907144911203812829220695887423794640804990307990849526111184021455759307608731827084175909064696452132783944513265837833633356964799570636973411904260825601344282863124016006141183372783890008454304125363154133227616435924890118925507095423952546249721159234789772188832924453192100164743636688880953866274562206163390672932058644812935403443840570170224687762814383528960492234701356878344724200794961930716591232014729335268270718702563521207547190353390918070057667540941214439578420532616910002827597814392737915186201104824318528743279119583166553092371882713921571609243108510812936896413185888214640108845223580790291690113648751687725876090717167850387850937532749666596388468105324497941253679056395067418245321650081313145784801651515631274412031243216118640766599557054861977265043403218960144120453224590490512150305138521253449662841354065738684306362819476055419338988219071419766783393596286955621085351634963728022255249775705966840596027203143049120089723458321379555543469009888715888098260108711846785816328894873940454095690464974386475888807463931864340752825978120963234027770604466557326699272085031670117503790804865033666973723950935287042065686422711823885547475432744124643405197268969135187574540092220852055910171501805919087896549411722209156864931775584656741858401307544589318769712774510642255670484239721700067446071803309124459171849232486578841023496383651276706885220769288283724649618602659938346587923589069673552980455277538217937980710427692819462620876064402263275988858311212820201364359915739822277581440795821327467354411382303575118658368815490164095116594823445403441695173207809725704653354983138464091675743070618523234080613122700536283706147380270468023583819744538102206023928795432723195627422787675837255663671221837369735986921694830342657513077083567192860570712521834850856099676109346700978878401772463718941056709694701124726497544129463354881182307912291760142220994729563626629199099988309697989844015443547531145208999088589339984502012507578639548749999747370227998752135700540537087235705917597896038878646509843016720872087438926358056530244350371917456821046107039468677982826301382941008122607172185771153955440738215476256298370267915679142781458070602331997911689950505751587826655760627105058722651919460908805932388834750627111861257115932004169162321300447802595653575373156586272734880293115736223487532408740172979576699704977332667772038944228364239782475672610775872651372004669032424981324750839378690577158029062486516701828561248449820577755638382796502486806442003808797717229751523642708089870547395680987797098019732005429286728952427652329458675444516631606336767053950007063399326911587984279904966681527363490538960663640792377102537890847679080362785209165743142238739723677138266681385549571528027088357703474647112703900550983430782422665332995233291280813411230833357209214460489222322215982604672096922116913189492991307198398198671615060630221196906051236130542415304137168812619404570178808305284229205494617025754628684540943860043634290989220707682111410604399885798711309408499982319478075730064587733298282756039989777969081871226584705995122193974252724618847344231389147031032468936119365519192327430707583874170006402712456869080130947890247413388371838895963732846366827577030465392371144258501421678955387416082087148274287394459323507159836157832303280212611813562900491141243716169296227487803220904143551630568348727011642145665336663925650159914043425289041859751492842832421209547726945988098914229530493708117306772041151251435949577041509952491467837968328370910491187433769607160230877256479770442061478252098527779020536726674183968399043115365088663757923358160073253055607707872943989872214111555495791958845083208734533581629662634711093095293144038174916697392113487099820336665858283386446502314656128349729716173126539553030770299419032809022120111683110745554265318403377505627954948700215179550999975422595985491757483532787648541808445594793449655931199668757446623602359588458925376374700129602202002324775736664961859681205568720098934670394624382215756805696129221852593263589496455486796748872315701698320429712232470774592768256495712640855756935410208845576144407176612995439163224914660252978535854961509672493758546118826354043637414642882231689434355440220733281044129252028177596226291829038986505877434145065863611916557408755032841960419069875195060395723413181725207574702126179289813637579749400144049268269781306941470790307441563471990100173006818517484689795719745362377872318948653305127244644480744415596493778868965061433984504597991186897493664562498394693109205606756446063914270578917351599156304803078497964177939571132939143053586658587628194134571316102294925968434986578147202990804235062906979253851032674676764241235397503978801496411417676777811426230328445115969274523754552990428362224750731817791107694710489657540200845898546829520426028274457959062495742717139674351080220061038362187366828144347819403482083063777230936711209225344737824225340651041559951942868558052056843678208432345543652879014800635295416814406370237563316338568831930902607041419713565109915323989389296291969465514262159945157707795009996534925521483127610411552723989686355260635983174474549532373797933892651190695043841170178746659412676422736848189919640435210928921128031809283176457820901049704282595978450855588929561811862952287434573415061433375297985140937797736205824376596119242347771378775708094539557546654595654503708367317516086648444026066560728354450281108886153301569951263088113739058913363712887377004360747600584925935060285922464558395883985593482091170054605526033996176395597226739115845478547911143564875650244632769800181490893156685369176664144417286977896371820096873822401032112231190922505871071809042056013368972649682417485699862899667036627879922131007561548752498384362001463712531398531535252376212642704475300592929314153540179096930085382663566998958878439891698465078002893233237235154835048754136325885622165162202622230301243861870364794162790091745218089803508573036914501230208685291617105979088929369474968807887486602958121407002088215504338383081504531972299744089408769069679820128880819000517134704337496366924949535750132123376202388036913755000929582443014395050084217341783896932311120451082324788634580256246484759603106239878683030271836838515356640440475741179530107276701632698111087358114045785054923671341094056567957590511296885427430985772698513905309713840746967898396829907015398948097066562759216894374901178153276130431619394083895298250860213517404513497179585715216852164838531872196476625305420488794517908614239638056173990900119440686402887359106032848117453211796195182011020313125955375851783205259210440595442933707596600361169884804579268801009927544926224362489757356608022089399333604751937967698361818458803379773239920264290252030414412762977865528979580137217466745923463682451435987023284243991179569443791227456276230603373395153422527217266288522956536380479017381493105362808622666108456400861347447126453030718308553859874629094035654488640644246157837207600200749513675112302954478873365720865100456404647679006633845182066896178897037569701020581509888862127959159722579543238843349801846817579601982496965751281575547324882612105817349906750209279135521329024307332483530179084266707190422262067329090653607423241622613341381286126992923262640254176352540842218512273426836736745404528006358494077523759693702703705244535054133050857059200910792480914982745483823789798057683567306074377771763661603798933933648860345459418142855970712992656247008196164317230557197877672858962368126345443828624736007581149948796702801370804051545905009643874776267172874235220570932098819934827632414739566786673805011958482891666068014897639933224677128785481259561445253097136919656796495848350691708709729128002442719123895011893586384349605612096907873963604972247801212980570730059497751750502979096013822925243349652122231655486732206646552636931060136832376788791354745226928224459972232998429360887409850948190389535605236137832691325155605206647229886490429390840514108283103491711683905095186592586776269117507352536975514097619743209467633944338112215385997045159376773484137849069881125561789241876839839500414701328898576943065061994120180217041153854462892816033018228019970357639985996495011678582572319931004131366192741495833549173544397291121799843614135858363661061103983709789769412578856154517185262076924624876217271380199014921305809853421440453914191843905762292719140452508806034013203627044059034325947668257739632465552012109715060408025734862107365978972431296514158937736562936117365156033742663163863275529429579520112771322969760105356539773186058345874774942586473350120768784220714471855459904310009581556968138933840532125300294650883457629520591899287476333882852430616682433245980196715226579015558776642412514821880508644295736017637098955418364130413454436277397106108015200839933336770764429115829156344780646582076929379492098209389712271609979053281453842935600006336425298141842706118804942252916684009057329557271575998773828030007063028252920485941296705504858674058249769588257000190676824867143582903291435337768980768093286142202364122184208078446183105190998008589268735406010763051944254987944526118569785019685391290164952649051284631474487541532270286035490219896839027270037815610570360945838246168272257496300480310698226294345590118856857042617542860385380507595239710240723449804922886485564361941154525111664809927300814626437702968383159624176725648979810515333523970914838493297714596024787033131705800627902681890583543327731436999652236002296511829876689990580256076897820028279086184100284828846975627589777315220098514000418924083778145303431808482311601243630236295347764303574778233102430066683633716309253497435425091685268849863919867777412512797065848795893555679630735081485425024733768065418801860279058500070882967962748880002196164117633443239961502890400106978043497650298071988656696723502924166819754846806522344180373227977218944376290491385342844802321967008342924571651796027885371106838032634717702160732815413407248852673191628997664267976015582876312552436038540357353404272174260201103582465363590631357346273343416205565323628354682160177007565129539145947853533559780092667555235881849964552404304287732519762329081908682349837871249255224369797901614140442891093643860099576131666837822683874606422284093898865624623018255554136282670573268432772044374368982153053894366546422163646141962916475901631152845955583567161109886780133478080076580333365925741089568546101198677421519405086172821196763097825808729355970200094442255715205260466259850912469564612780508657094764096526083491775408120911465803988086835139839796508176704763052302244738804681987591460600118348122013508659129005496987223582483626034604364537357580433688173625925487775720738328181357274969612532278368919602143955403559238366414746850103140177972088740583895761230542879159847273034904339722557516947364871703152979451280922320499529397968159448615044063958206063921740040694990687093061171038531464572047462898888279167415106514206902201012175482730032930567021404829209434612715609252046818030472119969686882629141444788480505283352656441987008611060394454150814160097797725401237398387831108994667969420748140581065282119351651063377551086915025200130230845304654542055824629549290381486835882841601505998001432927322166470578404040495481247187051252837482050933560092629978024729967577807995729687037831315810496934346130521296847396207259478465281160018191312651589322722383615390749611769550787482110996110484947797988283633834321757425601597955691473469367722246944369973075478530217552023614631041402886201665505668765428181153420071986501847617232025809811504572207263030862582243648378685378698470358443731154101019856508499608338008369568019136496388358924538436060400414620827192037539814243409621972478993021166155189216362800124641411293362580871940254856228989296694692315608302392317494485986412897606918580445184170564882184938931991636562431106896074720906971819562058409147571436580865883309486796951610953423290228436217153073601178744031586271187873858506370260386223895137074053116133486945978854414491785147427778486557492209897569575899909187081466073820068225944703682750638481370898640126513750872333005534836710849412924154460195922557002277881009818442117529573838903536037616604848597788374936233603913181755943577909219199181610032884897441799865540482056379177970875719102300642228728940859145056214538911243124183246290088296141877815335838126765496648702056270900262253895756777846805166565930977803682914011248190684335463272658410682834012650506795532093726331680571326567445627140514130384244336071538938994869469318397329201510089200680874743074504458388341001288575233386230625362558300919669404978529850156894331367223058738141682885802633391947559610061982059910862642784943056589974921098328055896147268519970147835410742611815160121584128116225060080116610743020583355843241874561019935006536286839292876673718545293880097791405406190715874151305337269901573397018376948923578165348876192333524128135698951452512536703637054324890332992328535691153643481493212998180883288905960810427163019975188761741925093436417361107736359175680009484047586476992472628140912262151430574972597996466788366087864292969485462462195129375959176023425176024430569529089480627051326653693639184163952924542885912605831529871162572761444514286655180001599384823615462811920336327811616393175926822933779484713821810447307188097461632561103724544024750424299084989737091307978425916385074066625097448335117203907385696822913457582017498701215220793109384226071611037667015016913670850896477041884241011849391455785012036850159406184847367365799659750221023155086900053010290486036228418461327447205178388711583069035035016946390735562845573783730303690238374924209779342248227887071370398257730676642026088250460895849922540173211278119883683932094039337167528597800833531156978231352128052409160019635657701840238488500993138786413551593376888530656440533962743173349591640027602948270552081302356228534221066967455531189394594382844407240974816643914969547383027017979436111974737360772078481310030567169934332110120395313642657349321082935998339427770547038885009868498298517651390522522187597728094227555754142649158159523959163163838105843371596073898961359973693765731826161618911295411144272245354197208995906818621218258632128954834428095013906805875970043465049710978962107618650241924171829712857277760977816468821733672353942361553704329242762490912467219535024024718167000458491416432870326065926039331601176376215500550607437694322663427818810856724449499295540399568892375967908911398682011262603646447515259725322268931890696683500831899527151410075675383928344561740827074184518956865609680413039696416799486293738767349365856020286124168711294067765508925427033916225249437779991912132979458466658069409251008179072738903965687382706874282531594280773819783124994013245406480805989942428892359985999639031086240335120230085659572464202147609446462092286309090486683375095031837369897742905911258775131140684644615413864629284856998740687910959620933216226079469463347808751373472572591126951750464778457294182946349936472518789589927548603689948995238734636520357185124271898572313319079474606741881513994289580922348083303611161118419458385585474839108857054186829690358508753356473829306017855815189034423070504432171451610289780431497400506628319433902384451809232332660345579256994699363410326433669908781431028745216397089927977657742985414536436994137989026681612766480095345643144476374451668064901244035395820044896347747984907651844412331878412330373825138839078497189059952472107630039869452298955696449816853190580801280951594791637920817600628448011685879115876593981744719820814435685667875183239964781902803863578984172183459275832736242684441483525698842655218841939260814266638847725925042699344530799293901102747638565423646948793992832077968659776810529715480692353589021240896051371757826326829990293525884800564584665594099904662204464983801881558794207225421144493270550071360576106129991534654306904099044206802475067697789801278194429992446529838791930036943624803551635783787092546387612182492585048863450116192418867143268455053027944702741327341346181251110002393196821314578080595774487538520546170689494712006658266014841358180945739321296359035556510796486034296996747778997735056235682071956736065416596595792646442481577150303070359261113054501161288312915317967523834837864356592355463462927123236356503965262756729904229780861708788084259455898371095288136732470313083247587145238322676491818702881810579637951389584522048884251609898024031363227047421346839381331320024185446257472460067265899752648163124696345059763014408271331711797020481909028114740096933637660506690968228975564931240769745370872201652275267864095126102044190458376607008679342756040559452935134733084315127990586099199691020289776727073936968056514904913075481945069483569832976699788798789991325790118034825643763902886237303425625122261990848063228489789919254731737888222982763136999568159216982078954293195437936646866126176043810971147855285875348451710480409802252023351280732112944014248305805021410331753104877454978837675515823584004394485193601410171441463703029256208735895083610998342140053790076639068448000033875429555047763165870036775473462733805009503483042404961830423705974534939779181861183356918699577361630656750215916453681432970002384480572684630136995018055358060353339110962000536923755768055860776885095458945755515263579902362285643989921841511924443308491287035541824424633310177911717141429862165373371709385146826828954717522535488058800912432785710115116138350695287856506847541733887061310045174508475855178594649860697265090036681688946669582243349493155267211657468893748732047902306836790849467911446938138905664023081747471183565045719163854275503792988573273347172393446555208566112695804131750941343340959292366483527742288491740244128985162414717087937334470369001695548448135646464019743681018966021966684823371394439601353114579274444621314721779367689865188189134726252915529962533296009838173168020724540844938829434640698833166705387917077526897453936533626654509379844784085653583846938605138949230879683524555742588428280539080668833777990135438238832731494833609927034092871923158171103723243489499175630150474446755889432284376616534826661990510230628643596010677208636585361493288836615384326097357192166081748667133097497939264235396430934280433423888837679262956298823714589606637530585562398692933856450571511483124081081691346305181743789536119433143450241081939760368336635942063172003825832356183366083204564507358342472565212119666260467936035655753053455537099695210726427822763268216919949589756351157119439522913557312422135430591863335690921573069267217020251631840575958901114695953892475303569483568001884495972652470848176386346472864945316965353999478417734786894173875280319737892226095668278603798855432619818885696997649045194047233692116278601727954397159504442295578994472287762415727702737806600489624720708354813161575737437201861979827468271643533226837210478884352590010484340019906821802581890156633039147523348990349114160298978930421059370343982270936909477537404917882010935408309335583631657099956660489630738823948679219535319563040088751301098655825616795094780700376295295613979753716306679306244294201857763266753344471518866327476349265119389897507167030538795500671595681237105290428455548393054523850931340884090632027460975799669435671939109698155957895347634519407807280183420163260735572008165962295304884495234246133973188622842899755881358230717482003490662375338571817420516468282189952494363874421343745092394661567974847922869653999860033017939687919015934482418408671279171077040732543465283493171752304472507741422780819426413370598489911101166045982609321748071380829229102445843498033520908501209703292933188626492406661096557522124816026909120278719177389308075808396581778158771180556573924576600252069428183266932724034625090996429938845471269785681625867565570789420105912843375149421849499127288856539932757942542051967699563875620668954281112833661734660123323840461830013770712070885051636604367905903122808917033218876304468748409453483719047313497259481049900472298389345992254534284862382403415450844830553786699013979182420720293049993188774319759872602848872025577647752262416741387850471586979193188351237550922784965018528582271336576486703123614855278008277409586782699065638713951886012293078142363103205718954005672219744167357595404111296266982196027285683422865110193086380244850743323841864936649263559507607795486453528773416492417309147024386690719484436843880061720939956080315297299085636436586865814584328928038084663780348227610713192608343571353928638331191969065430092607856108384153622197989603980081891916524086538436093645151929769512854317714454061808574715397404141574676240103199410949458593505080861209642293676408459464411684126656982203788607934818158736382502817846905622253421687278776833640644930804018535251222237544024512697189378796225277964877312407369985235299252158021639938013990961679253590416884554949978707611819176796231353246078896241089554203217834929234091033480410440675452469254182572061806625712021010032574497097246584023586506366127563894995244882420723458547830962707291998148991393862139977775557950859979315811658178281310074388970876163439869211729594086249579172313844838959024414313058017515151356145525443386882470513654153188417473757494473379743047414928618320536650996743547617630049198942633307450056946333834768709184298352723940845066375905962190861889471447386180473824177481571412471730063082602298610732839597899005708721154097260283502585961979829900642973140176630829276170981198874631235962093485214444619346222457207898367733267978766709980704566754753110929179780692009584972528235513953282586945928320167426693553505506218030184715541260503478293208841216315797281033205704363251306881943607884754506631029995080149210566629726428728672476511181480501691082883184019528050972238408459330822677637212816970751284004552817764674124577363106833914912719233516988506518806626107080055413774213530170560999112784073654919842023463638739246930405208734078281084841184648802780058140972843150116900363885827559095869152993749333268499411026793777447648213709709256523612331911674850836134612681381236011240717343326990504453355009045064629522153919942675337893253093132253772014692606758363753278406640517248436299020758315521120372162292876580904931814768874713386994306391334358829946028927463106656974089590239391909589786447705420129259814171251188600225473715010237282348870883327227404078435366487530069352228706871803453862226610687586330434862625895167264393420991820168260122444838875256837332651371431047584315520069896462504148280064739953762862968906081999204966940023799289639826523092175614240036745343381377361942713994939794112215902385646490708423186413516878308012290989357841858083976058727000635962495292531722777034316583651427184773275083437528065877858125973785824876343302383386507312304489332487769279845627965874805506759340739603973040071096887154432903048300967397544206502340515916426770587541048931106490101344444273309479013722880010213466006640301560910239646905999915691714406805404686264097837005402690476240335045018239088229791528332873123464783023667337620462348151111699283216328460305058493835678542996898705797509058620144945965347848961031613111009788619089622718989974349984976161838829332524804583718727042217020144456122741513141511250055304598268320004207805491771829589043958858875369518785915772594483734630990316966194960710368022024091697558338310125551877841518526310348250644664293903377042902170164049684939308774204548993710508717270699197134858543199533066361959920795122738302165136625152207090208721345303184691057959767721543959120123110390898716842237087616596028298798432944005268551224104078305931414928351969995266068240079787091763796336825635723383307309144462724735830728178426663840479002267093429408813389639150092618478946697560713148620339325298131740604361247922649944488718596409368427978325099897521570078038826598038101520648092544134806265389096595997225180031490510865984843409324976870109635834819717856248958567695784433268411213588950675918842127445313637738862197728761685173308599215993559269473844046321224768097185735570793375407124136214368278372143959139115729811265163181016540221958498824455731005749558342259014863561404955845558377309710284687664228822112037241152241274437100524316697714844398750661102568434576529449000988221149207462297925215762621301361152820001489493236657662895351317614149692139621236561476926000944524891796440541962150340516272155973786425804008286305764688088719700096610712530201615176075007131910448374425653672470045500858672595229815539837491394582857168935163838982443854994277586342258560653573634364686635004826784865953625030942183620709258669370270517889552094452165041565427758939561114675142451082840109416450164302909042449035918938137955208399454483509732983520116615144542002299501417438012843778061354340543212555194927670500587625822713495240994457907862877963437308865686610484867272689181097841793107856073689288039322004323981805175632257207990365000455915179899304581157506577759218161543149175155183645361170573005802570346806956654365687818764474824465515386245259775723478424446346038968846234383588654617376521393836356641955587240033115186616072854634803399890422368589379979626607207495729359518379361619966381046006040505353286079301038157993271908559735646559314532278941148432126983382574172068854056995061763318411069303654150310451545987903811209322758352808427762007337787527301728150023692630885398392015635778176005754773217117114150269577202269538896600990367035484972989932773863220782797701713663074856696060270989219446731429648273630288562765052382134205834682374594404683241902064882197629215445893233446826427671394766000913164089518465395888519478787387605600658404259420874555952031471840536088337920591546444841851050312200528262150004085735557220588642992922664992941996596687097866631796610408837186892243980171637799581222544880161151931410352589282391611574144839441813814361433923847855257693756483021539062241088037428380255010607601235289549687230492595717882263066124512751456590478699423790762958679370933051788486831705669451049749624198569066654659594387507626173119272420945232538248976210625658451735609150397423313641191348628334220821453502185543520513599533266497161708419380640613358404098622689633232154190942475080869207499763697884092947773846215215512183491685869487016966000975257402599812596126955936030406680002508389020451127586530975797377875894793100164698598652063781738732321698021904755864458207918431576019772217295327767167609004596283955268268596903702833946635219926825746605529187496920595924432052618625070674250461534440025655493060332623711184313558164286752690321179919665442412706041047396721542640888427771721779958537062133804435921579168258780294658357393257360989990452872207768989819781163708923724610499353724399173753551616745115984964321975750427964569800766005563688840489514996992415695501317498789679871656640310477728386832416321751847409536513401030525803696129025632929267620285122107012700544609497924402650154844055547934487533067922326699786562724138385995211784630033642161884816604919877646574944565244546733095148969527681092668148530892971238583447059253490201409813100232462835893284525213861131457729913690220725905537590246138697964520154252034620095781692574336754288390661023976352756845976281544608100333435677028908792832715387502178402820814220517853321887506150127315270873884117789001678886465249448285760062216952811046991570410477429526747479602837376060280633558503209409976013968898934017558252996701998346058716159030113768592135351002404177593057466768754183811787929864530482319544345380311463288348277641798438785763810863833851144187933797999399946007803815923923195897117478684404204777547301847990845876543785369270236386455037816672110906768277358984040006119529496586233427270511724507256231738358346146443953517311654341519389268520376051296648549834128782066510443195498526346873779256405196511183705243091905298545136313314852031586144360689639550255482538392638262527499358151106056843115945955488096800583150209661292037738091808291118453823018568986945876928025835460776568877582865625864355619880105383050450879783780389389758121823026620282527299528589863736697562076323684506870898257931889825087658205698972273500320595862224765721969509662915440977728849054914776090534430553038841142327645351651899272846585180084364005999270730333262602934738425269762935626021210717354003336978655928049332415514323068322331919856697504905304909169779146338796604293663419297683123053129965448980864455138524625745323081396891411753199631421106702211824650543453050781755334622779290647919738382965750592032468021768865902726056080828445750811425843898481386802202438882913464402378532371211890860548854317879381708777656703233976131313244187006075603979757403105201453573167472633095734613973420366658863599939255110166507238433347615063683267918124919053862705450112135860745510122818084579029741873284769710631841387270002018329068532179148777703525578511140244147459281011635855743319347360503334541665213405362165219971207861970826809956673251683678082446230974215403393160586340174140000232606855342060981732595628086865448027327508079829774649843625146009034889807647411593272169536295717333084224475981565847559777706534827228900166875846811283604294976163831021445715691007068894366602101749718883966202024987973384126904957890989739243247432659209303553882278898460509554808282942902351477195955726597076953256072558772539172440655523644213884628618845962732080501412793085006379684215812978740958316338147715365627768020897419725523895660494651980153327817033006057029561578443901444581629261713358830362280969071539640454109179734672908955455544141088639314029372406961630080473754477715465517744752385059575113457876448233818940495327773435331122936153360932145232261339093274349142361559213824071944132867368403820556243090420902475206875190996639890317589861833928933038058093670964316432981307776246055165396037868889293236501066435264441540189817465460053302996637946499065565000862528200041024001800889965588012500906908187082671512027949024006196111654305843348099646782500913764479119449520450275397643969398165561178667544709567441484785408492196598693758141969606015926733828808245000300269107457408659066052618957722284945315671821070686591153179349069559448459879747232881584184550010094247561280773237974605913928661003589149763055587351958182803700822148085993827755266424799297213032849063879696325111093369216825171192674042587764955954166966350820984449109856207458888152097816909615521491129214743989867485745373157840884025767552814201286424999646146513390336348542389578315757043937239159594971241047922516817711224364537592047154311580798663125147781767771919518508175539271636675673661573201681466825907378251241368553762666054385106079508248521443836508555401043208462734193493932596607718130523691436180475952536378950065015603545885813281316009794696612423146612476041276619729024163450634285734557853176001333703508532313382976950467671236391416929536253415456489824257719710966173414437369172891196112019357516328650351107507354233648801874194119916502306144195645806177690007068940761062371347939298890323663731552388516773897647629569000891854240279193109286345196326966657686471757073110418081375661830798734580663993522611039937260734467194593670492819000582125870706539651787316100402540919172250823560672676484280691167844575232344127918744626785839113154159738652669642239427847880619170988714454466939128103107581732333893346279762358902719410035327885690129605514587482560037801824710742467358579629149506022859229502462986604531115217800358491000935541507668478595008361315774794894305716464102276840232173281126431044337422691483111977494974314791446362412023405023628726352786269350697165310534106175105847995518864237925703407253032642794831516001058815181953261187435023551878113127658341967614137722912915773345541172719276142637775754884129075718380753179988745222411009637808235014968995572649660295316746150563450874708550113708954972854945497333146599942985068948041721030269356234301843942520781304721233823144042101862747834993807897590033445396011698924452183590344348061951983628078378574956836753467123678359079191562412604631659581766327312349017974110513205142245546691632105303517806417799859098415198491618211308191757170522109283708838409437154997355198115979607434226502770484741405357734536748909737637318362194229441295681686693931955614477037302720754609301950447607964130829803396016493180688096839911813003503475366844780387707553399007889907165814987884319394343364622678577768500245589320339106826422816228915059416666212751936701011006027101989540131660994283864309190472515506441051573219780915020542529151429920802190063221937524426512065279151013655439888347112898318440974145164835889499968882056364298796896841232735593620015162471951022217421523140466366058638603599964167394802966247399763461537450856770763407145076924022751809556094439899856304076848843659858667032816146415738450975474850396930348255800239886385083417596505636016023291306082750016643623231834040022690457914241738356529408443719963478122663496412799318727318743409392605644946601084174186766406068483662050606253402208166063503696892160780279398638430616846053967381890201631040693838070300835864993811182125201900194518725398594853833020320895152507803350063815564496267188531064848717815123969797669731489082848895572841111214683313326380834607288791043342133934363672423866363500225536121378445232258875371572860606811892397927657015314904975595685527007979774851400920288223271033564760792414044603551301920332705916886127729114328551458246626870743467142606241312214358410982424193656169316609629088093607813569418729130651183482507298108694853910689934124758680309578573616192114881960781384251944234442590605459299664040546946768144733978658612527030991916795378238972152310408392713646414791352447016433217682001094263126368507528115953617962659200880077033288834025223204399229858856620360010111000485731982348314849704005664848064251406695841453984338956447117683312893857809244813325238481750492593619656397489458369993023929307652144246304782453043461688991054278799168730737820109044671583506594592164876508893424276025728661017887619245634963733375310087082098323066474190916026203256488869173354061976710770517735104746252810942126444997280225553468667065226508975042859991421173442367031479123425258039277675761247871142751511250752917732503804478775594995461966875854264627232273080586489840371343724673917341140355180961683106560137116147976708039051030312785785029151624260489309020854286459898182556404825501605796918796391115378429836614402302032833426602111683179981804741165067159532296112531725372015409579583363215010955157596112679761713557871490573397686390681000369943517967192975072917735750368992428829657728419141846571674230673466148880028417948331266313732101587145027200581270743068151683674726263528634110164749112871709645483638388170138184145776774404671739115911529441609748255154550293709122087082514354241128317116969991816065795761765705724350008255614172672730872205645337269666955743846216903609456354291767853294292383202750777153970034315543860391017035435317748686660188297307097437177633390028022936626577756363638792707901183871315383337697963216521071366903272525378919063119537118818686034091658133468898964981988673230680073653651202598087516282813529213117658307417466143388223373100245863861683624583413535534295355650451248976566284179243450446527039366041229005439354665529183548771550903006200911778995473931907566528941532987804672470816610135192005740340972370511678729829537457570987935734728419694649858092104565492538544840014221349663340663598641031481517583363383724856296365655696173735347720505441630496543422827919554746667097307344384306652559916420620156360252000485436568485870069172261517013982316497393058689590706334183539407393309915557284977741338769445276642708975379115743019659928432184939413027957228341675452442654748483502702788693895992202746787804270687494930216934632512235093927602538038983161261429274202333901103019996336209942832839682132074271986971147983709616607630351948506150311794444593924907019672092114766201188691744794046206734569432788277652267534539549620393638804790084484692539961374762524445167476240064794373108039462523379567623441620155169311223380712644040758224560789546466482357338289905729748602907477945654707215281616572430397873947674802795607407142157677589065018211406469979668410577785073013034618934486659723819713813705920472080995646469806081375458506786035056908474357865897233512710225959625702377876839204228944054635143050329928494784279457312758519329346663364832708876303205202601550824414045330155278466940453923582946398389850215271140127477815501746789723605241838264812713138961046720013940657683854776497723462684495340194473313273131407044806768000130628982685306135629599864889312279678875447765550218502783668024225413798966454708621493448305187212104977196528793902282649845477385067432907848098529851710968684788762984938403006871296865440204928478257498054312135594281139268756251319331620499512955959939352481486605217636642575435913707932634896410778652899267828379960224555001659995726182128452251376052942570962610442970011884517781381741600096126717617012483228020459063738676333929512590344472196721712398541207953361759272150478255287168447662200124406174270876865659148619023291062863190800965851118619671646593432132908600855369273324449120799434510002500416999132133802998020331090749802586737972935993753159841237258827224676599322689809063319977117021842788297054885886308669380970200349680170560240520180463189863060845607510643781480484831130057687992955301401173583144098167557196930882601672672734327605596622282671675832732708364821027740271915018272721496218783259649886717827565488159504991978623524744515143129278335008268538879925015474441397642648038485787890888695059327893832594431555645151868273184862925776849391842289865841656101306830276663568358905050604273785943043340453126327334517875613142359329476954901615131863754910353348499532522762652655927279333973254188928641605146712855136080114560332331094700055116892424257223906721357240656557853814515586063335884805713283610162917052941540513385847983264716776900317633703659790161200569172925766083603477770494478522276241996429677537348368319415156175140775143242485542678524855954128201704733586512075381238309376782087535268851781636006025859974080194958165949442152203888339821060266910870297273571642349313054992741777036185574532252258369703794991516003592062748704039000781352346637588130409142169945687690703477329508692203283739135622385100603705534868112410143139287654815258005146530523010717357665759459143461014194581018568376525061696868010276329339128188043300424893056195467737262745271905730894461718623658743101963268153511980755762274913601068153547274564354755235058351040475190019879011523365397420674575030737848543857437657289723084909429504316615589641450520188338717106016810516072793142569685895191909476247359057925441936731135529887714783327877190163127544136648547887451725349265198808400301427153764843958403912724209616894330193127039383770232114207853154116741537282906103281235793404641336713426903691991957638086964363672685935242495127180513277404749758906182418881855580500933512694012111881155976059239504730883727025753739116302116609253393568483002062047805142095892145120986788311768184315535631612498212000993879376323987468061172654909967854471638224922633491315143646247965882027288531410815325883601956116763839150216530794070843462353204912211087785111391028113806549192647121480324533171622390740165530623751745839994303058118516060430261045699054440821334643200006895981038760800950386726606293150391260586318914573026637436096140671056352835783727745447795582000832673415915635085227030244563676755186987072023409760508191175019298573838866660691242546447868972862782935955359935016889271312417901726898317302432707733579889988812870688258256095668722028743046729670738355565235953746933308120650854039520795159013695392423424747897430868191788768869625230895103152144998750735637309804765096993864469882077952749750069105675078912769537085906898050466619550538868397392515247250503400898793520041214547033415034510727267547695846538714436887544791072797610464031033931102280865067868226769442807138295767222019390923315072349009931566211793742075672788093761040194386050840827829490917212821560513069410439586792113779945922157828555087052805663196144088529253134742349120952582494080371974757195613191682564851942041618134820119652878963232050331404312571129459493891879736742416309178556401784863935755780805744514303172182194985075105204159610229900904700980874990881223655127459312537984628954410432813296557190564134175102316469224680314653027538945980510384994909380458188779465099179390192103732878264853747649622482035588490067674471064521518651200184086064040235752412114559195110122125290859690567267212319479845026837778882550744835580593633100459533119038778302887851242820674463372566576669418670934377499878836273185803197865016383283207297751005562702561512387179733668326413928490035937361344306293660610351831801986453825280157302210222024503673521030838576695096644960756930218767460630892895038321195528768407419139995017716999181973785417709755703178592779543298818359479669170818769526090977827031391744060141983070480202620516869378823515966774658442096408876130807584967769230197728111882252000553698053784623943146247030898465629180730438671579061873117674022431140669995274900000357865949495678570785184272216304187252100992184590725489126703215919232668472475648210039034014260849610013151893258460545672227557556207522006008308704709303520127737947481158906995185705878144420714869897974914781383134542866933577402114813814305966297751087081840941155582707574822782235411923725571359251341760616903475080763513611228048424157262317501770408614763671478620482094023049794523118238473578823357287377142183759061781266369656090940104381096591657404026306231141439380945516859738071614608329791979551597940785595496184325701184494985686657525942510013285760924926947948817610460426130037140337757863094785495710519295036247186236637219127367892162139426629977923583773599343725160868629621357111086787822897759362739960650696291820658581347168297589196757503957212026471415808765502813548830953745387779312034917972143908556904477182336107805995578811675273954163898072494885523436453599677062904264879040883398809182686985615878556166064166749211771114063569455471601449584737417833974450518705633462306445551826777954003831811626827178002600534767595667241359283743254126568446154301328034747649369829585595108749215159862676764948771125559242798325393865979034417950942994435871960307957571615247171330320928328865294321704753545857477622642566893883435589046559451208656494919453506984398827763513519830500525152500764053199813915722893667845739944654013175960547103523702277860484346114701006903773148634772293530190051954640338244610546568798475090829737968517403969832249896653328778518035429289799483921060841439931730839416898177524773597759638007068884155745463405166218134541510666329924357821837341907639934215083127060359528695567493948988644741451104822952964968644831151869798583116968546494891634175008604809762367105959957212839251914969476736145919939107355731335432612923424954522206868835486229236609119336532581017603444120274437473764400321937271944515936740486405787034216629014962166862754971478015022144789684140353323806699291874453471317863646199241095979946839665498517620893716585184705965667707671258039077404166728859404171622457211646703368547843992211659796898951750784770598123529202386933906835392980674830270038038805385676936092464615291807626635956567419681875829984513423201800848972881501791384039620171721778179874111866654740370979346029461266357356003805140432827844566928734802087609073787117088045942669889324590710143787908275106279805663328431634450483112990513113565674952240188167003076040854021572917460533794698486346408696471085705762727385405177884322433497427705888715861033230676930387872175958156088686282838864539246987413456482408756924257272679281589345483770302113241557045007819534550870566813338979366035615807628047298977673851694303794352506170475098276819495333086384952859630933627044918586121526832594293713538447887576461001758892667316712486340523149879791069610052409910885561274957590941847668137895201178860716924087216201280218472603483945454404369264000082973233252427674209315337647798892388772411007122235585893114635312680453949425814267862920212210561598637484601077232887052887274057559038650925483170848606002815990615034404974917851871277824341735975321192326297214314663016538061345216826448381295424738163577355849063442393429752288706627544981306129277068814782515340498500181117205953271361557222090091055336925444543697118551679341862295079926995507880760125397046143893943316500362301408116438349584225522109160286352398765752431723762782287429766986800147089358056457202232187790794508797249179752488192979175543373684773721490157814323240402147520389601267720665837263613788729713126438226816441669727294491535020520088697142740073431555812399908100686067054280519699579650540245720380772595067160969178299127697552189838038392942225016758415123777687439996921051079254110580706223573460861092397108686225640307817615676160995013026577663464102992589450353600710261975989437201370496926503371823074332920387606568335775301940987560397876936311359525464321053228214916555996758419339668566982730203005953851372659353959346778283979901307010033842030062418212785439571056337223494269837792202110930483177094763327254837545069345245757508510667530702921178714015546407944407336130922618454796394373588493768183340571376070131988822721706099068214102346715956152763829152250442844010472549459770224628555336020682788033284420221161167778631541062781597331994867463022514597032268014572293356393683358950046325169416192364426652199566311470712960865008565929856339183900114027538303739382872772779071648380828668146318713562576883992221098401437196529637283508065025181200510691274571273655227198613750784737549738566992138261391485011668586151949547469810615134388241211421717142468773140241491978400716234114778402404011693653162050233584304554860606656475796538777479676829624959930237497259032862818602356611945720944457306798572474001713672961324417359740530798071440131923363621439586930102265978191738808149773733011285378613853565577249293163336995425434229343255769525866591538050614859638761843932047338843387079653875330125756866161119886973674120598301649270977604867369707540509980235219869851355157916922635298733739620012539881895963278540521180608468747364271194959454567043972921365075457620245199285809465022703239113119174341277003198494358508700475021583288717975846456652692956278449172565850589331604237803858361694917472539945552380300634526916792736929845490947086712533930770321708215538514649415903348278040559155434544710975025001076082707185931539506061213029821431508535135081999366145405070347917671650706300988801768331920649190761989476798083077227904358957907563511087932045810688759038543738258863154671718518739657534310650396229790071813042090620284537523632383569201681526850237726089067900422298520285849013733839043424237897830411535569094269585464973659445877548282637521039190467124666706048108839968342155857357495925139848130980249920238176220627238480658634318404997587391628550220031864101578476242408360390653975013630548024725632572139082352159188505631224599626448098577696051030081305736021472459270003079082205797890620297415287153269051208523602960204195921890341489758429370443749624119102863489908204250285559913387864170178165416975482196943224522061540471059841605777599960627141904905968086558693688241469019332975887369449357386655302097145738402868452492932702179503546090225980016477911101737867966064154502565859463290500214534817664545933887644134834759809268078653099168233234688289147616540510790041073646167978678772490300831131381451935451084429899249631216665003151142704891429210464592777363124128872993598853362918658923166976079185248923564822573561931780034259930879431366906031213444962780688946422673977901487907528031708331818440695993828767157623918911805405697340004777944352787086027649122394758423493735273533416004781680706840273071581134443306017760850165868323621915295992830080828059686655604096081493185674324723650496826865341614500602603524968748059393854253141356552375907154368010188801399684431025097606531431183158610947419387698279205463991114479168364448917685979114441090628181806797740631017527602839786816532915013194332384178527850759603121607839815054326956783087051778536410258785921396202761234208347065101354814806946093322801591213290705746593149521606910682878826108780194845433145767855957739853737348291029084775345620568498869561493757357703484536196007874614079387238072172762458557715180206357742378795182056557430664599766606257555089716337478702765024486734914857702575002677098778847613394565944872221322257998845464883377879364665894550232145165856927620697636559008183389396142516241318988177973731420878140583748734807313635113273472830563518263970541811496604848651880118869789676322363573309132198062569859840496439079110149555793821192669272890879139653633349295638381388725278432228659547742670202486429420467000494935297075883848972731341075929130827606890103443089781360351828454745623881368960186955608160274367382486525457760235041532576022697390941740639470018215783550424859195718716141309151704539126244036469505381450335540358487764330051824178541721822127253614473350288405733275995853123345810474466414715602356705056786347578544130026460356358423207402523816627036794967264987415538064041299542760120683484024814602467927950285456090286470185421350698257401442175899991179175488630749201114621271528855297788764724557915245556222337250989692714318282728541411806348040317755750707805312551939523966007676228313086690791196942738034803641275551469512611860564735717428031341207104312891673726276671001616533767625572836572614798000477855913328282367534231032913604793331040162150840204622382056517103509226450286177132086125356752392369915970853275764618089425397263093416787225747654615149973509270998097876742533352592321168886508725683497228468906228492770625462827539325877181749172744145474335464362401047186754922059338950539391578724392135147542207893982737937445230097119909923772519818963250788543580630514305162485178252075459458855926954026307999334251507342016382741259452730116833290492309929675873466301278235054279189852724281468151374339370926870179686706230785615077358682600367771533535268317295762456645844211229967665921632845836142120517207720800937115333120664694613949705116713568102447385863251855104500912218996103289940404556223394893571868499591107335154476398683463595051972200969986793679696183746434437462120392942740251195360575489230721323039293734114777543721265008534629684328210601912202846324892011345824492197585379799271079597275858010756213402586210916946389169360222380240335904114513795800148669015286744917704166696891778706747427685649582216052804645512324260129641535170784990975214379102203103326120481509275648301009781216611083726905272847582619015140799128844916213870456677816887328641692358735642999731476612403973917475179280539803124530035411769369595309394796742527389772052799235477512800144866337408917009783061803863314346278425386087493579214923897954991423566967582298858364756074484122996560244513706849023920985087790730304780754085403826089446465871901766384877691273623290921882640679570360920305248711981957152120033884846672948298821204907780533778357514277217285696751933765419429667457180369369250827558611553813357379593198186345858827657997732112943338709579619114882127264927644600765735948719409105834411261151241618517130043219221338871525240761110117377196117136043991508754859617526938193309475522086507911628938338833422690289513314621038792053758165873801866000367556059569337052651814407731914785230191022147497665127249717212126629113031626708817681889921887479401249946265760252160101231820757445032112366916004559642413054406849936078498433969482929587242490273433908145902137115026312679091571323412878200081441605931503065069903493078586034975599082850494707269729545246415380405395018580307852705686128294081538189519280680529871623033258506621065820416569841906508095660005238162555703388821790444883263900581789248091005085388895483536268023461005234870418559387651348323177427721755692468898172474070789328554581345286174264680119817048406245164245074869466970841942628358116858950717172835648249563977429107862950842137199261990130483867466795257004095641572287486248233580784738587931406717035217621682622934901677095835407441895570190112792065020967267528367463781291935062259849000583781441312129098416996706039192845478046241368011338157099938756079788147309717842230054784127876564819666417342420882331101170362082994266745392912592242476648383002387152228442148787473613369464210666164097143365105126868271260957349822459650646099371503935946801980104761703485435180659607173419306913446461169967458009598583073390873692006818861849173676257738067588284747483615666977545499333359924495624811728997683033217793445631379537623875466645872562040939531393517427939814577694354790254508914457183660011993659603545495600387774053418747636307478343607983572611077343478259481755199986831794396571517375851799980049325813675313062475556454559969996248568642314258405741185502884128350209801927574971359245315637463203583601331770507915364769988512071277078638590929275647436482193126436717397400509568718720002384059545470271327110778303069207114708677422720800879991833285613955709340965913628181845104465374088130776112507972263541251870232837628802874274082013249061324370423300857158372624855138986542456792129948693433974223367407246701190892770687391362101640022245285965585598989738248029752517511337628011262091154945593106830129890113973572000004089606560631760018917489870408358366171246123096558095232484129700677628113316494072896877174642877941626665371382045746426650183050120956289042617774705508608306591147950052366908245250932773418395606971205007802455662249198115988816160913319858177091580465651655780963160454500724348251847310777648264174155296589116074198898540821082100933314178177534095017308550359114527406903127512460270169841853148666710122232382304623246358629778849764716097579963356360106792380414439687158285530775385547538284517078802874855362982031447901568149366785637683213518742553608662811697514553730108982588190502004495672153040035939761832614544769496220283426562657414133740688351906725571068253934736070749191876726701910220736895550775926781091186620165671542590078814351523697766852043065253999875317398071618617319471622159681048073187544650065850609120244752572631802948428485228925514440805887502674316703821443262393352707491583025732329676351009857734530780727779799732580235409899948526290976719946944510323964293947666438337816131982263793866328909687248545623242040197668321522172894460706345302158249030697391044438467806711045137230056906290994043331446908931042811738403052143950935598355128076388071704180985588872909453662864224685526538349012439804555629012347063871181508531299782341083653422443106482459790808615109288757408227437606654067970605223779214035222123547721663843186427097514575455120694657870951804526494464566821385385312179110105865854269991588485538324041574705200044931079452408954872197145402757125697192279924744238435153649493971053471788062642817775863638275092518459904924602239270959832300365053515558140279161014467859598380138878230991785447264157245730771991691605411751019632672153360346371543785447724184250445491608962909391392256468507156592413526239093316715730866148619091056536835323414857265064532781500109526035852850289327972771098716429555928644292321259628615790869323771332977122387627892858050995980326089041991590340173851350587472931381361602458729325411546646188327884196151527572944160595712399992764929495017686158608200675631731800237664612478667213236974273955548677611835090464443863642699323835154423439198718853440419924125479442305647189616704208476398325672036646677361481303298397988093885331264726223392504330101211474818035657146618932351070549285797672259666584336217099030849575975270479365410143581390131891558108119095199721205141624188178045228965809535573932814977919283172302630770473635747910806571552291030342546910624012425147172292557159238180281860577396554925192123033894073764692946810285576114934741678816543758164587638149139473933584285691755948110978205342864980500140786353864199284055305405773372833420430996489571068540502734860506553278825610935957332249919350897319669844014705456933655341946836193320234093290179037149715237783063285213320796188297856951714668561115658120296238587246119987673029600819458401137888865869210597153820482183130437303510330641161437503968402234104354700657447440936143279745588700738331508480972911214005157571157590783388971629898122565133084101660372161724065536576086426122517853929138237070852532448468352503564818215040879416313294945957553307469195984358068680237945785674492516523121766223124812797301571364887744767950149592602475139845889845080983835221113852004250670330006837729686069514342141703505219734560485440243753330848133815907549299608604243605948461679222353881374347352156193578918532633759481341274223474489092728042872246502431859480216682767380590694340404420321838036859278058398293280939576697834771015211328425909145519238303888572898256070586276158289730652854044449323744710090445616468559229033410894535086830994610440042489039751802010943626434208060248120981187410382274756403626869058674975533725347000058572621583806476818326076701386107959284296681182488411452213060571591304208072645732795055463954804807257810594687684816206093994923633675312976569646714468390097767110971778803384412623114733524819168301871516836685180621235235403197229656413947660609856235969782452106077997705321389251733023592492554715047638763993350649382829452918386468198970538744313498481586438401301446449514543084770127104409322335242597214074587798771456953882287602391746573118091915907454011411226327587022194772290820559330995100803891160129366899396317952489481842665961455318732925183723996293434934242590874534049146210655429948061382786733591528593845962501412383140764028069672432593272727413831672057653090482213447766589518525694830108012904675810101031936066141283882958464639927963207425783099509387856877313181442483504331463192589050741205112351391900458726859458523001530846756891050141275254227451058631781927446983839734816423286878286444295734774958466507612198837859680064158797288840939740145657884856463759130337036594935017249917927134927298814528323486688310107863857230202088488624663631104852018918172490041485000693647698578727749658964185314807559844707332911713226551161659701450930060509537977977901399981719355555022756803463578230951625447249313597263344685152208241573055114212841768818604895564409981714327673407011598136486559409992790644512480066098390817442827290735503874476684321931588645437003132595641294934660354390952882971110379189829425635739682656548021688371921670386902798433552001023656589673694209924403787697708917997739397003463046553774100746213314508301628510593372740701413560507155134429580968719959563953950402035461634913770390658375345967831410967725760136979022320097030092887428834526132696122591380364242204187428202973628523803845132601199636342162630470497775022856685624420788467160055175926321581691341936338391539803508305073061190338825386661723478891464985824104710766642596617305991393582622670426294065075709023310098043140780582805100276341412998595570452211020221968255280962315865368631669917561282244981618144726241808257771463831219444111050509657041214557707235918471221592606322052986470726378003125624852728869925525100283803773798158649056842682710379853085905032205803699836427372017168239120179365257539003334164536888592696448417646522524247059867636406306555491674920386801199646308700145660687745937969062899139533799314983500029521537396402152555842381875169013024372046711923288950644733166236280620632034673798621267579344562013686103336456086125529386638159193965734846369369192680816882826980380940558014985356881388209278756468041674695521731690487720815881504829805504680368275201904741370878984457780677207859899391305667240890578349456328020545779559572266904995474384179416048853649898487211610244495498741332927745074348844990491803302715809892982337997934909710431512720815206688352262553730269271712477834085327773438822966927516824367194081332586925193192264898116415260876428500920846030194473924889268131832373211399551114976277927779128258501984104019146583918950702774621001238119180678712719097711289431383001369155662261919437394860253805069727097358566526233186380682161656622057689647600740887552102045582408856948123304257577963200481442013021484276285650637822259820807034727603042329999957437441731031009288658529594000918476494409345136411009053576322121361369953681079325163539018325032200411555604953531501118389490116659665896510556456572311700003630692306785783340517490350450722792059063395217564377510135165432110085402050515288227335684756566003472995583968403523421414350895423528260136789858998435545926072170538217756712557649819968693906005359504217282842519566719104376387251547229551591870300668422759790986526915732640091488147078057879209703842696834726582520312196192069955580574281953898268963620274449586953433152418537006456832129429748798411922031843983636014803860988818276382967557158279646786683692359621379253702000795171356343840657912841666029938761663041533741618920040183445622897694937082587383092708094921565973610985132639128747627603709949085127415263167267552725147642418492901166495044740422726923406261935818469149774026066531036008422944162309155978035028993358771755958184757364007783057364912332467751985712181043856240131480483684017431247949919507295211409409525798466256867207785087410965775043097408233860896134996692140895978261609840245052532207895839630921659440737138321176634943590336408720122085617698710181460743233531928985371881485768261809175744865849114207697779848239140503852104092883385448248894789111667139321355274648549765808704699152767554834241986192180767973298611384845226395666832954653879189255127618012948766585874531670667903159330742564481086973824977576246320595909945166239668911952052777159561603031572428068414296037956579784291198207429249006560043299306729656557953438340538491473333745344149868364708562716576967792048288751640385006823972209180287515608502675545580050856857128381693937814808679544948861563592096615559441276755457736869358413617718327426527646669369802673968750135051416047090990557880145779034403883206568234889181462765472963471825461871536332272650332507007928399830205488331720803205787420808288509703239716401978510554965521918631394108235171041160956689147702555265451725567152105086384923887056404648033938905767270354436000627395848059107263654631878959079568962934052553517926758283627858312824808814290370334236996749978820383996601190518540213211941133431532606420918118272477570838370227380799350755816936084592843307951921853134346409809457271671201263886325475415461054194687314227961443322100620249413295029814247131694841362954384283889126625268904382127304489247187652772822689143759828074186901973926544481811207900802538268604757721292012907924792204206103027394275352360178355227018015892625459490997002552114092437785135213687180036212202837654524943207022574980455371013763298169582004006999211111930167846268870840356865062358593515502892438145330608532604749149152032534376701537786876169985061421705788217291958480332655698235421123117883170409494615928138425097752611004678575934101955013595821760710196170048982535080966060082782408700095481923002219043782867446480699798913266197005228369864223294910974573146183388877105397091173336376825770745434013098633783039502710539542320758279735546174859601161602776748441862880559456620217335766191809350586290853951281180836056635982163319027547627889631148391973267385838507192946825117300277861348757263432438982339648991394816997950207126013830257959636210462886525133096601158942763422373046534163472493371523857068950465847011581754970804738641317111219325114775194989976387443724441830716955551723953731446004954686900326171994810343945055381051304927923020332537647427398743778982391675741819800008835258464765784183968593447267766471365645114265403565362078843982947620559897267520116670918540614090671647827635529535734513376698319620881904093880170117326797224192736931991581966524582369521238367456917850059198315432896209087332788440663012121947115544354297377431872137329265471096851032355339390352246821155018076595728191475769990822420702446416705966377384480248169151518185925164069886813303649535458976132197891082581012187055544265023965227825644322638370890991645251268201316429860969129237615938197234136868452715604351587976764421138123823489628943890113357764127236335321582265378889277931930673636734371935899118891845833959766546980540783364123522785867434664533065824371948346463690191279893921571137361124311051685885436806301351586215519712543274358876604201387451416033088333502115570136203121183299330483094707459422759654131782383812519311465475583883064089957969538630926085178135110960604065876359926654198813286453084407328376657327920834181776694313487873555368976832081448212014030961686137213551931515778261146827642628522141995875405835019229320049520663722840887296113052061278862102404974067187170508571938550098936096535175275008483702532973862728625318167817809312555919521215807968683315709008650010132702685935563947666498862715681606863076630997298844959274972622167199530613068257595326366287546079993745102244758654467323129021513779811347006908297644968885490485538370042061165471339210790661397146500384201821814575296339099491163481280561226857952089733810743856896521702132546885464462863431481384499060608064946447814567132599130695180580858708268515838112822296182231902950402832169613732229997962724728646528678244496673367390141621421362451733560507235389848280708842906402317464173287000776790254010161584316969420477911197960936980397477584591404524541789073508029346538365880105803811260196357588542029087915305780209454801328464524040108856520012413410338969209677187599095472005900472866940496360737752249183534373910297510449354073500394257292402074768695315273381697849555710231730968774807695094519488213928178827539458967260943891035106067700706049941538192026202244809307445830748498365715667002513257419320613006902523444276176426148273929038022992393045979353198048266153855363030122915201930622777748219471532663903293575004384127866973925869678422107138995968810417911530613340578214382772585494247272200608106990298727985867532237155592328337166877421878315280211354793980780590214621206109081281711780645456776608839923796888644533088144348904459667442635672000102140199262309928569023153426692519061754987514328013860678198803252685512552807343297708394286828571316529233530366892734871953892097428673684551334718303057775266718523151875453245661883660557057385156211196120684983285992736720558856718337366322412809100397052383702227118203187107210628140672017797693634663238676376629234828765139187570544417951157951472615062077981057708849225508849488930718962937608183610676832600513758825980431682963782604948361365503404531188890871615164508964830133110727071894952675465098401642290423264410497204104864214541107227614884284338650121803177897170275378534759446761729605550943490601417374929334080719470495043482187503808571828463247905816308429554421915733215290978443363171620778913608296218656481317084433649606956962896014327118990928499345431504226989591410407416288580599013300594174622160864599261920137757496392450667341694575809779515328044406813924190249289572482366688451491675688106155132409502855655024852104729706244369358592224355259728132930063522748318846616007345274611740170452099116414599303724912456053278923235828002644250102010270839990476296279284460846181932189016110069270343181622167166037069920497081314875506463568485818420166226210830308762193995281960751474297790702295643917426726040565504533832118879145614686949818318058198410470007769664173536141889308747406954326742099143433615007698454991946379206707161737832794248898136149725640937136764620125704283482975852926354229139142704940211331046775518847650132919249492921552556174267424968339429563970256616405606604591746297801263538007328951860799837457097940309864511077771652133413843726874153923951863228868090234532619102064584856729490657581759202289039923197092767561564166670522839469083997425386724011254284109810878728579948942808592200490420536435707682799969328269943702803896351564595936970351078652380583951013183132035638721971348529551504232300608336225454495620006682836766677265348183418333429338457269183217200208866167687917323528679039791261808331296359115490081607950823822614311354642514849450413245671638214977862537949748176094356232948088299141798512213365287877003861408055425085889551799315400047360535267478609899531249831710170152615483796169277428198699586794203777547718986218514661189927856524679277883994152553556892482307607390511183201032065205687273558515435058945869454091723644410313792666695375599153195044045135534919395319332072736457276163132446180122368929808414530393376138134098296897948555457969271302792291784241261317271342845010506952033974551978274189037152085096596766050989776075589798108846394274267482838722501259787173404002455614190423535273468223275711415812322700056401796153725934021453527344179365744871736188860980880605301795077074182203222480851093454610184706903635580280397277278962606776352048766458620995675752526675467169452822129352844254330544909853118011741153090762069975221089401582314224689916247580762966349831111839090153436518552893704711957358169490745246955346168425897925533697818539747851568919700903448827265497201741903065927968130382307122612892341184517365601268506274094657535496059094068263256755967758202408965348223155899919604954593052397667139502073303454807949047183340239612648080260164969306510911302216436762081800961169908356504879682761849830333768137963837263003359715339526725742016279080076130258350870843738744648621556884783057866233351840977281129661313396910609738183087450643161840239733610304517673278298158086767116522933804564264108570177301598472584291339836524112835893921660985896068192595866922210176939741435463931406676983899095476203184626052073628840873202558745425497588026874489803058326973140687708128671014508104397722551242801619760114835618154954219357052406507490040722335669189214839471492398693499848812877132345203301527589059519599958734450888465963821090773799495490076995099863250028954852213958290504557149290610934797844442803720551833233418884442369516029881446259920474197228815106128284242880047150732988981514125999224539051333540906299546911719412091248599293354680014583407001504230152112073999009955861131458263626249480492864811590125588768748139287957590775392735546780445706818856013662677470052399704979395866526176517561771524552795853996347796757559486626914227195748026385265980689263716281274382739286429211554231055932962839314199570922220743069688522840617208853436837064016288491077032934129364801567342918728807103707397437420061296453347909946185329156621578098475183401071760230892991373060916744507263936762985772407934194568523253154160106460424888320393142393769918405275005868282724383098356063285525026783689204530606113758779185555633015416726930008740004899767309252845907875611043039910287145910131199455524862297835885565259334297712034194234072449448755580496917810628089162534946152988516702213689049634076320991385574895910757156759077370335027770913404427634873443898924676686262723455929613093109186796762387314296265422987397770469442598596618143499321874513580156792097065200739172654391859237854475809025480415241051907978261287694974695570668254901258827382797437964505362009930608026562160548332007844216145142863120905680131364335936495796284307083508127974271096383667561026484178034374310080028655547386999415635554005602229606701523529540459490708315255927750813304671402187894476474687317437072894350466216470223902163509921603643871075133257398229783127206911423504496389879902465767121179709753113203928150658553650319108925316710608403258835154410806249570311176220051018037113170056693439731361714283845919315980920253457482908558229589862720794570134959612275601008206916269530935523382455652796731687013198796534050039063977804886488276898963076799368984662014574153867447567013492104817770847226513663646002745259274323074242160612810976237866466731251303552448793794527956074529575169151517801413948541768783955968317870444124903489767160638008901484173190821381086893706852148832422523288282621507397797895976245859434524347131069462867170085063328370136586748157605208216727054041701770333341312483901187260688480629555405238146386093892820205357465228381197240841380317666031777890201483202944776839114865297902928642971744943477537241131174907780682964580416061022247721691824192927179561865275496021241097948757721266335966147636265833598123684867819950260732146519406965190206346140550602463354016064586688668596530977490554903713351173221290867153517880446100074848525952659803526134379394178493070537927900049478612843781303822318718676770564322736449496075142123065643432699016679738039282821477221189407225107582521020458809341132530537647191464199065335027398468792957855049194324967153880790820453779673402508610250037199641659277402788964612801660805015147345860813116546709268713801161475831587851212726352003206198490714777604974793804176066786484048651237840963204237479168301694272395467210808460808235508957741942803991734047872178331892711621173834055828749789745237298055566455005567919165626872611483789726567091894004104976053513337142763688401302699427480472173076301650129009773426997581655133964808474337351553494399010618616992095723649609775644081672040387228040148831739882297368652430908562046899437399497981123858072236812511885777728602936738082898047456151716224452845487989626713022267754647970340904339915517573451943437313061676705808002726421991928606391887576617918363127666401721930709267532666400615743798641228148074188495901802485555430546651669010293902675001697136737331706808514012799637945395668344134883696799063346650087353463515093130853230290164860559433797176532510207430124185041180769740704147386863251234569441523583904244856813825611377595695018315606457152359902994173623882910369783032237290116250173525818049812198059954240898599081272673996962785672126795293660760127857734690537794919441776284237824256268595389554847863012305405789561619485374727787762439718451477724675058303032177737058253777116420893652701364539287628283228596106875225221747537823789128623601100511579811712474146706831220563459301096236639349388327664673479797895640049870182538706061176325611365262144476851773255658974133834298030508766734397467087840528790202154737497488143723200328124502894279751939239500889839461503773153459243371038673984125627632674106318084490250081159768767154321362117753917099330682410276710257254558490794933390614085763787853130204075317684049670961936391096514779539906577198082094325621217120983396223431592509234802352348325623781437679239486813337417388648583173459063063986095932495583657078864376490332432449553105740518869777047671587664311446153778063567162029379817314806391520956140961867634873247920466134024848957872634909050266215365813428715197445528390096448750912546403570223835334084572441188048807822909390282728023688388853974102770618292403392572095920005304542058575892736958797880935220788623446135354751602842626673745395218527719347375581114470219181719757516992728912830023704977035455527247918008844747380734680471669378580275927469172934666277607927427572340112282125452702858731264350559707191445500345327227709954172799437396576145387554302427496043970611150729571528348722977713451830551673352514469657832200700387416821052872529490179165143134428264836163622950601111580576251459209064245669297053249681069201679068678419430372168638859762565513800838827947882527371979372762169013762784446724649967778790259885399613016389026597020666286426868098285938462324823452140792416638994092321555729560891297817490702302518775292027642433253378920224891900429793847616765455205730752824681155868077298186796963183443902165565525624888252234909198512218655377119998668096394531409175327901821912200310962361632579056430872394305841774997218023774058142845871825826013673646026523461530243929126308753229687102555888387810896275407992854797960271299532980461487090855730308069198270521343734363982012185350483170849245953425693644135307579806750586351402321235661170685431452706913951855686949602406444396311923897254582897718058929325418487086532842888899944234702746107200485290629711245326061171491061223634883855969779393623570079330089891202917874735945188362187229957406134096110431477238896497260996147932353292678103555204723414187394910386661374075685016677553384038135614275702660572170246139259310614068682241092152107349394713558119413905530950735715804634249737219296783364806162780125047660074276232049755120226917592580528150034824640372857575789356643610230247101628670914616409898908894176851909072483354312673771577488554583782371663837229470036784385001004402647124653611420328270806896608115585757001636128990336453292516905268326163537151075316394247198786625292368814281169006619805030019444252086211104103279481158559983953462977930406807590672557811757079255860336622849989838006763681573060197720399496962726729321606223662682850679205853646632204496329749678610527101878819327979966042461352704697324370931897502152857232612926162143877551566230319424425186190073523706401113597979955185440981590852228986069375825034246717471074395135232062301980170903727795395837324904624273751134588860684407350139196920118324973936942085040027469375750547632598493172295843197458053280982816243060080876892007001270103750570457643355202105524077433964920708618292037518330229844211860624348498646915233498324730689100692257061021938146147238389069312891875751278257400089438788416227152411047751177007274051310408587503018720476229091450348097676697970675615556603088768452682806584822261148716221406998134764098931640729599616618133737492983857344673288155338679963025037530891176907731486291308314057270595722471397955143414149759985764072461358588932559176327979873564245218673016599949339854355398991466041561072432665448518508681687824176443305831099919897497384550449478948863403030788087473270187583404969998872308996725283190700443669175946408063350100738879196805396538078360638573937944258104471773824784124586227076123011087493847491921808939145148185395521329906077523759509505752222360939369124883684117414446655842349162164047063429065562350148645129615013540079565136453004039822098157473150136411365734874818378195806231519815891088376075819390731954543817349023644203963898095035817250104790654207981923869312354560413317648407220033628707322718509372496896289651077540603740819022983339636785782499603482076610999930938050075344447492732548691218092832246159881660097650353005896069636645422030301500633990648559440777139660441142923469680204548862377127506816545552177969349095710101459837562541676035260133804885875409816780474331002987017474317156141859027547104608206736279970136971000573856359100327681071871803136163990063039312862786545882232455974416188647211663164913331754675649898504355154728621975970588407108208201718859238660924711288885023790708328638299698342333692145314346309664469078201492073721772276402994240604056330424557065789697942852040180731339567680107777125416117158683177568254438430083947888729527366656089571241685525899791621002217617956031458881198968444634111752096355680859451740377173005426387881537364588817401136631885514421615801576072926953992559774756965304111153927761148991697150439983472541642110014217796246111957001673229378691242441529640683605067461730318252062936119643600366299097794782318067181139802243114804246293915266648447952826837646423146270865532467401412040511385386271002373922400748686200630658307863966237904695396432356866458004703930930928016963834896279320994907343072480232397597263362528574830201110494689820316478555159334495982851917871207036277493801693423422424142901745175478222795649168957822762092566212252955388487562743099695727104935040816202453883622734712572793566320704696504313793388800590778493568259712147900733517857029095192695876987229813921061066377718680984567616026980750395056178912275814797754127553667792289230029748578353795737716764471119973409180885391500747425328729368314654904367951368658592305356710481750858717214884431390101297888534720801343800553498445344660875077960767500093595838065818021683401620086827002870311252191251177112000161846376761816572061174139509993782407262701855509354002718095607018078709335128599714576895495246287118092756657393387873619131437632692837068636220057787204270963217687264631195162749033651003675761088034418460560482393864225056563577821089564548410932128354792279996682005375354992624509237727234049745663918006250207189263005272431294617252447624157778195620853974910591729312945751644991296308966934060500428594489168165613693343308586790775638920671206776052230652982318254240505325538439520226922060225000729496130837154100894537964595199080217994913310184553067506672695062167066821796467650269530329608179708894110284264416045647867498177657508957068756055675217759999625447601379765889487098658732009810269847787600933759450101927229874726224859238488368490677662022543241734672066551717554497846526611361886938966563198262582226914331311783417501341695133659055800254191385869420923465955962606035822445623101244830539918786903324014494120891497075070930107092316901743477333435592266928383967162603895071516701825993074422155744662337714428255077010432409319271733662775552645445263542069600247253652383298889957732190699956080864475659391596394954053766314599674355552187266512728894938473695734515892219515043033064724750655613608743469427261256915095136438576147809790130105184617054753556803453587782084560067113323952747289293270603634200950924712183925580171425893479473513346021224880945694956254435380944748178173442558077462011406416845769443171160669060989799687411058106819291095117433538785527392933062314916621469501699478479183951189918995290989048012689839312183526232500366418019985589320086840892701135253962952210592219491562046502070703389532665204493181520787077975981412179674388149401772680848574667947171100353062029994082885700799351425913181724487735280758209355994508231713589445436772838086734358576615851460069839917215980284648205398602284052002263002166339643584284655311105405087805502999468489868658034776191694247825697703878283036969845458293482750723094376940176482520352604917143076700711965560039833432637327879164617031812167894766666678964694956866307298769126400919938170546759475959557856751234704470615654971962859252050267038998783992168253320410684628458900018182244127274680500009003126636206283354596984382693243223014066694443181137866575930932925405936318198486110606926493312373839948600333750387411182937096827545593664673987049328962018968924458770721487006491612528415123869277033421852150707843016085260999306012394947504822722647942881267236419989820131841811362725723952825488336682157991512290350333806841974224650306654321184251295667189683341959236035675406357750824206467873505086210058308852205648163318244342628703192186173955583714346541001042732015961027009130733755758027734087147360034277626411977256661515380590724842306152819581819962995084107100186145635615151190219526583594598781611063515157042875190338258225017885915541438519983773410902707781590687390344168349162717489160212402312949227072271114465116513399529609653619245866435120490843805216015476271478490545349823885891423614081290452476264584990155836943724610885468844346370558941777551939566615802506511413511053421023786479155053389810498632575960133941355697168258004731789430971545541299566559898296126410663505315254708377833816868908631581037326141080981669589769353102989161930215960489507077135349518214845763250471232621676108761984315363102891264522766354157379940047493236954338944482740313713567388168156803083380745289327187193718842756282595785355973522191510923639309536714272123990012175602494571527958333012525885627702409236754678887425988557975950128110370432566021369919296096907993003223548537008265696770022348042511940770992188548170407861228693316258372100035348002820232328026501710746468938923294649705268450827501377478858588718359545621210741866475861270533088804548606383529439661544007552661016316522817294702550615747682909563436802116723492196134872389257362498349759269409288202204043072806581635505093390086980681232993415309554163805159684126059273732676805097777519966022537314437246543589723975101923122485721126520898042071079086188289402873455611832823412605277865402861311019286398767697222488637643268952714400667169824383105802399446337717494768337152918651791792568473073901751336666680166635662290925017038382030512488978930544312411385342581821835077684869559680568242254824013698124334750699460629383907451995241939770436479415092077529710094139759157964958644505330257240527111161208259447937971604223880946095331638291366857275177371918861000850560701868140875758448849545504672396898497356018989643413604411871665636678246245865869305496075384017987953485468684137094978852321805098703750752756086979109416350582753062427449852791559149403378204184630416716967227233068705076705389299985735127825485925308793298599414456774864699290224467231159811134409556495778787638301327411501967769003775946185077256906113045689574944797811110138697397494288626031827044640704475985033775987301635579918934945313932012900487201349106093261795773821286019124108738499459249322543783184203979237700241117132690810731875893441983312427708222366213325258766928460951073642930150749681810486150552935917013392439383522628792756034233048669705146344703317299601422653790362587770250383753763728582227355201834688621768699136693034191394735715939648003095282472685941065939287531040327402642969617022106285654801516353846728000392887871929525145062162804779437442540365675905540690311372137731789618242505604017716799590616425873311883419065799755302936112779761985832827637442280914689499059490876204720265116071101966759457701224927011629185470382928309156263790912942994899054677328820593326713420991573589063136955775702253457021525026389810175271000966101106796796061337663696461643431365435583902314744869592534398078566406391660206185525250662612145959628807629708490837198715443052476536648145111123695352058587466886025547944325774149630801848090604403886251099156577110454973892902693187397586132222144808859034776344537101789208708441939899873677464854978660685625859445600852829590586045337341786846103080750475676837882195752743248974000381658073925523697480467941058157732739406485978292019644668375947394128781039003037576274397142315153048836329648817807690894919593439041073951170853763879577607358558061273114149614948738308918804767113898639454636956733368913775562356172639579949314890521784310552499125092445737212690365820188385688898333640208661921024597258442560556726655649243662478919227886103503921346881196676580909031572459046229397518179384294343472930690560843146261324166419435443063443329631453914991368042886979945301770010047257286343158489069842600752569571826870627320633946695842231197333164774332425122791727363628516359813451194821012112757661759437601714469167929932171625508579438777639414380076216191683488022267330249876852692175065202136764291596264254267361685542056380162007481720640432027575903848606238677646251599800821424164448603604575151310019811713344016305390636960679857604255677563504680442484935346165359659876083273715781613485894091770682941168022920666481839075934159684191518249238503439653261708316439540573658059453558256153946545492770121022211108480779846516527477299857846933440384335025234867751160860345095736995342740508234267154374350454303103353460092721937919125790678149527695683653654259508263808186349540697873190476041933069965844958785630260703835205486441808696993695519581043308086674081353859562829997852757173842392907465903423698017892713668030981083969161953608723209679771254910017406182534949879487824694750637129002859156621845237290157181964673639588284550269028605362224124085554058441886442632615957297293180200509318719880991359048445937855262446526634640616890577670773127780123109483907479949798315723242843522209189327244126227093700053165616947270539785284723834315090779857593087954443805026336665238134987664375147188089650229189934759781633676840112363583731322816456717483273711315466345331961401334865794117274846595531062980985994309528481595042944400180676093493964535329912894148381504154840488253881362859633748743352065746143928931852321288165109540406734181293590147734465124967134692793016264970171350363707141428126164254854445751546166659120609369869156016114042249364800441742227460447162541946279563197963181475790047970869097611319420131232576973401630885240191088322672814613836772656082862153473641243850738236334708393827294023451296002416911582526501382161471325010866550573034196994615517000858242125228703336272304198587892834081382874878917604383458890000889225728897450559181556181014853133185392341249625604379451782736144051998049842116707974650720619610994931632448226009862445524978501109924550748907164399228391083206685113967006507965047533067230323818870296618789699728003853555819111327508962403045389384306399812106851309842187480442344014814209491656649360661143933488940882988259150369557195468191738370644943128760933059275031834964393679455360438970112687774822635802488700761339222777831297268373091984370533909522801531682479493540103910105767827767554343524747040712006158026513985983919639864860371327125643754424472692006923658445580410319367473014446650738900596741226835830033300878290808178979299970136814407170767429921492359638929027066055361777252480624884280517267195541126328900752771200474567134032670404885742184661574062007427037679852267187649003267551273174191718361630906944384412728756567264036263860893793017185862207767667284011922945670063919459848465579582008456732218147014105578770471341464389845909556617741410289065457369189851313132610538540859245783643310445091410908755495087689918623672468236495487592787242811134708054555942963819850155898075924633370181941033326718716159277238758690329604748362939093111751884140631539541145224359285483750726994500155670862089555999226578995307262942520804420573754527459894347605459042398694060277668393698433046415900416860946753587037083043973800879127122954806743143170965639389498254762571553727184443980296054928910444991254873756393594207684238592178907376483903870169418517290988877306618648784414316750070376876480430519921262767369454514677521512448530893940610068954417049258819465211469667178617420777408319857009037843261409010878060202275305988403053621708511430703202679282921203726024571987836264247948009574415708130865198567263765267698908140104605350506843319669057392326797259810562273895496405137072956803635320267078458339646446392623649162784698295163852031842736415156866576353502100414327118918486327818103029236857411675475202351494096845289166801851425843750869322859140291502951268536796968443896190926615820756504057511180340677392529353492120078890359511206412851432951229205781334099181721580706567652080928652183603215057214665413024610766603586703335691883697868113117352634405830824193757798686334228801325048576503299181117492003273350583377671122263347107854709351256786211612803903097050850418970161751403370745956415535504600398355468083197442105533479889104364920137020039746818983205434607659397499106341813134658928014188202755868437672576887564832852672505687980003242078514966257896667776941370039499454220323850653774087929071667603902193109997845978979579743624374254095622960913699274927033967505519085444524711169693468909529555447131987179523955690707930308153839592093495544756852945301443591668380400838001113281239077040166279237590059381839775561887718456685269438344105522051240243091083733379258678009614969785125267162290475037689428777275162536837561765971527903058831732941909219944455513770255549890393254935920205235499573111984645195029454581764038734817287410783059815662816148914146308584463035532335728792787941287006789335953166461528216887211928857934134292552785999584711259056156274823020709620256358837720264445852245923098037976579093832891982261863716298586415471816886446185009495938619190157965581624065093201513177761485526102888415466441672999188259772190610881663593669171911447732645303163198110243721207423757509595353255979004478943531576559130655359917909130820155231789617646987768825854784706615893487459685637965733035497164536407357027627104751252798384565178288230454187925615417016253399332763977075399048196430629014139884927323165976743090449662190231214524597807965023374106182199704414364781373547407131877688717556495691079216738041188180757891028469234353711438790725135843000006450095030517863153776065937955621257081771148468149775182781808118199587478326408110041883945742299395427963314464627144024720999484645627090842767607346900787685149499671866586609255857333333706681607251088718520150599126452539588310903341657550404368821476783731329527526548470755711870592315361904523875944753298910780091188778557138323457932225728786495334928610975396494730531551988963721495253682897764979210653814927907684154912651252803180214343468988373797438342909364189635027054737870500391771047479250213038359005298011745072669890730680684003709071903157556921407156215832423788907391453360861377391303605154352422834839854413441495000307411548179538456964120146210513100358322931122836515066913493962595104683349400593700608298706807261938734557251294886694787399639263722582232225510154303814658934224874264411927753039104445301267659610121704071034848457540411812906558883753334782825400463540318477017214487507805036643980209879816640579801527144300575986295470835354228742581246349218082826950439217645287046906948001107113992821566454425267961396244454048523048536196144689022924862968970274989024638568132985805853270172491033142721035656585363351528197643347039429786451238603682855506236752713752228754813333437795828653779703404407138150946875637570301299605110327261489814991557007788787167722017157126735545815751809794191669917038811175693997898120847138771369244524044636084862421607368878218637186403139218560256312175785437775783771282355793758910938784034701747764573899876279928674121458417497143834214232072378303283867595535162657302603933794753943369942645834617079339181946497293962799266620047975959223165374163589218155620248069310074229918517689776419832512679237904057258959594392695481311508506728210033234283089981121583165169691770811651977757025516823976088306693954329185209388606542075754147745166930035235367990506537599158498836940384838932158361885370548894443062390983539186853106756113896569799592487869860265496118144525269115051473739040779049832559062041337125246493640083142206766728205327926076348869417941327108185306212619058283833735997167925992406362935775983111011902695516082180238992572046174470108310588673430634530035242303992946671868495252387711579768364446551601658495192845245721688134709503723262906228348475441709297691861590519139541611023115457636756059895239250536711563375224308848741194709016601555414230130129355819196202314737929945047260567672582692971494287676304697283777638643333877374149996566116777123792839909074178425056061314415113680609872373758644606113950220491969451304988819937791333944610415903247858765207133885441375223994837599063934232379372973944528751630912410052607651552552290701696579035310289971968789931338964655463232877167863744625820772359878179844117556734522861448192366653653396936075157544798836070860453216390769972567293425624285678254521764278453609924725608920259191751382963267137928118441659226970398459951876752986126629214309335829766070426282996584870024475181334786801894202060661496692706678747571270797390748825412198858826191561611515092997061124244267943383295770661957272309806791725139023715610427051439341692883696213522020103041861500422650377186342886502702719750308887128263767540573876377969099314612658602808302268083098101090319237201566124346245414706443310110214015990756976371156629785397895076694087570356585867385725110835812398212834676018351044130812181075713775368157250093133744788411548420973978060283200141975719230052046248036689300629932862588923960286982507343546128490867844833496112481519866961474811203116055552529278411933664544252908659641220702849236340268958119019244948419607542119493836360588049658002912478257408431500485977336916716497734114551416444578196773850035673510850566687558398434656308196128598245741060778541710332962153747794239822898125216051611998706159819153336003737925995705745771681710380643999466932397253681523641905363536354936134395100316169364381105107836328919942654973526781382178471841254154284852301907965326087735537378965703179844821790339709709470405188223270694183330203729513117869977600389133227647592686764714080172404279655713793343721186914418490792955091453802234635492789889622301671714596916893463119112039131400252921111520729383275328345303126372932888061561076504670532997810787551540052655561257687670114409036445485378043279288864361621471425048713202853098042494191920253255668239212157981282184627389298841601353504112771377776176688286823543194227708260174563539671906742628073130960124372344658043070136376831701167978501197916311878011153870337891427564085995684567336126830376017762842339784238429862152945480069583272204206826814652505035505583943558860333046588361255408819327493090068728659521856767742575173142545002656763490481889954338907644652122844210491506736905141716118218998364351233414144761459098673631433937256553058361174283157322910542437049786001750559420870525835610231074379351133116728349445977339547974209528679870596424299953147277193798127500758885842588172250860196752177631527724807395334459860745092183447888019502454148944208848232757387103442792778185167102439162692397600068400426481023216218621990648235969184599695758625789931550325032013338368202851393396409174101801009612267464507820949039806857318580933026498148535135504518604935715517073510915025316455013110639374716122362118191219772478660051904507777794941732851128215640507122740155563285097785311302180580382196960781021313271803991053332885169258346443018193678688032884851112551458956706069991619519172680960693363868636433229860335695098713312384545836487576930239016899397410701576141802572001320640789397913416436247715288638915043295960233297820190950184773526375705783904386523320248867088196611378837991530943344140742627117251998685182309061654265255092276191572292573314364051774988341491799600146074322341652113248992914252841156517979820038290542654010887750540564022022119178999504972296017562100098862262936060629536395075692825286130347366778342822226736300291956241584783417440116970266197146779024162573911815773421367264196342670226280277327352051076549210972177349522453092815290123748141561848957842258490895722706320288280433085021407584509787316103011033864439682033683389115360749000996715093753197493234861329959357333858624474388464892327261142679727317098746029808706700431638449465188932847720420697913945347738947620974949760871446831491638837359377417047438578915348041634498654703361546788632772909082292076046657449037232975157604703260830013323491677298998402800988260026113582694021538103608214165439999462037241470339417529747040735213396460813028627573758434616699164581452647039000944690696144641820116742692970882454461316509059285939819812098087378161523121634897483234352424701172242014770325583180782484408521410958418525529630019176443879995962448147871965322412656285817441806326616438006117332792942943510927503795575782167481949527844353327712390809652710313320420577781682451699126612464653755862243335296421600965833324251801261174554547899589615045191402380748354047279904527933709931933306404009601000760040795869474036155073263595560642325740033932914044199622355762334483736761812453597196451814692628165144277580340632130812464117392899506781313901399194059939773883458904353276006043992983989050263375783121713491347494353705845378126666454411253391233175547479436637125761692045909535658541576594105939400665114439498056724052652221376757092425874115674384137250141050089135170239102443375684327629743677193675412005637239135765039159585631137122590699557331223567533178038118252351380253913176542805764000826587444365814706671945886241821962456816575335917435592848995648985285495001473875537579678533673173488533034157219811622834665587732803065718821706218567063012134449134482646037550029892562865839069685469574365941681819729230991294192897350978385152895240910532306916843904290511243237951964593541689088730865212458546890961975882245115185204394270335262469438256363338831017026430996606192233971647513553766046631760144411902305440067603708194365112947486327346127458618780434259048902755852502852137707237282934366703939593157192084170345288142587070341493874810093597569282961824682820419398699019216304626505617078872167877134234508471930034925184868469668245297392373223108625399790244521637404371906543871719527026134765534652491282784568605874266637322814072144048005808684386414208958252742970306911501531365264373179831087466926303090586244186753917514590999469052919148148249342220914232477788231975186182229879911397342848053494869539779456530821398432949820122687573008619527147130114983714900328025989387875221158011637872987826204904751881688934968601679467650360992740572075261166593301084019177658320907762397541511513103046381593939499204975346921671587891835841022892819152884000084542924116417287293113810877883738727268275629993610194842172859435739422079372940887795338792244195847794877064555588288942278210086184931597963174517344219269290875527404745700754765219188252661637509613696898566859931499225423697995187788561807964797368849862479569145260897054235192901397177561435525045407257184110470633093209772013651041103006784710165603235403979902739553223288266078920041735671288515750061382851066581569621643778081422944238236532395780669906745780185946444195514755092766728675143647387589101319590802082866963145992426352437116835541518816163573358912805460780569826241836642844882932564566864745537331965898496544622843648857222422135181840785004709343673043757606623703271176396810260718423012047445711541620446403800550587836421268006171207045520422461311659966847120038779126261270365940429353574056559731426088492209944485985083515948760448675080970009611744682103461400051742010009819046484087981628372125267170906233385166626420222521849396085901958228983250732941907054074521734787796219274716784743279161049043691048005631269130699284617908299540747503932392312048376635139637024144596550836635992104624985530500238611354417104336311892925472581416961041533456522160568661336595530687603517286395490174183037978600850027758871008630461686818933576349300003033636206342346366216897710553561646315852915740068285699568492588304826905825356821823947199498656887097046529406265820799716001776298786418633296545807274634548269205631573394638468347011129634141902930588744116647842435459554907253439499187225766306575318847942107975092868774915678599903909742914532997360256481847510310134550342609992503198891459697490459742831815849427268577876930141889777741625576804343960788147332233259163910051066149197168925888832999602962429174756860140138557142824487486490592778090710341525574832054873097591345215656736380373652392106670365050135459118367336369067896536405021787743011243984984799281914301185594612236493951670663906827858059191318769229571857719399461012338019662415018561727223935999726336240753551282011373353973644629774001999259538144041367850424668144585210107661581529270850245710289152181781489693430422246501903171548962015412453099544012425377419991538383840183716091418746732055543609857393181910565594865464110200479395435053533103214931155504072990155775407515033655163693791078418092185662927228579791191077035840303284046466861670566026821908985139707065152033357275212160230601062014380575580652090889895773608486214853413872937438156083054667382768538096207730894453706762147735635825351691795448325842560657546967799459205656911083826575671933847339536072971236362189954002943926102859660380620090633749777174675315822048578845896132514340365770457402174036016093736387389907742473613220373441800740027247419628482368455782841869639510876487621439719023720033089858508729930636847726057519496266354885434595026090223153786221079070385780378706156305855680363816944895948692511112577500657837545249544706244571229839908621509537119977392915999969406862388977266348099028123227072865369900488419381207538576139053413671685535739974663290884616074687456101143713880901708174247978346044729090602629725624948959933601432888424413277576067599175935159626370842301934911689162578376236228764455334991774840584393846741047255831157918634445989866574747777900638769299686769012220527301581931597731030690100880285016700248142864268836848471817766081646733757151693904527042177857068038323260387476695561747717691531876776566941987104643710228045845321090604294697742838220383015445752271651361674705630204359593804313576634786478779925097171717885038430328466475114433075467556072244332124734061003456988598688737252101207119558348082543716326126684488931543670532996987860590007463909039656840914126352324227383338381347820652448505352148633168671761689415277683998485230958952548673118023851823163158941383028870960168794774312696742094978813514611411642165158096821738070666733348009360699762108028964679878307761791643604478888172727621713077574517100110785212978972848641546811950295158904527863358848499854537480037808454002117157294853980708750766796017027118379685185662723219399498512091054736933911645943202507291896054214647869180926574867589397464037465894293358759974431721764470115661834707132129238685188692044527040426611856069133310713704015067571510690140250087113049876347943620016247561113222611186164760728752092300597372458407943095398062920725299385869197175326888335656353912600411980837040823348134006787312338062759242926799745134288596405084271479554311132625773070609705275686608960477572052673600523114024616382364333747014563805048625581086401862410206056258846110960654537137327039972884377548915631974806622672770399923752829133953096437361105695257421666477196650703846483765341072338241686174173850258548634180954257509340045070967169503486479108462522762316970305925924912561048052075746459648129358271892195405669088741969314394536252184180395384349869220699554073083247641561800547906951583320554185923743472050379115439902636583371236663297362264995837120442863886363498225158572048695104127010527664270328626955348903220942901375652454174479198422970974181691159490290370460777784646072807192416344352242070956656221154814816324227004989392478620296743401441593894480778577915010972192025029838034907753874257334443197467501760622925865304772890329704418601742676110743455492238230807761734970584126422605622878417052154963071864205223263342932975897729480283354815790176049385344713381999690385281598493010417795869137999123147596047901039355413737056122696699010293289696163705483166429198108431193292103336235000139804990035443752797824231488912372309187286211839033532781933731019412028897300396528234071224667990707868603330486783787099151105240162310195096930544212498553898558715058645814971808568489187251475157929204119647348338071879347424460707568442353287530552291639470384332663335115683108471423607720752943334147146669347796363522133438709985583298860888911548072251275682374431393854153254123544807359226388101466519467232658829483509828709221007730495979673968487430046202745556021082674631306873005383208798286959795085320605979887728987116243896065211398639532729759969041445201931903767593591738761431007918045355098351709311607821650333698552277269192281834411844741742805026651068090305643403473681152093279132711901437985991390630954564943272804845289778368371765005772244305281165382716368496024399805532598450826261991352644751339333546222096010063705704720770663026600612896968687770791361290223317955920997692397198788167085843477396046228459961244933715312393484129277289639959316642907935297208773073882688742622917934754780726153928900657251974063564105143689946770692911693346492241623299210308845909096469255966742424815489277181002987975747961180636904130288726943018505761546945557736786923328369086130348478975173964475868077610543151703565976305656439015449871849036347093111358260161291000846870560521243688698737069867242358693753428179047293269084522553624186770728172620385412209243240401369752001913494268738466326739149427253060271255175290400413344382822434621870584609366793959303158872114816097728454987351305939199912794918651137033725273454324660891383347982020739627800031537057394152948025707505427438736552475332339306962695926698322679005095384350849885239907702542436742656422455002473853071935974205457300569773590989519018721872436370313595775757956775316489336761561137153419728273206028027125735573253180133418390427653632547461439789766162250821053221279725531828453934662188567516344542822090207196551108776424628115873333072173697202534445499954907044998160587661279764337030094246586801739480777027745343408371271084243473392461059861031656874817685059399439928138217396976063509760111289527370359915167592712319590497500273129072753473564204479873813114721816547087790273525903490330112480573051153814157297386944219300451736763107578366864372957060212643999354988761928228049581059296833729568638557929408784385306891640535592798514345521555438686391351811491934930670561458260614950511683028608196103189853559539601471959578559732769560608358679574482349890296651650837241056997718547779409109894243686981134450594078640793312848877096397405351571527664199807239299552323831657269612112637875008050984485634843324682162182506145705344429044217494397610519378284496826752704232680409191091852394358813803857436695436651409952025040976483935797880188005463807457471395942236520101806128384880618817069938804197808759671436859086722210284430462199244729173700404586204391889403556631605979837541718368261332147935507213207982306950404027397668240450689672002598915188277731674557630622252142584481092643122746993208271307972268060893642540626446772011342112583934756609491785195664331828544575902665755139596075228775585148154818817706266621837068733052007584407755359057884341011406018617807631168857993213321893170718217560327108692064146671975353065514856658702236622417444947269982142589386480828086965780816605837419992641416433845566122883466494928419464613791598653915927421539070437158634609930083258134039160338854639216009513393920409188441620647533584675979848905487863439154320592920643874254565302699679044894199865707055773764702734312106144756619868996571058256282223863862190837796253244058104216465871234785632750201966036423379795417368309772905102090795956506319637990073102347945191049858596807770286386078803735230387009866016069862063358334284048385073979850799410584152819446560575714107836014112720221175989853645907410082882163764989693381965969847972800149715046479566614582538167902009179363216539197948173316140144148504257173204685979934145846529440152135943761963600052494861915800619691612453334617222146761352296664859125560788298978585461008729657135479667104978035704600565260342835527673271238808212661336265709413818809365403483881353510428239830711239461762999997451406668041812575634356700437881257238106009269759422299769243838585065808808697290650210643421449045847205753317540795819366624091521706273760228969441474983537634109792678098237544539739953102563569718709818084505563419149077639321959663373872896389055586795929034030927612689896290311268187759521034803670702922258345173176662180789613063375815605946711095752411910129328981349536946167635561056406807687827031727583738770393688306873255189300629676365314927458774653004794049767916710694814452518665684328017199004821391544689151895800949564487260425305786943767358436968539833763051925344272020776518208137296789402253569245464811853185882663164452823372680321862224774454764717497178879707623667098597992909103291855159340686256709893840009797593848984780187780392121497533506580695086960887248047838194124059936286216310250298835578734701207236219980496026203554627364709617791188800965980619767901749099418223728773071174761960438392269145643415148695925668189289932862807682708756126724947895041956450557371121560303654515403592545348572218075185566350121986253735262297000759899738608841875277523618372065120139145436201479186627295044208228406297572578118473511776156376907878807894580661790189777848240181746306363628442248057860723420699881241150211507902152918325850814857734217860519096257446930651472217578567708092913917360398612895752377042479501212935791676783519122870176797235516448494358092808014637448333874972415363616473128004110073625947601728952526018850256852127519752032113933332363149910901219137006305314883966506602043298607997729394667672800259991474587803855659560453384576929197644158423345910833008512666539524043956455766450699840214098462606008615017803079375351426681357680978828980744633663270507045808186049983807076429095346153978420278160091533333595634135480072309219116553735306569565646443000171857312206093559141862778364640516921863971754256367924022099554576525844668887760983821728761845859911750087918706806123790548586723905571213373853122264193276301721843663182753294511042500960691187570063680972872569549338881631343338292024339941789314932477571401293749100271228163905655085806890635269640494913911312250893379741979090176275613743012916810541281855332877931127011931111472182405443666263733959409554746782505258388205390821729125534333117275081847574397253107380897865489160416837819526528427084861704264229100907626969072993155606737604617940301277791899192370008971686566870730330666805638544851121896670498900692122904452772267651634954584674309083966712203273415369589903614161899654493301793335713366815161900860097605272033508672785719675823554792421642215527878520547897768010787069053629036476371095766161718682132408486225319144883298620922211795727247546224947252119872476462650891679129211370292782132539128327806221333246010627767439133935266274771380666197716474291215339661347456759496719595973609840976611991232285300926362473922437979438729629687324456359828519465900154973751328031865890395662558555461275595604384550223030869026040491689640490218974292390555287174838472392008872880798796630916481490966949063578413013323584708711375311481681395347312176012709280339507548759481345719472689152874867971937948846455527071408322856293990838747629465400403561753398840416798588378767531057043899526985033973367969737793421375951313224945714595208334010333053911785074135540269407175388003373189566932972679277577739236234588230762491026024931648976552421168177688197400120491546024174108945505656429011445268251209791362795518955615762093345569284053746746703693381038722300136415048841022403608880116266393856324447387018468702876205907949006654466865406857917516028387016388195904368422917792490904992310706144738432587908779893753922383521923769089618379258436111632787622982251265405121440858782204849822843023191230947885204810987891848531235518354103653291815315935566718654777501930268713603197465126924549544231522736386342711033176299200484117680332983089360151640182577897980093533734542225212611577509514260690267841834920742323947060185590086659322582883850107064688499313968631548911798322148197663186724995152197161412160160368701537166738387652632590069456071811924084535828817815787175652413321841985737543588936015272275984592733583487567486800001031728716709738182243842336305677058789107575297144362858676196961965862092382877986357942083959286216253885047250799079173802028801557293807238317905084788511655865300940910513497251795462613257003770723350380979563023818472295757056721046536619000140582108432746922772044038469633418768706103073224551826352447312065762399328355514134635959766374870358653226591716419043258800186769702717425444687506151266657741549832181616868504692359886989872830090746356663862060851406684659134754934601988710903386265631817453017067598488096816343881193420666311364302922884939029690149452442283137984758015028389339704092346002308881731940180758648936869464373726875997355956229214786352224364626077701058341291734380597438934218460411415304282177516282957893153959334779951971772959825920198507383116363691040632559659789613293285759484374309785647339922393202411383819946504058266943475219549793342685235710557061770650194360265115401886404981923331283999355548226193300722285008332831033362243496561665291306995217901216597011518511376537683436841993136424061022956807545285862304368766242119765175153250327695375293379984665935052721079363274407690987658493160434857991412831329765814028668858527218658310971917573370138986035431560441307446458713071505764821543052828843459671166595007763702692270034529704243449809838325808494453980337102042397610231974436819957371947667116397174134119233693333541482114572937834659454639978620979796369730098858790378427950108398292539002261421113185460795917819670865911556785806110641080257926805577220955724857774346865755429840124538615914902169088526205048870938743195290202937378737733762602427361933414158724964180321834127025649934282510402841538402705464416508710680623366881665479607700319887744415686065466037424852229352747581069089415307650474755736503448962580116264323818358087106615348699203719069149770273140058150134445020760828694375915613152895133246285706750011217118289169840790103640799000019548848439293958846402528400316141061743176591741703268831379837903642049000430982498660282148393745783971874389474619539009949062098825661130959385879106742210270626636030578506688612195186269737132257127672144612232640321836275514144476721465469510519067504435288707503876092802692330185860434217579078580207353158370876288913308285443181726914782753033066662621211134624510136454322907144753014208892719171379183734056995180946190584599859124786141126626560593656717318454992709055453257861730112024903472692982303192132823358425304421884543041490012368647226125655319785096651835930161557553190721653107578153134512156914395863631636031317183552427155015391379608592394839473507635692036946571814851558011528688977476510456099851781785953355323694109112315075165824440351152470852116334152554995411712144407174536084569836599250366988421614889620967039923790886827183216706108956356768683582018626700257070138975386429811113693138793437129297570647955814595506952394259683641355292445359483802280852357015023980802160913522374622813379087431090606996751266929656409665023220136457381663135131642775691202438510596793913816909256461432910944064951843289330265653322176562513842823058392880617716505379095339094493805290011921677628563206451035592292740307984645607452867344131373953195281000993019182344264877314523080176958133371974377381233641224389365813525434730818363504060350267447737018768569561630387230779466022530639408887934187592799758389978929358616354303822857372461695377647291570492541133356397769399612201242400333118545594697011557203465942690662095747681514807460858183461645617979809380487166993313307523550151641617106848963143745813140593562309373798980974589901301746757020253426518880280512671337780942949847652125162411168818326127567404261865973939186893005650015736340207922945767257329208919319138917147721114568930840471728119393365613596464594915099495851440098424960011173040517213250623908029142399046542794496896159629674351667346656388238301453190162120562282455828436506911602766147240802479617108813267474950979547243959369146832103261214301254871873080595647276578751257936434340629365428533322644358548403001241430673547708127378392083231014857152731777278613014463236979082365871119035309330731525825581030347500290591901844180442330993710062078352749789838400377717152635445421240147046928251772773355334079306275258778854165450597788083544853943664483181241588291017664351833056165036278184003654574444738693573159424531656144857381490949179676498907731049315591408332087024407815470319659929099688158306189340479132750898307644582155688311533228568744698450055171350541091560789334489741967572015220878105660402179556200761492613360056538927107529849171971219511839910646362938178538765140538577457201357475020795594410347645923245314543838929238252542300683744813035089563323208459779735677389044102392434958278864562367901489667440373977853320014262405502961184526783098249282998149503318681260031473102686447823226213513981801614333525830435641149490525578415486464925211726482722258357914563292664679347258967304310761029858792948805750549438616650752133064185861478621016445295509022661244464626310395641924504495750796898945011450494703726245507801990803015264849490018564719522028956705330708430287952334003747509102229825350084180615985619942369079217975327606405576538018979962131770849256420908655630158144282687240032112556466500306106888753752887794614723306076198740046445635568217153558872630851274916740258291159996300208146634530601166342796796694633527343705789253420738694900812002246720402348232004849477027807621901296228885200747383713136294192079851766319185909099803501563321493564474228860927819331359428887570899904348713623293549127818137945714356051149802280349515361306190209420090171591784312888740315065917656266661635012851384642829460499668389328373900938376197217962549783999988822471014430398614273092898057647093453886465153020083393247129079739385804403421207458698447199493653565097143984399869186212490133531405588707845842334272540632809989421078662361548521566541244631156284995197429120788547287857334451211290289516962597551267215275952117616535095943696675149209052538765613572084747222329359099132402909349345556623430604544460988102774075960572163773999068838207867538737105893591917972806889086294709535128557086932527863019981154595901001067724886993777735568528879012259338989012022707573786970842240531964654644685082998730834930939231643826327032500232496363095999741546884060243522381488704665829882115811592318453495096187213416554720280141327100870616066740103325058640079836619367717001655821210719972510775863602545581051503258401588663864288429968377054105712970293381265554783231304068402509573520850657197251316573937759645110684950318155820163506490850806261883709389737541611970769578945827447496873542080583392851323907233594574228324450502244883612658531677991304280256980412669016492704766411006001160788474690538293227510741635500323476908024674599959659992076616406785108907611849141329167234893518471245731369728272053636462359276133609355393460072027244445978363264027818131525151180968462967779163342171558381943381205292791386568727974742995994413468364961967519914089215004996917997675333504163440346794042825357570836158615765039803290040316494012756446557597924741092415753994396882016754148852899453732831945366248535765386824347969267602272811283153308971363712669007141513729601144270622798460865462877512153923011604564669581988639455030394467219233211586959189968908940036083348143429760680230194693782356690382932045093642207124419978516499843253079533995274633671277428455252136929295593665428650108495057885519830862793832437912047810371834004566660262486751615567850625841648962810892017074204348561845246752414553658550558491307501285535223485804543436252123671429729949057133703823784321955474360197507814449714685654258124716476021190333905451911001129043851414458213185500000277056271996144376019446104716264106404440222699592488662564701707803506239281366748551983151100057197306166249339821862155544231740916130886815604097754159841330325528367175967956938851559297061157245782128385471391214842527621772669420885268482321640668828009776450825151363223260870677979731698006026721098815051011993227520488813544684595800934869530285490548476435558073642300471558028133131043093599926597888469327927390936187562090497054460603276523212508031624618009439205904074022439531063763947096742531057199733100624758375087410109716346155907493365379761180174372366160259582068434832429636611048797283707958756857697908503924289401945858208832285608925018151787922946917335040664025519575141911251908695078748597522173880347261643381262795707839347455247224049868421147261798360777328188324172019025312215946738289946047505940855003871676080472973332110635946231096546338967105469657879242356619619596077509043057465967465513214587234460155360593835714829022577390973458798998056462833002380432125357841293203047582499778289126419108234480396042081042299053998486616706223633768036929095046130507037575683794861841436222100290332923793310831610108770046191529410762647382355776365398402234419629671379038757230468870529163516780327127099300848011634647472604090581698610771525273700933081540473049365960619673884202410854934104709468641325515575796061903279866872303104470979128821814891230222126296631683452338308571569236820806355147715852320921840413613763482692113838657435692680507417900700261756721303785650510757912489097065435371237998300442342120674424229130981444526089853072445276375255891010968585720290378681776146323649800562158339998244494295745220598604467622146826412951586712959306377502937391377183188289696551443304651058172287784520078304318928790841076127392585096440672932457197198293828260413825235984757946602895950085397665932846245933460248480043101292347250186681425444213026996919277137967412907316307429744687766746646619951543311065852268388278307890341629481488383293040796498475552274261203363146069599414569110526296278957354647789529117638453839672643994775487639612870586183944051253223281989731181633074759019740836375974066868193931908772420570397931905503286475162610552733133441593926484137809848224316534149214443816662448680421587730903368915874530524212941495063152770850543728042912758045342112278283486051999757588045842936294835731691513081034769930012489371720198466038524279615568948578700126100662061798003694691940355377675865841912521585044247232138736633996284288523452103777301156462784544888140577118724420993990293991452752841268915090527876735448319100867860763264307839414276686287447954394722435974386572803470680109713623394159661341593251517072628119085422216318129407989535283989333440824800400017045852108644711553102169229609315280002850713972931323429367815711337305407929679574355783877644170797889891725310492671801996145497701262504428445382096465792242368914449732682520547533324939294589386604437718525742869161510965704832085220634088912523752798502695383456861978722898473944582419553182592742497891604158991967015146086386613486562947847215482505762258810469130019845698950384612130718376277008606211860116501444257859729311067075080346517267878994883112904019784627427052332478810608399828101555838807179570719624735043390138570957781405165131261243918699349233546072843688272510930355041190360921739293297842717316362364715269421271429398814383096757767256554126295039412266388965766998969309750559640298613898656731782949713158202780405598093080657130554305926180732458983031985726008028401368250472593334566176937035557468487611903857055172068485424943505998690879096042068797288992597712876120926959432569923342781125016367303574809106715364613965254242423792912863201958906287988283903919850640744387914060608626314061928715729963545454254511190057281191934612369594511801777230502836179178588697868702683095814874691661676265938660656215146725509088674387103070552736688371279860575670541717649216979446442168883212797960982509536745870312982046756097446368002003369750741572365637022623729023110148321225145630093298414653022855565115914221980961478387826103665033567354172936610796275618599048271958634566203311108416210680335367690888867170296692627832299134585906278380149917433875092559049774194995944542162297959411461248654666447592520715866982122739356865237157491687922765562861329826047490021561357635058983424154615946363789869473410578131906204232100410759464056257988029388917401106687955055319572239588704706780722729869334105171802812199101606044891922962536449141244016062528657952717133313047866771250547946330288965181365137925658028772905112765483648620900852841534078625316109897897207427578154910043839031716438910784866101739536843398802492074627213819518283124104162499091762199378953254865743158266065150269764862299368408316458859870534430310540659951307460468853863376328612883551285651241495761973834240120511570191034242951503025046717093160905902429617889091397412159759205953462970861913386018897449397520778188927879564228549024014212073111177706496238554557353202431690298670393445978479932305871105802940331427912330035725774766171368405433790533961590253343250833556062532838151927149268107015697537878625637623833343743873354101310912167187171390174887498257401303718092503087737339221162004046976708335378655534735246113381787986855019493943596861064775581638819482819592000557627514230412241978911083164493573002712169246180928405119753861457899860945063264420321970123536529946353028781936439779416143517809333031853228445788293672632098419647329150366222613766914634382432280739469448909566258447340653535839376232263993952890854258303048337096145448077025078201661699243283009336407726368374016848654101598562016474441717024308853969669125964977482309731589477999847073399633018876247558775467516120269886732760242389707315783491463768821077945270552108840779319690293140311852667984012855128891551559359035079931923445286191996042616804365636679422555495210423832539793053011830529735916697218072071384795975024481873543426369452718210553515828185570852157214935026941311159526839341244313806171539202881153461023810807058966442160548001707372965974964434071395211177353762184304633169557622237494802498597584895677619568355329517357591382780416720088834584911656057955641079997861698035986185940240525217694067046441470039511014745844136448620360229864277625699554690787648482335547183393954493468630583478360702471489595934251258821273718437525136955520278920686331552698408589425536874410824278153326129652537025237958057363618789425704618923847734062526949720342142604207588006792966574734554457286890026832411984265843457425081677453651825890333262265837514678237700937320240764131145154540740311499674264545905513914852970781155547436934768282752442950368507048231830025717661663485634760922540186056938101966700563642084692082014564727334138702668381039954825276584408805956237595118475876567354948447894499232883436099351944989563500520118399180428486675153576594513221223796982909877410025165987349567595693924630212844799342063661338795599158721104888770894476128578251604387581277393851666437122955123746764433463996092608186504223070975446659215526543899768496631272133169186472299488983112776252020804773657695207066660972052557474712847690100072936551236667240140787583264875562879160810575091382265052492811256833382535349813104916380764454451615886647289366773247467989099619439197906425968607712423197755203255221097729706805627355299986688715838845449442746765547761477334423572593594186746493636217407293241153196728449518058353170004379895753444903651673359357830085451980622060324336832067090156431558129432159137910181021550907512475451443489330860283308665593841448681168843089144968783387721429776248271637614456432652584651891654813771344235397563670167026980083311875765325261984802265803673018338068342274697423728968540650309127182259978487525408109584678668185870780201446122663859552010419019785744648547159067661725331928458209122400653173176664348729969856691097363408177739915763990944883008591942997147276817786806379155907802251262247185477090033180950243652780973658981289576166414930682778584438566687573801665094882014374134938578961404097573784451563797161974476228239184019344897836179825545685656898861094105106839712244420563726787696926332845667444798146863766434787902655919330743884382396907338165244427280810895935265795718293474295419782994097276315019876136982876748864412370895951059756394405212861709504017588075429100348316312191916070151455592846900888773054858174370776199236578971119929802758022935296137160428973826870865601461611701667699300704528121609386436661957352055697202286679412662739074564080932685281056339362187306365130417292343679565538629275942930180255152654756011018445603180418466389681460696763813306301093964016293073189376423522650535369408430711383053366685068970619708195741905804700489997331978472411899141994753376175120102780693830290676625457280711380039730679891375767967466414184234544166671424847854580075717318060495170383869365111521655085583762800620024851575200323812143568549264354612163059137871625452665057041197786935410393269670776128090578566254105843128352196022493176881819800068851140228042194250579216924540913426965691107664048723866901898139897326494985213838507131908573775153474947946679933101879493171513027571460440607194287126876752650849255017804096786972351024289107514721632245295540438864355228612956937979612624168304278450595989875138512674320360402025176475938404537072552118129914740805343240923794373522813530066887258670207518314040511308477586554512667491277549556950998699400189640268611482422925977823312561274752140716214076568788207020135695543914396655628248256748877254950457593387472325505408801918401317006402966971762782042284558446631970013838739583691291246616572058360907251794543349473430960229435938658028556871894085020229254288792886042451591985424682611958764326897479443591816791536594817326586001527241155812085033540185252118726118691361177527064622923228475185513622357923009821406659815075923281984082780669355131135646136646685537540086593233182591925824952067982351067327572175525445468300729022170908138195061085195968304635084670082321290107808539166633402704087946570555778450716005102117089066812336167144409088440905553002848058430826451233857197868174190491581932356981776539322216285087408831182245054082940388847266304731928587260321129199189836709097957194630532606717849827307697270033833380787122533833444094132112380860983832106225493289786590216458883790301663153870204423642038233508366170025489054330422940598827201123180507285932607706716707029933455464463985862868582585432482146549124345392002252181695767339988388575639291651533108346368702383499384652893524677538031434819843799780494748592908578515780133660506170362147829841337698648220284711600403221426999059065205067530389372360893998392024717352288757857053712677792740869125169932149116500595679494800624815179197456807848886959096179781701565916610355012373107352976358029743505618279027947267981470733632065975061847858749872538869956605721808731605258800064270497125064118623775553251157080474951988038299046740146424732898569578813822052997223115771996521232541870756196304831238745424844972812941474258375360672102529525757008819301461920386527572082804522498224977178714079633921680729287309855342334286510625652137866071834723127329436311747478430134593183370182574828141100722820287768988050308114037272648768236236793550149939444835360722445009616870871733811688891186806815745331623950611537140790152551277172736295721670222457297368546390928517659423071418227596901148691101575766984295168201073202462967038544044975797334635118209880270689627708217298326841645725071017311754073385699118658276439544125955424144132984951643472276268316390652994236296504025404264393984396223186141517772921035209959576861214699508996554898398650780006272115614047430356321684950456849770236942470526756886565408134237325013884647786226562770707241613887933670410791879091492166173544130381582600772223621608986618207605331768929162866698635562305943908763368868202411774216110820749260919032565017710499735586924544304669346609450422641725859406289375494891964140158754691296037514123413291882649283246755254066847661592082633078692972034661138728654992323755672235734628882816645712154543156952021531877645008137256306479023366164467157255738461789207853033755325993405930133197877465765093025056338408701042356322735908006560689966398064724144886173947805302668642703269462975941079380437855757173915567366541642879846277474943495588827341881479189338860006029189454794013623151508844049752533753521562757892911885440036118564687543164454349983342768269088673404668804194134070191493861370331297583387421222913799073112949743557522688223960992412590787678661474256711233368728423837645252296716619905447893690708344941840246743703086024659392870321248192390352047456040620189734246010359038969016777342821860452227381975052001538657225475100924019982985441711852577288011616917917108101429986200069084463112963197773714754930062340806462744504334345074029298096560877578478944632357698739656885828173394799558522677061315429856940746481984040509981940068039216011372626441556104948001940598452499128882006935168305614900108874164276695081916234852112954825789314998724635246876049682064349000642008792590525870821899066714984121097588564196850020859769228034114271225247462112720209377450791247108579492349022166782322997963430258193866186865552361237191541818233073102453824786016475794584373721453043249646604021708448507474551249708142499783154220581548776541464247520302551201827306210782586774139901418040729439199535018637080075907708701857716383118279037943253338221495724840523021472871655276930367896242123169178127928922306692433871639402176128894976912946435172068196066407229723395608887381015413951567140482381435504968032253713164950688146137461167773734774478318962245010897649364416201071629896073506930614404656508956507564752853751610235507293314623134434326533381295280347599931081325112927544725408324492452946035871077487588862185146954959690867063999737015535120960889771445124157782587281591351125805484331043752186945338181035211911383173007384459368330914606323155047059537907072297308092999181248911446479151742625029247946761797298751199652381882838753450565866209343115562330836208627846768796094373511020766654679918631170989593741038809823637427393832776208836966724207406401924112956471373412627083506539217653815233111509741801593496050957176434082793614870145630392515924126772920895010243040158585810335704151298252941462192142407139964449066063069280119105345598468245008151127675613557017597269055440172353452994409091707170736508206382679697168386276254226758071487087156953890009956236567093971432568223095864230859237947229962877361444358874217965996957201577160746548830574282806663011040676737159525938500882993370584745743643665573597023135999673912454634565968357559170689733308972471572562870648978586898899172394915959106370274105690081767607172764071902117620650034185315111767648053046942595404775077959950625145734548284927338857358963910517842258819635549539494774195031309571392901706102928020437077690810148694848530099375267662768810532695043657370304891911990395084502709795132607596928828502629311230726390865909919266500584379281433709746954228115008215389730598573207482594328753045619828216398873601787674301689916420694935884154581800863804290594965843815502262581114277797241538099422217909970994232404253395118183871823147089288599543797315878027730293502130790698051119990455609794408994795819412345912712891848458799919459612317019236718987453765817643865664254837453718882407470040369421931616385575749128051050011613265061821648375076440259811774538278886864952641018690971559066006670313200299333459691896741742204155765088286282320291142542201985366842871034797788314206958798099946679130380302746987421371864435931514534913240050826407287624373170582984662868525907730206341055444952392941982958128979866337320567012052041199880416340741023086897240440370904764967259911928388088236657245582145440720479099033434593384499182978476224092640251181434848743870428948057646073175583673940535279562592553407903432678297319285628388111253746703366448966583214113307440991244063586578113568597293823344807574223857633826604873451221342902460980651506400816608883807486141998260942091233960431927642184353969806204631925475527743626720492903567464819264834008083134705217577312124320001801518006261445057916189605271638061665154942791587089085706383559690584327569176892789489396216485656712183235874909267953690611217625612841866937681598090843792182279019487280917434640283608580948494441832812738400001591432374851818335844150602546600601580498499126645036845590672620683678866730663986945799141443541460918127571802022151057355041879511412396862367602996026506374018868764893988640335966162645938678502192131369324812855246456064813661778977555227742990138727950632078879169608269685565039907506699671918476482380329635811236606561994505577726050214398931483889349740321054511530562172281573880173550344008737077898456003100110636960876348114165814950519606400651863860573979211644869204413157328921342684352602903593654668219668307319214255137604941982104085683824851650718839762978660548591737057009863017464741076270827021307199215933395242654896788619694342486642899670213675665727800079261670062380285136829031906677901053067920506894847265233552450730180315774892079125738073466997142476236658220679757054556348437118480492585679322399106092022120703054544584257257955928401249201155276201898903050956789135546649082748880793651573999436769488392599176391878852845158583496676463606768060340547092022465809261445777715308048734006150311954135923285353926216122260857163415757809054035577523283308630235907196924153054158545525187828132913532669547121808315498513942814165130082506346159697920730860749692467308728645391217744856203356157656002646669025954242304418776914563641730988420309766459979553202869033539725044749027501603588543089225238803499814141844078714020607167966541944559278064777511531379933791009385081246236864027141829496332781638872348756880391602674771021372862990470227435787498249010160738247935060303122785283401282332847156789165187274390034782023046398874963558904418819372045076674034104702337122791600244096536240065084446885854564917873607478651356982315061573762603535423535962690744653668459098613142600579773993800303822042648838556964157874928791349871644311937430366428827826397772523850014947716885826602598089814188070733215506051965753840184526501046414461057000134422953252159170500332835177960461750875111760009259976768162769366603978410482501912147199088026490436722162785890117444307874847307291002965490892633807458114529587622762982790714185870170296326225336086903972273531841611966914342662385131989233811188736646678678261144321780391318286898854353710348344737071651249207656469298110279484975864099102642948248351694905023369399854312935690268003310585456494326872226379079837191217500527471320739259328751812676518514819414298940865223883200596522968193783023377119090644029577739427050401827158314026489614600746677185594060545995511437085877974156854078148685973339650590575643104252141689402693306027898916017580582946446888876282107488218497713647630826566141852189326621131105320247535805311412343623178786644027533501364817353681366861561931707248350619393790252217306372398249607953762084931439048740393837195977631274382099242539945020727072009522964934160636252836730013208496708758757460373617485962567387700680289640178806037832110215548721927621084409646093400811181194621872784438762749133706373589237695476912778697090089529809782360287619140384317862313977407003564629914821199897116570455980826299426247784680541679480378244545267164948818631540430051196883402992522394167025579422223391819577715266565765169367502175444687730762315717951341531868914932091897345310450655475896710922610149322742559061480130138757457791949011135178372378636518253589999301256189697848510420739688421373233517682363324807693271702674839821693124131289229426847210713529001919819491314489995636067239306098760379048777016176078726609141271833949347566592081477174338841562213383435554535416510313747763259387287093060414283322679878269682417330221416923253496247511326676260838362957790800401242775971138037737362154752799405743155511754086246537951245296247949565010150316030064961958361457502119750865799304677594114253867025146221920859565789579156822734407116432847374003570795238859341552576513553848119819451306295621969595167073751247868554411130373395973137285349973074953207856967195944449311972771716391356375424824328292804256097025918777310575083432771595559304647451623266120885671696841517347799165438976392800952997763178777520808199295402672536400355609974435795423520116404324861648199858579913142269084968947633085662688101827423580449559953705053889041456868379506960686905424942296436886565933122682299304292232913304960015364912298124872631925707620148320055289767174165763842710737490237633348985741690320645859255659637919222801321219548307574014532479739254042144371273267105921306645527904391049973729231483157897557643713700917505782124104315500613246327394300577933950730692862857272351579877851057837617804450929895703226409048187886145908912248788342676154567854524123178524364607294090628287892308590155531827397558225723074536931563267461135661920584428070542704275162248929086313165464074743115503598396070626329080743776287257616701350392854072002342477706640362853307433342496201873121330751381948143009795937247332050889770151373192694891883563953852288015019571911022262459938316883808470603769810466405117861479407672248243644415040641884194005303698170913720795309607201260346063431340547561180685030159094055331709102605851269329926287453381255831453839396329759249929373591573472325139898727391212640243614586243767961533205343898453939729021398090815442440944132301909299545159419530678165559900256785525290335065282575683147825250540303226692471022175218350222315875513691336318953467730301531389702409625075365193143331698475281402630125320948978355878511313777403467826909212505615379165467221849967180637831201945714925623400510406052501359060618737386259852790079536150372227993036588128273708720041512449522741621148587024156246133804748916096903810947499692547707714583418494661928067575913165327919557631652145090437970599771407987471561644052817705090322031849259052623316416971028500362048723796060225419914540372652464677055236882773486893216472973350504611566180228562680253076759706667065941783962018539692447723964149013172659578943874543398994970353856578157354158274690981767674591992786899914781651155939490289140319260996363540089176027159735618052734152436933064631117857076776391542820738494830960578587685540811590114963355215222187627967345395051146253624715194451203192761843772497972174799494892544302234812459538517872595274298920080446638419679420826018384354430207616100029819080838764745015624639959340626871388437153490645874921092420550452789820334813520022417586542819339467325751400907914921588647328097328923588086155506241065985747853031023214067506027065731245685526549974901504525939359156429900491464994291133238910671059022357535920475927269271108244360814984029686478085551331740738514062301117331876051974708034979575159920182048234317167713341207383479510138566784830376326482056872792555060434306621921807011788889843435966501950107878014459318370027199009287994204130693677865639559294918227681935385160656459727486450198140925492074339418569550796112944183251782381916911514536288385321088691161973945112786351503071915498867075447341389494395446981100683356571954766251308492977541304414115849529010089677961233703156978166737245714576229428541849316469099498499654658593127627341386525345149387268171334152753116949353417569233941903209455806045104172700752631881988186090010066277901123714435495061360682566972582918986839944489267872803221967994121422133979719514329638186003637429107906523867928156366420547282552518928818626389076368004379352693034626978317939581102313604831920526178900695609473712254594700163584355929742185226198198844384063476790258577494689630724756026582685277526141272047005476864889169456143810269941982342250064457710907931956968758491828062758207163212632898103644542868287961493328574518127059731137861484071126447823874209809201453461606419677306717262769741624926417294338332061325956097054296944982992940758191413774062922233936488157498983007433903255658188219351260487307230634349108744916427141118944184636328681707577592877782941691817105316739362230378682416943104240239949233801061233929143876172490603381481004675681422783052623887940549917950370960640400547676040031659784494760233804691186461853222122916619796019916008591046015854091728978854262192225047445400941111149867463329987551091781923632557782895453455184311749403074157699787573990045040454645550393859648929113986244891512149783092069525324933522597163786465882705096932078176179843776505999648401822355281379496126407317720172900012584794818639273381138374522186608696260830973032184337380415104967607698833403897125449895222038407892879009567290152273602866624319250628135153701297003041092300263804724292198764746808055705962380871887615834740311332423391459776338569050597756991081361338345821701728551717658556323400595645874400525917872205247789052320776994371565473846943600669235297812798961031191540285828841572567037415459879257434395521298540857047168163831444578428851118900862418956801201279445198884131268205716944756308684403556715193405651017244436905793127679558863746304886994818958168476748403584093661060151669932079819335395499011517245174603149638307992136112357625030710494609434196034913327678241206221443253828188453893086948154009245279359616789663870257201449725975651715227037964738736519870492307974153253196340457388568893497041334621774149003028531530538228868566894909564245986096191103042897238801082241738893456848932134831925633335144623658170559053085823449276252700758065554777385948528339212547380219475608364601529040654573626667366317735369641258961265726483116429469874612995182997461262720984829086624751322446095525309681020567514207326161239786972202176280938179392452298164017981546782530405290684574801919312069798226822269368184339057176108132958096866491102430051326289489871256385473004453358396376038004217120640362955983425699341980851529307427564561112739091225946185644712144961916349148210881542720724224540797562047126428776094516861346205978821111689563706864620668852451070878755835918973764312535775208202426523501796925001354492145872844394848444617506370882566821492756032736613207128336030838433672040167044283954814946038720391879206286868591488666224731904703230140644508950301793785604326920829012451388405664935001649676064192002949364926131289911036854738187172763120776388700407283615100812648612189403229655249868217593291648581415681560248613597005605089040919919479353702787558508545965482732791796170069506602738894501299121710420296755272873281026435210412405353225050884282929321079935048408938441171925808216898374170950784012825381354752428636900326851523377592338128371148453519603930490750794041178153605867572504430621656837017161458520726204396905614208147750728334766266735369783423715336233186060210943172517960300309070755245729621681322749439471795796713131200607474875930792553252399771910322730287001687150219542148820943168337397211826221013685686720330189730586335270214440511266266166902467022005897241225768420809696500498315707591406842558111615778077297175588344554111515552293728394357546141663043572343336931757946811505917477295657613076419301473183945397921936798244398505867432611535157900943810488605754478425147589061445272886438023416764800972429397974013509651387574499063204505387698448392007074205592953035750657613329500465155543308529732102233038008547542125488003787239634574223666465879927513191840525769445908808869651620679303813999456956937661044936646277301549695227372637025869315797375946963326158436835987723556750978103241854072406879343236143013046295185160884277479327567281319310541529146686664978658326918573247760052850552753951390009434494728927743362013007300461703106422639886094040616633706602134436295630210061661046974443003780155905566273815192547862748670017068185625017665251631035471314843731307226407021995907376053079664514651225973801737555648922310308350350096177812816620540802228400742251448397892750543983315519617750719660315682603805634348826261829195371430795370625621995570396721156625749487340039216514435254990121810691599187264719700880948204790549366453382210841721543134249756550157834567713460626966737696620506364199369234387255348471943105602147003803806763345884008716472172724835408926944962621908960803432641063914122767060178546242427763882923613861572642555855455992468869492411686989342341878336368575842809457552501553362332110883079225783870180714107793664146653490067997938910643003234601927811853262872036306707876633813315003031824989932932452378742297877617151728426664566808512578480899866615732300506004044482620617916431499002961029482682583549933051745534434709055557603495229308009646640856923264215113904516866464080819823891542385057072027329379727652948352202490111013818526075058408122694597189109472458781140628935626876485441997146595623925784618032082368890761964281244470452421680265978217711219095069431339997635351713245096976759982570139275092223704002183622096749402778135548152401169108136846027975000848458619161062527035480478417288958591658100030974581064307784472076756056806954518987274744580390915651803645807196164019966793188503524627642071975692296415916585958505704664947821876014698935354329545027708080803100731391552081580018708827132146539187535571122576069867860949259730067845420177461659770174401793226485146159418035807474396713216547132170058457525163949380527918144929479835495670755586497372049134592731967352891945043424643964210161588870680073694643263077876844996266985509887109856480705372453996866761501414298676701525069570908334196117937950858617603346876704653450133885198025066146237700458755519484144858026406718160358714443497941120190359423468832417253472073989611065172979732624374830336005924945667178135492052567791136653712024356853055697250138812529303029846200742467558220046824906410951988416113922533452172883246422176650304607162827863772737281921394618809021399472271861482743584990968590372385535134985770620093707663476020745744609142924295378798040535430055780611663318771726913416944327518498256838816121105427915096448341687138621507032804216576329642224226657784551147800861938545698174396236891959611858548634772376239479646428988927624429956384549352312600689590296814078058910322738365074917790998851188683804020248374511409724911893020397295430488785918151242291726182600429579486019287456084615160060197205206913770383831959556300682168691892932125431699658757045858608363585456240830827104350653143113970052865455279498953851129396014176421646686086273761153228117677610513537853588874219153764317823328482166840443053626641956589791564870522200539029806335895861078535241997634711695172386942217258270673820592314644476815246681401539681680793820650043997690128606376940335866786828759505613671490657970371718662471430742571694112573331003078474032560302984328868453543055729801593406865568797155944102995067834661939210225679501398901207825017687442534417372324621087291115739464426737331870765650355141235759732740435962005092356600365930965298880612757463025163077170457521152561815467277220672522905705386845720393860130972516362365886522593729270927622384089517141203933491428933456576904144954997289699846895554640887455663487142314010469878434842419178015100681610977012091172061641561771130808316969116349383504485862098458111592162866132674928924831007363410738046549403136663382376012884325011721362729396238310979346743954445851692771907977398310870521549201901116879418145596492343633033697572166409764357369626094488874394383956994342377939482071887907242078635538496184759735456505652770112373495514788307684345776025159293320249618890068083226885869738726659631136287966055390844527627517896518072737612976010412586150391978277662979201630104742291196886977332250183465180645990112849834612648322955083132549007479052275261464775868654306401928124301870250972553487784135833572367585406928945391045000716798828900120382357934278182073633854367377435666861387980176754854467299834467100946378193168546858678435106966990722297628653020777248029300682313196936829551693775943752167119855219199470342858309680658519493633299433771630639686766672571522669146537562745162749863886939210885978596233341982041218659325479360996014273694632841106168706504134399861263006533277091171840696977463678216672698693363135274429897753430907652713653293807034594052710966831168524377179190260704837796242962371721926575733756502590753645531768016266213843059807951071030953349473198280262007188399656047433206937893544657547461297830158028979929495480454962677234840891938562961957516928767538185974248933874569200606684817700305611616120468373110954245899908736022967767018315011385241352785093596437392409452587624067061366195891755723593546904978050182440539172431202769750425852746982517290340487540775093303812905078746978279818317977313197682218688508411431438566856664886903335337201597768274928120483573028089106223859874784581209454212235468633095053039485609392611945420446522886716478831694283847909902110376783729386993055746816190700134651209963676624337547800154345253761032844576239982036568466359454879532288746855626618733729174097511684031658266804312199604947419946058454632087572659565336209158976651271572648064720572116432861639514428278317096653153628165026723158362807197895032520645861911133482199795211316655833814356158750677223289682613075560230357854910762567962739558015599137961863091617488427358267393580425948594127232143217476294671208239361701433092568012570046543896176499015592064936569220784675228674039010494804762217895721469482343588815235827755803575196818085992930629774657406254325478926496200539677761574924654514959808365677374047289456670191265206323135988032644203105489806022930623794654145475553348069977381247755743027466440759872090788029317732201632571815252846682392301428585816430236334667421480975430719769014484516845072771059872329140998507516795019170886940493711076473392291279656432375225025259613162832198613361259521552844370224708371583756779144910949782192248390233933557626718155909375107796090213865401071296984600517240063311864284439587641101017101961272718548360769891622397150521652887384568037537931880420770431407846044465715466768690450932213584629402742432779534107859592975391367949941865120792149722943522924081559019062635502681040690648516784830679700499326040302746655238506283479479121920746500303971755194441685931105899867998074527613228826385416102924104907759829887147954368561673747593405398025838268153913528751958710544990558964948356294825096545279720392394429434572190792703133770252823034472068510201434847782472959612641249900704358468386811217254617713878390627285532845482419212498821734286821354374969250918742189829504232504360611785831568975796776954458843438621523768859336694807546950381966722425621318700620152841729711308204951039541101888238056354122294353837638916273059873448587922395448971589695838954372193784124729651585134639509201648498440158485011245529945477462930890681371126360481926082492751706010290754612770804752837826552022349620958405183906568402970650695595510653443718579044629041437946580922791986546745369658529833456501123256394624491216009055650496573250156013557446364758631765321904728583195934501151974196092677281980601898194434245728023284407561328618614129985067873023538419204595484372466724465684541595987193479267687167995234944952151954954287985582636052503387842081599097182121293191681051112094787205059939945345577329338590420216965434113001208094753853559400347985796367490425548189490804955149548873348038850850345640837578962517922186116398574701871450243885244704143672676607456592583049400087778621372333074239102157859012587954080477020932193679725133217773241262469717651241760599377032809566902867195505635235856268930917691206544813285389382415109327936414545195445334618583970439846810229221398034313502948618968597445787888426180577774257011249492549234110153941979822889487753306386217684832007823430483711678869250089830843993835601493260247092769937174899256328303356886456298654446885944967554281202058391738483874411061993153770887783524961620480689439422202588114767774907079640064357036123378129590145488857800896842514741845001221756400123159313009572784981353110862488363422750594737868242960331943991553893105754305848201749844196092571623013701264815823844828441813743986098853520852089277398043698052394360970084852823221734491875673963410873071581077290634765381511363343591636013023752960235334938296367051917271728229361910594384669493080597047890092758896370048425001063366631727279452151774933364134157238693922504362470035121925900059482212234373766979763125884856875486179857144349018362766297863960554756508694237247100405105333525442733619197596863967326295388602006867135087999341700807542344052021813859436061514752250491316493427328230833913152548905168045345096329042510484451662520988019290195811679836402398586043039959630836628327624357969851444795886687534702070352954211816900664127691058194539651308766883683568272038150437474783668504450772710208412508059517098077322067848675883003004857565976814138874645303060380692059047021223110473134993097281385305642752348796737363690653435047192535095298563252743380792274555709329945239969914559309873892920657745616396398095457811954612236348819195781800328147833714048329101601364094874849151851955428736002650262408260697592426675967495085062401561248851846420971915652344762675450864514089084580227109238418570526383561848437914983002126541386142568892944112862653873671502064009736068838527786555205841237370833788971855725478522991144840943173427851949119344981250879299994057830159418693814223045779357520434429390658694229098269934268500250518156510480043006128766074702110308152563690155780686549609143789538995672973968845465216217027941674268666494317723462248402314514529736693127535612448037493257909623180513030629878413010771778394636071483483352135674285721978280076536304503962937916746662994460507266992141283631162821245259665154796999348247147620399241999742229991342798392444577511690571911447826266108305538754122378992491891130919459061442588511546132594755562186493170266822507090434330504039733031645679338614976884584156613684095819426872728037729043466072856071436016906548071915931514576139772844601666356357753514022600779946413364341645522706452108133122098565367841066157382027629299878688326725337179064554046221201290823104283441598069273999265268147872038476271310735426601164205900420133415137508658981312536314085997265644741241178325416637616484367091055597364313005275969784118155149988111741887268456605716220672809061962663455072381441590453733071200579409383550252696864243938990637091452947056703644629536309390947268225098939717041907765629149636014881014234705794483188716878735532750300275834385088171247348644581671292183563378754626965200509416854344239992637505645330105788882855439214477803797992651505537005416096208022931500146458240876495959832267339625631790762263125083730229480700075026911625234126297754742701584306256372050651739374423908651547804731450049181523127395982972866775540965681788796862863075500580923778311256326494236627861304087786340892175793210169604978937163103408534963908331277241173879953378083414610784648643094402244195504074343518190208208771372310113146310761815063929427921892939036382305513637141391316054890102375076517714466283999361889349779794338881031190330712184643212480635102166565803614331905305478580953174002858386491661438290917454760616793484459770286605470229677573513431409954429371486593197912091054170271477715850740105965313122289872564647211511200431833067298682268380458087137463247938384950053164498837455477372059517065586929122813807410534478288877181572231978805849461008300972860082370305878280458213772537943771104905545813932137231880257269329669678063469647408467583639329012980313699207265279559402677847583636122374218672534640941848753757266069461127686356464917245301218887841082169382214702020569005745583916952620546771741297355503183416575107146431101084268050618462883452484355311079102020078425762472673713506723664104537197460663002018169600054680837057687709176984292047352801556012858684001740020509345140502946202082282011565082237252149002106605151809220157248942037259269803320718125957430394589035951124560667802583204526648732702756327025328075199046149391012644174054355379823871502717711682446668472068630010304789458420105175134743814395204483072062146833521031228823340306427714606593959806384370825843385752459954293858544724161245802363893575326890273976951103285883283057507139483104681437785767021631786989971025182377383100654738237563146479730455697735496981448156596376931384590639043539432365112932381830342093767136211658273686112127343209706280464050146296462141797804955439951180430765820889825847739652919701946939541501761417332533413948540902929043178424987486445664726574731504653396636750343488353034847962954881139516203566386878619882049593734295266846233539719339084946335783641387783937563085623363778527102179407049300041599795416337499824407154756488213033858738761553933117064158339890456253485290582834144527576328244435508212136725091225337784728834603487842027693169720913421442375599241483477028246177359234825838814798123852443987669556320089374115166155338352990229364379547527398374230892265400384172809478057995476873673841432547930781552201167643561779842161372910694677540228571045502401167964032055864310193230932066102472715786137510237287945063015194184325950067588258848936502300645166947204986580793650376634703949298948233626581010986122870437574280804908079592505059025308166440937078610410021910284623732109640346878896975758659948029110867359497124513791090505822254994098578870995256976080202283866135468051031586472172634527352605076672535902296735598651021161998076906793441638309357786731232468108783173381889041816628442745671704132347760213061834127445823737354663450527700864018151956182852806185718398144042747891432810778929925779534076775791697908502168851668668965739399647299963781684376854182813293616896750614411172952719971373007151798615778598197556469671098762967582964781157907779113037970648502223401603292873176237775995722884971941214764812132653002531518365959024217134179709450053203200264816848831836517156693925546496634172253513584009938445770039695583175758844392882490889337470218802456095619956234585311820853740418154150435306959718527652792940355714266028517485797861619738158716528792149424739390305288019766805289082334400558413749427985663876760108497249417978308674739262731605571194152567712772237545077615341833181177193530621591842508997811098788147967528146879685439030201970488798409428413413678162749814639025547118367806754076910205318032066961095677699912833484892459630989804673664933926123798743130984644190698038106931464741030554676437475790008866277638772305394824694590009375677640899821429617790507832765917928423583560061642054200490894142732062362016115840540166937691530074826390266836417573963240536880651423801821803919036894464884909652197128647390126000186751496721618556962221782032232502615096074065999995240263350544891730011169876656134993450915247911136138137589485816366164292862312752251998525382925541048793129884049315195918319078610406196064687694674159679481965895815062948385639732094702858814178747536948372545028090669755231889517318477978756896845399549960211703556521207681240421752441952040355309497042171632457657936992493172301863541021630767359774237018895195664966169157211541500347200211821845034798615508746447370217083496948051496329623727369075981942483045351567431335143605136079112128626876688573782833148443795835444756277705775705971022587811195017189332195688985306508228827166849146200779821605453176036594037082207685412337408246129625658901901552802273155361292062793097400174556904404244229690058949070975271676712771001088752076505340956270366806216584508468123002148342655315506146818218458975556109514444091816491019721520301109603374709670649831426251775871459377943773762457795568331222719539889852701884595560808168833581347853998852054767268497923587106022191640417301209763124168018679149826224564129802429766971773463367633140743284576780563777947629429578822453447138488342248145528599762013061788116776271349857129048364469299886855548546614645447517089867276838177338390882609748840796507636737796109261539367311763477635926469127470502983212450155824596978123600450964282011478387522661043669516742194096932004664559979136199771839714356738215483566269670174662618328967637922229079011094070326572563502326811524930129090210704245722908314664212061093745943677678536863040115840668792725778997207273889967525969695615561989641347594538994283561167631856158151758870948502386168166863223342716958944296256542960747916800447979118792077200234391400925832432104917771248375961600498649317143087790366858404890908247055039363168853615685541209393217986902325693022845464915534845469930515030476989322798597093691548787354030779798053977466319256709575380717110987303092990021413452993160541627717141575466744451121687880803807404589623273995015968757592647205687464756276761278420137057339722754530934581323953211920199007553452075765276447591439311543086548742316416022091630394054483684083015998481093959888198462027372938378042412917463638377635875761159322199158765286460750956328049509945137240933513924921569917552218477498805937138862840828247198906548086615733210079047948752960058794589979894023972068305741636258288384310876611699223961296850953034294433922861271940602479802957926380853834359231769146819364265332143741087562549559273026611077358242695036314403332812109276493428245698071162713815748458020505072951426502671752010692576762578040135536744468255195784041782924498944779414698545836440244586049071811969878476382228031268232767219717137801099474919090475110896330204230322399791412111309294095312616226083337265208338479520589341557345060876035899824178567033817947019750731123808549198643810167430539290309448184399226553068409884695734461382843432795563457508555487230227274510550216202561260614515493402272425813521119407341526908950057219559663003583940941203920432519530820532657000100379519783754268296355262099708336207240209966041931059620407139921785907698634783080698642532108276960970203127600239057746246383008324596077711181989225994192143342555075407678427107420818803672083565655153340978601825178179832496374724953995465239421448680981376969591629049007413001402400518338048018279237989759237586591778939291048123106375430696938788817017421778140977083450462839167321177446774005820417146403531499381925060992847564240891985823825724303767440221074466137854807864873843092856235823017605903580101658106487703219908690182724027219498273262058785853308994565628602615142145308038423936662081581697887739556949193497577655137606353670959161869582061853078648884414782583329748359677041177437211347739622097412682386306552537630971125216394379886154620706773179134467704805236561248094887572719679199924343659081646662755627601917059928633841025328431505170359961757594293330406529297183232939666467689717769778961274380866013960625496489356249363626711603809708826876288236364294378096283660225633684304611685381099019065071953381889577822915839398269938606447374244827741623430343863504790740574437488695012879800698729195731300894269517274124570166125185989918302333141182183127250316427735841889134602351294129836847857719330918898913362808111206179580803872301370660214861465842463037902813541410352594618117135305361446961434775683516330283002339677892637947804185723207113865076716565497082975993901582529519506747598340451843617652412232602719675804664740990600545001699275963861912936577631514812015607987910094525951198442726881994221145794494907700166169037411904806731258942114305614164567581139468513539396155391723104855308919419934776438945477947725180978340712990466597356550693071854549579190615132724949475094081178759132643744592519003233401524048406231748979028009515771920446725962143703541820580743429867498197293383527247267594864956567832454685514468873644566554114524659400259249627281213967150279430129482922984017745323584955880057926230446965428988686421734157789098864144737650451437213792792279562109281487298932228611689286882954368436011229613331294103704433176243673636855110784726253340063877235145759403369972721679440129213484662240765919386218639162458447286190493003149272455934372443520118464800607509084977342716218168002787588842308753622548530615325760079558122092972641793201342442553009626359470145916578116767355864764533333773497266525048847028275021242606673332375778676667518020777755223684924185667406059319760611699565764375684709758945162884144912121721484887373489468785255861287356110342218230562584295673974615088373276795678805863629485910357827014031090469058025565594863735921776966121538540174545471295434496427171491304502191800824923120871622807584097254746318662612227547941636309867465147232618242222469003217002857494546632791803089050951186485597855999497951398832742538964707308834138361586865480472172818001696691824389196362178619820057732681472224238105920643701473981617833293040741251838623081619823810121338437967806424837138340940746664528964960007396994895655226948686744222179576292185054890631520248262663133835960720770572703872491036518981572142402913619951545728548584763297831009733545987584484573368536553383128144821672682034410965949402381438420934376296848434915919576562846194928613759175935188446341882623300504712253254752546998310240881344175638062618163544439566845402305618269414947299230214363372917962862467883309392775592877404123743037491970183293151103868484594783715752027116845361844774538097984700101158588022690337663376744812718985831273576128031100580880307057618534932267483690471152295179445350170629432100123436062225936972760196094886999458857083336636457715791854083598853870061201065313735079670179149692248993888258848527370631985151575182304883688924405797686260405752283447704633059813005456723736004345299685599037407979341087164558564909137747177494452810031201348305508546667497845990042664225959211889714364491768221380667171516078317308649394780496544802315432251527947156071096510140646902065038651690197067405037006325417636907960592634875151314274106065509435318938005369239817487763189241695408722593434012150354547120440607260813495582288902133617555278981582836710014151092328033739228395433817758649910125049874818602406720070995916538180942980774359523720587220860021449422741027128965268982709717759753338253980122834743122330385794551021245416964155529691943307784553066068013161706774689761792738865369244098174566473216115696821831606490029796337420877643285617949548175278485329632134821182306962337204586774100615688558636736590175831323255063284022773717204404251355477699103966207206082892298137122167627276924046885013372248720074431452270467582606985602138692629927207020107230980515056609155542746120295148627906738327019368435396036759171801101664528832732547590218711081662204715792852540122311267519869109282524033666359780595218221672057646086374582140712397309700149203136716221136322930452447722447545761666494092329789465528390821176876143863439809610511280612158496652711643426356042505468341314855819678421030908228135477024803209865981801338800463730467712582004707926304176324709027548402922492106302374018037477227966577315136963572753092749328292215894400353817516163995587980089623675572720749497755397109161984265418189631310489362687293633744392390668392865485729520867957800517399271400038039967670511167136987857957662434548968074316127083348550766597515517531423954435730317111354576395358677303881287750148633807580038248586238184431582851104645059672225562528144652294854692627051433775147877450565104186755706203963971486086349301686694772111600617195418888995773429025712076120877305550904578575336604912439584782360494288057901134274791939047643133355417749449408664706894406832268959321044426524620624085097773970229958201457458458582096998738998425954602997040829966352855984300852210309092967640574904971050178444549762048382729164124175113131325138635398564448430617144488845611884931666461467923269996476216370324141788057539642219923822647918491081240464730268040588383927176869834431728817801706467011440885875273896081704803711824325380721371771714701174171861417202454820228010496518964571009447965651104350138497389944375337912986966955771949298217534123071896837453912358249687008585278853887159703520557492745126781791456299088047005289253452347431403965891660921041660342572687836045568047705611484110128596559559746742851550493117774772622269678155982673025977054470983589936445085266346581222088591670189870592968231691264015162761476182937577631367722147027329109306893263673279867449003838174844448507670630219360267540630323602502432241329573504169092498111568179529373178156047782596233683173580411731191551984036866455349683909150688362562765175586117211208562868513144049110888837454538215450736684723940189422582232770893787527682998900734482375134090138776940436662852797439880650208989369446911734173770521102657136716885190612545323804525722474519134323739335209278071562387658066099190130457924804816900081526908843454783540691599124750545752696646298599775821333765882788441773191752352325040774873315899523065723588058236500118642240690656943893846545712887853429605084595241184270733514649598436195182840075435623822967429654767732359171705643155819333382348565317881096346647899878231168511065848122928593498966200286914850203599550681883060038731641323140582603370117594446281551746820448726093304706821871987168927846432793482009370982295695428455667622784229693446114682116429949991643424536945612439348089355058579280678540637329517628320569654783135308127218737864826943722646664346776789514116128246364755427691632233796457622613352687092848887427059892561970932675530574293292598615719011011051064115111344923709997172404831631909667508458327521942769680963265772427298592994309843480646826097557126612263486319044694710580807134879084054763791862790957418097933240169502753100368958034651479898270042754078340665147870233135467792952693997454386608820097864684076016333880215722849595496307410058763760459591945898836602604798987814724451903403247537114298881663627799688752986765141126581368876848825137747388285832853239112568112987819565588801448052937524822674007573712737270747338002234234851809687192735701915065212816089433327778558133346071657049447370615666630573384926133637192155330897699648408970167441023205269829072800026192394404005051375392981769747980065372413469237913522254810212785870349991156047150898869610497588881242514648882673382761580430444625225684337663701201719449383935398037370477637970882574683764642583030312024061015351222783918344879625116939121709693927576603175369754054018178078123719296467019262632072130437435301668702278243155021833815873962821493384706071049464232059187029125539202704822313357316301048799757900191596850616086524523412317970263260732087604050481985158830642169482106465853301193548941912861898843392906568654193692264183367947072845913153444644657806851728497841381855755934462801283486127762891185470722113646146049267036709359431247453689162552732581141588625024312246005977894643190803125363614957842404315371003553183136194817091812199518736026773809595928005591470470596846193916074333277597895740789658898142647778863646416836531048331548160681243677206643557199166279815140823276816053969781878067034644861617663882952135661904827621013336883438760526342332773829827489720774471042568040913809301081553141883105501571612732453729147250818775084043343656539596079039645199197784605055035624742637430937933997413507777763840171200085486501926761026432509462933890665438857353399658617796037286211229818868623948981423778669426699412051841396391248709989880124415756256932520242868833578140862093650386968675332118097237405419906032422137106501499674545301657785074766548336160731718954719700629401155860831638546487156074584408244934856702572518668050841541269615941116850999383825429111494192034275404965550804022765718113263699280932582911257813017009774826050785326964238113246118365104973079017005931905710038359790024583596789742181493513639284881067841098351279089452087049714518351320072842626813332125774794363650386036078486330533737405760567978266424578158309662100795940076946602359380043297852551511240954977151593789875057885933298594618662498888665814466287877072158964226417330796389783808615018133856987153087718869378628894355636045340128994360496958922431195012643527325177175939712996937380274341671150270133834348642078732465756100360981029008568819024223863999658810215966153945871874094525671995236215153285986666271030420556773289340712841428057172665902135420499460550141793019657823511795699349920687505120397447690340978014504706847058178484476949162506692916071242460904598381091234734097270879536436560417255254199890257948243070488776300055423984597706717391405651273916378961562544116563322832016867744615621475762345065874810663304114810271877291828015029135403172997422725991206051453435422983861687686897299264088011756134042878058314432760336741006635801515602200635512141522519634041485526315241308658303168515974162237101423810239045726552482025130157494798771913893551830118945240962761008053131069554012610463978593761082054546112613103251570167496922797331956728807800523286141404429889849269142288991158563913394182534803885247383547354927248626391311535114913099632362711096316241027547137172052904240389835842827175354407153123130647948423303999096197063108454925505351326708678379418997678332530912207815826443679182648861458147641793526210898997383033714944120565744783749395811928784144510210881367411705862601970389580329668200517161613254805434018403761547694583756354608417628510413173486839958064472109052360157321138175925810464723354254873444458805431809911319793947195702093166385644201490568516301110338764328784085131289710467786450871638696541987998550040298932178832189836576902243929899151960188770429274015360330115817746131879833619357511728686693897271146066924480691084726553392485480407124977150146982165143647525814320146106387669529051604753824183577488692916648266243665463899580140482200704672075840075285106691701166997677798681884680271444131733078957289177899281732029160170903011298526486209292989170019218608292324675876325592963591285999297182518493642630560016323151600598287426754328060113537057735165859700518740399398011560975719546787627656039144574237431857256872606410441374823232205019544613505987581568466924541573228666499728590380833996232100574425550749927823694926858236405915812698404569949996209963194447822399622501239918076903923798782706429405152090239196563917593383304068720451259831242986828523381809973342279748444844656172673467806877006820175576480693193400777765164130601032142414229785816224401006881898163983669044395972914364377278535656413838626604881110238387564951140625788512531452606680297772725825526372392475565964422226623624408505375381879634474549359541330407765444131577152190274729831059559175962620881414110642909367189843393100272840106549973235518940189418716654773279521694231504739213110565000817130742113162592825872470845342222147932833157546249359111561825351931410364551956442912002117367099494073384759017296272167191908343841648157053779331854608524499734317761978969715982371964394413731277739104421860195877451018224787531541260466445107593527408211274063719446659729554845039873909133614450771104926465754891351693578220586210744723843747079009410722202173676445745979325828318111263839114628455617487334771147738769935857342191088785598586989120782467702506662009984651488229534430907560131294019951236503391355729269268509740037665435168135404775074962545204251853505607283272200873813328980997706252786422807531479078205850786266868279373020185383804381838769069930123360952594731139910183188318670826027377872773916737268354958438327954694788143999848390320273759585790833072213552755856607375155499903804055346723754158874681037455081460955006417291686980704251877481381143929108011804388901671283334353960505141508670371198112848543193380480346693371536672838733456312940365647905453635278096542660439985529903439321655222800001739835609346293128341505635942552263357334737277258871416850970831481532153125313661829733247203176921893698730786933257480355919793763315474731928932256212173269732410253955935717566159613353475219473450471119808678411027793821398954444405432623571901808933876078988798267460281993066570198135989365439933843815250774560803949241617215651580268138204934238677839964175691302240311567848529662996010630905744042546055931977655093964830652537736806627349870059229393548510285823850434020527133809544268104315906884582568651594495016978352410653180715611848940338342150219414097208332457296117615294230283510349657620938196079363448844903832108375886541983316633085849215846479477437471216693031855018836556796492635548944519503851279240128976251855357398318354939092714151286334381687857489139233906112797183783591742449740524078409882573138366666510095025838376570445059654693244709228663043833541882664241485075127559928120132250198673137246396738748575781686861414080065567875157258945080965945826692163208582987262529164090266797639642801464910539308884846735724037654623362118096173326084211353206462438737707737018638857689311381065847589255486841995196958029203947522345500626966071295649454289316542990578354824959277075274012817381457064293456893934485846432507810680422263898195948458430458512702899734287002953840726914317173769666458152673240184374727327670340173213069355707745795570512029277355395652546947453633113027664738784947207426055533047755776311934291895649958338545891623425215135676305833626934134554747785809901686720031909788857773034390469503101369190295440568469100462032548227758620187353452593191094598485797543700690580277624929856942237931500504196282317555495585887559948991804325348073868862380425923845034030210674908090510893911673308986138103536649353968781529039547382456013263371104551039086106083961404712057479568748638367451456355276584469591286117048916461873073226476368590846705680289297521223329749121761054516495636119807994458602454919325947153949184042174996910228061725735464360515209976740870719978777963940270844627498553265996540094640545177772537230283097452337946256841997859538944563660533961372808242924996256516246376092314241744365780903193328277504151791148884547231640439419940197302272904482805994135199972949415441203716105353653333107283955880109820618816361803980972399106489203135378413058928682558451256440503556198484505189966346382180880975796705964755676871576486678215786023892144843210212187618469672239717813221080072533256396454266183988933446964170999354610194337103390749059649766378363899791774134929260657351544817511448875727771106777121325677086721707716876515847276383428779637916623596655342684104533745093403523370135031080208232292511153983697375489090323037750561979568029826831871124816638854152782963757509129543611702213100331146796334647168321660790100685742873058418560674646334732554746837681527394393812354164944831857127014555894208346728150160309548054900283066698927003692931814388182687626295959468063653734266601582619389617795514022212119325361042982587540985796290535247429595370331733091391236423077310756071670039015196790436628405019008846430544082616659357712083649992579394269347858887920506915750535455668034883576685760338170128380856289540434178907137120270258294182901711670103299479135577603167850363751457767450680120095446126778333020328555559705716604428663667391007938486035818337988692703971868398027707158689593600075454795358600558047903090861152838122117949763162441774010549617186003746703762809969269864993599715863033431654558856769677023732838404586975312268717946520542471364376966043175610121724319512196959017818568587835749645965288734926077406841726366933630853933843352731762016698431020130472559177127635810806097127619607085135960902733548978623467943655081427690362608889356204047426025322593337086308993855214144452270640286771716736410587243374101080256132564828926133649568120674382781526624352502478286412221162161394152339763168513458300563247370058622564803047939189420903892570846918230734754827387847063928593358856937460085366459560859082706915555749631176799057351327890339290418553641667009367776426927460037946303722023703753920582551023907372241375520461036203590427081316915937662487509287921164166212758092243647186542046552342808612459468291601104164485713511408390320479782743646730606661532644131330541037578217254260449261295100280565674792609152673941002676193760018176577489426131650245751948122750307447073590535410822539803472863153848364354979076387970395918567493020989741155951542135269470869694487756264456270657801850727758186396825544694223185462567264834697310198752488907916753922669780977311461471412360392910708775116713543104748637179903894861028124030347530669703465359389976536035890157039967903477188151226836951910190826734367968295151700127898798887000715875836964999774303489437853967627004320576066247322713271447922918754141934936703947506022762466283932274896862345402316407446767871683835085066298661389362028785167420997292345597205716526570063328185312142046448792998255715500728361371901446320159501131695765223205330099362002299552769623478571159917873711282079070433460007309228808978458414103111958911675570884542519149356510620439483279796382236084604853852982408107698684609763724895742140740098046036405939397741785018974992972377685447024871962380206290059117893013121046699938107940923384987260738722500127549865696125354903186050607022121209952044310571381976161721417980984760310125542792745963063069349169991127703961826457973355219567226864076034667483320067087602356920209769724124960390192641805067741157432960958420293385046350222978800525538410372226865536307212169223966172987343142018723961415791120140132806445737980427571786864249089233346644558663589381820863647880604126522042350054152724383629346313499807477044877717014176618860837171680467119186096452757667552622734979719405424246353128367818466311268011692066225767796416918206804845449142224452877714432002527124238881200071148116253455813391881515401229862869834390815438030595595249549336643511154466643273960202289910118122349221377878186759097246060067725974322209327360278656180585436963702826847480969495630932101220975065855099053620958088254946276314715944865612129816068428911087899056586702117982290621404690643623144569327437396590520069896659275836353310320338559716810133003724326258180551154302575889861431884140029971417813338886254068996793811894413020671063672005753979449570471397508525122985014015889193524261137321645926233473490390597474839684655262861610890965833089216665753998193363162093849284821110393131433496471214158537991148375507911666237172748375773073985919776196139211689561164932414515014477115790815097068167767475856859910140778078050199324585521437047950985261390155421938294419482414570301693817042762298876769155600469928102853523330826346260682059817560721498601275834511042771268778953133691822571752190541887733784160486760473011791008633240647400902193860569727219482153077899300887985554554310403171047667098951325499294372854477006858379483060852229126327686243875805723126735019734400099085065049797153215051875500055521842384043099644499866893942907143072035511635801900456991767336810677944149660464496189885216648003515981699414570927826882284758206408375052082323279406754375523073115483318219333923187945022690126156145015278953223793844137238576885945491554990745316141880656824004448471907641465242125722234288502910425733247418697379089588661822375592160997448204272156427351278731003979012523380036115166472633638596954111261973938644727542315195148618126110800710151731593149896903076429816412309985477028459628610893958346239694682321348273389960069548125309300779686668109352151541806282484472109503969688730897448772270865404815584933794693185883843068074326579077727583115075428000015449940202187133412710033011115210458627770370803112537950554825382079988010324257085981600458219712572389963712153260394218771701222845278784979951078424685567691508728149606439122359669983021686631328394103159589993214804809264058771708938405022403258796449627009028873362484920792851808118132986841733209876256982049519551145610483501517236987386898320509771947108590138623804225841475705666136004786541972763848395672678741990638112793901442658267603221806130777486172029210478767871348505137345861310256260593161444145605342530613465190407109941185511431098839609706064788966142692531723657560770962346659699819316536546168961603387159254328163911494171699136935732662752233771858346691156697554220528074121678375809899872689239491326577208095948021930141610701696599692731134613570166268898533684297224419553075573101330683424917718097936863057550181081775450584942937393968424779479879061493258658645830274594046287541332425840320818405047176112558598208569099218559096780091869109442780063294113100841939401507664358658917243908074817249901457883727414792701914906381818763426928688724065950829673440933889178982600399050066048008906979897126297178485268052065537101144127027594489781095964250133057761552549291951424019269636245130110461301273581086536914977042747854919955548250262412382474126638142279358986702028712686662321406203797477392145989686443317229706901927083204677883597923706632013509473307653677896006321929945602261406696322203914848038879307197673041494982838902890312805150567334862156889752280519108209159640218648858716386303598783250340069198054314970284622660046736002956385498769351209108433897697898856873017223380345553362565759902539129092970410173095188235340069184167431361851167501244307104356690811236866390425117486462251105792213088191296660950938307378454634463623094379790914648647922210572308916956684896930303348771360974873441955865003541285298516117368746625555613300506125254949486486280859531473232956250768946594335233335872317911657130370394004946484773718743079534145625593372454416428809138056341479560953813220413613068827788690814916360275862329757063416071031966180701139022234782675138883214728142006652079929755933542654958145838648360143779251920097288742126151601924978262945539771172842859336029665018762655852474612813277992664343888557420141590026959567371919226000895785099092381466271380681657651081865281843768350576541689373185833659306657275147183839387982257788212763174841517906787395579379867158541565934205176076375784753479851638627368830782821191818356583864131122033703549187700053664992569455847154734420607274834581254231883286951988806062814538658590621335242154239697977962562958073667911154294100704951102352407120560244077622358303021375140403573037500280642318068134977858084424113163876686310516097814037343818619928347509702516052666299446193531637379774776341326896101325502581117077492268698686741458885806157425346816530260644965675966084996346754870349392402244044304454574065665483446847679794955390366647469851280306852814558411926966995964328113692687186313537378781473900367021992407587137071047142892329715368092256502937602674610741100885550745257134597568994750479179385557137141372174300380963225590919702942862101504050974908771883147507452491702811362422736226594575617725959181677925279256729002802336486110689132093250693811764793453516530466127309410082218483264078288595734026589981704037744684927367849292943501398463626268176100415021261597246669690983889391845683666662535308207974259762713097320709201285952696589557224416779314079452729897483341501509862491669013907233342705017054913079190641860831236453304111977198571816255751020981740647938142620275643401748695301925988903737933214597737431544939530274599487349240788464625129461161238886071652961591701670734468519568666400948662325435699064174565025612902554001768259797108057363148770794304047861440379343719984105426844426835056240323751209311482792617151377671746767597483570064924642576355276254677992523123933585132884722329546322452857101864879941969712635855456038957072621159235843937225749423509764577122604923594682406140320934601838774098831469026241131563500816758327285037525836043397239554411214248289253888263811096960813622830757932680438041228717520807550504872879463834926655237600758498711856783409735383317490566126654006832855958210748609829571434916890800281535820390347804122628288491102854079927558371956199702602416070814718298713703662294359931864741009256132036614972139817671691077830370172093046301612194583487088500997639136296027805038289955394922638814651931013126504350065994276602365648994199805192455414085008537343810566043095509463726035682370819449203676465725619797935340021689837383967360094015145529483301821752145261881730243641584008758099423590213716966814597242984855463997729776993661184061071618784812153244443319199254769059593088582371834486083500300640030603740392800193097629560474184929973329128670157353688572191238561678857649886285062589577597909857965981267932340690738780410046003327400584648699945295484473457238588183723957318999108236170348414745445967210450318165725419639771855855055577402938853430228979025301444512520130551266772163756634324509124295763398623394675934523805712591490090941674080603286358224640415842410402469636664757076699864919676851793363136027438353976394055309224323558230507007492688088312921349944600995161903888509391308525437032819120841290238363368523939069772379379655591417115009737781721425886742937844996190932537366813923087610250244515165539272151117508172657940925778472559517897337646885597667056861390558324297388257096459760282191533403551775606242225878407918573582506554253956583838112441012056021061188701397396433231362429963646384095796213611758034652426739567397032503912170854816326377795941421586572184272027069733639652924475567126746794325146319463349223015383608763025850242464086126967842961684143365047701750864748776173287582333036275023338081954640724174321110952213359425672318026700142183370426781165959347214894050766759387902273931166622486095962944506542137586850418406132333957411338381735125834665104275354336103101202146388241201820476917778367656778634944528546418901961279074295642400834914761002730167534050516527504823228564243672357751784069760473723053637133966996770388054950894122061044239974558719821106850584178431399020979358394794065849853227209990247043858998465284407263257226401853839401758831024927377105675542219079111197321967288584779225815505753061126133678913450242824115003344713551580255989176902046795121972512723011159021482466114969534914739422058942561492726524709476481153587187351654603484926939700690194708516821450796821345807444389480203564931709539847703664790036027040522946706196878367111187420693548724148626984176706093143002400011178168776969806805589230968070306772206878051612565396036218253170126266023630852714647440479351672295956371159964503663301717588660263003259409938907136571442100460569997496681063913606492615312779592837733560113393879094039029140307546614985285283594307175102295459090457471364975812995302348653283706080431720419541940182362334859726096252696739448332504192007940733877768540591767244497153795470671342314144872912417837462574713778699675158281271438963491166801521094325938100937333753170745837602604350688681864342420360624917272878714319893349274075629594150259161462125422916236686970831987806785958398821811707676043652471325925529208658938518627778475425902730902632335093662476925511706351290716824101234141977760093800174425523190591096619523037216320708875542770640211821226978433867867387990708252918118018797616473306748787758774959315633661306919939638452707399401792726180550801600032804823870482642730389824251763481969638041966171301898975918841022991905913168665476286528185371938806908979490084531285620638311910159310016083044073942594091263419276103127758035365670161171802506345238324689682310018693236738637990249620310114996823628654142595576431246864432087047144143299966600850797387436879186539011223379605380502968217783841918852952921641075658079105383643147312284904759145839491306925911475224005457492831051472545652042065577208316020563938022123162496046741282468015959538363494670761031821822939681831155460848521093757797666836135786367151986211014189677612955088270147205343816355455271867728522627443549529641679722337494480031964217855403265212718814559367518670099843033911590720501868586750653163737050895738229108211597425611577471910962558579359194301133962370530610428955711507729135418316891222162684206427130806936681542896711893123026213736923496411007346952370776658638739361700241535954889587941994929161121652581369231909450796888618394198318353164895232542581663094535688400047778427888988285782550773518383737086445831102567485084112884453199628765775998210344129566099751067169465230064409524751260802975371822432018042341271837834658855462944927354623426778115272591344445401123522201547576125903878916668941194433933092947175537688874176615683931424077123181024545825460120046196998871863192887214115802117628496972173285477876860949840798307751509666777770047615524078465211406353142981951577991312681903007057479271267549064958009945141942945644837722322652107044617553138393023117672685284930429775508859736846420755662818142924157298457412887627574981338952944222217556962643050384669344465401891832230190132822174167585433662289241270440095513444079889770197225361551990572684365936256175925881198490101241815634017752562389741863897043030420483080405149195934822262903562396010287560020194702614997485855290028516051217536808317188767770376250707034628344956854620692236027939109647159060451208775411010630854335947314310483032292300615909797887066436868299414559509146638387069038590165994816480088328436081987262928501962210491066385857786361964861360112305345095709355554623036768853870245522699137623145704014475591340143127114423090957029388410813779299645667355721970933333866691502696608951510134522258555197575159758125228357712380243730067366194380780232595774292307098922480422052919602329612354355232057618413844125593609473578983313129089069768122375785761888462800549189352318148950940561045537952642809783191491350844158523962159176320380758833209045483037169306272856306748914944298308846930974518656036797770836237984643480667019840916291403239377842148051034819406171206884475950789281003354028755118854634812184219157418254626243539356870134846467417254429607303459678216871776600694139224438827181102970304826035386104440403905457380777431152818003888133400531607853252698129272639206978563539922567177698620014750363609976345297602892959966068320796795233285137497651678262093387294537243866451606066786929644098070330716611460505489679749819331978401414129907386862759374052385656111899284033530819469408264215479639521104591912745772293244929044688727175792060909828119270175564065758234918444923034289335355846564683981549992206333914934254555101029375304722630903890931337871537636166912281630363516620785496249212247687089525793377243280493761509790135414434416213299933648437459230785054813792803679246787201905947145573663981042653496167020159292175740095956482569984517678124672946375912741048204247824911838595338676294073945175920349494071381635199705170881421354848377442926411644860662390385326565064558410987100824586704153770593446501415706751600074939387674419359656270220150161327610745758022503691724575480119609902318695390580326491493548050149208853470158557191153027991736509743053793156304055296916396977801582097626595378884625098656724667631163453913592332313989971190337900474470574074375805757325056208989840875371495194366869919106413908990991224595459075516753581264773692109208243359729392286904093477917130505449833699451524644366000784709902201479399849064828797547777998094641721223709881732149732568714351449626165316357275632201380832396396812576539423565506646508407887352921585154748998340367511062347601518191848183242245701098829357473160399071126603313386063502878076633757686154642632946895147791297092839778042253050255693732857324105847189709685797999642095194597281886636653358032239224453592195933965446873423805080735313214827949596841122800103650636177054842815414006393716532530827675851516976358221375965167373610046154774877147239769813732837909304604636739175052510477275537809082969316984981395614927690568587145003619858542889037881996434633835789019765868295733347243896766720532863373070390523583535885656576020388609398287340489226795455023505221057662017456853928645923493957124448032879458973653510031391529490142432225256234810498923251056743227183436209774720482504563663042312473160934063476353506819274675806362936819826078750486286498439450103921007496711594472774246715850325711464675065100890370012626682534270207946540137180266195069880554690974245044930731910674008875170832130512752813661117939335119951601509755270248715823478484048052010871946589189549988275390594953365508948979087889479170135259937965183883821954215345324845016675530682660725855790153120982332483051078513953281269548926896272081882308194072244415921983415885192748995065435518367965203985864812810917533756121766024119453608869444925538958029183723935093899495293592448710007079729815853729322764831816926600014037577048232323013668939654979695608769204661592127642075198956835953151455822317836313139285293092873728924225366041291186208825873855155178907729429652598593263982233700031747815892336588470231128763765179559397022366649396627717259614300788487337524347263339185459982095356530081500724713200820743786637949583808956559141573073193418157428638997799983527707021626230934576262928763455474972652477804435268861785144758724678081637163937145173445393571106029975665982635604936322937096381756545784842987789454691663047942163888099856606544531781967625966994038035087774155991880057462744070263096113950592665764059634079558135009283893889999913072414828516701736625133506262448121642474823295554680153440881613139140324853328641796529005036347375191054178441082701109054164108161755646801964912072944482811822744009957966843050867613593956382322799094441000038316833273768720536889586360003363309743954288191723478493217036558528725816192391807908465100199883410256004224634024252534922576742440363938209361566698100348448958559695645169636132421075847955793510601734910277578802555529645766873140256775137275755249984344842149428289901203115031491957088501603125686844547576081275221526156390407906272398503512859099862392612053688654297942586350008299287467160434265694994668005978878668609995135686448616496733197652750686437248464921799464693542151649122601254581485916654279652910864825788666663687758447186848976013633425326014925830666203015185226834859067511176755911150230004920531061314308174022199078496899124100777017411486794902313624817952930129990131327514669678284667111176155244834089861836505347996383655857422435211925954965023174148251139449126827042648759964555909976135770238189363655969033060295201883603272480335154722547484354793960916586674041242609710008942663388844533186496390241999787028652387829330411198642642773089917576283618526942332420316000738686990002028943383362315676164378960776013649485990190122746927679381438270165113970986379706516682868915994884984503409786105926161497694135862035175069725068841967085171871006268562227765333359916475622261600283357293837316276326267906294805592654221742213529686538423636453352981318233438907979811349198056668664088836989015568122312189067777774974789096948274279486604179759883268686469624557838760301694303636935509573800429502238141613580066288628756546142910404677902521997078363456887555613102164978413892093415179633993628900396845727745008324583392520067732197902282771946440853576307873931514512049219048246206423820063903410730714799967148806460891419569190371822971119450159801105383479849252387415779600004557434406343926803876304814048854971262540864786014592670897634694362423781753822188905183860902887506239997722098586435325459325477348924826475501939184136374301084873742858210216203270569050346999651593240857622542192713688036845733549070325888776472249724878974012949939809069231755242635597109221640093086658419374168517139270870436091616760129277243728409573327021004664420746807410506686619247836310888219341410564240530955902760275795662995475188466797038389751367496190143652434965591421103807398091639855130228779941279260590662804000438096693272173137379782138265292943913386646438122012149760265136366488467414823792976047971518401112801669556275461740659808355688154503933869404010924330789077362507164106442946845659365169867168448053746638329488838671681870025792899018575437936642166567267327170485490569216635918798355675505224711809913923569817241299928508239998512876916927190400744218569191086658979699921842177026933038603247446907760043945983072017533288616817684079250484176974227993496901347970169915512747622146788726602009982975124760159653378362375870588337070000495721688083267687318560692253635245542366908582330994612932327063007490241908259946143087543042317627226199772104054242440352491734380898444883545322881783724761282314896614319167088623962511374640431747038407158943954486086310008085589324617547924011639208786046498970948450515638235224747556449319914977871800776430461576808197896262728741074033178875524378256240141972815411993550644021927883976701026703791625424977603713706409551008187082404286170525754102699896490021409031200153602785835460202337819433107882873796376259366321796357032319458124271879055779200264804294541989847023600288620036598872815232724953595661028206267436569633051435571980953978424320945731487852720331069743914411853754910759763826561983325694963189194835147759700486951684032586819514552184578145646627923906537174325475540843014279100916479397733334620804574615611178009174863294151075449823454572397922309977058237232867335881490944606586421646075087354037362654043703952832225107864508923608667076342548018641884706184930599563642972958113583288515941795599760205492551711444962719853328157941360024846585310727937420408147834880747724407240722829607164480738437967740179595732582290895711311666465772905862723109953046647130346878830196142964691003062874888299424602221644607198896267540573669950017814380994877066705730073898851423603405809328626669057698393278592276935483658735358729549313795955276517954670390019017239235972063153610066592922527837435655788982733298669059044692791922023379440909589788938184299299381609355926010145110194892062619790498270329294688992804211993798812659082061318108464170597611356631934941521548909152367499990441876894503146663089472658525889631027317462899168032279013017532962784256614518224663257956272052745605665861835975615898125456320325163505192196708875121867461859276788784896749394613846885123393676215034834647887221884682499756429600979355200759023621298317526482003140845293139777561349180199213129081366030359231699195847846061396967921446299086792648346986866469796198527511100663066720306104929847855492980317842655558891557423686705960582214372161144724960108953465212665806150269738971538439409474068691828393996659571247246359406489911604063182819829550112807290950648204912254642451404551153863862142304224320556433125720732325672603980915072388098821522246441962176870714815028367072760434410029482979287103387897232996055627874640884903294759846029698713392364490297951610890640956767736130163525619808609907200015691036980740003173191659201486924589254143808655442616875165402127622124464356300195042935424525775102938923419821308682395474146510240549380882942908748174943669991607222475755090977117065494040497316628128042831554601356832433375723627611331697960424398993216594918392237687608053662447565724555489799718758702592385081486457597606572898662221371720535521325841999361145864902601742230857736939838005661726893725710895893068717311188969564329473383211430210195973661553802203751404181673488292300425769788617460978929484857243441256944810669764718800063631927476307176504640921126135885669395993465719515638545518053184732454911994971730470694529938577981386602930086412863851977020495219018671897848284217448894374348758301355279021947550557981978307733702423834505509655523066656809476706519231139963386426649050090134187203447383258516348947871968747908454419458790391575331752640759909678483872510055283194290913004940348072469096608526371117802779370960410893478967596665020870725922529007802249221145819498602818052161339438872886516428904381039045050639188634614053533224610824773435547703117739118854054766890546654912847308022434941817350155681282088993363072053669310145233457345290942534646598449927309906383111667439558170115824018292477625630182060948390113080110452254396962709878452695070859734997889077255561525213389089492032462305905507328545140564889021552447947446525909539261044750241322529770254617465989427287200856749013949429041823814712804056387515421632582645461009609342700473496267384799569919827353312212917399056935361366669994483684641720486146754225617100101598168922189065240093692323819098222059406603135317667424742883635970086333273567356905609203672308075086216968015650568453407021675505973911690878372990945553778084584865421799114379458722248629473103131780224334625821207612307779539263058268429059866311801606178802747704181865596235830014694190333312572336053382639686912842491725192758108198698479910552257435572581825245399857385285417483456727455411774802049626422819009510443768809302019509287012820266839041608225965543686688228596925287964097892558279991774493174979090841111593901974004551873689430840367953814913920940042166129796620150130976235931430962269053198077888449641989125115860584796989732832776899319039101786897291353553590553480617856278203500549519511730049973000297005188990772238009584317945726837487713022422113572390663283547268811356390274867231077660440309761212273531214568388060608372019679906031978652312578564589926492882887062379070295400274333652042307416834268943642644095634915297676236701098546729800576223630946488128955052390240968846150231280606627066216603848202681490060942861847247703913205218320698179392785120468408128135276733463476457025986284355381206825700273199613626546122350764164944910799912746881916324616932897366182431594821489462624530612906194641185827842556376743163742118345614837514322774441483618663336319045368120382641891190600793400895841327290710535974101295661882320297908664298566628801980666949919699150367393819806492018959602674083657643318800763845025185341165045403498358964035047421962862870132288411294520391277041027384701484887457177575018076942507766931977370779549327766343588258790319131174287508220198772940492039704782478149572343115866894896249996145304360297468171343006914442432945733710705977395335785968069763164988432793012237635460649905518033322111055727450856238194919468201606179140111322847097603731259450965624814584792167856476480571871433380947844503991711768509855074416658529962671245479784130129177461905777395048796184778226479379895022878787241082511930766192605673841886445303939088326029585696118427061545056552491045392642844496883040735670050662875618578676472189001598215393371170725682764417527548562183008902843461007898983542896108336123226272300418146430902666971342649021242274025271985741572794319500718179998995649336016290420075774738371371637313643730354986440451295576868275898535203906848898631448121627085914668583016255800504359800368920733255482070799749312726515724256575474745983838281621476934922780497249874416286420480300809422012900251381610717908244531217349813013488876394227839844086318519500901192931662475203196705237155150370344986953957066429182188254225136823951108508147193702362194336864862945693698594020445843615940859617341118515861051656463747318970023510229568597591596250530900647736495140756899153518686314525169987738830689536185871519325597643846564617597556766076794572086392670441027406927224944037715075650115544757614023347076279371823779285713993140770535858790669239578381481739375285483679099527973096333874749373932773704649701094420179311933959172588051772538012269293969545241887939664325476713263784287582445944774132678742373508446033516450294962610199771384824117474966157181190476461630007065959076867428737065265433995766676383353100977445588099189263803611187212103317310041952233905837497853536484819872389513627148311411682136977194163436919739179583791248687490458192514693078947179256700106326214211201358025004197601758198522511879663659890567288146993979974505189547402120283813497614614928896843131285484000398654336701016479301840357591658091982157456863871849467601999911814987058670848390158398631086505254023107443654595561259309345248365536037217599173596211582854165297591767929047839312668548543016447601467792944723521419030407659287642583786020871424207587702008661674530745675114965975580140915839671861599363133658193297725427986055675631200351113140236890452592301796927214489205932113134955838362025505335066458956615015129206382206271530950056094925930747274062212317174089554535062788119284695013726365025050860419300990154401350664977847455425327594674685805339189101908883986241644505870907694673022510015256494602375147045344474760348211013876470231272788161865382877553577183259851496818397286447507586631858390658068523205492040746819314906948318723054843336667663996496542743078609729576033813014156807341054866313019683536522317616241087037598291375797118104093708455257013836614260246193961979550899207963879971004395429945304513653059252723907664823324776114100760065122436002920750949000461413863654178506191785995655421077036143821754563780681338982342780594076422328746949416105961204833306293200467358196251348044423998309801572300572892289532910382120219228013841498779881545750288036094807348793983587364914220542271976158812823170212829211229905371446147815814309774345545544177698088039687673948698684600890817662117807828996078408182665388529375655772078409577909556329333271211785896378210023550224741868229006097794307669971457260055885382677050071418766314260646734895881334653533800836763922753684877088452331555821225978464782641863022780660431365713837998340417858506966800248817486946195567240775364531904586464593003765422776602338508846312075447081943014818693667653836018071417044403719108348364938756025561018430366801516772703330325490279151214211243192010526608333696186194102326924836882205708274126569316477649942718645173898550063208901913022098274842534344811212930994765247910297257777235969421476546082021729734701363480363868687426091681118131676554262267769732370221292553776652766703278522872716476538214634405353605029785738197220173620951821475524379582448841378152355889445777255394201644651511493434150417061372787854247551394397117925241076167927885837819559680639504571221048386139645448230330828356376933445322209343774317917327460116021484788119230694849249786736687550197351152553812769941383633437324398734363970389997974380405660106570582643528837269827005451568391526425908490538004396884664200422533850863017659673553960810303278798151111505916871528878820470496799470464375016753407367062817026393958672814432618640020167776738704246044400468774920870837729935703911167687147315071450275224894788742627833989660104111875778362956704011982229460979487950089220333456903829045500445911612093768057284981098579175612531237422130511697788089573445485751586375667733518908999966639540180319701158755112323885324442912277373476866794340486618575377655245829108044343179776877307370458054966026838686074038144361695014744241428009138022729093389698070628536295758438345601221183138869689512792971470313301427623364934595005688786935816797509434268308776236679166139484321920816571418295746390525601860555647405035090765818420660601287519793020856745657234299283472512606472940708871443175954198929843360415868596391057755038936511255324091177247331009503257514600402391986125592248779311595128189007243787421628827145682787365267074821871538004412941110746790262989346784721365254041692831233376615707981546688128734971765673472331471832322939159637557054630214145228168741019566157437110590743192163385805354585658142234135220152930704120360472387781373109982209893159275930492581476630532430148258198537421478179795612528253881586204014210688163225673309620550349145951841426447687872436285232294080328607646726403595638457200909294607684141821044812361884604491124702048609020797381388083824895331072810257523620312654767516000955683845020008959622286679541385660113395575362129824059011835094566491346561359087610744043015414869552317707679643164613228673373971171027201554113956395011923981041941578298994280616178740046847515425872899639864399619773973446080743428164083902334092141036566218140351241039605093493811454269045464593817393769383870155317767565511581027438809974563919772721555099445868478674449855096158251538044214207963805978403262530670505575261347462700174415292028850074732713272924970549941070524724795312822840459881798079717163187430386925299937634102162952164577921299618433132020188237898337615420830766604643211172533308948111775711168202732192475806888181266538900421564495832104065396579693750826304991583470692132197376976168150927152507608115544270070286282565118098033907348418934464934105042268455766593181401979569152246846563426427118353945186734164752731483997896948599849821829473504029877758174351065326901318597819820520149972845902274391976873209505965900828972085358472808614943965401403073534937270063988532042347935682093927348685224331045051717537374065204150553005288590551525217702809841037633799479733573076141261222584236609607421797270467249934064183280876480281995342310165653115711814643433325047873908245239107944875645145476075435952731607411185889355904566499959973579658307233875482960032839825533288959061910539939049025435817532681334053077590806095935500804449824569203856184295703917682744284806225878314937607102312295880628526384239529149690550488320223035659272736501034225631984541725211000817829456242240509659082114851593656950534868481318653709305054007116377712888834856255326798517010625499427741495722928726436876653900606434964189794164153979654848503391904656773865246316132235686366296428831490393101508076960972346682138898118068655573966390201464114008232428525296839360638498204888861938485666926495165966455691347453841196822091434802328383621630523563934128214988067598651571806134872536110917070099356036851708065099939881559299272881699843248975631859867580976293053706783632740043895223469544560971858044762012813280237764517240482547685074453125179831778429070006829525113618558452243300296852646968498837910515411576579387464457661503587699950069995711741040525090770826287303353679157099469717695911895157758818595088103586236398438496372668711337591714450030811134756424377179399140364401551251766121169463962444820459873966703578984042748595394488771356239612200523009759442509773297960409739440499172427646213959835280685185222700662388615185862730817515040037340958931414846781329588659061891111330941725834965823460596155120555588058021382971811081459787682951541597528375251320957081175177565987829828677097614685637816052176630708248540188903830328445745073081035582097213589008320965719586219581601662425776836168141236757585547710998321589088414110638955253094530493986320618212259678939882510292807118293029974666576765238991339100188128212511871772750643229613706319595037187808477614963268165568824260509265349275660262840813380889530065825007694440877168424228265814310667504997792292257014159813314505297698501234550927422163448437065165661928208922716410057875651618927455540826299244271496455204452889807706258806744483465223678682047090703157202039157763291660521962597195238674334198310333046439561536133035319312707730455124543506166891886777556289181271559878515279053941989671765390043714341260561666518197806660456816085296333254855671071077744895647093754780349067973956690091451891615448957761366769220578946684045510361683044860406101209370758171999754240003577958917511297682886381535208004732024716411898789272937295569590627040066297266176231472581820145124909307158625602744397766720797736594055842931847917147620931845347949168939499557914694294118882481144936582307079794977337596159425332380603067981755875613144412040234235669946696112855414674114764281155078262324894410508631596976050050254126944943802180992826458758918841240340610200820670004025545154046286708456113656662898369830218065529609566132944117022470181969364796574418956445666785323240876756103375005044373005719533131811367587996660097875469156392149289577909655557611829583644643498150672253829719488160087207516676575261434491112229581346990841786765231335996388532950574564996639141652999023042347387647845064588387664215650829625211346001595425517138183752005820956925308327405093577030649505931785640478678552564278814363063768178653199458470187823114548971005317816533497748217565712703669341706223975786903501001012055587810039457256548793953695117991385783262245897891348665946231834476124235840941212286900310516725988681531865030884220309915023541080932534889025950986241769622365629471032533731798197273042914735557433287736098511708197409937658208670082168722702976449461499381236088488750492063102211910979179159764766016854685888119018419607231877370851032580981938556629335023479190447297061108548867653391199386384266217409456789359562225503561930062800950181682663769455045295683598187443440063084555144817043548088799867953887595321452598414732452490854715262645809751136089146235873460868575457909156437724637776277223001656961140299363869905664712188363280696707946474785978404013162964908857799184290011842829114822657566923601207063691184551129823560366261021899917628746530289147169264296447710357064899140083355184030796888398733066429930680931607083568773870543398950828576463593818310103526021175992188425535927718676590834431389386897082937710726027101334844823540265899302743352623425348018383135564454483882389915378766786327262209065955478549836371715751858227960200008272461264944954781675360649319139850962219262798014594729194461818648952913349371537018246054468559324542918810968608187261298143401171136673776702386583217902941280083576333988862825058120334487588376576737349532487055979902155927920504376997158187785182903734236989771073028956147921916577185575386234939780763502388553088313618314301140281233995185677113535831092628761269357896268429458323199644303771988875179706359769419842118720362515391740072895025909097063916047754421930669387827156741934902484333583317694413758890752393692349057672519404349133271560823111659037354091187621018087421636810614855721151096115999457052633000993092201388667656121287413148207041883398274345473869566070001521672834118380987132014894137862632515949375559247115803726701391793821670354186441725162153305684203505117984358136313680365158503043271078754653428229937002665361161242609248059814228461370466356630293915789507467488858150999703357306029171981776739928720876255575363999518266398570689289936788685390820963418607735298615011942423055775310555608913102819177259175751070869283822242885238070714797656264847092473349765586459283282883643741899891680426035729477465786853802465024492472696176881879982123376527199219531413300309229924511098193020843965545857498767911323679306922160926853358003715686437651473766926225055107381667423501732477715029609940310873417439961414471103093212899699666806617160316081813135194501016146171686395944284810495601216416745200633702714413512562823230055615253269908814931264280726355201190806939290405395711193721166654962763058801085353759088831910380872925724646431657304175204877057384975002318806399289944255466512889759816440906355703915132172332014134050887880552453990480771045517958817429737918074366635988723989003532393515599204482907515841392152868508506282326481535350751542895050876452525942766114973884011334839517655602371746625306389287849345831936262504795924034895786657343570580322723445928191500821099021564369361268931347095228725807197315551621799595479328154360049592679615465971894749314459924496980400608350542107756650305908619504695532316563016492183380357165444371334019314891895436467871510287431680795890211826353584195170664300213589200009214476061928233624670475464172457710192395673865819467948362429422089798358858331341334419057717066306339859227913719627390395999988517347468556087715879809029644370432999319020416515154524042801372904221459945128608190358996676615411235590451926763672482233746414039169725064104826817781392670317853426038320781505659498054008180457503867994860742964567950751049753013586939625101782876203749162700465609870245389814108422005376383453323907175003252834739228509416302698794325317088245738352579888552070693312014749463533480430573186064498169229125556747810591517457709309320624880079134822450667681942514264237039520821000790480444149253880661516172559122931274273832771664563018287924904610423291500761697003495440296417944578579288699603726298312901593939935274336088523575562917247896621895120269458520033691182793046063350304519843436085942617411201216527509805236898761336398640797978644142208078121915511412450820777137254289646278705625196003838571605306567999828466807158018152876161760834889759514268321539184520094255744269484858110483001073952640462867900455806871835555710056664540469403466387347003734891024383753466621936622875078707112275633938637606656604893838442025006339660981601738693791354997582438122524953362458856848310402785785016116244341602926179833892555801016145737963537849078267037238415533717565162461958251665551230429337998767753390373261650970394877367238746401821518597564124840210983349871043837738502849926762693665827601046752297474186748474094253751572052563323345703754673304607049504187589863902823310952482269065396715115428793367155466006364542490067339735762634530393291032502106877198695455132063441780206680796350711434916524532027966000499628503606868946513368852890229142635176352326837201051282354713734669107072263518554453649421657505604610522254634489711434503207906248272018942219424223653197510990330601710982820609855276346695812782308339090854452136103855034957303574750749777516381669867250999181854128405159271492846517910663892440962912977513687891755246010164628108390971076344912994150307786070306524843053187823503421923231116423208522961481352227349950537378891507598095688111157665596407052109313306002236798603099060260618285723051825942638163701778713903197759227592012555928966394788600090595142330680207607252615445202575473984704625957308248058657168201789377962214025050231063364616380273906333368561451415058041835564452144209896161178650215701488435205539452346949124935563199097561819672092184166291198314586363483801273772417561754519786142367103825465513790318924854061949396805395954200568107372253415521195592838111804915118381524623962537263465863247809857081495384608417536657642584825760447095556848556876814840235053347303195825329826879478039561858206359774589668419129826756151161298841035703123565665874830860091665675456873526445119968689546640077130461395124469169782571667477413068616126042169506725523771382931525890940661564326529241300272082425663697587956998770783640394847850823801887583189579536798573979331672602572574775706717342138684225682848066897609202673696966967625180518128511969901078610521232601357783777244671420433052048099529140122419721365658783364970816553001427574455299867428368226708786763178635527240093239782672371039882660439922361208541748938033624616060027092404923310641043896755287165165750721447261280948249135335434379868810888572431044398130735813143761135495885137812631434320515667201703521060301412590750162614865084703034696666449033342500383321239029398458328421985297173460157972391938568751839974288226601211189136691151608019688869493716376215299708979267322634951106656213157437820005891003812445302871678632395346693486914575613710364019644999911352390781545292144834106382134240300053151662173509876026723891047165077892946020652147322845967470415041801711963559838597519712471830070316393255878178447541725384452641174706469180245220626655437664598334173213581602376729255057360376855975749475040813645713588464047851615512885542274555719147163029289608184930296313240890561986056392770070567023155400187396136026538007443095497971076920801694246487632040640311275197248241472822229771758616401308831814428790512805856917810605686301935871750726224017998696172167824603148877338471244213035327152407231037697559509207173147370964028720774636761219199590569736491003680324273157380998894111231743451705528630097776492614074455973739160501090489523955605995811450242065726834690918744200659193480190498341301333322459323107960541127558159966228924380669651480302032201290567552696227400647389206431077339279611322069437110817769673086943213002082147608444139844124642215648924687182308494825644945364793873838104479944177408815336428838045240527241462993969338017098347414787097916093067918898564794737494970302793359458948927324237061961979734026912892540639764709711559230476118179600004730927267647058581985313026125295909418297275851088612334772314836349256526824446887180319143340546754446028289319265087513165624782941557176701662379031045669657267914286277597058018932326152427900762810106168665577305987228078279302726715300219533574847176391600064259161190720007744483632914029440528870015508229738862922783141277510515458559887639326429416188372369241039748452116807791369862215532695834296177187982321170173073353678621785833973210775535075824737436317173504768539544238331129266157029983504769047702200602781853510597707170923812587748231507521862660164624785195280253981478596795862854257573089823136168231737652551857937109530919188486062112709057534737699761190405249334096208636199315123326911884701000651245990227465114511687779959287904156376751782300044042993376972603273037679070981598420518511664308740678397559977123974672315845205059236728953137328171058486474428936852074084964095999772424197830868522413747884286822696594897330406905407994834897378970492931667706655434698364444990650853836524248413657784047288191408098183626663224745305880106847834709588640137935611616019772578983719215283342553516623166338086405894271131130409844727293899873497064191442934268943905291859378621068233680604591775324705426584292955243792535969346117495875997722417978628411722478982224183838010056911662404333284670301382428714786491561635627113655756914344594211819821046861769650644417848563776118345817379000538237726334366072338470192537079937368011573426741258529278522548840052134700172014846380263073267304215313060858225171434660093208016459671133185867355099757551668276723175017085846601950299940346811613823278109358121542179901353058983823316915078644577148550939446172088449913534301349889840232885266531089910289409633986112827128315593038474332765395334974503379784153550666095862338732711736164960274739531793279594880964796593243645364099459215894448523477214396676010550254787822378076972214694877794293705502337224824346619469755312197728149168890751905482684799821986513312678219642309689133465309123935248076307301690998789136460049757738709165477511894404352586506819159950176995344447911697134140580149565588124693722579278215887182175429553400568639863975395069254195546641343202365501098466867950460699494606689111219320316380715036530224151797730169380009648838842672198966905682628910465652136879203630440112999922341277857016164225713559695660052934102404141693555060318292569533964926725103390147715419024855846417183896467957707768035214428085239689203765114826783149299881366599226486507494121616143974002807857667708252227162069397738358367113423284422255306504202101970429731468399626984210324614538956701104058257678619924700541405941675317332681031968553817691550024703078886110204712364647119144545660976153630156658048403263857106765170383811197147189816782757483059020758776300432687127829442185877409540029227944140310936404231626777830153210198623121248953919535800878507856133220304733495683986483724490236257170726652705384195727351797969188980640548445961471864443418945028492904764869942614622749665320774030210031722261268906133736285103109599209639943300399044923727394584323777100190501706917408319975403866088033012258424095865222315223171009329957155947948535189637645751674434952055702749097228272949525611992551612660797504691699504026188272640848129844594449112566845806870535427472415661882800204404801620316524080639962345905770405750910034355349127428732910100995349677250411189802489814978889175330530308125069101960379894042448242134134557667263841447108945086238385231337829067330914458698655282337187518375171718491579259177882766685531837388523064031301265305204102751339203205282956006022924802244179830059472626256042267262916046055140363708335284738410744599647640938188825526849096236083974556029514807497940877263366235159567284733209231772225315530242294013772013449585635806447774029073101330092448238971005470949048329799967623658497290717436391926570067357329937867711468133081937037117003793157717955659655326845114460282871988535937875988137378139547933637177050552240194560219007247197478071696705461660220225622415524482790159141080783334054767775580666489089573350951657069193434645980541557803763613007980052841859144681155308163744573663069179803579778898249419199417745397016581535102732566812799251345169310869275676756645351416615082913491262716315252422455725424454574494733321208800132217635133333200416608305188579473851148134412106374509368919138025052394359398424537105297033680345134476653822700841030509804872218173387339745669443669137816484511472279109488964878016261443682179611909828747962211736756551830904328516307145084881600800001868522469487206622991365290104772587430006949305414709325087636969984142758644408011603240976942797435633815082888971348578467886617760723678998567543115474448423637714807945704067129946830587277505477822966926359809040736828691027870689054232090938231952823123438365137765521466454513965172609208030523654208565857546524151283645895528895409563056522346251186043602882413543351077894816996706521254636985234717349726071791977924486109987880950509629259338310228473219009292836145358431865352152257175283938517303382638226860558712870659521777070947199861185510612522662949177731251642538166432029924714411292131610838357983992015971048393113619964678074620762304529169850266905241942175229093429977803529400082066371613420555800345794103085255110720338025636045431666692219521261368560866530340879345388951435524103987849684788527674930178042351434836939323636019996720844632997725326503926309145961003137590962997110451116711461214207809501210674819959872095042448803908330627880996139152315898930167831819337248185974589354572543655482224473215375620089988551547257144080380165739010648216050968654394503194340755632291520120755842072559354545282859673472399808856507574936234136839816486734178614721029965266480877751638165639013669458056182864760367896979993944970983940479204818827812040596994294096719303113954778764177715821779992013213064486484112151882894938785229954768054670441466033971402339024500110441585934312245529192257526339876896771569132613257649410590515553040486195199270577111729528658351743883932978062404797683663637971242704539870010637014984130636590643831256520915512844848914603191882284918453671752087282053683209642634964135032278547583120828739296595151311952673485058335592279297021121710343706925905381529067367564199039552341577032982803320132946392658626907310467215615689539018419860931419021047884714726398260774174642631911477714566026799461286686282681124980238487477657129189759486547540411002293501101526092635938065653356321361073364485478113372451431165963072513709294482799978877834915360350211990769436960390792556453632117154724278448416314915296658307303322694603716485001960367206373223845268169432732737356963947521808611822091768321074870311973053721205455842071499162962421497375271326514648956509612123349350562646355548202625669434498993020153358535594111513852251146101731718146571624465072050308270971326766609049205968838462005566968672945645556321840674050690259282136786952280574845844094665671795664879542269184291056408364337822429003259830518256668112750309258957223859746873067193386930293160571733591655916559607446376438545963364488855092763911259816434941842805617940109798509075856894310271342943804590509568627531274281877078080367264932512991530033565017613078085320507403671297175680754650777701406947615034281221702091198935776074652864777291726768960067224887513130921597030863418580257940570991959188842145937178094970902226402381789138110569115120409173579553415007397576090638275654741722001695444629224094638539284842121699537726994927121830457598600781100592468664650646931713022480125410343714688968032831370323888108307127304261672393267751419914183559243469087982822300549072040982597853816590044349339289708056197812956996048901782732281251643023298185825539471758013514100334986116983335419198517118270716868873326975104376392054673326764267749672538233802539287427105194733080774572676572558409187276045477641981844835685456058528122906851869877739244360867419793514606694502959589777475587789534227194013495907677265596039403689117457162318848038540406049474429043538242563885567515259352476944692484947185213861052277904937953901621378496873921745335455124178936657619633524981747923495239952141244144330119168134048637586743648554274397127539051415317409578273535216809660078562380062254787675293112623267167194072471073020837555149222897370093678127364957074999988065306008442575202611389957941218815893697924596965341271452522740803928396694110825574665971236739202337671635661371813206093680752180175317007219710949003310379442806356261070395132480456523067006535416145127048693487494174013653629353311926192909782936128615660581312159956946238650391901079648833700098578268106388863953770808019013370060712686476137807099390520803067306975263922177734393699034280651934956816022448021435698405679417174963430410931212130119907659614061332408913306219097379803124084114483370382267400831029514560600095295929032675532072861899357990077982889182661448613534827003260405404098468777463943536530794806501026795864127995570845446083953835160983464573600530897532093013390896114846376331652002675564011952291400089368866060095765751714777770925209966089656394791784296264054886576944801462400185371401530384318444553021665803766226162527718750366812836268498823069274103218052820541988716671257387134466706110689071903454923779384844318357649118778050038861087815978962216889477678583347291174671758344111599510092512641057817342728820537924906549641278272692134530314505309152357962146777327745911086349035927080606843506405220408553591712342867560242176643904106670315348918666311375889916642553638304361718888004477076072224959170285773405975373030686304553173669049487139895810762858223779233997911061168180140237961426602174774259536282879630244463790347087392241061862743728829797358535486166647455778959358752348931349743829934468010611984688618278906652402779590511052444940208789498696328178841488670216038340515144276739749589504123119938339560062322000437462093451736244691587531094114721034756799643167785649892737984980819558690621682691133850466306595777200186635857597480041400431560725015641810203482532228111506943665481496217942015391936683008570941727032388072992699199117272925576341278901798566653997407325578193344865247475706407989119264060682132704979845411928019872798896117888218090046467487360174003246333474602052864534462658623848673165080303211441510364793477025324235847687885017857364565041072801775635052171942298173045112931537082889233491554913248809430430645465410419547102027296728691334154914649102027030366349194606650584985718347557382568325546467859748969368036359718983049969844188818242685243818956554173001652471630155810605396595543694020312834484637962223796000794356057387648452508082131350427968174395776421585252674591936286410629824022290499057825584179920121141769091717497005245840800869263793248442599180752117882392319803034056883615906523532685287866280524442030267537177920218926843841959875377197348882165211490231865764562456644397054998237214212035633309928530748497143278418089927183063220892196076735660800499624802164140866889178627708860705356604526806995837892171589542271759756583833136733916126624133102319837810007429637896100251030231510443187170625761037309510428059152997604347417745744004887365428001196014989518249982429843710148004739824065577426570302942084287499577903306963707397992731104353993886867982200473851136920442697270873483534938687470971168240541837235830589457167041250794286446728532679715879596897107788560743025746722677898867614205614100802342674706618044830852191787715147123790132694927977653804398831872581828746226868767434325463274025687601757140050885391509277294926186338959328081219184105716852754242869547394283472418509673437746315959559716846138469303537391833338535269084672084176336292365270446020888226335606886541213589466256515440889706789805783569678124033821647925266137057441519815820132521694275874041431681920001111218944862239788969644221656110595638423574691077826293457410668350728067885899066071731707778712956563297094471600062878012526088161877587093280094262707440141994067012393761942389091270117598771692298228899708366798858050477574860799858230978679573833995657853114561649550622988675252230344024764956122554130100383403312078796383175114618893550122500327409688586865169637017061975838141496045794441115779638056721104397859923435238804385600338072012064275466008392774654651873782445629523760852369620194727598455812432138706345989513283624130318627367883513437639894246647911605062222676567875334958305347271872932759016434048845703117087701804180895186086800787623711092882627367792067594309917255092283192768596462988203415140046283378634867975336070873029015988778033444746040849385911351282544170010085930760254833527950102758502501460812440557799742423539941414641310581058374216849189585627172441540724882850117459797020814672729043726558472392531874741271839864541726751909234530161433839172077023198500498208558888416686155575699015875970494339465465806242424309771219488217040776508895656148418340376003751100247666593730810791508101579903410021964554673615831241790089146216339761178619351748142999077756530283302551664226723856331957395008898055610387967081518124516008778421817648719987743449703458786565184212953496642154400400086962371861688731048508804389338199226698611970549976000776478673987406198167143603708879316260999977788796089631953894245181121884728324667133831189660397445378220246912049941370873605123358635234556079823761709286848481628590691714236448274427904086154244777833546723109048117694489182618685474829108671709320448713665444413827906695439618856136896019673472738935211377401317724505736372964578250211465072434163303391153085068323739570873243285446241507675964013705633897840702189950788429795385409998031021670106047495476076157259775476935667627764264306284115138586514090399619657312891303757022018712037451732461435064927502513656087173467338999870101446159364126234291828640373564755808475558718880199971252848278888079020997408823168430847000608067049883348433945880264340472051715657354884439631391922868160459946283366266688635754027596887383430755763825260289503767414500830396516228132260030495056543470228969985104885930984641989284929939160550001777469245581441384133710029058137474404012114444114337647581856546852111942874072946740843719606393334789386120194604844570609195399884869710571528419416464195319200032895302170478527675167548044661557871263383476637804875540514887854326264884679309395954970611676797490176276468981386203645816672443918325693419696380934815135703327697929369880508555123944883269370703193278501994821918450974656588122115521727271589277227715148977876377858021359327595602188381794759062068417552691625640800104897386035348144522989134132569663222019810734571826678040341202166275968229321198487303926550135609482552344362728915508308475513658171147395065076059351711658514304649635150540017482204435661777177643504261572349547518471177294333498367771961589137077735454410460993287401554734346714552013721056903181599895779323336269368994593177565069003622021791835239402978565315264685788748656435376197941437143774620915372163243762463810345295402552639345929751041363831340386548446078127464140182744146018291714260782703082492212138838103998164832868315537567394337591314556941059553537500710239581163458945570189108282496212827506915540104194669286994294752460871016684968228519184754648246058783435747588139277412260247683290008146814403087114280501941694954701105522639643624467846074996851038762018556645657663174615696365237618334381863007460324979073773950376925263136539430736745380203633466209770531163940382539052321092578277347970691109112660200955704035767523102092363084198614111606014395802358562513616786260785036170733036438279172643701952497167079326966201719946256673929564329217840406090176433449867726338477577083230477939316618706860597849110588065244350899117363158612446435391313152863368953488084627310278611807422703846210948208797853652635619747666169883185105053880092683352524437766070039344252407835197729086235770469829834597431990066166728270550333539277185855094023778945311739922488633481803233797222196248090652713340528970637629893681793846381765681248305038383921829287002945033571098671538852786540844714356245936485617991838917732459870351025185485055294221659941821556924988197587367042685429252755578282137346210332288165159989554747737158087869103147990772916778917250852970119404243715380475092777208786109247091136040208632249171089227116532201774155410255655963455531631532623545976625429566475444758121584589566512023392445315076707943842428399566562114945489670706711411841308705253660333715937571914687070808327708082054866025967960894551594106737004669446460077867549959163107239409754396152122127038909732984801213537745453505352642453702037677523991551795130410692519163309608452160852007331541939797775444448964348071417838218655178439037098369528372264387005259895209055099481196381939242079797927410354294918957913972277298318864067038696299957068787188086791643318318016156981613048692152818897018879709568185523588420898476127910611991819120959098380871128279458236998714636599855424392709147047991780729407235004625991185438111861352938589487673480715550865445494065975027690563097695316164961786889123474095097784550747728625713100501337025469477785955842640939928074026270732850631314797753198003374213355131199928612253278554215556693722839195725142058983773856596167477168006622326051982709089710448217222267851862811505406456519315068506751245076927697960390354251822319431870206463611285662821235066562797273979857822623073817780908453406140960294062248636844223332967475298838968285266974226072499575175635230038543372247351549053772715505548971114399691722548752698602071723688976164383161125933226614392410137075008959830930806750230358088248240613625813906642027713834149865771202671881751800346595296138702691378709021968053153217365439611888710558685750275811207130157555981127402742079464775717023107717032420839812965686184128323675414115491660214739091606307638802677570524974812379085133944034350100350912952723349915646531279955006072817392208556624666123525894750891025879472494955707077987865039206233998682116277720938774551627619313108224239490231146833433503489634240988441400502755868559747171443729072445934671722193424491844255254583294618618801850359090857035831561597617695715752995094771939392739020478075257622683275957737999496223972594002528088455986378849104325906886211239372407415602491439507800129406048695383310433836370181624395331990173198301840229224395805568754156147739898899410398208620759578793711473295880594239185248130077661594261045966949743628009002235068354359111965470839080976879654996602685800990383735068962308000789263886453506460648067004450791792748613737496934244758048038938031220654891310464113182417463949487399112319195475425206995806299960673209559061008553230214790522521015717049267268605399797036733876788081768094253866023429179846728468327019183666687956757567886390619816063643415818372529103801453689904076934189667900329474651594943402017703351763022542433643543572562841513950497231757578348810119491948164755123283071736778791385353565916064159031233957708016522136177304010219213216377520155501174540852460274299415514626295340704222078475645376551792172186965250872321231584984961151380959705652578992636238154044361147229384761485543327861936485325500536972675658861898667272379427790058391446017518406793877089139283054420034138146549474053271582607692779115416372766161058492398633183608107818223076773639205331952377680455778908068085946084779918691079401493121318359826606080047662718646106925667036739949392207074331159942995704172318018889468327415151116460260465726994090862965241621503902758880605734432077205235625216226044972709465600194091006131321278932799018210955027786024220224911623573696926752107062171381647753361393703264375228598433510950185600769280125282849462913785152545650983875612258825477537484938799233382120557584546409209534361795485373106552047052947795944815158996247974206717312572635365503879212258355632006386000123033142945862672599873883986675665941602457997051707814136984212705205014381182379644837003471634711928234792492890071120957781049781008775509790191868884763944260494808892055620791923920251702639491786526196253063722205088981507949383844550680934198974938480476212404772969646881251855968461708061825178853947943502776891528968358045152026186350775374182671550791381530152125775067191210765194311328143772715654444246304644881034957765150461077990675653878911516905436877780642644372831990617622310410716194521726511899422455952232604545844842413464736463307023632519164626481210637169145506040646586675623908027757447929603301576259683939053344027383861943760193971869345836599246677772233568886451729084759050083403922921067847428625814740485532056138823477619503254623646779524281527591833656124297469881938600615963981670691246316287798318955270035462548934070955084950912510979367926891136108693484901211453610932438393495335690609993918358590461886641096261335773562285596739372971416800337938765415904197383499321274819419237210892916055267266971683104600037013389906706596169946254360043136774079399447005733973597633579013395678726935163815733641744422142399984427422519342278371048876789113270168334170865919617525601767751907915779142970216321343573085191091879604338049616800030526237497348063609930436183164481461497231567251745679029530916124636496118234870527580689095818726792911588256202983704681629798159033828202315644536615998531550426093395055699234860345705670589876443876863901289932702874426008049433699313097535465255641603951174358048122177189568734588486343751968525319372891568595820925416633744172665292283199210014453248162362774266001647315075143781727891851233237832380313279123148170434221958360197996397173523163651648359884965761199451345310126897039323141018324555094112221322142982951484259569690857390634921668960105388227330992535503938991880471648776408271642806437767011234921099691955144324511877872373752210468255656032683937172447989606338847555430300577394671925088795125913786446358223807832081656437488681175397386456756479533099424306923832227896919358741548499460834708342400082756323797323933661938168976465063841487063581807601800108619519524694839706756528115853880732464536757833795422564838511827831430333550635941472714163876540364744811599615249972945103447996884866132841407831426834539719937731603258997437995201051988125494833370105638825693902793000033303021610517338414176175766829286317692995446059994981333311456568311875800113357507605581784519078524301783208060757318957036169928025486451813564247954792098539100483126301744617139991935161263633257463844500014727769004687579461223082273467242858433191754771639590890511027118975895582754746432345842063389023892600172500436738655859215307837148764093749251536270128874614944646599448481587333021314937564882548565787273176560603331456166754759350523800953333985185089047515501440673444511945482841019908537508888347632112468086383750822977493765025846984200554919547054522661988438637249961563451844738463877754656299309586536258739083741783745963426116751643858105079376031424283109274308076644201490952632996340649548061580932783663341874472674873681126479022974981139481306358546294386491900355018920806577458998503771306340393569705784233167342033624615245345246518067694498186810955887488310155595456104307818335041722883579261437136990740303806712093437978850989190628195054711731074337439747234083101821377098574948827438969916712402215336090797512091306072747053466546781436604191456958291158328730585718197791094230158494563933660724103116695037763658146250508706296702303094548961332793584106703387351844757659103661415039660068675814734474880411751876436825620115454057050453938731495905836016958597449946919973005112082403391825312806094290509431322574746035874554108528426414561528701955853193607385141531808395918256345490798306573569713582999531121765195109494635121680429385495397243020449084804952064816740842490693058092791526873915748445123980807467636632816703481926917745178527718014360198221943047874548235228166003931833652562109186319524635063174174823030762504627857756388865444364907739902110999039113073060320519377762531796682535806247967569489395810789339979212952500393313065150136754264489697618718993401410109832770125458534108357672982398819088152155271173473619421716143628390576102985528516081669116830777021594574057855292269433243818578515285746070436659437521761828450060470971715058897079644898234874789358501397475465517146542352080016164163690197607919384375081487896456903104184521308834999491477290899869612787638170482322480165102878650099567684289653294601728506815617473804346200057677659951096617232276439340111555836660716730861142056253499761634507510358793269924839339388130033542128559754046392719477044198925771602641039282640159506521157736663822927648129045962606253376865057847416832555620121917121903009335927564698343740309536563117643355918069882272769938242435514885613882941316818722570946214698667790618998923664973311716595922958071511862841102187658928913575740399567945416135421163367331724220595483898037852470263126193108502192089056880325693362328257559298649728664820339533186983836811861243824971014247735491192888826607109831410078050305566643909158988014160975884922941626620358286788180876498191522789386323675279132088496138848116274924767654956693533175094372844280160295258956478880568989280528741415559514900142851576382686216691731571799407207928876978219706059250468711149644752697020850726136412249919956145575135993568295604116014514373222237028419026135263682711082302845731101834853602622948912529913150233186253130215513222434445118671314547300483078199251143893425257232821921079584386830603065075100141566157340372141097238339541423177724374531446621981248925487450521870948225124467458018947321569523229723486258006171905136599883707380050731894184181619828927250709332255931637307808137956590686187299182734284721739384558697035484470895363649024900557848151717382067879042607570235392440768893117276317282528054297851955258309465023158231591119316818438582987849906397752364509688964622261064515098420146084252005507582596640970546688209117632554047233155370924571740242838017234862612335524253288052804121124439776177503051170885475912175725365232786750215551905749104323010742954467397042299435249492783411077748245201023245611474536027731674280829851283256437338367855803152244635310162960244704988098672993680309212338741682742683677422371862761081415643179227803407478064187884644703435492976090527407838658406664323389351736968944208728287905039363905669452535825964874195195140771152619125217365676749346003706566573487266809818332019981096152425793495377786954119370991566313795466098614255880703054222673158409539959247802064111739558647212336532844713519866658477013884693401982767596367500891410990088849204096714831974017337794627935493471613799697595463203384387325656345498006639654185830842588625904290423833072295862986648553624649747206968881234545327771258131121499757131837989907758236764239821058536474262166885275508072688851949488850269688163741559044361922894243929646186140208354771941780066033655882667164622766560026772325184560081443167367232812619998454135725104498543389033621211425641075392800333270109343476222103872610024374758272525947634198641353461038253806415674463930868764295924975624563343997610786593616919589870338291008332994671840350959661094369880768979963762534500515690736071187309605433357033438134698295832573473356651833817292491217708549931225991829850850095200730723187703114087452695040483709798295128347942644769137906224607464428836611728172770751397297160366050901417072836777687300209263910293042900277842032325968368002815935330155109178028944822139796049832505655283435746918632579649942219081289861481569096533400595726453499420400237860437485884838486579289290598815566894649857108416605441215843347363882572680152900870976426956242630539768130164701756116918468033547644882078614944213232531520832505763182669147235608595349895699531928663025321825386594205817590873603569010578870507975969812837259157317172937706564391843401243350671518877230024264193841168210570058896408928843655282537241073707270813595633728246994928863933062772740364305934981549042171417157341878348637111053776362088825292000041509167972061866043157269371598635951910008171260523329433218600167107550779608424841471532766370687565073748922071161816943313812769355610946660225118251431639398733342573530416188597525829318969554348655315962328692077818769225973112110755085184102174084701077745305378538802581121900398304444423351688254199632308140292463631720294122813962180409533267934634955502780249536102287964397382936185282357279695227199644937076186499018587496047751458011366998838662032141246187297500869068213009217944511387664204672761231452102209939054767651000545620913059552817250262645121461373458518483022054405582067435351587815998165843235197071129784219727823101412086306968139343335157534917291448217432827734904511593809309806547371049172292574409679245177974619019239818363342907325606746691584455966257238617805465916849000688121351748050629028470357800040965324870958940170360441799442439288821795738014464445640819890653307469572811104232261889973832300717668151119505235379152226636043916470001203478432279305882074780010141204876254872544401849656196936389149065294591951192543574698212432540545275263440403082249622453584207144009213718144781558903418079525630915535734719306144608867571817850437078366493758567499932058652913895315129708313878465420782337865066861023454619044688186740210771145298961924693358469434900402957448130675083557573154013816154817184381268926113425709772081838776006808571694034448044783474482269274319157353798941857289202177733789484741013156112900987224836906056523031934528470389978696121696143126757872866728444284548434507889698727129643196462880694322647974128675722250561305772336181946454398614165263883020063464700215740987984470722418892610753140663476926570026231439579984417181531570889862483265444188948838663201448786918199793341303793517617264913127717703017001459758044042072186253591889357555186224554228189674840648529581647791678337472906343113867447081225294356449674910355879862373251326062818858748942841792759058805962365730011068695765646629276493841277682196655890505454792624520047736653822878725905394069261699474007404771420570242192217354632707227863161135659834629634379440635089165856610672861865910900920690331383630253143197021532953061946788775098931609621037934623651447903832125903280601290794555607092988617893256011992775454904022520778564167705407032725384922739090266949332894384565244433342195614089198842420067315626308873711244155225917783473541227194208209983339841564418989279761452226438850416870396516122626080807154713097452617578623637763595697094508042128212494406249821172006325300681996886386065121880119404019673451433966058784136077239023632527865880945627820119840811598025486245159802041014985837294471033602188118562284083578666745544699622641740494528667734335778957289932994143547906002674143688988930884242380170898516639175082101474268431998420030065084034598957809505952981226839888556251978486572568011321282082874961571589143876942687893081228620340176555291286223551709030236396917432125021090147710497692505439801183151033494183987977813528590615842421990959847903770105290308445286414864796468495281429558252502703110578287047530672306505817742925151691926151442289674162805737398423857238717211147066493368011208023844483218089700241203817302922918045320832432109735389896026538768397174868907235524499700322487779512074192961657043992516909384720570657679782872374857801726017370380934506986926336845732802055988077545272674084025892616702087085140617490136688558468249713899537145319061334395294792152310909842859949876965105290265579018195780870992810078972894250575529587754610907409840635948913533011722063829048874457795748877678096010232526639507274018451516516738233937745466917494431031567720370204628596060110062869433871601050500797011091711283551207223422016034609323032598432423562540336923067088793218477144505530802856517807290486822083856270252931838281884383586551657884234802636336742160302094390443226166444870497224188418172702447425966297929167086324477162203375129618305982233960943174751940510233583554490527910005723326531066611370908628202290218380574548269245464215418420209953058278507158615004518317746164804014194194631100388442095304527063913163444011870185211158922124199858942408527954473675276381580231466736367152998410044856062745134182464784473232110364608726419594195164562422740626080380339057325299149647773632123538899697239691167635487354226700224926506680124302395598740666776783667765108494881951484954253097993386396527656715057387803839637599420553004142261906417624579613605347293456731723285786471216066597670758556754184880924956799650395912138271805986283212382896214180940124220153912525748825083437342815065209581610922262859991717440894355355208522077557590011016662162428950245597928891356826898360465998879727160493135859198458152690058400271747598650139838955606328766478135223169942578621919189819874152134562457018927277083391533060022376042673932616058256900345130385362687690856294989246368698272188361025780181188293126560130474079955873928350661644439449150024859717831626934267199465550393195402296245997466763727027081661192041255967214141489584414637167018538038319450246829466995606453822569885809780433967767236480620286969771287524197599694203881643272995442254098674934108564508211841017934878666548278509106584089487009201638136371339273866176485456641470041772717248770789437815193385854660940596591582283156041050611271605541109293607894389486406785158802231057962747238516833831362255534528146067145801440201473320923355234535193973150911358831970574421865389179898187850382258278598216999705969867318892817629321979592973137365177731791059908266283717432511501288250837701280193866938013918705966601049149340801431152873613808985187799852900000565924289851800279044035986745440275129974966853838468067501144651145916771764271125975076979447517962668994617529779279966378199924130839506586282331462584760654421410231145546889774999370998749049524874434850855699863687352913249424314800799674859671881593419803387932299439411138284986656505471784141026531444443485956161819256256304824756497692290500813016193770108753369715432211617740234944817372675200430366270812297606908105193696247701171593109684254227246792108559877169027106553496154145537159171671803533134708701214742962348150312435755923200523740710693708091930447184414745181461887622219678050561740556177122333247557242293321182641149796919029698839765786208073039847068379488342136402517501835585823912517454413152089006025474564968091365839919213628007321879405717195175128313598425432269158264524046182920625035300791867835400319515231904532471321388955847883440260719034365516198318605319666612925154218916247311614706667157218216553294294147453252966013027690975028544453392547503949588730122837584713031537161990034568130372348711307287425588641760850307440430651916015893024080006203106606731747659333397037773129323519927675424704020877038166037190351459456416409003946808288523734688953979898784034637071338171030870158554008069077766390254922466657777677465282802292702394447076422706922999873546897156124724970499312417008019406872355860524806231608280013611592793065861428445250657233781427598326697312175676116882340107047023765703519066156756504125630116013171374964484119385442091725160750494561618923802641322886868035981324251593743503551403996805031509785495434096671283844139212620708963076812437780646212226520595682572630556298934075855215998312597487913524719400568868125225913698209203927497375836448123332097592894626684341375450033418916249189922270694399703273303039676777686167954533113053044496573340936397258270799477970362730741050160239343757294310112890735326909910707024513876325819884686170114813993879829563768865567650225143092277188282527157029629910168716515952416067369483112337047696818747007724824171860035943232972948608923692436496754462028928167760641609920515587879011440269119072740892858330958721783276330486080166571528820872656481021305261098555521636552428579255678422393608592136718081329574805263210575726136570149074545276149646309238641561062512189867233418249947145577417463566835442978383009056670894158006113262254407524296140216430502520596680407804147063818654267502874162374734886402664969805020605434821011856163922258246603981804888028456487613453768561903710910473025161214326406519853131901791012867838229102591387256962224994405555656775064182542713454794748877485835597965304654387989532435654269614044810040975490601196360846363787922720189326456924488967612164167612278100342619363045841920766813985010165187231014141575427435389331601901822344483638374652210286396072724075162602300304332793559641287798938158438305136333482231280543920895422468664357554532383693351728911164256598549778623110342200935558924231926859516189609980032878152866814071295764462561673391937529041342345778512441380226678684762991957771364506184231942750533270272884125113277793691976041711077016103751031029261624165261858085391955064354109559303176918597011095532948704830629166999276272705425602963537011380571300036313288598852734185863593791267477303469614608813001964180612760763262781923206815950572206886438694378871641894073888556865591088277724624493511974925771174420297563424497378267206021888237063393487530027488326464160368811269457438035282451627731659128115005558992464887833863020142993292924459070816754712537579327499503366493191245106509396743533932002023076802472745367912111364598614995680285069390821324208618184543179125543928431075635283600932195910069142237683804532691626617568904233324945694056299191293276979967869014111365477129530521765347645803521318602599400812439647158695717651115455851749130583811439398858429795408383034220459139342387560523715681422549214104451854517814597623812639737989531916532191494707235222919982586368337070449164262893936071320985847554824659031901688267096847216257826741803998757705356840695528170784251090849487763965680903398999247432308377028480073779638970775735293091829835134392082470030495402047404014521039711328082885779688569390379518522110019971721068198782337341000038577122525124456978381047096804573638246571678794090728335644499994191563727432789993331163944457641079132457314078425358687216094844593041418004682798545201745376128575174789708257680955336871153259877926183308687119193153072554527061416724311977183167671431983576955538689217808006485814853660267592572143310836461780233019891956030693675410247583529823190198038122787734105421578466779625172147582793933559311731018923955312162362764995903085168642023835486198452922685054970383873225888759798681585759761656909939588448110715815477076891513438389098486115554104917632268617392539133273375882148511812346396842352506223140240932862788991108234975421047281431927404907210991139364664114542258047692004277197179605454570074726197705655807562002389908852315102916213878485707059088248236432462559910253079453585941816965189282486682000766424171057795114266858618243904592735199556482093644242300670282881265679998728762644059374681349377264144557896996623196554579776714764702053815349080970253713689168704859968203732279820245154235941109536432942830609979463995568974397296546148338123415772926782442723575635637805842456777154754937510073338007383728712843746523356673997184751238573493820558082267449100620088731460017788417082530966032148734115826321119689715715811304780849841052501036372691795075574548795890246869109094192423155082046837121826264562154402907695224440424434247388460387699345199955643968409085099859325551688011547622129053763795306352272402106900879500774493836765134619985641329201203112390110465901315533665531666286475212849198447445177495283018649201741282479123389585913904899651065601186273556110166765523935357543029354814995332603163934044594419998838583337948367326649584481949114237409041057802365834296501505509794804438718502080426348620608267010444944531863145989811668779940080213040544869388520391744602536324492229328532864538831981463709982928021766113695349216496437927576418874808975075716140919544373848632259546672213967908217640630897222144120436577066296574721821141846017238323553920397735081190118106737244463620928059834313272863188799428318182927064919856262286072044107468498129743764004369776222568450130614640366558370047908797138309923865193404524092912507808335875833312735592445986788148877078155020339961523676403080476908448263390454564637421635650051611964865127275370042703181251787288277074408390631329542431433500146909855980420163564089332613320546032417007930701223577158030018143339826506892506860441600059975906549385642928703169246458527092009316285977702609939000742456832598392905506302261128474768158195029943693245204298163861485326560592004269696560092488023278345088349143398429119973404511262898668113014863622823118910030501117893612854141901798981664445465440270028719088020293242404907886744337670709975740674834197086467867737935854396450642456716848380170418174811977332999884114427900997271695819520704989770263434278118155887856014265072151915329714263019692751354149569983352001349239982811069222048971286373330036088534960956569225546657703505206321757021887848815032657537205729247435585480779382608450343617752620569258722617142948254590418768055191326912308262642703137707555451856555001483750672412445345341172487786839314946512023948164087605939811630697085415864779993021161891186079371463695782429800071405219570835808135589742858846443500691529783106885098399501325920866370233236937671067671766729228553766462451691703064307060005379603598434430405357562802946950839697742082176355623841662989531912088357743508669025888247669566386256641356462607942610803063270349763007760312435365133435199892220055649281228597531992369554771553809965728756567884586026240956193688416837890121808824568154216233247820114590197623037798573067393059956991487249136603195424535881113634056362866293894242019308282716551312277239823523680879598448558559580507070079394571368331962750999232196003328935466936721558888483778823193997891767803531441437844630989957495388621634963357937837791548138908308958309181913207777291613102634715597969524030395316666549162630935815370695347786046698179364932514233747534019110423683002301742675836527529860151661689829132492620527446669426117720794020685462111544263473198089065050184220121873669177459147049770651171262576832668896693427928738024390140429838915458209593999127889222273847406218520138931655414006291891457368077325366178461783596731267745574845520073272462202572824219188059187628674528324376196593141457740468504865766368985625851605357229703302039036279865048682215368218153838913694829969562592943164173668744629729595479544509379924346237740317748404888066148175362186351381613568435159798432721657293071295958291170863060276682950697904832086071903623545354714776270215474891533915328869267899292383189135558475528279510786595381688977471791164661098793049101303423326346327268803649713295500539084410972997454106929170509843777167371047704726796847501169956550551787758699235595517134681701652219428511684181541554788721751649143440817201561319135224898384716753751070701022996721380688364067841989211823844002627365909573632705444661446014035534431902787954228021693382209606859198410463671756688440465172158329832581692296719642000484205058929568843129439696760000911451451823803982362928824156634225978703594695275833961946333923617193632756441862959647539888520920352282052715313929248110266914777955235402764271366203935404152782406885968380824636549691480664970939963292262342784559097103355327977420273549440537559970476231628311403176331313967432265011733843521707788709954369726438595676455278462871251149122740497829413292275494475016803028853389490432560081285990241586223288854396433960441083349143014989943666179133920771512570826762116033116848710736669276451737157223242646753210138661170370148407063405617486572444593308431722235691418574744387461012020724249875178274137733490634159154907856770160783916737070399871760950732875763705064947867232803564936683139929609327662896562953337763813209843836143203765721903449001661725940885132202323464174209261704980505065942198827285102671493344598858721116472708891744851507050455150912108058831717328624837908809632463497633901822246807593904661804966039682234073563453716239315460930997174424654799595325321060644403852519277076057395822312766922036562869447197183002579273378951293916249736509233507809553384753781128033495923546234343954453813915566943809027501792589480804797596259084785839629335023902210502312393172943727696525135213280194465309802522116352314990683562887494417027604332683325784742405184879229090395478545390075699020415185006969043151634838729244367622358745914449072162276300475629461508876962538785777421849571245882528256434191977523653195951182626313147707908897201134070484546602594525348027473775733484171197794170383890598307477817696704033637098047291402030293312925416385913894708076101818753990747323629090479633752739885468839004979146816557338308077574086030875922882590352645450420314954997584835802829877823214563718363513087485426040360400744619724212119368243193151008985274845535499333045817486031824191286338748511210710643945587967796366887502212714498561639296737673505741421655948461083728857821773594572725181461085924114390266182389691782665930700719284875863838640919171268974892402357351382937044960858285269072820985797523389308343597188778111050364322868843338939305751449533284030333582568497114159466358579570464571464584403677032036339084063445026658247020665687462203149195573161503421595605586253635633974657769153137346753031497506928458521112431089047312821614569338057742789527617025428312295585787833724312588260363649984513984806766414016478880198212931267014564455420497460597442648814684737719383979895272155941098079926264276246262490155249764429434152688063816995561552603993047792342202941575919499106707814549327623016197699481107275404617715677306302257689691005001387394693837239972636725065894868530269443394973482115537993941001535869375927277017185251804569514058913603623496978877219390433910191279730018268453014784273753873914835312910080658859021509971533557197455021016096365094694194141456630377993219086469827072196943023666123227661396063869001565482979186331640745465947103484887551397547127982456597089058590069933314196084378874837757799496712044867900021291478745657758637124220167900104251163440969244124765585898532609192698407306535692900729815773750681544178630216473183355692092760386609391478239273555309861550591512618586933349151263239678102333671843819156168773966750164307849233788774928492739271434333612969042809420662951741935597693190024526721713450889917500033307809973557536403065583961795914414228946913339766517443918506324849226239504673601127686758940857675670543857755025615185806336976300786058495247319200876715533406154590034067094386676443902368856065262268113942547941270026007993179727074542268085806732988048071197065581356503119683059779553658116551286620035247908995784948347413350554093276611574876227174893484112914710210463514676057312185812357938119216689105025493554023836345528964375580908971980844723212167681091834911745356577192421059041338693418667740871293272090696911438821978645146985267933894966725250834887409311158322601587719596873086638638310787737799866204153875299289328444757130708334515479560624899071354943174469577405775045844188838014569194035060346324255032038738935202508672003509166585434051320131857760665370634871451321596176504809481892348998172387436323697183446771383892691781804812938058565085858346105970366957045889444606183138114896964795850305853413234943938980502874263345355550101936485914679150083334963583713287509514565708614303479047384645342485939805672520200655811934637533954681504075257114943828086315517197438704184012395849812429998701936257021610058131013631069317049626630527625975198245894507263798264757115160920081584756164181514259977993238615609900162937587225003331797787739772539718838644373376413888468019035529073940522513064283448838050482837333214939369611889438126151528291226955465880369764107998828421429448680712053611252043091394559235782519416938074430666409944311894242644494144726308638783135738342291998723349699790965301792645025586652558581504776969469187639203678454076359747956760395806736119533643955447897197406536468442788789604458405125403645149523664396611209903407473101618034316481369859753669217646023281555915432909131240861318038781435100659862734605333436818258689308191855511391355412442434147219001642926993152839735214937725212202427648609437243776190840284310551673326525199545160084712107837219262472970760223480691846420089924278609056464666722036783173526831083111336879843030069645977491578975690067589602129482129804400419787522294053330295764131587464135636657850224332629151060547903302183329843753397104529691882307074167381191802500652870334446346942872367906068905318267089838542278573632944820610758540152329987889828362623607789324504455410186586744281747879542010744018156810046376524345885401514028798523481533187454362681643685799322285212417221501798383768879796766276530881760920228350480687357765894097239766533302733871777506435099529630016269311680254297721394499782883120693394705080966877569787945939797366067570026586269830036494900957278205212770046663074933055590621250196981152608725993513347390568307911819155371217280285715459442916066759516686832204416981693461930132760605036759464085982051444607895719018516982418074745923044526162077185658271256821160121439252738494682777627119977291090232662924680769699742392483455059591141791253950078980551934369417899655836743449961547065197822739286686719179744436566019445883257295235870894816252950200593317836948768883578772519296931386953392953921787778034651573287589920939909189269721265753340113630985503530601901894140323787960298545345427486399374971365775138525536823173874139056737646212671185510804495971037788170938770225538907340359647694017782913203602696885143086515296365784840885660692993583829263019789656810762726788139477160425948709479548251700269216668333296141384830322389057908801357986289868327941040933030054513055867656358706782196693510809774528290151074103602789901005604073956557577054280874663086866091822620150145993233235420659210044028423686408328849601052208279587075054275481411680670333360175233983156617469202960400874429310075678355533224920483723363239502838708111108256092293373300793811554842157053101406876170192251196713985485593117428124698474263506039938640561916017979157647282640053679756828218107091566237022196007275776751071568289762797918767751571917871700780343803874527312365010019480259947795695186022180555057000236063902849699209364984570503459587098887314654476811699953446358022296797902798323047680954560953331799919560005762823557701874807769025492658550237239590598847570018596706267668617298847431532904139453458435770984053957174718028519070933319661788196658164558890653741197542371115876487435714284609005981534828443388031958788371913577798012693872267334502825676315523924558520769142680675450204393980191402114517851037520227184790858533515600430592099880503660779720203781119055478861334859257225668510719203627832228829866173408001847036827222357612453083639928226898149803969429528546502857379341644600709097420596261838203948299377687400999364122397296092484735061404391079521918494204638985710196216660754202351187543842865475400265351380793453418317983038390136453552039426766983530862843196594442317276877559253614279511530750420437613691585359416529291134827993735726724831376323288077478216858787022111706158008240313196982118615673958249478357706756829161223763621853157481327206417440172875629630329467019139062199327380860419977847932398856111484379560005716818809540967466347491147542388370871431095236891631290955987208296250768262540559279589326780430825722439040004638295566807966910101938678925864672301505901819769870871110394042079122002810749659080541126868055224238196608811058216112304700431866445241536859431568390874018570679693554006707135418791459499561136355235627414886164620200821960558695842540821299495749489645361246192463711235676543984246249549551542586122380113169891321655954519036814840794390264843790478732560717048192956575698716907201454461251511523938501890138619257124008400491334684416613800151188521167331491068436063174542814669770142936854675310162745782890215128988989506998944930348824438838089950161670368238972649024940969995890312570690841877350008288915295836190868506010803895315229436513289727321374049343054192989888758616278277370057981236371009676029317969342519904268584598871113250854582886426767371271313331336691569624024141657801041025488340518076843011621058667925699734737771180188551874381974456662227393297489273791420568923198111684146997391687029337281847053620349287893283573384501630294456256846502121492815507569366540050431908891895320187166457875309158355100487256519919516912796397802475501321610725355955887985134756792124922286829892629338680045551811526610570681631797849441443596206214524010370004487478125421597924930897587035258167653382352108034517950718923297181508883025796657079620332608174205894540856332738927275803741987799107138420108028109508194218674234892488940560378067868725293857717784869025726821935134826839441485902538521914000270507464372543784405549805989984510994604649163519849046962181404173874985507883532465095825244120742744105346532608620518987243359378574845892316693936285688801398746553910313931014587301196166097915290476191162479339549247552699571479701343094887411793793807096719953840926074147000629611101020222042728644133174343828313480522166488087060660286727479559008043504448246236270163303553948838312657322472442729655444911329151615961280019771765660504878537212724307168931260967954378612621599359177171908028955949793175803368354520641206845530186458069843667122258450686843085086973736049694161562596233419881610447159914479928065157271413284645722572940525141378418562294718605100578140736682465803595182481355610389675353472092182382033979612499773303011414510611457327561773150769578474961530233769497476484654230342884557183952828416335297552629220249529420987063221870062377938292702409861287886132659440991280283367437099019399332487685798894544181384122599135420064743615288599143986724220372169146185110603962629956665959332304574869099651076894487502657480560682330579322100488229543689515034857251871399579454372246932505146052028024068065070806748421021857294462183904391798692250144482232994307494020828491538551380835521077488746521843462682139340209312106458641862791607484428690525476026544141156555615400759638113698488962326305668873951069647872159801573725186683014105234389843878803824007827527738906164838469096327427407860811338922622351005876500665828250734485680689632239161604922732577455090963632051839381170224194719112070986782542865927961526817278198720852221924234233106070889967974892297709121070497403246653439434806140218868813367947432726455657187853566249819230875185293684649688091191652793180404283726176607253236525442192264651848364070651917812956757661791353615925455748184115950104870297015754746999227205898655115015044371506236586430080679308461845526074893517473566742912518160514277186303818914085534054106662415196418510335734564343578959030777260260924105802042840174466103555564335798605430438536460667677991211794245771860295653036672042717343288429987643370819044530438496080414704456000452499880280277701234518559417724412560741616893627291747137644322954734556064547602715108452954509200354284761496646111497200626614324845594288454105147193751308397670226664272865061092202893180737329803503253483614363092490614238555889118356783951218186259652879732163927485591339905280423035733106471307380933858499296089670782331514634013217745238891971994983227258809955638425326325473380303199933700629727406984148622109528645255886970997555374421558941581086106780308599179463103258892132870376701882048333862008361908370508108259603402906601960470330354213413510044409374507543435329215715854769022845479821306571247139514551050636501229746851114685906396757947873330037807178461861945629839758362776163412467228636164923558973474860760825775173232078538211861578784507713706478462365455906095935719234357296947912387345290759102221029057439810353842710499967689681018051452120994469545478293944282774012510609783035511460823133433128149830087409904524146388842968541193497988115903276657093929857093947536334094518040641049112223127737356265493527218065096646533502525047039385864017487391632172991736299391266305924398389610476243869769156404303600368351031703923008343307810136566483290783234107807515437739436022265578532609116094710008418400704297346779647589246662609679922765746584561170088756844131641696934105249708918493957451149249362150881445647686434532022404219996832336627026731447386513441043748719441998255524917435645709426578204003826282979752023110042766273352186165331244242897720404124721308421463927480463564631361465001376861225610101959360515441462135678569995373961155391460967587328020056909213946358129660201728923277080087300758260788530758159630060628436234759687324131923919749741952341874276066324223812094326765250977253475299230028971066034920679171222971838250239709591421011654427722762467778979071350796377023424309087335336372464614264885616597419625414656910863775928544033738564722110263221667248371285967314911848906149396566362132623121987426121170989879566788228244720182008102315609295235612148534576772769970814021886614721470848143004715765733476171431924399113356952019366943870308976026585392957859476738240695791319153014822781106841878620185723900144531616994659030293596537572421047383181640109529663008876432610428992229456153807748655072174827241502297943729926277794004026362486573365614497614823221696970590248728869372338703190920564081722466090784972270044243980549646306292702519886115529675936527457985064599651994573876305245244450493861090193576404277767796313896679125001300354326871534774152577310721738157290951896039839813130338732188541719150911818695782345423200741414046949066648369133719776052901378437514320827016808261688157376765726883789715995552701010782239008014898615219542936986356651548797568474182995344183721020628052231147642256177224212864654593584911058841489229128122047650475520274176374720435567251427981485860993974093016096867891303713751856044372493863092704940683466224013129154169852827116507614044498076914651560931607975181422220275097420301364890721951901859549502402651506893294312475937529512990795301862908300895752152966669307176345913810320063127089569321649772075295075884087203803918854167161544128353991157722109215493637156833963526179078163698416676450532277253504471974951871663007285570236238364773141504479735647988280200559552897976595376739924064605150901101572364131560645497674195043899967611428365335073173081427656522588865687531328272310783198448276029534600912090114475379629866559197711364597595327502140247465536436379177233415325995946000129405169254045750926474089995655017143634358365975806559685319023154085399505412294562999906855349081802125057290520371963929890276176476812365688192300951479819208762418205720033264899783589105459524291340818742042916910299879170461256082383511917875594082791341143438372354939812243952510593879429825491007305978278041138588001762448561723910381207826522006305982627265133195825961294447380868782605884064861725616420627220123356523726588907538140170898567635539933241264484989921628028803022193482049146942672047901301466625604176371442022063144993549480319162317541633906455149016704423385140515392212130811162589560831362867255184795676619798791747026198848384296120709533000338695471360423390425190083626679239088521990897364258668856685759515105809376934364860794555559649558399347043438016048877594039711349193315812455418660745556652178919825992539101073903130663100670193462289585595638616058429228692114747763691705208330914643314270868990229278460830221224364892518489841450334127047608195593098772716412266415036625118945488395002447909368611596357905339823058497610424762905349973476918892799652079974322288956993578888836743244512707522443234783438171098466565416355803068386341969440141813926799890308179029110291490709390439006223654389360046300655971168548259754038743822442963048624790701024322607223750154092685538040480888088834512574850935237055771849781770873027005332506299963106217943189708758164329547757039515806916888388721722956690509365738541775460077308158390329449706665628116654436050301411448830334841551668730414694941051282120897480908282136845638988701944268878325401090881249287938047792062092769753014720900530551038975448015066047739145031049104635419037159871618875205228663640523092124965221273982779393411318868023797489429378663414655383387285670719120449541572725501893004263112510378109642474758158125397326093331735681197934241264191432001658375587782319258899318206292282282639466543291514657060225116421698889642141959183970009656736139895569434062100525292941908117774456091978532254577895799169883684049393554514508792581324524900911373426886214452082002597673716382498904524858635389749270388650291339874854003073314416462403175340182694055042740727101418129465790109064792437260056217968153016346076339971890086714732167097366966743959112639035960738165966483640178396146338547791673514903742310948082701153194610884757413389713780484690075359228228674734591826780193324727769249594643286929994757192508662030104332795193156789393243218739668151927077879285161770965159706675182814645373762719270537762245541131740224233259907342074062851793138918440166877606099337910675533726664097372639447141875646057695160391229811512529727587741493669902395873858242298197310838400103649087545193909397493961870495305797574319625854974403061462098393331376249752705007508281606039033597161615164916549075407293670261117177102998787393952929055394982349318821180804138115710650740690354098881703446164000157364575446626574910179459469463522972899104393560697360444971696264694667196621264129769622590613693019680885112375468734693827612896272250433511079756160994213249853771613896556099926767475868697424443034705861672618977336789402087613360580909787796832537815448525531946599309547814028215101009105258886371261645512166521947662837634661574833936538264803413259239132649790035846310784419017762017189552705223363838740971915275285843986445815042182143076998726842894845017889771892874733803550720940151566110405557491297051535865110354306614158958508709462929407009385347907375749374875827711444226270883059500505934417565676340340162347414105558201520814729776015479481226005614794728979987258583021480716110120456569861702498897904458146988286254528616810297763372933551302033391828027848455671797181605010764371511263171050937491659426078661640530497092061663742726985978986397028203782514750312171031498879064707446047123256622087269702785443881193888325834110214328141824885578304065064896060979867466334078174941228501250156973904509372621453026580593207205025621944890375143647408042336068674261555740468543097166836118130106872549495817300188347969492640853830582332622631967937227422572285077109049671279155367291459818388995194752395069504974353524293337534813203142659577026300515375161270037034730864590279920814842285732734717084771422208114777051703499802164096468807954477481844046341860337779066422986420737570906334620610939856523733305467303277318681936529309171323193414817192542512671866466648515889797323855583570147946691627537690717201118841083077584872673374500821481027233412544028041808686305030304446019375668475007883358592207819736050424038986534514658431897671020609548022301205842445199352777602904976199344147217158210832733245050649472520482079999321432700128844111410190137577610003819805814782732189557672744147903267377572665578185625159849716752137910678961227493614666629968271928163305754103886072282258004736453101519880952503484728503103250827296949442661181953314545566631567754616491631007492815530415755614382293759300793300844656443971790740498638412978337052925632666441877853100001273970591564340934383494687245957305732808940750438722663495440444479949224299268787899069156194411770492553142152285053662268635153527467289068026496167165817242254701204727061531079421444658992369817507184003245838870317533787719109390408711413471260584818806724927676711183976177327931611956005063261099787178639771498080289498881611956459792184203323870361415754080122218656559865466701140918471433707539774943941557062262694265117086244524723819331144007582889985933203063253901331572899129823594456359050727590824080046864119342416198463535922636444504232696838053751179775242807153302744220480640322518948835331986800432585125871287220393256585090196750354454784107649522374034214481380243807473622689885463428646078250419231749975900726318626911159561319304901219787690592926474117743116489078833111175389220369974337876678413295454422671563233021405010821265961066260633773696317429646687317187932800676556168031346676891551719213777689123204190460114265175410754480330720342622844629543369880110470772736959778731494473498843704000764228815819526833396375894301032708505329157729608692077743777077806274624747710119441410970742203375777486634746611249078492887771987875311940636277857790808320334644314563799011548976470443148756901342129323523687630807559822766933619277565349664702587285735461223776451809215197991773764755230992823077047700958344079267842551181642192163240895941280206683677577913660662347686029475060115738402640915166795843403657458827960405031167513830995766963140618211142128309120513441543526097679868479858454207354931756806045334485972974928802022636472013418409397847482586570697090503657199534832536914715061728025071662965678034863601802427168394715602473105633582313665259582347185896075595182115644306564507233393347974563983896073793883832577832496009431961596392554850809573892939634770011465848469647692966110032504328109622062667074056709727170676557375963075190834184865510118505798545070413808734876996649221424441515414519540979565638518340517897761985781682099714920426175898932501730233207856858023383206065003267764762691845918351933318054501871177248046673752022088094089477291998349619956387598613397484738322610783243719576147892552635034168484373953942036238292507133335090662289926962613601631245855444038979379869641626427665692652926261569980807341289547037382620446449521014796808443317368710472150427570857240290496708854905354108855317278972271643029208578901367375481368612886661913757306785468562597732837438928175470495527357748788107108160379268472581189578446048369719883218564129791865574694496075333603668402790469828860884001925799659950572416981218189396189554790415710550923581129351226140488850585856542418372394285351708458668577305949909345297330646316372950019008948265948195167423972888380911636113053500931108170756936640170625449082795373277641592077561798532074334760416177880891196824753211176936649408881184623530088192877492580452233883767529845302633045358999062042287237426891539629118271492893724511196074339551505781780254566934341893307413801829684688126465832420169503117662374609177177871592763595926498468284144999962546348273223794545536050808288770952057428218175243138703091380627396130334654667794688184206446535050617591993505591461513645537653903465628775113098142320565897099738669395128674480055120102845803312900284651999031081687090092648593452040201733022788557156876719828289558289642096653537842979919013722682014780203485587319797052495170830970398215190684645958787434867096409471561974525504502819998030349690979077874947219509932310213141534497881115640140395103172516871857769355006441958856947322759922042155957303446837696251342363356020655298045595093051053597261139791223335512028891384166639645447685131062879507586881841922085216913752681085967546721677183708066263242015990309286749691916418125110562481823142836202648781049504715653761612097699664264502651790947111957879425044718238894544126776254531429365401376260686638128805651220166170178986089398203520450835577468663440404544402102660180848733290492377753741881861316986770117882731347302147773303796705339600978451262077329039334009388768676369808273520108918109577892096143798943663169271989055700184004283859025742770315098241704066180293538885245826995073830641679347932666758505602266098531749022996941901368622940273459613148662258573803467601928339978617389019262168856544014292319617590841221972358527882460170403866631980537715650337332051008105038187309431943727792761622057640364531647274145242239167711053107187482874323315391618468263225610308018319951327542140615223468641822601666339425618166979923895024470421664804842409149021236029378189763215188263510424628162080085836064016590507009236059031219583246647828544671268000404829991200600569397899720978786066653291808261226560315490448121900542235558032221276116350972686593628413853078796817813026972457093474103754968854707555116263393039588446372535011558742317409333973983111554428560061452358396049935578213164560898272987398338304419740674724983894407696678575943900561042569126978834859979628141220026359960463440851387175878449796834151833309668802296439378829912224287372412047500176346108880138489968384679013428701620323468746716442389476228127164755010756455854886835882780424612467453731535808196676652190293503037327819482187697552175272458862023679104700032194156136057931394811359047824890677045493351834403027302733630030520427666410964312475731359155299459526851019375079898901307301732348343759649845707875686957774513257548438442620388014760025524890522481547056224325493630280032002082023703039617273119179095189359928238883455733309979414795308452216312496144026998244768186539951861570624108938646304127941743174655858476690850830316435422302052127300207163948072652041020479382214109555974019883352495093729297537453949496164233521535721583608559831723010911289468401083105537369041681777380654199912747730189836516251567016279633253741555319592861195789497737358381015609249238237544725111833451090331903126324687487975391885467506081547099486608039315540633784197777572396797131033608393786468988063239824215940798279433374950079137937697429149638875754763826041740412384962911998644677697067069373791867964158131093693513389306062940618300770476597100026496463955300280258038958609991050334322181451340788266824980550866857358829438184385565117222943410465875149158577784996259400797420327223523017921400055324431825704079947134958389832828484372157254338801145197506077477522919260391405425566755960121362000875000958542265997737577838791360611400392009525954790242581526771606556520529723157434494982176033708457245092748580942768280858393393031060712242935558794570089488767083223245041883736917514395373284433031575672000468068991930016430896748929186460344219706145961047396867626769388278132792662924890126321952077114347060044107327284738574931686146292483105597116121237324670317534202175125482741522854499315438055432803219986187909522900244145235719946035168263883091968895627807204213681163359705724578767350315136488714398461654857556912929807170378971986805571766798447585367063563705178986106445102466465521304970055353022743581621755368694066313207768547187932855347756813978524019002798161424410479179336098810589263314577514476939133751995754156969623914633186591084071349639727250534208848556729434417158171630748728443098594945773614257655769936621344648211366857764754746434646139692688619292311157808429745010310252981048816319597902213350041551990576325213637256880758184139059646520533127734676836689153303466563314805044963522553538693035068056340142195946761870899022892806909540967822845038110230730298438956335734701362383783614826123085082531174906356297111541721084475984361039908099666130023021016808113086459216400609129581794617052311516323465608360366874262651516560890416480672568341380243625022134844757970612672657149542702692517975543388744358513491726458393314686639390167310221603316179318577110608561686676448014565008039608446465002188912415338051546691753778877578116383664862007147996908507097422718487903281621636898916423908429552667369675477567785808642198086869219168277100706177883197691747140879548822873184479799753092348759589584449610160718051828882952225921429340608873666544563440410150528920699252805473665348951483443790507058587111778348552262084886078743364313995828835755868985982397383621341562674121011393836386579438765976071645768094817306661158975267179726415976339964684425086490561954083710366803987520153651262131617197151321543170569945924929228044613053794345569100963425291311076441285623727495548491652000983886153516095362056446630433471844625636708146527743171646923183881270175955099078571656797980532023217902181018232791269643482100591113710995767240646620757724420006102812270148965448515325736663720419447649929136082733516235548111108488376743502191301288525092484496755120659564808993912089536694673064018692814561302943274174785950242487771708163311951456243231888409745030161506440338093757348127551260132937149860224200551866246860201133036834656441861081995337423877700845683301393854055148239512534833036500767876245909412225346764492548299180671796903830331772929681867340879076323458821445676138060902070459558057659176492286354209662417376262711452157756878882569587619920320618054656733850668526558737799612607843019397979698433961447049421842146987923262051388856258873468883264747689527156192404684921682573561938755841419376277457469186633665496560072410916329015248915549938217996820928020384556985510717814138978188367875284231246210452960593534580213746407202777040331413478276852983942069081235769985142106004010245535541119081641071230878943738802509312131824732744239915330357907895258697155771259316338738398007962330638800490633300392129543967211119300902381278016020014096226350038205961284666132253250763606087181423449231807165522462643436072565990412617360393534370342072972077457034500723316269056754983241517079465839941500998099253710214315564696723912160476625387199582650245307677089979629803791645144229932415749365932596731230263577848162652589857602695266331833737787116061476891573598566543860629432226112924576756664864140609562785742061896302256959442779969462857669639273508019982484148584545325812199431059860560242579719717291257442415306536228358923100854678154417814612078044643281705270340233214600393849012951538638351408068881740676694422500464726064136266766800304084534158104879452117910709432174092903967542732891794855732262708648897065887700631714288969952388637329606651712139003165853942693325742025367806003336630942486660654545509632204754196333284041147608181753865137912504808532768262245837585754941724391055895252573089410584485975353135075789888741866534029080948030600856625642729293706115030515171271622498313225260516679370082729415865641593712045040528168238997530446468643277522020696618048610104896083454553785742244694402354241372360058278727921938371679527250155800089543293996801442390529453846010059361387487557521466500527776806699087088829467931687243368934773666770776135034160898073652058052271636303587416200437746044900815399977474679483659561587363857164698063349701324178886174189545650114638596256068084606215831284640857147334093595007793825673282250029916645163427699447386220866755817622069546669512964781938763558000405857166942769120903375569695645863365742398051146240504394945968175091246272891109245955161118486596177132374539737014617453944475518779158701564785413663651104743065786331518308758492668784548046912565255676628430647468111914130564605393024459014332570767262324064090397769837732091162626376482018837113018678728670472005886811009740658603419232081496750075924492438378441996166896578940564998409786349448597700128423753516279873850096086205123301465855898109726022192116548578968201567900040810788212725358914454822425469875403881112299631501403395354225006469557615939719398874855690560436426867706558327532130804100431385306327450987393947986741526302917475927424969024182574192000469490538144246642673094311431372743416395798495401726604173507726943444548073813907376509800950496485732874066713840837127872299620432986338040011935724788332752984464940479155506371438485012307836664631708121996960919097233827868393429506087859963002072005034123982591225935372267238494680945055355224060971947421788997755340008656619886321968281942924090780522926847750493583582841216577872004795061981634320678596921315798471287988029214953003928645938975821738182751009713127969253388269954171177238823920385655713323250454472084905077300384152852727220398595929261938513866477213731475423917566068693029914738029007874589183604826080696599543752010528211224085451424794850801553558097238694273817925372079865477008280899715994553404320506864278195616539447320291765901381826884301104737330003487830858378456737699354921345547774614286409180069907815415042333940139512168311362416961678299093367393952900871103170077634640662579912108430453260147881012430351725430912716819482418213996391214041471933346977776049457809096777254014219821822842928045999894212957463594920361291276577896075439980356784903855595091869814628369456682320617922412333789580604110351573729392801153306524077132948578972656176049931157995504390589319707830425625764082759023728085345727863888272423120033440723558465838568402963613030861193484677867499227422403964356860112953605915627586165634519730316347817640482845582732792650567739301779801665975826083700313746071964446495101924782487886618566752877678714158411630053470387812105637005358181836703555670293689631136223580017381098776899638601289351659903200293532356950629396482199972850394632730411371695380683553832849970458681400592345486106714804565900660625653676787029118211245204311115179420192252259535284914477605351606493467994279809099884514793353795410362651804383099568762170633652811373405729197350204952704202396846306688501043973460568078127620350325513867430072842582234200079978889999999403219105367344479867144442809243935114904139089477784519640302961394678709127086151346469538800267406379853630113935365849026262889405335324900053278918051814447190941588069279786718947240911654077066022131114875405092595633999508301439473864205513205311367829631487064479286916124897212912601337826208191284198109460191410615144344375164143008307101632172986174860939543940272124971809043065117830782159286175625472841532799922768172653294068171358542283878674077127654388337094314623931900452332173060406650712545006711828775168606193280482091938733992716775393786581766144947021529694216853633397523387143194733026395913523918985830647059030393120669183436341217631633233416155894497325624910750755590285588933172917366829788519974722413064660342749393940141705172889914272164910284267554389817095802035872791176604560255713637865715039969654525681341059719111888851165746136622756649140805278454264441099355950726722370133813469355933399902911745191320214015213287481837671275952134712756974028586835925951119832789525949304040292039334044681113827485186963471151184531529334192569925629338033331490716204259532993945795286686043594978067937603147875399736898161735200907108734920346863236952742227428749838633295602365489000592519426722538272283115209236650603921199217265246495852113859121852145678371089551375714584301775689988488264978012380209806882722499548954784678261748598952300666404108349967652520154358074707373069979716150236500431441873017513785598394038982782193043710536365539497136685644638287971674592009873648339480237765787503685564436089979900819884276465306680565848270432530338126419726545674006259487180247159380483138012645406406186016430631148153976970484275768959019407159476413375712714064890020085797970272607347226955309390574541625005968324987445755151437117229415076341954641135340950431346052254175507872184650690091980319418080646165796597549540430180357861957575071893759619050089906679339713665639523758930370375037801326904347803078252553321099102172535075709198377487236529372468577222526914105356060265975565619715976721643583690514899336034755822166738792531303197175678646787869417592130337027301825240553200910991828117492836698602272901664904323607251867974286682392438390729053573609867652835315584761884610603330540708128520466311524576308066531572469054242958668428409148471462057268549778825525399924986199180592690291531285683178401345676751495420915345151336481061018469283449447737160861399995796635213892136346767426589891068872730325759203679726320131445941045823947549875558499868103486630015051025558610049483441809605251917216829943058984664610563332386063780595175943175332444222609544256222461336665946164850647645148561461796800624112118872884004932743866344576092066441979630867731238896099146090466634923539159553988699304496057132302267667890784767778891647652497381666413236544152492652882607079950802622978615154802544903218128498152689029223778606354164261379808117695324593759921474671681971736816558479537883167669981752770071626254516075474543148883750603469873710213122755212243073401416530142781944569827354418145864216252181104365525190883184685394643015782709098997010398899192342050610535785309388546225842012408954126570740044762790824620068675521479587296383071161024218362105702220828835533204867250160754068469715278430384950558917024230830748738304304414742253428131361017982882993602124907017655933558431622769448616031663120844943969353843280781999682556691340737701785715576878829494264218637131210810021014573739773833528142139529607993260527509182864582878442600429440881564068620773732744284659380347169076447082878358180476516597846195002301046356546051681293418704344755774930048031495018156688941122980069664233059709123618382500574923892763785124567194008863238810063327194826412050268498181115883454495700351063032820080826097076531391892590128760385701384117078918099993316458620683719162336840979938026474791082259694804781378926350392463075742969051030121415807833817014847554833566525390801223749904049951100266500309604858405993090206041438443430359769149541648442615338311729371636372905559203844181699998816911404577234403613280337884423698541062409472964934180607909485782421198319157929206821273710612786999096528023550287666711430045369677553494739484604612108440987421020220383930578164974391336365568368715067256650849006844224005243167070240776067738159505516381964387082335743123986715025250199511186527967823560065349769454751087164991807946113046058055525416474002627886679091801804589165505436390799651307133515879527284896674736894138331296580168412925071619060900085044149555937966829177504204794887968955619881879268071074248190761179179789903136330883892881837182390697881512368985266595339831678553400562630602435792270051877873698336248911745298214712037851624865453452235547721018874081115998382020842635700193983170272541157781927395616474121577776000776211620030983823256724977350808445841787148290297622669725744988583926709677748499187823039057696508213237747888323301785881570192527236542497707976513218903792236582580373666574219424448312173772962372309127827049326545139964901293896212840860346489606924964447815288413501495232070770264311556908842519766587511742449686220522731595387292488007963272893888579766306089257927727340299074490569965199854053228147102767659797258113910276504746845803505688728284152474789845116055100716596876043304345413994090708318500553273247633195114542327879777921011148054586798905345617559691230290756832118338683777005378448995098053051778509531760023171378235322972303101471493125474894703732545345397514417673536647555389685211959878801137429827227094119267942918688957110901454622409850949052774669297118190244546996313960903276286419288948329863872137839571112412282447517256082699582224286601165705030053771905538948270218714372768442475821192308231672100199600782115617742895133571404350752618945186895615883638755968851227641333411490974736924379401545834240484179307483900418064278794554353272865541668609550983920773814383573330041697328572457349151241425070293751135167475200084156502550792971280204609561509377848017531580865145490686149033933195930085846101144995075109567799873575392029623540987649520230693808503025880072507359235490604292850867893472647768327738925012897997245411887762960098641442062662161213960762911404659849228874296428131431202854550868753863303033034879324001487455087362395578786806789461549394541341063310306937912197057592803588967651785573455411882554632443330661143586589948313565305333360083630724166222720581506085375933417438987484806568970005922544566103736426273841584153639448245812793524271518262528174472813884826632424683901369221641642439193157463517121394957257286998124963021607077921849210331871721316178225681246594217546558994008436975516137190275598928422711521619272592091272945071236727493827999430492771438476527909852431773114469763739627296342807592409094932976189381357668302995872887470989950491373623553086331495977177597015519097470357717069190385730166064283726313748425743203343175300704236647689128005607797882568511442121657415714688523767470207919305275370205066401296075593024764593560837898545085233992022407625975535047181531349063377293972863903714518511549408547378155740974097115834899205741912861937406754697004381293726874012685626871419143670541515003263793648531481723260912879928334520826950068844673323464130821641282017305318880394795278599991815719944591598883165518651737079827535078772328896093742223084291571575719074757090063736447277276025359544601570445768942659030383144274581330538320669906225940159132502689573809175630695844116457502047644282168634870394493920562161095928267976386797106295599601543465125064139371277529602453104152609669838965890639813540387259113653720980534541991163363476022365902767810692871102968651218949614852310187038618784941489055114043561472337299963079402298346541774803181621961998020540014759441520355936581855996119987368170454458372660155888193099079933633487232938037311935828252799248619013481677701018839955974899049922981736353921743319788591214284155164601546515946232169311777805988684179046853711459343571718619170150087593167023396796353006246840459973546259747934646410216691653767743820045580158208052670698873554111087888320317743398526149327699677495320924247900015867323641395356728407056519333939548422901142273788085259751356097898224949006092270251794275991271331249372125099208800643814635319703820050307757870208289636151029800642796126643354051506506489073540875846560944026063831077123570706365190042650355021029488504122842782732194628944559519237825176857479424322611330060170258608484786189742873960317001817836226353718223300707123703098388286187410732067307889126877508408588573177087484934345035805839935410328104787006254873465670137419226131579423741589472392012740073035095365984641853147196583538016933670937781084525093392020390519713850873931730695046453572160720503557837867516612567459456894263518311663033056012450824717940278326023576074747470986150022409651225462623036625977823977868008432866956078959065028626576573635059752547798409035205587626025361961279808339210332090435062365311666679611620413636259911654689246870191209478331956135990986636767211153599545623501781821026706854549116701797923112043011901090727062426553437011116479726168672132597522989085072391037817053867483147187094210801593676714361040242744778162371375996088492947953343100546050797065389528852932960650611712660776427334157301952532712584822623039686735072660025530000816866282905944087314139309859423243748044652993377419657855997484714297026718523574606377173644013060588254632074214945436404646604507327098129421540558289097773681418278759030997100199252870980927716588081822042935732901980513374454219926132938185743413938630442171651118995476348684261239900568104720389659031876192707272190270598758542182361808142186884424149214584798714253333231405464508718410187056399834243343736848140391366829057442753765991991900710511910321529652814460141745965351693136034645917431480541643823512099737257994101295439422424527492626142599790536401417869755327074382972302555134199428028702908415772009916342498606588323299739540243511294223352643278543601367288727003283407163488768918735655127402449355121641109553127888718879692334923870089196950111221559212177944380226465570122038114671502873231788092346927059743405269257886551906390933658324470797155934412145854286414423510302518827838510204627635723402633366465844934722315406162104196242580897626631216877105031250238193932905364999170476482469126874299984253794590950150362715496029103840371715715759308635619727578789836290336446591245760575542639685994462813543786515605438736223635581501743259685907300027944655995234964856680659115364388663298379840910196075741523676568777705454924206796039459155425505497884536522805182712485425482079249799394547032297053123383335995203431203676461016926136481683189699473871389229722175479414408230898716950210734602239618201934587026080926358693595154434832381197485402785771189822580972941269648370383891782010169181763725722931621269458731128276662773023866158153231018263337550201138741343856165287542623738289575361417224321071053963527983625967117486030581791960712828461462718192574402855836428802112390921702442273874168385406610914921666913626700941060213253648446895746650793100537704737740807656698585645745639381645607163598995806323613544522799875323523109274637926541219177531750254851393640588391676664680811163426908129944120368404547146822523553278307841175898938925615112044743202446465633529660032014096405735470697281585532082951043790367918062032143904340377952454893700734747789655357449717609219366802952757785636375005660061127454216831528658789399482252362544526601662610770346969414454098956398469365231248985418344952316163218772393279853215100660418255692067705152733972519836416843055878795431296718995875114441136316612322519783501389948575212858018493094832101494684346802010246019224949299373734502582282204460736662826194102830650737285902461867780261729740028027936082955456211178073058523916930131682920660542861342560630389566374705861717492539898844444863644940011937976973081274177342276492447810925583825090110712787319429882528117270406364652870007561304028897982934050826169420764029436634321158092165899381158877724902584516900312698413735598466637637314804626751567013464825540592079554976106092671426999662240419263486897114887819156999711174417059895766230880976287836334586996849813435159206230998767389821930439386757303163269933775688490012073916872897910361532123376715546547517947244469011764918961699336954170030257925728916405433544678523211620164167078796633677714192012056667882348413851973614061234794735452240064356919072603886734879626261519643914586660041877595723926048252109301111980462052858077491542818913366644527892832651396594851226542697914496005294145297595252429513479786664022690202053826131438879317867572573249571843476283375804884424020407730281075278502972831923891503510231969707196473875615379394892348623781496482293122608734219861692763404121869962509745504693981090715249085384135989038132286373585332419278497224741861367681961297793036284670435486316334853872199928994999162852006999457174234551018171047309470561886636867221846182292693627268234275878185954561969567243907003074537965058821798669334877495158995004802277487976859204045845084784477391268991613468698662599897935945418668906412907822166408818147097106687435437582299588062543134607686621489299398513179567376376925006297533209317333834428459269660018577700653246137437857368437050310308912808835682289220411880082851164563366539531684121697192279494424014205640968516316672136345170551838097302473574039771019939591818622655677135851056694462590469700544210806497228728406676074389970762457911767105147928100566664308821051661416113463874158224396056688192911244721659984695075490527126180560339310727920288961096291063892395727264041656172030633054350608853196258462294940476385142656541865597648618486346562236060255420224701363535151017060392652925650621915668983698028969535610618711253600891378295503401587549732888301512358483825766048057654388545967622180326547079340611170029539930018137959377114816841854392481076420849997438761443876882054550185148436728585548591816204505241558030856769952719244542043716579245181029524609338676869630333741438112966908469506319255322769702085649136443273537222227985731527848147178969143790092620277667632189513361088304606070217223462464991287307616082048714274559579158471281024853531887795547222985325510059871751725515034948154557533735220410427015892758716088651388181482116981978121559703071208865729316823793505800358545214331745302574974316626348823602863844905056853041200515017923726276635342842710383129073100998692031131076710637248871175083948059637248805241284093311484250380400103212915243226350687345645783358284233635039074457309852431641243808985150914924705560891533601345281988458633413686109447266495145049304500808831517112231336616731566472046443732116742508018265004336323684652379680715743399761597450190975497166388372942022203589996661720389978295960117535747520958805201136540859168853956204105794007365326405011595850315205232369843516233899320787184104903124041003268885130053124399746279087632542219858025271794330298909354157098536430034948746125204175735498261584938149259394996712492914288403258536815621629538453910649814819157842906967943126444725640183152270207373815071618780306766306610929229989741927107317773784824863160662837253362432248272188377596644412393507991026895817233848742110385392892949169173134403443152749607939344768319634271059510901873969046308467303916971714707872486927378973355305725421519422742213812139051788222256929992261748724170218178897184943313151676183412571405330218753675253431641725812207378336409773609600684593017829805392110924525681321576455701266304727167126397604391003653376365825136922138825840735147438526253297150560559250610188297237778047066402705201145620154884478861790538556902865089392069005623508999043667973445281164622686576473876466605514061370522888084764446688924946555646325105978998178389702931161684692714828019744098477404961446917350182183705484481379767974879070599141336251151806691630417031138305271339887528783708166235848218872983003963093278375223713734911237160490666570798554797077919091994901961708186799119319832005578558225558756684507924754750320729643911439912936142653490846592763296424539328921898573958103112965353917869052922817925118144274256638838744084361490222409403660399731061045496230004567888665380112699891243583887659237829586124684353765599866130902077354507114853673064856630764012138331868229080552764305299586042829002448673724992780750004820430656055763942114907499391431338711233348847113466986126445889851741945835060547397160960353963359567373440612941741245206119482877088512501791395459819222233790235537870562640007075976977968486778560434093146020794847467583816659433935266339837572829729539934242471007190794794361066624669559964884850927224269788807399323123132960898043581297897354476983917143780137329176606327066981505255284918596414944100369290913285773767716352769739641285535705085762389406700040597239568254693233075222777125861151133436649047566929623827206266856156325669766886443886630355244428030371676077920119275375505033379144145913470416218920344744708395785579970842804253618000379490842333523372938282828693440542313171806615645879337832686804821068253685233367978494728891975970299092063034256437096212383565756271130248466736993212612444213676530278850575724888938074112791585991042590934463038506555453796242587600730336673859350854298996913287066928383184648598387539715472041314376019025682831950919422552814794443316748695993397191511107101443213841864251019491718002133844101334794164078706918283950032362458418584677933865582717336081944227797668743965042546557588223486280602966620111716097431554357529588175216791198764241027264996517311596077876446639627159297121543759705850202577448473719624067283544608706269568767244221957124960805415257256763255366651632249586194011048817189339950451032420537347205842018131724216724692746109310075747469692615773809207479338249165798930222047543634515178359602395242241476076410412600774310604178478907107900479545500348319998121116486047851846583129687572142269593501120727738589960157822349613738689061790460378255594786920149771409998723168642556719305451273936636344695113759822680380665233794325925977505959094213268146377421113400716037465334957958633684531613477793988978172925064138871159626174964903423642487304172088354799749247827020907987053731419100209477910024740348105989740635288089889543324223266540364869139540168222503063816618379814994233379822223578597733260118240806979338398549773616646668928978259099912717795554799685880828499172253966846814398225822419890516226416562578289622608402783813657282513747366828818864454751001935490468507082055768669396609785267835705082557160482689042203260941556355438051642210105948149438922699439253060553499801145033716111483336622970973262965933860025655592352713144167324242820030317938434352000321323854618892347348341067620736076938049227969356569413564256751887812604830522819974865888357848974330759862216173877226100883885648762192156893708250093184507066231687220017034075162212703668058780006313012441534795220328456678348295474492391314496858790043217524157267844402199129213066339346035320780606091629320601261307213609103821215827099656815875464277262082294391670468888472568602159276547277333044786957731070033266613007804698409947820591693593357386387571363686044460955338966119459650942459932679009985808948542530103542291388586273391418967903023168754578439691015693430416655593836465883974872206287112210796620919338275446390032771401092111379501343946665085987970184282376706472440567821282447048079402233529995641976207472380176659844664289601176414562896570643122278495614274669647708025469579064663806650755168215720128110093536265873581479041801780183168750964714667737470338565904084667640763147757660313833635433403345032714826709468689122687404714450994819847877083604199031064404128406083718048371481649889078997867162456893994517805786156357436756196289242884205592531355995643505985601623766832042615713466526800922000238793434977308469782027848214303037145463961297653557693869465050649026385614261725820565995424467307150821846917018455152500738941296136963862392386720690554148625838918146718158399529421155550201502435137699312604099684538490598025574459561593373727386168222114726669910302663350223520263231822259804226343085985911788913783794946243266123508690817523912340714376926117797994080346561984809119183659779259774920638097447811087229536322741204573466634798160455523379119205498767569218703426103172092696382919995592199064347360889505806291052283279390640996467659588952367158239312422564695602980200528823917784202212374935601688778725764916187997893815009572357984589996050674912669336601475925434472902064180097459444640623223739647441564161415995284176463095179360834583297734433729576157279594041705103723073011538732811293006987839997746713284483203932638953859428839397337528869141658866400352091051286342143767647060373432512251213542827905440337986006890520461863392234478670634528858398067152470379649018322204036790669946189947609605324150984456843626495307312441399942028319198345569364099289358239270086007749490245399108785784826867691481217778868173253401558370820246259802097077333885634314738994379251978843596810874870603705523832003033020268381936266979954255496436887517518331510437422761041008631206765331329251481727302915083048041873378651172272032777864658450148755206249807389105560448696192714219082526392719601844672564691204532154223613062681116372622906153079915899649548763243412205378988690736979032047994311454684602099959059680462613305018889943441344257239274936161003584309529742063506985874984948703004618686244774070929775481189464599886909347042127214491971834176244878276648490760059601599096918396288069022354960515160959442843331410076478341857091395564255575264153519820292877527632929098622279442346643648825482565930493884914721915720816933870538670998704648381158008158007617814954684564646441579045933501307306580659971678296493820614436119651752575046770034385642673837951881558104122138158135919338008544198318852557314817278615266057800685567415283015684411674157012307352558491670504847402181270181596543161034602571463689653447715878694894644661112636408555182287675028314053403016542734079056848986513990052717276420383984003584607524413977826850090959912067670165728660385456084565636803434338434440035111444640988973133268003198057558923389743764835029504167772347143717255838024521053480846933305780917904270065574509226608943363710938173046002676198712319299248907974354587909244854391792062996026805885074092311716171574654192787044273809025234166800887422117842971996392316749232149628364256642502358982881580682740549045846635623973218647646923437750168060680594508228795481589636233857161395061927307995024600120040960377800692980477495641958820274539517100729302858487522671825988906079756586594294551222563815820066847628907924397895386809525947518871361790836287267983276780528532742936904542689392182832120609769955556653460396723618392071529967003169031958277341880356844030111270503751776193443375353416625907619921905309053799584392582780351146989898960401824796468640711941409913135397958341453242756860818802077742058154906701702579148160911925208416977480159201065486550756040908126993056838047194039034766258645264715283221405354361252166617474906224220713739105671276665713226394887361637707478582616497692266863494038141458477912023705630982790435628815869198940803519226266049340387309863277263430945696601566663689164140795610191288164516208811083719704111207966413453732382738476250007177858198251830662256702812204546778523222132234201835874874666131296288506833618464980341999120585986861725020913048698701359185958850017168799104922458185636798769260101766161678660092668792221703417450022928619809197614991866184700354825307274873564539263767257415648978141523219434256331527203919552686472753572651979662153947314244629625897102482882963793991544580440756093893742958024672077954330378111163499638853954848661347105453748704676672648268724305379917210367815871196401170848299171063733019145437681351647781403085723905689797603787430737381811498912229201051171456080894815580500191399858389293341548807944650464489452735297622732093173683441962669852609784265083074822599924376163080453387790710132941162865763373784216822970696044555596761962037655797835105534015564778061914020974271408990070231714852720419549158106688123112084048191207467747021330259694220336526610867622162125763543208391447975615604819621606536191816807719818731128588751770447410191172299497918364582639742906896103061349953917955401990572940750100887026898138616364760012433407363032676572973277904242264847553399796133739138194950975638408150683416493285299951427737538964460963433098922316530128688094290902854795729064031852621680843532182741925758347000157905063322691454026096423703890262405041233127572170846739745101860102252640818382365846898612175689399022868542629514574490300048224840147747309378152017129675397129363891193138002664528516308639686016683896966296409031154048577751449001504365177662320392188689295892170274363338759162668553026381674420207866930676874282790078043964552656735959899371870705035071979921832652296827464276212841102808874218979757722981291170609750869077921034267132295287623301969186146366100606635912303878866729800513752305381990102130799339994843157687574163995511265417748685126792247786806467905329202325286131416841271413164878758467174328501420022863313746057449802874183072412321575740976050227426817798459752992469738655704323416515395971398288066112921452607350105676645818475084834721331888902247615361582313390672618788960677584203172756758230725209036935924288377139242179778015805955533875221039882267575297575636522178312248516930436248570859454716699186148995944526475248540964280108485674683425930911027701762953622857587353393913696032427257012274622756245444497007995788227216612502619387519688934850095444542074504806706582293960166616747560718593765810416751077298929402271273690019000236115880757167166816306226443170821814863379976311965230190763669715582860473740419457295069992275843489365026825477606359504037207673411564486283678872594134265802746474257602229015242682799903070130023921198743685581124093566195002698570745332794371777058454171396359442513671056414879414331583592094146879842979921417957780100631314969988247603034614541186207616830276080711198497330139180609621379922926595439649831592076072210160627915144870500270671632042296719789509843075802873117819072702706887633425006624329676563985808670892936906814567238568760234531348670434986701969935270159097468751086363936955656770919006460127640016174986453251743514457201238755754168282484404242619792883744880357794915751488595038803379417044646737232545815889081152058656324235053979977506184406652699307971140957741157805906502411907249978473501308107672583070609980192633346096449018454194809390382142723682880003101338942165850635556658496083790692446611546588099377788063997498844366430920603751874947600016089726175571223132187024704635336768909177685350333111703928942090236471043204964149314057378093210971943420213696463382976740360026757129213142578655844743787478510236115513378813637215835099216990271164315887040613973661401706191878774407778778380235272877403058834926435490321195137491716622796686465802652923100502397595062519851846985552496636726719369690191946513966755344833241113875250022877910508213079229161093526076785241249432899624972976833009406580255888400364936897570588103370298428394492979711166947997874470956240803905636414559678964380450769547956131331064779205374719795893415932491143278332817478780712598915752109516930215351560468075373590920195366654553682227263351506691757816182739331503710556140567456912594342105136124714327346036235770000562003010913661648421745372197199901360153500676286355765002449969726874750311728381137787413435061140617734092616658443678745223456323253779479035173706867508340549952872232747533422271033815405735767622619815147718097751409839191067001594686464918192596069605291118603968599866945765234858988244297006180379877416124359032034832226606718173977627057628150696974220965879399493195755961021982095583311392750684396466793406590572333786148805070784194252796023559925286204233089437936423068877111288316352514508381634835804997892123320507232833075962012605092175517917541410692365692543531826835028102998433562911367449220083485427373089960681336148273865843128100054670555856692098349187207737884372817743479954501801050587141502219793074815032991363877472524652297837868786349037622508586693518074009030150987103629944000315105157740444123850070389751664765527454161060797820207463709107335504875786706084956728500629948741243264282461680191620097143733281724451857865783014390568397004044466362695684928645481679620726035969973595520231371065497226094708483981553944668549758465659022355471003950965376433441289574581962716739123228751244617604515455421798050147925412771232964521689424025320266376029679532601646817820766885391277358623599159881998263525623942898773422720553459857785970651126654269810153522122671278506833634901815263264302628137389816691844509620972542105295595418829187366538979020417049079618547711628787335969822960415750968968145444642346695493463156482755967634628939309895514625165281550158997289732416601377368860414769660098408252956108180854178118739942728830281073481095553987418579481429102880418153169131845478198035089247485090353555019360807700480118737698519886589557922872079716985770522236147292361369177979492886735033312178092650453018734859326053054853522708818940235338600189944270276012843184074053068534242128217798276863645154887908187772443446414958854870692075853021831036394041864802121514491815717862912197984473053550418247910168151398021176153643319776200234298643420425628769619903630497995737790025580366473217612116491702098424138141974701546710100633534217807262249150308836589191869780482435221863245262130160616442619449191749396765549715377099566992881659337899984672377321672698696151059982216785485925736537658705506999994689326591383035644260440687438100950800408644711815843591577189787322847508763157732033938560026765274986018512570984819621349307803308035704294354872453047399538744485227389573001187034095980585496184268252425655305213238403601715085304758466199934597972308688277998186338892643730298150638974417795804211152457019943785354545334210593117190523985806310218884108117510976091434909307216274536439250681096004179700159610162633727414111999263271460441006442425860298101599965767815320759743354301336856579946430275671531548271000737261687170482438568898671805174467117390456987523423542348739948255862966634850730384723910014391412491230777428082604958072248034752436403088587424331534384417173407404002235745016224833625163771519648852216026846964426109472527205568047466396623831625137849776574609778069288141823974512272391595373848318668470506868336767381312268361946411639736776589237589461163238394095935162260132612489887082912918914316981079897837390259063086836253723671897755497191658202221160830341082262841734510248956368893739059450071229981510080233618090461307276339595107634819520264415184511952361833281331506441414781500179529371273231188837072444568703262166815422372251437386661405247604703558749011105260175646336213823849237415248940663290718245895098268280901375349756627904198444212594084095683387847630627241391407322434540991437726651386546321345224946026916796207484406004445697307732087208642613758583836171070534554817532206115351771175956943213330584501561878774490657019230372083127154427542077136628695635734811967242947585216594847240487533217615152385731244034848986886033127057670294130546269972673676076178393603809784109276404354954660352633392887380318202714268765982309767239576547273790854202697355929999966550793962129695515260113653628326725340374889640317588342403118687099596205072721402336959883733801735834637014761052439832290657617951680657000774486898437430866809401385995196926220938748071820709035335701592864191306603932058683637268686940229394594216067894189501273949950736799571712614312148242478374358205892992456308945313023331929359193994560354875192295738688405929200309754916299651062743163273635361979825069397457047025930100350324998297487258065352915617594956391869765038339063781027310902611196887183816829056633970065418521178696080027350434326041201270959007928140694095486929320122872723694832815121925767353807516947442033354088302127261826849953978500663274666681625778538062174183663609129574873856701505598308550634755671228058195703619205423322380254412900368677858923841975910040115652229799755496608738693034756296016288022858336236698792365574223267277712273349616127473524913619982071899542299617995269017426261484904919645321497482752591081382517631689436458493353837323745334546805043594466390802307293439796888286172765203194491722287554314062380737773446783585650145695164547417390741796707346764964605597003315732030811350908453350465421000139985910613878892117868580040250187054984650290381204769572006956550928265040851256288382861795761107399756643039018046829107789405658163591373294687972745283044463712824179260698505082035872819747425064851002931972624172373669952673402868718994093428644914549440705815368804664836533271002412387942843027151736754139280626720499129978194701084085641504767837018578301948601415456778872655793468642928553435930607058915207974727691572959951737284989563873419013239481655954389491903201988821578883749247866202223639123287146726599997763076634459394818448615859826756757290140883201706841246484998092153648016682679528962840982992817695546847695591344729650057665011793543511548733811077561544505543006551608843538979554133536574805527103894083996443571530746893162529899202369229128693344336834414743437662821248702366966934275086707523035684934517214626977246954258532418648273097826103452440645441382076251450903495222861508846759311502679459060105054264984181056993803219626688744376283916577210067791639412139331820509223987839318407783527983352499268273618607118311816096904216271909439176358031682832732466437186241572873327442561443831178358345587532434081664945021011130604106302538857138000488947558177073207888562539806521733642396094868228254600080051665926470381598487517687695756315116612257334881655172641013045055134276883393817800168600129216652820287678039062177920110973566674999871282897119893474268437048210561879230296798077927784251954188580341613305525516107842681769125802768203107836708322210963867545628726286516951672993271730742529602819287042487841452693996197808649868690678050364824500328332136329341944402819531583849585727731567041753216919656220470219278365077555000363515846258677661556773357803838361727419535660770578094176806553697496251307965278239745532693574946650763972471948353777606082939166097796060756119689805401683619691995619228769240674885892416556007533397138735827990769895029487943708790350845036535881181690395436911305547693242585311055253707681199755228171592366004892634661911038928709469263938979779849263433805138201398510248896649801496123984336367487285613226776036419984890023552292115877117629250812173798988112550087135014522462528932760589832871789737741091687973527949211336257754050105259071598643653701966352387922790600226026914846578230254035532292950773690555532258278563886678016337100070096013716238734247616298306025331984753706724559298713740648916415020088303948562975253814105764655646626281531506878461336838269292824138308760040118956844084885032913136586387248059817465138993168608571983700956813758895075341660975635007219246089309373668589477605612722133766398121510913493785855082788639881770024189072138777374800543001989857164657830699556752277311650131478953520783523150512619651952034299981536809308288636345864405262658810624323447486738158939867567859385481947108128865267924565160687224221083267403053461719738142293141084274879174699922407347710500611794064342331213980366833466076640102135813185977561926454813790980889104459504105475253088334115399577700577094760867687991604248168597586819536862019688707197671742174534414691536646934874152954801473845267520822168432716867654658851372179054520869969516342257734415477491981854982091456541289222830064862225053153119733812080531945245400676173261831586541425073194667330972647930812593844146300921015464986055670480666720784736814686626361264250419504285355978223255425703403276386007765649619114993066747600846213231974943648734978868281173041613635250115710757334277377848509062601912673462135323423262136878540105070202087573170597502464750514386111615246435398592240205921445525630084755991607588822684070938715881513252357435757523689773538169347877582571050626826228358949315193157808600652367726498997564647375946097529485303600648274662314957221549608424752641650452831921602951249538500747709750997649593019173970998735332369299623073975605092878259059540972650861079179409706693944788336600843318041608534872336694862531069685048375039386092817957745374398967196212540466389968475813965731102703985633057671933454864285696849464184578433690975069601540899608666981120234973133568454844717590015064547969251234269974264031106558791588364877756959715714623225573613959030652757142242731397809201621576568376894498190929379800026331431899685534084047614833677093773666020732301338382516492235612808794891358182349899195719594884622928298697618383252764972935692584280719285827509033616560140868969719640878450070890137007350063812586200025894957152247907377869098690693902752669726573960409967212113374713180004182425266637460090473795216333296251705995188594361873781378955551679027444573819285756002821826304561613714505739165968937648851930230414148960171541764482603279267041403296261715687384485694856099601624931445304728562035500643797073246837665275471050049899441870975018551264580278039249306345307667014938730262784939255495716933503963664929473656368803897105582855160521072603673723836919870993356904854632626284157247467018356680380074007769055150651627587013394211246032838973060052012859693764156177030885451162752753241677189697025347708016627971894606119566456236845796416463951329219452589555542894231659630421369860171897113907631735159407746717470094846037799419946378553839361423671944806394563543448663736652397846048167340185877961490889516468497271317972799856008480275452537430680116258198704393638749129375634601227885399218241768774330295336315983457119213810558163636864257419383401850374117199619685172761901813995538565370245963428736828138323487831560114404706266947728979844341645629972326416972637243240984460827939235136300366429626498591450524423640932954012857140054992820215247891310638133178526569663408055261903977199300360965905066598708408649078143415316051979545809825337918508186084879323959821152248007877635535961625347769917448753241242046051121411514971272511159445437761487140429845433050595040860435875969337425870496648635895184374448628979958065335756544722739548808431536498222596032563033273874268853052752758401038124747655632840401650107394581688002007406770028463784650424520833827861319526290504689737171648139959583686596901410660675790891716648347408996552747842393179899513735121649781908961944202667196350224397640123273393724753146077713289943468258693854056922685175708670155306120978713521591563977847266198679580244160775624000815605907102142380428544454464818941968845149812460273553824402337737344905344168277735986542435681591103572900706004343531897333428914414754870735125117461135891241239984715244424033253036577988460178842052656839220717784326345422687638579070087764468309166318530147070906368840538712414757047668656646444486992756258898025404712119355209631191931110982337199599030205832747306188589641391675520250032938322052660936105074558273949494411361796596851101387674380447871179376931559242549695616909327033914320168908182098978926048617466575429738801639163912589679566199744033581513406349284087090010507128147710825705953927476401320840120800535372525606688412874808002055380919208863629209541442676253653470752866599974242314702341110685856373366039201355578308187503919475918131638953970322360617666972546348713659620261697371436732822145472142977786715595439721350192740200468534446434695865009101224614011603279343925851211676392468236069935630244010011364141217815569277547204105878873692707294533402291058967805952514111007520177917440445320371969905467494287073209288870726874611535380930821691107924179363340037659476088678712969862695043574067782860488280916528572446007629914156731837194730589513772179352590384288310777903491512762675935707102836365542842234842443773062124438943176651069084699353484473070360342378685080653894546306167002163752887239994748141232072379376765687626793262234227259613450199946260749291202358149729720736836161891333371413310591377351005882165357284542816877955274448310246299142543148557107045131398436926042667897622616263828893081132070425337358468544316076469910076232769669010658919363419875176356984297535280932426742183694191408286254532259237382520177572245916016755392781196022273044719288134106776101800889082168422762052903010368532895680838068639006098800448601744764526418296549735232618462412986034532115702909299810561385934386742064577958587773630297580765455692827215995552492822893591529435512232648238019185716263235651360856892430140203008564959800732578491106904876000334554150457457205385751585858932938036677347171603755586611931236642681859159336182469827256690615583567942965274486424648127282752599435181626077780178815683076475453293234526049680445745826192676531454739592220387984863525397053415490154804751676407580272896277096146161172665615729584834377624176473247110993907452883118086171742306262472457754411885266425162837403170101910938872040020126775915539407608748366475990197999257560665229770030894186214145344537218350178973459681054478216315407812016144723626764979811071304905018903794141204640222114279131283931145755770444555554161882823588707033656124877009987970985017082426284720316451185284663923334674826164801760143255716311619349134367405535383382078784944059757323147826400232025397718981847489001854663005802687963273088294040141116556040369020883351074754366927912835323253635496376564850184468939426817488956418367425652769634475387116195707366162360137309421317500033216167788313753212467824217695556873024817634395926111283674727583251869368944477448977531861909014751576171043526203816207230307103373623060345560138494051570618924504404875026519497616420565791450619828999920636442659060381564472514563659737271926043277692280479968453443693292069717110799485506583308210837432381883292504396927883906894349572825010581273515071887472213020098605877155639111924856879506003267461166793936834980408553577309408549707399224047950409193047595543014664558913411628815577778664218827233561650640072226070351561243170957125296714210652020929580100844127845741502328536945166987911507523836890077806610187594357361875592928389961078575704991959078041434686095031033302987815836432320555153192905048928648216683080723387137578762450133741386508978239891971200432233923146638642924325179593554531949306547287037107982606272737555068384965211153890830557540138165550885028180893610430039737015861401048950888891143742671466097894358391886061654991102461059880466510095626311180140186916501835591709243002668766012164102765999378050340738679716213720361042000742234408088534361118991340810850845791527550958550757534643376583607134717688793227403067929398351884670671806006999733921636461659901178710158666624849461607669050708895289756849713652696139516501622943173686207254588567737487039924395227609442902476482236917029685799486087938092967551353788358511930970968016092555671432510308061331421381710344493224032146661369841760144908320982286540231106872572437309975830361898853221660924430721351475776648358002460993770925461922518957901101929073205992941371533213282847692209184786438206565194261530996410616618562843251336909341652955306120151046710593608666087323207550909414908252674081812868138433736294364680625836822858423254291021835470869875802556132830779684429689235196063699300855279459596895822963089381332543582951613747088820384019422301235925292314508702231924862657632928342096223766645768053768858485108615193504842934571295539164500549376524609474725318662571906591695843840050974374358965834938926832789315457147700472543816048997945316268244522908156584234001755525823475864784173053785303195569096036375727760996904193080188814152165812712949550739146817111341537857991308450773789584759059124473975330213882685682995703177392362425459435852579259863487150299781285156435465880200199169324166202621883518436061134164480084705290386071684538050666702830099835964040217940395194623128177417921875728616233065787407698722981157104760252186291574594424413756735254706500994233421264251289888589799175181622135765789034440716958903186881586941051750790409843609939476684106595882875399546144552432367147003714433782086751844599436244947769961587744738415149504584208682174823078999290126607117126153127741656649248942933792573716242608740545634954165829206374586195139985156739335152917905167932646433049304170029119272646374057922821864166441422414920297338458930102163031455194212979475110980748144049872338485177459273461680895367561473399219281426267098372513855298973715774140169919525802757362573545380728827491570372174942262925591101652712510700803974550175067935435829764742599931266659630359416219402894437709506334043713062121969752275210035683985125187273408811421627547015615167984070873721161536448369921811685078678432252502098568606197814415195300108394137743273277002723889830278820439942461492438637085797783078492017032048779455850839446242235881509606349866081344627102112286778171361488979226488928945823604853537029688970964497755620030100684179274109012578538025113739058128563177277272495409422236999506526561578053240175016469150133878004461283039946567213471172019096480420039913228455985011609709607079630176828259254054324988827693105347589109065758762200106799603773822317891439359197740169901190410275671055653148376217100201826002908888910950271141464712620900320582993223173895266011027448257501920504236617416395130572867057296516923753705788321530108075072622860393764202542429405083544816079339684792075270098975137582257485679067256070721166386852849174431871288987009282206991021946775078420602212017350132982052042943961258873337278550955733482721095717843211890658963322983972729670583173167667187337884580655577371191484774453875509978682146020754751190136569788094220279702714844804428290361734114426580233116942831950474149585321831407880968828715482064742124037212669209770619274428721128990620046536389322505947522494452353776138062496490427759030364018324434093252684620143472466676041421804403866473319427635329842526504982413888600877300503001378211871774702113260861308871756454354340346778543043551153838673412417453664258585234320352266065080481152315147944837318304699043246573727479511682397287312482444725139023979093246987861082768473012868777684779783866139370131089686200955116298413370204460248577587875448009620619143064693672328607155332619818244115515408993099180443558586621558621278045260298628235033729494026255675689110551455471692359352078861418299375979598892781144437038337086437814993947238037375880927643609099796870921363028670436584125776649770411878785150228335685397618918581949850967990703162396773337239699560805029141309233391544689700848679819933033962282269805943866150577571145193294841644257972789374041968833216890538018763492483010478267205024964349870861992645025218024614440816593389692268814062646819830897781898816329508978144459930770000072333122678257297858369402297567994966293598140808178162421615536282627918790103256295591010999098986594377764749687556245448833254188416635330629904198406034044618497839224181391486388146279231051492924977382528557052280323292839554694425871775239922136590753125936552505825302393631290696458450914151191297429203129598842471833719612516867965277818596766467993425816227765561365189801139639192056804891515541442210208008943186910971895564633457408056570503172889324033832726511638767748912166101726844210650391532604200998055296899898708484906260302376753631881564578062998382559977058875413642026432364429121267093333204253115565801773543678024265321681563280519244248681241333238768548650677355551580397436509488155487042083213733961886193440901811529522676800902475251964870534259880518386816729097976577131997760950168972230757189520137985198052029526731711657948885050189402077252676476514791667831307636427021004457604063227198745984280866281454375595753422282370515053784018449261751048141459382436057167055412043973885896115925377115885570482005542350691013940179988405555006318741313583361978428824808764235600391703258539629968574970089203501453437208142605425519032145857125379687529735372047079818548941321412385639296319777506156635492664283964260905709530059335477345777471990218788785101385565729366423955742762610520243292813836755491644975489786678420968870047283718807092651506182646457297363066742160905268333519357973281442446800107698505598557318720004599852602949649210278135880508232028455272189570509498996268430385885966718621227652146298400636003356403705557904390870325802926933758066720754438053256167625132417666903311028509794262979162738166037109353888362485868594592703572106986793107879644946057293499629923466964995351924289769405409199354537980001671632397499415997509286654319688299658802616815210734383220435906756976074012766493744274073453443755167339827115029567083961942989107772721980988645555516929498062505720924646191215362259239616648044422438887526361340770497875280702225278559263885365228016585459626136267651178916359238992000534864013638427757169168134305661956196064943611230288912702164620532212764340560305399729396219145341718322297346885373793137671045612901619553152002033458183779796704532255298384962963964503220484114630511051487482946892759749988507934505016016631911417351442440657155436002446856630028822696622965585896031564164091071458258677823151423785629143102661048206925733367783643470071086091882311364545792354739267556428556524968661899393632395200926581941721548353375479775369629763404918146290215558678511219614475672675158120280634743445617201099903845263792836053335822329247267394852794012200929912270633420744478430249440889601310670952448795842063077885321301036977284502976933632449359602242481863383598847691386186605739683094224493049332920701055823711924806703524818508895789315963453383400213671354714904517955183648371357654075286155082739451399475883398785241628936763314398977139022782217818167121852350897258884942047551067625388127156993179842802972850545759932323424479130765359510748877815630714451524044694270100010472402359042366786781882681289501093226006145929169879590916126760438151883258560895391891614199361082114455053149553343794249754094836398100252687700628762173073771461893306850855849244143404744645285252924073792623794632083827453909420984795640886023738990683980962736873891815547539387742161764010574475958673781237971332864677472136750760719246832492943771395585999906372163535712683242334935480550207604348525439923473130061988968442940012703174400598195740542765817425054890312784429613772194683086866880383382184375381506235280507276448717557195816538128556329674760521388572954402630832185853152444733533605597084577683068440823072072304186889319975754267897079390567504074648363528943349402099079753107093190617316748053082945842850662272051541032634877757335528125962830663646461661742715462646340984545499084783969003224924425895380772875775234072577839669931092742038983323708698270614566733086344794303631411338830406407353491645969977728434236905363763167122965787114541204069818841934568669905739757267391364424587484643496777974345609752806251589952959976471473498006395687081113793699549206322671933104456683304660024967562515191200045422325283956315020904716882611045957319730500712298093047391771452844020277883729136635452254313432623096571300293039237646818530708468316195291652874441577798744402272871635782176706719676905079048651377884200170073104974672004874584068825276285236288862079330946448995229273728041533096213885411391528463052378269453404328927428485025261970886343547111227038317841904635648394725002886336787735006900907864448584932541250838829310356029525756279996149459421017133751113868948584922896557479979563295012934118573458066400581143867918338739302591810013023840013537159943894721750446241120205372923616801308027925665312116767780141375212894944938363845439305430242212449258273707560218552358789950059567680546597991956915413070720337991747864359161221729529684735949200603035412930105404759315863950231301762867079397080504606052565850408247367703978143859580736656446603478894086748507707263615685652352182081391502962653983285107435547347173340466279822883655339740151485124374380725391151201260789358499847703408059953845527785751038452939076712694296081890659572797057008021806710988494382006087430367051347784058136071905590238743046844307258637111424655160781647997228375507975430436464654029575856120688371922213438498890079444945375061899187182651252558299536660034386641993884026659542118403531721577334954661455827818548166716523906003568567375596921232862883955987024836224864958840824194877931320314532682336052607804597570075253008218792311509106598899759045221948854577802983442578062124026763767541422579236761040960793559980231900023397785977066287521684441411107444654041953214953694798243170065246852743990789302214491839101990603009063928498197228986324951996996488671338857115971720005400565721731404771322743913350433193195849571420369130314416460385862714891616567098491223116300718838061390501740966884087070380451661148267181899022458304467008668141971874576446896787261642837502150149481058195417001404368887253642686180263638221930921362130398932651413260341111054217135946297823470917693064885949796348604423772108626159737769221600446247981691948782131508117550035996647604729819470410762387386667411983589937887893942264637485084124329527212779806009111945142917640302371717666693508143100904765553646289935662117320602586988387573394645036745484444615480331510655561966322591375466762473426255689589264313986278383030245646043728260313050994193438925041184015508186494014854676235639176212248711668708444419178323491162577655091206252362912807209744790300251621033948323626782511544154721870859059424556717009238304415684080833899142872102252331378597820400743174366107974115166617354582458260753167383082348731232044317064247865202048445183770798759707206870301220809669044823035248501017474371658030345446504495513553704295180454234862655188317647396336205672662006245686625648554925239525167240198807481039635991467368510763977811776659104293991891118642852526045962426071457815829384236625317417038207287498142540296428784239162968208706628243439369570959349737469551993950716571993649766674621695020488411304597854566699885270475516777442378239237240771150088183224718256759881106167093314155218340793637353865894972422158538000021190611979622675856188028254551161981880485115192056310122991160135897192550148141274268279342891224873563222958601350650680649422049609651131067578876619245808753137957186106431581336760042541057790354014970910852853271530715384437194877210632746635317515161270592134654492535144564278556989550147777583454878971719319128491785425026009125288778153703288585572962751440827752696127467122155437798263197487783363792725205600191185605375748404567337919812130261438807257469351572720384643403394259341952160912877952450690189080835393523663709829816337450656860941682761848772461983005326201061738744200542590378385539181898781649518007409768379692885488502525114975489674056064330186377146502785990852456744344109292574774644312189176820467735487884047770350235505475416532255671434889570884667722745788816838349193261787729854758284789242517968311044524937693884069707946511390021802985470383492674886619766625267118648226928122536190471080809310945704406128984605397512379670593214142439836203219504058114046426652167032852339477048214100999637799867049044173062927801247295615211113997311344495086072607333330086777643544922039284737475603033709233931854361598623226017867618556629500157029574369167810564930186637652433472524272973677243054235325414171651890431061152322276519114788165687032477938690453449112374239139846881807149968521635947956997532939543865178042104146258399787726166799779034997509770710197808086802606776616312529163030171591359608593360976275273010160831509615015417265310080777275164322781370695547775166763240632766410487043153202595743370316984687038733330114218109131166290466117487614026158024767225690000477034103651776282249617444294014341820722906674078218243417315506567698111031572842565179631058548006074994844677107672163572318495692207338160850811819826685941199999020820474385143438970822061086513318229823104017513221102721389281186844512613344180475265950216623772064486549239126907340001528519527872966466872276746344085396859105123840734756345821196020119979355906638256476787747287432345191437129512517046773674740252645951645561676583846249195154529248794507698960321677985284769044044829006401788142909973652248081441624395422701045619815274969418543947471390943258809850846126075382718667376276894258091763371556971378307119353139494333176359217429543214594360238301889291097694584563952451770570572948567839471276774190394257314792743503024838038871673848940528120210109317018269379122354807983946764612049571133660944167967190796919086295555088173898741126109733994279652300760657542427962384177411554186244065468620415068700375631818264159993524369141967980691621024012920534510165217471505206215045652028721481370900705082336103697165482086438540476855220683175566743440134551912918748991578517948510824019394687854961026369865633586705274342158567755102034327495242587686346862199373759629066292558146721469313989704557085188282880228275885334460756809855935254230491075002912201331447524115709372436750217815601038651962732102000369596131711026862941262045506985977721637744300928599479771289467736604431863104932998100146154785447205319238157792249457708233509489210715564210153306553583763952488671956765552959815562006487260559896018703066654217851195102317991916268916233830771243735825202085379100077705450770206610042794521306564837458808074965772501624646148405194839189426480222863757005151821069883290350027441803395802990754260228190269543583837108389599594550750598664504891620175820727743813043866671725372032869102104978171596682327397691544738806477318561065958582329602512974642155920722121973713144741474718606175036252764226796117377857385944183099317672629133326166328683373058500924692504316595579249656452327419770715380735451167152747439553674103464548978039000003107377562836297146384349546128298937437408067985278416345224703952712208416318546012683811227923289302693299344318190245234496488884047605769572021236470227459324383623825966135814517840036139071363758763717061551876682513307213568736192101256884275815004804370222571811280127339211533839663950695723509552929603545366676368467568826494762783122177227181618536257316379016369842346319896363347326022533496762073239361632096226900937333520755246233597351755515564975902741189688284933878595944455596537719941487068882033734135623370379639052492869946194992846863228338014960838671877517775108025512598928655306234469316826291289002662264371491775121699697405424468675119223351633533934507739205796112646520082631655027081686358031998333338524978617677748376780844788552386839505169846680618460029335585562488912680295651159856370427390152884952787184991698268819153995992391267983530107712421851745695279890620754011478271107248131720009898988661422287652535377291881123641522389144851750110668220311536556343436486765784066411295067203427735606070174925976360899606854254022467194070073300838763416219637527877287742410018272476359991706060106222220144947740186272276607226992248985605535849995432625928436187683086261002893555656714649656182568088685974598448137658454747817910496753068524584420366077377218682328448942562394760242023812436395190320888051123838174668769560240515905644710926917820644106212560392078701544890887219801640527980055797780106896126057476589769332371777070407357798046517526938907442433578637925681170963233415248022668129902115199266408906920463742188079039178624966244478648039891560865274344246448596497134765508275240869683977221058628738295074960596867062989305831104753334993573959181829622740602402497081497233157722098150059761163130328387776304261011523598405943737980772293428767254825583119815912716319716362643860351025145440749568473864779393097364171062930131632087784855826279734918935457275451838786792297165937304426186802513567766145688651441907594414059463984882607693837159190426325373305589113444646773392852893205400797305259373091992620228845335412191909612261767793851490961457967859543701490471577430698298931163055924919596463981493247789974086899081704169151656149520906489889004490350012266631892723666333784663645756583497109530113875263695840558879414639331928827439282354805389666431411264171881561123685426168317408941917653215889980760901379868553571813590982829793126622699199408240538129995240321993546391912350880780277477172135717963511626422952706617619062645105805853225476817826116929806183838920495920495971599640544388451882303629965090144359921013620305192322903825843787009835347152411085701662396065136106090989914988218917667227461861248456468107175467285486514070289079442808820640049391864996609070720647766616311378642758175773690356355957950222526852343772277404283969982720155243877664869789853091059854388144936324034377649213932786570288769295510473645568766137193856522898086184397132126013359390833508727360710735728778443657803598853235619722008248372116264032697161741161219130262107291953621503318460681981875238797329196232580092620463235197327923360276421829420293729800416211301135135636888859517327074439597410675232197354602584656710238892786075225057613805130389121965880090685104887495351827125974751059692569475498896833601888948538682455092651516227526985264457197571971849203612629269409733460682528653509237590259043474628432511917610494339578359063369034498039199720988019929321189553322377656322965848269682172133601210241299617519983059954687571146505132425482345330394144209744728427749020139791517344790901959590978325327300478635222833121185118802857347715441809871035910141539596561226422620144140781224327134974336168339949107177758276209285136963001029436638896212521032003968809931946045258513969645831906066371066027404879756413980000290163309339605281381698063735520974794191173134383009013337031701104282532036396712708191787879024062103507464732483393157124758221771768781618495057278392148666065565376846311685681866664304158142625313640118880290647186123880808925969032882136681512689999917009301470374930507101421423433025204244191105328155575205844587152588661802968354170321854128030291105448729284813887272183827680722520308591751078353538397990000660090763254821630029526144141976652648571687994169559802008734303302988038331316953409411226326614064632655349530203354293532357954280044711165264657623392633440370434880170420639952173115556626240858728544940104645506950929514134860806141490214176151186815854350522816886055563170743648216883630276279945473439956093660366367248862959890651874755495547605725096013764495261330864948910694723108887110478940749630253265113155545552493358382477545135843852467919124514088049310673569914961260058147452661007692556136085189817046095983574965592375581444491611502347808376144545116982161040656007514335769585835616484188643136761723876828807631260769894543310126817251221187970676302894504145216541327979076930446611318812489371640024022936524134616991076114795879903074003970566135621172477077663388487843579924951559083180921708986124361173428943542723888119745472137545158284490003679347227984560652283601257503923254371698225306001666212124550380059958113756458529750358141860446440496370315158622789037853999693870104578841842506110660911589945139472179287233893665175340877918915086025450390600189368001738921381778238215972685180977847031472955680358043537423902385357864724917611293947886388999982418600671269953764326898279307292752618447823368880152935556522014127382006800344464074857126794086216794212879620689468303498172274097753646717891622682262133935214673884676524986460095021244904487964136061929310741780863376808375165320499304044997083850943254851478560362350033642981162947733593723114553714485548259994825903266257689101162111247907914452241611929503482498174966250385860650349079723365787662889950929934177408375038433515942665255933210200944874295928638797539649959735764705215819233860900215953076308082897646794122210469451654765691887960691392652810132731239110542247601551719032504581616884444657733813078349403435904100208052670670690643986946967452259543501991518480706374685910754002202516004539887709812096327247177992594267966555141532707163989059960482336160188228720242619420051352842736457996720262148174570456078860298916536604341279543084357413073593592440349277844366572488347589889910787615377457469027483843680340553590609227681366639468619832323558974002953833088963903070569589916005404850551264522013400323568297074080413713565098286498532733610306766385004497016773608257321831748910677992496566038704476657153694466010871834038936434034490620334010712685406191320826642475436555495266517593492710626859699407375705970464129591514678672548615885408368257060334732116244110671517554199449462923971735919213497033939342725669384113184442979028400096510844188394432420128366382134867498260589858567175205813952795774048836755561805492307966847597260734382844777812523213267228514790158101747476741147572529747691970201939091130685490531550868041225257992052829986771513830456716183625423895898917604216752071382825780628163606638536944001956695000629860804375058482853230293045874686456994390496812586670353384178726666093351518160348932682412921049771928370477320746555944532222634890251285561022132397969693545159881201318901024022530962448871493649178542795787230606805304791887145733909493175325262485577284048599963195340421316493888714102909354367603225788959515039434459264185830325135296931150929464091282686113712005592059401435799573367504209889662057706692444148695192801826167991776686485989321065808365009684046723583105744283881466877318026294670682838279812538010834612772525178395497600744564976268617077075823315192092424555586814709291174068686824488318811154127711316336003181220289206407819761278309934537548088361070353787281055245928754221324931418124112555890692733863830145823166913854563931931668467015720888759297183362369648963607088015387261091600711297214970308765458140543083288155571418769076730166314801353968004503372984055061940095263249135542225115170687337516224139293126396842697335689116425465598707521485777053486449397488553591777824294393945562697537053390015149282875759482324635609913729217652056287233730196992354081282324220117671818734699226694599480981755352801618353244063341520124630123891273559531708070481762987322588000467929102341242951139691744028785644526554932186031156205777591868824258018346277919430669245695641427241830536045949442419322764367752106817162988976170628834277669386615667217996214381298004591668700936638986288065968040083023557166830583238876032465495099682861690737670260108382104210395533114717575552666623333171120708798500001427313049299022131255981311638145663477348221949516018685288397454319753527929268301804359624760779935643284410623554330396774522808233716584264246648669810678429156466018419855084814592248077632110210659490783043555317518167022776051977635169927407120661235018971197467879872033672112480717151530960730092266728618800137170557141235149202004756129942506648301193364919979382864288067864290153874782351721901054017031565775819210029717346479815265661814832255350669824194075510145544946500963599110886690457671359608664084764678059303407225914382428720643613182725555786400208505943131862397385820232093605068182410543167049284048482901575068765492759624176813918277841694480735741795805883677228312086519840103624938845049489780914967094521871299229595054228574279405380331011880467653554725476629461843823984099833373846156022985442374043577861864354849005067492789239569200673764945705256208443580407739775632753899792764468110453028000404397190264752788463073927034406479961326850056264665350085939495440700409134577552059683523551797241130335998101505717896096677674788794541788722776372170902357291506420552684481410119452526697284804646910750987889295512368643106281179750458226649494494529871792710225975959526526804656592890416216568850789661128927122121574346337014306172121123923043824095757809698718721645747337700845032073500185909105989048768134139953130660442418769739337854650372161646167544048705672297618354419579167341365162533220050360281559676513840505072139646767029514502886963974717024675165211764827892547760360326668078406417051850549304065198397789954061758686466700794442872385940865705244732719721093465140894138959649880710051620166254924805237614838417123238062261925211634972735873084776186429869353839548528234276275180685423595352247017372736465969675942504562591447776688891027494262081468475518014384505898627083469991263175881292000616764975371012864929962415924780136087293929965482984433000959796924643636505616747100406702475134327928653530011694271305880836106192393479985016687214430886820234752615359621477088498123984904625794220193853365865473141720617007984783541066232825998176721135681978392682015429598470436422016544259845474840372609725604174524719394586983974072654838110590646626355013137611455956693542407951268830517745145019214102101912112094242641935211869493709959831380804447765116452208794709805242720186223469040978191483361290949425086966658980208457140225016099184467048079241723161621326923715829573195046630775674298375863397783880487628467662393664303262504756745492816901786166804820092914212227994416587055595891987723954649975594767747985781659903284391751575525108281089343080807162904425489311139467092517085427156731711835555362167473081079357749016606526624164415519426984159280518000967218632215698523402146612356312074429325214566321297286921888938136905838380699875060659494975616999639106799928503142173254613277194426924330464591492890325402029391590662324752254785036667301662387806215417749855028502885764070211457288867197324097669116542072030663771044683099426477264356513025255424289700046834997771915159722707131299129617716623577145276366964950926244668903498925229259821253345433860247652947300664085404384401801543016453730243107969613408279730782044423861665007074986063013726425386950271030866971859253097096973137247696937478839133652908045752823895124309882669849691147800197369304217652936795292268812341148496486901402763177400337516608860177126603014645830191638500280068942533539972700925463213714737380234721850739678892455155678030390569851628018493008801493609984083562030995840937368561698015896024802936508064905432155535428426422818842300312007783134197220312802642924187305736206742975722294750612366307467287034620510982114852580203502142723608617652558598183032293808733156566898124174664929529259038718375929402845034158025731271394844908750508373315191558025936737940147491095578801900677969729732082455038256588734373556616265470568572707154206188844123756021312878975227912661266849696579618443250045648720008268953005813607139275720039081442080486875280941915938229260217135519572826414686748844598448457079181519535444775356468612754139109679370152095096315212535157663271457475733988754270381897416665926397391485223332741570003372272368413431334271507645013042831879824081253571724388180163227416071399565998854014091765120090003595547525376700158571157505223315026667771275704773318279707243041216722833023385419099587914224227072716187633701514240218366264258320527484413450500257197271389712183270046423569629911364562805881249290738663440774704170570194871733356054446852074399770431056906408805899584437211215673232146783716389329375658729019305948243425936629294711904608554069911353037543161115477588264834094554784177189055658222182884712526758406930254009192948087512334045507544784431137225836581671218898753948285288016092214612471294572780434236468067055025200963636868854993877130887305698692158965363829089672872589524009576828770665774763893296501790076162356199322172136046593971028712518147899820823209929607497140132823872001984009090312448428193574501664276051878359769266558273103876538700004615602514770213511170049849586095392366482005867180506613533495864776174611814670706902952277967049611682558452221454173698445332504889426516029699873864182162350657687270077994906673058681223109152652319721114457399722104430605146164105888895172596320651446732903513075555432542291550972769445709945006950055701574233109026521497102996045062378023760044635575045263395692932590499847918008500089529418216403483602727717389164186610501237693542540567790143543095486691747550370053304994369640370022915777698724049160617009403083652954724179164654189008905397107856714065328493376075194284070779976314593654067204161676005018025328336664259278039021581454205183274515506965283158740494248766553619823094263000679896227794330833020954364398373535000690567239919466190830323674561141777124878639515383699250387448919788235181253615595259639281286135592603228231846257322449954490431433257787021467708604722030003837420707714581314475070712642960781888521698668581938619109089232225245280360098989716786208299341229058479731293453089658634434703128505919212457717036033577584603837262486725196002913424298024953707187596327392750742465805596255316604838155278983126640155732605945362344771613211820920469814708457769026957540325943444808922383193447411803711422338118104524329676953981979782463236668931258430372963588878615572672460896113121756422617770529023739298250897804226664100898327442090507059362133075689139348471323791221339925679275223976317048941256935309314326621877198106400253309476734028403741376724982923188090135147270674450761671767378032654363497953087570435638938174235592775764882332617917781999519600732084397200194048879572113471358889884686875657756160987908767037379411526443885325470816168539979347393731889246800291279500375631549945532394810300175831219696747190810894016659582954777903504144386031802869637396756432166814370388749413063231216632456183641320346222462663734794185563438276509375339476883390565207693773461143123006689232470973460440067642494100104926686982152696650395633618233167055256306181059321770285494381000236357894810453979749834783299926281612634860679155858860275402960773398080206920298377427764629766267586461388738860830627521826658755195514604869349450119143755708440788775928786379967340700378337189405658278491614284034018064395794424328632118954825048354452594320786633780869977590126356359367402414707919471916212346435036795817778101260120782527709731178578113869998826447897571133950326848950083165310590101247265994096603792784674650147298946170304178229618621154813779018332534538883645817232129807298728120029301643507913378331245474589438266935370918069888337144078926590592740976464576094392321117562721530669954708996698735765854618537339060649150733505767297066007195546320684275394658145931974207374128497987186120161955182411569797529847004770783926430535826517811988874394018491755969698897306402416014521870634744336840632154778479956726678527122536481736439357959730365931364081697261902303376050971597826478018261022727174732982373116790263129635422238609229793589460393782627268661391165320051631896374209116210824469127774334781751870132248363070083825168466518644920390436910694297658580317670228583635423334678654629220444090585186499400439082667176849356243463397379417484078366619008630480706290816013171125807984955732305419907830646956034002603552142529929305699186257138748989552191573810678725690718236714323192020823678991113500292396538422721197507543352746332006185911478060099642006754709471001830654150460581648074731904282733291860046407522875273420154537708835528919713970747931332860406293499514783877641488906935980471000248136694404103280117984334569170473101268748703311857598233290378095366783450387895089357455512439221896456306987717942011818050075760412168316451232351369468181405276224499580756841429187891926297033564358475236992594334887497954993040627865732362664761635859673366940562919789250283995109789341176826024696925659880127146700223315611627951140731927941442177844048388316723576164787262022545836986308457149689011862200378240985659334145432374622782055779202743443617949773467780355662025039101729015159992091226462378570280458384914945693016382305530259178155568846368559969744616666213950362566461833929697567786270141340990677911819713369682637447109433055025220644345416801112141899488486196494423924275602312733717094955608505622622126197390412102038401091800861722690145283181480119131312144323251256226405505052542313050453737430849590295448069235709895936435331140180490506010831644829141592703744487352179534653621900315024718028914968915434290276827628314682184961051127734646989769590089435486592489129530667880823430596299225112576994877393091712314394784432051707180587821288244741367662135405251891312768378299504906567992365267484676478465563571725327138093892435723206869922133920546498421982384193447540624082062059285631406683595889846330731551165064628611112565546641803170072131861912220633393650267161506244721204373253960581186285899658407439682105061229578510235242383811189354394670753680445332371925226050090734915497277891821458011585961817697452742442304727872987482789264229010019067270094799752526007301666416600447772371972720477224798927815185219945369289782712445993416113324362031879287375968774862339538290348724526488970075686008840108108680480821216093965155874380903964264617600723274867208502721386773604385191597752167794391348833168544563992057035383520812225247781436272347721827655189760526376575833522710179121806242293162033154929114659438664675765311553173449254140073321426566556753687359475751234213448299495198668199997200537020626286223987341058703929048781241887524807142254039723831757954234982475192176805812845968945538553784891092317790185587357039953683299443225930474191377528654297876514441696867153439883896506808305767804118026533347801673867035566779497022765625038632230814410514208687920040848194824136584027957909901420022702549189738791068159447658943003844595880111533406016664928412477725808779301475826359515368132564430737436092306519863336787308483965669862953379794915685709368865369558233152423304487136105988380251145081890842781981370483763418594791164213419121993761649994268661650817665565313901081844645395460285538139389015280880145790144336812798801308863983472623459537228526474976800367037677635818363516653970792834258393962897437677063102560624879876809169715732418796005907736767996324094252120438228496327797638688901751018613883139498829220115213843330917161361715254413796931503249793788662051447057170812425308415359665735788533653419051870765474441027313363611093718253033654383085541725697191396455091255873658393199945241127414897062352261981042335719676857659507597964020005098979334239758556246115166757494080269474425703514100265758065377881344509952432003195072550646851419705299033695390665514052329725287314783269824683520272619490643091930529789454132666845535569894800661684201640695979257223338454437922184252088358061335757012006011386248597516549334174823612422933564719970186135890021756346048526902304307931597533146147003587734867668366454420319787238988633237068970994537458565318457646324109721538497379105364055212864541730130355985026123334258625115705193894491294394216991250951756081465164026284527094719751480434566581723455344805292085887116128105480481151998053638031016612518661200316169958872967369036306719947474756721464608981456164433380354250537744494979586518273175755200329674347471188903369142172996566508698893032481984158638215707767044651995332990390984813482522875890337652972416797847154102838559479925396316996417011672431671783049463763092641928853712100508069493351406813023579337157191645797203361180946364011096553022782663787409863874471259245680672694967368601288469199826351624801657668823657500245062127212427600305970373308717333511903430095958489202011321104464064648436769188480170425050100145459104285313143712020722942245778338261032004546333613134013758107634042926304358085573105317856251720824565062436580667104161100338246753268405422010095453343122256295486523679249146431375243122532141939906251300007312269381497360379432150703054731430578274891685748980410124177989109747457911966224633732442674534153499922920222148915359468017769975339574577322290792396357744299731588939262559929956285241920197216352701747430660931064286548304379677666211483542129762641579241075102174446574468898152181076900406574523034691572699396499706780218920723821498556999243499196116139816678544563642120729898510284528226428635643555377992404657241701607183985150042064177153049049789235044500516032749404600419622852659082959516793042339927885634994233980795129813060608859880249648127859837813010944010216178121486449271269059553801130828248807866826172829683712304553144567883347090263791265600439382717602160852099815111734215954238325107715091891882846024369960868400098046214310166347501743720680659248429142556891671288945792205666847105826113483550257141710591139049749645262428081976534779906322822556643466920494477019484402941874590080849716942430253216594212756664403144480030891535613271554576271794439739171884775661573114178511715588419673165061081968810061823617635294847361226617278714878489061077478925371366318080757711508216977722370033592345502034682059353541468016842145622455404033146986521637234027955210301688461568571602431720845116972961788312708796154288769907730413150583373208000089569489046325052569139593142644663468705866698070085300469919226459445137450354444285555049293556068504474383955305211753005177065464126856580357611685986308191658978027801251472212152996818199982781095479950435428018072836543626123743529952142192073865674057563767165109348662984508251120546618770742653965825878123475443045954845401130544259204267215775836308666346525838619414859229709573176668369991778839893778176885814684208613720003057955297565778681139529537658266458250681899078276614017619329082203439721453721912870151769274573152351110137799255593663228711845464459357104672397775634937149055559224314200700230752071590422405786504580401831815168253020172672450549397703462135897200612482010686661693786244456309969731240271479192512944888658713247825041976250736621421948529036583765288764655883821407578583699520869403026033982432797231446864565987559843087025592823755619516806085303981673167178333282876904132578858175398493344173278803766490904312808191916963024507239445297633894534583862814763605571301230542086574315997908280091726477780813872770324920343777449656171985537686151207735907177030893527888534773537229230689735898521356643796224636086854408462694416440856865824965241642333062561575284480643599341760742558875044841711979196021683828862175394718181429183239502808478553582194064375692442882171540105046045199360367840177202875940430915591120636560580265306269780581215107017564129445998938213045835751821360211989056704572206935878684270274932630087580864985005879376956332489243326948630191524607206989074390749715068330037898426778718673013651593773586401385109821129498410468432805629098609196228096159159024394252754861988306735660573406861214696519178930900549107433732874192338658147502783939051436377409688462365590302117667107891606572738278878544172791358063046504669646258252993494811104566815106101145624055057347561766682604552961719449911491240127863714408942994894074878639899562933429709466533952145488586208102255277174867070321561321822554249148325146153840048296596125089198950553247739935535782935361512333554470754149509197318945857665627867183638837426091287236917920261258301037965007771072012280634858589558859417655116075784275100441159120575729845832447733984656736415296091607923740756740190180979632602821041599013323185966864394218350768388028117080487141327315704289625304389744344591576853364581883922557956854967309973070453981186067955781106324288376594292718749088897879605092231977730655207201759368354068307669177530925622401344709429029621427590943088402766581931558722995230054394290028461470683183254634910457605784602789652001313151141351845017597550930616898213053343116065823176085597028588981116225474456591539085546219040590182545305986443396085760112250315113002354586039539891708812038268723164071592314545401985460756018052689029875044076720853712334843735494982847990839096583167461581060790276894854239330997970723645580375046828008380484117111682638830407510698218019956643724254827014184516366910318010399458558155417482826470929691799386040406333716022472324335644939666906426296222589371387195597497454255054643700309013087652749297100591447028554507721295495498226432492306764030151316602125870973910347081057502535857096785236258375875512517526855646540332193817931185456645857842659950050091703900892976089380249811279028056291795515618682950357723314140540303505294059202301676367853267223214573347830243015314363399709395092869568084246585866076630160417434167401474464654394812555629804842401967598694888177729115046358408874443857241901678020320842181810269113251828289658040493860258986601745471055119192290431688675016386514882610485523861224098743470623943727734871642526740681513492748558020792985206584607935127853940788225536224194482635392717420462710702007294060748657014598574622098476789709644106625266048056686419927517786390717135752686257320326798477298511657826843794714960764397987482825163632280712796057673796818891352631996408461661744797151806332523039116319056655627415236534963937495654936288272473518108167110314580615304344383874963948235931795691746600003659464349077922764798908507621713851183967015103219965782803830662143775409004471764140653800757773355082903316640227429316498945239454611196897520783156105407434186724725747889695788720280167942180704712382479332933833763690622491094763356088164740296764569785564242599498882644300784825939359340594047472724720026914583845661882445881910339950602079538522266606257803091590352218995293474054718975483884598584093981668669521553206670969530782762524088170205289489320205822202839844441905789990556442394028456994393778746491828165931047231448154106914553800189074943417411286731749655094063111927714627750147106804539436832885033094540554984388515293080841015243105955896345573583400675251691923991939115397267059884694414597415803835035089446492481733455670893910872341955337990082084627443209129096269958191678048508330593113900241526762209224127971943543238785251132274777105150325548028840301662027926868616542323473589760356812489071372462503697593451570876003996598077718175035270241928067968012374160540946309078506801397690489392208980361037319728937130100930729241424036187292448833065166585183085979156421851752312324046867346579941038209656528963980720374767340585780777231234575301637273175955019297292953724455313293934207946149679939017946083972519051503785581198772238926132487637278034949831396047741246020432723716789528538434787166226653414166452922769704047182853665431067096613025368508431382099560412631646270892495950775082749098284918469453505145306826294445418478168621929051497851308288134873118625280510158108728807373189491057815499280181694366464996206765986764131605506574061160823939085817719599717765621120543009770342418827237256114177651843068398238724378950512934722554583777696011096665713533650752003003522775293985522703899918886449829114593207897563574508286071891491851481471073326026376623087395492255191381940208247649603676210363255303275834171520959410115334642317029645580370410302828001097681479075227599927428947388074370185646804953305988974391928486952889191728918326038182123391129904120656267752137067852582092464423778687175769397782038553562103297591669175156292223224360380358841359767094768082123492453463833441457555284344427342559495619527837374414856713473893471422198033644139105939730299779924185511063229954204741218917089359557481748278851361984151632535144282168649515877112517379711249308961607526690758360420997345652811996968404378695332635985924032245902632424101930088523604044016261503413297398746589189551184551708276123242546873829057562112459709342720084623677644500382898311556810102084826529195630150578558044101654414021789839024441184437643841039283734471190935092234442709455131968399529944175321383061570646135797034450539316250542369522334522187933249935099812079909491129943773957814784739887186623752346419163126282525049442031229827589721826550524587516906930705561081175410813358840521528935622540087800828172335632664080199282546722810105860222631957149811840541895129715655757241643026929412424046478338928772894020479366345667763122880968163945578019394553242658053937696914988317991373880312743987640103248660916585310455974118074802311338650674212293299612530438860498995663316230358853301095457927493559451596298145273859429314561829717207876517642450336959015081126554988967406002285243115874837377829550138735302319700036180705024615930505446801832513110108233361132975904814684037083924270705585646900239992385499036156896322554966841209968517988345575879284488609275939024153601327837231950989804797113061298158504479022432070335385193064622717657283481406120997350167357491441781283006545814166579735895269626939894110059734318817091166063192705634834913931461384576447244373549750790630376514307511710563930718943856126835094974451376767171402511211492212273571882907319038501244852128585700401121128937985685881191463769350679743135888636887462505937925235883358579398917692201604546808699875019706173249316645077305049469940179324955106135782962907737991391799294268451569909456061487234256480851342448521678917547579268907088046124923247565502962695464877630946318824212669547400457177232177276522024832543577566347207155112052970705401891834544373472445115434804715343965765239116857243117949218496145639396581755870046876002538309971036025448594825379317179737717534286956564428890233323520174839997989243377486433846649325732511277963031867727167897569429800801579279234727390938109234875333379560628217295211789645035067234373380511252944710939488286224009594027859935643644376213701045144404131008264501934169129872178686160073580304759753144388092993135067183413024316722505882045807466781259364890203588553189245210330307082382304571337595687547878013350738580156381324823024701593127335740068303436660246296920785174582510403663046167361540933123592009420955221834159853182570634943892781162194070207771737736970520289953896067939551069268838998648605627460648121309411675253176666795853063353651502952419628563939601755070915306558669485567171321484251449125285738797254184823933902890478933605066669566386885820159373563726275434610719478631900491337182784838534319383779774826652064688285789688911740317826456927635442348711739381413769446022731493436596197308894047033145997790694639377111030626157794208358628544776465723423461568108369251768323588915445829829318696704918158794553978356510780992114581232363136252941421230403808773879202972012594991005318032904934235198363106865945243417799704414894243487011632843222021829952160503521469366912528301271255394185737635059235203847610704636196297864539313564021045559392345902737428895146264463819978052532343793053830581615374609220107900806634629268365320248116390530578715045098697443402332443273755564572061653590197023635927444856717965815684601123693498126771108042188014793796660577742911731970519899940064323812499487374638112198435995004877171746277959204041998903745584999127299324958373714045019510372839319353611139035705425164623215095058690055911205450234049814712803902096749148989655891864188774306036389099687517642882481898522652807918768617615050402177552913666089699578893191295227488022915918435112510674141568210478040318798818664703248807612549324554037199021833890042051802097612027833914765702909571834605414965803134565608893250559298771871286374504709461786279372049082105192074441334100440496861372469766437553326302616667546664447934942030431327571010825337432458908320030723941336282460193437298644641689834962013746201011191727456681044616134829326451374342011156587272729418273627241133981422318130039219119523510609946591391108219934079357296212770181431922705065887518338994039439926434117018733674248258582944597955670865770539443480968268082706441199981669685912321716696371170384527854159584702520796082946128704141732757740956493954815696033340268197582028757434836973571197875199870528084176511741595634808525548508240332666622591091603105452376460168668617936682042104626054831665916966803000374199550332969464127669557749723186972541969731803676215099731639784079826980246978049904147926624132942124491433196912730087875463783430968081351980097959598327129743143248577706174530820853656796451225035191729663059702079330641476391472384401791454716932242186594606163234357782454692994785482923450792489784486648391614329868758909900391744921515693237302967136160471803305206248484640788364921681166024687993292941200672209310369553263517792511191830930548226089578641151704697427376799697913860113545658200377131644634058496561212753285236855005928167307490571728050236082875768875854404220005127386244980139578620464194622191565390520233373193046951473192050416021621447593891172977576470360316597186622990644978978155547406207761165892221671759695578013547662497210382652096663284698342142474671817995274036248763150145228147770364909698451555658529448201401616842376728944049226529794454317991465186480536703793353328963130059585435259919747017976162660545339195809824573156044080107224466355834835661117308934399430678387401310996954242168491343632573285596512651225815566804304859436536920911286794525922972384841951169138249734694777675472066419855386931536392939570331331796588570442035548504607285578775876978944259545004888752919560647185537744128922101217601882128426660662987781800451666702896912804699177076548195100552640162599394602090353897766705549812182508666392567380573064074235063695711801692737800383435788667302457678283925585643128152751262954411091106592635913993941227221230305741565100554283294281023199040461176755821058368480142776505985652286473324270639141403095041265277168514081556022940096489007038428159078441114996195526491749238297982407511098254800185837573100063201869501565451842477940451514652996859548539030813977308617541762104960321063368323875116139405774324603957771632477647180865954562668584180434450079574922393166677112345616533602987125908660837110849180896225359248807332315099261808294677455716295454602218564983395329271561719188916161107098914011393374105354735307573662935767087433962245216024229446844214748679531035740770052083890175090946218970392751834325402254318101485540110253662046259652425092888126423265671818779526235513354972390424213045619197099274264559959005755052612290202560353458027711780437348409219489715175821279041099914755078057065772196381192637427596398306257220272176721212389723916286284954285829383083681026137637360184333569076661414093564150420297605156125405566897454215104756474826457356976919851547971365401150424989588969093148794885083492020501094745249801689188583972807239553143356231686845294868398660866154877059297199503042932164458898048977331558218784429512515899701550591724376466989589502862944470905132319850171992234866901398633183277376812308908414227253374597204224945045337987670834900113286884975799470390475183051679002350117608013946353901541993949431682009973162639020211559514537243635593209395878377029783425632929190855286819739790424752763416027707362191806363988814892454398950280088347571086223540579620099936504861775403074474095847013608029879781259957754242699869271843297546056300786026619624540126127153233167313856175120387427111080998568135655722778312139943109008501021932774026909428885615234835870096043255240273458451868927662560410017614018659720703170081061047896074326688358889217490649318912433592808653743541328591650598606210312953333206471035370146999403595299766283879808445762848765451281358609662030926880616503186914702943191505331610819878008965909807549461950722472237158603117533339632697823424608037465839820262010080762789825416765711133850292807706842554641052248204646680316473918037950153876061168026116083477475449031817800166588219073790676259319924015221392843026105758708564204287233368603458586767787620841482858772833172362260349367671046997349048195176658402067540913122514598865151133120405071563166838082774223922173775171955997336786358054092316365435532616486163660365046034736222478066649004328644275072044968838907291274197013298242293863721442473421409653205575783110129739145493890596314146706248845053804374583464491807464894014360963174885283118467214920776952054717769808357625791749494723879490585749718958657593024967838414466175498931780967774633560438270012716162711834758548474495743482552717653593194841832299621275650431145508804617250015616212356137910618839939651053123099430036956628228847194275647843166041827128446312148523867946576844449285949253357331500106498626340724778356298334029252759803224225564833041876418518573788211103552537850533199215391780392044096047337469295376495916241385443938079448085799796726159225309164678013052111432084672312809551433745483273837466145284346379052826803445179985566100719312701995827234848401280285294629587954922725182094949487318221840339724506915418974911591641982786928913111185192688146870351837913580478607195032886381475150501219728501185198208622674416257311913703490786572254120005306865318038632868491580641443783200318370056008924822975302148619888376581603300235545245112047534518650608173219529610816999507316592612809509875471358479017439454919053410270846585848272998644244942163181504451984351158469926647523873442844172035586954600378896014368931585090293194994996474954473737790748956820451879082250773604720401054447546091958340587240245888779770168508223411580771182704196222033174810340898914276724410377867397907931418418873421832975054165466108053594012896573912501167755288967303104462777715386211044165161695966997830362901782922412305832959711025578065430799349879034705533627116622983915086612361037360266014364231405158191074755124379819586827121218081898337123243427742328719559582960980558593658511709234947159198320312665684160512378472856138588937007788962962041556011309745788826197024984459244117070074371658624456539400886999574147332113361911877629029168018944777511719886105995801626912313938460031795023632093477851054139323781096779164748934504074356237331177596641091301402646970849207798881061716017106105538610078238284014377630601539242532255235933487064169548835999628359303306871082401296612263112074517922894352864790016253851412294263222036519601830776599249518608694230865319146184907005694961488535833300884014792850930069789544566600632337340176239645356960321561878540110120652783899560863539214223913801261059511109835537211674201137361417872435930799424754356573781408787831889232304321198410718033517811692203143088292006909564586341588505464292493704384787785328943964733744692155841919569365246822566089097632029090232155666443455016796881273190939082072702246229605106137514945615283309577216902923737277960514582303479106442879720193383069765358637699795480293698721029881694378336038737606618897897530042370825281425773039064420722880045905067157414905705683097722155746138780427166000369701706419050300408503744885163961158378452739801494440149298255996732077859072508426585133532970987408789472071533345671846619862691712321679193925735070593764857920501570325828059845715910776105899378663637897949656222989460651332547006388584969672993504966623297353817707760294658218810268112704414446347883455455237568024237464757737587190699627580392532345498589522727406769064154743120486603093003790674841014948879607483479813159408297016116039366777082745750111330806142689259158799361175996054791474844606198868891958820903280747273756594065107363662227625465865996707347587312753683614229383495932344354151968397872553997426595330598428781449389772995532739470401332901201702966976804519215838397683430054423013690515014640754410900454881570165651559678419983677427499928634234814785755741529745532124315840274862321041625603902745696380801181397698195013185172436155524582685067107535296170621626712048217719265597491837017060464630064355756636615935014906492523046844105863764516602336951539502712179714660602372754813847806967663706704358125111734160630520642214121323839809542852543288329047065824064177496892167872924442858850867967829841259982504179207736230868512863856415706518239295208561392908519277809298963936844705198496725309344258930865756447543040033502174726376942985249942359083732256319538787778935738142842475422008491579492888780332979984753320377715219429214808985216377840271969093313751782513216533600242679293086217175448168150561335733322891362740234141861283021006990646319130151293147043811662000061892590492162729573144057653851075274076512558873913111030919195169298262028202741066331586284916601717075104845472457523619868641801778312546008616306162946157602340251206233937209670642318254489585343779292611949195995291570334038941571627346336658503548019598817541252965137774014120536218373353454245457425804590957545538952159620162207331537001158970889052061181210161047407175608807170993512852622144179347938293021689784963745368335384838745024721638823504016952071165406629769705292745495513103761094937017085426023503668081689976524454393611484376820726591480722041397348980833829915702082902168968921513104016174112754275209302353626786809181975472416857605311968440778071447604667220072629615671877951909693819275156499453401586355631413785116022659150745633048897431552945138716457697818371625416540108555260735511895919256172253876444326460438145212371884663694822064712305787145620171912277078431737385993170299753190127908800935864245183473808881664476138608579043874227979656928406797615942886303179357582556147714538169820367828131871522312450939453722416858990822749491145330983295839094894860102126323759038605044485212706244786896550295469116219850845102297341186864445584704590677005014491371143971295014397177789481378739785375450222206226445723794225544299221475940717180020149150050154537452847047306579429110874462126395999809742876659089507075534208104803231422279419164722393339699080025047787625551173017179936436615198523754009069669068656041878071543521730576951025733733615397583699362293213506380682825821862476097333944966656886502556736022738400388782562255082713633396581553142893398628320683876901910988126267417933335255663381612434770325366058895479036119319281329653355025786967566545553180251221227826366543831336822409239973635979510706943484044167765023417442375583886682256695908201796242628796784254108614259591183350470298167520447302013766577869302820706935238072160698979798108365976585029276013854818713313265484379701356950357894073761460965528415375762595692794611049935331863845805654703681939520651833811309101521462978389027333776702789876429921792494770892780999207230124277490537358480350733650132665435680070807984321911192155344796956801421484015393918562017335437465453484821299531925085473602716364980463340096358970598911956469046168959757807924365891819735918935480256368537920608123761429812127013973034102564003861984103277419052139596542653450263944525604993879088497592415273078027206732697122947394485328737370521240496067685043441415051906050630828705594085874981093004027305064508311347167396045905651905016131740237900286535930524578597167345371095441712693489185166597569196303366793808772338319282007958093001179900402897064019608296906015128641341750697981731713204003680390345959686540446753631556852580539921045773988686645472099362513339406728608121692933132119341920177964104496915705539511298633984094345851600820733216538470541310347582417629135556144359921780744771279019933873680831436980158033278499304296424305478133186453348898057405533668792915516816792174553290994844074710023525708839617106103076226269433231051603218079386872458310076398576380585535187350189345580456585980073094187167762744181174505725753258043026955968436643770170973062613306433276758718646656933147118775895846658138759816062120794261355552264590045298312773722708023066376376430062211236122797492103577721736937217094893201671949263069650554073345290836806986941310802919670818254146231803013543698274272882114637631990431220931918345411941526168832126645166117445637114325303344501607842764596891850026389535885709101637009311104271788409649960888632658203656969380007886322615314672911352915653168659737593245968385055697402358200412113199452467678781560228991497956645207844852144973474965640215481436304661266979385256251413950494139847311661306243601821289577277680165064761481300391711884752573915756937294340557310107489276737700975985652753295114394902159686754687011341805536576232976168373341130194371783245995755244220895149949468360076124472305282646267142269610730435246128444326600909147556419316314641778470639971730731185876956674509283917828379653184320115241448607478410266418142354699401810163464903515907043335884961801285650126615041440704101290215946783609468630435806752826296551555196287092417985887363064147542274550307137366387104812913111145241014674545085504323278120013163250891094718347983165011335427689460936857166006972634913872267465743986096290413160819637417436558749689114806387730879791999062200310318923928559640661240196274318662930025949540026429141617700036671194559184721362336596692864913879188819784456254111871698836510227180806327155026300986466654435662471166337455051826846727052922290111492756351271589748721191336418822482997546710515364247467064589440094021248175246541598015622245831863323075058138722397523175205955466138554398589506391877653713640241707470737979391566031513138331647559022443399421405476982044555979466249142639282528980360120509032490891355858024437583504813577167841028052237097924136058660083359450384981564434193430668439577927276281631784970124571122546876307057445938149098000517887888457184425541079514176749834187844329392218289309414584659544795985706867012148621517700228561889370435359930203542869188171771158053859283900677298626104916533225908948559434701699367249476630866387835649290198391061359724213010494343620407743013719404910758341186915905710331228953596410089563365615356389219055632183695063535061598332717839533221535759172116578592805541553203428654287176279906985036822119319665689557772502162631668395642442491406147823924117895691297393907653681791633248010557604288339504051187045518192617681736690751873742731799380180008640177214343612274480880054714595600889022857009956633114131089106460760972624710198755572801585214796319852487632895792550505491995816372603196500347516063195867049556872090451576360671690910775768968317044826992480317118599340619862058860918004306618178004654534449566994331200508957024374100879745440516485860800707725122963755148117499986513988161990643669413397146417776650216602933081524077087336547402949484543643547116800665049588629435110967855044251962874338194101050235196931520948240195138093197010916029527341131724184794866419699885984567869840128608580234690301005878644773038762893409480024022182177032434931118052651860481960761037412969533548091322622067558357493911095127547170398430746866434822807676602027445492885847596734932063880484080677893693349892750180568698730474253452983945973056007306075031859856699992954336589476565181295355307610232656248287704764035330954467621201152544604673705759619405806089805686841187606866971278776743488555367296547172147109981885541389288661204094121451451422068763718035258469277823961345303421473774258441955311778583449417190510873106241247456655812909027363479482036197643938252364402731301081906537805875602921329925346966967517908754252876856878255992403312853931505813288509171049583814589647636833546313219519857927271434613901421111582574716741923717181416292132608456803240726888229601348161938979444288803663695272580703827102489481057997520353885003714826671707890092958902653996872880836115210457051635188105100775784216381872380260228625620436256569307096038666724815442354884770422688263270546908506523742165023731601421051212824840506425281686207401955268673825283036097834169867613875310784190499554467906690697871214660980945973633950640505395952888116515218540694834479114015218534895484210500804481978397335169354089876618485277005835505409511211815864349190971761860024344798312007363687054735336602703046062311796205295717545056850676241450668942189083005341851853519281164492919723741694518750380410785593674211127790112180714983726338102674295317470214437859079467564950666097657246069818231291299864050977885594787347417848385942264899034843875248928756377782965422525626333304686323166057078813475189427142224365306156351393137817414129257173075808181147553697831114293696706891815597989018481855612044977987294371383756215151672218067302684587005955191568462388571995945906013407689793793307722687586854925365112656774692659301101872351234715805006616692717789301285336657210044733697978668142782572068992328517637746276189076492801435079751699959670955329089161485516110454564890095524276617265483535573162436111122151989137230163816766028417971736295777193577515506915505737209494062051947353876608383324782407638070608792880651838233718949276254409058138604318362339785546449613813718445130188897064960248872341148109035827684247025744732324260076180346496295865561024969747665052464263144252578016282912194934124852038968285778140487175138455959785250719816172324653928100580089638540243039876424459142500876620503942013524825291947538595133273738793605019740438642185631392702005058496645277107641469716441741874126949223811344097833420271877026508484409243892797415126706119522504307241014131975971789147686041811474439580489709866565743109980411327637651922012248155971496733785380511829637970577640301341799315924747921107066488762892062618668518693105169893652843278270740181606651488795844969109476878586999901236630896648277863003957934039630460845875715356779544898582943634748159898082095819583179028871345342534797607699826571721325360501917977855832107447195298930214926997426212099319927768619337454126075761512946981870964511812229596589018530109207342156343116237881431766516395992624790885883367097579050855221315885102838186364668459511969846694649401374990634958054608035346248438493541683256570829075208921391557654929343175724895309786299471497952002709451146315660564347011091579292681071708200914509920241350136081512163081448826652441364389716792534377834730906697958445394078274010369096634164759700603894200233640333570263130870869167901681262107923886964255008709177895121900770836033123757146649957125044631014233536957842563471299447296056438128469710841349421850752796503477172412165100320697947121870671283423498343145626925569735305177754824153596675686912598378747318269616266900860084316848224948885051551434050787069402980651078100488307306046546519781688921312233265707577606980554654913553772386840501161134783573319795127264144852510359275563500496212965386444737414707341644696654161652004600826333927558878287251461900992317082184764725422816391020316384237283857148871164873913652690278990729942674348032043163579900429978983425074892476965842934519212549490328665187029349811431740557505232628673232378229256618576409186970261690559878459844170851751529275364796540837177262075072562799151753996241836180408191081691085510756162817089428707595256382217417530501904393975749296610986262933217573296324723481304959482781816551371759809703627267917836930045637983042234485800248057500235854887670398995756583240736540206340741747268781266803243123830655353458730692569821554483619394222998429609123617774364884192526486015313943341862305907792238993587193657679467897246424962303153793029706691114602690470600242991296718251960577051029797818590899689029232084819107561780321183195175320539194974258057863521593166594668272220323614780617828787424658532523930930058335901766147973161926296943026980358982377016923409641472979037155786931751213615819293434428004865226228920704079120779206822631083574183073274638410420929953812141241254558681296330665713649005725177773762388376710736997449853583885152180368410518668295529251643789456000637270252976011020656333310239056874077499465221856743430266454636087285792855502887761926519249384344479465683514038119870533716498543836769913122419079969390826763619150117353902359197072617414748891662992689755981371553895755879824472157011094480075899051288364165420805724307286977244377429791597054621501965367687753363918758107444548466169865045218011956999449459828528613091185164735250787663607754193452534306453926998939575008626492692016739873497577389047462737406934849527352316903138423016086769178703383006295438943877972746704777057112421662436971940000031047008075989739914068207122856925522076390902196945552728238818148520977590619092605365325177337915785756030880319485949654684619631155680839735800292855557122982362855165575689159895759950354003103362063710281711241809766501574359920445733837313020707803751103750717111179262456002131720734411215223877599082036600200309247386506213432283903362283077494660742405516860955800659873348098636430485684557698340287420881887753683731282942006732442724499027526779636971205980463093313351829347317356793021809118091508817256899792823690058726413164097539018462457981552262876766170393619665595917937785131986056975504312788946408817708059926861154893633667246266524559898761259066548272155937412333263373178070567157789654530880203640189040444533751874381098500848241065812117162223525290663196696889500023781486418951295991262080352391388858685543826946456495929551976464591370593175577842818539782287740049982315938115816852609581666361521623538799740965022903444122910919850439815705288737479424405570587642252614129399966093216685869901321849837809069116323476744522164727944907158945396460005621548305044656448463880276910129422128855999186374741260764852675168632232123179169624791788470242108454167294621004967248663525497903840382720723748233328981473301051477943820847642845274643136685539424396783984666686769971142923180423965655008055238540921778185366911069780421737643758134351923312023903800636559362628161231672020195593923362611224263874105958876704291951112259118716453931050252822777835688903619466401663953897630997369619484573367257057227047417019299406687529372789483029680990889080380629238537042904932339259604130341100556037523186975711582103740764374004392582659555547516226762470498260177318110916079345250183665934878411764978078528020860561702945499846862483962778030770936529643611429920108005808963005086977085797809354880850823147704082245708024299758439364787389449312919557921379622115928449420047663799350523316232202284197845331261620561341392065146662373040280174131280508547187901313036886623929025511625086046317470209272150627265921504939926226188130634727416002032986431163605290808703791369774266482208841995089120182225322686134310146476731578550016065087894636522569821470810999027908423156737419667750854104875291052611139635530721293419249360202156538010620627932753397556214331792605495435077737990677448385543828748138825637685058424348262920606343658994689346517601749465591444204946304327902499196681546655678593495065284279682257121957824898650408469663732426940887511083683557055354866249069519097884112184646340013430530487114415571147579530708992054539942479861535466935253876797943965347517112081941362008140329923160489671485524264381274330096415724679439689753808157007014321411311278967597914072666051543892825018807263000893936234993124415487118703230035531067874895617669859205188357557615760491815293767548879305655670470857775599991383135999808207982020779242918035240209546440441704719547019626666790083789528703755622019308135242705731873563765720885864383523732394944447725726815958191297634978709479873690098102506014720840635453920059958756425064197050568247034193566522273365622075835234416306958439129444011132133563847588685081820733326238871737185232554370183337634395394751260403303399680362642090893758613593947322956390258073335903417639495535112134549476700745771253363147821354105846264925813794614328756745017239604699695079287969856532435747150635466291454206291257278307644581386136440141944426651415211303879364430428692117900262215894610893141460539962701505201386893604675405214711510952358354516621423789656890031796194040999528055864491189603438876242447654802001044817464106503179844011221694902288637749429302522448583939312215536424532164524186635202106370332960901664531422126851953640804120232753888738071067770606220200966711043177681212067921509278818932662377147688876563655044951732538461598064898890513162435194836181812724295203603398979175098657340163319849383137822577477959250575217724438520296757477674523990907510859430711751975427021548898765114487197492319616844940303620823722476709274937415202111621043493334758894089658502345061718761440265956870837948282432109577249039017734402157946969196892686412776690808287806167191022825275484737738703188786550897194661625426942410690388406370624738888683350365515659013654756501347034492469072059461487388303663111787975016416701586707865785871326149653281725091845240030247506757660760190756599331543978964503175778048834588993579014335329647660119257813527623088418385705719877134976996005057129580075506805882808269714828080847098781620436779420728364957666275303267711369937834739191007337912041373092775325209549141120598527891860978079693707285125524061090062041630398522943291326121205282962945003037121960755607102757066924394539584557470864943594219527829960008457260205301825961661968703052534262070090454108827304816413034768282903415602622082167394779631061111728014382963805946785302944833469782851548205561327885612896513601472742462157062776391503465675122508623848760734009613704466768810383784449897083665455793443424073965710041096958479563429488790028351906772255349865270849989560501489135186467049684154667826278091222174706793546758196145492691225765870705864932150172744983480381675396834998264617421615636470809643994979377041995828725637815751701137935928655661054777218441030409151325826871397126208451552621048223863408189633965071059710934931164174888388821430081908769663903980832089477618503686764814995877284419483860302923965696957992974469160943573111557371083619598623770030762140348288273944864812194948916680749743907028157121396833310621210893087713414835542849635603952755574090560193633049086445947370589736851438305832379362527019043657718413769464818949722264357225810021522323169352572887958191545847248812069804058360618522876027432862326719416758517587743245318813359436860019714601659551995755929259652854410831564623458348779123128402885226129482331809459693381628426617184646432570871475812062848932692254024741837528621374841006804592561890523699143896226152571322492860110465910692888984509136533164538829056682932148869186475301888650415893306238664974902818592241901757057690588022353079758233850739684122371611997871850676017632089939167315862373342214107035981753846637337306688663476930003460676096045698854558969630068131311964654276899066032206599120009712931692870512789232653317683391098705991757181237958381818823232949728198829474220581139141957607847034389579920866356372594868551830574698370485497569765274065914032316790493958686516165399609645050872897773274503965476340088136772379913351613510754573043655971943802783984942343468313837213543790914541662740578754256412574463963712817874841662419639289866613186738296285036709238885797123374137194280478024108511748937267758973739010959098438461627370662448013003958435105870343690304273900552037879313742823618816198134795750183300612280953233402512850867588564432136955028207870778881167688660014950459191609695654127813237778681283349339848305774552143770240613332905609522760556559990365239190944546077137655557517447947293834966001158495193064601004620892317495108610076185774814198119065626733675101556904799298834528669907969171969160436439907387668593877134117480015055112509050172562400160598427607328050266675380545559813173708632478134395680501577819973345754569303150248537810862878945952408242350213939461908766163044475178615531411481853451303993438901692616615897071735045275600490943922158245616809460399749090914033410952432411245588970941401849317542610101794621703226546240607581351567961535526873144225310864745962819945837641677365265331327618415558360240358518595694615526883661143041323260094185101266569010562815056461577903571386274491738914767514622622724479111741440014414633278217151457466673749987015029214588679728426998951021645395698038391749090190647244672603204598704672458459466336518234011364595216504493453956357190522754453420393678025469665753435931851794773792079988694880245167064142414542042608752127644695485967930088485917934849719177182404162984501907074348940070549321173048275117612192287314239753500805293744160342207719658868640349189964070767232750235086332521841862301267548315787920990611088590151942058205758343134442937783434579734759868390535186794164251990260829951370749448603041495360953262693288010539707862937706240964625234906901021669564863992969112769249114340465260719424977602771983808039406453517392277984726941105052086310834355707300479234539814246790281214788917912822111355387896167430758906620422636668991859581518897229990132882094024184516827160634637254729492260314138082652754846345261091971215727024909698636594212871596415198339459874553235581511465630614560259876880084471528672228712090331504698052688933867945088734124845342328427039395037209448246191067303878475908163255873511326754577257732871908418198634262664528481798809807140908598175386914820848130070442002237949323024665993840732073476869823847959225152559348581981866367738788271972412690300558777925435515022701196256481808445132827701625722432214914124263132600658400259842625705645712066523848435963362297620244551682005769339417922499450140378480598016173131297586545753379972622866707095472729896522897951938396523022857731205545656820923905356276270008373606128638796649781365395234943240962737493725772531737441063737875314125607157663088663997355198689657392930450662292048176775521814343195977812224135694741088722307493509148254729634138393674550279802256893463509359641245835609628257902352276694412930480479971488939094888565317975312096390659541328233419974652790683304735123296826577544607557702362686465221306415268364312293262321482267843075781708671359494047676207675676252151067404210575709242324179364191719997331890880899931986649905852548794375801153796709266118674158048534694927358669628944112104861926505520220735530632515312704929715595585178514252187174829229957161777974536327653697410662498791000385485765605292280718317024190013818634355471767331427137768708627452348006026504034270391143088787820095927134786138304263224141270101042445586106038614660795407182100149050198541121076370638214195484763735275883199426228121043282744767855293258991629994959706259377565511555155575979406057178383204917992517365139826906928480793486583206367370262779038038548926365268706165899430173709585378226781188724814230930589770317281014365345983770495857665581759681209599201521366375286245936097099850363145196721748692481250642655019661547987604552747974936986679920249203243908271756294304499801957792757686364946473766227845458375867493917092914893271536021565437153222985764892293929403126174172831989388222661243053827100259021569744408317884438092015466890077200572043564593660162257420901583369104043721732447142417248881799614374412162080376118761038115751961687773888950603289464319669295480348440993069814893225860883183727822936914053937825233324932763976844971753285297705812009956614668966501840603142575646942909775129125765895678548577256451616988022771585169259834807525972482728126094400928505392673616104709149229835130710969334024821883697651310548271538762951003495053806442766039683107275770025127873036408095841689560234681734698738982973943852724687032188112952915002055622892091232637042501704647965846334172464622462731170980229786605262485041016022118570122709484014536657224110145638657020957083366307534555401232927240060793098081189650564919536283284410949120021899184218319260977815022302286284289695985868302710343609237167491816293747961312285376112858492690075582501973401351230073776095681195376071514799455916359817944774433094463412355781421267658597700472363199295039159029592328688337761621816545902816416011129876070415032793767116537485269149416892076879508145786934575303096275088870209307111098084100870201272863487379307346048134321533501168402601683801130767178130919821749888213655335561072975849191208214163460558330964841132539602827016364896515393109406719053385824950550191683300937103058205485719554333313413380349688561061977918604787075329153246044530312020241815025946749945829242571095095854124685811369392367978047337523550252275029529433762386625728640263995531379227271255190326565085551069827124698757332414723270227718189763555816552559730460714883082883311315758081552951933204718496624362404456165921577276148910479758081095140313944856449292807775176483196574845267140406558263760566366763008328272124085530993346578305323710653512117115624010725314858815695415110130451923128105679727065436417038464033147978905175606603114216447184030081145342935520362871111824406709637691239615840260305391200032986952016708641835137404734155779924294411036406533873320265596101288176155547657907805088392371431830164257037992553191909118116271286531712524893577476494199462240516121843309939620557699884939776077401483319649057319125611223322227486405898165290499572506203029884276518890029688104689566076428525531947185118450526790065170354117996114189084396459089121696688088968854711258818401976619403051274842290615411739093016329396306451838805899717736551354372885401392219634618377816999299942686959629532293012837906745878609596848487285408379892337066201415438942864156271231127897496262489417201056610648874417191856711538146476491225104503612075220982279042284770657821626758995471423534669913297757048089425858499856544603955296065100500358493534724376996483956421496015358124625140789843138873257491206562056319473533042084773885270997423680087884014331384172356693701578783374012960630081679799778107981404865706478185072188248644934304477938802265511417113067678205135963494453976692107322332068047428552733807948472189692111974056753957664951473169334813590129671449875934759964785508684529391491069070576688689771876910748011206460941098279743029504135535218436381125426925184370461868251030579380205909632612662816980953511526345116449832790005179020278498911131455930666508226767048842795103922460277977364562528293658288505012470527338802171324706200739177467999980359249252533037967746522134266685436935682228903104378998275985290423087911295494196766540497632464286706668797994016576127504775181757617467381406934461468797974833784845173323078453361889312529220435780357553087888305839006440250153739338491903874667535926601040472970123851321131118625972506834011580894895786135464290522963227592868929371190269579390344574037978033709300728677707538402547636963344017600334936640355857143625777588701746175214896024491528497078921775667285140148152749028581316585423858084667367279728076872070683228281126068869911549685717594712693745687115136951204939535345837498604365451079146359613874489336874584772561695885029064242733549429173464939762682801405330269870649648104992060221146169756655892110961379083115387363273728700457685139958478696235496344607172410638774948893362596164356984969901343752409913177136759722477560436189630168923945482975384765346262596121897124101455980124049063153033633758489024291421841104725932294586305409016303211733473513426774071308411060199485643150168355748560710530775118680715108751796082343275751827975121150525891407039181770557594472806889467631023761312294733469404869846000613470328434940574519127691170833981911888727533311468378302917124056669421721913556152607296939343288301008830790957856801321675360446174237308261364147740524452465727667292027216780607139071890439168294743337854029307641088759539438764211320563641002274950866633084405684840045289265310698293952499379196367872575133129305890618035748344774652853398993607169248799018827960081607536896637476727169345681988100382545047719284315085197711538800206433487714487305783531485820966225598329981672709992924934595144314296636245545678635362560757927796541922670797803228540980252293294272714267423043261504853714127958934972400830202664051887758143577095559073132093227773785283455413293451437682239548187931848139975804945360654915045815191687866164807973647511302668129444329431229149068289994468782673402039845128854814025612652908115593117155033166246823835920209272313453388139496997254891642190458878533352992374415960893382197275013285327848728028325861939112790414010794015524239779058737749259696173620361884860060187907433947327773608932238194895976542136624566949496040687505642512861432574850598724156288789590723481001338115949777067401920657641986154081286139331129557319528528094107597706889905843479445472582337996787803342269123890899149621401013409937735453214744494974431760268321585537165582449623668449100831846897361755819861593842909073868342983114942011270712747793867235209937854556329249701744872865141265918244781757225313147103437364459648753427073879397816192028639366590247838824222664419739070332633144035816794882278890076984405367875995277775721168648905721014135063855386319681702413241231261651179594282346713365750299048441155386184513673321801219552328729372988578144595389909756983016875266083406908547395959893301572292609337048991962460517099917418105488439134325469329960392786212455879052408883854839905624781020983637175032490791815796306260547682466754400198565849769010271084949400732841937811561295615509973945021217454365962967066328940257518759974801070140795836235584543246710950374086786258006112687723239552928767442606230193257330102783364593958779957922740365923212295932931168234978741148544881107001809148242993416255155851892678865869558657597766830391589750886576606843290442614987219549305512769683593949085798413996688230019658180886408433355066630519307669649318617908625089113273721605443680179668202841520414798875734056060324636458950465777228497120918714170128041821407535164530538466584044751837077173123286872571094213011442500984905955146100682252647631466029662846400131005255474875703524882227615287576725937684535432202309575611785445517294929054270071993951518804275552720233771134828712659629317529069407908039728701806663960148231075411410323553829698716943935118219987258678318207216846252317265465390181022231728376755207602213756927564234635174245432998689568459996600686342192395586563978834928612322747691603944265961035520347763284671651695664681928170908923671859265732124747396252010776306006297882581028996194960863706633272728340287985754222430322517593759666367659268773714469109421873668034853441326924849089913410814887656422611083657511718465345545233846229300216778221868139023172514259378808394872220177965013814906699967605386420349721114234762825292844036464454666765824479163704304507755596543668716555948695823782583633469131781433893154727447177158266829291661654181460988177452397423983063014752798760828194848528515088299312995033260957413026447045775393502723116759778751780459522423109884066671160270730362467792150822537427785073017151785905655321610780638118740498221569247119095810550912324680852768879086960686151493469372390612441644952377007112187014404551103227293998030051377290679575810717773871465600903130619351711316355800379718136360969178274605053218350364050362265169717579195946384665210235221639251366176906972537222805895910614892302999124269297098511690070380274960242857654367838383496944385610481032175557203364147157870336458813052559180404109850481020307984297438633096387866742212134112890551473864448206797938939294514079326257755700266356130492607806857620929991075276743091871090416836374042166405266120980754222372102420822394432110815425290395151401422487099893712794909863154407226269112200715976670362591046330263948398655931474318697592856551550503897060319493009466414754109955971904955342561253943064554384941158158617462127906258457209417503675657085771675387597902387662429707080420507999852026838493530137621413649595762924269492101696764889812310548271363694833023974860140884182954262957151541641466850769914785194545978240437277272819699072294482673571181007009337215004644372294048959747307668816594071370621442679494004644065983557407774691137378718477997295627812175127826533491056356982482750871944886641791530939180433509497383302906002679309760928216660161192952964232716867607039522706227392327656202776001680120580175431951605799077605342110330988126477287797899276341178192000010642182723567750598298956820325565704221340110728940191634685186135568606836792970490081077810914258224970314612020398844497650334192540494195112365389001028562329924036718356604107614780875492354929238658782780507982730233161257837202138474933076385118872360348543310696898632978844096537454813242055274629377529942539101761277691249363894802823474469317929070637566554416290047419647205203232872892825608595744586534262928346279179816262824722937050981935800132921164496308947538906775493792316622117229865744975217797909518878276890894099167382874854586758691798617547547535189940857472530814530134200655888573980594394696579809086162399239065780711496539702399969841558386391122333641919616268349301966685356957305483833894462709297890090716074172105989120355795997876600376827546779052504496782602314269853176616317944061056934998766521597155063926484201475183983387477211364345927701336542275973569230476561796674095805902988100518704372814674142951047401167308418242366808648932332989259085324543737899693369728347509019110358287349725136953240594342697826365061473247085625219346038931212277128705782485725736805518938065657153060534179575622209349307855667701589686982575155490924238210296811842973116415861963374003375415648115717570667157373316199338450505639303277594338726593845718455887792716675928827295486584923558515157614145013694313598372728506376383441218995345704933617316654442397546478628584390611392719053860433218377108639415413771168382127349696074336407194096340749180934410256108608175376433965847622747255519601767305536469989962728682187105090915923422815159183574625177786460431681703336626070116912266036401089226058545415954609273189113588572964677368777830354233054801873705648454381877423636295698340901062130363493394702133240038044162291681341206993365687189845913393225465298348642102400297028468816602457037271024113247011901768540554399544921389773088793322522835206639226680379261365663953806969279022096795681267066546043944587555424572104016726439749430333134310626786287852669752118343342435806421932025466576363403296011108771791202463678811648104432286192662141257546922063688455900020168338916786223690597580357298233113649329310389300505442579024652866662920870125346313102491421394979251916560278400272989308931244582323965376232588678864668569215646780668926020888214921009651803729244013778351082774450940973770464204567623460508565730164490258680311174567477331514840749701164718157988969130107092281497933035783835584026401214139676070518554577368950139731785172000283973148656597704701425320591891695547129808372477984920876302162683248076578551207778297310041107174413295980363929390211638371636000715853706180517970219645613226444352978438237322235777948804430654965012536163169241097266223620210989331876487462930857321085354015883247269199894752367875851456644538498560788874539342536243186889086778930348539496557107151625281268328763837465940502833219290993393435533948632235930482275123099372691052859252775003110510469479274536865020273037106763345683856646218260102060193655724961929096867454074771781079096009022276064367968448950857110177010701355391665286618537621953559592472304933168692365208760035464115839780107934102768492561358434596503061235045506263662560289550536912720976564126052630808941584992330179094065916552842867382744379389621323785395600441717532953686959766832795244075933375432348281544546354537314893659825575184767594553098565868355131714777424393943220929724611158979415452487863399525255474780951675914434447039976214154674049137236663082144158208115278159211291771705782049135175004294408447870379594672332834314120975091188227143797014383872657486884688327586859899696446916802828714654661327827228548737990652456245885270859681921816430437850490020912918674194966398342164792900545438701458034345139491335621476792422144604894857991313622086403223713163608593297605249904846125586744928030970186121792413616660956284046001378997015874734633973884515095698739013797035003298837050514365753462415345551731591381381748144314423333191901702233445493826836841007266301307639208093631717127261431223266740760455694626189876033438676982211906277972085426526113927984158951280556899670910534839627425711336235625772372751354536451227986287341978664585879303932132198557754732493821483278040236970255259168822441810964577801312991903317668618148840305996735091293060666629986032856615981466828327817260748697248684222438551841357514223140936115150514358418871139338985411716338580664412806468666140506409798705028918126669088779028577367496415943333810970895953898964359891710509776808573888996829209831328632774845876715746692416173863943218421024020907247329337745675986335085124650151645427525415269633228709306320683570957777895480040702646622507985277388568266014245413347204236161748691443340037007914871301823934860911773400041908871946299757735903818351745818166293665578063453522768916909644219779212638001951697785663880940117906933176325462849814405405684915699583910613177535944216766850514056851298862517037384410349817538593050467843514170373291943651911912144947718781819897681040111672160142259515356003167834627740286509424005080274370445008965795729673231680535442022774907856432604198864457360191439318238328971565318103018245874932710267788458558689173612893340090012798845357519723963500436212978787173446516613039911290114066403830736504104617451032537615505933252812972964872071024478669412439070468351321633429486587577905952078213153635119114913007989178979394763220747529533589318666544311837772263550752825944917443662739809325777678136400208222850398792581550779108180883618946699864784885242701004137886259096807715822486666447711985990344056097991734253745648181021414720209927487772110221467486543064784757987529342466976130470976148667020130625839472518339103623554234677244405580872351951635240691361362392220216104118169872552341465683621743443590219923907188716985406929683612357972727797984787894356974419021583605579929576617507779526553310730726807040962140358680387527059561027670468992005360472580567299190495444204855621534579589830055329099612207368167255645300260418604328299905495226640519887994406268553792178930925505207362014993331475473785009775481978426726430203990338765761168780790704630505963093146030941732871875688222476362251255149031447082136486194893179891717839149922859635848530503382740745118014073809908846922604837248568973031558480435007701185693269407312368312599075327455587922547850107099430284578826616193781357149843981778742712354109940314843779117334715833459753555204482175422130625403500479189437312325755578893394177705407700848908730124910872320263943792343863623229184045289336460249995633933645617683900684646676272581925323813221227382855583119864028446373716131215619114943091017490106375598767524684809769787732627362630562557238376413096176099086344670050757862868632494589258269398740074546152266333468625186778781084339954554869733286894494899334587826253339901189613820093080566577423521359265578954892039313116274144714560199851954761961830097077028226781829668669367392495897287590087234210819817488172885016036042784674751228796343966126224102243842884871260926647490148185047741840735782396430058779646222383949447688067414735216682763007875223969956249084663772664203932745442295256040502479440085136700531131683758016027748207297666336697141814822015338198903357013817245476562396803390686388665520910754001257920079821785296902523495536090196905600471646061136155937244924442294216389043992499814324690522525393276957491374128826861410531167966191579879956856543507072435827240618739966119956183440022516060849139057458333581221050825440077904727866687135675930710920512130120322091038796597690912149899590781812834902878571594138139639144348929248035268051897893874984541342568660842741071007387518492601760249517461856141346497050526877617127632380306132804020654920601589505665687670199431650917324696458018596885512688635100049360952731513224813690961365267168794524606236573578021562037435409740131611844347378590281699849690273081363384883808008576000288229016497873276317617542677689939207580384043762430037656971272741194646467885425595508451599081745074004561304860804181443032326284287450666710615348155818469238892727989868573644940805977956986098215739558848080978800228992722684460978541621186223889589457051946706900048526692011105910335640047905981447685705491480670646100889109684578315734973029151562459876292353535238928339890944123864704969537799242383790120762288023421530154916358685875056354052785476996522202913651076766533864686323850875633240995628859406112022880483131900871868196683806752021200707826507322567748269945541026622897814518139407036418564932408523098592880354588418520002260511227889611779221556105237295584276371480110276673004872426368708503474107381472903151669866349182251082749176988767243331215581037620148582136208355537078040559739544925395122652756145129320636635456053223125655696854563890682064128811742473127097485361450880890326632693390270247619991021267162695165745534293298630422006203855999316109067083664145513637144729634022565902722023754974022587058479529594956808871585929067322502076627266787468265684675011241938778595335435401465490592292035146786030293840423014839286050656371156686142596311601046016264553141303870465061969187322654629869574594732604085799788623265903985598514038185408603078785145829594243611870969145742091311483087581693445291336276800870528274538885610432521507058279843571350806147336969847776359983041807865672171551382482780561750394052479862633265717547535369964984682891899651958413642983622846110908382883934602025681275348255236099236090861650805143063766787401946870843374712014740433368859348182238203762025697406937246026311544269888884035796081357535147080544823024645479963424164734007506450511291666019690045567901340908209831579736545138944962323373295403191092110533353669874947947916597418492409085485975533647530296872004755454185477080746669606765336078554185865876446105236500191531867511474316492817914744669413411981010423241109670795722667416589358179821074099996308037509261314864994811702617666221779101237495451861970091116921578020588832090036019550894616981082586149379763062080684586602120723487723517487376645203291266960494384809266615143553604209796064159860443314097686027408839168419637590505043227340373909127684669362711516772207385328555018106056931494189077498160341681601486849460879214509497788151811861764532705045913778827459206222637340642025148526911178482839246032683126725554189214370308653358861897484316524971546513024759937972186544955953798228133117408039390548188858967935335859002972258753630917653890518254787918924618714563245543579500820423302915279500939046681065789388817130391440449546548675964681447913369989952460889886497375678575440733652504911163587082355050050801109567850688164062444899684101015691853052166118155903551740436052593412527998864189907517751339226492672522688401644095560363131686420167364782798607012439771407760556998643358428947171850361304438248232147850420278945653678199729369145399164464934332430158576363899960557156911200307677287008212678091239628802884762443759932028291830257461316769607435499266287432786131934573564225307909028463302945378343388251582052199820166434185221755407698401594301721528868088769941349864483650898625640661374098734052189384547082230676065854371207847540485031575862341991176941672724587455883030012299070521194959494877734886473678805161390301154155001384842128869934815236526071389783874233986197184147920197998726863000243810721987851497282239982141466584490511982725783961922456657972418279707273555030616321367374822813791599848068022658034738235661179295108418259693326935929625384748997351211786340391214916333772299158462548513851528722195963514126744653845222731150438380204273023119268297396196237532081899234967052470937169139866406199607419264517333675431692788521937332486464027211081031231632140194399200895843620348617956002273563284389421060187692074388427777998297522100547711097562631326346958985044289154640337720485196279137096566258961279598840602400919422591138859183375817242546880187735366081075682299739718427769481964827728868376436798096581409188299190354813755015485143778163608187037558777370454573812675244014736676714441378675270472623135161837855031523539922580169955769327184135883896443261312970281906096339214343578048680777093135008908098011099425665396844949851489572284396518428016126523070592269176486707374057148261959488480597935852700516709529252979619398610694903661736304583844385437797466019878290150618198652127706432185253541932634445698857537868462856979458190617201901612212403445819110653250992359596108541426734317181163558057899662012211846752721467174452643168417927555947186392057217481821976437455876044724412786789922918358588395999209914022144612588085948394989869117036162066309614299452916892750342810585906946910233222594257224112640667521408160961362973977820841056870621844650255854034660761678679333867257192560072661926350054226085540379802544526632334918975245321869839000651758913157930296412642646277424704132439366796237550844034451302248137169811522023039410589928106424555235887124282536068434957704002716166238713778885661035209789691591243598025617465809611243465902567808738030598228694512389882193752559520562953690054826503881027816201024123227130043739218680279099799560064564628774213542276275551352818352649732257828022014457711765699561767798424135596450046532609159240344807162487111928885584410406673000703350288806917584838321536433555480916535736692837548641289356079753866380364421449385721945874496210787233688859421322543924518112915704818398696976228753946003330011068847488071540146611945331671395080167356563628234863239342103834666524325221151271242766871914178820400761576847503902353248404131583381584540215975495266616546905580817290561654049248275937782040755839392509484354197020808990281870707263674341932252481023996618698507229467135279068856364118869318350142833613443197923395869893988435284507120997119792757082870719528482734168724868354870455824007997908163019482539823493974359191318554524509044605334417904516919636657987989145232660203157394172696124321285452848432240416383695312942880857409767806447334824502779215252525549384082191100752749797861337668535884506040714111711371855280755780393822756143097497262875192786393938889293873055822081374840901159240211591235108174677226467913409322776922740822909258404729873004576312811999391893298305894267688905869320771619445057890601952750374810050330370095066395348677568721233437288988230958160778786033153618308345341095329051174669335708976055970539942301834405531659305813810446015127441735960227222974868539014435699088403619647146564052473901082027946702213489334767165946753906079335186777717885907345078668686606889721920203843606453428734587778627291023123677864263961462911227400529309610084892845851781628190103264856332174989029499905497383591453717075327533990909930441586666798459203016411586458300162014364398189282437694323495987968371883997068558431882278540267098406105086149834186553466947288497273527502573396445033254737827387293012257168093636325163436697748295988644477749513370567905779895288386855729407501237252349399567463082547116365908157507401551042056334777609336455084300058200429298635303420394667726508719289483501493054875028826479241893749708545872270271257132100650347052868996195281530253984140275739337570551022469684294045952665024725989526609131893339035730142296643717101126402470493201337344056280800168277056731552153690786229245675937016990126308073276542515370428011864764945007242317980258453707864394132395288991915690741441090433377366019719719324131744030486505717826733456778639269032873348987210870195651413357222299288475802367639252205639309509734688461963353374641408360994441845065689772211936707393771621435343245904430776882815986029160252763923934202339553074931963672608219635909231560796859827748799017881087080356933208672683049962964920382068739148474090728870705075336301746708275614428508044806143639187229968718559764500993537177244731982507687025275727916127628015758901461049743926497232675641416810421751222818050578478568630565542171886488478705073984210588314661339131550795824190457837391458282116668089193982469698027707069671184077534515395141742828018156644787676166638364706188367463287144299794162054605540663167525530938120064054878662078183478829513996617688835138126565952062611279558562453868134877596254191500035842042002018253921129599266760595008914551004599614710597404217268367660106194577678676930445049010256358145347255053377916841355262561625444364251374941383020746205634600049908007326914476133370974020060510056380773725505524996344142433351316135409870130913663698937475492413680517342995360280260290811613709461337759781134587989409825676557911206652683988391057221526999374212558826347343511713611398940633458597371604591436037360988737414127272122956410781463739222722574972650865549024474996811176012039989320836444644257894194244390301088242420376576881685587822620291148341146386456889846744090420537580216424141392479437955788570207707351280446311144824300257531967359046525807516474942010635148311831724280431886448107111315824151171293476190848337548726748107156891217614934244440095471088286676497028891279019212300550686052175081355060225489159809340285068045617264523472016367661265839261470374609507550653757801640297939306562177921872542909557860609337807110776656833226469976659038475204841650909275934807356805020104003735238749897590290078138136063513380691027364784101342793645604003201981294675749041383960147201163072680864031365104607085379056557713018019870856710806911488641005736922601214618348213992430282791759906548027866325311976649409783073589233993051191798113337298401212419960536091643333153308061447622748351864965760124780943530968464389015251017213070315272111240771050222321194417918872805311635006306287428547295183633347021338161037330205331405772550902939331629017891891829443193142113313611526994570121763039913120007398346453148708617451385403410503849673005253353137074328215195802033610135056313928579042367382873303923523537760233183323056223593508126365259599340159735451982879693130092075850237057647871385080932168358587037857546907991344167613478338219787179765594237490201581779650919307504593196764778127457759577468586868208787017146398654193006181806120417974426944653211591601716580258550113640327969055811409067781992877962258861743287173972047858868359104796538871238088479027595939922935795070036532990786475481821394079017540030996097176783804081973923493456310200076547561173952201402836911907954312875984259220625221750831929403236097849812675196120530126704950396465410271048130089510033751043898419526787761749205692414276159255123678569556781876169061604388323175206072935807516795884985293828345817646430064038614353787673689865363660277356306718190741597804632622787651206174735012603796745874816699785660746049405554944372015379860818475525842339958142804813849555259212205449345678040909805025511896562946223992985492357610864600235007267079198664411934261792550686672846272941920030585230725726284872586925005486589438453471064551030047509546524749254164067520166116041029052682454063181411811574350953960073589658267232607702171446458177969839315896872663138605836955181638541072449776231225204508556473432458541607914943280968313766409259140469702996297627126295716876195494417949085501254281930399471356127798763746817322961161442217149753074963672466894857913099890164640019269423984035583517219909611771166631056467472018293068456820771307818383478681250997358562142123999088775731791376021418463457564626425119510190710701755843877021954339538422667465421828646876172753482045222409541558714124422459859741398903250377769685835691454037030699374752332598571664994641279141974077031485601357233611979271993840169676076711765890656625846949180461030306091370138323312674442198410677328351925458175656058564709660155085401613713481865896660734303374545749136929978724834373885586949157173024988046643763635772618534850330507837179573967928873662956657885277076950358079951340485745558178297928080761862885363622620279968072705668724659705385820148062024069150142415746439063521022488009572778876797026615082860090587510114912786805691648487534277715061004714759794582783919557938302817345437655777460657753370492933631117542359920412842792884536486850099925004453686158135688048403204397074101396762353987981483241697486048982770153028768066476477536051162071842975179709574617021818337379143944347783150437297645634194166441686118605050548185593830675073177416630485132907092688630177451263837060858204109657428288751618329414579881984854872517641643183304475737751901017017652242816463400466843807235578504846987364053933168065967475395913843766796035379403600472405294468975630189490270513847390657935568312841539368318189686559719679233851188888899611847658129833440580051790175697994846579846086519762278285103980591394471748940877810642472203182134873162113398316927666826156391464823624332226148089528639341990472203399455506403017461154461455882046493237149315734884696133369066847279696070073493067345610084406256689332298068788267116316646160111957530099121881168934610244761790169302299671939531338948531850324062844237456261515706384310092642242261869378293432671744023032127532246838938619406643518761981222331283443931363135972927055999563902527227099899564960612350899780645694449374359642919799257826743064879943176601557228879637386816088283351944111769577294588973183668705381933116703733769734821146036144748082829437867299339019272319307890451664978915443513154656797549605726525775490624001022502783675674174284212576734010321218850567582216210784071751649836683484589570541897832776074818495429968233211438636720156691120014988226721726320959151475567126294378320755927007466507260189010493566725148918446239293925557822025263540225713965022966266269298379742432851133429816709820237271708044440170798790734782197578602110688173506903509976684551530860455664480430192636045854031077875970562508456149703678655814723332274339365227991155121953180708410902696379929976537352235596943660935526464634367883402925292308556163351052969543897099459715661018106307279236515717961335360284719329183631963017105855204141329466069098889620768237723143828349146242348659697498703828888192637576397651087373168681213386102924872657149494902440992371457641163503111358634496922454165007765922353185835111614039764966969375219668310457192908494124919788573661257187763176107159923851861957409130596064574861968178094469434791005749624400967053333818898731164882396926891976493230486537213349777442843866499690165103561634203434431821496836618583365911787309537127040294597548069251292443003242433811832917318590600550425313384212426927663350614073142108785451382462791102969741129318307069094119635693405677060830383689199394998105356297188302773594730769556179235413540273690562978738486249599348471310288923159734258018685334488353913460867244564205028273901383343787816462793480241139442986579752585520195729753339181979545056095113786004996188926475447384122280740462161565378898569467069427320506459738716339957021484240519192679425790204052207292759305670503635988246400709771467776417373318088192593375245199161568744391198487431736505852418281310111871788115168550195179322835114841207548725456019286649315357355496578317805960775401123953140983687997243866566581674413250417581109181477290365629837130059391950694206529038349940030694188838115272652088050110908170593834803515325871293865787471632899595612238565944556247497649390120677829410731788915189420635805024363016132736373270156971203598041715681556027086212044086791570348120045114362589032420231299275048136018793221436233013777284113798016702759686125448755103951303541182052488593948883628458803772999893136006086319987123771332783906686388636090263845603257023418547741430663614942046610554308638655580062872790047100319722548949875912298697761447861538933101058732868769057934451674936517547607909689420228902683341967100187283923088345566418693902677845370241348271011711557627379847322542007320627170883117592765183143733241077768187017479530277170459600864079859837006284748611696601313976182053014578119378639261092430465380797404453738108085521703538638131643470649452688790523799492224103553833068967211264833422198122973718876319543816557255818902494755649103381385574794972343417065486846417046707922659741119200238886383060170883983748745803289423729264262213969858580932329540310936758261349680447010045984816238629143440236653087800565959042262979537856423642007799521163436554980424220187835879181167675875874069831829984576733210955374627279385345448898531051137241429318253361569003208154596603985703905118361580604172465497133492581442845640543830235323227807274429845641378016596735422833946051327131256616387399398394386746878601783944178447343460780108661483554157521680955540618534394389513594382899028008740522633057525720143304730020900296846204575432238997437340230578129551687029258431173731378909865904476719429751788237609619487090939245923650814760717298949967655474879411005471697467529891677855030441273918080360270127087992106722483784421683781896706688837741655086573828575965304428330868166297476306222029743670088631800773761817100007662302595811296287828564818244746841459465282583344475855622862955472856398180412796418285294629043416185531348038496714108580465029487161716426844348719642929818783252378035252452594334961929716384106994719389004953649555522219231137540239373024088676410080398226750633623279965524787548236980854515075511686576265820757365028785205856387703794298087561312930359345144716643719696272204771729117375660200792189688943885667817487961757209403543147905794039240545309167287433984951500414036535241002037142328552723586855792881611607501312991395439494691197094022948081324354187637868742621934105961777651633433952615499987840077593823477365017044781960914872236069750437934102847970248334762705441748120844122180189290720438472512714377798329782738317138914441544192129332212599753399759178801730404849215551348702123961733648881412838885465602696371270955586116654222102714843499379257856113649192966449392133941462754002207408007657010318381270693134543900505402794501870931298365440307560057063358334918846328671025726363213774947773205425864439525502849744260544610641520665605953874477573427922468445853309958807505089332497987537472418666150295038647216468951662294336328587008819739793390952373258428262890870252951279164827649860806028883455004027565081826966821772567908320807049551509131457462076303500487194221608589078388330603605731411601165363803244076530103892387006520416007781539885922141215308945376025136881576296643517954068467552927918922783112232940673357739311081976463204195812588796372229109035551279827021312013156173448693397059914757845290999503912168836641556779592944766964544898230745532716217289568075354596693619817954247242632322775838026917852622081603106801356259902370610423333198404243602425276526207585917555790110255154213440587987720659893452186552764919616438551100074578879989220607922934589413294739245308786100572542710145350133608642161661546595485809334423660804270341314230509369049380170068207826093416054225397948701473212327325907049229588552208580940164868994433025797242937876774058654940517379046287850944934107544965225007647396713332652607588207034167305139469240966757272686870625801538816519473565354003847606243424791153721932956820355268863753009134662379872314041288901227237135794925275919133533817787522479666837171201535009890920715838716203617894236133190516202817889825864742225425902393111942302782214804823451022791812341431323987821413045804039930585653578862034508077481854596042674136770320971269350360125015140097599048764465077772140272225406049960528256662477966672527089608963539198490557331757394854936457517472964242443923851065485627129119816460869493766476956028874883454857538478861784790344465688253014209587635566968013394477106913515730890889382917394113491245100242358673806769445331950993049283317641714044058913033694180821736338129688642026620533285637442051141650506272025768301060187943865694954204891679134867289062624475013222573897977035632393831303802786388281221268137186491330193339817978533715031414187296806948892893754900993077575454643553186970484642147690936754273346488650006119085525364124149055043252443334227536271467979338724511125721929323766901897135350504431741035751792636365004375029963826040632694151619706190243754510631802055570254484720553283486546003620353814891520813086936790102114567282315450602975347608372739273726528932165743552787446247624979282808557600513398380674002822302972513858360169655297089075724950869716252719401996402138596734010668306552315537311196277222829093412324753551139529686334998918984019215273608219889304436603636133249305728915329848358725378576334518480115722695209564009685696679632520191273527943293500163563633012027242645569418027901474478209390129784464027223576113311698809490997992012037421397527297037610793199955439417164763614637378130154064541979261553438313482744575449607588221304054715896561334805951042282396593178239604895006615330927242670359118850578110569091487508001094435517690283189769215431996925161271830848141437448216180689280123644174723821557087580199085848235740344141967526914788900799920580589076385456533758325051819105441268560644704011865284133894624878510586895109659601507119891239915208490215287851969794132274385943984032415912680959750834685985382746098008342168765686653594645291273350736623822403519269187332274141141845193611851090235425817090124436024035103630870374396836621375684332305288955508336348090166644834152153614391791465781697764174794998090263088419521502360004621457858586038738249837276308555914055480122589465261634599618320156826918124866045086447340933635979765870559230498463518235950659095779823383118816743308426412901369381136679199665613085432440819850730906959920756223052960356829565054207610752133884693040673580286229528977676495881159975077590726835159887310760977549076582594433854300532273066080161270280052036022570342170895384010619946082233719006960254459103485765503602947481777846907923095941496167860474603342106010836672636652463751646425918812624318636041994400848368335788244347823726815637061161983795921996984966741878286520376480663568964374993032996485550598976407921327989718108908057951708216153519108272437626462569108920419537199812865890330792655830148571109806989095974371148441246162841599683431338781253810857390607726014247293941982573310829697398438131613482304481697829100064569216579956717139037558374072196025520624496226800051207455431653897209611813008781712965407061317098535777674958173421506693974990762917450885994980058909692129676221997935904601176958770224305460763126229728796704515839080113374943614825258771665667977972080763042757415458051079687322138117565664184582431507729174850091990209926749390928664748283222427452680309585875692199943198507816391901494629047556783442778612330081756081375058928620086106213565750650156571936005722420974639670213195645095106948972428013680013062673227910921401891087037202980176990384789292156057842831863450698029836214027465623717798993554267187025054430782765009447226448491730316696871207862735269653599374148375918435535046857189656605490201093334891412060944771101469215172066730738185813613856415883996661502385802032834837779966404248260555123024838211973101816310792099201219645752053718368339208269520045693019243160101081160573772872514595705476628467999902658674661079367300430019561950746438594742659965171995209044004443028844418462820842872967429299169737227795677804895361095378452237112503923823948129684094004310165944958477038594741992771820629810850750762195718977110483779368244799348900208411570462864502964452121364512570990516667997324502770826468160632198368399190770773812484192941342120287803193727844299282059235478507339691472692201630717063721359789357305905584138076504528755362131533660013147655835354750465705316252265179712098577728669862327977492680288899608966459899442239247125633880732626791567258405396413911313026548084217473873259769641803217055539587182346306586254790706726940660595116923305612531903856774465086765753347018273570961012705677019290768236290798417834829249277629797142774282096383547963583682048328153664887734647355951354221231041850422662452375214054164917416924287518743917682964198267599874402983999470310738304767895326554418780767322337723240513292460593372641230207767319664314508898757121482014630373894277683512376329191326322301966364099152590836844854624677810683800420297384877878589563157959260445602290929059248226688591127130858397127107143681881023950985108733140116965225737360621806129609488736735980415196161148188283754951296651257400231972857467029655014117509400741853396156401687042034910261231017918635535967171794084375845006930480339380946533818065646739920392252796075920757414389299528327930486870264504586901473470587901511197480944650623343252483589466315233251966736146793475568225345454778820504407827380089256230709932961561478872856480639741402782803748318041815681899232394220176806680524517032179370855121783302151129308437309413851881520789453022201942135380811702471291380357456252351308131693696734389908078777303574896457429215516384556344367110038197206105947304207366104743902824515002168683489456787445308713744538936513127396526950273045775953910246618728764274276294032182554595622232514470950405904495376352883810909449966741804541235977836669957135156663350304171362177036095665814376284686562166564332607494789517615535805056261010629749966049124301106261252827904249063498254408909752365755249983706549775507019567580169855623894315146683574271527540718268403181929689692890175050726471491740858975548243917302541905609846365717317420556228685344196901061828452512755892831057724905803609922398254156366897364953871292031587767253411071630631490555115802649869696165981785399475367906364188455017438926739032622541950755209941454182015438209187804942778200026930629848633784641963633493176066002323534212010840041076458353041804657043777282980451556014782756723609540892982587233522444974438272591317606402203951932527835988365735089279439126110652828888451643052014487723717267502050217141181473313105718817628515671493361689866898123793364057605106292234644041226400693473240117665065818454369722585825587869886737342915939500525640492420813937621339670744079239432827205459494052347275639269820861977093209535746349297487796356700223330264942404538063524968487297967193747196835626473631340552998572686278554170143401448763312656871025330030561575889441398530361927482145955777926266707036909166560529702516247759708956040464484701925371053080802224983382859831748268224768371883145042882006682844424362210082780559976352393924610853393452394715252493308990759064406670679856843361048189883039135702661996146286640931632509100844139823630681086128905530160689237168555591657528692406533232052683040318414705617202015735160330194292267487109807864083809971156241507990716868842688442953674039454477790558718835020895666698310401975382053858660363085798202839798485710401857191339328663883913160883493872078860246230269190589751296839892474571609368531882580724334356786272714604882934241844952842383873295616679474989911795200593329242397908708851958674788108770903677040179221210293065593266846870544961033012517851142465293801818926832178507281352962618730018993656496761997026410757747162706193961717620448936517661142444695902277218083408198053312786033627042747564377753194677616248905545450574291329284883963059002949401952042071352216131067451356559984527227938194613855987919016013880608587917517262668995199805436687120832808667537250546494047791058132818797465940415012190371178362493205437923643157965737749294688146896422494181061244954135769365589988547040368900581387589179553405760046311636111688492993565344786472513164835146646436261836539196980729718607678841547917824305733276663866970127201514308550806117275741226531769673080452296660712004331189962085695415492030279316034144440119072496609271929097056866185100977729541319313731443185765617444552395470472334592827120774573787033737670934555522642888151901613833169733047629024816288522492869104293695405717985631620555477530816850743177805657955020558348996076458803993358699369940288347420138519571666414369538992606007696497843817273069607761414760326200927277704944734334112331753964631760932139343200403073604715269067694628193028689408635601414970276640869018650149421133905233254374914647721891378121973281152312634031739303312212794037469812480841102169026666974232623243823771733935704892693859484333766934071772151168108807341349520932181739681643342339284103159881344051711280448761974622806540514302098296002967125987044963283874953747391115594535223768135940745102721978918110156767758354808813823728177185230304718512869192320745470626746385412293407228785283650623939047810416317510646129088182345543331297001344768242957394195054448913519697369294092647080927367882220893472058530754399634883301128031009664685970746821541150980505871117651757227935478030058869305650184490834730978743914833699506600477128037489120770524170882612339422972476727492492739849295580944985451797909419655412047944780441053880642610913669616442089180446383539878497199552868169102800938373302386468959459668971288627730667893763253193944198003775472683828726382155133278318360548922689320572225771427473789741029329962029625253776601707314892102040072014177436763244219109841369661894698179465636709557929450738775265235371430069365885984182478586462521876494520595771227372706514878296939852953392670396615904975995663627122694527764948332899536443366731172996540260542665255215545892058629827666445535410459720310668476816415524122330679018068229310185467478569019017354772808145891469211591264608919408599560497417330796976646194034817077029673844314029126416673665871322801368307611680459562225509413283885982873745041646114815453849744649044518159053907069931111886452746802731402170029924905799286587021749924683211896391600814765705968842769742872855321456816830882356509488442343227827239410227431276983797094457395201188112204107664424689587140869592803795737090780713998445386391360861869639764299287356046289980160648578365068268119031137822076829630012403744420727698841268542743666291415467565781044445365735121458507157686444471583547912532880832156074036994393277100455123587290026887324245609211006891325146111317764017919608167293514864574964962978395233548321967706278074377117643047604390384071153929530174849858165150775040122568361926364265134450017512249401732785126785242484222824976745957109274266931817023047076170793719910838746365232484649368357378210864093330064141850195267661404107951292263517926145008619750378942445055503295413305636432566783922746137995025577508156020986388602739659792250504741121591669856065276430979786337886565375996150336783944004411026024371221365086018904691935260891309221998713416413357487541359367481958188423798121910345368560075585133184343631698910862748791892360009464786039137124393959620979695179661357474658932154385672030547351917263562557207768852559020450478453267902080373101474838468618261641083386704523090052055808689136295241583193020356891006337379883932076889583469232913417672600078219288277239787573553691464258386584241330069912155303257541921467702350071931139885462912456802980002447164732599780831069820286469194781924445483032911712346370136928718689633227644469124991773191788020504200057796853073234595812002605306411735531847288429207176272076742216171034882102495597262443177735151011152431062564914723013313506792812140939029115121205454391200589094691412639730772550901692257033998983003796792426124126170777269542035700562643667756417667581454688357884978789445799094332627661253371056931380216235551086740751196837255429414927796538956168319416112765847235972207865051829963594294888925330865604018648098687946755814469257880642500894384387432253747967655802852283552577955153528865381790525450690315985345710942765212776918785883398843023346683587487250680719646663965009905285467871715170415763967521891273798146442229811463505836268522900572662244733305024493995906636848178530856214531155042969702666062843830274142762959230724598027697932094585591237859901867221182263370769518406668904257541808883794324804859897694635186541478315513940347587466414163861296274760942791140753962682872139441467115955701385160651217379608415307546072334209518762078622597787947984738847559461593223106027446326657816521361674624851773903252501490069289526663677611443146047598983657322125052370004239272810666926246078885333082008469699539177600307546734079641448636267360454930668781389917286341311245251398938670887231295242392124151789080185168449971279036350636936437533883051304207189709244501273580020571982605065107926636224768017669877894123217745504936242719499048323625010170858802692561988715341935970615560436217227913836594059302157308371773190666239583532284083779793626010488760392718741893855377822910379075235432209809852387514365341474389155537230779932001270490614372491834517956580104820579146064841077112235301658245507453840620686355859117676453622734903921268228211723160403854765521274927065049825305074575217493969584568890609697876763668380725895592426652247576713546204026709287926002968952468511282641218266872753275864244046201657418004547182505888263025529103842057628220335364592881261822354049592201072700230093457651260520056711014049988863434044974114867255201975871090538106734706711418827751805566146422220106052591255619298769932677963629652619704211134881953355546975468296440731061603673383302617975468381060278474146517158297527789670298331123025937480077976970394521538911063734350349159299237100924146244678927405297594817384624054847208386781811238137600172013004411679441885930149266615173181981467057830549335609138029103866473042434393911376889800009573938995958960476295955300937245306759172934585112250718882679153859870476600382498680819999235472103629116261511210542163291734432988464671123851663439443120332034039410847445487171389263528715842725529505900300287106430060237354454928527146751508847280465199692113590945540008497399972708024149035978702048573904690096234690924035729803005654502341983254045943237829225960764710072395504428203888749067916799390592135050142094131888668264308819588703253640796616025799150737138819644119489161858596104079423814377941671399856869472296979182251161007393817465351146423019264884796344545147731899594542386884630843521965511152538556714005067484409043129912297828671072781183851172294723621841430199853231637652041801559547979179047073172926935966062290094460896432258421101642763432166281195478177992320968895307075034592828354743055225129305280255679860902573826569356019512870980225833452262584947805549472875430946402072300997641052214255627135377935324454670716092375835332494450643206480172596348523772532358220149672543196521713918925284690268507959868847693811476934251501052701897161122930714431809064271525473003924673602619339930932823030837022274933864591463664889515772370675748404420389869509460752385251222344905545689301261011650013609861456965089335634528987277657373947279132774000628340635949663238539026256440998429158708048844539673754436316720074710508588116573992864276712311122360837437792301473017904849684616688285230859826713257291852782664099257736627211628452641622522119622904843158148589282689289546992521480460209053555278836689259901776643469439021421929063502135796876883465932450984681593847867565809944926652618473229354245260222332210439908124490330703584307052600502649367464896941805041915403136482571457791432221421763135131027023342496055417090876231135473442842611541691509626488499211567103283333435882323599001639474655148596133545969111709245634624744555481639247508047639905213925581100428433157872079175785904946232616652733311213604454738136418476604102008094495418111929262697782391460421242626012947905380687881016337466519370285207830832192604175746928185412679080489092473521595921254508290226471142117827270311112491061805311055321109349295703398873231739973190683728329481332998555649344731532210379575224739911759501549932254298752090770881736099427033770504216515710249819920417656419410543826814566058445205824324988528119038286127449090637457207160455008368808218517049523139834009671526544754758718488980914964827438269313624399679639567236438711559592322775696041216594447403948767447675812085938665747996894744008822340178291658009507616603754316697092871651295454231182180740230491644058102856887883999403476127895749762403224473776391468321623964196098135166504082545108921866631475371569909371956903997757293052331728314272430154357524624162993894891506658909128723800613243308311695478068447880089890272032804522134211760159838492461641646777237149257284096157795323578522121675073228761336491206535611983875197811757436248141575042413564496262646269420419104245618354380802510418568881650880944636796111895385998986687954734301145644899869149517054738030489449420528919566199471445213135452437389317112335454970149856475852384475341299042154287320696950389484861099330980333465318190255643937314523659139504351474782694670315004548380353886320844586625685324123550064979160312372331396002723696506083425107724653532308081147402646245773036556802944222251073321830753191556645987554273718900438103318253663366501166486197491481926437356940274494225310354736340355298679729681731966049753792976631082105598235815028644625284114244967229630640473418153027350762027348508883051812039906737165727545412948367078820764426074498766655448028027670275129192167902735329809120336008887959955307188728488023131293830932773023999664283463226208188892284003419386545429527328803081593028622659511878694228753761394932031047049948109356988008401423276395286670639852608507461694980424680355645533437517740547735763511044914100781888804435206559138857420531023318220977183029785301005559393865105297103265473743793282044302824692193784591760590573738364054955161851443861293109425894778548504723317591777126810889527299944879600371553584348294484826169189389687744693877586766225672005308940338857443098021137567639831422065896262001885595018201479846371177566363159694666819918990626721292209721420988952655084553639551065862794140584758159279497709993964657615909745638540254393621399042086475954453211040641772159416120356161881778043770747520723380832963321365771532682925300192401245423644891095825113693081132813231844114623567269682620701798477208774763154201340834206279740896446650133161903765838642112171457690375688254564665020128046863791396638118021558383666246828375714686816104702855303860134219763625922315447253757081392396166704240353022062817375426666362943898738836444354966654787849043970584958976763080785113242339020419547406884701348225213571005829975014058098341520573175758293559161242417528535896703971479948145046012131029843586365947105226470687188726462197163294605900403749755597027395978465665572973636126377626997295851733263514100577981209418175001081942727885809286241428531589137873003399468176027108943676819087105470431854447749685314233111832157194812829249065783119271007861165762574840791992470642009621430664003205657877162211739268533793870055721481902236515365402880931573769450992736776421542021683602794387378397636368374942000811924537402318556137474790707487086431164377416924442844615204603259463959597411428438215087289281693741073618335484027120516497349110836946425286398613225264153770132783031652531799418705237679391284997842530929526090904912998042062780140344542992781436536991465317102099958277185693255651543744026982699396802699236364086742195441890887385169606419404977312044810599750629812335777369109248876175652091365776254130093412689085719592698864054837881389797326356392411754822903698457370477178019729414557858189087594234479233814027864441747551093771428930425582550706840366599699717692540247444426385383238973183213270488933439588897079845149104633200522990353677505690509643359061558599460103150554666877693159220703062761197495926659280818335124577151985300588405226376686816016105901769496807428682394171770905841166336389899915527956068663347100856986976941948473191665319996888489952034278278819422276869439353617619979303023873879429474699547864670964625088638122115743688104516067414553106396127087076731338764545536284564692639557274003007296518516143167013557358326473280597823291018842301883093164765803073977066500687199412416555953342068673850846455910188475067562247771353618855859260648777319729611962543508794223414047232593214639087903994018925070704114662892612122955740244693548638610484822262521318445033520827005022654705502788360124315719020961666825457925943033284202567987947299527462174080113683001756761656062000776095840566245267466950350047206375130831022453722615046679273037119090670340130648957404792055912633101490987486793154316458095576107627375874681571146150142604403280107641897011392428378165482706016945653235683172528071997671252594837715696045093975070800538287486102850238965353250353389636676552332129689023961471227838929020955196879386610484865507560342551038228507294971312797837066680820553411626374543728252905835366998169333646612573926601030762694816526977636408695500410234419374130080238776501416724573662363570531519785866726914318065196345923557161153714331308339456470083193809196395454612688195424534652455554534367044572180278105674677058523303935822262555327326027338044110364167646874097256437443495939178101248814172922508244445234842027858733846803517656000636393388436954731293055097513722475605468895102353799122321631616007416561295634872603958706107489560441134188377646403909717862875215934442485236046114141838415208358665135609428773151091815701163783019916877168321875071359129212537936149761863339001313446318106926744479460990508613563918848127160082797043067317386450018075181991396114603482730996207206345782204371302181498609114089159469499700185314505724940987001488249505557416019101023719890515964130946793844301919792892926810608562064371176740378892257669627407167509381367313807726720807298354166505460767875651867946700450769856349209410368173292018750751212108374222638662812214983603295572236049074915542006037124358294308726995284021557266691279844081791197762589942574203270736697777429833575213849541675853676544380614713559622287255859897675469673454783424985503619038750998316007798304655155060005583075953234147948623247670418775327313196351213178550284889579065938314064437337108289633157726617261280176113746123931877682722423408063564774699552484381383644720921226182058183587179282033780339587023682199834442460460444250639793084927592169335835919470942407981898869551530541782191940755076660739298401491848693129536412105927534348858575086522699358784322777317060725577724856394500485189173722494301775239365098824716266988803047914535513481701068737117788817245463575922472579820243314533706474258435374530721101920223433607941512762567626419995683947740265365137227428263505926348462301479697227601395113331397607411679139082129412281965960525832292812598441809749808391042182481597570229664168910543617138700051647840297861302527290587847367523456233444376974322174667184608649038623647001931623887881973874348880214898238636077495346912191524541415718017732056252386385541922747020254621003819872724121923711081447884780788901151741891847954732030277883455123208363156855452381861941363547855691232744186085223886164889211048772766319452962464482660258323942523503145846816310022440315615595319842997101039398210604876496960519715268833268423055525546071225463474565826490682701169668703577411020634757398795980821246706149240613611288762562791783605599950298066805023055513501462422639254651880275322258015982940485751843929189927129008862201697315437974048502634620641036787871928652993685164281715730146108815606592265959159135824919583570131103753526544123633534955894742596155155915455059495604703720771639013992039751465720374355358091897066132157658085156011655372664658208452653006589006866507541783086478623689808833917519473320600935543117800739790697284345485631708770122104552755067705364137687477971368704814472213563599800260104744269165200094199354196762652783834042771450916687888952679278153442742201070588390125949522794233491043082763291515754237217749655742588981445474245991437064936189061164314602676158133473367928993855760007108955193086757796140204968695418046418950044752588521529757003935503025726299279998745232196566529046827289692564938750231006025015562659367570234470606160445902557170184127770348577003608546050086578015579599429117390097663023071752351949972378752031810123522197502964344449415425410751218153849578953592912999407619847955975356928266600100737500746978068406474306414302443054458918792987278474182141194054243648395184947405491575667642997150077790539298019540328573508290324256270276651078488135550201466401413949882988030007157210205408114387527932520693717741618314130510391617471284311468417206987404150250227685451729843295068451703289177446063153040625483271252295149537113282493690378930458036811547835585424617968498307336142194853256081028225842884427016754666189439697981482629321232603030302090791797012215542939665145069991114723468860187050775859381153398389276901270502779855913108326534229735646677939428690381776191660359465413318747159283930358779254432527416176439925124152202566131856203039588426616685682522511771684329599147941486742349966184685229793782001434422127690862224899522927671290307763366563342427548229905929429478455425889650098017288720302457901346728403054668393041016171915979228661609788864918406270589395042176758337685045713195902958013888197379477359402509407454388642443100197302321584015943732769479195748673730089875051205958726772235911399931855618977627123185789554731211784657766003781152085245751225408784333109748085746483697811179024829374756021200091964811424184812873507213299690630403176535402765247189503471066833345316467339696532526146450462701237915396256602775744111378097547201165941537064468952816449533204377300026070889368129822544471763378525681475532997931027346335901473980749730066524292550363123145644001364604731209083710989444209392439478615588766310673355230737884182755959056657778610943831998937719090616407106350595594461752995038908372334995403676782935142039501687393227909621106663201333226011109406429300053386590829997317797927857053103093231678005262938549871988514950985204081061301737496313525243502499390700513036339984647890924348655762803862349802975200442180893884364268686096823596456233335883574263674238893019064113324108188527319725108073876962976671525505626401479779294116988894232633753876241690163212349726851053811562055041349576216130970139109516592310570400967746841003289708908724275289637962641190819083499617737668071977211346742822569667276682880996698502505828835906975134802525957817937494268184811348492290428178121657832115161211241290517069414676632880701464581004591749549133622360438279074946130247443052519362690691401462315748136348059240113192090040336033307610701524844306054875592431572123503084774832096547296836629882608290228737648454361926317605103272736663595933857042469799039986198405637650616049011459010013760694515640797659846324493525504455692065928401490587964898616581631022482767167523733306405095959357147406893834261867983302137553214736812588315461476645530759183978723001019861457388879960207767817980249557484998441630321094889753300309614841990333579315528487933476061681808303891657137481976424591613182164319284340480773097432562729891784950442443376886311077726311434916363105053796845563817320464861602205283312704395150948202383936823803719701244195451608705432012581445673025872040782289803478157593145117565462351291529308717757787333707778307956773164677269532734446318095682709277254577541224015725186172685742628667420373377824274380780625784560935400823908773482383169588504347055617933876744731023433518830575686169249520662766515978006853694583615478320933343420923488009217065336537831368500842259878430129307701397857690803774670048335619583254635318139810652319038732974844032248128672495209007321872138199314874653538791174476729950899586834439081535095758709476442313259249084898452474622931015858823033876382670128223600734150501381448286576239050288281289976458036213665889135755903658630344354904293679670100356678278222143979010465041146388367856816815765628361327296915839811181662824541008119951264211096486255697246904784407515264342299161747426333635937327761011042036051207597451004707377457869684022731235140770945855739037978871387484719382820124617443078523882821172040687690345233059545590456751684506306248382514491309413124030530803813903440328996256295093077980097280890396781142082497424757446427356984077231583718036983183001049975071139442123964631078067877209233924743222343099594028349186945167319291889876589341206106333223079030521825678431492800685606501031118490360672131991443000071509397918432123770384576419169247785560564027649584038409450943930522865383352809462674802269344008187548106632723573940906431172023920534007803599161638130996104358395489064224542796165346897982125845930459804667719908765771930076617458866802038507739126685233097830023655190529176071184214684443093306933988670811366367449717791938978591420101502343359632323258592855407858564717992072157264151088131434696313321465554400909397294946154598533884091666597479435143609447105337782659393571448360987365107771824858767595690816064465941563932253554080450308811112298122066192984816253106622555928913794392291013684884907512530626662742953588081486438648028719936756200903876437329780522364826433164614530686841336888860997051333408678986589585984482279236210831649792079922778181698903839298327145763934359890891934651800609617853571935393078708806402755198047520159352025127288680126812436847800769552464332473481587862598548947749790591451702238367327338195438744982526603450020189371103481521572325398485496417768414295848951524628049387104480486492334126756869276280337308747047712400899580656112314627991937850536396367107100348648652754482696399513766985344702935220786266927030409348724185885146101769740703674465193728101433774226140578667301904011808788497690335307786503258698513878614062503946079325650188137300488290737651226403528018215332491831169583549061658262276109142194045208071559001431967375525832465753506593564979038824837365796822899235174577008579869222966376813562309917267659623517108361685756954456895909933521087314761577281511760416326589033030381385782881914980223854482872972223213087148874293666336967439952200228605230168775863703105960185748350833254504039944295887969921466435689178011183737468747122414916652778506661436848823726748197321390847370507528831016843816072104688874924569562488264302089489158299866362931852635081441605760151252216924425862110813621143034811034562347714569436071161710387419730920444466480384619396012975389405332056787513347275161396347852168610406073729215576538564860937624108544389565749219228970512657659600944788375697413787306713864825549054481531747202249449232368090226520946870163929509398317930303388847316561186126016452633858477994052696424634702661428164626762636155597856403400410506329475200120431186843445579138814372864600026761853000963390810338316626460911179819096899735352276874873054822378838181298940377305885704312858724817386913110636089284300691065496793123852088262590478373572705747215087929044328215046507814361592066011197007985766329542592034665439762701349986345332065540965578127967451397567137125920264662247211018396114781853841871678151765200164991525131127074775473048328401202240604240797114030151973168474728718162462179597472101933862540730753440122218826066885855204891745310760381865914640986761107237903083554994681925243943055234883162275652350252584730468574407331031575705309425765745034722388872372764452268720660956511208452966154527661244313524421465268243971192478156765581928527616679353527807473841592653739915644757896220168892329845625054315712306419073905458224417242068122112353970057796901449430317579673629539305093588504547271112325841905717423930819520352184686266573414213431507897269729888104027142414191181038133548802281872459178667859732450314883667284367264886455694501761816963219038044685943936911730115790994476790753776820739828934594275626882602436442384012076918409524693677224365597546987433459452267847367641855786131024174510916067061413881597177630224049417335526630592099479281410471244299197926123636540214059520994383225537481866640576010329463676053525393727977075326421953533414825118339655474027253191274311775352951447535818598021844539139616083506683426225381980002897877860478435816880093602134544136594682445769264996705452204410873121538299061366993712007102537945817265559335632868477295339729955511711277929377588802791018574019632813844150547662103661200369162555675489323888352609043639426253412034684151228403434328559138949009610104393849210111478213470250241951570403904843466290350849012750250076387422117586556519972420412367039285393010809862367350887819653743670366497498086497189447677198813318585361775938260973410287476609705517835172654511296479278834373549860072903617388750171763697944999211036066935050682545230773670921555279853478032383300722458900439086652179593361017610466010153962131553943556797728767914053292941379899132845089817301236595325466448051780101612926200802843147930264093648403689131250387435723752707518857674579549454845341892306164778430660801879846736369414079280758851316255778228937951229280889286419080818579837479296449463829404174708586966614620149632537112148975003281162533285071393286179508182838543723253125772170071016812905242905748166758059765683041921935761340137906157791373285241732397045487185716026995818125086713471118600386037817266287064137726905681893169295804335861101839073942029895284542120249551104709667830221063048057148575720005009543204367116602636931378659467135400545871969577260617793173960470253508812719509032566406915606929438645598426612977142694547539497752007958355633435737464832061486618757021800257789279123256547583290890032191744381166141003709753718522146506287542308024289731259279270531114125622305608995879108910733517608591098500967436001911540345653001145186204363440481807031996343498289492784622670039888417126015593290738330745672524356525219184332059573954910560598005156230178720701341021151838706181373854129933023695547304303327848973108378684933291030735179303126700223071478829158386137120353903416365638645418264881420791535732368467239260157909762920895791988363959761929918891172061293969542924885059554127832559000347095960071802171082782887563680732603909824870686500744133347377045930147093146166958383486507939538805033737516071697031576214500272089447541408552388677795665892448421563179636166843023305989615964821618064886121129880016022460207627288494635860417228039621666708833476217835433420241039111621226890900488592297424187593236711443911888729647495045604986523030382632430715696176583372038303842195066139960517319882227689034099151238010408165596522472435827344068998987086578511918095419520358891019026431954870557329074232838219123334809391910620470518079777712597203542312739675095067366970364691184737832538495335243066465701395133601770222482557014187057968216389155071377502559519314045220420140572940059110985489022465808573626008360054524708936163838089551879129683379491826935471366593941120001805546131682380383159643226607249879894613795388952053235835558566425635194696928471472324689238886031654987333903434714392057735368385371331597504307097364912048934915040612527308299525351597844056789565336663257088631887570380531162371769462058791464906843268213656093868580585195675134365336064475513722476620691619590763603314210583222661761963474861733706257166519804192049728038216146745479868585095965113887091408575560971808526979353753771783441402813296949337891579135787244833419493191647145328919809918254728185258821449859590373883009022784177360764922579939815123919875714504378803354091832017253123586083958946230213054068225114848552875676983367942915785830058265553661385905535832394932411847201730731308964713942416789168482125768103529677509157678769005880763686841602098214093937110029471536462314596060156942603295703332273921437637252754559431696756971856322261685692810149301511643313026293139497443822353026282429168645271640283044817598015688269555911198907053546707156873089281651652898864736159550058609330027828080224161876299031837072629575715779373234606445529409973049441346318721282823172061558658001336124384597298056814800864172711113024874706528749169894185525806372422662561352246999172599292819944524658779480546604305738029459768048880981388881349251223987787975348780670336632194785620406804539475294166046925810613674075641824483434995093529087271593928753194991622043668270743719734580504154148132708533631047382499257118962767280569510446036240638326660580368591287492608876402153820028487699346369316792917010774790326220600286749248666428659334555343881496096897326903899749589800471835372195878050691732968816675702034171041772209157435665976696701261647421274882627452688357804231606806344823682229036353246525070730431798938029993253486129313238404687736579727134498985389114084071416444536883399059934342640489303906203593510576876549957637016745467144890013444574079860224397440613594319177065786943628852120714089377169782881077183768284913238521242667828545916603516026494023909622956214172218902885985514969793489721340123286132023984618723701365931744083449665019172225181249091042298925087244867511928463717063129940569996409133175584607684547048593018610255571792074005806270561765170723601614010320681784099329779909709787675043948546608636178477516415044906960997752470557707783075017567208936432388646071308524396377354713824705514076629061602681722971258927503897002644245000538360270796340483856518838183786821345009438562481033267561184019956876597487361868007258095953451399110696552310919529620432460149430720601550355273534155274158939998820421038538345217799108267328434785548242058110099180578380370853209891686448805320582531000689827972289776375477360079202465406313586469497515125692561788382187977258368904017968479939582618271928880506325840650619163097101944209754833689478784735591846261646409519466756508021933424749456033569169867097125512851465806866492565611403485154457744268851550254484122672303592905798538318049581032294511123881207884240397119703389717316391048594962434108550310636555004114751735358948645842827492327797177069704585981627898756724840227729959636682638050682794745787565015459611714149402219913643429909514074179372476250243021434149464188787076884614897628516578212558482860786526846719897944804404663096843039418402768653687649946179979333294794563089206145092786721386667492117793175825119744756527626925651439925824370677874261978530933500937525451528050477236032124910099361929914193834077734863718707724119644128445352055423291879562243646057715768105512423671356098362365325493425693728233291311771991381004653184908031104579466241605816738896111453873195608086553376309651902614177480135046386750922498464076278027818659176468334599443241471462390242027174968396646868312815116107929521249308217230302970134198666947649468340850352989536185722281862688348211445812338843406824629564653810306916054776642558933802518524625748880030402169922393318370527796860038997386337764537053797659313002416053122679765944808559007083141036078313807326372818687672717373504024501421678907895588624601816723652132654173182204703861232171362411574753052403809998561854524910392683568789229325734541457074807191368484651041132934190885903743888453605203582029113086643041146661449353974009416903752496145226602802620013489718784030940089224614868129086696787441056847399696081723471890180005204315203248870772333247844361245389919010218060139777018907494393583883848437479932554302384873848344836239070082929900064988629356270299570803424850283748927317799511810226315353011517903682413489586247951532810188281431511630069320288899309995932819334521586833542496746255298797191432180284030374827583980197514117483147426737752100234100781170827059569500196741780246178741731449731357817811440628546428310523158192153768660058438345827254740807920243115252255140122297357458314960091443208168544615806872449695765977704734815651251697824642407004265298006039924842394872246854443808089219015285206444130841247488603687064087013251535152281736696793044599819330572095767184421938708259647351444790230866845995443895166632802356886664122962360977972019950312346349541286521883585838395931870245593353207393738346401070193364855299358472801828907816838180711336171664112755906703422408241939558798780961607334041338421599705885162674916589565411941368737299929797078003596319845195598284629178887769465739401735182662571325141299424180301088383632994511904767629734890738512663445481500857320354851708134407017279861992588866368972664089317332356798786561109877336377198529995995181582671445739889461542208250616176998228450872431862903770102054099702160545699216264751474803348619798353133623599989547788560593081620708240974931109569417469369275197618480194635316192885164877309098479737166833945498948399595993994385588431022540960685592887758257161081290913489029409082446476428422830383223899398696954387360530395560146206236132883684206926636159746579657853045548673512659729408243874470160153430603209630273239017778417538098948782770964061845340830119292766610016930560488152863484280652262726160764829989456287558043330787073722096327649212585514912668896137975445947567831552087403255544096027962120596906961777093640949256265501037905279494581287423512861461201931609716698328519116285845425670390847783787669072899587104318841841705791983181570581705465457981358466738163392679029383721903608875289223146204508108703240926479318858827447881322767491713791078921224459395859331716896252476899766686677331983267844325780561748722903402797277802269474445179700202422151635702930507745613993628764560865376678475992876172369695572592490661438221332740855478383508120178671094445434137671304293693091478834033400169577483931499683116591613365333976019922481240549252462766849647670136507414306454371807450689830339482981147180536835638488436862195774207536269657042576368021400622465948429917593365295203412852622861480978929777601212584219329284636718311190392276805241017139885607559255278189116922270499004801007020609783644887534937712771429340096111321432464449935847064421810628138686048122328654168508287351384793662930497454940405933872164491003297111171301490299471225834707303381465391735669942186443861440144379123324685211951461501922419435508824978498135561448931143678522688168029119833090529519631858792564561257075250892738466792653283511783539277704994517748848792057857116153573717085022903886619744785015145192731915362639703326004301229590610828005644897534097437493371149010427112047189767757460118111838174405699945771390528670476365823423027923281962056576396016154788803578727869931841183297676566430314591679191203200967144911607531025343082275052740196228557896027670201352666995439801669400486812137307638949236626995966962881447593144131198621900687341921008041799006511806022002787085156089781498886414756070018920731712840782725902314951120916052050946972816002301722754041761661890300488530066353962936620414451862182276575056729732432489198306105248460510211268216370873470822498199860980166393789599125592293756801976989059611491462775368223066016378010896422685046909203323111662498035185556394512553470272919166204625966715622896529154748352008222557219858772932479817731372102851777222306953947787508908006817072316575133860832562780539096534813202458931463970087885809458451077031984231890980360270409653186536845007948587923408764160297315972847002777177765549080379530803783269296272013145178905265307835709343824205342522827059876461445552352562996871494296617574188509608916250733866297889223019329478536437243359955345148596444206520107907279271218169213963147559831945954538540887018909425799193677272226112746472259711779381685438836987931047509608544637032126212572107628014412174748407164730957314534183906688712721139049006154889792293278371017667920657636189412339337634511898638569834045156280002544257018088077007566013805276104531748145711084550517779268377781591643794115483551370052270002292014373389197373810564570842847136121768537126592606375285376432808789928457228761094376470194248290718575255547934593492594418873975420538455418754999746919052867547892576854519129310438238173366994353234011403262394793022359211720511297109572428087530090683629362791516919667251669322515220482289448149185476258489223960676594963029824341687529793866293461403371426501017115479167453417167537478819479738553188107861971454889323520718437356467779768663382293600233923875612830825135443631419928529381989964143501771138626646071833893398332864198095547261241740106632481865137048519328313414129900084008643346023871824985983643317760218596988243844274025967668463339831635817780345740224411679621483222122742745023160100628242667143685947413428043944251810028046193604724553274112127608487883615879692893291925920867572703486908718460969575444199012496798237300011769256702220269564687019843461832651757131102363123392733770717688725203719711005300545646534609215932944704487424273890047964129288614159120619322549696413158252289484300968463997430496319882794919003573518864480523159449542868749071269816481698568946253777529155428045932860518540897389991742986669354748727246877215059943734830557216254230196463453562058958094436261415514625820298052256420571447022723434540332248450465475423161562034502209139352438946386293472505760588961635553632446790510364690394218233661509716912710953609334821912858435102805308670448685349477562898753142860540574474272065449266291706214966851753108789028183044457081795550579053429399001480498622311595260552936370342667566735296440762820294929756398781596590048911924274899647214463665421924971078580508061911696092445526515842875838099018133473433964320116044122199002181388968018017113544881381316813350680627027454500133015729613786014986864712959750543514985096020253400430315987626407365483794982794962589496897158596361074633746191993112742560092646916594784670255254872021932294837747738853933421919512793186342153646012209161226561938640547339398055480230115256533776555221451369498744217690263236466086259498452191983944343358854242131166703497119691161749222803698501229855898074698946849173289408750406439971773011396879137864100911350463488693319727621325286063968604220840372655026673749703122176758847640907125003581052534481938053093864117057317749313663206831582581772094753038951759894634372482563876161100415974263934094843926868236008314581199098837451861449252875523762690193508701332700270179406314973552697434658946072005722622950470258401980698094244313203560389017855935144486443746584811257214378220118404307357870561589140260540439014174868545017221689658460240645176347048958623598189659865961569863993027714342686141399601443683000510134096994954103404531282514985183617451443028472843286753058522161350110802658991980373106474137130943670470881238893161333235430711593873916314013225119754750736276773452073148124029979466930906332553383033873533909332289358254897666994561797532529751044269569573323167711070719584980574669128263051452589349684872491451656151547753114460580021051319982704201916679356683345162019674809250521578459118527271935757391377704010895999447971578594293021931592628486563356330374009728678320782626978385047601912856958859003843423094859676735415757616502068489681708457906182382751677002141510783817873503324107348038441875358486069717637699584443599579308180510862363385416463997385965755891763082464009785116828703459362562741152506538402869330043920897134144284168556810017162834729594678381349249173345149206447044707785717409444780953347463081451188386576663379179973219471774893932679554882641295860240576416900457474105149634641261535793298345471395107108926765169818019168984417864621385000844911122102789228393999548397461702447857710340820703317816641339134585880679739539482987250854821256488353730265156852381720268195545257630402466943732155344030935482781592181523919625715277471371839489143298692298340597126355023096210619993888453458537192656292828795460215293300600936163053372912891828910824476277711348422956138602334671457075132381572005857749492325915751538606950603974896837225523064614336756801114277509853010151827591832473027024517277319804329086161516348551426522570918386575890142533811743196094741653050047434032873643188273106094956759716470006155243026765733245729147524804958041264149939833800944631597162965782241754476883917294198882013796785281101548233619252203848282544602373692286783946363206708157681694318915902695236824679913888231196215127929498283511914821603628898726368914519126957296714269385596844012025608253894799004551191487252523786134011268750855333452434698891980301074560215612267139208896022912216455387476924617180105693238037668255622213515494197491728927960096477785191417696144875530332980741973433843818667194435332096968543326726019146959722550943010108679839467034039118522597993307364644605240187508900174438970607736276515335522517275206132504344193485713735208452197564817128322647293648984656248900603972842086960252845918933908060302643747539931886088529595945821947807898451744128033749896468004241308622329455940710977942593556871531395786400964122952633288132819965059254899744934962495249839118895473674265402825968065297601050460528147738589071801119477559898215383198497716982576114003712468224573485753561675920358968667843770807688584326767688949576999085001993195203150943402499471409692507018481547061363714004672053613360390454051625747534001503395308593606406425684014838867968383768915560331580516901675220027462486129162012442522840245099882082450000426737948325910971320778201527632070320671805287925361065350113949851823940938791135577547959132658614037309340459526318694873599723492620712691821223909975472866990970732238362759744036830431415100614771191523841147538647770119855957351116027603611287617704288399928555804933432876537969637556131495552227357639402298670636524852476064961082682115888602936493759067689623423991291878800927891164726475225882943894711115958775913682195055136879896741686294026557799572059723954092977223046453198355435117561121727155912365859412205296933008119021104283457301467643791611409913053034470248197625715395319438707765728701010159743922734668867711624711993505719707770994706876283050896220065356664339772825102415602160056084302655103917037861629784405562174769382366739712190663391014535441107533303133668551256449352203216972917046291948614743183657088330903382408549988115971405911850294829586054112496073144730238113507806068800144025258654350654760972087915593910153021103745545930674317349335075580924256701037288675644874729783040927479153865022827903753199875328180978303459843189195583454923266980181266421156813828813524487910685531729444611253069022118452415375161086511896019676588974974246613517965690000476133708950482565710864704682383474777170369561300087900029228348067465924850247754178583030912682837516545111228621214416800822728272482202827371646031850392671888625549899799113083646799414696558857891627348007648308032657474045195623858516362512934827667649985549790771069903932345429046701955390156184807321629884316043969702224811513937966298081507053684407917276944305943357345832880252669844685658263078727575569835123599146957936109228610551179671535481725489521913823469585318267957874729201287468407318175955643037131710802849895701789618683146313391239855864146686778220682358462471336250935908981269304138087701701766789643568912143588436008497464676718763466951294924138106397216895379995686263265762697318184052672823768353129951592049231767725375909783398912168679212872913331726411794447779516699504174932183868793861423783812806271242457442235230249508389374584233590205005164159052380288786845261032092147620379452497125617559207409278878315519640122470033295833206085478422375867744427837601701658989203730522002466515683788625751366296594450609588484542843174159761627220911544353939072757053606408209602663975687894996094290220615828567030816151396857465975483565295885300439998856201712329715275229350410858100825642574914619599820555712703382281990208087238735496378969668455974610706694561494017644534700075795757750161345834826988313575017777246511979591397327680816158356011046854373125028597391751970483207350473638461168693755615115948364404162831533432644877964531839895434460061259919336934054036819181781567022187540476559517420950589303539445014902967731952610153422624299846779456695106507548753154802760832532189035882665162989457029091995942434823553088180411457726229927560856382400335600868068541953808882862370594682947608611352983337004024156129491237024141127711526921200791886057184741555996253757370335786225996387516575622843598170913874977995606792460070137398349329492695403283592980306288495168587961729764708978168082486838573504755073909880975735753583240763857036918420352943459212242886402940212093812573598337972740194433110845740194695628786246078432536230478833328415025952279923892212440174164576320048148839021350312153173289008475958153474435757836686400824535783024230158615637813212086774860007562521375553993926457190339685052993944198595720852446209704173971108679405707223599724598730349210089560054494349708731596307477659236267786619071726153401357415546310737941048857797559206394604293279801118624491927642032899784337085777689525434840374397230752151829060998242569782724971692458152219583357179774384716844746303672237667549002341217498853578152954590132427962124343312066955124908132605606033549928666703161543329276605191519245531818321846464279434583908535178813671557724036892641923760267481082727518074418832446073346617234293134070249472757674240230151535093542229415251971455786882321104791312526052345806291611886296902122632033478527558539327857983619321390367136497980191776434445906643072450994020607047331924811768677281675269224271859934663041982459451794310368161957649674335893335337631916058393589973600645130275295802826761491895323948008032303278490487438093476711773687028614531712703326209143436829633099430048074709455430651024895327409546486511892537295497815098277248083073361633216173644223703172658169617956812757080099158391827495376873121595539627019843762915505321169711035709246762818254528494697424007974812503618774566782482645721913569078058741906780562389542028187692106782624746123581492101999034352860249920351481197767563734612257453655558859989456469155999403291849448354340549701286398402171003842542868715337187018367799953493100567954429654056856828740939173842869610283091010197917106793449468584139202989061782576328421752208994224833471122169443485022362531465564660949200904574827371734478235822638125511840188973437806840629111666587788049377932207569486979415205259358365165237737237687643599783846698393156664717619503826497101116441990719039316984432940848050909246584091449858125579910710301755322854963812890621810711733892729905481138233411211044655397486404430032591477195504943861792568253366881313015836088177988804435184890823097746674750993478204735534586726513882793065434805422383775922804966366439297893226142020603655494655014167563329486566132614760774728381328465209523461818145413676303099729450700726081895640904895114855090147049240277961207235217976398545568717024674195659420591819260287033472554551066893812197167882679448455130071976546762923203893536760228746303017582615232432138024099566638460512921228109264482956433076297003996751666745411382760789794236802740811877771854690145138692060680442171133578427953127574411885458378909272524993781448523413486990989517119537166034026601658263339906284283198704160468278274909359224646055480842023060677084309107529478793803406350630491891629921824787265070191954122541486871716276396684133242204581697453076625863241378539496196150699450537065897801940930864345895632927965397937006801503343873885638857140553540313729185409013118186825245032849580048989928327093270903729566755496928220105491143805437588712796581733126391612987261506893218025694937774012005972366227210965312390896190998440378292207435430218144220476895972229020771547117480732033524460932466300773810478105536367762724168054212843774352893794567135397480551534343337970225558531534800782797100796275636048039146483751901898001212964090569874197840288851253498213169305710599650320710331858009556158129838409846495256356607166526302170467296597687207756353955756878744316511720027716339914156210097391725345965594493365389011425404414267532612411999349943838596211583601167568459665311010018812370533172761381101224693704927241044727678042126014187957469467380782835742349832199935051574393239334366670086644874037153403782761858264492436809403166835161454576725863238127707454318589252249387459854001322483598175279478430174326215826092648438391210165150313457102140269542311813938579656433994155239293770582599971934670741555465598919819876602745709620311359527686278962125901490750495986165883945150076159324385546475983180461706681476400331465484842176482677946553913522124868148560320734960907981027900789392185325131498361806348651776653546877995279189399319345436477335772784860497987780400001302087256205070697359209058093893928535773535424865891996754057055224935947306394033364082658967807509760013044318261135645172310923389972847561670509977906077446840415468851347751959612674086655070530739133976137616643721680677941674895964126094651543559420241116750482606191350080886391427664401088927476777999788877554167363902316058074479995816445291281027570148010325069053198342071866475667356765379031382315331710144214483717458912992827450658841038367314152253150621519586868966021132007564883284998458806494928624565613290751453531952954850220682448637205497796018856600996335525235199296788896487384933033039749313022877607923609709793710851791170204760429092226773340632200008729947061990392421132739633768184096280653504235611013579029785495553723958000759001752917965873914357182489377894291795836694318149523144783640620324437893936603078086440777422667452295448714752930438503802638821827013913425133842637833430334335382358465086075413681166709888459978870952990478538465433966812346075448727411778545407303641982372110707870363799373164526389186916978340352323901808507866443496575232726109248020052466538676696193793138376368725642672832165120356850375631748264265256963955152744911119340490521954449358393908640352231360445211946126239196796470425618338126612327753209091665257695915023280043650327519168713743324169533374588879990413294013299693689286404160429037722797952427028347529736275245907816896514452003811607179704924897119497449739409343264457591376728751495794806575653406469300043628127444683691429412582736986104253145132839029419087841873828997806465853953592942145077121401713328086900101864362309031116264468103420140312767211083189544050911642068167710738391679225137682313373794225366178338351064716433829279926759114065635330430224524721344025261078559784332512978359531267644985888574521419771397421636586739535929517173173681633931295846622380865083937622145954609191420625405637589186427085810491377390975299659434179271223198709230759947282008602324102598876808413693282561213813462722765408070953542585303760032193993528243697925768086581949172386696248315216429939109169441751861095056786033378538062544899609196631197604878406621671829533996544241063686120539007887553917884753746738815353560269458346535289573654004294448464082926685667567075638280967423053104384151603442169082559016651416724569024849484296399322114103483811993931921359001077951880765738958621079032959331594133079490893912777503568524065453145210570689387836635748280667040181753048965860890446342370049390952989161202792785925749349839719286291185860622206031604989646830756133162150036099211675741682726464932334243157080344785357031253751120938661044581133350512423644935682971020813110901173976358075867302743830827090090069995729203668144135208318408027061429103790539606236877839672986457345925832929281295654861373945205688955677424741818964345469399490356711608805096020737908365911739185120455886637189889787161832313260315008489094465191789658616842225434826661730291451436814776989773723478461399227508487391584542109646914654997424563726856378860667712157524422500256303058574331110918954931313617990773229542763853351718335950059547618366534908064266434979544521580298128713659809259700135587821088797402292930776082332757213748640668667255807373503255665514435701016522959495373523099785274788150233249361040759593563500477400135089907850961200803048588566688996324130453242406625764728160248996759002934175741033307561059861008707094079121352907052568760492319906410292731583166727285165770880394247053982482668077373489761394561467543137289519480363324663063263476237301660986292361672608572150851415137738763512387529135348294622773671217001671218433195399748373799974930551417386865162782005385215485231952860923300675563767267846654714627094490825637204668023505572933815642821350318401913592021374567653075195131021745305984397760886390958623037183298006937709264732108822032417131941558177483611414189166063884497529143618294069226516446142558124522165302970814556502324427477224549062432745791938097549229232528192164826277346296963417652927656189012990169854598603049212832175660265692788344202891561306808836088219940289578279061874126988772473699162206676104727464839907597064270944457718448108651314318357406785338317916349808762939209340798705869042447033565681425540130336319782754474345754941676120553632115087327335852234921080354467651431445678598605587619190396851007102134865516692905561326558338095881676223227711893561754626291573984382945952053624365059158051840506860956310688255723060459283430662701382219020450050214177628451152840869725334876957712266509674397657241458675500917844777902622588587415865652486971363174988846336384457461099977497964555312456770060814455893691325182664350948835254142832721234663369828226896826347052564459338244580986581210884143533685812869049984354063530794853613017619989553459929287116089814961453947388519462498848855695109684745656942364498262551507457683016304860313006304931676096429190282386157034011353377473927468500636199604913152741269170490982976387941237605205599662768158862254628730177910441871816831490177980660254082034414862864607338274234270458658401482219073210937458202817085221107601499636030572086171840418295729965911739588969674680252137506611807798156194466066283643048758361584510047624062704279274419676552580673013494641395713678914252829058643558053691277408507695170263966530344963295586758921882187026419727239299656679261746709722614607924886338913661094089701727959343519795994333154690420027618473913891277441172532018876888768886325072182338708120895654501359317679169887648292053840348038957016199963467743614033738527065554568861457767612687714440941987365302253328838753186951022125749806270538364958769854662974995370171580201008037766028696607234663651257300400894963938179587713294614706980824135149324910613985717500052334055000575964843622167688031992730509457653052298344058698080119205844473732326497890523360511534863503483774101607227056738991701809698746196853143506580304216559325558365934209966415249544392626365039088657436572948312094095518671488810794046113354352199684561375872335689181161081281530708092638076529121183254705230509184032324491568543523695673289478746567603260747215739937029613219818954439235661694511940010773859825453859629113700428502175561305129731756038926473566097791672277262272324935310365788916776700827987158402938077261645502723149998933673103083858649041556209177665546533694612946865693889178206948543621775927523677304680716196981158077718968690347610442711636462535774812276382235389603006533208849908692472011401913510760555034536841874943239680532221700677441341802567678871896856775079221502084039493732823377257064942447694575903817522706723705953384956894457986490998749377528853626139547331385460170023642297492074811258354040028551236725175943281782058926410795148153991357017475374536228324054693781266978704957477801119942797497564393425769665993628576785261251623178642418656725551952362040110320406631850593439000348823993818721149208473481230160568987520641476088637012614712374568713289931056554881483392533227627400994279501755822175851073377841674571581827446278478297484488000453949479473890863585927939494044101031337652235651275681437111937037453106233403404215565247065454711667561279836678578732784715743885169004941716143919101903111567555777825936677143762165597873298378099889452380573431397813124067348933397128636395803836727002769752265412912197686171577196970297346447914697810493646350571678314915891287200144229731668960030207250690781139911206174397020362331220224707549682528980068328529743151755402011862643158057361235422702164214364007499731274222602611430526143483419363481353134169395635523833673016807533378096815916418342367792137367386031340872484212794062403834383330773343042432160317159385586299619789058631392176910580580934420207195906026836709893103285637809363160698994743264598783528989113476912291902144452053153954784718455434426655078453192121442658754699046435399173186130989031115171988138199141267765726486770307501678180008394233561500140758975210511294032590793002472060652459188441518491720922198369705768550470361015223280508291708708371193237612986255996365976996748822978547846393781333542827500878308917613769358075846990599767720646173786135551962731077724444746330158376330132166242232459149553340493894862594045829003818199439601369103567440287534663388376444441890498965991425519697251680276133805177106005102422877768190131217353329289603420254363730383123783790070481596647055849661771190689779166446534432247384316380126984072285639529365119796389563029132690238146239384657884484218716818582239144576245425152147394879252862830357875060068958065545857975376863263676498735122274043204732820411042711639689471834067100132336719321285764496832254342155529598913411739521370157445575986617267977133031785683976464129062407325797956989777905303656657428969450489114013808054136598880014752833199780232590700947426125634409580839838033567482409446498721508825017315458933401378684232374651725465678741018176638457488114658890308423491222372892913967329293765934433041171897853035580478393090990774407299595435832458013506171131431127687887942742181292882329751443926490660614847927544230495697422436939289339835647446471044996744745462934997700115998213027729851994225504916852451618386357796911042398862998042215568153323188714520366103317998712835361518312033254343741292683405748316633834383992091791504479559933523219662534479187640695026804567858663208929985493951174692513629351134492033406284216770601976164217996877218790899630532067013672028775379356935490569054631768785205481821719381490883687154231954213492632503647478728487386507751932764251487123478143570766473728451132162618145355633421242233235958644891789458923556361406011372185923242783630568978578904998795108291533036459999848470026099265451340859564292906713774216968650750776114243773102280996921411562435803765106834934442945890053156420359943310902661896157731996475233402953941699570768302942085218832281163137270513113168556189216405413000712057587226318897619825540314905375105734658810516778325188710849361914642176394344392945273135633489857840874344299231109049771573279541385936553971480067350230026602446490466605288350467380348798925810750141164417333984187539209923912127345463388770437651281576633531284606223435788243274655431323121037428368938366646636084486710808004914502729886958921551197395923156940109395058503111825381783825813323155779300213376979587620193621187785096752352611363206096708828551518107593059607107883891546344360081437791398670183892256820210792692274142191596188608041794507895066575171037987480966893292661255964663509457767662206581873929403355454748131389977994253518089474883464430091328773973625498089579764563379550583598153816880553477033979303940477490501369480589190155359881864436891827425715618964675590122780791851483759784815082202579600977373536442571733040124101783309571948384385930036964557375498881571212917798115559799101104117812409361791463455922777348600521130770385344967652864575075452096641671244311572810549575195595687587546798802182652723871912967030984087436375550612790418287566882672161566569120158698935111508412336896911668449686758268847414606052736220023295660457231572552869499804253893860817199136907973779399965664833960314394559478022242788437736444402386685017797435134109853366630534264420730403536984067275241158535431315805527005411468639898661085962289573834207191891854380310149177707802325259908833742867348608080236755682268522687861915560411081518896447403702347849894814180921344462017869966129252226851252565673581267258375288997738446736394387365959818349743981236955707678786275305555609281044738477806763507742861147784323482271930995141431700669332324100622485386921200810200397758830672380917939882566309324079350054663629172452811786105059098144056786006092954483348030984019926425147293701700115791962867559352931835925105358452158373513903466310289405675790454672354157730639111353028621315651571576920957256867383938179594013092088226205927716685876217613661566618518967177551801521315447977439743160749540399565328318950321869432868690924816725048197275405644268644671800858918651330871449100471579919814607604099424706922533256812522536539740924715349420437537222087154177850707071504316114893798089042144191741884801162399950814236217859601394401745866322353366092476049100352805639061926646802058951609084321438499248714972443901248449104409844902695096219088221496938542977646279619169506303842501920172684363902430027309460326041843057707492372548792949265813425193130889469415221056164706802030112422046589080605283960206044942173903316120447206037000079372436791938116292144053799785193812713339601280905299809767915500489094647185049808343002796986486639250709238187273970223614602573704822308370372170999901794112432434865829337404484064988941232131327338932971245579382881627422288984741962268698580052684936938712814209452830586101808805794591670193364822696519810205622850754305035009940032404509981830607083290464776146477680448953159419960773736208911624333346672142195207112275779140915202439077655378544947290200393584171449813873908685914718826209212444377260144586085045548807244561085506218580228886672291514971886160224496083403210587726883801886858190391475496169224306443020521730941070551004098656979672559031066528539333180901628266956119230606259443823030972439372536870986036697708281895504479313619463581217141620523638920933138037945506733313703585094507309081521093712526276279967270851677024432522107221065515396049177462001689084041894058889812350373153703618451225315179698041504878816444920799312409857014779308306025374071845173943089496878181701237754142810102604951900748906193578943553686273327880565071445506693554964628449602949957750942510927036761081995757718795919501064942330921862858937865290068083464628771715221755215550916300156762832740663718741623415656900754672510718440364491155731504499167797016032191987412880525789574350069822810016987187803234182929093286729361486456641601964233028826284733970386877883165817891737151908069101513834422335900271425120626879222776849326131603399547095778478950668795725080083040704206869727876143370413776862939937763568037151455949896201959206615676123211585996144218556126499699692573782714136806663552580516741882010246666935620923523295046111450705033920624675791829531618087820995915661946843549107673461509341154218486760542867118870950378532558280409952300819610913466906154393788115252855130150949595429895669092437284020775362143251031369566941956222238447466107183606082711791413284994264695614537634717527446656649612590820679115577011404951599755178671657471576278418371136029809573472798262076546093542214714426164619553922529271191919186911942309565591501946525945117050854470538557862666890875320480942817184021674338619862606023651749997749339153125387451527743937584589297106605903433392424139378570408685883949123243585726557192769585772013101053430732820420665115018512128578196130741835569069194237369492148077384042969240965315178950459245093677613177394253868878147210777026009427705492618012321935365650357467416951817688357993370421578575760148463847521548463206724945417051387295452984567034113865393846446255263090869824789854496682543066285896494874126062406823128686713731150576617303597045497712956369022960453793086158046330344648839860242708586378878481469839975771066947240286336742145978497549242976785934754026744950266521137165010179455669762016378025796196831480989504510128158606795557658326876925663879629024300962828331244727912161668425722276235409273806327705935868381065656253551213030330707665942810798482330254075514955839721035938625336420347820285606081915336452199182191897715672250214902036424156798210793054666128532430311953810807896071962131052730667882927718901235745229729125159456303924964264425629126709204747812635601918054687804677306585322863227830393629923840985684731656532591637709955650685323958699085117574274353043449044416126654928832027817424655071631332256517656782993056428313886188671739924993394671006485994191565687676312715664963342480022681245936879657870089842785248784592175232572896946031663828570205532646680102858119418284484758238090320162506877984368257006613986156371520804582909013154902120664958619242145096340596321891187519171753163671393744589097117681766301975190237538328811776292696302168699960423426807559960158702421962814663842915726512051833617128213389350208016288346563844025543498163702383409239624514392029210335122391178420437925063517487659172898238921359089153239690086672504738247218728085260091833249409344808493298230262672274765038589185903016182149870600771382513213033110385157926921126398318682491105459426549082758026908438366729581892770139455805349203378830217364807810428761842656397625555595183608153647776728184886206377740876519674129634006870413394685664423833698405609027172389686219630767180888465889210274461321308030523644439220418307702513803949029255659101767046863229414623958798748420398854669262880347172825322215293847262168960306530360366240639544388850371960813191631288496882986224491056112876059325403162038744993080518172581964207061488000964752907402641067145352419366430750321622463887864893527805427844883987652538143832860567175570416275979507297210388056942675000815363876720788372866576597736193659675221879664505352137131121959326160261081640720995432771127759546861054667249199713020657710788520756945977205126256392509218077526103792998095447089067693932395047580085316268763967771653721663817218980053136897424670262409888989109258618318430866412632018910118502565288859172225982693457241306508975509001280063821317469186311913187992815904083480517346438219338503188111386448304132200008055202589507845716544457860759242749954842080083578638888131651843807871772315423873179418998906467068946261771374859229447764564562738900469047059026405182524355605273340400562596406648337879211569378283385062808245493296827620750480814072822232447494046058825229843353990494473159820145773732627821046294060972460848216730495583755664185948129902817411176716373907687936559033086779272388439073527634308254128878412539334365984384543891153840021270448913375502261589411402622737897130232351711890679775159904117639157837537757125492679686607409778349616771129884571598886639441141806048298688180638321692880055722419520562097812337256865585372324017112145287095479365877027207538052360138383992036420900938788882389472315969904527582688910289906100405248372573897777776033101998855107034521960396684668092881487784949518950810811990307154350022384054000357641668117730583575605014266786216029636466718424626919674625716021234872010263687783836233377731686507428847263105077602687325052122525252258317444446673478802623635873380195016550894158838918223044077064452621240837716474632178723616788086989098230534788806967271526839525571104971931841114999646115856376804193605755905407053521587199186629105244368990625025330649769248591789856274093375374530764213501859367351323114443296258283045289538286189173921697826630829438700174813387860743080935853284481220559409125996057063663331751525419580645621420030651822798779877511751631210953128003915020783107367530792374180959032060070877305891166740339513680411500307124746897194843879361162421412861236564198787080510098835332196152262875699391921196220927873035378035565840892810551967194473935492244267249330064567924760738652159795093025799122961111736389653196664490140630840293100633694358406243801695870138934408051740526336771425478892076526615666551138124377764118920698155444778911046898847657861953386071211230642901814973801585597193315440255557617868794964470117140276859654389343972687993262026420517620819698282052514956040267130424276740028327327610064765642760059018537464947111738566273362779356830613166288759018225984569694202615716522807665026275729018946491763475381485660397634695164467341900929946429988208634716898137926157637921749951642845833403067910493491397129679130784802501941007010050045732567894307575362174161275576367822171350185650392818269746436802735591700563599495533576652202043780726171732045249097136249582568767628788428421889399999660490810731868843764092805501563850265592885648326071398244435228986350436754218618847843575108189000740623315753217150555079061999576049925356718572086189647180890645119298134311635483870530431495657372703390984958920167951912930873378395385800189002040421872715052103405891482687858655962200718900949218720911850223572789568507254404740057255158779007593273164110249253234645920853653941336597223171243824908509772887048080362481116170309452009660373235296632708450059695654659836782406692678348653945886855221406416225828125871341076831670698289564593361600312996463094411773707457456233281603253931385617687050414857444120887747148929133966000265905945881962989069706009440443782463775623730068086070257196589296117472959643689386446040811247041838442932377292979601533281115930521951793034274110512475336644316719776536103523171978167452868799534983345135587741532826335505439340108819275153609829793075435822267241262885207914365754477285696874423140802882815682963258090749457807943212829473222431841478524614919296993463775521843918567833699681488779382989681534737792833876316938919632439480594646966837045598241579096284585742327296801289344173951498893817229582377455153092889840380513184176311649513128303574374590062009903828556779502485118805395466097892263045472257378858475955618194001578502728825857124129987274651301428254770164980583054263599510671327087855172398359684566360698059570753830556433615649707300361557996238280286877111296208503665405700189381997231011980297004694014450923094974622818323425593955907396137359273472123080528608136122930915777354044727639070520361941455443683388463011223502972398350072618419313755635146525394872021211058329579955872326668936327751281320277872470592330481249707975587420321051279616586932850987223153339269673679644197256944972525694822661161807886028726914050401545602855265843557677073539201376566860159122199311143293942962043719475864289450650590700821073989663035086205124523797789276200853212796330059333234074113174702693457615161484550970113725676736914904295847531160043005429232646493937311747897464413728694748126445368487176339646449383222353533321674062728020378405423102004177238463168273185334575158442955452795428372155498650538972479094471242892582572438296890799473444124820886414841793452032331921203880330685014591433561918464407260397672940961280673899893856601648205259781031357962173499495273634599159155567986062908796358224891351252617458350806992484207343284099811186398960557015581967983937788194976442343046627845711220821871119870170352217989454105349274031719770500835528933315460116129555564690485347494435260746476038400371145442137412214996472363488285859686775966052139819927159168663416224214889303933953891080958748452172861616915331785239535512465783234922456957545757934707623377083542971156590657939720046359139524269993423583730934477409231123134025744174467415026556955702567725174191582635575418120652674528596736784177468556450493585298541955040881184482021479840022247003013694339764568495954564458357709193022344512718784461364967875800257699081895196110198110367601056209801218019900892856878626952739350997454623795571061484330764673005249973767801411116263152695472812758141384358576245383232635345717082141110904073404349348986768038452197684248428467472763507728076036888577778718536865478225438673675914569126288992253751050656803814320644735532419667379622223977499837730853767082360739101209573700916104950424988087613496363632416374478919299706062227263666911107672962331241256743883622105154844815470156686496150223925091864385206985534354817563402049139101576918961603684583335434638753831248289030983174144957271832921050841340914449984758112026954533563150492793108799811070239739315871478750524343328300463456239807169401555172856698028169536501003217853881028986718893640723671143366319673094985588428569983952437706707160743339662363368535500372789664488138593893059372782832313344734576175564292368947277878674923608383781139620258664948580972592404882883966102299629829529104888297102466343281488293544972874803737795417164123706530925751966337255710329391481935909478157861655031750358535343213246827678192195298602658860942818272293215867350809227816612067510476849570377185779080945028113795301557321374088572780072154710141088653235537555026975422890095415579201651812536880511755615056849374623608880989280018216086392111858193801471574702145053590491787380138741265422276045430698154994829230998397158321322527409207152237784114828037573648089470870566133150128626467512498848573527539966237443599745299035426017399449988076494212614440029882025529907401991307734773789262556186079595768842493919414673523878374591752349857680653987503774380951680473819477968242364932066739532694077035016420202834667672708293542125609406618488638447422679811893464640068437631251339664816967986193301899904078605375927351400683781021784909935064581779181769486357741155273007848325032747850803068908463504204893264051833713809278187481825750735499118665157400240566055743327570283180204832915930319399606262656644459907876941164394271369876759447756763013703015479273173399531561481151077430489443599642339495372289463900072718022402773396728980134226877310620199582328325871123464475008713498989418819945309850820141264449216105446295070371627635312153858902726313522083202018764325185545747760700040717020488575941736564625892299273523603206601167757465549157773971151498119918572674143196477362797029900888375723766908062201927246925871176880599395630662649017768494307605836017889487171986293094571833059050492921899030823147646916413717958847317484743576755638843943779179078479701917928557426814238227229082731491886087401047042846549453794474570581338151818008382711721088228776735485934329117061948924794645753588863709066118062462059202534331140833456885533316988712886248066755755035245856837094725349983549165306174543285190324711597809772729275176017731523886042321327148531993322421537994539788111861361595170982081752923408402045917284956475055050203120228781268299373934734529913965233858706305117454129584690561393516300956959356849902824065167555974444546980160287100261700635786424551402896892230180825092770770930102300742223674103475249393851489812302349130346432237427297730922702783980781487165539660632806773668284126090202269351765221248341750845783541753911517158461785818548438342303596724531353823160427879150817971982095140835669967098265073821750618834358519776332201583291894299061674441308536582596538403990522234190752600523323193871680483729840041403663245349541280931372609512109718124752191041030252972702574737814448958498037585566207246072866906331746675778837775015385221396022598456330837681302861987646725716597737025717712189494336174523913766236775179224826351264846605306283739209895559857150727406111584354263119508013677213359329939307998337075056503145609298564194238067125822399220529251052828232967573438943735429354845221288671925227234446069151225445976999221619921809482270592041088354286584746532428801364865512221270466274220177283055058592897452304202443173874198730172043687623460826718124586723875677793158411581686189686677797962525322278897142141625138956764485489861026097320136476600685321570773477299680566210688863407400235956325937052292378423919953394588516197426899986900883908592952202622611676534276022079524984760197813112453580292717374314754479368079083980256160753736308063435093968273472176860902164669384999735034008573985026462614871353389008960227069539753693515407821610854568871209489945266883399512076907822447862569731729860652014527096302782466982180699602408942040460484681896714318973542299084410779210570145304094537103399391201586108241632898686775117150756905611057822689489019955101553433992918947001111003431823737443486436726430985940849017243668237123510277769962963284366608581545419520633154598248854329324107783118327923664722393397851977903590160544485224488461398795520870562358131116651756642673216498477231404403486038154222279069230864804610525460953258114886789468170183550107982441708445579686184106102875435787837236543236576026134104688524620805566658562256430493249055246899308866356110712429664737458615986298686853906282402804528869898149176392977913025985597524202624652917421627027202558432111682440592476281977382749893610779801196865994470438233621486499331162827287617321243506171391042414269353913077567776708031673126794869239246395377141923156995530253603318986163205837671754133552221864282832575051838317123336641910631466288938752112719432557591542744976472504454533772701635882503958088490984318692629812574144936610191567086116235046693852081416281242688668369331276511169480581963248378642136321568614661229501031702979748128931418931945100914441215254950163961103021029432594329728449120193319334140902712044055164092078890604229418765356770146226843486688031873666242723024612147809506690307946550311983158592047073611228793779610827656427184183733915808333938394219074288214040803152445475659913280774344845560032303577658936636311928947382584524982330505795130552012177978468891481482622397960946310123999078111669174067741145683823351369595082389155708184150199619261960492522044432618203501298049101651698974726592462201755843390030812042670999316368962590604876656473109056521211663102244715776425248484414885016008524860428638639607439742661998765070331307378281410951282174568468430696890512145060823091280962134584077048759454986226844271764228539668924834649435524328221122451284891426944273426450147048773992410685784566405937220704102767007685674168830332933913341425956495094059689113385770921694770052689382371551119988333896211319291165021535599463166418865361258760701162297294855540229353190351490001363833246771597207202132191289595253322837773603889277405003135715254274572350994763531164063076509082996615432706752639968005807576636128529670873891970469547054213337146608822636212141002382291481094667044881772562684967658876011915396896489574844797729014998756207002871948303556242855056019279088324879105118493278982755886865346579468995935157916482255823669446154112766355249847051350399911424765140428173313907989825256587902041437745202290094038822687124032745089715468601461148537222099543186156077490476943381632333381355605718535946285762481436068136169668441586240776230040342458290252477557108979772746448867314821584827051438630820665292630341266311175991962777294089616497991295710481622259890566594239140606587013727094554577938948025461254274093505520805616491562937494001137484524492106440308949594869350915677379124676041426949353716472630311343018052984050401687548884060789942567566842927498715285451474329248751039472357825875532588832017950628109930908986215805640246597467151748321612359382877310726583687106297948729952218842742509587854716071551392372617041619882647901094418407411057478682120540226666035462288603971643579668333725790901851970359010297354885945046315646284157081036271703343701040109201729697938235228201910753927272352498028139907594558555443081434589039476761777684906600286971773784864943603797506061752811669993974233314322240531305699787408620181070114966330758722010282900523202185472452450026248542060151186602823061253077193455869424439535836446492468775408787380460723769073390589037903253562146332428319693953130183007701413842133563422263682034769895501986704458954505588051281745683942431673851273042327083200277528559813134225065088007690788871551287077585248173992292319892289225922916334013020738076982687542163683764347077393588231492941584211830770665724681130405861541795718751617589742815251011788477168994173030366932133537948779502004746762044416162274428418704808664210435703889801233419503247838744424210019933017139388451950786293370359675049644937258378840670302673056163402550171771832498492423918881439568275241947469124840610336903649450981903036492468487069858607957120890815599115899787460372686872548847372765865855922646498495268634891147729241941326117201877506731644305252153709365102529780901762060981369631466587055470177576882936053077034882343848994046543893667224068365979108215974777716629909388925471132751960576757152876883802740643674152582407381390814268473210500047019922702060669424114423865582535431456207232818602127429812242832434492235434702975803555347786966110632883832914026663449714632475017416143375534911863237014147704962230769164596174718483909770527535382626775751472627644336629837048623747498298801258447116786010802201266907518641521584504150925434790355040557942194113186129995291594202702087113414918805496444385435443660225300821186378879082507807499800507077841951277906775053602170265566211815249119070878158191605271362201914070510814376988119843856702256116648820925826871938390964559325413647819115251937042253150603189112577203862051963708235532528415577587332172863820671655536686285268114275367063373525610003972126491182852799554681740957425204619657260740908730683846599274920403135379720664167234657502079327342144462830772965528553673474556741083792157691572388486863912392551086143505498760481613469058830612966191134918358721981823894988810737951534978178838341658778676026209433434175136182217740016567623000518439136714158458557857578901210775669944234456742772179491768313740688009926269185138133306520578818548649268212600353380003623206374444551996071809045595263613878280462768479134796922774734781753325427995056546752874835581886110289978861706660575420489129446033527817051321859588979127772788024308114943930155571662774600136274433000534718323174967927611759673155432221788423187739120044040102914115743745914681307811530961537311021327403459413505137809686425004616043518548077791267903252786416631458053096050452538366110122747193476103702971723790369297776939281132782026331732889694127907977954707554564866611071443347155299407435440904184763606232635454085606750495583506897812668984500956193353913394623797891351977972831836585004619569412110128559871985644237114396550015568298268407167598511831914080159968703702823911731950331227935712234204265761606938898841822662373191166051438521888619057398613192691679297067915008708405712877560036199947899426455293908051866921615568535568609587347624680443953748546049224098996139323369488628964366750887803245674790227317911236062890256137482351642370136217252819207959588507213569983681118121831949722786595336557717386464959218216298744546884419772122046086536746589883251610942111012074426165234370454803714168113269629689667506294163992361137472100050483195377414524887257581182359525134411584866556847709221316246258860152935954236482288425602954057717316498670323024993214039508377812554601337217522767579629328164585221632031197413980379472695148427461142365350234675441911928856966608866555521363717657299226712237954451714282577027229477001565358535721860378424174397076431685230225474591567104614514915061288513320031506275401141812372990409511136332600767247597695666283161568731809180102652564929017663321131187690554424661102614007822456707147708333036552769048849001141875016986190060778957612838967694319444738368692733754237301241770195692307706288025676674078965525475668994813157787392067594187611289292207583660206787777572933618468378051790105738820248477855998679096035348542605564678235554636152932147823198605662274738960371074024832482230056517863004514194792058823651732477767583446041837269650284957715243193454276213913416593532528813501711587573449217697812520098985139899571640154554439662474052354151525818713557543543369611218375690547166156769945411866214418965295661913558933437454455685472566971421599031085757911046144723672786431479661077539373969777959172930863063233883343064134676023560348785070164367635515070760054274912995145871836327302893835840303595777271164639023735158354365760093002955000774666286774399450776394651593580350188249945666704719472579464443719049776179889375530231477459048914661451800556553175683817451053675851354869786259082816744530164622424825762675744602823431644959782780871163341895907925858547402837389608175879467189801172327375024394139319026880381117340752329753463477619766005257098676631604339362197182342229870495040711197625623170465358276109082835414837581475846419534397003230477357268857957983034450579312496295202674171282723463470759976981782096320609556224736463454353104817574577290501201007484347719452094757669456174763675391787625209168465878659491966715966096379370041496764361066431851233765141320285388944245110880853153961091298691176430059572350374749980847693185988460961171658193157624096978526186831972395569750324142607182098008498777781943642260461947366749679664502151982115803646959165627604886605976791338373656585651549341446303224976647016305192482622923008398470230213106540190579785952867474042793317662216969188046703188409098637605881125038861801734820979244344023852486002475231585441928488186586489105860500920970430688405837209710343819044422684900639541790413667504907849092819398973549894967570976222284524198879115835524067633042096237732849068693929652065062245847342621681853406371172914098173253381320096685838109658690966565933510540097171780747591130151500061914912918718992267132256697856649156187678157498673690560565239446490389079057314922332445711697741321944206467544590601329292587345805402902847218214682280722352143994304463045084004801465021420855524244996084409506333173962571137141312792343497345511833119974506580311989997486682790996821056225965752728548171696291410097324115570446023298079586021338064762610697797284013428264428867201152625219027881254875232916751108807590265547606752958654439053561481878329053631653219605977987918429681540771021186674824976527768336769820879228282888278771087904653354242245604978613117314143978574358291836551744303578191953285336321616997741531909740958634723847553526462976829659496395475625342806159724803168618101036754414651044797785254155840317862624509237319629317434904583324193326170671800132616605673778657730274308556265401190383113349266301347332844024233488994115726705006566784258639570181673381437319020107533025251253868297884619782069642544751417012963781940110986416011886363311437253198371207164428621079519731458888577236474454209081422476785905586247166739714884241030051099639272029477512747127469601752636582047856641859859867913721849610371927354006986481486359208745440436875670703470990345900092771452380630104655495531353053881180114913807575331352739026257009625510684710965443866371438406348699147844550838586593950553019661818200048092979558840266764581347956510016051740815075776080442417139093973948478891921434396939859479798883387157439201394510895169668300432069120015015676261157894399204488401005890684026362491559224576189074970417705192778856148738293693454619294642694771540063172603030118532414551062968441384045460090451072863035332641829334127735923896047043855428719317000285897172351868999097679862754550898526097747605005213389031590020525150031728110496617213904744378537312071026712327273061286700461057394147986593025195397914129851016442813316020314938971033376347899361314742698634913562504027712112706200455616678229592749781480395266474878021485935293556419016483659446643278471236317937984593907630137276837552913741058542550383119077840243285305588964550896807651968370275604572556395644494411402244544017396030483851324321107909983248644460638671194000720291691413017398371299942486323501878232052600611187820990450383004835475890313212672374606851859630803731077100092345265718642665801391107941026693619840236975631930137202213230830227644917733494873993952455609391288600745022418804018204293619273932068945515347867784157142501252806151115380454331523221930775615116196927139350322852587367370442400322887254787836904319650831179791645205458375586994898987257774113281550134917748162711027356712396586693408769231796926445315573562974083525103088321155968294674355209544556119576503499346420869118076575936018718004238985182682630129714664012462213551179897928346485017321917790344128827142541303248795445734353638211045009604443213029745266744835582836486860668605714090517060386344701799843119834497058823137889179098098893079534390941749050870595775093523617400546535295458789021093664803618375254011701553350306084527751204544016988702831458455924257782960322540691428314746315701280024830390269781675319069452024945466079149050661941689504335920978514696235629465527797429554095304712330574766934692978778461211447407070806468356521494743734446038687142467532317087124120426311953950164048759095914598427810482986338210102129192182660220389411658411316105114365532974871705672418033978501311311536118257558655500753561998355913985971982285574245416125145474240191635487874609619842911602918197340778269681661951933123634732254463907984163286297862281499539598388619723948246494698179336953470011769586008321309650485989509989110078021426713704630214678225361734366793011742577160452535634033773576567418498174769680272819429055324508633125064619786935782532858809756577190935154269406704634441757791356999344557088391998591100188570852634412680496619183002057940598716552204271881558742118941671528242235498952409275715964841289069650954001189504653612874002716203985106236658282585180599651118983245840309946485185034752444609576982692765849535115762366623381982975958775317968983140960853851377263125622149135143895048020080334886262082091394838982157174052680654681689476528095661751342821505961427405505975367589298926389006183663305291207644014829851018808964581940775012373555689727411044143753505496078921167347074556685053775444996307953459910041399395864825195476051457420328391225431514566235294486190115854880961626957497978068019658608200411958270866661441385154858883859109214691620158265828936710805417690812982896391620372381781293707572790347343773473435849416765199491812039011071308417218580915875423238229271390552502648424824601660259452954837431976665729356691639244578477773276243335868266832929999477007810857214196978768576248957261521406738401294565706011066685611824953762119433954452588838861131618139898133515776814399394153083649724739387924138323644609531894664425296264501791460342781201883974804974033538651499709874363476434965085749720657247843810554443206404946551379615401460477301960019728998484097786930628857154748686634270516633618494079516774238827904429126348883375784108524090771780203223324923477077842951595419802181392958072918209578822621347139723394966195230376018868452621601229053053597229984692271440903546544104009194067862522809649587598954404556764035669877068440570035762756195409878418002984510041688726004343112978690432774204923001324865564884082011373365734561365635092908072076099739307813165991156392974610613837150300287450831455732015646546975877270359413377319908430144208040545217178414132111760029463599287234883269913364667813354830634623475221001957188857307602360616159116993346153556066998971670189275796746429183954873801265662941532547819809418518464479134899042762878623597690746505949202794960274845677583842450471510842648412420798864351003304912373661756527696181727089193076207601871000745498892737785374501810564372560046401789099244545795920057787310471255900170759308124315519310934990538822761482071047656629569061398224956439588217450059725879369779102809074265161765257630950400757431010221272035024386917496773167794131960937149358284544255143816435525365596943591596838189359273962277913023782480499763281722128424343475622767199294030589222598975333751085197288708724780095799675539213255541768854382383526968531698967343009131841082337890970805415491033078050010415214369287104588588668434029226380296852135104535836103564559976609052470384548865142502468084189285860905572073210685342839417040186419427994571499418482301887180538318358278767398995787932600028624145896701176352216806727150006460558338062278545962276845562600369903216191748733139864453002480570778114963669105233235936360848529504730251383196961330299326886337553088264649540073188590070232259908857494903010004566706612644655364303899584816814811821391921146535108915513607518177286185537426077334003728553289554765451013639543171653447715654544988808576700579368031440253043608197557348801954602874698080162726781655401771432688359681486174015807081220741145560539542861271776242119378724638741903632503005627193082659515489648185777752068620660457144683781168299258090335335177229412053687075697921611151910681704260033042936858781463873713416967792529721170619468653404535520791754766915443771702460217236131193687346437144504352410377989058412235702866171897470505119120068350198629457478815038014326559856900533614286552198188226518757848038692887763544278678248191201812060785801353469940216162375270397625331371870561572974339409363215544008328787157822975330385841944843140719463308896600955955807557699699369851505826003518163465925269368035771232688840727001598926776033608178841626180679799513620091033534980284826818527956714208845712871581225256896420787494003154777955521309055556404362378830614566337573975027436405350643232593212110074487805151315837970277797875532765712444311807444864188289214526264685346206701917864182075981460105801180246861920694756032283311178782386361078051617294521053812032452771928495999809620178617233338101214680484742827944948702369923244031621651639976709262414716086387313190228289945122991441627689556558062466844315462111696177740584908110682361195045402993783978746409913981637911088272471430713547833329039506811678365616915140136337416855625106277003478135617027441974375563139060145915634262083115368895240281241827602934672583463689266899588882126143455849991799929161642165447392600324436853591577135389066966919436481794002985083554757663720368930476272663324327325553639977788104549814711308267013669565719702275184719584118227036103710311248066211210014774140755784879712429411235625218544968232994615237577853400739353666359468973701383127525298597369284579877924338868381971641442226792977277175512075589974226634300684497329856067877075303583531497727256684805505938761791058964490787387544378243317421829596761747534154476301209219350284486199523756229234509183510694006454843683491650885483000519517690738740458245976243534813830035991886794614591075469797584227714988207994026916870404857109575729488388794504881126243212141871927184304818595408457081766681957991147163838653651324684516319503236669243374249822528020620613082780038029453369751783522617585190379961317658609079159107894659279476800685469889724770806532357104291967457423534129535560658503672530571180371537342000889507990344878051728158449899013083833206749544083305638270960034745438540481552239327376486278571555795754178751439094448669953355424583639518569493472798157953786146592793343510963148164450682124841630001417098750345138121821258888959667355731725569931632931529191347678465836627686543153728996537541472539608171404353400059933803045373076459627435249974355918738557187222371600689526944788904575321927110471695124649917529663088795496788904174952041704599206181729566567194893858401060549349330088445521745827231237153607293131588120581226649302549172308957590199768525381318385470383027558174921420467683785083434436704560855041155094993103670841225072138174457984858115750382771365353843326886521273739580208139697071023789135486315317396668931153629393197358372451147221958732123713264896197199408438380294047266605050353116510443435917573454284224065234548848569219899261815841368637887498099034432892672494792349463731679549346029041926056668699217901452138009206437534438496587980633021694223672842864380870463078060407631886556715381414099869961761163454426495904957265128005353528576484982809879261841652127845938800229107569402494371673321224518857820209540717555968651414024749730913399792987510310683043186645397977614750276301311455730430183221269787022540606543044969334681841243320933121652767070029778336016157369143157171788404001315858369874022697787523740143123849880547198117224988962353140212407250104426924315544793518593994174981598745314656360639976922404208937626292008159238303624790825078194444539917919183150326769742040136968060579044223063549473988194354496835623223081270177612912676526977156847413131712091621375876997899427430257528804605102167895713178620984356144023292229394242527493155922419107840964691779241373069507490437874867589010691692451556520048473438433414421789397242337128158873800973523720658716146379380286307705348200739677855605087571065008147609895022802703615008101454593471236621323213988108587734595641769197362685115770375705852749581499068832566518957302658172458587442686973103634996744271742942068337606647430160355077636034064423082658162986927774140340502217225345081667002058564025667187289228844875373284625374995584873664631513016465110897089517433006305455597633814662772488877174022977392581884771741495607148028665328178476297034345628887929086263624689863096025746348856419510508055062956351103709538742897077857731561170867680342320809181947987861069405799003802504976240411084123544849052755060272586674089963262753619166863249318185373766569386046308335383760919061260340778514920556414271909432892391572865352906488124463724721147875958996449481482982450257194996397095585878382073047714435150985148799601904962416309728814239369721904440837147017291102756067243038257679691585288998939052897499397439421195378474144507375128087626958356635522432756142072212143958641785971291512045500708489353094775828290910955171154820354690182087794086968314409455509471632052952138923187012527872995018559096718027642935435361273160189707081318051543850368500262696145426336882119231983624252600494051733619449330836090156990890623265683481108622086451560345109252122165998096887086503930047336279715581092296277076842117559753272243767285127828204482710523354145022966098039774612493186310221984214367204347870586000609710181289218842405413446081509445009366314728364401481934614679037325430417557531457104102284940384976433594429107226436315531634676929760119891697962795655942068496331942845774206774534966143622312862655001317348099419946591023570397090114496699036360386727832264972241592308975670125077291832746342891194830645759547547145650738581173152277763896411774549580550567283855682105961522196868721261146665490274130645531976044481094797357337250061735881284642055696793725173714925734994398633425828714858905790153772222540065188669183234412287829754639156392086421508988132202653637768315282704198590284346744789932752897940584300389346753754658280310922525422693033372439449855879580421790408326174059628148028394544572012429241661163764345832391867315256442913899643654239452087511659113134153600755758756413100562505578265004035269513899134600684431834482562571133478156100296573150837240427260360273045651455115174300339690533623186613996555834076499009227364498481139821478835783615980978765771509356028355135009145660108135140871337745109775817033375114206710993152115098957624799171879551406381334699589836699402967649351179927153461344265835982498673831153137040450882336495428110724872414992497526947503554827619397323290899142377436605046751884250819448508160594895526028933893209934140687952918696222678032310086503384401572007237055920435985632430739195485397133854925410890238087689906531661646703095296905215266126866026464263746231652632419250876264714550611433003161462642381962361548139752345159770870165258225699966437807400266595894950784435197880422300642849977948550999863685219481249453431978118486107107996693996441506315748303958185837332183803339477353827417889402084634623611091044917177911539389543760383606407889159981212853374304611160980268149426283391456763597598928739504129313163444513309392568005519659456252383993932923461953948457828582383938694897416781098307977661207109359189205726366486173702180504323047184741891187267598702744631891029842280528510233972563035371340197619632856367755078046846968838730815984960545080492112349706318103107416578316666654953081488742652254008665947105799836028620015826994797892030870001590110289894492923986032114800327965299847390726718544640280029782278096673199960839363733188996618983559448500873256929921092945275550799411734570021595489587617579745491185096295260996187887353261031254833269876061616067800437908059231955081202840222637812231158418112062253574724050652249877247183091816997660630923879798785214971490271134064758901813407721186657159844773530645800033726793235076704871888452862199933136131821359767701683985248709638407357778702082602067820359967192242424875362246443489647956833312794147136775082068207506299543101039703678346210135608804493696465413046444192428454463003789257531798093565242787574394573342878183401308721572517745978057685072514612268739734801478635042009736618822696469788516138880254274039397689843704003885659680581676977084289113122217846800916692288592908097153112537892419373314638188492268398704429066317059985887217040011848742872909715227836139408261470527535388829972062437405949005588623844449332507516081103502368722503601398354025060128543084938012116072728767593409073999850190457832215316179314850636132293649932061535738731108967171671402739016974961995624303150583762738787071330847309913662954084593473219210863638316320304474256290445288700475585424715115140848873548986899983980229823617552728980776467583637442044796247302546057724672070065365522767702699811338335126703793840650520082389986938701631216282315823987580439534490344520922782309708729630692893031570636791347834923945536610740811685856354358864920858049502204023157945750780523819718870303397236439622864240439006114608028707029794806541341006065714161609464820134066092400618322719988757653737009551205225321932167416976946352005538462159969520491173186118623916669143201037967538904663609316788413923340616333916282001892645412151522706924427603905165705099035361245722998203401426005560134515246365699994739437337019492143300936337163417361345581847565396228500037261552624166635642560498731180509080373559637759124755767241101893919319160447935327407787695032139992266409978040167281898835471781416936663054832524920753200908171490407429144983144427833853525765978345795068638603333510553516300753462125351625164182454152748724119175492262977151949008918991747040297501548140663997233031461095861605798841973392540606603933599429881124192773502095569550411804646121466947073821190918881399041182246524970861752917486347168562884797675952916084103154511961563986306181774733275640892125219419779024710863999430884990955847798143121123745642790848818314230114247438897720932470394439671042637772780217878678713024999358112293676048381752972348554281294999669138978190870003955278470397384152043532282907147832944924378272029637004286435372357447605262445541477323549784955852633412394524455690297332608048925787233125607740664737385980023390873104090469484240309560935835028155394989265138073357608911303331417058603336528526605991938745262170705227200348673170492005160477517777665420640874711311078257341701652051514565648471025286712486673121004437395371678692756343746231666619191288586503434896964406522840597201328179741677120147295887400930750319470842272127590902209114128585802738256744755361914339592493597385107305019036939823967853092797516917749023488941817432465815206626655776110753694612568672595071010763584890754934786918838603755312361720353289338506533731024230118004853307900961057713903252605285758360095653459047327212407833717604603901124050315830264297697460391745096628067004013603073649667296631365780074228206143284688126593224467584088072687838503268074011451279058211143820050598541247928456897777397530734441825257115177784568071227753692894005379130708362446614617135249755547307841017204346509783353193870504546604639612360238504223515520322076979615870395682004569134577861881752931740003161763621560903925654023105791700199732974805695516257718718876929539011638244959645814789715507364032085567737333152782477017946215869840303788794882193440307612352875263202791853039122435746566511137879954377712415587684225988250434622015013858760762582778502723977330965026931294968494681221965830011678872364842924280539073698300265982986916891207747154092676691591752732564181970760895737814636515880648450477615143686916658010749231825159176148980049304657300168672094601434423289620499092873203006680399054425392112132009924264140904288569316330131635106353686052519957379441261936336797810531273317513021357687579664314363394051402142772570792490897111760328349567536624297525942340023187096641360707089577354317547649662278296162394731529591919096602104246340056325705317425033328016247054146455939835409155369990487947599868465498306187848795211101193628952813295447315598312216624358456187427646089993151539966765337115348808164717061545932848040389855054893618785684423523527473913696947355697762584327438239415322886877072217035296672331154066779158952625384880674077398180437823424907556415050548523642622054612687559224596265583253397325416220617162568791414906635290059929523104901517542175621572492418250022728849725617559236026990461105352494333380365630657051383708060620502470816857713862416306025299008147256075849143852723741869273450054806872364856546097773315567441695310417956587288621279202897678727686751163173571634133730247502389854664972404087773029836211172970668755495283326893095367812387684588590895971679338410604046982838765355550964629556477790727026527146228709808189978887129217795217389917497304525973611764500694280106669830476331027372800775239189431954901240996163144828571911883336821127328233121254708754558554413638440457614437223540929526630382538438488322165691798408491249676564729147429278465083508407153462911833461057373560919467162980016154706581543042169042580887793164956710563868738105985280322439139251479215481092465028797635102055245351750738832457883448729992238414178935055518566280484839028835917639435141761708866208305369780713749179940324296625365047626163525008840538733391608329838047375049336231199633637845600520113995936275775686125938656870240166995784948178295138654491993564315933957850501107652153123105272205946862556650935908251413803444181780935986560402426348933672657809244111971289232273044836503981024544598380378012019942936748932073023862704432761062394177700823823671458639924537706891297773465955418118360709543640304085293005497332632951311740569705339891676483038859176992996853140373360558957451119963755717875823298519692493418660897330694796002141941055960101395832523200934678883528946733138588024365903158306359025340037977198992758726829084645279828759800167214749433827309436219377045135268229399073086047544100920272602325728869351517069888947645693272132850514892306499925273089566012403197745716979760251468600534401400166724615350916546493170433013936148129031268665786097851048927714927007989179943735033611040054244078629239462924872777366089349610546040171001143110797671348981293898086606487787381266890644095763520337602423287678457076906366620417797176717265146228325749321521467995147802356932080717291300315229646504557052775209081557254112687444726088023134752134158784981555557735131081089536839282904020716829760918905588557537188689914221070556611243316444562791212205453051742641605322032437671539826968425215154345674743234537277350718327588233226836446521275116486018971710444381153202357001687817829710430870024193943030341090263165436281091892375452045057696446474258018075484757732305915067871295174376679957782213958640536961063476242282928491464833610443361637348620728263445265831719361926121165588550149822182384399494367788761334447138634401789880740407319719431779545644173333103870475569662359902867020850450867336329927851259237416391292871220206543180203106378809674276374314686137791316977443308279461121251742614458950905458331717009285638065131196337085634260891719007005495726960669885767462489775592393007817278686541790573579574912332809547381787412889506508644283342713201314455359271785392175162921300025777207022407408518771558799932180346689890030874925530734478726915069104955603611903185299869709198353397512606194641002398364329769770304083149071886523914564164656209052636679529813509220834031174606204868205625932496364495750663874578043064614986273129262139137235135834608898765266462529410604283384986074070319021302140241979079877243662652354304306357178801071445497238497496886735075746021420227940552452582711305844603662260625319360909013313446645544534049781520205676515895749599766672197195586688193327560027394760777059357752971664716987212977473637239500699341979081683283440970236264709132486399522490608609023964696444697488650052104470776065903076894217996020736439788639092680896746837155337471519432461613367086084338258543764801414450082206627718654635000956174971228529114486176502000956139991833674237072655098752016895439041237299727276586426886396283824637496140025971135108949777082304689228961133313350386619751750851394479355543480313133278676547898783844644781766384765947754369434098111824876531372123507771672835251958880495633388180198503333046660124269853739453716587501585124756159450305788111571459309015870653402541009890728004287575666796151961991835652382646032686222342773966939767470482137323494237254131041482639376218808456870629547004750710380177525348950041508208067157379896702129454511829259497669077908148310528235016907998964273048349507477203160442554727350216295677378477965975492430633356152098647634911580689132208421693375557910902158550189345817565705068399917346649283670605431344108527745912592472849211930900019175901259443672780332394671320395478152166944858736804845701509311160974369039475550149472532091827569036491777606139764144491174621232417394369087903017847824041363450317996462959635707567595015012382824415599062250894457898142646150202747936397502232831916390278309734153945602025510697235422434438898439045941892774475212198531509802140411938858405281282355888665347130844053179753677615215516266170170073861510684464223357764108987540132234183807933439706501046761767824485696242449874612919717721559177769140022637222696265325995985894442562066434615168853864593886204877511470193622768244405970749512053220425132640643865947170293490095407022660957658914940183725474815579017342202860025537997443383412367930371551137431393472214257682485574803834920647070519818283277349374862201257036654397229996850658003811034439738270855228628048432908478412938681726512958711615261854292930416695385848516205634446374434894546239456232719162750295818966908516893737019429574591545010464976093044700337034197316326069405796730671740113131195508110637399453055649163300395538301373229004413761785590107439739362962954918398949420354789094184704012933607472108064284340363290758284675283477759136990732576906297628462092993887252209631356250108785656183507056673303120753600414391431828285297150101355093315241118938296599027126650819307128567808677131678874110368578951508001198158962996787041090880998322323711973638149252208765312269981882891518768688056820223359861067569005289877472675593251657765761575121766247715417964468015856332588799026388613618053370047070297701083303024872923801745393641451945773886429295477406436153177752327486851195742385537037455400362452453402726517902529476809929846726198716739141264886840119542811034572149989913142756715609976681740031119521598516913753882295730300715766466220753077807026989457661557995782661792287411810281793312539250467532836970270014341846969507829103175958044944197305784782741970103984463126875485957408490620629533541968339496187779344935752628781856057429212713755150449173085875087429192172833529766326092881309667143155759976754989902715140068574524345679886896903062766032476078878514752790827828622629628953607357439904371237207546425774387662949762657393832635194269251764565336906755273239925672778208838930809730206318536672619363131272221317029599725653527062940936817766018926938534705604615508927494727219236638480689639573756905070434809045666909186558148493035341835344943141821146020492338624803044084112979404748224262010068156713925484600476440034011770411661563819396179615971724104708142195938176450015881195571107922940896092361799179715073789927565927767882464703433458500188012607599844924327205444870682315920904601406885187712181288958729851008052312015641581158750895660522098112327839700342764194505805347661896298847110282511266599301274485820469617998575367411784891311129987355369615320831967615825769928678118188370686126433999920460838810247457932051590838035113657649842293410534822546939746204424215562625588028193926649864583209170012823941822533495920479103742696787197539893137562254024575403943892152892862781466730928116353794393154650346129805069523797703745583958574978769083558032600958567725946726339433963979398733286158570115193972999836777315604457312131822640273554101665815521078479426056544793100461998205755762224966617511271486251666908655730961312737897556314801499933662482387785963802346006327860386616014458240331496518035055110976749679608335190340567982879638097256352553300029919999992731896687800077517812673481975377607815313708309064709094601884172097405547757524687562826052006911714192052478460349145654638329699191892508002960972498760874740637843943067903649714953296533170329981857144703216109477247683491008007985267076011196984537875093891853192358367943989968758693399179411235303516968867627007915415534512546140996915842392957420695201714935758284991365777311004225887675441813879686846165757858263277380058180954463869109654113071393698230167917692365735503406692459736004942741137532807744143957575988538026559399176617373857392926493094019841149427183096914742075881722386517426001684966350759900826693160228810254004365741119624659397640978910864384038976408459427795808343415764290791890849494244237533107778238159138796818006951296241066513495082153532933944004604846469099700600492980590565708321568533236785051737142640111271557949882970750686804135203866187864936201707025576332382988500709673346381432241607669845765743670719179984638203017434442654432402166537354980588722712053148425315476875048919628413369486308944320276711681874783382727502840122238222967676238963739498503764199963133480739059241536985394485825802693453660300877905240148187993531960078960352444032694768517478016945898561781680791271159544726816335979854792597548543947165340737741083352788591528029283818822014313061618124986211229270770153144788032608334803863259299250607472277101827726189246996407378878089425337478645308894316683097013188908747881685046109016458467929821667793757644505873353474819232489699370802353544271437945187698605876590903846252649842113610840908752512766026600870735214227883296964271680945302761090896963584588534484432207789890580979440906783821385543363386292039602420086486998508160363183874320668032903055771323070225617984979543730616540183611069322657244659458416093955841747512040337329988422152188615185804604339985186384799460046174877279426824660021841602964390035823169374235830051333258335883401941155525152607568115593852407316637914350445009797131404687585608019665255386907100360933074853621672137705391821999576444316029230803850494709628747907632571485078793484169496602978530272216705031588894618275462669281924351162993193241900504602215546169681143187159986513798672065852042255324499929104062703552584589445925351550410366554811110307848966911811929154541164736963941943314599966054704369007355805832411568500098131387587126649676878757074440356450538721780617639799679208747593347542567613619042354941256478734384900378670028346149943196985193115643650826547825534411563636392954502533039799376538215477337843492059476861285078416507959895635525181974818827865133544817210040580557965848797941113356524810433034201465486078823980479951675785278886549401661292390221389286459240851890035474555575953917969249091312687414621369885942780821416098035918250744528840734052892704818349449022980250369552541115090630404665820322790771011417201846854187223222265855024539841555746507196350141770194791509958561599828668294567255869797742412208925575831146041207636966754280429516350624551362496797816019192776956505361650346917608569958367786233497542497210222928825846694485372721173015293179489272876467890341011530572230387184747869429158778542101885970830716403271096750671581707634482096170819206626198355010815139627384088978458316398564996929451109885464457754039312498186866300515810742336139786271086919753973216586814579953026833599756651658537416211739111474124060949186647541915836004622091572938191257408823041937244219517851735474963527580960310663945541678735550093325513282243553427129828915567613855435443879223140387357691101420687336238436644447964747009711396951415444282171890906436515613591306207160619850325772011450751591296825642766084950098723845497515905262046988350632419604155616200045381521762033510577509579586053006613521214202265612830174644935982881764570464605242297130268743836142894896581430530567476805966912886161684516857117360492661245450059997907433931416596624380753285903253761477157621625713424655245081363866759649512220858398796446740362869285547405967364376617464108411099064686183007511637952785199167349957275563908699087852143084019231279158117498407831054109140909794538359692179152204224027251593394379544407452874801496893502786296614633435479503616538952324113639503078237601675789869328240796304468759060950397261105582384214321724850719069283163234794139459242572466624652850579657713337279734192773361724562530658930909303752447174984041102229910024015332286337431596237575331040631993500183761678073027148006044725327276343862124256238637161575133245267789014030965571076135901050652697669436812801798687989765144893613680119782001207796843923552075960830436765071657275148751398851722094818342350759127489639826489829714430630624749994637477213042868495959419624226573296779221569348032665241356476556212691729473400172252490555070054155170736966704104338698016926053448033909985099140567924843662756987776336982125994480918910720376696692998265468990883425234226032129265815824397192303221108401708668171844731485076904231532016848969556772737409236751846626690241851937349189149344430104558336283455951017671981917781083183487831283046772376832550371507793202029778432935448532918231853226451062516868702749089760566468783105577031361836759066515263885286207727784321959513723683332587129070533032919688523373996246526473364835649411635223292178118803553050771112982625215190918586991643101955236265895554939762459667205043085157184993810798022150174055570467695118015051252970827968536973630052991860425791126498497930560143083125481897369676163084900336477330456849409726379916882598456744291972379593747289579792093547080004401696826566954088661288365691491873434179718969556787489117294827496830976184326795329750928769710977877339711091851051661926174582676356569181875070900787139415494912177071629790671568759575755187946691968987095721551692582261612501762481584187408530803436281748037411937597261246493729480079014134207984954325789085298982077692986804178724414292503474549258717037223348264893784893487481090409593947416760628540839084744900384299826716532673944815237495402406325677164130159520540903882911192346568874094914649177178072822011253735869779591021631604017326987046111233679132885736961547206220831449533888651344674095830847586054300358192048541266795973461730678726425714278146698630866339200159534328747685421583853074563036705988257989728252668501128951399472437377831889350906518655270219090489847693344405483781353743507265311413988395789969042516248505327390674848634517977514311089738186084032540578955854088658823598210878772182590581040805003342529034634889013103934806213555003385963733831756379870126966341698257204336176913828201683110005674886690040061920742572780448806767009953352613905630917794096407225441165593368239255453719581841270675962918349048078118096880959538636139420233795794710790282918227029886198572270223225605107371069561862597836306386597804997375636940070920992202249043842584184269203846153780980824791281634576671595311503294081928951454490932262363064270096480874179551488340966109289817963766636807551476031233727643689612697211990458479067415283887384359644830210591712716494764086649760178076488090032054644541882239348150221551604553552534442438968872394275459359097207329856853762395583579130785774340277150050471429060048868487940202503418708965249134974610493642053993527361441156107666643194393621560361110077270295494806311217762902055331789558793764579567394790782104775485309423148200690214792910685105768018070866175579984593939079009177966842115783145522765341967116518587016827205036797747791101504433018548239366278847685645347067907454916228451560620374744377601676305276985196947590805063007141594791871851883365927592875498838336525637977717264741326377277248801089486123209482840647763632703413980866832293823697639854882716881852862262395688503160302376905348902982283796361375115910904298767780914931929403433597377455067407511209847367146218313747129198344983214166121045255959328381711278711075097804223510101906017819919220702597540758357942645648963614998564410904916235445801818351942359011270699094963370281643121557957546886636975573848823773836560799567973063989994595998219347455680930707873074633810876279658728221324830032538487916621581051409135802230893803280258853106378806029806184922335228243264098308223197761885035653993551944635372111609967610936792834065400802908583815043134816308040537838262630976989635366449322951150268230781676775032137180518970756846157308743585038358750143874888423495207674715298107206134913930249559396949972027192309239860503542121377650385801351857230156831052680239333440003962328239754854159093821564748489669755089266443990592093172884797469871527892233367714372024731173083255444375653775592943329767282296207613374850004907757543811867498621392003218663069186779633074000475252059356272857250463102969099743203694370221851169098290594774298214142429864483146614078998777531029968398173655062173147813839264409335650882341115456870805938695581621281060430715238391664062701707220005086741054278125292091674507404557018971749614862417887913332077105185465848778841394157831616941524248274682661821773851319580861717481298590997539871070565777430037711250913266557415794707787879255637344265094500638217282894551780505794072827370242337130984475135797783046737972103414228105929797741807957217963069803856733506702229358021098798426555945061579861930641454379147856464399133970625733476666689467570849015560431724494531517552378336858687744113512782767819891975819684775617205692731319065232412955951759480311992511264463120127437323650217259511284389082735141194439373283998952828391701743240578129554388474232630967705589507517530634669994024070945669226803499553033648256456374371956724783294932618322180642482414371999152976443488930435775047412029401041854914639083637662987992221537042316983572403812387551784358413620658112585604638961639780432410737378170197765490244032418379219989184910766239141209918887832853910803263966936931483513024175946583224676711383245303759927200951816961083650932819696586385980153691142710198792669708647430767612130576067211338430737121461832748895875441346399470303555544020947931790744183629215644581565644963239877607775332843258233008869072332809944292212469835506925563511400115777162865640811230797281820649899848778154829554554300286337863392822209678198642235574720830593282574572919100485806597471238924971910774983242565972807445372635379848478764666214394301714895406065697821692170618380738283252793181309734079670522325443895259738126354559419382183560956331302341221426327842905038498274158987575978212808927198560129913235924358538247566884231395909534114472556513760985769100521049508485099849965949127151394466009147991927739675237955514755056232250339408882903361185340421550962939104814922692290092771418203295053325567887183568512748034452914942291950952182377873698619003410595113291423659664412234700327201281470001073056439391796851974650950970980757656945512172569263001490052881172688904803264029169913301912483549075472648979774813815375162517745865180887537082268361446060919403928969472492089462093867655868140353750556380742534694902850613348089502433411910374553110774331506862317482467615743977323515234251545406768173577003457122878119619214150725926812934954995332523063304512063267253353962123334902496380105705740319377887220855037583897620605090549614571611790385322760486986686817686404197626326371241923899652702984010543449863365143190430749104469911582241916575478765042035336885589212657173545033932838087653877460080027278471044730590811722747356872580479800568904804624291977519903109838689915943888470132123318182919943695584201815540224280989676718601670338330380920182411562834019612401177216284176250065107203227547225900867100159309374327739894810894384504016163100385858928855983820809804764629692700478637330963919310222319583409060179999908899560963261465916509268480629835072360399316720472028738004579704866294557996428285749415329588477209379503784018188832248864740605040339625725238360116112629377049145255810867110558803510340398364929450782888751836833459692901002465514629761157975972485337889453583203990053832406888469166908676147968491430418954219683210738563383796092466402855534816504477039257573986344039751812602243444096759490415076190761491614553003870020918537308880574906689761087578052791089842393275463484040731334845323099031543012834750415352757359185149970770302409791735141987584694101641835145622833695455692945348831576592927350232879380547078577679538941672584357279177113570497909622280736729451128221406522172814602070637668876201145705847443421402099856976335330342433681638141429878462042134176248870121998270873759016600680102527821688313166247335097200763002507688686403534504496929149866147146536343945465475937789254629123338746062411266752742442917702926948058412805754376153900324728565132880351859586455462630911589605402255081377652957430845756228762565586430546046230102130357197291673494829349437724147911662364527017863259384879147581984527032486145184596529610128809950278689051345121023304581273420438633156688621076227459717284304048814883201640154637332046282704644076991466776680148117575097972564275015825596486951452332120345719998825247391734864058348077926292288098367535144180082953960048709218259134219268274849562193540850366937272654363146435116477973917911393855839965031762019539825358098071838696840247237240371352542623097867328998282389237213750321420146262470405659782571135332996300616746231856418226178003204687256046783556108643668634784589655174098361139139330170407901817194993009238779728120754423904992775953978832059652320464410189793538996650943258585747062273835274628330248498513117100613056313419053162924409614667506612816842554753022780172291586476632377319423212924344761881924693859388362384385827291837500937492424542239461859720172734637286825908595718468128102510395304764829985376842071946838347796617550794602322167851675545895324751794698621784804061603231850757176519439145309151795712771172450450934053350315347630942762944077485719746435426658278740332762769702307496015101017916798227781500034083534009480160016175097542425098579660356963178863402107318890817531116831361402783346453170621208268727486607262840939729212773582678661609464082997788001864372058642876637947106059652602626010509527808651836025039278346737973916966400484947928713727554729820267285562867918149827803628743475426375854355725883209802836891661097990846872952711970974022873595597606526397291279442002905212664997897949032248994473553460887076265783618025525140280835973116404941944500785756851150914789114982999008480680913566029241143232534044052094178816778347600821745342274539496508553408143755957278544896611316337990470233910784058198404649105160642826154326763969032270421866695960555799880853043374149266495309483405312654065401866305526493906094651407805413274774206460642612556582509208767628001467168737409504478971672156619735201308898572723296735467132223870952046096436140516594291404395470827292880800985269775594844793366579565787813197491882992978481617173601910106655342847414260689078570844248137146026321460521975493528748934504178857743808199954917174458911310775317280428498992391879174215906362166681305527982815817336156485832141586727371457186345648665117700278693745720793761536437215163226337012368115669868645532344016448454546290010571903614737271682382604695201498314744625860995933624380771525890645507760439285968904361917370365382744946663867888796479163388067874509282650754628690209410970564702165789750121230886680176695129145999563146063397228822109744634772807365251485567733003013832415859878741852829708935621807427526412961927944799967851005699967188333687879697090986610223619277134058615557894071875151957145804599091018017214395156523085859021625492486786471113475762984043226796772877400379840342961280219772178615113758449984386254955831026047317400777897094348419482612334106223094067526221258350728986144690682849877905820973517198157675281850530042840029289253940867481971000051356814338812368879437879469384479078559340134467550578770422625447364989791343370742495215900917967505065947686125415976410656003593584623101392880598618259084296019435313764593412892230493236644392201478094132400101806468396668709993483369415784192776247804130832240166600476695603766832545880694149483681040616817528297939090264063297931009380459122474283201817608681535134799007644278381377534161921834671249903490344759989409763931743502671789575791418639661631226173875830660460009615479202913452479599702435721911900806549503330111592586642281681168408239736322195621589435660757062041339277203326971701749482654775832301899417256475906569291855509280273277969203352992012595436289657742014193849357356047015251119933070679601958623882521164827941062649536223267121922657713720312468678023655023444232923639736679564536768359939141185179996175625926016570940352367256439936817177723935493950460988229795792466720893883206775960770557186361974749075113956445541709470627832579232127749924808482565991462348303403571009856441302452312698344842883346434910005111083294894558146624905112567487618571026934059254485084343024501191643163491119206640463254354943211582325548652868513456691747596197936992357859879322261998175137880441054123891907241228345937379038369242657280564962420890635630120355704311223715428518891388802965258576897269533846446533395543988110865942960355694080639317231173580890353160465692282387784510574903517307637612722126557810334203290221570039347052645472940381835089380935943898951437232526339745974350617542208174775546826986625584193860689583250528359186000815959739135028328510851565152400566976739447964761418944169326752661022235395843747696256563685311220680858729627995484917581205911214951646857740873413278968330667730871389838053523058691780506720461045957603455262117745922380893339418110606670591864562601610270958421752672870252299196514288902579015611911872162607369353818596771430618133728678458472960962523831006353810435159704898513986699422690302096218511298676323615193381387540491946919599765071431099607587994021773557604030657423949786178644141621481631863105352227761098665361936719047523499834262626344829831972987545220384532027336686984466743800904360754269594531619360649671072495645879266131741459512755607842731920644303118226466667141219018087513354304473680702247058348110128847899645402920266401797984779835123578854604018780761166078632344497506053998593407005605522873348611339412945674488774272086940406261821994702010247871092550465704504200809758538801052445506603876097097640218781767304672640349626390940825151606705555626946416295254614985963400554049468030050191103710262874217340152383561927354089008894197481676773490418006243623680901110098297877439600034472297803495784551115700104852165874303357435472301728381303097336220201216121639844323136487423990426985237716260686981757596967721809027515636488361005368724327370210571234817365689309332040795594435423201735817155673001380278591336768835085536470932842310574763565745049356509790691928324077067810019158009052909612094422013431520148972382142858598988220578232943084814743943378129783841004503788920632635924441994522650064443030721549221973115541687274427081453286493912615319894577832895702798565712802461924604273018987662704353459532463417766863840549661226330116029205513715874007439321355098863329113573923085567081264851873578844040092473540496886760237877121113880581000001440148986703644090274636250169619061462374308996296741210789458263418576237360984965712946045817909027074301376339499116515507766822403906764637116619799767007214119490151239665960728334552346359123683219104076052035015871215450360209058667245600357845020089321508877934629542700236968621613308519326384274141462924260844766413495927972009782395119368947528823772278894929004451415028187340711527240269983696920025033760848318791640296623829534078067652198913721358998974694045651225644211301862536965558437301332067416685651565926288166623125155332836127827827441171763005603320614608880496380642762332275999762355452106911746291793207360315543850199747406862672925537179361077764017068757154585244879560020616523260690981208662673628569318728504110839778034351733883089074328502526848176903278731722725829055214146986654147849791126826087894176161966750787473958030407116774436966577118756489511940578580487499542270938643980099638844304668101499058671135741233457167169462876182564718151297808798417127787234610879600793031441091599513141012841640991526728360773380962631175371245874238936845838663293831172173092788066325294406470961921553749822973183696386047287101607261111857256514301157964202561959078397437828119353948881033761512556449079322596676388871909446860931619626546942613075661563896245122982223666715696471569559457834380337404142274180775007362235066873579474000756316051127646995558156999623759142819336826342112487927503711649832892609111535533623010179701079755883409847616239783075839690181524807178036338244331272564936373599594682284195960115997795025194704919500078015621238304431118032415439801527319952882360166049299607759019143175466044624948558518936999865817722856795641387367281751651555798634437551189301597808651261805869414909811725128893906758157334585161537191698307691499574084255507286561137421541365775526184298642700553950163798563231642838193008548182605181582469890966823923064702446530829211149389409794571735861420983033538581205790115373989261860783077770712737242016145338893366625892344738650373516442605465604475429626442429519598139197700739560112520404818576582285532133995880326627606568713121727933047494889790365209231314384069526284160895396697919296951582058644570657298388695221562347496729055220204026631356030224436262781107252405383160592104187258157568894905123790610950814161508468943241184196574830654203850797263144283416109774150187458806210644510768919493056870074345134390696966042986572466057400370282199876252785933570542296933953760865567094905925116418648295313364963990894369476150390840693994239548253844500461415514419017982667818782448816668936540806658112168555418128619813261947637355028024198750465474687608233577950089277619333651697483828506842621453488448248152754329128542117664137987640857205191724115336129064058758853176666860738591311112281725923597120603231970099872347256310682271953109277348164628133123981972412074028300387173171448795039037865266953623823037760304003072404515239605956552590309117244017681061767328625079318597640988393974735604587642440153159392333108720285647958358421705089381458249557694076023806599431751732892932794321035008254929438675922763482990152572162826629084318381126922680229492016755537572045377282524866209044471157980448917363619435495114959710132796512148522405797748849211580553847274707982221774769249759731648454079845715584130707357407565485928538248022963117729069663643094898216441151793378006949510937502294607390195981454797077244156456515592306969431681338619593266787328707194059598938930574744565666208215723370562469858167887702593390950817910854026623688287929304456819746193597108681701524099028795173593502306761310161622991450790632132745229487893116957175181353855853181046617137719957960944323754179112165170892773048806219125753796205650080649833261169046794202396569889853352554046780681074218777110341734655243721853861231375883317264094361947535812145734395018009049350158664856404273293128138015933060008873653094009206761578584749420522719527415245463340259534760962132912990248001661757992392057677420712858514809778406730420651390087921092343650463775873840542561888707209233129514241070606166969883591544880161776361633682813090761708007289205924515706164598395591945344909335975674042562676957623310494645964736477343415507937791600309291071403746775852209425095753794372101400893761837856131856690881227036779263598625541899019204424134623205092294957075186837702157026632832523774265473993609504924174015012384121995198093206983604033448861189526458979969681463138550377464155051070946823466177685416845956930922808599073893697235254046011530780894502081775547419831515376619024137546792480093831289363154018172441139515652526454613598763049060653894530148344383309289240601252574237653342452353053717867933992447507369997990838837443618480553556935336369932976718741538857562169331195319088824452581108994054988229659336054740405421312678826167142473620293491146040756280547564658533917725228109303375415585860135949477099983058069094455309434755581038195096125033954103021766417864234176624664189115971908119079547814822493071416894757260927122601208051647921978943536408398621091135547629878881747989792390416589838396118988243848623102199996338252689070155519813216651619543343233052373460762590326404242745668080270186757221947778546961099780140862715048180661683725057754173276519749055150214734914828010958049830817331543096052142865396193757645295476733377412280906851018379195869928357268788164723129645445901348759886437736696562372715899691521595508622773150751018419050813436794883868250127351209733112584790889439939624524518156547177577873349042332266969262908100984746412533247380420828510736522086973731324520096294151353456603066077811575059196299620092140169621426934488258678274775718402810492026272744031923099120745627768692770263338884504174336689587251557843804553110455927457450178847437459504710306134591114684661115781391908893493870329176162796252563452889682839146009722033172457764886749148597322928094208236914585076707789250259921736825025905349271907931636135231814236416903310085191527654656734789998812000326723926550138522801781503651591823157265564439357289400417316955641892466900364603047664085909276111128325535730441105711694729924938835793151250808754615368004125300471323364116994939697736590226478247480029858611146808223612679480651823334838168518974676782156551056436561346126489062005962800375994827038738865022599051645528811076282146019249773036027618481270718538564446982311091032523411251842844014761398694214429821621831637627731351849758647509590210937054542195172560966778084431205479520643029107516981497941363205421770115340126884279411594103499163657909175556164275322466037382249880047508937133805617771047725761523490187836542578655775926569750079479124930506061320225300176124873408077159255957541862105369078243505158669448585467314441152750268272388552836286205505199181998073507645716504559780193194014051610376342488205589961192820676201923043293177586695634884337374733243966575741421162119811458738041772061473107690673504961463844269872037581551090725441388918862582172871134225991972217305318010069900814463187176237551692867763818854832212227887569930930635660654031804012043331258932541089253925481439481834577606399369435034279395323616777517514372687433269450349703277822430161164058433831346718145347102521304721119824044894253745690180127910987237442077575022330318665079686067528552855494116831536338676888973863264432049004576307296120343826209915317514540212781912834648896834003282754770699811711577859270451186401786066436821071783438092879438703436857787304284734966960810024634095233352700993395246553336882549296111106349656230167684140990574536754279881677086543451944449961033317269829463069635175224582549318210729708353186965032684083326493499061063274954957604172382012993303138047994480920784404823820390504453769310485457778540955571159897217213235779376175892019824903744903795709942607518910055199256366491771914151433000040404168876712047729641110202391766167855389917558088262519467979983157611183669220522813284792144506139403982006005544424025754102222569718786785025414146958253210631277008936367616247776784784422002703561872968336594779362867368952704063729408157066834313328697405299062291891370549316907849702645316885276858964120596281859981606997789555206442179114649792961286056269673373783496905906839132200726983337341856000172706414710190955237458605814648001625474676362132972517128175451648431457990250293217560652194500042554575883339459573878287687609787143491003803671654934527345517797511795646659963382744023489935418548549501337895066362172124267523193816962109735168736230263755925670564266720147433454757708187902299849360789406583759949524834837239077660183620325655753079808970005430142822812892657994344884317817840114887035969153917010725066280838370649559585776823898937957672948394140344709574668985173300633126009279140663750437391469665490686870995028358428324566263637219007643376186994342766663171347523033368132034602588246466426804201355450775371282585569471215172690250899836612283895867315018630072872240923703868593559947782605441406359153664462417049599490498861773806835970971540523023957995074224397903466381721214526085501590560380585671738912193435129732239051492044208722173580559523851495220549052303321263650998332047131273499636274613535538977587391256686978271337871701819933739694057519502728118999263082482570773196183371922052980469201822730557913605828351853190498015671984375518332665774372329723129441005108799568175994244467708292677400888125074841350728937632476721080976610620728295418429973918750766653387442952948582686203745024178918093864639410919347666266946462990650672396608248234323774745660223648136309841822537173664027823807615552043634487247196242719544705096750783327835213685036291508091217637064807014645487895673289844360459261637485284067648291663891826687170037362858804861327472103268668615542797008189871866311260407584205595697352503525740921767728526809844410901239530615601187542210964635863007766036461453363696573441278147464801647798576016581175517370735632031763692581860063998193538100079606830630580708811464594584270019714196784744986678171376212415424793722505617543046924442669181801844685953003227275374276428268776895853065750546470117829738960362377444684683325471321701020549196491094340162215389576654703627887081250576264087381388545787986430152128946538716677393490847217143325965940374885443989437608943054302627651403175646284687101867660421934378201188493717625671800861075723844666092357187095968686067406056645121073445746779130489451496279370332416816419210250944198734613072687806406916307647886976128353919249599928811166964515269814476413956090124174317381901340642009639632486866339321958912804531104824949684743755784827855011110905964765046656376409248638134887300035588480206126463585367649800754342197868823832486739525074121478923769682440050171159778426228995846173248298452033466332756017742300599773521692484910611712946746206022429848364835484107644374461802586341143517725554822539798323933132283715830694961091923126745695260410447181186319919179026726175744328019543543029396619191111176409441205393154351233947998815633706139778535495085217074034654272603854238771085581080711696858425886432014567798576309567926301553303339509328029923704598221010720651929517252129613890064564737274696558864127672802119593817364989973620731915726525116744858899150117726935125658814691707985204020586842453063699196595044278844252844259502871270393322254260862629481612056002515850693234350057264841067283047710763868291655578042727247297665793897270258972010645688572868088483338851774962795221654149354386762483049705919003628278360402557845765519045437623392021707154521422057938765454674949101403884580928444098264524120487816222786292912962046242557647864180377305936791701409179515358556212416569041356560113030762096175533651103697094939938755940584841349704770185560904047209722133268144821975205480876154629922594436588693495143444697200434856880384169921253005289977942211926184714213841989399090138836502007316991122018863372055423813858266902613345536738304398023832867701808488293961178240248561385672800760865891752452021510945534292976858428442912671444913794258191088697649658699026123991536626001187793449884779057143822730629079138061787842279634054253829456559100216951016462020357698102671855197481273343627272663649225809067841011836075429168259314269093618265979744385314607792108483151592277820328317540235948293474241905764717107112889257972810248238816398507799976231409654430736628180876179179387211564537071193211443754844871453623228732015329206544311440658945044687532962287829943150050071232077264669676486496373868005483569612122081038616758275862513530416507805499178774647317402512352726552838284839070813139135145905283824459328381961691019447680887001572088037018167879135233093883022934790682968776252643212035943377554896146044626457069528325916720419633734526300848558416486749125308115831339351984976434220556694659345582416599408603061057915587329359479408369639697636593980636922104219696729357038455868119850474827073751969994445257301267510106464258082122811066045025864143780103855312929023126081504816123093003689858846509352407788723177441070943539480774607286805456270085838736291900242641723951136923371622185230976088281402495674160130432877881150789979152871309502604345991937594559450229215523040119471884949845903611620101274887172356803962532232069006936139909746501507610089780836806289325025594456110268434247441301542608761565523416843662413988843820976394978830969691758278692522500238284953716992274035371295645299020331744435184155686539362533188338423691606970087670511110666572974357229676054754175378539915292329309919371044020586254205598024368577088289653424368355115162131563659414602795840150217977888314862959659110626707407524109545177926736413321679301411754305779155402239694190601084324622366000143491156105490609268996082377803333087412904504071900127198406342761603545271376561640875251067321111066462415319827895108145653808377135239106536398123782192505269619255956841509645412424858337334703425922963573444106229722270140773547058910029154453349639949158082552463286593337147848150682148899065391049685064418650591184370394656753818827886061060855663409136572620765466950643342291105391110781775145187709158436228598984439132348270436977617605775433651179914348746713416030367899367959767931414838892287495444015272718343563586426210583794854216845727184948602466270023247552951676236226714347134589960475541953649153244381171484909498311822421001131892723701769357540767807887616891273473168915142341242827346201131798272839962579103674906134198670955013046813187563812470989756433875776494983431737700996604148279379014641702385973076156539765023141016378894087562909634412421289513489441684892663349900748401336200334588883609128497057476081953566454589369376386302621161808218541014249909082212189092868207856703778078431776396356519158380013913558355845456431600535199701541069384981717851406658032246131275537447706832231482055912188607117978054339503272458943713399577116815390860769645720811154139395689898229196288776381524422141241336818301509199766530800563608771088223743489959988392215902347370924667797587191940524845989425520617874682979466399684014409315346097428168057427138928687394890061124339100393741414395761289859404494296234777714672507115460098654877779463062157176891296026855592958324433522922926851217339437610915947617083796863338708043750922108113366153944790512994050709258993340325654526050168000713985378286191148079331648211495490903840828090233756033685740079502627335259942438727585951373295563046049778609551802041373476008349681810199043530768155782045948381419775404180117350133758414419450001649721614654929853393132175976990504305529991821615902782376683048904453205124276750208154084276527460751686282030524904127788970738748262801301780250009271074659615490970595655683380409282246230634313984844904131548065903483574452605063492172825947692522609769216708551811943648468713719326841977546904064710584127723092391672112374123383388106009011495029344978709680280173075483996965875355834994332068449292516925504048099803528784102699532166309147576176690458109490733571378128191657716378717781889864794794079819563207597577104288521044345106713235726508076657759389383108328054916317209739086701587166386431716269178099964299280727081828837965440423307443414938368926220488162053952476925572967527752496212769740060670686115742544041183581400137647171793925096003507178568443950150034240724267631409714261180818785894107594544914473931831746341391408114994844210647160413756555020903574427186591462711772630507612421936115849275732448612847153564082322404243130495349363828732479882655356974173294612674653964097415662178886231115713422574383077771757341384041642864237408378434621392354305481795044339246130015296008846118328113271225898961659349314651278886112819014876032296244483081151261826038481129792520492163449160794191622983315733772361057474722528277056559060228611310020551205027341972741997064826224100152848304834455994444343735080666822346476303861145637597216989966040253094677066118583066874620225100638431351212837802060512862474653081718534553410962013930497825684912514986979242974146044682977373303806684043489823224450546102170725823548555142564581206656484202638316106717014581385359038640251740821907890171554832010648718729641684714649532807803729640967248820583146195416550475757011493229921790362239203340412657419946604468363470445832067993771094957487973858310248525068099655106400992281104063152093730231235306260714690999533124907247459589613313956845812310363004349164695923183640172285143134020570336428535904850757847705708206763256731437426289791680981621421766884425896049821786922434296421368658101292174132404680003994509859922739949071309643221938269046964783422147185159343098046564291014078992320285022329123100926182224443777787090724165091169922226911252003359895093530970929492902713406590666395130926024446395478503910328884489069801840980154988452030109407962972067376169471732036679367750053063558959131354013792183878174354363175813602067639097573146180051163006345727300052140876939779192936192568728231012345130401132525107132726189942938572287405392732708175308123070844646405780987560102746481912326620232126560116712765874351761145195011403421343653467346712738896797545167767768854981881945156299164554600194315460410425250440693269424563322172424726543255160844699144504148318936464654693190426268650023232492002398669688298882059195226244955663793735882648744883985842570106933333512339758803750520727523386857561888417848420054290282219280162476884825454292602485694372871712050163276735001459333140486402439905496078939813661284970545051957105716122229832630291411569660735132107895310629828039692333345509071367759607355625694786813112506318266226017961198933179367567181178726382660866615834876034665636362607920405287811866957488799372054177543820590028682928969346333664554846529030729343997407416305025859319044390884121803735488820490287292132749815205044268095402072717949545635577318113827253382721179017390954661253682592820242592101678971170259012377621165784745949083589295857720366554773996892335190314199910145898117140260682718139572677291446181382383464044832844166631893335074641631768611669150741417976355971230232784640044273746474360570395989142901236862545002555001204230498171541827749402857683539660960146753674638409077131661850850574245566233081879865682081634487220639931942056970062492829591980896599635329050551612017746270844396684045508060818801997152290892675661406583624375115821017009599935059556215264882738340393623140530894351836174877781957772088014346250426242283746901960493904766452633716444263602149978203911401682892968340904290665648667663777906696346920987793097003766834249369540190461204706301148008959528446178345208748574227609348789304380062109005655107882654283359586448352482075482384012120192683729673005172800093916383506034691613751025987876057537445307258897302839640968247386018688244546596603828372128542208565118316632786842979953774516794674220123125699382237925519649994305116524856520953433028893128175774979469950354389468000679440299287835618846629768615032478745037389585909811913847019530013537647896476918621929565508182729582479015900922071030158218535439366681138661366921214084548974171892161494669541320528878908346761967034544685820545925295514226015866440769763924312962731596725647405111615832974119202579998133823840029780190792083539709561015864505919588885658257168326223121746499487823303942239499354820530139451057196590409291309662746249857881695245612568984761140371248963363835090681386404657699609331849418482865768214143603440642045600274809585801825380893451143045578202556964230439315375526070159936499423203934797076434118102354791500875261800752697919080955817608956218265792465940811346420114502469971424157841558013000321644054386283467256701965637736793069673639425059881061624388007752447271229819585841038318398306669852945892132979187754034338046317212883894781606911108367762568831841692551425314546012079659524753911748004264543320918691190732492375621324444054055205612247594099440001321936747037811315870559775781805862943173493029413763028198365136062531871796932141260901566807201097052134953861684529163702833184102012736830165209399686591661029269897953103017513605957913126749325062776166543009073773367258925431507836389205712377766309939542620045267994646888080983009437733905950524240901625582119143491611263098660144539036212908472456470129920823269620666153408068890115059017799223169683919376391079979218260687554314804939259051414902964023847011549618140966835581384828148012539845874072624159026577032027566256584855134953963420520976044551136939946415182912843851670391451535234096576091301560070532054639614135713244757641588048602711888930280981626944948584617152857875302936384388857226649564397693555568636527003566481229892968652678208811423557558429643994463790465176638134510602363275563209983458636833542685713456062647636325085600799944180801415259436016158300591241300397744348183023291692805353463640877237001775267486036676658211570732456915488861399246298118545479983789875696898818100602467298878503366038642911878876341613208829151873740650977025961632093111271521974461982714008066171964226176213148233096531190528672024438123558702386454553132718357940535647545445656575230281531338450988850881326771816491198622528193888618966727224445830119116808055435428806499279283895459680803638211498928260139003026833760552002718543439161414200486315583842175177727889325484743591816981626174050003244796713980793768228922733238773838513331538344805395774709460932312478823088159448224457474706771213496538697086883516649965261489280285458930505367789595726163423352666363943597785404447773174288375920039661802054825612113158809014500762488208484913180304974495045077372531837384193224858407974396727461717618091191096794134611574564484396032897832550224326388909605407048360485382283023961726667848348233064416723467070224492222360161571318101520289136313593581889226872860618641661971144018302093553513854412674541206423656245484248424836271244211312369175053112439070333206585509460921246456778678320322683441766209447392733991144051239466985084700535036064318045480117121777133346327514362111588013984820362297144632335334480588928657897402004615706057168364255991774467863744068732395485743980930085343340649876557622680314841766382488307403843273291241482185496628306280405712156076505026858831962689440098697249293940882026718679425190254602365381617143127831326416696715074509944586206447335599577537603041172390028063327472779273818651816320454207325200937192817676378444194103103425278325526619798370671430787089243155676069182118953364999534623352261372074551366638830583628826396365140836984241223190016074564691704445814362627569343567751302163678720362219231695431281095505768520105975276321568159361734167312407727133486172430515620987286843437378579383043032955369698387180543959329970763195830504376026482855028174500695213567525582364752551566154408547465799271594841552313465902305483637612314375440934931853153229944202098196603897574249958182836301311167153397891874852660643164380766553074790086455046481361269617029042294169996399570107846665296024847911580997361255152443688651936666401601675784549821913194854849902352569115880022529953281522709625011262440926175750490497675685626782236859536731124915943924099507339600202639430376139656508053221569607158266590063444275352708931705981885234186410718903849251988836278978331718959736011278382691474814068230682449218565664936022588590681266335456325939445069034909305945224054044145337124774326030940303581159513893542784621673349498817987591517700366945221102392897483653180960617244861827660675356948836538440344236420763596508883842994999271850522192556112037000694275890384535476536018246620038248072633981248610819070980052536345088932897524224401872981076753486922750226085662246817565213028606115764505668823264334145180196005249144574937626467762563311712328053695934562557778078560201912301406407129078143432373569205378944283224797476680725371783898356264115948788519489210609492877871468512959274850854253250474104246544401061768164259708988524532212678292770443394936918804680985662774443041190845312418759705380854119113509778691647586254855848712997846567683452921127761163479562155436750263749904444688241540854452408137045793819088804707555885423283016514841357381059485444632526553935885401255957987021467034147985723250751901421576137688315457101914419547998095450276438678557295462733853343538880000950339934411135012088777623191249493152022293802987060730462390424703282456949413149413102456069849033678287398666834159242256391241041329331203019258285061449820113277701244137497654148567700834389085334936945833226926465671870055288700056714313998826371738264509304734368575311787458547795529075280396073939819590669079499568528031804140504208723172180699064504186483439842718870719119125763874633520200765030809770986517221407777324908913017059680667377143418519040117134385473750667834327150264513668573604687626767111317131991505416593776257807143714618165263709586936052774822049020895315480277941899821419733649733303202849845831076249673352767140784922875650406917531105727717546895637903612994440685240430800801756526713583015801301914186916765882686036603576104875859348400850541499123739526748960724784910360015417904833884181260939229920822607787612480137187177346022289628460485509460896258227067107603794179749746725394792327761825964499283173106571048132050291444322471630696220840114213004742415161020598063278749468173260138647452781185182276708438619463218478188532736221540919441781910478550525670821929488239290343525932382929443396329766790678737323072848507247159124791823508521962445959834664306415317009449134149385700551254124857791618890396362215488455488877073874881669792058610055899123026116080775754531921560785111902030514709140904632577504165256216125191123342588104023788853265003941526702912306176173981679365094252448005382706471368725512649786982879470204320545340966132210538178338138284495430897385454775873776612699203337172029694509216129702773401416261346116608261597728681325540919085979433554582787670361869494931242694656253740467578017115999091645997848603496012570652170952569478676864022044040305406402771035103037927911992781281150557088809332050735987437049080097259229243987084266322175941560839993459637588341335057862506738442691450774821163765992520495222791515871618961159803771510835801435033059288740635190159526706961738506703298701122350212941212176320183286561411645503562850770071035625189681447193767139677284329898275005370607283259674612283173016359014997779110545544011749354524320686419810026477014418779500751574435443781525702158236108363980337730977706524578350587878233355097202643922033259961855063736369477726301952406190071888134776873952513785205573612409634081309644914163054205966855913996048283663023366276678877557944595136743905847762469314815541508320424940913548729485280610853209272165786440819239871271768261779822448366995876121534129802882135943195242967184792220695977580930328359912153777686993911245037027126193731264241668056329960523394315305991035373707995674334818160440315705868538159148651928883177583116428063594385255184361216543389999093233607004404976596048370847159971546844963604286551017128873048437816486280772769216820494688199259186487977009708283300153111371985858246212007709076912179930389299383378777532994099674856555870438257261129320186418731373932925399047918294679342561607856883037596142885266062375692510300052147572670419215718285544808556920288045096028921183428911872561968911314776656305288346466049112233968527918985361743667201064385979166685029509165289586867095312357509295899019550559400702174775030232989158126941811064937532355747923821851564402281974337690644220807427405876212977026424772653645135623701767354698128941789123256320948195547329360948920449674340050278751272798532713260218840869151471430253533204243792051356570325606831719993326006275741274706858830718200004191019696199528754788229849052189784209505390586319171485408356221176735458957748471841249295718333352533027785237631469706147014029338460873655181194862459238689001453577864282209821897254594365031130493899859985505842057787808995839908554732978045854135270795567601348408988944229745889504489878906094026747677803908833864513468833482953918488208110652599686935286552960737689640393822051351575637592123917734191657061686436404531189509091104300650793329388913215225969967189669706711899733427889376343865800871373840131396694701175420229076613308699044145750085767306960775432446261664416005245113137894281610248872354151974948694081106789237963207973145602754387828276210371602845782845868252034596036318641665761292264142078234026552741533647602888977051368619370155926220202044265350523152964355550096068065359107040518663723130851774779578026612097911905253741388954459173777336696306340775946412645711079150742623758846742794096915098159345046089016637849887778894391428901231763585420473746882465548375097818931999672471924234941405185303359712469308393872183739499917989323485854907333247000346457841727505642970700795521679742958563274436889755499988976719228215876502668371232050096530460718410361824023423022854280129393757537374204837743514084158398322407225163743304046611962374639463812784566079581691359792225169135017941647507763754498020831657815746478939097084224503490141813095160886830980409277999248873103795469364135854248687568695459714971309361689630922092838280240954166891245671298602739403355777032551635558264678943063650117137113437025679643080760273487421365398510254336165237861517942758000414498362217173379538200365850596644150642176404845907062575993166777495233531405131321363643327190488898147309880479657017545151825034551185897084092232560006544838579683630961271290503830527542816774558636049432101760909161586542186517796069629752584190103307322789650517534049491747272754475478289490933184054856915888153311477946276181549799109443232528899491371868523724317402084393689373454126261503741596299222616813203210080343750942068667681562040895814388235017014166198909309845079940259383608165647464656617989978597253887960476880990653190567753632417343757652470019478066023302638094222773829750043144700799214839572544379143309144624674696965204199227009243445403999060910960752763320947696867386806529196649872337297383766164812939703409442510730549778720641318292613061571814439509599401018656067222416272153656091504151205751342070897013603971004550511172638330269334389066378189277715229916214598849443880121630319979832546369295284503129792806622937760967155392601218947050391706978709052122465557258719760756991023633352838422997421339401787913882128844404261809086010537584093046852236245541027326660209575824306816647730999023904291624927174979332791561071734577169533453976611512993772328466318671483160781521508730702780311067862533968659830162108340346074109537025915541073737912959534131880603385907383062193175521289279159483767625891686480884299145815887070943658956280806447563820762013233743832116899246255471328555259358791225513245221969255456099984210610695062329372958072826247937404825246601888171430154345706275090585878052811743000708192913197083622378170177201946266662257767872380859298210223637333874624648325950997235424081778270711755435858888609294479555768842394886500830042704885824758114031146180195393953228454427381557353272607111795916647509384600597717195486190467006128703378345456994145360615298331909638868633425790939467793509275762146170480766702191637208476435917916846402719901968561316364450718073559944909603823021770403667193834705680945672652783905637527396997273371004613234568120679254727932608092245313203707300670624461421625905847471107806869143975504824591767003101174855387962774144238407605098772117502082326570822774418215922886055084514934203329160532043903959337446438110486308384940251403102930019126139230945651135871307757172683128118232987180969191707623240769308529767874637723048621507981344356864489716671344822403153287190121076571144913628614234716448956714636242382989053650835637744306966825529237729421155277614869696264967094134217191827878332067036216355016208662093825793301266972239071260728931389638249935245394204618401281333781029857985029064973099189226274149973228403143116478282139735432582116658571892623532374213109257283821898067978477528895488622436015973808661565536031093723775884983818117505261857335155245444264991115348915050892931666847064281485176832241060137649453916172403853944853752859876053874773005068263878012963178792315617993233715484994476689753189482441425883081952794252119114166921336681775983280795271908746946196161466533067284706345613048802357159544862368938543273950457169427278343575756394545688068865889623836661978747388603634222940371551261486893057254457516623312603647409335454533952209509047293266750560640244842788564069047584265424587129194770849040268627570303638024300043036419978945632654452885518114701268007735518343503746323175525308663852307298914301380991501729296857937352837100104298500913856146557788403063069116495112373637300184762968339502653648774815808385630424161308355443251717927501642504663383044079562707990774292653587501305191273381288066298405635482986187784464215420795079957748659319540573241928957516608320416933874870735542752126767351019458831197526443840043940103146296552469783473805763603737517847118819675532854261840051191587556262203403981081403185633937144314099814994577766845711762460083193747577471704269049485981740537675994531640155889873678210838547430644650449025246029310381396782579066330521973961032250441085132364673175159813953854723081497541231368910499218375385703245824758119530742296098861599181632898954318130458316211658120454457711436694826390539112835221847520632825751613255041953707689490910800767172791562112765018720297973918298165103576854599347097452264558869065495509624095060246620545305209426950020920813488985967777347446431771194428650859452648274879540816468168817247181878369892433295382290256990979550755047524658883264306075532105872994515205740590851044607264212620467588748667973522117286264637991790226905507922451197904920732581837679497990523659604626753977868792728476192152367753333000940472229304095496015963136989969085283335701271296146463632643108990590951534941965163356958162422506274712728730444775310840052744724485636097145692869172415185222419508154722103626833483168600905152711856064335781243127628273232896564402930524927550972136057865439781473933971930865001372465936903140240233649577960345016143201989727640934863823751745725410792212558043671479943666015837274128890653371627922727199542478545656878401255642449273430051244934843499142335873514247478256162009222311477390748357416938672167439510422521198897683126508892508931943300739531625132755158840596109539227532878521400137760393124061605301903414549040949460885994270322988037448046808650547784847518571709572668492886264350937144958827190773310517537212342612306797015404753472272689022682089719694424857341496766589503031656941456876773937949724416657676234594908187533948370452177628145134235911764257346413033686588706061190252773397154655758559884834258860189479120476093618732724105476174644971870679642389545513697616394912925615570542447570263938790087992186459514522946158129850238038937067895707201554260983045342973236167861710146005777489815407385714265040726709017098882694035897709285966358882086659643263913495606958532821151267616943933123812754689933299913242784786616385003570341593169478793398784591398086157946490548159962449398469903811547330083100715038449654380497230211630286466969378520720289026336252452198313206163915027368919040824441319042848078603683618315759071717763772967319498292981434405399201919822002559355377487599410523676211407419387169901897006916998834086489322921165311688124278819111611393983457197838227733386127571376715574539829981846405859058036740496071087748054223727415506710583069717405505235485395525193505864052363584305573085820859201079796646466043586843167022627651504434983060194980747311946337771370545364471789757828245813353173074288949408617776840240426391712551605969090291675512340267115246845312484488919183098851911520355961360467779144477692006534128429681143487564825135873972946436526543958625524155898780534525201941711785049512315017188619015666024923394552745798482592589123012679454035750739026849101179914441953672522730522042403467284075574045691753376773405459040887946455294563079715116503815879294474920153862538713104543010951713201176519404980579184580354959003966897645914653352689813583880550841839322045003822355126535470052372564620500203951317389003451089194890783541415625707744950331227563719861944035004225138994870336765121994794058279644380329238137226035199045446701522468934262094744458521261162777338113852255432835954258649543203698859787027723222068364141738982530514556085053341686680223029752402119177513294870401405712731605564448595268561789232834653694950921481341187997105202598237993350597174811698830775162541794616279663124227116431601745670648483464800780134193569045521898297108099223297921289959694639214684246999771646604720728592462672697218531455716349633821590078164757996605613023555998299517013329819018178341182121001068141016798943585008974389094500472166146618978741589786449755637015387304150971182548707342636031587792520960961497524854836466333833259196007986860688618641167257877877252083953480252791559755990920435513817595335017880512605065955791684224950588724684895535825995660139796687087514038419988067287923819469331273409918692374659813840627300892961044204242202704593784205228575127643488163913872790480348082406824430829503972332461744347589913896261676001957242496048433769805809142547440017971172664516674213635984055974762614671992815110401765025639484880669580357773733553715538494702005316214125856572724930320274134351222297288468353201690916424614674207160410302799362478918057416193187603551735181174004812030615968860412067149935060706641053091550167490049622952846516935350696593625389643607703116686513560005265463359081379181685876159249337838744223888828982287832118875583520885496316829724621664095088755911262275991044223618248901755093621062688113829156772105508245317052867046412219108196221267036922300159063053624572657816567402592550810124509899358944149654324403400671091810430704217300221216228781928667856154917215889651662415109800888345803372970896302544441213887442067627743704064434361046290429609949178422909083418723430422267420450009324323332601723942678382429212827809987896613867524035814372566286782288850153741054862096314125323469912684297436882400764496386602615563019501169611399845295439865212041497035822707830716552304369369064626318105651847109627438573997998491498838920790866622740640270628563100764931443371262058405464159966976275125518914018204544936701511946490067327983209791177870242053550431672137604400079346921135418243319202511870287864092682178856905507887086743326153902115941004095632558337443572527152604179680982265236073152511769833844703836717976170255640845016623959393411615846965817981388317334177506791129910567846594102354516181306662282351600489198488212616001281604440441107717280910977593553619962729310146337577729609859046780278873587814700633000182671677709861310140655543849273184072754285216624264612987096213606887525781596328776836859678466241367543996344469446762293496752444400788712919125699677084241514825374003482171531456796766493762171560757455587614462651416926669949397641588884107280147615805294347907182906459716708133316692326224456353865913915731154798416862236215507683273691830896848346019231001511798270391818811033746134545248861397777746272268145737022144803179315121623815977263170198714971629664128114378034052438927250942750178528832087252922510812825832902286741202023003284724361282252738209018780830271435298875104341948210662906704875881236959656351970617459960946923769059058404252323588070577591391239383496992780082606701115843811270749349154525423859982493895269496048134646740812756845089828621938558097250010577018815396451264654530939824562292518798669612624517887503295061912038692213974411956696563819658803814235740813415430327182046154781152393824215031921567362940670060612079726678729361320176121520474939234549610350743024784330478287174932689404456740248575147767712029875065803258636134181994826951337297075553320604597628709800133703168389785646024855974914272078242115539714812363556474755155276476407246256549288019886801662880996946584016509896361277852526617336112869714520457555945577851776579149307236037795816449923360547184758118532068761544523282407768558167967587372817951312470884297624666175430063128131063256646184169689584024938148836969177796441879510172771922519118688474505193504918626868350990869157416906062413923422511858319499534531704566832766099405875287936941102387854265057211107715029091981803369914054564965373449892964818934802932773405706146850506642246496949884453668269622696408635250575637677867765664236993091657143520393917397348041700471220700041433942952660498121833964347122352917857954880645333015552311638368359891660783285209496694026610138999288436080901863775899738673350416472095142979040065234565829902539823208529852236191071877826758084092250944062539011070489111308402431349905634658672217171421095007998517708149516298907218471366663829824475145933176282018939685320663413920341295230717461222154236391613769541068356402655407894196475489260977627199094961511062244109860716376232017078094429028478886890471822855769311640190401460335936151017687579586827940512395154373690761678781463813452774881204056460864280341126454188550063049131065126481686637907665469466853187104334238477737145096171586483832048643170365307226381929702540361785947454134253262066868554082102212928893738524423031784698503143451563560039983531549275558171425065561936275984964967009579674256277052905096727844898096939964689914842865976109848388436264797433122113278540222866155299517679644051969052693452586306357342410302514126497283576630944982507883334707445964689069068937391016599981685425285138370379619696257800288537784141394485497813277933030950523287830205761490921464569904509958405186236374110825914923171364159356676381204738808561832596799915179544460984009010085371729513811880037990700189359963471662828371495901220590640758527953616444428838637469328828695795242016535878269000365102552878006462641383374699734154584509831870364585430735280948100690319825000368088676834863063607586889849909628651220957159416921080746421062794640881395350283929224597575016438945715982842079475973488482419908652178094730593664142590698671436133907919388271047319229383433212383192128996541567593612291809211894883836532929702306266892492440473698381061792441136340400064566284482462371627071426071918215656276513023327721115837911456910029846933136230455552548897612831396286146974889454098706228903590855950858316171785594271430408274207276014925133644597331016231863523525334138244312878416475206669164891254747950364722813152077597153933667722914889902099474196680741685603471336268971429144245214659266861557805563619913431188877345475845586255478459399268325617005127428903957662186861891239060499992832109585924424926350386143202876640236679062034659746115858582948796776942136186156759937492306638127150658058778632506029177595094804782146365087857275798167437923805436443980549903830863713328155568900312614812827631695213656746587119792449528182098852626421439402089092131574760295168729898472694091001635550285085277676566314072320709721483321290589172649344235020255254722804804264251673550355090096712347382826897845039659709072053908593007039011259586665452562314099433302342680836220909051805240266689785349876589424441197771924305467252883243958535300738625292559570851021308203159381056255587751049071358328412289032955980343848181806466206508942134721415229489386759946377550486632604874573033242426138849421377127202757475190587599063362955527503443864581026874185465272999303196104729626816839945758840274936872176607946566309095616061018497033046764314602820771218285629029968998553654200644698966581268888767726122958338950565093680747390704359379726456096051982585107432881582481309989309957403817105877464309723420562639436973421541256257097464052104058475197194871193547158954921511236838585290203205205869223321891153587084310965694750025516060346954454066592193154794365537858389164245152635047871879458533529803642269646502754350888592134515182417146532954660918945811222285713673002256048347904350041765654733714340258662397239844241869724899970484189315332953494975955058113921688584526134306340489770087513560084676703942148297700338766510309228976987352563665431650023096271234399495250832030843822331651818759592337380833717724248239302241349267678648585612536031111460014552104026739979142426702126224914156182859661786379790305334723788782657304881328904482810780153840101029564194196234718277025101523927381497054362595448614791806034318549731681337577042429231319082027266434312443470158423938350600730875496812096831553619939309061512337056106281488153656007229182371590531571210615771239452986992661815470637076874452189705243279912179474500397279484692386881744815986108126696845113567383329831410303079827288059051769526126557403618034188481957768795064454634283257295805909794362332519667951634287264753439107867433777268845872831601976248695275723754427778249965650030757878111932002110411625030846907377070352128218127470279263467666321730718465295040413587578746564669119460424128037073784264185651323062690061362050615450827169991121797267130630908590621021072552253702644229787283299303324771938728446058217578675496413064372630811580912312199905023952211643802912116642894754601633591287025085166914789314983121679635941939859061002444427805326305627115832486350625980365118880111721077170316248255396978860561829334075615301591529146740471836785401652181242199427591868146105938762375314113871582920340930810870662971161669988596431907212645784565107487634349671745767847571506219366995782419431920725053546318524993497326131306955793598968148015482355882789191019857335203536896231920118278202532598028937921445307183826968679952575978592559402944515522364431271217333863135915791660105672117752860563397762135395442493251436639420286086509168635607216521137470194062842926259156798336465213429332386372860349727508488672709897795111796263200629656608122211915038346448192592370435086701936909248021476959577351794806451927468962293530728294222460704287607852365005734543939979606507904146840132294157288221527031507478988666254000133470763258960732530690175192860957827989438010435796554561428700777503838582798115483656372452632648197470638513963134895057829205179551273597607360337656245488013683042919861980014025871124724532604560588863860975848269608838358478954108430561392711168995221834278682871772638874975767465689678692333320409410038296181851373467514313620303809224784212892450693461223773343279486338766747254968138513962862376490090197841634167028282826862000088617100728084737806353706117764741282994746608603707610996294825996588762800628057499582931954260718719607929224890024849785969905651214797437293173017335612509337223317472910711640922039228631567774996061252491580369265765089939285633240381213344213966819457728171649637066321924603051540753852369115672028140821824384527461662744713459534712741109448311514386066990951707775153216022466708154307776209597691326021617974389640939627160533917628942128982167771220478070980107007499711948251909875946423002078452488727174988059792334131630818359621871350114359489658257138832639280992271256727257014649333409296047906854867941109856312904254603933367494713437103578426249738001340633831599262942589090786922083265643892806982443991547483075757975240092751475502494978274574656233321489950365486025309081544218667709872625805075776933964178511362914239523343205872004172941479682640552808460510281367822215767055260506688291257916794469769581468084723514271917454524303096401138375871207776785049293297062822626741041401971304751990542266518268725215776776759765962147309596417191635032023041972036729115990521253814740286504858368735300495091062782670885030562622952053213024922793293785853176279838162800526990155847168272463719858538896221818200630731083734790560319296584377865011076435726357921138434998481411480325004516491608595742175209469493435011757032060223302056983537139260013786733830152089233407282110709067883478804214275534399358106374472676121350473751263103830772937159513661325065254325551477409782640138140838982704708412703860247289833588535224323788109675780542165848523948204228487853149509318510743473323448838831762259418193100471013949077587529198250269802630366477356343155087016663310690827829159356776355639844323870708643047639571075749378714904529561084648732657789018007945280027718067077559525590566421550125223291627012039533291428586816626349712347316626263487120455328601997358121503634600698768703058467533344944921196316708803397373514585051298183454562516789823908587074747444314415907617394783637932970758500606377560828921478943167310147709335420440792789339428522621801088364404100374715432044333727948030535777458779057518401386613359966260817471514184029308394130361945991385136332174083221148455029423716008883585323955997287781891081719190678257801729074925238161873704564621630552758877648218598351794662626195046101873880026021896106394102936861399478478881994057378666250685345453055746967500384092339745806219783289501252456345101690592209327246595699357169107040079125512570386707149219385934043789608190893892142439066738297523685821976801626483426679238916888420299925251572023852734507281860400932333079681693218673898267565122872498104579714486044070769267415180039962299957675517830323146811168325906241078657990185144075758514892562223150897172221531991745722905184161014244393993006885474507106240672811186844786157859254691631713524693111914296693013130388358857342461159455043805412995832627661522536009028650762375927388414251236808587902977375078695500091528974875195977805650295275805182494866675833210100323677225802949402021284430572420375453292328439295758521834694137940843228193980032134946430341192986507869683412014417561110020712831982976646815124943656723876246272586645635667364896365786007880721869064814341585489346721208473445770841214492850440584053803550735883311931156769379252443953142320802272507733278283092782066439039523762448742619846551833316663516437083247200249028518525632297857763491903025976410889396273239350303830814440772031995011316778477054012553613715117526178058485164082696153821357164148130903124221431514846688581548926257964072888922279628936715151229901892416235273983974778746702888159554043049098949587766126403938850186189837155546044908391184060341468626225884428908251103338510749802310304840840787833362897239455359039400434577184439573028640520413838802776131338812195947679730388391347541285324904355867408532153478615676837737060813894786236161256565840564401677414847549520983121660292566101277533931073222288901020818617977328836644248639790175752077898632641648046526240834620815218100937223518419940685917409167016633395220686111706621124478895444639187929451487868605291808247100928804037357517489916515693773959378494004921136430386770015553882784969603922457917124929477274244551746361325573417768047433038426467904911395016090992769441926429432562504822200462557800724058524032997895470148522777486822737334816157647468644132615399099549635940981059355132200818516728948764491878145816197917523141240012886187275953932823905930342883452661638835259851744848318412901620043235876036028084001015723901234598983430741396944147405454664221022710324129822277520238363085056841517108604820217425079651664439276654481882406249710141094875917207950895659214654664447351613961748707111806438878057141128985645284893695441619881349902653017204847772788157222326299099316728084875940012715948137425861830294965403906496669742082997655842856381051059097731957531250984254301331278411781961678377051232290133451365174524236283912723376459006505647635557744927176995612762042301735796187639317924473983904106079573640472891722129040815510135466701668537278236246641268547085749215255828240920456852373296006875260337609269998492650582108407300697335315691335019248591830961146822836775845552859009000983525672692548158187919643667620012259122720729682117531669226606370004715127634053880475918865361148498691138924267006119439990376827796150005832864589176871544431487912951790268648125573402906591726104187833228056748924086585086808405966190411963867603639331024814105031634939175468281976460799248985695352305896909046913960403591187785593201223903139496655590405081696503273361082796535173211099623901942057614467842284188740844175874622273721807367866409929000037288202125476019305108404022834974438009579626618936824819625669691553664020129706026678165354954038750572422041830044228008691955876800674601214830122015642175307523436797383085720379926443074588616477404842735959168389965227934407609837980798295202841432452297294629757502032935077468040456163876640373584124833836056358297787545959773309462786276288361310239082002571803529848031459789841037539183692685057041484665020741811260224632068392789769182647565515758888796593520374143706142324244951813088405593267081945740962785793389397568195292718972625216101329728756130020656422915096827268581117258061065169172126629397692446872846540344187823281138268119993576043907132149076981056358823787188760466653613291013274541611205277727905313497640911416872136001076756826820602508337325801937249319261881477634576273084363442408347454735487839168135574995478738824002149557435693395929248459944043446938341584804267181561119698040387334664671348402002958159314317526410022940477360105780278049925545708650259253914804179417465741424170440824471695998278260602875696357370995886876965459869280026396606899100303861838245614710376743275566811114030055050587150152152031795155460584462468554916254570859938961392669179758535885385359913237420170553344970279129478695759705787198343977162071206882430657715084362494084098360909627299968602540548634573605836738228663604586571993565594875918492442842262941611323713616019196489033800679790117794683576748951226066077086273093582277265823696852770893837371351456407370969549791299528605714436457067403151092944212281206331844580634938559682536166793329720242163580282186304674008676281649553107861592633116886897492412193347433537968947212149128798431919201314273827350078372604434537256067649297289507442752954828192036049593610776382037125509716330915491120660984431712831187619794539841899943838400320517848989904845954932882491152175284854569050361067843695762654801859404904614197063089041597117507085791868534340541044475373255224185420394057381628784639299521288885920739218031878763049122570022595139682860504394073622682351868354371827273306510688348712135631671631932981032281774621526343228899064682959847365921623524099886106034759507769990554069815459113016817848626251992997265802594430949641220546527190999391975322665413571231885157500337412465113927851118121231470860544338103904575774239543737359848551285062855894228419664412760498156707419969963499836377747749033865529529613402951219732532490777884748444280276559445189958959437369243041850332319030794228165604664619728334041352089640341589794110089341747863383714105617402504931344345782029697439406959194597548995109163510924037476936011397982297898594090569965203316551224549873669907300875351474061465365821295794267275322180910569782764085772042044123486607376473373131722038920618911780437745063225914268897442596206469740956069336632396374257154655573319412653646440094599092551520818849398539148126031013303059534565644650106689656112958914226087567671111623613110802228655820139336832839399205299710877583883077123934892976591359063061775866578739409343657477827883248296592014102210877251760200559895031400277991173315701290683227198835613065947947868577750390358563929002201178191249816244406457699615721461314020975442560488320921321680183089792933039329404066803220257402647145012609073875460013961620339305971907012834413779168229750790402146438500944103751225794397010214916534145980179803520911520740252897425493901129557201380163212858364220166424901871831797190489263925867825923338709195979635953354649070470694393536445724430807586464560140037368587757562777517560489230456098103086504814845353016620559525143483575214525486580919370308520788252256544456603288695142412374248799143659434174274491179538492345073379880655588473123832025310750056289399011135794180642906781808766464087210365299274432542786216312483047147300539680235025276244886208059828998223992682134359796812488826507898274999492788112457621842985978687644022745081414112907809621659423427734029342455640501302422887994180022167201627264110035181241070877888759262702675904887648774750493349571149352624024578621721957981510446076481279453796936246548559285350879234372300967688319800519617798583646892349181718150166359113779915973035114235480058386562224817864447214813386299237675131738895337588500603053869755127726623762268323985045431666933075898685238308129835094200074164424638351874102519653395248177319282765601365154517205882165931606980746050299295944036410802516896990389998067675754865565855230180961482705568711866705235321387136886333601388965919159087176784336310027636792386399641170963191021057251489382678506699107479872500533807376056471957495782956984204190001311362541153669342632076798012884451629070555227537674069697171795066288366701407345824371192720015455331934931188731690227573231530741533979689360021185563519555885059497339784854522607897920490257311320501457496376227760446240442451833430559483372956932932437405337450034118773743459616935551437444188295885895078433275307920485231099523379590574941896776121373810479247616934110305415895178384123480207444411716669470697974563546855498476658856036981912765648188773784916617737047365204091121663629730488026075790963067503563702793509606960381852232241382564944838986769449218889382136641970345410273758340484276584868683960878126192133746538237174275201619091449097935950546230101469779314921561443846244215376188512297683995751784106738742551916467841051973518297794122188639362159465375186512946411664623491652458119213485112386536884250275336109877818629458445640546097708546410074682059581191062721452364036669209242561824561389794382137778782649539015990728173285347559779699775204382149774446341125776480507974230571106430798161054447261747005288716008614008819835542620326482387268859004953823082807483607703844504510058138823319696914925723990437510183559461008968433558668862122940404335580073519496652282493005306851423510033641381002916844369444885987219219279898254027989945060469391141958253787586132323988808651851280038268356980519510299782107461291358227392239036361219029182650002899326275534416897066365525837987225216230524180742120776428600796649004607859397923710944195111737078325936559580777806885998532474902027962677230120792873829201080151558517144447809270611050404687938049307055694943717426899411894674889432141199369218326172601781217572646980636252594452563578655511009251040161517190577286499864653835804217902363906346084065038582352700111312577694691863341662002978704510587175149493011715257077209687851009509868095836103943156254103607187020974208370043071326456870380138113981648578436262922740796481132807609369054558270523665180046821738403745000069120597993085486883270714134408896933830003521028383304291613026708641687458205765241325089182959731013920000164944980236403900331430260484878112044979938205142713914163956937113904287063368348215229329099281372475054144746223013505373795098788790731768171528155119878536160957716696321977574916672554519116407686844045447186814829707040895398792566270397981472871755882004701931205286406791311145842054289081275714768781235795244975475327978470311127169919032304889314810465780239729966336113108449635778064937420742171476859958752090297582141740035598101641667954429920948600613582698798383113642975387113779013856317774812231060099924669593083248343771867903813766341849618865987323814327600663722213934300380708754298607441141027472630227744385993708563846866366741016096996170376154425738262416635390420353189749842417578936984668035485600989665764688314238694927904449821415770568244768751011892092416459485441239315617728950859078008852091534056280523458991499193475046568489046153829139610460621879546254155874101806234200494776460832682969521569812275800420943017988565313896675773568734505207168610093992426955515382371268184679456388414485993045583737797374774558867211496229229843444121547681590414351682796743433333532397009812999773339202215682548556238090363528363991721641026660080920542407953930702001514301514338230164249732570307922237990981729300700468542085611934815035351911624046115061315506543486888241327197266626474578053591528354128998218501186042358387677364046563950154370847753740544918524959690598480479249403048229667332111389511557379614858447838237621296416499993756396169290778057567284196437465161995678194314311231255187673200664285620024822440047695848211076275159560178978602178200843511947097268203662903297114895832450038101791114475933318816473809588467025721503033518624632693846909321670350563714421811775111792010326556167793282086053899344070432519045134573746872130230056434119820773538886948263829917975239251724030606585924583438590269401080367069622339804692030312740356776652551055661034182862038840188962520947473107877045572006714185783071446084225430987437025609288958986528678838005473248425338137228030747625888385152623141547522160121757761843263676901697293530534222321401999134265259937572410840269490351724785959338069887596821252735805694076643049348533808135255516914784995166533502980510127424409535522468652784753102772530821860796890068193981592457149294700668493048925813823307122135552563770632300297489148761669481445726931005286059201585641318030178136738088735008495253267611341907855726418243687126951437017937550235693193412669467720285919800110449572569520263790265637889943371813658955142934236451380463601394115207349879349077040609728122575511674745505054781440715793335205328699883923491428765335641169508479235486422432171713028481828549444513683248506059627657470397401342686897455499533328542195816391864841545793033683726782152533995320165705818397444133903685239561243462772742824362241838758544756581191575226651066558815201561607822812414513684402700812756723675949610080087683210070492755447732036602982113507364057612446941599804035086056495318394198121933583637499496540941898426571577921319423406416792080832949866315315991800135950317712515442070008802495164547073437612314127728955270289333337744855866447075813609712354548151083297047801533058619512350531631512413948750560690182043786070150130622599331064658950546631191735304721714420054076551143166595192010859768037478960961404353916427455802739495196056683421378466796023227233465889979030738511514361196983045246726242568049070849485139969215863977984266549324981145054190048942373196507383523363464764231552773988004567903591516355018470719860041822547949665657686988440481833705558975993179974364817983047704319689319355588536860380256543207565846797812384069640920548134279139970842764112229759942717874985603748148174059797433197276350147075013909979762584536585665155139683866707685251250731540370795574910560714794200298223941751327504603627975693867202694800995735001364607890539757932229686919339723492170541639713478082633245112421423362237071669253209597112563065495529320832915944654327539618685608888103714443504695989990004003245025630035961509571036495556625329176685761684593741948964033524554288911610468539542197396780145733595936068921794864910328607345721543384539395728711449700616351810224478143679112910890726548308425535315969880734488833001945488702532356974695225128248588767720535925895324676726445875453441135031724818167304955988025353156599130240557446251357131771660488064270959242246970561632427346281726191352390150346020868157506903430933371306760539920186987801952336683337649046406322809524939116615685009826272130096595047117313714860122264271401369186960319829931889529977160174699988100179957476414655013760958642061707004053713901857585101080924640330082609122797501202507752123025079584358353874188130360306539228019252342626893484295813729893627992118344737274922564888887923539696038969614194398872220127112946042816260548998060546572803583013185393106462342962337510875604135022962631352237874238123937239302137047196521395699602714702715406739773159015987773150047117786023236190006145100523051703376473627119185455989911724258502298669756953457265803967519178085938093982273589072056853832599924873209008075515694650933912398164571385336398792641834568082989734266540957732782837407034512251896261714132798850184830601993283013145056585158854661330444639192678396927855334034142808057632724019129885448249667205742303638662856512233395862417974075601271967989285335734963161600181499593178569959184633045623134178118032052824433943095763987397938775509857649371169700843787791516081891980147029502246522228303920794552652647895307229346052612302826614624247374450738203536786838120072779448961758580416160887443805972115067116497491230061887545135481006077631618627159216195851977081037896505709507071663431234031503108226157774940744481708607304325884699549789020832988474249718322517651565317712219289427655300370127485433704586735487396836357855119265956712428085120653704915031340076307963086028733043992293307797378561079933965982983142986964976377543267504065412309335933388164550983938666685577349331385708162719392098082083777475715727189677752399767819142064971714179966692030942423477863491233940879800556315689971900045321205612664943930465377374750851541184461362051272195845196169089412335170627559882777087305834943543421506510694195693399411123108732478776547878897580743916119928481092521955511930803052630133085222076931883751360139204856554420141916316666304662240028799663286659722961404273602678432461458128510039276412468518816707804110880643942678690600475427489924570755682768590190110773107674796254814723441515266919720071431110062619001780806032455780977909575071939737968915154495941668472655302984188320286113683343291040563617068900898494579315050127797815327576196770240521741204495854425666965052007836118656405467489918306749480110539876701159107859229714243011554896249337050425034642855317275823183532727595218574305849115826411083848543104698557871892582129389755566466750884401272799532145674254205827233866473317237549646380452284317965557872443319762552159397500710260352596941474107087836013479022098834603480934879841498177871767243799810156412323234369672624783084906282167348268273374505143896050721715996561243711808415697060746781994083612025263369448131877390765970257960394831862597854906828535033535717419775571277575785771985822059214594762512894143201471639717457264374577108272725181969451188487269492689110627347054625704869700015619158870920017260370028299552730137788281118145735673233469244812817897204601509557614950716850611026493804456058062944046377987612143484822574093876200865221184352037810725364221987076540503596553617465762087617675279441126239835202161285798063635487947106420749758965658262055463780381611511348983065583896383053003884626438950267896877099772333902819646107768906935319871199448211180242286806554678164995285771420086782988441063702922355034153770257978788342386302249425397370697108354217052802513224006734369046940662798750949269710181665767035920982896887054823216465593823698042465143889147130857398979100896333900582393916146982566482430383772146319196804031757868211572825727848516565331101844231880342477089823428461409649765716370847474607499979256909847196039226820209640469924334648167764135905131833629674286123518688169668052664310013429886489071739625247217465591277776150698320273260510273278405346673225821740254243517147672374637344592353715389512872987383149168047876604844482297081139065118501340056098449646318338437957795695164673175465404617194652812109763368982219018328916893252948841180301313118519566522773977261159252930331706752475593905427017073001602483608186010667786364875611981610010783680926898606065537276383471041589652516940398704528115474073363696677357048314777886128348830778477275573127791890042151200014991644424202254006619640523289343512398797873616734791569213453492337838243947614389302069945736648552786693572902180648659127457595366842730710984731190611837279812938434283011972783753275263819382289693099498240510718223861017442809576457323613682849055634934078420208407657567323353896773517491398062704322586329368861808057700440916313488372016915286389446342527346295526574026946459907250957639683226190122984500641222846880234531059204514040580095606377692804479214490254976557578775035446634133937319924189870172201085828783077858639991665735048870439343070331815927565770861468556310015818769667660048106609234871969892649576760051415971423590886227862449278997690680322812333297242400551647302058540597154819525705876971348763703869085061044940809543290665781693315273310994195040178652869306221176457515433089850090789284635749582939703189435488170711548597271972435317151495404788674222916404856850093068775744824687433183937225925027731914933411239700276303996117050030344794817956373698123774410505323201701483853671274558948062776960488686414793011370876732887745353846491084982951900421376483672240161989643910183900799571179259547431938299739931456396235067666863904822509165208842062931370766400855529824548087816164698005984672294143762623881553016265172578930837980043924935631829380461618440837500507467946732581696498809284765943644258644615867094999117620502748065347533057488903030998973456514139689177434242899337790190397895753769360153562967006360062957922698298209146532283051864096476583316187903520611380457451210402941586350610792036071864745560089501574180566087471929453651608780182934552394885970539871657365954901982390295481696353562848975967997500902497934784548865817816913034449631073986596142190101292780509297627568436194663080719838421667394977006188921043470977740221012331412997034432815503827530810324091669639954983167423539236541262425169196904778411803779690909466143143245778151580452012119796938937323651032959634982147721029439563908535659091234318928090319516802140822909074332940943279492216292270841895230210963453518352447153660518495166403995436560488995170285185067373784542016860042841068688435901744237820581857492387535810419727569093196398092137742842882695440097430303044980417902177159327015187236310711578952827945395774685244519549703151088648944144442609060864346333301231043715471266994932050247316490856302376824104066068387939191283034935074941889248169495588081018972745793009393304732550244221653488436934543251809661990489015895909461635118431288709798487160584159457131218302467626636085252362500147656735584599903029060516443607883577139885876768630934943825173713519060069103475481141166104258971749710403178349382466648000206336299839397707547395581828239100687153851608412012534744331387502804529558411169964055418376218748894545027744543778111190524325083835256744207469986968192096408967271984896815895566626383613643749086120430889168928668942771618575200462939304859513259093252235746468795366914360606897167180259985627470881495608328099375047202308906409736773648072045675063105107480839991102939735757179224963456803133188572354882867817795962364656060614205435441029298244745597013041419182121211071860881346386774819388038567644526505569775928605629120640092743007603987132287037409460079098896081828885424270523232534389975539848360984896081677724923320352693567481723009792805574707636204945455507300626259023415478599863090940695943454016364723575441778062928395471020960214406555353843711929707829450310982351098535682984244202673433054875424131852822380156679614407876067597841166322724566555394031787282099652777476229799347085576151976108723127179594522345094359337634825213640424675577515392012603325834194373617362216711753301848435282980886478084129954953960762207747453026171662411401214719934074655417157512494946238465882698998234503415296684965925422819170184562547133708250504573536227055710562849428858830785136492268252772497454474088393701083672281416271649079053210407628305568186947870425580592537419456968842633166227707814717152220086309171849309580351233686116407994283429656813296519957131071371895540533768814289115413712612537296802598841397028651471399374791550740777256114346994918533725843854205328549153109581641320375266319352073348394317203398833348696122578981851523304228890346563264775405007906617620145497242284435877366925567509529857232025056958979553919007669816941570949877419865477863179110558441159815983670105011224206594890674600469881166788159126920900067324314017268563326420458952216985843276049131884041796828056855404342160929757095239037227324022022546801566954732866360698865781228485669065035340318806468706641047213856720834567057092277523384437227763227182345000567543595292966959995864773715647943399927052670691553947655435897068528040032886953834695882199310993229897526100052047102407376437282170396853653369221771227373240047645490412839794288947486688024390202629289452244649156980650033644439507985096175417772366403969609686600301471557746480208692212651082229415377145866351250447858476759058540424777027995622147744678876410441338015127346389076251853330096862678353330745028498800326377298353371431087409034063174995161554690289432305598978470365264969766221103701278252117648767247066736016858563763757127086785741266996777615680617219509932337063606916103048048074642576194274555531974992834803500263573853391271192057248790049190902116768061927929018687923246614920000024057464722002394643308179754718608235747854529756379686783659358482308761074438735498635767730665027901922380980511791546536365355003563531837840363145212058844373313586972147036132092906175836641307149226542538814266651541308364876312511542881937562930797020972647469327182317083982125518855709159865723765117398631692898600738650971789031760987443063101342801155498398114111243225321805440890738683448920888305274811625417808553544634141161074112604586854576880062515776817477647836589559601954138085358761694529988593241328449440964296897197087456144319641182242548305537370120900514850504164428535953666711201447179556347660131812327828191952544430972879943091310316063036570101001632780115791008795579288666468379071176002689817688050206521774947816008439815560876415388761426846360768202310067736380265616981355475119023623583108382593341306082402433727079380432296018023639928731682764243673173941923056792613675694235875402131745419992431498683311286188891625214431893466705130298568766428484470448284761823756761587888401811033010021103102674354467167225800142977745602237756653360222672370394123665654006791882755422766091608494039762130006371774495106962896806500086268557540066424106476087782839989778901051477317187833080500786947306211378315931944980486250129198998465568299009137198573145501635949062091898064716517391368384099294338927891233514752479872276908596317845092058285147855899505528735852947038612607984284627349100807975850493314420583809497465047494370666325032010905197291343823523707491886636443474298342185175488233681158303822561845805855883925698467299821493515557140206799242384577581041616838108356465486479538056913426344802431243630567610600606539663388051124620196473904204585758929085023084390601277325362166964967650244219176163699088604293151120173552287652774247739780221576160805031718711869094727274030108587088066264442627491336852280730263549889695375746160726246782836832882237604974248971808068829636317616682345742453043827624194683356822629600423822124926011983664315450332305165351434898731584623713365473125956336112599336154531551942516493459914729351427850360354034243113768186995469809607265391281455341445229321311890028676212885612814442718942134838656186894973111957142031462761853135345738882838894810873939590204559828167536539886968321675236137841617700611790276291788438162066562314946337102438877005202000882377288901989986812767374154561323290690165032780634537973034226102915597581563422700627559085969864636970967949294680970123906212449276060466497070164946437716341324106532001605815814345003131240006270120400861566682661699447728459413149834533148165133350002129504440694976515453694321287475752312020107107378860079949045917324183675797676021927442860650050378746311497187750752972929721477454559713117333081727332338526396457500609968735556636803066506564444205256279401682696005029817858009654175058538726332411035325694859220950157821971985854727780332563359366614205876925602241393390689509902178647203828371575071274722935050185678134953547274864148720361324553104661148592725876062139440661100781645448590148258824035198080039095729565541208848470865177251468136117239076113468047269679911841916677855515070007691164394446601072613969968761096582214846348610642843065422812561658800770404594086649186271085211088670931904075610317241786660956078682989778794559417869935874798058795920610512370146427547977547278297794143055881488273086484703434150363721519529604197364077487913989928238292908409353462632435104714010520569117342320322584531161144943688327131741294087841687071874643314893040095440548018729041936487721440028855718657255543689857283197467836886505234628108823130995464608558097696067075663668216344357744452420990498143315514504190932871250736192906738320220361724821058361577225926059583788580848223993053695990953417512015290259646648040791432827730186631990205487096090182949932834954850051565316463197655108002052612376542382065810503669610316060910432981820751253829955165132386389594637973712445486990902990080925164937580971887456633555506884848104316359003075233966897602172899325094373639655039166046100868041971270465051236692522446483710026596218965405170636155691000809487962551356809892698350765278560661864575449026145370957346027378873433123959100023401935047335392744367419607376187548679092279274389061315620192481830419619307901177594518025138072694922590778195609558472710385209398495394730337934886610856114953048256472748420085884818803558644299189565493818062071698154967937232652339066386685057600054045426267375800263273710340516992870383516629739094183753914449781047149353772022985266207376560852957015505252749614654120078727028118916110058405350813544406656632767440635339778168932218421970251805561100453682941193851155608364037618570198671320164059030720598338200819159383910473403057126167195067309065119572969291502887902985817767600779241322254745194814467697113840305752897024347965316657556329738988124741766218396203280812343642479858238304763412527887359260455858546602721290649031311629834474257292083935186035100178824033714579718145644423075429031398962201603208745446032417596989475868377510499976286763754667400985733694288968558203733864255442946044142661913101198143188964249170239361876093182242911570012746310232891128381032310488580984035804259502573619143277002928366220207870544420625920367235406199574873224656461348731499649658067350848044217211161318331396389683742315443830465447921561454420952437730421561609789308507311671981640725588821217288338338379945693654707712868004011062561150271502962270212321052979083373553364667532575190213361180904172844881976535387960607690752221892672869621200925544809182430371941064778957614399131031414068030885173045703010277836334408887827583626959376012586283674753308596829549436509039422332769126492220615765629200073526788889683912163387155897977603914941619183291667320829636843229350553551032813024827025411877067870405655732432640891732166616716285304864566659864722222189895454973861814184524217392139152325003283644881614208833519673120238762267168747827648044727458177286170290693761240629995413830599357355628227246024676545191343721256362228722439745814637459213629034529542391926628734647566262056848425807996624193924031011278024235275081674592403527304970513439153018081320716272902869655467041268865544444081927522783882494904052843431197044620510844317120248939769458956131270709381829877852040870575748907436374295525344342957866473203526006466588317056374593885364243273777642356391368287125576097673669467960938450136874365119441002894152139897600002179931962800834122808514300090246677160603278005329755067353119243317658049702367658736313077804841732414853747897961334556452313160133913735089218973490100625984375108139696836270518031761509141230111308689092970351611615825601664908809721812637560594431446858376901636935477275613270672081483566929443619588161389824594426542094144625037964132585698887235076047814212418973861580333168776750124568878923504126951922175960956540756645802785813162311589453355825898803782017983801805206042252711438760859880016637949118971027197237442490014106815613351782511747155647057164072007542092176809562131802176761768072610904815335681767805169492543587524450751976978149951761297180930234935880751892085075897480689328968189148560320158221331098927615760251156162394438626459746602580845657082482238704159752918504971596904957585315945275060843265891500095236531054746476486037497325209759220837869729019113240943738512353918021096328969401933568590153054738301734780965978252378992053983455316685961994731160580061138211057089397028033403175639299896971639142036292188587449076732528666720185992900353542851468416058217111492812360495204495153124467641333160495761692145409170644141160792099231339218245605263010834302927769214155379161185141314325935948424715588650635132253042495397340652266275026981697227466634158151969849632224586878229373566006853381386141432356080732548580675894463276969368837007454950685575115256441525201627532657188333734187234976294930533502208990371707600441339689085847108991409009031718983095609776447517505078285864873873689470798519443644792453821842170348586965912870909027682110418521437217765080998446562791123494509784401807848452278072201218995886655496501990454062507735970179189896776681733615661485862437877264565484635403152745845035964578501678529332948430397418837703150653307667448702388359235259342723286821350577242668871637870144107565179144296057773996076313765730603055277903531780703983258031958472396623349660123179087054379105090438439954998955860447846468108256223200563048053680298171062303706668516589468057276776074505997478150450341081047221282539617230447335892362884770929009518262776813284902636500914175695326535946309614914792945631394956757022756091793699484107289126580924240276755707600921710116461467803055270183894116845641418348949716352985499493875991303339374878155168977973444017903063994203365802545149414011344336972067716503522160420633588745927338235413531131553647350668468412690026415047358613653614933578146503327204651718899482585964291937718035937539097481997032157632136924399815180758946698647519971412016440104031726426947643816738562170628962292492917170054439886937428112444167761934395262464999298900914011932775688015627371076585983650750716024002354564841687818032254321526392152274442787122697874926742384101887080912945010232166361511756098714508616044128263253989340670070548866513598137369503445372645508569554952502397231489864896068741955583205788970370790691136480918908763110880564218951419128136134218140187184696934658593027599511887487360637716234545520465955467648833201849961226321906627105619339105028279353004479813370120488625305807764833233026843947894351212095611367156764245914468591744065285473235808919184801546112036498997525583761566972533698451342906005188235919964734565564979602242089408084718948886952873793433913062072876825925232592095423460612683419052159024911302161651772048176665057130941100172027408669376008969965762185754102214221854422589229810641057037579102969837974352744428805121580368997682748658133992925682302866893550238829718339373453333529936253148079866597024727657553289266528200135006266580637470721887511813391921898985588272657726350585427124308895299104319171843794350541026898137039456723254209528422796570190597652035040546705797537540061546723414322749371542507948197205864741222378628022966515444601099511910973147470348800179957501251107310060694257629841892148423641972789678689772629845322948188290870035119491115447859552287538462282146583809082706795478618199932844271618781597412374145918604561907573988232514607541977275340177284114832464117082199033155645890469078633553378576066305687380397589468812506535148412633655439636190261425385090310378571884897064491773158142046020128348956496783767675691925929710580188464081562771149181365592526761728588751194579305301939519901016246115358691948026698555144519890497857541053743583076279646239792082010706037044542099791422755811704183146669808357478283581540372111172782920460083838030233087386156224436178523685125910843173420330817606948682939334639063373031026338168315063584350262465129697573848288275545600372203174520383581389861325680147133935577574067475255545371801786491979922504362059158070672513837790560306095645731249092300201676005580831043561901873041987449913406394246475603150673750044673001158454337098539365364788302540184341670223744077268094708386844080546353386530421426628043076474899936261337148838507195938099544447655748935657734218252755095012518223946820197221186973481158063885671314752585397203283495555022151450619689912400415446807391295822846818628717252233385089551534433766388642559558627576051728236583799685006189275376926410310344364505546702917084400623443954930238470206563809277686517399779521172964236211876228361024068260141915907533004360016953118703690836372679475258278635381153093841016635256243346108829165608023564758111016850500686437417255179236162129464007069065090821028529714089743152614580734891878219377706199683513311674769938202621269467546173568278156543982166050966328284454811868221150541149250016093615857015685361943395594603253859303891643797191113124818917321947488665405508799427678755973302130584646233504160667943163507662436362559084738206821375067034018204869025721598876705721220109771462853778495538001892581365636634443410526900295398692508049834646563757103268484431952416162800959550860779745597460721373020129313417833902357765688869096837209470593444679794922171240243984206390930376588880373404545138032699463345231996978011966355796329095207224416603263557863048866086185937083548321570712832328478545803449548506056677932348288985208980902462759786596771142156678010878211306406218143348146135514171828383075244809798688786173147782810759740207279250198279728913975437989034139236742911854786958246994083616536148776103686072704015653034601204761833251191042268458225627749052160755978958018841749221363293995995269186151458486741204134028105477127419929000313752733810477276348096532227982666792094624553325525947812419599406737542808985285733049472199042121456016405775197705251617324595020271217912554994551001172877204837945831927502153875187811321324955447879923344475468857328895428743227980033170283149174501761474819045495320114996687270652304764048935267695201527697583877604514788545997148010683938933217061092282519870608757080792773390304781637665270234180110997354065041992217427030550567279390323225812571337941294901211266759517968258893143307559036400617678055272100939320957685577740833615925445658285170773074655417048658187764408576842975836670419631169304182418705866298460375350422847128783650248004659957721007650341981633582018385195655528672554389859249392904885244916741168076881588477546071183413367431854332303873033069581524071878614179386089805585346491297581159042024871250321018279309631555757652170300061145096882371198448123544416264838678056327372083277271192453667082544196738156205102968060408832719784284030445867648070637874307619696035363233284839411162290302042310323280147117489424001938351922509638226300941322840960941716568505823500931473399540406675081426563746854272956749437531408034727029507234561950804520214187835686402773945109627374154417444176197740822256249138834600456389568635204388494391861559411265212040165786305300813827684840182928416297416510753247010096950706187296583661902428316043611825850253987123794350178443317323040378566360518303719092931376304495503615337791919441613999746343280983580549095882041320726240929963736158900561568634964619664002891340658909359930753130988243049224093891963652338419852322028089079624563723483429264550554053774020584213831848746200156785986788956791707454177433054157904701505651026106231906550901293105027804081624797835006769618957232383367417113082888646871592373117886420458343604069862118052440321830568339392891257665242404063621019257797664352963132146613263336857082882032414492242082719611617982422966582135219680589065039094047166627886218481295975822130552607172788256970877762636333322821056723455296183438985882765641867219736998981927077278420200363012348053577130222097336393590521686954763631437625109447017088727611440681498198130883952443252459123319463804074303335440016805400873028570342881123459517231095038861635579778944298016289184547776341169980451834624716362190334127367745273994785735346581637100853956391907782954786186359177967454842979213119056304562218470185646257538496535061003255022551772359678835445031623976770746865740734580526704103749274140646903989127891818104340654941300995804970626846301039433471576369420909979616395075715993083221122793793831467019223903513323554073445818920505310543104757453679786838606008126814415395934963278914938287588349046399521237686200301812816580176462757998996171505211711965126351755103171737626480325995898240177124104394784471675981472936726450370371503038110939921619433558535289552164178461417221183593185730899782699714028597126239578356994208373868607759376722371683388115152659338889001020533782351867303726221785364164830358311047132251507217930223065428456887082501367099906389546714579375642027629027248898442766153380824595526149231503186855895110061096520977798075410682663287827575348028098079942534239190358796901574219683372522026092417721047194129239822331171926128116579153026834609189517052574426978386929755162705892104178883179849798133742091298105717683486943274172728645444855483303170130198175438660213289320743210896563570246838573270851933785520544077357725139107689390813804359793042910610827248422186708503398187291452383421469515545455942525123869124763283745330364880124269077256187253412359256016116957055784717791194478388063017244888629730542447328845014425310591881773579668207363874148793664844780534882676208000140917738872275483334971479908029725991414614451277437931624797158828087382761455865484995340361462210056981338615551745082657736745280746037003964904339919893780510902033357967471675879502489905654578722310828302853169296709649749283571024800413059134724807166230067236624274156436173744689514250482725119814533046379049832664765162345595611561570606317176965574347352710050733967139842640765683928256723035392890114764403788066706198043365311134282497057430364291030467871566864923898068133774230285577902891316208603465587793386435232385843606721603949106686008844649649719496091073973868416930685238456719269880135122184878032753184343175108076575553778013473439099776433080101702622916585615146254126564644816429853380668317747710422820389577329348093726122379646497242252128662786873907440432185753135125172111618302930364582518330344990025192701826690771201111216448553354562303032979273000901688368806318688654783715422390045161483292296045799952525918503518481526969398862349976992716022985579238474677864724381390923867746744059943950439366044657707853383331629785716781727580555547803647661425516710900984824749480611223330980741056219451603977248863987723660942881330724839833295317171120711327086849204297444824640391911265634594766301840282133813527905318404848828789917077453083291549633266313975087700313696674513981647499320144816664927318273026058843486047275085284419401992142293970667547960635891127304901160052265282444972575243931593938456228133695413692085854848163170327623524927782182227471697249098425367560535521344364721221719814820554491852273723990352870382124572490032098579658145064359578240719211383719365818919229822859223344565545232336587616092266313439142338206402480669903270633550408894831787633611567386486803660550238591450807502121464020137264483837585802846236636674887664283925646838177966216038729632675392252355910222606126049944890331285020001133359286965106211842564414048767812866269432894682409862277657540082040023143475877548458247112040131148639295207246883529553695787117830746633197040277465117953840178558333735098957779830463676913390416837397384439294698821650546371142665023717957190289259672955116946433627062134812137659763301256937464804021523378749081898299245020226899175760657084724766716224433677097488928446688031995509960773587493851777255515575393544738561515589963239949963750731436724074579375210792390131369596089189441145233537508737471286148811924416148041955658745842601544188901489838411676269235924240913624910057654476209635499272634686062624619967095118534290665693965423697843108130492753872547469470740207270637665016372774409840030917401230434167644167204993300433636756624166045065934757755084751164425069679906267723230870481530574019837958170448443146201931725437690764975646061184474709683117763787704542649425042054774644074866796173002334048656445460302259190542860164838791074806967127003326393759057306924076020124544688150935822320556082727618983217393258079016993820708822128606968659570257031945963191825492286901882934665934717786316327249908580767170648519575433017463513040590489490186650746282000913242052846637365035976205938601385247024328097991694715890241485901405321173978369073609509945819395539892961812155922310505265151222440624619291618100633790842231246878661920459299343341089014010782495158553201471611607883529154585874070945663562389942018394665509971473427543015347614660495729678214335140962763523926743345944308830423525126772476010843153322525736355267884365740544264497163224243048151725648379199471824042707062814627387472224773968101144942100228431025327301047930830060150716066051453632822647540212010428650033099802858634718559382020639463828804691615085012093969718081132709439895997659925555704096730045909046449722684315240435798617213599597012891925506376047670461786168750230683988614495035974584504327083022054729936676702877618860475008984342672537665220941111280256390744221458235012838320224679462926142307467239467110570020798617861987906626026338935799182261626458633636531698147799838477232536963419642901111193298998859814473418814267024107807343410410671997342058391400897830657527115356754480573112547230301161205446502629695752835671015790179883546411866524843087318969943477147183308686547777702827768074653305383553104999347314057056647055036597495375694323926260886540872407334898654338234728952887996050961054810281664959988394805806152736946032735271260990834079276218199965378154028686915370423459233469279126042621985844038541566633794174382559369880353371352337259627229208419938069383130666840221014455957180306948346527059664810615675097527456602535136725369168153942913548625719993172799901519917031570285269810385924557223258257458544858518433805715866174720980013805192318867682123551084826284414710415043332502028233885159029176310454579041284865007536829291788134958553224127415097980207895582239045165473341572437094765058055596527420421282927041654591406108848821909951558911275409815972730980902430536299198530658039602884495231336106552525812188778053980375512200865081888640551381967536499152658404287526714425959051268997896785986944929939229217430369006000528307779237733647282744575271080625979455029232077309595150480240692237633665814031502266822271850727210937325845914804622175182963092821935218594523148207749846615510654306061606628080634257048596376027876954985158009220453751473980610578111138450215932571714855133751716616759569580676216624666986363043360863062068944767680084789268180702493668553064851215999667999753569981842819729279927733048909531532011105910001227511376457158592720104434508250979533636722457697694686759910418484177610340903616976413187225075265693211401716834987488537330582962713395823713056187116587530999978021032421995740078158551454220284617615562784064017572906964244131117463735746669592253927141071176191661430715029555959673000628131467885431379254121741371655104024490108107316016066369370693324709720554299013518756062712196835116187964257391602098055031568759586200634194527252268813414229046437420392345223016713431981890903467524994451149756576635725788058702090546368660749044238953836030568985993962134762867134893028177701316198045512498757239975991126221748579659812944547973325773913958935355191113850354823475430628197659079466708144221138855814467112291456293129409783946483384040504909709431948689570322389437973511091391757797920846885988859781580092322937501765749410632893019178014387226391023897049463086269545376068780528315509551698275971717383943434594764835192578305682456670794859099836914885299930919121399516065180922869297005721001188415530562350360585007612053458533844836251297178404160222986524544045002912468300556330563690721593295917926282926826948941258290714309653731263103896417172086978386543728089874188216020950216935077352159839918416024851454335522504346384579459204595088008961947363682095723716980099348405049718481843382056570430361223468304288189744831318519045376985879956372333632327081901773457938871623417666526644614887493943776465453363271887005842997142055367969639517754679872614380007860072484529160192448860208046425315388129717945909662701985296784633443056284145363797983348698713402562514304929324058165641922439616371875479065016222262148919743629687670983894200026256647021761083243115737804155062195929002944408724517982172968880224808496395181483816862554475600622671027611570079229918298695471145357319815859312261609668949228088495619037081794642905292746737357674427631433765254127298027060547736969344002606303073623605356898699181585889762184684227302889576538710090314959461379777808841085595821753583059226818872160604966197262994399202941170884144289353207338274636632377825272095021294148440936364190457957400989191063452276813699744269236807872814768405514062544221198426169453738731516513469764182252862926295689180989010338371607850242450735742200788092555260787934242072522846671558843528933392546795370353931002703863832757040153040755790616969098048354008908924573542485588056510735270936581813981944396527153959414767686908359834432440988881527426333724730576007474325213048414053148408817729425979082168608125972052252859295799562038877733570177927480979974049933155994064385514428774976927012067031141271822744776392219463729555241338396069649782474486775803317845246652464697910669857965222606715652278389390063295283626528671629759954084932894063955503861446528055885801937048109948205378690702955417132477920297136736918016844648698097752182426186042980894736285926165546591478160799868467803210369665454305091478051610521117348864925971198878734534859452896006669667950180600828325673339339221745329308901434947368619720604656195681585419606388870783550059663793321246639767822879478482105882975472816877162249063340203565851882952628465377648682233526678428952956197899072387087824830826195889078064368613389669384130555569133036698988762959886090365551799139120843899834412072255704851382453343149701678940546111599551622624507593279731522354476946492478840976283900691173969277045176719963710244134944231454178152323737170595389822969171603668126217777473838266802269585183319254478255733833104918345242190756764066825491860247208718872440891140762781427191781096909177755421598295398252002976755755455203285508170486220025397248427606799308326175937056269722973160814237786072634149588463127147677628577418324315751078601029485711610050746280219903585211682369478986116311946571193542967149013184562759006571259283174948556553765031021142603230214038230280942270595887382160715581510493120656692612256413181858078000308036330763133846075287967056707462915169805058564008385679033045256471434140574187469901749160899112554886346264236196223950548312099778482086748306124374915494368515480427027836317793435483206978422897509864145742859702773715874192901790974807091317933285647007219213423304719122876723817493842044963812410790140262132373159335986275507926458832054735705753469963277176375495164145244591799815461323952512636162988506791343663289445220655872759209602381311464215905780065867976398091379279702061091563245532698513214855154599979964868099910660013155320073344591995920410454134141489913599692547340988639062451464731017488916042137522685915605624399559169192039898906508248581194275543996424394409806983528784870959786783127686884660868595715415573532230685226868863929428113641336676667006248134235802682954067111001715290148969166620057626622892199156011467545260700126403836176294675827760084830222255340419973313210825639975659066282799352933520671927296786669694566951812344154955931278591020240304930095216854040857794912758205036775876466707890282405444763196282895604708370409665575812226956747267241832295561516819917482657295118321056391127283989871585582012599303219477339280773529153034231868870488209241184315958652705646214952799040004950126272562264910197711348068209829109916661856390186744475952107202420296046911866174786459849714004690098896535122243730701585311022370527632717744819936924800692709785691107284184729800134513154576943410805761475889567697441004728797879640391119557849468063990668711546182385963072506410080836633364196494993177162944396932349631430697618951228743155855486303255871250457910140643204291488008946005290424866514231091910136394736726480701800636344973120837184748496344342882388090043217749099031142673251132212523066782461076241054846603067049094350920204655595407262091858068544665345969087575468108740040475057787942922232301779323854882617228116671947016968278378718571889233863419012727708918261636751292265042255196187749147746620619180688762577393067654114755520535389725704081196827150311043659661040665592179131227773465213322724760772969835363672190890573615766437345814137034744861465486094861450104466706059394982212986432879201381299942754127633683321241276059331274157201137013145098068750376564434682393613039613266594386716374931167959140400786173918886477597026094002737447499066546269304543736838217050038813310519630630608587887045756558385600571676568377443621257780594121200997152134051632206051533377547387467980788999983292473897877953224067604336106236954128029465735138397471718721318555808842251409796040699066878016408673364828930578491940251601427129909617815408927545668309194961869359343723556879246902810415887338506589550597923886323673452590389897092261354000936937965612739866023394057274011548469663144604759646671442578863718817980398888447951385648072687732068253677107023325917540105963003538265108671927729511035220664227956093829328114896661380980634752678269004964320241229200836145294382487733827284841848825573041418571559433040071867290688890744806559490554416971945428701327185159404255463422016804387251953061614515157426249427784149702967483628832078889663376805149974521404790989250746985563478133988043115183000919991259393372269736340731871515624739743324100600382160449716714835032789025495202196656998597723400349082792348538888023712118778438815156469922304097799146309891590129326541593813592780267401054469230565139058735045595388164134761195703533175189442228529891229309426606553000986108869375891464760388147329632610663160412628682632062379076608958080240373474100403908095906105531438808221388976662413533386455451964376920230936920002020258267303382531770784125805507094910324571337079802956633208272900873672654317204229298897283710166530433347128954839073299668952218455461818873892310099918832238776983735315895126579819247274283847493531407183528823893907886174488287187545532642281536039507632266089580932883677950465900073894263747448304988057635380549591146478667507143697887398417043428474836056978068798885101343470711096924131072489246679772788116264783493750723985670721909322327378654202990703206157941399458990967158543896484156815898491288086666688490103496051841083981379845149465657947016113756004937454178969735666812946620400768942933039861263955132516607156732609545089339020296682056995995032661084057334737281440772414127429740917866040708421461085447692291844017267063091053744696747479781871420899646427877928771539877556413861140384563140998416259595969229620604760881466983594583053950607053804787994566211913630859346950505485956310737197515383485619763302274689590356945998301104968548364627676176452165428781759021574045642727227563323164235159363138674042686782771527143386535187950885395014170627018724465480809785340088047983759970906742232209874140042341630885821038428353684627093943565121506530737401326412855656220824816416026108783814121342094763891978890904524869967927788202557490359974616320703445950985622922486575370123803554486650800259039838020724135003611908909665831766516279523130993636491665277321413441835267591875727390670407903950771376971217175841851451725937971286074981051195369611467152571388055723763942943391197883067248370586053046520510054065654994254860469298959318985781340682015033899823817082945381027787621339515880948826559223850580637308577132253351264663921703574385236929115571440665467523847897745339009520223711556716921194923667988432871948670077519460456637881912492247630350261250650902477013367596453809516829940599575987080219017603231233181388217183879497765543002176326092606985696935196747249253672441459347180175648406401493995532370155583010916501893830926369447678771422673605121217248998886370450303841838750448814970383125321028816000298468623064891834214617198303097441626257043760147390619975634094213203954956727575081871044969220933810117122183013339220399194255504517835530303454838370162638949905215837141102601376363471370196815226432536084318107590040271314641938539077668222521738810007222722313065289385417571685645935341497225279870443149106847127976483862380737795819466594141257278565566750105362141529034221983767105762978374970793676024386544399942494836681467091067816669263036670390141764192800116085533517593656667941135582966811602258238385023368957081870597834861733076527765179124764076310534946353854645371233178582564564151632543791311096594060081043179756433708133315258900677102350402027267567692540038526266744246026393156364814525186472789838228496769180151055702226047321569242545522639168117197229661890490226515223557858449195905144873690378242069770438790950656896610970568721981302497840122905790752910459555073170416356631231823230248375516376154137887101003678246246935754341970423299034824672620663240220243036587791694213798608440049207497661951425604072357707660685315486742602141876560750678404594976451984192886131926739020845356845346662265330501725417602393748126221119813560924952463993085553585828467082509740841419032913576267426719937646901940454123529612583802187425728585286139538103830607288864978925778734218302023577380667586478006668532597476692205329068370132630477596796058443223639153326501350362223253340093117862922245293402010111216983876720746991910371501386693968115154740983263765662425928410566420912743976441553264049573496872834522165632631722960707202592856313031222807963140504223791718205314986558707614364621221659433077691254792928179351532510594858994988609639341448528963891437394518471975405204958487307893698529107823529690050933190326789379293025722051068988583336966683509653702627428242991744272707010674494828179374895752494271015498494583273982585569300808773573661446922701993052322441168872077863975536718517906144353298640671395926495371419744240772584837383259845723545384730461976022057167272557231007824822897753420091626329371980183112986145657824503356282690688977157780281888137298252447656290373705420937589038632266254255103244835463165247585775612947537131304107484924305407978083057966883836103975874834632655251451985524742837003909763384093575687907027556946738452632834357442895496481977277069370274210235578406726925524851195390900015839975827095789004148865385502527640053657132290259404133422152512720238169271328169346415392379353961758026339050716756334794865177768700255333323941145556530469436305812639108164051894287458706630663565589259093147266209116565366168202006493315165755951597560486267472784351656607440827283594200985063245285731704756301581564489202328923584022116548063143572409473976496355832646097179114978416413276887357069968924947226128500624343822324477471767680242117837839726391104172814038264445796311051518142487537210611676865351652828534741586091374105065006826748646431627626893442142053247355869195210937389414856009041050469045707620063952959049251354244785411128774145581278086736469880017220199934185614195274563847120871282068017352096682136562229725837956082410472639226064806958673019819283617529513182899051940779329321007105829306641048948046654836479574586893354131267698371072094245999106946671492091938963488160289639693083998926434448873006667470336687271445074734822457499007112228330936440186109624681014878167020234935412146668170845748862141090772246426573961079123949252859426127659378022355284802441769281215755523513823118781989867394097716463126030667659902757366574035086782310720318699926991591289516238729010128468119924835582614097737343179992096428173205907970557048614497948240416374332635868245577944157048611895288688033784688072464433028375686175282921012012962993823699492850466139895857727023791886933612607961759381509350399001569295388227570360800774206622513310589059618753953073444192253651114927341201028581192010835490282938468191906673307403702897214778275907484166776142475101314334198276913628105417515028571834830217459778355845971271114323323999833761535203243326797890100730057084661346313752382978260662740870020289830602922283003421322927357007478033583737789861248638537929028534477315508528252245217088257233592229998654167866538211515820482566503171661160827892873458074698312845553875990692308616068660549238921055390746331123472946992764027296615642625902278148572014251284063559696612844335001971576769510028859195395969258988320476500426431516710032199379541419937875950538055464778497857177311963538387299318379559985458466882277443938135118467087597007640380651305042951958336517077004301901488931091191220063985735425209875401485886736505906377885461171515001777796592374923452603983910881452752399496579724713388223511119293793815212389035587658487769924231936867703109614023062098493791744558969104844470298949474177472403826331408843743015803083154653630361513633957708135058375388794880041534377394098826895797245316071953346074090608361730112119710109045255751947337732032393346345226186966426308596841780062178829495507280902503645122105499796138369925016786222860096149122943272024240727131733528083960820436373357736013852600104329270564045080452151403553918557417545449921587567497027644434638891180139649361482743458132336941138321482958447690623759047816039743392854859617530546628475237894760674218279380295214848845800194759107652312829568220836410462181424475118258931796269699945986095933470112871970799331263950527160558815481285741515647307904750817630120746217357450326416209802140725365924579107587002567106687950577806935230785168746961137162471726270945468499580874404647622535107954532492320410040961930600991757138147224192409736265215223945271639603132924964826598480307806615337728515457557871465085009561075571382791704997502324750767045956504616244953771766051563996247353307823758650224105468878202212224869900521371371198609348877880455558035547957655853027095807304734786191872073463490423191655467411969344723862049078853206472452094965693492319406281022067927443229655169516892596530813154638515981426844318390854814379780415491263948927188106675603348475121510585175811638053013841113465443478730196264056097877283819936978250683363440323029931238472551100990196944629631523139161658146845229792272304089694789242706926704578205005401861726706405660303699332255862018067128946333093696947638934883685493968000540299424619685818364504186873244294692578131196781278334422380934973711553459281743799818195507644595753082706905617630967240159651804866129809843034549226619723219831128182030326436236356471998037031908281508544642810658127437802488820546550583606512765214010206946471668614835407570871339744588328934132058674330870369139593876238195870235853612050686348075856070732272557681122421729407912104276176218953502615932806536231827025703611328289239244311206751792052858222469486917796668210914086996735895246249371703662017540251250885102218031200462581612677347974490919957631869644602623722177116724771543041195255269725747454226462713463952206142222374099004617788712802354875654479792571799437540133139613430922937010099188119634481256910483295081397208716833610579927670211859739596659555786738692089033624000229431295356117858794815880191050663177352592548940194483598633385559119793498798381045127992347049504382262660579596500259829906012087525163410023357088848297736599330458710988441548312747150630103685797179238435284129865884828494027173621998443619343690786964607133691487096991596080468919479088605445811304461750399115248067261564350776811446099407942525587193360362594365393681887363886176678515461018010318889729956929967789403219622054377537855592372675811584561359816838191403194335838672932314052596820644195858115354844635220088316700594443740776844102735948713825292695518971135789842038793442482995288961446544556864342132398278804751795026930961133462746501481128052290000424413812974156016203846433318484583226287270153736524210799753346147200089282751767172626628430903856932143260875612722510270898922657129174486211380746697920548423280013167752869870102791570933002400510396942950359323456802851600470055616252879717342786623108200146182226216480436745160935836803797043514877367703342500533995711077016369484768307047111871485110419121291842686601225382967182973204527896415048462300608648007260112253119836420201667137717118300142249115676517494142961098392673297688716188404794930752798009559778028433392585546713083147198301622783719617315308539804662474781555594796667904406291029395090460382463921959644398341447527511851578850385465729410174154060419447835112013329388672289807208360255820932386542450764662566103357491543009275707176611957289050337911873422323543608167260842816658977155332274295088229046043605125085574526563156237649061310370780027505681196035817429048774846452568933319224167692040489656593486340295248265237613759119867304446298456159408026774272227034035812272874704110071076605107097693280967735062112173694919439082951946070649994396092721426624682684628416727872469814410761905272353540758685858593184508118640478068026000923371949256420359945172368619772316935962974539891832110073144781626129495162283111589106763273615241653021680634920466824972308585313058647684167071510615014054646126026364839714917877293100819744117478278519564481293222214156995974726945754065223847729232258558087561037563955651233892848517200389190245262562698683961897744324947275518445527950334176204977006440891415049810591330611130263700505875484225778324556821676037899494011235727004141352724994832134599082496938377066791418504458432784492472475925751015828777827613291518456518082799788053500119590663530404695542158320265278483291756464390588335578798879954320519544815888755243196289686116103290214418639508648308966705570632384361744262784387457103930767871706592954051711147348612214039236651149997649142600750558966010025520173147851957812422271808437685728850322341909990206619787619731945470725005261878630688472403890736253739237815733396474759881926218316378978759716604014736552650954671133401808539712761705836497299688290582753012122037510412997168349006085630550700445689504367891958985832274638688798760254666718204884228492672039230493295853868123919539083743007287388152158759959174382201441479689834516388230092787507761765832554649947364896598147198613440100880740850133418949054717471682317885344256537576736858868424192693984235162607398673888605681939163029830574289344151382006741612239615948014750977939500734990972671063891462947895808444633827783549489580253706484171317094776663118512054709666262131059221206609274459133702377123374393547860134895099260798577782023042339260256407631158409998515211639597270481409748795585907919050048533034653511566702108793543197057897406136454544670761876699550537448689025149368218906995172264016061877699138929909785381606057516681290804154883289208502122111605329196862076947629196793692209404356441629552036979713528497687547457514101396840066214716528274937826729608337914500181682740728419986342662143964221528087260953029423596188858246997317978934104520375189723728043237683134425635737977681609022724371249426993385257324081602527946802194333015014591072055174601500843930050849267201223050086326064072111000711774222233524808435827322032513240190914227717208103351920475048557297900258331088879133364844107084264766990103334625133379029104123772225617310161969957454140539374582282025907224216646120954081673899077803943179993288662616540274610593517770973738403692598357345135310182379024639848986428752654817053118127770815864865698124946185297672783394030937340829304870126635658241561741929297958594924378857798544940009448545645640074905050474808271791369678741394195797465430586547468339338124241913919486887772391667588084391337342267262621281466384287049789896498763174184441734334270883913891438929879141004606747680667075388591360976813728511071174265283844989890959175721521097368852846383562027987427638784216345094556428966705216297731298373160260142522413099895011064081058453252056088162715342399414016468930319064419583914671694145545465637927316995598113191028389345805841594588466292371652138257153443433391289546835490569538671917548940830770713710702574260929897533903371570190333772220459944539332482625110598802383399613296256737618824022763939380405729281072378188289310516496094045392704572702841564495308920850223623705071775968643740480744423196014740602795185720802377086554739519794631440792690906812777354496713575980577054229808689528452009569152288413925668202064143002732605051750512513721168075622364883767678847106351915170357438650513562856590739827666377891435914160396652469492896831555145450546925708613044643990520019827790321973639652656016376964291208442701222510955559789409598175843991442388859068728353010417382093190401847923839116755044262177265076087007947715327721299409208544818805362292309075222498994077725710400514020277209852478335865809019473600823801651560731284284708770521814877048232179940340700790801285671785055240198659161784623922428505430368852118856347176010203607671242356973503422087924446231054827947667106410840094041212715923788896486859521325972295819787050146117922777031650393262057568816977384977487510729857370797558991695413625356186546564137551826608193027397226967047038268801693421409729630728837981466197279462854005948320474516268105115611114418413617366048715999105612420435220561049501218527661869687750516131142434904664739459659303863131731069640063108324090905764405037179053517785234962551483876549459734676863057320484504883163516338128551011654664420615657825147675835467611536906474930631748195109140935446919003975117221040143198176807732634572029377356323693531758819802326436291957495489212550510120309006829787377352050265386146504503878161285251310460664904333918053663393680222610007928168170658698982871488638441064619724204560231220163069530762441644047850718162646770514821438699213816720433171573046101895396978384013191860053363903960774821956830962776115413279358636249600866656770993494533435122035966281214659733648123609688469862422745353841608631697226833051197495499633257355627585951985866231653303314086627117083908445361790685426371495530951880678688135416668673559574103838505685268015932530393876189978486237112298572268591060302288678077187972359874102291263804468709698461662138039218420472297891630752715525819016376704800519408822631218083438824846993517235412474188755099362916054468114378210466776613268473993175369676061315606618491748059188666594754337421763408261326541982526518198160024512968971461181911941414043794117918486155389306055812182991314041604928208340888964893536013842151570649716273268649939811545745233718884183342927353104603820205368602037849311965196464461967660130991626641841552413844885371217560874182864822694601243861191750483988160277888979723591769811125058100331897568558489964518116246966324256929532703911598980657551606122514857667959548398889236360077523572486242579646393647743923822650339152066997032449088797996098431373094689397821459968517482042951506597221298578603756421410622131900279711327693977940071861233104726079736111532366700803428673710937775708085453389369905470158635223150549213570394952831513340278826114773411198499038566564434758423215103608211687354228267427356990403357674058443676975440585684261865078346590353059870053127118547074247832478909363751116270528457749419123310556985001366669099775299819745966465492660804822379039960937011026321405372536929521960044964825874577918265014934782732842639401134384641649299366632544272031607515382025920308627018393164225777207492416206595655300167933860489161687715163372250884718765333329487249541369854293517628544930727635539636157427798451850370894476805642925558083659668872844797164827108975991621615422120468889113099108321629456791434467748102155116910769809144029058693287762877372036882693799673104884651647951595204288057933424041817666410802926750020291677209936725852257087295946669339125447658673563793490770172037434515346303031846697269055371709937719398302741109445179387973870549343759427454336098668530147887907078913222622141983106321680169131296293822268966672671740002743924340332042627941573104775505425907709054012943848057138817699710765226832501542022841768864012770322570347509870862982745473208862066864538951369860637792945756116326251623856322318418210951337427445379855161765373106064433070640078513333544480830106873104252009751608740316815848341276108828893973945205333887050740365191715847871239208640580374883763143870887886444092194311040170093898755696200138432241684948170227426789899764018678818164979291844259053696176830819659936174154773876212955761438258692285374310115189225117418197289519628773807949578837371822234820376596841283794194696767448381497914980173294398171184167645330075431520132481502011111884257902126075081950804787421537717849432590820460526437373855224443506107179733846162084691349911230340990075703656947544478563422696585144288419039028372613439639140171461476076463177058180573701578359738794699901813764128320904449824685180803026994415631269440885204507814139973315034416638942325830146570458134928971093039141930216629885555846952228506043238392005656497133231962522933319670315277147691144047333907251817626820760389408167587707144725696984591354245430259742453066617486499511710304639192398330633740824939416838151594352859075605509076558109016822175939972033297435425377375169622058433161736797214790426591960750736853675392619289923435418363304891695265630465470182067133156939615288245388289626883973729958877794494459042908340824863071334542895932221601028756928433583834996194631717221032378399460736296924182027318936894063735488470673632172065863709666942391818604193731652930696839297002944049732751136801606911384308115982095824199150199020697469913749266885070983116850128297072682014943294590505092386651124545821038770742662474400507248503418543034971371197221729216148844827196595382139869976796534065457840947777921423165175920659187257335056238712096029097166525009521998606546181621021328032059206139012138804586685477785307563861532379296054353027987855275052532540455597297302361761369838978222781487787163478261530117864864642676930107539559809663487728731526348262262725523441845685271804340958576773833953796331273151347416898640773118033263769434610051785902315287581823601410219325650796215979988249168401321718064273177822141070144863255383282130100099195813845248501754118933275446858850753327629857598795804254014098971878199229764699765336818855920386080829468729190773139609232587701074377737323402813279527915722244855345839211002876972532318241989147763074370442407487611018337799721112284789525533722955885083062727534416516152836960107445592393858338440992610911981215691397473789895316370401425928697023936616890969736816814105965709000252514414339631333610297709434646251761713093889474423194155394024555717246036048772007373555555328967240639112186867037737568072305742945770791875161198349259719770812928545012290737235529924870381944961895829562459078934376876937230558101074057955128431603409247654197475481292673927932771003199149000005592723072424218923516262061380391361587010578844728798284546908586430814954906749418261084785815693767142707891622498727287652846830513071762844005238340861175786085852847668599541779225945115299845804499943770136441177507220743424979223260310662305089970547462865062858370571522003402520694373103960270005943584746265650003749882377474843332912923357847364337359792199132734349612366092781619791845974473466735114205105361556274311782831347305880887365523273466416761060632924140513021444636797898209933128988718004518775096242049063721653612886519788186324763538277233653507612413255390851037819806137330260820209508265711513687311793821042463588841596364872560171204395617329287343910418922978108977550531462238052777703343843263294273621990243732363838408448885198804668024104103967605108475985325712960574588768101939476124507679773353957084131222706401236672508252220292367619060980555619099211290826729885087821122325298855647244540319276206153531142738025267973616339510977793939375296987610801469742192595491580255387665158118712196826760506480928319080136013935124845954037980455440786693557937110561707389375165554173052141050495799564135637311366657306146937923297698809849533701795704381540046178105387195139811847912729124919530764512242541461568670354982650062231497065903708045658501072862756667798880973844728119017385529467453809515287290404992028240228478550400873370948590421920500985731987359597339742174565097820159070790544862709867042890970184505444399228320071573469323847235983986936843045657681182042984245617693111102984358105291151465217033342311623650697348372095491103925021948398179308571090827852124956009628445981485147150319280147193355224495978154792666249302383612655945251552974168866594392874614785694440039235314696402643944413993616342356971159903885131836580956151373876811766024730904256193257971551364076010708795399623146823473060173207846567905034168334890653595638841306424888581496631907475830606492781886050155773534857353988468911140576819787890688801911644103412592777658603953953617474314771024321205010232279192861218500087325119724858454894479770933485618995689168950738226753086021498268256500004089923019906117874645219059708573916395617067493812438796614861401800194204203168067702581952448786110963657348535183806627085209637214847859581134583992299895064681258987454960264530791704996736284464212980932942122701981595303372799994322942413947977692986060763669138523468108368241586909071887638317942587331116716469702168707151791345812239442404797721147944676970478741464182433488093922369095199408047357305459681261532220138805386069078112092787105210845844796019439127565269807705218571574529361206412774811377582040452979368746853641478624217622261223184912040185277226951177585485199067828931617795947120376073519114643673642962119186116882407467526303722921386466625012659148539907295484742496566860929170973534068373669153436621059879872394549641655659589424349055397754278881244566502478824644146601870240561652974240088631527884820359344085607926591008831727475884648670832276472091076040357214520228212952013976489244699078598376237757323696694614234426635792258912818627332961232253866446362828336726329421976087754939484569556962654329863230923260963738259735130848871043526338017286335647629973597703607610054096571100256814546061786833082587547801741388873339951742628207781005297342530413289285237936534099636146838455358263274841469340455295669688805861745931381020528522606652470598872649434105299185388329083647554249469941273055349364563779279900786539917929613449279703783922268562932409979197080042136538317266410846467207025348509122688208209749861674593540885956388494910291565754613297646402748141703182751309472774180054878585761397570296749737150120071614444462391143930097796674593789961521161648963958028789857567913170217369860923136226451869047471354364217204333102965474552641719279771869327448801354114106517129247147632172748809590210151564933258874328548907953196461051663002717189643472591819326832071818631482772593383968205813668844825625571779461598005066000663002818175526449227563106510634864806432965552863337855358412954494641076394665944709328475501801438990887781526596694374137025573085732395090267339280909266708300278692691524713618192519057972384411790990793834284237703917833664172541807332719428790561596783283769662053017604241478741487360192190143266332513262003092409983752824341578342665831120964303169281804590471175904851494620516186268230664596387596409470489032533747691720454057470827373211453937387551615192805628331403350536283593669664391701070918536401271419188417566101201103375489700880773193892355268328453588918209945248043755831525338894677636050625068046265125959397027597144383479100920623042981852446039490309631645297397701152977576823779004915825211054485228707926819943452577093614206998935115654322863047488996053025837254210432294808256925844170016875847735457123622065061990973172144116020962466459584473081901567052936413299609328386069284095435015456604159153780061354527199192797464694217844244110167579774497669120855291840804851974732131469269011320441136316437827696520473987891540137594039266342882079712155802834273874189736598379351253006330064010899301900306974565228200990170835610246359410863726084361563053415915686328697043702427207113477426429503100022505032087760911637145695149306150278750892038556183308005060385703208076221351209257300328701050845645858066946753798334980530824104946135087477694781121560602355934523351073475238515653163342616695311388435886884563378789037127683198058268442897025487570371399728452187251670776477662427492474619526804626309599834130351431109080732358162091330230364589913922361436006034804929481157565786791207611106523518821111179841551588751222327984844518871015971186370826048056270060191859935826456875942949434471370822013811074584931501204420426865366266464355364690173758367192467026512352538853131666011605537124449442130933652929610199131047965729630895778187912992427242365342173246034470468984816424223025241697485436704848154729086321303623665750707365062078889096773426717195467369929412134962536413508308988172745736943997437704115535975581986448407562680300647894100380676307002839819023335190444551384864666836470049979234349491389277874057211930225864177480774500364776007292053422143967526318263577281257317458118302955518467041017262436631456567235290946143057352610552290595656211925561544579604348709748190001779794736666627339312448866086321153197281219453642779715392400087995599823704244555120368557262808348966039401934455136007077316048247459043480286943190604339289365386085455558832555320709831195624519027093006755641877300084212085559143299920338076208458682419958703767178145837854927518737790187081593433586585005366445887498385296327871079824129628982665519253184486932137149556928534687789065791642739770363246191509950312654169895758944190369750282443101238347804692140255686146667123415722736048454127895741088003434202606221027173232236599396508310388908411383422476056292056353989668456824184413787424577991956878474739235595646190152574530449581374054580340093255370852320559748726076395042367623220055236624369418941715002754338935378269006757977960198684732625049952206942146890728236623378652014482070554457397407765649131826878090787703083381666546083745777907988597095428752396925586398696929922104148492676704765992816597303941702388081272068746738888614613736857104371831850590527926778855452406587818905808712562954071135023242066626028517900586174825972199055337595519492648520608723579335345883384539211016375422890690770565891848963219122918749686245145158332063753680532817095753700213559775117854561172836973095587088280009306202833093869512878977366772251683431106892234632044620892494357109422818463461194442363417228624396533504792986422621433971949180880476196280974664817985511195593145394008374697137766198247213775145806040890620162987445091955827492867215300206845191401562421681064155691445467534785779465702853723018602542260724565053659784809074713657856679616866977229936207259507104018889620328275930942088449185279230502852938597139900403150202433349683293405888207835422867277932935909426766526320034038166325534792216098332348843124570329061949919846864089727191993248482834826591569015978135402934279556234089867288747037940557569368904299557617344916230558056539245159123075778617402515670192553537718810312630310600240658481429054335632076281814323695822433826174681703155788631517346342844414031461716668001750013947433211961571912180112369315785991412765404420831810179484762001191416700435207495779073706711820214175313041277223609923323898129782872901431985198878883272727659455366922428944494041073546281493521646469632630910919373459083805184694779064390384406911783788780983950825051631756269618851182579813501983972415296388962040762801666603062055626056456556230331618670736975633105455788225986962042666051602415965396907299701851471214744763402743195981241607355587866732106170197154945191956725920633517623466830062939496966138420181688479516007373900518838380785440635968068335095229840208423206549457305205789662920427651991841671512934785201176321982659894817331372906667179377397117434811141026268614820622304380622817042764936657331323005239311174425009872846525732838408693824506638886505518644865418688622970919029662494219199100952896796901482872264761637152785595182007906487961779638924539383737127661978481334623926388813437403188340282416408496139042371875555500408877102316765240627022558663218918410624340923519386308930021929552307980586794696491339144692634201191482008650911304913093831833760335764162879855856473034509692282836081092999139467641737697736363565698320563483463616048659470528973295749083027312296890319793519845161051014952225779757126327101147980153058349414362255293588658018650528720108041855105958749722509346313861137208013948082211531983476773579811859046173594140138601304584689563930627392129714612644580527263744708565951321772103219098300194388839085818444326511507208387369135980323459342917506238917301845327063497976139805337177064839670545139580926282233144515975881088508491873215175796325297104375369158760711251248867794412509109329586759281958494258191284860186189796898345674014219476694262201674852337592669411604648510653560761158981099492690831519585020091145137413688633451849588050942002827683401468846943002675079277269815379639981599036378402682013781169972775883054502308084920224208344378881826362304873336951321173985535139928570828573721458703220499585365090133164450678244764412235499944903336893732373905068326104170147313746955264558845029255861008012447604402266852225276554246051587185574227572396308969351786974427302293420188967791784403029461002643950818040501860215940792110166130722648555035760670312854589631180051089447807816323401300781791323679829394980918912629470012786909693431865216101427510635846292314788112521126505180589498445554930376288193625150178857985618785327056831367917488502419488417482050736128845486373054494399668218659712914225834090480007719364374852802249095039766288002716108620552199703304679096088439420947874592494819078802379950587007120692731031974668302384295415820580535942898806382443397927875448410411819731024983785019303588896175603362820590360728173506628352320758646588729745639303070094100755794364201725626015749362308576805528338259486290126566804234173204652950171910551189759509764492597649777647605443171142678936268698038746171793548307313709609233447151536469306662889507080363997727405014126564269438749265564546980603138771948618564526891990609678780564999562502117948850087993497057266753388784132565975866297293311435427436951984233119806013285080745627862938171921661791364857168168582615344704204983520638928032984695520350333836337583959995291164075410386733321888872499826837835688731315397107715026959042644358858102522494424809632245008653951180131319681112486998539239742784388265465948356909591514845444863002528422475868839537980748163195011545167021750394556420213376065653202885140908091602627219799685926483523109166720338990742488808928879866098763022242250851876506042703869376185255598374092486887242897870552604722754799732394274911388734819896700939476298010639750582767578168830899401606308797182878389187380478143086050364213698763949501666442975881066100369631389248593232106896954709120641767922701735237109243207151959958028622549398584230537303853506929033991178447008677220462411818224625141119288717299245297872472332052138620419860750582320441694275910306845571133103156233337436332864886355532340129571181432672159202137263549738776976789670123967519049757700537562795628713976943595728567016426675497959399479283564125782131502501131995835123386150774264434584066156909148829587641272942256128617392232897154678654511303965413894649708081528352884231629217238255112657013809078997496212756527479119645936063705535972010816504398228881358921695156639937793966349290697218665652546331367535972993739340293967993192582717701008969857472372690201953575341671374376629678904654985021939635007520672650008216701746595163999333359503811514128332314644869384893347506315930777520793551813962945925653028307832893379333341231948097810179366225270416654908887009687289349495698217486527760023474763372455847439105591495450722564124740775045053110268024119275471381086466857218899620922143695375487512809378374105063531778316253748209039471669276521746470687035788025721153600422014937657248211635506473666793602065349584186193638893635906105858215307796966283197525390155489621893592256089740630296775849240241108467287028979563020288004978005207821060790309094823203318934019058469834970758535558380560016172960421706709637851535604933489255026524923156193895830173258348948113333785376334542317127281220106305537224145437488750092861702818781446715310914275563663249650406813888571985977247394843518268772660684106941921073792831658580059918197742145803440048086224072030271641816772285969663253456046968791795990696442994512229448222483278965962384161428324317324433233184575608311561919585220757011045098456015853389573972122386236401813274642441914453806716464334059025192374865216092905184471387930273382634023813295457398037745120954405035199877227663465129854757798612392312778824769944023953951350222506217223421899626517566946159336355034124891363533640647718226542791956164814465903764087156607405291201416202069860438574077932402644460124630158237248707945915035610061854778673326452223857070368815077474512110589954286100011914644643955905422028342112953133915180751816235584094358712065169585037882669329507079996585540463881763233325229835628935461329384126120829250930368790434463585820859169556761564045351749482770400532662874304532005864983400910199085768067972543944662724304080091917246903911826278006204471763159462133033413502157364777552296446227730867582748373217827266421472494403741890040993795314719513328125753634833738894571526797579428311985616089566635553686178273722101441263325500447367447448647265198260226446993989705490267932000914130643456787771208570313006560451475627209316567795921213539377634579182292091319389443536361728237749417419046952757715330698476694041435104180266306217151251433909010851992376840701700591980930271894677737128977872826262677716118410084594779930063931802147041902328618031348716891941578997817944955807055938550946404170682846269714517414896826997088502020698338862826564544984543778760929548582772373537071083811019075706595572313319396983567271548167185388927177329333295918866363893543454244713590315775675380833169111635243382187825787126778135250656834395824831375581850456710047854793341224538493319322191829487479333845414582630320681763318728125801683527875596980128650953110873652343020474383253915098143700121886978849370724711019236514885411350085450743169381626194430746472261461232734219118183937339868514667874160642130520294481850683064891764329338785809866212163019278213298176914846727210764801086268001475663379009052390463915180532983158713873182481603169432522458016351621263244384829729183157692446213515976598887259661848020570359399467264585855591173872301206596630600072326425719218579858324881847549790591581544697450852663954599869809362757053634457164538539989600755715085092704014243432631900448436846247269705731760623371581251154521777364020687251633571114295118305280941597050286971725423615949621128763395680327902273463941123539940163440335392117491774918293129796635273853517309508496916605318514453720083773080375604047507419712656480942507660882007787135697400614471357656854763423661544751567586426897616731109226832381776395935814616092658640262024794338113359827566687228535833881426251586920443093287012089698679929751266502142809095780095291179813273068115100568759362773159355628670012126770051712044859810113428867287344924004917101468935607249220132587756468640256723319390695770348363083435297413419750704684844323614350726297099078210968782106828455781154777089961169887830708144194102917638413865102931565546730943169707069347482348918931984152933582531406881752491063354955174785261434636118754400494271409904222302861636639847169849845055681811403173915394013881607353448949052915570265067423087163296942498268670819058204874814184441564785598351675507248772485951387790746940434551214136811490115320215572497783043781648189953189929892682414406012940074572848265776466119484244186923064952025662603010155319206134319561570987180457068830960280200903025335965198289972379054628545036191099221808285912326772488376077093133724481591341764834597626911648604140949105606149857405577094601140809428026951522097317585563174154250112817790585161682533183334407758721098163551417699486101834293330209138061772515787688013485096847794982995718733725645251222663879711081197949827322208712671375926814031934563044834879303464501679048449915218221854154468602183406881474506917205699002317497743093529844341180492215522196405080896828053682488863191876384827953334079283649220807583402117586629590231265252349409122575349342797586681754897051597342207342684037144098023453199771516909473665740746777818147500207614979618425073936048711665129716387550802489099060032173024489761929564215465748782816996536809706768459357337969350527044496350026006326582802159919043263187795940556832173561037403052744620019145403318674171065658787909556436069567531315227330572241901992949969364677613315987724668368454426881819737916755685899001452625773774121565945403695386748636588079952479235312788029088506627274973671103065883374512839961889222882474891063943944579957693803541315200524902807289688990771685783700845254311351490679697540697827113035414717527263356062668565058167394325556971725345011368513250481194793990942439840599321516422155882032788305878137149516857887559001956246151896351723143739286576203476568823098570265132493951423225998049369129610012029481886736213744674716542108581577879943218088245607741294477540965527209394239102017184321787970663349447668298844996735280471536206796019848571689817691881745585761905627114849134308926346119147586100321570050088959381876593735235985822115137078588106843335115629610449264711320326047407224773095913460213669606804916049607757537309091360955868488167432555174759601088855442026571510675272027656248266644095802549046200920529049012833973944143183106188504949884306729233653186704461506834929657604350136221972617215926247652526590720547712104451617058357921183599196885343858236203525251831224340309272723958710095246593691470259936419520293774347400485070691702726758061666966741688475179189431658140427772832437050014366541957313734159849899347825306785006880914592287565490884309605725349294334918344224856024729153967102001190644850182870057953817417587147855227682746566564907587699992043175218101106738016162474354330827238256181418464907494264724477818992280413372987127403375431374557775018469730980625772530388292644349977604304887050649874387360962425999256511934938140130449596379141688378317517360744988675651592249691469517750388492158064775944096303709222512893056366134597516764180622698559092192843824240494463639000783327566135688387095255511668627793874939045336150729542984980680553994687568965410030112510721989960667932383562615076927378272425016549178979020522962143921844848143041152463407003941510368683243381987958188320130133633450643287855587907837078975457455665610193852494700610986236602815988246581827917980267427044561849679766799023510071797605231800293063487270367238168354538489902796002220048091959943753476407211842896355520536589930479790596317657566567728871654205581143870864580906359934575067537806557251349613588267430575197074123619138517960351764102730974572907674515018280770377976332326036150176824605172911696932772236625894838386460415693146069067042117613257590815568426008212505143049540912323846120778880600128437170636161965355949163743339204680964794683454326709619962814941886261124953099569824441997373379788645152325235662246381669203897741569403738825231087464618638917591395801672977448357468125215644298336037923272509859272712485886261208656974882978424878508804109737895517135847872486581509625279815896293376203857237175428606944491968457178154779218604277280562733210910431767843753477400990602941027328846161256247948639935618529074852920919539834221603776883090759448396586463211371924739462997264406504070070663589926628763511006586348141650046336163102826104708760419556998366938430988771454777166283762317407177673658210601281356958892448534496796121974266080805985991668226923800223463424086103787029713989481770337300612960329273749990435347470295101900199792986855380764237615876536140039791006829213444476217933771009649621365237825632627340355541146831399445297104547472149868735791225677129271551474117775006222878820743564028566799801040751707459762046125374039087504544956478152941905469690569321628780897430942522024923715181976738493471184883191697279569688799837341202318465939109178161593758144981587430876007915115963014592023239587405247482898188574328427030176361214168354765892306837539159836151956772812004059586620485327232602614303256225090081370883331378082405542050603055153732519832050276981603697512743867469101170176601642794627137580347057554001542758285241948943834015574783319314700843359088972014524416981780187492812495438572797387658751347529049572360868663777234494512483261020846205161788397273767238005706614990221545189038602495034677133436716614546581552108632220650457787326950669914308643350100041850493865307397086910068742818976818807571833111199243164679516079077244761037898721841191073607393348435687035674248859052271107070686782288021929311304015252154474753220163568325281617085400214034254105071338068813364189056399751794879063770993698289111909473617086433331543141619489685789027265335697284568550845069189737451155742089309530021146378475067902642508308757227619438396413908826019229188953698599707593368634512729821472153710142531324578200492986674057663587586056116206328167405730342838090040616063486752095861036420050880842182414336738651721117165544295477781432629899348793988533477415224071973160884359572967506153268717041785513439652230395566279693384299662214378810533834548355710779951334323762964599041694065438934825587479632313161931057489711221005060122001362352243551206153931259286519962672194148217214608819337468151687735701940787719156536059076027783163928680124599333759101461965337940990959584328423694569457255009833794875411650439785429225683012140820209350106380913322331350832658878008136984286831469311441179431047658115470938264127804420693857180783240949405525768305657615259166466043957284816838219321721984431199985300492550437411368804905311326985139661254459812622756489675165779926918531759009199768459132700676294770907894789221016757850991898026141959417790855449832289276125653920076881051856180694236674467457811417292293371054560023488881044364360660215512463919000613735316641891029009399102019618361982366380197985636709553588804344911935070955449988644706100999618700309382077342130648741045139957551343766953491440294442967112770275521190027901037733501790673795353392415445516682694380805147597250602628649130417097678536143438388768243361585644315586747803766450706638257383905938097958736378848738476070021117262832168862321592254871922109325852037823052478636695984738604365892094769907796988994968007742204493247390996544118641954462792087055791877672918568512960960650886186845081610248758934228444284171699265956406828364418670995878898119454486811403385594182202816949696246081025584477395354497575251162813668932964014390062959976409190767662463008156841525391987045047735117184340120856296647166250563915970195862251917629982254683210104203369655946283258217442936253334421671104624735899272491725607062398724968326645428339451267057072107186859001346583105142039833209487791130665037473090533174154017821694052998458872164267179140420544431157129204816362567466072662082352044899383056748825454769926747291313908488404928727455456225057813778745988659033159853186192410259085334879178798822327259956346431219808701472511625292817030215483025265078206280589748513188221687570255551431649701690404616208491128860515522551961911209006143091402472942824566830388983424721327667879110031452501503017144184283277187724615131434495021227552028134188053705496004101543081326937359290135186008152316000187265643109095231607726813346436551258949300753938509519011273919221610876131454446748428762145729026067982156587445879853621383284430860449752394717714680341578898411980100736820589248097331041579160815187599331998105521033813804421344308249040373880890762456265911479099672834277140973816995451987395974592471722805211459705901661033373440334461056778432773071553328905318886101321556013553792967440965792147432635735767402401674136086613907090730853376713363074766431496072493881147292252117524679157615866072856688897804944001644409863103010353177587517315185441954897948697968406937675542151933156884720732578010036218202781762421996306788279939894173521040205996482025403975985435351469608500933301453966094878675053740847285356729528254185573389967224972989170580198048498520544785673499753245420402511136444806847270795615558796949200219204948250767125390519647835677447436187893153149786762199618812142725378926624821052823494477043883876266430735181266374787145230577871093179942563099790635587991199343754470771877260403334109381971683771188850905967700367130147524660245053825000614938193585609604873243641047984922308432676136857862844829093325057711410329077972586055717028009200428878048878408755111492453503271558981534159388995317200789520593383072432015400651947359436640706617959217998406995776043338658450894920662791380049698026594543440612737211769927162907729672714011767956048769007532447193893441460218814628610577525247325116560409609753524163135782925133749169948581262733140111546826295668590535984640870931681948551047909667199751061086145842779859711049281155445402299414755118803242932178069191881595835747609772178970120104089444486815096341567291132475328486729794678184650391547729721481211506335207747862826208594001848461077166383716976623467687396297520722466190959370276973808738837267369792041074932318314162339084751651071337982689823091033102512322393211599512553567058578448549650596669859350793578584770126809669795224125435218418148880291204240504608055804307890192569553917363059514853869702165397617041872032537357740593966127427249030776396232137956498476938101683382539841159703950798531747293594770732606927581447272416791536889898907723265357989194290491355197139900812950476108871817190097564494696669175452986075515326331336141670277506585267608698638413268515156299022598670353499623707452071976228157496121010591380571062117811684452867337265589063613902409074688952434872015162017781346338650278494284938228614487108183082671749437654385200552990449522205235536632981731933317041109178022374184393575418473983828848821681950201031350943852944497133170216247373590100740597947627611468587159934265966158932805075260861303471310592552914175867886106505375792108354762679106096222818722125954477564401356641805627377927713441596187843099608996412859365547328754344902803291694669034065613458392850650456794308433539942232550190964544229087891127057388926313479788071898937528261663936586846079588939949586675041420721629202000408276542024202116079770996860180019696034719196219941739906910208782857508847759305679368406556981408456222278218802437845800922459537959097427241755341031794765548556586078602372642584998739060581851512353511529975865803191793495575165448312207628302203453777821089222592219012139596320038459382797187292392654241229362422217532762571606515875968282148905793113709414318816552779062344193974680795964878725689907827035879676204740648309864465901438510527581812582066522991787053441325664203751905284304710726610589491150021049674446155943286175422371924720202392443941842535488812512027179524863871592661843314557336732209625152695339414285989784596339713312749205271022005656838292764717678697708857379722933611468746340682723621619850617112627673159260835304214086128729693174338721869389771710186453748722424353140116146793317750239127324830102157763151719847187062708350519197226692572356931737540739035562471323780134048936969365903040963210272896838673326807656766638087403303479662957976167916006668119590367740101356125388611651283507595287719213434483223349781923351355247052725371091471535127857925835573065276381661328594505812073219850912469512016520090296689397210499383691101733369455627275197405771357135658220720103110196881468767922634424078761317876830672299795201258248183701761383337439213763495049971548055359837710266445141606670889907010886603030455180912466809069264170160247415745412614522589394050940086701701192579720393596392775866598948447827745338893857203931738832826552046087762762573981591468841077292664370462429937494864271911430422714143811557465515198161005988711368869747977569782034608538930527591107353332017186013799820671696008627027656704956993398344012223571141453127467320307249713962095699343658426347575368060160706011436017004448638640845575092052409676320274184503676702218296556074869269694551053349817646677218405027714112065738412262136504946432910563300318181868890273824641780221982464917596642496904659868223447254190668708510433410248468276997756140215410731546960421189854905771217015105926312870858162449642983592501771930598369473683950818351963626332093453435391039972292664305476898696957015769988652879232788161810960736350721722564148850419473409852626932229438028498444217499283710979668245794417818310347124341739891541697008654025873720241819335098014628096116652469772377955851225138350206311682381833694602026108365406134502042639790668908820145446532828045440190094455174882541032566847531874974342203104098367052261782160327011520027555658288917858468195296348698942342649776254704425795236642368443905762454498321841075666523923154658073967981824308709208161720081568465520430637373513193577683503650828179605162943287424134969275277372078614096830441535653298536596133272312569661538218588414488955635675061487948880118639559880098879471535304173764600251797046478465857536426758903438448882791120645979603488538912384921900176810692615138941497902061834466378884378439702949021893343870912640860504644503876555041395466130089063847377565926810384484178328886116995423217248231002006371198003799892486757218387028568173447947531707116998283675145033819874377157574637822189471899940118923101601853549411510464975057456357466605775866080426034161318715457905082597336487742158948559080485733535731524776158052332808530907461150808822207497749930501941690651207703512449002489216913583132688400908083080989836428692950301177191173368746205751985908714754550744231713172794546494211503032753849574030397779798490688212406321673308264764486748822256365372457449716003580419750148120289897546883855920869054540067087778298957660196749999967135428372610951313099716052558080050889862587840299442698494717851944348608787243965902981210533353073041977398056345838003981062733999300919534971951384060886252975181135648361189529465702357204752555889218945704811364359011176994250569714299758070736115164045839111433026992895182050743857310540007763925062637752041115239008380855584339961665737199555901432495283264785109196513726070570810441816277840879783795209305209240564936855109516975558803038853923485360358701752318138282007748339807427272620157173450346949127121208977449232238937174513040220702626883777117919686842483032220835667894290797578749264118118947662971539989335237598137684071767243737043593819631596857353341691782980172850908281099739951952063561618433607931198105544380569889784010264909919317370587044289034781899658531821469642353790306393067733221976550638383307641543933466607438102713565895303013788520352550728525660189993146669999283737407615802050357366180662328157875737487833758886786503494182092560349276332376643452414436040304021285081802273933860287044142871518775235195319863531504725786828632563633371378213068772214497137894788858750187704658204689579247420876701907565236599320578660016751455935076646616769157683214096249244686229921721578915674497520276025738195939967814916507120807682017406848777985810900332888023992842062100572052776277460597299445510335766382485090691302060242571746491071933415810289894161041973998368022053060481863327840366061241096714337322768865675866782496071243074888786467108582442643210445075206340471931554288786335402846747591111985037783953232291653401183457880557607059867737104593785986702104252923918025972024684267499878507820933712158819503949861938999114934251270517964359201411026861172964628396550094177760845619839988535327624442685080250401860571911812034623876259860567411525257806922297520456105230309844706849816716183139048781902177390954052256563543615124909598749073800476537384852326796966856619066993243250939109373338592622843114080248745586918083208714254288901208065249061238314979536203355998081229315582333464423696396677782167972094425002606502062227539309997297872264021452201715807718987191422061124897816872716201562742341133559142451280434845566360229980326727707549072716798002289649426490343483732580106906885767076011934737166026575600616343173794962142958540839781308067031455132014486344557823719447999181478305637019530755207886881418881912291312546869733686391961496206828387305115939522034127141891970345820501583738375260611600609424954605268902155775386550747893442530175118450784278890237169969427923614634556069018603257468863524165939734779274243615228977916606075166710199791223665589245104146095589874479624988731953233904906980187874276123614849654972929184611347172066038594819677200203926466903727475077998472745372212224095581943863541115762360391911157530510283629816431809041805531003034123383895191691891209040701559579739749283006317299821537969132317981888145547951727970071107535767763008121657809353579037237488941757543933700900963865525608900936742687073541692431833417915671455712929503484184046154259624258490414721490720720699334381671277866935711587487409838610859337438787550839448000671396649669290293997057446577775938499466615236606604799437178550127199900749071152122959337839473582134907523255286089174784956113425320784140614715056932362263108260670830269007256126569970299572456928783850430155910677543340293528203854365436896101519853731894015640855699082663245577710081711864573946542128503873126607463205315731880037188808974889269412649848371854284512361424458964162366375499052205802594248611731589245569392642883733087545569287995596701576131834368815870758119632349799000442211370805526889825528892099989677892501120248994750920480660059698629825520197633835011261290114426315707804489881631209530765657149665561023649212533733296661504443042057520160948609889500530890655926175838301950494406929563081570078234363578979735500745122887986992742136460882567983028656076465593242800516312443785641535180780161796189518918811704741235520950342071473450071726564438967949446968697998369266959797018095590775380000305908307991537005264586975280862766600897215488150407594457797455848974358950528253225696135277998931739986607815155349208275103039603505848931767896956371071479016244300951293585772137218046987840746868480371768300611408236816597616417848294854592105899661678631397652150980028145315542111297793108874538464722232935532465401769389313012684863421651430017875292647306749253270390537410488469007409865723004922667784282250635681925883565300394143725272055324945041899149119646618506172365021108833326623980624229995963485266104136681872094144524930300538642247720031381426109662855230730928948176141853678189233754956982186157376971953748642605623850269138530624693872238786525539394898288574652054078106782484647285241924544860781708637054680064971740820745318047542721127503489630826746938528388424565817108836571904371961004745884103945278564234329299693649519603381571772419679827506827528395112689538583378237416698558452695217683561541781615984607611088685216143939069737700194323250926484517813094362384824187420313760499169916325203310677003458353147748904972443253181321339405806135533351848898699685106724123386483150390193452687261803911701537198268872908261328167576936890804071673160046070114257024872524699925895167522670972151201722049094467442080674896119763794082015400769315214665080463797460867606622704483326442305455331241337996705420950532112457153584939855605698442797916351380413076097744895434825853316582331728560375934303022113383026876788322594540790980869509067998143682824174114557334151777400017318665432708773913920536664302336821467214006938087766422426796379807885722575160978986479344017081633663809177796470815489821148953346537028324446969186201784205333402956298810114660503336740238996232149331211555390759548757684911499118485155533203175696878733945079671652683792327709359169056286355217267444228729976301360268305553334100056682389786992036110455499335462017762555223822044656303230097033021588962114508226501031788442598554102144834843763975415853412380318223932064123744910534948713722165703207946196132355916035757144924661160816270472037155368345139715923617722175672567400940687218704517314695377900189198602040735987981219865583595562303850052888382998438232794901880032972254808649639245052327983045818827216557788268576437915310881422038122174171287400449320062357786663680858194167516101902740315384545572930090006034593141494650781835679148193927566371473558729698487550241755165100327417305376776101276529244513619627900124489681588027874196481900832508368250857370854338818710240438664512675346425211515270972627657469573769297234337526728447538826925948125016229488396350254168648851834268880980043782249024471271890640071790001466084541038115583697872553016591045177887748417100462519513093786386721151817760210878795728098320209596372532466677827215148716955517087077849405685556131015594542025386619287995811852166207862732749184463482861396087516628244584501620186911829887372712515867768513355169021182459669359784536978391514710384288208370321677798804875323311984888179728010369754103883279097132958703840385530285190651838115479242771227556713299239304403651165907165174194359344195349182483501782889328054886035067395918199410343830502702003456119615307536144874876843054417667105794276582025975421832449297278756534023687297826475009287654772193352601631654658532009086729130736672121370415379303439397810648610871577659296797412380928894302202758049283658474761224564424208751971287548201066324029911014308369700077216032171059725120929818015090614118317249278127144035227086432145894283435186186398282578516259403589705644590960529252027072138897002570103183626886881691676129642335362002275927106694987832049415909610137472829551152405888443714306503752368029964817943728473836495574561406950091751119866620519952518168408301566983966654339377878708357103198227467225009994282760814477351999428139976952070769561593190128743843738949848101455297196815044797521814262715765234150423136600742423465311305603296701078619407067287790016064848707514918009302071590154520165053915006502630623404408809060515635806416463900893581837568990346393147401789648213342687835178068691739904020420647071939725884461435712737685419062075114056243650154423905790869210955749206624632700814293058900713127025849368217178893266464275899095594741112680665012885355700922364169127082014791826080591824501279275775688520390865213134585163076506078367489931061759939220409239927087170938391006182032870156806619997363584368756988670526663203367439336218333180281898863004071212577062860449866583243004950756507276619278133307617650434112719670590617202545248075876448299240283650110377366197326801829852124474698881467568684926261954041680526134413442456124246719851746748521046605948427988928497232847397494903142314734693929171594059459997385777992679365869121395267980027070861432331017114832186336639222648751523979543227953487897420493002566383135357474912865442186559460987042372804551992019653189070398851660336318191041993694995675636927784806335366019050276709281943623003192172173908273852416610667566312170909131804213524975562756874916198383623925427232198316661047372413795317603305019044527044442336029031436038200838990554080488357595161659147652096047862497371007695104478274121304259143580211420030817749457452285217023655620020629149569330916327978566105141869035619451084836965767201046901060711921530253716449361217046802418419010791311418300856823414898322811827179667893863574376353684612124378988866531714687003402720029213416856803040352665835444036054486836115805658123343083922329458221685106172157502843606530379000372448259214151839337686960480936450032697560831775607553303637628948280364063452889713906980209381086727092807656191531425217506269022627670680874123606897366451844389686068199375869061553065612311227721511392117116766617156042511357240844428831105955422567448719447013155202293825441072568274869740774668427554559562647953075006795603681331916439212693161128216320934855088011795883685644259743617927390210353426408977098476787263330705406936837823663128865583401351594728594431759282758508184052442232776031573056051602809692482128097125064073272434039008988207279131741364626755342860578411020356157411024882307139626104606945832425083322488033882270137402835238606434819660060149111362311210161083910799089524259602692096340524978559587125985749705416327700492046944316501112106276166672232433605224584372836922436759939106205678684475573125591732375784088282176204616720984979520098104722238219933820986662968275970353978581484043983486921740725816011475214809003419329315723068316555658308915908831897801284024224179906896244378027261775031481533083220264428810507772402989619129241398338190806730832713411308170384003567614345894385153875767404057203863894866724332646783929996476057313125100837048922852785526336503528136937311115483375936684201527283408884104642402454150855023175447037198473024443179366765297712663027994788019947463396646586197657717845061457896642918303421456112534742157411426284918852693631358250975037680874198838547161290470058418674926275954912743195976377774313282946729847746953679949518628650767035511821788365523400110844025390400488392078930897134561386952059304942729257893756564658335898907595149297920088789911668594137096160127135226628907652542752552200617217073529882833748348666452657685382590866029973108594112795061790403628382790017738539008256613298139947561981212027556841453416258611147031142542164651607166216399066835799842723214542419670935614959067589415812199011197512750983465083972335752254468937231203195788174319161191799735546375540687317543377124179443747897013514928270014523815514457447546154448435752357051427910006296581603870730181985262984700845767970214941649780656208038570655836847901345227733446143100401621441996954142941572517941561264424690519866201158581213247142277144363313584463762659047624896239860684145915443154917379802396357690839377648689987828257201650799048339303950690175540441194002868002543520382950702969283439372049268146805761034044181732479657619241729138929970795668166851747172603716607257817445330266520973525027170362825816358968662237050797401394699560520754174050500513646837025544771436223023959720251710018170661275516635039209047182012362990153801945073891583085117446809010625183429113303639287193930936289476311343724073120966406078473926266256228875214543239670222927558558301892904851526289933422105763693567452194078597314916547245105398771635375746678871610894895100231959553208984096788944954713107581608679461876826461489208384389879352552179928171375298000388920953407080864062979127336865909164591426042354492169693609565374948431577957321083625695385766453473161404420787205628619710540780258229945395521557191549788471020915559036615168565031569446443636511826504849824594320955171815944757358563687745128989678836878230271231716077056652033101514815293096521691383175459549401072146208210210925587752737528394239306376256265578345341486436636282935636841331603821404322193333157152309144678982788676662673522581772945763998298861008155887612852644602894506936397562246468571653644447126962612076221640529482403669388888261536544376520409068271263192158499351835711785741944690320903257799608170428651191652401600832969861013499683192515694093160960933201593878498200643403202093740391757900358864776854897738709366161357087844658082022090381608416672941262706047045761990664024970728644970283344640220131209637769824509315667932778189109111390321857930948502501060704194099047091868129000933072517993630697635876011243500464049002420021507682265009244629512626884682934551732883921530963006781973441741709648919807379872710852398183049201078862488408482799846375171431814231160456840207792945176570913910726055063127935006694529058592427870861365372323845814825383217186544693813949216334422823663478770302251325595400006245275510636914624783151561377490374906105271859271642489334901377123542101420324149607962697482423377460586022415285921973244972179794981435012690815581655458857633076165215965440023413587894463072669443972727402968361239778954682928094846089553787761140072697932455863902255062997097692225573229924247822147253063662815879498131013535953880849528264663137176285134922755306004113589627139711202819813992961800533468949180339939850148959112107026684668173352899458032265509796200104699011080770134661791493878636213443132917393212546728722554475993529810288731263255666758842488794482739614206034218333167504738188767752233560225470871262253471888740729381966679342214773542271251922385987595771105185206553252181479574301350151427648411518036206533343363513866553847096202604427940845832684410863120360194993905006609865319647722255420109614889011620503454586717293855997858638654300031907641098885630327396462840336380602599577111955729931354291758456244254032089857927540965237058163441017673046789452804646192104889489135932135204873837586310749864398711223201699211696413123745991050911287721284570806402489358331101342522372233581213230999911940137166161388476152134874878962195783982443061591892333439277130142950917083037297081147874638544028445161086163026045481060936096051127565250896546096040772642519962090335096212383510497577561806714412315112396826470734670373391032007674517429053073115732699721842650173602875259132859645209480752562166331873305956272445360487441041838193932043854899471119721528517707795547782981284875849061534002256940378496604117007994340527429154078659622736223194249752688459095515493206098717872566474012977720705880480137364393283912354658527972916918940002763496425085494423795657344844977652423074061412980172593316619411420892603204829252473554888614389915652405895388898184963175220834661568230636160650863778224129304937903461598244374529960176950787655404988554772991077998508272057050993528269516645886144923331573981703694822559745141679025126264840869942907139806768097232109251294498771078920067265594488270350103415262926979034016625837577386364014679688509743587905978256378555145306563475079402296504973283364675881660750471631719511151681862909018092960655248686303195157553567742889067765947119691737371023503626418743098833812651809892633253463754434920965461109438894814097742678313976526039776974837571525644623427651236090409852519164123052623577096906536122844291444835528473091835310169100385012299219710843122938848915714075975032218122952875714413191259135633142750204448478619085064890185810805034159475434881675951533102822139405403746166706841751353667863602821922356290854568600222784243814208753520805116823070503880469621818816641556510957196666242876205975770100664271512520076150470819492988202483511144390933778058140298213023919738130677771264804578698416803857971358927884841602324946284559284522744651259837683808053188029621110629158712383656823370706922601564073473600589600730857282829296301629833174021377182458081412457245597089083647826836250087407215551003573365548231650397780855334726853676262553789151843286195212795162373103884721420122002262799064082505897975803601130478917587122922476613227126695094158281893261876913269985363777884999008004769338553553719518960332263416598434097036369152011055259483221033926388571107960227889183457123130937255452947909612635726857690443428828533278880759838042597371902614391757253085667026217343820930140830174145553455393316615591127025339773047787974223053125458752729741726264409824018025906010538483305065464906815659641293176307297355018787624203519100710294277838103677055785404505621472684308157701115594199901877113233882959146174869260824021498882774148419500176269149194266215629726737634960993584054890662429449435460227643720638512170461713341605979643150964090306362337968971831074071271124201922173740825079508776139898030997803593858597960125871714502371183098342682144726580683674186511318236302193149218075660950235549972444878701868804835546236926854910996912422451247926031707003650433686987293090531946119701769033669183028756991746221690230040904221954675764834122464122144942222196681506100570642693558060821655363123320634372594397247547615091824325479689225188026314796389085084833699484081548546506348105604163787872724468815155156835931337673958397854087406945380761834064237630641210383481057413422078132914443223432463138059897134726113860313474194965417160952027044123480673689248833177964161491275282217957247896168344516282144562901595057056747903559160345796831932363360900191202031196811892369146601639638410138357628674717594683764617521929821119038569553624556059947311182174884999187088250813808532000499585657646659996063836087918671112067302171939291449181868443153252331402549265479428424939340359989914756885251648492293820085732258292529634235061557481108393179844581288238606911339040290281239064266946143897070153850065960048864494792944683320855144618512691625880690510948630310759518620898394940415513888604875042937749156176114279550302909493830613693507841756890253105650274818452991833506155036760719749973459839573004905343802901938157143737572327018676210067458537453916397306339002299675927412757044454493175598802827511090715485008011862450616030167803671675498847501291938438678220943075498215434399820969167724351862635242429514808687779412546326379394942359736052135762457502675381398983081357811921653166792972691942147278691898347770299576414041150332966416093361399539893081214756422431575306560301740825104820757742026382649773713035411495284323294436866033082775359430807459262505636251664174980484050508211049034266426028018053279249585766102294497215765219379033042866206376829330785857718544715109977621070333226179097186133343383824542896183751490451876642518660278948540420757636794634540982952375652083553065066158611814244019846154494138580921492657501973091317516696910630933412592192261340507381952362100534801315890516819239285647233774220499575371092666710875085347555776567704880267006018186145338874975365652972910321830956240230582586587996975325664346045600937314024838686234727315819631342991024432812561508830201945566818014565478444707133083873576656626061997405108365027260831939744742153091005492922355612148472824193590597758641960301927543270052990391743101831309285970651299205719247453721195151684811353992226372559383823182757307201925820344236969524192931272859078613220430586807505691562592169489430481105719186891848697079758430094393739328546921125065505539663381518554903191501696089441380226447590714560879290712830489501398977755896546304600266103442288682796569917696815215425158308203581303985622658667897283827272726481970565938580693877780258770396381878741193604715938401733058428341263119695243240117755511575840569719950719003202582755663337067636087605064205000297032051670301542306557106899238469882020309910364423678592797331850083262382161881862273025382652739392288748915703068339703012969802142557324902379291383614812947487206249158086484207524073627849711925643927494679617659367887371154437941188014000601494758880466098463524013465689357472845163929103939878743023790461778542730125497781984240148561725898838832644179977666398527100330832095528394671794403476971824765134757759368215152278724135788080186565503264651842323390788315378736904954151081922532901827589652605569843411174840534145882861742739752943971564600951114661587749180222088655500607212239889064965324532409531239221680243932371852495834337824605826429967139483956312682428792756854266392711732212032445355465172738299387358135004871516975313345956786380152565390405002292012184878804756044664793222674006165183013686696594496003396032205120445330609564472672822977796699825391067222227246646763431980121684316649785097363681106216638747375371060089981858398316274016179379615086885265406211302888227742293734584040877574870849468881304457120825229326249755140405844249469869550182348552190019253688155595940076125932538812175460740365039065915373822952470580004073504333642231487597981686280313806406555286113180599064945443152029834301338895216884876126046559697881482883409973643467216858086972516507088134155594424292190967333331838740340096070998146414634966827720353493281851785974952885279701301080157825279200609718541350472933816528469383398204870604964156367440633978995101789592371478488119308245496582755912210327116196035440929936004439615169180058791367323872828803751881385591053229296257071515946814057969032175810732190120670852648183757096779356837574813251924676348920924045423140468245289800181772764292578618601711816275050707989126308445484629707782971389027518851425904539952372683083479312599899359656056985506278005272464837692367554217291691385462292165550447292832465397066747017099456669465869374119345784335349056715434256385505244744743083126747010352598663860375683794054964048368230873983864578081627867560719774549595940114274245748659432654109066275367182216686887765182657182453603450998774199891422818819989381345663559083937024780746499269110821139250249294337888647844150439995849187561632287518492765736888204108304290939857295277685746233005139165214480854377161134952377393087123678679153749832861515873281804697533766389234762794718730750466456467147532035664881775175535345621199825628105625503456162968114394889812246709842154512561694536018480346150354288367848858002081407589544950385829072410893637198838247256857674358846270292622579426579433969787682191536949361830881446455866958516074839354970746526615927908147055299253819116969906542641583937067439764403166240099543437429608830141737283937894298566400982095460387002308953580929642373532082825826307907085449011934943162865403105576211934017395208074535166360916886618314915731040988919179911290373503929525047659724006146053201014352400665832262753437111685698926966151138824214494726346224388697816098834107558157829346796996707770868779107533676950618558104567934298702927594084236524572427220269037596417043225497378260688458339713896451507332830773583919073030027429058841223556985459480817946652538217028242764625788841668027798815121616898605846466864880814009053644999392726177582173602707228749920031795299487409954700142597496121227813902539403679682909627661250574679387769787679955730707376049493826987361219173937534739157052213075417382243787727866496303244864344195738840838208518866657637953536833628750148166940216764087707930724772145741460544424706052266923466573302039277067359494323771627312752844819043770910560335867212590224308801462902273557584023566545200072944945579484940302390409104065623856627464874330521257002396642193947627353816275116035945122190455714687988978867202774270744762125989996305548737045399140463988677886158407447488601857832035019451974393324056815385619500810483296971976940552748440435687331504745612656524747829999459818786663652306945454474272734994010912753712960884964613208917896514985188165404230312934282273875887482690031654438686132956503148865121480136953352269356416103001600456416037735830385067162026460605213094232411596597307526026490693481174750714616748985086355235394300807334655581374567288201691991790660635464259350284815035241719840457679304505316099319622871839570808325094592723630545604827835760797942662281567807661904805503209883031664968733606068542774116907452517239514122961189922641207023064444568202642474766264421912112669043392773881971850365728662397538773821058650034240857349340676775046894551041567938538477581090787947832144445383723249076280234300425480856987076522190991264032457186762361944184572856443121065394749351000311153942234180241995275832168334248896276452288707577824003195696748268113876326834438326933121322625309201764629228866104247224389975973059051755030074070062559549815744252992466396608813589552710428312914455713821805231134739582138265667068147076529788611740897626360337806666296173681917680096605504421903224782659696665189211580162644685402542633527138052102748426007442341677500803546712897885835862845495982875061323967329790125621120051233528057165314779521831469864432464485211623936136314524757491033734699614469940909329517106010963349641763815538069550285624391542030067134552423257304198650947380674477566832270931559550152627427861524783113900509355470850932895034266851751141055499824140399355435492021703631175193514781647523928835593793226811188955746240426118300583171578068676950118885724200900865046159568049721436293020370521333326544689383948860461337579022995718585785022034220473583532119250331210523320322263598438064572950813567733970570960631442059230029089847470934262600739013551614272470880504534292335371835198476140140094509277019126571326678353512342516299373181397314730801503288378099281688922296180130819246122669222556004627640243115147730073402196951903820454851842421398068825049190669819014481461132651938613167303746553514659233875631792752360724534669598547101025172065029003147015778214304865169220674070138229006569328060501350390343562143361370683195719626471851492762937520277852088547962957012096340276039155779016721062336388139641206156522638929297633858672946978292588374482269167816920232176424219098715502977715856944782208994692553469200767191893518370704610865100643864013111676496024662236991276489839864056580249613081615619396135040345767670191787693954172730131098458378203490108596592050132867869779685430060639614702371677595666859620388469118148220341343841842195835635218742396792422637786066278659140411550302172921014626663148739443669946273477871593034087100616295159881431455737942799830781852717411703004416741960797723473279741561366649433932844239642114157366558837278032543065810675613339812310093824227083321778749429851152784348942028647841600058966765766779215891418644996461203517477784795234170019469954403032824295575839719467008679253529364682710852126211859888756266884784270283763079965851666705451934935588906365250728650725924375958910273618115126214024529411401266722058390350322961940196630798465829853508447324577928837630334677669713314866541812537410326133958870116135249099998916844930254355661611324658870837234846433804090274123203754213196449572769023720047064981970086693122114395567292218123640229581701373892483939381706892389092701387944622555672330760601067907986526502269365827120629813765261531235373521665704176274157486039564841128704786850543115335253682080927058393378141969393259217873728831490106668808026411151695318120286473171267617212007707230492168631126961406452442440079604525121794750968393879775224254151815409322449242886966401303544347361755619040669490457538474544139751132514982228121482232739339257134253191521356415244076890733406355778324643633152549094594799847331625167340739052704476334819827689167779774676956313729515623148980661485004478510496404025934851286703288324453737782494465782680399754588143613842563019082887558737487228846006222955740597511886315314274536658364532751166911612147466523021525212205766146999619670258710130993507820509148206506617873493707275596528754033000482596095054845089026040337805963201388170447231677693899924824294499709173687246027173066169858908762590961865226168841277620271388439084226243974841550247565204311210956380916471710246910063604064605703738202020199753843188887918511613285620885319776892598131251560233141222545142958911116569232651226727451514146298901453696001150500916836824864567629380924846976074262487402632238608061978957935222783400531028896947052863414542713827326034608055461224746838533367669943070923903182192167660233565962830988322123589429254622301893127563815475330686958659594332361982440125741263002809352642527602963063107988150095093982995316424369090931985448422878374327890319644387936574273758412317312625991235030768915526621030853307483331199365406269804701637879690260992538063031828799211563145170544866659488267955298686240682969645129168477749726463587339866416331294699987633842698539746649892504444749126761776972094459955315560686139621747570493101178506466375359758638997541887273853058744843204300918127965573967912877085864632278004478899639865093743084116249116096839817061322663193237683498255245677707466513067512121952383000134434440677877342783957409330189474599526637154408212523403197834460598260788894480748373799197804508715885741586578154340786638090764098502575029675102834141854085430276268927935035363508157189147295552545825343255189068284680176879575748340335964672283773794351685137136347591991513797572730797307988664176254602419242725931916384141312359279701007280768809241568026236198574657598746925005718587942443136249591209167311210292912039797525065130259985004088712811749078451084318232063353829693281143702949941130985053595876033295822192988723891404772546677277374934599307455803751394315014220955916655937541818000628311119175231967822215063182069808172487790183845585424868270618946419024752475197666642712600420572829355935508504716580873961715776324327250270283436408737680847146957040957997706476902327262973489720855464045353237581412584972885899458721522458597310694844181327810417361089253096620934993726919529119602045481610684776521743409448880979214090739174200987126885034515543764004939831665965038483820907183009346671491973442679634338281239796501959394181902452629788441142527801782372472651789489498734891330434480013195489825270114785007845131472589396436895311113582902605974999455294369504391253408731753588484321789230245804683581936044545727643430857350263013277642091173275465602910815803665754289456077386815148091002896773990328816325095132834419878767488896225156051935985055767860614830618340864014040902334811855911751446039205554012049347661730434120348838087995936439330369832984036869678525312197324077105351852591907826016149766749587850611239329739337466244521451898796471979548130063814700831901929135737319926613921074408506890133422583326309638056824301378042693686697376864462559721593611239058177758795558300830926634674374234519547232585751481256825652668245305119447912947131697006552284512156103298767827575690488688489937376068337301098776162867266202524517265778801237195671747015486480220912716929381336544987884035115360406074798421491576480864506366101606149061568041291146306000776794115269768285412576560432973954190774934341580244309855185717830219426666303635042814401720373339890582993310628744624999209709372173121099794950802098431107482340326242219745087208301367477707125565215657469687164886400511853262697304150018455865000422978756145647718207403105507290171841709504130163653122514557786339379401818251060190144187667126705638239202293481766973783449781928141765254406638979440481399846668297687513371450373283805551982758216962949823287405341521715957913314989043467284350712561966649883569773251654242637122565754176340689981343505065362522310584225675017686046904210874818784848833014119533146964962201160875947114237801631130176050134399086665812773089397016725666481015864863961832210232365638994569792499265767109978454650160996224850202123034703346025858029497088214099549610882468853180229744486181116349507833803605199529339100187780513891321113211721319540065708764186600786754132520530412174957007957067707656672194986429929092377723047669786110266432355177554388998950836555620623174645005120809195634001440177200496461156933284699964063260301973643928785346171420020543833189688844485356210231192595188230049069999687392490973988300655544413317140243130185956712106450623077450137677855762850057903202178458236898344739111595934808025214860811920441399471691859699248588150834328732363936653277412664373365731447367038151835678823280995697848319215393554444802392551489733366796472069009667279113314236762651358310895373549076795360837013584073347821684906078697818378291431624311894402267347342651077940622245980607258300912352627354256932568921565475437951836719303927040839526689561617777049268670506259202957473444684860829728670343999411434532205316508867887801540734868726947350961694802344008120400077369495570537097739196234018753709186662178065101138260844709760396671793343607730345555263228853094701584845805880315928795764397165277429739765810165170827658694206430006795764122146908404842205367450205236333232150087297007361276288275065076864438936452459228270164553390419428191859452278922263195783435520612864791355369841474662034864546880652115112843168891671370667965432692726148044513425248062600469380712292993650101607132269767433730811063554636020543069998880131537477951306905134703896616757973116158673876367615224443979324528392678017811549927996900385979558937294105563455198451069448232774745155830630512411186659485063140194561534902131753605039455738330288723861549418288225532487984117830890517322709556161261965333842522350026507880918877843674056059072050279859632775564831810647210734214497298242574460676110724568833198412334872935058223248724744620927141493816343401663652516329558533040753050196467123631538275609259002856198526121586666421750122294051674619378485971933015624811487065947370535371476341380331515240293619231346721592878648097918670496579584686443087187485989175883425619513830189599256907696046387730921446783420754346482532829088255427095464432938370937618146561795142865066672487922523750047719178154226321345581943466464441377119240780583654454675656768619690851210321783361068463521311646877628111375136172381568988199673456907251059510277938735437688039347174019956381591701837765959067498377658853201412850450572436644618436263382918551602057568301535286589429379458870215658531812056923908414025467885427158811792090036945565315952922481454821391277071648442444041851615742018692179320848223717655524529721244439294253045323172854385465920085294769792582363859355778223904878157011187728540233106785387785644458304521295325892393527739882466695344348352072567110196854968158160643441256770279171010696770322313583097895746858749611026257965295122642539200818597985348213268781489278764897063045761610073071261902639811700103359788705151097336340331902778044935789355322437340012504531295992160318287938960852195664227512663745857085677775474566456604525368123011022846529158473912823977522588932017088796058614585164081141736907470566186462821534371559642595783926795904010867735169926800782082258572694107438169995086567674767557699442358254946805361531502848553461775136862345147586166765604127370184714965057815475706549521010413875377144643972032154577541079242227663635158801569393987601455029406061509001419254121176202736591693694596791119362205586358920470454684746114641999537046649816303502143378323936197594750250852269774862090505684088560493928078486710911531098832400729923152839919758127430588521447510476508319714971808161166467775796320827538013730516923882403303189652236361298865287748477649567281705899337635959200181036902939872344839540080638051632907672792397271749932836144037597693933449739518640555750689654800004882864889731582904206657906649228641332247002686785062240149346401929490414888586658807020355028576896599377050199779470555678897904220269679227253151146497261427748531533668340281945964263706950873451317393718675998108015569169377786784244107599603650981274775153855716959533180407845461674462696940218165838068748984954983606681086633143938127596825318078270579219828106180923531288530238567486135214155424330643327998471816241104060903576433098566667670768814206405032785094441691580124372615856436634666016272085685361479371419824256626827364013728473089500423444777203151168462544517279550356538715348239239766548077492808803674645113529050639573562091727320782838328479336487213486280539881629179385319576983087447434394304906937038271102242192873297267218481760683346293132989657394717966945608978986239035032985682113933552259683507462647381997592167954401264197683321736693271884530242171959391005075506850417587514051541344571649379582128008322651122240197714601480001013729385565965420475434422339457437674471844762244652354406074129042360157412360228626321401474053278489077865687720856298644194635089929847805974590412302088970180750808155572863021527020330942516986223639137347325862860674882232130225675638982645523290078219275353624294924669654969677411438912581457140445963476831087802370032842450557187074973347178211156734921202921837749469525401061714323007171349118737276444934081423139864514745632418881040830457718858534436873692084734795206366905799431652563940088567908302553573477020666651886006648988721134204635553147992097959624907067949788673975443658544507923951737090794006617196030295043202252628064056129919011325312866637084863494406655805717972371505817244498899949587661029815843281532211708404031787654166362684646539040497250387224250632940996191489133623666458998045816045789177930341198566584770680782815465011844571660443471444946522905983380833214833713756459363482245844485349630351754451914207306156384931229343269217523104365920183043681174103569896365102656819309506399202671339982941491532636270011764734974652083897782913879247897668191339406134083543317547262902618526237418921078944981534016339760977004920638117297739624779166158051027901561685722333786294669668389315279515457027546011676845405720862042861039416741983081391215922656650553021274975035008045238161182703864642072978452397103857331118419637697610201479946805844035933116514341795146649886177733834354129924989435211447844252466630281379352434332800341235891126426388233512491681589681861212971813593498141227284550194608851158587771140134096343508730918391042728369202202880286416385135656080696743436469198791501554967302274342854523659315324606638947463567248541112437263489689037648935056126488601003519166835476917698919613452793699935251576729542046141728889735048843284504793792374476160835299497107715193716278577318617980204637791704519865103791693255914227385543615127374680362170365005218407498901476872725777313680178660732556189636256316840331180021388015460149892381916666262925279828061208972186446685837873853014174439106705238270480319919878603137525600989460421619808377031948929614617686116912720939067192226869757727250198744396933498143450911923870065097165471365301765417271270402102154935911089485901396222294321855396881436922555643126329793730329496280843375989805110860449845550569727916064173990090616034671296589897597896632626957756434153307221834137935336239402285667669365097315670365997020407323315732834988987966906541838257427911006402949998603558350982560372251215449241003700731021617117157707143568451325330539897177585701567620405942155027083369435626499668760079537286874243928306110763969751117008184898951015513788763654053392193031361072336570058428349378041275042168257539674341742511556022660180413001825830419366886390596528502725555814793262162809391348578267028326726739645597058262489481402020746406147114945480937763502020743267931626324074545155486132746581140465827805284527969221557406321817013197640638770729930490482734461017064228165950343753393627632869791545148107777870519689395429837315405860802951794285024184494781841236930910125807258902551825161911261172096619991162182197580922053468876261673028430627872772406924340556364596690043619354473174895124263206287277719062660538213235607837319210136940216704451236534424203721879987945401781122340289678761566002250162932988515924827107766746690180699594905012115603111727926182817413757927128335321277438434565542596174166777934896326611589437920313576614272804891379458168040033897464527623638806376378392260795824679187057796449570681059238463888361862103365374844505075317970123676943655137612912119342438446004542087925354706253939762784615468476952731796366578486920898675024415681187565575870019051662854175147615950655319981454066693276398654224180803540025883526689079585454968575783815181339770338017118190458394088307950076310306732200688145619918160396271299102220612892584184350407797454440722781666869463641028256951244405244910173222013852142684897804896382220236328436675070641717116737955201347140543799057102931089042576640807717910988095288452275393767880524311147794788784320636157829482101207580217976420461354847456777407108347369540809999494769265284709091320289471834843908614065071496636790791167853471717573813700940016715255310861531256018794287692017825013210938047168638210345861768890808256417884584047936303367372669911312565783427283495331989603335680650250587812604403945784215429772831224764584419138502603422809889056676689117858526018130107350937515230687839283288046773272844429230749527024941669996036742149688148544281304244467085042092700465820135262658800062212487618445509363319708442762134746550774264669087829668052948039863681602645068821953448812964969694721015627352809387814270554831343381509939368751646286296976645805763567447620582890377446086241885928945886224070521173315205994415166696944162346301057788101021578250374737289574159611129830973285735268472442695764790497712121272070555513187297906716426533259579467633686795769012496587428401424833012577637313720183537233840721774754879246265115333203228033277401125891000089956470553638760463196950756318012551323472665764123138754593414421868657812709015598640213575997034824136817306106602517046623689888052700892274239366541001722836836996564647982142902243864172550738532015856873823567796313323330135541446963747676397301991272885575917292627956543289253385273842683954838967106481128594208963313697492618375581375905410533492670355685443873939306638902520053451460076145854915039890006380121815264022396875137213404042652342009362559907190014860995431525977377841972096272137599102257258057179681370027750880412537890006408251743382400939571429612985392303997937087629548555316232144063734696426930688167696132154603345035862405126539336982403201556156814971337847463900443259640408866065822228085876430051250558232959295193646681590339264062899325539211863185936611288997087291585616702152867032446872105764133642499691120034476139217231268293864824663638372581943103487056523450009833849816227607116543383607673351436120268722892426408159516267452191295894262083097294622134985018012930180213489255385249207521604304236083472509426797008521826446513331371512784847732903608174790173672799342625386688098789584815304493814417542670196606857999179884060514572413354376127984763977758349729297477975475565216593785057100024007074934775153332384293249474720519651286174648293856710549737279743146161529990404293403301310956213609190697859103888368642964891098448315619027173452022425614028714192777523182801642405546209224730249419494621705149224746360511027354373493110987351938153178245042192675566066742611627682480021825350974771298168960009812302567879718800634067187629320020821040837869452684598700515213590911848854797196188378708243326587232267487181620413656354908347783750495449972108508696128135947071314337180318622652358870595969270799849970409214823275212300873826602905114533006548157437707970492102409025980544310928242772441765597903895677794756335166879628102954152829143134772408923052704922853005011842257139218484275085037773980417789764583588549600570925149438486906372150173821543196616855283246769755490073261593096392377936557286825093304968898462680734693169946844728246708907580853423235543407621484221170332523616044115572338496305905819244674269474159977213449558950421740681401938971517308248207257160700321347153591074769074640433811775827104534355688965720553661453606505087321722075728113493152979654318243562909050218847792513223589779165991613129999647927960027354286979237255700730886917904156441903469886398776605488679800718430724110259804090198534655543069778692382106241941758699892242931343329286555918676095479190283203685778183508062456159730213212338626358518472756229018347268681021827120057750900328294220846608569270022941644063633764372434116363016673119771625033549289556491072452941899744611291636301017879161368481735210962215274977492461283796402611072684150350102027729360002656954857156848823410581338932895795111911947430198423439466543386773387515244763997721246585390768089281080389772981874006965113278138950951508467750307076836498283388441418438051582759058586949537400683043979436564026884297394817605783684997623172022093498961257997512977042139604641359421337185988548254059841457479564634169982123697356519588943641106790577492605188386592063781506098080330864234779981512179921898456331455307417847116782354554024511186481047863016950398349677220627698159525037890745107859637161938655323898603155607492104159423197519778013674770495410390285602248623516988221203023127287602187051689488956681609001936233617522749067297617257208711783556941656936416994836950929253879870532860026758690258229969892627305393892884318069577451367868874258743356390333577528097408203804077692075565469535070737889779706017278590382944720403171982055533910581949893676171705211651620341959454873575799338315619167125847755947643507319419400050474702403150964940721325769169876375854989332894763464240574757229525113897446418271430641536409764868712313733925444538179204462572009042816292418197049960679570452758070716222873051453877340117435408954471651784535414992326693234445449275663426641028439254258392571771148228014192044748141039904405415542310829433070714150025309893799992189497952972395187023687088539924145453681151522610725905728985020064741775517048913521660152060062176168969789534047872323819820294855211080151347377680718028703813288120701849436976159043128958748635730800423561015744265806158315863938037111067520734118310708908061412451439074690403766270049024635244760949098018661533411681373780043751320674211240156211799304010163077712461829610284008865325327722420624482910420065749938001208721741110129865101314805324867339502216276058322957144644704789826866743326663029474614049836286218177161293111599569909817609366395611706651484585328955869323192447315048584126979328124789617430467303839880447927838990063660188924611119871656032172958604876111842714989171383018414445274893276322599704231704149662673915397767240200087126750475857532144525332283109363842618801174682673052780404658425643986586312546636491398605809043659429357630613190071699522366523887666556637963851584309179339419493307711783908237646232263075591591167102585902511559814104151055533593341485620759463525811447514406897635795550451103768571550951325875814044066453450143850392931846803471010567950890079201328410641464687691830451800167428495347295382416629087141457324223582754255384553614066547882273844811896077180129950194105649930037903124262554947520027931208729556712048450051760471491565025393488985952821924287900115686975053897947336063583484774095592286957504753064048445218701275659525577469937188839212258323249589420141165558095690317404730437574063024048872096674263241806084501249885964019010983725076978754461084513651520144131408844592490490368607233548362662710767183832496895036462023920123605651513709269794835550895081375766046463920495676801252553509363392365850120502932205968222972063756364880032037589506113875052237334580011572307425078126992329370795587795175868032230160692588840174523723658273196541947203531193597345169843979558423077045646888741094816568299397917325942119694716589978147949649783314089692837120276728260318143442504434784236977541326182305118721481362084939189607543997930556732493769182426726669888023645928452877856460411245238006586112920148284222594419987439536798492801914783224122781587368911176937464032734040752969611217329627757431122489698970317208310554980814133145558516980242865911513444678829100295948473791174675722252093951110221071019059491947613408438502822780867592828687377605982983261855797586918287882965331749289581832587915323312256387188120107175949057648933356844650436991438465183963540471123105208073504081364437548597468903883769280947104716914143661981216530756532985690549255497130177510242688576360083154132425566484926893525193110708425352545289449545711011888229809730486938631044172362293178120726519735842586230333339664870427115329787962857762698341031449236820593921305459249934569816592748300071798363404387903932763476663014816649701338499339130243107635711062442798191407124224461078185013055682079240664351476468994444215779412316233171428733562174451024521324702596844084455720237074810143804068687537525068678509887029707607295798276233759655119946058746782688279855671522643493625880227430300978734850450258311551370788517700276285768223380045314429281248076521225853539746282949234744525174615434420660215328577747381334437944640704299915398268318723125194260981228358684724212334869219346015037505878856189953980208937997879836448749286408478393694126367058157345083591311777933270046341767744402031444112655410964777011523378540346989604894658978171940119807197494934713704816672062133246787002325731847255601432524147845909770543667176445938095259217249764565139474181822789356588628880897316441394139738819823853873881821932545976559151441500653093045877948912246042283692966250487420208556346656990557798989653737769931075199461878738278201627017667249866753627085308608011666954537213412265667752065197338866585246082286357253076339417976351900113329488756812633374542292195220260824016916998032948993715847386365783073720534020217455235758849066382805552621764630852613740397180084696395636831559749766937675096263263377457181315001189358059050122623725230611643511553073759263927093668454971192835825641225584304029385364584288030650329205719696770214338113695375300456224303560109051075066163070881364682696818325768170978925325361594368067258206893348147894629929986176292837968947081619722714515848743658647038382726118900683546782409724342498229268660134443224611149507331020338958711713330298400522779426890599657756103763205877783240072040000927712052609639862565730740583714526431539571427812706590564518316372037039845105701906451443270501041873088657488014554634273529179276895195471868012077124171623477250177745649178644224782055897012272436839316147871431875477698292401437979644909931564633062077811937131482244222712697684833122708062481345080793824492595761720869592141772166119166129124801531743336192533759861871304511280866453921057820186769242867556121224790930826223424389467208606740156334972009175148702124728873073612285543879604093831695116652201009508245283337842842943171126675441534175838652083290209093686122011485862988184236272177816957749850093784254586462735855183133883169340337781624560758034676625423474479287058866482676677142623795179195420207162205378974671908256708989020688113947996807303155554855511302172810757583912382747566383429674048558258609504742984256282753747429994779980180574620607565885485141183883495951761395218735045220833845266563315577097853973309619359219761570118183008179499941613387376526074233274108021823185816401583096153450623676190109326510949814033819768876757643949946616526208971680474778968698446820466849777622587732124751979736200895637793604819169853930903561611939702925730054765910814476665765129120895845540590345017019004424861688349179104244455071873956330327939699479084633648034816150204667989836226040796354448373627101209669254985500168499748554170333678093743965378698249142301096550243453690219163968371864185563978827002216027919796610096525421147531587089893674864996841602562084727305452453467099163987109044358537080124320324582464161962900188478002537830525396966023039471331255099571801811239579791931815318618967688079108357056326447865402909159378436369349943884595314474347103715499937762423036242225501332076881719091238053214437655798937851864236715186235958256711486774938683553358470317648778764571270091714189292301089521213302336826561874453066469431987161091867023770881497141529942558962548673115523345821628863043514995628505718271046022063578205572715254377805650258399568103953400355092100873497940892965322915170015437195409250945814790237713606614841533980319226785056939239516524733038340538487954069912766666207912400035218101979057385917751442462412220064892036621428738149900462706307800675277283288267299131712256895636533420706489926035231060901847738270125813170792166352797323397123012985996938706248501307470540864692017941716406275816412582982300827054372073283309951794122747958720207287029722213935756761430845909448268543370405940945065374317980254477624320684310812560667717697912516127949494417519723595815526665929951566656245644973324420210634637993642273402312664432977497514179626818255175737631156114139977386299324502384770105713573921027411787969727769728711335319939263517846521315035878902637810689929684790128078972967789979657695213630965882381968611713647934849267429712243267515994620991686745836354512163111836006238784423394754062635825915821732185170076256299992395464706548199377251146495325951144511984245726340375906685354944846448968097426814741963334111856037405435083740311129064774719769856656299366238531295155440000294982173166415758447605259944096086540066664496081621525482509708573521992421466582394068114203913115773695783601820102974737033081034452512709957364504446401570303922596767061780613419039550081669017428334375398398591272860021727582505328941831840219807540947684985550770263426710325156897885330322884467711711774940329189010867504592759898967709098138230021619292605203502795299324147711830420939471177777824437290078088231566206367894918640308149399590969787905764107330994538358620872766149009116753483887060880211253111878134991851137441783443165720228709910379661496718423857744639803998630014076140732418368014927342882768039741152945427087610130581274870840920950170258187576139164029981626071283941371690338832463730090077120511965132647087154261511347942218491877074514353418999008621698455793553336073849562126269534908433558823063414007823049209335798032301412431370319587611197815946639671230656333267123938555822684882735471737786122825802693377046235104907935535909207834296350278961483070482322731189367949688124027755327037886472835316316844490085820069410426021499464562766324849522079662694363337638636486788020211476399654949940375199874994202824554098395860448635559760028001362077060321901446343291634801149709845947303206245774422306860698898708230563924280425220079296446041285190755775089146101899411022550826039322350449911368699117603494660615628967838366559878610354862414187806383708052017970398105226027163846413018054953553096603902669231274877338315097131605800279022729191200007884771018310593114069619230228730665893969507096002144918230449407981143332034152174345012109609389978215993091750282025097494023526048205570742709860870072644166973852693808236080063827876171953838798602293955154263699385969124768764021085010403836134176214644259332329643425418638643762270111027659266607260827007860135529596899660912073986528095516574209517961309264152363087465968173599247349090545870477745503946389769352851976666836403537472869634838632344776044737197742713515632599422287611324862412294708840346310332705264847668023050860579142771954560351298601365653964346721593224630393849841464415748957648997417377857889953104652643692544526808169911094301450117215232181750781944112240796479362643728841460995146947805461579063376917845723094117213592367830839283966147137308667908705311660980459861125179103259795516476070209431966430355215394757286518159409875135457922968887065613255122931314336423806522550219473157175124062751124585286828471931523508869079419762495537548843092160451176375595993058261899374482879319133699476064464736295181453959510370918784096608016253051960561673393944048337922654635430519008607041776680500588120606238339838663856949631762433668686425505377817716750530264209172650213225789966865258415380859742507305652337934468093396828142838504456508662451372882880644976361361589496082926175551625942544596986040623714122594242206782305791712361033833397485431338780484278098896698403674074036151084247661441099992789780215859228409117592604182098480007428382349082517294019874538114740338145639455511421625423130156226511903231709973689943175013126399238925918679830193737108192109755374090332310119740707375397021145614167942532961644012584242943409547854496217568895881898460812959202744110789587311167237174362703015081626706740222482725139425140026380465262832367510753851649375503020309192723620879513968016974743355653237841549726333065505681176407692597580233299031632623925172897865319576874882870736276869210424593113618722857448837444091699706248836822682020294912330437173386135720019988033161700519158288111633349714940227204974536936996791570263982593358450791314236749883122312825076142204280227916835133685614327792054460251583694963314997130561865695320255092065321283599136669848209651652559404926107041141928318569271699713539042868383262081367960743483700326668499454235945617643309611929982315923950951436269169644015810079535833159678888700806725512036417363351875789939507142976788839171904439599186378501708869543852889569662444540053633521698737533499635418227635418318420671479849444153637948222228812353417365744948361917901629929418032668143921290007973495811908940325078104147094646764226441516842659056643541661121792915844377043964745487875715744444122436846199226358673042235048003018503633231836781843045934777928389231211822227717651875280045375830740503722953620711953762227020108121556228801469334686046352304986229017450478772987467085015946064339187244718749076793782454713505079381049943534218501171023648957468430550632182232538725708434432891691776583110372332785808558293454693824824583949187890811169293998942679107544164425669880938266360527780751200289615424219409767097356856597226001200648699478404737316051193391044871039443131637091379030763670484168703438441828356759939990943962982297776653391324804458759843119254733001215562505312228196993110730849241851609376234701918476497423170715622942119453074059461924455945558532553886376523838139734314965118300719109713172688174184617257703292031852249175131164443963096464962991656532392739511204815130976254263882875188431318953921361564901887288042551164038707693868106975661670199854875048664493162597394125096356634302813573361679187888228573533519973123891183538734006913529970884960907204805888111627007137840645917842836337028404167476359795093802784744708814656909245921584245606604636795907665430897737457751942992167173381817548234265912234557556825746290672464648807082415071461961770340217042387094646275763695973371818517318269439585774959085288082529499809191980687373096491937119275176749732707794509023423309357719819387963412859111133386773237211207046163127233616326964972585710280536308255696949603497789743639164188160114240506855106378036980754923615410669923797111302913285313183763326889383989883231917149886031666536434445853333598842180434226848250049532292069234115196198693405001537340475999944133868089262877458956474045067452727540837307075411015810492193006920479268831649083264848970429775950898008631383716787356741432435830060267303444500332113977800393054583553974187626505001611703995215789375670042605090902900399611750813370914382700892561066322161664244803026484835307740958935469282494958695511225813615275925066312118915765903995082773216502001840764763335167788323490825940938797507521332747302445072499095128169810158942530421131956701350392316904327057797065714497693127146232765211976365798133647932661361341403490264559968949775924688562156729299555404505705389091691405883789835571063161090861066837855315663555890333698161045406135676981947378855900956748764043813581585470537239901919569247986240052629628626726398905130324409643602981452495794476650492678079731157897185978444909748256193746451226341667848000072688125381222815193089456394920726492101898863864094498795055794861669930801093384836785923942653262730640007732918690731663169147327764597463130719405356084526913315977205680832280028769296976780089744747331860645300916685334627663109330870019584674004260550743676674756217741785914412964582744230422904637979454673654537366547153534088739510099471378800334174678239184642895911415143076474645787859795168405997596271397258822834230991876877892142447651975465977207377202136444822865008257709806557609125222382677517792855720395151841042898000198856186079939494192239509808693630472250600766350246320751432505722460524132862138182183016146547335580697427069002946003040311101297151476352656230871859785861663271380077546840487472319468109975748615809016184837073374420024167499697805121030655164390564954997111019528196883639808776945497869670944753936234688843716926283786783660500772563359916454206164071171743813917623101559671592610368615807333161713730200189206465688938470106227013804087348697596962450620170220165119268604008799041272612977078267013121618428962093677710699154895345507636808091341965910427849259002692676071371474737008401323998042616853110161311600372507331486161640867207330757365451596175863894559724041201139962642450090678762002279025773596511280535551265532200509389404892084510129487702042390532224003535746524295979931977005163127492543558746781634142082114061125443696410808311395013859108157408864115239897628609674176042392066662855913066446797578133655107134652512915707333717636793662322962313872159311612426852826995030370197783586393539252344264058509671282198955940499086545306363333380869923205935023344054127159096616014313600633188007524197814125575353307404649246420897914139950053180050232249747953145992875067421833463028561413559063244699714308931467774136385487174343996473384735632177014208606219485398348226731163284628049989647761088838329823418161059493019948322363093893026070708896704210649887215156192489119836226966489049123526589062117862046671218365901025788776364351287842568382350357304019210326844189024350391042873082259800851432178460012898538259240123860007968995599601309393415035020329346944766511414348045430916293610821783029389231475367235018600320365352067877732615027826999053107994949817875032011301010573596459782545834754347819109708637645952266714885104565718088775251993944958092321966322977520177516761234112745176482334964351527574631504740648264692275792477682269143637732055597470409416463042241821834094008278901349896582625929780752240483588069475503096827456103772338187845756614764315566633567777545028434040034540486612047231586806230090340192387041245755202212596835309945410027321000222248936619163855512734257849001530451678382110490894603010908228795536055435129064144867243560319366222283755200238059167186452352325967402404770087541912392112591710039508987623531766280506434568021325446494798014513384220504325157478210484012629018805105010282352304905683746790963548095608082057457239413744192847197240391568324835514781565103095535756661662489666958579136788786218466047357034674355406639402606966677196488529915552385855974026395719252019057964012823608925373744575072798706951343340416191929633104389248866322733893124950071598738512612232801303221556134476038687859769851187151201277337349941025523778931023978001196454561757905855862986337359075571259734712784289581796034906128519420906263155991601284234222285128036349600983596263626743603353640505759058196798908585234209480749218802780159378944668844853229919899603581418792617665859216424333917607009166217825955311847188798177070381616839166677549577406458649616972756148580072531685396996034435001826263604893878522394506121708065884627769272587169039778450315101849499199310269341962941566195680536027275290985167923132365858416423104622989017136196346545001512273181865646791215764721129432624507899441848006450878983703627078643623700702613677966658421610551908093944479488781408654028346709474881005406120334364780893985306325020402613903283580697582799443799327011007851587189989752927604573219841531854221300558902022292289292852618618776945963789340648550614131257902128719759518350607926287979095081381641298492093598041344114592984285752297782936970496280884846670259815333578787604728349968662578484091705921568532505648378278628801318816577997987066580536750550110584093953267351847979560330299097276565857162995192154447706560021581499637992122609328447123010274110247394657279782958715704842803632232284295976370330909311971333492472277814557976660559656282166357348878244800158836066104790455483824367177605105587258076899693814750423465141057108576932225198924094599928169298538129445553928757137484320267659089737630129248764017121088357826927638097588196000240282197880331752276457860214826570143245542416793305896710172173232842381988259082055146427415730699076814293433024561706713914944369846452891823452919305564235568490280915428241301812389245939574493828953627589787561930950466514720760670253409067315071270012993119487263850454270967755015388334817497679965375060565813131751792096018770823616615697301331768191351982797022528101931087437239697351010714357755921858489885060078524042232864104151081556507471136767134857628094620915194905302572161418673203126983989548396202711142323792418158944626619592469449586536144595932077754492904795965410761449150411966905540447586574487223469900842303786808076766310525778229766337213624022818429742038075839558425777723202117655711841934586562625210931653231047847391132559728120067831673067796550237219027670316060280744319655118468569201410244165319431011073630400064640316774009827730648235305600986755957914360702952971565015897337853721004471125446132015661848435260554563487891076133116402722617993181098336295182217391365084360209747506241758081001833146716609882273227457868094410424246025089530780657599385504405610754891177843800640241571107426447230966546966046076322349879066226545995601579629803507600802246577434964869452330670339058547459141755626886426980020894792666887071341313250399974747794965033467450739959171304983570855622614015608959709885507368514542405429903857123317822896936470190344019438620622996862930896207558765460667974495674476126396717903989757845304505850068825475310511884227383399247761680060666986388688099197434688100056373049268250681355149775803323370640012564589533804366251160809080357499235751499398500525870437933815351361940670254135884338364127403720011410007336097576602475856434079407806206129302283444419014878445101781106327159912667299080566273219486608507123841253394933659581029214195310964973141036399548128160601865746782917233147467595109091861069913680170836801270208760831114486803977639031571814191903967561830030540319792479831741514562202203141842077187504236984410375357421285622885118057023439716046749144224852325327160193690309711126421638799928431165418159516752275816208146849112231455712331332988870609957646752028664432232197281625560991888471518085229817294938415559229442389902899007736803180711160330423172672518979529638222075414050810600050105994712253116809244002494666287144311983739148267617534836946993351501031396367101517770984352894740195696166738067362223725256628523435380744889008825010938728925650959382812177466038102384957433187686791457674791978669997323019360620612376306827157021970155753355077736443660155353974114149391756942929361779240508376887878361185679045901846950663815190279873767966585263323573849822591822718357362030421872104336820914597000267287439077794308769222788603703334130391866770385667720081186698228351585632029737202592528362917889032792270751653851490192135586252886866757651630092630089005541572574173636588107521977581266331371215307298055563124105049475568812214060057706444936344363381710535335971540972782612547694379987375306843164605994455760245796749037703283872149245146082090293380551824735962671647970668606671245630904738405297537074179910333359975243769065725244896568593035534156270465510670904350752041576483714823335740848651909460006448651052559457679670514639319043189011866504424442419988708757190621347640344944477419095910488401484229943271943899940346885237323896798769959419048535178793201945930271247139667874771978976797122174854753747033433735307879944037592904697827262972290780337329205322420282956583207063917321239660434567212139454580844413736792514029069130114676012032789557301866891690481173312023614584085752524610040239579774388837462439983783344848340640036178906362082273348830141403002549798862460276956631420936699822839590527267667724335399289115172502583812307263652200414533033522514723922568152284111686069931059969508513130210778301483338323954430494688859062148614518060666774270921061952300842665622938138088827251414458697556592200891833101402134418238673061792367864749606390872453633026862210158587018252274280570567714874334146492438499279037261968333133473928493023022150437031668167297381282925694849715469317624688457349817477668466492307983845141001113929916429183148186085076188740129914541610114445885213954440224302025851115496291333904703937234301671202326279055048803989659282499489955433624811147664846574478886020167870984639667096641101764179328234660897977783572459230023605097098069422365977551621642232477199911933542250456308958767728316048300812291458740719515906206283583733559804164098534286165964168114390069968606570129037486382737789463569358432436316550961083768693481456278666379918271374192213063316825991561664997507517228706178428295652067856388590291620422059444488551036763364767543901149727051929830173224679760819828809321980685395273873925092792679619467936461650080291463968381223674807791034183783720102562615160657821525679611267776033067726290889419245731827070603502621779164661679367278935771888025153252666558690188758152884991268991642815789318990745991712341912728357634713155785219804416440715045598933264583644617060283182355473959973339650303353972211316488578314399649067646261493566103796426482348271620105659536141359276658924786542600953311194919115215405011443346634224566094584123185227490387874403653369437473770802186106524909148326985414224576817861766379921473348769788746677251438923449173251462010842181629923344375858497643393109153198239034028386002733877429685292301231404666811184905648666488109546639450948348357358797192175887939851692763930976910788951364843910454507087260706655757098533104985574562634418430859475138728665420150697180173458282407443852312039707734345695231651156877818248747495471647904910214039185480939682723541536599745212709161975449055047805354439826716006207129988926162329445131546543021998463951751954238404786082790357391064051517902480028599714394811589161044719183691851490770997544265054205824040473891076101325228057683730124527814189720804672745136707218996781813801296117359285748448934062181889223927621463026508408314311776281135018319779442484689900577104369123553686872083348778575563735541915981219977971932944371747300296445777922930157455316980864736792817014298862957428714340058697186382531053083232210593290330786356209115636049371168428952207665660086049156380129787427946573103677031026406258905571115669984358757865814656416930252952353865619228843371995147557851874021149967281181040134993892377471152632641826793546457634008758044589106396989190522917294475097657338816590715057956081146838455515648558797779882561149776459180064181803294437118239457707822361954603128357204584403689410773717156964075237376009247205817850995561057097855070512894083835183584835718818564457753150227600654123399732333431617551568862272791034525041522342139540052428619891361151317313825433656359648536445826152048821627897443684763545117818978068607970231870940911976353276838187421719679544612208255462597729959401649706156140549506816849613369600335832590150480782696792997618389054648136989709479811302559792306557762075554681609437792936777354368508359198829989158936202147669263966591323708217354729930651529337476467145653412870277977768882677648808193309496973290596567538482954421900492170050848214428839218982080650138701888959509915805128533284076302570200275062252870642257260343609795243607442573900945683454154280212083394529002996575685666223234175567566232969875567539146869445556331934063804098428890185959147189118701069594253239907043285350077806726200221162564207466117218223215187330118133002153014887404338170805140443118432361550651861504281443486398031817612594551187343549036432141843960154833081392431614624902051869820927593757164303015409201394619534541976542402003758808944441848527405744099037452908686829714645484471408847962908014891768268614365647400977956388170400921506589242075945733001514873803825262364561293116643619676418529390577738669955788237508087140817120734614778845397428946273319036157097836601920028726052158902668951708859529930252386714479694089010875951774161198955828055012867308553277220236903943988299550977524216652665301389296741852156169113634072069138736931625245244297663105756666082151329504681688320655184147988116292796211643038940132897398762694149593439144169473411265856225138662236976036630282329646530605432353190538514635069891522661825360769818742347849073467984427203258876350127484920168834391444761763391805191597773886990407326140067411686266706676824213185286164001871967495834802841554570731347767779151171093524410347087023096332210086219454923701583440865264565922497428903545456193251789795378721611144396334784163847768915890150403777182231394352721492004838576164295697264475430619606822753359129379041633794599929122605469686208239521221583357733734331627166902336708524835026832631043330525567804501723723923640845441155858302131104517433490537058716144079336418338880313886780038812129656225774819312738734443197516082778935362412555614212067205723093811139877086788560444279151323122682381830806704372961931111682068460647521108794353566076665638431765017101051088640463709067793108645099137475347081447680749401297879713632102034595753748417170810919413709092045376690737777192315834701059529899034757168460032073643207083396124443557015917254561457609327452740517324069601445308525242949590502248003328818047730422397393376200592981741801281193218813135547514563684601104300360107725376557163516322877210458030193345265867196751822226555004064863906131630223518860495321502619761004249799862069594793904099624304165832101058560252466564190708618061375093245172094762956641942903428283079959666775611566489492528931554819032266031641266026598562238810174852045436005812274142277148726440962149724236077507943303311773506419345118151880927863393889451909216064966521336110574323152469406563414616711598490586090230318824483097398432446025985117364316804673507075203975480098639651847184005131723576721495725941812117703216764218738488318436012588944585603511535956949010164217681792448435369757479726324287664631202187570276640541028770711183445505417643786707613390671491537471338699014567483134466438092327835100506992792098632390975416647226836551363033383054458613770952852984035904236763238320382298001519741212470510081141556220470083206781866337046371319357679900127896225360909746365592118298179396833450186599491527552274585675414975692703470554272756998444452152497914506248945262636923735382770950116881536174134746817098021893083813066847113277771719342443027494082645275546690049942735546972240141491242934727687539644771734973303402050363527305198748592885238814413484099274023965622996663715684612697210633811665095903833866073868580846488628426852561624756485544230297425101120510453297410030749446687860576376592573147439736755209260595392128041423758569598132595483780485900204112609925528584164369877376569408642458324948514487512818105409564768575039776562732647889952761167866046072095356870633218692278962877840197891975172788771213857890886028767059290703313898975801133001686309438512427281363820553704351790217560779025325845166013090822063717745173700488066285060001415134795708592946860763181873788091814398317325812975701692234787203868500406450532242324635931577691792776574806229651069178695763468380703591791421713713444905074779503867214128299075771845287078874906917029098684749831269876213658588983103971855668808348697376202123624623431943746502191286870700823043856829500110140114809692483331248135173649379114350512937607876162481983395484145258773631662079123459700125735453481729755514386812789009181235216612806739664750517849077814443371967681093733305759611936149697617408886494356303543311418831098346968214388567547209685860380348908890605312974910935830143443597177306455745248042960946318272745668064431255251999148398082974376075297605821705137302548634814638216405842460950652360439743772027573208671377893844748666753565932324772943150189728362857018127454766827579564545178573912932625869454742572112863232246734882667838998253831563976594136040209762502617323484116212431598842505096082883956651980166424483309799662533813209011954985334814763180220507722348458691664221671310192759370153883269115640420598153994998423756158260389740214962179265187291472611181521508756494721098481803192733858238262150345871491322583526104020159189162296267425390864320007743537679329384633715786382855534949897144489409624651332166840800156000851695067981052535837494629213334307961634837027865248606390305862379586732372928124121400667309528266149546484108078535413851437202349470191979239251140168441349288996969905263969480712408289241150922737667514551775512713783078676497071563724538231926271377214950542096445652096891729198677212739288918566859218436819928244589816404432247866461492976929834845303602523004872291402930063765127393356259899220090480586643906243808899100161855577933809268259370904298867390128337767820974810995234664973796273432141603126753964071891518297194325166933787889006935191798056600509978133816273312406797436369147846884254691978459413559033917233086927038199156169696883862263177070108979182084790075407043254521371563426521279392067586554439963717563888390255679568752139085456247358725251433730533302246736448472705274391751856482282491879751820994620677882654932458336350952153301299365518114992257563185203780193198383639102821417370121194005732072428718162918820838338169840282348656172211453914102412362649034826077871510202519020929843904091886819191399655463656724551511819190460989836609278706030675803181103746951298131505233138206697616640520384723023474967297540845623838524497447441326977979671570451718586853691655884067672103817512825347358587956540977452122205097600334956827459314073282695110169958002623173086366264912868991254883483650242232046354287196217962921475978586056845497475567330746486851920251859260148652590300507349537179680938941512125183420739580957123171736929293280226793563692601597723507876381290316121551615714333801006659691945812433374736956536529529898897667432955245904820390796599711540897080246939988818879183900377014334479991106180072076413656256226754687748637346593913948441416861632020264746683660213868443110087776600312553224406508375692375272821313615384805427327932005444073769780918809382430756352524782358571802434899541140188116203709865529414772031215089606716956195580338905684000705821581545759247119396225587604657607749493789568549697265394884265681413647643110701563645811228625503416615529375930327616917845280618260845525104135890582502608203469604110023496490767989996614631310854571994563265057928267761445598501978157264630122299725618230195560855580032909099140445894546887808922933735779975216581648692805239698331659286408215872028965128458647085375279850767760571404375009303767560245026935077025029480862243978689609769005818328217117318967782712629294724749061852752330000435598148799729449429109285468900225010645780587309238440905568542947267044311567678461857879947869281995141746455493067911002049936447251642686696850055918554311811606214052829116431054299462665781553218223185947166901372150289664874613099432855481033739541696956479550356992977058172820038823440147810861706693254270051012069794989563171142261082501064727358575492464403430866274838712281624947056596591631682744406459208859016852102855555564115961967208161040064188699835344602035982787382996033624180929542037420522114048498607846339675420235993445630636110307717938789756309914923930258919818046681580172734954220722434956910797311679921680718704158662012016418890740609150501310104643627123458700705035393828062634065964871480769536959671273548261015172463049481956411405825700720594728240948204722662169117565686958528936392657962921725471518557003059152527557148390355339403638132873922601169124624763754763892861874800671953511357553137471351255966697908230540280992409248340633851602219059227782977385873189967867688005888726739674352904854473812947916514118614944999524850730629071911559646135469155537718880988393271531760403304933207031521660415596313995612225579110169040890354757472797530149024304779579573644075338475913545699949772385464258640521993666332071688161387297815529243536034894330503284134230249820234142586770042995393054039666908524648169234966537232925068033016779116048676376460187280052937005671898049714875109791858413671218116573040144063811400113768775318951609180350762690330032196155842521941542346618331871159097637524994773792033753721098229596776146626514074479927548269224479227292877381785561733336424936044367851143252374732712113760421571353632583487839889842537365108148163210412269170691228089957108654079949980282956585133244813432611710225777916962595128367003966929907877017726196627766973559910282786286751770059383865051423227123677228111691574661145820378484437039000996484064697996778091462557877979918378373249870987251429815932814079554982443755805737601135025305490336735581809883164345709783324370327863886347702480354542106822554753159651081495115948535536626261927732074620059991780290695359560401985314239469363653479379492839667304135893626613332117917005698361763045562717512408448369887065562691448895893060082651000923845237706031968989186780680318507659540299944379825647193198199326243281465516737461092609903562972369577685044269332344613882617272814920497820253957520794414129075715654476342648680489827865324236259615217148287006222917139941814582944338702185894431080035958203332507987851105563635545580104156788097129663435428149117396499180269399643368670378232138909080605762442566005489143727947380998747441535912076113269236488640640317266178534752994613043523802450695013797099438208484001988871196096687857693462385175584265609361619265227986414618662792230072097542741241695446598375226663697615959972890826342336812318325399909850123467902688126878447663727751513324229313895567172079969041223359770423569644566820203380604548728176305485141105361934412172662667727378823672302084230773942216622847510581135614009488731138301112634741424166586409812348037584824868118414540698647374533474568442228801616042431012369059844367213715666250548232666609666753631270356405049473916002278685799948691490878367121721905076650006528575683166995305287644343857281467673684050675416606990624840994690333280319516157713652992214558225520781400631868874832022878879575896786885202772628730881098573575865511630777779493469176217764719978044102281937252858248317662465746444128617199990251862614256901261996507320865333134459036568802193468579625252341539823966862037990571158981336734249618388379823688441284846654638803930908933392861613371432132501584225358861243662137199308189382280536110407054238322450056844848704848144705833490642700697953448566343548135022202225081253400094530274948170857401147471422560713116618803219197030766578513394759705784325198578053917718875408531805782169533385691587617441478948230898364632217506570955563652337034374898169174480575254929971662715342490373474679221153447623898454628442503351745614392801388934690990562099983390299019137829892494195211091011924640902455537526589182111795988024281145990838642576457999756837591343622177442500623114658250396934245426124269342512674397091982219897150087145406111444919842909683592377637066624162516054106013584701288055700428367940171931296983904851253977758164435530494769167662030459180385012525396477407072317187753783889127894220629404315718738712471507083113917616495555969748938120642649164322444380545105981516827803120115984470924443577025149470706189114804284984052286298909246855462009806470807606065219017434472990808232029563562600188905092652734257173276830082902417707093738340155691934883865133801527945018416014081748404296887665685977176160989462867037051893570562984837301240123152705344520975126536215078045517259020249261442252548538377085433571016160910349488856726113994546534048987625823981706467515323308568926980584308758694632058616705078780210730231980681086360773838423250231190929029596172246936781779878293151994692512539436892087061817705010327122595990112826912292995754537059346647146523221772884137326445531966021128911098042702083111398134170740559636701563380261972549565865727701711589735094769693565656723399861558841736465880394390337514740085945738484087618191064895751524260484752229040963875453774248592411882477573106600928453160945778534352652367976550492611527938833965506620856926628884846656479725891340722421559407850000418225552189167212824027035470124232258207637702421388334193786762015502802353093480354823548336858334174510947681389708087904865842868086530412555709610974804880037661626040829066791062944803846539544122242761450906341842341143070319472660619095175972322870373397003528901895972919117641423254530160428713517641902751174397006600738880656557387447960560806589547237845843175912325262145870828818385645486223387417931155240703761063927847023286787875001567102405666296263623826422324977774772386687629197964386698882111390048104348350909465322042610191108445767143266507943461434938312995290518845659367960753349896403390761350205780918310773793282806067540820858393017642071105187597707689954889194041068179167254922644505401169152628919032254403492491728439535739394902652568032399467812948419044306281723553727835896286162981673202717239607269030396653664617494559724735399808446059282919466778190585430560022728542171974349341088144033512260360537855645467463668482447734407351573997313175290241643208000065828210962529137868031858966809085441480777410400581756192383485929719483138903026298656845516024700696007028973010243979078288408281499401452570977631166161506532206713195608103022139131186707096898422802527078389690540562877741190111455692573182164149756358878733829088945636245099562420694408856750691725678486044454682482346652264500697404276646997479361397935373563989404908836196315043250971072016710862674560545661454945670950318225308852907140676938096744395136097510943020857125405371454043596446555344380339759243233540918203433447869788246570694682468610658978249029312999373069081417644569588136978163287721917057254275914314331026198014605245691293603810790870630241393149485118976075075123652690290088820986964309919306384665678263804091425465507147914238038829290053592593045446784855115410737406205604773659858660627558119423601404257853398914310586007902728024055866077821682986726654460590031435423373091991025301291436075362046380308204455865621635592261081179712612999083195905066140321631382199601935180009107858028088789839128837224954818954908387257724280329459611904357244103783480651469601501727826064416196747434014470060212852577484153950010993971005144151731124343030011878166245132802669080076353713868390964300054438235733408253783250953786636262021563044018444492411250253430942215510945966192348793940240377656958942399367119896835504730334118732470264173605762130720326190003505214874317153840074747184284166250420365380978595549775029730980004413212380095086369928017500776069249346016500555324267728965257733174894342620734786830019786365654812180881512742632363606772805369413593401338842216547795579820155736046323075940274235889897993607504676753481672306951357271282270133158232263852867031428998406346428268241032441863387563978862019383127330022495825206712639902768299338721849987512715557902366137945837523158832882482610576348842893195921251593732287995674147935463325702216519015607650434229205088541410561890003272938393358757522459054666198572102445066388511181529927652864106417058593836335085526847334919752868256260050696946555731933616244904590906634790403892226710334948561890371731028533853040319541657178104841833674719992321202853586480707981276500105303992799811985673376487120428853719937548758851112429467030067828334540986117809500116902459446063680948434877687307531486082904312665824601904795107558116389069866426412725239831693049131031742855267344702143091833496982783139435008980764635589301717599303588480652631964135938956049812611820039937287658058498513662179318355640240399530570825884568495472087793734114774169146467154111169963525047793176877208719258746425567289998598998604046497232918889513918929959747645757311736324877472828153964459549102038860536120255315640702199887214697958076754171008837853760316949769791874144989124214576616950904068405341963012647021489366060216923755196557521482600912685977567896832674272481261781867366947016287356885810377333824963783303351230184246632288048773990246421922441922863993322244501688363812474155325714552000883808595963265734722828092195422822490432023470570595153062617661398401225656456142233456028924374770916573503264834479201248458230647935091440845363972203232916532079194758066857042076403528844502810069926853256544877294119895286294454209084529211122714191438039697758782815741303688821250470325698447467191356112768208603026236049441891468654107016762107190238992920360411907448293643725459562006940521298279933713015630855239890718961506448865876777122393351619684606844592716357070428033146291691249474187068675988617271465546794168755377996379677052130869040545752605748597826524565488116543640941007047118349706445385608500139631646910246517866833325155155547733475564749011836843457822281118769692345299289903792437700824691500779798844300825333542216534015084237092338552050998590718647672318512583502713535479409277627804000465034214577197737285144553472663386818342597760676989080305631884274073549597280160683132385545009208298340755098773645169986844716024569110846957824127904763733285619758325934290750584055635234434398920502823760500389335151193827735427526637208119686603350380947366722130707232190000577331954004793564455860560116522367036708588092583158362190526319498804901257386366777196938450209413053920552564468566527369253706818808029313366393096170088478192217146989152572280377693465651977645409520857429887058032109670412439149173463061930904543115592470987180899413314783604393903199336028055988526867810952318667894271895217174563945560300006812756652373533740046114864756014616441928390103328737034417033514094935273313771774171390620146399795562496298122534143386237911237034273492601960663816940499818524729830917025753697940040159345894460785123951835640503425466551414757389649157546342480641592759179216286732812633054927913494787255223294515988925604037813551981805670716518528122545651279430174910136277891685957239295456083695724485057771256585330806473381191655766962192605973971629970055281250219704480059341056406065475135081936224260196830234247840917459612750565064483176324217338953851270664850718629346156138902267176039738473694683289654668903708096934487012553084629241567831310083266155566821944336999562014395324953376744769514032125972121428875293015145872068477995714092726020591505386264840431213644962333359425175015869648840676528783595517469956821273282017569380376331968852109020784575514870038396953646533433707530342733645231256684263358531029969779893568241403262775334386133587357909582085603370431385718332765148575627122074550233200868691635301906016463964000696665338321154224432325082199819452320499360387482055847209173004250245766402454906087541850840511845621077851498582534165848651515087762411594575941906245453064893634300827138561183359178171160115312746931213471696010943208055700351538207793807996095960304815333149978317250357861582244717213695048703521869301915588621313704891106687821540847145817840641069720824152407277828439619986046039413771606706365158389488811200778629853358154513061627897824530682221293894601962385129671601736663971765588092156701948933419192614088356920692383922651583953847362493427863508834786922951522995534085513114163376467049550981365205041633858691956071218682601587690473326660979797458641888737146703530905648437010759565324481832682089097461973278211601040053279344517202870247846913571307077383747777926667620436993440834814370339855012979575271911077217165594849691912946940225174054347755013063094582033415204295338287951058129871510732906356096991637418157335974600160580687446196890403138540961153819303892888762540289749878029117494765100807700481988048043642368436173284674112718336327721527747798786380202770967960285778667682318234784264653247030160711675914016704845679337333654076906623974043926122277329756397113227159336887498347974839443983880558851970723545622827015220140253594586077221064833804831823472525899712585123506509741485910520415725969627733437458272798506312586721801094810764363753099374714236650431832186384757849564615384402317609570594000812638936104000963138661495186714036913719493355362745264986235853130215400288815256025863203532843592944386419885046327301375477253279253705777290619763009162008429337933991739023698986529104237917183949700092598602389282808060151626537834485233118080855632215778565415195064743428041739808509436768858705223656134115394535791889099695508542457415157873751398675126099148047892230309102639304897101701383497643989932011721696108377696078315182897259153446721273998061974481297802612305914777997504515863497392852246675648060521956893118990805055248118874117065598768921912959072606577931500060579885680379791272247827106138467454417143325106043271934645710081015250733374961588896629142837971488687290610505408353794361632190744543849990945692416757061686689144708176416873042434635095592651479156764648381116252964834974211347622861146252544710220313834332018398823401327933319388133202703008844218043867239160069658649567039884741770134608679105304884872719917288040540031166815472139181157463013899196168275546713667167380192004764326118297079362845170784828076353775515142803620991675340146161575453973397628881307376436704049402526319180291012318354953125061260154086026591151916412198994636662792080176354026687111786197833519301085298732246910882163798644122178047133153499787521150135232431023616277841800896256617218537058443358098599451159085072548047486121163038542422820187817670763850175053851408549521165970036972362890839438764155359556449946652577568161822517479483798745197321638775382735290774620068567537353259802004465608970575014383621012282366077708968648431345336626694611797228699651842222775097155051698253797917362743602086660388651614272852922118999175445936687680402987065160591479979629434986244829878045045203205895076490468872765544383231764370019030303643425460555538243317442081175446394380244882668913475984287849024900502526951595776903334900996089920912356502263430577574179832458873364459931788134504625837127885422423422323234167971733507932198205734088558930632267676426008385420951752073633971320312761028879791746082658884360049251473757660969968477699544572864438214314373630584901330579291178123495151007123948909968617586135429100012588946441784588404928601024706673450422808487017349549414184645858955691693972990219423803548682478842070567877111562568254177542447045690713205647469641222460389863896763960544415836050657614096456115013052445267352501132265247718804073715912884198320024232750772446698690461964840224890552622923549568352155471221478248117244394288552305693796719048349154366450911362740869470015153404342004367343292801873573287504869070660248970993750174778679685202037835021750370216328748883327546930139286653228102288379368664217517736224227167803566512789872930915937157339518671761688277720112585684459425841756043107702521468216386197632686372297079280677331337697651057703741241053418692245104542895011423746024735028162149624720171275876817182991788494933116155547553114361410942308761053561737955491531048265611076432184441926839379773032686461608725752479927488054313096376662234324127441876461915249421926772968335952305775851753674475394361692860975293126345462501962568471418726131233295562919241074518263717753429833838447632964416121273721628943037951472892005868111437883546117661256636037263174750374970446562302717106596855340088068830854237265004634202163720905491008239751859224026280090675382644583084371826570710181977632342436537938773445841041742224220811392737029063849971773544321467992455407570137703551027476819398800830991584934480488680988951991944086204133000373561222018174719009668456633785706164989287997373907701846986503450758821203200548962809730922999995229868042797844536207812866037566557611199917639967627454858176941525591602778649750316708883810055126453093801668003192840872936758383995922849396385237862105690446258051588595043943177569313880459748623665569596469656690834080360047311641098317102473600725347852818482091613933705871804682345636428347579562303897361524022656811170419829287967603237717381459763012111326298116999485814405074748900409618882252897435501594387032014364946670310293897509380417703121370977488068489583342353036279983169716444108093357060425333362760091058217329397794432222137293665483581261540318628805913202044156879521727749861231637241425530814921351490087677915664483897601794259637898684506601248338597991814001121436774751308878758398949311540166421400983866725920795602477867756582614894514128738454837703280995023126600915314337224478962461469649162698371954898120443838499553850994567574999134916441371246072149865571173403358279528741690979040399300917030783660713227662980088931871849734876687387960966865412986076176550230890302238957829533711712090522899177102663027683564159462337156451421277346418119402267623803059018466927206145294445375641636143300254971294464343373715374820209469932448019868339937116088826660855259945347696019216001052221668547661780492018655478089004810213435149283719092696274455709492215614077887084710635902324709701408757444007587920820038062192072951325631687977477295504897809007843385287980791494370311080469831874623068220594238280315822454372332456680192499632878650565756148588669031985892911981584565488937055660873176804393446516393589139946641312276216549783150331895238739814583259339053570058443511713214595721397463475957734782882582701823485131307177332971026407300129434223981643720684291093345507543775491368276928191558858282616231783509440664291775512755869052305517216042927748848805031111046537565142290691280827939199015011688983544213064830737293748722966411967975796732207943153354819910520276075037950279697097508688407064950046248953222865162340884024696210969812848349532680487120620797041062705664270166251941175635332872260826789106078126782405425748822305953993338315112368513671225154610836659954445683723094853030871129821594432979583084915773474219767067180501947244033238319949227629619520123910810802663568078800870670769699684974782333436737635986783629088000447158360962644032454998564327316425728921897184374548683257049900922214168318607927683104448718290955353730526926227375678378983863726789089685703438807403876021799448524257109052796418541011261106552520663393147632272057091334814826565230669012935853774675353037140332438047616755692231855504192501397846869907336607839469711236135370578316645194279905866707074324266036235158960163643828582364925923455682109619116988322864445785032864263062401311810824802918845844607273757267693760413542414839980010910951657492858091858249525157221792270188847319967545203019313024018993573161968147380687824196438368496787946549526094960814337138258512276723754307579455782335547467491698033177264890222958355388126879290727179346743825115090673468716532518624041351167422426527110072844597048526631681431964544991211978041150830544180929082674376679770833390557542572689454674523697274807771199754235829820643361392104237385555286729552736893524072387371513706814116278473172062178194839757014401308154250921394512404922142660118910034903213339075293240090013146206852746347933758820779355002380004694797793967041556136813152590185033137768144634239900718088248165561811404420413128003648280246415189164141853098789236198463112582210398171514326706293846674195841384205808198397045474816144432299231682629071731817270967406491988032333566034195606174074366370493842744720358760004882738943030554088767857386543005891080835331584274725791907075778615470145299069732464021814571552454466437580337419031839894052998127039156634038097863965712244160099219426088871690530115848865427770389492261900758855969329672684926352824907875213122121989848286342252239213528845441733051328064692957378569628202582704862769077403212106423014690887351998932749737981545724334141308177305432405668301898678166153722913172878309419402955398313185211484599900714916101129499519583719144154781702508111029276110264756856311312285254317856225709934767189565916942412790469523109250715991453765446762388419858517892704336076790187098695404470725833666914058460899046471505878783521432582651861675873496538172714165768901888101394784770319600103555850845518572819261196542435791314553095246460596043016466436197528193719428494726592585687415303273943055467904075567319254371166637460092016406998313361317331070858888099210261728558285798072560425536892907104772264368971221079717897081472355799351322098337019434386870899037237749346059097174893939397218731396541887170088394696236472040668956320427660298350838380710901484617274936162533092943767606117075776881920598073439160559071412949922732709568835980033062449376439362490110501981261379168640001525386237963663841847088772842258842992055130713417888633855602136448789924233424985768486801901949675207695920099596798010089496678506716697596483728474879293445268612231681813011991781973087139647327289063941272005647362785865902113398090024325901008150452414815545568776852584938792899438452425818239896144442864715821300138286030129345897838418264543421993082056062380479850984917733122270460687143454263275613748757566818081504696147423870571555973816235865202691252740873711430729892381841444791455088713470083132237722879638047991371226503521943267113381679906231919453536088715534101362976338347122659480806011792051636644715850829537717519401239895332481740196865717135490987077266901157349417964622720815499994066397069885865935559020563859967313442731067421536477802385277668639103135357331784787625749981658210292297454921607740907642042152451754555651098073496215507575180990751763924768040576327936362562409039061857433641374296837345933915350384742989928552480970519706526829584835526449707260877434999976924953363385642132306713293025523936591329223519409049575724763891050099745562174390253979589289888367769180542022707237290972568250706916933388880596402876508172731638337458296273553308001670046755929952706142043460907690170169595314879470165533983043764727407551451753936652496973994673977528410667559735117582297617732622631148621623392204530048659185029059476429605138039778282891001276572461190003128705404057897183052369224536550465344137508465520210193789467594031077411935367010767656448323543947417723442570955973005643274976582965767701380667566117786651985178260615725745153205488763948929140340981541241407728720239747361597156257408338663461833246058671501802522203883966772510897832512101153504711829344399186965226949461925169107242504128957002780917185161597465973958153990455672232719860487581368126435732718481425644563825033272126170528431388309910854770037567077930466817088852531459954759040883475951183585496711964316188783049382365085270233419756120738816696208213688729064398185162681090587187328336263132748475167693358334676192788854215301137328895195974509440432262041884187829504100506006771195912934127284278377456186350991297262789367673690077702292299256732011118488686600923759645116333132274397195541750738255506260888911946370629771860958313406258274971670199330976446715165243372324327833398222415596652045286964320132088901595507693797410528218046511222148487495475616395239965361599584925506150276163776244450175313008771367678946426550472722880420583177018958304665629301586384195112541049980054547080175202105641303810915817416970746311517694539916226478177957409015054572647260532016916521074533924192859661933425624154723857631525721844509535705583627509237919120938053017059643776387407684277318318611869794759458259144210919975232258288155398612082134689249272104266755133947667132810662992134515477335138923727574081312320024080111401463991054369154398658494174822851291788347555389815076651817585460774217986318874656093333993239838645113025113014325718550795031259500314817965963635100965425068894776052113422574436373771043108887343980441750434532338228960240221819075766973374127362015324958233003262289335115061349283218915674862046279238833392692435548822444310913833421196922814431652215450579254196523790781346316580824670232383570513932074510616724592537778692907918988724206322848148933236723139217382118533910532988717015557081127487589859632956978965758295979561641964940366311353869849273385129447042340271650458639651285905533620105106482288499624410071855960597247831895814865166694685402948713020232253993874930216804105884293480511696871899944437557990549173194543781483998465324480989298794221536555556178791896897558189926919079889510890110731205430986066822323502709244858596148475714897306948548976235425246753529432023435451044863388634586252880500073579818278275249210714929373412061838990901079979352178181329126883613811966697123180127805039300538374870349406177228032594891534425301413541472864900779112360553651480432574385517772806751597308748457003302158684094152138095498778336381246774153841902410697406514773831581785197142984407306163024732699203311944048433585752637357075803119662187576422972040934898762079389535364705245572947983188532591960157154918752207333410056404123359400338444141195904384972453776298321061960524964241979294359718039658420583254596317263333859859760977282197971576839268283389198931961606294442311498826799931553277645441255670937718053227286794626923007551688277579630622047214052354716609939315229439382004516145280734890776156517698951999379393903151330842843069179532965670236826280321674451218263798375176096453592652343440892526832716561931482578723475056496222627866665205055917793987906630955077775291660667440266638028819268965742469809916519245271546928233725011857931605099482809191155560508943896024966326290118627933624773200192173806823596340740259809145269934715846058288351476931559581059071853649861550307255559219402735982534171328027171001637962730317843733144167613233998835068626506236983935907665054055133637538000068962651307730381871506738912492385967948600146856149558388914000373149141498248515097837408117700820405985567434272805950889339028770644174005842556032979878874946227244658941228802830848684659437753487176414308429590314287157997078711162989917118190488295282459829196041762968380235540503827545773103701669605856396138074700267045978594616858113105471737439817563090395140191582935544668871792267960091400500993343764812770652988094573780106979862811064719266790830516963950942939663827024548195802530951836419649087221778936518590197150665041747739277144191726468543597002006747919288119566264389239655952283222216828137294567302917745096166960772942717033519968066153468842225546054469469990721888192371629986032744057545255930298971477289803260157757007525426792946166371258824381160920477803872713712270010141642193354070827140713800676270712480551184748246382896931579293448108572903284365087596789756161293065925753464210695153385117864145714536585238946941512993408997650559078746914917011576167297770031356986335637182024207981760994708273491791940624887514775116039157968059183300284227127612342481317767480441929456257153512311857082433230074817132491250470691519491753626570586727999153797226454098271335428246965035478631737365760274285512510999600822209387699447520354587235684249105579982105266658419031711109029356630187681690493612606402426352602055317314053148016909761660002914976261234601883043166978137401333784295896357311891589913533434479753663958232607675303986099665682794060614496485496027882239068041211317088867037745196130742287004103720653702255094468827206541912120595867370639454085475973519047045824724896308304949197369984446556879866113511204647758252704704635136284495294616200796667681957994959746384151805520439759438594263267595761748827436775259768379106946451272767169960238104007766775760309376154801366775071121817217335528181695926170650311145617240813058328902727049336267547937680894693203260711250045778738805862240797173973683605491157391656428428540364175205787486873359133469812137173985764090545037727477622241779156623863238804604518467628559897996299924099178963014929734891737344893716715690917689581656193872869392921069223245416361698516635405581565240187969307710880262782916801585968475449504537630608747519671988179393353977968258655815270598161917870201341661065765372001965876576865976146175552532611793426163729454310407247944470969596729666608551118171150150280763797386672679411661091452331522094124468811929195427414606998774022078631550678274743445212046153210342152517845594716364514902524345711234044020017726161830762177683266315993009071171372075845827865262403719761427758519482806784876852026395494199789800714017853303601216371116255532302766709755334871330136216553494243962883021267141726462989314332736125401890905345709816536072925280702385828160537889602602743553803220215586925215334286763282605994270160628236122838789379044142797045350154984420992645112006108529748942528908698555500686330998334908590233604350284865418177551716239196618722218737115544910002393233023204895778899271367856678304771466341878561006959227431879391867552040241190241180553793755909045559729954303517953083170983272097424132508795091919191595081616521703808452896539852841568491197790642502509389189676812146742554246643616440831734790194875407793745998009058941434378472691927072495978586916025801120634657936274487264211222356187270194822487882188232478672770620035753984271187368939035255293945250295898517843045455384777243516010586242773697400306687444005014865411312169082102507505311874126308117122114550811272870926336435199028010860197895895422797373029404026497271468714459391063683691254510367629960373421763847386931984208905893231353933463435166167551927549387449620465738495861124972225199828257095062966435889317746162441911554966084266458217513230814548111178609530351378621081267098517772000123176116582882295833678198363957593721486382985321901469238064749207595325686677314683804205319800188697656066384052027352826420195840740699729182968278049355465590213262537616623983546330370695580638732745891046986192352035441812444438764993430925922567641534403855787161935928754141464751543978789243916964805154845798610594313085262159237990724638663135885687617181633392494635879484118317366227221190362264609418196785780647476435733364252506500033085633567574805836054058860212174953645323893061208065733516486395119196460147288200949318036280322799760821621896055260131310931341706829728747045663431527055889222812851674322336680693895404917906687826158371041433964619649402160798598564696425874813850961481472469243100436054061717262507571773551275732939865466483076657898568164840118157238129708201858619840985601997794767271353043290330448367861781079342915905039467248768327635100779012495420060060184807801786765394571658554278822778208870719760995865839118773001916272239204087659041331030861797788613824118577149546778371243401469152184527093719453351059250925613697720637693150657131191314986169428430023081861660475535340466324419150948515853099374900654400486700947302014651458371447940581542502089896770509889589047430122605851590603849607064864172523230986630033498813822292992580001953824028620584838490660610926990170235565172717368576023730070508406996894053516256069347007245417632167885054322873778297199749204362591002496340403361790941071252099251509264370562134163499833215391514069779939991673470909691949951074790374468940161334632045677538358437109666085680854352789240585900317283263665470264624092110117873443490247789747897376971047516598020939037843264954030336831881963283589191620924201100543606681032077587784739830982515670139536141603383073419478159146629095320635603796043714194013745223242137708252487585097903632598656199135951636611090421864286865310901919626030335439082845049115585502505148721980621661448406272376080056884335790935571422192923511915443569767239490370401736602362236004049680134215824180474744147001278832287354567517060234369848175664371724852757376774829475889459160839232730885765156813541189801753440158519552447034575475080178461250437711110074915521329757980545365066353338638846712115047886580810441992920417442455208648319544532422670068723369095861363458874054980369872871387188556281848778256741180237091455427010511700150467273055921127149450571566634637281021034690934133396224370618527242263248232448385584875493026582318391170179065860526797187638762933215728234359912934714699615544151203778537582758444870454285116289332677434331413741027515539093802305536354821541336509093456830343921778093963388818107210200273025159643019726200545057216462741831837917988061938052225392934038301629767633583976818663182314378554306322136210314234011847373226615976182687656488474386609601609000453178317911145291364997551119959660004261151164053819094234081294253451580872483430976897285446459461821196483006087662928799963304282395977139762944321288093007252584867515332623646541114205011178818180973116249723425939425949640749002546238918279981532879635858130815632434211258116810054762743772913392131443548301261173971164147227887190400743180394596609035610350437643392855532828452603509096202246583380646396323033434513647288244751410767356375425752512375900542359766363696423462472974970505550970529676824962963620052935513571011725834586525839358644532081049522744968549898337741500061853233549807553740121569621776900263897090392911560192627062285929993473355367739667112876607981413626430697306966501286774147482578335853972379824153311508860736566454249906454049298929595374038424620758862096766040096914216020206403830601776637067001236693868420091685389691430482191477210807222518557049107720096054363652967270846496527055833462626086776216512389245041016821840846753974063982159855117684793602620277962060494019367428950867365470820099305163759439033795283132497739037960507328360774492493667581328057812621757503769077232668225168242791671872975227639892214113986640738744094388921181055910857957792905636466911428478669190501614177512059548227462793833596520782415100126098970221800218974000005835293717319196122332386762375337493914594919252509196356583481072404887993012539543435885743991919010493965514372627555964544169288129217029482751907420731088525371111643763288645614908067734300194873778548124503319370112513863787600760062534089504345280545067459320328905671883429180749242337941793796379888723859739443819876896542592430529583991781701140666633333877494287307704577819835864753736020157039665844313014667076952158849999235383189427023253435266445463379597604955385587371826885573456873837158606081241050392885282143111779046689795455122176353355590760013493588496776161724264436889877797656002601418504352075658394320289976977735418448544013334771349147885756394403983551630804717769845835467262473248024879378725620160382615522641042352208464717413001629387632732889800898449821526817406396086780013498290846628792630958187504974102129823587253127266225653789356666049453252570133362130697013251335349512931113360204526875070769676859649404028193214983055504751058597855774691087070173485863749985942184879772825742111363566295290337067068520620094459493115117656602080205477861807130770583084532497960016115890582431676260526391495508642645586787899368689712255663780859629316932331252176613060515742570036323865484406270988056832895495539585305656539380649938803107766908407965228586702944518341987664908490625870431272402037709941480368205015184779957688160328577628430659454398151766969222035237576474228077596792146890680848215495268074434949225182595494444794162072554377015322107852840421990307023180707406893918411422250190408859668782666427191144205169359073035520145015439973057442462857582558092591832895754941210544766581923681631568056101803048624315891955309659051910733792462983367958987212794136364775980413591701852754025463202425597670669551108156409574683671879339317539009238004504409889851895861541467694633111750066996486694518535127163040676227271092085454779787869986022221746858893563320062296868057408878414700585041936494632780374274051034206449868081469601846360761361406691627716409937690526661781476473793273623709078480953570198536990559109087022827614731848124428949363195164384844754669179786916933083206967153409756175517218562578856647569256508518601966405346069855980917729592166515620559780931377050048137562548999066282523593551915190426873480559406220610543562860875043213433344915884940536774043097665867613481108301662827434754308998300893672381273249605917737002676352486708300502295923713446106749941236406324636604844121905761118787752716442818517359309473977459774108968342965803150288872763008831014590119237926698276820477507432084708005861653317477285817967353045245265736997389953563884759228111052468170738596310677254617900650504780570374008427756705732422440276463074755383207904015093581676872488550523894667280274565327957068317075961240994050302708106945263081035100296997149403432698372652214472384534435972566954017346736184462634012046293360376911814656212916388002717639839988525045963965613254890174942445076631347204780677895625491163068744021959689511158786807018056507225760649542053887016102063896221904567911751661216575054684883674055363434255194735348810661924346162088625171737778684689122303450945408319017855320152297869737606634541115493144807893159985601280315785421771865359753512278205196274548156537903759963838039482022373100537979976514409553536161986560280309741022947239558258573974960138085066611832309714628946539621990568435083123136962885701202313924977942555030220750874791087296917622309997647499303040734396561745645929522686440359989292893657844423237362212144073777472253412633866241112390196247476143805851424811339459982120221261646659091964378579849296167428202273323398519672335098530745024067151448027902824765063737371023261097197842072082732198068418274231467658347696961915554818900897932850162655847297643359472181890255074820163859402596256576102178153530814862428877545819600014082152981052744119589844891287432060168663211581172964173051956288798963591467173512889826981284527291041370972286090446157134572827882263451802125565713799704843862997721558186935010963491489543341242025747438243213801419442265712450963660946235104988335045112126551676758819826390719971551526826142542797269992192843684793457414861349847244622448638473749265208513753925791546145755447640150631340694541061850709478361943323167976975571406063178896150527983833282671315618388499018365521406320027203012668511190370829058389158330172776511544299278041482691177596707453669776327675404897206783676936454575037974895429654230204088089910712246416760278059733382890334230922090946539025579961755282437793556873113161828234346912852247839512937324178496733880103312587617461728897614967206069470893590897975119831341972419070195931907258005938689765142358621036534406156118971141552402892354518979254221657417517756296764408006552122302766487337157182686032042118671405754766546752502494496097540274573537378993187076166016636319290421674391904778301372128116436415684216929208033617290242658289858629530380692223941480078725318129117316299148624417417027855953749277621087320347348663666857945536985835659356128462941150667458308743247976493855080113461904761856338924357782456353404278822902521122352987414442760187472787614296626596125442132841867494679870120787842080801848026319487882174900582925899910599369904315105613755977815825298269285264085180040397446172770459804161142608068750245359038284419092432892222198424898594982536503035514825778708735538087510586900920606567656711436023365371470925755580545725253634465025617734077414036381096305751911326939083920699733130817357970117928244593189034407980797575814359079343977305904155159098451899081959042341677729563447703442911145915077072209557272812849771170328289565792507927930861434022265196206754006650766377722748058342804380381950035211953212750027592303717721432965385129110062993787138298021818944025609280857024990126598000120337317894658663920131059389675159066379609380845965370723471117929599511659377748689098016037957601762417292757195417211685657249906273557199693685182227521607502377961081852086465124972789194203718833455576484008857738237863366539106994063599704317970188748302926912656620416903931011735491126260059116290722512030135122422834861531885035158968108649171162320815798876419333585562479671002773101604277045864460612837017264222309012989843701948760640073245178799551503599187980589815353375720821408388410239983906134617758008805585378597283916245405609546806979433897679570167583134127644993528548901561771135399508893933680914017797161744443296068439881936118826786978384988623281652696867817281176678018443984903614678861775504278796588515597559448702196657526125626578989031791316091945160923169207627518025496788970403065059008408212515475699556763906931790128668314305224430628465702311761590863844761655287341447463777402477714251491489045048749974711011949239143993006885907249613932008545055492552300035125998420363671413087555982493440375174178049498283222847056614530589090434528534687148436367855588403942312184087833480069250929584838865694610035223344629466960738700133303369672485636132951612850456527571641948161057092534082105005418659764641700161061124016544202093415031791152118267350351482925529191596504844094452666242715584371399031362914619169600274815107933772227906301346387372882574400459119913127021022053153361794370837044066613172734113840613321532145990620527147730449040413453949379439874987316992874807013873527804053816380727552540907385772409432472428357441715765483548538301470572727719904526470253681312139493137274878269460052566655989131548642186465012467963175303367068452566731239289920458251914416550813796034487526794385303478219922508311017286760682346552708666802507222647154991952585909329734316595756518454120039546062418086376321062597325688547912307075921682122480515289802444088380870815834932015277113249170045550189394506048659964303350773379753551978364694318227216064426736131186137179630713865638482417637388672113801995308539993674257106717503645294964140759330616794099354346550353254883923891870592683651506890312216850778016455117141468229561301671104354166676483922802424041498573356719350283898024832687288702681383953631055754421777701347291001292240766965099943616134936219372949909808621110941877084376983381907512093888260859316599334191938882655836387267625594531995860886347804944553214900037376428420110839154864817336594468579286389976104124204843536571955266574713746570767225472668808664015935239032477255535297877313056686142341895503634868783169835739375937946519749530961081910016294043288832885801151257657813126406806731224436093802429934038389185730061969127970802506866853183833200427347058067390756003530207853029360388066053058108343402970211273225524610109495675516065741588741192872124890344501959900258755182931336701718012496635552905323917768116186883795186006839433542898475009559029408250985557470884309227151114200222238715583696064493218931986243846868923117165735704250437688446313822040750426192989856282545131043443694053141436157047570672447888418987018127745002142231350587292269792129091153019790303764184336815374080335308301118957880967502986846107706431927605221285046439786769229446009947140062436437891315757349177267781535854441194470389756831377575218200440897360488947130864026939200811469801013873681346602630741893479663228552437267757345846784152662795853830603912352240730926169403983284893545235775026402499932739951397976455390306283786589249693631555608163010216308532720365866803561904899607700429124326075435863075295172072293893209688016532574062548863011120775450913113095890198410883264492074036259627626652861453002099544242090180875821902553813940869751474530591457328122533317173090978461696615262439178681471680967197174576763460616696286065026724659829565207352042526297846858753413069629372182692634166239743342108809170418395326834062244040867156473151761750242889743385856076471891706817185019196844408733415242352127254112163812981141139584356725872326615102199124194797145062222629086018654526810990916862777465512562650962509421629444638433948983182038874895171116787024405120764660325058839942970585521257332009737166920209887838356321698985075335259609727921399521168360168471794604614207946755534101692306272098736057401835463149696375594802328439401523965993614236181552632452442466716983755321471454097956079266959340159091191754307398217922115058693968968109064301210991937205460298418456961536622233386881225821109710371188851087791986051516798088126076240614217553703428137839983081458271085127000734617532111138598621699461007310560881756904521971454974908939938288727204078638028456035989587314256929227067052184036579263521487236479080983643932001611453530947302402646879009959647560587668537947716116122279888241716314017120554259105026172914685410131030730593096355075407225485584975511846958630180469537509381079553850787070260121115625492450658861799541916154929544234091371227823742588894358862169253138201650808427862673920734165959759666004218457328932278789280572239519335160434669067556793065699890388792104339412212558728514230218242409779148888238036543958177288999073656163574001385925405277696766568169227180414743761308264949011360013979131519399211287589682079541359144701469458780710801528924574962165780537509747423258158510632202868703078968938495153470529516032543995846170485104433339474318462649337209687397905315726266872643016070723392461446178866849680256929864879412935884780489614650621354545887237184206353221669845916782655273435061440644363991862830592305451327589133452043117364333304847991805000529169046921513123054507240674941407021278934862540025759018511276796476903864108370563280443960110811882837253836222690390397995511089360368637334934276865383079199847577182633816992506275770650268434922995291635265311690168338842370399021525429760135378334872600269215747435614456898052918023070600149735728353713968288004113612239158159156122225754907058476219145343585610117869186917971143038275745335534991692053638288528613290177851256864625455331805641808976656346413899739381613997951685886966599996267388676033939466697585537232473105365310736035580962679503660508516627735875902367066335104226985612818645427695235915932562805244588040097541922912751071997726663001497024650997336834109547755361392684616741177649879002786580298825396223413562432073079421179970043849499720351313359322407509642128417574216055938811244931876013070862092716791500578423105806093019417053781843896619291163714611020299351428852216622311368674965011513742409166700321715339315618456283510785066760953599215662289057822345920502805943182846085560764942031609326474396327241817683549049623449408460402634087683642221116182912288299002427703585678357977542876976894824020401424099246595715026295492491671070495054087711209161815510396758856924333285956976851052793433100251089543960624759588158713785229849126803568032773641339342047840557612537545085389746239225105977082890384596328805988937071546303884963686095953631786038109475308197205723152413860433089857129150707608263545961253676728304234475806202429331733173605143143029154043810858738824952311977277333274987181063509703425626532922106565464384662160109084339608780447090906977820130517827581398666920680452619585342230224852365444076913489771205916340977539528893301697823360157018740364950349838086180792693360206750443614022611870496095403312942559368241916435970597171614774092978675424334656309956447197803628976790247584581232847404256710750892754156680878760489139301000821268811534676834045382228363342788453644894474091059346473397476569388382269764399287537868363265114780444044218990119820588091059601456804426307369445494866873607480599289014149006331432487372392135595198861183435101427338257557769629157461920063667324278902315879374771338848115863401348171987838689568084344654003395208422705177454513721553555384086966443669282924314407732279189683796696722011562461949066342168935158760012185786319718579177003277555673754623694102150397642088800914395612447509100410416905650970701903684871642161665108693441899184723366743441192254567700982071082672715903455313303521469280366820091398080314557495651891919351882509881499175903849060167060449922562147399399714590730887518794300532408487843264482964421673558748147319430681847312344984652033262026050772820829385752679582269892800407669757287533144242989589869837791259205720801814158683952490771940489610978081733901890246237015922392537760619064348292729986089928429595303463115301863856549049589731303122122883537069958890765544792114326263250433558730407691985033519377947255313264958567453894026224723307397801246616646970341265596986764595843056055214687211290132300579244611525616857484859784704838554836778910862918930014988661133467525869536911118888303216921714371285093356658400382887034364708846233619574864643283048402376349268196927291855442582299509433022689241258957840801534674078446595442457854701924580953853616044234195787190995464809781899698374769365869496231637235243329834078694994962821590052788490105698074782556970317987531831202820123614619614810876904208667332760951095015419626891241060366408865173684703453484972180839733860390453939169211325998106579899537122028987595054022365485830441965147085800494453788719597060492743962273542609606168095873547811482336714697473670877202984237078783098537939226717911960656334157661827148971169656720561027020367223605634841971759548686869820630325591940642131566307992543089555522480143706618437147978101236989789547230943082346620684944680583422598929691762443459393106995479805094054466838998808620190272458615045610614026764419943834953868264647367448933210378217285213374006103592284613183740427973840757066627721440367124353801292500942123121573672449085382676658112284833641896643349607147022259916914918849138654787577011237237773756600708177945419346132016096444576230852411128059768827271831756963195015113063803595815908675861007360347837136435425881589448890890389234029101147465747383278405580227829451432071244284374096534006866983222337421507718038281634848177615394678397610406236113183099398863114403594043278122416841406393308828583511978699202929013399121657770109076387460383108872219358287402504119550454926772429086580865575397525240327973933007073335120016899368350042436403068819924799882646569275391612370215799291735043073722713447325841586132995918321434852408439551357376996761592096810867957755758725831197348356668441521044485427698713643798711213900291199564257554014847719011727682853478130450909415814232312682431463219784209140850487386198112960866362134813863507943856293243906699380261493690046792120051482114885751922393600985248678325568572509173118410693333862580922940081963845926143579104227920924658429416450319796741409118920987381188586624063722873293022062767631653074297751879936444553464435281537152902639248763487140871036650099029955370977611645287988206972565769474288977549940077051469322254562233332842015931395272242099601596510959907901301595234560406638280352000137086004245184030362484126858718505496780370569356811930397022196653073222692518119793266713210048489474701853046761292163773902510040138688316552483505383473022296257509085424807988675515238086028706412104451908666743186026689725580519588404615384297183859267279128743856170087239297359105314734437817904876441129479575134690648766774677775774378885883568318631528151541242654997719403751589701399800713153833044463131189504655921561521902586848974899783692893673485890686134476349502088731426240168959454200359958348892135347183154387648986012909954585786527387740251165436385713035877778317714246086411280551933995473267609248306956731238532949803076013982904620836890460539498064338678970348624227836408467662369314744010869167312272309122550553615500767918089915525000406156411936162486164690395881250551953941699989739957733081902106415982309020723741373470051689405846858886090526619518766039961105627449218830646590416541294633358272574317235308791127075899333435003841324981820499301057497060076464943404542227456498985561979883196673260046031574305258955057485476651447724222217134603886535492083235243854990435272144300941937381841066009778454496193415049550018337599212417998547534869014933895052278229128263173543926813929885212475070185371268560903233004503987003763343375030248363996032796047440824607348947596204162604858442152283550976000170648749217595929395186612521332754291592915295409323446492482605496282501042780738322219136851472949283421974242259096650523822206265337705841022644196740445543866749037188319979950048913045621337269970901989176173394204326318151719526353686153410234319887331701184806331436816600523144749689570618918072160877542632945223708614247913362088830444955776630951033921052567204799403466896059394613220649536232580455961117509996143083589736962613292410335267591870459653849389007867914879296996886101216394672450057553279067110527024476387168402056789216271012564976141012330815285332391000319868291199725418106814919299385065528013998539479532026201409479981623714561127638324467385356313145442465364959992355047834167231353240633255537387132758282686233033755396528045518763268169242767384065101987112019712532158156853479136026947830457249949312193290552252892330711862556859396267806556125001464910298562409682770228721409839743508406525843367861493567569867233990177071501264114648193290867798754916013977402135657920899965582365098744558729934464291607892018111309864883253122323857311879363662619624138071979060922543658783236101665245338067497980066822850207316376014130408298142483821319503925104638623786124333134264383274756619687298254153828431890367941245880249284600492237701795934168419959574449366758325722066755884197972761290946081834426293471332306503679811855154987005086015161043206634627837680936838189329644884045412655243740592529914890305835626268246661644550691819442936394234991528758023963275765584949086205414730898629367099084969912607498359901634988650662944563373317818395615614491814103520929447754426255274452131021014727518626904175445803961048303578789412381845308404972468922880502192407511205233102583287306370889799425288209055815636934490636822262477067533041212193687165430876118177132874088607927686386379875341916700238552692868834589305811232458435905873910631890984951461180088735693353517578153084369089995975505140885689993979130115471427744705448623476433953970619688294913682259015972579006905196058760314400242587989562523602942267392634037679521819376309683443568880089163752546612856607605062891017582397865924572733607224937932194670204839993884370798980398049178569892426372695656799551307757911860486769320705561170262933763830845428278407827799678791929477418524960271857440718183857528902002467026521016162762463676448807041772612653955764331834359563115927004006464424766194075188551154324691041731795903442044687658516847963813985315645148407519280397799407381391576834254581104465326640437595093737656232742175929604881614225123750539251777459659859664120979824621643947895613342419467167529994153556957220833585130874605733581665826426244123505321792729249794062593138713979575342407199777173958375495194658741926819405859722394229560931571274029266485656551361346942395865490828467144584535462731086779002649366185688766780109505740685588284450234873482414606012099049586543044591736277064221730908221099467884847850804186133086108572514296927936849588434442988780687113174715770974940479550133613262285944376466338164928024395497180004635790583563580483806981392651251800000301607949255347560078133792770310856803108749442395015721271374188372293837694078784442009507385451408797403642306553175392418026719630343055535999765740486943024937280120602874544729495975945960676475242694264095818553032820758183388757953694199892463460601394958572622461510223312552778503417473794051692563373189398329260409005503325101985058530751281078177705108953319043427834078316317130535604998976013818388752477918762680941804102116928148153465163111654148531577478827457324277541489237273443663521145398331513773204450823930733719461734879833738520005427219936561180929630271296511390840674047614050351907093241264330600467107935875381784009069570368176338068289541577523485922352155808637784568690564553837948519890123360487405832662339184099513694409206490474279635569755637745052585659767679999160052596454577983960234331474870069837141351758369763950007237389100364935086535889063087720821583767894132071681653848116851978723273570559851964985398327889122105415317990479613124342097661071877421104554588219909793204443607138399977933887485794520840458573448441778250587694080273846401936809254173732243669506072008541295721417094406059968022888701423304100616765428195799282188901069193962293683912391430581609514679285691048168627691643050897096458047755053304385462575223340798701297654868911253096083360398474008078165195322841363129032120916970151639380128128252906164993486864160827394778826435854004921427224725384012234280190636392176654449712557212458336701839508306212319555680955718698636293294435197166855248078290693728014727741065253863362280883068258554281164073879778120114512085885177712871899589680032485248579411951073150689724725275901337458862989690644402664439895711168600455440199613662372449266159915042167866864171824389176974662238360076900238523086475067863997684002497687358886186039193340281273056414666629483785779915890177951552742598220265823466003717707806543490211072939844339089902888228678143187904530406479472116655839322843667785165554213306473562479917348079625528018546590111001555990105735798927254430225188183117514521424199871491390981252952977979849389147622514770214214032929937732896575389696923634704619429982892564196284988414301919926899092522988977334539676176606017423502301407893906138020193230410102137483184063338389752588175397454991439394051071171001715077395609830532232847955993839814461993186781829041950256084431038021211649571897189914594420900211249054539141000837985638690376614022366832988269928222741447559350461028876793151024048499841309060657327925714665653297877117253824540789178928119516278292798292753908007793133675836508047273185319029858155676455553794597900645116093992076149888201812975437089352287500221732957748941771221642085091647566957132761100186098009609033413299851739693888113138485964921006506706808120601179472807416067408922376733609394025510776919292819250927585802114608038901862006287650451054764385677701289137222937229164845683715088864433480816716162370200967776801086463034507834366662950886092533615943131398267216782173759677772463522494038931225303962327024900933386824526023991684282999761615849455862957448708640996306490185043103524557257980064090290442435566797726462593985217203331983585833436837246766885571420316896668744040103999967818725309130352804502844145734245734335389029356356142527389281642489780023820598005059270657122225643197645143019505345933672104051311508918705586134627146634331378337859236265091400154917691324622368488758040986919344223245179387514445084896764281542681954685059605665405697139202312322537711577192436327284061407268049024981318686723012551156952581050336688126050310656589516113166970217410051407531698797087326327879384964669082825792877162310248059621419801559862220298663708183019237551926370101945407747399044113466087780440968470677624258472774989151471862556576519780046509904368094844917537460274175732045735791306826462322924352057112693959259841593094180901652875564340448267092387010014185791032439196572093762648961880853774388544681513244341531416546737576249492523816879304790870760431407311374024729478255068632325899410584399150804165447218112111161548094788893532206664250979416774105772207541583584483144830441021611366593921759017298871863898341503285843075289547773620749484062313348081961967588012457903581275301639715198667558390650358818118476161758308304890522219997545636790727994983069901964586646659232651428148951418621522187671671087674927970875619093758277042965436451061822143242810233017062137093226702258795964537156229000024999982963195122584494629666893875525874922279943131788141119500794126765495522028257630643481146921470291700691009320314227353851005132638298989571796555594646604980698596455372043923950395326405864355268042653473972136805140364102197524042736594413389331787975957880241649669867551791639697028487285662556234837616645925663554311047234070808813698529020536725911360381103106774366812127558173345382583649482639153180022290726693025775330114165793643339529466650662157053629991032615238307174363450129781564469982269719218268525011824221370453138361273399395072368868498965186902990751838306521871470031763828266541555092180979464773766662912551971318788899688941764390156678130079094878838749704014118193962211154420164794698100107224166942090124416619211406364045271071304933201639850449299490936962974725754023113825899940187985107483103528569435483001417562385805577698341149700394057857909008036474794459802793012797564187872288373457452717607975337702225632107558744615269405767411096422836212104690983623979994704309119851099061005833522261475062057760961319428288279725817638241463134539381630950230124658540545657402641457343316869314195990190387192657840904427108380535943525581889832574833972560202093733947080036797321305148033323359294732132078075612571683259195127753688339566674722548228222869749383053164366664121575483672528186248474623802611558641719697533760913181530395938219817152060778465570927621044006680002031845239397062580424071215138295534191495309614430898718764612688668722484000664313650982221097853503011748075473088439778835779368526539878038170828909411641354906212313056163191617127998732579063489668763582124243362781699197411315805938354366800550182480848323275917881906991127932645508411337248824790356944376145718117464029258136842673884169649348828335607389135650446271619155346092933065536257921987706831318644583374674708633217808036507098755279617124712974882462464014701931112229610154261496354830140576093095944904994906390842490017981113498016660128835931287097049073855517901074805970444682018996701587974736860417793943601596345806663133856178678981870738297808730664623624665816866825309632634568730628493220851083340925563133992328472127790708147500364999625239576092510710863658346610420236376192103660055500765635430764309246994901747017253871591853638868050449345744799275358102523878018360385894043598652847115300989721005410017756770192278086830251174126534929003213833464494313669042412386947641731886068184820304450505026770812423656699005366896805390129128915303119809938402904304894525987022867828404699808714795771398886464324155205414625407222446268805681979513118372771399531171420489534734536652048511073621985784930994779519145896900263496913775030413965008673285828641401296182274252952850153747540509572232852129719286907946066026680498840012555165609638104718927383389113492992841262645785548350220066195390409528601476576432103378335217594891609359060477163408175906107907312463175055599090991640981639425438769453868745914641963980324432698011393897798047659743850527288236856175659898265036988143601878032849736459427739408286369811031847400761862933886431924109381427390388141651235938321332672655071442958366866661813247351094076276952256770844580875716986719078663261561139680623401329497821842546605617808105307755214141443445422276833392218370749118478490830719990044988652980884861979666280769967105962842535528542059118479846199255155186338210172312957394330014597323921669421267746571685116384355684670274517807239782913961933284263803604878104910380763535977484590659074220784260373730152306760570515644957848302679758577279075623718645491464276092338990584846029954964054076063858315267481189239970975746156646520244108460939115348495529280221643270897739032770369966223435190939697891990313411407690528749760530379625866141537740031184789226396110503442088607089095022208980592492208633448315535486291042754346757237469983417644403386022123675831929237025718362664144013416457463038712130766833014060416769156180923065175348052904740911226769494741445591610612053801794936286428246906763520849393895161692655191334099775907263673124786967328100515966078508595487857212007607881565693275985017843813250123179134752872667318156299916266922676669838929727901363059581089343840419844521373659294048330568551555743695530065396597930747693737914861124276321723445473414892638283880019633713423312673326795766087132304612762376383704695287851999705658977071016818755541467587837468932254424082986383932879060067957684574721457778511746307350903227833266219644796970084341759225149914869402603671554116048801455591209129737891599549280832650076535191460104254686033433794195980536090366646699395469238137208801087036552231311032738273394161854172959419851662544085452034332348513541110277341560435987173896506396063426008377844063289826707358290564171916983390282197620664747731365619638608812936235400195851941824219311486698088022067894968186535316754218301593763644653946301707071885999165391579731526709785817554851109095652405242833526762177407800744852458062635797747625353651352679105669219361268092643138013705239891705469260027042439181820540945701564080223702753933044248406920424398955039675913979309983470364947233658789650922711710986186264304009672772651430000603469711867073848247218140151229750741529494589588595236088106984581038495374490300674286104165477102732801733027854214095457824808148390804389521732334607191053520694445370642719155463460722219583354771157703602354088076355846808622664294251081488363655787041815294350474376416233410070404206371805837852582579264365653938495261396259266822082964194346853339449090329019276592201941108649512674788677357715176616423832399601086595708920444329565312276763648278484190088555089392911533380377397788531528326210516120618822725405547839730152255260379564191939375809788520518900970453780950016762157028572382322389152594375740225257855854087726952906392236090258955376012310369838623521645464412597256710836126792626079215660005953642163425434308086274334464085759978975240871572866963744044882924309759220411846221879963817912260033054289626699163102230005191237467507292585006476453054810065617784274978559540738702184369350666499010356416289850911618744524050158832282451337878839928288677716177459474555963798872608635760257082854027882657261851698306295143496281815610054172553919574187380321049140794503820710580739545433786318389961438507061749765576346083353264616888698426622261097868643882723548299460735358407202711538544192735598678231050297740879632193767961143691218913322739322633698570043392057854681170003279673502976300478459783845971015886906409592949370075026516818180862254023103970402660622853568205210219536041306000273154239286165077872144413454872336239502571555266583442246678480912676459091677176876197176909129260407078336896227649765410578975376745331079165853087344346954676832056645972313173296278657423878076271774857022612844921374407790689727609771176645676110625768187620587494219196828574882662803230008719515803899719651716360597947946369119655884952823469814375954872354867246044145325481614521439660685546551858971393342356354107548674275085931421194556248419483348239285688900751177161311748579703282210212642245606995809455885647417660169660369406247929680506823000374973966400044594781886962309357336931835255664028527942462260203674186771758820732585347254885116760898825869166739903717023997903193715459753472555931773649499104593739295066862895337878790908944894062661500326332532565195613869381344947494811028574509255556317140647697950297788004001754175454885420868746066185533837155322949969829533184524584033861466061562438956598403507367046955090190699877222516844660472514508571289573470470905209103399099696530390427840208604681785291125618568783149492604148258684840405446573630404500857813477036564651936185979489498575092840099622895276812865901307587818801178140034676471083666904177042010849914407714083427632227065102806114210758673164817290220062335629732378979783914335708511798004667283557713379946631817747536419751496884538825478730621626814508230097127114655848820522929216916944086202245893994420623605158304244940752016031729715444131453195606895522471820053141358420235587105634100752646618360312964533936560667224711656996037960303928065841268117990956827825268586123721871049325658146229327922101122148839471640722755784254463427242001721665736128602387172087383757129934835569057974688918054216272700461666764016340587468536429176275588883235110897892491843558220437714285961404625743424295225328322084968754823743599763200057668721297012616166215666646386815219647161615473638242837397443085505588747765904564306718473464563425886198726964545625592845185552273505384100948147650364617534450681413374555454160078930308547579688344924665933145634268653042148910452036607245661541016436060109749493701019593625549251124338684342045460030327083013055245795710066957903332293956706932980941068063165886287170962781424606094417524228229456385937001218425920486040206341692604124853770529254554754850269620155455323555023434837509061042067584593122356121597505724209396193695047920960956201440347263555727456813373997113661473790324882842287987490248425858823581476521862923307830389394226053977943983457257238880746454518654869968639262726177535598560091097597529367135653722337148589664668381541722826580703006131474197603872996034175607606084893059508575933519577163479038291037506422810693259674865415310109663161558780998404753404234431372445948101216172153370590811841912572629511453979739515853540875488319546231424760667972564820537880471179150661767872864420641068632820724948373344956216565833082442885068345879594464296520568047853180536257250504017066795882591610592863233005199552100441718759662660114672930614109542181973367862004750095806104262487507853250865865102324159701222716449969750671804116574422210609844318954229468155006735433939212490656142405263541373131991511523485898176603321296017162956205739187490239198676581300463506226245094194614899027475304468647895168032746714566522113522557962398621067867403368282413161125879059596991253829023868271065974047202792538760090620428687251549857871388873299814852686318287304621643918716334915617930716699827350776025465588918231029379857002347323981030019538063086132261790493497141519526241557941932744562132246591686309882739787692666085800583849593365872035858262422404750472348613824768878811167717731735600057733415698262576917193887257878007603215027854306981968526662897091789214350853946589348886264239852969310461135165566912619648534719835503211765882668021153521295366212256713098975364207953849428735110309733046078546367061984984641609750570580956081413241167125255950801331347092516089860184924150019831987791332057667700593833397868494080946613176913313460877806721327497701310726451298349055427517387335644372802336278174662726900267822525637314934488487774611953398105335887505151987700301092686093208131620142962356292672064369580214577375501750992633749486232393943402298671234070520765267395999146997655607242439308825677302228492548514051879066322967996517562841166575292836937034023060273878457140182380804988289721952404197113270899873292422051751274374099926019616604907643852563519907319095481241815253446947827427255790474205292885067181509280708345481141846283482643476964490707245785742102324998667013885994266764285850781320656767062521436082546566936297172475446698864771025559619713751922381552534550552724710136511139591643736719694753509121612596051176689088978914313083290336230574146889575871424790048796504741705301108399754970564216897518614388093523650604324887282032026949497876361015676012311205474130157969806423566228763728477327690447525549879001906206848208695146838685877788988363655745802331172161003945417109503100780947433198936010629536311364548285419538843778780051035591955299621946340495345186020444634749948407677568470585748923567002264817375646066235292716648122236863620658687053347565320770050507049024304047056678550633645958672617578407440188009181352755155392021942873714977775812607441385008279861628720520680201933278474533030929154491238419407464592350541298289169760790190107939409282285247108960654168048980605532785661258189524660215346485777967767418764688012740881028553538116847910482690808563445067810922458926515983835338395945897424348240660642997387811914372390510422174591635404459885143840250999893404815672498697471278724743786192343203494980327114144814484024156130127322604987740290865932833299435696463956611853759242229536775036507169983976294673251162774503488433505362022689272297048428416827042049058973447836421571874912752162584331091717934995422856600954219768263505750371371123311041182385013275802745318354935771396520789021123208901371829948334457922655092215451709741853703800519618724936788469670913153234842813824845020672435122792846932720080216822237995658891670168902319617438532469730988087849577595144541327459293025259743822061521320248332708046610344686586907391456426113516534763454770235165055936744643683265428326976164778338623586521205886229449990571864589891998191770862885695436955464624637404257037895505041448752791627160656505655264096480759953160030340208505392681925072057117740621402479222477558781079916443454519218393516266850166554312960216598800459252002429185951141890826901462836486652778555730591096301059655565444345185259738260810876869216325921402970848208217282264499119466572841798377164849893158384290599183236679990290879669023116630189047898076176303964850783827501841948067728598099686912422113344362629138774939857207366222114429451379860587275492499838283723451485601941597897795772751702064233780002838069325060870966783640511725819982953102590978300497900967438988081564389515833187468794897108525977642858641586081336948940082296524644974371605861675598282197051144969568701015691163536444136374624472594479396584143388068746930269866730540866114473741293313783762224809191679567770698468899277313130439039666380012275801655751623440744150939603734906626437832430893592821075619777882946131926873707929563237066634090832507791199835470775261539132105565536377091460223360720016739262598790703643760730039575409975658178695260518659998444349518059651189843636981027725710497154974711824404494947960619371644092359157426855923420939372423704661119309384987242165242988611012809941116451276909735292930275228546744828676450373285918221980233120892021528052456774308091214727338518353091531834633460297873840860570890063113383277428626368063997763416060425967112817306543757772342759746776569921634092938768623228963543206835000692026288171935165182290087852548099204738117713266229147463271769232311258797369563179910095998030790273036824453650207068421527943287091137505144150904901125311641478670904672244361857495611840132611929771293771351737668336751891584165809018720292549861078415759428246097149217311559704937036400484518208148977560643638702339837158186769859189792042950921644166461570994070830480490663395294273370389737887829414026678954267422317954311200793682958173385494632046458171925202203775161136979189466985890588409686844716710669287634993182719487618324742360308869025706360251166860160084687601748289578775708058891490630986602209233921892291717707824495530984238520308361787431801997406968295971452564992936459990613990372255176077685336725667513269180589635731301625421187381570150980259529896897185143620067421222401837615940349457984750043535431305554301836303320735908566816847304802367024465829379327856969100848264050483680094269198477170672394203085483924644556187523180017543383879813872316027361937057188240496276057579406049300223806793282674515804614316933131783586662598101492029623684318738180999224771373692669667270746019196625318006940417642181268184986847357655365899170092019101949757791611074743064713435474702339827590881293759066774827704626365240670814434637365509604217241295145511623765229597019228689980665700135082146332441734835796290139349093753375389021002890260807357611579240562690498322744291765364455554029134520126832741073894761860945004184538410184930118696938062765940087024193448187087087742221812360921649518961961866202488496150068158605784113854290117057879318846273832844741788588823464516542521394402842769448527627416272905663754652475693961438502444075177962499010585573214386267216873655713967848269872611361447438609401170767709547384223511943345549757951961879600042947296399617552093750211447069949173529168380078190330957145953025263684600725046435077453424718136942465711881404003909022485309915968528804487935439572961306198446846687587179384933422996849046911800513848326778556034892229424143193832330833229428933450495214909803010325487762623851984115901181406299424504437268961210250615724550677094538903041748462304771060758330736973101369806411190628440515867307816004916838120449322786776541459246551137121273073960718891898293394158339433968508149917869253482855685209315752811684596663737788856985547746629047851677356753829250989141095264397259034492220710899240192586073223910062612931876220051235746730848799206459436564841929227719201390814606738034457168571869698544722787652480593186100010249675823566463395766249251220811520115541712350334149099574214923643679691111327797344328530462329253740805750622286698012824235617136707126133085932705918500413449933114438522652684329678589026591783151268983012387993898633748541197625834219508638618378612076555580124521654007574248137205836399092927764389556279053280945317188438163406179573862578268770554733835122152801006790178495384808204812838544846348659339841799259286622894572728538455077699686440427827266017583127810277822982064795633662958366798498188825509352577737711073592643327717856571700336688739334426555179107761110637120178576497232368073303035328487435437201106853703965431669291799505863784349015703993142896737979787700978523035859706417744570119731364247752180716282720448381695829684371009338359488806675051750223670853286151165970376865242590103460282545671037204948474325409158496927031384496763756301191597185147657141008480211396438780761976420990862580969654310251216548826767654354955676264605454947863668487147746134331622086674604095451643639445736715602508495156302768984081474637071245416463480958356611417452833054100998860043942339435564969292040599313881882041923346808052839257002668895103736334877222090761902335171771053799497657897776579189561669682991577175844831809839200058418866985131750774482911108296595445417286902682486960872760750941911533806051446933151137312887114637341283380223709006062976473873160664525731339081296969620967847671107525427317806113476549560622747704466753941360091720619689050496411562967515683362954581860281042513805759520394277499397540444577566406042583580783908336192483787696880798367524919254701177340412052534581846425195749994418386027837396714496976696082544978704178946179558574739166101821119318587778914762218322555358329408663563901024567200314616649465465444350519043582143819843318537066454851113372554911057104282360646260803700080781285028405277809026156205042488990921240989301403693012723375393179019801750809909251207925497956452995344089002471677184069085939983879991044220500833776718608228489238662926273681735093310347031816528110887155265582068023051302271798527966852303192241835376986341130159832617457005783656490000790542503550568631259507969126641056700096707928507031912387232730127253338029463013395989855158574868489911081418582424350969906080246587215752939297349255809633377249240650889731494989816718978804667806780337208680768017389273457494882989544115207832337490585268238520772431366559008741224061453723413136888060696661256107511387527883935593164224973845006772068394543601344002266149300749355403707257622313781946313502040407527391449168805969510941067478436148556731418870589120119732911362156915407859436106544052537805835909594851777316186344130871959579834563050152120065965950919305560655400047546253165719126162286241764337435985548904990743081772609498071636730079620166987143920191642961560891856003527509578455758826630441122677646167783202614956012081789312620802013341344937311107256868539811072878107488476238232332802117536894292581487115143336974291460382630224800297812021873318187590604528278599498204950094567090923240093719761229732657050746146884271481245896030474831234315284759747061360924043059174993644848777735090572317187503805110476824808882429541642006194718782126134399458916355259603810531966466892903646414639722400609293126027886351928460274005545282289840576348269463054051609159428911965344619950597195158659243735241890257162669236818519747410256773963245656289902178659309450570966244691247889985436754393896366709506314476271692989921912182646603829186795360840305057108777059137610516665343967478209921271460900701693682087039616808261283872883688956107184128882613281741038444292115424551667147719992824034042056312996362243862805260918284610137089403454155881232942955149399366599128186247219762170816431796388324793064885187410934017971998970141349809960896913842998356967128490151460196724694112609535823467292909404898585083437797950982406676376561851161276948492050453642418642569582551275241868486359699303074933488638616120985087208208243630006743756432488608499506632374639004831740431017372050619484089484577147135175784872501966018163584828601019818396708293340711254111730408436977835780232781458679216443614096621882842747177762121501411093655137380689982261096486022444352963561016637295458374782898949043963418638740938462803021236101124955017452543086416534478733394595898743640537491118931042138419659049028459570185956844272375537513843995423408742527520163068765345913153584076534895182611220153066542415169282572207914959672275556878693304517406983380586554173497286961419670912927521524969104253258828958949196089725643656080319899193376933793054043439763760206721442064815383948442967144667720365545184919960933016720851517366190280797620844391374544887595020216287027950067263525357394083520944911293685931883796668393643268170176992267004437816791889303891057372219233600258856350201339516746747594006603691144137695166211941578790290044990863974502882752979086138722839535599377252911971310453567330391559721812678630577235682882874449914651759440847039414667202624171414505593643535552272981207968549711975481319933733454404218168385831957782974482310489305444801616077295858783047950088894850569944522517064025627517680171203301797258744593713117912780426650242845737880029555187971403879969750843004211280704209916634996583661005979094636049114687365447047524121984841776401345052957210109616219921678047538466193754834257552402637218375796702561370595501082211236828379132370884331262919859245010665478319006571509197110072174972862408154473492285118315547378627236593402987452269216484190742398634597995992263072789706985629464768697152759533074893443355591318748591263161179755764538075649063959768709286986414402451308508521858328168163423830491910686707313890820448270688044924079379066856626475805504577166921946767347731048468877291786376468703077876782459248638523208065974868341933092600088488833002268926761120788382212931465909633700137682320241109794457408118242021656915056820674581546515885939593830905278743697742520203348206848381925005964779691654039727581772678412562791863369296692683689107352172629952076556989738758054678506579098789888485003236777018044499090400434684624469053022632105364871819431860053756809323493248932352209461390095433273291615414695792867489695830457304684127905708877817892654677124685359341537188388983475974151870134094507076999215395656680085066602931346377555017788981433843002376249286340959296615017519212693111139237707712530101900816971797354678587200354852997105607133893163267861217631123397085913186045456150519371541710675114832776043760154280834803060632675334679087569684033556572908918078183417786485592040985038541621141697450101808625212149131689563124337926164642463268309999793951417580293999047179600595974418235817646714126805408711742257781385922961816099629639169281227253012664264213011073285177397199825247477517125005983701034400702758353881246990195081203922950864103337069448504525146976357591626894514707287222339366908633810525591952545034776905203918434993002260670395084492214576461915300069565244202155843358197666023814085935627800087085218709058097325597656108288056360611052580318826128775611445432858058990750668652479053250413371128078561029945541691020540972003786111522359790587956672631125184646064274033060423081357383265208123333371623039291398638296263805623915715226623848883014769345289503363007242698136111189355405666996930260729596084021924297278196393796699741672997830182818039021863573992963129206737194703463551904521687631012115820823467125529490024437012663884847347645018528086654543969448018513346473244510902074145109044439857913254970987417268678454355573756314593246349655040485387265007979167874610030115883627365753377689626052265793136708457731912892188965376803033393152602518970539172946730207420283111783224076216769930517805016611880137175792450012264711094521025182245261038545584029931071908308008375754389920897106072905104573197029713679239223499772908466288161206383111351249839883258250969648346690803777647308051807706373159435752800082991469338632186486159240741823584333737342152586706795428122099144168912330559885620226345262929382571569357690052539461210762469659752664870744989964309859988751163527489549791219826476266227528918585213811977404156360023803841864544715563859238086643069388496878880311220837022291243485235794810690716609473304574928746030050875869733027323789619952963242339465150936030505099032826762826320641040664988257441470996892174734676664295110471285341952327082639788700491436784350450994757190448342436151600745298391553951401551215878890454642421768085479803176741285729170755477748023805087059932831631546321347060407819766795647933206029473193517748664274189193575020195386935925005229944304340706335632791558125729433618882774508906316314345624690733567152200049708823759099058818925815652430055766659119922471349726803352491390235583676024240246927812640842113006997832512183548059333189890607374861405972070705856978130239189083820366303183492932823349576720326380809144049539312552573860201820891727587468088456041914091747366526677499058727538222937517102260973534939995381963270528178032730646728348951836022446265816086337606246889095058330299700994524151902802318105734127355674953348329691087024209127609124797006998020797824750337331433947516240342488383042703624858341880743114540771202215431665790972404406219166705821514091981865073215458823126340656888149611213629110304584133994871592243155011224519532868600261243767732814124476061330410921339282076666298882964960909961719080670442200781911371824279885788721702194270976108179218501114828389333187279978268416698236621692838634568536354070749519575362884998158877050079081580568309620396680971806470478802631766200492355915064941104482787610927627431539614637641725521838800394974534927460284303576248915601857026409785354943164813045293490023273732184985657126603824843841133055623320578115796995486147603908242720074156041188790036721548137867282395651134239975044994181867107094347803785670937024949143250334050150595177083318366898204207150198073221064674761804134990738597802541633435839486288369428908707181533279216568586171715001715381707768833984725009877855417584794367985618558408587780921870428292617592149865804319763862828291759215227840785717122959946500454747559363215708271554961444616447627059050298216854410158936377072058155206736413413551330556968225984579220196716041669696604110733628675024693542177102873123536564216630705464289605106416685845642429767722916425548819278049041447841907778372888027483918398391519583088045082368763840590468375082638992920264447680592760322607504462713310973968104188158887513652030616796342720828185322077771329087493362868076919587815491689056319819919022524575497056595921478794637079219367170032820575951978736592231587541411319008654716668340831890873820661720647977720015161467594125292750954631962389140173545342469378591834947298621051159787129809028025779996628879188704927839975634369191545295966730669398324983520958458806724087160984174899992869983161122392535955559370864350874541188794669985823930149831525660667412747113616704421963615784711155645601221613615353148984039915954446760563945359397000178400952359425827436069183303386144185378717089377263911828723467584593395790827672711626121817741372114020090268808763040607412336375423968897227566138046615969916947540402881685316355666895998392998981247091047925636668248378977665820283132072850732283877337051088714990287246079177056534845762077508454470521193167097098707149825582878949181200019711255856386851760402040658843594175503104380644128105145430272894965281999385687282256512424989572409640578586233447623628693165118278967641243499421137519502152700768026584062512067267855425918771569369491027849697674597831018168371681785914210103477880737248611330852409205744407295616987656743003459073994032733652668025725010419143296266586885768305341083784498090318870277935347137181839158727217669476765893795028726050212973024766498377272967940271330214247204063301222523719813516533420993067570180417647675901876334932576500452685994293368734034050737153538020409358127590132237290712483404077618927016820065539709456535394983354901735380227312496678435766380267680605951860413232333896091942931822758401746849795219082442403769481283345388049992743797326573817079366063953867589701528443998036055685772439239972530700064582882182249966607357302528620505828913507645671246361108001160356507022451605292052272824203132613951171579221836135089106740251758620221655814099530672745890956290863425986111216028162962732392231859306285107063067654231294148264310568488866092490216439722188864381124143110890982261022070461130790226686621873211174062788921809805552313608565575787760345146534300795037458156694306907623318537945086849880678969305959849742774395539166098921273613641412535025994939855696332700313782216495779978362691626846919468302081854847804261848810089335127954282770390096137146467417533633453605345357082954089498337731202541922556650525644270642297218040906535416941877437209604526453254150692433194311497485163572492474783811929527353588994150022576534853075197153390981783989127547739458002663521780245255232852784822952945371153732375333165546387788899358192879712293020339325235817854531209716833860693001236882041145466037007219271331976176414797143562645353025937844433178353563361601372713884512236477428345552304781550497643273798464743317617271710866135796301713830633383092662169610865431877735414974430199107740889657718736995245429898951596345382328927033972468357474747666070528265095703236426683805256321980212562328184294743617698616920731613850936415499223956510233121873161429150375362378448412075054427722178287921190131379705361331593341761003727197924174764224011410041619008680147883039542870407142010333862191310661424002889862380118915195988150895305421233446279824848637566664448693945564214382623637784650449896502947744163245733560730324961820101598040867718523521654654590631391962278726636054801332307690074903243712942174073632518618297734176394254169531379782740590147445151201140704505610525756020839126733214553021335968806146535397689793245284039872543986413903992666782977134309693068616113407086872145141552299386021440670240115557370002603098155368098501735052599435638197166314723304168944241390559014428255761573947104848038422631939798938475243757918424500365783908501985944102138580787214871722985477064821061811679319538948209117162558888021263613284028509698804382009411385971386890506157826673971824754894778009985282273158658612151612969248195900074081581980707858671689321410427308657912932391784015907709522304464918899534784372952015766810797903612809032833079544439104318773505655321203060667296479859930322712939018940064530424416780074364863520229493693921182672450196966625087015655817240505828231180674267978155339522331926383464679578973231603049260344490906607546127308953335308035948418301953382771197390899280352578958367803128393587386486161359186229629826906147879395047405598514906595743970402457473377822230510195549044785050714345191774783002413697560054548193592116358118557562150669155448825161909525198171727763092369473342855915611284272138764517949086823873818713716384784605683835851511512669974058209817304695423745300739337819457057241517186425362987457893208176401848426835772315797488891501940998541976040296866778768402240607661907219324105137528612833638115418617567652225146596235668684569386450988627340285115748979925675193396382837512195334493047456073433975058060961622217036527091675717751070877558166460418988133652522653350106521379476494789095493502170712715491887939552190704519116968204171761843406318962871641583024838285655225795810019093002993907223421601091775781244910762793573295505380196399990876503744814597877631328359365868055453953898045476405142545968879896650294451624328117872772420041062936664809550274172638981656388720270827002380172319695167174313087146065336407585665662341924291551055759849096011992007460027401030983021396538107336919248097563890286743751239127804208619530579579488592136942364499387428526920571174655695734439414197216415601361943861574491861892594784912456556885953542710742147389223304494646004366441388381623314117283960268376828680789860067703769141782115281547037860047266502890914330620889824743706872650001675070721845610815385053417511749030390561035106150506333981800063616439998609268579577859262453698263238632783303014272829617843897989375249795025386131269687602144760598492918353209991046302851561287385450834653912094825113080034789627133722400962748040955961544260075963625797450157702762327713894648918483911380101632371573384575950193461437335053487769929873569688547669894943351312726542508385200142555239603257607465912064779714344602698401981353348117188177062065051850090434990646205360992959140965807567222692399347063195157940194567596125707592223146079048863326010356803565839722048490569801778781961398555846978608406994936761864647637414647629986512590674029090019105093445236016976715863319312283311051710737510190804738372343559000372039089002138337329186164016193102306484265687712334560541989611652212241901513583597604420778169341210912167514959033139984359378644196696598583429859679994986812171038882424571686306945103858560676298633771130898935922787896063892391177027219522579230026424360082134786318373484767972061781554888585522255432264726801912261109359896686158474939144115325631214995321032894879530483579091323432744289060498301284099852622881625669725051864075344060120087911878298969594630162773012237419934221274215129202965231278481536183082409327463874320544560235963332881147781166991764357805254034684508009924818695495317566023407270410489392181997675656128086842786044559040287895078480853772047272977310871300304670784157593485341024205958596183704588221657774167082947086277045921850279927314801808031736076789536497318235000760550727095424538116277052280877422844761137204253121754064064981017615314705305928822919545423689117483058468601454812487265772240792229443952596798761283119429912119431463918033554810858718022097205579352547461665529632674172784559859514280214852764049241295262506877797958938054343656430574244579906071903711224629184024052654944306664575078766505773166483845747444749623033845276964460000119450564044154520620139549431741903009644875753535431070531178261986023456480704932771729131022262434370178522638284729821524345437405141264904701520366776816314810051482185200561885361694409145704429896946267139746518467196529378738340451772286908278483185550338190433824993014925963852392217846634393603227813192059353621689803313322885130074760274744704120502432433077669753239064372700149404768693576112104928436695459400817303452762766112111436026625949571246428638645402061229250801791463233373492734646899800802433370637645916473030105950401938708622273693950212505663301013306986033655850205433919632836941751452673787442769716667448600565334799752887182786344545948252790427783278699270762606475015046324064741180848471340345897982961779706255871007675259621216377251662173991864810410760921370142962420942017644382975342928649152179329721832879080793692912666087983600492573994622120213749781546211433920181220128688478404537479429073006258726081745106805298507790621129955927638895608429299649222781510760935963919914743625942991312056915806239836840250494848472653387817603194313515109166361761695583270410837494078752397962543459274345204994668610653226607596807607252414543886289147607187763249700183518608800120331779603622503985657990523621108021069478731326422004484364313585061359690831703587117162563612263653591787958783042659611111596773224538179907576494220040663958270910510764539161855405914822361527741343807931977786754841738918266899918796603891398168168183423034364299852278467784085886061150666671751499107357254157132652812569642061683331633866776287036596000612460693108223789498124925142898261041191756036929663313968167101151218608547009013835790145454988441603319840585398419575434562847445351161738625460905130919988778036190177596031914732312642819691993780693982465603183443597791590764401623071238328645742287529101806638209480956286611921681458712284310932156869414823955826101590505584723505449302964344082079440243158902966453565254232652845480040162343060224484298759251934539772945989699885732495505576406446786054416060911537143005636927981204824490067608958696520578398152785957162226985206330774844832876645037097141274790748362768555215036525537815632915549158720872005823094196540272680893301563649898905575543176345816516949780140656096377742504486336446719436301934051706331219448810434357950502472987976664935346379714253564253852691871985330417033243213637687781818005403797172350983920549738534202733859953945895542410575376437407941118859710688890488897221622044935089837807795635910448468686033934410859214740563721797207740633433838762950265708827836388547490040385778525271566195642620781953138457834731184749801767399394374770868384638365284023944835829672367664245058435946118783842419534611671270559094037532600371113093562321721683664694984485153097470748886877880533757112051093644480754300159124114716646380938789351576906025272602808305834828804120130219343976214052969840830152012343823504850103398870392522360164947012770908017394522687733426660754706767069619523858294093809222474494024721336742893806234609259684269741580787011160790124517716694545318723381710683164702338707816950625770470270087180345380414729861795284701306653969026809460224613252457750819464988118610439728692869276237071137644185757769713028024067662763911781602488592522196214886283755669717319574828682235623652740444972395199449427900193127250165041314044258134012205526436707939603037013821536329050906726189958347811893396402835826355642393565100114334986379867815844828975160052405664012402008134211984867292542361440621083864545490523736939280954385326821136639804364539286716224872666160970911812803529535878941093135781507757126077207315606243188327947469068229599053180998311785348171794927034629323875970195096707479932307677125427508592544380492834746461533193742621997293087683195621308352857331589579810570219774774628692331583831758364286971653138494886650872937391648409000411780585142717928262322410454999860478700159701450566001288659772060732955199324608449292532026307746737119672212639628080916925570631798012738867847806920032298897822780097093899820971111838001062050034977965592343175578806535670351268423656151417046260862455572998486609318715412339759316492441290004216491641305668286359053904075970487478657498184851447009409157848325514594819782287609568294504365706530008496913027886360311393010095714384552058606036224923984853773153742046968650304041806563848573259889450558369698979024318840883266190417224889322947167330026675562637509065844287520232903654181388408447875697067552009568257906786304930275138206156962240948548087039961869921356135918566424291329848133522296940872239761365951536589107863984548699629056005132225198929564177108439105179947331858107646713981021497014762285672168688306286934189320930453348322984093085946864311652708042472742479851265121604826497954767727225816068608117021935457364188055272772097538626748079698904852157636564169380305086587043090356743345849528866107697420438632369110487301625825490445907984085678100129248359171560385764007322119008662259129994049483783369593702923258437353186750597590797852452201167799330824539279134180361968044663198692962443687112089754086187623890185409492171759465084383827117892494390042873512660142410086115823377750055327698750307419842160907267135682461989982126917022286437619878254310542116007418599602765000264263087613120127075100269891002581123918591106771949735637498347787320236070099030547827623957030779707177446691290854518034295914675488740438510933900449089492558403943806538176115250267736342572316402612815021198992112584938394757721916316731634723334052562987050396883824933894933448224532187474669198940973346169572031198668136659287701046949989967915874771521516165520993654025931345761236241603655655900881187191099268164109658876401613675445805853995924475619105889516992774186094776842279247849024024698138440414686384018771473938168898484999243897563185731302297412750525601681247334708579959439688408637923917436132023479853029507761050159869828097394775846483674692587432440890197151698375437035474427456548792187576098331463961483573490060055474855725616939900701144906183917310893680569824535279731060251282910786651436683153351049534717874343727858284613726370014261897665299378066856165307191812802758483750033933960519685032830473269383636619561740066224846795459178978804388680850480476636878580444183728297817697481176202642495226599880103639603277930169068154209740552260066899588222922800647382219197565473423968024525451305808162216387275543987183861764815832717166768366697592330913932045365191520097220855917705918836365324618444829285391028271336986326939231664507536732751391225479297393909173314253028109357170521179795589664709571592177829310543659822672980485668982426794116339498129967682217621403399480750761800533738470278983295930487847393147791416842614071259463282248527226161994929275946357322899599174941921768111315960693963674055798720385006725183893110334284738304356198394110641994393120574297838487402996585347900893864579775290697160997674899890183599132746810963416945149716205222640473802449218801675545860174098775327156387412497298103502787819977769643619520091993414633969167152453962929655984816637386053379634628690768253449562076510924849197385544475506059992745090061578172863715738902988399731227713827657418219095244996150473307336568744330605506049712420373585136151652513713397511143123632675543592138759227803857538872923571317525929698128273593296342202632174619296190801173370714875895793177686583370118045926028044951991636907582599809650988937418856479698521395640298732884521624571774976198992858781065807051654988917328668766513856025200435041833829139308850596755217909022803048360142541006960193096490967673200650075980769089099361625406782250819843160923507894839363815252975271432175900640386390015801007850324374449694659932403110559956477104879767188800885457371859697660270954268044433075702377674817370517716172049683370153471580058784707097364913761103659534600593162830197417396950810622747302689948576302279076390722597607304493429388850836433840951259704004411867886810749954121169701865806208111503052784520372114695382620898151379642218484123056053199072637503902978146854509302130670070768337711277127398735586007662831967154565841833925935860885041195216477483234545387642059567518400762173377944895345639317443916971401653120692638213860986455919517758501378697696821543208600720354203713443428222783008221892309519222399646116846696020793278843389135003879247907414952886833006012364443215168097199546530368823099808014540327474487914986188238763237210012934499831003626009304550684849345062750237591931691759517467859285834994510164759224175126794244595502422057798867577168003211606020358172660964831720466264842702764218667924417699027529268786109963519525551582148319831748093499492404787678784366978567320809710047217816203021431191069189980188714266921391798080475677839773448046241642820767527577664061212083710254346692149434025506599992401014242044438635910901383234853432806629579556216627117520782037063125868722568033055351015752404735460491538730833714252145649091772138005224777983298403433383519955854529712489139645191888878044217463908826041622041263796475514491793636255830891614771962558054396598281889460652176343679154423974429293474746601120528363847242882980151963376077917656631057235859123700416952236087900494412609090447619513764649111744116079218171572665794225222862121538037450390978431999552314025955035494665434774304096992137638491876874990955898377244825369627639479664744733067085578470156924335347492326993924532355264199054938705586192631851685166908789824406638325975103952145748287943878174100123554962625062381355062313051251359449272339726069046007261201104309501020212724259212728657151609994065352537014290795381201567569009918158217865787793929984718652704829231238602871540089274122929504720658561609891347524984104349366148003391655126685967489367384978093173026425752339917552058823979849165385818550056345416862850144345976375474326837113151298871637010902912270138274326611640839521468566793395000267914158066403495292832896513086582576144833260596437214412607740972311391721609543796099912530295776523829011976721171398128542623891523056406566993223819762056314352017938474841075080858204303042475211748325142324710435584556450665443506641722591594352594467801420937388177788420663868190317413304060608488729891321672416387420111637662679760610356094908421850915671688910300773670678981917819503959659397563283253856669583434679300873071942886911512447022459821931250284670976709387340236443324052749078750384948827796805834016527564264208961366775485846890069408259808841063374479070742384660974936716137233904923203067044619537970700288253331020050949506559046972016816157389307322328432041067974869333975655809191149603965657202647486491940816554820511601170867518116338509054402893958085399509956172430615248993975260350040618326130486070664988702621358665306026309682563253977696007722219058048817667065385936391414996485783852098726434382521493611062623671421925145564460066645361645352376930467377141020421241485360627434465073608935610963139761020763971843565473132643358304759711186313372154954191793418082696704468305966714475515620343385073157591037116409337130600434513430879672430508792362422078933062973608108953946039322106204440363188869450661716566007544355437786771237242946071661019880092103757027744904505351997000476833437763782450174361054776598546249360180419549856634923679317935444482991997347340242580322497593106803455087168155403028561937297183482916012861762901944986111440428867639021995409941740156860085380674911203212803860184040186038760975041436667417514663133800758110474753399685595246441259202422079134717571207264139058534529071941434051859762734867288783829076565063809620036511434273467847397765274168350659548316476619215152684518756096042661502152001306884756538177919473984928034948264738188512033181742791740520089644112601889120596398428269742439066085976286576308732192267213225801707186653323705900283852337814159791463216241646462803695024665769351327857452374229389411581093283713690452831270268072030306117850578377786866571154205458018143257880146312783411869436849822046884998321590546782949198834904742253263442805347341455837733677742057748273368376311748614198237241233483721057783507775327671329513788350687948051814225869506186211565962153494219425386823332133044147364561322396520166704504599043553436857770821346045033258167035914300474605308431753096845463106614190825192252727814688385763916890391768837678226948140870992209608646013382023686162174532557736129928031365377070910098030739884293945339991042733190282903612914623075981623794172787609699609926146197838877419751713340451689317202166920447687411481140767450607033975353412528040568084093632392590943530371708216744559363155086254107165577575210366036667858450966872057524905188366952595047710124127867292743440000853148739069700489518239208390574010414180180759440391503401305679981419180940594683316402000978289010614647797260694886431446246732716441297726297078689282552301005644272079766816709779323801398583128946059340710282134394679526343604915708563314671443900815794742759287518220389070840984773422650091755062185654183723012201433012620836646322214529615726261977631925526436902153938450951435226243194499789048489720322080065531729595313767079102903089891387069523050567197580818783781826072585124780325809273440798732376475145828923037483789154388627244431802864186361249710846055473591309743519715990896864439299392824689449612866530790729250261910951305568411150267405717539946975277011214383604526355964447215256918730701419841038937207243715715642841054384730830888618531826051525293435023038920088904559678881244246742660849019085350227644401868027654776028941166267831343200092449041106151185133291818707837440101386792318595030115220881535079250401207784286802276001915329500189866196945809480916062395090259180878442546687815111591840027667576701672492120794568995025266941008230436799229708788338903511962236160694729247858414543788078202633384737230376701962721917950738267562658352695666320529438861421193702205037357616989154110577754118092399926214496342791969319342884873058899031966946732213216650743584882528775397626248283783691407635624755813075127709527328761796635638094485911669530590931743574453740903983005529586455018971989676635760486617740207755045534594386873798288294965690523415167476018891214890919874279519050727040855593519957417196550585417618943004970668551278960947643520312755218910413856879391987651232229276141709832623717572110433232829205805057825170359405310458970904217144743323890300101055607051448758768215724578958804053505861878836587451081185602692270476907408847888190605564088407524145235410975612075328555008937359391065318060725871808928862975530285497677982844043269213657241876077073779273131233134936115352150182471957574685930502417807241829163337448779599963718506618661034058922313214492288270087492299049558361449229696123888900186412389487761130944316470792724791393416629976973226615801564646011921223648907698168294673711322031097071421777173802357796003478091522883284359268372108405915747328807609653732329664126533520647951526914238405617195823584640138758500476808640386150189182758431360939509126903286934822687174005113760660671503046346371130466610685592048522431259916268724105578962182045772534551917099736205434657567546331948851224273683795163252943114684471257746529450489137007833273085496786395387643209073886714441099313749606024152586514779251921712016741003555349684844662597457881744558783596962412190307861784067441849442377039848891606866683199616315887799705809421269975694284293698840728223442058995409760886994907254202874926014535530688423575697271604402754162799931802677190749350001524261442585785627058930393622018280267480736908691866091949999225361456943453388903155667633562211310284059038982497310309083288333259814138487230467902139920270389478575021536679744398007547492771777989256037418623368382027344415498108468482979848344850194644019355985342874751142718217722909186105524907983642990129121088608850087794719076189842731064080311112178655953169774990558049701214419684655597628704058395128925883584406801501840258912304323185515850825406506169227953980281397045540998965596801966614555887201856369436542258765772189047548699346788898403493031571996318087925009076661848768960656658242467875345982272735767704860017495803892495379960333573096973366824884318611210822676437730736684882793334588966007421722460077189659697869496669067181378972727521140894182662953112679483291981723782614971591301119397154214382848042126466721332664528087733248065756080695362088087838433151295767742820536154823041180189777509952330126815738319585650287939047759408611357168561068055643481579116118174475371985323609370809804048991048338109214335552464178478874363675222848123790906541680095691408946383689747202726700952218459440915490773648628608820508000642345862055918123206076941301731378401113810286675802740206825158280541486344087647014645318377713242440487233850556038888495164473008162870836250002549848403685618877779557969202546456193161516654766804244182590652956269060211151906936611032520231377611367144840422332181412606617495802361627571138233911972344034275762215306763643199695271387837078843217029346372723900198815217406086310287059258251938468857020440096549723874903120098518525481680778941577166242359019609715395692291788659517835217610627202600657225028077645239747552607019221945335254827721537245219867787592612461011524789167449007095921133590649796235657711397200015255703618197953672665457017659201705503499382608063595529001174063828893348611706207748198743783220921897962741510871204291216261403975996746314647482207392140837078056730666512044308796483444416053973085868055765459830023524040186243156512731068862103683444597348283317077510503266515260251274088922135523919327833985842974329336136021449995898519546027474445674954461260426594897775917533564432595857989604079959105225135959663743663102363191717689662156336919093860578073068713221201416168208700626282897618090201797482775753661465354501263749539959262059007565371437133006498997936389678889266521633929167219358356203113869370475405294181807496698211558296175976206346710044414949846754938174498681561374943160200465749768439771174937892148555765497394977875958582938522588306092553509297566912964581637056144253325363337566259405932724726427671787527756910220773696533370371663909679483723255809082241889231840954551826609174134709066272096644221619734541902124801761588903987287974450488605284559570787272992125352060179515721972426522468695586120838899402649429342066049076315315248756339858684155520959049973077856972533730429292313019853577782574055457799080129669580534544157784111571549341966810301680020441447081478675842740967489324122056502202246054199477520995629094475511046241779117887102228542810964092082466330325096287778075016718874106367498049057232424331015687299665246374967725384575687629013732030157398654424938408081781795214780529746929645894074121720290388955422605719781969625214346908178940802353782855588613311700272813713498671741148028427331882155747171965334794597929071299813560088118829790683891563204136058512260892827458236437057181925320419413947570651839804991960413656691100388883301389890626350056867960783433727437743723688568259099522993349864307712136740720091639984530213168794805815297927830550465253372124716587488252889363018683677727909087969006178263028255888371563348678422230665442056117548201299125401912030618964598736895489384784936801678393780535731402776356057194932747231420030867986191520542318159643190652578262270545933760023736828320176566089272274068919057491763791636531738839141023658786085635837284588203207174935121553542725822361550255546358539546090137407833227087497917618165418618186817622752864987855454995361816181389576368003915889143972883493364668817802651190054426147693063990818632898478428756286024697529163460300705214522333709980217477426537193355996402530056196659086805368389317570546419576547016697042619671658399302795523598776951633018515568482045362088446536225647926471612870142818956957320058506131672554898555853928226802928082860680125476686506196558214964864915904281641896295534721321728959847952114963422521373102068491979669837153813630109814643643011840930272975454250183761151952056549686784790760214619674181808572306216576048640600609004369972611676821571200928791981365238645247565193709072733182206082065397680509745627898887225286368357705161082877643962257588430413596661023245296072315832916329575209069437366486092307190829641502304406547506507765915349937683015892686035393108525116026049118556811214843895445805449571865912763323284785361385010163639011332394379586519192237614406864023842085393344338096213482931221237366458803374290898120425350143486064456579564420371180563751997673805806012861072331739790364002505314080048535248189463202769580776571535059952807048415931920131297703603689401716689109333523351937737026931236684103059284340215903008652955699072904372296453789646319533949610701024941115553702860175041876301560423810707584883674573164131979023995756185521170703944300440828266666127254247032985528088030576092519649771408464887891116481178500410932899724631768781259460317906732006088179953373316394187607259449772683578241106618806837926985971321012760952497070245506148629470515489902432747739519873013941149294345367358774291688823764129664745190957638307069811363267914496229302167723443065652651419651305917434686618185396433440813123005956250351445997070001021472008414874992916702970264128282433960849613585685589195594158184829406310842219364819763136117860253242927814255313159233234502560534464271159414314519536707240588826820241780726602750508538171350150242452217566200120812337181539054009991094579178506273552380262003705065201318602212587783975442404329098730913699109650618704941519939535103469877673621239544764282118649101982370541961780655009068996250500154369287573155699898429236065216623109448409339546799454193521167853276865307648240256364088149262235222891660665447781981374738637312142770008278266337372764977572612830182184802793367603648378155121729584797303930780317625036834843373807060614164056694095495264393954309074353919825629073793037005805165814406169466191795929089281356306425292287154952087647306189172967665164357992889081948824258876503560505265547473292306975666027396005239996911170555263592272242564546731224279435536816488513773242054311718814917219326782215500964068184376792507835503760558814753755527172927382956979181908114464568641210067943142513534761230604495811947886635424634861355092023646612371617389655154399210261883039574737961862686768560660723688603595475952357675280707469443399958542494693614311386869943905199294114420306040613298785013803710096599028201205485889776074703313340276842081985455819789138474246207697460356311825102098784113304415843954498634797594821347437212692101025587044182912231901367940812732552951547690673897192728334071268639867085280928166796985844311771740992007161311346331472438768785277950720866577256453825518084670562563957139966205207613084601222704932098681910905519624078174000779249268107719027912388559471486895145286384605368183248644597266100723885315084261349669044763450078063374871723590598867042711272765939640746443170511091555728717795619870740446934042838559367739392965812320519757527292153029436325757213271668422641962860343711797340290549205848202437139539699653704404879433312463953243204800538412520136325776029116755503987207740183749542006448904092802368218123414404576927126088683488418145419615335680870671856600979310900216251748684054329313232971041929837203995376957212387774019521164444244725927505293237713211120124178778173953792894072048912170163760936730463840281958035727263826419803350330669374145501960214108370564444277683630907396245730280213988036976709524196251048719922462762214918780733229117477347804701062300124425496272089627928547799194683407277055193292894427427132303197821643418649854185385108642409583274409847964459285099819723309045514801671629027995362377048256090900373222959164198268854524042344730789075039605704160871232744974275346381580850626342453701792098788423719713166379650565299789432100458958868297903067690439862524410179590355882107405895802831113473174746248610635647939396494730002771148590536458703268193839263821489764032337130502670791489956034016925598455162172569113858481081775003392266788677840462941837793366086231710593177997043377942996150986369104402930688784524093929145929865668246725185624094557163500365070737763030025818953677074291612743703351491576666230474834159717731300815440926463139753411985262889796448483273987870727721723847513341131009878166196105194546695948698618171217544557556556002625652351608873288756034851388547922220346280929719283401330877763136546415257276231553872451783018547186619692298173626483997889873947016333165174968071577054370816994868836391815987574272808128880340661279226003209009554926086809308847716233926136356136296036123075722078807952765294084298735672779756086579756068571213209089122361948568190618791114380049908425144119151733450981434786194918114172903828156441751076563983769416366504488899317160125249277445044686236311821523615035341376911110093969179967788279889435600873395291761828893765334032082469553725820937833198565471750398390932991081653367937618360109938514156571182865336027857428859885684722731071179671595098644684999756377722619840459878684098593837940623328466431006533913400572526738696533703220366369667089004820771160282684110238498875356647164099864276724976893178815580919895605055437647917395399305140785658220424323268634216547277074402329371587654499690726511238204258172538180464828578778260949313235188402773760648219202722309257959744762000196257842655301496825632373459090163546464447981407748303080447421697777294958584323002747679957812777809051270702064717968673174327409344277005762552840912201792153453376872845413748535836137514421552337549696124836161207900414815124359526265936588279246212761834710040535571268217885059099322076112955625260016403937357406547541943882933642948897608162729214460081339001378405562403534902250257749150591483145658624871132641685184530853244483659101841886449189177814142984449896111093327486991563323782668114958233325237650759592543131822540626972197607101070145913242881716425436364362131950204248919726807525278219899876624076388352446726102165725938417163280038781171012944162665577652513296452122821653924648442779489718449662716811232495156083059166761320458359973014693433230375320756434550204299473785654470725473530890862126377503698255913486165257187495963506960087951493717398885970162852771205357439640049431571403939823265769794221993167447570241209993201888488031730683609630616407331978507102337583633898519825145776470298304984647399317185963201470811986485117667345801335211821744738811870222435883601019594305038377643855641152373376859462327434240985750322343196911744219701158130293225772859839432413075287433075050062866705652202264046072524728959050577662940844350763840657748871464728919809529523369015263380562551370912577054010969116574888360909858786513987622635280064672961490824056288084016636176158958685868580385822205528884172059436248745878123064209585085825160196233767978183656272614641060469175442908884005862178896151791966923021613800940453460815965437102347007056713108698048151390989525724909330663661757344294102258291682147082662084304655819341728075165885356588630707390868663587380643245093104350233465745960679221720024142127678353266967108363836244414268070263319992205971967554429036968731415862814599337823722724691872512696164634032390398520287141144112567079004879909150136769467536213023093629820235618900279742118647723131038549785242277003406637355389211603300495002521808909175013078137577070304538065830907710335033080156094993932400979230325852366387075937637453111054034687178769410933587681179971350248059380994885369719259383524196552251642433721148253158603770111975514468271923924379726983104720608483007977869750715288414656843054177385085647610798367006947668626249645354622640861092539438676022835486183218510396851395089136475419713126548114272235357208744503793976046226159689524253810963682434291359615949252765490428480389889535288841598939030022252047886804489473466978822014134445055570674827118658978000463996380686002456292673009624289256293317881374181197002515535793073288711376514829047890637259321582737137712111491353222961768864844555370639642801789199292283749237636631240912060694797153039493135696785375925193103394570338497005798445116860936438157138612417437025597163506242995368762777466567088708945539458502298543892183644222331730662814396205102870964962241327202314709325278813940779064318950364784016731535424813019621091574443923294509203795553349233378255053855978320635922999388540929350555235339489215338594022109897917581979588027501460521927802833364554633001114610483270992115283541373950865917712255981225627346659341435991946890197657536814944878036467758428310757978318819741204367922821093415058660917518423101380258207123006999426359407889873277261987917497101823562019014224121256272161877247966243432463121199365113386750784892370367080626770622234710805097125071390222336541249991048042708379851263141591553066162188811192392532496212218606827141193275006995151459664713290714500436856977043616978765922423771682331406873904659906857193500292510708735235132434832227088204549052939760372958892279193886663768054889033850962488064297997342890215215821797018085861719093833720982587990741360381189905268417547480727406634699531006450855337166223302634322821352976101229012849321250444142940217754564399168624029621901019103760013846346952678745615368375156128382806769133799639904988182467188140027055480700762485215227933510072762056817937373575903007998955330049210989179454957289994884870903625857078609618826742420779755960970622532720872827131005933735944016551907887253066580879044319165782385244117843255633301659346196924377692701710360609963975229556362156611026555105910132479302459522410389691293953173925328351336660712281939864736355434219129033452799597333939660936303206661110565526861471686043796663281816224422729373345505397848600255816096528246234318532122368260647282668758249484809579489136062405859621639820856773821265670899343817897561481529865480186257801781618156051663797310425482246106323181627031112073430670226197380979213113734617235260439078785609842788699456580344871352079562342843576744046992623148257464690229436456053919680610620501122926522055594860008284454227093890057484810267927383390174504495907988278789673225911883592686776631348990299046899024034491250113109885504870402633864230905901997432747083954936964933158387069767386145454222167221368559699985656759523058156164455782345177251281467610597813177958132414702864383657401553825543352591434070603655105784640173773910503502174670571166202738691898314864374927165010951856162238815297579456675213083764055576921150561343272598291228417582794444325844016540275161011298340965778720822672210374035620049785632661730057463123381461728485119680789700113621377362303640416245331554311930325631605939907383889266713678896667980465347468610999684392793412330212278714872760494419987043120368694233496831051727176766943030216037746588160278268309669576954271270395119701032138807754017732329463458488023310790800947338166912276622348909435020713928156844656560586851277027272305465713767845777363671949121739743151981849999431444492000025113619622341052740729807395579176527060965798787187312791668926341396496442500390891830643739352530035167113098813112164324421602137837575578572485555256931473000652621770075364242914346699381709978941806852911762875995631079692922973927325482706590626115744194934946289581307667124670697732431482549042170061825013337510904215576236587647106639436811258792176502854393501892706355700735860179607654269073397084968850064685218769076175862500031650140928403571271145113375609123897069782732195592996902823695815321408968726964534951203817396740601486806700150267108621329100768660257767191492119972372440942933179909839694796055867338466649945655354129934122180945172828855672653907608507412831941267812899548464804373673175463660545551269130642196809560063893319278326781490532022228646158066653616038247981967927212330323590304782250917823589129194890833632637379422985587504049392778809584541685126301032435066192848494942076580233274295398628610497364883224345877641229278911397473502433009833215834254255423423568146230001049858455161865131800740150897714087311905515806660112704862223589193535957427945146247584771229553541120094077776660011745398029794777199671883485364087375652289325571691461959235846134281106465093054577058101649652454639003407383296945995031527149820253789415774491366151895724471258452325313058966576808763262352070436753782885788886649994915841753640464523545558226232347384263329900169340106307334930863663929238825194280903088407987246579779741154676350595610530024939519987750489941597846884177144743956893483236483267066919946745889328643722101332072046778630247133058448493957397728192594493504684676013764210278217183701756060916986468073785658813456414646018257365525133015428918965122531083513973180179488761231874990372689529845518916860854784997406238990865941918344164977187325559023974296407074897709486766930431061504098805816924772038493879563352422211406081092231883270988466383001458194386822632084493015919601018955754813650951716245894044627607362334164141076216710978732324636701640966197294560026380117771033492953000175758604884990615838314835095677313122977734255139712078142355174325839624035867175590037534071272822117457589496169329774631138861506072370963124673879821219246618860156585490208467678541265738582823864644248411725180538766308445653085834260309252343911320044708396835510379987855654851099629563958045544382342836179618616008985583369225500372509164030047678176857890337910805588854690730971010517805881735470477729303233297812296856683890327299200234652900113895772666235285837645065130350649207448425643309787017054859335323233195828300663385676544348479304507238317694662954420034549755898008974721678396662858418430629883945305835408533277543113112980977990093213237284166606983449868710936498135533242530081327655677996274786083349145075359910988810570635360218535143903300965940938943845579647761450282686504647161001190387492284553708610198683867331276135761599607251484185119585350237338519731560362514360249221953385213954082422478916915708846645757627860779615015909763425258703632762826546173740092216776897109564046510888955694224583263528335337895080606248637070727753029329591647034305959539840193424385922991720487956321281666669269655968130706423311661485791105095056158711432209252282242071674103509561019217596540235295546801577360368847550877050416693070485080549359219766699205825193803626828674027074400602650578618172445353762729612902166305081467683602442288370865310227852234274418007021228340762458600578540557496980854020830735866509885575427897360329652195552670844844288950331562077714981730049229328604531259401468202180148350263929112092945292248010998186836445643993950224045193955793397381238402239466537584371878945130508045644827834263442622884506447275429085832069676669782432512303917373726295127849802385872791745208561971021625259112932841702958893811422690345741590717345810283134455446458992092691130763406364540149423598168882879094114780790984823482774520444908577170980957877855579290503918454400548007438194215257223501189517046237501671540454352000083820391413205317069718109449166636702065534336554425588803698105686245712145955107534278059453537261919447127440515518715668895564076883068256762955184106301735630319550113643348680375142765822948100019549629437578015475054574266385048735443348872291970288584382758381528426222262153998966577258613680035154238092950918891749228608593544367418370052514841381171950633833843096900489755644690300415038239856135366297889782942593650862117267658972829573469781054861726582102595257149594772159818244808619152969621410756840015004554708819154100868838091410766165794027318977886661433859191855270749295175991839842416784661189207640073444178051573309365767253731634203494951699317622867640326760951512242054605376161127574872776400559928415334869896222464415381446799714970355070556106698163461737480468752420321862737573780699386455704940182173702415130509135000074679702133119189719826627187399499978200649137621972517849657998191336749196915930602686981724552434292511129731919965314319974810937810647385925012467859805108282187670598180709693898470501914706339176680549732987876159996845524708926024799234164726434917558285330863086310491244764478412817257258606624000282604765803487917703138730395951797345497621925275659411091381592340696159301199242786998142856580404295954413756194715786393736622925971111104162342688226440424762857672971482155233926894657107562588875119569511208730916195896741252061022935590075123470443187924537880583958494831570110385595844355369717858725560823167060623589006998594117971936504104403514228292470239702942065715015139927273291998170499813020371539935089493161093174503700133217369372193048275003758305558559031999981529270305053788479133765646965044349483734471336726097304257394009684508224424482013404604775599426224887668440583102325521618604433279975322266803893016010926730151771382743541578417552624216150852537488873694206613468306826189394627648256109776588957988051858918141770576469089835063008867195669843118632428331399293596138883876491005798929717811291554359895911073324057176313639085210943680978286329377410792034289552777063651027515379304427108898150378913483101405478258227019469776940209149576642572798453537144284638684956557361783643978083202265176803370799250074980054764553124611061465119435485612033253489656727983598201560978386201409486068525216972955583798630867968862852448565701923840946715301356315747857911879940651550865522216644595393887622215043171862925952508440126398680054553904110495854203961780704249628962991218823150546668967654255651656454038380302931884272655022054370913723397914220539970410901049703936268669301059845504074885900490082072158019011958570167295370442606353120380779100904287160556937630614884911270998373094702005993462006109965019940610670210075317023752883722138166171296478120433562647790351756817845268889327357831605318612166537207514004362098925477676970980966828397174652150201757740414094071817911545684467148412011228664506046837669377034463023832506219820276315033050604158379743655196782825452046095710974748899773983625371198509382255657730120784070816495373958906169640728181913861424269843988214972959442244347849073082718836150796390879260761953980834370353269483862036491218066814349619182868744081187420810626205826186787917719079684046550646343477201782794439250994530142959242745603021677430292028535891063649811289165680477989915705952600215009011338125434434752421343321945786420098925658816865377076630224904825594902555836196833810862975433015311339995942119038124056817327592838185544333008550026931265222393028224787454122520778802302826600171609324911244114255532636075160107077761183449650839118631072434766761567864050677459461610689982074480202146156045968572067449289203712095336220729687229361444293183381441503465122205809891446165735593754776926783276168974208140588260570252147752207572271092228201642731871414627880794924570336950556260323121084495304228994717518344463612281774355745067442244318347845784953154328796345697502180939487570686973406014987563571398576841975413327092983475965193081368784265899364954849697655364685409532429738860450043742368924757588789261335542233327623729113223534064918899420679654398781746502027127228814185216737467529216215806394413516525875789749204214783227579134814985135246248732737501626618565621605341469170529626625716861546793295996042652588533892946593258800676070582037889205067048565409894358586802613769444960334552485924993582532693768101184449596964420727185811209425714468893361818808585610912252697638714318544899768573759682909127648737564773303557351531533738031935918782726376653249282422030499995050716011425507640018330518206841388878502154597848243490724916897888833459543457005196210619929125599244830864530813223179561211142830610349654652444645207921461324200616693682458107008446153883612909702936069110322161660900326011406729781124731017198064423836251105863153147699646883658646349780897164467859224898782972043707058845749318457003820190859158843997064500587942210564869654018747916005973993007191914840497847519191987206272931111116147779258270975248998333058599646678472679748215733191127725918098433664658714015663120268310457068027946946792573939001315199678866592945240610831416014976594446530866955279833929479948653732700595483272613849358866697495527742488721948210310388788114600929820626249390380407268197582638957772316559840961127799372283362265232529212094889842434035658603837886957735868027182557886164578940147053162914626782627341930042786884632363298574619922434485917122285461902706650756963304287414271582179152906284815683464840157267959675597068610773954418577228330100537898429469243605568628972349201970133414113504770211347180046882239689815486526357400263202787337216556470949037065319739344311019342517494708678624164648752049250487007650181739483144515116046064730761020098796032349403275925316243551758087989408106746951535304110560764091817375787856459412171392283074535257378632628340668489306386779285781329210225721943387742868932595913938558363914923536984964135269904404929664634468814704159328923575396764853302950381490978310821654584798010467193523503058976023308090992937225381696120190883711393252147551141764166653803175189093440989863322083415963485268025977213808955744971868647208904288774028666179850458730153757198634589748395196623144614454225281439065374655999696614656512276063274352396289805181490518487532627897143817945501115286586389373398604462632688730588319334998295893294177773282577243922242167863246468847782225242665445531965777513724192345738918718679525713980091254632686809991955045638738593575932780367799025710670061633815225973698622599298177110392990264016458449000467875605427578490501547697585046685722952815679274292542062969362461169096104746329464962048128902602144055590231686660852787308996493369068616573842649269489042426438217018408452996818478075196020577450638201786451687440389054934002088846896994560202622292534507998671888592538798897803250653883837877224206559674689355449888388388526672004424882755871116255134939990480367812450322688306176073326849327333412398724579281723980031505257327352022744647235886056794075895903462866256008422412908338084864646224016668696390968813095365489740747060404566212536171786298454619448443289426138784197035703578095451370651098647179990907401110678840988548404909632926035194665555554648383510472638559172110009737694463656858547507540804588570514206619424333325286879209433993929994182741426797876841764852614157095749107402661385954206065033956776314314909243437795900415172422587332167687069164322767549464762998789157450418794576874679820470913544126777742528996052545691796399119143511216108526011458618377037419972565703746714127000875278151331617809199138456485509487272712846580276764570366788993714948355991755181571824565930299820446511458573846145851898610075531561147660317275603425170717316499962658931573158911064671463070907204691768111044228855057835534227513262955095951825132295469247414972568998064374705050695158848644457717148396676019773865312195509639858256720699304580165195872503699949033141733792932382956342466643909808401908347635806545020922475020644770237387088307291072672722764068385291866341310838710714238483303927591256633611524819194871086771431722089041353086362520046353159421559214191938167383481408620507464985657448617956157303246169279083959204061221919839130994566726142631127719628044957139342944990034531641689044998045813840620045698757738967543320100219637571548093741676709136690871185023104564852548725655688888270593699651484448138541125481869405756454151602438695482729022924553730108955636998676178235736903376161094229250025676121418933204731736879592239042150185394087171899921848794757317285383521433911242944536974213689378478481058768110189211635734761799575515588766191089802511378938772242070838201313964352831200796718742202231925400712454451660560176055705850361876481369642907778069464617146688996117740182269535218018971595832834629737642657520514591435324272539871224214029305516825130388147970993973054008351732988682567628792062768517464986872998004117429613061391897926624000424521523670140289409089124392784655692200744745648489301814595452828885783691701422862033773662441613525668482769388847307499518388149055637676998467681296804594798248946607056881361166672670339821355147051936365059729815830202697216736154005108142344665863541238617915023625805053162801004311070922381283353380225092532890981712302438260535026410020957882880087744325098398757138179121810726110918698670316156775266214901361507984451521607523158385618966038096659888504351065354835353765733232153267720800174914806306260494653233632112972205683060937905411873645515235795776009537883976959334986562836573929803629432004714035288757255287103400427449194547615984000470675445054237640848437098469135666022400053638756054617549490406166172901998518321800641707612502197954428555716700473762311622757011567012855111049937095304326048354460974297398398807229601802033088555770657653130812852361509129398892298599628903186391253388642248062463762804399863213195483088628705165378653741769165623088423952267012706701248680213117490529178477469218751182198655719222676242650539345093806989344122842072244913247683339053418140986964052206757840155145715062112222638659986659790482104363034466313453599511661650649902388077011193859305605135536458098612477213933023405468352696652226613972580116680379694885963328354480671073969781968099804065758379052082031881983370519909511260730178918258881118587399514735818807744449539807204898870204895014223568291534264938926434061103685604162227723754828746148760020051863788757393749098691707061940098979349425406461081963182463547879061265599841578852611256348194900618809946173455521679927475129017206404385164403505009654040352584173987925308465470377380569937818522467350207352260239595715908035710271762817891611532988167596211543605332500477706892447526389539441063607441265604521913293729587235204853062636066929561189746577445704178421111043185055748877182779539940859274395973215039964818226133603075439739397292547387914242376792749563350541105516198001154173472526413172735524195197342596489320314091909971590611400829065572845385936514509714208244205186242389757598571598683114141346449879616358193546034150390441477371487694415372346011021270415890706084760359828856021874431173724995294392515922030865936834366422712896467093371734381427678158250570387880889745786378073606169689401015517065846048997407961100512113619015972568184975608269293673438538118326033941555652898231300491999644815753613556588703304782972424316616447109765238230484025535565088561003388608259396336741140101754235259979072738474219448729788031201649949456610478221849780094701357269212965008344697016518861497361525537388214605501366583990669397458500165389861955528017153700443921028932920325758548649380421120604109260726138101283565212524675916712403076365298835714449231971001815047181858434605438451145440700165123179231560110841661675485317497106223344438130329598023301510060704743939526425415742756846868159715025339503519774713362455349456963157856514615967587953020457993441611643184415488681845345309189774700244092797950205371558368246684328658855205099223019128787075477350537818286646582109818618299543611074026370215791844322270476365864846593285267222563863295655316022505710440268531518918426919603776064409573443462550536440291182117175153955967387747353519990279373412849804246581427415910298919296298150795436968299312143497901309689745019409558909049480286816931264827727234563173874078017474383224869006425973016007297203642046390904466701625166572316173679921136495965370859795307812108341017934252534862406801602587507825688389727914344982804836118494162445546163223614879390307136696869541538557327483147460638251557294388492869063539584338194037336482051552069208823773957001283330331073809557318163437176883461291522929155927214964086610577199698055505907568625051814235183390821030881169169094710172848607682525818624452266101803186246866961038028991469943807053448844450273549842204006946288616089306259238253829452540858710931483644598318279910160774724069866647375661377571131077988080186502305372280906795525293907239459014204714733493328116662067906862660533382460412793226875025394181627981570698804256371829090147716396406511273929822380737097553051062228914755279395990968870814602926730294454474175668071543364251251580394888101812106857385323022453031421655259878672469112828100068293330138535703934391525392420936443854605889824291719098776034285573692119034903075893340212312314698166181879315624333465489242969304833165677318524825390289853826126543582228510045474723786664387700534957720728172628844415440392245136287339988539540997018221601959753598719459901645150309170376756181357140544649688840801580694900963799348910934309511092982977064146917552547229334402996724738112965851721298076503792253465397932501022400872436987653773723051649247536988571090124038249419662419454433247437586765760894115664861857053648378837486158762898830509706285806623253859251006037556107123120188541192768428941546769610584265805062595716186762912470363329062000224015780077196101667091295569307662773029271266655883751562318285119796623177452988596397719462907272059121849177398223877242955150151572962299640985650237773545257458456106722633788570362334442956827514416273460169978758080657752812799032437759196924829320045505953706678811077490303667602179492383618277665273371015787769315340351269508201966852363074155765771503198120415424849012548298945280910210194956868007189678591345635278740286496124094140466627994579423886390691732185678660001117376859365458993799141313432910428418685540235100491189056015109679690261272543509739761703939251153778270462353029249794250736818649612025027491378892664345820715248529067776758873827491957523133128074689070039394843421793558145796423518562408912606971317378624159469207676706624036103415688843544593717039333427401615113909287073825706051172925825621564747562437506734351627562578267482422365711513798314959442990617684790576530345787854838345025804163715131982431105802202416837689083386706098995205163180925104879251312953497057588082930899381413650367547840812286549103720586084011238297865066064325194430782598800290186805403914541363413852393588915084950674294081694363178119473313412570484626799797438692937347619009529696546243766429309980235302394746292087828608349811007860259454024539461121374011462880774201914021070477871184693890933004613262999276640029136759593769972098829231735962518477451872078620944731598586369137322752201210939519414433104209922796211697847759228276959295352623332684585434731015754916514752055861879272031196167741597967222846402743472075971169617749593806542059714248525768406719805604187861043007328165455362482284779497870631845524167833016636462363044359918057576858451825715219309907446676975659273071172174851842876648609919199142221161264822391143828701665221653211913787174961087955625163425988422471204982596752921189759684416139463369727882633647690177899265042705816773489662879188259063300440824922480585430027083532202190472248428300300059391849071167730050821421147435034266459981759790497135230636075370847300499058499484928752438662266038457158621600003258706931553020068575395098682744356439514031632127019544551069025458306721151188332327503952550220337820397856645951586911841036532178741924078871942249134739955573087601643300696777059815461804125221475505699288115597482513011769715437758515698666478853173143887068678870449807493708494246174922751738954425543752018483085204427103370262259456084617644774574710818023787175627608344486999129355760646695627097771668911421613572856379747966225133742589792692049956799640860187086652587555521548186396913522129027316548647112980874965207669440444463568742650390107739661924490517594105205409598363555879363103285728998877448085070395701770629893147084473442920748045391536136855673928555896621956557896272268340809903607178211047034301737332295383285126289422882061206828466842682828100521755367166813761589480159640848766191945846091362461221706846262772788453031656379112025431865609541639015212363801858445398148410572917101742364198009916110801339317401842246738046979314074782157318334873222215387999493645330022598581408298414503836017222360932022115164151617651273405869023341740937792335034199744244387763855503694912280017937785225807162227985428908588405201822343881425977357305364959929187871109614222732664924265868926112068006398148583295265476157891429062066316005308700625657211027119765768595883791016835657122478769718306541640316068738451020009005911514467758605116230328467946715174952751550156173223045095660977774720187444950766037381518548174335777896074286644484719344989437206110858304623776845469907508862942525776917494009198616113119657410083030500801547096602339764194249996053629995729874943543683218242928829230839283658778287449906606854008920853067511757404414497382177126064365158329870866096683401220553662712820225768248745087551813530708438709248975591058856552361794912274962937142228416319575457815741903030667586885587454927927451995347568329622871513627120637989592616336112731320726928770922631271165023853616044116581115166262886437629835784662485633046325101266328861110995709918839137280207499131477569792646579359399938294111652928101537588357775225809395555117347996862955346429473714131547045627985389494303689790058999950015691997402867949571757958583682868443728086312661704481890412801456132563876788090427082907175539045916515917713510293606915210246959251174140729630342899602542446648719530639887369277300450310628089026712488591771245100442337073829329591572687858713883819254389598735679481568053860275841049481757673121834967242204608758319902492860404078892591969654714824204775351183546983958399228416128152190340726006550402996506628054050590265882314605871010209906065142158359349841311394638052042916173098934943680617626797165047807964695963426531445103603420470381100746383034721038841952844326837883601311873076307690229974477976924777693103796155546922753286071194265044948456513076170002278737049551352858947897966782780838717691870933760643092135052353355009646959734793826364337979997688022530441156205143589104039630577123143346483743980160055356329940348695360201456361174640021031938869021173623297849970363727056430911090788472146724039258725178852308219749592176563663607027165420707646707266353802923343735643552217290934696774346260133156427287348877743637670849556182142679594720727876175051614890638712061322188718171719654799252494950895512873032436115946841034671612919482700109504884118447989333760888574830124945896835150501426251960936707792759363584412742904306464703586619629009334209115085044050070727306569851081038111968498209068005643275476896503554911621621341972789418303057793086632699730519050843468402173702297850043267751226105415263807142845448970783639405480548665275829802185795063852226753738369220707265092179207020674010414550695900909404784593097752723040957568982059615038664038486459941444219771866231700435961426679819153402691708512334623699843533485848664455952016266155421999515186180366740923068346392296278708607798091265358162837907851840295111378455582984279197509626892730905399578490865063984440523346607365557488616701641313370125090054699691740906033352937730023886340586030421452363016059044517526325027514071037218797679115331738535620768647994601081130205158617207240289545717577648165333309436939958627078058095424678214791245960500990837805064137911942734921888375920637654759103615401449121153938667685824556302727615956380424884948626412864018063750040303075604922503873176393468193321928376595874616659242191079943205768827145797343544916579028930891150248758170727899378074953739775025391484930086115409081247022750310262796255943532304806867815895141585162300671967888877989986054537146582454085679829630504646536763359652202544136128264921235968776764915634802252169904353939909508784625963129127981444288773892205455277449822424874421602317433787254434914121134420911384855339020343124720983917435189174760461292078303161915575607794895119230154753359231849176590687318847299088860472389947841024667210627392390089408256460212279986505136928601843887678982724980388301029559757890416253301235208919046498510433000731362537911287697552972325450381109628003203913561464107773893943605734641811244880035516497905928734695853396797743128040332957543019791437520830760666979541897303389353848277360496735048230902027128357209436138130941946899854319250836313166731673836539032615792815500384493500930901276393185808369699359887765743241322420486597126282687990755344035695688505354065619074004694055285234408070749029564194553684812224076473305710233415429178049885772092919069490699275117479223425600404098994514957938218901862671839480451006766006831583993802816476274512114999748382753687750955163101018238879988642296938854926248263227131078591819273486511019131544054498654178496839577230998758499057983552418522968280260037962618954967619141796674475142601357197952229318722417433726541585243622892750950588502451028168107833312495303560012702170269764972071482842932103724375866085739118341187668983493649215393307177085890536875508158536309184485870963289170859812662459637252312166991655149191743024204053902464136286832102481017022616366847135704013824479418164730993023656899506752197074697042976336054987146996304056560964895763184064732947312115783064120660756974607410067034427870366658539648949604746518966721229064454013283136329502054758099434474173499038458399012882393716083825770853267395303833546664447137922924649910522545791825917779490759856035645232393926010323699172608333094123433349695934464607030001720082189234192233536477475367907986317538782263905028819548948420024087538668426404506671363616390103991086770783420185780173755687450316066319008816492476782098683578989914961489261998731407772482420134085281135748847186523859759783704060755320981362258071232680697806971917289877038332513652887902681718067739948999807893452386390408983985440705777466114085809428186011488515773648577036579262901117301298256896439246297542555142657483404297522297234842790477171479356166271596366737550007757136705267029345568589881759769125399314193515750433172620269533388385627505559737354424893722801654831668633062685524625185050967179631166346152200319731815683930388571774138370666504498380679984852185096339922975859945955962930221325840745697086331757475049620552522734972010427722360865463127873776051637271366131403315371943522337753371456519046618870749444895354056887666297025962068579276632565017841597324150827904126196919642735399475727065936058072764548740074688473885051384918848330710087400216130097926929884253141501723746351460824975908739306394850603860826032625613758951188796591086414437973545095200924424491592906958095029473911767872123533699995569881141909305755924906150222319943960412667554719891667744552283224087183292654596219470295772431818832953615677580932277014669785721364410500410017245632022755285430248838531928020899787197019521676216901319708357879237923875506181918423091890684732971383077386073362905403046892242933429419404878607254035496282232770692098587193743488170616048152250785778140980282031207318738260595970746280026745290231635321454394286769140493230732016395703446909071343055749932434390707088285445040651898721008590243096245170626285778136281331291950274659741212962322225133201094017133953530105431996056665120721672298102942693059559213256704444657347728091301671160711095456167149029174501959407161130849967867473543325097745490598180794514711646849355904854092136934359140268340293778306669306416270146428675165511788533828857803269745213094565808362032290895094025084112564943617748093046548232378687018868604599711214235535173450662985783319785913842007503721649208646947788495647139432921050359960551961917323380943604074882150789096979523191641089392255083767462191754193623998949633129248668123554582370178313938020111795863968407609230278623303987136314018279360488382203512958970390176355223456638516277667620260843023266620769613043201885459640189078408404559620298020508157717622655553332670125782637656657321282529827140171748463941530241344236828512527975758132883712425140239039323194842824634854257633372036107599996524212636126121888615739794394231629325476962139850803218481820262166132033732579754247478060704326870356595271837890178567239700162058147537880907572822763061682004672326216037104075004927480284671698284786170037853852107434010487262750474566588870282983487718151778502690714076088334803100042541645722989507331154878007648182233780282504822718071920547243162534202938098516025123124991007497805706249206166378028349190938394512521860078058846330079065403225963980856185593064166741499103450764287981180854375307268661751027762574397843530968506864753126626326233700429528093876643084033492780000149439933525911717905346506056657574596566425467066678392312549790931850543851067040777764426663909585797700890029748812813152529795421746067927033680167938018260315979643759185926994424263355226824269097259121434545831637723923519851780692846227028735747317300555302468726144086228207472889796026954082628775548798669994600485396217243910494104905541979804316832258165229616522246602005202120256514015249190809823757547574686183606768587690832239634387063304419805217285759041155413537849224956332617206196889488826441419442143570425063390314094951950693367212136358984060653625091221919196203866786188882409108422229389315217567172950669853591715513099101596600787371132866521434292543114829659798714954350966954342337584326380772374463347153781529456924361252272954802183520851125140922423891056725409020147598816717831428173816252479220610795677251584494231029901736552319064031694116227023412954845056274278362053633086917160180122037285775297306290745748487700344403334385447789782490999310330875054308747444917468588184346881386575142287871416056258581970641112091715820775664922586972346554330006381550217420023286101198371610342170777174687268199142192907142254295069582213128813399128775779702513406519878847009856252115942915797181910027242263264973106812412353307262100762560699945218546367752256876598449534497347514890261736969806963554765864980919123665342843399788046970623435533266824082264907228923912172775661215065356640090772620890009376617812880766579909413746879708303093609067993340509108892181105048694472053944921749793521227341210905287024472949474750270630798594388524951402566777430625736237743445058602655067945351916341720516895708131400290281077277122958637767480214196692415552803502245474621250749781564409294078407178324754311153557334465173188966996027532550731261798595460019040358180930036750915124810931119590456475126804141183578899879338762026451248093213643397664078994323948821815267208815896712066488997690830612600145533045094036665376773514185969936844095848181710025214374064586634450436268129274680798837656788191795752023855396361599263204833137230152151216190897202252300555250013832400205130370980547722767404376554932583405053872476464331948166881377642160143682920403619339828811307134232526949565207436111360333406598632014370534125439987134871419490584901128783247264902571501323374944018981931263805771296779805021345153870943394866854126244997798729724142744789967413793327530837753041302974108043170162227019793396146276621971802671069194236278184459116276014842317384365753795077146928020305870694671107683411610842476982856876840533775180020392143184223332657656740358463212771547379177423888383342279737193133051518313492864138045521551190650187617040269340233344536011065530596922375928329199814931357196219172561839441891546119480628808693747966730594648101163730793045078292939429266082146270481896344256697709491755025215548177345642185643090685981128371893193940152915203572374894045544646349967678698457019268209309658222933875598818903802548292904498881649647275448179651402618290021438512892888045098949576613832427830719040819211884634071215726258472800302273436024312090966364854852360115116690992598265044778454072001780333549716599905171783713580670511528994270996514445612714443462211450726851330648526694947233872295273548228807022758064347225771683266734704181630963716017590469345962599417571293754407732971578420687856643534688729446082480217678494226165505781957967263810217454128977023635375010572747089351308583377716258857966157836366936858362789933880650553580595022910804408028990800996376761571339382757921813885223209907510092632144000616655449563636643859600379812712398814713621897878839780469589215755204725403514898586033377199805150391712929216783737622551533025975770449395242790708512759774313817284360862899099808546759724299135626341816345015417743367288112868239514536228075527939496480247205629209796279681499261942079652493884019763646113789221902327312107756507536232047669819114040689453106388864128776846828643849846578650158611773033066856892172539341135120359354696086934048739528760949590237917677250646859612938077561666907048503917786103482351604918988474832161905776092797787008230622277299238226643221278111971068667327616843134158324855059186745673145490652364836655224342847344268261817675070742328166930101704277688862755571675078536914960467191811335391792385222666628920116654614040967954461499821461851043481003183534481698867544368323617956810152635592263140237790552021978018081423588773504922504991708290360627906841810136344226449244165796038004397067862681830153170770893847702983125797420605567273227849386254794562273831856322601330172868696636873287513733087802412500599585916901828629474054609797730909939578204647528540661391114333399362121229489630177472881961050350031793974692056252556388005811895907607830311705589855500196908147884476879633873741906361170165948827084724922170512835659702651016492341484697022065149772729070066087154059596386755170479489129164413203087043760695281078702960265146253299808532547141385185465340423272949348284425774857423364096144297432545915532874203083943334246668667823745754524561320028959053622999982570847429337729974726726350862735247899173709201472596868261565422377339250234019219053998028422929715624122363348840496898986144925947800164705088474271566482826911691986441406189072326388633828341948605922114879195260321122929403670511265340777358070973299635979904452366456582549857110906485980200319158909409846770220586367241271313207007944518525037171929907793537485809442151706130332077665495305920570104903855978285441852720437963089254608345240786448579594101134407630424690071259848554023882328223184107480701128915955085826788600714812169302989043309055016483989730705239632972230711574344898577475891590424141810202868496315851937239239720579187904103004854373173479270128440084281555755042068919352656904858168992685524652882639676433516857203357403310187412913705664269078291906430580498027652022178741115915373411851621772072166144716055468412961727659477278086091737652759570332321577837437316539092603181869706331290448822504525987671147935066499274207589678939796654795409929528656730229327351029454962165584074887314200277623715203406418103962746080955933770075357614058720534699872315091478653088721873823100129993354982581941235531672984785799789564975721283226162085862089525386720851411520096643460423176249453736656643256880287949686785258157728933865895938247801174623510243560185160952455978234552966158378938023037639278991301046775341341544956113152221659164187660986158137233944815464251513246693307415039592605594398044823691228469962156851069599129111107502601188554796363830188467228010657001678888078642369082432111690310746498730787232868544045323789576539732747824941906458282480297323594335558978223725523352950563877505016745871042459446904170573100592192325332514961606993492410300905783303702632199957840690860595801285364114342718529207888421372457551609721343745140785979462567376324083797301469474814315550606155591292871567059031364189940086822267010027951941103004901289229075595004072385397268117793254408284748156985657523446772968936181118508285965660577859168192098942721084404032719161289896086834092444571782141694608022620806237186981547134452738934894405124728983986277133711267884706542725872566662102961304031765105695174813353158182095960291174118241002192287222081203836914474469379115526160904357196552529811061509079198815808714154564464556197221568088042859337419413669445815834853684385794993266448842264831084648202728088569486596278879507929405367556716881288131707751521863395213721393852047015150557761629757233372341876955236445451438708649678952417002798986866386778744007098946963991289440764994661236454334551604749683749897178822780065698246069156740443488774657610291685231948996395519452728733138853034322469246276419018812968483155809859054899184601615641241252352671094871819261031071427217610164669271424185798072170721197376995448599330120787626138694565139920775224448731404041023199320308974779215070157325160437279614133693738552715140163120657241313782170298151356526121494867491561413879271768844229878297807939541931359300039249546427541582049486358598421353360020667288045665866647730242115070293388822795868792994813790451881363210584615389774538315661622066142045715925540669891250548175983829075400927762249086389696845357479593772937081795389523838405101143156114169982874773377919258896839067476784425117398127476090676346408407980179528834868644553871755876847017016840411184994581615305624057885789296172329804767266171688355168926432620170116398947050852440962929697561343259597095099491798252377144919609185070830829063741798693633084316385988318026532327672260202025758902065820121828496863667171387751197612029466555797452463524318149540408908142910699254313229122984321947214947042527480218737618762457832085827828301614761970425939370239739513581681742308278336919174302715779712437874630977452209395110521779321599113480741355426891619879976648621373601281157070494281746615676245387058472472452306455727470789686464799557476522226939158793456957366194257828142905622379399965499457802540834861757940578890966056273770977333573809098113412974913316674533189424575046261359664188673250641728327470592885515067325205553516423659490983575517378553343323720957729436001955491772525475315182143277438036383703032679178762869002464176041240446180746595923903399417960825757457920788998445638179186831914206411560143048921545015630348783638864696532470740145310652941879649986620135978568622397711340187094566254514197984512498701360174578184269246239466383390196548417137636532243527896112742489757636067371613499376754698878612708404270583946484649485728552567082221704814156387355192725966130932485708263030402399647625858813118767620661558812362938896573294260322407949584581671478034737323484943713688938344702666148791768831608657658195500450751733095360296893634908718942739508080886280110198342557241146661295675176254433686116566064223390858266482674778790285882601137101944503302928567227844429661614310591001819846244178228196368831828515819373932763380908423426762614313423483671332954884972071334223096630672667061440327304746993610055310151604435142742312932057776282170289883785043272580179925759969196198639094012343934961454441765786153271184977922482076820177434701257518188868309109693428906423396470852953844216533586024448824209642167006628906205730126059297679967487939480151540285697582727790865862066968958997969049570408394789810154722676559229034890867261157455112524350937019154002287524972590173850237635893271733956788706194355182835795672527814451423905302112652281901368097728105243274071097202353240536612544355481649108827234302496993549643749534335283279992823362891963549331197251498911460645315443707301417840654359185971138063241231550185244564523530513259594549680696503278108068626780493469367010724919287856292097706368936994673130854445600734677658984694777421267939928308177858539158740609646054976315498390566862352438555319597292117151249208146089031107028826192471067852843414925570941898954414237091935257369237757058799582674688624197707695352132107288999824657992170112199532320431250558136710731975938500777502113561582628065789474740856376673243502335251556753272521327355979703880900218412529326602596341337466877687714205900064241845693192208170575522555974558049381227298826302355037526161929576202986860904317828866595140032325322171929489409845734708772303679537901294250229873298589784702823899037995146698622974654932553282978680552273182802342496016781624031190471016729311421829662251947539142502127345321059654337011397268932476296315232096435837350132892827406097649161210502090401580827243644588726599776615043863069377605884550175968275508610834063091869681029952438210358854081678795914177367306187565836059045889020150387375600606521597508426292331225496872316335036763137657232621873534493355452952806270142586417129613633933567244870342474251159477201696169619013835720156565916509223438673530448625494243775979648375291961881180615966547635475125895442305422917677612005574643119908792618739809872724340673288078055800591865306719186037615982465738786206619322732082944645926053678788321392653242696331506972872376901405871039700899039901042814904506293155731765097661642397285627473940517881387459124664501228021452385206155715158027855203964911403779386187688370541051101148047602178342015487843035587323855629688243235913791988656568085846118561795748210021958440567022301578454677543312441930727508009751369548043842350249027187381872005727567135938612359004986429185932249076634699194118410886018160045874539996691033167714273077096895409255770848175955377650208849972968682158094473605050242948815567615440048616165025447452811823816827306996397295663700795438694981731675620574800256905691007138124041197721644925960711883563008805175428463325090895491950865543349006678694815431128257192986630781300883541802352216256060865229151117861818682534279260228791973056931385876642866308376235353095843149354265124249164514953565483052559831660211508980855956666765336221982688600102709430974466956965959029349495622121636778946156843058591544863604448057594134390762823768071954378369126487225531379735709050190199164991856696221517244849011031248310731126718652144165150435796862634164934580637260718622219569450115320862471620226950550235016526822115618385227237599560224649868891739459777317657026562904383982649355980072578766318583022169216752170374484344235614519859543563597861212236741534260623112643688695497227473677335706845446591863502570649975160455839879087991520863112653363876106683159549739056878931391196871335644006384948037385536644086578325496344565922723249735306309928070391092090658655538670890221656053402151752425772404131162336127764811749605458422083246622836215590001048427868022436554361711745309859438872703652317992585020883778683847141800888796070206717112447763153901116567803605477954788903549142435260441112201020429412218642988004453554695710868899269007090125515025674578559580431398850376210916852876511105316733249458588087498423064177102427589171496053667997140090171483277532440375261476892325761474365263819082838751132481683310079899813599404960301580698635401249292128059355689109767014578130958379063927678013961443084683173352518290334875844683264381897409590799427955507733593667183136016853999210408914131632560854749286698137899740981246130413403034124388130261665016049742292235047535989538251543153888041430794382007322905274575382755684287921987800331170298558075112017553611472358175048525214004175038413075781787602770838249213371069019096993242991192601305728567037926037203039146010994949874233266938495521369117698247165755553123434558477182363463746461216177063897659414999508349546398882923099732978554951290386817354621202555291459427109543220573655030737361854174522754228572942045155043517958453260227895285671042528956978915751314601598454463014989789602283636037111596826337804790058237871967014009306030138145984527870062305149063671366908679809391029503903657567612476966501018097684602402456768438932179848418169372051502671003415138641561102708781096952966951534307405684813717860233107323514205088356971206349101748452039091227881512302070479956187677996179345567149030732368830680381780159597192994212269712116932067451933241041850577156123681864366640228230459993562212882102796951464032662764799624042350866457601131915024835563075439588814417008407224781325579105486495766434963807667165735406019043287650837288412076361322044108260944777876719350514458998532102169736950251121739867264143171018830472237110252511600784567361433914535673446090401229447459107435911803191173180745511121721708618967807673734956794507199049061486977053410926295952249353041679442320537949976733440818264888947552613646737842266047083878141022026925131382892624520908706059907595517591419032554359611205715803969001614551338815935097779996673104027873557155954342534154084333999147540669875459743673594349880105365741157031404021986574289231075492511520889893717881608423387223641491212336033091096448939715938577984719923838535494757979907540043641539025243784317158320240129879660859309512196823225250339694281094158465968042624653285124171278407368133151509984448384402637781553385784147241500345258019671020302933938341082153509710496671391322965965890406188019016016156497449504195755416528401670802357686033580937265215579106294364241775989605264241139915465202635789467317102290640670309877578257185017978551051683245088001687243042160368545084031459051272279560983932361031629489042604632981977463092624360457161188799683537731405167547580556454106945494885312242840436844877955239082671899325711393950009472888830393935763414209658444908849619884566587986886849639050757479830141427623450446523501647869626996056920966909902135474566655490491165756931168600965638655652199869136124315741516460666854872377380148504614851997604366328305968863658122602503333110856107075434988692218850747619714196462326003762307045391030035682001799327645292525637904386009191983853784670839961019431217875734676633761817920096157463121111437541704348482456137799980865918660110778343801082318388975654435799269575545498637701779958989584861085235605155275347832356159652916440322612387127895504257204263254053893666247205780466709224445939807340914578916204154349755225139206858861708565327140433083660466574552468423582628842158302671832611336248621840773020703136536600194821364638096011892357938856058349541589959033758892412654280635916180826972193022591895635727429232641441910280851425730666469455284840399876056174867248758493973285132931083443697502204118398278798391721637409108548919789378957910078886500771196419499286292830200611641646505811228992365891445141326852126604302615327434041177764661355303068449833246798792665942727885700987581990392900619616144970947560817527749650885862025041652760774001598501511810728768091486876879871387888659941263460207950830560705855728231650528012860432263747170930863611353412668083868129933570395920322111598531820888973936259314921936182109763012090408189188055497152311927053159865053863193377140376671217393282229954275419693278909128609311345597174439669942999922934210054044192939241636722125731285008896351440653057726792406388448103733401512968688302335137774240741932420435471399736985380628429222072819086177894926577040616392035732409424999580665345963209538398503118662579129920463717798636520721342657307141903873700848557682962871123317131401884779528460754603915899053242792650056880289441238003849378198645550177334327677924508112968558963132581608985658870050039616110206534518331316827785464573714025216721932368943856768056617912858326899852572876709171260472915551385266801372604915399591636245594528409904300670677405885478484087205402671218448598747724771391985134050685950718458996909743841741294588037322864943041680428201438549012959688652915840888012993461527060824625879497297576783907861692948586169695785113297169128838644925856083391350555231153119489632909598575107805635837626568007762905421459967447678447510782595076268639282763331796520410163513985435735642501390915631324337600545924949277154029314834075759083331173121563891371007517099023864284121704729708387250059637596690544390637687627974350076818720867428178981829444104843309537512847242694973681876593596133485949607872449460458658350274653024532205374662678838480459980908138451609337846304904791614628965591964981500786215243152361666320680881189809697557611529045655775753605062398870000719991655164180318630763009839745854163250368662176656268863863888601024626418453861311962639290332218271456579416427552672244823329080397659119805997484405015088829371075617769011288659350527917477764011436402697730520421480593747705347659560708660062403289032369297540484593567838198381664255854989208462591294592177391913043485348648403237736464082110197463510741753330645358328393623492880167731110614085287786935013176011678246244384075407228965214037233973028584418953847335204190843009618357650652272981927749229559918717839978897634167531191184677050106126986458535520573957885588631823345437151511729872141971083250087881748247472780247368256540863196481726822590898808379368672900806845366164880303780560658149177783815009811020712548288037044278848240379739976341514445347342324866692911903857166465058123592469351818984312134592321137589331090526820665474959345258406850054931189872797610116540229559906405168923544287316223474184248914579616145090599151780702166855755129633833129166397249984627687758700481518767164510165721430893376141809655940225357381496739691027414506226176968117204906354831823718952923825358984001012923257993752673015446362225399821095647070914604000223047580680842931921963292944603650858340158839558444550044835495882785873302010339772876540086239473411519905220918970969780598528740861779860877009695872159483854664961730787776177656095373836656048198405247042371142294146124472448384798548379723755153446566122331839143908705222655761486247266448704342761747497925709491010713858182739678401919617686944980891875883874197780303150351303675794402342929086703723520749677578243216550152554358641919360517468043521719915543358683841334329109326343033468846575664085302419909918616856572846256436621054437697806471324472556521987260394565179667265416476134795936387393561568028985008234407926304881908288510938594669266997501940956022003486892843983273597778371790443452847789574940252056091897922843097782693603730653938637254398566737317409395537601337429052022887333833339230362874503634729556945078864567990715083401291557229008259338326856831072787070765866383606924934173247510032798501801002149579666990531387139813283877409268740556166583148795778232516383250790523257065451007107316376364781957698880787683913130233390869439273096308830556927393917758145668982426197601075408817146617511242065466898446772675311871838634573170394105058702947435712604938144013884863889980929076411912764788728908356641187517375858232032049042608904556800226419319126536514483882487326023090137072230599734174404149522968931623542952772535700555791410835153910735472538797641883021138823082875187804947541483472181342653193419201155302585191971286683772523078996961375788156393249453133330812200411848322306655229052389892425699426029719557898569593760949663512094046868770503556374949474643274638872069382115646149307681485353073475803959595841216576984291974204593535499270427659221785986266829526826988805131452982232758557377655395502871433853037047024496086543145990453994240123948013980562923866260073525012743849375162476676907540913038924025029100016092951235925453515957771957807818948630158132876093312239393383778408383441833040696001765145782520165199224389119455068143509148370428477437106673185463599325845873752372860908221279516372917499382383881915165417091326037485469692950125519260917149974847473581636444351367880211138031022102008055732982243730775250802228163251867816486061941327817424476596997129358123458603315706113826742221291565996279843628978892079487568855563130239176572374524677654051312062478744216320010569061397154672306718398470352654222701173153464108993995206266460667631690266597292277443246938474997280712106908365190655230679719383054583983015741784179685720383954408370707614836120259055184555839868932010335600659492657369185167748849212745693203115637587969081249305536807600903659560898500379925536675845763772840019427700910390198118359551814061332733880926084389613933447692860621127319591399705103133616430160434702683089170807627225658590820168057906749350223833137606237596820788162670177576659117697484540587651333895725613998519348514622927737908344340968780548795260634964075450327862637206262528157302205832195081497041100169824129932875107308984443169139060544596052442177499250295464867033694186853614390652758593225557281753929361488446327610526459769923679645014306506379033779065997089544093297569324394162383050238928086864362439811885681527778557128880252819921443390564571363995372610089692627165259291759947341853491894683042715068718827034897687302035176377905919408972169294400786390991459781254850972154365578673625012080028904866127449092151880309657072006602838414239341227720099439900416525767663484921169950931073566571174913008231719650547870753747440446125814705093498107163273633006263807214156280607107157318170845790072558371608007430810082207669310610482795893835856710627196749038697430250846686900593890058513708344033596110559755730757842775305098349493733637300464246409529581008435842455357845805037556915558564025391195545436768308891731123900167191722349418696227954426343267291558801628459901808533668788800207031446098009684408449836206982622143158598395998260461660395465699936392848237073553700818324041512098397851593519107324068929466003725833203243707263821188681229706335084484768704733337356171106555703375493646885445115947484977713904497755126190460335495643976658014945753424769899953261120512264631001777645009274654851296848195943398148710313636020131128665031147305064216487277723559335764257394953181295699828841341172913615459290135858943950058659417471531699590925926649049782444221861299426666496414278332779065679186430909964001352941539383709372993995449470841332648334140958988431264458116845956969315206381810871026403869071465065722382752736417044633226716863769421251988494783959689670829014815140422163275648048145805168917822239609651587105717310644075769328169801851218777284997512683925994290559222826299164684864652617764039916268653666465718238043422324259693892974018146417796495447486375247065531428615283766303202556473323021548821023751479198395215196359813533167192374623570623942351303174353453669684236059582413407583891993474793435662939027467119822356908659854767079896496033588627286912128783836460511420439340286382499649036533435760654137867885077217939040271536052767411723177820814914416893134092044786291617132787895505727885044885320244090796579591203205919694152427581158602317481016148428895690077875589045264937800936958251877103551555480351210935259984035393430222413208830711247545115928594334419103723323790152809788298391189379945371907680493279160460588056527644822946723352952008042272534738978174170395704651391424165104019891024497029078986650192643037862066288413897802295118147963799295924834292036086776327279931282369758304527080553374380435125755062603315699108425517616475201782502454807013424157910381507778603058017431297990370154593916257639711145093344040671087640317461609795345621645890726944268976707268533281672758583527069086345156851436647978007682145507100648136059118203445505602187710092010404790038871927371576573229554967257624543488158702707218076664416370059731773456814056367265814565426888097103392974592294552705606641225897933189260959893509902803124296292088995266277182413469420307660897239843830917948918287272253863611647426135531894709169127742633228953815558087157763117920430270296043209148988151525868743878608045301440750633686674937352855393680283327572820313327162457768561927408223617026638312204533855812036132254536957093105443778678253643087064965215300437153081797918041563753186267186802296961790329190841165984823978135564249144095306729095391439079793989145219141893710243589913230777969380134178668886194063055286158319729089286092676504419666924053731645438763526933443645436432224128103803948969642895907341219838516972786865006278462667338900750280771509120643757541603349008694225960493010193483286036111093105636863587915770453833667783445862469965947716318829679773063426703251641537328190624610196724153570037863340646178735840601814175233223418412706392917420587734083811359784816483011915639375505100338053355243272523766457804635657340744063284235219453520905862659758270791349301012842234063583787524617285679466593318625213588479021032300483064454116241319112964330413114101995316502157060471542989300398356546201247802888457224441754331691733983124339917707996398538476381693233402233706049832812805834074192726741368078236277144356397456094086845347875118738999787206754363618904281759331775510874553779974716408772326447308604126274728271945131838607592660861604911095873069973437174193463659396783132664432102299471192255771014141088521101674622977684048539131890469055085968973453890111081827481219824462007634037548141364443281669973867371589352143154732408178592886687513576858883190322820475140094985003406268759134758444254868597938636543781031659297063960438561435141412686953361547083750160243071008339003402498748001700443735068182437251272920144369531158967486556570979796875572268992839748249512584481305873478678196723120972479390331230105444688437486224898973249044244074461872750770147955189930939759310577915908053022049990170165543943956554524927173777042659885501409932028620507527760934164882057505061200836787323533214661904807512012610957174701912624764928332663609599874785790796461050399710912854954508599511547409593414617646858707436132436564555375798375953401088513724242975792723925682202441841326673441270992011688744614857125887193429335406934744719176256384258337643042595947656593067898757162509304836195780834015926524420845747397303653787518073702292673846782357409485768648793853056452105351210504474063340130944279096519925936087187389423147958399673134985719664222371184421370391210482943012613869947133376506948843234947382512621861290850845721938519286669319757482261388283044236414772471828604689321337710387685212922388880753092310543693000478797347086672287689055396956767437966047755937479687098646989435690510865691678915606954504425976769839418642486337450235439773981410722208316336291056266967709164103667749991278422579891021946705430589590591110412117402733684988388695041696597762106569903470546349889261049453365939073757916697850342045587855107773012067206084208834064208666845521330827387463889770498164530765893165754103926337931210695292532352689231751517245469556598425709479742386575388351088997458426737105589075094298429607558592259425811353082451670089354854850437408783896138625142932336308560700646554117830107770392310430653997759528042625766516057840173073497416658782136286962605396832623646866754074959753344648146671798230297302212328565533813732297592640281846717938755242954520758352369127906182619525350270532427066465070076121085393439218461944082094025257248002867317650229530179789331737743361485131403477241243428801761325546316041818468462810015033367541164191950659702571129519460207068125145643187379113319571368929307362595504083506014829879016408714899499494154459433723970768017138403338809181810273950045236042419337985240745487943578570485135399318927170180740962064946280319453999765423326872572733668191762419005399435381197001054434350017970337623687157136597124203795278257617708033771073983717959555273135379489553897838743883669571715502385544484103726797824233836797726091592809299458325056615570471577382447648127634920507636238111905678578914165686468934348331704120448819377314153307071506462503999645749889859072979377458961777722795890390007344466102592103328367516970484973567086664942930113409954376496469526996138303463967920670471680123707102025918023222202425155374736558070786256482091987096209893153475251256169214112454697362221932131486802487631181407712828843793012590195342038911711856174788569888126884595121514258246266868079084726872448824113502221054713095419145542033867028077568901467371261143390243448461422349146048564772021896808652396650575167117482516605559318039799231488032601119220342606237595689730226764321016060565071196970303287525791974046203357302063137055600347452499033190879695208966222870563594208822375586215522004002740549466651237000683488656785410749118631559321808729795636352867899809060623193664064457837350913420962894751770924404930848590850762357863636288102948381369984209229105591045943414773130530328726599904185470301761459968838339191315858809306402104351147923304361130336944678841378723928742682907192785379886574647185114341911822982270623562813982498151717351120967902128650573395954514789416343471583597636655830289194705221482679585212867727156653041152342087701196310135442667724045043938360808416565597895626733562960675351517538088657998437208126672965154075872723103753531451911986558970775045849919566881590672595693552501285671418919423583988461645873415619197694170432137779719349648919344230595729593511484980982553513647610324628315397588817866131483032766400462496184912895523652389887642078806454858875456897506644969086350885886460408378076251925558999735490013204810750646919596886670621316398246872729272132752158839817739991388100552756419236216818453128646403621062837956168487740229629319880572461456326604951191315370090538510055268721164270073166706302844450565346285990684317868730324218460580599350296964286243830375542081068520602092811038640018071459061970221150699221820309142098119604007282604600667136616415451552498152344170402810111038181759706665209713511143209654925024740216585456197421601352908074427238580918900700109583872670188063091514051468147396206403376804214278178806418755145505664507962741363814680104708448924968914125221114582559082925774105767820090706007318631610198773138066166768387399221530831972727794823267565098668699332742003906550709680452989391782754834572041994244046316838629519114637268206457681223297329567570048800526053879729965467545921797334777912505238183066907912430518427737350578243328723371375187647157206902130164982379796579549059631397921588284658206588917405956710805325031194873530988591767080792939379643065562242514069641839372442255592296404607307805691697639680939968144190250196525570672342998595255850290048146574940522939681365779171013783236941472124595144331730779513865950911824552778473700908366528320032973432312712706217597333141611126968722212850693744063414357876660289698794066603316855109767962224870101095298995661532980631267281057478434242110887450193289391918473014597133877145956079962588438392976277149814452411477082406292899200726129503376033171223784687209332907105906224506858849787927877734509224934044653719186565347761516433183368643887827619618862858110537741296353168808563714504274614450245723992679281265267665389466847497720991693287258720655878764453818219178283751343733074698435630735587913241631100075480729279074904841130688968869097568597599483034506954184940596157188976556370162510917680787390423808164002426895871617284605160874447982091760227877515353279624802606783034632990493214394568447063643111402038458613911387884774569847790119560289257490279233969586681540006520218610961756456136708397766102726641173392703937505788885553350325422053153428802820723233004170325608008162645749206625030877072012745936958030744907344676312027878431608029664001524432264913771768262602660568045636174325441729933584303866433612624472211268547235351199613936553203755534603799408477608931922690241090872800525030736118963661378282868437697781554943270713835862629539022727996993727598479462887336888576870343007194797352884674192961527551342853355777976776763354276293456363842172475888970578486167584229245914904071653128530643073320938685964232334241725696473377282201110954655091774694904210979881882013542726949040127716040897196961218182620030751161150843795812933036204975906332213649586225552779547222062260082900284233129357358426165921608435644495663300092691751363378777788806281060655813572270039314079215603621624458398678346610847903097219241346055688658318160746564010476138134590541949798672402224052084559538263705236021955480203461970121037906289616663084800251678363455873192003441489827460442320308137600803009322971203399711540641277992021114700765123582885801787129238064821958062537166801768234932312819172695369262860486766833984084039044605789918659240769488318848163132837517863248440039957426412731789911306105398274394938975334469278494308534744590836333367490096194707456974065163249319051472892336573829216607209163712902627626278310464750265248775946927214981932249159240069498846554608845925040220657203495278074575712782750961223029693181750669949037421050122058608202150533223143911573658288016801804396436186094655073417338142343621874751846696595386270673715141516147328499975584747798249105278847145127455567407952789017558069906192575950456858151224852867720732525662036856555904989498590689817230056452976982858061543409195658596979144709881117090763398195731845866538751562196129534941325376583869802829030430523843309050322317871366965698838124410309282517553098654184695920253398060253279864320709957826713222615109734530736191614650509477284879035173930728747171435209688774486036402211494170780867571929630022453328177170280892730888781794714976233026024613228257500623184348117987958258237980715215393926107377595747669501961569756992311464618291335557345244052504555196951347262320323408703238564161423617982553389881744417008918409166095838749939033100627887729048513825177935352243140427028525725058485349610578689201375276730320832964316162636308448059456210587204810562553468921285101477045292238690499225338150848114475603312336011907549339584673037646210687103091084415993035048209393547937331637784614798010844355176302588213330076808953047542298212905364315608836053231998226773822409928908381783522559272107721378296816404471846261381318295715236396010906005952687636849904805185404801688729546580911530392471353016088112700531485187107763930147909679534428210733502049634438185170756234367749320556630973488835903651014470419420163944591649523003047572257433833307169611624399671765798400887563105634283529279560725830173975604241050146989114249564517686628611899618555736859130658352559754304942937367341451739658156907411837771960749643542442022682870284681992704262797564284647772203484494833479487938633263259699742328112709143962641579086387175246484041728769514813820304857357599526445905711494671823364072486735031090212472050417615187221927202163016683407069160161124292613292833881488434339275165252173633455104378989282697191245228010764880655534717558409875904943646636406339339178990692523294795175752348639081241237353343390660220678270138808203174918267984146400358580691868801826609461080800951784597910202963716213639933418311749861349352723439010036509193689292800524103727831504088936806900880232905453094538109866713360911911853148666566009875370367310820268225840154447018494376002689544857040407860192980362958319616880090340612073598096215248416295576333811513574894757256159299494226541273767334978963899594722906571509281878319084146350525862731686799643113863294947344601577849371150580458446572166949567137571958796705017212638357936590839642082050164122120284655606330584313053639542539251690257367152376225302571940713019359740525988812320737747386256580905082496584124681080170503902008792551322224655633467962589149155981282873174538172720551430519937832780203012394795703583140139710366775228562552822682500346499426112945098023266572028811098350704154628505173680202511553041134668272791420573236195012917022036219706530039602154856216356108670130373932141219514660771577252142072448526892788265169425854200492290142205068525817426988414382140846914399641099462398381954727699337755551311843745790347385509283884333791345222236357473757674453107513329156089225436084114096761936986120880808909344156494972925036393486491361381052200368288226700018275995941207973113067975441492877809325861451389584948827696919343189697667564701341678364803364376795066937489253221949736408142711191211895213643901294424628975836714324019849364403547650807307545007477067508776434829898181673625700713291977982835379336582336575706415696974338336365563062239543288641032720398031620641621230879362382650833191667470787524630568124201097717575114465897429814725961009349726148720574484874603537346007596819988808742198125161339762738568113412659875779761410226043235935441156558156596903017833804410651365060715069927302151195189281890203128494714503589071528742175759440138567553555768617397211410637918513420394254089508280173497279567164815829651546458797684276256471374249516630051082363840389339459184087602783317657470049791486418924136620309430127846044260985878333081740963499438851148718410493340547806141689191450309551626256659615797961762894370577985241521767525218367507244721748151448209365153975511217006100152465799303544438358135707685148411774805776126078049204381831547589365601690458969733403480201831707039547043340542532517627100464167145877720649707388907730285421387026309014363264509894346277968948894447271179239104704247088249054159059540899471483945905607794457330674885926090624050346992759033372385373734493910075186246102276065258396871602257465352387832107617117618199240996518583956599524820980917341861090597946994266322700556444924682748961716542971704881850832882395178619677561779078730603454701365881176723532699168902688714964539180856330492315848409843896280829392409391197877029001399083578755616819765542358530933543704418420362700953451679200935376220394892292368527193156170270416301105334231334269049227568798346313846595121236665565430467176478975570630426121495155133939335747508357307842355846728313095712586943872012421835415197705194769289582855752138265606794628615600657083729751564929302555581215249000470062920814634799140869582643254562196680319494103326017908576307281856088762268224982813830927745925019207445750267021505440182727167400217012154684195273702909187638087710758797265861987096654339497640098997468603604372231052008474310721854269750605383066823658086577889268297084186651890153334586029953073766063992803742273490879186736578561806964371107851202590681649440297100821780766720094630866828757880516452915596845992063633223899610682750733728807509197667689426318183113831800458552031404841167473102182214197877514136354823060138609094399088038972929906560617930177476791139289842124560277891178626590308141417402878327386701402044322974986399869708480754989454683240035091185333839847987491665521218368932394979088867354174572691849052779178886401750534354058166049595399418753129979384012838373242657727258557848109934447648663882357917859312697486781858490567875523157046464517249390726650106835067137793545534720428130481932704817799420324084071160182393603326051961007621856253493343541649920272152996968105731310725085479042668905891999854948074515481599949903849315759033456550525030132503666459604523017285679503512869613100282615927740014264720098070864745408408384704568966251090053860272140831781645295227490268279708843573412248249699613660312914836863287132966349573615033156363978516346623232852796136986610648897518396147962525100292444779394507855684939860839838273486836527091926848198928679869192707492597482359796205112192383399511166641381015298078887343645272835217329678297355595115071775570970105863651931155076992869181966801666788777430389936917365418075883370416036060136437562577265621533779197488614841128491174499941331720560669510187579468555252794054344838676931985696018376041788107324087821356510377174065926439713294121642678918058068311728248794533118924941494133966110041010785355158164919512142477672180669128850052990923113449240196711921976039780335723574508603875647699636033151827713703936225841513702765493923094015010072934236948483709482559850830587414207374796207175692708222030469964912508992691736426003742005220618025981307515564844562956699451452315901157631883354025821416315644768142560802636325932540677954603935370624788421006696121450175625098140366378076102973680836732234180150141931432961940847143198048999178719230825180763240291771040806190886927699120924899428518777989991688454714804055615831249772965464200689080980080926352427452298767677358596011275395162088451019073974098986128894038002715352751293060040165023748460165758472495681156176013588216105465108771245838762069314328963549643853384491813676278411769060666162019875228303402306844137327127198878418249484848883959114037333959453216170720621845273887211635186921790887231400886659723584738948309174594183699421287070103157256973632181675747433274123759118524151335287450086880736070006663015365491650758148968084051586336413826373500027323430487971927991321839224219355999871921359964039047705678726370590885659196529006012899221473374538028529223672383033713575070529814129405622019831725119371313125701073321007183039948940621805669154227410664311708700050206407101176792133096576450263109547968500205319244035281819902592814882094877967067460667937016589842033385586180026276738193414187015755000411036880480435614850378459853634248612677475665844752924988834208098140720254698416724461055065717276373949286049070590033283742260142734874708407057162063984549131542119116104488248224463256434656941027130875562584499070214528070088849432936157544978560809212267123777221818697285071214039429279362274458827382012469020465617492245399384649578809256064763549775297670171324792972550561600438211827280423762862961687430199381421984089057170405321047189116141453941032781463528206433993086807802688387413277064991045285755761893292727460505091363341004929167207266253331451270147669099741526073705192465267822594200063322776806092787872025301475344470764206925847519285481006779992515167638404947722409202677844034688405361786604132413985232561180441095091925022556275812389988261841586101706742920767222583215101695811987104946987318370663044821515888369783202588443489847843337658883342242319194942916209304556575702477608811626238188566218939206287831615393789891079628539706664965414538975274595806485242303967574928828546798983387876900873666287247296704719726930419081008311524204487846142272370220460456361886041729796187902502134303425023231237031035462931395855239732430934182322494179124861471765547403725037154981235417702249658334670406453225284539729799523764762166303446220188368131811322961201103106684384433097257037809279298541211027354054422504574533016241610873825157836228571714534843102273233592605416977289461948501029780557691228821153200583850521903517857404919902970271248533329170938150997516015529639024922364847064388001208321595974924986630588216544558009480545005195341761957255476505636350551849478312296076767114345030522623291185074199653849640028308694210170535850837534363883115195388692239339568021661161947406953898896737191043956495988345286432239233435059966305094640616466644316907822810916243105208875472882176780555588760110673208865904934064643296327604956751073656930683971020695886525029854123446104202561711447182669493802436055428450183652475909577898173739551636778100815368341249368415822015362103910854232160192368358755635179044974295242536466776381955022811804933351595819196384977098420745990712484007397782391437779713681059800738601086413450808751031289716280163083149758160892629358852132757561671523337008727387742483763975470430628226097532034160977246573701627712704703046669602975936381297709317956643315941646288573041033961193493400316925651187999027491546706443447398160545862920192636222673825899793402263946023238219375117718577173510887512418193988981168494991634493125407500965309223559441121545046033457126563796715158766934189628757155893435157975648758324605331879090201720096378080142595230816477575644107131987598740458435461484947596953359784332381823074169170495017245718388924815193962377401305652287473900059805092812104165331728395584073660185116782593548763889185104522122651319186894183464414703416994738553426721150393792733777842242688198986120083077265884776224214299048428476984978285182299970499345391732515110595305263288203729206197763560923810723343180856443001426560329930066125973732205272688688885191651656840950381317967165195784518924202098781592577838057396808154212473076559929401733873083508812731310759053796593140552829211825495375766774967686661567226450426954011585871309273973542799406562953672991696970371552075856879634452994340418654826738124237279237127322932648698253100713200711006864635050738698882958956829951824684388388723447883001072272475744801744000903920281897595436696125633790138927954030957352221392975389393124136520316156333310613167772831572779295020395693236743738255324889898837936749397707039503270181031484732662756018381268608514485093464595680653216455974859414298717864383079752740760887453569305854833926616358907291003660079071092487555473844026317459948746596335707043716659053039442557367997588374491801567608037733319931283760114645661042661680453148583554730576581674836235448364794741549327936423628411363128721296584794585318072789611871979328734881857058742797110431023508081282605455458644797720560905673566987751192787975176453445295641150852101977967264842374328782088812541292729138381016449483210159471568470100043248806924773090410726310425798912599829749527318803355912236606540769070466352203057327813422409400792042753054647249774039780217355841179944296551263277011681244317215698115932113342302717669581060336412787697934060323820579677230952726098208160567097675322355826585905291469852946205751921367617990406651672925909495785591512967989128382210576345315868774003414490617483029244335825212586122843588290839970419975790496519489353038466616255043304425548161923907760339534577307560107663500099051635021283825025308198898500085153817071660961273775004373456199984373857620968285178902379824239748795515537902050643093613873463665768532569777131144205991028690835838495867193793078005079909123446860403494618746680227443002133446383307930638535954888423080094762002256725957901847686633541657110789115264033091969639917414756199460506769125294196414433455291458836864939750768137422226793593352369700275242851538211554669160664206444112824725986630897282828226712305522923860572487152537884429978426053170896948788105763846279964449629834603599910302494933627577800211945304124302376738683275986244770975566176643883155469295973784157817003716608044583604753125239154033220465787806532732599264048401083423806204434081143301450119890752828476769787209813042476908624754869278459965381699155402754377007566196221204048262186525223780900185915834347760789046686803882448188300158768787507993793396616644871843731424843161131950431252463385682710291916248037434620853662653167222759659758473198730467790461154879946904865611099030627213475370396874189633092153295182218998115202245847041672227878254403437143878423033477759227802396248906784639086061611474123893375198859738660434453553652718095786555392252168533424993601744044056948759290583965107935762803840535234659011570039139945823665774045669075896013936206679256371693180826250251723032599509304381468936794994946393533802671146579292035412713475178419020059876163777632953454016114622036455702265758409249633952740091898043651265948182875121455123887751550963488053129696910778248180639205036785547373474872982157261495273856776004431201528450717005162894286316659751799971388182028039596668426794201891390410526739003546682708980844846697257802241018273262025540106380511404925324845015856874438743929557652777461765266361685182180192826256442914073448764536078426255033882727263817145423710177209304281388857548721875439934706161167384071027665439925861907258791159455886021828946978545322874767774874830989131241330421881630114350387777419485396238168127549015494640399424451657447865403672153607391799747948560146278999023129813478309117958322692099658221465817561948831632201510011452087891317167732757287711572439892128915163097699462131134464860843162972579453952046596013031809461667064100145705891423130984116748118841188326667612450949815047006681015070248359218186071131429214717203355577967792676473355906359776359685024201973884261920139545805502746129529458362567533895023239438251745148764412362373868999261520291661674375884946939545090047875336101669757419072950295956069919171431554927589973845321454030125946604429188212467736862375045007548426493441660853373087693125925694664576271838200335874010103917647215752283011889524781040067027600332761917879504519223569309132787115662653556323165110918864292333750554733715653508168704685214605305846751941018473140136108325217612369048480596069422694034340713023244635285424861948900599125258442800191925373355032854153447463878731916357296696330700230026113551741303807918794453899610752454977088363068386027091871987599515058401157985322100047394410123417050735427620248038360242950848412377584931317150141347942451867722185254428767102813165546515379306491442165705180364438465300959694697852222874942233097886169231895245293130077998456238164361753336434495221043491743483739386073377503833799803749480006485717297240472546206758910473162597504125791424289377275331164027216803629669257553573480678814987891303032480829205026612912309772967468479573408400531912174787037658487689549796269379340226121329746654046459438449782895179431403638877857773891137964466607062935739700478442040173496970426541767808865800636197421158751830111895960350749224505769145560685035967826591869965719244340144513042371180497602253918093490892125615366196150218879212418635793950666110017509251789387410950770567323393225725763319498464649636498649396081052181075055213502541672557612093770620041534525771663442585710779475467656790825022694285146866839045089168484956813751613416921493346663688925516688301941961503977426362570926499570315855348356683997281099935045513128679347728360483138072294295195654857779858702491767456656387731003519956019602128713863477310900029067291340745619834118138428025606063602545553916315238260572918645973290115880449918911665721975207837555119199250515804059185654239254858376481291258117048498754763227438999972765878142151417546313505606398668144188352095574510205293555948171685952463554269476104738910874434766040426505925562177629524115193467039905364410961927118668548833851839467427787098257612293818561632307747242087189651007956437501713923369619863697527912938710249128926859107169987143290169473993901474412336036118879920407312625518980173284559789146055721984237060296642181689242232081147224620300262309725916230148638402186795723666708531517392248235558347652312414096288725099824572105615453807963036487269450039478389393609408834421764009239474252617349611770436667094293885942175036913493291701071189518595843351757128514886069580165037697431066637756200298673984498950070846121512667894930007532671565150040694030953292089552249399872233885051869218473638179741895430614175700888849887871295032128642908723261365914193586997856931849926618280280762878748716469771452559084971843426590360069706377461985803250251341501039399972549993252811181507679822824548878706504989760292830804080783795767420968995080117798000093263432086669431037525791625725302315655791767521133859976235193876135746142149980727959578596124161269533538167093806428792670766381346573712572381171089464844734923059274218941958897830072262387030060074624925238240145304194717633948198394450301175544612212035423765592056632407433367772074661065526554621406944820909396264956605140514130079614211531562836982530457126237534961880344206974491729135526467793135269057780500481193653777703883696122659205850904307989050212611100942721623779316638022306832400043409979547609704874870648887456890244681200273446846131495958053617023485453762336158602091608207226235258130919143680948944781673751444168204708538130580911513515496489747569116859214801656826597069206634731805143014164246591973051220535881915034407626750307256917895801804203422546730721969754466512840056801544439884002247102026312945931104486570552527072976806016461659249559427630019813765630644418315731131263251084403340488477136400048886705118693408144465834565075986996768115836387410487833342429586661925327804874569367365615039921191058047784486007019689996926933281482097939351397117554542630044714420382347194592445539650814972878740856245993120618431353016998567367374963202973040483843121630973903050321155954932819238994309942616123701124726970042542880570249834108106057147934667767517593309916002215941452039860287714181860847024699069815321440588181817721595253831775525112341013255639573057904909948667703375844640604974469826863187145352386145222873692123723567886552673089776632297674573439361170770188827471774823928041721036596031012370265754651931633473152669564664173547350232686460239442411833086043794449404610881001496959115164504223145801328821455061950213149281355859505050076831842616638810836717081758394559001571004341610860528983873297113745102474108565703659145951999607489620197700273598763848349870423456655515013345887442586006667515500014932818293512151289496372880807075607619995690519706984444076074671460576066861101602145083636590457647587815271429011636572440192982152072874833554310280807196548923109566200860593314547605519874316262029169765009982426861847594078174668762552506252331683949825942609984544480918237703476207741193571284002050480313555707667964104394739433334060284145583925931284514737009843062175071393339368624274226015659215878172521456073392995631230895118564595828953778099533005368206573053883055251072155787330541506221241355880234697566723380168916258146928078720614685916241144412972440053086157405852914977482855986926040043757720691201710243133841468026013016104162025888143945440094997362844347974710440970303938571215723084314112533591114269604356952350312390282809709602165338008565006679422767034032682732698396545755681584152413131348686882978157381111828553971115163951325063002782454742061445990200452595443527510885528458858044719603222205012832610035433240442187562844796317426795694072021659105920890754794854760883724769212614045137119187389796341843864843918413699922581503959525234798424991187871354311305509384646781384778946604985049882864604068050384090465414539059297438467681351865298935937280238890739251068683554848416547037761270572565224043555164500060374266893099983612620441631847249899305726751121265821546874577347371399518456186271469020974863126018614470782162767199641284174061389728974883770032049580691756484503891802204908756736280206990523197769724898512880761592377680532356596254241364831465971019953527641470972965582799993211104921359290537928843268201918635241460103587983248973558667305821703268087575282423930560040811173576573536087055771936814133383812982544517020890698741887842513062687155067734925904560914546751501974473618744190072054484041328642308660630160254116783909972911636384914150904081110274891598662418191625725630788310111982224636615931319982784519399993584137389183770309173698681747985117938561843671789534010752802692339735232624226625046931100270240236458782187831764317019003900110049914743501056016591954146445727047197877151699592624091394605186306726508061485663160187516862882504461502404211205540131422565443964033197437932059465196186145716887762470932468610669757386946830207226633341161158113657522352305855378812732073241497226379798355260621879175782625587538041294392675831536598837295158834217753927892155305909193521957980056957517600344340779096314144563629684182893678396479112045839937527815244755448126109547252367846814131766247461073302577354153503773057778876029303483244915080289300551806347759568864385187241233113404519480068395988432322449078936788220343681805192232878757827917534146768834070845519848114576937782966076200166829580520994481780631407136148285338612902081762685509682453776300012747825658604363796451097108696826807072186454096665408245967240190362561283936512847186225562930348294619987934511154477560148198534618410396191548336662888673694281552400496859240269488603876086290059608375948213451083421488035819386181503247687353496614167608175150088611639865820789409947681252332720059721084087731199394087592445164968596070748616394959588793956380070020562105611249329469565489066385244657387466691238449428365175865475149819650423186658621980879779534357983384361054394829061602829960123346067522990056000778765806286587160463135762106853740821867106287012169063375623903675595398019106640200003631225410884160424396906943085241858495059287232522891519120458987870828887550620758436812667714041643815908263752762844716473225589759527797496249046962266342317618670431172989643932240015903205440126454023440973849965046102104228063924118927339986119206706731319832127589319983171942617721951498244806546212083918720624651760811515889709676401986753757327426710581286072906458310507606141227571057336690204407816103527359980801631618220294937828513454166464179100844958385148984235205037070302712090086559366435666554183977546193724915536779219666781176013679068273402046402962485561266858355346575921978335888062785316889050958516999244326312052179043065104947404923037317705809583492249671282966720168048255776855010127737654967112303419009507952737704247508380934651248720715747164394124174214674758308988134107728314718698060104660545191145590904369415563187109476899227838585940698383077815792169356424757329662262068586977442168224574090535894840236552265697974965985878909184753019038839484500704164210579114666891705279555806839464736430007636337462041203852204708665982369888569520711599089111777215905536357803520049826143574781868043310495191659212615183879428875879194240665975130298366042144458205442248722007764358104384839033519349705974715242106560135491521870611437128374322044390886848526924790394970537186897751494643599028033120501543874480728941602116948007133618555810139957525161181565438148037807083824891931735291001538816739934096641879190560812807322664853826959500148597941952772881396332059447292654028872750082914667090017693403487512932803425871493872587513238435153494062114412622478230720743113728944332283679349357379282680388353542226621107910358030152035612052624908212963760541056737363492553281738788467497052818259965621701207575462148736598838333633788556159981573207265419793113024987586022706999342031101487562804163653830950698963969655811664321044170582718430833648165700656306003400787956447472380066566352098323482761173868943226918175576972523309719617643812984146630188233621391652006203800503406969200404582737152099328622449888839717688672930866669960649488021655621650177851276447389272899079067751803327214856801167296047581135892848939861080700170744415756931791314381175922893764953151083449340776512585334045905125217879513018309328648522783121361960813934148063033003594962883094073905941630405273254337470834343501496520818309879743602648236098674839488092388801296923479205990431398329362935974044464303764837267305096564907714945099959791437561241754946713198671468011442347426325836754712544033186537275909433720425849992553661868736669267493951524513017207474169491801747011028233452539728042146004439200742044416071255823309492092368245444701600503160442272291851035174714100016909230367772825425587973184491068989421110354623519425753828461547678641414271742045255579901928488700885719073192893457923241270675968608182989797979940570167172249624038611670407753639541342056854547148423919533557181980715825499229378296383803101660724014992514534389673290275805637469129431022808560643409073750338937265642585470892850372594996678011495982392467109142456103845010445058822612699736990595951135380133994928030109204674390471687813687652569292971821301743624421101433663865644908004243955232956596671042037984774754153733950882580030019300715481501831093958573502638983238229006883889862100579704132312967784094480524107694142634385073121959088776827346797547935530686576141042075895865261324812734219225513406709926548644304131852134668121033899868784236527061003876420711516962412875903788382404148511350246427004199049373648837403335690797271534783772030936496768555970112697008915595934344918483944051043481844499431897822387538364993824871728183304809196842977182160362348151464595181734326559343713906456684645755077904781635620639674200674326204179502101030097869425241622533693197800938327984590246547191732216629435650668674804255850444507723124990911012648680034308986243297501819428569554800813061931894141643817754809579543047856385509850306920739588068489313603205753505651875875723578420926332967064101477001772434367135758187475258863399830212344677271699300938007749263494496125951124343714218469219033264397845605313356857012479616231996216788116520285359852496843065634136153002668728219330541066779582444519672086218814811134613399035433881417529260822154600149057071504887250350883549305441366829234400179111724778942624111794090596581588698912488135292509895929817395762466281906266142938188726660437165226332840745914616220507479155148062906714885111299492226272177541408960404031057533226418087616548833179183433205605390461359013626522180758745840976321872126319677159412789865957760552034039822849563363689755691487697336523149029334608311062477375985505867567078396329973887858647596652992647050754980879739026025408620802658744989126340366703560188089802407940804714837774325742790886898728055841437042870331140501305331829619486283144842831259335803496373346240849181112719731779673628553132598839659220933631583118223007532360541600665475533238858731258265400610431730034914849303875123649870273096449462908358219693454969455103084623827501798677569738248918506121863794321781834088636058478104627810311545293316199015109186674072723167127995228379390948223487013499211739464170662454963793046444707084424070572278833035113577726500228410282855217792206971715813904289756705400038391697234617377338200704830506125480336397864798773592452239489598462262639411113243037875541785537834310022456628481213315366634672990500291351393922905207467551641794814010491513609617869988482977506478326578358535418449190929883278480315390314179736066407108126947575427209591300745530766276023560949359983511428516494526903408431046990407425674927314298493766076071871509761341159223014388852787384830636647810166617404084614175164813776530059076190540475081994413857665129834228125556617551693738865585967467832292178963614302993472426430851163063836412000334749976787987980714275188140359627226052247680323059275055235893957892083677793553682286466337358024392959855346002335609341731939238193924380573683047410530528637637281085833746275113012525828876305531823008958162315090458155314988432999563030389212502450111897051564391147963454825406528289607776940267638793107681597682984095845393010482789865148935663021216436645742127453824684090883970925380450252679104967087496490756212057148036689642570002760980152917693635083086991296152367902826803719189488752137158784890356113479371296452343090710201034494976608017280242222174740760228152803771519537806438411750298606564963117594627570141434925266086119638657499694009366392097873020442267571078642395700113961026229532944237846652788948088951071724158743679069365696280505924148106011207387369464571863814257582944840945059864867988567733572194319830625050457621067517196255169327862968521337428218538226050807238524274774286960299459786942208327407447659923538189391049859550302836935572952956822398647850336288453991354231733209690866727195779595896409161392442412878437316490511034417881363983260478284485397416271991587048010295646820784261474601546979540292817513320880120210633953289881812498106256813248319772562123386795725315920722189302602047271956811726384405600565677255054210049532825629583576991254310444185095205843842443089237891533096330774957177574839449909503240001535541844921713781631773732639160470476868720482231840563287853534569478105389739390609283233423535722733364428471372663619596194879295910421057653348680461560097979912180885599560424245794842998768816623988048521456566227507745313838595492125238193119806214334276278583537756896224579309637929629317044458722672315043229628344916731765847394641837855655386877584896416963220456317641142282292294936346672641025773280006839885976857029302632814741980083143646637567517570950651463283702647334829703471297519899672318052990487163248356559645549577653875578707219633991388756934121712889977847545556586906219342226346489475602192486587339987461262223159566001105500547809131286088236532104114058152786938877166002306864247261294959073226237864216925811894634257973005509181934845454386236970509205649226846403306663124586598547288340690773678427249680304639443078373959353420973532644549592631052341362294553878984593876990421262376353186743023089439417812633442599478960972948093973205097516968554778319541806279420467171217729247820677641592146435629091932472095987721147119167166834002395372176614863129989975359549780314359919102229777518505345025593866907779780559255888592295018271929710758144755473999909663246826374462316126062210660167270427086565561812488329175662382091373998492906274951579222467740447488194044569697806077834490848587492597710809740817639262236953511617100902993195726530152291630774627745465467549579499912680082414242410098326470113085863443089584593160926718540775071459846079100232121413424863860904838535734393081241313543900858091161587511477208314938584303866364182301185015420320992084215333938821900247359532319161286580887916649101826883399434607356490748707652905766267646922113485242475858836538169495858348629417235212751821603565402439520788488057752042213755021492772747199460314623273824552036818324995842948141834239742458551320194692683484712461860173040953604866076652470428855477752734758237380245446349713938110176753174299726640521543566498843910488233015961768150693948917838882599396193412740603099331193644658704833872285000208816425383262225171575675450571399139723338558609568716325764794752156745307158531471103652513448373017104489447534640855762085932279847174020081758184466602613400893523631228572898543043702772160495577873831575984847423647496778781827837610307231902820291762776871096791171983868120629627248402379118253880951159571180162283463766398793084192150165857976372666481596890576047663039817112753911896891430474208424932216741770315030073581090759637093637076141199580707179355427301339003299753250324297102264410811352386062607772576969105228084091937903895795630554715259220762015646395032122384198344663881835211623449996847558128278505678800267838002845578564673621345146975757169530735694498563490270483340672823274617186441406104890497713356348396064520865313339822253037847158528659779251861816378583857001109777880478954232898825151301846643567494579784864761851203216509924696680311761089303519154942178889751912795139377795515789220129682411552444471641569945293311065750015657982214453013398274865257354888169007473855530943637935463757393823091358864670489793272741695911872073307827927752687208825160128657007418011106282636170100530700011747229418345079726728978220347160273166065915107183594805323416584183155851419192937582431378549312975178818472997546157562402914821803105148623862920734568289636738676774688201165372404666615575046936913703633118302168445187842968888733915025631141975249329715117344821990966653353160392076000351735179113132257250330530483194391511268218272457932377814177061829702566440988076270083629182311733343798465283326522298888655592859578931936202643104716076528601807472060073567787534571525190335874511428174474537638353097908109389291982267853335867238111573618939180591307776454030148125864066962768112883812689517836642691839683249723711497742056602290425326337438677819784746431958727753508595179072495510394689500198542084664453713323245884157296304482686510433781619254286673610111974064738537902944005455559412355738420051720259979610341482716510669479967509925925165795594666911704118418938644101206792105836035859825337519647152663768532385519109823303696968370972173401750002296047119197788585451628713188181224649674378498754710505972905326913571480574801830620855527832578320253964821368793839714770275602399276822649417469250653406117620529213021045263774383802461277197063169301955369601617394660485494717277455254263587991206740540664838305496034357923914507605225986701827680339268672082591438362447285129105687371569018670553360679771769342711079103425314443185089466083574625234636029974427841300029997788217426827259019991574914554594161192050023500153791509078085986850065402437260767250692751410190764673992292831632297907069113851740728439477100159238953581558265842051384197279908050324247129475647566281106443803092543881157517336143996480916884159827528500749675033436429269280794085284768461092029355065766774586015769201192650739483033377840394188305318626246638623005626704734952518904540761375945773067916240475883006107460864836222776898828708513711248783422216781003919775478765639544881422257083761972954337270051836406916523775360961327309342559831383593950172454486874237281762711712723128917487915938537507131396609484732709937151948583067044853910539330669991182109107342918171539796829749883637808965869518222586212998448470579513081141548546663156873392166114634067005606876073067077372248191408132131418284241921853218856873821749465521200702644366669838949893139157504982920561175612845180429785635667666670537854327908767304696181973887674778196730569917626377811703758785593196895072096549210501395417646864841766467565963844710891511018331261650236414319342352332661982847118733920576069830182368537855457309235860356120873138907617158995969413913749560891348897567502691760745357701939437962917283133102962101580437736678363089150383915529189170133002235056635246570968003712601439708320741800529544537806488281224089140250089538148723491632776300191760700220308885818604636101217418883236568312589451901724667797989541185414048376247196059801112427485460130729954854608254347746278822682055152850608861815824904482099659708451405465872954630050111209662157757143904479662498027376889808601055236500210856550625882110182594810297081220278483064388593958873798523942710862960851374799654344680418533176456074641569758405347815022932900560463984514816600937987870506503556733276863519029455396921757820517641837127386164515571118221092216132807839531076762591351608518529730000223124721360077861954520304470702551556303930600787045658114641900513309330006343042460607401459621941489587593825243646880249910472093361999114598579436535495524882284526721386702484585101198370922996571985574830944285323294208356639302538074339106138076724365334861602239150794722166169780788175246464225926570070490528805549268244706022046286437274477214237748277390308195876688851406315424681285263760723713496775138760156656783543982581113438919125007062464282784316543374506789518477679150440549001454374413459045714037254359807591457518670342194350723227157765168906913603440753927473451432611007614483987590112704965109131108580717829155679680640872678687413003456564045727058160027461073875091752680848239326239766330645572326548014994819689948569416401000228497964243436033736347972569673211690292590423909837803245955626896986920572369761506397334415485285119603523295547466644974723085636670123038561169225288332941973835023563142483220058704051592605125029242411487577013322205332686659687742424129402425640722543815255482360805506720460589659285124113579728925933365722772364096180449419864552701444337270988467808399728393033720505935056022112884239735138205454710110260802374204940865051366359696433961976279530339985972985764839993652708000009634388813045392128981872977646323491024847434838558614970519276647026886710732623675809412813346583740880068410128683767259412197701644872636323001348255989899869102796598490907310379156450136833600790431897866423730463456159298729515335533749282611143420794324853873715801319493191417477072207585855243459736030292359831657099482389058712526277876407533343069926609598282625470109286769155873092819176816835766700498036201999521719359368246921032287613423967475035955528644757261819513297673132088627748313297091975546873279499802826118485296784008797814296188621320543607445618283688257336873569593607878427440631057372632797789660498467807065344375835212670207438400862104790812150316816940411876652989074823253343310814498691628507035851428535983185563870879726792088253084766883832403893996032002848682592083737258734818352012230910832129529798987904909279028178727179851384670556389642345982685928868473620079577917265258696653431782628792866066473377648724926724250122570811447247710315575956774351827947381695117562212333971163555065209385735822493987150094866469577557201945746249788791642972341847463303437567568604267096844334667616863152015289899158375222095604591311053563213753046263282026484405143815796084577323293800953321265431253041907907714981376603598223415368766391576494828568444812611448563775513620564748913604018297290675250430764052266079855392383348547738430534631151478851286727870280349108753049314123340862205773248263627827650294352483366778748763617371391336908179604378503975725367181163873450673392307906129729431933549405283337353021812189715938337147240874102220993596836308331864132091520820608654432945391837442221361533504471868208374378899236630695211935368685156107041446028857426948648804034798160045906793076402222661940617047450001731500453479292721111937922863464292689692078704309882719533711974820134736387519874222191392621850462721488170593022690004221382058898518346050923335155183990675070912677944105940795646953744323054924290305588251040432001175337564626742953113245022576508978740762006022681419167389077831197673028655186926274306766404897445095632112188882123727555292423937781553773932459233768625685078515184019382256031193545028904375553118324981133596335415681933654954350035846582395733054024022060969469243596404566952453146519876650988658617858180572614134573496507849644313989341057939571537411424472661345739406317599810201438214766527684979879194347153783954563201564186413137480394358584818145403895905392633627856131603405392460692410045663349834153877839798435691889365106453000401506770170281568871976165440626599529420794642314963038488257618465062825998304516180093384708068635254330398222160203754531180139649590693320900564532090326207141397153039006299263281869197701121500687952956711597190248569567440884168900559747512125138874726750783071762820295883542075105633869627352824075387592070876854229819710578736891163414620015963790071267735216951496382055903017173025062556554369251299813941446752152542100471683326300607029665901378286533283853160545101416582166143857134501363895886707309494071427390036202199386976875097380845436884869613532186190163113560526647623192436204316075705202350674263452456339603412959718273871195988135275039799784813950621820208879863083473206081416639818413799282848932358445087188543360964701716556479853037216197469431302286190678984689788436088350423694794977682252343310026711383532297043268087779769039301824772810761648794065043652088042946530750239560546714181769758021715633291919955281896129613633057327071869757609142921126582168798980758544727090762864232696789233118348968137277253053650558380478879334428581059836549760659834236369685737421429971420372537440050321984197514560780817913690811125853242721900970772645877413277379054525369255870780854845167692477313947158940292460751269954167235775918686787793161951913094961339125691148505718212354168165495441727452106330673045208988375505740266514638386040897216027314656163943066490392380809331387292581935613838798850856250976115702387661228816790490612891643096949840995628155440579399015326070114315878295608357564306663925900073756995781879331811332839651585337815609491455017831573995254104528606238630733195972020612708992389943290752563182592758584762802265895776056174695031672145583999247630424241544000630016443084203619701424163377984336503699770171240542749014009934786070115284299594107652201172946055613351946227372996235359467319833795859008430306139743856960935061578532182122520363775092300607889764101908664046944402723901501165094244420960532540081270045364572973820117183523559147621410290562554739508559318529692763595738812997089220313010194271741676864721431326257687280900231129740882878231003232806175008987363658603023525068696842094987778790602222546287911670115657682898488627771304582184200125931182706009812016876646773907151216143895874003894828058980318372435128157782347347381435716507832985076194245157629574719827134460070054023759446968619002931460901259924561364490662118424879702027491650459908817875126895978553745713258648525772888142460713291831327245637428076122518823602539469079377338516727835638744567473909022345034721128225309560046222623676697901348905056193139937188956466137277788410128389943121647516095782987408575696803399675650605657347339974004317890145524988801487254068857853811726740925800725900754996835162643154978351828413718399000663855445876536834814861222029479499019146808068682737519481526611785894931587707966194670897942886649172796835766240862901883498435538054885847397290357105051147655842984959746963415217794740569995820565534629293816448148177671247173669946371084658799085588302616186101272991440220631633619123628907311032491352400627186548297978614873793495384973405106225881543633069808700392581299868563195145811537011544831508036256492458492172935579916994785091441377596098970130912528560075734671329179889052951041141550571910095908371579356099901426674251409130761378253941636625261234063972031430665157674515787271746473217009474691739699986814423975102941603482180319041880015028928692649033922620592303147136302664975277919146411351841023061743862447298904138194296845394977424209834482062305639438361207757832396838961340693303580701681719530543863836084646308472675304813023494272133731116331857501000809698149621401811582737882308685639885186776693025411853043343006387913975227145877715737221166105136492758244270625387109789806113561752474256444408194299887090004609624342613859723679454147935945848352737467718038864990689949652720348901582789163146272710533108042056666968582765833189944079137417731625545512431444370909911626504781537699262108978079307725778774477061317134491202222288009039765698497293832071918554792935195432233752629267752268669130657864024578607621398492989073925721432198101960142597429170203516029355830722884066316414061370896315292224296014392628528202932915737989197270138036312929453121348126414997815876194302342288975325755667918015228935097684917786623098294267071113063630462729886518169578318679598155043119132795425386435847719713508496894246957614636885917886402792371573636723012355871977414661213216902948430507648746589734020355014451725826833932709223425199029356568702297018794589711494834376449886153975931732031801227759237619544493936938747572287214261956983536108273704288649240111759312495465121921547058815067900032878738061237642658376089443017921685760511407017215784470131153288641068041677048710729523504989791795539945800323929781798022085778703971568362968925874620756229531628637479667173414671428944035175066420588203740664493648293548275486738290809489159856725624535214331259359913101782608640582833672681673849566982174519227604801420421928792385289688274066515004504882098067641295433072401063171203169864338308697485445205684245125692746145949211408084911783562968088146844850709398591115808365997943197325212389904500421356071415524617026706448053413254880093866600422101532150967798675834577137169054938460752251818764849070464030827191074685425613281564541738111665975691308226341317401917723422926998906725288010016739118801483492913009233402271101554089882623256106606651851972462384236479059138992229441457819141302208049128540814245947746617773939422180860235360402500246755284586638471091968737955950702658913536273135278710110751264122930136696987778388831649073771018306195807339495113575166170043971187603177467732907181954251916372389840208080679566657757068946477409905313807442263902818186773366489566127315295700091845574226939712015596459889365399254608792145219951139229039507526901209600336726279565966825835030763543962160677786149621177540401697713041615449376108886882425752343728696150987365437905259449242352143043592947024413025662997144670171485759944075232174237951068676814609978426495286208532791854799192802069772080981229497628274698210580442856142629352920247713145653784410032627593742361349096513863775749214587182237778050408056174162055682406432647269021713349510158666890495814773411187879696737548161548743623267509029471017024258912216720160015104110908983592859723750483270645466979713890112259071197548678950887224558484495997743685297354573501990763899779624465196904932550525957292911731509602173043254125956915323932577460744701452373416890433832895138693469979606715411112189321558079368676608693996409024073513802436064272162068989439372204952388351864370504163935352358415526147968533445905152081225177368649967556016308222970965485945374703230815599654469060493814136447979327650252485934177488957159939304935530032313581609147703638798486820979566200500863645779502927762955626640202321881035581833480056764678037720752185585509739280262986748318020792217703802889546761920882526797148579353659914809421595572945252310906292482960758528631411173000525794666113504113193743477406024043148128937004471841621985138178320842745666235934982054470703478461716275140574358583868501531496747173822706042860280761233765301631338395650599442232066134344860196081295174999090973043665015271209469488990622628108119967639229511464845302703799222774826827773735708252165818752949698914044552578505229901326567969120872503013036370874738284286964860260975861198236375348287502495802636923291512644684141308941895843902607042610750451863447796263700982519155699364652858499226601382624462560829924695884032705420004293088635378963982984488892647212891879439248081027322224935318143540621642471544117524508703779824418842458792936047766252799249507080920829538097606409254420086157081129680920098920272879949214942424532574360704851395471135917780335074830440851834440172438131664945539336591649077488002324845102643891616581588605615258910187055331854098587864554293020280858375397566590509421992353990274861656652645775108221223917425627480303854323590998794264826522506526841630838804731747370124397728335542548130358835114708636502792069316989607429579997604766518059461880152662607319716721815376842521642579601764614511015325001956194520284542045799225204906659785060350838786499516527586953973857733672933143826803680780387008282039620144804956604626898789420090040290487729529824760518180862932144648530330116853633023523374680562560946104720019559381438407605035935172423910819541941069239248871456953480795668440287445312366745870963617411235028725482254579783599357266416866290793813586008519991538921193497971946813324620572053672938479432434707262152221281402199893484174181847507690550958630154219626672210520153705399955926151281208621930978172798872689576601064296536568055283011388528080440500999034771089068496642954745476195361104391665866077064454342218028199697227599273873171739248377746059367759741831390592842414488577297643350562503093549153368783696983908606151675265944220307690381572623776203271508293997543894119095094891402396295060308799459701211601137134630212185249751811562467948590117306093687859796702654678921208598008217749310790859832389191725292783417810143271878405898234637108312196991895701040112232484832150040466693502623142297142207429675979682688412711876859486465716865716337608276375462063255534886805999899048633927056724437570579294553031120818671768228694682992164684149041150044929111460103045485680005413398343752130034247007114254373554527962758452520860030470706850852190798256579886692433372080419710519578672165458436198556171658205003348210769276436326760920536559362566680601309865052626244615664683070459669541149120992420575193872026711007334449363666584483727257199613783813296212681778580166749832593107170003885708866808903997586561160849745604031219671704763792694938735049778000013638517517268366687810341197924291627547540222753781719790954627108505920264294967590621191261434857638544950138299110907904988709692069623158903921580523830007374434282482401308809486507211533247024865613025294362566915752139260879063567626718865001390658253273943947320897494641287957512086697273932839507902146712740435342794141319874279698474155183216581972209655667883759835593361512986813766595493447571706719770387147589963569716286292130558927131699877955666606154798823923163306446225693398142173805430942695489121973377168570092270831270122119946604717104719332587611321519253675937948112286533733210161594975469912449520704109027204396683283933884256632545186298452548070401207274217665294311156327947691611264637006183119618600554661352117228200028042743456352538429709202690468420960915371051713686362521306878342842199755140463237787401517014748111298648940163326673741219406296797192188822255953929328274487506880523090827524885232233015759903447483533284275624208783887793481299548334626400195777816802656895544969782767065716729296464834704799891957885292043727412207266620505547117503054212527398216918871507547086760333975388477194084723576637524086296678092394416575800496221893536762032802809474155909779771456238798351868334734458981903953831532533460553499658540584045291608867810909811716393060212015090257696747103278766952627227073952534770497045926762608891764656181592570017941322953840012109191533329244208723691155597290290842133751087908631989785106530946641803836774293293712457108297064094100647536435274490636634139518974096776892821468110729286203483333936049837214595662845904485556627595280344970617684860917738688859845253941931944046988403703603640237163127752082657670995737490181450912535095828457354478620240879881652171560403327078761002064076523900617743116554931917826245526831444966952833249277101818693352163616594472427836031501696731786477780324889371436232519712432124862425050939359343545990025546534228501424119781357876529101006632777455396324769430271141186050518656644637486236651538316328299969794691544227750669730833054080618356646124767240204829834052818307105365011705669334522066482468559978508740224737793930475631739969577667660203093931626835515391930188378010029047292349068660042407931979073289872433279220834305604459751566536564802324980259891208360510443252405424924971205424976158379522632688027883026650616997102226761420532397090770598218423034532817230789414525614882899546875757219066325727801485295423797345936074857751236391315361886391808156431627389629652520101090824618505109272660766323549600658698687042959649527529989812858049594044134552173752920827564659386422310286697686461260598190737397327207852924230428314467351184813483463628266129900343639726773832742498189272992563289371605793003252315455101951697062848126662544409441656415378552845511343514898718198298582651284133713440357788068593242994894256180965349559045306658770155480601177086489836812678151933702788457937789958636543630622589609185884856563044005703401923121538225865807037328949707229929398680116259058762839959157296226177854190917275016844420960679156592256734089688120004124095303902524917156747684215386946345151929619588243073805117805052283202351301146588291052720901777143265157083882706470039499559448763325785979536266847840464712497426836894741181621272748613805244935462606638598574044420206422453134899516320456720520825378395534198496976939989803604839770330061637120897865740958099188093900914790255094950300723931637514004396458570512541184904545566407821174332937304605501703313835108478346920541526585054110534040420578516688128811977499485553604116185946353397999526471700352118116622324091935675981164122669352501972311495898912381856015917908116283747644603440133154260543537808527400844887835736720090958487480254113002602574227349396431052286953080800404288413325732262522323210921765528910666292847509608580615418655891309920471961311863199815278168968864747665349024197734632560119368623632118628341420729283261107789826479253839530001366707031118846374797215494008657317808330543593156696016131085624205980736107507137152028987842043321475746921980782099686496619498256563455677880755521807464964394147534127778134587578834698900983864381477049156629286219658543506788316760226466133018444210509014097725373505614692415382805237661683157609910912026573055206993493199512749236806210225157365981150507806781010866180114143697046732652135154460304623751469216836111861003995544612284888611931140587390240771057685051280044748345825557230932035904814252750016250242791374870217477775184268552035233938439592579557727274319258202071369208547936964667838446218659990982632273856569510546930913128793611413836552802071033340092465707304789782298524468031771361251134181419604787450004486805748727989657990043704740802360403300514429362356861609025132821653035807114548043421295663033038798548259047061156928889438877645804859494749275144481488445992514724952025923632773944751122384332169750084181042852047257954129708822998921677939690974086677833546560756664638239595556914431479097740160591613791782803737636784745104674475303036110810277644470390653106428084352250536947914391419474649229611511000950066650136157794814425384663784857132732182281661385661648513197328686940173865613833844795212354839316820726750232165179345120756586622457055644114642800493231498680656542798377049756539696994907255770344779876096110253342953015071338130566537562125397052831644322367519501042287862601020630729689833755159524870367375399379877828115970939346656005513847394177936818693213715773225766186125724691645740015108413107630386131021614382604914181758848613977545310905521061265498092582762856153242067503960245679634811063139990856344710319399679416598256285032521938147887944717241249708253276450335513699031899835373457495074769211904947407030285169481157227390404536962711792493411549231562971555487945646187465509784317317308681695341290047292119499002763876773970296546268931833619074708954656698027728759051057167711697953782280903626416003337294668509770727884620488015667284630794265853424998345137607463852938865758290980383472208013334150584012979449071572848031061958627126560528228067122429257363624461469738450666314978005544325045756182347358415858612215383898644945700969452345415248568661621074104119404626632575857345273050499663779523304939389293766187310211740750775043180583222729387403833936276036481800832276463351114990799222682669518342915906297775905794789054879638491647035191691906282928652835328852077337464307262558197340517977556512723119392851947974924184160924870042728031958155517069674391084796915724090302960456282985545859545862489125180686356092758661802358914673398988123889591563601331562957800435353372774611155638969193092641845526433125719165692227358871057070947618717833162872135227611471409031531016254669308426965613954370211638853199447956699228327284412480094859240074389631593116657498194855488827832519771413716545080906459144368511531349414377943175555604237247613632760062178284083106283481609412479836902646441971883023298779895454711768122074308873984503173891096220756264499439919000707343235619975950517537211673222170051611393391649311890314623949042626456583129874905116878709789619981040521758596366247032198249777767765657178777378549387614591129426417186796727969465389148748909570354824393292838357588795036737907662641628890710230010111487077987104890004643258763013815158259669941326562131566223043423021739437913339601564259835151436627922625690825510813847539356885235945794157074313018005927645179768911547297128188951421969032758044967953504090896592944697616534880153420013905802908162533600170687141027658437186219542321909955898671291590431057809694519966615489701541180007348586631707157592954168245448297923707416511969187832339942604223499151113959418621291144532386457432667118315330310379566572214956475273023655395578801787765479141992118798715323256431922325936607694700873349809731570375565396504203403304326505634217511900251948014812714114160395561307399845846953920976110361428056086259692676841907498782234928896644435582868327533603370636648544782534019151656416464510075043656262607009573308692171450844242510687679664877270281942517151658736337221602751990222237333100607531549838944301496226811146682303791585928975583000592113133134841465322616263980767019512155665182175874474661875135207522049041004544254482270598932166702436527961832882631472171914396099727578576076977414021695150232614193681717428258719735848823309652705198424747768698742505055729348368051658045238744341804853629140295653943129531402656517065909190890683191091405618040658190394918775224311494887992645954236175196174781088921480127734365134289619361787495997306233098275088141834274822574813150058341282921846535818920321698437039102788330676905292651929785033225001729676871302525306926503266712531140409109314323520174707967510704205572948332427476421791933690957241911343039043375496097656110387384668377036333582774476105817117120761216688563973767419635793846627717603393314146832408631404206900995456453453395017018045468751100310279896757563971371786624457751475543343645920545295747609610302486924751691594179529599535821273816189177185824333510251181830910106137211367473769978284873682116526424846022946465407200331402534001114747881368091004227677390423496778318449117177260280500762704869440750602236551552377998582063263129385810089116879475718032477897870104824766975343839375432073419698634174571839836994179106325867319628998535068320794885002790167672316060036768811679110685533573678723992738584649324160346711432777645562419327325596674878601904536319773403237219226873314784266719956778070434643956593395344709848093537314769622565239426823988784153270265123747196024379432771019534862182984575339230232758147346004893625873713355789745437049194547304409795517500677485680045955074475802633721594892760988609677876900077971816548497115457805781605017221523430830244984499238075823720986503011151824269605087541975513874355609322095349623497808207386710265189410075162493797790125342951457244416776815078823505393364202404538978276486309784321775670922311425701851989356176679754492543058654631997151878612483356963707435843944692504048362329312707614559584077201150058685728721830410641286259301653452014446594803789475216424361649428811689598732510592918623219448071347332515303005185464838820280749129215015197896257197127418386015009663755921390432183168854604885003608639799226271759510315943688341060732097584969082195252002619208716188184093182271726513855896665918843279518851267310978530911785383506747878502921777859377075036160465744722733317962030899920776771486624296637786677495212030293128374573169382176531819391579029681588318251683282321789042901994018828741317051495139659947733827654725023561075837870664942145183360119660281269934286605719415524433181639459711073535266996670327722474317237676527153184739886377523273174128262127930201269858596538470351687611743729072894241025954749653531440353179975513983781182914846408177910017149438203239296198529955737983340004987939725846902721281271145809904251164426361582838598526916455162111800069799764168177850308156289444438969737419657165754768908623212345205179302657038340245470102797919065615873770118616764385881157210104688755916119731837871398459705530035060277294587591492886404958629848920653635873457592814521519138946737867632660790163355844328789646547563227710784325971095659814373479258758807362689543203039541364838693493609418761632512553859445348696268682530572573694129665404575680691207104295401750881013091266860499526911793541142773673518028265857103114960468293342177752557554098572260430372390129819440668292449831636469900941810478324170599828343597882848500234196450267748977792804698277926175872128376823440371679237585115352551425932650209995221710837018451114011734996612308674457472592691112906658307367893804888948891854967155980317597648877687867793929363996434702159673482828007868091387888210907097961101378231001205157142694019759642290118447932417255826331560729831242754676966353469302307585287235909687266569799862272429648618854441534194203629252169454854933864621524779993685480808752159297270913177303487296732371280498658165516227556413955864760627677435529285779036739147384575314766137230511698486396249780285804576451448245972862449292137309855931407141792581160619530740213049997453709261741502551386611715306852940455396954874452317014023413265369014798426207163239723800936006553516938395165449325108179289321763069616437677858045657020559820548330286361015640005059600753793372391550802613456277321640274352066978139290598295567320400348379959535367883446340114479811188116230214711817575135836516782722010704323156872145411256357334649323394943857039610932570945299356332290124220843193186384702040668707544185490212174434639205208888701169785956150410617981211633335982354276847773972419380013508682210755467174618131773340906802427565199027193876279698544218682709621951410796151745693277893033003705687728503474819162030931235601470056544007316767554682545771445088365593497673945872098045149723768861856991285138154094796072357645458351626124153946459213722827324116747163322939824990718714849358928998240308536674248249766719099859607358120394919289472349126916692768551360046280696283488062647383397644252906497783631358237883872391981091454105589527090670247768174125999933204768516974241831614148781777717145057446009712502451389243332675652782536272877416238772276214357532358330700990012166365345178995736081163405177052746295982339407147049077146954018990055149581055981713375896606115813845837544553967257077220038121665421514257271538729044976867103172491101880267785046215397622955501699155546706541058947332623456030371094299230277174527326811309965498907634675534222595348552630845166399320396840447404776198711633969056542244852568627357079789684018436611717446424691873910539085411117578775485527305639690692633083585744665505366191811173180877687403484547435064362837625058942504568525948449617725664547651737401603248046977061822035246726945056473549791266188937818836619099653170944811292075541238354418846827776649392667466852125590802734720635355502050406600124944482415757037874373489834129167800604636658626042612589019095015577624185633678654237191465835240594815285782586921661262111487845336007919866425712520599715984117210809103456796707248502383072589981277895804642892074188249513223114952911034122913183029901412956546767074720293371727515548114663539883409548721714762851705458316980513514000271900163503846338853629939844735039786581077155822695981607209779087572788455751017697008335938822980996737269746282534198617323555579131475481293318695224252073106778493841546515293360412868611077486839237142444150909938661036880426397698032570486025131174876862326702403864954135857904244833455550591554071767440514755244420921881534103976032419516394241605854336623638012769143132215175058938184929464391183822967551207833470171767924483856165696961348051021505755527044743181376632009891816702238997800143069962058639569900479008702913866219775125605796396843778179861470669794964531273910120669793064406894775563207963996009018101493114656028486724432222706524803546566312464990679408470729182123808648630943220058417659086428528483864102185287792850626696526604834158843361974373582782413997432125555562053892869194562042910604988267131104306080866219616427486099267312564718345340543484401222707550552576044711142664115743386105102674233568223892827997354443426853043615854124244088375428317181315127854855480015264546719250352233852268732310958146084248009004440645185211145497065062819064327760277325511773812478649720230826159745088704072591764317128497315189684344023450151894654146013652930967541845434393362417944474914261455037928803545941072700668266166027525790652817784128827830715980705783177959839974456191554670751336025255398915255084379907574996096463850378500909024694659665018748989334094945858501347799366226536005688178019744901829035455565098281914676886899431870559492974665829929418704275394739131473794302001486071242249634143722236621223977523812309990188985686735222974482782565433328988675135092532498908060923206961044989265525868530720116705336785612451495842391998084531264091069628247066163147147400249851838691103246131503222718287021325457470227944969777364266159912833472085556017759336247525057301319001214571921141063110848504890892970167911670942023408020073721294902943327479362800284950846311194942985834001819659904118816420205867190922288401306454713127199202171786440207676110036339096132730294698740215629061301024476966922139415702868194042642779334299968450946077090057270093742688759038554276430128656641595334455922188330026315191944208508329369944106282471580633867568427737793621803795849196712749915704055331942620733854520759439715448352732756385319778898181290537946046578506872343250307382791165533860285144890982132243339143697260212001213428236562298414991111414180533611093831650418586784415113473572214146944630487788330370475306043978103234649154502578343604867385463926935910468066367529226290756820663854378786323311747737755644093865680190406283986204825644735412858012342697781923911166307047824761480860245480721687808409558677998317829439828150396101352319466564661931006142734561675886587903661183198591542483524120605163018533783604260380073381560022662221936730268510826742042763626484089940079723172533596912172593320548425530766914087504781878885522810927275083718624715107365529630845608243461220753540128752141514165767259157361958267555281162459600776746207292417655644233955875973701181285174802599310057943943787540162762565235172367747849589671530217089413723392241704392460810428382694530771038671198994926545050015004595191594475795257550417042971501026884789582454734394070577089229937115470928977153963810619714820989512052680340673217922576628450658965011179556396585326906311290882397453829497859599228471995488838793184358321380667270196308932868378144736072312739765702191100021073534597961221481752640158834422715616574943911775173416465432618698986262091607755835515289753856126499344239776739647202148234680082541485417317221570789658948338321119841883862390699797836004766453282690469946835487632429573250828325010165821309188563238743348715079387930606517423064744401644348465846559808547298864208673723016549351928528952213393968110658661677402867374467780343971344719009368809957807952091451085417989482684659366114841797526981072326272556431501257247678107767583230743824265255492337542243613144182180437815089284361520804013807928526554761810744336817757348594936461919390724654874621274519288435933049682681646291731123729734786831756978161172241422212324950752738206347852850072038505179197878372984077277923103139375027741735676003079752438910861405410466725403519616023178763902316319854559349872543718757495677335469956249648587350663228376616607665752859776763256426391354991937564798831464604377652144168032635624183868349712740612528606235702715479525302918425449073351356226081031347473908343684760827817491556529924111098004263502332776247276095538676613776581277943480434619680496984723606753282861683144898829196577716085255245043318927703308494883223911876408802824551441147509714587728797004937823533009962678555569653070693874772680335477163466323866529005404714263892497441790426647444167489455358038370782200970769570644958835621312246643181122489638406474819074098483494055945113125666399146289205640723576900233627754382249321562629513822867548382123772623977767700164445602876973887305932312929865243541988008189264404937842963767738060739575878521163553275819990311883404258672723822283241184341487768750160920005660598725200418320518739935868367471715147150333457103504181197503520877532077005870641276845730833082457592401199605902186478164807329735418012385450701350080753672067697302344080668007009718787700280921775184669444850479270449696711454089542932433021302559644279848415464608572438820092889933093900118274990151166647383657476611375607402323680761666695682311777737522684544640861110870522513242853605328461799662469955650757347272461014704357740061515767903360869347657789319086736019793314599730830223852428439570918125354407184042118667671442283294501101020952443131681566899178685998130043136664824988305237742851544116965073863117471132457946133818992722298929779233250113483099689779357693878033750799589880305173650161957089679701763491679992964925325240336363331370106609755546417961368746674086438702050610289096386268289613120075911065793552506538204219428066228248503600512245700430877380918284845119493980563032300640000331349559787038267823167371637658484448171232801790280486038078896869432804833251269379315749717743043608819066585028801267707511810299817886997070855548856708848576725352421479870809128259967228373016912689497011800747900754292425630139769546305921237679517840465454331750737620465760715154101041932071504361512740570260080914785946424819617641826627812589310460929676434367955080190629774361534216749336311621999581578748890896072441500266370951380809205637040054083318117095494955243496344890614124154578087660097360409148004747701843400298991723661260184068640192168141632841910715449604441309710147178995826558387779515848366496671252469271936169758111171988224361514269162690350279428087617404616422881603690796495023065484470340986705725431821055157592915174042005500641857594809364889497099931261651912813933709209580692690309392183695102055388241838408867528253436483507255232526506977164414925576637360199349469167549330320894911179066233246042716326455010545810533576934669290069977229767950891162671728042472585571716325274724953974023641964607881322433196495333460250625316745598676156074570544604088582185215739815358804232750202488321617148309218360619028443098307186294038672187243095639993557176069970088703122296363164079517494224919899550683974788413629535853017141079974181467197403058217276363145911895359274834844803693726915736603893179236869791140642414362175056029664998548615934862713110707578553022801157562573371561702361377277068690618447242855503402533869279532524218387883504295853442147913526764965033687622491189673232116434539373065549093514560371983863328254252427921965439834592769699452659947638501275740775424452068109184624464984204654069600860280196308447998336939930919902466818408118395377997877714419258278838268340771866408678747752592413649576886683311452558168513568809089524321878078228099945451157202895295653962410339474137475569849589064664263713294282766823656253763163634142218985067704177583192610328620836227535688675556322692154642971454363102796235779456726322724819250439651508895772076279739623453327542962284090869738590577380968715028822635492646266265487171783534642091679599591372868459657751505285310152731909967248363922496134071240578772068124731331200903155465974171192458804233500594329395056796449020510916705395962979264739918780677240186028072610763255880471162584682036783665210444143574492511046348394277528097660011631278180027039886760811409475341796075456075290251769647402107349459221467468490975723865103333939324045229035442721159164207479369289878691695894756497124991516235723933818780455241725799374469365101399883194103247584076956819226549342830331007270868934444079810890813886369971754274241429218213480416065296125172266230695166553194579854957803753149361221113631136642141395031480192701772647855683242992468331709067770796359156535296449256730519154636989680835765779634961698780204423023593899543745777594837110983922546531192164071662787807735713378106170790569435103568788300580984615513281610412394966880748382146953498383012123787567109613704221261420581033264841753339236066710569917703802723509710454272820529486772659781445778443428729893669764823572396028323432582522487162520685905242363719444260283959894448413199935929597026422369685168189863772923268215294788086724807098606261151286698079607709113967325628479299527795480156449821843628676697007989642134769998956484872830896381545316191678439654014230056481231728367582310842764562493770860934696949089561659649413794210690833443775558035162398005636212664464408122201503715629092738491255983032991768575161794203677215734986205974975884028364383407655597462733560111773553783182609188802239147480168042702792907821971862977214894010399112548323433760947069245915246295557170790610671290371432268474333837877497398346925094620270783761312504383910008098721901681170760741894371699772008725563070653214556422607329591977449762962526931403491885612784992557803926131850376216065358642054002523809391736003725613301090140625813493227893637966942303391988304568915947717499987055232545058023906924523678970702722154002872756980604776392564976781661224679960636156195885206374987762007139788057668216127877289182979025533725618994894809379823378743003734983641282414118170958809636199254215432685356606669707034750363307807514584555030989164708495335399704255612556605429234617907664598146016804301313994915547890438805801003338614783399530247510157392645439091865489928246147478713233284084072830933854089897489377033251025742049584577503844911617205006149068132513084506084191518788928572704203377686326090601442705381330133419366284650528364297583397320789056141169713235425553252036655625909849935990800053520244010785977985290377447433015546933155362127695354031030638342996297139604621894912691624983083597966435000276607930722966370978893585194610516568786156933664888314702877537194123795898596430419916907598720111318301194365256010222247235203207269577159167520436741110826838969589233062823997472775091049985597755377007882519553626741355076245263401287392411810360808434405162138437841197674001511439265220407074708448821561681380920977090597360121225081974532431574384896178542396013011511990113497319968107891421912856422378224397826994692631874975204602003742189025569470293981817727582825834307831889266180549731056321203333387982261584613153427028286874301898278941466827519615377017101917058964959149194594370396547785158679915747454259934291847295383000675279212260929594080889246938816405694204275446078746640157921124617797427388238730646468468879112131822649348544965262018102971441844280984645846788789398303035583648263983033194879359295737077348135759118370225878581195334298371651271763598203191576854099573827557350182684930137477643986277233854817905921130785362917835096122067075751591438659198360229783533605660850600560302159639548626056621645212553000828693469194429362886650001831316042891079130631390128000483955310704548676474431834391470188571258134254677749995681787401181903728153188361381518337071272416805251049827086115206512108240916906045778695667439396495575138952108992132577725353679128498501862519809870176527912505654111597704683947673453794177267383403171029558502906983225562603644053057349225426086493295059542527572463308409463523845595949753195765860355675374614323010561763483951066957048225032656415382776440286562983354526428531587392104687542169562928326182631463342594935161970996662286139610036718846790668307499327878104720260712611464332564804151332022691589518846241725688361193098943703947881504854919168454961406075859802529087696041842859705156518902401348519520096708459153700267708018268930407236608928415540444450407986767727177047674274955112140773050691855434121136013563434841266237932260761516845943311036916904420797353677790555195917468154022506254392678704446945704989070793915030785004025528290974951719757089511978401999130638830715995642120501932655301471948274954035558873871494720247826133964313347721356830375814062340287989632890854629042187789351920010285170157815418590346248829763848420316742058265152375631319866742286295159649238563728728511029262949941641498824441452530970719424281715788177541178489290075221290906712214101716355601004917214731485077193229713675486758447994617537982435349726363440768878111703323528987149279223380410804990667340710274225924822058060454023276399533124968124560688033295105452796926262531721139604584994532198980242028017469672113520993497768376241960278360223452231139577331313014446627150152642997444831471907546356481049968573207807667600558539414292896066709655810272554970659344220994343258211142969163487883150633266657886052254973337819020095625137432835134974393222257648736078878484565868156332049897657913143902309275703057350689085556997547896993785019544086321031219822212222461751109265690304434228092280228895056401690183435941295417361401441860826857460370684160436794273923236982414681450323340964288205989315620213751637267443854339545137074589525157080926689227404394118168538714061535195096130408724899999035817522772873504042484081057763683323288295870555211427036860833465112659508444214151778323564858470341978598542777541319402897416915340982564864164058711533878608694910777815763015734993243049213511026469156370005556553634883292957358064962653624979816249753852869718080751269676427862790680833065902400067652378829199020313069088724864069558367811455120389437643390024840762257230147459678714989402976054204521605046708093622869190538548138407551384097817961684703672316884796423159002404173550824520310033989352390213017427517815849409612006307404889769680286355593827014639269632118895082229269475027000678200827377427595230652702149890495457989706766883067379486681628874243797737327432499177679361220888512580902603178887353265191465184164298897484952967762949763240247052093470135904154925309564082039998060346723010117713798126007340380947344613552508081392796530439763063805493647145386174748324125950009626580765126683206556083401641214313600091559638316498620686972949704213760617439320133613252456831748359279866542392055544462887210987865658311709120580339110178632946420753140510626179731329032223621333492241491801189485605316921651782799647145730766406907501403617758592873265712083198839215509740198622237384517373971969203571713732221359731073691801778988044818928070527843956563978960618473600490000480483100506279893631679168755357072841292257485028166652776942380636622988652687080224264649563765735012485075862709872431487829855933022815591192660235441111876856866526097521623101528712378258225292951722718866076929978903055530734008988734426428231416754526546077420384514083322157568179019357969408729231490395483837569547543099971904743349652224091269275083291402976913879277874419105746382072125553231789638160902160910354432545952828326146188027590381232301535940183690527270239710840831560611328685715730508120418529190881619616632397505240228526021607905886734352013416750427615358499169748942031005298669167839748217424016264432169962197060470137272701115759679752526283044778935108468890031401012608466594340687392337969661748739109013476912342145032983362561452511835328271275034126392995157655480436952622780797551605045095029334166644701952842052839021588983821610533555671738540123062826432078933464313044474228985344860788699838114789884331546624136759305418503822827535260107857653714887869297457467307486102733154148097049280849974898931149254250002260473448473868804238810586079097633698031487137278074322973809134975095622827116453393504343732615018924635678060068072397100360197608267815011210611590636907709663635199353810565954485367749465238188922677787557028575802098851867556815381234936845316635471870620662268936424176409060451895838749146866461652405834391425699092343702671644110258931797957438372382203560678943635128555979368528517152928616504766623883131589112260709950297137152732618133577011508056628544555399295747246696188061128669559614214995609438686720278640608617272920230066512407555181780527917652724723124306521269374630381066181113368649824649218159498884168721285507894061158223968531468816206949490808619820107829300350048367035437907177681742237207520330988785486634414950532786944365585194402326181220380646950643905652609395472374817715601447718098668817353909394461614185751478111431905716323024869375302371459239338167447774257245833792044638621704892999225628890302050734314575636722130959227749415557763560979920209103963623934257512157727605107588002275020180651480040910797788091354241629568130119488664858252134545060965911673612992914302607748922768924626594782212629151462340685236505054025665724587375514979252770245337789206754432270156408439156807570400920267133926471114865441721496133763208106326221760000347084706923433398639803856461775277644714245953663758986439318037939632376218744191234616069048541264696234825018236454854451919945786280034304307582929354630748950500837922074810381864862525830225462527510253956889244817301829867937017748455855344017101288935970219168194458091653874191823693915135847739795644453070693256927326897601986402167904580611369751242962112395408545023249788869501602054612216052705026989678461244212248452332049552295549175348697451407487157206899787902703646442111576832567561753833770915368708986330288534861087158252385002873571800433381947499012518629642430859926094967079860015011530527287953399096763313294081177832067757006228234055852625771479900922734045287498331007613072377688817768948862970491724352520636425937491955360551920655197658146758653915176650237964167880551151104436371532929545144368306321669631095748647716697889330761945898453542272277586456483801703162868925607802422594950674415274634729642203798727129596368601941060225009896910481946235465090652341501498280933159216320167125832372130836728536040045430688108797987485984594310996293968136947948458577520034135475602832935485848921582728391273033347069634016236686811729064905984892299732460028938288038746650512881461937889985026895952778213024517738632901917664301875015618054074716253465132950688727005747146760444283850784881188171211324352531539297612930031544737432990739467998408448914569123352446512942479772325026454965519666755304629821870303003760347489879074276892519130056766945508909663127239313623813895265572435609959537356053489672603688453808857373572566356488425517295711887319432622887301924796309088539429046095797029313044821482288844664569336699379321969106062940898249889283448108363464258609470995127954564487170764383077576336672826251953605419653977737420238630417393610521100154509569846922965051385428008622842701040129918464743673039565111402313949214230919176622905705322986444730311554994913211271603125375670499820124245336537169359649139770594130951755930253334572697693876094280199100950678984708834210987974813721458798642530282369281380968760028620015120934920992072313540927389643191912209080186489325461689197258091539148991580833459023736316743073654011653052622011261721317210679102802342520956441336093594196529311484320033828660289667315157544238223012104168617962216913288120817766834456861374848752057236104194873533009744707943570883558800544801770889505908842910252922967141333284797433307620137997486825758446964394300800084446925311483509249044344083532543611508923297763867142757413189784184915688695913645736883104674713702812578899300878752651160718193076399089632790110983468167926559606909464338858634576468940173691795850760308195383608645703661180838585842785444664538867474397190131552649247198541417687475996083162124296976994040031182056071062172959577477569227784870028032965359235661037154599498027369836193728493695917417314261493873737326711932541727819444554078609526795391818105429795075263350133443195548107117118656050966741024519488185481543804572567810061300835193709787496185760540930135598235383544324996376169473968151273825332700948593866646514633531647720878910028659979900436671762330643443893706557647283605043313890905937971158367620376225347548833694430829099784145884981414931219145630117104692251709525330465276712460624820854185135931245611747567165608236061458131952004993676072220580475194353911150204574366596799375273292519066811505503359376550338574548087594468199912965357132944818907264093261852671939455512654142856966361464253811013495357573639171181866627761253108448322888502416755174793205291678770884385362107372581955365907203344974809950791873384049356014826579239803337768918888329337782333252136593248333377866066036594079869938134145666332289080795033173746905580596914237540602244021794270032144644603288262920289955935572187857554365915684980502708589100988563399631424022412734828333616982299341354188042286341038874113840860627612420153739327459530829143925980468338884992749424208452432969257675120960924291399765683129135586753045258177127062971696481250101715172393996468164207870036298410273552547078850317456158184227218715948545906504754367622445183095166579777626338621293859287910787982931617708818102102356022197316438855302439620717387156460057811877190816298822791993882396746241988171617717204559973408188351762117125703816147531954636753807706819797912918523928745361635443226074095381873896992220174906687660562114063537293164925759626202300598680853957995742915551749038703520333223640018071119903429409757650562099337224792157871253720782451815368287145804830524427638459660304939552952893835665771719229685058281520308338908877115868850887177784861123442787202391756132844780814510638959891856433732164916310980631252283754705745676234473479349913765510545949576434990953934290288435172717611152903909506125350349358522358785885489526415912497249116569464975900045063249297065796233962530816979587867368247299209738428997086141455679204988635637510887932903731702289374227786704956520332807930730022745428502050346235911359494699057566015327069872992440932925894969618616240029036090858327044677224424506422867520015515643490811005842668641416302545070997008850707146709468696240746576407065177955514132212956173922821129609771484606552705560373632095355710769990285152459021341808983411347665185961410119449812109581007012056736612202373363600647525803102254502386158318680065314237245806182765701765817723186356510029168807395752018189633245697882722094918920562540884481130101025576788200905923334624722622546354158968808012836755329542708516333972558407792357654419126674079015729079671636725045185077143811664124363397865665073241547458492546936893758108710342797172750070401678561948312329761388795110188695657358861506607068591191569204580568698157779897086150708499232964496234223118146588227165450579147153320715729437146218890818009693122190304225077041121267735924130481399446031250636523202224292088613622277228627884696981568255467992427016966269693612143132852831225036590243105418700447045700229403513760701212154196053103575141727318429728046075484914833645801536589074757004188023744865445335526878909593892475178798023280624781302262165138206129463189175491330489831737844908749790630737818372828664716334448948633391889150600763876390825787856450104902213231712640447354046543505733714190110773698755836660909260483392192616989515338290228921159315604949840691516873747799969713283529958764358287676519476190700550763088445670752019556609762194123836138978293569748834503684855216937407568900561502095270385717789377305264651647623942183237042171033626078309004932612875012538419845390807766728537188016549630812048220821032090812978470894858478906157645968074463403009728743346700799116779683924110031566270258204798130228954077645443291620518625399377840130270500270604055056674172135174904539065596198862788757442045779222875211962846799234267116383710008593988933494301139738685121280459140121551639838965894017840986681275238283890764744488852173634078676230112450093490939107132050909984870739178581021713765603526374865576125787016641908692648101581819485556147140708504866174944185998090840172343867911756803195566676661165722773933920767919031970998755696397356461810730716408191157660394276482213292899382793185683879308405176350616004348251383014182067865700933095266948020434890359629306347849064156727270533730277112260201295171504393873581506578246795927213417170920042592460975772481068426060519655943638778093424135079884192469504706564509573962540584986331433961892465403895000282864744624946781789470866778407079158989959064012655738932285804938644291674193531726442692322314883651890725185666714450125426908817125478432880169935575455132006438112553535220131439215710009952686227321724689839410455197641451310728287464175185943515562816470662848407404150810529727715623513506477316346540504954561293084887547606402691101422935200242461971998382296003492450584348346262523268167897794345700513928249405476833204076872876097782969004129071654370154245082091295840988546962095921793642018969364375282608982269854157128247972096968862776880825394479305199922966870210005953197493864832138679754977952401867698132096481546135005120529152827860803308529742801446793200403070332062993366882703117140307149042775372991966401082621516774990258737184392308107290175120445297415607820231793892700153805630775308109885409761093234828110906071264490035421331949639786840524883607228386908314614712498839644194100789000037783084009293366464471205541461113140229332082795521216370595864061895119670381824520379119265155762978756288668814117172059374179824931284905903682923657423098083767192122916703171627095975858400843102351467967825760529439542711405375478681635262393167253063728471911217647880584536054752948018770064578072845412815036070463264827307956768024558158932087591443836444373212892036393261364285371905949649550864852127091016132739937967697329975008317032302001814211729205250519285579046112222730924454567424921729477460502356106517280225150005400128777098296196272792299895252071168274534686803544423185067995549149549234451152651327736873063781620005004308878018971959127659574032370881185232397284976087661850925826386131720362435667991350378824962624179949592632932231469597984350075396324405465849429521328158754698761641566574439447948214484925951070720551689898532934188959668563432687188097976982927740274812004046559695819279593653410808506416306684552371718282622116552328062303948164634139121536214221374671536177659533829759187230900834881469096496363597772114108873796623612400060772490800402864818412053013108349317797051681440645652240528967023585296535672657361580031019547134205908025230663711191136467154961908263432666678541115216628910725699231424328969608402102015057872399565505271448112484836446657895205623318579966199843065749825367878370819095525945425603546548574192597211512390808444651937177347958533665078436548109594169236795889376032142716770132379981619836970318892192428010068411298527527907916526925718891507654240885817396914414184695244791806773092633969349080657672671637194395431146335459474660012695030941599941485516269055249570450535947074915449644441676450005148351813969813581064234679168622417305298003442512592394575344663901412096975395909160803272921113454074983075911078346518939102180310092963085515648048297100805574016973127466445358837178834638036536919737585389973554383090228967756473583325046630295312397545475434118792244952327522471105810745072406515152362180363851883041508075210586404433265932495057053270165679864933504181511137438797185528904893141231168362365301857210305580464988213604658489963262849844607126646231049314271704607360048478870237384115634242833380290024591679508123402644159137593912319628653238409140312743621755413134861470879270930059848210029736301450063859259737853358795577824638743013728027510457086340015109261487100893837538705123096104481330936156013753278817002448093815554069247673046871240301644276617232970544989365142291149159060331495337728974816086049051896613088939306672507956918009708859964871021100292354275824232305095892151068668005220869254621080202169643853012107082248943241163659320992323950331829250902406214031144471624904390915355859609605337477009861536071095369683855035575781503075942415085938412672705326681973408661559852287685335910172392889663232588275738119440312233557375123666225855546934519272485341996598353529592693487870233074345322054644497102823549913898134449256437972742953605723659437908751026902759421665371726489394166574404038779289186731234674906656823047745363714080446075446722077306655100486641444638661683162953837587957273559476766767314221972876145834128754114898302632330877176094803794279399663265071844734347845829650669636887305239799249338899333588189219740620605842022306750762142749198223009912070503154994162589504915478029895012823773146520369795584108363425279791414610651867186405983773231614476758410863039119021613355482659923024440200833959029761102737347907314927663892921904368753433865063600920896690393887153116305510547155287509615760579010053402208956335860349190580781454081060784586607426939443372537166283882432802151768094588054063432130215984876243305703222873632698677312967524708335464242083455967554744237506831583281940690207321872925848738592187356106589862876096296421156491897079419883603510869343139272600332750881499111271685012655612907236445388243967671500097286440376213945647034409447361019689036985292088556824171994303944730599720224434092971361252524299230525840449088442362112611972531442020981071401456112341163885555166151494833160055773244921948527749282475953921807640840383768113152643709064392149183070810900322324608407655429698169675833693851970296670291575074804256763164688185106696317691446699758733646956981267922858634605242868933620165968619959897337507945281996007368400591998101134907784327265098265704163571423412528677337667987072466163480175407014979764528106072799679221014589077585160860295579440281028838410575410975101934825933196423540469284751141891352423343060154073014597354033788072233184821671899656830201139717961573458095183485759899042497123753832481014241234833952692596823057273136495653612628456942064501313432304106417901686501432847071755157075724385993272042077072981140843342477448462399772966177937018124640881444300695961001229199676615086667199478452867299663980732530009041159218451330037390129449535391512727399255106183165698041174858428746880042895935973480464771471266040175438484121235463192521529734208894826183578564369579559484211766731783065372624263421290956960744894367630354029956660680584055308581679325446764745936381516020390643883498381007450589562277135454269063816428815154592296639583834440080958283270987394997951601086517365159155807610395820604842817135371976129343924906787060711760810110896521268296819166606423964583614346948489468667441426969655938836593154389863294997528162782693026344961451166490870666854598357081280331914569218403134377690837789041415890283873334363319759122490541438414843183076265481178859519262518049458092895818904199916005521072083704178191117669512018243871140314652663590328821904978596032016647370171970780533604800937298399178666795925808915412723599692679820572556241427300600487826980977267248459952575101118280331384885087475117992402046252860025723838701616959155681766286295777892587292620191687636500339152750807695513506259101598794120430269962944646072530000312075669817917781615399507657324922286991746335025348084847421139983186696206825259684699672881547892048405696023411198608492500217039323980477369903653251167541944583250331031493612313862327739431905001781558721134156876723652105231156048767818008834798665132446387694095494138879363677395635635382410133784305485446433978586633823229322982635422674703874885214844402362682381922510070146818400263853279980882207287754318390754848375889433119952532606555999905814402992993877215747969583883184805487321761251550360175272553677882656315008547997319570758440385945571347337230122769410879209721004505914708462886935680778740658891887914270337156274602561561974840450122711624113519474181285119035089084398231367649731761036349780798328914838677884466659817230532757136758487846692815300146811123709286079637547874100124084969890810912309441242791670590419657947696161497844906807628763927763549248931078142126718455302477187353775372418914043976300489275971027384351297475222271627633525794323376380247089900769237776817152065370449258933433326140112370324001396820559499939265731018412159815442655324412004716259940714513577326273788764241359453033676264942876463104117005746292275222527312753581470536499593454130146733894549554230762846501569245628537367064069105046267297728624874575346648980046828890182130967536683121894489465690505657042031261415657344449620614798384956120280660114566434868240815134014127365680415386800552703129497741739368232480519269840660392092137849958119746585096192009639347883922999750083578775381229894405984765695724918115783240011354896391677119621420970594961770719583746692645064499873636097383216755605818376096803884549150117601448030967762435004700648657394540715745393357762525410154532223792296410102701152454319670121491299429452452654847020835519976629899490094037003865695918304178509127345796121199023350263948319862616932339917299237838464956509101217818988857974386242887284553740297443008966305734410236789576198880783747480849752025346745731018061270890467639493301200331075428300364390478032444519560609646547338125043040941119989051525429046503390851941732946128025457080939451007132068107233466845851706067750500911616295434731369779067550503694279350316041807966620436108392857594424605742063684655407509859748716747697950704429754968326622966635651283311374316839154156424769264097974157511208543002996603464401984343199088852557152936824642344168643460052390454546925145446139335619804464162571225206282593891112597594726511920922615682724234316449860162896064473740405006818201168101303073207086849687463480729356400149422871910876604517205125664595492211489794038666562429157979499898488222621857134442388253184111746994386329841866710371504206955640115955840697860612687750704356479117802048776841347398699679490444906846973155837962692645921249457798772982440452861770048895341629651405084600287623349384591991559044256617115800793574045359689388715905400199366295729128324442846669795692319204681123305010067726503407023554890559851447376822829030277574568947839860590706509807620264908629472072377547304514579169140572055160538009536849369546444886786252749486086108869541036912988221216018957843951651687526867005890279825044330934992314426244689892440757159719249987931056553610855349458205366625274061781601196854095037327827684303929217433980332202852943755038490224286195837572899904088618753606917841431849662264680327586631658865923571001192361883924108850416989288144793371893456475246468680928955266863861632067182406538423619978220818762929765271088241503355571270041267824487937929905950122036251756901091734108862749077457541614511344049072215898710415662702852805415796453625775855382838701913231616178735700621848516236334636723154043336649585623377566095837965623992200222111612014539421419719900035512973228485687332211822802140784320897515433235712140688135123900941714833932168704005881398806109642665220440036533702721602406501676326363480326692230696892509969092957871743445555005095167238262675546425628970312500572256985728698297719738284509407153670875002294788033621609143480398308459563983531340912092840981021958240034070287113291724962626471465847027833841451752292670833162477696912992083986061848917029415295492210630242792497145451404361611119588642376212576126784491772479211362824890675053550367070893712657890864504032648037365837683192188275802966384273026399298057654556277506094575889538140954823561865701340561364380514440972055072798371063185749577043041295566011759986217985285137100140382612619718331306841579363566181806449762294886076565986391289045032815482474244362922569472179241548895879595510420952926097773193730922263456705384360548159383767079069525285011078429832084554326366348342197744843121220940571046725782432859849471211509083663771247018922132103455980813546136112942400399332047520978895433380218022727210644080025136482215627853330878107955847997101297054145626170603224617346240325373801635748381648605783693353598302704276990317711707066445570265295185015508475055995921318027379358279735690603049746911319393894641900891845544001002405674026778130255619431600327051735086506758689182778128558301151499171604099113581462576970758221756860864035818270154337020725639408314996758496363140514121520283199377773819616148640646082062456326461642506271947424485417433811648418232634383814051947265060987670884460618315287135989421252013640465549692316016166210774283449028640166911383793283385686140465889323362535506378731788278449519060421962310870841296979451708014331589478513487044839680767652329599313306616004077919559642247220014646701474867984606920177965962783854667465974164738725166347521232726251085033111899293667715298867450936317702297774160280172972857767320153441817597486319008684425602201664456637945265486890329958605603490065828907645745412209791348313879857615044700594333830382153478278203160929511510919287906536683139629104232332511432084610702311337198619870965050754115498734561156698409052037979286059203663604373030720250149148040014056700221615814272797663902233695175284954309957577550590612774602608413362590892008532745010216199045467366289917772747991361808678396693778469967576622255127623387628769323569331133723520215012576320399556671182934393847569615303961642462475310057548253251483753864784064835723457873267130537235735567162789191431043724296300516215295445234220113947430199803139584800525157152882436667484187486878094118959507568625221024172002199404343650568136251358448248949559867909409014444280572416311646792461538803121026330852837938374219684242815140535091571617241927146792316184338682769694955019419047716995060950434882776982479950764770801130859705915065498460771142923082045355324880113734236313997328970226205985486172818128883925682075416562984023894793939841532185383001258416367614131750859675260000112341747936479722384335264677787088927277014788745041052873836725708347129068971678171427917287623222520497242818805351522915438319819479823484960451249715461280732957912292881939869910792846994741317939461143228651777327521467923621405341851417349519269953394461840507787600605307522905077657942672138582106438951214769360343349663353839422588845460013879532583975749709177367490121799634989245779203914243626371087118289505124738212165218190027939655719981690753421105258591050080796408824499840367982114657286488093630665597678435792816047171221743509993004044650782148967594138170431546659347982035984472805090407162056662949833899328646824165542041642924937384252937997352663640841874781690034662348381973318865797356061075817332355608631849652514044737477283418815479308884215358202549204043026365462118924305080433224982425314484870743697710267830862476467871108393875516412400266749039164269004886758247235742955321861475220878935715644616026993293754273209591701571060288152712729866006375498643080017294948064314983224842714480876603080523936564498160665918182802711265024886121018826990713047333509363041927988935563212156578783199064436661778452422245501217413442086933605176623636794533052591915057953379370313724825690360592815600707301039232259063827737980049472996995959895677063666317496536937068318738478093424885334836555846014485552121660597373343471808194918432151196117655671228019631525628392678199158159501106203586646340358772569707391035089226431047461446739374756206490152225049270292198422495814536106331646238553715004202365485339627094258173851024656318265638347007093504170123846230121861794385839115981982473664130553957562040855865229479635976359191011169645314482565721271035822388518660547502839095648967752304865430413733505006866293495959306500323723506453251041452890795338098910805464009699049770001340562862963405895234969886311669247383270564716999645656408293394589083189732098861110296983843782330745719862777360082947792212299595366957950799595984230362022780075436746433255134751370267829549547131840773853693093383318992203664313934034068935375755223141378397698817133349428675221653561386820167652833660150273580128192669536643771519944645313004638601687047822532833266409274791022009258656360911121630893467296460536022044268508498749136539871905392746145973935848193484772235902212074232232705587362982626133094886291038646803228463714841773686228466369796317747161172490142949968691449979461422918910059967657813745071285622659704023885699424184355443653153042686054709768418621631088296480074476226305641813544292802901118627471339244524601656726414257571781191394432865594298950286336395903673071528212872870479180703433276342061800533171176194003951583960729592965037836606737486380808407202369606966089313500241306977134215299449647802442947032548876246300308744945729921774590865596069906175320912961290574520995338660743488148598478570490722899804444413259378044890559281679464847118306090975724741366615665051686790568425756779293079720930256931796032572600702940497979180085559062354697303446991544587611994728985469407606378029365483825357373057602708112154216707104352873531511247994411030148284429196186062031341192062778572010722387311818642943996332414870683882381537775514128626655733674857108384170992084626340096824574782116107647254032279141984360896990548360092207472559840348517387324093609710848652144394333441997741220605270635331896923876908249753792739137191704219884564403019442957097176423855253023870073963321404525112252447766178211750318696225915032550525627333788090744864626471603046621565646259852970303846053675747366822901529428997966236478789561689962818634816789486471136639857760346708827642568350098121976887370140679356591952844742972321409843632748233348866296662581020281742752040007289238544507173920358631168750137453079866733528504773470822779504762704612612341001088100265308999025346208784526183701023926278097800371451076097497382913501254060535174809035037933692574009163875921264318857096630277330384850438782779082925542362653494962976644602908255388415500003045116453630169927325063101975306232584007568119938354991355492430699995365186262703088054428464805222500128667912098864092841516484341465350793530379003969052061742643243242714679017815825140083339773126673471207710774018201168170239138674020286000509069705242049588672019274097164172830381696186719252030391082031182567588728176692153104385394719867460136461903990449550419967352459549948566167522500532505004733095718931641218035674840523867072499622394066176030189562603459972234566830830286988436618506348850486036281774242187776248021056582122939636437138783212458415794883957952314322196559554860752743450127532240506370305272300971296884053463141995249063023990362654270389693417517811757030777079041077623701440757290925885442569459811225322064732898004072624971975998017369020313807515161501053274448267937780339688628622082638683056647970978754548905841431251621162042015137313505861963024844077571249566545491165116140713550697934500518927994419308194561367308896672800431070488880215756069870751335267443634743105445920357554425781400709346003839126288671258865899058628537739679490932084019756154754412750217488816572098931796902164038948114955660036101608131509369287321409412541527780464942727939109907091580430354269269872679733846920586219269400672430729967098959224192968238547722804644595028044303724425160907210944408715564273263186051528567398723924136591291809627536707137913142378056272258471168157602146652377552505203827252246582882375176112789811369115999567626881187760570825748352395486337742577138815421509423998407922758704601277415493812621071065926076859497159364549708812975638854394144790368540397163679032492674494533411154607419021258917530678322864110594590159590194170258764588274781024263207413693919383023823499816733668893589794563498986775230932819477254285252449021610302938898991515999773213015323983052082499946960392023969693516692255144410183248004926138437062154518107560337198484446770915839117512164074728348435068160854557216171480810657347626300075658639466588203083549852687983276110825546957779951534003075877075928284827447141120400815178884379427286010064007422589005893570831553908169968652128449051386195457252012417462644584383850632401950662163560694084346359097156502234411873631908502134602088754711136819491566674891475466289493025372437375946070643650172053627034065641783051128382521237804621023548480126202091340949892665335396647609678164040847277973567304419059478757549739199417123654123678601369037070013223731916683270242240582266241957762895674597851349473205754463335459552106322879806022509030231101637734093286434801519451899291752922088094061987269900370534089912296793957556837935356905270413689413265090430751297228813490336906187471335911675701182589236727071252850956908925654624052482875061560093012721078836547894103452906471773405080974411641026939016311296880715389657646721625997052844848179617330390118722067419772482609349371883334049889512416213460860123074833345111774887962625463965160342104522370743242007813000839423785902884416268348753481760794296929152744977617307489249652300281054170481223156775042244979689954990687032203176103677881842662344219603226012395508046382903602937297367911822009739934792561270968550942605689908286592212748460343998215224264817444504031845068553929970163134387065701487248679122145265759693305607835987379082640331949322664727340006591189872582776390022246797927259788972661318679630778495042424247073124942234888388356823011178202354476737491602429621943745392471844177736687694830406860307073641195625163798500286020168486879353339452192462387824921401467823018845017126394621209002062267982630550272382695924820683201413680234807479677103130552139341922953082232735963869501486014715460670846398836784824465537180881622818302217246874145877644231799117952293557973546789008772605994710997715202128098661212789945465292548921042471150671677237558812275397219383530689919806637933599551651419102617485783736219399260693594823539277194295962479475742683692603611231525237865430986970378641729567969909859047746182660999400123752144355836152973426970300424514575166237520301287552271719515190845157643767264929946958400713781154421461987234345323252278571062503556533732390640005248604961152662620479444482902309770805454970810466806731517514312939035240802630558603085450352285229406206381299043141284278076835469316129599801683403562173073988991795437640560851275362533732945711016266225742326749334132260542817850271271946817480619798115922765377137306799631207466347436580439173153610966276838873861177527320125815537891647745402407291642210551277893209407097851443641046839259894340405931269855923655849611352906572260556449614952640711168654662686981909347363108219997680515282723502878326665021244222975948120050850626896852700126235498900384719384751840358562518289074649078255459634069060790504536505689256953132018325138215039261415929268131486691151714591348335224432366461901822566567786956265436410261578211108599699506205193918673859353725886995460393589356003955614391235549310374744103727803478140398073599846935741857755374314470685397649034497589515150439955122764181051401964814729114588301656905283443071186737109313283346374014207634936582121925822251368135715525328264028348744152704822154466021427340388411892992741582132641099284468780249503575659744167604375656891717200585704939415244009230916093791148781633259341132346748522052132513248826004331619246787611767531127072525884004618384848147751075206324213120382115804204638836996081575688990548908901504869738515380197767769613900865045054287733661779628781502593867687690818199082854657703323968223043478366755978075575740394398276203601452961872666785506194655923500291142214050300919784836418985194223278174353726012793997937841505945384058053327556849305566384248046976531738599791024151904351784785452753284339012742227901933174481891606551440207587245989983908420802254462569407597913841130132628319128297148905642472932210469363428353511106263412689700107740587607135158976078585972564072375730466702838485843669821725868244822351127824878378405471323415343059353696857518939118203097609228187716306887778514709813379972360544719699402923031757349353851980569440846611864784688555486006703737785204249179164714775216456120171368418625648536159315892002484665111604422359903520104498794135265677493354400928261223344971059236395796100454183184035004174269732196721164891349621029626662898930460969776967489934128159802936085640891127524400209124887404355093842098530099147241123398302950235354738436436070792312110420973563917334187180519442307821717846872501710775819030915772147768527884412366825042765425403603997739575831178424944458384405021622438796651624499745961218414192851148124733127933909892349538954183066897903808687482548692765811251298396512612339250266938730028177183662191777943617942235643337371769870318758541752614347595797883456581217428885027961270759343124615326426107340601840066790491617708008054669654998157341977390467663475974048940457300270776019562279599493075214356134267230319744632753471636638033071025454424658819634971025805908160217849134554947152172446538832534849676868289979307252970336382024777616238884796092084483736477339430721893097933907180661117060279463113280839744699737888853179580034800278599194785066065271819532337270785593839774701387866347983891472601277077891296118998623590093007168133673503307541829727463785911333291330107109408513344113183994063458139913896010081687686958533181833606396401520678394450600149177905409123973422998977455394028298785047479617351740867971298930363677223264600920266981217443833688272704350404458057585898053666337078457370155866437219449207736654880475852007107043078556568894573141780693720956369039354294091759205959810120288601531998570441038649153617664949896175890731338388020090118756514844210379649315668514313470975344009128183452303535173784695162065916902811290313139490625758761253026965176664995521291138214896090395460495370054331306533782140265519799078242551405137221496070890157400098628606187638655893703119782935844922785424348367356773161642381378111601085368746568255771329963362222464571791123965063205246068199079773345435336548959699763296770861216870508621520293284346516847652093132059386322670504687360957783110863481378587602662285751610051780114962946573303348341752483645645499998525179673641655112694096345085871976787256786587558884415687733461331890161705936464028522585094838104805694247919492819405116659097759513996781016096255425279483356653266291374230869422308477259281438053581573611579656505591750050713164186337565932265219365576029274075553973959322346018886678359942159945325311951228580722582730867127677008055521621932649687747663359736820769218451227641836958242179120832294260068560076131287466032994233205218795096165494810917240840297346188935825148112837332086567598218289903145274745377962947963207122810845639892321890321212483604102676943936413228795895943457620651129419630623516245711006210293131613490101577508857938560104766332159682152361865074379914372676374570799442953390574218630380959653051590384415276497300611842130544769229325702929156177063643655623145990750036958331832321537702426945987993601658490852485580099167617048267734437529333618178732548431929400689840447053666673952059792845421589023035423738311316743615420108366178690473638205537340292312264384302593649476796139577891449675720441324704917773304249110643476263912996510299602633087074602122606824440855658221487900657732142910137328995490641301988439931519711157974433942006452347698559261244080469368429125762493208405640935903034627903105426282623008440286254116740838167381105912504290648793821810965623534517628434312558952678599182186257732653324466875687359440284752206056501111676923388605082619382725082984341370702066263956158565412981922403822954867762590106371896912492815937802381024325212863390849407418039736653217829739583063367139210571475267176861826639419825755943359778793335002241503804081872160090001691628499716743512301958918917197092177021613151498476978091249885634639963547268559266480262261887562900011551286124345130510739709445800215971733626710728323820734854085800494135618055304465129853685120981805479068783122076610789988931938272755929024831591560262851770609090628600363902096151068063012711465336638136309273092985276941944251471522917582859623949843320437016836674998950408235209264639066211648748870542138484059645659800192923482640043469177777992116079424476801944333961521682622996965704616342546481387941106839046201944854951876759557565833202447026686752974231372959619705462802434979283817314263226977333912404171591532175585065377754403740549003103479779009254123792741055450985335510443547562767655362168911912195568061688849893398233371297590596750178083147333192121906668387168212703735548772042516112048408524212700471822673425488202507159609523595226164027878387482186551665511712904439240320922674219868702344118752063139120705585985215551884055732628009124831186308878237203171733103511190605608336785897477390452528729270112336751605511675941035117726535348170303041440931158607814768678716750896488017178422528891880783959005346016646401617770874425388973647656813044279192401362284395615158619244247479233443656622680533390140358220256703976163893721543918993256694634470025192965916175815140046128682414569133802274137312419768243690393204722943112472382025735798154966296668471851841454026161078051978553429280983586382163683910130546509058566883499325849153183650704954555164485249285073151453230535682864649599315724987399120010109640320900276385239826096385375782255891931172874243800865923076254257919238528994011519632364014608739853797539282615421980988746633680249533572261312546302721901173638285573216304946823103472950006712813099748067617709133274467479376316827060620794071744135394271612510355141104216194078743569600866357234497044949128306556217537462162722465095853417065479106154385427620288984377251307736134269645166263595782497708057558516039638015233707717288647040414918785116196411434281862690313349880704523642050154720153480887796232627512352521233354612073067735687936164965829578480635623293889979267408937804637643136334933587355057124678439252312721322560123909125937556167760824165172612268808882690377895253118643671258715108579025199796120074381558779385951993766214336607078862403985299772567914128579182455121099392743531772767841577334639898670077133091695914477675391048893813939677155509650479132127486770334805131565420738245340086086359785436832049610809273378258039096292662838760330102993300075537961212267356219365776466504418319504518685497905886879901582816975469101615665813165905856654955456986232857252103176949983185530736992717528455000414901839509228288179328147791943166955430786738992263321051386270194800327175953094025294517367173649794843094407376993390225014688505357389645177339236457267597505111839744203392633373311976942922200226795886936398299462755787309334132303885747529314730919535814273761244717166814235646510742702170557510303435333044380707930535062330839761184889273016955581285282893797992442617997272147772023636828849858162530994584941481989867489437916340539770168399580172000216907065549873671203500796773006863680353976735807305684195702016741054955050309122222743514142946497690871352271539244117235040420213469662344450355521517453117862874063455465240865476647573675284167651110535284423943769692891868344008060270439320007694451896317846049603009547310577573223242493003176803646700851362809552263848621638261287908620802693660376623040341321160971406048471147256355733117664358413567960249331394060020514288899967310392299554309889168901654054319462323504493567414727659623271593730479497274329957592281247536397046725685558481264852726285997213477462057241204068846612515478787951558521868595420273764969947269839457559175165004544743079272774103318128411135950884521993537466620166433251752612174999991811411889049682538219689916037894041828331158611843769047197144018374267361177716270059385042050040513650539782286264789155478959477774095895121034347252102154227924812648730933389973116128282908467560615245831849283925871802414455726345769421202643390006065920566881095135399193076777917483017630492808862007620931825933183520610835253706412258288096853621625551573437501754555060517069261107175701891369455137930393094651475825660271715449566359957325107777092628636590744849767222255063632425715622625105786522047991546362599181463196965687607752326452053755292132369208960419597036662905283124069755681394610158472906402202246036889384289797397719729735571271308080290008704222155206367910579705127118938214895747601568221402747398495727061171110873950994083311713720087869686745082857212765336018766325411068135722077317458497854931787066908471302496811117144598848338838211810677162670352463283003825506658336417995780692487031803121737806094355085619724236746107583838648557464820862236673411463053941754619762089144119871561023684690305579121074909750440542854727081683116928641128985359700931264456082501372395614730432007745010192414931324528470006361337962966569074582264600007018630794146132846684455178945351884394540083110298781683828484238167526409354964978138549906831514847437730631312970915907788533090519098007115253191502885533012715730208665921223919536588216635117787934788743665475661507687786379227955118750072484692273565444211108299485253324860935410662799361233431400274576847768916685019961086797123324691197024227567475915241447444934868115558741112990650461466678000997870825725419878531413776560315483165906801238894298566344345956298562305814349353080126176013693080291630976414368840587143489139519433588305667419478457576447407482431763648399176000134501618091025660963592397860084107423406931723770912244608386441461386047479979799081271517021228717078621816812257336663409808596538266427686562904057538979987846742866787972651655235095211810354972015547733365878296978225659902354787858409209564828345286341946064922948706163511049940218274150901588602470335218320153567962450224271644783564981837484897964866013139584330492873045244759175661260830322257845470715396019248167527471132363247174766372677542097656013239911610847232567595628075264107129464975235304778378217167350234901524937282781557815266411428468959141279799473326908187575626776412154931111309422596970265508169444556742557143038435853238625168194680502438961932300568967067038708753031368974979235902420625049368842749007984980943453023330736143948447565452055329526465642593164790325444698181836003589381451688569566248271359743806257284859535773890529296963127180832693606424647009928747814231155833936406724327850982722173569654096552860847506146762558874231899984541373864511803293861429794899757201427875380331410349168311376857466437474582089520158977586200466022718526814407678317139605331087757374276470270836271116467170781210404951575390443156146760813811301274459248373911365992580018614461031234859103893360940632026229976010094939314183742359201786605163592624145699236141521948876910099857082986924875720757958152810736552242103622356491343626236073591393112016580917298370376952718811310881694009765822111772914189649851264592522654454070762052038962780588869402002638178663796865087171084165688561852892083308546093396772765683064906974050956899395697117115135197188463694042978004859267154651200203059998595047836283121426543628003019469599475305898945988070221436716577625867957946144797392426355337024445626146944639470168234011464937379018018668421340100600752064750514226066373287884502479448266747750301101859443764162425021018002781620091328865577697869788060916212553992691704879018449411733501797321086566483846268632517951669003247736485047887978632107276766889915871124895806728302638414105602927789658315453980619391070857914932135279066774175895835070111264219561028219226681223029955011323612790965131332019753824792717580093898753718814010906188223683310794325677260919644808259108211532255195623888997810226090850085063944381237928617463538713969655191027234952543163260119100639233541093554987409602651085695348954917505129702267851008116205051043709210059911744416286046637819778677234061270103475660100982706100014073171791411863118529397384012398033899894303881148818451025295509819532781395685666771683788998170068836635660321777772496302202425781915399256984162578523259436458944400943648682244956088476849501715497043510427734321925302155419993426193885762624925742834172305749667815840023341426967311119181140234208161666979201233368225072464757948309461211245950343400741321553432994604091850523673803218707159443466235132742517788239381594814204234254417508856665444544482781957915955782186238381747779519247359527394248797392667711857403507998219567959778046910552187468027575116238131618585172839416444005945406991825763577857903739485500470405038506123897523508186488276935881786606155777389950521642988924865545034803303576748761598494060974864202612624566627063700229366331031882527440992162448431122280904293543879370876187281591239158038599806257817376078188471080186731695399106039082143883091961087654997288019853977902853775029201037887140309029649127799881872495474200329005852303311765158205697755360883249974667873702839442622331843139173205791350737774219010545051150959399545343946179774846757742832456111814810684318082463577656493420762212132278419795449421344839466877311462361065469608033722527067716210676928524844308839476044259767730620818228043906525870216180083376788862922920067973497416350730813618037413525248041585039771531080665614128012554228355090106645544282859453818988426397889237463149984598212939737263772322274146653931167590228874258923911744702692763965750084854727331405578350964457561325302784820881008496346780259789060531021886952990240106838099136291849197508067163875208905619698101920467585246894880768029594583159434430918207838388965680777592341050292206574157824136473708799383113622666890963425466705503525921784219905624981450672961612344285925297598004625447556858773661785369811004360194898988754798722429255016743423770699796291872829402806854217021906764505122926919788562954578945720601425411899316043934576914047883242490250740553393271627169450569107132696444866357677090500626482426117465863218063395457939772113236425779464760558339216974037476157027558340949899405913912500034377803897301820763223516293883661920072353991106336148514721492245086214091390265384482509485357212987593454666046992576336243700733974183468748643934573542715022539420446043218058900471480818183034097992686534347106644740507207365661781412043284694283600900825372490612612265153350536528728442782890357006703970555481892673636813619735146071833870772768443425055315421706156301973328449633807961620097068378207935100774108177588758170126702091733726108137529638143103564133770783605594934917640101091561750152138703910482598652925089586252776743463788440194458343674163624282322437372558905292949459042983196990965884315776921509754357556731388279952022399890079885474857913091891395773886860365581008259844334470612416114383794163777676550079743208889199117551151467527748545961460732501196333654528211944407442203574736887568100224527710003767007550224788303410198410347905019078110905760774079883811765957705911990282954718629360453499801722451464704226557844211428549411216390446346357261172880703391646786475289490907500684301920097706387872456712299292887431418114535295473192297860305737224666523668347330339461868601494103297488279320954024900620206547257599529344200733846531314931498404753843134665085837652732757261836665383244571650448429261020344092477521861116576554956599012422485166791321632498797018794992758081298256454171913136570299584009297750032694630574827628643520823976227603314235388849096103067672057939596073923699587685063492266542645975882026083525589479775257011337040149770106022096295900581002314808304715145101704284331769019487012003054661974573142283399196917346582625381406690855777781825421950557685632375468839830283570676664376927562027269874346694219105025292998726617765844780845041550833153563703739382788325119213431183209687170467005043238272032229245614121883782405275835719258369789150359702694751599707905510394223846930521503205043782320509424481063853009325404075322169929701578417052882359714742898527911504106558171847182977251549163738696237773556329951487518442528353848595715312797178936678731071758233646725737629289217901587774065993151841442316998550238153577436222259426018295855780350288101197964175086868206567645013270175194083769646022124657269967657306780453469267031001827769250349983058431326588843574401546198288208471145499231941735064194257116940641540021086383870131679132286259477318619281571527493162616217881379346485435998089245405200612976789452401653639245701806649421055745692561841865224945199266874565848172657057096208999039178327113769736901887330439651293539044471764025596831059948065720419593818654483778953304562786256186436346130230279689784064493314557562627078095572714856061060470109293077497097676788372896122554202179716934338045883516512836104933634356657466975019753205079639545645870330262220064221424303086366322645085222322731995214569785086709734378908508002700687322029464922374307335189141129703424252893243937294489415968947722129289827932078085247167448962768175938132040060555964676965267534433044411310145298736105944055322683197130448956141891770384747565032849622403835625925476262572458995527946056780875777075378537989827505760434443788688730683686190270148714111598634875543523570157681475911319428293865225310638787851790740446115910924353678534797404890959833767735641216010432493182786314689999311254102635903915493897238903506729287746787661115371008100447450813481271997065088752542805937801137408211715256892775589080683526467158470036877501289897633151739510899945012478939122576731187460133511404252860364384624528220356901192956057790797452319388254806360158286187681416631256451590151874505229460829092071044823980306435576603497674674617353459050867411398951261079343448333736658868398860705585034081174418856764818284591322337812753842215184305919935334832931449877778206436388621090943304055086360433204037828778015086812156735148247857040392953927745583855937901171022513764209926493390961986800001432700519601046380007895988822291084015054077643853905846504522660914472724522498778145506919551896795071048041973504570736302229214357939764998309593840831293412374804920059908355903890314125525130020942946793524573821311418723328066342226174618837588756419092558151860092423419993190789239112822024079957691133467995386765712314348851034105059008802180214888795810941997041982416423032995131095068525451065263498192355874033992618603663385526217585418960623680746139797540185320420425310998245035614821322419571583481447072147200821336580540154161283746228865158959172742073557891847997503526633021003034763310172313334613350133440979046975778972138254753810110622718649480256289640284389676373354738770006061157446189981070602202464070375190620753421233656282458970104009354763251103737492101647880860734086100184007062936918637167789783009178723441379195842486250285205154107296674219866066648640195367067370824634188481744832621447407859130908905137791756138178912786722428501709633621603136268675473478580586699044380621692173698987467002657848402868341655263887630463537719625700590181618955992806660567518846166060290914467458756817131323829697083937841254594013363356630501509466068061413398340802831371472859317356126471542282334781028888780574848317115085927248994091687726047443462642275429356194116711523687646244836780753020946937345296297272584401670138794237314224884148111263784739517502101061941018295661812367424819854675538095522109551726760246699800107690629701628658363816271588698826062930493317291524152300814747463945765299970691887517662062949535028290579876914931373260533797421863184714701975083272109635530467537201403840974628284024435395606758806789932395492096057111190347535475094823745346616869825500230067012550927655718449168438519385491315755650840093201067226354889424812524512333380516265224972130592936437639576294530819600311442359336116046407936932050314959832478941610108899712521008694636764602185388580084207600689974982827182733841732990216204319739827940183199295719046243594151461316224306643348453443534242307368785001094008090266431231721932890327004192894643598815742651491533125655580114209232625119259431097141497684853396549732857083962838539027739528088734907646472594687668107863190898777905623827606939512552701684979584564958495475675882336720302316916413840647793584137051755318013646277482664214826537188980709568363405686191506778459792500416351210196324419436464727821467984546933380876263036965876410303378431064088774445289628066543557747088149477441246430683000977651882651313796296343511173281650637530662719100069662515386480026152033423000743817391483256283547189529584810676263906090608801078084894805018123410035480337126883372043903777513525617425823038708799755722671535062739893732188901889408665694713374471092608693027184174542551140371820963928071456622301090120217831062680362259310377858736210854325492410398014244396110215749896950950609951722538808141514986807259082807201916616214755408174416631064794291805224100011621025874284774878293666606860427213071008203248947286427407269198975070266880638959827295974457950443888845848366921168190338653245942243212811615528112056746929873122639146779777783699772754120582940199480218474015337007430692983808471293650478580887601295517504149703867170491423049595485302881435880537527988905399330899944836995730323752267156190151753661404804156178672101071609425441631263701255427943301319963251416296768199101871727158120829221717088337929250579344282111594765747475114298963402428971272778019096842300586534410834020963384151438230781882435800786944454936070533373890281259778583578942508423259736277383305105922417007645838113206753826506608716204814677189030137343150568839525280257921127334116146200524942210474335011709689754803267357821475664859566942019290125946413707336986837789993660353866894734229385402436692340278375020373752500466643817635700966736596186342205869922873254606853283471473235800499999190269515551450665976024543537491289527539283949127377007043871494346350232042369568081237596101131622059875028020309589214511190562069992435391626885525065939056822079764791743899843052773645452075008957244036444026492538197387791864134790504071515810642015678909132822302128930694558633722326799784814491963186515678244222813869431183945086459267711748153117195046722106758519046693146447011384986012938492606904689542098339694736042045325364136806222805014046593034560228067473061322135580462974360103196052591160861693506396517338656965804769680312902855987834859711919893385739634914737896595686813939789896053851554928986538728013836063628801573819151815685535692026803930071914570116329143904019673430281543035361802001487246418651743317760780956112323982218734240567246801272271500833854381944185332759181469260355972882263077831156586191935858581091104633153342451499737301661794233362492346949068070914197386233461883404712035008116887785729007788665416098502054846266126540788125818741034997822334106204928736538171522397327678929448744695293275678434664568089420013989793609972731604794454023507420270084071070520074985475651653602807889315574543363722451237888247617467994898481205148674405625029710786206709477331418725154772542677583567865454294114858168019902531287250504050266981638416196358536352655698906879986517715991357510960889127149108185793248468991447929170433438996659182272341827541959215296282007301208059667937181017067327163362260147959838057625444504926673473428656236107856311615658800888525236087417572895756584546585661020875137719171501256177685853280960130507333655064803736969558464601405049416823449575338561572722049581874659769026863608731626029553274865785037181044864326994948779128403280987842135291897594968909717074779957521378776766237681644876232734164352699415108568676266727944520203239410947341946829784851072741560463129191031321115504246079632036551659979718550738740412749712444731857019295881327778190646588831362961052999769158644889264216167912431585814467363274604455679021082695850225901030220638433093202731078659897364400938272564090756551735211173845500301155324945156402354676528276277850376131030932600849614242052372712773516654245530248097415090692245516092169227150765209400398953208739331525483364762996125259099969259490868722385704933102394422814858722574885969980051851490281983249819261537491528749649812536562024431381328514499373052937659540023608373450301974456598867262696202175271195165603994706384982602421977320280942167505548600326147327591776760902076986255101887302912352931604724310634172337920428174830806767003418088291406038082530695054989319717737122934432831870570882021908410607692151782100039986074078349652797442966840396122072736194678315910695382297672679882049740734089536369281969453047576442239138781183563709108381328641708861248979005301392036012208734009108761348526536486685744075967463767246181893807079291272126607378739096778450544240606858288300499966675680163419565300307672575495567581987057916953615273936234957956772673023064868954827281661864087562949486497465560167562336947686304564517814923548390119339532638716953990897218903493590293150356904612240427906950084086898228316141877703894896485440366363016416717421672392965626887859661870182046517708175164287777257576105555098854964915128202245501393987478800841038958195339688443755898047006022541615909558540394049502130733193371502212859223664954371497785555669481766685137868492002620202901868347003611226741332079873166179350193334611281818581210084250875560155508341541810061000329322152564468654837199441910221048707514535318129533040143217444795226034585109247638289288312526098033450076863342842373396933213688752097237890768907081637659452692210852936934863771041107794355243727514993773343380767545210040193869848071529114028733418399170151310821623329623183987067577016019285629743175906104685136629829471859838461099397672296627620831482779923992864693931733436677474661206348962980482041643034505987030537009227629172513564886020829760790752477230241748694608757933679882141488166057778943589319710877970011093921156433073395958394717227482612377578221823744905587236519421176038830495768043616794589715414110803793979871203497555533562197938933984149736934115205803017536648911959299097259761195102658758498405374618807135490928401185049411504856918793395141786837476637143914517759138811590857701104833516178533725024018035219667740572844660352070219513472015989225823346316039999793203497067096475952971611675085619714583107845395049452476355616860289351886214332909514144366722952901185273859862503486284313457633934491221332313418658642485931398853083055390515395941040757714998439530378892854368028327736124043435053302647088912843791373423423249016004456623295553695221458337085573707291672359363317237856883140893452400341838524205265992657193330441356031129402963123903525645432825044928950047452678856522052701318333867231549373534779689005325163324486247059339649859596810539004491224892117776402743393319962225027984675682662077781135886079381697897207893341293242132351650380959966454671014112680037356530590659773627350971613064503737169621487901001623902763244976662516877596782488312045324790846574678796319873828600132088210658100628587590937446929522566696316800127809577948302238591169143212507161100451798578645572941615094839922280107619386019845116392764727920136321382466292251706319712240422413865644349885548861914905864476811267775688474584510021514456615407607690229868177448572495668132794593165008491519164688734836940661080761594675237706241480979501665242999473174241788213792851255456563497193219830251053640844107246422119978553348046130343161134859726603983781175083627828380337710734435017886425018270079346049389574121852947897608124586775510528739987387730533575858851516676692825333703226367204981693168635759208932425954939273365778999397501982135941308274602657977200490010170738582795669859838142205982053380034302950066385709721295423347025306301384047553273432813595560981418872014280071229862885185934928595322740036358221159046456608691825562680367175149697361532804115347296358877402868339781364722179622125322324891228016235632933471738608011526256491107353528070583349262947064443688161620331243829687253877625871614091830763407281947858093200104386052323138827398388640119264121130334306864872405075137229738872183354394062595129672778630031140294023041012241721711770919175715337335952928651826815912694946715637720108578056133349368615316881785056783361266087070276762362153091497492597834947594223254350644000728988022591080705436563936714984893906205898085369574627116293045544485253672358490106864453729511192598688524246459991973435174237483372315242324740719323779174055433260789085421100237699163301695046080103250923214024401708670552747790906500197453948976747675075977665384868546399097016691960985632858737600094239257920496919940691646771846733594321877824077702365176305842229486325704821264914442871570608177321267225619733417775339946607862753485828934748476478563847539159910951757101619115181394361632049009642151147766471496296757622384071508742471555433191968801507802961624551269620001113256882345248688304833367287490377672083023507926067068145112345909145894495763771482099890613679970140126797346186196659942224042480650784629432950228357330036229130188376434653564301468256577655450591982393554383976010969319191873959496664324747262971563176047366723364157845332539488555615859804716172317962930643377023149768497502478875811557832963355095794915956335768495332833993786036888974288776661182531854879942839340307779432759976761627678496163331943796725089476275870445898844700007399979864821345339319316956363237096302314260923445622937114383285481911594278370616946495902868379460610627181027182150271723862963583344100162613133621553755236748023269207976554131779528474220983228790863102257536415924577723093449020001840474280007003930696078899486470721201828180206496268116270226321604545548024138842204339117140101861356599030167083500830109789073796528942249808444141587490827944418665809840053760003859483843279466881844540061014476863824948546806492274091216832994957602752112506595232287654800288283521978434632485107841065928185993340361402336592599315903094959780254155629721104055972279556763668000638915604565202553595428203799875732146170398306607234943533353130797980854819316830340634087540985538848334693574570291564724934594001865874589794779599630258630155591935782076532287960476309636968269696200218921874816310424186131808567224116440480348170163713535629831943607616175744847406834615215288665169263598101064830226379931212488896145985740424853023030143071614349124775361476922896167367400197699057178862085074913502909200812305994778646310180023834824256027882098643782852371222629862250403902145008875268855532891010700948384596743159964341189527870249556379296020309567505693345514715770343756778106491367275207850997481012005812669798950561561963487915486307179486632864075971198993810581680027577223690259515936324864890066489315899843356981992920919629526928781121492281796702239972598546370428071943492031413639082036118618891761630989446328720035461663802567745624260588966952327191959738480355412087132399248046061740571649598600261020785288553359669510510691045797830571008923341517198913405439969455224581272557695970575831714201002476053833395480249534320037960577908533701981525919806012028718089880198509674230196367079070706107623175587510858166162927516076338788423579474819774001654086026759808657750741275170141030497792917860130125771955066303508052707194650700164468442819515301632294176434885437956614402745669050178019345913947554528441582246110533736349606033902060032106028667128939245982901016372594462840993609783856135064016274210067958783199232211637790965249805562484211309695025875470456123906191091273798373827408880522398632783565935129153453918947416337133760299976238066894152819550655566564010449426326131147950523867491262735973914072772593814815522448558828627509693992515365495032201666314318986189475096654371991462353038478959595938200198818284200945227637836829150792172530012713001231452018011836497754926682610928575273669163553876236817994378259120647678162881671294105038212164898010385024118047463093214729795590739905449141556940195931825393984401420452635305166091612437374399053132077145056202060495502816206335148499644123309851345256666100093615034349980639107529484720905414991929831214525287517451170688775332412769666090681763330140053941195441195327457808923831611249627691850106368777300515267971046077954406686545521187473419296710006735753634760471202290016349942010226369873212192777530924306389253975901117163038743457598284437675920039919772877013015695637265681629793787743129665526742300463430425201305651390072403662774329421966701106890059796687462952944635998419350420307579912970305101446198810125518464967368798600759954256879654930207222229577941127149328616152252853078734137294744118097765822732730781321664098377867496652241546716470615587202134242972803897820901451728035854488926975040563521878258333776765422008041765246635442154035603861235001529719360369569118031398737220720412195263106282732469215170288508146812292252847051884031490969700859011008281350434750791952408427072696867948512458157263986032603525750750118285141150977602188719431905388810860693109308977955520448063098196444690363638835869966973086508794066979558766532549187231843094900389946935396219152218804157005957510318503223334554161545001187619282297041945867598830870072423198205725870142600536373631183620384321168792963696737447719678433378765309126777008479694398748791109296081785246234347390418832969636377513741409064993119598947674516865253346937706609016533965570451343194792557172046777723120196862365451205164227176996266269204300492785447320369797388533936679817708099806918507754851718877132460859072097792486036199525760317330405550869940848526063036853168443473571232291856891742870974162305496914187833439143127842811012183523471264787519372499574664864936804933448422088613664065127031463065420968731220518768388950673294720314206203254935624796908914160836222376896226078514227575567947239205472576224862273082314472504626923014790479805230372887304320654497837681078610180546095686202480028270120248246966234717167168670667973335147729120232125213368166194589064284952958254389776921352726863440627366730398643089355183197601688849316195714918503550636303342607326848821200932555630832886854289416858387442568244027988843655358015450293947932433709152186392944147860104159552003364444045443079091241810451929131607929428739677756829317261087830179706867252541463096231342175446608462338109182537288287430808958244417791228489120343685832790342678696787530800838820813171926161102747042980780794960350144549877202190217332646491592199411473429527707450854675165742938503290091748075728050258721027678020760261569545162591719601738135754295584103438397920206551722636202509821093753862220375540577206535457422411820840558510736800548114213490637781289450266088959639752017686927668435446107490436713922043488133887680227598097184545422940964950052265699061569373673445058762154066680325754678184692462179739828579411649905530719020655096082911909089444075792605612610145576491053480327084539825005333536486960973606635485818195711323655161178123525369165337826943992128414874015206557408174950421118436713460574455537673311390952392587437485087810835230818649746101423218834927790747745021339681995230719841738601423284647196608044211754824605355943439469306188592473761034308966794452805493083237841044851701265973533990990976002857875722188564294833255762485204284883582638492851384808029617873565270312626001768415649429933294045221685199121382543758975741377799917256956255185715415507013987553978552175269629854102945673939482783708870585425963106846025973598654989795404148372616360312281412637910318024201262995204280312845679572112108757302777715037518030439845769003828503405442938227784507782323613104849023648076324681672456911870162498296675535448169259102223505120674606330530460581612355441408434942688859138202556451764735477025521105874508640987755304915565121522900394913313764380808302197667675070284587679330649724358174540750102769737512941749815167896463105897251821975247694158359972474533060260937855003865367818121217546755150959154944055574527692103082410413465714074700347800370992655437181402480610543374426948473059944800668853078499914203302415218210306604793953409219049464023331932539290125774291859261205833228043146631837738435573324772643507376293610194955940202741987084262071793061832637384829909590510002702220476937835703466385581199467306740800549623076056304969452518958250578098406141009319051235010344521724565626507840665295803728347057125187727892813766045017908928579620446414454539543504274282147878013860135443123238715590321994290045808369993765988251434906081414910481777512501960834726269631422579796864411909236666238945090196709163448210461025591026379066443543234269868646099232947236538632521979780908571459805310453136345574906247349931446471210465185114210717563228989813410216109144840668482489009853791247835689962836226383123043459166137872814699896366420547287721552949360721883649127427393291515113337512766794305085965733796479921331072978999225313521765692748982854142812172447392281240966306199771388302393950185247155100697080787188813204450763600049790649959035868002412774582877050985169298474186898666671517784951183918400829118966658362382207449681790738514691825332480976667474181163992455888112199412630983932672415658099706471887987813007420628409903042672540499315540505373811270531809339890779582441706625714538813056898477309312286348109741276314546111912135936302136242823653786996048400668426003197046168834814345484868854705513872075949411462752620670423114911352943364814242327076669041328334500081989157368579634001553483513857242662836692947213689338873345799784983207499350803815032590967178943308164030900887622947645653031063806984144189022210526684297814774010823904992980729165619063964465095128977818456923407366722949375901049388338356519823392586793135618124237678679494820475338766232933315451894356091307283218280921265916795875788391714022064968104571045217297763243552822048273125270970670981888357169922569524921152902272264306990742449287278371558559404078841752616843945380102643592143107369463585020032790163588584013374366956939585121313030795077720455178253823944653433821921345067540673108490509758135653600436933698633029470082204724530686678988692312919781752455788867192460631629771886035437245636470783374125603172677246549529850013077881747431612318417282544413717691015167525963157553313303469029992215477652628092660960218186574500838499213986075522310526959480712368625343944513053978321285011846223719367659968746517265947597917552000129449602105763295622358408104908186752883858325255876421370041989793716134413074290180401649957336925302472193071827854981491304201102659432008261908503197140527411816383230971316067800661354177120113281541277137168500097373690335261346173377908968164418179736590117965404727414349022897935230282341093622871808027723994701743384845969109293151443708946597403031496874418794654833170040237109073719632856321237537141447331150229287426503413944797018706606471438068813913101639306144898586899259566105841289604687757140395728076936313698678889949710873538974924094790734400475794725163256387275510496095189994663921892259235023867932794908367362122922624869986900215730919670931311845290587789606306291934220137449507634362990549704368464326564168169282997993550311419458074549070550629327377729821031667098875336877932374241902369068042886702199971442022769319959946915983443761153862726229967436988286047086492082265523127573822477949448229623742073573966820182428905777019244326250876193839236519544745638726543369344199531324563282842841301800812379423053262970868629324012103388023790638377409695197185032016305695813582536985058920903581351999186105172321139526208132966584879918838741226193234034555481646833258764340500509680951653882091204893068538166824399400742315586860678563775195974061418623111309480617457722062272702735849319721894058883081450870230658899394154663276124905789257324772089588244734456483357989139971088677353683279763871271061155693177037825477844620390469404902279456699724708681986175068578938623701832875741556623408248149754412690085895564358369156056672956293130338587502237336497596971127202492377849963295666229921884271047411926815070605362385461470501843792132353195944596552030388343858442148301644527392986214979872604636463525027640972642038450541695300340154385321056071910771316420858045408056256069739305436505372814927461764642587026765580204278083633977803721890730020928579644893623294313212906444385782694452681673775656324326491222492816575980066909860466813737020912648697491469988012139458193902967036440485414296746715083312694862079482784230457509973911372220902666810552636243838680121952586678565567001885413427880954632299321694752441480978912094279838282731475514042570813682216874633146080879567877978194321431050001181216242204112214813286154948259693516192145717804430117285670661922625203965418939639621107973724470991458973760362821975753075745914822368550842201405687421924708647669842671821341035726961593192953612682619310238952399719762221491901788442954228224944627120795366731599202297729193110544056601162689156120420118972800708960555672565890364079083118987804624030600293360928097770108678582281801766109041771750147532755921626969508026056977690504409478611615211994460964611473347805741970600958752430291967566751577670314953363766929512072114163153518108935235806893425554085351766037780548512644918103012235196116291177677362577673013566740246152492137245211942034149289961526278339782280838958424674795864543095060567242382445579427382754585453586179511622755497155563672811753380251499563194863951908479798231135245376218819335065899592499957605543392778655328440841010781138795673774555925549260189496606305746355117452398159241229775056139289824988209187451164062466430844319932022623492020822503484189030439698383284217111387251604678426170889351420248982167404101581758780552368980829079996098237954617871031382220502899880318048063665511379268709443774281240761722205789593368890131844227571041443832829581727215744900837020815923617284899459710736551337465646274187527264548370310901289527434456227997745650762253211608317893999816767398058018505655788980040114561581901747218836463621602972224955277503896289950907859114461018293434533431141603531906979699527907262203043954332200875862577722039518015719031895195059523870422489614314642650046564297138220717818503652576935204996812889750660433858524572184151783461596175094416992191116802872149802969026034174757847927610165694902008511110495127841413646940136820374659216385571631746143122324625621104676464044185826574698435568313247146167475314692802177022312000349302087654484324933922275892326286936814567463051765376944875986282753036864509700075755274215713013599119158979102849334405313265904600107488534269590071989586303000784376244151250855243206463674024637191609917622848988765184532894844132222804560764200044305443927898211521382618080858196203146933864799361111744225721546190901123835368109703093056726724781286814405439586489806742823899544360104173302396180939202800485833144757019494520736273022048022000664085675807884621326445047195531632307512454312431961303821574421027895773601122263148974378454377422387070509624861024226206462984281239483011684782600716214031538977533182419595369531538804315145113058523919304947769963165886371576140795808873733298599507198531412243358572803931165180750237990312810142915526580688962526693984199451885862450497542962873407359893003192468534875276758401427636570002210621911727062989718032068844421449431642139482752989142986190731131533702496662263337610164268805796360561128477786065107152677186126120394353860288020799732555094826147749187997950299147007856132646570939689761216752079060927877405369463132598369106524873420893735115670612791954486884642182986714864882427677627316704415940520503354741943758057445948723179513770175604358633868758249730470895434782493291100055967533009706543203346790320881327423889840569879596507445653792193984107461245216135933513017845281058455676439405714275871287638085168043737365162926941873952328367928533379865782168048338623794421588316239138272207714074130558882880828047137067796157878576920239521268509518351063169457740357984636999313385005149465794318561893090997543062550437747236979750101875487028695658827957074155654722787248812821530122148783030153009695665999436952507699665117856763941377894605856950586504918731243380979426772337768131244462523288126249584099671014115721725356623906903907915046728633922555834809996105452012803080033593594896616667282454291416056426499456121247200924139873681355773998658841698098636559043982646672351365138625693187548911326576753315658553461542222133055527492860667235330625311259063091002456442053341250260729609106404805751615288411831848948852504852546769335266036348803137968730964199281075580699641035412296033761784345177822639990272980059877633409058224790812334888630335126606451628158985510329288623149650806171817911370234587447004199643217853465123928182033168144187281397785675464061543331258969750726430499589194378967843127360693899880035329320456529414289253590331186755942637446201671253034381767451042239226599372558443978315080215200219384084361762195437269203598252718912140441294596858983395913982776479378647352032052462590577774316990846238926125526683124276051334144106920030950186878878394159184453571204098911220109597888645594135012838496758899794641412931305327536182823595946743225129178481451221366030514256616157650563233753257225540515187953512803032495639672850528368747209017035747728926064732876546393230278915515424041833650340215265267290520596000442449395462571005309674249433240192078242782294675738280086921753040822925125127596168351024050892046845950130603239176713506726539795551079076674351679191854242988353432749642631698412594645016261420399681783557294309983583972324713742733357345044466660574358403462082294290778543845866597751805130035936126406874287624604836620042732656210691411973985331904229701734810112388441903789823813777011849489760819350889641244254116140642895712379615243992961607362937393180867710097404872678121260756795477775861379196048146535138684257616694148865482494409747629339873403849394828301959012434538444879492699634869410931273554524918839226081162876993396646209899119119596490066492970568710000271578158636977679146949328626618419504758999595408183304408957484129129748538450881635351851565004971356939277287563209877246789094967120946519245230293028439959384036746673104125036054402120979715485601423299089905764388372458023443576150463401811592506640029704357303230319087171232150428087818344224349544630996533256167881134103311661534899435150504523551918561679091234151322756103548039135010712916118535463572621325341400084320219360178240076408607565600653025789413943638748312416694260038185374201270072029288013945699003474744328462898229161678114545299604316123418577206342291379287722238938946745804729750047041261594430356868205404461172960500291779048065143470670138282015104396150219314577938873393942476636656831098520252126166564279835885441308284739153103143605660364874741207405170680124178910599581045780837612480572481294658243964729023661582391602732299708325136088488839832334548568730466003493267147919950781716056803694337577805285802610737471390912005570869561679121085874734167216419984776419783282356675511317686568883512986916296325828170157729697942894945483158689610829506793363345532120895251929442957304359052314818736425213400666531250220007127625822339634514416310690668956567916680014149986192648948357950900600594598186483989927682437841051597963035626833949235763207551026328329916150400842578679465785618175147465482461349441232002508078613385549422115088670688519607512191284301905854844756604249527787026576013840655933832313200749879317693734533545991432215623035729066148715649241435604178289421185264817617340527606673347455491952617780689124474714160786702940229187282550229405691419691714520170967668866660477336670648292662965477012805939954450228789542404793777785606090986867995886393560356164848804724936337809847928553334789810252505417821692541771697709323306141665309467378624421755146684905968234816525406132082104398441363431300790378119867951818271106430301775401005095308428446046473684492692747098731972351248922977053804020574675456723149298953438749353000023603373521344835170820311295688969371656224578494061895782075291841084786784393295916879596307506115061707620433203266611539780176432121500503746285912745888365808352361204617333723932463998579098295889199072121373976406446961784770863924563156033111519805630847008919059575708614646130099753779695675267697541088732118263598692667738601218950443475037538609299013535943694438461826434114992506759922057715360576912082085687175623271938621408615871809675133206658134148290678732322060495189096577460335606511452634310445369104130953667727133365079729597929541930662681118692050625251986679213992059408956185484497738296912552543965390107400829933656980313598630072314620736002398738597086604538971258756747889471150563772828400837084348643857480092970989400030031415302383472607290127290306061760416669599093587431089554537588467578341298210673384916502663403183146661908672763690200625024618326675532727672190473927875177166695455943371608082762525512817816680118214374351456334940639201049462908993123711157266661709902047842286817666548970732019347435097459177328925549421855844282788369181052097343536870572495368754486865439420942639831891341848017725679620157873158552022899438122649797784333813853942455541422948314239873424853861881958352103266398324157017831116318118063104904530777396106213877202478056461991880140287438881287666364179180859134938441933408387352415806084007391282656095820500398580626309881981948883863734342133885191892984997990251526930710935448949544464280184388957735259874386162826626776246062630307265953002185200127911725532243397622258449001947085112884050854243461509235201750315227151627962869578130660446586747786745487301256887646404483218731196336111201216313696250855407077962981379241024841432931172941227000889182196140235659340295353041536168352887164494169366522311238857359389615512031261933944245289269942283010917907512501332105497671749284541696462723188182800224035727513662405321465701728467640131153513697365504963990504040398094931788657412232128621408008071000280597784808789631446797148073514252269345978277708003094526030684484425561882191019754374473435649325023033669967204033089124681360472231373359141725904679014391342266653512149824744039089312978854815369748743144930063172809805576693877318498780518086839177122996681676105824718343091433279426422349571561143208729258549216896241011382635631976623792640370256299977276752600386438347565199906742297495475674457880052841826723230625675986546190289975697600608336073429964008250698885043647734460909512504676705687607892075323640869593795678437988699868968151584939558071491547705469711647466392087269250358909379176509814873885176050342791362307599903883685347406044905078147768483017210311476218389091972478794801720176920925525846242282332662396016630879123965472591463280805363432358851798021033135678070630674361195143906363411179718830715641487645854070243167165735530967460632495388340251638671314324157889865565262880483532594100218186054349380772349033293804545033265703099064944753690391731738102801255461999221383053668552312556544446797125330740597640064106601219136303645226040620966086053299861638404948029076896121822129105655568621556837471115393419820246372457652964310185446847339535037432914555076196025237439766104591159901197954217088542417665236737042698824985921090074019877963087721776415462517056912653694364870698445896801306264221505758873806496959258070070296219475104650858046716799035968679481429138908967708764879409241500190366115988944910101787870837094849078123859847345595714680432940122877602016255861416630813934836163513544209308789109075103008711979183142321284257655987522609600848362328352171779933387455887438100129808264949857165205186055934171631510970954829452741934691833273323267575321905885619140830604276201150046532786784724543740927706776473565601861954469969795617158470993550812970137084407105810042853193193101193176698202972021998642350253154520869898043757987953365179380766682303511147975875064181577787543244770800737346736686911042103073712854497741226952719262869022179867085191070514986726058898247058956218036036846621544418328806552723660580512911735197598338649309588115726810761707453101548903138737566541900305347016983099920579482510038535688783661912247914521829762950801449573946373280783392070801952760089526806486138770711066216708264357633057526859199390678568862458754604586870163774435138757721419487018791376088360065461969989862307854109738428926693473176508372435846627970914662847678250661880747503633768359011111209512653365355116485243432784057576207675073115358726432991044228922484147520968193837187302024428762434712436725777080920352023971099235313824919358271945169814309850288812025553603099616541979722652705309224434185172773141082812892899576532413788092769771060866449274116627292221067405150468447509208616679097890423458809161345757848677752697913867942404509531471011181619769085310070345707207019681187368758697340913543393162270351726150848582985465826846014493629067360035225541683475024175741735651652443016318907005413616139973153395334811382184247070559964959998456356209649419467968734416383306424279548635663606894432937223362148234986327009989624263767430553332906910427215865169131362121652174549829806746657884048819304508884505957736639835661173169245216215528232093372548663915940779331894229553628076525390901766605706135675321532878083210947169750269336642822101082084982029479583459211303114735094685445167965262336511667814395187279342124202218619719920894136859123351653614911467146692900110334196936229141010701053898640864111492304945519332459889305005095479498448425745611449708137050105574842982998555707789235844830596417770828520723319305831502920236619915990898560703974920229687003614143669289074309880259669571125248035658492547872792794762956938710714329488943297231395496418344443321917252060124107622480459232394002177970320697783648124492843850564045078340550793072222291511488724982979812491119035556875706582209218469309870945915826009467799374353522190046187486434452828312087162192428627464118578929458720852446979256327509396018546400317745865254152650710620787901745285154584163811837174431705639342740669686592986037650041257235097428659718469062916066533679021572996101190166082892193714904054138673345266965853850494625165572148220103223017470044946095799066511814579825532678732883446202993235147028143489419225957800058361443408986369806400943882419471460119847943018363461492257704926285496950988974435218647504703733105935383637305547128004589692782359128541236837978495599786476470274744759576503203973640770502791050285108583677008838472374848471791977270730112106554889298182664519153500950015727744286244754614339304147440803109512289108133556944710150946473622333832260090113748550295446767694302104144801820111154230332169958082085908015899679443017794117935134587417597859531384559702971280572492336458657968129258983613287253172666911656925614789494601235888277000753962254408474989774587178853731001957263145917915254506659486160699967174557610159207354137753614389452152185851445918356978277436866911583063730012930693677555955902117534250935688212261432292566357249525795746598347648706691071427437825409247037363385690293232170859722614023672910682178182098665537677280247816547961412852286206712515356816415174796183783288124478727510753126928840825928703996457733174034218771295291677290402697463125295390631496962786662197844492151337075833913893631904253333873013966284397883685885479439531250049070164807579076009893538668056855336640355639513803599657707506799663176802531882405594445500958341703263429443802019669154538263556812633536451343141080793164526060873372125739878124582978952297062847544512829090298512022766179558827308816333829473472489956966860227868471711457771636754270384221058752420077769265836787451176238692175835559494948719511119920035327999985313947860985481869034588384934396278755578783826134532346947203793633475363064521128492419760883291799006067265113848402043128313646598325412207523386657058583958957048374994044322450118595635203996290039920966594114576216281329489897068613706976519196810931356416006982496353177209455699434276537863225769470111283356515788668434211246111481173434390021522980569220846728865576057175139093755308579545071920851906808982277751591557385808997759471776062148149462689762945984868789917981749792461004151266553458871928803810070692711728975318428750147332571173277952377520989632132913751323664488447274828180544959166498131189730322189197195960891148088289917075746735773213938629666968377817434533747204570716481215298545773764280408821433241119906769559463741279228447961951143777549919312932455879506199582236109333143605162776645671889790051398727373737450722343367980221382225450467681555274246690239255471863080196950113064717874936438725077461826733248462042696945553235016254752227299967024140277141938629143362269513847726108008742722365556671985539136156307720110644954337883708291171546140187036512061685797265274667588539681139544293315797076741049588682968941971884702393679067815351830945520175788015979580346669602942032383200313679098108341796243377152592827265277532586984707504874278599338492007929440427189239576946546951038735337682570234352538138112182233854549612685398405294905984341856204829042822439781011397623797815633738084990666237688810130999663968836814707870757317687973024968174395716968039482798299344495326402973709368270448597243669375555801854724662431742791672691714291374604387893051899091165894018435385189865601942924346423698077165713999684707250652489433917752081118986550817402494686030839405092873500811057241748141308124514495919457581723603202698838562327623298301176523073622745673240241021971727016260759150799451095755573454838657688351638886456216294923742848828279141977541349838756905088601324679729133731971968173845320258734946301021567070705192102803553851902149875489541666093122645916063029818127751771868420679905562716609209925354489630308709889164699977021627900660032249493563063200886904630300013611307499841827979529577393717329895230812689228954978117687040740317935837516742059214706863258665027176621648713428850055751698128894455696030305470964086114923022769147218176734107905386095965386646380574039689882657350381706203799002560346992913441752083313511369227769823156178705709871227596137032790147802091126885037880906917236210275022412023511157079166503736944820651819855529332029682648169867557542018420131012207305325928271744297053006280815043210563450430914023864454358107550905994966957923546129381123877701466942498431816951369650521993173953676914337001366810175492669942114140225595155917226797096819005253190581001774647529991775969511080712131675573501732098036673794914326322136125716146164644725415006208746803818850445681206107160696891328398081823804468629255390084626673863562560349069591838934155460668804812028474671492419343591237039849453493446501718782431476157929004677171173865262714818742175303116574629669817088729149755039808460463624312341107561632678463844660259932725389796714991862070733651348390129362471117349033003051862400261822389926827106825706955701616254010202873416718225828896733721565480362547209736952241037263132224176604567344730319350676132289879954555796923533546906737380947282535194813044057196732088552297564211908085442941499979092178999863712567396240124778184827985724969088611284084710070040628244615672278516353697534121260191782386817208767728977754279118069508014281791113042265092610044793491283078568471642798427201571631425425016268951933894239228913791136996058159988143001136919878758927777407267489547482575548398282339444146649986924698062935619322736633139149357747526711613662368810599098877111663583203992614586714948914190656956828381014342444492770791751842181201307205480294334450199188412119315817224110558278614094697551003908664270613371668458838161225245655371376832399043917321392786619708210098556780118063239271992896165968558604422090260428360594600001974006644020289009253371152161566421708666967880241609086634184833622911725900093664244235658544624807945571698147655371851615040787726650249128869088243900827718303747307327869181433332478771680259435083743776996529163642976522369573443239883823903159253588021916231892496836869714565483299174513533306683549663219174624687471384263334336582893202724462889312936300148205179903381044249826171143368950391017682550858700161056185570745007004919631863797880049440584738110846514377391761666216609719292162878016832903263700444146152696702028627573820903442888863646276946047706753106042959670463456564788321907195714211541785597078519386602462466936042936071932256752142173693239269180291917331352932605231467145032855264385133706562885175503431086041819172540530769652810638697752413371552343966484810079022002913662425107554855670333429714498199999029634502943101756680193444916549867888007613811612067375889658794997720835184569832862280772242526317607625477019125560884511130028164217319585299479827176063805183210724637683535337566252881341517742409618554549391774648049299856565562090846608734946344985695845721752805610390566609639360558848147313231713179572048255864307755953046604607807213565692610315149931088909218458622122175984353017057618048838392334438321989063972938849803763195236367855280162060223551526550439838694650459746355333374563899076031586712531582505260267669593699414877415181925667828015636832241331770025016388564240728856076184591356846518600022042403551990901343384835004813185930161575233374747647451229588126828473222300926174892508406424648903896039772307380414805182441064812270032567366897097204952825193973997092712514934860524249972501620524203302440801588587921576195699566932958679675321985859172004550187631587588885252944619549011587168156819465622188484311191530211893553307907756768441576927340359595427290810377502441770891049682742959455653354303888916880898238563182028160336466365340239762921407118973744102035927090603392217682941594403012759203047966538976040139240110410202890188647440529411325234754285291133044341874496912943265036352027290944081107694215751607648917542550779027994373366849202083471527504067011075970741537682532748665999095084142818009070005305680994144268244473245531986587739905808075418512973245590404845875232145718523649470895414429963013886917814948969138456259193545429403498889189710031155513658964287557685785819548859070601387100683838637661086227649725954473067542794988629551018338481253598019634658587575497108119263365251176975580109398931163421025778967038771493990259275677841336912326882870512007580907175989872545970115770921659311703874486313141044895812436773532178835493768541123632462069004027535883561867291958043565556364158883213767676245528215999460280849151865088238658114180756662093313751847511627862680189386581080696400041440661557943114308213765802761234640767847363033301269841563785763508526961540566397366061286065666605768260645375333936117266308632655815358467793470452583275032771594228732508224612393834083794286209248572791832170303782307174539250763949460401364210498070841641487863346016376181920897995771602823532706067986591445361043751317268923327627343911052492490997014987868620312912789292615249935466244868740122906658504675002563789778792717988887220743445265243157879362975799252407472732594849206209902334766753109473921135499106656963406584191140447808960541817715733368137309651415025086803745541800712791644927128616018195810273782693286169070128314112238949843685567510091828078647288727139525541415551425436822816147925718692995674456956962942649067366669950204894229735263057065814057169875314402413733804898538922423801218687619430752454837565698816496220557224250056067418283591348321267621467003183202587321083883911795994702680379975400497469370073674760929113894660374507820815564927177935386456811734316471610907631961060799765193391514530114678510145470072071623201070984893691412895584505221547642380871072988834093652230320815462897635500654849916599252351024651843495798743637969331100052302019641798503514881201647949577692999486433522842758772341643891642167360971431760341342955274922051157508861238119062520927826276977147493953383606205376862565956083355233924660970805620351458626830619695558221497311853959078685488993722204755920582259484729980939117742141263123172587015873468618458561245699247116638704501576971528718592851900076438509852144288887636612649999309289821145527480232359225260411264162438765686563983770567861768859756050494271899182480963886121935964921704282691513135187691238662800879542718835277801739051342388139743183736363934556893678171260496715098025213182322456925468428586652060451699419485551252527268028839033029635947380263223147469111689614468157087954098780604933291631307547310099355607760886032965775832595098176760066197672054459063565174337736865940484195912164245715258234885562509963883295176196485165786321597664077558585079509973133766544266745590690948311964890098615912299552439573670836119428618662570359386088164141977744596117235954846458481174548191688719417932685498767618005684401505853254813400888644491342009567194256010554539400103533538604262320481543373208467972753820592498684782170807789722611732477465956431659145645992405903684496065492111138447589239140148017657786767529544952115864230983823723517392431661607892717589589494012544194984298345270314881314190811056623181313758104701673344561718648020621762096633235465472350993877624424068804845960368125309855442988411785148239782522496508143072345280756389003146135097588781290863761921005463040075084594319372226028802484891538405752732562310537056004965852238207172600642175547285520337041352821979439286205954434910235351182045935498749030618309919947177592257186114023356675744759039114015666049486790070322156563176891100798432212281474568989404073510462249965217005406185380821751793165835905964825616430981585975058584886688862796310461017910485601883477307734335428795772544125739198237565160798781573191491055691792431145040722295509562531412345422164551897321869210667952018049922650072906528661663982371282763183331271902351098346255975254573274313125640695984150258638592516674467382325379075976715735698444877517615999240100311852365989125352698155787840130796824978511154320343574102225240614748491602103520928743484864813492447248709908397187263356561048474514112348864140917508118040852213955508726341407947283992036581575534118875947518281054030245286766327795236439494895410538939524634013032202633454970368969814175496945837586255877055121694240561465247287788901723589031269139847970673431972951361526299572325191939805725877614942976805673483534426512298743830883691946362530750886066825829008496642956589317126861878181544341935687271969112451899145759366131782297916526980367968081694124666297566828662171536522674338421470752204126837077184131345038829215428208721069829065042126633626315583079561401134781103141573264871710060552556706619080441687187908423978384708454795520489640793995612387641944592346317214615286232813054179265609172006361486551262199009295444916432490431071707724831793367620644897432066245931825463121017265486400493545878815113815335511124716740697416139060500591280587050064665411518033729302773838123284725217532503846272899914211718441117646513722803582607249663763240094183318226473070559408813387099080171978844281495760120415954849731627486408180223569473245422499505376798287191467629629421191393121238185672724525801220989616877025413423587775574708444564067178418700774345315397028248127155319653782311900914052465846831426535477470777532566652466035820831560387357073814756790749779360664627342571519232454017371427703129343292558727832741576552615540312696435888278634326307261072171766392071259119855246645288122165273342646025381371707114235909412942645871867779261008018559828592617204222986613644174992903090601821774850142373480718688638131674030883572133721693331757846886313053825753992263373380617818877383493971632722007171668346897949120238502494023005066711838293886450025573112870113385836678948168782848811380167917262260032418240897170788768125741612773194251424753539207128220405963320609904114177832841034396497267127147225238570818179917460511767438339922255563029107975510887935321222195799447784866016327822061031881083840721011865347922722693235917240849730819650487700687314638506284112720789614388898450243617162876347170524988021546798642352374013362195834453931328258695170273776094650489098796084290422544739865046587095981610985538772858662335521751814872573661932481322019387242642435240052328671027011192882129671029232193397023051472673142450844451401353951665423601845022579188999264702583577886380116255582239396045214726848203093313299452976710484397944998096991338860812526456386742911486740714365980887867787724819585148689096925800037506966575417011114731215348404859354667517725063580693544943749029514886544175541789104052433171727800759695083492916018406047103577935312225300122868238921237310465698770783247152833997699751882865382908170559929358653944852302859665155401825396936700208017892930848089351500441855209413230730149731401634395417155258527899452514415709314206380665428732812436201282044127525727269927597350086110813119063643790095212552520312968980915579224034512624311688968630542339997213317130337379130924617777693604925679335787939691780861642648693544194492355562752100683257242978995356511133771871309128753285610302934226674049312375892278976887205925771149183518041078284852539124310463947977658860217969409008722355356487273593858880492095404857531033446608852218795644695431008026965605473953201174869767825387602067962818847010964227971568219865924268882130210144186641799914459191911873299809825731695910916777733560911788534814659255918040840044433552047587014298108089871069899018330995396760160971127538657890748870525755175782067240153823399158159995458682749217056531339987513796118410357307893732475555232839470413867154474532876016464222621661865054034466012752846790846426205162920278830310158235431355886561942854745096290785763224455576617624706484259912747121005866192441869479161051453528608706986459630161745505736890580737859528625622811952369093250785580699773686175231061024407290246096391796847910683813265426927547606463083933881999651269481024055837968691153606943548533916938924191364631028663294306040883573540555252583880382115084800600699669312766808714991879548298175847395147835762193916275235911407411271895334106639360509171960492923736712638428603219261580139905112052411251685529084200297947446018100990730380838505119541627211051044997271481876046356706083839350681756670047061531482344336358257513166067358220808107033097342302684082928581142403351756513514105800226173160117225548717749581540176966248753158149215339867439198015342299002205287880045618658002298434575233778818716355777697685709266105938469222195688431629842876871092299429382201194805086103479113732210888192418450786179483716406549969339213377322591791512839489044217771712387866453014621425071888638631611368036949125460487388313525501976586791244748916164278589090041294956479664360770376038483976651445094279782910710886229175899109863579253341984127572656529164072490230584568827819490490047584410778894981395648110034596291524471545977734433978119537040526527423147104588646540922849593814947521888646186462036102295632556414468260808344129879322692250225427239443540584245021827155379665192137115240393425511065435264581863017598087658664543120782652640066928876610451071607806669619777035379649633226857592803162508104422995575569444541403286124688060894565319149643869310061770965349078397857135198378950607666491089044046464582563478955107040363833122165987879363317682281274700704860391755783293507988100216454676649474459902721671866153101208257695225842970610204071210073115963716463263917694139922425605265461152401668890540380635320866815440265716203401514293228300093854193144030093305245822196327864864143838720681450116206649455502954168743729585233132052556856626722893560064240329103074077444194538964517737323851267379664243320037454716654176543673718735771913100225420151501907985131701378226222214767863449192997071067608207727527540333342392626083176605234877295778479471833821454375837736281239875534205195872842598819357271106779324175430683752983142064767789857460845862630606064205053874553003698832106167949436680372682067129119490065311602494963865492058495201864027539457843025141234872995841434417390689261347188126281554492641747753325992356177046338979317496736020360110810225739999968144406225691720751975135729227988919357585501338034893549417645937032905474144487336156620024893023121819280224104707416457705309820821498209429976021807848305665926389581095393292935562661246100947144087546006457748209682107470734513631865356361210964301831759773400655716782113606008588019432933986929864113811947586419642829891750394916033806770664348615028629590290643457180833160287281146010971965480882465609245535519724017552591669403867693093373246025747912863252152686628747303609741868542949610551028918097753074457064643042779919582972387913677941778270859526443649143874027272793636867178601611437041263568117210778521248081192478905210745395959169557511016934319535306882051015879853213458255251330615000219810994686387225865980577775269742958718913074563440774091447161170118783965783662462410700518496426180243474080740535113490462723332041211277996132001627495547762657705605728047682049179846512074932827528280154332897663684663581862295672993925106597761695181276488858430238624296145729846591500485022634673355530779309635592731565553447368472372582061165132508702856645969122155377140315611814727206024022796723583517752715222265998956028347443057218699781224246325694638825541487069414136074078417684884239743152594783719416691733827074888812829422507593362585886143324302781513734753591504141478166621336547927207701861730843140085222375118332460308417503396462340666223584639761301914760313237683056046243363707652472684686347380571293465547740431205433627824268911859097318674335462812961488779693602358848899428157116786362769521735456276304935952309463335114620839663913929781105283154611520867103473033778168004339919618772826390844501272912493780243263608583142956985120156388154541220095871420323797835157777879681946945424048154679122752298668168117098557965758646972228833182707656816961457951396739528900774631445909331250466063633708729656017379363914749637305492369020350263201029077629951344712083262048477256077812022963180855258291419431738948882157554835787789216297229449410330187427271931611143274798546385184091287693504604953794512893769934358580482917920789979684598173733022080083971056374025009568714881520071877066518372821417831354993628505295391620887796856723138577251622038083527496087290198228532640674484990486886445740630009993950712741366125350920283533044127720761792152347185677782264426714100101043758434488890160643407297457883600303381379369199599989432288426140377972432610496403196343340755318065322872851739702030276653062770438779188955531044209794009588536303040111692153076757619341209627616987925854586561583493843178817414661771791421977413442838625180776833164277023748672622721015603205534962126637902695603329969027823624192881191817845126635276078841275846815306795644334663314629518406615684512746092393535839125881917901737988527034376308968287971237978966753123586642374883462190338340309998130714975653115283789088475669055369854121083286808433850740526577101594671936362769909978265426993516295952361236768794765753674445541028363731494294808719695926927908313740938264298349448856250706639006338412582090067293645296821252571331178483692652181958978697148478057843934940102933978071599361921743709049965656690376482879064720029742365523881417648989291392077632851990059971062179381104778395484269851230560046317305356007453699073514890586309225213821518472878474926076314416703057165401564837389024031013554910111625547473049930974067434866821834199924010345414627436978508535348262157494146153970629264291394323259017833840050065183209845765860490571591806339581677800383937456191782288804302329759157515754800735567445137048065054892271972733124206851078390303165397259880951970192745986140765864705016560519151760356492105084743474097430549242967757344149441707600287512018391798140044218165736506181801151195536030321562201261164688385017293111668452063568230769491031319263699715813763152466988590927622624521846434550675597028011085825661530894204882049637532155688045409485203342157568968091530891347456291771225669651390121128964420516519552448331626672095826085892057805034627402661634102921653399978711061993154678933302809769197726501971963822134501086869535312353287156271902512975170702550827601347432761258521686686570230132677312853064820565385797164720544438238134368017526112538800804142996775342970140875377002542145068332855231248772970455384909001006125249131090879372100936379157411209267103246139574126506203079268004924840226558420702152805129091425351605147869014945736803641254514389698788318047872648607604258472558155290494674573138109495940867287071809653255978212904195141534998919128068104743482661570287406468688783886679264065644628624811924415058791036892141523506997924865583446812161657892836102691827042725699226956955749733609850739574992758125532113093469111573075339108264326871624934821028572826879548875838595736069637279504417472336592080718498645329304753785819431914172280346378320792399928916270644534205415089327118137207947059998563055959695828639354921571290083561476375567906726061715310390902435931431520936110224938235612300286297188979010060115016111878978601475743757963924196100557051505083750803262186680847029388949437231760598779086833861198862701600015469514655116392671496195619611146373911464796864500768830089114396837381035440508968080644630000112522042953394264234694749060044799895752164092471946060511475953572553415092566762672992065183044414617691823260238137800703971020230376496787588032806499908797834567392066374645926442164516552401669738767234739244614497898406173534059085714732276506004012342279327244735790288765387378191520697172721609595303292871844049873836783767596006313933785647099066231833486889700768259851079458166731791132532081259629361404328875900187060536306731874253016034420533029564685532476117904084354431998901153402612135504220812159366417439444427514839140282953240664738579678763890076114101549995405627252522896905994110841305247486018250180460589882278381021779515925269768961346621525230106705636994658955087790278426034496099726631036263418899535158388171537976118679451736069299586164247947908673163982561160699778353971851521004553817779067172631772731758568161559096382098026351942244150571657703068303218329158069416083385422912805638469143184333656410620689852604315211973532384692738763571584933605588775738866433438966039009098678934800436499380881129022455162884401835062807428764406849644242504375581740210545952292346137850355236199759908916056486059474575743062302981202976482118143573635119688660521931845910138045980733285627106276771653723948523789928064022517915918389767977256281519676867415416671577956774017550088373920231296324564156578160416194330699808598519320339726457253951578274775939547233422704111951208393292672950456490623460490051870242873576502957186987897795090706270668686897923567065433655143079605516614783549847211954279021545021553393510910087765325516906716525859980755304903322927485139940858082901001429953599484023213379196316215997342241243851435850334304608308823361042497602104392524953056948363096153290627533945238285862794141648445875723118154638144822167499636919000366412994120327083626069494684450758166824886611029756041433606303412553702200833305856882413257182816744033576614728227819644416366114655723050440363980198582817087929136743463915666090397263514972663909684832217772159347087555443286664875580111668381154113948358897010176146443280029742158292419105850290254771958771612005493411356615620933767959598705488198736844653360419649432560687955583757820733006069555645978601397237422581824868735554155017696309958492433581445688776614262491808064765085361303172616243187502689895909113900862729724720482429758375485058664657650125500727541592882243498176430796592908659294857887917009441956870791117836656623545552776552292815492522820149131764026853412725330620992519953544023096303822288442175208543038173234492626007042652594818875294426100345948326601440229168884297546950560682061417789166117712070952441637110259578576535024155702238920245982228008584151704806524483638069121814289111042493988859833170438210992361711349169421499083424447183212251845247466179183449010828612664157997828530693078773294923310150196820246262711925218796937120203700340418482894398618831163935803410099160285641534771206223154406823551243904726788049827015494014735877777627328508185290187234098037434092419472526462570339601380819429184339140988382227635344519909387193968485215698139289839034866287755903593897745134100810923112262971481022735723220929009388474918817360920778131413915541932611810432407949059999487805215808334608022090560942465015009600502482454985670995567256602100514211378245858170872020231739663229768621112987436427522726565165702021446894861096857067603270400715673452044428016107056148789199440004856503259373946542474471881409605165234358832572890787525987697619331069995039372192254082903681039934847772674117180367739161677313835421555253993239826880518898676565287003973967441779185870242377003390692005468662017322957871247221587100006680490854707565784459666580108524047474020438293460341076422256500075936034983697904661633426188698619774652442731508230354366857195270500700591287599192792008334886112459558267616968684988258668173600886254989086057331186177255251447635918421013177968831346117675974006081938970372701230616956006367453535154950993828741720623692382826043070947002394263701854991610587052129920398572101831934299956745807060103890267402799722110201692193770736473691898172208676455765827372602370532638766496754017688994034453464565140140324935329957528862351459520649442158505207155246723555591356135307768862881942018142074071282386089451677533307297729883375960531192714262412784930851106503145469021706283976826031218828215227036109684266455786234207860887378988072614894081105779766782846448645938015392484831668335863564841013671369034852996901186318127144982164583339518365549250808711595795634985854559691959945863306639879562875872250440089888030607457064121427171480243075654500307319561219744520630484379723174203667925479417852806015379135362940325060078131728187370418002373848820756687418119368960562198438444913472269885847464140485921286958609893558743730807661225203442441827322184233412848511303490980067197050664742564209813890931925986418707394568116587277132746087961049247809501341372230658211356288595586097669019801297161939348649492856242515146771522626930605741251762987064939073833866455746459389552446832168362157150936034155826258732411037529066313478768784050817281706007975187319657884539173120395768149157197922017941398170608260257104967956330079387061942316566066869470930198396782783784991830103852130643650657064088888819385689539082888380119347624790443274281079326309156569055779294979423859862945177701415020217681998040370200366272136408535658030110527791325475659892734694740679121185458599684702041663446045188485451339121806214796146603272755543571871520610721015527840836965121636475586722566026659227155062477108390077390150457007546693074467831565422594235216903834222335358756503762284024312954270863923514832291634450692958200345396830354637116766665031231416222867921866689895376338891533525920066761588984361563907029783511464835557642010267041226743706264304642267158994431621737829630976654269023039322979402887456246209834503687334686771618616891798449603611401289209999842946371853925410132534566301682119085072955595959731960827748034404326706372576337962008463170544562550520319648088703229605770598635696178567911601978164231774549507795904184822573239067190729201599740073731631550972312717748725921990088074708755384615658587255736694713849316340500813436807749605183488517804562109217993037263456786365955182191116980118100157205781056596933635792851800655612000961268556141609697259726573299872390140056267788340919962549420303020254980939400449028729491070619269296957267338253404463649409574789859743871297446788044901310797976249241434700222899677452547716275329855587944385594706567695249871819795915275904247804046514718223805986085930446634242308994092625133522698397408627995392841816981053376891645123776382189811096867887190291651936969094991765045418144984292216619359331775214905439446699597314074395721989507368859413577622233903191594623826963565471013393404572158271326687454089716725996814407958498707032658787656806612644856299851387389177443394923757250771438681441680923272475206405610731474731996560803266553889951313480448894800223075394677000835338194331234500448720570009795333539515842745970171704117468988326256437158356785391557754946591935911367802874692020559430987250616657404050070766941626510816438827235633360004952459627404291751653746267361289385929201325213816221486065001956725977028249810943206812962119781677166072031357921435401365199307901170444789921139941324275608368528671888862797357264331074757124192630994964135968300297360930393940660408616529588378682852070962791779871720751813270154456496741766504002240962046026691156004261530730399781615988991904648268724947904523945238944053774209941641843737328470541511963650731833692095109619746157325814476683652546305664477013622546770491733186537803408789937261300830804739156567602880363853613980676249754762203687845573488590524846638157684578902119413051606736601018319190465086969474376724366662994958185471907529334839480891756578074504362408446342500634943946285241224510378937893694333218610222644322179974524500245701708290955858577431511321419640425911283101042991838901691142181620023402390992497019462064210271028148217797926666037517706953669653754569448241198580961596551363385990459814445975661467225482430238098891199247434477717330059858429908531017801808037330993112733188470706025105099356323985442140992332840275464022166551154778189074995577332093840166332663808614255762154106822587043483172790708989197291026040732091628809650577195443595366509560761906855511618105962115129672528352616355683388713157404909383639393044908406489681382627826226145418179843158429932337630487207629600269457149312757343684606093539914500056726401889456843029429674594846726631764187003712249473577894708821777024054679341874475861094746571279662894721128588750649384934734700028304934376741367508041674836825688894937244065942525332282490557241600279168339279386132541356292700665209569364143255984050189131872331948213544671160495380980477444391206620188041729233538553034324082457807125350515954493550122403453957856751698527191706826891426950776159489724390848717625166718573274105144237480004206797553280702035883806106719100322483807233086974381202747058617726694527156093540604121191366678658984232251680005004225025402841982852539869908270941905291000314712329386150768439050550812338265471039434645126578126047540833676965695235004499631844647203364725245911687518111270712393186254541369002014703800171553082081332756589826543309394306139178714940668277637908983175262583671927912702366504996514539031909167936133134579728933592758077404665117807477317766305449912118849877962045873750556747013448124238984003940892337246270159745042402340218563983335898338572826066176601954858369921879893282522713108295927023286053105427303729571717905117196846340222162665031745995485572155407899651568026417930535068090912652687414972024638698391065568229055436176291182387523771002810109666548839950837950815845131419562569673083935141251902913136696529611510796754119166955666933862077223609818239645233001953777146062703982550046451132994473519604165925682371746837753373348176906423693167234967711224189971845650682155481606113944943766854741081164654001417689399445739674662487235778935292417233013487790343038122824937280766774151509500676872983131530203986212024072980250051758831585037915594873263291849016045522653138661576505859276295401222168818068120966247799832268651333869990307389987471582498395558684131890932164362517373534537029577344802015066594624433109893616359470603626273201227471779404344822874333612461015395752269260424536764556150222238129060603665807356089432306158048838592813514486300891713048935529015189213264740217243014014238160192681232539507883932384141509071479007972786116905234807591155477112635419388297154128572415583905637014940302249030400010207230717325601992982557465390005272933773567157234703370255574789769083002482004867807803231943975289670035657159908606933224969373627246507103823296920830488040556037418194819996709600225515648794007842346023522957716049120847050938647600415963660403906589995084212288534175203616187482585091311884719979698973356343093315556848323739114645986527627127058189015923972217860802189447201829864664347644032227975627164036206278991506932959171560530692771714553151862389717962851672238481528094821239872857304752332834365964706662002226691109340908262933058880281268831099474434027983446557764444608660904230313587254488136592087263112587899740541603222564110102211587756032902311150336007840819690495052644760064188232833573288853739333096381476366281512067020298867173766292662064184396052376915674165887561521865993071107967644860842832834642432981559279143124646606947216983955679739115174088874010072271096226232013269288834346654914986279536996043105956483309590698607562151439196824813620182951860089651033681641420064788118198655109795870671362080319402602801111520709401819631040340697156652414891770834446366704691729441329878298366674981105424488590446113626467634266771375027653604765359731655338457047195127417924157630845805949030633894536107024435458571916874162728744219472484775168826083098060899545521740389449618539724337779066777480051912436421763421067808398731075558778797373288494328848365283819538125253229161347976751143781642859069744101053084843767138828320462253248271666199831869111165953940118085424658129103723357225236997980371882990074745536793062693894083904652560857469789661528287817750195899749945815032410511820069267337440645233698720572754718474902253123072327974228826711124038274544867367592949382255577219887085590115786016098386731435962425483436276731728226196006960889517082095575530041292041590313594966608802717411130143279436426618425664025988350974349402137994969224038003057307800523141658630410825906047938006617672878861358591422869695733107438316723370724524363590030801858702440403305463596167700847002390700359317620737207621259107296534231829328496378665499496841558201252917618927367393410161806898482599374182365746946910412006276844110159738827221309443436204981276373042395966200580420406511736528202484849201526480671816284444130638016834497214886906010616038003171741122897115215615260891353527795588000284537202008930608673498074883263387360575850877200348042677063665269021501536789759724617893005579551798217856844182547581677790341012349100379882361365713758841119552048170035107561501122247849688000375737334614584655350093021958233385868878934063250391603211961553860579351145248695902151173889043824262835713819143797288028162819499414475715955270721124905880398354583723742097568488998676015828123383534080679448953449627346345933323797762843073800620160639186551907030305783426960545644708138502408841538674977515726671534671468816059961959370261385891515542353319934549999618002198453348213115306309009309400981772194443799961672282039228565170279437099454911849276485102200195358246544669575139367410886702863790613920895783793363754021104672243901560451587677462723390117739462377498710366330377451521675646490758045018242530489507015178350229067418397145995627670908418814726842077397122429013701490730213464723824256715726142229945757944152417603878652746742421140161063587047260744996019258325315690027194022640684781446859434059162106761476644594833492756431891436566156598022836266602509364454312489618629769283953487546557799330364316191161327706930240086239959176764771814998150848525019332646565227782459327584366261416278446800107329848517465551431996561436033875854199127750546419907200967279512564839196195197534225352538939680306363899926407117902869799093447770977025942906519801085806535610770886627370772302584474855219586316301207289343033139696712371462345401366560845092400068788947156507026127618074520458224392003293023864286490075454744708104027661562515783590108079863537763415595039478756273870815397215419350869437630767915459747508998264105032365414765801491731293265718311600419794750087855920650749065950884168566161150869397058336016053429534377777429578127186124057117630126772156321315321884036658603640831937869358879171650220657369581914570382904781251043180054562098017269495482095357424460716385971055294200055840153120351982174419765676150537155124772344356523771935213450980777722733790575388592055492565522183881174882427793688210268240185147457171456839949445111935096767194576742267801130814975645264315535486650368501501795085601990259207549760278018336682655482122844791599040818357206615729504432819576546992135734427225498657072233080541682912724396645456397511973367667523164114221086516338110900534295374199073267922955125512216006403104916124899268401636691796756333303952760522242315217500852075894364138491113182206739735027349095965260490973757799937524443620346719692714992887854644657163310376885479712263741766393743832853617798293739486528686850550790824184056919844095345408468296312512444463081075810562656794593896966029147252726107520430823701210315091285440275858505696794972524840420498699332775860758906188296711734122291256675722095401816858372687492043026402021618202895996306016805899896637649603495141887238595507507896759387962133237231713928407432138001340066243832320542036875734978978643185770619157959181397140355422931735199770010164764171512272078020908595806106381198753571690750444702627068177911334899981890843198403597837453941628036783953092834865806958072943072364282377340245889693239581119049914263947777041586471843782306083728313781815177063517143354649763083670589841062694226261444406989167481328858525510544091354986774699602770115356068926796284748204530043835911661087514798964439380225981128145799296045608151547804200035762059307904624847805059187209964331457715219794908210155806372195536130167448240369109233898870006697762249727355225834267416358650611980040784426866338996955018780389956835294084968104935200545447333623380142901487455135217018897011255340664061958344871619261194460581257812296585808754510777294125069304538975047602015102982459342801739142780478517816784587047999600783507400249770598722906817439151226496469715028754741836659655618654786536428584951792581751005278532049407930891719859462153229882656779847765231977835652419044045343078485121243541275458293154046992068359894252763560143434244863638269816303479758672766104184181260308359160717601821586620317371169703648949906301242175717153027273428513962505035974758562865126943501140145281827751714396894446452155030942899479468204833785819290491705197952202221029108942037139034530915037699983139078018482846091978181273738303931142399951064624367563371777210364322386121486804897489700243557259249106453202736722919237219765738295462229255009257139080482433699193194459709223802697750420562771163028893954229555974587966902683283245812593797848363012332344388449905526049094575147566482052251825488326085751022364178077060298332096604042288312985840296686733666956427751965944327809561163434628684831615733382327991721700234653317097790499135461269073670027432280688014540859160224127645056667538584005984391361658100121986508438302394252983575377167274828078742346504583194550398850995029096064611933002208783755839919021075624731170461533114990258889892084283563839499630466410786625325631489026368884521942149210094590040977239874848306444414290794001910770349841071689949479626447820184168630699176532302835660668996304751487843556144482137672869958025915359108367394320433300867646549111399523330292845431923357946733600929811281112636691179274413879869251959365711276976393706081644337758377436237411643570304054205923001175658544276098232119648996559103085560507417845163332678039253846398346952833230280659326225818597728303076372405559943239465664974016118113815860254004862089720564357190824701373533362059666900311349139526409631747413190602632751230298341986398983130866821749415331389198611497233162190610444433016705555538727557747688543162885177421753444135700182988172531631522770762175013990287343114008451266058499988080826887173142730636655761528866260124166029112023362240844543337664379936234464729608601521017819917550594863306521598457445365091011299822553325264255072789251465496991402683583238260111129871473331097111014590823357009585613853614336012193724849879910220139776090585829022827628251704161655634487967900817445839572815145702706823871930788077679282068642809458644693307421572377218671171676831589608637694466863732786217769065959331736615462402287163581662797468682874295895384057184429407509212410237203441281936055668389241084504598395359487542731255342467508069586629065146499551962915486786337001485375438848013009831021253367721989368137217839835036478476775723747216381434310969664817587690422415946408112558057464972537929443233289700018729755082047562276246285883554329583786553138864424252867274305036189374101102607472271848881078164855006452183060505511538964278456308560608024474962601510833716223646990088368134762628908158110385900193399192836835289664577903972502120074546466959791000237410442651000562293499293461671292365311596225285773360206616929758822191838335826807289427390620238386316698375458588486977230140051112082912780018671611631229466053719920606394656733154183521062657496103055722032359301659601092444465548452817793565020887567743459461755047751897824398566622467145845313293327725996494978129581641363795755157296597714874369033474268619866796492433783932702591109075251282685357895565553916441041901472848748104142753383900088320316730195513069855962552312285246362665157772374993288034433186826267684723523390851055066726254985392079446997965900266537774906444134508098789917211177545328950409456890604869148523897783808499195283502084294695042213595522825634745586465541347401558219735234445033104119197236973705150155917621951777508202163235362640016672692563713603602770923759448329145518867168325964955281347568440371387545209144241890884782824759200473193128374454368809781851900094704101545100436844846710487988647614913714247079612474848914552739623498263952649114501772254046093261206837311964501816401025648838942929310190699883112684700314357370507124364224482959338806659439647500053702957664157338605035194047201134044442226961864830962494626707338676414996469934232169163158112062622240550886150829860088654695514723358800012733669380474885299985802662184129679553111983131533749767360097558918362026806417575336703428824836651236115511393645910202960306077750901970004196662993806655307557346659981059337732073182161988322724267230467123608534477000289759233679396738580300362955534800542264309666278368515087013061030657524157032944981636640802585745176917572987968907125034078000290515625359372077501039689451759751021779068734995589366843515088898097790565232012521168626833230208045816875988615686680215960823921998293991904236467928857684933901235085871404851312979264986371032428076153411549979282690521789754223101255255975898537611696344434036853672631006267634687645310850627672805349410833302387456017694365250392200224064562834923715734832596309407923622925530703940384605413879800663421779085594766152385523883461039904863791092728222376087659966014420749651209732820459300256500654512913453155332305843831451497625113031959389848532551590221501510939946216891072312216721955559575625907045405465970345410971064882309693065138349761174807871312173207416145917609479528360842213037501180679263218432261891067053760311753547452425337266488208579192824081939091346756366045509263549347104578783244789974739091378428714452673420490616685177664817447886667007889519343979225209230974562499987940943344873229717041019307584267909668165960312057193368915166747386940438612557573039166032411974683270685607570714728902868997018166712919171390489551502899556593272587556717981463780950152864719539033503888226198049276745983813918553406466883719944000378084499304991456661545088537085914016208672815007172779603835832916512213549913614874376876828514803880646310100016546540661704244246868733215176709732188176503702103951792596435261356774544672636773201171852567780661000320297928396629408393997268040519408071231668649070709994770229286833920451347275591879439185032596867800620253018727605009792759374159376856357122626867155234789735623496763881541721039734679819834611572422458586425266055688134332589884612184866255957934593103745603410266138370077967014925905692568485571446864735467367629495663700899673090130890115214411612973554801787043753957497461928060474949434201664371940574051459695269390256591691199168411382932165425605989234177484090948062783589892561068364662917153271046371290616903544403910694672788128019586567132260498684289218134161902597102420413948373945581758324396552619960583548226405806153754360768872557548282385532233384524385683637971743618426001920253066850926282914111722057593951388809944306969007417932994820895259148679376364225355754856055466043797628543148848231906904857256514278373346237017744299452297553933745495448157952588773041319104783665272839688143198270387331847945714325450314756641839286455937647025001838727583098792686316007251297693502166677247852814232639686067474189801242635018030334128020578344963859365717777014807632847368832408732976495732197655830263282659320165953829045794100429526957679373649047065153658179725433225062381156840675878117782475838915050849882472587288535289426486805722724094836403750256389872658917319320274460569758654035638961789805876710714438412430042345160857803791164551372597004879098294696185361457863761471438975639121846595543060898142219676884717378818080502764062712923161995412801356433588538204050243299202404317615541546469344596645137784494281023081562726580560931297559263181585465334699941165061017588794933027484326254124387167656759047683056872307481518277727432248989789853487130585963632056546745309366046953009101995845399248580812203694531898317503621925330187661314344567724995323741442534502123737683612457892077012470243238718551925404561817321295068351995845796538826314813361841883208554073492457471533585685219529728309081594263600904761133536386239880630385148888286166626129797733700880193334599828915584065060059409650928449992895293022224910335966258765537022932339176465972846396760933523479411724151663872733249187046844149039211047122973200773485843881046626815054119610384686454819906821465032103862626783726203350514088310312972041321301509548562759662933787613843121819167603248503431978719685399060681415356519382867251533553213558385999813157240559302516598164698314298597724897081054654261714165670906320922167210420344519183609522512007628751374021533086251868475009141333219332986051090995865403540198039651833725778505911063934056139372812314612950683180035076241988239216799646096265175610893294766446271137123906928462582989269966920010982818726413791505313589523456017258660264987867271483908736677542388535519771997523112914948430667756666236479957519505027491200188036384027417530940652192295186178635891508368303899558436089183733532458528324743457261573906072693681737344464169055636939763083478452635032485711767239699085972262927462893224002382022405475586637705156289498297687165944143449265661708022722309698414266612596212432196149186865551662816305124233889728339645592824820948668820601255959278278660065815011844845246754140613623966320270898111395444335265541092764348792397136097850207947335518329454568216929054689300544416978569719768418978021152013997308284100323334848607096661077867202581232937805859500001005124131321653130588966781450179531649309756142552558487470011523369512052042412026191853431012783698951310832703032566822643302623618525164521948799057442020842676992399442820039968940002370099420925163676243385642705269301011460267851495702197239501545501420413050942001802890937305801954311982563528150845209051613004235200091296603481474812335718120915600116528001333524649042617440520010818618016078426209230025137056467719103194415163845383517809090812096525194839339563813475416137796187140335117537893788360568749189253362623077707540375691127271486709659901690649985350061150429207782155787995732392524195061237533627177454169092764076420231397468780181296413704794033581806964255361275664246684541524107703079262913357901129007169603326881568696721238603688483445855942225347167503796812290980530580827973703162029237228796596986989730057165239324690114763386297895394724471839311999836811723446350655727289666725772322003472787115455569759278717449228653498867958124427209721461816405848807906650661588348370665783729866909465809626882299719347581658948401827917042289568620548185046972844601785448029469265640739381870775031864591689297946603035254434913317163291065505494022476315309979910326769687398674654179028910955962891351953202866270049873100496126191613661323677923532265386999201572632335033880922893883475194613279637829661956896337241364726618040214499293769286316373719524918333085302571246977870485833250534180407514404137565853542098003561897489010586379489457847225416468244027194160416797252778384925385907468566213409121818036534215636293258604162243558273628416038924285980967751563223031024767803120808216647571338270808726594485944270605137825179042746370004436140128445669251793057243806450550185905615989444020398821530143174976314312483382581976135084608086601678053384453540103246642521387959266029122856309989781938337361942741100093889475857599627082519000360242430690283348405347897293186871933614794736944276530073521840651107164787232840638994933843139865479463663609754516905507658335639917566679067288719340370861635159983457780006348183815319211358320051866257364392051384219779400837272540153757828669440681397355436983227752580536526383232569845986067455841166793527141695131137691311610085921288040792284225050863670139442598674783106483095084971324636419506876639125097221151714176908777182385059742725199177091882527116338936887572907013233556937014434097637829243559106292057162815613661247430474796480489021409317997493267261487615086849001603546974588519093565231773774273552915708730834274253369723031768368637083019265572853266819333919524444132807131858535787545647346889768577338186571490303823165293561096261191895613915340300803308039241409172639820636536599636973551195601374990739551757782747062021833242619634327749510661545479990110850373679108311060521941569838373753624858525384031219353481607937119635720679211917415785123429996526600038804988531222656736559361582617798010294428411448224297704088462208450219575236519039509000175822123987875336036139407140091394112999325287751526936725589311193959857227407650870673536184473702106498354734908864309876055411182267027015666113820306376947254758545438100903982758203608982639872127063912584320980617666309765387299672814815893888348326483604937981885378363769393878023427012619113407778301159718560611135723831146062459331805722665439036356586380064961875198234286240901494117450049729631704835975011703247809296946601229937416655871062436081665027863980180378419041967380214700130502832695404972227226151872930958869475215333029272532179949023182863750107907367076497278321278880957716409370710901962917498146269429669695124047105481896262771203850995298141212581227110757334665352104633580661792890227560902754865099609621994744895620878054504774819528179620778288963463443302662147780754677847595483600307075329372879046783970788100442416074892564361335182917533468331217207264070947675926304276391036845125533202955282188207479081512348168502363687120670056667929252413954494400454457694447633390848090243311683794645318210817059016827157014016937918327130722910026744626462222314351729178050841261904562236373269787634863850559768302447008665879323865737265887562140064375442725436468050154245629324052655636935944291872182948151641474698015571749339793110333698568933202823526447225968043668348231556692104259434880653227916771635373986928872676999319268138467044658148949596317147291857911257657042048867595977520277745662576164996243432169673719249657018043341225937845558894696665653852417738429590761008932985166400416236433952231320738442896371430090227196057704176365293491116839225318090457050802867672586283283997717238658744751296098341280088735325461999932441183540421152345165277685124123708002212322086059304509308547401322111773669248555174027061196596768117229097437221921093639456315249287313790705884708664122060186760644047586030132842823826062679391845835442977062191351432686781256414777516782069169845164533351012760886371251029836881729350734845943595376696250336848089882322265449245498553597489189609157500813670768689622895293849230546952872842609252527796241697588969505110471470343659475873312330769698874280223389900778181698152666008027069775913475831690776423034278896010782387345156656138898572546736417035076199838623825821002053257744905779257298061564794327745809495657652467125096870559727003777544862004080195723972556838665450894292922676947142843797774038373939882087033098731967729005217731183419677879428953389781594121837129793217903599812451702440866755171127597600610024317257971447798835667035647774524587095136355884726265432524379267750107760808435116436836488531821933699777745399782789051051048159287341677776006495168757267461482090102421866492612667581239242376751580430772171554079521241652818415110360781856970384864246441364065680026226423115969806356946114327765506846681138389463513954574326570179431944741213967296807024234008109180103644527249105639197743275582928513462704043788486284356769060771831612176419037572356183461902306213718573270450538593015662914650628946593392429159862884442846659465470048747006924323824889457557470415412452192976815960658985336098380359174970112322306189090228730912300893865737530346940568774151648815604334974341263420523284598924027778385725138102852127224166891821494227563822402414054592736578019390740425745162526031263804509488745249712061406391939556867009859489387999607720791643799842503860896494328612721065889875800761077665814562654422117024391101972901549145408652160947196921557839385926167451666328037895722944077823162764541833905671892871634579141227038854961043446330961923701212890000168389367932931228204465606395750816718848658770200176643765472142088459317058961779369262237747270336442975556549522190274653201025238686262509329167715547104451833178698431766875062408327592182093700591849237817727094659012925854684315336358867303442533179294614498575804130062236065402357830433953606535510753828598518907925299480432674318590693607836028209172639144014383533795640994773082434609437491014032294657727993306196471658626367456595047043065185804815161458699492968195441738843695484567808059611850976845744135289274508743430032853814388485363570286209988323928327660901605309634826541489569334246939734744321273017043544258299618223381482181707601502683827915219669198651336474476210681925277563303866691096273687235495306470465379495678998886003256986054917801033976584835016928579876351319148272675499164746366248551409997079846197270458428640446854655034296132769607757203053881416933356014885832722079539281227288937970834321478189474466156581085275186229816084559812411424932520569998128363515231672158566060551805204953270396176963516673449475811664842141300319928599082037442339461435438078481581965728206207031558741730815785610176418578485325672259129991924075662404804386051650553987894685752232210346840951692717974498588996465140148423572866484917849096842937751012428462329166890562380254061318558579684421783123347231056606607084463181420540801316103417462857064956992936236419691579559804689606950924401591534114464845458039685366128831924495552518810367984533465355363450478442541469049463822910447950833868872208293920842318144148976080353311637803123799743802624032840202195463863166101892686094530940993384092426347569518130565876622136189689396522276543580507028241367746645266663037062789793087287349796440392766978571031698087274373106615285064240174729235509426587375490827931997472918230727180694056563226420169024710796250768358423839101082756891081995539070090856393939779930278146599131260518663298236074138907347165921393260475525911574720535619378116667248954136703261679770291629664292859862510279053094411663445895707454389098762859375719897334434686395505135014527320133852828185561289095543636230043807705624178885138954697021970409735661255462897601115253994194135157512565333779097610894826241623914523226466184699355391411550014209275875909992181204291746622733855650528405844749704305689475778320426204626862119750164826280787846258688147101185919560014247207475546046858830913834125628031395244766187136988899571646206776579397289168838730550364995878913083093505114731133521475524150625713896311010207105469818805339228094268232246615497066794291785973494134683569768427991002831850843700889845373601867173535910654142825118622858762595655373689689624590789242930643186579821705198180525933444904984926824937474306713784422551523798235757025885467991088864088517863927354421880487949462286442800359895045397038861933479195972057884725024110787579632791110426653434964358805573928289254335755515630761579622068751491459860869259957345185568139096447276651525697407317870163534315100175012335587556526440298322707648989161286082171259120305561626159982302168867344375788265386274951776832828514830147065363172702684677781836645725936486769965144247528923477683930173311283901789369702218336388433522147360155194610279477857398490026933446980272074977954886272596176485792959390906225590834321725072519318662528781705709905304167878108816845774350265253320527657091151278641183692815364329657421929784371319868843799846567034707745008462026973173523439663589929509321305829621466641051247141832788360295580357213829360407925602801037947096413792562018588471763005126770804127780488937636207777522829385774909061880503351435869389833268009048008156748795649876339893646925881511403429624214131908724414640524277250300368425758223115558081084909971936887499740481539698382876344602771396571352956107265809332501305371779991665890743292560724298521841602362517798194407702418982653189419286082441449720649144366877713710378521112546504765309162569666073504391333022917070842204099305775458572428525228537681480976584745298206071505143391111593047459645139912442327861460166672278864128186158059857738800035031964642087963819563589762160406982911747041130327790810325766671999371265463775916995538561176328231544001772885974119202876601877986544814801539816522875530657937875143398033750428627398576880688031938494545947774279050507044981194135777279045333958487879670593664515652905080302715394225553565710223990557672985305974917913817603470336310482689639099968039942168978537618836096239223577941960653522066096876716998948273068174042469514956877761704665974783672938184507193739778545321213176417482791837951176844110141807047677894358957295226268222613339254585505613112573072597961847021866311276606003493182115231092476551195648078557425959234999245518837776076858695025094351690363298642332282554545727381323240833372899134730178489554978327274269335580720647369425471066668261899012338668270695549597136639892913661790933414103165365792761718772394781902117386202525776979215683184281421024486892101028684545512173693103914175869618924655007256556258243208148913034394279219957205859578558695436549720608730224567257967468269811563055760569809307279782494468292543515214552624848926317610387163865635194399557754120341237413912855868857120617160954007868162188598789214028398586582644431206839135969263271580204243229019831570224570946616295940113032405845980888055368621025818308363918566480054595905151577804117408556256153395025411780423655984100695140684668646847244266953869159784955095077537150890349410621330865543654814769402850853452318098725860883146027975359996287418340398759869189507275999161250415010673500126368763818272551987724316829940928996787381830937241318407789413399040217549988113322862449007387373055706674223442672933544985820930398052925767413541928583808478087165909328048297606773711573558882548769314344090040443337077100643595424556517612610016063365003275096586055644809109067912493424245056564101506784704019781664049724704056013212434946510541336969327948113271754369074206985070332862337203234993118072386616536761741664202539514539135126120320135258997044954932638563804282670432737905381152479281438747643670950723157248715112553592134873688783164395713846376010882976732015426987686490174538673067970817273153437953822148044278760721306669722321927673832003191877578656276505026221536961824361014026550273858814889244747121482863490077472085394359999813881347683159012093013247426724960617153458688430608225921111829146532724359626153685562000144597532016648344449198361122250996735146482184581495303162891276225124078190741176726774471255255944790335914981110703185662817597326345092910467233450842901173380270543083482146063336343194270689221757263012817527903783478821727387237565759983444275639592798192724783325589191594341250624453123684133475314779500463409060956845777502841374557629330680404202587992864673463630908218022416721366456382931592395778561051119599356360474684642085910815472623580649442843847489498348383335919749149336995344560608344418765090607581063793058015649915149789976521811866270041430939880719264392725775123804656154665382845045606956322103052739013884795408098806401685021281694443317451614802529900402039593713061620279505206337394930933641926275573360627844282751811974994221206879462781951601075879051447211653433620074968911795613251244001252209560439753117985997542191510363584702644938935918927609470821749399327839152874886860040463854914089717293169815492959161618135111736900555109260837203734970518571135981529434328375007494750037018786531761984678320377425664619174003165724584904592541411067426078062134305851449831487451761691328702731744851309858768204366033788798783866607194026551667842202122547116031694283690330529461969550825497033886874422152331034449627172042679998007002128758650878500034557048507316179906953053567858157754480555583702875885692334287198493268754095073026199767151127793569086297131629233982165793404026020466803990361779787103201904668977440596193724295880641935786593891003050850243730207361635408139070245296939672431354729613545992544552667713082072993792718064611593613744303263489479697931511839183238460246880867388436730551107859213310095157797711344534897626859305998591261917965244603518170128731851627504938182503061232588616514429613713983257708144754647683199074280653319865369429263390845559074506033055891185270715275955160502198892793381584172591826334949217383466560868537239353415105163861203806308961788969192125890181762191463677936145685672703102195714557816900956922761951620416703285341674027736849134363533812200091431809517000162687033093104084835293195260584732812436057776313322707670725080501026463427650729027860469765447913376845600987232121697166256729507625403482944703309787530315365692320030370091975895766791926262523420358654413588247014313506404265720057996433441508618545338658629811603580379289376505216492443575543262115719454460942251753703333413110302637238820412846649391273459073409904568714493855973598557578285723426728767657379146180633712393703598669404475193783242750965520604331692396383058163992881199488693312544478405597923192455144941045831756072621825928341958147542979206816078135638814578546008746469484883269261896949313896105683208464222018412048281254007189535379224348613567734843205541622473811866126861952143158856916490519075347685410280543676172743129406473433793135553523361974267430368700628465506347100617490334935076984250268770705141440316813569560740546356339132152170421486289210431101078348134373911232544391045827852550286915894485756359540239631000888823327608154103229264211181504343192248120611707479706229783009394547628376156322933276399622966438031711316935260339154456306059457261494072724586788654996790819631132274295307712397330572564023556179140507662779200581790073768169475272750308094857584265290924997092908249547672943692752421249962447090253932709759183875560622949766025346698778850022901037220496019106215964690755895454639089255272247003582847356405781486557658150510800167049719559856497474267768041055437820406433244572052238003968384300204973871915435988092980376401448914331953860163221925656821186203001141532524335441051994450064985138474391753493470843720990508518163970885836331459563731220184642538182238460417873177995937712817577695758714681607142684552639126961466580004328170798053084002423079606622766780336879300989108224033185220718008003946540736488193544731693884569966544189648488941242274484444353583016585641833966997459650811687831781485355162763134880184787298536494543147555647508542117397210345020133778347689266335765979654064461847843781875587522201566334175557039313555287438977538672440519825922227518105202337218422660761625002576623463706273009786705651342214928448938401775412892324102931297354906955779170372688693982773010569083439173733044302961247223306177189562596242649795383647692370285896949228191085229384559772937934625172320103688099422434981793100810294131228825517467690511048739034188728871503921893106601307988070829660992285604268959531167380953794831200579563616547154363239431587219386410740653381861102918021645989828616842540410017691100200581239682981928086945630561435837271418219528366362608033066464964598099836507528826363657847050121100979637638890565019133267980032399650131574337731759796896130171060421130707913911301876257240956448573495000116781299503140614242059886973312560506622243490249967181861526227959346947626674117902194275377760947441063008970972325578628079440594567855410843761626900097775871964164148367507568671754195141334346205445347869469609407232477889628801090390053267015129915398821259732001436087820058920049839131059973487174880493700862959381380158131800424100224393971596170125171744676727648638055285174854864925105914640476280922694481526848960588389226833275322118606152254783046417784512878935168577343205225999324955336047631651057652513511164998357893320353247673076111124622269288390055366243323890156128741108396879921521988932216547958882973140818199455175621134968553720694423287149820494566503567619546529546997585588357816130774382247345709680854161262539947571561929181238191368324183524745117136576985552105387650063616627524737853128823309909735934152872724593645073954439283905179946951048452728401278244039758336477341961807934883736414072364191456010051411263886946582473534218036404945278805124546005974042487636998006872906043508872173075412285331535421828905231224365696373900182925736998229132490559862064711209785108423459411282126169422284295599060010552978515956769689794625962034560011771804479083387439645441691050591962650921429152316322965843659963178962686893138848264554745785722089001592435060002023341218288918577827266681437947665674129900696195881180415459822869930706411892844992590252256155365442190924961524196159101935077239777872118795374168331595202724191474103123228990863896698030940329877262145697707381969269644164067056109847316301828804357330829704970163816380357011657253438858513980894432743506616231566165162873209218263756255356135225387371672713367949831393451798561076674623267335874167115344171994683710624089115429327278451921872129588900349163380662043423393441500075551700769854757025419476286577620533675818380241960345748049097405921842599819408827689489330977252050030371753308924905808968465411447985501673602453699557055726189395935561439808939567584413306474915678639191335631288103591198028063220873102598138767339441935593804271214613715566790588652932809323760836457360941768101983265278438211051504362090505975497022978367609152360116853583151367663340037050097208516016808865090695182977954749088608105955809837829692967821279585011780533162337175771178028373460211339399371059303755303263213016131317090157676366218493741043823207791811765388646500643371078411780455819458144369673175279745727839938372816751021310496445773324773588571670301843991229207416619743499658086861840348714147957055860535202927020937064632291737261859453386052963901607168132016442402131021478678737942434163290616636059545682739397581003745799072255262684833331063681519911146532330401254531363160421127502565210466576989868510220387605823125262514572977286141702549638293680503361932835317421866373911963355556729782792552765781252008445223393390244781344998761611409190710846664018078866770412308006667396694971618382947724596578681293000551169678211614011510722261808544272715131498116775574847264205657698856687385567301688288885768255885791885448846545719919599381744756623379322256872424485361632095202380326901879659483645876242483216450960112080850171717939290921482132753147868175799238307696107821009383896384951601998636831681682017922632561865295758678215773375052988505637353260472318675663095727610644519741482527344983521050589449684298536074878239281108371484123875632331076216553543908912767758097306991056557823738565681739375685363712141753259453279038303984692305628973788676453699457517988462044142491812335690014059978525835097419626444382962360979328607835010068816904806934564079356839734506358116243350602244038830877733238384421456066258718042703381043050923807703222356423907939500323858820418171235698699749463052981068581272090395305830912156323429690094333423215125210124090074822653484927791858154917743717377009854260166407184184011446013859593684244800916506998823014113408569354225561479205863308173926209754033342619849144489376179654898212773476339844696772513700437427401310359673844820868414817959230311376735568361933390087963517712148405831027044292215000430573563979144160946246608959128994799941165883534165945446261380613875647184922229927418699376942299674987551491652495259206216046832546262492144849043585659695738620108923928530391569111645370282812641191416942034368941776239314588148887078366129537922896249137083932615745251903440505170814286638552362621257977317673540383227486318924127236045690130778256452854562604557892263900560766380928983645390902250188095047068993066763557887822799423975008887856845003929394608798497189310026720035674030330688861473003874982138128274265739857341472950605470911009791025089104972024487983272088058727995889335330136532682867002127193451283335203498551480878509218263390366081337033976424334695724396716788767138759569300734982200407587588656852850331128501286050721420508148876189181673790625238434850626025761614233373728872675303829661591939171122022100204833968292870097269490129584218492975196996182813392305291466416275851324938560885939986091948732677478439805919613813717527830924349847940062172556494393466488605454729148604595435168024029812503675664884040185856020744209173448931222398103970487505567211653474626774906672405053882799457235412128647988280656264395022854879346322810903598349687675948106150704149810816899945859030687336326116403598309393133661201800081026483824296525247636343756350960383910347918674964057263940423778390013872457979985866904515691875629295940072314281265184506595344081881927863273233364677385998791008930125993692863616925455700467495929582604406669275920060052147842848671140427685199091416170001978878390163920825802242095533928893070005827840693384614875097211603895293315747507012467126650428376372388570913806304984711717751129122727463321618474026911448411294551270208453132354083611102403635673699272697966037969578200789850422933989750431565008151539245699560284666432263059888276718403053170500118984979103755582437047759738110033140238792936918788733204466347968435076982600774389012763571910932518182875098132257983108432744638137497870503647397753003504691184015455871377019926919246380552062333726621373732950630306545708507220952299936838592934788411085203067016552125769782999039427515390329360835693731860727171987499208177500511357658969726297781169698467191622940690168113787451760489325347325382130903019292206456859281348412399369250881099091417766089766388750874251102677250273312772394129448255271590151909614481277920584458677282102312781639787414974908285939197581689920438003349960528667999413722080145309934783240434492902400864270236583886912261047423541821651853825409930149338708402578319594240462635648479042384080744247131205429079274620959580402218980294712576925473513727077548385541821683860014056934594701940346943492503994965949349379968049913133874147158589727552900228350306411423254997913803314291771424499389447125618951230242811916210773458573183537091273177092724823811506883000109133770226432852878589175714892347425824062366067224823962546073138450697417795870990454739823707797412053247531181222208484453550075663550446543701978929651974918434359742476929626135602059158477662944541606673242102091727617686846384358922538401213469471385410228902859513900873846164770979890345218021739584591788078861920720084365336953290029519849673550411856933061042073817453273422583026557302981689350764353865007870355759337505629958733473668135044876359249876650864359038645551918641728845796325545857009746598325971904950700332746022186855950213907112671859589089389299200781024421243180360370926868559062230501811197451514931115090002520257012136668067987692827529027736728710517507684001484568922770624145730007610315507219355101511723363623842414194224875235164508096004136829092223148193627183526572250422454217989814987865713585445130062236224148849959098615585177241947192619598890299241977458950228687596891823738310074271884537684986795527679885280830162818970399905491077579280133712337313346187232067309046988820124430532493351075575749660799229803461635893626481021449988120251106894122405092432209906356944536989988198042274967999364728454100468962188460698562601317403790560854854669638096930347204471630443056943596286841380119476242399145559664168850931107113205937498016355514252533920130807675711897291300361970156310641237010966059513374311944224382732699830057990719068135394749301609208362398466346821483609548208343183236640443032777066048403240585298429282868131574852409922332518735781453616475019973082538075880736573244105857032183292522236737124594718732177627944400188119811305018219279047753368629571983735437316680898770472842090969277764113092127690372337828418233574685015317292866605308737174459610282898212718267948459999530609868448888022290859086989384069089882639891192796845038247526278707222520517607311094786047884672143745992078607736088779955076098148338152266382318871603399017047738330534883837364688251795908874812117401097194310630562616628944340301533117144501205413376011655117574038716171633874644956041286168008540087592990615802631034515720044701212626308460209211514390221599487250090400428545892218797233414230996655165532124388206794477382356503332880572046586187957735414805606931853047845292748239084854799191757733650938539202638330031715679937478528352737967998051669313329836480372302089921050354558310700963977446345595811726385828806600511262410392167734153551497978392961547119457846754420970026900005883623153694377353670517204587731206256844440173711060936288095141961491460205573259080823384430180966017587625719507217197562135444510317598654530533745097360350319893580703719704858510861518246666756674434268878017759245194793990819062995452866552481560583259940488056882183574437219157777052962645981524035959306477077939734920812393061567417690003759027256902414785616120483739457920688270319630322334472627149099704475793126351450837979702611423169563565894593077427938212863023077512038233653780930592322874194767585652625275269580253114318791116660540229049236488903681215859272061794572231910198504834302108459956876442138293237375228211396451279439392317560806406780242585783709900018381355598614618573979190950827765123253981952842697421333970683616247618417435504114885278214048494389961932039755704627482417601379023134915506764599120709895130721345072921399664137074857354099285985006991498439914017052551458570333085563485981591263933168598329728200043046040403744672753934280143783120950617288556263425441135039573444341561856699991638373147339014430645127583596597470012746394342937175650400359925339436871411277705766372588365819495854477076640636665047127155466246625747643357846595956204816986910674375565832053920263086985249484637087541074237527447554372362447126872758273631494110838429301170687132546151308482341684922471131448692471971489057511114237259685384507033029904895786722110818006974911302686740274667455040459089787042014539252089756786371146947876778686581782531947531780361043488749221975115616894238760345806875776098473442519287216554882012465453307745468904865655506449093372391515508240600947481844147283082488850220322094510851631106410316013159565076161195165591567537416587061746619877618138936470314446107574998557016761396417429975475795913526027523263815619268102945113215809191909833923198007225817712416537304911413633313591109117785706128960242534564661166898752394606463498676496260924311470485664216643798977766577422641767473718817422705889658636167369971570067857404845606335938712482875224663833315819988836816089609562248693466392683833703861312949782178334541157791385691695261020875873535538177584880200795588143265788370254437168398629766322152969795826626956321632607638630016611901973491061645658990868932645395302835493842450160628211251164370252974695021844257135619695504156379288357948931964149138537974255957038382568495725409055930783825569262763371465650747522798038475032303379980816632287617644793702970208412498639134502805893081704791309571910250127375935353209686048938151295072436176781856058664852485019576265680460720330763824009584220604229410803810174140388543235331520684773725239872493974319917314947597307144753742046669636841870259149845113923296167367466087080947712880109429254493419814098060770167715316950973867054239442347217489596614514489429227383103814165633649650176616759535003658821766323487979145253822910881565511812758400385812281905068502470432280950297318293945851068663012179338868721053512060901371847153901242858771988876124829396088897591525993895248809354666679122969834320412654285667402061219503651634938126470138219095891255402137598363666940698082720481316839059996699631958614686114670773430055128591727864955782530702870705424169948617630935026019634459021310211627476128942142842922578411335832680071470059508280939796369556360873276221617175244977742508003906190221492782333240064777426489439106100099806203468829708960213390987904088093133312314287096013186587894624281377905580096672891925120623304312872696301079510444059169800177535931297410389800136812089098415363971522896534268407336808108655177834739212378948214741648952479886682316299002378961172933077354850665372112681752209911414158770057019173343800218871654077251268883728277707221819194463972772227342459168074019357264679182902438950641148932012309548512708187963277588201989034400276684855746817460889991852134820538456703679282862284680941007164585492347834649766985568772058521983394813172238450144738804807965147917830235317773102825609131321537417271987312719487463278635709827253853244533810444646359374913646356949337751246938000568411028586863225942807886543889396941742081874345342835647296096322055932318552275624961147003367849903099643245320304169231729621560459148769024097578338204139653334550510895373514528551797441916979982827322027976156639784180817447397384934699030036170656211200702209972677427538104196761440956297393499169253105035273792152449782973783863985123236459683742401476540326462377911938398966485745494960458329744735027267175358076308940385463011014359092954648860759057050868026267114651390982420109105034839551746336696784282907791933421190974640062575039443584416190116395830054474280122869347618938624922899747196295882907846707376445749662415245627351189696009068523101347635864722979978443530654590879920173367599106362450796096072211501297846691658443979316989948727234792486466418470396052464810640491665083288365989939386888141826234117437623436193924105920729321536001720963869651941761771388788293588100436730447283670541462295595374905243654008107587812001552388631388814067373220685342061771416185765723915979575193836036015164432968957157885483577066499414798008678624968038728642130168916224540050791061178276051277748847413901936277511013265600640086165461920180952210698177418863293895858957752953486354266268924731864931643105877976182324635396653720419563284633725123850903025942160010612459425970769725890336417398747397689810395123354205425689791889995194603819452861621641665639368899866232258329901159042628766664211557580572850056153523393587211755598205505787329307483579954234826281130331722372707781494720092861009147634742446430584218348883169641692753162635979868169623557260037568563203779845858940692891532392362763048853399505053184471858241591537535411864480978755442405762470631619987016759383903602176956793951569778607137338449172100787761241363987229725589947909413762818710271535033416594472202434570275596186888142537471577238052506631302468604999297392800984645053715393757957518433468333915296769088472460756388190524849734100904627176064885330058713110332601741537452774047829445838312621955080764346047922441794641409689661272241810037080554754162556706321690392125373400711142537164122111723319369393992155706594882753607234384933356710424970773644463510059751275297640165694375059053506871718917700526248240605243909763853637967157932361199053891444119311730512301771822085662784372423723029488645187225575736612372731633766686906758982858303980055725399127837377558026431009603394146459868706616470585618646468565885910608397952659951499175807890271827415659982130395915231256414899108360843083534728974545343671894552896131073567828917463507910250616415861201529192017102493056821726531286464038203956834220038801943464551750174626695644667340274968488099422042852015068346738879291591988829742660432520533531846539196197486777137234027918770770933579471268542593855463107898417913617458307622947585879267278895745224393456643296333927290777738793419593901474991432503511779009978280394787927194031537522456750058541980336031797712624718240814661049001787574958568362149534389094872621215436657091153473148447252682720358720900274378798504146510122326023583257794724652824022176276629893396085038836232412820570513076128883608239890591307146311360555054323537461928523986239881276356455675323526811658416949750119029785879041095304174960338571844868235559343754194906952069886189298247281434698190272994679271771413405188536313793719550285912458997685645218174514321809032931711962845220781988603322849436034954555228027882990417833572909001677176909250047688903627333176526399690220174297862318096066364100059168634786813689507144797639397858657609947886715350408799834257131303773728582367986821125311973513004296233648598115134323289192741802696862619961540051133307459978544396519223393904396435441458269022981247185607878936013199251939440807336773265707619495668554865709399628968294971400372483701441200054191134790630545755080789229421275783370853030517178009247790536410879417935482563785843545275342271145731595890326570419058636950654034128512279237314100448064315820273369927335310532057004146873892699493032644256224087744164657623421272478090161780869428048366813024483309944370905958134122245144234640208157967753598216304445148391604792593901506148562008490892431942079394460233080433305685851012316122746442270976834829630705711411036377760476579150371771426076014258260846968083555477473038027277172410221133655005191184908694167572783641551133578999406407857955387307299783498767271911415936072990229578119398950547779981585292747181800989008526816511225630994091740341905869977487587241146704726438214433397693226626260044260542701597646933719033952894582820254649472348317124789911981537874678587688924011144096129062919027043200559778471228872661854666520277906508321679018105474409825836140473293339927479275070307058481706543674447449004417071797813510864020310781549231732330048946048107473882181812192331610999131505313406600777636888703094133842087901999459401875421240303260849549427842808296823154087921737409079409930692379165692114892843402814640978567716214692647624008620935463069644571863600821195436230806770733177410146097210121242433732638036199391748427057368305765362449039732966635880967112764726548976897850205620269965124088911580433203614794102315700366039227802336904716926436542189216195033038515948961161929647375302481910754600057380976320855235862597019867181409288163919761894548923394651982847629061706610978478698305505777640922645857673956055411419087518156855780900722503159769091680662102304645328709418507173726302012388067641087470657875387113277179390298049340256120375130987481502233326897098079313375374609518576041552597285227799060109431443080793425754031022361397757728608828338310338276898880146937949607890503821414462597010234804875939241343258629773104866325897992725322525345494190905216878320288738557383136886146323421341459642035431861484704366011297408644724933945960712909265339921519079120040159991850996898199682528342523674984964720640518007221409964536597424083998369409619445841421429090961304837418536252279705429103201095989653403436895864288391470469215431588888713374220019744713553068068729201885773733857220815501557004701538876714322912388370205822686521024559177170636438094231047136187702159549848823109526747068618043807729539799805947839369073772824281293140677232188522402608539025315430581481635323885433706817978022336702610339123345308355627437087219800523379202052572380396629828012017784398821959259986705570778051291601563581602511513675640943873883230939423753395009700421178030572945212223119357203241646380874269339881959044497293282572393374812329884755535575655549182708197200686202093348956905034285102827698025131697534476077734353151850418888440919409627459543413142896962558009785160079284206292416122819161195579920370956790803460156495207523848146328881315635164811078383866118803638649439945074499911518793305753367370498276447776665957851678077408822420474567794524749921313798900179118238881504143555594221735786473898719398613244133419813404277876104809175168478651414147261137686464746395820568717511451336309750232418499488876926966099899170388725755979382409006857113461702510105279689799521635725000878374575898862751516986422288866767068931062454999215476546675999372246809033449609468976451724928962554762185236761546137440795250629999290230233510719505855771702443117406863075505222833304236580860133439344465742497195246912755957890816829877188111152336390652356025799802510483108173349891374525990226315721398584431491400031005274591450015866079123260699298527659228876134777557871234023708209876203503246454160526914155984011845693720656899191022025708486545354885415541105596264088318079903258334357474427359746305898564418030441714399112169048834437689721990302034955858694953227363945665488543202839217317619499292782664109466245412636213181770366912977710720183790543311096296279240388436475763404991081095634265569323708771353084405680429491530382148905786068877394366016611930645764364450445694893453304437098304800122616284157251511161648373107428089255033651053422853565412023012992735580468662424908062340261558291273362828762330522045474436524578088878243939351292650847803309938579904320177655303993262621787979196607041448360555425720496764058798302091698898996943758112289608229109650406400570237657730912002895258622519852304597726162647842052560120201176088972662719277102029274458705589841779035576729183377566383389789287337557545648524800913773998099184781751285424527029329262711556568805907155488208713371859376166235937748345764149830075614838251357042649589655370617212834756547765821247766694900602589499733337976238051366085951890465556585892028580964403851802437215951699009583581774288262539096123435057924944305748553768972684366657001441311436158929131442574922008976801240398059501492497136981410152609207096175653509862932524068171584636945093804395983636819291192105801976958660743286358711091471276625058463939033656488471622578379280308404357114110851692293017481739660640803239371245852210194186821136054408445657059912755796364710367386476564689495247642224009590847000147098839461307947357279226866425510780115652368573865337479366261076744796755980002307180492847791986239653959658584238531675046205593392482590060842138752772268145555023874313823384475553652960810171221257317690680628993138745601901687819407553776395666518133654604238544492899337324080251212023849971186204070615512020890477125293714015452928607221494418959933122872933248389577277745585419559537282645736476570964171235868127857717038750295569812372962481418697465543190739502327044128572149495114403168556523743556085577429936402055716704915419848629266018313100712722374121328969236401201383760919143965914992744706832474009581304841397910297261739908845146755191614261672105134722969025995624067953931239106818766397267567113875139784197291493931851649170267829554333651029013091111009069431184680900247872597669231213680404848944598473860840558948544119769961490090539032675294426772581838131320171775362709157412688126688383848759623737884051306595794962764624083256189060905508407285766887052009308206757685553139429309133128455334723163594012374273148470054565551949853922954009477998382365373094255919130152995217624704570572682449186699405014851996901551127328255610310028739030906158529575965900270834267751612739856303853633252439878006069149807062603106277856901816561318813582061189654308477075038874723155500241685260933294705982742121626540565682437705793871939384434504467848824029482856499248496542402541884775822434658393469153013962016771049697799025455981111549189925794669688568111407947374974142546083850363302600095706138363864930777420286815371666722706298954126168439872883437935279371624247028461383569550571812299922172840057805589847420161621537759101091568739502230686861020778501475154851279600925884872670435485407325686858325023253532850231779177522433289923532445983009053170688025328030040591114350134462293809363161270280700265920701211566365649412884472254832348531799722363586922421926621726231222440098033783176030800972530063412562965993296968673542278759044730873210229223242262014103897365936035314674832405863357063879712550089789562335564282169699837348837814003700122974425425349151698818932256505192387365381037973997670359891852526873455782408999469249482332528300936073180422338420935244989871690577428114573369097836500126993376561915464137263090529228272099265282896573266687362119060459758220360131776715042656745348132949664013953546931199725555925147082340900060257505041209404180773729678081258722933526599384537719378277017230096980246205366080743726568736805864232373001834706537476489837807145364532969057719791141067384963205134481825250041414546542015842818285610475813191124254432303185380351406437088045394723039175515485657967377130821454522232881533322537366817766832348198501150079605954472043423892967457720898639701550753000021095592231913854789111204325611669549686638629618074632401295381552445602103922041360810019726044236737769833199956030069383039813391773765912838662740972216892865695368080016878319813239573003961530426159545833233486107833674562340585530998910738429896299429224625721277043680731045392991212561845977970493238460673695697985821871790349781981732992184417311197328028524511878719206708264604519439056376067301832264476265058988287417989362399848423771474748196845135445772339550137905267777479864530889338425690816977832059927430655105117577152244401631404210037832711825132409915235106474354233961091386136959757576748879215778092864776654566450920154751861857755842736167569705703242510484089349277258929440539028594580413204847507351287281590665560142392395541546217041166194378144320691738331986116314726011296380027216961756370825085481891592293093959605834537262567270195680811770704550546095867832396920428802933541464506788457535668352656079544901424379761576216329993624912741594753957011013122326111818201827804525450922161027299457854423755699176711330634977086905568598473291315479472839513856204521684826348976154716709784348884503541035423547547184456291773836431218120584516387749761052909822944293814953432504268114233733852049510850947414297484923932182526316956917334795204255578068679981571946800478332514699106593074953618412308334532538987820955582147322192372474097032964793472418153632013453019622550317747557827103382944456585911819113766652539506196447121847496522243207460542753526397438562824290693691726905243947924228806930317861541943945324174754832331675623139641233562354484221648265560910283772882822270742771856355262765196089027838723995037547318624598314725092520151417795336360333595613139246132216665794570117152501687204670753427172599117346792045272113747319496539961024474129984911132862347428309720199100252823012448570639181903948564182607431560727885291753707686243989668814817705698328623390570591777782812312221837967501386869088932622924532086903718825520760133277077603705764257081577397856052884930262667042146225353606693095693587247041496720479394772851697382067310941701165333088482284754140885480237009067494871391045758122769937875207557057553023501009067090959291268588173192271440593937155768112480461051849259021907848540414663033684449073122171098391882372019677726599471498175487279627075355607596211031470562254287009190208040161176890198087751676682582179685827765810861041348226123839534534867572431068162537764880662131765459805511093442292144946627567038710498281772675561624427028355162304128783882913275785517019673441008951325630216499807647853935740768272305029808070125840764795289213718265856965285341239437656500236709505983697617617319834782477954617702809169912259847783023518357475547769720653830296779055798052111723544619379114504029062184416417928917936106622492618560386027990415568502076684066063357775798490907432301488492174397228713073048564288904863299133486274415693716281613439067457076910810521597719726046873684083276367951523820978823673585790675389951683668819879168123612437124090682516848299244806462021359422804631244115842563835573825502709512554514351841825541461496066910269578795464364285619811557785034940312561215389644524267019719889521151869207856431020631843952835718057203377500396467885225013480321273739439112796860338570451250342197835627954067157504865184879400309311570545181390274549278595280096702506234020586193660188742438962635096523247423571198799951387705696328546105558802234720728351279402698242044579711954751087566415173835831407381128396901926771293031988377717950528781707916747562071259318486347429834276837216232090818174617854333824027835567570326853555559270433952644550940580512532242518630247400466836205906399456126159634771275074368365669391550465685383148596998105902509372782830715544022203259728337496876857219533501938526086173715076029672732826879888330292914451433075758421244053434642388851833371523755358848048647593707963489522910173028530695235772626894485090136340914742509125333852863749335688582414864177906446075218308703422686594467673152903112147817475879549695949101303937157555975612808516301144273205356016850776610276407440869559450137242761839178285632281050862429105767023174964916035147947236748367330222464873184650048707800399167836234247185632949280279913995002613589046106610258637136666966026812852200710289244933405500127128792564678505389455083534345399312838974555221288558078219743872502209925018554523024936523795988506169587926996961039614471976474673106713794887255108943898044902088940639704951359331901875274326530850155799751326145374481027934550163520376837586689368906123511876211750019916546959117609850336185209911616582266507435718709441759854366489416889333731760193426757278088366660123547830611451505928196269176865388298399037041168067621779196803890022438566444368544062937988022217538397485141841801709802117519627358829537518967556076449012655126236419827786536412506005257517715640391143811312413483020767897317811737720561815280787053651756602610561680552341587942953685317128224780674313640296440098767440385722897001523867201073174181002935543523988586099968666448669451101005897902859068627718890195007231114805595096652644429089319511495826962982367073181627084549217988731967314450389752341525465162659906776564697600388987781468416042147112485704122137987489653079150051448826861202379153156572997070329822409856079487071726481037461582434376695127924932204493667255051898017479291471506998492031263970559819140904897149233848973950915487551385927575844953564617863504666640893389301735522091048222260890083092318130656264106854513009782189394411627914074469508381126723607438025657710660102827952388151219947085684825911937249035843290935103363550276343867879318548154239965305975713075674738798811561446495466404884012845357535600200451846379493539129368772559089939305336752619505721496363072475508820597106544703140316055239146113350232782740165791008896884631650866725976025734568383528988896757219475892150353786556386277615224152476338912853210429336195197135418708176535372789796149829396230312230326537585247612375262378307960446065864994599973351708941068590867472027385598201606249260380272601649537164057439975623025913117917658762204125022867305478389646336681649568968714768360507904078704646135651108185052215194230652087755102894028441001795073294307343168708554024557511860290788882954843361949180653695583850436232900437299522574413862408217924105461359876418258129633160535477703015393718563120540275574433490905565735702695572775750502021451657629535878213174446618857019480262171372782098231869694609884029881026507567941963696126632872422587385652868698395902893937811571850358803701254718066596708674173571285639467325963997853911576855349483990861122909420907195507638107495354769729981149136002907648171306021074998530434519360308852081834803754285140133231923650134542595393279078388897312239298206829276773592906272824342567042174459565193022959745384710238899695812685967602819357759855260453300193518756721374164074350181749574975214541691984774021925454891886373442328358682621679882922605266547252927811793702522644896152755700921402279223451567790998618347907113547977895592214852491547814175372795930861534316016980453481632619769044772510863591889036655314280943104857771058842161082733788394337406873270587881812339269577773902183545847005135489353746825627507115380740601268527949852901061669632354032766636722909418927763252984119018257004410275396920371471933301227976269154383004554305536878131672318051607284980512387255967955362787686865057360876240875792495748967641564141421805424484820732027568772676204887994942622394503419594296944294256609706088975369837427337982576036811065733532461140915349037444856057741824791608782844485441833383177324519136948484758431834563409173415528535084134303604463982101105019287695251819203716286624568581658168196011936444227884371522268366608851589841468474837190907931081058685699716864698889363498226691705975299200097004353675174550416344183675664447841349473626178582713426211611758939795952411313738772080258402905184848071497354158186674787224513458723953716537984831102247456857468108281568296093350956784142750544198995091060052479334713837833903160083879461454118657387483680725193420233129826150207983087738135908144437259149124555848438814695867865191231672350842578257359314849449343783320264196819005579735818626138987227750742435891143588442393000818829675865103551586840449120238536655597375275227197914916489254332593433687685790743014976711787192339051136451458604192741228335277241988954391342738848761037381573444232265219889215315769996259603047359251578660438123538079053223455398932107094070020960867507647286767153079529187643002308341187479430883567782602167556682965736631481536221976107699489468161065763405130198123371541643924614939657279864856617599671187541856935612841953649882408497364101498756870974128950751070140669372330428817545512151858078203160314534617830466257529201047040606863768388947736945783124772906983605082014606066057803780111721552397573014708909645584307422133714594785044213103982808814982037725668126784144611195992245681277977650247924829195055224463651229498333276057067677632352014709225867696780910941227204944665289588527754149144648288270191451935087002927967128358796629034543149564850471125548998796386744642327982204990612261251097814746405118970091048348450421237480529812763273043495731698560990558214366990596328062670954225177416313321338664566032791137460910308109867731282136606059885783345294314031776452007682229769709791975615747885865701046134846908329840079585106234811500214316195969714117752843599728312053619230270009305838777763581810066741245074448313952985558798731930651122522512018527818474078418888496423442319611905944229202085676506554593942146607417160011399105505547187398970820676961581682188770973944007287146084382688166962360452396581097021446072090591801037022109100656064482940926651429016735834539851146116010281141431212075148837310541862164299005496432706992790773618729656620775309684741330863194882365863939399169327309806224721838702275816102080617156521216739207025363950176738859489717125126919660268279974895660590565186017302014194980321142826864493657181847098807656207478435830000211948459585290096737920218020017033664771082179804204271768574184049110898581263301000293890743730202156303105943594852900876396474283979689082157447804043961534486745408691493895581183114735045214597664113297080423030700793830269598868210921256704477202129898433408115187512039036701932384034879299050350158565919228654755777829187919376822090915949060745621100561533132236087091645732614396140006471724563601464902907091881470834862650189738995503896441508980182901472940992863234507536419345900514063336922843501339517993385201803848901930081492038844561795332146389890391423319336105685669034225754832382149664468507431484179823920408686207340575640420549879320375999265778669740928666039506251072225151753161172411088789245806783148448506400356561523190382661325242139745152735805839265362986579992074972946358475038551886703530205041497957486979004127059167362801840248844782714961291203000513746620501583589319999893413101099465520798928638293901047232322607315311426024292421634189124271832799566357624997821325161045490428330895291294087586212299858151536062753726673280656833799613625346084976363823113888910499177612341837202555337573576535385303124164311236953026300594637847337757720910060572504182986662761339762659958190187663680223281838402819097020712023021980911290506780371410258374835870986425732719943568712243590303771071602790389761136232321927847935116471802422602349009427484775165480052004916793043095449384126381879030654413835582877548054846783564869030514162415645591748355230693559121343028133818267575211270886733659764653573016429394156276490407438375007558592454903207164570542844548980487056705393906357494021609912028522583894520599788765351215893756635266469575886682048516333652990582928994936452526652952226439406938281140378481605361072753199318890977359309723120877833890188889869551577324283639703484820676529668391970238357551079223371209615358549929246047168567072489437839228987712496297947378634781601038681946413875622081746077418435456345573157967900595234709648276622177550425283681962981708530657340134236710031035025292953458320372130781681665425875000759763816252536324216435275535817510627481709353886046591657229142929476440534790952528081402437479459484377949726394510769676904145381560447357073552230304844389214805293841023572696970957739813492706126232213982252061875919255658421110046977494087577498285285983204971899043523659297448760664414800350313905175873793344157998638220696321658856783155070931561798583566706678492171721370377499527301315445077727722956432011351345124165700022367215470813713845918131124734236190242168511161442896600841260455129968506450634384715511871743594713863582987670520116829253250836313197822870911597204738406188155685705472835089999678147058935009398830436132936948862694356473804909593640033069128652724369840149249699777896299210905296565400368117415303032984283932771824389165775820612565599751702468088917720010340714152133674145160079960114967716025119686304215396901320378727853849524506212150603635917413577616321735469988956974524103002161754523477441707291961995130051230845118087938984474420738688014896711706956972271383369069849649150577285805591138517467887413606492741566069399507041441004011497184974781320940937744268910241815651515142983526599813299477674502745112572783019908822020829415021257293465215701123278163432327674606603612854815400083858689171555654339254069100052474243806320376571312569185250721397683602419083093736913258275453039746274726518015708419984684476275371611676987442557909082380942883755319360729693813989566950395946098655791252972875025290453255148686468187820700457905557277904740894849951428109690876263931155496512915672246614416964244825158448713433075267741532647481652139545649480697294830700365161617577248570536240797107577691188055058590811614003152080691028696158930297454495689059658292204299739469259531561501991651772483599194465233550380839207930103100780107254482686859357598650109679367928292359371913362585551968494419997628194265038835230134448440853974864253539982568639439755416319679961555045583147893471430528503863991683421817915113658656214781356908534396946877600791249083468601011274320690226300518127511591132362387496298244160320788511113496263535639288106302375763419597563238658769473657892010114800368452745868466864208614534351544753925081832369924985938438223228649592005277287386457662902788657448570520484097441580812822191730399031408118939655406699540926509654324339534314128962777884823014376830304870545313656965483726728622523807650737540696207881395324582156816831555992660574003735879989991586555737066724512049312318924033392859016563841062076115604324649929267076087639527692176747585431884570010778464293957796738036431704446966494854652268901127786523892288637658948033916409596684692602413572441997988260955261573017557240140920594288893389715605521088658619853782130652101571043106962844484140757840769029668374182438984657854162565174315117913462677693615782288943289237185208110058237959333152265339796783461679331374063922096433191225743428508253926062772852809996665693086849792075095529139385951585488666908872230808914522656819011072424779991026831266292446042770439732430818680141619591985125070897397594366842179418160453521396877368458695836775890274941243483505452702295370699501711305818492883170834952835685373969134189847820754437775100265154756311012148416045190242926110109982632284572389695876420624713503538103419024021275891664264313322350460704711321492592997564481738227338735953191196499432603979015460121056741272736478633772427675398279028862505957807809292168306363950314304460027353144957525331660625535024981433368055824348662698583847066152677372358886153000114648670787544547542096166317485762348753292476480869914292863102384822601158650512859877984825970053120919453720991898831883020907551292673435458834949644027592429048798410233331418600312935292890170840268497981807739188296795212075929878236969528166903194625365210487115286304833689360251560922400903249274669359094179471405594906154493526698792269607926612170968816611514848040017513735824589853417868057161278381305627227987302945253831428314109215234021479892986519616209674994986405209133743531785024268141355247839174706915730588878649169420841561137458786974908604369515232589686169246244804233702081705323414192845777722474248770083462451535105849349979465930653083209283308044991180538132532210218719545905784140601403294342743930630315856150896145957366313781331118144249384759301044572504849952853104173077430998117624718536900437680036888825194077279639965859234809356238836421996749928238660644783966768693752214711852759970417480335824019771442398230119268757265403332610036407016238069057199881530270004532028819872906691821414701455765664172733514052263170448031301987658295206427221331061176156370324891811688374429280538379145988962844292601020383167942824522007744320996288921641242261685044407222983229364712101111857432755440724757401843215223514888458668711502982020336172907408097047250430192664353209621947049801640731768544459438345625688461770643778049275883282615449033707438925171387320154054717283817257425169152146567158712339356632028216287319514427070100604324271977763454700037761718458893969427600997473101357259421732106064519346270018584813581673926378372127542369096551602959511552446988716558081649175269221100923741730578938534624086621752009733651947064604359819850095794894639726712895540347586299937363058193829935902115806616508407807610039014257757302773554392239457038631093456580930428409775659236207056363173795991238240902901710269000789009247990470975198040242691540963513148824386311651695800556651504863091471967138494147704259025802776179269856268051914584714839192209513003881149762930178706689873595715393163698411675772948711432769882057491102945450034437075363830376069547309142271365238126688569252524560085151502151184757798593582804629367601541816990065370759772399308017157099083046689113585239595593170434743414213747552067843650056722607516196513561313549958247168948076879044761157733894859861342900962484503608684220500993450537445080352481007071685738812223495586934810673797804680405027188529826791498510904217551565862062433155868729820050414241896565917053841444656057387795972367347762286322389428338966714517894345825172274159841977286291235309249094284118275374501795512634841279282522813431307922190394173677213008408724821542217767531748902142278476555019243192471984890551462924908892069631021167653311070555000505171102263166447570890636123277437252649829405089495364022991454899051831687682549606453403590480576704177467914808933852690437403089873501255130778034837156534096634930287737688694508906972084505193107946956191741460044884886889538902343080617123396416137538601467559459849328797651225373629844238286890473645278410851051494917831186590072959566357438724588476578857339546687068497106501215009667026061545978193189812589991794122192638348716948286392599964744686055113391241145420946245954696005608700534402348628229803748563050768435855439766401662795865917799389965868146736109053362910682073061660114807883931587394267973563890662213455817842301566465749063505576654965069439273530428844455910597921411505597479177762937399691141466906533721501974515477525612763130284526817380572132780802848935578793759624934112042294057296259790093696163929690645626373744146925910329993386572479041599048033957185425208913465996099428937498861808320956219629352097791969302922305436038182282895240307928011873148347256221388515126712314227350551682830880045059240502084077267675006716193862091288776402008064304463714747966047669050572373253994252744306962075432001355070681093722930998891196444726655034497859071150710397972329810534025822797335536951664758212189424498083708761609115111470441353661800220226835066992550881994316269483804501913181404986816412388751581678371110045049687488822963703043945460088438964858666569636860505132559069508308114087633357823028199361790633723138405084611415711292747279340947534049926515223936895413198535846625982554581902546265481106311323003248966864698698937020707960650697020294870617070619295059735253290703524370637150745222842527352490586885911313099714893481994343100193406558842902779565935196898235942842224993027600910136993289739558508268794177424151195021645023267821027918100555269819839960667154220408028168051946207076869210787873802893387575763747270280697865768658341789160728431216954339313514478453842846992590920699970344795401742999627276429710994746571377877908861211477346468179329931780036514780074523212445547967175425602923848966343619104561724033307194143013053592225253863263100094228334677686951144055953783995296805907402501411857753900267963440810017910207390977168877261003444469364321186599183577370899406454223505144353864026969707140717593699574034172444547087296280338890773341339518455116939076444083406747535624101650196691268713446405912895936713968590412410421818772508284284775794044250743162144585853787780565239832889534282723729177510492477157084711308856720358470168049062134965902125030389026850442847434698593469444255456926608016900197638780178948255699177065496917819505316236055289515820227217629378159161940453581310410340114037358252519475574108760377941594310135022780783345306562843110855447005388440060226447749457565466399783193408920950102864043244990962985446213133098905502169614766969624525687024312651217886453048732193336168486478612073873158756455756418001426024095148534592805669846207950677269829158249981222123742395744126980643319014486293824970760069549412108065355532014750037651970671915657833876507259701094868313587111497072213434767498254333860618289881199121022603422587172262081083303729584518963607981768041179833219736014609641877234298335376442839958611213398780861835502042900018843048595319937069132626964426811843307338337041529880243118816091759133458156016871201740310677311091208608401868400372663024104812217375338596081897500575703211824179996578415851716749264930402305103035010991002414325889274921864985845252742899999497517317061393838016235694565840783254587865557085407953168656067320389419055398355816591559602264480863148451236001551468468433326968988214423517348812363204387795562004551421333179312347542405508469091797219691386955746312021733600006389407109994935930051471740606695846114042598971649780582553141859618646637844462226717444602526580764176798545266008543687341390165126863870937401376422154460044139236738821396456861655015926154661733661619829740134778920847370714051690544101605827741939790552648566618867410520910627915986279356818362129931581812031308867550040541812344572879669384806111102923948596716803593201839779827452162054420140441733347463799198177226190553972967904041753582822375879080941586657421957703935744668240230077625806189306683543703945275031300300204765407372847339814640296986084014805008745439073747911249810522635752051405373665756524649972954373689933516372396772622106527422500892833796173571344389971390794617432194538222805461312322581309239872589037954561598630189177682573784065783751491454941109410374203131128450137391420370813684590925577445723274740611090618126596881799717777587560750455917630185498839222101881805834129987306869815789923476776966323827053519343665165879577376143519818322351920191516038360183574820323634939245860358014935870148475087269492893230228186520379731923586187677176895209869213381999605947265359904997853996542683902610703556999811242834920643310788002302178160141602634419292320561372338283898990417733381340118166712022165862991253566142797553878556317074383720216221889007366281044028111173868899346234993346933299417634936491558376727649557370614285378007984367168200035998985388256818191797666863222991546035045326406436391841986790052388401100459171186235120035110076679718642748167272952176543296787449485882502964818866267826736902781745037331571352023197823108891545262288082771995817489803753047722725442581718299495792536520856165254269904087619410822096902608547262943669955612866683845766990261760486585421740712865297864999837108667901715665423122658787466206657901952457480974792399127274308451065398466185690976234911056816480183908631500839578341474384197360295314268039263885233305665274067366658554012460601465013743057667148758965643876363970088554814699420461691299733816255390533983598439698522908059834488770846210861503216763697862431187559255162792272158806983364956321914337518381256626377928175246814549246316074698816495695604201834562514911354320873562232168907277840957119484313685155942273987206457451787979412245582096246179996054331126193426755781079594822337785629515671682361041674587244519474467886211086151096622029427171279657689836855230516076011495158961098446143051445730546139721714501172313963294468795541807620566669056553942091990504666671922371778220075198089635860495213741345445857946725069941094097158765398821307881453140827408156440144029967373607577908390850005217431972319325506312947373623478133294428461558243876584271529658477859068380951882694773186541356205806953040587906424321179169666889806472696262755136681775119708052675173817642174980633958843375022418803057585573520988473196080118164946305613669943723201011425279584627888779818919220396526123753962793053888694980308094163369345450879439265990429508935040790663764307705177841177379173330317735995093283406734425771379549714810474649977388259331099084211345519447121833065867306707443067311506466431795588520513739800969752369858967376997435211676620454403559954351104691131098812726406740439748972608339652376879721910496935431122285600383860697742862492674330053693657340032254253847317932636709311395759395480965196062233804189024611340412919239866968302530341772285189342551504454219572618353578957407048794848280314245233297834817516216927596062420089131534171662098646080156784472147872008176998895736525120069001020235606991084327873294280046215726431273662901445743801311670354403008317963115025565347546787692798445997337187515709689640033841974929533622108611709073771113234417607382403911317393702459576195744374064027456436075381057396654265610535124668702193529980548557960540111391281365730921530700272888495766145242736908869301564535735192529890673485419037672800416538617358584108009934627726883177027091713377464313180225594428339653177040946423421726309411388894700472824805197769656682321957236970387792718367533225231874301295611824872566289704513947354595302025667627100062589231157675010947427043621012887396078114891523820164129961467034133579457323195336676315338664667778699992002142081496405172013295650342357104524464616973540711584366849255818546070103071900338712598883801512084577519931729755773854538723731452683987485675482607646690884290101091056731213339144141137158540938314602580608294483925962504951747089173822091035222105878941447826851805541200803524749100408426509329119960558942425873592020667164477315229849230546061999821400231972613569507240408761599473651429338417642510532004665066674173023644943630294196967508679586499494022478105789135643069358676614678325837320581710445066993927726057919738899190445618114552167188658317308564667367772433602537897443342071826649017277022091088060705785072343236883635000371267165224071755299457769427980316801901347949718051862467658441327898809822853520663197186968208239347788630159952610390156620817305488916611656480640675274558116419326132170756676918376146338439622086052642368969738473849962300445043974231146220636694856550063963872357584589718782362421519528175259099746742464651279956360136493820073486200380750141163132949296314776718658310785246254658236196462856285344154719134630943767239274701570757589362521235976497666779678811692526944224207157037682021670723305044027996880521598090504168746395523006128455516196971464468012538118802411014862888945795958366830256786232222319793629146603863133604088891297511113984612566064636957585918295208367134058733349922282522979087450588066599047963341464683816119818480057667223250295788898022989265616711283888588650611178328491064054710156963587837483234960228457462264180155516518539277523793220744697157104942605147588367108064122933777364351500309418072457820176343454175987849349148208359232974663886626976340780721065435091974987842851438717572849261780602557429318536593324484021886500221954618534398934217566173731238647510748031691430455033395473072228048211431708982250131837888739357479077877547611961795419657790782311153934675026986641829627314975803090614369375263185648420859042773898159738420280948638149997624852580127891913043324827942750925269074692126304701799170736904779908348091255269400780514769838143053868168138701972797250505620758046193121104367650350595458926425627686940003669497129906660695793041209248875045524329954109363007380722925564726575101245252540435288223801495998163121784154649686685074818179211556183256557828163529463751841322178301528509855965101033035903117879872194401520342510224045737760173413835801973844874898065090558634373204947824111433681331679846050047600373170072249612733238633314493358185613676087474069714942792979542235049290648418744888544178708010089829551754283587461940934783982650849032311564046138609608637759886637278785625650385797461020898155105283982970992769829459027571425378837293448889406322935442517803976807901473243450465091653736690421320897695465177156862485920238727963261647380832750568706816765448437743596697863228201236701436217562580761725682192600386568822386885888329067833767025557426720973685660658506774403234701346382580941814148074078189870649668143994404101912490604530837991290546836638001977852203371917658654251541409495568112258413155817494566685304132445136483405050806017522795107568363570673749126516361057760388676998679444691690448671960303890756479194202998527683723401503000798533303156008726273376138751313311120451082393916844598385676115879228174501130805717383530360134437080492232811493221464586192650307808255409206492386064084892717208860657871417749564502802040258911418254326104743739880346120406929715229556890207532606957911535297713114629299043725343235847948180708813134261037249901616889612247916538590811306856573016108292957738014602882700020916634449089791417136466792649611370960182388819061036215572945261688841610880351504174147237608359631371680847342433426767548048392457427343895813828315050435741299233029228114450853988279537118400678523384910680868275985664089935430132455963331257056645913608946970134494556505339629340271303463087349166290683359924921851351376210111309661368708503425278511852011789894117266569126010862747236376639396667707728465416214719181796371011640922728020662607729006971655239279782148349503006622434275288796926274154687277608539852948932805766356169114422858104433242639778202429020299045386043704163733776657793177455978736409354552085853856739202887893673837642987872279293014254168830077686773077026331526386291523339529726186482775125767677591311183206022378569627742778008977071587765389756135679845899087001014140823787390134580318592155943829406260798100248644936457703031425384416917126388983527837730708097059160422662012730004791393018867066231769590004912194727049571467270194157721977517569668175547753896901083893482137175972434757584806354305783212922643426328626909124342675754267907816826001222624371910924036487056942812685891288414221350714321129120426545936178077313345636089044631506066718283302807476347342834233386268475191863466141506020713946358699790166445277084715992737221340689958871555062704795018081431499581742901544279374671317163683618462659345935494799835862188684717743249787349607405878912617295037322377982319309435409411237757272900937657246212293021183556939165566586424221062349126837707079245479084094190989001381794570460959332858053139830801642606479161527402644778054342024998682963409586731980677143588843931493803941399227164184318096986397582085635460528081093947272964021844694378213513091000525468713995076772794432913686812069370886869663664313012095727438122140548690129134182392735880543104819697974204838404300316770637025288097433371526631834321020585086808882441204180692772259490104186572981497342087329283122723686478929550505594766735894044959269657761060032632866096360337825474930303145428410821956895611591515124531008196585048587228921518846792311090594331430129384620271269286826239797837597813504907866047697734729256287673548475347523236762254561164576750679636779221535818096724127449797983950100445073325306884959599611728141088600593795108566067683243545807532740115177249993656573616485026890893311288171659943342978916740987466212586801639483233678139986391222153953097116988883892341027235351176805580548924118389317730449409447274008395418137456563925526184789567772013334709284749913647975449368787297927964160542594062741727576584615728205644606840769104663012476313427623113334516732751395988762588801622943318097045062398071322431342887914412146950252390880045090813918149103539507645843578673760289458162265532648157860813003471250291556794568028085434963053497928753299326978886847224911492191849890750208924614564489224859878529304859150105469662085372843713373309340882094381581218071707192016225464337909955600082634042154500246554155738143407249587590374618251580533074816746792761651882936764930705570327479377967170463900144093508458939541078968901217507894948943675144685022057072446605755317242479604574266410396032809203083667952517750774793459864835758489221489436421479512213042102143794265527721452201747372733692349073162909620087714522343519981002391201591493278754284891355230476264011635180415973452205216587240816704637282183983390682850586357632634488853151567851442340374343313688921437957171388076069092873840749461564074889013885809996424974829215819205885674201857099160101461486801110091271865660839451999960459847198466031821480030651813804805007503895386643570882160172574294747989387448193382940246649903621096879690532592641420464358145249344986296590035636914162563577752981136470889331083848304971993018163011246730480185826191412742418554214803115537731697727326496816657579126132178230484031218729181152476576358976766686944133157307418549562626697448549874510915851337536345261764343125758819396299294670672870490190429611473938735717475132274650672211512961713861697631987020062157815033976536748830395495677636299980432103245632204181055988653796616305640703361158444199068128634223007352180926904449249894092578559682801005137844628584414839976749517814124874645539158032600877222199626817104450927023522679154376039587833615840818663431457450286939464372877873099020434885746905046538717970888902960195434275587398801494982254705421198377190378159776616576200797581738591437528141672788829512242547763539528796627367706184052104371727221367992839310936407029248902411507271277109730990175490270714551449094227315868847118361883016279634223236749831361372617482610327120268050337777962601184722641962050315876377497750945568718665319775582736573828008041641450815080457512139194963542585253091965812672718062768755065286610085219062261206659475351376958544975969526798750852110895852298181638131181304337974107782884118312247776577690883627040818581456591545833956082124975587687905350970638944861343620895989921784436456591439847360167254372042515957205748812570609868217202785924519679539165608290701787550833787437123349514793217105141091471835009524839017497026602741492552133736592499795032847857581382055876849182260559486094049427581465665135650230749017988251659024665717158167232371068621812119510359994939214814821989753703353030570143373034521551111600870352088639508150766003574258725286810370168475739121524006613739850035690634608475160434295158582432623790101841632567051858283257320564461551249532769201856076330142990046760687582287638281201692162861625333714491283899250094504107454284850635324371207927246232685761868958693121277792691427983475360796951364396361203798661751026317795255045875507028408081642880918877019695690029693959015278846939223761528610296873240529734819832374383600664567449764335641664306313460679230169398709742707842545003207881231431399910829316191555764943974388271234685180588308306626510391895104585246153699414402358634293895989966372267092836671111641293640867955052636040832048335055642231318319756173817353505385132919851010078249554878773169835492577408829660308850647916981292623727669221384598642796653572733716304037578007710120595459799608407678997464627156787470633841902451553711690037277507816541899442291292468929977206117450710508715780707687019179704881136081918009745796249099298809302170338155752414691903968417487196515687490273511695534944905218957727967420440807150802750329702089585193297407012577057673433962484121908334674542355396305334188162974141702352010447486216835449893378085424249919630912539937228843648675690819257687470046196429734442309249919438842092749004749398630990810143439891885731504785513074311911212547693149023396626482329852474074336722336562614493595886845263386225341013287102093782307224505328050587090839337605272429737037567244782416016997704770558785121844100221460477103466686574308516853000629898608647840307034036053487482064462101853917033774861066548760116339897234803789071431416140545940344864666193173993558932118750934356233945520712033058308964820732154436581547256805763401128690263123895085848760814990485306799664907281004587709299804134450746823801544022621244184467478285709598084962617423694351055729028964999221714844108145241161990253321343707185465359316271486555256393074507693184780839951182967674087610220643800907777555651957254272249130801505785020159350198139556745229265689882216650773907927862192635547961926016061853947830582136369511181516517734410801592666608345589984052411625809427837793774038311077311833231782664785555878885960107820846663225293332725832592566623992661906133808393838092558945456457637463804936322266738931811622539723230049930347709245191496752796022805143075747106088370661242693270304141818058577274734430962580736174532075554483515667066280260830380456195652939370514994204885724610790892075654429407602382720508393743050383176045416874886773880857061640724026141711529986454958638645980442734317770507952249938534340889772878411727520461414378788629236450753198521861116583389789220253641790678398071798238708532940750555139328722840185094839809494878681863699418351674660342014716535906883527941463064260338037187396365488052445808634520480843254625717341652108441114239926803886520424827611192363606225980627445130066184670821151034442997638030290113082996601782806433880792273052726194243108841850242365201626681154723348281023406982166801113768562410440240115117134773895333642281045768074776392610461546681796865219164123566831542778354639166838338525008228245371822120289062874018096106209292506236885482642813222498805729311572050044527167551039953673459616513843473339844855441201603170259492140820345071654684751285674535111332054010252664521252591654849083021160651191522804616371713042094645039530817329724163913200530853453712524648191391545653703738650968619128827718332351371531652755710769238420806809727971178116890786679091300753531385424036934346957197392100386691924256599107137447061827623829725153669714561230960203842659604663078320155347350259720372323266224755776392644876288764552678641038601388735123486430696527336569994192082771667492762195133588887366880835870794563123957138313672009495591340162933572601465611381734223234832807668634598757496993012335011535962152976038049431312883859502023540654632298331056657314950675433972337155290444211439732716148074999011367774232044685970510035628089588695727063972653774271418693628358970280675228890720673226774103274297188777973363527485833219516565686429219389709027795963224144417677036475170510567031560916492192974570511444902328040435161197712083828784909076619656597920942011788256491877389466038695421160505912447549947921548150142581584960760248518558201334484001734144249152844076775247433245596728005389453596197938521944830800707499108620804155471674632123238465270128047339378021602714141526926859457742419459060280891080131946626114994168580037900006933717632385328424843398959528182807882660376503312460487842739295690983545762737560123455656321607137250094546611480308676614021284653944568812477912913917215831264357856522214266774407958552757422968443906189466194540748233812362306710600027438718148283097561379725528812236351675403209119219556506249481639670822905356894516212709096507345597451631497357821818579295646508948004407163625556211859395377025464771934818200957301226521249167528304494978970440965565386145192963858298142879607662297866395716451698875951900708864503924136225186123790318995649406626979915592617343793099600706017201777203833175174486160753836771942411379685552211923213151088530819541924299940330499273200804335640878313134358277689270759029775079958398762758625462335579143479058916314286213407706207521765304052458349307509872268719191499063566373642272384444066872943570038509124684191436156831278810779506735392512233773008602593956293674792338033023020776753610843778485941054797569535682577831310750309952342532568419120132199554302927541990521607508271499734837400318156320569046392629049213648949709542538981820965951575034417755916141373777571624889721834473145057587068831020891464343389015012111427101899505483763380087910124702083778128884603921221701137641454215018151423342272216660877771159408740964195189338928075025512027503594869290391958960047320683804993470614985898292779275038812863239676750902364737217777359416963529372519484695855258423137621487849236743449550683256101979610104918949045664652898522978447996952158932347554645551306606649877220537196277261540481248705071427207099493079925897163707422226472642477035648821158820112622922452522254662935217160933534987067064015404396712427006578532683074538643303730051400367658742185808073682062351574690753703501755499416521155798480040575581732788242422381789074455110162225992559384135822005682413372877588478011737224820790893642287196679016031822532585642117804386556627868923428047501116461778305553232881440755638435508854974917582512716763937561227185055597467098695896475039194357732503915685397581500830841325652246741776298917698202203141822680797117899399629433123623502135050515849042066459124715896957612705638100107082401779086472511160811905590251097486646919468748863029292883817698201693770635976086307685996115402385580676267408614908503986500075770922886558159337198340724071378500255750238126071303152228964602470266976572864291123135988371720118519251979549615951558454499504212073117507673471245352708435965074192509914042979812832785395677990410476763879952726494280055873088803791539116728229613467006866465949127742594584184013374403123980994617974663324732349552490210445293171041932717112219121473929673590450342455325376693097880823525430166345160196722494885540910810222676573069834484842173437369303800249882120428159943025978589470030158093845949380292348283382040292492945350393377660461902283480839807589431995414933373108663614771784017666283120786042583566564578299756314408815013773564161856635371771051787443653093907322333787173856244692570126261933004247334836049703387896015861450433889244342965444917023582799195879395043004612945007142408886030672798802324976689000612930464837104181651314292913576848648217293380619806286547662537537835450441093680046616730070718274124175319665487663492917909515153847466708042243411395158575417576234655237498379014417509885697400115653356863592633581082813923974499192550782858404185080258209414203981386032886951248212074570022183659899397052516175072312133694415309491521454250550031407203888499952066049997955676066784471857497400996573774360595024826529858908354221902572031134891275380415818370003629220930209042227547360652980128330440788380979350519859465098204293421832071888026533134159474556778134813056168217221917955165177788616073980099192762927136718135680315425693586102215399247232004654066549961873894937249789293459191275969394430961053299276875263370126863528901431403999480613128808526927050559050503582530341205039895458426994612836895302766761582670347239206515106607403380162842878388378536395118639424956626268046883897132848291349807338563595897401473570022085147938686694936231237754997419087443444936426913293160873471821159220940358926494551362569438080854668241292351548810171515823524179910638438653916578937278356938147474129804062076484241899832355270612369332327697255465075068482331689931162147290182268622420150439361288425107997860227277560347565678251475581046961222288733739617661392174539096691235853012689292893231302204218907612468819484794816554736139298636987016452951183094649172639404873919162488281018396700473122281035958167298681345074627181412975663311578403117532984326698589784567583811921766071515089224674043250991193217704711083763941735178756445328198853456308937141080115011224470250364362909494447283837876264233348054505059718527539536456944622831410004654187271138483291703850155332792512861368866409612900851623914036567198105166072662754422872877375685243436692895356484493020495129792687015956969890388549703994796643333002517555202320647763690748819416707475024192171941542466184230779308903085794119674884785042711387434942764665632075105441449552364254797337729908712505261774429397755061633166882583639266529268111893680110813074866753873656985269205704986186373003104391994305450400621786677572470272760456336983357174021151201286416938990077094852906528671923122522101991611661722035022274314791711425921417453082004297390779192401357920092039069285771233618831707129832334915092224550875599432946844006647272622110702064847183345901841142811171906806445532424601497492268550263461987125745847901454785480462133565995243776082844530908634052757421318679932180908538339354319720841877721495349604522942451789252787616807464797725203373967556244191009792589646439211811573715728395397214289580795474116384240542031444356906102055716876990531400532819077980397826934202611504946859852124216775342057626907172005313267026232687101104958134875723360567829513883882254354069717217195478784932704029860442329712658057461916747722609156946378348687682233799812217276379833879433214672147307163248406473192258318823132706478765943119371955269958427154834651259264639595676472230575822666961024300387571693337158702031071431297279637534744911608181092900992375416778686001858187577808142584863644838988839677817569372446464932083121522790261524966822001469512398613216123621959266602562674131788551287045694359150332544604733850455890618864173742980882571746764734500402317325236093089101015351226285244828002341447165359538585226227533323870479629383628043883913517271931862191962183799256798731953620884925696984957485882445671071362933645920139494892243407619152407634988282177009950697317426982669519592623495101447793748739737325911322810179427306551501706736189298143774248900147225234583949039223673157618853084598044942176309605608416747053596134669611017813633945673242380337413467694608053090210996848418725298613003538525094912175709688842243754079782824788979074542916976225285887582700516639828721021643906324662207585644410286823147052555058679179894539491258689158833608116442380223076596551045929819753516487758985409062332170126612609059297490818057963249257175779185645978008936404913919520313774163797944800941761142636848771546509397053146316955671184570363015195996691858917387709144738638853580558617022351548233611788446044430559044754281358165883127667664883017071181157106802201188769544520318437099181087216427878383584855061569016228601615990640695037992275832771121250738624968499191375149809144577599206485574510242456218728954958034351854685950803931331729186179721350918926639034629972510417674893222286025205189861347749447227274053503851844506446988193647546040704836231305341111141721649897448375442117531359751110100521447697170818600063492823210088660063222654929838614604208544416789349245620234503815811810614168349241685866424380288946603186051993962820742990004039298850914542846562256110849750242483365696568721629252544637139597516902096290587019202372775188074128840882752275521636590576014176906098236014697455656105836246589310683451285647053597414808506691933667392430700111724343379566643532821685755599195734260125870100188037454867200450490608595643984394858370999247307673733071498107095938258165541215754316778928143955928944936786733740097147416157274189271329152390422679759605143438888305851712239962229799402448492480128601500684195435546656599695832230998153873892326341114421113397144362282786904875066725292621138149390034893862680497198351357272192994682560313997431771443721687612229170311301745764175778882671128409335885074859258355870568942955316252844618477249407562645790117128076973552095889378415661701028842954634874207991709277078934583775400000430582849362918927409611715952611919729463746283625434099633554731000146681909247014857153892773326706527906026942544518940386286974522225967530134299269561571878512935735475278201386031155628864063207863176045985778629444061647214420868423002308243222902962529835782971196725143450897338260352895164189684872865799414610034166840089009122626011553647726563256767720998940937489152169663805760884452778142488804135099151364906747771421527266832886683173535362010943167194311838841778551405321161306159065263479465843406973858752095291368381898102220691057408359822924668203233085931852454728857654954958946244274301445868381597542664351548857121756984061705729133667357288651153776843576491709404847349106689054404291276063496205884545711022610810031920163453057119207810615582686921568668934669918344902714513690018615652149835063916842361769191522922792090223760657005087839368637705929276621346559842083145496509222638987409120554259919812203060305271489121890967931872487778886493477918682593813769472115174120296658724189923269731769450330392607569604945776639379272759863282057606929072697428186792653060380837113607858951424807580435959500443795722148590049991744542905806799712797090183117476384345677819668947910215999865910921155488865323774435317520678070101649668127129752880768740916705515415157545701840322064591807973627938904412298297173724919015121313146113530458972802813563433580574134895085807753320516456244529987364378263745730828038553799923215559526651603787129467651432936456737379741498590634769592333960826053586434192734556137932556375159680768056331358050418557729944102132311975262095229399089444886054132582552411541668424620970409845926773913259320728010641878945668530234670834884984774588098409770434792423666795337578523877010047007219748061360032117631522548883013883680347043494233490102522842998133207700424584133524969445808798154157043456642661949373263247541473087672702737529492045822401184253688403116411957748362630433222552745760521692208355773062123299878731830411794099459887076186189761339530811441929807406434241724071303513666944551834971431890257798868477579727071527863727250269517700746700015987180192106562405479532427994704436200403132376342063315985541897608153938634519095554157186595721597195806842237838068331806594487406089240770768152806737702152708431162361268800896439664940597055902079853998295503736820198469475988964284541862380568552290551238699556596148512886412513088518911476719284900589639441145411089092266485452360384355837719654227923630845304448225682407605352908796990183662091384747795433307261613633404579342896289192607075582473480410074391619274965587882707311903286305820370768342003080896761845806328729816855245222471793788063405390016800476684507136219188147982433044910704675251835261387531430395832882693012592823136353184250876260111499904656725350222196681965598107394720697218390549874534261044079474801879502539285989319193169885721304019857246561383301373389249050915956110627811069009962085887750176112110602408548881146368908826003377023945458090233710614999384782762794688921791519401050060128714635753523255896222121785733878435402317502806047863784453570058907100318534581945834792710614216218879680256393147748691718518492815547560511222528659978533995710736842429091800114981724462486545903562479640421652103458848024478823898123433612234791427749613686053587070187370079138811313249321572466067144959663956060129009782727192093172471881528145586441703987615715086156776576266782792896019062156253141660001965107341254507056593045861540529668804854836370400641839425786325279899319732769295330231905702370161270826347369861098566932752555097556243330598421293394344377037011300680475445883983848369044005317359364681353178055439537743620200438135985265766821309145784090444717155257183306851674830389361938642964204713079646928805483612243707435817528232969481468644044590576042535247403316357211500609248810934442360359637955007400622583340837688396303406715821646477771707682605016215702165348741892534521579184048762381928715410710096847699296502873736012522074215662007689726427425260918606993054812384270078100778860595141469089029492759132715260832030292193081997814889967151711187266940825757765265517302558960488587530195990771829569436407375452222695531689055731617157074476829149903182943682675390514117924722560922910572854874104612347130128735055137441277348517637882596076656786058647246569683175908898751312346446252145437963358017769206745473976701780094078014297366116586624217050637838689823817148060317923040888567888410803006728569481514307666326512839008750241979728379115666625014753938819840402508375727840973827956689382527705849281141706679015583810927086186903051588809740809002866992432344295824959613747343232189710870108732617861672750007474519503889479194666497267182110972470816662187043793327240489920482785560484712360909475701819677767312849896822826542256988670092805071396147549039823073174436900132788363188157085251675845368469613357271596562278842642982065038430698386824341817825736981627190357022895809310240320458656235815114653185041162354607286413482106669071526116202160210554211955348863962653129866225365062711384930685381087951674574393648711512930825075129625622454387805537591099727829632968318517644680247522214842965613252675685705889522412305239471212713969773492626615202648192567913783406618916564414912906489876453539596032315388063732282225906393262338773976811208903638054636510702246272844174097552993672447452015543421490387627785899470610667993231276280624462484669256090677506064443321009640221491307034004967968340519099487228647589141695731626504984777138330853523450391395334552740335601434896591795671213808005621896747177575316706866617693989498981508812787842514755606274310125614428258684081999193498300929347173717145766515516813804596296138251478353300640137697138158531775578737715114565584212143364036214386409916287950015683923647196420661946547700236131039751231308598677439872718491312519381261925029006899107651105975230431768782249576250091229037924555287033422894022672580259026937862433536151648487112551548957630433613956694127969306186699115021617198191416666648516038279713346229351108009880649340045004941702849696660505553063935037639050684959449948438083300758170004653191524948489721771760770330710048181250842600735324027315292491611612705146764203578475902747447829953208223514588087415011563136903392399601119046733164976429204357820290636946044557061431031083266711359043161665032373174640118058744588191074595973589248104421632855063442990356615694392618233622984390290045913951082987428483177332328672468817101593684676911465435222217174376669684431573199115451083539946752851995117966047976882134887640869033923192969672981494381759907328620373066552368461244958399568227323044681023655008336655847087906500978825460484731534720637297083549372360233979182876969962496651438101350002575652375618889034112135345672994203928044570723129215002042949536655972515938339587817694681647431576443200944496394225628188749826747895402411060584384004431890230417566937418801970572136879054020215761023204323148253054556827182780550709024878122998482197276034665034413469817914303498340432187711206598904953407987253640130328221656444522178644234902332501411795429404086380683254306500910387312379819459976482240904625482801437511317643405284510847633436942870309926481180419745920586758103797352037148290083641811227481655096771915895502349884715767475600689237691106112546294024051094926126414261907530134923437057492610391931552516764013356930058269950520369429835893951732647866322166841181779184079791225088656906620333589538658184141345951433764753199224098269959305878168285104766528330794608915945533320100702696191770950767488639418763810906068169255153622706088246742627486009173827773807990026099268009087649433811073565370663094934419544843784026407563631469779071528516677726242514169670963324507669767268053079381754569503716684614297755766684589090980588681617333558512761727304950612821109735566533165258632543185789175856989876797719192149288101240163647463581071218566552307391930196074425672963423910225827600714854444298962625978730727163376563202523286953406669698710280057907486905483965877954152010908954094391967044209212659102949602321142293500896422865873631010285316395030475255493480739400126154565971156629757061526687344694609892912160135364310435037123769596865889292847105045849541946478534855196603168873527875645867180236266214555564183826165199079289688208731674171824999860029756429232984563336603887283533376623925152948377295575611723015853983201027761677508791992316226285626241291493172096788610388484383679005479195464312885681119096868422734664896986211550002469936630394709878461573809892645870204977150794679120787919111437130251916999839615373887731496521862787575371449233445195417397569441509041762681243048400262067453301120150491865238784871533698010922730737897300398821633765313222504974850136385796801169723437962801871874444724302783524315930108647430587495543214690296425868125319510093288927115382369616314786552870513970227920368257557841591001647108839090392119852316535348100758075858711784123551491353763036992332033408390390934011608818368822656706373576170710503102521239503657770517458600984016001838165392430579806397946389343852563202445190332681669900277631647122221398711123922228507967032103411907306079672019926995978355648142153033993927432122141828195043392961850316792755227529408181629579304134037161861616995526342296850297705784161605520451061823943820244549027622891679381167819066900883800655179867354224475588695629751545544877950642884497643264862979737126200248249075391774633871966928082557207804286240810952446770979584851165451052967337916282789188618495904665586410400553859062432223662819370137721640864359639394408853900715641786001175169784115863168723453072673803704604942052701902130011493472257671167161392099407077526026977631794168821877125598181345099538629918705429824422539819076207829724068278113089844427357358313526837777153451530034092364174884851158813784243227437945882187337034679660317011475826403202909091547681519071338396301450303098928352107569130509522620513919269241551341806035904201674657914767370600044380230446154941133109723952981778008445161887462528646205892736893014660850082653931389790177937389311583783827771299859628977316317560611319477529590436001350772283813868592802653697133354969979311957338010405889586651057231749141682834920341551863142604103398680601864432229926014541754894518052380400031100989632558379688399998518166723568427457665154385575276334376779092524766727156252440113081705376730000313209464147985118260235242225488917070066795866311851048454191571582247942397939729713598830243457628473017480566941384986802093939259754378330702980402284110124907819269335854188997157700993152292427495340787464968166732270475542482214995694493046726271703198607745399847444987998442923932724118026664813300165021029816840435371246435475505764090641070685876121950563870523462010113782109917861974293494259392378464286595335984288973398265108848433649530367718142920941764404485109971615325993344873016662337119412323999297025164167014209457758555112757832908621129651561963998526576804619658452567100107597369234941545936186599988414179893026295797404990498446716318121715339421084450101855056660179335738484547211755305355771143451963696938728576618724962945469233401081412723692182582731843268855577988744829415919412511201062927098623092694182573101327193619351044060005652002704021480478084947590953956034197056691152675912697537463437738562950954313082876546502832307491678496605953906915783200269303066570690074922183175336099772438139095121124271253984126002433670236741233205857059888967251412729179263565236700635828313026847556984111131490035500106815590615327109871513915122585734399054258157699509099849180028116121159558016647580618988691630039185321460973289600024171821792348651874858170870016497163731960682256587358973769009447361182890648967033454365013836290434898507419131226918391685022715054109889116714717720991763000216535412638635272834829300997112253199951429910505291440826374910944934176869482086671870396000360015927133994310911420715023126275222370115609229487261337651107850391307017688997645356750671923844456472708996524087133139734156410925160610308378259325840012671216768827093743406355350889302655597012205695201127705444026949861371726895549949661972081495278734506144494869799682006265106095008636052180869713624607015801815780347971318446390719282480599469020553247645191960741640675260645314103389655122506351917394968598607494822781404920823574110861904614014722310167863487348921884916771746664380283653495592658326790004983974058199277184163098052877054139743283360249858616908442899051448143296300901560077818404002403256625106788494863315451855726582988700202756746914674689851342456947393455201237727462655805872229006856634649802506871906259863907550252344415868033212094022299099442404508809369674345079752568162151631803865674272073953405342717465640614332150431502373106132457937097280452588998437389073041487024842323581152519260887516908955895470705512572902392126110192485374963639602759936743140024406645235591450999312328692574309583860299601269828756744047263331396243279195764979560818532814147452937433523510019125943713937470007057813699570955137652688312779324923337898848063895542027630733441775359458424893112335268694909766181309138433930078255206510256701364701553387753806442136724861287572430645659380949622318456581559635400266447773400356981417268407537699829299046510458335816167567811918410890016984081245940435576811137178284091310379364887302913798726789375404444412797315260047022157552347510251308291294655952677993308925268970522259099721282747055480800964664802286610322822209193826305304293028765952255382962188375659132331903242582376075395235560772104073321004186712951185057329130698615015438734923438289449515740203461881566495825219141541620638782534184708969273082468271609395114679112552473422524678660305591580271590716627122200764118163995190129167894505597621022699636725606891785346121833616537268977122799095415093267070773506054657097798112877251121823460098980619993804005620571259581005744103750174527578227204047995933083929776687339412153062364433273969099387658119052230536556450398648867448038758606655593936761575684000571490696810545647800539737966541091138819021392325816021167195162086492198533535468591838938053625051064455103296396731043388042002763698226988793967648430119368593059235902694099338611492828755068790244783523758652818457946115390360813225629970614559327961498215032343463020569778961372344660300015850427526488602030658080063426126725366218970795843205749476573015212057339532072196012050690725755443441580569397010255249082162674044763902940496957902998981156047724031834639357776496983389198022973393159195851843889019703706430961834766643468584051577261253502633504475035635813860937614918476613545192388276540467582517205710807486155224774142565971605189457634816621473516542635694410241502807303591517842980190596977539510643234488080338305650570007955781155801811856097228775968699668139881340969958531162354424250802662645910215680595906860996992898246014240068230204774387349263818150386607728203396343306876605972044322442690387522307889007860826963939049768827845964204618682594858040446651368985404278851177996702455285741554600918481389261734334960624193395933580589261648488117045778251832385978385683977274157056844766098549077360774525691562207608266988399924272473636411615750147757087433085432127292688300774812274244723357338087076461723689025820740102213560367922549900814214583222477027996550189370728983692445576203441986350611571910740635680791062093916083141431724409907020780690575195571701254024691875829400892196636372927576840648610176486368261965013731974465535557389497540959704764756446753023920592396564444542547589045633693437496485583385917941943646695074991241551056663794398580272694154437642803074794659457786703697269928859816013926082277939386100219364092339858399540942905022905629126107220068442943059368043480352704968053024343129066950096632014502585594730724998607322406985791037356081354793398372473284314593533984626758924143573826031282504785443724816969733614958855741782282690368576235172845414332697721596843541295068074563113842619313766223794498083802469983464631138134309204127794184201141959263155559976168583655171028825611193569271347416873340410391644515927058012169783763920202266990775059272046517364856641777316881775401070466138012317244763243684830737281938645410953923039530281924858048526698861819283920729701360038129821575004320138758802315280825658136578357882570641088155295907622576257962467395241899711684351379999882809922721408192492378560448185576387102191933614522444705152311754984252507302939562453249719412217887571319634502433961516073080900488682165630447788122880862128165857489249757781208729972062951256251480948751110941069883905917446903791703380211620188879556765002284488546901830261149291396722946268483197876434691152357579848484466580671006185388570712798571954099990924874146099623689099331378581451802226211638388548602140852117715275110130070891268906801725965235763308474765225500504281840117331518032963928924117516905480018736730454578965568957502356355285030765896803495257021991834370598650960161126431337111936680514022149876959691709878007042642904822043273218018609191892142351056675545289118565469673793931023210849062029567959887549689944429799675295881004113623090970092148300516680664780211092019244664843406247778032901107937949756843235412255312595631678112059774001113132810696127558574116305639468089543712324590889505983265719821503660875812143382197856349692484317874086529842328131030876403971632771580024956841428427360599603306100615501458379981050328068797826007324803322473097067079230742930364226110407512034966959317635548478100467356061529577102294753608209824765804833950039042234447757603746507849548968482117371176672296315796705525282511602056603040267550780300996700680094705357985485601877362240241239418955784801655244097586557358737425130307828589932549312499072785124757031395778806456927828992188368940600580508915330351252438067628920479208822731583918391734035637081013620202269192011305530221600270971277581776565591026262242003514654141076503212094627449915583269035635591233090345845244266369004707584993811759400110140538847232021722257767147794306534575984471816783551955833874278727044564425146982438762695839213938556031068716311148199343440315550509561439173725113400321932660395798015867057711194675656417597240727238694838037586471451890643511352442008735240426582999373602920860339213271142012540953294291622089807552110871997666111539860224227688879333070089938881032438610780173790560070698634458725962572797450208731148501524745755475368855045868500824727222714688090381618714367011244705026141749103935742472919463518284948444006338529162625355415867899440573533275141727190476766783851112642804579517558592769091691603684159014788659172478100389907385226409609384337121014236707142791616093421889940746631792396489450468023741423090363479080275166734947695431722058503361042975489895858465541063188803164634145166258151447038344867802875479266688934220206079472823279643681667882002835828386590346286511723498921440223452213795859261227888192913022525309246451373912164012140878227681178163733812286097701359602009272412429245525222738283219427740355311833180011045631683922849687110772781106434812050824615748135476440267619220347639759429029359594623084928855816512810978448909893429682078517238746891289413512677133863282969608596365379736044094194762252327763990302618744399957498398893603968763885948196242227852925713178518709130697153733517272931027314398857649609914978299280983770116728700477180148001299292427209455347677126917418539918324737780509652837983875039468266645577825982784461500334731050529074460510510370120444230409918739592653745092763862305316827991536573903970244829509683209718359692625673869985071060711170188700698967626030998687238434458360433251750525619855537261680394896591458127301653753139442151416277107093641475283531505638131150548395531449121640026786039420577644582993860138477442982640564922634723103284818231922779209049339801913685396045778155871702950433298252439039355819779315456124805091849692110788081558493281321368726941828698057492889571816712730284428554509844609119531102676393395694282390028057070151542655677291909568305743153409760013437550398845625658900090610705308154624138540945449446874379250500315932864658776093985013313145924845074072108767422710518166283162298765603328161649043455483379950279595231373662407460586755944278203171043043437479770418288579967904328115781932806990506208430480094302821445822095739201455865957417886409212497854886288703189740427931667532704118372758111937744462328192937223101997812480450264563023706570572017064347570041830213484630345550384323363243757830041149760212659129432384636686807337405475561244105560211940460502273324133462908580815609875767678768797585846915058687073329840886911168539998040403850485741423564460507507588457255222030264013009178557647057998055116597053012784153471683820292684567454163844384463254691122698179260448137426031917741881255645014812519940647863711605465649728065020023073982099638107616181408966158396377115773644000573766070219370498919780256651844249063808639161929917608920582366439655721486727760403785725569429431711802206517689083931191890287949251279503835900097143580230612498388299411924803870739180477691556773500288531063229172293919711425631990892785397678898653767844207033425594999964402315308694852458352496153248764344156207601429281230140711669713101460005024778604704646427185509504492945635701814418694085825751431570249988413722915482488276175860795988287537985140669398628907098854537722391642436122957944384605576474389013681677379891581577891216113304049915261605701767198283205043864833119308093501986792247960310997146512419312459616043387267588412651591175194133215627342535916356321172452471350345841045445962082433666722703356877285335159972184242864096870515568439094848100354447157117244310271642505011710899015678975462655090766876029999598051910561896091729793840699891924254833306841302145474270498066418866668523324730463676631347932234783598149905940751220172078818489807267006424627363878761084913475959832903481092963796446683881187062294827371870120232010527194092430033237321944863175549910148663510118587462867214515578468600617606257284725603196024836734672195342082434439992023904221962044185814313883288250654650358898998088784716720703487934404012368079638881768499971583194675229515220392575867971178150451150758569146168367350837055454631333755468060656837559427899697649395530887446899259039966087107184141121018331001228680184814035033421140808772782312891334885364768548076317204979289795356227391050113398649994955408513477959467294563922361817513767533197590764369031591805731824286358431925332385008021189747969731532504133510748979077480624457412489381385750548308673007949615673294911876045315615161038105844808011329419975940475855674963246152656083880160099893622605502247613656411420123604491234208723421514336791303384801696860136532760368521011523155325962562730831072032936436412465548793978430075356199155637712545136609371795869200637148204702786082713254984813607658149619913333552404987992532324994527611942378560882532271080951899721533278873387922810873857533350793323667453778681650764233403721426542447966080328989302102877939648709640463520259912175746482411958743917329926424942441144348317728237032574655444817015896646272520903694908169312708731546850426760204000760725435634562096034965005846258625890691207886666022035593501791225221741139167069071862483820350669821680521637250324008112166915658939474649278014097875101962150354083837397887841846053453651069866548458106477556516185929044150381272748537546630940207740699264298408698434742734204290801787702116959028819745009878370211117881380906738757593609344895182610068096458061439584810191637778088481374347277212847421140613522017081862487309223789612864693401519160754998779234201109112105510443581190606239450591432041628745210050245630139174696599175431037791353946940028971603460623566142464952067083899166114346397381352290474437916455811681404521129378796427154379533059734518396809671631043845985875324766512332628368452368389655688520967877491381181880139062967737461761530950563498615404377859197166726295491600674694032854971474124512544072606992055019015236617540711514807541923164627588171910325919407444109530800316074798017746662437442628180865574237902639805459583853667752442324322921589540625596263896725276447348122669764691110201330763029043613767059741260712707161853847867163362521799194868205230832348662534856896848241779359775152968402800080985614196654390371316569703588466659145132996412497391877434522814166749168130469418790797840454393415873356257273072789633377811433206763793426946704146570424789115986537183947001613355008685136514763550546905173596135421001614308481824839182956331470869013807596629739601901297655746663368816583590980502998645368097088853797269941055788274280440968830374557872926194399592593487996643445073597803887136949646779158047130139553611038104638992968762000562865761077049486494598060095949998951886879057279104800336396048338208452973607136799658135071981744590421549518948832198888733151067925056251560698937292710179874260896951078566467587976215459224352902484141884074738376268326103828647134690776103633712897105930976183693810352541407619432417287759010674479990643776260157811519813860249403041210691715358764347729826746428183388504727097150324359586234413135209236026019808132675884268554227772516455184961333905524281273832575966409127201344138054817155307876597273506744903071752618293538223064210127049134065854889416381809768530701510533837083563494312984364307352168536644040236440109900474791336864846881320939427924668511224891148273358585630056494924765502008699136244754871897841707441336951730354902069235936607847816553431776843846877703617271640010014137534156228522519268905132236131906179422873845493536411756513430147902662220224042918917562452395666417854962054248676570199925185135587370940717503182206965285599810775662587754055729621244252064977239570241644210154160567908638988129363716200789564338775339496222994710509011659726233698781602170835943677909453123202248546566874695653133270578530504437977861532860281191125962547681481426290084838502689664933746249795504586163991101259706466665824840353245441310098490982267219397976744883555018311184133314939771825651792251867157753554611761328002708329645693581117546797980334824502076507887154879074495766911218322876149570635560504163887255387815518862341756235049729843497917186284437544091548401285732127788800550201569170849661738550114647512710531969651315888563067793246108573383960540599936431410621961046633945585849505576453117841012944682266819340555562925109425832562231167603899534873841601475332925210436806180797744259576836199568692587166605855450296932311544326529008183151027328168386175679829399160944021489484872249571155829472577010762064859382379835933999122209633354418174491614063446551086802613897252101590173494738703218611152220464626187317068411485560450919364418987298980653818691390008980175683905284911653676700035407638468034665403182763826195399872889015136892680303971939888315504009420475384628032497168326072872688700252841469178197581343992906424363051013145164973968461255004675738927017755946862341028692273498297024344759195837708619121387411133179857967903791281341008130097861174973493176399857400483765075398246029941074222199894590341547221243605430217941884719976167643582498754661733119492990354947965191936695528294092502867410292059090740552295134349734550234438916073059407815032579345919114850839370086112660698481422377615771451218001093002386033487620305575558889878296415481630712143494253482012438594445439936370146252895505179578244821501801333126456817094702071668606415218490980874786607230144914251599378760063372114830813854656140878369437617041725754323168994415041620603046000767321553708812772181353730205355754919712794301453411824108660065971950059143544493786489631301735157159868243651148338740929260998321091570861838712647509906126428188166502128883604399199355339360856939486484366137947177545806879099081093238679841898238876600310845086368714988596533689700178971885395446883269530225167612918005679121576381321041880927816126172385850746055180197314923266136015465805740151695652748112264639862544559340717876513669797015304883083479453434476220683235232373645094192931334590348268712378929802195160729776654356262634767977829326820334842407554027192114003529690335122022950343735099375821373643562667746340355186034429642761924997655857461734205372484222972962483309336774803468195010408177813710765911273462048300274489603016229805448740135910418777821588869695677781273768619967910017551832955131341031927230249131105827166062100944782577223829925396497832640197318844409159944356217024214305663274933930135956756336586516999830127946410408790071348812591869853942446651790182367251970189101548793175207543907891306329494346183043612793300966566622101526074206794738740085631484886517680258577973689185339282193805401021741659166692138562582341290270246659611765886972302385011070794017051365047614919367215441495711086375242755775682507987203722869312988673317190109730150184321711194857393329174520614842229269949089486948986846434463577221387442511620124345696979262760648398461921470520970769889503993092701016611557979154477689511362371236831019579886472832050382501481587943117206133806721311313673129799057800869034403759758440707109449706521922838957150882372264213149989950181962974363763649366842807522252840386098429590604580084341527882547943732217933519222032527398627477643802075306846020645881858981920184096061957805242180393417338925441159620192858646443766537286100317558496008362224325566268129618287733147178195840276071115761917112294111648631777910624237831387585721880241342029319456523787976017859322380742276188343983613213936616500276040775178821916024965372514227010637051007310720802546552595624168722749929137461236546345237215990542404587252289552043384489907532759065054323859029226091149819274749296783594918718064019632113019320463351898171975244867151649551741380063676215697282723426470145445077030985105491211668068663780038360452100786969390816259766925422573471181491197370207108973006408566710743402143595587974079906918835506281497164986129306427255342955143269740760487382632088290981760859326705283742283569331786593173207731177037765089335854613070418885362973377726267290544090201975009163889077260452892862205875747338784548568991860626724409972443518446635048554135162523017711390443007083275394595750681968449589617904684870616533280595082490757489953059826995550528640952810501995261006613173176890500965529013538792922133996369376453516009770898821095613040570377847532892173385955013822701408311875596064592103499266935889423859554738024087725798585985188492716379318719028634616106033522828846209644072726328354729948194504261893985686708523062113366505596306212098792786779910732505348740547076310640359709171723128152558201437667885087311588180013948117221150963536965554222865635536073202653434134855965923885806524766352368161103825600636459942504214536301722253280319534140320624127593971768096550778465953638786504890955446723260439425625878507991552027706930710747314648866371072832631859181386008221130807655173348535179748813038699132051434170184106412539917480274977384286502475292076313910149346843799889952127853674945729569654003065790264379121864326583517514822296307210675917153870320474039937795484778349810798940154362154984500081083292127446090807100463103294568050597509716454063740805074893992505685988703485318117977014367293471273063905802688566484902222361218593861197099833848394010300628310546370400305576621111338536907824594325091838667745993163820809943689459346306377773856936387507823347864852874577667110329958832407831239952125126991970495656184843122362239956823611161473786380055558068632725446412112667891204442154583753784472653133699586124595029254627137080974678488384732033371381249353546786098995687028411087265030784322202753528776994407119841220327637015087988631313035112372206832018897764461654519964069233678264467231388160819722105240136520677802519678185433125373286477053188925416489944156588881077595813756985273064080914319725062497841585034048691498332498219011699673013019986965867075965505066671505448881977865520036725104524242632577228017424470409926434910644973161974799645055053293141927560037397437254405738773361771463337731111112722296456085267670949679643979145627195457927984967916325465579114423250628561142014934507941665397676484864912328217944207968846915962061838829012681978662047914920309576194213927730387620621228474082178762933886576764327242346370417032916515306710430869321599660041741480405846736685705890270495751130520671694616370118875750509577499844382678114545889138308536061207233332639841153473292721167461459018124295407526080873870158196546983588371576747687922045880083143325951958687132665136122150007406582476701562357616845349921358298271834609219040224335618928647432699355583944190033376484945453661837833362580563643023948238335287780976309544208635994052852529067973096270641165542109771058114891242630449110646843206150505992711833031476496976769054799650410471368367119980748862260712370147205446934867866598411713218859729496314401526474616786473507753249117714063850187099029334881613914085946021440695156409457839851981173896178264360580796764758024571565539444239497091821512721036445615712368595524397710108671905117468893520428942861105910898306776426270010364917644205481345099612923876613772264554726180752437779987589473173782149524602107988493789189614474601711087792361667021058935435914534468977255442601315456065166510977262696540198263113447343587740650292739812421446234036446311964901816663696170293087922040826440751245548974486529365232461507862309878310523211882514709900736149571751672677591291946132906750652054011944324080837888593594239816559707047176458038889190300565404275043368171054413548290305746781366028102413285135740993726321336881820678412323321966281394755866804523104059912472091527836365165285511044572458006683396178814921656059090178451611408927934255183822251252260041832154096461738753313690293936897912816843390825839069244343258601448280656968421568152030946828968523275626229282181923381671772359818997997381032927690448499379721502013382431374653088315348135702314482084032337627553366781293651528408450195050663692514609687944286563744345624614533010890864437051467581240957028330224940602641609009482276410414577533135858754649373640986802203040645567375073098810460480682609031510744392490010263518314816028193985579453916086171578707621099145489874662545189428720748154544011294484951059844109684929734665497029106901338290926056978373086100001777453608266951180520580389088498894386943385942190445883449835991682926833995516697581553695287886210233405001035515080725371887259364858156102656569815948048158482838628775290377303248872973961096620236898623828761613508563761675339865203377030646784422840480337287128190671525307596635738734556759328486182112575436277275855630396461960642356146144221396310616252272815607637209379358625226879985573291595954206186931857403847115020147487193715299800667835477258733306474750134503824041947886159347483539561798000769826073806348078617153260330150505532581346145866676164313058917674247497164387635985786754993702241840657019016021935623955465075299717219401603842451936427521167309699102135593404736920273441483731751688990039165290393707847290233840066545247978597015749416760949919332456821949309586813909312393754212579678262961284154002865254248774608490542018581137344190972418772383648734889935280668737195988612025937881746482108697683911910117413161205254843373374360426141962362201335156897310745886002681503244711425595704499543256206990153258584922701995972553896669004297360152336813007444211536164357476548703079322275308495353670295372086660514418850351492642997856218747079232091462574408498150631561182039851461329222148958164553355901160678160351538215922468369267955952130948269627431232811942042359234610165716901473822626457976320787247503873129723862065381918201565228925072057909790905723143587037253395633850809233702797046355440990228002815605543383282861409246870147378688821002850376509692924533017517275716201668923021055845497564192227194564758085039331541338916103398792570612841816421054725825680694877504991757639054256213196231623196240950039547074455177355208555853997742278205349091362129720080097068050692294818411050324338719952110376191718319805715456648674794414864203620911676444533012961232731603191991931309137413822058533876060970289555029141469827286053741181100921781370225281586962278446000854979210334035466189149651912609900411717912438244440864805099786182717126662005887413379993057106236891304744722885954480775448876881286679589599303734820164117098599831546847728356409252920143353106489160064089398256034807890036758016732636877383667092479967915091573901219741363184529164034653035887744958094031267636710601906181755527939208316982281610924700733054961701383066074823869493072662526012102820950607227093519536327152451625804140071731065378713590148491790309784156935362057534971580474679086782793663314992477503179018560896513424618621139637337473775096059701022292555687031946079029958921891735865880935448631801457278150046251215248817182341152646355891995675317673842941066596052029223119992335632336351448088457405362537863996472934337193037608852360994731222556905448347831255220102536134910328337610616235752818222010718760064558692460966346355104051792257453916957979812292492970170520197326916066660622042827722643228626229592625347128582172506909766686797454388753808897064017120924111707277811572537712748220265895276489740862654265624331034802912058313773406288764140337131813048751666729158027168625402808230940608424871276581718513244907397494996429834273650349145746413749992337069784193353117398223541978543013954315336010187407120722861031637299900863927942671213104297453289250578261270224447565703939091124379114974113885653632093560380795420129999945641204092343114905928638581328273689412941147492283945448594611009998642337323995193630355732215782530035271980415458065207284679594273099920847344143933331632951528160422095479008349725985840010186704306206231137278314239928181581854866868293839147634054528525301058984162537982791235422589753861304588430512577492511439853579377476235120700771204522304768517744349509881742836641923256947428326181012502151306700773503783501349539793405418088054822046305500167593277877792690499933072009967233190536720174738755104461837620943017164124277627986084561303614438441858434362039265733402813026253511364444988747831229798937837793568920166226248291422785797381986751836618440368753530753098958248802879300850715544563071542190660591627487880813620079910265357840834917215026825884815450598187515388684695291799398238669304574693019113729043007955026953317648026456737382199543373104733291397417981556469567818016966289031034416598047054798901494403732877621217072167950953571032403372551323556905482016729129114849522817629488461529605220424373272467029329895410695921202527361933016978629050350443852462680396141781289321375605702519220564435436304934556992432172352110306979905318468347975663735848215066660585890932992703102445146557873452893771605196840709341849369308184420274157464460263567233564536267356851283259920469052883158518485274638403828871165074319207216674159728684963350106526740805782009194721628746928163794160962208788844637576903300409773179829459848056840555509440215619025322566175096071405108815917565044540942615377731473179062582796532871814690569268504551893130860582000374661418203011397489931445842232702044108762579317477748185847801230100118690481887600026753957016083650237360200598235784331054155031504361849958971430819386889896347687399227557670807210611930478924066874972419432117412397081676681276942710605109949401650903490417605219638435955788973098155634455593738783029799699945529866689841404316063654920451114242010090668547273878041020953034983365909084093123832618971690313210260940358841535139428555402359057460313603322365367169516670543735593928398642492370647981718720831018864003752103011396195516289839672433487093405390859507092340237518756146588018564654074425202869429623957273744584186261498516827949863794900855050175187802259004356574794767694285511869426907493760015320410807147022115301711207320741824265178527829617775917953185183137755434725629481956883628601318012880289593308486129950972232930419676241666817333208381013797129571668599414744503257531447319944912091821482093740458456560266563515815242955895774636822377505461684066185425205395394747830448509291592137572228257488137641263804988631976615449120395062104144426516288444241380062977732735899341586564646317566787921156338477979207266851151965522753868569039217001045707116673174295754515650872689761032335320348878989682587171243474086949643363216897605392854289539727613243860316829148273533566685221350609370623471661531978103931799046393063047125410703504885005216900580552286642929875557394778744942996842268004268456810295424359752840083530299882868794990396575095971824610222592546634829370638465645014685618266166415302430163269226691876428851153312507889564659447893984249007583693147448920263042944336576028779006069965920507020606392388956612143544649601233198131275266857786721205633340591776792116569936399109839135623664609960158624205564595632094320672281155104809275894152994947139185278549764842924112128583801850208128674557142433508732869345483971784943841235675954396640301319986505110432883956007493991044986433908992012110327661696561619744974559230353264962353947059219945409535804569684686242473419885395971238772700374858912618436026039773645064275016632212323051562780996162752484877819752959996411973760675606913371575723782043097087561797500614516078021060009442004828393998384042626292246548627140638115350706045543199049039581038950133502199664027849751900908856160091593710534250195771470655455184680484278469401837699374338064435616316972304963905497190635566310856555260227561407630315649335056833433673085474239512895059120646931399475020424527829352319438806363364315898513180145808532750732072512898828615860316443818826859899569278087848902743015496807302928346963633928018642163370022076755681820431118683201077899393307178597190467834895157216650801542989758977687937237277808116276803378732619688299570419082967488886294895984328854435375995038611241364308854708207762249962944562967591049701935707916869081364623689763314177456864147306859726242113017740641707066587951119122345311802847050304190732223135462721701280585182088793779875414265457349970490286360815980358964139843400468658253503501783111587478906917430497777843597040018385763445707524413384039641419344995224359599321534861389775028159259078813393694844435979902011061500020744034247130282712494146910408229333499742150834877993440651255916810528730379474960861353177702524321407035612785287216097103967752615884388281604500811671196502264691794757396175708687486475247043162385297765993193637265351001234257088678579092300719407207084230169020645617650754744812668966571945968557076596322805381086462529918523085766574052425493054788167592471884780852226483919416248257481129114818783440812641479394225195544918064804710838931706158047586654912733064956462765272468015291207971991148962752779630153219148852314471008496742757431350579936265910839913227709199347491128055529281051678337264973569854627717679920481107671509296684250159583751324418217797075556037127960178639475905884478829059179398026615953213081599671423062658306746353828921185639966789425904564351284836819462241480961123637634262383145028820157191042127939323181972568444081625967465108532705146045480953268440508990026337600278877127039225938424861298302434872257780257564221186724132564743028794958486496032809600338475024622088024798485467936029283889261453258678954615578460638487346966614823925899421994398031042959974548459317630723045888876594677244809361031519001528981061498205968682636035888265603835047486419434180176826668335096655407752162108708739450818184415667853920801703334541379530702275216389179134786794160862916622413225606999481195542921773558626999513582737469735515800695087090000869584948648478501885700298891121194111889420381869550301755981862834936526711992789899478331658528716282134276526458811194192657034760267789966255361294629312933520226427514193200771467085094134839000424931303181552433498304268867227423120698534565826113800912267948173463001637040218178999327147108657365289899922464418387889375706381178583970977058797710103516166904414569926944306237866325847956267239203398059211395789079250771949118484743236031866607852992999367912299977154614507807040312945603206917202741145269083738434757500089160628058208441038500919017714760085017339438396716591411857471183243733161982211284453366648873492068887736949865845350995114549519731318603979596224373010785302452673418501512319822679199014825144306507083071406639544888636927307603425899880951910752394197807221155594211792623743561099524009594870094750781996345731661741646447699402696739953166794450243822632110643032877340607961753601709527334805686473258023390078925127681626724776129395422252827996730078192410249793498966848137585917682847708983008045123245987404111048002092119691830263196320673462365133295724698093323866545863024497164310386468864476394978211181098233180663655908257744127305645118415619265640767127552413495682563853483291285906526066680338737462911346337913765849503959276105528517757130859948674826037657190403086722307151715394238571375938102928899703396732303339892386811954155971678635537805248099088590965255638339382025613567278255596847563741059145553925859140968911831632382346173708533209558568339711433371915424874823932186541306175404926226836162926995812908432280558594577354146668145217058225778903541825509190459307783747380939237873972734711706796323448892508180457668043620173868179611124583935174133506780025729054010139723060588651491722780852046516778920910912827735973612577355044551505111597200019233313788417201969240315244130158227331471505197487044165488612582936378645036552351011932903024443349171809565004826369507763706179004963079105436823950129466767882303439991450189839097927646311203015008789142706029114354087881432138966612976048390582208808299096822132335262718141095229499353849873772071608012215081543789801112457600105521182069666722518240356449383458090350496900336541753845947114780570599566987155773392576761214916682314243672673489926424710854456657363709755353639860947286080086912158124493971293929650719222138527570960611862244803997381183103952951114455361298884119939995087721817917475570005005664879863163122128054130825316367496301926110631536804274690208304544632165436133463654076866063030476847301585906826030597464408416115924853057339817927165727225382101033891907671457011405353634469130462727112898654633814861270395691286950122683995094833406138878622757901812891293339144702895690545092461746365234814158685109633135619803453376541254584060030333545568237289885349447325309752302326216786741278497849902369276244985579038170036633860704150981378562329656264832378588667072067271606560492440297596380003161625006532670193755497457017087404623489339470473432092940632767418382368670591461313464284149882891678663424170059013031342294713138546644640680576694856685637340074324889218650573275957586269482735011172442537788070218372615769316582241577060557820419085299201602341002203332035044063500573647188040793032054534785488368278770938708065844253587512036910007809196138303924857308681220972233521529024801964200718535515030265635665098930042892692546541430311728273481396841119530212371861290017482481032715624075093716586758209511791266116699106008807317916681163582639948547664303647311906027729628795168626060493909778629123963035959460424058086379618586570507971527017965617640401871327699055810084623314244524657797372024322262910797458433044673272303800538779981480623747348236081023093131709540244928550944052931305087703058047535273043470273731130671612762047990044678470149017362361335863245331492547449117725162714766366233707980159919643846510304117823876552777069566335678860630227261939707236656139286894165841196716936008500445522638530506202014108690799557573444369930083310614282083402793096352520432004049739343958630582230276813343080098579991263759800851478265466277343877217107737036237212457719684375529759348617397666037624287084217806346614206094103872326253558469958317593985965186883701844181092552848782729603035186495006574372757988938492859221133456095962947286600810144277278926133083201704760918067340140328170797028767111188540870438290707325360528324453190684307554248142699941589472854325323966981344099838155014609580337956190408501529513823829783163599114156217969462787743045882187538523433996988307843236498901001131980633574114131843266324336209809471809349556009371813308690786770899948733163213112649266541633967873694632076038056857930957397305261008560476349879704344604994312638634131221501056161661579624998787630871861264222030669085857964787913381534386022063834712200802767978465850557584031559845358367426708515425380258013951259487035021469107407658134663708322231093066577648838553711213098180828124375649588358721487518253729123094050017887009180631727218381083747004164875593811746930966822846365271041080438083505293644889419536192933695808708392847242037698470605199351847611964305915909092028062854545837199883293782425850900650863766260436323209168308282716251359294358431701814610828732035629569639072446822599850435708504509394601045398984705896057959507847809848736257796059240684540691763807927335841338383692621386223273765925474474780939868657747704034777897808977377451658673516034116762441359116347573224447968247829509072975933146506853259063866977541666448809062981946211547271407053330421945754865933299010139708680056946497519869212651914524622814434269084574941479394935956430605539567554958373778850395307801555363873243454119328698816697589209832298787774647973690060958408352332343767639410810913790757358245028586855478798624633485644798264051435012615730987294605672310717949694784445447257149610216776363100687318247867387893612950121385457221288434905032358786546548143858536783629960444711571612985412279175155525741827224045255222829617691240118842945307705605031248910374266312788804598616995009938273337557824518291885935414305355325916695060385000727954264082006426643823101110362668958331087412756955581221551591781864458355669679392295114454982578567741066965311756210542529573415541341600364725373926434360075758799373790638798732930878825011229309445774912768485543777267282584410636185618498533272120984121577916293475709114520632092062563120497842965096917423200552793586906282172013027623072475212036844269413860300569106211006899379989879339642757331033046222085739546381690036963765167655125982890721188469887372698560903873309472514519275461211832925840514612989076966851067187059402384133670435807636294173274320973315845774738513529329026965216117762890430586906632395387498130542693081961715369062529687774459343156335741798359003698469558651262853236166367075113276717931129208323655564086600408929238305688700577572565923623100710912922861383898861857473177027466817452734826414185385021159654334929016538959402164311183523982451265956643438587530200769092251527545028263639801526439249042674138706988127339489514824572373769880925422228910761174284552157619441637735909046415121225875804262556495086854320272447679958092931986402528468817824985971210607966816102897718733492782863429245154878678205090336851783786947811276499863699374347584554690115380616530229709031756696887412704829582447993801532277672568604425885834670189096990705356178879408824102214828275807484555251091497173758034786284035572435715616556402750584698865330297104376120369653005941934353827226782532098899092556890467273887224746310452917391428074417576832630875047364746559202479814824931346861293346750295996103685745191072056044529923616426500558522969070556540839825635866908394202147677516497987140336330559317096779824027139956752345149498568476152915568820025275952922562022883816056085089255701600468098446869271317081520060364866789824297379417837199543954840887784293777240158428664599887686300645589107826817916894677713113067005098627843701422395908338690374121962894319800722840225758066616776734731932583023765576161415778329959429342999983512851850131242669614330664055002591936243006570890695421633737339500501091869108868290820022209080434265022603451670663155741600185317123859055801675994662941594537311211217896879801617085480074677968443697858544464528436423463008498428134247132637190533427820706825428065452026114203526455685301518264703447335951724388888658192365560686381156480288486483845023744954354146410768181730949694167528918171764256921129684392780818180244793129617198972708161048992300047095668012386772479994978120674936122285872565092231599042070546051218065930877282796911144850067197993281428642172024811173191150266853997019567587828260328585961221486241436978455808963917145176492144000449220911397784688300624862468929899643486505211383452448538174637614366152878519897109277083813752445266160236402308408274065257497724681555993660569266002956076502427004354133174476780975272691410115063608263405718666802124185583066799833309607950940289383225165355046918813929250305399586546517943766677941321877756522629516969588272594887310432826003748926072238968737381518000216674110347066371828254856310012689057335699168934383463986694318945547680764861836351034437155393780896913634582374184663542910412845915889231392102089108024726770948150402072193074860930679114705451955541894874518112667292049802527750462698266376893518344426493531192614369709851230141830807044797441842766072495343817999325760357580590455738032197934006955792593076267645167026864862136128917494209367112900154205760017871065955495569697754530959907889004163134826831834626326246120713366997499544037452244880605237267701063557914161349879186196756962201164777126652331624960979056028798631378331232104620445601009158157548831019482295787143826591501122892812246627979925764861588200169839900645529372128177966165589956309092788056634245651946815660362611288617509000332149987299209115521310256909410835142793545752109368524572205397398539123070264779370997735932338535573080932674596159870033922486621104038440713911157532154071635497444739045635570070385195198784013731341137828490389206600021858778077153385415180694085818780784476611858846314120445369420434270583842699518654361792386227412539174563646647995035059945938519003500524627744982392589470059474670702328103174036394273944662484567981907727512279632399067642624619042770144801989812016177478222640835149725782802753607181977022053440918237709272197290443484826333555502847651131852429521763477542973143982781606271918584289156345108938656926512643343037925932796878766889899167464675817129792958418549651217081012035770049459021670365629774139664604731175457768920042465488451793220317377239182831297841732847756634667691129316103061946799327909603712519807061028922907099495327742844653981275118288045694434213835246937123024106103743526694374930076972435848936806474831718615170931565149127904963113397499842166220301429396420140599910670704315149073294041696437007067190946480221109801386996355265069668688861523907504255740495203375306066080354416831025423713817495433808232649897492852936283946341947679072256574875097460969398744858553724122009484259210004263987947224691134244710217241285686099722171469739605400729311855954206014178879814488226241805631498115555661205552878979575496647384807992188368237593623198718748359828289763445965624123428391784429817108068981175274911196546671213025409084787219043412618343831580944277773712589977942343722781751775844731649430225815391875970045707958438080786301548850624748439529388719693686841986582909158266168715109945775128352365993996160232657572755756934140120675087612754681026525181655558418596083624353228157887870224994179179833606114104888898049045485417973081590326304096934940919458120864374975773526587737015267951609124688757967582305276821270713578817634273446029771943259890489788686341491127549715840620671425630452235708217614551224639352097971260997647344811529551702155607073332650165221982994420733306798804702115441453995977732045013664945874576837311042436367253007701555392805407055672050103828012391595791507284539857685462389986447825026858028174322759216478828386524449464662865438046373675528456729472656068654128540234953276333531828142522897218226434574564576391189404061423459027457011549551577906289750310670308969287733132349792115250432660750313392353315077089242308414957088400680246604243992286432101602012933521334794653625843394942876377562457649900993672114404248060583565007470660443184730706570593344020861909977691405206371744821611884751559711394903263414316664718463299902682072695244595323657212396608108252341150696219762267809169970978550933680769270489047610284688518237510406964589440695335717957566085635359740915483262157061341133079492015620587727614823508621572211437268244335571142972522194374609480390801595140985964795234195875128882694968434781818529569360932685681870119398034688728358492250070734901019728257132384661108645790354336469433434049230565523838383862715740676895652030007078316907436750693472764164083961491945713130328627415882846390962427204007450593524429248013054335998062217227418045800229413449094149406221586557802009109998260947273845149221227517363038118744612331846373304747014607618067742498298763735588680151927609355252416425170621036432944723440946242036593851917240201316160660844629705103233162479366873320492210530925871115857041559597062648189887466585112276287574415116842274889872776896883250565661449494870048517941699326258618119525638401612747383386648321867193521398120570279475715193803126092143193727830486380081810645071813917354239801704654463356441670304023643868377312532327138586411455908580545960342040418346610028141026899059453880931091201501076426595100499052312256502530387305483114358907147847157224753790416238413387996091447488333669314315815140888045242921896386480447884246277846438276498449572168619128579976183191004980324601579939401873731918831436196622061597107764238917942661900252069519095250224330942033261842349334992303618747687928918612523723422835311482552800972473287774259495117398349072106840346323050399846008478948854486459074359940730083908600150908532774095002069660915481456563417527817479559587734265354494338501744762836365711580593204346752762116820888219618955794409717908734939612414703403368065231605981541481069602294752473732777884398198263031159403231884724478078858338413462413368524256392896024421853782904782729712844262972765373968387381978384778245678416913899507644220032801175336903471694372953033295329609527735693601075862520646325385675085940299311298957541020966146966394463468687918880460121571269298862823129523716286340452314983867837340242522383951294565071046177413648867282803876980341093711531371485197316042560548197853559652434250614822017384056267305540854771834348024684330066736341075276650313255548289264480994505874237858103086601129789328985482590930537849506283708773006867522076027016979009652728247913500167338459118277291321256640056650080956505842456809599237903467281586505187559351883818350871701893804594161899873306890448047195088064749718852676831663257210808833097692020825559102068769440052056242798767705835723107908849161968926052882070004247833556956055017532228154642903634122952551793511324381811118559657354695358935266465700845199293167390448085242621108780222829250858556621021741373567633852928822077172545157723524871618719335766991361371638633813739656459901917022580826295004516027256300230210656141176626169523079793532195505064268080449524015410665156791961605523149919009275102058497970567285695473423267301678913663919018561432629758562871566961233949176308346690641201857985475012531452236768451222095658471146041521181507275366376870626585991145347307028401998414945462471247719486463180029276051695394273355602168608638466040401307968893915539792343958642751913535214821940915798764678787960212310787295909584893060014652592844446561048878690800046028018920286219988264470508621706412466919749854363464332003306422305939284737607547007767319934510583510964005031749169588977840263678363192198321605984234191683882421555977436897181676138732559306880646956954534726185932213974994809535870668147132875562990628184752277321961338363265908924491497479673156466687697951490836145581376177738178305027166536648209243977191973351382926958198097449833566982839041324546054904312300684697716484706184999717585904778910726693139849898827647657150289687902105082351674443049887641225177333341282506484576820355603671418117807484234056779964470829976338321552508581490687321903242929115932364224337349927296694411945039236701012824144696690761372581435086024668101774545142576964649355230157007918522929859035313071843848135425322664315725205732919830923511102628081663178865031076196702567804551094422614647258527837872434423974746871447488142914679786173636467640390008181417691998790095799699762172244348828482082924526775499990636107705944594026111199889831464866002410715670784890759865257039952159282272690441032057966580503044386196404632080681042573673759718642366247824560419378237021413515023544918149839784006017207874436247920969479003873192075851456677713405343577215002000687364716378589629194268461616811416653976904511471825809102123620154554663503432217713784714571817227265918036025544002185808748194659275654833466744282573677991778993127008478211833788218617547313387680541867926139416796120875186164447581649201119436988121868457639535334097615088755051221067461053854815964925568201003785195823960574868647079432746629041836928391689834557743552899230945880194547436737276139535627736798711649473799101787552748425740692734868710086374072884027718364625816274447800045790381662851719152202816876346982427153962454651681141852894170079318013432373480567425333886450771968063134173486903003052892298125388030479306323960756833674370663187237040389053025826211906425424327974351749259107787232292124220200397005290116685300520817098510643101285210123945308562100800774139274105496691122026668264226630592128571924675952713629707581420173581280381217119244049214404537076881170968209472905244322282400781934531175118796694648435109541167504152670521707029291264896741770624597685801419962121184781132437862563992464010396261663806212757006102074123799896974322429481340190282633807536737718974374919837111627587177596105829324560720466981010023566129826570675389503814256746081861448534284575022397793389762113547415201712945380623084837827365985427029284780365742742038870989515976853810177234122148198750795686139722095099524925724575628428006069449901417693360530145171183261289358974403391528860689695545999218353039396303004914956422865670207775417933350982395702140765204734352062882553927752400857534843627180372429978201412778356338357816796983513573642538056413387209815300623150584541532114193141157603312991566370951310689032058023265890318248221276025411861920713174871811737004506040644420513757859831461665809869522147275185193055682958608776839874899798804028624501699636138508986603525444111855639318638711787590066195582063740079975879574812812560435165390302628945133578599159468500409727314628986536368177156679471375331330368351722315549216653201086311322728891527580221850897900037840867099257606043343817037861603014593743424105599365051154780696293529725913312288919054247999883379639448439616007586917579747455019887242754145008909735547299633330345748517160539995212153486887091343454627483740586462362309999895460095888091180292169155299415294810162354666914383464709560101816298624271512000429827388055858054516019536023286999360445945954800033339016332739718068551506670842330124624078379461003648320075588591096401492450415981255661655782137570786532484643777898447551819801272530857422077448786752896109563290697365081285747556282339666939518992334344225542883664106360325077642492575125689046703009275773535086585527489729077850942799146351369903042981302461991362493343678250947344648290463663156314869851492678625001024820056176338797079072665810151403914825830591889588956501218781221217809705895897197756060577299616627241499421992285175730805048758038638151791879995120336359996394984176773766021622795822554430923044546942420066151606124607955215687650573528777091747196271397587140788603886290959040678446982638696753182018172959818534607472888074830858803257840817140126137762377679218271421372760581494082121881881571546748335937806365998385803887698882325294676345327059407644497863830759313318070681275068430737290965941798526376189243659048506869167681424700953604088477837242844400198112286943106205433341566002741542344129332233940911310433321484594357524608679009486835746591924881024530552443265567187348716823522455029082328231445365830597994276498350261130225162503160596536161272418752131356753178252257183957047294893359684295772732215105092260069517064655339799108280655190123972911930776613667714285449511172391528406176294870271218814578755070168907251168029075834931073477500223205587821129207294570968075240964766679717765541793458436198007675817261651665268813841304789830771901303777265049696990153038299897181088811140805112514376561179303517606458970898627643704263442270305834077675760801635404774305995351740490501143100104504353242496922977971390217330287113694711338383902382414512166839099802275799573367521130756112969161858679981182075776427884635272331511489108081693962964715909945571562329982943926057406402634388126785676394328020306932568090960068397897562602570988227977324042314061207499050574408338874450241535189315325669264936036341289784966644345458528056815882169904874406217486415079261543097339464022012393431596006307145829436233749370202630309581807855825056491288638503604973962111448479981457806429879387527369246471020053189951871356282634147065999556230337165921855517163057938737449489949769006823173313101382177920251979847163730755532667271024581622749636532664034390585223956329224647968831266384299130157748654601730693505125282274772492174184343799388303311276482466988022927962719322600131316488674680116390633839082449414611279481746827376291152946057438695911253934074224853924465798465975362173689443545678825569089955743927467407905551846746833930099195895454769852735571983654435486471342356444656528161539368297324720947305308354332269509127818687011681838387861197720797170177872956154772192607523151295396514780237752297835797350853671244688360003810900745663992495605306957618967215984529226807722250367879065881350647924849102053641799230012470012993536933003470148349379603894176913971838039146607020277012694862891907910398527643617026093325085846624525001320039515937053009404866885690300860551573671233369237304413903604561320079044077664232992452556666628142546717454957646930390239914786456909485750327470504438730809402440988993826579411702523704433888788776212552526019652594337160354773567909467683981310642092186801638145417153068509961665968712189603861855760384886480873766278249097645018006051357776055427873589975005561499038821923394236587859114555880150771712466823105701936339648009009399298397419777207353029223831112508497562430708624765762808214191110461135652705691579028486804341382006677873628751637158187011864601477418430677466569321889763343118613169631751047239588552765470168973388118665217646626354252575069595048676148673151203498643862021443184479258661840581380636360584782816418099348078588150008387203211078206565384224787906899287838955519992207213176965539634174766177986565678690290596338269544648546801754772812504403510026403717568303871357145135945275873368637022097622655709817424836664923004674591612480936845022971693439161479999371710242702799608128115458987613199288295411825274393741799286655232181769584252330023367664777649937951823825977155670985624812660512927808419433755048192324169085279171067393266988438567991976561999207293827675490935182138708433609854666291037834547568224455247789482909759965504383613639260063192580203924452525029995216236735315655387346750230638775900340962197094613383707006138940610440721774354408839976113491464471193678779336933328869634136688406021051777920349404121359576254241313659443216335248984205390548449767066248277964421458186533727985210053641932180338095000758726315757713843012238157227857859819858412720245317100237866371874978641425074275894822158355327727945799117180888559004916164435607177765168991536358577063075615633317220148815964602434626532681744690271093735556474814563441037742512737818252939898902438277824008142070696466796988836017544703192080343612961776818911697476076281355234559840381861891254781642678774232696467191683769456855772595396199541204692759964143633996378262944619623467187335909009836130271030208504484790162487359892595933963245814260344328158130647379174282136163560431323009203706551746619027601722513823386399044930750226679763661238236425863255500166608546838651628090451407932140446106743233958902624152355600415685219779739799424322782287267179245587112129009045485854930245282918216208195562923401527742267920934460797755953425286951524957944897372245545708480574136412421077158765583355745926920112259345749642636865199104464825074034241303736960669521775879807207182983024854746038520573464804446043857618624383477136069790050883028362999566249655386924561995912667540654153585537236085613976531240233992763252508492818339897530379866625975444797094608801952956810130630041691737746744235683635643752501160163683590569704084449153079157692196663662389899576253800594131823802442970217410503774314266236344737331120009850685889073791622858201725870549901971234702563459618116893144973570201931736518461310230924068034592347227407743079569024005926635572706323847296014903543855752980137542036883838844494609751809607479200911301577697083430417663433554180999333992648280909583151750808086212396807507774508143065886379011602285704833886983140651459222042122200203549828627528489192718846265691746194662813205481869633970039276919094063411706091964757135060126404241345177508345566628269490222992547440183840581153519542486029976444534587894702014454189581459386188973838819358589120155492971823518493949623224425979535346893937187794332059586017318349035915999476752955016386749849233710828188930085223959754513255099416898230888358973782877737140818105550213355393051612377793454153202933479947326938910943352020146339333626302120649691808900257762403508996497623697532362070226464276084343695500283841284706314411440038102685676638534437522882510393009260297173833965624498485269019112211228542445078545274154414551749309034732732274698921564076320090856501791662292866874226847298754816719970482764593154231324584139848873857342373571690185030691567931047675080977232538278497203552000146398187985584087793484630776912698165130452062268785308308643328601942935980064118453148478377904718118210748145091199716005224870939053041844349217877783024159622684722173969658320663509560256313052357144285397874504009779992511732024581561011827696181931713618898822786547859780690079752823061082103615962981939426794131941354367284036344245713314230664006886711978060787857489144482044116321579291734953994046280891548249989164924259546554987615483446312400716466500466455690662197295640669072014849977087827312046817801262281335134434681447499672961386608537549240621152461602456862495183862260325105363847448920927234175405130168841083584513648796554602310259241973049980862428009624131069427238416731307363135995723955308970090836280294540851209492752660069439678427996483502183035341490754303810417813267917433356894082870973798564451893282470860493808895394998421257404812287830030243876306954991683839911647686082393353372277443897306880383961923130184391251916607953102855964097556200630270699356717949819831875616239925456917964880283216997173039860021554146992219069258061927872498904788520531816463013109535929158248465026366374168525216442584887269843599924178258150685840658888298688202175879495151239786673486266317073826478453048491777334851906232424381291026756268266917473945956675860560785582311671893921005623036352071974127140941231271218437189283943037350075234485757790683092414967638163514710710232499612893379436898626031991586137684973582722341470702924082236304272290091157342818114248121301082114186577255485205753970046642530312141746258077275315688916619498183700137307289047614983378058450795216615936832454483034754911159858338181350721447141040667955653328331375306563721230006170110998388626079923275319147486846359631084741468802386921759756368930285953542488474264268530128636270528184329829622823995746280423116276894057939787167139451423435631303463385995152474532566989259357765976440185833906864660684337876462656420104868246817310548736645086671366926555029859752564292535449284696906541570132725382670007159274630137026116653997445262668246831068901405759863680882707744507583043650550378664141064993198415945144110501012561279320813014917817693608699141522790161968699537463685918598230270645940829444423479186796020113797313103293060922960159146250528272119190737616518781406304526662788849175361947282893762699654047485360681699906187410752482566012658306100128264382228482852417268626188303946031102723425693377535786824264768750800340141035918441526103081113847634325947009494247621283457582656788790639717338331054569286273366866184287514192126927308046462134846128122819721595776379198085270230476446415561564775143404386804323283596132454839890136263193529456499491635654000222912518038555258910251281051283687642181731424386878232213724848351498693331226648978136866196470060495312943163404162116188957402394454508908622409429280132187272942619244388880599137282298874450573776665832121010965135947648475345507443639701429348531090563687030097473114369137382494571680912786133266259635627166065339573152452355552435699237072288071508085915956164510773464521948387253598832517960898595535586231393216754488722430160313251424685870594955919938083225722556861727697402200264108820440861356916353227928039215419822894746789691120053963442161748579018353116169226370062312443494232902016653906844123597304308888159697189866892682231824017160579298245900761214396513652077298820758922063620914450449664134096251028745347153336009416267829990219404300789982862234116719552671316307284981186654640626001610658193596196077203131618416825957088060943749649545119216651241250085950021182403166370769369613364953440108382716284893802138753482547522537741470590810116035392921131590262648548529006421570315990928543400200126874856347234130422348700089819083803524957684502196915872971573276056862651204682600760543522720634364939363877512006019795104953143560563047538686116094264238401611108289520179043454627473631419891847146662696086303304203960215148597854293573672522803176206486936100836744098787190210781721117708717516464612325604905153257954190175473445532642521888572247395329179375527681628871533852690041537007795637874142679867982184530020576314655597667496097883593302019858952037543174736939610824602449060884741229073561524728134690645380196559397304692895337999476559389026067064760746326414465731215667828888587512464765916472350270890976527288684644455892063119609418338514673249367790232858963000928222361372755619023722552647628169902828519631601521013662148865414841039498079103628192661800806180225056337930396023013146329477808856659678816054012571482849537787357588624030198667378754688867312215215031945482265195392440762249964348838832363502272246813138825075537467523309348111093031176513307175777544122701298723206820791145386308028991645852558768609794714729855072798217402702810390434902004401518596522266477854109548367182905222629008799052280617407828251085294619885469925116021380007517382262576656941133450901357559365950844893740173120234745542253454268567594569480540533733129105194438657524035787085897617554129196219436894675859294908010668829934630230151414925644830434401363160490524573950894024332986775829302743674418830553686280640574283091241261227173302300296232037977648535160891137042860171968913009193801692002823606053706647157442621066769827266768730932219272664993512747831050479098411954106063751191776703824183050561245313886685396325031350934914133183155297564014791524042803520742170739612112949824731368956200345827839836595456492528495023707955175111061917068252233494425481205574049168689959490724863478937638218480621475101106831180654209495262381192207184149847045295237045965606945314031449279659889602076947148621464407186794639585505006837675253040443652376667080479018357477784496439686288358142140318223336912466813659007586331269124858918152075260871124869836801613518094406589223726858360480144117928511920175193163114356504359857638361522221272636893372127016485297398642306085479801185201086862083231614924576431276300151529822650066769951915189097609538267657968099605717386770095388853033255428260946311560216125231581523413923059516049994490024827407932114027360311493471036553658071385307296557097999466661921657937543602072666462391672659846859522331765634143524058248008002356320575718528593696763944095763462932596692947228055710957454632265743879305820681431614608889941668061100882926057505132435540923439733493921663311254342398582558280174794957456785898954879362112554401507701523407490910251792800153291666096838200884129696352113036578045200553030264629058107786038140091319478336441088131259704231440684035559815393556237450480673205157117102714092892214791874917046533155879665991666203121676267021560771804903466563070204161272229509383150329220455261412208696995580871711968370279172816474552181324026460462248340540171102577262309238261572055738172255221448833227877923202575262075663159613339260174240503121582034354087797328643818453295437719231397931699006663057023658084331199480140440694925386864613425410573143625429647268853035738837337493662423374895634729014586245173359989788546740718820317831514645327215164576007998035139500085686940128410368804253635839035900270911094658223529624362024575084092023928076042929880125844750702862063037790981727594320894610557035498177181764036615265292602683920151826823016797791710609386805444634283004904562314298501061233752444144866263833889655891928041832084871484939179993104758185535660097235636352487704842151222116326870464759215024986399718710819811722013875251633303426774216672288959560086053604279392576029376696744857237082138420069139292411665743249189051869771036185329305545189563610721026411339308978860535623757414640927329682040768044725003306111644929092413636271495232115832419244102993666135056061294027124701469132425101677565836990253393887570838841877605956367361119837737653752031878650580392242767265968366992524542030632984672811272374131173088901898222894469569916312248796458643861970187475278771137158979704223327287308102868229914132368953852817368281748577001209078650716405834745102343919998716092526396674307585875962250606661249611642293766641970611982983023514941550352561792100481547766369968637067694885530836270188002933487472440687959182349529268386608039950971217802174581197081427874834990335375604048757570522696741857260141386661454765133670824127508463464652130691801296608930084398530271248944344428366941405452883273039836097684872034017697902623269711719845435962861202550587041683282975808569022060635708480162738703442311119748169786588010167330455630820788320476531188749667449142941290886556304687095871335083915358306143603687338982765908739370118316234289196547293850833344245328468310483764603061700823493339879847488279376288160939398461823035550202028429696362711537285429856174971651530825027688435548994120103410122146208402381971220398313191985770826983289364037339816530432226165705239329510280594933030110843358754833600969129907849891266634788039858562405933313956007176009682225825509909639223187960697752242944075191807999345840688913129569610006631650510907900011283391915426126874873984800787241036460702628851066198013061927494333526241199740281508317212851432785910578769152869758483678474022868148783256835162439445213553750863808894340316839788742872071971326859240304422570917689888505395953446365413859100874803251715327789276736934577397774654560226296859473462706887903548069948156918660686203408743967156968765663532431734021674466358881024063723165717274151744486940602310209438120347389868375274756260274895802850763737984171568386291948858838656825509548271775084910286520301426719392118351756812589424771545355898164148046053619046099023198565763329012027765507257895728316687004235742301848436658278055445528220419677079502953310438267059423261747005767971251664729422319892809817913253661988917689870152267015937931067235452809099545914687069441820589288643452302045380493150262307680804938247478427784621673396980791041294397454309400098950043968566966929502144527186892298368608798121992588115062927936572569597068863110526894355336763215081092613463996501720251001937267829532070834177234329023881553587757696922586617347450872631205188870762565125232692584180579552741903921860822756153333434799490317013430482791837657047636807806482104607000709408592749937293864751412416169265742537728382035325464273255673292521330594913056903488500104678403328789184054126045447740085471249097274775671689881344301539137055812485319651548113399755767709122888604241997078492641696380330411760556610691253571103744632651032932777746366626431333019350791584964731783777306379918606580054368787605986228333718581199780524833450920692364354889465937945304196296125907094082036279811745493550021938956131092186355241647823699204420355078422970129535787651269423855622168762917980376131751271626030792299512275325920443615377777634017869305435158730722553555447153357143202116606863193156989570755982494189674680087570590544147466601863851799390325632625388076029181908718232413830757358498413569796761386851894843384381885000745816253727764114497887033251969276190791704664946674270875283895987992389090445356289147645420433538861976861964909496762316242277712212177635722513280482744873808864656209055791838132188387878438779402435263108078172458437674705412738826739677687512839330096296249047842969251592039447790201082906029080596603784062611200118263105441990479654589237446389016121001206653465298640492788979157358878944426990922465153223388436890826475780839082586567523009739430011992707489336008797505985220432590407405549436440638078249170704036953168695279740929638482997960310066415930383992076617293600849011637700247606483104679114140525124975376669764378935343153964930578758616797088959889147422062889175792735432880454030417527392376245663406199360052541445495081574313671011630251087256007949792322625369051051069321970788577493855960451964917466047210105423086457876666869289517702600104454910593631353894132067665103206137953203734603863370028600857845090698289797117981194130249161645305924360059364887551304251405410133058864997488489935371843769007560876131649357473846327168678496343214592664554725613957529240890097829376423777731412472720765256414927829830182167682078626673531179772107289429141040927789438788909069946732981878435123372386191837400705004580086126447612423805900617105247619376015362534659615037999097205408408764112599497397658244934758039819467105760733833203154119914424947750926778971880340578434172412987998748403439968274638366921844809058136256583041845454469049096982497581662646225096490035302510153588291807133333622349337944378594666309897306085703337401668273322345911418431775747022430302365284187447192233554474866820229184919816961805157410445298369860824684419880226944554644219458683128229296716400532016000068052112516880005092595403780071009305057091724827034885114774348159057640710599016249440394442785237837253718017372146529810547980332445489083033657698245516728115376229594728746151160565741758197468028398159453703825516178095605442836036128771010700907773645076870895276741736075821569368552742249645431217654582509997919915396994619385133774516320479448839713782469487339779637857495505052800337987324587498417621709703595498561700255205501235170171330119050458109893945188484188394229584953127431762460869499034604126158503381742370788642632009702963301569517577644052852347503013422968683001784429917498397209866113292318787291230436584659855985029180805768707857135331094226024208474675112050076789702276574829615832742522192845768814549505060451682810177327263773749910483336930641963044087769425224680428719680068648491117492061597861390987775112728705046984884741830690768701024363945291715890420979670125193659678074722585328188669492521955906847658661860164208170772693543677297354083966542372142602467488763582496660624277203638347016765735314982987180676827642999517073269151629498877644436152663445681658430543881507768515874817926525186226865657066823317766610623230726598665335600829207525404317826771919002995815796555029513094661252456012537886114501046673251299324597875767570190986082187209970879471402506746632730702435792187037392023151577046293515516633266484199181390429139725248424720948171802494674904980961680933231805192207507302723904879366400411499391424408532698365468729641602281254112444511294583408992551730852288010039827096550307639591192671207936675969541973919417470729029020965090604690291873424356836466528211149127334599503000738691714699542577804592359809167373393613772478234071760436553216487511604895292853614654004765953214256901995265474032020622025004228881080591293999245375870769806969254048303607681313227683805156006997054057590193104031258310476086584827210142111600048008300082070751051901924703721826459380811849289979923866728683846544030273751196484173569539663059868717333450798583345035606002968777201815131460087809977026473690366395315009898354731191164537229399134738996213414289728999388027961650097282324888376493280181660389767455905865456439388461678040488610079189595302385853452186991911611579518003270239998762991127105987771846930287309489550510665313380920852766546045060760621939465812630767965706417566689005757807739202007202070184845173376252417433879293261572954855739726652735267589845570617518849232781703376002773010148462227683552920095848712442143402822299975931912434208764674012293433465126383874659003591691314250248182472357282677585582379343945902354485752640386383710069165463428082855044358823831383589211945585000430979396015746871561185116025520406260597081813687695068747066987682140478846490379692643065448913827516640993147934014573557982994380329714744035390281538021338726701676136081162624637757349579809025816060520728537928509151535085072562506354455789539933159875148905086380612974847920890953637996630604720575708575382588090540819128360409220202682315302908811397199888470648404095264362775496798662003109631838474640470370771730637274586658223926336661813810136844637063742957666185030973092981235561196550815350650538293040911058016002013130841955190263809490183102544404225930479825254498142361376288696479759829333641312615879646740465770833438612364480787345149567229132584849754535879507343927395340152745336182477827499558045818103230765006830295416542347955390625082862054100160141542528973294936979959778270267478295006179213890849103534707878562732891117216724811380604652551514083988110928634328139663569618559744900573955359039073140519928395456262012142821111932996678952054851305214261090181386812764130935852553213153027185988719836641151819997019358486378553886726039419496174369303326513564204780217917708123580120709369776058440812921474993281812576030182116921797597724418062108405073651724513740517082634865799535748263375628398746899112797228906806036413483529837913616892672653101163053693495834208217125358977027474876345067471861369043888170149006351261364871745839973262513128483281184049459055080886713048259095035336931097736581095615809344819711139142128932753710378974556875660379566028562336493637626649954342880758394318461290694099554766054016002032077382824921257592218504128012499570442128266662213583283244000466055873183869308645974382075685644490488007906504284465153736155296088911082636629592373877229508452805808501235350251222830017122786993730551495842808289086789534565979525462200217295540102273195083530595064273731903341279076667770592339746228249495823443595221970007788246733929155685544253810450048946870613712277644376001131075509575889398479298307090663464026344155624135244552425954233906726192175753724409955968405103468460466023630699602534766072971915793546754017061806985311164799852663906259769852282559524533309171648913948393333204036888650325087226795856752587622214906568103461367705146160921045617811709922088066409369994186042469198871670275211965903697896665317907638569465893485972868540542579487615868445990870930920690857264255614387076423352960074753434796023086796875602565071671034557390457692541988263765828017035307184636657350981087171091969031702167857859777332771317869483229173599001338533585527693741817647802919973188950999147307542837773925977062960247737877617218038160241661824610457318425924649875037442142648012659828309740226295076082556804256892330616455893366832048853650869619625789373467736685333456485841361115172884464977508421618830439226981818975290470727787984081872458074929798130540565629742745182023192538570260474889753416195181844957652711722337067970099945136995466153015063528941961671336385738806309397435163667960924133585002178413221122177853821134739483042888058293287902205545248780716906039951773180274967456154268524182743053396730155582492692720791846986515265298704633566362867134882299965276502062913849829583189957471475322311571330679413754814854876969371787239575919155286031548841990280448687264809447911219371830050142661523835617296998159128077546179967670525254057389423963524258881983076582042555778614014527932020705777096345039550934075813612741905199475091024309007631533264253069215038743270069026741133666202825932829926806223008315051857111143095941100468946325764102346408181645026122842559393653118896829871593895841818098760687967610782670310727445143468211904471642916608788747701094067576996252709504320132742357611544159631847792090997742355680846581050669037112294792674111651290216403580329475562212379320791273129623472551675208041697843255632028418363181439715833313417260936461641056421391043133261902091947758494650341832145516570396918622161608871862837848364083685631718002485081927708805613856271633888595722738207305177791401293826162363039501370078673659154915849275348694111991840965936791547957151809819572699371716301793816962828842683046749300214169160674191060308453932478573993312816450404572122263605803517624504143088318033912725485349460580149179679386821505583820860969697494470223882246052994602225055024254847937961949632657634792488412059543229929865659781553836733389824703259167467888759343057921342104971787475288525795902026683444708396820139591110440223431279154412370174823617580313387340856791984364372480669598921965236547280282394114283740950931343063321804045087256113650391216817994658903307042469877597681787994684197710450832141370210491947741612498900995081727057197563184465537797126591018347936703833445984363930617020390589993117269520892938823336707614019135724895613906809520991593150348230441487931527329460931461651410487164506962274725911612110525589043067423856008586372102048078176554756393717375399914755106335484421030006188455144598958705283651903957773412752974353295985705684678375424764093267970623856944803174485834334342481164725975403113594969049752432263287250254840309953782590693394849414016382528199427334206789845583473666997121204410125369536595444289857415648318065030793236393477729500223958381329361022212003032917720243865740440405595712728712640337293773284768260621522410395433447710815641839107294912482003354854269508392510102172234091447242955055134119545889232227340974869598646914591752934375946538944548055507409918536240717964786100193956601007298524134395985235892704501195308810933975262165789197893384121748656777508693477737549528547800012762076215291040217931894672533776211625366401202979792672282848499664323700981805567433227046378456762413451783411794617391854100136859508752266099620993673738055190759058932890226874294982970923058844948634473098908133757956852678266866519194960584889521616239516850454093460896611703280855637124200962628113505271520951075307023648514367361485898953521590902173824593209047024233214516784322833663032545148952811894938967242399431562655986873058525781903507148884377892436832844992407373987023004539331793157351183319039197043924674571590259822331883777427753953038137215865065796821283457447878314182198612195614316874574115668579620190791355233518145570326221612281230709293126998865673791773094518500509521297191242653778216325438075993707150398910117912985355206334039324371589357614161887219129467897915527291746381456215094960505133836216409379722281431668634817256795535876654654558921336638143725581411413290935130958458361750888569729933075575669668132343841390263610467220551750173771919465044702384551046036026772818355039616267784308966144905737147677514626670088765831962581024850872437300034445297387979047599383373055201641606423316744498565521057666593094424924398242567111735065907509174696152410716258799356862807497238530972871885944783412642713824570456052794095251591231883770202924603173991783432554546434748274529737993245997192901831882905576873910647218849608631110591296779062647736849786948874845326524563277466491476649700375163982064853575157686254615835992569343835414605425464720297957536850592862046104271921165043875451127366453691949286828226714207509083205501210740181686096675101044561677799496195214550085062116015995926435242727324696954011518771928043035741916908599616834346746091829158826673855108561916806567661955113683000658545702847704777262319040982016195401927746113755105192674534925781745255272440774353380431977379748074803871513215738848757116889288516694501406121693368598767947756588168152218821090886213692583824636950561483036917046672816353760791932523236620691902254544850023674134026056926523414122452106081161432119358264982979732581204578387173775954412683707588669377426762477014363322712860566686315070381159240432750307196669047798963251858464811457352971247210262368821114289324042602321848060124115726674862701152099447545109816513260267687574266735250857846785494909816612184847707031316333289468259715947568466340729760114866205399232793691864891486849499271450465125066173553168771187242331094760747675206894992125211783605115314861263790759520331260242160959361317434103554054310291857431165410311877174070841372849156028982323991928798792241695371664010702742121615954925107985928081551254755031079787250435798466549577835451265320217423121063294702745206536268693372190164399763423576970492378636157714883965477758312517379178259901265135709751142231272038424852644950627888917923383254428887956987091619301930049183659787358548645036247670248415273111032800613495303596996690903297427785206660491109897724264537540720218068517457654431943343019880921027536778603158500383838102710996074986326103101929699334361664091987768521812533065825268518121743719298806395974500727207052546248924466248250357487720636584005660039278656909679931336934648399989118529703505636442989918267199219539067954775917540927077182212578499439523406832607005366635692660831885594295841585262054816109834314654987300344152939661188101954545248116563429643737230852493779418465746631197644496619120856756183228937541908764142234455135629291995234606153884467222002891584996659154677488152704065625796412713967448418707231821842593783038352406078546486992970284118686465442573808243633448351860061239405851012251828406095883285362215707358766234601677615798931593840122599762021428872331386453992403360138703745009951439884084351718040854413781702951508827039169081627620733658181246830647031808980476880711811641496000125193806017197052610785028463418057824681179814141238464096027409317313421454506306536074652639736220445982804590920884813956808128352677917799443432957289833348391405286507143362147711509363802084187432587581599781026643164887938376002879521039485233041730168948759043432487083457178291765676785716558218702710643523223823464714366912415015134210195044085667171725701759303383865979903622087822256185530343409443296147541408149496151443695709495288622256736878700483025064239259473864547639100028221992586197299716531139223670702089613165481820651430639315510435520011728479506580199778804783636649152481462531205169370573322993638565951132170217997925871024084407666288640358598815595591655455182104900056232878029387248673173342032242109367965566034644500737243151949319847823223562783887295277308132248714587213806582346197961376789227424554008390148863360677416096640489153080533085846692605901237684310766130839233774596512187729846206373655763256298490413199221579454790237087676292325189470734691683969200665952389363154210295183322717563248565692294082433121043199490766333282285859830916465459091787218435699394145615980747606975226307614864171197398573812812650024511965996290652928560362845076157886088784058216023410290220446444820027992956750811760385012537335237678658501992259332540254301160504719731196242094625024749925186809637883804651369492906401655076052943921515431198341966947076393105322286581422820223736572071855354745793939795185312825176576621102765816036125837265854784796667090964868748200793691358295882025748060417764305216673486298568205781034097469427032862294775073734270917387306536187189995158467676212778571151429097219619502891214796943697372422200075264244563761076664370527846830231277192816822537916863663994250173157201147108213832688963100854383688773573702970809670772073003072786868352875835220696626222466466641465036933973213250619674705032451458549343052207595333925113256824917981123940575133910695030167335432961665625849233838491682060625653956235422227568201025528695203701866737873845756360080217724699708582023947773440680136366073389122967249078305475153161826899908366305319575780561416535621683901268623161309757028289156356236280646389253915713499459572161389629001494359477716893960963598852643612354865055008455320628307250674715663776908421702619116989799826794386021095527766636503858793850406009849138282476487788701238025662960926343330986311654536199905408510276224455339671789161173391109301678796586080744575038310693672171387401089372071699399008890761213300105425888885061790970968858551428130727758422830180151097416635546445505637286763517196403205500181319978776009536868858163628786912885582593679553656519352949903965961988947919729451219237644189574014115090383863618653846684474103505003552308440093367046525288191259506117531111594203259138693702290277658180761542690140027966728821098972603961040107651338692140476158299017137669028543808090494783562475875927662275328748210942265664164011504278283338185493465401569629111255635996979092026059691247240783257812364608467623066395442774798403184373981143621300818822561399369195939509472416933048828879275213402663664174947238910784758504145487069695217463255894210461951080671579531645983404093266862223191118955946651622071519864990247189690835718880743034284084952308530009719249221707662032725165540514705732016739363954155414753418719617385465055278882808632869845251090325779425380231508122382209393158404021464880279402983456744864526411623939340830584419069916398471025274091526609843413178490988229225500622238185352875471770176917813815595043406998285798249061937762051055515893429170326842932558389759948254462042115497843293052796565873942245510936959827669301960806757973707031127664901347387648510513887493669533015135264543335591749500844845063357531800940961162961005784102752446848988230633948862360032455518183722750258913831781255488586237110308470928195642725779143355669566712171019458478407592182415602523643843930206434433411054021682195475801382252272721105650027113063835639526334946126704057463830178129263229083262373413049847934732574939326003107049938219531808033192621500152973578702032108465014859680097841492312926900705854849603481092965542141120494258811033804403472841700297664024988916630939332742308678302955308787482183842976365937490227629652482274923691333042959949637660600302288612847742288286718374629005032993353031858867944645548963753620328851952140109988408189267266351003981464686435720153969037793455227139839485840388188005023858936490766904218248732458508267715793570254732544484680301004031397069073281268635971477027384493105022178855193037053398485401438658975531304829281420509307951882203609129644100232153569419018411295614326634639146230262252623040015004472487005414316632243097684443687465825644939589236259748116157599997463579065284069054538502465565846132456698123962016792334289199939336198536373219312116019199062333659899627296361761316077153206565365146023388779698292107104072430959921194064633930939835238205344168793079024651980285595949517743319911492345803722806662032389412706129634503917961664459819612959334236918944375154283328892648814012621740859198676315683233682156208141436406952446551502723239301566660436711682840749115380618086289695058040777133860078730572843866526338701102439562385518688258559047674689268913002897010553812015136802946578663496079425644077313921334794682773394118943245530400224110515220734408581875474816741056371186000803794883667363709305232799322387206225612825028735967974290680476355739224338360164990005317472518613786222061482876925348090263028336445594486714814119105053409879828001317264750083884759808401557843331074494357615890506445907984992786141176523526368183715577812438134358273908088377144138954453115130872717147436338911537774158852730118265776537562942073480886566759502201743309739541559311978108587201131452587950850693590373355401272745508079122746748518828980143025673479368999946085621623586367240856563958622397232481203251714286021111201158447063707204109033393043421473771314489910644008226927766660663516782787647413936310126164196489762682903753133493928814802251489087966452121132807518637562589487268968134701122092835533518794790626649861014279396794470703720126744305222812133381773317099969030515500456253271698468186188264523487246102252775058084742257462826352562483060815037499827381015024009284891580874317653758739394795094170927040363563691615106596374584081071174478485220258062457250925707105085238638475406501014672584654378798072916211339320116666007127192070042218001488533471528352606729158324866729773071717240682268407090817568859467886353379513103063272993954601858931941945332083236924939901151584927145603570412026827861612554974831229071658567371222949828075031979065764929280602784311497371288167734219945953011951345748715395791771539397765157254224847219779133449459273511882699897445227691581957671968832623052029211908414321161351913348043877717467978633279799362770781771056597463465047409570003227306513986097884566087666013467010392994809990752991573624691462429973879980523489858597939934421796378080779091456451873208830836645172111025594287621107269739438424744579039306168436005762632924865916188395063089023639044253526598287302131017391306936895181232667302117262547419642799892758335552818827248767886080755192379879834638083015454281910212213012143437823897561603431001985547797308164598063716728877695343396221616017072937834061090418716410817729834798279101314931063003104215178220148902102604767371114084600934427488972939245517926458629262729690966416876436677733854935149998530363379185789380010201437524339399431303639092785417925977694292516409133567232735294648414157804860766732353012842651079430988634810157143989700523752904055900928284275949944616540524923991983054330275929635014134690797519567370265589335051332481758946535890696842079443351426847853089284766608806931858505179059379800615549710768680258123900990090750312209382976159841958392319338841808376068740993453300501562054143544253052410010079006254099573003470046022817150100784403292809496666271665669951312284849050273890924403140630001978331706758254024300228631409695910587121875810026613231540941016798453559710818286099751608882861248358903631802441180671982301628492831199531696059371792734193041471874779182261724648190622213797111124594290831710575323630018380513084090699776922912774395083126675726287298837711108669515265490835556809757308295061875481141865833545786139628044354084457726535189746025361365987616841212629460770398377960800408504424785154753343408287406998750308600699693611274509306514044416789772243220211511424623880180597016847596822792912280343778098169395707128916221829295759097118044425171495613803560944455977547606982924189636689435715345979301261491241781205500707441061498295450122799198633197593655683943977768828609138093133542175162460842070638579884437268360576211611296875723840002243380399377717082738866429962469605756388671951826151694235967904760288094287999248396421319578195016793086083797056223860293801680237927022184789123772923474719880697997788978505897999688338687897707523350433219430846270673513495230105019395568492772865447834889999787681713730748597424183189953480775483930486160454386783579124309317710952042745781326523478081980742538711923209928781157136280751885283797474725911265243910015975760639228888556429932977410000037558313195337013265583567252155433197833874430863314586552026878522497338360060453215172075759480711477246574680070045869297157133563397963618916593891631288435344726502783284009618196083120669950224944673875379727858039271850396005153513710311995479866660015356714672204575653155442018351141197075429560086751627870349833006604980144916361459320725550071350867798405516431764312114153940972461220462472468049028547515696382216641861175563803958397636517752741021715731258209138792832991466305278793977600410638949890200401923022354340065182646314851151054164857485820653557457697623179920788779544422836207203816214334106023398218714593561854637455917817099942472126380252526746965853498206332687473906003392151021406552614816160962834283347248241800952703533806268258689634994849679841035506229447510101680963757153091188927492729384030725977821039399006511235355255880457407952196727368343651266317464906167074846003420207453174517206095212076046265468733652430921107243697105511403312299126084762414793166172267935132122361699678569538884964783785255169454270816102400564417099175097038044663919965604189993992365766025134203654175535473658664801940410905737478997435925788837528509071591433129673694441563265351246362752077998801055697365894690555547167506773475991711203587393105046068779551399345522023105025642464930627663898437709896273231853311078479449019730735279917226671881728717779253156947767599191295445064510953300223427742579727843368411578776553728171556235987285587898717638563375918883315044461867888785804520019598157215001184111340291178331652666117299849587383556387271477682067047176114884576315712823563758666706688297090006642553870217021715514964212562466082373527351189477823852440776756695582168534623707586134006658171692767365255613087051312355584040930177921901705239633848334209992307443419715289125196670783923347325971808633791417082414475340739124989294420164514083536031802484055614344858839161399110158582283935975438344145097549548865725473929943269317735447869138799140977724018643816679767300390652910627370192475146404078827075314496178293692142887100671330579468810445128575581506315364387097316618343731867408921267348883037667175416897905117002475837531818926667640684566312396245809892395520116648704678462392327534791267716513056343528451568069303137639903593142417483768005957264617133530107991816263918132792120046065698440276079918732442134673238425979209073615861626210200759860322850997575093310152352492394091494556651208117745019086787897595598193027691962477857417463620191544182104677762809813331371950098657700978005716250847455739129769758201067419511397925225034945169822635997458085214698713036018859882977619318212643602761688981275040165781425252296963483276154412401686608764633276909355958090797387477949725668741338877307460724903604823657849376960446194021906173429107258138935404296282567391815142949342029092149199375054505300041247484815987627364393487896204871720927945671328249718184970805657751110409218470180048845479300391245432818660143459089599215264028081100015804431032738429883760174695220752559702801324282267066498475149410079759017231106557147476617891906182710433086915334775258500668368278356606004746857093111993448548132712796556322330501033009850383646851863797103540828130033092007168970613516174306780295188810260340215608892604483183945256812573197375016377757207564723792486145902868699155544132781792815271284722050151219520615229330481028305394992959668117716156570688180669608087379286010250476572842530885563727382452238958524211081610232466106381655302786910506900816464238127938400113851540993016918697321301332520873661746893121215168705339707484320228972156545371481547801520314820253144269479926860169505404332317277040061846791080678194878532551099727534208340743941198988200386597496312452936129107411401390989728069200806703129653493556819020786248437449746698568707341942889103184922266054607666742311033492034772951705718297017461546120575841260778959879304577801408580511119238708632624921036478200748393006797804870684648933692629105637271186629595071611183173782658669330984884898202547057392064296910487006370995707852166171195533466692458473874231238464674700045404384359407772468956863031669357521235543741616557883375058862222583368305718298783529502365845608701738950934447963833802154816441410390720672246793953009751165579425384973606452580372582580590434611330333741349492773155418763031526269827723991705276870314237073048708914697386803634324177765104085112714319875373614283327982305887308904861131957400040879886291258795633351360667293734730548084976032395359805508545089541230644061937738905067617354163901245987833585485768175414363352547087243706538858964583150102750479177936880597993934196542607552524430841094656630597946088680591339994557905736618258103243476325569828260036701430932062555116791287998803414911397257338949263174359012063428351855684229754744410541088792076320516551654522926038973252757617286811728098067298849888414884366798422083700335280980571150154121557531748197384797504601897195448946871375326617710033866894336685631410971410488061271943697513623295610120780729178109466953413807004609779180457277242905637897615226753502292326870320455809127668928942889560220209728272710251591746297273280737017841697451074509170769110507466918658651347393877405941510719989431937561506072329588369410528428908008269634783739943925404897814147315940294632514174993421626750941132696934885070344751611873376908178986218882662093103074173251723255454999451064556514948350565584228497511428485606749715930754810013687003059809249930033169587250194828172170506092550061017128000771661564596549465678046406330299697893378395520847918983191294221099985917153768698975931213648964922267973838231919753303770154282603797374404048972835959151476173963544617005275126343495183304764845273079146328315680157507035692501157357714378068299592303595000051914701792449175941471745653498858532917990468886001716880103870467968202163915210193464527851740364876914249677391166169454028897904477648903729641242708117789526488717184993172718842692429781721813809367759132425968912525476983499895687686387411980333542183415320679824655178945575383730680513863175969197122337206537311259993453180884402941996669183419605710070945036438224293978492462907860245083162021902553150762439514609404200959567361807714621547716188167989284067896381214653162206881209181899707989605938753742350026885075146974976508257179893969712662290095730931790100515727286104937467998597377502455140354086589316252764580042094092679146356128825102677011417189134694552473428373714013439889913826669168904864545928151498115820827697863000343247489952520409475331185275518653066140480229539487529152115755470746724755282142112512661078952713097897687553197334665670008654079384574439698853514349064675094298211358766766495253624354542076958012195024350966466252898746535300579534246244991361246082777940001438799955888253785504361483968483744941289183830978908044889940958666155928226579743468174781314285222716842720658939930651343200704523732031244226984935101184163544229700682473931693004797260899077397585947072640659354265939638248553128108438108092423500305113208292834155751382733764023630708369259028642617594153722554207777663684174200721344757134200153094913986020860226079072596610706344371346907215241961721384174882131732007595595237466492436960680249468234072067036331411943977821107662675973191486767132151256696194347826249053821252948348990589397825796863079652418710403175216904859533334295094839304242424613754509006118707663073542582656022735538537402917785208965161734088951539150133244338614675641977098178972021863554327738304243779579540203964762231391234736604191126855388375621726905668788279478905272919340032043169819421053058923721353618207631128944022016734248354636060937376556110641198177956393517240509051496214300657511812077807008109254590711125154187448186154794913720471163446567368885899279455104746428983073771783354713022857706604399064610476570158126893312211152920869175351388687148917059658778382410156898060008958558812505103318753968419349422538800247363723331182658081934810290387051960757412384140759797409551935739717648388971697812387649378278993790691976864018460149967532316733043943150810251790511568220086445715971280023584390052021635564780954867086736677578586068530801435023406284919934056194180192940218752195202768088542900837377012293278233881725452297828634448593963659832615272562877082508310853041714810696589662568922791207711651671107504491125471339910865368251495817806805221393984006659536955607561444526038151053167887604738508814499018228757718032791348188022189455163869836388304824668747602437934407513685386099240284477027453548143451439512613587622531094714525785627903897155986354224166297591564902063313025516477877692547574184620574884179461608425111336027129996807641614112435881050085175684495080037872234742935698855480459619897178814957829996456942363334754458186534884135980329201585814299388687443845421650272442560063165979368881178809143614886291157584251059530286266932049250894913625612994987505468192026404454379894515298017934952990084616822904014096108730450943620416042435770086843036750933281427572592748787471751029428567865654234074446921346806066848709945105460769991679555799215366607125817824011320512837772159603251160320586415550298328922809609505439311171711579506934886997994846420529194992671830032390759693669446721526925628222763334990113504901649402144112737693717790826029014444363787136487305848527163346118551639815652637374963261551103106305741971855928095178730613827715964744852183640811667740350697200220421483864832291895915916581005668432902239792190674910866229739867250222691881498641579642423733270532969628312193562740019134837808292807750971369230009606290042267622976423553458235163017427112977693302019701496577601035835996361792277178017366725320871653823431885768280017644112017133528402990815240215392572604426522663735554014240868431690433098616548821380237736729454269540406412916651415700053668042492904918976143431259360512332092075512893710846227123885820483500711912894894176942124279204342263280832148634601697249031753160823918431094297935494230649645682116080065445322433324063093304767910541284440006173088870522430341205820089637797781502095291930535083489148651836134932578487131166342323040228140093187915800093536907934884302929377875668053712280597453108748978963774598219635686242454989383326490579512246699195765218878012575174012963843329432380447059259542253251981096376347943144617509373895876300394346668349408750126022772294707710372673605012805350324432277018104571710024696902003115756907172307676971042016238840753906358594389014479861164038685700125298374542195651488294871964324607010843589353691380443891344901011347335218885418279754796827544719511195432996559716358470302448096533393041961329154531259062971614490548540366971181274377647088242991203441086142743977815747931771073004475526205168186614382525368226024422583529754252671157322993604358192321979659829190690200823685456873796438429631830686871125487162738518160764373652722918894680855581492300539894916082291183213411584381136274463483866887377768311315470506532542285245097220977930776358123452701581279820216327154191790679516085044170372984828762686194962227250033994365706449639554269608345856930463236677908802132893693902926333421254056128941223038866309343737603741795133840698452411420156198253895761426436771411791614814918931512523619530320666576090827635448161221727344993774284251920344172486575853932312221051146615844730780706903434739010868566526228564734308649716513349623945448819894829837731218484811677333793433758746555158745038015066175905945475553308184626812724135179514096896718721426584506135638134203276358127590618377436230735792379958004258158431869741155723789059800080248803359852204342128610544565980563090186053882652848731530122685867675834927469289997911403317783595651607129085909557068426007687425128936544126251371199537947372313930124383346453924081420014038294419952945604015204586412382535872855068969326987710056043186350575367795581050746265885544007801583137817998648013852574719183572032448685993122858727477020239679963322745461898898444769209331984847802016659593537706115660996170036466865274944343110619639335128499562497713951801251888249444385930453958818207142437340696699269212713016174768487391037500387351605993802355271230787383184681725473422764808427480284443360428386568583958908335069432477583878863498375964205638652705888819825925299658391272698103352803865871140329369413702021616566349411823005617962238801550527142496086571002205981288980534645539227279087098103625138861859616697057075146282973083417791036776679932005528714790465415952484526003890359483358881373309038842398210068313350215599294730190133124789540418903134513538405918756832913860594537674534580797591186305911182159699081288932692818496081001613025682777867619676112166471362867734085637822776320682049290408227690521450388218200674359738841056923547224678284127831799630324168525945662616711053281337003846470414899378204871495486725043454868925341924171399961768290859153916722549778068317271848484831326212378370416561882934155984152852827918123590484669909626160478389107060609687960626456180994465683616073897554476108312188434605983574656560469900690874458200631619395481484050279506893246933868522274783824134411333025056091443616351386787003594971368147765408938818502103434911793012771150129980333509714971042267648695600861927831004027256362860808111181217756352200193715811340578918295312050531755727909839533725066646941448188533204348713133411131060726483144754230760914051003594127009042210112229667863584603762215572809501311725070651387820333971445621944761734033484183414080906741540730068705260822737203506822446496652813273932607395843715199632175507985982117493494750819059521238244230996044090756191293428595591950209639810785940872278906029220044771659567680653772986332452117692638827718421141646438417640225087749793633814109064439353228898832665175654516260535446202419798817224834224650252606867905464121665262439972134693011592052993248635614414252085007218390436858813251375694181438055201926112570626185344651045675247655781932794368633096340029051685724048257171132612071492224449552241761725396571698024148345851488370844422759767179827465052178078993348613322665432517965842243437059574577389762941626608133200251418787413725213522451180379863675887643651552054133238046932050424775197578578395253727349392593500966468948561983636716398612446744454696784358660470167528379640802848198786546180528706657093022038634303835290957927627357568253431259121166796753469144709398022868917064675531088321292603679211988448977117772083528500249722292942142390686779380343360638313646237062496784261349386118012419038111630543282720966422602974825991284360763306546151508957597097368747043353207455261452773303582066725118570986850567537857258389462034961770821272174935136587174066932836401714722599678375003613783088985535399457235904603626686906234597779890512642987330858538579295192953921335180082694202316274102188298056857933248593891372255368345887917094140292250134569957469590729907534079202311252774651573379359952732717706220911199881860093115422295289650235553566540354551506808782558387860789715878345905399568953575161171036653236786202393380858131871995627745187801188463283923379560195283785352516676932298122396384158637196762613109799124886074344854305310123004698442604460005877872967302612418908466793253858663465715986603289755640547587681906017425163517982811495631182496058620157109722444106152852705504264212946091585066568492734093258969477569781502738081770927007113983772470283752271453507831859332012627040003227011198640407969635692590624609181684846455103172304503564269892621976077597474130337831566169640834663778242626122478894693061842604111750320566733014213257224325306512179171037365242939512463153880864125857530969491503790238053318664232266453722414245216541708580883170898259880400059030169423669785833940306957062564783468297085540179312985524135199869129465021277634544296885734090881837437931358568045694552632760695392101374716732044021329139108505997079474300933998131492892837408958357031041081173177994206707180856945205485263900262839357783442316235876493701190047567781752390592153859325006345333268319413833295754520158700187118039775134759320892537987981304535606377524681935833336192869211504865438944888833416452838301629731995240270715858296858968960972738159916088973371377792742114378509605733317964749566744052812828163077038634304539488887049312667870113298790466663459798047086661584136882936148672275812266106907832987582113171940949903238988825881540015157174528342369676914473241190324573199267726032012239346995480593758977148215586005977246267243143909065963831277702805831307692495921849217273200228283721664713838320379154935822491081952523485124830246494191457625623447194742176038724506547928702120919917680374934904371331932719386549350955843861141367314603818272363924543142343781565426143309943448647884528160526128695099952538380752737408836328468213946355879215212779906292545615092459040074828155653648459459080056504899480926480223909376187731549297949533881438644717458185635997348811883319231361312336537432951554397212309306547866894853429908194038424376683974561838464857395670450442354589317221971575762024896573803826734646837512558733510746982558041256109479774957167709777473097346785809854731055121769141695944228091731749048029085895162189600500128037586518292053084493286636486149291723274015171377690243223197638927491626042310811092004974754561371052479902378312171531558892187558588021713633228602335469600252240923941045661327782864312797379947156758273789312468152928749763490810085380596703577286494328964413190114980991181656213396543251625870658856687006144013868946725966357021677382350083874059958090173018536632758207185655378386266973812467010959026941051033521317462406151663591956781912404295892931221926642525387958955107092999198824213120614504309204449559362362665664629007465276515824488406384986483224120025894704273424679406162844495978301139543517742843068439915486817151612881229128715874211074244354525241210178916290458463509185279575960885603591741712065482862232904339664974998983059278995417740772892799883168561467194680520084948873463998745213738173700268454581032168030075337396203323056782328022337355979347172461790000046098728614202276666628792966316105214648159283618446590212399496743306088301423778021777976357416947642814662898078308351082708606469462971740666654356652530783828995706520837385937986186516888342016756851795801367748596416310433200830177312452415428101023671028821215717736070464504081238203264655455780575833944193596324529006029256438105382319604290995705854057078159193708934642700477274436151709298331240396008041886608365914765764355545591247848575405691448433072712251738296634776992758684421243863164957153695055518227706503948844088117239810798750662400853722536331302902718211204239399750804337245182437506854804892217270463438417928398203038351285425534866334403816017268691066293418532253073364406494324624426652178762685848751470796725106976671212843360883709078332284073573608975673616917224603038496574945045020088409595232960190825829518256847060737980752235633540297208703623643117195764465121833503117244723857958269063083468719521713418128294751517107384404292682756946088912717355672569491067370863004019192593002416474894322983024109910289581780028375751384763917418619543837233373864012327868520485480771241689784247556677156923885994935450819167357138413481769045323871472088563231880966584568184029225617192103339390375768829148574122383363931993426496996321709834270151280621375384143567164802185827259709070446666839085506795304941799778364880747913610972590554326311054643756961904491795316287061655141818762154591192560123668985520232319191708708650787680763899577804753127712047231899265786161495511617374195630563075707010219020887304116019054922814453140068883999466816380812129904802000151780087658826969014695963137917091500620287544570764755663564500952339482003609332433085638351095933925580447821201796952331497425364260715199564409750847412744964470320751648700236207729701779478362853763212183934851518029787922792039653398651064518908879087691396027947345847326226651720705517743906226001617683210867292119989207191357289741823127435355057114494092628444036213122798773704340725209056254624407163975030079468498042052430406435136026395531337369606968637411871112985686907814340515129836743450849231058740695157411410704220706097544409020417832635757756290683375001126684006105444168491190082326500037924262438999445805304747822518660456589837581728095227935044396187842227470661810057263797166786443461788241387605103475892168487958082908457786062651908921371263176697612566321076309537185113364577113107070764672188210896280539939286146648643545957049261322892571620088719836923828647006831271310829858586027095103458336442724184269422865625129673227179576672880219855716393248483978798990108118653326144108200464293858456453910294337335748685280566818619534689874566033284215360593100580778534602358371911613757248182447177104515667703236941927312851646607289016991384033402591404496112741005660893061488414534044548431655550808779572709091598898980476887736398297265162890852289712077079453134465897670959129419369129680525626223138554536778221219828442046324663773436756653001789695450576923677995937368943851571577809607805180900880692823333547143531555894955866024763178181579097318105994657236115979728631522241122270451526386805188498139497591438150330603679755479855571538554524387917922482779212061722585698136894633613923731313447049220528001513715204935415702327068817383019423689556641990370680978913549085243606631447922980924658907664124191143278944150122203512835055745988058875408955003279570087668349917851289201507734259741426132166795892748464554058297558466172292544331616422971337285826506953957618746914828207312803766421136597864255149394607658513165935264745850255859555333400259546086187134439177592605208207736398563352809079184460685635828317241034219724405593723815379661335227206494003358986393173105277752533473425900858648454800568461118860378403196579363982845445131692081456187385998103691986598389674698969487378203590740588040662665267358963668693857974443023165599000775105393070384020658250208914397983474397256269974364681824571005455381314334862639596381284517141917665985129961539034297561274693970182408546528999199903551424538024973276811507708467867499455704523746659037297034496256312429940648150962401753645626440692810427142795100051188109564789565900289808428334744398602162141762791024542618067445549054749911176806933083781784089402067374948820876873786905277804902285078967963640336469952446630130621963078298374737225441339178993105307192399841785503961631782249386359647077358575474493966735095559399867052078935675704985834942787908787377390013579944147125158714037639106351012327953061005667732998419199467325025906362759726391821732136780920748953367734452213977668900863957526310538960988235294030835802178430608356266515165843589821290072149760731167939616630154680842900027640762953279735988017607055458528723245616954996950079120473171205531570325463471025156028294682304625740938818334992119765300993826566663878278190758457029466339733927701231124994476910035915669386349158943343139965415237789164839712063370320745722444815462268802401790969060425085259931409577480615017337349360037175046190864286946343135111482277432888638585177138683244939963025284841970779146557381900287750352610089904060576506651953397024236139749473047890534174975617854521793810546364631518427661818308747964299586937957722347043972090976300814467452828286496612873508762425760687288237107771034764844722190912770290558185198630119467576077563118652086420449358171347865267057937072773799686422073447158010394792268840627357333681125549277167832258926386318008086584723658240012913508315543368040329047976440510203682126913178845861569293369304107070845154656627313937437162006656755957154653745641953289657579791458821879255427931653969490189064254198696455590066643349749774696448866423035083823147000920737386395625888134443797223324523016740328393703647742602283867610615675302180640007382685482221208174603632972993917869312313916150007921369874938689998986912929179061178172622376520295176203371952054037770722681772853501041496751044167841008557954554024736922193030965821877079770199682284863005726877699069201479072701220117067902719783616280815313726748829039092770810039864517460646159899401527017665703158996718498257574723875477831997014538308787272866356643975108223449904895242258604164338013236088276495909647286189233688347947594951239232493683854967901633937744520748494828198052097940851925523782475582415332905010903843910589269950885718934547455492809164517948407189950881862785062326573296571398801898467241589934766103253154153445941907306771617639998094678155649510491162301129805152300860509237986260448926523312301913960064363099407974821536077151284253635877759036897435914898567631450567114845689646889419544742785998933855029546811181490274253501891706946727237772379389940605855898340049657837850177178198597171206210111028249365379994333949857927401016177964424186323539560069401450045701467786318015896710492815653837203873469741869356034900300619978769182601675680097721224764759507844189619270647381147380682127625032864464587525405300761637306059053865888123762633538653952920087513969659718046078418010079766381155401794850515872370423393548596839244439588562243864918581162636910603933434673459436445614055421355398136229876600620631032297153012553092084499054036264407119107256493182747013290001493814028092991379868693702998846005388649727907173966259711550531889694685863929044138838699632990637680182956721905811466331318008494457216300018292874535120479898244856912007463982828887340631675054131600389273750503545068407176854729808294807946820709073989656494314715452602537690966618563333209428431985381484655138088641278148490042932056288299865001680126165551980890186666910883798998084757618074728763161230143399232524027627068743688754763536808765698366426947976385721583805362086880369536852298664859056584446237449953475302013613938956859809618781790981127958207347857642632825890768285065709405698339570350893177529341347651227919137387369763358888813540934850916388746818676830017944903101412148113807967507726300842026038476924601417474976055262317973431467878337510473439970881276257633110272140848001657435090758141134647812180582911409699918453050103821438152480441364745406623675949817394863293661396500413630847085462747916571331259931644536262113966400616027506187046822202262397966183902562584653192470404559772691853364077849857647291547538655702187409357547792883174241240441733227994863559543228338343766462354505681077962015974172457939592444818571699434727217934551451998077112408967543719616119852043050631138093491181146805268152005521724485707898397029227955072174391572135325341387246667101450677875256823000907676190175442462352021183446738010538355982382153994005916229973065949868977423762218383133492407667892109869680628479637994992849965665779793879454813964093094502165121461319620968862105837309798715176445472083635015005942006122340259440239738944545087528968821161150759247574862225841875434288765736872696698843236463181974621106053913025796610857943824110276957424042674894433125632000216949425084246276327597969431219250704437530858710257227753808511323739154699076033671059523284885681224398178901503871298879626550288036547155642507524009735538127646309457248126235264010841106760815335456201139893488568403818536159796556608722246549500590971815547101177819889096538572500060380889285961964287612155694389581532095774959863503506448900433094965342715519421282956409016114145919864282619633527988451134114159517927653255804681839842655620338220097961544088821722836683199264395549988088174521488020787311474028895056617598880940200453412589484497340059403357759192048892810521918195157124863953037749011148955597694498852505016692605639592011015176245796351274977312165147564865206379147784842080884817765919820575704843206038993445245783255300733036286746362000825349918124967195429311587059075257495362672307283938888240743160725788813535930421281929763348938688541400279253382965528415913680450817972644158711802272717251543500246597123584986269955018771059523493503495487134432277062715156578595473200277677339895966416561499984289675078526517923176199749523991571963476080205367815787759953112737762048262066562334551954465446421988943851734279077790674031144227090081564167615786425026766157017820643547278865286700830187640650853049703096487201706763115227968677153526396984072961390356648807807362715539625825214137385452117804082249503536196833429803315543867988239669751118687910530398596894591380672386475324355071103730444664081206550367480469124251717362408701454603124984745446633649749882413429737411115512966647062705440054064904710057996947910730293922308497105270827503452880504208015693224985061497534436177646658308608305653564051640164808734698043625979452041905207575699862076492441588994671538181575098051615598269503252537273286082709122596522803747860042737302667154374822349559772179870164394292215093158764554811688656666417762304377786515521641865958177291136432825528571690272325034326985810925858588349626333934705895105513506615133851588252027041018941408202681404778706932354504383399308809899048064445275040234886149834017246431503147280340646857969887877861547151389541743811849276432757710780275831392320597584693183008067557238054273934239943263225962957486315798666322371959980488050221796225574454316792425608503046285719500111884510838261763296420240468539649906948020801523509962984847492404862466374567990975024975493129942233388095021873754295337650084574074359057497243329472463514264107887756601893248201442986358596095362486249266682114112120581683587080158621362497671646161965433568523575143909626823652732111328904196923738984674296210186888456467863468467531829205464465639744681191511951820512847252937942477420564431818541377569927934752918810864798093500180410403902862809290630454700321503173730342401190874998897246793936459561779105702112360015019169423985127988987305470770384444181948940658972905022522103788303467145003783047164049785612409306913037822231400033175416137442089287226350327125715684223621755002679226483195167535773187249176470871422924566041397594542581356908898999583530873171265836672445700871340169986626305529057992534940845054590066713189549634494367760094825527695399096413196163681282249177414401887655060346992283727982370728866653449664121766056538679420934576680669542471050975751029008796910478635815526578277344686739869968122902762612612645972846162013583086253778440152267398675680774284290968835388074850512514492418818374536160023976104451960942959660371366126648110901876823385228463848224460761792497627967732297097076064446263276657692978518481439145578302295200140999388814211047433161970416614283085387811271408970953633484622078254362459174867466969450453637186274355999980773205518116594067203887151881927381446029695843634107222679387052096158637686943696913379253783114182235608304003466112200247270911587766782373315042626414059703330058260286598692646009943450651884627477409638027482323931522555726036336669366155720970599707663579123918603035380819819889736065856375687806462610408674482443305517509465456633743291000065053223694873193208287590981429149117917511709708349003687348698562170825977168774245293758155574096342355790450262016244801970174182827217362352400020374792206061551558049048606294404465953052098921714399915760802588062814228063758807860693032079847209036593274455763323924628670259192621665048735352314600297581790968055640306647986752224165800828071924023788032098573919804437626328790994983867729983919673993150211273401264911009857200322194253685124739034974256991899063800226160419275534913329963909177905642705848663676451507111970587323749152823049271856240451783568273448463977363480250272389929667051159091352440828930199796780703693067002711943185063690366256056009810001698668312349440577330546187135411301882833655116684447111433407084064010600592087884256299865947344848275046980191126059069579451074538481183127100493847042842662924908199271440954746642551053959485823156510576758243955521902128559184136732181231368660620008968599359234018717650050593921562501094333394947681248610707077694048679578855938449652848062013090132275939951985454543481493903192252028446778464012229657010679293523364875793596927690582284228229484729835212587707987557524867826704166471868222642697305959688380432528301778951734776803372716241203393885541484798866108852484201044051397504589670900660312228384954782851452453287796676782101914298762700850507656759591199101088496142376039774719179805646503346315256822630184563491340265117370799269224753571642712015699563536700590996445490895825379496648791187618454842298263212815828715562527087657603551875031613159030808325519242500245500405355218189394992383621264081811761922121343452548589472511465048608728707848797139115875002868519380965092660457884606718624040745628355746066793381182788546422190755584741285207689701088893331429681700017011536651412147087777771109533581613615628343467179764863441692904226642330094718180994578528008523525738397339435994979841338099049204822377390377842746841568492786940354806559734915226178212754671074648134782221236423980201304458275376520736600456022846780916812815034500013950446875898435990266685843239238410530896947807384838366330261112696583877814564770242405897906749440843143750125513502161196956332489704264310266671978762855370020849615931524406887407095037864246651357062449627025177675890406285034711845092069468967605326579390606267845971229332984710895925528090211885321567808778838707570166842483650327411871920346774488726464147054331485395542768206460573574334288217643670153801782276334584306281531460866196247392259691604320099229167349764210225141645637199905207676036330223190087147410238797650832606437639126688621526104856354990078373180802581654931986430371385859774402479083472625756744197902692977711524273773389550973762805594112018629480243469811646037262639079703661056595409739133069429589916157738470503497047153503823064290650891822145965642543362773530772020784994311093513110524736723398275317281543261886873070887001280356524747689347619696296652653741260602857266100923032502133544739367406521375852408677565900812915323840016330930006325357661690036786610048791212924615272026640437036915463249925974564457302637028028336669371803382358373156139326200278585139727504774208659244782762280075136873625843783109819354482202160844353511904918858206356852513604940788237859582199303773159537531902482521651468037797795610930738086668525872776296120131744085530326648004429215918253587199158644209945203844988238005781117391772081161440216575602494594480295447623769590850718387850567471815258180872879569994787858899896063492769815379694974431251417528811649359395073437966627361074157414485867390495896119158142228505504836393304028899382416765098345540769516567527654715128242813638523901119624990146885097056862257527671356404249182353577077199173957522039468187927550464180686316848007931389467956202425224891040831458072512027980811453771205583419205688423002990652468997286526419329772575714412252775367669322328548866467294484071100053051706839534127554455171503965542663775879275713094208437821650387764089011034666348223939434791756234705495237082445595017508747265722020287211023731519339542908365737465491926430417148627605982218752211140609374718891402330513693380157431247587889635870279591137170897191009497574012020657948371289021919217031038968705803605188933565809911476905862793644129734571733241537542643557132137682983149096753068169877388574326804189622177629399330264268038037039168533835910800464615179979319618661486724583204327107279140918248634391722031467850600457701830617866389714954683607060298772959290579174834058452536985664620185041066582632736185064685380982414460007204223113733971011462174633664483433184900327025368992736758538725803980046049977954556703725666559812874515777980752402672387720044850533273752197232383329060636124765776679063730848870241134262974691275954635482381491681980653844213929890471868761516564248100204241393607241713155137857126141080978962215022233814814585745131681068338214795818146883666858521838861641976140677483626312092568312373694563555821865769288710341633782531787305741489440229260587876762856259810828659409056798243323819393525451630787892993032329045270486144009419906692942837866851080483134272864893497389403201047972404507462432763386312889789370106230259281116449367814032110203080327161261371519254123408025302609136732704085158873862720035010705058504955725647034514820388557687323320109871030582330281769342544705584502616940226533173394238001582692145480684914279255026881285641442464006664740586995518877314349070601273443629429876045934636963412160322064069430114379225633151625254185954303988562908132633507645287558308644917348318089539499737551585467362251953946491792850780071071910807063173509355201812678978713074296695199696732896270551677596726586721389017162539660540810788276555839458793943756493534913254820676576091920004743279825336809097547233299512799160253318120739211946383355129176924327449962804890574231045545155044024520959943026848539343495756363370549129265309894308024112588281605274195190409496457829571905002720328377391385712657321125921826746660242017904488533323729362687831349723351045738234270783734548138596341511392471327300798770252262343235897315087455156416167988236890208725077049145221452316048037810058346135372037390406945932198362971325212964346497081578423201651466274212400613982219820979150480342772356814328011368546351828592266786304428930370173081519482977758288757697477846045723452472042284762330446930006231557932783824662979501870339872403540871420998584590132481734431261779491277566465128177319867440380315434553291393143285631991697462034264836513399199240180197367607039829417395381710919974082828658715127647587291279283055292727959311339258338984191828204933508660589110677831306384335721799826668374188426113292730171305139895926598841471863058231616304994275074142463571726305031139099297295911509122077675680101561706544950635293462738270689827703489765951428399986596800076929362429580957732765044948839398297251416507028339912643395867997143803442437660500358991020827783865851600842816897767480282588169655896103759798467656842602887572804997161924051736743863197341048589127232730973828861495132063344877198515573387076704165589245410278319415371599502262640918025604873450121660970609812827768870593342039127763236328594977058007759884256488589796312716140887225797217384568736967578759199886796678804852861116256898023123170474880974580230972718694559811523281629235462049891729932371070760571976888577826064285304934294329623564185473815980252800556312775402528393563160441667041749147711934205391045594253827045170384027705252771092986922431618300319639862078637542954193796355211081775347804816336158717666348297288896056178361000221126320763477350953064938650955674083546076187896451897297956793942414144617116638407044299545420428180435651028663885057392156018220155860239590661795610219811179317867146121834794136829284134033416653998491390181744565516910934297641090541042307183318880624253810560257610960780015319367774505818658791333700798030362661429202057735936306157457557445312466725648408916030088937558634706122817085871831918481068606072635727325504015135162001488734907749909120996967599970876436739369645829170422144163027783929258012713811982949479107147669618079859981677499981800251988662930944095053858175396313022307137361552724374916728438651676281981844846380635693545636800233723602645765885619305254800004705259487479150711141669383902584604248299951066860815393771051487442514592830585599816603463231369733452955758846602040458319022291657177849544040747407760649093254051827791633054452777120757107043222079090730792933494459590581507573494321690733909021912583779827808976865206676723246751831234346987041663212309037273085304834942603976813397617874169555556289670574452525621767099888712354765982444728375864932486637706537361002734957722835977968312723092716876600794179883410505694170590784693930987992405615597032133367114864704296137932606810912872620831931679069089998983391621615154204658042202532532871781000618385511098519334123553221609202911493701492251971126078230821191058863616019924308024051280842001568436077140478111487173572535795554900985336081399361794568433877396210899357159002768512540742755292690160112434931078085884959803515839724046617113291480473301638190259743693335507866338547804136371655621684295934055409091395177670445539168900938651746396989114403354466084329335797640580765445167809655161577927887928843300805526028296891370187878213904847313766220992807524576064630781592788035407582754798927701198690997395837021737576126221385691590727655370399746221884488115856339457109834312513159327903878831252364704313107241192841703885805621556800313020876963756892468245944133296220235420660978087133094931794915766491028777096417106198238273673915085678556896948912323637177422884577934919118980058982158194397271510617378121555823630313397618983631091098171008545036528399240987938105501452041170930097085477249561277816140190660877182130287704569737491428111050694115131665280126058967684016006189748394708882450903777748702956278252086513842650169040477003978164092735817097723688467740520095168569281754411789619516219345650808514973404479684623333921620396680015197873424072828960657523090332299766807798769934871452589008759853835185158750106732533125332225975928328886699735106186316237699059816054648356723450056305904398250411679055955717572402885375267839252691706864372122998234526990036968364383963772005916967845614281228762815533122488261543566971413073043369242241253917923579625170242313187186369674059157642941286626009658211400827415160789014672018152399903693026313881782754057921743617784140411332031990509848881326629346641580978255391537197944136010598200448062727709541456670793960998767338802462342429411238026547057821817331372936263301874073539632665655116430387207076737592279031613685306878993701034946623778901156456520821134169179699884093946127831838986560699525468828090225866362136464101363279460058367210667681455432072301403345524220117945759708592142065541710350422641312012668781635117547857282599976799182969182977168313991110315554889112159121126193860226381478442986622205118145240889709281773501938438078735862791694380776106521213122313002195456949713670631156919780673484598937100712228373800756789703114865879666707391089931643021063598573539072820631072898970787944254009289806659957407681177945787841341123360409853527628843797093271413273220867392941390709681589011153078272780752815191043795714192202815288114651898204725890499869809236838016302175495995355288915350743709916264104808272814590789418063872850138393184084555821457493206669447150164687222945268733142043687918703060272100563681647182740378556782088095005374926233007866679700898109606250777905009146826658723045991880258123429562836689650179220900630008142158028722495346365590011509536055347769412461165284932737070536734255735038149375234587433236194957602006996452807906286175314454435227805432221539477108361002880626697461586593249703979851019872408363056144662657878481679327728595477046751395107381089349419450526460188598493409424094244711247431090693140720882575372180531038412437621118780143217383155105901308321767120683038318766880878501820176992483881322762804702361740228696992119262551205029299188552000337139622365203179693621311356416601126702526172146475911065880176482315131090441454395874578833083071488614610503751677798137045840549530178849145836030151443694313415366083792694909755317306805802827333653752607277883022916581261897775492572439973769677899392838907318968712239653307493455883816869600300551315195822492786892817967933897310030352307605682986353938703562373006552438410765788714545159069566126839704279107990366793045054546890433737226678986448837041375772196899416128959133442449928992391636589418104494655489645173660819802085034184623554844149170431653125281220921467081691473620940123893993901961831670466765660886395940496604792936299947766562607528649242909678586239188989827843372040152561005961365439250008977619234616823528244880994972111579383730179602670872856690019796182745669802560616162022449669756920559628415398321297723302728636499123314887683903015557665054796612230722893413176708520346307080697265230877111155890036285937703040185373403148918594980613433219195875466588975815050969532900980658605617284709144494299012760443368986105381123126797599549177495493268549394759710291995828371916857128871159754363836633023252968756386819791895932929947096748937974872566962530179824317630103356447877694339947560464991449331603102566024871402719709355534220681852235938404215712943259730979825896382253529379406134714543677194308687652268883617118084842517628110228481514206323026768397035270696806232676427944322299945936529908173350143002268333962791411139150152922684405160931146126101498435236197211584414062956905107314033939467007876984349436117784530617262159773457638479096462606912315567014203996414366858809649527961999459628835917107829052093311782897867015834680361773144768129553880780468755594787990622200043922406784516838937411487169146984033941951825370924042280225891684569347559943784457912230551453713084800201939653195650707763133508174208633014909591534216389426680261749333234307580573429398601430438782952980336658305508142196102493267139643987939457639178741883211987585470185936223882355118955303111051148177499980908591816949270973002425453467377585472142256158027327934028952325927290338686479419741667063628582588900615061359621871466250941088892189990195930781086028188383996953612164734821763379504748172833598671553401888117955007748347520340576955541127786065550214670543677122105774572706729774666150573172457032362667017076009295825528027362321421487357961149582220300089614659993213503387903688529208360702551328085070021619485373288081331176524352057653792861308682034584657647418153711755809791081475124993171424089505603414965639081504518619396596501650339558085420471585863733188571444032425456631654679268827014678911546634812787568616170263848648473327669038938176998957107016891247601836333946939987855660927379121312515939602148018201375452094243010899978772485117870333457550346761120785607976496191337801150638378373680015290659824490823141093775905893356573646201479832791352457888545044146460442410388624343735871096249116041629940290673331610980696241671252079776953052359444718553173206773247355686637790919916038089461161372511342476014585257568070930605412263217472888051147536255429129220092473471730774286855044144276396639904206646613892547127787287252514517400738733433918365901749907440417791724004796069393781210582313778090074921098548695515170075295139483599441260817238028836956957424796019240502451813301083083832776764991606349344912986139845514674290953664940200537188673267217319123080970588145548896584193440492057912383669739932089503677278506971030367494990399873699312391774745343933858545665788539188418704422316129445510161153864213457867054508581018104806745491735292170997962775597400408821906777571304302038543781663148492229511047699373287850458111703380981494034632758568691319288484904490995285001264850128282866161083814251145271585458249275542022768504656464604814593019855540916249043246795105292550621014533377486248552837065785082798517766386949279235713708276046481868656674172789027379194719102950502432011861220661609266144324052282743449146094346567198136199206221581712021202383564741041554232967238714347187678915512950770469499767438451119729950817621758696194554057164880335554819657927342447238961594761588123331413166258707071184307612396787571726488051628066816043570573060776391815572753596729541963138036438162993386644646584419313022455637086459070675963457882720431673521175599220416931796399658995693853368124948452416595166334034942876316269916441960583973867336171177375553551366157587977501468329620276114480057870318598996211597405325370490195034228505693758960382814684919182902731820455980794673108433938845444170308685832975091491752129350520112635095899530370055677451291530964929554660570624899250287244917761183303184047511509928847896790426199147470623264602644276858052187817876600887375335853325765648886625350290613451379057094033811039653120247281378964993428113862925627019759622309645349835086605361985614375482779635601838501945489203654005328554626407298963479888441716211446777143279828578510897326858139294418191727779303752130381238556593694226061162981566761918663537819571928435436356708436781399836999719646736994806049482905836871491921539633465597917839167957245607995719596105806826553499827857024220407112358910153445760009030889229769288944826536810141546404264011967234440718465306338396487307918082014794908799043690590489191695947718939520225196216821652547625873819727137498315724419989005928765789249080898910582029142337210149448249304426369748563332070416751963893850720167962747143120551989822828077164957137253825121160768676716041210189658411839965427078895472811812453245615628442602000990349830580782352980077197167528256904861921274720773032662075833117530421616007441761324322027355907198998183531412875076947544095715771822655664299350355101985092948593802183461480194332723354944879864498891442859381412695883466959669108433704242879017525876675563833951195986759554536903085126903967946150262406448329982860952387528006283450872559598396832252080301691809646797189448311785546393458681436593596605953371487123134327152156378352497898354564181401059803614449648731100675708903650317437510999100524711956652389205244498830143330061277918592857192173275632696019086485555108342521916242188451349278127103715649979983598799032434294965725892446599430612705107049463640302860610324215751924727791486267953558491463601234621426774837040862644876889916258729113104389633906850186760915098907045009924700614643268936475425056482826023001197508031528368371995930627794665291031889620233214383936146215698803082454950498304466884559115297286019621917973745201018009478778854543805821166935127648743373872840835724841473311339197661558871927605445707154974608707901633831025789708865084688189245658287328066759580283223277609422308691643943259282021998547938800221824481809158519073679107472183929591281831390873633801265752900967255305548031666246737175228049668377806031984078795865230555709096218740098182998166466470972957388094597096911606258339356845149198902902816238441940353756511259209635087141342442345839015749380680480311163352077148575962766017460286573015792177820318384938351858432997335403894477651986349248853134020573140217703054831048145654680027258378838757710136881248271902461526503405020830923046163000858280229498213828490341552735418445872831153442201852456914626622375493569103812125764094392491010287701768406716336114633361381896618212751831109232906012185662086617029030495091353672008040495583759636552749249300679622994429506533387980955937663637266905438923795038411983812428588957767092240776161593959032078119252332794801021626547976894149887761591867594176117539494836560645037367391635575031216340302793636459536661332186311607225630149037818862799861030327474477373112552011799378800185639215759021384461217725442783642447283476580133442604003576710488058870498475949912625106274764951267165064970977869077165098419530716142991947922904830006059500398331295169971511284874202858089332427985150163471476970351620362626201374143804375996334160819096861038561075523608767136449581022859389163251956721132315173814239079002310769618592347798278216249357277002767081888807344793686124789225725847666890692948300651515728637545608608570661313122187733693753062661314539487976184346131952838664180015032602775205306085506358858808901875887155210631160033755234780525704283558853213506975030420760205282298729628472432386004882362329749823811793668574299918009410671556362969760067479443678622345803158423435177485346099859743438415861292291967500469933627838872505775675863969852490361730069865414321358085643021601277289424730751575762670503150373588663174515040720453771664763449181357027352983567764578969011907840484116944151979949609763361345794272532778816206448646180513699099002733341264240141993717798922326417678466702993611700042476340705121933651660849171925305555361202570248907231379258502568702058535048617471356958049845641265248660970705395353936972204765803479361557413360138184957818727616023532664403584344622710821097922715443797222725462810624943623048649252196665246498068427900536209413404860715008219519973522852587642762912710615721455703109090110753044273638013744131474756101097108771371627601542554202525207793312984581188047140747771520517650679880656857627901002421693330723037685734397713783532404145022597327518825976028755102311846239355835612423749026377888451288407884770407100747543337838097493534038636598261011613756176616736423517271499841965289551373695444425074901864932002367383170253592068396145305327528602362733888104323060299335179835395479807435190925709422403957628057079202708891547694937355839832626555339484721322154599160002931068980479852741564558377071816213106556438720252903518633839420977810079558175766264620369136997334417154948878988983196164938547269577845802743977162226447037663953120177564011111125038208485040906655830346530159168011238453428749740556957998053673681480093002317776660203146830591860345321680683930230825165066429721990981241895448442092347100245154780284574102352252295344210147660784920606309466475772730944082231687794060763560426123424635913410467330599812170533847193897467070327848579875473398410869132189628676245300040722070458290060930239427703922233974431289133367229872218012380539955862381452035445692897410737738024511627755791160155831908302386676784060472756902582075917212521990266528476611865199740176169925532279831748070525087041998907892214864388541184559474485390879374964637497173648646285037269968103297063405724485434783386460065198830637294829995177419011327120143235024810569091847447220120430301641926166773885032884180629215440077857182850532700794987916085201199518545377840525551320706082023445067071836184401178395017457989885818535678627328551814672184058909447608118512737209387802736997964403072567901253183000450344475419713095072573293071635887678542776309035842602533209408584289778556277002324109364125491011373796234752558873072798732280677848233117310817952027940948003135510203923717349325756246302448476887674475912856393473556417777671479543258212250780145714686575011758143094777289741094906170363734541935004734617071525621518007898709872995512205543404654739731368892679834338523881228986300357063329120698484117622926712693556426488111546432292730115741404213536202502029558043952165739778593453414332099715563441171506072307460832208818154103434352125077920734743541215293505069712126330477352467181635690252826778568757636647280602700233049755143661384497212329697405223987280833246536496726724781276978268176255875918507484303490872338493539255820299864604449399828999035839590918598007501965311431197323864119580283372717263988590310831465567335695335069425507512675175174994081379887938881641305885952135742510932389490559125759077607509479015407336898522026858256734616234443392572830686438013377925312882183505203842888187834244501566885319035197843086456748459911597114365683174470435077035192685924151689560243531045282320898071729833688127713376768149457824301133188045561927051669825352864044482800297951441657505059234092205392143435870117962078244157398173138178482166895619106528711629603712707802656439017905687595324345223455924545975083928541712847194766982066131803763639739782434806766789760382139807085397628014756408867879695034690834335783392470165625315126780670393520141557345639808161823381724257030859675680932983339817501171083250799202871560763957198129559172331221290058867643496013352897392774029153853215504203082817155486048531143655259093941945438446220501411211991445238605258331510736511808284258133669850333349701218907638074817888588667343860438447231581710346615155191480563147002573610087301147805014270811875100356134453659890757487642666860091719001878915473799024757246167799292507404133979859845847872062309058173677070443701713804605072468565398085089807343435725209451781984316636460586089250468541161481589797517512777150709088189322538131641265680024821441963827622934715929222102558130953425403857495142527053741265382175739076505035519713993240303920004024883739110639733326238484803128314650495256557491481757354006698773524061766233059664376751144920679765145430386574706886954057401352211050757152115666324698207028568742874800179320871174473005694793661905971332847699224789360740943215845052407906729410684021367449375365949388054275878278414137664836365129161356336115644630479112343651011038696312466355341999737127120932769372950099912216998298184319177927728515872460527073877209500449717588511189550306534904507170378974822650318896565243848496670403897549124074316341312264485691180213503593495694456494326481826397900164643700771404451805947783377782670964884393593620163859277246351765339503181268705908215736475908400940423944791795225619530352287877524749341161444333404764198745890476509389959841709948280000896922297902557626698881968927481563063256397154195474929347506148160369503125893222551406626677176940879760378310787859357731308091874363707068100810394306523410713995882403823709114191309967374173320526134299473632508185413071263495900252985651000271802364438397473567887391939475314582229999996507770407186147069301349174572877410414030289208827787194756242461754370963246071548806733489412775863353747612606261713968366399168158488128254940223686212594234236238462715381171262197278414172660150889843938786067134941385665904375273359944606011476127987621602633286344523041270719426185794188908788689528252028943933128869204139501356099142592850392937253701615365335596874356695705012539863171266741046587026383398715958043167684455870981481242845779691614012621636536918652620570764281447730737225638067812494224767609211663061476130973885151032488794776783804585400718569582203977870779660267068350296559633952922986893162302006619003970588054161732465648895441653707122396469608294831687619069767180531139735919878870113391732577053271535838685023791275009199792956096934992219845594138528535607751254336908456170718407555820119620161537737086470427530136791790491274007010207446084355112898091365084953048997414922044842448368667576983091282016703997126254512975637844802059475435942768062247362476986184311467307881148119445849052410592774950981010508450444151961472782520151624985349795267054627565748182240442907219919097195706186629098743485708015989287863167724440396268188313423792995224856718078082155197147467605036602254417469738590345771537451503698566685082765375913614047730570167019370448043317217841172664186854508001507249824029856661401018983088944665306531523837907020800258335680105426602656077923589458475824506580935732347255341306820477146267834164078858055958841932806426256321712954508075455714957573917455465858094127025849788864117521274562631693430452135530480734448392115331618285489855959685626172223420659288329729679314168583151241900666398396484032599586755260369120141132560681121457751817678459571877725348860766090718107120112593989895951155887914181406248647050545336621852716381126555683548166322012788779953946253025143860975271351351846129020674125622668943601271884630266246014736521196674598686096275742078065045040627674317695697191531273744736816894046379245248248731909636639382691748756981306716402333099044074088093166236197692554687765706087959869850484763722356902726379274267680969877438896104867926918916513422013895656717588076880617617362188515765761305342835132999319268631777623843269866370227928573153758874943532847368871669918365552204520696771626597939660347877492921446418337368841514225351212350092656199658096963530706378249832511525848914268027707150031903386493626238696545024249207263809261537875374928619661252539418377523940427383273555274541841926203155810265336962490072561476027507462020091866103020352053154703349980841058231089487605623310073885245198651093200123841929466646503816964986492833794694566658334944479624766634506249117667672084541304547242566582879710418104904068624117595766523384846790959924321385720166351546110049171517732371222831643756274916700317597614603058403917712657713194400655286206097963983205530830438655361733310048306034282045856981507656661511177509881718480202266416864588871188179563002688440928047888605703661847644613415909599772623865019232778579748881747713329410246378834760664346011086667068949192716308036951111904852347513664195472523080297780025189759300327640988477828313443576715834995110288129158148828386422395049892191635246989463350287067981918855146840451344730125246864859579606716324074668705299293968682601738944194442393398221684929432293687769185581966959871991161256718225308041864451368747887569061712715363186343239411173912436598202095760419165632105404981184742132953828194614486942723588379331339897794495189682230369411669696053818164488354943205705432513071432213374760503308534852658569678926457230632807833682515065447132907193087164677346119195076773857735381769380773830375093969146228595812525948932246650182235992694043726057890550687781864488385922167061931792987052919499598125286749684259647180272967447060836434993004048768168666708699651971720535117508852882523643816413102052778142698294470002960707914146846409526917684776310294559233436813804674150174591318622736115250405803643825215606155113883176725358821866827609156657732663865909260210049707550116355291398756905349638183977022357663240570129752323861922889643893697662614570031405070075157083478909268687479373701815586777813864108330035846795582564806164283630534235777461974955358570411044299730890422327333161844333435667982976094795377622612889614272307101096884453253977349340581355665283657708482386198005867067102783424743933240853249655329658937444677057734663869565980439426217616870834938459569632202147221192079094332835436231793124571028893725839325893224865998092276758207473186007613964430161852083738865178605600401130089226327630611951151818024938580308971249776620346978563624114337619419001521405912618677485732523635161472450406400295203806967957001101340253541814623181781589417527494436036519035357114959865023382730307708285041093508489237496277610119413136244390558316840412676490334459759583723514877167066385014014749824284439625155024907850138259386763032398340968883003581597949230662427630187948063657381199893877572079323390788666670654261191722379086611172841553756999345953694153253941203156946512977665420183074759758270886432423122021388462611339355882959132752018620121069783332766992297789697653244845649543601104020928315386174120650451238429187646244255079930111702801213208055876904750549866863525611820578094181854652976149201799724745159273484667581733118496728020717854856774035527348365742614096565450880148745965421795403586747636935629140648384953659781678061593216679610999077857103099998509569501858208347011293914240754402082217690657687166248078674027820618933412611662627656098157764295513299393894031815325910662881368451701620878976934472589488408973199936940379730370653573428892619713969340393483114223948547278561556829666855823687878749279313857032867730467971350576203380740191841015459917920856528411735795666576403408203595811554491308175705605102600069285881734410380126257109908552238195825492829442027560765205118042099249246192237976243299293053868825719892374831099009004404087967933199342254970877296036190792676782860974286033412462763502093735328398716743483074133388523466540432487264688549951651965377597953392477433926775939926419054017172246904710971039134579648888783432226462242638524139538009997942075888262896960439142101897369376218118255164186325825036752479796635906159499552777105140862951327993466813405276355853760206112662298138022628041817119974753637947384923742027962326792368083093108194415472177645287970005510254431105894123601272100611858671904114972456432183437850427467950350026448767091778919362532053537769020291925006055154222658692707883181647383547736012769278407197396241945821577302955156186787505936458615385802130592018061290397636387275847470223372010774013242038284626716121621427531767927192605965953618994576053153642364926233178096327497956995458476656614854071448427482985348525339445809856828585058428334278358897293355702876720848574722229986084295937110838081612362390976964968749691710133997323803730413365878426122186989167247263958131556881894173525495362211420045787807983499518113563991197910557708623014262107860723444565344838008977284354713501801537025841912881594859832404736357996025163576068016412427280793078593804825091730878321043642830632208638549594308455504907085220679454166187815147711025344284958535448892521028785741167384337136036329179704862759429704144941263437018562966936510890000790972299851451584702109531396176532510728273460151707295636729161094167899878773789364357652973482835489757444335824460458849789264759500843610590105703869860854183858392612213843697754573092651694928183434688794786873806957852681711142240065182136484363374891815840817872934524771465824169844619304254381005004136865700014970124587028888809329498899288493174666263144433462279891879814717718717442994643835470077607734715645012254348997797599148005920595335038162616521335232721335260804168943448494992786608107311049106701144165886919921402710771717098058334103691789033406353293729760856218542251541877898092861475248488755118160945336555823339847368193131798457159030854884235325385982310513464477046947401353191402702113660888957761629296581395778703731079178793072513475507527769871673811009562013473312850687600698109757909412381264256547206862480525778155907545863775396902658107085011617082961725090688655441572206290878275927934147713583379058619141933871044514235117477591819724446260428478149959624124234725444343835215406563760264484343136895665435060276175107422393818603803588929174371354247692355946629323099969554381978657422903903494748600557879180056791486968715164899205541843134458482779177238401063852833461134493739386368631594985115055781063253848317458962721873111092256080689575626033500187952808539904807249517641912241655992024231929281879079064914219671325963582422131260700894486115536500730485650480525116109260696792880303155346721598001032429066795800266094885489072427714472298131231370316529115718947912161912607500181741538514342019616571629374999850632150409366608136456694968545882506831933839169371515591528697563547327844944440237204502360294024124429281006644885479591572061548226113138542838258885479270308482255725469176557628185072463365874931785303102931995105568957758091737104648089494908070828996409298263326723417409034144035457594207697748148768618809072769730025935740415313220181928872511467890996093367724408564329669647692907455993253254424083797576440270691194567185189296489281230979353203287628652751875524315990004750173755314191719907161043243275413068006501161418441573046864597211860178770509190942721279316440621152250962459932391528446624802616284145348433335140120274053305860992998872218538098820504412630759303518544245135279811297540699133344797043307663221803681409914206601732083493442515360320154356873626715975052903939492797778715294833771242916787868790244086336606495982238466616452154168167271420179978765911177586822939829425158834805014134561127928490849801809775970882800256001590977327436596141525759918847002582885288587891633942283026123585985406803968065519219505416472293650568232664068552454892254637463549629662769038463016633719919570177135978058997528690216301612156205111674351188563607386941272682499955630983611668941514627611322424385512965819007554690523278710014732891389147257331309624328975589093159868704650501372170568435327171415506419292289938581306713478060267135999242320919349725998555269700927437133913954390151578612439142245902794212366683395248166561012590831934425973534284340469276336908971758820468664186111560640521324473140066664666107201907656556230720588762243965146077228704902032855538962193844184213395582965190473380268564409233217398216972260511802045007454379200359997747034027042944689390312209062646913746954371807825467875051086364540930326441819411598031968496594566151371192892213465959180087183999269155231044968365364338585391772145871415796353463738775614720515708662456609706885271819013767890676261658713549838039542091946789035095542177955349020553253946659950840792694853374827736886090974785180651679012788903849463074377347448062230520485750938684425548003879775154230864662789035424304877072726508687863379118302955182924614503381006887033750754881458869845889147278217141180010474941867182559646674065146182830271761524344080136288839864593196393443367563533948446881924261370097742160686909307578408476876444885848562994760720150597172228703993814308404760952918141283494909149533006315954085638201910429540504346153574724145687180441283071679193338880717828149557257373019703658043428117832071169062015558430402177874025398369208245812439426816708344201938221343811773292971984062260495535376449194457069939798279107782518330768655780632414014037303300204507979712366776040292670861440244784839936993467831516860019339095508532162633420855696100063205010432693189356822657637540785533167450635799044489484293251230769012994431371455572709406630561133271181384515468680228138904526499326725779862174341873938818585106420027494998258359173659116514864838753846964496870467721452492726796443598030398926114600026594299230223652105307780307158468996981360633189841638383986683528934108176148725295514417069999991024991018893056386437927504720265155571388908563191178160911127965764975815654876928029663355706002964484494407120905958720239518742614936374499277472409835336346493291066513779986425121625323818001669564577021312059066559980347410574938692517507182856085046561335248787192202505252538215864899344244672719736461098402693060281793625305288076620939184916146933084584668729433546831657796784504311227477431506302618386488225038574271535729585563331412176307352686108500048485902546795039750018896728547974683973792100008776758896849339420837450813715371329184810126566496222969101596556040869320165536690150854598121588781666647750532709059859242082152769564834241325930556594497024327687946866477631307970309038575339273171154412016234423520741964318680337308698393697703229334142115851231584250321626228595696629014166144202891839231164169696249239913769502566374237799529332682004907120810194942330039458122908606254515141698919099808604046559112945365965912564696212542854029026968344373155732384725884113905537019731346484646830484611786063495197497479562469447248232211842976169018775328659259405777584673273959600760424321969112411833772076848921775074176026578509034749196341261612813309769677341189708273073375464376855236559172806725926890038386166039160135930611459744165402709609789247886014365151778220237197266001295588765190823229570269151211113903116390148538743094327996873184624755243941693193367724500198571674449736480467211304463831825860317452950106169664160578480303010317291603730825953419214582179623130902537264361047093147504193198443327075392447217178544470250039766743764587605728984740688979334952804009573724682681543934951928072166150975142305800585522705255430333694966578170587668089408202039866264356894489099363262442517004510498593551145921335637626246554791389543628576627095531007172279522000333134357330040727232682827081771688326619186310606751376424664737903488899388418529199362356461943053433089082194565449507233657172170428110029236024229116484871894017075661964236883469478256711546422215989625476665240422748999580372747973556977546278236613076039507213844881378197025627199716243641973182643786756274317993588106794017691170065457706598277948507682698138671847914842899101006786891150324262443029328036151134155862532576891378668596957335282519595791773027959282435323714378820873828460809369873744377428752855853211013660394472076698694680605735763534572524772586282863793933409732977370020944834815835088851479664868031568552217302375683833491312359295523741116896909800440823824206386575233770428608507245959559793487307368355682086664444211624674016395735421761590801168805118941457821463853852207113812545201152992517102955380041144725352331193224407083954332973479595457745960382805531563958474971753428833359652269949773147980488795860287472474117461311876189280073490564891603078485109679000016313523812848538582074648900470584033985935934028705522346792444922098218299016999718963856333073397260158756795513390060135864292070505091280418739362549304182763687745628787622613219675237619014465064464646261526425532656808443678743007028388809838158969327998339879939060941761794297751263749702589733139748728552284092902894635701759237265730615463933748733077842492627615867053451563477363265355492845554625624120898538208241277804701855837187313080942002787311659173822762033188920179415196521498302372215165916738277239931124385565452577312991139762929056548649209265636529812151336137817092514953444950696953640588967783091222335245049922451711805176802159984535676580351254209747983425178458729961888437984248715010463297702335914103300170570176092254084827378811310336468505167244500227974004614685249006522329729416907654442772069405520301119636018444344056239711427937738948548128033289134511888680914504801879725601706023260031837284687925745435917283746400786868448313995928668698077162228879654040737114721916808679860381222327386660068258750604377569436889250897343838108260691511305316890785031384741785298682404703850008652290391981696970204596734206694103408012203166818152844834881738203941055290964717180665388613564354752260930343559351083048210779992251506835163009756250367580531126929074254988390755537271914376697575585190203544349977117791310712227530210051312274355460925948696133301975036880777124228595272350001253072015438864576749494252361521940256042488030469520718723703535137418879753152432597657714561376478764846886458484458382163144191540211712425704328529838901559189776680701935230009519960424040554877813303457590149021019549120413256459653180591136248863420739392180862097455557586600023216768501930375739533947728242261934460981293159745503128113306279647581885252502313176339276341303978906730434523158755328534020783027722581695876042680132543583907558469039947963989991301532995379022436814543933460960788483593647596053487307757395606493662196291460722979934451849450721498321562874167171891086090757801625244244249261417284132612027903114739729312779529813021622815266966979465217355088829970737949661017954969721242841186811364593950730513058690900777265604992723750368277127848261072255209709815480988827126359883919082343348921811873155558094314123137897857550759815819080718146863492292614829380710705021929626352803524284691981481280040386738097256598523056526896101296675852818379948530495780124522599206318066273215978784804422684625997564854798696299690146479365408751702216025486960484704250777567080242519454971178155312963186205099009612788003026166253728402939986614382358098807388177686852268041877109394928999455963158096860939797870379208418358375974107716032112820338040759667173418334600879944257185481111542535109323013583513001038981894813479293182014244028805410041273564231792254936208960270383568459241650024927218025212791430681666148521091169073046601621906599693911730868643344236396940682427771350501186432390576033093651752469141592690024183834046418428565309460280783979585140550078568197514346279116549571642828319932851878237536407238047570108616798113293064460287331082932580985815723529343810258590623683906733163688125275454190000948727157201211701646595264090040035693047842986250905304456118945738571157221359457317726035264852553032242014115010989294328744675586238453959564453515895774067594690937287855803322055235987369907189555897785587390762001308983177106829171859348318973365554486823720826594628988448853556230323465069064433874393127019440979913732232215364455855949442020814992205068280976143125576935246454543099834076884611843693691258011218869411434246129569130110343328974776780723448723008287044972630699220229506121544812055749093093710070266454304661091723424913614744907140851437402633983076896249454593359083353121154531217928407518936832824417697918286821111364078756776505959662153017375957009188119793539758899645306099792560280824791662525548302362797338232323153106380184063069960708682866130474019557726323355048149307730798795674212225869811915025675069448568093499254961896784853681166747276192389883930019535023958386069163235299072781422670213231997336173370720112177311292716500689349529587477856860136476683528334618384765695676958097069762947171693586749563476082088165156622787294991273130466157240388287920425048011214218197424330461709777143418441395262091854640377537613752423967214605089309631640691241275653844385052937700914589625642939197072184377907649991224618078219703108278175144345911483801731264817353890173213782272664453221833536396119987528164652517329622917431221733884968161810622747058216661904847078433091513277466840924555228489499757548781965942618917508428258134884701150244283579077337727846273273371711407161932690743023239359152656398849485521837611044398896721955700850889380662675204564768098692362751492763409427296984469554454005835559275468047066773542999535843348983365236684545434451047830448920804540195674107271690494474193965592457962893013346244854412524166609294450018025447347261262000822341789461109889158992070108405578805093512968675026145343010920382080113393482655618281003301049156404974950862105445171134506728254000904024787790923215450344678495968351633656448953629740023650826969848343363547138305973469524563190700238888409134083252208185739756561856182371814822615095758422545675500319184067702772093925031299110689766724495699144614226350791840774912296852290962121492855571783585028148869750418808812160780813969448338917421472804924143127020402242892875605970317634290505347349681916917667206400926876754213125309368351122701178658007762366683733567699372152882387628194433600193979880044037986354046732444574078078382146943477103804570085900108235897875544404536890011289278629486679603207672533964115490956226129964970106491602251813734402561796377532802458773839139219457925663740142795436455481863018059615609869999285396294092317484498599126088447347277646243715862150010573639536381001851994782471205648176582631224081339422460564038403981078359724653592379728950298797151065889961261185186762366566811053323110693596293924594913222714533413588689563476111411861784013656000088394229566501370352136841860622859409057755172623557019306392754589747588189083476141413699317431846444538946829868245113247119355007583261146676610702675282915961374764686895068431085751287456346874566556977302120313467935883575617452176819297193750794052504528623289545594826724998801755893454227434938519369298407988593411697284223716782825043819498111820530527843196148162593867527867883585570907684827345495788352971971861698503433951885714847258778293716293354404450159057666104900747898634669627853789452079207345917088968354905782526335125054632641855152285072128234689174181135892737283652054160912477477295738787023312342911585932700863715130958048670942891154217683743615365355771542917960092143579546295367050733110705980919515032412360900321513307642926889692075302321556777212998166277268073891805787734803495968601498115255821231263389244260198258052877573791229627999588612873193643750395234262046600927973683895780968757614005887030882303940754881088536011176615974771668048795126584825404673245167954832011559307265620492913349952976534580746372856357465519928022753741805475088158893069814249334677404781039746392971086380227541018175510441445836512991356376750494983408397512085806969765346186973834560175174624273506150871705741839834592474576433881426684145908258470179144863291583518692669976543055779625656046381382592569215708772448890444402025929524719347523738090020672204618835933838707721550128475784513269054877898240404998294209568529276129593112260510453977426681973818524114565813804650592018966904974227515221464626155633374692408246522021606943124533893279077055440156487400670680849947825162243131487002966725573764698960738837148892173149396904565260630917508028572973154844443682080511517859491071809378720653804966442601972426060164035714200682090415053934541597956322962774643809382873104566533001330654821145928021622192604498498290352141949418402899140582887948264102672984676124560729325582870994142792408368245574284509108979974364690480058978484667522059958187153931235047549815313945412598758338509882638823175492226373125111864049074679374418980798464914590149283124051571637225804972377494116043964084371784742099728538053561067314234114725497060097034101391428351238163891723405303630650540523709491798085172210709327968979807999119257226498178446825505437838173414451547550755384173512209481423297328081660611724380120155526408658254019271709011757381603649350889352870234512408107366254081097408536422732565858936387347286806322808781755158445747640404333274349576057242407970070872827201185362143602769236358755520802471786208827426369024791246758991931025509683752109317666955764480845353901815366180958252089374367802689006059068919005079969235579354432325610972578646712976463940198495420928627186190234027236816004821950666153107416412456487775342769634627827781764616733217684737029264206356387688069432355039568957780843940818258302990483168843760340188634548863880581243562803201543479463208976682894060700516656410074301778055011486405711998474535403242745216688463200225399336722203756526021386173012521917509326823376384419228074478733731675704758995010713431622841601824984343728064125235548543503560467005994055054684792540514372608228327847994924374195610111338444586828330160671257024696307696594388478359209168794451601218820723550999871997248802833491446050770899550401132951743562619599503179529716831140610695776021187072918234094671265541899828419357201442825123006827192275736337600463668581246150426065434583718742304999481185448411222131941817814250637748645748652368496087093078862706968641420590105219197648431618231070702264185293633880222837691113245943676858411188048561264061096894945553729605373903818589526544358624195185907541443834884501569692025491401919127067934458456896627465937992043148393666078341733765115948248545980918163484868843181845032518715461311750451667973436086766089150328231354039268583782071578793732089278860692259601223257365020798677192869736212533532531574681385557019353248446894626726569003908532635163364501112683854068814779150676234020461184303570822490423652559467054288165738520763898065977268872242480430427458214555322661561239059833729383693305843710430713973754151088893052903945912717619108031475154608459533084659391310841924507246897333625586501880449012946782735999989550741294153348959168041203079742813562015684182299719646218030991204820844441872065334344046375327854281522462845804843650725556623025111229580004238494347926175890916420529167311954880327477949979215012003137397233121127255641905139015559805050270390521544685015069685486391119578197811348572251078330747084862986563448358254336834082529085941846984409125466383489342871275546591766955863384537159797916214265341545464743241067961101836692725952692069906291491168705264608563010588546656665030350714383889109676960716475638565071087142976403093086164466409200491828722180292165123232385699944859126380451002608891437496320119039163155266380947513241021271791622036616824305790407138010653282584113297491752254615617683726164681048388396219269091976109889072881823360265405454204620879355004190431375124209716107094342853796244872245769240925617180992640543061802366795012466080212896728583101038664467590247860981808341179239728192107873748217911686457301096079287724350360231875079623966595784160383500140461379543848224503285765699127985354781754797672410460496857561239146035379462159678316062834630631142132307105815894905002142161082124803279472006099031555370040364609711772939602538194202797590976587745758413481174712587173448805077822357280229530090407496177833920584300260000515233329804162933753143128266132103008607044406008990274123472780410510893917403390101672380467716223328849039922394250909674170510800714692083563867632604175071401807951158622844872430838876689421321964819746263662803762549262067985163738454744217627055022823860739224264498696206702935724353063559461441780190373660242605536851301586949554851970492134089817104420618254996827925086636273867606923727248057599463044880335182507438116468735594632009867091998508011209226014452499691001411338600048889020509223976719433417151940595859819491044250368321032921029444995386268106358381997519608180831740399467844338300162975656306803867566904349338342061389884313157884237323226030857506962877438841545299851301884532473788901451088839797076453151610601001385304560769603782177145990742373030609034184260790862609938571949018795642795340011376733807468790718753363147578501626554030222623184457057862857314759678739294998469666829270477650528082732993307353314405905791899904174752512288300883346140151431629948497569531991790780959646961540351934095300956536809945377420322419468227332429484243595323587215396191954941250197641392982185888617893801312269972475594490799175853839954500714564266327642964627604407946051822594369287171303818270246505401385840755029041828236301778176914694039552833458610967392718504643399459957314198268138180919750933823856213060972775933390386882972209731630886701391004526657980697956814807675835296141706805901495730998568392335771527773894752509343197627311478224312135789161788019837341359069565586455782252923226842364294117173842484551133465515673958383809497869575544268544090616065752373331584332459108259495258159198239618552831299686076911102279672975775087392930939199625140985900796397731489307054683792596137644948357285875398512092520146298747522628069787203174356756707864902780923609622643538924782235478133757802559024903702407310648693167363034988897756365660331753854135854680099359410939670582780541043122499920131688832002188750398179404976799075994009491601799904503507362037169508790518015896336005494916346785027152937499279778352389882939047885928867782537483839642611821856373827422959677529140153392818359270460504376317123204104876817173486526675457429354455503643354110522499670469357912559744820074512982481770959956132498836794660820190574564989565866480250074112655733702014714932904353277315994609609282392183262451629111977549411632047904927430127832180882461423833299332384097885877734385716271003560518223304416874104812433329564009155559366343415769429000390916667120010962464259507024120697669605956546901478568505488531856641332744161083567623990448120401497880408178469231790267642503637018921428010447074774974156624190881460448071827788494360507974999852599426509971186306050619865154647377280432087825770827456661601914766422281401844563164747049104855786131540362496171898566178434347803930040542493099698165100287825313548730135091661582747482925427268983818964861092720277986457912129104270142286152617239277582955566041390647195277960177789177627354754843981206743056028010720953378844657018825721474871894389875010664031709000349415012148624473971013287921024542751042075794493884689791975155063452405997078143202807477026919480818838170691257790408367231703534328457243772044484563814808500367465221996331612717917657814374088633232417804254162626695049713922210349954803163696285886565884392268430863011392565248637397427970689295780576547230440456451457235488717001874900038763874974232476976149036842891394613014517629708137170982490451839969918402701664787596413124791861431469084222217167336752520164523211162372859967489762543046547442293745958116287857706340596108326060050040801125151428180475120690768937854042823714871445918775764400787764358279897312827529442574674839413269076795365873277057688826112778077467658964167991575503366072567942441164002689989359772349759089634711798919248203596994091819263274084434462727390253031708630595731768130597338327762203944086320430435136554867385212111632598639198561513277506357298076565701980059841819237155526757380201049583291306064459733233064420626273442278141266339114640517169883218816067175982726532258760077091976840389007626402241338413616691991040523520924158212117938938525716821483017607679952845079494540589169349364931825732857944967948247056464866926568090806955094412294577354645824684653299645683923829925732491756733301216814088749461570884039936226914626037690459315278274211575608450092540293686695813534384722723504654504746551768896971640403407663992055933627341524812117294676667399033206666078778537286505267168260531452963843734150839789947761995335816125857639948696217772704894277095110879764239227124912409456130731094116099854692014157984133333306399229028959154778035393448239313937615689750897897341669047142932121070167799708707621026021037647131768305363968970005880432358070345312246995877162494165372875769391310006214772592478582921343826098343372952387654573899122357767674465847250824568574944505030397763915322071094222813009125908153013442772664275032754147563623082615718180826651732648588410365771025787941316017492440267485459822620448964956402525904401419959254077405686008945750705879184594528060725286608115758022849978674880106175870741409289503220779635165758474572731715691666813980331047644696717525504907400922666185543078161918813775508822256215034065048445117446039453125391937705884882945079461116360238421863587826489165402456858026924751573158203829925942046869039814865729526967178815480087198193402095228873643518002467843192826099204531298299663967829920269027769300983282789149818851538170453436309403417678087674789248277375212875989010592907020908561632113411565728387675075856412808194609391923691924440917069626068515491207776705137054792705086306385899404832166702915387685793893601736555985519744997878751571359728609726934815605340435666323427362993824929910642349137392036829713659463959746069518556496575094156702970060424544725930465027995445837107308745600729151173600191499137429188906936355101211252034215777631507324408992161768017822452962644486360831048696382665730699303979668455451587292411810935400422096005954427568081763695950636941314528440867015129281977972827877968750300113707721584353300110462707093018120972988085408834827333702502894339383847881879322332940090625069876565766010844955201371970460145145070440458187457696425059609651476715237526100524022773348419666489108356649838279262010110906905469032485316792016255650378313955053788996795898192816960613500197556588758510548518852537452258802081925646465022962355200110972671081746773648689555962387459410301630381530218280769516090071838603700009092218352898092218112432648362002482626075254350683033181393246823035221720479719406549150808817761042978967850522674449410852363643047270396318141148157369224186149835188470753599748466648552625938088716534905608126931265260233266960402362512954451368387049959629078982601165516269610574269138712766532741364616232259484914516669366430291780163663907310771829467957668753298463221297004832338547992172260602862537348758175562107915830055078243750975783283024411661341677788820252516431959157715434619169829531173916598085926501067344677749733280376435943793727171193808239329722109079560630126469801893589287138716831831488056388672325927901040518526913886947755767163727149975691044346785977899223581102673599844085835175112549156003403720731020104216306659489899198252430542298211653519621675405327369758398699106369950574130190375952123388774497835118983334399330343935045053683072887019325639740441624809790166182982836423912241489040979337129348107503210479473459078114454335849983572924072439459625529874404921862870221688313717455096917618944519498160661637620935890855485830452435248491579767100634052590310648817295430203237810124739808143722438397734174377482206651615303031743998730725135916555073617293703768117137223054121010238906840761935633222512362144037593255157525036781447758615504804645694065343203745991398425269113167725148737767669309823503164143057312835924948049402517578521603348689686589985328001977316385368222187905533626606625262129538923893083507838727412548923548115361379593338387136542770977268027983420447058470702628115548025400725572314235673666862216729777212964541522183103990699031380158959751096486373784223662796554592417049972739349467172384749651384431518494931104263108277321755187770568768367187454835564000864890452679650092630203807686093523715726956937578891799595020983460683570726772133760535545624184781618874736441201119136704316345843309562939799480339199694901023074780561161298744340772997569729059959278361338499238355927282169662172229497377056627859090151956520928528881311588403063790616646493930144922361390329005728721338195210254521391794377277130554431566968884122678408648860860045863185870036508180382238284694502292931881299753695304098241852847559712501617632424820734735344508485710142536431854315594553794497936406996524431404273625903703114387970448612120567467374745961533904689249873019765400645887744234840362240040673611897000406179744388788138083490309444676525021941494925204782454391204148555395760113405665952568851681962483684854438664675803705332408923230531558835774825214615060420535175115430918438355087755506544955531223582706329054541665076210143842427932777767634056539858459859997329000282496491437072748903558342074217569041502037793683743732325020015289193193173551891627430371437997158746183444220534251192314110343298839058378518978226897432406567936284627916683731770350689801494018945183748415813311548291170379078303711509583776590919808703724154546916329903799411822353840249245534117746497307539609710127104901985382945134798273173688395564462611274896418890877388991559293632059807426382124118029087235279953652891375319227035561900375565890784904657132354419385527884493577137855207044132433369442173692059593702221447401473421986581189512644055125601216121746362398550144752029511174181000565126037979485301036716994517340387806059992117813132475719447038818626255372640785868258323844894936578076293174926468700077286006457312466063632741747239802543635005170062004089587147037919726315556362661589676421529718591104704127482929188098386999176466646020936921056847948638307131544396144189084574973066675667898180551581168271887180389188517424972125694603625207919555023861386496468679444093037652345525254448867042885875602503399323779626465677657971402641475985941562635108445664660480612951531404080432277501820323278891416226583301162494164738214342012115279193980081106879706526803906522812331324426201719319890348709859513740310587194594605674942809292519908567960317217726895617073761314869921579057979321222777083123685403732611205544954978205336544561101672061386262035984759191804842410155304677276446672475608607716611439695644239607919448325676765158130240298434563111329553188953144291495515983944947837804471074432529484108308702118251606223412309542988249626583221194090881625262985849942972683825418768058772159517317996023280189376059649458361377096115135099751988063493314410563707484547601467246964630864550580146386301656748961490685645363536287677283703244462572688104565587040422235968359652641858418404448926740775396712263391305805221396626028392008253668455675799494576045928930661535840869180247011062053662174111553115583649359435222876145163128835151166502994854285583020499712283897329313525534050254909814217842858443920951325413252178209369188079432626059298645077362202341190751948570506223018124252209581035846941015934492528509108471986013463408266245588172444045141405254401780088387079725191174774799776764460156927905087658249308353965541254922259354563429524563160819075054488046904708955152603556712946248429080392584739077989658911117429210339291463417383053755658977508801571891560231958299898509115583596775076954533810177478818584314226990686059014702313992977174750617650577562808510247673974988107655297172425584301676498998065659175531764804471648109597088391008328712183568926068384743090956988040418379264637428036962734479531973305816948872147398508122416045992798256170186151588802793102330215173997909717906910943253635630716906733882369039412398968399364994005634543949436866256692788399148207582362628722853254388644310397428194603912555283151318197263524709745134264594493610736739281995499645594027553063345490270189633616928288432250125588174526662891596388393247337470533170491784593746247815564309849750441400176045582852340471266933087848560978511321938693596893002211387403731397812570039963604127850828263309679368148510828032866922449908777085872166255535396427375565649256534210415132348319944385743506701290834082375311472345625560945516614826810413822578614211689611585024857907280132298070844237527766637486129316422766994574605596854855690636283615420744176433328061889303025942140837161548316904452239147379140938070883625951788301426872558203670059102686887958438386080340612790042138297734743720449876072241267658960095531747119008033180502715889796498975619368405233592079137404134860239065017885845183896349155451597413350744229094587196739380628556814291582039616849604413091662420439898449008959581529965902992631492762772839459592381055666227844475036820480933983012706911831934805217606343094066299547500951414389777388536868740842805220270529245103908626393301177807350644619424373784565085587858260038295067947908046730284090863774276938507269756263767923714444830313379851385407923205215836491720283296151031249565811486505577698423639687588354955232209866153396759210246043131746857856421589750948454187432714034392536319660703888416945622596246216910485413115373329131210958835403262726612927472239755546056357172278309207014892882737818440058104798652688296766295808956376484713147585835990426904222573563533652690537886377935201013997869350562491628410292610432006084035710072033557104185253330977336232180737304879286578534176297315231755176732443116855089589365650084638199816255102146631119154212523038132383520930989789801070837341289257869316692193190186866492652209031375026945178826187319244914207578076261166456050196565888482339692253761498377068294293783041852378006755173438889836998371031691015204271691470832219754287669037138661546055801303639715394953069889131922394528967506755227570141394984254542832004442795409726691128930556474793914257127284605437418594804045887734961060228274660301288469914601279208330400190734048973605328854274461466554269272731930873909854089054064560224073027719522384250630083604474394333426796772659398771997720696487825814665680055448804276224920527575955963948090384989153154427684898996704217675264098886310354814430542596912645999336396220423930544040827060641451633141095968032207687181873192422907856514792236310409123113955203057402794497879318821762162333478947786561916278807011193499439293852482136580269858625959008064527463088182283492256576728129074250714108683742939685149407622458284335898661733481057304271381646821594976450136310769984101384713158762146037486636195393903573589538053400630998557310407648618879640505482882265989234761667155853774510811597375505738165534109131838800902260665482812943508008874966508410661843989863744072661592983872713653078992101172694797378430806605165136541619536521342364048825833463583203015175355900967902296307975130431753119292681211476821147409253461383426419860356210928970457824456187282858898361319436497094497540829975916060486741565009670093956624394338402314057820433504280608086446843299547646508206882361125437308724815934122491312817689582901006683302488017154788232709827357856184872303294185458739480997675174856371039514316541373772241372213659878155594682940331393335567684930982327038178832304582608245034020001152497697452663604907403323504079780708395054391412158726561645992581468774330605676458218986188231676767812754806489056289575486198512269315605617976338408908675581244971040843939843620911117801566640835150645900229141576295216751491493653000815588320307453869109818819564007996950429896351383265893090168904847950622178631788122216384986985094170221335953575081920881527067461655699741300291218063240248828056107111784345054084235780155323785204945514708140621130031325282824375190750974835998587299826704291989494994371368711633144004070920739302441467346715322335929153124876278023224342113672112451876352526426056359662716057210895651500915299164734022619817094969395253003005436911808092552623360248771518143478752066460766350875727884062834595375638871757186356451158664883432858355378651448144510470880099131985166072797369371366119950952300200402083369026713368767415126947211768904060098494620485139207974175443199765126134315232599593196165812985334943888053463280170917666787366600242126510300656863262227672895055026199400135266102765415428034884869535205610920628968374386441333827489549167385915583125337950211000496803076554832577462843416543853815044420366130850322577828127501348881473383111980773716852255015805616059444499274396228437541255578151751377415847254462997079074089075633695529636424028739344823009554253594323896521440768186910715084831501358411477361884849006812119818449163095615808373526825911874631479646556214901287872791077204761400075008500052160311126972443313720247501116097386114039253152582798695620056324077301022623147564231583159506439041491365967071868825531263489349868757209242005020027139542479965509752825761384697500177114827886605522907222211144834836797308888086046889206341181700032236887310816596282268829304082719857783849466397879188375599115168181648127225500549550149666946921097189796064258662611569172563743770813097909363933033739694804353545558546949326097135849791084849780321437578993491229248983820984158252138654356339967562054756005905513176674081111301222253636027352142674228859204847596521068282448989072401166191680512587912921303308868453856877495637285826115087820897935721322947207221968558930898314118531798698453328166595186440719440831185163449442974527823594544434087597654204582966273707000070279409216558602628058926560841025077153633714802898544128918862476979976205565333490807357115142560910855963486229852735882336387144274344310068033999052211542620161544262120237078111339075757585082345940116425546473276743341675892280824348111181314276215700509842249060436599749852040418138821253068982480640801795799554543712003972959014485268544333283842199563745906065677758545296040660771136344183792417787650326359871719143006437239974226415067382918783319611587192823901317937532770678811657913774446137039818184027251820783347468596176166147508336560967672881991281658336208298840003313087236704271775354830309278198644814361309254256361390507679892275390656927035396170687878553291373962005651088497365136316645855834062317222949945038092897206493606672609564120597211500656542363981172620530184490384083489677287965333748421588074699438440650858045729164827330132384370486536087018342353593532778726305964437566143849880721908124126276766860439429118381829575481009817361649082227235856637334885992300748900090495529254321292343634366866519626566704625728496282942718726877098932658384693546833677340858313681003382923803964928692323877888732640432371277467794538927756393275500151218009299024333803672859684567615660245910305805048459137730220640442252510544702262691190319169851018970091521871770966658769105484269482062013655123457256287342327953325139145733741661772124245147286803725109405783856549624029241141298133641141904354665470795447456549794184449123873760169660043751566282236829473424004906259892225164220358310148432818512150521093318546481704206023794437983232400987399109365660470286066463873874003677959236875943289965386487152069385082406967328780656413712456791214732772639635815245135133065829143150567185769467394151879409192340201415841170914881716359763804159024983211332239319396647815019839881785772018207319520217039672613120090943424311486997726636529125942099571328241664692895784262574115848968946403186553225138670690483948292448638766135176642597314877414562395491709654921693228625196080040693678632446675695387338780325128838928776210196593416206990481220141401508252351681504903421438687992307562779404394499980911659935577066646342110499132570541777155544101004161422256155537536972127992551898504625968482708241320025224832770501440237158756641753171029809916155382126017283021283377849284084098456610736677890957550695732993999743225854309625688134614582991527341595652707236365193690957261488017658828809790749443430719487053797804971278228976851195247816392168763587511223207294046199000979072312160129398400401390652415398298926238642796791337099921770359186586972488026669374494179256359294389998851046564189052676400417571757675013036266318840816694084821815613755915547658190072193542494858324170253618237760592514588223222032608633473084065795637051934725195817645332259150239180391672154093814017133663942744415189192065253154803324036399410116194978854623336521393742965750964423572628644973490431100088787692443554135512651128382806820234325842321191488301254491822049104416635436762593409386833139476436610816825895915201529121305278664807435983215483731544994748071774110643801901500544159156487631343092975360906502077582613002520837342106319018824416498918769917345843462983393371656461681936525444923437600872257659683434564228915496110409230595582834294508860041513179585755793205092748086594569770139171775942839962785299995844232105420083812441603169460102828693865428284713799130142341421338376540536291832665118720540380873086777315759813380453078860252836473571288242141463990355881310808508062067612598781393798397180331561536299217376201951722573319012355824047048654831657092909736193923504274120869821123134323555107754520832921546796247767757404977932570393751387260799035215682793747204195590320027126555759081799371337454393474499670270097303947202935246355494958877130375771474782806028663283941300006602419348231271744696113884669763229520613646786088639883584414496017779857402047672692506197159122992419356920846934297184864275786815108147270962108223058121944439062601422460381394582362164147440681774267922673148945527048416529535116413370277959353307014489664703786085101601268575978232973639359281619571180249489950547595005598478363386916966750259123418747365424382147181568371790411231469525709946947005840534245091323866813846040439552852981331192885730522375835538698664077270354605476013979046650723780484756484190462258221634592668013608687963369848711604541326247559718669009613504960235523356956182940498827640820475030065810131964193419751738683080995176678304684001406323288671978828839202818024274868738269309718807282349398667707121717217870839054472289879479312559018601393711142508449997768020496906310480314200853566368113532345359141240314914351139313531303097745094666916874386247928651885225704954114712702592501611307158218879239775225640168911558847451306516826402717871536382555350785703479871577137623230322109940211300737828052014570341528294622831355505782640911113010929524045293066168201646694948308524542257899930472835415435458565747187052292140524400135056572790808250117431076066161986967525811612377678916426245281780670689606639147044405231194026929884351350464501430597873610742208557850422342040812263171945032922461092182059286980279457904772167748831658157746862790900365558800101153003168023035186860231279723326859311315608319352836217016290092005447838677387144114588398558128918265004913952244699728236792713962438630279157508259843805539861044873682177060023498156868956047001821083327490878057023961511022636074239804563219553181129692888789485888986264819687355638340995169800741996710811047641068713297044056670598364778103947321988311650402172855843995097661074683893702594377304700687859952824890623426051564812472608597243785293858770865948219061022055942883587698015691967956869380107996839855566263948722393049374912338599978529968718483178358032721777166417491907437602028315505366980503085272903332645278563088022190161658064353276267939987487906592526916644154606067560371480312030913916836007970462742922599255305887960395277228024949552900771780877136469893055595424300825303212017059830703224670801072949170858363342555244461160615215834962637473659153848137101479114017290124808292027142210625849372963108405854312544842322494185247252390534153268217290244137001358073840805991760738606602850809370347393561096036240754153909538005249433236590133086774249213631323925223803402815800633015249640919252436205015997893805087222770066731447125365937565191578568155094861829651711166082573961662760736282238887724783438326865614877447100416519667468020487625476056874046680321654606157112200376627997910923993549625035381640589423814001054211155598493888805857958996136590573295734415958920239910247905201149534194998857872854999996751766723942851638611793954002008162587178919251532360543115136210643259895540905369023112974205769102497803508538037759138497018175637960715176004684605056770738253825076440594589574410685071578834413827396947655489414564144342245862152930732690815508479475305010834920090116363357030642557905479516099929960392231838692898655674024818662341776753527734408315984781107609066985904252959521931549184418810671970890090419642213426643560743283071404848167892034086299399112076254167960223959801551022197211359111546119941936262305948451226841572931481027392827243090963386945998870078981210092169833890899098112737952950670450912541724291878631335188267625717190727434725666088188170727220639579026403956272649281203403881471453029306053259731883179397872726722814647778666476332577206662635441436734147303927274956313754002362147813507919255599470020603122996105401039477439805540445745249019675061342629296594730061057744778015554903782948034369084275658362302274997613378553777053962944513243377050378530986585518596059890865015597453195738768288670838029330138269758391942344395917050059365204880000128931044525132616665227372090600823778096879757831959435702238510233758576902098777945944564311967401682852880893349909154818751431279527093563692687874921516613885258524557067792847994224666795958400656396644710054831260984829904313465348804976288426903633081447413935874921340330168533801568206104650550761458610383273953850532182883685921568175728405945900148263813282003187796193340876996892804990688093831986305313873741016219415608120267419808322132741976088751252017886720082786418636450918688107900870677768052734365172730355103133724731813508026870633445591750955618573900321564914319986907556949855509212824892657399655267464744215309416399701478464083446245502813193878388169404857027128960740557484500431864062228505326303602453282113446267834188341834672186368417576179384396685115055774342993355131370634125995644890376417653281297920477416539636612828262903100901914297589847888276105190883470601235522850367313543263343066875775848850607135920614313884169352685409207785101281757209148841179439211302563328812400976643866029525991816964393862698781079355469815674146385468245946282896351535312536908792696298595386058239476070676346968988974214172277522595957319707722917913947950488825970072775014187270255587826328244672455090923404249463708788826847154174853518723441098374161369893757335344778684680362370037019657376201924142160599496926543293340878987160582467299381422348040466509958787835292841998172206701513624020564942694896240182145126341156208102838539874688274878365902005338566566725354057849197883464160783802426484828287845934504120115752050111113975312766889612695579932048263515414079486974643169112601639667469050643067226848287639825042098358687147405139585034486706225016557673118141004535319792618293226812204503243339086842523112421775926285634989379659769864298401622396107972180738807999749043060537351256876898052138164176865315104784949798852501184424124723220992814256210383458312227271771721415107857439927913336883555793985474354047592808183620525969429972045415538100583103909326586034070253638594681198814502098008875471144431509513739898755792252992241610504950142283825146955536578651791446054009887544505100595794002809695020809308176446189558636915375176272475863049719754401662727532416842914666855197729863503947722068049181317132025947018221378464834319012811205579665357948259603590734363117869999390596022699919118869631776444266182327115887804572012444178781180859865368903351021078263224951638686562461520974693854081044902439387534648440057969090700710296974144698679954758772703122291691548169755950453261134829233620730293992016005455109002453264114109322814431559074648156990661324842874373016609404488179599082292413196905686184869862062048602235466364795488021547425256969529893941293180739000385391020302432359288444936202178705940706399604732012134272057204042008566110909930781203932583645756815442724429939186559391093490518757378483165577856101603914812034969353362022241634543178310425611743686468069699346929368478766552048730338079624072143669756231232818989969873862726089275616830932892341825678928993337378281790155183444102015841746686952887971252575912772890503398309802741758414819751156703600007334705802899623801487396072012204249246011882310465245683437364976890879521701934880952130255904112991027568694757886666052991098430888300242623595577790509414116356544654902079861322535629147012230264665161120950810908654511680927699166640439282523334491690493923661488105864380578562366234349432698311256458119177416477029844979602788948208208503112232914901631563149261876160334188617102875973878126297358287920808125401370759117212505787878469817455913275977306387738667777218426339636873069949098410067502254941348102821071075633113613254351676865813009501349145114307795551853611383989157022867115098642280074332327218901761377819036544388438070956647617983590392235950074279575368259069211192551694177100140309563935876233289492532786433045142581732245576095943410987118108557803621166916866693303874002556616180871266774028032856335685833095172379550566375934848469563352892415119597450991863942933168497523678427108472318702246767009876378671570925511967667364364813290800954928100406660896247159267424155573731114212023802544179973996811383936499143626303067323661254626859714749584688045025349808532219119513874181582601425365271349506988261309690566506611687093402497750804638896427961661394429967777399733312449660603482731991944156973710295049176775386046119990822465386917513457051336516636155782965951297327430965207488786330034044063476598209928380609817451547702928253637191185551411434392290886659836310823352286008328108659341161535447562481484532050489259077802093884784880200640859333087418286090589640704638321694245461562472647165826106325258741224907424605529787166546366446226348668772075275778612334599767088535455710895344830455517034922323031282664211611288929647353329578211580300300304853008327475809869773349658196922756672507698213043686070776486293512419357328799435042651777360731712508985225639094755795113724407776185488256806481130191891801041753441931918044459216535762133178585589661774652665532593367255734294958158534708489402075030975952736639368135173118734878541849454199226842998360732906944452414329214727708333579991681295214152286734966138458446748642149879337106631820901535394872135825643496971800089495512712682196385372784710854517412318132976289167707957479236182529425073053013088114755282198994771083836724797769158800691025484210546261127645085008926838849312413037762419605413926868167316937966532923210305678544695800703514574147770949633526360915265437865634746078537679146996016289440146011937123419578286758414008907237644301095779943822528165577212054715617755644360613869065724090665650388003039875629645022125122070612482423836300067101910650735625033593401535788752380753084209315038578695343452476556109582040835962479118374762709029151549937708824654345619519427928419494699298074808634545839284852232634418271680474460097276549942323905557644495338257609359727376459149388625942911428904838410179333368821561890981012586124803597661846781748266553347872647466089993108706575403716821495553352042656831050862723941046193344699526194998382149248978059785908363347462359016051861308510505383757991114190273342135624424605658760171665583148131426334700534748738622000921330531583862583390889353953852478079339224261557664615177763010934084734149634396633491687367090021412091559808880319681287345137534039561555195591027237850293606767983389933223826587005376797963931896724921921323777830421062585377091291747402938365036123874262773398898738712749611712511148492155429513025865262289564588138576284418393156146494475470657419537678422408720025669505837343472211832406660924466982252811217537073648486302261925958397728565566719130973903505137139091741647492476032830939778901340197844372576911809249205288315634137858544170644208549051448277057553002849514948240777799214383947306797511404513557769487775923049767414788651873512882644091035183432458639021134659240151536466333106185580527986141000112126179410776227020768571248239696126191392588777284345749196808753946895148830763324402874699759392295953936237319575528873863448188998592840471304709893980538574604931956101783498257611646976923315643120462330277765369477609438886067385981975001648062046080401156746640114628877099834486862543528279473542037778215430956494063912370907295303429571856319003411524483922313530693139595487800412601233221647705891954826797919000599910894768057460317161228753292151060157990907769515570910537035731196329456304398289338241968872515373157526308960962327705368779576333742449632456624290536599986018810792149593932342606439029434936593849779214811831915358649104306329142292961617223881019034887976080976822061974907953597001588315179438116260009393031572243582212704988813144832518800616044787509278966436768393855178156350931802642079715896849033808213983604350481328813520750884791899768539743966681941483545076686147062785219785728790030301937497379055258175991208011496119529745557949271425027527848440594879832641631208466591703495702045419042003583977822422291833354831022436612609418842047898067748225113914849429380110839836913955897693210336638329153603036157343728837168551147408438051117273416175718531820319615644315909799495364487431174119068137975815971831548822493287057451444251866966560054195067895480328171357664635369391054517096130621824350976165633332021634171387513612158020667522415453337944776471465593245785234370668655575916106484128660698579270785366204852840270096026105161318057243120038269825940948994567369079581420212417729851501516317226347425179952981999990348307874765618049702505271372482685686578815911504332537063505713704484359641603069432893839077580376198564321025909349358170900583364282928426617216524120383582439586349804075252970789859658591554636596011684075236136869169892212830071221416897544317027672077730927571984479282213885222893134984967106702289523378119589435624153583244565276720123767297315604396562443753380763873554341148381519837557522347590042730641460290653246297266386091883389977392329660978063878971956205477046270568050245669420760621426088607681760081343471594218160818653421038179788534528055927836622757812712117794907846666312084675919572730134748377225802881597711978212548724770664023279529589472225527836041626640693453296666149851087742042052217644341148824651088888829466753289960805570523188004492457434648164117459824242535224770214810155703309100451130672607026578440192626969326368838291750461372162142636389640337642031169532959327373707440661345240313439727247623521303297203143464703307121949041076385481566023725371254831000287112092071493513077705644178624703586445827074374459347776114279157755862864346439226584476242513371977748163194900465313437049794460157345591984711516070294982759152671148218517763804140531850667655266234854387653501722065395770195984286518860519316388501465077014648112491134803948793085319898515406049200725872008532117224123183991554730750662444483332215151704110036410996348300794992881534930108161418537693665518059530175304112977990296230426821821212003283049335643429764729239469855075260250702541348348837621812673979411454254753972295555206116628153348774203201289458733426023930099684243859300721702237924166311013058278132014172910838932031078889756567557554360095394091742357380729625045169798118079315338846864700345531986333136916724369913975873510588975483247443239373483975744708720016083580241226945034641077220535955080887242327385616962510032702454137773601899088514136051123069289896452351038104951791062260801739435952572871464299705895930279294327911011528819057761648958244630630395779594761692033464121200468632264845610246141487707500206981026545188540682649725987743272519774043043793442228991811907855605314771162284232127755943947282794378679998751884632190375675648403254746066671914863964057546214592708673628146460978978904672135422109240477095021927839156293284957695951941300324734592833203641959696004573799151783117922461737752954918690212258620961639748979045352434725328446997643758419179171394259099988347265760520456929454228933401101751102653262474868334901140433206776372833411622657679835055946692813152978150998736665845185359675820536579316349037303800590042376983497450114000888060369746687148851099411656225199965594420936901265719015760934570858474265629825708443739822125550003787170282039734022206182914568773103515321280666360824002333632914718637369518688455305074706919203230151587926017326479825928286583460093698685159672430712588634430595905217333365199389675401187128973458220045969696763301491826857749452412161754661571330275455829365783208223378442020135399750269335510245766388558270851633968551489947170902288839960598386273964434463924933094956475887186959910949760559099879671290382659518346455616723884657335760119098606343831559964155959095748793728516538542268313837090677377371697355717227670120777430412297885021102903596699750973151875006406779403495941692443455810585804924530916614309426062888252457563472084725058541880389055949722516509515067377296816561702964918900957366317510708800481568850614490668284178964434257883829421636380189594465187624185039212185098785369881822709930135290936046773229599901519497208559232289535129959735856174585411815857188413331705511292011723519263912512582076298029812345629554784797631845784109538813473145063415024080916206675190757492685058478650245475762241006736154936565851320340576097042760484489360186371509799640764571580468825266886589323813226978905105566919578255010972370146926333644095587417443985400529211164585786462996255593193954936652178684031641747170718170871570746719291495475531227061882356149595603428159673015832025284595805841515851336452915759193522436694620121374788659063916472546007437941775448231985141270676353238091284397886313878200026179587022267531787575835559284334263581762256809930306739678500329829108936648687626886748935087989490509225528704923407275700581260114128383039197374505002957909302066708242068202695454899404283277766055671739445249802408133779817792631159169413459728126813632111712180890761921807996628478156739804017063377086252806133419974760065554463483553444184004238471304472506317229931949663669639278587410044772866924406286864323145433823043957553201021767579380066016247922899712200604168477036306946267030514142801178112665585597549241750802768145184791176318226439125696913107317643179763417439114184964031380431504299509956511097609246895241775749443851247653473479340413176884639327441462761924922153132443892663073540785058080020381874608553084124143696998805639602212932826766928160379667102542457233670690938171730190725397281853528927229987266589669974301220594280271089528935809138445830394201192884236832869719218348330710263589435075759390203388344716034114079380355990614230211312685826067769661068023894687786139675464165218462197420271613687332816270398792798315240554015229551551361007695820507073507811635987628801497660855781411952548277884257459734966034214321928812855965271691408962645530339807467425523801726915987765571661859936681160929047689489871574062443875541332034698325136304276479824387767546385342382603476177117225202732154326176819151134161538214392082084354476305929047823100417024708520637719014620692500128298026791069178992941003875400619068192254571379570406510621635865514155642904983076676129325739902304444172249104721899004956162601605125775656351173662072959242132255946424876716158505333064564145671756616398560110750691875103542645580652144285258624282753119187707728769148684734601360753813799268524729731797075614781323542140218662583559466681156115170987141283007072285897428300685989998768790442935135723075850997351529948842974146649511413060727040208474569290253365429264823863347713451399986250375131096738300885001799158052153947057990501860363820534823068459136329284244654917485230881575460867192023152536248207007484466894144816837065411842814576483544981876594505867985653767259800309296373223491948784616288946123335296653136605307923049008147553531316329496524926798768220477882772097982117608714617952075083193269801995505326155750855335430994121303356598327411947573402982273388700031552298378185220071381588465030521027774908121127915602406690337203942332626462560807362891236413497672421945479284367941784133593971542374814947177895620838021067269099655273716807434688194237395838745812941548749286172410070620087251318855218674384361705676807145353545967312063508657975144684461808552081337785504236945199300313372207612517508666679514807152256032690743419807295201454407954379439399165450308028015947171918189341341408074299076038806935413232963768340167352197676560434541244319282731430532265268386381844764766436182819066383319189110129548997094778632728249921841513078828212179186718123691345735734289234715394304436841926474606633198436142059406218366075067893157954995391534598545541929632001789891399662604562519677772836471556554288316765341512753553242809647918527579896619155358218759831502011887556964412211009042644461563923757189848547782165743041389710706598998925254595876377780235562806586382600944011238638785846401830557311462997948283043913848148675910032205627350627008506330496593609591743569392740471406383522269876076129524185166036408899129131693718618213011804625264313651980231586314296698322350041811512892981025064369860478243329108820344251963164352797557884920738600731106502291138730595095589587596125789250481283118994556308519398130411361331223685114936268180755112407251453178960249002738629304690909544763903710650360197967011693504143095251499163395342363603786479381229266472624183724680066794966815902974958134811409182540137838033930590675485354591510876924780486697920779558438608689771403759978694214950774395093304761057719891156436654429473108117044620451831843449553980412580154492722096049591085243105079625539136774455306856040873994510903544910626013350709649457616708373172999758392200780315279070693829659217385191419575636715105402262700890470848194281191732181257902441840509111315089254843265178250605131771309480038396652274874871341718250711877594663265640669187951865154494064118955517167731431982520193631352450163968832670257163567539782271159722754084206083804416816676512375542870109371811647819979958939493890159805292950012761774147966469665704352707080146586003994737964520529186387300582643825592261187899246605779010471629580812579239635353966506710866732832825077514453128051603953531538769221643993735965145752115939014586196437193988360105438527119017027619126977457741176587894292088517666120707209463304648326425019361557569386315955178596986898719608942252300193532955256786690796133389709045137968051920804199052391835235678890477879076696634635135983350953500985937115337635529666084598488266797415189135931465725433323998425058541333627340672780238538011287762817029218157466653484478948752215953269034767773168840151417588773108895844001844875789252770596572658621925213367046660080198506711251624958222079527340315880957090881348777048495724561264956774836192943608172174748075493360043486484171754550742618978609620743498721069651013985626941790537147044286293995727953539225771412968486531862104677035600118435505045096243586124718668155096093333639044345711990311478510575465880214552414669780361493443893059244841478538833353417689980204955220411276256188733941470029864310648680567818897913295446437940420548205850698674293233479050913672135170134554428930587340207845491638385224178733581312705900923099717606496793464199104101197301825768601169083920139974071230935301378567912480619681287383615398748695743659034370108532617877091468776964126031003668537638316864993265693518249924175030613838167704356791348240465424030943698338303359102658645630838199954387315837794295470950337144213511803139544997441421079774007735009984414438202055240947842341326891048728361339456331461804048666401034206520888582985409834581197159895506796553692191145795285755420751959803282225129542585568683934732760814869790712690953011997771244115663449835506295289597779458813684030465710139848395298429675060004849648760683055209019334188999266161152277008080615455899221118965386096875166124888044819493589511460370192009930676988261560635111896546761686491816462816476412469151543751876959722965742590776637472404393582840691965814131401453554828681424128691833652944856700564144007271091879448168234876818468764045011979810473220752198376051112289492957769016653222952921143819599479994184279261449247898896978958107916501306565422678481890945386250958346078969060238092369000604812099923600511062072028187437885128264640153030638440184098950207096182134298696785139189610233950200380218638510502340591783296358466352077273122946355453830060767590708579882196022193966285951851029832483129127072660202901910187835795085419126828734716783129013394796754605772346835901548101198226074237383898908687099416284852974139898689983619484340483894601854269825333647258555519192596090732142891892555072507971845769189742830387786455607358177689066990533733339051487353564815263800737339226227005933182650264299771649863349095725854768324894018230842312324965025946878947351234989464477807412679012743690142766483495443223652261640446502758472418470355661670231613511568410724731850986445952699747084668647491361915763767974733939419389377496309795663680433621538966525007414841429694834485840938077410596901295219487562742702511595110726769779661441699769980241769060453159377091499943913304308784409825814275200560363999091461806870291779850756545780601789659998335449303433562660676027532334495960263286718371695313299858654754417261704361318348857660471754013560931593380178003898443616679200957008056180570863546415458289042808178276817373974240983762788937485581083577099498288407310775054592599817897812220283811338179443990596083966889838509586955801379157594683811003661973677799939888744272802215834750412228447083396161645954099433492347686068814657696706152078336330756151444845429295184299691783856559167754728879697154636915688704211256124971297492467877076812750901432307029720868260546012046603498772578859001117981483419221864789772451567369397272142697031562879951817543582594558065199717993260686882668297159953736131448433591334668392597475827611997416914084581999947217187171761573537544921803481817753782541887243191411990662237748578588775287709088069749168668426171592007063886665907873736950036421750580221055178417527248352692938903189182841528198655639865814266768848815420994573533474218116785117812927854404355118531362615603311688264893013079582667651087765010536459778229946673170705830462256864906912768438632248601455328037077265576739374154496850352673113866707872800788684591963176470808767281301368370160420192399206481186189382075721404784482893120853258684994774586801055574542039629364586941209873196805212982450554496667858776726648169190220821461922238392174790292617580883072560534898117026974908456226040667128366366177073247410191540172730374525483021702121553300469431897070061472835190056438541499958890894367918243063764067305378690506727623785744867494285133987831488134080221070419067610489064192196187126538998946385238439661825799484046315989592246134443509278855347659318046077969045575540475767335752794657307921662994456582567609563643678845039275191357100525369124557790222776402636860529462869136313883425937605948419899521315747315935049794258089466049276386897473364330861319024647703649179224892581792726499855806199865434992185914037855775125489339972089240449970619385903451273596521712594055925527775678424547441928986760601943427272666048213542087616408056267023748753921595652636759157793138777230150847915687872798876704743214322268138664233705740773055868515465582851056040646343294449607780517050074558974194971767000635663786817895312192980352249882120115595407734085688427735845042434360615064947540680943145187867931793005615882563663728634364317364204641951827550842166836269209913021227662620814793065660979472648916225678897022708620755093020529324051362307039381303737547583183013124244129435544817429430877395532310469781450022781813266945326555414437985312173221584609775259646792793380501492335756802018934458793803203293173439078060778016300744747143438759386547265067581522474479582441673929793938168650936955303462484274695993500348347841184565148514093805957757661504830123993261146229576566786384860621202007388964549085116012033345622322830235257752270657676759435232724375429064722660925987099240604114173036283090131400705386170309836321501912611326993787682192464549678666023911541801198640920977145681173869804490056724681949849276126161884042127892674511646296259803463945927070063922964438583974266647378497703044096041782871163062505989600534447380576164753142792655406514726195125462337995616510340915425002701130680075008026600706640653086977719732587248586980923102168145453364489470066993663760065776317402052000711044633912275614353603676717520026251925098047241731626706768168128482571329023272310122952147795346999993756118524975055572527670158328693058383237303723612238764438670615511896055078013484947046886225639755286707033460633805022948797351377493668107618002995964990692212567474623298906358376960699131916111563828583917506239627180985731052472179623049379209736593757272669887159659654856015412071908049257401652540343040897593224534867175806868630351157205048032548208200250993898716141003261563944500177577420865283462727725921627795158625397473346919132839696551810580108262529399011478150002883386205900207560185917995963620836781345269882682867708212522266706997494928112029677167050768967417643921530862179361825074436305613234865233195802150845346057325882546400846948303041591586256474925577099241352160505501049519385792761305181158672088118439019063009033380480932006977555681404449659534776107412776670914251987574196766835098641289863330513231371019404902356250852877667469767558877091588423391093358021556466303379411572879409313018687471753169303317217116320190032925513783821284641683654918862225940368053865692059746228827966362413513803365404065012151105088101619128290184144628431848427774420791932262260833636953571255695407595298883415368968579262048314867456267761164498794100808147991993237118852707717753745843096222384232178581299421129453239406056591383901430814951096923165488896408053853722337340477156685881089496047043251975674006363550264050529632801932381479291268495790387335249501874747990631314653941825436042510692489141475291058900713184268051667977673045124942844511447002148532469889006699551300305597765242806524449967308700581722852275128063992038101190196108099432794108455345888335694937392259639076740535064448408709356649679748390554947390130814202155751320941291637365542071101745528625788747466722527315816801281274747186920065794677365994698641014437802237784443341276726504980930333907511443556346300405566672804873342823973775382621533289896736974858132283628225207713385409082809637120823568927173275610094437268442424446611241804833089635769662385697392762664157491947094133180555980333090779925528319858563943301709107758519868046850499639811829335934788116227190179567436670079496422562647098259371638389201880179179927568714827942661982396615400261617847496845470250472598727194810840533292406739641848591644671723484466500861999557171450724564562067703049654920410811054758430458325774716339480983096684383765871910185335519600810726442807540378453073649015172873741424368870641496518256900850318711066812742978747585613392982313409982605528494725723767389881107445840651920754877836763632644053021925446474818815135692813357656056172994716635814913477729273368927717912782683287243814027981166916820412464643858974609497383461441971312108957709594635382475423669303286635973020522958738609495078942092794103934817675227469761228633768995024696338933619918569176980211226634670167840790530066867614179359887494435462944828270413935418982098977145043432877909650184418058280718111272020951787293777800450070813052075575363770269030920154777784718015439771495703352603501854317351687375059840429051959334942143882134298761867581650385809163122382663332060558035700129565958865370742725142136106388394278501105704884752135231733339933190921168462899485190425404118769594963902982069212712191354622610177846462988998357680332052712637244578115071128780740103388387958946122664060621848466299185214689127724219388795075309393610586439074055927284237055048613021148429104348524263756834219053754647108173871638816073692083486170048675158335235931233943251567758478269837779703744268481707165615982875650576330175178860839949137665825780771973946997023167574911709143321723139896559106447172603744148730824113606400610721766200595153821126963692471990601299526981453119638785762897638691872080352006392935867375429237137243610234284415366075115778326873018174851797631868749349558244690344174211843327657600122911235673765846944724104973362903567783590297322209979070447753033174371937600577689632664276337729110027286988256382679692689419094091785582853479693106548367123220650676416265649964229344024612128202981976130308346058864596904887709911874080437588619127577348999426233618075501794665396693145305218558085820248595013721642938744424231282185446767974442603586085914369682330437299088713481799487490625085750983686016587026248486187520469463042220913854479110464463187805816026382399273039388154202273950475848293385544342713246897596579052526468100681926254272921009779109719692133080549489616981180056704109741144789334569629982877637910752960108962504572728160072513256316797052752793795403234848620838227434178494970837671102464643733316743757679550534477276965837289030510562076743188907330066636136890393641186899720428466321600321446722486378348390677301275660778837774060220012277821431666656280435593627544457143162137605314371760573030105031232298298035406829365606969391129479314109060603821050016112862050391775061176506661821352035359891815963128043443533083773388921842744117209420383858030728279127787589513120510971011976355164984851478908597606837415048242283908660657746811828413886511365840705906290570289367369327489804757916542411730504580118286715386915687966969791314552439113261005864772826367432857752359599573065237492761454326586288779250727954804637506332928018526069523676209960053792074932161728099845299923257081494033209126799513779724942873263463874392693043251656068071203038353530457111671545811263531527332235789110337647604455279225220584944912486796258706793835009881031239813917643978503720588004996252278119862495592999144691239931890892593211237067606774890215875842721859791840161448030355649609765010431622738427220939669297648885406658443674525960171192857687574975861914478986958446701456499416584491380782191397073911325953296335432398025847972153683054334307482608340188074504349594627432526133531296713102291753005492947977542640973778160017724972074782797755950392054931935043912081634790386735022989713537067457739112585537298333222994116997914957091178244000639448270360054579380305743125524981730213482577186742833717149529556520879174285128608914582881594124131920152581608738586924746177624692312645208921494258586790457999237247116294584965644526055829204099202114709828620039783611459213597000157645715073315636984615632596602003411302563524138003212243938375784887058882255301251044982855403214973084088991492635070202252403333808790157322261782275001612926451921964798527573395147098702215816337510051034296574861402809549508573724090730771527318676227647259501305733293586489036549807691977244399149158952339691367210528523846928990801766533351700562988420396132883161690960694015986396143154032601264659147054457080382938885495480353496601009704024703314039249607028580189585290309434876264388515208782540726970566748535841290110837799401392151254978264841982334685614573248278134970949283717850371645125500501613622881653980508748592404387246751311482667938960577185987433329477902403481357328050073451808680937204282443429653689452321284687903131825792064817734246745300063643065986049450423546085454678852096164394088369934115468337051910364067428556074878491002795678087848913352430308991391405786114744925320870953359182243038637963047162552924235642984611274405038664462110805195098463557904167235947175204365460015132227440643291340531215912775100505324387528895578494684204888570713890817311002433092860629759533383729830058157292552553816124112341477412227443454315150548708584321839943243202726538789566740840120027628613570568363929933866995052904990423778271769745597937659237725838533503914284483011294226823772748872862969755004466025577499589626254893093491025154919436020373874745663793781683758083097913209635496945810525724004631009336979328409547153543985747756602350115058607630379640123691899050718962833633097937915813297338244386727340815572352585777860521710242740949944892142967418815712003222930829392630937863022287596149181398512909637521720082181248415501722313864807094681930853312457922058320709614323465014049650150483849829306261719017021163833394548995943235807130359716838393612019514389982330984172721095111922303740998470405792113580964848995771721215153988254734824341667473226260521377349884270806674874027171119163332982040174896891536932713898000635457562434023115583805956153750510055418989164723310123232961581997770621207571110088699703208130168637273339905349480337887253701659681513590845763977896017055471062182951042921501827617521280016851275920670377452801363914841305534338774263981691096651216120120277920753461592522905723911050405813182175434546401177897824360658554787936672365018799706396249134209828776187823240097239885273819161937312346442647185343243300428320597301445536107495407168592529073390644342763684507894059233748127718114413703587537929881165764523197429970397559598189834389240756441991800458952988830199184927995358287061911207682745374186221615196044885861804260012121112799074176062835113171286509014110616602018455745718203623816918778862990678522337447401641082678458554264118693537381488061168904045285542724028816750899971355712590932340473591600082254018895873534483945966129729220211973811544260010452204429948897164292775723885925810498092153231982436874395645353442174768858906304973764968947303812909394177514481795186111688901333506253798972567298741827323280165476091741862392226099942576757514332674840649088407955270522384968706628377997762871338826629762000127285407634499747145444326756800786109263157790467773616324556112386110429022719532736436390834570338617904309306102857866044516483527245685909919856686402979997424497530061310726242208430214004790180635609250178441442715865289772948882495859470436932457590489328342646500807034863476349417409830261175949371099182907151431474034268027502870611930028199336034155208029844733782296069142487053521979924907593717522285520940518939927110041001961623760598228821948463430757459919395357724055114473261123184880556797037694856775273325484893855188124710714587035430714176263972692350398983756712639553034483682904945053037457586623001911876571449084572679492172341131063817166297659972060107667528134971588582071556878012925272627744359962420073344346216189470075789339349964760168299446522829099882990556487723825864587304462952519545548976509614468250500846452637278437726114566187778506703097978229175773600782188540270651946706007112626130478541144732081310066406912992211219965010016790429283993663401659048452224250693158621192135072421490083190665363032528197052549023549440041528795829108695329379348623862673763385615974210494945936458825105139909635614887612920158806018080847419940818038432642776211462663368557877965241435359440442812765162090448952227938613628872372235619824850961814370237398292918457881302651776130000021519667524600784699018733965780451604360135973410657683907709293204636440977801412695481201358134172229664270351824587763801273535985703723195501289817511716790302980198270180825748550382203608033078470182778179539965778316840794780932095493835686943300120932180132015534658829337391180192109354054017804799543585917490237287565586231498824986944566429223963240558895098207580575042993686491491375023785075870535630518442097183186360500323705050391244192022636898209212982801850648453048273053501228108239051502131602619432410316638321065212080023793285229468019671958538012920522650549300967024309937178136878742923365920844190083580782426134913777971936842806291079954362971162369852195552707662428340355234302758453894052806568891964256654373281830627094341454494347668736258408508469348308336615776212499809366845722480901320925312525440620061431873515230754948815702315177314219299904723031289885400795267186986003486300838098046891581256588916705931965282777061861841038806718296125602653996652517270079493990671814193730658970423984021182127904823450388655076470814339242615733615059361928507251467418471457480204869130754498175032733534546384190171862629193988906233203256037139157427475041133103463861622222936236527950896354770365594505356405471771650810883527087832214420464973519506184367313779789162572149829559186566654942619306350153977272872286294319882326931038945329818913935480940718339133211137639879985852150131448768412206922434553191551707161652378122019321107780026724558428739743451846196848042571244384664417928935224626596859668574399520401369185946696666471974933062113407861128092759910544435900268602761590797338044084818299724857357547194811020771335781905884258532288402055313824306175028708757750841791395513864409604368197880027757374414707571214748922485701053647545452003081823895012091005306549986887851726554946789450292390333940223226623386588799841028604846304856034913075766677806198931079310915309541593848266735849904003918643400863681731793552849915116398003407623605177297252713633209074174719293542300579194247354963480692832785503903653485394338924229986088881817054790329775164897998573941469587420054157724875267299954618442515935682600119846024652363691001862230164223962727355015524481696900083381822174493387404528410231480899615573179413631228196326410825098478777733394818930374987230649359165816995093453640393687732890958880696926994458337373150740832416043961154995045899171323669737349048969524490591557541343729148844760952894714492603955790500319441176128965113206867469703879051738754989351419705522535319536457504630752130506024581045387311852643744772005295964740075677199977699903419920427305411832073587217417987947034626664622122749842376164725557642003139265937165294512325169005414411879264391482527899268777913460202720304985366575296412387062522765933135750644918051597387969034762550895029536892833719740750565225597823247391120915913688802173022584914114952930620613960555997744724078403478326116452851628073475599309321988487911634175792213388611380811893886749900100412381223536711029217208887191062679304560116537314214910807476471216521772767824388032312559915994437607386565065825934219325091947188627159189285377469742550553189510706623573959182250294341005083890393403887345544977324080499108998179402095968746763939643080301463989065999246728301027509270617403858600041067129810937422833732604266683180741046199803430014568188332539932805160307442794264294438428642715920777635164855118755684118867060413567370764540801401064105271753430041845721273805563817424841703515025083274182163823907152282648986964124054266839109014059912285617810675874800359058267164204085622686309933217171692259413243159177843797478776741530175140941657765840758896124712945455258552166467795695982212766723249151217618263444453334077506040906471414578848681900149186703724015626187840561936906965510772579623995673417971685618808987267678221315795972435781634156289460124638622273712646287757925282809468832176512194667563806229658603395255617361102535436473027523594253222547230344438567927189400315345584214593456898739490481405727588014427602501383514044522125397307968209555704541798231753542100950175294465593560528985276592639921604708056938923602138098887001088499123950430021126574129700002346896668468136805356403514784639811059910115590988847452856916449047770782019177850157854499092842435049669058922606045883843110894342116225866660794518750543235135577198612732831679534780774757824995434508038799495276997562800274083666097936483566406210479344925380775178920747083866592793036471363244008328057192750354528182211537769684395864221873461930629947462683755582734104173368466502917925661122108138378167481711175098601010399958619189214612002705450418668632287155054345028748074299133498821453232423824730169082602468987128499453219749817680999080187638807153642088171689804333795043866573787368420821973009493107600165863971063515441216957299496446977341972809359368112694643745719652149171699031918340469484756290244390592699089168605703856592708011899113522516939574775262820597837474586571139332968179962309423038636267973284505842838921027713259898827505217108581879060249358571147493508434343731955217096382972760376395326187732796417170820614320810098707332192555069044670071103625545166421147824681443281033306005909078553526095115162427736282879229756836600422065476547339634553064332269668881553399308668984084101065754290702707790884714876073160061910544246307799557794703015570386580099344245138222106498733295712419176419287841019295997405163019363728146378188742203933832747281817789860328246576947025796691266207885886208665203774707893473447697052656210583213804411072961213104808113539609052690975163187937113582959111023755201304451293700783421302686419808571815576702312960327174868742926292438788135166543316829344566726269719614421843879699997058453649985334521786742782613175235802740602451113281294563064799157819248107515022520371024245587402412966745527532983710047658441791267978392344767677264797907618309370938252425111967021356407414025172116080714785119793108882532915960731814025715151565515404320712258352185366605321459473279231906828315830122919698207947318423168447165984159930207454691555122099693188320761516461699598950970855075805032649608862873171046124231431459726030074479517726064415348215045185260687407395595043889951718551617375663170830385308926806526703359816588612762484941346030454728911673992807779420354981764670442567241911445154202754096871979761218764502808715340971540769033984038107309386672885651646192012716053162358381362042084118709137808302836898574490276144247291092022748479139263982386336004069597912295626153981262186568389564066271821671360717683150032838879572676868446587845890976481352826516551442574133853636983178745214766924477117182206108869469377819124781977748898783802782308587348561876683090793479538017017101583910881908193308653621879124367528755526092572318739465133882055829302741101837676495335525319627567971938204533402853423907629515827870104885111193383880083433788414343643443059552245497879469972145557437984189867199878411645767451381730108962885286263821500515180554165880845959827542097530803662668128732104277162776656621652556440458505108052301352961554805321922409722388170095097919592180553607253407313978026523348390320827174485947466615653575981950300443127053293229478036689369699863501301565167618048708007255283649530545559202294587701842897564401746242998805271687073672237204906240832917879305507185881681436753629419674928531074216785311307731297854403638555942144313234450637624892990645106943814909014349935477235222023423034058872417763968378659091399351423097504170281877399269436011377648855830838607836100992113149067309068334367078426719671298388103416501113338195717261508419869226291649584541061733233262261887112376299663431854018821883091395531027401877949796502009180591822204432353894171812658991704887314568619565944465347185479823609676603583338711827472447848352322281690111770007945818531910041501324032820895936554668821940853433301582645071230822156576411465809301407108583588733471334201367329933326089249228440338348506881613613544044033804734855151210319022143747510212216703346612855894459604334439117205905056711270383433994907737510785191018627446922060454992303177918712534310686528312039325536508125465834740546913892432852234438362910673042145423555508166098052399827603731528114671619843963905074242269831762961897026990113485144963312827900472457591786630468916233470837268077444799101469666464740819291668547316339246376634034135385893628252465251929994069495347936470495394756714947761072433746204540857269919541077285724535104196551318530663480244105222698730673417414670090864392190130791900057997893499411358529812346834244021657287920334648455029778005308822320923115075411577868044052084341502995984621476337527378549522075647894728179557142817294532838758167521191364325222206679062796624073890547908766927934048656326374331473829518142950212250145535187782110782820688716502263535081939636709609903336513237579736791501644121772650419765641923536123913741003569956082431084687557418937996818582263029444567965677373216059347082639026792818791865568962243224507671555294618595292912968187904119612201262721912687408546036052326278293739690579705360793118358378773766529092323861442875212302109855436195957938242748651774378081263828722151981879978594029095264473480359729896640104319438589925648725343099360429912139611833168038043873226835511496604475246368310727685255246828519060709161613062847857291930511861337792091627210006170066970621000592785836677671013312037255117801206540115907946290562590473094361822701626976253323790032202113553426708543927605620907230453554223369600602657386295277956745654343440781106572558836176879043485698228330476689314841905676650885618103732522434589555251062364448662497790579553958267246271767404149367883996258634331531068321844452755523188023424940931714898967969860771016523497184704208185864222097752133221049876549777539053586744621956559606088369400669563560264887340488350644434598725839093821114442129476853633883842035701855880861243562761371649049389267767099303822754152479029773387035222858223240915541440531117089218086975467238486989660969121685435274760458926329711908948718903643411321876858915282646422144122074006697565508274871081292561808115004312977187714968998210260667167475520858532142172917214986584081826873086634493247220261026758351014352585704384178980690328059320430366825468120869974143419550070786909763790743417507646712093933058380484762589056798260784534018368469462275929058358524993105712167518366401399362106940046082290013475568532651017953394050624006635164045257419296166433930765838048194750445263744927548154218156065316602861207830774418071001024412555287009257543735699973260173153625503098890135798392433426993569805774594432267583175551724722042645007007964991633895187803357621405094582950880664222967593190411530582185023023246012035674067060181893951935162665068277564503197091968325666799381678827498800126570048632074382363495054848265108085610070424893971776502006050047118774207769119716755780565042744906470454501811880766537426980180569111548555535302516072120097355919336842314206004154040882125710265561839486300351407153127932524846818695503034502210434914088684005134278136661164239907890717859217307704496500245207614744245928099928606165725329454460357515958800620076652712093235585001911264274681641567611885059756448542793752172426959858518156674148365655451034120810347366558434675686557523783036036971244264007321887644201771720191951702582683796664237235160586410004947651081662076422660612744326975632505686055963757158264655761968290092070351714475751332191760434439831547583631373764884152868619512983415304474349737468237429764206121262089960040434992391668712291862884276320444633681815548691082898151045740153549004848990980603957314868688751888873716465416158129295500805825456023943253766329212123453801362131910931707487018779359718488016065844169414258150182065631637674383160608401525990963378400164081469284104174346984400941809410372559866460430623416539894917458191315604090129148442775666402133343725820684467886049881597136756094746452286139172815342986534789188673868369366729761304909842917421802053711260457293643661247441416453716991281249587659656448854250164222630125455254386056035281965386284666981329499193442975200065247938479662858146212554175355128740486094869332701318382840572258171423060854602013308318839978507270269586498955969058367687001059405941865411029550344668574927510917403010903701786204574937531581367612601245183672833997342174466521620857827143035297575765109070995772796964235975755973808884872855613725284375922407699457817909703812667528032039743601684649578257750744981424338452255903113983111215417778493149870240382365393739405107562117334840180073013212738299761945787887003118816013297654035481811991020100919340893977180106435396173263571322425765839171345154053063197650202132183907548821651938636392230903900036932789004783084739890876527054265972534811355515734752396936588754756377661617739208696227221286381754021049541255612174045884639231243394282297019690856650141737637203228066512086046333583327010144383448647049070009491246158806057658463991066136891248941923303523120632146917249903096433645081634195199832332454776294564559102654674747250919448628911967351081075364645446367423975222943616382838609626256529570057546931789887340896286655771078806789440191839168459946615336251513309193647790437042966778958397837463830770466206350110686797135415913256283821589684950314091932100871977406813243989512591605937164048162820166556241916335448660859202118226653110644146336903825531974316297955465472480870536549148977135382135311267212133337585767519625997710659331314114955699900198689971802134141328519482469933441280932833818722402865121265339150667573265736291181378336954734814291326143181876567673563634769052230254666606571842345349652047212307237419582629644444597408738678180868257021090995947948678295476995008552080837379056113378912506875595263231743221578194998131605715624053672276070100997957725009912185127963092792597449272592531047383763410460202045158187450057298165037072322395630233699466567560493703102574849129544250940675725684459197879097185843493358132148187341831064410852212351919007659980413721448489708237042706936769874275651348542796988921198437589162219483938981391842368806559144652334501059633779567235664118824172159473126257286687362752251567794448119575706610173603515719563809242489838691970671617727127353509658202275296403552296508674127030045920854760627550032122602743638969111462215892580753120546816847800674543223647503475854648282679350637355852563930942477104822669866469295024921555082655034286309775165517691059113422032494125231609154758509712724718551564374280670131962041962886599662978210453878260029689697877322411724281761375408180820599343604537711510811832178085945541213780709202139466367278548485093843383661650160110585357998998252705031387931794709959343411832848243026556278043552429690931217909471886056613194472408149665690904346164186918812554371266835508243858079662100129337002449671209827523871414971840769617601622657133872039953869025875766310378498489580878266346816767220193162706652233826424506401477950562451069548085943751915808076112283072916277202439203536327842549210656890635672965278104506119597290694701048333791376432776732309513912680455303288787718886155283758283323583244399365833476892272700206337488169640518749564416341076837976651787250986289384231964655968878925028566950289470083093297173427030077039365423386772279690209969539096435145064188367016545209970034529540904595109162253731000077707813021765443632090931614410263694526482500566991562292905424988030827934797322085234359447269454766284562627612017777937909492501310176990057145634019964964731886589762536106599470801236554130688042090384385009402627654098842818229380152754954989172644437251396331196881989089190920709148943158747733091925169720665100810373664692755872798869626248797921899656898409649134658799355322796920299715442038791372745039768931839350679245000748307229805179272318121162838670225896572049731342919640219914943231392533798379058900185874073600374658113137759541519061244811310409885133112295356806292602296272390298240038086841399774137289740518220901482480904037533805400466984415055415861966417435504835822698568578335554317385489179998001940215934884804417857317611288680937257228939399121145428778918061984056354353063144074574797498453133192409988498252383769952364605320813138970854905580511711896208160460266163771088912663308199422796539432881484684443923036591788925206887362367390272407832532611478838750309253123174974635383882174416840462626743357288496444849246013891301135128333446856573425712699129372349125950447314603526889534634857236885969929683663834248425743831428183947650991184944523569221992500486419212321395302160388860858823372740383615190596077205908218297914781188825261626397750779815399650133612983095298879027279705814034592366461640491453931096369387967542444985174806269641924999172853031151557773667379924047077176487215980952126401605870498328919293150936764372038965421588553157334044765672719605308042441799127583611291803332064533823369367085229294443319406934947175275268828586256162359752185246504669050209778245326900928215654194117674078839239535948057357209697091591458101726419176755738356793974558040309428925757292598205762046319531689135216760454291277833856800747589869462357550651637403595439439271525478583838484448167668755643070247309008737038118547643132683997652317396646081672953901810079844740070400024560270002376292645237161493685900300027788295514112612309964429236302622486556984801786781735831032060652903215534994411600828980835037355339107616716501305265662401989441000434988217306369094996426486408063331310517215269818179940689562062489272826208046191232967896902215565714323354538924452011930006851372161177951430558721426103376418260461542816967956969697352773338207319165528100361574880643809353037880072767313359402835451790727593954673678689999543813152077820344434959215745205861060246594161884631331024627106702902617638192050478710430294601822453192550632224053260699746794305131054304086473611527472789129315707930870869283191948841103667687506808170978623986882207996513743421785052028831416823794703045737552494288191734741251354841874424312373053888990434562547477261792631682535273248116257245421460445248582581237936706471705960989661369574300601561043136439779833563875702893051154957827869992084821319218788786879756634889988536047939285609588821506782112289798566614530379922174361837821058450676265096994623658563158139900150294255897494706235311821171780573937222231807058580134946641845117328178095627960727207267277665546717108448927662464148977989086964377730108826742321678269493101966985135445703565751171439846649956461820208446530323359399819653763054135397552352928090379095043354793574616900191104137148216971862067772374998175979485373055633862824267650030525086351084323580223307993318524013553898667138673758160864205261778154350186027502311202735788002736068388039866136675253441876146245967249436864680841375715935957404199879837691977469713508045145794315672563333491391764584793259186889775789994414069059775080871277350663712110757135836479296771419364424352387424310294459450267850870582335536096677942959830826874923112613405131947572839142506566450964241934784402329164161649490983449114633115990661752863991297664769328316394056904060199459972353566299261951544888130390764163343983491659214838014129522080104486601201219684794427008939754669374245937747081974545308326655822357627751218165139572520621488541602005638744666653541211195536107922064950085705562307844341329671377363254983145288633495149109215448459244991293781039929887680260321627347461215741776707029474878280595813738061435378664217604967939036322822868612881736608093594346398152101240924674198997902119765782773634705697858935131894820639339916628141394193615445605198101246667823018441329381422612876474709368658692475348213910422644664594786065005620371513560800772582658472861294784248809118864745280404478118252741830865347145692555781383564295266375454839569211308728112731129403344211996804789005730930650712729933978087876099069277662393392778727768677755544348441309083876127196926414925828805846134874343775232114842732881075198179830539481838205502056073581142700755129924971546355088211913781283451949167735350182220143476788403941473844361219844897270706219593544704193436375989888841968293066163215970150327720107277964264941729933895464728807860766507690413931453362097846741488611182440229587253482879781125106680299220526804496990424405614484561543692176063847986859968106580669872689567303705565901420745707547327073195808791998756566688249122885269368620190943950393653244386384893692908830244292805851267739324613901122528642878177626164948437901247946747076236913805060373545695788442468704399213036364954356934047940548163203868778659282704180032860280338027523163997662636747228367379178316867773565927494542341544735283083094483598594694130080987054437636280663943542395876469833625799068585702411111003353344849072861107176736899136514256687492771741751487115831197151526138827244450005413980441564271776402299749813648926057438250217925570478973872684302535697089023446790149941770487957433883637382053895740804143989119654346992012447202007157515253263489602471387402498015994059470038022338450016690182312699169907939982596972261122271413592833850680068610520818489136427655103869899735692518761573257477535157155998396356550439163128621483852936128106968947872564862553909940758153307094984851891334785904561427894523879059895629369937185423719702723959346919865978070821673747921367590999144996073727032315511617786241507162282836201111311709194340734012310157078596489905787984792118444152407325534504614697177992029298234041855102269218446900268483720701125373527415224028060646708015087809520664665640532280081021545313433513334484042330651209016621317833063613964178073528290303311000044781523623115863219586977051939321295832402578637000611221642328654802424991842697087574827072296317202274336760794596863435861526005419440138930385458913606762841798446136272551432545339524657636321487429753176227252453616208721928033960380053038605853851703185380397805036322021437437344838576632892870247739470513748947275581530130715688048606985057189438991425751990235169792472886811056482997601457242141514967750772292356854359224972017058101618148699156006675757819278821781648820117580482457368654916155205624847457603786006861898691294073894017220753963068432249182313716381116588122010274416747531093545582956808283214642749895598970163680994003314254340711846261477253185388405426342609639756714862216170018166935398870758053557084556775761723685332465485947899182458076102321875654324225011031029338321944619982674957545762518033142791226393597036520570327824629650473856956088610440363588954177262750406575348623675280830853392812056124793674531051054982786971426977302342639723812448918072210036279986601447880870124704576532304135602197042235342422897302235241511397255026226000880089641221618300488617105459871732311973704127279165126618914237365152425607469979205833871489466342735264510479626597905565990952672920014053922675210019980997255583331718914686955724982510854971906087172907837982498149109773982468331318507881546339066334132453103759611494662280925848128472516885831840179982691491407570270974506734557009749157359692382648370883340713393444311369018170971404857732038147794233366299738418646390841925945435111125002254648788210940163721707357744720015416687649732454068471513077828903017176190167523269440852344980339961980714999704869412653019848129353833117854161828178441722834999399086975881301393565305269936643622335904951919824950140431715940108324178561234530974553014443939837986093503731268552200013334474763119682092071282982705958046733764805581148811191311362333769240752228236014405989429023901333936251654129777307247692344243367408214669363789649728311429041707862027288222202877539143126628964229731844280940893035573231787955714807698278746760908510993869218976039867635034708497826100082696478922758268524723923869781361978489872633201890844770617469190304273373230141232283655626776681964572006745927114476870846340019830692705508745876988892882866073607479706443777099020698674549139299556359498044832400169106820895368579188239996973571642845641722340780483730293048070944841529310064495445265420337965435883718363770114235061450603062098254335563567994329994191561560226202502984907308713650894787990164424442367254569689529769108290810342067140307981352116784315539137672166886435385795447900791241750203616107977230372267295375546348095895772254667272747064749448458482429159772729442711873536110520430051201965279085291385196024029341598038850355751782879626472536781914896458323043654292852510350125920611521012726319012554751911356316456308856422729901036679629001664257162579349404944600338274986282604565407596022772191779379242335310370371936512141329010858733418900399626966325126374687726661679002772276296956100933147398219206492574724543836775066182390034427306165357335803779051257402586863673359428511583524201164928383599682314846034351295657918940960028003178100063210988583877309082953015175872360649168061434618247116087304842117948828087188565005543313792733613732963354718287888200526911789789901688675250556881314329405837081621917912985129204539355922570513849281786234877182391147333826220679750194473096553700583724499668023063903535310397696413555404094592286779792742039989521448542576344831592289783008262792983469572867462204799437504472415474366632180348164114353083030999139289878263393115532692374913838850240713276322585618914735537895048332901678889723821852767792033518777633372381612208018062751670966185833126957051704514632925468256391594546095193466489744832233972590777676203410001601938536538038631982260345929892886953935557695084678477757548402499106339418198019967094131124308018366689882208474146523297289456188711286129088926077006541964102772623900307910961321505719298292246867408123837258672719392834481534959113139270148771205907088592132791494098867546277494844611804193168872281715634787379815823287824239980520685142089653058407628303909134465654733930889867274628096737305065676377583338426135121362060724925301407669844065556072227072704123929028342887746797376274556816431577180774991955382252505083575225223916261646523179070567261095465351344015985143830338036549661994713006413363904955600992708182714684640068689404437707858340255480680190048741354232422100635412853477143619942587531056432162597885086130102781344403497751643589539372446043796352485370483294537124662239621617381841543276690354309412666367525717368528098243079949518506142800785146530751437583497796673239131213015634997721341988021619473933544041937264025421077414990537523634731550850680067202517981063166477061724141611181997430322379715748867938441102340672385159774334059273382270989910892335361569518226738298460836031081132985856852236478729250895361978742809000695209988468290394566119092615531968564037222719527989954357535625453894812235133009284804617383432391184750339398095932288923318942876667512051860411625496003859253822284110017192380634029540685731210550306257971888613046482248553513560198473445409754439788893248203459016847812703740325511158173566643917370538578006166048234501057626675927267564010100518715685703252155376361124993751835664575968215196662955338641858924489781691247860949325237213540851786419096943356488132471655475747012550561972059242026936536805836041536198442443853747034412427149164081721084304445116376182149409911340311673086995027367919823916289958028108217503734334438303755185305757698664072532782889110692039463546044847774722948180963916882881987589884662128505036459776757362582358756120901673638975359327280736867514530505677706319359934870784823897874986124658299346661001608209781411455079500436970340523220900665594284983416267470457843995400236657527462069355908040539914865503602137182367879677523299960426667530677196829115448174086054111119193704439307215235809583632217529384995824991617682425210019248868243114397396030957129297587013566486005345165381025309980320936070524642924259631075144235475553353312464088964011474077915738338068219528431442826407472081955970246782883393453466334883941380924459990284732303052784583511965103214763730293193395245921307550118809601581281329195483096286871642140103016930856617345773210789376236005730733089435337521641169981282830272942338969544068689252632194698443773731727860222433981287731384237864157322768003869484587659398469722788138204621437900093622120168220020303765824151832302833138982114775585837216759367404252517158064953895987087816178623114427287456786943116686828411845173244744660808067638692174591769610010510223254358034882043241334104658350425258130589951739374746683258610403292606446501202428683885958796886538734588330036524620535034626516224313184147667278289534664293150412605694233333651654724712830063362447358616372593286481028857720365160408166218251920126212127998094487643286299831819764147332635450296381686222767202398020403547413346256933659918264139587919820842278836533168620576046071034465577519323960954776727461218965195583730846682202807790549393273812657225740282158651794652221764618598620384458574181129754478497742844931216568962531943027510372676388206422546136816202139633870170846252540131191850176767612084276367332117168908539595023710690923125233503796118092748215441469863445745082264818658843315946331917411558634948963982053627690330484801717416841057143058982567959075259637261176736206416773388566140561922933625816994909872774266424489188286469121971151687783667867348529716349221742539208170584499475619028561584867548189896377246499587589364664882460894157351216154812794997902950884145477569369843160370485783509961890420157349726546805441194588060921767495349504153726675561202782437724282450375496221761225619426107282779584634097179572353224387075747373580541114386611271102051153890847025598478670290204339830203491620555246187037957332751613131451115675456602701184335807197622529414797639047151354655489781014277869084769277798129330142492218015553659712819132844004384414863099194757271276890663855106745714252158155783231200868914089422118417668840882628000998086724332977535292606743660279991531639780397687107727722188599647966319502972916041571066608319398155554662466909415808172469420971778891426964357325319225019699241431010167413084073445700044062852612327984336856999656471066995969054999360862384196402187807705265353257748358897218065082122065164809800986447932456240145320273116563269684386592119783716862638534718901189639432684302527983563573955992969124381968841922419990587610672719851923773435067844980885700477801749352819179118985589795099526366882586864260645835250306978890585265855653206125687435103021218148348540521111751947868458506604083304989337474440639472209148428987474468464157476674125866658238878873834359708348900428706657175887305135060604574786191015057879687179317981557210988848298187714416009218410603172685112342976140185384926778008333927356721904189645996704833808611083512673011642773012471329507382810597383443254100613029507015169307959622744256579599568232743035543983754360278281555697915794123347543196891493292334454983018082396215965654685975715936062519868108777515648664291583621115544389762664213535864825112521534115155307015464458406525033105920577023164567730911556136261161949169422985259415197284874956673713900293859458584652355017108286225444562246670845373628424706723857755655386135101540962550552275206691431836992939736844671003055362721521587700133691320114454856527330313950717607251023683816198609298027615354722671609222218751334335461473797991359493882181078494735722712061162178346706672270474107483323403353412623182502020664669252561151542456514264602759001626018300117711625518048548265796660195146309577622037406373849936006207905527863367149442589151246281974380777707511455772261654635859297442629668594401334816022037638842400290245946249207491020784336260286514574985442889301233498372356401181737263229778666446629888129191102346687312010046557738809067526674425129538346111894538960415842501490669026496226184599958258943119505388913534206155885243351120159551374747641171165721387452212745152765281889011609865763325707605128132318539093799786037233539694244388545170724248516314301771457803451509821728023075696794971769621832870142012289599759500536417327754927958734736507985588943653230517592513696639439996318509889793472841242640850804107646590652276233693577079824296962175588323336045940412396179098671453854759896640090569506736481439654388546749800926438571434812915700566084999872552518724732804504297144612454045054619382130299464460279023966303708860522982004540680370876421936160959213987917022389325234176599584049941798757228293240915447224236648169549205891409028864148691526054529092637082440444778912745923192257840530289838782274533201699415180232506716744913181914283020701977133224675632214840273757911918660678092623128587456038031600917185402111062033797569097171917139130091585134041781140796297290412207721356737457636187807190606647484996218232120498344873483573886000235935497412373502667250801645307820164836144033561145639864966235733726689081716927091594730517097122293701641833064497144038495652223096418927578764056340327562153645711121652238589022476840958119841863352981894182519100906845010218862379432146085751850035820786363188277027517202447822436099255211200273900855199961794972769738788107897194179094562978707824478197456740513834835523210672806109147361363015021020241027348853504673388958405813734087684232674814413620560593890151380815818614086234040856515316139934212001413962457198228444657946700702023747766875358285263953332480752303860645398391413539764334847664792752026081907015450197975610135125543719216616209161419073208684962690261571280254033373433757699191817239056031904394887949350925006170825627063286970771962806203494372956584734930926705601263075068464769177697163523823414116044545662423785030147872552413470737587417894049960022951361816854980909040600035224624352917252036385995185410132601841439900239746252457739127249373687117149576682825411081696196009407049560925451067568291682990398380998374290741697875987772515216525232697999669630804947027679019307153806789737553481519022232330391750645715948260603862160506892518390132054394697277837567433845697919503132255880081988792228472613211274513484977621354041583232084999665230528420698500043559512910125387367953289509769872693897122883222295661253577784173640116436577722866235831144224373941562183789335190135726215338633176651407230920616493846949975999951140568211671719215461896800344216185467104770748260055925106561176624364908572469540183018704717838192269650178346072313019571918227777308518163397353979026924863309350290935428628238545304300494025492973572551689997308262378086932974756661011363133705459418436208270472207354395646694563897674325882911815549943045613975282134558076147646476506096944325731646817311710555837881710955794453197721011314832293618249179457727078280410901761332927720116122323345342866460011852558490769240254953082825380839949445539283774745302610609479083443796384459952302545967724355216773965572218027466814219634267113367965061737712762233380525022480935401622653317750562818739533237001513270481376431395725763726358473699022118538280969672033483962917480658923830871483045857349458587955659719850503155747393844568180690045546095081485343887460350881733300357999913179041544177015449816428078091508708974734865132465882851145706174860934085930821276753962454714863804242063848554274031409066039855426812860395825494397843865873245406376798491482495209363143409075816058552516997366444698938958388209698318541092344638883706011261852905828670049799362222955753347907421191065603611583160795643797234418288824728880372981892584644328779663652528169327068355899497974791250198577188022800626964276909107072347439996332294268386462276116815058320142460834446685227487300255981206308071820916356461715227441169745298027544632511719882420836488953419715208982000165307864984029155738505839927043085655415076442715372704124371254008084727214537144679133455397703552714302850298202139599780836309933890046119428864413021516774943931848789024169015135662490836549504132888872454000286382440642110548353648541071038408335153647440247438878949132455251825824657110461604760251151980480748601746190332319034645558794838394877978315684352624229037426587169410317294713162295354251750095838957876207486524601799651443783760933526798586153728779137291391183292209195980991226579082585671922444819983520310845979054594930129261354483332114355919697368043168165566546062709262085291082391808593850543394833486587373679431671079741206285405550629357413206473007485196484551077995665520536659031013109680725579850087071199716124772241553383148280525861208465399876223141954310135167786403092067625242141967450014219126755438614583661549188291642606278980435197804633170030401769530077067922850487654088136307017232698207688780155348835740525624083815851619118524704905723149997626562743002907719933105297475336378005364235592238610823154958149061993405457389067598455154043093997384665994805737882224787680507391923269298055786898321383657028381684016710839701150185057674233869071452873798375869394761813279580128310932003055423156712313951521941705230251898726659919034823115099308396909037537531904301552437172234716356557901682375260470379020348410821960014006203817268978761423571954577137047269048672790644611425779730470378656117678869912473519715406953577768971794798206037698780948308532887093960801653580987038223977845722075136492639973314497856819540959812320271441884206088821380315748676375635743203127534295427559517020085050588016861575836104376567694895051354892078260828327580461486558872228370638896697772554583977738355790748437531729115063566404351738507434737061730843143503009387271576425513252569359495970435636760816616594525767448242695720432382853367981429489440079056462829150011306454494912768581848920003920997042236348518482604630746432808000539055136331482922616031844625978020629097495132218093958435850178931590402162985713578283233512584015436090548743748238387471221136078088312352953501215266997276641863075749269091098962058442915614049911305782222084922377820297347812156830811232521389432246345692710925919710532536626551885890169211942991118631835206006800941250474783146008418459373584420767238162266351169880229024427894083872639192900553903220960272486442816654771950955245139670906966473833463422385963323751798536849875400174294892984845282673327840690943653679708164091606420393323955469692163758465840471440995647095653196017865667362048713773430983421714972051496595245753187049714387485277193085430181732498566506980822840251291397022373402371996516037932563846063727252508876088730071919866711321352125636521168032505765899002535275938822135859432249154257752454370143157191257012583845232331280937604397853020358413182296974392934965431064891346517016348463916689415367785164990685421745113254619439618320985699133737954705511391431271868656580998119779387288178330516407862024909444791288515515132434123956331039085455065578460185995661500885519521266009257995124065723813800995834920208730175607101559441842006550305746200139120403225691968981948118980408513094379883879892364101527817189557914847403446427946786589617242910018678571494773389266675805846640525281180011758450547311384340524541807352791945210569144706876237628612122187784823266678428392137627109155212138187045397401995110289599406189013304416046300161186284695052979118355959195421579411942839466521351181713362653556572779247313792781115666351769517854438628505902610244433852447678902875303741878252461435864711605947038491904835135344469909376419259016315470659437929660274435574285934661562411619160155908482988000615925202748839994664100934014565055691921686960813828856326425740501801521253005689076097939082609389018378109447034207356495429162652182103293603217411465720834819987045775882388856572354061730799433459565842774854087732324892396850741205670249987237383387320611188083105192108790677725003135151052613219640757675901730393901260600982733192470723289056331086236018945750954980136971195307206437337652779099897991469782443524923319062333169871606971526108453114301404322586660770525112637551440028464852850782018202039338941162160902541255744213919963118796300011947784735759448711118682726119168660682275286344142562420723338172350827040819539770921821449870748624848550751847748246025429830719589513109055020054589815757505039740396855109659371964359681836440148711942633341500114133867116307838316115046357912019555111426608045144226019062980101189194647223232991276646471151502750122898527846669831435577553285103150630905443005874511366580172148521335010071447060353344844716511163797031610994470025267874319536531984950931974635121083203856837342695325181237812337574821185002796446136908553382760336653349817575057448038783592062645640203160738182360481145925430545032178671598876068396883455620333795034819585091995394796624644856348106130666746695734408206699375066494518230964478503422920633153081908911584957976396239842269306093303161797868383518544698111210906242577995005884103205817819004506378668630149002095922945433608466371655701110654774002324059299784713961745812116717767895794852239243534197942697853473541542747959922384148371837782233038605276350715439083352507158583682906423255340148445620600557997477840122962612164646943375650487660973658460776380177420920815987607288969435315640348940575361915154153934828432545001630725923606931282471405332472781576586100941192009174476479410984118772942323336576518807035388064978117765188696531151468719904269089756861034753523857158049366717624321664204362329590316974617942503125602195659482004489109453547694891989647610201732910960640719440927475236388536595694185447750372471791192544949200648017203757047045145067314808702075241904764377038211330135590036008381264788650201024249746870100318033977240134856491554079145153642552161759748087279631388980887383921995262084802075125133731648004959570573680666112265221715421049849341505365740791018687129958966544567264262825226094777619883173058381655916867227798734253512348933162389502522985427778819827189765272243625969713054454222615711157108960327587511731779125205001369653229860515650487851139853924470991476134331998391742124624962803436839815329476448578547569293284622131742644824785352833561305960994683035411689469585281229255763173907416360021232902572429606333097111364227948479796451862123464239178240202162176718735933410234799044232269363827617325518322715774848863801171217781191771207994201520359991361534697243844814821731831989442373135253884303963005549382322132007609156907863001544861979994619384270283377528064304899581315805155857254415291010734531138774219469163104047797530076555842547260961758238801701974769111816284763797302491989887874946900082718978116406064932189950055195725981413526713300836952344402286665740504172678672127366159104729507391724859721165776378583966505032377582757273564283908782132553150116504675678164333404334943317124767353573934429927031041602503601500713465848966193565289216783968992315253994581345211097354148238734821556859174024811348714528796764445090184233224625781507609582280451711325223190376950653094683874796242576035378819694855244556532713159916278649122013383753857291647994994874231643481408448478342638459298598310132141055382748983695530312793076366014758649159826448494250750162914793792548092555713076144429981516479637312672543475732417793940896366067407210232358035315151306823215557690327786262572586304435669707315813849040731709884226090927373851163493412361301043289015119707947481753823379405410701196117807495813937458594523130020548977673483313672923462073269528462595986891040343209655296892691097505775818700794247505309649806865265705672693237162022676049298744791799179121253785689713403576640519596011197975087173955131663846545926996122558417389105173589282253861158684282200836722966354885814476733432533031565679052590371147438180765853061327201845425890438916454104104866506047912276655062282088202341036001913125305751058573162895305682779166748717196418862480400197254105205509799866583963141367007792325898114507662344720316353832578491199613584053799169689040045202368363445701147409651296181968779515356452633150256628526866272170657054775817066417285869971834757886061864210418129064762333868371405184278661845799195163861732750766010209818766484341204786664975590068464369988438677774207059327524792471679485536606959352447096257999281006465097975635946999669518940975906333150961093502091572628118576604802947434288197550293987889557364848271586535713314878416362942028506844651174829860797986002929790595354983909951574977683965487018396789758818481175084874360353669185938158285239499860834963511539817167383132437849958750837314102610655463411244046481540500228513434498835433880183316566250160372126881481961727582809527853832496201159505619193772194780494496480299906030548122774592008940475919646538642918183543084586605990588121657437957574562153112372055714381304988262563001542347657904140306873295283249007232836209328912157034499827280518425662526882812810104365933930941666731353101096303165654682935497850164080434403963577721666378496658085482198499196339891796571138760952327017264146112660750918862469476261962326740825201644556258624756391495908788293453186425993077183613107258884290599075243622783386768241254201357233029511584954279734721466421366249611976544863309017173410233209326401306303070773565633251660882327235269964434122524388213255058499467775147364945537475184411790069816135541860139849528140986362920481594065099017616652541473424166649777882245011134061272063171682359997936778921251792701840602813899237815727440118597380329272594170306585730037873503593095234625022009605765109810111570853272801085048103020582917332142319651221789918238159377689878646048399504143952452608516879835771426890278136115760132001066628733676679473574923731893422087875888200206784394379097449680027693916714412187842566638451625396068317962827023929536956671441621636619083317968258585603064836856607131117227740149027681071703332363231298911132694009373533662258261009889987223508711366159095773121900959686347468066147816344720492978411689498303879072957560991660782648254259283188460466246201695254908018779825288115257546481259301759592198889611855348229535768612353840377966235689740354277144831420608124057405227878427817273814991695801413029616470638444781517540864909311959163164359944209263427661161714073508869534803532290881927264434644687118181341371732492249917848760675904535532131092847262529974873765537850060020195879798764901437581296434146747532201098201676479686039805961330896796463847900932523127779176333911629728092336159423076520713901926968734897626117426780455373914622790103330347226241264330330708647106312173259299334187612994523989494594739922168320660441347469906159956515631921764532982671000866250346253328856992697889201201694522865658484112487024088055265699555538631277497443843936577590356395456538192637526302446787924282891602560563481688844943738261982936579421404833755632576058911819154100378480792551319683665531283963958485423524475628375956411656863600285794811408222843475271730283069052711574163217819713459768127477424386931623294944477417564678015082453942306769291808291956228029615031765948884484529228784756063397830040723375103512446672955251712561989114005704239090487656585692427303950155452750418106594040178198673226020808243562287429245602264376158182585230379800156196676545893593404679137803230139278976148772326366341062467918384735729468367914779572682860324917710949230683005641636291588219626430607383764865832828811934426200095317139409183864130603727093033749280398806491239554448077930560692443588402304303520357503908245456771497096071184458262647846748528708913517596927977440726287772041362767676464716764097044704602729326641939697103424054620958600629555359157409468126786578599715524190838209606218732519819972599922944429296854699146071733387321515055029077535520444088584115878579891393333759255874912808703200057767657513320186379444274394169632573972138263797343451717069231255553281866506754520619799972112416505534020949428713105574032779672485593425515297029042438167279301672424321862758843466782924150299667693847047953218248274698046594723389627495490835666026276876119837032466313149629775191890628907421636448888400361916817843354914853936512599616659446578135804261341852920175159292134567721743277996689690961389191472257043928388539068154682539549791434619265059655215070514294671110869428567171871154312333054641961762478715746529659631575110211632049871855079139095221256851525992846917386662593267543491173766151884734384149777865697843805769890323559272210185688802075813530109824268829683631366321726029867916603970747991220508218462929698297336107028357169569099059982266216089047560879673133054180464919670855490856103799567065483914485415749022420409788823081193914143214461928881383719333489249801684088190542250181888234854591783717928234363436531045508199046053626263771107984181726864412649881479092125578651982899512581653662134398769681435465553727545715526266401768262060530951173960961856458082198565057329081982600370756934003547909032451565128540482059083507730272972157136641560902913795366082319289762479704162123391832616015716163153075298086785356337423023318261083732870688746494742947585923006622148576315999040150604007463641029287485804557229684488693648294718112421016618755476668970721147621903476170047751971469558605244946826286967138068872153985269478705544955396062668441008045915079592131396062233268929043148448492588988862200792291363163854427171814670813030155349354017352868579425752958431037443726841575410703220958523203255422744439723526142584304011368718683433690542551207350054503125229757697870820008430698293879466593582000523334593223687982895479783602528721726911175761639925500674784327429217180700825752121113387619010402302653573032320100760017663744375744279594653138566345642027744945532074519044815411799679647979472493305108649864060088465776277469024684245111366594956490979923243632032666364140682049222384336738820453779770014793552394920139343588737948134646383392610289622642734197792707998145917486453954123818996119326412774882979358404293151514882321143504287344038007378717868348696759957478495987953532492375962421001144919844574339503132187761235010782333806658536075177247027330244998828698707775082879754925355343606681190193973714982388654044746140459066470711407126339100762507057901704579762495976154901758851174422257790993207262084985742996266028773627007047660892116274309338815509875719475911954501745685152859700494437768968763298139757522858028235498600106112586465406873666494509516599264304672483830049226421960175029757344016326624483981582507729830709914008520450317809427919719324634985901099090271751215737229253462960801668460958774858036120720083622945529755218770715044991992071769496982687044617695030575428365606593126496555563541195064359777637858699761724701955774877284644596288768133431406879124933679431966383268380555194337132168132238312955516130702382525737239808354261838375776562256090805393778665515038111016539161249469326314929312404267783544415892397881701360768646562104604009912440490492114346748082251386182161183069289230493672251892010495145330833540869034085810206504094187086825708137140877631101229230452879293106814509238659811580956810125265633882799272346331570357314063073447461057304939946377346212338429241806227884151148101198227921330424154204598101645552216765335999968771791409833395043907813803300547929563672793468939684866305713300060603584008492567744135666054907578510261961408804707691047605122215224546329143368723224219321068309504594198700219609630956552211730893566367807225553546481521125582177900508694068420395218775086472815407157917668279667185414937440759215073754546077061898395082466680651423936531894044893139781375983903235003319120343879148300912572047353317129647243715366869041234296888936933707329354567384142985431768345956963754545922679775001904004834163358218514810232460224497246823914781804978782367746842381835317907380440548249494959335609774613945706170939676630692994613284180071313913079405979305669430870377728444029533960990415098884537692829161917997278364386696732599564933091478687776575757849948367550861240163270595357020202298263268859323331686926246670219606703722164608866006863322430455661441764647180155120371544719929754452120254750258176185511698047626402460822773667541386147696516873741169515341482407922700137822554236093867257137679928603969070556321282697654564025863189856712999910516590516986710223004218839762424059255581001291145297720229224801924978309328223110974292843864083180865852156465515584705907293440265888981374573929365597290249714758264339716308428070158627191174160717019596457033265201410430717470824975451181865011174517077344142873083667273314848010059707576827104862092914065993996593664615873945709231745922355366818156619112160543061954392558235694895954911350691185677296064543443446969966907082204708591326217091476265421110475693150038529395201278144841876097169497128523372957935436091479894017822663608384296431239833278587386943197709033636306157894287894662410870723334142028639067459352129424923549764067333416125743734900472184848869241107390421064312334981006026797881278540829297365707591480848964396450423659080280037035995544592295053137048494221072043140743740644965797287996768495864266309092174370204957723355668230286091284883831693193416589225930081355482229620184699377285205387171469584200527871530397637227498107236669157312878657714800175713519919027670705827784513944530114650955792353341109190041378115524324716176059769923734893903641269063810205671472773323275286599186858969956978053079457000107038086290453699002683295067451511917243317083999554907246088248158092306903603466599983792847508041781801486436944465208258959735294893977557711913263056210241454949194937425210372113085916921970234302088921808117359198782484803119410429264327824577671350434424975015415060534656612982951314666754893790140424764917478470496321134307483669286444558020769749424457283903788416039064465778393209364046879408935692214298481998521489978007423915106012334898745719298394473090774294137723374283154471828091286529181287803918803223537205987906650957302101522820638221589921838707039362306504881648106340293568158175704053890602787983690177190863502432950998437754345348759905955508778872041492084527050217247852189347924689749022071639351587611988930828957907962610274327675218941909677384598665080182817281261817577024670260154342620576498951334750311365445680030114565705855554670275481904103722750767048972440914099537076649319707095386639789516184897103550307377985854495101046240649905797160145403277296004421712102481196216464592781717154757388766088493239076243766738396839448425129935981274924529379245072462015106429547688732229900587896905165380272171320793057691634154331674585436430832180284254080461346015005245151508902896639020741356699010525461741673527974436960427290221901995597886512353816928979401621504124892534890439254692869997218537175143166948469091178384000790081403572538821966695589448826411175727119453679488542433647810869484955235096198868494739533771260353040543143431731902899433606402093595194647962950391228695797063056537600096088856000686507752820995017075165147674410919611257070268245602383590987087371256131004424308996985512497939612022799553060652844644162163314111734691946991720189723928406472822642654250860468766369703306922215730549875125721315028891376853657316858904907594527411905276931660852425466175370368635466906225774405820882115135415920033640513572484644717215011560561784655874936725046265603079642915467362635044321563028138711283848090615534661465071527512086843734018184684704780067870003689535760730381104661620301858146888624365079433157649196915525933772334342032800606670129313708620859870282435846061002372422352151921020352679759064570056545341109922438116473399786249864583754995819222290950851081778660531392936207947032409536827830436912421536901409831490650777176376086141804295346821690371983525927979760144407433531600799649078444992587095022502886216802082322992025603776247053398024998655419669342835715015900342742206942471504156987296118492898112462126628930911232201426066417901158762084297497677109802545861620994324480262294570488080169390563292908770917912569423550244174989848496872140485095088380832696124791510738475399652531385171431340091613105553588725079557697865872956290757457881517352195064629955922657920343642250900446631278006021321885143601526064430559314584673518935097314861098987310292714497346103164848582083202594665008015110891996629937421710041603255038487090254814740994916593950583815881105504185782587733426603587679269162189936540096632134081172265219365968101874857269438553921772968304176462027135847231188881641262982912540693000103880148722907354042888869807938682302372435683798505470693238007191473992228497529781198243240186820604243724615682851655748071073548407924214428089012393492165325132963369111561934854334926203049446843469676022265951661103712813143672170556856017828967615883565781576949673647582217255645151923768733792197087286296636311750386773998147216292167239561925303874334884310964479639722611103937055063832833657290297409747335606892388545748080590183123486479892558444809145986422723341955772445879721036437981324640023441819398987900082858600037984802701305446626799406523350775341558839098593000951944945577937421719624324721281663427806767409913550717866806235554492859121934600187631609969133704846787759382182658893964425931032711851623706341092074021946599243687231911837465578508203902439712316928291533209349955073829040343437602724765864017739837572475925498878896564430439016223089362233671096012190543604687482474996485487941057885220132292945107370977071816951626204200903924858541552298812507920438439413049751753817957653654490151946460374251474632624188139194190902086669265744270910764978945718793308931053164631299446149535248504190605393221635007202956295469866516748729977617989102390950581509271103541709040295342512706662611830966395869344622327994073111119088462113329579271455763051979536962285086609829483952613370138885689584848093261528464997428748910582112391703769214783436811626798137620480330980752960142371979797090303944521451726289322353742124763643444095140932575607054127847234803799350831431137094773377971197919612501001830711361266042704261839261960463357784158742466102843067468946503181494919761190727757634490345481842132916907347084385287990755248934161205198743855973615432971999007614907639988713436668494118964590954821192756021597983651184577214014960007879353556870655777222205343657556957811769859704144611974304219543566919222067472027016638529858692677740617254479921995853979025175135602152666412665951730266324100091802488995241211764151619506996584120916771717035526507670911774776900966260007317599239991726516603457475166421697932992372722077451468565279149141125313215113236137397220774655544159183341351672514800692779311434537468943832147668575293957703688695892373199487376718777362606187325419754440899830588087029691310375212289764565771732296548292428868804854528911448752131648950987257569646540344341796407080144669031075803074108341511234480205476494656592826735091664110475833358142611113360186974738120214811210714003252189081822416927251879440216739556795580346437381069636980430184593933962794467768048008677873111710562397801666156080877746637258732779404059591506973308554264278400337899164327293340739188080222145074963000059104279332626390947109317874761743341828419334578621101740515538336369854301739449839602045774276523591630599228335635426804975726380476645889930745726004492175096809367075968723926954906736614727444792885250430704351183443015514057784866902218677974911799281370726511767042020819586401449544399478034566501465448481752653665171456519942246689223894988171859307632269866962957762232936529972451246780987408918020282434572624772744723436294498578746436430738748466766721199388056623829866468343715931976454407510079013350204679217087635093782541189797468591685262305789766338829661535798813746617285537376297625179713215853733464341044352911835301658500984155607205086366646469034062638613901001572460559690391324358592480748438501533165545470606080459618695985787692249939397663596946247602478197300853066138505102380138141979479062305747892161489903963022592241841595563343623666285788442891260511227266285467113153909190534402402291219972141317800594575254746145244554451207295536983729576504315203754999826822233244868788035377017470453698551592630667273355296091322466392484054647586561316299887551125654590349547540782848793345905930471914636170849500039431918560302618265592251800814408334076284220806757684269315041217816448020722201891898513511479731272034577617330584783972605801133810329741215223349214074190605260728173447537015070480413709121724143684579326457203248591303076290289373844355738911177376632144821983330611830888217766507449412570188210864712862026367709258022214989391751331713563965028103413063012128358731375498167644622376008281909276710900927016717572735950428184675425548168548233801206144486428175273605757708951022099697196081120444051838017095975967474356656232689279449549006024560014251399817745042313620616924838371362531926300175898325082143332026303001895347346598367832092127242242869940717480908922653009490092752357759991393732530533881978889074546068761053856036510791834490272532909878402809792401747746904128837928216501537401068322610913080220123531653992102530395437987106481445406915651620669580778108121982608072104180350888506386315506474437509155739085010357783804341814330581175480141537079662394888836246849074969957189792315532834301767779084065625086747862267593915457611499104845665371007716211870184763183008162931242891086283065001187892256937668904038772722359524721533448128217863306027978551297608944212480183758796836159769022855348800219251636750203132387560308641003559719492949602755976764167348059588106190526621923449041347987962288677115070494978151607190683138258897586875700162737251723305801266402458074834318305172736158243527227890702195815996845841423545156064692990598315162661727354481528681708556451658293729661310373717319186065338295468106764236556150233417440531963082458331924194781833686512587612393297397697390743187921819031074541710801715179359496687869328935108421814979483559871986617032201562595576698535694540344013373159644856965640021793604884703785205319321228635891497659144446385404155580751231535334896330369726335460771100564190704077127557455312196217428914088931553539545507073834037482426255302893313052645706331943380331110033608990355441016255134395330467936708196015382074404832814055466963585896023331816123029119926097391418930343737277696181441178967649139390755483241239446047854808776452903686193459851520556443553424298579594006583130004003950405505618034603026257752970727931703177183310088557351999628119110889011238248637656705704674333729994484914047437217757148068592819915919022500302320139685541692549900741246252845639922125123800016087548326676259080927518749634727036364282662165776785124435453789923756660978297283024224689004547272969677510950961995119438942929236232311612589871320986722947534833582040513149371731645087030532238745389834156295535041081428724867895464997347672862162077163124758120377857526432000973307520492996846964879372447643941259463418038691000375998988001318157107721584726449122146112724222204131521949951115078548773515110802666816431325888466616066734241510099202176890668536529338417871132859700661500978861420212848988559188948245484319757495100677940097891188247176706596690100034985952940144300555542837319181578268714738666602581789167141261463350112780222747293004114372566954172793459153462363316003711963151037723407247066037285657257160314698908885406490561280305466203708221056753038488091638411821484340425325309118050113107013536945499630919654554285471712346156571107832388682930004951361751896221906669632691769383517518939490223856513556964425666683751778895853384256883245111354966120171562592935348958947679785986706270869020302664337855225851603123511919440914149214735312622512947982248361009055539882274366446647613423918213429091508415213800020656799057546922734198761086248082490505638353346799103239395537288873062718958029253579141642564917340112691394444647480264639503371574562917707144659741903018424542385659319763226785876938665094519589131460302876243755926940079525332010451901292702006708097099235131673840874527043009245352023816807574774079579234283785746949170905232236385081183752860789703020268402828172474128129460707673801231590267176826439883390540204229855329249235326069723458798102111943774190173728867612603599578907661692490197992762169146810676130821668319379700658054854081693245299929857459353502267550751173284542185867683903490124609826359476936043869548407242241285595091180243257939377991809348653609317076396309853606980965023404812727297245006029363228113600161138837291185699994184229766992624784600651765745842042124974810280355122794818364007907552631627683156480098459922796820840051903929031459279919200551898905473019795999239735010435757251399128139069243564631034427970043493857446857815431500796842326762093680661651419176328692592102907771125492042744688002758061522708030827853818558147161085283777579006312552014583589670186597911355753082076260626701648957466814320397837198469056465746501612373112353103329540703969216048878984778680415492279653033008528346815421121955647182058562224032189487964330641445054614163255800539360320973456335887882778053644124205987022206706100315798309010804840124896275167957705397012275989242112484633018303519808390963947157358951666748844984891089198976040077863232827070719892232917593893873039455988486443514681193470671123992946924418018898073883303339325816915810494001867198658897726635022196687120446815144237230143539449295168386235200515463747251891367070067564618591609682178118133617928795932306079642105585821607676114797241669381999322588866431363075970782314019108408580682139967667776007975521443161789328752201228475589353432242908617253792681556687903955314857526140209662771437989941432113444756821540623461035257251278327296064195743852253732767058024263948306148381560311172942697767311765177797950583125358383359881716880688685578313611284224959758082317487191767425106382811436057659005577213235798713767637013007802683598623100291499955701571498004045954279531005510393086897592463556517152571513383563094037683420452739632676687982093275672751212993664337196435555668924623671388453393901955106192834088536845903101649679780966578925014692774153900587404799996268266217631796795224343246205669745152625500725590896493150614165756889843537545561252269013718108986229563662124191272545391664428664987151184458153315520931710301808059355309601056695927643161028153770519381863354800497185592152750055339768611219556989247528206721003291361798264396717489783621464567029636506951896804837299773535956616122721371763384804285081319568476402640307052693286672615117699023142266415323988067968148360662013041886906291289034678817591518972061984348909296026863010601980094984987850403529759563015276931753265376085928287885762541352388435645691597576276600301980072130432268006247011031474334230641415029709720692308245376977907561221815790185008665738594830866593154398429996396087720851865478287289933412219024711567717828592364154397608780825467466755204726267753632340288841242994234785439609184561088128246024544670359682704248114965090575875692532916080820039675706044835475485085033481554538298226891748239053921390235907962339846963684653450437723045907290457828283257747389697736173294627494440642602238238816752965948066061219033716557853583969641319511709183220999931977775576686260742865271047354715400108499680978828424199591463194517855351957884358170826800657768038928961462928159644053742721353854730146472870676159372378856534520891223724948054923071937330899248504111061749556095961347505495978038558527044511822605280846160807203629440992056843251577775110665854220834315357494355998564860256769220449829567040544483653274081225637569354912699440888291458732162093713611635587248290190245824352624689939772098246076171798002907611143941271131579688494746623205465216165262246708340640687452226196502062592778124367287206187433530809192424788053535909220941409840704556469966016615934957504571634621178455070251980865002419783217153697784831310842145874007142271791823301221213772695456499090906626235125815702350867421572421813004929288161838187867612452243934553738885503460432810090283899396533111256445417399688903376006007627055600203157951881202891925170649960349963501418465014924640449378126430712770328328493504466740324658360353343740208774163427008162362722493803592437655777781241094650121520899100450662681274380872606675714402206776516056562252168971354913547181850015826120799401798195808746307382474719090539473133537367648611979155023344413825886553639509083839014303362120398129552605102961121039844414863472909005105532724265354381093779064828952434698074315477775914901624490780894765027939227179201609947080161142770562564530985276081148355394438335733491350339515193928072591904398453371169635029991847705731087377173476296760111561675845754568520609840301981969072155111245099518738680176014131849846297571240731914264015473086359574399043051801490307391265843201214015888456192746716379501457937635171149631683156813102251852880251102952818747246688215724014183399620171801806344832528494931971064356124989848873248726882042222808698588021674498144831365863834478964020738412746804674620361456518091467098680587672622448019508587770155033411720456404908543329790269559826044042971107078348663377578082645087963235019227291390862396235874251305112934919148047289472500098572619215476471470585104969831276673339316806043679803593241860617993466041211736042826288307583880641352031331157689750478315086646017571055581019889420275716850722213784085316529130865416828230373476193912716234361669101189962572416317363039535715988479244579402557095881895283207317429615698712665520447165996712367396256195309209755073872647798989466686603685109585888212656785527681722915702720277131980526185884885745668500738451633656109651599873911389250911777882410933099984077046113497950273716143675899861705922189044941639569682360075391918415437293638643973431813280425742352384209778315428893277207495204255262525640330595037786205579446345436219022033562124221644950617623754318829231555318964620630929786918993679181875427295923419390980411503814382578104901337740657420453169125440410491221221844973126872621243839222676299386647238113634492258008552295387113034962848320858937501009899774790729406946617301928101720262925250630400388222383425735491816807811940409546009452278364204466454016726210805286741723790674790268997689482124848906984919574127639108290069454001984814366507922355454224510788620345734296420634203905983472048995295334011858256812141524909245394537760747323770799232271438808842924791744881651421272893929096749382895751559524506771128126167328710704308736204724352860894967055842360713805549639737743606672940233322492079094216800943276291369536231396460929979924604452357615605486913861098677802849904065706506566942986110620410910058431733395175123440597100288180560317603250821998814823184972572455290412740183429872919795352668334114528059685390911988561218457406169446479426452752134268629878595315715708073884975258012739002312482206393309646588006335161302507345629555780238899645130392251818388180157925916465964772738243202748118536871009975548105947214352213602489531231797169480491296619112892651453104417422885450907347781598014521695183855027649533836819486430362952149171264489847078052836684866183921709963531030967244203882640796135162090587864303385560820022233430732141654275915706633115374240772467902291716646273965457638665073372447551848566767438781520519571420487956392713530773710203410563616433882693969517054017066244389723459567800558628107971253186408190252801277846502215955842454084301892770257391531989840721270232413391772119978952106727880305792377152771416677931029637960188891508518426115060293401034047304483153867633798201466744449735301789922840255328297515434987603608502080598097944928775714805653803204566314088321768115196897134505680887944829561936802914867001372275415762415282253530079812857217953583433145917598082801980491049303957388554714022099654720666478815455771641804535212716280709902339052842881713979006593934668095874476112259320844404383377748135747525022190391838408149338156958314648008936774151348649682679874699684648705466950495744339567261639223746240061729590099727637173405758511484146069818544525740203420541822985942207921435991333413083254579318758942604687588657442229006580545180304048758370137149520973708686759418466045891664024698376723515486078880970645756467116810206576557744666106351907962471465150570397307346916122157693329758986700603022892249628154107723940005857223536428752395740605271181938232957199361211015610604178077942997223453134899306330067345665192670524082300967508485418014279224828932326984611636652234234307159410762636774709332539801039114290345448398018037151199004126156437319046690808774692472472811607530759159123679158173713555640021087141705753694180424456396099759157423309458624875090559753030751459344585971850814560335045484253168327013865012649609708160661775040803559682983383237683617405335694619448055507369186374917181974629583652518391862883626286824510206292495326754698067393623233533394411945436738135001603380350896827609089612640473377037579880265987642898620295781379990438296625667726574143159009040011230214949950522829189335639496896856754573036651051158470651926387153878198667622112913647579643189746550312484961261182755167657797117047919358663970348748018875104892813271889601227355978749364285475718316295331162072353627067703250481622457217486659768126255080933708834684252948411988179008092158759551951463318976411313662630402568884452756618003132901799430321042179943187838642237367093447004005731898921414161665039540057448898245163640349855491552091146580428452949756632704457096693440398006378474924796341174734772342054594841438868116482591318820804413994756400590780368600365590387980182180850694568355881370906572224509399527654165983827075406573588602575918053723196721193479073304309968320983964510065076839340436939809732442876580548369557818879447632797347139801569594584849831260879657007773435032707187249308876068387675387516912527086258722698926063614165854574008659776934786367147806287065101473607453567005377907899938340224610475624182993879020391384054843214738826675659155449194426540777789469894525630565046079442212913521056225642171133323663130511734709703089733723584432435310171553979857588557803834025969271302032745622977023236132231559612675846377627196017555352208226516673188578756913281817639809562784775865596251365926585447021071225729850639381384508674147330806606103872580133697215635211720915841723584389753915867205805124822871123053232817438301007075820221200245102570196112957403230251464707046564947854103946150588255494654395447181489750862169630237086350630995140773987578140260747285946047055432004998847291569548746141953903686593703140005546613490885527708984267515805633094563571156175851677144977479986690869667200022327546979577912824775859205414159549406695855853211685401822289103492595438015602281204322819397665698502146533847771530361206455297956582631750919772008555023776945773835217767971273061464674402302814749374253469437218026287775286880826691884230540454513698130227459294073457158904070920545020807525229101818252492886750885757282652156877023313413759989299193504122941606137642024098847295326779101143532888744045227736577925934123191996493116528346540472150853552284282688205428130506927449462358551537659824116017822884019209614683975360492666171086376649800025493191142684649400555989923158449031652621620511115213535404563677802191988330529939904850822358487261576367380252754007538036971541806484152521273090369290331634524029080104585230790607578009928853782743103685280785595559547357937630050749778488609013654614776977682051577119522901957870193046500604339623424088222559425345971005139976292656133061951544360717317441214936912898214117378504089341038026577246581417464035200699478647413328151508852067718271080828981225432604361537487310716498955083311096089534121192192760653220516869698571744043437389120647776278762462681758183208207689459088300294224272778704172664281170510379247995998518374953718294163936305304833215647326995345855786710438121807031255266913247573557717915808494976079276531631093187056454955440719709735317194467451659353029845783086091003385059724493130163264377284832256904321246607127198683397373604358339810486274059309879392345445083813201142066311708931888472166102237100511003095915587618572295322791051322610289925251972126996059423115081030896047179374973866015285987457728190100354716158811522316378497886529685276414479735744982975683857287205655392320100736491786084557953130890602378735259639243209966940480542186943200701917240503854125222902903607043608861395684438958172436346060435029203736429516128779296781770033169044662192919297408121726058602735888339876597131171072096762755463375374629890071138828942717117344356843976815525979780867626841107540726299452046441016006788527917250322980816352729132044592718238442395889348691840971777492396736629649876690711872442070567452256083886170443529109838802249290056622296675206125176784001181547543152055357831010999256277015367791331272045142639990488632789491648268151097922394615049979899679360620523919319406333854555197175898567577500897958294862300653206620569820750398735124528441258829943309707885491675159582180969420618065939949903399150053003658692102985074004916945377152162942138729390132285971295096380606335249242572847115093766132785888006789463843735290359550106035959472816500836154212843047476446185158379433151826177045321042486431032960596793149230308738927035618556509418567326583435486007259857423285624941756410460543222785463297619028355582312794589525242172979182012050175605536632657548809535959232146137777869600601991585401504414098556579568080434314219942438251006087835555246073274306354124439856662873778369485480632192591408982544943713506379950639648362087578622559300391410779989468952457032894801649288511438984264541487745030475184213874793534342586505909315057834432889030326927663883046426006207876143716067936186865500006779126224136431412335615941388500125515792844406587364240429369692112977412684724454650628678180796063388067944106242068089299529647004910523500601844146433914339102606109316426773938873009544220516959991779687189695003040352905083959669805139539840757905345550315345037772834724860190262597129915884157303480073733480030392052352415649737259637025413230895492686339628662034123881309670597179119934502692456430564437279700373821989803194498609209358148825131585082942673878268331910634220549154728197658065554610501503181418543933388504536311476568935536579348329679502163028892569297838436830303210448223249604216365400137014900190161575240587963866695986323164896395213661864140898335401372249424965493222563577126287279987156421603916359928765710467929028051912901533174202255950745475730406200310785894122098454184778898430442710638251544516456508002008250191045857353859850099609730128391637284895847124841701820846909965216341754465413270693974031590690034669009158461031201327450676830342740026341714441574739105340951566973076260890505708081662636728547933777467113018342297655965952026502310114609428273075482214340410799230554604406259894828737561293498340643912518890093538748972777328445000944539082683510893181560548206186539732638083460952740943944783544575700653720000330590717493024537185603977167028043116440723610212412178739623253525475571100001582676995315439543147637857695704301784587893842742379013581553180454147816270003910896778952243052483212665932331340225875298355662121719588766335416665645799465397442797401631093687846527214655300357838731726756491141576772191843324510369632292376972653085863644007806632418799972339982975026679610380279440180287607687040169496725880420622972882236373080870874098252652140941109400987516282208135071138380266819040461631864249212252614470825320329930841108566172318642452554924590022174178942532688513165120728757631754994838544199020406313567937941796931000074211857664902666188614646011429442546355843811809529304157361802498080351603736579411810586689088770521635710113261339301308088625629865321798018604354180771946425348466057944824903829028075393660017137002673107227066073179897518534655355978464278157606027216958149746213712664858278100774588461745654190610663915712220891191850657828601854271801407484138380252060132049605660352562567782031094591045282179654509213042859659069416932329542693361303847421267157882430640885761064088657372183784175126854368167149933246048953623088515188642556535532992167650470182665303708240958752386236709459797162109918405081368569190065331640294914255158844263717393228015867358575999035810943145087026698323692433957881766668047183838536255099675178498368693825970542422239737318928398335133465875356380837800921892562930944416519251414596961934985961335243315608129195501555503058167940891903375670292584887004016380938687140523874703613576207718889484517478830307484039222971679943554898680937854072112494256774769264789734356917661632611898855431795985397618738498112469792649017821254461851367487848103499063748951580448427524785477741719662479607799542946626879841224587286824412795685415724762551722145513865415384707568859989721007656327976088038065771089800662232229145945220542159319832747561897325722861790480992433207966750135049865003507312669861259537580385703884938670215687351299092249817484009237468722943048116841021940336786417805061852088475792479806373032332480802227837130187589888150831141103634903994555262463953331746382732791580851908172499843954229880595429719795177162857710468118375446668942837294019244808840121028434516190315121906755176000603933190040573713995044059353286898326288241518876740070637837836640012026772067183868833639519074704329214579276314128599202420137215462096342754463625913678028299626310505897983205861360670522850750466680036021886117036424444350568802614280910155746926023741593359052960334354101399933937416109651298749116654432902079966101663158223750882544850412040624450068954875557596923083443793628327091841466563428247582305068003495510980804763574841994031104755745075942458558078000749310625639599961549750180549957005350842110189657254632427278686662393835250419795682870421924812182593764659464770057551176230625428089052319361744338321190314500599132151121041004387253839554185386072108751475383414149989301059911892289300648712229933433184381592898380469007253499451350363034170424795668726356542616179506793984418170484718758713930663357538262410224397490772946914470265947920800001995025549195049830608616676604536102323607847170919779822020639379040674230084394080730109177529028641136620775369813361696567874885200394677438079382842210946375903870221439361545358200201012204943525255258827108336114267931432081536866991908205658178388214989830697517106669903897071944503516131170615269911009353145011059612935452057125515827006404122788076602321535907684123077114745451519396526633722985808748197890467159189683445029674263847588923847064262482438465960780026519999630759031219165165875616994412247900366481698489932296969184896566263902178575630860647330266496894296550630007009571027713212905267831504109288302152991566444010344562532195745314761712351276885582063946852884016757200476953426067861648973076464020703098931918293340221732125637789801702136659324150457157914255777516778545583967888843280827458178362915443451173265984634063080876178444878195749485289738569555331750299344503986633952085749328624869542403873302096072286983004907379004437872850437963993396437411826289582102414880646336410551822113708305059785346889216450740561295636394673559481888775383310571651140811346163811637426476002103576622883388909201236220217984779398310336635761926188627854477895937869633187861860665602929841997746543730147346350213099019844714116149901739556120798429200767631408969484751778174201114702070559687702636310357666399371114715183169908777194743395850005732238496773563044698706116065062288126862724955064636537832191655316551626718962239463337023896488438202668424286170030766427373464123845853165696889551616946258866811254221078206563117896569260809557273600729542401232559615848943371903189541101261416165177176612125831963278173404729828375710048540448920126911689161192858242476156975210781286240515857307967339749418466564413435002340513599559650842477860615470245346192864359604102944934508702588564018868993874569114770383273044204793022629526659931601817921093181583613915119011731055398079629118793787193347333215663642266758074894216826125329792747947250326493482493560826368568031597531744514842327119801218406468816096452180752211417503297739426439147716390245062696614536338741555923155568189290618721811371109971617998554037541477543349045951249688697460375888115501366777799863021169404923067795124044608498927465111674930965629584810410648436726213067560085359351265135776301201725040438120796261109283653321256804744077176871150718925476641076384902924061352275738264670184264141581379190392857255611850650046413543419923232104087925640890441612573978853644909423818325638854986089828446427826601280465975362028392585941870588214423189890157030844225322425693023913578317278347627798422405239159113441744715821005624939737415106164055333245498064863656885155543611997886044700276665623715276876435982476826935164769003286383144038567425155207842692076911962198704535451570618525877427496824098725662299246447572230501493562028714876712540991789289878102695673100311387557391541030803889228946543957315747750116011066368471136731008444701178546989028634601070619091225601857540721755313909456378991817710171459945246358201028043774564972713901634734353766502058493325220837870038584421057412970087610336507819917294038139518067949874056008212507165246145150331887242662267977747354849828513266907195312577707436509493969393404405962537077957193360372356209788630325252715991543915171741047263659837535582729587186084823531778395845045588902037289118288609289424143638564888570179254602934073537855666514287959134299849311368056166388401505513823906151727304338372645807909058819499466839453056708524230072244422139037286526352495812725380432981558913880474401458270030243499501494307597697320221935380283518002924557508231754957036276924221493805998190120833386158026629634081750068167643867439015845392124046002340125749507692784668977401148795190075261715567070994187757460172119838220767399392623315019909029784200358978836749721248556805189392810413095715421859362041240132888822028971147619860581138574518484067191359322920468798135772218645609393809797449734222673267224455783231212565779629628397284361976241292675918494706451262314940498014476554524140221675797170452231246523148330014807000730906691496829940653323214343534109869320960029607323038481806022244469335193582915156011147962829501433267179951559863341732750666806947819461216863855973460547707862084428525568402727938623296673975441780603741227251489715760263349980096480996843116964474216559602126113014874447479728105446014871655496669280789140865876099606399699670298510038204407449095192091837240815986740326146740459265425642322312586404985069979439014549109595792922835496337941039855350390885481088889159901098168890356307539290412234669654190385294340624301436379747148107548827755581594602816421016130785560704649208214203953010517897223023731607833441397715715536089210785469564862621220433658754597530709707247058505438727202379964931829366969221416322138600902602917479501880781598884801830860321851426048139019591475628111576739116436416969010404806511064569217483082213233355426985120333690436261354964977669361765910112782561958713213618065664733219387519354458010355373319361335354004070644395913296295143227110281798913397686723638362850948148684569293645716937667648056796724357827144573546231722540350882540982717739047114910981491333908505198067688395620873984339108939338676788860207454463489187675675091314475437724111090027196090235051541672785109190055299443912162577843960736334677852371665591811083093929854180606526238473977127811651131563241928441950942105144456929271257018509568724866679191843191455692671745523330751746504635067942824458966621275117800984999435477199249737207099282867293645108181640471435767123269163248605698947763314904286120523810417169324729958328707937726886645069797853647857661744562060874751509505724942175210917913173637565425463247219407412572678509087306399035302722485761703851791834878458973725447262759743136316934909272655799219624231146329983798156764129429102396564171991808418020741718163211702069101369017481546523210048322491112511929658677716484360360607284945341820544588619351918677827117378006999663126333214697498622262900063285248580697842607940271738470854348010184980250926386089383071275854562041692902379164908181511228462692648732199999628433142494946072568682628202491328756789705031977345630722093581336510146914497831841653981118351335629795807821978076023365271685567385966869336021074964755924568146156014609787466015251635859810323810143111442032171779050473576918018794899189116564415655365568123741344424718529065873321784324043936651719808188265984732253252711999813142747416508275902503028675646821857306141683819487575607553465585170989524553487698447566511624553241325963592716693429803334898928881063678566531442690192069256257564473973974423364474835715953080832140734727853865022383403643296489268601915267001175543417289936489195611144494644234084730856996846268107129386431084052347489261692771260974348716356044753505910141247495281968571888495357133914495227887856446296480421289628036998408672190273867337379240752560655392008438116018690522649429308082057082626963974487538488758578985292713198835828401165667869356991210800315337732495300265254508684729103054658119363047255517226861748917489371994118390825623579632628850702227472940836795602335276720374748353307293381334706601119867596667495227329198362132420063939308924820511238829025851190868836559818589152312899627335596800597637647853857501189806937038651816957550911088691884946710558561267023698687661904125182451698952725139387036710773750645752531437972470021661613894818985434947894526903884165334799799386745763113882108088068195251898807057627904762909806732259916889405074002709540437301188834574412113522720154573251241348267515164885808457966185112745821585351592138882864555261893915210462504449888111360603077504144919488100432918920915108386860097540933099970412429209735247492752207512966297736937960398708421404994296657221751733743312494792994210771524502905757230441049176721377714666515218247028997077557930823975879188142928722286791272684290615792903584220951329251647791357536287773383699694378512058239127146285345906468160153586163576339220832438444248911804498588077444597277400040544151171497914198872542660396804744162397681457991556093297438994884167476427383122681544612531575047246946871791472034894488386209260358218955378092346257877497535146530492069418796785418175321209870529506168765522881139959788511318071285888779271989279487884566775306064286104923471354473776953260663045558683181073573363864998015859347579156628394393710588039070822100275541363843000030311040457375304488104858383509800758682817201266125548307642319088750831428900830581664232917930310099165133908949314276822814334942792005268648284569117562156469686785119280707368228710747698405330222586276725499319462996806464535808917857786394021183827955729743751070504542535344960204824571451941806054983107418426542362466912951701318960539142096263645277390324089454181535692492078250387979515517324648591512496218052739963645075490132740549028672140178538847661585473083835093492976816657816761865087521243137300699300044879924820873936179025042938631191482552896892336762910673308241848861249240371245924148931797865858105638805173590446440900909781814975595946047319611167371566964836029504992036048246698703014460492427072885028206440908770444698300520615232235899016080578754503837899614877234617934693439996995922178995896911593618699708950455644121484147485599102252229204022822940828135963832791892127803732136434389054956058142733397441724891208113528688018360917426156143100748590082258604996315902624448327306550604557981336806869543555822444990775599117016800671939531517697672033296870163864547964828093019661463626705654964299483009562227525211994825094178157674172347150743222903223035107793969008703486098055222173226811123618527559371632559705564190201084039647439905689578074899621171468477899163850413178332044302318794010397542233042361900796218966189738223739248274540976201745491417796866378761171699008764607786968729284471127968311118510815623139599167192114285817103854288811460391310393796913190048440913314046888863275240197335019196878292847087982286203345993559273430691575157250688666137720974786956535915106392887164066987445248386851629531577286467501532079613743780143932282635704398501625185226128801300137154686310008023427775203288552529914347476745576485296369550097518648019542344940198483940024077985577706650517107735662226519978284626079584096450712696772845463935722113534328669786240613210843945466439120685699751795906472545423702351379007238583299651305447431931140285756793199708246261580161590640933319886131148890626505926546357398000853161862359949539389593227671858307892428308678790664435642398849861465618057099807152461669900893072958546870214171579033101668205000604624088841135941115741346343359904417925741364232346307632727886677905735980520668172252272727471758491291907196985402574774132378335911606420148467780445685550904875851661611813668598222634899465989499647389362046909984628077152359558084673933662238976128788541420255978435770667877030518251071895935291107743334270622915801167280405111180930728679552662615533692369295619473350130702767896428936102165752715952150071100700504910435179412718803899908968340012157648065004437682077347237242583438573435793107364621681660140759648688314846228370643699977560265597460211645498688661100960966216729188365403922074879796689314447923142067759784764114450546165299098984246589579128018960739803998654266197884958480024125865974758320022458896520065088688123465208661910743221285921946315710626337631481564262287998348984686550188718279487312662026004335299709778573754696159918558123889594658853924851154429094227050774487129446696863440446571689705637082517582939576860107384083060036480586167596318793828306794618765219454231067209175542877568638534663486568390752641091540872583095358358385313719174528566430713568790555685674476649266996734360477107107414043902818056563876129037350039287803042919504613448457209943136453984427268960603582641692262106343141909505725152849822117724881251461205293199159963588558171378336886256506615949985382526219226654747885452155041064919914465235249407653382883698190660034295583492316546218104511282797977148394886244050555624716731162503796961427436313410681373431293697220051807166215803318205537574115600261312078965418518754920934625128338136575049437977092609625513862541814298017134838310263006467959195625417305007702217125382435645726185320999078039687192439243691589362798650590907627010395763479320777372547998523619482154527524780685758972356899249387728964419652754587516357191993119543952626705444696183034414556998293540684080874495817155470899734635776905809187255575788008013351564819437955106594742771312998833230339961918912230628598352314518082180806894429937908755469614711815321535023836095003392341354360903185692069096869192664734368671575339006785183033106536199461894150230999756616390127347731369774317206831086571758810487736664765779048235703557349061000115742224484513106611394523373649971668435289899980232566486891857100743308391546806620931915542973575008199951504488473343181346879632395193640923504175486038254413483612551912936722686924348214308620681238519400455752686388308573157075959517249081202254759602527766168912827843377845074796411764136009554596410773304946651902748866832557097112371387225027869833710550133801571181913676422676056336927982318568425803790213115745926439715853263276461320421369268261053103691684224308645442649874302240491197163076238416956020812454075630665435983804641027247863686420439384486982383092549749448850083343693071751443866757318285429849867129813684191574744619511918056024607451372164661806810511918447470387940083496862402589050375932601271977123566351217944717517278989174535187750273308001733446672596369788851691039950608614805493152720749819965678392808572162067164941181646900989131923043439399089212651484656997390269899612364102795226712652152624406027345899880499765899278122021546536307238741545892564230005214470696074165860731810978410057412405410050795842685913941848558716084371451538615753500448461996621294730221671010585770948221558232746668625111293290947584232123140341982560744072389988164922339791147423153229802278335082189300084944287727257442394809811469826299044979088086621761980412436315684333862262156581622481692483093992745625139639104221487864867957072464734177093373114112963825085715479819872881612139924288095056277575263454983635630465702157511229383639530360895612495855520097134565279006652411613477442863872143185187089475836403154726596466241368379260197194022481008109368048876047472947548893604102513420550474352453501944470892714072910640268127663023330072149851046625119090770645744704132033877396432173310867088269979808326737417478497250474771459651014853089930616459419966434235188955656396318199880403039369200545346474795123380287747045316442407149972870830217799879395955783938783192635718649093123413362137976605952316042515997476794557392414992168784799270112827822591669887452693724039775678398214168542270459793639721043545882539613439484419825357667637649944417497277601417258209884086501564828740613272648584180897668164218515029168024865650023464923460479180443238905134243295586633767203496841429879890961114997822345283074101970777817087362351616442503942667594554052129430537894602431462768740514613449659463360107796824228295867010011203338743668961296735014063552529994282826835649007028235373185705307457022818468884660684927517262095549196431978304018823700524459415284738600410801449582869988453321164729634707784796906546961437314178468309641080360660493461694165757330567839038297939498159807842077756514052787111006273305999144490827918651924664141987253588116938315409702076391259331380530792790735474258418668961627885292843485904949335535388571886815574994598152447841885578567034972089253242261256174294215632258433747651076336489216386312528478165928188521856955957388109844375724183017583886139475804520090628542120535553707069016905272775181224838896300653525081444500979843223840721978225182373839123437398964439078702861999773972721818016559500711644326316189787419032201252845370770508134790262476097022408114048072433314795648794614563720805802353819705678474711521402579647837527016893171888298851316498498922723224218437427079186307462356901119603080994759817231236111983718779998370602446575398661583262284521223661047438936377165535239685236134357630258288887264994047859012769406493628248234437432939744699980797522870203243981102441351762517085355281201922421858019487876363197077977363038305898928170687016809371433087217773474534933432271087719212073418153783625886366156769983306354556643253796146926977426347337171123745104899479542849814962722897597537940407530988876624680008518819131361054509585036634712428321078772955303544410967449111765940867015505932092196138693599769242109015242148680639784666994990390345142489702947542222959699574030102424748855333978564082097999251872679863165376102865177649101455573673922558087641540429795228498915241387416989543959675444652658571991402529507825537689832515618505027069782474693719951998116769819274056238398981670963320062794149446957655957048539813518696289301929830874215656709333042382062229017703166802801836027488744272267659715034876086058150285434601259457664002717229939914911985563778023292002424786843076776297300677936526437629744359271147988018351366800687384616298382572517269682030867207711503415807810034754557176569562639732416230484047842007164499490627326645621009120745914025336532795037198796806030295163508232181287166559983478100672590841816383102373562289590035043367256911311115200001061639472402001943892090901721781947084925545645150696176927185665251096993791603031292640018160408808888289425808571720625339944009709432389173871447200711873010491437484461401585053132767132766407030558430983529540368305189069219903891735497293973056970382434294989806834077225264397272491599137174471259999423982520262229303926285750932288981500677227149402992091833478709335520297527584242758124313555010753374956557002659081026426144127382981880730995653127686851992464948109510006897139058643664426034666543373103958337466466333748750827182717372123175889817461823326345984282525661312051094961604248136190473433690414509027054642366610076428437764289360774806327282546135659761157773468261546447941897918082846789979910097618083485697327720135793519263714008922675802882185030024736573093889846027042024414421578696008022355443639824462501446833136027236084539034718380478296974444474270382877783255772511881108047389856281148534711700101509297757399438696241470864178185916309104630684445823111946488838560160807541869292976689118106930471402248310952590351738308826535891184108313175881539163498108320432562845037818136859494604152316598923602130930727827666061800028135082262816755626487862693967181939168257421422010408480650984703249037518088452589442373394394894393110925441522415184481137005914870335038760878843697222051728295409625631622350084684192565714778374535318106972153147668589243652050119800236526242464932876014455911265714990005319544091807446881766647931712536556758306220966523300802578611545073081978018478490030702145432081582827440477877316486507466354995134201330705760615200594659841920941540177551755845650942196614846502028076612030288285509435581846377029544336115524695516961655831022581457003195331165949267784376394893696943107571048478215005816204457714597618359360331736664977611953235545771114976397309380431333848333106373959854457837332541072278811000081258693140595740396256621506588595415412048365875525963861254893796095888460455560205689460727370339509478278913558064486310156653245994118945526275564790079092681918950878034178915836819462468395728683761224871892018141815316068934089735090660676404966403155047581337014897970682086469312492687648139432202273893845953983668461570239549464558840644151900415997873365243751124372563852727363955008967725751611860292551105861752663266064832303768349938403329488468783078972259099730864721508834887281738166176194073698612394938554842356379643662088205304131322626656726655099371533742197428438316547083478325489011375339383883626033267311608935846908885535799201390310917925811023942408794191329512868884608896988235358493839499084704277645397000555168054933212692697148872780166822584608736944535286274166331218488892615237865254044874262983032338104770975385891822986185253445023310776411912648573816406757589026465451126701150879404584461367378093128909614467132214064701560314277120228225662362823086204770115583543974364281551700594094856249772452531287322398224272707455244379731663579057822323963368412949703217345684380467029481265153582222889281034931173037208859735527233592803348968175982048737021574476701810880905904493753461744849592128814751916641462802597937951627433372954834926020650726822961616162952006770174057167218214576243382374379612960532189671757920549229536252826208422475056423107899327675008357355905599662692930836070200940821757079719010034069721843822300901315324565077935118944599083528678502209695042821875094515033920200621284178038519586444807032532823779769134634874218630805405553021860424469113510776414934962949968306060028864285697862147375723953774524409947165273998356227285939023049977701602054430547031015088777197989479506069622946040824877573085794060815470672810404589660453974487134318445217564408496081008245592189427499723437770798959743048347564436899245170517423695273453935634458885142637960104608976503472258813709232155090780595790606327717750938714954446310815747278324761653596584789747515187340995206783944174197046222283410092885758244565607331679626192108476123433591585519085690360152967121549439398837405206739609848301553504653434690421453928967011911330818158245638682345554437494971290373955727395833316782504559247792419820140518668637985590254860373641527835191126367884837361305634651680364239040172565035045265447742608961674556424695649077142071249027581521838112460626592782563658214864559029713131463669713413544609955819956572029747906136193403429470295056875770172481183400084488328602378576240186182331656482241153961014324127001359449544727215030669508362422275631175921390967097494040636893716114100002424627672029728742462913445437624771712404485205619066319456894340249679349847059199316766850825895744918599857043808369337681226048416389442208299263628082715783601587463296569383551755532592398625425024191853822401145748372082984712092276746839440287331601340202625646720701366950187883836087982541085163922833643933338709663957972925395852948853027753116457378892581012822207592970429443850892542653149842238253276973391190401615438571420492897690207345572784081768042318567014122411843866822531107908785379205975948117585189813934202551281717851476876215011762409871230341288153084298979292575019949943382790640975735773811091432215172854447411535918176349858750597839360161054198174670520061593662607220403302824272355177642688698573028197330291463930579287824741728433788134677487788550505536197809089598252224398519518342068854598678547249685784965819296127980893948260727180444369143745496924091920497864927811865446118804121417280081501906558757869585765003060294497769463207567383644536973863776911563463583405733717091827115992473396533903373729272951718691639751798338310336677054978953853668075092319478618934028955035392125305253598939221548584608460656332467528311834221216098461358708149515682450038432462089745306834454651013722688181101834521026489721979811724849338551556826836644581765275964217284812472928971282436260253169125428762862980773071016801836838067539160138974890301068626062947505877379885075341749209787551070994445739118124580222837334862641399163558504371625293919834494707823171564155124561752314199391428831890972438818832872821428917062919468144896058522028872233734732581460692632714581235084734008317784666921891934893919655684264601048908293349983194036067928462062013681984885988680181026306937435529834683317542651186290638781522712451871706078114924561229730993373683046772549752459408049070036319182609057994356357310168942889025833445389595670597172295748989380223067801442458130549083331861622474399715413285648003232719824078760890025975856274058511171710655617742411856958505643234548289392338133871043195553351778881409882451663481319275451282207034719563146212032085267092422332918013518423535811475040941182586775555072311423813110264885221585669295163081421683843665185898419314744914690214122923037072412823102320234578652338301983667394352788428490695715120136767924547503851933504787016224077713451807577660176804072602348730168902163987495346740401276505353999812747409124360377521381782581169635275838243937805937846204720832916775858144821648346397220315023646325523378288467694700740933508302319264064487533234445110512192554429966614177897732515289455349428786616352019363956666838079031285827163404755970423346535428039090611462038947511128030866894465964494511568939054836330918528001329986554961660852096852030655372066817259778069853267845567377224463559383652340499428293674379327934124652302705921924031026815587162744756530890233691078390348490423936691824888751573719548291174872973512197849188351348946248793332794755792208590619525445739458057084961020750680297407450232693587862496723000152396028412675820604482371562676186922977437639162561249532082375117894114703386471905162401077204527401978359817057551541912002372324191485251242044050221379809347475582393097658042499158314655013227849064620719079718782595014467916516519634792167115607640072967763144351288009284984423037768673403574726749201653471586724328162630546930229994688945637003879368086627921531527409596067574898040226067949919273068223046061641161458064193233389343273360740076003099465096154747446211521550837406514925193584099996416211824668894017093586572079372094061352402441262329698815756353461925392820385398327620601469822052453534431932593906569823406007622156435203954226396154959626011919402284611628741333422441035349161033885813977470002685193183174298047618264758779380251179866913121548065793963839084285070532688048490859212939164154379499636635712839789535517117787695993381475729557687111050594010800619362437350063301204813058645196419025079031731593908789498195378325319948564048075796384039831320863104768600962240886386814213018562174234640661095986777044268044336745148179671469287993961648924573987822738213435608505178811516702834511256410647283929347672104974352612171742736480272633721275376142418086117207428361461245469169654184298726204562518342675759813659460587834095025580943035515172874785009045769335086620583700561210137426311491651308039801873053646309835477791475040787012175416585220567273068812306397871551465085869303389980686095056669510500880965310546783225665101084303736247844745942956830201027015271209677469288485132326124295849687400043745616689605775317177308052989272496528514883063819986843203249571545723628167305509702669163431275329453682794359730345534328191183966933431194250566031778175299479900215519517454954892250383654873176807769617821797799548025524087293921665083655424888320873156946963298187594996711655096142646744163323526954866182351795786371470491540618687358738585007491232642901046096691000298673456782986711539830104401783832144441614381123076490686235388783293501181175915302141108363833109759539531314020873022741283585126021193841985700106185544881111375044610700889970704006245917580290212166069926184807775105221278610467909705921052625398786384539975443164843675230016603867594421702544918331965730979969828001637588445079833171736341449787894945030515712771801702186281187379510849910712309309841073665357348460038595245853745783797509088126058782883386830052062050880005686857744138194300729279914677348883549800901608451911768170882257086665311017944050064293440980654965844505423387153611231544254328413892823338748353630284881314689862062123220491580135189020214409704738927737092152021426394057709965272058688054397807026282408564078893744170667945187622156987544955714626436247999995912869332072532935845550927514088583760353991575579912221740267548348571216586265510407434869511274518928652960666874607431198687401815553258753670584417837372242089113428865517563299987310965189298931558430672990195321186853629750115884678320642420568774573062957291860764612024714961266179430790022059755035285513192017085736473067671866287952450332417679840339233394282628262200734932324112014944618007613188485173172676333235888147769143642143080173910113691443744556141487373067400720017108501020723683228232508406039594481588489827977263148763503301567459197993283361512754847470810763149813483091989873824046139300813997175324010089123751506658909192753146579229418582389370609344654104782334219989272805196793158107912128513166547119608381844340520799494790638535709877400749424337306443318876268882355884333527289921172620409628419726521393422970417455454550605678578630549638876473070567427544170038032511349746932414140829264452618418328054149124226850515829165414940798899171210132792571808806556685725080273011092629360344200564933528852056452428417990473680603151494927996768375322810825478663978696931845138219466722116864302308497651166335137901992852531541800307454969765056813624452213570583803167534767831299682954234069610298472049687518168920434090991932021716930767801875421068626868605838131052934525261391833386705559911310987605232961087429973588795432129667260141193159136872306752150708479329211778486033379837343467775481831246442196048311954441098856891499655638959858151443793879972672544237802343514951550908015060941800338034574103232367382658143757081418738457877356996546420589338877548113553049844797457635780764433958970048352072998855243151387154105943518258286380164374132904941339365776255780580669027849876133684708192461469900827612609068242181843722394890190010584851709031894288064995703038487662957832233368686878368913840752893678436419221718933472264821997636365013351923289549397989481888879288696041004152393932701520772627617417280942844449235634641741440110781080386468292579341672574249096003711509856627990699886963421513878629585782881001856793071915343796058929989922323451499670111975071794906920705967284414063742628164954427997351780037447973715527189860502459556083242726128829509820928993855327301288925804318353621742681184624176818413777545322982509475950617438979427854776969847148513326679538361049048694230797108697229933671847986797787079673786556178443072771144003717224398320944148157607927343094894676607007607966231872413910891031059973038374410920125980627178615675057802797219278304098030646999560063496072321655932240372174038309272647952481982238504289207585840012609595705437792228116144142988088374403859859167413631008676129802193379372936609958794622905101142305044487324749021854359742689655265638159868220515558014368588082627591682434243304491579499235018746210424974030508704334178386232069848927790406751162667619723528514989729889574670237373579737874554136448452951679093831047106087431432959814808923070852193204185855248652897870917571486295357670038760780708572493758994481500517543523376722596735974536134487178843605518375431217492977918952203848139231047375407242946066495413157281068296108203759477471752181386816432037085222318513606515673367196357397749320223718231848265975427708102897788589457514555456656899934906313655293913222920758885103811954793579378792062323680340569014826587122044715023101113329191374494910170046344654190938775915468321300662339521423706219644301215547075959412171396105993900544649180396261391118803793583820188788297178038446514709102599232795439286103861989889198632732873258331274615863169125232444086786627873729225728878541112871745063750708061739444952376610300542833596739933449690753877066206509223569373732730251423064135716314147637166634576566219777853278872486903976147975917470822954756074817894472482973030392059286860779285180710489433034729520825384096332632402574346708962840985313488627586282790459748527277417298270544960051958137734110592720130600142512994189016058806640172676166233263284824316270827790681521739397578646763725486988127695705021370172487237120979819016191823974512134208258938572893779876308377868459101066303005875816072668177998025123068275136599377050982436163539143360775269804011550708319794038351878583838104037992179437335710118327660844327097717990819158511405657839744498166523037146814719647781479115263029340646069991308446759871781583208765563904476113062830600334321993117601639575332531420610866290518364361227883917708782679798653376889598423652934916511829108899230709806460045308465234426002174429554084651142499312478211731466684395194944639401948307486400950225894309688256229867629540385422246965709915555477392516760086222019516693681151252529633639754925500995497591695659109767072273950211727049730267528586716152357108867351304950775414989060783981475224835183223180332821694859808562287148378690519258212807672087522103284446848982578816741779195483449387746842449335314792543171621396034286148947992120284130096972342255261957968705733877241142441204360635345941155113666986116792818743926622794792787670059088350632670584538212213283112931450737262623779673846921718402127327112937630543589819625128874360623971184999626082330275210742865744773403508345976991462035647048243510039876335652614133897861070272442518018765561290541406610740883023999438074646931615491690613923991365310160983069254671106654465507517082268778295871946825433308156835759557590108989802652785446337320177018214957040925132938763617306915210266282527980585777238987335055827157117401798457414461568471477247548124969128873801105510207720488103885346952224334338706982562293891041203017631951886049112688081766629773668963607218058712494957311915101754146565590291973335553658839383608161693316258230940265289112592945121660204898589119434047636661563306816079380162126469080321872078619080363860604835607538903927201711661423275717980768956381455593009874828559523385342620455439000557245245171206379858189514473456980379514203463840253631525542466975096060763778161448625033048762282992422626250389282916143008026376882164022237481529398537316879063666511318150098482989442601128587671340848852609273320434419803079442367011149414321271205153106945901624062285357353148475478061287478421011148893695774525312131626668364177932735550409525659612233800736016395924427297730518517236186132592088130003919066905060033602402090306883645857883056186868943157973964430873229338825456547408727843620296696410551150793426184422319705032023653147261863632385043817687939491623185052470159774399587217412604358131580572783031638616108924651116351185206452124853511012577273007783644308115182095213030868546444211286211643327390221191661405027536472510817811673644322613377318867529561779765829122300180309590110993111972434381439112887119434073433242876284128541038710172406598487381065950305423980923800301176408354772381844580937348254271654329145223531485520243084036093320535893553768104123309130910399649986810588844820645606322401442995694753386677425557033422732343787259014386281827082203690633346272026213530161084784852359963203791018863902341232654291776805367128602320483281668837122024654303196770251931013203997943990607952003159857603313311342957695782992750686155297746998889440945386488675972423410485788294198558428789135066643554204893683117319159675848551022168411912406601059231301418506943528737968140413764580021826097422926365432665414474493964845417865507166636902963723842226619458749032768394213030557717257040159548486680946306328897323656430217958632927422997753110442842808446057828333705130505482186748349594391606815430501984433496002147161862032350371688369801025330923447464966457371008712153501613537551462610708504463546069861651571704916635662279965577403865297707921892059163424162749554304006943171131992779194845233518820469932673506173746584715563052312369351077317649845799946523666949417954115793095239114416153552570214268300650024750250152277234681622558161012455032961500650972615521735941286566984507410447549386831818047364358667859352248415492330842920023948305200483105503573060889800257433687961925185697409675170916755900828722271202547018349824547290712754272834144428108260068784249969034761732572821405940321445507869500911514033295310761758280454341807824022244574281254003973919366486910531496483419494049348938088230553878356647116446005513331711886948982509658381854479113503425715435637211880929491295269339339667670777383164629159466185055712364972481177490288514220699537926369450439524135222965703549904313941089295343728726369706222780175270947226125487835736944751657703932042962151214918690323279337495597135350907433342001035862656842178689758980658554535603329709102210715863960307697663317113979077101128812943934632742519953883497452926045614134846576009086831615249176989940507389281873050962981643580476381110187056189220244546288199401722473472037848412875206024595169084181794787134729828406282022570800749331558521640661215221654021683961950875166895183200086986667493499637396446576660996804977174232484044460782267719160991679497599638176344320206951113843477379943656673644153688531981942825685248096300336835063423275354923910688726250336188107314633606425605372347919939589154496500534203235940445337861906768174175840209885628448164942226646529788813742700892833465218767069304373988900907173001713356400264421475600052993604507227019162698885928080500384074856480968411409554190947415615562525555613407654318179332251845885416010429279175984234165285608102625363849764113052378090691335214197710108297912534841409833169082127185477473823840378655758343063562194037862047804876386953381771199842357562642777581568051272015922832497569193913700125406394073559175875326055317863988010236502004703640501678699173979688975240374470153223862507521052559365667203524141911248171349500890537006393161743406091832701548248287258715295159500934234559791581989939894687736999569980508954761514087468242407632048192981900090239928341998143704972916217036855141472690463323394875017043273613608718523362546338368217697359446127402827635839425033345102315558686149785877510090263622283707214424767046898452219643763515790732251596110284285574826485297529022129986836229086395926055965209077421398426858941917492258690636160503084881771407756352716976844760280440515009995665424631037599097376048691310481251265204575070069869979110865743914956753356361645141742707114834436704523207659374020658055325574506593425861399229246184314386458025705494465159864655421585847222110146832031326851053907242487551297686631199305185703820747038328231261907009607233623080725598485136652772408748790108043679507972465703396144442304307736512026204475464745316869082704882058900836808383439995145531281949051478139204660652871722594992496275235032407306691317375351945007182535793781238904991881957101518405845505995797090418224189744838277708767626141546967995524416997656920060413114070698830532782517537761921002886029976328767025869346464956879319768582528086661580065775210218291446040944805624744693523476294980476024039882739498418074728307837861077094761674008705694169568127876133928468160916888904065581510609828454131752590616502962804980088132315907566145723545095028342307132847345666027543593523533118534509555705980259730886723578612987714124134913270595385635344484729241326671097929627318401127621578640826971593426526197703419361688402003974988067497525680566736187475275052844255541635106908148616332259648522520350322716334882628747406710516757775292635209883746374575031937362247291828683932076635008399048728655824221241146002551103706963990339875711716727874835077231518206616695284594693632444061421639599887207113940607378852265149312113881243563901407661370228060619416360398312207809361451080382757255468725882419341801517224555917099662817380953630303832137614733401139717606627028262787083042606050972126430390076728118298697805572480471648098459609297816369266746574747164786939306260021107428101165589370174539803824950889229751039371576404000221697972447738554331147802398601623419618950299556429022515382879049791296934963723381430483456212896045521637478685606253955396114418040702949105039238713316457387174767656508057771799162420059876484787710404300074155171814163297117214583291442004752836083182419139164950544436452594689089867876533567477389541489079568366146442262938887787582113688433948566862608582699857687057629151167365056869629572131750606712406842199498568606454509764946194501412073521900799675913070692692520424326400034773592790683838891072032306464862898384664240476543428021518326795214247838309060848466408934256788609422423109678219610497025698816699235167545380987567447015761613317198726527312743775922801472727655825641703823949186903825236222455510338252194040933407319617640345317558694247003273414648142871358550170637660962848533057053495395932229138314713348702427438137274043975498697954124993298771230982879034415827899123079966164269681216033644109731138621052787378363373223094024625719386680635545735332307258025380583691961752348641593009619049183738472847138075641112079885445497275933348447326235521756893174922430484413949991674036110168702370422451873601756539198387808990818658880047806396184311633749575668972610858777535700260679194200764527860254581374384841231134909759177030388424671271909356642638541502850712495881500118789859602691721674482139566562402381911753514156178179056439849634794418539789467612689625656370964358513420852310387052696344536103519849333595759295565686017816775580552420708473958055392918375912082339275614252935891079101719871313477042021793919558959857165014889495028692469559218748642007456525676238822976328533793593461256981161235521809066442738894090488148458445893976308514904690581442444366225993811365825058561006633108062655064630482637557163938109961179508207135013316978364614763793322343300501424113852024749598371432722094776565777800998089779928009971716698137212112096817107736878248915476005514871785133004654081237244544348007589988131400436264878340754792191155807889186270268966850843950126030802402598818310693268181135278778238825922211366243237086437915520438276283216188930800522773171660564650601660986938251270426357446065193379812077485849144206008522087299980790954695899189591878071910920123061246728098046681396083001334473515410153438690777348836150616108309412675241280476733802546092905873692559611611994759818742305439676133378125926578623110507543498354166912922488389419391734800079199821499770621377450652313953196402591571563518744091444181646879551783113347931251136781422020035515684984826694448019098559494462176911307727660175095156680338523260908268442124189426519475511233439098322170362971289792577024068147423219226358170548216476933118084719104199252126731789781432346684996035242636841912079078883048631134272796819513055091558584607110303885119894374399564462747276471359533709131707537771636283896504098947293048373930074317496291430479757397957621074648230527032176303157165355933927300689915464870693415785825525532804683244350987318697526979270482071141766570850481662481546415340671128441725301844506154803827005639677069843119976505646580221865689889134987629813695557617824241690739170795979920287443909925619824197234383708117922718228076492172489743159104428167148951611669498633850515407774748622521960133625107123904920175298983436343714343615489774605520359551941582719940596078900810908011898589269026681077401112853271570600978821512149116183596984550110745114060082149591840583219816420462251565400238732826444017394324514237932072581347627294016340163656351365756192634084671217546729921829191930049054542166642507296981265401138879170569921435326709745248834368486094505626808883888411965059925105568513582532230099695654570423608500924643973653813792719680764392393843073183820766840261793773123171997151519716015799621688413376925530594991601867488492509027924609850033400117957264604493176020708142849875407651551482914027337764512478957323861792099150950291353053846574249773345534694223087294241390147517351244676184429575790600690824057651705732994077666025290552957932072264048483403929995655167630962032746117447969214980684795017882467465337609911382386021262372392314797839686933971569130465066161989400510105198770514725318954703465606112412121596582540315681023204619502454428121903157987069666846445540075355068241823694571201525581007748998376308585704165565461855804535761533334273339034112060130571818060229624179307693935961463565862189050844740624476915334695965480537370137194307846042993376682622935178021360039775355727219114488945557693383585870730137181108044707844102743221080953205869778821849586230913864264727784541003263751362890731644582930384174874437709690917664919504982912525875435491797666497619473612293376314882296816998099291737519500896267073164900561884928544736325222447120713061766687238313304205178997442076401366692987788468859955723808328890585691172030669748407083965390939561323177678278619520515013214939062041878974207491799298535603028865304113682999505277025712702265556195205969586657134701316873689395988092558976116980959424765591474365569197559706178427249910493191739116535618249043209053658532131510914723068764550966280310082736869828701820001613830177728020771111229687724062803420906047104163171456350000749973918308324371685527975961465489600629222454830079429198881345196779757600205863325673766634603656701555186054157840243371217064985002393267699308445752289168610552457030362040069430973551470082843003200523116764083803155392417084820969358079474472269411112936295691008796284078953298968157915455799984708680516377369611151990301623020096075556247212446234484506221465909422449197167879125735285850662969795976440989252143836690866559571022092740342036374015746398562485358316751799613093607411001510214957705909381329110955247344262252526073174895691458884344362258189762431569525892595892515499135989511874170293637526744767764686957212878112527812293246694211884231791522803497872308092768937821172865740572505926440173064869081302058484115437996796740620237496086058480716337692157356392151280673283642620537564972678723294399828064074484668902909255297299074750191153999282998927916092713860612470129496296085875331701101156946148999073253361549099513946560892145608325473173485188429148702958316440277187900317628353228724224477888250503968136181609971190639354403897472970904211643275816744943948505254601320446679398479131396099662923654499298912194993599887992308634450460445237602056086424799798695693643786653987204361623068300267552380808224799915174963909874707958382372198606181023750229550826783483802134578364513478927170224423272631451164771296219846997967879599898733082050286111289254140101226178882257166793454341947187524452281292997961489610109146768475774484041050331429334621999209340102505671330729227435057094320781191083405394713741864133928322991147457848456007209509190845387185122656132218764304758521067763081247245919921477007324401418295502374117871118015706249957025764018233593932015985450932994739439442903656867063604634792989874552566560325952997403835851495399199082042892751625339382917802971757437810871973892068116080283287271170410006770262440147550204433475003791668182998400864518508791641451996206575835556335502611687719175644136030248500969647727865607240275918593151702294586970930978112598420793570547223446145653289267463960311902938201197641896078675586575024454708758374499607668330596587418766208663960067276873921948194605408853787768380094531266298455234616747468043828331980207796436206341254986953106705730837734157792163249862448182357282926542999925155682326239043732450420857153381388043235747178024748898210661193793492780188573202990650431910902560375994553481455076930077154803675249845766563182348772516891895504819018765927226993400752995451645914857465707013619277788217068867184411341215994433307419863922628194854782811581618559815277379290585797840977537289527617688899111796683402115245349376496875561261877273680967449655631346950849094522902787657796764496395327938365168252621237693684017170706637580437257780333068733489608556254814279552021530085603451209722572437897265125517266094572556306893354664597979339844417318337691531195867408600297004983136146468464051875358248266430436475486871030154452489870685098765869066714544327686829756099719110622090197168561294486795368806354813029967749084284901762087239159247460271829254554098513815144341918312120991119581366268187007217840821248595787070397444460741320380982506283543612050243471269688520825912150841826037116868226183048777672308195259152371279319977285495725909613189727681610577627843248030942455266863228881655274394739536620147899342585508438817619110171647929622907367442277496851039460728237405608675046054938770091512247959928766631379824002169681398333401452997702947301956265254218708049011868772923691988726458268346244379412073413437849887879915070662240624673871665013897602824065403180711394047607091258640840020204659905955892683294242789639319173366585150145595837794327682414537475303552871503404789881880064149846511984924470795275128249423679523530303414111599527138447163919762239800213102042414358652420830216204531002673092347560242646507950154087904165345845969354383069899571000692364895666598085574000960394800323717201896663209337290663254334003838927341652740453036988956406878991606956637745945519214269360050811553577951947469081275380273682689300720057333448985020792913825488987657538230165779703724984293994133373581111592803899692025599267257648501237872938462149268737443127407119310462370643053129619294528880671743422405590178464779888323188969952336459940456976509609164154540064812867567167963167983074219617659379267045652514303315083550119604853058167351627505585602819691825980618236160728376990689042370022297819260188969609840726675301933075922027260520909165162198266996686606730378562045073690448324015165020766376270204145862114617287328847909639566442778124230130923149639343849886614694616026070265071370862936033814313537035421698166652029003755761141632469953116328533010378696295919026653500741689893235120211913898877711081317572356948718521934951354679806653844600998624147745921593847704214929316127991214783577520710334076441425862867474293471470061896983187383078331834165764098104069505476300930265550077078453899260807485488931990653297814415290950861196360041048606293907165687816214113806814825368436047912325867521342051999059039328102801616692458054795651266800446046847969520842922692692383320663882603721137087552333755352161299604409431805662735773636685591904926123786960224741381771698366776410131200572797981399861165112733331773430149395984601483640822356963913782731364874436192716154167034042777532956288808203681224947557285673997047722608947814549812191867796057855337184087985028817935384649048870526549380506060745145261881450655645616103010841165803878819821101228536695186449939492935214283664564046136980774825878499096128801519375087387598093788645070836358647839270650689793021011924696338185850187029105081604607266425905557212672304787999594215518787581126849111894199487394368274745385479775182977642785723454919929578871918063117876261991230409230534664896408475594296940509947798733111036685318778292782970376106208752651828187940996854586116508180037768874598289264719698904108019105296220830150577550906043316499983104117942682901391406889038136434924434183477015473745557802092136826916609162732947901351983988038874650328267869263135037632586644438538096314751231472490132237890332274630188656146237236616431692135679401622375406360878032612503741244463712290447463511365272636290324496853779478451755820223710206734955167343552872166497828721386077844627861434803128850482644423853603940639724258801187257949633580170249296938742578153442102715133076810467354263967525104397505132888850750259750391922853398421712977843748243347208122597218611567559692435846729793131227165027291482617053571080652476137704650135025063475420159970236013606844771206240019882617216457680293023253034097428512256094616651425631090258400800827556974024385664053945351803889854520511063798972519795838729174317155437971017820417746905478644520517236901265711001699380914227930823218086510940511522865830530253151730183683255167617689792035083860727391206978576589507223225544170198851550827944308360777521029752721881222193434482025048430315974115293003950404210121729240919221504774568946414121555992809877578682593153885944226439863123542121417747748614655506922709594877286054196999645533180496982643684779162674552921264720060229919926189459395010052208359085135679929652562455493869479076426949623480815750035766176338141690174584626377476585309017265298049147642033105038614044851190782307219306210114872074625319914943947941284877355227845255312186595658788986615502144775522728996786922110901148898877172996300655305235712711663645822352633671424632001863419333131656142065202039668254428621327141487410921093319931029658845175314234155882985421998818008134219237353194369716117818304883342440554603845874746205006013445925501580836029823990431388049988815096996809247534210265117827258154483570361158071290691204718854719145852458681636338090610556718441137549331836325468046901906477426603222199194091450203374850920265989309568976301824444369946033288680181748444058069653398317098573558268774730077955254792059611992239261673879625504825123397874717878365593097703659109398154407392615848484288157270902966041617002577675174614718150766899484932453536730925301136121092312023927551081473203249896378788879801767370732913998105140771698967948845079765167972448636328760628515738364533397017474999854476914790997770610745564293563939871140114741560447500472691024846867657845877141483089707409792652105661833899325278382864789100336543341683695016553645346768726102487527238590395068623529825170251023293438348459278915721137660186251372453746732426699873523675112136146096990913929133825856002894721768300311568343086336197918671034820670318116523436190976830045882220729653531563564928636957308253455235375059276515114182435038522297150898182448442663045154245989874073041337454205331107240448619094354470216791969117302414879999077277481082315135007322455435916249107611927574536767729984832823535419032158382236135705865807077857643745357548382910118303192892067009923737263787270901944599239924655901061445464702401274456366059195536438930883552492227647807789216262139845482761876714107103230192325435188059058606159870286692854708448731089286422914458861661218713631620102253265171094953181704251615788582052992086070283848351753548341562185845934424297441959087627547964851459019776985588997727609200839516202083423331327010454072475149317518629033912941473226324170628668892930747999571082352984730189213895500815065735855107925850343130311609069196467164924126160305036313441352330946839053128811365066509156145311358706183216317412270185238120997681902418444531462617354458981419778422173176384056602097853686891897986388380113021559540903370348640235028499880852798735080162091656104103736891292125917825693651730772596556059283780194600566397531004946597212122041739399356395998763693564787921211341386645277282795671194212420621900761828886788266658647826263145167287707258022902275504147908226245412107437575413177539613434287196024011334770661097672133776512345002432106525152760676533327699823605875452636683709256999607250137264314992807888560879749997385829969012875544712586868012486432795440598812733020252193679121013869864583479693014364498358939993173102746911092162755707265585374692577963821726675450315051837279022226172129334030744973399172795698697886488626193569445264723506949570476850339022733181356205964841181677515250794575248102999095911734234979439439599053559764651187294676221387702178241996811501303417150927085870938859345414817578877701756474868079309466037270828688931191385370818360817813297059287974469835161229927169366049462601061768096234389617153151580990093115233697224720110828322283453987383865405719755413418891528610169522232751378463168847138621466203357549806443480460312170312578552846528166919152666660024653272820982184362353413651794112756819457798448362538201275822404661134513853292758564160273464368205833949476917158917774380867697306299363749765956542582547091920571937282654654215224113129558876355928725887223080826346801070372867048783061981429605583758518228291982647062630071289605892915471208319374674917223578511879182079832718871020296908780535888656377558187182583221742515768406837880819438172121353290113537591902713000091062894341096817366217866552874370621137800580599655416043531160512612215632299699327528031421068779383273771317801741711414471772162537794349768397500267085105581892928452845710968360383027196498834237903989573571500348511679892703296078663120372853106048702099660343945045172070578019310254162021258978754547334928350693497990922823368736306673541784655830403802740530560259122002975787037185567771610787362647946197918677743987160559954110052551523377686305056369352264963932746029925388161840172395119454542200163559166223835793379847082178785504857488482631774588477301181431063213609575086042505465298543016322554355531507262653358474809463402729744804976474866300810717804821488335232456733465897273687646340576620715683748754041894188928962577030371177842329306999223205762778390582236123075683786588163327818741965939793975778169998252958047368622423619042126403585346434615363565273031147950993420741081669569568840756467748871384686361158136044615312867998633506915520259984708292472146022663861341778235879881194202687127602229203953564875686511257040691546561955049951694210546016978235761622162861332181118376415507700207444529076607849085006698329550342063717043490421301770083574724515404963235687421358820163482974282959550414857900124305215352446140426585074216817416440705738393642272374234973698993749908747225005382938200137608764063462625811546324123523681897176409040060137081144522804964974694775452230692806381708313224792154996253291479164144858718520275095771701732883877236123300830885873359368745389819178747076110112211514815516475023877972766896300792678492953997833771358885148767217300519924498659137109760132323184560621292175442513155421235746613150070595717132326735871742926251899366866028164004944308937093945456908402000454708294811963671355766469141158210952251494294860999121741322485923420675625365152309882761979235789793684717335909919142794881030172481721086061454332817702840342929317882077131126670073936839732518467155708037867310563747220869346046187078144903676226559453799919686628844563920879811067428384051552147444495469921975877861980859983412980958527917554369522240972951927689791322423254312270120542428365044258186532169884661968587343093736883663099512999443251209609554072216569718937531961694412811553280584083844258558401720126346325875936082401657234914324821023639519045428729246061375060451308407498087362714282109582521994638627487365887040364484449227712754821136705248963730756270326159352722768752294585829363870508514904749462270554753520472517934823700716552553036819763075069538905649600418996323895354762709175232031546251435077817486341208702235117882978445256393556030878527161412815164436787678735183167364084556526409061220308344515566325560750409290066899958468811613978258247326655627702846109805716262958211371103564855477344256710177212622688711889336682600445557584118090000449524554914856664296794162599942087548976863477277113468473597475884845384060576661368453025404134439236981728297005737228292734529441397066057596601517855282564751599302891180463556173311500812647869220430711355098604048901346500362715441067249492478700102333416629864623466250931814077644647265088668270988520160096351005296275219647900232574091697626693680943884907173179041101360494851030897120911972551617659647042984149070425223141456701647375029473592841792107125439783517042797606769021945090081018216846159962283640662500581061257485975111314538477532904086997591947137900659934458552284866965474954960166522156220016692429492844938245530673427770199696343709875070231126776332054942962463435944342740922333922046781407903121679646260764007963105735086769709409034680452557764161149140570236165392687434436116759192633165507519002072914882043341803583834156719436117471175710807046740112483362332246991162055541146266894727093944593596790933960064317218258585544564581903496249571630733723561565149619394171399621170248487070703788367008102502344456560774301176903097969627449183059415491130402067641270104596102703448177122560541753420914925674369961885311044454627215088762745150979075070230220411295999452785125045304583735931628715627023191465427307452842630169157483499728883185065925270189427316289724075345565903936632274695185458513538615813879097860467366143864894941490639866330727252580378996223982438367982340679438151811942225156105519860441006096238537313873188829051624702131571529405636129139743120596302110723271027968224941006450429065446589762854231061987248507720532587460674364859077966511319756460790967194225062236309454577442589399263625991254396888717903059351973229201703725204270798104409150427364160136549858844380842563206165539152694097093643084421666715834804336419465740210251397022570432135020374471836524931723925788557506153104791754941399782211808760752208317263919862049580091469091999023391008730246402069040078515736350012666525690355028757099850541805636013599992393091664748176984996082849658399108803300921988258205531797989730565037540690158871067666814219431307436734861925492367570593638812780166396379467459238026793807881845949587654710662758867108783534773128367278450657084468509577159105422170733734809808460575819613211758083495380067863685403938052493080998168079687724440845059638377351444628596406900106413194875282092278414391671264593001715796047889273644466568887971072290318109383179890432140110237925486069316487079097296814091673143924732317354896731483418499646195749586038958109517898041399964554720193945253736654917922181612037697720720856282776217409492090333698474118607901391754708296309968789733517255201293542805358458586612357296814432826293122955544708242736777786968253492636579876870983971585850399751696613172222075088520310256326402851930226352043678443950085155206816112039978262344089777667470776638446548901792400272461342096857858264115355168662134912891407701482668171375688585556570537287413722611163859993421957408616646252400522836883583721013060623231080210160500538218274617166074419370844833611561706269025014234220407550008321083024215701132441389175856579702370353256145650614443972902544754509430831586198950545194839084157685889249640801092233468253547000212055429974944464579218837310105484814309032137732840615317518760947363982357415083934204953869534743420849901875096851762895212495397316775046849685962975420510326750502261136973937391530698168274577010986212408809349537980882885777603350773418434959405456625145114930180678984810461042900555835289916631133278117875860131112966106670628035135069621813583312412261175018917909126816757030684473996895126210013195271408044049413643082242556323772078874683258787725185707633791801227457696967262493074159235605064007394908381934405619550155222223904439870313070165808993742457573811820915989211339641887122544870658249304593191826808237182959509985379580344635428042485719189760461678396759617691112809489366064415818087121697317136159328382279206633371878938038230924216594625945380808450101989392495764590392747957570221871669209242468106456745689738695292331841624915785402641531083089876492178859555412833985035308083026795086014588435748810701512925777046493318236791894109141289644768230799084611420221671851388952508596605058283776867421558971342613841743961370253215069605030470088157358841020397981515751575908237401901910581566041625196058366460035145210559042742987739961808348470863185100593727181807648766777854639416922247432952534268853644561630611174850533498798514876261630611664553519701484019574750972734764817043216389625070272133729774031955056935677744254649651219773332497184771136045954401608791774561895250323090836650155873926871240569964156780027145591407916645194597525066222364472953219007399898694353270870606549753195844517076223944509203938861016755000588232363375326720942889264694354833544904151035057803762973912521663837186578790574385444936609075812060361285382099703723608280414939483266504641480400501852393582525716404144185369952090504224694658265934234955963450976878426178133181665790293889271580436686529056534344808328273136293695345405681356770878806708887247138561781772790683061160455271300039364490074360851658859450688075072341170246481238146745569145932399949889983031777329368513201692197804511201407220359741477361089131949150042186767164122767923471894210182478871557474423657971468680481025609013975159022735138868120609144503539308165615334207283366211074465819573728817523370453425524803667395490848369307311029800411892172360187205418976817160931145913650741535888151474277434499044778266671522910030215326147250711574725941002202986496379918349741522686718765975508511798791366115180282518203580450051383171198402519355925859519988946862912503893826757856507122354936558796081229681910287252452371204955140054486960221126616920703262823322269982126250421119351629915620909552200533316779763856689314260667382175186358723351780904631863999075511921678636008422804730199669333389425461113397072992871355832570609955534215433144957743503778994859825678194752105639706998925351099984160916373761923600177942096983180423087658260716761246242120109623714681894481533871799086446932501453858726657848431647610492531156519031092223693855604111237897047482942062922207717746448386310198872304110224596556697772494167390997326021338848927661700609897813973424286586358804071587987637767630840609840009337410074396846813315773521614821855330473446752327791455567514493394313896049904302413910295558700555943518787595031588820201839825562128151072038613760385174764015193481303644947617184216338016875333291649086639994596097376800982759833076145009567606725433779356105752120701721748144752820020448401199308750039650283014684341005692996322096200909458504976146886935519409468743787361328094585185966048303503245390487824657014366327923655689819736650898050442263762438299577646658749516665741084011173584836817089055208988363220433389672728295244118017811617777529979379453716455244674739992338468791850314383625429789465097923057305319062559590753931438564305578698360118422957509022084853161664227961804417125832664026432498491580307687179647174979500837644985895012078826106616152466517142634643368413085197542400928089401296852432664698897277668205645619620134097777073678637851305455282105918418480615560858307912490192608358611250872026078441662257652130656901517883603904660820022456054321063379749936747593356533034596651200677755799681820533534921753810574024992415387357629385494117939283718013051753779906705230477750081517846595241371109761113906671807024760422650460461984192457455493645108264351216635747035376465461105400249956893089394922572993335609539839491166448455388629767973856919959676627152096881820166921269886321317944113687923458318504425818819152551081144821155228836478852862229525372440358031263120320170056760502872181485251125891864785275998736567209712462944607415873264757280411963639329668741486804943911936993876770121997090333247718408573248352557719361281670682204725399023909769550993377547349852374457767448611675810950354387625298067019669139503509611611555043512865383116005245717279838003667619783173527110499418583393443636688211722904483287293974009056891040744844017182975706142713540350373185127025874703190001790482357425212077914200049214528145398232077429906994691101079561260850598118739177218586267902420448493078000480640447981254456111694057926654917852074051247696484751680019802259163057771561212088179775506491212213150821073999302465939514173028679211094639084550544153758235512894644247103617788876020946647691508038316642545825197057632056999231479544271054177279917314615919392385494752754217263981180501593160905272719970957354111665423202122373383095187435689553177554018443620544240200844464709757834936600205416555134738300548483015683910247103712822473062306788842684472227304900803844952607240187818669118926772862378775731061847775364403604399115547173812764422059020767155590687828232589065943732045508774128809618061771232601881527175657163794353120876477861931370249848051768520924357312582121946122771122653777672577440693716627473716137107415697150295068592762343644687461586224477322135577937026580864378977584866150605883991856529635556531807985257548841911094980012028481261740929228802062434250049745561836410689209414610807947291007874511369930007324357306098785547662533195257689908495019097436216013388959984018815116560792178430035593689219890173304853640369515543789215139797515481710749427165558524516642063050097797773511359724490520230294544732973704190015160346479423911382341426255642881083289945460317653544153190983432012565427680055990954265830350345899604973307415192179467175785611202463999369905919387847440395783522419003950003115115356735149204624340579530263745613703262863236299751779013901871154431160568880732645523503857523951867141871441702739750176557699213210700837215335274893319167255570023193211973891876771555457764856585228015868004256572764602256696115828143908463099963893038795877976830500452771447194932766839902007475320579337770739857549498874161311478892535295940216857297710171813018530539796056670436444311522296877723211160881751133657350040775110993176881775152776465696113199211511513637044161453947933905003599658883408756050659455998148687721705145536211147717737185158466665707924409883486702015400292271668379996453915479506302031930044448339832198430896987130179898167597511786115043517018497138185680547542141757905140706952578426382840527325131861483159493644509218161015515429937348753058528524067987565229358331800656878362863169062186091322221465949061261263001817550125837303122691702636781374779790165784035783156790107168281876398699972118913811928702346266159355906955116914228476662522641688589826036490518622230813208446017996644488249590660662955770173736728203407959567177536247467929795318512065743770907753321704858581772732137683242597970661503723768013945035849388842369011963664936848992496252043513583682619772531591407950032512254684361969716135951253792689472940326630856637565774654013349682987325527722586364946457975702866106608951616369991597941336117772861464784287876744721166957749271437163546383564587633053889403386199199062920753684339470305289826872315679736451601684974950016405647520522961603830513308089091471924461640969299686214411442102386754758352652421289431709964586991242876966865761728734111676607836489004660341555604197002361988874555884592965745515217241767613591606817070353173493799356429655240201778477571124815169384505549905748298980439597071233343989552447624145418237335629325606160869672216670749957526330741851451329016326788799025552991872099875244126027334311366975262717637387844869398683829958607606438299827372825589939461665857125089823730902419310533841925766059596282201558436659936630439230157059159401118292720394471710564896782814329155680011611047699801435660888099360956351225522026804263539577472655980809347907717741437500236464675499563349135026551525757545027777819861202339737333507185804667673804854323299518702787583215914426572508158196048038250874871186486541936321136979148643097256124925096855339039287541866697802129725051682591737435596547527684098839396261151911710380018351530948771794768160782954367978594387907718245366954744319916384638825379649860683198358970648536770108036834112550800725447274101524369498803467827156512970382420801808544865012845533900361959883194455746239378045429437649124194532062608369211391892668999447985047776694553874860257630290002577139236941175415291355623410176147176808780394007292947012822057108815759395281813252584716228872622942738532805342968284569279608687991306092055947598678869635417422912583035860653863232400880700874834218886981631859911810844304356035122566112044737860111057489157680890746526455632367309758347177073769779987131709970387308659233008758482921423217765009331365167889669998443472044442900692488184185171112049800011444740833497587369303704237691725659130782683326755077505543745545182241770857020455281881092831172592154496948073226924214144433574617408359952523715702203250913558595615205098405453264975663430675496249198625163162855545221154824839437318396278630276568841493001073139535141564027561932324251509637309811247903886831806901029566937070404912094025061432111638968932566031893770042090485911883006622460270662488844480874300170448779388904582087245445452315487228503205827167049084388223857898101707750152414108163121807265084302562728179059457666801687724441367460483840684999636692293189893056772844802625883410390403546260212521437241699621942215262815092319701622307616572453924412026638115160180385800024413915742610413139205417575364659581464929899264138556592751279804036318436785515453813914055293765484592905742086235151147972916241167043464690966193111300789937929322517386646668680910968513692726584394694065055986238231386983806524746028217221791701071323048734616362724945220029437636245777285231237738832034801465511120443540786299333085211684557446951322874119979138066620099886838268344593377403945754168585981749746470781367659898789678157615165011454163252570867224893922514858887041792487719550662845204787925046880855927152206293890778644558253452588098158664313785615171878016363142600601328695106234984951479230766562224044562060883863863624577950261242407483005737285407642566032012259204421071684056227592018996976628404791670072926317857148490837354559546399302656568310130821629237837928473768908944918289975766486793010072880330874402745212814630388586245949635060916283882464140779776887435726049463479547504827795259191643121826722032390499047487311802686595234880128762816488055113214908300008278541450256205524857735810720968127453762726121540766132674019344295135499702104384923154417278750556607891042804863114067420744713807275510513678974839610839497718534987113254234777022878146424458708136479938221769313620889779044399920032402291160225462044305313124878169154923288263067077955661141774709701930826483271112672090189693331115268369076693123507976644016662144217339355354537250904237781663950792666048901956307365723759903490218480341626833418915665026659348039033587353316780951042150674031687948414086255544525013789840100082371959547856631215301985990154838808616791984022220390502359680722008020952279688658446988403062851587242257428580596932825159322559676659337923790789150296440923592656969010806541707223662302980357730840458136030410916408442575563784958577415392628620704385985912899676161756402601589522408298492045956133192551258101484349900882794685004098596606427516632612464572786709758969832316320076682726281560773472864489897105591209531386506327401613197577099556172382131271484918609901270453925890744297385665528429248144921150348643880314768101982433220916436280137790216871486608056270341905145103062974588751775324124173742807113770465314781487520871741128043558352646090294155314347889077711469765514145500456699368602712675247162514037677666078499162879259417583553263569691255226156685882953270394531625878130421610151565161598958022722646824979760277401236075849177437613264059926785948315187031518840385702438534856003761657022623918238850428041659645555759823153403691391767557636225937164975694200351470052288226630070559247400243583006246445636676848567543314946703821212413684850003367992338740038249062759293634473375502985681976568778574838628547498032287505589666839722662213574623308042091237393193194944815742012752946844104079202512318159029129452953465371104750762592872730475937691438877887889270631112192602383405329695624508416123337664879391296120387674486875956123035540640190424072408435045236933453288182977142429907672174633510054733775682498336689901260177746703621188596922367276572464849050330766239084716356634374397489601985351520610130782322225702620517429850776282216743341526780324748366134555902733243119124850424924899616600276020742773424757697934081691459239547851666011739773730269772792879387099435665942666934079145724631185254154166801675609248674672468904101705066902251978999579301323216571833056363999088256733756270654285118786849158870531218307024825072113249875387237386654310420672055459444413550503015016181951567461599607897260256867552543985103988714949730325933099284083841019502519540106770082996328006270460431520754615922370494875579687325853388142485203723003426961163653080309754426361133019303879081128727954865253495802030876794485652471373043349688127654093640881123894001388012687879891854459979760158879562801037726177900715821467396039201024351633208071400033411423940627717761950326915985212111844279481562120103957571120853413999809597023919096194166493709315096523977243510427978988343253456240382842469298592934053158385246323852187647303952611504238879513969127795369896689716674267004918725985311966402772581722587231168388812874636248064775551754934632299111577969004229429075497564716639932634802621094459877420279708776277661933018192788866052938315533040316140320557312892799185447377567160864691379534203300671301107132104937903308409193352194890833644779229787362432293314687144454356474396762774194446047608140115746679691559049930161294505829510409115331548426242654746557709583509805981208194615673824498112100906583363611853988266273837421644578718361458233176911691939862520175272771120107055892771025863103747649458984053461100749841741144667513515535328769149135140718059126584939875688663020747158879143432646782408353637094501944473399695886381426268364984269551192174062257677006787670674224963851474609756371850581078917673577460029217170497625439821844581136682399967959961315706227332877559490961955172935265924514062992851889361253997508016005713616343515269889994447301094017159502875335961542189255040783781146274072021329763916501471015306922729377245081089381645952866849259101572796444844098684879103718507225295239975542295013947557522267712798358013012851270847291802335404399027735809911860561493038538777034789187732332241135880814945006534399687464614547506922400635295056894479264920157115255500469307018239632661732606524028189532949633254087887002448401407037741679456615551399426657564400216725838368985128019443639745119800895227309189387450590084376619000746747091193785073189184532947090065090053873801501636538362848964679694305804847969569678360187701873929998322178084825196654062292507584666104931580211218296686911098549499745251730320462630133108521750933574076247483067164240278815361068808950376860969083083520947964083568084288232063041523381802147425716528885974881376527029360134139621221456206755524254329757786600048814694015473555864990369759668844707201202193615451212382877438213214553826552299228564591213869925983654786957659834305063323483212835056786151227020131432546398118079461508954408430427385595582051386165490549094310412172585152686179809989971051070853350202682818748512415157708260534528392116336831934524826990579939257042600297053352933248315017928597927123092827078400156933449318375233121724199167875662942755716028201617998917954804030331832546447275457524985483840762386112342943903637726778338634263343289054056853434754235540696380413010902729439617169695874055178068385539076050071991581579501857821955304510415625537739761604223877554237718530091536482634804895413058256863534531785522709182996708328566215450286358183315618140211479536642775135034269811461144386171675959640475178930979394130855605437963072382278978194699418589299742128448935872407872829071637710143970847593959590913367231437711366717029061671219270973147710726999434963667612624558725338959476550210218844787054080934881344488164806757553772210944760303047569182355040582294074546530088126871034523699271439088722663779278962507516709384536471968039187987121976299612093705985525178147031761919360689715893936336072776332531006784964997652179038133695479844252584136897753836394848225480661732862335810990191527629307257323136833287928012953954886879286224768161028046061939615487896928370606864811356800608983032640891580358058864427113150587910159594528017256142163898170200644509126979365593607426498617452504236774078587452207995193324882725192920945953467661724627160166717755306985435097309875784313131367332678238607416928722052708069353578220984553847601042277404290938501086241569089767945409049892279844727008846869163727584332784216279074151833981191273176736084610599101268542065817223616768207707828526971022518241849939447111833362523000256312839003766769403873988251601226297706676562174027854388226010108788964673060458240857633918375958947113914286768380716243368548552770056645742372398134154790313037093648168695085977112532357607800246828707413592216257554908209525163207735416223033754984707450437978065809403458184380071218200993625804204244644990350694957133121084344478160499972579232769817891244935496705563818024010084448714507847954098578659460814919838741391236548482641711995339900332630502268879424996410661187191666353340548603093807658445945146662251448716663796188037641027416771536386235301760604216839001085165585690705845768817987823608020888019976421774303800663270396706168844638788121489560899653912749555367103183137016862401985307880311744636909284357429915719304114420736178355825632074477427684264166289164238639085297338943224734356086140438825957192980542148998931879766255792481548454594834374386718422685759910861990020541996137685829092487483561718576819486183132970953343141335356692073797978644979508388581584753096225233603687442978084046761806279321551617449778180672252082879441100790155408695754350261881181136806772298152188477708270081892363600110334363847149848333003405675491505449290192268030646001556612263521462240948260243853237547728952926698457281295028108690718641957131979075510562149797720780233064477420943295751337681917190444829906896211802524132324635303641982415800957037092551936375240685591517477274790679565202640935946428182234598788192772054987950083481697683758449549844589711168367927071667846826365527834583585370947251582929506850595492871111341995236904041617778707035045438092643851066758636516554931202212653461993573370829070900134821462430500420748057024217558853079831598339398059388640264836266199457249539469007672150796146836822147319132357000129026641636673317091353440234537545933652298972873866088950568191967195824729845250913510806948475052274262567352015063282368598487389226816623247843873107737527386793534635938892709562528280232889179333969535689698113763291838236765261966551124112335872568507376023060053215533343046997112809527745183931133639197580837356348524437052388119759631341647881452499610624252300559582319101007595977779005230586929900118080216640081572168541968360014244500827119694565562775633665788972026078864466533886765674667684805339189450162272058394737736689446880793398591523157279294833019783389829318402328009755260445893104529785235275312661725587622345998381367044151256369330429646124405514481489592596487594572203183182552252761008044841675142485647013808875794064748451926594731660063973122343219544354018876533822533992954726648514748948550030300747635064686568201603434105873896741986781461919166542370217885271481467758224449943787437588517198811228173564072943343298767435819498914698025174229957934296037954652912141079502126583902968396957005001082621589186425520570888171424345994708388331854675031328756219648635793367198062519402999466778308597676078268486341127398068117905685155145435525774159431166332738294597797158004142855976164587115448557288390321982485842733818207257155134681285394428428464166220112541216313598271221662436334935085198699293778169099969874356046574260988045733908429061855964045489530620205720999925953034049361613054928130700647957199886962155265262378996952654866310705986558017210200595799780336709083168761414773018854452062656435195916447752035749378937243371075068587930534737276224022353453992494558519884932919264992629751087650781362826477812340720879924338271731357338239503016102136315073689213046621873484335086990094329258294820911149639580078228037667881401660253974594845367047086273350413318752531404178779194594820966434759115263517469114737743534389394993447934131663256308255204982180414615930679577073834607658818035863506963487556014612122786461451914517871053851271563989671539432886716623018928854531405614886802627182453698161107053123661850649562100593705355907393785631040337164911291056256265535919939424394782069314657051137802977122009116376266287641790167355706142405537337824550419558622805958096984412102384831247470596592976353169529695245887702298526585405066024088044978698411484409633250658668388254752047070393482760183937761761993642673524368835892797434761565900426352442983233429461186729779055750593378997257918349461883189724276251149301634233000910386371598085329061040480551872991356584138911723518492477768888111907452012712589523507707637494846014573607177328083948605667014520100522714966942940455153952709928782332181981103312392285728259602286734644582240075725967863877623004624042755588711662202638888877265834645889935559457310958607561420110787174365308318079472859641677679870437556534326794849708167465645626658445921749896896341246976657578213364586416609177641343313931214051472326527753550059435225427884838094049199988048058767616024369932497808802081386874027797215590874638579598386754639661224780688386603708092603359609540329606973718363880413911707701934959647918728946584507147446821249175240154951272657531624824520273923008947838299350663509838821374592762973821275857164525557437446728886069749741303944890994898079004701601758777417629539146876456647815222712822461667555898400190416039243203692167192193171798158032152121602986437069975075419254187293360030925146017613370357976943951800205628605978497080384807936272068225260220909108823350141878217355790732343896464717219414376885007724731971648530203731958770623875523329781664203911413082476425058027304029755840291113218216009385224322015100162230676297933317235209487391968548144289833490363778246903447710171577604871493334560061917971614413379559778790095682757721069152761168491874325005636605664436571369061572654997679735281060697226285830143591847710354075561574760629187587586621465107968180618138607723541335558825135669404633231860528244839099968954249371371859799513233571835313131559390671475575376401255414836341136010265725365875130648785200728295140853505592102623230235857104158998523468667430007272265008436166576680842322234670386593361485579811624060865262105157861636852180610747180255889441960885457215440294790526381630679658036777926558466721283169468618528262696451348902466092387147146164187519662931997765900386854288083243072831376324771536420188994242022694423525255235927992205402633855832307391891725154577010679637535787820439944906289494408974036093541558152214915553375232378349943424022021965682430723883872951338772233952738794197128823190776157167265823224709052702962570647451945341315873239593496964724539066473731812241826891181578945245316618579242238246647664213715829377800286581751477509259416242217972598167053615894721888475375149101071033642484335697478888539704567179420566071694942636601123650508744505294450105812808612505390825288409183619743790884082765798919253790084176978157521381139473940454563385802925813668733092462784683505762962758147080443527041165768373946534944233560410155925212051679130529560329110926246805645998548370223365744292362609888076702201680484790604153421691629749388283459187766778866544315972899327440184408927753488491849598065854786994741552042179296984214514434467018308870202515699136736174523178304582421185552039088378617951275921026404061911560663415866662921542594717623802884719832135966740320945706181955072314213132876726264447839642130195052652073766706873679806470981710163956155656433915229197956782319831078490667618934978973854083897359214644671437262910360464114633916123027821964695095196332837405746170333174246750761653611163977149481318210452984890382113918532899599475418146834565899083332963323332103097021590945851082687633691146221121711145066206593685336294244784183386954873586992464266999577457274971351665827918679790388231424230152661657591126359231917685656383827248391135756476089340179980566975586622317643697543020259202081727276409801353447452220393673829033005212070495107468934463730936438777598278518526466538277612881628485560745254042992056520537318392455816901847234249700598252177084868606301925023154174897326464450086636108576378318102537007155793140720308674619224829643401085198797148789651853950103237523507554535869508433793633937915849653867487685390177826554593915932815233657524884209834815234231566030617617545103319882288362687839498228183895410730383858392977415265385212206874404333929346529657196608807244652630291149209103154389401549231173360229267272211602302064079408369004594903232726531741281175179577158796417087232874010086834680609892186925730609477452899861731503066033690745703002261907379389851255904082142148885711851189127301911692839532340524070188349400016725085112491304198532378552091590572852115057790168660470840753472196895097196967521881492588306762167207132813121269142330582068779604870037691424693053097912337144234636555840821263404374374937961282173202326695614141178400741116203631983785058305645450487988819415183982950769713597212365881634995942980270565615923910321744841616012041999012684613603792175654485431335327938419851452364337101335628535785712570722188392515860830396974960336574895743173076806160415250307154485975170394997791892545147831970093657367793567242182487261502603518862923326593600409668575927056670434663485920148682166670411856841411322293260549288403654722048952045384101518020890482834275673139054950573136269145270170137033815447700176303382389399631918711828808266758759236315445732616606360648223954449451741802689330597080700105711571224448066549354888932266335299297974826520015264847723882872159198799051650329663211297471530927210281245898086442168537855461430645028535763692609003911752936768559751876661079629610511476465674457822072519230497486077681160605969263247255370080922653176985092556935701224949332934356220117513108849509244211226615710896022508160284279815923694646505965448584133876652943261433118516836667336143119036485999889085415261020135381488536292193852508899906291571322120293799738275748523735851112086442949728683156074471980905346571710498919473849852975990497028665764801552961372095441779172320666265923935875789720673228691457439093537468356612226082703397672756978609220539751089395909059980058851784050288929580869161402034006337739483669284514352905970454547332726018390428961238818411379472146893123567046182238672617051283540943965731200963253121495488911247516889880367968030221983441017259103881599191749276331899467344103537435947105535545027940434519972606959950568189685199088972470382319878977268856912496574005004958763638728791231297108182988792401761749541933621562117276252378346166009000617836983443531467568791928741874276992876679336935334409245224177075063832217916955969292894050028367311787198309790689638654515734862236386909603925576561198528113588769686106803173450946642409818412439813609389576644836594471611355959239183674646215491075202530939476614347823255718432102501082977390533875388340313069168478996937397837369086543599808166031998580326364625959753111529189419449666532230816199006767135415424999115173374409404927942630722861513965410196873167751901809213207789153732121096073375284534880254983823843262663375320293123383876665362425623333871028574590445791566910312329137012941400188963649150821464989258134356217309951415709018164402306651422545411284083668841874952293067553296310356784903786156411079605942375726103126188300443177985303111939938560701954381631640488041710352281666279267165641081963994310272195579002203896856277508130929019870353034604786457096918752686423083553347085981126467213778410080872581519428536318531051560007218936352002592514036146676824531055418954280926511677645060436550046483926702546672924832299937355079878035774049977835471066989106022307802191184111410021502214467405666328923683619010557951310170637571367004753407440257680000058519797354408376789375975250576172352369654069501425861705939308459685834179262670030211203419360076249844328635522637662435334067421671012442343616034299068056809431462270783247359847730704938318158546076192705798451182831556356594327622951187540568961734664116961621910714955365144690063922962330050910887826107822067526187726142755056152324939948252926679913801375228330882533391019305215844681538164625546593362610194956515617612961409160732516117138960685278913241356753892003606268709394649651004008342465335772953333018418570048188408133615019072390140310375414771022723295884394865629391684854906140062705507741602109481244919931030516937534359728105183629773245419981202273025713969187170301372324435164463743618353412765700166828401961681411318079846655970030469691594100850650643315171805701331080039064107003330889076139733419694455612077636712365230785631869540410939118933311869152145126133685928640649626190652456716872157317807071444193005221277960789311861089586298055457737278921752570962770384560572563376389928828884919277740789995320813965544998047118299986183928784897027842919390069958143424462582712805714770809300563601874468696471559714869604378491041762884516623601484312597229371774488745642119090274068168687948940505237963982384721964606870250944043110207066215393425192602259000624805585245250817083488335102375308532905557415122315071250361530860030831195639431049509547443319609145837915527869390451793102514647326843550126205976320078489680178397019077625518313245652850438867760642411145029479984631037468144205500398733325052990316147037133852438116408461511845371740633963866254566521907381720946016012196076956792907905004519323177531992043195693238131598419344622171826475204832020782105325287682274326868873808896660932248431553090802529006109935080843913965989479753494574889062434189291214233563669010322729793064562500907536729285170361098621227077901500863113890391433682923070628724231602374099713333125029772722801518121027202137352572207544599741489120234276292958991969008051232697127644454646344369408290796572231646478059711879261774586426830338376691553634019814301856433028765092403764140171296683568297557353173757340973771690582838877589086560245498588194877890420940489629542335959408133238559894071542495341176869101540118001748771611604793509766534469336782115412694207007635084762275595497054328033613869395616295469987132930541769832911997806152912289505922455249125920411144093843216393455667852831918222991268273923731061391708602107433234382095658502481966174231771364121720299937252099240644467866622510150536638465133625444313286161647725649601651080360848676671037613783766709751207558482716792317537714657597588565331897192890468987093934485347350818663253994460786326100372309638769067259026822499145080165485804862111980445328823907421024179605606531709514083920859316660024060080621787015223222582808146487531258496846235333814392426573681682718935927247284942167338891942044375322805196661668313648646088526192691298524398999777699185180724436631307291601769732347592180339266412400885589328356854869040332323066812853080701825672761700971481514022993930781421921371894372930921238511097126408135526825056364242111830809613912485101551630621157424513794764112421975385036894502269013785248508778329951748361558780998830574087574858277484897559419331935017205636495831663786504549479435946761437538496147963566317167407555647065889905128933443336501896386381940089685516658338131724515360631442545621056165821118777150603624847265133983947155886062609813147396480792032878006230067644143052622963634555584109285170706961649037082942425423993595011588895732003365850581675584317944319994124083235106862373354685719710915656805907791636155624579866308566508635204779166449551217604244534536710378905754129676755937412276870468310474479945814088569022341076958446307699478765929968209746596221843039962489400671694835741987435393086226625316402014503410140114176882069173082735682523338059633381545006380964451508461851905024862463384928106721976362880534866490970190766306996003401117174736494225780187482261556320281439549771671181647752797464405395534769795521683147682177454739431934084761223663581751555341418559617472246714670522230838560164631370400612181573848165927578137221945745675336799276016127802554734493727644956969503478051746055076044074300185373079737417048028640381768322100515244931134419122991582385569590991473221867659144444547358313873162160944522114414357392982710285519291766671452563640799402370564085577701868310823051627753957442839724204708444327051580197933217626038761544169475412855004204100042053342830661114343501316177262105365053784972131589229652436060182657783482053746797655097052746225955288102211775979176650837040692360133005864437235906062527196229510313619939502082126937006157603555831688428678560656216826022215477117509793191342975552369858587746687583392479371118908370366308129036110675796676869002044457281153590187755226793060831520517773293842348818345686262789400185931585806146707403782681921889298539273532331011802042344825597611645922432984230574875622454283539343082733267958498476309433481765493466901425481901350258638512439815996431153287831263445668194009566546093721889396178018653031507321667575149907748201395970846914956359982846493881838338564095931927282604490829525810645016574798539753686763596862883010076519108537070167528349645277929717191847473291274786057703034615188366982230160876464916520333533854422907138457789575446574700182713163889938332186144331043791941542235947894079387427080732899073203742232957790632377396663466312442452170878431905058908670797238848089111848230425676754245776528086164670028160830406277916056746759287551418127546554891354063870040464820631094927169063110479864971147376260459326082015792198166623690882173272259288956144514966211579522266272661396716092477428848906015559006829700520614815540810775175151823375486074385912231299517801945755435023208594572978394069936472380086750011924115130899100869583557213970745577394140875341463163960084843994314375996312413475031270782521488573028203332769773811713326118806932282104409737609993335122245402464676731591652289929461055042726539535128364064738757268752669986372764247483514273487776474366927464028647809776048984155350152584883081537670970612365743134324550151034997935066393435831018334757207738208391624999574951455370923898595983014995220370089650912438558525963050745470382657429661539220179901072269277037093171390383557612416677496961288457027926490354699695321295678637692643021593018597618571131490154852968524232401989209012705658559666109516075970865912485660663940376174243566284343339092761872436913604235349017343221118781279009296517705122593407552793842218963704120008461404939565498944767879841980545749922833311605260140051805111572763437965093579966888989216605156459685957998750080784630241261643097451160807390178244520932318938518988766317306689092949937957258085517528719985825761447654284524270935962358853975776819579907202169680323052920034477723717029682400422527611124922374806986647895720030102343639080673985559096411237899674293062897604655551643786861315440157354513257592959833088021909491778574619757856539545781438362258901483851933648906127727170703998642461084480948841775057383181014908328201283006108643997988698608648335632343229880282131609829216877990161278463749967100121681044531029915349036858638540178206670526674385487694737241916327275058925232207760199801791941109493545990665502131185096767849561986762665258609113720406544373848904682045670355189434051205209783245854939216101756774783419965181818295380939717514253781235922918974231394134798533020967307419710452065748286746208116882057199913041133925940874780534229232702746624791863642244372017451730477922513756214162183779194278058307820985485494440274051820921936816290608415283366971279775135327550477032437953652453471164684143034862086667725343787862291040831041388515927421381671099385520933929518460603458385939798346919905879650425642536490389512530331178459235063143918676643057486710568359971887303637813424148681358053456153949704727181349812511598494195786381376227360178043519871930912491872508747870533740639309416947973684279322456342615946703456149491007817440271260144074541573358892169033988525826864882737469369806161690210168583957975281907280623016898174385034815306274021997291344545986257532486217683128817797513066190984525335270518751764935252350842814297493014702976576837212603285639718931579524064650322834401203303679227422045936672724138703082101070231918977183601443943819287502745915326410911969789706464373669530132439507564490180995991144116271307827202726114973194530803677164658890061540212331314201224294471335498407952575628223785886516269936799795476107799579173237321338277520965975299785899927150230784044503503057318191881086787072436312038680100588236277276654661249978629773437397638750384032402255125166209090961500801769146330515005715979774005020439983082969897919334620343589423885231597149783439039319456823689754347910638988508927628002505849552135439364171410687940047564729539861481635575853716178493171776988014706667865718145880246319031004424885027999125816125537573007787650883478052561411100048628576025107090231664937473171694623968850030751216665842895530828668418677853262658663062288280924918314425859558098737083043044479883942776257733862945114461602678348911048421456737072341362439345920002888805857118071304770321725076888017030916689760150347602820414672162032422189077524284786104638804732924012596892328195743718352189410761392680515363071737405554373941223402833740330481957269666722521167793413709678508196552342459569571259304108582711452169462607519296950411547961406583615177193480998146075924012301379768159889379145883500684206131983479827697211219707924945421143851745776738015463573852899450677469346459873896096352792108712091464169212004524983856080532783539551513019180734367191429675962382800755511695734887663150935075891219800076553494870712581701991522438133770031104355789391648721466167951444000337122557380414207135693923526393657249033856715021470885671059062227890892131437699741766520459301453041232659388199660488002686820939894199355732388792465629792686143828487246897001896165012763913394841142450559823031167264156055189064793545388823596378446940175388397458823855005115175553898691367222801907583717490034994423172883838017162432346541196959463138018208236095767610582938557349084158194693351767069418273603682584580721011022772077703193818089813029076059739069331748622024155643497517145329902591767575446156470776083087199308178048724002258363429983392676648237103609458866499237543044950237907799545922985489703576126332619333924157999700707449181044510556974465836991492531854390836807856605423571488533365036526567604352477149020617309508744359750966805530310217004552478306729388860889793824596535608687144094230236728734822944914836045938497531967983533941034102095107098058258824377821239590653788407321258370443298783135207024779366320161165114413053555540249080660856084480904096343901837669436864329217488549964106301406126327613035215584615125612528405815061195802916261440922620313679982672762660199310518474518884569450479511051481713669578266614298874386667310672936130514150073028097492200305232582803294602085602518067568422457168529122683466915595049664114201200956345389376919040705054574194230267087911577454030379100506718235306982027887221164838927690330564610212282833854911425620546778124623718023101885974308843820102639653883112699905752149461474130427336545415078088078263299829593173497305697404988557990071154490328374838543516329896928264900554042855437981274071050715925800960869647480310048016253150631680931526258884328108229360983249895647529188154691500103637128362929997430075375173668082210333450189261954612078179585473017117458959255797770182340650976053094435686337329386419103301582750986787794356943688220938007445716331772604669031903969966818249707274576647100383582120265931783117229306565169761997728826741542497510532513513850237793372729200336896852976185141616924885210269712443029803006724722905611161881535156077762241917365047112248702485600589344918924611368882187012337920655071422444492825619999050403797544051389346364047694447923809493256846370970845248824973816303140522570252621297589899708167907904950772171981151905449965407268045882554207567785438060309381218804082631346170581567183375161005486641575907047280484312050320249093874973185387890025681383514901820325785793812306608798482309376509393213156763933766875091227060027675839527574232922353989941693764134852617271046464945977368274926987133429745636778585567495826494843600422973491959856106197793267199147547212839503291157241050446387235216682572588068214894950320974938053849420371074658209892672718614648246046971479510893839239442275191283433929446393183282427313750987725942028208725304003452814626889353458248807626334952834489421572858755733973606662284642416229208942480665846913290106684558438047509727441514100103586925825804533198257566229308604908624594035306995912266025008470010042255000467424333239374383909697253623123986212443039891696852680633719729045399041036752454748126159656913292992403625737642949341626392744844254537807954198176658954981482006698598573473251874238055317742787998653482956260335954280756724736080074675949707988156157289982528944684180979792474416747761075450072435024600177677129752977912879499993749826177094243971517805176488897670674624173268365548850553429248017922889116662185319319515002202041027916720720570159140383047411260840774136566101176242080689703157443223152496634960574158272613205218498704548552103696789156966823217126530839015972851226618919080460768057989064339126282688214382216790223321967446944328686359801976683754552116941013102626252826630639321889485082768590064765798555985098354764192671053477890560915394757546453238863599798218000423732079410525772956127554267309034587372490219649389044050115727083836759035995847698940854186162551868459688762027265729514997182900470980982881726359071979727578058683351222955671828957599046961895628847475447085468835742221049413473325894563765001101518224920734083857697242542309305486733637768161473341673735747417086400526205122161132581037319904210900000965892219908626569021376458994128094326951416012879703532794455258412726378985701874126053567465213026031972866905788306092357033792791346612352834961286056624311829377036377716078236384613749963826178054187134580784481190215463300402944681164133622054167228215019162528378211285554347924092688518066105939351594668927041527811384966238641835824542931344624944061597134940721917342472902882037570271282246284738153393565528496496306404491510407931411415875615165214452854857808264328075838027492197854322296830099157898914010212319652195388266600055189097847449376546125858690245410337692162273085651691357201531626546148230252012042227330562533393928139178697851299048005440425991424642481901733915858621129344772476962571100405671700151746109605528875265174528576112560140955474682450948081821325845597707255758573129054412085553340862225252391816800223328666939204344645941674638209023929376087351825595943874154287254499426487732826995499154191887468838011152944028273926155688708288222103087049374856164690226830051791305828548871530480184024096506776989011741061719445499813288684123205137930693883500403442059214217980714454783624096786525897718101355385356654449182680428456842533252161200008553111364771068099625885974071042767524347340649932231408121932622100580918900501141277651158108183451230614732407632592853260489226219091276841463890277904753015854017225971151043681119037828499164530129529757440988207156475274950324162613245823725394515881621302431946935686223331182868172086268727787579041186133570780466124596657388865853091128786905060910575571443427468955450070748111079435551727848618476538689951555155327301293922936286692203716093950536304074836236659402635694500803940463206658369204634907894150430498908926837320849841193386259423054810171932621188964260931692282686292507710898963740424460895442256199184133603556949114727691069352587472405485800191228117145922472114783030358819396614389932272545153300258506303626268153626540854138013988103246060786476500671737307417075889285148006488818730376642028504049086000848548425286347896437516795327999422197847858926458317540062009976049274234623716421885159870354697136172094504429913179289100899133765366361711692252196976534298398951770512269384618274127375484320832788768239481241255248008488297860861937307559877195858634362680872465662385354607502996309804321049223705854379123052255684111843552639778306024279547770339653999723418204738132125107612111484046585642626606607427869512634508774095445974510299726991556901074048305967362167241953698420372144721268179206923414009636053944148955961524955202224390122678204600899141548547780643905890751246034397906192543666493956017792635040140473344361489463626225691246685640731376640944314778169914348599448777982467590948949593850231601793302302236722396602955248599737150940717224057845496409802389682285898652435777463313670515555553838548016983692628942682283360246535203191779771533955498725560971149058516506368707983626304376445271055691840128893117361962043091167464617045183422527283505520312446511696721288468506176740205324136970009292931308386261442320000356022638085925842464025409128251935227397718893025243735868358497470267668722454723196999247299653769487126398906283261619086703427887256425792023991281145581705491047342353850503263522487659605879782138302129667196957014144575127442564088926334766335532337511479477962343608650358917540856798537291448859369319293954942825287476944011046079460179120777622280428414615893985251987234766208777108160245705462542501404809869562871451613004011531145051865418816794280062605882264264465669537616813516645825472106123025473419456311541985078270901526647621416372559053824273232994776053289580463980044071110743440037898094133979190841808867825011313316640619607616796714938228329722312846884408155110992424616303984363188014761196743644074185352814734519916480390876091142970867548601996871286088335351718206551974974629379670940139742823483990412003574430031410480577282102094725122272450242137916631100243595870433522661989538809831060410000775887441285161271787056950932316437697329997680840000055488119680453588070208244435559497476437607931804906192215797399474415970475317247377437158065179213473219835179052395991535800928495242503042977525091272176217764165195235517279411043270601438140415569001027559293241517674561104563575357003147782211927062106436492730537476429141080105819239141847285409094835213244614060184347192843265791991752716272215204789114823731734720485697710246049071912917870808316818250690455181113094317366934339753652733982450178272640602806127346883578303613416308017127861768473668906035221478227906777725531964428430991371842925738259892720457516883150616794551129848818901489644148806473424117349454000185361398899997131927994785654004853077092722890825986469420201465902215559626257681119569923209710060846263350559300167121108297771999184934050848256866427904032723424468792165948161680494928093325905859400417259172808717021478675457803213373753859050615598191795718304731269224679461041861068085320677565047309085087029080340384293006175812479124584303741218737312384073145106080420726591881778701019966417355444092815825613402149367456713496720197259371890201082535326463614136915415883932960730242913647783293356289527224283461941811485017406297188184917516499600153258403642523280320532620073369505450109116807884169789825742108422604294979369357322951990074261781048274032856080818758087227796715857833849565548588891190817593929391673815153540488919313907723351805883432484302855454779502292253703191721174929474363874343724557162038584662313253761387205214275624410245394108500951032236754815640031422422874164233827466812239768879445181223883128231710375534947862916258498866130283222388577924201437728665450928511768414096697958718665613943429320572417652960176642018152110134972960675156145175861775348361245137324529767622726973691041560702074758247733053434875234624358773288090606489834227351316234722238619913236614571541798176083031294627856766565482274784838541752039500817639257287245354076980399396696607222007632884438206684146954301788493580682884229764454339036608005146432027922922396835153170481842401190328373654156286002908702128971732384143480883815909258903125075116723922775049766398089817880621194634069828233126668204309924749113777774429539719285505040276313227330860125725543680254787987754552761466308887561234904905467379380391730538909017391908840712271477417335515251405487442824825524533734950896576073036416760936947067985494000145036771052931369080816963038175800406763468461726484224253099289324600136053164695512390275504535274252999065950760076998049966439083639311787397739741793983224094796388360413662006636062366970236143638734874830640653147545613862110522666264484440670001207711813094951370758257432355482654513301439367287129498608430071272393008784916630402845187292441422916019377695357788863698712145472210869796134305886145575971226909456359274120063306886473443462331079187850907126103385997105254602896208093358660712847704577537169572092111229796741311741039003172246118521379024167818197480693553615961714338898883032591965520624565867856810882345014921509411473458360360726271529672527004160472452817201450152350296375345993753850354666690673569346943406165322029133967373245098845622285772465400453430335863318342451615586010978668170973347870287003141690463607598693261770057790304007342972746775626678683062995388428020239663823608663657858698128708480653572680838842082300645239244729609861867549905280394713158908628164232254411883345715227393795300198169110152933794974420148467246228020179441759260105066940719675301576671204815371740484827588738911010583931931356655400903308543999822938005750820685948974616939859134798961628446770523819964306367677043437056755682687708574179841990293873491458896676522270779060842162100596259682417008856622147956473722956008253362278637684663826843045855105770513516973581124440080003818894001948312084586471735207375953754868278870970709622056830891456234639994799473514911529501635740381567459469210801970077769410989319519199292839407383708333770229650593641848064059161216874098997628509579186262461560656937728630807964168147074931779539626238678672966313236960936618593348102320951269431434170966600296893613754577563189617218397314834567493120228539743147047230807496418901236956666917754814294830760699413423756442838755340866647441308050259424072729289772099000108013694805980653772745848443594426417543167454952791351424542567093250486142551569159898766202350221731843408080762430862638010366351199414141717661433596174527901507922565281570345307693566051191430777402390851920531771084294808468778053777150206340860037946676933572325417385201419198789838934432462176301295856722999074972294593284544390363008562459065614994253728364358838358844394104296223449682181151960604982677879894409159211399799435918467316901961646252840192506416147154979891422812668172241449686584010460207150486399882092549946777030607445267601398678619967359271672829734063272303793274193222287679174103378743450519768474263090760675042151950500152626482061219074118253836831549754543906374051744597697693653337653250385366654234848267650780497237663642571084284046635965425143295812699430282380117366477798496097520232590794044848022421963366437220563066814241839993390985680814715731619796878889578731173790296170436389704396423426615188197769799938536715195224838638848210263238857513656664135276369468815390988636133564536305366963731626576663378935670707800826866442923514667867284473379633271316183099633084907196214904559197207325220558641007331125140123914941741885919192858884807528634335694826403327855588961184728223846797423886883219549436694358541667585998433054383858502596780375350946070059576963129178060819874719274574830020717271346246120529850529720548290855206308939035913721433165701341215205935890211557896535347167734806649944142356588608973294342124524182285042860146269698288404871301531497317387501210602448660452485963350538628947246789360659972661965549269681571905364725299592205982893945100191864977532900432663346486848269801275999549071140685236279827298555128173939406652234679018348417761176298325908125710281508908733873198572071239379176109362012627434968679608061002468933892577372284914735130884840981403025562042289004850247684793554090302583201043108443932250394272906614499908629199473931015695342857148505927931387471177628141084737157718986194899595530375233057813091313303302368325731770194011611936540128825999282863110992573455848300943497518656610963744850483117333264130703342308560712413011193554306214128355702583155853127007719996598363930821733557532532836123036714404197028356198177738284193385239047126456896211540936251744716648067197880865492130550493881591190774061474280106545703171156754915679911927279968996736242421889630214548486570410672452236191781333194266179246935110888791824816114119761445186051960877767482782250735229332097631592715313029925326378090936408397176755025900845754624365832224135419733159489725210424328826263246206986984909957118221120189066888109997782031373018127868523005230931804951887079695750096396336720322783706135137431932801427812709912687354893993495512900974917082129369175519316585475646038783867359478624341005512607873485032456720220325330298413818268159479132741506966495864818606789786970512272671373203460755784542554322493371091692536591568645190179782401245821263021872143842715879004013329013095452591390864536834200899118567740505962134491737318080992605900867687965968385429514324663580975207527492782450165126582007239828963242908994868289443327031631695323487027806163095483454561261349597501556324916841568556192214801045664790376359086639109726358043811440118924401933201156215109589206177105927326688731832728906104757141832617557352234859712413861937527055156906037068249262965130435752703547573519363132425183224715042447905509235697491238878780142369191415967135760189649289542415736161085822528610636389420305692993871712323934500824941381784816159242949497424063198155338297377976308811655297922191130091638541772678559506084869212352392484222001705866686676638973317110866726580010204472378072052186728714472728417714465484695482979598007111555970333183819053821071638994011652394829107995429873554728688685054175994408088447811481638193996654623327764018642707314260131935222143780693085285596940126802124249137941077628063543288321795702120995292423972809341661676112375544954075286410417834176926076776377243059517735886609170399604518178450119061850322610217423087669229436009031757904226947784488615320920060142778599571563281492337236617054656696417663861152039075613958888648502439907995629585898548219971520709687670698388506653049815702929674599008924353690204278478807786183406151275470794594638608485917686209287746111430239305716716425928037584145243149493503952935628584947852844378478229811533148695412613061412755490911713674287002860972030276104652619087318966140144332230993840045572304923820877724333709932650046222333130965538137259484203267820865611449154620532517420254309857143814040984367882233565321612898269332551944725639060590662911869701015123311326231484237919034079787306823963455535202487615952692252960321976233235412695842922878016334838233659283312585192058275188575328563694903835001061108520837642422441415557153658537273991350685014703972717176651612964675607941556495603650769749189081029078496383771513994525462417111511923972411907766054894988254171040821707363821378615246316219103126861545505588722930463754588139288647550200523380078216868060868582701781683222510433793476546603084048825595450978130763617964143102962043309707817722040826696918788123724969932443792715266135989231153976317952358536223747828717497351878394316734479759643410823315653510929984332901949429541239930857562137162176385556221640709098447644308453428063829982216792474930848503732343881331248340011618036925445499146144020029690369501904350903065468551941493561764224439230821081106832297001182650103427205351663082572446697387178991427399721246351522197917513430829017991027020755050183408761827559999542868845270708997940511050714737921806097312970274424914686477032514318938678462249893534753006766378231007840403824757366865732110678364203242452262614750897506330916611776941566217114578277402105975000666530926144715107149472706200498507834694582694255070905620778463304806581874190257788514057581552003307580580089069043186874747517594077592561761456940193325365392129213385921415781269096839821638260443984759844719354096353146770071923555340338846106092109629517490015658337828749478592913269125849499687337164638845759655600281321124868543719149689592267735308858244235720733570632646084762761676724445100903513314705234744093617926040737661322270511623231336389266927409599191774952758408115707490090360756696432285022153331700360530383270225758034408441874396143458796606601930036778367726059688629999671924725894364731608835221884700636427690993574223282561018749165824265914126347916596133539420199812086806802538452093430249943906787461703496965004342452745043060052881227632242210685628253757124044684497530033476780300239732307627191959581652933387152748659090190417015530918948818741039190523145705892144773471127284264628020137851738520898112627079415054881938839642322308348974480527025499566758177126076570135177534629927166329747797188000420379266616401260854711981856329847288242463770261854998668164906608801603502483710395771443814037605470540954604783050062861319503706669700319127837736141247464557380575205297662816424401399915423835386058713730965743928519946729764177549856044216971117646690335149697394678429480707836602753281031044715650117349189705070120077477123700861027888747744052234902588320776580467201635637369648689407578302073770069027402247403487098832690519802645159099207609521681787339881208352432804510842558750496323948568234674340649210972802304907969500889294600023958366396604150302333108535228777901791775003243050385281874904342219951978110152104832215172724859767018381843017417200328216039409071833331141241120553448774826404307064559659630432339683577626553240265994110146327838272572613048892196937480613144883703988586885507013467142457884233535204730208800724167837930738388845423402077185329876639095184215847536457350379190316054842920315600078011796347479996747639705114309141134754216599575155363676969940356042367590077602738814105745071899080727522203901467238540342283944033945126064985010750144399687419979516818987770097836793075753773331047097656420666367087985369624363095318891778166420242033252647379968491691982731790849297864373174229650327961470354463332972961096932936257595907544099234916128991703084933189949967283010895571045203977895492322517847729768791332284039360289429308313040811452360933137154079148888871721322060568067148659527613348382617930325163787215128516489139173230757054818849894879919761653565801946091319679499815751483076798190559010881151728005714400750863676338737143599457859708557963239987515476744050324184199540437095940487144567322638664698490131261433855528039492388769592917689566513832648857070304210164096534567051965284841443356193367604476638578403744995238445967976525655940546570734849568003270847061477777026106354774368123728347113781704915570808236869910928761051455685636660854648905329178086173000592871623053114816402195267508105839192857838912032254183456690339967454588319959640270899191983160679242363244337892454927851635520606384661558309415655491446612564648336885699192790138914242921028944130886589317709223251942475397737432273683107746501415631250897270853067589446965842508418905088387367202245357495688572313918300770905017844278057432764830487639648820184887034791067303085381976113438083472379862284711663859313466077867067582390958193450463078648567365493353095899320086320591237957769348075362566564610105390138271116332241745400093396549736464641505489866469066197089631745011408957569905572247720695889561102535668272512513579165459732668316392110658303497371536910496295908239764205357002673898225310662324048332633791142307996727578521399364083132620709008978059362217268722519599081368339433623884606274389631691657666790628783945998011838317423417933324352591701988254392971299187896429505173498170524150034229064038561422233796141902458650218591970261994071150781228264280788864115765576195892953628783357892438789965996067581513700352432524758162770165227183872459827416433371093657489810881843860108981367800629632744857935619026822385126880425838475382315706594743075190241490809386211435380164566251259108273492919780017344359172526301098371121029002039928373780289969696748718462516261869573939667883153109976280841226588297375665646225714850315912881332594527684489723587005295458649116957831366863307720692958093770174904586356200340685368648099595139502931607205087712712990407787581788820900718241854153778048457498833083811236526023344681930808702096583341505224291111663148834754403621662738966780665933888894382781247013544791458548237561056499857727066626330284230873389486667575211964993167020537835244438755545452371891029522051751156923676998392292662755391817333174356193500768261723477674721793997171062471401262794715333593278134424090807349185009979733761201356026243189743886534362130078558654514942446043058557721193695175522964548803006203564793594228409029127253557721996111591032089973326081919329947175565054705607708174489303033948343318794361699347394118819644338793374197497154893959073818849509377049134495266378455400813424219036362623619336642837490983037391177335651855389322010898874221546103322960919382966324769522040886627680762809150912775176380290564451410412785656607409690079155229460755613636785718710295854284723423889684859775686582763815119475334698643598237993439086466957767709445497066718308838458358032405262367109886917400876317290232848123987919535070667136238869101861013171447368133864506160781427011344419614958906825142121895626057832823043698872127763877429258723727799051590828094788945973039358527879466971138062964209354838990944377324232509203622655774526150572430073104717391380728374270612424343726901000923228035404409398104897987754291960129797888665723208809249421601870078939741118847046540745625485209432654314367113362186234389280992356214899703401099396444372816629466733141921397698902678136357742448279367375561167862230481624485899458325118111871594741514479410413836645917075642994466781397655899963270551477337298165028026575280099742054187375643925176280910162731557188194542418512453337354959143059200559171532613323602617036458213693944075404624565833864097699051635522676219222802525322737525514573923192378514351776547383535011818676052212433287197580645809248999962879591203521873041992578734560052886071655549429909186864617611316955399992450760736670129608988658368433216647917400942313252773003298147038539386236653979640360342427680780078823665268461475190193534905216391082541450833573574140107248760082538663878933407244106452257482156340233858580768440710429102219945527123741956824557988359902796091066424054863219953882812263909946781328477733130505849833555592057496688346178173365556208577747551906218540938984446874620608137492049883441618211964792013686259046251135818738964782688039450040367675402229591847095519589382498737752111156989089565762051207533846343830617238277779048329744589784493953950996632188990406897845180566565748042319543266000718752016646073792964840835265924708095132182876554203077695401096672998430571194155104569459593655061969240306489750680274021686094537757415048306399027234611894808558282246772118806979280848027332570081806443363750096300411698616176174710570182975092259957668912076495863892612223521015783912845774204663742621180316624334519151756168498092667043200213922896568986280728486677531790449510962892320887890129682095110890536656856018176110390806997006129626092639424421517672540597856204024254275468752176603877220161053312346831214367506230782912732058166369250687259230896457148624373970798137254356446595726440869077443346904920898172598950974876604447570795036497096232423991446355415019336283987557972260733572146011066536414462662547050365271642643483519607326666771017668079255675883147086404402166799500473802619139490134312739932515769655992833307150872300863535829774796339286148937947656162824021749644220374028205696213287832026107433454477696222973069361593526986258564559889222790337407268129640990232098765189511583433400419845214776560924827750702224574135588947135033243077696070304322491524204397995544208869255407752478730382845028045528807915895041108867497075046012612876543359765811320135770563918888871357859992861477478271681755454474323573688250052941084630913857445941708205676797098289820790415804031851253130303984756371102325786786285053860642211378805991414158486217609675353687216326114148359293587371496559487824565331491698136095294339625804670488025360822353671663972811264494117856642673515440533657005329003095891034958572918342148636132836096525754946427306160932805401401295247897231046116272454657308028795997751305883680234785323348932141952866624534001974138156276811834517620836552643690471641665303969163745840373307823426896209323244256571263458922789561416589682071625131589670858138486267376985464442962912982945761674760035532730479384315719741232299791376536217790520796336238436214216388462709206883027523559343785173361869137495942598906652104758345842332881286060705875117202577503732976019069499474292119414312922109061508055645131413323034156089725260703141262616465478191458935233586732716735075357127560631817685354319588513986059046791911279120705964244785734502630313816770824590324212702727311093665276212836240928496416342442860849008231911074824900125310037649634391507006818114109432812403221272118073367195915892286761114372205781364251624098384098516878251487996760198852024859178883263244030464794886123740906289728771558205697756952541648991043873920788034013365962481468800757864710248779597369540794313512793769540126537099997234721617550643019951072180576423974484916364070512673744696268995321119062673590442746542253829532616103749031896837287419650097222634513256109054119264068744422020081092470370352198116997891693559353333548994525310848217423113554790376648400579543523827537513791209541126995890032720720221406219300811472729984574554213231965616010021530619137227606964717586320046942821857627790661634821942040086986043847800846440243878371676993436132947288189045987350030893752122260346463977388700239949112838812555218528234860391803485264677245529330096489752297340867225668506973261632985220779021695296401789294635909732028844462677151959292883202062870751894350514248102141366994624621753001084959922497723803673425693346348308217623230809863750441431866666054644341574992491673400313736542878757476369922261974139230082553903422480785446714288273127731290861877304667987232855208463393710701520702926211739386129285814261680038378259532394563685740332200012633532081363833625249986083269445578073032348383043814399383648673391862837816281079695347514925878490978113795795416787430634229408768710760903329231232310645085296889927853008310057629678518077373946313717274372259386541281852372275002969602476359921921389894506078227875042866476095164727134077278852832419497480656729429128931331819901044804068495810048429019945361527056091524338938183980184181768912554929609418846161637539018456327713787065278760712374941320416273877677505915160753205213496480692960679821924246544112221586280778290188041494812675384175792616611254025332917249701960067399076683605500286888021795046716973466350258601674429420488221889607717339425790691506220909499109624598551820721409601920389127356366374009450604442008241553227412071015787871661541413829396062078832969208312311798415374602960937814485435818347087466300058254413301584865551702114653135049026460343780946385318413090111642321273051781957834987127370530942913556487232713601469077426891693576874174683976572502510095808551875125019286181111174876037142870894770668632741754853171688411499673230859997114268734521290989957489404359227682369644648918124029896413554683563697035657746719082037432799796011457032081529655841343985089973823413844747169861964178029363381913985644552784209403391015848569943669160901088138410162343680390062849301085956721054337614863450659881501632169314644710405761886035491718124270337932994422625996209615634938074334598505526029488154320293402090485884971181292579043504937028968960440262071333851746137328757972421323544476728624081945678699860243522334973422185054444036335063349065578257546318794761443931614869906210749412399313952064166879304970831890418243959586810930024153156806908039280731712770020171784171173027376699963392334616557369475028864509711000076348110473699251500662813584973874933745106913460770262553707019561520951723081959471051063882519618220395594367605017430281753250654195709828253510838377593649356720216957589997991164656542872466267336371852506551763155443370510131684984586483101971403320707787283352309731345844695506429442876711497901694755092085046741825472277115384990755182279447252255560165387318528800143979642439553513652557621877371269353055625000758804924392167326031389566857229302940456947249939747565268497318456762387193260368778973337795324775585579564712187778525620728242875651965290137561353701091654563675982193927918009305990440139886192939931442647545058460521179251846964009739811084105583165444754235677627946579712315721236679120667526790149021908423780940166837718425374830249218988565179258448558970626934413084395215105247800671953985257403672325605541480621932784249144292694726894863439328652065295037379064361338598107736983663544321375928568324625961106115358670626008787057269229235933228449422732868179861575905280912505447088938957287648602316908595309395703770591659210274738995791530990796810716322890339619626015678117886472908243844889764298590117830472796310824486240144892144444494332693535471641084037070549445508912472976603955494245236611300175383488755139162768095454732804874414125245298580661566677627636703006386530641958154870711977769705102663364447654317674591661643931583131932150264707689703526758695302966330060449758822637921139975067651888788461273300046408861814713625600629841374447348434496212386866542160753952149888520846610986963611486499223442770249011327682685748759156259507316223542096846364044678279534822563741064587480537680092638834478078239918839217571864225757858101272462583882863028047218359637351836950384315802500631254440361263500277570458464128837547683781362852949763687276598447839913626608361217918968025425287040536837964806956378543324608954653284646988555201414228195282386925373928064816086680540532575142893204591205784097993515892574101339507124666849519664358320775655683291833234650063759107610175902482012585438955841508244094468911247023452803298669553689073347767907086023595091252195387510809725741154657614285003035499542779461602664978233193149546395641627468926358418916273635513852451006502616728852548155345769150129683336725713880961799778172240753763295933009165733047167541368842447331377180225637521925596081806765875929013961872468475377768575660666078399461512483192611391640825271610218244014004951648677894800138743416279136875672515595034027115538585863066583076132516716032178342235004457963287195574484766613194166326840267842542437999230715369088425306365087591374898447757077838755400791518810737906119997299690494744381831838201975864399011177835480420929869373976870919931453528115440216601552809274000232695320900884025927687701724007088025634821971751248016696111707849714584266357067373187341147178904637952790350929302885872716928888611064562567867820133993943698592916449789998261510480318943922609246108519256961036273246479727006201250925612715619363782184872392293706853933423128662923393800806602399179801882340009311481740956125023704150889838634557318222439268180359681104813222446239931599030749423286159666549228318301242860892382754929400671265174049860443295048580687603789272094346738511708162820568270247768375806473239422497221170603778242116348314829814810383898917092317150954690366204510336747662634461962717413693210473219703803485122200157155984599236396065350444341704540666030992799576069168897760135318999596616000099948389245967303898271261521903221392584527907623376784603315106508681864587392120321545517676915733387046760726099741777921250265711528568291356133578951790374721142248949265083488907198807839608856974160138179733023738458241038023118928571251851448189756515532503659515142533044034571624430049727918742091010922306231752647776288234317886931328475283956449150269105631546459477712566841532760279099386258097794539024680428459885338009868044095080280674239125055491392900898331323468721995868441812933674629046405809348393984592000177962247947048196823154066271515457311708663222445047238484868412307550900415487123028027484331312604383533629392794956913264503138410182022342949447855383216702934931282550146621980506109246259164628094820612874546704959915542956111516560860137220606693997628415860501058272071891698024612272473806248299695291913465331738543323170730367442514896724540163000225204746704944049929190748059127887624773051158277732631376004278714068455872725150730240713369766159463585666551764319869927831210840434109580362166025381649156082058218406426403691087746819879106849560002946732961825276455759126027075111725671029609942073557922351060901616519798612310245831222819886248715019826004892845747794561463236019617602203022589836772950809318127512433405560290834359667212741517474034689170350359398038801195351706058026537515039352094894824919176238419424130625458047903820554943198363256957324259170031071694552873703655443824507577876737157155987930777090864846428474352232862426723359435468520388673357361004539050767952801998734054958259774176167326944559878973090714027521992109668853189565708512804553166866717552231676858478410803314550792507957997208424022295656628381080499908792870771676989213216882680431499032120692629170162796590982966635465912207427398393735221241842652465020828955798694558006754986511549274619427644401382890021457414507966825658312863591730134092105930411943663988782108495629222673443851453592792071267424070677511009553423800987804760467361161917299497129080515545396689966965608599147264574393687200283201856545938804851601622317087286292696235740707512845331291342360706914075241651273866388519350350663476774612667380460656870577179406518092200037505045654280136424690903535146371785403557259556934041084226355934365247087418419614077474499162676226323962517998326652699441132191440437667730652430355896473505457257644725519374402120522456940239900733084686414727264113506390856022202910490354370294369961540512514667162338097667701172875053266853580025575557601098218743264800079406478525452411509556652185453897932315357684207902266276834479357160468763824680905501966738726514415686016553808275456180061461640209895796400751310235560762085821493293382108554269737898213476127119418087101090314079518732966951312358686325347542514737680961055711221275065863115092789320547414831778253700124596881414182005084825098307472456365091738620978037213672969406104523356781816511135602359411598786120749215327656865929745817261569105888309367174834059082592081235380867929329784662226579870900924247569012442043363891845534321326979182774463868312097227984545631350020280125180003548396744688713010042266322603918795308629011492754995829890448773009313275103545914804699697284554094222435672694111663182127257058769718424728141219611326098847747918825436665332861431772138925035222875877075177164900978279673830828378795226546471983965088135895155671251524978662876082141948736911437286142014479099268026415172821163810532610971087094528588651375014420550958717049000803491347881905525999936274116273467575399330035359670862072735709928190801558327972253868029923222735315169032408466517104760575055690199438331332749268862584860361157241838079591228502814831602029138494562817908819066712948424534732649878192944113456922367286924074492079707036820137716657782220492565395819206074022373383199398667221800970985182719819294182071320366457630063236336794387674468235992818744295181432867770729976572555597156103891104324575494492297745993695865313298436000879699798498743708558388140587630968473265909055283034251925553689922687065275460147561174713665128770068628787817297076978667717103499738571862352632896673072738155234492503854379342555118959026003239629113739098451442182150497308472097943169919129168309389040608190825680156587278040665382316302863072143210317612833539261165469265273133384809382683799980694776873125463061401920827328062395705045191373061825590442166973615646998774616528690418595855608169787193644007376211741005772621023849527327798270044786291690708977262911245382946728292704139495221551995933588027797866815001470206142887177648878436073913342303570080820136593734123445832282354226721661812988543663222473492916083287661249351300057039342622965538808237053650951524724027539549717691660627583083252722978635898408136656486192827375929384222192117899188567867596469147619675184388988205059663615082356393682480212779767009970708002745355225086847171411425783625754887607361652168082521497973429203846937155673176205335350929990233037910203755874152131681410683019556223718377565507143277519630474856975336178248833780719710633429036396511782109077332868930993288228067100318064843942883000696160961690554684844069274243580330314907780961696718532889916679804606010491702106390860754716686427547299699978215243290058630331874867403660364578985774472388246123367606012684185560904406674125696128622530272414586092610614664367840808766544105037129066688422655282988294363125722060170869806883904018688390814332918154875729486846335155145260529622830639334621283634131921011417891457629050879122557491293278657796755000834068859154139089913329044636085088816435884326117906091151873277416207030343473391768644891992125606902648482302173740807702849005464322846649105154872738470733035938098103326718097141663094587742527720742100250005233252966013668581106950962948795880784564884093178808372796960267491171784317479947359480143999113766292360898619982777923873425248478617110877646332032472661703907163250741528380202153044476240296423007656638961138374048673316407722672685980225443104302416692121505584727992673397649017073271745946920137562536188321824088874591023464284282094542704217757588138131118080195081001926334248462892345223305862975269785029314474010753444816130740746794997942305923522962005331109384234620711834249396700924249309756531950947863205883694510591150359489059106293012111916482431893180991510062722241178214786952236773305488010784194022291216506139522677981775483461473395857420177553732780756357928325019948835144418196992242870003486865822633165971160118464505069049273404835208178064402184926187168488093760575983116089471852414252380415915604624255171339100006096212863533268534775069832741241032348916068779172197675182428869857782187009780777659326978628176179041737280014654511475693914377965610983033301660998239831697038166809012613841413124843763045723209050724638678678780928387006970045233132416894674774696974263838755101867702407779691162270468166377721932526909156717692118344333610185426308750227316264807723020368462309942765854942918320825147357335961065699084619168735010599828361378697622081590858739291794470553943656751128146132495399766843304346189221867985818420280815491193975157547045831563930436243293762833747068846277782939635155775832877881413381860162824257144674585167377529656810937723822289831571507171845982638010826696235337026523457064019564595173184939083265743524373690391696587472857959955772039242326551402153381525836152254055834866028583526180615721423873907301555759513420848701581412190356061319391295875415452825044995217386289521204021147539027358638963282600491362812614933911077708072791337269364189463178492004779963721017008204012593884565093358439673413459741716338181851347937684510298929709502052056544150732813535603766989164675518859323203293379376246948714520012429384177611850870585894527100804707388770752187331717253013984016810499560060640892706608617313937543116106208266182776597770131479397369477036080113731608623428541537355762421436739419096643384711229035892825715782401546162686128948690611066880582348235251847818406462298994689755165975589087497173264273746437839545593654877954540938380682313195280618742660188492617652784468386512225032756402023959861064506231282924159672471386266906804233399335057924508710708025714223913151563478333598855373789166425637882004746625718120777930693621400529235477060120355038187016573037799101389089786254801405373630105073783858405648628373325478724510163516847898379174356718887953895866185314125478754142874636202079237898519998815308044944584468314754134598109166094897112812722295704255906425359110762198223532999850720930355650910404544167809475505603360068496377705154529510578270118846346321391566903897031818457442892549230400128848236305084564357449893379313302271476995913139566821165860059877956509560533204435459598043203953455625772163563529782177024703633551425025645670154040734978623640979501524477459619213526737847974563646242616694016150400043030326757924704464497231190124367993477009038162446000856417375139360556160747860594140975380847607148137074149104665422856023533346204027889411302920655710462638100652218662148240888743553176519883015763510380197413451369548004879561879368033342042187811781674314816546203283668823005096657178894992634717108607985495411396112523946591507759125073988498728146865961857089603411484919662291040679104254418175452624571987399977349927847489143181196771715453581096233688609439088824204630469004524135189968297144998073702477104933802548044821770016066971551014483594378940009235733078734384730890165894198287049770343452431128264702737270679576834561019448414327620672387731225016571197177053414758289076271199802931219461003600508965698119114819088426647085905524005739207936337714789704492346720323459971979706201239461077603453203721647879480490388704571395350887621538409187304089387853426648632651865887032361603602695589285855761141230428608377611655307698142394465838414734053841445486399456156704658112010938843501253356658916199404553336321945300310079063471114064041057503395124633494747941025418471568463309468184792995933988985092711012205682106055093364641327567606943633906177195245437775754564499098448835620110269386367859472918506093751071467524712784175881511426863261509564539779673844838766857056100484235404347816519987120900050272850844073438791961614236803698986651660161282213266742579544405487064447878708890582613519658470348006382958567831598557922517167272229364083372206748057128274427971411897686906329350290588370394839795361929630753989930780929546460272893131053614441759925817000247797169597264849281356678616830437518611274704330523509055894522698232647651035378415090264863745761460584608734259410570569884631463013449007451708356592115779140847142039974059823976554255028389523359375140601006269000052526275190444228227944033209845494752811998117967814684669627072142803349199845517965394356346304962123274566849951180270894475279142695511389079039715509102169584488975419146555521244455914197548117822983292763490214606910323458672066011547160652457755741410668403999893119728471560331024013238020423147825961798445229641064086511198630610669624377349389070555434039913329170037794724256574980974300477105612722785584983231963872383148503318804126287087507469182192429897775472901760494983361083119584455767702828239171859500343070619524144724870459289775668062937365365608577017666548889397298383329096484894718372670713819567004042311370059320904647191328002803723069748688973593056272046962631920656270790211559870091462767079894130570165047894536774276652327487284612686752640388587721889325247013559715685975375187903712113556495447357422519783525564653183728253823408768730900249813720840709917883726579675043639677566463405622112730206543513178843770257564623615067650341057536051184091991166189277606827628466201170382644865801130458783872357267749875019942604443176060112840217016526650466111282667474242178573348140172223986868693141447452157681124674937320197158444919521078531593036418303211556485952153812480706775065702979897380578425758196117401591281624973034805801748476632376469392423792970826759664415779749117150555240646487515016966755489672466816361409737994924638826747245805383695834784917997831368372078588681445489257082707093314064603256327557806346583239088231609824772957718329240931704118286548239815533660603455506656605440760752147093382659408081276686993204053987375034674762368895870591289352672463477777605697899498382313083372490232366981783802185730438023131595997024627673804972554922023728969021779047023392729039683902853574824777122291715078162074271999105628576537109360932211965621754838468317792757773796273079758867487049156138935238126921446855351995131200333035616939119305674404888327962661384028728012539772384347903577824458935944656770707061241726578727418759746602616240038103592117629139552124072251125262121774821846138299013256523957627679120110048379213289092001501458557309865367389987232512491379997808842932567855990026793028793596628217777047795007560535764256121262220962516347138798511996080941157100595606594388467525354716489753470527724100513657862505025567172578734037425157208027228524065332281319651140915468733454608902757115853485987526927890634298064585315962482798636097292593067131065545272248144037959370836261627830067587314790868601875819204636507883441851612608144059196332474262307354645372671302480761827919777332021821061705757746848489589026320749007775954695029551522175529876710967851675718906758046691638234305771368129558676025404861454633887851388749087773901901430874868986910280664654459171294154019660786053174729458104496789829836916455064170493863251538982317670417612947284708782403891604317196242436079241190445008954879569795205975013540453597964251829308752126310018490461440377835374105957524375439780043044000539368337807390702401492137724864657052228753510452258648628957189167424122821661577894367960733819422795904897615499045896062705566803115037153422874808451993745051733529924338517134592236538506643978202929004906176731831945413091473792277648535160023535403752465433716595152925022124449159506494053338161065392811532451472042128408032004305543581816906250025038883029649682156749362366384826858122997398474287988196718621946801758878928549507759241694225895398527557886670548590601958244242290988957537950438869709842615042629962336805780265315200359111626136120911108743995026657286801609233695758636511159743676994752326346040192388472673843606534114000537353486093025603027331107504954937113919119812808115721702170905046572896075726471232130904453192207549883748434852900767103001270967430229920933484094357991403759118251529909251077801090543840875449259344272908997275929005124691407913960416964412363209116856913753030425052353544621511878094732678926366906438430845618672778663486106249155445778740355494409655085288175835396603035607599262028160908635229963521206706732615491999209206852347958230811545744154797506318028299454898013889957921790923151598368660914868953217904571056170266430942865889341494424866251378144318509868097865339685200261968253562218948529780795745731329926705613771511363413216901868605396456981738945492980411396761955777111498553128323182488118150858277270303752034330769705614000017119801163552087802664301448435579284801419590429525646241451248305458348841507960798493017574082459296010545248165739418372381663232464100365132324967609414351069035844057353914702869038830580841370413979799994041137925871351611214894699313908027323085617470763452141682086741450556070829725887459664145726845239916080588573186515409258317828827276312080020767444878821466178029681292091358709150142542278637267339467366429880655000464145871908938151892070626597809166948304348638242336725763153847470136292611573996220016478943361941203218951766232941259481147624658637228474716741300939958224624795747143953871367520604652951199746710191996866299442478943023866173266906979021695769210876012799494559866167043841687559666504446012344389164366225562600806401125062713550802118605468062006661149650560189267986278730246868154028541342145479819922416247327301832853250843855296075640336790240514744755087307926896875546112057155795210294383418586169406300813167942793630593060453800990652091637080178030112355663556249267603689912096420477142946221643263964807457610029334307300679528183948170866741699921422536841162309464796776774805211578996397610813478859118579665693567107065845640066210362959211424260247843817231089751814317039087588846098750237189533526781159067774557103528717108254750259155109175010464449035532551928183158695835759225491845235289189018132841632767623900708091211697973500877915816138145319843505806123809105337485651992091898929567497397096074456742629133471507632302277053947638837337370166406362852649692831319812609711668524377163283806812604000715249939539581823606809333897259247850815733258503710376694110437561589993236529328639014312642321671469515595653988116925781455734271887847856984520802717047740412853259750844462135109182233985420113286258719558616121152086954302714712130506789586729473281765045801740872632643027564354285987730094510216578740591625895001281182672798818565315522310061233960379438909281074188952768129120883795678791869608404233234630388112666398040401321059858947701691762536032269825393229691219997086469120383350378566678382058826870772634437172552660607624318823336234990474357857266967047742957430634056379139427587549399980355759770201033973003176700617607030873036408369451968726976720514474891889759596988617412243285517876817674280893700468699282327743121762834779133814534115537352270056706376274238584193977424734454249868871646876100431457162800205137150063045238134685124819270181759590356917645721174510191901549800616111204087260819119734673607264984576207258203898019851065755655209066155329684506012966561238500881317447258004703295262574108121920946763562107552032104460822543726011220656515421552906809503601748759290070373149745162287294547816999057886012250238689717258150491632848063296402359916142458496449895592873104770381911679086785762665347706207627848063894517427643841250584292849420460817306786933245806207322196000258167606030827969816750655625413548339012687043923146147597097553353678920949236438918403315140603942721727759062403035169319544657035082755754051697845533172583968226971798229800278740840385871378461532767226653242371689298858347579471625432853447796738501343730549794855662264203561554813656791948623728498918929327506676756132160581962920219945587645763670469613938499978782165812266341172792760238525804726432696921927561877729404928507158518139989500001816883045122626705089110266635576367036901805140854725586490691984849779673646077907360005307585529542322649037997413319842218402046889308570058532092247565131147934375045358305609523556583619899978995654453086293319206748948985156496344239895606004344957190981131697249288692918091135932032207564090325222886406200996024624227233650035342609347424492099186427213886351406568666162689265819260641590926744278653717221719898022382371769561778431968339130516080851546851758862906687289232031560538362813635142643504000074197229054906913017481299636120124685723065899598275152261915142915243090712995962231102254089040975786039228201830880762709562921262112235115010885191549552080512883539214031259795562141213681467071829780204733384893129021310025781300184176417779278459750510598188506082839496337347578397425573347304391288330698348709426229795296714458569595850332775469399543655833561863121887030347005173815808778335548813529002920479274459673569682328544455040900918876086017865070535110735392501923359979818639410195149704352370871678188622432073609407353706695947790288592997751355391921100411509632512629044199906399498060025659268284685984287921489119377259709260020438912000223788839963578821114047230351718530938639136671800272966890144364985034715759460565217333560382192727768995697537350933271605250199474307713913128663076169964081470578154249050214689283900655755915643480600572595055225769428971065777354780149532999849393129874007047040389398902849685489618644231856026315490927698885731243203822518100400923653437725158631876489735733066070516290853688569401409959013266116112855547860653762895900807456919459949746821098674637581427606986046405045677905759984914559211185152657362172465230637534010615051564493066899467307514073017428854055656376807666106845807466503306942180252469766650849290025134545153455778252325887127634935096849956791333852732134766538194743722648902668056098113297059422453746398176908355767393512076295470147270449667360622801142096976737378737016437048370315989831883745130260647943049493739235915257007788340073541872341044237565857055835699112030571699825150621696836469128734874838325860874581228701412974227849532992754425305637951287652322505913794558230535422966160899645364972305752678157343398142813215993682575852438390826566428165448517703340187922587060052793533295239901337337609301430262731628246009292515360467548873308032498405783867344908852867416013250419562128818861459528773110770595858805898609173051243853331222094022215182571591420059845136717343870231532973780845965658041896669723336752818527681629540933336347747199983625442396012446984532370886008308495734037230824749520912712052912339111717828155494639699047109858948349379904308922796087923973651535594701678542693784833572845947860950429098094552546584965742470437713993319279860233309819958564505373121878470391474863032425838678827021660282360429851469716608103380636960703935778476336661279466468061101457825280839933357140562621952859994495331959770077637153487178089970907878147099690069476690755150986127112080057867614021488643923654335360158307920225876271761373125436882019978839681697758766015375056141210138119528713542611141260995781711143782616318761009810908644634842946939849728614733555075225045349254615035732585409408860230392355509419547975697128361607179447332674684782720758906043940033252211605533101731856282232286504949697528758649093066192315352406195776241180254849071888826709566915650930288282403046838562181826161400908169748047721972165312498920017133549423661882066328460581802322737445614918829212796771468835051549851088928939629450543774608628062320426167220633669426579935762111940366529625828623527782834524214089116958813924639054769612814048367477106076968973661048956665043528255373801622019638638329270196294308859433777400297562064634757852310043717967611254675377014617058733299676009062750315837831312565045541524594209186901088748484397755203077179809061730235699829927647626743950931452225623804427377084312969910538689242067692430050367426360212704556690961361834787028147245763979867625285873624742887926615400951411856784080162562288561478717531656140352620058838906642834438872912683599827882548431182704800739966803662748032227135489182290164846735289111195095946755653155266255655184569658302484457464078881257003421091803535135092111292284009678954796456580242930428988528951210728482672831259255037061269531073509141691814654264622886791786836022510753333731464415084535295424189759651827809834106951415538342377344781424649186695298610723124292365296278953412435880143419679882635518081875463660954184417761870412082927348737502408393352859259285603738278852772517003580804771703253947826808246960932968678531492615595188913366866078408315845783142319943913424361214634578280325124646449349507487518338146192142566848727261664771939515074155495671224938265786746942268256256468655857760790743232016135547067172489267164091330085308809810895770725927878110912298323211566076430504816220869416560796533086705033504047048825549205587444656632813823599236368438699053641880678476608762565459812187373136845257807262197436733744023881693853905380874537773474272280853525596917171458456047896179297224750837081723179154988676703252981463512994300829961946990832790524666342059100001034073427981382170858809930326656090270675395350557968589068392388138763902392672238052133564904133161155325798129179666901901434431102392042647037867321672783187767620300900821834671036238711904175874077388595108229539551266269100273842647927796696737955862313505175810184419037983155193281128296607487698568005939985163698573876292904568973632442282725776399150476935200762713968667135476716230557414574945042414279328814643483649979739090169511403098026057111868232285526992320602867266106124330038810341574186959660491289844947163250204506941800376280703766678908501794735242451293393669489820236304531867940964337534456957739981783865784412125204358944439786929409895588769043993886826820955849783760734017393331493137395243177149060665408114678547792035319105670768301641260857621836365376081430428244201146117897169009868733894261809948870900686811686384488219037202591930814987825231253321884255177011684035378910060976083922223192894311306238909498124362538474347990137995956655010796012465752895855720654706230864869314177974181613273211400929622112613909958238017906065416214257760724104323527220054828486745297655616324533888557693888214013085326328225767921372418701217024090419102125351586259831718331426175907954164591650779944692597620959551411404429883661616534320867408797005296362342558417182349389830766850804398026463398313836456045123205071728407819513569696367467190571447990321983179068640196980784239445111855713532257455384359429704018338909894658756690324914189833545553951568404391089215235111839606703109022545585777146777512837745001136273837891077913277093429926521368098493040406010356296825786016784585541166415453357300693781868923241651103137880434193390293302450280901790519271768228017703072833633694287018157039657731557806864312470773883453798451198760362614504002112212879960288701215970041082310972313539608321141064719631975327396782943080159181848649645944006779192085194871892819017149953236524533299830927031940806441239991823234188950214859029000215100151557846607608467224550022709335889551715448537229165316560670453374462614869871364464444898232465707657451982236461383137180973470151961432400798386190341097941734774596488109989471474320817139757749840778207233036263316758880112168118798107769503020560928311159012847028080882218330723650069996365071618819742499885860683219278279029705307539002050293261492954581696893116213723475510548739872746764176855616346417193444327944684847570314378306770193298493564649624335626007712251298507411914257695968578826236309636157570844746656710542024096398041895972572757702765728039712281124870251423553844430409251123483825533169652939753905099233181962675436447984436537586659226092920484296894752362335247015884832976106908775576276753268181102404296773723809503487158927937329850586307084003213714163454681791996131949393366597535845951237390377781991719250725515496840911684083390291865433082955731819072505157211888655253571201981325953085573842374541650141934800401142135131734606743840847233479172088765783761520445877142788599579554157395751316615477428136207198404967275778317277058683322011812303951003332307779511589665338281533043693909659419231291372762184740059957858109009430632635136456486390664631580195837878491838410532975796022844639005420995759869509529510062655208728511098754329153092112551512240709049864624881835596928829876192757018526244068348800923975816489667473441319629750391308616310202922158284414055900843202822820450061122519163479917949136211647360598026375490516512172024236214451703736798607026565231309539211413465452047609522860732638814610758864457042631184925671211921937291671475891860935178685050225182505364187350588766861492237434521692481037571709436471078765180821545069273097309586401340579274138822239853750273777236030452118247813523746118845291553918964878118625476945963108792832389028755550747181451901685810987817951255090867119256638759549460656976619429346491243817196240346298310581774260149609713334897587296474044100502789089461535375394551066934630648561412784140700769116438567046107049991550263747531265018848820430412845896177670423304399288702502891384447216934796732481453721379070380001652873914612242678670823909095004773531259977157025959877410210982376929260640203346993394283223832140829230704804986318497456119582975589045052664647039790457900037297454268271273224421094566342765135466460586923601137323662972238001760352325443500969307219850243989660265656886348756079944035383356113131658022209669058300050388321881234588854879781137307494680465566938427496417862879312711474865309307967110498213818982808674973416790416061476245384336618091862788353688607750977806103891991985719930477326031978014765836975317184456930444308939471467712328447017444572641666463027994077075488970158777953361562082119581500258698575551054398218102270832432818304222828801746813791295351640306696989294152573918149840671638273261381404721414422086372791156279543722022177066326419213196902260147870624298350528228189869679613925492924990005667336570181669872876496978156751723463104195599605970654714470775920978867445250308841216703434060799841886060884024732603196468644984555565051720719090312955067386200931063046652256439571315092556044382913748458215369089784100673790396554001316167573755488638536381336187330185510572733725445943763152179934108609141479141094593598673889938995107719267937444899329811626550209501662023594258618198294104889228780105995042067268140358613072539794254076752040811682819094563273935603680001012360479961414365140120449592992565603767861425576210714745355045176641804746653425188501614958177079433840350822713760860434061299810920585772680998869001163376649908987209290057547438321157552005494881621475958930408707798498296468858663176453164396512129415977028979397131304198502009919341773073595822751646694413811995175166710183434631404223669787512175470852090648125605637510588752902409328858762892817852370133051557932220248820462323518154909926269570244056236300461732355930024675433562586724923517594007315153752845513219468368435415907301920763022834647263559645619665222439194935888807525055530405384597793458429425339126269321172108095743248221706317380413980847715645744207376053781937859955911740955904736481366429293185311395938456279465272543010140841641113339208103180735525619795481556753611527587482164117912571853072018014391126482646947856921239357662692559239865581438055203884952416060029740068571741064325196808523891518685742261415449756240703285486531436596499960109623933376501681322986177425649642241051403466540262413658548411794858157944174523054064970105925235493618458525946207789552855509473143971589255171480413578198045920810318842005525234233098409349346560159274009428860113662531768769768899826249385451737025110023503027098283352829738680453997734349907664106439650976458169684131950544137766047523771225229505365251190863560588380342006798102184017740026349214293225149613324653116828825041106522347428627932293510361312348807244145303700374257525139037202947817831264659738455837435295327707925028069467119788206131669750874853168640770773375054126253272357301997338626056800446067355649241013478220016731327578703322685358983359797684983903391411936539857937959561413064471081628655740715933723048779984282537737190739563132042612773687467369959207250936218544687274167265540259346115769194180638200052209433040480365263818272053570479007929371219706168070273282815427127161772938807716501840896043562893589322596559818419081652286252377301824050735529694272000936873259359958628296931964841880534941200440308983202155174126480818663721378232642011807408976328955267964794284767490056541708461371814213115784985971012694912618578198545608751583675274176783699204545182272008079470144939414300025232534375099599382347009216584627558485690335153409977234272332844360613789524885519072934187995083667397587885994968052312853391233597476868901750540561678392575580597687164040742860504094907565517024672021817016904671579902497178341686069242050858115454064312764953115882486863195025995113676763347220665972529162150956350323793757155992277694985843237231185371824024515841786395865535019171439869108770034662447634472173292022727719836676681504710898643269701154875945215838988826651052121526639670166611636136008953067240035729478091627432479955510558034737130023842371150429684373200359621591246331855063687553976403789403801438144734959360627291581058219413906484626011554270663570091979040773480381548811151868667011306235142363463078244384242833882921489724254586728000404217787740138411235732743693539175692668109137270852175112539744619703370857055341657156855924175327369044166418072379274896606244433480164661648978499372700058223796490615223315246169696332106401967141190545483701028087054887474747741398929759378684647738197581309196092599929160084915773076779619127616190290509907270592681193650712381960765262598966468892295452317482503288821158343154238099505633105081555717205541605532001303435759856902263711013452760770421279232037360514072648298734533073312076520101956959420800276558139794478774032222230810509589013993082895309585649826733351373752614993940466517837111711129788634907566224989389190221088477222902737697171049181645373847157592809209178744590705637016774991027577099039649998277438581472448026193581299820700305587006171027186167303577455873004686109184841758085302007483270558918272241343312215252856255038940404825728334662203585257177061178045164169411179603544314380040981851839926631503886140200280092859040374016897216852951865637091726582858243139911505690519344252994237885835502609343973000696385070928154823579718150676960088383626179591717614881851515666437090849720481673230447004723765356147846095599600658634370395751702875877844097768571898844082899844327555264486783608341790030634079537248841184109380015473722236659421316086728412705248300213234933954952196591054305239922909597055043992232500816915672281831872570855183624132310876695054417680703563275703721622328035688424425135701612989900919999454738012980918559489540429061710999288967258567438561833683940780754051119300257528032625522828207018666464338347644523350321295629721850482359827376436897774499280058582280292136365654861897087551227526260126205610343500751490042824731830570635059918122833665579327068532754070889287400328087085125134954111402593918969625003709485125725951788982086622597272418224441153153538960277432762798185606045194376312348075284971363242352410630724719666640890545746414671618161464707645340937668470473435389312434655649336535703379232935274366670566246361577748408358546819836242838531012879676991818378280281060255662718546104911473814333911212577548390283325524579074847673141998886661905600153134817428291066607672878466067046875789565970616831044697636278542185139173744671861112841753096844948055217709860866857630782605998239933995014873357410575483583449516364167581184076563276697551177265765651596894610529911695394082722390629932830502738749498284156661479707708812882700358862136687715069647002529718377324885554270417146335629088644507722927089516255547816779661031471242968810467611171009432322643159751725600640362204110696066174758716895838066299382183654221360949840396650977333198821387209624873251531151961032762472747953711031927045959457058288050430663599154397851411444552371142662203379745194214565458611575206806888553701874178380102755451876084223472766526338102349398016145866619106148457390165970824044279262961135793721897435791358404066488779610461714748374278088760250149187006738384358824761383997427490172585942869112339343089959630313974248950472491455776841181946432322590111814283130010935194089610853939284104375494977156341576180593830612913918626771645973648545863870767430869360014548657873106383698430483153108896498989287224383863523576833953255399739206927949400753320425099605397270490757492697842470006992416338725238564995480788969297517427984998855542061936523685961040938415382979569257056534570607565491600911248534081126561429980045172227740436391410304846688187656366121034027047924482484667795162361601202119726165967642904512037060656126548160678235385520292278908746802276495318244395590041187023598964440979787956833044653300769615874664885777086451382967110066710449622175863449786882848100257713727747209610680958944058563477317628523562124680960802962165311142224327508772966277450098712489551813920596242457924595779014776034058406255519953833071210750974568025005662456590569857000761631648575647879074486165986370309025906482533887965431924315151937622492403444956328929206739497334527056246130662162283284922239652640419688984759071721448057760365859911945295387163691598696311089349522642428122480257533572738196780252190681864080449094298951492188967366855791057023790618579188966071154362265517882276126429560219868014805814367123323135082816208434370783944153716963831295136334633645916207926735435223612205242302707020062250367265265179648123231006410154612700962345302616257339689875131297806350329538440057900928566888230724697511581227903310397985808266190857059362104039831504486829082836902582559555426878907735588284818655631257612154049465646151861491383095396819686046821627115664088903335177257249347597651461970072344974710392105884974498942280546653030711062735625548416311114088301568847479660898519846929108496475795474910663766359552499907094124813144491140145855697678390846598301928494542725171849808658582479505097665731670139625409103973577832196026997271847529976054447879101562755099558748547868119290707651554703370477191830283042713265849482524858913331599826716975366142763653500156047582510892248184121159651161035382684737633299643323957740883409583717070677146370966577407778611078867503923814864813581342671792197550380627609408530938549095744242886967328509675054968869768139172564109550327221179385311629417670373442789704797563336969913359934901634060926752442088805424661916579008195166545106033384492346644258765912612744471215700397688630330303311426326107291678918419883782454383420409497599687373577710324114626642860539991370088212197537931261437283510721566211944668019482339737786715288698599641548483006211962961628289080781956751054112096063964926951504616393885112560092469033065088228303001650709556226578599592640480472537103612511420273764336448951745417851000182397409120817593491069437616501403690022305319143681025767628586226713795211448824824882112714875084699377693317782326789169931369258876303495205828613818859683545108476404672493102308073831768267227143068158961698494014924740493994755147235789689265651159681849853295083646206937034214200774324599718055094491454341492377699727142979000150545317480660252482472120489494963383603746448558020041720734443313786481975857816368010309821715788433116018508173677367250286572831662773762700067911860361094850222135000455170129669747733697411067196391928871266985079420055467954123392008148095904311563450086642875748218666062995365417653075779667274995227282974054047888381646399566925334026368515004013819962961150603180257083118698575355475050606070806490286555282805062374544071031432142130835452240983202371599061317279451242595362411205802542722036137714646360340688922789874755240640892517113764920947613163782967671955831890742448729411610067205732425154700584444670685070036306081978147053970632847097705795077368138230323912744110402426525760367393608742256908163784805612580873478588153867415693656556092922984579250849723254416660165534814727530424014298365689104966935875309113069612108388495069837777465597007566492156678709088815277299736154441783509008205947732385807620177966501384790072683342747406816449501206231448689358344294542657253248480681352509222610381247077151335664716840974043788172757741635828359881473174996150298641555118398828052454661012752148156090620317833351367718897737196159995561311185083297496461196071551351834388761867714361722418256343134069676271372344970757248019880296657329286750046794180698216339026958985487958376484383874041044676305279316356481198471130300458524420214986608304535230057675514716811698378345280720134329775396878233603412504715134710749897064846748502990209129808079974854959470732442560041314146150314002675082207176351853578398836478947331084353345895574717113247641110203802866462302104010164285535733712617922025651132290512641022789500909719351356671549356969991172739092855153790305044280517992555505617526689051816723436426070204575895563327123297802295158190972213326418825667043378036048062367154562793099725961005597472232936197674069713717342207916916460400087411348460507530520333982919961227597416418021368547416816436097586992250796785363889517185274410283905859422748871764847449230943105426292784743703430297366384379871901347573024800790903743255717480124262701651011511560678429593803175380789259933928166808772471396716278019252757528709123412744485246950410977398369355278661580191786970134733456448207845023454423017488204873283141217312130373913366169200365966583005566484681238741852776853658434426270833518153638921859935367398893497936609894005174488946886485124172845772313502637890070585921513830409125554399492288960396018683285401806656293955808858769858289820836623156204053927002444345537382838031904780162695398588500812167714442245296202796688879197616980925900857979713756229789356188299596676880408175025619954749701696864769707029973757974161389403568190428111623377865179076838447126546590762241795663607214666213643473004707968927677757156566914379921203042097703608153398695678162530798387674849220788236241449597348528761166162680161817005663740092347808764889929361003123716971576687611780822923803134318940281048593697756297028963835432430390251590499677846833528392720776568052939378717246058954785606668846104259469104650969863303208054875553984732619564433617091796666596680253012932052418022940477876785182957090232238905229054481617561122312663254998704053450913667828529088185767730145073970482355072165638111550430765630715051710729012207069547975114960921919918343598101893223656124297926396887446642842438516558534626213981740284857229215088053551871909219866148548577611378369392098776899006708240152129961922626128421536314807954996211010478542586169394503845598890897542642057123525960144801294460108399659482554126457895839397207175883256991614609298290405382980790461839562387280897822027088688398589240427089542581209315410645842844008662301996508246532518550382234720514383814165208838856756361656460592389000791928601074626088321629633588086798629476068155949437838718362589608145573371824322557540052903274743587750289928153792972258159963472155715378607008828822706686771947773017953436952359956881432126528417943984357074874616920751025139582312999678302089415910361830411196028669559048336195370362618319941610120258945365759661396089355264577140792223454507162033955570405810851265979367287848769589370109794427523028084550416414307259650423552726818334242308930066475991295301169798183365145092762237263070864552063578143967958700913152611164540607604107116464530614672622907258677473449472939697260794006670835790523987026340951749784003780892640975886454596277181334399271056321608028023779729134133264094143372324244517546681796336040118834438518899470826928392152488719257956966010389618616227696448976167499149385282264052365461307110440040688192301063988885972688403956508389765216175424885093314723590067882567129118218245295476260399092744207313425189945619192131350348678470902708910236178923164610602929083841844918162782183804543709098868061930615632388243370786317583461401220376094621071226625995774430846067683712975337234332331145966663494943665958753995942840255181149870249057363197950837890835340141396275457577602652307021545329998649215227747980131241140223519707137043813303259976311388586468626593668317797937782020308114975749402671838470898535173871438627281246372313724671531109619763997155290760009485243862575294144127838794021517043215262370720854006753906037232811423667318102474258363236920694613698786345674358026640409351993879941383442848657874204882867409366854173642738067568627065967162957878719229504760959069107693495580648887192638018205530847951473985722592426049342375640139303455338856751025357826801507710372283321468279972664993807625741632199718494059123660391373056709623423094677515283593730839562298178964876384135749197243119714475471749671285524118769021384650288074956602505928471848327790494852973891951133495645180112686596268204518131174679608564593417183066797853416221761206802575356683757459546925997995260653361618667048133915041828574536205406689728107518993043232936891954191970989686204402218726008932617805369952385047406091509776009171900077102710199940373917474716103346754307020491702875071518065081214131546252123991925620854094645759854131998118228429373351755506451315967464496741228992062479506126551182404465379400405873261327571522717385716906586558922688496293429631450591917191529769562776630539534194818634954808544813419793101467582745890153679283432211494009995343550148690004467964986861514109354822220884098710402004638269981543212476916645722922413215577226205234689445941013295370123858732769747357334003508278444780481060792652624203838196062323803406578181275105959358639249500431079101154916866130937964666299424294234833313227888848027617833052711064027175912727602782337251714678284167009645516387015594955416088270309474282963392364246158829030442267892142099187644211449562046684724800552682640215174447241354175262008192679025648021618438520528767773298895786912718519421749972234715239246592215782549594795156104643299996924214289397323098106665614520178703853321139215572909662550760243372302196806131631294939654337714298394307389908201986890364947928508513958872886191544001617130201443446468375514809426265223296663945309037928674513630055923369429878439796963043383780601621190116257898738490579851993638875704398946263750804450827037744397903825672333142826550757837672276555622319723931031858133647383513047744130068615783722560819621598645105138925850216894959438652035920121493983947305251277978132660740986327463332114610180514522668222449660397474083456630524600717393604799349077404478256230117770847143011204225265232623298173821694956251588839220193976035004353849765551689845337268553099136208878825336676571388120716866658256914730991247019767981635475794561625830129828336889039963795083838293438179410892579663589082680787945216796048316763515898035119318028585005597659650110320793791046372724244564701021833188437563453225801118111415250861528857887939698991508758168276992171411591090300583384090851734905085566385838127998359212382204437606449543912327973676110387793750561134156706768069835294163440290381668630557360455730008110441996325424158033456016894686524456120093089471633296487589759938721146149926515801277372910655863161112286663813962549831996386087578729476091152358605777356228181721236344596185589767211294429841271306094750089776723291869964115406035834524247578403012320668762391810900207442931562967311357782677814478652940662066411715865089828396971031525101251151743788330399295675948830700485077965190359503443956262532386770446097711732041768141348786651611635168910712993077766661716191563321658855061233877230629123952186628110153166742937102526139548158956744934204555117464191013485626051567415461375513145976474703949685533816673894564160761402725002934358540500812314630284969036296386549025049654562298285139462330994479332489053466029253716170976980428633459542245813644491272657784732251000381046411718728462051972238959688828840806893465782767963271911839491032207269372216622844612815850847973597520606076336951215594660003343477488985559775313775711221650173989897276243259292848574393307244562483529274504413527720016335244115559444153015870083323989411374581102511245805347940583672118921449757695933514587523046773762170610955612991550245723729783361893699624095314784917992598357711525369981685866628018868912949945878345250525891076640764404835926288722456047769775164616608934719847062349684489334275409038928897289986408846146193696578861928401020650712092771994669424401425147527071394528843661924893217311156193715103584152344096535136825601320990102467107560035103163072183220481211419714200113873599637779543599928562061386311892435678539955674871698236318200705600181614075799560135198914095518354930938153051313568268758574723365637835312949816840219244318581073473764632464236635580156472630984409115594330344451292639563397449936167656179561523613435031009668854279877935017551698288559345020217296271732063444618889180724741019880836475163019897754751720754991756012865459172846759025499414903918212596201065345800815751194723552863163157689539736157781434077339655969978868136156058401943398543194840095311262620293593903888305918547786383708428023335276243666747631128524378021314318268593774308213166811340188455456875002686808858744320961845714479174802767225925154920249692432886292171310755838195545621029295998923615483032207355115740761061582541036427830243048589385041188281485401544859377187002262973012778645760529784273917251136211112976763943728939263389421643786933384014812021769475232859400034702103978855011265737089219422040215242498219945137421484112352256124800218408832423148339977581359592051851094998170870986656838032670282609646871705897700044887297446238801116746804866411433361297856204704453933182016256695877349257992161662583951807926120835667925618266161688064353937028644749941358143768427150628660324978685586921851420928323866416532805098377185395299385577315693208732625259053444495260479059901189424767689347212571575125461540031907964470128336462151217015619630287957411135711773213396742739204887424611494468832486647296043806189749029250140686202072263654716446291755208583234909603827993843640842824615285759397549459459756896870632407489645091588628052625525749402575391010259107526481877125130213278349387078303187104962062630599791945437310416909678839872341461869668864828569230353948496634882518361863169010675297365474286808431397457341283085127925764637512915954957292505723684737400758443603417111522457416433756452114245466599841512170823550294622723954525995616417637639864512642509438287442500077089746657466447488525391761614782342384164532393432937243775857675891015628055340746695584996371413320249529013455528388177330811980871345417431047441153532880049533777985715099402821109934358975420977441004770871197407269901406468074033236558067264914184870647933147821063424596884531236385957877587372477541340667028581634834755650377708109143730649756408980908092343203106893306089446340968179438899331594929161538368307349210212880383805172289792988730732607017772752886926408594675185505188708327509373977282580872131479308503332293279247691169022849127012734743949339475456332296620655104259750407723097514095799641528791384761849383931901246668945400033176870414392037325912539457678279027689852911164887347912557301436117593706404787109552849602575356481726329083338791156054883003954103557713644749691387141249570963808880530826222385399340998172065219997961478690198394315905118404403231285093773298521467240574932971553521677568057850313253495490130133890054406158871478857756223730801135548671587213608431185652144421817528194087060296594368271106705706247231368358775061264345293151706049054033397594169317273753187295811269107968974556052747048983791436207728513367662353615588211342528306196792342524383702301571649558926672602757641855907792077840247878860912855918172223106803886282520422347891227449284363846791326963853514509642341323658278739594237187872737560425261099181564295437546784454472345247379141252107905731576009954685871395971698774599565274417393126799847596925389144936400810968549441500885664603110462058644923957811558065710129327710930681100702103786706372169497580075376094353489851544514598155932733375134426935277793597862786238147179706994147589866389331621930407177266349274696971759154585688666136887065739441685382783223520486314090914974705956664103670311604374204190548890684336849324091052161697285857984313640899040005901760169094615039677099501506238135394045959106521421053795881233837164899338691699841126203907782328382378036811088258400174197679105981005615622952532775286530893107850716441776592784515881516787694214885323522948738089810653644744595663992331085904609009012824014096284319561732870685843152857662372343005856009285177473760611111284801774844086373862020831339638568373523354716519541687788632497976169518629112718433813438508978382480789175974264118786873268139480442595875062518097298022780945564157315877418031931086672093624077359945226206261722764100199997131621197732982312164129895584731973439204044532001842561618703996606312385310227655577629314323078565396340358533774600119029733585033817864737878118257523365515563821055580352480830990803291287005576641010091864626624750414144187119947335133098011497883761132754188707342360846811737693575753472322969674123014111889703719695733957756853318527714768824986660795895207945057188942027143311527947643781018768260428053983254970846890860892754323122714287406464098370854929193338996595985767509382266673914008167063072640055615519293338805050285796509202316854471364112353543231886707551542692153571651952548207824600057250178804669852480988790227701324476822272425288061690208921890015280044203095117826958631115298596577535051621636615957808252335602523648068941390715072304579997934821344544085761929337941083577599197673543878476487252368595175993732075065049391468321391421246240035371785417961820033839212106979201933855997345632096691695338977962236634299270547859856081595727492885828147800379512590857872027994596541307489310382541135635550142557466242869559023585563642145814462389535009391820429481012174532928846481611998912945496083123454761709676440005490031623427851116979398377369419595583575389636783700064690900721231844126803186096718534887093650167583383741925414428769719753851972808024026731455187061975668398268781470314837769147813975546610557741713902199911091979210583797370053592534117819206031105382236215306990641305426796295727398320391609342062461002726593707423191220914761640261057131318903972837339784191944857560567373561111257767418989082039439126399366037969867478115524293018213880734260908467558647954477470562281942132628314597598777187432330905518315932632990036031682444205852764274796905055315369222663663767944945446479434807893750478661767124299804741072282089672211403002293463173317354589509320910087762762384409703664114052501702029600393512455266490273309053403468315885841166495174220814525665760723952434377867359857197460830862937162353352059579043892236002685556607586113656244412924583266964689140895864847188414573042284122511922648280802970765257928585898900888514270512512746859226488676630771185396184281630507409571194415900197374182531904122914042898183612799933749066863545546972548406868824100860306184111231050537694930915808145395204167304840688345931828145113221842195386013973102914382659022111544531504403818518161670747787456005872686587748474193148886533921462356026191935205112653243410584828540268612242018629272412296029984381565103225844315465144139312693931910054909389781950495202422898215360670094836405168035951136832756767005333302721192414561011672717837860011419335815783022067140426492162215075393209706017028304501999190019926492775168724339976987584256180183434999740112746026872693992173234100071172315880598805583798457918979098519704053243847671153826656860891884013633619980717453961555872531587972724010582168089064799541213933421255409208371062898593471992255898259260699469665453314082615865603114503627229165094144199010657609229467840422848666645998945988090248407169658287072517449009249297133547326495790489555840528126996774731965348175370579922960330343767211284062310976487759097109785370112172463393100317954767122015492603680696941176512718082827820778980323997807855803923450658142893475341668705326462351049264240251777096111662067654262016990098731225882160543912567635983494718643661354855559879247483197521457361134325393850257026158806765201661203759731330287232841633176840674257160409539079438433346018563020696813567603305024639341063337535587179510918440451860512997085409765068518969261438909488258812089663863912824369371263879315157302117255540539205172907916512624503104984363111763428486655730174685389726150399345300750590012514077226380987944963306508243880971057072555686401517632853202025456619078005233101220831018803632514444187298279451645682232489282881962192314817249901697765199445620684135274796900457268163628154966300706644011726653474274586674943972931618945223931727473002443031683395545501372009145394583877095921788041298163839390383238337511574091947972744651187388908905260784767342267553885168625662629687386902040464303854436770666901308874953526234571731896303161363911269297325342600983228397313545280391162931664514371538651288826580188781112688596374143156520257235683308130345027810344500045914458379738924983569155311648410114884443888786296383212096966195274328345045554914201173744511199065572400763642894479392459463358734452841596805184712317915057657054183802694239056214620382514252977862482198953683440532641187740745448790183089240721865680451971053188341588253479095913325070940374613022319802823027954451388282994942676224868804408366448337527646186990556876935947264991819574855610031984483985739019694916529887331995740485245612930651977321015150113006632422571936407572450317752022263186305549413522787377654646011596278004689932774036494082256569277436097889962365495104280117301360320830311782162019467376308192799365102587023081646812305540582436429918348439168237060867213646823343232933657445811450174569631612959530927453793821143116871738793767442681402827897974845018658295407437067391598267006965504373578661654475495356940730686473821945701441153011205884879400697888024574224495424387224385778778711572536208401732939597611137077013449561323151535466921351787711414687776264078535256057824496120601208538815317421770474743316172710895887699893345496344330709548795482161133513641431150758589479056666264200315371462645817193797629961587517284891203134449829014146472988279024334198521089955174657173576831417874682045282260898848984888611464270791335296072239484559755575288642706764092441803112818614983653207020866272723567571447602897991879561893929303685677261534609685053832363085165744995210720291771794080448927101449811367790419896228824620539442406276942982007252635595278467788700358301219225388450841233831308897602576955508619261850128745035781460809867574871889284658163660388368832329413371212532469428513501790397793180955083247472646409085055221257270647484661476852454086219881569554847351369589523544727242592620874803263598170988820522468828954688772938820200562505734831380472003832424492238068459691106253571381537409752884958572902455926519576358487539088382223678218263806711339495106078494692073917719279636055187045231303709182808575511128385156330747459363043241229351679397789509521785856300438579682140778253442500587524757803513767205281660729896328207939360157707223956086895015863274683862386205995605589433737488258178782335625715366454738690497954699068168796799072474913679499101039361302978853964458611502464757813560884679222445365044517369763765762841553241888381585104694306261417354914195202120817417837454944480991347024575757660922733735784903689339503962517156855709887873652570811047579249385947623937501382730859741336515596646828226712652988124011398762058581216198699852620084945743871476299790395425727848901973522203868880165900230170030861079249421494085717597734977510048378436405907556475206022699388508023991036465412089892647878725697907683058664179302169625364311984082069921000336727432231673641713954234242499152644414617648419038729410267858478180849066691536582349940427906967240935260105378408382016244768763573677559679205200410978797339334970839379583391356354233819359098283752643986283182102591765981992892832002718852983475437769206570309236572821896190941275997567425636852212675349421113190947026553114032173406431898196917855668836112337491044870834405126097388862091798243724184455371480619717634648820305353393645313946246056130621686565666252639851597357326615970511698148105359664055799545074869987493051941824886952505697112956260034035161797936068611222164795139598109078071826828630007755950552455763552955146136716647205907780888227925335681953226213856073231735274632027928764620421539289728534707539165373546168932378895540258153597058191828655275194607035856729532943487044253337533585117304491791481921422174853208607699364080013694109740315507580258771390390204679367633245263807023041735261938686220747511372494631421656215550310648738487009341799200564806377940381892752614506349983304473894899336423254191342344162648067102463492582593586695582945469038188368925952472100441698208628225332562008958448231046660806377488629988443228897276336470540470084558138974708224888385965090703960148785233056431937555199129216484389499353551752367487748064641399652938690162335258673652910592431282012463167057690955011552070853964598119585042553401457705988048109768465006629075998815949027850867203278730683273539538635659604603860646431108886555324546998910397617110325782240295333645478547360169210703999928699533919057197432435752847401482517083642516022498914987656436132032413008340961119821850060416097028379949508726749605315286089754571641319711527034952006122684701371108960653639796942634783215454822040414871532454607816675403012930087838040952131877061778085278116965819039105779237946159261152430490923319100502502474502345556661315741002089771114877385824153428543116195096617199990069471965106272567270594067761403488183990730859913485725484974229568064020432201354562306271455370658821513843094897291815775050270109654963944763750546394010473557673567856278069696664098314345663614511289388491597811784204321622579573114150288937866352509452424370652014276934201393581157143703167730136027087154085527996681945109587799713533621103063549576548815627818837181080976101038874763006483750298298139357801084707864984979056089166502769889775683695976280154243592377027071473111671797461832322290125169644963017861471839529167870330909272524389967523140251744121855142298177187720548886816836004492386830178980001592413459762510556470564768689115224077235794863974652513183341370244435686167256981153559645093049614825059460219759030227756028538698375230174321459229574883411381413358370166649365948931969321802786776139046012352269122204983629397942818635134430934605619315671397196304631336660085658763905715425160050429371775098731535943657587600756229455858881104188016640339092121647132938142645075066184703626037499721004765025696380664353771744375777091076519232030144625680779784529640649804923894116525653801154006297882533129155526456974382506294934487481831103285358226145088724947266147767285743404107523644346468633574687035904814535494903576701926724782719841267381250964119219942083988185946519013247116854296347275858256115166885396139590160721442258547398086751849158346343842492088872571698223800359260060299523645263660625474981570210585269837101511140436947496639709693406065691072003743929179371866999132279854045295449679705383819506984624156974969346249650949956710378255400303021819516919157375348551955876680341360143289976144629357946080153438547089246444998326459791350917786613241798881459968088733318197287360761040969025036753023503273694019083529391150468385213447244615549132741569626552723332034407279541442970792117936631725347738065099592554697631840789263708747246358897727300974381009977526650095774889561047590414750986746970126355883575690332693797352015740105921943510010695613260924279579602448856917885417278513312180809169174045319294797698243669051208823096062216490910276331994328052991387655999989845006581225624849885792144016491049120268668281698685014527369339792691749914412797693263618312744156949246498239892249539584264260283906301541105831374494800918267270490625394610965067317756059945031141815423757245333867486025166491149193640982915831824273519459264549147785469456934091704109338721727106170379268270418823667679682754780948516104095687130104402317268844296751677029179980831132727700774325542250372843966290395614765725521257979620217824215582649963615167837159360595299682382439278148263576059727522003406526892435440120858457622251003886357691933853802758291303444371746985075528274071838898683426734719492245339680275235621924670162623105359305415119026559784197519192071373410373030083424337061547070154943402324929619785611407936526508336427981713896713038939124020381841127024132264542342308177611505989169197771766113838977708857353470766377669704484307838643364651361272469463307271115092078294689140792990027590250793412432513704316833569897276080161816812301519475780630434298910738741437319581143488822572554557918157864451447815286779277819967767056378144194236523872133960275007199555667086397573248373872418036418345529677925131081360161594402104907914499798707239821909905994525435081742203339159803900801968207629149981867403953142496827176421159514777098598656672446283394594211380072711914832995938069684432197391506491308352881417499630952299567820575092463388194937258546936907963440572085003359935791811926918621401821037668699814029667924133452039248207771942264443427871081576069686033509658837806659152574351492427050761310320194733329351689415289557959048686252457293636233083321669873102541868425832446875273607036737519438839344725606454564348149129284272163254547640785588752984110616415324514164852402449761007161513298287864627207241299741686710719690240186163726421434878232715785081703715445872420061349597005120502290286332548488497732125254121243182229777550353887468208768580356057757080916274646199307786435255037038358518192762341175861495785588335834658745359353438470324379008724508272311060300037100836630382209394086917129389049805115021492469374849791140093219927128495205506180445471456152910454270842794756963345208931749366767532004200947624435279927959026230597176175029443657770496832952232489540537338589159169600147102716596766909223868817484757728588473178172249687023419581473930026333514744603897830689691398920230606310819206850596935810133519946511812177880644385932465585367679163071337837254833065195971229399619134066601539269436941371592048115321141087931206018844163929778391751993231726744623377749098431321825308178664031455071405790194913686512422170734319186754454897672859545732676925531374727044086619910587630634636173823629148592818745390986810091186798849623529442865156611852289190126262526787374435744034151600447579805718445459983821532339258564011706485600425044789790110461949339986219079448281911492181602107652473029279644612740011638988356865605507849323033198516017650391965545238237001229274357937105445987478465173280796575126348560873628087823371744247978947927426002238229029487963358441089588159709096776135943362741539573599840592161192397469511605389177980782772255600724038401792546040944712208854897713393969065521607821701603589348936005964345303864819493759623095864541983207874395815554952382448484249341356611319795379597554122765425783902219420042048812322175594366799774250581826186387152195701246675538327055804833936479690679745228677732343855514748433982646471766656910058711797391043632500284865832274209049270153740249723341166989341721528235102994132292021778907219317293587475837233048468872220673361428505334158731063225704107474331339820115891533076730804463035446806517125303701285906814290352229896584959784175816831079692268464000704914284281903445144356449689800569807488630831858829576817745077533084887098098161802766656525333433865975426585707636776511956536861735910969311266234000653769569666250344187608678161890055498472481907994988823333805948186738065554733821761824010300675624071418028817700826381228944154756596628119448080057633660844024692595223282452303001326159369081917737742443146811737860541071360410657319561260920077577074159570127497783346673379340270164486635041723164803979232828353747065659245304481784859338039258096682789624497093359151407110174514494219633677027304152715197328574574354099359202357660583928285597370742194185726798636901884730877864284847701264297040735816319904556921437845939443563124820853685622889353786701152259049606171212997281849217487771500089713819115200700259931725043486402280355340310904617804115002851068599993975391233250433618311065236304526057967488570885341810694055409134659873076822469837466496509227677996120923577870520372849577368219682297529419518761015410115740585871309081867595172049661129103280071465380460574669946732777189713977893086976449397978826259290701253792218700855940736993254850939097930916931547574134941892074834854930567341155091444932179552057444414795237062146454398817652490781376981377514307594642363989551040603612111794578641889043908658053393184146757168513649108176582195075085164959935682715753910034987205530158553600759632973809003360226909999430138066927925902533979278608190721489745102597494706930290819228190288544067632370214497086008857542492484523167476920999994248902021303277086192815689415626320947695723625922336975992719816332812880531938864771310665198867193565300093083689141639180679105427210244896425242476088008486574984422355597286133898977475928969093302753512596344596286453807795092918520341388976484786909987604445492527031265966902647242929948912691401543181217730910111237434304362900949247495749026343178132244045229812576371893671907624336001322490501922679557924495633720271516025641360460892652420661750937303092237392965118979859647062860413707967970163077578729070361286206749759681357119161478957752188052949978238085479449111429531939106669749316887504271765702333194127296754950049655410761704994505282863117439196712772198168875466810681533209113085472946367749164610004965966785959280839256753806304164612879559470503724198650122401777728299012020232923559674116849596800318848717080122591164459761839514579277897517190881512285430419513596962377215010818726391809927523675471225157471308472917826990424766560837670330159941226579722389289346939102858777784379341158046439525458645911334293895752748636030702546447851858161862453820081895971574605076721898532543535154149710074439491429267100375761800251356564464441597121268051288612818519535214911463882992930436728105973590023978504709357554982520854074722554978674883595040308914646166851641728257655091155751326694920408418567386071609226287501470735512410037606144963067108067719588807690777088388234790976694911814374341917748745030217287228732064438467337820907820558210033128270361203879746597405356693041394645465774366341450706584943525666766693904352116669581811682577935556213613713208979335095024001271469717520752531511836469675231639836322096396678479793773513324464811986791521481002277504643287520393407027433402190387011851911221852884922444855511821700057553222486297964049177236535360139171713814922393842713300145535234490514449297537902721788787896166732835150720641539791890711066002185608333107520582121500325670940830072595962881635609573222893732383671816205844037050081788187283942971123605324347219396618676022831631401785339827850402166416562673635583399725542110911325471732293588492333855277137871872354158884015923407748073805296481738233841920377833254965040969579197986145599497954916361935216598369039295639486318996724521212291879283274197063476411079314443311810971210694438018693610753327071863315794268680716037833295580173081122342545792344718920871439097307593986399248504176218263369837055794491064026463549649845572085762458834880810896097088897302317620842372373310190356171319464571399670337403255794223582149171730785396556155170300939374041549934099927872286672816411315209910076744715876523242794202867468628190882068161733852389960033100487622281808331905247656421725036071786743244572262015207045191470272261855595677546305000605140982096720879597765824774963576070613348737310913016851955424004319214391756419976072909071577447792493025537374435934840239253301129548550035927305155581736895278244772794437229879432628533772726615354765000384801199190019888754408444674381613492604228699660245601734120073334912160375065580880117126052218829508212942320309731576728834108482692272015975373969303977387101202606946451215460371876023309249786283196296598961764832694374565491703049995042528147234869448753686356863034885176712214877598523359809291852526763233193552803576149783122297777949567212870028978882617619310332828846965288083671550763657741370010519121182512632029544647611727923133035116947085720210199290138227757394225738947196168107658268915242489865986334508799213661134424932316875058962825550360760058441002043653550571866133872226288182768143744084106096792801517017058945389712072351465920708517763232027181382716459563135983406234530352577749179886924276561294011054049112293154732186854725424298453473745227315367297112696512252936917074431436084062444616704976129612470931176084251990696981756668137075679262166396258397655176715152471230306104626531535277997592767893192384839607532320696081988813861347319931327810452160054179403995620468699192642108532320326187781616945418719550993237085408535927473124902680083431701259586115874072309954333854744639118458706078567669596050782758930800762497253758478554465456219281510430092231012989795370935446857213857991763645628257847451362568052668115474764169637720790036747967848096961521597701941536704136498392343826919240202540773314863150197530862905568602292546175638575477079908885510675958695163130946859398908566380047912514167967599986263368933319988535497097996237246113953145169525249466355672694345048554274521017117123355284695839422694598533757229188378242919870160581247775973753110823579555413271651887232165145149493617936707492985971644177002862270737867178933528394501434081729922554785922790202622716737141130793111905002812371713106411343037475982459926945448882768035600491254667309723383777290274242924113308679443845402763060612053775336787330801554816490740736799015874531641350474518856981474118097032947138690944188034417260204493204097156499354618218762902514779435476679637177234701149453983470215219701929032750798822526461970774351420100762270843794168906727920032255806715308997832863567249412656177614117740053090193979769155112598634977172694624182817518181349779798977972778722495605030619801684645104582989915029802646529390359097163036907711562606960818656880502220912313990137333167520075331461734949026591015835790646632277416751953730891196946950134718910267717773599871226237133321738189588004834529314897097154128684309034770956128473402209223521227300781188616275903437646389145890758351298145156412047527768995016187416491090208172022289027864684112724943521430776534328590829093025279329074623620319825309334117374629688392276592396590797299292899472556475380443120831527062433263007188436652963327180929178627406861205008277385746850039863987024575209670196588651758451804356119619265534400813566081915067671614142639289844069405639787522179566953707495175482760968493719852025530820009146012776024334502425356593011589194691985320906378053268277635127360923648465007532442129313272582808234932033146276976464860045367263068333863568777044847558590757842598938469162735260466372425668273072978883894592365575094317638889766383434238775532839696814082358733051105608235436288458089665668082091820370412400362402987295476867168683861362293808261209112708322911495276528429191351770616884313385976194559420445209809178871269228464721513632343073567390329040801064049619862451749324875429153322517746012636713587487239787697883019295192253171871918993274104759433925931041017964204262452793452139501082995261003088559320817105961273046505830697765337460729695181479121365429729681703411198170733889230412842566152435128193972199356802787603922071345978827103372729812388681894524596615152558017477029023045118393872249424433107376458436321459125342644670928326461138804709892443840683536186045564925433479568366543426499351557332265783455169486006030557139947292449971884998350286539386540640024938886020318346829641520650130541948463280952059139946264157100568543681104591107636653334917364218332371236386837828389549919275370357790178854663169156479792194015932599233922295084856161087507703511396536044467762576254121233604972543593948874216771784376441339894314268272645152497706389560128313071893106430520993213195529147254910196666569548576077035310894576426063459412802202738426719705499714687468383625287708802129405959075967016597208430415151334199623365234621195309392207264247764282497560821405189760800359509146174799871074230180044882604507614097912716517348252006633219657791430217227818264846686059394562310501825146367429997247342800141836300810030128001764666077629864918621675268434336348534345249325255235505225107565910892995998852766745860704749629754512001561532406517990789408852952610519825469079935365960285965768697673760558636196325604031582871108208035484660423568403920193208803188874761127059933080525901231776161257859635771019129788678911949655001944008600312053414770567332239062863297290849758691886604498883935617672869799833929384624052789737978973814521975046003974726845185686773592964213796942740406605628328221592911783305821165135622177776139517724053306909684544454141312831924577042086447521855670649906974463079120503025835155429202425757804072714840084012353023383687749987069911597138495323965848561300702879318867895626650743113729840557940486822603787647246487742291668219764255644215849234531578508242749061393377503451534907809310214289037209416962443672942293321282899436231067898914788088188262847136642432245593054277339129216491680474313031524377897178912767217893066511523593916225657068076688557133737449943230670460387461889719896161828377889111252253971562837042900338725881194391915393949397332898465021949658095837261242678916913695773016039859574303406579095056399701389654552847063094188628054686692521148598613607123553718778618351374824366571628024921574496081656180722449197244840324751852880185116841898598109544739565473696108381202244598515102848359170329863986767352244296440902166904651290870518749407198324584752065360472528344803246508492784678343490678844750765006313620492641144741299036552305573020775704634643742838150741825183368626367180435972960528147054043418121648091539410351671461044189476896171217553136963763575230183382819749221434485062415867041559395243209992043975825700638356170788856117965591213253461571819676644407418048687616306857817206072805113041550263640893018057571202433738944336860417685842558131316001690933586232959000384087241668371917185771055823242779587930392223962296668328914616285308794571622898191155122981064373642431634578450638665318637144530429129481296535203336922201263064060734505474058525994565178803350173419072022145616396572923239061171391848042609458647261230998027500671538667008464187887384331567819080346691841736398967366756113418774777703980460487749988754201028369357371560383511579309939089615281702288780841363295419797655117690302221360563356817229406667988857247297496887386677653429543113134305899855854256131743431858648513740360907247194210770898143269205720842419622988494147572688539446792478847173592103882195017593051710627253470559508323159329733777721730847204524286592537368734968888580214197334049818718140076681464767700048088240231889054567434112377361528587177461644246431615916715637890617112629676381217936494121935949573085904459986470456960694103051804867085128294567499030115715201877655480897274379412025502076814588533279223024259730056165406410858068630779207201124433470483549509539995522657240680617354010911403818031945004719748474168898481312853256050474550549220831962647937832317734015430634882351729579577412411458226088455522458896017258938780918164703462985243311014743990460407523757015192605460240378341539203534565930888114080110006970009014147901240887199966352777105266772051427105471398510438103614593914242440615345876342992858270132679612542604478677699942993104516698213385395567608470232900818433892276746751838752195218095353811576876443085796537689919194316146808071339247948118319785899779298761389177885311909297669292446657182389536202538579131109679176424061571057762463361732254433184600097551082913013368069911913320773641818159058669495859731056818245350120579973509005024376414832282080605743731190675155025237835306110801042867931515636499374915114278552103598379348165703467869485012855255037883416050821576213858205716860709828395129899583261723513774720853313203601877703980959552223041795223275619232756170069826246803284139166512374032379695540077960041995909981003483224321512433814104310513834438965851171442078022829031465460762653231504644771806195316412754149298327893581998705425101978244436934149188119499669115171386139235704496758650991116640239975781577438972830327738770503611527097360809534036836908707013739598329135644208627312403163662215697468934883577800224027943025487972279466426681836594270097577856240727309975785215183672105224459003646524995443540515520791595673301730684442705320562204747912284304131565415171178860917018193573903255944257455159866757358901104464490599971839873030700957725990936233770143751268025757162137157702132388593631192694644745481122755117821713349519782535405932507161522196585312866489531751056874918820626547570292665171825631405824144799021414831894619577264737124429165437774620745479074505086132755900566513518558220737967623240007922667136191021537516222416754322228755239020540193425732380732170842736808522031216247999107962281989174222687018315747138840617317540584308937082811850376611450018538082821208307359552380499293916579309600796616242562063255098970162072660982436323851645556754757936678412291714435189253461212698697437437948749463755703258333727550148753236940106965476304978684648339961996605228652351326442935041452045606737533835180271099437251147761194787242209891610615010536784580904491521210069873180014616203474296039055291651428674799604016986432445317364320326795901903249434200428668302447961041104545439991014971247660875205921047823091966129503440908713850996895871397418009719680944114944491592315755244236662455802708021414129488817252520648836614113264155872823503240353083533204111700293410137277915224858335211716732156885944228690919751731027089473918033393093228986674535305306237881834236974403812694274312280640862621663445121399331894427265256383412147339578706211551771625344213317589050680668064651735509294387808443022651950376190862066395533923265454876754448649278390728640574401777987447003163743316198627514868820935713593920160926615088912359449506873044259474159331376282559621819347206740872399255454989210668963059214249647932979042735785945026379266191696522962470091611149365113410771862999353098087222303994719328673969808669772878031724304189770682533674212553397441117432323683001248053423518142511111445912181427527873598748435788041388341589713717871508100872250216564612063006961889914238719316828851534657167479557943461400119528634835317075469815980837064845096907716904976333043083157776796119684201685658380353750510828045579529752601826281212135335841355544307846115792622417862295729082803981330145565869424523442642617505224296942072294079639194696999909117213878303310722078076404254203800284115193327916665018908274335284890907299792942813106538804137885455059536501824229475918687054270755809696519043219455179894322482130739938352151498653829681339933646744000514004278163405080723230229950189857845893698867356666417735136833015623226051857520729430918093464989250034475195628927102143437775014656584772523749806356660851955580402463835523240772337385938434098261635993392810726903387867044884920596830441844740698004269533947331904997296858289836881909106548421726819517450120834001634432296564848221504682036758119930096029504750660790814657161051001213365609536583225985085795084272391171012586831862631053050287603436732506673461201287976225943892794205905551744941435438380281733454695596289513698240370925349648896721241337242754856016908400775699082027928574968490584343891703522187493564211015959415237108350177962082552554985377420922988477224977012457410932680240260216508399258422545517270451492810633630571122594796464826307004935420283401394579857825656830068507767706880527663226452762277590900631534392038942808970260872611443096432631736063180427781552097160889032616741846538710995726101903631334527262017080221715305909889288478941591472726871461576426699476676212246191202191720843906929823807213377000681409110783651722878445389492677414947137631366661859276166326530358813203789371236637933794896771325642937297120099258309237169327156243827523839816312732892575072710223101493619204789075631378562383924270799352621569615041123018896492832359651518702422401635593635995373881724324797637139396092573181110219972659136056062941823657238560088882627599590689855097437431161078886042996212248541527223570108721396729917455006502791940926087984880764763676597496483028510341454872902708475536220173991841552396491616171911994299579042504963558980201483285564764887743209870501062313453559468392397759565907414369080653849217805682744655398074504481385097139272302383805217559502134377273111245388441788871581602361935601797555028351798369142858967059328408409609735914749436825316757704175202834629246895301866930222087801928391005806275101459458856160494681853243833623188777310659494772230279029643009440037559679584921689172023821061896111718186197217970886939680950333210708490006247405934343562148866731622010220044076979310742524265846559868996726483723801862269193128528594530467412520147278012714635738718667249406938719060133832062927212113270360643067251762137564428261908427526107286893925558686079596152509500911776343904348076791354397916963247681645172655047900029823922732535147049458987958029993877789763069710061220339646495243140441855804251121635418043331358613211728632503444055091054960337758571498606072792797515333626190242357323441939455869252982328942539572093143142042162820843973190897566040471115630580401044042936952427754565718786356266534986846325132552936657163026220900316654320647771543332484355503686121013387828242873133102470043456328500692146012003777978986027913077033252889730578300269675325487535927373722333290522000010607012237874553013368553693158257973588511575065793003912367470801527420320540935535009794850669124831120244990952827455442751472006581752642424595396735769956072017790529031156093609509389519387330894874901931734042771718587013684762521486871696171495966656934917574429869669085423918781338710593146266829107444842006019466801101319703560770373324542764723223982251413891729874444429549222625977561324025358102079042263224158206812377996381888124319928254177031376517407675913573967397689770172682906828082829381643065981940631154585201921895805384838574889880517782277460586144431094450286469817485614784109216102476515338869753314644247185856691716983429941567038922393243966534024648497942286127715919539315332691956405709986021267101395845002181188609581699550772069934621838904978871050785375204932290098053933589763153163723750564882861259858097672589884261153452523222510453040637271129584873479269777339396100040559519449465180147460847610502049391608070289548781618405003451787949805220930806676812644616539009079925404790521687682595550212856408325684555981697835808720037138526341176979045565245964640971562800141651761885502965012877256379020129358677196553474455183875445663824864141726894666734757486023990035101184186062536184041901743005898054810681365207806970016113477814904091534237988172990866351898660912857614441117477320575952823296233484348183647542090490834892456610857813469352239214893421901880198356215260803323568439882117292591048741751022171234578055070207505301224562322877626982384115390622012737928792359627989919250772268571424694448623323658048610998348435604191408972511312694584963577427205279850340552197235279196924364996837983479971901123699981399503373474286683401319207489202603408779446050661477299763568624870399858816690467280747962365263962988571785411623763370619462334674349518584353210103853521828093207825570402712719766747485241222816518308576042849316675946224573456520189097962114174331647578255375715671327397194548334147298165579779177198971818944839302578548093604648679958685587436081246861155700687475563707867319486795085509295807093144503735192198020021661276468497183353312064977499561950993286830717829710924372988837492342488131314134337492800473995765252916160221771792918480699383056132916031406652734077822778290052573147538987023310963150918468968542120462518991327073976298530484989016343749437700679136955824910624058735018879080621064270975069438070481134660241223563663897971326418854470870690571834160902848156632253783492148974302336586757307936747093330877055711586473371133004789071806187879978160204692733930055507070854228371584218443070934851894823921190003469857807258666150274078179823827038930491788409055656959296156277018689495891938075147104802696450983607109460284141831296607304265717692916709231469231227798530452838477816580864219110489471220893091840833406237136136002778004386769833341229069167203418656359489987188811361410415201258316953151988803236235072444060892619001878933268477768700965818759793078269869098991028265933302669697876435726183069325570565632126409943944074826121862596212121730514339436462124009667973254797959040973314421907116299756721089993806984699550727883063040402643598048828984884487144396394669060339971635681056251455778591521015226546003559805435408746219058888978312747970208189080659075232203811382135178283057410928334160265135080534120592125611153875445368850996821448535728192415682006631891728054315452024588585885584928358677785250646096799942908416850235616204270660023288184915739090964699595596146930509079394541980204880474142081731054235744460545518353053986056134793036179742736373915016947212136433230581308724816664936250019849292112140683166949093122075796383925083525844641247028635572775806536293551245666605082000581782032668082803857577273661416206544194880910293583772330195150830753859195004571981185337844544997341875728828092070709161288075098552120446593710634899837022184662376578093990229596990576191865654769052432357507527514097004101068053691541624699052421796909690884212435756654592070480978603985688584598474646706586606817825928449316969744241499322059978573792844669076794236328486871830941838611898852833707727063113873160441377821283743679582612578516262629134753481356015286203209946160834537509336641379295043836454655517938476377692143762424233765324819607626318299128956731722078558347977994322397126771151331023350696203856316115890749605560745128073376613227200198987512585608066344903338650601301473539385141800876559371665182349352463540170746223204116349682045918040580143413494051873081594857314302988871428381469311807397880722407550183340559818951915794782053483529200534000158251867508381375965040054262168967051039955031761024110601264498245018587283590645041616538284373936065512374285288125368243955634827457231906181687731219438629366871414054023577951196627894233195158475733417829223393193865842499783703813807130351156577687056886490820558547441654676391053298676107789239702537792942356820569207409831635281376445825684353306270312744309791446946715953132725379041144858360194740855676209257958671592089542381323447518809057814015722382867775572469225148306915947916187894452136368804010713769292394411313033902318323220935785219297504958128257933904701881902401461367009082102746611499727128415316408469840997238966428204963447009843848188121051615296294271317050549510169978040112685958425836057016173851772433427400265800104113779629908697726771686727955998961411068092952641335985051311029494579825530210214213191502010479913785498200600053764837625988943907229769541505421719645937326748547148191758045737862348832861746359623875969712241069999176585193070172274411893219719911697637910253113977847206473309202689851035013785830715501796907501065208954588962254128686815710614294525114853522054776682346906773475243738687423245984831215232571043841216328543839173829479176552804258290739568935603493684693808303085838131922494259587620784127725646859844203986863374799301559431672768399175565350195461135132955490627805088569799746576794125832650230149127404103818280269859858734786164629347289348023250841453362968577145906536266089202511632262931426172949329051602608631984954626918155620498011980275728437297167563808227852843995408890234611682223517663612981868779699496376274145285865128087037141537974529152398839034203116571992991298834525539792924670302618075531439607663485291734518854505960115169450445366992733975519486238672450859707034786379966483267577969991931259525053880289916990510191844138799812825657907507869911110890799179590000988948041614412891344639133461015748693092589350351211360602351930212771757608570231091348901375481361535237683665096138134860246406415242043262237194655999316688050607860624928844597159078931451947189256497315696787628374124671616070787137842533103360973593769158763534147760342621664611227512242501851969450813836774487253796882753703922261474290622623047956517117667089138179303330015392051689052738974212675832150395452867487890588701334020071120199771817611329529855627073172507311727547711510217144467618724248693239161753471986655486403018430039347464477269682180828272633860291142912445314522219905342112971115208780497552816196718236230050669617180002479894454868827175030124154284349889186950503979836324972938221068475109838942593127541776423314792006167017578867120055444237541976058269671856004215199067532747745139416456522372638919154774064142835980463707187025353014980470867609892282695972805056151837727310259974612272982635279915716814724849217817924801022444839268400285743505655360655655647564626170041556306364409468128750645836096389754934946737289165013112549825823376897283548064735415393125214445081564666858538256362089004052831011402974494219297114666813032692456918754066908546246263387885087089831479351417059109368044049285045983201558234476691941083153826848792110895755123467886769402350072479291638784882619399790639798784584786400573090628519618690388036394405551397463908532475942962127265240182306988529201416876195520382492751429839772163880056614090293897678300111011970129115818753595764522956782191485969687908482128104005864338629699844507786571538910391277870105093309726983875749739283319286264547916345183044879268608579076196426145299913224813319169757998109566024898112142105603022249025667706913168905739373883177562424498295186211448859699142778077866388571742370070699748583465576770038554108531861870633314818780708827204840263803838122921380147325474438674863604321988266721560131421425033406546474938166116220102655414275660057981224359564030004485480517277356790218399770000675498800600001466532341962819400244591034111728932212974821226634831427675918340654396079478402972659471540113627194186567988726385308653425715811638533234992664259541976451636760968798325165000350470217054553561484920903103194327147524453920854273225820404066895286844400013924641024456825542561154202079461553242718117035423396281134561602546520065994512680134170489396170263280771357517185146446000824501979632478075786999556026087797846269986143910188409030231393691009254511761241988910405029911722089535887849510376572281013225170583364621919769448789753981675525876546301418771278913543661969321412980528200287209973795354825453924075687033404197044840964406515060650429086961178817459721596311957102764281772564360493071083375054625360889506885711048339428465891461653004578014219602819675089763928526980739615813118291357690159935914182005447517324915678082638753747468654672731980203692068195999429567227034418831686665567919758459110740366269736611646120897169559846782445904868481635313885854680837750078474139667637818164000970424581570819279755571179021820692730228684458117251815962503081277966622685225966682204279105095294425009806503618104137109631155710059081710940942367286676058933253207761514042179340805289543010809930471754361488613881274810115277138038093236306129505344232503515808099329760553062505153664863616176195554527543083313557411863459368126395947565504460965377405918262855770097804008299469156443139805000869451329989948780508234611001890714609515411946258546650458781492153235076558731444140337274797000217133879164758231737185153081484573807667634579260587945689656688794235083502472152904385939417451914008627994891612194422880935239443904296114877024451008150739254040203185188907195328154757759953735114892251533660307398857750229365119191871483738632402922530751348377219689140878463977243066567072342721581629202523658157612491192866075603243874394042612978270717666649524252100464308539187963443232092779396518839724181547656284070317522447870005895141278212108557116744056572743277494201085619400140835888012111757204460611618192802990785989583036019268414739801776272317393981121705052101612006886738362921195294000172485227670165168273371606120938626547529930090942128894814745067403504730058387148168739930076576182688408838127732680638103905195720851346364257523236274255975293485340363131034534040645049876559902290980519690408738029534725192591632014186231812447216760298997736053513762720766156314958665852075116540781589675016622094873790524842963488688802702824415788071659104658720046243133478439689509785390418521565727990084022868053239912800622669828619163722875749225394026003659344763835332787629851086560856269650370934419555703632836833114374737393011341670230886898334967101938029607830097454902375113097007315224146138875448330001496944130965428424973092610983599025630550105847622086079499331958486862174709412706714044871731102410625932164299791614293401954848381280600456957758268666470966453502657777122252066564981730129554246261062230471610676942694648194381165519851534033011185129484852590287718012421824380709817185105098130587478821542465467935611232013690194608715609076761401614758288887404057833901478851632639079507812881489104758888890016377387965605607825933960782789874688930488868350169948466860695974455785918577759140856372262739932991877733146713547127409159889234388279309190284777025713407275307324513818619093443451573702622611044806031753148669794765703301850679172874066958753416554162661460986447863664982198298629931422593772211625532301289491954468380646075585143629626908824452983858273247139812312739913547809191520689077151514576554117605662250522825774869950671541821260593150230639696132526756788829177432026619454098680776749161619989791244264486705148862433891483416033662232177490668146223900098949262244236488687836704614576111779039360062901309016165248627626740537296837312749800182588952888059471191810668372986006454218206875771216303637495048915890904823803465317410728034970961013495346202935723375187109611781763217203407474067079840880987457652000459865414998114009538618206389358628679734439245529196298243660212958915052660960166825973482072218444201930139554166457470969432748847343653239228670239499254875411460244600396522404853868727107812035409668647341993191333127634364535779880574524570780276722355299410452874846452414064706799066669759753532773329051775902266300805118228603323340887444351221270869207992325863104351430728289887507353707410696516373985424256123279654945665849419482468342492656555548678486678831071415832883196459696858949011934394309599558134873134940711566052112670701231618788621302698593917123223407474455709894065951217585998074510923411871998731161708397767655376898753795911748830133627126725068788336876592050118807439583944346208819256223079587146273253947578845712701694075088302179151108821584822406254931576840746074977294129773351758592470715680791707023883593264995643329711365776765478405986878761348608858116454792389637946984027766012775094906609429826686279718413164215757515507808978120314521024520213193184857405620234871231789288673025224410658894986588739186172915983192637552240843536427023955050429479256463248271350309917441259221149373238052273527484874786480151073397540740105944620051906892055628145744334684259143995492013256370404288659961254960090807207131583514965337401865330519588440135566589565762605612356221005369416759838917126257846364637896116433048391446260031195493463486460741908598572347056154565508081649782426781836592125313274587724631254548664000191498785690418920835612094139775067505969540314071787976950539368683849114077876737850776254071458924041399370502931131271482509944084046982642344324145004213220838304740403816157279126475130279949093625079602570195148506769443243649240066829815789361090425277847060208104214422491922035844327609072229201117437680955668260331256667183752282587740335779052237487657776589187571295876153169414899339725145532102766281294350774313956427770740033134224707058042639361367961163093186493182914592516599628341129978427553349917503985823665868237486426075088982374965573646470846268037706998249710182746355045093632273509381310787197062067665358091902543415286228212301755960905006728625623577175658099428517448773823933289014286821627852562804565929427573291710927996010604655347785355390024018169940386382825805483334365753048308470450204106980512781389709881083228460896769082817049451328128154723435803840887955821493565938434722732594512731499271647047493463122990557648774719056219186929241737261395786671158401991854360475293138978120488402975813268499989899709734960685091299774641779547167688594911165225676216172922215702291215583929776150674624081653741526184305605528803246951947693967465782392982062444404151751537265258405875829459983127958444685245858178556341158559236011996160919788442202231070293126687042226003764784824056897357888909667476909599795236075713274239390848786016344355423749715215640497313357566807790330002669761967416874383788842035163956895305710139808360759837536134058690033192996225536682921893979850325586614580054348034449959174329100324606608773796898785831932610101348769611064624212203818553014862360053584655171251015870133476389981062348388601091346922402595231873073624330627147704533447338252741558915648568668135257730614807937571076406291955721812081921247646576472923928667149375308416396112375431862452167925945210239712277768445173672820335313054947535855853736704087595925350692099181683972243506531135006331455311866429537874578531873739015695899455149302697147597286615153134959927565312829759856233959810053046041012504589279108446129416104237808831087776946450322521374946855087929775580100518936936104526699452819558515882674173580194994025597038317581116111633355930134744790839100498455344979332039069821392593938654332464294816472423499272910732640902446100191094384666715675997265519889643315365959607725065608642649522327096952793523135839906039029546804347032444119916089333739963907942010973790606730360027572281630599815610712433341197260446058854755578892893556806471677402669483042710234305666851153375043587425552456290379372804060168152195036251834133903383232490645166403220613105464627869737587493018795166749375342173565220840491261408463408899305633972496973411351040752331613753494864799141494933083286798673477049091092845319615310439898047159019866325074416938200457362058430393259138545052426687300849269173160988625899450593101023973891787399120401224367568602898755728477545499757831786102639424023357839595008239976532816413355605359194173128439849348245959974920747404400977912199681610391201635595440963174089842321356855573893321310277065099979929459048945281817234356546550260912274036285518811627605682937481041360398140382508802718021677823964080944308023572599935042076608052416706366810960432177607060820716808838588444953199897522585663087874363126075184735638901353396282273444259174877878787765591192483844786386463588991862054039449320908379159819611702408517582778192038454937063817790676536302688945691407987476782595077214857693234559821826266828750736104205243886675803790440569461467614564529579498860631396924107880577248668786105533678958597801746975296611440398728988825574516603766079869426712253539927094977241435497717649617762172993749551126223987435267347721823908762166194937835430092316529260928197868333960435814741927972622218236713730586460459756880579771845285490204572160205847208579916145446934804669544552624370015533399264714690055034205480968019327327860706979185944626726628013168335004037394730275614632153132309191061709605629599145243921516073265268062069781369831709536360139914172395857328599698493022140238920956747514474096676434108495647841387135376695334654623482256740114381984660738681192123260951551905366719641983592111466850733682414962793782488208824084165215142509191991174639819693113969383852787043516513904715828743591618888717887116966970552874268664537310930802843594404837770529340765040898854620355207196717030298905013907142855377424428957493723925144459720443363411023204093747861133819947113182210568294017078760770989343804885698481726563665656965912430864758505845392746946338980097841422575683244706350759521048702419034107257715876710760078591181091214938257554728185765263588013025073602595497038470995000626530460824802308932837261227643863215042283023097215214709178197677046052673735224919410582951192822386738677723708491336510168267251300728220883748949421013485667122269868043211352340267711930149409675775554747858131730655272905511341889158876798495907951885440243107674911158660203469886095122424542008848442680369608568191611287146719130628676687445362637439865084110591513449897840910214467695301569490627754928332517338814418654118201373852541732301784747994492007053977573938029481687984918061574526078688701283849062247676170230508805946312447120925825460896945577638011696900317411092381053696100497036655914473210998318374825134819724636586405523890708286595584961918829342438617972147253844020513129041926469790710036803809465179336058010311107665084582223293101665785170744520356906368682506953792555659466293728660333408657588170567411198695113154609484917550281790470166749924266297183546844750706452302076260226849251650413125207065671051518854051814781874763815600427053433108395329230740215184836261306793987438891489428056160439995814212774678011705919536559808827393292339110955118286870171413146304722705659481766307258912964758684018363696699208252957531082991743826439854234675203656349981287824273278356192335347783784219412597866171952879002921641616159233405465491534465396141289871830980895282162949087465649430092007377060590310124093527781820914555563585544475744819932438877965993664977276270432839719787771157218436467822520914133997826119712123163477983727423804477162676091704529651360990336653105993692781077955851324509337155133516574239973214579105317483495206569590834329468374368484789574813675019654802401005589891036807874351427206042317634961908587503186994406146513461844569430237671434452614834275172018288932433555366296019063410749115550399587391938568940773280209388327129994171813403654124216145105209166050401998886232620898973756222121302219555155923782418674397029327572336607450666425507767945152220971089592331803583228898985497108179718763365446844891201080162957483590584547173076191307721570977980544115837281763345503303144588589583441680289713667288713004512654962995445856867617290275341418050504293936480442173896438537257573770504480008598242180803510041691074231322900786742360944667703034073938872648467591118611906059333399046218599954910837124680189380952311491155828401990556843417601528732564642250190539433255257723569569050172943139633560853174199313511607434874363558451145475633328288564837603885238631225028019463464663374655972917463873634610934597915328768983151852578111588080114490318994241496648970093306239341924915780890195251114128136013753211001415823927764995360835305272165469365945021818491693853618044655144993589108942856359722831440103009514407165877842699915170868668689102482734109681325082569672815864505349700645717501273463905611458717108574726166698107863024855293065894940443877982152196057249368655554379762419376061443655624572245808688020458562454321338007102382180547191514226090491349860679304546747075800365946432377492000856458751958541739403075682221857517210413520764096557891644532623362489066116949590748555967696739006268430217568357492055244148890418918046523229160652515974570362089234608277874184021068611582353435392780383582621054081440461536819076004095983729079900682988405372401351651349300672445275696878026543853573010284831199978583110769506220724108250434483723962683132304652175852227491895959105357955820532006461840465699637585348452592241104192841905338078495034388091791424338037981397540245404020165284811884738857405031895236234630335945093223406480793056998688660878495431152320770274566901728826344074615374791893771248437039069439834124093981689999219650047118979410579444711842805138996768076250316231443057830324240072024645535149598154557464702024833997729925480329864411310064433171475838560207723532092295830156113924118097403595302638404654482783413963213035483334853271282001732549004222789895866713570667842354148048178371540341025645805663932393484602274129855744079390713540180229237445954625942551074873433379379577529443827379258833058951266147443523772569080743952174948936175621300741890103788451983699624105461509548824617183711245180774245393439590615843870923118837187029033144587615282240890911764661602931176091542401506698517547996843356199166081030179649244012130061707949280787964219633936069753355032966913914903324049289652589561300491854402994915360634554241438257778672238702338434040637933680592783429334059816928861569590789073640892595359982828420975202675590012027087548511764467143695910679678071569914080855636229218401214901105425957049824447131421358998822874185821039950188455114149161338903430853184272610618268174085003501037829453342580072923796480524658596300042279007000283651880583025410296260108244833071106353504281261826055055371109322428412849023231031851952945965090132260304094644011698806461885163527344928282717937035309899708769232240133881088512196237653094573820067140690489413279740105098807069525794697573092934433489795632666439773902331519422657650259325511242732386396231850757318953129875279720337185069343586470658521615284684834518867168608446710896245894630237182888595841059851767504291846278329432870485018456927083527408674348016406400412841660855306948948227870385526099656373871134645041863188623235214538907180358471965057530368320577788642687288055191610697121600475241237363651936621170192201653590473956537041172014235282075658582998974706068319226048873054045837645767224712013926952758675383036263000708165349785831893991257318333647528975070634000044795933502586179728915766375362565919927772337228829846083742131979343023312622858607154071578937243976275938895139482683530378684835651884872088091399208762267958553516888603086657246745480737941810383591619252668192132714001740121966771237565746253750939947617655472043312435456356314556936824202256951312009980066898930237256106357508830510167260388517435361353720358171648690349420318644047624279656371036549295554044656578604555970772974681796416061145187991666332263077971476107858585225512803144261181728116746491633362071962520104224475613233737717204788607227804375729831661364272857884725884297483474339936048566276803738061175269815747800921733096087453742088421838055264302352248846562445119440818966379422701287981356442553081427974445208563301846397497204104470535787851088537283313257345515175116948558455151068609545409906474877489824047523101250711391415470746047903428247606445284781313823860755115273175841522380136981758499008597420802970827929955007500060983086634914882676562558262059816081969560614250088815666121327344942798528969603966125623195732468760600217094550803035306434033376949052124051985704534183139353292263749188574533611422147305449414946844822567933245286953380651884782389684735265858928143300771389683671882610068049444972003151482776426483776413001408477107478548383386440279929007036294388919225220850822199826967947856340089424935610437116209630255865436549971867015034010393417086232322437067400629055934076883349434418806283063887685556594393815656475650448511983032990354601012745726558625007008632643723034907595533692486153315987370733697507623992954792341141633703098581833485317614244800549251266951244341932134094394218461481760119866232113010533516690071740157968376994947618028037892560577834082878610816349457141904151587797155168093363279677655430255747008681519665521787772328281641848468861071542378651112636034985460577923050679011704237072677475738346952051191514684201960135509672615960683992497753688677954755742708275567736919788888832015706345646568375571295704820709196697452663741330180556341631338430517251030399697262281842717100394830257678094937202801937290478726331331812467563920225800133745207637713414808716183008913850671652297942307133011130125976277595405786131583529389103762016095660165886205261278923432429701740763881751899649269535957576450830028153066097603684503578611972415892627524589445980055539723426440558553356556956047102874601300254057460864321294275482233226584706763453757931351257852512857117333215899479569373128083338624696822086123986448591522082499005928751269175661750141926276209650000733703853879517476224172598321237218516729963618395172889349246531584560905582298548885983813291032397330350534181500072461259478763338413957318924349841138352148409703846875112912308354287156993034701399798664180970291197404789269357221856292543417685736330656986392718242575063089091906899354686746691045990713268401171370467786367991310483935868739608466456030006315129394493989675362442577319854608990891299798708960870424643465983865284901881202908863293913942249854726551121971271866957450652163094776725667907930462743343115150294896286818900865048788924339299013813763494597147615591952767786978742160889542637943374162487631202025206934164536535785884675325012404454852444450352338323187589643246746019469517346970971668159769581196720822822251492719071351289577225403622521801146995163611559941109809357006873846934276017092432038312024341180388827301372412820828181891931253346036402609881242134933978694806838139462631327420408376110916533518175362531997907025404730900709654641838721702410121131769829580806210847482960914478858538310043788726825350060789605144948940235287166025234219518936516767696915562777174920501834531281985310841663345315204061000559602414923774214536556501607404104748648004997515042975750667771750863252486447992930486870518463771372845479623572788952113076005934641740183487321137120622059720541071642230764846749490881793204285518177786012277653682938126180188869073116392156954643087677151865019935535478492073772379016700264653027865909207842460945668441863667356822523652362300340171654931756981331038657473859696309168203430765947224331771965792063829196395191957051571131068846251469908541795151818015188246124807366687056266294583629563319801665589783441145945883534664891561254521879090200339385169360700688800138864630037979832485734132545261677913788138520035273979687099281136041492599062047377965459530657226904948528541781612608616149788863329625102220136352443903109307596141612161772018518227619011810783063962273772485361752219472214322546313994879344908348676178685311608439910589046343078856274123191291358716892410911924635628670384121530922178995375637052026078571807674998141506640704295210532831946110135176462816710790891980532269409601237027551765616085856539188052521453046956606925387292533989930836110006726813736241506805645978251075728952114221339500659052216639391248319806686709406299642599697224588709744733148173924215407802575372382595086797574268190808880651647462440411668188711466444469969954770762280569787046980364452835113926751114462871438241802525464943654108120354332189466698331168030520084296527385425272968208353692785251465398244752700577966084117426781739329358360612721157161603811653668913312493762063854403894442782920749904424597918147990430971731486156186560837876879180014966511995260487367928123340404869626265180901726521563172747158940314700240440858931727480567280869141148257555279541257492173701101356946466863147194966934961794059678777552806914864218563003914618645021765198447275798378975773428051728020081735384332637293805863226510577656656263824697912121216688866370947600254898212683189386215344381658062599873602520236692776593974417401700644440295304083354409876724264317672037620845129005615472053748651030327087644691400265352696039115691407681014848227140761413366969585184458400747229451066093057696302474104990504156474958330288466667275051961382775187618759582615124164086849246721712503149996628295740062005976829288837736268282249890324160141241461372455302976134956425316628361951037289676174926812947296257762689064058099491452174500471689081458349141769084185895660781127212545988763794011820702869203845553542210202571146293090632497804931334396623601715845590846037098419556711438065203805220827515413401485486472261305996509173423126922372256329666001353194049154735948320132291958619499117340196122060890057074036799075193363612076046883897262576083547114051163583096851697817942142695650564478959159041717755065407870574532639957170715238272671749639625237193474263243629475259473106786484520875465398740174951045951183174132198567271582639570609157069087853500342908822235456536176687262811868376926316862785223068799128467222630630490817558598882383495026122541558247340395187798748166390526596981596351369320766264103127891691133496226430504972753322887714397588017821713733947341962510941456798715517322806659362931427690511164764914374841895174022340940796677141126147707845417651701764458972951233957141604400073824470632014065710848213108400102587677518473386612308080042412579663374933220997543595261573439055510068982934052383329857928847952044274294655897609791593676487772001229326721787765004659296979513823481799231057507040729282973908794935687108041670141852317911944952187756220391221401379343212207809017620380559802202855949001447865344256466750946695374385152123581749870233885650205120035665505062828023931368042594781223733989747963161374182097952582026851070774956956200560866835619906152547994406978713067072152455119157675928630862567934606122506768869424543882608418201777287358286963392893182704841051140645756710392482649065503262301602430594692457048026858100336054997851393983433772442533265640859409106288951159565997502954961460131160449357424725035505327725938332524894583914001314370443765031770729422131483350041397805731335718544864219260577954638257521361825824958781823858784792142958650631837870049357954182665154668512661272614895006619965170912485207771949584850243152264579475769215917658355066228831305555154055785736017016752002785010538573785199893140133322631916369352046799230095599653193120908387606992314497127616349422171164895809176221141988019676950959801323402978621126283537000772401550846879590001242282945071063291540842044944575299602824750930295267966392524650840799387489655425416554422856359614792401234246450458382756617589835336065050870859832673874552407196147907710108714279082059951655437753911642076509048583989885818046323816563209889780764710552377752540668978183853242546065858270436634305983490157224887181927803025440231382582171017485845727013246463630423349179149809917527172540412026400809655144908798986759556085707807058829570254695779004252377653599201584301193616484232319730596120486182684565407442906258205234216786755838349436712605358379549855266990004874527619165055309479408642056785291749516951228955901757164977933719570888021180810648139807794168025373875824455531353312220691363038741361703070142225671825259419847043526549264842840215733012113769122680590795790657654304941105520801667571195884980473671827479105103940453429788732760403767045526738657406871646989084484531440460777716523746608929011912367420790519753787916670574223576087497185963245439500116060452900722505572724100186422309885353772082688848189932031427010432315804476347262384261138386398414398010394192751680321903526298032500357705964762244308215956952781677546136237443013028955507669518693139426022224292693045494404901457699626927541356633116308561239108416245531978970615418186412492838665136716630736001057237161744896182281485139949762477615852543755871182245706576579003595969301789555233575099323700450169210088276713423366076127522239606659458660921879654241399790200237647203298164237065605794226843038727059239467058711779937623051399068031703185329808783192921928952345342319994038472473905081876783675889292745430606969759528375442741370224078384588899898543622768325218292861159830080680855835164122628323549797063182424724137683380184994316250211704118379816103869242731066161317499607445272653294321512508110900441690595649103730260694519523451542238154220883635429331878032405388421421813994786845370694024932494841669665541357324439201334214057469292524675049740150928233911377617069839558289225984051454042206233981199566069981544426269921312009421841520214848784223556701409985134488604792463635108615989819397327944337236103486268886127425834330550150131935347487986905049554988861138139590686939493164578791870179634652590552588751279967567584958386730503605730618217288101734997593768580846852069845241591051331196848739222432511984417143125741908422228563538046772802615603324138063424302825153332090253593875127681533335421983690577652993337041598329410867155602810347475273588513977500517473327191686156776592918882334395592843972013387332471446022313865860685125253965766959860385837499506567906395339969386582955788887478825824428899406936422760390661398220962634894170845564578573615322953897816471853106048731507524809389883807007158188686166018782160004050681806569552479484655468544930314804077882630612534734270579521833863778066014176555347582523229455479516890894221560070741487000920900285620506003596766584788452510004580145041494910926775129802793663557833625721252398555379415221448813849458380648478236790789452793111860733720154681840845595104818021386499143762378552852722743064083754228630470061863815659896430452720966700479497580480307748500210617108481447991939230888164396188727321981380586194357454772842842659641418168947905481172283507533445359993417243373087617496978881170110749358170891025957376564516716940984290197797259361885251044882714278364926713700761802603394077864626091217397217644388199415570545580380161711999358464020835890456802128168990489554272981909607836208770698516808259486053043258420844713317906755277038554992680399049743598743996002169010822006931473854173579790466333099176048862570458707143789216459472773275689005825351537992369825272939792291684050210578044263218938348640922792499396314836559961122183758173402929339012900116114622875229928199849858608360604123577329824469566334219725614524627038102294499397706542502152860027277556422189298609155952946015033227444911367066377907260836627381811948792481249842784016562170067582746413262974796963368905161816785768577475527877010430525981921271847920376978158741393824393014022458675146382736870465139657924985368200302353914345443650846157727235000489530827957413462912816425669683440724740093390513362834774512044515724459412125534212026182181305463514718821343372223621603172059559149703160220344225680235212072273516865199533293695475261331243133157573027573651159882450244505553741180304125113306463253258331484053083757422380654080233888028019424013999026941969787663862298088848012099557419669898026497317431313707906279788961253518054832057802448966193823715110476176478897333109460668172657726790538145962391467927178016206949739530476547772838577004155747474792553646605932787927298812805639553281280406066822127509877431905189975074750998904694610984260452635437179775027158396298286635386484887046954226316847909353892821581458092333344407181184660467295769061849445472874227322332193925823550881360039793063336897549423388778692211379382399718538247265371872517450367926347377487542436089390454747426698524727650489694413363378880403888796104570290081431672861962877255792180913519072205114753388244633734103462398625735443604206196783935108219410757234237549111958517981489627398865597685369366302413027579787110826465081044262492139840178258626018928040099797658735528700057125479047397359006920219662287648152760486034378179474774202829883869917409297643523635709875257070267787454012430241775088576892443666752423085344266340064287196994549392567283757578685548921965555160136574672903628405850116920682630961694601250762220589904143907235987549851761682462818432928996509857333863611770904192649308377273878081145148588562933294852303910371239764116137462179253723509435892414142526813078026073819052951172138491889298214070078841288149705336887209659265605591099579733489720004833993704193076790755967079530052217896506873967296248631074275831918255225156938768396845935659021555148237148340897944231533093059132138829802143862623212312199355871642190393104687894932211294953499409340519276391979466118966494263912468477502043521889142920023295898463621573818024129755451014994019794429781488883104934089654765421616316862222569033031143166536820039432805553790840571077987642930409766416178352318937678700473258270987389047837577242272054531890841725055719968604211222897528558789219440638809699187263144525080065657538993453980616791194262872815294352957628230620820693946877324584572204597999308869312794876897650283258286273421170021095266016254876846131766215247701910996871194641098267246189933152238822016811677118269851649072388984287268137388261586796201802152217121190899070630238710988635173314489595359479562378140943205434729431435656583364334271472782054361689303808870829291356007073120793566958968975737273716436373398301580572537915118737733785799663552842958557152403697147508221688169839287817237426150450907860957932985951242301901616087262380975768172874111393138592041141972712028904950533402182293686592824250840942855351300477147402517724065376611859988856182794381242232415190762920216903356977865218033646148394265409071495375003663355141451285288742674346248761578332392058511144432936781076867402018435829989194279177295414848176336557353315947736900431594612420523957997206510775898766042750171936267523828491958496778749126672920054849236637452718713896439004055510159191983873262133041772322391069993042585318454727672260460905502644163295208525434295859655790827288021254601301773533128835857569989764253896221518648507119322391914408640851785168873163702335339761071868372279031124691029032260823813177335238769185046900296511427611173143455009204330432344621401433342567326428056513511981525430374317553654367650419796133522454647024725029691973283643255988108181468968776078437774284688242184198352992865360126974966707360050756825355392132672347855519130941227176663038340244931655657380773636530054609066478315643175470997646529024572159763115281144222005253171914339621644546011433873391016750257996051864584437678027938309174647858757187255327157248170294181302502444600902336367207993459180453063967082155624331488639600244574514350043339141943149235550600007703779232960209991618471484180381611368347507308428407686081421568061764508157737191059020195105941775430185633817555684374468391257605262147383303787955539193677225719316771675320511393144078491176188882423938113486053424346127379686885984971978518943640988675349548948982941242483865541009473919360847628560640682941047018285082916202288090560705434696644141249907055938685426388295189319506898282304555806714327584339913071504310832211536501333352844235520609478167815249443700177360615647093829611878888362264233478442372837048038706774081991064620247013022206335569831364912451075932512843266971449944904875662174726880154581990516568723705800144448786845024322302453016641010346707921748841129129455406004591838617761752406827300250574126021835147577330813066079841132191091457858671892383360341391325515253700695260674135777761575491759596107874145128949486451428788921610162397251438613450403063977551295276269891216238845458445838220837829727023940099613941397394563818857115196954037639561650526957467298826151153113335093406788711886696006946850125397306240386455472794705196806501257229714056474474373145108355091927016045624775853223734606825104318843138077365151143246697342082569162943082884160173895376687674540668353857734906798268212279456004911368630015388859587987848792495088208901455283949798394011819970336518088828587711139883900857491719999926144205947397294824926901968299524127781970173852579162449590060371980763425481510578722884248105000983065984587834637852412604359205518449004960398872124993441416066206659009303778066512669147584727401975006728900911623887235277962385951263630284059438212018224535484543626147650212409449928637112877511679459939900612896975297370832291100786049669990389075502733977487520967905498163661339007216377144273279934161775641545368534072806502703691736702093761454334518040173733384117799361524780919005405457160925461753415833649038199981940627866583474097867396518101922916437449201417979632516468781168748714377696327723573212537834217042136840048724029695370062853213254114700448223690093927636784481519225988386451592578737111895868788041987300010091574155751801991085349980516516048356969791130653679392378052314378452909448260306469483243481642052573356428246125287336604904261681380515652884083358768743382542964288326861874091485011635172660249936003887146204886525203744093004632169490321737686327509837848156601276796581823882224329181618448073058472426922049048094054486571107087563176701505438512302198495024964902241611039775014057399132496977331777586589771574521365695866080344503950724345895391335943590358837150845231764826939982709258306722388961776105836502890871473064802043953424977547891058419171571606636323950863789320108702866813629137209146563568392617611722566716328089201065894484527112353427486464865015904492655933835483385650104233535927844317346251981672653181093367674158588179828853798849648009391751485658201399761226783361614300625542619737983655084502029649045710490407931974832946255072107031710570388764229064994109781492856229635745289895784881164274923482995485559016919171129804151361971433649957272676612136924413962983146865966782114194871506692860694824106318200199874767861541102689473756334796385634604497001395304559172514018426744846091297829530449718633393516388906051582429722248684937476419965235751546661244641789904854339547604935110090314677561007448974302301593826324860682801681357452653348381592858353316732096753110172528050233926279786647649205347001086834664242920244520244879953999054143596521585275725794715693552616081796611447153744204063935277264074171412112860820173375653972318194001236666308720042701409062134358257896071861825127058698561090701278518376665415736069016496344403385696396213453293373472197254202508687022523415386721634167758904598590860557344140151255463103188935253370314608371189753465150936843670268237381062289564185770542723883865752828266858688502703474288429942976880441385060683523744747280871984882105131694604393959473298263759730740843525049917537952759081286765180721109459547308309382873456538258127624706610859101507560376279790720966332729019854641351677420151997663033940410329326756758772192786223018821776006775919475935171379198281923607525455688758748979893814904665742514019565726127571824760491399033040985422491609490815917739258512200329740727563240724558899791468356346514108350379797999288965839743820246910734181553928304764142694928618756576736565402422025837927583271931596028206214992756934387792915835254502648280409247281047728402514613980107850524440914042367668849844540410879849076181020300718929124803996343389076245604932002049459760497208030994845277838505643305210791741954657473606603586249524870092990011305914683297354563822806022435492024842775750872198568749471326895761464618487328649780359686842845683406414496420191424140558221138714401134482691599765194008411371671226925994560364089672374601143484964768760537316195906780290189436681968588779139195622217767476117324138802420440016423463180530356359575137476024543795034873771308384622706072701950850196373461903363653631899031127987024141265706246744666884174921249129873798201678640087905163687080499085865435457941991675837617045394636024047805263849790828481790306322017698795201517364705841339620145992101995551022641588747867098796199090357768880713839053227724200534510485724941717557611895836875475139065274361695571171392806801268810051589028194707568515075736681536867651866590383506475435704577477756483723697101956120097402677973353289426417122469036319357371012510433636339814372647072532341790776274907412813463041062999629979707590807788511553287652281668086041144002549281982997246492739431565066106942554718237287097908054304660104034741018677208668228691791123142921512015043829953740996658668888188044330697637833283693829211523518311592972856765697489522508985334297585191202643740579381768028434568787618367733026967443125992126023111523351121412191521434125566646922310854423901902546962607735352031937948745851293480466475067749857115298533201552510116979735701918630541556378908863005432944472893937798296904074911355487251125653440121782253741215169209146580653688619604670802549068848197572707774262720576881095227616817345594576393512180560401223131123782115541483793610770068279613946526726178198332475520072919116386699088393252701320056323622799443667611021495107656334523440046767320435802427364171583844204661502237928841613084072285583422963596091002977095002174040184870694477036455489548894375940845080202871824403098040102167076480161525101212880403178102129011570834191068898974638033894514605992995937829051017978868548037173935579739686563347037041031328322653762403819927778732316859603710939146093821068246165334042555929249557384678408057193978828429667067930926365605385322119318008017724677381990917514128275445892984838643225544187009634515784374674257657067722782756081832207755869932256037935906658235894460685274237254005705187749189022771537854532518443898394604780235862728065802311871700217108834595960181710357382929796488112278166664851873751482622563389085462415896817136141272965973111808548672052243405117488502983574392152075990644319166988931954396053209207159037853029200592918533612631795986736795327549067399260766165224146103065215336765998152746068463016039311276109176603077337190830250517593783028054673302930057684135656340213220717266782717713227104630777030790767457154783491862431103935040559984390633668497139254911043128510115627831336249854712634108188031593599467520623598934462949722323068367012258867383113739807979691891471241759659617087275730814472891992944564458573195268235462568152865945716643453274981267721062381448685273947945031104067726132118579456300377851179825832693613346091277322016996764327982324585128605656769771941360071744174471676094437024675338926011144126403422837102134123893378476435001281171671312678238457110908288763929651754830519742451582571420486090877398723029390949116558613614627769567923305503747341312507201096964832788913298753641448035337478245874744367907400485826349540356876266611498522695602445738036250340283206166405578162562623591799130350743974317474177277980853213517002054963198266571716562915197082063650323893569578470703290989740985782773822678406524888548199219873518331434388945480181314158751237112360675337260889889564586459131147433935967748687404070094756200123296867896692828526117399586792641314250660362113780060840908498385879735933142571351537375464514671590409875401893299546334002687684435553769949751982817835684484745551161286678723878051724832116891353985037437622793520581837851367009930770032075411153166116053027726298322887086860405871020512004422667530744808890761049902882662735525614193482910897868724410196656681169115042411442352257221274408595623802634658294032872747555971243173099607049450050533803105298621420558429154085649780103391483839042593860161945456324078769963205266685882634708883128422815288972432327693574720108095810435004078204332942070868973948909060142151180792413270052684387637994280661917451725349640759719913818141861557707223866705239175283580536736624622909449810773061287436612673875740032590277236897555268360579034278176553277360015517076499338389305338927545497382157734310449214876276438254519983039911727591580831843769428849096592537292171184916231767307628215495994754589211793846544078829576233774453683929526780273393521666683825578735326488757670306595720102503680520707602108252070310311670021383045766189798827876273851649949605968347321232674870695979303883215879797426292431025518979076126046512305180548894759270925388207107345411425610624552917584688234272149879772065492064553833411580196658003997618516984009346133303843085536663026469025257464847157792279844161905088367416703643454491414800855776465375095844320560893112791250801326064963346772711273741184839346915889602486015649830894706236147030211586193628544134556322573052358945517176255256298639639258985131010063303061402784928941364678772952645680003762143980682548183278943724465899578476291271050728705643557090058107820562232375635205643674361247866517732084285839622032115517673373187091012541654272534180261048449879099252660780726445279447127378429434023353931985808460382492869156261988064129809781131728023322459876207122635469350637235408318988491830652891700012392575717649115344381016883600013104994702543961790251668617703116064435843153223497051506457777598034681235006092876006493701483463216677199320153435810239318187553071807106733025314565223477384434141693320571064265720413663955061082594733826200909683957553679609284534065388754903073188767477145524492471254972536767645285529281181277739809693918997698461934172008096857799827629967815554716457961954576596183000607555651582328060047288895519370136813158149383449026050855186279829231582252314439826479370691083831734997549591902577755438699608223653001126470427214248895048436596412771338902288362652887893877022818506417186187278677741822040077162681115089304807414905861792596906746638277928659924733238181692201168583404952148722842943693318531680503653136722042727396788499310555063511070647375734945985464972885867034086114219608999101474654845214120979356876282151969581798873468897987880961304526228231058662155568871259537441922838018672271662326273983536593170952779818713049865956040969402807465799662820424033731384053972708410851349186597790204099276206702578249061645038998471480025318887011373400068910517063284071603500786301856884550686378176598015111487951303135351652527026416467519773926987407105305954516706318076781969726719739695175034130554456250494749947170558312129771672403219206940365503608227020568126852830796128532128625332985851723548817663301836762005634974492368394957041362017811623994938951211050444732948376817717329137068113314445037585085531959657555942953612056251409487336767435883005511316786877565658877582096295641422182213930097805122594485042835367269860954171894632243946716948473953946093282522212922974946648519067618663851370203908428122060533359050600291204226263398124449402275953286341491919505009839983238776625610586345878175619475687473078406207362212571577114277660413285678671332507388156778340440364353862565728926681113384510243235436304614247681221550564922747853337714440886183728611228721539643019666741749071160989438837244443158940888782114350870598610614171278410567620824846164884331210509928159486015375475139605311806454896222221203779687164944207734458492236041033539975364945669444703786762900539722735612129309185513688298789805445897426800549661464099095988162603922548471393559155751481215807981677430768544008795837950370591639144926381669341138750874719760696098390951409119043995356436759948984950291590403417931793942425794260056248396097458746708349979912901905201316794959429368241117586639241004512823420669440099614975157418118621612080514295641572728853803543794240220070060058831004161855003607520174252831630107951407311080205883924686198006268017571823723960699519406487930518477803009876260869426066151272336188773175024987437973430702407158238569364502673927157424857864901980031108430415692443397438702690059729887810445701889419600329022930549091224121128269254447838207689197778193057684048687238991860594274259170340528015341195801123804637565288825611032359306341295462317835017346096534117751527563106109533386996265665182989002372830126940529204748294530821563637840831146143691400784840505160352688460660649515371092785562769120072142358707702296927930669505431639929015355902063564155382419715910846083046669091627662396221272597648549918107935497150123630981057414483772120633989853827561495461328119746237623555875308728010865032963718969962254604533954914622926800707642195458078861697869240082921973910765919164528868016966174568633542935684366900095617961829697295495188152045015218283225400494594031052645678372837761550740695306395216644625094226858348276350232527544159173830315114511532116954199247733458414544365798410570129896553624508254189495104817818040677450712271319574285160310474722664603324802575689730864480544624880166534752790383112629526606175916815150103527173534342573322509418580440012065960763610294917523528871706165914430370570768395702287473444127027458744228086028251862470255798104446448862745848895472344922907485551961226830641724014846893867366958383399109804176961741056812808832385741756773055095316326812967971358624673481849649236823825953961391043815085223267128094907107858442102105212942272000750843802604545480896873671880398045808175012441137643484796441745828810507211809381337757977548328689796971111906599352974495888312686740137521095212192112399548123568077443850831281687039396848171749978768603844698138857897992453957945356617630053552192738028635641012289082667794390354519809053612357431203998561721720311909985349768861502998159224979956124165262733975143332250070224691274978356964263039226386304853064911664027025428442942582181709057783509050414194439980090628467888803251387220898030850787767676909612119506070470115926255695292933960530427105655787461089072838062977407041370486974241945479106436758775901495282350646118142741344408131777575785284417776496686644289843344780229452642686090417116746490338469671072734200612713298483426565373180479347238580800596210953778567430541895128789191847433143258211683695619248423234627963017540165694747748518117382836349850696911015366654292771015011466238441345319367983553998993249605174729621382307498447405107124034737646126586728404429767656523941291485332193037406723476619723171208106770449686715507011101647318064078111873801477343479646296242718290984060660202528773101494553783207732079530413972136710841351868091051647394714225001629360973768756764988574831144573266189177985308502713592056093533064217587545469167213262142644243534806503787251578053521853459560388926294408610064610066448372204442430546738700946869596897143882939357550844708589578352004161739003155248705956898705825262982032952956282185264810069496577813998094880162924321190567818701612765918861404046907081752421681571826511935149939850974865913903954563996065158894800887817513737662687160969182391722640559412099397414212976573194551359066707245074085122553980034767807673560216035589267234367689871233944446872130341300882622122877536085715431801530189928149772103585162288759525945461722474262180702129431240012392209675638725972151544107676062568627798427874931953857088711779120228671930095254132102221035927928671489514921402416658322212997584199346166760496895146318947881528929441791962641719587726888913729429935713034067303401246826116193574335955916042107012028079712942500377529833779512476904553702973110982405924295880003095162179289482921062258228269904166601778327903353329015428006831932196124000901594541095217949695981728844810218013191010033581288543772040177597165955280681139738942511186088619244104249033421023397847133671635677006527359514886792031538169893291238679511179316292095465856069870453058227847622362644357060565428672494255962895077615783233801670533354936249147743150465187484281563269691575734592757565038153347758154969129605554587688023759328093110517020918201709994836130403121762148380883371784671986968690308309852579189691940946954606718729367722925251023995976041678188587007225773059755818991062730034769906235525395303227182598799615923379803313279049577582188155871206690847958586709429449660298733304131007822952267265135000943146406832962591778919172055196050900811147546249140349418843575118827099835800326087839226733095119181928920795683529881427004735028867493168930044174481084130733692684571317387727155930023634360903580360312293591773269226859741335587359928836367347533288215465757576612122660364746639754498406732645949845750388405120389625990766190201532352762304792554693061256753580322592057173155110915478658435819467450096873390735307696717946083683932256007695118156351039760868687270909263974835478408297654340963587244109821352208942998655610648910259762582578563586355107351815888401128499217395240164098414300266081200226277789582844354263467885271888182590571108763110364912552221409002091285683861079922537453838439889732230797182354203475801801944356200556695112105240321597575739923407733786974731059996811969196957277091426675247281352408056020780768311388106750813193788781754061466866833466990209083134750480336698490869533304375491969418203632570835872311783800849873472560910978510168808749563697018625035373120313778101696848691418955942151691949320312142825730208776077572867202864001714595547872627369041494276712111902631722423567388730623981902493152036486780944375822971294278721730537878584541814207707021204196913617963588634109561309381319260688358252338024225066164104314454783585870418317569896143355621441969355870843908861992177782841925024447319200887757022960422191403179710935222199234688286174010421479856862726364332023605385733791637539201547458051120395029455525289603530372717024990766888750495704816366974093482439783761953565377540814261206262384639116431622118765207236089596789795926954084578753018202383946674879485055376127812638776740060137072756383331381747928873719159161597024444614372082104064142993494386842505246195234126643102589940716161738842198190019367191671759144251855093831772151636697721180123455837997467766927294789984974933677844803812723903336790476765522287525496327762459436013609883197665538432070479805482383735653883815547657916761538764245233733611001641177954140016754939085206834853641727263457688372582576576552723581551481730794917663074027663098027635174874616260934321823185114780940084916883473708283822085189728314087379195345262230067130036960205610508570921770443402120037893163579608078865351990594819557481655930309333699114643370534062773972376127728593977715912009505139831305899255635235304023330816410470494906734506092595317245296567748984119149459650632812512022076331917571599676482606848962106950037393275874629971411905464303896826627085696358015573513630901245557723531398083591378264722371969002490833538893520256677193430705696892661381779852694383553533849563961995076551848759494003782708536436263738403905289585727444664661493151517695219344517971503448097327790013251413928744866020743302415947443120692044722879556605433516209107149136528141270930602445445333288519861697825766494171518671965646385082238306731346206990949503787424735864089897138420635295594052277256395412461178469841769129568371473510122633969786683658851431645812966305899903669582945479676539167059144665178381827035055041844537614100493759394972252538236463183547676197983323552589810956687691237225660178091262433715915648443556507833506666569799428615385588871219684688082493859504628156574294129952965564693639824376743821366314087813080738225900050615993740737260181954395095810625040745995364213410770955116749532456996434929245223361289934817329663378132322739586933268236111849985993316335789356614542562668720361306242643044220799738216207138052890546487312493770125242356989513561812454177185947740659694273290262271346604978013982119810336808867338451725368914120403954207889010097814511071765037099270136982895535954509727506049676694091499179920396264107856770804668346074088038913553862514651604688419491213892995980016753912027012333886341175824889664252689212164903645807830715771792055079092255225777357368350765968347544197590876362887983802289960419848293461655625276979054250262261947867807261961974008057780667812782347986872083765945490549108277844711515945658082389552524155293314870842448855042266624569873186383708759182075924069164799021760831948441824348299291792941537754809363934909611198038285497355041558140186665439919211670182732056774773189038330667557395339566254302174940190575852843850665617618702768111385828931854252391883313648602338100213862775946440268617737581935680359973935091649313498218672447001161679426858445392855649169298947973529842431743801925462123657429340344793514401971692674881771728918044886933754376741157319749456799498335802436487969006823507070508745306797930850701238798698117707166726781961777857831152067961450821312845705743778685222525944958598058862010220818012783310689975630503097556597889216709576241129099866361228769769731479658626353562281967829989932168272644938403706485098268334541829115063988395759828288607626289616186940433187052406123334572426673521364156340387821727558185638889338507486963007358906567988735687128804566002899580218012699297522936960234470517189291909715101107224372694989533997102227770378809679558864592160326141756426925305043148456988126218915943343905119526075816555972629161012658843092311172920307621478864635331122350447575661799532115664557300739023974157465547881732100705009136373706220074101809102542837054612442443421831091146133132762036400423045647387683765792891730592292978689319846489370192722518212670153717532364503903766457761449202614443043928141208071812727833813540642673166458378113960477839580172481934822892940992212902537867076731984725380582430052492656833065489052799920402180650134305522311430567246211048556484335852906343573081514238651235348487267322474626024811624794824704952522946582078865633927481730497370699043242746543750345640634270925557993635128392235557407238884741868224142035781657251570728681313454691698106265227136716405219664944143487673169458751865723746391573720475320125904517918101328232565203089090950312655524788541830369538832448963694850164852349934505996236529705518127290022874510905971789970072966195577679149026372151590323793473815248778652242095888405146094609542764522058514628148676008056660020324955530171122737925913875066011333346821581776926304994216168127135054347185471511042715524793487095904812735616044653648150461399368667968360839949818717046900667222467412520294130421891820599408215097112942751184114317025822159064252891861418886338628075713699073213156882956023420848332780300914158171486040430085350439923071708414790949722271759611839718525874922571414245604273984325038385499079155300221700606586406830903068885994371536341732718888478491503969158974921434384610893808735151900420787265488286341396284671012923815329314362455959652951100604980395228518829131134677793129531554018916999307086889153551971946201539643832632948661820683420781531130356231230949681197965037499884293165010891512181525563374201091280141771555597449424075984359920515019617032932885574345479478338484097213909306281140232150292408288042317177141286349500382666316023639224434008744028641598893365848004220929234289965466686551678149413171471195625100335981288447363287547097453997928612049587515757973713175605424858255775212725456842547786583070805944487478703438155191958408694374851197578260321360835445681331409818816036978910637862004635558656816671242306649230884960722108678452273678992823892443470283386961598037361048872083603307964609352208941458347508923784873100716628715746081461511398011331160816756496277202960035602245890156680617311447163909275670905982181423087698460542910297268999537104324416858178930566688779411532299380358723336149946929096838417553195677040583348647704409401626315778034861079815862147922963269432307839953261521976575692017182738129865703926186270309304839332029272149822823958599386992980222958052165833810767697805496232336084170674036558817909730696839088904406545129467481864986136033158341490332471709195361264006121712767254002343894268638795871569626067900815324373135012973271388401414614563396755646011353407801955394790296485845020904054539148130209496072010416045403586015376733380906698555365652610412744032700037685227740327131002749109198328886011483079513971398946462566740118544167477805522563732439331131083447033442297162662284198656738923924142610230161240060009442565513600704309469123973687002293099615009086825403134168298753993936893461288135551118711640506760595213838208724499055045422348512182599259242090579369820187161942861303837427303397270329497789765346969473389744227141315340345429048019040460341648653291026865051687198486535286379744492238225799163658109546457480554099062018273724187171931236930871387784825891164338972858947425383172852223751899760353932089490175508540907944512288283979756200358626707007057786315171037749441406455296404129309159094630870516975111861107466439570151231778336663815154931757292949052024918535947580099559866301218327877019180994467522187408513300796466493832969454595308854851656956367819424150972622286987907008576650704683071775911700887778082684737946211669628709530957993031051212965564981802836034010942246568333140363183415442339292638218696758964625690007972891481984011831134499724704710602948996139809489046363575728060633799981206371940674491275254755541504465959503740759061302896063600789612477856040754132996056531591956277073586524429132289774242568030706456423433138067255524047891062361053317833508907853987894449235115908801108304608650468944018580445947109173428261524706261336435469647176315134368425094861331841665402368208851414060134755622238159738918407849499293359013723115567136677682766846310532705185146408764460903037681706197701339297748476001805022085406718880956240719424581577274737080735478197866245038707479729272461667461993192617868896678937173394127883673107272372887184906634655780686044695555278900736025749319866765120821262764772630315828068050476127017587900910111284605344408286440379340701616529007433294873545293778514058208888852305985842235212094428831139569464151879573070404639441138385719334283780493878284924072364893158835699996277298070306630779030133371036797094181379356712650405427520467893541281248275811616325603119018521812276632635457277155237656636648171610839512983922275401117255216616183353140931127551327031924804673701297177068431064242891079784485101028090653258292698778810446314816811339633272952958115726792352488634045041590692279203350222769632719066291665533557070188468717546706420010172348509545827915587074249983730889255954102342300788553616420492151543382138415556517033242182101831167611363436965752330143135170971038677284976524405274016651392705566102802022221390735914602701079175585661277767098000497763871354174025667566038479776477382118049325739066240005540449574700504015665977549342332752512756379815768543342693095406529551613160354429814286374729561041220027500485645785784009749031109178598630768117441217940346493009956614624164435512855296910985056366969500963427136013008668788975615686214637027971686277101382201033118870171195935287934786161283976548742648094549580556579339586928946648819648304608950899897301254778336828887361901488932677608800940627423616542080282346160972842370380070104301378872990359329061065709224939443950997684457030181316625140410234988088493948097305346508859058118643802926413302427794781964778333358764490104094984106964121436857672260335269269044385999435883624525759250882661360492277634963565511344845073493107600387895995936299946218944965040620781575257395974423359230688260394059333535318003192674090932550115234540475744370979515794773311705045880997050233933924498526856608399079422958107754497270561930072207557722744127693098640836845730558336635293949965996344698956276746629561763813108188820673557136739843413071033137338204124432092458468929785750539650084540938257669690141687974403865131203715290758452106547766917852347787145259938275431357718451528796249483871765733933239874787378266958981347569331914254271670831353242550717757205933028693609174663567912176952593050660766336932694142654590580564119068435777275572602060429982538513700201330441905062935887206776289916721489301490489174913919347750249056830304117909337685841625319773833461592851672256315292710282757781800531633573281944864534500647205861931701124753936891227206709694946292332197893055595470499780925684270164311312590279068989281875918432051527302662604908483315043245089837490045958527642228252537587859272402605793447219771730520647565804537143557524110770457949836011676408957549033064560027743758087577759717806377860711463551251598946762569367933662760771913949911858723248415897049678766030192189560827663245671004514525383138603024503669327261563120951548856526600908570107818650352388180451310660309337179806474053462267205985387870182254656986251945557485286480985370708636077659244975890212302485551554531676371641458138171780458268326317964379242161461036951620376788434795752961542766709397394468409982087998500084270637662054638914461215394789399298727589305881890642569727239797592701873842280667727923447774723229274430770849021099111591543002879400902664062128552699237141271995892383113405078014189762426521152000747900729347068494157586281749188018852538177439824190894307599405718970267256483768857069773782301911601245570998807022109559703554090667924902741772091136585895260891304371592935935275707500793783684020146481892266307601079606200545843897309339313165796568485055380372693260467990970697192342106625844722070438771230675745166893181477693439438386932965853487079690041085071114095749700620134018894873373555980905104439870181278649548669592429330863805777147889101105536612192312884110216226580240526773347581384981499279289645407446341637514373909096994460386449157898023250349038155101506357996011045895175970842228153615279377026959436770361590509447221332031772807982992975374213239885112702175778510317610473502658136278375078500112823985319379198791017432315437831230821488303941612381911430499417563112749136230707651415445487315405280902526579469158402332810585782844689121204982732729659908562266799362358515336708367261829126589228229705900653354247449010544348915229880994705085074544879107202754977982614637855259103025511422990193089434733052523521894551112608186334516103176628802889893268158363189329590798723892342726368919382498176303911282591900397750165014141555168361311503568527811175909054699273294586037181761119868336068871457349600062746352107016290092120458018609130197398348496146811887970941982101806151050236922666628028986210464873437854692058911398644184095737712803240517154431774438325933076176317382875951675360293344255528740628757086708182146392810642465004945707047837982688124998625695503591480463679568526897291818730529533723621902471916044607996391876083260730823568166202408405567691138924381891465359968466130422529157003171471118709420376452557126216178916518366888289973501097971500781348702866966716901807865647570444216147822611956500587789779787241139557625909580159569019748417727212214537777709638382009083701205083843151032307288010888932485356578893382429723972710449781107551699067609271739729570771912705991218231424596199486137916131744426048429089210528495633422709136739908616107335185551210525061109848287662677791557448844399325327938093126368070627721317310474972810391989852431572660038312172097516816589966437587244124966554492318893337125671946891832212842022352210762644621357254352331923611394104036581075308753996940848916247149429180416267465354662202826546337397660128015277834324694050897577069174509449921513759808539540664362024408317808059939820981268735979142678006012440538892564543950192238672149589060048086284454325460706824674703331169866122476429137687334565186276727410003089817025205648003491460825323741222087577688265693750351261320849828303785439258328552066507380729364668985695769057161132989051748124545174674821342806243035123649937655895836434065078620072360780967807508784144552995129447521877466487567556798073076191949642026912482326688676267604113354426533900634249981450518371292059612906310774532263555632488859943018472180106464651137977023526263970550573518907970419297356922954372101837174933877257623542331716432657983138700798912714651750259147465254208135529815354132029836643678623385025554961438903021103740810285853092868623013936289845200197557114871230221576383013153994212399844349972566737058042195014558198066075713542967177833962447021376236132720475292574808917974867955664266385459538152194815629680018919012899256976300334016005090055047088830253862918291692796600945237071099970243375505594603162214305253800434995742594126818383248966738817186572770919846656132685656717271961456565565024286724792602688138207993865729228501295359654292760538477569393742757099055106433454759643999849441972696604995977192535174812405486445937368161220328295622338083807562733165741542820122414416253772479005923613695385768464728748938626971174632186161301815315649918357435311284052883044630852341407199277102599560300802858533262424508307222361759225230292202470404445337134365546553983104975110672048898573224272284425055850565365814785785667863098074732885653515698975874669787637465271709953786461169763884691907482816656975407989565050641017064317773024754278744382372375749416521495350657375595293505212226548452073536006538979244690192205358946568541360764150389226192624059354310070599830632674204235095189792907262361898649744745651891482298944205942863645618954710151956555298501833372108991708035102755929168681412840027379607018141596759702317109584544282440406563013810555515213359482565201166841623706206677942969844116086293916593419222052558009126645886240722717480097058099874596865937447725509734425445505512035178913712760200954618430668978366176881036314532594020145217615192319541877609843352476377119320409088501204102452039186576321340098554416985479574676179040516609036702481473390404155277009512575988317183032281221586317665987001233728078155196319158660802696128238600426061893515668835574057779939982281968686645139702403431505747435010508612136916942001692614318094972903301646033254794136801748659790946305073411736045502574581115533168189280218724278148137744197401609127009410538285382498460513727247277514826343456328296888205280918583726733704337668604502658696944319784206822928408796813762825972713193441435814799871037890871716695257771876768424982277028861890931618286238187843519611136675701389937525426258924681532234439145531214465934731374907131856255956566921720306606297419364993107217864117769176662682102151058857727070809403978926463867673971134446082255766375618503903482535167454987800126539165565415947472272210996384975821790988138433165224581608093040593346427060396712459369875896123151964919522665510989436789249188751751816754647317815330864520937191853026255976265005141275917066796224395686895912469847534078551997761368437827349375641558084672706110413786698971936826967596929482924033594183575973175158442541593405339676436947790652511567338061810576891913544838277577651988338597799387043293427702057086266025292447085790470376425316110004888973057215815211346498151666487924059907089743307750909264941694751519490191053348383564543542705655462137623465063342751803012201043868497508983180116857497962590174679347016901037811094967148985925356504514924799124821670428184201073803966097460707693328578229819777959159769729947750737480139650414629734423773017784181544787466795887543092323397025722270061059468524309925074520352138503848127416024783578530645814393331992909368553834117520706531282700038970569679364069198951486830548744315556047646790782431384558797829939545419598713431173387027813374824483653874097057535616611899435804544433933904964546663610092006503637802398831723193288959162018327452847395053518065637104101611833837683167908711631301203716824839893336671239456953719720155578883366551891716212243678698002697983561968212020944566031683815787391256834780659354223633823729711317520201879136390908764663880733273872916206703806804834066956506536487838429442838314875747693001543471413900033227551626982477281778104980584267704538183466361389457164689121004334150111610074754893704658881048870564663200719362265341854784610117877371938499141784216372883682567865640826066525341958175612350148417804091586611715051849502504179612814529323339448485162106042627916370303709731844131163556389709234386274395720410374588710850180535691707266375141878550797867193762845208186326018010144463437209256501557701505902746545376995563133977451316137930465660576007896761457563377396542109157379127247450847461371243486096660666952880764827097036878790243565400535496295355858297949133012937843023169507503508823880695138624895485096842669716071189019737258312538098462329088250339707738454180918927352257464508153788475799364790609560048918289990563854324011708461290761145787576293304111118352154239003881729332926896745704575869268971929904935512677172861647720760024084582860279880998523822973989883006982551985545667722223071580411318067744733106228940849900033069291058862604247951572477231821979187697412671645104744361720801705698843931763591568127701879271952958638098694584546249132369397922249952257041954364266220974986764096742759625200148927158347092451123573344568004201431201333937644065987908193599046183821703031568152293485011640048048692728897753745853095229127080076406876540174693359466927559744407120875307395924222765150764450542940635978861410051610665318888744595006855954733910029915213088736758647880996613064774935261253389854794216604598463639681993130596230205595871969773632438831610369234972648669037047549042054792746316496766720537678198371993382128105568902520741831935207718537725004115280731706464845010337217470375782445873752312685614279151778810148317836750383085098715019272560901970499140669788857599139473347580488594174258890261586038920303289491059479255311425411775766160704039416079495613809233238076900927162034952055580066226173615186982059246184693329649578580838532532369549956922407172840890338993781351500373583699106833817971769208353098929529411616152540778411833968521651526903069992013214938788418052989236814787764765217625886387926064256559224939046488011284631109185248285633356255880581152287863362610295360363027611601451631985177613491640525079759670324009686365672462296159856237342912500588384306875179574244798272607009134374699511848537367944007783737427046883859095404388497663837153585250586210294113633126482782182942327796641808630564197503479853560243888097618650212999862647094097952077386542210891104566869811605424227713387121740928416442713901396543689337188267245277095816232475860972770385684786845996332342355779973386577326766270473795062908016473934722240227319445089054151284907894416746755522922724155726327153184555926516423899172676430873355561383880463798186875484031690961279986586332921444801775946014342977548782467941852262720966228616812309601721827024584902644742802859756269919931057919739665151519103056615475666725597813477479965607309815652699958251117890248166515051562028362288130565727239627338164324034841654240452792929753977527415321330303823520590171465506397328373841154130243990078272384336313176042176107912032730854064860729276801135314195261922482481106178226415477440652287263158384708619974483443991195214311521436077077812877219922668357514379558568024721508119339751885869176429979934378118461370081391399441125727357267321040265391317102457327116620500734793421947407830128358262487996074552195473049001825034203932844056609615102329502717387684895400744828814398576331892061378879779781863319782464303926119588326293819613994368780954445481236365260957124536038308083474308626701518040082140491957512766807687942746978344213420970329764772040982573858778788217357172789668962524179127635936151050471468683684244797392865759821856303893811610648461661545741698916869399326273019603038331816054925990215203202001282538739607134258230557963229914622612642893442012267767445422746904973383156054677345395325252029912469085366985423121217283145008553177486606219450288144283717939250878245928942319742373577761622965653115944944137237576157875249613895033297618252308554513827292891667890641531436345202498198992904725860084415790461236790635800488294131595386987506307237627187062605552469987527930031624976143208496960953005769145469860729697321018018579626541802194728685976687710138805631696146560557567787129834510601373079191726384764345557202162590665615475464459627650635225754262974672032947864947053066522559602371567432989048374013823521672946127350136573525302205218545610029688510460461004386101656322994246918132024425764143056903881069863721051647301048775323560738936674325263201105993354736481115484142334017492779048542349572655000540855378878177349708494582752159775203386048350806029382994791004005017383531959612269224842069868041067492894645344405887295690773109678157088698941600252861568721932195909753282159037338029696966340638384321547456444678084785857737759364886073525585244490756614115428773502995178808689320582898366855694818142749231312307052439400903327052909217749539307004213966963496636001857214253963611145029650619705585085246313431069513782462777110475722792993938052790066807637586893998281755194763892851834680129771026683384299121698962177907678825692411177697992722423422555700002410679668663325733420562323393273403630927350027914845535636408618501075941169697762762279606223030946878541075597551085019135286788298310456206093511890272824187232800679595399182709270985424036602072627161137007280624450564394584670434064981313220096741022871720684525664573135427981808497641974377477472940329577547886371488224172848518854276863071172839054129993232541763826424487040815302674423413737397779326508731327897511301351888372944152080055560267656990166711889207553714221926389563135616333669520041027811736904754528872318400114708349074393771620549938836371981055967908849007724589423878406796175036304985899968420234460060121178935029558011156894450025559384943957920993653767795768791106663475551140371700096180663517834378329729248215030967851226580908871093836031597274557283001351214116666480154397118506435654985886368940320275700047065997559429255844081771225154679465013567766712616395703470509043485274037875574153738206251687582788372093730726182479396655961307288670505719850780364458322889383337671978925886507513851124253345706186206816282608117484949388620633102803472431953484634929019769778664184319729850010330164133082606049814326444858602546841311183820505487749867016343227132381970756985226052313274383033890262180016518952896980856964949850861382134951720123329234051267424983535862995664737216301296048369557375384394256167015091578664451187680405085683304199394399469645489437762910383680258689219989636861167297673935718654896025528624285126203511806857324210389089578857539925750399669076520214408713841091879660986633968157257493977428449089140867101680021212064322398966924062529942655970734518267772419377623149632020146997211318645636308288920901319551653387194067203129804016909378421451486626242865079404760545493859690773052726864739871741002003215270209883713250299285465058725292648400433522677594021803153786708129274049307524844605014633946771655773334791030637418007202005057809862844755598470623744502085315511095447936172101714357242043214004350821941276600555660264416729877396249186998998773359752991183786801937729635679516395997611960219290564196923282705524353437131811951858838052448139602055589332633197363739676425251015074358745011352364281272889150480224386911614938573965365910430608808130361952485765482388156975993779281517832190623966301799745337870379926617280051454349755790580859446801511248539581246815785018750228650725954666020825126355753629222844796024355259198498276963542485160455892698572215968833210131569517164885043804626700881751892001139369940950668276880481851258647955887732267431954877365833450540474685413995693053944667430606443583671325004558230406834143820500847364134841991274630424289894304035933380166680237456479544151478316736774497715610828533526725215784537480839262412272937964849087528119611039055199238382463957172833067416059848103141749496096201102442443928178776246852463123851170841937635414406829006792253943301663496991545135595841970481827170504429896316102253446411680294303600514914215555967623087352035379959969713979202862707761611583307153697307949024658225233727594433505089810784073621377727608928665725900125530035817934327319697796265288546620387763744544663914794785569443385239881297085968726282949694461603914856611664236987157208495655556737726502932278918233572698980692844573377186731479457538299690655631249669545685517552575276848942351994373567414809860731483308627099770956875256927191547130752819611154405782595764917257603678471490350283050056240460356504428773977311507653568462589281395706559301307043044976710146137228966325368357454133479670519177815585799728830878158212114246999237553730396541111982113812159779805176791492199265557024541886386151947362090336513033074293175147725899784264819975837216038934531055077626411978720343790064900954020324443976013780352804760074786435675405416372230560952014770919855245097604245196404643869722013904292984033958471088689218173220799863561240077244608280891305227597006644726703455048202787933225546122169052266874517106881593465241183146089164080161522359996526359989860548348083142115660783090377159022992471365762732457733870182392005912612165332423285356552647860822717913417112187874803461025261719986381852694351774678498089406541653506710513367088705505068487383847256938251884753416606110174669650869143613949615122876461607154782224238052032661103504495949986635639889753988576471051862300787453322266158507282350494474556226922133491448125289441452784841817287467680288881821984096532648865371978543691711734684049412438715661740848183187200982426640558141504733913712644457121432343060393743367435835443794502462875115471419099770143074037119404894661793029417822216620220752324676809044201622309241919386282173740012185680573102975952800421610475884104967725169929689293251083661910299095991124827071770629830305669790547424087305839530086340849659688190477920866837950698979144256922649227881781914334381199625305969666772816814914350654559908981805354949513651055004303946029280301251912889656833842162616835170198968114858650106960190326618574609901710803923598906534513245236648503812695987707425261533474283828685101603514077628222140815889828318309134887068767520833854621203270526570136871414911634598691487203982165557478475177124265515943204324233088695336695131182565148559054681642158943132095118371284494678543952049583830805081067856284940928559833993068361328435764043124282959862886359286143915110174235659113223268677247472629914767356846278628486327100644775670858346751689963999137327044102528074587620877350165231031562586366705700752901776550727295405109076290903273637293645545408015098446386645010743916340644459571958519170777617279964324838327894559128615449123164816879178582115050724246480837623330837825770607608481370925868434410637256414076767869379122586347843309884637964806865098153198999205644422425573111526634431434230788963960910561218696713209957426273608292094566556410617285931881579172450186973390370884070897063088957486645039218611234622399156715234552905636902265961154247204593895365059642352784797729420990187625787402332569271825554131637340983363161502231402501461669354656477847355667149072958030954726594556249990621065237267970142979093407771726284651980839340080120854411551749651049196452442820917356896205147959277672019756032349676600972077592775511111487037446080124521806779745159966213261062839898229260447790132750902831213672392551368018100321885659435211221671752302935130660337599359538478794537441997690444677497178985892346886998772694767423263130366250733471084118030370938988610533778836113644139163128827584067112668941357075077663787818909140509783630490349240497712585330575905772472986811003252349438094734103363552295920098416848766039861747906872577044702377399101016194242276074242444435107654894388282655524669758048267017404907451259430662340071886115208593511303115019060362038039765197703335085783497105889626063699107890850752612963239983468576000845629109229647398351192637178470143892470908566802441250785692399710491479866185231737109572798377863024792382217193398973717038764206153382198514328654522320454349292994024881325653962441674777685603066260953692125539126054740568861634334201297583625155661100868070474201023773523744477707721728075046268704454263327234273862992283047227925057146484812570514893413257466334152096530251497626847930818168576846196793343337608743281624246956643524451914975587069026072155661470156849155752647810033308746769440302955682357385982508109117769056117414843282306644370722728397260821746866874370768396692204150769546010688998472651992562805040652578929557360514737447287935501099832564526209623402741943251278075376096956012922203235029771002983691830138501771183515635785705063558476643474319743127523354089171050719264890688276639329727100056955687475433627200868748153071905724880441727051052101344521557191165716938006746292535526585259805920106094074559112532062794621679741023410215523118315622548096499728887556535163983923678761698638625914242304671352878253402064179150394040734315442545775209634795609652743398831447655332405923851794149938167202299906316377504127265921376276118714531436501798009837263859721608642039678647540574264348076166992590867247567144958300777894018967394163155019743624844435377652313072234123161673734003866575881697418310926864615965582348040402163150133069286173088602325642626488478241936064291318279978233639946503284684766589166785274889042451399912203367212223131412862207539413501407941844207441742111443809584938484067740945245495442491724366574484160846355713552960113982975144728478156219253196889153326016360981177965636949015340488258512264341526636196032572625508077638804961418105757285286379291838243555053969681678178574756991012276123037665243373176002476560491664307002298336499487394053936894541813720385482352816550231696716119171638400155237205187442817774915918562539529976200813965282919908451613591197705709286351871314161729341606032820224457531509841479980367893425113287349609655501593113993349191104970895143454932460148435180156830362226581207870920761062036799916940646939387675391669287153309377199867191333386859489036204402877173683691510108574969868335307727116923881117550096549172601171922804487068782446325830313302857706125963254022958602410255018135654957308327841191838592889589791031291088527539557629503049698019419547001149088185431641908008549072608084268672255715639839149159069624058496923766082314534685237859724718677455798869415011954273240898967160402747033592101621010870276402929932571392056659937275474563140578917031024662126088021734987026330557492778060646379703210292418366191635832963295611751470023841345257648349918740020613086265475685561628314539008655019604574112329984408790997090867863058807516292661200233137991755954705547975909676378235783922509593541107362625827141008260934085486148531143906289714705005521120435411006683748185436344953886169701934989707477995998393217315075281128630108849898871284363305320999635721414885564019231536458163142858324378358600579542628267985366397157889634370921459966832492136708441727006587596558810919193747204187254949389039879986005729407706770110703353423226713270033163315317075011359596638784317176618874230323367364750658872189144661797636374531676845014195438492623029558892178537398682999500408719800551326218581081088333719151496356705974685298730681080314724644736686884415908349940268608126100418923822084806966978121515205165441685376794682650091334239719168494930823953161607340263047363627460786254055653356953696138677595475000798930868399554210551041309831365949828216550274282604831940697881383606756690730175501296193663734606935664490850757423479488920978279731517216140379001988698691080917702251466664768601473486068463685103457239109055392579098570156553110627537657528492935487473225388426162613764239098663909126226535896756636977468778602189727225032213242518170626348942488786463121898285614995577248198456441046285308732489959913561581772615791144859279462855925822007279473277351179268529808349846209231574765963678506141359020950584502904213756917213425141210719482678754105359788387217014800630232346293697229528610357625638957980665835287132978552495199846195339654996202492346984168987759216924205489945133412572764857024219543255160281246832126887321871680435239036330856851499688215862800383778089946895464174472040144306927096750418359496449220487770638210546853523465398467214815404324802619112134591042639236682303570143719191814217445947173199084565403323803420119103902608826736862913630996438964048098957477825575341013920615717577011934355818171213496646474956854003397321597566855357686945077791839849005680026387201938284070304420147615016640765488897203967107755498673479800076154177055086546697525176249144527094610753359065539457876849848905576395723163577637637442226092171372477010034493987985601453244943509641418874234020563740376915563087480341761250298824389418348296998184182061094081113462544877016402718750853010006923147912703211902316464718457842716096613008196708062139111677638218460764639077502330176638079427164912082225171198588834319588541492725868110209903366094576706806068875782998264857466072404150951181971098523589758870027069967384407364143029504719271100689356868297763567958392700200875281039920936550006505196744897065771135836031111010683491323789979437894944260756690610531237855802268824668199526525581486268885436161615805963654167359785861842363885483577536211303498836874421503920845345065006896056173727970297026746052061628508141511644332384739680395992411315266673574671074007653440306772086525336660384358632455700368795938060485212298978150678441187605944814177806809292441307966545546349189150308228891558671976501881209983308969267226809765669815603179160540110608921587064253491661265980869319805114867119494939740261329810391214047113368729833002384082849094363844492430272879339994423152092985551651803186076046626773797311227166549542020107852089265252820690208598484676820994005090644268858129958319915047987050389937553100527067463061616010764661513338175670761741677363164707626156328954286875376766640538991597758514843262730805785097641894231547683545867783806407424192767079991153778687144949979800129587202778654856541215419436977005169616337857496305858916032291986312001208855249778934761924396124468719880916753422163497140126863656699562589572022051309189798244536849177556738701562658643236245351387167853581632372966168454495560403835820021749177954880907733810714405023218604211300642620970057132100303046147856033846394398479134675683895423374754569198185914438812596007263731728974434206143972098086862060833712148767529764102753562732626631769684351796735561476423638773248988078208166550878226467182402726972947533826675449598642213025530572588886503868974129078633706071831698387067668821698253228763411388068846759861475170943365216250948497319853645223029091729883486802699723561747914284549601104944952885585255588654016553312252274182543129225825648860561759919333642212578697016762963141572682811796072346521571695184344431576388280892742719005138292196896444903299215592962736854808238559010546184513004960966814051741790728679342628720251484295123405343678828037500373388886084107500939798940666539191959565911616018191786169088225020781360198517753335555419207650400008254682416092142601319745732283036191918758697925844015301154237897704823745125618897205987408955886688954304362401224591206752191104048061590824015568221699059091373219078570267712486090834775916041635994362854548575639062435436947227181657620312576569518292915834142687791727026953770077363521577913057255635899617444745574311055222708277092698023642270969284864742021660061373374379777996474737134566689384476878880760956942453665691770285370918636953553496312092260799126925567221942519306689399580707220714425354927184067197494924319432888994480606941907347146101414535312189501266292738846530297749353199289060020827409981169832659101041329692415987726776756074586843664035814803771270274724812945431092574656073739202267349716342729666568099158783478986571406074747497953094223659819934364608670748625281519077321120963871219165618767480360521456018401233872819801952050505927796112171177571580284709422306739974210663138749233130439533096925675144766945369956339530507606690992292840240359429988577933140261755822935484047279647007448193347717555216006333600277174771293415015641047884900738097932316085478760542239519733168612088661838864118995961395470948835707515818574537266398652161680406356148965492165091633274550665504224022523615575536255029477553330007416952094949212091613417353201566742517713876929443375544291724960365065682804640112196348244272153115835809386684582280830624843986971537517402617556961787177328898201520451550575248519745824847579607589276411998540757317513322535071453711204556686208584226870140861652965872908637058311113137292848770908971488533402873359335263917813396436901444163508954106929796838583602039107938396565520224031190970976398554123317855944240812696177448359707898165882314872840633246955537882086571285935733010755408046867834496866226198711691747511711139740766283893651725327365698739235023907361976561742672580731949104095102567584360755125615542356092470242517149938701181353994470654273203028107042264308160795998348105145339685808113356035130841499573332258604566231684341511799296600314910708951610604012762706539582338985930843258025909230235264909693139544319358505425846984660192026491029726279977843050426724067337842314246135781055108178178995710255955330774636217209284148966054045100161869484447966050198528311030642460280988851398476032189233077528562874038853386161604012144047074248662959926589018439663141616477255939248012632718990190947782675944239308796837407406122399841834840854200673084446953590908739023435691037076756341231814268651730831156988911666565510657939782108215037610461865183868880323548103967816979676068588097801328659205071228936563223594061616279741736220871069183227206255043232989004333336517153347293620054541610523527243042012026214767324407464921704425580711419536144013315686145777625031279671086281822426319760947616568930221662455441461609266061053523739151905418058815249267473881667682378233141679809982253560330936895814660970420124721766322253400586149252590641560838696107619976298317985530167938036974581537760271026311796346136050399198381123276493534009549279016419529474321863779582858145495987940125281782294234084880096233965057237075916425352899823967889105992401510795338638180985993097484539020460115952016014204803485196016613910197963298418197606185696537225902583949871782747308387263209060505847523627659878311895328660223394649021125004564374827314106775607485618177332333780456149435369051932084412338918019128697648364131857868427256022465676287633127516093558238686336862393355853742174879133462202572760554333167251217918531544356806586206445292994222129274853887226855447658492169514560588871042634001919620056831475761605321717281053229293164352516090834172385892066483722994357242885658153312978791095223183546426039356223308297486936041242412872930666338681527581879706618532104884514270190235538712328364794322873221956088807860670264588541963372006965056799794158323329152801170506428465724414148502138688930085733041696468159768812069756732365985769967485014523984238056333457315919734558144465695460286202563781275378162501152253372325557600234696134596885057733240876365333904397537012787874712998533823275443938986444067622304903809177732187996153278030324241256978893098728479735200804949153089169191218414596962907367985395401939726362548869707026537138403857182519120229972570032403363695143151865259144141732447569883631510783176696833432371578110264736322894863306767932997123935053997788071458640377088334383110220186532294096643131851662264680408941147439420098203226855819193671988408429078463711153839875880128333999243513111028889298873939548291422339196289268743660470394942765487439504826263555677722493478185888379733235836120743085379806650942163985373976633968064408808928214830746193635414451269826062912075545858675530666320124306376288936616224548030431058559526922315321807524402118259865874413459082209558872219476620761333572201143600424433281285736848515317400538911609350005449848045672917658810975989602271927922004638816513835663724023057304579450022368109923658804000535763782494568273479079324768729501778038185508546623929704214860626631525000490143684910343390658023130013913444233824628943931172021926339768384283525202169758101453732148012926603632633419149017824268903158617544288807418373513050793407868870701702780829226447594079019609416925462290534609577287980850609436312951600505373337217764083540095679896112909626210473818664351112947560420143548250626500716401704443827798869799512888767272841595637466683969972011107915763398547919321044452644934232184555791590780439467943184438855905123267488291451992872363333000536153009405053318894557437763411942682960782584323288677549909927835567912792592487645177513073976232367439778110915553169875508384509376843712622328801006327913046718113930172081946380165898967931097918265719493482402089744671480593882764768596879121854915607317208725708711103523186957016941827193324014443048578800550366275940362334152840285666441131426386356533403998744425050427352735696885431551294862457956818016758495265267623855612180700147551321404750323458419213952425346784947767222969406330475750236290289184025652901507763645430547276428907915569214137914646327565715786571671961280969182421490411035268867272787961060586888242647324647009182921334770916253419228519540128754827621874635474154959112517630385838834654497865156566945515568874564371895208949535019996504981733360458459248924690213289352345256655332294558684773660409364458249959776664195144861718309448347261288333856542782192377807322157863693123395266988048703319245917158769055846750198475252505743128117021409632771286953263749817097998246143107641550695388058058300685581474763836125499822187636918935128702434571770256721966734467054984388434570052987170604223060519737628209810124197843221494053466938167652592676867662719692997168008406359475762347744535397955852752107820225334963405078621197371491455699004872147365823555669095216837321604209355090293129519825480106563976096188071624893689522396750640991677319650071996268652347603325301013475908916069135235151916798872636701855794038908450141561136987437203134952360095075161123406265002676315674329872212016375082543575084497995733639129555126041226779891211726040770634689932748795808161473021763953774462929831114903162912408142445207938512975404033943846804880645321311607895452948447919250086466321291948203710029044405051394673372631488219331105586568678673529876806296930487458681021387397465671429542211083898847749809497317838160538138872444347074506838352333161036042187245326743623283404103189507744739902261401782953748926335280174997420898096947588994895968292641976539852200911691739434297701166290184835199320219402821419141401575537925011185941566493584482910293218221770250839160516313061224363383588200129718331466411422755092097200393004999849754696634597189572434757447490745860048256912837149897144155729636674614793954036373564191922273623626103428423513807182536732254218014048106087732273698139685230191700849263661522461794134126491831390393865909844722352423929092039645933280633175199967872323868467710726742680986300524681134921510042997976019038081056055190363871419118784697128238583568030321579190896216280740095412655748866692391584910495126738596629897202032347499789487819297942127059874412585525847995651762124344583303979237873713629382115117357034654292652837363246869314702688288115138216310887879980424859604522950977240381110644883344114970093937762897002189093958378759001525868643966343299377480983538566380301513084893326073846047891880703950183052147623332038431217283890610670290547319983336377895628191864477568731426172854430436195744078272392579039226840711987977383181850061445490244281213444977272410802668960852116052193325835973294714785500802743748094289461953611800893248094250628404672815440149177504679424434341058312195275681531496333828579759527182767922990689477390419266145876721644799846985046845501928020375193334815526366495504216735177473404687464441294159548594695134483952967490271802765074700814931680734102012299630475807013447001312959046584058279591420901819309172797698267769532738142821424899714411604758380076999958684483709917692762066863516802300055016997490712362478470055184215331024771944248876275660411978855870749948028423620020845694095739232366591466296643240181814347084655034701104146938637604975249351531932337057922185265811711995850145789762992462891602417815988343467847719236063191720591706080479974751355094534248756511951836009619633841373480224171443547019155063485203451775562189862564870290841312813848677041362536095534590808238157461571295098906695085173728002678351323454591620712053238381588900191292968613087969118012345696736553031106850370981765388910439252739389054186048557056578572384074962650957275724966375116043930351061665245666153036883445901600795272172766335463715030497549826832442247924804729263537111256644350002138949521401760545889730990828132477413194216634486868310700442107813779252914779494160590288984762219977880427135684264434359803808316319422449814894521054601940964264230209497808693672129211646235523906206030310586500038438568806398731109929726406821840438530887631800359062828804639755054979033738086735445824954773573349379177458609548567416791141478233101068973673926187068213442241443008193828594280074909760017064277652673010589333993048187118317898544023761132438282488737751261672622810290784644208378871452826116241506313478067217097326588814632603461339764942956831241693173826741225234865857341444295131210712541336067257166726115784455128788606394435675430522571878376958198664705120731904982636885231874305872397767636099171016430431982687887442765427831023388420395689957022870169906448329388832568123492625023232362024968412448043090078042905524331923078277077258524365451575940068884187456363581155736196914139668633263153627581226433011757255239747516442919218499379261753025225408768712736290412560366689710399612728721457414675863352028291745265690570578533454779533657503108847451847040980023406025794808232528546490552255165280692404205787434563935399104582882492847663228791126858964216979854080148635256976712192026269135695200466201615710616906173459923330585092746373306013788988905812740261069560282962794018427183327453673214125920784558659174390186442293708416667266225627071081098772759368496458676721474123009226250266409900239802733242631748018712552384666881116070391378325295182625627111571945754784299569797466670174578961627220948784376990433910619216381837417775864198470301682737912510717984061238714239545320772445907678919513630504946352281114984964192736514760792779281043349531304688484019833603675496790107967927725820179405553951816599774796954461879463494732544589030489929304818664492303746553445716620800829832800813062201290337963886215354650583514523302778886704207514330375531535910176732825034783309003290451091788689985999960554556647103019232397289806227842405613119897051739612411806164747219462817911915777830152754515334698590770797849194435325449594325789219988285601840275502910825978763371193644577993770612889284276279608292544118691594835044391507763748740702666632395579706040236588512431220983812928067005469473408920103367016593613932993483204083138241113407418371278241681685551475766411741083642726470756372454817536577699746354318100986928668636719964591990900502898006598381178927259382990723916857182173011044124985705142083216093994508466592527421111499177732938829403692597560753181255968655076670957654033527093557503223454768565589596819989241724443049923378274100262546501650601702753067281827617011278823029427004576790936377660036993767663594147209602806301196982636523934356089881110799973693514903738584204635151262401689442882581794277391760456900733044999468404232464392293104529365679415904422681478850161415743681635421166457115053541253480109810044206052888581886383788242860144059273563770737116565644092256706808496550347556986614501308530389500992459584123732912866089081052611024619987143828190294184267022078578221330959613932433851324231571851999412059403286455896803603044068707746331186114451036238780610438039769809020203773828293702476016183176654670912404226587326331098562630314694729935929802201650770593082288155696863989510725356941681670134662288938333402672729837826807466047893851018795406495642540321632310423071166558370265842871111723888741800202772672786702461840746640726332614294965945271334034432431581742018372070653462041590825439146419951308925120878652098242374725748185150619293413825875392322997243357368135552896390820719710499752410389278103856728502209228210913183185250627208523292374719761294823040055638296978280666712138838056026812790844107022422445984113186774785263804619117647187967448381040864381683049014684733789909200430348609417592025828717765144459643129915932344956448243909542047979673438418678261278405559598569908445277560351596479298271463248533512294451061090705359035899288698374419276941142642654763485053685831650453402270189461700070319055122691245514592061876197165121913462697247423955518446587736815763337530952678915793064492477769366427852807520735280013364327062905407821940296437615700675364250561832477602302582879333317283316839187366468189436859553185861138540371830491778957075260213712638061105939348568471276283184879102968533019609681600453652115106323163154487388234932763213274334724581246406748293640274104996258743115217601864924029376167684679666197924531803340823594932951339470219164142748281705461267114702958703777894226451119211011407396603784854362277436041926076345134194982361737948256750052347906982355521565894287956244482357857534909934837351599122525083485950794214346945761169789429925023736913376655879756568487385811375876675302022139262499089535302221120515409005666418359250370297594487973283910187515073886667859862546353075633897241978820269142866728471987371526381520741545873450976491128681028762830685263858616869459880141568361391814805793916845787111836767319125066784969081710575996570159473879253042704617449886933029327017690702567079719274202040526466871288413659700105717084195844340175301163179581843344397621088851384763397739257732344204971775608093424193563153446674286307380335014903429311300365663160268946026909583560464445921242095145350055824615419453786463008135715384718704110851555214781485573137892622288696282093009944002689527253472987715926093931513430756831604234154225311579353180880002619041596387727592155929636152164220124798288816474547617857948842490025996952162803545378777774335076710484783456334561794017680075632314787405055429736032512727713852818118895805696109728700621778623884358583117974948218604220899339408556237447870080326735990895281709963323546832846673032599051280778757320153124887403913142339737530750597663733119196949166999997235923813982083805292832960565166919618265669605396388254907054245697359556369447286817332772434799044236831823597605561522148127585932243924577735334669453935729366712551872492484058612718460202416493895493820672908502394556783632327510320729361557481639690298238216636981370365711400318797955744294502775272275939713716112409635788857282031542930255430823396469215849433328429754038794678187869724317425363943329038757815165632268522894488430703548035629798987465673030599201021388731733476864283968842004140925384870375658182304797958482402817184659277590265295901556039271334713265120949739453696624170016476727235902530936090168341783728045554451959105956227817351267890013431227073728573164103444946454682783284977304565290905493926624354234227787206609675812451676959839423952464677581328438470486272768509001106741069019456873333105544062957922488548465245276506063971175111518673526248125809028190093459131662287661856242810362375574440201938102545751250588940693343362311559952358879205826506481823028197009364277251229601915675979549019436387550269166514303769044219645225848726073349161421928840851074700949768463186613791525916908602922470196084354451098212103511166501643662262742686430657144524320621506923954926443572600238114104987185665861724692133838018131301792477236783260428290126479142142853776332067889363312708017834978697537921319778768579081562621428326199945119724843414526582837576413886333772829303365852524388540786312832075892388192348873950413241326131543072099232460397577849750485328688706949355127765918178932492684731659175498172540319091231122627621654893445925588250737621446700314473432808387457108943828323932993950638991148259900108076169232409527310453797383744853043082335394505833252908270185290750161372004605005838059245538947032112239115581371931738858037165821178074284685736475212865507909054489970301899001369542974895269682153322281454367074132619493298508817499893497520948704479684701624861002466157517130607506970613185473616463922503151853929148071080104486350602898483250135037862279675883739535372066127534646798538347516421274604540510552113547005088058744403388025091931162256674417176501367625905790234189890033553864629571192272797018966091988639776983893129817927800258883080601746537987797999980530816126680514067315172551812993347689462415979335328981915801154931016604561300685108136350617778685327614153732957619223513103998483072282864445392166083315510549070484257549458308722152224730351638288582133881033258581952876379324240555925031649764586408673273830233771894070671278386320184265343158053620459603698025917876658130879302862153148745024675545272430947249756600264521638145222016265730742196693107283930055591395167004838876935664617354642790097148586550492390839798141135246805223151576795289160369640145631492719336221649185639438183912702053508521209212338117195406418409809998060746469997464317194896678152983123016069639631735565472361439600911871023658462100296295842704773200311431025212261257058284355735720053736294419970495686756394125144876878582223361529322506685087146139503264118097929126797742125109812782248589785626167731655798907515228748886365125173162190346692944232389570672276026089680321993904871082415872718835227437249768840525738374624057794644118548705548579976364591390417542658467789256972589120954460617426134885021361519954495913318455122170746209920937853834348330829000490063719613667208725389695499656313363956272049679866734478334236195381247540553924908591644285277039647548490482001191703928657035596025957108979659312395441014619102445220817489998702212754725696978397578118941472499503308627837443588730062330389817111543351614592832065905928132203727401272286784079670336740206102342626236830262582812131358883443741721917801784450227148686138315577651743966236550707264924637464896427956070617904745625481254403916852056556598612218105033062542138188220005116833915804300453134929956442556857942765536771291585847854661172507890934880508950154566221328904602857947812373096827003746188746352052616855059878810740468147793619200666358236146299417831720188080237930384986291333084249342704249818733054152638550476220493305169221850546224698657967335228410578820971184672377643576889097622471941345524080046057422627533806351557698213748151953731335732688578079811738027276218792891449934393309062194224376721488067466366057317419641449421119398726254826888283958416038024089487095290513383304836316382988045558127313227068433156947797285464324285265027931803144996318160799644147239150621571115865401830087088652217325525613832583440834904492803397177060459957829460600338605441147954162069726727745264840747070696936540526481508957426879331459348019616027828482246639338865877189231058879775473655322684798556365018648229789877067656394244962398179860042347209618590854230359834679960096365691265428851182065823544392130787142099418043079020862293699460355117648394045295573228732997628457599515922737831039236596189618416261961775351873766441867508301715372680466447681479489615844535710731216578665839401271904674451979656127557895226816530723117130063574433833420153680210135419165272220666702239598307017059818498080405584048379424564132281489781164122048920805473143420258664217166835423759584733457664309772928857878325847806004604148241000918375398491962280707918212802686746029376351117569470271869572721280463832021657823836289550660292025972507090185622999875228928845795528832336609027096339682650589092776334608273325335864510570053520322291473952042967019820836940495705047957207011711933292746913362973329093985051975014884639155984727292751327669714910878744392275805494900318963683657887839562652105988843634648368878832514609331316209425670411183206456755537398618658590062592599481699705012406647578602612120849250861457273078047884888349920183891919734855784025390877619603670739232312719801404055679410558301345387367061818679152101544721423057730887683386123728031431668895920069332842286145270989953363083473128317288770415078762596560173501946954956977431769920724832943896232545873423699812863726553860793148552913860861806434570273465767945258506028594169537179016306070052570942508239555813166066528590369476034990889739482139441633109749248364842207705411527018589498103044853860119489105770679899521917296984165785159101508910360919266170686621517009826590750834116755848631765554955345949030881132843923804875828541037933434027479370085802895951045877945366209422046265747430437859110490229941877408526666725357598670423231551055250730137889873501334126952269536697670416924720559151291895139532327621197651264755210310783039418090515122678129776185797696320814473764954225964025451491899974261600554994137123638062215439429702759333602593147248932489445023360265394629166499321610303209644121430266292350600672829076449709636237031279284089924541471101669846301670894048506482453682251521651759084958215277978970144267427692529086337053056893363438654538503493251454007575954752885641190811778301261627426386764224291594502516502426322089429158130052642997278164585611879589991516667600823632061724665159360681872132440632216055811123736806157153066017658779790699327528052173117600924811983838137991674082753136479682048015387786495885833981438203995439055483835625335194045068154828364204689485238130624790640272683251627987590538146538486095329106177944900784098216490296835457078898712545158382328342734202018353787864102381185790441062564901349553648589344876624139157369009914916716036221300446007977964052014910270655615178818230088081592528868912707225580403406437262649241226204290494238557066978238844386822522913962035901924719894282822636945466213397606078995999265910204807529863707262740005294608600062155643971155358884082272677455251011424718719223210228485992206335389620656857595591746778214945113223431999883303294559173079204216377753983707096654954138257968764712455329436878271276997787170891119298226197481767635230570749907259526269792144037131387361959974046146667328205550468255650378619421265681429679318707004281854294620086349104565562059156377994870911699121214775988258131165438174867891877066920705306893981791560066218110725909153397015784151120321812544492219795845508516153493215191121083885282060179956827422661204088099831572611309403410615377475767523924779469481736222723772478035645807478561314141978351299541778293027366145190749848194479315518157628161941211205089349536057685948614083124829511387897601329286865424807556156888875865822605693287677422750400860121148861997995175827674459126839787107793709730980682813269461648249771422930821882629623133259008193019374308075871491523504170807605988095871109236746299353433654555226294328172898400635631580570464643702965271207658870862214810314391388138713421872470303694680055561619699011149856177476329077599028750365894520855509784838193749231472143730556772884838367408527491974418349373938159083637434956298528146847922944636725355192663770382865623290065794709101484902499723629745536960518759933285393711700043730999953982771171978950527239481584673193881460098004632509148193150925035985815376820768407329091527359647854883012901402402925272114699209086019632455143504717287996216368992571780111907447853749241661797142935131369843955411049331148701637594182201592728602846939920482504244540966556905985232517900158243091182517838919180502076768206229435329370532554056067733335666053992376035725451326633359520705204403059264113495298437215631461632065707479685069990945175835949379123565240813752585740050605036036558141239957376695577470807975356379747531914565485234287764128757676759567379927811170168300365822303225514327296215177060015969797324544458600849048084126971917895646734422531526926956255045117997295262847259102471615773450990752849057108916487236177612346831534918325485047994391500660111398625456428995306418545902440597738221092352481107264924674863868001311510813422833632172152285603403844031847465980987956799998124948416020220472346530588025055879528087691284892775892997721156235690095947377211015417541436443331854328359736590555145953635878109630295046616876461229679320171996338580090720899721621310369024454916873706040475330000173234805295227409895156265101141992161561664404471560467961006652270598061066633730546389698269000430590639395201794296040648679573970081152029902611616351877564030000614032728892913860254161579183494892984218649051668414874238311888894100755168928225108382399024652165848774490569881860907412063404416915139948927048363039862599534179338663423943015614880570396924060082907201399498109537972460584343558200411397500999054858080305161425626879441869007526435320818805822286682271477809649312322345154815143371063885399288199688684440775188400401687167238317716949847498288840892056855540013326525380777673772458640716625738429182775528226206302290538803864406956455598908477450306866182702353355563492941934620892334760388208614843595030113199602614400763401340696227481616681237548624977903685741176425836109248837656429465334731255484918378806597053125177317952718692313815847248560614810015317563138248351388958934587297899407677207795674968716140532806547086957156956302733880139652440298993947949525536592708400522417617652584143503841803943608102468542242404550936791337665630154329999637014207507813179590021626142348254530451161164979923188128427125347574896636875792644971873560780992978930302728786233308528159951758698679396031726779202662430957758649704923882422831965719374810935857947549204112807315630726835857507522164277588589479946888897377429707926962746824214472587367795995670726930352232259103012476033085698718912753850824636206507130343281140797700926532168180000299967044943377991440971988397834894540556102198572475794940804122949759277781643448839296675836136622970359089934599097041229876928696343071783466138778190422531875451894809361492784989652167623823963087049143537759927463226122277375922914044293653651419919595475666355551626492408987802181725130250497138537768647849791736080619937505509390330216770180254430758738288137809390868874658173939944295561969430783633019451019284331768481039784601288109889260135128642468557144423704211091439177726353705849136002973480210456243919631341095001817032985347415475279215415707021569164284001814978123484309120309910160864527191754446929917681665857055959061881768777989572526958494016396578175898120924009396904504530090596379543300905584112343116891627487071325028208448626388458603648236665676757913004812628094079338952010781113014128947456117548145120108235121193075925895969870196920703019930090090325481022453989132976448707683429819641615744220019133749450606925598407300144598753066015464715747728979069108918648013012744579013810315020448130090921114080716518292896758170156664644906184708466322741428877884775578946325275619356253193505366809533305891244880653877915960808997088955638608304538171365732660805965851766714828975393068240575740433274495487319731330286366270957708411557631302020145449947827624614061437930208023173664783215463880883338085448430932926778069905474136555203156317622848279471528790321264736292359475854845987727116194899536700220730481072348449274773793269464878775866505937274765023587940006926429740120717527974096439860045502503581975502118453242602419640765170239129045913405458249105950785156430585676443271006719637935622182540852872423333088322799406989125163397171750675060430091016924518255708611939605133725302381140721780930897246596854963099832309228077689682069362110515888821068382992251933712637064553597927759908469275209243711922980888904172390274938754078214212088136466454578374595626462145254360008433972779813432615424839255744049838788179206507197208439184256451084437044075604932769283236368300504795946876603143327476090541790202651959925493583569320693196994624549938349589836332195538768816318765794750452394955742817393888753501982672126039079930435727345488077172548735180895611142806590052529127933280798734402607058659289009877589188722288521760237656471882015405064208952073733142688571840723812548830767286947748785483396119079939100633069605022490152913296692936120047265900397437391410730539952689503937313220475658362287854802289970601860820429634406232905868241669700755142478608408589033489963558684532986973342326820017396945387933236563850739557092725060888969092061270654343456226805042193653005895279991510084465361429870509543135813866828052044647099841714344304335170914972785549826474460666445117346935249639114212855584128042781782872945407936774838952658657637403095097257517103756420222441223195502226754634691497297681871605829858154433986884845871592390312288075979154662078392234646643840245310826091116781838702496509145128847763292547375933205479246615898946465013647385558033657949087153816428914132056517537287377112456687626212746628868318373063967563004562385291932327897621039566104725601606473220872612234402430252830276632189061968933416202534637772988558925371345603398373606601770963310237671232125249654350843025799323841613207882597774847555289641131369315454106366581024067046877972352422118501007761257947444465625440589530035220830048108391388253328408105336124632259474884968341858524680740651189240886880548118389366103092104940350774296355714135058819593955509118961569887530775616152342188121371633707287198970723424139028266180859627483099075218181465709946793777550498773962135699547148110149858054487263877932144745993848568764795645982521445084952161508682205446613549838168037788986757376509218603882250940624250442561959693389150200726590924612271252783678881924455908939928048265988770264215387044710575452029826543541200174940193193557579184944974241630287425895094002385593463268341018467493926524808053185592880157893468498322175503988780768742674768971138381901737020539240492275066538838065441339775057994673704741283855323888395222381298086066054909960172161521414619697610850604634476805959820138812209370158302004783536400636912838368343978417029809062967439593247306242480895685838261532928425405711408382982623743881761095509174770848703634203294046099215136357361458196781381989988161309646310487510347043575290087392349057851464460112546259859711492354048001934948407407886283808947241941225804079435984281056017856184954827572921802377076662673862146081113213815809666163397598647342875941038096530543208801584069625397931782012566501022617927065164849360600352792984190312678042099128161858858483950856399373503332676437658861062010850798199983634976082439383172794674593914668090530983842119127433090420157955214568981310290476544783343572929572784535811549225699033513384647116324119676842683620480283007460780000824080755470769735333445346178325735493240506831110528276967884850119148413144091277267820326814505727832183438106144989253458615303469446046748055101568491408343123544589162384029574244370853616276356949114358528298627779949456993235234383524188735669012410886391988884298697085273262285291964666810830909816311674510218478141143463152086021887158107572803708158955591420134305666241738449722042132727081987892660206129121492063339424539643631183386734639932945659185912883366355874991144225384906235637770031104316756432508829251650399356185513251720603548199704387882442791116220399726116898422059561560080182548950634063438779818699540933407091395794924409049700245792919627794335203706897900727863150469965746014140723432620375831677073589282208995250742942875762227708042187273631693340565395600944439155835893598484448974444209192524177379001660094797134823403273824819870757091756344481611394113656193609008440822178407805690320764390890541307020995374485205569544606381323497614088216054630306656463301211596510792619027899874222404042560029160001753008114103768411978924556023631361145469429177150321417567279295603396186441421575469723371695718887731906781293386954581821983609561983441153693953901692322844704667608133525335550946132337928651850466480253868131936750290112681839741972707663540358266705769998304734624921327004824236748587784041492569208862280055020839181076900446871616944559381378521825800008721827408044062821109643743988853897482698318600818961982498198263573790360241442022948660285330842761286030045639047602889062248155153597866084062369173644340375681735650900522012126757245914644068353662056274078091154768415045178495178689439186150776822925359092278080903887764051934541939185823316732192210484285640370893370391826830944528700292653477339917193791993085138177858761400311775542987113349295005370001044043676775954086316798818105244256069972086324910272459789228882423259674345433548458553117975190336370347476745745372757739840222340917441943925140841205481661155886838780341845008175274053797735042784679098761474792862820848807954892847508637274952773449709878701204133187099124770958238447327284189626874179625298342823855263833659452358413940207871594737432283962827922768546634673703390739897048956882330149197101927416994901401952568962457575369440089904341467254077846708675441062736528762439157172801192900723816914481866014125767453666472993338711029192790573267687285474393273201364095487646570653216750599455360381146857681884314354381200051277021377346095996795672955249204616620234392653175585334639284187835312265565227914122368739560924732542367397063869780295701652340604094056573854120331689716735543601043533106745871885099496630054651395360706896311826377493404418140035285290912286789390106500651079468437665926566856575659628569154961348730761945388680223778782792805781825928156485132301248953568434881745522131729864094937761891157929484082988409265934634935645593368993427883811822115497223372581507031211605406576805805138230627006807988308906155661569377675259040026130569831316105338886541513639395435398515994262740522790283436833748874089376009306568922771994622116394348904697782227625421928427534192458664568461562486218910228547958372928725610941330090832225491977598599072610748486258623518479551509813431457168720105637923850039020712728891796276040958624298537359446631093655254004385262743519188429831099005111175722803688033336082004451643370271067605185763044000978644711435088182468652225566992106288427548890649202861087966921162864264160353148775857327217197329619951674907864464992675440444312805024824331412342316936354536252888822078626887229291390435047074925744038628381454888129741772784669469419857364554545807461464882136205361657282572880824840181704828278807125801823693624362124579950742986700154099180215464727756924668534390049841991002810565345716610575291499931796768152038235864581004766334361894401668641982078086839243128416312285981856719580572707956524469257881980281939392413593079387673263076020856479667964741823505876787606861122159151050405567672699348951701476282950745405381200204625186449497720841137757867689770096844270537354216903294408229278980462088436339600885621603291821527999315489101991222176561611210234932636722061296797246241818992867980936152632761063708897687228149000663143881119115676543755480572962407169955536085806265471334396551515009347671713114382878450841791082515232330524753801549064660851672595317914421748504737895545486654459592207639677176140625090256867368647711349695639817030750768498771969666201927364270009671390429441950027779208363383007290430272501439871091681907059200588096519651532862880991902134498096714571854354359363451865479215242281447272950625514593342651406270364059783030230394152279059227278799732269829341412738288541748172682763427526404061663214025776193100436854001886987086084536661380377977227424951112572637438887159497086204330290219434096631005093078074930801508473657345410890471360219357758452443810128094742558327290179443288028681931337928552945262909601417455256898784845714689142477300486214256711843995037648144183713741930969107663478923148761501761969026554959322760851647652309097003574482217007126894472564123835446065668034094817556673278823289792325121059482958152209073265476300139321761916104068446116441003172141860034526708709863200868906441103112155024223279900153241053457141766906634191891825984401504816852827702281146751398336713035794833330739542892813536641592606823831852416053371854415098975772405237219158168635746221611375446359455227256064638730348757404521151098397187315559537853822195918396810189824589271875636849816067594131590523367930088727264711236913767147506983652242848333188947686831672162569234970198326642683765712921060439465871372435091594275860157952762608561435366416836208218002704091769873169120641542122145846234765638011903549815906281409881896176648742064973492079260955643815232507883656451879076246449779967559057451435609855312960540509366738202931584756468519274940923095367825945810956009013394017104787344415343205819391923863429189879439238420421748487340611924554081153080751634808865129727974716764901379021828983277023793375534909402527869172854538516654669217444162423274239540461884858410830301308104693010581737418232830916753464409298308802806120096340281672138666964965136917344307020858577354968894817969704321300422490692050056802099853040897268581668779234021980066497285814531418756821333463399447919656580212272627156621868658076229320350605692455666273718970931911899319265470938120721870281635597677548036982507174202311540503100464186335505951924896004343682339254670999559188793301207543144699502766471671329958044131601495156148899907747440810437156896592421025951001051000600563973434016368344605303290323586534094547693970687158015819212061745281723149750091785636696872431455281750227481488010493062768215577236949939472165060953588413968216006329956369879614616672120525396740694043756789877130557709806047995904053310258163199869245113090159816680262615654845078200243213604399394555054522579355720892122449637963934716821706621270767348828938424934896108481248284569918587844513717709834042127070155868063906396209610229080105491366130309536981497913552674055395550339592434386279103582272182732751232875281082985939720562878422811274754414651526087921943859266902078545690315119264244252983228133746672654196847527673274952168039046735942633789328205137648965841266787995044328875975683826038740757778022009895841840207048367925591833073686479806077979039440057112399826036885116571777072171845712272894846125066943497343777812100711833695247833967842646512924208149325849013397317837186136864006389024891374021322592175061442272218805677957745236461729586633424755066956002356526459582275811965060334313372073471109840914191505918893088866440721850280392931433664758346115059664473750179254667284933793094418769948317630940119438106393979492215664732398907267201441901087116622853399456939021938698527692428144211026329190432870747281138622948332364110663823732758737728916862720919553333881243217188277616651713609049451475427673468621598967745114027998229754761669287282542434725389947988079546422438447475282033971626877900021739690003793240065667951419216077803747340124701954894457597629883973453328661773397957413687634220829644260247480882246370024225776555326529875840464792550842535973811652466055955408765478816607981030468408020505389969047944798217788365630113313462457636683030640164959210306307784256795762126263485200200662459438356495950257179238080080524787350197029152990265956488342624042467553731501114133052466129689516493933421706697470439813281222142424946036097643332933602494900339161367263078816055329857572328420003342260147385740916020272406412031150670495062288633413884940358618967635989055492019245516714708409193376399208821239170075578597104803926451160097559639680942031446600398382458425322188721166442518299701741312623911598600727804086603870615072710755176411255589064554057166438313093644170934002582403738112025728770996348571138510282320574332887395427467047523505471440108514137166656107253451175466057211627171633952260848094369347741177645898618689728316686520884719577581614289835861067050936646042495934554967113201395867366655373719153668900941517155907259540995286342793294919927217233926746666358362251725831522524994895479951360878797029469940429144359071334981347802206175094322829849456747420728181143743151238712994466879845230060578775636506833779456935115577674585629952953989771322183812183484073426530638054982064442016587210845926122611995692629178304526999518471613960522603302863178529001276958776371297798157851697847825114423411995842541182779933215469880122383094973746251980285513650135301116404292415603863921492703103320226223243261036429910268180286889696235098929761511572940279850053895575985250007460094142165443705138500549822382509934968228565832565218508465087178427172125370383385508671784396612902595115813768812463364462615466562702253172910884520663020834323089812434618033470245331792632578454948325695236632625308857504200814114324765048679848446428023109556932346129677201034314190097275706966348177859226899952073793551883349297307320474257340726877552124680939460284296687123512433364882224491979774957007617973167303720230000097150822849734059782745851097072904833175336536449509892935388237601110278778138971960057293004768582014108993211061044670840721863408897861568615850047015950010700471745620305439754772006520391495199628720483342526558499163482768013860077679308206272389389721850512346345171735362072778964306201881225293402554007985798569742481633240883360834907327407599392128733327654921275485836182341587152576847583309935574631658120297095614266313580760868185017169645855668479285544509009138593604747512963298930139777648870644292054276882335510808185354901743365933474877535538849440524748373918942861044015388178193481089853569945769060833114374360323925558228433675741364059237536083820554920025623399266450567932902372874757050301184012107149354188230733224125910416331936167815775797574023921013358474880202232420677347106569245490534266072454897154801449252275804209636766101122387884138183454469525371475028401082599287220040647774240592505764334761966705486057924286467776697713002469065129522917556472864285824106991001211602699965336774651177367951769807662148505751077440690612742428035973439450354464732220558866286336637854940096899725238541906701951537977782740162401362119096149365378703465381977042188442816602262088583390085310038243051460759296468484972997228040811486463806223232856344652147795346280833257938504822082017564758766223955574539884035553188141615906246680083414810010096565368822373322659629004582203139410161244050272995037182645692017082049174174088266761223174327064438221482065560055150369092012409129993189056842065350079354081117842392011556741175573657204367944003499978484020445391560932280952187009032373219022508302227270171047196837106091736253421239504517895392619751771579557503611199134847071820765151837537680724750663744760102395622988782536044990915265487317370581141106302680935032633348433603665560714078127826222479261858447969644226253911820219323172732436215077683971826133534284727041450138644787905865693038438962198090028755105480748349461000000745109705092315979182714227587467071843257559526668489346880659277007215466716667099879456469464722301528235271150463155064769513951695180933839415282127363086710138306619144956477970392376991293252078624556915838523083434984264820281379884776555067293251828040327501105349592532328569246884498995461434876465737546233579290476167283438287542180801826659363084728232490703360624804326158992251939430083310371877008065964385487669594294173805353804297332499722216545802653072059731980016941615200654614604351869147708417846459281585800268663449982602148436106572539690493139565683392236250497350714386504904963436453288135169162867380561584591898017890078098891048271112217910831661158775888852839403096439611422319621828070152910059420784483383663995065615303833570729011232720069414464888841894801299496481949633443323647439185999181033427992769404944391644840320549809390558770995912186271585859444719895989061862847808378069690715195390691593314778657401706689166687186639892770430026851089976831838162556549518311442880955089472509196496224706316955854013752317353153362080212116954761829581473334828912685273493779095552844174075713012679887739114606818465830282775272012670457511002962323259095083809016533853547402459839236695162143418630510467894039737863044401109391084305964761199304599721389780835990233092214312260660591749709107179081603504414878384755247195869758375822885661605331790846211039971087692288724122892789768141684273160745937910964017597240414152489312345752616970250909843834155583362312443986379874167828621454953474919570159697665175527113098747923054937791801910532058813544481678903324832965081068212789394367226243638940799650085301998332775954491551610196677013652742882270183694450095565493798902742370524010124793589392380316983142393278534664481777110485540718420997768906357122043280250045918366103016841809920408165284073781061506995712866098888803381720234049656038494970631809257470550599165595777029899652876549697271744789521909893666524616774004623026927467993415499698098522154208918972436581764073329514379024318701967866469358910199004252740387076180016161370325352253849279026637631855837664413653488127359930763556043058254207607691477271209318081749180552100689168835218781007679320592156260672229921217721162456610934541833972076082821676514632523432404219713146560676733053358236870456485910022508286221670750227971573744749496685118454161022840970437010836290766674319476259261884866951912335942541042321291632345953684029700512772080428527189679212072063058766840935970695514623094096720945312716147954864014887325957699022064045786312908487205806555244430726483228055172722674117742474634603750443585408454234055665839438565460833682974885605365094897482178769519632287058855151092815235807718231853799558248836565328777394425374608192516966024291808822131780252712158362992941658315329617732181405886816084591174647468348419523175484387313413216903670855527848551991870863568139290835736547516606351965383988625293544488951175294992529698722631829229291568349403336933541110564653302806286217740842950158236161166088742790883303840660807538012107339846385787437637463479228277956666963685112733447281827020433440347130413489989641558623973155558606823501008027547194907323169905593833728484512383644150949681522380920473129678076111371303274339343393421701607361848032842898243311070671346536346233036549619023715338709698061671232968370680531966004805044682807778327366400719615450522168269632094712991238953539307509157065324033041984705102682685236794421483852684429673042853709128962957632102238919062198205808830738918165498022043905648755492049013444237755260221583507750844084521201152145656938364756407770906887041461916593571952448587056227489682861056733124931761772482196947833469062793668828510406471225443206785695350793567735896358160056094350819067827935845765068792106933889194452573963551827769411841073538955894856575938521325542082922932737782518669468102251241552035815670628698721005761383433168953276598702625165010812070254948700246806441563382742002701604014550010425590544623042658722295811311208953103607249262119259507522021429610278512788133417233921755769582487550577327816683697122936229475683306930264150290705098200921306974105058002179358669452789424025445440323334566333643018177763641092814601667651141541902545523383223200672661388926564826975568044931551781551754488322943765676294230796630990282511733461072356732654320618570600808840809912806789852586044262070146235103938060963290576681693285801190360006489357229244157439795918206667222758624928371401336143502210090857907892436904502438124072867387776407856565364800555592794711551368371794203444121439348746636398404250409910068070597356813561051322425092107105418773788035290116356491703027063277021969301764338475547820488000208203055145837628440734786058112293212462696909222071474068171414427646472048047989383723619435414182839697671516300622280333085743503242742399063570474317282809114806578838779303634944667433654473460074039134063033533020453019442008087167628505210311778217686079702513453812338373541298279791510594219596782798046716586939867953277176699961474444712460558880599429665556253531597928338648091099990039975845186610923105194493178644100265529007133362449963114503962155624450436554879776090351725258926336866998562411964190767282284414934945417082520189538152909228369906059589820826939416987173494507335580051561688435211932609558103985898573726317910954456454642382627686770041803782964596447730237272270617364237400312728157819617719135857578042630456845138534487826783864641661500052080926532720457095590218663433408709643473760955072686384765099425480237423622881011916831453386884769941598329460804354010818199449493884597431592748417568497834150012851764589563574254639902959075704614792272111168471918052732271322726699917542809867888868775946169194755944673688438368893006971532830951510725375223986149979385038870095003842005357937411908731257600960612118338896977924790573849098131410471349741795128845907402130785349846603969872702399413123813308081002910614349411865427685738425737022211427182936817989305902577702863206676363657455771144315047350045868147165909924409892386251545433189070974747920664345329930804781972044520032129366925263134143410613270387128267489899700672277697341205586262248851036680959229332087994123257474745545307369994368654654046415917389291191636179063991575775855564741502522556465622113361656025431389042528842538919240586868105324791047734683906586714058320107102535692040329664887168619946344923330741125756121637209730540288883800233901488833824004829832129012482331808053405398687660661006108895119497861306009667393333581312515512785215074948819290144166255773610251717498573332951831425238153392723741606139627433989835155715299193979692402989600210980618739155035730957341976672372881841961726076423528003552507369567267469242837960454530129652993142646259678410316024897332976977322059745996183511244487021295758199614215037624456192425630392138780456440394367687451851200332051510485988681766647634096069765158899763784237989776868469885493291525075118075356022328909795639377802050030044755405498021243924466001020887640124912054143274186804238257805948228802311313982369662899298235835500322338832544994567524382610568363408076093191911743601316158239584578318523657134007791850846245651262034562915094610139456168106542722147865986218988177466018623752473298974735198170840657657937288086105990330970720982180026209178916646342051262301835670912989656827841786879369583995707625153140962023747298928356180715170217392216745637524339833399676863311832720380109722776235165031605223872315144907176396181874290751590838776827709579706821572639051067269883408658832546594396892278506811417456178071031568975803135395443463521193980388949062965110176136978337205058217015124483985624440499502130336394457619515138171638932313275242046328653228070141985041945308607926196443811769368938990289111484371503471780245155574017642672789896682339167173720177868604662190952538110663629243926920010738450094155624251119347320416960810257246660063877466242577041290406714101756621706400431648286549493541117355403819818520966624419402526623898191741157093012792038171306789204882180794133822768373296826819417127336953501619896506643998199947963455928535016793133883518123931723488008600725022094057861613884492181472206947110968880708268560979663852545339968019799844441640851286727589817142283811145610454675475624163287851116387215985592803974367360867348211655789252164665934661130584677646759505534825328618663225528918961014685478327395733771341481218918041103828719353942101959914638289433117202905341454884485642953070123081890287361990871342051793444526011478426970622560541648050409659151699659511553728189874502111575233056468016671319121835134103631481368468596217810867790670005792658384002456109145025620594032399598354584564701210357339466485545280456497466412376854180540743134518074303689900729008306355153650163319976195538644410552899554329131423410616717463925366711392186051133193563935986673308518860140443877629864275143689908051697592788597851704123649686592739016260424058717428518161509969605223163298907813409242209586093329244365021259373073871999146941010300952742052469578806969384710634592195075673104167837455796237879314279970510473512163759192087476306963515125031501904157757818077880375198005054392215423715608397640679828999757318145695541799436398742599854648064379577701753975179591842841904713948486344921587519891566112717244393317179942548440339070508392003868851809162273360500691330393805880338696133709766294186267950975428509586928992516180964182038019241695100708618085011832237312523667163443798794657365713326631870382355399068464936655602554259665265722014844368482462698413363528881206025111217362416378978472765586938116271677609020522439274558955984432248783947540620547528278017298082398093769067042628263850402165143819759186136047898937572262031626873761545624722912310280626676124076985223212362509250745115500231602947767109370667058121409163349006420672146214541520401500176853223341933738542562127592701605499540853011253699263409622364992484650558310584904685500120034335127186971733365931319376606695801153481255890607726212991002540509855931080652724191640981820162872933886390552293742888200719419293884591230425411162705856669515043576344578861393720490965876867258978892478770260037607069511146439250869736137049009537178096451506831954836485827525928911605871043088205763385728067838798375560289405339164341092937780383072889036267366702322723165272079478994150693167426448197160055564365063614966444875665507986832339051096576383220746736531373688571087012772467353513986226161616338407279800131835609200784901847564031962231710686147669452046401096363841193685283081032990376068832823565292930924332068148689228088180449122884709728266514475136218000424218568049775407865300154762744138920526576387788960593500462895118975490053719946929323303500055843714066766330198716181714255742676238797830827397384930650261687514632076572556038362190421535573131204601606340300023521276435855100616549485565627859499939603988545252734060649204235002045162821196780024204790378396155519272927988844599393477350235644542321542107583608076817345099998035481723497580542280660543290698321948850339322068947412112806744352247902374156214758029773953017136093870779985585194981089887240186433658117484075487941653694072867773706078494787461085451856710586681372341216982304565160160782957160957875258870570172881573559635585029357834406077069391328956241302735029838377826592100502301584161276145389741377001560885329486387785347660369570781788139213187789322441827747914017873274613347676340638100347452923976754910837244836782702997659915798288404267332088699175134083841078903412244942262785990478909743631561315887426469512145440654842911686609853186536868409965814243492150343989161920984712846373850348078503328345981555467223317200887712266032631878776756370050990752134213968983050540569555414365996049081982316097906590333816940248052315011216848667969916628659877286931130884812822063100589494513953555498911799637204257201704336912951749633228013670021468898362214318741333906396702554972284216547920188059953069527699256245832198279450109625537686432376397124344449591836122105669512231439115961846736672185100593731457175534772489042989240782668311978253253657696327454977975728939893273133576710334011113970120196727866045524982556504200267142140703314289790729762008679497222981309690477969254427658583359743484915199335738353492703866711132059586627936839877067207466933885756780828261048891329993107458206821043481633256220383449770849698329893317486419583930037384395804346429099811789373238536175827475911150275038549056378954422001755353616379931978147611251870133784163618128857377742468413889953700752141511716003781770173302932776475191418842845285963435668027436040237382010308850549238889570797227128112311856113902001290801702023632590117007433613002724798977160337682863417201361766395282710577068266509113676006834990978616254165979904435090486548033227083176929575377403742441272506172025766184865417103527154757299062611548112072705123191172706455286634618723233464413912862274728026132530940653044201977491502682835180602107241032344170816852142500352426488539667898740469382399004011266789333224894362001415360436588165021723970513489604653586125368294069109204635460441969378584206059164002269418096309303775160803564934492911414603067573014711099083352604488535839072314309583249851911363889270079384599398099461211795479742726232624032411714656535167112344220063297253097954808972612343979488588083995143886038014300568675363112443862096436427606909457217108395119209064788305180566429349396109410913743239235475643695918598657747937632398756904892730274866209449200781916647741797142209549155033218094390749010422099908186911732485663937125177569913581279354155450902378593792698189765478092537781877135312358408040725200553183427384510851807165826893991380514159212128161487164721295424978223215218147578229522008307616009054562512637439612249220975515061378605251418525701109602806270520354038823065691419577596629598491117338471411713583728188995654605881627942051222400557536202559221597956797350682283542135832082717954270108058758380118548059386395041903084433049236964459808303209297552835813910112739029641212816525881406373609354925705134261322806038412555256608264592025088877207237895218329707712324051096689077910266963314281969950310943570176188830900941545332110048359854655800917325530232188399284554884923031227065254953661969375994370244566547335894709342527865500092081039686661556488191137734233925755183955344904717145073020300824262428481526527810473825084233043952775411367761337372855828117836003615330174055634753158481033704807921860058848962970522829166520241352004485963735784760008673493032909566172022341388688884225625105940550833653122746210904960322873448089899055772120952078665235588352068822054384919543633248596852082748026646231049904038683960414505386989212131230414849382467685563375428448868209436083902083362723753433728466140989021731578146738991789473582565761505764693972931099991904241463888965865378249170299127233585993511995077590102987110643015449874504544765498450275646988938267959249581473679095546762016403193337876324780596213370492603271559900511964590507416483004933941088623154045930944179271239892429684331007674885176821247536730041866565250005189189153324863033739764617918130554454307515093374062956065018507495344132075082917478627064978862213132528751588409810536124206133685604238512355946704627245341123109008977628729061293291119377616234870254037170131205236084699224604665167033211226461142800308955004548462899079385191239636223518353096295439266217185282654076200905297664402504641096184468934535297430300892800288392550284818457865416332603915706344867345159095680016372542799022710441248075651735844532438158552046337239538113859821578898208345416312423346838648018413607644145662457300707103523609193504286951040773869589640285668571987993970097867491448442570623308291099122876759596624156289724996965925865326380917140738081501528035731922618981773311316526739022791545765951711176062005830902708756576781146794569394439983551065545571997215758002643273452250283394040810462915486910361879883695316404178972689432713017397935827472922498629237080305670119225639561404790411739950299584161152442329713221592472350050568206999086481586359356392636733817686894673625754985572390711480458545792302834460876743878504707801683414651355654711217206964383007917181899604349084391399913528822892347264212412617643495626855946770983821695186716090621977817693648407299752087620197117311349031517524579717280213258256845484874280695591572871475548318398152420178762742157162012116070848080741284562345151650601606651411549895536245349841011806346049654929197086439708480222370111508383366215225079701043830311471869676059900441946251846510784848452374003644089420762023163912914519636866715115196067701590491671121733423422420807702553997494177665648496570570080431799432133941053870396311753185946341332614806527790067093803724963302779062015847312318422645125345629809044408321850813742758454509764080736838381687087439325178185704365287078418798698094247027862638710914086425941647826840263942783959079810480801446297981297308453517491427636589434059015996840754480205749307185254082220042739079930335020486330755083649106775686577041799459782107013782611748823073392241382744663512673310178991510299868895389209598474929831591310262793529544435606913494877305799077755321821714923425890991281777131294479309631143080324420882050407349727598469145820416786904832130520731184788146671850587383143182186643929929958976769918192138620396212256806542167446250143432216264762165448184581688753270917718424907360956113763441210263456434530934258731324975207827880658577534933364192743212587731397251952248755610993038216573181480063533251119803675814175244530602877577255288566112534781647813079160407385260187165507617690253672755898941480096815098088190088879557131337529150928307977630485415670926410968800511519511843930076415721917132870525286805168537847407529798315764243976715561963033015327588574841211947491222144371675091571859820077920667966310820422214592283244748492548127214062800759685082327239334091310342434342117328739613224706188954188173564767490640633541631442434839259035383946864175606677102465878354527717747563194923348765397951223950223769338896061193262487730774496190313827419663875219390677718817138371443258447085088652687305986446047902848292520764435316273019065752447323214931029687168764625553058274463846749123231699884019372648473239566050717955208544849100767340268813004957105768025943257890621979717731619398663564268948166416388311503951122410645748791135710257543766517647079389792049607434583058355435987846175411354742187720219884479884988168060888451135492885533528750335285365771314774181199307767851149282181397354133869252856248347910591396543703285554177850047358063526498209687441895713972822899094563093624724667149487983948933701300643759809769934788228067451450771728613849202996167979969997333582963364759697356138658603289045746785437311186750924782756063371466818725609091361563473124937826646421744299374121517421917354024493867405390038090229578798573230249875854323606186562333394004886218492019494647443996658351714839060137557159606699674941880419211003231164880485736705555928420286040514109196999375010800075508200069230951665505284181326208050418412475921002710414371344607615577789351649113336757755177056541747656108964185704571789299876748401841073005808541241505439506464225897236352160357235703881196827592549208218357311471846299587581176455683684590399408212594791801236634937705665457960290406175574875385365233719377469226879403355019543899436464642220137235505177537752953033489590981290392591507615431416563408160711408099745341360503693846759605906324903656819020564813380322099395166785839502902065413112481678964510624360231306153312543561889876970795649652057051899452739062154470827597557688260353218003090325240716526550240448654999694920826233304975787248115990387971045650823834970153765281475556550529595518080539939761258257679818186394554211224933904322764863562250390799485531169747423961327887349565572113749862703069701677403831278016560066474858838729921999154446285182270799578082004736173512648397896157602668743557383290168608738454861805234645192030202062154177656092508321112679032369456526856467867514130846371376652180947806641299641916311400818095831341474253350445841979012654950753602923740435510477452110672496584749108934443872091189995420409476768209665469876899539685577446901272577620143217919806898450454968797309687871851627330626435145309686459212025476060514426797882176703384771621346624797498488838997149302866188143011554029931859509650125220593401479846419683778625863186924780659867808376991757583875439263603319510260484124380115529222282776981000601918168232320824932426328649163382375238755750997461923775848508651420935826074559665120739398888364410475281742601782614000444226083795055886087754887803283390104161204644434612701136842580821464635673593344486022628254607441824747287883373112230550884973198215379510030267705956724776991472132216988119929790277800861544134936355437024671849785342882612177341324406510860636431445041981337025940893969163439252347730832220401068745418980318618978913357118302481502986977726628504416645242942763247988530312916008621859022614104426224612727305665424375621795750012473098333035116367554046839249600361850958708827509624033023054562824581904748610548808915620058815443477343059725649303143061327526303127426665854907508068849523335549322350776308926832989719496006234511879192382156898183204400490919342784225824018597684935075413641377796124673052330253306746469310858656252987456610751012761614345178996148088086837394361598589192468587322065638483834005959386381941850924189170385015899394873774187866383789771547048813783577384608155621451569261406128970155057366926866083492431777700598411905732899158245424805665858551360884851106228182138006881157903775556681857449379637528021779312686455356272777895074011701549460065902707198908794941349568561875966995868789297834225289311481964733506201204049416075382770906557504778813981776570210962499268000235602802986394968584963831836031674552366601335812196417948381009271564854382353860443695188886723473127573440386352289076890481709580206919461763438583935787370763822566590470425829494367086480642006573395333164292433316490115972339926557094658817337448012764606730753404771264202206770028658211004846283998893659270876871034125505322756479984105571590743393196942813336178467965034762338988669977981966249727036654020454147528445454956103723226153114596571380801478660893600345824757990652354220293261815133166150045166139691043888213940707376302233865687652740370347969519378517268251760645657342102970600206771582643127135204989761459567984623943059665448143719747935402674299860139624231970397539842024008257262306657092769020797463055247674702779561116986853152192525328305364130949134462967554069606668629637591674138167390586336945589574635896934927766239915876164669027230876335420045188732982838191733792500482618710131213867943508861176413912934539274423372605877478347352862870940277911846290282809104005905329922948081104130388324831619373145201105972802754434285582144386285068526539084860876517527278923086100640993904124579339270791067737213070044729447114403821505274101714820060360175882027144541624977572433424886814429062068152784040472932307570738573517466530698830640842221808184678800307847233745267160884895072701243735496480832841201764875882468148999103700346714395596214272264918058854403760875967597682573280058080465918997688524944527550569385135950462666708759833537737702842629511438023739386604376988468571138262461061763259064483029957467483522303505782001887728318656366431217975715956503798961886569097630705102848569013095072057779978741969816928400954411227610658684872828292488840210107136659524727665093072516356158446755927723638652214178463689469586121533739699595010806863763408680647104920720983728791241915943598418524485501369400262108033387260471636727693491757411857741232587334816440396166871568801463356268814119146477832934413632586540842246283778018902889065380730875828427556827647116430780904570515823203716230346677730306324190249526155618583711062988428781573693347756252557032946883080639754030073129240362248329869406317488508572620561731433199121908404845321341174270029340633837791078595444333851402764331617590645996634547427868501848051483463696852467437029059505601997740854889637261066090380160972835952932403884994546765852446533065767919113890841172774261774796541640638620833243032816066705469630446605797217619838841580266144471519108550584637365504316331093748586784421565312147211139548829317328287580633444364991559755652614927568746197973458771340737931609149551135796315197104122516421524112707498365876891013620915732498459630107286633962850896780762016194249466036232295268082159368017253856593022543652455487446241551247990402916977424105629022180910028721740361873563566069347896237048961643854758041269124768391462255760764030074401675957967590560481450623377417363691024152856359450029778803527723580680722465353759254397358424990109281260628641498226960490272306449139049553780591775068808863369409661555945205453781281553876320322782956515524237970312929221738920238529277683601147656267732985994985721978821189902257175630231969355129671283335291091460598608219078045592294259583021368070632699409145012120736742546606688317425282184919454423042959648783722167542681616144368713409436632199188621504918626262454155728174858276538541461925514985408281388486040647875992491448114496140425123145750035118073360436883832897353121158812038870969367775313936140875818648949057022229175215908264774065207915154442698650999949321407761779040137068201913157611894138689019169695809246256897319465902429184516872396072622903255973225835545544228341887457804397483812740465886843580732161362054045694617153214468338994734777282590015809584460892863472691567835049198636976609032703528546024671351022270649495745966529066609900650720579598262087690609720071789904613429094810155073230541848741279240925148181794135442664215091873657927057452843283874179203604689641950321294169121662406258596743640885069505468827466213344781485561360917878546939247677851500298006180264404874351926701175381516748607660356086718072137628635043900144443125767230869078869295227717113293351124579380321391545418350592951478193063713165830086417219076268613103807937831601078295055659023279293114193327014336496636093703619446407765647863732713706248944445643472479575113238645738037689821927814342013082432755653457854626538040725157741182714146025858005519350238529631827023526594807017157514136362140080853861388175002383910503146144159108514472628577891547072437740088154437077580203409843743428712573741770428703603562312005560608044113295430044679372642090585198656937706099472984209859197360051786434501721555027427487322260921411301831547938269465783799430178801075599667076122067242025014648120415918581396146979657891795389977689532008846589953679687778657202215347979398685543399005703889861632866123775375290243812032884116841868268435434876098456846556199070948262110233184420906821001375072536966691170517010089438217230328007547456765144513209184874491814650658852148197231304370490229454369451937155375432592414666061751445734388064019345058319019639315648093871430643530913307077086176793539614469655948500257079732770106204989718843034205253310909805807395685810661753569119479089562412144841772289608674156018716408931104392797552485054054187830564043567433046483414057401316050424582534589482494666170624634595931827847035456687497672822381904629283564241734188813312363256824501844732124242889410928441725378871084247391723301531358088782705856861357550800106431187946352132094343137748563181848102272537150252282182736442756355806818299315951221684143247233212823252888503089215616223162053236602399632459747636970625464962041358189927339947069333423053647431419366795017508596323364512103711185765014112025569326360607492220611114367183226470649273006288349823681789714911476793998308606377338433934016197118060845152685114907578194400792527143394116045302603542634030939432593997502673424872139751358086742808609334905041591843773323304147017641383210753530493406341048682965250190403274515466186352070233431963684952736659469052197002156688676739580661753442290647209112254755771823723187609858219878068648560454296694206669573006333669294580464619480863571073282555928885971132285412662801607085936967122505974349614100856252350645817231219929024957495344463319040341879631732036988401189834085216072309868402238251095646768086373305357344678125912599874273738628134339045186344645957117974260813466827136109415482627750441118655322527231116293372662248634549109101484797280077876036231501619873607011065428687449975636228254371843900820972344716428450251713441149540822858420253584228907840753361097750100946713104210326582206506915924951451737045131304554334843607612521073853891652090564385463085041435294786768344345799105949775559212614255453756202387697395652525998012920192148487555455110290411897334389960145931207623696158720086066567158751168635527068689672633559547858972161385463868064514443841206263608221221702220324215449929788522333122846717584751774503091281116310360284238605142742165021975410736727996841315238111535854938175858110249566290712968595582315119258257965418850714260155300534944750314660887424121791666145735198957360674929510260215723569152202137175098623314582882751361125559807959579031604816898950022334919137049420886644278279791904540915489388773793872292699657235622899072446877433427618067279084921058042641307876107466854545563030928435687864985934396134156153317745449394807442154426272047034926761017632558205478326453566473783422925891913619423855610232764188888702588681694755036326551697638097400344240698372911065252494558057683153833031113925497259107645378932145561108018193382214281633677265198291502839931386545790358491887548870365339687756299678459580241767702081264468112003819585337174118598536505627617198144526498134814384352823433522510772186732050278429523069129024106312603091840605403534348391777440155569208745281831255940752006571120811340131458546262152074823877459961205014006365582363268058666851011587136967737333576316183861027020101663060176727390189516493278914438542937820820175954348062337380097248735291352402056741817217176122202178899546358110343932219780749651254837500112455110544441668945761549724530473847439209874985491653719080149360637213422753003540126012203658515802027777796530899630781994861934872648156639108937653414793789633754427945294986826681526377439925737392285762441285784641383034134911565269723718067249182590350346366070633009638106351822522954668967365939341741580206427917535103876193623759158943433191659501360899870931681920439795223596093785384381500876073046672839185977681935014174766854841947995483016313885140380275006164708573646820842886378910125967754376122563789367447257863044933127194935677072150197087142953249142617797762308407985056245644770824490778855997265814507216981514023581059748476506851350348623715951480443591759966845771069409474549746757362075732895696385532808167411236898358343841351335122577209706433138817936557538603901474347060632720490554527269874242485438750440246179883176972091381646959058630524315979119641191948855785748242916244700449926072115848807075119752479121890075493152611372081046608323144083725558248080427789382118545258329425904029702282124079262265435656644831649037764110818750066802263894632140615418038176412185736027788666828405689602045799785090117378267505107933293250350752395909314996272809225873199863817064425161655064528435463629598662039021554203634395600053163616930997475325152967052995970820706279529619626052924326841732185261198711549071171276478955927345533891467103414524110128575824548571373592194906523443922973497082053680068253887003909503624147109469943695726873891723809505176362075887724762506114671871503922360437810040319440677328814583517723816782364384262465858057251571110695783665198231167820598999729595590071620611077106014990664015898222980410286724230695412049463657931573108936827800126498452302223947762668017398692549016067505136299493232001906618048130860683565310520186593878154275631668011492369870086002651063383326295648345101539146609797840073274964152682966234133314654861268751960667461647171772062861276685106161763970654346915731934174769097134547357370720747650779972054712248193874097446140691788446471872034212987725639128320072024958100642664086563068175741285038560382602134525231119614559675208237451927110835427017067966597882429021372506790878044783112583063625964279673717702888279193249739616350951890119348606463351812809608100889645590360432262423097097689645673993336011296410652169423364478839885786969621845187547138531816046269519398466754043660136972055144099517818870843864984656835382731332278590675210416713657110202216771772328509641781297427370096325995901922313745260441022331651315288681517850074551716544821862909848470280783273200817252277778911040183857356541250627552024105386218505212243291487041717094500070124710241877589848351429203251163966834717136951900271625621098669845035039687386231892773058738017316545231068207544747160979289954227122038619578899352338431376498228462906969566856635120702075244045038723945762266046930034100181224099815680653662780886255590573192394286674649352914809449651700581974213934949882776583425384725897440539549892613654265321160529340660188249226636477074525478888164919833125760292310883060714116124486095498822683141983311105070517958512570734991610471386987269378517846424713507920781900419387237971111977435957919321532004304683743796795596787689393515324909471449621559581040164492845234021717458451740266343594162427703888718119974229177466390381094963016548216891024165558379022479987103867771904188587491262880988926862030930233270916662952043738392953912409176610106707602582950255813320664160245832485333110539090046360416169294436597504005290639738154430922613607620360796951879074204281287614643654352411725930427704596620864165890513655797489788978203723693949661492527478687016905342898688235546873197971390157715660623933623031209486623757700320167072634499295644150296798608168154361409928738994395244008268799389555407489260713085217319470917544274534305572879905372549130283499633747230486069641339956305354754604509719088538479732640974010837204780276036315638148475744492290903897349127235227595455479156707609164127666983485743339873561544796865233369733487899206051716867727409018836543481005329131499501846981355519543735421868419201500483116972540825542611955910972380591803691827132242672689360236398512912139755806132819775229501806408537450743960516755311882456750025623166979620026522872783745114596014912959336257999361090498582966913086692056429572052729128110485989606035832066524511489969877505272072025026567173336045416673109182753059801443555617016544548673510743874376565458304881493916031151843849468818980745253109555619399526793800909633637817740203815311141638699179553307415984973715742833762169857111441434242353428804700292498363387204500527576167394012143228711212253666923018246636031199852059999090013992011462112907294507690801692068744205660518698421726216602672198548856423663896469264502752282484357578967811485144889126774736086154434323269327242854167370344076220776722466516526915733667758141335120454642860102386381924222350045782549893726976341023578569066270870052865553218313184441511941002092316098057036377744013990775126076012670975339887513077540396937257474666769284858359562930154500524831893946996928145309026230861482563621160664035091614233997532168636076457689126397584957499018189874837387851247829182593751461046262718154233183522983301308108931258836957215628618174642236803799228730492144103826902850102931453065949023821675045928702322810372274208255976639113951837948166447121046925786180394889149206756621594390809197916435471762252508494851762398862691693309731236974831042243522923198572068778741307158541729950921642380950693934698061053095677484560128418878587220951819122275687647644506371467192104809050736711328909077485420291218563565820105277023837640210676485442185414205301996156918640919327810152965186418613912827950018385583355253564637372878286084334468919513086347564255277881815181557156622184801802869170756163151190869734267823537568064966322363721695204808546894752497075347566268551800673200491851926106356545856757871202413111130822267363298921244224044406195774904101464213981284672952375639595038208495659247228080179602744094411101763566676633621590014486345258491125515703002183778719321655054250777319674869922190798382347640147823521413823564020911292820803607088544882341907281016812244183289981441858272758387239490439881939914472439165284967515747632058543858062624054590211819762730425171221614465846657002557121816070196230079910846665349048827022096773704831451706381453567396572461820595764059010267005178794291546254463659487254068016693523738654759238625493565243432929725444729755820796324687062173800439976310804787727532277081128427654226325403621130613372561323841509015071022338344130413804075118623864795730711007317518658082245709656823978260663986658105212029853956456429539178128619897405446888287607357363904571123905915384854378754879929813817558080171358631364547160342918285012062784785148689318838688924350732388963247527421661678977868644363661957953805197938765274600254163837355747466204867441659175365529664406273112412585624081907764513897817615971091438975893331589519916054963652264656166701756489944950432537842599522812010030053878684386376252584039711783594794938642175013748928274817284316198425635985998865935470548825398130247999570872734324914432132741528882918118996371057120378546316638570816769461172697037667031003170626128737537792919695746548919313376824181880308304112007719182521997259635057862829425874718124675984156872653223658943929143190009568925274009368036350712144014508532803788475381084047717624604927769285133367196590957929399490286918813323226095129510179416296032702378690955193767868490778480508043079897249869272243181842532171631149936818801987178713109716455785601867666153515716479066111547414822922201184492276391036211866457202571560143265157009153302622759266189571880159196421725519332104933152777519310337064712714473923115938204854001610240074117403811701942296209933400206889412349593975094868744000137270378038430377230151228140920693585185883073521659698942316902606373225867016177361654953454672610758753885281342561757251442897672812178584729752751683836233444816796897592135602890776308165911303108459638413392823514992842528848806405770809977394881530284399155277216133803504974198638096405525271058723884959782447325682564842255750098150689370905201016711433055022109781617916778855892007378532677593319668458352379182039286623757521094918691783037590686615916412526018945133380583172582020262371377614035894666603793547529342968732285561304758823674401200036098899447417768017783744457725314728371344333914370150947633025332034377115242928973349260994963867318037786893558387772990707494928629347861444765779934676780483965994358246363995801042051284605718418558505628714210021044907642063747986131183367120200991888901592912376402118849200922197130722602173833488775561430870306705517162347399825945951151992466308834655096328562344867158127909879821346535161981025227580229941859290607437861323882065954136052101623979840735182380389918325252053178454910387008047547957358869899372908772048315736216290694724597973879688506941946507443393128209513022463178890279270496135316035564894459255616669561062653574515130656345982800672543627929479341866876365629414180738877105066952656032037425445033106385413831575671041200102508018826622104351319413764458682767625435363669689708944515169602275322055765313127036338156203394075938273420578411756384231677352880216232012145933766036773646988382624719098710878885827981647999096378600129525121087028347768012800320195275391315540928017691538512459158701355295631922878046720876177627887427751511582863807127220020988354682606369312853876369446278761024323814144958994778835278581483876524384362486779969235252892593523761053950746671283207755418262814287428467213482810199083978550331882736902516276579099024384877027354752108199781862186214129515859301708853422397547961608683817692574302950423341091439780755415736050450772819958556220775777405260069960514785030296330012795278678980693287667976494551902077642123994339331298078123020418049868383380564671586612603464104559320189820702625519540113829616174773058789544247504538060176305100735498793950644091056183089236989429613270954604422728577748284391231821045205452166233725234095038478575846083653661388982186436658037588839099413594506649625265717613935064503435043979353249123207957109458710202790411461707524144809074248691217785737472375126250881540466698535735385257180591580125733336786925513441666826486421733460395833010347769281060449566810599530629523555015492832915693763521925260084607537351467571732399209235386452813935107773286826567619972338463870613121941508367227325699968027390129684941011950158769492104457402150735274305349287029368733171151575363843168703272921834773767893648532932365868254607314551466236301702109852057481112734051139226286569305084379330394778842540483115822638382173594565716934601133106070382290589049111652366081633565932155301355640044481156412245798090829214384604094960762235633694508792911506795757218755571150987253481852635421531103996225190360042781285556814836650929112522807755140730641585800066896313181392726489483200061531535165280563378112911322688142527843459221266304312019957168045966450391266555167101937281838569600717925097332937464596990945589799270943787135491153004947700966789750286085900584375041045018740869504420785285218166152095485214365363967196378506744965422465498272393203334776467272741298921137291912074812441229735745748753341161509688346094720346149026656038273589077589542231958160750367570372617902765487948321675663486623339812853660486030723043018456774530458959280751596220393324892980623829087487054356987815193720633837718416185278136693008417644816897123169942826285254554574728805480410559591719085608906288856159781618329227528182715484122206087405563093859593917149567241399728165329640444307810409722542033307713209367289532616447357198890511494312490129707576623365385859881110559237670268714079075817655597226165061267257921847433824161306476828598995293549895739859947521996932421393252304284716063808259183742101078264994252548460314334039313648736092821109414466840817856670149072704617314602018536877289045473167731566421473214246233309432063425574694814739431880600305558980781865425835690843523687183333048831017197784494907421825030661558098563250124914398549721502852597052547087834793389786871769187473222021367195976280697577806013851217640471288868263613938112761834360897509201632415597095094022599072462919948685898324986251357147741886495857337658459847310311353657717047084304115854617178730535373926759986515246105263241884177272352442379935570761960263865614323961144030928096519843049114505054062711403721218068312451165610192879849289397726218909499710274590889352483690784431103250920009409947900054153512415401526020449266919773317868848182707106876143754449047031011563653200721126042085489705569461910814811562888480919716093476557074975547056921085437152125619590603608646583024101278845178854824620538533306066139586191499713641267345442347315247944866284580385233324351558596472887175296686317895256527852657401624432503889079247870924483247839847247970512363897420203665149773021918519499288807172516416644054012949219587656656243391506695598863545539511581633892034408815449169571475284120188349065317077800033099561564088830574308744019484054198353449903974645728865449278791597395289145113439349483201887526045818030628781599046544168194532170694175210368583555811891462420643499540080186155433241217930494067338792505152847749631916096931077221537786271693519704420030475970741989890885120042535956524285331253733773019308341716605662823071236262235525998401812823675438957721428737885709358661111118061959353324039013630495369438368043482349789001601593226656567522516382959230517741235973080266647449764506810944780039683252890601076375556586461354236670457891099788227822516779262584538909142803130385450947632285912331194281340463986037688496190282180552469914556038103957044851284729026983092865563710912020009378892158278300142655491653048035492817228106793748073888849713067637457922805169304854176943943026714786494005957675639616945611031785890535795003474592169757014731116007519659658041660837382216088238434932262455239007240135393461181387222556338980241689560928312113540963644812332204150098922233760822930942490390332540261832935947157962137018993018230778476944738111686698820056612428449386751156994746791887858658925203743744581243166486705883251939520115603049746183295922399731348548275506727879331818055120885389864115654309364140986316163704900141223804091274541889216141850970958761654661072072317025186790005136283401314056324144723732675661295495825040623074934660407300695369274581459361960830700827177929438824986385636362924883218887936016114619765075341372340220121137853612109711466259651513913243614728497899578267716630211458805564603512232780435954167296182405914601951766523347200887828305267371722339303752963587901269910352889210660552803204205068095325672043678343328875800086321507321090512972834631417341995349952452818031703784966205459141893669523377254429243787165399305066672150352482392661257087067985275177474889461038677063480958991812239907684265212585283335273971957334117752559863225830006036929051260675797544045552649152452660436824942354932334686196905157531459752750433000881649082207965376558227959315790346348536757751266734295291273992182288593850701232032768987298608600376565877069057198250471851769052006770544340401227933061040064123676347135773649994123355155389473110228679151548730444834351725224311740811041585839191321508626233484351863646328495641993086387701839323340184542270899209840959034031718697947736143672239969979089573067071598387468086742879351703528420527391670635748750355379864070999329474615413339093620676986734807038058042294502152680220390264418174356777935061690124431245213112718248543208123056875449093170161454707917325063747207163502696483883970413609561965008080516838297215711634184650756757893024679963441479314242930713046701121115068700660038141412176590296219767233461931201313992521894855192763554622352780311829161612653721907185737007865468417396102707113111386696165757211146272909077100547238462148671779702001241083459094876236238933599324116959706031295170018956369717607968232159983270947729743067000877584758842962480667052433513676095576074753751959396734431379876720188766474028759635833706083873724598567485221444232425945171135257469979804906761739386577882602965566227602181779279554109518752224610311077005122632493636884606956006275700141128601568161436466240322110646417763487115531884790222252838899153270550080701809559753962968922738074070209735756161939505973697100871094738612637071651065062283259364245794327038671727937736377949445526766570807715475197881671986693197964789546320597434488203584832187486564589253804030504173229365142060866277402167461553677480210225775412083011975693628714236989303832626486140700909517872953802137641151514750904876378706178864564797439854373836375788402085166234978957994522728277566506603151246197284725342253189590427457085848839231030299543985830094181713159527981848572148719849303666132241589045636120202134475017175339049173251504320995306298521859324180956647083626948714823707909504110760864445626637864873796931755476213978379844869506408164540657444856924350314951262483381217261885006586984840195937332023422186513725488690524680452564486674784603225862163090352912007269877622502771429725517080284637394806099278018927164053050616236940893098369494792556494929197139146594750518885523199781681365406460843357614041578615974458403905703123902734193398687056823202402838219928864110329695447183683712644670881294418616632662480545659853472294109265856935259203719259442339394780328382431616565874094872924095313916586828472669991621826662717332703848224542401056432948162935332064275280881469904324576786547807991663456269437887951733607542382118205027288990901139971703231099228592626230151773971713649263397720863182528021627822071430009884178513893793224345968805084030540657289667195673004466587253147408882763712223020003768486702352159630650886131120859453671056946633877621661199421834703013985344593861167151257635977396621997844384889349503474037926507023019145897841666230815269867236081380436542070119053608098096618537525586108237345023956998001513785832351186916797937492884808271704026765148457800487790247504178469009927266227773536252241875661030203579757763718083417093445960864633463848370747766332972180671382424002317916602872316049589273658232094638959990419408571214761238748004582741616899762243692709250687663915298243077374957716802985973206929312989142270869141825196071465748340421777658353339790839661297399114017181151424201199001152312708013443589458062433042762615830662559422477675867545421266933279161878147606276522693417274408804766110600475474312905546087859421761250971490196622613897265421465297150505045911390124114877831136539521787441258885858320145701654223882533469114942748792811819419842316946065733782456307531355880844511910472480643584873707016943622210498751553991180724746730431437014935743350813569564175654466621003688245850065371572659430808280664338359230593026413183095547194002110329532124141097417246944164811789684556217767707345470533636904664949516015983723732930299037609840627552947051298420303522450062126129847929094270144787853016219221403528323001601954678855035284672285687312891594629821195026890182096378359207186099129746595710180088970409822234657466313702841773013240244297851434238993231195451614927108846593309208266901418716244805676538600453447529099149415621466593321301444664360853594999863627335650850326172816907274937992715211180726279415301718048700188358756828196320197694775770857952934475655381991705853717376017993491887489868029641729925260472040392402192798289542203091802859515619788635461129519067445807598364212122070177455558196839107273260184152032280308513132337756920729252569706506499877300257462422559526092360364502117471426106770303738200324829955082916191848241510512359991922058924766619830178011479264141907280096354418465030288525910906729503125201876223893875927706172774881402969492532218249203575039349695915009170666727818341667847636867250583152326509578958571910823189877316025183679590790172302978882959912407311592346026417276242303308151541846093591397572262828162621820094079712668498455282090404738901653940730983242609370020986617096314742703998950664028790856237695342003262669791345862183476465732025659682039442478217055730008738890191580133320937007863876518019350089656239660848826355895513774973014508422991807710689165269123902516706374207481777662968812403018308122044963295696403701537937100085497691822077936190617203282938384115501734737100521337540111812217636053108113271688952699511032390393866757271551447386809959729895914315977037787730588733881164253828046204807118330715674022007259985676737370751680337780406596679616910822997003383473526061272860609314640505479419986287190632648361202222607600935340768506215620711652513094825873733201315592276501480208191453445805787770596464389374463027800018068268828923258771079388782606154455463452563822187733063033008829534984062014248197181925948228399630357029563193563253957008726464120037289086405056182515154882169409237241722772349565318719652771123071878039993814878260952396150503379358586008540878455666355828725030500805311461195597891362583221595176767568390920734493791042326599915006546500534402143979739643626934783763684304852822671703968144940665237253615055538848240645442964055818342057499736054984048304854033107865313017657322841202995143382482507338604997636659162546838343525911774585017129911507506852507828999831800030409231895651320872314067774553559044018980580279879881224741222781382809477288601284523805106743431486174405734565505513028408859483344111186326998348948362191740808446377321799702547728786453785812796865304820050406299082936484639164629821319674421090053843923413263999516965734459908147129981357777360690685134362191220464711044749974486055686947422851131686835914195137234574190506146606237330331476652652529973653591276261143366232502777199116632544924349422688471459571705529277065506831454572133413193508673495785542132332633114493753479424610196075693693761284396771350927288036701215538162964440877190091628127567614600162039806947111515679312441984185445394965412656295085124056189000809744492678277004083254221546267888911895074451675566278955649887919470550521608305088750537382480609871628802226542151715191856728078783170020549679936573816095420979935586219560383754202070948417023554198338205700405947104868857604322714652990594953119731236172429493291896661132875738564798463918519532067716306367464013697830036557494796701618782825664659437937811813862194155607384745266688915815457239683953901658590894158692481862853197486260243395236381671661069144515480729263805488355977789225378403561971721269862841387293516239223381755978733747708790112700798720799750694614904133505511675294675093813919453348928554346640103393202483070136574127219364440679085422629870824429912181308560860025223440616888014625867264017997775219760087084669821623965477221551190232039997963284127123951841992610862579963741580274235756409239393997726520719700379792879571877908637844555810722722304984920098970692335588220001395885292196995181331135055313575333017898507309100577530146728565512993750882998846183729885898438700881598582879278728938882288569436779122186912703834199616183770949883926620235367733734981024475342662823502436279166301258094432765808280074590966714705691563171951561899922451973171857896020858505478189823183556586079437060516996132879947351437873373513755081792794224510044265983748335358762233194875943904421291120628003611793264426700315155868200269607215698400893813099901169495869697940517955184636630874637136537290163702116585383739627826338932007505521012491184283504121906551222925336348170349307078782278128214381318924425498212880585853437269403220374381205440628771875878318458938935386770432977460713268497143722777357853540333611115300979385892231630867568130326383626202017810398138292980486815695341908549243982660134032381388262065824602736811553951145116860149635255451373765122119201762160370832577901952728583124446870711698446387578235985932974591403401619688222099636595859683951764064031819253634388853671674856001431264033464940184366170066006977091006607175372294442067879070562046530254296852437573555303517924812707001741910974301362527241757941624716283383950382090119281172294123908862505396335082119287354603258679199094508342511185744414641739530597229924252084357720497888531818162682634245669466094430503292979640345394902830079747840899911518673603530047293234711146406592186825593106580820459997160953582600331767193666413519840411552313559321116908000738760586647377066989545765712947804329076056012391592537008533071278952773859982947720443133772600632406763193483721004227266291834295825985664443066451148298903261382348551160363201719600905410298936649000399203650710651248134234123623388417029562223895126458339763482811707867525590815163975862142968179456622229439649541882256823690110910079810266255686619880401181118054709324202525573426681686828003969362365010323736817575133565068754456734730697450983059196358663625244630246086649934543670828012706894998860353397966389147788219816690786350975966855613582569466701183362498631222463832240464662672263042510941002786722597827549498534866445951639277238232333432883400450194348376743540993194746132368265523477760217851939409669656916405506616168513971584353895487656214910930820641694114110392183805580323342143829769486326812966425546900089924048844153801312766773239067837168256494571828881411229853292413106255737863001544803119753718378935568401572679226218992064316110303270710917315769181548264569073462288331926134001062217882671708518679088693869018500216343073212746896334469339931068368346620001221065859321737366518640026102589532644473750702478660912221569649499084679172746340282272247919113966960453977310394450561446592583057760326806545769966454177686650697787956002299066653048880643708840102937751968313971371748440089646604127383588625350046748873637896131549406072149197441701370705285412129989409515240974486991594824469556557575103603203523922773138076871704018610880293847441984836016186138108435367875835686865118862104639402371837164988640574918126907422323377977401930988176295295271779781981347078346188249281162673513641954115692394552240617139768696195472650202564655854011955854624320010447978575568016957814381702854604865926036975051263336088933563394518271056254984903108257044867441934636095756972851179752528359573495005647895289429349647091927328349818561312824273467360273123003053052791789303503702763031641366735513600183430543090071880226202991922446339198875233857669456090489431028955810443392371152034196992696402769698193632439429582202842661429442315478796094690983623087796183952023539501905851200583647384946322229649118005821598983880477927545977987004922843568039914670817944343640426033751973075850362998119812199256266003246440992267317771301061297286589273267200101627765532183006084642313623540700803550833762715598904061329729389081468339888174157695719877640609302376764269467255999666812291501470053850179952499117645135619964509818530831740894168022668587431210781299034419499711257245474604721761888120935425992818754875125837910196420450920768157723989272550015499548087459932209956607420428434064782089486539062847238205155034406347970976834505945941511264794040170854935739841734138237574044965722619884838309689615351470385126386192436334654097651270645435412010181673245203088201781619043124614578872819610356968790499668133016421789745552349737058680222378104693483847395525453869960160783107626416596125607135955262490709406286970419254094898058263389788074568842480176698921194828180721867618972442729605830809184479244800834512142490432503141716958417826537830711514178194141817497142338804567186105460729477190514703019890597579967486040066224973728870649013588688837698203462655470704283468540344671105225558904224360312197298868025098059481372566180034522565653471684288085655302434641009962889765438543829383974512991902946025262762275209067201191847651470946170395673485301154393764490754933075839905620123197506119945321133091024562747545702913928784413151220771205974013579760952108489144781009084982807061680622239218465983044024630942191285532407092944146623352793220313953464358373125656512375676397062757728906857940404332384926980087169478796283863021534167134762203222587326275620493199399421824878638146923742043072277546123551710931654524785125418736664769436987069266175592727111520681971355841536542970462434312873322349947457328389217304084929595305786144745870297069476452135802699910299391726210680893939945293933163465105278041719486816737292339485951119565179273200047154308040397848414430706599805685184555820704602131208487329912397969366827169767072079599419697298663612322123458457798712341610829816800420449526008343667368417100178226686781310053180917003164911552133685419822958271274279033559191896267024377963914312867583062369700852778893900782274113349421015304042186476828345125529702979136696666040426539525004599539615382840829190763106216501736231387100672820840396163316372636699104039562679850820392691271212725784576160581468731216453562597520190337261601345684876098125433170334863834069861074352330608886880737701211485100580788657653420592429048289486460099761714191468216171114004278433058901042392151614046420961864366022222622504667554443625760207291663598756233507487355966375983517985559232729735940363774626942743980508955066845137395380056518136229481238773407875909278584810519064503676029444092222435545810844697553972197052929947410701388911127580097257414951309449609898650600465763571074656617033793061760589761178588263280339711264368017735853040441147779636125846218464431568161961941302146979084265029157246119926048226764558617954819184293047520904051567188972494418493743487124913867280606041591049011139416741589078201065671870591546942440029283688952096344142691512400065782497484398127390540733182013265438968316647950296055577952835840046755276573369183504092305597503478791485921143927718010156713942513871134178123708916351813621694117125675961782823714239378251131605308391960073954070481850197821391280409742944256308743139663523824446443492591151614314825043090335596895403810041057788106086070312979447927974962449910353969808887680382799261518598535228366702448083858386977294488265513854386271999423364178051677738901089135086692894095775550889646054878508381686560647564855234603161241656546080556569501793510741692042679196918168523775724048622773277658840603908213956173722104786230620307020872470582009923310029269280877298889608349063610753355522967118290885650304098269623368159062638023873209790036473122289225394326296658904430773384558608256924454934718515725239585943886054798615179139341193473046011314644381933915815834225923868805920898805188936876178213923570527817753303397255417811537825563480602665331634321459757814452003721351610880810642129634340539360821644125933017897939564803372025781388564539113520165428941661387259245604773297799069523688774834328560280987287990101494508653022032174031843275231922407309961197182612163907394875373208468017659472142805529425376489207151441737097954232396925566445040048097071358337244250734632852597188900357143938131440439303207621384371976098559628196509567365408502262686582804300149142982305249200287442040881882462479954211256492954674488867047992262531021022103401448990080274447409275815476447603863121412265786648690640960996475616700448236376282185118518212486262374965247737061608397619237907071599201008637266971736820590347170295751882895097412199970055438899988833698057189606130774561609613263470397391577891193501954675106492591622278176902833887493510836620704410349115182971051956026042025596161235643662020394545131480111912589719479032030633968463219320278379590285560066878484025580731122364807869339651154539967794290799782081612949243176875574031901504142786371239662722276073831015605429474516793489857979647478146431302068735284243429521007311861571596642166423089763353495111306658777446678741832589364461274453953470560945249966849708660234331571005807923205047087726941743449355532935256645149908455752102328727948935870075288333031124605914711216492422011477512010510844308089883966431831030108812600818768346003741741971940927217167008783454271612952911480308853768150626864144191646855212571646016252927828732908036183214176330382426709886762084377963078672865756046068700927705897353173900687979578461166028882835818689816966492672451707726149951479928089097489068153025537992355502271620660536985935227704669602746993250780206319134178093965822089334453046053661835476422294991121318001760713057587939553023686753612450448716284815622986090073182590840018319262091868802411255578114729986154436706375577062887366214179692137653812691012567499786544232843701361731767282467355628602628854335110940046732361206326233045699216531665927482139466916270477681587780610916458058706567247822071038796565000851895519015602442473878746671081332894844738438912274611087167728615324567893662574886309657393173818950651284730645866501065592154479494618856580474936728826877500340966306432637974258490079173955494490471385476598500479441809886352336714565679268164310060959665052715085697695182982686712802148029956282729072835485395149820649162275267359076606704626483910258538726513429294872618893474960602914966597073391343701541932172539493284007288605453363531269229755414946478802178721086798599564198123409121294664798223770987861865106813074830741571767202375117936194185006778277032894764174776993163599076156175699033335739127870822817795679242755338440632995815670806285401243710628286915955313185969581950754561893817049040051299390642293564465746708325260260079442117122080054064848452443961016856629195018558356848727284813166021788459111154093029923460262816536459396652613303376965544661241603793762210890447725675951263236493220450534686719513514688946450276525902295368322669583639446297388030596440698880077261779325674126194214579856392097102949537908344182165823215516154421779103340562438222754227606971107144015809838626848598444919031666214477988188080748835933099770761265289879805793598304627735420661155768163454358939416077359436425082548286172233543369957021468478095225053084251203787733792573519181497050492714829988336151954210929524308856132306896625879462179815986957858039844719933984105652005975280359296440403565275719327424235657979247567569543453297134841586854743833031629092198364026863747044868039833396276802239380552676357800503608262575131699804093220964232924754993162025995916886789265507874318077612227913616116762798972885056613121246176465386372790473621639724666420051510851911079110091606861190448524757633007658875985375155966432071830299883700235994259327692465900968794084473590945726892871940939814101671791911090205043419730820588189521935963866074543854992680315770189142367949608123196122254827069110243585176033673408652828761144570188429134359632282378305624250239472936178114019481615683232303394485892837713935241804421180257901681711056816715780891985978789379659324136265142461405045711650898218956745190694427832197523232285662294035766241587150748068686717338655248514276291726636062126735643144913442759480795439065910752333687324776191474848029968027795533537059573222917784786108457419096126829245835660909021378972122093423090051147485753779610169349784460954092319407681972759658314527765861285952117233882742607429144517490664584099564647538913068038967178832857355565162649340538780899629841164465864467890121532163539350495504806024183977038085075653339624315745530497639714423445223617828579067038795580260407238938671722414206985482285295958522748362804250749898123226369578044200460302831443904309796321260796043944518782133681534212628397369677158291349897576943222536164148643918801888824559289195193962411344636923540403700860057501710923583343153576961184464976915012977277916010339450866964454666749933935324424411660702073073995813586727397921449709749517543737750365481446824348525654069577757610682734494466994327949771900662718384448844167100488965771687622646766080357099292639975074968350957376933300650640849240821172947489763587556840537833290227623149038402687128650161690530251853988801487485830757995210509695790078757233755741183538236883910130164061290833527357853470167266368486589865480716303591795570722586800896183464665260040765988186639284278900482758973434961565922807634319779252617970731422405949924290796833696798714041461533963609310790967984789561240293750362531154026329540246743236354244179660255152998265696003255409322846541064966034792268672087732461713116617470847801656981024065066318696007940587749464008831717080566525728355188028571246684647252703282773943653145924810122737620067243326605873483443800549413542664127062598771189220527759266115036131309124040085427609844453810169601282655749273732690802455909552041365284531251324410407145906907967667470617641367126444695205463428279427116180336671852101192347066118522232826165648054911391483424887505795274790553186148456688460956183523063884907186238490172782834157094826069031362284127970413662013165541966098478664107154822157651606327855908249968226477649586519308251627484104627414656717557086796995608007790306249779486399387601299275962197849107467920525060350111166986842800914771614195431156236626624167505771723441525006798108709774974112213792865078560819895629184640259141842293563825883673597343829365772942353513773975213130349240521055064560615157151980131287871432211926251238650034282579799847274083347131461817492550128245780773247523683765169121196485938382839253335874006013322332198457981051299550637701659534441907108488854346522389006906639196918618699738321836293281862824854023168982499901490975172017715889035876307294769659161948127571385346420111375576792572975981056553455299862293676851569189476654135726250294903047281424012785671199739131584654004341373547032622899318855240424014397125220591260351470181789492271674587666915648726752736313219046612073484174687111862240194169999326658950437746609248117201130913187246961516506250257527784128516931470495428938998823053999164066622390862024468629607096380508311301053063971041494388348618135653044442689564380263284506909922134836429593010978674676310314660038410992080169272625493696202321779363077982610935387899531968240042572091561076314733869046428742822903595013962404646613957642875902108626584896546582125061523241621070285805949885397084316912015591132543662828222130882232902121697268358324339711344993249077580533684402143273164125955980870197925152118269946921046477615375531648888318048212351695402542786012053512968650342126686448351259428095659373228494837203614596451689610721909830796612029830382439797780520475874648677979331490999019540702125631573250964728812265698194642049648230350129111014214867509163091488034439109226557225902242573615802075345252971075910755773329982195098170283147376968382812167063773393975777642235562801553437031981389157348658453762443593814832161220021970429380737328258517593751553841953381611779804936070252102723686430965859302562973180675635246688669484161856464270882586827082996812724475744426925826713902589799165524117287360069199430471777445825496081066750570640549432529177780475900639181676579463626440650112809478692687080962069573610881151755923481839359670371507710547575591421466234955457025579455239452147558447022745394031854600388351918429805479232816399856496573524237116380414517793941855546332834238280452993498880130771016869278126739046786567652894032784999542806160822038486280683456400449366958878626404322045270117351238182123107998728209072512707473094274917441195202506547770765620406505354470260457467119887855165221188992966325983217412512345280464025889986318357954103130008993397204963212677099484991864336799021474242839877146051593016655188283427688484627505270886825195866881171570965203102800989706549213405707831070028307049696683212739513160063841008753741790081269420355392679800980816445326802504730908582996105318505624567342914538143642108892341493755604181115357086074975548538031092459306992822466300043294044317705592886621265824966386231125696832096409236885617004875372724773417211593477550994567650466952398826721304126922448026861782432443795809310383588865856162607336936056103843034370053297525644414004974583745797413510878085892401597288770716973723393764135815636155732792901951057941416985058107373692501660396327283015647702888621450883051726283520009605284927476509769340058780724307301420838948133613750985561156850451937180407290289180893731470917269077735617388161038256525323107781501082286721399968686896557334916218389353916529156077654888240157454595516318869720232241406644337344704074305758209029737338645195087712849099701326701190070125969276140340478427974795473553490990715592201831960413675029667800970217832414276942325765399191529264961654317990029132752495234944580963221741827578898467326536401144479731919434289588449960304175905323839871381551092499753381023067830312269996804636279544154611904931296241764228787656946433613852075115833304721544404497018043257002781971363157062745497937920882597881386333460808043543000915660863278868589263618664718288462816206470721343070398667083645199480407753646789851080894060545997955015372995267844893144489533228142090466066520550739822405272547247299615880795874559374327664222263788250361419346971400594110512342944402560240386272416998567472319899125037977553206193955555825108678752966789196205179872907028456019711725281962603213591416411417005034118234646580485186732445807005781404117230270490287977423333461749070270917450417665337339614796356881787913160115156380180883190151311498323720182137445351083600031179717039296049881699684018306768287830395812586627932176039325360520955677096112138068481060666869544850276855060638794774042326669533150662351947700307200153865880512655453597810185891558539984159803308250038330773233823304645145145752160638729096243617328602503914434278255795510137832184645776383812205616673006250661868675394466544117833331175014603336234405802393448334996332678642400991263639712416196712662919022366462354998978230050236030149808350296821264579286075536744935958448300884272549369168345557021961262885870501530859745799180394869177642084161714808803447627845484058555211173397470193672420666380395613013595086937088331304067376814248816327713030935478005824863242981251467034786574765879914604460313479576608126605719184640327537182337471415056552164342738917123980643779153053821330576453044741362901685822416144556026897129900029429712818143527910012652936082674464474373251005935987332446796815436503430919419970466981893606571051023413698327589834610458190780986600101992812497006960735798448783591325134785403036518885104993073848360954028151410699241478847627884231208251644129120607355303861248485233269048722160673202327051118076145686383870456493065847892975797862787263100489701541863046182293277729396930734864131537463849129619868689271324721878897547368819771625076089802186407935104260876118190026313072756487415831774346449703923488589874343894889817260871132371079962095787188704137073554677459152381909805503366064731647926810381761760802066307098829584408517453698079429640313351064875251318971745257263843716221927167149624910247714086781603514940180292019909814120512242457336419897966765587845920889005667111980349881279185445965710377690026171606780445500770484114244277340140447073925451435106578445825452403651692239740652789205859343283332888572403481719018722447933812106868208957603704237508987031732367171871017322176353859810847835580858861632329807380830498819096094368128155806972127366265855931878681560104813304183207567642805334077514452803354602986008965317425349309935381103957775947691565930522538456421382526901463374084029988272896903421910891136716683833633410060973124401338928793263303408827401521957125823053291947814687580724708423042655442621092285485127120671755501104235014262037037539659947587080903662664805986298224027676335580018542356159774289346089331837130210107976152459999570292152073051077786439681633471545820163670302487184297913906651426870283819513809259926748012946229803071846768183809638379551937937731478190061341258420404027214586709367466595478623753920212427597795283080076030263889582645483248416714260552825671724962092349139015468545723490818473511371981496762283464678677760262750042155619168229730217597387335240730056010048568550359079846973505901730869890004555738692863175114734506904248371836568958414523744390514058260443939638082413021450939065265934924964678439532319843959442983557060869663147694710867147201685706113605719431112862751698977375821168278255809823452617760568861476394053623087789046256402955991599778586498081122991013218438964290370143239517085490883279417094256454362855832862379055175735511125571886668852305883591918609730628651477137894812097737460067743112480442699492363865939231451030912598026682168907554320954889874762160607871809855512808641073352178572428700330018375611592177831572876490250587386186076932129354414503025479141502826188308982665186309737092771450313825751489851637916637593664972287890678170756748661195091346714831339400619338605023948455641623473564706559863096465050350745332112514741885535911968539987660042011104418487343068961393472183814399883258912124368133094157926916250004908684634328525856711908720791469442864726444343447781508421863267646622366348204480557249978789763826915461708477646282195634208455776761605966718162087592108041881206142066465815233695217939450682345729905993534218564485598996507432311640246220660864464860730380847349244545463378251031842556433265133747658283672399557701206052250775094259134043414848806295350573087254265887590917825348663472882251191929967493232067513700189444604019424646802037604198711733587963983831969534999213833373411499554927557874427182212620065408729740753877460069525444566082388417424043089095083166144866891974400311092322792934816504059383146888221166009181052580587713292402773855354757621699220525420413928960818645587568355606845542557408270930028111343053903083152852239638953430547265977397956178895020495138842742157770498425646520219437629757508885858418772260085135937703373573211423214670363530777124189641969620458759635620397891964771737338424000175113224746028211982333235438200480926529558248718846587669532303183781994966794753210109968505936685879792237213682189267680407692422863369005476996806865365180084888212443592030186202567483026345224525851476760498681465664986282939753876472472924218657616852087961671398999908254016814342362601026666398686151612388622001848912260876162048361001916721073381854321579459036114491684675083796193992785542776446052326780459745524032715270306011765501337600173960497545893570296368390662539574101990775172766852794346284910711994388475006702842318105029203330536569899296784702555801909571514951892164898995891951035686777708444282187120089819343508702940065454695080060734027150402168795397681964688435003513158390490655810601876036430633584736687309339836963069386409271794034996036362646037497034304240214367707029457733740568354797205728484197871338945942999839267747837041959473034852761599406279876809974744407509429065200136355625968388948679280964852709342552816896475692248302227204473388121975968735631623056328754615699607786184349311853793148021966651836185520427177385790839649351816101835209025599854113903991543587328614640934419277661292916213334106751911545984235074243516049226424028291610854694323863680902468292856749762251351928857417111336834698262536713297697643330676372704450917745928069100528280791516878392419712884464641555218631127755872670308892548921672121163087781031316010636541858327494581010141083274579485503063516394352890065676404740574763599140641053052879320643293178553912826008879937738558737082258057283696303411247852579008465572890017114636123707739235485225391315544115099332416511268537369300286583656211396994745031849405314475418151284956506900348984638834980715985898083763006150859413062716348696783015232115859799488778236202278917496993917492275244851024160624209406905627574477896699348501199415089724759261507028247391938005339721890484767501861329126864463674493929692065758887685478213308407636490429797977277645520746785228935411763865601177626708729500975038553338169757808597093336303103338039548277635335264935271921129389546101101191347503199641966613543771669819202072513997279424859606829514194860523015037141615776115447433481617285227638957792005899529423652224900865090910857019593699495769966528563861553282810438809379926726467904081406898347116800401742778102591649165584620544863350104429078927271695048617427445655123849103838918122931856675290389600950247683949795795640811512634903040344775550427574119255217421869716360520432233218968384930614854476069906882144013125015804327130029072384734066177542728325174996572617223397603694869438674146730978055694177474889080340700741186159344130861381009389855014981406790157782302667473207288622731120455136688268275016727897163752246555008532846835019818652822390404704758390282479411286982094370696428311432534488101474311287976088129053051168834862945670254648844478481040924294778269196760788806980597556129267621912924156549113977649051770565724171584425059938139359762772102830496297712348329533167938720200810903977438262745669613489340622477358454653153017740337132849496050499395050730294409285633010909909063078519672190621866391521591063945003027557313388514437637584771342295892786930149717598825441813309175309627142358137243121770350248058749720382640495814052508886896831713398654440021265951979731391562474881890292740602193737314623562737807895265290674370931216476093741302824466590320154759944990988396103149838210386929781007156468091772271974300259953417425962109715382620612629164065629481086817039373315001513474878523608527422481270552551832530922674836066880009417247565486733905708719727258127750890865234834342767363506556413477552190190846180675953432779678179684483988727490212992154490301917928947778569660371276300047552260854196111768828481682796490411315261462812555939599225073893263126579503290105239194162846613902862903715190637949415224460777133416887446209531294785082773656729102634639093575326612240682741065722402665001862163815755742850928665855192199306617858099988770180246118096874630080806275399297405759922260461934239847681280280937470294466553511428983712762587932991902270477652021883798217616320516699197657495454593740179463612296570531833918835277599191820061462331848250860122640771558962139854042832751287800597718117569394182236249300169529249178269290906506043861708508984980754589979968420156341473972357517273767911837795221267846281291484614224253564796229515619183072214948961245138414334839579341729948038998536260183949827712369838654379954999790206203942849946304940150939982684642209629897912841204417389975152892945817472542648379831520149188293548531473433718436488110100904800446736129701356588227361210692661409890911632553825943120020109343849551694997069819070355508734821161246319067141687515085240171409356531696129325321621350086296398214367855056571707118770882000475527490042120099602648694470559711177788628521148183992924958440949208850644012677815160390072397765759329482520531844768167557749899052148480748420528269849189722862913622389876127856136748869799896993896227222770693443038496090862989030223271600085292447026846340608140035158616450927590859177898981246295779064342387399940445792083093010360631480039245419807667677365714491144734448898085995385217638811938860544917865868809826106086703300192408002817913944889762600349922761410571536306464442653717674128776757721330265435174618320808384625977108416994712587596061899661886631758453221815930863464512683028288931098464681769126142155712614868687595682526113969741701512045404985348082655584693974855622066057759334555450408989119561989563979455356440655501804415365154624052794356776286412136087170755063995312832861444753077348823053420874325713582279712674771035875797200207416884305765351599782654150379172823803784144890513083389495803831436793329945294841270737714866276102744297833488602885359114995535313051701346868827083472806133627162832657070377806953940853472342663237084310597579391160003057910611689967439233133497256261075962811791495071788225088289119714625889806590510184473501563234278784809670661090013725468271621390499876868743982930835448572175422136182151696704667723439984990480200012656464473131664027865264573144577201893641656234359154640319908416754050127290796365051804150674034688965110039798171132771482831718753540601437557473886847591338383154915748126455621765344458121816682137599003178133354714103086008603545310403291809720205769962169986229114800024913199216457434454680940571184689841538801679214069970469685184415007632215047385430084383794604498334606899725618248802554637436441431799255034732638917925122728606299830611841693128262679485450762618358677830993489583772463946642997797069425752074283724316436081248658186010641087678426469225348322897522876392674821677405381466172688316588187044154838922377023212010672545341076928243411397357439427447871837389215525324897648476888686934357140892761045538009601220368136649370035764980767431664539873472789272696429775463148180605392549563215947548828333489453562434515242702112803021606949160597443700589008356980772246728224669685883090405330464120962494139249885136972980503625364866544902209024226642096729256064381324249331801908466446783344287175011738549922770140736820284121266971998786166850826628084590639608912012794150955632761455013527869852374234588223167422301711899533713936701484221224316999370877218554276133756328938194659948190422440332144235601665852958620822643856139483362911287084788946601012300294399645931752058121068975019998435278404158904662586991870202449760075861436514444347555608400302500850326343079026190336143864849932631645207366345359025242644689579452032574867139888229678947814578343666830535479757669741553731087607991086954705430577379059037315037184177631325731503927927803775970401430266070140107796432462571687102177095361973491475858472440528854231932636277883635996015616434065725517219960013471318897080260911017299410254872320027360330771384854889626321045143180995709301122863116015371089000244597995667264266390166999129003096191141670960482693773911889472371773103711405437354226192483518808328678088372002682944322056964108520142835360696086902899991828087269890632234790721840610446428931910355845263419323193103971595179412887124043658942579435198379486474788922724206080333275280996685824260287947861182648421058182483049556600000862024947268470431967029778144409422559481031105356280153685708488024135162655691328824701754284087944914852841306848586089907285365271613404894802878012426663943736535033481031674158772224378705848825447169403600567996857030264324771151880617461801615162955205656652594117705515930452779056002615581647351781073341246703626833553452390614527587905888736573038024660184399275495608541083514227800291096195970876662530528829763455225400199361703883082529239856767726761326441855667460808541164121225058509632207541058982082366432572401746015056705978409228025236321155064341352684694210020759055909951109882635174293142608473454491174367509421841983305201795624562240485369523078376159898680733076046528950988645162901369691907278113035438940033832509043068221495582783818056764926433427807183248436669379504370017896115088068567155772774201334575682633755506745825326919976655334753493746297259645451784066055401376514233345994955038871175445403825072203565063962936089353602326997338598436941976557821097822202371183803198138111320247571671027812517773409627190016824051178492045292840434807200370943849230935351477146822996469709565076961877314957169125736068652066521880127484306988021144379076903787113035554107994184638367986513699733133242208316208180016952842811522066708635700422386604439160268427102499276491144568335205044876278332998239198406164087539939985452465810222859020155647267487010843685108375138950695284175847624614894221809575153088716918880924286187729454279794414249130243251728673246226041316657156459325569363404869759853132538143210194521460375292166620607319955196892724906080008694162717532027765486162673362057548914064516808548250563058865566945935745911645304562310793696784512424964436540246574063223169017136605538484174824552270012031160498436353731205290999879037696712818295820013841860347408764412021764146902002240900113532820489497334858364129413218286645344179147279661572657906484758748040394124887450596261127640039791391048136093346530639656384990500902255155781452635136219758172783015152002788086324604744334290992483833784974407209290973447853151295985610865273478305694544240132930575678155766716792233776854052401108636573472205944053367991010098671658024761451114162824283709341545447536241979386250152147947876620011486815729809702446340690476018305248066593043087500053758861322656973806728610871464704801126210458772253204371108430103735598061355943393749595193942790763241262668541186453171812750871686682046240536677040662828455181391132020321785137660723454325572713105910511922041964389797101660852655322714267768671852398389182825980640185312174641900557658262741013248067429875238653417040927736606285550539106493444867010564542512441514485668380152461111416724516098533299177133299645972245066829814129024890738312087094490767669853367181684319999304232931259693595083774181893838774314281030887983467999384009188092148221663076741622686406099968277999726696340358036588757347139519232281950349267328047891290970910927668435684034512930472085705956239048197291661285473978854635653757216469093317360940299790504918908189049039914473154606728576990433646946757390351450624559553854934394049601359316313604491048215421311491585421792408633337751257113607101099315790172865793048512828230400258662579542574822406504659195312273490701146760468659778905055983877615205641252281771135519332070275976931312466296381672298331988742823376037450466469117714682403361929578840117013100047706133287599488746864162089988002064947842818721249225275175708203893136669108572104898676073238588246005502493873565563228973928743880395066445628604285619220475963268978828661401231487399801097924769747505474348392876767651206831387864380027308065858247260076548684753517870614491776698967687182977893324445412743975573889957688748645476580625773904342586323624838536677513012640225467076195163436635072423955914283404835903549161665966578979877325241247066047357972324786847229064400083782343211616029484902177092059515717840415805200217961826498225100430044041344695280564436245228954257290209494430663303090242054875872801909116804308605430917713206880086207240139999673120874028999283308847146871400165834308086236087041728151315172740760634745167286235075882075406726853782577618400139039274471630139767379776874832654679721376153332644673119991194101879174946218006171718153676278628628653042957668375012223197635418772632874605986168579546097278300729684837790811629383656776641407516851949962057640398000849624840373405187540746386146123819990100079695907499026760795086837807841685512164300695600512661358127809548009423204074571718978532246668871285958664366327855009796470921379351740421044245694850686550097264862680494494770381918443626063741117668992409471795509471325354763157868375107119899822630892132088395342394996752135485450623453957362594001235142882664028253151898642018627207903680425461840385180041937913231435179805942648827166498755926325412382701614334303132666079752915851880468924678306341669882433717475777164107980144593645179668192058204152163697106048801950530216555814930491998558998255613150892939728483599070283094659643698544660933172988413999926675086223835257000072694714975591404898272577805797518519949017055432515089925780907565189464885615806948719512312329386707245031198438665211691763117059184024309039632542511278248661248980192877910977071467937799124797050229739970204665480963706629098067085558002269137741633010193684453590063681759527985507872213573136561571742290728563581335215766867655768784933607327532593248784714918250746816320686877478427210046952920234110149341569474499882148106713638257857361745004844407036702954483588238131205162393125386406524504889376713484717592903595041028279123276722823187312535412709819709906146310432014831094531153152406820576526023094777554076831928837546105277165194970770670249929940285027054186670916804486558892150058171753680321184488864405717094691728292348028768231096852861581223153330466715331335872027322827754044008811225127942378247833800605280685295780562392516430090767602162307763824844906722065523990251156642531924865620015010430659400448735575200224470916254131839468053782844975110659563068620098039938647382183423473046735652640601855951082840391382621173894834257466771462488828104469794751419251214838129949382127353594847481580651805812492674700390220461335039631023978533841857233207601205940900852169978842672222047207562984457068914814636870888151319073712344266566343203073959760571683904504253623429959082908740007975639906070817983132211255968111245550847201415424550926650663572688223049298937045359248907225047739442991900701671176521036975095207978345228511025636331104507617235048115170775976527944587479390001381426602189114276417350540358054857206813108473744280640941919453727255800132411068030171246884035338761860933319815609435366158761184237598397762779989425149931279267728183677744369040655708055123310966851380887721207142587254756070421846504737334842885039969441974100044719398737388164178751725827442740018927871034846710748032717062272663898467414482164110871951083473069159095536108655913682692743387739808770315322064020761407495564698914912198428615749829148643398264193852844079028116806809322148940714673083871434040598537845443036144458440841207142386528950157255262243054666106857417517561936373290373465720273589452537536800369964172412580218327440164400170608861677671227763833735356965172199589810641466164914016771105333712687462709251723778973955751760339883405497593979512605436412331928109131667602025596411981698576056823298044173705771962789234425217566544940128029811012532761280226850456992541359157661962442397999944866695579861627132168515583200821315583117355455092193326021620055044144690664362941750591309573952973224256536663420969619111666447277170854571375760323826183967954340192581105606684536838923256051620021580267090491588112065955207385528138348236122860492475715042499487056172833133826830164565909298797444202011020755423588286683939684611915982487025444318970695054325150236533058789774198928655829211648536945897477552616862917683349758339360705942289624160596332704731737285313326466047308849164192708862320192412887315090799553442242454724237906542961588353670706491629828805777688529620057317464695342107021838455983522382349142437348375906854737480048726853049043512314192808128649027099392170042603213268516636025263493081805758700994001832537388651932805898538531880050527565400858328105937732694007017450129191637078803365056988117302007466899172854995586253973261672282230106285540163610442305548482795101162359667674359507325628289639227512039177937144774318181521021821443376251904782663202708506864156154069125433345516792579433334354103695671228859704907438137247459465737580801325208797223018619593658146489021888734914234807469598673444940581696506937112337675859909130497866480203499149788634345669910011102082213235288821143733226862638148406576892476435834229379952454005973765006193147706125232142838271783029895980399201855289093378493559245883781393144826838772929084948720017028247274436437422662260183731738267357467513250523652982263115154923301477584321947195311084076240699302756692314661657996608351751549815988456764809132530023450414604661482753620447812198527321959387731495942544615542847549981493519373943447181784522509959101155648175490830102694485946369996283303583123669707494126489224815684007909366286674666108849168042002657395764409899457547798376208374517553877198404123985511989708016432779527549526544567395479301409126787598869806160596626026080871640210061984277511113238041652024378363227337451815493253879735984677420323282248807889164126068564329932968523634715564206078489333599954805672291307058381509157629397262507316277550395810143134337173188428590918925661886775871671735878283498792008772175594493657503019475800240778288194368536548468307151182048917401711042793530168499930107552342936556261288343460105857871210033782014637862467308229661786867426961430586083568270791666147398186407482821638410653230165513563522630551754772632614075840275010945646227777115507133449779075235754011824669945215689376552295831484961299636160549510693201170541575062233139496919967978091823269242332387147335310044354097562241166006516889709351366917520239943540739191319211541696586247361589784370469788673870668766072599209491409746034908110216709495300171098806791379794094053858498017378048918324217218868221278161831882846176290859438223232488751146382059217725291808803719626507683137727660811025676836730576973427420595628632752534416970680100801801787963451838620595991403531150527848644609055041239893898210600397050307371213541054526392977658800179757409539250009707135357876047642735892238978682565780528315957993987036654654974065997154711986974980232424767975752977602841068801129889071921751469956129651289335008119557902826332470183071141052528922598878307606787418245832842371831171125080281857992076890883903728588560724522014882435843814062587077288598431630890413161296341799694231409502905793519957391482160765941876120571777084716707586535360905272289186499322598380611511689532420448918992958190110696551645759387368770780841419615366673210910567322696079923150377868435130686102477332866772333469999127128819100460267648758193149554329612596468101847273192405644865736922099751056758493962255659475049904683341624895340763926989514244440302192316219140226213413680028564372826514583196594908962876527323958463107159402939568681516834012377122537075819578966144178183395269342486142463629044844217811269022173256900334400532611047723394569101395765234520701737458503403185846308092178114688353652953364511486365913657161423904788604573082089474682055143374818087497895740906737499518156190736343731085803179069573966204730140050934865535599969276181086539372431541208253609285191927719665708086786883403795530470195746655594392228037697254573810208438691675906909181683553425597111770739227014668266926886331713283676916671659311622760786498351854649159479647052464966500092675712200819104716040891300971728121541988147764143244129901559178893439133502471378950844360964692759461961798522980523091729200528003348813609206221108455179897248727988594028398036444045445363465289574840559303401833790667703799652158471339039365992715193405377304480830210427332837882884778113769170323978585636295817181373195030331524547635027617909956134885110341414783762546594349563641865634347417471402504810705913682650678189714872389244382956257188671773827908565199064346074647557295250260978485768348197466145032032531490317974031225372820108877491476557482741236730611062248202337403282041160654116280434783865068205185610612009753450056474788584266312441956783217405905116333288729234365877558452937874073522497506747094743908682788219567629703574779868488181888464221429571023966456589879845561015207098902837571084058536873274286721604432657592982642984981987721929704197647325861956458473803651787621779460427511666478733198842203531159950666123742890678441973933710988425878413921384506109742645644014058230184000232961905108659465602489366661157518192272809198430123463922825377432612728140144630451551847914873060420605776485205252046056802429722689589669180445646859167547232555244316570576888922022478185084182575007693949075362828009617568716895937352636357111020454790193071627232604564049558482901530582756273595300653375224044498337442827664236004894280871340793397536558473078274893143853360372964292914479912789213384101222823637695823704917629704548775010208720759342098810625028510550105136170646496960190970466749655470234741139809727751438661139751289159947182718584287136455076999047419831393635366946419525549870998795863375525994996624174403104575857463545240421269902037400003193595685500797986052033799322399969950334990108263540819132763343528172630280720581574598722950852189629187548583236649066423558184973445066308132327940544523354225342884611316958292004856424343463851654605339947634662972921066915495403784214504460612521998704991319794190641812556656758929071878358242650469053278484482919075581209977652243538900822752236719112570828559380357872893115621125474520335150996218794815218708576322729017629799509732730871662585796975388180664149809238830466360588786171691839589857436692574703454012024098323377169256649053073884601955632788556015649265579463088496113126230253478536631770388511885730398113161869989254943561756805651420130475879974613257361257641500338248854605490790802824541953949611129976980016592182286087045175108840673456906849343521039361449373275429787385530979728371681950442694743916413935459125406794665890433161430371623740220406930994479052410405668682040723688141124474400763887780101306247254543483352746262659239695215823153614513135144486006365537688753734528959131338027251995062828297106360401425725307458586454971218307911786055434769169257147162033358745079390907388989807612123226128377840140967212481413089471140160249777790184191119464381648683769800039702750863712199669309077846643022720942130476077506433388288031923088661057718668363034888155619925477937671775732770116165126261372256592931345304854777785626580797086319469231840188480542610516303014543554360779578804799476514641897195904487337580131808307063451677963226120243456003094350793784344009729519463802466537081312527277564299955662651515495971487572346639346328154154875036600086632413122752779828608165070494939482338055215724482655050826385230683097097305608773928948718132667010709867325516278872381030786599284153875150669519164142793009423784171845934289354997933993742394196153565892106761114573394232107109016179780828222372564352221940611846152149860754932919118026885977444250597322984037249567998631664384015244794793652220527207048243532395789734090913390482280298960468922241377791317144586786056589046935915004824833165258988826330366861529732939841569484351300928063231909892360183205662532249931620427165660448859889472089440877476851159857128838285380667881089695194466414355734854154665422126517587018344740561117544609179418375822095151219667407809132985931582764656349310655531267949068245316167649831421001046982843546944532156071619102564512194776869831481000371940330336503189182410452689662819306375595217632927788166929437036474102242287245064956783832406204821815646703681613040900725612456436199218535873035519607111584920014359485413264003653531176342492220596870243900283899650738865276701646063123375496042494067282699836003197429276659634696422804120882086240858748023161074976307009653425231213175273531609245705552908070154236867284190185474907052738584393304932052105589260089903609779392598721910975949508734583105490620748325048410274521151117604173702626046966025980737262139993480220945039441720309157490696732661329152706537412349935510243295824132101261334066877953827122060595079652766651132309091769941957974747827763027333749061999276537137788090886123535614967869167248416739900757944539669533814427975583450167546936630594827228651545354760858661599685464899499269231783860281941279392730454918475701651170272049176012250584289825750213229187840380704510027753066173593689966869359719119964280925030116053179314838665381451118425340474246685045389161735164599280487614132507289073131279190902708845269613723411736689911798611725293310097036330486919808156237250860587678404347961789903786903571449083151333856955936136545117440144809387249778463085291826700445536839462762079167685843526194856638121585898469519895384397342892957185601894318639503805298609496557527753056723665530435017418334817616166060260638676790446850097390093224110629023134185191912151865851497483820842240841888163079328334691565579746290626282896596442242781891990250995016061263205100804354858965456883519269413081964590832208210561538510640945304288497569259159449083290978689039334802762786814674986340731273717269457854930895154916986293597036754445604036963798338030395786556725170698849223097453634494883280647178154551505820383309612394883856908122586007350709513792499292530971578904844244068763637786578984148410912369582154918937912118435216080160427356771577371157254191106657041480080880362572269707657162809022455166242126157774178236759217010886376239729878348703782493830706242271478053071760864846400025646406522274583694316987596139315143458488617210399010553166467132261408841905475206309684863957168319709217510236838155912473134343371433999596421050964199015150364249658956206971744847080023607233102380685640862436214840654966898204549302204059617050920700775573965259488943536856182473522605471299417341263976018041867949042475497123382278624603238776277905765535650169349659317977466154290275729758033124481341271609049720821052250836057977499994281426478256658988834935111520346438118956903785079406769033773866207763027868593416638140978817297107505599148405280946382246852589234194061706141100150476253027232005195069062772506197937380672706804337847323388026954926550468510829132527662026176177601874496557069653060998950876070979436551056394793451920580590945227787450571427668775421263673385317313219195820464762903311562323494428050987484647968127597688887348504455806776970309574508189957405794517985809031200032279482967997775046155535392783359408707627955164939481837322583600211093107197570596180923021913768663682567133880878568358699950371508675624610193077212341186298418365244088248262425550187616027652688598973055712905760092475048397411901607192337693800186915926336407489075948645871423289956482224766713407261917460308945140403257160307632169506049263718343718247580920404506756323450250350714114751807814692857629473369702427038498702883303958059289192942801778702636557590641320219613765618712275488656877504862107315176911408017986682670351292172429574541505778357167442233687348535120172470916019326008769985565093298313754835479110199564240428185502361638482844656976171101308097410832732118706944661037797273862770470387272905340110018731361944851061145333796768888512888767570704269758137688487769950815894676071900596760535522716538284066533946446348790390666550188616761041411287507457748587823763792070588555241257684838329135926455256576132914893513503716482401019664715160684922776090928652031277256294739920251626628029611359770377727697082609321622173617547173822084355961336229584417702639667216418286507863963939135761995045450499262675650118713958055150792245697022555963867801074257319481333107867751883789154395522155794989947316370001357912110885435071379018860110270567901701483167037935397624266469946347072944223054448226790558031916992534625616269589074843075792308054190051574977530838857439410572676025155302620359113691530010086476123157797857589895654657466909995003333820645816816987194536730567601488931074021425573484291046781877847123960859214679996580547893546185988293170479484596744432238560333679219151065851446952537572495359079080764815550789756853072210680323068550571466525696293157750616372211429485537533808484353489371529776563460166542981227957214923865500771870368949802747804506865040985443892642881065741960872457196966142154824542309340202675157152415724982560110548388559702137171245123802098305259027654023270960442612534380791331684972126079070770287599487710316832465863058653563173119972737502975121547182037343475089502165076232871178213715240701521003956650246878193101280581457008645439012455637761625379485593302449746152385210790338837330572985518521542655351961132802251997030830405480055156878247791008746602014756965325850265052193443860350142750166022107487100248177081937980901526294096342607626174663657485736911938655542163394846807042387344543001638193581969326555207028216754476194259973423730196670630801278300078313895562475869386531695451350049128934564155793717577996453237251005426447970296775317801995454644438071044332033206509316223008443141279869253912642258127433731183750604261176506819608632767443448541234123902339531490579352409520644514269110043886676481929031670697579273764134779616656864127348016496789825007240495840674654569640257014337303707006345678486191780675265641503583439569601776530220301933826521687461514214901220870339087270982849523631454585585360310135577700914011017790212150051250049446164358578611586475962043843721501328629798659071036308295000541284940372473716100295893033907347272837871074874743038468350986188407189368258541990690248522861280056112224650986752171610636717597454694931591549044577861509161681580826176931939450486151221648219507051474825330304246020229846235539451935030974545216817080829326962134487616143545164410581537005342148081121157040974799683348009339349112750568608842186853191779781931293789814540806638107200777845763610467001555323457984376853477751714225906018734952712499637809145358528633221568768221661003485096278280222484151142889062101010259249604727435099034928983399580010756532550073864990348690525621580873920487210554448183417314846248776451491490762464371093355254293638930772594514281184841359461830782160108070583470065889303968871774742626757140029171077575830432000786845045846701418707783285752443404299678467233914301680973190674147215563725019114751722929256574889874103105535059632340217083283737928611311004689692626650824520372251073919167032230493042149739617250407998705926138839961901568914088661212283834106462533308939515162970637909955710843246567616208565089757310058427956342963968247696796998700407735780538059657830696685216519394611443955705313779330441694131509529601920712751132410229379174234539044950271486916267960867810761881823277289565416392332420289664193185697297648113733430272610400311062690157350615187618377263480865943870488715872600001545712735663830676045397551000307860460902228263358562758828734084226086199542443568211748598030563986150026769690273314089563005624699923388987401940819802855650437008950804788111065941433511369804488124553336769977362745848041245534396270650794683589550393769960936024644560359378115755647856210863696559192546643797229066586725898751418433304707917350737556143227958362412333807076216462752748467618203742636551070521122735963276055431327379061842215256633037354161711506393280168626713730324766276560984903970102966014193204161558660430567910988629844717988403017342563925786151082475096059511153143928709763644761417953305496503705588782341287914235691564206015429416698236157033361553757914223210773163848859267174456560871539048334667163084103375103943459938150660022496343685120697405310080668349608061346637135774610571207304961725801912871103136668791910749423138220655908365084680917130461701357860471880675669777127659991589066252714213786738892812972245739570399415539347722844170473337058357472239854540805331132540910183298709197180671339870829846419443756629966611195946912192963307008738772688907417390662104298898807545079742603710510580347506353854960263536389949002092451815049356601967560187579700810339764559048231999132021476055809805165862645231167793642351494886134889269734247844914752752445884047968013356994486358872790348360007513526059708080842340240272380743837085078392366922237929222025685925417486320113102846193091644909099601906339309545851321305009926020464969484278443030124133430894360737547306360903663101657944756688910976356007525505761086799777245088509917878858909691017802030518265771321159187807448325266284471447380304149293203014126216404031056444522447808067186688310049765748454194571952933691262005245985059645715625729564342300504072022769482479636975449950183130387078357832312107321985880233715341431736514945498787216353276937393301766541514990119158324610823255285790677656820813451258425338666065558423484735700478532937164643930176338221666118714310144932948060750191172145771420241852558951620079024103297131772472649784048855430038078601664237581694548857879475586209171095015207102201406096616515551675356982560388977997429065301237009139345409874183103905046022464501038088592028239547874284639570588272821870810139750899943980511202618774626339153062396574687559665155437538958128934685643347604442662349402816104015203193336072996078762557970587388809065622632249556272345205701718230704350282362184581076817886192920484008732592814846268488975591766603591830364029131823206849271464338167119534353396318796404919713667859525079802958446467569795207430091023306674922890049965172725117471994213573311469568849511784404339293576011322253336165649936058489624686474788117299274937583025197456690100954436942408483154435607059938578502606600346986787222867033589789261784794688304713947990790242407346300344389147660554282285866830814871445383118064766697119860764085480521888228093894345955171544705661587832023083717120330017941529415118522615492112942474548355407067944014287530396379281545045927376057234172313457955577115848443969358126482454838312596724608971461738036126261175994575103884891282745325965487150066502306211251040842286863721115839148215282079237961909923728403078935647402668041011918075542391464708377801625419684570490533888086611999042451639484099726713071690742841378302251538308210392776682110033680511684786618113362226723561987566956838356031289205962955816299150999810767837361375384294973605021745382292181748212349113246179861186490888626859080913157630506750593271172323418344896473363881250514729107580675280199303531751500263252702485911793034308642276105826736727564194343666360575078434997037455289528794652712193284676903242675627058635138796484359890750919358864598990297076288649273545788649137854331456483935851468160321358166354284243344329244609513327506771595168717269001886260383259838495121023625521230227863090294295171592573888682795017384501508167326671954731245820797615112449060259200333522892409968360201535603586411718600483370357039439151990569672233540409738618842354095525221886728858141525614763510930707201528477843370471138428815763803743318891902249795738561065734785160914877162453339723143688656753599891207169122059836015093641739650684961564477569461849469303996733253779008043963707899426113204764267409597538374243413649488011248614969360519149471544644619779500463901303572223551754688556591536806745391887409165576930238674624621303178441566631275388578480724393896958347311769985366131448166746974239898277501781536771167701409900519098884318943466548253838257348246460566520690388407747978780183402506711872645660401435279439113850023521858024997923820440588752081467319584005695234992153587614863001915419613193475374989213272233508921317953004562647230411568574605534759131187349158318659600591886614453484085236594678824068683432629267788674186831153672871650107020496830471846279157960668478951866795144380394863310247856243041771916258055161903520986203879524371282769674636468801475040379410878944524592945195039077290622373559873823087794151372121112647647897155684041272815173551391273294203826786943742143982107718158867110201180140966801739819344353298418489783974590778807848912510081378940108665626860942114750941457870315001425944844669791649328705469328731990660851102722979493883294300979529588149987656806815483831184303675023248269062297512694058934187230605229654893530044476349205187696818559139331904513960351308094795163121461450686796479123695047531916545390360709383095898740798198466047902662440053173683647767017498362052499349529040250518182546242719101130980195046571923506869285071996098073623516333665271565838491100279041948406433265311593914745087634982204689951332386378292879095941015591615397769505654411216057360917956608411083840813777373610591131039624312016712462029896338124475745672137128576076555431714996890886822589003644205855362666015051826086420458288760647983461728542106016036105296838882083395044739746946955875639254839823088256561060808442816590674999659003332779393397595211833877559889641243395947693358103223442446509115316842815851306662634040248981205880075117615922663673296537414413924900495853853919135026435951239724226600198332732917799761303360888645547183686962942104204619606494149531113328339702905504372645698140028659717820170398633999243464259484930723442147911071692089846821886038884875228759325204833889731136563122724021858226219379449191244946064122657462493628016154481863952751854113626444287514794542513543268022828307736485902271927648459658421950316320103390030059524654658314547783201333830951548497852795295883860946502483280293925176102172047938163557824836816726992392982950545827388974785794471304819646065004193113612907766230342646979194602065705310244929633824132537384401692167150326359586718086413950931015746427793365625771040634322930353203070641360024273130789752078171114638672838702952545559415538502938942460229251664732963408250167281461676912629814467639313107284601185436499162047859647706592251709744478509319038582137857233235432010136473733762063441859103830759943277903829501408178512351737022688878606473629847399896347358562000970381823483890543655527843779026593249593345149542828648796251481512614575506267301675987588386809514831016368625102001566458385174274598549279746898474899608769216152113945770046676601809314523487458459794434813702027311262282316685989665518302152630198831581684630719586870522741384002969316720391448630256069712391329212788911019430891889276242913484763677726760161196670831395557577435987691087616974658183184944473698726582344271024864229609374171226928597738775271501347699779746626550417587241169168943417363310774113383372547610942915748808852855680138670823312179575137314037752008971882010692363306755473874965333130288142050006081885217369256872969026415824772757917604183221244925351256876264154324685653019740871930270624026499796454566737809157312111285951638338687103663210225128705665857579891923494851161982683724348376363587650743788823990901765644983472221363356134649455204880527554014318684464990673246859427392039853654557809399034558105404629983000868806326117833552311858539661841804075048448003246342605852416969516437933898031051127852165179784124775726849428580992649454703218946225113955399452162949673408491488817887073835773591615249387422293918637020797534875569091750431131288522854397728543382641165741179060577881351715655980660060149613599638584334306943159753114990962859046207425069320901624311842627627144983180461421645705024819031637199327696291073354427279241416386133773798380394801070535799996864955791359436987838643547203521273710725379902186776895110461640177181616614529827455342536568709129464993611225486502248268535855207948580892667890930633573184578969631618213802871843408375786102892482258538191860182678416349436763040044767298806430478665897577400612331405742409931087556537456331503825628815850193669914023257976096079732993252233740239259002062366029372539758885233954284901622455866172861462089733998267754158210675824571851401350298857698424053800251493495643024242033462337979823041611747776047592892877403628299898155784157238357950988877952163930458859072126885741215559567014776090148875232285862327983020144314866994366678620836264515794012940203319739658256432907953733870494291622389915927584314460652863919294005990658457196423512132480057314385318470788309177797940643841420376572816459048601211081478934498186227065151543138101272566132022164369501619226275490519695820626570851023354803022077220120627136469362923360237704036092871259608182267772335357658202056175113114074039612566288202025164218450055440372442347523458275470150277122000967717983013007604690470767870744532143259898621665108045432604501809555496056302807249565851573060984431249703685364949806707338646807835703743125698159329845840978617731072389673808562336489824116324421732628358049175369253339347541212832130623460440849234952455094217038391154459601506847602333784337669212223487311539505181414319205811844803700080519363984858903514905535043901065911387747437714508290038578812741472090778106170222286883578843803799683683496025358974086412547072423926917094033252761719523333596266240583449598088336049467064546496874017913445452607014667187025592603451299841233358402906439913813220786680727402136425006022816664887568181008866503205060126390888492969749800501292215177026534387992331818272970402436519869954510687319862190096859217224246014316107531013868562556516408106465352595274886117293895716847937645554098112199784835614400101492145683608443529451734814034875915347416332260519244956764067258756376613185425471731918324572386164938057365112757477943934429444893232283633240060717108944477969960203425880415785467264574654819795273865930790390345745348200131685860899861493995865545510327133386709482906011797880396696057119761400690181821132440518205641705003194370323477991524501201320930951522246864460651672577480318628050661899822815247595554051083792252823295862852122666695897421241665171570908283145923928546246410427530905055518972939052918792314873497259483590733575156534064461789843138241677524542016950628255791822984282674252106523977445127316561825817777781803907418428228581959890486222121693700031431917812253759055912623537144823477641795465619554641605390950949562120630220185908010261430554517192284139917060763275746199369638500712361468691779595553640382413981998200976031975604120585727350850351010665448937292793472765941460320352932285581263859035353675125241407913764712087303456154284629579780826297988570105105398752997726520451317413470484523609029701118637169937430197438051200283561824622279526101910073440994774094916144317393908525398527219305228941977920351525637136464203819571839134123427200307989034797273633779860946301410592788965773093764138289025251894332990204805048785153185975093490150782089653385109216165780822030176162159001904794354488125283933564597985691472051643808271139657108581563907746698893083911559961968042412160126467200996677859532430383832779200358265553653406531790011282917788088621785838312469735495612879550137848843007634131029075313977440662199599629277388727915699128510348505850083768150637891932588744100674198636174761715886789403930501260210620231240863206710976613462243415642095869563006522551950203508322519525862128347696488128191985001193066235717096844004694779134921777197189162243811653969456415674012660325565855765053820774168510561570812847527344223639832379270576706774234863941833120401544253725670116262432055847619498018586666744267676620906102912219650795513116060973137743931398193959449447866251482313210390606029100768669335180465122129568898765655201294992213882247548808328996692188528673995489948437142207828792926177098619170520400374331812233607728861804629698483305543820354109278321771445869369766503335809444989245016836267227577048228284224258584254613676753385281935959737293118121209888788144320992723751725526993861695431442463628019733975169940473501714463140491126838159186463219290473936842132124284450338036102023805478106122682242793343739390436344797146034599207889356809401502494110788813138237168720803780818140671187202927246114710248472946809355964875067752672282385463607925049006747418335731292522383030369446387678365734723106445846932691888224275806580588821246371756839167111717170959045170133730553350494622765814510826071649792694268340558155304812964992023535692893840010112640707601227525717975327182830981541776026235811969498048872366372884397512772534513329937373271290384208258008552542467629326936103211121124982834677092980233123802255330000228349849783339760690226566779092112573924954663443969773008181366328656514421594817190685855219239605119334161462769016776586168659880233193243174041038384598678097205099123491376759048443656846369897148506209409296380809535946595743376679163343004339871235243776585964111633440666500789139942451126057549333252553329727451197285867612386981754500010169063099463436916320070218133271812543232544424446470856382969410156946213547374020615384903800363762927041401656826876610862763880442641936877267855381560967609955921243543945368225767277323766482499452567767670236091428312853809077370801979765293643479052493799749890686029617716578562078473414888686853804916324707491460654558052488541223637899658959330555090762162188085183675595280910069579374653202350212318490986857543988758867177766158232158601144764361985345209061239821502891672558243753463620764508629333315671260739877727190988365345862445504567213565775367518311446153280900264402275469681315470131477340507862606126288608086663473324807661146074806018199726492690023373736934565268108897591183388251749785260205043717525291088732367561983524401924794932616364757719105321494979142861586117660142911428518806103478512480634973932577733714370034045608881015485127952603281971072796580800975825144172592785072581792764133164270940484115967777675144062861321657189053547458327703760502720460965212108903062855030116875696812525086397302958684202856519211176866857444984893863762871178533279849531295120771232152609659775259230615208908397067382720048998643680355177623627465849312487690780097493223477509645005043029633459954671640729978355337063951218954804159549933532386216945445952326933958596058051884562122038263674094032028100311957183224202491354088956158877840337750126907976406377206533011858097732966252701667723485565879466973349705824943686475614174861123223367244502719615575395207236196361219573798625885927294091540794415225544273697928244445217079909010612041844808305602381953644122545361345752406048157541517974918044835547351839139711822519954822448639998739134121015887036027952721833517201478375677324504143811163853778691891043211278764083200772600368111523412680039867592902960360635912330841551018526112126317575178097030895244821134036304422789265722899713881782222403727013593944083517495298569935211336745895662956511057089046793870022750806920440169790244215123204626137929280390061719479063494155499596062502790444988475571310535950662969213805800634666516667585329548596446246297082429002025801930867370126837328934985169277064088588855241796277645093678062671883257511725535529056003652654986714766234107674536661416320282603542434330068582154939158401005461469166251899532673915243554296930108717400877746133765941814320134077567053310380912263010833850619250422189675290108888704258197295116899086619336113004316273132546306307770980483998744408843578086243479216137633646537840345788316433854821664121733031314771152791067022358303285594084087798246748321234157963930597103489350880834726231943685248159525968740439720980387703763024582118671685855976989496545439199956079924025314870648319900219085716998263335362956501552230832326416132864496086028116884592367596865601155564644924523448738112607867156853502881206431381023088286561901950704720057556035401368270661812345159871733056564645275830420928460548811094098049419965340620400456123480775443910733872518714658324658764705586875372641730346976936398796036934050348545837715753895464457418389758686234104791968104091411084973404213804422446297650019839382807469379257624316846648064649906174884329246385612987546563469427589576789686982977548805883026127330789859915422120800284969739064650023383907831391753368115551629196734689096192449915310051532410109599492722450598073952505373615259855039575427358644928393102883318164449869705493721671638875922315379299624441902595774764045325812437085257014098687155937495490533567025521264814684388056097802147462590460289335372898923973127167260859603744053580339975622760206974493266806014332985777985886478839758801234435540529326997069881248933809708554723683398365763013648621084761842900843723854028892092129335849028377711933508552375735492600516513346983849072431239519274526617702038313826892412272385166904693365627856152067708970694171512219450006133147877756137325801578856904329794003563034292476788994131864454992270428265497076712324176701049101117258951148399439641319028676714338778735036076214524162612946770459653789020394605315015406304265294406000918549034612157259502607555352143613318876601357014742153692972007830601374737016506002601932917805053301909938684820425937671418576671247613467642721397075345351376978834551656970050385388173265128040777046486992083483320100583744176373889496085910136152001250252145837978133900008069479690415604276667446144586946364546696131764639860062843544833156222552305459104554391830608148895234336955097425294114669532057317194393467064666076861949804078845046690065445291350428605136092003335078125582388715373920025980038651309241209318032726933544972308475957677595226185985669281970600300996737509521222137980608822218847891721848110092950687487617050817644000005598183621832642087922713505726612326347728026276825189114000377083492985324940227795717586592867374923951120879080430883329449763128017101162410326139505200592140986215661706329696845771911920620308775228469615669248111614089350681546516558108376673566316809258719625603612923262524507828183483057565654011492131678662068094053260239137016126306834392080080934835038835432427014085965001946766420141365308164400558097800727336521944735410379512779789847466723498959277971041961443053465961730709635629412180300092220313086320371527770172902997483624484826012622093766915594121251128219752250837779574447777607296926863727015727386925921635781345132452250786528302521152875375588038719114339078233259973623899960520470687956636736837451832324954476203180187387347419323746538644408417401710065785654509950486396133648069958646794674753792218756101882140379466896032427387889733140428139842868824365299339416964565687045379862597999927301367696785458675312527459283026865404720153921552434722740487462673964109632661147584345646399005665478184605390250208442744193679601363926726400170926805178797582458249629069862868801461070997631307840312150584771439749997465155543403541040130818892412596239542670624332972304138755532943768082012371477189051832466550335989048993207502885779391041642465056022816442802619469952649819827382617135760155823065958955632668871832779967470482395473450941533420235869145978627518280883914063705480233328472335430620637627170759394367097114677637696873694901592068735012284148917078843966144871758680637891113375203522453484081125196736290682548178420600413837029453637231075272728281425464013847334256990334514549079375300489393460076863100329889867627819172531835007282615922033015206820164013944146182081445022341569261930224268554926549140100041108792030682358457427081137151498647385850939792184914202276003884955201350480326557330066257141075709698154472173486673403222918599992130141116701008442843445171741508391107039762296527407977423802882879380945145200218669772079533073049574795053708463187037131797624544512683843871507071040215860220618227065189276973262652485792267686760303741689692422411195992198685681949034007149213754075473576537110045553089268762901174141063025774920946658107172942287813099484661225188757511542391748152187067436328329277987014960927086998494270865955904652493601074947326279167963477117512163403198159030350044447666958860918969135724705425314144569143737985779157538071581790324778725139151732991419283981518293313304203627425818952325785220163112532373256717069029964137585677182628801649296474033592444224510080733904782460079379568255406475247711487177403931200373704281104730885238282144104907397315660709721060227705793591556485737916287566340428471257530289805191920557449539545651447601845183892008242149012809574487028861174671915556427004962689791908553270875784961883827428900498359594258114987472917453325869390692587307723017713165689263760082795790886317684689076829282948007667733826593040440865259825745046541685864809901563797027415332515775721341086280383256167966334890603148844959319218217568028206841298255793506883159247319749419440414889918010804828690884016544632123405759176273558366613163499607410795009980910672312587351122014633906784242997433013613344770916550455112869648727465499770582061400388809627512170011486977767669502756984591285981040486674369671676892509848041352674284962554382704181778402149217751857083465777343265345761459610397849188094442298576888251408738694443705707662392107189351509804393598198894404645247747376284561065167558272288178089690628062697800389144336268812030835541494974793038455415541699918495139633895081280594079881065466248586390410123525590781639731807395027227980742566792055628144494679334738534527395562260756638909783843808050380291899599586566937441654966665182104071813926518695616521181078968460109921008445620334581025854866212568209884065779586363002104020626850764736414943859076022012906416731304345214166352605663571727209299209743238319142209593703552544928544568533197745672488599661514185461715162010402603776904508458927098822702932866965168946938873515222688406160761484321924174849110903274689389061652604044227598039545250524010930020460387191228922921629799506332667802329381459564605188745961356167145667883384286416628480850058070250572507386144671932072296199562976878768382431591450001107313611760976143456460560043686891333932859248919872839753904167766369978651110759504878612419534063223834316679262176113146885887854391960264988259029859708810963980975325391591939803495007967088381856726078898103410054446645501008602193900419432740220254903655757469528331677822398809283911570543356660869188545602812079189970659088680808056745251135329933411870109707191068135051676896047176198548854907622430965864787610121599347424007866170040673062731961599394412286820605881826083452347609352442108432546138421702515445636618594317923167837144273786642215733097819070418756936618234573848649155193053829507846552829178620464748229246490610474321601858963057365547621625948928023953457849256674530854440430302586444323009771484028040758148947576546792941415637106973359943250771855422783799385340590943401964932050046808653687312210187360301385644643837357713305568388446352382241975548949262299154833063401282602319007316817396354510806913292712257465199649802624903277433183019596034235691205819686918915817435184155413907184064904682297152407142103526616445135520910217518546550997404442567830672806622858424649116905247199973151607454434328592444637061370761518375071316211889530205820244983195620883283808708093057894129650921531010926103050202091240563174903652112918425778531373744022289902692738995430641930770468274101856327179046350454898455315380782872511564787358862525731279493844847932198734308618378470860625795073329218829881202397802425520182935504053389003830389156254931317411298004403747377192589183111652362677177037234200812275585314411345222918067150462413041168907566396920928882480421479211524014531352467114060847685047668213012278389060071407680540158368552234076247664556475697803493962848077608793389009262875698652846632768154067687571885659908212683974804484727231714255766333115482287210076319274591364770586098306669230323158751960589942606522277353513860884167882911474893497233918414269869448500665534665849776301793291973847747350041936742165261295973776680976076705296568541215193789984886467590306733998772010461152941747602260677418693839733433878333849192901364419995310306200159584824654697379188541497360539532973555959737580024695767887402037999377099337169655063582400159121351436641125058464279508381266445462953317731801925605442401530079644916206947088184256465090882706806718724618363500270753502795415968392663034321604304322949399573395928973816692375114927077629796519719642958726912738900428909513596517596667257069501961166006199548126802824977209468846919962699450670673436719457533151661414713325863070891364401496698152396792176653270768478624462486806790030602632728614722432435832238724725851835574046602489747045500477345778930468372124701575396946890602222346472023407082130089166784070894842282989384734972533091808551142458307639805524427911683583796990628223401205861992657587955198894275908715806542701494634318203092222919920209417757658198428471626848393288466699028690480334672522704952779385066410438358233275993718597148423783107940248095687858849357232863821283384534662118144300178506459712292296994426459200448926772839352542775537732830024814354144308500077109698262537973778705937986033501062665381441646758064931492101410141684791312450372274868044636962221660031071380134795710115761417171953622073867270283704397590753945018008061953159167582831530604420735088112905113769241416830535609932203495794973907469171777466988057380256387692615056837813667936468610647266487259630828819573264855007480264250066625023797764502065993644039797865419252639515105593387949254968020884420283816384851599344500039745511001857389243145709157386474762746375228477717227605275873172407469152065953806042703427485743400974511742912428604332742831044688332821206602662036698273565506717315386182914518379012783750953576106552622613448105980992341520143529394007540385622818831720552714958368983095892020487632464565768874940751387633883660876205398573961390762322528638228682876036772313097958230201911059664515906347771853060387190643731787108677987668762726403877102840777770949835923007091581698555300226656372669067071401318094571076270075275328753650788455009855735498023176315383578876850508088810685283650131657582608864009856707891599172660333550321291218832957303539816681954517368356438351553246177626751260661486341281776863219293768059090760472505982215906509190249582756613914177210714129322889417527778494985955651219362642432316164931499953658083930673601928627384471224416575111077366200667904834984173765303761289565121397097014581489099915516349628589878038201905572629305368255428836473589040354380635523541793933752608782487722838516102982576183625897499151041299370904416880261688002024274431610345880489464693074305958544555788741481996681501431470461693182352133440234998077725537507287411406320225336262011113157781404714795510291359939794564282542698048164918670108983414784641924925682258153482326474993674367467441207898344471953328152717406147403724698642172088238711622707357669682591614910215343380566253219520367337638257826238391818927345747761940463779020905381892382292632926981178110200045038732867727977102073620070258248926126888594125261212055020655282143157980855977544576197871494392721116578334738227358682418272505644272955374538808274408202372851360077656348413534409080627842793432348382746571375689568120130554787960203992117168827841375202801049195941776130625871727969169176633685957378693030206897004476215276774984625872265334859109405520817128643700487251496041595426998696903695544391215824280428491742014020659218114976853229071355640410759690990293206625407684137845717423512261683287834919161146505906723819588980371455259067862791745102335969539413704005678750051845743195692246016314865956561827727465662990711534692320999692276664488023441044505827544538152682263301754581353843935929482523942821383688420674529179429983438142682425192553215744505673880742475418460129084362652043873674364952617555812103147498345299697502964000905914206711071629645397600239378298933953368951068844520744152185431706483307819917254119476784612200987404738477194090072941389403009234532459608198368502140836454490090572137114300514439358160562799276208211242876180370714210109508301355845820063160021724499455684163982928879317944924436305917507067037955273154185302293378762063573854976292803750283230799234842944803409706195319178331947956759302434346254928327664784740043883586360458691014828574086847456912275264565793053960789291853683643064767462250745252461859451831838622444647620367159703001230290595582641451188758622171217493777343927176150710161803457654559991814018817213876589590104019533191428833209971814916474544462415102485657588951491618119201430767427416097122663414672650665615110146195246513910862724670177636508103074852045449829414806591686022471712392987086624709821259449323258246441483287599443053270712942658681892161341664267955410089940149204053935464917515187271998403220727165961882960124491096633073200887861587499463036721532091188859249812947465711423664621421028933959861656764300036883732002505578574413597077580032318771564589116058320386221380232797004492586973152549606699178966287457400932997216486492931234876968355460604781193816240617478245653671978587187140340784106069563403950330493298398382414976646659690636000563814771471350633013027330694261006275384537277153281839121613184036073074700635614030943320992359253616917024947591201471340601128119063694327630929725178833377957472636974497232056685538076834928636427614228614244143398712466390221883135823758735442143966042282521012378652352778505162942451375955784703634733256222119821070061851269934184810628735530496104250997519805440354550533907219412164578694316614734087937873381995020266166980346892647431000157214987246770335567611996265040908950926286758586353916289978040534292980672628742807913825995744075652249948012407747838334110124455903442090248847348803237552524924805495802111266333998293164384863443591930362186003733837767188945172317364112461990282766497048471295843384759625195936539842663938595140187607203168620454498191519037397654675194361846024822907449936314387349248979789446557107238718838492702008006643545634014158479376738617113932178655576846264696338267993552850631689988582279214567541731132575182037712440267066707862595059619933620475704837376330496541721119554754930744521098348922449582936104985519471647808672647406010334264329611631396956425924559327435572513973405156679462975435262057019761841303092067371175271512568523399272995650410077626823500437677922529398534347853274061024446394634667148413208583266734709668963197956798400548028819140887107241979238292163210281129689580128195167113161105360277977514115224722026597182092043156476981091915516161806865155712661929398906348029137772304573451714216968887330363152263103262605378290338245319893228992683408589899864941019754640881777959836558877791026328905002293022194834832250052410250925170401798914539477865671994453676800302300368571152770414473536103760477388855364414173095655514300561874466264505902203553667245188532131331082681693225915755713086626915248091009643697145866070328075733180340946549924500720745556723087213154385331301176722739204043516362432585045220734653915226904653856544337695708136499420933151165208383060366549154704939591446181636370144855970887999533687056391823293701167532509433371609938537060498208202651231892845525152083442442683959118238525004661659115881181332149165988648529709611723325992042083994863240010758217669238517077028707256730456993609826511481071220261463898983875610641610059729693842397290846862976594088059028898787763255774585459502357180120806008322050600867705857024410894238558732528140564622527143290296684152583879630170017837797680414343950737264677085829781508285880002621818409830447921457295725603372938188013447512838484627314585318924818244536720652000088580338327234512622603218928357375861592572495049308185077046537208464049219043061870907246791334483780350231554610829329514211795354860558935804255172541444587439020423130116980375480664793263774030894987222944950374700312129460306055020455412372946078945955527093892670718097477109633990122010482195384625766607712967785018831281966402891178640654670342136790535998021376947423458961128859815663864025575547526794987222588183008260646722510741159563840178743114513023015306449924796960232602364502391500767282968305267091561102866053516727359216863427778696872982112802124366516730210563536068142798593747288502797893855196058093827258588981498757925503203521658882150474376532121433792229202794674580831798732394249280952073089654752376893748751141213509204123768040681460079405149043106452489216577814771987395487612635948688673648969242086008483338512890127478472901811147888964329299591609390080443851179247662749219259676660166881548345923606098077259843430452226350138607856415685853532950678975542236917752904706262723610127174088999196437876231564885530141237483286290057707462521795952418941638977960877871097670595942951463321452379740141902960450943027594296905517756998933284377426511344001576875889664850102683977550640861023959959869783447260902380098869988625957399273872167443740018768756185576354534423469916991668237889805382150969630086183596408909512719384752259593707628453733071541206764900550978306515045285273946851556415181073808213982716159621715448665894097019998733318995116098418239320705303535869598908768998071755227755466728878458635017040130379403458585282417516249886159835772938917708753343983126638538494381869761868074176996957633735511849513246591216952902370945854009167013381732935623445763742432768507272988517270814965733386709109865086233166084880558290499412130600499573827076579603601235233703872813228573345365415111477353700016818870469798365446316919615706897274779044380744633805947855096421050244826152521796436607486810453025057564337509579134264244280673214826252767032581464093100240931734028852836480200984422643821891591378647437171676377893687619815889898660938135266098158179348641809254802241595980065482261271030962618241158520750714505626958975509333976785895727519361451112576106830595553364898113632797217167292640242772544699145520674746031730673613170776771350560300162046526355850024654160369233652834025386440255999165397812974593357860492373998625021163376356248028169793172715645586690992477463872517028114100567213746823323642020125220675076662678266184580580739405305076138785888067716600311831656134115859265980038863354577850774298612090342670621624815908244885365359165551336733764288202138028468504528672388628830709494148077491995991638512098981317354164329510529519947324655109121806987084237866289698122189700564779660020031627109172644694282797934241386993850947773619936267350151115847512130989292473519171461255423218987563536891528829623038644740512441692979532925931384369623370953546304163098148521223314375504760370911817417264184522876478820791465898654672583239244851899956034624939656357721817986858130742998431340184740675625722729433119831194044679331641197768272936185363568684983677450793854350133547414846682038607764145158025548294892174003500940953188788004790173931931686485908739768332565768685776192040251981417180699533291340846558633385231727442403966101146177818640833147574459011476313027034989915466102327449627729675727555963699270535858516300553175474907478353940806249054260146095481160662456987440709298968209022908098745080881847862314300519972246741558844866818031339089500341710029690307421961607245869916812921844051805234645392162391795407614948675218126309085405661015127325094148025231796507575215136896901136859407059532869956235968301720715369786209857692628746296383960725728399850548842453844169294856539254869358209657112579969326586601800558435890027430442643900145413288741477701007216085233861701386231513609832169354470795682747833499557915580174427477210218998100761863023503246328274186729620540651626874270558138278624988705610318184624330023986064280414968470416235423191316593478045338643246575245556986508939671946545861897210300745203681946445844007733392175837456161249461351359574736970102467068236231715558896358935840098034077318459003794760350466641582379468658264416653062462189790775981179915200150044406818453591579091440597456346915784005261550289720664983923125578079272835566618058979953858816048668852222493426211818107472057967576154123961758814758495921698206186989040475295746824496523765856009730563314934628840405687552455521358412242561400709168905947390092852992634621750543233708502371599824399836097106334685216505342923203698109225606474325198193831085619104700776511219922220554842579214916378996985893942839401375776793624775450315233907940204833408514969290525658178290551035106097894586003803646889504226518088545331228317675031906132355680162993796648750031753872108309901002016768772644115400644832322944546203141733093511553923377361770794420915076449052740715120307996658986002505262669996657959124392843855623471899263876895852471346917335549518238332345302737890069393095480130271660388417165287053532835790431304912363850238799909268068509356504822973738898936148652182802069307826424006021806112347993164358003930116495102884509889668449222500159848500656743241803383630363211677497014014511541250598324798114146970527719245579980277741158453660858626823949431734362448176848837178770307706467130018498365522009299252051028217905620020426782436459226088949325691588017930024298540401387829670101481000328659114120207224413074741313958571442093571964593338243994361935003454528235631347497938987717383324826977461558257868271363117520616922528990666009527891519556956032028625892208087636991166466814330611437564570160989321739819726325503250687290354927731342004196369640277864776022338264413006283299136071587077542341482485678746391998708844002674527909506933680133414705452666154386546577975541611564511663248814527680299268891117381079488236161047636053674929635538201257948940366408198693008808431497687766347296208608400439001842745651042910757804506364339217785092410552401852525826898403555267865076270973208178029431422927336833530558334372404329018107212260548454653664954334514768658955582897686554555593102661567788179051684135239370544591335115102470499041951839439020382487576017318125846972171859782464280041840642367510394620158799261221983860633828074873976647400587072515664232407665256249246837956311471999804077002245141510294200921873310498296637793985677648639732323157244094997514713025428996592592143412124009271136965091603645570230522308503638510588651514302836931538780339311461337029427239590664711090451758415901395439031273851068447084162558225242313736077757871150547980894470636467772829510231909959423679819731083202058083205987970795672613107987423565788452175166310163967262320520957974444804474567265073197920851907775227542101298268591943881111193025597485798522897337525896666940458699304294439733897760215473597400398486363604662440335349635047896227079927196328609468701975178564781451706307260362815357474543545109594134152383751335675599960362245887793250326016992381504246882510379926872312125205213556534712754139194449841724023737686755757344644149203188031686864101960006766799195652004717224312229718619061400428827409503178973999690260820148910404378044235372776401477148568827311090282962681186866500811401886128202367501652908705778628034997546670325590954092152851818908787216310711265064266075156377085758612719700462728610533702730746839410783469763809057698431998577949881334413109655606812686404637750683694834208348065821749598923708349959325419283682369040402139343880242761703270681100964748412230071986435535884953930287736186346811235013099521167244325569390755940353217788680494893797833030110348948021892558582714579010146658779228224324627520517807186699951967117207931823566861117331186211151785601654172711572259469137625818907862666145945568624248551377589108638585094084896597475102852309527579310623532430806576104864506644501930865171168540331738033098218816271088241613220785806043711657704691298793189987758308941394405474169250552961389722301920048988718046022681389856507106487567750014046314908981117110516163675355434948079924836768356411534854934237779135170484905015502041306318509344020493157161527673501394735360158179656742789144314525988419034640066005220901285298529859113880522397062091388584316898802875528813508883037508131092136793450863946098704559594069612556042854651407247844143215251416975138460482257362074443034704437659054185336884585042108205176949681609281501984456143329925710155822187330826895227547673327297497264359529533028386446864606115821059866764757610981954878529711962051850137730265024097553720542273729821757149422334681481391945790934086100732179450496377550662995783791590914854045163828046912107035700974115185885912101558595539010382434983063258621566349328201881438749209773458479597056464228099394988027980712575363097812813264915843767798557868314894945297898347395707096058681618905603273372023066487503772547404032757498298048331172930567696207996841340049414546414247233028342211230591644918905015320542469403815586927723857721235733146690139818093254005299021090333128269269302081897729002196741543627108226824881001363256973936326868604145455142691050047799648577723075236432990266807395936872738508963007217173061889131287967692111203408707569630305059413849977409979559048735012654582512419283286712009628801425186247354418180007844098634291236536613162449915006371012589727624308290595328818960797771875899979710466471359202663658789406246730569482896989128711174402603061258797144064429511741091962461099695888419570003678953397710139405546986946138715818023498028113552927639352317968693966150276716682835833325385481409194253177739100314661827810139995745300142835474712905558852945059830383738044006630408017250672826071804950721469131363548865704982286743003548611013899033375004017811960576519761046796299579427186791261777795093078331085083491004373741696806520398200403313673982138879535015080273253152594009478470103958859539342118796966993996928128810483747193207761841481094100903751843838484742856185196489729314257771752227000441323753887187116738885849111888944533479596846864614017231506744362941514531972835273581378285574836475601856133693067825242874969005071988719264778929347546022720319421928851848324296518368993670688065347077542799271068468955145597615804638462700254145005152299390374675758207089812519446614106999442596862481077582000213028793454555389636291265390938726242255986695771713340586317518581488752555812293075249432760016101686069681487321399445813209118638081603364837281021676812439727231363613022659480429436268753945104356600170297722611231241731481561625356547883103931367948976888481238442931874849869552605678449307791724215340752224285207125213514195284960921959252339712796566542358293008742108677661682118659628033246046271668402481605248680357771596838896387915065094711770127885134427687686936066196441010246494830387158915598836651299545991390649515646637221319871526899483489402270915590358955572147389086010023898521385038198445200254015842190282715322999819888496476643068951693825306573600294176583415836511388813768435797071473418624552016520985294531237671177634053113820907956398737002580244201511426453533422208817294669419241673914423774634682336003298830110207972788579061024727303336494960189701867871313620192203765614467352710306341286649926972547474751390319751189568886153147340927751161433708237915243151073252987725989756315811081502140121841811254857976619656326884206689020477004468107392535214818130494114467510268618901656816011044773467775479331810516310761861740539940165340601057573847432178249302998958529187628294636894690712837301127649753017793925052731639649665976950039293891168954594421870745771221534320452186455839940901287811343637146575445177295469459858411218682232200443698703409302221279313562716260771814477691233530084846230784527711533807329500537256007501661934932502019315912554425013202140049911205477477120972318500439100236903007532480255128171441538384197747404181690804965736385643774367091969425906633978599716422104283377950521931716349348284140842004242065168469738670436863398771624981819860209124790521923860374614762215188802687115584207122142432311200109997959386101831657070001148394276662118005052552588112182322624728611723480205832135287273480217517045028243234994122164157850035735130342663265742770010414997026960642733933091283751327465093981469052183844532111842544014970639371035553778841092838983586668485950980500390793987638170932273895277189286071497067170305266196131664356560037249692680015977717143944953972206357526414778994376331728179064283288688170434794680850265357291172742972843585398108237392778129158769186818417185594227292325998325737990045441479880606097913982269637589916329379256384501537666571414425900697081341371105973797248153455039194118461592915413426534966237230638979689254571065529198062766107195078672145869446296929138140167004009948812531045575381009302938574206980781850940678586586774082837144690437562963742534560654982414873894681780921182634960134471409297403961021925171534104918299747466551078984172379471343795449431010468389964448294877951936100884736397922259780197187020408607917795847382146645359474852068407055480066072840821157975346224105981653658271084078498711704372559622666373812884571474353944861049221999120439672144255295113493097500759477686014614220607278299305805196151351291514116624109206292875010584764398319676619962880387122435065368133857903549008084311228543157037144654670217717857548519594120587329707694729106243328887871759659151185633522146153224229927554060570951836553167990052793562565513593158795736830924015771242616394588573481321792015679940754171362363428831835661809746384209448769485983106607461225272455908301476014217862730992096600292217903790653892980272065753522701984320060157400310954375265036779262771089960733369791191717509981176692676044812362711985481593745516102571696227335852100667912365377442474972344402323106476983586968316633728839394033211364316187641761537790575015870529918454900251337589404143185522136548267666070890930742392022070950271999110559853096739424395461865580560354531255530979340631336070094742573369864067344016994476108870060439480928420426334829585123822433739144692067959961045899557466867995574149746462717131311597649183339773350766484722501768559895665642318538640681767829472876509359255845677245424460583727999237840537735884018888132021160384597328952562860641208950072527142430221339663742461696909028959034337207811575117729182119346870821629464843040825179899993617981609733255281838872216655669811249047088418583270548521507574116309642507863365582828212659701929493547876487364904660961846454239577551963693626221204233855255293011825067084827999164888395219232774058907232064373969728203362408248628862872769065850562127258636681445376565500140585513280397189867461487149003868099986520277534681792581930123898555255162631063059090145265788663466692586862194025273343658438683339519959295939252169301898830585751846337792802468170716196869465082414941535971539501527367953657163277713098412618541898134537717990035888991048630459131807657337683796286179128766343660792611301667743142659656958894816532922711007280452924938864973518877594199324657252712346728921966776795362473880762620686948373922748490905688978064519971641073770268340872444263725738127769093904803288749976576872357424378995245445128801672513630349990162837280030529261710180016004551259527864117752614099960231438677865540243572405307737302815165414304032246777402713108515164278213653576720551941497441734678476174120509231459668695070225359856423638413072243603870983081886191380809725775993961791487783422491797344562205414071197328694332235709365321547474996843333046529293501869053482733702227768199595039988520609756236748171545686489278881748681431295707769130350507299048361355180996853552404371656024180546485187156244650589955872543958212381765919034753028710234016847752584470477268352375866748366259842254010569286441628835028636883185861977172799156400008317247508605366490455351667226043492768297696633395026270981143481453315717749448227509632280820575854406393447353056868883138160302728371408762944745647652887800635841957428229585099638715514981333490728920522541227464768285513703993369114552449131510077955289063512675868605926884828856175970682239293825826277430117408203495544045810469751510729341054781997251873091766613976981859744452073982092517438973238027155123814984372612601570266881444312255366468609601888421993188473175795522531357635553015893494401866090115670961606690158103591798442131204424939187146364590804481236081669758455457560009870283971868472128123527905970199959692588448298716381526499622459251414239869106338365274672023422029563034039723066955264647126483020459908419400512673355395643715592858699471083449791862198165959717771177985008487875938119804286892109642535234253617282450261182174916934680711587804506233378195818252257105918550361137975604142958248787561481172247698593102792542156209911901197674463137505370567662418945857366286687133209668136138157966991351647152157404506843080352147505619001466039664186526817918415160586816062713625576359772481292604623981482251418852251725405807227980563044471321635352652199116448692236132488037011710038705255316161717078411530775582379504964575478451374786846884943407852802254497369929848440178258852497646652425836270411520091412285202151645194643045159455900131457563694260081644791072124174791588155703691664212146571143524528035387297914748948123855607745404630998684365689012122864035813459307575343851402913596413437066784981542442861277938894841930910698013873642429993971998074219864838859400113043718840882645967227070986020427446607417000728735503539488649807162478122040595506797137852836342152128286499474674501701899631785553806513262498291294127363967234339358892088594078672085944074972404277014346925153276041911743436664967306226223842391940802905499244165565672886448871122935132224507014575329034135124649535655156828166470846873539766878019221526946079929510348433092799745921648228308109023757897013734230976667123499298505828346520177391853589435250432217785609403663640472508476846943497089622788796073754940594759320409631009300009575229974517150640799195779216067564649908936131742034145908720879042898931412555791115680104955990973859976416646795324713302730192156745243731079360571518630948930885048778618220701028794941493542459555380671865987853766201713801004493323838715218458951074289090750676755016262598954924813273890114225778303991012904391046219149265931989526156029055624148104232619788219227472907173425661357488846574042101317414487152275301972373380840206844414306755841795076516970143533321739497689737687678631651959880911160955196950348466016242538266147070564847394718107958655821780265016088340105702026648077548389659633219025393089395178944194496131946080164410438099264635092630120858151017738853266739247886722683397012696065181244700590219571631550615550319481568230789936556184725929349198742272848852199088144081516752460836525755750717729981894166283196162580869847792629955083131525801139955096232335901552546222391909133384368739477016410468048293892571022438310830269622888284655323924840352825945978910134769814341869833454777486651467682369932768720505381395492897791025706134395394051015911462892437842841724954960461063526915357250933887958669172923663392219721859320072668832676010796607842021362212854977673221103934569545735116470795871477293241111566779019835474675283495350562094018989063644635975305527012396594667865670963316141621240323196600107200269379501886954124164241226404118556364543805969057183071892869679286379604078422427261487175370947100880118159887780688080305543278848042028944927330356038668071733316869229606733608846990870880081395380127735118595893775691288724987582394662365320799732650421270643147213901921954964718207945870415299815800096607145866030305507819986637503003571630003188256502090737495128337275537906087071880761726349475176313904056872285351422688659106948780769528299794800958499672305612816684615284863376764712651800921772769454829134500411502428767331858519072712790682858653707326824841391284406484469101922916613985694370867062240243085724971194403470931392483020587253911497295847467285630796434684322512574452891531639487352037793230321417411621252803157958775518826332436927951301058265672825546792811228327024342902552879757311343453188308203662963781804790922768053041804528738636088475755773774936809471845333468006506993671009562912478227079687270358420433899952148778935794973531701058884846364772729950755370998439005876066367116887263594827358523881107374580085139413489090872989068528558794173168313496340414769592169734955049813359682395576407216252835511154168452930289462541021213278668896609743800279513264581084038179343240353994416605685803048839613332299739288627687174883504269011643574692552774270445654153521601003309657268963837824635955576031950955274081061707078985217206134559669265599194744777510156997298103085458690045752354621030053553874970949554704762221036645288295193317229089703796678516519269238092530818810738703369644682541559610112959095877780709607214944024288781169087267508391315972440520016960156558085878988749395862503253073757489819784085669249716258313243337859667079433879975790445505054727608687953315175732697679874378987083533713991867588410173227956174800687973817393385066468820704058173092623989923427981568519847205039387935887903046187397360053998489738408030283486396806439303213204723623580374538637445146768464757283575870021720743309159662159959595849069351535897185472281139901407648117637214811162849930252660738757318208338734212787485973018395199564223806045454925895425991907430684513363702676619605059869552062790675480354053474301812022959433687245372421187981832213735676581341447829225570057887431757377816050567953780691402024017069401933023374778573276439824496749578008723665874797747887139902577622815179304197863039799581176838138507560416301510485098059482418949880383114397622564135088796152345826857710253621402599093053023136500594919387168937524305103133838796496948809012409885587680714305084004039203234278286185660172219716302395164893808041826283731090953924896410251449136827677765722809849876567291557481249632999260397458555164710013486764937816412685917640496183203934309162531528698643810890372962678672607392056844071022239351840968344826429449420124981387032080720071596212817415713439771679064679171293585199144486257972936446962919352669865728437132645675104055633590429749292920626152343716936917622847443948816037965438018407059647196847929037450080740089922032178074347265749116330313017122119274652144699286926778421691984368101241023196355189270417742169088563432235117032694907557101150291632458279442071943072117712737019848001926318040539391612170203284705781653508896056660985227084727768218772903174243593731177452757955484826596276154263858700258987636424829907499844178739873705307356511595168895890231767657582073733686534555763522710473978011691887044231380489991290850315790178533003726086508766319907287860404714600769688788184322859317377379343199377752186369017648574862347404059329016598634386946538035650457603157109937079238418160602202210801184928341721437007711025060215435569610191143905612281815605162545563943989332444357171680615109470203447706467381029422264660305359814049597671899313808449725709982989067020830434825890768054343339008142141137566019194265569941483151765421921744743318348839813574100364792630448822236941360076555705778519389205194482206664576406758602362943201377008138768602387014569864409044115789197952296936372575208021813914079435924670743961577157384801834550147319735161154487270158253450890802871821395702357572320586758415479253021953549816916142552015128158697477348995123014938588287727344493882968572575197410811547503625745473364558602473327593545156042118264168746142161807896642034180275390419306587821136287187833065350471791162324516983807326906845751127439214533133074708661410579964177081716283470249728166923795844139000524136970191145411503864035490942220945825646745863944445020151112232679784624096134717019129315373274697758055354836862554718575473519705706845394215748245339178272673618133450946367586408956520301688815210254112737561509744324529289402881666572273546908491346074291023385364217073072023654421808644285849853297855628204577599895331781042046781167638243118464475693447506228351159228487858722620593658455406812192527451685686572851219595904020755864277187411429351583504363496855547059740298261659315555092143673183533676331633065361384198241130926315409099485477236146173708347353697917672116031925499398349903456625079868695745306695343900247768992418225924723071373693416153070396633426775347723413970530730497485837904380451126016340775534519454369661144673579091748065582063222051574551525359177340555363261131438020312964295036230728414309859226709219868537808619314742370806094508562802792907402257650777777053734834470246803087337195197973605120008041041680743901128512592918323936655120227243975538191292765119711551578348194460720117887193927691860239179808251598809868429716712566515248407657550636208358775776640476972583889058636195712382452893847711565872349927287622812636766976337554510069737517269467878839228953008437124919469950062762729934560864116494792642122780206957594367039615240944815915900755721038919736940084653551400771353732352386434131197934008763831589031983854385990213590523672247202980174954381761560238961693507777539522014136671019747777402083802693649924912250714029155428296010354365787134687894097834920983683676394459982378201087250373157118029547607247846732258098179498262481191140059759510073483185389249100976674212625029417988679334817536814362795527661380031557194965341556146591240865999351847744514195331281599927463542814169844740514464456244933457459446816222998419827736368388139073851121178548183276703789945911849456223828830888601672483002153964075741324606214417115500381961117938532411331949609047391607709679196608055530386060486951374920951167686946179005100260127693211486407895342114379542013354705479042359415875106738971013100794956812514466424198405636972112463064373435690803899578207801232780945066053943892488161601031575321414876354436163682031982240662327678382336539497049562696538947092415788700804766186285772645113227253461036186812280880670925027835536122892264444673578996578670015149336140692850744636347023859862130248952660264235693319444515272460719234844666211564024189997174445454965961673333487912681359707869699763045746320857719516688535633881685862866791771123699891094481100931290942186236811738682359062277229492453238450851080917751867043441654023657346567130719807882240099652299056983863371839492557051437434336626982785559992240964847848708416094174045645529636426649001345488705836914566709248768935059955562157216634991143705936744464580536005266066781831962127866987893602736632513688872919881845174728067903079659867845507704052783499651486638313457151923824179398516935900367160039906588234646630801538518656794765373712396870859320947816881399152081768960136041312000482318976413822832374531831868719784101678672976293124714672876087580324928701753860102150905341959674439654948677055006402520889780990175864756952558808411360707071314341819382208250269717345491127099786752254916651602143078052087808118750552495612834207932535933077429297256544052843260590034741100769288018662589126848065993522310498770797637128325502008949498505363792069085723247570815844156903988154875215643308774970857443630336678007189423494885371823880866411940943066473288422142362013353198168112251657791384497226323279523220155058074441727315313573863110867568854699603487768969925011249461467768489523928135787483464792175366413161784165084855701912232192535782637052022726647812874966917770998535721493213601702374653178366638606622842656171465399201400105151432600250267626444315866936174104524739668414321964805580552197099153341709150647458076111933388048018131483694402979421492442147274860369759427565931127935349460070260952744088956709019755019538627712481093861484205641896304861577167654331023542817631976035528922262834801839441108511606364316507443559970961170867097524431455569406470849987183901632385363869832404629068458789357030623078054317786536845425824151131315884535119232005054478428147763323609132608377224984589618395355544785333332884056308964795200970548732420313820171828583953786746352502312910998085063919573003348054527157745665649146093072051399511401852751161286294638311667394241550292702298673015129018118192398848296794643775953908464294341610616635640928037356227200481412439390005104799101381430432215979338423051668425026828466451600825753166295305230017659088486720240900160994293581375959950136999068043730027254927285557378877295593206070054279533720817436858914126991409356774211077361537997208329084430554611289153761252689560466753084527814564023204208813988891263856505938143956818552872837868498591804152871347227084475633443135722765260899104156731462384134457098561824232106036261585196253276996483708128352292683316655083551380159509799642475244161317812010337900620936778152800223055776176343379879600880844811063621204502716840444296552517953271935674154135434829775187678726882027421995309052233511986243414290140544419714952283452725251186696303351454514197483861797579119162232986532108381682809354029102856329259595183663197376521070602864320091591613996219791177634283982636941626886810423891290428323286966501952078035262184399688820024300532105039702852678301897736987222854530318843825326110658130738546736775482687962593812496228105967968956966624575336620083017348581992907787781749983267660832163270948923348818473751218624568657415154015101751407444975391168042809415859093347903317156357926747558955817673228635770240517541078360694063432167538635099801610577191009996274657656236925502698288086048229622051299327788732920794900650042755525517501844731419474108183733656293479905254245117909431557670592901983021874593042611051525387802719654728710773185253975300160893223868322263077052077441623628079647204971486358525917025580588954009527372107405398545522383035433452134781090471940940614022598217639751220985040672408381355103979476317962864166865221652418390403186812010325814233139477908963414453815395652824941265653099212759692542829313807708874213245965061281864065425813439935930744889734189407810312116241757668198475779082372479888978295272964652347924751030441755013304797749136718800110036586157826827246206552436790132634950531233742087040515765350902379182785064571991247620898703512838456256232321220533420112361789303078790834143092657862132479133949358231775893533469598324128124026244023456551406080502529130934172560940729142797183302863647329303838963562832594778825044502924192046641383799535945803493603426654571735776159938150512366212393734566348556343027574473506799012214822519845225114866372245245015690890992426584708006351739282202095779417126657713971100321322842577217534172751889352547155159319964395353192889456472234419288882404415151047933178302988581505108628519243920278628452146112442528043359667715222263787849438465051995401833316965678189234034652758027593564087477275417263854004607197644503098814701892463083873324957491582248813934454190001552948508665432456413324960092143928659803153784211810832539513668035269645730504589594674051728530094483278593510229333856746928984593692485662038589068669387961833855653409590838791293157114820206686364280443816321806931431228581142686858576537942686297095115334049221184638331763027668716163478858541178460934654444860422145660824183291554095991599235717940378202775270227913165354162313708564183190373864230474675877994090779797667189990224363240582538932765247139591451144887349751634569046477177904034521835372264760774017655224474829957562630500138045072721158276826423610961618196230636392881750127571229705239721436206808318294625769151702612673140470580720264109992277068048551019837808433844497311374859813383949159051078549791653025706005929326024162011254950235849045194978285685267012815859417184285696894940782448911316654933643663213766982096816784221766610504621756525869429656925978828574084615554146418775636484511039519021617544101642453355525274471451162942519994149947308118828170973225432422484705764195463121756564173998321521565961358070215888189770790049266879254757668905115959646569260984533537287185862838737300725521076046410662077387358249643304198924174774797896851187048576063051132357100926522527548965899213097078768529241131431258234447116005576958334455939742653791176562370146877375358443176086603909536040991841103116198699907908191245802171378597525003587882608616475196959484453929239763967296384484772015266385063942988526693831362397433668845754599067767178961784602541243419354062947891460984557500570700014800917741475108322730268131057951487361752116022802007534638072792575431760040326159923169368389141981559579960432652189234307351121348803838021165044025249571909159004924239628536316384818200189355472430200250224790542863360273142377767100837725998894567290455147307839536742302562015051537666637077194410397648700264125014404120749746355138889642008477532667367400039050955781124226874280684136732950688338987606206385749486294309074363282051262980589818081177767434413293454916977831961985616171401351328641010336960543969479319205898590367942691816519187560953021754271127383083526345170693375754995903210249884751945604028664436681497523039724027418189814210875556096227299821274527965178581815193475784112180751307508886737905442294178966324246086598763334097447369548885371781526906751274758866337588225768490654811783909957840626675609811315635926087927519348330596854419864396977660452334088721083268433594188064769998436045340045165243520153294841816078358295610735966902243084528922943514206691485939535471038571597139759224294128046745765530718907735736323742265963461518344155728422964838726872007686040185593426844801967990300680174519830678669155099916087918812013097344567093230309906010575403429432725095750926416326534900183251968088307621299417262256382292829842509516839893002588342570473065382227991910294393052441627186799399439480122898024762053190977291456148521829960354987265264352278079197833812685610785069599764921726124319871240724505202033380921933243341273371523165427688706545624273214212024829623909701107283110079819067478816986169597531222908763840871346360139613323354945581201140048861527202472292978165326235820538509629637952126524923060479568007044806733787015675335978176093249190112120162829974256704052098491590916289705007903032385953410764855394642772693886441586573578965824101433802134861092702298588879789817786172580917475056863402397671323605563505287992097503526577888623205224121695103566736324439161118470620843225787560071914993793434253550387477401305966589704935507492817473801141889606851413617964105272609801033378849672776551924210576248675480115887308693639313165080459114094668735983499531852387827337063959853576049673864631000815727958263607339406535392257419928524063739750538769328360551427326055673736079764198542950587025700657565163221873496469225460113854995645373848013112639404386234501670751964114331571479958476502870806485028336743029910581058563831747340091239892450460230050916187486596495783100926754045853861813470702093928507601333194214369450675599233128517253731172378709510213514640337933981214315622059219415092784761137834613146282831573856224584559377009612417596603575141830870660540372346496510169363758592372519355161189772259367439535683315557392582801655018221459196230444718026441652291963864559447400837720043695494272643602111429277655131065876493567971175364063843918790146639580572037562568213305468113959911928135263979530519102664982937734281623692478955092181112296093273544817993319986973457216554036512123942687236301288527601152609256886900851018611640958566507505057084834314448379952478133270030779155829473524259984783606387956436073293277722627419211122325498811858349100283941634431632760023230840000421484043808675529773978721234377513556700464242843208413493015705646541792016229531234739140811235902247817017124786369282637975620643829602519880351682060642567388816562958224941555430743530188764793380633898125563777660525273604794180167377078634905527455110208621750207890334348234426856427897509496675494364478632395770594226235886606106920808644513723305200676216144647576160229594249573784471180650244011271030329496879251745938612554679854539035284159343900441026967397945308261167406180340497174575058687972652256003803471215071402570941091726883826420541168721966878535269501301158793955888851129828680915107338314895859067296501247326248237804481658308736823732959740839585040505889991826545359815167443271377159067319060600706025194975139976533742072603877460955263590657370157576213476675739592413308290024763027998276808750636228949512296463025327862714424908020096008319675252286301208068948078216176745622430951948780313912475026640729710813866861660122567299276695209531398996719517000655666384313108684852981306543799235707904422825177567906063748234061118183680934868656441390225171428129754495260228942381158406003658059067496119828896976442048240269581335742388487723858039732159687955901374773670061478264229066112141471223776385430129104191273556490000797715611219674909178834336051564964141486738100527743331504538585450167043349803491869147346432702464300325545847489048896491002779425846361636149150189491336755149419590148619058450862971329417955759231581139353904248457342525314640735848671318562588817374846622547840766843748973392498091150733283920370049081918969878072539309367361334582356042716593442666274137160477500382621710154816314678809431569175853380998653910100874490792036692540427401601438750320230775801154739779673538032779713944787306252105334617285113548621363650266653417969133911915992987837190342451342160823109627321651010077705597659047812547346429877741491050438245200876221479994917218523592643671594787679809390931744757046673912104261451315419611310883970608132206591622208478658141842557297596623200988763794867583660139264822239160666049961602401776096128778543931304657623081587374684747370133731021817640684350960636315157319117877988504674949928990535188916994666737390729068563623417573906248518487540980595933816027672154041713258652219160302384214070659491706984691411875749591758588106183347904900509662569279277544635562933602158970832892733838986110317009246275324354448205700669840987632363619858068156705226728993443332346394087197357180870039121360032098565075065540630755169483624517535361737853486994199973307183872287054420100875199644747450467427984827440322064809668764920487617920120325442163250280114058501186577854161677559674765571113340762717711468536854546498293015345715986334015981912300544008998509588854490682463072090191855478536496966915975575831191066805009213996923839546196321988127475475218779237038023470017882627549026644794470797595141252877991010139997605636463564311826837748456643390028629182558948208134586835242086196198783245087690878792491060373119133273407025887778107809930249838575434301322522138424690557167788015041080345815158435760085422002572016739839328857764063952843005973943523024228376805333687176031782532372934073746993879897252431099243034302766341609512355286052886605480087761967946924259528578864080904739496928249602222696233593158863988418813673028561368451063107573947046761140767148285017027442596352929471944391057908476068231767351083107112930933998268791474428538581697523442394239206344586816789911701146098951263611208173435299288119756115629395129111752391384922716786861851610468249636896150025981301669551324506911510334386115350864883951637560631029761351762988543702794092200136949883136097626859408852898438445005682483870234400201435427954249902113801408824001872654421071167383203061963554664965091927630909699761156686880206847773113321041265945837571171046182489979296598618895962296781024587981179633010550551417456458144945755672302369620880731204725912595981306636866049184272448608953809524572214517035089559588860833437888686421108417755878003963784630494115419044417210112508354893753939377067509511874581934575747018636917829555713365029192492393637833058925230400924438922346277590471089774460717172515773560322726575821505831739584188871939627905134826899460092319485913698563021989730493198443310136889833151475375459880670974147653197459148890779931177436280221737364815584004565035950260651479243422929988246443487612934028941424231598205800026684745583503526683018232351707081088055699174974039707816883394636523851459994656961303299911255363290649483656919649048630529400816332634362663718458753998613633590051960321592108797894919687006484504228520970431654180650751421955712787900914269712013515499733621855644045266722040227547323143434140532222222412370627257347906466149681892798086196580066998264569625124832398122234116481093616999089197788451381591529529676099227864326716712652920660781441537818471609802212434705746845737924431900892355984956129407228033651919030088551174967175790686236053768526236845967090277229378854089686995143145464895493223616989461614914119612361343608214919633251060056912638699046067307501484832059984845407069756453822100169383010628167752385672792880663903355458507227027754265712929127735957244527612635880836907932549275995045813022502082649078434634148414621457172214172891105830587646235527050216049551737142611897792811038526602956964760535626943972606890757351770794677819763844990898186554675129295431061278575272464735925934245384562570711624759736773130088679600273213765026578926772481261480288552261479977036380305832668344794753382126087092327198570475464528527974035229938860365089519630963425513771947501580989360569119826325395730967872382499292988123681044259201600872576243414264397728344389829721578957658886535257107638204561172831496558020245202974923932218656147041157985117291790556955714751334208012150892481205279797440921610139134874407828547489900041964182322285574475662397857128133053577312475432931957391355406779758035999461223111780347772563157530396862165072021953168295125040418955949516117071798991458175216439380417999003730370271661551234643432997272054680686448526647458308080380000282646412536691539716495123262456061063676227503310799645582069868996796764527728037663400562333479469754225075393980815091185741341801992347248376393905092986353550526595019183694726052486276498076248911699190220638561468131319570843108578171160489182791241980631485886307249995270875312676827335402207491323437060077325002472295054491178080118558150565306056372443558367653418682331714187814771424924569066205722846001138567408618943557890073124961716375112009464617076398941753254259740902721482859148441750408751533986068997007743044139860778479798478928039222127443117067673556518014909521537336217512979239102950713582148269516426508903490948468594549232168452603571558163831738190898541745110127147152136428979099746999238894850061149563540676726009426828055183337345021910605136908074151064769121170057250038674989131493501417050907810213869175875857708704459465952339385364191306865916809000331164805429819426388724355263911003170002864388060995306258070522111557143200691784455545659911773683221675287814091002597563557023761214932993133942091370979201219967392093251241526890936359956188960326074126235005134125724244567362638254296396863035795548997676366774779895304803015510952778729412411982977622984898313341525816675716394483279685845204605052573966007608142810441427541815651132926894387298683343343874779809078962170373893295805841313047472721591501091917794207574371935586798265465252078764958525795198574995051074611809870760228139359470137997387512486551648236948526955499244635706675676756070090989388441272909505080323731890900152530460731248384257609857408791588078780520507778239104908341833038850845454367732957634822502132093534166067767130034008101000471654999427698872712040085441246123716501759801060641420166407314456719011434063476196208218173788008746958871139438915186332542051086729259229117327763267546440260068464670394929562101114936500437549216630206608150072200261529105265690779540102465938022058230266371749112654998514583811223409199401935760810924727736318187378954264179902520386540937392640067341034111138356155738060910392556779164280992581280917432987295198658395138712248446913701363096741532323388031627757167404022675507229495632139550710450359145197007694356448095203858284896363678646912813063363963809125253522251162919472740146524712664081501872840850218583629718539633363906896044878573176025552364289228537443804001571282874986743783450430067771128288408268466502163952798895003675042286115370657955287156517362986332248035045516148970110625083847942863643498597492095773169485618939718032185587996076409864846534655840101317368376407473199894364563305249373017439930034400334658141290333435165456923831394893517475002909842340656614407765753070274584285723839725921754197949271176462879502132630202456390418552458867552104521773808753292251035889185522971344571038843476077259165722939088528330775586574027119965433878715750115705376921061392184859041929924359514219178916353262767987295040839423552965571707332694249268063755809777181974983755282666917764881501980237363209782419067349449116314686840489605765888013675462420223044462250504061061105924484673674961763685160912291543103433050191826849583333653792620305839439379615080645576100131793965997159748365753663620468943603548454313163154973816430118218424714288709730210652265379706580188246018343535333675823022810183331031199275607169958982029280266120658426897472123166159774450438109401142891016166645749313202631761632777739787124649750570867718415545437960401925154423591217122588567820313237752812389965161892058810494069943821879021682189410848695478147629610841808115295016594955230927511357308845704438313028585639004783812704563444946532988019082383208726293633053162323042526840592575913818604650834089767751877646994372168394609135805626395886461240883706084201693801417384949095993024828597644721082461707627742530169103226924220440741567195636917873819869859114615411783284974434303480643977713609703811769176426895124132433420909231342740724957627435877726284127516214926421171296669243118949136513646943233255369733251496381115005439554296738827029458040350207049316155751160154910936756866996279697272185410637837616732695618388562628915526299877365422161645203120328399589928154977442736146282705800524657514468977733753895107644515024134012812711650464345915264627627995480204218102934314510468344558714842185249661642217787243043093597006790270981609441523056884580830483430847045257597682989946947013525519155622194542189980047165265129877464301628073129634680384003011360135779031321272806061591600015265681354152335914903359619474329877429701080041266339967765771119748286308050465008124803324731870461788615842139740318110537912477618238842514649062920936503704166412867844602678166778991321727034178239693845112160605015696280906201985309570660796021777690787102426444481223508111095090107786924491500806303338737742455465461066979854684321110645724041764959767790606473973131753049318813380840322554568996216306466388286566058106368634913064815028963318321553969429968282242376506000761430057533568229299648572666776904428083307635019333484123786328570126447631740640424918499367947665322288047881634125232734579910758072766700510929191153234550158940054455595705029056870833620839658760252020086533481447039802751844645745882401968652832264025701921061525477499238380797806834144642049661164774832655363992417074904448015236968214757206176583598918095617085051011174778186503982503120227667145241610452799301033896189891724192710784786352422923791830240802393588480830208895473815287499837330302645266515884193577905240893075245568901509463335719643392943825077125324434296012621844941612509830396731043858615821631509340055439630829129456114171654504526621851841404430907286887124021329053804572240893249008381321781327987751900512328584808844065018334900786223176512628915959026010878404003178466886296506947910384267811400637534412751960581264977470605755356169557763218406716837377834606465125122229602728330472954838621886489175578837214142391920822046470499480093329458956650589418384074198646688120257226037096497903565463896836982380172485770844173913371165138295789861942490896908422536632636147845157074975123889234022639611311171464784358651811141229578797394179890933183018087748240387682688460700155408346648918409078765354598819395500131493543020046334343582313427448398647447565267939470163693404097448738567517887816615254921415291606473047217025665191943856530337509963233939044501517226113651606841943267742685504597867700494983073144275200836426061087483053327121460266899966396855985839671908332492925575343265259834349462251973316345395854132654031582488588418644715662387802288623442254255871871148225839403420033349813496631218834186279772353305527819922647513694146287165287567497455185880187952460835431399305784503195983160269178854616173594136570610619548131364045901335691681707500071938562883674915884757407777418942479921669324598779393663846995608159293437373006986705289949015499628320424111213565889686359358175356634047748964376845312654541040522983707631828517210026746913339229431715761797661220603075960559797905141905197451480176068202616349299907639571849695670704940501598994890439425945585624387351883877555542540221935596236122270518523250294129806967364090083041612098675296381950115587046681350598190745819336608913740183442029318676933352577371581198360773913291322460176701960753317619909533258780025227711363263496586645681059299361488108768266059262404245168910539331108544698830409187647417667239318973461794690276826941730914953680890725806576740790058738680529241830537273169756262293420870298140747797537221845327234790822981444695573386696137796313974089870576256210741866742101935501074587946843881123458587081623152754005277734668241332572865839371897775164180618642059555999020939217252941422061415744281757922727610973750474844687075471869321331695363720629354171783685983233023374469368273217194956947576098672220677589064976235654471532656642298551735264909508118204365203380628732876193707063410839499706791037100215261703831729773859753260067693575970133487646930870472737137352254773313976756320814734642445756345564883760904549084313194863265172838266944723806958547759285267949675979644456051356899793980084439713894604609167836516849174598146643768948582758104212871527952244250809225135482061055889399293695768370496729946553091843488990693627358823257532619161899200433218792542201273803134257721266525924675652264457693375764706669490554449811092240429686432609059740996681551328219147423749405645569613537744171560390712590635442371116456775019427074453192203893595755261878361195560045306808723592130452927008410697475456625153099413960076968270225960787972830328899449552221986229445512772386459821496995045256394770806884148691564382406572297262760922372664500034915305177954877038516679234711504193099192806753917566682297829593801221239693744880303415065309949566962485569466990927386259729078308530827700681317157628538928659105375491013923188192054218238181331805286403728539836241804336409058928464795772617692194928183955907524627625936034434267146015871119300341066035909727552301251960776403745060424662533598864715441463376445060074144320968887303902049648570474099147938238718549435669741062698676319032501637821090822309852111130512095374785044998198543542659816810971577713676738442397702839965735590996807186112825808417691506808578116563374118197479926495857238590728948355859905298280036294510267038365396901821569093611753448630025169666197500768772228226910302989519288420911835529750206818699205885455018716560089855891272390658465758334043179944438591668469734249622991666686644536537506696408056191271443411831806637323201886760891227789248565188927989720680208111650764436835289409236426218687467639944520350935452971615563866215562662269233698752177655049185075661322596596292213921378406590836922506914934558331368595744973933188087334660736256678995698104698746618522810662185326849195589751481359963242814477160996155150483190994934906274400748143983535312625909260502970256586963629022494182531724395078638242716527075854736965411234570500995164106539614211446707687727919922103393487882059279545573168570729846960746557323248769937286472925129232942036371035121381722486621878503071179702304001124744278575292215077895898479465626729762018605080284563567282721734123005975443768248708541800644089810327073441730739181654287800640681415590889492058717391800093402469062428942120159994297873902749870534395846986713389833092523072216850495891352540006669240597424230983338166975287120828207678321325184723621420943015225513425193695792878116886585004959468431769633059151036177728289280081709371139621905315107349494496791072734733286077776723634765463705494227060116462341757553460698615949425776931118454295052224412315023228236226413727399867088734374507481314834918118815679583656922379281137587725343177136035776679321249370672169945548613726593494259672731226934359902828491015806789516534277312509181874914523314336447517492692307149900271705012102789798321949277205349956678738411063297771991960303008032035606313134845396144237755470929191459671376266652699640490882825211418495762590158808810886006073922919733588161773186087893035932180997049966843540487314420052979494406202303517567301951663507966981658181806765410012688240377481914983075218087408765013819974698048261948687108104639008872010826781749032558768697180946766276589252279927232728347655689426104415620221524496928238987959450618917310144591528353556666721431086571192274266002788232123441878074353287248948449024676251317651121938799748164605698600828283004686522870388262831001921453080086382691988765995225611056324023629827313043504928578242591460910604508389056583196434496852003730856738520772670664302623164607892859020542970797538736281212836531064416136852235781139643121948334935951453241706233909384648988567068815553956860521059331395983492201337822938146008856851723610322648632407861412698379025207238557331099302410845457272838446297830369940717067719751760364640465893060982414912873597169002850147698739012347616142073665944653285529427921494941485448313100541978690510927796799138898618430857058743692702877250101286583885720020133472913820341986513727635190445831775737240607255546281886105398833351088456124581562896363979401848575825938303840540234284947700173693886585598229462043267305747202849615769080821682732590891422919258961082174263304785452338277417834977532012786826058593365235082929485173745194142130184790168097100477634008354166339314217740627823247578241987617048517055120699488257864781447539764946902268406091969548241367150091131984638420805256331708802780765761465643638727215680473517631962309198382879757442256582159123458534329022837173367968960918235851570620084968826270586711675439512313618949105392639405307501691153853710007689526374485293527258047082062723270052678166834837711606891891373474352640805824880717558842888244728647799168546478820384634873331213581844920944039954476982951432935554061144324678036412165849558921811437625910295294711213572364882934536025271550987394523552430462499834672099848913859375448022404880162056198883268741909836218369033331376062071072079847611741682912866532625345576089158205277322704632411900821230702346006034716439100988086083774561199113706236863336221077538435048292288926205865732192135759772109287458232969159077698287775736907529341756114150975531682515547718640008978328461297514189543885133137229302525653008147456968806254577460006102168423602365577498013208835111799539627591124266904412152762755827561413965817455375511469348801846376577559050403847559418252932740132340847776613562019421354038909012369382586178431090021046291140081969995189435155225699746184813107203562926506484284298405559313264816253044133727229717404889979390923073161566214376783487670558109439927937278425849470153956021437432644363558175289006018155041093608513908738530710494292536942559229145074362384200968398128219473746820545736670521897898898708641694551212448279527767257587116201262561563764575554898618336736049516987283446335174784264107378602797008062176382018946708966645502035817835565343855354153288247938187642171205242817487376389402215717174187481054191194419578817518234985325761326383422660605037037658968434189416389185362802518163383128884251946026890822916583408532282351408353602134294193808243270801833034214735810755341310053810499817570708151606821560845054897718896383258315182412592247024516513842453662258730322399380465779558766774592541472059372888402018442236288129882607528463250597880808674780728064846756017395892424528460827491321650164412139975783012413895729897809486535525261751898563219593573634862489192397820842975146142026868399415927676611635973229084956974669890402789837485939654420214850599587671132213341934107261380337487183451558053195487276627789237107315837563607467951896414907145840010997669021201873070872860243483501305398236020429358203544106019145138621252049388072865632215646658369174646402567804836339243922714466719322714589332166359814635803491792964501387446192472324205642543645073554148316282901183750665614090644682399412846211367560442165187587545820984612468579658974977525405304671894843484286721135094575056045403349160389102817485303737076334817746175448081358018937621440492925885640584896264478755722161295363222329918433976151738803122443945338568413741360560262281153632490511163042865778586127974412959970004585438098989544030342023879149398809170865332549384521631829373592111543102839300477656481822029077243621111633464696924071624499988898925806913297212113400621003041062314135819640368774012760090316622723373058787205076223380816545024208501947418898110101669404489086980866349626971545569613698060769397838148004475487407912101635373489654250178663619048261304340304353271315973309789557920525641608476933175267300063304523965977219754006197728096917530534250637966738784843475020991670048281842715325775515210821382270640895550754192896428402377131101080647416171274635213578952875912265323521137841386175990372357307722739833020362020077802003246656744616430592249400557156624663797081928628323123356282074572016446071304047159480690002906479523195149980708864574710324251370564025080529554118975539673871537158099892877793565506433668342968431556199208014849872058183764692265694802749267758517250129513814905297485530863486009460440359931654738397334895652136223807288314865220079478229537720293841903952912540421389513671087769321815293894682439388715051924948546259254064199358093537467555080592654543549448976081140613186694546946337550522476342502051103309042200962064543466248605331320597068765190166593947454058490404363379717471637186313795913330855511043317750445934870015198799095303644201527253512213180463631275845738063516224312338712029360119512723325761699386953950520855533445038952886612034252313933482139625308732613101351421071279384213609115507074072001998241359627737567396688110405543689430134708804256317252612308529306533935691713880927558273439021689788616958163142671241129054116203739462578959998697228958275057078451484212783032139098282845876978369129999447046266417703591182557347216035312102941199698660924229576234493498781587585325097850301933338447267834443624322648887952071546385782605656779350955538039445657579727093896405345648302967049010338876428336872265748918738839607505794144568582421139775896865147211479787621932129335227568428776923595693481620995480863334060973544321979403843150887897704023396468593457623334353470507916892106561962959136929476424113861247077102916536908188977062492255140785692319681081816995277598334698997450470906434408110859143818572640817103616065247041558330621257338142167312770964535493879122945326848718813728836863050806291673785624532942245502854038643918221952282055493180458874557273102425866096688394759810994869321493818806712165843131970497643931112044716624986952082442068508144848157013625869067317853647747700143852796818124082329964531773351618007843116160763541039877985824131287456441402077308470273904151458312754901901224346427222523892975808087733366640605039931423001189598376706752692898463857068537698811262176796491785166595991141227820513540216797555212150780231472366819449289272583247941547834320615652610560416337959113816662836891016640299386922101016531369414214625771514928093841171196480071156994231627172416783008060383739793194049802571328621325267944220473051912987106428431908675236663854714613473212772660001421443601246960586678350949907158623676975767374903619297579522947997406655126235999522545792673303728785465938496049196883878207547546029355065005127533205598517466842761393037687306675525860548393511108515737839063172315687297053701816484884505593753345656633970375802770917144236685802803952145914130756148069930090482668066547718551387945661103120689953386016404462194574945631229417801227714605720753251783635900847785329904861517825702241886241470887635534204875838881874333626831769065743811490793857755159517406727721961427878213403309940541625407142280709122872965677029619955269786935492119388901058097761000538233028511261821672015193176336781962510884826012309080142314537711675808361708727222787165920676434549784749716186534871172231460473142703464284250151110232351658316181630719709784110796505576294705080275067939042005219719903377926281688835683743535305579584860862795872011261870700179416938981109124770561195300714371263084799310732884342111534504064533851115855453664576366465241117709408750939727384064817693567541732592524186967864670886246188390949878474300020995225092631760649758984816678935312778621312834265291605052793795514839081791795407593972655885746173647955734271171103331361556165433068324611952155040945831769142773292966800105007103678800225669454222770375135598724810874395780214371818354017182011513774521927519114768148430236443798830725840638760062763068670299858543618713328718223880793712833263091513248411900969515021524285381423126476254204269577700120784691062970400527989750661983704372173496960922308313310525207982380566539877219549286882344974363127651916160784122553231113791299740289249948464466749380402330293798871123879130258133131027281065011511239667110011434561407081221918381090399455440229998206244489481863865179811670385606624187834156320704448933152280881043857408370795607014007140583939868523879765143588822380569037104236460771477832905420727424865298309707054067182488310246517764037253398512963770395237692516451559943544784879511509628171730185716549562425387256546751802586839346780895806652594788749435091327616409025324164072807579524598898131095909415242027365600274550640738775066848473425281673704805886910845005302704775425830558942359924371250228856809405216053249977380198434396802133416376051595727456498254371190224774474305621275700783607610189635392446731456645130809653771723459909604991644044830515715571218879325086023279520480758026765351375355310194076540992725222204218953872646753185320712596675739918738805924913799269360753295569580776961331470225566552285379103175564382290115806462355151122449371263578849667331378823950658644097687747459674889707640096322349204078675821352809415355647977051699729414698613039511540865216329656413536674577402669590825398409925836325921554594725541683608399468781079209396177639031836312270695265766385448124865049223574639892994456102502283216708098764296731934650217108208891453528886093617141885896041457977820996743543679817460040199802967745976733948467011661979703802814915867795899381646892699269464661539543643088052251560646552566473965107754755026531404062379477155202822780310475090802791607695700402354501594545597771910636498552085079683027734256085791354518682603125100447262925776163090982782216512819396435586020356820320574372517877074804520836366654019177302299856999453612467750252019139786972401970698589924558549898410675855481673286724480812527345232648818825113587932013374323511201094155000540104550867747429474183660340599999646514186017673437531233092087105334064554274073452521642566757289383675721753499870825849545313337709835933508722314516181067072139666465844647827261201910154622918899276883206563175982943575709848846910664631257474201456841610964712034346504870925412308306567307331415384038614303067403739659350720649556729692672812362676160605548854288367279077047312661736622063492597964802250027666215995095233450418955972145739723977064880828320047026775727764405549109074602072117033848050015779586362743199476204129518370417462805470180671613076979453887166892404238038648352677281914289800625975600098053442700022068788203915524199095199494813513853981741782756940077591621180339141945834758436689658793029506551824407585519202243493921580706631921852084859776251232687642095026866244862148037224310811469254317582847775536167726685743440010506192914299640374440671916854003378053561650667928477926278868251785580873243805930623316263507717383009162740995634931077526757641866148990212479506404734807294833168659339794937096320430986195243565904522237955532309541822960694249992346967533984444618731979251841640147677258185499957830305029792794043504376278863926751002229257461173643107323770063799659019565576731872975952423278510677848841119235892691783694232661835664944987637342001311946198739033296935586927718293886287896514310172969392960147786404512140456309409889631245837213179913210519335212660592337220633721273594679090263103773573291361988590369559241650121712374374191687241581204980624271072107393015810177674887130813246229827178564205023007881657899048991415821134174684000207929536461094180872337947757891571375829376493057410135301794339863401434137425010119509710470064030984999561510972157656966004149603240200433565142814454412694072931216731889021111276876950013061769192789810352901343768445132501397549924963801742702466741893740625296318536795309536250185696097971623913266718715671406500110717088583532700838316802227235266679349082229854245875518959678922217430300715208535648737279308494378102481111248587715255682801050360585203376802078456620906994930412961618068511180626263574538289080140271015445317344463219130732397599153237890469701592468266793950574699204562745245568466006049430417458839332128976595516912085015986005667459598840378493037965545794225958902896104993859473275790446437415903872002818499899080029450718689812851896161391643453492526191158922435713776514117838698018895702147077483265500835217707450718415561320067160688277905668456982451258835919462131925674791287381415019758524712198634135296704031057631073161374346055251512342016979776412554284109074455571214162715867414637818176999398747145613422732237071521179630658294662383487748805771874586576445723480877727484900431754849208343217587048349216772590511217586353438661458444925214957366835040920076151075029156796959917044776222738067972594965668484617940795034697213473232282084597569542598828827177150462488573980580477817864189503078423041848026554807151437063646246141443257082823794195216493950210741624012125901893540313761766800259548863106026420915184752145994964498754405365915428774055111006605896114885390382027165384614654566566565920283820580247635978517984758814835818282499545780220851382288577357171981600206340520612052496467981049935191682718381805341626977628455119379623807175206327622835700352556636583666530407472147388321090942914680481184795651102871527993641050064346669296202138259750314546152293381311289897045658908434934807225015576568966497983662540204407306799742663894597415140902899684060525518411430957952596954205822092138673167504412582065938780954302436243434739638265810435792262733123867320484583814566807830880018809881363627756777129471860223955719187373428667626383302471978219995163099682348017805585881098365262789829941366920334697648053759368563854769413746130841524268453309700417404676207337000962471420791617606029131842242181654384356151054208374360636904242659796948814503201380738087432434610472651490476257738084038747649976237019438298492552224040732627551433484818090998904118525493703619856400979717625669256600766915589741210172339625479539808019501511085019476956409705460399450553626156178582724662230914999378212593074522167107189944925221347588164245676445013130130529019708856954307006401976138346495275843149762565181515973475917302191552904572737243298363383989814597898303357217115982107184611003597743690037889612126284603348760025708052545691254771814451191603650420042349992650543655397718369584116598831487727396687689745553216718455317575802477538895072505556900462081417465710446206500472796921125966849502144165003576693560071333936496088052579567466587435175480534064337055204871580777106418387774834776194255475059758658329135638727607354377593365458222863672356609169319601476100304382858491021467138486967530811200514872764809426636917139754301365350696791068674378429342208804555321606623952300557058549322460606932194165241145633929572804056984686205831087497219990729106424288193877011098610675885091586510047044476358697999797964750837248755591351151823028062256199115390355554480424327031295000630496494841426969139548170070138345144083129545494530764208635051920343851709770604695992448409729494251437299041806867735080707654774486271382496180297958819363331096034233656645914411779805890934739194987866357765127511648256472454868817747577173050312370691857151149205250935467290109060597593276294009527130587594099598937106829545130740557370741927319851194518862941987178511343305452922487190666069133351775465509328673415690832228928532165641482949488898546136200588752495144024686923304821174907452855386004962381218373760823717451911677648137080945682216441147235127413083573257695291965412042872725786274765280086393241221202718530515681798449800470169950442751473656283950984482246317545868459220503055289065290565733579242725757616877468227378837495419727070220206194609608917902030725023499868148321431584394687087761501482209921373749230336515077842803462784472252345998178687498247094104048769866101128922798044155702587836371193968034443338445497594280513669363913304020371699806920045224895529121753300527899860710268180028348998399013754750984754059208247383328111385789321865840281741699814048207834031027708710849713154276440356770886191327218140275400244038717472322009849508322802528475532242237757298226143977949985366237864165823634508786932836709068346257676396061714238487320541990033200818831493199283521753875973515388486214422450458991034108316385469480001613633883986800757741334429583016278874175268736605383895969783033949070043813654388886956044911242823296274726620852025631150848669273208049796448083144702849140264138304411315615068257500028115714915613432806764993927082721581185025583886984918599197146467168229608923991716247640620844953539267573376153761735328721125124979935610780183792025749952261714719934122620950016452841893175653868849095144540200988441910865538984844334305300539639174246893149263813145672449287842541032924131531556437830948733937740676453881407293614612756657483229454398266075001828068551442750300584482878785433961230066260381203309681771939457152326140794541596053204860099254882482568984063188728473225886527961323790376436443538570990930600595224085679749332636032452301035509930958718986929540652877971660548640820136047171899427563237185502723646052321566372186545979483699836522429496981240029020401504837546581832793812710248992886408818556431500544817260000351346005164879298348361049696842479036882029612618689439488812184998868124169167673217698036489641656009148673811898359010080135142257603279322569905692878600615924812825694686455327029791251846759122904219318667621144137572947957668878901781691803584015133543818437325958673769860965744819798049698625273568113645629099502463675962901090870280464860455185074302158519599757634579297365089973284124025073649816431467078090335480289972827726525747886204301384618642527725868993059056537678264846892986374512129614537333303949874879447420808994252236279793959285050461259532952228392265919340367249159393086494086016882026942222586276166192943683343733210740352389858728927012069022654222095659950857621077103806040549045852013151484102486032753292477453828620358687461857658487778510460575861320911680340605666709356483489668320153792828090401901449087047074450907325639997064079611429471276143204213003610384217084566880913818009826033459123675792166522091989277103525844807784841810146743943208862683110364445397585126258846373162917210319888926073625201792823883669447392229090223321432021193272780975573516393634528374374422026292925689672126447491709526153530213069234157935011264869708154505751852364120264530807094466059444751045615558998981461361198781174482067832959860985470327824751880665420984282437632848494036510696640718706913198050547969261976853225423505426609304753694853401557408965647687839714855270351260262417230651606748708003185666619432987472569757880434477389497169276800804267761611376317762578925850236819284798084072521590780338085731340574542955588498733985910925330986398269462902314509794822002596686813046496665751720532132065021535157413595367691802265631559650337567009549485031646268602223308851918125130017859816900486581311104354038889023654765752154939032469801992128465746494025161054359104024569644229600138975769149219362955726744439155021097304171934383359118836730311948079072093730392277272546654726770885148191007323876984421271083772954474506762855882856413655576826771698054235404049022949849054643941108855398546142134088111383606972036340009773295446816148145598591194874643472148561317963061018120660266751197150498341752254607669489168105367176076747106693641609301238178018496112562052503474236717746245899174683024880347161891664879456913159488286876317799716257989809342434919316407593099341313152991852711149141783279121215103451000332709487604562317444414822891635408440540612433741089026366461405338853136526546127875787782022052680488256262076100309213587296621638752486402650759023455436034965375524721987323588686488222152315339042038186405200951522099497936077589380812774430465749091495866608219274649658227178242747238611296470312962952815873327666149504225128825669267542349757395388768325611651674116325489871485448630618915246789725088665431182409613574211415445487705868661278315496110072546485963176936788378587759523494854876382772188163728816921045028986571488748427727012169581221806664577232487103410715068672713761195017078756019580175801149579894573364549355438061306862862806347371353136445094582614631246296714190918443293666431843757174053506126936156369883759578836306280554910630170261438352466746158906680483401374280389660990504103039264837735107751099835626254576982666232397350818145109953488694394680041072415737379882133267554167487153865598767522202584909125323866123665970836412134666041110859295509507258078340305729269575841693821726409875759414452361063671357170762331286985028915490381396052454058563007047624973897438359304213092419047133217668634249200422153251571948407250723607872136870961480808596144831980971971984261340383259210137753166430358925614111602779433121773175869251900078559778868425324947253185774761135922440955356964049483951395432694992028596962319482671586224451244638029406265067076034301553759431655194336406455834488582346503014282397745920305879798896542209948337360038238664868621146708761179030588559372779617599803013360298076178537578264134728565195121617943211254214308127623010803427840146104599106353412418091156178321331680975141059426764535012204496112429752851072712781255017145476735301857064654358658917227522573382925473313384898348537646735335731249478260548161542153160108383309327514317837298781512333821597348589168835164284044920885445075379874699757275527576235188820103874002017319911786675675262946638544312026084681240964883955375323826764999892995203738205377219844761959746605185342776341048686745250837726414199743598524616007088258740719917548288165413645882656576209529816905843324208107057121371047456065341351941101402888614760940475390513502229421685712423270926959618819019037489453694876465170636312222677035934414424721987832766478667851367340714913676284743019523118403699988885951822671397519476361867931642067852303719391534604292291188132626743831893988491438858841642274753946170919075537102496873761139483962163209642996510794281179432027282276945669730279398047258865510482470681678400854216941263622091546358720229415321929159267224320045017706344693617703624076133350678034356465050059520440755807628790647716698774257558275171983607808754354461609816276231970371395305348007183020692413618598529260060304820480124491513381949696196616816264072285166095500219902530680454414777100874045013893124218888648105834078998783445183325357132889455258049934192353234235260355177629898938338268660374336561285931661504709653803956842703234179438616928055666779539380249866295406344457156189787373334623244434616776119561250221107525732845481893875249730425792246238704340616218768064291072940292975723360714900952869198545638543156707759321885632224612555800090201466768525930027144665879291327485675987629310783141113998233263155136560171123971225781866120585337729746627779280766801018075421901723440757388998847905432506508115917137837697421561179588780787027115147271189620633965458945213910162284328954580959368715533107834086120052660445078386536986259010771605270263452602218913302182826740031575624531895244654086540127576050374515321035967951375874843130276831749213757282434058877108179502916565237896992549147297953536518653948269037228180354729144758432227685310568462943247566976754596452582731177513155898910889311382095197958559473127111759470515359110570832017452431787169410636616243444833262242733878104424509366117785818648560901875597273719509531712560188290873179867268345723710144360409700749761822732540818267617400608920417727294333590128142682636212541438776554435399901636037928875910399907865124774437351849715645010681075212626107757505601377708192051204025970131857762907045893796110419693220856694513914052975988988720268097717525348009139535285616318893773436226189044761477797153625279196596943770541813996811679833648665878906643682307525790326448186983293718362127327512769292184508672548177518599961901160221898400345749564203457705042902937263334278272742700119374671158672244708431448155103872520227847739198167855115356023397633102245061742143738173890047395887971345619533131923805872808128581969505346064180968547956306218036447518018401347502328669059099761033740639100944156384922182157256421365745425841872375064609025654561162959464622414971832747798852363468379236298774337621489833577062411666559641918304470881719143579398117984844434205783483242718790030788155828299935239119241527302696981356977132029912251998904011383057835421806269557351599007074592580602762336848226753621527396269027132234944821232767559793736129417064865118041600839133911010840602032171342404194795658752549306110759287946940504486165765952197021314351221842680728790188029054313373768849881239762523810745666745707095667071035594494188123602701731607083685002071257120538019591430395822282592224681195464547979052206960842363828380586169498810248238454697381369454593756907170474045085885070809599783732975341074380932568746396344369315392269237725679573314587784521688161647671944342686581925764076908733940104215830303231620747403944998214295585538350530775392026363917009824204900896478660340112236209038959438660729347931806750387998822802507621552935177562759106107321935100659162390611433321467183528732101381589151674826163164551058703290139138520547769565522714233643618300564730056898809116343573942984406570703224684186565212753943792062863265100554502773821551335992175738983303237314686654791469741664151328538708373980390081270103950232999296183285915362370315087985348131430492397750430270827575252319395478380080035197895155270622057355961944898369275859584006129839575735836800033883525256835293737446093507129745236087452974745248195253000051013076895903671631344464523936711730987851829322438197302798572756802210846100538343361399617103380823245427746843117659946608404327518749302564022076553143058336616476854903427325721846585049020596496701707060162395213648307531766496065669656384455753448423773841811252790973047095227158827963145860244577957490384929023355812883070896873875789885034207640902355920407765093263975729884902758615133500739444731092374786294163255644914256903034892336946994033118427958621178093367011369490554559435174502151484323153781870158833351913681496931281392661870329209886643742728563920376721883275014030826847763934832505371290553991645875116673883410371035287363356135453146025806406988401661622082991897475881369735129112255135732298408298984713121778696734867783707781022926815450145573030069786137738135992985300189666780803317188932993374508666570442072671061677060332870814959215209563439606597696574873101005357670697272607282971411314415441944779160399820007851446788577313111949083646193751063644149698912284038184041938496841323608726359763158106579491567763526741835545509370192022142261153499439643385916336645673043763009276619840436864600651104532446393778371514072618651108609855811009168528447830717213009115765483314884047236301530772458874048159504462643498967500845608546649276580281928926221197843513203842165044826568258871558945034111132359623215862925317944530084245041873858221144767655795340856073316775761141070124649834974453166499351577401529171572358429225162680653318244369981903281996342177341590124851433778080106477601773868372628443320583050738539324337946017795690668375369282675706567150370644685385746081967070616488085977601714190576104362602154543738772687660656563963962108919755511965002140194511731557059448146092690276069612297705338699144295625047495174047467397920546230724789111028031879013853152120798671228391770141905799703101968983095839806366724032161499851995462545159853680561465188797124694478446058818708339060702613870484879709113672236425362227826162069794043341145622144376039446777606378360228545633011455622502399418554425626230875788225558094348893254924772191730236607919955763456497619011402196796012770323079786479193463169096145488265850717953130027381405653040815596784447648604991055180090014307887318311685741311164121403774052209400831968929177685213832960813139557951590965681054124169503116154541107717817689854995700174355379487900364310348061600317292230538404060548658401533496756241647193933898737670586292732615256074646946630658448751103755013081799490675068618044435102769219127299474586443595807013654676903562302378868961911789348563893798009687751737010831495014940554347097129179394070735881982995869491251970019944830462955940717180305128003597003155655339021088650474084128030274609330810754663786932895321070821875403236915934718128995536264269827602141950110569485255578925157560967403421938814693733054327057031710385816858635682328086659345267896472994101187360480843484451255260664982277059079129581869774330519284520064187016209096627076149166831143752077248979044988730491416627466988073202003278004878379141541517839646419021116055909212705091375282711942133286508905330856485467099316782012965177970559567406193512765946077334314189514979353547212831239471290750433784107939673058500768403569702694317813487880030792190873801279687809921844313814489701004434014516619579120875228426525893809897000361584317899473296182794931377311414579465870404800029665337842872542966028095602114352066167170931868327451065946003907460827135832034010374628455100642037207681634606854593693142842723107717052868825080636517620102547227611827052692138225117000707616452814566100178371450693424498784344343488233328407031679643569179929525536057146128300143553782647523211492565726450953142321837076502999507045730347035260240748698835054759869977849575958973720399488307685200850634861857727376415113393677371180855898348526908850241729570001783010151107658403756405595924890410434302418535097057266872592668583240587999402990565535646417540174277605165199181648398152780512612963315212719856876765854346884386263121069524526418348640378898709185959647233681460122733615178200439723343825815412562562459496032610740107682488837556838170574803153691016269109747699077936938461231906447287228932856998800783634748690513116724092625120383719172278632334639969207465224929170115816453563813800829912251248696159885496342476773652799715718955077556321199698310272864871734887088509690964003241504053082592341952303769221824911964276713529131460464442305945033229588989225371458842473870605389193800564052970319314093221943428881423732163718115069992590185324022502172824969518581826780027815633025777791033203253527525156518294108117966652614859706150159631824784345721603709266261218995090231091115442949133220612098935629135115794372924708249709566619746892697753948254073954008855366190425021005362766859030747068930808952129788807671939426068634530866828685914901424778805418836621488610425401397321448862655077281979001260854486713439634846613700513612065812210905791788215413636616197623484554680359582785692347370906373226874001667604352753827495552804978245024478216552110129891000556331605151570173224319208071892046883130286454697574611980457156466609902495069824862406422127863736237922607879082569384837358796762077848270882365131908080722337067661766140364159472675145205613596952366317727215408671516239330864202608343569889702357704635664900791635954164902311486835574486604326467757170173335693770649112899436747217434028726305599923223965318415134015916413628535985616140365567094182393281270484971913101623014529370004398559403305631996056905473541688672027470878046412863055398048303017109650141780408089917294272329745856183811688472572951577889011262138012821893110226618004636497788542525532808555188425799908493895359614410126800334715294787911425081694522818277218687066984107312014372278091869019057616573400962068859322804412355794601129895745987367065338702871072056930594925232302818838492660212184718977056926747944986604920317310241752650953661098058015160549690267242993853486038812550607438174330514674774793593219050452237753542157520514148938959200980782305143401666513030469578770491133882865149951872354240322046821089556061193686656050233578373104955735428869945915984365925722826043123667269225754852809528545681027125011031299126451563478698396440013031311912432550688727752905396670632548773035596568511435830056989260841309247167408071571528701614173993718066907007046805873376906527288571157208408221180143854895982762873234496757819507859690423655319361696180066980623269219609165977419493030870478628845851787883638787012277159706686591327703763781104634377515241378633987580894829333480572389116685016686225494874109989087922468411541002216486695790501477238152521674895838229769331403645074469363384998488203403078020930551766110696283267802074071041030192945614247716709125617104521714853161740047395262158649744858999399767386546674807329274652128125773168419052713148288463658167936021545446563385900715882234396540788711788927241730858658701215652913098131795139962078407669650626432389227111679130723387677957658085109700594472150469154349147013375031479539254157973895229082422221879257290781784161889710700579812084185137792474874644306760467396704505169298416352729143973588734079240478099110864936553845233414010203937765593267016992792538863213625563978494344365587019108631319271003160885855818961446388474559317233986300100708223299016583730002580063971327884689810830751487652250129486091952704585052149038279768122893457304804122745834276440705828838965290084829143244949330095839933435011594737320904369430003061910935691044248593049130729494559704428203914176297530003635389464199431171811531646841245771527979223747402321573156561434228229535518956560843648865739065409429774430172602386897679310627825936906930971115038828232633947503146215317759038534961778915393729864731282269064275456975271226573078137961941253197710309198471125443181622114416065706283220746217086018561141299161939443433800497788497507700859123985778980273048974749183093117721685248206446530794503090041386786961792931946312558499639089306556452545952087710131209374865216599698703845787910319417221838321114943986148022645663862938191140145929332256316451855260571157770443708896539829315073539390522245769651085957907757543967483542646268938950528016044262496498811961518779697817709858034074269952177267848400510658709110761537332760161752333573422931191538179608094702821350104766667291292613905674944138047761705624396276640061262144069181900294230253534711623853714885217952213902720508030594275044949998324823791209214815754505668884428255690371216934674813682757604285009359070400208760673983296176551255580617940312891314161151787447693389433309669948712321038074447930702596915935176946290089638095053515810503247334169786908982515492856423590922781830045615795076257684910933560273362303909791570863186558185680142487851139050786766106678742023196650258927141684080464693451752329790562027928935844061041186173922720652247351895730370460678918954727779734346489624263161334003612283923781218075011540095333744767862258166072508125849605417957547895875158687358733024139186134946840068964590787250236410320680003293383523008867651832350309892386466393908064584657697577159446468854846685320900848172432900188536808377629443717048749793627399152336654056685800896661385517748929714998748932193841477850389410857875271637126658372393980939477207734350727060286613711948109947975141392058473036810771406863118176317254049101541199239917406865896121328416919545436493435677167629007700235288125133469211057787157770033101483328376713574899197996650064359859549283344392442174199420122689243135249816074641999705164361706705589557734455242546269041792539185680102899455551029640422900384071410593975665836841669453494737406592401494439856749370872809640261977775024169077296288668458073122828723470638789550153714994860572869585535858050508092834310633991115824779883771070107165661882665083372756388032684342589062905479899933958869613737644839064163432753943055840543443755751915484140168819379610179855743455242725019515133798772053769245239864115166928127391226000817248160591777322927943142025839928607830024452701847289918924981702296139710033427013518754212619726910110911066944670420812734938672745637352788457690319413575728070959071090263876576676895528614201352367909930727612888801049626389787756089119378274134075576222535837504892297135984704272122524518335333194366113185898783595256074020462699660889953841338467870728211641536494575249828621101022643973092891102737765260104893596545548930961753103252990086951989035999734758168060683850139882553571464364431927278034786984167873268445089701076427931203845077411948880078663509318968274108228904635606627733714760614292411488602653813434203633069431403046287549164797561078971674610395914286987327221396348847384226205033837644112856389916771071524256347643289161810156507615877304361201731147012113678112616780131978064297356004686421240855925651786529285720622470829126212168590820701173697135776072606678572676328563047262600908234834464445382371040849500442467410362566085373404195403979811746690262311414566772587522072076795142490900005037648649597394471293585060473278480073232130842972582569287949417641547948094509121638658010609701414680589222756112969585613476543458144548138028733648859610190650007764003646642733753708053474682910404153663716035895287833719432749716556984923118273760642027468961397040954524910106469242059516252674333528512288448844636904796872570875156681661637133538183487862796822041552149674916525912785747502146278844355368498439776562698044684893174389521804103829217091201579104109096922273513140915379459262307854052605261567462791083892229464014432521114735069629689606743134333655828457765940151296110776428814734532374032776878036850530330265217802453034841593062991443727711425557085234742231721165432113072217979469633534358145605094555780585431628397311768029328468922216270339669217619225904021049895460242998007841673875952144643510569813300480400053528676319989856784980831699308662005425814018758060486201472715775785577188344631690001349385752456306769173921061962472971074314302211478290005092708732742795437726521701778007794992707394075634765604563878385618426456242525799537354602372534998415681202695252450159452210897872312133044103321007037766962892108507497055060490093796216868609971328599304487315966588258522789529509556049807116624998785015959772476022238909313943711284963384323953719651379334998902774015353053761457799829925330847713150873572303779872126813773868794005480554296771678516342077657764581082836532987602680195261027976952825390857480084161802689555760596097946237173647996895478144437688175431799580260498804083911439093808473433948858197330897874074373473937613790798739343453761690070966836395139311069239407551993889097519020675656014405206313304102110522939243591897844957102563140622677856431162776818166883341140627701907204860630326291680591430354588496410558639831340591261097231703316112808616916616534362915323283844050204803209718679195754249291577583084377775456002194722939756738816733355299053828010732432468526589118809198100174510468202660875490783656969845872741947057577203194964367174811715114385083876970922615169207049783500245543506784706407868288871034949688202072376981090516204045129324473280050722403967759429539479344108191943590261632054989156491394968439148184583206418392666141124034313727148472907175512455069834118459113372144677959085038581775940451517703652317753725059738823697497524473141650614027971615299046667286218384720903322757767713256953001110958187449801152556494117327902706619009289213861049997045163150291202260375688604847087392418640752840699238608156454750747580550349319702877245281181848951907122881874690546710177824656509141219404158813840664218923266680818751765513161925272674274246516868404352778605851049813165552470809778465247509285704209434185311966937226005449678335551557051218431529374139628230372638821279730359355551163440256389336903957277694223939980360687117261687127242288838487133579396223234706032172996929521960448901369516218398004267832404878820931930139100192528513050604769334583706591303898546079296620526365575910456589880506224001127001964823748500598663720606974738880970222905824496385915314090845954819570652343922878327621489700464125820826620311376295863680813371939756600126435680895546917786046111136099592665788970236724351074779048796568403906501135026034574451248604279759200044757186780333525352463778625500493179523485781640310850469477125683906048418215892295747442859202413081123449028633541103221015738439669960338411994307261281275989752141439792598252664404561067631326902695564868346727226663150689611657306180540379234362276409813118245442241096246866875767920605711407814421809214763243413180127386612222563746248276740197084869420081421470926144205478334855555883943057986500246012191644462933044449846130072088787540178149477184063294440740592829595087546576360435325661146994988774195637717520971585510821690753771439854194648194509017738715042763430569536875457774341623652248583545973709543645846551301912080068547458537517698798157239440772593783040440080366798925308368576769216604476832039062659744647063731955606297084759023264406488150732447931704846466084291450704585632276831240310110819686142555790506383034168214479288851423048397746295005871650835695267069258687742088451468940126917353819639124900651121908091148875906080457670388336481327483891301570882523369186625340874015370421408710698815294247046069128084704410832650154017632042803679387830168656185744524569181011471192277905907083361860592587323516168049658630869674964066697640103329258377108107681247619203686238218694770930760261047761911898868090247668897216185132829800838819433242725917226458261463774314037819929636078831549708847319134933344423082635492413697796715131085441595032999984230798955600692729376027968659547462179922798810904980746434075996896236936914724029234969563934573189570606614851001090471757376672424261684694551741395423339973909875910033976392831018609116614922058907288568980980303429473144825435875745321808669638982005090336803414658028768687310425430428093006674401707495690287467797625857602142228003011628760660246882852339386866825812353577027015445559298285633470148843928055107645344345489839920256934942717075796378042520016214581925252379119137410312742988121416553211537425491135500893836052589588063509272675564856911742477670226119328468193101316121641798239375617773199644724868468375046777227332433533853173249267241708934813791170468417554698783052093998029282468898688290335988906333830693920371077632168171170200781978727534934796441156275660622127992127067116182443566310740344812093570471043081202969085787030450005991780470194958545508748351914589285872152056041733715501093469903612528929827809965015494443669377674481719151518084759128214022602262278068724467947156005294227055877123956408595117776763518163343069860585089240685194222369746435222383595777962821170897320104293379662157869950830373052353687802429619927650649062652871364663109529597595486873675107788545265575565576729637639545339159897225022198562021658797244434960196924763774351094506083823990103801860451887775161083449660291914067723050010199350481649675122483094438665168732463545615439872691995542203780375853131614506164358846445077665724600093339881723263705653254485785768930460785900874312710987449000078716805549112178364080790330812407146440551025723072002931437186224057556064025978167528916520191533713530067545198039002639926349464141638675496108479062633707171593892403014839725720601597802024349637284672074458878717660675220127866948787356040027626973820931066972207604828661012101215764510847519653239838209595493110769424371988588929245694311247884098165639019221379012729514084656537504321670972704664726840807892541751306461889608142628941551924955432748617591635568443948288786160187022518419615779351638230579521997777908947353857188374660717421134556947678167008871700503396054220891614841048386443268477241922982220365595412018897986801613005129546266477443635304624311341665490105316731882820583209617252988041585128680897808159756877899245093740185397783235639341981737528509760764068492317760303820753167840819860261309721553585403474095165851722168030524277278330774313547442519209829557525658174256304586499840921402401053604573471056373402094105243675826622477755991687506285829482744312664658155695230104044750901625898103827030312807422984696155488974748711324564704727845261044420575972916972617219609540930941275831033579119395062357857805493323143409513330500788316682796392194259149857752309857119084266640752489860566744207785317580634729088043168050630618147395647873311725468855406220467778222998297131492218680869246757682176930175050411940948898085497024112121379901190817461603530234823112683586543911982451334002774960004253847963111385310446696045461048721171783444691345900343978416115588481106048191232084058809213102417184754720578797852698058731844732734987183413963565585928385833121205603522430267575367787495761066262540161966516631589947220630643440530429970112026887653046491528385138608641956129554029174618846088231245910475799141044718520493601137787730994167737052961414945790957082898525838430713986867417777361868948720931946804016741890980523362084791821608951099036557954808184828055300325878457087289167970716018131512111779870527292913835603425687220513646617076985590073380922185992497243447394107746187717586032137942565131435513726796759602857651818936407313994173241547239587241314162935065298937835996859741499253351874320718082896439672531534254712625868326730602928696966047863057274021401677166987755652760034955598892675149110981999073700113994229857772605618786663564841914192020198073563040939726482671112558212217303260155752699776808164446172963291806675685874063939625836253037899762029354079067489046778540294102463977564417190366878214007738057692663809872873368666530063529610286496546668977656577939833463854579139299735081810669229221810505874351328662840197378386898755547434602059587727081398161696976725186324154174511523799542678714838004097426161390392960719236062046335402475506950197961238153888594966017819396343280261584392395023576133495455245918904039332354328124209036531502342132095286179406174343727015558613965005431356810816369632748878826951869172337230475137932249699212240673182667922885896601900229395955737832054711527883476383824774220591595763852498826072214941063500333814340188795210997258816188752688324631374747954286758936921546849660081117356233100327171222108825100268899593355769464997166652563649257029512750293576391047369993720791135048056489555232470567151437735215594327934721622777364968054625502436927544024049216253769898510148850832372203889367981410603724592064232941185354664836890830875859864110588966876806736320290299930449139922131977673577716929895377627718999096011548021819653934104258824155641687147169008938429329068845113296462301362268783154920547734415167931420477024644951529654983604404304496975673763817853170475839412325384904721084626300168521485004909045712122755719039146117886649926523403820265578897945931149399623518363629012370000215718492815046215153324400083510349808352978474813295832606611638049336054600099765668735908837493217556216060300205965266303014023867309136853584843162158623041237677062973491649022708207294029272664867782574495257350624772562635007447784068058125904924300718715551742858879582074016417641136406302267153189235871106100053589452052174368582393573426911067648199004198364565077210845163757386501662112959319471926852592893887858103286925510695150284220137491575813697502448312616716288993973021466223576829039578521556138091491528342398727429063112827125147028757394079407261393614483001756683816057418012104019026096615677322268616626468652411469366859297592233166887976254474451178579092079371352071526207619147293073475604866331608969711739291112742354946493901561093636557863402584709914984143247264797109243400168546926877841173747079891005303945455563054021624678602364181909552690973004892160159597520140795096779615735698953387568804580530321479753726982807628091277585033662354125889336220206803349825808777517216897165377482545441479979383164170282472437050173117600133496666534023942860600323393772778888293863955972349414270706384568076788853396427827901704218371061100209977431246995864406744415721365726479740538111138734900274705545160328130982708432904090211866428117548042706950799165609267493587137923183703652062680679692252851595859827205478604476634777434944683996573395607830377959059610122178831074522140604208231673989546535490607520611652526191836827570464293068504535975793625956633845164357844859624865604969623096418236387993913883677313859718447430943887746760344943653962810209693976438295597206591261635897135217608648992229274820007369551318292423306490430809504018161029750206158975579171159772258776530475957914961257451081160370570272529342596385070897752046592844962854155590561122927123808826046652243125748164320222957280600003272841466198765346973705346745769039307497184329191679396065073956012449493034268899483734563819481392446280523211064397880510870827912311280134700994550103934332680652760103563226198019641939561539621686717676807776612959014885828851776298802703843317184542418994876293719354046400861272929034536050141343554513765415876868677224531325037658225802906492951025302107523467132637845167649496864135460575045658911426816298562161400176953268539075609471348584420681786626137287351110992115260035539331092259408880548188353909169579753240696055233975302906556910028889727410349812126343961866792697302361422295361446056328111806145316350954863266196690966798495825591526013551896108205770840097789712601401263166359341314831503665062012402911965569210437888682193891844668743360707676072204997937013345390655914213045777453450863884550291254781767782331356005694750188999200560691023800095531019497972241649201736421816198678400146289707531437033344529161640304218611477271933513138754503519293043167335656781957704627836620198044364748931142484639672564003213566914283712568441983902903107844994106387670414403335824677121031650714294099694438261656384155417126093377267353401883800085207025954303031562161146120620380847118180594021273186906868002582925756204190093899383986189641932587557730690679691939081592691616836262362770945228417706100662581438539545836803404935903410012963550851048188609320670989810333824664466196936553892848346071331043778120524122999790241036186421369808773072471625877473361813089036998989289439175187946455939109170208296896547508340316726063557278694013841588621068268677688356260436309038118201103677657901712756604742438363891196843190557770309194966448888682918014732999000809679469874280643168372852183361064810732808223231315837097344562330008716135273462954277250909317767289101792193338554053338943976273158278819852889973241491241308045734522559784397667415183568498630556618392918398269938731569470435257695111017096602328457449644399951842092053941835226613195567158510665024803791426615229772858805611460354826338690672301330942775170370640501439773667248190948935240219066147821443408648337227038597630080028618815632772719275936153588202907033220913693125558860671171441650010027974826063543942516803067072543973285796199751452683266776588767118593882247863683796155545933529433775937142131764004760054701422702991013213220397916988033289926620748976575977343806538352786480521410807223469006419245604410358085106248467445520924405075983520692514954032774613151548858616196208463865342233362386034867275681450632763365461952700883219047252732049405701262975920837683257104589022476752427962677873679838911556730931064974933306465006457400988113961166025036160512977617308416012881818087012791439731337661906274274370138933546458980469962142734938296431681392134333610028950101275499665018981648303861846984246027403162797282928633474978467401951903170290926205979132874853991031575674463960785623086244562048531253280495557219208207301293850857929826180671725327810149501044729832378171468169689715690370482694761166934458724357723073559346815562157381705638001548338333258789862932071871651743295267839373044873824995392335686779051998861439156018931933588062301995373746778052415388718448111539697797752436942606948143623479854170823036869769234920096016192439627801244344369008019313573668739389884912101440456664331100309996836703000341027804592455255301882726433565189990862304586547056003426426435693779039725095101256525532631153839331186308119273264346874330182559423262289527628000639368344228388387711861084362441159810806005334383472142383366498485329145858601119554595303304228091726585343356590541563880482605776931748129608251819269494559538708932824245321936357925303354513050795857759802792236631381054647805714828249498563636395954464712169623782333544541467360197363646465211037071136091836571968714946908008659904244646948876825714786892465083174679331222153985538524681932682496681801941925471039033692850234306376724626567151187447210899769633919200865804692360882908883741754555548644559489593578366483527536585741506564272790241069511452751740663128759602799536391997813549621935767188777663429798545181092065163755769383756097538863629143007914424148834453992701805163475401353241458824444321334667154860742331763506565964677606849825049177715049185165605036921330429385377629927368397470021643826054130181408997330475205221233541316732356610360974963840960592424764802113186367140875109372508675300387261198598388235102853101268492994964945805295022996260524381249175887972872946540813234710616743206590393970423010806017822728309009265800678456949795317500842690752079005720494181682101525743456996027526129680012316470414265431771854687726537119746239132929973879586786004523143261762890934803472594605172234890952927104409272809205943423833582441266421605042883526879846139353203849052377845091520343796106310304887839647270939968755508903578012778195313150885456962130143103855475596395937955996624555312624450992642488212127908212071681573898249738687050187750093008588019650941888301935298841398539640187115037288696081496770063606698649709465083271055873621248924622844398519451452766542876263509052632445574056797809633418961366700872150318102882878021559887671700082842033007871198952655791635477730865286927590861447463363287181159901409466622402660872335013683036601703485990254587941101548484823446637589875174644659073692033545326796780563142258815752683940665804175594548988311254762040225853038113226661020795512476268851895500554144594290262073802072796508195891859611407501135909376307660082340414426913629928971553490602326361867977881464400525483667819818364586008722205679366589561974595565236518909817867425719806832226787989088262776938175030895522352545859678534449975467460144492684722694251134991514500211308371361434310726827667820027652281396747881579105959201514283368931848926827528278547941390179929420203670449721993224492341056976114249086407400163806775728676447863232022565865202722390012065179264566218765708611406037558978303523239496981658381605033468997402591903552418818155041921778969665187363241052981065895996273683850017869352680696738718778045995976754425023982378287279119109738725073195794796582585397841121796639039225292277959093172269570271228594149957599550957456290024700403438812161454847883745198654479907097332230887125927806115624689888388057702280632460013147718375868604215741226913676970922771858996456511410710696897018279036040461055810010582170675756030290841225675595512599090480044103432931751828137781685021370385243175514592490678713159633830707484267839888111672381035394084800356677794329136369389423759818346741169902806047511126705987857678060384237669005738476270966853545340514245022302407818323766561962718377517913423555695458410622668730751230842524850456434871692191019236045738746237576034022315057501839871797133331218285894357925351648962520636955769961241010463386587984468945783758131859329247468255069298429986075259633181241381566440814740139510334516059305833428750720635431388385635363257270457808633688862924066919069899875485273476635262336057815058621306262518500166624516827721495287750397754771697988180138976502873693266856829359583696713990760076041591059708742827567010089059656006242040819077927411313910453263172216727595547401340981293054703925338491963119053699446132673721067873777144638092976213815816586742486483959382123317467561638356999881421892381924109065309345586373584858826909061803949281873971848265371182315382532984806881630113021058965384015120323362215823540909375829804288396256313168694898504841605087179927126099443144612935950528453852858671484100630464422107957760670104605091787116591496095656684741174458853552100351383657252680016466589069316021508821745307785277774335424805032236438255889506857592423485362171971559224728137937081732072927558634651808200587344039190075486265052252673794775789873670409888331675524154261223595062809119587839086895377281011577171761820298903323178453582346344267132740931766849792465910234663590415718821774012556394751453445476601039996870006710907002779415196677091917930723919963829631089608295118456577793109713976564542654758214244065141161411073743166268645532556977029213595782615438912031215195562407146521381961591193357409953836217475061351144201654858079291639876563004847590780095136575226962218169007214988263176275849737114575738200051053592551546983721953068078146381173618102317888777386034104787169186373679799618119745985916698762076355565873121954418481356173058128399809307308060446859059991125206639526511216127257911096423593032446084690622153279805096217828311617205413016642927177066165535686317420853819141706885260772782908115238770785045908288694476632419447714121689564207093848306915516775392768755909316695421158411945161439818458494038358255411843204988369851279587969650750173407722475555625534771030554063243537991619763203422040822843225419716376748267719877778925404523299836244135214157867138461689597404973316402885990357252669584257840510593659363674337992880766901633452624037978004307504639028979150048014614899472260830038562247553496419814991225700965077788401549884393835450463482979046120047852552090976422611540354586620534028696666489213629737878113905950705107410105358601956775319738955875141868552623181983996821611496512523213893256133334156866753383310662934360300221212531143383114141376091755673890415615915364584031653200272862992943029734390610666643792152307247946228568970356472418684692643899523174227601789084508441118121326961160881287834962360132201207780630130411334039459256399434265513253881980288908322526102284869395756200761630234740493889863335645715481845318934390011865650652918791228387002478560320883476955987553373210539736180848554905228302714409587118309110944247992435814018237335861209412689054505656021112477196715747645256231571227213603493958032379457209299052914427481480390440754402939572533347397795770915000218546792167395777804124171132947218777768466586155703301481388354542539166112870045964581776669704862059692906510565988084295787342587594321916018653928968148775079734324884209688189243899356237141767622712327277757352125838111980322945637003712365913519478855680372160646520879022110837962538431363742093603567503561079706619045664834905177710136799927779168640565730448252482907757532084547980682404459956980768918752163855809045043774614869443667480562422083964235519839378343584598425983091901917643097342118997290041237492733095799806997540870635838282881901754594315558365817339481791806525307341762488188236055559309675893696927901415396524908068559405344460310500318197203415238925864619709001837294996758824148552671684127345183484080444984922971924340882668302255322989450721484237201401224485268313993955584890550255045231651906635417865004766431299187000254428273096291721649852137444659227903665327081354126572537833472280980734993283017179865457766083144930600492520168813949782522471877575121266788971284096845181889849294641300818638194482485464026473131905519987931217279517586569440663555176007914343774315387941868977750020856828935115001964605580841359382243597259488763868335852751232993144503115065193766337273021263170925562019831745048271842480359369091848478639233744815385055138387063657864420977579893974608846495941461781368037965087419887102785932598592607616043512484804526223073983627388200111182724133938930895627591810457156690778072789178283997380155071556166268069877294599473225365850132495808170733860054879430781839699546481571800636994744179526674617869453472010995865194133501128907481184669326378294792816659771594531281712422055137851336810355902340149847590546688177907841193574839748539364747876855711433042725303251091439036790465390597668235378444708511158846979509746768215620977120561897209580991980238199420835643487994239619521523215160549555585942194257792661538876373744228031322381893097117575490618976773507308922950552870268909637539353784129846434077659567376803173112798475506590434968275098855537783395563713741951521369601113059155861931270742760812397210512480096083496083609462813215363397873628818742304574895983824495216601189320574406666201685745828205860586449234902399323764193237202429509229358356434134879520013420124770884438409213083152675304768532828485635030770869763859747603914690050110305633370445798230426329074876303483307183607467893586368552013094557536536889855863343709826996739172882488402111982157162850716700310873240159875211367424589081248155103072531318070331083787831407851650294826044358640321923483981425324750223049633984900653491699316912271841341341463914823745522354995958265627908950667832868697933523294207555712251809219823953124053743819862307026800869972754986426780025178075982589730496923758187876960729866733895675356613382265463090377358955903418276532251966881614900421497470053725237525130817258497996104654261597831282626007315466458072184141337599325134221045675489705654326275903267201063064109678833433462713945350907009508760171363199648205187819937631294752819291712753631173378268196851017088473031611734774904806036764259771304336758726414247438641313087896521810872637485235693331411372933850515114092886517635150819659688207707849517335222784716649204575327469012318446042965867907931996529949624010646926088967932569684533496056860241321139433355696992740299897307183832926628697736820455655607723431138114766474372976617651082614425665931509663102469226763577897550225565314311031728175796334569394747358793466268034803247286451630809626071379073415336794235339334873222219228444025235143173649103744400960340611801820818260284706189102062505416196372153523667870193476759560864692905286093115815710549151338067360075992900550171145352250675317331524620248997152194352516809170334543145321696364562220881483460079835558647200073985683455552731783799272928601869444190904866489319144885997785615113291578738258497525924958335722392503397273154467867684063615107604450562741021161824003860630176093902290486320748104408707134668141072820536762673710679705531464736658984113058980726459509283193250077192459403812483126982674206816664057749608562365153185388532440424439777021196023236178216948178953818057904548590487013838809620265473964274406126353186076365027960187922313838060004354197967331941442873486532622601304090598599841430138183950635695114126971205236579028797620618549055939298945232013110487827704306592942193783028326398302529391080970883785168144413470642199141909873776111571584097373577502522747108322329863660574437051346854682345861067915218796330317323711064718414742110433895249785918587306584686035787721676477223822004964561950656841187983729391641511552722611672277922267508913798433474869647260795056912487562644200665681271523737451002965493194682237719213163117867430563183355501232597619071461657392784287339971407520360563545870672341229388673093752410173129112680327555384099704848417718667509644433046538255512821112653918555423081237413555118896454314470473264912718653336496307051517892880178738966285938781212095391586080417092399644320219818466277294517693731644971230738327705407327495583810855422633641611922613353182828387930811749559639902200446450095491884023035768962698903090425571995510686423792865189110764181536100710121651755034594449406883203858528026148534045039945860425788010303929846438300212896050478471281734664606623237205813602586649469905455874204829090422563664048322875350581776018367069915034354023293245610891549946691955513310798160340343106735106014686786801775525655149043712737991807498748745180778772135783175548947269604747360292073429079511702919068975099034607261498001649048308773100752175827422854370336957183661716466031527313692145985442272363775113947254926691419675697858066741211744369766034093863169130272429716463845295222110360406684805283837203819969083731242330966679878065986266734903473481561242564550540689871811102022111615428517895558123083487830140157279248633650328431293856409310932257558335925778916711702513376558531481005559381560918559780160725095656433528587851835835809654329215918038960555901755638296904791611597826916285741541403301736301508395576683939026049163838289828575433910450395048380775123031602732530371951483356254761684033031739848932247624706934548410977273454054910626877987527180953102728806109218658935433997928722108572070800959131180655074192891710889379342032144871916404740258099422632275487938604524146349565357894719807133090454059373496419509804186385578675302529688899050614871215978191350796252272020868991420660462541080561319249793799462077342306450232329942977765451312738844515293056052561087613506806879328112866498752589037868729291063426340757791358141198868071937482051750621799946550431829360717853459274616437610225999889802945049951591967690080879107934972298420732243911314610998681996378995681523586746563679613271319246062331693950611675314052368547020960154708463134925282922656449116371745605953682868886004579957038409404831561115169796727410228833657862966013011494124093266487317673304394768470548849506435155293606989228883041102508920166178618273297964306778506509174395107849386352275677224277105575149375542896082385564767075116939136941830820438937047881892602032862804334751104051703330171844343908899403456155495945504754528575559745853221289194179295905949494959161733048160835890891517982323604863598431118700946544803553265855841305079678836070651435167981362063333026876743421686124986749519359633932689836922736944912320998390112745058228558697191869164098019843605514166958653787470811084930196901942327162432503758531771423941046513986932551167811112073583001373578219643744926363974940887441586583717390177306309948338345353342930783396134094288644558414905655763835120335293319230429461388537822290628031516376709574008491442315407428609333538535330159190939531361537987889334481929457260808204467444893273957590360268097424875992333370845629695233290030109049923090120605704395037538132578200928953590407983211389269680069142730781036361163686215721829431964921651216609651096243959560460191176471988665696007290219427796710266772497334488883942837484405567524836155278698905510671557490373240298422191403357385150516694219647826561870669245782867995146683820457021617658757775045809621780148589572434091468496325371227007185560590533115923156789459418298252836633679879916693142876540244175606474074019814333984730898022536245881987734647227673554752042836664542635626216139880518282980981606135895643995786371090562987068256718322360965308107335524642838899852033168036479830523481853044883451851779551494317406041229504251129905373088926249737476150002292790764220552774969699182071447362047067478541223413074704276480386578881002358799968591389233722790800585846740479591980371377709036447491962666412900503581971868959474482367735076900151929097811643520314246784771853784134085373243377574520694379747269653358089096089523381638936161230893493526739538121103223807985999771989910346020750557721102056886060023075325504712597968057663650381831479522280933862238573219331962312882805121372250455623203568293870175602538678241214735599020107443073914277831358025875143577606861486190337535158505313069631010085945531922146770373818295619148243411572186859418041695280736933043351526842427514718466781554373689391061460903968029001920460419719557695546712649679662131919729221400865787034874944242847862532750509039031980194727603896120125111727006296904156780768988267150561947422282105683184731825763697198429884630001634011911505142553856238774184349444705697875436674484125670726226638936299528690508537878441037607968491968945273453660018173642423698316846283361163563741301237351170883532877173533631615539562966057143685865761609039779354977639319298200478852319265118994171837785734735099566982597033617298506197381816567080569586838841197118434196406910932645354215494827851043461143742151498073863571169307149946074456754443599009841558345075344148796660247771134068010631807830750637840168956419540815563763072381128427922145689091298703986373561450904662691187146394471308897539697245898867828797903898250190946101186796850660152140521626494638355545175272424919622964520711692049560666711538332252866620677090030068922192878959341723448226048103039961575842041463840237939911112367944887094032839638235551030804891343949886566995989478383480761659698842002142314612777624181179623363063710351217933766425783448061286264358171359657339367210326972431814348903272692845848188004583306717073943136257207792098792804396926768964681938363701641482666732714924341327988610270458075290374464939805154466418635594685732691522393041092876879580211286086882001307678192546210988738510426462971845573897020296526959393360458219232370744957124980711699458794269817246931004975274868499004004704042322802007854519560208824238193991508043670783607487848377128564659147078482166274729820708317935405039116077126224114561082237633247000690316552695774621521746209290012899925623415014122893097279848981560159120886484370493147366858695864191333794291438828179253038007109740988252593371171513768147934188359873096488087979092213292677916858220535462250293314319377347503405601120051519682090724802950852178364268807237356383753691268552895152058250985321917925586474909134612025461503680626482067882089961426885265548949106573452821391271712181096228652297646635388988853642941019176718719191900366057874999101860195757664142485706819517325268795105163676112743515504699634903483322328024686348012807923528828175006036607477600243334171563733069327516468292200038620291302453295864172887496282690173414398048620728801293009445321393097122711367298792667821423371138165381097575923660483837331778101659645626132753572526329870506255416622309222278333667231064327424144212062379080000624829799548258437402203038414142900264031778512994268957708501130850398912199509511472699166524201236258753579960119952142047783587691962145746342151426170015449054237035935212558840213622058043018758757461176641937302278685439539479938190661023565123000688060084234633604007932074152656093258521347023692204476757288507957186632533622043909505160893979612818006373374106232180174884477713630359842053259262360992632048231273678248698621567176112509458813714459155662174039906855525848071336139670555659416021223870190363028607146534118615889986997991132371790531830132628557543173026959647864592435136837919579125378818698113929264591848235404410877624391156802381112930044340060106533223763121727005933118796895039884436423571722196659355585523379176356812936032707481833621928669901703870692722926619946492726879282298717556526820357487835932402467114284887694610268424882459606507023000767432451334816286295061514935349748758140378673334360441970429132486937716467096731262673931298122598230634544937346995440526635801873800103578814529709982021289439511697439914359778158972557429743165707983274014338807695900548092772824349859036479887833778903851068068895063162225535055612393821716032869256771935346199402087142708062777495082986032993561038638853107477917178957051418181759446464218050091043761232610018755524696530293460703329794059358744529022426611829094083684389960550221701324123858307544678844317398712268940103908971408492523834994421221775549937452992441068555643954412550815255159442329224010813437413159773662353376896541621062186471489417071360497646941159716499304639056462614239103483880263853894356713199685545588072355088794318627183910936405570880515662216224638784939842346752848698762897274027856470130623822918833316056717639945716560983177390868349348313614839065143452125321664071386087206101729624101349445205006443693006296497981342734341086763320215228978563457572250045208979302006175732473245807138916051149648530537477531247127355758693219466382217762866450396508498119023164418557229799924379781769800672703902306771795394778057658994822008210772787868008739670176692717578751821156949838273435918751917782052360321387915264659873557941656463164589889317113487988802878453009603519588885020517569954297894437148304637273250417222542365155275135201537305229706529632393643228989032332549064669308725409541115191675536711910586945968404474654191727451389747691123867684688009784553551552033854823728650562619243706728379544310607139181708300543026213596466785963039670810944668952225069150811810077851055573089457450665884669169691256764475783370194134284758897523687301202936952135617793656038284188079001216862163432799159350479515334563256457414540799646427116609380138154271894841951661468082623874382551062896242378046546179777034207525751448933507249471645376898726731272778972876696990489855192998435486070986734682803227672599760650349243567682242279401474747114025300341758714571177374836316569609098916021258667407672043799301910537402366577465292186572764147563428264510831342733445718189813555761214435559637521694923482191095492352222663226906734485139857952429823908109746410400380300590993719013338655505285528575437282331600690350350696946686376989040638977378612379051399001054082663199145310652077609507322320105344261049049836425114102064491045907473524109188226258070685134910231617687018766434638803097132308037109555684489074721878548115176345212084429304296317099379154216650106144280285911080404998253049271379566548123524552033016430005353992110790984292689495707861322392929181259707317141121314351573960040600860169692010633725309679759304566199620275751991627971156253616747285963606134068015874596914651736122627098031167730855324334917222077838567232543534668024368201949999608227228374079228410599386593926573703230550354332384896179338228110036039835677058722190818383072458441603197046119409227622867642656846066936747451164204531986739240771942164376645840530445616581512678377770397992179236642993529277127342555548642753172418734352799708273111710220085305370965796944767744548709121854452527471904780013594695097203471264115443653073338714025731536775800967669344176665266860801626544520661278141945548648184995313367023582367376165159064039938455511715437618611319514989638235160000796291993105917854529607078367530491380762741224523588563408771807777654235298629752162656683396999702917378002320900927275501130736183618886556789684423956823015887079748987295790384400117925198610636377411241300435970905636064829416169511675536738801745293154090557717985737242114786426225115708479017985732416289722626446553604718456902052022072578040302604749006676716701977150200934548608572688598535957962784315864249052990011852290995044342051300129521151481638286798453506193196385638745337009161081256340348654579557749470555411843484482658585255797292576850190598923412479551145655104363428063774741155963399937348491513386156649940362827886142949946956695408670316712899379592264428063350619796583418730573435281819281826231927565049192912691896275225867109807985981024232703767631797160239453625963769635749600687607766126053559318229959028435462381867212288704084175826269443478268431291376356672788687403022380558857817317219605406354166747855973392480493913720032296732475200288425744579400530990702203491853496653692919612643159065668141250610141183037822657269358927329139853395197039895692413384641652277136383815232403781857727879178910615288304698856524643335335698518479225590359443634718131500154119971886544218319256087957188610823499355218440156643630314217629873310329870066299675303492612257730637980698957120506067865370942008348786195600678222610232611597212221082402215132266790972587608014124868176939058330417245729133975194967178954709941748287798885416246778469842719642188613870687100149567853282766997539625146791722702866650373302313391538142357169583352953152235495711294576202670463718630260852171539369090152949601202036464992968646491602192028111838505423809696846554339823585024936067682959997797971925182189364968254049475883188301064176202622479340614895814284110306332908882656900141874070182414839638710243812411198284044804855311311932536794491528089611290875293582337534081559638368631873198109844885992590690158544453183064197752740198083707363529686873172332003946392293958723989693859974374680859141541500670783592736787229310890143875474711540399437706480290198290541319356248216360439589845668703176223468501775135908397140654298161788633188879685546399724643903912475376594204139003588493659662532754943395969429911491789240382844568498086103555126667688045834954908632574139703107532007770445223142430982647407065225520957255316617242854134239113561119870881085083299248458492884001870181199318424851364592876662988618825755863375009601994072397957189385016072999011987375027137052661581968796561701133114181733785389467545472775100713446291619828195722936147795520768625192218324282583455133040754509079124174027927609046640955745374703340183123553321308845468485931583186952591813270443707662912131749531616376814005633744615048021047937126194968194463828635134679181167443324392940044163253251313385501554675685369392179821171602400686488110201485315846451094681159241332165943888362195401067100563332325625798619965641714661477026178208860181769897321034697156818368893050103694471302261249434278602377837686027220736942983889364527204097828613286084628768972265728821374244800297823701880452568105495014368011572147887287724490492338497151426668568880933693530682056681766334056174402026960128039991871114965584631097083024422878993236067577034143019153633486200799733953516821403382739736396547070886861252348872687247371461821689869815235235313400611674794913898435820724516237499105845862945461349352393389704296179970988292249656691228819606200839150444681982858488907850834087824655696113609032655937130289146798920147952103515736620376745661482485550428417434147555070140181650701327921704784854663309988080951265291561539410820164562050151404792075535097851660774988750299987148196185457612989351759117874974850018764073849734685002885136577166870264553078315545778833356551378879639411265708697458934101575096835193830548564963478524349005169963126317578653457926241867976470586848790796131222938995238094689604454840922962247718747213465058643463399380978444914250372374504734224229246464737631414454435888798917812782839167703526585360008419536929965281614320063745871465869783422300512377441144988445820212191424317534551315382052571938193215013968672440421288920487527900748586282002796469765072661416664943149982092234650732726682667704944519915887243186603386098326459973787282429052683185313013457842678867878969155922047618318195042500158955307392816863921270410835496757466140789118616509491936630634979486208756868075154680549618230077977227109567296328567730803786322064910773669951410848424212343281570914014934640455076102760309103896861811508795411210665951989403673935299194507220456314202903793033011475420090792224708379943112615856604493018443946296122264796855190629610344493345441462395258589148334502903233012150600701481219296084768913610014482687858676064996874873314951748682290879020515193402245780989151323150840396420338753852138712941660235725930423679822604089479408786055186411952809566622947409083129223259621912865348670696674139407364511739739068140435202038354678681501065737475125514208695316543506674243079984765405901811566978043734694332974967746789498384989125215485598653650385244067976916613638551299478028043135470746713904597444897523867519706255381555708949017789016749267393240844829170495908689873434052631976373226408960094377189777945954581937275100459322754179267597782019435474000493146896091279947466449296016772063779687977663002043825219090690945241240072824554607560552200609672301323038052355576946545120179302313886419664652162998178937755214152924987101758285255713310296703603277126283488688779495445382164482622644555807607810213404038543395635245054895916024897834467183556230136245958532584535841348582408859851339328379914986840242612669731400386014971353875974094088433768485669784812424312348772083946420107953532061244644454323603135406426423316159089501875208294287737376058473078667709025748366079634308233009884620722108506677980064446886944690781893944927891819190224558094672273686834374028527959907866815199237816341177278642260595762285457298994802742389175661652194833348443163524932683374120949948444410948548744996136324865653731634014429875875450149741803106004989158017607614878631991448101760512407945666269835225071471377131720181363350616790890795470907613998031929830859663843491634585592531732120086245745368709864539032979482178733475229410545952491703204474701799147456619877481596416657005158737677754043448561625556796511435107549443787563681505541844505903531761132837763642433567408312440060437248306431561941519400055515279123851597213414529900439016505598023557189226216591299745645022573565504776604918524367828451010517270703979887211525810002847827189000915515022038271014722331846538219142182664417325030759496978359148256377829403782184183522466399305117084408714705426453517721841812878001600390309079407867106667093691173265166831682626193421548615476735766356070676571056735236199792961641752702883936566210035798656476121243135073724034578990675589584232090640672820008624794744039159640989648659994723219602794197521453634209659563885724470525044479617498520121342752060593595094011563666786817695925018596290265258789012956018550602036487724350611107368604304643254485226916139576936319831273215656988591960201191421969555005095272316415314219843240900490563524513489469604495887625466829743495274133644212419273166850543557965799922672601930517296262752102463527289413043927225157958141572949198936064337110987043542848589688161309346370340966949663479347173090645026420787499552141729497948362041522346792024528463551951380534497154132419557894010777983179882587267288183440633971880049977775757794856515556587134815213557935845173713354942924225366408083186655362082634588636107941751546311257856942709683512777236469193192412346522688744919386324246115602254668980559441415327797549971154235318349784282205548737575079869434989700063973933836569778365332932052647702762705496249979805203708830607092847473153196726237175226947278669697369993648342034505581625620226516841910052140097340124090105734601263986650200285475447304077123817625656716455638468728257676789707529487574765293222944343094407561114783292871259242703834951234172935676862115922061128897136159270961094494626596875195505284593436147625257035677840603874582785271961898524917216443262786302736683936881077350038042545108542472743537836905832839528405992397044968062633777646465607306219802711659341123638936557805757713879617935822143680047458686388307170518181214222007238702229393439785567711716545103089433953421973794751375598865887101631522782956398822880522301732727761905518590286186843352722769036211172662013500806020864006508269698887168772696555753788008664854279696690131877819455304870696659040214082420381771442488227162414761874752727481865872949315892777802321039015278453462656865224051321243869826626040523618713920959532912654720233628527399326917142973539049347516484304757862668112204168444951377460976987437005751172553934509958942622839371057478658349389023085049158653287915241409904488037636699564563322675545726120775028021971863989375819212012774800542825657828831912306519425292787749641157033649180759763851608347461195238368210225159388551777944345870686895667343007690715910393241108859402154742507394592968860389901250932993223810328555742883803155909454143463768326390841462229086974949114588671501936047866711822014713705663428191227269786664150464005614259819163480966004844589857113278253168192830935741819845658444912478289913329629386567840048192370231964556712353794020994983501437658858831779271046975379260738030116916216224930679481295793704317802370557248903566048025713630303875667662907010293631719095363456879270576067800139923879942026062070002859204503289211167345101954240269903479118338569439607702866674889615308962564886671438031881094608230521090062385159964759633445659263679825233630203414764870437412513433636291382787698555457360217858584880187013343755161018922820079273686342307633647681142276527767339386733095132730362585196851646996583018757516358090148584653031068803478008986455535307650055805702138242287916433122205947773873291078783803671361827615047218923797517447160446201402990329118797187444300004644380151730299269220568480391794450004922243775497150749150241867141946528632212197042933692073665689749013368644650753568059353056827880763156749331274643301354917943712455043185495006952312743226923461905350281462986341772543693059899377457487514908989548062679272780994954609157729881764520756586517464325927748703612933130714242229740202469745627604751283926369815117390415969216527120470653510054750839139518177701087869528125357498273811710857139056039883711551166269810483113029864147409312085576053071493844963365121183375831848000075013749027813905018564608037129965166777280542909211467219672970765612990631025691599351348973814870190240558148047345017964967808605922442515402438171796823686714260205825620808360327352572492244223662946211571246458629698319581943792869766632929950694819788370136362934030281142265349981364274649171624169579534476629441095233516469829947969671927688677013378811009487734773555622084977929973167534170214605634790167752089339078860068399786391272563605468579810697836565968989134712667465415753402327098644195270020458553782640367496274860721558521690455705573215757714306354736759823458608317304942246274064929839593019611149594715013398652322908633796788356858365998805864652394603062217721602203937539357999391153543373927680113468081947862280701684611081203986690935542000377495625441869115936949729465119620873896837834171072225185958997459820019259830291951808121516292846819004405604127775797912523207237089968652754343745619546378134172498602154678948533071912057807111034187911719895096913297539851752927258756370481984636552910429591168518724294131733604857266808130804035570050898506439107920340602236751667451847564157700304946190539718222357885872778765668727833343717522105082214763759382585944093191159973076811387648001683823924820097570374743057876601441901569284909096155842576774840657493545990329905304112577352336748380079621993886126994356631618881356808986873795639506382900624190169414318257819988480811837482866268703813149777841983469021256888003545666557714059314959608521000300830571535180759655538504035814360060254896243028560769196375356714043018675249664030797266198596770000973995983406385476957626632867365217949832092844317154244655531686206593114916476162360243494351116736121178059380504911777441210722176324932912136801802591940344249102942409965012718362502013357789172827207760196257109503306045153946476845514655540562534817106267890263918073350095170450507559438479864352029375457107972940507031967421986764772495094981600118589191519364065799266263547150273963708527215902148737133526046571736584947815065175696573954923715333488247090780849973783913009037380762314687651757023334485695949822642082738803889300447134748328069433209187953621626683794511402301165731464212191699589661602502042041989241963964027817304744721798574599744979424146366747868254419200216869974281027157987343191946023057540153211228865399029145199841507162888185851450220128024340401960385818374456365684639006044856625872328876398794561677510761772127657076680025432260651197579418163034670388537890118711551113571677226219940238404765863184553723450639019542625493706855296080179106393900757699826756329033226230002188002103063653963269407300383307263493140796195469326192378834533689166712009531772224655956817022117471670718908719218814657897358413336360953571150604634342471127267201170431595992057350255295626410815808439573577816692173150844634112751664917441642833425744244182767897650963152105699155284824263295446550886918838823486853707882555553431465725788589880635537339001858497350913577784099134113145632197531557862805852209033745500347277602521395459953155930101992488948941461941500755279366855404432033754845425320854341974595017821328532003574317990351471483428415255528976021570544422602860875719763442960763022610228187138074709777654027889478428510343570454411545408199691030895785174176386726458155146047220509331898890735967837100016445486341955552577712857310459646610035644467645601739728035557144702066590940298210427946047770626870680973160596001066377833155626055266441363322947844387283968496225265057685968397605679145320999110237603640723994869387894195309820746519870053751018546094259030521415487115816394140910704984960401644299081870969806169948364892954149725874296221694523612506744163416455537500658878782177327683726754956100567322535134033504710556866835635311110568555207353918978459549776588054493666779993731610736311585768612292666596112904597215187423508237195010991333431388257896052054622418802131626700632430555651876686287479405472083368902620283489982607650676775821714984321576370126631651161135166933964821862735320304595344071876710770473969844767265061188456179946083453796423017554545201245288038047829004700797110670783102157873826563514137423915753353586696506829516339937585583017001361972114175277636575740017613544133824517596034017305578672152880672636450254311252737839475563504338026433487029469189086004456932635813418316334342167192630643701735527311952218456466296268403238700475560851769078057193937248838963634988411596035109378285276094800765274262736563718068109415858477117025628189452036938551798184704955543392993371853852578034921798617437131496384239718903554836469863724080599158438294480778322376747290731991485925973790087541038767053619656427262120906138448122068289464130407649865296556390764044829598508096977746854316115250541880706387381742270354783416846952525505378632573598478262797203374159982655990916324120780614778027781362843802089930062051819823356782548838778836409086373449681368197422966331390658782631257965784800051007650177486700406030532839719217017230218614366561138066753049828713233240173938566285231842697721604887190909615792437268427814164951002278778731615660430247678071327040780206008282146133377825484472734499071825076454353965053056469146188219531673923446254587209336110991506827885550807775708364079851337751466047038053472686937164413206705250931102855269863839547173168466524194775569547380052869438489103114336517619028105814100131621932566059906623262599610424370400649886504350283733889594172400866005305116999634161211012055091887026428813362279071021206111674855206503737600766761815691577357857072733042560345816513820343866657549961610149632976645867633421166795426773497459298940563789334149700615379645689486252426563983695470667960460952676424247915774864285822884626405782730402237555665301544129025637663048103051604956624281486834791161785735521358293281767074988310441315871285828291028336325613072010685129249364928809291989287371489936517070474575388649922701900055766417716981901700975735347818922431836087532339260726493069434445601259589007524193295800667511645702487403224192731183588704855941692674293423970156585207789645978775028342879808042394381318217519866022542416580320401089279099771761232360978794631465574594274688797587673826907913078050652057528577680978335174258846934268951351841436770673028675782500077043523266340052814530561818720142881452348735687577203359884706114692124339427618099045055605442714727388016768519722163947080912879152964891516366105580146184664530291154028108693866206953294914451963739658042910037569218148409498261174778862662644857400542040574244439379395996343301088109667613683683075293450384863213176434745502552939285570701933410927636378614016444962199631810015747213929625674525870676399989155826240278877930908102958991656141479886782010719915118398159556459837395975667124554297491102223720359037986322840014270327043634732804564821443477967847864688082475918498279772925364745380188570301393829659076963250595525139438776419711422906106930927026662795709641820692237859858496941714994126792438909432549596074280985932191713867196949565892861231285835697192742681100150835216331958171479808342239889890898993056700285011469492280063379732689395379159720429224761817316406612289531198634997008848874003723061692766752766480084363648130500838525339554317348935088274889974327440200732510101716068726516328054423076611095873081887383794835673572339723568559999537314483248030043998616287022851385070824922109141632321376253638061271533245405176051689311023537345233390069393650881044173023117588889803665247890441359134629834552507685764743705111776968738493537661237806423727880191103373082671056088299223201768974281137477365412765354506100651255213089252780380212773528581817927087381053654697846062800055617938375735912046326572574725774767505310390146614767207031759147867022060523160114774919356085670210729395345888006948603406663575144832774498279411574109003792743040714025249201131557074074198253731132393979275933195404039743460295181970951999651581023863143250047305755561234191102902506620674396905698372730796710110960632136493972640462584110677030702262468165669099566269784969327647673701474660512934480900077971998016464068306292322082299271158420572561367545273380427532925335265308197552857451844353710553554291476705813800142186230102485651819507058199364717664914525392287665940638531352377543947521911716596396890050578740540978401277747699635947956939949085214716713920236848310624301209664898508522306500153088852194667521274164149832312812591628533483572190462357917428925488266466449289063993943355576422017783753577885424998130105734125505290617921487717461154077715267740440626737997352771874571330384368021967014176762411636992543305157451891186683920409392130962966652525065907828014762053281603659935302065743064839912025075680065905064966647363390626261251679428631877366353866060969834335374541942802146936933853013452783183099033654314657875801635543537742978281406814260538652130203835949895775019367985416101543478825681346724320512612149806022905737556741262091295788750920984368540987882635789567698710712515026314563907190545165070856948899876963220804460330257879694298200400459843174971479547723200113046462177982168625648868332343240705431752789013707332813170462174994929321147003268264432549009317525843303308347243137530461187809274750992489991479858119320183973670788802024266680876377810417471224969661980021157462323880822515300492107269531387017088644542460721136360210743649643627910823069657108991128728553768993298306674280045975660618070848636064599338825182810096698227780426758241100420988485790248672995345654539072979502891094373648115228610066046872039987752917939320737936199212734022732076464167489835632984822393514312436165594950241310226906131028701329772784789989558712329114943790847141672886578028167510332344336130874264849191304275406324916695489155305374801518246719849615146009556518965042310871351248520755480170772744881717590792949714896425084478486230324015677105959876380616440877190065983256485867200062017095083331071358020821550204976273906478147747039422291716388881842970122581669590047150912353288014859626723672850414323134950204345122426331588272265895066150233126654592302525815110327490557637347266754234807673276701631865696354482235622789203921216491699421731211793588202330977503032598449165367786013650683815388498835962263336882221531172122508526381687691028469953829131141602058038722091521850705653654021757074528871594410824929605543135136485848102472487508728499438250277222082372490788031522363638833738511281711356427190796828193368963207472377592859141113734794422190270152914940335994613276685788357439866265728825587947339392444991479668882545773682554310363277966564875834869424747472408976946008799334110159460742139469200779907395316573314310888776596262568815205787605767470729674621788043989433460054006006755031173774993183369139359003098794773727608043233293213171001271524318306569251864151350191433056929046596943829501976748319331330308269258641802842271114765718211356966140291825373314902484873775621149214760893556318501353129475171534397590568645873564039521187689195983602225987834727975645699086853178100090033983830415916490467329121223548298434804380718315666245710853398075218419786137578750847108561420657814797688221875960334875124038809201138714838549918828328368401180232468462533248175655836642094606749396079352702388702546555689607322406169628806577168314641473466424218559095905613436223533944760458783432888888846996844070278093887671883841986048326660030690154563568117056891150276238783894371352232129065170017320949520484461870756131850372229616801938006285920588090634707298778383277111377737196734475348871144939571440744755677097667589156588297237560482320101620254305323726617224784562657981601967703095545660708162363346873356529782453873111006468780239556462304399513052297339752970564618789956507220124975661018197267969040484742914597156945636668776736082742207304098941196150971180897932503306102526678552145057505226235034621507127462365532647542030950949040191466169062345386550455112455792306437576658632866321424804513416897439217291739512856053249137484629494393144098901595975918075097256572640050330035859263531369448394285905880021541144990152801623949708837756979886552940129993738759364400387730544500534034243328417936311823812261900706958875817080868637542824087584793478085890264150771771180298083349925046870309876163515042429622721787452631369566048827027806951008045996779980013926978644836995369694110613099535565861966778175443302872284121937598681460673504073664885147443533884617677985121414346159089604391320360831098615534765377750453773393037404265207434188404962440543462801561941127059661298996246162840540088082564364803077025984955231135927073387607186413805649442420297259248173380787466699748717804516831473585686582050475555311407168529130319415230105323469854300707602722336561985618998359386695202745139619707637397619763504872155252741752005840685954566227108717455738896881891502330408264557420661920383241951076803764543971864860056849350326512243132309067165459983747285198505091210121788412667985470637312562190798531070826727014888525153449566911882488056477172825781131131495278595519366399724954627296688779610041591708145754127189098577975701878279513619247561572535875902959483289131674993415989560457429993074724096669538318253125328568921984749527052344922347995597617309596099281396627869247490290365554387801355448731331403686232562135244745792190422986905499420407643667407160329608326342062157409585572765824962009384048993327175213954713289366081118890523115070723037049779558450892347916735831875263324355038511311359519755082717125697650732178398046106744890081619200852345471857036370479274830156629118004139927191320906773313522119234013643195586281796235798720401923689316830748979327522754430385426434348433083276732705821670376268736529882911383150261614559744163683341500384340715696466609941839729434579475511749542702753097527597455264951705328550075841031984400515893891258484929028385659103193170835023453308999028981185566968810863979004849288632386332347097300215049818834285221723697327169665369911529099501407575428220784442944467560351901513878090204832439717412417236757341972914430782489642730837788684436769758078235639998879368451036200415266160827153144513916492104102851828233293280007616196483041757842722973058968584104145995502735247732516730965173230044360976801591759476918496222833604991255206210497916056452604074792337920207086815680985224068406202813746039708427847768408516532165903366780482324056173352811692651532842541932274425377692724939634105956878162348842833428385874956022131476266545364024593900733476720567231886415089239130101658126720614006417535732655412425370639144466428042046955900083302789905274971125975389579185750238125250152987701237555093667719646356757816224719398654978072238556175328793311812485046853137382437794791198323121927547022106704794278717198204709894709637268369345289529618928831171569635874509011644600207620590869833239293306898093905907987306314006461486548161782348286602534349947479628259977243828090348902059520945431476670884671884567556670865075151955448258817974774972508615541393804235875215413882268456792413936235550127804993328112106316540409927545241155136006924191808864429697380270772279180840190453437467399240164775317465283072446716629749397836593286833472251082490549729884726369506562679079186791780804083084846944550194773305544405481717043841574091095581608714619881111431102881781316272093672562119127022524257060367498812882502653911830110702849404500783824753468136318336273180575910534052066762778119502641763995776897744210270703076470405685810476779153850914638091132207065858464903608765621265692553322273151154584949133193858491864602138699184292493766585480448129306310360926016470845642828013235955848967231099297738863799903044667829327265812696502485789375738530625238695005309331150724594746097927072760457296784780821073196028223110824361825512995685692679440749823633159211859778442386794892176707104252739014738236946739206888511003132422872188447062601376884864105457639692405035231024573773502470724742724917193918169721789594053345009102492074510970492951477259584774398428789390734414748820134186977207578720795441901382812525282942938348942795531367008457101757768947861345644148502264238641127540192686626193645806150272997867935036241629254459066379638023942248054324786825141480367249094611874196803530220919037318050261320578875176931200518753496762002678108894678155976223281675585280394787057439255258259891204515667470920428288664339634328402469290574204833526918708105817961717606915280967096282932151021031470401218283873915131526214314817694638294328173303341972602501081583488126717265252946400862279724274626006808575222070305201547149960149419067479850292002182287111490392476367804965687270033491205304359491435293662873635676741206284668940333060465205475397902474818450236150294321993110750986830329707731403406862088741759696523280348229772744728609349362306118992906820478013659657940156396261114467600562690317380819629985097598644913121340361931365477723108727981351437310903713684692572401781038136046075910561500716795892462810854083186624964342865119672100806503035521585081914888721385897858031031124828114314198890249057957229813848251439422277140223260885392457166796806934937626548182180790730100335891607240476957976642029619858224860752360221959193049776235706687770348611649334252093237141995406735534274646276685596147091286241960560985662659944225945271574013133436166569865181116507132704634556178430810488531223254602114740021466650045067922753873155540013740686901948711161103103444899572526449783253269707976776753336720188309023098169915515818765687731407041921586730594049461209824648104482178963737246901243900077426317160316824894499419381129209699902841065943024340355448623688106114735769753536873636360068773898799586290668666628462016676361290226789943152041797732896268675608707994715070400345959250201750516948087430387788898290426733483649547105081561857813161011812705152100948937299849848010419732329905928420316806416301142257060180907072949571467259179410812829873666683341101851286940641159915491811668374952264592216892135949952838180477674218083707810295563465877956017758251127908554349117869183479463399520153319883105378528911700386260270375899120649471372161371225958555691167541563688433619635692915633065481600859465814959189478014851342759894917804079443248126072018169128690321733867037675590363894029925185518400648385810102074139800300967684654351871364902775288349597949417164597595686565687596671976933396713855979764100290480127724161956724651600497096186427336285826207838832055761499597795699899495416249808391939994190332688829135215734709129538269667158786114078240779316595799756041601867090236404355156345702416450039380810546809011962714980668616024685993274354486144629332636562559941426633584232651093220346562989020170720839337978807463005855298929728556874354769773997841469695832464766143886100922038157497851804336298251514588040856161063870412802298505324183937431444021763098642424474218261676992035667796363037075698560808788058610814927161454318112052654815714099005107768417122688564039841313590771830006808139291958838902685756053563641713208420386696379054867103755479788732682846450134502569106469725527255648692632261612732415692012412643119141704662966857395587514459463253246296319406479056336334789775103349099340500685989799283755909825377036846651927867998877436597696626677090972627745849532898644314643998288314159219314478998941667155423787398253976894410826324936177714665362754916977583650259747017231827851483461104430808257036948526982177452768348918070281542828320273248126654997768227612694361051058811967362883708320565205627337789962330206903333430009448291974653110892011788949547267264662461681441765226217550332875386273787051487776270579521789865556228204676641966578710189753169146755745243427270840572109049712778981898904752494631549095093483106623987135550521492790001482082784375544237448248108161406495989574284674019694439220939058494759072121618651907368503116276679361392870800571860604518401004232268003831491720267332347890624412009190437975950935079920699016413528099884800445536924103295793987353688393523294849014508467206836108207781043409135775942778844088706532037413395169580427925043531321154954436632278016034892168625499953134787229893939589759454956485982814471983806550084643507304672019651877416945163959133919544070271275548353746515482663350545330534584575460340443294650059667911807126269570234036779017930159409225303672694332615181868818580909636792439058268159588527629248976962933942502677607340362651234266477140098838920773084108914267539264883302264520957398365207929860814168673313221216169523396189993992306403484154557406613152143886527789099633052549981685437489115497620712448496792145403848172970201030842729305029810999708251438746124789626077774331323022352956049945571626636266336326842050362984601963910324448253951141404182373823155727329785365488966802233532006691944228820308441123798877147112324954748219876990882896445214346264133467013356566003749882587298589916847793669219000996322067602857890032544921542632933712528460688154097271351216056517037636028540665730727123043021605465961135882344082882511995955489125817666165641306251713260964083540230440412933017822203921928237430137706690329361286481047153960157687559360320305611959813642942193060554489651561309818306485787568880103059866633712907489344770268077724908654256926978968567051403634845477155126000016323775372092031877495841299975577053861310136242241230639679617466297002311159260389161105407932143292529843777841146268322894113144636650429273553071944351100470005241326904119559127725036922117547657860385620269600589887358326409744026774145382233851386549425319219265347963280597199342005155449004491182428828159756906357057706059175513093000047677017294367263756812074517547526565784421813966230534237786228082315969625675252607510803690724228715548782619802927600253488699997926482409748292711280331891995811658536798749174688381917344541303428103589197263585447078159081068881154127871556279660416245816781783643687508247832686067444576726970647523362901888857402669093156840583704267965237543566797503141721388832887044506065760512218537518299569849615032135130073316951528691022035830411045487542246717475248077877994481893562822821101013953525334302439731027746248997365707383307480669418578804577190937004973378257610405408968915692639358275971135869789177625315321785035000757812650919911912439932556875379082325326797631817734605016657370188867104946090036695564140061307128845542900920945855656395287798967041608058935922827141814996053873752937367757585347692368021091188436920205247928960702006078946631087049854146370469179870967643939105626356493408483198782584663900101049836228503579590186473537468163494534825373366700428167563822553782226990454615559993550046216096399817385299306647290177215525077527964307039130014295065741093508399166953455079257522579863687609202153618811683017039609650192507298415870096342433346833858341742674526150346699909145583267813751126825239421780936615026401065135414807256682369137192788771121321280585879526800497540410693026864645635598973857240149032809817982550426947041276308161153165643667439351453919634997747984627391946457325354705694646706953157464501602783093948764077893936602145889745098329730711113064299070707675835885175784540182025415104521186280657550005791491214770028961272374689844778702758162830689563839934242322693765429956080328335563411002630637577857618531325454728740858601246092209581791750038609553964696422450910526181359517491002113822539550398418952800301058345886226681872601600931619064135505305975275432135513662035772053910365817713919455722474229320857039849061261090973565080543648004656067736793815702731337965281638069207539974406144486841611730621427445028404821794552894251924048416903613233686968150110513739807239281121959101150783762031851894531104756509171080720601964825279927302069377408089509864471109699070647536444015259525043001002350739149358133667048903547083398711110989253156224559045002711287402084676543619627344793688975929270332462529898401328155803549238538970806347925740711254232730942125461868137631796684997694299740404382723466432318606726255905767344679254392270420074237172642086310472416925251112591704239814785086754407417197956712879561140943002946678632518997954722876379973034828821146059558854505162183835472051343595178970854447482965267049973173740230027496914402611646096748055415017595393332399086753656590115531636157904394932362700877825770716115283349904307446670134099188410702337695508595739996991031764615882486917541927969564085040320056393490396376994327536327138888553150590411559776526430044798172890099740066525219082961300036756336718230979325665148696524283763501469525628978180881755157535356358502257718059048968840583631656764654228303546377245579962814768879291342823508559713005787462348174794874844959766634463429227084982735826566720414610850057465410372238737893964034322146708136239356999739442121962090106373927892493385490036888204669702914734086516213075510340956793078689896663234675253859621279980352264808746751782484572602655634548275157085866342470514906813930108385487980190597582020372083031868502352750249661874343030736569291433870928059338339917467445654300825072488539543130171004583176936660094503979632873298520421951461858661173763963126063660998256650892032275176754983858148765819539799311280722324439890515843564836756514642014745885323550855487089958829336965497224421326480559159572617786626156082453574946888858111603213684225603466593102515202042902398064824564249083058922965010160987765906053055121360420433677797087819943594809111607942093745191477228803585774332035944220995391233698253218492182340760324842791726950679369909415692070527449690683461413022234714261689038151610109079103178161485968144078827118447162715173249014817169224194180586259575954685326034555631801356114462000836640631488395020866222459572529463102270876145057113390928145187317060188115600888780183278747327957740615188937079669160422727084574113689062711111691675515708317350321650298143073023773447458255999357101784084407087332595180047776683247454312982936061896920868446020090034214911366763575068585970078177267102673426430474639941929608119158234746362266663005024549647771262664645246887713125202614250941884234045148252156408522357882862153718357823522493799709843339059209059980689550829170776619930406518337503915351272506118201545708993162128949613022736497957610828269977618318005389642597053189585776401808440845117835543334322641184621002281150076327247348506087445378414521912001477714781060321907575857818177000302409314080000342588446423789783434463968180626770216824034332379000901082723737032198580414011407609203871604582695783604213401612902834002183742640638368681758104416172846814849556049438123818431230851784682560696658405861755713610609535975227299885308894402806859310446285333750283526392782920227818636294535086041036350935424546526883921226307335569418979882881852198680706997928310823367229521827407187149374815570820450073239596363687382327265302441298019813851862513553106378869595531870127694317215806122265415555882716828302740986007023192708981901921125413752867881085981744750845428564683729841149744131818703228946901796698632035159932276190504205057377131038540850799072488849420382933964190422309203168266312676258058374790240046309117256068087834702715576403023626915121659306307495920191990308005650782538172535481816212708745155313769844037625547403338008207050935650213653312069341023570230702389189783025616108384002036571268161153451790612929248865768253233235809071196992780291028830337501639696642050403968565836446611196429587147433224236222148693162404264325591421759854778352301889683805652837567742845156656652431169682828230473577283360427912791882317124868701160890304377963573392809929603459180791615873466345202540811077044002443432432447477654697822828194399042829166447115059961706771654413468425017717972419094248689784754207516834658687946951246683084024057588842416897850878921441574923135008445629210867140526114507337479340563863325262101937054681587472701024227034451230242560630707607585411789412487827712041530946979838389627718783788154863487608180458333326048755811721959929174980143832465774378708570810269464263904641258958790700092343849559846457062923537309094985343131349790967745497186664646501352214693601909902211874788915800506622182859484729676087598595553155504685973310434631726499893810748126608126579646791494111329593564174045280190507978895840665153704179031419174712095661383388201770399603286597826344141282750219633645026570728561950943921439982330795023760273854686476266995305593326169140920889819438313512217319626604393848192687468656779572111676919899114439023204176724386662223616495084318993628556354536023630254655991085603645879244288921941744878070865530933991492387149428193121790006920667934008032096903032957601225629472067953957761080893324780882026817640907934381845911591989992236892158795973531458310923679215925010941801079894759400700942602018364199321117776792783181624578160413881903621808021335713956116839574375594103312007326350373179635015958424029102044718580501393516735450984783601235069463872203606391812368499469954974043536738887140965710079206175818879445990663295577145728111716485564496812735417302329422687073676740266610685749848470906873990998124334339803182299446703604037143080130764642883140704420015917859788693993747826542461153501557520657730702699895657657535998477197702848212285371977368368308900958189149475801593600301141845263521174571640615616223567144726539143781254672485977653023570079568585193996181697174794167819600095702038352349491847264097497557496686562319577964444002671070257187795210551030473503711274748809476402268136513478585785041312846516479546849021001888540561277713549372140696562425400869585383702637236662825475107427614869025291049291869594981217591164537547327989955517528981504942472516329911069004233666648774019442088103189198462874898255516255728352449874727610905961576306847153354280629812884824722604396620816011937156107876726977465272697008545512016269034590409808197668928963973100165836878667256834609129654298740827659287601411794278971467674515469648756928900355694796704260521809606387741531418328029622435249803739806806033229174041727345118946350053908636879038247279257097388249033308723954360330276456008259532911195715821453599245030066198930189450733634136052383360737062185538527938027483769025205469934074568530874146253033028254634856771672390407555533664728850570352454916726525699730460465977757489157055489946114966308372692521816785373070521896657053891912061822216770035688407962305837794339089596499314803167204052758516621718337464265771112141051972888899059319314108109630364625977230311931606859063241492792998288085254051353164210261177974565237573816717666724856376484027689023037487813586808124105878618230889518767873588231366319504314739067817866078865455526106561276874119718156033395196321780036325070356632690873678167287040261104597939533700659087242214578568163892696588368094307221384759065815867275071824461174904213197037939234221308956693084943929322612374354892630617837268224097923485329084294207971720499286346399903371497474676928386877730100567815049331954871607876477920542637089253459414297603109170243375878588488841211466219901416096201130659593613791948583030051173036102117864334020289486410739709138540989789570138193826507402947571810697221568790728815940534388337165356226941532399370487509420578312991741278261808027735191201024536714553415015772996019407295369724862904750938933756970453395586153435013105982699650879028298568790683888469297859436604507693465905088898352168220847732550540275556855073916989565343044616177785984411051909527639199469315750410986713773943159353955605517136013457908060295999485062795117619623029019516111095901835598514973344247247396763556962685172395500891043139695598359466267811974251139977189016728274001489464401439902421035609696878567003873471965248222122488365463433762472481808517472278009258245953814979624997450835901266554346919638464132705234469742398766779119872472424194012375449038117230215307616202137143886017918548956424335614034646660678857092248298091087527958636114020535900067503594302762947241380551283333946513673481743458179124264868801980576704829066239125875451157881749886586720981695359937241477207373164266291667859748047715369139440095587527436737094833236749121277508521616625970848148478401033553167814197273079983360342398631942555188039868884813098845274346625361365430012110883743384599063201109755425075529213588231934915943767456872483278141738004087703971512701107212076984754522875268105577542165733875754587354703331271758112805957014716523318554887612295754561874776825803905852812111010369601259172922123018183759161305765466281558508653269248751193458587754945062150633198935334984292221365614070734281294598992641276363398503300816585804621804151162932128624769816574707212520710687624436149118736593671110869677971215230543107973090832606378827385149929538858882165290226563796211024976819535121479258306491970293851754315300643370286854494769684418469886082736573948223198123415623267246565363086395473951084721845307898224625640928614777258094965885486973948468183532603254908650741808127175971406865003025923777256496023959826828854665838396398262672466464196175728656029592745044214355058430951442687514737682306976320141527243519377406575190318963966120079022040588454418834207200813863492594156676488894008853466870791590140301015119781245387294919712768909780133286845351797159716109922484125377795672030119436845568313206585053395109316220081846791775981913676357787761875408924553570303390243486609892499340889208085153426574995798927726437269066489650714871791002176145063122563457560430738055160798979571794139967348959568839300413116301956599741615053318983155656770046391824274064785303886827599588994113518007369960842957512992167198480313324109230456236435068501277917459234018669300636369373914673237235679727888915895487001636455476576418198648913011828517812647697695420123112963798820438159728290865866121870841934055978496670427593563460163934601873312930282781228628017628198813270640982142126939638192702477230896271306583510961372008147004489826942611923436326134612298247233495462241299434123311686546121886724753016000251634278686007222309845093217754035290009555953358382384448439044773297410695756324901614177810383592397641165156536028261648836708091777777701896118241600270140029285610119225875510757443990575116097943918365118823327770768109701576059737273652096597843923538182583850855981823980994076255525218583865267873894461000481390546471042908762098244441784672604073309429962724881869804954003974938241437152118247151208075441712008774990218553916041043031102568613904457858807621821727092516179756851094492416293634024256437265962138243776108133591215566691932574247833721565932033268375523026389386936024621273408160939372858937213541003281765912873228771270716862180228759400314840100116607178456407228476809412445038588882876665725383838363010424641520199852363807052343894056443645139413264486679916206813368938244082033492859908371290527750474783981733507280396225884872907282747906289039952285668144391913007087482168420517489251991909521119914946078628101080381375861771124065361248838838368066164893725404790826197900079778545660358472955629131911199285046401681696946897520475715663386390714983873448509212724602435187284525322762410593683701120964347268925118965509732071361857788103354685329796651076447823214879375292204455525016601816177116751742711527097888019838439630223307086572250793539787226724717844732826857664059166729524770012183884742495018954533000393144640680855249605575246691472335894918258114012270100562566998221002289064688928850134250929118292295134524600868657403431466569845534689341977365034229308576005620268925306364020012636184826599553158201096766241392014402641748470516980153278388305418220030549542845962097209796707069482823801334507774555558777485102397639860757560030628913787538590170439804845951201218261776493618828715857194167263080266154850423350984528499464781136257648241461412804484148001069047957764151556032727987179269386119716169095914805204086559309337433113254171733540855144771215520751733597946595526524779448525134151519099061103577442031456639151033450403344043723809277096718533527264267250159026074757893344933800964101672773615481141014136420901246193934651708708657656274329723678204410367979654213905235164333170990781520071530806794686393714054365041475556982104066086069073751398642260903517969658808147003514092993353266071936112799845237235000248590386815692442664520291867943411236576817371115252561014159233737757722601837601592895058796498279392955747261502816457143728410535099668717771606972162342041535614385890435555816700960342567806707845000782301913881249805013407337744036507421404544697745721130105867817353760980884157171085231443518153215883003098750771076786799509866306248110448063497826803606090606227030842681909809460673851810003889424827309045438703076532882538068327919851166419172110087624146361570776871425873558391779059972107371964329346920104451549855558654963334975573511117691734271047696665878901845695060086146244814961615179467463095904728273331891217828325559169945414605417558205863084748516939394934425978464195010014289654946023958687633767828177299193114842312355069904643660440792097109597702260737340810117276004846335994835149424531429502810557680693478497369326634837291533844225347640320266014605653706954754328175767085671896991385681127424700423239449325646946988966136366583853991474397597654134895434302614041779795131101592829401186160350286803405344529230362544537606859630601622832421463581451776428957096723222657446215757801615768500292473268212791500487919319975266252503179770350051204941144230600910083769009243478253384467512541527008068777400706874814451511998236113512817771611100622911651719736352766477282361854773909083616457854386093803992223026877126353439316099300675108615242224802412037250973618454243316953250232153607425384491131729355869511728008238650912358458667612905497014662510557817468360746198009494232956261390818310596170867058213913928273301939944333851954198658924944047245372319061575233478391720702435499834230419446426519401929679550576354657743216500255133669050911502412999517174083591983584324004127282186804482721198149873308870293432582200959376411690077584046492159049277194181504977338256107034923993687423544692976284967809509736084216379131631904531781594722798609410827932863535691696639869807881554112866807810537046419491380366336332383219507399604980931157742111236088855406047740661269437995757009640473649609491735425382774850521084283416340751487599662782502941066164369201251772082132585312081987375065301010464050885672731982211283437917145222358423054369316345450068446215445035860353931640945686745396561267837062223452770833359455724916631101719698364741005854614324070719338422056266733106528004342440690385846708288128115115577930181136692462462817121385451624369789261012818558588134228576304156452453361437664765870673668475323300272337321736945346551565681147962605385514388398477115378985987057158609689165821651384117542094805020944176314694293293733080406707070867305620179667867420039339429989199682755003366674688736745130976612211676582966684025263100622524867268050132391018880476259396665562656896302689138660690643608115211022536521596827447212792524879584764609688676782573309545817939849057068651577288432611610867448681844948368710434433617787835066368837666866597926097972606861216162310840909026249355263575448249340499219141620284340217457208926259395640488887732556906981548248695114453636206465488230318180087371760974413884563067075445683574770197277258637739808099909905522295771940119005841871987805864698463815320495697172716872769475017005764351722822587324031878807124626104125438312013303307848003836656750732822750258708262442383322075932581421233160719923022178878700461704544056556069298338401173802420719285556616005427545406859389717550704796112938836822750720916180367097341839510316809254938081153834162088678499574032412218850519992608524125830039506433105003429801820915287401253749288290652874506303454363842340108141445356392515865291105483869122726309211542706403506959371304162589804636705461662088439312933806736943252362627930996351686711009025131481399932995028443912186008551739811510390788236389478159825678960900439001525677849993179801543336188802798178433079052216870340724108385543910112627864518331618645221971537730101939139702717069493384087754480105831243131826889162718521991875462467036477361983760854999998172475317653133095480801035572013989018593249912321336667122805273165565149044460195361359690602094265957053376334553462001370231769224384416064984472347254301475792688217134563882993008580116892559187301744839031748764067411314026226837385714571325895734138399603600810052496861987560157281397262194492561077596858399251891622725932323192742985681034270354982125583481745863875933501656001628134570058930556620304919179375091968300572365553476870297755841323434483019314936859668598466828746065499302871543882568912496984202973205379411967326442853928056909995851539573510410177038704995191033160408174237974234201305248857320787013614478853487464951835429800124214761272935648878326437524395637276258941099154905218001127711094316514715502300242102909278468271951885446284602935248901087040361833795278140316150986774798512425717279438342774501232522511096153379771948385625963918120059576963601836653912623858969759166020291125356044439719657448580816140519965506905585764625564723802463952622062701355547749238012790104634752323693741132919865109615842412604709014775575619855690115657595879350920526433076954094498988713737280622392043712531515567059576696238807415805584643293627740027734543172577800711686062797390220834372339303922616699366444681609342127271477778934163334454046866352806509892314052565422517308555341456649653221064556153434438055625754178747442341232515062236081677110236688107604918130545970863563018359147760090724393173989589805643822686012749637288099767696613143926217978188814711704631143302499275653494292049520850529778448674866441374806051260426941670705737485485228851243689835445734956006096779804476739999980057483008136954179774511901871142633829084585766236088389923663069558039391138456764028725483549233478643651622349906257871395721471731266053160609932218683182567293565319382727404957247701238542939452701830906327693407786487051175365114161611223619987526881856943844143304237116292361975884506136938799995698784488934678608953315744067945695153548875820513586405511033491679198674530811503602561648867136662563991177904790381703972747913129290493752394438206643612002838680084423006717271469046959192801728152659469536018540264668218087086477496728077549534311631628378419171040909575930727523358152398061980601518726320681532680868189495791965793620280523332529444570791494127479884020561656952462417832273140964872851967071954668188180660782855143194039577819468038490363878798160511113860333083950404171960809944194026415151656333534470282962574301163447901674336282712851525097551493993407678722395240671957071656859622474026515336522788113598969312651655741278305750257687342427498421823916120156851878554565396244558124360296347055422253653491845191437118782548583216892864687202855187424082585460709451036874965845449108571784838204813042865422357242884156954325563674000827923095046757836454926188577888953615233585440754654827171977994197083966376278879064028280196045033757461652616761377462157868053031359587736003944057427032687768564038056342636877415968205523901479422071099706203502933356819299287622452842495273972161714774567018148884481565616881733072900000477412703359611157295584950166767024560250455275659413561775473704142198634798914326481651077158885681094298046982383210849983027795940205700928489024877728996864712922706027736941926839147567569862102566025507173193876427154242726052126887648821069805512559180289727873276545594460633342673394923493831669043708608865575946128897531882447750833057864789048620565322905922732442715324792920774020127308932491173741894623011821378059756325794373343903078487142656337229541806147213502014886164387817059057217542418412508890702105789785638225915014375233811666789155271591527008428612561325141041193231121759229277663150311392192592600365834668205076333354334830350136377987478298814864948804812033943765457099104657000394571741816797554978987005099443160871638599818103428790213107542409306391625839816472636402166635310413229075556023882909543444113663365709763309155804586710691515866933812272668726960272519533980708334709495154091950980595570131516690646713651509831568737342046615899320707614713089954350636310858870992437509315794281818621900743092908747078300006921624506496280990210618921242942366689672581252343227029999547128459110250472122410104097070775807937635170930213690516341174822621629908268800821513480954544109319037399692710535570651292851329738065243899893570290529293557302839180967906980015948414700491166809548880090618025924413066082963107994903490823144695759442284460242461435115477857036876018904771110980959691226277724094426069485447930584074001861136312113683866917717409836254043287282886443983519609456760767899402540653100362267485628682687228796624745127190014801989996609929464364115530487215372648765204309504312877230417481200890753312604936257711479208072827384848360642134880468689925884553618211070185912424511022756882074480580327328940462293043512839382433024821616841271526639555441042648711780659537722607808423425573697654954911043920920177521753301516718327971652590248332290862903185364913529477784355027302564242976262845969063710349770887599501480227340623933884772310703192607622592089877783426734957727693253133703261341585180296598377496296197221051245193010680517006552654932487675382503852076284061153657956020034037727071824383644876584285376452457788109113847383481407537705597802274743209885468038588547534627586283841455586547880700289604908987245153556174616871101435225439599931615664910617769000285047539070066553774461383448125744384980423571973766578717053104290260922746450730397579431191669502663622037430385359787043936142304275547443448998919354157519179466272265244300241176049234468077215460541518433833147303859080456320272058538478871456469485776416346061675726088604338606833574440824072465889551980527076061751738511920993532233748918392538391703150422965778678088351024488241770110783666051587135111024945137859087782299789700797694644578935709591515728355243724702134737232867751728361745232410716913949119345837716755505514995868658888978263376965519081265686616766006245656972091904647583532151761514897927652302865461266552616535108294598469668842956762361945509278600709253102159166173365101652239086532470489328631575651443897725675701566676887250697957373929251701137514181888471046342694278928125384456458778174525606708063236802809241607536623769574872769842636684908342311368042419126194280116820195837186433817898841788735269564458653509621160018322986862249851790965647695849764550802841982918943147664522415807758856120559302120612085799706692944472161869342631274039465146948757031336283476789194652814649543065464318726880847112887962913138585792283005620639589092128697743652378757929981252094772341618383433807954010427770808979348255211605335882699426945227085516749718053051208442291483415812346266876187575696027347602647206256272943740040480392668513532936620486155364495671113557578147249635554941617465182123174187333520683731596215466949245578523246514212795490697808169780784684645234420254901386511022829892700484329191282925162077398844761972143814089129296195923811020063599729268647795139336230564466003842445775718559099843434733986395686708893763053807930460373264113741441929942012512931258709705318508404675749973472671826676547174216106748163942825273051723194047376965909937346917622905906407564160144027964989058071624385810351978104811199544807003811745602887319329009956246201462295251657291707062515906698140754090477570741107802332196271306367845341149699253985170070050391943641725350558606896510592881004843415668877238789541314089497250161356273041252325791421202953977663126642465212963157589308998371745937251280450752128528522354252369048873033828757254674424201916574820581353677496760298898878138845283658975093440025244273462134176916726985355879224036570104332467829319667441173022462078307651425206637172129939880741291667809819392543112022847055871652620960053512140380593302581503953727600050488544618164264537813290248314178546106683355854332105135158249615313035641365165412466152546315746504516852916917451697308805502744940239944003876757687238374812527892316443578954219657876019902411302538472053949674108913297717693610430320720750383618572684668868114733489167100339533751884434289751315256124041127114291127826436157228088155987469457622486046488023705506826804727267219661119930888071325445384230886610547633657832654093760496981757644549647365491558899975629715783952933478519430710500392614036679965119909103220772469646373142220961184342269887965636018964751169988619202009192410827128895431475806017670170621749360544861654961098582071165607072412260636752496219511916827899805213184731425935722518864144785039217925135893656274791208195064971870265308289997166307675176216204365972201727782433529205035184469170246468447473593620937923895241729052122865908084867558686817976163077324516404071388252597743153779927992814321741582080374190408759320441401417834150403936883076549363361263040335391072689511107065529759483974238817895738471327515506584870164870070916016904489186515274038691212775030269282659957548468815940664344129584711249507158609599197181512880419037240312947719408170959605051537618879896730986997563490005505371847479446989246536969255617321286857359120253499284914839202387477815034006417280276468404528526512263529406505656916879165957835461056972365329594085202208389989086661727321245573953873010747114805733467058146696612506351111499929222279793457647087657848036078826722992792188353611543838681936446939003644085940193005204602987935943059517178382432638077621221632950029127249787566243623330480541595917688043667119273390852227506888766634081323017265538950053753729909373564998066265679661486430513141231944442354917837503496019384418619240333924454494151984646756319135219832283029279697101239837078222476715700890185057512185022140148577790960466479524356319350293353475997589769771361074860554116667093456275883444077084054901017529475862985143932724457857041312241173718831796428772823460625674078485691448567705902070169061368026997853249558557921187744739812304248831001967176261414744731430081670732850419771425387637124761698016308510385452542285538055075045214054162134812494584806966981559399936043747811335761405293239763076593413855891835042986039750140771325022471313630359961656229995528093302376098844275444877242234733944262224762577949451641953756574458149688127398337608183994315778936012307317485021773207996086546285425405964058917705515466056290377711306191896099789555182910940349071156770001476305319469860528993766948038862693843583471096123016952524958344917557086978059538660776517622908481951768221637236052610858540352108431194791804601959839864805216673652725797967452465939021674116217468767710154327477170285920774539427864985826826108573799302455497372015396533568459368922886039224667345627998065315591706565070942917386565554502210312049108142585452526299596750014669072937911992297459692166882985488950107417362250062296852283224733496828083200342185636110397317526820672964633403363652427726290061195532592542901718692823612755919771964812252869617561606839224359193819791207364035592907675690705465030565991850418950541102504450470073289388961218999837299860138018769624257460964840883229998469384640845418551377223891960370778048564330368888080802887938121459696129865210845717682994326882421321778903468735894551906366655218617478479306698721929771539461953842456467635388401090928668949971116011098860419671636190488231219546946937372907535239296784416333398983783160276508374376112248932001564048240252936054802883058855152627715263158333963353521497687109398612973274627013182586111748123581201889422174254340313363477324813978393927613793051881087191828940091762404331395823173971912143503106007238390830073955228474397654178677358454722030202369308640443066234383377726124282710057590323210306693845196664061676425855490562514911562523330375482661968323955477925453356093815075654407456590606449820087175117271155654471900139528595002534106018148279952839918235806917256113726566987900862244164477484471695849652723552349193152049479367085699739031454093973497684951907349708744775047602808431305198638265379430707351235964099303233143456710534596597179384678231585047769885824906309084721091502747425493503598738416050230491023244006086127840208449469899953734068972043238649687662937153954255908808097027743351334723937223122331969218284574129864441591299685738530355294708779823678140858711952694383610979861367694317186348693412687632610484948908017465196288552184083714098262482162789376806954864994817581002308687006178568297019491995860035776695697526819084673037855282589936104137581704534031920803640038838335350639487580148388513399153448445724181018822034357755788174479253368594171562289195770836975117116190860640401656646004276392442462397270982998277143086026415482703301327825833595681999549164586315050260400718329379819324213099598617789011742077281553800177402968790534264113727425633292027319740764063269694024196804055836828912375942169851002868164725575078005702263073926737168401312137003779098073327146225475616298936271441171642741251045932768049399121203126599402020300919680740762217847669339112049671028329353764692649108767123026890639948825683787672770178247617947059964893373797917321392672138774535081363568260737649484553708964309171775594450241670151470140616241667180035847967652119582619893961469380184219537078177097253047787866003445264359187451378591836988143719621121758051839524905448610620823596347016864890818827564664595241549181458010179090527309563044715923555907515831146504597524332883344099026546810329021860024089715924508191485898895607806946200615025190371524364296700145816325311569349773460799950658338983245330888587818969665146791120700884745312327987475241531627095772405975719266277161650299053251578721055110533360511700836204116880929841155266188347858074336241216403928110691597012663060467706610011005756706378328145266958249546985860575697673127710662042488245386241234140398195065132720471276694167886204502744149412474516488820403502543788028221308752211606219829197615984156864138557821007210025229156428296330105729924112267025548704349678769171020922988328375196707348717835019789909374782832281496401879161883999828803217477417205096078710669904636212695664111276986911314247385997579068615836575364844000058946326459088683050710867426847333811032939327380887412048808309426279934255062096870502736038227588140368311624457656190203695152881972707614007687119724549560293382876805111460043119810238099971633481869343332327156496195198734046320564913267416211702080195197556866294809742190056575569740919846339762923565956723374952938223859987108887000731063343428791690061222138725655401610285645366710731921032499699806496683556005534250168174314487356195083322593522018249807576289270904326664845783991549110481788358683920326377621653244036019324342882375654051022433675006946572159581479610062812354666228772741638347263533820856531793001156851431225688577116603432505557221592546937060812964366406409328852976636958448969611201213846024445263466079347647769123612964122180458497739640782311713160525411039850865051382741889489941786717598307857547027980598375303189615442809347559180599061670708891131562887671339534853437734611537963631857521857389246117337113856878960758345127183424102601459479857334755998334943864069733927144026420541352796964194575995945797083630277203885711728188777021433083346072953340924778720224491575917417736020958084010492091093945680740922786566442520348129248782750405526398411391913009884764392730725030385610805051977964686321865233676077093457408709574871226492115069753218156453018369273336696574839720242923304049603108886505043687734999336896926614037574047249006095598864873668384359525945559599964575102385826067341074104073724559849284535551463986732490835580836667918288138753026002326553970525630613086126626750112490630703533361892915316322867765302448514250338658097042903652774427885218787245122835275736182346138811949506784345837470656950984727264068381051550977895638861172878228279651438175257771717574959817539238119225520516012405216037134969195618895939496570160574431639509321808431058184073475303625825390945112211040490380906116053685184503242197440630350556594086339630218052004232906583590692862595778493794419389581162278641458755459135324403741525632830472738138236920022424378003821431320904961623086090151711648757349975989414190878430777193994535913225690625212457010301128259664503981075295162430146736276745365736661470039216765300977381729615768899446724066784469864462583783270904304961900219781108971128867722286298764352843561723428356573725865204362310580731695377455234702842715085008646479994332723316040931890575179853441347273020195030937543247116257764650080670614059271752679343977805641281625601135954335269149273163255966141232257966812539045616220522874744327291476477435426559343289837890464650684723184846945641018157536716980685249917262245093173854879967531799357220108355600267429838642660871795772149920583763515826764157380406586796422491038222771794679753487846046879894449505570586320353614513151850281368190391818027706897374947410255847644891022412162325589230802424338476054955074226437744010330866530001546973493867386308093691089422875640438850064684734728230607281559169021940832052914258262548025540332817308135259619793448789396557770622212768891352677098239822505218052804578912604492645624428615047415599841123458372995748510447829681013599196499188309867677709333789951036863944096407020950501311100589267237732561118378014473933037805352813588410166763870476681294498636335382903165895021041224840465672645701414029306626845623502914814992453146626767993708430685360233546246385507098718583473352671961360724553023396634183508324684429118482275416444468458786829732988315791199800738360452616213754495131343913254890657769271475332906522249333877782199413640325738018927236233775217777904038202352793310516961938923162248682627841644542064163672661890302885361870996537421739922890053862987244602400639299909953343356742793465166608702672638565573056877223205816811692967919102514254150275021395235813622258668071767239475436904264427602426284306979162728990414558621236938681467621981780462257784757327067045462970847787517663147843015816038975319986973576772384811087389444121560510287063285857870308445210431149000938275726264832980641710440422404545765452947481758066652712900105039139018461988976817947985658345968284932186357475122434751790729457749728122118680150466963467286319876430260886603102846216703409613631566512246076025560219860746902062314188336317700224717239816048077718410758030678146403746667645362749631793476287219506303388658922842553023226280021740717771717449637109168962164662778834114123591873350001831717650668620720766124208737059729405139375709403910140654636102729514007233146078072368173967388513485966137954999515301324600082232871103604493272968627593122811862589960696615613481135421405749724969237086374671701222954846458118101167631701790299790324659201627916327310411598472945544484817417504846229846023333716152670134105103000735001860584651994732264332338040996446340461979296137204397732527314780322191553812435667975154622956252133719589979910502837080712913908155306503177654114489706579067169149896077880528236793061839834748049918952603537419681496346936725990737334375223175040794392406829977881024853094307053029706628665316252415902031243370647432771531857931985833506553602812632073386851173648813424070864990820074354604752768987509892449155176841375778111175595539461978921793219318931086542802051001545548441100711299052875581229200021316114092585457545440293052337970634897459327546517762900396505999422033512098586721680464640154969773169031626342669446889798826033132045425158690961621960763434515349428864827680603924671509764010051041595362473601511744073385453050347047621689531709915175573755939952564624097823741114243324360800583960518856802862806890672811653630201870743569060349452024227946650702574643240551504172102001160315314027870288946813058820613131525885041934726380324873220497349530097438391445749984477072708437361585054925273152580793836927562122352001249248572863017743112704101372711007741038301595115575687594534193166983195582268001448694630302873085752400029721801742866020648050093918995925366799842265306417131162623059724448600473469039657584790006174262230348393771976129382337099652601755920664753413285602177687494069938660116090450689216969757825881728707783297303320708604232529379178596993938772254271465760200285047996595661663717229082607573709945171543111926854011054181503528213242445208398871924571499076588146950194428776894032081545784164106715426458098076203847611106900186663921240668998381011737826025239116340991431155234601010797713618193600778346451693328590108475587688759251516363961237087482997566607316661087395831901419238002508563917523686063628171487160894400422285021032797148694544415212872235063570888542646081705638750465508737445194028869207196723312822002752390557614372859995290624456473554940322663747876787747095350366468459885520239240326300514168744529294997434945735696948531777538863736964844492898637795613359844904967853291886317006928614358712634546878394187791624950498495337776722487127918737944776841358179590259830607943570651253694755673112943610837551334587752258029835109672401653291182787247433052886355264175103451291740623395344186195277437826992196319750371407827619256239519077631061326152542403680271612211025433324254974673619494242609785358437125619204856809334543633153499322804161194323551557139445432284250074285749013573656439182041059434904293406966497544843530584700993491501146122130801153906197119845333365185388211919670985399049461287868721903604288090756224516935175587997776709245683846778235440680832845093168665897308027072726016138248475038874895752430573614584727226776156617123672121428902816313531602418910329840511596395229394366266416221987518379201996493788684385005843955008602517099245155831907672925369892849797624488578457303900983681903721868080057854380721321193517531812000598068205759297114544612541890842436998184498368435395510413833021735789504366476664162629071757124508371552488857548715454203979861298664775723593957234056793658033655764398393916818001417897528355073487319768965382048436725115705171231714184361558975493426788370927630810636562287277497222655375470622224527528627460790182704353273007394157509931246914762181364685862019706387486258898575211985328363068048706642005414309244312984730229285493010072270045914420642517874106721295332993925780046805916291913335660080118662555240570573274566920034318736750363883608430924001776030326208914744099980420846286154071156766440613748879240914212912226186440987653049859094230260622466831163945852058561367967941500921667325378854941104995776122715475181295098948486176406985527282147384780144935996603050679228977599169372406663944548719657491591108704248680421588674961755106751840088411664549700650267104212946980832083176611583939537638362085732384311398041677100090822727345198369496890484476354602698327824843398849772892851384357875658201965503782479303671550321583813177411486375515715219145734615892728323017790840204045706263127145808321172954545463451323246204727103882175912199044265606775948252878580397891660048155716634576191725463787341373349439234642890621734345092780310974501916612076580122343604762707688171067393627261220430393977268086067197528392107531816592279942025572016632201177936848984395626968034195992608783794366087935076320326646788687668604895184708355799298760884797175213500542642299184294325057006611846151145781353191445039933339141838289112888163946035778321602412003935674634259780573723839229033164519014765065361225859160381720558007871297920651905090522761145284129256846015951272773833919062088515139703671245705286008920734932576119832978043965802913094843393052593029284575394575221866211881658748010937419776499571366121216967375715821678724658825404054727231368556211634236712311738536133883024921225195516134647964726277829545074953401482651781195548129544546112003260597707215050081070002905256538246915338330498186728762957987733826598519698146351798477443865472745397793563764622642349226231555141419535574275743793553993770792032563770913792861848664204121705000675235924108659754192640593597673022705337202985746127304318485521523453455833234024317810643593656016737497598588182568618379363850623015536120905280910380176325252943290210244213688863838067611871340554492359709985650979961238365115426725067169384313935715522886361857408130718387430801016515179001474776432585577068924800978278336767216496270411625312924075515044585015115341798060176507336454085617629479607405533852333615198474585654863654667685752264958244298338256995917551844846874329376055844390166194820345192124207184327457242230950440439610497848650398090906299190256465644467923284795260999247731086581680846530981537892468443473882507831248041709996786674464189517206767253352197719883714796638069738021682422933071836038091287112371592873616892382846583287475526758182586795911169462031357212099972172375075386128688071080282695446744192647796834873254753525259379726889380948217216227820845510816510160565117597053503178918368729969963431286220593881240120133199213396092979273084596394949335147908283051955781031706291295695471063776079471349709027110783730319761178865948751907275378392160916922351216992011276728655927678313167186849169439237398087144602618615864442162030105631967987864170739728534136686300997556437700072828432368085373950236060323603548693381951066903799071900225277238157324013691374097774946609272939673967904243951496949965679202551367568905079699296704670119947817159146285378251104314310793161401896667419874570538433978874470186106742758766101468101949207702169945523702055601581732936520116697653167152646754936659860187959256157535150802312681760992171525198824999151375762333427912290703105285544540623293301135331072420803969534808904710619734105924109045704162635005844484185115956519706566799770464444724731664368000325093022306272852366898692367531694359799497478445512431923921517463133769862731926861275378347416095367244406204749762632358916882178232931905316976269696689703300729269071557115743111556119850298931096521842256408215218414461065396316072297599681940616916151021093981398254739162479813894865765629673171653054874824752796802058968690704866263228509305465009460894731677216220811496723991109619207721251958379778122707815513919471688707786587219929403164976708866131301657675536492608573860421778688022703660707390483741012158913286438572424777449760691217947556310560353807716420557496794264221903746117201664623094314157947986848245828146911878810992582258076536444230347438085759394571784383182556811772451967380854158010734393334647087918002774343355878162516113117162913674008618737834020745762647609289655642678418874657208340270459818310202976077521026449162207949815947304268928903226850370417680240581343249531420304203814521684773150170489129193858847475973578227018923473561080913703944981250343292768060147010271839167479414963714673726002827951657831842492984867616943151921348489678214787138572437953821450378756375621499254830567582599293148149431090547682796709125446924449518952650880492442758170901173325460624501128410879422207856751930157747165609192870078042447454005788524662815769120319993838254446340851413535473145166345963842238073103033301420312691111604370738352345274587899859307090390489958843468523511828264205778639836740314601864549528393861945340319379098224193958847868936329485099506890126088086377826825087265352958771521321053524963580332356157104447956143187746773408552778064888385360371949468542381469534949917896444457483579622445925021467195764908583161273766226510197054027390056543403394582650244076340407343691400682157075072458991657080156056018821393449780566563838474176019488494611277010719061318400524790812902729920169265607553089094576128443942782813123736886192366529504008391414480436291891678492309156989936998436920197760888133971432749192632826979712923383402367330326978975590762287585846803153516240527867433343248983065533085169837590806966268095648714509632396184267307292510239990243943360144830204776629790553766887894271108271280453373601305786736390984476545272789336601086619876213894815005508651478316307845753383077814323265982993415805269794824474727931886299326509459010183297183906413105841820087205222839548016436287765554482636448395267950753259118199262780982720008701578108583764644013299096615025702628205554571199968004540538380197618011269679904526730957107195369018835179125922981844102997615165050734670559486082752583178522392821348325789954404842364309344219426207059279549989763540309948992682289577848506830222517595449035983904097624116399340539411898972062863628696570645138307506399006871651842530594131394045121141756893283253837684904226844904026533578394228819901981427876083815730383594417214234956562827103645052015589846443707062152103606944681945646447702834787259560511291735282710584331379274015628195200402448264331276750108316559524641069732051434407118347021735462140694600565300708025144758625415883770517752047551608439360671392341161139383967967472807784389806863700894923688761581526634674489751995769467950297948125113459856731630789176851576027506647257665940110864603536621166240775849412404880320205932731084366226016851001172825608911708105888453179201324783001355971735025739323669886010553154119365903723813326536615803703532938647456861308980824536733324381878660625362559284405651211591440129080604809252480241432645317908414129119631066675825515725782903153483014995129367364792524733182922841900880472431258075319717023461241161021670993294482589548806033646566934694498232381660218120619269201350504762335439758162436883787554277175649227817388959493105053904816185893267466158775940119238317182385584885062105527634452266400715838143863147982462418118661817826755220115360367160269695326790612600908221287329386973642586087092393025212532827452905913792317997655800893076025943458104736338358219577952183916436064326962692112042747348001159113376956542699135217160171160670523052042248690013298712738555311665907660249455977303828431358490666602936372986551020410227914595211878668572649839231543415708684786702941378431437424977817745933532625794576090270990114276252210809905920773631491047833673845221122356061183339775804514151570096481366310793026829181229160067570947599553142979999311933511718163700148947340938031494625958809103410920870330569865618419053615605989135560352432080695979412590543635016111312171901700145699555532944834007349600750837182549305828452937889645909680236437236043947109946678197711822959230434290848382060434446136862103143720419870140427866085297446155529080483726668949031216614880368731246762476898034971791416676331469849449312638956139048919349012887727682824616652702050810006096783973033568388569186969045720701864712361506339071700254731191605729067954333702374940496542344461227877616577722468390999579655476525975722649044728290301823628693572162267156673275604645253979740018797157803127649087046560553173289841643472505160986648090996858671742492447837514751070410428772123099030456015343022971050303910388684119949977788346879061234026023033916459072154707078864024299746303866473309220235154223802077665657957924270934783236944260168403898782763763465760500780634500257730095578046641494997781202839408501775269271469317382027977268924254891341141469845230400189526801836135506711077144032253721990050925488647948429027354182442077072942763431958658145347913208022199832485735904103186410446542104732062866963875536543712293162679706905210700668894405199287635351686498515592821592943759291643933849762389748562893541408322092931309390062484680266493515953398244454441267537543340326174899441458542671259891129239144448915694128667273964845921019725497289466025402002316204427519283250063565429431532015658263080792712945603429505187768284596464584819724429409633076367451956198760228429246484921897298748256574064452309026380501482611645358493813060297958459484501874997286144748011063892268633042089546972192731322818805903026048675755516734146515772267050088539924573259621275927164605502545658977431696909982537673756930859779882061030116605797763623220432147293037561828439567447771858690806064309054997705348802375889283502370073280791409181653295715015121450566711838543798694006403446651573818458573560858079119191029802089646714571900787303131259862476466693000479031839697827762068353153227121127695444573385199557369237343604730795429211811082214978524991077657991311387298032356730918003843388998565593075949045372885390642461785864679763968470503785313434717582138175051104305946373672475638826726182379005066241138348320416628186942291694013676656044193219018551448917089572962244503743104404424245245176505754012456486505751722195945626151661045107941572184519419469582442491607389934506646969004252064821693599043496826292892510397797350970564960519802334319511323448429562299521731367045317835256443845809241912127548601650693939686064030502898861349406033069979210448052470954480919489644726322778951012804664016311640729658674099763513319002218289781080821704066886361908277318375154374898647926060101058113772287219755664436879696057372274543791447957024129607526962211448987104696495144730040073402206637122928676190244172290028036549739106587650026548220333018185366297571210707397826760853607189217609246197604724956854197000355827159081200833146293759619700949339855558251554062345268590762172118460382849082598785682410673225976043617685173097325854082283441466948779155297262748005988915648794541832732205897888849315077731465011497827108124990976125400857328822963120980555677961756294989178975247728593731508716025269777328725673706306305007798528293232886626531983259318866594562932543444470323508219886920003056294210264763652999507941910888853775122090638068208186848046636847075722539424360647562609425802216937518843895409842784204819585600134881401869344802808677876472830934812091933558626349046572593779062004255326529430830656237649318849390663062787011994694107784963122909749732559752676381901497127372173280809959087822601647980674501725222202060292209126856635239046259337636688573856624570762224165881946321834260371695170977797358132370346283782169140434958037570579042564608949014672855900522960341737779331071601126159821850986052351723185970464994636964128871273972056094643410566714223488760731192267558176785124333702830065955178645190417098361876167598674955211887874250383766375855799079696170914023194888027211059930623785718908770530766167574589896751014124489535105005956918984671842942693843343165458941974615757713856453485790692308482942958641096908145356374298477918257694904940093741950257727627100150168918355338481967428551770144401250945164242845092248778904398208514543224279656923605298431393083756561011217650105215275394979149526324099383590436350289857132904620005077650583563156985020972372681129037532438309815358772610067867797686657018037179149991637739516133393725522943067609237351713797170993875087607527575128901078065949601681793454151346437753284787175968311954004021772235967460021801068299054424040211102825833973809527507673379170508127310710175878551136483927564262821143278151706016881471713996689979235756105632529892673465179435832925505876431128712472945199284427571410602663345099423062949668321768119703860858286559570976833057317137334630628191064940897862891108882569587019921427451468493307817651058094638162221433149983169114124244074013239360237950154220373362111821496418548491684406269852270756939854884999443885009715920764127794983827915584378025822666170664528436566828210758873015583400176370212564988654577752758703045400993199315423871104416603317157810612138966635109837460182874409059712340212021049339681540748301707646101896433898898546034347420203560423675101044910426619336276845524648681210690120460284775279176780176441304272708284967071517239449611477188528076465380320036325324251287398247361462930089176996867325786656957700082679257752499476622820631306426073254438363299747287094683841655807696791172020684392502826154641982934146927114869029284919692099969389839873240803562370770916477540978335608122156938398950093598476614404534597517595466733486317075718968043168897901823071781478116978197057433645986339965808207308151657151864683602660603211975729137493160049501273704098221894967328518817303583432480672357516261025980528434332312562582185964231478701339383710865677968917460305161864998454588143695391585536947260279765885776850852855886252430531491823938141238126584285419916568660091205913126099653548034131316556779541692433290380132591514085089669683575234737812669936510509816189123868194143704776126919434733557993200020498181415131460078841214600476732098114993884361138770037752873795426972913223081904632401512454518637590855529664285062939436270646622685297542031776319666069895132425479440994566075041994120435685101424799558214410538916780174222762825496401292615764767013910405225762350640689322991719824259239335056917171479041227614496918210855073502061699598142392942679808470273301558289516114666357829986636049854986496082258799811215003024493328520673697974314368125088420821267436175862405253616787576792171525574434675577965198393290538345683791649635410314423058469787072327907055275374547327618105884347950393727253025166909336694741752521922698172826486372810848555535980810978904810748103542562889554714489412159785673943200191743438171619376480178907180038431382983613215969076721315796008073473132125386408974169444645718401222795263907618685574585077520727142238052464464995151338181455210304282194435566739121184832099079479190637312557253502521653583593941717010779061047959797125363184208275432803318700844892903360166273213870117558017577470730942438715858003987973045412571346296998752499514410571769808200494235357383997657640294358655655255646064008396734422149067243287601177533382799314118853817027266677765784597991274513146978134426928720375518886234819330836349575989866502516492664261815588368346250521008092329910916105016385278907815477940953375588888359506502836095774545323828796570778940315791661678510775821200519404875132236230879030856106155880398863593909611708610765405667486828765963654447219033532061959196232306523460382470402059522544569139107446341524756293221893497935328233952867225131749400575464008130437622067312067760799283348664314084659986741792653081365548748057977519360529370844596851387370785110646387114682856208080309536437274010334753512329296241349740567652038776452596412656337073165178396918369530979631982544459864675136816324373107749645053453066907706131854092099987968927691249920540604209959846673067916533297679811613119057534266729949620764210331804577390800794793226048735589792530098807406621015602030081607846745819499781255030812150672718954419112920880276092543517386786584562255335368198716677147481273173614683402463232188814289215095881221503600773048259669558767600738734778874865909479559713754815564494731879729520629147174606615534153884319097435914270189140315563570044707369066307032861863150580493638491397755524830105627584302147845003818964654948703388368685972874838384666077483714385492131970483748563717909604139903296821403169139584529479854988833962263914311799887387089611903302590429903757917127534669667945116529349388175391545573275234631409696524152645135870600129443496261257105875773844479402576699892539761951293671325841820972989171990827136268428992898765870119747225094990127409980331637136987991494595159579115069636409780178732720919880673508034771900719279124594572315173864439024070598371760273365710706720897740203868405573237897894918023892083768086243476812902342072127523730716131599359034264978216685154031744051110837407469277737165029092577256574035129884110640679406922919407055641333152619317642821831727384183620472904487243381662665117960840544070245611871003277413417024881313585244224208685038657595777409886383818015065877555062346029561336257531542046297729412312351966743565386003107172528159911261167373510114369854138906059737422051338942238462130237621628247290072904203604330497147108814260181221344382119602154862527188602281233099125196261438365142422561857632210769161309887491139166792723736475553156615819292076768541259013873725877875843830595807270365650890229487716252829900911183019396209703383214537470825802992721377554510203088376033819909336734046873429015374823387552563177771334878589670510085085895139994732842562042663813235746785194803403755291188555523495707139652223458788934399817159601963209096575350446517485178270856362862383637934114947426453877088450977060750099060081757890761764996300669591006078867841109189367262369394744357769473273909304461997865784423148047679688842187468704615228254645253218034286321585157051923515693626543049429072413444137706606923446817544768072782459409019995838756221658928793341147753455092608478258509694190509790124197691260503449587689734602536620452540533756800985118825815744517417951716392233986253078744916820485854069483755435284649142674622107534885842146511252581652389719973220473387446000170118763352215690952559355309846050779415668708006316348870211422061019030532514228400222574911537129187786077051828001376606885234826141808836069488729339682863112869359313020536661470773972760863774214534628912962355656105401491281701777043714245929183700460792907125088092268080470218212769401093295463096522076468201833016072883266207590603199717965476925359242944080311307585870793221075457608998087679817000057474136298841643555533364635062688322079464947328076270001300706030750685998134506569531886905333961821421148545117492543886639419524089376390405518731990566343709762204851796979815689012595337119667480497403027503650134062570478043463134463079332928871606916689067875876144850164382273701132498059065651245901808217714872640035382644902578313523753292809681285449150959244278992539349497478354688539413457948372208594225571785334975444419240423287272324655816293863237854242737723339317300929384680185159430349697963779942532761332346297122229183210115703266989837196069071980929736923249206893641483474011946024779294971099904771603276516227894179330203919776378434841026442053279558406214602485861138222160008577388944736533880374702716353801144782067063156244656806258998218966144304933043380096245747928293480635993413805214769380179514893264402445326891911067298198504519532970880544982852374888978888339887117717563407857105279153845455555310859127324714752269552338028927374433742330859420624058311733638208540992986481756770786573411169821040429680892240679486869630848884240137399700681651106756889214239401728290702240455635876216983347168186915177786146755695151964504113331875655562162571070022913275970715432781290129981867611943894071754021109996207731490595936804013106148866324522458281780696979406058153091270309772088335283533823801326552994868471664708153623416206050975651106621728762539848374978427649314304239547421023310885865887763051997258692741335000448824235427483607623266994954529506612818556084149353731334992746485414567160697377447108023853317380070945830776008016924938164321105732528414826463261143140506854662307710029235943209003449399072907109034677499106628058095722603604481807624961070864297167668770345966408283928627862994320217385365809203749570136147661471822947401259644041292212063371674344627673532495115936129725783163813188376695811180627923114636754757157854833847690495270199585628077346925016671659372053882198283817056838439166326124575619631956987839648608185918357894640642907678565370125634236864214046947145220881502809677438528715053483605172980391565265115499979035459910379341898034517724933164765202639130401472929058365904216283562977031700144188902162409584413416978699124333866928916002044287251296239311013992408935458297718230218548089527332248415651603456900103713955448161210379134954529060228722302860575387267635904610617377107269915902984487961805178918237555222886706325353157311586491848736659861018274322639901233864752472552737773256837404008359764002062808254749877553622430177347228234295608098552344679279961314362376606082267443918769697526190834263606981537995771362749630547145212985742096676333599866577515270715462345041934569093459627571802582249229202417124768009033999235295329294018148544682148892172788852791534659639332265580118479213081630263888208914044814766406976972679022866281015595384168261002107877570811670869318973276854103777890766647759638134607685767521532549184395848559775946562701754426931167395969252930823213810502030410678156661212611599136137322107159480118449409296827513939392352706052141684307330188724744808005523780109217125954985336611295916581341996204173678780177197800153954130917792042700048404857382518946336247456637616252782986340177870150455475555799809982730840366679797939849510378856340155364940588323918537204864765748009318437263818890343293005731364255613404872872598917237880023463881041786762450487037995525972651659379384679403791664533807184299406750270657152877724044721494129302997085762750070730005832942587996807316136380476973538462964352502293760008152001703493466252092906296574125570039923120740853835050787873944595121633835132980756478131439079645086976403520620942003066105518734953586893492444472036741488697771523735413221788538232934971829350726552205413817593081893811411218724054845470813211669290136395562402765193541897582818857225245693241838714536129796051726029122785415539987212491736158728057940841717099348984670219733988138720965096593699738697397657354033780787300623931313215577812201001176819271151665571138027203013041784611803458149051919161871694439003331846147307136773510374864947266524277499589212808949358704017266806656427494173382997491865025014343594274772553990863636572620835751146108943469019731163138881188916811492480475745125150265756401788678446998506429110943370744681040364932737111554566593066576760564043140833704924301827976716114227479816004139765666294961032596134980459302369827525086072304551199258296812618204226484600320865287448927570683129150776915046482107480483152439662192423875017514122315442494034247303714062879020776989816303692698725406542982644521018204500685706617399189526173094696087259011930324160859898564758206594962459857435328791694832940646808238675028817210159556235960431774259266669033779589634661109793446610506929861248011904669812753402565566488198847811570803266246276024939575184823384931886567602119799262760159952647740941252958234459372621001278806264884125179813595410283107805399341576023195403475772110180577057947030927937595346864105573674840562889336551105315366476646252775494074635542829263057341647938197159521640586880320210442090091154646843629757018596084982666558324324796732137286361227000017808345093401732823159600135304896614034434101773648082620330134815974467133736425300252555408013870906781048362309054302669440324935949523611071439491633692109245184995388976796864901041332440130201600115909522452635337320241714672351194879959852629606649467110976186858031486057070293470906980775464906504940654668088514254154874783758352264540557496851937406349524156908853163197384825799960473574950508165341437486934713536388575662433338689733749085800244100977873879667475672292394802229679633338506191850974270433060734037438515918002837999583035421591792186832074345495054113266871884175276973741066013971737490128083499968498932288713390880742291466422510886874666024352240374109990872966517995656890049505750617882825864141135484560292035195654339483372487098656173050546842325612491240760987672182900777703569141666313142671974499997707947158351966917253540985099178939790259782338254795627487163354243493468712719930074042339936698393121693684658960257997828350038881370822336654764055090392364747205079727261139313973119278207412348860960570999101550356887529581197132207162107173255754243660485515354803273068042945551104246659302904231751765492053415944724779897237848608581462354404318933669789235456856230545882935464547041225156741064172814401883404685271866080463533924720784143351364978434458132256428883106885593876795631882795946652049818812277879507490744037581485276367335986115144278994224030111201595772818360463104048708536848713892975953793174722056802507531835427268684627815981418729870989663001022923167060275086765269085336484526889598100625623243004326572600290482281286268499862680090221701491314806291602212358868492173548107931554256287387232292090754219688974080378041740536945947643842367625379701373700872804655772205671530584572160350552952008678349624969559229171622301352489986059663146296479684900749507822537950872460062980496601252726614188320713231210838641393543186254622056008707915761855314170872570360873841782251352074120614052769022428146061663655485502011236340037739267417492373161769595898291600864375338712903625178785989914569089014519890720270421891405249180263697013013398482726940139309259899964782505935010120243846102746474810421620929932995455093732531966988775741359427092487473468088044965396453646342486930248594134026355630930959077354576947033558776288473497001330486282225078261548029664801949887018287251369471185648220552187762300887224315220292686443261452002193874306760545674197371182358733569968813128588519489669653048995145378253350402547884049287689510858927793245315459698648668093671105879062881165105390588092395336474436252325530886383035554919172819565195455821438335538035653381407922018302074745222071790098662981913153197420123345811035585033433644507201604421348597922551380558262664881753213400275731738472766723935788605017706467451323562000481908309588778149405083964359222163195881732136916142255757200400857950002370143203599456896067208117948607470103788204011276144390943848309720639796070569445059456539714714978456798295180261642772246235351409811913555063533386547234419960672730548190029023466869381306956246107112602396656413106576736805202370401348190819834498933223499274615674879311419921508996403728653694201096395182733196908379340891622252176034420117699831598096917483020234689185619262289606103494303714041368841459496035709925250597202046076782971825722047709430898521433069849915473974579855200164332373069642620476787707673071313471637570880356165573044406077125610714171985834089787857442497470742537846301340121098763692976379147926640407427577882741576908535745738727254409573381636346061024243422351743066456733415924648237839196746306830639406114220978203056286736142989688719274868487779714534746725594943630929634414857215400136330771130410777928941431111850408283017011092977764847681365170680592803306578000423081478623288582505910544767345659105247510095396448879660057265605942010460652430563952995093134597788783091319815134027018123448690352383893920681124582714528596727906061571757194395329383142181593103284935873748949692399278755860750799663477572561280267594720191655805537732554342883418573075970969777368964769509995090903706006565035714185103102638841024955528064342614301652201803079247206635448257410805291076419953669193870210518406279361242493483283915986927137844679307515867978892432363495923439974650087478449132014734862154516366830118276776511807062577178183660978640161150353990449945666095492403341853603356999833902689493843003124844590317372519172385785444374505984463832794872315050936249296548895615831145552866183774517447335527947361853166257682283090689064033184710912684555438516442313353307054930947306705532457260193032563151312365162015965007859632442616170729215568733665765013211787663891931603794090889810958722934317628003051289097833437603646502228490096862491522907055073272220658794816743649245640908042402925910067754913591234777727275785597430273989143139113425798967082607293449388938138366519848144087187132756753184308838812646868721683694479004625987473469718463213606530568640554199059051596440995308974569495813992607756166177488211077264617368435720593451838925950867039400048364894155378994407926420071463987036451557178139989577464595246664579799214668749278603168987589335024799796792668662248377132178826213520284857913998880158989002674125883355386504300835217755849897305708566124226854196781899560339300982053486713397845733548697131749318549152056411392593166315699892760550108059128346054705944934601888736444420879405062387006947261450344287369958283969952177046471197986225867710060941618645566555715002139413129502908920941266504603463323647145030803597359889833467042726342061226566106186691744795198320922172497328123244237698066585172297117774560419470343039507036689153588182951530893583303334742190183437091611973561827927551053984604160125797411397637602385683437655563599272020999706747212703369183115227404155662475226536076537834982147318645515639364215329502162553228719501240848059902830391199463192707261774531724995455858730788616838914775569490378083475593824886708488411427602226400683746735806022131368078473597796150018138257309886649999860894383115072034390553041832335331941205188686055127525139256229163826330345329684133278936501920925734790417528163263992830769943459125959835658256145102817303328822894447990316910558983930346384247253975417673281865683922500364726053976850611617643723374136215990359461092221358459808073120857278146483124826476661506943703005421613214673643590470798432096272935244217425774127226271747232423653156419492587181745832643069844322322475935249953905769145029319264986255032614645600060914613034925807084777875305568657060418972354845830160590712015699855527750511296552452821976496662885945419870428727893956076951539255109534976925449966123062805478479678612473654544271583528843144246845652886727937957958860594542993224933263568017700635898109822235145586667740302065555195313274003932981018554709593274375566123389565566519444694785327133389123394038066417883744388256086763362718885767744550683268897339825979097531868192566471678242723218513456979542744500188699177749703529480089406325988412698676928403307790807110730737055499952137416272673022646481593959290312840268963719568451051451771098743164792591250777648748390189222239725616870802553079811652884303080148102805315798366351800350065198788348763935436426132920073410380697380745640952258670062185549047197204534752055931776322674430565146194692200103882705043909129439635132084074256584203044337294079516867875334524162093642087290324811879230075666157775948034552424619362424101697540066880676229923808373162947837812451367642310940531480217995508531698772419546578431831111901282720491586535174167827652139593950114551191803933924317887684134388431915958126396449086266371871559184355861887644575333196022508025703137424193254031318767879656816860081888949839159592234803542651969252182770095016127573822223038383167494655892630039557959922383067493773983269384068026765173314982232776033607361524784345902372337015412555223545882659795341522254066025563525424663283438162075736154792963680912508914722212231362730842573385621636229485508408277999184963923639588055293471411029511704850139512764038294776660608475200552078119632857329391292134537227615475246446496448618926112652340074499764519058766007686302464999917828748014702444339786470913731168660984271519721863799716093538845213490745618252698211906750290387808318538415254554613354375566041513719765899382640114555375797196746463335344736106704105400160366621264540632549563072111444084935228684241680662578775185296164641688724464317282418523399908159568009311675573831063926620482794715406913202753738223178035518490408472237163529447171780902232754187984328690381396856617992190746762499149680374388797174462953743171763112196971846950292774234478282218098169651216297689526340904596597786327578048539478177701905282833989641016149793452742296764808353255695234591991555771253285465097195294992354132417162700602550704143175905212164467574954962255212683157035458606049969682922161906205376305020231948463983859619577440786178456242748747335461142782854120157109962553498605546863946440895302712329174475967572457128048892647771457503585352790626056981435806549973745444633053839656787826278651103183586600614865996317209487575801924058942725763137095719118409908861505232902697704656788315936420720684070649396003411284193818889166598101175700171618226815136814933201016693365153247638311629091196217815823872222848564406390492997405407565342331364695068286693413654480855036574564460752196949919342873462353426425562813907732233909937034501385833429657934760272607966495430635198457684806453178329858475461347066708285612762356104897849890928881450444083230052643463164399041250061324596836554895717203575682099977654761951905996815872044921897152202489624070214628473364401616803828582289043725271465851241970429953445557085287418271315777453045679473182401728713717588785023969398513953029028047076848469909263878027546077846691942633700838593322125844606824649392200113287871837038187038999880103551057198891968134862715938048510383600044341495931790221319394371673258068180829267511844988285679059833369284203692143450189722760074493875154193984961237428394139460182708448431968983176858043734414772639504282047882950328740566132601578844392129588014251222264404016398843592605958421225301983086260685044433020282344048763048770541017970036642390653246569604436541332070559641321704883868739574222815002380339953074001225807205364332286004793459085737292878618940399642075409729263793280040324405771606057664072760857113452874434570452786955575835483799869933416550904710219379843243820391710871215307309948971508351804013784994858964161511952338319653936995671132148752982957374585337148842529459631219792337727589578640416394016027893333887640260985232953332212212042070645190403898498824662522286188466070016395585790772423753816349074147596006896922209323987221634990645817500362046243668378525537442872493356049852421287290351114035674268034708949789560288020477362672950732988611853860064813844848416062363010401210371656160504522564348080396706580735689431323362109408495085743282774622145163059494563641712639691050820487424383786818116457515608180563170769954004536487938485480616234187726031038019978582322940251402791732205538021749073561183858243465022034301372800017094166616151707324390228280726391778738336784233468315204309105284463953797637028744756794091027981832195822276403879525308658268330816909367718183697072904131785646708007902840578280019448118311271320590874683198551052243340337696036366027440153993944324281594283444380153327029696838419371298091748071376531173029227573870367679217891490640211072145901455685574501372039069899670854253606543328732713440179658592040139966708184270102880194043262171849242858500859583745314109583704354462776998153523328148384983770139221646791735671967497265998912182844187980406699497659043812642908222762793745967073827014421064849396047928891462610346631184925270512990053107607245151756159381733573841648756794778913386733822456887160069669223240240338050872991797265499663555246648450142170747284261027184818398836549367687326031906873900202137533582531599523948401890472956738708418912048496994482335382630045788608076628371445258520525762220619148350286862228626865498451512750652032672561042585088292874871921586854479253580378215218650098255853307221464553447080075848515504902017405151263145617690793510386036638392940646318068696027113081812888397979788579131121726070794737543577052348672855000368340083453825530986994867645881540477097067056580359571429337815231086681823724482592423607465992353536386461098312833425026845374549300536312478025245101613022765573047281691040783938959593733054531989234299783338992901119233951410512142269323804089626695661258675557783603828202456301634836330787718941533688783596733079411343394411079789614871463691454041230891420949655529014725856840596683732474812025415405013314263885988948111591415779147332652543855023007646899797875868959774988451573078500241562426681073552142584345099166169246899028083485155031384695000727881487067889065335369931680096469357785257502244948013023988014384404263498723336812321313887359985698574696896122214547891086549660665439865323364849572848403020182123663894086786958859738932185656335081512621650691676134492725280852461938647219679140173830157384389654806900475113777659840587884155366353223939572579004481415932979252021205809488156539250137037946066741045288631471076670012990000177304284297402708017826413907186979813846020142837634741736486489851009776776051226108528780918003560403207522256078884194022276678930747135657488808583415432259069294967063006127605677654470407109864810249778703054682361048410226714944329242010069789619419562603376933536957851545601331257302865915958017773581917922945359795895805216899219477374108145247026658403287749366045460037061755245573603870259855256994614214136601172279821404158992122367266888201106086421797953756928418881277178854419753636628237997197711782368374059835435525473459643824339785318529496977049804750836084592793029109773736963168460642419159192950058358982865674592976742174475925169165639963866494268733868308630321308059997094865173731416834544155732639430566037374031773876565610626095136995944583310875271845830872459110675309816643964776628578002414954056375107153195089198383077065969241555502553096626077415288719900998184516248561895774046535370009335975010481253485510409392089868654351579539347820355069998082946537675210647453431943194621962085493228962620493187200022277994570765474725920728909028093865721661623119804425297370739817846849795015478860738795882526910933036755649499198845036183822098905567307492651354210589795170636054770031887618074532293611127094823733131705977004735022101460493966034252666111619519488812666021671930435191181257747170147150128864081855519405143731636567660328177437132766589293190924504849365324928161663229893313044713624118860439493598092649629939881228019690000202684221334281128194092061677909052935179890719793226107479552562719737983463011432857628809662704067269047138993573823332696752585350435890626894570630114885700580241417063777806937428913740826652937366091786986917920876046913935589434249866645929229453775419450460557331048443297376510464645134917096709111393877879089332887604006442907909560431178220099229263504844564074477418732316596478963805604735140413544297410256415282964114003532039712369908032385765167121577603684037905837107622803410404450818978258172236274312465592801044535788759720002530903692832750327967092057271722240036993802512265477319446334795504970543395270817187203491207575469142498283458703136060009187011987222790350984108377025013968880746447904214336638487778162971836153490027877760378791238251913213696733939283793993242186494780161608138565694181032533185735449177595715735861477274094358711187127566054532281596508846263886302626644380143966138559895402563249045854828624856293468071762920192159100125590327455659694371038353344421041332374878035469274353938676187471899966300286747620377284475320510353886105812889646375158304224047090160625889166436701724045994890131695441251880136505017783362607963349233869455657554466656018129376122402763622786755179250196739743074521963688934149287329401234196031949481672322508220317545473100032893968716307018708513716842076866138085821439825739358392987041941294792656808126305327641553068714055002549102153561608770893824107299384578469050912109558497386044764178138022037079803022715396353756549317911023842364552427587003457931620360603392902579493113085179023578141058822787320126933082662015330323421269498299920329490629606137833104206912264921350607874633310221905675125707654433743524209075496061600347468466344345922814394741701659394108663847227144643518009792279587059892136342645616852786546239110046415355119748134192554616693221681296193247091869907074135287262748203239432432477358716285342197919944207839069073228608185405633658612124464520392510538242080974089083017610014743399510784199426472054632910676915231248176925339825489937885488979768400059120864587293770908946179423434205356177723107838196149443916090836395964377212655664336929377924504307578885796798291900457095935429880656197741871150164996833280655427848104585942425064117532418142333626019061671965822454241139251720490557767728716502247351604770798701786205651706796063048903872272927191437230760227205299211820111014044024658615375029335647458301538379402504629339274256246385855425227396198129588915464206897281215102088520605638803102867316958977821103915940297033252516032452390648144671967850081785397335738466773510305217280075446159868282369879372193123061272111600416916734132031924386488061649010918129965455084532082716476225720567701871538407833258802298429894482745411538772949416727205046597173639990795970506938063950093640815900018514526656015893676152602330868399709594122878472128673158213403731361495693930408923675831498948369590017631372978432310198975326692354655573679902772105306212837308457062374297953561805808129201150443540420471414413633740736890443723110192126174355599814771332048524164795721143117458042706504223279930600261519550950949912433916293935386897488518474257885218882812549939062475842596969446980106997516307953473710683308586388428904080698149390335751895682148598289988771988580081169758893128646128177166157851271405527672371638811553862840679201819367498949003963074866321334682949350454352493820320983435467943788165550462961426799664986990964432220748923493886633597541625391225100323060506810956721909525329075761629332833476643329573414144330527745410963661309547484559386393245559203898500872487575217431510522057016729542144386218344919423815413457396332898299287481861423399609552005501464963152053505777335167184969908119901776072697551196312003683868469848939429406428900604734094624871933580429458221176168303649912711709535958586835849033934100218027189371180126230998787908480524665631824514105881014039760506302535705629459216812627597297586723222175733557826633935202682844716931686704395453715072981564513146828187402595874124547949445877053698373280966202492870326665995764894738961549707213446590339241227163055700952046672161572144037731818671998663796406959065723572562192079898575072109490796322486161153728731500738299641078848670589675590589805993979022808430544200787980488816647803144635844378824749908335514348808828505588500642284016710526382682467363072327203079898838310899730022922306338379480859473009860132535751629279955478441209053718599191772422246105155822140444302028538087901304038507824441231785561767721117332936147181794283228754306581610803844597124812732579489889837087345640705514081507128389059380937144113603175713675989114233860951678160385623211525930382377099916186695010762172116347369475077014967436754934764831191649232728350095175790387811423672971434468867932002778205788065791131537972808194678774102071970036900301865799797801943078390076636100836479359694167161572756208818350382277057483459245693806289160279245632198313613090363815130627288505534753272213735668653211252695018213090591539371779207182279206816462194349290550687449596030069459663503313917503881474048176283162438821949385106299023245644303077764220342430431574884147796691076461115903206574208820306301506732102313062568993220709159375541613560889057009031247407297327930220696443452395972907196426876294469620792775407244444377758187100951777833354619779643739841412501944907342299994436634948457842920394981060418530864691000544649830059982077525034266525446119995699299857317152871746970590544082884989366095771928122496097039124606782266069672207666025347754265764224982614953878745109948132317298915184278358223154876805322648328210327598437372647342115423729432500608231691999084243603269715643755757287558401385039407384709339311225632841294296920578767256914657311178417892135576494042009399922169922150004217052041067885221431838514141705146623645789965986376574818563129288717647368308531298713795093119578507101609839941321808252254824087457504657269969023093646365675884450996194329742811870795871305009309701217700675656549946093880451837645783060831534757586661903308376723096918973404583974535057474270887806596672759387333862648840197432378319927718159158872362802352805213079240517303111725425887091773957591320438351382292318391971376146284210916027928259806371690676807890789640724509119232836704218419822501686571066676494548462666765388884833181299364029224558194029957804457847340564409372593197164723535888195873500466847579701552394191083869050135249008354063137026991066424424877118901320137765838868858070284553662130497527782898402051032242425720446053049687232640119092289398840756954698985555648514128560160751375381073273220561118660415570922160392578531046947377885254856504270553523665889410026275273660476334274460595969954836304295982251880545234546626947426759428509516700434730447374466260747135437481441715977091272807469495124389436533135395684326322214289987090630956411631767208518049979212801935146359593649064627525366277277658676038626765489447746992592147440414594171495615617305128017772539228283912671161896132763257273168465709687783840173963804180415789787059317969119574523660494401655791416521529763048982613029449185193078216352403412972255663779231060744365614100158657197838840696297017882785754661346705557837387325083009260143392084714317257833322524072167846474858918941590805934458147673450187296222703455645263039864845306037074913474615773373912150490799721588448709615042444153099331173158793945875435349375616059679257656857567859079759586852484526595054883843932103029168215153690061541710439209013897241126032544450100440530653644569315431518907338564769818349426555864149425448459013662585067410653785950377820064262198028894310789579394408184195846661849207166283555346506178423169606651342038042229344897381611110218690318517618218609543461146173685483553919885588092454947562117394325211440768894549598802481024099209219680204568334274171262256538296135592566170087895240055216710338334132254723291706647721041261141174513792287391781042407473617139338939181387313893320217733646326684348605859637785511659808583558463928424169225442079184872894616598961909606164876598741831715514794577944404562935154391161604577497554884178592580505710699985043045621639358105248307209644919563801999494719993506457091609258932038943717295863375989825262975796783720629716886642839582049189220281199087444836195808253384298019179946658025514162060499990988225642514456134434761702685858855941689485252829602746894724996726259391259238835462596360525613107230832052585054511925683751044500018245651342022884338866187022831389949197803253261027608974611858166412995084011726733014732709268686225182359183940182831254118863390069888016674465688444777753825077734051410251085855059569133545252239464807631997698019073411670364525721936374355888307169115305761260383696198375166009912039378889506237206458175727402227455521414576124706358119369351988443598499993598163619366425259814882162936894418595325436243875456518407764632153101753419876936605567288622701585404487051097670037735375915377697560487445925152122698213122656080558706404938238013335208613676322501235354401492286574992670276279072649012932658722402272830126256380838933660066489508409233428104777350390656709566026549247949824995527988197499841789498386395136953042045203122588437667755799488818126172288056148308085939486873138700060248592155236825457375482290286986182575246533331104481687189258200751530180878950183429235851069241669055827714832541263357559785207856342149149263058698164879763426772488516301921700982673749125333117513198432311852007513022068841106887149671667675401624474797662253151997771625490682475224160359015052249627021467306818213105475210737993154412885566413009472992041152390711996502326560768414047119275700356274573654323807487315744960432443791833122275035929946525632839218404723322082935607766053047924193241811802868595692501917373686535037395403529431792562057994395948277255128768802568457996940065230330640534511658831925612295852176680479347041474950838243878500847760763647870223383872824846104763393509391958464029879072416946999578190361095047740324110535514946233468008373868865750881103699586945930784188623721232462850340242901976649573058473948141667445010687722204264367443725582897073964634292334627129869689292910646904079656880432850399207166297712557716661923651029596697450675836432427561271822617598452457825766169392365417749655506598115540953899571694130748293593885592165443553750027705468794965488407779984919393768489365096864538786964160511043731609453218731652458691476697243882728854254221398470505847432277382166997360540595657501388053427431769045142662336255325389001535742899245299970740149103655907968891767374194431623563233681820290825285794738143651760292333122035117431764621544362114588472512619593311206806336303467125255268446255588441031770429398456547918308860977230643429385326876419185054706473822912846299618056639310100720497238425071306921497864295265911272872838840925587336620391187098451814423704730282818477609378831672515732014810356747032939952026188176104783794555927636431535916377182452011657231545408274712010086030553503986000116273198373147730822773913934199866985219229539389040214718134413709727440888146721303538144306872201568658846472415076359737025134345498817170211106426727367563864065167277284901749519511021611805189539097694955100074021131584562182545726277348019456513614041593086432671450222445972720078981299770870537405392482201595672939708567816687462414817287584049158044214622698488173030420815904019625930191645374308129119352813921312910407131539984166714327461978716030416181646298491267152506712800143277229560128949199445337550319270917485728874344727293554617619214542732161297740126653919336048681792498116561060795993543718889748369668493744634306579814595720723553103836886567115939521079580419205540700657237104367989051376104698777910065749895131154232486029256094401971096397793817881125642749739144004871045120877844301901516089289712181778733356201956909955018151975349292294222387177803086032877191978783555620885775419306517347064570302935306641832851519319647895481024179553700743764734671446991376161658160109361856078524550026614343498071923435829663362281870297611410318733392298048030882769652489770788486500873999401321047751128358876247449279301917916504139439182220387209608740288764503512806946427725954214447172342846703981803974311476215467186700703431216363223828707813599066188033105207187362926302107979995651288630155842718821713835276511303596781517383547950582446855411627784500530935811985224357922794199337334995971814693127870532324719963695891940553653695350568227540132858889893171556336799896702799355788707998380182100537444516463863606584481304243535978686658150941202035372801261132630874827677716677690968826767944575847982626938700685090528387299697243896749514709320513852012920645749967057320062426005814732801769212920567179489377999018468340755019869314144548021233959949323879023974600894427739527513425008489660045578400178046818067454288154126061313754877053304029346824198354460998104474107995016064571070549123079726149652791367377128538310816252824775930571844404877182249469709274159473571450600445844007540221937102353038025204807137301215243224485050530078936364031685678793421391553885101067342462347043769933239367974470772602790972477409399376004207353865144917408069956713909969008299673358092523118087627993255327829249067420069305407008002106905370290715369178854608888446414803931412767351590449490438993978422247305624875670305429441400461922354769933117695951216343984449544360792092198728052780134922323888684444431309405989158288965505871684544639020207386788462752012852646689009553245590404137353764953897679846708618663356213515015570338569260142815519278220213181871980274544283625693014028395087185567098491569463361690422886823446108111146721396038060282426577470439027354884252499289128624923756839877176861500683909921795652534121486024226341312821535708692206465142711308046457386494529462177482876929777921531770578294867302892395460473861402169942130758801776682013311583259564501151814236778171929591699183424415186986339058687380048343181207107383702419145438160268129637174484243697292924177605615725159679990053307060882372903515826216057648213418577732822665429613360505842493087150394390874802221397651731486767666901511440079769491256996956099584272066371434307057196901420180931281449975038059215340745396997011156740161509667139745568141173754725863524065414438027443323339060673126948541887130361162488597906121659311268548502940406794518412590946095267743530528500789487976704725660208885159919500372201873713389957368596739136477632987631518365588046780690631820414658404052912596362160504932621152894689369393406819433234899366769606385613405159658601403658227781852744022378614139423973393175255908117078363881619417268544032114146981638415896883698893425098622231978120916222171376961794638443603335643991118973103529476017894843791319825084799598716992674872258795524622629002122305638424653302333072455929279905913809146910417035082487218198627999601973770386607290621392834017709660566950999992308605627328081509775417569845866128330076492638020993108054638905548416099659688356760644528179743322461626567870887802507940163205646798389558913300392146296014660559883609357775568159621476723055622235957213444766461164433541630793950808415990769587569557374707589259482227950033492817309946026524128175646203745551720068564652828367475735134282005133616002039297751849618397986242577144387365749627300296892634597403819557394534679933194188586676583430144227194318559911311110098431281905782562748668030175615985253976274951065600081459397807007500996491461617042436058115396048338458199788539598949355898855740926592016825091146562864599962343276584506072168506533590252795158418418812052913051863815399936425337736239924982531044356125687609746522537735417834705566685318290643180920238021911261093418395376170371771095019526433182449962431364387790458981137601324408630628163941282469182927454193090641467349746686967956335359324227309384735158825318805941014941635123110090336158332882315438923100866763678943622347262177295286524352012225661894943779406797638069390127006877276503940101462187701023041952902809675045202943137070589064734967667667307335513854030551248356710094284051792653117927743050135995808935835935432653924766363553125029720431228899118846313654069236682159394326677268710970426969114276163692621448957999312813096194930150542611601881185512854466637221411829919969279637947411967193605448741531140933919383484269929027483565742801288129389378686272899595241552155535810492656073991322421157990040361454090671124453368330415739958821143473023575728529190178036745927701587706309658959676531711541485543472692532378782004977265994702250974963552512792365840342747449515133519421468264142015486012147888711176843005521682719504628854588310707796197893155905460155044183795330227007385572938839523397889948907331122082724800862828980124065474703407816610689009462173178586755489882093290045392724359716365825944526369210225488829619673725631586355010262515429231926544450626802724757876202847501700636054041200460310027749459374617669580488127501382147204035998359682957428433731727617816447568363722565787077671973839865338127670636832067344695662743982550608228601308907872234589181106683946604207300896761335870327506207101531689120260517280668170695130053638328632861048966137412891246142633680754262338494276840333988420881509515871562946138967393113654643253025999213439730827700065042074681133208272165122111463168851953075821479264798319317595307116280918959117127374818489739066783421374326526342915755020398283740483744882979962943075670256464057428270458432167847620243397673716634751532694398804214559435130069543128235068706782853068597018742571072921978064566590318024554369864498504922935284932012342012065263429766498468818976877695771886256287042390916856720994748107010011075467168115397687924469250375134195808403560618472016521910182415134311792565135425666273255233439915074848661673275276499948768879767395794852208939167461158111981661293468347590364370356065874581670037072359891493821322276243055031975424184333187073765804328444005775675891227269912707932140467409719103112620447853468507778576904934955335117200736655449782708516159271719831166043557980474974809902988548751548592685457190772259740781144202924474816794521364751118304785147290902814835162443902501672934397723488828144898987037106319836280289840789477187687542014361858553668331830343549648091380083412449233225732101787033871200746348988142875070655213451989324716295493233499656785474551991250712668210945760972777880584946021107154523386762447755707654447522187292803686133549040737117501027006291473317667457014589306604471242174814380751915853961401172249173007376880014918994884696007706714204727403487452236816975667495518896892805736391614375665996005446247634917299817267839639081748879943484255926567210231054725893705761554885149445251428067554808255034952763282716834023403578863538985764169561053427142502869581924023391467333102987104045566814585012161142421607712759823262684130724808989071766834896473788370841535033805143194578177628731810510686958412936629208989512792289528446208026454259735308244435144086914495224851508682450277889163729453549605795678314681295080429863359103965111613394201964916050546799778605106749027278649654677146306461228470913007120733927834321880616436446343732621513926364821724384197529371157836501815544991636525234269564651047825615429740817989599958193784063581449234515068206782617090886925701404712529752191174656818252325233706632246821509803448637495557446050308519372086314836536424133014901516540268245839967354882197278478852999763781940741621559409573095661713364322426458494013073671450401305093048045699366693491943915377141428131210967440305014531642002957496609210298108640586770116640960744663793345300588887606847173281283554298348102178673780223002755245737359978355748745632460998239035993768825964471159520284630729124752255743945194019275993697388500697583169610038052474795217526720660650424533286163102770258914308006746606066328030596516975046830091997481535049188571415079309285801371464957476670123175443450039075438895473307437788737799486401735070568639409928201472531601443213477181357189566006043363327724152240397234109471704154498258221152644246771352799571582919778552969433563596481643849496850169213295534424430052203011913622112508892239031624627106032445137773242831388696254466823547513586669704378648400817874525209671885399593002190364562323751888301318913114931467412928645834434201993110597513477892109570087709957643380601200999601008273228333000720286133507537192511874661237921029216714856360187275783163047850853320480739663829419369122877042170714720720156758372716984856839509733277282502520626464282627997965303491247689353851167893171849977282554239122660260211689981556942574283728046624522916423486487282354546372945236551514298259222679937783992542759377053835989692888943398615290125034607336939666848274409935336921517864455277609669772540129988316829321209483472546138804379512448115498854062488689901747382029897259835659536621513031993374368265114689999993303358338030173122777053457437986398861613910728402660967514791783335647675959878780822824583290974501147667144675170162272732526433887422684039548643668914828369943599477534794701891359513280014909042552108170198844360549205728848183072106050067064022175612519926557743854331055572457706289923294538478825871263541230071652780567602690898381726495074007210370167872812515904115057058885321482883384316856220285431760568651713413271107570734905232122111274766190382719218452500306749789219366305260827529551385038419408932493223040159308553638534464100680779806379249203466985359275158457535989450225761647088838677592314731750258544126196846125074852257519199713782786188488136847606388354095247420681166568381498082501945295755965057080632825421431891091326643307658392744897418819301880003824789769697998627754498065665384052157110888595449778757181385870786852106800003360811968155113067693961205009403015518579814634916532356117836589880098895630109888815215387101178955199132913685089236000395296639045855020202171333182541158966491744633261756265556167334964605140858617470651639599324701664882477441939670275896862894675091199637423385266189481911316204985838348003053797187995287477750163167070217736828916983357626646509657965918641351476301488168758286630350175784539797022940580203386542145151567377858387146004969625771793930279154678698205075296186717423814874105770134545181269363237937101847403417019540183403555503011043304606888299564371673969734444911555077618780849693973665628715562361023534001577931808661669809503118955467038285132106954955391210745171084761981472615740980469661584429348531199534754835528349554826924957266489881838548024468355819876941724096195574341282280474168684334466079868528863710296869827000211168771190243672069491734684251595568875694307835271898566482876530918922828469741097113291716225702380362330064298938513164391349147042541211065243209919944271252364720313696286133888341567356365794336064475760849818661130028849248115098260685853273808081792865129213979908264342972446578486643089028548584558110355458288789464876917826683282837421947011033063743389920328582759626321969914277882648364586998231855227114840782469612553383217196846440210253597483717000365005533472444762876365975212605311449612255529447074875022053937381498526128970208155298712728032697122847121515834709129570967341424012053201319238102074812359504825515204907996617670819381437960424084552843121547252891716972250355675872734654118273905992906336538449956627283319357725630397385215634898073707970008994706349689852493933543805509040482490084981063861673963259936254545077206763106477067460736000864056491868281025258277551012795526488291114202121187427433639663991683802796234336643084522448072713900270432329459548945459599400232085709798693860434364177150137409948263950571601761844352509209242588216480514475977914405122535359013809074668459809083761540580448259994417317503816430632524775193843895886326213002979707900357454142779642968326367993861102505523982951664161145568217397792079817321520541478938122220793392509708995269466167260732641502382657406041422553876352496029984421818121959788083651612144502257477539024904730757962261967232983412361501151630349325301834792490671595927498537988931447864055656172079872847738060719810078034524047523639124866382278678898676956984438762389374728396472364933565682746946112915267461960240789817073794794589460137492771799257358823982737918593430087848325050731939304903792520951509985377524658378835431735141435356340720479022904286561067716069086673296180152644889936478559378769291786537016455156800127690412040481603579530555137266210159777494385295257783593597796459688687998624026482210719713017461023760425834718153564881488055824319095365862600538545635491099112287481620706082326400220156001978433076339842824754457928919919789224304245104939996500332217386363736880653308058579486132431755390321076109969679401078202397163818678832865217197613065609839067251969750655507580971561635206453267702286146114734176323693621923521093318647877015331835676444512433514661622064055265114945045326219963889555692155502007477663320951187150793327444198563007103821379573906144655432280596193052071266097930129018984146875897856123913508365315115403619112288866286872314957610982742835006600964872122883035490164087276572719833928224431377708479689295807073253831529876359823734174184998362932526878781024915888411386343797018876312561766901034254036929798327886929358197134519434492777342399662181605754139846232681322199934377020522005797389554745695604364480744208708928395740756277222990258767262274120706720887448787191869022322992972256893129742985924776581333616904700453917748480343041179030866803546230094911010811981625294521538719703811835003906644472106540473894062627492582507552667918934283422801230557073036070500123115069718805335939485527672210303995754227314773495922792605692963639536933316467065908489572613160585575618694335676334061242284193367008347874309109489122393660040407630889235670774929826125450165708022081160276160408468113582804795321798452201252908617772509507507855296506693837882648709213463376704302533999460209200769713511091120544162828207121009838443971670237329245541397817864409355353159399143328455891452226310265729075978231924065033006306692574703852188925614234885595659401731838179973408705261285443764858701253105652370434271078766376758118344373416399678845775667426178776573591638781014963834488811969958197857679991330956920164025586199824888287491141619418165216326289203634621892437588817693508909978338532409062345769630765813403128716646353946558904024290786848748896651514183178961940972306716908524601229378462059395355394052078573610981349778492047740561443072778181180735522237875901617969098865664524882524331233255256145710865982668933735038333160435270257251873583084656014212796754636269437800553985226447803456483554702925146612093412366342734713142647086239366299564789963727160490542490958932365339190473531216273512278947965252574079300983136453279077068694505150167277192470821164114556095411713698193287711094767581117686768611739720101808827259231324602073925385402861525207204885016974582247114185559836122100119707027632396125988230150430732418154052619165086412571062804588756876149570077150909245462346570477738308521235130709398254646022871730426514779343553782482911226252872123913456308501788545314604422649384688842440202282350857958279163643181403793532426999138219953922692804836533860568504311102570572775268172361616546488341214931768268536375825549016478785202826316255067642659920137987904571958469822977447166362742518916452108535854474653092537385983086010442756468958646240675745627915511038261547525237121244066459171993014206505119632101964471222172095724715474616029531289798354360722651258011384941326175549278329867477723311763168425491032065740971030295162285546105058090240434435754147938913914937711884471805566681786638011506753140665477009730708319616632846616705452113749116813140079458675887882249762681146281887925384720531989277807919069736878058466984915674335734191568207087608967202607223106102912356998057061141613382990799869613069603772983404136011995501270049136833083361441728686076914547939278616143793463766659655749762814526333212305444480142848642588463179666027100870215731407646631062795322865475150864376753652639227942275169324340418379993970435461092143824586158555768358785340290130213366518880190388393386236776994686582093397618880236150180077385978226307909611632270107608236626659507471126008421585250229426003712416882674107249933843893300336530055742869677788163292088605371063905452731975650344376774624130291488437429049032917808432265363313647933772943999769691236287797172504690470792026316902393726329250178930380285286128089911234552314443397962264093135086163614872154462137922275193282113594624666223661406507104862560299196228393879856443757727163642127723799613704731294842405374625627722212235122988412089093342489872610640174333096347765991642839066033786306143788479526437349674548069512524719884895844188753084169641982064486032006896159752082932787546291975199793059900093573943760324810968455913787830785893139984069828346343007980262766037954120006436374815538873995035678515633932995490027979653796436309945855442963882324140785990420071376580714776999496358412485809221568393851540310401934108243568548091372041600685601074195152995507983725553338254865071262804044979065884235431607621591954888305401795131145448436279793111415371902371073571655294288112352765113482069123572910748535489333359990144165883289944541061381167810668411405536533893380955470814282918630266114259666638670476723751255761321964092959870737174764556932093223553977879285492571658819953086569107061724437416647420642479261500559746711815695433499819419877013025300242558886099592488940336401527404570852477219053996647704133369993559518029910981657273178691445902989659484494432181247368811912808407595980559303381288722040841936293743686598002308379593107876556704067177986492234848672285565679203410482996694830843316927536108049027568373571483070862695494139736954598881944373803259005713574431326609501007397151372004313732129510716873830491697382253143302367742998205757069177022633918100580826782245673516010575838756735976475835501578653048135362003117279702994494373587995204303046663368345612104920358864950686049513447994704798436866455007424312138070673760680641266029832108852028511569482406606170836253125738013053024084866284064455766255960915046076536578893010383243412160247963300853452830780414411034789390302388030030503957006028298480517739198633519948072821771152526517381390941033612910556264457395816484056170828688092028931171801261774734474486842385181901768593037095096477056704533150136325123224006421230265754997807634069590446046849984657263827170711932519429933892798460104940024399153341035102412349703812531133450338909944678586374034876978967154699184054270653154582441256649074365753406632129739739357463780136323458145677051499186011949511118885485686805272731453563601321986511515971094569293614310268868613180503545450567921856730803387822506960359642824098143853312224370333268986364826752505107492901969315273501311003347344995587418731956879119636225905390475903225488195989134188066317687173926338764025569628667685984556190961572793627142458676585260927521403420277777539273813357653220541690447402287418476291595633486824948164087544260817484681171805600489462462407942643883134045786909167793710793245732931492383181640107230917929351133346630958852543647724794443544439277905176385625041375786579372946054119065335192996603774204708097975286957099224824951933343078423856498550559807738485723192801664252369336952394846742954045627609999665339699138152236332736455617585925586582662137265682564139941383229374018134050413952168183039740589418069826899580354310598573948531722328721301315609221576793931430146499137027116564363023737491300620866735214652132833391327136946207634752284095651657875794756960933477583127047081510604239312037494957712898999410416289843117079428367722679206422803123864859236387539871876035734986177518395191138713687858526617054883634301190330996136493425725990665933839460250421735946098620979722172384439641589026584318994583205688320242583454574121443230053829171806150001198183375997067967208217917675317238154530937697051475323706339748046210769169573254302976041505182234308888646320296067825645279101606672202749567455232130269969332120164166725146384760193987903553565499856622252894416421459377213730085654170713781189517635223868637351844412387281711236946368261140473965798950162123609317178959357327553814430707679634311113225601210412973440978724705497801872593789962632964290051286178439197685079055599636744075845053834197255442388963502334395707583910000756365675691765307751088518123194214446876775437759529128531981102234080799805115974638963916840542314060534820541560535003336548160408933390358351915117510943222450653765067242414419032929518134236229495858443872505523766049408634557694848241739001042616382434291491755278378684153722665773181800039029940931077692005429676217846348227789564311135809224084437326897198684110521637976944711172657625307293437018973787530691247621164734187582786228746710640608046098958940211243594040381651435053712715475805828587289501237831572149236188612643691819253416312002910536383718506652387092942337810022181558205665311638581801488686166800928603241831221381385219905482989078919174243589326916118167999161513908239427590084054820121679805156008646150733018011933330688828251109261230860947752966794938547494217640484417430413890563088822233193061998376676103965055819624075541704091177408029016966397474654350483556097966133796641276768368876924483667036789086268104753217782569897399450030650309195241976950117168566561324175321297395894641020935296711893125341922908362367248455334528754184372350541729196290365364139162261653189882989856679965874288487842265423059692015412787270010719971065720554652773986758381391499239588315398332580340774963806116142423510668209814401325294755440669334199018711442498166353694564996452610036944476993667116356666079683151677230348118339684397574274541660763261078873521460692306306436028542781991986574787463364705071484230011594254845811388014168537003492723692528471921227327413799693587345328537582272499734316985087267590973081349174970983043964803132152485982678577677001748204478991197689817548527125626215325471881734349416614435608602780535850328271080471187212946583423200635751749484464906905409444420740162925855961811615604249652088536855142320576170772209570319093311010688992396048232236677971504402688154958105217292383946780789536966242146613815119063431804982497592007647060418455147991952696362445779562094060883664324275970768306626047989056405780533222960210921020905645197324910965360637308556604615123279973223948465002260803424005399015574370919235157439765457565849954725406069231302292723124603583900500253207208152301114920088493484784297597995296882951546512398678187700153743723234039533189218315401269359284217333268018867216292412530537323829495736646269542626000344639122642368379723759564843952511584030085084849441379564848354576219095925680219040321622573798305196448570061668985504283683059757421145216572533882221008223324090517549218546045515279210244193684591351163534008320345406418253968797167821486761886879954043319771356071834168047919293929175118716287027390365096504418016860431734046695947209176396400754113072562853017842210931420475054422244707078580281427024789718695311689168634399911685442342653238630631773664765972995447925206484639614887336986293324049242601840735483022547152158200567822192226692261675683790468029706822994214866585741028454774134304168790948128534740562710346631314532404408173553487678617693097586493641668326916047113833335527466083875782737020551201151210538734997106903223370610836572814525583188060102496442263320965716392146205058706635357232600485714613788285486067853852265648435284409623832493929543393460503135483980216005000790701202545531683215082962646258745635940516197100812298833143371977391730510170346017945251522113511648833564423219462411976147527983339670649484989600095552783382415867403920407193357913526279091665732414803022160936391143438570311994453209202961455203419863671231749649125543102124479252425140346119588699180834869385505012774770212522364980121679812333816339278723178807778275724412922760267669482093687325401861847185568712017855039705685711248054848837672020235729861973638590692908408809225911410459730149380867376676165739149525372119885054822911456625747466490780041096599571141491827708907084176786193705277330664943367171559887867862625004634732352163037772985812488332485720035518012077805848281401191890718931548925688708609934157879648429600693090535645074524128253172023673038611429377619160491642793175196407588079361401696363980731212661947139336754983837584603785723889598632549428218713864783460895578760890523658196132428347880307733410490482598459782200068487073293143763994686969888591396644149293543384835983453462628626178497549620270777325182620840561182710330328297580215641477444533499882255328425032715618466476295166147053537761168734367620202422032580139940106540427254147359253460332977227108391949767854965238007474045352758794833557648372286066172932457516424791034525899621605823816066106202397940716595568533941444228425768387733961208879103626881742849231102393590264757766419206894809651644270057213953837898540898294055048782871712689522006589298878845120925522821157984863242828713065586244797266335614183311496711247153078914810637836058646425401233523442755743544452958091230820382638151506539202525918270971590124277153287523107539276990252944759463503037356217843903697874545452519828789447324478919829432239110313729717308728252134697562221555339931506153768490246888348077714425381547540452586866560548141362843404845194401819844548717751314938709907942681065513179592484669201267319046389434340350602362327938750706845231713545496871770372533754385200127755528057728759413411102280358738218611171485625703833479963819106580934291148452135371743913487634232742445470350777470178009340788576206164179181174200137492444452659762894573299508505411491689633317665513160512660595133740764066373879031806644619922633579498780677079223793424868502949304574053633024110898753990681165506659692958796912529286702340285196913962198164325213216908141407242899598474414135499396759986291869260288500969847853303178317682590524724003632942448223766857578601505785517653841149719396726311598324141044692064651915559182159135837527560413128331032249137585820724728977306905930710030022598116733466916563849881049845484721466362618162383586529077432199698332669032526666170710898542280132798324372832897864866286616172129436658286906958036470293745986890399721819777247807643936879560008577297804604281384410336287046966492745884631612487391873044994454632564786581438623296223040528596599503674470672607065603515698699969512121081862361068020922408289644696247277272487228480542534101808590407085515923767083755648339867512730804087357329455328628761711895677411908563640373871591273571377663028010567090572939804016960506628904207165413771507240730473014235323154607580399771607119775504032835437180730093326993080754232787150165495877950897228023755983963143130942903452569915946939951181162676207627892911745110114035788923314086804093248081074351298524994818514753521588998979521561986709483464560271135687613584862572458921796507482380951875121334547319235667730986820026885487829467492910058397708079163962717197791660741020193709556985811476111414200311175720695643453892350515364794257890235769323298249052009162625352779627784166489710743600281230279213183077137222095892938426447498461261820590974464272717089488042271750803879146286432240920127162470805565126988545198899368538797941115689786961502456659459006338986501997982416239031962667247716829358244532827971815268728389445364492949914603185761609730717973639683491094609420853880902742773399903459307486740221435823820594247321591459855578052431186064431899424572240409489796291161999137863109878894959971100719934054238672097067508766761461780710909345538769926590442651790423408751419973958579221252123064985148851273444461549487253450084836403809797744079582264959154400988383816809481749453758697463493000938685535639967376436496323559897843244750447050795974029117296334187428456194981244178249170256664116577410110447591654198574138548711549407233297446736607826770901094314475156994992524888648493245793032983290038760566301842095760553459220808817377064945129280029341023035660815048792899535258515045666738391432584533652430408898345950745758674925272402184032214461803847351796701587692276403911690568581587502619975565683138656861933523037110230812275629287847221411807226227108654980554877519618073406090947298524522697073940072038574653712744922500806410821495556128885734728016369923139069003485860525995748896588924626417919359478051707824413183935885128583201654369310395534947428590075989031189225658767745131997944939051334436579147840696711354425311144595231577991564954204291328931296310360344330607360335655250917989454173700156956987011573970628060253980641671720752269156697172308474470136011902507952968911360911075230565626188308620216165865483896674522946098341943976282935139283803775346988802440945989302223380392765900343072045000705703828737227785364380311475828387908498363114451660051808952166142144227039914577879395631754231340343299062567403500895690227791005852156020172431244008262614500350746101523362667075227894018341795229729924341112004534736415857971830253626455815643672579905102321413556387615614377710803388391614852219531730755982970571980079068529183772484478001412308198191515685907633046078812278066370257844874530275629816488471441496673073751068741333931936383203928358662087834002243615473345318522816875990611580422827431110491400823951270227415363592741656121849293502468283577329597289342583197629037101009137646205439968906276899997121195550563348504246379770509454361734764659056895205327507891517256239810253375493627483872294060800508716269763211837444965893942715895440208949341183973146591895259910240035417062769264122974835856812740622681904115500009866480771634624351128244280934765727373508575526499422022585171210456501755981620262837480450526586184318833092998071313404559203842990124273958434900231173609950001818489685569681990837321148932512915214851453687555812053627165074863675629486333848135328292785327761332251837504100572449622516882318094786942285208718014487246078618253885421172991503699017269290231272654678183854946137964728827486260055347414560374016332272221385401415555056300302286189993171446304596579172409008934114993199956750621566361182356907503120349402837101663693171446392815120556323661858849232392878035032754781649994438438704446047793185788603707734200990030178672683070599117062000878459916370234009946211986337282455673451186220723992730114856995292783042541448865897368546407333343174184160331654217751695008610710270909056707029868104681395515241064654523857058514721814079031735011922032012043514052759009324798642278252251178290840720483790709412519645750034054268851757894607701224848704520080223773888839372732539500789634244362898601328507952119582271144481686333162941472896307618569728711906587569316909567032256628232434653978665851295415336776955533426726035772771620219298342081171545514883309994337389477123575909570797376588122852937388996059434553370122200936625404305474601981522316103324259067909364957461028659888819798109421997134052161260311320377024474904355039890979052972166594978466830893428337685572574093305799285080906193550239392938030499749643086704427212764646146351732052372424645471305837986499620228088967596110557983771687584259927503898238997948061799153686152647879378751916764536701462211637705746153671897498719312980657942225728340627200021475830115170157440657690543497047008256032347578339437596784648198980042875074588025824740279594190376557415072224649059269599993299970809136569581068773999248310331042704593128403786040627079246755424894300663038197164884028371906105602691052388028560002900719169004952441698442610110708979109916800168489011351107727843847075562410732946648037364790443736544840823217694852670763787316632733842160279428302978148816390055254986522976774436789822651939598913476415007521871683008694623612892259062330594457432146805153652651526628584522828099493668495283350488110789566968295141819477422693344397993458272807436131261440147926114857461035183390389138301858944579667179098587264464306266391984802703842485769362288176448959146423783971051160739269390259470128884577750277010090270926302267360188380107908277632198173806859590069927028627051978683585728694822598515543847493197781846156857270400469400150166888067439653557074618664322098954691151470102073283792851047038548614778321798360835323683671429946602546524783074635074914730518184961387652822220757744377020364952795337889367668054427764586855871099711264318663095136034081492477482335566905093192866661285125609673821263530476118000640771815539536917369423514130073330365460123707418529153344198622065972381992298094379152682533303836396967726413389541241524766527835647215833319030616505215046411315606369137379792843874694427175176821948596881153128789435513921943741082372997367557493070607744340314747086785330158892613816239316848417251291003432224408541617055385084262399126573361739371787842694013392081669199272564844845187367240325594904537288204747200640403680215434072383972592302586918861892025742721196063313519773624577846084471398181780750899732061220167596850196513137381026816535262022055720210422106738652301649366343953948537264092621579585315805238000797841142746723055085061269621243021820332180242943360042836569806747708858637083886858435906381646952391366810296298874504012042888921061498687818885330120301850006089362518913544442746678398350560022646344253904012845115306567543615496171942364592197068117081799122231750083618999709336850781759772731804611089388097897497885215154139461543936134809778459064055404881547266489484937752222162407730382863903208069958258888871993040666841042142429105595593333475212599705582711066140609403834124700909616531429341492881670404240837040682439793659063979911894376088831522494754370337227393253726475644206232940128402221730639899806673103628600007178338028164632379170874453192214451489117805455070220212026650023372919109533514545724570938695993955469568694136934745813108341443233567141908745282003851564082445375858961004338634685713042790783890670795259143394703274680608872618818381479326528217047897535518013770396657545390966309666409192376483237737233332218061444500759476511898896554264072222439287098228397909688697747122475076855357212378239814450095292094868515526742859387630577132113152533769394851617307128324288626345824656058806916136036897546876511470275440013160640300090568312576103534672110122463120303975247300971585118447706211633285156993963013484742946360886543603536838778403826385326167555420717438738152751789423662237463128758949829462837541931706464481680927613545275058344829133301447271291619814608043412840367809436390636375056375660023208232140544733904490662007226238506669175798000862967208198840812182655363599658209813644817425458904536858986011128016158263685805366109648620986494096823416098080204810374286051414892795494876408682355303165877558208478047354646769051366989873856064067012008713454628973028101278020837435391613103708867602426595195424243430596509092587462260247059512212340923740802663058260869600953420993494697973438251969817573963062569074357742776835070854977860679874555501120216529268645325985387424746429337963819610773469402438322476400047790588185746823894310747470889731721730738814052690013765056997172417563706470259656283065670636837886927977130721678374131879025268999839645141740012167339337940549680314393002059900931691793405011626955048380025687431065698495771541655369981595698120469897842738959828303562124216347236437972587977367688484376993523839469528711876071507981893312392658905603161959626543826930087755264991261252916043998447612828155257834046251438338455611133564497494212788636179396001493226214509023925356838969217094661283421026761449350031493134432736737622783864025224547733496045244594125035567923308653922112534071889777832961133305924710581294691114759486911567665901395104313246158389455049711310970920954615544241328145083534950419441888818582949477137406596791227612193381023183901772216295645272550203385021536690167984846072050562728360457527822405707131854655408754445717455351268260598337883541048806352210281373061864402816451338578469943005702563651838336698518867197354869591954443999213585240980844367741260169205623951236107844680525664867054773578743203232749274557939909464895054426152560754066694331714877218293209656449510183885009670801553626316164792214127316612026702767779829133720455644983256968479512660369012621891445377091952990509546145168392137098887382000835371591917674594079049557272609853885567444763480789198620879173122480890098848228907330505368951025177275864863920188901187005421626129183795392555781771909467372855383849337722151852842966569101206719200322543758789783119345738254385548231530063472965433954176432984291680695959894445752639391866587154105130701726066562245354071654654881927323955301110067240445558874940209387242488775430375639502261620837880506344506134261251795220133522759776833858754486954481079162439186425027825870960556482569071860202077848795086032620404751139979342032509088208209394547240824645583870237999501366905108404764435114191961525182742707703019071585504376272810046903891386079064814606198835090057987780672451830621248491040154878812891440803139156209279698746238829327588642112265651497084798863318786868757725446270682588186343081947909825976213860193716222310306808526941463811381375164966377602890075821866690437536963305459902950295763404095288494573723415375843122359927831313705120480630045326608066053173088216222301609843697387555178000005228619535096138593858914457376926703700065607125647215540185398932708624353938993310936752341444352079660347234638051188276908123900459243287519191262791809449385236393756417969669530814838212555296915177321413750391334402822372605920699171023884357551569293252312861838691279139587132524687802569574244041380487975088822211689223093767177849156406336720363735258755672337920184801087927488714702943706392635888217671105412783485568220446899100631105217721508121183760112912971467660736405046539408685661008284534858776258817041251262051622245160098357880204945873593190448598091793884855001655529375687429029690965156803523031132059262403163523675349270211253057861779403088911254958591453621776147025385311698505961352707280535736231760460503947786414247243221604575669032329912476948302993552392982615656574168388528106381723045384016583914425656013532163139624751658719328238743303790033258475120085723883888802314626031083754547768478599535226855007872124217982880495068952336373846140043504736428898654356544405764080953544019077670418978338219904771807328400814704394283793004980139119578858238357794452437039921642682962193420272058665262523904004002784361794092586437661370294208095881559249047313811709532016770212107214496171992978887004426464735723000496411418845087384714672799832764351167923410742296715381501138869136635884824168844853150456715119880999598806419931428872785339334179716653412245107294982292614210211187989907120694324170506653074341972066729401413179466234805132025475204451389792237764869033513722704768475552106499352802073597991409337347715182029989896753734396853450909710405129930294914301832456146767020169953314039447772860043678303806181517834156617832482237835672985515796724607332198787555387755122169732316300781026814134587489162946828438486351239636370854034845599643492586512622696676888489088134431524044135809871909912071654436998489085064877736935729309993519843936918982673777055023778143546121519545208591561825737039491610741404758069847801997808201323724471381797962290136065426343537784548117611165458201679422217915004449183614129557490823122747447024768264293289992877317077851811632933920040245746016448032050706459578150765977803083081767724192110693894211309089705464604905437405294539677668567626093294868181724152927148583525539551501656447820689610656113707542981481861729499795363187977344543776592181212130701508834357910141819165808947207814227947055799078816179408191391578118845509989603235531995169523161836854724940951330155335462442490220200296108954249449681505033893345724665546619656404947368711938067654021724376407281331787164589939183498495872136522780086321172338446864411928125271273572977803361743020104019692388762472712195771455789340750712535415664411004531206102390547575503377880618280223839521017117388260817418194257667513297306290161605829654883037046865181562027938776243462576816611413482306308372392294068355029342502437572049380907012401387559484867926655125051791169629210566459856813447881624634669132473712271324967375280317527120694620533832961543266848202805161001054660768953393948740315183633196335595539869426712821361159885858253544511179826554223102175267038615288956889338691514005546353710178640110283573627927625470725159672702996097148388170756756942543210714559228415569051681374427876717759157982792976883901436311116673675143177905149683585494271186174732768281719427926035398840744323186945948434066334903570816473149077241254811856567923157641857315398512757820296381268707201367272768792713993031669351535380569487911005337533239583063755487261191589409330609663412580619950647088225168728172693748652828535192291116862796591375553591603168254898019809188606153693175884558201471360377490586112693487973717553685929304447540115121346386388127521792694304521892919517921693521844525869555834319074307583172940390902525164186234734242811639755757765338068893046109918571057819512969468562266962170435042965025293639436827854932523869002210240373372227030410211646064790914383548468807462148482300556213389223997680814003835385549133746700358513273019307113211072738237238752058241015690136605006169809384504028674731325125056236620253115220464194620588133435942068912198645384778196810791193014953677879885019207497073553362243191452633977177638258872453443599678797992410106142475392087651127034882707345146552928964273978238514609397286905867315852158825409811417005422198634622427958805445321331240324881611647256848804049371863245100589865202602135501225906614575387909855841644645828080167010981313117474007649004203475406795842110262929547355711828330117779286564860990209950448960035968272218280367245940561745509816640844573537354226303642273299985566363654724747902361014963698138240638776747847280853728064015359856785913365366691556368271837821254680339029898498725947497672850745669380148901652452098829368716186708337490432595208120271410944912924163406121640085371677885250442112714187937065215007587356465369844300797737653314040690870385600809195888724302065761273538157979422178746611031768933256532106682956183515872778985373900297597756891139101539633867796453795659542458453366096419328420149708524193108802725160367122018094267024146842896286005642409997820446353171190057367604125228945979835861675459889013177602193892650149148707366052166304837784190976020095727972093118593268746416144025739959825132101311927109380330206655965394233118368629946101453034441884022621886980014266393414047501413851020987583308097267042587592833716523569665648241108476104190728518999663380298098021261638182263699154679086525163286580413524817100946644029093045181591087961056987536619903765045529940732431324489849010399553779337727758362293356499123946522684286179721455665586235494468184674670526000121555406446605205327672300961041457568134624206377363938927416241872621647441750096653438139802908219049456830892476942538995070374256770488930893382566658627709547201975972173375491296795090604494447684997142049516434541389059917957939263680233055325454945514168757866769598631940621668365059773177261163722733719574416015784938865501657708721106020348383949348503587651057061293373644362708595905353216421575730397602511259648271473671783082590245503086753238803858970555368483648424796485264129457778227533724608974832893476415602723093319054692828150817243820794741883433926663025902821567372758730417154683092539932104837532116888516654488456262624501541867045162510515799215881625467803388374726910680045864070240351081074990746047468611358657757444257849485879163308011084079266761907227047520183280313586845313363672183638591684561812150135446427953551088817169715238071962356660192393681617482290449043571928023678895227178022777308039259608175278051650135750733442643298431289373742128200963417816169732980849039966999332367950431470975929173599728157407634532697294596392765869934646945246471548325708358537779241778741464586256341604600468312213208944550549246760375930896478442490911687485512829935970346963275321930954140074506256726352266118384991150229903765367523600905710519295075917569386936519636957263500791462655230162698979144760121719079084251389671805029280269552211136380453647601314245596362801497864986885413229183311124650686225795575404343420265701198367569550161282291544034327873241443614473712250180572908006179148760827003432985851909153378774045608146175030823339253232149621939947598412144081567056813330231934538175082063495717732779338011775422663322192082976547099773722676398553465286883282644144639191399152112984685385532728212003137578931049651338176678575386265488385793330959931147883563244797959065589253661614306373270499817294327508464389085322002934898196058351812325705188657683173256030596462887290015120398467722964774745148249880954686256300908947344064290445305319669428594829362095863577956311865615488870265152026298532555631760848591427704514609467331291690034055669794592634291896247854924104034789592904009710774726524706123031312927704483424832897230790219069640904480586095029373833959606504529995464001489598802741363916150422936779612080263146427793983610691569624305073573034172422275549220226296614464476021562252358572561249889690925290519319879036800138018098237946166332604528802422333362568697598399054726215327811031651748485374867258348848072643168300098304240999629628246818594786188596625535701395822995771683643536859277169991432137265319822787996997739446751585077542632941169796598380353486378283178138720997924157879046845078016618039870485294809167202899369771400512822145033637304607261648887515177987012797478721002072013770922435247815409947979002585812373591683088916596518644928995966724215082116019568866899847665643459681853919705444985818506136260977370196274653776594097313724028421663373424152619191046460346266675158265482588629087380714518044878080802772205562404153570924635398615899219519059368702097227271620785151272380495940000071092890049998505719480847093497318043513302496917679190808093790519415022428994237484139936765270292938126802483474130730143278942951035457820230865841541497978949104062656064370539292226779577681595562729190533800744073788374696372668920254033884538340383893349704875138797841241777299243424358464689699266016677343096617331812864422057202402260523757427472899895991463271181353127658415736633873684944944115202476704600110636789831909652040440809702922577759434220953149202162769097512373360811222149638210846912296081468780345362414407164539296412109263722223944327206939476919034814668686709485146729176605650429381759957887794222935190937825716595357776715972651347144855149203289163301732481459062271046838602670403166842453803824699479229769471616394009178431844819377624867100139496221689166023993880941506126468547841664751894632463316281515546381632510505569787731482265586870837023775797810908123940803099708492710192535519800726654163138712290124773529233890575958676954729812246734070248079921583337008441625370057321087178023568543408024461201088805590468343223653098103220220295333182801531571709639235032047375249088780311470470123241104952335642244877176382533509716912784344200444264323722404186991653734743810275826988003119977831297898133264008052852174590581289425382538383794354346571052053316547524459474847570520038510183930555797353866495267121396355002437845793065028140462371295934473800237635501720714648919568063016480951286789762870197529896904781862611923239244311768827448651485383146176307300842665706502303205390600180150245875828763930674287154493614048369715715166566879640746531422678487957789837563216007724286496735575788696484256577755138912543817184682639432183272305745616284070174325307569241142458096681814872394602299478445110339759408204506473897292099723351365901856364652086067875242872718784223901787067136033349816739904877935086740670305266418484110673509914945875272440854435039278336798784645324466338773652356078134002124061358358189588404746462344240290072171814215158560550609650228290706285414140644992414937638963318616925774025675057308152313727937976056944566319239895402356724559660249222105028284352336867507632378620838582373106652576892231255596842969648750468477916195985209413512711024742866436942495203744579445871751526951581245331383827204620195513143194402856892320443810548980113842811247622217898604914119570880013569005353785173666781276115608892981665117762471332684458985664171416850625095611895531699675987448885217556068118408861314367653288834232350119834982116535809889416129949410013041529470789142074743534526940220110155274149808340706403164564232759994672096926708632210921354713181881159258250288521532844986844083219907765317079591870421671605023613635788947152801432424392344103922403106684731428496254099673280274211810012190366520923625315242341493020251242668172905777449357438647295371805051803209927321056357457128734064672283443390895006254391158993660199984695249513154742941293272690884287698737203731437308857017387318218978151284963896909858066155672491155326526344122991585041301187577952668312811722100422527203331792280389377768445472683150422490050830260921388020056566736120289355701857710289095710627234184862340654532585157110221401355492721726259057812177592198327031380934146617822236791333318017396068295895899721661479218339206472071088658887293734802189193658594733188237879463681950541811749845063075540811525880972423045131134485731543388617135490783693548765695947280657484489548301414125436527763704938002694763505447877169367670688060619396632987124438716844374090681421132609223225063843812689737387134593032906974408884731279606885731507816646338616127344328015562234077463533479376735524455073743073595862182730100787192822185173604866305546348623796330021471275477361335253250766406795935161175517316047862465777879953945915214103305890246294630524835729654424626451308521624492790649126986388721001333042532623413226365147943720913103506164740224646659394247293549104013666797090706870703347758215278147061502674692977790665884290192694504964429713795049885462632222360928946756785771571908445914792476075931451240905993815781458329172303264706366460471840363380265592074884658053666454297917779838647598709397012306161723195913455012996303587911345554143362151017634855806597405751292948843685085934698980104294181816588348591936806954270599898889812926914495004658417884098144760351914111349998779646589258986529520087910197755312708642724276364302468704264027485136602086203584574436209266820189915283457401491662525786757735928971575120466456126391059965529382004121542597780572146520712065877056394266211612082599050170060373573416616892180106923829503620380220952280252238364143728872991406274981700239177686634062883780326185100461667043856465820654963701286036626518766427066677441324240185735182744301667970384199307609879363556342732795205086155315721571440727355164040167754046918115089633295898788863352908071648132717380329673249951148900038282155240754662971591126983586742404234844227968287601942706018697045181356478010423423226573131974617939123017049431217181831378951706127027733100030187752570007344294835563213431284485969530008954159321249091269713872219243101029705129231060355068866296821444342890314731695219485140523134808903516698365307515923581155825125269324967310605409811516373576167363653160350353193613107190266282885648261951478877759695290549176566173024754799094631641128965503834774442880845358723097645499427216084624999196570481676226519551697835081240404716145196653792173365192136663062086292265334652350762285599752279822941952220831866501444198933773867722818651196907510367171581268810676584826049772593902244732345317815734688386691136992737306407205374205874028697626717645818512586432829357726968792602619163021764951044518110600532730879024792937219607359985240616388001615555372659759087916713354869893775505917999171351297170263729784326081963177465672519325587333288718484495105780874154891709424025765925482926090114312036189970468767802147828012280763929852091100765513459559018146113507517241246566799467990630464224457479057566735100489347999015079879985242107092343518873275443422395220623526295249210829653400491003672543441590630414490174802372507049258493633571290221888173319896810418296068255270219925814822019414926784411187709977466507930618861080100451226032326977402840650610502282248165535799153351815690526077935021840478550275949329807827457705927229044461231364890141663758629278422453107620542507354248498264194973312108175506542892800447616089428075372661766309989922032964516961417377684596685705628092471974549697357046948635665251914917532088743643582771493749147139265666572377464590959568132831635515938901491485889921220433803776410115480477822504635728030871263524196695752134579455693761615360760423041092470032195292222182657628141605145764225708973322814504686330733177530342043342530632091495941731443195313138157450099712828640266984575166778088973774159236037834102046545313911623166561833251278776301093953029543530598448739356758308269523825496520509502741844547160598187416373230429806346391223076954022590689684766460712804288132894758384359306945867468690154787183448194124406981013601052777483338673193012191838814300187874809691835985133528610934119422544441405004850627831002811754171388121365326459588481887495087912821952076992173627034650129566915742895372854781408763682451119041852948304698410529286373501171706790255812265792052246578520584673468344214862878971523358050999532983887552244537666856913468202537833010060768103628020899138577431724568781979525418590915375007988145474888018769379991905174761061486691917127853319163002297386861118157992198366732021659402269937291591387932351109219860296927436147982349440131556210552955943432467973392963614251848002460523116611169304666474894532017950651300866086622379101141729259232718384202811022113198259417753063247122640600303806877983220277570615752267933441129636853920387888593283079889875243821253793088914995306872366200235618288169462019280223600207628186147160002298218417296699107970252619420437935152595794697100497774832017935186177097513709785599515375549959674976866265493503049812396054353109231734403978444680123782028477061132169459639489870015958864234796221841673687908600149994016827898605969937288906038089008824101759079120615638982619496707150667876693242159813150553385287539500383721834486436750600476468549076889870912687783251326594111516333323676159084888413101877154347381102850713629210063192851584164868886625449167728584458756819822411942781453549069312452712900295282011797296180509646801457454073549052621992209184643437951311760820738375627687635644943556073661244948992468597514252692765963697053847647300401350679486567178909239112008209840912439397844233339997903029621951570222354422696962191203902641972701256647849265857447898815866865549880999781941927775348115073872288138426155984149033933647459608679484873239726593571419542331382610227302113021991535782182936632462423744333200824766658901601029591185916003937541773557571529736032306029106898546019208962899864544998689725306464828516238106668908367437368956668074910372598338241297587034671956025720525315743168232111641852659823601247465640145997625815832120406332233151579359260870469107697425184989532580367098417592859531854291265454101775533399901481879946283978911059622510526288659470659928680219985049976253536342303444956398322276508239148379723170842278143726728636556939651527197131342172741968358970664039393746435475152519767977392766100288293911557050461818182545321667813172070212164870008032377374114988021582942144717664212429745122669222746904779407390840060054490422575861209409572508958381125059493812567232849592447386561500224699178999112452903347098370138230829700585439844407606703167454827315630331783216492740600705589608066556777438772613923846905784313343422815664132461267537399327026210587014821409181720600498781889006681519451174789378461056834951004177759853180124200208218987470118818449866628488366609434454455746477279707570320856731933683306281503564683918841214985667451768618782264120085166348728357702827982942361614159042040840551926961344480293376995605312192445143776764886324478430172273258122219463340799132832894128818663319945387799694057379774115663993758186663075679772136710275079155854571131414719890190185617060692410225591517939505222046157719717146254087752506803555485783913051749545878018571549339222798167896307277291799761151849955974450474644110623514060767758789398094904438976895350610911935117069706727191361569276980780862658591975765886057093838826821410740665153237663541451055573314774152124169120763282598766381081157503507238803977772343626485226344019719514061495998667770847542743461993445607077211140445068471382329221943358408080965987932915729204207821023506619886893429642277709567508022383810529498265810037671097677926636262015983613401840514219188352540495898887153079021808659798240351498213367891127117868977160764466650575333573393506870760276131044835745285145971226270323598585420296328190604301902948358653959481868731337505230239246804774307337355118549591759868139081606714923892020752276685418765877181048479609512080001268020235374482507862878502805851966158343267340724611346085564002022972156919647416225870515668810967351943845625842675858262509699093253427438494717932711278103258138882352656711923437180801872657321840739980117794032467262875483301572207013876931007794253071829358726261123876335542671519552024829912117641920690010144319543871543019265039720992849580734546188719930445713177503922630564011478755271416603582475590108054481785718024384116923086563339082561553660881563729496962257150537672888310440813481799649473126151472457836460525332177081514982448835496003128448882401151891400975144497933134712111529154633357908886091578930909929869429013567802896024779081855555449822903511042929474981930656162918485075132578761895259936072987716907811493779675943150888856800473985097971559578489215083745334138481940353884430638260669037344952873031160455693288619596947912570456714907870489422971613822376840834336731825549285852699280049069328245828399891172612946505726346203234009721307911886168913673112497987902190182110559125601776284833636356314218055044970207722485068174358079535674023406839476223740079243707870649625544106015732346653191391250199395685545337170756060092373911182417882810386711445811373937694264808387965038750350662770922557440145566072016361566191372438522089511302094096192817684100058322223245909624020132240244628277173060727603593814775840678797291843519688909407371934354103438312787403226836280295364383042694008040832226641939398742975120086554759200985274866578737351861399465566539930305199072213860416551966818712441596301280712318112668599238539955219693518958047028176669521236496887586452523848551737412160819561748869060122494638713956816323494409050794763146452516286725855585130195435059751815399204624427520420210650727756854787886720835433169766384544477944872693968802686072076234797639944283073778134007842571034667333213018872650780245272444845878015473664165185818914218944602665266389260764476970464631804941593411055648068797927940225205118778693368898035999978477743760556276929714746150431231123689374424040501723561253523262705065527206235695321490717136577016816116345331358213231078427054487599673119425467789410122556994915972586646707828395324784332833587688896080822123005421546413320342588286981584925613639838556336815873412464678496196723656458831938321151287566575198172820150159443841469289239067630808136968744511774010438967989205734157487891477981723258946535728745058255223966872862004222855425869530483494282636650756159221888105243584354245667659698507041737596026504320490914368305585366669165627194578718476021391880308441363115479353279399500454845397902385102285623773217415711667330594668110124876932099237999012213192826779223818836369522491947036217072252263641002207424808151392499892049400373651096274452904195290206544473434896464527806036523623617844359470789717658570683411819647337476719234168010327410480705754295354032071672826881457324086804187632693179731612003642967001010264206692081389220848371372411443599068642473142667368587313148105917639452505319052511827069925347920194068057350753857775627257295982404264478990694901624864706619716756493549644436933959427172536662080102679276069913126180620779696170726504592090324767025212241125560045753643175629765446680747950008878749534982850679013444051314803086020320446832045762212593298294646971239827011449093639417985406916517457828980804493078585583368329924591968093193616135287508580309177227221360066438580701745194749960766709019775195367957785580132602871985562513717490173698288748639922970805648724526954106314308517629345069304922887834503659168431297089083829785530801032064223430468835349068750702272593381014114131479303495921706585464082464802416169224766833141246959605867803919949608076104451299131476339284140521983239956575978919830287812177887526931152697351698731223256654398875974534384534778740359314922019576715827775689647297827495172217415704065056383595455444234627057125793204875235093213166371611671433856203007497207750126810830454505679068646701279483697065184743159846696689904637354604099506420332523435822595728529174014598201080524439946599143031179895022101166953697521880959680349005163625421407662462903570164706363315406600698606279765858868417033096332042229315145393623713056152565599451952142945417568556913439231572796740976737161397219246048471450964034988564006497145952253024876112221320926409420992002825731372302281631980550887268622285786516928270502235868806385702787703029876794312376504823870742847080916675578110911393871975704903343041582257385535087164677731108269265068611909061499907227251251589318008335753418423308232425385934700123075547102215966102659430359110859973081093729536532826778322903078764656842460006159135330080695393314695170595615652633906874869004437476438076181494554855208914438126154404580182810271564924422997426917122516742000082472673841093500877904945153786694070023047239727359980229802689006398951942416253722565883623139659386000377828305525390408629863622572414955452302332551990035567163213216000009905002733445142677618121604059397661849051036511775639659751248873455199308001083035259909796204216308768595733031358685302865540670828796010327315656497285044690122970215345595512848533769471754060469233791454417432840554305512468008791332362852738302108229276056743492579406732302900855467117020333536702127873956148421213364070126486106599046272940618165817715744522531500354851950635626230620110297005156647446128827470490717491401331436687763038705397103152492542565394566714266127488909358632711759910077113920595217346526081426124134360117358745446236257722800582127158055406107158709971502807087450712677618953026471325312157510918478724093036828373939857085392398741441989099570422110496203162982561797052991083548643376745969986040504138657236855882072447768538032401716062349973403083019527848882800078549160039460255626487723123567787933474161060443041379085846483378787961494060723969513787001128020130105099050678531035144027716553234330039794698390446386700775622816882542648717368687168778236797099315281720836076658465497128462662820546226342509448769791965234835499261935898912417654650611545558507002534271133357644333583236748646937265856897750141435748050094621675593375415000506611341730783485361160434827151515471912617642182896344863707152056532801727491649784759228088192965218772383164448518491928084406304270437000237077566061211886707893759551172906137705610268562921155019370940800157637817804789265158853854499546990818245835872483573165225584711747179019514032885775689983470969157839876825064951208520094526453497244877273225779838753536021592948485354672643384032902910011373272493556568013640605184938221178984834460538331626988028766412986078549190661109938867674966830036616844235712154045785097863473725424744771342581388000855260637239350448295400845169341287461402214690287927867633639517142137348818020536413078051076076479199130418397117123152451837721664681434457460250954822331357646292448490456620901869274112638551583228606511688657125724924382411355961004093640873079346150916104280318842818020068940693269906785073348476868061760777593080573990680904668455770970813006136727313443043356869105082200934197317464064267349365108122863524421749145608783320155723057163343654747694448612064483283188750058290007158651911861110246040019071487983062206906676475803973180311393406628915803654693643772361803264364141188852191866164827439882439030030353654507480085202192526427287260463819175003070918736047258942527237930025880080271542157056997623000193696363528924245946991255902968475596410560359665239008204646711937679756850876283301313935589269643394767282854141387500570369781864827811339409360844595022901543676639484849231296940214656457649411361580846495605414858519723833066619446165135442110847803789834082100429305013934270169851655092914187341988406112105238438621381472182074443469339878388271393127803176835864188731280755612875270571558313244557423361781284652318515446218616858012896642733146372988081905115780998350154277427612989303919824966831452656869440932950263867290161329113457206721413766142013075127286041540041583799294608177451613499477537834450425541206118902130817385009885768788253616573842088294723737404353304973588705461812744715294857950430224366666230415459057002503213079451698693438510040922397055306012607912385118424648438402333337581541996161754910542414695509007820111547669863592495168732406916758317488566267699810225990501892463039351599482168259205782336755550843884377375801977749566356063872613654830222920692428421875790238213919315769022409810465878928324626010704044576229373624322887137235254933255611162770523725984404358888630770909953390103348605591804606401644089384516035483638789736668792004089176293244619934798647972556424567966913172619980604988093767368609468426352008077079265427110464033955212633731767072912363009993757934494404617700201337752771348042618275422347075684965473680161757276801810287596494889085447626618088294216221031693670388639836398603034020241861404010227558176506460768246752372535334431485006239228211245033964796099963933440451969873604027460084933008063019234152401821969862349903894706334897974518479721985247985360120151696321090741571261338610704419719336315510887021965064565210725581478055172000317993820197667545013945959337905125397370041009133171066921961679220871617843185526121120320422933429570080728202622062683209464097739756368162269493719710621857372776042295051753068444705230365663348534538757836774923960439401288861553158544135872276352582591147259400608298080945460624705070317312355725145451940735770787755074017172793075491118460073563354938133131352498017831357159979417644613268050376203783107082366208585195052458012901136151389676925188726788243229540312998165076981610761494967728339990461324939362815109547810938905623520924774082608677574574998126156937161035636720000686428297291548856130597798617287286963373673137742537616188588443669504763867367266067336990232084013022810418476176714716578591978549692430167531602533292407799880372692876678089909226749306731446837456150605601993491129129718664841686500727136887230670079878122367925007479415105177071416450577763572948954496622502737510597820070469741098048882525123011068430172049164122357340614975950840305557823096543358313490518320888897318242149115299258930641277593193856546826426769913183555137967576303435889879190370411090428704197406013997755719859314180137633124444405193477700388648349564714745298350520328265851943954790095981192515712653920662148595086454617321022327670495045433863736177296409112109740136152135076243539229038781535896171927195578119404669568452778952110669122078521448127428928314928765048054724423904797607349563897275323459320168409922196249360888837390338076413991436998195015751659421851650919358055439912241390367080965673238781768013237852597715102839181504065643803946469514918348126757664904833092742519584969382098829734271437751838946276578009836321312540907466205286937473026666053626488272434277849330232821917901601055439850727985699376569510735041417703292150497044915514570844440859794108764810939232254828468625817340205037204844314513857280282587208188963200193131405483037722524317975968902090213305753882570681848287243661870231301487058934869055397845685247168130334547724093849764715843866602594607453622785345629911933392170898855687978460450560615500857371633508985431824336963665696522817045528836258718243653907981809523133494503780181026656900903473051839976562314595683113679215155086042200102434549714674222061427997735122339110208816596469728814794440649893149842082556673864408136721948572598503507668763236274882632712172866584028818866822104980775116687167882269636652848548117129666307201488858641864165770532059186324958497263327431440637813372241180273429444315416499856475898813109185733251361288691429974360650632161580799574365255757551070218192157507544446927430850107723556451240307894602554578483046061032917777311915434861059346203500012237361147014622881179335317129518195583180997558694500024265984589765037701627268343095253161414813064531032840886819845424113155968920075988678611844295817175757138591333125140782697387274659318259482038604610046821947801323325973281988429889714008111326198966539207877692383577117270371736363301784770066284118189582355078496036284970379774882341442259869689750588013323737073656054176378820756088591865978101179879147173912823614711748697949479725878463732480225290412199588074929184686660101182107937612881340702169630525203897849512574977940377377808853194035331818293789551575419547144356968385969131733592865878249995332388244626276953180123559628573284240243545936436576748189758525365798625418163701876462921632279223848843016821805562741726193816580905308351609863532401356493012940184466097283507765743939000773010180729053854276932556061727080711807168708386351327505152856184396201208619021112557698840986815307997776180738053826674139347836771894210675173883277343235634817396177856067896071144423931600247994833354555704513815320004756868877057260609705148762461480827459843962997746684063890696204440915628740238659544259723350108968911308472910294609863234906428324470696895687089304471485926042784726589066536531079766159451188469958791289773956007517118618317369544165395042582910044345762046139218093383346484346204322700483802051081093952468767781123235598750567038675688926072976135453454000789056294889664181217167532356190541238836728597182946080186674401352202410146981363425063203893562109566084859247799068724165069570105237427679623583457665671692676168974751650495421606056417843864860377690084657446257008743340004880328397536240102032761788535776631081140926067124900294533309205658970253485969719572407936319009784338815981928341072956113716795315153025977293272063097912007291722398985784433546743066747591900195325255333284510853593730634178229682062158193646459792659555822431741254895830125589662970122774084618807835104307527882273452631885539687218109682212415365069648031822498582359541705096983162833998139354942284263063556237584339915297240660646561965956218756004306151876290968871324235189315690095280414667107488962137195748087807676916524485600731116560282948116970153522668180055044714575320080431777636810275960391481402929660408165272373110774866780769437271909391092907797258678839355420704380338972734676879054242341159597257166231305012283339556489466836583627810558040449259311916295373928933843536376909755896000353533673909916982719822365240767442323547502217482642986659649808475750406855621755900503672228630757283890941024472871996995349102211209517585358739515941552586159107958476306964387856361430976588789689020498580171390166015233965362215818264995004341449640645503239354649733808138427796603530496308796622372633403474248510496343138809656486755000506428009608207444842503507035738034022511115317037268790963280161433686459171118538827529686695695620855237674890199600716514819499694620855851366416275179066994701028234372590556748579815764690546154613957823537896666634589234116254812522479741818744211320554164854641311885241175696874105978500155631042735416095721506658206373136957068328442271071879686379276245809713454570940755066735151253770527190300034501939286634076773847217888043589247904729347955457594329923036834566716798986855881106558288706880584029527923227084572580198202175662867976988338670896942108762530861480171751355950232440094571512718854381170392052250081395345696545171473266280046816763750330768829942761829271866853998388036354411679235107735225793723965570917456025063114374446083745516118730307265684213930992165674423597837923365991479948138295544413287949440507365040769788006650019838036982715294402460424071491555827014365382706178091162031890262539781707488903210471935237118652661381733916707790619640358965324407390420542272763250606424814503453149904993258510179147177538229429159142495583738469033057895596436120296797878456719061800648394440156248244481179990295076063761215169508861285279990346954951430339688558720583076393528775345934075294782333567152457049387605592800945597630132034691640466574765498525543224046797776513016646373312482964316304683022809574905054220096068397967953880266924042665530184378496830331448081481752579415946791276908911837061046828593283845254830522722592917186005730088223779937279555662940031226093732731750243279765111091378582990364970200556347045384682326043003641635878804940121300764112416750522508761016865495122259983095629359605711743192502140421483253343416218554921117625479914214787648377959763440109843308362482611286971119785597508008123998548875559906634081318860870289610124459498735537279753741952824797593616760766929085072327048005114083839758293444237686601488717264818691378852004674266636530092186228758814298567189413018764650746004186059721465331822604307336226503018776368525582090990593477363103192315299809004184125781736911789244298606916854057313556764061575617590283913599050368700939156696325939700926965147527501272210832446006157504444618412693431635096496586739286152254020697131938267855106866666431018317803737286427744884187947949925225534532948717255670682244500204238025434488249882817399240055109176478383696642792004924178801444246457554470584280305637148866734790936826599469656865036567883694781458722950464774449880750807010874468856453423333033196901506599557155976240685028565825089762690231204115686776582689172754818796500740828193634830509705479140550378883186048538086304563632330545393672499527942088660250989533722083095165185499637323850702343355309159689244249760526959817278706827539883489451428969185535137397731560284640984088146257550284193333417758772931468696699023312340535076863473712136359365547176683068665233764398609684058711276151164579808473150003110624059754032940751547754353948656604549130533002780074287888007306688481232857118889196149226151501138495852711036212284906235159179485788079540965133089459956458232585557143791248666850687916950489029444374147202275657685699652319826141940226710080461004902499438908611920035347833620352931950134685458791139167005501923511634418608431967471697651754696786071821117420088526171586837422519580234176202977211063170601306729818523698478738779203751755098015007627733924666933821484880040560829810863993637733209649690377379854724993952285091690783305203875034783375165048247325034309583831085572642668384176195766562498700139898322549440479644329586645989913222157698972186991818048435310178051153968092882528109998782186058922371926262334604769318464982491620035178082189044481839433152527439619149345006173769355742614983978782135692612282187591167106116016962669444775676677171007391392414822304923633065170001947080973127685835287671416038112846613842005532603907841798996087457935506641022930679440116800914584443045008134903806302540449894569702099216495410789347255758368758380387647438202137610589313401391987528477188696135163851842930489865214447654076489246217869840891395596392421072738623194751448575955536753347144384067422108069447572675674983048888942913234559129227587203273971993526514060279828693214095507014699882671877544212247139636844688495134697674092091643134433436590981393016522477039893364346751654613064715851785496286470070077200990513959297737455610746266367659156972454768757499397496447594683320306081789562477451237053775610167708746030914706650554798875387044016969364338009588886878970138301574005176096490312798786486592249601653619441778103552640387252030136267491976760738935875928393136094088138629773134570983342394648979170361779549681239603057044417266741177731824365348801082357852883950874828668652269355075494064570631696105082479044601650605164918701618840907299150685446781712396144690943691341906389944902772862774462299815313896653350085514835836827994161007738463996064998696116289492075521893844014264943495896108780768227170095139445546251976216819115331452909398642443797904069698725833462808153983900228466149638085954919125647708434362659431972871869318651044190728344332322447209071211531203069264062393365678760512309518710006045120331724086339252541158494405848596019686062993057783476056966271148408477576954552683122629634540713521384948501868377723941048745815157362228243150463661759765616785885492813379204518219112443170193412644239803314247935064124097129260715099950200276141848412166965544150568894719794863738911588827233640233036670497036665956587408841868863425953496290252565630195227296082619004452379383440871204879186802974015891044250074215619035034260317859300486331562223359742228815300243410996232330852329269860363028326626214277342513982196601693053056253377126299929500257557615938857710476387253666246763873090836493769571909662771947821462801299084650103460399072641573154856566473275943516227216051003280466323189885107131154514355196690913854174018789955384604246477731655229901563815305311723674606972706116837340714929703558899798803344121555378865263983005130172783391223689866368504279462191909659349949620356328619586179237120721838938638882386132781233518990044803667225318138320625958312568059925446395069282344253771169462664409015039190517774085889147713161480228322573554961671309010010304210824554594754811497214267520798074733754862211370860013560230422495307590146592009651703910608085007989973941184227957099322992572039817635531250675370105104949374373446974832549318151689970780842239581993420789483769430895842922603984220324307127446080087492072679690960057938225087341257737881321085966130206617368780223421666023646944352635976880756769521652670872370465797788813177335016730815256970740325017447159724931857912576635396103698401032874843860214728433195825539507124074563261974199225450455985820959059705532581072754146708721512091599063755893086559513013802743558009621208592470540273136626063558817382860663318924304659428657557819193870922361970763888858508256139226202238920665459250189035782386877133682421391464344479583587965690729546696691243768773382140256476655573684891396627846065986331098665009365585756604928480243366272879245172508415876718722564223969487022330967938931373350614520008999511024974253464165423403587205572624847336461636836623904884371132005251818738419717315831475675666275069157308054541485305943648996133170199130497041956401578952701967493252032690116682683648823348181576542317506628326755720031384179831728719708536613183749367877864925115187268071178345199943245546376470108317161553925561436384029799678888323342018967972699531502241207674865261303693341427394048001832578036942397253775488863374055801843364606235440639482822617720820705714828542037273462725092808623563651255986122717160407357582677242986154398010029934729213553209318004592766412601215125042615778591589020324192165903190141777663702671199004808464778894966305178440305775288831444332995454571256510430049870757765640982091569314589318312093294541040260285344519294712654658255998817979791522574509343968712696292231174109905642757941462617885009365745279360985242923125516277104948827501946059078021528652953784693861278380525316774548173301291608270712283830454432589308417113626338330229366966238822524205117368161994661399363586566238660644134645233162328606336659257775871320723579848895592295233880343903930707940839097544542025768984168331533905372747197086365079248657308497516797624157631531912006906432848830168301831795723237997799645915523458789304275923137954072166650178062175513369011685901683947474684412338069915179707144810735547781035137420559368665114698426834908339711828602310474244143077138150018520806964037876910776134126895284681399096018407614550863352246315743557882504142223498108662835224938440340245645130734955006500701076105433744094008391543404088998580203895123991188695841916031513744493199105633158789638356918665939741879846637816027188771971968483684690349132352257868497731712554765270652457674135396223795448187738798633050384610424049239489671398358896338749583359859908192038826689755999358709139681521655253811641655219305185207089088994622546618415746698526508419034817642526068404135400844291480540698468247032593201886559788070900138389635736393330057033028296569602592201578690198071048449803314729934027116589090870376704198663423405042853988559371996258575866873144845126231998684408044002430631696915834523089571162232885683259193651161144914250949839143682385715670887780148761527884129805264109012642089278700799182173097409115659654347674436330518786424585160579005244346298359779112363257396448487751213008785158307192434375350067924724859506563317863604659148197828382848846213801164234503255495459943260055598924437976426388174211880096699462061769137857058938365810880323825510092187814627885791203893787377849820335081371061558377719873008473004830994702207194477575150028402789052447205257079332579374065542873596850091824054184626703599786028081324378165354469521723697730666772058765572339581031844914878458194770137831023720974905782902249589621929082699869151403137023750039063567899587833597219884496311609722352319690761186879421929013372664397276686251442678653315572737606616574779921701974155929457662883004887900571553488461266808406233081499637276407048771496036325237164500239180974684404500887252375347208417279076444772074310154970590312342056288259737992870128353114996154554072897176340709132542793943334378150807074519178810669932456863185993810200193190659122821464915531079921217595309147042608125246534130471932946259912590211618065345686714195699087050628298175332490334422583588403670912816591403010041123522786584414625572048559708550130566188048990948211937761164569062047895990955542588417938180396728969471375804941710254661852708894282663552878264370536083756282243103920897469231819514065746378522236943647703388090087619888646895680205778350596126031957326813408477655281272167969896063827019257834152594950300380343966033339972902014364819065282990524401139986974017076455862952683490525854100146696121718293271676076389420365566362151191948269332295913840841675930276381785539800955094341180017592502054369571681514895404489291392635871238961640465707513959926865310148738492807901513340588698221410142086061708326146646680691388762896984676756019315698268677969074089111495374060502344459444727579997242449265973134336169576894434016397633989141639424995759146175553638272224205286774375687295561591611557465931451338283260559822315047444601594969770765733365572200159264707429543006166592830959400088660722954213803404907292405356522786228665583044025459920858993460279068584172784513268262918821714249952158004231527534051035563224811328677306782195607347182377995021153515195746876846105828108322201162810452276262204069832475677420718970810119455214107182499318047462774685885794131556368873403071641982739103805053127282564657507210959439301811284129471532963574672305191894418322528517924245974490218875490312496825443554950374441201090473769252310668548999848147699315106033148872076573313391338421201061109590554394589955045492169813819025327230686396409062973307992707141442934572697621100296003504452383846214222588909205577171515226093525885239795085944382900578033001455390568539067598421115207768249088823268707325685086885743269567967368649333845099055860135513561483838438521950354801075524199616360771222128702754805291857430065504690485650272261430948379349386127970833986466365329047930973107417169453583185349959285955114517652640414577571464050012374843557874644921475803147582588734642167516901769202004706845463403948009052597568392830827486187265262464320382276246932720744288653615363074158537997238893471493355359553289177338183145049197940176884138213408175119530177772449966642568305255107812030353751553969995732219884881189728156338089663328651339563807331302138991614754846788332918414568851966121171360627616417116418344059106280646325612878347362317456948677077487675996716017372110897816394399373358102890039055255040261653138269722237308403878585972139770761794052355034988143318727517601217982552922371420379706054465477080647612229407033019093010637748574366301837012671894017279175576087970502015254799237733367021278499746281533158764581077725274644847351296002696462264497867977028085806136970497603257141237921072084530470126155353786861614424560774524519372882378977256431673401303414532574990159840491077976418303615227011517805154022452545935209712623393238539550547066595585314803355979139755972906379626873754263401840061033297869355798327221779656614991200913375921564614363841974192800047860081190050873750603769443177670465406098300286502999908739389580136654273576664186831181646561409044918782696289094285275603783920598920707894535108324530946383724188683809266994124096638114719911607098257574662796795501002753162390421599815698391406378849450396396673289370517503729363392686094433608125363882556066029469548634488239893805582751623626835736954665126867583044885133688382633187468531099013358697188590496499136373286896619259664014982940337620090542342637384479389406959341074720367733446090402028695774096586203523590570935836267324578408381388615532243469341679674382600431078420572046425228358364502062004370801833149932525165361699395060829961156765419108290813034054755466482302789896567749576256769260318884832481992334955686087898839484643062162367170657458329844735584601737396232970614729708454795429153066383444075682227925167036089729604644625939082812915311837756895842388741677945624715666769812596051970624719920088420354472884974862763029170876872198659832397753909356683003555423015508549137429303940183440531054109299362948341313629610532272070267216122974895399891612809085118614844854431170110211123795686166159938515077108196198468543710714409994801629024412394670522313966638049803165393259684744590900462959409964031682037368643379100851223864101939881128349459216083453526480268122225258754044052719579537002996205486066929812605904582801666272786278549458043528354354818361978266710598678550937986450587721669041275629577458316552212940429979078081073153792720128952899250884771183004637782930167675011844367228568148042922053585002144569993628679370103175523997977623386628032072646854803789299473125343574826968326425028114700356539455793793094215258018348955763605847820781939734231450715691285772633986680439152970114106936538929504821491116400279999432756448113383109501178393639649406036515065283660075792105103696658609205577773146166093846544273292445188682710393632823150023279365920861788292080451177952378019633413332003242028695011207366923355106117986327221721354829123321405743546704333489082482608720395180555633390673135938642276413172337003386018731712348948593266412359735775237939151562902944487649044048117647930260972560492454325636076781192674923901976803169634927648563514342491218227601769457680049952064561014378817637865372265970650318260596769425817456282177158045909214832142882131012075807835151079436560032997721275032428234991295592169293644100165593087126892053103390799554232813672700626917201211473024957359519939966076494353199618209183416565186419607495149199194773754412538731405179606794664777009967039422423015819993001587005139575125721490264252546455082030922013554329161002441487735946377330667508487686916170097785357279092393933054917454340109801169678209899815313091864392431408705503279830405574575100687704478538975032287300312570321347265104676847843597535341383056026058626093272512647969256797850203318601003766430890061350906264925790632994111491709412797457661606814525264528073428956990369754600112977494122541171145783297857894942130963466464900844632319816381886141529762109507285332971197842146340721212403133714276018944238540613041014706425228317348653459220346900268095340027898839340973079904423916642783059845531647441671910377818855029318833314615145628677638587387147545930156886234635660662334397229694151326156919018500409994827490703876539056775425173259400273488239470623448536243755829497864686506475287131568838244938300033871541493680644340858626794394090458641237195450363152875523494140978125543453694083479252922437814031596488612089597032691783991973024857376460813548911909076647793605927205064590132875055242896265004261540857957448060146395345806812274439247094387401711377704849414249632026078553097798288032128042781847656052005391521462783679741778876212142035833431300216823071296834274941856976170957910955770948813007719595632265062429636202840038430346371714269605898352673788792129064123333670277719604566531404446431925061169920513621887218494653709215963714589492402375801325081840627276847246222691942661786664921541483767952809062487219644160461672181733520951008816235374567344780215588416348461146010998057374176257406451502724045234500540013796209546936806040358173516166074167485382176411179383076161643888244832475219068106679592353201831265225919274096918513289657038497396717346474944141188396539538332210687697276813105825890411263098226603090507263497708129451139514560231836335177428350097630603581465024729719910567554722779320617235562748165207437545907993285432642872268308925334027392070810990449786734122833578800724710238323711965321616849336361408759598351372511227690357544983230653161211909957938824606266449982115781898594452817343047854380984687833060635440557175161782650709711145836868440541778421098984633426167938098134829799693279736431305930053957335809060315199758159413878148926492436043788090974599749305359985053966291778991203877792004796949908123646601295883564430374361254068412181522833192547026616643938990012634159716080511839127128934180956935099034260264682462404570032234076129244533843358926240294665517776312562844572911565270946576518431231442535905334895239278658585383110655335784749708749522894822539558014767608283949065448353567849296461575767963720442581246329090186792287991618391356418576344745886731165102318789052384990799838925058512470544339870757666108374512845292047531718905286212989325780855811376200915153322490370574482048877788251593716305811690750132031844806333912507446415455989425142448882247476446834869788841882266859907689207994885871038766490806294836515959781799816426879684758269171353198645158795861660657809780149998133286218768930373465655544114676110424254476986272643395750077302745126240110717276519838777135375511488259193740646736216415586325462360158034830104748568191905957917818927206954418376789872612522448612335285861755613295729780182749257255384231253283394866363613987079580090786307553021956267823570577772252195981852520240634479325763680820202954964022386045305207968199667212919346390890653366178835257767876263655413941381263728580310030180640203575657661225136412171158242513987351381711722859967534961749707951663744013467769116683530538044259798298311860910471672613801211120620180894411691407283179708291838037657280718398901102335391392049063505797819913310179681299425397942079078149446267838336625209081562216682010841947128931750223895992551832310052894609250323507818620960074115301623779145137099195625337126794129255978826055475644102253883391305255601114675691024332006746639902775107638915438759265040789772397369032641602862901636370463568065845838010687875959601692895962284943142013511631081061510634967003442932664266682779350235343444055005283031125894605104720822071024466906633081389967319334142800947977769696847057794069200250348657232151981013202025677600234884292074421799438036120614532204678719577182435408859702558295097529680451482764710875376432607405909060735752841268717451010162456499871886014606405242934976271221601095701223935061219515773815971718345556726314867597916255143480210998934619464137879164259361350369261948519358538654002241957805737668725850208792424747684725193730813374296074875602296481993694390923359547266537230535617894943034407111081457298930970987662458602765051634439312102599602816191848186905032417279896837669616479814204731676063493048179848645052622953880265211490668099966850594536699020596013267886587421121299542773467435844333585146758813420047002629589647337279081042095270386802440558613319537173678652664100210602440851524275839662511578442295622705795283699023237903998975588564539963356883944938104361419632844741751661559506684468417660303165241716956253314529518456956882434026058075325771907959243115956906749722814130144056077896668552350115063251047198968658129789344620568424743082126526691256842564032592314433944410228055310048537455258925716895126826144631334331237995581597306388073037205216541931383175128100108098268946641427328615172363284759623820046588412483242826013436313019692601476014754642258365594190485283362163191020859965925812091457243646536071248579275589223435065369091467675733373896888217234991011007544233124449799050125275635080441096022688530582246085089155034940829850347627298751013165071525561123214796944405539450334964837506984298940505501679929806402929923099580032672376552528686314041870674027753069394109229880356162068091923905757519604414967578432909528921828134825797246328795301699155756627614790844806527070380660282797284922904382102065010560993230907972559667154407620166939765004446614351463077371209021931569547023644362927197773526154367718549917819702028149231324710984398791399704535443277748799351287281917678611377077700142299530235815776563842999290066149103090950955674026196304506353274432667448359066595179226505844099724543936600698680281244367191591278059763948575387723733109931466944997869029263251549273267334734077314427835711107880870481586470284940448151623354259058082791921107312841821410006752824563544041980803940126773063009742283121110847195208236868531791833813317674494278293559708383750795638722500061162812861781213627931646648826467381556384870185086607323076961613880153790339414576387187931684347699236613895949920639637308411603823560399388129624712345733194171323089667129304918652583960114462559392205008192091655806899982471917977290986306602716154891581662027968991730104123240128384700001380950837446208481519856857161446065789656343586954504886043286419196078935788852564246662298489064944447246631168692605434177188680277835999130334176686468959149331037382184677584103204460470402097979316343586858709926915655710800841689413689515463560541114970489382845430808789531218433410790454094728363194579148919037317233426223515894166426956347632172619048553064935459011610704218651080864364926663476140209829117071902272211430344943865334099961413827615115286881190771253781502272542504377574585565679326044747805814246210410255853935768705065830565443168347428324216060190493675818747674468838109969360128806471541200715589958695884889778065089895487463681222929451764329507261830823109500163014064311365135174449129686507575459788074390578695983013569104209542631657581024819484903358272893859302031575160416489546712732235732982423749545185952078570829760169880539688375978099382769549743989109032780044202230164899367733935241059108508942843941929158951455494796314928875667296603476719118276490434686816514168842807806583316191968728263446848122391895900666641639373053363790006555615003211160991727882265919450358605519247598684234799133096213873463833501732937076496178708012288152051191360946501369749482680557719413630901381032713291955711282500516647679046743434316043354554906817667555884843130937618012859228266195796394246988352348625523897910318201736546483465681333691948491110112245787139440979239514669834406535944266420659505209519103409087518688631588710261318573368315434163740228259606968354264558637865804074192800136423641106821172048104992368761241774198893101793855344952591367555873070925900084796935307899251985992812088412723330136874177931371306516987781688861132916075637210680378339839605036307270808279857221531479350602483647562513394859086974327412014049404778259610407413075795237619154267235217103094968667359513619704689473896334646873019158016773772782023927244247065603998905991661319572519032642597296655862952508944965268638868860570531014005180266487715339510487987259658047461967409026401533252443745009008931119647623869369276387549179417483667181879960024807685270265668046263145661037063584555456929592077404608865125926711922988548460160518999239731745435846578651115993773296443058326754622996803773159346430466955111221371366508696742735930484523984861278848357766321457701772779462476564623479188892584014216159718222883415371327392084048640134980443499434100046280602115223645341556147889191499854208388670844945347169171081344487291086471330579519296358797307000266450724080872239073242648326254195301214241260557357901999595628603257373062009181813143799107584792396397128165427886682810435026864623466221270991640084328545037292381365550639257580651146749719322964303307798285992359978876492645210787373535153187060194813283449918540538215108419960969679164895901450579871659377637112287123901468319806380606100515764530005396940316008076510303002186169728000297573340404611192630942427918128073392655397576274562631637789584496497075334232880979312572820428969254173693461983827087194267301661073775181873761258289173791332903828711635924843764031445144741337143554625492831556617769633550250430289342481570817314204950749459657895865025723742177764189844572532766746619870229270458671201403034842452642486764429225797913968967802493526566420427296956513125729775169688052200270113197182739953388660278346524535759279336184692917640791060526832836900630468604640909365483924541094054102137939578721015637314560083248460269752857772361275072927665975958211867857022700073874036608278572253410234063858713497344526561387265492618332432839998549667622972125903667986679016803682548190862190370640298042646750266973683132288570355997744477706502304997316573979738607727092889358674356206951348227757892457348477754391725001377055541859455878395279252445971477993217549743918903434993474375902385823297536234380486298928698961639118140921123874649358588469380968949725408465627616643751537559063791286157784461271140434337246652810259029533236704127635699940618753224189380249658693785252318599829116083961484227247455359146036601768407184234393674369499298327012866404919964021684962550374683434683259878861048503310464996188635560148292248630597005831074595843361218525441759271645649104076607963192407133591138928263803923032059532610092476385991943135746355230457156998399713843800555706243524609183344914118422221551260367716182325602959136898743845704552242895364071059772054200152801753555134372526667662999798498756328184285989030883253724615356610026625339480180274921112205960662389251922620090814631731692583517978571676790326014475717385830984663946498720384452429791700913533098412577634012594928510960495792387033634989490387431993991740242728451650909718491093617481709264428666298358603802672594865937363062801745739363325383636741386411353241372007403085841211083300169874464321442771759266972781575288835415404591673925174333008768675624938104609282054390508825251093924044848557799813400372781764689669991866219986782760109684536382813338857238519465139977163682336297656260283203829829383769932054629067487639287863465153381054106321225843743076209118651965431586014307085318249976201944755217402078570496088753639074014191332875815738029578115177350748618903835358029074358368246725668272994236824665053347345461146234638063708521306610982810561403459329483153306289035036984289078982366798404593486056230360063552815197000173298734237244038369713092201038099919585656296894668925493035144437802557512114650860482078983404567975981909900524435934357833585024224232843404360160194930020296294770516638724079141912815886128804448038205142636354794075302768260356849880773030459585186555180994197697714996631989779323569388315936169384062996830375428012352827355973229822645913821880549353741131297216475073870468336000138992038134561141064601454061603172768792093751287377627998020425019862459303591355485891478222758931888102606951646783702510579058862303952937520009028682138148787614428903091646476685050518106008151365596652659757710995606848403721100261698930165402252850490291208812004723011426124451355975712017378710522649179602059826995807124705441683513873252534436756742144272388454768174520855180723354514172966807950075654138459835009354334845475395849941862315707351235513552446472293581100544101117912214207460856206290710420904459659434554684809094308284487375855487462941442915208999977555806541132257671528647754220828712551950683854185273875945496684179665847881984397902555693964269823912354277662251261789301956281423637258002091144317560463339944619443287399277133045959431629603167886968090301341122600121982616608756056080717559316207204829725374302200062064953065454623976169622750129273573146760692109354694494783029531192596388363103983584780329333880220623584352479937832423638100255476884565104221105795370230668368935957764763073393435879856116559116233481542272586826356164379307959034651051067130375262452554531045089751812519914168919097378608006891568884232012337508388441969741137683855858869569325803875230746620531441743939781510044832714791309422621130614959484686986247050137794264344271086223974855930524350436199440987541783096257073794025477228991493416811726484209861165974481005890012589839491781663492750041545506454674523783521222063225770177114872848449855354978236442001917902185309999683320885832636363641858700898464597110827133374174406495765941063356823430219407187694127461345384835671569950141417047035743113733701324342475845474591932436395967409854081287905407076061312530165889207874914835382518341192087985476563611230201228843706462885283812036438599541328365613589725324488955194401785763753959204736812303109847796183809946079623904369711637436216015386687367028497692038311249545416578939527091407756529683826469170413850830486100905758793665812356094002423419391153208817790202821015305597710887291219445132031737958627539275373245674738188297377053579077490762643881707707562530522254367998457317816214607564887380672086081635934471514714252598753000303381825585348978976374358471688684189397252055657328584401727480428915183308810729811389939067333666190352063729728622383986818129796333263107583924417887988003660785871868847333043237060062846213348958795729336588880294453414218309802798458546772850494937245529403894529675990205412033032777466910658772861776631339625361035403944909432438748919725763094413136862642861134255205141862871606994014147262076920716969881329232885052971592913258974043997815369908949903204831396433643729861651821316589906129153106002488167095561143318497995497307383017782724117935691256204801340113553535396623137555224976971010709716210857950478559512643252605020501853483164681465746999270224270309246741978650550780275097186805839903506027381796893083826879233408186032230007727529175693328880128977470519596204034098060097584438018410055907889591867838347919504383739925947941936687851486049073890084389183435918234181918309096980375308597801542746234151849693300649042285274086078222481496509175413312780398205661325490204892775629882022150628496061029373842582227180279508886935713604054653026462741342594429355748667065556124133414002343981439491986149653328498978839493449309108057043304650670757552602243793736008877133646804512362109190247604872783753357278580553795139477614917288114134180422298352705145467065604398933179522561118487117323799203769961698517632089732483462303575729565526364879994726501782849879486160253668451502696561891484124184818066790812938818883090813570381034282950664653949577635910438535600397274584499562030929971340907662166416052265425757608876694193180696308258071493345866636961642433198630411468787385381650813642039835119035792499772962845646725400444500135239695170878593977924369933743875680484144118413561272076793615845171724514199004330283025846020933759722735581970857797457051497151291211522442970801603472675340837997271401849964989131120691917391393734344906187912053025409464838197539092009402642233104680990375304059896314988434333103970463586662893706019231685118781370948885152038659539719953858707164626289813708131340582941203229997603459285080814643264168443524918645155703084454403381897173813155087409606852055710156016015639769195258225919211888854278954938902063129313463661109956931762522286703544866572305667715701219963316849295314893656243945183512341618168536282455466638847588954616519661145924766415710086756698974617221176472280484902265140990654605000493880648983162653976419987894805670396194983552323476566806493076979216596369312987987896787616737647750929487988709680476347765470693092211729665076833419623184578229031939586336358032739306544455513278531085274637060712561861627820646112769228478234034674677167603491016282236853750515998229639422148250290567047928805227696095024280644171565021725963097132544697023937961103592660142762076744768010764832381214874573727155532783136416494705728124411352936433189168725802760134740986984949554106122574902239712848138285094186510606998557079257802842783554299911451210705422965159756810206322051973933290552645278662637497008489471912155635951409632052913350065971504442738192252321146751057795481485486070223619079735422168000632953876739581531629809971960668234347207447596973095834704704588856749162272438654120887188130653793279667366167652247703518037840622419765264162770688088583811067704402560700721808747175372020762544353422165413179233309614063664581589355355688392108320368506873999122724160752673468944001384362785379422114851041474370789690898151360228405516060225459838553516648870397012774189570824211564683078933694397449971242403629110389595993375787052581444011002046046772633698030747652919922431433599596391128876710409760982726551220101072955824563157342553335069456520924425127141000658220213384411075754875869346994238388924608066683922362087346533737783655170640167469838667990796720451886947065348238722203258574226528749692706139086670998691801404557083379731568699802947102325771344432358879581620305166650015046858392314210950667614115582813524563926475845229762163657472490876550316724611715476312841998226097939701441110365544034610867643590731112209079480234716988183653353420595307622941237646235397678859577888419706306938474511095067793601742081691190019896845597875285221760314244123038941760653847887324709682473415256843970477434787230205663371821500501842720969396308248088571232899199129753386756038236123646488501942814332797609480780944552865411596196695400449549380249198845150527217123761686481036221260861528446193302043721651546417453623981988949329317483340439137071169179839390486883807920438445563418261944870911852708500838264446105122086136321387376008588590822682469469566745163951567292000778369496115990028359834889537135110994517665826595384556430682864450466468608486059333924474512235708380872750263732109888476906129934336260014399883639019677585644464017986600989780090861666121655867224312804219786632739012181151809776817473219847980792743870101351332514017490337073792850579633179843508659095193642101728353188704093396987800574423785960789184891363350209100609216016371730117738178990548426975177563327109584481159406799634920099872794954945543819009247252278148078998701027415098301183743626459405380153485011203128831573311864182525215459166182968725805179926995146728937965519944444417468787545070998280906928307201983551749883808757887512877667998199227700394812746548946800021455606535515675844302944937901667565829550709476431709925533716779519023749550357535606513920377186592466040275517502874926045145541315070232002926455408790415349863903224618721690780056686114871774982496955910529685140345718146113071569992535172825891627167309660869031286958813881390007141986695195037950735009712405698867971571431067109799329797856907680272494267841931875142921014682283040156125266427010710589468095403570741654566323930862193566171501989909229862333946540104500192581768635192365002153387338789470403344396982616673094081642568161508258075419762380308830382155176057353358635165960398006561040789130957909415531243532150483258479416304915579180603341894376543630202549348889262866051479716755621381997430063621263468954596807363393219475577030438001109549026878302309794877049701365952446833462924464978338395819676470563164222444446584189620543144668245497814350175925504490143477145399225305076846349886695370011547148536728032384307761051769141460525908965459505310258825437373267319909347529773818223464015208394383893114820824449137730422293490633313226402527216753753001433289681545310951709655286475762688764135925492399295017390804181985446405868274532693863787937016170708451195507236608504682764913758112763522560727003212774327480830240688246846032298184407920521017883102614595227885746101773113142934130781028063342047807670304901844536261136511861327525561951769165637770045153912426904034923644769420530770828760682431547965241886447922564176722036837460088903262587432695490143227626830071745081246214269278910045429577113061212714194518674487506949918621552385367526773987316714129169194436376744524069134443046196195190995374598487934696457799269747054326510892568443802359998057183963316230909902104958004931261810965780365188213397416399156091512187988657555890116431336020877481769543832452655075702427780973609605173989926218938871817613503631376305326490715647613864917567229944473696970020206164197560189184579603051765812462355364352718498256216113880185699665141909962694569633195270490330289875387585295769055431518134554739892063250601186747179198608347097186786555577720236952773968735333215969892942835427173565650824467172775961154790168687944512847603243376106958051530200757755187556469633674018485388384377059685370413886457545064692242431109217163553054322360683072152362354681467783326980405684371516170391854612975166303321517733447686813390079748825408482969673561761447531087006493664314266605689622611289860858216827215644498141231676944521882446516948883779644987577800849695709615468742830386481841381405389226484382197338744352553182442557733322253377410474576923359021226549673063992080196055817987517102151986063574709645704160139836652129150118341099231536939186850801838918225108610793818198882942373102940669488090488560799875649094697080766169073333225917850434840332183473271960741423098237183933602779346891460476737079055395558664297745977614425606050423553212276893695394512345041826256187828877107290543803267563543203433938568229434928342722698117363086785595709692360417344192372695500539267173381667267644076481937298569528268645480629740369674570778532548604350239099994607260760100701065287426645555497262897908705113067027607347992166084800553288510652105663965882113346744388531795725130782450557883218669626545674033802072211359997663007318466330629141132271495352366561284672411389396367752807440912734899420922671867281159015533462754691634628963551865448424315471193529226790543598124709840980481158067964440152352489079433681346367113482246375178741943506703575501666753699196406901317512751256528776087547616560828945116649614328463687750522457158109561979138280336921912523038748839163853671801146922877899643917992675246729677390134258874159272541420466097141024224086914932382143615670513565284500414872423487359448143016648412663056804614299527690772539254368771554568491231314802567398233168256149357066585512088939237447772348112100297682382888873540442529258977179689617648912341837606451673855223472283701571551746093295542264578557487487498316750134381014925337527604875938004988645433045555010155536489963502692031759375703110928668483304666235995018263356956414762476670243031400181568124240119672873462347939884963646552519251230841540722943302196838353517430038345479465734780197126264773030475941140897387430289296251942071185950501738782364674779813278706100153611774994381137983603677947613637806384553881183722397016625988298395844683592429650414752784158770011300415849816648344494614914864202668805924407554140035764436887326613465798320950293867849001268097549230314067420970368484124234786873997945742021502519518328029232626958932855302595161072475644278248308649694215598588642713021840670164980703459370515972396513817291600592874455010823250863253441640321266095812991680063043042829412725084965561357441141815897824517606535787412469151540090970173085799680236429973037401463438639731664115609415564745611860006240907043851578344919961734088873097748502511291688822478559642909613848092406616925470772774260420347560133032980849742937534694227670177403033342659992310729119183993789110651729479583343126295886087030936832358627618091160605165839419400061817440340813994870397376490304033610469861992972516846984463009051511900350743313369809746669027618386212088219089837921432727548675422907743500198353409999164054092158919105341301261260578095666906812849124011061397173083442417647918997434571379186831742245083416221272659517714919193981250433631736054789215701529367727102858019159953545049345773326780156644681414624019660866689904553026838669897641586709718608681345552538701035191843736024087273974280139361850455129042766852127452078342454217912243730522427460731795529892988712520465527012112932915255893334271807643157806568559042237909982319550013790641404968338977106053894045702475452393097090871432597699942888023647708325817868912926393177617833248918210734858652195336392668035017154659194067666878022475766914580262500289607700223964901571621926663471702970780074690208121663612117557702174094356105528342725663318998222132808639685516819364027411291901720059827308834872955760013797463658518009002614467219848568960079213697350833891608019325568176425251304127759604865758208500237225899926441576062769283628635086212896308136908190835511030252730495982371600843812233880954942703535723377977862372406003579014506117722224633157836951849329152495504341797562825397334005114744801828470790876118611287405359600168026873029898810587516859496076589800915035811785831702263951816731709528507434807768501999760254285708391982135856088855927037736065097229287895002564919754997763399753309302884975645082913912394768430846859276267939644826067165263659469600353131065540564383949124844124215506814405963663091821560437688265762555931916968730901844391257502557217237892350933898556664568463895276125611685412766959508986001578745273252107768622676944307530357645359023491288941552630790034038957707594901950149744371888428881368050603338498250035492226854542539214872022197853901193852578340345881882311281341443957504230447656048317497506112352669857953911194163695471350556539394153307102068128878573176743322349020871900846122037084961768738097829784666546910984018492642522495371242768869607051302629296682055820978950075484598717674827229314511272727713999367402310047619494105100798179410456239252757189425192814060871551803034847418729479530818239148206575701889234346597189417144957446202494053149794276223895334247042446531542761736784914135263395085338814330424016278394626234076138947525185226897700723579383828253192759776042238958172711617333827742630964404701789264517918983944879146188576566731158777580497825486734904154842016038048556923867681660329346408234044255642616390892651178374860300802942100768740873056630465381761061900568656342955130426134617547204385403194286063608710814813697720013277284154991315390518019450886735080459753508065475231702283576093784529488204077233076325079910657486369156067258102591296827153815184909536980561332402734324020178228747867072614648616230678627890939677403774674870307468754924820150246668667178081359568362156796991074297920762427784017570772250749734516614101234184922878156633722935812184589726338364563904820639462329412315229129136316379318324407736958174415610077122618701759531419065834130009684197942728286886695818960997918476813840338287950757260481555152854739417473008139499823679970995997832267058355642580405660476501903171394400784670110341320311041891683479512571512614913597526410810443184926859070753543863377181541126303650960277445476810128738455459848761098461016394717960208219405494665160463256625669743553644923094389925747992986350334298227853273310535696010403194124139031659395946428585293567097467780439580661760630496113065786199012204872268421831255455474934609423627416956554096394875151381885568849727604873218443712601536267766891905857838568243436720081379895631595026006565115485379518448520404930781992220716980009271661258642419715402693917878832532688201680797259042568836608096771165368229509845017683786295329190988969558319075280514438618898952224608903546072025423092830430188389822359087672837966604650957249388643768931891586950689399831221511004220683675212534648512303809153866741506203173919917190467639849324651264038443004282484065131558030875661513100631888762383579761417578378374556863494112704339476941254902920234390210159840317706740572080030215429112597172583927543224388573773495826755632473124351250869822471378967572986353926617951563257450717910257929223511530126864256547616351875601900329257089781987308946490728803569594212360565242907524928359932053776070231449949575226679617259682296583802780546449001116614644287775920017748303626070744040076932720225803596897473258859676665173990057956783399241630008221007488625996330729898455132736143654484251798578230939024050832194134373715420437979738565557052039189817999511834179275492265009736235725861514721546973893194126716323201803466058952987255031985163071791704138983261540745403853044161833820086668645137453604753066186586324950077035868875399196264898852991155329424613943160451643491219566002571638612934640691315496111938346695441026358103315168481896105529727303331676001546489251683436066942846183100520209559132345997973839892105986682512362004812868217323407862233419639269890764861301255140685817217250996233204511322905187258826360760471099851867131775636900166574526672609936830669239134473075949266291138069631817642736864790505350647863782481664529242145975301390249723869459423554429788986154442842529531819751842298222912489030116350103310505286611636216161063661691580643660501820410657903653359308727812316651774326517238845610912273910441484888223124433496378859548839993245659345333318794558060931577333768812754201531010234023979297816884302606918334778175432614435649984857364916878932565368886893286266320996167820393692611883805761723463415808940999761733448629540915386150551848907498261364918316010540834471250844642939693744500195342428726022260954706194848679686642691359792350778431928064942659730489356543495171499508536516005604810096321753373976595244453455875737670619923160835272067106108504370868865782405965630215608640802910088320135427799314963310532662023631417496718241163022840024769303155440238083019476634027853902804785073329533237435977584597651438057836507733881367963395862535386449138303709294190801297206048454717643551312738594795271912442185710435483992416319599098945386496642534960858173372205836697537328440614085435734385953725367878934672652719619108313789699950014686201380320213126654210739001921731276657181436117959528190987429152332608529810095157706298238167588855054356631045829577863907894128876590380244339818179653255192301640409299548785795716078321179074978164992285596357050473834927249501295686392876709087808178006374124028666527333877912206266391705360657046567606730721051827427979351077560756420331277138270924811998766025050198711546760275509343806521993497186370856065398761257655074615500264778534523126102346168905697074679950218014538212098859368824155890390459401562593814888143480162730631010646109594254654631286985063717757930973213507219384226255933322650837070533751301205832094610794124741965599276171782686278486856121802623045650075852742912833120258228530974672988216478040126576503374991016743906063930377643238048717306303016510656548554923998192781087483713199162002764988044730894412986312460025740903486381094294026570311744079343697496706596149679418101270616021011610734927843142998869767808358258026653309855731466549616793651848138545429372496843605404015449597698212905423237430632558011076848173433764979893782219170512624351373268737151544468612401647664884745380134380397926922821851169286855848677979964762916209457166736642673903577017626891326054396215153341898099414619617388445926571437740244148549950439190628155502547059456673524162057915087530131676673714559913003415999047513169314998754074514203107751207854067872336149787752850456798792286451328695091592352863079427840607675964550869239061449022829850945202674388951201132016715335954860448378499811868874499870162431728368205924812725169448685024723358684510595039509528012568256841621660612122785940252569387922170872005990449042262994875294404412337985526528434852853060032330468791447107700103316988480310305914336163819500630183345463677441095892393815849154573926141452745655307411020568492304560198885341439690872685600750900464488679381829103334628750392933816779380957632570894504390407886130561280420195082564190299301072710742127428714988835443581878966235086199290905151963652815637395542080969296287419956897803026411961789453592244374797870279251887334363957000479090854104994915858973962838258145248069894688578998758955552236599587568203946969148111813886488713912334325620913484172558096325062498920047039613334128826860796748860306778844828418365982238722058626378759247414896158884882994551230783548310620498628437889555914820742746655557909183110698797472560268463594734946519359460452801295049666249227008643912947429525706261330721724353755883131047538869574324666585933027744921422895529975627915687854754344381669092188940732681051346952308645749760721121939582805808617228395109412870030239205311579702370398126696731811394152014557733762156397297108425477952908384299260180947731964800211905589423666807823651126181510746020854330963475860040433552761110064372743077700381811698407754019332216593183191493236379782240861567398254383949074471545086828838730849230185127205083798026835827539898197410162631809545326829807276771614458255461109072566484402356473553448050025732337731738208405319468993194488409665291602234862866897373485471501135458934881425486676130735167953090731042163498479326591115877671698260275700599349993226757150415418355862698631294415602697077566947357416883151746679494685308949020301549701524562027279008409515373729301882791780068308448303476918216904352851920000317580062514679611665396163228429683390607965664999416804937259620295743923971944290846131413573428306250445131984237203745619781598599944010729087352001979764301530269941558562925729237140605584320960165963162166693373115487644668334057399856530318543447698343145365508267600964790379899925474567618728285446103153045392266190318944026396631334973102907292017681326482909082393140849248997079176547223868548256194366522034873480233391363227682481762900776907134570199026700530543028137497700288904346015577345118683483998711218182752974746256254801326721191521453655386438193731624608222217504052224595121353841891369853249373448017857476400114227284787931681375585587886913267693636793489675410703772330163249231188924554449328952297092059605501641863456029780068682011139893265307262700336655181431898182780705953937430508912368153869993123309626691549713368596194278655439091564174963313292900336098401406944813114487410640730473532717955705231204571768005938279275332132420142943618291603283128414688259073306819441431776699806885637522549815363383810039541723410047846734932437144849772650185784180320143238054708651743804321755382415773599371561527739319431694872668206833063014022056439389642966529457374227894585453725982537476133857939736126073704054906476251223800283336112353138092927345062531654278987838219678488001743058926097967608461612437917110559146639685882763667220665106950460123370945221002765020914120359831211921295083410522953567404884583998555038954782384659350010921180436957053118043856173229494335057859025264775900346043131861990187966877192410642759045635647518389886909454906313578928793553672460200833328562149222604380140602510472729664014394370852390431800144341375093523329279350041318492847410701021968326497005583004316624263010088902418352924066866602597042412280100098988443423093688713809766153469423683300124296197878246807451383907623466003091630321867180112625385327636058129698623633020341510002134945745864843216663052225609076660183756921412221563334557065939531107360049721125939336090814069871712816252211417471215896142248033801849029726967242505246491601268123163492294125449257449556055922179876876139235003038867878755023599916594557968943914856232930525500420275952297495838252398726998165167634807839334625478725038916971764006166365232383384924342021719214202261036784908226417505080921915074446171762037159829728643988470696033717335237769293730584206769387772424481152852367297920693967983243859032448672142984392179092269511657325274455518513910378362140767654520978766604109386511506886552577226385163723247039764815095826485582341450349453067995910359166156518121607824724236205547776329273814292144262894291037471681019954844061197798534089236621620074708622238306457691144447120541046029128062811373298980713363733801302530528471184664155193552313533997820389915978641419986650098715192177295206323217747931153266605838024937497065729695954099494246969259650878353509396751066299814383086279299485995754104376184668786084257937796388308981853136689490205431057016434300748412874633395788490552813673788187876014688625229131362549754978266397521739268782844531710601920242129786757508399126826447161365767769669523522854373518182560548714658779099068377862963472980498660574290697513380376833973183464866712105477661090514123105832435368717081230999340744113377224537655452286908442746546066371371363703412977654688365468940448760201869979480793752302825823420127283302269961120190810100233009665574072727005293230559948748375834303569464862066463117353506273179814230836421074926508570362560688328216352134488565055887830472209142961765911102794227026745830566262591422001181694937990357903934320837441877554191831905093243583542420635837282123280682310313098130783719010526920905475519158380508329777581143772619704923289921954960822296815460471586225897823046517486055455855554307239739354013648890582706860090034781375523050092880874618425359381203080972563900318643785023137366354360711059954936914687507372488457623538156269614405446127611478627163946633168462417013586073241796664338419797208009280364108203245656173547052980233583665958505128211694649506113154934959570919579121750308088045136455447866349312519207672724899015392085154129473859277191340266494354284106340209146421528362313999846466919207188590138502774355769023608354019504442994970277278982358928265004300866151538137172396877377410478760187589460093501330068279518978628292073618170345533963553843070739833813232838071760996212546915646721576074767943617582815497319089779847375032701237878576276807657194196212246518580533866987741907899487388506065608339131004077247628286902626441623484117426942728044614485856720530409803908904163937370575683393084298279620965345344068208819607954250600664278964610044327231359662574418473978763355428254363964463229760338240983128342306029667427967731849734615596199328507027271841347442634985402437887459357329178365494841463839300833002416147076762703151874231619023064343412846709464990047802591679136419205205924510799777630378818206071001573097267066753398369915595495139838639120245844396973716406858953494623839709139242927239369694599482433796813754189475561852869532736804976058270599546934707771850922024697625153048799572300862439690856108992539464436124643080665882983845609222949228219887333212204691320669929652166141073169799148063298949490742206293438071965596883258535082667384525399752438085668160238560635950203605819825180681266987665363247927247041141403089302640615062952348031367298673418391270538480701228298523137145343650695774174626906766914374983300428096110659491813918808566952169694722827661945013312446723554702834297049574525468064069791964393714123355806856965521661624087398771077415963183313707639736869959464768817378175657112366528014108763966143862655322568672025253952058199335825287889522903791633689373801309462932645813842175417518996589066508577759920660230225595181124478155391916186778531053118421199941278925706344442985862713273478747678599476305592351617764702187070516754824852498773678211448678770804402908983760478290675649847980925114863507294500399561043844753557620978986607211256718860915402204254940003281272395151921803103123083904764408191766657656716117367066689464328375102847061337089362291662248609773012313835194246289365719006298201132001838675983032797492551702628705950936811102368038017490599435629053861229937267294048285620312619420516321735087594727207718869357962782101133935309754094385136491913472369286669458900311037474311120531854714595290399638019138799170846533781621079196507387455531618954922004737649492635852959513733000550647501173238511862922725330674639760515941616471039793852263765031214578637284181620071867047481462048337952274874018147131770867713766552863598192378382010353494878597835604889856484602985488125894209242009637237185096525210109152544241402803103967373533463662130699917391294085226916906580072851591934135944034116883900847931577428828565981716353622111442335053940811607652274470007677951328496413044056269479647092040876232622152084044884580724491522283951206564512313056381208694823674345545137747500737211543300883403353775789543805521792826581985137639889167263058274660927737781364484721836490862293385810952569394360639299908333710834112624020141033838150603626719955026278821929597674224566778495302997518727936367404743975605383953569170795251549061070741530945992104155035570888239853152354683060457998958553575451937236537061337483209266359687142578987560657971609060884300628193042553755634367142380831885303054996593533692322322757860536698931903193939693163283120552314108406601531673506522271919099112963893190004896697341842861245903352126955811723092401516600061976156085532368496056430132929895796873705689613458949039444763154021833220526336190723852275959327078242470214800202649065891214927728517661055188795791672860346499435265274867788312615165718014136021434011021831708352671695222301643643606635849356598672176782186901080627022018055012667025486107187833958594371288050433748463336342759524960338193294300649650824776788005418393973337882603028811158924073531234617066948901395746233952710028157522000882542879984419440085904327009941950475577615939052799319681593300698023855380279590939671905797468294636858832594469739859410433223934616346526758279039337226182592135072074466974820517678508762462160252250831145998110886649739229646658092533424203027366057935545477714137179941079536538903363082881022355030518356176662551680935863435928223472936527438858766002071135823038688486206221448384301847023602924775976098157761613790597683437386232184681833480706696301059519685567761304886040327477419691235833762870606609784951318866493838941999461325315983698649823742865960523494342233934384179111158266961246426813438286280328049730919697407871148753991423876499453781669430704583735016539264967443719431880217399787681931648321710926421501990436296264637842050233671474971545185285719147468456588780386982761459759441173426713091036187143123663576976003066437348971575683647566300993035555233076314232150258784607850797474634131633431593975825460335355993410876240810184456555261781077611791585391195937188752382798044436154010855594290694057692448404076947212641138090849783577840983630696219440962555343817371270997141799623282679627968975354562794320645375203931506393162078903605976993623272827121001399370673734094463291239339432298152604353544140288837914906774144233263725531473192667067709499619820918488910792341599919661451774485085134488663660353637622490500533094949488155750073924771924658729845905403385878763095002546141546564642748184718058486456210933675891704652228924624382473435238122767313206294592519878289275743035418015052977722968252846420877341391368699835148177622692123796153740146573079081896663138571203641893118357651646875822993109075099762281986173363151282157224201157309290029527198738998080934889424097454966260315272312955840383461690406813057664781563131012072032500615803714712141835048086334159247543859003362318563846183886492530813919420635087017859828573498374697035200965484198341769298087173622654343082785363749303704611171359013977103225713897677625488840886990008406249855976425482296390262975914329671163484194210436616024069863014692893875063150411265878800683804853204151594498449217821528798758040799894152177041140591123911021769986252910335150234519748613018762839927827918825470035484239100961772078396513881926776363603223602030079442164423427737089352980024944031424152028028725832309762015845909348462822104934762285622046620353883688710339319715761309415491275308809985399373261228536704052667154084475374035801002283171440123936357741132108992130201507260067023241772486574176938921000929234770407002764825882038203870066530556452605504313283564632809769530384829727803380693281570501976937757782609597311568310403258413922748089648262071223057390867583792637622880120994299442244489859529884950836531881533704508481362650919915947176538527346203878979498735768775318653300199681889140301116883170712980342541871858738768721112189707209802315298610967907971823787053624446202472866114706873584359227190106141194584052620412792970495266020805827787265078762575606020685077388566484303060254615639967701540897514743490506385859643167475017980945116013996415786756353911332138289367633121359565157883718162127712825151756344768623812901916419038639703160790153053662736811087100204757738500502196319999629844131408736694159628653219193034375863956804232295128123515489043364775356049869129338332914135584457112828488275788643227635886500175986672282475019740014207432615218154490887957655990465231662329182008599750522716735788449393846556054676436271620792350515009124612195995418222991048594585720361776661448925210528251658565858338133979781493211069753332217552194544528352178358603701871257609698878822115918156670190409474463318489501738960178997617597227326709606398140089597155569222439091681381865139875354894404718503278337481839004799283877416212455269650139429156340005909186127055502132256185468581337781392171981091206056572219677114616713715966429058541537050536184944559429007784574354330971780979982537606603194756307168998729984737504729330553725970771489938953848080158104877377628522281618270985229334147718603960994603089587392980641251126334947504970894277637331012497154982330967057967909883612011705480511128703580286668131786427789046854622774201028941491896151819708908243058587325479302360868749481670847867331086495143086246188636276572051485354455178853799903086905458084339174503174378953328930644089327896603055376710895937376902595498253943625562562730655114523010869588228836747215164231409567202955204584852155286242793781046242549035535111764977287442691083489394283645392394375271332505616327341212899221159345279662588542212303245886599333722602714489732712590747426483473016307669752006973524253468697983019709105353134076182396130296535858154357324027096559267831929971505834069742613199344000786483459492458011793456798624705851689716932170275144711704154335650060746950100757945663759306169048321705663937993951514707752244133281901685259425560055590350172547097940745424059295794477339717573053133343806597762602998036167571441740651300940883533787844779661875000575560890162052377747145199874547152891047112588284435984738866407340772961074231765618759805550647169159887786919679767240646051481728115417285719373679607820789234254107727365929450623336519647016175698652695642513759795306743860050411086848122268433663886666754795457572254253515859862963740141395276663530267917188663638048201349030536781803512917555242210737527302246395413947309313952575374660217815377010952066279870819662364094595621875821858169432244962730155135344697065079056267720802140266339817362144451620612884122777743691736165770273328782060041246788242742411346341978331664583834161092608081401830390701200775183248505914271854133365378544780576589434535904203333636622156286888884834444668456724553818795296807353448813301339956321260447896551745366293714231409048443747682531764969011420678969359421979186229437905185562360512245951415940547294540601828885983994735341885017182401913567468889601278834484988964725030179601278919231461390490081640878613921246314221146118673241014162288342771937896412617338859717422259847669497794174911069125142790389046447731696060729364525946051019634498488411669704820670707814261317370716728984733646050825477607440766254040973247013909571263650167449961838894262660593043327399798823633361928220104167348370748763890576553162502461667420943444139361268290543469852174796420493848415438985287413488291365053643906004988775066832603857389538993663861152277741525842644033171138640317706986832457736392573043897162297024494472282331702754152002178137673946655977995447648615647352421624425225002348513350574321523721801469705767508598855178072218022981130614548957086204669311900464777501706229946257738183807968752798964082625358655971343803251200878557259460874132413781147309470609830769930073154870580831692238822678843881715850071255818867182546388818753251304764856595984655175482081964868794259297667129455461541553514537171095037084524636757348315253967531768663882169929531341308381961300395818561928807340276346462787382721452431356986838444569671254027009865747787081771650961386310528078440563213275751464632556082507374198944705284757633809264964576376526948673385564096014735327892949891718432163929317329022815342980491923643243484665619140777092907719463506822378883526501953426023953411678118550905137421903870078953290475211268289631502615290843415611829727974666427994255002615766576912639159630546499446943143749550930577981697510357814055373367041337656731836056972824678016590916048641880981061191768035731188693667506118612654845365971016271250668903550586139624600482162110851422080263966367363128027825757366633453398451070290467779693635542749077946732129275184563836298411248848802694042410940137656122417211269490452409961001964060130229614715380613481848258953532184599670047340012847075440142550658598045487902788002087719465557019176972945979622022471929916730504836064231021659057207079525084136571385535888909867599232118468208545520335298543438653569545134684178204632384054130723162403316486100221940163140971940576291889424070664112018070694592871591061795815679037933785183990463716477619441358242215269675199272395409406953219225921544456356580223210214090502968229686862109008458739268077041293975761308076668506508944697347121548292403211842390661960643480363248024048282820024370841795811086872368917583321421411534757912462174876231334330949001841531309927850832452492422188147834600693610371776119464048170955360085595936378283363657597600423127367883456692126333186832133941503365077521354756760220663660108528940716402173725895603175357687077411238131978609864998560757831830737072963331605595897383296081124703318504484340052595027523935225813755513026223061292928338881927859488263828026158350596718430186340330251121015775327735332371464777603429060097267271165959260881971980412967995530008972614294748773807750160451803082705811987108507951870006607919171278857367069115485316234590679919217191356436823795823149621719796518582276071951448394606567413190535597406614201152837348269452554234999939092065366291231760712465745900441134424566223721067970804813992649113425350822378201981135479750851028425487944403050970939912833736257202331396153611099644359301091496040871393147663441329498043133374401986573097573390030160346832212574931343676145261760887339169916092452714102985791281041870579533938420966473356895441889040413196172655165520401556394815201130443222362622543526636697308679578222144435394225835481559829169843731015562342777055941704578940001585612347762043813209481233032049908462081309094773595139299796479932218300636730709318266056830731021279426687701397372545176221519798029373218847248940494202763694277977169872234416112556314998102038028941356935143063832452547394932208436584422903230079033041271725935419356987400312312494430738926454151419178537044788453593875500459410271848515665961182245804726366098852509179963350877181236788674724944451906307280538347094173214936103527116533495227113018780540150913410978766131502791929541117203859834874245459740031227450793569178257025729999990683562823078890626072921401832645662412715587829387211192137336153021965366722589761978424150237135127421339695730528879854934336473373984174412183055290219439321368016786716279054692554546120332083451443105403853802789060438983096258628789480393914789832593264524018947396675277477994350810847484851190309367736224497568175364001845642936767725118189965691066171323704971914948891663490755381191192955330270977502278959191753388377728517195813204867651168684644170719241324743946949653713740530938444796661191895549166902154588730116910398103596300866197010984433025905679671339954584530265797463059933778243386121963439568255414445154460867218374144371858146668211407235245689167142442091534724601426214241264158838935820304892514173606931776198963610378937844131564854397194586221292744863788798303648717582785431920052044085977302381961198281164868853408029148764724987138852734804676063407368755618605187191609470204075883117074165350880732533903749126949882715271627547895434924366156660015065753325716764000283241489045632653400671370135471703745526626552903446695582675222903336139077944949662415317571614286037470454911281432705245261735027773987285312316544724279224058563615403435833692866835385801090982914835434548350313032071798555682270989322829809079125875425021936654322709277807424522876142561628191092489546569159594694134249883802807804063836400144250156852326365708938226778052275623449581036096722305875267518194148390021123512010311396974456401013979960152700703950651517109035493064356867606142935939116310406366430789830685274592723838204080669541755793485295476113694757820816554883922089588140762438842118592883538718358157928734407852435796316835461249770759807048360600430340015501292552640981928611583691273565717833937555901864157003936467856925905033900985792599929859007315193406793926119787085439394210359704429757677644497151903608253559739016756450217254245463289927611796306741687505652569155170033767666209924633487966680600858355480335215963454089623089366016282047240593030847015147976047891824863718130639910130945919210875030431780807949935570842339705544217877481699440039405225496282325544729884120469281726483246003237487628576639476047264487402582286854419724229836262974181243546737671971133572959040320211625660269907036773453190241438999351957677086373869858294518524350451174334897994513470979199478946051740779175527775057332745140822744474783968690766504771641524101996560417328616845650943322955479905603797798636330799043154286573747876424795017820574553508801118921874913273420758378290710900774344747765873243019208589726495035496676088323078120835311987011669482557906296374673429530132408749443900229807639636281962029012066075854513909542780063426829508374530709602492966285985194194108136474592747960709014690932612133224897675405499436187117030598505065157687660116537172555568403249154920320908361960954154449285731248851598159105719877969358347994922598073776018365664751346793494431626186854801407252165738734493080417268015341182102722191656691705058700235497045040726807189356451297881549935139705940381842170857830533462486775863171218471976963725440088374282775311432706843108012812831891906739037861368443331697219741071472513611969191961785980683464052632220579112660399868668403858730011205389114622927983663477606539482532066460950440444932361641241190106499511828711331879712194651313575481289480799489746769586824240764395943342523220661437002337995380081381839702332421738459010931601209801047533264961680995359947288659654229607017502294411812168520712256085686219019001592419953799708606606287470246350259826351839066250035950302383076764831383596627077032429802904455522361928795631901206614867660103911188417701991701484518265428036898980315579309201581982902756075414607197608707663251844252419176634279616474432234173818450169426737469162861345204896527979428601807633930054579213837547505258503983620506212319486303339770165590370655426402265870271579211953471467347430946438137840219473944837375028628957519277502058581407341809854889809284277390665747970459576134773948070005683793393853776988250160359136662810433743710631162087632159086488848564592001120171805411384414504847817319299747804615623242706529335065054142614160078549041429290683802530953245282514031561126169510126544902763075464113714864511282542567872592675350451266161176581061372307115366502986593166612429834692822824336492528586066070750976441635200526701293248239578205807171387085992301904375274376019865933916643395583324295865482423065468170948198571639671986840645086627593083630864396364939878506853770044887543018911550899139469299842601964122677304581929425875952652345775684862627526180478649933738924624062558971965252978191527657803375103500164708154390996281298091230669073788544324758751656722981647237226605010544134264992724887497796504927150509710844106284296873188301781260243979477040144853123619007651192508384078546656880358865897790069471767688841572907695761773460898493879043883989831755480157034668900177710889621878391306388543063597412700745629215180257155180306340953787687797617789649206901196165436554822264586921430683628065339430803404963117648312761539114170742140152119774110290594369047398579683294950593378679052217290232057712547231434887627183064599674373453064947066042721953999361549614664855100264898021449892284499679830232754723070286371855375029938562946111841425839478287840368736735524125528660964594879077772863978086961656738764315864554361434134686282802154664786589162072948944822148265272673246672974607832999968285516211667430735848508953804415811428485449838901945726683308894117211775511390078949385617309551718643286982760234918287645527764965828250700738501104248858025432293330570259190843665826121026170796232371392650736208990220495539684645121214435546735094728369463753215310820147474461009244924414482561511367253896959324994611351512569321538995064551366467366696204751723572691622923404973394890391383369491497639826965908098999265885074592886226699222227973264325971164764309636661535941967549156866555301438574495774330101974771182470507544721391962058131233622559228557860061049363634670159287586761594717529043086626442544790768906790171996175450933772321368776125987790235396671903158609811054222157707017860833881118236242120725983827135265218899065971128096554179679667268026882186199618453720672690920386770560059225038528205378425360851509951754828028713230215887615017095439700668229304206624832934880565642815292885408519753392949529195034423185891007190682397968661552220418469235368968231229611954078665781422183453949472274253034118158913991449198379335841374912849506629018255216636685341363504162732594054031885547633005723595473001743103024133705590082262957296926990120904298292657773537098974893934911935512498439121440494763040196955523144215453836651644617797437460885174608424639664194339539017685970131283416187741771948603213204361900274473434425897338388172793910324311534087965059987430973396755822406671040993728269350982695624675007558349890984270069546845479556313586890319720025388667994200876575343967788830229842647233041676447412341970920020984394083766216047334891489733927275205537191276844034422744685004559858079242643039074700857982517882200504883694378007602738139648192342957798734684698241302490703660325735030152582602988199383687676888481149422922684745525856335088354704379411683478589549947461172609445463858732671655953003905541144989208023335818350961012630361277462055218680619029049754233299854159306635926351631301597428746455706072307448662436492882396053461145346091240103343478613430070100527695100309834278586677539988162446462629739019412908736968906094794939244742959803217629532353254433086880986467133333915597735365656503308002178857453282580334028831533178281176928788300526011932258362674936596476202146681633187262984906003279495419916051343158804976039948145835207243822865574246163746271607062770559943790389368726025109274269975904525107303740369957552627402490110564071099302629101524145515994425679188399582408665901902889499867994514442571477029603503456344002901889172155094906361755931157166887706633295996980327899959870639162352339076270448335462278861142049511640076426569413466650906487569929550208053018293217103491592096584655921462606733466662317882654250397106921955594648235223769984139799885547696143592144552282009252697147145518620949121959890189177549949973567336427864979670525574062384801715587140590682404923213152081069851577435832691584703760502809371246694358430554867753407266121550784819536318404954121117704012250321851854414109886334883427973519603377005920453900903446638108094408349446135338835929347377010325099149881637780604019930678765195747417890008935928318493629082249451646461684714515588622606156283664385981584819426533979865768027366605439603673276464618166186792495701836336982502653588345200020627183523559411124927475305875154211159916056115518816057582888436603724948212586599806858826748777854015479248469491830242435995085084760552271213530297104889196305095720341938846560908726720984637026539703928053716149212964675117960397629531282716678349445319814397054990874382988239389345780916861998939943716375200663373358164531718557326227959452570074830182206245027142247984985320999898103233068462120157456099237569979412327210347535081249464675729511264148271647230019913998275333585328444515954016941604918183030406165595252121601404638494125719921238152679240606522200539304202728846954648470117753047971970821101764574702051114211374086034127330223448790137152566930274319413051363682195166770387006799756302529813638907014842131466621868186891458363162150915092409987638906364024273402352852895687270871634819923948034264092837655268046456503680779981043003059030040147580474357732746132589161878557029904828845269938966843497562002203587276409550914971836851655129671948535634426351661532721651150771817130041006000149982989899744819377865455568957967909482124485920308199291085568306843607140134788343498969112110899397609350353725550132300401559200635099769849006695048109112939581005288957232995075940243859682857044372312562251059407974415318622150400923832138105417163536347584563376104225280189812199775659416325126244915018585886421308321205786872828661591937572521306163396544785879599973871320392512935175513676022482420680097749446291228573669393457128086758241047205110308313384588125571900794829976655170338339811419761083123686268273668670603169698532291710305773864379914439327271666423100142246924412241741015929338325086732567028577217873556165215164241147691246640225209606437112053068747082324478006700423667289405892130516719697135573745005030932418681357939278135061317562350811794055116921221840730282099031027140842728014586161753973148985320827059616388539714808974870240471388338085600763809406632325602379152693745705072386690833960427760920749306906132735022774720732575225658906575188192383898372413262059651349439051333710626962956244187620821721932177071603746722261426931572884429155171683204541921474087146680531386941812827803496775538336014376309759005707103119121191067107576660813859170074496716331101645979621313155949763277425230569635923802946360111750312493146864275560653890921199509455884764628177119338625195059598269070944243205205587598924781843913872184280896032787109985015609527046155652967142352705866431137988929698148787863006209035045320400312058722836916537051597443812086493326954314789960305103746523550013048908675857646248332123245584909435009779256496868960121452798815188932746015074980000975709286709335414823643162053408920953905621407768672197533674161110091093157487475285797466342242845099933772572031268084768262267448864782293152088417778708377897287380676496522828478915656849181337073546848603722663721579817951648654659129455327793412875869888896220107994992656235507591256743714066238259175058232894235026175200538957439558969422646013329282977000024693880603378761930348795920560092168977267634901561573691367356482559261397576818393554543634370407782871473943396968198796034405967282049451992292810549801859040593585141121308088594390907275270073425055673747843853498832864030311814752162985389812315348717731268875872909560547746639308685181366622559483940222472313294123358759701450776485672242718704450176338982350588684524537224207353886654531126899009831045494404329713611896142708362454364765054953845391630858559009343226638186013059857253106211814065222546332272099738000394771817077115876581052610630443035677875977026501704557971867116971071420304865764211816816498536977669567016576606713145258320756594139122388581660200786552888754888216162993656990449411527992095491351109325746538816118045995430691651529228129429460728395376195072893640801064976209989926953404547882234462040802263571375283377961714694846231563782874745884876617150168614300165323879288617932792776237747540533353661117679893056437858875296834033716274269522821629336789775072523933134863561191161373420576247143063994039659161212795954471051089389765190783770709835358111670255384094808909450954931300224969429166657984359563038740064144124567062533076898554142646273786742326169063207152671606793350030627892864297482204445082363644830843667966605224626618203356402870358848254839128013451727780353916487373866862741680153018023047089268232465248295506995883722358292223654724593839786998901556980492479166401730450834826953527262723670328576349929743576607048783124868795594039309374947765580378998781641257175300108698609684151586208064835648485856467901050922558664853371839323387684010858154372013568635511897739738587115117272598553315830077029714697311685370527022745153557858069473533092302594815949578316212185780984745730815016967576832469388512716008667752389093097924178320612734913240649795616893719642498349026105404121082336248248880368838651514384176291609412041912222237604679009421391272429271362940047865711853650364113381425653201889571539509434031802639955144596474815901529937765934816828670361400889049185319081959179017647738401412261593142254182596594938547770364144497692729053862866928379534841680234111865936021309277138751550750633983282709705493822652664660203446127670197671208721630211223161392674319591605687634114992802982400105406305188225915459117885998308627888896583832896751025929693624368971065286827170375829855908166345666932717838262883876831781532052842540977636656530789948889911146939057216989341273879614613636451206701214687990836266483040726909619231709175150988504448979391908649268224075653691215535609881655501763896889977898163754661620496747307245168559928098629279350454956349642977730189724027863889378271708978894420613421262747212561141961078396834786733845313122537294054866976066651181958395813219885176441969900866072971617866053446281731542095779255505726493424505389957899325224363557779577281740568397597390080283248261954832892493903701515946477590008061415173633768946315974603228071254548428698032860463921124956817995548374357015834720629711443946665679614059382332149897132777605063828301770622206748227476706202436892844160269682883505164357701735626632249301836648814425885743556449961545051891738314175511940679756429771477576379530103146836634577595700608309272644986208113694123896978283729499393606433426875998594619390728938746057636296264990355786839977851321937409297764712978784843170772063433177626154397366077818373743423143393497905256087830771083352111028690425206822672718631975275031203964424192244691001806736527757443714698811478044128555568807794019552508842701318166426057841702226680925478537267780441723433496560282102900433219460103529915690548650215258994464514525724533250041972545812819983980091494180333458605799672224279210867288642041315128259107274725892853984428688482714013347526252445841981495151604692111912921191479380641803541942234048422094541919626499284633348919831430113961536569759816278801828433312719284702885863325306468985548705328553657868975537116065535431948963519851606382911248312047712674090060926116325149257257652091198245695902199231863021454072707211757794950958559053066927259202095323620457582964383259079126557399576107839320818618026848286598729479499868423383529857579257189276819456423746265399932068355881310761104588772203119431786730372142058590338010531253915856964853661392909041180520856424905821061897914602000959385010416104127565689640941374342075861044195825369521792621630307421101779661423405890887234904291752153215161356415470131048875255307915139782190860188735598352868699551622265937548559114846726796375852672220928809121888982972459464360543688521567710562026601287855727298594022319546057566691390144532950248987380702309677030735752491700123841095904231316096402735388224645783820607859847699870812176335611085082162219474198552828563865418138480928259603662998338488440390143861812851422714442320543862718302436062418398019822326951648248815214422789014776160457618401659439871164800187837197630687789417435493043504260309998778168367520657111550388060331737052983635276987746144990010693838793127633348480899262425091080726128717942712114578629889289125388177136765435005539174842508461308806617405114382050243873425932041769888330109449048077435784161374032068931410010533221220777706056474402483475243261988341692552376015064089824430713834165429711143271428796604340092145585956546621975101879353209085076650789499601114649214389876426886472174054645738092623804410054954935133536732836432290963142114658571989085681111581872085882193084014303310409253870935399483749948671127585012008874730310457394324672039055220911995750044650868305373257801402970814294673480001875171107195683479508029750458871817245133315889454598652111774754015367206928176965563906032467718805029004987512236390601191848483680246650149662891439488429035167957003961714540021040958316534666311693189398577846502082129169776208074053228674475337959543520088980681254782852040187371966202904420048616379054055311203416680781693050458111367746186324037160128845521571941619403977899987089039022090465040799423318741628558986983763297121973743304857115902859699013194905036851486770818434136964123202672681253250408736442019798555895877187042818322391626372300645399434356686006237183028685123763671229263096978613369483264156069268188152333812409973953710005340600570664247024061418274697716367503137036861750610536792298941805532382955743779819211237724580208127055188757738991939119851230745504667964121211701348394404812911355851579453316916697314930724275996385726573897843323500778087744434849682748898868701955568589880366833612610341165984548766222966038208258128627687752721269120284470747859591556785818083222375060679282784564165086055872734794302630985696725537497682512980241580815310165978852368637071183476097559671162932150987216632144809906973682830735216346670827283075390874483208587200882991923694003490105741289027275948005677715824628592277863111615253762898503018200607337561738135668413790871962572093926298373548993845383942493903669840011826166648308230099667323248491470573608578765698926171737515694128857728548200943209597574831683274825679120025034591897160787417472395538128222927580848373703707487256737986979576801796348629253923239566894190351180770206716210614060274477420101652000901103830278724930223749115938152615139922331703814092973571761333887214440530301058256024974681370535290377150135346116804067817636909886687128139419477016653884937790223005556450730092021910790466942202228475633162650651489549070124088835989047506105645511799549480852839308677121395249115388694427031218515218265053324337996371768778888551055754980248936889856816177100498344227645904250533001878676854035401261608788826948631368647049230038973267272080613201923732500682810899082748986253753218181149497665571589583327781400921838872140735885478311503297831519656207769861376531143048556215761129564783306771924406105856881903459494474424548052338883909710328666099402145948587283167737939824763851085954958469384952598719461338855012658222534830391810406622411757975659302738971516529866557944646057764338935243674301378469578667938640713603483763087814809334982482761078780766527162781980809325338064142495665501139512194524235686428481888184382539447409406310123703885423491792548607916466069025388883765335688931253102642966208704149608261466931551793401792796598031193451344910259953853984667734751173576149295657647792204712643182892939012678000093374622517914836860040260018650102857555594281789698228889857135634808985439689394311039497911033942374429612154467437950187464324585865977295410058698442998374816235143078757941621913378696722468516361926406332599882222985499123083125366676073675626595322630021299674064848085519668374462769527318608653661239574224472004619546252391434366647526458126651134333818621216371855374461379793125319998535876748272891747551432953043737402072813547084614219443427038135578917639335644120489938223653005805377917808810228123267702280177492863039184490906269812137135875410654015562102561873922736274161424679681761793706967876060906197697879264775920625816065319619065145065101178725814096412906430705777138858093199596231200749322497004303485259980811063902188581682314768248540597796222527156783047137609491261533405877612672765561219432965194629721337795571805524059467495503198081411696073860178110921065443204629249003986863201471516885524398733323652876212835158054026624296785970830719885919479290905843652391679366277472962229375966936769497709950994360774106037183566426246344214954741528909799186995116367029449637941737944729504466869837495217214421462711026188241739916248213851083009363525949553638440194511129170733265030410312996771095480369379709218973366739729259656188475963452520149845193259986680812570401156527032725827113483299157533747731326762478814840911397681655452419413351065286758463489034497873177465423852605932061302341680512771964366208046486606418165748034321902519780526565406376926990032939038028262296185831858404529006311657629798455540484693808082283365363463299606399201484150626599337840937912390689279678734166353152682785719077595896275882131886531104731677446848312014818651264218476654926069112334908093688418946891528610309597987866852323104297839224535731737410060949046396918513974475937262760880574695810305394797433026511005211885038326418805142980633450712711669945482916504431156778057095852288335153144013903382962603251976901894190116382038669641518492814607100661034732065118426479984540220464003725271022167945204182062930755212639655358287903482969442296620344346109733681555252759413432599716386702657560133579506442542180927561105662983825868226347251136883262235510018655979919781253138033346826697058620124313084001931014904972370050379713472824833863461073495786165449332295410865358658218402903415771608478786704340709678092531608780290359814533214905739488726112480290084717070419475275799484533745912457848176494451659296065978085522563708006558122791809949132633459082530173699934757063875273342814979962464454919995939739512229767713812361675900747659264756817981428999208074759597560049263798005294106879071427403263328479030482225148436845840236379538396284360630460378321863191507401319875020980137724702606815008809540116802402590265219938477004929521280245118650361556157584137751235152363179539086957247842377034789345896270712856815895273169254065302020532449456210243507985487788705380148191138632064077838802134827512440166698283421558003482182992150663389167994745079790699211909689420099958447852027831720945728738399328863351132948613855867327751161785113335606359532648730914910137245930090562231073557856651351229174165173932637811350486142175086513797211885440677588544817192634066140384755427381511597380815100890144200646308643333764466000454088249860230745552638014622578919062174588527504299417417116157593395841175063587175708215141756940664463179242778720593455541123673313613683628710581767950622958120963122232845552238313515241266248563310399793956018848807832550912917127008683075952290231400116168217156340500522921080888787345743138124734138506063644580901312809563179852154659260493460677034526096020988123656270132734141371406030179607036048395157620851990599866421147410213738915763890374847322347657105604223921293266735418841381978517166047268992740370511856169214456240215991992392545291706307279519936599569260787432828518440882826709040853098595274471063804306422540130682027185843850327002299647652566968543927836339983654356377820322206031601355868102732265501671119093426373811054676307277318341679995894378117724208810370500613044123542529078947729738645042980720855022784123354442712195573146299665170869971289529693377916345040152673273470828999893303989237898217674976510143325152748977430730078182557099013581043334172253946354155271874189511478194788665840327274952417403759809275018681766300439981230037523276755509431100106621440865836307052665708257842397770088949203767401124900050285156014636202377061922279214199306776731385950391736302624439111312271804417144116052570102519377712916958127896556156718891656546572806928861590357940395130632204959464022082399502881092064933004393374373043621180865500244785410940664064125105335547836953020785165117587957435834096629410405973816603982184935344564263821332747613919703426953619539984288056816776534177874138077645716378609178907603055301046362156050734663397392646466746999765500294706895077407493729352788058399369953097034654741760068176819769577977798756985269809737655326298946475683573789968116767303360286710947667885135745759545465006399274111050438473407696239586276448143835102793676905326900795979320785527739379676217059588073583981308891981716358419598102216602274745449635772991857985365398108239904051722805986980636063179398940965044229352135483273589188573147270339348742524313752795095327706047636011582810272399098384584328160345991000558028919043971881821014735673325023039555823253244869426362042290450120548497339715486097173034541586405763813282906073930284591861725142484731542646028160345737851247553693766420801746754344043106270992530541349136059400374173051091207987379407924650796000126325138914701992392936305378815316520264301956330739861575036760952082802179728331388444513742776249465702976799683927689286066341045496140515393675095494133402142091935340833506885355704293702890087462206738442997918646020075767731439292939784563430068138122206103690103103338161998991159546962422370047859845157035578443409688056348548771283832837845410191843990102819786054314324766109943512318166101649296464655959096349891165465131008179217095782787152788886204419284450258403924228904393286109368686586679844801441592757209880574620678265632123894473386614644991937268744314787713206853161364634076745018498453897591902130672341735659805174325225732896607512267755144922880383175263369409036093828440987793157553651701141750825621277940820684001913943433212024378230359500439454565024072115629032167294647545794916629429412832966065746091246022021063340051953303169634812956448390180506687658344181301908099233868653582761231206399993356073403638249593869372374660937326340249781195148948070222652153379867900868825191075117478285035638484734169723774304277950543898963121675698188724386694214117362228540656010608464699876082084167755273443077717904509477178087059629780050816460888983991096585891706649330290355653469192289112820671902617096340412759956349383322410145350532397895066480837782348583857983484701159995086613645748150882826596345835748105157020935092387574046071169644671890115417232035820983584712819060922795857870393965713382544083980476568842591845677819339650671213998604036763203998958227439967799282435187490123579710020398488748945586858308275987090172365594892643595154811585361970257595166928057244623659870436636095882630044814346111363273001771208791203264309842989899181606314722538001818585452390606926586497549479572452452726055356329773854363370427396025815747808990803904455233609310279124211032441766642548315827967679319043919095996065860655316691018466270662287684676360894839112610616868404616814616521235651283099963185233714169688099497994212817462349095485021568216081619590029196050606009093538798820315469124999819241264262198362394225055320480866542655265854256874743898591904256696317522319630551177330017084854910138434079282827396946251424601702441708705069811716187919925802388263856319744771576190262115138188629350486774885602025684865763201565837194714905048904539525707391553097153871722337571908771140035840130425799487908372321731788361637166391831368249955183908966560301768626449334919309070042927420649936084192039167305728444998139621130434553452656129277439993530395879458830841777457779125901783588404507443585043486040249345753953953545832930668831248722792249851992226108897229990263223704962819554355353931256580085506885618643563418220196337541517754748196688888443853873834487355190711924405632866425656312278722051035471563736804725624819636275165057956907804030408342565397142717948030378814917801936230919630348274882457783940606053884942735628694793281673094629315764769013944259639306116480288071289221568430115433529406352154974683885800380783419955527766933477999988638584944453947866138330136108819253787214017209314849421174958477550920684130970824411145558845937143166296894718592535265409152801529523571804545209159862409816985934244352973769042488540311758210814556389428767471112497814126957849759807632676824623499443241408765107862112454613251051416844557965844340699286193363405453471622176821830727695377228618234683722979684771233508855100868240463461735123062273060521315298094699811538130008224932373201522518640860884225225377291829142659686087671799699460900123817711182508347143275555926976310917141468883298281239679141275954297425405268585044038948891254240551107586612622392759872527078017111787479311447785276817032379997496012309377420438560375454556110763055488872439952313982217596342675591381503054257485664184561810547731885555011450395207650479009306722369866178482915148596540750393491616985118194337850577736263199684236598600527352207701929138446488610393773707952915676222081668486967206420522275396114330211883164616940354869601372992108993011032626814156217748563564091393179160777991920118206330955079124887909747756884207562122181798821853884862016078602754960755161657126721892911700129757698598288938661487408550373715818702873631092038516111894508109714214676619840350274365800605449041040207882379276693664250639127265771004957042460930947302896671053418288881391928637794656872521272658435858008229920265698448063511454354557303547731224521445705929709958019170242122944547439837340260087227610980708226224055185189836736378058976757250347073234931410651424056428157757413024749359995393903780989357509711621276393810603906441063055961308086143286842653581813455471436549270280311525390705231456199818197322260909290280282305478525006971407133039690855051986482794171758461948177382373221961291710141696403538193884334460932479398372793098670176159032230899947663536233708904274039621991889024944186534202638192616854919984457346218459869708648210680928046231545095686930072174106709069797346988284273659457560208113156820639490070441028589573403304738941780308844376187650646353963042744773415415124634129069116034631243243518437441500942069533024146896120690103201520330566905387794211348739833048326813746487032952231766644492240370095853905213205065684570305592378849510190585914283770365273429553887389047298717883003967440931221772850208373067375558632226881169271196161561299043313767919853505699664068649340154861305308687330038910682387864565979973429723651189282184812461043505181622186732167978243834638044431799564391102678886640569825842676177469932335362042604905527797755282142652238003619480186695448452664396404776039959424686736067420931157965985548176298060518386250761941365831334516321139354352466843659355978036858695874149523758719954227190513412719286402178707894961404429072703772543646813568846455940725328225800081001707547132907532513699396937618596805434023946049273462566933581028490615259627222127097251725192322263888950994566424149636336749130836178859370602574249782490951004745553719250013364193849696806415239776192552953405002404263718780226590783116110829274232575149871089819735947617964945211336813869696768172393441946976678040395188751365888760064247163137085536066420998533446039222073978437716704729388815843721388866526913436154136725369874975685453389541875697132013698095506997684433586370105692162420653440941961534266653089055737759883782064819372550600944830061982039209872272938695815024970834122383858091675561932454439978544186937746724223352745473141203077636174147673577309322028969239744063852149033119791500694503852617183729463362227290131572641589577085702448105597629612979894789678683795923749290152451320615203225044152651784062538548195630302565760556860829346107628616323747748223155785553864470098727870933679160703566733603417742801012292600279835943848050321740885141010369264618730417778554663886525498884310982304100308441335916166071697382662123392193762992133570174312665214181680637861779687603011201680037218595494242788985886041907195862348114711021713802525343545710129542770189557956928861502501088867785065771250015258082986745943506216872578007400132027698199367165521263918618223307820700797461587300142829586469804442134594901465321184044990194505330369092159528292429588839090712446062307958378908305792983775108066439729246974799658280754531622783960956302300877746941475478158614412736627320746400578221181846240427090890847977733870851236595839603948115011498543104525124624963432254061190117124024207614462950008358251128903852207483998437075575475962816301815334877129710928299124826910000072845797434944593178207807538405989955546666576288339851913270469697539497090384064015834545932693112426213130511077398931185626195569398205900273412459713157875312623517780029050877057631162202989392164062447822313599811556806818998268154436650570721963467350801069568161062651715893456593610374505153282148652176536761190581164311077220414237081503884300764413375814583195939203489241166074876924854420338014124669480744425120601595444420753611047304202288714020863873562045740941944056891280853219167509011615653663102860571730511733681005429603937393294837858167972643599441007728494849044414293809074323509036736664094940961654658869936184021497619032288900538181057939698463176955026377247151180622705588231448989630547352414930034001474312099170633471897447082278422132448863812922923725911841327767797271063246730234368547178500549917365804613283022059237611067382404875557434058204010468743957876079382495541137837392945908693556916517620626791174255954215177775852095258859594698048856249535782151949179080873571047568109849248589192824026604994156824021998330919605277871276151666880535888013666965333223927763539555141230262549858292142243252731715996314782717583117704578116521984730338748453084492713971536471248197771764480416508831795553023630545237153866888561705693016868128439987893662332789760614142753661219130276273657860981066008165264988107584776807843392135533200871818136819545991700868267026698217301946657550504936302513059199737886821784921247595350212474928382268235005211328202508839676878124950466092477364420037248751508354116980422139503355718348375965156018465086302743460829385950460826732758551685476355908072911558476906094465026005622431455947629216874405860329289454543371949915379298400042003226141508255532511316455918931706243019586906922969774264667689455054335724609937651151349779130882638981744534533386036856767287694276761656289746103663186668610133064165671558773638232044909592623998948379391370060283278762794025440623750684107850941420692502807329166910730867845813067110621568508929290378036628980444394005995499683069289455928979448355205946982675878912406051914851363227075003780253039621188783670827949664376635240380188181600526134118243526835591049859184837143912207808320191775010347910270664608785947549261109526229016616734303245105465198990772426788173470477401121148512838846176479800577264560239512023841378780099501542877754847168520364978147946854526089587452919923367448225843927692522619757111687086843708958600226858229184360769433847086276277795433124336177289972689043082188992846549905143599139633099178294431209218346060571341901652137714328710962225970462947829848746300204686295776423222097942319109590876075699832175874306683135429960853244344465220578390867371346174137147770990961509222495892417744925134849760383150925276949397978727127515644850948189833721867724983138000080803942546138285312170275035047634462689207622744532512637880583079087240305435169874257377941925193961800979594062969300238577809367923509374214977189851813352046667834648457689517807365596636530072296682643866071628064624753291144885493931361905832648755315394379916688580643158385268450350021053249110576765721366826520234831727911406006185039607496857983816991860066484329341889869682209980376792577630200055474610269855485399210376267013395324429105396255284069783402185167306653099705491565309276657074076686476910121323133676558861396771181279252715794453369415385799080898322449061408584256008064874117858635633644549353708512937468348427204287870319512372284309182296264677359707600131771576161587084695884663962591000805987817020973759392095489975098766629063082975135443341114538463245204542524801363864345616535823144264931324518777293827451394355630164524198244936265688238820067048972113941041156068431896926979736338516837556044120550755357379528293576447427915888129602395227398372516260977365146755401591957723931788544608418394500316001101367938674108181475522502335490740362148454202902419840850356137284812394336639081171102268571219176303827599422349011343628791392691832808030308714959040636228564404615644280574659664807428159447507248064914271359369732262342432195751088439105081303306492994432699517551929628320799722687571983045448943035819170346413351849317807508624727267339846129706786936603834696960477579054965445444640849334249396926055745269041721391813679624035704270243948913759252995743309190154099167925573232896454807916878170674711381130961897543528106693393748913559436799202823766027760323157735360776791980609122356027039018614827612334962268816923458086835174926089624416160022144409302773089333277335342832731328010516483018403323178934561754943383785307442962064879180548308515405975232369026082720506101291039358928559534660669523050236885735941291580298726427749888040539499101914609190893909974811618884239089948827964747031686233715191094577598771280133523129368078361513175245540618879880256610138756884361721254864164363108545719253450733412916928699981374611100520917055073778867856538685764228748769985553464167400522902789800659534806871834124288832426052273934792065866546342522610521895044721723745842097734694633555477449021439530708610462849264108110085654523393061778672590515417720743137566182461282352197703690347413085328376562564396200369973604147270726057741363247802622616456004708756086116770292188222883306619982112031513073587837904742090441928199058546486052982807507716135726816410660625889322297719206190519156675822607843652005934510543754717712690875043984079684397081518935593520060659027508033259054092455087997144756631512620883248382279974979538782498452440721047168607399452461181737907340136643435293512842205794263984719261522459126863526505653173134077398572945276938946351709657932238816238660322370243872269440561488583432450778231157651392080405066968988175798837538959453086463889122034352965919989845971584753763075080613866046576797672868140054766269216254896036120875985403537800939359925862561854077355487811516031935245322466029944483728214538046864727181173006421811554646686213010562526338906223982140514965078319177453081769998522288616448671801038088711419368639753490870074468504972914491426087860988597679536576250513763301163054106986994987106863933136551597468225056053526546766221517800564218892852059214975807025698371022387949534480724235874186759128621922476999149269236552992778094028663598770389769038659603559826817287597736064622053028694393383563364704334756946134106889603545723587190334397387200831383417549861956291063587635121290219642874938504439816965076130492200277688435790900619499317936091269832953004699985859826248867899017363657353779461391473555649109359336905851527910544660983138933222051524167901355076690896975849393756333685414863961301300337754536096402759489886110462867700943383777308291435643499186530275201923814120828136921947867661015801448357790161536568156701935954474644696358622068390898308535127120249680198783980924163703164288858750472367276836194326672098057553768120026152580433510853064350042285202293993161209321302563811648129693751422567276593808661037803483742312014510020128319844238745690575891765977299452714452410059032495284069335618398172924600555215938371386371622558902577440255395123533291031347493338930049984410799748693368633774994285382726004718772980398358522238714981486650698874248389875089115660740739519995082060060200938152439698865987491280595032061226373993717090974857014424151084928529946593478626987255857278485531691081220953698048284544495639311206669859682587674677893834803262050603703372571348662790937687789256642292160955909252357312293524783963732246381173272242599148955250227229701379922996919644094266327019403455259670852348420386219127850469406836208656716839209020268831417125047985734742796723436266224198831377139097197608786625418653739316735085660772671745448592572653308048718703862847060468159749025165548359534913706529128559672884777698530157058358533081875214131631631322998044306366308645247956175784970351063733714942073800310848729368250617782900220750389196900268651962239276667775692653326628977881722610279702879140737174735673496076802482262321175548510144224698594658292762001408426400691365023837501312322154944146071373620325551802321506370291290015810184772772270076378495133820565854051011409487584474771654476478889876581605863552191384233238682913903425581446424827851414894212214317777363209022434622989263861948320026609689509844338931924261395352978383010633207220942134866330900996866755345080443222070500811386602299683202547401920503584768404007100384352578351247176403286407150658783569430133531572092731376625700323213152227835029939689752228719084631291124340647388079256474487195279811484740123478586258739891881284191079075227985516480248104924008877184554745004272274133967058839151598435794257085058828681684489539437373227838498704708598788041764040719548405931376867269287795086821947269000455963963721340453762921943549479282355071157716395738618254382201361436914834685782966221369192676374867428798021557997652024113437604771036938541249409360326142217407021425473497179734009616240314230509734763560663134802248602393094642024655045655814872595327412680186409571968144354428873550804840674251545810867701578071526464618614458582907683939583862633963311563345562672437477461343034727781974665392049322106557033932789998235993671587727964458809482991668290607500250414600634084665734481078470110511368548463552078552947828061127542649425452867461826416113534600593149080082359489130776392961006109667515705409399065096697557071385655496126824956700543252251290917428042454271969546728124133137439753322711514658422389361201352421560940499688164801868178813112637859838270291102053164653731356529906622506349432595224751758963144318363270167388195361960543488342397705385266380896431531221634840660714674610867230780026848001626004405799685984704238722336595252112513414183996391680273116554130855086669390427125046338006609817323677655383517183339223503071226224720406623824538844173863974324264178568401170210811476818116779017292457632456010453545482484646571442844369923321683824503064305534713008441664501601263448245257048217710645723855318320007563977043339661478661478734022807367212960714649242686576904818717032611251538768942157316565547118127096606680895551081426577455366723629267139862024926503974964567591272845552373106990207012923650039255972886741727618321663823237036478231908893501989258669070836900570403037123639863364973504553697782507177346387836991655943392961951121592845552763662847741943105931170313466040093052267279318597390357764832129275364858847584481182338913040967246960802952193581990060397437422944751368086985136017408697515036361461661637660015279646579840310106594108427628203113354879229050443988068269633470298093620088748573227060245415525395118162652418553531110124710319306003334421223887823593594159388665953055111015756074478013396273016560028382534009147637815304112048663023227187751429047660611202048508941013595968004376742923024713695211982266326913859383104473715237634885463936620887833577299622656829503194379444342170987818621932466213684972490170710530116764938305463210848267621373522641499715153651228547842973043242477996271274848734540870931164100378702291256516592476128659967581874202953484249962547409057599910908788744086012052987962190400120719694461256653138838073541336248048249297328771755443657061088878157404824319822624036656345402703357387188200657948615822600135353620688570960127843304534157193249488150807717169640363004397656154958171168858392020455201582646859539546058072819402214214324274523498858029270156306435511430433370322693389406877199195794752166616889993462196409099865212755614176746734283323894022678054009856393248819065566247815712501499558734597060708029934981098196107326547457061279874329860446522220349652634188015543147816134833277956515435082700908529352568637597858305422189354239552241181117580967471105256572569236684565221252837935267306951755165722512218347164879033076916348124302174116493374429803800936328193910219332286871761402996415582740054786109614242964183964701166518874250866986344657515453740497799958610742668687228932561730729205967930312296669015971280196226837876269766862361661190887936432420997963703507180302880362203901275606795845972481156294748177835963808994037462679943314402330460869499703652671370936636482968311909582030019634109827378741505136887461565833882127286641667121312755041298556943308481119063195709859831464920438412771871379756771199072440236745504726008079056186473783396780230104246247150938598166116823901742400641535489998102824525943536508103100301293952192526908956945760423352695876637204283537413250080467077780837847604791409946571655004008641417052719478297206535665749106265025093493318064854858071374737376511590992351072779479064940695305204965164385216006398849496749296378998728567156829736159708300899739120822858592305709763964031677313494415930599418566850892591240950932070932015935488896497277593426965364924678798226051465610139436928431471948362381447880871279794684039471459278670010946132893587876543829580642236704376352358151533293908960800961742131466853914292517193953351911141311971135217818932589996562414275934862653339876609604055409825955934245497826092905870487165342787291342015173475480100386036789772980464931315027564559802793564380550166662268366221861073755082887671429108386470295863827422386947809350684584611378005707766215957434246117727861840985911253127142498307140251596318944821985819161551926153334691386595441457745169942312345114740572854855543792104003087933243558860117520363418070299948538861262139078755533230690796343568095722492142699458390510136893590171580362256456039269769856530485425885362476602317723887339288578057507001906502370982092234247762291804287868339010831814311192927956774711411435620344827433801169739526158508851753148602909391493842033500682401995666457684960168560871886684547398311879776592276436159224818260684451006549992892729833473357512704738766163796861376972885105432889463101498965423583375408032224134198617110214065857195876387206439097479619930361098967714492532963068941103549316464533424126518076497984317973056824847099241035455544882867412823952438824244608499735942131078802270994151689400597599592870008375155064447925758316546589952327750179752535258867975559289952279226937550549586676115208416974140438709998741130688361712901226477377309544955958528932252390728888906444362346430499628779344384452477447587906817273828674558006542035426226067831071124752040772669889367348822612421729632374186374147457654943149479136148509736833085588213747721237159622816688084052452261923287084787183710729748146748021182016460168955936118633625407989460792748330373133407203333632257816868969555212748085611827394031540544381497423392600126472867295889528745060794447379745922099246420303280694150360289834306180036377602054447217208982228016195376144107449349263220628649382466396209808106455271815250966871140845213846624144245484611527700906141901402078237555237893053550060675590384544884187291989238165700255042548994897117682801558447390439883055462550768674135327789444416417930478611536513111834947724560479124401767279875544941537949195374778006401943241574499521934655386652103425625168242308035736129912791326018873937652696405587690630761217013599960971029223750573353810785207241622608086734834595992018847946134551697587639881803045167397447988171188169592554521188660199049944074803375872477769927761857650750785177352179043032524285675873887257220956215466396631584036737795357396467843694666356646280203265526374278415380094301488238645364285501251839281773370064889031580023674796786741084137554827190017214977723824807247908908975799015819751596631324394617485659834075933890076989263585534917479280945878884613582413427190874160180447943744046827482243736590229314361261753089980006735479013568136862165159769571826879570645887306004162178757270203397739352140978349465454516515547810059705324352131673650687101174724397396754833342509064154602916144175966965831581595706908693827444658748452177944422177617219889160649198107203340700982336091419046386393010276936506441107201306754322793656828723324975781232379284935770847327017802330280040179945374752696329179158025454263561105543878056620698319099951715695777357108227468484498696573362710222628878126355523308750690104918471205889959043911668513532267922425891549074902277846983537627346215907794800732619574912643854325421321352429120873365973612790627508828293030725722702365304493320716637230751046286113907990991815113210295867623218922001309052349233228377442138227324219223288106903363597824159289955692716987765099795595605829877882767868531520966837247195294130633189671301432719360537144889689409198660916723135090354608709117946233240376170061229926929795221565816224656889779112400492346647180186264041650502389467214807341945815067640551954074862293046562823941234630819850974922391043447007006386271035304315942257799761112762172884257591724506952113258997151636721711900904804216035176912365662064417714502216197359861348894383756106172035662648662471778158476083245170659913712269816720795875295876022070997165880993894267061147922706774746368623088566753210527593942493874715457804421270111269786788008007968602773266944996440493640888670868354690213126796040430303333274059681278336716572255607462250669020970185764724536218153560591760017919435446156732473981678736005434120024834340522620460015639321849446366486084541550513319165464544960376371582269662033865562221499708687499916147328038454320817314871146568986828327190943925995130368594772661356443739562904393224730358233946693779996563038107968429460413821461964316588340026565102862505204198393991551673277338998766372536212218237890652276392596896724460765624875241815605574921860896922996238469589604013369326742660228459444308510208878558388162794968856864532179789873472474392494740610158343329673500860487165536611394488218037123656345861630435022369047136827185753562806616341215968857204091646260873828075594410714295934330808725306902563589890258289476642623449523691011835399685477041077903396190162166447194528972691160648774197314095196261568410782432669491862487873712700221280042355494761536146277638690464315303571750933159503081693629742591054981463644263485092545753495998880156291537769365388729189609404464239433453731435466022117000525491020131865608154117505469397579886395726722905826843170134489678929481755373357815497277682450246227209265616914154613628187724080415629456531503039990317628111784136552412421310838066863279039346608342785464545586531068497981002297202360252714633076956132809714995837370844289904776806145265773887660795799449934308470409611892832119301884251013398153391100943572023176562453775060917398445372555689515522584597084201036394509689960546591363513077218263389019507723268889397287661050718884971381486130458435815705311572179500859475828792872251641773387893993316250209805929965151736099100890624310271503526885272528694463634570382051774444107040993000805865229467689092099898222083836846437248894083972517987511085041175521743188528352802780535222072415930780801629294476321538414268609873425663663604425966042605177949504101610622828947057726292719659880968390332113926557292285618141702467940647402900085220906548190540890091780982972660884384983624671354948959866771426517407163752100478583919614385140630935802832249716162273676404718163827153785886521436103885387489623367068815215549546793970180660237133807822014379040099658393807425940902685151868899043439228161573747684930205500221778023269815726317553252008223902727921942974882521777669258850576719606222337868946968345727758315168467568956130631919593081758759319800230251456398071511791259439603055205195838761915232039256180127316825945409676920348058385927218112381329829059855530322462991733059937647662107111813913631148824941160776105112545921773309065743248534118706183090227729128854124754537585561380094238566095353617984789361022590606037949146217225679605509065752024699691880959652715145467050758900642354012938475926452394803144284144016894363365294151043183758907388721886102212304177268141322736883724065718547935309962535567130141994735544610381356511344357805456415562741099244349426146410997176795280625686309658466537879297592292124169113256537289434772098001706934857647307811029812883544703044545034650800654267270427883432466351126032136806844247378263457349383149835460679437277737943875053043399499669789200285962896211075611830803611845358713781758139268459462527563812428286148198736431034864534503287838727671256667901253077084804669979729498220880902902833300989287287874088395631399115776764875607562665888125697993423559343797631429922159262520103966059767942823328058398127175549093685447927273177911981536236905295360370034690604575193169017135433753264345494855393377588842834161460236721455664196019581727122503912566139717976610986160388934898991701995618073166988377666446698865278810519028141624633862652220397405858910489334012066021724043871805523000690383832139074197038294187565327094688127325219664390430472514780534206179988389577128283311710701477961162936632301395879775524570922894900671256997343810796455408556486945221139587401497155412579153150980796331816453846427136099091486975543846552839900630717132000120305895760861559111699681330369320654121860776962473484451145197235668751134673798204471058826752811314425559277366123938695920295660730429659188054879438357220241151883359673089505149717183031590750329756119469953793281081687008298513242991573181848014041957579383690357477585323238679824808633143759700448127453520207375555923457404096428511557695604211535356961021134633930753259854149862578230218242567522409177680212226876303131125114880454473831722882862908915603217812376807099625758833570296786781669726217139247615534656175962758082246014317466846744553847434294996203247358279998461599276661369167706382541961192858940706803151287351138247810536403291541487739268370514026688471857924911392908286278112030420062562257070602491785923261260299033036901110818009974056245639301650178914773360727952798181294620709604652216056144655442344644220706492636186425224816143174765997095964045559309736938495822371049404406285599189268941863069209529444933468786133654461112999652555852243584462407917673512885070045568127067773253681915437352879266764874934244376899796631852566648663068522505853111984500461279628368889878789200837636731355732260382222425252575493242699619006353490736668825304925952642691036824633227351150831614640015823677101296725786752898924162325459236383262966686892363057162928970473894745768560006169583285434979799457333938737740125548397132839427166129077829257632681701079570773082787642617780604709326417305709234790092280838339564360681742076939937573653390127762849924590621958033070017794209776024425062784522618858447255311308695887251597745026973618511059660861423491359338505963832310757735542058641187656467981465717439329761784159672512986975742111307417638544907344441218034287584550555413164200413002043284332488342610797244558070363335810767021644575444165537146595334959527921396157673631182571456087062278663305311258014444500887718560602719461764817766707742420892935208126415423793903757473958364865138905263663714222332838314029812111260670496908229278211178164201798489888174691033205477591072245719215149496500606928733348211779341114320655794253988291414128977695340595714525568760604416774448306517893756747394232099174294440356991949022864446489198204197683177152885458491792262966893695100848003813690944748043972206435230145428499167219377865963526881203019415373907219904049342655568727551375188460844497196573285651732342674192077726875546652927303922537011805531386122593857929046768205745942142836615756852778126622876048429113730368981154226314226572506395070928723670000405889283203420716056251734370729687276669949481651136490795404523263575372477156835428162109420556792504200515091708299606977646528360230273770486537462220028623247683983455884012232782728238389429833555473629598472165440870032907475085480670261964030229159942276008441195285366126381914706287841526495967960653137527335467334778247607725562767767183694291408177852312537630553551210728591932029720768996294617544027682020275328437664698299526552258581703623976908731696015616496674841665712512923034523701763167231442805575092372347295437660405739696089923802657610916991964344923851331997995009150176207671518504367906671284991616327701254242523080089751087791606684620376347234768561776874200775409973208643458597012430297848697977403010023640922954725192659688533901919380999925307382477760906279343498003121360918532083373152679845690764053485477225874203251544540497031569295812977963320824141586004457741430121831098954799490264217693547053772984284278352437293406417985634330981180069726184022928420062842647901111600980405377906335162291468674949716636353607715924184522607811435502141487320599322521093114253907260179765336684141905018409097747332995212045406762033343271977180251048967140796027878962616647917802523711769930055980367217174644851123728603294689552653351217435370152556149476496460861360453885286393732584216721702109748985872097933987065274644144770581486483809079819389410755150464295039848858193896965907443194048182796569550050597005106639612620872264182977309581271294570723153960860935981652911328191964876775305975846561240666292134997378341300168654252039718133110803288090532435831061126684742718361217121735332578612917839641356568151026024955890743375851775004691046646805223654598677553377710711065684066442170249610263455768174034864408560792474089525458167343544311970009641257996253199958730228147062809236531695264459316944944586076646266796120294321381752444672320293844863479843654377157351165344572582130392207480292098115438687160128330402244256817016037957327857252202795793320526648824754142809030223258641856652545804697231237056174113065142196953050572745417701072105499918966478402156147464842033801954330663303753654078815315554344845028594549511167266644920956832556646763724018997919830050054994401608484323530873467605928546396708000330786007497760963748400337559490789400575457518197207186871643134992913740263254125940475283607555270191415846378146323165245616692643276215272841875818141055125298809385637820030761991367587003664099895960516818975559965068168034039722161677342621072172107671421770146242472661245405195227030518892700846015363636401149074818772062574596774957809986206163535122160888196611262570053519657002584653858896012665229091161958533899574693751683440427814078732583156327321529484191062624368283146966317191229418252667558278914908152789997765210257729793887443799335436105930036215255687414337625209287567467746523590256727453699643485928457647041690870465776357313417231031084748935765091922541078232691372450630881260006301506966523071229510139866332189498152125874842368801375302405625464817266562611055685330172537221752798816123604125007614148112904189393958647783764234498718661158740399136592068251920012086544325709314100206437855529839064468716601011795656964010567185496312718516589577708564535434764673740340670887254619069264406643025698643383483623751952148551993270284242515128420726970726868086816088680388325668294819840838528605455360776622516652606070384330738952659401945747424832409735310298145456427485785622531293439875050589466161955781768138492508147953726022837575557857093647978704649080977207745464659715783503266814757714164714012766785984041316368361779255319989815630201773049141098337743067292477339229418880205513457627009403646642719114827683236086516002662770648952418987869954409560820527763365718016712233114806080144674525380854598487347168073821367476823937133006960719710827402794084386478041807402391715243269842838227623658466107083932325637104180212908355448484765353224239707567821470771680738998134652645411635550850975197577498494810589844372242538529001983641929292634561594929239621067502110803604976548289698725751637023409521354709552593191609288988589523608121749077922713999616259098304697722143278307250677534940997637100343506159680070551172880581598658053095242251362064048131394384957476528740622291650004597164350238619029270116416457495838093280174570571387917137734168349071423556203975674291929139770832839884352634158437693379851084941610776872473895322790925655735838402472182956652271523797901571789908462821766201580532336128666391103808323196489677218551118177068362307183328237203660497734652697859269520778573518532018432100198864571942316226710720799732817157370165430805445512335865610880595718318361468084405068966036998292088697325735096734458584693305211680574145251777312348141277614888090930029759946080717040832760182851550433236999456136453313518890133677656548398745821746188682902732993500677024133746535322588508037137729488286946857852835868989804438473776508308796929355898143678568654475823212798905480472482240768153987641850032910454453360835662906465933047379075382072875557339294507292094819895825235930817661775328357040158702813851809127468424049163547433815353188390958103205753016751184265874942213298277933956664074850967359547015199507136653522106459312484349546602273899571340566625880959039306465333308498713721977469866388868120381101313193210886144030071128023254705029932125537547168861094730275393164470955188543849440907292495351118479899789584978866917842898156119110495734781641521311589206473183203709101882396624106056436052214599745699823953325608282426360258017995715037352604305756717473980202696639130218919544984931281050820692871066952561963283027659067198986714766325932604310889827715797483458413249038108702636590455986387137110678267565357482227866227452149660315439203636443019906755147106914088258054694476934248695158263072281961414272600938844793845093540227164223302134255609670552450282186716779647304345741028058289324248115622146590782447252954697719136511406336088824540865519456413597047705344793812103165222573965073424895044673312842206946397309583426715005602093501103537869628749198613671384776058579511229100793544028101309735615685562830086299143743194733141611747117760196215615881429175103760715411073325833014150897630090253725896949948421675715746053810535995142139012123723296255967458625137015798940372259895273043067557241715878548289144654614173948709521140190706030640503551286800781628819272987740626825028780489980488266255114607273989589128230688829392962265252252581024137164770284899625039092829136023362308880970289858267542595894927668605254683144724964490382697299613681066391017457354203181439548340673820423018762050242578442460218506893621690252034121198831216972979087416904436148696834806313106744624742480906775376530023927492323561106267662742154727412294402524160909752209920186081727299444051992450174797535723778356492853314529005644931865645289387469763595433571129594792304568135349070020054573400782703075921145400184110162241123707120368468596861901724585054872053050175122708537814948248315098344799769187644684984152089748587919197906865844116517612826077001099042004863406398934363821209962616875151877311437479838167388058669086056702522923665169109792507532414771477947591642812534949149491744587818340044392446354588025027036236700079398737719794729562707599925590173951731029376582489066434066887572885935431995496809733636802859871435308591396873102156796827090246410681078600625910906908141242920994098224832331228857027688533268033112990715691054284404077352210107493822130322332580304782177615499796974279851701271742914079429615825169881165334833039398870856937578589252499575118371715740993758142202637883968721125338279356764518449163936551448126740708483189544680234085940566888096806270234760001348071999122919177155534042046359624946211195443629189687713681884352593298060379173752348023611116624030332333759655885287933337512900841035809439744936745270935192594346461769602763580429403319857737670402798731141355857644264942779903735255075335977166207939105414031316568543214668885795992688719587666202766091263058161443571080899744099420856495574439697570129666065390264435600089694528347999321639571890200905848811234386074285429735823569130855839425506349691011078126694871059806373813483416523623834953249113164915252834736780013178903910495741716223584338540132005196546266315651567465444846533215643542460872800521735513624655640805463826580534766305382853387071511266935640798169326110504023377056556776909402999521730411986156343754003841745442127972538769346975794133037139346293574255453761599247799101345607623395885765088163634720092168778925493995430728653745187459215738576106014740811157706779520974351838916179825186196353633877829982673151334434765144862706865688957572860501879289716650216210249770770771653436424616430569496058406275109299995042018925614063433309792219129860994499769396447957349060617604582592868594641964625843922469695711431870464644895568629108366250969740449391077775183323258252406360808968245539246487780372830383843176196527442533083361778691503788129034458970314395768935440634695384727361789523971623748855899312606110549530981849383565073998125907946023055793308598045554552415295186550051192305887098724386045148159835983774368343682881114206398572242579084148258193555107222088020205008356987348114080802994746458302368449017460729163987307665878599577393395766221528024862035592538901843662145767435091579825487663575174834949781229796718682550215609970861705184861796141970665421541547295881710194516224274918111036704161483979470520440069585229523937513276398303466179031413411192643108400636725804683773149739795179870840186770998781018052458195977888068642130405368217149709176230574845860845856194473567567763769280785896713433656863447620289095812219778023091941056507075854005073012134671957147507798622945442383518768614721875070770803378749833324622335573312070914450163595679055994232476071026154445976146306110652250537851590260779810097016312914232027993771451036568188403180866707730591950145729414431680494946525455383071529517703813275085869358611204191033202205035938612707093118066683530962468507083635920721951081921087973317342618451217199316430778593135393824019202140350933329735454165392872019076561019558537767008694628798804209812980573455241546715852420481598927462710252682319321934214374107631738347961401026238519283242408411818350475043551096943580462996408312552602136299748990023460341767349074802702031051639998330691943136904489575986318304389387336397052688322375415454926259639738427391316019805148843107692371768178867596569168382203804830938831063093505477006983188096654209540832515685705276464411194415786146001316179267246122806688058473566933475416477099207014026763061836163487612669118681722382486103001579815759233616686989166704595402761327407018944977784317531429890005730612990790061057777736119235052545185992087472820385111519576989704397330009327940560209948679659414216607770143206127334790813858944692803202385385916660032525271680174153556114636856023344034405813205787540911613351357088617524424527871188317526097081645900642891314173564042351766502936321684112123985261604563486585359297595279448885808279041500670895254134133726844713715516358128712775191221731653362240692666688284517968732779520578246613187085940966435697876714751192831050202642371758581839757397258304906662638581899212942734270616648313988758094905380105211780039672975949577985794529245334278265186751963720795176952073152804302689747998909989249745977716782061825226397948259189537280811742488798698920362497859872760258629559164464061428884228711130610917614269731997410961814819638125538920230453080867726316454253213039969662795632735473908073610745120400025557454358758118594341804165799890270169083064248709218824169248637262404548478687244158524890567857018724682872831943551361800556882754020722178392197317842055892392503912997943791310292998893602652326275355257289542570883282224186363822315653077456849091419029526965774409870399621219620565486141211928370753338893278687577564424257080356823858186042051621685391180806943102552799431443226313892903658909013914269527413796925960139957347806815044712946487205379028724425988036298864158272621186895422539792841664491516693551627141558611009814519348569923928801085100486562712590817744647525739550576592052721292768087120377680182570999518683070460845934157603110206984915916225723203610167980558687847542538616954977573794474865238981378691798277002343588849674309910284915324497894332166838339013672853546101706424821865745940908294080757936344023226910670941327519114982595544134886002131820312405865678977945898056386284918575511289523220762418472399574209274540439249246119719176392957003071801845486125074899560355148526167801631314060544323817832525302971015291414958702869595648476593649703005207269237769905738448347723668140032976268075710461131594616452042769148516621525156917528847434267899032513599554297092334081689935762337399431953157578419262574860993458099483897321580227292895487631605887739075822231891448665546816496575880353041347543862253030066594798736804298193541281029785750387216170980289634845876395450297697649391269872958241921073189098918906492661675275415018377563516744036849533623400999088179144822833254968410215001190751968488615873524496917401232353999094459146626949267536997667629068240112667844077876488149317012378190661198442020746766166867639510226397841594202779315454907049230269128518520756934043879113565180073088456009207839845592344732875897830187858679097695770598185526755096977299090545589742828778321556659989079022004096241853981400518003187476418428790617911062567166155302123595271014133405423072877680391487655028609906643669686098015588184456224290644671712750528556844671236783048906168181272820386939953003009392060566383221529198235146190004443678917114986051664971685558485132304318279868189973596655436580932833076856235917801498249651732076466938917342552033073412985530596819457022328785506615556664157386549249874059132298422532020821114741191129728954774259962467675829440058213604496151245746982517022783743092428697059117643986166345353130572156851817403568816948952298681545539217194449519995099287538295263264333399190199907887734558674853043333856199767203454325735600097602704059029110031073692538169703380898093846005303354401481457611198621147877873736818441385387191702981456883879307860844308778055468172026268225347253914357704740091058445213582018975556024189938318768637064369474770159557883475903339088365376608948531507390877928583560100749428210621591781627805746172381252944833941882104459687146497902428961293669265958291771172119861893518445803684430713074614179848754146001871580153698329337665829373172546643812376160947951593832527519667517735984358106903232602297622080917454680225802138706709675342587503343580985506172839444790314313671094597085043831578144032274870245300099491405684360590694813718822130277720998618994317403336829238238246237875025816586991075024708434145154648923555975365828094210250503661635263890092957379565600807380305441576973446796070330325319773897891053248871378771049588155482937344197664115328204905822621082762358887837378230441555182158762390108655361378718140848748267452630066177200539365365744282783014776136976067809445505616433331858745865849489051488738733518826841978590470585861224042146335802446223062715515431510338177519122132352764975888460787222601258328815633353019941757015118845410039320632385067584621218134411332336964876812451305348695127243383553509073137583472037403014111421539345450693074006542624400410518517828412123519543883707734738015334790415358506347047531423552896232311285232172120553457357978139447912285008569106101884028259145450224190076789669698198808252367106134399495945993091227497142270999559528453352226932484556139157428247307012570156570516520550879842307620483441836077796866797274215966362686698297705761432234845488217863155144833085710349350811201080236124088607869229597371204064891094829702401445942610486604564831750039482744245308355336128011525756241550998743487927377449145092375295481405410135613984548708401273982230494255047358385431528976571690480137863729796923688713526213295059232377907557497294267595635725141907688187566426475941656686705826869298544163548774402665278032212465797071504209332193590874057823287871320042237469072827323470923801374730937154301088456968883585683903374634567104781042966057608776226560647600632213073701836728638112953110592113650133292772220438326407569358689736413844057767253594979011470702149731156100346361471822679360702765792388119662194932154234287492465818563824231143744765646549208819952436115798827782168938880068001799417988772123730639103995943406169429658626342219367553731735174054579107903028348052571994021650412239027711437018442050696954846026022144676254744283665070846786097281973851163984701844386030805600381874977337338219339412086735180871254756394363003806724287827852831622871121085476452384974729494865599172650886578518735506484836502788676854838689531594855283103145342565081199258678882942307564332785134414748215197348759778221365867489277416492691218977668503750474589935329111813942964758292808337185789319225928960111949189718876077074109101920856112376412379630011281149554663881623769842204930874088095649332319026961044558920823185655215046775747264545734271335264668911336505628200228605540741341221836995662889104677784341550490784417461958040586564129861869532479943825455882729293709094958913928528316464952255157458382822866046622471453372854498160175016264602367950837668870400903913777827352961277683508758097146506855546786388802420999297427167638958842995743958608740233779384856871346018159791135164257631756371667702087183767047897898024755944033822749818535704539170939453780573803590656025535726117257580282594317599888089853736710220104893866232055688224497649334925020757452835743906472714078525851958203239488622361089978087920128350112394842283125737721393685250515071087003347457254693815145863255232257317075246918259680856174595817653322012422229151004745276068644817240700585785689613767716107209959812673701278866089343400493927156657216821520757512286829342472825151646260574812414352035104683522420292584653316239865374875065701299566782299538417719447111826845614730671569256754965413087074355558067459011591129250540259304522186268897720981761747337674571891074631621343793573337344487134073214872026539006200484713616838116167533179829294236109910895576383878424483468944629178304554915720294665942797018560140214972949463777019712005099828628547503501196940285914062167120587066038440382848690509536682872144292800676682847724933770023806817031889971419070880396413819745333929125252306641982204027818202544978246581338549113678522552200306791567200834139649115629031413240106039643429569812488243596475115635949412832892223691112777778174101095739326352501751393932990759913438206196723471922248809135736107752056559558727247670245785545376741786615409364723139952364817791183473512809294716401359223593253862879157831993384148006629716864461469664090555818854182845910946180976853052077427944948600282748405227811860787257062582619568947995515023433645236636100590162698627318194167817908081273498426117911363986961781897023067512215325748167410528050860546825418678297555899394155840381277615776593124938732586038532024978876172897172207180264007625595849586940390025635469286712101715152395493321303229181496029521162282371131256159565178308818005676677555562834050231031425206478794368354363263095630014547321204028532595977082659389527257671192153822836137461850876492817479322124827380626748489447812015688437095417945244600599614285774641527948880759294670705514634285454644640363908659143233137671596453083077185348517557270083186861215517148172955485238719559367244862816269651059717381350939993467870405960315864321970902218373370247175485985104333628513141836216006735251327369951605368964058264368532159009594749773490993240129055473230848731616816784343593611905541953237213916357444889776801338950640840598050856590966477825862689629813922966559427754183785433503393410516593884906993775220900442757867494006347187676151935857494551086056963005108205828926489709901559447964734237418984161253621665974392914658095796973230468398174704981145949248784542679018205631800624378488973872345496706001879566337239388681540299594965328837788123346325385070926237177096591515706416796645999802951288970391048806058856203912005123001494707507041544568346965519937404044684748298006068292930221621129137548228750027983155195249153314780725911108920817625312374252663038573837062469446647133325267014469781694577017234224796501530447397487707685928417130705867689277922145375660021091150245655850294990973770980971134274665248205075423802787441370388611329896101689406655306243980750519214899322432520747881563172240206319233979220792340225016180134072510146167469721612680848394087561240476556278374217556920335118392609936835074008223626674982719731497631910052563993676049973569137876766861335919611168226972730826741410000106298860387972748936091706530363137860520334822224921710892177679099962983156516693754863117136897140802560373720426908501070139791249167069446030881394596821411837202635194365655432079985574883230294814158372356657171015468254274334826289192411566625354786011650191838919391260724009405504315372990812054649251877980134544360736218247311892782558908902935626567204247391589201767869413218391414653516715684976764698736775961433501477196292662742186524953207147686426976913240600599327204660003967816048315862256806631492765433103795773293640179821727380009692124624245906655519893180638715711171316689504425273434464039189804340796701902132237602751243777085593638705867766204564650143176814581697656370682303287544509880478157539788565810548422644887815659354362675126790539756380088714225618634134161955087635914208500928406283596724927820246416484270362575685098940689286873583547266489476218665592447469227782560355132891365957991906039194775366935409115484428360584511664256006150584050072400390084971758081213661366935652498239103237274783490799360921988926750110020424953071725395509130938550060307117841361173634749064939110279461133865702295834637593302936334591907186086302344427871266413703225198182599602227435000807089229618995397222680813938358178980193783624061440145490144938789334967317841084557822971770727078164175757766527294603375129623991928812308138481289656205923769224607370327680898341438696125792341211181349037289776841046853540434296147018194177305422196814399647410376342472749851444976611819595038774525281112548228090420949809760923618410191503759523779288549952549635285396785431632426855949349597334633456941798926515254627984299147929143285164530622919878628601558654419909701632712578552881713257018468339351026768951800584181954760359255653868833318678595636623979973781374053232126053512728319980383002920187614435079945746591175532849862067340554753047932617939095100470017895085026547644963074751757342763331207777661405711644605048087009682501292079879432397512517485286885127358894880750366513022796921450681484219223323234522019683161860709384710475515811099742564782905892964800653773111476154419728543335439845038386474324352134424957505360250974097516336190977160188947302216883571822339719132539565205181473252974335818472275851187656608498233763092877625906775417774153119072036937414347978094001161167353674896978140842588745150311651447117465803433427733956546184588185496944376329270473722561491465113016790988052533678580651024356850263384726268265181672392215378633846874959551791978482967899490478533236239834372063149441614480836190513930690543847391687263711771359341313635437361465748507840820253113033307513539849492022149638515050996119550050629465964478434972745424665446260424557993116701431700020771136581860831432538918985918985567958459802762396842289368939845001844392055337225667490094134158199707480025917078654039808866912768492287477063295562431662995914543273765965230745345751120260748793611384825038667647562429300615335822348283838467799973342887541396764212480921733666728863882937504676280271832553249797941372397882023778692983787333041764448847513335321211688774514868588066987428470783151720155174143997109603508089817052864458795210353321610224985496026560619462019083840977854061328769886237976642407531132889383538202440870439061225235189268807095305680346338561499679100041434023700516139672144048663848282073402716024447921280032657920908303661450922579279186084184792909614566432865541669735760745697212139142089850117297354669048458470511192684403054159265845748522212382724407703699228217586274899765563599604252674541092890737239368119215767606156871718912754140720198197304744155285802945255252282531863373021201170165035046412304076473219148897380714801193277260188509302752029051093474907408505223770447658607605109231760694569351662698681130045723253175709434492866402886714902186999607227910518207688403942014742795863588990400923753672530960465734113483086769820876814594465201138845326065656089871074264037065980079800279391161562290110201903756133676865531688824403246956928369047966566962156279317868379117488908100836747895410742434804699746226003214163201003507403793371526746257427813347494070292350009244069352416781438209276298570778556922463925514580545443533454326993063726802937487143784168022473684846210373877454154743591301559481790556502083393815103083733218421785829126346567805960282991538038885253496395216319519895921822238390514300610570045339799263099070613519113157225913248242558526540108878164186343956395142485762787328137738304501959010034884087062383097034693067943986599790877200274237626252803339577655630248357581389077106456360251654910608738787455147529256713063650055975591744902024600223708962620982523077873120898676156336866586927596132961308910512901871230023858500194374602108317869233447258504560849640158627914177073496486597350032060412793152489532891045126860681094346425706874325487538346819165164700940679159582014076798873436163557349856746456497657219792059493542695112337412667065749697001272121546075787222530240729959284641909331828464506851485695272785385503207815994011093840947991527189170420005419455490704087324785151686277685105921559380064328006718667765467125618169038221775267525099770698100090854401000874723407341686069049949237061573583941285231099611936081678530223883613715882573972738651073282708619238518872093085349133728851064083793490166692510963179204962090138526107049407179957596668584240113279208871953009120457500263076447162943391078094855555898307382677312664735266669961234706831124754244875850751130686641281092899551444636145570417940077134246474134598735419925458136736355955270351926932774840193999497025315463448396580044204101161009236012952862181979132402204773321328840248248130089547676233974200015183162065041810988478248807502597812217306877948963096023784873752823263528154099258447463282986031549862566871100702989957074079804856886782273614896151494696820247154256083943509421263957210155842622909343428756326248235824479829124532649629861220943712846818696283383254408921699229718610949424716934683264938883437202481838194386537778365399600207113509890016131214015275923967328211979107775033712365404237560382671659704185926517001399431442258267937990988660696683826898048228647647705777631925612447305579099177887939647375540343074587696467496116157244949397357449955880371846214554727862712907798654008946409598453065657885270307213430726685808686976463058718667587793623407835378255593793926452450701766248151001512270329667285686953233888636864008335735794160424754738056090771179897175258342014193302842303514233089736147846898932790344580721531267392371253010044782940568717502502315615068607106710405762002260285573972879605018691480902096903066530402108328853444649387364421569877295645516287054506825253559110072928250518045325642963233131545512522744050963292849425546553996725562788012528824980508183023661757017329295536603688609496350180462971581795238475691004720707408251491181745652397168244394104391367031525812307606611523405430114023063624622325502017995768762761658967274316432245279209241577002449056274924157661359898180413057281763511517754878517174957398000106514379780042636547924383191091570877695903903299248190925514190766547142939772088980881294044634579808771464012460472306934526620550108234826973299733207191108615296172734143062516294802907795453386910363061548539075623213105226268098815808627333005789505888066146864759591701400761199048504362538448219683931461732327559669216995813857519947804650103720389991332111621090907106114976749000341267065355497960270525418308983604087120383286991172491718522428314999710574939074497616966371564856865008668699228453761710817803806676434577322108893375268758567437860217183071891452925654329322539933277392366047804481728513911537874155298162947573609879757364742435952170808746557163221472288390032535945900281230207699810925689514089078606119391534212738872652683768199167850348672089538671176971533073442581065647510888287030348290434277032043515675983932001369333899338984837791091960920987516571017321171770646115433984490054991162201136552870586524715725829234262561155263837216704610785483754284782759052309555046240837362262035763570097408697266411881671829008843510045280063174331206967276000362048186774382608582899619359378255645540189090213278077632633035845193007740605391222526157657635275844524170505686310731550258995341623834949801633263327458618552389365220260307240519640786544856631962794038326837979701653520298711017511893812830901713298816875754257032749697774166225591014127716273372067368936948245647883439357131535868471472314066805336822898301337851944892988943308321996136670882076347340551222792427042328629926611985415042522002844263081708738237324995770101698562972196292953710494516052945147143950756640789706031999099390321349931431087180040388190503031735876218018039430736101982010890901475269069089587805485997723687003984319949074363019152113490586735106356559544979545710540062692752676985450070813283869294871187596985601727967507026799496427908193676228675613243700532484152314692603182052235749576711091962837830624734058940312553280522185827385458878017586340183102028222912938685346332518271609863418153899920403996279677315081356159332416313598779042067668794839233507639302325695987698205927250348428310120912899554875196395502465968294935809429589617788792213379785402686700261215355013367131621274546336436868313920911326082038231748267298677168205425563870359885307479830831535573685216389074989762691312109504041772028574209378177484746481009109916486603310879425725451854326213801208028736327969488168196656376151272476479069167132301668584691464212524187843898449734376647470652189955946615140690218794743590726175307603431957989589350289046350149834282093413009453305347559160754678870908435705956878906300169171729472677353389967168223425834194712486361364549839939297367525605929132332308726266793057254506012831439814191984729745633067383728857268616910877778050591444030182095517570178259791412010599646878414828123997734373266419708883223919768963855388843506186001653976829548619999444545597609181181228801953073178947861889404803774437022693384292938763989580370517085096396559680460185404519969903410928932324613532953012039758731989276372822959471341121157796780069306693483506357013679535012111067787649022410057921067983539265221816906493593952576237348743678494851630273551623859524430887051351569182914825964103714387264119986402194723897033983612785048954704025681007115730007736223605605117120691337353291067399941222926529322556030948769582759843339283224880350424422738098750298415019104540576229968149251769222087849322884732877198039985482285938256077543360362746222308515028191027644919403422848008689029911655526893676557962655259169975270900190588050458445139600313520070363733336914301190279862740185113516747437458521728755243831187137117932586491669977281386373649570019500476711739446946294037276981373073834885338975081500120426898952397404511918588898847382432654183362529469515897501862641582130144976400224583460895079170889556896485376028094460647069871930461400753155660731892450587841121786047450903992217962293475795337226792382224081139775529361789184360793768680451553401650465603025312685398309781144509074137572121752068275961731122364884336575616079482619783214922315171841794907024414300896180707292479576447314737946164441276938727805415031695682362829756230632928495365188604047768092870750269657543390152610259531037939494940798675037217642571230515027854378445824254118480279741236872164644448394714292252140198549011513187976567308729669892262836178823040504002085262963427025711237856873722151218575268811057892652873082107547771283633511301294546575537215305911435554131765656812141991413943870153930369155918152194508094934686216884442012680049936872108957970388683749510128307217472973323037901749454805474787323481524114666231840864071392057243726402996222720205136405923706638115752065151932587664266128335982646970283797309478716210078584142146526922503587766332480013644653360992883793645199987683565910577294749596259283401175568185882886570268497954998562886521312271106253490176542537563681989025037120565421933060886034828127600522192249409118215507786067314353806531336531237672442210833310161370324743749387040825130680152281891107875158480730524525881959918107584266632745172151620222739707957813573763430057908236933817179384423014695424627604266287314961909871097396106681095274844362780775485667366341607564068527310474230778575244363941556511137276359159074570235766419365316603903084328893941305854431684717180888213718044043420715702267711928549773787560903021888878886027381940517688340143915853025330890042757861150038936320972259265809113225080609754808887308084095183444485785101498922198681084444318878122763164817016930941204351358925413376576753545005503484875192660841115059816141214227451349227660886446120736812162505372552035894216473219329769981896750250354770185416368802234369665558447564154068648831746046361951006615988873672401404344678879411722812482897363679787592220116303389714908379415304508919172014104189269559516091472607460069112804197884255008914465637413760497841930489784845843874328875552892689158165535567609219404145299383089642025559100130462958634562642261064470092907092349709427492642149618658322040308055612860082163304109116664476120086760056413553587302423935827789669717045507423797985312641201769823710534558929387769880649902529955499500261933735920996187353823337481297151800174134557305470540429995712891580475471184123894838065855961535736602901514841264237554853687134848073432354686114743215133483920715436511474697195624197958775934027547547576493177827367280722257932995043699265448947568754133618861037290501826082863337411416573148499144455347790666430153940658628665436835308644311241243124837209959161487591253466664919617483708171685172963027552104924660124975220679700614103026421540036034966340967196001874716857458491024325511650498882415517467508544577116311291834996438153491882620138399958347260335748793006767225423978675669063737749303187028813831039351041241444961962740971364423415117083380768751082012189581460982971819721781661832393069228935210316452442381782247976710024285008214490904185291811321061800483682413906137869688724025801691071349048169093605745720680878244658000892578411896889018772255600877970792584080591751916476780129462504709462529017364281195787984451944401699073970553474051534049227588155701965278553387197037273422559808484578016591420034879842262290066477095686147838837038680183246362235860248888887138393981934607799198857732523510107284253995178848545581920380398427197192983959701886350236915495115258282511089250844360289521724096411988606821190063582004700332329045598176062729316385289176801895424326490734556090741699552693672379705039965254064430840763016214487127415410266512674949761452875629122398300011447162578579014691741745946063302187556022853599357128040285724308808276922760756792547147974919256281370820943957076708456511440700380529760004798570691333100251645965757659337163975828052812933730342806554225684435399735199207592340462838213536690627127939803112013975237714771460004874151860658733918582641515279812969146694794935397917336214641709523984185493677577497938669919100406237284257046823484906034534340651926206317605511501280160200019201455392943630617859711398400996576035150758196577199187748416768796293754062837970550360417138998023458472681990669244324383226019793606308944814369307555259097718992859483084818063345072063975027644821009051043307358010075677844697408963196748799527090784046131864003667292338428923310343153799064770199985373682725605232570294885176748739968251891767461227988030632015349132334921517107102834007414039508012937715469544379266566442308139647233542742494887455343548737603239855236809851086679593781165507218756821551963203579381406756147516051808134661760036458053873672372624512831193173355845983586915588474931281522904190872789537584247969517736983771575137221197274007557915929919374043776551726499963762840153465548501455298801167251457359570652097658166985093013070627131643923898982251864244306322294583180703217095878112453958445590004503391199572769872195073005317665568750243750072451519017480697806076576094140167367602296272032104918647359339656686663850209619298851964376743835974857669710137835846030719845096038328901984505005682803602583305738977107501597346234197000479957578241542274337794919465344789613316500874826578306173019181952329002712117186344908587508763261394698585984427756167700030081277330303160476746142836056581622603781242991299155482860728309582793037618423240830413600552028805031718802318326798987163655335558053510939817569682933150010598232800787337905267689360129846805262764771819364730501047793106001867401970493293067314374697985097685201635172129290275053808588590949728803135128769894330682544238018109301775018603232841154127286838053637710263282366078327104303780041439123232423502084614872487082811651778968297093958480311415284175957204997858360163353357865720483395292269508362601620379529697710813065764041011633421137332842859994226838185610562687667815071718609282435759329794002577589858358793227158142130145246899636810673980324579381220471998732189979283037823322857421311804945678525052119514516387438059090235219628149335047706729963375769545314649673921984160619517625164832040403798284521043357821555436895739403967636583155356614323241352197543312141697719159117201289916254308048915976378377233235152991071572622069476751270957069506904228794369650740421807418326978713212931641770766048685348839931536347720201759994338748541452584805879711400004250199860245149637829699313203681961936293478828385061147804690057854877552569267065096331098546213855906389043162123455889824685427043093329378712388203111445198933375422542485297283644272151251058867993542018373895742322707180875517983351713028396106135499114502346331191462510371566538173857911212753558482701250647124302591089323073596238565914579932938087007137447159092093964894377641762075214953719150066903727627609487521819501868578158878053164362619523635347407663585927864070331383369528032484703179230424103215084987329042427181924787972828095681771493790387636494004696982216368100586607189765255966073371988298541480259171900827595920113173198261091261719451901310206370757864973686648150925341607109171934503538797847674536386230865909322830428048695277639890717042785091596293232689670993637538934335803670260852208593962340516896733712081045948055042845353520755555785772100914334650181915095526086189058318880384460642967505570756899720563634553061329567927700825388660111077009964458285138512639695798900196282845396828289863060789491539981391633012410037656321022729447972371328020378031140389647214083217418208245346618576045529703969319776880627621277108341318543916193722432096541050345269155515827491634488327635461600353801294587397514405710129187841962558380766725922830809684823332054211847217624110951554298411491915582928687859847596302549291050065548112897987147593571591110273436030523066096467992007512760839510429749450154209496362765340487430553298330696498479501824695235167053237858144426671898487167811270337197583352006565194891369344660146949816656179508124004038478926036898425064895147452523550695698576020825725345171535555731806535210875847880075341433449916193411432025099128017618796022724074759929421504471785167842352297624313925791460961716060689494124741531837731195444034706249001053904339332861607724782239033045641486787291520648531356611568227179992030240118177130374920533966998564713164998804657039255830720273879744255359717245507769836319311302730110458922924670987905290420059377440932929365629224997842169737891706803145410480472521910561380744060598549424652759324663444562084823391159835822779630559051356502858501775755672135839999954000371834103798579408534874306300109270427959228970706296892811146150993709336717878046849114932512249219156274306069126863492890649182366836560173803037817696628225960833110153949374750532140055476268866488328232179107450561391614039872563197837689778502562223696581767817476805041760127263334878047796975408436723570567724912764051068192176552027963917688067030326980360005116273420245757009246526433205008759423588207754195181708746762202356943337464637730966692028198118117479683192647149480245523470704788321541307598281610366603519377608158474903988769758880508107077020462949520856804444222798380203597876095051253871805862615274360011560330121303151275826264251633761420722781316738482773250001628591366087334698659114674255404259913624128222595356681638476133415135271010109001511730316977002154444198385944893269930071835860335664376391937076236397096032133092945329339936849948099786195354844524620943065222106027571455834169415533001306269232100801597493736569922351661067566952932265972832289875181614244692058415514774426404037183911697290209525640299835716507381902928152317679406709732452575275013424842022234103525044307064925185293946662993089952873842428452836064348197731618529495962213467487128706205229123091437142877512615712384225556076333684934147962291803767702052797212101519469848079183809568360271380658548481099648838260726190883630024209372100385692650730383895574593329567967376406450525041078595039353435683074829479424029339492150318215831247123712716130702127376245688598295661896179752511760225913337278053911045216450761433581649441329120950795997972928883446420410786028894187316613396420829827149561480542671560424768589739943351980953940595545338440036359486592204338814731678860195964236495925919487867613676120651149379388286890237158683715205201308064729883940162762671842954731117207967997768475615929032758083613360318253080189016603929811457406222121139717101472966487622147782168320551031930973636810194088599549755106954339977264771177682929410749442813435186913743760095590610419424314631104873121041044321007286676421584541733659007611124768524720735872583123026696197614397234609038550739133267259028300813377796264470695133724945687161738675694475764975667676135117680160737466309532016380593522962248254657181095581186519568933727944099447940713522465230149454550091107668185431572438833938948368866402557504865759762062841427304698925354155311817678056184245243425771436456005921596371156852866749171910460403616255453206587281998974226858607448133627610678225224526438792879150652914966930780623317474009628523132059264903767395298146398858373103588486805243159865210584313697985377308769769140242394756568998129897827406333399637615346741635687808330902462903843973196834874272640325539037069923660300916728229476969686574644692693205882412185530553615113290229778658521265564367445900102687730033324225408718185446207194608083815781379786832122093225878487111264226213988419469083654029940238513713593513866680952223133929597392352806054945665921224854080130611926373278021992109872317858193932781337178848449188026669034527228035587888554879516560883112915493308402588852587421955837523001097254430068492477594495286494418816509868961189367125330424501347446737761480919134794762662722926138116309156032172781239338904352372940927120644505899621911327399603878797198523697418317463930166177780470018091144242971087239726960178746356283981724012213590138052450347220339759454921020336145746408320040860626189367038979511556201599726067672577396745024425057828456174275628144806249261032473129346151101483046359651762629700326117526486274718229231762380830070282127383001236003995384253968727096084194776690296948300202319686596024650650863985162797537830272226489520388215199137351429405070934373692319371278196970732312119783670716594465329551217487460233683537829905674351526388538217316875092997905955079853464197804698891218053755672123212270555174799380864107425852019007808345360682646241067560294739172564917686957064280907841204294147768856136575457984653407148727118400483146178734939958240661186423105851067631451642645891488675473350701228382080318489986136769487243986669407122913541333732891088666450310170440029640052479103096357503160166877110938603766551109876768634400880180523298112262529090330222487257210081115545765715628037929054424767637188483442834753663092395855224318160508681977982958575532065969133029168943679451306523184530825664773721444679836026589528664294559236727032867326881697677475454477649839021600372010710531429556769218187634656292734177835867498839029668410868337457445305112333061812204813011835882913307571697917165974093085017607126860916280521552534784267198403590734462647692175835274459781417935293819470259820251691399436550711844824157718668914881076906730258230016251265710966192814011884509411503691425383049021965651026805520888718626673967423730957785309882958788579490946703978479200880448516808626020334687354314698548017704442613611331493123517199413254929111033654746683384637316859501069399480473180004442931956639608075818021146817911788511621368479284789361596312511940494953152101025219094780929665114369112848489625562625419848740737287064056371885376206180746337166585150314310572902900071172095523244624552437433045066110264795816644685681446281430141076303817753675064269290885838744582632770929245431047403642975377716080037247387050007019673742457254313161397441693127437846158021182313265892738404388609566217920276502896947382744437269218125640953989078083114485123016191650176326369720628437466933328156015400865843760784250956094740167579239698698424659486350079618901092226185773868538035458418557945146033699900315959027127495944316994000172870744686127132409796531340354954085373816219713522856369853703646526584932852484545406859522299265681526532411313764995963206771279304013148067073019520330051748782696055341968369542404517752466170275264815876355641561909560638114118620861225859556777190735132781204250615814880104398966423084102097741767018189807902575551932630001829387302956909557633185096771482390615349882323346277967406307881111424767869043683009501399495188312360993185912767668483259435542643024571627348845311460662514313430394911822921282999439213107301872818044274473404264435060121882642112530955995514043277347463643371995365088193051196113507255881646536511842275728007647595345812683786690799838908432279725677381377938403153139260829869727722774652047992888811157658534580211213995653125013753794030381961975262996746943387601670654661590514390816186599498048413108962725282422614723808026943079826462348748991410374475849246641947582200410065572713053825343814201631670616273444098647754831229424413245707842132542793394774639021521159708850868143723781606878967552590236279643645257315348259236729929134129633481334183258649203045329443868977474632258193782455615261148349684589184165189893834598696520725794112730840015014559907327670458846418061846663609636050525095737285170806963643810706415625847615604519498781147530434518441221145731551419871932463095891743649952117387135902104388629769221968469553300296724365695678081452116418082115341837099392886540950097671807057633913563782453846820080852596117228249176150979186206119408137088281091106687167800238647066737600864146828976141481094100035352746572910556616215522181590904110746515322504906431106546703021067763267887999671700307229142945672764077918562237335579730583096928006167811194938836260120754450868210151602900559945859754018905164925572740266092319908323441981193014507494116926157126231108613945758394028959568440148369275243599320204489611246402669105744331924786745147855894551113896957318827570855801216686056469720076424319455506347652660831182042417012339944946757973742297131376745028851617008881137307260200850925368744837708106900963671201452764149821625699602169184564737183724816220531433454450061876224429239279061543544379152347787105558711807328345698020321513260086721933746892163934296139282055684447591525086643607617358505859715285473454602371820178288032296881760965306037368022356326556187337245917310810380751858819011264871389619938207601776444690468821407652974766191641421317027319697978224274956614666373563756721494026913139746735469118922550678629719498316663248646414403358946929110276031060905035062640046230783683816166222207561412775892169171434519298655240623220202299223616538120341567334027878758020769358848345741491682379603256727403166936262525329310929946681283354721855227990152092834452199911634194413466625940112923336822331836969863857060364667893274674917500994664136252469236148954493154973503021121432762973350733056255733395905324796574385531456243846205320733198776914727558670152675395039523168207381523431535182170954123689831392848708031836184148340993583938356502972067031774756764735744432184436033504447378985347919752953113068560003528076383804399060784221256648939739523055033923457172831936586148998976730637762802490589303040185318305296980344382890504973572740580033741825608303230055077195600209922320269051541330598304973417108070619354001646523464120180829962007204996894630791205576294002399495062760806647868462711568319377931096869147028879606951651172905309532776081253110358178776401063977195327645330773596588565954837593710471658238688804376328531338061077136660802449151780049529969083329245774916679836271008583220410809360220967656144334067682498105326374530474796324809214585962909750050919096542038684933127363879997815114072301655691738051969642508300671972389423433780586909184134268415412818985276885505548061179942540426038558907217510758108203246824009760510209410346285753315976303843741620322032548720329507129986992192180092270199069269526771003361069637110275144642210868258292632471694239892246950473847791017923045712017841489290844852965465121519832443201807361831627665989223867324128860999765445064572120850852813083050751656090632692404026564086988486032838589643356218467138227442322057383701506472656399626315681264663775014425087020887329036879470761304908886277641923176180693054439474814740211507099048160651693724760041792998017406812740109329587018759023559014570997343421082643879674303914582149801553175761244311094407351082491844743737287120645429341295728367943080829939017912316018452299637261855540235569113817367502981700737127730188294365062373253863913845861709763790334761430465666652871546148868121639399602458701864575876413490053934584407009935083525080319988567094992094655296915209259987966036005061231248721635700925753164774185555602222399958945355973462212333575398791888565924100955437709416431891816564091202104026844198116650297219619934452177630898220868614544016290654226727718969318273012643318669309353183889223841891102357283799231084551590090836034689356990466792329762782531242428779236409497642897018404353089144317292107424160673140120216013771744754077348066120966450142027830795157237060932433434341084813673819111060049143206942512951277237784687923260699606356670203789409223563862109109718558636029690758765650674152452327264893197301779692625980348737270711364509062353646622953685885191197774144088133204143314727093186821216039608918834961110025430755420233237368189719862888634171062744547296824011902485034495961309308199016417221446309959199061305382184622819624474257724793557014060510214508378434756224599603054605303328136558741521301583096478779209711436786077758982079111166647286694650724149571933669144510548341202551301715505850534435328403906457874636273172321661141234511689580868494601884956153724013762609345820773561729388446369470239868154965263530708066719013533404669279746330841987544114288987516652584877509967067032271718549769073872277707305613305215530479987015628094374646303524002022973416456194210179673617101640544490180882900575805910177784846019232097526135252303816464470023255956257189396419547503059442096769669226539694502747106085056447773682766050380354996948978623044394994239277806102502662848915763498245093175354182063607720159896813365299068127632053326102966484865039968612220117896444328671573337154000556910781388006042133864928753223329092310515984813877610831455695692022412849852745975996381677635329145625113327852554670625637169317208999150069007570942492765515658497512314586483296754245069759523122547308938417179560630776463325338878029987256408575825341504341276285610687268873007363724338991924910680959021888600866776460339667989612568991846796306658869738889779923406348319875163600435830666386355363140113608338407737693590810780717691742842086790016519406835009727593888311581883482250260695133914527899780187865458880619594697299843095666699412916324925118695987565450010443809267140978012423980195047315018998020827972906726915545188850220709837069602834386811772055816123288501953154048427468825492104655644853407170122563676907366754070172875136704111582779576406757234211912362548997669436940020668634229373628626648887375358956128067242171078744929020403133412636293721139239293255292726718829375960236266825352532214184575302491399591529010477259367002395477787245689881545604371425087136966230295170937172981945749098054156315250876122572906030614240669746594588579482756562997617274267319434815025128184504818807118824552170199439095211316033009206007184384640404743026889014567798604063362129667226592444189980410994915305200202831362157277138828673085827561024258778733734856854708961233912688139564190906736519455728419818923726045267382886173599681174121749638484417276674206180869685703271524968561868329862556091807824704754728143621150585403983924447723499026747910421241219918670931534800330958863585158347751519718828180906462054243844994703501061391724443285309013097056008065745109214298001369231529153655215001652831443037494394575284402325756211080032130825558025763127373032728884651246213619965994797675652928278307133669044062470974449741416706742069719505655087912949479288846223673275736272005452480842812075621847639905597798999413533647645789682543676697052162018624605941575335506542122455005759868031280043454076932480929503777060983853489129255907409693806257033503654453296830267467816468201614773081856580678406147680364788892009842923561392244635569390826485842138419910040315276770289653640372398084469932863245449540490904115667091619408328410324227331298733430712851032475750617002610292737950362569175453480454109226021372214065426521757303114274667917463346193162717744080056716874889874978185458910352731000787171004785289561947300149640704856542327102220956415163093746801795806569722435675978814930201692967953672777220002586320048629258219398520466611823484027372933017488176099824855739494349102109480152139170090677776023008677299197503738830766496530640888846956927658794547777918909180627744695858786242029801059909648583085248461246241367798589284708689804347069057364840230160263860190664299824619315918677127065768883069679986983348409574678641730271554762876775997202457137506184408707076176628299922689616241413265745120671055785122665028477339568057171650784244092949211602028396776680361014899461091686335500383558215623876777732406377658510020031510574732650364562954554794153007246589660359811387918688334271485540137822240791009981545510882332758062552368263847680303087101957458918496602513156415680795792290991201321374049449704866304172684500456777133365418648842924640792734805044341735841769068446660159428382491076793228226120770918733986915485500415731565961348521236047603683705408175602634061386831775213681675847386622024104119613630435076396228752329933980353295892195742696155222853877563208003849356536730690362052148957167801985517346046117445551922536376915824136418777120905455263071426778012766188643000283266052769493283510821006710325745664263754658305874901929220480658924745041230880546947729024966465702671225174653247646641872817626443900702429517650022318219268885733817542675345218875829899935404326096881128340970482964546931327430968080029675174511220381044804407506471365234701951317270608225815448642660254284161406575896418735659320927188557769356372944047693801320938784612904702808106218101966781843203891773166890022589670191998049722039153372385061142947700183662346262770833154015865269680149464076150244573713789681826742950039093751992043162529442327299951214800573737889226521119332098805768061085816487546258460119147937434470913007782932527756110077495573507898267625089411815472202906876912098023651489669129842872477698795953185225575566464665040803626558247960460348360954261084284912322811006504110200272101581061645401376783680986939646661860123839930564132466871493448602062396274277510013589807153352542653464615441322242931696326130709908694089878345172526640048136454851748869454286737341430996837373332934852744954170284209882006765539935599527941490907240895390146580190742941286356938486835108714356755895307847934438273003599647068241889677632620713209985752523778411943909813398000946148141238497363811098692307141216608259838765741586928801530396175293895202780026168773876842847972234444739579790154825294097748855855923111932349565487579547474472362704225188455041398505002150686895945056628582507439919635231690335127516152484884512342584149191021039257004454777952227289812445511271456358093121855295743030707472061266391426275635881905904242747133587253077573676091936615487267868067156927262736394967463137408638844874272467691527609739313110006768244726267932080910352889211770874539182172462013243060905717525883874675088419184954146948818095347247562695818923079926097418014958291149826474420616772507593194541561320932451937785621366203023429056798592188960364517039425320579609045960521703600990080298895755946971999781906194605461116721403237432214356422111092248998939611137420323554027096348898066353194168216132871987791629139492349631775673172631131370413032206340762274011997268624413753983422047403649113996052045340102383193776477379698072930478182864486143228036546168970134895175070812757119512241763827258742286142958763973763999809608767445721300748061545726601705891686462810768954791432133763854399687095619205278341300094664605247635635135233870525628290449601911897650791617018665624092710266195949971240101839750533172022936949871687509623788236870169874112524274991813519627620269062312392586192212465900643341689100277049745593796236675968975460907508446479995337941585794587295153353298141048780270395935378967521534055910106117243215615784541383623536609216988894959378219005293488301937558722707032031619682392153294060479405520220860466198279870629869356819581773405658620574757840476477030636309032350852501623607557739658686174710876391497752161791288874404775940349834510392973320580002354228880793245910240497198265691904534175700595699359597290825787068177598813045846137151575575720113426486447588489908450105848516266056946653343378155013839239168421064286724479728303447651181190510980103627871422942554233646491512065585255245978513524256410328467565895354397845572182693555048253540563360433529671293071940068500306720389113936440024957083857658847678223396154518673634385761321661496824173264032506400772263737296030930700524359950535240329739906119658030586856935550591237275115729985161043829911938769332434058206746969724845729985635983647459059084950503431126861863053418121793553565413667822395422303049057983531974502255190212516197382281603517885464532323445701762483051352762589673874137695779206653817172989095087439677322701486494596914254007330031024205936275730562661478987662574242295131197657571512460231995456957981370063211837464208845181957223600458054396062342347320700100756047459212365646565980267371233209580239191219588553449942931772319204870645204371247263162082178527812891791309639756090620577327625084302841272979621813225754465303539231339046090598675776786428692818353868799629265284386131314763549099596799183737890801107301298860740011853744543964635413777863283697552636246242896575918935500740802741890835248535130566782753264966202415745457473892789328321744047376074141254348326026444447955124346284285598858298391162020346335775202368517073818095707536212697318381940145963156622299358018335916500046087409778927873333004998173201779320784011483310901306234861276921798331888026641905002406398051208894200335463317276851828026599553611157068820128126751966080211241707132127725048697274070377179724294423207291008892160957976645418985057248243992517059509503767947337493728363596282474796874513013736306241431445560255498132477800086650489336871863123202769641708607982554959095229966706593354508485332761699159076184215116054667640153711887510385551201756975022551597919747505131275223472921713655225922516174904619131047783597222033945894122651611997064258588626224523748549520771578408439388942223943419673693948380440341700967023598750407086914802096772077316443839234151611160202526035443031218593579682664033636651031301204629989971959361788250456771128732617299224676597413034013301322465076773988425850814082906919235581712718801756269572768381298060525802493518152464492515695537346626891754766775436075255949412216414723104571847748602880461720966620077340858725627182791619764636793474173000401278217036053865530938679920315844081513687435549333588048698898278126457289800638873559572481413862968681292191575224251310256196385469901443478023045910157141067748975678469646506034523506390394713281892643822803752890427896265848020833162451866741436417542443945508481372842216257237729350052373120577848404895719762866655498503323783929748597206519101461391688108140572161622408379356165118155733923763345877472755762218153780558313609153851356351860403361496896296065122975473137802270639064844331914668371438955675040457185649679561959639722526468430813972787079733793640479059032341272542260527876447585265249829229912672222630496469583304498076859674211560049901163930722578869406845377197960029458051730015311201466086941306523181543875297618238755653453390644058261216138449616300658215647449112496214164090266968331247722034804810412326998949060346904974426919241351082879969157099399897113364014558977392990076691296681816416014099860629330279815473029947266759439770859502292526383241096816643894540359497897127425096609503938226371311738578603877319302708182656976239495015055555543149527492949094396679288301895394871881732500064827872142793220334893527464660285855088952812902275076357880125603446659448380571007309271188526796243562837006808942051646749946192643354768011689049170566608437396425458918949666377598175968537168364997528355900832907807401454481614676695182038404745724536036069892759643027307991859354007553631514172201294209744242371293993232535151068551601733649295070224449031296578534101990596357968926464721725140743006518226936770432767761243208499772065623537662041753609460682471223989405673881986459844351415505367858211708171215424161129241136110555170226822431870072346279740922158949958926359380346576408623208108578343011595491795842319929135705962622407120548739253665204815414045109974147303564465802626042159222110475267981741384215085119551662306591134520857715871196596200136857777129595915754781041232733213424271830654452399195237023658103049306301895245867452395591057339938717508237118425965862240283594699316115216339431613947198131222290014088073680208385945298721717947119029628513311118671389946148277114292348301455327398394607195579872655669165374779102220725756053302714959832154197482480576212125692283070395100250542817630690299277635372565733324956303018899785240383971627160059561485614147226008092170251887727600441958388499155418844455360158739216884943592410572467251886156078865260286989748665074312592420532080759722091852074112685306354158372907126994593824443079687924956140523902675143662167966946047511762901945409467752546248807413269506007224950904375459313545675445178476956689365026204817803868351860729358553594956967065450876565157633884967095504753993912745515466793501468931388952648547915693309889667246292955070012980326095095412936303140042303637922009739112160128465682669052304122572094827240779804294179427643358212718830065547424331811862637542660139151351585741254413900962718938275181403798105308331747154414425562707824528423637731798060886280527833169389505807540253838320557153693840316099444903640446126320093735196413704455764052582505613833144307651257744621779873151770765386939112323539023356707173963891157031593152068294801171483468119427337821836556862538350320348800987600541110673954837395876820659270373552015322335045197362648757130927673952238467311535418715935861741288323224230766776834160915737101825290374549130000786973304597030091640201337989595938175796692070624559268691961013484137655571518824871410610272428419343240106872950073424922069410658444895724255763257406113860770205520545852340374713967166357574232438618037530011564422399233570364613286909910164612254772151808660626746074490194102973544624766948383320671681479881323811105648296297696362130738616377899925882645604392035828092953098242759944049545804133502760104958276741078729452452331426636265294037594371105979276861211258826455693269805799734142094996220016603090419400575140310887306649578569249378687622383599326743043692367951827745699907190689478873810325130073777960796304019361004971039487172732738633439977114044405435527840665507939853319842672555008735251392944204687621183380193997014820577045245344034344830266487680763942222237300248050286509250132841765006804448561520959251600388734466878129249556436350584555358289055405425218427658775438300165549199421730872016806928743464401106118188668698706900089281267957321935937928914503552631623243150111770105639128932633422226810991332523907998900149010727651071995332433893282688779322576094913295717213122510294552898510640491687184451345063719511869802922121630089718955795723022509927513141291812997995826749227826692280720151378443373134513111651521603063827663501893723420084524248514975858755809729667923464478713870054378891114367549593715481407508039156891698957469846200231649155753889498526110174236684713703374256115677497441036088227137942345856980876835703950868194352151879580125909410978473687416578496895332299993707422375278562017372091762473381852484736778362829015166736391058471977742605710885640905905983889949400573858428085631312919656278974148395098257718980993865249385721828729046474113027593894024580181046611691649394997474135935664240940073901951844548176755554604955522096372246866132002574456834114008444741535786655289816603836949271299605476504371735968918034303435529708269872034707952550844756946260781641328103532276310963228821977995460371850092271650440407686971456086946673158732055231618215209382162445973203878884708384753343604030493938344521037694077015670768107472381488328684228660290307323335845290913206956264408336356916709937854324769335224073661797837475039933523292939693845203413471992369081225753332784437537217427783753000292339033898195554389280703125595556863034202344781342260144002399391795786484813033902517536934915343571632848836035924118311000569335881566481593631323061383593047587631421073045220461024101302647279033117237977751272448017544377276724839427381929915686606660282848343793819883064654587844411115383866352886106696430735524849967635418198507331253272186619986210519486374567347871231532619402471155841082880111440257165130871684521750096214794917918688704124709182738303688554681394785692804892951221406301471226392378690027603510254214053017827610925322754331413613353332526133513326135559896823788851714523795673456242459791889266678914515965853034578247734139039348517934227699239791834229460978880495278875963115773416207509525886532477376092179382028306651351559444834978756870855090797854157849962077997978803128886034896198621140366869846204663310469073974855016620029177387637889554500142946838131445643575162544061143972949983019971396353730657926996746876086567459829295730655415879107573715254244984983005641152696994281759682449183369699269753015802514294075094935069011026862210997097969370338712518202387768439919880854257171207371981682467304413058631702742785171510732739854689294013957233202871878277718201718587398139846867025400382207272351279151311980652406599728302531906599015423960264011296636464484634930387198398439593601619422910292532219658407936022343743503418155421805982725369051710410292750837132434578785130819009509082062214426012577616903373949305593705349713338645468473396847165412490855684347899978768918390974875276741416409168417481064831675216903546442102765694865006144803522221130487289206034091338022776031117032921210838022083100783483533516610616649716350636566919524413485569406098956688429106362798539632352036392281040090226070603524266134742576962701201738350888100199995842786484669817740679302958141237657956964347546202940698142850326992880877842907881893370190015617225373289755891482124902439820558265954046394687645791395666740310100825500798842993978427215654222773038949552863650624732631540172941300420349403790335799660092270865114089141806980252987915095064132142187943877365121369149882784081476627229986186497032016064853067273206603481004835454944810584931539648385588263889133009091559824788218675133226033346910006893246606494891877306858428601901529681262253086189464920242119178222584587937571157372492115693933247895899898331242748443084145473044907350169745981957861470142279824300591896677776238117620481511922087430436343081487281239359460664386658181762573954595565736593202186442497090152485727339966086592363657913049159252087519331034507938322743134370998970256658412189378992674807834654627536488869966734226275116368420664942701358139124903377080969093988309334849242117492160218331777996522355385173161861238730369861870298116510953046448331346233743214769761066232544973724176068154293221391613336159687660191374058174443221484850452977664039561285586560383976767228513625969156242607304697535764672843020900479089020131891449613808226247937175715824330637706110591284287608084435693710853619490621810670653160991785879708499560224258006045682905990133675189198879369877391254583539632992690414422300132094945226184052622028963379588084450164398749829718297364335553825011294871964957801009275983130627100907034767080885354318118602974848364064134191889420655016925819834300223398073328503401433027663012186876647650115661726472853556312640449173085039960496314256689996718944815206083501928863150483389413802499382999187628926836624049676403283569166296888801488183504637078952139786795693178605176997039769502820685188197324920188778844857954609774673417342455398185998150180949970556664233605220705605679382939022940844131165458258460375598829122156830090419452108923068758732710334048432041615536701878802431349497000791777526781237885236947775503630931926200612863345939475320175761217568017754591313604490411622263674641301463491616412981333273265134310896577269502776337832283797299976450007488128249775231666344896237267450174704497300664634622341563203730795318991791392875149977008458910111911793373038092538888530526892376038018569123890133015376720721345064366830350324741720584345168791156552257691328877058570643605305953613448911334568014179830490587466595808883493616746856172238862385810745933871766976218918612600574393842264620516257475097139795521961255349736064419112041301588886030359553577461378655443518223519927554003852348947307950607920047544335887289293050159379569208229026904086676412807581040030468357418249863720180570436832345263300605368714243678030503221641854644013002486743979754508658556468455835126385198866967549447783762560871000808123626446020708497812890275814844079949359161270154611304656976727269678149906344750101818497632672484037610648019125576559975762137512037130701226604673800872247748245508534270915056232969902362308772267110781997361880236902625822519719723951203945955958297704862298205661782939883718588232562478690122943147279137210771403071957484495545998414376128440767426134445205873513023651851681443545935511977133862408633939978374238117958311501469213526401088795151444772869827918151788417701056862066973340980591069434664443610234295195186489621993670720116150765362354162739890190539023246599165877056843130731522097886954659771502330171171324303049751698069710192657075136284837125951228459556090282251965060484080107013853998222140467126011519142173739343517628722623305123796377411030056251914602589430403094121077920908061325495257203121273453708853245021669679979955369817765285210976101450615135354508493944132380497082454134553115251420669099381217913221722864571271813484029396803643866134058887958642187874547557321471778238218384910814314557986532028115785960678636797982997738207990844107599360807088782463978710833313424908576573479706890828942764767064761996945419000075777299177102800286645328772850937566402350471348422589660137976223318281226175682628104074338880966011080003489180073765260165679397182949439755308254593519464324684730775028632931770709096652493454231434327840208419493425737559101846949228566846728096144275981237175515142080643121348729330579025873235516717764202724355057484458293011242207720105584794402535861586802514405839497918925657188396658976890829621374953416058914035711708152686501249631595186673154097966794050932123730044905630053233639990297432134117816554050530232624803263331590747060188553282773065278968265624494473876611658344809407423117289247585290534546443168010063077366532132091218053775515772347947226094285680400869256864290252086229210980698854826750853184500199155617773732418700402342009770364483437754705936178051134455898839577394111357296470593325287130236523859854403326693397674136222520331630076355222910585666874378703716999225397143074942184587922224773170745251784580260384918241086666882877550673553770861812842947509376958182270602696220841147977872412325486520723930950980176774540962313101588944934867498742598646294412340311572221348638552751834531191629616221004925944051690615244474500422055639240938122699669968816726547174750075133287667375184381730986039484571398341015393566955410344750208471277380086178965266010556810000510828084456207457000036867278422811207308588264601365621478878941954051743533174237698057454908260370421032548119093696573393625988277329096219799964358617683710351918543747520890546377727266513617685292618703776812590719540077265288125825707466056694989070671331029811893828762213942122983145961058009686700025999606126286887304040711811811558579178857319776021863410447431069866317872517326239122629369622044476126353488521237509665808312646898256888918724176078839939077181066949927557516364132681711372055936884526041769379850366502662078397941654508637176550710148751749371506830204618804824992624768584678136350961926942645815247853112574525667607407168842212574599497129488853029977006761610418323330298682602911800754538209698607945478456703607237927842990453174620254716806016173898748797859827858634285937623293609504858889022733768826207972575059422206149833766614583970940162360504919382187525821898577926134406195489893713427275085405139498674328793638764059242012773793631514883373386423456839795694697465542496578874148614363904456408419242339672363006667468942287811663654585842756441521799919758013296172570923353199049535583373852659278743235151150958813109327667274995376396533486902107075964987298112647615336292210758606852633630054024456964187571393595030158423601880192181968746493666313147952594263049965140069255776155861696573262646810140219425220951391072461914161144648288255282861775589066404332283493616384597070302492938467038410275906990889584716919172407136885987715529903522937330697489615818042777659286234459702593773976326930363537156245696983654896957334963181668975429270438679058101572980817099755670251537381682553277224496937693522871612322991988875644693266664926121414978125254927948030053891450320672920014395545354269206889272483866815849362030691723756952071714588074648132311761692549170014091469499974570293313662729716617446647139781714080913625697568827428186920999713617842653797258096073720384154477543211688510880504358195025030065116467937191536674592509736995632085038768674597614127700906096781489386219981041406074833661222777884130614027419653212038873510189911297063574270843867759075799199545373880618828709838353143050326852100131858184641421302259790698132300973025813513417903694682414023186861455289351657619679177494485268543995473995696982705404110267233714842976353576370115736892862738414136941345952307151984555276787598449277871416659426963013973349405918556073242875219075675114767865390031120544979077176194845985894498152009539482909284094864783031567380332403285878722316526435552795273398087692496311855585786732062113327526849953076123985055878968261657026318363628031662934989086967571813338365124276387827370863056727692581929121832866611424145585964220165119981204151679745840911405506615496255440702135847165722130837171495478824054363453694466073539027640110746662314883289433114417341523273433423283483223446274170919080185675053976758039368713019859071408221366771562805811550836089154053138402057622185710918895700209813584670536659898680229187293650831302594478326357528624489616951305790991986817471594121428924469581225659115474813237364193692686066907091748129549318567343023395480170022135095001819428581983437318071632188283804975786843319582424222669773834431137390914706299222386615355185968232026866806831194443666099033151828336845996844616998998394824806304756253891891299726785327034995810893148287279270292609879459368971688742811602865561871703550967455415967593841679839037179213178414508135187886899645413397781156248003075783508376240138519315997695056718893276516090436457151437050554715467839237946162069767962890057036813403484579163929880530049552762531482990537879233289631667041883889445593295734157047089415912043136612671747202738110737016541640565509749724317388844495628366540915534743215772345557080864230102439459202564572629120781769862993422676167803806627997700692744427635758170625223123723620819753258587499754759218342809830315729682894152426787315849551301545339057208578915146326166934279644093897153978131062528647361983030670749036856904498598747516325902790202802861260129007115988790583975875557052640104359638819896626497196881967543560874182024205602495518382701717380761636939042188457762806399217923088788825078139620709234494651725735373973792247168250580611466677325442423061533446832375863302022054909992994594824388505076504817470168380927758489863731920324092892862703515914105627033456500280557796390010967323938355475688268724026026379619566293089325110955816669581252604322927628789852045372688140364308941890796355208358575211725206753870401993504200182135495834439844197058873973350690042077049561352425339980271407953992948572172739829009191333307098128334846745747399406618050656640203298591815057646787114116662342470533239894739689245981019753616142785929018547714130341734865213842717171330161970852986684347952470880120968381701055344530518795651348327917213397685640695680570265005631238114713036870773494090367344982388653605973953851209283334139635839251630737528834227352708253902913402438614521841864421952167633832973071350554787111929357114214046993742750408806497547895063639908952252610075393906510333490767727531315874333328229462192810125818656944336771414735226092312008699469300283718241805871340206853633494166946435498866438812669007582216505053013566170840871532090064360142888918279237071619941408008184054225875253715517429408747555720039533756497867739893757228946573786251292747082691234395022365044970721180086780101215434372376878260014004173977712361492931336662998763419847819455035414720815845954250028923389267703814692317588316876173528118086604780475141069327207115047090196580486420424305636810130716995384878229492632098226936728870681912595888567311116390844084656341668093989818706151833852700753523115437006610985946514550885064405519712393541740259441612091134549608509777796341348424756962164498159302645795740535972885947780223257152263345459343400247955928080696602005095526912418218015011535357150160840654914802149216923122851616770645189201934547768154199233585194849500969185510741273482507719293516210718602665892804373816552594845799211387332766011184623080921645171861182758748168469491569177046613531697095119766489516136014884541339224309891345411622844024020025460351668941258257788413390741877195000706315632840725295492283430152120727718159284165556637439333583991979815066047937021393174311927155352599020077243162854161818726090852336693595056047938121620331947020388050493552061136780379518719631142684509318551417637195317890170038719086880237719776547518273401119889856881520008622210518231250682339006276303324866902511794741652436017094552155737067018506426364445193040512401968231099541977520505393710407795809944105326676477082356548844682103585604624746441434293114476284043757344658673453344481311057614050542286879081801327945031670129136997443544147736382618489354475877492878939266415108668760427779447202369523204731125937634931958756477610774249761963233699823272930788114785971381269676859989970529589443494965455958147512434838620273242410084339071997994052362983917656791864087015907407671562433039683122954296858708305972080009036334651354121420074376368304985360326036809404064580439428582136362577606420682035169645232250488539987822662931098773529635324826192316713170354561834266485361128167925217667878557420532803591959269670671104321122746831388303267437555729208078433193605164322218991178360148656194336807382028162116576703673072493129789654748729149148262470950028217061179524719474521957762253789736560948767001991852037219329497376099254976412692266401438497950724697442934768977722875326191431505971405450540650377872250567235722467623094747514185154530925583314385916123592243902198978431379767303725303487099546984804613316584865647913498047351134433626796104429807632958736425234872387818027478158342271294141829437488269619488348234660961163663438762553759892144934549358991990663845842502305326222107338220276149711986300300728846122544542534391938103235254235009684144705718941606140748723850393884784480443978710557207857795910242449060238383570457843989170703579811907579681499042490490882925599808862734872227416956097254563791538939591137826536023546757753052737875943149465789590631974185390563947963479479061461353205548743954970128155855158797935033648647662919238410491040094646059425852772107787842301244393486882765671271134298939969555759253154469852563699882747424617685995780349999853206615840896042437279392475771693459854258148466543379310528637491831292957226809750557932043139882313535796200143481544988756298367676536384550126262858599772090138097006100883685302630223112155959496860874332909537093839528042674287089056188462747271641900777054886522631857411835866092822575001471069564820570723954889221572510673032222232451922753118970006194381462272515635092676203768708371853329781390221124884767566294776940275959326309373290911461077428379985029984182461012296763862333831486621950322263605589219458212196011763670149331803767073546446023369312324077850120941011599260997404892216586956824490602082185051276889120707178632063368673618538128458666787722315055577754351380335964283388858498602026707953295141752509562866280489961494480211888222034893292197523625357431683750516944388954279954935820140161748547837396644850327662282265948200482957300455985952049678223741413533955871600612471657443683015011668012353671612340470580482677708579265267702183091637738208577836876039954016721863419251923922790762392547406450270416367577764610103528182909795787508206414037158485711651949919213429462830454811537087270481463925265576857530255243060033389246882060937005633126724468483295880677591039530125165518554269803777367146969096805675174703275552062047880318489423704463983531697214230376255196125907896683254535854610667743145655754739591779987739457594784083409972356340669826264115400355418842469253970515424292074058745184642104354608342181171244974122753325380012355582310303856273063943177389321084644478097408363911668282616739714776953417321109829726189459685655810248331863944816548223332056057704319378317763210451116291955060329999986042638213121760960329264860794504784899684446170195130496456222603808113427141286316752417155476578198990230517532823799307105855081191994579944577471789345751872361643250576506279910712049753640556970407725070823392923910627389331655101937816344741180290543376720313386634033747796210528652300922099401008211620046213381274952926150311201481668582577045657107565796291627929145623215905162416952341163237302133527885562399493994504357326028024963953266735355362018340418051632194433664719662486365661502200406490536319969185075044342298543962890292111318567888424107396352481512753899609374702755577888575644847911296481843119504125273773602168275548747230661768236621015150810089577489233504477677306990837732278547208182423113864228142992855354547528361307262843183363478990964388278335914806481000811060157083554862659027182768347438126384616823265683606002966006194562798232477664589278471504479717787962922694394999411557035517102827678489796748402519484479492300550715272669691302677741489348858020500179388588788335134749111298205958927727034132113493534556332269353084794703631833048833885317997665152125717007188786561458499095299325824060950834722513110479337645219284727149767058248366678592178647561331494101016113775311509532579505231731096518925875861611109610990483566057922807889624240093484436773759087507280377687576257476466564815361341627303785171248063591220762792031156315100851396513216484405976838494815719046387654825595269451672048964064071384930994821943074386938643902974765259279812356860916815030729938801157048133881711179207749144155402967696080868218633446600074372998882919218046582309755980462800898233287090065380513214341102021860936896428610832658835527975173147016889250515191521821944165301068999090467873087789357718790248719524803635078574562680348509738511061925821872061608443582041394831654640572090801471292678067293041008741550523295763097142838905255063715333038645813123112968738004971129225410358562166957133268878995025306878854724517608633911224060116299968987823006947507625896388382015827898043930222847765239139411611910329404394296093711044217809315032653708955871704199339360997602937854633830295028650969818972712748154550595183332623072424739678938746554031944101409938222347462233683640673181652857357101616652470440375848907046904908875401738681278609121713097513317818902394735853079755676737953053475050462806888989247614291667334116178911868489510429401571316149444597826681745052784011543921284616746319295481490562588330348413357071339828491718999868338601282461478099605357945277693419420954801167374707210278218686958180336334641772313033712916997294347154660790176841450821297305571275816242358806139464234659904117437523222776336811947118032949519587667258518516714146407509779689804966071802194878979266309753495622249988532256090786395893853384083844578333018542936119832459578702022110976927065504348496745006145229336198232389189593179189175351022329763493546880230996139296414907675648771312732716147392583684844205145370142597739767310162624623398993883932139313664655244143478449321758463583785800477499348226682126850668361983378909467986553073583467422396401908109057069272997590794182186823671939276297990853522460774458166539393266697788969511927828174178301349457430012863781498595906078233157005304795895325357901397291775561738843586699120403120111830713939502115965992971883232583141183272676610757994984972435909861294515307403915475881071129850106369789514877148276047574693495134828302804522118976398310719688639970059362334220518566382661402434165366379303658021402669093780368588644306526045899534980256800571312241728383555948765500367893061543607805089117212281541841248049965573487734657945167412289988884070431887116439209435841661005478214150180361714805503507840925046220422466071090934078718726842649531231032762276584712037063240629108494985958107861066586816114070799594549852156868803112365467610175541598468914881962868025079475127217123871895373840202599923886317936764969767578431300849699718018941571925276509685068332373166490337532063433178588279664765729179352174139455765641244875503274742073629635604271036956333734794107153793072579034076955851540173140220109787654869408891160282151603077213239108931461940478356604155785634136101691326253841272650944310955937517078471634773132739646426831895290053995823597297843483199207396661610243086210146501153637989352690880726240721841481077314039102982123502086513412537912442248394670508664427856482027055814807667619868276595252290077217516964100154048671209986035366140060057789081430540598393857701572663327670776759624327093813230991429242316080726740398690234499049121988311390255625121281827107110887953416716126595072561658941482013959887909042189160646736855089277331772142152104943784491368765199017182841708810905141836020661983706770315134182655441669610870972480461705241513622966127411165111025666346426651290627397570753187926196509620021183456842944168401575869784553597180920533446270342903533214727612475602581291723711213079315669123957209299714194601381967365002197482201403727713836772658186294218530077009479454679848554164185092502690521123405074832933262338098448221466687640071815345348284446860839782794220635295241072369008880405536735579021431379713275973964289917733503997391883851765525165303341620276464565934740455272170050176142372872001823413913027629306526281103231814605450145569724990645167818468518470568652889344013663138933485197770737494100213235467116881401856795108105635470796702503420221721137828438694718956811256120093763940838261253667487503808573453326910921269747610980316866978161276042970739746319397202694049423006890188916413442430753203454152578270748923593129132061354033612754472867053010483132506697750436773646948023613108150688496138429394882783493827455702356116266110141960534828268029807042524487442939225170421333605100205094148632503559948277201314077701865178390143180170738936364226199428012049712947852809207581475465685723419632849730012269393674803856894868951370362647361983028979727403175265278658222889819332705777784688204618225290771313845267719070998192406389776481230422734743233947290567716173398510152060650032813400707287745032319483612297780530304082828397035731575585899395936668836152255363149670018337504782701921852382834841322309906125376721709288138725651788423411013892653884304668896151259453289860855940038219785193213317232288206362590856297326026748640397288186942226737379680651771199333497090550977663475444870142786629505437521823818164834913373317748586729802858727905527550560004628337925534546232833653628797228078633250666489849363282747807508750622202963597078204913557063330483898686175842723609348453543699103453735766783179664036287165101365836585569409266971761034872660332052834803391661300396482636856871342608716676023021432515151180557663341145782407389603089070484538624189052041839846737046726625535685029653149456762858642748570981811708755555811516944200752475902084809851846034960427686539866911206273551421859561132166489932997821065815077033519851209698698837408790806757494031304426714889132103080264419274335122797477291658903774426327424149443403268410424779251289623765527446870843502435575465843175903480214703738302230432773175195372236563679337175246246233828536893783057272867380400515331512860902542204100876330398990869315514587771502308728391374269331412497900105549774531467012414662780227937047979203478452571039657579337478154293790619245976250226073537367543558307756659059864785238054733867070017006965362076738799603429756849368772729792888097420623230006108310369499213592339877409537940836866991237749575807410945198428109237381017913730231992206014236041885379752139181700882376834717753514026546782858596588461932050156595730651470929342012438841817689886616994638252063448298074294684948181379161084078928861292448169682318538296971944258865323480197664923760696692551688891525722078605189902573559841644122814519816040565696574644716367533901762910643313589202524655496855199077475388880127014997990721815608694987408739857039974651702543967318652235849057969530526017872575869770756421790448898292722411408121974791204547113756903092413831996694484926804932867891094528599110586314677022797110652209449695579769939454088122625099807432392495631585392929510691335357787485537695975279436981312253638107074543151317925454051813971128897070073993242232464817678038708489411341840596406897945094884155444504012912148290210815334920993896835412864871380819897136569521323655751953167526485220026087605382806397888412470531295652945354295674477954376964854382607372779477121345956709273585182170794616476217751581682813709194149127916348975713296544090983118649469817062498261874222979799462232936838767251948654377863582041978525625881747215081017212831507891948896952002533418983326198510172744345248856094617669856193633514900206433320042595190805334970892053168683603639832244119695094046988540249134372383818110611620770666389214814206197226014874745724056009328838519895107819159430191227442443232052080946216544157387996923374534920374248874992236171294272930012711269013462529313976052993324465268411198726138139231197258158679860667603133391428718251160569440299813517294301456934036028220593373978963025462962992710057155734733356966366967077869333945266398467636971119220525993468158031446095863780188684201440793229967992434278638446394453473203784694493148220635550233463445109194792142148776507705100414806530680207737996563153913864104933436141290724603933520783746263325339666540943929380354415473390117370739224446957599030204704950218024780241096511913593566624913390749156817259527808064635021658194641408555114357572365354582830295267996248318199637574120536821783523324836124227269007871743333001068499959152772654351377445706812544578277701179996850305456594476102666258944435851465997128516794936572531388000374761205085339222066556814545659805277916483212878956724551503694826139150108045985509165117991409104459900431331681235618021890195668169605044137245318934995735003525560504059770591351497984424887457682949183189773845685171401708326107762177029424658726978830933824416259504663906468143152542971635236611704301123077976356951476930718697650492694861549288586025305091564777546496298306249144945955582293172020648558671229265720212107966862851393683174189339976193346520426659107026852150531746423421365857373063274549738885677987710922320543008135355132503664517168468230698463444403288300759672515281044525103667068535852389196822600564327619866964240861074208406778715496458333611841047614478865281236411276852714912256911302584942539831957934067348451162483671403909555580638869977831543650253932130374819852356811329929132478780301480823403238903307686122164875871309357286812771207067140054155942549747409883220451308765268877000621986614041791300328727821355103994899478998500676077901127318824351508727271313525428883914291539686427959010619219258865356442021916413831289496077398627479366633130270277644657823003748797874908861074095670406347500267618678976395719622906448643582468940754053425354179612356763864479411586960534315053010823106702466210960582883267379103391913129724424853072882989178610514448608260072879659794868435746804323263314833187240889293806125799036188463229570902022268928818855053307462243921240900801142651261074026843641074367893512458362449458653804426220019215575198014238592964428003964171158603092254311522101934484702172765252690607082705806180726488451397336024911520233624156633305152235866618339085247885575088754575372898666914964342382060729119254256925935223813067736988615314556350553680071660520376257704168465355315440300367334098861226514355503569436493708511245794692528748338401871514681987690464837578020252212833067995494332601990769819741239556397401291872482274348498286664303389583157234164055524417959458632447734168095686217084315363020173869638552514424106885552506464893934139330165588551631284671282593417436468657885433994655399156528783269231252307085831251852392039681515414994833379516691876503776808058701137286569206635027034828046336069620346307860042550089517801996075888604158726581368292673918235551757108725800956179734738711568304154203747640699139800062724590985217822183749844671363732835739373732351261462156427119674041937857865384355725609334369236701847781824239984984589491324424390009941225565206936961489923695849845346623099514920278113028306615571480851651618369742009566711366581117790877846767846753700272671499683683280820461707178231831694275267176250920257836919771845160335651295656113854459341881430396073486517988890803531784142221757388099574144525688720930981004696872711830939142546332610182207665957196881991829558723940324255973939273924290660853870547760074735583617625580813823459323547538292370203628064932730883591022759643193725856796767047043136365636832221522371792546290552162868520270936954134369090571657755121887547574473230013318991340170549838984115942617179834138567789043669911237127957692446920088910082955317915688755433216151668509451474949441621012274847841226500675915536039773773711628682562027612930698792615348815709972692465465624982964747438540356200272996752801212383019989555899674111879826102280132180440099344447842906253332814994716327704080707065687203949268148224448890714581479151186647539086418731552715635493483812388395917092836207639797783716668696464789201429988294305779039727990779145567492124883360777395440602071829822500950825810853740153957025789564230178697500013370444847969278493988396169447487071333675939357357737570647875195836798293728393965874570721774883098243591239827328352958969050249166482594560108681123139018053678260353854442296168932944863875404758116042316696903682287533797606059327726397186636724288577835235187785069816927903331755296865824142552157303599224912759137052314595896388804693954913003882501909019792210900336630276024369789688151217636228480236478329594796723328032106743960725432277394334235593417219050851401969646552296077681411935600335479538849723111945583764418373475138317572667031675715436470174096734265739673950179202231253598250024603148865594910472581465233055998108454911935231793626842732009902231154040780367774856249269642099769285353084084234013266875048310606152882301535256897979036673844938443154017561223033761084290782345983306427974889405608806743603146525427637418149095021267284218437671321338157476425137986457747314718930898845098090836802739490749170258082245979821260028941767767976379284380341963803649149823395821857653217095543058614825058522552070484452022185202174006827978332558623424318718945489118849928985175897701132063301826036148552562365407812084848694455480824340106962587427917009554618057900086483294035124861317548527824786618925667915605024543485972640576766134570954082476242152650439781804348366598811317473360164968827910822676825347108888430383607051358060181240334573349811444783439817649879741783385493037897295561344994172316346641517036434330962773005687293791306594357054267091269128726844805249769729211047997532338190117472446927833267255279782137220846178576818455235467024814633910292081513398031704350626186108410578613019072697282070603446426619407858914142150255723172617329073341184472041971484153229228862439353814656372003770556116077274864471994548829434701381363548537037122321886529312241712977602262867959133836675759497518098101193182824541956831702948084019538600062546442639353156529615845901668828007256456858811054229395658789308119736352068139129797239775362045728358532573705660462109013813436250971402587847573045999644231870084964845490125427885679393920192010706073104670930605421268242197229013480581950870848217574031786365736964484728417982572875668214233800225376025897711108453247663769493903902166695485641323194992678711067813841707964901938963476685297847876333379112373539269140992157899048668059014267527056952101343046209308192848415506378878555959646367608521691359952627637647417135341551542354684760601449406096274199034375350685814685299401279292645071672493609284778202387356759034062050626810782764390435417368201699581668828121824475637776398431501002695845018754315382939472498685266864193043693385203407686200089741743642000010816270736072406577456207531824041581572898601953602596123974611305494109189818519742111666853957917132471005541099056845071218224977639256469571800248213487674261647008777267510101231048016533201761881157409928162829374674915413867684432831626074078062334779761002830259923749533500701243236809954534734301874375825510368965673283561113677915028016939988920402393263865202522744338336824322900725423993007911480195461835369908978328143972868306626734842850837609786383213612032054577711045776095774302581370158946097569416007771267756332378510956372486050257516529969114747921617022943418669903563851051925957802720714422993181026138874174790571128927470296373159994928820861294132152768805968953530170430575570774099091564190639235460170508007048963091560954404953907790757784055038351864115493214064852878910845560664767935920259208232350612004733259424902605916936728871681586101786482658177620270967338907186655894040728790236253923322932301854736869181422560914700211850637307668101259214198472826444256398671359372523882797008208283029812125400468774880446533358754334722524106938736612548728700749333885309412722031238960910238558603010266321732125908518790904526864313347363234254156352649567728876141024074799145678214171548665732100898173722110616129508519017276934803952357153244967741661275998576030968270942300729343404204621129364437395091405986911130093071713805366157267720515265242051510539762387408208035903073596167428219686455428377452228845766356238343564734366775953780395934101687733218609869109192139635273327571043631837098602663365002188488390456326176493734671324347893324498571784691320962234912664766064188732890211455666616767287215736247901038236751088138029125622993672610551441712448425785189061880327976906565941544760345897276697395820100695563803303666418812293291409008140077786725595643726382421753362424156496470656447119640994760015282698106560414212013862226706717002419584214512426420370259345058155699625499821833768380267063323389993080591525897616229496154554086175920447020984020147962831785803996397949306002287986801099855239068219736134394213255321829918213163115239230427893805890242220150441758404221020878383376737710455256811568645760430780899238925996652040904960219751277102938713876076288192682624131366039190652892734290296495668198671970392168916018880669385775686927867701709614956718916766621107873866268779759968044717718033031437856594252232979858062720820395437337370974383241762811922375579710403082368307272386808358618299964392418483679186349951959610421666109526288141791787520826706786520809048123773439703186488816058000547305434399656633690914722634870921936993614812546473812653286305929486207297566948281923125002735191600616939489806435832654775268820193389815054996055380610937123050433543466427784379369450138180889856414180319372667479796147067717988652533489837990194727436110997482563306051557955835955783328286453079721098798941548035047632534249122511238566912344613606449792117030947667144054165575793037072358961033806620132343557892967593295638344439604369414203077748240905115512295506692037319982776549568769583358711352625381807637089885954690191371572344733875839476283190285321619810056392130397293850016274132145881123171000463052711308366486593164856209404126360704095414563316426385402220437112981077619339051893352851222383866432092295650773253274660037147963314014656773151977237651687147438376581986585009320455834217997823309257715367311447935695027785916177219991032229751507948500292309095534350905567384624369858827820909236915963429919608098962945923813217471275945049536442928885257836613562349911488707110946513622134177863367976282887444247574821544213516281127133000798902415178219636106245444064399728834264022508880754641835733328754532309272011876816576590303523442022331869038956567939734211742372013504365159809347198202706712839590943534352596572734599529804709783597116737817731754416212944387586024165873297003049824358214986297790826837856921327142783700020259045739550450170592949331503093206109033878855641871990281567253806688549761065963009124365925566073105499357607825654929798730913370904287442100389392634104359729910565513119020292323330961649397414960081450154322314635915283105763626425620644997143869437737974887695821511344688263648918610802787359207155891771350720719558504706047797398826922581918201854739596053528974381883440526001549685102676120125248376001285208924680505671242804222489659167136051886214926646216661451476503728327682546086670687600160670391670501702110276367639332737441711151595956234792184308776461542232229903519271136108593661647748955964873788759245959137578736550967744888157442401524245137307836885560553725663255762691092956733718453062988717931889957882094825436310251635212065862337282444748470543100022210782833552930728468586328327116526019796309839334511931922152757286479963313693296836275002147575171261186805636579899600186064349801156174563204034275334404674204064390454754622345573955814261430525845451822799705544033710268637320470626220298125273684895335633112105997423913951093337927264731209904211666353725675225144889181874617765339642526919365684968146088162141256960930446633614335708746704860789665362848003897517293382282934231080111885265160101919028890950416640517013886579478805646317795346867440367879771847698157842264446507030906366284910870022777746865805793220322945214976358890860683700964928233559609650149394290903959649074103282937278876517645833374291251158593825798168759172463050089077096700795911852451047837119160150745748463879061401088943887302700112922604029491354527676779306487267935926892519071159349156633745402225793304145228068218333321859504015432232576210520678904554737006354468940400788334679299670548488361613875434642911245098352167482741421917421368059897994801917905658942865679808605018166391864849584906608918160856501337159351820776191437877728833336995355646290112652710833435237128990947897541362849194700776990317522722227843494472781243761465307215831663712354642883494063706830328033765006816326583299296735730469259563588574227013920312400948786036287633374742861999298968263364264808737276916896761086183818637208255671625932666525889591792018257548918529249210629332694024760451089002763314072725501628767664121255107978213310547222058835804418346340070630032146015213808402432104496132188079206586196813970398108111761509765772738063136016346631477922567913073123119563765373511806210859639984300583164119242054348741865041809806754213215572605580889759075495369951677657082441963005724772403197162056902700924679155753706214161217425539584901283676841606989168769428375625562976397120644760955539199169534126765315264113922026396610407213906797162771799361140943849402902876240129184604858959444296254911197950211651740339066432036497471340668029888379614185507916929331049609460656581470216948726071589693266126729752678858775516484841189777753027481122062200751948117786973482147582696793682492071610752415027320869938292388040908221698293634309171008389114952143476449893691562195089921843687285989374777237781643276850151717954936549313071630211344036226230106894342602273868776394438330813459995018504491732852306620595632287697041329513913087700598056800115943298545274485696132006890254320427419665584253316412322181790404338476624668722900876733145258467129400559745508385260277633380840520311383321729814758829353498186671454700376820909442770000131465638992184737204767437644801894143564699402322375206485885196045305404017196000655610239699767330246381767043381494961965139640848113331503421728172012198746631691335093407912244245613280352255795375394939959162627769526539462432639441776978223719064399866692159017430661611531642707735610696736643151746975376080535921500391215079191760302917630936241290824239855640163448820745788814750801909324544388491427078759361244940231850078203879881284839409927869223324605869847607871591116090172481126668147320837552064091814600791122525813992667723082153969350944639110150915538945882130774485032307540066313579319670669426632035959976789411096216601235462049139879174062071855653987904375793533688648765396170753506232900438636344813154620880043081171214451553655411349171784847935759565326185878655436291634226726822078041251863578759332195403365490525738691886192434962086324065713628333484091975964292876843866393328357770064983689395532864725540968560491403571651809582555226755638896823857329928527521619990717625144525774755240420908990188818400668359998866215432792111635951724159829246556525744704448463535773744319798160803321042059838682902457200549982187175639335749192848688567722522977900119374285418886072747503780763479379851478319816419990037123745860156631737684909804550937270092500387442776071703617591366090396467024895713940169645331602481422499777313758042527215247236485974926305067190492815899952083512585015740991593551810848402900244844906918565890407391639371798958675255666696755330776534828096610530847900065844768510335323289926999238887950477639520540161272118148753461330610321541404135034098799188441717717983439724113219126167029292018111959390312432194533155267171536169955388030117219558291344113943196185448283853572113439553424143738798609647014584882494633965022510993569865152820650178863361577827658642969165875358342884665849178657656944402085632246214482841324094351635760853912642642986242387468293298411946876015071715598237423540332797196492915782200474063042346384305188829706641544107292594483816986372698435497111863472623757125962912271170461865589676553589517472679222880917882842123005681439375946898014808903257369060402352488433586790839003264002722516069949345945686942319398486901556344128893171628617514641421355465306346139661634809207245093924534364439199536585515454035806035880684281028711500810996861743951883893440147212191569210926090189785314424135902581162163421307480822480875797230236566530184734145571186622682377682772023382090084625513884810987197237111644517179663283950503127026538965246238585919907694661441999625850680695453895979036917392580726373234757333587198142374724739929685194768448057874223471743675893296979036233383225317636155986477274452974580168621401447607254024421614817398089630962715545203782511270253766559909447653850412887664978892764074579560070406732045099534915694515837619103333564192051565647208533232717908462278918467441662032935128323391328459972825706801036703883353110629892457103028500849216085196919506360314492662953655058406085162724918963200399057755618169536282164713979215186405091232948593499119416506864499215588448770730339018396658432673915744462964520289113351906755996655186333868720895051315394933361232505383972600585410352730415060573619484070823680310840702758286575927307062753409742722750882768313921472282445863307276704222987998549067634110360199832652559029136441992663255665585939960108758822267491500267625968483131620986314031380269050009298372066578919455129988293164762492614587987335676689023502481867634031882213171411090300362342144717662001360378939087119752090012262477326104344216015290557789058641801828412201043523980880748779018877220092215082223982072719847029278516498600392881173913730995859513434471178186728609105455743902028232578968671453927169734562092856790291283827315876807062082770535248224250489447193712745325173128761706298822061957973039078851214659639666295368555650109009424571675212295020588263219193108314786636947528554993214707451921237524096108854341236112000492301108253761349651162890546557378438887318252589171825571828482421843597810084541980782866840276939822019363679630895317420213077470359755650098463293845230521220057892223841926071253315737858169935770859777492179254866566686749753810460584990507288492492062221434279599858427140614595899276429285272992078936041070631972383506556680397313158640725091923604299742664307641431969490407345247093113811319648007383388932367614681706730624401968127049242314475042734323273257901503265074572644535849686303637990468798693582821290809525410235690476266541033623609744259111904099225895327885840149298986796102584081122715885795010085387133802929171716090063652538144589920563032063262775711306494013328846461427883838975820785649048596610769542672551008147324695542346680339358351097130222370926292546542095671675697699660534495130751768306002222248128863478870369368420491461294227935772297036815622841985007824856737449284385083713570734076079241615936836115511278472502623486267227207616899364803109598562426898310568074571148611014854173604281619355709370265532205898215515565744457743892025906683614262916100827964300744426399375384197970602916068112466882678813736903471024289539874723858181710214412596736554958334357591627046357410350678536821006056048554729643124838332618025536764258275919967876381644926381283529733763208208184234054975785661093688051044659968245170857869519615402391496840231903038589643674340255445087976455492641965021094374211595230611314606641765450386179552073448635549036647603442254555685120162158174090427638296307470106979777231440252114882040538161552442620503368136880105138758208480601623643587664229329434796177074545428179788810676087800142863966570539911906750704405581316284788169059306545604531610181012112720364438477172247601214743635030944337417920192384043043220994731861807212609743767629065527895149981636706923248609621336165697728002367087235109122492969135792928423297956618424565536471457622277738680950149512701949769608948803628159754632924134419826202882879942086270525721642520125956036264833799834801146799479428297547025494120355373073038471939289620106108747690308029530821841422880045472015534700264748211457661752032356744548770377641153006439763352462253990038022125645918733774882122265227069731966403786506605818208850471421127696828144888113466940629868275818074990532332687987429721294064887484945230440812509825421555016426691639245880981669486174419340043037221770823831605416137252727035878152448120352320766504635206257248779801080669400432666665132227497453139704069303401460376454877513395269258346898257937339529271704515122314553688041334152589045765990697810578091075951626676167003478395993861659775213559042894049598598703526650713652517613062117958711458812371194756666074331983327205809003363682315689870295699185860874162583934099370707129702585444694041459624983565930000903372214878068158530302719855178951256827725899444545805539502021847123516931880336430141959490494197560486056999655626997414282716695660652053927360109115013428177940083837517372005805887684190221118331154219652346582084095538188921758001381812059447626433853028544551831757785541878720256074142519336722957370015142385551291811623472001983728236012272435042694217848334820596375007366646779964160391747408501388502749134345726116537988247883891040819719351478602590564760540930228444854638452590254106668296637560311604960348503044713782733659835222814083687266805801234754953766427986830312100227619754259121903835117784186067548652812667546582799382084017065858834533217329597616403224160494972410483002546639129197024223556748557009959030141689600812758554808121422681366552710292928826324452666425241456699489133973239079429690125561598975956802061689436337943686355052349713458430375340035369520706046140490480266322365087292390326154205560194376063997143097552801541055881025935514186375585214539430178243882881218495797466406025668072118446197730796793928904358257277482300582026614022969771096515628251768610199710544681688160049267138480782358840724775751567049077896711157863809593204967735202368446674700035026005558102402637926325402162061668493049636526596493744016889271244663724147342660036844702314819300196523115290367050173830126453662430849633592398502506889598602365602706433505935609983972024202866458718326316558609780101415253892830932770047217765685658634538652693106569167371162279193539326995447593189104641674801760169389292846420407474239770405846340611795463199657310400365469491617181066764310932189949347879935791499028495332671949782516949153476652548012931832823158237130514647487757916754521045727406197424172505527262166675091718107213169105952935607158253457821674096935772669377499869676610900739983257631424152029853794975516726332824281441830078032789344366100053446945215031269431009639307827950240203876374202970538886551963753619924679599493344672695899800300847214481316501403437690359097413367018652792683276272747459361357978686750442520169538103428890395334380715627790708452926522359679551867720900663223504726255174730683900288711966298835955843206243892451335791368907070241440029536372817069843720039348548817632837562495078235055297705314468823563695067722816871822597844262679214862448615937399533078308221031823666366079650605880258071040292125400094017569634177856260459181905223311458353895614083643573658027357586156552592001667995364575984052022347328027675414982259162067765189229252734334591530301232408154423729379380903910964154902033388675969628788988206050583045256396377965423834850173171838503814608969647729169168236231410908859235864592973698077427663630881840071575520383737678192454184113663714591591974483077607124156595992070249917049124433805569978173498916921462063449281972767901159130346399282898055710694963986713975090545950275477376408192591840858324185043203486121569702650749399709205182952006343135399283235389034283257071423050623287777465384146667564906583748842548909460253568930187263016590987598126848548768270219304403112903018162969641840143755104221911706334756433268346739919958900557205570400758790544671009932598950075348140593099562330788399717078097047902377763159128400874429958508158728586377473684987236345265000797400050688693506976860519308871528248136417352023347707507588355827922023261123536202983732354607656630478165408626685442337893953564032422972207447078879080834362015826744208289125477180524240663581280771472485129093382652243196896986219119749031292398293978343697624045482566681102656669770864034008980416337855425612367010526195918971451089987212715146745167335013212432002431111306026427864908136704998742316184626907783716661524181262956855486059650986492446727331201333625872958671242326525898148818489576027150905590555381317706846246041266620031069677843641179716047871880424396172538329717301334399244411418361852174581915016239047954622414415313368913814750714409505832144591770451167068511420798115679781627913647630413521637207044278421358443245073879096900452482627432771938597631848966338178710362577898471479797546764496003232688113987892402208881639305700871601183644410470538048964266839448881781521104005838131585197145763115093615010710890564597264880828753482268369967922816376583982620312422938387398893875926886568765611805425988844051816431666364483518644644187851448500560105063892094688867017419279880789779137992237643869141415907340333218763300170278497304208392686984419086246063949455247732089448525891584560528468749738951156619796096961062664355380305943583977863740697430550010591089691227410235155458145103355230327993271088719351058763521129376319319533553161473582795865481598186198464731214335704692687270029252535919331253397579157311696842888945137313410214973268805938054123181715686882225532640345136220479653681401956918510947376778345421852624401400241591073908743564518247859813277592989205036576997348190081820592801556736007101816627663160517304963624472960293926477581116313924230488556398916886483582004587031675183157552048622712454036857967187557501325256721570424436723413512013965016270406370668092931968793342907992885515880849070252867997976015091008662013744671882423088033294869251843692146333226241792184694952887859964350716861831621867380137894153043558145306665984286786432899454065685076091147702150990964146336576896438327157032733113146421726153652664378708159954115093665906561861727109422041166827790219292233841127995104868676999567759627810942887118079745068534171814546764278299203519870321495207117624477648787164785952010635536879504581042282702742924889316735217421786147283251821483019401589990784395783038288379136645580359940958036216718173735198076427035171015952670565941135560325322008375028237853076451708253710585281747235146586833034274203249695742234030842978864727893960136310947174170122254930832218825107085395964731379639119604397679508624186705310044954034507708899889256693141602292263227183782535301010246265177879562536885519129245264056630564334924859698764699145656441348931716676191754831784318545908521913632439291775845421618817780525798456221508232599478716179914658062133997405563174305899613820973371799294246222858963917627805761404370653885506055191419114593100183651060390381980251715901657016532877895100834528830384653580394730509949707207100092151516528634738346499961096897189015292108233414294459995735095340839276143249777069597236130000969151243680356859231729224553952290343328447225140408674471099117526542134498680336656433852376760517448735690224675055478561593959460694404289970156312430988924232472627877956013886249917658483511022532506396929258080214379432718196391755650948068575999212537026617710110194085399748212719174319931267087522708393447288429483186927617369227362412987808204350390831621259899401466618080168015716767985047764983683964091700073707022577383082347715465967766612757709162372551459041175734264577045766907638205466623595952756676302035914264629370871890658821243892797553426073026682496236663730332440172772180306504974328126515524174411773379793295324036448887170756658475271551582349039027191785052329464819706322790445827752098061286820947732811808963945021761393054396844976916552286468464733282172035469079360770556923936804937451509442353893328267717738112866583241674668255217819536531186247014237855451104884062245667742703003883684619609466824307421410547970419906403749417688056262003093223364668393618454527017049152504205995310623345393717871509958506499423486371013623869937431699197022266717772434373259270825651753828825795194094121227694367971473305462683602845270919814167369553699545535690670611337588428594310978235648434999653926807416419217795328587956325033027902125827398701480411241074643328143022018488518760746650960742323181761614442365664845800779091444190542380194904365301278564398459526852528292921173451057351842030917930763918818116518178744868617950844188212507597229424585645525137117181604444310522159012189348285368748481477311092245707596867746780245018894774774880211819153123196930316527153121518845930389447045999677081337280556309682905847417044857083615462736040207800745548700523912012797921430483564693547274973454816622771922171591906469600910374383694171984691198845768459036564954158620594315730101618427763668010852903342136102985829041945556398552342323180353005457729569994999028867367407337778309285920520775678391278403094872921835411091221003529283986848047112222288141053698401826044444770472709778620190112301916775190381328757899753380662561773794759984186762712281105964745649665278847849295679171268475074938010718686059633992494903011222687834784724217803978612784067770471620764775994967337644739278079356613985477260797493396031343589953349662352081583476629199350872605699642912477008533548617160267856329150589463837849978313620203046301892379674709182298441158259274737292702427636166612343671247183395189437781430431345984855502953453990112872332720931240684452807540492430895598653298036541097937692293626859287793495537099848678648269611096668282356208687212699651903448989350484784587247907959652063334203897371395335510792718859961980549169885943180601180529673920867318255359525934654173751258852719267407017863652371215230113284222605375809582185848983210263272265115605427196255695461440909354160686469797647974379199238934687906163571012583667731917079725840547971628524558027995022598314523262098209834255790212199642050483930897911699354387380787773746207586460375521793388226550178005345552245079804107462391842093249777181301063381410532458236028869029984091159597131371692744909762729949365487646205393014818352563142564848523215465876137777865133581527477068666602865874105240303836479120823484846658333013177969513554499651408266050712352687249665595985130029375900701062521114794610574316806470677044516527137309126421407727514931680045472125044331239164218490996801005009311150723630114824967750083212817701228523947582746284384148156405826372998930142483118270812120831858470937378228633431139868127110866246561717548880222104270722111050909369720395381184990077904203497670447555688400834186799249405280429281032345197451330883915588067989703437891568226289314894162183515223695442049737978702932892218078392408621625449999874258822729566335140671723062320401340239461437083737452769430698605352975516442348228956670592804671932018255830271636462395080137796337940809224895603778371180529528076833157750358289407608612455787378549397430880515730801683144123801345009156114247843198939660880615084220972607699244158702229011445868664559570774883336534850084622513225875158106007829252504483896246891053714688168236234857191363476831209176438217614742918166767773711786787544512583639781747894130834014126634855288926838719380220803346836351441435905816779647908594802821878895685227244531805573422185539392277311804501370152201920754825933668052546047756837085556019902034010673083021156344839466914080713277046106776694582100628630718533727029046829444798630298655479829348591727014969195433529361242257747104270776377447613225877556522091932014803544226240277207466566994299605633700633019310792524972467254477181167851484618440163481225637439451416649985954289022909749150299132646445532299762363618953740597851945818283496350652228393759836281010067578126693193210726667424797411466588851310292008023211343997354704826307341219063552522189409672877124307999884046161584179790853428017061779328911993007689592944176608604075491407648897778087371267825247419774019300072486926295286300226777634151086262880973302845258303325724938612336620828966362480605655923734867856564408717450929867385456870784583211700825848776053538090071318081138486333219545612382332233181344654524942781738810504540554960595641797285359245199718742725294291424653579437323339903907008562074305130617272115901354378391290764020855474716784196123009053346696922980808575822742650872050752079124300860982069013985191650727187480330878317685413172596103513443785577482032786546374322511177040505825732878628094478897080539102355334800068838986643482011037286326222581297250122915901111268017056953855027995411891016298841780523516580312538974777855517805663813371205441856686397649769694567275238372847039551746952628362379020137000498570600265136797653552564884609589088161786012949841552070368078378388855595936244557146622859583682924909357169941828104766930665357677114252304350928986573248653474745809909822524245355643133820369443757222173342040741649298862603939769378755982548460622389093446609813269968832065034514944091574758059472282430472956523172321625201898330016967052671028280860401788612197163401588442055064442976217228031142703771969692251993607420136292859132787104776979833416207747890196898555771657471298544041101825061588138642332648425118780471166877048053446789987920620438455918893481147308894487867599010849937913896168141034418093913577405268167386487863881768220957512760213815495136592329832413965378968249087415754909246854006555693442382030447966902471950599661411462804225041030102458820232540413319254621351182375588160048204642308880105145553631863006941151046073809175602514682976216108046147367123247606871987956677541765359109788077076142477636141107158381706392459222988386666776607813601430183616231386426253364146554465647834796457203321647944732834705552345414511464393830954151700701295495661873926065280689250763410610165219457833816069433679652752018669483866157776291352157784083110047585891728554516478362963853383613360365393280062590412192131301531343000427133783813763735312386200096791205151257784656583222272178375795216739378170542585591914571419981870565623596944678957287908519255585745291574281293391393308601105132409849320842997403126973764463053967711238124482233539319425271038113955859547781183521602645058261507910663686207468371840350211441341703519291204133778505456214164927582271804163282359522994080677972731534592248450155221410731599009480328139681916718070197987070359784169319943938942410063735231420032520099391647112482721109988145824921724950752340095502989195660092011248761514712680303201801854914140550748050269896173369988450102253642308413106178610044958161243591015015715821945521511789986412809456622308856681525359539853181418661716682220473191407524724009575913925325836459134164840035766132188076965953372835493055173529042166582308895358464887814298184617618892884136027181790822035079196928378144507022890052692336387198263331795316375044040174353571069443466693766287781785832836600638201578055880754578567491270947235832902607558089432939005233164314484547406652744466096694385810109483178861780828804275150288218619404854435501305957483908658695291224370551540047359680577360020079204745653577221566863034624744508573379247404666400434053716531906031906285740796079016835526978922147471107034160718629657135847047562324124889289193507846789282350715444567782301478245263830596932787650714149904273295118220714087700648680301848056192032659419936115088595531251384376875294540153617041933103862730279018045029833225910902471429727190395802271517107829826782202604397605212477044307097181945122149066967214992495073276668091967733341643350733714146824668669177106815142558826246810444065760011731106050169990781025617826389471658758201195401184586101575963748427691424906938027080774952503613570454069590212783548297402397207636323117266493739559215638535420769821103716191755054633959664457176490659862655323258088716703403391616143691702792094744171323067609576192390132283989568916091919737565789100568404074971397208255710615849451658739341686227112851734331183586492793481050174222674097001186181122383761944940616583970606720186517444530304193431047245583161972304617463888189092790145998282421943145885198474238798055642733598499254919544638740274110801742119849749089618408103793702077819313583377473298827282859396739958264458810628753917609588540557679318599240157036194957575789291232448234712689953955417069325213487968331484298028269589758016378212177203514554292739283968042425969751795776105655297230356332452798661242219301184962048623205490690595434441671177461934875166438686921484971597191595077963195395469626145317082419757457210257880538715563770573609002120523592530714939215393595924392016212719965401373791349376273691120332361913007694086682165199820863124734582779313975605822562466276803656030171653174620101742512685551525206796021702236450203848311966410126103734703663892941511922632323196347441185568991173673764939651450698579497658228165088206633784830282388144739528302427582467983567207203485503499622805218705283000044163749397517900406871682996825085208056471039930675659327190914028229449105909765644748668056917942076196806084096343069606143056082202476314986676083460847191122527932255454999996215160242366630206069906819322767381725365909730367372863254013484061177198140652077105886028805825807480474856100981591919521187443285103684704148766926584564965201169995748258164752113648554063817844922828170934975641335285087252931906560572766548299133845123426652400458211512375823371104383760713549465630531841484371064858229604991030305643984012908949711197391459314449553878311636357114569757649741218724971643292392393999527867018611114314341320832042782134959605297369308764255158022975061181721151828794299321795625901054300045008775528513610511574538115680638514139744034418049017792724016422781228971242268509015489917658762856504287073789648222007880873341512973331588102500735860914327605289371746743557860881713661211354632663126875411318374450203531009431365305235269602071181238363854587786153657005724712600432280281249726068783413272998432823873084782070039440301140606977068125179339725893660169140653486014490717348549225023952531734329908276892597212361429384885484524639935042026659345425887810560077087838336248879197290009436834953588904596718709839142023782012782186477200021320524516396895030676252336965550511608613990500416438577069335039809827062924238533108165718085972477503473795269782188832850846283194559038868606806683778873080708179102395870850917954458381010363716974232860110844648984496106022319648465075144831699645940532046318831727627395237368202763314832666089628012044859502580729421643177144489573613284089854043668281775293980106221317566386789862249506544404573909707429957756011202050886178134721739668334995628652400506347610376420036849189932433466515030603720655747507606824692907409075224215700254913292186257556493376909444342570193306735024568349400998712823979751967905598466589895786059516472712786843940091535121265406125369113494413364777835678041070400899384502933192618333601332877536287709146849680163067479911211234868656195107452929146633456622363513177684256691214051740399025430122344751964816541386071085988846551629335244411194125666495560489229658354014659646524574084314716603038617491006963067265542509186482199435585621726987818314257086799101350061534096017527480506821609035789655036799133781301828477332067094925026682519141131770244310530793417296546291547258102540010182686647135960849421998477620889011210465070503777446789526149621321125692053644485214383293897071738883433514009300470467625828541386157833343204409140109317013502742656978490220480079953946848056736938982252950838302750395137523830428473026075318796585982627490958733360051781324639099732765653541854767545774239920332489989836734641617030832086286480291654429706789821402719046089732653889677074072976814062513143445449535420394882498106252215613990509077925062203877482208291056435637366516915547887959680974959373283949236107030311645473033162794774636983747170958425263304144528647760420494096098146214903380391587110504944112198626214994647388308779584747685146680044829440835063955184831789402246843341902298481204572208021876829771610664487242598289560470190769018544216005585952824607016713763020307382398748133419835286307904895339607850233505481196862256659681685727863952727325719828843358385521325621123087629493019889533827001401578166826406894462796786163982034371279264048360612428951385731780486577354001905375761114823974625729170948160949798332583671532551921523203067391056799400173956155076066678757642927913839511915715816942148920985143300388740521639156200993526376515752276277246242730798448853657482509781068229418220382740941028395961491980974118497181052898341349440368855315176340417764663621948856798775157463932577977751881650245386542146413228025233020640421133702704415404089526617423563009442293656513933191800099667664145963804740432462659062375507130217068965565979593562749336211011346921580543182708068054435546022556461868289213761629622223153962411375463952758120352433769829873213872189531358302751929088735327530505979560766866321860520867896409475791217749752340265971471294002580259788186746221172632277567088401357446683852602296779079158878003189128451999928493589900739005748004172025663627147267011721713234148402716757059073085713628006498978948439513898921714169383878260593007150823175127957628731512246381655342626246151500654156007676786510236081552180049090527207458278493485171348533542921884037432111871967258038764018724661839814436893686861065258975824264473823391339124673821611519873177737611187056555955188392895441572936809041021322198630568792344423082334957685799719716115406097152181395979465607417699437969656216507915843838726754838060275853453818571525011634475633736231669628370084603377360024262257220797070416879729580618926698284125207363380477826651578984461078776023827102384110201358265675995585853440816830540175540612126840367660324370682496811687114971929374242366402275715796066448930532300757739319184158469160568049479002398522408161955711277591955491044726233350551127792481133697955005020612150794462672070354141624946802982956426919496753042178857191581867964964985234395113601812644131333241216537611196163972313063861156063895832510600731412644483067719316607249275530923793132848686463747791454783510981210457471808507942927213863544868584899039769716798438524867467810477969683555113929020794957650575139250807508174703130045804669733711141928269067905576664726812862579267030881071998956229151522811214152755706751534872859975078531856107912490909165859138461704908980800568745479210897889105459378780855717576387136610379597161816114314203780781391558836845219568724578176105995832002960974142861915491180187453247531884344070811363018936201623505528883034441653259097433119057201734696720630157861431280020854835540213905651618513108134007758286986880980482716282332655972785057277276818781158276595965095709292956143130011550213261565727793681779111923433804159962932119072597546378945990169060230413116080462659324378620547080202435215993438841834512594219722182138240455431182919861167238386363501451850495626322692014735611352086640178102374656846280697413256277087471760049145433264323519219690726820789120078706582648250026061756759830247074055460418712133302306880919627331543798473385890811579286160585266848166472237347022434329016746633130740222150513245218774818287278019577599153778895909160222825691055982150479920408663387918967445902183343260528678181833234710239858740387572239602903509503630099213128336446783135371319848848599053378695217226495399520590083459620240173874135608836322475227036231764904908561710454015496199028155273188695879727223653376678161458686911455218408010060045875434896690803261990153850960563743795123417544848361993204631649989582970672747015042264981474138559279114450161227437357103194289789488429308546556482879992654078995308167292781682653115707812462927943970580651685325284988831367886483984369776056900453818685407921559250954936612446807640585573435182785664822127085203604434962142077302034684870183288244369233282553024589800289331200281038615081778318485169404225834988733916007905786057259508260041286130400812735206109352122165177368992401397834739284097835841044276658033157029389944259851654165952577934950445706786377217717277102736249098168961925663253983376722466881431196547942366637979184324242049311126366652772260869795278548590072730500560760843472733837066010274450616262407619734709737655194975237245262214385412462248362749353661042248965745676631261950196216397999422268425535130359871838487714537777188566672812700582813616130549059933386642568092582580132292777524793591058495438928790454798081044107196509761113566755912841701774429594763488127384236517546169461211335873145564546352686199502768116145958157141899626042221265833398588300090268800836300259753487452870477998468686526429739590191617523701498364644618361731855837891542120986130117890304132896805224510540436786496620860064791486995363265212351166450468332260183586520097270963384719495570994810452559949931189375317853551256553981640799950956378752762254844883094656625953059241741028070511804898797205846952291797149021407877521624819491435789430220812982460298884842974910468908840956171408558829968775675259991124638494630163832032138423569569580577406700024827539252653822230587106422319095753604486367228219157474826875155801620637916214841847050959157716518496275057543497304235145156013495725732139276586393821903451730134240852941852002738183176736025106214109078508116242855813055368515532100469560072866699201321749662121303496548659799889202494343568450035750569662212020723597423886434865300499157325818450075686458338530350668397449944173989744685928305876432766298214578399406018766089781388381271274870163677235190029317993771674384142214733192175044544453145651971795317692697000597491445610761604227179972391323141966387133375100359677139984585714205441419557446808219566208421898128359389958719581762078978326197007858999458814347381695256331415266699337716227309171305984354780615375316567683818119395550244977253448390280857123129189856372461422989266790971539504127150122474972355494193744295329866703788496347711159062125668128209706345620360715279474947999803100003908794835755105047449990400793238019726429995361903707887915870003669730081468563668268114801412170166324403658937477678760477236933492244778822418361753753035379894584032042022087970025496973825507931376923840448411832675197282578972982769885047524427144753658051843850137262582854928979566379261308524642199025777916446566366011650722689315955599456629789400858263540513532308624497007309883259760675235844155930671910642055224650315190889346718962074247666517244100656912495607117360090682935262488423562173977756275340006477819623036515342664883397282287325503273341098485443883794135828044265296926720762352415714024687075411256018066249735978167630017749218255793842201628828267502571081879742286497609512246918532706291154368474637076622323950164681691122055852898889810026874150132988034754603105764587124275482911257414128615692985773164504462479180642278574885639189421914547426676875585959226359561518661716679124290428149382636903485143977184240350715266482346273438045947504208894148214870850761477747010131466126406080972034698463704354615774954384365285174269885385674438592961172328216390897322805669074710442591590010432725150110254841000385908040200752711703072363538849931175683426507704447190265745179185282752711722558795258415350039172723454461525242262270264708668888298869405929632091404768051578678813374552747276328547725924647965529251653672981893979788716318921476721214215988039107376477004585353181599021025335252109413175677551934079298120080041447099370775941432001831710638551015343358693098753607547391000021435947148778346863669961315573500196511789471542726035486454700248724120980921403795889340791676995453935275540539206558661555081426324900146674525222300826191732950412747941605724872889421006320930320431453677932638989172168992972913899822936380216785888763512828916853024465094715488520254201647645579532889899634363226175115241077326002003110809047994191394708638850749776506818286280597495738213488718246600184569046712567004887589162880967838000523340536167625167384253562539288990055274101715789026509336127519429800400647610952613783873293516272203380204624058879480174457299439993990378039464259218355556964418104413938120517360566292543452293715417979662764150807492162963230868411981442302396598625274049446003683841346824164013551915258943863818492763972643604765172652846688993428830762471010589619790976084105644649333447868605653675928854307791249046339491644095287218161848500821882508044610270825965861626380971672281645607964100920728102254400695981230654166411685376416060652566885529314374938533111919927866424358430908709484591676580911573477077154855518067488129440171489557380987325729366423806098862188349098194952080954444507082614692201089515522707105810947470906004044796312275690404342191504992366477900162821518731858269650347074916937008771836357458895388688419126456999765939268564751397312028942553400944852503350364734755245536322401260064909881742448329965183797284587913101723245349113511435076444687892699902360337908789189786018490581014687650608954036091883446597959836457509021934956300990662859282341755313237571842847628872858161059471739987610239073017085141891836767064102716168861506529697603990041442946721626980096825104549352164827536105108460850377652837343221794244899338825346775454197652864273531434022089371189292596086411767271469858152759945630137647764847290630645552441536040798130327038054922399799801927872282077096056514137851054373511130252716474612022402235074376552617312488877423286230336850689946877837036017081588869480149851846934322281572038637930691519687063011298940416290303725420758585604153823006020717219044099547764369046440836001155813910773015143688388185405952276026485790261344534058047566216763937345899006801758176567807123069962558287636404401844003687709244010973471640405233821619985485203647920023625682529382223747287575565894359016917170896810808199109609981126512801065455165670573903143868050374460718167437561220245769403223743522587297423787344181071768556206994083033317177420368516159476541513415134445329612068359021178172854694751725241797889285536595462091730157913986926017890181437166792872814730827082652791444547171302333421897283029217667298453307762031333288742212967831192156960896505453149412230853275588598078032533440998209249273981182320286505664754891419119789875450558215911007962348495894979826318462136362857928626537317983320161351922386401587806606862977676724807938342312808202571058682980379099746445277408070860119899991719134209926737693701544365622615319494119781144187173282420430305005201540941413617943201851125918568664884411994574363723230640131857238957781995989383211469209016904729365866845902712681677966102477519640796298766326126629884925669033146120794619486191889126726184977081070468434090905291654432913806174255172309785142882795710481848303980790091731360457848383580950299839766721365235418167970057556689646542136902843736538091534958999402776703766683470515231299427899539278420951564972417493780531525028217646757204821258102554237582774009859344771319637624994284321975845747304911423130300747025599019664332485804454660908388647647227326393037124145359650169357727356121397737353322809868446724694961219409394955970625557630498763298678853879527075728930947045406978130633692981359241188422365981724296010375975104226465405554011970009132273013786461911565786537002074756702333175878461051740759095408759685376866356085288528601438044305016486902363965338527733407968175506644000805584175471146493104824432940193087690262346263811311768726704343415696891418662909741223636651570683927059671390696139232407432513843447946507646781248078492154748580190140896841191915005699712847051918742279387273208484880639145815691681911401276718336556386284770816722206331628453268725755391731285443822714590502604063131318507366373339744599629587018664103557544128365498903650797610556600927293703757901610105616413872546204592639619185112569762175012781003742290004232684526079626273424844369108062059243593741509637575183368073111088120194713552517703755430117894777605451956343262300456324390440754387976171345581409255729300476444524247948627174288996392556808988313198098522308461348226938080909265798179349337832049204242268381008542094403742776641092998289157928516481041196017891514033274370089258046636235835548233563540690015305818022072291952735936042794477237225258279511887576323053435225086855282932328744657851149257362617701333877513137173216858728400306925088862194322402579210479443049518662243358209719879974856748377139000526673292245885753996764189672931760447033295527995550123274323731184536133661139057242611044958175056948636352572511296035268514411541110796852402081327383055803525011539150472521221312121733311667350649043711108370883027304752481801667568625521754215843250486388487935902482351564269235139026170031618769046529324383583714515083407870601552740137087037371616948274745755063222755965339246755646563239132776223622131605749788131691383833660304728365270497206315356036182735420386555206892738823500565501173473884366357709605824271096971495645950865427878303114778129684260159531018179475604128278318897794022935746217288344618972771725954878810361078582872239631770632416872665538730682878712861260361455162107223048542067887175672736312616435228675813149796568916347450888402501477146304501457263372632076072429674552747901147015231930224343886951259615576604101343120735177567543822573149552344131926377493545695195704122570978540097545823617217169917967284689472046702157328330196040216220992390241228727071329850648323880271735361317614844484385265560104456852861125895015080021389163766820188302384703835500425192611106887161444866696192844035205182905120611741333303627526171110419103827389407046113633620092722535874421727854023932544068351093113595623930558063496926144008482731807693946564142477587101579894101451430045789118851671681527115008054826470905505418931771056413784928399792340309984460462422606710965696416194326729455101446907539032310395748644907543763139310720810457182065944649872011281051128702374332699742207008583825480373029734815065846836879618006860223322389600253137990297219065397753461565771969379748343486223083297744890192978500064123285968045536936104541392326965689432299287016917591974205012150296387777169234066242265881420606005734895769225159014369947813791278249551355978631321568339567164112381133270099138279953429299555209125590858641064986353169345135210622031797228605668502502323850099091364869526274659824073370055700901172257186979829503925868474533527870727183296483701646807080863347917437406009408184966092104621130132490829110113476853742935961156737101734545809541044218853302443879572132262013056910552059224356440849302574579725770403612633788209309998846683465200620108972577305247344172454145444028112173318369254552844623515592309253356620750162227479580166411751677490522304558480295600627618527889699017352796933704621912326080065978594185238295749328478319194836088871647928829584281473160903485772815619428876399291897623826692254001175303266571416084101830470182627841188645798160381081003550083886814852975282409296184987441228562529483324212988949400496899421245502916980202927494883592732601067572724677202595815903814326168807951450763079828115420296873886122607679500639058333085188749829977363335152139484535108492438833260978629881067338368579637478089275211412767849170951173985648962248950941109138050182205956692622652796389455724748007193425072768047961323445746373163341491959242339875500428797776250538885829320606014801756953778919811125853732138234778684996853346327902010324399972489647208746406739385764390568456671377264397984621583785054071718488145526732462376028079098443677285090786866660642253737574223543709427033950112558614824453973420907226862028518447458977217984761692477351019087651426872198045813356379538635089717160375455935112732529856043643733729823577878287923445599494018961984686666698240679260692944469069527288414680516460638844232055753341723459343977267356448517210347587049216980593001607035997488214694572941081426692137975599215042732909846119055104971900369116526889109739343021611854854992054366027371657895199567198836550795639870065464430092667364803772386688161033358106299902403594404441989207276104672887726561960801999448181012040944071038892541611751293549074347562835061001707890090653498496215667530847884737907667308676317463686423686584457977906834303294754211928885192724346414761303165141940977504368974717865961803620010479539891452871792453526118638793227906529596821947232454006435008482490719654087253411400235487550546256773921803649826415396162894412425135018410033633028497242770588941886441039760783778477455770402028611814582840775635911322991721534645504223105096318520284740263528058880985894434383746413299810797417868713751116337981674052450289620834701975789890493544031573084238443796651482308182468081979516785781104578360392129469934551371559712352872213442735077428051996750410820833163340343280077787577262436978826437628324963249305474054359503290391434840809288540519936916721265937113903013900706699252084781496764094962220569077526329400458223648904508644022204594945622280489725011715687916612633158849909302232862793965394263544525933257375884647509905966297872884391709687071870465622057267507826954782854320847708366174780134242856587384673929586931746558195136951204376033738424771611954707497389975513526786686926090698712068736937639529067543442757730914036629689836237263833985709900457565683895945770979745863849031961195162499311864003420302649374566369380522122203638222365472293394515792631828853239013449381774083026093580856539039070027475351389744715699282119858465529069940538323507165802313099445884436560742535497212397589309630719362520814066694549240740543351318683882215965708791894523682944678223758186923387846675901940618134718946680274406572947912177445279562013749677778930765056394772244834088779202330208726119566117409940602170433423709462542842080988399952379181299985721035156524869836802442049206144121526296969640817561248423440161590378939910543248978914979206847544458055156636024050247779483468307633627368332156281082890035787595766714704107631585351692191262339009931650489989439186566994646446455990661344219508275308343214805709281257203008811990623665455335998078114580734609643672805536493335284843895134814951346244199205549057627270611394442675060861709645538617763285044178130864201919782500267954306549109133901690624666642379823220323713030039006047428683411899254684537414394460424997595960634713958030434938875847219457586681252485914960809026129954953378334166012741765850896124567343395977603808050576894389097684722034207497611329056128532250645401810489382403257879858038372693780309993939514387434847142256905244592426270777640284766340942639288853189418032209425657344965193895754826321971457522782181461824435862620979073764132858289790802718869250912737059208407857184670049956623680209534344400315230281507560734635666422454051450241382953254675998525611962747439162915330908702121310450401929803427022638386644573981200880582380317698300006895247877792995186309792306859343054822650685062693807391067346941531105700783627501210345391639894803714852431546641529100753315852851474336530495808431513626911198986588819243334172807373699066661500125092290185933793527891425491698860228097946964428739886504835465574015918053677110197314394983844252856200482435726919145005877909906907674937968843871348063917142624627124445294637060494272564835073590580092816776946965448666101124428967956882097330865440193142941276088328640855736487904293773050630608447555938701842410835941605571795106705317861269225250434962317753382039599335025438774752288602474666189369342919310356576957868158224392752748905710283310106479252412749168478477277686525029748351482476792507779670487736491199909711015998307408484939112354027729718076366199681946522629594116923637330342009202547839046768186905021711533522519694203514463303702114135675017731091881597959610599193593553809445269716255432608620285904884374548582304075212541482863319747910882929132296882732997149737610467748702686390575987480426716447589979744543046021880118637916260409737339771242299457821163462074243473184783308023764612833960133739965441084076253765880729881614408372332373606805168995718677129509328378775343200346735577250137308954893406942758606036491885562132393162875272861144159534266956657696641889272815178117683813342511922189703502917812642986037942999103799696991729250775983501124095892030071627203182841748923661906937309367378136979149518833001487089349115621494066096014361749829458738456129623146036229133189198188275197104453053896548363450779518841040671789021953389527873065554072453526407447370805729603041653057627572688632125573179345767339146084886843362025729893030380782705758505549699089496618841114921293000428957673011476206910958499991674865401284346131215820621963843018844290088152820259235688252840218453584433920571538251919462119824897626470675861796491863946867605154981827250144068565241790326012395961916095233867896780319845115754191536481343010951715431452872956267077566066930798294224253477867876503269046963482173493758570089341864120225983244507296448213516020680432395995857839537088849968825550445477663128785950813907371577665354093215051796533406973695817821687273876039770501757879244823816584780470843667040956935440988138443449779462484351590331890746507787462560402268776382665705190576710840530091929225672569511155520485974890588063161113396863770618060913376938924765295701912061871500395157449809286214030338053908409289885444366739700774886216349645085697487164908199301068723164543604310207163775932271302562834305141177648835143596722987208268664935940191321222601290419279641863648109634824171088637120237559857999840617854024679456623789435562552383272612130975758779363436689489455408989916417470319197920981068970397752517832511336956022653775967312885295668767844414488358251973982466219720173346600249539804419964253086893628679350526691606969915707085098826266979168284084102718637461226149606611188278542182949881380127051393700391834696206330723247696546578619645414186395112063573909480708819270135130347466290201077489540244894475798493618570869272706954806953557674837835849684869851719706888675570248216886814315401973971300726805216225134784874400306318315464387483291704496631106737732256161946228057430558845799897364970160361855213947366484149757013986547973123099151754347250854323331053269921920486971260266469316795361177542034211981078778411761465904068329045509367373889575034539517838105277156216346330591382153134316942893588308547895101967231495978860576432500066678695998013878641093351483028311043890800049132780902921158745748500189153569125333184088080337448313227160873946409846643276168506846797903102009018936776229629462340187897630682918256204160177972142166925198096054201087329699169642613864948931221542891557219757120980380355392034250158565975028685977415421315583735839728063250654699528101917367869471956335715085236793409849559897335426517592273873672733599345072118409830599789040962320981491095008520632081868364397753348779902643831762531260178504573041621541244037790769203210087561750810228462516267194149194662774964915410169566712569705273598411614230535156813028554653286318674926933643455891854883685187881923244153969971324043743987309219292011644783039146947559783306207143348477009776034341537972138613379502488112313153072864801697434097123401673871499953548833427530393829965158995345348673507840999606515764330173118988899146370990787912682645140800362540919279767426643966469570816429691743529317600818913512431436725377021312305915358241012695409298960011053747906192886242542619677482252021783853046391422186514062163428895520311417234203925826631751269044043774610211544573401061508660022628686425079202509454822069302176550064018883237252469919447038839110450279179730904796537023391345232333911942229517893005807499076787079203086265372198317822324145548412212852257017935048314252274236757018444997647350491334216572325827937219947123507491928496328327112970934287195391986011219964780360616563128044897173793270754109266237707176438108198887644878186885462836592838168924155928945741978019944556051645507617484545963081610917509926974105098312109003875358673382317831274335792339088505882660343773314126576796741462955888143867300920984594699597663426879268511298157310728032582266390748132318197733894853721329148348010404083104421832521955983913711226158716101789912840124921360166028236715404747384210414854583403130205453695848180052681884383049488934258490231513868706560793320438505398183896459384697542588860856157878943250706179735620415558512593103125984694659743244889646559545076708223994424566935979260381599218062133361284171811617894778609525165875525513357716011076225463701945627671542216182166598035154317376617724892585700603086641494215469938460245621955712554033601554757050640467340702642027414167580792561960682173679999747301814374907798771220737724900277219278120418260592651455330234969690399944460504306236536667830917993326886430027280678587759601211386344428859509535056905052076997173962866709769747958546237033140762855583289988864094674251576082856859723519702111489390761177140425227747468935447594140892843090477278550271228262081076725536943502311340795941719761705880916186186073451815186216659516627627468750555205382821797594187616335118589520352363770161606252910421655111025490544642685403534414298983569236180728249680932527840669827429642168910433394716059405871011606608302867708758811248680252754441435707927349838651485440723659093352170619065091411430503548559762503742939541352303046800883571723370910834238261033954289916590996676754171947559389600989263425737431165524899172761244711714853948036127675951381972292986598945577278230212855482075797840444293445749147800636217782945926740122116960152190001578688090803417505771181771125438994597321341144951514105162317028990319981465965097896415548969216438321759485047186370337059297221264660151439449838291320935992731249354378329175288165209509030028995606016447792522109668892495685033920952596580738189754426782260674838342965833428744117303897600539381154765635007825088654039130886421972042094496075129383361965431794596462267925835238719061865834411527798645925798037377298737889642493446251613131903809715525257382979281458877163864332674489138332095629979391328654456609217181910997288740202007651004373802290131482017329949010505457006888446043712997601847843280319166025765229996171521900654639040524438650827866250316771292914440972099252331468107757102326418602675289706766417297202779717919884506357216415758023945679571021375539062438971792972884276664492703705418828134889513346704607204823283307104135213253567771238918280080924370226945375691382467567158906937190945928748830848772610583357964162830292633628356763566272077345489175017495778820576247724567099069264635391029891352531459015393023715492778128107415085902535412592948338897579347976255802264357120665397977877934365146154905671861384680106195066594924912263778395861843244806508723529330336341007938975150627252050263288105858775905925082694747185162812704612149781505071027351760330203317921179031858115614029569171382072856635253940998300856976093623723217028646921598120001213945109236587219141635550201504911551250727392449907484749680367782149356173929652087496600249816546396557433839220597192835907039686740957220255181933507045117952695378071606509600366096313579426033549392493621256224058055320062186397228635825840498390434957632664643985899371090159688393135585857073144985104907559276151147317233191684921012172130072359360246698143488184160210144649834555708396613950829842121886120446557106705990250368852184865512728832248499516717248674517687978368200271294706310541928337750140157187694643705659079224598192826994183517385834536812410833969719665772519483197223636508034831682577211478768885062792788942204901551798614982365421918320344471897702845316831377781622266578366371169238038598110137989954391311888568346052133377064870519231221697100233493094115613879102060211113203090556049040758342065070837127699906881538425745569169769078842552722765717935761994460301309352871678428218807301530855925790647921754407272445764170860836873242038863349101958503951773383094790365352155088031611104891194448642642257570838287803251140068139235581315176908939250497505146161979862376642351013163189518454357870417312783808323572001048221538705532180742599741530721764968794271452015472932928199155431182743500193686891661793790834053531860079432089699331776906014566270746101990717740812643788804026155848370644835379200084309607348613125089242048856966716887830088714879607303476541947726580306925452390707239751915411968939208304735141956519573743050246772610809603445243684771192996913631272871084906272962472983204545159952777403492454199987962496322199152253676691939731711285177718721745917486560101799232265335415513308761693854911501414632268106120456715633773487794353816968773613184658324709293192227731955277795335643411989011013416980235261128907113167146056868068585576824426079562152522580803668768566947390328980595077722445661960072990416632543011756982852649457118147869983947955465057832620467699519367428338436096907691665964424797753199051276948524756870388028570012342243959049410648290131139238903432375569400534160545078940014631363658703420063403174146002643265295302744261488207988598582227805612849806780754886621982638874009468455252373963149272100658732135973351090268762361689866064005264815181887713516996225151158064659699397775949688303739304782317686021585224168404325443447720697604072641859319260389070961646684738089573712962312484861902517479313899950989666335470119623907494281439073408540986213336909512910272825736552663291406639892820146107785104185583099694092338472002208552896263137122925157891289178729614031031673472231473968606306934088649714752900039744225924617663615511635903939688227844462964946902450156906376659696531220392409800993563548132797936659022897306361001910092949449837693836045609633025298905170342997202132886115766939300741431881221965151420608584545261558799345652890492322026582424831419245852743969922924737559160149009045533646448366682330764627682117156935804727872060256059543913686847296467307085067430607139075822400689256175747018500137978360929975641445746520166462982613714468109177038464914805949514018518327478100644560761737029749982786600934167826936135160883252674224719314947068350838059229152905069566346641886873315515583054777504513377581827946971206776806116353483177969199121791024064577237847932077553771410154731927834574591628074274930966947882137494960914793212191747535083235526535106883346070605344528684039953252311056812047109721237627144281567331286134484609645559799903061051277788313515676738859587803420543000177164480082495376727195264939659559969543793595682492209288507738921724234230151901401099842651766575559423326841313027038299505432280087520659813620693435296563448679659046996274931830505099901534178124986113701466772327339664147630844436426911719262642282148378047719928108770136461462987780250641063470010001346064853192904246454197955837278957151279552817019528771528951935517337180711055932056115747787967099223844264571820810077695536762606489905392419945244800671031429439426677686485619952691578295077929116352080947525980558428733063911561571452296352253907578677383872466930749536360038502858320389803027355918764083690332880338749916676227840644128070546494476087050074267410934715114539543367988750791361096631579215622035810769267694451084137698523724376840072263998677092341764264622735647908495277121713607549193851774568770531063325595427293777151672236153717720707549340992984604718886762034027486766980613524186706485326434278496717168566857827090749977888151360463666546663057511886523946783581335925998911069848253410941540348291238726537310063885462261762863468752137762461257353738531280756725116306181105383944598869478823130604487832898278401179150586223743347805934113293766678352405391107815358690917795057282423074262814486567383290484186364060668983694070109662469655964625626095009741336364177236907065289775831442801493031086104843397889888577190995096778623298467170654627548768133428013962130480001048147654851001006057022976309397823331477569414567298490152338808248234669942159375300465460348447605999058837357248188264711730610044005056459125725130969851364537416677644924768477927384395995604352164280761635695822985063543781057354680791448585353968372490867918069900876148147892558780891990431576087154968049474118279022394714615564394740345953673978283613380105592093334527375636505543358403508702784272827155461491327609147770022711473634314641316671569738782683444525684271022031725242086946701487466562264521402173234978389265085989435872323485149096749492728842197078521823909526144929491855875914580279108768292688653697116880742571881718238125129917919551666136087651923939423532030802530165065143352010233295906089957975720924396829911947826582797074817153388587567872682796286117207554954693610722129537588168303410706792644079632100809210788327254693688243111350462952106854517835989477532727289497883432979847517815286520983199393524273340123703890648568435110227650971504037899825618868101355758190055640322724554667458958719493165902088277685925267891193079489446179486384978090071400388212789720827920226489261433500974544316204371045385672255550857677840314042819164951374255790410242820623306834356289957106644535138989467296106394129707536888044704039675518641091079343137267166354797865972613359728812177079612279370606187077619293199600728876064284046622107577754374166438365250354482549151887203545318428250013757006997780896384861645333164911059667543511561413895499807149120892305996193604045516540421893169726456320804274232303553725481794180244014631334219069874184366793673776961735273711907512109028005832352996804773329490234593179685533143497970519240046863826496317616666391510257668829819497262115639118641109363784328393470165142662786807439588014640421272163361980380996628683652408588474392466382829130912261910263094975221691701465688656142695048662337557029639793196839547265324682262973709636413025605155208258964750577794971079187703855926673580982083903234229532465180330939451248350478072063453219074733378415809296308332542034724454291399419912221593844642386819795863193281453729457575421794643683656390918898555092046858123621789590670772315993197789931208656886551556585631786481829552065191220895708995660665921862188024924006844034409856684246294728617523838885983720323792211625419715178145336588238901120408219506145801042573946493483673841518565445811879108622742454094618702751535003983109571795893417176507798607786381755103398030105747762220377599975137575920924381257166643486946808805300485731926720471576729510844252156204122517218087299334156985847390001630427437315553073602736320067680018599340958465788351679593132769989657173422679427132392182663087919789897033075633969341904422561323845727600196802961849199871021845474087205128985194580570952307828749310774785197359474725456343660041127437420493244795851988185508294688140323343699232215121913952762452492403158253968759205250714327450878526748174532689346412020880770979927234081109669650500528974822322905059272049624915865871629404629714997443845329146354928438059268643244520364927848428036287460036342923789067303552948704669860786956768841537277172797077545602513099319053050332870653397396265073964297282043591061955194287148930457300206114457154542840880726801090338896774677662321124721019268208542367348832135480063245484001454111758757034048863118177651273155630910811868519977774912226799561728159108544538907995178898814272192711582136228289458036083148885917357904199386573278239891578010440251174706250561295407911958497771914080477075494751022643936162442508162851681184019599807896756325803260052149928089357068942452979477121901484210263387398612277528591841819020680321882949537403678658886045229230851094957945852966497083226681829610620829656351382559006256296140549019482969588622247395673619610310551619162397547678013662351913356756753238092401803445564190523990599630943175843496619542970082370921149278550464669593434447923478056458375970042491964171926711735738088981328070523675392643470173711568173748325872328761374006179062868875561093626687570220345285953280018138851425375183630655118909459564854084344946587290563311620544399600016444555856221262407769524964159533977695139120877399837609819496336835241659547594620548042041445402587205157953905928422387596422472535317559734677894016506457984699881378961428750451168958363952380742843171319435559254769850834639785043033858323904385527240868349125674025533537208224367021499919092990339704350408448683159726748220171111301913982119094192476876594608818883444418163588284110732580221398857368819745372857486373017068743098579609064319875833051711431033318323135934261777890118441118709852265429110422247593845326895607135766035672909753655092709336443908699244478115664296890767700836912762386838974381201633221371084366093655211204033906790126042219217449394671973324458212708026031557003427103175366249948345369973245713437393256281347593480278423177994919255431089971890656074910145514868327327734243974890266914879406823394431025958737908975073636303306232742591731747719774101940796649764563297900605960758124445647884835907129503943199533326114787421875728523703410657235526871204924857627775721676866623925388368015451926227040519962843232368827798540963334864518816685903000781901110156920593252612645824575721670242358556002197403848131901539506683776450988184652009951091916378775588157953626970580272647461664555980198603273489579339068381129438789652534075739654338935236390545564945662181543021057673191448859958981298799942548109430210802247727509756203084667435824902926143661994492982303332688961028577460135719226898354258007079270554253505358738206999216161290810244568090874380657753139963513206523421146332349093478306820249702095023349478413687644998937382017346801934109743761753016322296959156698564038852611788197227931543818445592248625504215376071153071257599392568360812927077759179202699790606682693762974167705394526989313968787816643771884629801525988601250062183093147036718562804958538258025469539982213755894825498926289646368907825210807992723731672732623755377533481915421001170385460217630128751660774566437615053273307587817655109723966534782521476661788800363926339019280215903085091493809791442588029906065077324952284539806532063186440693370021226340587245998353789535391510193330104870014361208449683393072515324439686768138055616975414121165714087982050614941516231391691344594393093669365707598050566712585386294326175469749706171489456734497109297844193894207587148658555509081021951124138092656291513859284319573143757622906324946072768188039817465052850543324201807261631000711189087910419295123642172016172765457078199189262706724448526534691836175525874945844981891194901119533762538148606683064887466588154157729798471474804096827790834349875055103283776856044212193156292767905842440321366093477062432543213207427930134849098057060285335920930056634445801778866901435998160218737149736504428359516369895643976806148775490980446239283341413361628432649742917854507235669587528185424072907302569910136035957004010469756037327497299498866433016067673618340929554722262147891836507732610696601497909117784789626419274317180489211873931658356454091848018975663470060812597832505221570981464321345127743915903932906063706322102517560097533775763539080475538850677528933558832559725876379337412530595878004652448402492641653582246907766421661052835339905827821399684931837838644908800801166886048555936567410986042853494894162762879861050433019660481558482688895221805876743670466834230212516547957375588897609356012659468847140474889005273083504332804680998439794752792161606568257404283058950092410850987584792639743117018154211446723569123336525497178388434833603376725050537837919428789997850289928869014906187048376215709364087497276999167117011912284611158132980263948599058248394706104868008541109224588153997080890697378592535242566137513340155414530428549702513546139455842798490867940709358342549438367594316687392497430351039113467470115762984578882036648634634130285687329226184306572380189351930956632034923326018251700346927443866343938741193748399800242880098926149322497221714960389962668045463092987036571812313788467968756497142100212553322692188639281130101127004482936101104374926459587746781648057398369241508530301430614015452307629325665337722357008478196550345434543059232476318693148596350689788391234266523287759947875182973614713261094534840835213986298690887756236440201128028615385846625821252949074172300005079111628204385831279863732154596416836706860473807127381329528873276578280378829658214027878468024382016360427489103506827663798518481981674038677299061437756992960615893486206567518752035156328047635321421643537340325765450172912702074169865232653823744702716060254146946858841785720063494089348738255545614349054702477933066598358521478647151193242775870038871837568807049743649213219770030384510853406921377960096113247881275488845057814757786328586891521444607308035100385394879397026625868158323160964199896464632935705726206670610404293111365053851035436693622225987873302319142337346959187728798592901927511307865911220014583061804728688713674158362663724893955028464949419712003030413689487542987972976152091324243356964680054379776204122555474707616794264934331545635029215538024973748763570753102098077692825788120498173713881141485335355275875365263496613989467585345917974960927760613600479597268678158683339987573302718481602608911796960163906098774958606073153251653719995059791472462048595765205445320774804256534305947375611956019151043711513676605093062899603559261503102418989043036041777494283466113043152108282856596177294370987511708867223419035739681153203589254582898162786643839997469246250479579965560643214831484051270082262308844797781485190194140596012784429608819426136002606842411901174286476194931395543646765023019399738423396896717115935214453900332324938854441632127695735573606991527977484675139936084322905757096017883383447076621536763550486770302267934092290685835812257444151135232151148721914921884203893932834835371978169441050013439067175113442721618069497485695863818610863886792033208258807986077124239819531797908792177994891181961724370823011747389580065113220803291714560715881203610162899049901881589345666957667696834701090323516098841119756621338046241556823081063226988857302555579093026078774063720727067920099862975754550264533291382977860114575711562057738107631320189589512192890036930994661219044068229994358353499095587486780857925380690020661361283047910428501357722156937445439230092832168935753221805598993963326731394570124690587454683944244948752344268393926628083600039355660035697173212683894698155133084969214183714159639839422040788163529625032694063018415493486199139159643430064392574044352463725137710070711666335638741831808010289646873221436726846435958930913500442079333202860740381319497764775753399499260934631159019482569939268917456007710350011194498658447562900734714417633130910353815787580403472508408880782229090151047660590336989157562168209792620122710513463246157854843894412393003596096319676606057221467989186688214478521965620143971486075346127200406935574319342040760745821368768311128668138403868377385177958689009830501138657159906173963197960537541521568159914132392173406089831649887599003723396501279708212238550439153355210439846432981926552233331348363676007280051444866075841137990434220612946787618535741234148276970206644236920976326973115904224720532411435150327647680310612758118531086500116458447005787468117583386673758350772850861357748563821985915665725982543648083838518145098120016286455272245016514767535740840688516550703756140368486652705713087538518728955652487594100907936929090378281574757007343877588400259669133745628096541213784596523569946445924413892173039434262705326249984721221104850043861190287810160285569279332253308866075769825508102583711341914329463456822658514242117365740838857890733400431237052642575703887714543934460637744705959619139455409836602333066544122949613725926787839192712542209031683233693158239982059970915352600667386273553386056835424102319441825848962182839103917463833913866282399452111240269072692594203101259858422906241218514594268987452754262641294105555123893597662851290819083036387198907618026662686329899672899359860504749673610643355006003901679287626573305811984770864295682048458096943576975138181747356175935470302324352938276685947366989463013628531597733026190060608382412189583058948337157969920670141481750068472185546927006860804940053505677035409875269493072107796942295178131683753462470454243500014022891734039836647692040697743884539765196004540587985253402285041832521563691252692334500568567986553269866258366894027230290723035842705548411926442253065052704055378924842925445146369444183189346285328381216460054661405005919976150906091502225362390190667312351321328240257619717586649876832950975836682039987479671692444641957904156802201461851514231165647361798522666569436129987581347179136889746631306402065247922384152082293811112655266809874842097895041176148060929916468268173602180961655111829669260263706987230788237223574414872212409557451539458894876518864483358066071409656222788485672453973018623811934267000801030009142629649545594740636691658126452150135968529884032685975904774369776530420054860459106516973179387550784787823677597224321978588771574348731998854234419527078391962308104490788720735180173909925598275426184110392916908073138092091237558242446062415098461412424602257057225374979976936387565560003550496834515359616219531199297968704361730970032037809782950015602943048714734069687404558372048172074391302210099613309895939075937688527637964132770272860596481965540635662041673078650854953856353516881375069231211875969926936100683840334948982148166185902865906534678138397216286535610381246193447286817959388043857192270554896116234186516623024749628108675040306851009307377335033449890203104243229071628779018218559209416468266482753236794597670197815637253450667787484690944708742756712587935092117005773611557471993626595054643324734770486700068020997470266669843258043743314713591014065367997384441412514587152506828834197689205123946448681588920800281919715818522620177197468693425218557047947456951263382863926222748889026191315915211743023998293475517569179195451845547017369476871102505312437954384352633170547556297916908522976708689210529796522516891686571188103030649784051632085143925583423777507319688689805458554209675274205814978861850825831442980358058604236629991031111416935288985543211608782619073760961848002785189083789030709393121474616993318204368475385332175040125177392822406017199767096774070654732257477118655154236928772028532661363525357335671964172065973634364093761194846247776371002980730562608755192938097264663792540068537862626815863752573804831066956843802229857876144675667791473543792925545089156355918409131141297860594901298503806376248980474901958551717920839764623840264519975388519190024539472863594678156189086293753280306121035745669704400573824184870594186119946993722371631677979369291643475155966699742957595389544153375277605507713319285548635251990832763595742092426062569418678160862999845860330963414201794031837518464983416638447185248088432472042012695700017471477670514766461717079110122497256825986550597250699398116797977922534807062561570572009346551972945987485091703019587679989015480775322301656323329726964708591096001551958560269079296851600047003008330783309215321166353545813787672008117836869239652362637037792036764533363913711111817121957361564851567549660443992762098102048333113086791902601978828736149013652720852358587606228930234265016942896169034804039658921555524762266598721486629602559943812702387863935829308546818934018423552057515668056976494867862912080748426486053607850511541060067607062390103776471449771327447072898512008097361224455359672052869239999334122639960158643481671307601894499775878833413163699909781840963978048394649739007679075105488404875193902233143645638580056309309803329822717625180352892970586417732651420381034601785908831683220890110738048559932219574523002254854299726926950598362637372874236584896229020067614783054928366988932284779662955256283627950757934485475969133750950663392410178546947725823927089534237635504819844992248531691189327919183243768889300124410212302638454485389701933429372526053815569604928516466388039184834693041343761361262670575086225046061391827147698445170978186486071377349992486145225283014769097347084398786225473533764868712039621003891139118788665322547836929441668217631734937072266054148244346903506320788285707311956697303887504559238954314646641822903849960643009024510180056229733941497238830836831628464534740003748888777512965987232177890849341789155433909264771738203021942981220964249125746562499041839278181174376101810833267556626171761371868489119747650587754651570359691509014196697496753417897339333286858109627788182134156400168013654022082446447426999433817937662036514920697965079058988429279066468551791726584869126783106280008590479043452215103094443062020416221759579807490556568586593759953508756950769702851581550344495861856110548090851230174853332448172228461239493577697619068726505199186792821801761911936600843742139989945482726972897533791496705255687292603755293726141991317736935036489028931195911828823724718780053588518184198230651006973690154969524558312832595767123915245169049802760380335182326664583137052612843827657726674503677388560878544487294140118977939487520109149594464202884064826938815213631484524861910677063467286865393026408184703952567294226090656422726278448921782534774132508743499178213420841223987558307597227655043749213337690346136689945539757143390230143117676430397430169456051219629664804115447992507675724050383078982776149300774537692471457347494808910575508366457337112077764410360824617716792350029891913817814915204692642669892906041198285646749152054326464872636217031918374284749684864813734163437679420067991130974428448599487260637950927023804121570725223342950499920874006666582480905454178148908984617144160280045723513848912573773835276961082565676318010277707865711234079727678569774941332374553865923050491141931688730721269669318210933486512482289213710093849282288050769051376648744010574512068993372161226270556675539671666974070773876809401010298620254943129488506299151725839439319587778608385318208010385552625119756946198998032493407184910875616433634376600967268681762499129704286191253241405908075994232133144330932147171409429882709960942391408149184598163229687127419217402933468158757644195067812779228481663961904390202454971727476866925437929410669824459805854159796490184996510209383176874200023769697015539877552399697401413885069355984818826509712058658679546618158162582189070781757006559043395109238481335305294231358700587969914521370837622039513214269858222421860619740086415396611669182075412747045962692379154513121812186099165137061344326672893121511083504045329760433780389312779064860799057411917807737336233065670408564977924393525097816573624783417558445584673020798765898021722588656296204621196964512406461927971273712912049446532942859198055520632161956371631031162814427961725991849234097761904906864829537305828458865739278184385587927809281367783081724065846631679958282847845210291213576755276004523918690105142270275721860820007280657446387391447355746891098465455688750648661286700856472235938849490587134402258472560086560761554268625713618413123195969802067501038509634257521993436759984094339498696224848354818727475461701761454663001489809400891740182455488192470614974034288129742981081371886131661091379688106553991938816924498482010595341321895092370661981403860663197678506904295598866776825579604532038696989364090278924854326032027504122463041139795490239300396986809091830561597360925308614604697716771396667592658425591336474180167095691745478612036763017389269463896602242036200963612546181784107415781222966123555677595779094095358314228080800780700728397970915729312532356299311962004636032237812566292956027975397334910841039594627160308590896793891281638332778746964318840606937861125042562603232992224089995033043420134967055956103481521869127127919132176775308503357924769450633590305488795654680884050540662407209773190737911055668823196171494077179161136424593653147235409446343472194123236558833062515776874864163927987996991625829502061741535498190822514921957914164197112214652644477152677381182493647229823871809419662539891480087239088404536230743270337922133981748841557250192442742522388757336200628147019962229616411599107061415581381739983334596527345671072444616419883949197555522436510707182816576822664417691596717805609066444276488566005417537720976962640516225099691824739053546843180105934572203538218632167069778599393799376184653159715092947080784067104651663081156314868254385617083844193807172132330248389857487499916524789952723221422409727741023658119978384140216094167824473757483514848729165471376439978382314188950082158105760217125626889086073483017015493520832058489051617958751671815013002551805788753195502618664609501597034627798101757764007509011637105596445967249755444311132697810074449529947031595934127047555810928497195803116373942814209032125601194739377511716090283211985709336959969331842891282793987405585679823368837346514478600434092348881590679742590135373908038709405898335820233422422170857995617598930172479810043080679850872312405735223563567714335588474447799076421453362821995698934736474742746899292109306952807966340771443188919318252194125405522970804915819834523480562860822049936688090190727296662556138059282544413168021183375997094175570017744630402283450272841139094256055246804454433484970765409807611491293943124648268566530329628194916227327708763606654651520593505537516663472489797114086822593912560820442747324471171387248187840313590754832294617489437494654232356899619832895615264853423036611617795060733670168588082440741289604981299066222540945213300653542617886727375861672199665251361884731525197647515807013584293885144901509046377155248758381217845473250417880818096178142734819887461224100644361225736182629237628456179657281451724872065766952695024257029132395446597153317686043382823001829549082434277968628280729639888066793128319642215066982775540026136911866513203534324244453525418397887668700363699041366005995123048600123355909568184532417303972618153868903270440093435591638436065689727983422759792314667341298002213393016569671804936536093703580303860196881139195717475911761621391257558442573901344614451211987281481819885728389510680086110028499706860751296378152511524110544100344302982096941252581329025848441744719630137428564550413065089410984913385433334639242474882769538630017909265823185201529852819942532325332515070779127723299960849786876939050697230321317832041946446304744901580048231521535606825199025932679484152656347245527145270039280087755083620100052165155037707944507764636763063511503655372910541589410862024202996274052057479272702590982619594909623850515091977821958705943139619236026858876967388353712552100420322903941677824787341161263358925287175336116665646801669157338164147333227051669953844382792654340330489498167167956325865495554664539521318811686953648482474947754883940573217649046825332622143371554094566212100896029432686899705200338100133062326231295353648075030380020569723482273562221488620001847692043015621677068841106043547032713753945011931591433907042151923857611137703839741142805731463088945246763551582396944429824268262115926134685723439177701937557398791416800139102005933446301228073708377902369135492507718478361767050654972674209051293447372431273217028147141698314563731364436467605093707956896122546506113688072559992062196248885911653524192893697618412400741255191052225519232410709367622231197935927934071103932934698656050033668748397917726720624121995300669356725781628595684764286204522537400450737208740704767552530550434249110153158183211999743104826891756115883225112534162544650437124191062161733176579931029533451291528174894856039271551573976821130710240374342229118306258211481251974675375358194330397316385978276176919011716596521481618098844399197356753669553496757233542622472272813572672992199720453609886171848938950913515341880079986902012703519059952030467533018801639829190152560320220761505864107753003115806947569471854689859577677594549157615925483448248927024297497588627467112426278585367518788512687493476512721633866934113810693420158113021805869406281730407108332240932137076068339755901656221262402647827923590375693063471687710556986243380465884693205627958614927697860909617513831032851150046089386737961961685215956826547657802030827054805953361655767530693084937046255002305922371982307702820669370373504136734032091562016357015623788414774065891361635152255716812171504224925073532661614985541733547044812803916160076309641531999318376626589150485098076481202726100403587108637842749575908132821001653169511128616819056624581239264792153896983504445460827369507185746059111176390768080919321325269767801215861540317796675604713263567586462888946623591009273339199839192070629990861955096531761879473525404173312501094648758040017996600999582380139433957438249157513313099828545321376676235541070723983142748175214719005628235652861015018561242434494718312891599674485397272780862909166794944605321151123327135815310231491736163934259900426437805396351196288584416986670200668965575692162581370303018550340881687861399843293144166227955493295254404814333368859176854303362532866344285788471368867895804254168525279823973785009496704420455395651454502894658481520277913886164137545717685090926355698097590595178211205126640614585857261075693419149113276327351962885356548925425205295541137998477497721933247050775668262517944489111139823009255518704107444561566241256489088632748038168104167757589350023101769985551519442861767101568748757217040264864444497060588127610210023385606177147125055526673794060766157890739000474031518524573909121390334629512391242309010243595876231800806956934265377066364835991402503741363051754490902401314442998236280355859088833782453241705497915354006740989339619636489939041580768888790519728255166181616585338913794733833889094205433968979323499997192879239440153102087420458447464209237367417705060300961524391284749034443514448758238247559368250063002246693385667061601531478042611813413410037091099687815421316284944011808806699648541246628202697914324355661697324051134855582753932622475806144318849282833520912621491638232778050222893637936956484388732215778097507656416741304497105702889276363030027585491107339506646397178563627194252763405468048846899530292664451457236095501812790993184201635556115527304624802991546102753403581710543386998890246217234747124749928749446385248719375771397648364773629453264119009728216996373716221574512843578757615006342615239097131508930359857780747561179624122653108117970661250726769151987401631983361297370425572687053777193454816734686939385893101676200490065821121723169844683955909253081314929028212330242381338884512944061949406531356525560808494729152469404205769518857891825001277539756696821379211434307318984756452311545348605994431114706117516751166372980787199971335542489898743063148421621817916719945342621818135056337893458345241715113976679141618331563492330908777947662895986639998282437861145161669274439526492311559638712578038680196633131508239117818806277922755218562814757892248407261759217195412844378459278537183155093294667492382582592853808246358164249178339500431624828415928805244233548022161067292435274206070466935665516182886464532526031586431001944144593324458950843857299808846922472939919126498473579491628577103288048173625273900094252773125427710029360957520936691942433811620902944458347626400587792328888367170439606858995311316517661385024997393188266305459980817625994179831966990829191000820444104993177943223024816358780238257974391984448064348025105046781536063277994667689709514026304901110330542129270162390710876947868569146674829610800802591349136931898981132912584411776207784295705693903156700136319295352218493314791046277544607452902392266432665840295745857863588741484468649775528877554137597484111118942123959018118798220364951431790261222306735665573108970050054481759061488070553522203228348616976918581521980286521223010034545114862054327647954099284045491309192147476837091836110415946194014012149053227668836273084085854592271234265778239249920581893177235828429197250804485409550038718066520314819220752808564803829051255108900435402753057071604066327041216876598904269060124177201875725256901763235537979417582481735627766976289403204494028112601941318283884711057729366413303816853224535231970823454627994918688979133123001080211886993001660443257202510891308437925072954136420415484156552597583520352591877800546116268518175112466579874958578553445827296855517662849705284893476541395198824196766751759113531595140744186653561253785059282214687598789815189583814380100185834169447480978397244343591304641929907756343226543803724297886723309068653027759743826851873100770928586003615947369326639739222719515893909990655880030404904226361062949510007495080343152208980167480773201753123328920648522554924118581127931664066471506131385433892229632196299419230072259391411818149091412056532854825613809467690488558473307546673165326319669924824785370242019991796146597453336842851637256484865936604777119633747395993634167937253765263333334932992610087521211398088566760226502090624320445038268824605251661431480258742103763998400068714092209057706312181266808743006613232680183078156632302685545678741207961484537499802137885340446492190354625448794924865729584679646857180980730531176996369567021634059036485892948447418059533857411466133202282502871171597129516522303373451851941524678722909463902004344622643742500401697758696283964500299090418334904252022069338897788314016018240629790001490530353513954109370670690099887035528868577309046498098662998998194952013775386797865419149537665279188538627881550812761647007601340247845701168317308401428795934410898967854705691481866160615498636340916633964323838720598583814608678899668214626061120393506268813794102248635435857376478917669259272653802297007281238221250180085929800790868166527047661687302860966180869049235204991777161148692799460792297707032451465149559162086650284017835397636448266404830978452610827435578507399764066189203043153929757973561046462697870190895415156290175712480599050630791782304328047417696538435815846712375211162803052393321301141597059257073088704086740044121216740998856426845875157427149577729394526855370674295464304840537208726372676126177476814639322180970328518117422569217930918287270370599264015143941395148311198323521987202634762228138930347291098827507564593954967160781434121414408853062862693513232790702491955029076681249736667030281457692497427382288720748579008854813572356384356862290061967978174329557420836704673993381208715908305366692363621425662248047086825889118765934005613795405234676835762184029837180612023415590253016571601824983423454231588620487288263038308354295851631155776788325516414468156764937644911480580206717207572843993339047700865035780442073409299603308255228764131241437895219169653532197879279944456949222727793712191181004814294119634379074702196683208573870071386790059916621048385527422148927059209187492489506696948780346667771156217136279574787896757767603497397493382006907550012292694107129884334087612233813481709041226719195039063988558326467020225502876753602174498397607037091515539378111932216713231142840857665408336205871426509748741453204518851462808246072533201146734701549233816561701290780195040819711702127853100902515364128569404313444728133170593074811133133891874657919450323648860461900999537097868706233316932907422603278137304891824055891629620376302534193394935311203239682036320090537838199350067409884609094671135057599686662601795718846092202512669436516076949951570115710744408154070924350260282556985664243384175635072969768835975044059910303709788478049377473566305585635751661901227962554981029302010553736206105198114624011095955110540594143323498470584623978881993108624793796125709384458297222649064961928323578748456411373631947479116690543448748388755194570578010222490168134391195760995073496162584061637516788466627068698463155649563578981172678601886851572743858940346124330386095266364951838485180102235895859406166707908300113292651339263754631069055910691565898578818014850292103274297974080234379676950366273393396652055937987839563696227750569022451544011960692112495832150498895079088167228693869815520144966302922675780110519592452217296523323791682361267567665962442977843580551541274517037371162090994828210030325418257474985774720537128896214138480168091549529380727733252337588954703568682026856769885606330186988189752902929376443148129234876947783550842318449794991829656304754869063241780265604288398493486183667523506857586894844752376003372855167176224187589718869333489228453674584079767498905716373255353466443539764245360251385172852544981872710667402756176959271212277224903040912109357268997732496286948002527897546138506250882847656229866017664012671613083292078704718547878351350543269391049582797845287520771548649865912038275050140668777155209073002330306153414040291055573511414381349940137949066773282098515024417556043896058111637637914484102146297847179073097098177516283453726542550649135533193094110660833055251071321118976678019105051097138458445898047766677606153106109004420656881610121719016664584279430816931138416975531641482399526339189933820100084966127610825803155650806690899383979137049033891336293212682351479513406441540006738961211657186470171290751960355761513383881866458952047720339136681887758245864885264963412140097470190446584725983924010702324491921177135899416375864335990216740510932653064402228494375033813519459531888791353882298791372920512936604004461398552660518600272290987339202830225448663832085694952156875438498768454515862063599615034687315050964258495713756945691096588999097210955495484016051948425238889155782835449093739563820462672771379350675186499870287013754423847785907207856364077724906441092215483053616563311066990651915198089172441202744413982615646491543693183776779568838318991499691266335048964897370539792436863168256222477157513366839167973028187052058094965806372797632913251816312966539107699831608660445407744731650147319872377154422635444878974190103895242828049120595475804721358605323276559978559968505186952198495695976445107717238223917292116321842230248729138368395231677421837955851635807280773965019925851416216642429018568406354063717062579017790427932602134774432021561911142725691578248482232059556607312156279605154854204663111509113170624661781459389149890586137329095784897235335817937859592155510850429239624252645737355641447414899920332801193022899621897367986923832795173939374997074529925528568637479744697589012844042647175325774005373140160565648904306057268153394937291719795160534260622961556318913169666067602841579185728257545084572387535582070963318440593704667188945489277732416259697461099376413084432382359006003784220249800022843329572202210979154982232435240890479313696281275417411146817583130668726396303633491512890387626587214735766680326366190052642083031682108289640588765358555553299657155896163713628205513395321372345250098438796091257130847751206345417733893174011457655319867538076144375944729910940128445179124759912211855581850592638299840423226065386020531001402570003975481260404878451829519452141452991893049521740931001006531049655188473647116805889333673649730808723126328835280516016142135186779511683356189403610042189480261813311324565808587097364845504557228690792814523138237936869486516241628625844962321332372852154581405448818096354215426118064671331001723224109521463039966828011793737547592605026258223913350368891718716319257518465736103190728303312566584271707540355461246412689166549991074771816672957428099360055787679212029062661145051888272666390770959247884645355285620433122666633496009617001236139860970534018573032367649776968186206798522035766059190034808606381359894563297436787362893262703827764427392832909917663564740230077598440562328749722041599910321361163929064866399678150825251401096078754160637754870070792243664340039139113626417342742130558492302292106565423051167523145481676680296000784143280031014735422927316472481165237197080161750709629863151037215354263975414191724255904490229120523751333612143539134489191088496705570479446528192875638663862776905383838220974042424753431510048302434555546423959305614775739543055393454343613363995370410434080438941404677951551081793187532534966658390028872511688617359308095016032136382168510187920757321645335807121094616162677901278875659158368900356704620469334367988616507070988549982979497407729451754336040340171093134954169453432823748700758382599997409940955174606349757963964772500144881122162308637038996927855735632704170127882147992278680750472855258331627842252854907413634046066930947280539813885050089523473054759891267172848562607984915470174349475772646633233170629404264791128846703883647381342827720350919761159546029012564191470101136693207109601265450486310086085185484225919970928803301733944935937198498341006566167165694999675072900691922204465704587314925338003307527775070402847381844600911603689989148786459727629126904535975227034966910683194917800192137451437593338463280364536537817469270222655558105471907889051324209796902280755367170657409237086404847538480161104889384840774371793369233925146938276299909588146011815536996869244713440765420625234789606540304108284854233153369946382375372905286482761672930922417192618323142046402774530345321969952737379346279612533021170321874162123256637809580207629000086756201251115896019149045784436655874727252152460073576532379942878587492412917033780358159450576927627904979502012808035857512285138119729434038987032725375090549455381886764030046886326056531656386719903006591143618160349859355779479632191161194841389922552260138586350252571711415977641771561073234864713375561018946773683841978099412100110686732062054160639974610515744478123171319158872041302060528960252549984121465050870867591778923857254831654606754290213642655055926316015438448747966571895412018316274405102420517496796317339498329460693591002729901891589444120210931972025271001665903277222417484866126555551424581085013688883223279138972986232381865882926403840168258585470136814526683874479298936754296655931016878842757497653850995693033260049822425937924596374547502318009074074538310819802629915914373162028060594531381014338974082202147002588013402356278064969465748386211995022763780880089078508550642468658069461823612647122083114487079010421355998227256384477089530238527796815643559748496227206296162307037460502966720438739227008036037030255390283417097339285442382792878282869962151796805523369290232246669189185378348818306334956325615063972976350696410016295272154124254637869871726228112434943964108564349611776084502990451023153363814589495779149648958570426356517062274500520168378087809496971092221904245078825872072023925557821209302739513377128209148431646200542539906634284723927400930329393496546249809489724540405206333104534554462273844231715414733912307528013991728098199581794888184939626969111403655042594010288456335053609696613630139564745539841176892334341501875139668851020107528026544233065064455813756039540225792246758916537363266429780080459048830496741095583194549972137482370012013542213953085835165427740834354396604518919866007693043388923632182567508225935320598804295783084642313080182977359450203129602661819938281282294439976606373344065607287482143261481967375635573193839036046465684633055654338135511096734731536011793397576774597083502035211497030914159933696317111317667168336656960000258637903637061211397993428934134884407542416867307183707952644322528841713000822788499863364799589747802478106766762372337050249535314882282103265587118120562334776159394186144561419825241568021257392406986783609126413665969570103540300073384942794530948373805751056689363448034042902155898388374144989803239562621802400474331299964398331405917837754787116514577293334053392537507090377537817044126686459480375484063339175001224847164606053731022265342747823383955456985998037519635213226809283784161330555088896081603182904562095566976395173020681261063109487666649308938135052909664174280917992668090091153855299757460743283299201049500905133008690345944140175208386877460151214415775183449977612376511728148378511080682064382286325870993490372009325441009536501376721955398858863376110530066291135959157801223869101131651809632031575938074267047260476366588204947729452817805447693991485318087208591433276250153314759330673331957565231902875364301665879609547254615171820077559094350421912376337230393592973037863112592976185092767488365243062536426306864579961433537563768343681556663913561155751342152095443013161541407338789300501381596456941603713705869603383594476577960348670850473424550284333569439210345279983193583227603364796343644792663467432393863342937331008574982686456150738292817379643000546079890366079370149826061584153492015952155733721464982490436260422828190065085635955126341156117735591677088378941350315315906872907034318651501374951700007473688233916028957499151943980625501737823277135730600468904309411799215610194163608699309884640764725228217766658881948908417380794909941077277549176339047815012354756532012644151888290579199139185348883963497028490512113421297512665414058902219397191742885908447343716171102568904854989048702447105509110689084954834729409941593075578898717754222730991476604370677276711380813819653675196783594086333185583823389531781596744742045802755940502200245143028423557706840672731152083220383695382819650459969693557728963025055069300681620744508938804282239346787043261326179179563235893837113438292860089971532204002993549516535177372662734878960593620829861185573783268082950680714717678705100076207628227563966451503169822795192134794613945706141559317472531991106036064853711061127743588977385967577282652390801812577077357704146550058261380516402211386586631801526037642816222235624728281494205991228078695788666294802982265721639757265835675037611359694756656604519747734873402522085871225325006777370857331869402857331249979893100188461080621759376311521147522191804101025505414467765607712136729633162045733889365645907998464389517989382253812140605001757543194269210627598749299803290394775123553159982347741706162362925475873073462153285223362582859508443361416315451590062769218799717901272525711690432081288581804014731773961890881653169174976885345481689630943579329751688413669654082059698614185873347384243412065999406885159775244251436379294525675205730750418932276100331992738572165224416833871767527445814538670632855327867688334479054975385721590232690609809643164674557991132877672629266081785654589375204301691965545661687634357767819749316116551248781316041469378436391122245053868588780260813807486767857400681877045725236289419968788031938943516966356192552375130722188911438996359116970416119337530960274599711907401257704303613009905471127012470640929051889724975822052707313449881332127629360290431077101005989615077088101981837883185814603440914956714067885248012355434650274560550105138499987711473444111880418631687275509086340525451136281328564579802139698357852957385557816778696622980473728755155269241857529680066865481442843905831911504972132420721061222927126512187971834156216585876229314642279986472987618391658369949251802775974250664281136789439856776147295352443587077656696648666724102738115137636565883691145290210338973495921466518297273473607560932908632670087401910276034292404109473220015942490170127734880797741546978543925530003342523610523588183810156991629882941252873505682465050092298461684067934834651240504095128435294716227158194158924727261137983543323192042985613446294864129614455481587081362775690897457173386918301250209926196164268347584082788487462397648187505432490907803382605702862001730645773896383036780768634027746847224173956493961004932789149390156729296904441488658011081135778138298646869240757664544741746514087223593445386808196163176611427449341493972591900823063308447241322485119184524086587932336906160004147619403852097493551052865158841469267349132158625583982071526247945014092765237648928724850294617028427793403606328514596481352945224019010686396146091034996617414239157230324696437283990843446545024905865319120577175651222249369393095014492859826652173537773744090065547138676017909958625518068033359645588468050705921669518027555928322260393710294403978694245913113197225847830005625929877228924125065620044889424912402653935364974156543448224983408727589203492788170422292284651403878237039000805853846605722860158139304472362747049359830539037410011024679156181693953897700116969070312927349483856452758106351714859047000695326625192300548190468437974850257895294836464878523433591988376520316313802847722512518154087948228608734119410714124650957638787453168257264904748099102085536606088043635880019320204614642265772052274619240425894766726586465614371847895410377267661845042626584964341885672279403078325513628416163184422709668552886280650737225606558110448920258978791556102107232031702103900813519048109161087956140719858883479890301320421439702363813468913142064673810152673783227110417792806570644481310902231423162795217622148109970091336152480976257275593208493477814399163863271653196138446889296021841569537231663011944884557887647190563078628398403710633440743704482690429893540751080902211900618514434858139277015964567921095987243723886869646432274486941964796751479368496701338601436999996928355514244215886687347811971399605558385167098886874777238258839114389906290902199669053809419366873789857573086097231691022095360916565814825264312966607832607973139620845788194776563628026537386302632937802650452651608161908805617371452629941016459077969900906243584435291915331301437789556170086220921586360282537092646897467423989998716396513959388167417147783552612409363111630363946464122899372500170389814489271810309353386678261833145555709963870554030563121197602802385550569323147618568873494127210030952067220871774146702731534756276159335469364369264515538604076020246966085560342364220468099130211638799250263521261987832248550503687659856605231705791667928557012197764410777881034573447051346551255314716337180309124364480214567007110928689013447422641598227480955031790660873521486194317994183471649870624804924322001171755774749344865507309119540240683869841898974813567398648919628010892273310209105975746589355834143407652702028994082332998466507087026487332340121101442648605286258995129386740734486444193603796017606120886544552003233544898885887282640381462169357618193591317665615440571792630261300364590294133359125564137474742163988570858458075930450803618419265422496497494406814289752722986840710666654482613741008785798488714412252153480466590448875480995001923040171995015738186806243972342418689736837143200402723322028044961027828785078226992486756799651049163341839247355162778296124125953782118524486992310298459166830446840502199443700604790769817002836468736468161005032914177688372574315914820993514293859979148319990894530460027375109049196712790564478266247853211890220294628674970036298624722767108935122382087184360195653286861785993249678581815616582464014071392501087159171219797851216791688486899458750571710966516242516192326175335811871016014704751569980768649611069967935800271747830703582819818847002515282960610482242282845759511736797989508345754438557493127550108633856973591803510020075783057594363725547408101267350628468204596925529055581791965458993462813999196913186452099230342717556363206030411565471119304226805864929008448386601112161354879290981349940936850236034289370940308843450899165866095883546772634026683109178153644964848284816640143767774710689740193459375937918029562790965018877180980340728610206722331113243757567651306341393853345931580330116644738659572115796707407361537145598163061512623354469620715124854937479007246346745318077398265141084305652020779753238095638184230200266309732983100116031075653252126703534691709355655108426679301447873763289860788890194861945991696176956141439719228803034062733960532510556747949730043630973234844697755146635880398266071815673340124138390821141628577071579363208217908399245010721400286278619585253715044204902623277994814309077190934952562504006771946711115717632304299438443551328398611134045863831897267383584090724481983450893150605304637604813359084163665112088182870145610989717764936717624499786088997196169978724758694186557254811882342793994817295338892776657170354393111591152410605901395330315093250228957533446641578903425415845925546730363995155265054610183665963320035467386220662056639669214096129792724546140034030969079026388030839699897859778867397757845407289443187452812102694467374489000087449282808281660724353997587472465750685430341357492934226140519936715178220397165769922879213224740657838718167253819770565453494149293850896779811501690605752836512364572517798063988476855154264427108751626796802777790698476761863686394932736848538999933911759824354324652408092255527719508830729850305929284237843439024633481593637715983570057056233637896490055571556052599575829897638044574058204205217245817924701526843966751214469264292969207638129977679773386507577420963533962703108669407920600799125885773975177517163539584445459983135155463934792292464100376876224264125017164712402495538530110250241675820349668091297820587520023979334227908891077116601613401730237260533454647231318603854601421148742245086852244436114613262097803708575078368483931496277743136958491217845378036100124121243128916877682005624160754125249783046518121537158547491277784846930132165733637527025979479270943586501016389299211031801059948819617689005624967002461907325031819664816797621311099389673970655609119275693975117232183666393630682425434966163478344001036756909269661371835790769360542196304765586992212286076649110875068801712534711161820809305350424602687246473357533595705190500542113624010567743345771876757046105702968197624145124844916059235493476031478913971689456022662285497897251416731896649753168616843569745296820739344550024767348506617915127842009704400240720228285680977280100024439525421256777946531599290990276338105958526932289185333834177508164320417286810336108387404265780169278844237591244278385900804601609391396483025825439895050051258422813867729741011036198852405895260520836392893262083541766939528703854673832163634493015633332135943019517173759405966907217151683946295247728651023596383041141275366783125424989740451265663872164707120174771978955638980421102495192669157223684262360297812930566111978050131182657404006765887625056939723590558616035021041149534308071530514831978315268119936828382646383198161900934322256268319646553863736451049509611424102762739695745358670821908511422328842227365182235555420697139893401912234171733596100645244500255346410928482853751506665416284993593336707961588456304186685595401370699866437341967975345296205918532908580259831484657490780799166693259449071504998957729110018056003499928031509292641186124262982711639210475754059093090614993541086942342314169244963751885396909334881229924314740256072572244489612121261530492638610585383453413517557847369376475940156946741420798314933784010391880868570955041200914461721495704929932001443732483078092620614487363282358718721592285880698910763312108895740378203535328793702616375425439757739377226468750675686604254210478582832157087520003604256437513209087260398901888314548453288241031508868201914430171519016800043869382194992969342292327434900833601932063277730929050042418645016523390554374922099245230408580596482699607984856616166523891170805960646070927509653663661170846931850762286966151466311652011463942409976716877144146895054707861308029047495677646161614413706810222137399449604242622622176924293949336827288455291171946639189102335459526440873867383683202890390891638151357507867427367756328481023555546062051945603562252551548691097196211469456162194930595811853351669115287963087704358158731442138462330837220960685764456299708401051228216438825656503364048458532856992092450402946184884516627082780300848463328933016207793021784536101268785444826270992525024612420330175717932171053426795229845852304962554077407350915411428812172874617444857191727007025657762212753755842067350523160851985900838769636780101679783903006705206040272845368734244081803966664605248733744122651617405660796271543635537622580979265883416752951019491352548057121193816475834816690783670673214896170503112217685343667845559229584738176331361920786187388870389722377554585859395707712257901631223561190386301638673273506867108346803374599084034366611831011423186179067662945265834344202798858611754367208890813758231021719667382649404471351873849471942357520252883734605862846146221576398500663664361925246528035608778175628500415856925243271687457988025656216822782589902806535714851234674013462496191866932086692908021240784404652109515264509165706200001244339360024374965878772655069867492326557806233392679068903135217288986176707815926596710979680921555140115509851182345956875027487860932661308184178084368315450070141772827434496509200476837137719263614431011246759792672683405415330589401379730780360928900285793318203456606427366504574517383948806416694674312705461356195610290432926319787386214260504676739607727104826657656177054751383227066322335329687514744742846952516459593718113333221621225655053636988050971226094176817050188979595384587671774869262075860696637065126967472948954160623441550281860305393314050129709826601025159489742604665076610036972438899822294989688613519355534632739926477745548792010123405159887692405246181074889791660671475479898047322990479720064496823895245842575335102014830419044718580922900582780310509683446375000687441802368939210965647696227943551739121285619202225517066676911420007895848674844229583618402740082945810076725343671166981382994923220123533209327121810886817065820044624550916536167944585020207090408280556551778195285442866765788536815811378781071096630599934224447141984625874615523643791798496621483401401211891508984234258161299001309272304164117246042442743962778099295218029401245915455627753263186426916184467414354183823725977371204323931421378595877108538624480827747320582134804200424783290597126276257235522917484506223313265584544550111193661541851041943938070876702646893284521805354057078687025116872932872669054609246237603931965726994806713698654074494053658052144910459484064089595753571637082149348935526439861120277711230388540421074812946623065842926028966869407160120432095286669029941976846793774027929206967787897064351101778432700175588631807997312671364376261695940875887971527069529493551550008866725375110202207633257704486745690893309444592518950672648852129710477830605249704786170666155076996024125690507352371052104598655419499846621836504902652294996746862462611949026054826339621888362732462471671090318105498068866268771822605176322454061438671047263583491958645728904569508374490141839135320795261144942473305841972055501856822241530344434268658640683237357057365575518242097351750547934677246874895855687301634373230183684639426422609691401507546389848339756806132688030365116257316278094839099889570960233670031703670707966570095564417089100922626674967215155384260313944400448047735868274092420359478278541677541390150346014718725292965349567985123089655051701688955188447631128005780352920917832803437418660940241154521336797240321693739094717787606052843601166640303077360660421373568810695500437910282479282735166180642900920750538126443429526811079512478406104281835478344199463883211630725793550339105180458786184687967581090935831129624948152285400793666475797914368664086973846352250299720415866787823744877811641473742418625357693674123394806810000459662726449232182134524617989826231791659562475052267601646294523371484353302169435806887354608544166928563241402561743326279392709866414363062469128024032836275600048115649233830173835931888560500565719764757031537300545566978215255633087492446704417508847104718806863706371786919960562749050512758257270500529863502970118696605639795392846321764999124606670049753281942525637297888320963052130057383048865501056623118309529828605919170304166440735960535731435266364728838966477725547825803034170161686741093869416218092637093425748251263199906655736330038879100264739757893962963679317877656902509311605875902840339135025042965127378826440526429292209519328772579041505279996179670414006224965537911694826802521371862378490840551932392491991731821520688069709028621298531034796463602832131889835654216336861520183665416381825195823415134143374196800006673994132154061290775383634156307075524261532592846546076515036977710642591058349825728006881372808238584202688709285161990038037415324492377050768480471342172888096310310992258392858448407428970531744922857279641001131457607606485645230248021172385770827054665409844179589206218543213928230980438510765480318861596479271288953205879945992919190722947928700583662431882816365951784958834394471370484977671499404933618606425157171344901541112645754208764107710737075249173000178515637679872926801997989996593585555324216251856981417260074689060230428134291903191328633949303310146437004677876605447974947907658783980721118335016501437922618375873656094212395902699028152360472131385887096922904392680799502087103454510777650445416688298843562363739474607469275734275776349638582924962619217309614589734760098795056992775582862425343265009410242370970482489842079007537175094423528742319925614064494627038123076127285294166886413332512894112186626392021228827037167385643526958362826068263242224882873136189358719552264998808205441461471083274101031754509721861427919804315016045286951110379294398613864569426395913475542215711603201530058411875025002343875807261662574952991398974604211386097233309241070244745950087448898370938934704067314101263988688497275806094529632868157240052317309919102940772954942826779141155114484914893902967676455291160395820188007938154277072498968245955178006609490196136995924524595445431791962345792622942782518512849119659389394585376910938663312514578122055899414791160770832605506720668061356527440906616246691230130070139674882264405460743262473472313905553966052057274566836868365623217603668633893212597325681192223893007519340503100875058885760886708777326146080971964643148317654374946643996494396472367972087996404931392681985932925083179853086520658102398694811314196007498227914845164250637660807555175947772115157924408245909883096655245031920098033185569205757027415069583776596669077210491589108645362018730718672767775014916816669629032660700324098609288254391025034662324606787583036345876505846252867018239611618245327616499429834105084653761202080043788269830350756788146088947421481036471710021279234924974287185941412131885984895539992148725425269129994642053065663657806728391693236604586870643191282120674905621805436047447889180047142870425172731192279380778146864646954009475561661203318519869779032990473118353585237843897699971155662638143455200073445672699983636398569143625565724356431425591970270467228677605442262437092174640343698086905679150937287713701012806960453492262026294403248616390096007423717032600804235538666843495430715885231097332193216915569408297763079873148621181420020684734270142105966575263959366139367596491682980963092785320526028495694253411045568764811994153768999662872004603848364403863454569520592513711241434092605477375358029988127381242524105823761812697224756104588464205644589260007225390980452756441320397178808126438375919183336182175677221020642609663540436288294274423307041666371833329832258659363111869497723416300000551673444473133170351965664186221492607081521937302491215267196500857387546783285054124434223814909952224287682855721228052989624876657811913024843894085377333878510404788498118370199142097434998195220079917006213122031155247126960435865253969314316339115955255151603293988494937819824292454302702546087144596604110725039600430712267623616961516490619969831312059103663195739018411800497652491044660209759240471290929128431980016223408109563378839447585211506498540213177621255954404730498925866369733951354820823089093449010900968213840663532462203258808053722920409552040436167899769311903628929674189531449011244695229183259550325761854276289484906898926853678742299937530331034988841684953751287562480778986939219340455845037646854803907375193465184151534566100726477453104506394784436771951132788141359858836778201253007580947890432854536854990213374944137506046328226143350885702330242174748685125701569297774868502730432020874637454192599340390196740740120024446229767137625582295180282041059548485469974285771560514830573238775937324116901314759795741566095703258627785959971710663256946317673294539494265737736490816971632516299155236377171954689185516950387601768991558983993663342061796463303146964798990708806503326413285609598595070235514346526323624721346017998950681408032766559848263826736344177131837410448559096583594443291867128477558493038531802341519868538503366281243771859474901443802034755397190510427336185401853493970883723507220436579055338676035849067323446172067833331332190127833899997336999100293754286613450326870593496291704330694523190489701057716786954815200299816645072627561564779015231918704724253636715680762806003883656839234829743585226050368822936216413230374429347594437398928760292054598745438917574088741370552569171223988951711290159400187529272788128596068597908754145353173008117048559271817269069059337365085373730904452897724079019760332081782822618879424549688672408093543541343242448321742081047874178429460904386120095467683770196543192414692461320202634913726619882863892405877679399850658809068013714839690151918672205107060546646178247052903387058224878531898446464301310986362296563771501917013393145425092290690723683054200212379213274273272624183929343306640012183399639544356113353954634637312149657100243968346025398063739292322747482562609370378588095134688018073709790809318418123505202257549576983007886937420629812096087318610808378951595308012378432096831479570043325109792165225591386891486609749273422841976188480512994565666005279077221867146281989543156024361331235571953728453139724165866882279783472549781268678167438686023840631290560377678360083296288339372823612626487010493717933061721322580865304498858901258968277698477937326553219003666206150842486322529099710008421428492394733830613952973514478821565422416275430069918793002855252381696830517171517237441099611544955173965012717126011022318537165468429908484001753494098169685219501977461904682691818153356601096956607760711190106232272296234125615876045044224961664336760955715970757772279203619638742789418500614443589617671942312581966355498167158621144143639472190411052702499390346340784902368672485381490774805712680899881188769027373428906173099353879710545859457714077672861875555831773924823607519071229107289094551353502717742995431477889693729865551808470867495682463413198697342260401505873326583431247740659781103389667112264033860442134915386155525750447687528022728711873299558741486421541937078066754834168442514107973584372248199507828642138709808690365072650787019957639414489272904416229945395435501513123526390504001333694380832471138765182937729426957570205480981761218082908965181588614501964973779062821625751379907804835151234385045422405571874858013953769829929978199020795081569197019239581283741960803381575089022640108543476109517058814065481983750854388547655952826752887691587591142900755055481720710812973602490357529997122790689610544474843855457225995606549163929576912232731317700226470440092173149636602875753938030352072859505946624347141529703687450036814108364300486581714473405014901272376611240641610782171605774913150395197132512361590434257945359418895260706150095095632111868661835775709975200268432129155514286932289710893362117648262671360674512297925695995585361308548135169882210427915649447531534605583307834026282465793868809553005039384369942948767232506074469194725636335759299432537564168854643338763001092111471554913242651696310763921765339585657888903132180847652640933896145651299780771667899782244573859102976462756843113914947843474494787296237915786208811049491177400089616969249721130775919529014468436532915694729907277697123277476240285769153806798611081668066711726029484202262424277613494703830049840656765340041812969442445142695383456153666692305021800723624979357871304291050642613774419057727955740407099215070133195214227963771681830712354971131581759029230344931866153043473417411165696230683045954415917322809931874952672472361540149126190469666581107126168470359191519777088933592971562529052740784044945348804450323017541229117443967031113194439823838935890274026494629771361291998400566807341806643135559973014631447071348928621124624979781198386940335811409086805813680672267018741241445082021864198217927464888601624971071574309002580926564179186502954923181617581407612684762625909644736082394156233304576989159590194209627636915236433436451526186525970434889826220607546791974100820401036494773354434476406942994631191530962497676036366173508763966700006586640544432041314991800385351483663044631134655799513118656633392638130009394074361658252631059080477327659525638222546649035778542481432552477651049355285898090315101893035504866374230102649384377461086576200907371700902642460767293415620716035744607395173976710685249284799518071809942029186120870389554799249049334886862287419337926197196413604843523405039978413417534616835322903526631498032075712128086350769664148495809573212414068609196030786518776834969456393728986929565909412332587055077833414241467876564980123493015496440206104369150015421605088654675530335784345592098333264050259163951438253047632791498306468761320693742655138545352498730507247467312394775295635500447572971021820769867122197420232528995185335878458574202123618532734085828897956433563227935808042700301900351691198718701648791812456456490341068739455343361513068368762577215479372064894435779243211427198401886653672612810412705509025063159722147270571937575768654852983992740673534359638704124501385953758492146874051906116817042374979206775282561113585701582955595155872463807027661165758817564486962588160403533677560375895897197907076543791500107948283452132752956719362339791707975671787922776574802145210204619743456539506567051601801484771833302093418200202162091394240942207051210149983982662829135858541130355414138605521464684824205687759240599316151406669520364839693929917198492533965781855467367329421927536805189602919852381577556920302325048448567121763686530004036372303895199301193239123371181311929142372564221898159357841717105262548980543788202574514448261856647916116298963146346130081433207249646838765906009323296952966525540840814740775173060980450832456183178165819780101791187383675050994907073386113925861297814151301916654646245221313495378795285425763366287787129819001910221749542884883338507545544830521293513015605626579922156623298238333309937167981181539075955595966403975525554763673481498582621437586059163368349066428356075456123691714876328019820728539576110141054298639284300921542747245527401278259571230193724816245316817281860909580999588860806398714307843915708562123623841647147015657913915414384118309048344473196106872413441178186434080008673735226369987868032482255483220517721921736489437128287977918418337531550204542419045953992777473217621101762059333547797859847890342811729432269844570727499022222822084793366778502202765934364613633662339989018627976137150432031783617653459729459905713538202891981992794493704482704466123782067771013134570102234214672618109259095127810474700459326553706916316623015916797025222956137028166570079753260441701217440362233349606918316809456457989915521941202118334966310479855590576299672021461764472800996214284511189820011321232711121750274991785421286654156761017559866069837986333380961893246115188957180438527596136044879782105146964159113754904547431998676682688570882182307575249537518511261664844654778784992258491206299606821161827352917582525592913670805514075186456243446495387897323705179396516332908556795381053261590163906776557229290888633760488927073823511271525756934947290881704122261749287528810767286629712203831555163579170415971879672206554407465619075394367307952644156861468546948599724333605156024978755759130209164957157913252868286917950617656569052006068712312176663058818627436753020394632312258377523971198676825939450992052330556264688854342891782775292302230453356887789255260236011981502755377113703408692993542544660092457949987241189772379159267091659889704698165921522792560927831751494637505915691680218165570956137688988913010434966332095805069190999297330866899912066871140534991685041469450197487986110962919038889790436953902356740293814946274982721509620963955690249228027907167351846304289291211622102593638711904287391175024400703462097978192550483989676892125502457288783708587744162875920098333335801033235550105404173772044307598406228050198641616956775714074575676714651949676482174320019552302678310225204866493775498662914737804100065695167298337692491902728828652262299037264660048968562348486304295297378738779925578111737639123751610107035651607956900459336686322572799457721688743736562201864514503465175288340132803468958059015285289672226170072629130200519904304327188860541006304338837103518970607914876478958017438289832744049584698949692002147328707387905958981447702865831098125838222132154928486888124634079388987129819462146747200407094082323157790747854434551430699630235218544356278222010565048786617906599637528746428752609133322970224878480478585589673008467985822455022403150871434276621723595069193490553236545899133058179682305256260473385481531629555778131052271006872983105930582604390166028111799527976026838325742383602506006631581460741249554478883875889602350718776120133016958654132744729966570053312538786049389278673490877384087658706503140724315776338476897017883152206596731445040052394907648826495819216612920740312215034350031118674837404101869520365718640701099543076885549741586680133023596913629752170273510513027368337366759919579638654777358382182267502387402985876005636258127586943894160289817653985969872442079508215041474681357600409018218243914297997750022890790009690345500624697642600407762022182234776813226565948174195456302560655698324329699964572478340059930847067989051721999001673558279816235258054878265074878909233237839846503853260008267429525425648498819107897527713965376534537351138753878860151242894634032243532318384131418661290586154765711921200888226174856447273506957491972895945192015741855004374385673120027027226437740027313965076287756537668461645940915018805141100495801965456196539336165526435730240536570924668974939939659014195975404093369730365300030365012889726310724102155157558821711640083364326539482762410381692656103275890880414263851686510454048909424416043556125568605991598672204813429462954066079742678310113912251747369812814993144771624860789452652790658908780548867339621436278867978720241720405841542472707540411120237785429721937835035065698917412844026750571886413203395407018854941108480269579929415070663254382054217583541990238089700242014614839701924177578930360739264367218411178070571753855380324688220255415281425664738675509428052178803646210597883344611221579159780825088299049150927000186467145181551389604329140829789403235497059465007083771022072561802177343236960182309617191722188490327971459448889025175471269172932805168133657186348132219204260564661358335869436768448471684877305551214797346132640636074850157582103782221973624095647607074278117430285642014311589684494040647325621201637511516506684393348101526370847653033070187880266148345247123431996944468567132276276418238630846317152857072197000468716352306341689337179816436888574073901805550219329696546515952038206566916284047202925650570478024455959633494557920868053422202304558656275661694027206102384759307833137326305025550205052704714024793301314568396720875114536506667177269680432501824106113556398861100660179073422985194687710969070749874712453355139299853759638524865410169871860695886478383713881426611447660506019250523663232892277581242048871346305155669248366261274977693619493603382051900096519219287857951424907096859894555298591417083919294487821940352001928894948811549729361469481713862225331800786646886750374711270998324829008182967645433775959384900534367178452805541590404367288686018715628664147019565478315277757177367945372967515676507444973390488068692265101015865976576042093857212630653383688836844012293831877489274242622891915583262132433278117723878902644208572552927890024726942620437357206590499543789148184028053307055561332832066430892007286868585373252682206693709063782783907034081067955839319325340440341952921193966121232137076386639806767650250187567713425868485454780003025844014207441651127218892013907075932116627239860440431495808895697969397074553986924352935688160862169578951730170347642656030143250571266369693619864400861640357840269901911574430490414341866334789094740467631747601602417564373684236824821025435080461156743439569769442064896209608736522193867616335160378552395717826120675703713506522887477928675963074558828935606913993147505434726309710016081052776402722610159796603008309958754890635720558373414963841129040911659629718099989841894386035772537987692826704486316671957781958621468868954467992922246180953145203248586748217205345121655974098999996406960740762961843861566068753838416729715263654579396657396693752902342905908007535083653229565576508041929223281094451954935264905563651559326926456578411534862647884315654812660547706404038983914555077931785835348453448766251839665243214673513082069427172736904794404151107455297424895573378181230071321690524690422292382535417876763757839039095579798118335228366537076867115668145242831999996596012258427565404567155221758879806209950118173897087265962658310262415984864026827020806087872068838669270599467808414115384169893743130906590363678226728489810165918382934695989252226961715004896289749786375097024884089222202141138534124732125017868646848996112457772265014201271448466351097722463865706868269307465309979086334665405070963362960613127471153935405255827623670295850385577292820289297490213195372918167843481024116358619242581552573749798819556554760282707293139786467709374256761122953714348406409510254406937799284692244752187875443228874489248328954129254094179528219594128803164419300946593438706762711900084512138363251741667695530414517368813646119803565653907902280252991868202261847931921609328285064019109363917663186281367125445213048619256792828073601733700059525935200132934748987604747962202555832426441006257135854339174673741397229420277439676730523764805471123945879506594757142774185970815607900524334109020894320866184321560277035062232262778852810084001351633005483618766502037474771187082579271334593773657803250786809117584211772850374879148629471363027643869653614714984486472477595674684365929982074817793976701598462613921500293193301617271524252536539100418257386230009047466025072741875051900295569221704915420604847097644929273226328821700749117435943858488982803258984227603406471504205740083237105927464267112879623328455037371698803298867906171344962042671873811157956616154154626013741985423025462648865936594374193290989679682439439314738965041397939000116790818284419847076691584094065285142430472987521782291357154362706156177126069104193754942420548304755799372491303070418359499923873614862000934447762311969010146789478469497802454671258852160024993027474862694130882841076620695695608907359369386741022576430562824915077293416246590650611956783550247884485253785023813424373139535538430226335199040391463133086658978747896600226054255828161939601152615468390383510568734666238552652797208072056542704788398727948894182156421735884610495980858861603586955198344979613662524893937185045744053205410402387828339027659980601772758148337748718827434133524927262952751947121419936063484052551191680380753648636538762797726760062494440815464316966212433300161744312942098513766085948117829677997994275933121922884791282424075467259721179345144834108432280426140225280591994270465880731781569569339327656355361111983772692369457848449020295922589163035908601525744359449835535334917162380834258109759554162178490324825333303765237603010242963804269596577027473835297265193421302480791967785292652452613217889261128155915102287696968226176723732301414066404469876052655640782279717734243830274547381459289726171016686810901012245645640059640485692476099159806371009967847642948421740394478256433350605633511952943834483187269341326914370181375096967680036802567199468448423025421426541502686276204412797481137601137095702021834673459343502843553016645007570683431284096283251890808235471636737259118181617033204508757959794048897685896543062511222937950812052157975254638281539519852386102325136422472573707338761920752912694502452747650374495186792459312853644090907363538405101598139233669012111789596654336997349401169321424962360106679596797997737358073580182770669937538324717465287020869531248223724575910444217975520878204163569775690877487763300176139423875823568723312675242365522385369890607522951199990191428916655739304923168677022331009610730171645659198261092658092607970722421159322024384213042830351817179202387410946518084679912006870291843977211045385720135596902420661820625246101619982031725219072480599400100918768917227844541780839679174787464145732335632459045157442783854433455035249112207318681508277077195178537759968378179072503294015090691133104873080532570123954544521869288289916519602335845792037754331887635559168606126289503780810373130188624507025149788682880495127532435895101048883730296725198597020409341794992504058414672867154533267584565341516191454087805967124254299921828591329863146106033114598846934215086863518399091069265973310721791730495840601788761664553141735165644850330746745144734186174078766624139975190060716030720762019545139129646300408589663046144602726691363835023367171527080856031665894762573487920147141449150979636093701706261345757672948109354027943800509731543901733498403884849715573580196880937305919367244528193715450732912502272030266728198989377717608679053287366557938344540166745185815276719381396454685231666012073538028980187235737422626552836437997962922589806316656562530516029877810897626903385465323314341320173430918488915157610206665783063868257877814812393399854358650898187838630350717824573443835501409653677304212343414345390083678494726426169501904310957587589215840427382125471943168391326212905830699349463246839018950765178587132188448875511642849843403274039268591427257375863307331425680166281714182269567995463078616672603118272319636216196363811826379627882994065967250812805673908642616895080607244206230869209232358823262130441589185808434615444424017922293104116936382118358625578372424652591753827261199446340103241362046759844473607819549783656379744230574069165030620667210050297787541007104212268323739270305420844843912985467968125505060262598796645248487309238395117179767239773347455820504197984547136757206802969181859652110263379389690362359958362388109412591713980116835667140933721878438444010695258851801391733095687637980409008715488213875266236604681019053935048565640360686430419245238217490395027362356828127595389538329042299509315788971767126227579780325285445882195085364653143748088280674757765008479823443697490734625393586167767341062242198629940038315380169640594010505092366567734561339040872252629423150787571524477000852571261898331219127334540757079824848878517476451607936889830773699822115579861425258987668995680762476156379474916312951487618266386742661045732976961357946726403475643020755244200653405767995203205943585640092001095358734296699268866210241767302464743447609745224015302643033606390700697781421415734768907923613703941257209335978099257566961985848787798444603923314301095185564171044638243484977511590194144037974002825870408855240761865289986490325653900765275289411931790299430687841956469081677177212531373884489748018393444122649245304710733789590791529246680552731232495491602504942180461217214936121211833189785809532313458417609433094723825787519232485033710077038912958531949864001642797803840975608407529398826842747199161781955136803470661313777587816922799877801096891790641187286916269128998087650300578241628542951449018781292962609553944686858832729133035323011771898160359107222427901395585903325627742356093256948923542303025604354817318117829241772551984757788235846983994540487777134382908972646057539958625976990017132296424124858843224561638142962237358719228883415678683480846788849687149664772084723417732970337365826514734482596429365827716620033921313702000821270281180759107307451286732432613369717491531451397239139429807187856683828165820785559562914392971602129307402745384280701840554824735173652848856955413908029588650439097029808219761671921188006441841665903680194958892862476573604937377912433343508389126095927270639583391835014319484155334391613370810286701844105147595410489357552560741706642242056929932665579360689851914906994574601358764114380385458957170937931254176394325326632852909387510065894391139314012537752361896681380433346903159207884475667066328513031112139635660452135125026416626934314721344631309078893900341520753820258799954889991964637654268168669135218238118545857882873869657534149629580483046185424172264441890977233454144673188046016317584261148194016550940383371666948111312342647221693134301082505551781988556158439717075156635447094598394515674976413920588960502346765376888245112494708182207072329577262878471926108029731577483315355888037787467720048651839763707548309706020722592211115729757215027781871462837020288526567808342947194416178172926378519535785183551588256054303593173204375256639096783030789962952482879041297343523117870551596527717324037250037913978800916360653370464129112856056938085290066645136112043194503966017337216764486295561498005435974135897050027039902335853287535781755777022002023079886704481777003201227546535374683300385368513344926843043339610289398832683682756011287452911306266913069828434090643988512274770538006320874449397034421715923640904540335559372046925164145774198862236637024694269553639778920021457512906129656512872008506019886914212167852069663258437451640810183717254275965467437647112125747816252321487550574241415075751252670476584680410979127124786904608576812758743171343419617138856313794765037096751506734951913314617207709112860279895048973551316640593828158913816215790849858788472499854227198163268598652991547894137968707879844971483926777839945322768633459053530619044817428684050280967346975360574881791339266573339225806168297842943615010351691745358833914753397017387148181465003646434281361858332056579345243707971933117871402931938628111809221879256756489473510815786006882529936702573146354235460979367724025913507470129905537322792400190639391486905011026467146541309009777485274546247273349652272749737683143192300863019277982935934501004969800900475796462095948092343607041818553659410240603951712012135920898311051909888902842572357069261226702719245998153174137902918361256284789452971433539221746033271923829278136515083848399577068146294012994525321146605067000892372134312358939425234855780652574543876369481550368826665061704509550209138845434896319322365986092988689664087486431140843501253484850930764648482979490013636640571907873249817799707718450038646478629230695412705303814163552619772346630896016259185636081580785313743219714377897055781837170265025008343915315912237855214893169928984591967180083665076411397716843972364845577343172733807320921928211296384833824953782714768657712859009293715707284035929592070278936037081253459969347057740823497969931542643008609981472391647422071497203053625886141820871621370636484316184079904001020328594908183943660124001224183288200444498301895935034168690599633842485545286271662277529745803846610185093146173398426154605743032715428754076189526385159644594146500338549874056756137626400031469095638063293095689751335661987433705556256349904693114077673068011433207227199030288471078219524393742099626362386887050471916899950075774520760723467348876630356765795921365322840175137217005839589412710166270643615889268179827343893837146623833507802918745374409416457473391472779760142936279626234416931928492078590329391478696247554256074769969959682765390277955163131533091143449685135652576207488248587334556190269336415506326426993793662869347731371542774693555169107046290905978640261871046781783765046344620477084389292952827592393633600413947181232674630749096131854422432595850324546432055004304845247886714940269203412427220040529063526540348868426118998413083333461437791876345330195248829769474363425227604184565853032600276496420025795317350997106436492729923858940636953047989133141750268513008648214528403371101992418640153771875143842227968042251626671632167284498561029608436978567407736801760461201078248178697831137462653566722076369462777539610781945120701470827065439045192814400230709546411412827031380848124691148633005332850975530739521288962228719092414479463059447702569013142408207972263589683900839997451453321576993310157926483405989041597728465685406713070744305233664679047736599310231889952312224156246596574242006684950049443202704853548292282646036716467510668141898180057183370764309414689013629235688804413899275358925242544081159851931633806469309788882636992265310196293696398330765647424674825367110430933576655363299648914057433642897086657363594423110239887865911520453652355287346006414092005806285682136090897781524596691564200306338983869451496834149627903806994430404033402753743658476826046497925927876844130103697088152394106021316985674683735369628596681167708709805716285911280885433468168530556988395400377151763993418303177213573110913505410897155469301580862930719605482341312521086472072919799749846655789979896182607363982782529510007569026831947916439323669261105413097344685117642540306849282663163178035624527196551196052467698913389921501461749116919922640154841694931179309034335672403658924943639318622011794116672901635458760624720334529813516300449234969365090079843668031831608943691810542656574035378990382644827384088332290490254517278413216407022875072472035550492180176103647605164762117759542619551783707772036632569568755820290337725968954034188079506251442078716971811177224328549333540876440805720739428114997142836468547019466572052069068643041100934462648910798784251610729610089160342590930484777294864947336863766339935985156444475979094342675680935487787986545117501311712255588132497439266605406155535294985731701741397383039878308198218704685536786726355788358365002084075669840404569337390434007732653570987064384005518726929855457506260647526526713921055495401199374671029319944087683682982980794588978821308219586671470872231012798722463472820102602878958356142067616005282362214314347642224329508934263718523625078454062448786724486511417434203720159414506497062831868981599145781751390149518053873495978898971603385350573242100255668618063351621771953420099405606504420106790077435935203911254201364314780945528092087273567787879678076282390692745751005190185828528925700800559841334442291403579886065984311850932648366363002691997596300926125250458534618087109077573765353007876252363930470777675819008166330141904031714296854865215416983933505100185193893981373086765605475089489407282587561832012381782382180080207363952323885126256017593411727831480512446939376456429604964273099095111334949615633849347253077372908836866170981036697633412148402100129632944958013310561985802244865347815997598085790574362640018203324089976792982354905474619016624806983654325758400633680110311747237333333442284415556457592954908038124006927221504626534762107206637525410994677663866136283967701078118299296722462243536597396210140545062807014157600148837588675633802667172181458249421913080590184902421727367665938646267793664606615310932687988805244246081722275675748286769533706754408086919540425448593666105730530814951844870362927216375648168153990498462866695489232890489697001161166672069567046999811503815322234528758299647266743712691939596883724717265533718121632215352061038274784740358349009052262286111028901402093473854406424800882098624178409276169878898692428608839476510801490297547995093134148811478610176674652838264814125956897036299225737240914623993126011605521474704821430431427528220823469606581212506629643205584947892703939894632418585808275300487150698885735190364314290228363970222058742276051509169676191220734873079441469625157501450279328218327428688688769848673573507947365125250304068656268842615919096470852772826473453070725096675389250328216563872881304726096626098576256368531136353026822417713300992522444534131549001464878390525867585881865680940562188995759929096165079251061665414687089845024525830406267746896224196600238315354784374865368245756507054099228644347910017040266848230140587288942026327381711034758593994342564416828055529536126308469862307818102875190601230613408168365874261638046039823088294379773461786975894662643048678432527954466712515059589493966226405069403152250138245569321911914103974158201589279270958587678090311509222708302616747819508840940575556308685823882506981100919676744427499857269662884813287243099167832783238487632143592442342340571154162228837132200002043210438111380695517732930039744039076301090999978443357796740102650722852437426311468784051800655007602693015866270468201268917578749706496076350155957322297809692602781970754907534078446881425498152551663212230979624425176911111247812294724676418020454437888821650400627616549447113799975173445394417426507806776445681373897662401080076785215736387058854298999830983352807868136852714472342883911150814648511593465890539839980130917886436286933922546629946576095703378076566980657826339756466643084056122050862256709805028250952482091007254122161816769190675371813868698694362692044087768170166188830077079710867351705999775149198563090311955771557995135327945842017657222197066589107371886126558536439554123925447902297251680324251496044148304672812708152133315056395294458887001932525276986614782296348688079625996678825764491129473075875262099950783770412410795999159024074835748175486225574385682221822727352213008023159791538546114469187821075727690766314492459671755499644487429864136165496375234291661689339691405846142364581675074554016308961610887235852936943111407468859961900524207696477464564732498430463964654416824827184701543058363437777898749476077364600230100841045056104644583582851965760636399849713068426746149519878838320616103806615643049811775661413277566744583360759008926628909184489488745778174739392985992301167770188099346779698841125816475177424907108274480984228748982102014657725926018343131108543284879820330478469034300870426256580196350402486932849921122382903010176967598065469862786301368234246616688353753058199714531975538593583635317757292804260727118284363379321014662572206983397598533419261620671114500624789006894614149512261110769839030481067426120879896023465004701600346563243104216432765473277629590466168100343450715865153024008471361749820389078859005818481062547350481180534510461367176679937478117375873270418849070478462391562691294027310087787724854360477442766880909409179235467870309166683784725047396119295217321430739977451913106436536136392098900340561189121724032702643466916948687321988978987206935251149656823215631578331535490395379707328014753848383320500285205035355210382899576496848358705389586033990809413123333310194756168828286071564144905608407435091059094641294401395698196776758716925514528027280828660769516254748098135755506542609753926394397136955563116969323483731777724908410750939885079643819497871102761715691131081931773465658644499008764049524802087757916768594591528908085694417069178003595468336745693381496081608820195116927831750100236745781839890972484158056271537109043637394603726474018581687672773866879613128469086178825336233617223446942351895707633339107255364057644942681448024137127065969505506880263898257949835793045231908789232432951811165274787993060715878686180878170118192708021648027310872706311983237191278925427153609981133612113484197621362119489672012078057063619959346988053317001323792259624109410636699988052858875375871889830974995270029797969446124504699020954950105803074279626870689599378933770532314943652532430563810047404248223280707571390196234056731341348228581989787729859689197029295834434596077018004956156508651899146023798778039551729207573049407196214043745648018263735008375597654548765055661156433034252437736557691884288892679777622990488544396382767545762251702853960511534675314849031879463043056153042188490661557152683615068798504912090653491492459960473700029155024347871720429830313974194792608145337363396106054649652100004126039551312851138491195551112595043115763780143176006733195895242447792528462919299588817261289223978604582607699741467929577566353157178115056635329147517333833977513163301934307610881565906897053793073953159400517432922506557554415356624484333910788864589362457784682345911051881895411485183318594067007601486747978433233042702401113320683854410239855602103918958880931772130701274853483948506858240778539818562841335514708850538349283441892278459643769536078137097023813142907820079932316875525181772264133028573123303044951794551870506682428108135281699017346858826848133313101474544175744185754252288091368642511548410480129708804988988479082938716116974274400753653846229719413798130004827398419174147419470288686407983091365747627979856459910603046473563553729024928596540668298034026372991050228580881750846760414080398484482815959711223410216141846934079421083184892724573019015877100767901819550486466463949065795070146628658897808483392480024929029833463541049918891067631772116527239230979740297369972309496986157916161005429966043710805586004027046312683545243519078354379055344822238557599501206629600457916055502357799218836592831536992895810826989752465110384650559204150928171513418361038400843286953616501356278724742558228364071651966884053873187797236196289070638937287290805149355802576276509691504708503071324752640020108269740417796275813097996434826182562327133687858839805750790294498479575785875188673624152495684136989161745949031899831875446649676654641192152288426010304945193209181843382714835671252863169485910500229821074108499179191617985868747753138212610403630692138109796700164538407060624125293452313643187777557846188470180623117890840735419220392320154690245137203632178714256581000960653907016469609503294061653876765210550113176351014989823606147931555779359705665920151857984251425223937748013718231790504312610315930155535820045977602901554602558426260605948667089299949461641039132251817664437780568776629674035752124833356023790706405420974463506106275691044654077717173901833160640514612166744083783429611181649448006419020961609266828721653482122321386584713673751693079943209371371387256430384264831936822303527165757148482433132814272734369519405850231220376173339215274890448588751188051578691060968114250548310193457328698785590815838079955388314235406387513594367228106629348534192135525720925830557143194409165256239583604982946659727757188471503153469014428673947135760452337787069834025242100765682783706544669038676966500609485787621796858151196994639044620060506672425034259680281087848478595366174056432528112732378907308107992420331099826844264657929714554016349091229446571879984881163188127152677070314825909034914077291874339061163356566063878509771926834494052743625922663616559372895751558857410132942662492759317424986819518543972978290657455505069537209174784117306828421975176726383481148863822558098624665107450359778495438840189114657566070573343612257208004480357068761212009637095334742232975307406116323820788984987449327341291181067395069177191556173570331157338792439194583845564153813534984040628674247568329508903584576720396697799197070921417905647488141726146276176548610248001203405989806679638354993040118059567009539743312000457282976830707981696586112683132429317130715222803666381861770004098975286446226884415477454838438141962812531306750349450968537359122691531069000721149806161442550971923249107523499242001348974673506481825341607649140654436862402127642087421360860453714398461953076762399352670718327461705784417206309579834046654435826684660085987895233163211991389652598914546010347241740885330220027816997959979477730389368367487428811458778341349846028937606939673766136671602178037990287150208911289752690572219249745786225064484662130996131138947696874863763028280996385953562936162007384497682795377965568477390264177262647600585260736053962686862582250808775354680930496460871694133918066982053748499892272752986438647669813689412470024626257881285129952490691608089846748900122797851751301537332706703809348901171915150372378397050877948429464242844150681184795588674197374468049253119735913480507290957018295084340950750084695533668073858497416722784866856935969741137131155915606702500758196696800914584212278670912653883795957979162397920995961821300044457488116525689944702881190207091558558982032081221920435430400732503467667526273247747683933282325656035905029013568106124131985915028715658935562326646845161965132579203491628791915266687744514291352537110365201119670007034246342875149568185089280252077638028855465005022157643857118399566130213116138673437907702265746004149120344262546949473618946577120875599573644659064876053875390846119707220238812892645773179315108832092560570254477795736269037486937319371642774872709980002247674791077593872353571656953879992394663366066133896456071831119729098396954956997073506505143333004973983249368675535466073089577898666602767629074007213540435933384380957403597910274435119274561434607390566526323264514363308117105291612149336659013422086335245824642138309104555544373156361695452680554941332411182202716303367307414264614978360688247401035760729889072190829364988515959251610341685064096737683396041400489661371437286013455077166826457501277892892597621276338137584386301864519875741649941566690054864559077690446277134727702686989641251064796524623398162097408678545897757380220432986126947530967665799114600234675810019410344889806297486698789165666327862646833395283951084197809673206546558221639436002379597775534510804845808764479570099496355866329451887156134696212917612500141989809662190828819361928608522836951563729708670092623734005411376895861348793100905387108147290448192903622451916349876865576864557312384366853799971644930732983121813992201783424361817515849298545661596630105742320851839030262125035724817167461708761460950928822058410597178528933017308717965923778559110260157546374716472625891953808503027425055399773123537656104303267249785859963337363478243740587063006533017987317888580114201242866339492325478522348877578645846511071404936745608446811424901104310294377168731405203377778945164320253625216568318134212308191716376530567438688734472940437340346817971823002393971996377817035664563810510223544693869028416971996337832296951326775001319975814250611493223211431967916192495564001172821542614932908792043839126486732343826577668916636362657240778412130907976452921884705572112619302230306667310139036189248590781348505878466669865477978886697965072174229905596986198799643739042294082307944440344719159670012432267559142972425183575612213390260311755572775222725649537886289414496286520815005769601937904042708841070096412240249518718014745361411945044526221768954019708447277035699047998367415790500923568529368858220995763012146915440842898054190357706985116371020429573748193299886019282722024783910601503123758049409255834430186304254107860504416033662043523542069728673955442900326944866478384110838975508270965091065948580018856372354203630255475653792720213429488899044586044238450710624130480826125956558277285802269467849963440158789275094467211982541227579237456450767088055798633323438189934697664371840225392623441792334259836222734929428440716462136575717211205316885857579599976267715324381248141138613568680716133240884507021802437407547727448882295576256249420549940047339591609311202728258153247772505837332260511775445479011421061436292253385643338565855315554097281016893148790427145896516892395950263904252749168832547023480505503466828512587401093167830890548927239333006260515532449875406193929058323397401198725348494924297576951803903285622190944646315824386653264599552754788384460200320464471672751373715569408540483203172754268835072123653878408423802511014307686918790381248001339625979490856093614137419040688136289988899156164442863331664780864614265134127678489655223462777173881069500216726919558156502153685450520926004731688299950819169653490839109677970126803892130581854919233781574944636241313060269250380256560072490642447632659245695985098389508702720335489341332855998305927652470705843136097400627818292534934018078866733125023747053837405385841692431271163597893234571950284312746748040064208934340861372103632295117109388057314591668205290849944032863292384685686297581373183680507436390174780555184762951052503267013899267682136489600051982686319562492915323058719310991010090970306156743139489630163544354753712498275426052535284326535375034269596714736274257931666279488551604054706630155468687464924599426766309339226736085302936919149269789287107599990095984856651713168618037604113043687070492186074289948541681887844643372974763778685563687166501474021573847234167025995468989079239407814815386035227567070020681487134521165820335840009679314662202427064120937440623353983385931051327505982944956675659188861005309266986467796757931045264587686846685604227336916922066600336848071786468386421797865597278282098375061158449447013206369333492017427785628502659797946912215999415777856414988403561694897821232662346228957065602843025267948649577674530327943566235711439896633460790693836081187557020988801344088517802875954473905744469327671371977652855962105396124451347451905873495831182972936342796225970804241039233751542709343776503189274309604636192338113957802827885210785412474017790767246166126283864583122310770540902646181330376938192024352952636239854028659275208467612965215466342319835733478005330228670712131218647242581424580965446772016127271242886824520093312932097380416863001503442290314903767378919863113083863973468657153949210791670258443260627583592888967315093737742410690402815652036156794805696744320337526187608786513146279582572193278116969005130581203403350721019829753453000298175090956404832212561890799366336352171660095056913888382678497422010910001306613890418921154680420223052856767747227986822584758925907956875513038799930178861635921284630444720909865736400681220473215728009434533005879242204576914040676727600725214485694995065150482229441114278548116032649942825392048284799622012250589081704447978386006424894893954477604470865285677556036260622348910360142860624480158660795103971035175666482192219578751841951055243981552834078965269620383495034575622524241018505489225463031510339591988123391662803258290463927964254563976736383498082296047549913459580172290230704312337020078387147133717862097044784982477123649915371777716771792641218104963019561576637864766688214132675569655422445014171627958150481178809987565033043764704237684153231716487191392296822039596323583753913684657949873616000747106940267087758817951887206489934275902058961936171599536196758871939121048901773762619887471740196696589246484843719325061841127153984009733791547867445316120205862094631794669050445755977263480983621957500508153474198129384252142240714442609826300759372301417490650594004533321801710577549771266404947425736598561357489893176408721406842275063000719258861751390783768885520101036191845338392194304305726226681865847053075493073315647420348364903058634992419425066165685224645626071367819099868506127390568651244821058106521938747425940512656119770359894281971729580142518938944644082478580769908232499792200074555005899164303689572744935429963348555622488829457518300280540441364420664939780707919221508461769207454289043745316079437155197418193115903884183003362937840982110941724619839628846280370865945504037358049550658751246591464948174435410424270363225806781440012728328037210373519333444932625152488698831491792438088973403287259634353036617082534986335006193986034452316661810406204275151898062542792190713948475786756208320229139812048243380014301974791813658205968720880931797085334189156092298840907583852828443059580682555083769238329485023539368292558177934481089385448094653147312135251251473232249344669903624983681938482602482923182219295247413148475464149730741362749952224915246838192082696779296055794004238437087943262771051312630273068743681151602808021783946450650973841075941760467238582646010818579703563572486452141768013978757298205575423751253156749855038625875578586168018462034339241529520565878225695396607741179724008237597054090518182201791986779354288064608941404023547259647251385236216220396358019157506114091337093817368976606422736864640832969480306150906371892780413328962817732935029049674730291378455449136285029412095002112840867263963819195411717576449359563406302979208469525420636775154451356896381137446259255650045986050261474791948781497552017903917245774886336929842695161477699870212637918543063097620490585171278906250577082217177396392510470892283737688513831058312110354806482987666428891100552650846803663456291740535880539374011733623759490703289967291685329664350709424550608454484458199804421861445732021462167099916065605236151612311637906641115421884434362494322132046886967625025772459456298551585023672962584900587806985326823530254720554367240308798950027976548902258800845365689813696286829352817193311591980788166293287761705596213516462863866190006933813788656102050039018458877198838029082445092453894747174603830710009590151961256489414141437231153704064422545703541316733687249618282594150496749313421502734557892865798764201035950427997727271983187456880579375149465037031284522409181570740032764046483075988684166766903296451681522148280898721550567910178542684025992169424868888249776683319003323946332217635690071130774023513664340319843731858900208120711247869866568545286647795575230482196051714931656023056211739409773551221263574737512913310327658048408914533395534011882729046541043499936586527729439126780207424487796691322942992898109600283384728741308852306317966049377483613773672800943688845183469225735724342383778961904917119970349499671261668770863124011360326951326882398313195140718482522465143453674108422716070062377080948611350516624038091786250913959335379159129279115080552779602756388022290245599256741720476245676920425573645295900146557567518458653471491456631327034294947622083119862130260538715940066697698194441014649354517479621058890910330729033563585757064639080263798552099156127009081902813190350992354983915832260710500859309143556776462492099008534885914209145803187176288042550954929626451691142399646321417232433242316255418702155381064785447253011075208976527558843790812646366592214945530692021082137295455376362527498485071901522530377055784720526068286082373503229235339462400432666950370007223389985207314483251797002856150336065952736240208168481933362316911875512181228805307052120529007695625624161268700205760740829746577733811265103055271094448157316024893932895004521577150458495723102729087162220663778491746654627545436981099018918895239340489823028721951970947961969963035240797482887044477351553228918730887757117530034171987131554480940901573616414292659676412352596650803861126550892726824702091704180892889054351173488190036216275745539897562744922421136353322191306599328059783204947778135708950398218703251397953412348645855883528038785240374789862807249573059873836017086288842903606449862502291502060460244044102995777779143975635703546410739987555352211125452044488248973539163691237677573822955655063736910741049420342788505520259505499032522641556723552975568684611501290275601710282690348511349871007347529105553067058796361424547568192535529979826830866909073199003800897007691588936937731295006583132529373479493350171068635231491230585499861279565686057812948975077491357502833188136114868953669892208734065880191884313296607850728465945846398547158895432684868512374714000772752232415376625054104409990587328707761041924282199606832358959366460973110578029135262753071447177978946047530150734918275710940394810407685288071677140454427072609871327912605710312276745642341057590197847500079612940047289594879077572531286986720703529837164329483878157917007781115317595846004290441508939240824676483073485505656865487565446660544512423242075079129598583977552512115062663796303838701637506254063072196114578883183771620061580042568729334336253970377153532054798683363657907195363842603183604062450401785056235830167306486571646742566708323677944909270669103972592507460555357365071038426716059272325086449817571631149061611578796117215611451811995954806111833533690108247848405004922387999590845852497968346827639100679835968744725765322176130549948755482664573531766102110536792789393016713228272008029577452829222228895351083067566907117540832399128829648265223587617705047817037617326001291514096400184251548114485873866993511357057094218374892321841414390740815724713369035703599404651545592167605868411360392907376121963106562137183307697785173390113268972271421828640963511707069604652104995641553712549706043347374320983453328275101206897717859536512240539888586526867065178635994628300840458196827185158374379542648978984947315762855500177159738217255352325593184442348915453064977325392174632418183147807852104980094107628466847020764239092883114804711712153353114076971241275945109701930225737264292621815897564738788776214606523208244775459288854576899166296220133796781043699201451092325889873064288981440595743095816381342195824667977222285059902331506894425464765629299081961383070499850863263502552404887310472363742882680488080632383894016141970715584607134586597560019133972088937205856978906301429869924447786636867391551125180411823072682589226857966703389483824572842438476963521318780121129451756857924789918452785868250817996921369845899871854881898138676915655121308956894770368645433448008386016473363567657472030458936776042290189765102439583819475893438588117480010263928450114816094420095614694163173693262413710544184002322486452464430239734807088039299450925645580233449088147316237460061864390006380258904892700953882687438284792681038373907814422637478873751166388983330518961051856580357569408427055277301638157443632910284779006417003671441315377209878274617479707539216984238963057533584474247844761081902473170513051538962888299810467626266763169304796251878838975231195313747412624553387280506547322165573336564092863646698137428257780438047693937173375707799431819917332949021737114513517793120689908306125711968855766527234955804413699242385973784833272141699312053232593957717268983119357021852845035385620070173366585887131254535543389301510135699862962370741334337116869144625685411610496859210052992436291418933574247773655990233208543913110803822995155098521516591157943965833659168639633126679788355259584454207365413823092245660122683217919099345967202698987396736859131178487386135246336535404251189302291918601334420888184189194190928569711402888937603021083674199616792408409033518182343680766018322939987417293386646468498894208114593255916562844670990199038642497945992496177743329030874238333216818185796497729107086626191184343934340608133675631768219310838878889807407231270577586484680622405285114683394703779562244396576196709420177709225037787954636371290185107235199993831411576725333900514113825392358916209550386367190868838864516038211339191935230835114420955607836375639709669548927602243818730831234841334822764508969840101695885847034201139501069655641568379871047098951458632500083445810309150998637540786132234467774343709183904525798685875505194177753019589681001513547372515637607571766905883948574470471369169556915313228780873119045345576465668697475304762251818708615634539980615206672683198261534933309841968821054582347618226240998109926699803728836165832122425405344909337555534638713674560025925689440335485125777824172866559943725935572831414079961067166626035657353080058072676235061942604324798438489649054213901417140304679407162513223976290143760768288016100997071224291581565511322496580881584797565160341103874160698295543291993062866973464240253472806624339924765979230588299592644076049788473179660084835312701675624964725717875918303601823170157084989363598751539273104301744739795783545213123723760873454240970106841637799751353792502051814119201373886878455289997648224302713961087103022585927179789547904365038318499328364812539213271262276590066986103706112886959210823065589594256963546851375906904803119270052243061685982073257169144935974440360764285157375398507646740617407538680531004072384287407647684441800096150759716191276273617360683054559574769307428952097879985661969602875898585457245473380686293430954243720748572997182536502759988644067596140712488880527224334073374250749761541527378996259012074256473128371009182816003184761888316449292332895293749709108798175329447801320221786106096768509173297056149527919093269843011658223388358521202222160992335418525593806236317504131079734843900962020853849007977741831080692860993684126408696154221336905005418434004474031662295960606685328669012863861120561850534758293002516950942449667522718050887587406759944800423702286188011072923247308576401091501443205576522770519092746466976978268593916004475450405498448247494712110146668463065520640456102489683006659590719765152271682034946664338503817388265245121945517365900480312077455970460175031976143509991276276441245141841556508648697626136428620776220132600335490775208212961531304512091763291852880040096203068320012464541297083485181290236450396269734068297563515223077388000421984479956085695330263143463669579793883513385507700794343751605470463684764870008512533884689130759577026676487081057229232716987045275576217381094710979358734924557526967452943400588285665496048595155745450480073318971564096470003989196331042618586682770162980528795610140559377094416944325651929429629280881235212017789563537206777267086268425167147487523517726954397245397582712964327070367599165757985708992733957285524986255181609930018464499806947099235390478562020666791163362477247322000795818317088361580036075574523829649085046197465130599037427927229032739845264764720748344186358821545575407919027510712406239381065390220509285612718304636313634543533030270869581900492296493555953100269707702524263150137215295180901309220234706856542277891297853053752224822247788505428643916219642381447353025689777305257704895397621072005234122674032331664966279768690098999474669232129929985052832496223452879760539676344841686512741450732242429123608816888608917434808874371879284397568437392975514929648562897542308962438950162231492489401448054215077259132075904515927797843519133771908675144015448745596740529999926559542183490288641421655020210392517738108621080234981612745552079925022373993669080032957853947721391192184913298157390205333834811482103661769713540399307275818058773880722072847442463322463411852173818697049053477442042583958532480409793038141163257410562412089074508800838223388296760448108175794705637719726638603835223973033511210909146152998932200309111472933933283718738205363678711330778802443305854828548072435490272459286832547847529852182846165067304720057063505398126833685163072493033037479927111749841766464110357670448325162341452386722330946129319595455239991468722973718461412521542095884131096981124494430971687136746190718768799835213692375232911543963121467770135551174601930359626888984539231440888820682839782367349239069618422371763445380800161653021179621086083517425638259439317619656534899381901098239299503708117270900720982673306510615831094586404063466823815253109706716917264335126003173796352648202761325367758589334579384844537945525195663508966624796286785711878768100681152592371524392059560794587755985332304536058318411624734110553452574424852358595377904687299248293003559728005500434603433912792045429117691934415160238653930656374307108147272798362104226661682451162676487875151352194527328572865902264626219857771041418155656559397717603201331839458305349921614609061630045999975326427574229676484484343536257039074295926023964585242729897946219413091351867177681557683635895347736456788539683904014196085229470801677289517685442652700921806431423475245571013088652720616781344306061296289746402767687137480078575291014761360845058002566729679973767797210989306970702212012178868215154869595578700356066606679692741938991442996183693362066306831806130392647138797120780984959086719685219635200386739292225980036707525676775716796714932408804698631933675243863157832740501136864995819795644678357101169516687828594417213636370825625399367104537359576487881123785689386821623429661775285084905292977215561194133263926325484862838726614564512378494154861186893458792029111962750803511943444076744947004802306444010628202549293949333303203981283226518824170995068686795062735249084388277403433385005237003965857040361013129788462183586923416760783274515296665856170787074449566280953590756792043019305699128303985619023627211768627558074460852692996508689477374008534005505262538444160830920557292070648641539430213234491827538707357027533494663333283798540997229340276163187860635860036116954138310681463478120269432702802548547360771288656481985929344477591729898839074274611999558455545576368179885720222124887108053298662163205686324306905151692493231832717373052700618560404381346369134331214015506780741898246987084652861832661992705824639500002597623746006257572940360378385828616054274122005418860232160106516200916745190680370900412179034085054593369073413269489459980580299143664418088192610637896630027460948910944417799639859827221152801271883548708554356405285383157101588233202365546826994720422921918347082490342117709488918939502615084658043460840189488158847953064142120426964865007058234788237036687940341935478953097871428853121434249251603626115197521884491547206704439707662599549796389900978397823208140771705601266166211297720591456195423299345302378615907814759469702289567113382329900544548208288226850057637040044995593073346728334494777116799448540428410682914754985894913351815099334836547304550156311057863036306891035520937476094475904969739214533381486946094921819586110894560570470088605738366345270806958180547585023330220261958280410914471374588435530384559417259440759122577176963998740240616716657354556590410476166874097925957187061230983225521981026886828002796838475945687846440099422658196045570675684906363046936959733458279484601085297231742083416985409458087888634032924633115195541098128897444077060780756997967485329517097751868708250945218728817443163448125243098230015793422796950656334687935735274646326733213658532455731781727982940619496652997741773498478760492132172522503061098352012215513990433121855264297313221188638520891957393294600075805189045183849841444795163339542407191637734683730347185773912787509436614971388038624295990281614980983751887700997088960953476504897014074536857660277867459160676940507132167548885838922267630763453642133886806129134605623394719080763834870788376720683239016383392270176815697981811466412619107303300223130481397564172945361619853164284111400087187323702492894055358265108000884173216688227002009379430551704794908903068632364064825972941722436639336067041117962949585230375997431000303380568934552441740988581990256175342645925541468101670467109982286619113865918361664267695324119475494841330685445807390273212923790069654040282552919329328021587478011509879813048087223614744561930960436658221336291182052776399917275307275827487099142952104855538988439392432214709080520773153527923787291041520071708187662163756826907400888975516356114695086516425897970919694873045592985565013101880755978333146239915763316316935812862894843898613830231051139287237536958394577204550187519943181200161168749618789731824852945387552711840332927128775374934850081022344542253418749203030543665694411231103236344827280375797671162079894915411376882849809164005761860770692678293842238505122620795134974815493642261358822579773130164146554854461914075899659558482767577737177639773365579326284709057397126477859330478566721504675830313312400759640895073030312725991669339944352616310942656091398984642931565885069858089056748528298202623373052659397091076278819418123844232544533807817575074163147854746864924201504954321098396867460194926644297932460281465162668067751120080816850411221092476785382843099914084943607053290155639165561709333084421340443878764064754517854486775161031305299700109928227521112439514564558444540404260883578904020148106324300858916022560967425053091490546311405581788307776376584979236906069523502421727572378163270271533652065101605789564130039786535554517291153990941973249926331415069363198153272782394188844572823668776805768658674039615503537187709665379588090329035227082237615294976487528887947543736931872012773011644997708679141870424529332868630173800373546769135213740990472045290061157983420596479458687555967675770156503270728139079622013977939867167621633204753803665701009930408301871510321348783413789402046691673791326003022777155817519530022157932470652990431741882120745383040402613525039423808099130869197394165732347423941352789698266168392455769102752775205147949635219912260824301632731375628372952276600009002640176129580420255192639495128379596539012434483541397753091907648245915536186199643352040131383655149922678251127986247851463873920100837934277611378523141578474797248565327045739448719255747083970875696317699948389041245104501243995784530645918589708847416090575103371500155186796595751499598559519214201542424470687759202753754953127501158669122324080573457052949614154289285187110238275536049897889712339302267659437466243730917871619994407697575293647193557760788070478567038584184524672020430846137333380718377851409932452495137028725432695250562298917161852925778326468842554129967769303975820455021289016724628416882095695752418521237460210516503437684570987419257245043200530426985202737343562652041460443888654029422544255705055084398407966010755845446079464067310262200387446736342687712052897891372334508873135594257223075362328119793433922906508588194184682449826579053565225488735191721015190140172834738573139990442120226525627112256244389218579524605581765932872224150640166570592056772633857573381433597810247191380549305321749936653258738362181618915604822292275062805579676584442990588439683723465966410720345651044963703681220185903900704243100763960983320688031294615469561835310500523012814388395086535862073471337466020317722500468666959030107794428898683388167903928171053520667007558200880145905750638676484898651984192774532507254230517678970288291762860559960887444070008767515810102443955270012030655359529897591534576952235953098312760529032706999364475165863660694063690656959819027078677120579746445005280333442868891785772160096533765039046450448539085207611740753614775411534065449516441217805674913320216583560590594157770270426610251904678951347414426253108152189943778490216698142603700169083266958579935145131798872806832779686937625413994641474224481671049642903837121257095200335766219032325703144886707540676531378947822490780066080173553679370528213742519441878328407100397172282530972571745113846691706447672899365338956981755437301284133672763201220952548837589281684826299405252704703039595904864859997035909330876507602403226022827099110634948069327621058060817333304659529136303552473172143862645501340909989494444713325874818926433386215518199287430474395884681549369380338761869184337154935625404554684728735486149204921955489786621854295268141745571311083581636187654410275759164810427890844916067915504435015682512425476185533111571777726106670327338280001829152019675680664550539484392319661532691599598827084788943831400885149443830668431359129305330464699685484615571429860869646340405821726464566586024125076427743423674927496626142153889786063433920533244559196568948538060770915602792321745521111377986305481775011866637837281716880241536036410150792161599575309239138777853610265370476500592246816578124173170434072071958169269159324079970389554018451354541348102640204752889530227566242069525954189289320886085233477413770288047515260000162002973989897392034926456923610205269325298738779190576069309194693502668011636253198138350056088308989518397807901100874600098409561848195646528693682024103156554949249132005888806887813343948058296823049137488208014132829406670035847525187065963970261698105047743814724307231443737358470884011956686437800829916888151307393520898411752339303252283779466226795304647456001872519167944248014688286674923972172952598837971177476478860503415940396817581037003165077111051309342698154270356491153146510620022215065023995888841403693844373941220230623892735728783074678848190194792528785733118335874177972700692814483537831185156694779570159623908056739631959685967418590186996774697602321279529291821438494076208120923803382199823165218550870028128436331882396594909549277689559052270726605490514425099371589288242178472397196137434584997504443778371559521030681101867209424161197898553488906229083028179339681185986550746456375060572666671684655249606122894507107780329697944191895329122212810952936947035644175048872259626723554964772624114755053403362200465577545476356185727576246094916252450708095884677496489865931096965621131732753482075083041218530351059513754510041113013908386472693738168118393944959107596884198234927156212819932098601797056026142794974103217580626462268951145540213432615914021574516214408234633921423483568764863027920604490598161628689151760022238557374449087540261267234495366761235529285422878107096032913626326610273517342255497958234213742689340752839193712141727642605223958887166740039667473932602208262133122471047930425990301455114565502948743211669825712499344501120335863277311631051633277719556562369176055163576534696110974746412952559123620239508949678013588530772546144559724883005996361469844592288311101413252717750026918557116462028146522397953477256951292997443817197529186209260730019241441896751629817917598456706671277810255197672194723571583025254257238633067315990624294520778821754025430304222385285952543766595132937778421366484843142247586123555942649741127625734732793060598358373495030230142606335837375348445204711356486175160137765699194991528802796850303450318905260214648224225224187853661596977263537611698778699958086791164049247454170487962906384242413293086645749711787676931338436355474843579670387744669782050188837225682165036777901235631144309424181484863760064125533515648774327865755144064219727732144683227339233040791028058735422840826597716834365171810856892795727426251839493979053230663928242559691333713024431860707915042004790613777826796523588119883526439122242999971128652420516998818513391452914144256271749727165034755577875795538697171977643716207672142723433393200923807812219166583849041928426356639440619773685290414220256137720857360839457602190538886658362294784525745384835329827285427427843898555113589441110476825508185615323713132875707925683712924396571092558505542950966680402882004675308454093418451460112223982597091178545704830842560765819818394779754342408627552558453482876562154201246748569670584944757054142777921194138856014048088366565650785429245350531084736942234481807240682301562836148752989411118169981294856270033997628512520744807628320148021883022075676792077239465125373334381615364601839354482105214329427712541556276160657898733276011208680154345753911251988902101373667290988951339308603107259641458671194790225401032127431726319903129681988538906816653800237476912980326906699386762746011844521710859558570887903566451257302273331675154346216015097276818162635353617435631960815635154143588391592935527882230468830591630299612308502803772882897116376103032776384845262354856461687267067275665347827785990938195941180444686931690824537452272097728354815598455831687816311638544221282200061505735363667121742705985032020459502724014081887069973334270394297048100469848576839910041528263393136264127852149312068162499820197641377698223959908461426647084399590791860635610250949047243324081520287903195817264455569696797243946551404387198817954846528324228688834447393884851014185024246682882928108565219748464613935976627989304933193220989952540202483331248777713399732367745364850524908145401107566432272442844505603021432338802538191725359104576649677878544415606215798759123822966514991086336941059906099280742348967281092779823574482135354009505185679770947679219211930133237215057319187235762595217979008452778949042729605675141733578218476186959444764389329179452356955074633691842836729882227501277415785787466560130813389038700185205012657320504921013089226406271726249166736003788379951218775956995831817560564318577529466353559463646279127537893214565339261880467443077797818021593631573601742708191132844661155927637129093862140199675397591560632758425451844688652974836547159885248293488752742483902877039116124445780900458140656337132977927726069791306504134999750340545280009765449945445314607290077032632409524684189322706582302708906675222174312675634030266464677329773072291163013977102686353159048044587780761968951434688015079194234946967761377055172626822403728301486733796862738147843551481165575950621800415086959785126104093487980721780792913700197157914056785696891048873408906415430289900629933805503476022941851880938288292497110715406577901086390902941499962984867577536013855937188333494067941915676250909283614230859273150496077034577309191028069756329387110159323634458292424290227354861955041873993342907776871889309700306610945298660702995219340733480532888147186930859910877396822547101828392505106184432671271343554950358542815121457138266229560316967504986074496061617736817100260581641168783432644581017160579335710879021210797458900075755484960642287982345572488990068427426777670917751393678129660029531176213897046995031982647069629545524850038115031794752593259259624831154188455536202408914326362521532153808016708481619732235903187733594145005992023784401130800301621755706433227631459954166249865290471454247843426193300945491044277973845071023803284113231264520084422195679666436658850893528694843990822677954926559708490376782037569506879406423939023379896966850269717520032983716645321401819774879648803461089605204776546514601405110656308657817138341139866134292518379120387849243840937726713331374493164830385660716458685817699691481424944134689072291734458762218148456527075328076268888699239051058655957391527476308611407674371203170802220136026144086705135182372397962362437393301690108688505588477458760760340955596664284889278806638100875484119500853426466814072284399196816668028687231370821673624143426002224205702817126149254847429307743258979650132111983426683397311649103694070105162035109517012751121691880044483781852392681790264101872315212707160863373985777021185014934333206157235776215013049050592545437747621207036392653557858650821496681655186876210875081677345921855752408641674510922592035364043278407606629732966755640960110992745447379530728609679914971259576234087610165905899030449942542828318229844930507050087344987658560940489089862919417003833462920885166149166977720438763353314144917119389093557875585471456539378558352531102524260457366996739652724089754460548452974139738740851896844365041343176625053455681499570134434136480702975181502668444885531600069412913550086613076072703626701247181626949731869849493669510891976706888803257691810560298304855650085992905044894279497385489871826859957038665250419993587038273544731565150497052221878283418431476498502345187487296234522457282723458736287572108871244750443386908544010249839267484950745725446818184195122582221022501373893096140680356843808284327750164939745733902836421005304870916689052615569858072432600316302758569646789859616483758046424142895736366884024331887903887708139084274130091314955777259907753095140868186446830110340313172285509539137955021116830455739341897925990483054302421590037519189905007547000098547651409458931290714633643006012890895988563719741233201345184123062719017432571899262641508337823760632970433069500667825396890475197069523501757189180106981680173829584239944967430432333039351348815366768016365909776175865333588476143300768624465219918691808510819800516880562785537770652521391535635568301590077287389633739700299293126191280086369303815443563039004873420765120382961547398871496711821024075617518509644086062379474790624950335568185910752292769137905059615742979002872780506315798557218731704740881736979500657622057526520937649882880416369110683849984354729698105925155221501331328297003763261616484551472229440857358342097959462952045164716710517902703111810069993353708866695849010930738931737192814072862217742916862420133448011500278955177905274914903407184539859135883205515423010640161719067753531632884942476933048989333958430911075643076157494911409612493438594825259187542745081951799920613569921020056031785092329049983378230840619451446538047856243174946151667774009646527930963014547656704016974064060978905751769860081931211066471383168712190267576382362612510653953749326509672675386453632660526579095938129092689964640225666772022893540738689801008515838236145824409203504728083629689952162740449556832252094292064220584350953466742093627820588416705928900284243739052679869264768083095272035175933029372828912143043375202509063209446102761580512582006989589241218566337341244508896096102038058162155240429967726189003500901124711351258445291953035203632520941663266402636181225917186611396922520929223566754175490230248482979156492038502038161654395385683418661050904870053869854955991853772432856784557563566033707806715234498279162436750390422343447102662774367227314348476935673627661887906419543427269579159700361426559552267112636718166768419899747318639448390539229635633310630480283780290473361568875135077901693390627196712824545550167945360658102789212731783763460232420075281318831156638422657488755112579652588412763234189071286889198842576360424976019550790295346782548589434005864265176843530362529441434482975729532567718867171744297597857167419774099370769894783900660475844929874452940221529932948892582391545902506910257247024846283045439888537483030591762792890003607922219176501366890331061362941878660930449892255475902096193690260050508815022440930581399470913428074129094962469209870733903372703221828792640704209414736661550036079735834138960120932086424927160806243643187685170112153803527743665987510185113036006878138258535008371019399554416881351093899774851330389548906088284701582417607121810705796470330906059783046035542458224444708464266475553492452604784750301243848620162153978800892711258638912307861852298371326092856923985761539714261816343883055858826144136859183212134003020254280836679354917122890407743863471301403240336087933774035532146090149703697505965856224198814990567871525664188676394936884817009386325958061631148409622807036570491820473365215934947554577573825101837618957105909359462029469021665628824550827237652400334203417236759769929302601210026135281561372811957233003182496465452885472837806215123272945481441747945445510683765785878770840544827670662252224870659701040174751083961919594027641789401228233011874581435337235899892773962443929462271839886402560839097295290245151517098429893996466297501565463400813796223551202987623978406806542932103384263080321321582671113375312381115541273924369016652525187228400221828380335239909537910047218586853783092991482363479304019382306837061398128837170586971352774905689421246081858096632056270429871407642786831014948006479421735092954346710117786791082993571085931646505559293856704650303974305290045624887317393408767239591115717467183056510348107947452480394913047605397044242227812921052282229456779301973800655806972448158415489645649157779402273271334349241746657880378399693104330342477241725190664791579853526721902428308237851596726296787695665797525501300400738026387516502571151279159415455310039484370149085897309991299792367080633150697704082973391909666934709071905756836159968255699952899392375021858344103556257544859290446660459117583327990966398561737034237042435422047184608092796037786323211629130974446497951552011198046626431964368597097617562398191926385030297830584830757749930013362629711862584974651295792614196471325217822880760706705181883478548432625687667883061181191619535250215687791489132420160763531112149502551941002395558150048477443099625116273577644744482718777656129081167089782181124144423995405540074926390652393660760330132970752546979030930204450989165107307036489557455529226207601108314782941050459962106980820329405840980279267866087483093119541955294209467932174920762774965108123208290272306909992930207436724320663161007189260727554814845534094646655594659985566635985382134835904736574143275103364069513436704448902675527764462530493527624589476547251733254224662409967063952382522541816074024220524514595769347343692016932890253370690220223240371720747986309155273632582001313682820763267440716148414699345421611535185303106781676919155296528833563654891001555700637872629463114934986328407550072410898464001232323938329994218889508625977024300319686962811422667290904216494438342308007503284888359863297311592990957291039239549020710129559687489742288836188920316750273769816177741105607381739027584744338158022212307609031443101874478008169263421417243192052682585607310413574653931632896230106984706627938536102402487779239136443667687383742118190418446303692871088498904484547798367967283901208771310036327489226600891131876420405326040808333516863746218743008321857964725041595871811614124128958036559948790120192886153867269160589618822175047018247347123494902797133401615912609412789312807529813113613203210832684941575509987835697235673974034934249978568590269910237050084411162542552895923045375739767954030641726548360940668760985183592303597910161364342001159775618208560289625326710554879763356252132774735254044714025044264608521892938027613106904029074290909436089361458939688305500588700250809561298150104248930472539077323368564824632846175441493088126431171569767575993817226316237667398106885192487843748500623938560975802382923598760816573617550665454529852213330702004450396132514800385843515964455222328871494499469921541909662111734330588497217851961844188437106356625961153739816799386543263062805844941583440405822104867348354043651695685679012044749492526532385458322848760055234697110126057104715601060345112411667857281791573072970089123666660910789027440809963035400511564980821888503931446761490332699980662265760325521019211600258865446301908833115799527915284536646636918129504050823102325855991390775349288844801263196105597064632689271781972381837246557563101719070414534660206410051975002418467848487478002295534882028290635535265330654429168235808722282503692511636872838775116324687503631343427181384250217137504472361105803194596161792338893186316833420073288625048845645989644280851367862282605247522292323347346879152029265842221828766594348185491352813977508535143411944648275720209655213816835234015574004430251379855486726864844032872386876192579732381981652976688567284426270483681812846285338586802403353227347135271479064318923038084574982167713364691694906971255183788202078402746071901740980481140676178805902979651738424211461570813974289399446220927063619354617075534556934122497596060333043261461158654014489327841082847752915278387579136742240411297863326387263214788050053613467202795491256325043613137060241317155693174766171055242540234469859404235611080396153601142218584504815094286064731750315096713822968947591513900509119065663070289367853851473563574084773501090704616573382738411349106216140317954275093924501489375617888109344798913347978922996643031094780331931147525711726186219684900890980508976980657819459263017541300768717085217369087702403024170624853779910645595017389957675776751162675118304412340402068653304721161620783852566516074134224005889322600339124160539618890493227215453833697317462460078567262107636735003324274066487410463524055256367850961193038210705681563464696086385633146666313613081191985509168935606606257347708431906459394353942883028842321652051727394705455292227330083869593840992332430741638109228016718159991210876975801425792249152405492142183605285694913068038373809587989272879155028624037000470168276442311189818849807516842719278330163531685875593673035900573568652074977492815252911837933918587773759905101246260232308912164793440347495247519004588927947270533049914585766790935256983378123285713181736891205763606959720124799812073226832108582399862429389647250937720669987703020979901661389707992533104275626160764639209498005472915960510911431496722393527823674515681420381102994503429577048948164525194086278983585861222642136255559408154138888810679444791373557280763043528527536492719976827479854399691097544348247031293847044302893430860913915795052420498828809957573094350038676089084202644972287054122355161231140548558293624298237921879722002028880662984243785254497896518729526309255046046575195309716202203176821029353319345049560804942809281290535501730173504077886994644648124560911423408366033216908978610641321433254836235400666771719796052959831402216237259534041985604117992065258158694460256457008688899531568881673201131040288097066794290999660910593964517382800537166427398497692255817423178201920547903812912564189324639863626532700642364450382256762249614598030158532873175592809537951391472423230327500384649227206540992131737795806792993802318941146683819503200222632973900078004287817986315418328104052109207449093572823660760161481510113588769927930718085281594753998164038828544806452180820387028911560722960800431209642923624102301108647592557948694909238162320918270651282716815502686753826942008858208113479607511658502149120348750331251261141222237438095202718715920671746844059267201971937150301618551189412293705340642113317634893184293044299200947156877014151757799576639123881388257953760566911202215730875159924898334666817852674351347675600592960210633496072233527838260968382426881941212834442655352878772835326220464365663726257817021266786150037870056452791198090828306881502857218430593098022775210632483856016350325131175960189340665133862280981540811465462071699682663276232932526437312507995884061306598689306687070049313029747655132799673993486617147375233345535647703697309854090876102192251822010210144066378348557362898878586656099700687576919165662575126899555736797374251793971423990373518951514919154902107600451037547714375109236606711096715138367089594673216442538065853399500739596138416930844641967435374040428814859155490130159689238429518864733169758286225213475910676369156709123216688926921336374375953450649749161841251045876339712129786472107172082359361798641556968203000280248205837905705431043040093876542717990681622832143548125865789547446563477899406592585864005535601257250458170578928540874550306628553552442260760771732383837457217686428371097905573546942185703557317139847332226635865521478555144398618770555979206098763716590064022744222176642309910622835947216657469054323923247421413557573870013694022275551965815352326254452671567558949901547935893288583277770269534528680942215807303200407358511154790491749251881425395209294044685345047787072840894002518430760513980172633817368098925573625128035488920729027877289407130744136272801144854072391428409444733224739978079403168107391272626054495452265313329424112464848283263852052297400730975669153856171639304743087452323202824659487573586172082530299021021020220361884635700717674820732640791715523349772769305732796918971578668353488649585461382357656554343472774016893950916489236786255296982715636852422488768103368599082750072520068955118485314986322702516648897294439256476571314186835992969468668220873077283292892740576663020039777702987891468674298130465005477922655495709922372037995461352735340636143136822618387828630782232137753359130600200598716295953991066887528214394986273871496440394932938100189493284045195007069213753317771625606259150543994462198740618997554726944585344458954998759858614758655234723555575674104377251359501275709411099407494165569450541335685063079120516468657024462068125723760812807182775249909990952980803276394434131240113578127749035488095692243699914337492086620521913447478068348650442881443710064277753195376617403958251380713789049011701969555622757865474883600256972114501853681759467360341000902955637039400612143639030154822928357438044582320193580844575243655724798988927328059160320347857641480874165277716713536204301757768296084758777495607444020751625419952602244965288971166445370110907112045247845058461155944630362571744290717715243390266323072554797965462949784231937513988061459827152955676854351866324498170241880931803630455595467135123126930420517812407195448212553467069037028404949208742909194948036488350686767216298290992193449838482685788913748321368713784258738071449914937629273964657601143834503585887421867709208631386048173618992604973241425764820188039700423179358592986928666291737922200421948792424891351032622346843252750322961995692859085507137359357914546940775593405774433449266715569224394191492419310160936274671889348168413076703623235931616752282259440920151157580761043006551849809621226444377891340220330437870277319571028330254341533986655691762175844885617307611585777362655076578864830070546862295385974730392028044647051773518543106961883990473913297334573638410866596086316610820725223162858751131490183030362919177552414657741833541843811718744752267806904043180095252639947777457152785228744373374303446992710118574710682110600961345852618304879169195462066870778219544291840304476087345885139168690738114622102425264874424715761047086818970450865444065514696072924558435007056812253428057770718674788075127825637191494648271901059979033979463314905744276970447324751588124396269836276459790993669317681757169909706752316056387658607889333982455109540957113137072629328786445107763318882166410582970574969727067030221984855154050103143622515540940287536064464155025152774442972173556487036214982985346331153043066460708390024408486957322297677279851732229862038893776102695823918167253398939954731875116185949268552233501706917409688161982372669445163565085427022701252908071311382701833616756495986747057195152851571875153009096732693212559372295393490991022208412066435523595961566664303426467266855693552941645855890886626631242983012438721363550796130236456063050088042206494375512286263215668644818504147855884945437971303496812194779820916588483811698570072750292083859958704300075227853159618521232764623359919461731427929568876363487634035128911998280183377124587038724333612427537641892890668130056038936450916785507111342469662061208690151013192942360263747131005291620929332075226364322692641421169400219541285549111585408133669336930154871057050559014173317523932233585830435646373241874702894314626491152654446895824142073390673542722534517075945345552264771668937466698799058247885770106039247375019392995892719542835863338507299805687465144793632404994656020175202904400016610385434613997688870933599037161446496823535042067839500739077256699044841987024309722957648718412032274686281218746397911662309736960114967374526522731307999451425657464683397260148208009223694098569200274760286031916014025659328317457415965884686051726936421684999184503001841770189125851770299076533752763899378299146269186932563858915830624357829468260345741887534781269000111477661377149398420913538914421099263300175641393615906936056269812218647587501132405964769004939957574564180189935196028235924619941165560935083162544500869721997290463640762896529180766976759972425099705511492409050260188484633395362939214154130913123417872339603176812884826823558047502162021737844346870425958740069494205056451905826694856235171512033951102235771692199781983370384185654689749436391254390489921855844819994745722892630384081170996840021543507546919220232036009468991223475334647487649316124647884192391919709531833961545930108049866042686298529535974502285824361210012769514820229655940402281734848790777472773534698539031014884950339994086164015745499516839021988952351966173885074294319614624626542639321299911674891069755697846350695660973705379319835053883658549448481028010504817304801027326206187042718534403549118693799877727594198953466184921935018766239440778194231987976435720783289064276311601713303087980952701265033140778891697230438826222730411657091215267737668832316342134636820183170851136123060983169743258788089119745298355987592585600056834964592296369909734577066088859015545903613067341135335245394654370864229385802615274419009107474337474423434128215943851032031861904034913756887698395135192263261217043740237459738227229682964270245741385992315927535841763636791643273718545015088772294742138463202002994331099041533118278326569612694149214760226898070985914388481310478715556854034923305760900563919473894787675352343256508143974473122900743413579089262551680149317903538357082829514720292843478830567209598186700330266942304529098062726205133090183344622471737666284668635874585862292889503439654535998027940745571754715092147486089448625269196713706293068837856886197290339149958107538912007254475204490498560636754453002099751571954218675647984633270121139479832887758919201641379525120239357063812447862858179220143359362756693818381101574897991836822098701851372421757159719381335084474135055675838017637482279497610901537591100428209372545424086590159982838821875521307217894754692961537407908637648188754022699792506711892836581586494035372231918992174553819127643497941254539860589244477724406481804795007054228508684135198610925547584202813740375756561669344081600669272166372015682103541670983641480013643615406753091927246890649315531447300951311115861556140025500012880795602019468314523694045018575298936492511003422258632699980952114404347670804954841113227931272352416375932394249674337552324794472467689798199992082950429024938096400770409748261259036685605917306529792322134968012802867983290355526540456290705434075015373165138251028170593817908154368267210912791132815332798230939571407371696198954146421859793100078935842882849622862318615771746377224914543694786393270676900057691815610900019133960528234728867588541863779315861009541906816849506007962949557698491607394660958748136336228539917309920865210525578270074164239385309536498730752971736030453017732784482855399828872452522395544117065139019204259644213071213631841662604515529773852464074472980234084631504620573776774533097021949711348572667803816617470042256491767079032815448075141396840096922488078666780573417361563300481535850477729791343247706347777732621891413285919655206347081873674592561488251944171059755541590920738851071914073359290431039924857678281382894514661941712643416846217611885636563346278110528850629487614407082610634570218965330933386077022752771148510759858861557575654796340025350118593285004370612179545313669191977884184274372990839342647424241938416048802568415123440383566882219774225365636016869803176053994657784390382545978394687377962442426820318939252271663913170509578445974159831856697358306000339257096058834415366611352793662265737649757943331195657999206558593983281014325252384540871318780669355677537063165354278781006278484675404519762188764637452878484246058308198217941954141989831212118269837510147782165238907492951772694362319883705792576222900684354087675695481377831218884054383020780463751336236773160353965856304773217282928108932432882079290969336630586928957493660610171074662019440870808780359860842480166955212383335144036056503952591421883418096063196562376583745554475934542267509042641663404454151296663482261512438546349875996355602189564427900863174266301259739165931145710097542211809715430431775837788834512456061718614594209426513472844695439803047417115124080183471303177468451278934209399255166785365668205913584150924483671273451297172965176993233910400626590017650813836079896489637136640831381409575541320030574992703929661179953943859153859922423310122936978176909023769607027239989815593523704330876952321568316837726340056197153750777211450045932824007947318439800342353011089158968554718017608784277736865845580532617646912137444510074435956149367003409768373800103083049183797339623685548636998595903127518511885785325668065284590604539800304130718320155883429041072885149304759277423227335496099260682706685340819326765812825707628298859579803015765065167142123110272162622255586998735375924262750689237049522196032843989319231032566360884398548148529130519852741931362544164943193682078426745400269459850466819825961650900721592934972121019499844874753371365183538880598217169026005500443522448249149637526381054823248038224876108163138521460318860667780907077937902874653050560589932331479024635699636255324027426217563064433490645143455982984778485233131493534676468101210794412737254337396823074378617765963581197468132514691511679213535082451109773310129523350496703969529949329651029087742785975643282183903809390849780168184842198789543189037932102365886168708481813003060778112639365952519580435432952152698851227405506610691284928803963772901230303805635641737326612366041499593487460481617783129664971004644313617976207209835902721904266544469590165909763424872054097674558967597661629887788151249853776343258419469267742917573024663476784799989340737952902535957418025320908061798402115233451306475559972759582776686631869241124941994877092267953223477680410733580101979073777240988514194783648771932748766407269467560076315666938247661700770956065201877886284072137668307265338319989070032529881208835513214215539379471094072613633734955692263384574679969192394073204201520680947796938246015075738162714078639558195236892565738194179466949699808090747540821857276081847178840443798148379782719792795259157121231482256919165178451258747134991642323870770973307006917446711266093596611757934123099953891890997692572064660618813511063325150974018176230116903988153206791449778815034270724138213575311914344193000874379235744231223494923217756520617940773508986660976707478923957524159677348273669153057697438440700821280809224056636649747990076708809261631383223784878802493585191943917187257346655303579019833657290858738082105449107237168811351988241206508019774997597290018691681762619553632004622632930117084318939321802265091661546036512787533546082689646869777195897160502827783097730970627156084043146351739710625863734143524535887766435640526601932885504498345325355588497127825206343374162873005587935197032309871573344232242511403969119518520611133373610414490560144762531186042512124590631140510616756960288676356138396697419266598336220361046915391238052965812547350892133615250194485786200389375555879826983167689910424402856754567272833588719772285107519518980642545853668819520506782614645871998910223994938133358462047724795916437834526744988497142394170352969111603463039664545401704195010374923827691527274635998245491283154224321972728033793410406143297625547032786154118490028878593298904085078746884839029957106574540669591350764970130161537583370370709559587604364811537067730571771575457749528581910405124820676360139018359747265751684161155255465219161224796590596805846204503654409603973280864675330524067117027279744735084623884941062009262330006075706194302542821779880741957175253284325210158884771589694301569067588721668604741493745331478757284593358402977352251700282888053174933720593699789616642147685546453625878357674099496215515830284774663934593939208813125527197117309904507676549800464146635400376361500391472211418274046456885793213192098914004543480337814753076618529063301819744719690483874359700175905669767368081652996034473499927774595183629659987173068063704435258565323625981302510700122244170805088972735506103481835980919168691119201104831127627755013888403316401242246315660255765981253506076257424628245284500033411867905852688014997176781288250413579654785843574964383290614389250545397412231740027704378064855510969658866102611252673025192672376284948732611328824743910895808754846828691017647486093076477755058322561216499097193270816068553990253490489797759685352689686617038700014587957755742183571433483477109383040928259615050000582621833082667048567099529842685599770328304120347075060223244013980878954149318710351593952145683101878333875623001347763619363625738961124955421435190754731588120493341647041678650957945458942645469580423856642214352536135860589497942442611851961332144266320069763342463398118361431318272863362562692734064107950154055911850069131938018933751085113103302983478367478590914294644854671348735713875508471498942519655020497024706018043026643970613056878979945289133465907285082243216395824394636267615327856498691320960307709347383924075350610380428684928476279717482892738090139301425362691056313777173036207897260450304625613776990741537373549738771475975064763656540599226030497113050506766856128058335620729788999027025473935696435160109004997150612826451786795015955983284457067413611251037978395618558072989442485909306923468644159654902178692291859889955964226132768221697258878609943499019343531290586539472463168358396722098976599366079226716495232110999162131622824549434009230725221046373671327048865919179302453849337130749278882879305692026703576191191548595316100410654646231921571839466365640121410472189531100236123408215492490288778008313591970377803204655224428881868868800425909699143354615779822737918809081006585226297986629180288472592170918749664776029863034369572823584412378006669029379631142469272462000540502636327889941994243597782138962005428304380539536796583457581008774890679007387178237228702856786296737739058702120815115011852618287452572814842633135871039709380954124933977455946970524014444991215801563670393609717500725062207472487110717372058491097081092124532424464497154263282006035423125256910796763798959475245159202159265028291319128989200001294244141146633946083023212562174493085932414174491581186870362994199696827202567749906921902069199221062148776890886586831613689966657851776912999377267004859412003388554163855296671735249726970669164956286333787797180006008283458655313634187903726040714578802097654013282136146810149755061776927540065156017821840010401954444949350146785948184569537561276743787913528922093207087065484242919376079488296714388878772369773734071086096505306264716912476027222166109515328255480898507385643530333832018262940741041984467559373826238120744636350099293456533526812161378830173589746411554819311804457505002258224446102598760951122921339011330213161460506858342237188357987311397784376164086556083467300015627702714202983195923291705536444321734807049662635761705113561031413501429144543878169654057132404026705547658981297996694976628702299438167549844932940029772087847883368509165500622565311855820485326381481683359511168392616933764232867339540670156299102932592400064696536491274742094897267609198061524430704871188572416165932862345796817072660877117171666698609492205521642124655580996935885030199648674378230402166512136464698808148708101412336022880759937019278475592211892420621691150113583790066491635000787063308180373879472034384827959139098613597659600503300217884650548723647044155610261355586248996671397782398773941235393618617563079647806130468395624166308072045953349919603506615110772728689297557172609956160839407706824241329683373644018958307147455296978361684727060571451570748426220554399814472450319132788890119767306810650217160976284884907254648521509690139788870787296711283291767432552301448007129790622771610324208982369721728390910745444403593594705017532295288019218843836132575608314568405906942271316134836313578518537054395329819486601915551570808465450712038460810505116734242894533928308555141872316342971177463640669772022019168441836605634630308028301981777600100582893381539948027817775927360998489167445364182384599455657508117837691866264459255972413934066789492695211302350411037124415364323887010985218950913934699700359874204653886822747829548959948668752779546679308159458687378662745287938463921275129775179805942165696563992322585656835902251590039305346051201861226635636824930077101933843528211874061987883433244943040538875963662799150330077301025722725600999499062286601827809893738750738867099558480314408068066037184333939199877136031848169770151787250731972833329863005430371154236459124386773159923655081384295252723814793858080019526833459334184982360745698691498388315718446767838222687712122193390065036998634554399034204886174467041060652340578570927011684850302938820105895679629574760032303493167636434661768002409573652168241507047787518392540734320627556658684802406075785940901330973612952153951571016090043567756963583366137300709943664268227026059930553743196343780484752027712302353252534394369371521232452456731435295511465739220704261107176634859501608448560884967364100645737627613209254490149073790736372003244455836363875405140697566306287742659889169891957649388229707185342847939857763929791409634849601393694151717116971163667163726999704331918165673177007860112677156000792649576473882064302109611125251947826654613170410182836580706899965252882468289995334095317200894204282681986595899332337728654921611868207297847073919448740117240830910577691154853384806838493111096502895924519074687575826858524291430643677715065246207703723674559308963264198605412422634433720165217967424612286023283264104929109423432846642422359208801537178539592280038467390949764829571176787004483784580103160329036995521719524573251825295378176521844923806715269146437080320713105370606485371335180532564748789708669583284283110210157313119163085529144574592068980210881814875873562976371871845564656977301968149684045149592334730309921325862522003949262616426335628480872030657974462853082713916548767242040523768254119629798988688788889548286402051575027907815684016159933809494326110165316457482150624513768805350912419627403157072776266602604755615994411303718027947902914678942727312571920101192715711452016161732867671407489610741820393180073028372188916562997446352289049817444472976712227023506559615089211795863113406391167899140163247894927870640896055768175534732615649153942552560438758479946296283976697004381813537856916486055406341392371958871322960707823296502613086987373040823851654159217826523099915243615869967272380340710088312700310229526691261597863948575174364174516741448561920666207148547716028650986765341494980605821725776557432025389527225759481552130105787469096611881425447421654924083275344544121242163972922482701390525122409347166454165742642223986131261423403881603853572770590273629451310301096036118943223464969845125452657880867528263553724887126800341575803923867364764970282895118879826085379023369498213627873073319982364361417684567621289271576172467370386465142695357174548081673909126750106600724173557322724428150537588249723137434715777448072013957979814404670806454400430694346708659228247304658550620615882093079215888232322856680193018094655140926706707365129723575426147978564422566350059387246100261578422656000692457919169109224408718503930074681936881596428863341028486865514275325265124809619478948206272148121431491705383016492961402172178815421387067824526706891042636597832085640105487288936606749821574814984044460597217126436405317250160700454555446013264616752966046436061407232402710566056462901453025877314392328971039469801126954548193312250707875806675815158743194903290823344187228887235888636948511145083226128197127780818712703567937693667883545301155647630311057042347868765799585118037502057787541439401659122831264985036495657337250249538953258681660992335021829155323252273505845461702630885024699671779917299894319366505807524539610443441739832558734585798240622804679273311496557471075472718389974080673100033732970085882959145258957158076805389780363729893821940561729751214155088645746995781100833897173498202124760417003646801251528759758598551437023854105382579075563810145620854661172755433080025766106832061350051807148982221555323023763846612758277520364514135559916541999205942528283143269091846795210756903101366339504655413429707536133666095204296153595150977691281521390719376684662009319455802253973774717015577807918712957798246372196705798954593462667662905629154624293786206043150257551837875991000254553161170722787715607096167335896075466163296965654908259988428201814505423306926838500155361482377684484437502050937353191408241772155997916785490712148161431742755044766980519551306842188338965813259223481987378284550208904021830821256653041829821721676013541229992162952597285372638550667845811562734081905898003164789471654474676877354310230127592156673395123088305994230512162602864530356371408109086950790403665429349208937251485393965156231083833644055478583463856869795666793498580910559380542569845986907342990131433859608065389018509268295488157119173694427933144590815728700058776658018627319371720009704327509986635331986204708012262383940314949629186297521156476143338382787173411807113014308811713979147231822069878182271732170130909808770620928618127726502953164416166878548665522838284243747759531301638601512045532570954941011724804857328692810347438658436431242704458484297436468423121882745029493261722918966348729960629432758006430486581933509307185957942238188777404731315423072888891790506262027821333305018151104891716135792073501688116907396748364199975528998735584653289994035284550731352809880960004827300671812970069132307408865149017217865083272337819340798048686637390297141417357279603386518445266877408526711105169097192963342326972560450198769599460074473458363250475070083962277985548202980612896485120840377189995013306383995310086369723180616600112818683354854277230875539891081395816108205762505503099677998147078924662306925065028239936354677178714610308819704057988523741027957239968842775385571495162591213315236367447608536204563013172401766213908573278506465851095354054818251681777403445113746227744449536580409300970169382996643211398194878594161109888779738749526854940249358213076465853164417192211930283343225002449085399968634440335185997787951761611812209824969765349669505323345605153392896818067879489872836740045170788450211419704715878017086254763240872909158465698749733137604906130698218028305729355586554500347930194065180376099719719535125897151046911164194314372511173476816070578724366547727280405572399737703384342711100959666390060406264629612087831308974244930110264838784870368739283617071177720975507030632222906280076496026238877697322385001119579834467999608012826546044272359008033635224287090961345940764468387395199946089688568288195169915815847212947431162044638536079095224899669603267415375135163879498070872045844638037699542088596835101466089716015843336208939677587236077019541534500901009503851561032072900381443745933079288065449496587956697900616298600954387605713490866760838943458991450074809311096691737690517980323038157640006477286225836678627898967803573651814864559009345556338461724307126542195782092122243824415127985739589507535490592675524482665568633232081156523642786505706221379249851670735155041554541336844873850763079822261232466325833523341788320388265327057444290314788920305482802455593247979121876784285347004319151239773340710967044810448710594216008433719945514743154655718832502322124528103836301241714595295618782649814424665652670976837842289225139756561814515052772118877014385912337993747300471124123193835873913050318781691209838149141826242680745218850992563605672881187806227816341595739623549473238689851753108931121034914788707244291116690715072586647249594644097995944683618265381432534613132592857402916720701514495745376761182377321481548826444708150530794273304532778821078898691266804152340342569441203446397739293722469886320672304415936957658133817372099783431106707063344732579397858233809276898913630662660785900577939221238187444136323199770472442976056533632061974862632879749211918455226244599547409463334827620891474299474833233491391145312027873229769611911767125009205627228221382350419937574381880487386297740874243570967869328316296894944887726308916568472984181724923393193573069500753481088256803732483066084087573517649107202619454634910249428939611287872879683940694940130661021342666390833003117325405504199091074506631292021602032898138032300759733243258098323826855744276470734441500185446258383771357768035510141560954143870436936036799119060596989300901110925139085763802917579008223704856861917128992495286944565669877859255688706413851593578678024398772807536175630762403122040051146331525701458282222667943168375873899271371603718070205608175058585737909160834713386595664869903626323122251938206208750607550752413717014780127289317101017230527843571413498841599408970835893604678130246151780525775735402368522539367138560712144980940616063667242546676905185161511605234134543255116129057894447367093507716674140010264690774060467666851008101254262629611672025915252216664860867048830635232955223699391612050478796825138794719335976489001976498035603051592090835451286183260636954596494809097956761249581489933338215442492341659608706546427892094108770767129136571716345409949097119437469176240466997383517126816118745831398989417311779046928402056199649548311688393182986948756719255536778858055706787012023340286885557015058789927384792718224233757298092020124832850232586109752447911870534948140126845202178565014222852258252447612286759988361300152956939889504488719458069525909537116212017940889106702776981329440050202947531677432048808511401371306586460641761202962787686734651326030853956842818655233436530318630086802793287693558827990992978664187855870563553711526950951461395489412800802185097867596553406785511352136301925019080793816445181422009191739472149516121668384531186434409641583375035365502333870548071319725469552827388389191346520275897658339215531414051337500171500393167698593698796243107729970098807448362478085053275166263385492742618048961772297586427605247044813083885908013410984345838599025226922171149710604658206381374506225452147545053776156739281719330631764546722657056032879902418908879942927315012415498842574038282670611299535865495295012957469831630402806372848664691086598238068626150620891535673833614787126658658468362661496135920250346375555941470010830557487621415658650311960334186330732075923688051900961652787604349864950028681310322011524487306235309631801365055274310421069026532249276571557150069900259832657097671428895522333571274158307747399703830872598917065316219767420598214407537764932756346451120532989954851612104855017169224653123621835855695530960252179058931308226326053624253825881635568434270798992885504166450879445926000546217350953354995024192320626246973830637249799137324333690353396018082757667190388749331894026751677766003197311381731882302306455983147510730742406821794692339364549121142333244291578502180016009054404205730968613815626583557441096147058035149193531181483762973990649073865441207933848996026797093327944086198555313557011131491662901397112591961208367325863300208600023704194434878746415334765514594440464822995687712286343186556406515047956847597882630699249565791024977928576217683847918281100975051646958496964099304812897784048120775693485130326983402554505363240518714355894551464537522992996849350879131650195043429555151545016372541248344341517193599191195045342228612577943244136864904855596259621384566080844778701076286320029734626530991063935041500802783393064439582877800994794658024700733355108107470936378831993507396593762812469504834521811802639676842189295081612364567278615615168096520729331595865051618591394760770799305166147629196478788984534774406960194846010800501862260305340899235537018122438473474617286795406077634343359853954520408020556250495365328574462185396026068717633939329255167452772347505411279675602255557330297988014522783943817689469763935386634311082438369871263554142393324973867943051995068630393746237154414559460514231573833350147219691409458640777599846108391354683510511201697868027878604862227862277837878638725884271845277361972894005225788817576528440129544167687028951359212161293237687596013117996911545220794916350023610889198031905301277553755841174737429763621119539133497134074706193493949351744743435494246485671559576085572500378499699918119512078543979875119651998368499120187560594185008188858979774595275340076436370522917422199069133163369358430939364880073329533080655345728266408739493830955353924728526514314639742381127884603110569922552871312984367781323501519489736204568510885064296422239457098087821346652734849100683928212024717416951905810006912933497859241804849871833120948147804789479917334044990328733850477939119589742221496623504099712769333598231098219376080480952354445669796259129858036155756283388215917224922992615698802115418757681075293852875911450237606546648187575324597708365593251459671038528588454204355863850414293152768801352694100751104990781563699410308988087554346017814574578572744260795470971838952740704599086929510475201286222316902819077474636738281385262056482379602979889501876009545572087892579418485956540824539554769563113098611405174755476086852347554813400380767960029110628933380137592128876557199139035928883479885048449438127944692491537943637989970562421733468549714347059405861470701282117070509145904157161301055945956018450736353122381083986154370899768920733030876226331321478652492602138510205564621416672829740699529609638158686462793927075667500560305125405077546019640334677370661309653619503801053131344879773754700226750432347131899101798653110601274132731906425853967387284198202853033061002684432495481763391080550154804399575837547095353079008315840403830154022862405266955366970194759071178747360008333448188181282916379922536797920509864694491043750023287626065693286715564357668801395169834384066618795132210809461595891551401498696887140309273028995998972746314334495930756543189105036827468374235661654065090747106756799783651357403458196275490043972583635454516465929162264787622191794669812856524470457873566352190978192611716363353804631331250645289287384176079077630047735542514352871201988669040203492054134201066904866162091961273280167090073581542678747446467701418018591383313821021983396801270873163720954539855492906988226192018896949764493837020060828178947706912856489346616479925813472899796231227941767150252868204368536495523496227047884897299521163528211921671833946289970976278164789310418046112245565956578006351673656129929300605425109136342195775332498359897489467041068436167241034728914134896409652298970457970854976518511459245395897047303341343064445889399997493322770614365962911889008296127448084542932028550128945360502767581143559169734505380364106391581988801335751475420976507815074932173231419225037606254949773804337968050826273663680738577624470503988533724162495329482875388069203677477870746035704854095400289134162156349953437869422523593839862287840892604172331173385824510396266945529188687467453721896332397965070688654371458895630153967430231589358909780947067495196806939798304560978698905062885786656139468144343915495944367562122518661679043040596239358222616071225886027136626551540888440406577001037281234985938865672892135921519511278405569756524704295003400394741532468968444234654627115532184596312746918621360347786748870127540483029352929769492289802408367713564627510217028108497997119956174608746152950717504715188153285633629979713843302077300424354208035858153266451453848457746031971972490099880771989995650926182647174654392052238543798438985919244642791579698589807702503503485558007428278069152668710900320440478016291943541302503671885636819041880833112238351926439471114355330977981107112278696841883191169555813411381698111540989131375584816407399027681452575705687973626543191642768024516577220594330026250307382808540242107173939332962740811321481432520984951412428989681587713930402581161997439132099122609629955816627257214186254495134790777943395328137455844420369889435405327268965441913528948105606219579661882573718122953038410349545515177309581608567709589891112020247482028973669945166147039909789188262066624096912802948002781139944947943384122679603379223032838423035871616207777097500302513473682514445344812694449037351008022505801290799979488223172099064741177179288377411819993703875676185498457010341630493347248428617591880448448359311650157280633609676758916272247252203086478297692051293990765380459362888590163011988940121559248367044280941642060521368004227742734108435602514156725754252114979854263845825807113396985956862924684955210574614955095650802628153348154147414027421485182005378660001040721066913227097852884119959978558682946487641564789330541447083464188324452909858394818684945180393561396309060642278252047055224339960067650557556540187082407417224481609509325868385806962825167176692045508949882202775901366834132299929197507435107703991511645570235823295979894896885551939943609037736102240030499961059496207135722250691478500803560815756768673370583047626247847036390635037969891026579307953312008311997615962042613307747942792256531267804006719287346279878940609127021351075142879187430061603808668301447041422840715776604722254559897637549773625812627777200673888296710620494022890281440761805093938079707446327607701268206042297624402147238874120070143775776245549519529371987940987841575192855048976303687899349104916643054726482081395310273936056441989675336004193173840866124431350562516935756085402320923946587423462589653933335301389793655568464445215394956504264913016124392876798978197477954280853474756393023284920620024664995546090508489618325202569015226372884199250110768824793984361922431764219562907230870483698206028263311827633851157251790959452873576631143631129814621664765095258918210229994642482388577108760829192549492062676604860517369294869554670898278784672364394752217911367979438990987992667068831745037725747049812137996410748657725801133023357109309378100102119152100499745786086216274538776949145237036182348354188457936058997364741111646932809600894741428167306871563950620648992703308629763701249598684867055263795054172473777411868954459416651323353943672070832069317716921490754981584948152038816742316671989893592875621551159493538184710826950046475204892588202245784409841422305958402825793204023270285721274472727557244374409182659222393487089520553747826326027947233082313003239126271709691671947459582511456078454138929939556567722088019762947006674734013973989518008098838650697933526400474089489818227812245473383005357903159305315381425304886404694798897812295749252248014439888374221579756432431582601168160556573254023547220210882350975818640317257097390503631300942636520973034771799981052647519378474889162954379052687380538281809020060121314965870439772327278599411572076493212052827748771355131143692076993991393410950806130260156785861929024324043552387651641248744297343563497286391616572972641673959933796285993957314851404681607324079475874119784204449823346768531189659815993538874590195505481118879962126058675665715876025819702970261965097229385281696148715545833396044234317034646301105174566372476990952026752774501317523774011841489510839861863989154309558206154620519574641603807483567836245676247072408440704525602125813432844206917059279577077137320655612596257970532500406182546981556996032915474004870383063121577493612579531331039219862492383153630605191913835402964058905684065644391652375503373897958283928408474044891994822038259892146203529019914642487707369496468807452073462366888327226369814814231786108165391591090603418653238203320257308408706859416750647935947039176084326190201141613623399061339668273693224953072265564867383239483497568113868481666193247038817187594047506523803324553050264813712599198044347742259272715263560489194020906179969443953875107290636654645141824130166105053340482662214373063010978970459318211867805742431185427913592786898237755488429533385253115251265192662180705465856079732211295484180356985563829408014496222610528230578467379539826492236303415786874212551545027169432612520513055043610144309757165271933608734376059182285002959174373248250003617921338358821416177465459388864636149673153904044796901805955384271977934354321960290333051062235757831020103670783925460913722424768142866579135602387605878447753084152921299419464970798880331290787658726270892606429606769788559760916190848668502406870817972436068959331367353486448292802587964776461219795516352807965970933242946598087093965160471509637270970984557864619520968272622390935718512035315817787892848308384137821983713585545195764864774345836568484177632700979107071179798954521619317508814344990704835766348171647892728600968202993426648484094207816002643219986923999274911992762770466870575852955251268943357532108295706135168082328677815674438910345518404780738972549028574517803460341550198886660712159855796497565114550586728039213463805845642759729522343191542421981593055100940092770800377230163715968864087803879237190778951452093047519831697040505726927487817767592160797853206639874162406223610423645778551815350666590551697518715716047032431788716483888124157562071582695111242237531605651236050219530128703281764818105701092984655177999860698385024283710145373722435937202805118085923321062211360531787405966426578963905357113652001270172104978788393866766452975492869092871395700355757837043039383186707084804894732000816849058471705716772077264809616271018452817561477414906054904584146242641187024086950133695113259292696129909105891552275014539684600047435492384953457644499174029402855011386178234792439039963024715239328271988714012405202145664697513000750265038286039154909831921301423917893601831532988370526051728735204227376620037403092938972197531692277624810006593457922690633584955895384866918222070409908564010770888473605414735703986554038663115451683638096209427187432290447915066470194398051993973146685386784378646513868033706919067700720831649545745031058189911688017006719860278899348616530837871831366392612822170896273124851182580316971035806028869980072226384449302160852296954340746333044336578208424312658819872834718828776811551936998443464224720270866555144259479740848613480332635840773176177527709151512288881855101272265405626807651529505461844020892205082156933631773359952624266752295382125982508966535977976882461179479904169861687585368373531162064902376942175705604684270620201971280482189562613961393417121845423719459863734532760222290248844251119292356186883891676811246810040445267828540782441846003605721478774155794422898965161401229476196637453077950984617372938046684507218639003983683817606162568549893714547438435620257020369144918150518846710105492507358016968075266306636590966446974228915714160687360664446070430689735108780369265625668515864867365630867573413596293882826160945114864317157714213619618363779568297497409605605501621397081545474397748800044992364100609960476183793858711371307010707159585842325257619330690042448751295185447492551279846725719101150903926499168223261651201187707440568783346522437042046758225081580471784769100079853163592703978244243740143879923564716381437531376126692570369256770448382960177876686535329296338477361185887239042005421488177038562096212142161195170903826540827784773782699720608675968245221837015476268486957131051877185762805709251755815552382233465157394225125397583942802414940393083438441899446907401376699159468616255340101141673785755489262128129195810721091653954304801242024466355446787414973179927631941488293363280008474030932736834917140689231494669041579161863752488563048133108096071138137067577818182050923845582104905808516821223755310965491783500735242967238823658919212156838375585801723418775221298487927814138828234764697902523483446186872519428323099148479707124222570389439877327294458490398723835202645661285173527360432178662828233804885656966294486291817391515817475445279206812833139978163545407453547447909419509713186374976294151137233264919129287824432309459088533899846788450482198355809821913890088693496176053746075007130437548080457714854467207511108904200334458752518772509383193483088152422529513152209168890236712858566112242701599266484037213225813374040978418849138774326068426781948345457682509915542371826726605780264619309010321821078204488728813187993601157215413012825643351215622748377096577290676950993035007145072368778178562696137480847918790552278243109455461119622358157524554248014351926525414242553890011394636087564961688998788018996754872326908160915245073456151338783078005177995207405000025306676369197407411414031193260017680830279045523833682196361076662083860719080078946516998200719147661341175987218770064202052473145419660096232936304194455102905102956153535318215587678861755074005004558174855892522459055736843941013634753587127006594476298445844903358938024820452836247024453267017069937186710832029405641934941954994326796698005600149839152959177715912799868658660679907364588205296634649385820018030200008959794856593239613618559339953045242830982931148791430571680693379847596424855318217459158752462492101653816833062996258350073631750803843225285595038623798258583088272883922142392056750097849255501614808084409482896969689625061329312001976087689760258660793021850088970884339959062609654813737705547380805147229909595433300716543524094668346959818306856286751580726546360448106506199966813894212453461171684216936029926440174628639673999911654886013847638351493762164460300534682966698337951378630767664872026652568462567422341702486504102915735477060632403922698829206454176701659433782692336941071943236586533539002998536100584779548960217315106595953249773577133082843368451352145022140795513312176619106966889283083749455575039825669373778693105867632351673477680131725220099276263060077883963728034455980170816085440154084709034247597271947878619101795344324311571808155674463760483345337982041435811359193680818222904142905427617155015875734612744266159577975811600387734880387335829560353212747229573863045208348159727795530027927610575668861216682612361845881856826888950581782875060501276818326290166808886242263726260343898922829186315569142931887457448909011457324298622968752279939730425679984674730183349391030261559279894680545735457352041026801738279712726473325361130221269550098860834500522313113791029277513584198994680682684822899090033612158037584010716051953449810006613304354108748317293809335544327936280721091012763376970657633896302819092833482407088812233794716291139930496819244495427017698826401795846306028688672631858690435594541977437632432147809055405693656147223315112422359204064329303590816362316884645958165452267187631854313745004740802296773436807731888572571550408952607462328446549407207088191711456773108612770466140302342959803248889114684638844780084968309533508647487725015297811205122184630386319256503966056492970341229133517499238418043532880884927639615086834534518719659341472994864208846785905714567114333694932805983905986534843532455699439506000947555067419942228037847353603841834892660877923168443611146734709071869069748414605436797808640198802817084972046185382604022011113470663919232296388147341714360410537678316371037622567115180494973801140495281736312889649125638228825229884800914191988897385001273244547394663653865677304428621641075514246675733862642859503871486110197876866330366911344216916745921504502435584926626978229699609588838376523638417906139187411795705253048113302410814185855423077935953410168578043756811356488463443365261756457025119173931195398664495760187630413616861175746608035778449450886175074047726548198513905949336058401242819145623835928187528008935327311657154715223914929406259172366267701368445846752551548254618157203922061203876972254397694656025610366412493988245207849321496423098669195254645426878124258675161603404353304088153986019138671524652009359395828130389887632332608049101407550769745469769462418277659208217241895894457390803304351680477356766479849897247933245072481222559292092475163416313680682532428732381510539954815301765467992953371090975702566112040442883053722049128859375447474943687707897711726205734820235501121111778501346462548730429291634085869496259096517987524323444798776110780140722188110105867022182642188594191867508525147870578209164472201432229212825372390359259973653645684621473123821452168120994728391907061478997837577140565872730342876051176460056147356425528143500379334192545161107620909982278054877669024238821671659373828544138117025882104181381739925408065062690440477266963174987649138385138713426196305100143506533278929301828613958077481892035440086201472765775299469611409634362739066158934026941793843861947705813572413090239480957621948795375303175342891970466090369296699824943467064594645244355916818212507587510777842369886993086396407134354672379658425776575586177917593914851062887806514249433720251849950639931668263972957274593603709160264442437026087224820483981902582918078373086053988889279708558737619079933899567415267914343746388404106232469943000341269305551020949928757694267857188487390511489353496188332164857583349029989371082865602389362030138105449165436913440244263124376477456259000238756547451798576967959805302573142710675260483183629260442106646581698510328318987513659536575537301756075152859904767823091948768862407381917017050413536139528559184266395709238984129039047437594155648261398796326410936307143500270635424314337061653242336313617451464868599607496222703653900524823797612336976554579184230173010290177412950272961340964761688003968839533914154859051415856509657835071022572372214061587861915729198354783244752349976521803608527185550957377619782051018771741293697333548886969358101515655294844714412756900018016032163994608249317507848992093827174398891956953098957566258151163144495529775454707350086353511558151224772145564887932991320093044418956939605092979040730673739300781569200072943793981386643945605534253659904239745066909028343249295687795051150677343703996150509718948663447781104285371403533950751101475021836211586921177543579135912590458055874370599040689106914945743928656832020664702814879251409719587541569874375593564338394688360277480741485424895767870664529923278267514146166515040185268997155730915562424763162861544879036704203568288521107352068086808632859957377087759787582026231639321021064425003166493906051247004693543103894719330159349497353604520707529081552164212984570352058111907489134951975682912709026396538178340392524694205350076675238255248288106468587879177159212089737059460099734844378489460992410206335007652237638696193724443142675183084647072930984334900569569565156301414214876718755064607339392620707515048624160945450602906314876190636969627882716797699725067315890132441643650784956420573738541721505125614395789465572018750408612052828202097532954801170241688691568211345447849178838772072205868798383557954336826412951196952530001619430559597071271398708756695240742568886296063055962910741570989443325784810809917428257128484760017178210528028597375270551769654923899785005735528798183227020546574835970229991914759231864973773801663015200004267644879799534377878934330870272669993860595976397433406096671509305592351041101404693344402194523155060783830084330043415167253505556914108383036926696094629798237152861797320765423842298676520682511180539683744577557076541206174443669757750363026204029716845095901907513326867450355695708260581511241312058622780798536154785972864184026436558512337305215812982182811194745285693728258434807537231147428833782487824017550212484425686671401771815134222233673881276248945338596394691287791906991414540105874115363358208194503503789573195385513452985807739907377637540077245513719249041586934020161427904655001572603151359515982973589013574467060901465425351814958883610898140104889969473882064162233017858742466306984494774067472720131250539065069053242528112470926899311029919062181188597237287284558903458448394657329893065794829514594112062090264872852962348177043757078724430553833248449009699703881727438287387323522130900512989376270190856187193634464983448622957207845536322616297272886091377828782457773893645794993261254429830411505806578626858420573250206236275206590522511415560829666212384239822873031043989389392403067753174584657363771253914496523220612798015444386267631879373718005951892544103941531120117243246698967123494744252459538786512492940702974815042250976041623776029485979154935927618656469267648528005523413107161554618736052422981891868553779871214438615335669504184870920767976055837131467281337259196511991572243384563680013517703260242854577180317076962753514807997454981537216703428863251086157825272551020716275624166051234041824825930783973742052629437595324624053922406483054971294117613504922343803601587290733133045771136764812529623347467748647590087743178513351301499006506329987880811789808455185236029033184827981748555737072081505423234808450767836730198401401615280142852968559175417730494486724417924590775233718409892173899103484448792120886918542982542491152941481563078636861374196698055891216309409648359491060528734611059424919388989798539060639926276806042224457667126233815940387919710369590980498238177182817558977704962096632812198804387817025267579054235928676754505704680347674616470918162906570283200678414978673200324444868874665469290103837649883171265135685784778853750803268056049937904495210448659189100637755928272971116326514498792424145078126625322127914359347202067299264902739708000255963160126903609488270271048049285621745445380033694286060236600118859943274224917695819572421799207997386568766860295861809420474700953961131710755765863448643996561085797815066181428150339471325479085527010092440336480577454773992959975458454103580799783130509529408561398289240777719797629067097852195287107103392998047358420941530416780137837873735208885024230155796489985650156957374569426770267418816821224830180061269444691627252612241717814159592543797417981666518550122669425876553041821649684766691888001709957677744818128341458671396094141500878775120958371021615222691774789519400851979755758649698647298286482716781872896986623394954936363823189484388781906104017549179827573115442352263583879695475043555986613496750848983194816410883946067874682302406571183173632147105979488655075416104971860487954075488084442967092537163919547776063386158664468076093208229027645335846646154188203034839374980977301106685396116529492925122381746272009767585298518121474398906719895099484260671887455925593449008264348839770548584973841067169354273741248841290325867674409433545986535388568450404755337879992866627813527157161827380551052658617193998858829439806817951982117980229532680847021235692227182762314102329147787711274848506957603177426742707746159121980383532361538954479085612823310788796660450241007034852764171507132184399940552228755966023768520411764182184576709920572688930405825187908735912880076182460933083909874323598602242759923893269954377903541232001942402733653870910216707837049613871702999854906672263491300833282834831673415506230301746894464813041008349388668161426800849519536146545120659758871550874248149161349250948627678388095231273634483112755872047660865581871878515447334297026142089939637168780858620317901565615940213577483624616438245405390227554252211524235104794377263649694134571358461046129822740013590735518001362365116951261642184897342307281065325913549614647015586349209314385419673064065676684872582913651644658181650994234517754512845274612183996045196325165318580450479073560689326177152476667309843998341271377002953962006515277349225183229148059653528668604141925314204066671920198927187540989780938629424770792082744863722627601138108068347794350882049998481010250801913797328539286838968145806322368581037291022634878745512395001024867697754676886906425873205961912947358243719235064817627540234575068111696427197863261927847569096694580831017049037338224411776109537584887638597449172741785288092445164725943957430702105792900223174623111176364153406192473056694966750271537995871416002116330022939717205196583881678470341855417914315367209684186567098477372410716824638125442923729037696356582986440107382315126195776670884872451052098641257109064530211359123204708772688010924822923746433533318089596492675109087374961670422124507008769012984079838803643058398186157951464780303879584106055969576104288468019133180107606203518468105992394829942198928810421829888848272525244777585200988589425476406188890315056041027277008275020944056835690412301657538798890032672409945559357526517508175053740017149135248393640379991761610580679893213897573345568272296495824373329465844043680683223549636100638442764323150224942348465734069318662264547953477911574153514514849841263638477024903755033638385705395474592567809301263569309201182802296743668141916973656203004525311619685903993029609716000023969519302925007218592396702759272315435908456017767241946219943143601131191618616562011303012116327514562892702712419108191112892004171222837491804099938335625009860230517347093859876694776950118552105542746483767758882531006398729666314304737948696117417900817707138515452373178235642602619726702843102293878012629873642771918727212223652206065862554558601197747066425664605095133431889293091413091978295121596571207363066257477303827474815997445056064193929854759354016077273430112351792339507806421565765725610009215144458700890177505744890186210865579112505892000591445006145751057931410825433565929813615322261499440475905776456886237012348181530159925825754970498197516921079445817778100739255610527453586575028617169423369759183051521955970713854645645605803099422857255494977362780441331074787884791366349946059801128426025364806009722825979290156655083402606056127022790897821460245401430454364951843134291870334718468766605423399606347299936561955463635213638688737603750373137872278779346875962850330594044362878654844152553422313437732334327213825092773843246045471084582382419445899663349081245042099011192722656667142960990340609550586020045314226190464295257038541986912684415540384174062442111683282679291967363618895370591332714177850605796762430721644097287826787837360184115553968250371537040621373585312313354722230270170809432961775776896298565691735605620652080325410148945097070128285872211368205469553561169087567143340651247356278597965447474781884732812845787622464678187176573593117346697821528144396079209775136697825922975671931699331318383323695378444534909601874375721183458956702430987636619981933864521879241672206578613669528150465859089081047781586008263927471481798312316993286004834392836271121373729386901841123005944532203554134389289509213544335517359339576813334562476162157742002553869535056955057728397422216853318802149720551308184084792044526252958363723333222635515817104913274542517246249484968144085822805915783537280158247403477272529941613013338323662569266491198156414384385928681942500461949541931513369588498795579757018121354252216776250782739330416041534656859840809151682514053935879784609608909770964863557409081295253323055518106965880684194954749424787040479437588336293398030739031684982320386878807898640999086673618714052274018384558516316387418543955577531690432078021945583394538730847201113695341652753585608588705915110924980537628573990943066142822314930414899547453015352697311927172203969178527936142471714261468818658663729535540043779119626861636985826194266126587466267989650998574341244241685902801112121177491568390317709982365736238587601670897542226650691134840675822788625722226467658652986694395864785588962686596218603567202637258250000443862004618940499353124101851151520388398215732817682079893945175797115910767063680552928590501502061714944330495603482079531935891699580415371496097263410081364860971047816493880460872030760066794774064640267929255415497568780792638640178892707686111548125871496862678961241781774238574309372750131721618261004322243307025983152637620442877429408071148488719525945427456086979881461828549091488110874273865827287365461851676454777317629183554602174464170271719402133557299620538524908607524101121534026100425696493305287096133934760624723514008008331149155440441175384363096414266736157957505543361825688351087215397196066508567599061296584087185379576855210090363393744024397630351285449918889285523450059190827948869515001906347303726170267309022528029815407251253444370992363570313369019296523593635269501501038345946817227854187270662010514849888625440234594229798645491625639261536374812955202121559941151721849623436602021392482744961238006041461649746510939343456443632100311749011512622316977251615590777123984379528508304758558240481732216571861180295174563373606094954920846976293943039997993274452375752516880849180868304348017661639684115755892284763526309497592531707431787467383185121000180945558421668934661077095674679357351541865982592127768423769464368934096169787028287987199490672285408428971786000065660513890340855481036734051978918690016095911925943248414302065338454081497055054064340628579383794308384107451056222221586186959274595574275810145156230259417477069137998291124053194702340998744534261091054277686113604023643528264092216698758262131438172946175188226635921343451481857630954041134362232538706720880981924931742469085456919826828186099442913879244986234323309054169591324118380170967683369565939730947955276268025959695745598318677386766594310992360580151432708876694533756229703434870517552190377970918066925001510961377099538238688889138224961511284213798614925544026967696737040671566238171643662172782588356625283935774174209438692004651729256021026874917104534440861666591885113791168765507042462661183661241052033270033764869318821398922397958724081594069794794120680381301564180257680605150073018359384241270843311425665029742996460991678803749113335308255972603572989996330520939369935920681056756409133676546891097717013670506449153856135152187624748185663928520733801296277724126006503559016603650807714837471870692803885625139887060024468924576909189524712548409583283389467290714443522230471958593331371288273952852921398056841445545041029967003242001073079637483522223078632923054163344451548737581678179539064783756174474942709527697298738001552099872681949899910684483845260315122485617655257860946804198735222465819552060739705008671963561519476851993720837505080088585009050915030042035368447976988385745067506865732040954668647892122551233654562871293233093703162187055783444097896567695853620816416579966838510771155302527596985324157851059480499527306494421820291742056792043831223286893816812787223228525057625751135483502435692966002808895139605938569816544677879484122664161063697649898998775355458750582270055688099116588912501233265568545157979509310688861315326666554635433039948515225739943579285090774724338009398493605340407674124722947517565395921152080943125510021839614037638882435650638440511484009209219291528212047235796435924726854642620565421670960728402708092295092362105721220927698976718618165868484324723112649721696243079650369342295223116517374015374389609831969029441017432128865373489707134728825366638065503732888289573473080058765686066669609099705121876675896022368053186247247285456819159565922042958439394602865201741903692868315542084032526251111457836116860192387429833311763347325979365617612074911524976766307454171413128627094356658591919360102690474263390278292195457633159760114369562586367647655286468022671902590953063678798363333082760784982861984288584065926492196016021791575079776364097376050425560227708782772227652414598186823574044420801436803816593374916729648600977212620250652601883708370888714826069134571753981198153189896246379436527186264504610033523673828369904849902104982243628328943168343788150462279634345571109855924397191448929144568282969440687713199272390266794637856419066837179353061744182000450533438814190434665984696318397778982846338217566268413691589890339869736314234349734475277443272002427235739549321742559053000928180863951068766733753158221512483222599749757512172070440012745975745946788535368912935598289709072829141456015730518364323080436484238062025136493303546237787378918967046171869455295082867238177417132935903398673918318766597361735499843475655539420197037322990188775913506341354635279671194956202635449762644928422072312738347747580890438174931893252563668186497155138714410534124866767878861255636920352462661358155700115735097625600787552698386482434107910818574325961212880821677652990391241828214650372671593763293286522290684194050943016996248436177336527856963029519038098358486133321410265981999645611168167803281607897861484387992289500869446603734777158339284849345047301666203975384882674048004311131126893159049722743522016386560621708383827642204530074727813897286243417862722393466415202089040557311159827110165852121601070637271954539168522671000343973427594715596282304215766830435892587042692762018230064984076137630784139438460996815122392012762670653141456250014944913265072056564095413923545951027887132621545797582393079419936457799338287581223365769455189757036473913845802283897624807357826563967899122959477317812345906553260346950804949087693565986487119351614266807774902129217990711631100030215120221750536040494747549065403513767038382814734692454961342457345847002513532250379850113954655415368389158166305363018835882549681183020440719309355956187806633491498548607800062115766651432126637358676146599526228145305367296277640955337542029906809885642785540261868013434132730110244580291418252856304475006378348889865645878427400905516641961206251966261996920700211369249041168007249080064428695628518464207598657476730276505882745263521909435946312845531996696545993349563330903052633093187288556953697235343206531425850272293308383995864906353443145751257037651870447903784737226973210886748843750098313996269373492566399662297784176657453068167597767283007131720460067997008415198119460040104723013473867211414010872196155763956941109371072773225869046583320989241223582986239955565802240384881255254406377135438575300601817930900767955932269138404735785775693817632927254000312473023609037161732209081013280900521619848440141551404611702767601246625216759275847232747496732505734201488430673095102810036792621212675048618934004491110900414719672655246169277133360035032861487493427674517523036678080456241761900010861528235936315130337695154551946902073149587885434040569342671176842019649138497683499961800923849697453130869769956920483927721848661045407240589302051754685457363904881491398051049784905289056140406558403055251682203757795624232884162933650126458434193854945616783104023188973013375553318809108959497487240730962097060974746207998980635272450456971386111367231964150272086974890927224376420208383948609464041863345715734475426318314979974685305150623138716605495616666539858299983335961186425116208955975098720368203833413165913452187351774369427364594098332416477847116713576803174038477597088331461889593367952519418663940701181093386707899945099166399609853702967056182460191881941982094761429384362113528832423706648503190601653778702884873677955193944377677384993129184950233349073594477471884465527908582654507298569018535271844354880503850177312975250184619708025785781116881729987415013792956919500830477880972212133464213040475802924119081944633254444689686171466743607828409209669740681115576253328410586682343706305763593688970005967832917614850267035950825687116647518907641052656026041528231646245378854109737614766974055882286088009349543107631748295679068915764934369888546875683469966206565162291863147068693647741638738012304566309565308618127291141432009054357272744387157771054390227397391276998325673282537448803196461461819693816175529394076296132922224827033073279250809587737918795539107215014380522530036448715987953000385390313271042704075053153045019057066295164431620370626312367714784290493260700603864712327398757996763825258161234190870908084017977847654437111274007895713609133999077501032101554551322144938562181387048268796496789481747297026372446050363143074237010826610466093331823789970063184288663342996739130023815275432848413222350239394835479142742907429967372886101498899601262595960505675449206017507572792524233843762226345859920048757845280332265801794597459879595673528553707867878120317189481135490471635535183412647427213390227278358802345247649667777391054356692067864819975923337305751283061332609704944811230220460975746443675420090937878389243342319576259003125206372501599537211439661645915861101027059262571061792992143013550620354699570141438039027451488995618830329235410992739728160325011155454814898792841652879891457459370723058907365325312731500378203344752634048339824595688126236297163179764640119673295031264777935265867558694962043364248123456427970289488151732498407937366181704072036680792985476675140307674290820246717520213778041710225659996358758271288872340804635748867422011440661223695669981163087133721909984917942354453846549785075410393184513236346807018257627936956672017074259926481137694714046204392030833355952245800464910057766147125822250945987929590531697321531882924707539288357565717508412419419075484792717172851232151310503972667661747893182087896054452129510756648907950735435459586664217805331008624660383722765429735397688634108736220170919553816808733685697107017327383311943561972695332789156802568342938764800279139288092664301229230887593690122757569074757169436916175121853704139294867844300797920066810156035287976977406190315273405438590436424597988609794292215537397444611279884629478078080216179858174393927756283653651794334783680493798994240512858807690040790712577524612212067798610503081940204692400602840587896520592005382798583905074618299792852934837925772847271253486393945917288816581489828120138334479453168774103928493679923078911784003836874207170285575238944000441092350095886347281995340615699186188865476781425887451341339942221622954023610363913681271875808974779502046146026993280771233545024327826148894250256604056355585840667706387726015734005020417772187303177159733396147932880383484133183375185815015463997904394264610651576932760725782180341951249608771854972308781255476362837728272317742247705633728756550798546072181428270291744815225239913351902600868361925312783392619859329826573526208029529739558237465135536295139054206491603326466353734370970300632875491141667109298120604398831756163408768580589351425101047309219140700120615255166369903867121989620052421901304091128702862742152316286850982211522454986759373274228758347127543397494999924767300850470100842065741026703048209862093784277407287162615685080385214329792523415626422763241538183504364893410589392580677550225835671572948994860422281316003927891421714314604552788823609114676267755880351999437154051404704229757997841217740796985270016903655327869407497154439303617495956169129180319515395820314790884688439963166866663899932862252319260670600696447113438293418864879914203769974171865522065707068262347852040073796066726071227154228781900026171374134309717050357946136278543618409013946609966195647998907655830917962051023621171023438533620453165090780474110801841424152223900490798382060393280002283240418523370073549944927734327969935218371090083316007023519224685579772497160721251769134301510774765561953013534602061812736894189846768288300850028706002809051761112402041952953431020500092652753340182147092529596473577114245248944789730313039996942074949836763025456885417116578658324715227559878751982547468952649178075943123183578894184193425403936879213487456916998923342344392708823634798393989440451101128304877906416497941322029596020099401923559892890966166192431732449518706752530984468985196356224355206043530107873951181995843731748367034419076325474437257910256719574563138708588924550058330015130115901921647033680564742371581428288097727838127823125018106312621776725849165734118234832667166734169198535440060045783462244954874769915876340453801528577357342465992106072940433738934573247185653269855737971559025244375537082128821700861892790160686847006991272822827264615717094401976472806151646251647502105379184749957849723483953407212609759404250801099632630541559876812840789152244479456248485292894056533968166776651695819514305744309519497788874857929225203935108494992194198021344364607138476953167869706417823104597859164152875553143779414149619083545564518388911062521787540287698630836455572196137418817119955569684599022155110347668384154153243704823822216213050541827322432131963951173474551217765384267193818397450573640807237591745335603713150563974957251357935480407121944031556232471024216292560935320534408068384851678103883123411867288765836911036517148673273254773499924949207817183634740908824590740745491824807440077718189451763524114811559610694684527578156807580289611031573647048391416611346845384849769332192373392726746442021371219624823892185798257289746759122934956819216169375565068867996599987850950947840658191626966518724955725481582234751580948621023517940599027751774468303227354551822432211077404219541251108987060488894151839046554060399802416519488087064254369924758760724937285717340529644235003501413297729271555713157028812390441106269053775167284336303995539731684335185622089247238255962536147329562293020682723604781594778711670248775396624810693070286774016061808937290154216644593170796071534250847486362937762632823093876235914015295918837682964252272367741348779905064574157393484357655367205686386529950830223076323286072687158401440301297835091382114513832888198344767195748568909508028311459977941036932746260450663881823859910105203903249530565971211480589158347115230185467871565081081573229952398919159115217320974760166275692530592269559101722039397658047455668381177013584124532536570679560975992801807499989530462072992351025351760165960638057763095428839656843666246182379911578866784289941880539580985004426181798165393142809181410049691160029554383257990668207802467076489965230953748572120743570659215847445138840950019509018576651864596745352502823274403921176221694696225064514336857949161081055588924066756979180550115859251381836557167026808403102328854262772023978797497469991856180803809914732008403925489555943360916840623296398280694954581305743181038778802323067783179913758254320224279985139386270664033100586584879494733879160292804665517778144950799327775417022023603736877096505823299314521661748735464497623099692046855438365213644992297091762455430296949363472797597314332606110168096988756171832168255450326852531172825916646085931315287900867926217288679672408733765875231148693983752716654628956138213840036560858057979175200689549476157467611205908482610189851790632412345379964029684217220564534380598833076422317161086692433301729923089194541489657106203105824941210904535896544143010186869034524438418924088681033176196208809830404949326743124536837270690994372730592013186519722093433301169065203646399850000255296442138878870567770583466225881325595356860384437029702718136833981491279406316850289153587924490315130676088552116585592843287696239081916288137365830334388713379917957616857825335457864933571090341415449561590651014359915222933034081775232403532557211851963493284432907095608122876889778884788099511669624559526707940169988701343364033650520973522097182918781748031597343687124016902723266264802257635584927060493895671015262906264506918388783265285186293380460799467397909934803376514315336648161888355292846686780029797565572863372117957379279882735616976888966223339254660432831582936068912457910624142680326087504768634823670912090602833039004405699173943354354171020008324776360477634049041256421266689539119971129968505941697972790673905355294809799943913375268974406184397569682395336680842574295501226709878602420282114097606126693980935101211998582417140931236438747986792808849619460426101308302204320049467464771786951361544289223785518904225156698274314981181407080879041146829266264662005677273596672089049609340801434499049622457673373979634823410930006641829484757251050719529356936763672669677317815254728449887982620523318802890092615099519518008888309380854211121710012466923706719482435620999079438013021838050054831222507224910412622019315128942929306421008154071556926238079687102289001649900052695175531943471162857045660044637071761481403708584256555418595399235379592276029155331187152562731437624407642761130220962085299931665905466213523480278786517596926103306898596906464140443339588881223403993544916350895607526084582119101019232861007821665329208207230558507443163580532665461299560949932157329370212403050926481465901003202311029112975120698426528944276930418595474751716151083875544443766561547807425000029599387242089247951065653305147741162270436245504600657397428452527346056753877018432265365408816229705263995998296832438129333662538270017939120259172768011801307775780808446311046159951999734223021401350154089159437402186339213016223296635023678683319774090076927274537780884027343599308259324625221103101905304953471493859130160625388908296611667841139711018221949674073186164714729259594319320924015115886816701856281057265697615895220675215905155374898433002219477045534291964921470769157501471728395321054917362612749749228717439374400286069373439973709125280434811705567599291178040146688887524191894777542744316858814150614117296417675746313124783508539422920818257376218045023332902684156141055471161357061548758460327004450147023098438054143796396462250192676749631801430510874522057846642884390472716179309191190066395430857539170994743134550389893165129019876567525895826079191844658281376271815197232791996521352324661966918703595677811850647945051794809028711810862533856053547645461518237398867410686444852472738247795511279179934031810392754227312666868014867597458597083688951295867868761811421682386262969728648445252415556582327089246897692652805520194225255314674928278338750814603702864436930228212794799035037687587830265539226658612205464164789406496902712102159738270245567672924632072616652025696866497688661908802133540800543808513347379707925081516920435459641153624329880027853111146912948443074697220697728898909494929497680883293816691047327169066528995661541584400711964395900586194217115513900493821709399352057127495173621705675675317386896467099191033731097058881890630833275463491061393086625723950481544398852692800304194551195033677736117547758802088903914421391767550877231281830403890832230381895703101091221251473393726422114499949028060676065384031745416299701528765599167521574712678190473323570251808580798935854771128423506152276396628463727384619223094432313034374027812977129766638271896048802510430300103926295864979196783060153951236355836969573815035818362701260247314367981406163359931082210260765577189323151091542941506888904503358714489831571555847280469653721995896131171914644775108435003771990496817681906882674282417065251571874195267748612904864726424201083664880048972208768487345404693295740333286407808032082993516097266984778667721803664542663573034185277110001831644662642084590505558036939738933813773428129169529783775018307342693530082598678631807773601649022155713611972653662577986267080327998507281456261069795318942299475632923608805285208410064167640341062603122603642494624875940774459197995674501770885484256939594997022944933150032665837998815834862447495752586812968075319250429252495074789075438493632109957353228154598870153014732258436411651791221193369355418050497409026855743827895794868489801311658003051987475079570278710870046077133656339230746813413814729141949590795774215272787199224565151128763557173964407742663664115627093451395025096762674392882253513853454610868500670932563327711411072279679791888507464411946557087398849089399099297168416016104381713652310830070911007328644407094960744722821156435175461896734731786108623758871080424155696253431401764212505051233675903031330203736129829883152040411933420524669190850838588472219813959481347335688148425819219234275507465161922316683936865602619779732319824700168535994556703349935786571197146263056823442843926808498694193232555511407203555928134296577417646159829362435375521316918783120629202273101984873443539587363981339469157425848878697663143254086836775764283303785902900110513179698947551091356722514698648741920811510369784923944206779786261495269647113419516784198402554806557526445689634109911106705343561466154027260431745366877320607169478207992657035715140736317966593798261167241065105383386289975055699720934407826671300153998496773587046776193836917778511030448695601440234985639462594253530956714082247875287360148393352415901502825383490353994409283954486627692750016825354709527422762457025523580573797982919139748306933415536042884769476477049391437330044295122458087027442514630939553188021030615953644796893580405671921460211589602054014291873522529169247597163353119860468980117687355113221070390770032965571907493138718881707089754582720240497242290140453275767454242152998021433907341744066382059172559137703277271418019050861769445026885193671436079813253970536636087469609372612694292134583485977272601819342840303874247996969874093008141654847292566943804090286749079389073839889313804143327580518020222480837028473856558579961589393328663116979406092395388859453135846607354064306478808688144840261912568695223307483228088972862866288167850690649018394459682490880940784842586559031366695775801543742433162324401303650895618872991183962793297899124020693770058638670844039696541204088509670825381074637939579761067074406555687731155669488655834079863907763430844061419616190752994504581899895454707353451272663680651935134269538452643707365746626101223781043181919142212322041227265187757746201300534660748847715816006514603862434853980202917919417058442731370818249584063504219544583093375459256023298703109523629041287784311628844773037693480295712407735473498829721640190959437761496263483551261989158534311297452398727866027909742758975943585519344547596923099573294847881333993104645232619678760456355348878981946278197476726053640622521049575121095720633740148771069425727065911918867052593099615266438297277462125103494019710716064686566736643072144241948188393835274669415800131919876130313824827593731832914309789994897487182290874166889947711687069604870927787480092721637361359305246932939982408411441871169474366210847974922746738765440186575995651395409225635748516015856445063133374291261111718634335089895334587919182911633465729792763902137546593038998047608717930648316230060110477543502968136190698842686868537226126582568742756664421789711294636107212104364095288358166114948424478769294878771502348071627138195307735532840911333965290107670288385962646924549239194532150833194084193554112563845501860127308563269221296660748125193031456513824539133668384832418672557372379004563936246840746434320551296060809682076040946750911864476679186298381925195487983744058849305740923207797026528403313964996849632793509927015206326905604154127784819423738241221576909655059126926814568809833203448843770633880583182698238142174499886166931128138943215821741740271270702079229793522641978848833005640546401858133063012192812087952581526664912029130305162783073076171289951676960247820676588043768500060366182047941263933110471895314798144843053208007502026811887584748115127457333518725875380912871087623588281815779883391248687661700982588343896341895717537591385953329987670501069807495573385131370340087426689699079381504683181623902018743628742859379506823051767458834138280542585211672652573191535169121503358557784095154875956586756458138694275055731792350172007225638277032526851675642980449002844517784375107728134300649810803837304014987073525591636669631695241674159953580045019865865924597252759091217014353802182191179809604766741981156042405751038021367454043363617387661420580761956433250676854377185049207066058779308403263988771982190898289370484476436232081489829195433592966136869164605612086146620880956415939227650818124735125515768025473436859689731470802850818444310104556822085204678951999082915757714154824380815032753989885439752246769763631820396092888414395278417023453335729146218519618672969493157219936831015630916317348500274060163519443938997404136185154380896430385434081351223969910731479026590703038021539514126372606465117853965190061024076597273023704778261462625168439765400105644237370628270289884299125367883139991284909849962276423932582057571142487681051844853084102940638421634923505294088204310003303106550028464793648602759490497485969805461436327171247113370528418737994487587469903000894686325158384738369677847660975314033179311830933070695634041085744461167538481173776301924594149088736753093718374784268016190756083498620905836065634864293421402257897361701093558617373636633475439788899858127374349940127876312085896257543052406043544811451188823009002598982757895883609484832393059294410498288443099513920825775137406298949786050333287819013921679295065165051123560626885438453874990106756624089732139851804249487975958104471942216661110560344231189964109513487532162153746281508519680836387458028478015773204512653517422340911166976755956082494045120737158724286857923754442477530912897713811752661006854793034561196582608815724322533610615228960313859702519760622082740321769393969275524873397477313280467278827183451806482511554871086355562121334786642205724704612487006579259479109089976989781016252787314028034149194183155458535766188231955142474348402641839513244775434890092790120149572792744527319212513497596752806953418596302534766861130406083900168543985260606641092038406027954561072800787421836021909652184981978476450020403213194969936692330835819181444144278078716556792067486334211494283729574555121773337432568835597234956897769520455180348384245514086466392448501195205316478048506514617650616403965499123797851141343150089974710096691602740660407686906140067361671739524069212810798750682479401983962616400531948761481935228112595270337506349907164004646534133385841952224235651077235828897534698131433481410789638674442237719292085102061605712265930060424981305749103988110663247460685860700258333527802307404378625301157451394915288260682615861010327749668286584933425568135593835485200815033052181070992149129654634419309281723814177819820083892510201796688183073957531706061216331152150401676961550131243904772124362105307871478167754758194649720589694106594973151631340614509091913629237802348831183519982037307044200990313015421517832338450198365332039544337878947346051583428364842073659284226201720018628678522754434877928380111539199235970348074564774917208212688991801152322720317357893582655270068376880813067131541974533953452097956950189544110770240319217204634961406437473810253974793845892430092896529301820768205563202062568925909191627948647241435968087441065702531053521472997825223689605309186369307608766812393765032325774369341363505448202580282592189208955806826746861037865300318856643014405980599076770444724437244177419188152183608620077333061477581804449958189308071011314971222982290797028885713546061036971870782304505300599891015418938010893092986601589858237210328009601069976933791736507239712827663097965834034726719350087224672884501580407036884739758713379554559160190032124337141187611444079830180153665819127048907757767445168036462694411012032519064999561471222972244592391273626039041879177730448644721226493652344771040190805088096363921760104513859261170937772852801416269232079969827871903195096486358012296887039563165848693260551425012206198373939179104473076528737800111060719235984927659838753246530982693285607637228708445306155835012071956728617864118393054337435072447522083295691768354075692268486279893976146245080429280170712486127896394426466340673575089216381023434312436378523622157294728198629200642354073422583340654242410569126804099577836291414034518930057479869908363268369858459718824189870175492584051981511040202885518445112843977334516050022163002016506945576505949580987553793492836835768701878343948824882233765398547504849630362365129814454209911019561330675851791188244357298206981733576633430094448110659366553105557616808183739448506166814470182139184868507806862146578285921817838977590349178578804509425129522296341265771114879387453718917000581451875272468453097195240494407189863437255486434414305792549585354339883636965104843277942578201909723517447179033615648815404818907940835893370484636663552233529159717604278844450784613378349872418654100640047536686432373398388824797200117269461579619744046221914073716941410899389390880894708250238615966156040452904591787162039696489682905757653608111100304082205788751947602856942492373335335331973938710659663067602229742350500813672651527135279279205740170989842070544669872712357766090462813264303406122607035150417243518975008622663011105014942254189173579096932870352201638197801285190952528868802998075020896234832199833065011507991816316024124896322896102330386810792844358573934079884907904883372727558942992880395735088111449012598943600927892093937269674975391180544433284993477128296299712227783201240789057729563648416568912528678120454998252024750194973670349591381441394431172998047612319633164692581912389941564299791068902967769537555274393059761396696314301657482591127508233865507872275454561040527371076218057770321488108901342927955257149012753826126360291511620504880080794854981432645993054646639815646648646164626292236040960716479886184168092626098379650039608701838825177805845740548283271238347820362142889000022414514370888656901353714845609145220696464721238342709425381665120553287625405120038545111279966553073339989745473636470243582213393013778791340586922223932130237949570037924073698502580950106089275422852494389700994653564758841743872318578703256502814614525160868238278279110590396232650607198039778547579770652129373524107627413786969789110150243072455148255580307643345765927259805735807753480852152121999563756053622834459668402587603363373807152600925590900712332662825781560314998222873640543597511966346161732982857403876504876717261152462535181029320011610194479307056808444120309345264916242038255584539126238416940562714434048487173628892417906035198277167264195703308524862762442079070242471653291064040131899124738501304578713938238720270804861660860313470291665920688379897307934504654620094043458944033063968528802606189704489960494378514988131554478090726179397699411160000709669669330467878983624931972568089380746515215386855622342368844961510450473323596205030280606482922136466828667173391214936521663922269709618851964108822456465353180906048499257803436523048077017630974561594486716045529474805972963974301613444759588948125150510189913140285799514387267910493793092232041110339176208288521533847203032606876615476961173549104513917483471859430111504869154778362819975735469749316480563777646338122938433256534289767912577748767707680751981658487132357276627143036595621347415691805664209909413615297977390752288239420985155147544947018336370467921523525470718981594394346211628063994164301685555386978023581260111091845200652244224439550445984488179366396566064179573736696793069250517950140881230674426393423843174844994028522990878841464794514158454015633075745063424497555875862704563157368302768210946818336469552294464010637319352790185210344435362137222892761157366470188738869095621369160280621963809615192911795525958164244770255540840847035112426352152680326086972349057395198681470649931725602064906545958602658396568414031903808986777652278661237824509128805743866116785746843157051358010871726319637902325074736932510803971882660763054624442505379558393451157451004453621195712388607685840151160427951750367261485467699554928807962980144641273168238458745566423984493052616159820731091144331085978049784218916067459375278858408268985030528766246396972829631072912807991574790595145382435163117862740779918405990016130920154381941452224169591996185277231129609584266847021802652434802414246175059033057301887738630239465424671379074188910627223070093152469084015518933248831263702931184635401723120785498570764697551617306926128432874461180590460536777306947973323826743906271021990544904582713769009020554928755412656607392615035541215861093770202104433567752272741366493598521228895998247909695680150497217516901856460423179586510108691349825794667396569792023496415886435275036321525621113400143446937811777083024811277873213261093493917713571683898561069985199595056617168607769934344390678597636270057939868108504644850245233908199052170404894585471737443617764018844641513684267835490654256443878869601678437772969119457165123041188446976243991714750680339505274382362735396641251132762231246511122237486550610722205985804466404130624160876391019680187816540025079137158170539760020450805779275879987883412206540003534102663220717818916842487856033421955715668961372364972028104519117702900620147167560171082160386709843775179335375794351708303086555054975993137911465782480734892242374094832331901279171822447647240285798839302789158350670173018413705937233960544488210539314886527776711329827805689489885099216303073292792412113677450524640617090047308486131423264477635839545504689366899034639682583276572841880308198661639994077124367181864010488239253760531829120072014439617067108060015345767647941018656012923494365110081262979932017769243584507598542610136460263739215914267943552625654956918830134574351721067694695111578419164075221310260904009379867673744415705584674815842672453286063610364928788128113440354525494855248536425923316519378852787060743782145066879185463191441905673986203362186931903581394022721880410865940305602517061581773740319285549207027315809114058812079378794472582481469105149596251128918620721778598383014076045790033924153872883616202118673820475484089897087762742910493595855230058939027099242303474619386717913886419550678840849214141904422133317848127591075689403550080868688989787341152206870945267558863454614214093966889922908789268611396999818624820259049251426743133458885077680330655944803955961744781897280371567751481054757912383891790445576513769160453401999278546343777357293861292622550525688580966790264691509069413359570839429257502026358668307165014414669148599825900726769193861152728394665225333688466203514667531600695596857120313398942977029072753027830671263407930524846861465746948082579173578581757826184858227321119757487410407096877536105291366619109677973396206695975573565204489674943409560710417685672327217017303376217542220954839768081643554667264182923156880380982963240920639915936481515194672671377542986695867262301172119123127490075272173535955981872912367509215934883425144938184006721706023444398337244936599632176697381343999338259868787137635901880492496334432037633421787371965932906747924699697792189925743889473187205822188081088999929149862251006623610704177953766184707229262138392696438734395867375283313860731836773039143976458598125380729794727821915603475307776668498160785272995047740284191563331005640132113159107550186899172161695920962461876786238381815892010727709179261839205891769635586393446238626302652937391957477974271189657569402363260762829905847313848762720442273653975369445830405928200872397003480503289523018395021025175441298913705778433399489165681793158924991859168328550518145307696288670398584702439465591765814856768308695261108477447599746847673872454163534643300551438791121087585188179064798605575601778649813958004944896867880006366657140455540691852079609756412663790040743603342444425068180216620787201533082459007151831472694609274746761930183745144288576791261838617464309260717769811173695666482928389381149445724987916305612630286182667507406025456136652374927974925194769758787172847598757949632702702557754240418468874627140935870905994978016186487727463998006939548909466506397725244762920776958866104231256868227727132734138733731100792044880309256057044958865456351499510232640886280245553067405245374439685928806780885289248395513191873406046270990461941314484993601623462130278529690850491869080700635607989249351758782650624051038320418947193499441591666857823617896894214159113422956865313990280806030403471014622634824582100209280925826215956090838203939798142066161247310182694553372476585396884787809174794050632169726263571723037727501006321631235880652649359696187721358937449618752842739873142177681021473216709723584739198577251059500257518028202900870647530357696053101337288698809803901456826170873661068252052241342369119968262816280892551421360222649399465449800264845880793893409024077492937527234542962099022870488716656448435383944106034306753584142569891272709964793393520005583429092857860080642093931301214456716633025194986835713904441172602043760759767029077595837586766486742520380097386214173346285376930592902585842764621200830640429070034434277384333324112606923276237427912654445544377229453827013201227336004177437370440701332984586741104654608958707362872544200505342228430938583373331903438093827397056354218176918515822783683677425373733802512917597779828757007921418282561970979367279113099842907321910008776515616229632106479108721870450445285418605748710975121214930465749066324556276948531228448954095107929826765508330125725876523084062664292252021726131159381626006535032818617799942154980439888838794136115188847728098314726128176306517607082679139749515418902148293197475659647818326999447184330879946326011227110925255378233264545542098103381615957776501889459369973319167453410457148294249226773386016576919226167212903251254278157535146204219349999840698268143518068473838251197697723995545566711715609337691605703480593402270625956493578181731190265960679880191599283061339074920657438376322373351459243567166912983145115959607256530720894668081445710240752760421545014002767406343857014214451273091849279441471148965916056491302375883147567671778721837937283082273876432720532159401617925566434875655780531467787552084817371163579285552211831900507211680660804040188344732518400704054342899159061136150993306529193158386606883765137691318572837949650387599010876817439180965675082252683966030654533770886829070356258125780621317689637585239835485940207996970816525094964332074877176766541117367515866394168104010739639729750060382746080589847398785554002411885133960454811909792851224959519591833051282093799570253510650275682504270014467430785289929203967570733155733476214189656880278868107485345205916989877066749892756826632893442865837179283975284143185880424342666222153886257929391979453743601513865300163920649696285292534146813135375882500188882296576146300679777454411092041673126495151435063791001404348764015576992740096019007423226806479043822920356307832056157176878561201029995555699023543257002864141336137387402465796867600332078902403677465967331721068044739463969778642353172114869777809291129565747426151813655779841821748904150430928761285769325400439760949552971079184437144966069851309063311528506522124661258426601327217129059114371197504274267640253641047244787593455093761461692557797317157103112739220436594893985732994311720493764340611982815413667499369569616733151441316865334739093458823934695274089523981245421843324017827563581335190017192456430976368218632941337727747232018101216939878178886596774784937754707635280803771519711439132217604772939361546929530551256551031608493453176863463568827059416729809792801310386120166161335388977838502604359105489981224351885152720098947064944690639540478535424650024682265960774086328551060069789861015357541224989073059610644707765725420913067365083146012538646208487027288857694846551511183250005168675672892462070997295558748034530225003250833007109247505241019439188425274060649247891538504715122957624338762522138816286190912501932085367768076401086071537210223053977681199006717799378923601418078871065516335900925120599566209261736588855686368732292477097665468641163323286127708554836706190445362266500851156069975119531630106485617189131582077541644175897331781218757483840221239636023637542680485233236578104669754904004090734061754330885703736778206117784871206410059795631158230923619610131873897274129864329495352476547455427619513851322010915992596182397180339512766870610643095263218420122857978176532454761084637047284838583082026887110938813524785362383119180482927729010687925336793459080897236693434884784524433490730043822013371862246850899739472613982552691513204628204832928828039736645905790449214245420540932383608173832033614778628764142112846836658838085072076304598975274656251569886818958634428070998500613479858245973119467710142286305210139857079762670188026707479101111852710297413977993573422130955722984233906536202608981317244798789523703756151609201448753366207550137067751523619499615580220215090791819699616708661067093428422690525448982205801408428275624224824190027155687077248257841221869322869317002475283093062027498041186004362918398968103925202860537694478087039842663637420867515384291290112946637654175653211125580926692761782462648875116039824972126080991443206030690517310907150297967885052607637849556173394943983350146759124468717762323732810919246081531393108600939630883963138099459635675832573441188988772941300493282784559317610161450239573300714025178274063661239637627747305806278396589374639683903517600023310133004617144693398359499454306862659962923076669668642489954451963782132850272562027962517252782790229583108036128204679630080893444829228938784642779722657951445549507645235273826250570322736308447259039625531134332072279020683134658670028112809331440944585712395247144403709107097060746104296173175568819046274233848673702933105414489000848052218428302946069972619175027816531270320557370821060854441407038842681908736775198484860993876261072900286388463895077184829421012691273358302971546870911269144580222792464416158424584860300884652293880008391995478938369260941998875938496610893782158289292896605772643840032868039456761910775477260770770119770351578081617727316394069059910677589161741496526413967545828336175943313461300205175491586899080063634015066440264832326554099902449993691903261942702773325658386775327012622752586127551223178413023665975209297087759727266976004803981184879749154067485272586569201230565448809837764694652206216834396299170923794796857959875635779149256398139098174046471365160614734836749540495468854441848577184782032587554822403785518569012482261414758206021805796933384874555667140837333503282314344283249930295984376617423472407306660877434181401353766763880683318361012284213979656831632311532431553750664164946073800354827094979890327303846039314069702354631750554462294315730546139054388377431346887661243007565893255078880240673397854123233092489237181477559466815542690241352680310197357138794720888603342317206262556412622254878459986420613362889871649856691810796083437808243525852642717215166451433107991039233594953779937093147989096276374086085273258334093746425344419801504959863027163391768728695815716486234127928597582275700440234391087497101004504173310779401915928719056526512739029089759899316672148695485467520229419419937066001638682628336878196059399911671235153927763823934059981030327020628533352617336296512473383516356605143678329140300335381415640403950213502644336896036411518473250547325179656234698970639412289052059128421774171875447934533732570413548304206870039505095187988418220622890129210549097951835041007994778921707690909573752004705883903591760694863856092179004950062472918518692460905234601307317116562310512043452946413642794443433600300039932437918075344484572847880538004537528246101311830213671594828008138907236892334373197948862862130729493139572844846193381828035586110783822592609237826682636515040232365640711255224094272492611878235066705805484981335994990631280528078766044019063278344078770006530226963997972031983532513039193988980879223034186405094496942783119827080607157420701774667276112841009881789641323817313163479689271874300223916994174460673554543125377951623055543453207417702777836244822664984377855607525027115615275445271588752778495675655406033245259849552285048679360040756261614430789701963383210916433039549436755544775116425675087781763212848092253554810620940757919286102177751900018285924688172249529709681462453897451128726999482961304852024600280186476144994740534137304046615930903236893366931355972824340387262735426845886085752660415051413000202499636197699126102632938633981652822281771364853627158763003654381503174619540520176019276645698582011023275328721097178914116239535694780254080747080723265538716900917989449322773798824615686688000551162239006071286370962576289288896847642569687604339640826420195387442971324570540294857791294052421408522742874233860269922889311408812310997555933076271945833279615496013412228323275723270512477543730461055705629130444940239992089679822104774753574600721604571126009990199412381132880477938911783430336507028303087191825304078198093097449551278125793652517558211296800721614138147376564555914236820522167991918045262019589710136875201305351855573274115826219409381164423843009195336469798177115290974445056086360106702325512027808082298805753715089827433660228484210261257105299320849143386767128313655219535249472075566803958304848000436161320615044245631750204431794015705204265866116476066703303546813831881582658526143401364166952270546329188113529138080362402320268122325044165160330715738784773486196099411881418596517232397007796748482353496213147012917648893592850908118595406330309144696756272514204028267334403144945979003476523398601858127231139991834362995613802090922995944468554643246772849653773139351910046138203475972986784132652831870948421973249738970866229810684656512645319256049996855430512118936960078590573103983754246893914507736299284405697146701836770058781022949992868055279283483825256854591407620610277331180793741285475361401978148245384348872518978276638842778747119478801414949215221259226157305790339311441993536377514150525951846931055528322514128912585520055107182358347603785102357189798298060054871944951323204336713126609468518865132369054581373622199760567751728271642265671863124962959945005581794134993170589759278558156863552978436436438739455449543062016619479682840889874904858747090005652141413550826311010067705448847338302307025463401146111568132774826417159641371711097519106623215299647906573582717075805460279118757122683885345697804172568445758113485963147350545663380435245286625748356985130732879157446321845299514910061320184336576563353676178605911773768328159657372262491004598352994040189254096015378665681017372380532243192161659987981229321962142699371543412672196683478127493972068771258653445801146984365781318133281085773391714158832639766295492608418615526749384043182305180144467904494024785451403521164879813939851305979139013878403988316231349720908704066820596343587835541358772835110365788798912064654095628114493978259903342660428112284170970262256756328278018646842602663260923448356224628950873456283099971614304526528639301870388510465809337197512068126231586801275011287678979705530022118894276969416140279675303864761884139155971765694398329691162676097307750084653202863474746687824719241487415613443934782225185886873766024507882043288058164780113859078748375958253449667907370538571034772740852901453715448388069968184477773660306905012323445203094845227389726895933036924192750379408013433188005729990385753245580602763027824186502107393336490868461126765743386785847212629916624468153124228499110474303993952203734865293890621427422637594752008052911843903497926638438918925189294042133008893386221154199328242818190653453232811899899721346519662568604364935273009712106815480509434570060068684720685522995074527740649540701628580466486026829175724045677696814309774776351124322103435102778825372050303601543884227701281916705336418015611598681602745893983577364881712824228698094538508339780579045165185560424966289561660236173122067863549054848255202381972839395845576588351778503601700215688446384974618146454888255101837035131595251045687182118187847718512218699242009066987753728575813175004381116110644621553695716164074353468187340220077132096801148920843129332122264057571000432345459816698924071785082858209261118969191483978768582469114768304570851536342669443841640831926571980219261937918682681551425278821381924824959462054590847929924732950460879672756072229972280750149946829666733146718231721411608154962194144192359465825786122695084129346594501741863534751084799402050665752274676685487555237200296901104530735760502784259806123768796747667726708999363454647905802276179526719657539265362295191973093867090535793619913029051342899103151457758991975086279729860984716409326402487891697115379924366736419140242170475915287211298642206146415511171641949833679840297714110891855081403364285099702852493259202051999466300150954960783370142155358142522718203290102888391819303184922145537098334329015861591461280887742595747523176943438287465812345703294015666655355164183903508280063300229974528849359178546367812269316544131673773156030860404662017471033659456116059942315781555353956887759607766169329149529569984597128891390030222805526882620611210506057625414598225876143853049033515741492410056956457411942139964333581211620552150397696359489725677761574477015632414694733711723205930076886251649744013065187977380172635144128270803941262738357098556442982680149752240469255493998471297686842342154019290663738979634854311193441614466227753425262723168151879110664719877147277115720741040014940568013605799220146550900505161200871007134515915418392152165714702289251792903126937350819357229162703239747542019905079352152454497080263789621699432006590498879266509165290666802076949974758893034625287199438174254253105019641275693740846103491634192675266868453952710049742493586019447509269374016034077553001950935878405726599397769515151030291634600462145046028016090437727892752546995236915764915074546952451588427068970127418408587038642252492318060187342908809177712996797499056700755198003960345526620658496219884338320604861518764630699399599131159916576594113102638928089048568314254725968087959177378236335296540832079381510390641754392181349877465012756729853621901107311802854404989951440417309751409534479293524953599868272765210106232233886635492285998624795764185777724659143512809976924733059115696675435603813036735548078437037336882314606003174926633994317178578987606944397204050103311291379549563046558957905665692029521107871882171368003555689860340986518512245339860047370023165478000077356966405478838709767996131262388131977394720271722434608307116857532780814159731602071549890156176654528111009156563715866712154782368223870232665190478455782727456644271028875331609881400624233112115546150901654315336140455043049688041604344045789548697133235402403748331940781533070877601852540185350368812393541211793935262322323358004692309006862121401118511443840436638831528771238353476867202853022265530660028979588923074911984083835946539212605132367247363657486417081611768179205070632700634581960411377542706398499862666988627531880106086476574126361633439880024218035917965887244353791384815649715486519452432675551225009904948298049618131260947697086733812994912114183744600743920360659203271387872158525216542658379648178492200233824975882262690310915218822696139882424733289454603151550755928094503197995058306881721262523511809039411661631657509925374419587804371612426669933012124680431240675656754692814179781703353076664399371735370124591527401199580640863839689125908216139261727615595937474126373516084300463872009981182407465604888801741498775343459754188545329621905983734382024533268192555104917711262005182798486819641535985865562558546224528329741857029450838123845233819481238801908831845063222693668237057177476166080741818275440181402633722462415236960187516146871933239939922206719799822676741351983144274300096004989975891511970442255440691685943360909676075159181888165134968496299029445980727656728147418555264121750483205689618751829998822784550603826297120753080284106096454516995087581994556842506457651627100275071950023955441444331106587443268283898085603410555119217948181831568768937056435850094893417652692284994348112552597260698891257744177610961155228134725541910965764860534305180126143627995123519432381010571139428010961459020260234741211051772876067378548250743549188629443301258967967724924296860248101716298007062982653992126475833362253031784724381404656485959180268247458536084097719942299597818911184173284700380896300268224830880926757915140913563499386482473535885041226009190266213332268039522282921286540973337986255037775842576420988163816743283071048590417022438644369215484567629202077995635516622686938399984391072336234865708956223435731896492083153990916532161083020821057480195546738534430955006246716733335412649144002171107501502069477736621697384996984054728615318001812542021931464530317392284487955315875753799971010661978476329265786793471669905917315488238529394764868822130251675159343752300707189395362542539778724410475382177805910600299609518512564982014424846681709675771134664912468000033373152364118339066327098058009166170569101198499964687065289068313967175005090197760635164482362682984682989201397069988655510193392400529273888308608431557033439081948672433254370385577115618732676914599022463759535563870020509441959221382075645093398340890418485807508777509619218201225385980824518380021192925458824846040115301384872947757328819023677063658104988449324880014735168443146972867266398285411366197258279658597846629949977313434256628509621678518015556597991394325852608704888356895818285160900452561406287029614596990101609612510994125156168120175069612499573150177882200122490483513682854540894078918169338896586371926847801534929995952531416927064357784849414499869399533223254051600712988365467808492494136635762217296585112265245769181117978654982783675564027315202461413256431529062881226964505152879312061774869251463363416708557326029796292874039348076401197049292908018963745969442276084212893135991115193894442320409700420768505140432132180879420648300037818544810276339560850706939960810349080745786421544008740251772213565829040258885685965455790349047323279206342476670533865835764923555259232899660112975479117192168258893918233392706109750790312740045007384743553988110275621346120492634957823183145933445455905563006693271831903384671670930509156995142053795796533428104570543409180505055186973674399854724172500145698007173999347586324939916361119516124666511000461833405394860909304238379731459135962562019887648855294303088621838772539022356709935724033651054150078450480236294587005800655173735745991769962736988386089744675557209546477771647986458340564553338942670423265312388512384459032657485441724122574210806439309163100423040217992835003849188085221934747845100827180631466907826690240176128362370188418108114186198597607973150200844319602955459602378402513040978469226561469797560947234551890397614548496485320750668824010413786806416104252444078040845261516806194163527165000242288775972052802373236752536661918358381793026529095636936900873152649605501469364791705321035382430984473909675602362932356783711907325416514762772788349541081618683066261646607487343732927324620008110448586741453574649874734146579720438676908477875688783437558722557453387282517010466918652077024562838160805663345423981195357065598982311852258414787442608521224484171149663199728811273475446238763180354815011047482504289622538261828778446940668053174528755943209507368438757899841421415926730977342827865273164736280758795689942944917363325694452173583192209310125013940547166029512259795098983861758155360394471765628325549954388713961082476992747295770807686678332541737498168566620090485592388008347906737101214643091818770099559765170273563673775657883678360907779216748106871736298677720253235659364836270159405707251960834304628019884119941035378804797298264531379837835795431278588498678345493340385237445876016093129523440011235266350031372008272974285088590140761789709036068440981131655175637152165301326635409317539308624432816479984738154498111826007988246055580691414203682724578887782936205707501292765882767048420558786995355038153224084770083868003607903679999328619958204308268936101645204698725378056901985393720909264512676378484125847342976990149195714530462176573881637098489727625223060505541258259286652535788101912004392967788643122882444213393444627944887625994492205596047323968619248528692710729019895129311552105650830461803519023121087648224140990074772472473325637001471342084818012272593486277189609172919163829271012086585350374487874878652469854279189584453596641906538215672335993599330961255160321973172230031140302287795038822737998406908360906108640327846452688958555943591773868742246911156453003928584005541143112655218413230078178831997280723923710383578319414135232648483222749392611180984719794006581589123609395271725378392908891126227373881484798640158470901617235564774261400115359029883251264770773330258982976247554251819094671706724675056367020258467890350899180152463083276656457066919101551664221014190874359211160591835894663939571168668254908921239836170656513451090512431876852970250178318720801047352481781778633387307648025054773310147722574542544814699284329259870669627657360611062189091158552226402057130401495456752061166859747310263092192217591165303385780691956783015722762252428591326148571937497029857008775548826844703160617371616473193003052308831830760996334542654257750634158757206460650024018732733630716109666534985455505182389772309139577067601017356028333870830028841136491330169155359034213311449168972638736774940725093197631415585680066640277662435101104566163571098364345993537523603697194510228140331081462358223460062444535662500412838850667293190286079628846758774406374876389389930575053980789901444100923919395685868066846855408169604450834770808701395139974800219821939869949673405548007948887041333357570420972865985015322262967878680275189756941450304225012676344778534560854896723409128138704737020389379585459468039817272991158076613616810932623467571537727502371766765291709320339601153315338027854726487023527805844934582689557473910544440439991694447784202924062778711856402267299738956823592538671030974473669144167173719700598464920555473162684508282168054991164470656644089632042566985721868204502177038594247263285498966005414944161877370131270582784275472430327397863501895498619430381471480732149982709953830679660894953635029168890943804224100022470306941457206555571494794263889221665804049379620029170072738950401908292997770288629775054327683340577325080098699004291965565486946596214485801140125462817940124010897978796315366058736043357692283636124394593817888624966467852075987637984565943054275308008362665434705900121776490724227873238655033422011166794721488798367117284368646015025616341541604200232820892080133970147810802878617265384310482171255705975203369482330575083875154389913720818448028355317068522938060296597796796632531267780577504289187790898759808941501851734258297900113723146605840588956448188857074607137657713613784576070385200841345723957428813623626647909352628160524739348688471289414393142719542181435036342065308528133006598418151096925454425604895275658705079972365659180014770548488692127605054275302782710861874472416136848990678210342446923118283267162284517165468619772890830421205734371407960239707797489168038541344190579853894469360234735939049997179463579024314773983100458741764645118676160295493582911302585067361410913481380486853836474245664443392683351260602736673365417655422032259438234257341657803510181874231676455375639028615486911642633356251091138244818712813493670203076778945186186639103677307254199971316160137019915758442629981989616541774374837607595239354693298230849450101614403793088079332436878819053545126342970053123655398063904654884364616066025479432417716435630043262489577391121833062164950168456367746944765840005222016923555889156271643832275361286700766094522175575651880244876340332536550997655624723801052433669901522999499794615411070338116846416596483165084573938229875118196686471208056097997139342479368379541489167818952889069126221735906287512445147164327856170823524463713899892875102258463722606213374762681812276027775380674549362344730601018713840406500788822515490544834520037367629190920252258465450978002876718515752538440340752386503870217853261382232611081456669778768614030045767719717010862405134611638303010047622880700398403089312252344841161331545297918934748312724219683761488785679191083318493630345227129667790622158483310466326646650735763822853234581181510829556151757754747742156771391669428615374067282027615106397005249835835785238020614315622086209161167550006833135604179405503416545506700896218664856283526892520925853258323504682938388706753363611299068244174224445117696475789750409922581430210186885868921081314473868545302207576921863535343023929773579715040964989007393002470884748927650673949784492277574370436117043475095594282609231678228506131973815830840395095885174762075403233637332175288582390852688011933984585419527244304518544536686861863901504795261911646199039749389287151985730028767193820186648946548889815079884569596476533846198952778445634587784116825942563799252442585244166331651427900477516517682431851611080021037719489208708539738831083788524405599239745904520335020020546019298574974101306640526122638356092422786947422122114690302501023702191916759861202712525530386589224770567128621284826413731025253346949976755794053121946924577760830371627286323700691724560331909655160146764117048589052262873965988080882535425727458252079922747496491388737118270878581395196346767030474543812698826779370741711554004329910768936851696416543745853352932795510675232418442852782432047839559948758301599854873773339477964208697116031601223521264242473069175225221854251323719253677067626193102712444267496438395378914472727490047469236952435778589414432740132508445630762279362221711851720113988919287101637811882727379464355788064579064194306769070447995508105961608059256170991668113383633697988373135019079593889367640903165339329282845500441517081929440754636354433433903697219802304400617785212158502823100337522628150199824518114956860145966647267359684916071537304766672322286610976473129887721520509015485944127504611729450449722585450301615778355891478828003576828137279357485278842655931095756142997870735024637849820975550668243096261285475703718243328664886730709008061893185231347947872261623252222156400741971089208187263215911303995669975039594231643148149894031995374543453224540335047045451749676222477700985059257293216581480775835145594591818435109314440381365095815329630467046815968016934678573566866414502466006021068962025337306792447441416877096642339207634029894311501077754725116606093037774610883214842579622757206941683557767245854603767101922092228802012639442122577805186302335156523767640469038300726678312646181660351621055792637415655270968746151812345535310387840980766462825548116473619462157446996593895250885080631776316424637769967002770425538191003627696156028381786311920882748130859776060434521798005890429894875145684192924117678613393469764320596351471788467108441787206995013569721711487356199905620935768183465568445048262633662596559498772408796693953336156918949879369981665507560295882329975541446001136081178567384012538219448598644066162172955869574712940677355533361770656159597227389335188234496463202370893964331087074675706501577767564405343608235062795657858135213238177862058393661769557974520166907192937268031943176783945392741449871565617508431934053739175607871992923091788668666989899208337798399636230898726122959504586607294245195555571826320425702678393633316013886082509505240006625571226456782701414272291596268482325919170772130277221395280551870698564790452682717308159003512715352156364280687150385014894866300974156819915558100275830148622746057131050291483537794027202145994481949812953195469985986102843735389810899370646918534255491732710649768828172250060957047784206881698825421843588513380430050568050486821707268408637966745257247869235790586308777892588064841007147168057549556913212225273313057030297100937352799120658769657137380676271746446218573554747450323013015133930531788316390640333992652410773702554695460205824593906269567014436228040380797202202055123156483603720444967845131612178418804779194448783322159302745062058261569412312065027411315894175273976793504030258739057840636332727209879003153682507738218586710393035516051991365203879135970004542067104668503212172774814477915327500634486454335792863489821014358290983828190276172892601402487487087302270269673331474673541584938793183234883938306713850127972404156019976239656789912349810049980612963326412539237190812802747305308485739550926981914236500226997658491260104108667862217670506400475965337559270720447667890598056650773253628482993297473705869608930255658073768106707792905705482973779278955298832704970382890089169117344036872775737382889370290748593358248485336543080347021547457878684889684590118656698645498205382102199395943357466341333198641042147190014415422964439724176919468515709925125230899957105194554749365137079003202911790648039742644399218628478872541808686839342615467089245255763411658939604827052051708050030870829094541253546730525506158426626055020396913486132588279590379902443893170949675223114915212519432341299728141388649481116537751287756437798329658894660626167738411015032832648910299028485884892265638930353088535041365653700704508186400788820573126009061425792267305043393078285811664617601747059907031790042589605410826688967411995333985821043553347339666101158652926793185507175088826390633961204385307445517896096881344013846662679809583552706388282209404724962125592393110610065322594109598998315764392326235443568913192923925765168799859886037134709365478129000327548312661808677643133520225652785872884598265187037876088245406134185684450933140846045875830506350413031447121378992374473683763523783690926473475508339585359857532856176651812532301659099570807526460370275874180879150083723331542168485976191944539239282910732100095907553789795650669810893746342366195749864353790178332229455397005825706578394962027755333904458038953049878260536065800209332637722491992597153589603281146066428888269669275732452634026407512890150460510978588009023056010380496159128516761456177754686933981462195352474886047622918939770077383722264968423101228796608686577685776651571237274597593402656381515680195770419076029178589094994975030937590051368116025667174708609149883971799097759210770163721412474844205412960048132590777737579149816559116683236571577235756996542668686952145811753319620883178850457085112537826261861493214196266457532252645634141887255816561019420011012939015546882518942377587513640815347659242348157224041766658171020553069205418989110312412042636163545744257647784342559538097635950922505060870997140644892661222272706660441826873556588624655258198891591017766296914091039500956243814997899408748411573451300872050076763542112205742857988430591343683144048540591653050663327815473505606816496412603977935814975300272825283837961529015686177813383843672690868591910981321213745133028480126002633585713884391466442780469015570019051010019936039723087576642966742020160328483166312019885144587714176638155479804498660118266799943524582636817284417040924856100638914609463811800382844792294949259691527454309299548245073050421130591736725775103546424551581905903423482578035463369506008826477930948338841378960738378875348729117532870900739231896437030558110649160939523599448628965426461755141772088048629131969051249945673838098401205105440387667360708237641407547080725388531441878469228466354443745879639619939864378800161763968252868868987467388737750375378292967357617887766076443788636066805014776214475115707831726964687775383742322423083609171503284157455025187129913462771027984752834571696352395574985090264818508900085804204785732184103289527307828835413428806087915157010119764527137987038029284737166407249267039257245299144990773628710101800646227097104682958662526979597378526051325276888950311643809957685031766761265940706158409428942713679732937974285201162315427592341900223793086805903648946932643815015126349611687269686735027150088320025188634484223905905104452811634934443829137066121544349310694845834056755720296433758311533128938632827796904773221080213069893541004061937340209773883472126675737245612218270836960332505718401517866236342387842748581644514725252653392854055633229859825456485829589240151216582849006390612386853853898862262528725752107571481547806448840490700414109349751711136620890384629243340761953256461929991119859904108016058778644469065448700943419788690226180558823758167332350896955151587172082141213267346945046097431709046413376147361860823082696072559722279160481974861667618573699333248434676236382638976786606510579459028643266553402350006585030614025664112591639447982822505261764741734372689904126030719786910559996993788511825935997961578565846523555055004291215808805690501124681167919147790451399601007958480740726147128984517283653680530518428577461900722640947722186110790676870538056631482352299082390535176501575285465673617502827131821096158400015401278184636050369926946969296621512099753201205109245653476604228806364109681096154335408544552866331624139084266901108188410748949621382307940776539637012264889986564897177831876118379750905135619081981327561926232796184591185239345105910006749986256955739479765108241927234903346912236382747206528589894400180514055974229117371736131148017260110295989105126980867765320836951389837113330151115451546548192963843404866428343003171176141557741219063308703031464540562916660529434038515483183374694371985214176099008736990373247008332220579907298591201331970789073272857787672850392072976946769840847334815259854236421080683209978433853669362049311495092893564331981745520709713361844669626063606514380089584142981182794864498992969709927505241634974231676725894491810401628322577167528563705749950512618274500438965916225693869583474870817108805882314469396041313308164244064964298171665925240311857396148307110178244878561438150436400917887434141895690174614920069421826097099348214003553480359221361048988236351224084171003408020928962391479418359657092667569409395348822166223634001169392693746335648242996203869845415596990141460396570775628666483325860756368690070649509809146107126904286174778740707783364964509845993419835193942150370868417346025677199350901514602377509172572917286478690396208269365711763256116944883796295935874659500455801158442459266972700447836745481603175542951181502126957267507204261087582791725596865503584183599429254568012942429227343778120772266922523861953719762453037567071194996004986211007242436978286327631312253023040475568119438117048478100463822170431568435437826529726058647913823076183801401745146632070487502192430369691851198758757879959876364110312677051288534101041418354336391326265253370994510643509045767812883488797768396701098849533239834237965292406160542371382159429407958627344164261045873036453645311224985348072612138100090741864772093541086660458340509542472808070183909167638739140274927577555781862055385147540803385544198819297415713970714048074953202393569477505272557697173675772307824731764439937265581973220199879010831637512744901381508931469104588396413695910907920276359587883526867298890567660584835146418271662314529413620919504167646265062896429015950909628081533919827295491443819649475846797729574810497691313156154161514080671049894830019578131410808996549120673842167105555499833749404377148186958679681847324383998187450860226329449667150880357012974214561715410744950528006717038334686941112516433916232427409504791205366243144963816102919150001129053320727491616735639073129500104727625168720545565324578641421056978528831093005298110179723206568389918981570261760724336758460055417092887179700460208553974926501489372182076421536952908113016542816933153418110307928112942857237892616521631404492258251692634067336694381165749001150045871371023692436347484355584503134858464492557239244608020653884766938706936921703877382824051156828653221865129338896500536557701019719370813686448781125631491001573434468254176471963248139171753340216184616471175263909917044085459318340572196351890317557136467043036178191782026720273059917471546774551773800424087508966474752149576375445686517833016166996771616179634334255773368289752160903770473962052820744840702048280826901395161801240608546907462293032988743943624053934746935264572675202873121552343618902759399329880659510277458137926899539172117223890832490749863247833689023800172496043863315473588725713105178684416622616315838631627805893214285352139775551979995581066320147694016135066502980289522105645428233664870412960573188564481908174715399621381156775470248954584894357365357028477622764201343614406421727991212464330308967553896176403037300759393550153306442170374539494801573954921349780175060022687206948233813490711620677193823239471463725556353832377403978397855032290263438158261506900265319655866674570857015032119703872781586922097358685026967424308134364838242090265941830279128762155139986189128206121451148908336871967595233941732531396062889860831110674614727342863973907819190820905545148720066762519138810983681912934569604757666277072080206909010453832888591024147271575958134238475241754703692917018495344522268158242902239413095408516043280435980810232334513162649333034388420641197871505513603219370689612334458188989591718011665495591891045821351935058403624094938122179383518932463032689469633426790613344071861013380443707807099169308422503602154244760763409440665440907739134216954763879427854031775274401586015657012956032323793820759650470757914206117969393470078178781615690090583961502047767565608684580130921465045391686442881845179557367272139681807768331454157301954397357183657867947562058342327994624596558962255154831036104538341032839104247777597245092053249926219960319020410660174461204309030368837916860502025116306151817475919632116907618037522591252614870916611784769053984852793362959849083024369391665980770248339650028199214296740675232733035880193955546758761091386834183513453237098867725350040907753965876716028668643942334493425594416980012837358141196153058308593451173688289527126864719490339147210539666446504971146266745484717984373271175964581697304292874630440759214955398802367183860134623301516406575369366424367781768635916247476459921053129810519612993380453312088964035189553897884453622985571964922723915750866594570346097752256264387003123587519487790149575817748760822771855873103895291411254689268226112685232114534606243708509064205165049172480945038200051413977096030949572675633533021684032045979645542263089363830036346686638631670068841005459138966959267852484587926930307170025085988037277231086362610464182932796648575831548789683093322353028277992170971492424463736300578731964767801676819415172214187863717686159417528059858601028344698339882093267677062914264833818356481595169773520760933599313497835806092662229546788147144727244547854102084696658664056494402405365886841481851198440694073432817509731501093816823787039484265143252398040785609756610719677764782075731853656651885162851355844582708810571955543571577602332899375316587535575790926459911039484658645413199590861505522414006231956637471094913289573596485735358397185395874075799885768053974123784710249576627864231681959794235088772543582581428220074045390400452918479343319283399950759045348524944345058453925648116760139715835688215542986761492235903431079130996375866144411764977119677940635632183793275107184643120389664414350147751355417666894934398474404007026875220115647999784501972907984500612668369120922205365400488523859019291586881446624401128573089813775214194505894644449113806724086446698853740688197931964639645212769355517171318433356646493782827953302278210928480436864502940746318128985565642316124261441643140205693249607923768359862948017221240903203039773490360727947270349654019071766755626489189639447773325257943765555877124714922348768923861415524305911056111361607258995647651658434717185578676112925066825196594008015130926751016384690150319488617411475327945369686878594896339902371686362207591584939379009828315298541749403980673205408783982910531806923322305572865649445254542077079451639261551403387703435710652143747835569748240674972146899783801576203399267836783620785661842345456238186016476356391162696804020604123602218766613601411459044606011260174954175522648002635077994446218467621504538888549539172621360787236606464361712410897769089903168535926268150040705803198045706829290562110433627951394166844159148030235843520262290773444470119981952128059198600955654542576727939330182764882660964495731451546268392362379450036284644721627196909323431428053044562997598316703223347252418486277708774935534791961366767306645498147695808307555300316211036124235205973656571685613789645124155665496183844732038805113822939881082692537690876781441062474947927796858873555896350928593136475130214735335321075353121225732729098757343164679120409318674699556201355651008414380490145358849296357225106583986225555456344987062432979474493280770369055334606018131821075647182939448219853384185586417978440074884610837201312942573891991476195502309720896080948561973133869559125826073777519826789265153625526207561162446103708842480400608621774122076849064871497532431420468148877998306300206491197070418566030703117392519325677931628344246758309166272729964820925362570297698520760005207563198504251822223738353169457998378974696560064839293998994784532797819770448515002218210638156127108657500013801060519751103736357841606260171366959993858810297814020707819494496481550656633774318410768599852274301380457009412490868039174479438876798881710872622059682913836622058183058445127300489444549964330804015429065885293589668772408077046808750570022711722568109715258764296291821113086065872796570623247578234179234099281109371434341129506831090346307850578991125277245155130806216171813707527646486588525255154116501872997627351169151478511347407726274285047229316170804609993142750156493442183945689071076669129076786722147758845079423045547147575874239467124992131634298762501960255151031160281907279350831519813863261677735017508409691447619915858728594633429823968206149834104503350995762500233877621948485282214511900856263944064586033258994846641464294555091098619107208499132781570134842030561282334793779109370954269787957423345637587128878532526888153840329599678132340323515579684518383957749890245883831191719073504923463741230757641970713681453826783230473454150731901479339415143890816349133040936502422804145305530807479720277328051753363571185728911051813846429257244389067869931040416427116474564154829822078458565666635060543050326030997889781800400556793440971557323154716453309947850666421337551796685428186807181826760261545418872683847340823192669847305152194482977324660463149772679074364841828146330023528458561900361277085487201360869781487303193448245943373860295202391691651998070383113117935646038561273138156763965852356956964612867269255297778338783802326547488922069887284938887766943072586529528576975290806130230690660655011241118471570135150909606831721988996328770767263380120775653712160430241045237776821246726030867312475886921795102769585952958934002527421443625657639730659121934752764652970570260800051624126067303824660141658975562253713280871477320142090390290326778466052313106715917466784287135522773335178581845166602078151629805552505030842569516949654535249924610018821983443337633672108659468223911067769201880950358666012602758640191959909860837728867091590570390977030387607815874764727701169239724536045404934974718283354763659396712834883073900119325964325511717296349697265904657580880075561462972331804646326633099135774239382936117987961910794024679394189058648480871869492529473525103999702708780149824306008185918726174613636043352011973138315936210768084403352142043549725108433972918568200480336484947334372105065392758990460114827417849961415007109458954215570065816965492492983501669083041783890400666324838755037129917689032912955103095453062340593445239728598674424801028227262716528685701762301364080159252991889278208750145052268895932851452589473194400059853907599239621820681037398137510644958925399272620525533137696665027815685327812119494469945268469048525787538457617184859984380241912079736741652477188232376467310888169708170860211170311147110884616460844019591258393043017386543722444307753784339905246705127310624684463243720664715902833916623076101106756206970398344950722532120711563551815512725994180214269943783682261208871824964634949105659528163933249435907129342719887750844081531964034495828548809347972154678872329532344697598095122771788729927717432488983937235113883322570489288166811019982551383836696453246775130463543523086556603893434723630658332729615298681739730109454683656837052421100067944523499281697473300691193039719057967560324938244712102742597820708608849639349101470887181025360252340406615382292874899744059655772562761967153522904102907233159182999135005460842971493346749038397643926884114055159049483407885653892014304876259936232509732610749617630978755750153542731875305751819602436769602206235119377106716524138793752116205404566750491322900621093185448682501057466829509127442656358234397686278198930437368294321074685632633155655383535944128183005677438802503564866976630661460171765219453631308691652823027140450253274703454769639079048407572719262394401878571227233929975671952530027462651023372691804364979497528704095809848473327715017823405609181173439317244002798003699877271812316710516604411984868934413571658404991955930995629528592674051865837958413572134008852597881694834707156693497016598532539907000086432550630428507258666858321011860549313196822182313020321031581007774388629341430326538382967666116965424415556285078785764994786357047034293896182887791426002082233813699856360519440995402532032375041749674189450186305471299110606218827406690206410408389185681737495681293199337181507627556636427875949829414370652557765922803859960041309227587232677002528705518439678742626057005641011799332421153384341468076140550085000847597665460046418943916764304097976947905944664888451208568597516598123739146425408730842140937850424666664560827424518707772322932106141322200358615956175199468796352031211518796164108206955060055799448869328944124669137942757133133080393643179355847212909009244301327097442939283809595512328038662007768747070854195579185957747382858937968631566644722954705794197338968605192288475596543245447981080382389872765527327528137052412572200557619721848661664357247799474073192808276405202153452329654999088018581974303801369880522673005943161467850667155553206911308302346492516190631186759784256302208659182385390759605360385825739916607674458601243158704566626479949727336007851356965884154921539834353803119176088136717323346925712978127467009795727914859176312345641501884942321023862746947963043358649644937596177787159126041942067214276142929994550695578881073982315949484387583463747300296716646040601508428036809332096294172043809873811566637536815398776547044938032154533385762776705948458967258921925899962217085426510228234594385979643035253238359765394079003603611908973300331525236763413811382778800566605779600136669995904228635225201415324502965946718805065048616472227770049029917326779995313342448562295309585656089043650529913840466946664574649797391054376315403690981654761153041313581384858654450921408269281939297708882185928088472049193808106193180016043979123581041170363876113107518927246374197848906345335205137899561146170414722512017156471275219794888535585821963492137192689760444392757001449803151778513659463993474862901171628720422665922893197920166201805434057199641839694198794939169214316923258493561812481536964998408052078657955298901902926945975013767773703979307022749005669482446324328512176259174728015825059875056772853989576036827333124708076113999343246452837188615672763803716267689939437110905272613071270139422149373759094689145528603437159134266875159471367888021637686881215417075442741919335196501594237737405317640337713551814072863480376734867323998732886829727772617169524860919500980891311998406355255681325238747697124400416070350092397730845818093657725733627927654640195234804594891915206237750741043129728759900644882243066775970491375563675096835641038396747891237143631260148562826996743124467917305836855067347421814169281992808982811899301091537813593479482551896509425954537597864863179622502187268446906776100673418993777875052135103650351854769351506075793042179413299905410328330566303983390848273953873738073367281995832311388062260842881976071870878016907342120396257567465517900563959216154008471985195973551554624126160235847583956807088567241443611093276718323577119009788193775369009425493060542868611895398701743319656061195220436863919347320688197250531984621056667759185060263965696221749170177852450964054757564449306451688892596246076848573947551304164590635291659118054482348503052593455422553008496472017434794985129617280049246842885646543267190915483229505299951430936191123539274929097221461506374729500827311594541305920482835124284427600727746447322445675225830130193805801764111105566059453151545762495881777748759650995257172519963902378213583811949283141054193897593389063126027388720993138888076224987049401589300747216129495474405849683000073826542431443938800303894537125703522688289520579924966774663510497396544024436702227562716463070104974236174101199064242800765132029035751252217444507688708613088531107943807428104103125669716780376854505198195827176605884222094095794741969300054622661581057219380971253261551673126057939476754099047897118432469773314925445041231854975676500719553735044930589853554041752442410180609803378273186465041946888024510432636631175130445456832883298330838102290025621137213612468269438803529523301162325761086850489173565517597606966952707104266844531844495035048017361867547298469356279545220642340253398682608016190820286943029165241979663470861299149411652812020155734831570129773760837450577952164307949362050627917405561146271235916748713687083516768849239602723505265589269734296529535805658716696497756717009925644061876813988013200451034885963910974280548883097705053257458663217799086830382866067043173201537788918805317565493981439694215884546623059902625959382269786622708291241971697582134319875190177238639316148018970343039483082765856802003580178596403537120569195861065789708735505510485844862002529712193534177933391403583711874877818681907382650243908442952719423898763593742327737610367899998230031753456018181905045360934015850630319620601937182525771431253808983135162273562897456428729594868793757177842140544019751342770746217714757903359104927863867970630115174481795044802329602461433401493027597687779941931366207751417334922550701990000918239414322641639202664499076479991761982328774586557830525879127288150022712494969810466830652495823819090884889399082591229267965188848628729880430722067955826923059895775659078001043871808432282329630402966209804869222083470643328861638986642309379264372901518334717281012121751728274333833634941128889220485184267815735370218363052862213179995516193869441990397970842095734413871489257470856475590630794488059935111171318033666838710806935780471367920657971743087689184593210947675738233988016184629102898000480442295535105898541698382097457113517303555461098288056316276244403420061348391002130330915965315225300558486760618904897375128231751963787143121751182615055553781012737508722373299495319084984954266591419449531012292200627680332899589895636249389644161352999661965614326831132658162992893243456161979222269105522781479009193042631756703694860551004447177415211677428905652371832188721667021715377802502044564514484281253571132099950166368944701221904348374531350641155933104339645810079293332091918633856874413707282626197092919891551192988857224009546823384680766661666173937628992564465469591941155466810240317529348453234896654227739691439386698172908826893050944937855939005293418853082920075630607181484477714052417650148379395697632084871041912948153907907081523130016380775682868091701009930938567260487681388044805110006025892220585235983112318871050029371311889589025888512918037701813118916317022968740467634283934588091670170396234878182296457640721810715854427983405407096079273484260610100535450416073210768533964015242077309667665839919469833855194556364322496070306779541680715981430862368505800886521804030087097290628897428902376607170056405788081166297635476676267728030876061514218998075535443044753947357085749438671542184822864072809326715857407535467929135596539135894689944753233994133632305851396124532298882138991590273417952506853159620857539852678349262285025480971845424617844449700729670494894025350626894021230365186222478247627812001496193415684271134618868395213878451000468385883492440069874684021599091258502545540983247473949192096348622171275066276990092502243539906687685206363247844574720287812689797791210641408716299099117065970459282789577493555167477350004093944296332930441533870209399300437046399695543270739258278120240519060766384619532317927341651289997839142119255810864026750533647267815558829214244783900144214354319933826247321349619979397917212650940122530498144177318913881352903184232559649670034221260499967033741398206794385139334377721141837916442083990981151913994397241638407017400631322063523379738617836283973215760841252270431321700700204508554614453885598589858969289787913785990944163356423710451760405929836493039116349712523373687212361764113359752403405665770660404111801129410896292955902527395149560728577790368551330573203656920931510005259919979301688903042388392748086925115512905032659249263922478775327202805504864371742990191715577522414305538909462486947422229721222431404364175752719725841215226125414941938483039396800734873272051671350298219086584122854069124862591203167998142819840123266435874091759124414089675847038383354022974509463006471880032215274133230737723218489063820371745805904683561681184521209686394870521893034661487578950894379292009251198617040929707081753288002318874922185018263652546232666711701401505388171020618470832334280788728578912873997992187187984677612216867287879102061640612726905954788371118146025280278038447892276972034092312627022798714851333304891449621012078153804024698143116837339527775299595792290441436690071034333041400161719897288045559642412318472367476869902139459553358594464337146153236804495689213172653239517321565640928931957176254091927893275362375055956709000051696069131020095792050707913382027824527557585664498989116820054351760891185644858680413632925448223783597870414169075869635245115285689038367936215970181793296691690574863970693313042367375199317024464938232289724971690914739039057703312150906728434972734252916716259440107389308758989178275077708917169567500614991285957978056443113899494964721496623404951176850616056380582307768222677804783663403315703976020286593025679862831830335680031914130862398786161974979046297774561394018308013704549600867742034897860354572092724755777009107839354336960992384517571325675590234711778504032505528602947029471541368612461333950497408800925770210703511958200952936689472052939809233762640674970344770637958193549187734388851040281320375587855650941074130044950319181535488340515098045483139437365656176002937782226443947264978664395246845749265593313054727801688357082733919302502019174202953790278089402723658002440431327593663306847992562688700969356382958098107468586615208585774487886071152851033273359620525218981714989394857928736695262245338021776396777193739435197604785060452760072188072836714775312343371019824720289351814837273370156211027793570854341726793955877939963919403803169796907659800876679221425522640769769236274892678825053015956102241841796769782975939684716742985653450448284350272417973552921298007921614043885917606029076468822865170141070818429265528112992284256796334311556777812486756006279923121523677937955975156921252172515443073018072349867559507312893493918763742467821569393377178197768759170421983703094653570847718189569910320100805375676188931984274599074128177486663776785541139059546060056173211485029138056737186849982351517822585666536892740317766297789012209651356552911875588215110001835458561967072228004555450648244771260343425461889886936842318578550634313027499405759818745684121029001586381967875109501004946873784981379477587618929585978171159876832273466105207678805718644931942525013116899253216349989281332619986267096559138765950444265118769231058805775833714466924704088829556781949246477629898000802754026996828358389010127813731602640166659480088159945933071815839184820305512270009366020361483852946991356367562129170214887705699431793948184624049672675417155998002807808913116498872808416392173887232075052460754719025255724616743383915067777919634170805170421313089808541041523185778936190571742336261007440544988121019044109302081396443378004435681515963651120650754537860999056504477280598712136593986595008948701801737589356671759396017759561881549485894329865846118394154972622992374605671601326547744376341435044075704494551620814337578728720507089865221536848327240167480137434487280707696347818207155187927158910417321623618447594634348884516224437719181538479408373160773922607140788312366130204458398839878505795041813131939412918969922853572061959327164283127152626863957508690140388247513659373647532244591993685573148223383519151154283558932563419444579325376465000160327969507821765596418559408218717532462623102288856157477890791018520778165822973994225484124185476503183670035585339851748317071019322492854290281765439572878174915528779098856541813825357157073459823783289025785492155233347205581913182422019569105726135220689670712690115930003457249481049486858881581582338940650168443559588014648388938120473351302502017992120889297325535078222392540270826945170321194590627710031029854565012528536329900627054216127753829042069706772918667229392458849345735848294537771674149901328117624683371630630444173176923139366124464324987759331808464719771802852659574710390209474036294809852608587028142657743645315244336308671279324418242334542702070765157132950336607118149777985975879080396837385281098208829377203127238747767732722572116959345679373251986848979209307635420161852188638564179669958073800657260295916728159017939446332568671501600584810442547011973814179631639837377667363772889419535800631867177155834277286186215883635345548061739272047725666868986601132561891036330822982307081346375025499505039024686600528040059866996524160776233979197977162607341524353159377944195820989923776079032509260143553174357562564881609299583578575659506650825906157561267530455815402250708067770665650056163983590941702175550439936143055843214842316711595046408061245936188964665018048777613156270844045976594442222061060972208537640770741270786402182466572218581323250493552545616247867731058394309551109329027682347505716481780696703651324569117114019516734259520716461232060736339968635263945111102236787763662493199814339122290262670670295798370783409338215600958594349278804070777665760255717603367219469182027795793715043869117186671465930801378101695276432134806237756745223515749880672057819803023121694079881133224080238935772622613543155132026051993993771249186558347546490311235680611509475005878625907696790279995124553504441188709963208824389505073762918231193900449907676474608667047680319717849075352445131146375162762175392664442937952584652189904656818088089535799839042989834962045985870317632923481943604005517584340275538923897340757363317707566827217339770460153580420885938920819645695477720562541299735066867944592460314931999254748805650456117673534623937528675492901103194604148875365249512344526993877357343016234240729666567809268387206267511688750972297307441214927446936453675917194589776462695756250371764371241174973758669833991477633473632414137893877792973152770901303128254657758218037531398637132955533902863686157638055567503952021922721975552894921750055463369046538773379569575569822927295010081955888807666237377867311040002368949380484143189188440848985653986698542050612058324076505925977700695656108031302957513371913149688234236545095006689483812345998598102827403926103844027412289277511911309956276583544678916662409892575388148128530294915222642639824537976297043881788475790667976926962243835594895366726434486257311496649886412896665760146825456968283034191007046342865878564525261570901889014958414659592932969923122877010028584808936959695888526175233171617632449295025629817424880094129489730322136481874661800856768716035401356255918932800839955512902108286747060311441614330666727265274129177725180963815460917793767224664442798993681891455086671307668086976754569839554777216305202662310060572384869695646089326062099338112374147635031623737392497396468074711944385555456845745655685345823503795421052562446968356523873381631108143909569167069070582242232725641709725843226063927489178608461883498346948014955558144356665914681339834258548139725050087449215346454789586294544481342329333576607852159780946049403779690457579237278531730418899146856938157242711595413210146720236999616899297273515401982472761946700421095542924583515301855950946523411671574849850816542331913465720649851130400448423187509598875896109257552304354061851142508448808944536228322861112599089874658462109108060596143968641874785564647246573649942832046402253532098673929029177536734514424102066267879306716849694364812762667276144222131778876968443362291539503454827330942147500713578489004362047888115583018148158078227810912801446056075104936621920889850133644459191785326015558135356929707399085429592460299730914468954756762876593713256914581519240640051645174604360481800951316155558224533208938146282600973712166642001440861043943273918896517215778853876807348909416946654831499598026913495141287701821535673752027714830631890873639853772583296686110016451391245299542314772302878795423723857954915143844282130126797321911733014276269880381814123970988715465701208846311264186718184652120979576959165291364204434485102489534537239232122414512155787158924441561534073630046485866403746087964645425923891362947079748053092331525183727252104855649260599381267680744995600030146474453281134944473548072804830778859170796796539258442782517781956168761156795237293155504972902489286632439235678411665272883237885588693061939419265579950089434976143687067672462334237008818757968599742326248809811787081865520835171458331362476536254219793632483426343286615592020685971499294757415463391989960996625441469429281144154432447783289473266778622737506699096461883669095012253994937852958038034691295517677302465871952763362299641864891745653010748389101874312707792827530131240889498940660960076715100194427016723120457194767476284300232355540049785931984965335424257972729869598721699930454358565233608354739704469770890187779088504599175241452861425928271439060169620773396132632532020087525918414367821633221238816992956984256284429992457008768270310593328266679163944079143927015828661166766235156757253419863005319238267453400870736895376275665201386540770068854853201044996743623396644088363906810492796193492288676145738224146062566102928697222127329790284533647952309022375355297997819067486028315524784618908993638525536892023791132305481400827892152260667476321382048556774193658997812842792231178852077095136415703425333678742529487118388198439722021159092999620354409446129989827003138962806406384930514969774166913499883660958888324881377240603774715416600507225056092302665257160238919423646261673928065187511767652545346072618941787152397159004490042067586504248670927333253713515876822989443316975148559836966694039022641890712580737101131880439716282894728896555875642770778211970615267035481591751809673014089700301808516210589788003513390775610742230185553238041322894971500270017998699483356942861199219932548948501358081742828727097314845766052333000517062248107716202090922010893025047707852687359822675426530552330178974484270097053438314379315008217642825119588937824226641167379967632334514817863349780684386425034475189082679990904811840205626608282025897984266827409433391102726024616280513387987256788552686684799262562181669912035398817286520814661454990813727984480635586009296198956851529468695817678420456850143054101265395138889781963672300735552955783100753846480469378939780399311030828114176071101006581169486401116915544591995085208307157084385815263124439728331824130949730241606630613724839653074834198886323573934735160828323087671232708719684986658187734473398474632153568508229581930577378589795032091348774891467971028803597170472020985435920941806000528194730119528400785352068719016677730173957688836675526431283530370069288580708655022069305550068413043124770797316481485577014958127492529028509559512239829810548674553261132936774477920018582739894958644657010243964269831312715450713289407030539948879410561176227448634950390449104881909297462237789591825678457210594445267569697767837221462666740706951644313566377415572639988512723835622322180112044008880005074046660685491341618844730702531486477909790632518573051705075826793917663261316683281186049685317434446231155679158419028109425951974783939292643270826636585089957022735401984435093561396527188885125194146026175740715574539217586064427999709338156698252744331041814761550253752131593056329610732109894655997365282603612011101369773151588077137410457190375800666223884349616657516803082479162885166185608217499768957713719945927423058538473751368692600385891016130115676773409501768028344945251154260153205457414981038730912159037396950809767578309265313988820605726152345975268486433664904489148855172335129249593042928166884456778147301937633298321677730104924381662098456583216207294705741686274976913723672075717231858452819502816752263393620055013067380846529174704000154828552637383348041479135358347966820037871303233581477725801713819164030730986460632441352805812358001546369589940933004405343391764855212134092392962325842920277652803752720744160090197887305401654840907492525644477584484821585774822800541295261083805153190800275589086012506996728443403146417129677911142865263810878371644092788154713385124994534247224069163666359557923928502158388272195966776080020347911036904674393344511306427506700904665664562361628516817647062207051142493001998190789460915633742513685174055246272896867733318508586143783051303418390494241771808462159446559030731281291950882903795932695164461524035758436404146076967261412350500549838342728801614835461423630759315131744706142082773518634215542100172369090855068206015831792221885346723091317564655502858082829012880969629329540725793658194288124401450182394156299561467656388011804669142421361465554078099987972156085760949855852690898000768922824217195827846102440137602074801156854345237577128898731195828472046870577220099198871450003123513007657599593049786998891264509460130425822745206357185782771971496010073088206926389526181377283195352394894874854652996316525691752711169765833815125795528255722785083695426756988681292028355215909261771569213538391963317079187370186751899492201590158537517580973633100706833396092570295202215190428764893180180557896996978181971349853231653098368691169633634988541683234329240586432423825121289954410766116815877079207880519684079632021070910241143944560489804806763079458297562998597552445768143460188015424429616576654336003157721906175695282121557832113539841456527480902464868816874847069098911727902230278555580356322489232870996554682205494893340574207062121045310426977333018781915340782704366794100964661174016673204850932537442532794895267122491238856849638216362214695579180384369671831738515374405242304925426648609393381350082663683935227822184074566102971299435611305028183792375060051404614596435414344538543226595819605736467739845602161631611303228497896813327596810770241386413839718243464854828855702557621310880802719975028465147029794824725790621631085097189602029425685318537305135735589446386593173301669199813951217169857094056847528577587335381947975016137204103910661278615357891661097189351738220617624617932953356877262875452394668824177044659854583819622887796945650138488992151083507077121968221198593041048815562888521252678813514846537475530212972729137979577141483730985319005257893013992541711204563309580331045167745499368656733745436622052311280130511932177831636011745026817554394772980361619688138729531706211882961486321335785908796544359242965123465577893768880836464882163586905576718397942326571002337863481559682340999734655135622966867994995982651987901524535994013207313626850877499430200397898155709199315944106960379650612787465726846334629811401950063234418882925214152690638491676578730442528484693059232524967930945075781978809715082182637754797770102293796139448937614787554324797939394703424553590605391550799603843386422652971929780786740529764226871551808106258191550598048096061928969670270371209645564288203761926763382798196807369914031940476992491956696867509475437050848279880855280408595124094192794009713052980886133904344257201134506893564820300659425905581497330057129363238518013164565930795335133144072549845574571023226846526720709486166471704040779427650075047537667674192218994488083607906764120235689397005907510931311185510415801077230179288118836245732053652998854167105184018272273343144126806206917553870530290051463831057906897245965391655913808044879025256610166965806157721480753220179634532287468591528468776534570147546040531113418560378595268282896600558213687582311270383124308831699657582506265881349266251018260526212255938836257294439907820942098817307590714654899092659222667884671668097271483494724584380016008113218581463534011826427795420111761795997014397260856228178186052792348682540658423194954183095173897921190143814091249572644169777119344491259816099982600008381457166666128872926459902886716824654518103404504664006161639814193243490051700201929026671493497035390731633270079948169658593399413266714835525601910561169712437148529450776334127237508290982672252055956156742489143275735428076873051896484700431351569483839556180927935610331053041346717271713187480276879042954330858614789950649698840441839126999626332524811235367987414461057428001542799432072392144279731114381416280590050049074888744172362781270176708096261646496840094791532412822616735780728740640804166458854076745715394100399633572358743410057987998637740715837380028583222242271078779302929802216732299802534882675526922384107907770111091171891200925653053828596300738007789502104497426687320717530516340996572227000381779266296837026939138857543273822457547946625435560420063906977914646890463168093923958520118233206216547372785926717828660295520279368116645611551931147598984897513588841952169879467257290091545572471931836722736669006934980593744915576873085901154974321127014836424489527268186827167328791909164510539221562106867086324761460371863082073097897263821959999023501376882707574646331808542547772628578746140878936932386532401166398829755101714394631926538434109654009341049602580612190971262711656588133983625912894810240289292132053572894913634275939857372837699781921872525626122732306086684793646308996593035120836660224412447611531034925609134705716288171602208841139416944661066977704712279366302437680282305524073068876040016434690645751518276546588503385961451144773739118308662892368876763612528203420364314344179447764954872235083490422739720424824949888021170375134167440677920141639537145615728471022773857076121764659425129723628583079415770497968911729874594985792574113360551122518954925467424924711873094169382458879539813957305176034485719839375206669777386377655650773040448675604222769045518356117661078086833392473311645889890580768267199964134185727264962643915107206280192016655371908802544317712750985566135655757484600106972136351071459042817897786442287929801090572374234454852824621506651402110172693130354025146266223390190182952745903023404940858161014206157494642326936577950346805718991352930328922232166427795611397616009507560374707218449584646543421532514114041292803541791025495015018188424624497535094349471457711596970664461635469094715709104291229150270010149604645513877655592577246486247470030038962140849188623057885901043781021869659320975386211614880513128725361209037999942766579823373918722756374239563579987526671062219212404896250974691670555898719195881030417412247964570652742972778351956017434411497522543061848885552125364918239308577041489279889706522499389325053993142717108645515959864574920722500694212279996248013185989428768916829284587685539421177474786498600081034553152747750377240238241373003843213721514592728459935021349320294679024857468196747270045104650841580598946646834439641955148575203780699450809548231319723258046890084969615102477794595790876400016906406184888670464460543515232540743006964281351261476261047095530151590702642955746415652722624794649038477812367727321051995943699642699226407114957190394105321081651003889179002002020610871647816560933104138292611863344595092076702074812913715206429621934249782100207289391963047202588201215875720138029362262047266647820855945044077632347236786453106509929800950165995416799382678771647684277938692827140176970444477552019372994295090614976272240758356303974630672776974640124664845355828044570569806138960856319129595854522680457359922643038372615474695917407110477723056430554050409941111566633093732667345015446510169772864710769958307639958487928276571620321642686156925683038190739847191242307183224615690715119408998407554411757159691411048835928756898956288413507688505300325201209504714005487881661604811154645523227457422137912368832023379445250268777835606010180922853306669957450324671212145969718149254898000212451361839931982519107912654822112219444855030578253839756887417053525837176382008279071571049278145184320344058143654856340952391608344878191465007952954440628097197188215990420654360942170978452835910076761443098162713143197746064542216825074903957691200411016769792402238429620289929254390582104507418967326150415237468284594933700946188004694901466463296292514525102971133027591466153120553266484933369193236202485899867292003471531417873032360516652847435960557016435895134544299398015134024922213662384035459575678444623840383495245992810227226689538218779705724183014477267624214978512268947426325960683444853068704185846460045600531933109231609369089518921521921950661150179040087608516717187257585102243509761730888956181823455463076788060270414789312395623002315262900278060692637633357242578492670028273320864536380580271753905110091657152367558366210622375868268899278127734131021046495609679887639953187187505532091607642236676556866206703126631905292701426848157701461096782351688934585964713050499627833010369220281363615092367848797557952005875125947855502741449962663156312608614602107755132860440749838564354258101714582491099265689232422592694650259354099435905993625190575220605895921966464378492656935035420158106977683471707941826313790813564593854364886367412777523679895834995082505908530333978101328987404504705909183720999290228250928230090426823079038100781170210344899357872223465709537165493694959827106074226221683653417715789194138430879201578624712561156436038178816391876832176928474593857358974346691721228743276997585286540110257442011351837783014150586476475619295332341174317278982402941014579926695636995300088113192777189416063989925385619316165720388425590211452544082472038343720438254217702222170003035450385602477141003862423147936009341587352094121679891203949836660109178356111033005210818954680323513717694451684144291227141393807815696714916335420315598816908709242993475595101523313138058203006162432704954598060294930592087076295872401011053904239382766603847121133002036127510575078330399604840474527253317186394018595471058739555104456913752833398159761288676330660448080583562903960307621344862434512727891722040995921975611185962390886660971424890623582063728343348225814985362200229857339140828018951561432216713495582102858915507783257595115858429334227223371362939650996897831401413326198209550730533962313835488425553718915831532502913522616334698506556931146262765088454829312216764449559231637038522574699541435881216896162276033239039689667730109278482354069862915787213603093969976619200421238526449206933238093764016134913082596206888337966366383255874499110975371560860035686945333466877495598902532318628941659274933055124960754496583351857382499671986403126494249949256471525910981368637393493726082268481032362157269287260003931552381639452977900545590812854827804781322577057408994068929452244447061409159949586963596014375074672860567039539017295901433444516098325251037310336355843115552811477854262272153619332852342102513452475927394162701004361793834074775988695669216267156605099715757995093027378830205333598197458501749971939113446558270300420819291498948577666795739781143737664040773328563873774022070716343685721137563628097407859238999877182221392538637785375969529042760931804529453167880988709851136673637011775336855354200423811441147587513812372788594267706197869123555486803538914276929465385536012270526394208807955294121522481786528303272988341823510177476440586227790783458511410189145684108753451656393169201638396392283718383077993959211442123025109892654129737723178539283475862979346014082752902058748323372406049282921186773087432767720497352350991199609131200209889095304389292954622677027316522663638023675972720104517562284223830410001226867667188682166006609989758519540255719055991465563558924156477294465947802839252742308952748457469977075565245277500867181058840322518022133264968799353510964314527823511367287500173035711545354667066960275866651759842837106671263388963165496589167937088588764885524242888397275487021910551772321766397443108541170316282745494556865654284497690986008374039856218106471844411990740521838121905082993002602892636538115570366304164254547973877048668713500379979115378540942566404592294275109950411935655572289608263714217944376055470597028491303649556069436518890462066815753748602541676910196091998770409920699819339593375987227478917185699768112426006465765755892628796801708522592373607512126428358143043368615348881139530473827041864544792719179511025814548644915169345673300424164957435355341435393085127945313084519353113574090776813082145917805159051469691604533359808809709156951511646125749002792669707106902683179828457217523876380731154975198865474119330861272115950853884852090606836531512516517994167584292507260835404743750252638465661293417858853733843236920250007573550465484817679478310991574525425581553265474990361886697538942141472887917394036586327593736161139076345968501074593747771632966821739942299653058414533185732540825340899027895203172394200582900359560298989820134778911573437738445238283177160822071293642966286857463669376987144700636855462679196626548369956529289166114966300497665665967508608474305653486797481706840387207021253294646229937953700444755407603310273199783141325625358764748438965431044084715817948549456315795259855671132270784361355592177006599268790083012853419670818880453709107381536771228639560083926582620621180522565600290385310519764732906227880409949974250362105828960146463273588387376247684534317053655643118625331062995222733335714082647152660239511422307629091661418059829647522610989723868532363852278399078128915277020678504398842521238831906864405128656993315143939490308443765090550914871187651247915908869948811565203773933579533564103887251467966040800229130541392226827584958617723562094107763185004897915778949908960817878538203145093128624854866832245907570214363536198187465964713322435110181007740284568161940059335004417039532531960191332475062951213748555090872771204036588246709021232755422293488307435573209750395067072779276409554865829409095728210169244163498888515372548069010145741114384069165150796688542775717936362554661721447053013091465303660211421226445294147524356323760861582727059269416149804568391228904963766844403147525758347471308919295992081651765960323916351092434895675022389405582071303335591341083462186694690290903520890231298404434021318468519454058009222799181354342748966715651096754843979753568231177887743098269748128349928820141658670974328884593457612289927132978915002056528864607840238350771787519080505416405318552286498180730229959468237246290491938647814085689325010372642612113208025160818233183921401649984084656851616686882424109444980243767385286185491409060590578797037055634967098764025190348584526096507823676206418316449059709188527024473209621480600314547381995629615460320604570024454224649423049567647460663555493544186078374878881477887330734585811326411944890459274844509255003411358844556155230414129686825941691036514997530174736908812680793846899696438473735997122995154033439255114931181977870811063777391528605281971374443615895976086226547417424361636227762771457520412946398712138049480232377894757941806319673109190480128004783123994642666396693065712901451131570481215587017086914676586311506952568787494142424556181527962891494430787599530722811831249049614968756397716306785101547155538596435609608381483549241989609713454741617521105837722978805823183996368736858244779280650246274368526196808246658393432472491015119048554086022466864089253565584474703281577193723252096162320277738823164465644903133884448500885376485904188644673874146864456503498529019235071429821335361520356785633243796202546725476012133787977201320509195204509395480746725909507146042546872591122791376878899040880851173369635623811177708223862055918133956773886597076937269183214717529659849140721962772183129688909002350847892449306813500686901153130636430566411813720185337734563981299457377685622335773164899173172042863480062509846903782182716804196819112466590117794921926363513102267992670710923772555358145999634158243013516286726614382110815970819454869520001630832402435486979111335954598784374242054112863856382265756498510369031211109978126392815441874362288502718860422507722552890606111113808207943891166055563646724583531759519617124028347204664166513792794186168690858040557959671293445727039786137560450455780984151103225138926980835016622635336081978794043710468758332006833397517993762400555422029569747899809583996208949250895446659001451765576485908111616294765811325760865098171461721074074776718573215831973935639793848376887228876471534961496307455051135194845653595420639291339793308527504106261294491110347094355655365985586549058775358640545815801873695784973684140508605912339000432030187799439654270027809235974213917224632013469055918751214384584928415957106824568739663595327388378520482540489695301772461751358548336148415146739334710192265883106790294069449428497218227758491064550575437434075523241359679125442955331235667729103662804313282371521793042947288893094421503592813361890032003863161569316283864385349788783676822507004619729205163343676008878311108938875638163816235299901347013716649589494114578627050630781874587489757187430838764303434274260596266435312209613275858079550606594418670523683892681634628032167279985671562548206535901841900499317130053694830262565437646887522178374778675414062612625003980778226412799156069330810224589858288985503376490402539595276143022945745416663424956157676446795120693692841599982922362209793866247181953453823956711370511581011360500498591798087659172360215702523376953497768301583415783266702504631566255829575495108199366173687718878997874803508334531887614137085204969385089039979064255520729992140858946345887082779734988396422661296289093996233650842507545155267794265598334595953223515474781583933957624476026553229184064010797632406498339239792867816716459566402841409273335464440559788944940577147803991297075117391993454273828785219195295577449195457735766631714742318282208842942646266881343177010055425852096428655839670448472024791281739238530622974723078980309651568168053331860772089836621441657522267985393905585879484533434365319912382396857673025168723598970123509379934623090863663339315144148580774896296585240128835357904107866447707051770545558736987384387471014047871235098718064993701105152768900794184334973927636056474593561344670910754354113551945393243228495458720975877063028162546409037299545477444892179724539955463976876904628095709696590834440384447428290557828650240117031017047282150090653759046143707774675310959926086494190949426673012980303627391009407899872596995741070557195311548437596795397778934402746784705151657525909154007415580380010328249495029798261844319464288139246856937464899505420268385568652630208160117747500979725350948541007273459218326140546145809841166064735114217624537322061007328191871463137278852069936284098700604790263973016113931839336961856143128240638695201433152001558184906154806261486051875968104034740546913975223238110658697660260039532450656149394618507729629410270065989689076346842651298604114815068453039208952030221145224568627441096321728410567181283446836429506425399341189043976451116341281637162300072947430981113380654685656071160899604918711835776546239030787420945937236743977573726177834191080530277689756338500797282111678516571536288787796721794171337567047920730656297732079279659775625527003173775362868484323239768444975935977893136128342320425450422928069891540872991457213353517261856008735418912192542768836710813262611046082387716828024659720934132760487671506660616156526374926223933901524937102351987621689991295519354383329276685770319707583633904053852545328382099335835142228023242572336434008687580768354716314026834389653029738617412937548886218168466494123710865296237750543540974635567447588302368246815134218191727620442111221160885992815762890785359758332139356594784990280599307590672418747126146019190426881565029700164356758591788515134180833462273700688778446370631194873105955211321376384891045482565592430977015435936389808019895974066355604226859169965608042799943944475566214175087313850586370574911189680217799220575089502053274953664914020763403061178537923691341202331276423850813608579475810122851805573017296945065241476118160167211798134570267987474907137595698940539399993131820381442552651486858116322398554212220393245678920435682841275683240702997591206089065886114407941866597385466864801531069720369596050367530364690507783342890594152531282063699820482460911732044469659382104352804973358538238914032829442954273898759970951573331116763846430843269671585553351217768538290345550438181409351570138487849560721262921579161212341880242725247393967140998032696380309096712770884888047125209637754199112784137700976216470328676273017121171466914181907374730880671897593458533079494319620447688305058501886970150837627310936140951840069981845415229924306629132405386871954362110430375894324919003801588383945093630436665273582993734244112586301924831504070169157145751290486522485901854041010651207750416500911135425419775591930649119884660818120904687013873837416246803885616694022886233916653848302909973695697129284954232587683089012041088928798757786886579907795080323779582770928383895176532063705566103652556240548313607057707535924779791437397717429600190250672323794369596791687055117557946501400391296529824030697861156014585647639623521091778901845885806606908351447173865761921757507394257135716475037890415839053448049115616590648013464634409593699530180622387626451688859681976816387412344903783443552558732128649978081366149742489913779887926928782850022158388982835842028508854729420223680208205667071367810136170023132755766880359096386798200007821482027037297030018128183879238710307353145785863066333276456441542144117504691741703792558289784305479923020080257411743451780607127331167557887698906418591287762913330557731026184384243847044635746418284184348295429235643772748366658486740187800937903717671453009495785147579881449183743299998960880301004969101160968764783691850744074387044623576564529568929110804847315240482743077882554500614192191476949564861899730579742067998029046792369952671292209435379172658900022778616566989720856882072027701501186828642268153998375414770565592865663131602836842741797376470675377218786263754011867860296680372349840423414708039570872465603028107657918966377459282097649883357379861562865457741679318588188867425743896859648693175037911138234590626908251530172680751563889689528674014043507834325450979181931993299552130441818949252817929304096413557146286368322240375341549914506842014252307408230748117044509602408923128247774907601633791978418550077081574737927324240291329535584963682748431933430710936349293189370522548907442819591690461335818165610393509581248701297803545362772456832048559511650841374756705909807389067037502063977790393851918229915651023726304717359683812554296953509703881071484981498247765261423404032977631082033053523856123671083990218204200506015228116878996658393941873912114020924163178049769052400543314167210132722019256485003387394266113042918191909081394903972000652274847840743772531925056943114291939697789924172917615445767062269603925659492099975699185394410261040649685624524064914009209409026170237976763930500842621387051302581070066610155067029181429123946804901050277412051442241919742181540484353781421165331714558466446275021996063575606007750157418597371094350391399848285225956735807960939637694950532656319358342862055236305766683347378666621642302539624895887501311048982576692639886331499911786570447130149523129197674427014924393512051400611890732574131692473535507769864975006226188844851117304277030424189961686881150561352533256441432932159971380081975987262486330841792218194046733998252500654490893742590242144556728026584577113328663018488053922265478982760512267794284044222366158675323415581799084223221668408625345268824031902458210584411818239584972146291103369249443999272168617262699364502483448378244642752211520340967571708306896723898263079349092537867985702209839420223151327927092264752946112652226400352642137726931349925287168293888354251892848582733652985593787944775544317613063494785553894478184904298640286567488037580824021386853952445377161461146099537417279373955094686781006435737058714305120602854109482965579202834454397138635055388599057378827746968569107188405076110411516899886569835201994644925443876366351401513267548870691809129118469965927814241784256873143737461169688798318443072575993400961663948350921402295613505153304671687532908954666742145824509330267691812725967422069951513933762091424525968382690158545752187287849402454472153943768121992722845959855585621339647706238068839299095265281868026526538471261936457219518140499719990648009436862290846729457239251987747010879303678143842285314636185978685553179224932510115856782659967479180946420047717401654765673732351644774853386454475047900769338648341772197933087972859293287388609046575408764287562582295865647183858864032956351127454125397572600867897855580504744995670885440216803136111446070683489480095538936560841541299541756521841225233983742145527020997764777436730911791549693319220731133366798110703213703489254308615568555900449384333885597218525341315135782205790255321716005523918971208779247657931993069033320335786469099230052684109055946175072374796606418120789200569040656078742256000220203428765652340406786512580965881752932017352164337702467777811158987042049097766542434859043284147842224391212995201855554527693681426506948003402976314838575845504688324473733422087115308034085897548402196002150201605696475531466825345503130942852638075851388484092392173652975875010786826512884317785596935990583289095208840811699642396771318449366112390701411859268767507114189756851037462799770379738357902751996996651835812217969247960686829502340814698928917082591731270604061404807621389628312750242471382854723875790576784501014205686561370465298468339426739611087861258108907130895763098454825906221367940815425541066426837933560430475497033290778453894824427837208210263016492750452617888653138688214872824533483569914474590032571382628735460157314975822639066691031771574808618513366683314290482910129817403350770728618415013360649192783795401997449719638258550801882402569905046579914636563535412133440934732029256447034087402269927069503487033296989311406468621405956737017166772478902995630316898033762331689737657628638855087759234027123373594913820704640004735484057913233022348992545584682477026130999511140865805153068320088937171268492436829351139155979177463343399219545271147776128007181456909540960955141682644124419164846013566147814208758870253299126977072545720663357798012198895099236590259583534114362138187736086559599648989818818233200022397132371741553327307965636782352471378392439551529625882947827535748016019539976376375393495849577469777178564735430747750594323475600349931824988811955748670501730095403357639775708416432740568440312846249620673714954858921399136864709544182650236712139514947267522682207733512617457824736711934215257537486205745474574116804120153293393064840639835649755623997822303606180962312310534248480053444663233654391805931153436739563802669155665950346601102951139508187212658185931995668234536305943206643518130935935187001474094962349180776856178571736645599671278582158304937419919517828839771061008706085829691098358712662183234609927347286478738212222260551178381263124661466559090059617138678559236894136352110580771362194340968856660496451618273553004893506759490011073887401681434045831370221012575174108263055159614968144192219796921792607596124668746637552314205031833554147915776463219386922182095739544855662316536405936816049883762235626997301984086280711479650506492544703239955987012033370203837670713694129726319572885006849777493728079311213702094005888803056392476684357228195266948906498955625224543239768541125478685623323551871530965396939786105785363267233419629893442829317489451047973563918292656801575638659576087955282516188330320100447048766939546898609932336719958813309920131251062150633399648216858535743605794883456558981371015902725775342878831340657475742443225064101977371557450840016574843785917404730200458501137368874399963911864251783690399733054253817697089507987136971082295797315458230248178082233336883002615707308276117840170010871145926987647536280511261405144096938241217836670334839326537504051624860141272507403070012023659434342824145543679951025533804762460983636122736513771402622271693130849414782931140784996465521372672289270063978285899915208514378944813556788353391217018991174854884808028140002882905415071429264180346635276601595933897315391046943136976046407833972591071068724542969286530902120820747908105724061513745511297983741801223335112031119917837838248445512382753435956714856155282246800463322304212405530912586475821272765384297881799192990392141864010921745183027710503782329318190680827213955744175709871965628464527896790821092020643094643949155961300172540357598496518307714462669594670725879972778763834790318198215762144918442211885188502551104406494684781401900759409584544448935622495041314151902578926342376688331502554848512395913097881728693309683640177039117352114464579709501593069399125353579472582639223465780866015606132068700454888599483267947166072404850236472634121441103063019893425275593204950279629067223264302436952368602356394023139262467860348437265731683339547416545489312688572069245657174238028031317007546068238018837123184836839968507292746888815652795820960006397669596408222534058963795982630307272824988116760376901490573264155817226870832561721233832800622979830098697874798579361716834589011711817463291283126550912159362161447646969233471613243983580829564592630898459788729186023203894752823170039111198009790792733967026070351988778291708878004966414255781177233365065153456669122254410573958147986284609162352247779321876919210010576674493225763611679856755897403823725784354604296884492012944459003074150090063274416976104336542902014261149979230053749197743298816962253803068800490770686358697629647596247418196734851795614789229419771473223170889087444579874167227304532877729914490530722963346630888902973209259069118587035262814416405718034369172540092534132645309094506304495819685590879240134544777915876790982322239243897408809876772201492161031157582332891021974257870356064559368876190250399944460342480370815317027633977486531082558015748726475065961900992354254011799589848621173481212434938937376374802746374749859744150827851786108860469821020043450065286606384147902663515161009870693325287996610363767265832632071773227097006612097499563537611941241514267676143637245698003189748994610402505932857354290424120148925890474845993418668337695766492306497818784009530975610147863321291788251810843542577179192819182014379943771944384609750783871221348356915784331305981763382445631965426557196267179792601049326503702706517612931415898238182894346378171674880466472784655850771193108653300670615805208959390286053591523902796824573302318947690712643480265853078249757977308859725421144461237530270816781073689692383463898312412808549262129817062030731688037465884581391441322138369209608453599538352761138113535729091581486183590189076555306503730892453113498797962203258644223047008500678166721181599402374598469852842852532291276947030680492866032746457550411090255064089855517366835518764361736146852623476980695267325576085885462755966291908199956605714968217083354589773388596199236315270181578201727739722554082003283911050142998897594490336043142560334583477393677033611433841608424257968684543040732250627944693985745474836458851764260167315093647255141987433377204589824297341426698951117463667136390597009123301920166492953207225176359053293826712028501083291709618495457451559984316255312007015936785014804126372050123100609922763253870104610755164843692391841146604332167493492752518425881813351351986590218710671673279712775249857878258462523470720005407878972142768200292742603023795077364319509109774395912626948792648535417295550156916157816430998003547642766637767445124768006232204931531144366194764898401949046011679187537204090673695219095693970849229463493083286288807712437950645367302654824140533336477137146770750599297408441376596738803310921276455863585243636351156788242859827069007549769784797655883595256501760166748746944280345708676563734198873255284044804505900741257243661828257004373667351354368243873368037486474215442518910005963462019447400948527386286421674249597160574928739962245728543925739887565864379005044806026966583246159253417761789050211881117228229870979526198487709083721684544971909412601155305437378772622266123749084559908213322756474664604067985752840808932364513096006618957164311349439996709153116633093668180580669567033313974659095227001915697914580420366416707866340133164778639881877112195709813971259675037992747932543186620893378510876152752456341879129220700385121967966134673321039418977634918587628981356209009752718585868774400616313902910521605040840888470349692921112599403365923829441824042590468370751117113583884851232043615542313835082852402710238246158923584484950611319410903319957161718953514596942466794171106828644429105011983275710132979422580381932851996481045230728941398134208337136489553912241750634802884841668415559776402779652110307662868158398454459559352883120131178832668720060003779454343378476820121650122576545983880557215570830606257944657253799690787337787444288774714260379314475960804934322135693984814623247096912905196838500741777675697508667078921714225739669608881505957666557414998412125368034108813100491442513600849969455915762756572202582448584292815590053724494670175766550661578013086857286536446738383142641465550561421055040783588024760681084373977141881039492800118997509391498234350306325420283207571536950946552488230837537276392163851540102815326612171813409492240229719349535010952315580786600749528844396288591290373472986446312627750527852480380559464099173470165619727480238830873397677985558068088565770048374354082637804222653105836371709880111900474576680783642507872906004714609203754270645361361915102802174842292999467929866348890510020865136236109533303823851368881918451013659543037885048851110164704978686561061189442161931125993493780260056588631732183540192343700915112475972751630633873869280728767858022085120876508034024831763713086669525829561992208670615353135388772543889023890094900871141750611185420679607810103264523406141147067798685506499899444066159478353319734230794258552319386268553775372168794606905354316203820487369049128193449330426900956116458568562080913655896501055998741277608097079828293227257393042002711367626134088478780568301292202795578378905336457658458194650349867740203864224880515435595621294512836120750980503597665989821285032324766302956396666152447586770651089283509857684404919714479630395451690503798229568056127072209271164188803243085104690421938587797288972441064121739735720462851180297594983421341377371789291724998188393796813136351856876625311940909377789105992613077720480560224581544140733257015035758598081554582362742120165266591352192126850087173769685379752794173829813840928538612492272380653148182271044164064121795697034513862483777364712052725768055787186405518109545934856649967397505919802516138262021482421665978073798000020440799438634115251242878908612030504154814879154505226357458612458154570369805246381954931575697927473624453926531558786735340696393485076052084827008549388840312807122643302796908491875081298887150358948714604802617734613768817384745210616442376122163537283823831012675531876800187255069157150274881282145508873386899076460959325934812048523102012043143044798515313451758668298570328754874672089961225801237822162615868050446573341092094207789074345651000736439383979602693588061822882353046386986910911828776761228597445013092303276935855019965293641366126103774345878151036374689155624534963095277538360231485073474471726499213251579715367384904792155266940030351776316059225092123516147489407112038135108165271511738411090674042613455129463121817751228347880621790684078157365233928518600244812693434053299546711711826969868369315942557212289645000854459839760807880180695864507126834649895354684196064437786957657422397261641596159083817759190989372135406493776972325470919229803196508789525993717777144806255413742634493080975770472448228052836248898155300935550373366130668149110788798064144166733719866040989220714530325450855444799434173475256459103271410760873906411992474525653235117722288009705349536825368461862591400141542793068639066994587497125633275199658240442753920316218836884539955684253849934735427460699367869170092659116459623846550907682645662533354843601833615850314409616988471065959395048620211013256966401762918654691249201929106741134000416329070351896930447480879354730866284996522948171424201127517041068856605294782929326268986976038304910938820004112318004383906938985939629468581413984268822000910216664039332383479206573632046510743130809806746545464536209072089587484949597649814810987675756693282625901481737433133959960947555016036915281000547599811735937844496531249050524987489053335062690294799992957977285939963259757284879913897243209991416905873647966397955895783147045485358617236510714585183711022675558277779561299229712097437325249902069616998059091105615152316380730342094343223176968891700463136918006138943479421659767991726951918970887897118708453073424025870271042020366096518470922243163658484228993404755788115027864832071077944476686457501998735352605604839142812595298224693424798147514540215082213577192597440481236555721208852526401874602222893717508486308395872309654129881555320876115714907957373771117715529911543750212078139720552402726604397073500686684621661384594501879452680061235740183947906088339876016579959993103384738620325532181073982927542720049208215191463302154528488180320642573151814085944010553208312425956868748619482863720563907008416989631715997710698925586232096810224691918822466350531773854568638503226756552639506095409015590678040007659117726680201679992763288671198872902082087192695782999711038470133954285451504003474554420989646299999580114045657941369065716641132400883530089940921343825680287250898075675932732656552867589571495114904644036153283928402479442451929070305304539543457821808992854507754967287266298005514204668361304863336423264384955751789895235746845204469669749077790829640177248700828528968399501540822692325848923346638295456792784528051956572403915729716197169077996970292530062803317796659769628826254305622349279431839763933115321634223569298901491622304122447098270716463104725031721732894714902504195805018103791487296079376423087487932124178980849675109578442842472710355392078405709828579459833615815893249807168404444257253508914460620063253944427972129581567465183210053937155118694481036247595184181185869575295543898935396233033512719676753881010304932894687143016157149838815284317457763870646905174424387456288222424452788148662001763882440500946560006750081292349136373599355799114491914232486360604526895794358739966883772805557201855414488900283073182599705236563906126325943740829275057700013303043157009795182374120212471396961642932710952430076231229854676043305507784679797688909791047751457078031734647500594962331860584837721138999952866346731182771434899488428952823439350245836025247679085827680598291823995550677330935831210951802397972440859527141761225362761614741022216695872715267760780027379924651876434999564400889512579989469214465215394728517065220612137192669206957208447439191530171530552243697667530767320426683441814696646115668837613590100944272199247604356848248362545262054176241724032904851536328065481886615793544779934112871879716769743650684940159208997094347453557693452444452626489350688445218705315172955997408915990131805031425874278500070344786234342030885895032668327352863883546698734931178928353300213296884016611802391037257010847564494996180938269633897555985928374735284604289096191347845011951284129510545703780978459665749906003878105775512807738250597650113134004596607954420964413866180665110838343324859728030400674949789760029592513132357542379778701796986807158681672918541877871875921003412201327211101542550436725052494547722260294191997837725491378568211670839337479248409939989487746890123815359369096927258463958668034844370556682536550136453847295624807798132341173653868215282645686436532692130782612269073573783290287314112129158894895789982127213310724109670240584879130834506336390652924884039963476193188729586262181142548364675311672517386160516126283870585597369620917547211296866606129828209122888414635507397294476973106205881451392568748496326005535755206230333545109449173161351968650880729259529166714491656223765930566214255117128356878757733126320753214249951038731834951662612070706825862975474214443922562985905266575845374021743902169415033459425491173930682397795828267733657544639114774483094949189679772079168554618254669066715595469607253689269746463117365773697498381526267469307511205995732468761023099396074990081034376282180012538787505771310074510788994836638646309640829160632622874876867813230857475989633655968163670714164627127091981986538587310188015404306425562292742442016429128842449853845615873853555878154453195313529047523465519985104220319554297561467171787798141604684286678544220104444345382033904750529664410053979268418500917889447451915337419930680269151615961342519984523852388436745480110754466529132851134497977975282358482458876871987196590136482496659030296077299080531338640644849474481904171419362673595047805847898213360620875945730280714441695009418575506807162252562974894198205415643199713866360318732779967569952355937432401387180926972369860376348962970096527065664845662495314542662052521196771350944703101571629442406156441721611450770292995504928995981478442047152825338116213492076756864013508605854539067459956344044193676969692367894425498267867858408449159970003404391039292511933785856482713877964611386748577341692571164407336541765746136218258987390340316127450305205090982781774509445710868161984177377016177043692175022516202649204293162194475704457475957188080727552814431999651690157789848793282471067598821434027159194252755331787271080804177510614759397429257330728733920398172496663488940134984662692617436203746204996346206523689902402023903312708278813104734217349594702986566021322228501567149832252792747480096187529975454924549946517090720390993970688667968839873178772147699349128270995681084950131681630234391572895445538045847856750730386941153546401078727818697476435275742256383425209955357797437038231351949369144613631130011444550434689271326663794594965626802334507735120573727065013906565530657546984837865932003454380935118467523809995455802708717907847070089633903014247119749315751689276858366137008354879744811022500240796815706219727048886635900554753450324169351051737466745607332321879799935510120493476941344209848204642207120777532890773203452453466346452274924730350353504258812542182618975560540596148352102762117125983014786276399227633931317710504389650868348531644752669585117915657812612443409979643303533367966189146691971958396371279766693527516327246368326440601210561495352452904499948261237441268040680053002759374935610127119983643695500115494772226932908488104108445809774018534126644632485161273859108515539832141641605188636531340740911808896982139877861998860236419143777066524081764794144037203421282905994335389962086622972968274605921397264411125133139262569855700720633790572976758378232727112663817210473893133745246329433416742269735622005057253954716126833598793571031226817600682315759278622585372735828479743822719351037861412328517929556418606429574012802779910626359369961237328144711088547762070173135192676094890213213499458966944154468752934221381455658553843970959134412787311551008126201248638003670707177177538622796429251317501147096864764926325952706989232198406680942641835145924910866579286898060504513441037498675179838542411444531620609849051217982171811872445387761685514546515544146912921904623780453838847819585795010282805060604941893896912907250689932988805735473115819346830487201804832593981834282170728022968833890549224060927984750498093958773988511541221101511762552092637609424134413040148372983251882774666492209400267932091162295116631158248925949789002529526793301037865126205802389190327306272931665886368046802338371745817922790907629608714584018492982033690905618380750306475560871883647363309331446520255319865738288756933040775700988704564052105895828324829558024026985644285420755813929770670295835576809206815044385261149383327600730083921423489176416999393402123867611055829595435851580739331121086892859121303454826233983828084837037565922581875094055939127244621483642434972917806223796106744768523793104151291725168015196356355897411118134650465393129316150026638441042735816479054071836857257996060395359576285327225920923103416891385050705251275070510855657872566648339307460613571271831937448336700312764953796347028811418978143993881103086812318401158038700562212315783468941718980008584682905437376156582227563781941137569430931764292480633789235867321291599623926295050077883489498738671623357923074747147612565455504522128418172426379138389625856190982787477995904416286352733066394464938311135028248213608898148443068367721447486672546652557793594580134309238485471690997438653772468454489265867607397813153205618948955704006326595254099046813168279072920283632994765025676123488270805878166730223553652618978893455056276304245198211857897756089000610837874812746986794773412067541637934059012807567490877699028182838254195755623129790601910654443669120156907525245525129818410565865865016860625640894638608996635509046982605753264158090186448685090787243138637698772156531759241687467349770683674815075381073047832779592659230365817055189782120800872592911999307670117813084235235561093213137515878460819859248285007715719866549887552953927205661999421366588638230385751505232874179666193269692514431968228157810552313866105103142462736963618832694276654676907447140721380352922113313609070491549328926577276142884013703172734250949247931633319893233307562935450546449470176816416550582827819295465269564831716652917150558040345141030233670978430102463834155329703874255257678593725231635769087955145361448386280622429818883052142861402463596983114346501070167464245663828496338958192814361396878847510398253883243632107371807258931972593376753612568649743296208729039695385834290154036193004252948330247913155974337016521291320936266506786839677366508549782786067312729991108376677194460282627357979898656424938920987877488958300937056794741007773789279961521970173963753968088152245293753491939322867936671598836849039851716316720124606588722293772756915140416507216491829011403032363466167945829133973989976089903511671965520785418098547855465970250409176895674592367210862772514417583035045816049496232865974502349810341319376505174155479758199696701327788360630130998685253599528474894698359300635596439087411054015880450037411426565735848651719170619731351972858479768153301261599268408496078722036704269295351557557066722670754904011542516065778991051390932691756011836144078043130627208262229374457094028703697060386176781318098590891902303611757228119086276806493471360587686140010496874470391922493742912934715301167683938369180624612652366684329632657438896961894038137081159177905420389600929299787996341152175780517864897631083678094239921145217418690510289666939898125761156289756476498453852308545900569299892942417436095480338536607366133666477683793468442677804260666379335544268410892200964735699738966885642658430748836504711935527889780614815825394788453382401219389563973951176066982586288655678119448516130334150295343636017835472090483519429094101927352396695479160110241182950176735437329142285002106024263231148085494431619007881635717865702063247193683618938206266579750218477791833679374434282066269964115776296754220052228255798692251284388684721304217524786509555434135543619784382597108913477599359518061649238365640979438554277034726222711640969215193380682825425546110185965588052778950225253463094893441226052177885250486581006783519230548371837876653008417094589970598038902220541776021920439384751911746429580559650109697479523649588601340971918400610397480598125288301410633948841861310047547505930963550618377025831928424701350827845002828762002495553698693164400789467982592099470098352656189139328910733642792822786143254929425987357864649113002746188768112381626585442111745211285689612201552064468707405004642775276166143287446535856886828729676360285350202896478699732966651030860673490996543010541407402826924870615889048704846587107979153970280583561616199165057984693520102450513193078080952406075463133129191786819399084339101904256443646725176115113181889414786726053418265944215732848618653047276550666808168388747899181982001258457620771426204950817608687489286616823123557222462252843087160947583717079580613084212878254862284970986401456840867924636098525733516959107918676400742952607075114671353175149471890287573615466754583951692070094192813003920992019944237179855434538518147490036978963393833633226531386102770551735776341345182259555563108089726123584183693970518808999252418733609552974043833907881443486579463335328750784444435420696153146572710912238032506519588870107776025961565039743573590862216868309781970650140988807194613361185574256669026089576346144765987359711532839738109135009041668645182493040578795655067274036517656565955485287892070806284316750230775068597207174213253509564405918673521265077482120508963809905448386196525650581512109056992946275278652668142046858302557999529017261931844790981849759751045733281709613742197101500745330435350799311010877273807629216680830945152860577503215104386918537001341641108459077476511015229686295645161080490238676908638312231950161518549285783998014455305006661261969588064664305220665914391166363885347135833293993647490056241183023537468991141244203995137170313743514238670160424830754940841753165712360277852653771905410758122725066589985532853988734584876789158586480130999023314480553702300605831534911225009186636138233342285665456167101970795390213293048040022676338819289300358620477675913825533685442865445858579743081092476461204663243256097661990582864854897198811974848779543823486653655268813232399994153180026833933022277291722162377874481383120405974658076385792141995477920917823946562043382876976786669731696355786126795181174944329012945826345453709281371583899648845318456072167806145909796390581667996951846932379650285342176161030623395362558188431053513644623985556965327927821802511700851968096998681226735882357656501506433802763183430930630529906402017103074833412283284186643530504385441164425677405878840018286963401681640216526313320141528959521720873163066204026620554131089752703224626269865971733832811156439830850164868380062860320348504354823018135664768526651562183926428888885221027564764856174097970491755794713667220036476252890025363624690269521270273293041064106311829616817957579052974995936478758530655901567565227044082151336865635069663994253003958509100272612120076228449992009267808901563244354393682857000892742988295124673574095710582010756023518204354999712188760818898058629078555792775012077807823120779319356951628382862770759611822504679272933664614822531415726340423582612461772271035298642377064504084021714681915228976089772502233238251334196558938148199388049363504629909769298317871605766904713686833161755863060912955966292235527748725641761975945875394513376994405299733705698459116628541371415331979625913986976674039552446149502532366090869664077404908971445489362126032826755843193418697878836603502968098958458624487768103892163014746202131938194432951450738058946294071284675368433063924490076876253595101875271224356494786700917516217666271567405352367516828128754666055365619728355155296701203944896619426422612965419293021663296066973668700785163318210222187992161032833696795223917556261705472074503523417873977404376351686324771911854665855952987090101164434774428844037877268507875058220032628449746041403559611452277686588202115817022113703291740824414414405936386363656710900957216928075241377254649704058981172409715252276822899939663098583453744314195327249831070497335341009579358195898747473629790441750713443634928726089060532178745290510786893653083301191896946231339226769733481918088595136364408190418442063398428656303948877777688061547571699097441021998142858390626062341111282293551745648349086474237912773981308183449629526249003581823049949642713022420640755784082787555289621384394762019306879883295641343328316655357529918924560886608809429035396938499534433315798715211056347309734175602149409228407396699182381564453466714751364840648821619206286955121230559865195694473696398710812002991452290147866314981824021277398227364625476618769159769063422368898073821439308901734391416602677007583701444178727615238279292155552504016583857270679493754696753503862697379737170556237993465303955683838077992908308569984359893958852673783325487061700040349576893953526207228102107888582706793203476799486182397347363768887025048278002474005473099548265455732191430343885058580469849115556611844466770706429782680359969533241891661601298339384338094484674609990756805708048257935178270627686450241871970744010255566040876381727533537090246923224708547408087046230052112383815747356804959677871883811550958115037029555829192234708938165231454904097505635180349488507433051950377343358189665084381563589102306667648764114395922422955466060627111634302991389148827520211989127325168789773935607970236493927053064898126424903144767427264856627540268880294490103429726908951264976286059156768648902981998012509775638012595805652457892509353687258980858028540115991728733541185557432232786521304196735615393870169461379562836465426922733588992978078606650486559877807958443631975372987969276025206200393381880906835114395273805479547821223130836265173607346731637961155675164167136675930251266382466061629956224775196922646959008233041628693052316902309762191477821311504029407670473639187752987651205714810148181697450459612245169611798373486115831757241326453821364826909845131158519741894984694480280065159304358981814787233317314026909689042015032554474637138575728770298652759388153080220993995358452240415921758395088345285365586417867508726212107905339580916256774446497801406221196811126444511057040124793160702822031672091799238845148932229839274123781678143532500400644691372224186918558749741685065185288744266546352971045283663102506057871121244120487515272284695313733911018031819498022582086959580734983717068764907675245936438479983770253288613116242380526423861184923194136582802213418743475119361305273247390075139347387273531526954502504631095095962402974433249066845189844473358054326344643883918863392905792884317082357803265012525578808867153529100993339654415539760369059412335338068052031905063377567061490574555323076752885153194785159168308772802822957194783831220580073970046347744851276542236780021057678850727239885712856976868046641327625308744935236650800632975374917346205084314827702273548106772441064570342155323304171822985664229775154255714646457897025081843776276013903072834742465363013350596420781255924590146856301651681230940588891663212471910537630128220583984362522535566148799076826847930083248160487438231419296726752677595603334012288126169082314703352862157765690976310147227283297445346998003303752494149371026233379668082453022404922903488075813266732263255861593250153410845308709327546839970198218724800455552858750028915665149946209099804853657166992832264903670605975818897109205833499870524405391639069245020623977273974920555352451725624091853796025623780443577766533043858979219345237082688422231130555888041619518523881930993772565417883376410562721265681432626445548561672502310193937076947997540705175720237015650548834997328193197178206245942014365836486685808178841602358961510950700911414014354579833670866733343868366912750512573468019299365726819465441050231392887994246631220933213403610440425007103393162865564223936617224637784265664425685749263697755906959606972600572726463807811716879727959506576319374103343128182521127947336165547302547298905257672296435294548610144481041376268683071919715201237223212974670841494755979447501279204561769342989841398836284060978856974671088218715554428071593605909786653753416354770093598610961068222658940287924270679302781684888048445530109080325853002181413706474525779810439278154184275305115715560680366405673171484242666881378442417420189256519115431813246737317676308587165213408287661700624007670631449245616146760521087286023246184250782414104546983426911981775276973099132825311803753454493734102121942602130630393416453770669291350073359467534997929292381090325213595292596980636772528818669015577344635819921696636441583084576259161008473827456930159094114575027616522944905262446139825746049298726379831566482670805002351990896987573950536500394085249701922015144740771788300207046624564306317200061009216482817145383692068652292980196028864041048752086852266081073719083810290894728332184342992924892022503324650910700013635114879946078428668352058712272714280734959533936763797937123212188457642576365404715873592827664320734789575913616580364454005528663325543076648814677664245259801022833624477716389858898912019575100646605698097058712311699599911933147712782971010440923983916449434652641275937378797369152621867097589046885733177545268201159723786966685016511330626355004465046021330432603331926720019032695234870746299438289182593180530166940281130070217078026680837826781838120594052012103597643501408072100414231834033437333146397502513648991247676221300240870318331440693536391290360037597506739198267011861077204676582033042944546684005145706956396944839542337965954783174664732302279998172234827988226109308151002751693641835894751202388977078146926917797113660691338024198590397536740135415964750232511630691707947388998725435541305634115058081397073436514706858048005667260438276684660284413630559817230186884197810978557129916262566665679712021886085721071478445137138279684666454889319873497972581071139744833977189247886764785103122116449156469089504701462384650612529764035043134477658645358979719091739456942194173984609447986900530866643175587840821697329834933473625246982757711225441313674966347811574785660504417151609735623174451986465134838899005949754477682485259257093657206457443394570347896523799200660428031119321109727323054471519784418073407316730730452469763318961004939852883080736876953760382455293928290234877006288363267485321279891633751324367657291652415339052871593280808340559232565498788674678420328327457675744703970959800006956878229779211108045472071150994913680885253702750807556488917364094049526015715034290722893486636146328975134707683061767840607185004087301136721866768365492999367176179328197329028297199116997295678233270215187726224815501236362124546363010038465705762527705091349664463302906761677701199940562064930893793366558373929956880159780899610998372675813681609723414652813654079701127137820782122356837146341731005876686941659112359706886161440236393622890101210060579052142998837548875612827115770859113038388759035193891427942099284897627257627043956739569849058700210692095551122749919670330284580080137139207582004307017833081879377037816949073529460068571861883268207719694703672439771302695954395967147911970529161778962700729242380355778915233386197933775640020239044003155991522500500720367763917369707904150344170869766916978880098969477381722309711004205037032352760800023276644001278851611383970323244638318344815282230388010514217406506489603642672980907873616597072587034545916507212535530406542657546058137203540331911611788135393056069496403030785664144278742535860705405053774903611649651538728168738876884875587168354352073795472644957562934618714156547433579930232811619417069343285927033228095559896797341109052496753030909744914741684673360613148702720652587003822466449533575294338110318318693880211904528799637794089434914791017599058656703445681113212664294438192705352420115016913836725683909771239967339942644399660267843098830623708251421769041204424392418905267834804593564989514608377876774438015036366302166806944839242934281913368155563014614544948771796484766907142567457379799145687634321650997095443171773122978055722657496315467146816300904788798837607899519416836356081213005948699030492207818711343012455827524103126441739671000592899900032215365199647231583601084112477073260090681169056675808085866954026692317378770740865168782441822456139403486233881594295824916809388697225670692283698012260597160559845648366151866063120026708393036183815629074811849137517320197048645533182861585023754021889567797988003106325809327072719994406618840891904253651261433383237242320048679265809866630730902372798364615946365522320848068624623246953991360534120075900174620759797509582928647830395803489744999917250860941032975033079844794555810714919615905036175888730273002735564663360260198611328694110519381539923921981862944365040840599220064540496538263948855250381330551150106901680651627283635226012405064666423950817900340910809453997491184888247933555769209780359249613459299979458375771691905954467225686804348005905411266317097336085187857539068968655092602926011454656588086753191272508187545524821980661759767772419282605012229684219940742596387745052517523726255954167339309889163883245541909426617940721850509506138326188776107528658412974861820547006232216088408214849549538228304584650290823698810441757356585561844756197206448863370778825911163235961735880255672591186918734192458757620092528754563809077927513000856748817155673565330516763099722178210503950854877385436796007511420375579803832938314554605436892889811916796382495497878171957685354119714908639630495055244040235761280590198292772996975763192748949072620684352938377714532470575317809011041400717234459034929167120352625445519758783165869641505805425153002421942476194141333996964634168636093121763982906420495427483686108510498368128180134525973867212399770364698635119175485339157255174360364194663925190227790449189490790772055748432350038238973699474968593407909536570845759873014486841488367726841228074444639132776121910526401342857158255256221763993479634922902326490188107538956568782590740311975265969910154061907084757688361592488565195355194052583883422999756996358943304768975909410543618532682060083756853104176602228010250182313284367749167338138407541144994495455761780278032067330585088507548694788263310266675124177451104694597445561982354110253452598183813295293713668742304892712657560909559967950145945037415205621167325324075702679928229381644490661657437332598082917573660188401403441490785753463026825774743043679812516585036217000068071920599408797176516431994409645416398588158598684212169119547378210401386243405891867273378182534080174624508251754492822435217578180316803183177836273261648420336596659239086144954131813167412469219486681061237019163099039059710166016832669478497354116744306339245346609028355984171780840565737639488638735111390162053384436152039568821139286742674708447637462354150555345328326959431356693172225266263090297783140461834861759674868070317878271096517752643180676164324481791835368370626750273156216701880105977371735045864404403888947396804573383234647170911713809434269376055632099467826340337788830556268156944059375754590205399571917834921470249799674029535157750952827031825919145920443384887133423368253094095183702977777276071061328054404244726150129993593382880919189965654160965655933021408126793917541281585001206409587340997934471119902345311418015186466714475382887606334815620451449847162946810589922104223615543337217432136302122506653260813601780286354282942512164054818285451353012922994090049516293741981153888063245340920441758765288535339893856119589152985367046480730859153384457334459174422338631548686338947988730081843072463011041510219303377344673609582762285613812740625219421589774225291964511220511037505673268327324515228065644147031609734405938783796179979929979928245036488977014252434459205762864363930674285565841738800033191461562458294668476238323491546324049221929827377470314851456843174368228217441851222943209872298578157060134209480056940967531699745260213113225003877243301704449676201238256579796980278775280711813052563919675215015330371187737896308505628328392931372771771853331101824865938745310652597647642708197489802122268851063001766540319819637054872558263758155572716364355946094693018908697383718314793019866361962956848972008458921750699908109815279820577958073220787335643048032915969660622901900177336563763006402403378433412990268124181243200890883503542796742663609668768983247494249597299574165884751126972833429656630944002400791111789413457233430173754784990703596273282457927125587277505691887770490013698843909272154791409558827496077964342055481691534400239094022900757620332312009971618307617409475923320130269769577113438451964455095198492977644099049205571347282155754223694856435335809557848294642915257861195791844881520802249945917770730534472881688827443987601199100656953661581347597364070650643126250751606979470563592428293623232021291006438081709078615924478901682342484592167958870537453102002655934955230822726009470124902569103343917050083423262004196288300908499895484502577117165888250008027564238818851176914599172503509292196971178509262923064230425868715491022074351921011470650078551389302325721704157132364703142629013377577167189183315874510700860981004188687195558938056573051230165448832977411040442416817431736937251153536872563240576387956403813188722833903685912314065668729338985536588848841181084383636277611867306502669416921256494597453430060937367443530876989978471460206756375598208652302117450679627155187311046661941140501340403878399523987655994858556323061494894619232082707197756525112830989380349137026668274288573527211981147443135487982363045153609152383395738858595004071777573072126385777051556109187080956725068881662600447347326568626822720128169663850540784555981626299528684126222550665675499017299216151124080800489039004914740414350138023765664743903642037914400987003831672042955559877891571109672873425530606270436597526938181174757213352182400095945729444500148581720851793790875924499251359289047807777164948788745470650161422077144860258273967866575191410967064830510575479954795256301686862380780622811441029143474828194862953777546093920999741165845379983546335461504405973265216430966748821804396480800591827282215389982149335772113130607079543786788684883120445267501460207325565712912364016662537599299257755482136285283697241910250549014685717078287042602415356681378733883022389706248306179509640922489404071127473490080384107414421650367178333644070354256158751097396299247445961718109187770774133314290538403429842468949353925207875831410105338188609075835651875144706710891692309774895702247546186978619651132658764528198823514358344020652305763684556208755147414095767751083588261685973891508943426319436059761335687420350282208616792457136102753715403378227103325074899091726527512822419821011703081583072879122758130760352915403335735093988505710777153408627028060241667488211753650542396725965122240057712818436894366258788820167635283149825802995423812106967908941041416206066674442024443303991411571494751571262683602324117115585419515211311406273870500563301657108495135464403004158324849450406545809815154553977283277447973667956111594481016886492641227475063814872040534220516294718835786072071442494936797202663506477078584385152689091340800604990625515685174715374116937262337974713479060356829967055886143815047092587281755353658189232246558326681900128509498429941398907263579996698440210979536259122128896223320958889340155942744708425325165045368588611936901924856317191123690502326331821796041031513504631875134511848943258422550912087193439121277967580481366235275026901460547245183207488870738126905934042783545972459456455135117376368793691330804223373034478970454302197157840548108846135506436284536736497308194079687723156534483020330413286242715996462403503910202449350682799226360092006891557493617588778909092397150613939810425267939667768810531318908361941430284760151333190886606765436440923254058346873495735348990301415340721929574446185378318602215602002897348804442661377627846024986685291779208076276233352415327679956617452213044690587711273779337830706549684382976903956655937439659046438611104384177637118040240577167379311460091173453014561047619852225582567928311933917763735613897177240060080333853858747604958284646505198705326280882147302942051632587396582481380079936246495276311698233070581808278915555423589722240659300491367076619659766321430986880413405521546459462420132400951758798369102065287254005343887679914342242539510379619894683033325060973112332019899285741112661491978948832307750978090497549733549794948962506003448128185549717834248476233596856146249760779557794371461667264817196700787826178985526519230632569119019230227241495221694344185898317862935759807537206586153767639775833950587841861512241428427566592105624993834476104595028841271545900876717884284464886144016721693219650168321255560164430132133104661551160097981917231034712380363036901463535283032779319041354527935784670509613922378948445910144931452055530471208497626170035436823875407426059668156500884976562649615550874976081711109969134171679460058002378308502107809788074710138680967840150748520060740386179285352449645437041776565614180037241053199608906144710679263194743251125206941189262773244209565857609333874419821266670763490086406057013529574371802364773388314733032697186062574037494096262056546679113049690856490168256752515358366730292379234112214149299116887906906441356301081452789089225675122117530812034113387523946901173254376829913091293225898190750957495220960459257810091744702301935338726459037009589841774097297201578487849023945752265360942817327380049625621887436003060425165475375382346234464082411334553814451871463651194667394767312527282995688022271946289938796009585294560939206536682263358984733070172579260720927881628174565720144843502004300243230222319586274500336993856955982193931371500232528498590721383583347191240987226705958218896212088021604838836942613553707938859360646822451018319020674296949037511421934700629708946135298010676897587897073192816917447571703377108464293281086239349426567548727102061983810529232654620903287573513258846901897430316317755300623210909439567588792045443700711187543456144061924231739440263170567717349627392917153293108528418810655505129877508307328566191028724303436325019411099990398222872980907154433064867109780805174255744457990448952912891265720787970415412957004088841184565621760575547141983239895217210796510856554349798967279462131112605265280983068754826124104540661102395193094879021184807959454248171851144428671209108343460203739822885686607010381838946942969404589132007362888467629004970329289377531304282529554168611531547118531566728061825012664297896252046318065401214020157791419336782644280072587074529297903915996245389856887496100046108127607030773871388713224608730411159194194036418615132785308216528214353451759171971497947518719691882367115999409399835942756561067078151497108206133682297096967532345253701245933655663689579662093745132641355757435093110031731044186162640805814504812785127687508476371139069830532892349495099869192291940754234035654635574690905526398716161400646989689975515945955623117680161236131046230481072756370727974405082097676902537117828880370886475539770593605127588523661388260311367115399304025129640674888336730274099636028837895504115635524886453689399398259089498550995545623283520555182914211137644751961419537727134536741569875249912768239254751545045714636780620261049356578872075179826576892541581885659806128178074910819328228726267469225758616581291996405776185146403488929085305062891554612015426124641124161294030694671307184349093938004297339905081304837294739475836110700941080917519660903775004423006133709123628518763799784745300933090803218072854120445195162498473236697095680430732978790156925029532541135538930603585025851650374314613234749149527911778642672265020800188589136201942372028998274017865532045798353412594640449582136818928253815654577517856950926227416534462227821435175829401040933559978755558491820518938570818814991017994245615548982892466135938826732848592549638525727582875007358909083053448823128059103761216062013258428834695604494095147804935529388622303221801978979146311528082617304655062203611436535817523110501259174843919438280354655660269022875008908863026131802164380459093508122650616178667563433043206617406028842260769411325646877805584414815970044892385298603360435090185648528539078042468766975887330564715387827373969704771582142391603296785700997627604322922282303386666634218136477327506710612598143817242477648647887580959971928498153072133066219306995487437801099660347951495336973552275851811029916717780910911319510987144444339516691551025057678404601623793446212308741645260436632550065035183636051526456666809512039476345305957591084636775727244100532949794663198340767800224209179703205500655515809709003384318984908434314024654292506917854515730220158778241215898863446452628070117302534062478704520075522033753538896864926811251834342398532899368674025169217378187226281065239887897049770000479070270023834140110876875164587915916416384624892920938189353160605179976284647634163897454935542718031606396980023831829029325939538377312995585724832237745997744215333955084341283644042845082360003192209228872555133263026438176782657271144316701304214410583431773580407830492032593863718983697233290193865549906477791048345833837826918019418303778489985313564137162199605723277161681739951283216241243137502953713640446408745324710698779257866078959898347420961705535513123452184214089303193270627501662013921468439108726706885494148841089446485977452844398257139742232054316318245360776327771809451680904390899308708723663621457932498467186535380131867729120696258966616885190493151131549200326277435874164691995220928683291243882132389198113084349780859041447514267591089787982008602840717638823727359705837918407135661012686204679080053433826402604980890080230295003144803739750837175686726483109692785159876507713033306313221269617623693823524334371383681333407448439365090470609330532524695459476592583402393636511312499665602238001630295260417076131166228968244030196433354578093173372623203551884043744346274738796750044568520537761172569393944387396724454006751498178385174699806115797611151185096846410059765994271853217870676296497170306000092773477812220042654208118487186961284169956286957258977391243867847984191512678517014276583093680570002595575024692407024489091386246629723043731489124292370946894725396094735799516999480894664522690904488924025719711838944577778069904218372852368508542797852394800086056673319684117388458663283010117356860974179095267743792920298365785081657615366868796466421557433650974740985952949768936310719224558803354941366723076012464289448732748820515329728509322830082974647000937273766916261489348147113209351704242663435889454802902267560141445109501982772406418488549972847040871027615437645295994848790950892971209443020405768087616815272510572778163784719462729751307300228558413039869655206102260191766421091696890264056635412153941305592824173976445923776161067157576126347154362039090360454806827794609421439967381945202519371177785191808464294604930937539459187571624120592405497238041891865810429724076654046181590692548434327165986940557070118488046283253415403186426692107681367072313761962844013728381522100708533139101493900166075341951847055063829581131146733724811165291917757511948079047038806998145083135363017686721548137330259679834077100986222745196903303001837476393736028586095343092086634949734908849478447275397224623500652095074696853535491585840796307522755313660659353928058098186701799984682026204394406532230922555321131103088914374352782923766842193259637646063740723954831700895078309916340359900907279634319991641907303622266984101206706813061466925740729840220113633725035269330387219133206580354286144575996029957678657987866258025749592674503783872811118820865882432229809314273916078518098497136446403277743583245381263687747681763392442912495808332781327242568868046796804318352875663011686472624399011488339574955174694372380542736031076566580439442817809615283321119385859292043224625222062156620111237697796885268253588465505911799120162434396145528243751948975270967737547946615727226666564614682182462493655435308901826895681811661632961190675647807817340626824760181097049145758180463670865047688916859598850627989097847567994208315059856344688772236745519891978274698467229983496075240227436619560158737947369113223920194703785103092509513818165365553695260409427424507201756624960613156278251650573422445880605742984182629531028583657678889538767363841827440678617483970963816702500697707601299183985403143124323816132527030511546250820436731517024945446617817162060752190189097259383286062089154490818503123780690344929033187262815411156674450909508605652371813359686778631221760979234520830124419936734287516763915817872174307442567339439288084641263804910144716316546739851794064804658311627383739763541019001693966228859254553714273476755082334822105026433473557507206957442772751128011381120117715109232288267147354161775546206250113166283293613271318127189414736460338928849536668885639822450036383133749034732797608763644779427141821036005870786648802347221786492947577025740940190146110327269484378214567001043367913022327688638222538268566658329298116522398452547380132163314586809280447518350922581292456070566423838775960808900592849384531572073782721120346318112934102119018922795850157569763480111640734998526679946405206198932219077496023296981429306440067244586353731319014380451235496030213955912330594528758946101624410563398607536652501767150658313262332475035606597695838109329776726068587412521124917585876296400995532818541648751677244115464620310726494790758691849271359104286339509696771909848043806630564935687704951050855001754475849835963946155943656186540405413563745297479559603311376299516218922059396986701782868930063234013034942371055488409985595451895597746590974411780886152772623526201849112943675796999607018185455768081387318753061736448821340228680362109986484776580299408457824744943733254420797865071564458080818934672519603781365262849201567480170401615003019778419293541177987829767392993966824699231497880801471537079610188228514650376125961977121834669209682877433451052835825867002387395776115144158258464061636832898879759426680202371828089992751346474989154079508396441368307918392073256528357853885992773896849852700809843095764416828813480203476372023643185261630214171142910675118239168722394936638973851076265135169316091619884736504933781283124432651383846192578974888974947194484930270999580363138393565185212406820604780717596647901291843137375213212373645244395138720964173408439110627158951558633252975388524860338992518697441890948807135257784982619828285475581036755227734762488837264030706007925863029648021794681511816210587407400600656655128191681991240840762789792068265502383315017168670259821895012229473718012740369377806842791289041217444786533565010748434729234290408930935723055722805077208006178169250805380698225122853904077167022969773808159330129483351492985067380071429131485416060418668792220183079730943710386144215912733746859265298883063581343713495513681541943063497528421536598748024432727850499543504236373294743040543958213233574946595355975131423594728945986230017698983720737160739185125978752672458453380774304875530983022285613801609272917206913253618732133720268861186430670245520528156384276795651748704719392495185133657604551184805385961065343091306497845269526149177362775612370391305536255177050425575512987312138463222234938715010330988020820874314001411356313674965690817708604676170544908465227519861042120998561143766903356205586169023009753264773216086920241954588166863102341079540395395357577622520638061629491349349271480711525871064462075899999794890486294551435784628670268976584846866177282072165093695437884305562894568727613789912627989072352239607758756311552394531920065144371258126928288669474566208748926602282268977743025803037797012780059647325761271823478459685397919971015808797173307979698559427430753245252802302460851235242078521882268526057176166558951741273124282922037747159386057677609640226107751745885008138915103684255011135650021670258158662142033668647611001003948654732136079311327914560604880424963746684626730271855071874592457398751870049063306859111916030589337737097813061986008045351924653226763291485798627574842849611264354336700185506022372192467001947496013822340916185990430101674140227038747518015008552114288996679460635265856891756723752408577000715102237126025352645468446073741052263103383063495709591951672788412937091163970115501188251751018035484130977641543815313683563292562054008851484791793656941678656956213393166816239452725007387019764288037293325606802755361425766485003809243800945492794806500877023069953601104092482566997980749526720005183974255562956868915462093379322939934987366335787097216895767924084468499623261278495290879215975077144962066677850548299748324351527604203795457032453429206761713586548705727915593925680272839465191101050097469595509320427045575317023386848871412660684489112976536194368006525728278737670984941743254582471896908472014878679113562881890887852814348469196852091280766265006242979869873125953184836538358613261282674155571804031021679900603629127865290080322110611513330693400446723952374070216324377347204880105427321990360811456248734681937618233468790342566385977513221427918890838706163008423648382778591022413646723540334099406842847994019234949583910098273495031746505408268388044868813852693763392511957774728653669951623487835763284174012998095074910743236033412437096756581287004489166400756169007508687438621128402949711706774435344936083480155133915977524196289474529498843695753033730172738896030364590273341619742979004447036904233261683336945695630331311256585478542758238434543162797306050266560143360646653748204936904137754017005874372729185970196651377325881890447407122571260945153256149282033725515052586801973830263688285587449268311913792954517595659991098923547678423849072857412693083819147457066234677924797990896411138547462211183656130534963085687737638769477096935228667079426893810084699850304510226993457563766291720440282025482283879326839429896955175861949196716385583468810484072551174552315967602696439764699634432403119279465382886592147976895930709034069815576972472331122114405311122510745104060820946568536661570886962978147162993973560354960046805831371367494590593789359393346332151718813735973204858621619611170359283171479395717867375877289858937097919119634486974470590510415886095685147169457629496750273877909358493395888447279044216255142249822112080227986654230424529526624367349818698316715228627366583089499504843634887075063957925619216182581103933816831599293957306823249448039396042433255315357681724407352799711210297215659895936812968826344111397645077307771972237538673079580424238436765441306134213569895934964609556635106576614107030820834804485743257171258747458514813321826592345021072404133390817971003606122868523643949348323599520339621873205868997457961350177326489736792015898533458803181611093510456314121832227099509401415342751007687253699408678580371711262682670843873026827643946391782370515561606475149961228004331939259166454246105427536363496089644452676244608457240662474715326877010844649872625207436212184724366567361232097371555964886846852210771389362450856739233690033883327684830968108361303173405119581000032054176358934988404784735081800988680372386183257970584399608780532174755972590410653024064525807752605296761572268127382077853610748365307934584168910933433100927196425156754543264166501783686030618397061076729394987717594878023910094914690534213285959165120236646431105074875700577050137782034040296207755389647560399235843378824588673964960219470298076512619099522659901273026606103080766064112022910337205679790146296462675057260881303298764975600710978447654312696777229199409358110586480704251929799897007726607073321179226847311334550111467190771410818624727631036752427257188697711773943286074315110445250293155337790424788488166495905319240564546857276972462043316846798067410653714682087149166083241964042039672386276458579089862687498584134461095702237931451347302311568997517476554525454420344101547253302268984148802793741549010950026465923930958171623151075987506107044701033173647411713287908591749382978437160114332885349870615401800528161644955410849573002561664621132300918401095512857398449635838070874037008628963249499556522292737570951127256901054451990529834319585691781948416856551390763070238754816079624525529806791444440314886197263782020473244657073990490071749276003379533832090788367397245705870484617342416989500888314818966155432142172706147458374689880598668034063414868553245713775196993610707881899682328003555336023142889114243765147369545760894775530860849612014731071389775829468575046193508185310935414245597045253974104719796139897992423312225652709960563003805691711613535919606753974993394078715404732784040343196768963036162361066781036606072954938505137521403690293770976184589418317112019100877037668912522483558595732899159322114327958811698938781129335706128840535516762679922938438203535108063061608068068258594894243371082792173154757666545471698665037334239229037391842448485654817265007845433298930382150443706729986066189397333059717063910228999534561810703404560863953662957586365127828240355380522043302779083246756995854983295316768795081657968748396901866076121195785932035545896849480264424170823876627387130564103961386689822680016904912082610280273893890157532156692429163046873582107581043404285057224924342596817724335788949997175843728024453426790517281883823583320496215246458385409428258251617229177242044030482784978118811830822461959625774401400540506259259804032931823008940920324077221928618848329574495593772556609170607208802091528316585365436253240013451787657449667053180633381298995312340904625143711574087290522942302788253387212545680944023656453018307643085924445519735459720078670630197259492015596625485340592390731748473572094208070243224748740995166980609516494377837899115809074639258516583029759850963165710161615008241136575884250832478120058824933354112181411454754615856778816420638633076849638457683990322664347930780792563931423655599931529889547176567943189131247332521328852814461924019739692609436573453700348671332954214454527998452831885155019380624890702591516479832995067272979257594000867089047421305620551492038625140001135620819970054367446169421469157222575413332730706042642224060068118295867199146233546045809285281400815224808441944705157749380056245346984133608669818797329744316204526284088222771207849574817055113295173029148910936986309287683434767503826933411115813348276543205736144161019224866781954288598368779642033235434601160249713016559065258824358318547109017540050037228250528887520115596649153171474282205472507931993733774432414645185811181967653551185961042910077828781353308877947348336042679040138347516449401187105560372803229263848688780880662692368175137138494290215909654871214937849422552208173134076158066674902609312672122493621447481940263670066552308784488823511329553647293833062353800333177859792049398292486806836288839873679177480266080925928383386927323910304817819477400551425550112268869734894670232790730830423679399816000111377308746142315087592739537188695742052623292608098569890838070637441340914026434895203800967372730385787870869703902731968351931657414457940842564455405688647111332933066516710294176042607789416308501109584269198714775533842226957490663421131253480220118144835442970630235607024071683859458141486838998289658501273637746741163508863057346348940385562956877899179348033474444893026038393182251735135403277156938407234280651055904952857448063673435726043638454171960399876533528462875415009670433073408500895336088563650249007400566294983731812726924125281244448744060834840799185925045897730312899183894484000505290561663120796138447770797085723630521886982850609144228468414255635968620811128508251427668477041597805693085472312921314467360126855992725026973130510067138702133805657278758206127858736567487631903719798191705214998650055613251230184412374206277011626392959808070598851856282002160140928332671631301842795270821796517743796517099964517600727269024876725475155970140627411741814085066328543977784299898831601758037371250153971021205284114681942888807367133850612020290020726024795323456088714438758280449232646589690160362095821311340375854620403894937483150675629649571324653734514625295765342075312480009632207561192137736236389275425046129998380279419863604036946218170711655486880379208460561697281990245615660400581080145799767566778762571822227580949206772688190588316325526368015475052042474303313803812610118853359618543629973225699378113186013043160858748346044654270499834367116971311234379630466902040722046510712322234112852845997697405334087853668926213436628349641424338619607701203121225807006654970862212278615210616776846715413923922733622073061030235665904391453014126256501712650479958272266459957454388527005396374904414925658007178238816676509243612784892912977171689751030607475848899750374568336938300543642672003238067768930302365315113037816941159129851647631088106678015054142556621913681145668111530232630590773717422574431574178245030634652917508523054335220488340596315643641371214045071631732337968859308742259731355473366266392505313242400985855904395667799212674514467091627048141456269031986208436246318212640785847306193623476050374865126658359261661890496152984872282654873105887216470849303574595897092346898213634504100123821686978189925064722203720613104816192231193622957098032288840848946439434909826798701982347850068421756783565343067389275818388120848595522283093533021508710641187163001277885194699094786919726274785717327767564349873235518883619116590651292414074936903415703808558048785200689672760289263671263282310122849133486987056556754567728728242512052889803156039764074539331809272276349300682741242568340113217700861252646759105059901499544321595532423078761548746519942414814521675665914336649353317527504792213508227526727642044720910594292456293067833067357258882908218550875919657055097363465901983256846304491991373270018070934268376576629490270579073001556932291987353802113944479674775199886118093950045955632359955768435861204848296641847353536560608383135062004906091421091744953560574330455896776829008066748858516407271343842915869843036362924956000249549190172790255868761577169823563958993212373795884498695014806453987928135977848289647775564384678216353563764487453095840174060458698607174584826310092519143732066821060461292099347083246372215248031176303568123595753502753177129479521396416585155768198793926754613541086781474879182182065579875764971564750103619981492842102432259113700115479330404603086321862764917024749332565902325223340007800261597233719913074752465706739196014839687502490461632751031927975298395343569681764562136052111835862747810373716629255673631931523616124933945040757559938447207674890965448579093702274216409018652564645756231764401863951747900695826125653030714729180360985859654068959872409698559695607070750500372892014776614214083586131853868495535960311617842707553608908133439257249557838230730933600964835114539211916375694094829070980558792721726820073658593989053688135636153067669631783051302689141547248286648816108542646637870409818331705278873388675484189555627613484702461147929815152446725918756676290422436371293415664861303689928089651778847099693933721714195352195369121742594778631739958132925307361338366747557340285296217330774822268518737402686620806841745189953404431601615546660634760210455669621600248646025832820454695100650698399066139214674875302408443088366738108414603892519387633547088667867322884565477106116034712808595436924497388802446309437571583887965407133845399179072256352848472169013508367464898763210285116377373286767786384928320431307243770794513022984521826555638126635424874123683619694163792267655114260077488981250742402377352266903215196919593841505157746580423663633878001301428901990065668012197012058561498859137265059159239677222996013562043402114004938147057686871028038499557268738077862364227493655510096672851335220473521858802150719439282341765308555752419649861891345645778763563038788294462325964379737790975737488801229469963533407706097925612835651777848359724253731247889580174927770042390421307167185533266728763671571345341910742851643033597387255464750538183634945560363137613309100127926335667406078280790106104235607572308408977570645961394172438879652964164536729398492439288070160629077165485936757701877061936474686022598307830519495162814951606283084445611616350429868610524996386590160138446294488054620145376858667801574964377752579439903214327809545655481506088616812767303614676053085225363627125531536795649184744070065097751765024879060670550861598567171399954343134594101386398398332444701479178476665843177480922430436567461049758112788614133996736564088993582861949261964921920001008211307588815044661061306333709895773771702919319234736796346332296945678710925586768872852705513467731307679729917338062465151644673897594606587636101592602705341386080045523902177290138672433243061235919346913802853308435259576461393704125832218545062016834703697747775769954844878449665572205836520367372635276387247416555009481086886200798311732805313930635099430576270497808026008385773937612190857068032149346237166054466318944383171066582085269142354409956162214918511106341654355937731960746203666838249876356166671456493445305855898694720101532697247296356854875915119146802987766417947759355614724796306661251190547750570035548445940306385411899945505126781661510904206107455815637794518340123804824828380516857223688437530726578001388055706734120223342937833288254695828094383477105389124959102444534500496027894150784230758310727381825826820026055339805149534660379837993845483598933956963753663069981462948735780592982685857318983377502462305985632878084207202871659208950930701670878469189337141111157529090601542584552252065915507681443666336714125137525485913111622677587377773091818256813600494126673739015828372056347336243670903590562267530285737508252108353448010477752997920686786911323104713660047370083177467033380788105530070734127090822980370302391365368756109986823279926220692455223821014121923456347048757360529315497144208715852131947862327777626166015363673980169017834707718880256649020501600290472272372549079834224136562086206164132740781795838039218600837072671279424533627686967080087435627023432925569942131049268587724821775261646212586824965705169761626125315996089216680880863666130643240439947682540670675687985117061580644930197056507176698376615717099420004674903927898166878868218476745296438292972181016484140509035730643845421221591734468754254841186614621350642345538017816389649611053897846321917382287047451933006671775540507740738915857679391942626639173703263680426701687466532295463159793941532696284218365418908239074521918477577604269660366042775717225422124728736968136571007278594030943615949193776248522591204088577162961269432332722347665599665574321691912266510670276583718858880702787457467407292503292959958600120012149283720725909972515707645128725484301548150991630588907280468224556464170090597865431449717146106397649538668259733659417457998309695012558092263708282673679286669865364156605008302707557656456299016686466348741534507626819875120498002733880521321468831449700645797301207989076318857024405347881513677812193056169683873706563578214781489686563461369054695972894406897515127971705778793118185037946200179472801171993282299143780493755581183889267873358191978214102523911761214557601629715979187587424356617132537666061404999439550871275710052293557627578747715839435234869878746018257638629415247792146601565467990707856199186711797952572904670140424627200278606733659536250481047153524532642476441057533111809499681057224997044256118745597155935169368727561864270931328837453074479549539306463175931763633905550714704547981512203719631617802418390611029251449755792409549958104021170638640878297760698869273002043923202439122442106711896162885151823768488628127462301060595346734631578829842684364586762304824078561409349184558119486653899204984659473904056155685917702041092258247685027261367743091944323445692475057426478096755966933848729354760030377369188130467135233228524533937675185062240702534281425640829589626669265812421257464134843618021064422859302421589429846937745138302903194622454213581584996398281859794890431692796039910153028618041164437028327037883192654253539218618767987459267888723789262043600255539453193467374892464455933270639867142164039224043623649645422363275596425742613540760067422796496791404706511911184150779864532400488350653998002752276890591530969306406623228276721779066829113594604366176775215407194495002595124292298406736111221277910757690551918716581877617182982248216540713103876404308113850633282489286600623776112992548270036418874944050450895893380979047137029555720670375068528442945899307882209627633253518244607077976195008743658680667848307491820423003618078174027859711065595407910941145511995447378535153678625299863532826200498475623780415424150113337225693298095320306972120497683910951015428305085912630336790302607288515455129922037927280105057044063552746183660742543323263188484602986415001949919386147748533240488935106715595794329373135169541869848563928302702686240585610797920566769895071336987349190559311559203255503943620121358629664931023165129825216363474274082565586100354378528487838186607416195469971675848812882188099831322882849343305803114290508632269561664366447113975254494395936271332458823587025945410979565831760467635904196939134216132594807290060085954631206218155796130643042739771462004545794608173089623824792859496676264327529614473097816988907691213509239438108321564233426814284559705577703071349740023601207288003215063523940445714120664084944513968585897557996554690295808446725540798547757602074611998299031049777576643554008520584361756084485784629554932333827908197360229027112950974195321107192861945603492771195952476641961866089843013013787628822221608916145860016701022252332019979316063313211767935538390532096824238547304937203506650152383250957146676094449702208053178309765643883733949602979852752247516793898475785470457140648388807418373298492008119749847190835078161916363701592698729371225114546282464601332931862734712300507994002705347030967358326367681913286731897641636602572897509289988179493055191027858551819869512629445088102897826349417100476021849285557673640655490035058058971648627356538562665500375077777911609470111727489650247236169417295814101289276106597486922589937748626953082957819205006786242065572850247080003326682249830476829163063087627386875780105443958088786342616701422698663660853815689148292360910197418160032924865747136799987538038264553993228888078546645410009682136586193035210971678017306558762315181571998314042865946139178896099321281134890550038552166822782969738963886504654320791875386795290715211665384645638486470472681565909329626169271061124943104796820775558947766126797257001157150251088842740564885710269008187736109660478866461339041840743140828681776934367281983482792810996181782952955463782528132534415078610514795107510510715166321588765966919975330827697582779324016116714421759486456788368545648032431125719433462858462977334563746069885208859815318641396855083456610433744603301815012608877780061880254872029012628726084868383111130606581843231349763078419016177982301113700596714644808425744282961717367561757490549211029578215159465775633336759866327431511194739816913258838416693615302526873091072421509723598026192327512907612932924326891898308868533964984473100484301087259114570664278114798572899989192787754495338309680252357450534254963342660947673251333569972918468076811380816724123330983584606941555938332436508230324736678012707183774756039287359865643804766358309964481278268258491612524525383930247153392202996446267198409309232227705490594961685367869475304936183532353999817459821389717857119684764478121933349597000990601780267651006189319793666278673623264305872428450943201596319308346058199747971624790015595151704263190022033790570006301666950062406387553101502555332009506086483755199389299889768813033896715790485681991185570794656928826426310257555529271636053579865467853659321365209001496432055337394568104985460947816516550262729798346638784363319330711188506011238142463754303360853369879767427395670273432311892374843162297335748386023546183041206951456838479236190398123265355619222337029513413888865068011383504497017289958364930939805616755004130124892635831493856864805921387766866514316184086447222944408103185005145322986276765751748795920238309978070138782601415355520945502223165341173116309659358513096613154641316417410302233976198565467039154600171172142179732413873280719496434174955985571864546318125665900097578244165252173169053465550341361025668418251928419830156806354718553264616927370636536635317272874775019485209013518376654098404718178083810093001053702203564115696803030750815875354410185026800291532554179801327960677731321597125019642919844814637229420510924762317505680109560971415952885982888337840974938219635281049819802354468622106945586113259806640382695820478519435602191998104075868296323829177213531427144813068488809767938953979115516751256906558347118278545620746391460059388705868932138688305960714351455352748264418962092274875089370843633467039724741906368491732803495793548610883967215270377448924812233090434998804527119142382887310038752674134870342087090550651221943243548302251584345720395344656760631316520169378456487470405569277070578949963897609291506917504593864827532986792498659809464776108597377603849730096800713862484628810404366364069523845940526433530618532172863450450884717451984606042744979558489695820978718028880495914650194919271749805277357095038716939376139750681986429499535413809970148380941294061232663281074749289099915611717549686575532047754160207902760545451952132770569609544961385327072413414627049358759546683694884646863072142778001431490494487044388067042138909564368518629660859916755875575584586237606450960812348763613343679356142025683022336040037539751765530982050192601694658010985568127711343576904479612954722759761411408213513058375682465062396220518766629176639291995590595968917199602639970650925475681365828986809473447775885876220760935135757828307404870567278759245239787026325673740652839209826724247749739163003417175947012026830959818885163510889113469238830743068170455001059410313952313323659326626032242001327056076165631995982241824418765340946548117629923774234981082345221619825824703907468299748430503306736600929609823021669627376163110571415285748802600939383342559188932417984793904469699043731180709147185457611252752475373067777275636163469293917395491387704913147461022963580778310957962706913330667851739471301204588789237197674632597125614338770078541650544891797522669993391388901699884239833039844034856997625695473978151630581160852453498160901339254614493962040787986741941490818164072422538454661874439939570536316900379080325239435346615584729177118948305535282103694779001317064610501523844526109378534597244745788459815420914158583163056958319860849259260224715679290050829619689506718715804211754379828910619675097984697154111873760199689133054645940844413275177900909386218289750838096037721485636450869329515600089205349409833986783632831145507937020661168460116310822477282528453990199137043865412839295304211087641610241550511672761119497074112469753269456699529451268057346514554464386727914859407869254184926236906198977937453073076682724728570295681693358614173262403584344740270254561484731192595356797902344047019979389028573172328285837166775347906319845621617282677808287866216723250084467651190974522070971883895408681211525690952924392287234660654707482914088471099460168978932730980050647768521770904216132820273734577055630587990174462105516938373877601540388509309505596546798184078894281904463537437652600723016322324303985567183544884471658615620881457319876979732072995993017757238553787622173125203205683541347667501534398808602277543547376313298336006320832907674303539935136432941868902600775518348347304206708711677117268152699036570753638263618437908204167776344224123492446899547057878476442567489934121151486912807527503714861804782830758711900675883712170864918188862483513412867646356566131717532526997382707282975572876575380118387963952299312569754435237688032029389563340924410430419608369192103693265381046521003816029117548729712131755266641582065747131855108455692724115659183580196112932683135332134852990286751849538028471950178528846292169663608085980316300448110000644581469315183096967250880334361948328875879459901622653382668424415111075831715177765775909990267653175308679826223642055861501956105543618926646855751616186411839481735946828973882850450070503025078221330860758851679379449716096247492856354264453839738613914663056657327086539372504238055052649691944497037856859179639810074912096033080250029606072567949955775134151315287376035293417565747832838934615853616949262208540189356023275712704816692353591765510915470722524485081314012006407586204547478789527231265630320492488583615961709347447962577529932257197156814457104716023456484227206214176033914248797863119159884602487221836129863329839232571750940841585826999723668843632207468460688468910545427844181857068050004470338345008492359003396851485501438085707840642766616000511636524757434961818174854907562143982493155469355246162480163478259862824030735806336764566991734200408724457437498544653014775295158433735697411666582809323406197432712426398715488064780949021304584940851954681905932911657433898276953863475420367202682949874704622389827478782423613385316006494296549200688926276135775144174522268436693914963534810592456694912694161850465474966765196964851755433019568173943356707522262257070288157886671901797390437463054472844840489589801980136323739360406694870188439964462591217731703809478364347146624841068636715518631367163462328634089754361486290798359975959308247097952832257482199822794494780935985283066884245533868162294733678758861018177817985107265620413250199361956522041755288257524978279357126479283654106081846710301998354723804007305182194870292372938029311318814696299933715071012061643331498843505309193118373099258616128775679881612397303300848946167709279385879211008290016126030061586961919027929537776882858272824798257305201417061279671313829698088340816727211702730012550375041133851139057146193430454588912050947229173672122409281049525113664557647184476143153563656078619261253406658213382927485671065760382901117718229412216732443741581457997312846041622719185259521515047006141097919251741971570221808535322086038791466009073360725528133460235170772087423980620964294506048845593649265372687316446721808113257840132535131918112853109169982916022462649213948198812898527169676721630550571898000276989979535556196636637546235799851693049962709240371883102147387866146064484879017125231142739031704094995669400481856139300016565631772736624489766374896531785309793889539220865926842002967137986115893290914641932497814571547975231620871003633161893886861813524777211847033490860604171844861320652751533019596730454373623368166488393534808703454788912785244871246634651625959502224539177494173511177594386848437265637182947939285417499284753562128875151519672114517283105370758640375819149460615356957479934958399950257266654309490806265949420325911130392967804760153333754077668300873252362908918807119144031109546783965189762713261143556564130583990927483064008199298286552764822007598910256013303726426157944278407248466989307330350067788897444684140341790478761912843467013611704790625307481356805348693613485431065414627096668467665403420832725780363618094630642729897707252978945217673664820850213506879180895181527511749914011652546011927015154712483963060761327269168914399044779648312260441638334635989780589426697477509943954421491950779856931338218551836392111723865398869283056465537462572464875333817178760811252178340094415250959751316182160004485709241572685366064069133569964491514241855021312634426004346006496791549101872389844995055966503741699905647498943810599613001767301991738549872316615846435185426396462001643967349641306826928791832814846148012002015766884045332381279975411289816757499182619493524904201297453397511184379107617856501106871061729294801925537246844349576946296888210843365930993789949837446447823860790978616335437443663789177075767142457288715217843210286917616400580663902783012264755814027378290097665550975549677952082352615043880117101680146284495743532342271296626303939314006172787896111894591583462298959574335400095814669931944309839342869626416398244819559153347477800300844312376965075179049501259425105689249130787627731665165657775259186023709400095703484741578848688052296265114238266323398621763822804152742580183384720984830201235633810571512252148915715435356396726130441061803126721026947372537509811774416405766366243845474656850675065227755959872283837040055112171867140854571593801197116668375785844963998958975786311892132207802179872049687415037558002845934362442315637845382674402587177803363869109736745590105591637264345853862739040724432878822488355737591880756827466880522381377134635006204962581918743096098121795825967061768985168457162658514233781834582208057611136632992349682312451328556143417280847441297568398687176748263008813605557272677406640179204052641450365152442908533244849243899359590320819349041770769574910997123104092270627645454102680131803824300288916739096301276509812306583545368223581897577461634706443073984734304359878185717152318420212119713620723770297928979702212241630348209184374411018808176525743828826903533486355403071738738654686654078831616570236634642442045087033249177492626705592245058533853434792786721663607859874520796713048875998808570779755927929424149566981383686728268761949072232515425855725448460058398509597403911930677564236512979539763569445672888994437427088180686149227469106857550852849474713831906276240520247654304599940514950262459143331422466617609206494309963743786571550392252077004480646123803027200141411611034836016687971889005142169855389945156161103527715521111166700909238653568460905428989682820949697614294932579095065306919853707861419592986721374179970938760061032074199029958554549638181949700697472642621685942364229794779364480600632157355560881725718572557758721350708602534165861305929861875306408454440610253663951070380650923548204681891897378194368013878425268704410045964731124730615493628791747814002831691327747068639912664285817633320182060225830289161572226270036196243214235090572555776021755791301529379523374370187975768122996899504686579935469458342287476948782964283744184460064834024325599185730753115620622847053319682890503099324493730768503445172205449215663141574058972414246541224042628511458409161511821110508375555075651437319366061282250035645294757882005333180560580314542610038220465966321393980226088116946039189612901088935548736989308799192716990950195280376739212474450651485903445200916512802553891889812493174089435338987169777641001648817538708251611689580420189868751976164554596040412777038597484865695190778981665414729188202467151247537555289061522469853461363469051788271053602632738164394994133461395267052694932521551452748451578738421437429856521626093226084009754565572511858170476334520373249693025861252545252353848891382781783257148669300666970650591666961939715618692858202692689639944023285379940687863684550564917311933847970890355113275895512163164023368352555255426636226170949324974186292414225990351657512652043753527709542625743560062542769100442703098200798287484926557681367826647098044346835664531896042416556449896888150444613450185731277030677986429460562266994810464211835815125273106911347570409567796577549033943684129200288856533499751790488570613935490903492924184073995901343550067687016482471948700818586241316324387826286647404736528633595343323062404523041924463553409159388525077550917017687276402417017217194808680396817514657139623044871454053767047509372931996115409334445626803006262712326195385238365082586291909877990498848389704343412321574738504706041602820818262658434042931021087618552686802807638517735801857077522831233617193103780712137849083774988463663319961128212093145113442641991942400355423499779517654046240474951768912239352339163498215407464206277937686573789607951754689562999936883611510827940216117270364066074578264596507425494494280639299967403513063925633774207917093744406448886762989493067762616447587826241946771640163475994050979103077428892683242531501799809749250150268406515178746408383244062722612011927921666677924543926400754486132779768004417983172051293340888671234418836173095027634760522297538876956928522284646135588683842938416116237652990286214426132959306094345849654689943995371152621107637305438630890034906574846171989392610955728339713334285911237739526616016045237416775200421947334325838435812183598110975953199565676602669626247713838601184691544274143148706296982720152039728507893717679852843972513229135043117707029755741243524482590814841793818799402282136897256574762974748384500765345090715019645701840714799009631826618644052948978695258071252970265187538631235473305726528063891986486016343041370014482641551428094080181557513309362898823863094811151033947613898426055808820920754268951947946370688971347250718850946244294974462755403473950450315849025095336968064123995400125900690350679351927938251314931497782608364049968434003710123019277469249939933601101795821227416664442173521573771775002484004606549009072309715632583141998325607804780489216615953262846796755254321343474931345777937423172896849396328932665348542695370443071356499734154299437860925359970223717120050230153801448606254923888997424735210781464697244064457829034371760589434706400383715911763264022052816668749071018610180178972411580084170123882226770122773920079906223405114140726957898610848070317704683863788070481761168655209431405911972880756361329320053755079270198183539962952472058501711406177755161552544269692207968425813620523103726412049301075816994021651444767541354121168408819969084163017232875922955101005351173239687489238429658975562990358190156975225096074418731434637199835187583306652493685472804585909733636981737843297506268766003497222165195383895333968829725992487612176419380577522656530235067927020254311612344083856950280381549201613878547334897035492564693653826836044833290348073786698963889992576149493497732189398964127148675548236474463129992868917175146418886109920792442919103470967721483788706364394470048814266872641507884304391453359211465509495184722914250459583596546946970819893348907592612463310200999995830075144103458262653460792966723906456626614403112610066628867093023349355234348994327939985161654522567283104834295049059842240104166300689732812875088307284204563252811438747017551832023938566750235651208166659864849911498493200346187197716593959362254975858606312961897565155880110150610423614709380052374736601501064555337548646108002072298478952521137865024448342568620398298161564469116271778356658498645465914640947788871290124503008531171938634077747063597984050704207040122940014020298678749862597271278924477291097960249828166097207335504018988033989350800175690103887411178717278223239362250178584938148810652470071787986231093625194323616268927307104106815681956937681755643036267396380415333151705109968827126271237168305705033825564279836204333707857733776073878534987607044014499956310915677255542309881957126754704102365927897336876704098602940117184136890389531922118323045721580089842072765020003958121206886532661372815959278364023011939515243842330666777101758067599603499286114242814238976137156605356500135995983925396506081729760579874142509617028452768914021752399658329196744438350259826690819804752365669679885756265081466785623126622900774767048309892893281406853563241607677699075311488249778200349801198286266496928183426703423580043675759868177581996531424277016353819267235464075398841565159680260697525252889503463689047644881051376682511029972479648893291836764597834265757601629270053497907726872887476017651824296037447226593325075757201453682175807847493241170671441575336207122088642348210499273766918192488850278850300815031551728209244643083602478090064505262261062087073534572914204973553468618005577670760107527991145516235652351803179245270358270541927254707103310952832084446329499285381927544664991001768560989496921563557037186306831803759786751298758193191164470458045787886296883263016970615444724925625230234102882160016455514468278857165036870468497848899597419999946925970703383170968388797118627933340266085550613058716646816936936638549254395269761378390203034003257221961491580553271071875863903445298880598005425139563317192729529296155866005270127617849959899155380577146768483065486697739130852677191761165183278808307788185776406920502742237595868380336681187431996629508751815054887388026533857146632683296221881143019940495609500661376518308554130277748993556934671372946367795090141682051481697338851960494278856697131805233789751557471351660975447682109770963656444859369718984991268207784555110235335916922881135591528425481631904561646421312340092875696447299696143789794890122248996845261428678344881560690219690659200538492431542611295184878741467912255442875243285122412096579261685463601286769939600001716720912277655299863077752190806843381827538730954428644925187013373038110553467315440807052576657888908355001861660668353098420197386060949621109211036369542736615954952023402681221369288009005285623887199302011692214015366404587256351497806213195157592312379416553245893529126382647482975832169080269564205605149755893496257854137916818236074980462331926878707834554267576556666910750126632294905427695472540808023772341192302872028464600372179573269827389302115119305598821361353138491076552353981217540813692157493301664146627531618530328694642815448212151161011937855333301710269957488999056459941227628823526049148880301856252204205611624031542280950785248414273268140661597306677568148935717140848910970100870861857702637947993239437026214945594461108879966070856651955874380554661897403846201003763051138364580589181410061408832206975635845735956075645821647027063551474087951063500395099153490412315203007102358103084538294378899311649098898437857856874114987286751434080722272968743028518443513469508495955713000276605695875179244280211999365709985488147985551176482201334958784167593806752277412185787174999252999640112673284418613584284499350886935624726762409848536896550971805104874372863429891489742322562667662230568002863437339104526865460365592690755914152392625154295919430502451150057671961902454365216275173762251101344429008502117674247383302150154055576863200236199118069116460675697832537658039578448220425410598326302835411697799523520515980721651613114015948233333437020352868056724857359095966553687846329272899768763994337791815405755508458430183059882928743653882163340379359884766220742576866921924396732375450375353999461900272420321661332499550850623210688616478943131891232985104969826059783140192251035136247228017477473676263273887389909196757901367530712298919441199276787554431020407913585936269337922785793439624219587573488337381250143182753001876235917635051661546216906678825251167354841343471929013704450443768241816337628434924500816681317561003241211346047449619758312522446488812503510409620934041001647199088270283675849171709664026666615009653876475233661801250711981443603855058994492911803022132274485597989611164335033425342521018569787180713526192807852265287646681436996808430588705072978502945348604614036837752547521043724919981085379477332945987508852983929610829838401142317357111034786948859970086094917666360664586251245240758041648252084433737168045149124819562731699257564738977577638067602283793191758048980121174634034549829182586704109774268699964516457211265179638735362096720624457567656353870501991891583299878213010585535588839786889876568985932849260532812936341002749537662108762001018221541172403103992552178932923535970130683303361323898946998499732140453729541052322308885948746972951245486069363303304553908220169184492381404661586294163210700787442372101259683862050558707597249022832749307613282485993965339475953981039949905522979348140976883187983511135306790101178466699782948575727923067564314656610157531192022413495339087547945595196420389258014784017690153203234088336173748818276579360954282905078898159114891795125508774390360785000393411523616540878111215733191049438781227109266008847536178076089383620751264394099403891907914825980531512288861783196843304912164451944987603792539852692020331228376583956638112888974038301146980173529115357480518065745957900173500103874898976389316570170377398025470481144568317770689624463780852086651734574349211394019721223375693101332927382670250747772014496969462366823103521727760925333257817748819128426853935303640793170930965332125927011619803276477459206648385176886466762876141033915614632575402418555908336915127447835248297884807213536592171705816905957753272782652345767680058480983388831118657672018339430785847069151314290255855795648037081592902632943891528720904342319801912825136613103295701329325055526325810013058424409259495621877967708282684969456327306234468025958931558955312261854459938923016378687983417719058254675610177856152541565397038268142507281497645762454891136779446230936579616724375739732402217982115588286995831566890049868330695377560460958229150323341689722762698644502584235464118978120445222860222661119026885230104495814187243572621643592266474441630972259460408182908830312743657176861464165441583737727555685483427824863179552514180967977703874398309511092803917103085175361894178903259078575670039106039015871025903580902278577569042956770319608399490042744271077839427449416951172151031243448035992088985611182347629909503728633881100345346739864439004465689683987066095411885579125416292217018968721956673057650686283531064123229801699143005541876859813279942661954821119657015729953145006918471997083687641668197660255142340798936030650652054669207172573635207647793598601732247377723725319931140003321876365393343599631168239992090817636383068501144605295952371221699238030013891947520271582717312860381539410806910381439025930801285245355279873383812901922440802533208039025528964130044040656984123734566219995928222192844092781965439642091855387701539428546944387001415803277778972087028112216722135303203952259203186038320421959870027448672357045291842777899280349974528285784013920220785206420898159190760672372494345735246101327380778846527334424764359871666740843527482165720931750908986093123064934646766195144216676817928225892949382113154462098412391915549648935514178469239930913632737694385785852824055137687640134811043884179604371352250105514514687514209968260715595568164415059162030596592730086796894296685104675687093677326635766398309641536610146012521727143270786518217482399969756479331297052491076698694627214976302333639975331986206661918410727285882604705247264807982817497803493120357504728850068977873502160014752150861742141656588175404799755008065742464168070594756765091992938513731913412041180679204609966665217058647039694223299518107408324434716160424364296252722445914374455125684719495168772931588261006831167544745251987204049733612729213231833671453746697037929180294647224293095631835973758443391995973075203027600899115498116231494355401158303901883814337648146171330612642551030163480891663505359394823767680178786565684036711892090674622657604544790615262355968837745133593693330611106386545340652641437000537210684044977089695660109389499631825323109676759962151246321424201938497140510932905570055941437290390627895983261100467950695685502415561092921562678582937734156169276252073318059708484837065720808695983866997169344384478993161723329671914497717435868491752625334187311319859896416222350563361226570301656689901045148343447864821788217367842953498757890897930449825935098042915489655158348949321768007031810823752785131563654195247085350158486832149433409334160108252632159214959583399591920988974126999905162689275750621905866071664325840086627616840731028573676142449000719729137626797079868597079413984644400174597146906031088983141713426006174528823312059136004170611678417322122330396823258173138873045148531269809120624676728418965040549648932081461077146699535288639496472747649396003868240930194364544762966063395332842805546935785537598169909747774589380807977494671360754163521762614629899951094966861585085397353614172609443211040551869798909131156670488039576822140553755896468391889499349675878554313892857956896509863446949190064690430959841906516496218891710657823402184072444997476685700122725142690094020215650017035771688286263084475148147617301666681352801849607034899075999735588999575490814334802523210274674062200419238790679107820356696730105229759456070764610087716735217678213445616098257122233514052584025998654970431285415065940660735234437914714824583917503503326055663450748609494176408830633498324980643281958814106809106491061753829638255628736906214805252402237987896239789326173957768743669269764813956901944368184915277518499314235319422177502201101448666101781000190271815035686242859428626248195319560664014107201218184366798524513310827844825730458797013697238073009133758612951191694254656290781501067495698991517819649079586522857319046377977453514337141163155100512883406787936845235044400475123111028823379381097153000550956990127490992172061554897754677918431916760792491053592539014219979144169248645375625883625992154283297012191180796137108070896726163835222411482029469638439040205071671516406898847146790112157695194334657241931738139300490542447837954509486533893993461338137628218117742778399068505423102200763730578894095825541565785659432843921530451764442687960691507845753511253940536972736107049781590807039605031288286488656916507791075220447572079446417503323269426844576312458554377568863453566957046011865540705671582831046103139854595231944819698112904857798322678228267502211091148853793284799277042720886439621688024384395617090321226622176808677119614439083240761529531154339564087539451047447984753224422475645586142943733177741829936348510524359073142319017279661286467739736320985926146976351784725711089117430413475772522686544561109956512926214699294521893583452944127352987436352042506853217079701281750724741415430736586092210959047173527559799051667015560062601449429604079168599228325512361090495519467594390595306053763399398166627075938428214905214155531648612341668092273484226481854959240032993836192451581330581438629005079806889653711525517317351907100566917092748213938183908534569117574540435269897361482166469683000705785721657634555121986353662303145241970909528477715049732686787919288849791138669816729888692970614055248820355018411119433581037103051986593884218467947797443758037361827117207672388132952556974792104103708352303563090157014684830335418327466863593043370713103561130896025050399915993671883715638725984700533582830123965957366276445079418761996874393969272681918013150065071646669897342396089460630313028864175300279817821767212875985559707937291355436182203199562334402398855859750629759200704338984403306709458852740965068546463714931652828005460668441582862316744159990955872779569900228632265493053640241054795548722960256200277385535307474661986026134095854791417680617032475627672079846834807064533558450658989363501128051714560259029921337761233093470813596740557278000024029127523631529292055502806393218623046197453611869071656030761024516944244658690480223722071710641852213833712132891150669159474341129277211162146541449537722130238482617268762306328399122387511892808166858076491873908402679833597766314763218134956274621876042778604525509800725335138777565940481752958634761023116859567759276632969678173068631587771174109532717036050845654652588303198294211529217952621524039211939460737947471767624447617842947679421153598064097723457139689805755876463106885519974345417078478618671166616316804164611689010628973669458331397464740578880314386049044944996235349594794677284065521136596238304077316248751797637774990302697396900747837136776756825726479502078978833044671147528171051532485408357586404856099425257806337054161370157302726191656705858073174817038301481421830751536189373371871347732932415068264438568444360233663992588566375094207614334003958041580680249775101772749460033812054146834004942250988582662342491799970110819798905013172891442372214431005082811910035477359375757654355557835748926430392137752564734883878917698740830185323513438876593129939921724887016333993776473801741406208673272985385941623982031089744787128032187706505762862973385645912622545191395481776812680090749313197230571638005879603979474598137476477139951307189690225044455669471622686405952943969863231151816302367858323919430211922431762538198885154339205029422324191276408942501996381507819722985955860277283433522771265765411649967688991676606724496639140260866638079218455209725181412417704383658034865916330096031581105748482425620480818015048462754818691241996650834580502640220247312852497969930991179290807383570296272635207923997841290289238254599248532164457896439342558812446846052722263080773082864414595226025092779126102193802989199612447969188857729463178967861128596247412409253164331962599497153062778874395195150233105114614192549909429354638374073226935823726353459567370677909754965580724255079727787624384898404450908583950555791680207865047893672966954261464708599392481147213905756717997402128581853467936632971138703401151888905380733549843544295697664046370119452830479979756937437448224963028170710457453635783228807108503191068254256634074281303070872086318295832181214798788150028149382780345679563520232172590372640355221359835117290965444429357915325567193878782851893276408200765093866784691158478500243284367936332477906816256376646348791317091215138118992372472296299792999125198769518184304192225698141657071218924676833082957551339424344872641242475328295575801173913185184578264226012970924102120344135353956265411597640270843336493968834638574953180604692735173625337804531368777400707515808004435125951214344315440641013920296506767828238786639448862931037415237207123489430016023333156456724076543305644418763363742010933705362938383178835968439955969241936721425597975595704284105838676956783717894956572219361195273870178178823302804105755475707281316636977736423734851974469561767037423114616027576372795045009291166494104647092277236887716094711813812688474062072153271408234347752063331822550521249651168193135301660534584131096896509524551834665446985829799803697322031297822437854866985722510448178029857720383932110334809694008801769229729242965826252079116931379857821174009752599778050873146955138545703881187714650764911311219736000362348475534569926752830917004904779202151981540665659460757120735275254549834723831654587326247472076800114516392750024585544075348409828483907984712126815434139875770372779996886639390561004718906418355942320538409196115346352784775937482705640002092830889189416453899108219863611158910115614111896000073057698107144726263671299671466351628776357363115883820017486226695056644846338983038378601285550565193434502441745928203401890614427661969131633324021919184963359890395018956109674913438922841917214855429230612616277290055724865117382993791190376443252870281571805281448313341327130325257932376987885247320366292783688223993076559685692964973656394018797026359048064716191696867306411257089710538223160852006283511833777398274744999693854510473807619581733447532724879774599538872677356028867017564866224767917191075521254174000461492205336444786370452146969503264650401092357741857191994846633660277497295940857660291789874193878671579880187422785449998809032004273545505866826278309931176877852880984529083501462596330310772488487831039430334366635593791091897348486555356336047265006013300618070991929820701751053023941857654685502183820524358134511487204524984237799819008877281246285539387801266522739549833047681962033610424409137012150191647818912992806831073630161313929297157061452208216859161334536166614693265478735676875203149275157630287437130400757293398477756834385138515865089871440633475718894429807958698698618092887523849982868235142829237885421136127097918554233559523481329688258645230390926853569470857948368754445936528539893120326596622515529818419255753708159670841296849415841274848429417705401757522746278622254670290716631677193693154178597810025774926159959431675930939582690609475795512894820269159205397494983893928792436915471541853863041054632959673485094810419202712866902399630806378819485834556397753467273643583551698555398265807641802407695249016600802669593525254733010690467866225301085837487552783267549707777853749590718976422185665859923414987457884130968306206995163857415494184156823350995145979214934543992093650074475349237642758199100523176987556529386079607795240365323584448440661511251200677573587777760189268951610946556511635721085841667393567226510447350730804165272404051636015248204250824865056731444410815424528853300115316899388551907860936598440982182511925383244388159162114490158868459299086300812364222301739669307594398823603669625843538186411898562422267424031544112571489349182736822908523166904841520506239044186504101564986446935455526221119328243563197509091549032715583662184681828550261843000593591854059393306202769997536324215836328271525009792618698191253175236910221918374803797116200711342435178798569608353431714077103354417606660024624480031069350071677514746578449889714454227466839691857923462311007295187960240171905478002729992830205160288130793725535833307998595541053868856608074478260709318205566709001627417341777466922330684447194964936264899991762429746915844342132972125359169377739763546748962249315728215983965359468195123564512504363673800000824346823195953194036161209319709372276728202110808538179749800292202836965170995544761100516782587383581267929799325465519482050466688269340991563101940170746963917739477921329911521167805179301463678560752491568703696150527042291490867657714186473736412227213565263983660201414079242302018033959850337604334972391531578317213592505155112881488421935515842114060158757588943848738038813183532242886768121343842520335233541480769123324530605471934835599815859899971641379794523239410530489038343763813319160113907495669743365044328624326087525003444191523494100734885790598544721257340911649675738337371543675636387390927795620463445039524062857779283049254246782596705224598186323688647877238174157474484890080389709176468672675565288375513741296108674437698511365618548683572618996086792374198798390962074717153838403373160105658711875081070370905953890009115710258306584576707673690964908019557863216606928687542571713040384958859192297485795930508685802876846626966776028048762916923112877964602125101262037452721970008761496794135933558863976490691798994753610213826139676419813568364891830840890100447471216477936988398693362730663543801746886166727791963350138935274741724230007656820061253571483979960512103677353375704575222384024714374142584162103751487727665024777931871208931058894862970421874648574342336343273145197921422761208518568685233463636655714978023448105950947631760986159634963501580320557459546887776518448182196901195380981356160515207684569527675166134187697746157340639057004015393574275313675078304037917014825404836522202670237845356416107146095704052705447967671522638467539814946894684710223188767260150416748545530655749550154764389979099381940268724277624216052203646914695997429407322377640818042065488323904130910064971806078778228420731270710989363766140651349390822988485438613780980731927483587261749624606853840604513875116515968109769544717119225618180443751492408329525011346932805977761619272275818677685320446962078552386488799563382281136717821895654391278779058807731822033189156913122672470086236833800681461740867570331383403545586037416962000894761172876791391261050244464802932437361984698998482446384507273286487153430129970718295476700419903346970287671394810248360742213100004793150972124697189624823679103339015799692435193140929383436968240547870723068309523990510113762003658503897314048459553309726861494384236449282065077572183046900735584129405543474871541856684624637983728755405047038303124244056155246595231848804917346803910918063501669052008488912159714005038926598132903212116241071225622169178729782391111315908358481021325090793523480082817017088348448368700436732967331397435298041543328184961252665928557337603655778187434750377362345461528194090748240370020510886701453236681277416687508423559844462503446529662121536823151217859573808144121629973363223118940118085569395914608990772966005367348789507305646551348547745392994800573524109491252988264537599502431454399386212211204579704464536594412667406297006617002403263594347155739221001258950358631617924425177880825592906486101020135191767343088455824141719641383103763275465229107677903223518084171027898422726911216153806745251435074489062379947150884895993563784083004508606350402714513121575889130866290462226926271087635454405827620777550552981644801230116174642803560340426419108041448638747268902785641326514454400989898750908381172503720922231317758531392302884511818069096206488907256315205527490291541973351046757775549695701858371348110728505469255975638635988444858812638323468805362437259459682534210190733331016416887664402301720309754971937475693880445642825006243943750797336997871536631036436490059333858600752646514069805927107878280653570770148592848747392465370487050351778833988739373998673094783038366238022717792823439293689170166278981527800706125937786641442420939247049846695962543563685135215466751306799928760025269658507089737582050430031576110813679264477773692874902409151713495595333115382842562240514074642254848006456691531209427953840605168491773343777730971900591145269053336971562890379166321777921136028278218878196706831115648546098384417152998754468099441377192729378500158332297205652171580528999486051977824646359463021706039142776891148656550381971310522182363289355997271003592558064698993495747415754695007181383551160702182305845456604067229632918375063981417943214896482147122587177268774921982032662498808951978663870233101121590782580121770319560004683180701110655863614178792233923880520137242384145802906102522065179978948632487941306535417094581652939143402397089460693227577595741726227406234917417293274976645394255837557077913545583013909086881921617153302668234623407122336466223470064306144687577178764159645632308944393995536154897858266366581348406810418625987231757256467479470900867302310165892239935319609122709473316020112536506229628728113367873554961638816048037813678684592072545272816882122967043166527525819650121496237148221423965067249001477057537958398916397013078709352373572764418330968325795000894237605321440737718655547347183906947958089954676240799633289819532090652114248036819992365281015478225718687528363753775538394692598886263435964365975027454517238172247674976169589660082857315726050711872442510646348435069367177508421442375571398651905738541929018040760124294054571718324901941586809533075490321976673927146638385593199756880786412873930355556269645021029204867300903366229005131988665726026903916131817612126443101527661294800669587352169061002806945467962534127803281707037103957209495215196159094913784654775905390644378094923935603410348465644039712238425541829343688903994048174010998898309025790976980996778602482406674881666565545551550157810785189182968122674037018210513635810062340427256499009367229936609683120111244237664511678798210945763445841330216825780921309067724928113904698963298348005376195452633637360699848607131167571578217559307130015346929596345247794621203794054413747693640583467761294292742550025552891451385510990710271211043872628030353482564347008187346717855092519604204850279227925086013703910024590785357371331303026438763369701726449236316591471211927392183494910710189004079587023689003871241442309409101376282035888540554665497727725645445632057292556052536655528072266101890221468243140340527807531644163627538970243759633733531230258250599866219123837184286534219588972903045243860946474105769251751777104031339424194363044335142623619389796932784108616314269505710112101436539407028475751056318257342809293628485574038688565509736141475910725150651251812163784927143904313745294967454816002338539805432421111655891813383210105701185638487235438649622168987994853573857860092380871400470235644043323208836297653804803106435744819817436440668111872546292180559974130956728496816030453827658448265593090704595553899423331291137376067485942054392238096284299009857086075285665180287592595731074719223225580419325785621413202878513606976247081434918954798465439646031657880326488310797134770707609661618403846892856644091658259152252791890376317130641180926325861703293430324716106181086373365569383525632109810526480206275957250704208015955786094079696671769635584236185860827629959882704161347366552686746031150954728941937400143609152087887037478626346104202507882811908793935263880641590709070931435642963049685968032023347209149377544867196524404807615266664365497975409288930986814626072747453210723929082514248866058642841357090443967977283986030371501556796894348068767547181585550288468904899490541182912160538126304723958127015130796251573297484060060846236025233813252702596361693503665281956340982546333251756734727071746637187194177396804262416557029848528524720934438723157603603087685833229999383912786468862072534812398066929234495081876418279835984064998778635230498570595448018205856086860709767043777808932485213656983080741048420651688958826173116367614251846827169561661623157917941651002593747950593991286546479053564670907549609288591741728599740735569680041529704133641606450546122135334273047124350840914011655011730560667840897109275804370959207655991911358595343407117901137188450630780436377836737288690014393569307185800828649055853787099718294101112269904891609730268203831531631211338158680163216211764585689713727253623841194879533943078272906472188782454839928231955931930989345729164994183645916754803084519225259945505556798093428775174265638969300992005991831431467882404268412015534651369257334814196624683213855656451772471011603657225600944548371330320501771033897097448597932502417978508036287815511151431694596559763774756154045909015046073129414966471457967643148257476801868770742691277499989392466689109266596362154319116738320290345855945919631193545246600371463007622158431689570788522521738657134185446139562288607988889414502582887314030890367216128213151387315615071937821088264407965980434830728029812885280948937548460301230938799381774119700531778182957584971525519291899120349333194110187870282241718360861928863488634180643694091498646144109229768136282624899784223841846068429199593415370894224177559728296426929482208894862875565230001276280027677079166500887982732363864491105798560866319624731007227357863604535126534361981687636745533393184137992382953436938078005893800395837656054486130739819487062252582975972809343988324951860212284319995426726738284901069600766383272304348373828395847621510925123876769568903018362960522910612446182978898512611118003883988052296232845675450523476502504547912638298726438409725282260063781997309634682657882979924094991204421933586321350389638793778549401613246260287466872324853066116358263402730060361010005266221992909638571405739593425177443475544323332631267474580768430540300854350037933854865879616137906904629936338552258077957712563785459015370947379575049269202902145999100105080824736261436247305517640530318718274366547105959148705035593625120733822739237045630874649931851306289103665449893107114420693907792904587211606417408211095516517482842008011247574713687250345972303462107203863253733540554680559715435193194390386170426122342598633838509658550694505682873056883397553575678237898041811196886164310431273108560328116520131446743794151383563231416255460999153434894250796593626908060155127002912871350479085436869558264950491771173949273493869961928888538895697734812888641139539892851019958468599923805165740208685432128816066017292530807934878977246142287234503476461600601202075277381993009381439518064624991476158375658331634678428415305993337395227676936212848083576724931119112132888147601336053527778037589065607676226095249076342154543116050178754680871397491348553555581531780622085565625214896189051514915813452998841597845183645082155419314562323325738372833226302252759549165829880089750874059242304751711986281302088423658676561985457584909306675328601280351910205156861553860656436231976840982317485160396658065878522720787943094431912198850121258873318940654282075793756623422932293457453950185187903107763377212181791833946812844501266644999427102159694687744534756825517019027756564371543276337633894179264114820245820476533906230209445789720001674093352089339545986793028666945394473822768339887678627383078396046331240471641604926593641773403958778879488648069991607209780819803427356561836679006885062422076425102091697959876562476995354695368362935584760602693576842972250548772201332740862539975043870214723966906172045859807753572134355525224909269456154809082821766109887270325885859254124081472759546285324887905076718905503769751527171655136090678282512329289536765305074826473226521378763846591918231462751529392226987207969509798518340002250225847480949000108435169858097445423707440029856028126269579949261948479886886272356073272567119406181739466545220196643369943035845204163390281083015235175170904525547246479139145291027668712651310521570809738730433130721544108354437411245176972458951721282641250635193139112081447092606677900674880890052626959627160549555248343682027440599617105868857339109329013878968851380043464259866257354063485890276480683701458845470040178489036948040689308823654083791998483278574555360983839452488798827469837067054034428196749740278026879201070027838640155467638104680829810748694606107306422770749883103797193408631514135198633635892830725242210679647363542742359712791388297345329638051342031000877564940909865513117279342461118664518728219954071735560132578467166797910853348029339368109510605240237487001992332675917435548905051063353060725460058908617125205554810689276259184517545138063434284049892721899804100038711362930546977653427844391016642037426384645149696267511553081104443072120087527282867306380632546798399006407818294536337521004107245689722663896658286588271794524314079951738028214505440479905842153484431720474723996882206165755392076928842851814370859579369803488593784096165474421277440873916854758532333550093914810894040376422608706939769638428240314535856218849229930844284210428535819743465862258604668323348583698863115940774148279717850772812356469320570164546768501210855534167259862613041777492325806032238307055215167040166591957204800946828070903507019000237814265465234962007413026227740395383550736085935337583413883524757534492221156093375642386002408395396216275717455011581111903047835392735119179785866110029672942245715212259252336475047850028478612221168560417630049943814422131553027805355637257132802077204668990401006913057873574751798157994995386407563853673050139838157912010011932467005022369330794777998481870927228037355758365713652658068092229872409942204609245265828837183004026747151761891600585121639995658780928351760764761285577664163175531300005399444768156703024126426798448781540896075045252490954379756143868360278737676121627394878169741225768079354987267134836367740477723821114426112316590410284401022699574040106659299120360745241312983186976374174174786641169566384651981123502944542719342865020101746133884970122856842861580603320136783561708884095395874186225497302485755606463079281841027681550298940720813192242967618328826964941815821240074322653225416556486855334432493517412637989743143667281336689128884455572463508839979968070067361066788542030974408173939943386416684997652052214783158809078612904814758201570776734527501976458624520906006102897835651275315706400892900649830530204111203895905111302897005773528538000519041257935070023095340870237731041809547418284587116626019363557773811420078258364155074828125379618302017256530252886385041558922743256507090412591400228407665244008804536794236063759986337404859526932092001731401617047710851569212951051147535652962419803420917482949241826170385011961004516795433559577357268440093857990571666410904123517623555566901298232142386548902048530517520670584710378291597621042826487190611952435956013349633071054392568594226330301749838130553080442614048495966495769554892430173756217260907272187595198000034577542801545557844085885353706844112035464816815566941777743060582380791133990725849270100066112815100506246114562366553013442529337672116363896201001757794486160101142232799209674134509275071898145749691852340416977535761548992899737741020361076718367100612966704683467366822422075724245459860589736725167407694563551017956804036441084798182153826108386581671260039245338220096335699010707019931298277733843575249283334551698847250734957212980268779978880605492413947352893698614766730184540425731350039870478876287075291483716805968069243161392940792748145456752888927697890855502031045893975715702192067821748640623475343578271442902277405967763403841893160325764392231312836827720752655148568335849756674712185516312396188235838242695758074627825472502089596553461855049836376824888200688898215648376133845555195034562883750155491847684941919838484233429349119849785471462529914490752301610752927473716404897823965369102333551279316152580059184996439121343535717782822621628116749961650038661625055284042126712545657318700113266314217094512754104895388648357764905574930589725104023114964836358041945174194241428664933136864279520373988094053388131671183371193268830935438617252642848070571936279638050776288670000770618339801629157791465784399356870230700758176701643161196665664747811523717167474015498448996432571723851592221466902830747993485991630448675999490297260552080008584232092005155600171694002808742359656482619311991559068595558033797800468765130561176704396592874988677587659565081019291103501137012888005103284389138824276228525412226213633177524942756964784572896021219901006544260873946453240060232350527226513227024999282474744186050703555909615611752785202960281409088574729172426127904032038963270307322351493928316837828434647437061873740298561974662104762222806156375391978425136930504771008313575920421936730493149590654978134629909565697123667180783665022382884541469063016776228074602167705051457774418746693094516843914943525930333022411570123217352012942752387752680110615509465005423219268321889178394517670228130591278722127998795863522078811408059118904316001186125059140084135740913583321393683710409211035374954715005416934925957724269957509140481946269836215430578008610101887582457048924482465294997912075070199395140549284815289549178973834069988545996403642922578343164878496580326987718918126959636851702692379616542434405482242799435836868880566441857006809742873538615972357307095328113862382719068577705249351136576352162140820052709778789855395247529071301172874794356277879199662300228693173060443799817487316909467001576673815100434525213193540783949303789611092073404311148351818501610206949560287590543036780749423649154565475982249561444691580998157379061009979459463727086388697876695992069349824877209258422053700406650569410317045274840599665654916254358649300640274318922214211725372537681272415026735972961233097359003426220552327098565454841623039742274123132377714632421544583917807798002310498301008398441912023966807445224155337307145086648790673336689580917729538136895927496336502985576085380291260878366985796116692681440269795071516041266909684064664356816527401274964986518111629131963640382784680208829224279804887555171195354162685309378129073139045930830620277122102818104242669208940483839458873211281571957085138203689735134478189291932322921397097200321490405728267560182282761926961731966063711626335057056143140766040226133806699716224032797000110412479643529785119120679227177644196237795961958639927173515553851464486230030885891270535466997973807147063713753530607821181654893425490872943530896135186891599977521393446894539642422919890731274536334350941013053482011659231982865360724314639256981762558646570515160238685001076521902954809048984757995576942550121076202529685947471988341031619468312707999466928172158286291542799689470731610546142256311829676602973940076060865096135031539301845714697148518041365745935035037388146512334028757145065662796307975647866382993961543340939657747976505074510470399694522663925413572111284684557852672307534960691780014182212673669071946113127383457460434882440785346815164967418286988984842713955778040685180533165865905176075314561798562793384264448394754049236595668809468722390465276602709726940340812316054440228370786999857157601795501791441150634730651749815778928315376000305566045447212867524010920552172484923027383812138442998619348668640379671949578377964772101635330263853541167188260951484264565161404696867504264230079727723666522045857654174716923417768410009317674982924624074518883696550713173356552299928851731689854481988629226607779063603609840341361614207346767019786498918698589556636600354523863991053856112413708543058419766447449027478885727217974780592855425808507698586694362148274878241066397497884625941742846729953950156085118364916367409810966196207284455155587857741027056522357319409699516157515468946184593837287845849930044533480341401412987813799457049917865102364369503844191843160956619382009988159807947211116394957260950596569350260671187566902859267098248414351055912528520905661467611258454142855756692792538388356225103781202207551969000424371987479353832952191294026161341981461757221747738660302516948130020800503826405686243461833861837797221779186472990942090419734517393208929395842741277166507555105124096555662773302075513361640841037445771948247735380323931932782316405779736031106475035169211195458504090652019603904616111481859275527606510969710266868212410270872268290302867927139365895542009019374532844416076580151203467195402989347238158656395574975072707348251581513319319826336855182144882373123730464138929452888373219293484492559117206942385446166190602828451889148067277126168120328275637799687821810174969699195598616047361053558966512183660436775123399610099378329500074838952257958152458748267283961304148837341499864044638294432055844724915613778402632740375245634213015015638998616306500190180450755434066810570838293524636369370662021020330082254186173971529182258021277949341721419618636596291558766079920325939469314244518731604331167577933245791812763291910050024311936352001732258851292008475938608943305061163290764203270172344364974488772213695379544812094742037535704094647702243142688270566843580690780438749246309161686572044661824928515602318775917015273291573878589641712471679584319698490401300880697595425458249494693775305187248149129730988811837344554697190911170510216666705671006327351022112113030648193374250323870162219350493606870283290847312596050212028620061045670043082836177679912219538475304919482487883990373161104180240979990788573564295717678438491576202304606318180124163553687861982184370259327247653487036869118548461453013704191514941806119022848705508337121059554650625538885143111646650802970327986964790279901001787945630345608808128358705862960626671746346947564519357798450260016791720664591275092195913460422006283742054890695120056841891590601475137348435825668228026452478910373155060282308845077858595107375763314746392530070256445789029137439113147415010650593376658067434420470883764762063049942170315656215048801508652064934803398976042975245720864393009334644760582266305531596252095121933318928439616460324238941854276161312415671781247159473863360465810217670441201031382774596276342578420798883092374921327594757189610957513419916027889106429820794757418619185056132409864737538902299231784629861970053510163930267265772044929475942730865127689772526363621342434382582503332010703897769647213601245240667100007236822956056803879733524254864085868622654494271491903193950021167065352293397640031342690369514273624018037613526570171665175238682674889543290943942951315500522436983968796035359936007080550369343998807725466716635913263492775693709584426303955590401719099554653886897161029607555479346519188117721713566410764023992838225311036391477546151514524054173491384255182798701909793972888068544775089146129644636733696836531810112458274102882859369912063218816488838864295076926340581797671489446220435231792217929284034170770713941595230243931293241811752160682086298694808940069812578955213146419307446109105620601740829957777272010086713724403772887252698940040736833457958547018744794234348538261403855678170984464230843089505598678123818275353576939788171728867089781912484420262953353601211337075214929268585372680079111297780300051819039483748452783000422297988605593957177354930799303674446543874518043283040812083980454920444347327080993273350882614300959898015655539276246113025613453868800419203857839867509052856002545247486668177789355920609558869247010503762986142082005879467811942158119863628915134416162948368568448688787058005132024246577652722414737075046113200770059895888479155789293166981874478093856230017986359488730049407123958466816315614083402995342663533127140044389481059148357362848563519981442920128343561503997042042680097034184791486177538537191143790117657503631330775053801144347264994849409124986223175834712950274916178715839561595630122496445550138635921609803348526214698628178826868706873758203052127566008182243511238643800066542212553596063303076764328138372954080280778207444776184372207255049008303183249819653966439445329718689882115085873865394696799943018694784629540413456486990677921629015701150370436736972094300551841065433630617453499512584270580978925376430061254038218822410952483042724728587434595079899666871072098670566100670076563152863258079492767630520249433310502544922355332953591957661199893223016579723394567412440464445536604571056545930046947933269843508077574336798475048097534464489348693375825159734110489778965514365003750999563307643261302831821384654236564684738534889121061573435378387043025201816700016296871232485058701922228748759693029114250995629299669388160532841370579717145149484224626153570674086644851895120433705491265437744015171041587214305811199848346718876129773606121084078436954331748480969580478907457772921841062992076657386323328503756218118685361294438517614214846678942704881254787228874066319806793349029543106938037751392534930486828360990378311801579243396383360503275569682666849242737073635265474476090597638839199389180860417627360410866339939424844140312115561807539341821638801166201285560663828504287002666829727621166850844840976852023648771580530008935400280459824485838692664572068871949858835852138795613537122670988264324502890274268441445889813812857597587659383069374872490475920750823050870529525904873850308445358414107909751566215491162076875307490172606203564933931392739692776288964452130042610149593585957569071744265738459136021793322953043887728648151535165948365606586400736333328415481476060156927061428771712626486269515776642806669976851282228723996083017256522343436945738780173913437249163709490842173061269403828616676654360541153040337393955619419238896046901361543284984980608552664658667913414045190071972724021589105688170575289671502378759297104333621630446479792068320150438652250335163737605293448582058773089743719990709135434727619774042823945552463261031083417969908996136716998240434215249479742292460643633420704701295959167013354858317408001617618484880526784225630429797942161366417818389519030879572528443691125287429222443167852995198550604764759451754965111305288406116479485059129273351691160558558898630784969931686406086749943431717046628769984531481141499185035749825624227139489082241331186312429351611220899507894946438489986035215559741459606169915161693443459340352994397575571837113704320421559988404523528735337249535035697789476860352748573972347884490861242147333021494810841158969187884990229084380000362552209560411671568681616643549539895237110916514480544456017726706143799494876546974466790946585427779452523314374184648001725348089502690301656589668013073825666296612011898723503049294991417161199646409772683421518708189693488565840777335048746103676696050651118957766989885647696548551298000716954684031058728244158797816967004972797471862034336901675274031448185204100974810533112363322342708293923730299895683578071505041473185708545069144455145411859614753926316622741160332605355504409338012213691497096129019823714202834554389903196999881234952683678504625887137846732985780947834628981663677707418094865603539780008367863935663800323430760005728782451858974459588881070888381343275953267075846057175885666104354231199946225793571677720712646848406448428900572437998596965966491582309821265547196651619465150100832596173211106020602188468231212004461307966096499768827385393878059143572228812921881058926451654373290670412810807213289164809947330983874633303237393503667839128452410389562184813905354481002658123670403239064132289280017232081343805816840843051884476615061413075155737791097510280527054276912617369436736684477797142445377953083749896735369466433207857006797570286116307944123462649339137821024235618456363902792944534174089367354604875709313047972526628782709533129145172668192583559105800995814427082948067424850190449745574928040778707763082084279032751587511048833092421977222530136567804329656659368119059257389826880285013228080036291282528095819417217824303881135050446350702313329713427825622179829339115358462025109091930680895101822998710383702442287268844005846723806518527424227826471578533881246647653235725906109769190896236476438206223306248047506326532989622904971216200286992893189265481567356141627423125096547792461900245179592030131990174388205106880219825082395540784577963256436618915969411780710141850030874798790871909784567025612629548763163778899540588387365009608859924432279315281122432008885645396789134428047792884065833873287719675439891702929536265273208747138534311135364383239392303001325147736379297280903827222938625485777091437816844261382645964178510295228485441055911791904333419873694166117822474983729275170722917560053113121991321969763961902059363430021294470500916869373077686977788209507626536120435143453067391296746429053269911334640895725072853816262701123559950533426642359577161442111565561714743145888425478135963971409622698338505457102778924012645650118573475927250846522716659977788668428529478312351548983629414415950538383947820445729283304921607029206867667494051360397387945814858158767185709091096877532495913082322543863502418253458513592142813222142899779148995082351521917950370570731318411064238041515559000857881878775621668560408666128004012706071904812133945622052651990883708357751284568449939640844742034962876803869147442605439968153761991755668649398869019068678055353888950792337203467814317686637674722653794233020433901247392770886490290808545994818391899774509072956683522502620991645744691349213214670899540332767642413532839026906959581605420759544360372311080675651936363926424896769521366995175427358809442615319652138155909628311435310363404897908545402567962739533775262646967601595847581884529694877351431106943428749720595148582768777774981346449942338167937106687036249430911663987964659245265251444171871229890958805903707293829813391099599606278386244589839250918331685188058568852884278826012692037487089635866609835902712331937540008133004155575884282831035033391095442539190690296087021102768248690643169036781776042579003150197912192443384406274294079642845030976781865526618486377516164334230949941408268840451734604695726542900783308477260418512066527364136266685416660520454434808211783614089731741840695667184950007755865334153386017391369318592303086149057427346045452984847888856151434505233752228227079793934595102312698367157029376830446164974575983038872352218136730144391462574789928906793940189942528156485726995646149923523404235494223126598182546529912598535509333973116002494912565832707546715587396068698200087911050591177013925025320784625269590086821014848820705536177380943800231663371310610969825492474237822576421731171368849931421247946124119930834662826575445547095031177128781249247782922465160122845400784032891798634905577786657414549978987082120261858881085190965921633887916682563153367675577646802896807518129679765034478204040916457363289110766569239440804234909981436453944329231332451810514841903912137475655367632644660556621627420863550662890465607392253633493439393060958507076614630837876598336864258958191962809414915418732816881815884463786697801666589654020518642472211981494069842160582332749103840693229028040415813132369204705091757674889835785693167509531413118664112858806793695001908256326771635597574060007120647641667663969685227196090826763012701624305043199157124542893858753439609060935703542208486601200056981311205462171925938145407594469110430954247575619992223207208632404854477598176325476553298573136972166208543717382527035650366047167636205292062791548068281028005652967038907676178121295211863468999739731524491507007398501064087748910288564420113222324819624252356999282632677397196976291684334248912137719136548241290383969359566768341376021835908361626580946842471738006520972430423611075147489906493776335271545124298782430723169238204782964890747048727601319230212634581466074356244566179042130512418580328542331105131028082143882414437193544581025743734439729794952610015337939828148478916461644104281891569206084086889405352639465153945041547202333929926261167003792936603543235186099672666495629499168436733634741878343995817063288707472492072561735476832641487620242167959633778697270109420584508190380748416973633508527832521216667785575695552155968136461886689509108322825069006458828089145399928152597409904835608304560183885480657438570818538431126681478135452219536423847075138847313163114804865660368279091864597315431030522008694930691461317460107552143077298673192994481843403275386670128562488786288197436888328321717978628654945763947513363237899144128018385027397175357269438406289085420872262214175722034343341780695586092666517083625936214777155774396849569659953516767285823262896801929076742093213808815968576117088093339292906653061155894814461023513022780256660880389176483783848868077140807709893421662582673328413690073612738208375600482089758486230630990233539505133291344115900703604454951761185201458760087661702025098743788346983243839674603386869428427105504702030810604278259103748254218413900147880892856516901009090910144591761480033954889017788009733883708911801153377592454791033432642225285816037807421612986513771527477727654698773942030630793523837774797295095894665666156838322700884672127653050992439929958970153795670059524243851002811516841893021964101806625290942228853357601226927734078647040701149595282725954454809507400129845710984995629516431845734511482377648989269736047989417600849557175302827727763231950837736147179311064781863757878498184491817114081122111751427343405179146375328999226240954896992588370995679701127840637221099710517413783979306819977408164117407929671755762630371693640506044759246950727920013586844831695674218108797650931025294855501102624631799632872522826576044185489366510965671948339060566953324776599272152011876965259938948794811846446941397948397540594007539751593584155959058111172813686211484841787383451204289868049014796098251329760914074017333874040264610368428194759700691389864327077646541702960124562228585203289986501050410547957590374511500221006241724015470466007885615385643956280676326259889635352357304982444310190488162606203459604396444794101710225535385429293513905915439979703041744243827405743824595208245602430345008671764051694461746669768877125924517018244859023728274829299375661870601319695210474118335081338967841370084545533250844639156756946137699850180092882064249018371745804812553452675352018639595508009687067905036920313321864094354685451728494952035441016510098676278988736980931222611776625635359230529654789441542411638389777477110237608582159229292559939364165013298584523018424047206695191790946424218027602943992039827214491799785034239347705473344888311951000994907900896489467178202333562615980127947216802534333765971775446588674793462377152552051531153015264417806133503872298839936271732394674313800763771110147045308380223747563063833681131690011966209678642140817890204701529867216656225334516704046198246608435570979324349663951163676676228068003287589279659888768010130427257912676692267331780373822049229934614204528215752031664895369679637118881949593322677659448359165163590066154873364074173743258219799238593169941801406076859966671087991944138705687238219423424657927946638428698820572703366803518496331759908040394479075075234827849753471671871767654357734652373708841229903483213353731848080346686175583181838056566424552036074196366877257500394578514701336028812232094319720046725476246111334221759809571431563578475980073787112369739761361271744256362977500615266739831233025682873775718060844016032381562464925671063931410321236104317482460418198456978787983362821106447212311476106241898795067097929417002577485272228284169245157744268823503558386815687061557538179927377791096685867868449053918850131789940188409576961353282730759887680413327586545613542622174316622235156736432604061881384035185375678687105894741447007218605513614207288836778022483864961513156884654199242480510984854952671754454469778564305642489776186467335004938012738158970529517247707607558203265156192884630286388789330800023252644818079881346648160240019680700809651809998105036301925501391474037597830536945531338064181991087783628412543373562210808674269366997704094530553675364220532907013887120288255145384855214095905304126241543122826838519300784274428331158685451199208930042301569794411955486467913254337784201796395523320900698816852368232296035072718608074958470899763653454581596589419647546563105035726279795059588204419556400589411213991365260880502631719467339192230045824266730308303720447108702968431983686731674751228660487825021100582651448986645573281748995059701642716572264912814303768764728866013648452101006950491967987957283773484153276225113639470729686000246858926911517169704734345568869292467022752404053755816860514136772185024112453902280714750217535883331463979627754800760370551940459831605370168629812153922847113007826348067199230315255025117967065547773552704265478333555835185920149484964770971269227918027179294471840116608187055579688295990431392401045422742543428099312610633528195541325066646680242536590423823149176028401515602663774202466750764922536670877402976755079285069362508251631652067636613424158304096214646993486195056542888582506095157835705369043220273305010303770640147169667578022096345567273163208638229487517543953492535083101565226715781454402570852614646430490850089144739212596698218212482699237397417019807072395121769577115937430344526093141620337833317002494318060306160320027189906045285085243423696691541444663895365594752233100257627070899921489616261505726626863049643331292188799624693038447838339413032399376528080562824954538500544021772518428564596763513203493968668735054733278184452785004551382582523938764502858210718559925014734183220679392417173932681605200570813191321072419115107034767969020189363574680968906242930980218628959358838714606417938236883206352711305373690585413558252872274397125689853592057561123988935603796496014433225624936666137204235062443183404099877539271604943138828271867117679086356756828820442203020137860442263698236607026758449386232517886446421777620190102005150243242365475510811800263682341144856030000101591905381495576684128664710386840680530448245131349579423211742134030655288781210103789200866366151254440337388319591004708768594844903666589492861454749064632378606415383165220291873994703562967227009192878616719713253479284456776080425289555871679281019292678718079885255193341294468326176600920692609371907384962568893759476067961651570647074629300360800724872884050194314200088942421584023160288183131889349567878262685435683836554874942804970882863810852985349700313197979335190350021388954904475263894510078614609081370083931652742979493437995577082723341505542182663669801046028745090883791961662974782152719267813008754333486271398675596709378544859517149451922260210851276775438488707706253417598808910368739225299161393717122336875148300639152138782118964419637075816502490525693864912192176578710831293998241919727068897562175836309172692701627644243763590242076263890301788060791540717475391430719578202554651094612728824794671758158676185562562596781605930732231162923795105379175583810873714129978725897433659678911209036589904061895052790232103418128755299414391263650797969417338628375372146934727838878231691956421004520463175194732577343268637229219322144776153924277779890810107961602065158483858341737996377921661512630818236807135310447130031272503807311373785999523498753762856786180982950786577886562867288073983304411505599451853437044158232339984368567060779725919379692546950419716664082859469087933822798375384202631571414394483911705084686919931648304288131552563768101628965365293824837958546639737398544357565055681564009132568720368908333102518976789779218652437484694934892151414227940520904943790291721853588547898126776241151749917948728710434029443760927926958339168135349739980120207462170121392920568985202538239978872617300873133793976638175785843918064252038799509393228091675646890912484680535592466087585003735280420630135037383438754855612462721666900746333035506988449022852781361523231616692347665754015779493269841842879928572746249591791608531700878110646408954795802589869887933450079167770579805776523446427815888240395187268150324425734193739098481335758877089370435375916362429357516014393003881600576127397442316688543452754962925448768341130293986223784666887223139929796242174778265573448841776009565612137039846412439023199727655859314350558933419333987755537870301179590688693974554605587453136921821920301120662431411123523666772453970804112901012391000183046623370213035937361377931207475587456883899026815321489983722787463084745515435250089311242079271743069874699739669554769718312269032984622390169160577587624442216033498171313822116416804934881804758449561848413119995366417957628992435154771837313143823898427722193056463599242857321894932854667843474317113537345985753219511246341354134951964860859583747740344573246636498943593020680234426525606981302809818817580326869810804974358596807170656324528494493711597068777864236939442285580806571896555543497460586152317601707682964950523483017779091254387836891040408741002299297365030852763141934524058861114320440606498677121084325880512016143826002142169763896196373542068423009462436676109378184370747521357475780303313134004874569053383077948872194379512256404605771055080597429240624279615561472796487613696467139693832481898512483054564509619575301619967514109347196612617405333699603890943677277910114806237274829024864830037007015455210910668503837717381842543452855152169608242763397328453102307003446663975050486282237458995752020882381040185812424020656309415192072069467968271173286168035294420858164091304069504718100503372088553916352613549962328396250176098221327997265253005749825500977844006364076397709069577817704852605773279787441429171101193235036247258669601434911322675506038885494775892121636010574284092872015083236634601920996662937879350814593206345202648688144734627508841233803787194190409170500035716246183261795955219655436608708305784344522805543081662874054482520684338892385959346346120467175901240074372048435297745005090741876323257726824205580616981620122086359849709324491456211131254840004812865207429506109508029048012826731429168925791545328672688430294138861802338829239649705572575435643625523323268967013431134221887442305755725651880242577729675083866500912007582297982015318430200902347008376376769364920907131407205800004128385628310908157516694284840355823063299731055888281881551702632932264911797903139505272703362593970381360382042709607417957754062047578218377527925783434630110481966187403593170748076149799486541546669335002212871171876045994848904325686594760269968438961585615821094047213641101709002299066263900237568262720874274108525121494309786547669417615507644478618501572175072092659613544122473138079999174893758633829464214510502314135784627080863288259429554682782988347102199404791571693890657876900504975667563097687957735553012975427709669785430190354674117822606137390807784076734795875025053057872543419346079385726620429011695936476613117233830170929965991439137648751915425999823868502997585561070404656385048009031887901603514677829801530622080990494444372015192300943229731812019602044394313299366095996834138173051965286766732066829022648927252089570520836818385242023103900661700526054589946320578183729410703288274733950975862976336487816638092108357558690332804897345529667045971476447300071486457041143157095945141880415576297307208687605408231682559512381528312828529490166841394604926141378086536719797084572396683346431194399756637152665641701884150629407835003153245276584380688497644927583668488662834583178618584226219421189825921265312912994385357968291133526621968582032493941922556313954512144687280805628808659825920162376918526232114993753152970459033548411619279818792942738738051756983016511131534388480504429778896335337470153209329913372719781606150453631942364355743021993560615178204649917122852523992030534648563980098561213358396932080336480972987079458029307783194083196938206337419222475403680127546201223644816435790573757413915709900723880134477636922066324047739122582013243975500389069358257545530810372112244176706688814749261628136309388059431660430736496165037865563182610576893027092666419237098749368661823383536734690647929224697030620271415598235927742070308959047469736930408848605039965333667522790946560412717879179572791876135746316311542795009026820761717101710796051904796600474780651750632001070392816415886099224006910650338330822324936259582436968095129058189153332038984337580049293183354505154126657348577516570744935716758096555289238520155364282404594758916125202637858339095590679083358591841957672346314421491127113861680272672920594683459406765934150831420093802419643030157731011299056506096393693386082922640397337891720822806251919429592708465668620148165869785251571992141251485402871781335478229981369613078649416513495444609815785316985521960189306556125552410843717752610334303396465609298900491391987592290991716904232254438237619615643302657065037792007920193815813279489964245838611435374569377165680747575089102861788173077196846270844886407902660323157684011022233958061985323606561523609736748023251790499871150866634967323311633047711237544536419450306186784416465455933136007920589361260732795450575964667867149110142241327725318137349218069138898074138619460011142133241696285241391529002187687179278281182775584946601031068782288184890563057192019132736512742256862828786292244283618770404921703443434260800825507123252456353113143871559768226203222898017153237381385068812420809960513837140585500528163430635894573032151152622396248252189656802633969082713967785150451702832775605257348113554409508470725551831905722150517244375364487348589634802971079691864852800983346550323996860572555107538120136953930699530898274304163415595862408857091684727965937425044062794604990037777516893481653133499787471360661385978774500523747975943344241815673109017605497468635657850628382585640802085499766943079971178149802469835085394987656869430494992468827281697276196320585276829613393955128687377991092803233577683116350745507765772514161689513757139350752092515015221208452780468802108856653600470523684439466457023190018559701472731518335596400972591485048998342141755074468800906487262250856175406826948552369450010322782909641992534557046721238528653987516631522062461671780897512024360496532743379892374558753722229027613920328762398193095493270582162322714728236589580123604917653639687442513313430167480133296289937765917043495252374421983943062104822661823222311531833554662281115503121513704995946968176978252359549891083589249360787808942617540199791566027081963817103482161642943149349477769094524152442730026898868069913411944509555367786909921761844645736076420452550967320028108891429823671515839559207028655975075398375130224498388887930726335633248978317606438051280469555879593377000647822869902462724152629956986073556686786228370959390668976349886523441967643631430138890714078910578110462857220940999721074561517205743279763594153074087232763588464753063085553366869154159583002414516232430421903055370995797998692421580237193457584257456563873549543350798328044450847187094402557498223865969122646473671882370712346390425118255836880455006004145697813090489970850238604952233605021374961325568800876266277272737667291553247862392256184717490543030840090223662403444244968007441724661845036249850431576398330887850038445811340770874117155684987450145519256790098146605885963471439693872963289508654857934016203454434401172671329510317346576642272761375710152518632062601488596484219212752301467652692566504716100000889986171102190156436575601184261273750856787346914506790233648083217245354038216886793659629825603137228460192193119232594787071439292826205928905310984877429159955540257169529991078965644845766472436139813107359322043895949095005538704187838641283758226258805727667252727937025119359271109239590720384988194638025379318371179222345658498890547599753440897241848278319447626740351066558950722278685407704680719840862040261343804867678461088491438127266273902560606812434017492668870023481659417195926068211644599033870805061943065308093784123178766787176173462143389652821613368706338531174612783619405492731977573939525414351366317692314590920612414073493215673537182525960451128357501426481232658649346042611172859317721361909131591941618825932665104790002495255885306979866504825260062196165364880813403875094351615186078197958437878872287619004271314700853808005731627686851067529373849017377966974647047201584324441103148608758652091320396692763888286761476038308499432025417901754969634312925782059583708156233635976838831917425586605874831045041466701026958579505128393870869769420519648848844205819419617744659354326445960346947468743409402876946031245692755967939914864946674826447615678692403824398707604234849253396376483229155899647573675376078853861247021529157273806184803248030033351111980831623257953929143250497862450461069532013644814454206339494460036059401805590655821282984137503526611265025599860398550840588921544109995136206933866539356949597647820975861091694346842075653063543004786798693447949414143980630970279558005407968311504088113285909461671059877020881450264740088722514822832206435820232637898008655407442654961953721503245585288346867714784589145362225387910862861639021200347923880152209338654794838812542947340287895279927100604393640700836526233729230795845967893666892684918415610137294579380679340303183380201242777238918603985506286513240415808528322214663577567305596757532441818268730112171200462385404575548818201885493922450106415953010013069908750245946582214096429067829911818662405377054742415186998683591596847522122482041358340511504323630112237183412041103713071754223147082275089138426989080702113441073763803968369116617064514347038088392858394515027097704111678914550083488857352375660921763949444758043939493805246026892708151932631764307334036648598986993438004402720141622661602113606325778271808526134835554136267902020563719887860243160473655892911571619740692895102686613696871575192617313757742574632702088291777518182606018213924411994022302893671793898693250164482578209858145236004374513172716050127166559943857085058000773093285256095239342452545202179587519069594282501731794035849642192357281093380005902938482949627365805495075518641971855434964042573755750696980710610241189486682547365636462146830097923832509728215795660662279552700280144117266378949735318660071347372078073081168621264027141593370988603769809432626499792046696863205957533585148812848861385675124499249649085166092544993841854162071495832225456188810573665138520261396219686613935647085092520805032274320325546607584119154709814104378784062412256861446108351889953799876613128346641845255135956397712722585540750077775048926133204450692476092017563958523240749821779787882465323664239552004638314227986334222047274922691537779867548524572445240581870170922823535693113365706541737339718971656417038924104949690022555726980004281081235292674636139320438139401281319062713834802901488378266366386537285548989315214726415065529668554522596923939574504006521537800034665843872804132736215597113364594538837190846708859629798959101637758682126566307590947403199282477441042662574500512912089105838004163391949922631189175193486000640810283568050647762613492965477622181936878479294173843402072583371141810383534208180100977615403865152386627460167491480827515691169218681883353979813622044906072147318487532438769800333275002403785876044285479400848268012563265332173879489952579411690636571476578729366380276181483016293119634715116554577976339627002814827711910193994654776083927259965347222510605733733960377381815521113046334512037705850787758524855049811518919377550545928441078449854575870455969356168903587133190960873173196168854005905650137296430939582855538360926494156462245398972159523161451981177613312591699595809988291745564988460561118084466403412669911444517561065170705716894891385582441590516153658918128920630210538412726877416371629416170757624673881415885110417708308009822954001183363804559578573408227819388876549048479550704930116110932738304774356464779233318757333719825616981970630642238011801985309545301405085436071617303923279809189814836799676706857382393985288789659968496176565600623787724206328496184060043272158026281316093057432514267103469760119251234165499273856023410305954914303439538955784701449304089280999929325453122432198686257378567536529889474713399586563777096935705953312640975514511457327357730352939731597138172903190103024951596147848117838509939394235467250705813287729479974011759958944688679135934625468900717024523666195476390973243133190962629371884517644340962748846979039542051236585283159507506471124877187827056134327575819248685463257767603137862350142868775713337179807143556615771622774595837802252397599654812922348842201914964647687847570459390104102994406955735653811400850392803900384117353001701779453710484004120813641626900606576005396991794784967207916705828847698597616010757193054522522000344590635265121128454308568247535399043668708071367792368506677831943472978565793533689620339136141481369690073939656683018091338211088053096009075699825885366346516824091619922423065186424427216972959782237453403964968946497486435805985627689324194817701247141580468422125802593223883989498715621131106725704317665537321652906756619972816834187907383257112825447002020242531371994967718526519676962718778903582870066764140030788699841296725592794225200545099507005937451234038677990941999793235484279641803901282121563362585798490192479413591690844935162561005239439730277671456408652893243407205759193905602531396181215512628141717161658137670980174947457543746652868135184714284256724110915845091789745301902821507005793865959688462369526005051199792994164994594933496009869799813576986862599732964521105095314606026506028422765373037848734933048098529065306384994390220803030761549701585149722360896884051250961580526105081946613969877094046427293883810643835019911287001694068722406105809658776626216316257470255266491973490988538549213604789884292476462433460874837411523944293995504572598641346849105430785843600083803199331809182034838594558931194900187659958164937312824384569846346148393861262767079607347737767409694408431458663360602205456190201681028148598044073105411998710002626373720375584401033398195381860709024140334351771027780897228132139727519185898174645987500034343943489082167613321419256818466099192273205289366696385197294948128685304045139365781900979061046658652338848911012425543985678358926223833007042091530895405576502814788905770800816779764110423309778212481530671597948923673630594737753149186231442563885193735440035301466167441805886943237846324207096186700195085149990444422796938404606604142743900632998056021008199520881903764854796365790605433681522655693365959581589623283974290144309431834277319573130297381531404595169862343705985126577621908759414429054713471711503178499531416614413891194360168795094217512078463406327392986988794919822461917384041096497553417617952022980585488441682543863534810885644559577066423837590454149054368981725322285506857230702366837532093524642044156791024256787721363176715274944340532315984372674226206749971435454564658125301134540834028498633530031210024710044436950259802032904029936320755377125748413053778058981678824516125969205296375555817769218502191943056666165900252732140460544036525541025007562304141003879858009456657694043367821335271921892761663042227535062591072616475172382265542587002309791107106693412129636249243130797549552508148976463735199105902441693728160709737887049439459757772069973462812591676599534070929213105288783385689281986984760854215127302510501947611711495847493112801159763207205691735389885783462787756736511218109985164027921216675227250876861881356346329817361692790119563784554020981792826633603622820723978950592853467493082079864119429142087878000062391232539374962298943402352546439612886577204916437797238886184556182808685495407161392241757799013070591212741737453368875036074264149958839266398303885946532136794195649628758607916531448369861312293726060551162471755524971697077407332452863415521474158608061137060865882499896124250167260028310136527844962658197000012607336957695802457101577463823368062572436080453780250473369070787414121212638450690343289260534025953241550029690175586062838985644601092971336126297176533522429339657261851357459047727555841245482590816325279986481848635167998184482292724212973602915928412696235560224940019058157068964957356842851577213341518397330616174356401104833596550121447764513383576420992024216993550904181299167188732211344509672224598829549444191783448694320375980681832150667113657977285551348753836505634226437743521652942923772108158150072452754819955844177014899082729614575448325285696276639771713594582998000689719010975812665670252477952919639937728685298911584949543857154118583328764745662180974819352847473438306169835613739186457524961945590204593392726939729986969594830176444550334721503207823182675990014570248734922647333782867323675247639385005350445011055673431090294110701951890331504721060672899889527327980391942397227331491128588311279262774623475438167367041369459171534425597832174274277162568090545452628983925462394800827626025679229427410927526546633747550572854696563432293187781621834374048134898731346175594926933207761258829164535037462003118191368418597657467004624965206341860548097541212273327894404076527396438326199704307238400694501904914840630405589398573932960330558362026410064363654856642943894860223419331244260792814372065197180429012113845250659038775569391518026175860253283860585564359681833941777563418908812200003141111147758595609289728934890910482742986632852425689755801280057844276205381942374419951965760885437544605267662303160754336295882598166754455193553428869119058967055654849075609662105349830054003514582244827027072616663521934969577412746466507111245506629098637855297241227454197117226580561482594393653507339331913305126053907823760152281330043089440542565544479746526405161482947771453065390572632776272477470786195269761516723074674910977180586797230565512492425978909327276593485433366451615946692824749546384022712330470377205082586687667842018952334897819888536398436827072619395602754663771863342553123734472350390113588593046716795697300966095053171285461271418928314807380001525580823804327429152167408157448334608185423722316454316399654744452862701301444901168439107234017949333578807605503939421137383626193082021614788271969696244738664791846775237148663300770891855064723021771599668082699086242460889398378783602242122832314947601851348433722627224971838668821133419702860166201991127112294207839474258318165363427004714876625498140646321668836280077898020265718137775977793972380647519307880570786832259066124794389274780771157070126039557572036402271494765916164697192104602667596949366103544641997640728188584758380025033347352586153777227769895765617439001695176619847434893124227401621943045771555431993684065197109482620460985907864375396353221999671886073093999206384422985469704244985856480010709709333825957799041223437946545025995953184520364160244121907812563753621163974839982402187828996601810294497593009902489296049605896575809696320839566210097730669238497040195237789476129874228402903771874003410534489405765792591766621322108777086133123935317632266281274776676012749059389645997984748699953346082079053196845366086479500866640600596825337765392049203842167234018269768809301977046043831921011180841678335791875165542698432739358169860037468969856796713020150598705150692572954758095413920531954261821836597549713534942233403078302129004230071701246043646616009611291564251829033850175099917288725799253157415420183528389642565356283401866345648550507332428285465691112318441961178587565139085276052975087031244103227321191477617215973163513630029739753406156539679259152372594884977574385688113403619122164662697402565869683781489673947779014296130303198521530763997928813284269502748816415187712049357749883537719479275992872526554363143512111095417455899338195477560373382710345427933959104928552841602304162226564362886391263562605497133502887187923156213610882977757249985191739411043647567247712198251156294903426833252972761969859809978405397184722825099514510582321246453588457466261655988827347741080230387044393897903091419132596349965154311842044947060189945666922394462497647048490053239203933422392204079245558638195160994291841191765999875374991592253257680333043957478183603994555746329103878923116373783895322123097231827858052020424895500957562439161988651479971726819062049452041015255155072979765189211355666646000324103681529389313680547169775207689873274983829105110082250698388495032804770690573752244606884688042108297606209409276350968818884079208767543017582152359660005218653453729327792416685116422729591910432446377483393285642605509075175266917318791584613821669149168528763819512945059034716271232655340450522421379232409677654995514580323044240069577383485460211605013280064821663203325696731232743073070027920927988569855629509196799824154498388996890815789229148503271146351699733518921035124188068478089399440099916920074542910282419945102689871667253921213123762124783471239633942737880238816175256562869124711668028328730071172813165143182972637504132383159640844173413504163484019555685046492060360133128695663658994941802902181306374687046228927903779284225072430430786038003145353804989173358058147748300744369512385329446417647557865228830368768306702072127329715354135174486191507031720447633178153844533086540276829526523571702946833179244812644963597454038400922473920767897678538991979959784810661056395460949888129884362774541133526483937960884843766740656792986095734819615900544638787899487593272053981600208932741705164075217081777330482268850688922664594164291646908016917337528312432144363488755303729426413096152724117346140244922305345278627010731348828156312192166710725667413952417761124044219497844106643805055150462939550496034564383454304869510273834671641920064038575232144866180501922798586226342821465114486373021030099352726467318301126202045057827788511501290343138106961528440323350685691422549453366108267423791606595039399059819747374393873520672315452618634433946087996765360223237597184301682070959746461498448666132526557087148341283592044026489538791969710762952655802093432743527814058845676321684524483400606637146063515178904968461633465594473131967597617558061771571026341678148478273025665921860314282514762898142205918594278275166694855398636615874954630303835709261453673999720396465134073543699400832696629567045216012980525534494793675265884578701232054798410130047575858326680498528337491602158822265969953314487645514721150861001395566218567451947767598559261307143468085806702448930840074160940611958570302480065446297327026991062135592021688049421022755478058240354676488922195522097704452529575069948328944590387977228015939417076779168925257308403158701755587051014145868484750724999111161000123100254833645468900868219018166602243453083172753617177394396487658262198828100025296510215411061352658993759245478438156081135443284797430290140970441528818557816493357108220865612577048900370676754652037800714353514783342578195680615689260217118994060196224376860949335741195901348864035141713416422024855922795898930340361060857605084480333041254196017777956224099540312202572554404383638823100220614781779844781374062347190620972607933811144261820429923778777956455555134105289887652208547765976184471766244797130634965434556892999296907070358796719390363784340838071440968846578496191743372532332214208816945007798327595720545507994215474423909636477757023995104672837725262192445916697733117382051767482494984604351114749797349430518338985817970725405407960200088590901672824008574168498194339487002113608441423733243217344640744160003415879806404293677123426935700986399562559873991311402851455187057215583959724150318065129630951552754227411362587129144364344427476398282272613196322475732469070745994139508148401733242282525047900564586058165406021776648786237118447041447186571049374310659119888874059291416651201783334566729474772492040693350829275105323974508543048257723584687316113829948422250657691316658016636926075235125529737616314845192256354584790285522430997475624363083522489142610761000923553798429798795760253341877962588767316096826126495514069007907224273089615852899044797714451409685942937257557417989430771825809362838753556306274039670372889396112180461538845871254882916794526295966562852927694800209173082045170594313640075182699486615020019942159115204076128123763185876789426217447980166725696241156436337069352858514903098572513503438413601875738705528157214134293165497815702364059605590770509137924719985082778081155785217026563050952472536042582450475940834477777134709024988647331718783205223358826242911540446307996299615039953987411894907365588523192862370196671495390686956920192695683439861749531932683045800660523919867851245213839702789264707733481587977492348942919900028306299645646974301936228140120417869896750716774298091495210352303010716479177669270849436740235068688443732263215272838256804946324427443984316878127701673382070553986750005930012298729535987657175972815038895904195421334196479741340624963468093941989541999374201605342018128595701020054186433447416708290764347762563315122669562601284881025797682508301900062307373426910526535858963453024169704012028446611751020817312327365844981207200018254170359818022522030005456909790121109035579728226563784490372275510272062983822218659994701944036382395883215622507112563300633311973742914124692642783424487250735736193641721267794885593445773389476447463272809743278017042737152643194086673518008703191781150205793666353752423975835483855228814369448499377957186889633511159667290433739246102300590613661860972555158984159131379940200088901441447946347424778002924686641467557051009655419571377361331586229345768300768950962718892819764778137425277825420409241471065107012034936338033823027399636509513682307298970310856699038606918001603072534639643769111610975447452723814776921931428124637469647293926117685110590453572913665497785697960258880193126105561872523064099864969042147125995231129912305664807230518252438376245675601679676833027181333015147899723575933229179303661419798328824812626784499478598025970054721802323091830834800942958410359084075379196026925285287529652988450690388892173786887918752180702266157459662320241559294758011760345568587434140309429327350534644353577312527154974489998153862671130568793801228925344442252302846338842150454650709240096970860379548945305663253652036351420723187895398373438108726916020028286127926872435138240408269206490987598677215858581134919465153969041608380661098866098986295938963485510559511527036422861907689778134262158215513250420854431747085927794414948243365852955002788926245896006907981555515063753089056413836653159644683991876786069945880960688523811677045235776658511001858474639807351121976764799294190966380369774264781899043409421659853741244479588891534751973629837433783740806980666393338649786267423949453133596361929920373792288200640810606632772008581037056160273382170580054614805720058159872964955829932101817189971020214336102126541374713352827566694975303925872827045132614203743050518501191511878874598132016093498062421390216843967953850536451594409671350745536069763751470211202900272263256861991130870364462758678190004551324376497315632436423458261295845266923515965831846573712582506745249180700056682572777354558149319626073658055969421381140482830243508486610630767832235382100357681211594420420101515548404302264171818535075081646070667422136488404196213060567384422961520050345698755932739917523727716006360506394452955449546974330057501437641775667629642419660678569933323450645854030397863384761513760927592303818536158867840085600654872604083082023450201554892547192854543011829239396672080969977088710707502382576122182842151017756307546422271079055701077570653395206042227477367337387576487061529963864685005014973743484529601280444065469413181882075201493885315691417184197863964378471116921083412141784758011246359681621192432183446085200093809220412069782693341985552287383332778548584156071628332945525208218352757578520532943264137076439687887799141880723545395740349533976647212524484479238825585436651143869437350056693484923113055591474900720984382703378942747980628400844480823803281484094682662885947422339090852312149290439984448986954064812560176507989030174263157475704415563803230061273055895160255300997803403765231039869037904369097008287428575247665739950044027353823620390136167041555473900196498326229517682612194802085739087594168822632664411877932218615234614936673328605728995791400064663848717677604136938139574375784802513544129087039571266016465747761133356360598727781839120537987145255726513720898412437194558064928777889619792403586466994068106815967838376655574573818648698636776104729599955126474212749234195320084173755354824155923621280688157376091665957851417071888557324460859602238276322397923745037645421231122638306003642239824296618868121417027956263391867718478676846985110857493229224011912753776181511959715318390288862204506189619342799123481037226255543788441109498545091982895133151914432396911627236781590042759833345562226754136109664503072555456428987312797233511620161128891501096723895332097650122575988564149403318612404124694977409137137872676700136940144890204700292974345314203678778268833908243556158400140570848282212745611488768513891447714295718767906541531974297226611148159765810029835040742204689719297886752068607331951498495772755875790984458315043624745100739789865898599959696871932661324521011133675436088143362234734906296221349928772785052275965616788953109656356695932150862517754867526041899256236874861912271257281257570100738814489745829642096923144824862390977807275539537959145475647102470987548132821048913555528103527732941342881177365976897164069544430234761641936231102428998854416687687450182846894466436281035735600831361807305876672212243106591841602386149160104412025342637029768701380347558025497698287604117040761230064026869294019212836505676806205833971452964772339743553567671781341177578700893024695747240552252758687091118945822784905122908120869630683184657264267280764640904111281328869266689424115959819403503468960456728268274896314135695534873329830888326709327794919057057980740267699520419539429426113296476674803793661491054580909324012790370558572054952001442988592563706131027869247829868325858660126595206797676486558117970898833573356323256438411485454700306364729977113300200872536581058830903127685872699290764244311457079096791777353239581162708176822885379772468726188005284997946690388428915709468176113471891037825540841599757100723051876560979397634453601374599832076373238052668122405731889974227551628351856958343255048646910538545129550200454308843848836573643731275871449317096535748966040007394493559680854773422171778310549491814110144187751075598595560056622627190495478254313513239646069909045168634258428560100089601327307454065868895460770400498281542932326635341584140270314206444061071060701309565364554248125365348675601088271595152366109056047315181552552189750185942638733882556774660433467592491004346917956084322212240150106329660792403874585602605997503608956393686069728549820026632057654625800048506483881387683934681242643287280853841801630304446619236393581306486305675651264705068552087507369461537124985577171657885690614576605617470987066939788316164968144343406395586909872561926276285949351508556218565396141820830575281399220885894260133835854507179511826776270515200617330235279914223950284544253837652504456895919624733673476061990706893477655924370906592135641407353620597518552927326125254008580149585341454012615538288252734540296203871034641869229617347196999377992118497409990358378225582034164374326778523547789307538293595251447768867376439918163522910891530781046790790662813661967415420685635717220629047278824563161142137656996406571169454150421890963941496409070616050246728076145927611110139571165706895634873522216655453085026172403778156829968524721195052419397513756759642789962688137540865644358753164675649428837155626450523679308208529049376997894544208556898235031354750667659478543405555148572806614321926408890707257712044822880930751416382296599269628922964572050192578632809431946294972161729971206344189184284593451658957687195203303765900493529422142306956141181839885012347476843528037395037814680129117647670588144730833682597998975913451898525454059438886406606017692901167755608758354770622678119565184386709794186567646475739862323401575256206194050201908152177996524825277972345912505874935564638282348086141367283117672524139432309744125938171868122255975874362598781608524243866883246542625246653091469100328092840534232511788731457079349864784563962210028158573901956294973481470130340337097986883549116998781056305429761739336659231203728470753921519649901903347471072399009697773979732710038322881238503108273202263974586522810656514916812966646268890825217905231377472366694657895122195200376549644143666341148111715145139095927767303497469624783388705474969969068699853407174978813893702073403130991680893034343994201684943029201357732015738652194518586538229060067530553826104752324826923160182701885865739253616479453677472472008293706550341170844634233226351481778788171066865773781335962103882918637511170685173564760662897493576014660076417910710067116858274425863676604821612498829692996473852995166353962998125861759274555838428621885577948169845045578599619676812909001318668131298943447892659755593361969650193855267397659104966435292881076471385532685283557727924638405280806647304835445580855957876348100690336180330762284017934457530089458908182670227326077165537310959739301875785568643710506473016385491618071568994677267629419506411152631608190382575205170166867961531825135608108896777707510129957741326215421984904601597967815377345745913821016585467665603278338931733450949072194661648916843124623191855857819630304550972963339379835388094135235722582333336546115989051003386356886552329338414010239103178498266690185328973781821165163005528599442176880456633899514466663013065049779675522165777983457304365647099368081038365664519174805556346622035260205176833902358575749890069092778028737679113837171618874685572761810378639142035294116457594481989023233642617614289219544042118560961759176188817110109345795961565899656040438242314433138487511295928122081319571497405747926939670993862997554359729432760796960708574784966293110633035748589611781397804305629026301035873967091087056216108771425590736145896855356625456048396801511131167527598112014014223898598554376440695250075647185786139106361750223531752879897523281446086970653244534753266468824709907618648822817559849533578289446972524922606097894742248038356825990222020731808108099024439729536208739464580283755079078322460756154872115807010815959440436610703941759058875966318894625776836052996928277843695345465039017409591065098577762143483032001469398350048995810938629341655785590562282941014172491167692670767974226596413807859354051690322893038122508788855473037537473446379077777032554326596189409134045364113530050529257968038785524692931398830867557597903128038677559153737764948223672018788563763718436674939930291166770664157895787743084669303489121297439696518289881914137779495435750047174025403084868175076214495345344591428225675388593260497111734867070060695052963364484476207575950399807667435249853958827224745847660139861891218592434314024982445029334470567078557255111882446838474999615342396214419296580377861597779714778770775542463892872174615694231834289892236615292723252661532079738954283729497330652314117281464348248865529120234167455662882626969495689874036554838370662822630782347347470638858242007162683267235351035381133938336658392724965882423342103622405530883717704526148507517848573327485795585669963660130813613593455495683552326653343394171119725247601208818120496378646490070320843253485492805068307264592427699655932332201620275688967269669874304082047633201290489023881779598015751317046284671992898641102903258099276464305953391758951144703138733354566963970306825634928643302431014049419609168495389346482862759414673477150294614280820895589900784792854549161206109387735420027493325075360947773102458975110886342480606502820293318004854948997541194074849258616036404085963349480583575304549072146040972597510532281491348497141400473948854302072248223655218668878763879072786581841901943485076641645338243637447210307233538126592818742010650597610890041268223725777564750255558131171580305053308798046476434435121437424601257997188823123147360652132349187528384802057095462503742277809223839912497147673087302158580219570575470041483526682150344171863132585127905335710569845863102565030587344129567497056483170235425632511659963067155370480062059089784548982140195475976429896250915854587224627229911159999092465403932814781929710769999957227760480157460426474469959927903972934364606128101731594985251850421149444287977229488402340199756191511643635851592340061122168359265338717853836408062171661932068294699361594667457550456739150835257510528403700525361157225880580844752303872863688146054721660125528535768640123868121360110150475850035528360211688756949468313831322371093463913082538723530981508979917861426403983329484117146253819282606081941599637868031633865126336899358339925419073619602020625274573978975772054497124939134764722561103438160746391556369367895731784091630985053426849512697131993803361877386595007726679207345549300648764464932340494647451576105565742192286511772038748812327200166444774234021346232493049246281265599268003188470939074891652696286079763775197787494191311392653216718627267342195269721816539668696801696509461613722510234038081616114250701560489252122100890295254225382113721363203102778878922976844457018387751558597587095017049132208467011797808967476930115690862382761873887889662611834948121082715652142639636901147595282718515283861070185870732410971679026901408687344138274723711839876406040208150608077904062276419287990610446281497557137356751094181477598842068943910151797066820517601298012796743660350351280721245830509122906016287578430531673387325865094269618342074500579855400053529326205629547121795863487181982022266660939838489462057298211890109577811949424653978352205846844753428314122214867216689273620426592975651557942532529037825623610413491539859743640176960491325871512528686013040680944450749727957096790876670072371754398426095830658215360126948152970678285918462139031357907063363470297862160653929015296215367339267947567349095251790720981342336723004563902640270679804398479484051132151035160404921834466966047119170140756687990503960639510936683060240199030774928696616590690992129042057874937687304091497293895983382325804616976581698495436377476522816435295911121108870574256404310022213670856805534694990593037806819911544561874327449178660477187429820837091588083181894860116507689053888763965995397991955925498631726358227761377495779423453963761004872176795886909806992259530967558182844204744287764068285140735978652878886495059551006414258774193603997665941001372420948083083531327012664791634124439994056481627629572482619155922486776211677125776393971370693231214674631006583281064878035567713330456411453185819257094722102914369143080194631045027708473816398637267658490525835559168915243348578039935981961461423034121413165603611983749228282767030907422501249024920349119026486664963018584792394795300196417379922623856431328234737038933710638421467315755663649291533859907976761579821723907663906027790892716099303288356357279450473555241964611193673551977945232434377490320893617827720974741181329177024462578498250023093679877777663485355198490508344515752232070101521488990043973737180774084591026090844683177150925365200980070140226540885476116705601305367026528715027262543493669613308931568125213622290739210814840429838856273498395753995913012776592214842494290364518320806545227643044903468043754542455184175029592730851730897039877574077732587051693627306239194151156651969413029680598159692229407176153107970651846711665915782043232074599161162302781766253452428835815708368224133105411922215478148236424150000544020454483187080592317920062044460704861447937141550622539543613977624100580695869398418254529915509048145317932406121560323883042814616920107027870256594834883408924245725017297748600332779939236772609152114405298799947922259707440478002964875823793872413233555777130924984160621244946683851385465231876514309801878433590683467783653879046296497702965160142519108055007932056802992707683193831188588053856580042493209164764775056345284529818827240798653128119407040601139085991645775593237300806486310578870639803490931638944981427095711547691410036114942509445374088849431732447753150264384027539581359074176745402564153144038159128971947869494670540302359167998766398612363422816873716120787944285987254950225224202105625003670786551818201703627628012218845410118876422035110992139216961963054083710613432869314963641439864032206922576350858852116506293919644914760912257363758568767475892153010583026114635406480380225617899243515427425013116581189475204950548660347149156689203806886581076529022520975944121535695209778240345865051140145232741529576915671551305031620622899432771888357783105741482272281269389700533878134886542717206947431113084005334957958696206252849002974013726724173914491381988138542479700038026479011707075523119123096495541506893240937111682610686683847851746369917838267843915236260908843476339797156194234556535830698841895539744879914334704704769331097784829092968062236600975609923569885778272638787698311104777506233821929263635381956762092862027847006263211388401903556100569813928684981588923273200392611621937463910895958968896613031549928089671682755954140164962870880316351367534907534022618978497924221220229953155189049169689189287844554839544022575295157249640248369529266635457521281858747398994755945959324171530284747831343276033393971795406835521597256472495788697038487819029682503655111291426404713744110464696301400006524497300899658162416415101499133148445532861589691641219831482520897897017827360049906527513477111192508627638094028845070126372808546382284786297776380693556735435785247308567034909571294100218702189265284086723397388372306105838082700176137794468389732803108581323804879646595283934684002956259920111055230192904614008916670676178247234209651615452779922844724553710544342910545819458194842305499303404083725307538046923826327332883556758117317119082673021237948323385277603978851181284971757306847460286931365698565027128867715167238144577800558353334249480378220196939911498887853661632867064541211426044369496599206451045738644273292064977365975551746367190323946348138487767658338819407839134782090475548304145832910312922594453576345242845075985651928942609973732765893866560171006231047079294970932966380798727135924375983879832765050729606445104168979521287140810875785770640625272432900907199198292458702662631523349413915758443753049516270236816856332468262020483732586149695608638569676412140892473324918282860769310621860228552970718665368057186121397154437624674847720158619659949590220694303643932739465149408733918754475138127674777613498599604715085022163992195933865342956055620089987506688234126349882178948445324893439892148146261184083050558230658262681500354141083469822460006611773463902391235170394521221916657827333060887775166644923576630842239722655151184092904839931181409184573722653897131942584275073923002955813589648027580557024425289202207904496064948095493913240136648679656306062752796330236618632971944445946874908101592332474752265978361431743716319179015139574839464158556731223954021157561033311995097214989585804672000332501386058307646307124124341161443016692026828250903800860619391817194062095278753507810908758177369510404063981401087511885376612360928949269639983575829868011546173572030629232044989393184808653410178624461016584382324938272804177408293791452511189417032540498192922674102069223968651474418985791239374782322153420587734206655321957691452494708275428676610261339067571706383161390977869805714022816745539951255644700204205536456905625702333453196263720175544239701156481788739627477849338013648590952841958780009149418294975265254731569245454908802358846277273720588378561299182808542078731008632207446176768308829864517504881934464883945229739938078864489489637804008651181202804113339213043973959120924022962431346661193931014682743862238209042653933977020634727522894519563436743632516858527864147108242418187075106901033859392670797781018594301101500073771676998334115091507948138361126400892033847757398221218848295574805532321291927060280326206809991581159391059531854531735078120216215832352502068627951155290399322206491932995099577342421300274050574882297195548223997532458999883677308794468591189424308307685087510330660354541588258894248304247723853372164813656095208039587753224331251379520667937605878482125670355407034935522621993836392037269624836360281420168378764426723539532543185795800366750211792236835572678228825040687887054312946905666716061757325775553465273940234836094346201546703237512220286437358865417198761045443053787416402694233806885403034170536720793460665081595665564191860565481620429356862182475709499340097829075004202496290815569360614168240897902326683553514992941570324365861157924790433196122191229516535696036455255810357877452634334969364172103170854764290854206513798927558700041755217192098282123015127831320040568476390355492194661414667582013734849156262209299777918627368028556306510405070631708605288300534305756735159790066037001870497344399135015605133041961677764160424581905369218653517124018955585501079526777544874723385921134976444368712416646413977238762065524098887730563743220728790101042707356895816962073550765801048282557410034499448552868916491328363832858144884926391034228893829349434532678427181997023405776670269888383684004303635365012989421178302146093770843579156097533446795899579433325845794557395454764631024105275736065273851708411077724103237949349926610424010371324922299265578518844069050483074781126586675027114601888967050154838432164032574625729242929151892610680384019307762068517394366017587626698036294817238553430588271260617562450042093005719650072378324848232109236969034359372123982666420890503296779126526327070202114728600815018258577998622558750257589257831150393921745426213963726210723281272472939550802615011499852749981577437131440012668315941520730600480086115505609618444846829080520246863079064719888014134719791951665107527460816375721064482858132677360948648694091672146093003522904262809524447096476993075181325172373203170642514486596172786061235046441168514627170926040328843470368755104466633571690718230731710142635128221475155798772973073013990348324691222555657741751192959249635402888992833869790422632232548771497287545674495574148119509635736083341427246282846897085400079791973303618748626333517159007043802180461183209613288505979921991912968890716557828079978206967201917511776321053119343672366386987734196615566281671255572586147147875797475000643536149658461811508187380551877853636532051626366385202934891870827808206439997134163620553034241195688312349788459356946301042486307203071215848176051599054714052666020561748529735528162568242992292713704320621125160393860719540991171357985674662734267755865614147371607622672351624121224786583375988273490258642014787498938060309161423176442564571923956164773233710486651508667206055867002804919674749066513346799021942561303976349237315029369953610175709689457956051814353355146222726491833920375502711103446927444634638220176018416675220926037954444012611466597327682226597211058996211656631526343664920447420276991898578671478347166119776128279355179967207375956528279252863013381002250599226677290584063039736593003932856540840748120873837270355151263000817572168463770929064266492473045072754068184079640348829827637565739550009107850953668278048914463044905243237217908111784531772360167186142033768236821130174495395117367695636291264214667905753640655523639990284266504759619701483337289050600032194584459296361141457884214549742198122026155160681841938129458530262420842128771884504893954791696854742277659417420437504484380268952494083254929196494667671165823382224298649387753907224223254211897908754033800212746655769105661686200711797481864538810245117369851138681067892583759461471759667550090260570089578703238037235413056540108795086476600209175945671333740896755439403491667863949081571263861026280208932051582269165238920550264102780317440143835556498785000279298968436811251571405937378135412473540438028641940875348101951404479476737228919527657975159418672137124841302564521631371051140923587995608837636781425709767021356603939643186844860877910189444866746893624752170253527472277917729464428056785942350735061535545016953499622012002752000552462110236138080257457210289948577970992100892330294114688140179913172759981588820153927839874714247015927983088433266537356595507139271604350077404708338202168056237691636819737140338785626356556645837865519074061679734652385854754939217033888505836374891539581219993097225916323256524681180531586660393854079985167306054764623113999805846689352993252374120874587423307095128773488825205895414417468810738794552829300829177186714205665269427951381487090860649775452674754646133057628852898893212793883437010495124230071418886037543111998253948664305434379312301138368997633975137323162622839839856042907306056964106388830798710667365035202382138444293893418721605884643484311469499354839834814083218071643145799859185005747870897420389256206501173179617008702828300873218845796423835227269116429530757228634248568123243780872330446333880626168049819523526821789137517980728458174101380060921793539676584345827104827650616106464869929536280493570538650417055033845022925994360217379081937888278204140023447650320289590450979254849941804720680246622057865201306553982988592231293482767433692638468012077510819328469973752500032463714402465346392865587649333174057654914828510094731909923757810004138768936546643968150576242990975875517192126272820245648118781102144227258923091492656074603170673892569089996819424629056823774425566126191782058606713303243347831276828832185243280131660057595342482603641971450117786617123839198165181364656677947022543000004051493430151412993985842253216932298966567083164083480450217801700149590097612511269936448219155328568333111151857555881022198426710441359047212416579541797972861931419688311352373991318237874767382343033994618835110425654499395115844175358154161380310899374999428203845448869952388808164560117436907586178509462760025600758873956578195914228936138429529620523172406917706431705138467632794670341199098481763982268153877971398213699599475449896759003645250135379303163307754400279205237347346965914200594496521480323330081518213628654070130496128136877307340513717261979999378535074664680669663436735940767768847834399481910501974620802197107142140194678893488330069023503944602483630245830681454394960883888664360256985370084588787869135520355678339327557329300597423117411185707923821007483592218857533373541444080892529462816598292394933689014656145985760870122307258130284813670089430159913953936203062549086691416841891057087784272211943718170619607797600687219872640480321878727329138291088787101721484060048374255344538170800322530308882470135367259852729987445095042289645231164164999326753483906737042313633448236913483868708163013216856741700765896777088649672224723256808447427176520055104063901148872243351270324307340117985756215112422658073172420460674978758547796369125074520505017755138937564832417517491280402336231069583348225997267293177294068591459547144612689243374760902544181731977652813723001916998327339095989629424778764210587979470088857000583164141869493786633601731450352921237869585136554170585870880455737463673785972784578166921430685684809729311745097259671300443779426962178872742046783609818266222719135890405419063882653181994798957221363768933332240769311616004707546522352057771536594278900247552055037857596869085283695410986740987082809747571695815799942683049480610541854687253943431276953118518865640267175289072574481544378656289137081797698757460469792627597117521993846894405640731744971524614300453472024104469088278957528540521983363653858282491148159911603616617921450540727889647254496165363271782559943199912743382833801180360571960922081932258875290020100254480201700114540906402377141856738467366158399301337828320532966365868569996325223175848759398008564991100495344694650795282939656434893580482282417206632190119839487033234943885132905014068277394820440458363220647260264205880351680845896196139899806121102497570665345407636103648203175603128475484673739459735177264346610783716316697893307389135332071040869068196582264804371699197039273410475911483354842823443444970459376766288283510380362451163097587523782899366975087527930650004736235117092973601425265740758939048272832721576870705675806800279991355122629894855267882991428937807395374560229400445813162362554069685815040288673970355422175707371416316177681037543592216659392485415270435180984775916636893887462245144382416280994533674771943087368766768401035244903307190241399240970428033148513248921677382735511961229668392761868872946583870787839849065915373613404723717094686545499972567598679698415493819749659499238624753391161694941546369867182833389576597958608169854914593420675798009658973203050291871885559612027777754823879088240326298040171661623012446096071033189437288639804611635222445508316400321794710414308250116676655675291063222441717863340816311063036166807862952226145312072995761263563479950242354161914206825353854638832173678737060490837756105211776553468731244685077300526175338394689744307051423906678823990445811601944592721132145137989529015734106034894402446224564049744217740350467506321157639491465251391376474563931007655377440370925455609732485526900327551376826867085336122521683857170503752999942920342695821118439041791384344112578454332660987388996656905654017029432773204717195610172077302348142311687720264550168454178398077788485919866853184530312674569223240330466050110600001362620191159137462274742511308024824464406341237447753687974955054982838796005888961684778659643965208897123388126945250968160059973862098849862030334429904740355355583911404576365621116933279223385534280043888807529245688665258167756688715319794333128626875512111879268346700374013151034610949111250906321760793821042982349358408144603289154292167438924756568748105411358811335981447638312459356070588547411244271670718721334269279456160793618264873149952581057829675099019326615349940258804770540502527344175274221909912347084836389075510288600219645801104366857785946494145179408025070012771732362975599951426482154296162899051868416502766834288953858630574514527448079865652514409065619500673474647443861074187368689978662170508779315522097055308943191479231249200523950800543741198505358422955393346841044736244567442853220469481794931941137654898738393380783804465127207451426489417748651201697978785801426674610716475107655883043635240083240194768982913477059282515835185716531061016680228850581223941145176145957280557018397001717755841472827988862057175698713230045991095573955786140684212979283995177477161804533982119083288499522167080932969380748065784523106137126298074380688149397401640593006604215645764085526502992982992541283153108729318962329683994407042225773627076575463126081436872912161033383467293903034119448014486685551540798345189314620279885969008291715411487039136458787609993100312105233690159223891879196942962807357459105175455847825057246961094776049719113192376741360382896810478918760030926179127164200416301107860875250594484644049271315796071136711671753671349380688719535891395002781540306464667541387813904813264147048907909085071397979333161024785693051084069487750688929164951545559858698439920535660559907351785540545666024445810858364401095161316385040621635212640497548641714940787654793139429408284401360827214548363079990703870468018465840149264831569640345598792755655112574724584255360999356863378429323599280164111849095491389523664108559910268933083135538216568220596390254000902292689479417104236898624516441004732060367669315104121610722972038691215458595058574998649137422646117451876420721335186849916898090165925944284813040433773878978061742509929799161082243113788254393219569294056448467475781988429509110200180654498511117643662070003717302939047932414861282648188484807188168785442247001526367100304529123312788298182803124724247639025337700583498334025206242371833592914267149180200341168007408521682653263456014502922467450901714285785224708285679954954875929885864549866849551569849095405257954813827662694707068707125736885423115758471130483634796958004768932333955931427077731958964277877995653495001101095638191243425493027619494315236498044133196170269286375675418442810643763405821653537914315439748742731188858668571983070531567028627277368633436249848508395217572413992040377620799774897464370651832050097218806717280292448356871627138783165962181519886564526906036503111846688270430469245531289674908107612418769991554965544042909008521793762155279217633886540131750277025749721710318470127274981130406911474262674918387831436286970067071606642063468096227305965590409631673347327606994204277918239877816345601413557662336753543024217064549521644370779970059917478387066778870167083997074258717710961830940202744161951913284631605562330182777231119617614100826265855475993625309246930123026492235237103143574102360451830724291963170849535724640468379101344849096444661225934972573142200338860154155534959666897709550410973259972441466620316678914496810672563133432139982093460807046326233829551251400794508366351497419931060649498474275575330790862173385083622659861699830939562270794397278453811637123374295245080215399932576871513439764231592497276734748673733083221076693590084610996321763762489988698409860529667419741861382585509073115999344708623857745765780744867012163857243195393333198744957953159679314665421404545333188227906292763910087709323173233628072271502054961923543439606641317064381188410165504042947622179778664159310678566356861402315518430630670102701009001319969033371776981931161849988000249299181055677287553848741073110552636607534253957634530506618698973826846476907313518892198488910005179938955477268274250623279344684141824353200651141366149223747487081559567673089514521054605276308603913819980352703343196867514653238545666129223873481309452587950451390706519993677822515559511823355824545552008555138967229956753902304359979509357635322071876508557629811964154362786361860356354740720037332787227234768080714504439831436809500596177880959387270532501292879327464870411095298196882934988531077485477079195944798379386575310286189896673855833885302846669126170183307610200715731398523976593044253449706697616408137551610846235396530196341786549360860296457783912980446759147496443246285936473061990065679354727689169314596870078788656792246956690535171516951477838418568060218075408279794763569053971771632942553742914328483427931135792791976538070648302088164647859538009198789816409198066581202136818201944859649010036685860254876117011618689809654290029013380181287755850589206817470350095640732485176843437536379369548338135352504770531318552904211402461234122224835180396593958739230987820723043318966469206687944355340548508250071548042110236476858746018597772154072661572215611784386602899786715970926264718820293435251981322663396560898440863215533354440280134103418653131939243739408475653156724735247708518916423552609311004608827180555713690171041764611979131575169419591398640717049338896315928126908338787340620408592117252098122254270831445581524616214945497600606737697785327576041952646918143779575191412474864092340124050301073250352061345767199682980860468980984110452516303516405019148251027721620553985401514753733439655790805179853882245192057399608838615596264303988326534910646781788677521439910947423441344257753852167193689715586634840587166382275591844848122739641373885314629443580049203243265772523020933724194496523116622914108282118895956714704679424281356280106156521083743632700553886183704710305695853998790786072796695090798646898656689291709707275830859540823287574027463996622994471155485747068050689336252161534720322654022629116130497043084393318262715895771135907211121840936098197732714706223285473498958819593687657023212409309330554880376658665760719237863470850018196908129145095188100746957328928170337930263717634909718255477852017659815707179023687277515170402460864857116315119790786703765517952414137068016704303895046252325777881275994651847467451044438928294779573436270423629740316578181599778392555256840054539700595975776950457707000405249751263863926280508553450526605064528093744901153824844504091418854851060142832688860492048012288008613279465771098547987795462279560314537635546252009908155208634157351275042529620301159537279449141190303786492084959661279589904456583383940106870427346527270852759327655116112068315091169198043040586307570722033364208072440370565066226941161630853191048132214261282887539388786226045919955271003623678426128473325068907765486581239929369509428403821529557863864307086308890079575223387193581530669714075112356153633250316464598723098507287445838283812786265313573235859990332011235652136774438162832004735531412636562854796367019399441207190647100404974642977819320253131281466312018081037064535964158623539256855807691587050557299758862700160179279015952101653179328755729611396271813524838919373634455285180607234404238465364061835281189960277906367588199291235573046244706520736342253591766398109875932647802392995696603004651318415638836137333092605207620191724664127557951881920029787827634227962800025268405470607848792517973460239975540188647232488632891328209045201080169382039811640868155510339275660122238470822443650385505919147302822996244532582142938251026966698970582259248266188510499986102513205911385771415573013100020703358162966134151852265780059620818296996171539973452880266608687206168976824928326764828020965056458247519174415185358655063904242423985167548926038463996082552015284241836107690868269142832273021184119512108445555234430895108050974831808105007471716566722372484739164617841937940477058254237444722367906520143999571424075723734533031591779310651631479911176279707559014945802346546189024626434381552794509746434071802785069408310587001584330104276427733365342150774732393357595162929295169165108343095030330494889572083668243065238235693165433093286248478775732786406370917328954293960570307157892165679231710919837105144875059426686551087062747675960201481388145188451985466104096632114270471720190322035145150835187908100477934602429132539693676731254446395965560678082011374219822855209216048987892607722170963315101368133523036362881408006046864042853001676393239148792262177114385285433873724597232613827496207166130029216607378648716532004202151239453635926284739905148225607792791320483411459353457184855597152075782931550759282190824989994513169016835390450637378488762631462818943439179852694997585864116956626692656850562864117183562268967031064180988077537342119157825217001573501548820619309909016519122115567163649652648395625409510222550214178032722300114813668564343158832936512990093810118814789712333635006951281427504838426631987003657557584778336356829245460682863085741029198565982188512770822081048935984811241937776496279450522920411550277621607599648364595030133905727392059332587098131588719364109615203206714705787652433190538507316294429708437146802651206284822598570252989869082251130932808414942169748043713186936718985003036100035992775500739571593587470440903038542272560043854638144034506937406867548526033791605655197953536669729705411670316822093362611818437967051379870494676213584733677860751495897251166592163341135945324110585864002519387612545081065875519945596286593180788148559360231277552497127570530992271366136555113051146740110937509071233547656849083069983164284840482000190970809071964351659219195193865840019409141791964735809558249464778034021826673834772122883605123258738874317637200722805821232658005329817037039799244541676036187765862700463792037081543795607225383826875583917560951559442210099122594366591627175621911461503797986075328468500316895075072747409295082942171623014714294959939979085996620352569821373330090722530668498979419209958080999161816958737694222531733138326878528846700653075648167470327392275786649469458469489546279916765963076542912252271506055783576466903228735022528563041195830193571137346145655652903631916448043361661148619686471943194228009161615044771976066603398042851889554727148841501631312791413256269976327679849334194186607619461019044688970923194906843635875135831278116383265632835881144362612576150415318903979556583163874582948829977900461655857256018405139436495940365140140927468620969695216621124404650427652232381671228648821950859062692488694805941967268484893827597633266290455567856549826783378812867601184644823813861044212561912113270226464879140017426688700900157337771065090350984147976902716144817281810910058182158813945747204650660944279174403788791775284341664064003293486788819198433713636656941544652975405008648078984435680781307094726968229743523381232178829407705265017389776411476672302420964091111739615909253585042942619071965633049817727746830958798484184489739390654250169279906255770022309858822341931705655457356708806198618878040700107951845986125611586170927330001452570561598316355802140784604363687974701936896322211959469413251534754634508315890891445893720343218808299648443631652567313356082196745945162671179455133270029221131683140618350580659737748879580671306106004601736641809048812638575064098213050236366596834942057470001307856546936509167014881385867472088304895504822583439945227467136869653602994624307135940645911537515836922732414474917853712843668903002684525515539943543714130096129019076147031559316220115071458386596272493398179260796159235176476178683960469969999625167450442343283377479519054886723590331258086262918733785879073215876665950968199052056302315314445042138928967004501775955467232344135127459073661516604566659394946087210566898751466931950589705220183051897055591594652888547324228969180968176572744220562095240049198496047250298508170110831206496753348381820925443573826364213509478072245925323907679710836494174048731630094007884769989119871191692888370476495523120928922001407790355275662164926634922378082468657063632639821509843721688480595831443740339999908335000975296832262770747970582171466032175551334767105039155375180555700171337352799131507736847660228979089035641313630371904794016376263661040281376887197496189895646032382776278571753854022217399316807516703592914954051200731962705339206743328583071873152881467415330634957543672512187296033942430302480841093619928811400634330141882639596376074422380060356697578907283919471423776170139859815509486233675971530466714449268691190178621718225006381529153153939968564152234994243533333494091313516273482968493045558126396600400701773010194519815964863345179492887265723917930881412754721345153823606407960519062671472589496917140901333427878909880108287521818609640209069122177929130243441151115919207205227056420898463059885586735491362819501850437738637475510815549463002256694714096687022056099101601795079962674369859690874181132008951041170495283389815045894992388996288550913188732000765665940439017010185351907287268150473335617065879692142364401537691649352971054233864664295873113608671136077109482090588324913574368116596673255775558769883195014922524245676713438316016684201540591809130558025565833244820584397639299837655913509326325376115807003457630024635199573301773723995914473464626842005544496702845801187733050915308218522154793238209961456124475543588744675201646835773658881562439477459107103978359375633360113918286554509525638133375450280505357607201319817176108187020583479749467782221964734278798320242694318104705824643922161039279198875368215081972944093023558139361973347200342382299492375615953952865685024548306638831414911088166059965790877762191325074790678713610640354040639060512999951515650787492229006425178693654200473266502660043012873630302982416959460586745102072750649128657263049590362573354012322610925391665179856579728902104209730063633234922031198177304800319285465597254693638804829527787604586664275893072445879308234039018123492965511180858739431961362572307525225805084387590746801005595924434628394147886167127062140383219399536397101760868459123357241032937225093568895262160628160047546848459602284975602426523479993543038096211637988907971175108810901051504620335029671199569484505911406158433905374925242087564219730114852094668949103837235860684437293158110459443268015581318627742183291390452965167305417474676717555256301636937132598811077934219346649648381479071342486695381802800361112627513506280901531871446294275899541833040562357460580101752883945126735371551515323048741146870300160049999104780681144787064950072497437542263206008129571755743543207760096226179150617030028668185667543326916785398600066008058447478057849612061237191658559161632404258434374616581309517165471179294992766111306785345950236962356162869886857445835138833084326031608655770263201415279404593529667478314034189530971712705715854281648502839725427373393628336335307986033109849369232004443059120491291716229951884188424685989025884067287362780575242822173990258865573969211670151962783454228836501012094277667594015931666890958739871530877056826208969292862137841784764442886816804037878137263675546412760610146183016775568390815555798100360041135840297631861314282381378604750445630725852441612571575566845179025010417045123192812223676748855004966083539799158514613403047263473857846157033305944822315336305771088201132016129023768198175046723879904159477278728893529101654415099979490350814245431288433205310806405041403822822630370136922898743968382140611477506835196259166370673694949879800130194551026113722938626501729110770671896157623519838053498438917281925279538415806483913602241822555648985475624412478512692226050297427770844220986428983212746700615514720954985729889047432441266264715398220754884672926217401642707272957686901677020735469865632077169071167425011721734442802397824383468856729319934127134605893257618573388188083890540729697301684982417486469881627753571424624749819633525081775152601729631338539399753399451131794436266648374347895436801243354675218614431200641208030910800498275622841926500559603842881503133586499314862779432697553368332120138001399474172096149561862383212710950285371315615322244451519639296885826990403920894894203381982161097052326576054214071837309248948483622490270919155152536246547822029313184221364693342962248424859394621244010890776847688362034658788888174014331225621246214846912262855889935407335341448492613239517585539817158407685009689173953756544920149757714607401975731955415964804321557408637692022010748802493568573064988753658836678297818092271516844824788752262112974336600940898835718409158848876207643911499683922802651359696715119201656401390299983359087678662075100375684329701827425753151594488537734950681222690973265127977968760119277678354448029082662187761430650534109085590206075329840776702746649826647365000420902765471878807325602689863513702935794697508457405844833568913319147782449728313668440146273924052766889185650853478847725997425597726091971443326171578380447535301210802558667784276133960692162241511860912182249886559794472559745254421637127933808309631489612380687117287801294326031830395318377835368288404375374041035164695101926324030996342501423031304542644730511475650580385517808012923632744770293320371691971799192445307495379325715914098804967723208102370888751999927887059532133422214198510947828153025404651687146163400097166914574126180761796429155787437113819138890829759652177489259052422545504229763710593462108863492574794288268263236136631965812205545076335245325287067365001749237682405134649369771042875415745318220373449947409000926241102781213295987648599511257483192148229770017470852397465855274771423018445716109986222142173223267477764063777359048262288607189824409527872490979405390621759367007820307375992406270372713275170518500807887519735312152681311581546566618040517993492296219677428317390959380244705006362932929055258829474156838229585594471502855475317282643940567090375102338737768150002860577511181202730350621052085455515717995713933532432609076584012910120646569598342653953465930781664111600593887185026941316949688570406859531686637283335638183205773422709086921045221748632906751611986550541363389129197350484600987968428795820694036577432585277104238161372906097921642360315752335522628627675678200468719994931460107741373442002538767554177853419771847728457831504553054399512668869610682650037015671227602024015100578307714807716445997960602016063539945751959326356244393701074069675793698484151167496018374985071127966884778865765707493894843290930616689253133240669217366394964336586991774341954470128611655525169970178430179224521924108680028868561571396719891289754138376440226661419518830104461588714051035413039933605728484411979325455841975154999699979910654698292000969219271854331393566578890724900874652120034379331235255741036245277963540915641250082817465605317057953273014565139773342416566571787778536201204013087465084325703065899986571666839467368955628637831417161257700881040232167191032801417177173570997494657353704806493759853746727149652866016510468464641721046393767944747696880213660665663826478435558366351815159739774656810125603548914899876330425260515831973095518582726674579885664121322918549690516506122583871458637241876054217757936679473685262009365207936051136943848818174330427477334520167600974216940798762487005274716156701088530898731374596689501491317380655201446295472537414353949078106940309319672220467835855183252030683084845766038748974347255122339755857314044512573867733860323298104012056978237628309225755131997693271260660577484217055701793047241696057302520310388595052795048142864608203011645541932400090476418509556315305304682351461286864958076301836459843700269549573337466704013045819246712237033497828379997357359446953874229646428429789187733177133825599928842531053363024726504731268444003331736486011025213933838755500208498560839058223244157463424388662148946229767382144986508360813158760717775976793549499280963864542493347057415977288019342813015979518274214739855539300607775339029006777518636954219211104851899194246451152728492072742916215971196011780791297881228741095518869436108296861457004369581600004838447540533856985596678868641938411699111013774242417310996199553055011421248531524068317358698584998535195896555247070536626008787298514054247081516031321870102028953153555832357653885825080512685279168363475147413574252142585710910388651741002475404935926017284730171970523849710200540657297561291640298769963014500091039490305195692371663070752924287525917079722290313563247614548733582124393723448879393406098623586238855078783652688481029605173281612892413440580032927997271663815124512396810790215049262596317196553849497322363802397649563775225524161504224469045320023819071963992489480894834291434585739864155902960695954680921286605701537360673006357112787499647037335814617353924957613636785146022335748168260877577703403562955563257539722099018092067089027362969698939650198038136267861333648072199711047183955643700510901878632301494749842834523430038439260211979199973359387167746487355361217780227701576617887929789379852011476716349856721260068993663600504909539510187955514623991476741949252147259780834678265290535128221572178866343832173015502334555289665590065956699792198916758499132233097024219119252435126847723447926125035654973246420748059253224496745190533160110983147833307435500345594493252648115443365953318197038463116164276436185810515760433995815602147463225794141812034087534999936375388560925303340094672495227299637303913703800342064224708074415025889906259822233810937603768431904408998469905497436708660615594680437817312347172309900892804945485603915218463152770489452534338681427719179492586347730431393196372295425997293421424502588347807605204752326456343501704262679122420468033912507194439911737970856914531910168531962843192986130205432881623210457540327106071827431475067883686674136454262208662181273562703591055332848565258339849200947460439203478847967095205035857952062512304288691068361504007581114355362123435438253582423414111463728727151747091891791392894270592258878946556656538204834472222378836386507947560062084071001040147602290586247222772540517230933633441224938565702909513012077072247691083240383794917796986056737866810111779033459765974811772788156208427787485840635941596866778893912777740263847856113531853354545932366844867169674306809866990487327051056518729528886346709828510345401541971066495238944623628927569146581677018082204102823297426468844164101492829329583026453000010629688494909386962237434416247518199329816174056716865189635762146106448407758635680419202123891106891165683880936305113700949010019437739377020786993581733195023080038100708254993306229216640068163152112040563613096331806198234043048622856782461561118118385507452080770756658207427886904264721447120859548732568213602259204546229283693288718545194479716154270889996389941512286346476463041683225684433527135060937751136792020774713783834700267080636239775158377373819590888701648398549995510863374529583482175260190932407914436507047944418346152984818327312001479167250596679856847555408360325296500888904252601632243154060040817141162188374761605163782627094762772051345697639893273022064939740212728174716400163960568363048999557126214439066140067540843601491567015715859894826571386607536635538407543245198840756661578369970814200522992605212670007110486678941152492796931702904095556236841394713702811816393117585162749239515133138989409156286691872765770606990329282185088398298728689946615320993157707918307742690881399349772900141416758645058644860096084762824790659455615885876115217594483650739154920409127029211473100102408245998177888423208219922636831399079277751117151268931455283408154907210792372122240717755542034592740382963813165776015771464471594333662432529936572968602845735335987148455874542692676853451406923415157815147094493713396746061544159209625568569845362589872655144035765201144047029006153500707469001097944096923443109063197339791890342285973615998909056260479798048005668963767524150377433216185382760175164494391447615460409312681824811778998909213352022476795100472747845095696720780533324393300032602801091514028037637078704560983428460879633582498366506134830332088598174264319416621613198532277076256383452280879925127010499061440539918937200016390028120030258765060016765340354276494495559961959609854260502560634706839844045951962124081888989801728914327731269870503742326402067364586453952112773603138997293082321989375927422517411919335451272507696108599762898556068709207374623452480904800200427928990994777883035095965350621264749991956820331308980911852810607331151786637623628206257063398834859926270855664508517441309618790415439151573565241133022912904374645051221927457733301614370064608156599840396557402811037117347559683448014059959072099847554262267614076367942910082005222591589200868054954676059082297248088564387459266223945567185080389224326603585411767376005490179957836735400512115923958049525290158967393683235626018554125792005478215242513534238771696676783655025654013316738792197248391767406269114016042408039532130961293354974101075828960604902373833897365344985415353599676934154405708410818422172562129494661037719285579291719539726767618427059372171746010084760004159726589919696023077352764351518635832511910267886227339468369234054625291719659761674143359279215027527947650881982863349733171012690962856735531640307385808581328104485214086173608333859747987985890773805130941806940349874370237762755323727346664123124282372713011038532285673349351859686524276011545509622934047404795193656233443243734936759633567008127830466710547578847809431317167874758346291209440354649147249147645056826372417397560087149662327067155976904152342423656500912845944536717848348418476715980984391404662093683722186296304516158520355870858242412233256578755192276253987168413192688079798658327231271623669479146482932370474856143510176190748636698320194817253846185602715624359064552239944931657613760194479418705995834747428223771324194467898903347599909204460860475645648693942652815057081218953772461065337171050240272787968925625571029907687352693261964745679145534642826360355987989565534998559999196612411945992351797929905051735914297190332072141234031365924928401096704907950876415520828795537697464580611514406794480757137520427782411383508859061683531109641138005803490992872684065044247360885676389129124536088328243972302300728639556932258290408407982007772897758934332159132545530364540468436272163006740049532882518792198094302067956143031232323215627806637517684439108130650785617224599414865385360523064451285858587729801496347045452197216757430325861289064190405102943752197830486210595822774619729698404765213742907370890663656962160061387065757419399101865286547383945458727814107844704785040689087866368840267463850130826661070588119389262865881920641709462063033246743357059982902165429429925362275432093386518244399879990109002742374541763872470188795433121696105435552489454393617109849293872689407427622561879588924550563525309787062118661503394839703792618291763761001493222628163118257422882299223479500845458729319505592975319536094877806675903770675615925053491783102059941335799453788717226823357175774757714293822106140751483408577534439539117606200247097427475042432295650669217710382440812813281747387026393806861681484468419832636540489081864082345031197142775842796418940089863277895462051726459497097413103198370192608851359667505603247074317065074178932661221165073508999498118259418786025676184069951001300579871233141792478576956255279394986504732997898221096742312018151894857571362164040511848309237227841232524207978439087526675656436145272992699272747208350640639453108941682741576281817390865788749673728809658630125165974046498465025220652940512683451091736817631477424182891670282579186468390728834248153853889617017102842642238130115976563175836869877932573635198910358958885576030302349868044518697767932480161281639431696663694403050573108175464363209022193657776193608541106432889728173934621350674447811185240348623122259557580389924583363456854983799606198712416584372029494482775030237175659385691125113931175270044115087253021752906471938282575735063368460467238038091726761194374426408022650505146716708868406634265132106796150373005426894314660678499863041562837053025857532211617839019438518388897447566581380807308986314978388179635204608786846595043350039599063103549365523494693983344560536661285279382842917832693257989737098140345057312567006598638906460224149414187650817330224749301631602116282690757787274904627356039402633680518046421510304248581861008916694580558786103910509709995005389457404343803933657497843682283642300221977476627354213146983077390582984255071714325612891869225057923393000563741341828089682407337461135322304443076818744420282146753113747027302968606026168637407736388086322781839047329274309292316831369397868888254927112048443340231807399726100629991493207558968069361543495672717085344051944942439768713883370478039427915664438706653137842313681557986501215343322974539165295473362090216952135606046556539098855850283014140278084082070265229481776887670900759989239930785195731175217088404259178610664295807959942934338342931798943880364963683495594756033035451851818078750180397435969448107317722221896151547917522354768318102503264279142281857100530779937839196751181737589295774377367535865031361292763362839410781911269589818483465168438426034726484860538014081127566850619798863744136125696611312293719629588372958100535362969709392872550988855558129400035706255621851736929139443473083467765549785469720744705163649126458556971526249419823874399653885467694018636034255245967385844965751274848617716175067126082541040909187102108206969132376626343028959672660208848324317630441713489145116960153098451239583928622722731995974194513952146927019061337048857852778906154230299076134371127666059972849426693942619636959476777254563274711718915329887441757489452526562735087033840575074410372005065363534566202495707722672937536957698996077134120504122570529562790930662434400938120434717304542899003893536064714006681857245011361643809661337918153265108895699472655633798335962800501610016968477875435987948116201146131828481081338529232414859916406351106572283924024578459165880394937130171113088100724870798921541143307209966332153846144853053569987271483561926282562974707796384050845632849992260573989767842422228897526484762518395465457634596211393639669973900359658558358481870953587938239977031510328215450859071025861153090250979185164506276137021177954472958041729803953104791011692649087015907984466454966287063662514816666032335932681204466195916726681541519017109593515631547101766875341385871309639775277751678076529355221439435288393201008991850256546445793453981972597825483864399906939882640479280127013047829796609372644570172742227493809402986230767043112007088746918346863025154831959273240546644868994367643041815654251242229749329921989719102168139325807566397742037991090916997596620428645608921835774693334492191862989582055734754676151570001784478728429787686853203815538105216619819353378308160291722237582942759334367616383227715846883789529091006925533576233879769758607158910983404433695480220767813257430971615148342945724246935478959247152948677632101501644722919595584084768704742480737093818740055916073574517984719956952944478781204189842819488196532004294861021112144312638067587175477781277322957630907527431117010673756839675237023220564594813082539159195029792759522705572567307595743557100451069353266388467209785778284009555173981925764144682840702629483211905333932359038983314584443307932161971235608637714457221161157172579781189737342704022551420428134031212462462310496290659415747937027411618592899487257561408323718449727754190537755768852356536689130417187237380478780422352149351876465250095970712713067501860192922991698457582479590018032956738330683590746970004897837802304967208662893439854343746074308807340633205962019808023320160060567770093256685612466810640704017445209327732971573684475681201461889628042948116505478422379437697852648264323088461959210933456505440958865479751695389861793192587020227512470552684071691884883017127492656603622952147862790535141490007941020588101766438030928349218781276686421736264813575194003768132001435391923381341201828529327858943407566038552256011584103568999456034731589470228376584371831494044828359472246873056951382868480268769792492780342570194258299597859201805111075655754114994893116485611034670749442675419749347063609615619314477523617716532439037881423791040833073411566423712628214866240420167635221752077619304531413515941666252808083213035330159971870661346839775797083596242082506435339704175424051004899668109078240393464959113691095806036628399464744295362440358041885922991818331723661235963114780448361698737735242042906038795650643239018951927505776984596916728112611980717750858880362810509070066592465101124091644836689656680116151765085204345853205255335246544504584971238190976019756110391867895068460287864456308508856431395531274627136923505267827761181871475173537934861340797922020244912826902424512301417425227271809859879880523898931505323076899036340717871119990093722725889981530929890002191735767800203973075389016086027191577510743912367268591899367529553083957666919671653639092040118561153939983051907956523084295361987362209214587053608293602330730824443425341516158430728992889593124820731833775432647707618243727085002184846449085372277344148290608222785329543940476547349687115069975956631378562405177124506381857440709569650944361245078721956369842842525665378652261739349230558815482553680817591395518172786808833831072575304436597018286476043323766454173770228722860248196888881710215362352818346572075707054404103756959898376163027585584999844757958320241906417273833141471756269754170366693317995253193809778103318300596211419541189374469527753916084491572927973387659437731713227068877542485183949667640957294065674014213840710532262029349881384994705948554054946778733370417245031463932879431236572102430263741737781901479119669078145037469334898569382480976640000837692052380244899874085158264707984184309361239252501255297289584715469766568897769459185221374250773288326327003379967014784932723767356261295024194897880494680776664095272854805022487047582957265420866161071612793290014531072868588478935596694364480774566878843844088229353254490638270194143241728739176937405026603312301413252774432978606622127010609786654052680483656780582672760498912205611826738438711754912171134549674540158403365936534389015706176020473482376420817537252180832420990144546066876822661096048389687571418617854836799494637871709820016946132856175449902388133643988534594043425748547262136480293315460434839817314453579902397641959285567191704985963998230619163242203457617706448449789035204294381388722171585305415118579537955840326677919495449257175975926418117663662067526934407519787958442457646825677446057054941922523700936696496312709878356014912439680113091256701781681555362572096911992417682924087507303827559495347045812466290927370804666774415668953568441933924038255197958985811501272445335290618075145660143568341682841405123014687420045910856414536819879685726195295395475007255668666956556195025098107127119231768350451781859645120942618631865491569069894439445318784182840013927732094441671363123986472658878118840750392077263978212700384566679487304144648111538939042568494926238203817614906438732124756532494027846655140581284153002259095499476606539641547800231843683000984114268912778028322171448800082167275812660338668430206605372198953506503455136689088071232946676101577962764855760661578728655649002138925471124019985649522149247233560475991522606734691442155063166390317848333863540913846169190716142038868236454352900041932504940568222748221995378933719572595479348684084651725446004731404857397207799862831833443006152967849848276912489247267662571650322159975005288008019656106065805708535800187819726878230920357721927656994840669794164247444601990635023162516906132161013130771174823966871855706735934017019311807265784353570940476610971858868913271410791405268086052650409194220773875702976359440622699153016880424722844020397509570798326962643165801280052833113229579274725570376825170663350152904065499078703960763279081961420416903694353127077606731057274072773864461960698449899712099966521753300585191301649155336138278220217612727240659180833355260565919812723144309083169224530233142078640030678472566798139338684612129802050596171040378028250415802084233903665653246565082676923199346830246007635628698733467023641560984266816011156418763252900778803657089400030757685922721170600075661842893098013811748453160265694721987473298429857131077166598291210401438078149108480768517541882245665572295506877760414125835698024854165815652260787924646365033968165957416320880378522950745183367503378276614488950449023836518643645763786050341014277431365126931465787539247999044396239337839703334407185749316901267288554199398904297087398560818113965603481298688543271594405532880092719094225453239912932539400780102087479782854732667066694287231587920641405885706964732640557616392033935600206997340972150089188662115094279832465282145209029786046530542529810990978321132859233619113050953900572379824473104136922296792992176994548219358763751481301967437696079073634918022584965261618282597964767855407087726391197831272771871233450009047339618991285044588650200354561862808314645734042199183693404541079198785720269874537343708468508609896218453107601618630950725139332174732085833398803081583678858555576299673583129130698972557612115750038408801435727332436952235858019566064898401367484886410007310652124124460793029536330320164587223788441873767344134320805670190560610466436380289851149283501296134300272126059176366366483390973320570208064554371073665767631968044301335938806548833622903496477950715124700626111435324141098719569168102092282270858664829503933983156554963675528162078611603068347133566406751842658905025469038655121242540894019102238596374825087495010516032599055333826879905140925984838664675475550902205507673193521944320172006444159110556802881830789301847075731643064786482469277529268030700312304448032786148761233756924623947212368324991519378672848302479844661110220233956471929555985438649984225816704452222985765447025866003051501947438129641424344161257517993778579701953072664344361808264886294586637322517573301104742960993290522244062030636801750719557384713614697787579845212342169686351039680623806476336297661991573965879944952812299467937802379724676414584498682036436823479963378805949614470911944635069126570265469975889087670407454341868798589142751150810790331300659693217393007201030580659309780663608284085939418500975668328415038030974769638029275566189589953445002488582565666519982631853500313919292177926334505602054867608079668256028478795020062034924472323320399579771290749922098517577548467955233375916159176088762225340335227281578975340176545409752558240249584462389036778021287765890024514939430611424206072851635952364363899530021788947732981558420369278735815464006445086002250724055958064640048537620559313429769533041694481964546761545843413156102589121742478135336583577906417936993570949563067481786979833352811734085466229545867318707961518072892977256862031903375834464824536864657668269306664832107057341603528085271029853554675999684004262495099949882037084373073426050908787722440518004761016720628195402345545711477239266894125996037071045367789194149209442716190167144494315870532484240609069368215236797199603690951893465752270943025555436465863767294354168445754658868457332309720328582150293005282498803896654132966975053717819570969008566154805584651845238883459009112330924209922823950930903837607135946930503014527572083001179896566312139439851673260026421169263089283010586776206241209027919522933977119948568575819276343722099907180759325410949255319738512879817721925491688604584613067710031753495633986615479223906935067683413664236253349031925156990991573111688028936018789246117646194258361229059080807189510425926614659965905574207873463039634230553002672908736950143848299377191263079300000542059390525648371997292690828848435033810133836803519021201778795154316107402154346988054547299226434083821131807099917772949023845955681590298304882536596882807805659083070959042169709188858629788082272423374786484240423192969057420353417215712463061385250122794209343203641380448931130431386589675427361420319347863215059191316346964303223129885999907597193579892395520619913164177754152299059202943732146144698549090088167955791688604553206522859890548261118356870553252337080783030824867689582970308947684156322511580783486509300819796585884452382827179044304843450181472966405401791586821124597198490481705380987349140725344283216944494126913543004683977514563739179087678393675955187675313971731279798567158845662745572525330460512083211519171597176253795065675905120010997870772665863633175237996820676258593365764957636919636443649036253017489645701909082509916936236182317054036872882561434733886840059517482187642672642878791223244755121977021034594128323933628753936633002306312896070977042831856199770232522169462170396022534550339162399148356299855903100166071304802518793536603592316223057795002763465569857999012642152592322413364434500416272756882564741140246449623875639617560139416706884632179573754879705711447065042663924012736422375985195394867116340013220123611805317534503229721349448508849889464478973856572182192102504613925053821625655169676683597187404268683569352366602950994261239506164418529864209356522792226374974751151051549069233219265043979803083070587218985033788861561201549457973406687179591167102523650347281598609390185307956964541774675147564046522604132676565271379798099919681214411782187423569208898104246167473225164761671434226683926458480718696095068257369617730125942764294559545873760285534193141049120965709369426152422084648890720172212524604184625970338710858282470643846394571658663095336289314064543796204264299393186624397240736796313308347720932926823685764301024691417660626538698086231247813285535507027075915358425532975804566719182388076537755314435936837217965459736979450069426138413797622600978468603751533026129637874419964991435117455620301649824868766425165346639944140064253494422767071466112518890444935348959187506282215033691864164968824579424098729060898960893062462540265550295489903437491058923006259639020268632499234545812134760139450871796144044611057780790466092946719707083574065788790101027272136857443310662488907537238218427464901624143838690165149696960357155968155068216492356208656804908187941587964437199902114619605020702628876218124305110313590471281560674042130528842135764310646585141528783650838908173003985781381428534096151266622738458775357777371222319446992272138219233560733342219359241726168674614418237672370803893732117215619106113888684339107905929915352804061675164094036776776285850283609168288347266878628258336292813973420224653634037091166944146654264400571892687410469737303152356699630619788342250650639794273417585285077836679476852509870561357779612440998814886186692602259794631327316539907087151658828150237142581342440121516228841413931339275281399859282651015540614130771154781364482994568534676150389804424747324091664609058597251830370843265564430557317885995037629427322983601777881920872928496856844458840705595469015564305633117621665305966032958159386220106572377363708207843778404008773818793059245121687850517033775451012835641981818132466672663273973821496466523602099474875041056907272381087696737882629707585150868258713620721355582453765211428104479569054035983755677497291898380387655554816119840408490494945983408466998617577140346110734902513360853241724195602648188404079522122651575465399775869724706400956776963806596635616353973601865185224026801233470923994087526805660064246173103350849698145935732731432473625592222765575990836090210394575438236922709939788406370513891884948228618460179618693740648799842461733837707166852956533120300468857077891703790026931477585419795244411912737008707389514897539976230961891905169708033995259475692838438248868710900211404732789311657719118173859411006551245591288056177137875894069647422621143080855220672194307370154982285895636254975375026280132735000691359089219242278948590138430147210506482384117072208215592869608437549836907341571246107748705814216182419095781572664293818850191524073466179162823421143129631582078007466940126196798136682533088180767185821658911761714336887594025535367063780566520432330487534361940177901601653931706827191544883778120773889297675953846893529927014143310382371699188606060451594790777272908345443636714538998117082204135251586797327163499874183713340806784139020041728318372353907700282725321996271419960466136890513379355074922072157150485525853154181156304540696711086834221075852409462522940733413138264712256708922211246786057781950535510548877211330024357728922874838577004813544162864815631774917319406799779152572990820780125300295670011912667466345097547415476763540030980061685014334298420159593872026741523516525680389495465327583126011640325712333038123442982471038432499421835091627949805010962580623603950480502112546122272174733263959446293778921202727210591223022885767771725341010786650217150649438584526981659072015911722755961437344444024657704389784187563559235337390431190682941586929584670032839564960596101253722007230059241756833250824980621507244100398705178138291876068702720788395798275939080521738518811523927708487288677181482805084389934305370429688673485255652067894061848591103294214126194285118604677016336348843484154239175413894500628737654123031894037234097259155830511746132449250815659452443318653378415696823425827980319464346155007547753698497808208008134664648288582032710739311419275763522899181226304549594260265189808520607744511804997813057380937686309740773686357029508485887083910438531479154635158836877331105031002651932781111648859253348433701199863022692056986562968288011767758204151354983980755676585730734689020967426942380128191999165522667065764144858781375410926790450595979618772261785952012988320579353750597444141861916637735023868700898475117223083873988536796572602280645372976766602721993914862533204752495894179396900486605347180952863928274030189590620692669706360998009497347613613629084153901944223329766767052707384812074060167320328443914384128732291055392288953035447929815811680375301355203080740586894876844263771444335046669779480724460592339953523354142593397495631913045921717607216291681183427566878914513212122770165476455747439495639644939756399729178140560362583465302906460184320838507287200757322021076840721055186342479905298472542414079389927349984801494870441390781143390088408186446406735947141118088331646794659775134461690056715484337355220544019633349225465877336909765176215658135563390690237781806615101898960329240342360945792523231844025083326161296019561718666304611527272078662061183706059021277793344673816012146241799764516982524828724521827047959842989261555656595598042866590484738373442982866042076679156922341215310102499778459168004931559360479196971143627723993817222914768033219974799910930766955995784164359181351161149845729339290160122227884697805647579200897992735623948293436801062260899907157534613491466379023935164459632104576764651233707329170872885718507611884405829749138007565493696273256644047810158230426483707896268357540810168604212815980536620118650567309817884261131855057085289379792661347101543156414094770177013968504624460296554103191452992974000143507774683765431525559101330146686750000446780731260868647825160130778613315358871052946451159849494436667019241796417135832179263214208579752210109325912737634448226425524769138252864431952152974764287982597178620855724222079591585217816862348940552541505968434837382719844755111510638083838671489957860636684294994896693470557288464359931118427947074089237679689408614923287102916656696970522393823528848920172868025004286161572482743638485717683892162861225765656595215442051691457708297414914570595133966013965644799903222519992427178156505178621516662772230769516828096285474750989379643112824901345641417212114242058069836539870099800297973296165561949353505584482300689580138978388249059975043798093147240946261861299745391523053507187717593170540848498377872608957957704787322624897407159138397889922654397432780301209338905289493242074173694089717918654458672471569726901395593868637374762360467779495586564969596490101798032406412986481962443607366357501578909954799846201844162933637797141711661564421560095425644827591687179730616163795075773793733625777095255875590235104421828262125208517025463637488424600204154828290714960105529665066112192846098756821341493962849844632727163820268671017464806530046977071978325588438273647303096451994972742907849963714199265246830703042580415389664958083204269738758906589517653631469997545474313535718521897751312335462010995109973799504305141994653844876659717611169844952591053333567142117179911004864944021971771036632679251504846732888344310012554160191480240438793752144766240161053016790514959586412154771360396895508038038840160014164336131979687603443895267246774653828752044181063506659283328205438192137073441195766450167394786239317716702347808233947287305444532165919248136722981600323332656720193151458456676086665938006933434168072010045341606198142380002791517442581723729730568202538751726206422160122199367418677844068526110147757826312050670928279904787969053181853901359851856631375125796344995874516238194985766247067206109492255813625157214810885288008799462784482017343356299537076301615428049279633149928652377556833800412674134313622117291959606075023160981480490500927834476971180502699217039402763256820877376143188675339248177311576555978691961651142819723287684082609826776806779698407749942808798466893512455304468009926016739848143808640463435301036019890019414745597768671455994176188818997561968726060760338282348130637137576699651237073767526375429506388660798066532705466939637541449531532779526831622851331300027257373727334569201715893953981701129784839545350956265303873493567503951660891073574778592958705698658983100243719614041722958542236667919616856836820785678687983229981399496454760264496821604096098317583441494777494250962876966653918489888291222679699393624047803883092035350989166057231524574560800268279659517216661366844422922870733457853969298778926625190420019687496614562721992193100854220615816391778798890155456395249516677791777739395097992249709784787007535915514844016203771261468569344963122372301221952717182180243194501804783164931138538576034564490169947802996366449868913348962745501343701603104551132301270252275802445867576951653607595487270381396571843692774776574667007014410059845932404409384293955938477079216495916406609343306983615858631248541730819178015893704106890041475695079221458221491765031171328604001425668989636037911641333936306730306317590430042176893001322915679212415747798138686676064836906200996336016638799874019745776519727076061840127744836067207371669419167838087463238195059259527606661091135054907816865920187259191108490482327925102623363779656150855984737474346557675063921612859215459532168187649485655747929269525811273087492086433984292547238860384830354831157441877693082745398171187197526235085141131126898932465429077878526503329632388941798926836714848474748231333609390045634010698957382893772716611655080088012923708147096494810181032091261912978429944375316592046951978431610479836899596590352955091337419493256328385893112960647232598771130071700348284857158259685830758259775214778278895973751473206469811700852800404129301835566907102534623296068631661733202240972098706720582982517437496397909217125483531423281668459701640149045857059641682037833653591006148716120741466314914928783229417508349814387625665650892163792715487706623302333991255693143826704764617419647882057418600836423013912461392724713128473890281123130078969244949712144699734372717733641400192191894932840241721143030488558614739444661770806560786500401019793120978589573795417888030641926482816050636796088716750117033983644805222684575060607563464575862105321149414084018176132075550218227461661857555760977340788717267828652318252678948824626545758105868498152622369415801845647996467316085699793037809581172379284324545302611664320039412266880909062029835308413952345691358720689038604373226395254453127626981017994862888105129360204930616238849273640801667167291293390239878024242980411214622457415152085927405398300074441731981373800179321804461989269242414503479565131756499293933554213188460096212248325906015491841151416409136023754601232589897185743519569198030300971257781147941242750283205900657528509860173261971017760818305898221135363221396055612695840965220801089073596684165410017777197637147780692109409106068280071485223959589116652684376221658478623051762689839788466114597646142383476139254455020202431560113713916207368435967573462706117504063310384205435591627652256106955314640537629843046371062321073170113326909146486748154347698607799562997624601074364623206955779571546387084501725563554296693347472089130648965510754704006296083952216690119814893285148453338433898987593253536157383435106220279086568179170376718890294240466027082140516262528596117362917181216957293827779565142308586518348309301159711264258169428213931280939425588741447329541940588470300498065115061661972708487687531395915503405701801019886207713646638632252632987052664260260568775279050934452427970277232038666539114039990918031029497825015524580161154531910708585303468286123340910834703662848543533650523884015211572310130471980556797438561981506697946809883338548182801667410999135624032220222230798122118988103528601302565912065558072920930252108651624167182391906664748025698173506284013330789926856101436103770650487674838682944718377855374491978858785781799585186778119008365288301627022005725560628787321660879564348320651849144485081633003330587690763788581007193525510065934787826063530441925442375227497601288619136695415314736936469673010765629855538260412877683615431761717686249299454123024688368844488350438889150134430804432464881735358756532395005230313572481830050394625556731055161369644641573656173376228243981057910823769983205902564321418692737701969824402462082197397539340094521987432530012863457661570378238327103526072755976625779846471545348834650275151194486128036172548862270503317306761122864926099264817481470016092741526156821431400552935643938333402988199849231708178866502824409653445487396049868944629298885412661988752083917573861272441893524310367020387199745494740472368809426481473859328792444867172132784865641354409888056652284111832849963216402347183137646476582652173213454166228081977078079337031799365368729684440323181499021570128853303878287492470885192984304689572379957043525277930078802809566705841713660019601776948663300437520853340389938503509441839251703522811481982128025642805843983835616336774739857783960367808945468688922300326920144879846423715615998830267631037508430459586834042676396220972876764230336177247022345471968415162719664651802786798083689210101255058146485158253901468725072140660108252927240470686586726819480780562981874570796116538535572528229986747834323307931939546718111840145203192332430273528409445303370565088320325892821557907191906982438648548526039576365662677671990185900880569648063601666685681632250199025693483772575964239630102530366969480201915262118442704776026837704283825827952305124837122282745364471395695274763784895838476700901057926708467698949901891627668372246518068736629904606161315178011573771788727085108862054333300393503311322065268478935932669888409031807222014524425468526306814847199986639875178411929714470116957367219425148928414882157072752441821818253522959740652865956514732003415664035651100333716102906916352862392521152216498425485197039238827897766254877553197161229769978053857089630254879391344101300104619330993304933964829905332048622923948633225531118771919548512703509947898102154092702551811414506458497087940159127420313854430575085133473191005512364728896398815400509286939847519611427540880202586457521957201251266833799301152809415427782163556408022255354880714195582371180377658406904513374076074726025598080829143285097104173105902478746412957451505868327978737840891888906513281685987735718722660047253924719871471757892666637917636357145484053401337096221830025796320180388262389631493763977157079348721221871781083904970442275096851755079277646718438216583183263460331527689224372100812565424702570642903158354084078138916260697801578618453303176072425987187843819179976896762776756464198964375031864444460958165993639088317518983639615076518576643582456164243344475834098731365513316793764689957227407240067567328324108762796794551042553238511199990292565282820209102983482327161646030066733301147130296907027523161694310054510202377830046807112034074404982697524580843374528177267841449620725277434486637148335996397015709389410554269142446999197331669554154326830704637675670094740010847982655977812060130266730649213636186254824667867510226720120165991879191526542587653265883896208035041488894956783108760478686455918701288547974039706804604732722004345172817653950875155023921529842048943678190251295372130692134384005766305645073280911373206672937231132746181880302450732957083514282121329767297530619727663576966521798521124893684577471329745889345037194559423255255318426899949487940621302831397256073592923818038727076329174264511895679616927104001115377707405263840079234804149366086326117640125285986584616055089069446680203286342157614219554759933368829718304388051547496406247152275644899888980989949295955673567136080026733938766953569673315631483307149657577841991368495005213011235579158307994695411057961367578471730189184469226796073177180073809154576761807418183127989951032608981158114283851257174383711803546461228667125085180933299481628189041504945803940738232492274358395270254463936937139622937350143098806641674097434330152434240920206704239971571315885743539668260666255449029712362822112587636288448330924856455871420979804279866764734459658099997209128090314126865929815326973305159927248669609595930697649730620231737090005833882396867425435956864147802374205876790659232222737126851674746431624689128949215832661237333944072697706910262801702374888301616623876124720783672150355125178897338237688755943100697427576962378073268376381459878184468644597748191719590196883546374972560663501066746883959440785645637508438693787779160226221504687658971061533136967202320017704202894146938231564725227827325274472139649520174945316328231483166048817926661125923148106443967209182219166359853293801001164748259877037160963773452793249012317908956500797445385492443491242730054094971723470743677351069463534753938456961314768236407933999283780698905342540305697018253411782947178974749624008109067445974439519197046619294856535286658216986088747222932933601825651419425237048801051590995345445932827991004833254483479057664549777540629502939042295155358579880076588311867344051461534773261898478946927003119696719281958098832118676260111781921600619839787891998610545585767981586562571149611959960440577450278555568761521470497306345884393341846566870034682046644741511493696895719642042326670747158009796808850414896554669886172761952069075560914979317053149826912258582231160057984339457790480860294676326638654915538544119922148425279314781628977748165714743689221861762095606850749557089338443316908383188899312260314121475893541369680555186010705868565848383494140398310401209948383758596395558853183938321553154208932287718792611800318197958819331899624239722191545854448267487756647639483425809152673188344139698080862575812138903149626591978618338495924878143142341447478090875967462756235532660076463363552573697325578592397967451689101925331923909714883854864982320027573630738481565524576329139245083698667363886343164235280494101170841769551284230375758122416078680098205980609927653752815966381582001973765530924659966706966805372899177237440267302754529827814168484547009655730130439157907759983502707248223773486096016832788078775149065313257341010005447898066952382404959874706745915367900642737240837808731358593723114601369426770927907731128975610162028816010120147394527306397571882602320720506112812285952555528429905648361023978246505113629072369752834266767541052604395984168707859935164341658304574494166504927615185505423431604274555629164312700643524025403082573027808760178555025826061935635654099704504131046808747140614956075107864758646608894647877257032571086021465913272020121308101763585572469756448309474077594815698436689735407488869096141642406426144336929356946630436545209958394432493803966088970127567949608612546775884188933400867574731594022271989246807649467616093263917323414509087324624177891834164348345547068683088696901039563838447854520876738854083719145705928943123223724248992748046610594376023243231671342393438637128606001865834537343494447511971433331724670091439626181809566706907673314535619426995561347744876683291445654241704179396763287102096138652751713942887174066641457798018876017349833949582299462779369575905218393972952693537427171210917461690421964042617235952259485409995300559542132789223517472786613717217727532437629390806979193968038527051020314515539174874816896863945618735150127565554034122793054420235344319825815734829153061594006507441408013723544266511756684320118592578624171716768352514921339488293679218580686188140772202422854902294843243004002025463374469082281265834525358445559624263678409264531911578148039147988994736872950440587025727524969328979418922104042149985494245776732529895160246824089925392692407340461408309322747288186850416121234141095794812244708510626246563831851448746600693014167325272391644438774268186474711919596191766731857159060401003021624238295355874269108084210131248375003743384091760477404835189757248570664313576621435976781761263252708544713966017316605762369879430436302675072496527291520944571925053284040276947870744341853147954162484996875368312515441131000824329322630678357494110113653823882848742128011536345510548741296520783607254603319946490339934363922998169352548620845124740022538344382530446544394263012872531566188221889369734893823905834632520487313942636105517574672836408985358899350325854394406072088386583854540074626135591021771864415182741075418499342775710278207507314899224830090968476998863157243453788360788587406144663004467696712889909437949837838248749168883092340842649980519870933814006904893573667092496995680587072929063451368702598870597201203409134236324211932886276861524967141443589883380480611742192121397680492252688077279473788328918479902142139113671836772551364187667382869887764826291998580199198603541098003557946897372675193959213930235889490042328516624849401093941300877496427340312937367981981897891354416925442168818337373240354453439552277728706215164582854584652615466918024474789551394199882137678728256067663035481202518211412944653957196484116402942691685816708393647009834872963737738303744351856966736231995952414925186910649882979249187063072998153366100463674977844272062468844860480766312734942919376927711092222449270080648417385633288612919001855458932121157797690069759907706640222439725065349415998799388874669508370629218145519556028950514039901051291149562150567411131940552626639985087173964604180681366713116405005750663418518970920066295993620653097685108308942653299596272616135080946162906954004638868014993652217023631672387827689400829653401615534697078072148783403904166133899809649595999201918955306356379067266345652737562616198902885322580424399013879194899066397776407466408501937546686115140535135557144771155873459257846817325289540090716470014535912431604856171431044615827055436751280154547855986670721842474520353193124201738630217676493285712995856377610820215806196533304411700842354240375949795423541739506521945566989934272939606098539871959559032905655524307226916442329104856109950088928835117728727326925778431400748264887939251586323356735680565748335901631638671706068264816203149433399140651948668957994979419754360653605156088861546100844031097198748083767367932789269445167180459911687707468990476968107249614788245140941382152707431609794951146780166798139986459786428157522098973290873267660945735313621844986930518825270788386501943066379217220322314180463993577010912024914145702238673279363061768621109251222594677856922686183305007422643571801212279355222582293602010869718172100882358650722249133615224089542983776583240216096721152572603095080629118187628533382128826125606522377608414862747931536795707708446002631901031760639107377410884800873580299842185437739319929771354286217596503657058664138310056248063488088221649020712190636770604928580866824546167022191516458722430550156052074834162271594794976270692108795022342729547072481074867723645152845944541111136453908556171614103984222004733366327114088202244715088545535802656278145276349046865521131064569820602147111521857332699249849978087209242836902167905852432771801611914826928884240080798296741754868287390946295809259786235225102841829579820384391378720333839854197651734959389464016824144835830390623770035003934907118333116072981583290111092760225007435078394120353510648149589403947004119674658885424520843222308204944956463819712344460004092313755904262689780513293391080269779735070716082144113804806670623381688025644211212287098325246937721683455999538778666531618318141033566595246584264193985065884735378444853044546631273535534031008180483610542109750222588434208584736533247233005699090172071135703088185886184126010558000586155162103200283461841651146805304042304703928052027294871177501267427410088965448055885392614967179658276300701038383275757025949114109697578749133066672968991237761956443431356077180927412393072281146046463338606455531191315153688097752702128163295344799375515464295345561486911850601811971654600846533882351348650600729672123359590940322374343994233897252826019924345850932175209594422294187672838840670033446376373175236805255608759738756521536208305559059055075719806903191606424392363049785522411493448893964786543733125000550355986817960843080571272895247731508386527803077329306812418841216844598129278075570407506081989511354447671322121761821948944560344091662902760856603263075700924804051580960434241378813498322004662822896363873058020003805948434803316803495367550407948166338872703899486177085390459150366073591501616314914597338408084162326187077674005091870092950710975660919089772785842917681447014421616659622008949034106850931608816776805591440249340198709882162774394074350523381732673694174468343457259048800156090815700450016532243974962371911876336569254652256099944676671698214255282016658144458622181362391064967208704698334162162221084191728857370749901650384240222097940994162410170371174326259440740324763096118015035276218951269034973573863421947933028393055491706362892246613339079601362052029114085329933114701499324941173695252083718379396442684798580676252321582664679742930436561725487582554796007822082071680368345856281476270988467682170126420799092695759748409296015360374748204430085224750103262983448045842204199960765272863021212695589287418369166642717590783957760293749104945105514013941154777746969527702705698596411600219898561407855405779016696399877232507531620791809484100884592209878378553436636384820450492224519893582235522606650406588786449604133320645781726331876837226656524121205423187821232588843383451014647305577855368537576731624142046692157654901990534308921150130114166921622589428568897755890966430769798142491769366428998377737330086870427422723198112228086772174993400159289632840255396852699791205997893995846132653366952682557031856975720375310148249071084664538837601696962829023468627570453345584694717599398697413321699441428888305619188125143469355373312444668641305751046341785469036855906626886248572629378706658743744034742580966225535454937369384829290292780826453610867466600343724608120355233159045926552068896822247295498062157582663211483194169326433567023887333944177472832018296377260758971464424883057797572828217098188988183992681468433434547408359723025624784800982648922792350766587297802070257903917130620792711122142789838266455541933264819183966482227064832586742093436277164405601720016056151943961127132925742043424521846810122838823930016798299382648133815643161187302327328938369784785968813223970498097186559696903018968129854019950213950872499940204587502354638425471330913408104026546327383477624036781988906176599343928198639435728901721073940021731729714778014525363176768859561379097162461903568985570569164243319973104842491667918420243256098593375832074767903915787796320289128278250556223272144530828733235375522509588080655832761027771757813746644673309600125183994284812808310191901105781218796535829397111185918976926417973906765655950521197112996174325301249232932441780096372626335484560596189571474720317663664544844289721016706222947388516512299575195988370695667530886756370836098064457719675575748205304656934996004860171220456782945530960462345789468560688111070779267603571399058262058176488246918331025249124183882302890212148417948804169029180219616545125343393417050017638631855692130182797292274573827370952514475797443120783732560842816143705818036651165300153200924834918143698550206720840907763541084621433713730645841425480653562364548846822258764752043719701059369856602403211313753683817416734474586643179442989756740072493834140818562004463465604836724179505369364499870831876853342076213906871267984414816963217120737035595666344330783367649792242938778911840577823405235731514147237919766974865388721762488745967907250036554444639161581119758365869434168286265891901823102380331095840335519516158650399725465520750176930966417067203295171181388799574546116648000443287815406047402252817519253635418319092404680889942581986741813216913587867800285642913978446528661519673554235336171579256380021736709080348269333902445776113149703547901894110224293045751800094861720298310053617717562839674148960062381075841784118578617918419948874364230633489184868351665404017870899732641272047534426748267592544314092277636396011750819915330833400353557360296672231251796821091112826753391171140655506457013523927380941072246963158447168210521382577476126058107000637290901299392283569157709748356380043465210450533272109556387733841190798393742769523648842459523486836265236661163325321621494852506035906741978244317635494920878669530727479338024814828353824394971788260880311897537492811542795627352072740403957956868389242713521205667052740973690185114019111348617005096179862558206144618397412947527733451993997760636474230884167080340141723654829945031374874038037362649847824789377812106327599685592595011483136736764955836091428856689569916919668626851147773597141434531266884212804879950615641723422702495833549851475184880152201092067342749193607064769024336803918235427640817777089272373849837001582517528481647869093578618767755330257335170641670514488237625499019130227350111369901350415104085878817801706672521658927154704850389022235056576798340939496489448573834211696353074504548837792911015811421127464906689055457111220689943484317671062534294838157946668802458253546324923517171964917153828716864880853872107837768901922470871295441587786759611786477213467091947198295111659415694032114922754342672342472113823249353195391570354960786431448655011180567540539374844692624870493114019774393138768678104966210515980354083932539543993424661128340706036076347176672228135619811089072739888884893033525182997293898187638028575585750409040647059650442923345678652858597701836491738390832363853636261133195813261056414872703036578643385911451384157731608601221119112925832005488317195130787119727920095484815990151994410526468586487072074534253720955235363705636622112995203820174821641353531522806739910411891406097141717322035477568893318200216868114525272983782007183539024811809084433135979731205703469729951621394403548482593259362450554507122412729222345097094123371312341947222058986890315260410182260215749484112552924041472655799614695665679908638266198886515647714197621624491457506301339711677534053840502722028210464893232181602400841734161252648367070709151339167682526989865663046946552748232408510283006202360575303116133067132310214810881744780565444562228301549264390891146858290433640535420118508907666305874356799727583231243443984657636575462864215176631869346273700612540667435916279182067497046414501755895078302541080207008163807200754769257816635949807585115941833584152612949349434104605267842941315365186421106926653508427849443058514970782908802066785423836980848078960645189198405307727428972085560710045618394018462569270460236394161211864135937555467216309917719942497022524936157645909297160146420049964030459521933398900789171284850839716630382957448149488267628833359339425425117454931616778969612587128264857214173875862700292324760917475538499563157885688545522796912242985135269093735610621721649464972254910839738484858390103874956289630670237295236531052090307493908680557498714454162038003851452172641214817958406252539938989651666912631932001368775197129922222601699230740575138664466249334694907703231768269098471204276015550344166883137238380604597810059259082301244336955693672190620634931052951984996288862543050001899625231607380818625353846240599225357345485638463934281019021156368374712546187728780840824179928640902216984933366413782745673878374390517731221457985487375343104954155775803102955741084906553824407589975819052007975146472964191206790128730920554796536124368366897623008183037566902799677821829203611935826778211022454034442427774835813533766252660285805475583098551929157786874702732267282547740455014379912410982965630664990095037065262832301760708477711480253423593953210468592193457374433331772023408994470823366607846442453632796063670177133794432589293874443407586540258766237548629450246338933181982758424955982973046686568220535113994087077738823316752526831426507441901811694047303266709370149329486807080794434692150029721838173986758733907360598307291283970800510621376925119070056451151936051699887238105146038040613018105217694881648973002182064575926678689895536186276283785479333677163823414997539408890971648965616852495741930448272991486852788319296404365791705612718625801752240699665589166104592044398471709603882841195750752004538534642814873320625550397620411238271814922370695354845129218767858318079237652722130205076557747086143624811758006149842036504551970064500304543832409433954526139160005891074877862535347526452813698113585350084015578485350551624788956020122307659858997067342359568355098342618780461549146229098925101612532600879510996462033566136960137781160898636456414938211572687900043795523359536573443061932317967948844225215839148996074221094559795952804726258365183133857378935712804426386214085553034776335188672596111603535420134809784202269311993566313720740467014389531612943225105897463640345508492868187369133745500218081967205951467524242902291632280119249028062063112624976844383654628543448770028957335895827355211413775060105433607430264176528676050163388922646611478567504424282448942703802901799512608977628801714648551241194782325839251644318574064647474723252302601173355533825176782439309821913559647615173678327985275962717746216351146066484835541082321381588176739018866282720530841321247632026170013957608203986966938221993284755452897359214286486920754603338210442585781389023413498015498794351932282943315079326900881356743266886860463483567861740628135051559455122740798178129655879267194947705760047162252184270632767807676855290092582703745573224968218055601605350189742210679316834850476796923790980187706498531262953974308909474634134505929162571004333820873794561369052773876839798436208690104418911165828091357201038122526667187730538499634315206529007811663816549643395461543477999884273874789763115858144050860463415021754398452435144360606580257974813806259929186423891108652869124444128704704132824423390720614356535431958434752872408629620927471972665705131978620788312359208465030914496394207695493084861321748104529178484289794604903806793072747024032479892123010765592051934986313367708935070262720249800060732615783658999364774772843006179069976601375852233864382514595050960556418311471649761225637155378362102965625001198877547100458924123010687013310242347996499574150315353266736136937151207837752721582304117340643005465073612001423457008611442329203994762919487885578252959059042723795447091682627737107411912898404405205070228768390851937317608387190075799862814129623941245816706437383785182442295775627468480348360516789566661885874094693023148651112059851917417154139995106199271798016832360542575707680912101379233127469675832068900586284088474700473883164371400126813563837778237625665048952208906382071134611110251919380694650409339666926411812820449830749442741756933689659644301008032947836824203682923539245473979256706599626590917568995819780871812255763457570522047704114012782248489836782983633620908103587457389995821892654682298023910481567964255277414935073284127634156993408516797082828817172427167403567712206925607974141451625184563630402811872139069441912805449788418375969388821998852667744914461993783334109000178076700660955467543742013047123542497584022273465300154960596662837813445881990252183718163481731672510563849666660213999488173757499442678936529087242588772883081335675477432410099342676334304856877307286404989597479752699083644616583666484886465819409630383783258741337012895568448971283519830005254157894970069669168975705298142906211130604760738439365203325237998224993656532797469490889863257916046769397280124711798413155801786823628464090907461701512495158578183555874056941938827096339574502473556436814109485402466694287411996698830711600678858861138515505590315835746374472749459961089016885800521573352016768402668794877145734425960777529522610355549700480190390390837030796844670593948241942524358644667822376089032753245636019611136792872402793682324613481100941728968966317844458385557091670393992370518620770788188682106498561611544501782379104053647052086174293427632076109554173671653147704004020015068944182339362613889219603825587261954388990526161015081232857025914181869514784494320406374261110629963254006435266205317728733401783500248028679014079408603949532831205628474956402529569246092785489988265484515601417240632933464282569412130042044688424808325727253856266353566148937642668203829859835995893774499301399425124937807715824494435850332415136637371275326740630850738305348077519668548070793834442592578698518765821121230428557536995949382634244199235941930755284453639784994796657189426570127832658535978672183418046430537940101472770837136478376079788011404589508375480546382431230001841253486885542053289158564024175024550968348739580802495713152697565456473279686593557727482839637808039279827842156775389502411087872136656576445579347376012809849100601339918305310785123609218025879225354723885506963638196779787142907930801016724601579218933087825597534304448566608622954465192983251424499711712436322706593898798509605490213240269634254112546071628671250776836063926434267932462992685439457278813680146876599040930471950060230392242603304901502933541041960126829031091570594538064609851741963404466402128295944863846590475677738959857805108034391877350200762470357090752607199100963903123087810312919763207636368147922221896831289652788998908436121388537685752080865782479817653016819557280795634125471168375726748512210383607157607474482417408176207682569100397189834930337631717334390770720590288481873708217303197686503559127735661630508620481174842032780360139777484174108011478750991535762312216187613104848068154492562803431838757565078745184425337325694131840781655180477762270222759457857005775984498176026702453462469853426784458691592759406397953766291323709214554994547988843109551389932640603525604523783170326954322652439422453170007675417324377627396677069184496349661334360982489136391063859478332326499620488710401428153088656054652808032600231723625009973195262745040823573325464629992285597535950271699958083103585231629190560549562112846080251214229225221354306203380839260745816074754611500298991037263304232781997717100440514906064593093983592227782419954382688713751812288226237706900868477852526183396390408240482355581437719326915627443339423910340131566635150811815240434108205237198127741957974664035414841563105742956652953728933231767313545966169399552672318930202476382856614197707998645373604921093830765025290896604333339979825268463650509842583791654157957799268716888973954201518564036063544328495344013787117231432806577101490018700833236498623602237148114817134990487930264543054327866150587672047907267780920150315002013460925814583247296335224140503089931835738388052019176308546308066003047022797176263009726482236410772047918782754498108707384342459281218149421304337298433588944589529443617213905838665112362505523622268013784818613721645317842346933770862787499084137018884257728317776902370632178455338257792225394743541373091707584236582770382235000051101641218540441671880475203136146357222017785348139940602075755089439832724345163852825779602645852721211172301715665520663097358562531232490395165107318063427580468845818065667278567459790891760263076962768700486093962314203261195824327058821926722659626025153549314918420691868952049072551427508359827653311423514620681927999929401945312497594587404871667158699328123829723936342406233168384213865389137174528425694907608575506855214024691822024495224708233027717021490100571657921263129526474091133577325838688743174525191566501178591160123376220354575255276581935181497673447676817902094655994272791656743597415439125093692628874833791677004860819562232574997197072489839572488750454943040281811361453571337956569774275991830969377288807360626599993807229787773758265335721928773421223671063213173792753555122278990859989849694215597228722568885467440886219076230599952959434773607804801028095064828708425686700425410176928869370892540764564983447813501523164135109838949425207074748417781474936311135347727128743117039525242772713343280434543964679839205454882239944296221774934771892025765170785463648063674122904279942786253497865699198648289468324984498362964721931103220618668777777272399699752725286114018016702311052559141476469767444638192693259329143370929136065547195609482508218581416653894538318262576589476263142771169159103659974432986549908473688465862958489666261994037428784796938844277009622768208571643273420141197370046875467376983739654122687853247979082842203496903808767592967156479638733648264360139714065655195184824151293299071438477332365649166141367594510562882490825892319503443582762660101958959201454598398224797612891735648105852588529597473558591707265655728696138289919537208517908559190258944226045424916694165227854439041449261988881538124594920275132005232671018926926209499023645295664252660644196522198385688878680958403226725019642528040345277270088960094839696000894382818065248781838664397208850609073958751645669525141468285162374551736229479546581817081524527021756962378569944847710712114606084441541886243344407271039437474712169341835694533814195878941958924441771110025236922478362846356423550745069612196711308652966054162597250967961007702604562987076206674390934180948474991829047707032100894953826829503512089448329995106176102926273461031255754485908695638330658640543481674188524945035998746291795182975026025050231699141410836633885585397359772888210271560485978908138001755029659293769552564264244777175626126746796554341357633030811904050863678115477858221814691790644732913882764678100514532797298894137152556205568962946185023079601630877064044327611854690608707410086161255491795298622351415848543815468950213517608781936056454333081982570348743047163199005902278436090953946988699407788557067981914104526018211526644001568423482964492342266094477609761819688111956541770823946891391686406984940845751684005220091952139570985824001901574635671208812123829805019205231282035306244195963691808552873469757763061042633846347123589276563789142445301072898173116261664041916242896120433805449310796025960487570541855937768679047433278389602989215121310032849873269082635079923161799800467582939915177375733833494397367579255645503028756663967101087058440699835761850797788596304322670278032054359361353687989812758540331184456726022309001658205288683878046171433985607367274073289894515986223291134325852481382408798052270635620533481266893114526252348732861225222270463522310748905180352970161203751850027417683220223802073102154343104969709919539984576253505787072416374322295991419643173983425741327359408060709886631690925628222511501981968882224136116610303690062513374358696717051284154313158501671190354145555396203721245313249798029748478578112849210404549360155104800317082892593358141230419908170096640898209789844753754219028627346763200699749821937439394939047608275388067629045840315074040093667644432898652244428099861359512169349493973427155116488114022259143996925519313755794135269604611828530384478989783105380781342867903097008100451384822451028413249994242023375402281272518263500579271957306797617983600144565939252731023066281240780064054395860434929159655560681767299367131445311232722786270869306167747274357132558940082010198585645603768213995625413958071481610093250584937718281336151383574360590145287265892610333553551805981661880083065896841266830483543987008049117855286320492069382872049057639933440392227867908539837265109791757392443209580527173283813768398339953124217581676537789066448370661583964047387244656735315613655232132551457678689808164067049487555989802820276543004314424230948459992618755805207695136371729652879127703348651412313843723072614504981268232185739890288434664528933878100766187635735887174755600479950349571075248306757037753722396119567115380032462111733160969579139262534567017534253127080300233425345579911833361516686814736886543619075612035116751445626831087946004154747534227445683079571002071341970257820488956750728790973050813737707572048511879172106931001462160060982969440035549108551760552967922276865772444921147235754797108263288957806663047233364438545972611350020158935277961565985065832181865938466522165904696637983216644029701519709234090727671594942637150956179527903961590413700446429002893761794291939010112768808229306769588933122760038528094191842723907669926977285499743521842682328537080003811221759029191882190897839786779932360494778112719759407301788691552303996600462764014600767593399256557527327656775240163206000770788164621647230713019972669186756694351393703300750077342590838631105816635666716927045873145723512965762998391782584315157231285737593976577900197427296270327059103767072224246448265989436006339454924052422231720185041544098216560200748512255431187912523799874653281440974313009050313623916200691300911163348311815443502687689193555661195611052056140523650865050054599660436185340827179729147395197294826465824555564056005357279595421211877256966644518182418881721963362646208149347387413532647108985584051584784043203613813289583714629907810740840281834249015518277705470042098187050051899404264889000633491665201034384382558023059431954046100421014977059987317053781752045747035536455643693368567360789997429869272359993567926769815406870177706755112623937748358874718593410881881407670661439333591843170172765391802205220141401572966095202669496623631253610119962205248253595861379859785196204015583516877433599462735017598738242583259629743951258173074986890965441687451911384098545982501772652974670583854013191616873586529162884946194875591249008864094585985627146761874922063884638113479674886749513073934921604530639851732477419047385091421029520221065949352214773776225503944437901582268817258144127750623521729427833429375719261002000018597969433770360976815120404432284978550662709596624103258788193885250818779912922800547663042326320217765865639318535882161790883263961042909339857742652231638298168634250019459204228317236604405538667559787105351642792498574823852210534913859435132343715798663564377246211829173890017944437278896582169984823735609236175567868999904035759831774868449277394944015888035650843760260605440666925237826559566203852909850783637176665676967203684810499435351673965606010917772454745256799530200343499522521975392444179300488811332169982920461645740686869612824769279083628861429193379513793237998758247700079244026597306551057648782893171723685360534815564340239396713645103561186470376064515478227049254396272329731564478693873383699822074657295368633225234769839140063907582579539258596772822902413003480340131703983880604485866023219548981002650644744902971853100887368419786048671147351759840606812784728510291636180893267157659446784419033723027624549429150271169227871515334499351537402243839449670213569297515197399964432732485990815940007390916218466500138974065557638608164950243403535640388107608147593930050358746253862804308500440647158796746192711996048809982891570243349471055516557077227831543604523113179194137456907351115396991124372000290851279010824391793743163395765534926152088829971405737878588643610069883937766172997581573209425875743610770112877824447295793852998113537353621028202959354499415922496704638894013760268760463378333661759246799206131103006149493902597569120825703559591047666818895358509151511777295351344800375001141121814967320135600406996267577115605455406977999066761406273871520778738410730529650311138477295216834296635065104995303937414315805259913534776949742975566724028865688010398718008575779416900649168427630293316798047382020299594040987708917682066327265364620037593188731025579825064554755106139370597644205126021803481795828469830876696875370527582770334284648348562350200262784962583129277562144577928175395742212397251797283194595940416794424503494143783225604816259987445060923689406108639788234076584643481241615276984043117276295478377518809215174381037101803104824551071951323438648194381725819669891783238775549939129501578615367863854337692296295421765322200798990743867174885176678206718284099345534016241602295785986516260720642988683661413795418312355868275696603251141537721466551112717270840110501374249186697186484368030807000499121710692481742202066956092886869570680082884559700677058522341734166544881161019483963766532306919621980693083232171398558709830950752968515639712998582551836537447031544291204753915192670330610027328717267423570716258085760132974635177207546053577610557676420466059825698129118733491071393627308951511277922282726448594212111604807836594452913942404040032133325305989192332113579711432095332477671408487817609196813325437219242030419321990274013824529952896525901085927666236631077462586775326737294413498786769729799058834234396569915102653650973449750340001689242583541255392334897861897347573913547001224468864250056555506230870376250143776953600284425789839422980475305997767794080376315099400728481545488974650706338257620920801490622669684320711415732307781000230700397952197155216256403591624180282979354022939543177438211887328689179410714498009163381142592596810038026458520868805679676751981278495173564475425790742653634852212026777623753135584529583560525554270319386621502216447237360353574033705066224232149138570098665608923508095452153124926935473803493593252557612523995806931471861457152706871890535158520815840421640847092837175382358881220186376671070866631846538884778348676877907038903160610516259122713525447884233679341911080663334931413239978545543901452108872531007338175547088911110060394499230922916471760543751643871857891036175282689237685438426224795457844312440608014835631529345291374889615553777995088535111821868304929085162555832681143471835968913113443107185325326697192671261279266054373775543115673616645015055044555436323907692504625853773849428517200501455202339095545743694398262719638968731709323416431889602675266500160348742901351060125767165085474016404022913967297215264229294886999843334243954612923602933723536034785271779024959475175827113770233964744122264454710098273332220413373490058648031499669500544318804511515384494347896479396893575663074114311439281904132450743403123840155698786350536694361560890540908303429853413678559835229678644182366143230395453644187462557186827938927594347877300350715864733098136004121770605591945942267854636111338494234375230818191425718103519857471776515200582740982267726772998865957270706882488542105185023133926941851481321150234524679252870448580537109051457449372401729316909146377109991839262613620820302667424550582358131101538598543096581712199382501325359257133914592394679300142609775156946603330916239645660312436065123894992645453221533654057770988482206719762696299607712392135227420792342541772707092851648038139264527505131205266509306927356694078336115882501375239551485664160901303191835142066596761547225652910853972557454443194722666307358531262956254865490646649896873636673046766404660659136791057164508146915728441772053932832619874489156529525239553584445568832085204636838761913114085254736476900191634098825950839790425083731436685380612065664051803396869024531929990204486488795645590119988304660483496898941214934645538279241826419529108214875098165955854413633800152985711588140453765779523468200493176225162889629819160755014165980708763678904181772714768017970708357529752881702422281016606552596528283955520688607254607474651241739611630091653221541659905101238162232394560613906875658434947298652741512931157041061788148872850307947692647972561059655776015103304546157268700158715898427124915666717354323391637602585776512577547543279436313099724629419203044272711215088032198633781729565699424106216304056285812520251074834554907547091571488523858284938592711461625181995397135735518200206641483997047625372408844754388630299211636436436916788582993456915949060046125644932507142937746671523857135024536957646368360589962046760399428718054581301291503460567914037015147084974652213454102332799729918045991457798222968583899887330811998400808729512846353311488763929191092924023833585706993286522643154949087187390397491967996374156635542278258147724840861139509693766115844590695084017638847476801656432222572552182252094672508520435489786852740949437963198306824369239652224589375631039046026560673834924688105573499801725643022261100313542339668391551776454575512963670366535340201449577417707572375166997812147864474902702832464355420389790759789805237824724101538578935083641875653088426612311423238584488148847990899507923774814262554189306873206407517634352154463038443752162742646310105226783465858056831710185156449341749680556161552256971876662482490850513681331194209351127139181648513944590924370990150476397952000893362828763186857774876347402128850650973398694228618593956339367690781964837031205863526873905357595902136880070281465022797405024219404918131982451180840605872773207733013454791462568897355380494631623764479903670957593069652011942626858240972627879541090099186912555842398764613692135188298280590330111174941780553140142737236410232573398113556943086104794227048808855669364174558548863138189188525244243869919293760170453098428248008683888164867151940656745364707660956117893246089836215208460024163382399699982909351252458320540907863839304595593761131878672553482489784042018164406877432877410214244929497805483329850231643275475787959876145436558732646669041170941880413674337745468631291807808898263152927630657458620151174419826312808646258607315460619514474562353428671149733705168106674526310047443770852132372973427431967744337758909841888783291270399635458382222685056830994736843894724089786101551069875102291799755154329192193620089322604774440454522593355755141201470155422495185985968556980546609085205086453359433999362920746275542795035107820665578966690489885794604787896570989276116119321560674316784094791004228219381269550239536451507597047841625778368006823187243681265284962681642014220253379350538409701435666800870635282745208824604082750695826395483905603810449290878685416373054067636768175879819343338354602133250413778662700194751950440520101420495196973138865237800989940977146241097351521976160511312861413329279822860154509986811313127493781930915188982610320043346760629376486457304364310544240125909404765670829797120524031868844247500930335471150159221867313590105386327762325049350253424744174072102345977812719558871090480473845954386294524495334083657284154526906601829935910646156495968097014398628611431636710165021753255151885266982304647556782944644837045211099547310968274156487105257673601625613403558546568444864121640951953480997496434694507951921201205213058025558533774303866514660191131240953660124132564087839816636360727937152222294847233459530564338683741856866177631235258064290596682628758654590394979788196755918629344965033376418193340432048697839524167441320911866730822095687181355219785284695048503519175414417328893432442066907352562944549570491368717425458361411177630687176753956133017145854817076543136960990167801242069491546587123084148383547280260000822859582113131926463095443176292885726336638520654667087135051731392123248013181955482057710108168665519142767564676101025727445331435375170870705868146440278175397620249925918298820907883027797022931406873821952121126838098269305413357804159914643373337728849269094107601968467904560583566551679084402000815887884078504652059908490339704848862168313553103876460217500793491031073799427356019076378696957550637899082912780180392777115897550704256935601423958614061492630867953738040944814044454446248191408640959369708210002027403016766677270207017179818807475737510367006674494711619909318864989929948246192514449681242968514137091854260969574623430226720349889774258115788934089470111677946487476483350752375687091719072646516189518547087860045784165088743126356468102081984870755342790288100097694744228254642731762261542945912185634846148740123653765779241731198997511149600027643180374910212708088721744392689935396121953925723111583193631630509309668943485099525128084149203329157965276786403225174934369959226499249363543677003646270542475474894625937893464931193878107164334074064251887818236057832276373530637433365030869711941331907414700636398693223648214073389355020384638871236098269899715733196005280017745891639638565221101971934771426730697563584115576474839567461230010579310221965578389163548605942847622132253700595045443732590289352804485477143999907616833012922478222082484854980183848832246420439833689073943754633028620378508349027546092644358613079593592762377297535572058977780207044862501840342720684321428923487996655957054316382993775809453880223446619438108568177841229141158933221550243558753485402911739521812170538905838140294642446007744043886475606252944075784711820239091527555261536418371210458304043765033133115991176262843065240452704414735960208381515387926330150514922730566482857636104120625260117684843086672816037391419613206319689950113986664849070917946410097875569751332975772040101712220901435759160190319721295087474031235359853144674962270522931501765799884491757626163693411621664184957719840000426652964587610309756064109043291507836579114522964433684888640821096286431726530735276683577048775248721249696820211771676702166058948975331515422620255218060197335909444414803337778021283927052385271301216481797121150783977853473452944491736645661812219278841706765113354997940400962079380803268333644286664027765165948634082448958967474282482820464639065823063472162747694339306026307827042266194779393748752350952570010668854807168621801529354781483089844501742884740470580020140483914116803632933010541527501062944631940432670630156834767526570399644173695705454345669200997282703239806199288224924485813318229677522496882836326753707507135097648454138647500614862792542015630042319678829509638512176708060190786201730215570053531780835428681071611254271079077570662639734667798560898536665253014742046526273338928395736581679120544279364625264281086305415645102456820362258512712776109608233110458618880510141689326566369870743924544547232046653245933391559169715642471331622445508878705492483229089173134229322863892433984985847056991764744494726728837705565956595507974891908508461127646320067567283521009312540085368398121720451525711835965984694399116831623866128828084830175543939264706017916388587964910417816945031221827392521598311755352409622771875833368197392311956145354973704059521535420414035665199505007565365262372890776213371915356317864457560233669424111896813573346185582174203861948483409933870365078267324504814596728695265168002889278136411388458705421789931716981336051524173097964125493833978366705557360413308808939474611098415254842532090625092336748273861530783802440490589871479342196647256952287667844462187775539424227968676736265582267710757474133549067747385028328201123967992437883962021779952543245461313735908998554605800693964618771473249181887175013699570386403520602447389350871683955357613413455403476737377321665274053330097080520457114417625153454841010453743860086001618558669909982940792736303807121935061222410230007167999557857353726522621881224968288352119648790802031676084273381235876428439697311646579924660488222163082891524110341597041145712646259640001871771255956155133741538157043920403041076411884183913718815223438988231342307977614006274952883747082632653391748646517767244379613973081317602251494786311693274448589292035433006441591642804314147459654564549362008528170356667977948282231672541709841154008460042840711623916994396556457647373487964920577893391734770699061089046769013068481568654997281706721437909528983204080868060087726060426278500266655065081779043411104176898516695543602856984284567600750095842738565152695007673333380539586679899457991339555575912162280740548284667582513643420050648394682990834827728565901228301283008440872640226546988242796885904849653395089529698340801623096700781586354473428283428299103358958252372162027988739891928041255368337549416131054724540814875876376198438454035035929939875005454232827012770335275506389352076081635110086251672883782989054917219811018605378007006606993489707813987160787592673067473911050706352189756462745248643201424282307323375679774722962154403970312184585607325685173466503820713321404307039018784498250938038313720879194167821027121833207326430836464534640300241782673494190251191815991598554413753646188018473477613247789803623882467474098211874662879564819703782575628549402027260061562779522815739705775084613481109764146255241413507620852350660674711154670574909208931849559198481853398350311222309125137894285431834958736283397103829414052486535786733015608081900116137289040624632660104390873182184985505828333073026546335690252969701657313584531451208348554429699554108025822031235334065078259391882218210163776447461805417529054781324769402014268046972332883980787590335553770608382607100586879777677515709903234209767432803849771239310522891229729638458657961609235162942874282120495370833701946417716307000336470915214094425739982394072845394676545799789683564337459281854713442793070673402294975198963891417860343688250490047205344707357305027379864231944842138221172213653142389667604882071138421186616097634537813999566009271576794142148245216418423059768684419869810922678593795645944747379291290010516306040150489787198870342730210499065326390391026657798747359098342985714488752419734456789567397888242994037040827974026027332779635572016337875435176285172569436435895166429086295227907552381622174440311396432849599730278866882552650214778148840733797540542422711352966883893120843283003461635476010135206900485385361816809906977193675918175970667956252649305179983605130185340053876754858903325368131673643437775337650843973566175203978408156495642040925313905256430456028524836987495989993547940251978002721690462281153697012264510403779190126794117018893704435907772050691680715775010538699626734400438316601153789921495115665444536039646057079034607388605002027012709568220314792253247520233587206837939901755002689674836310226012827822208064742514728477200585338291234417429191114193791939239187090245821293443721969247936173751247956710546744804992100407739256389328590878086959601071261869481399202473448220215228514216758447477146017454089350337118785272056122086806029804973809586824079252086252396675619252651833562823597600269832814055722690873942044424301901334380043362884855186170499270206704593409935143745519001723704401910497324744227894678029247324917779116703692245263968161752377857787599968419404463797744657522300542874415815875545031770148466062552895327168304362091318902618497449227293383765018344812124814745957965269343110160502357060005063187334521196744965345390368064278360712764474672833181526888775630018687408413536011190329695013890037635641872988247630265657588444073190606843375871361734061599201095842758205722508666284269222694852668575890538938708042713033030104620173890454178759056151525498545911205996957713053930813102825736580287002584738412337423757439287051284304802554260816699951939174423906322299372170213712481586605725767015533948074476390624417867516443319351096820114714518903200159322957831922297191288853118776919644176550728448853424134507876044929206197724228207102500016200672423362550375804742064405898552783768073365099821727835671744603760584074281388277373046812732827846921571206727339223252538438321630889964424488272278191738869727259856346014250367492830206360279748949388365106986753902423542916213934472800605003861782402320098841201725886916208604380327144985709103065674504488060898069028642160979864110474092202181344642510002185171224729094935345430983140701642159136704828960204560829262174348147691703591119256111557292378309267898864742188259063815136716959614487254136162171400462150884954826424795521079732694535438556005321521072894969143690658787228341285782995936068971906923938166517878431916040754074369540120599461637579989409757168026019672371616741010529472107891118836033229906812565557780894130840175223378267219882615231132709843085941799991167147382978704491832041728924404707395000751736909553132034037923455834502740038723727454416090761605546939516489401599087234218335232629015413590540699761993524265547322438617443186241690797189656459439298155911041315450990252456472928776185435458622174203099347095914089269214479485075639363392369136188947217137384691142553394438141130999946268471802898740452320192817157515570094024218792511280870714074685545963421862932937759812471803992069851166682692307583059531784749373416848487828791879917545978839362295555695576469584919232813686670259857609812561775036136701774556889441209609155800029464113655104475509213291709813281549854928003121699539063213109795283122464967685445311766594939895661976607064648565653701400619431755937239134857114672705148444958397842804551250077813312482780104278655274694994116812450103773258955145472727913343777464718845669077607736393945618623765847110216660010694468348193744590737057520637368722929175441761129209146640585441371082050067309703584150819759287396159631529189657443081182901197921103165740201477994458217369343393576491736440353289195738116670974713683288896914577132822252565251532890935094191649834618822158314855596609921528763730522942342151209302681564732887249190572459015945504960230733052923505521617988598475354815612308732705519710790848558765544257895069676986680246695959394554303785332107641691999771596770996153993002870298377665076065083880917630868832050279773531090250992704545146547922878745315854454112180976900463819343471246935210665825633207570277969977212070167153875906091669241917400492702189070851402727138365290753769093010304862633352913920565261501000584761746525153095807750956242999607817153226796237654090592945059433746438803563146839110106405817029085505772958512001961163086534398245527284374718404165796411769835510948603107921914315535725341335804327013878018698680561834195848470291473310990856392975260118388365498076202798181327594581688030877940181144505944274195397743698963909194165971377035780833465955006077309475048009700314614786442940556391669053558826329053836353812087936950795084182756664939363255898757893645253812118110523097227557778383134575185547881879492423952920404527008017508542239011885607993971954952477358279452761715339550668761947483703444644120125959791864262297190913510071247941418368186347401564294479100314919454338182663235352878259118067398386423789256512031407023557512734641947412479985027685525769506018001980860905214710273303699990272866067435858520893466417423114225403917879866450729265253459313843480155371940636308240690685362907967178864583201405275305250698332354477161434598508818347720282510082856242951434892083938592510359524672348835996410218590632704778804981016052216129599941457288767318797034425046485956752576280393558135890963099481069908259462191843120447240168367353019168108248195391858559016038982738112788868675664141632266433417252243252624741043211872144804307081692105027651566860630304838286519527958745730014365019617217676533971743921272890926484582337323615076778605613607745154362065855563194873131726043883332788999883395030075623650689395091732611383570078603168745964769705820505356153028428015070203866457667672799643566498667615607583991801637838799739236236335537606415202755364127645383506004477585837081185436545384708170777822992431802253520446327211240068864963790255922896646280729778427569900764540379253495406100561580442751675208476288015008219964535252176517996673115136266243031067188332312210218317874889548721930834622735501018247320174031295233159287196805010446125903003239498236961466814260444680591657053750301317058693447670809593541809865502421283737534996848490817889577652309402681872456015344235721301933722800362696298356687029041210046899066117034518250353395425545111208316198330276237154065827143601478668221463291662261680837961907263788513758590665222724947808537398823519380933687642267702176333647435044439093992185714780683195621823509057231365129551987799990643590443181234120112770499487909429469210190869350427152611193140159388915285624017937919780429782195766478653795371547436617305205770397928941705804143391978001774358366738603120671957541480743650384744221639275117693322121175652287895831904798789486910738289297089712906633257538244597396343308285078311095915100459392442421326975906687671424416771671627085509449912302111883830368686844074798688555968887574840391973988009372047691028244607239698338593116623203465773883407470632124935301870368102130105504924205669964884572548695671934989603903820830350547398820472578236673285286623332899263445233107939983671769754485253667769709507742283769102700864805996295811897617361502157489399333977989763848836582403421980104420360805409626674774794829368771484587601471493015239753535442505761252276618701317035630612589321740036953239178484599265832099583768706086437592426090208021070652038013258164446425695702705227192453448426496451506089316666105534539035787091518313243985011141776878900105981306115119430344532932008883967884880465475571012089777572866208197696862595984757088428686791607304191830404924176521779135621586351441516848444913384520362163527328599462663215380728198134315486245059939731498328563244834159381402565044008087882584904321895603590890679771518413004391854502963717389041710384506811761035355196742036300758533646889744205673284493476311567272019051904606708458701285285099578448922183282241396878200386419117435937700511345338117346501129920165017473157076596189118613092319208099893094911024745605479173025311421049262950783073712361947560838694154534396941309533682658773980327345384882315132624513017241631566292583415612050753329907185596688906482743083080149122520975433332875689647371666308176169196244468144096473545212803833028934769793513480622874433848755337704065343752910180458225456178770781442001936115736361196622738039725704663879246459331894575214438773426497746750886355142399090794891290568005900381256415432384605983897801288653239864406510897403171246726540332491680552515785966321846715338607461133279002197041257521886227690662974521506146994597286208426068571358454804049317410150675733415101957914084164760109361771448363991814767329596207964500764242466137833465828326892022965778524344093621370898623720204390323541571801499725618296797163872608154019703611680799667634779907866070392253317178271015296080275447338460074098040149660819452834115397502608762111418077470592229226583714424788623542907373113040801005930631235500607136194092419202814879666616559144870524291162735226250804326470440588508760158990162018458115813927728119679904957530651769797917729522305255760027690107544766106337878751746547941557902553520161751944734552560661636181479752223018107926826372182926491178062644617527147543669037465525518206171624595275179048878455148412399794264103432547748517792619396666333267233923905369935256110048979399312755544148065604728287359056589515772396214441416275712478577637909291758577592703682772062875086175909942363019294379561135007588287352951460769058584479675784006976468890601543052342226319425666677800769210331396171681292378129386488949854061194304770378441305172372302725138275525073897254970195210881198800390255389959434240059458323438568048385701760280295790949349340124622204977366590589236739210952044048893716067997680309411284605795813750579308900932580307127978510937657183178451222193854209606810604471900695455501633809207183781948529073154266801798238694189331638668871567218182534231923863644835780136965168706142482078388078455302997289029352301131151607841692847810967040735047634018594037481676761019507706031036548373365681945203342791702974676297738938863360086852236862253152021384844289935803415232070113465194524380899311285802065297721616896196049742052609271997940008010801807203757203453595391456608205108448243804488419272992488623094016626826815550034406240099358103519142418377364320623070776340568751428415404720814059826403001765377470650641801223621015747218538696827285332539055280128497331378824819597530848495127957920223938643163209112432015578718499421725597241464694718449320141606693792922120276236147581285294229333782685160230870499989297800154797954512113975533384296520286927131803554427021390499946872406278876979633397883521590886757343103234979748905780259285579153759723036757311210162706394844581881132157722423679709828039020309250288190892600256894126327145618631641724916473466094175817910531844838264178689171650438019628677294666379911971336413729726653817566316486163247360825740527533495912721991140001655646644344513469231410302041873229461765849519103358619116294681785140882364781850261458542666492665711039628193209169744367057162100214042004543388312299226342016093735087259300166339444452125353108464804301768593708394350159964628085656281394817313912091097822701825699674922877480071797450654175087500841042441053512272960532094526412932904702186489980663881661779898761489527954531420622617500776825257895053951649335243525277306218532965548304696790202695312492710219450752050178684889824279525023767502627505922962995311794171549492538494894867790701473001379012448135741191783660606968485127893609951283605284933538578253299755004907968095614339837774257614036867188869233418371251213269903166644697239138548796162176029980446187645391764416875187067740859972118747374489075669743076381091500385090331266777439442518138581399160191983096530798848696209762070160854547632711995512454611980270179882838057802110096927355996284621466851457110059958594627820907495934653912375879312521849763499643640679457476804303091177672108132123156276839672577776266699158966972395649541451426157712250018774859605608433890122216374196072477978216254518529798770911000804259982840845557525826243470760767716679224052423860331456341686222992854129358155642304954748687243790761362411316407903033061317453760878462122623394612108417954072079296590164544011576593044682680382254563012913922607090737921637972278678502586148318393444989292280330125949591014439494887604711075095303142661411792118903110767250002357049814685840900004096017859362590928963202192545395096630199517321395892739071169715269968859172104051128597770477310514426768602479515393982336802613696063777831824516839582105518514370468566009282613063147984929471026740981625259437071016951278791507628137048280101833950986290478723369271463457844483611928575752867597538448936332886698659389782224608316490737744985076908099716018042651827915883119170113731107537207070460227600003652740087199625555812907758001381985691044462405637122748563683476478777806143792570781301317696506377542468801588967741413773788010735555627997197096117991619917302317732473267077751605870610466486484185066466358188062598284105961430581467710415375124401864913377567465309612695263266349010039071100591163467109855109928425165071528443825689192986144141488033635779137157608430861565350636639893348376876047599912491312027265573077437353512855984096756710086355973871918474633166127978874762435003658355888317380635284932945111746608024095896933540495809465736572894490818814518370727944616553996070141055525130457489846556024108612615952898610360866587670880379226605709359841901069468075817774725332329914396168651264916059388228954001629738657332850983819714600570825335386619108125380996828874722584016422011671642740611440879734230014991280217447154595535090487226437801325620174145022797419515601480915894911395436012283300549090305414190508266069288058226176207374728983730089558220451288650720634095587612340501810099807624260884300069609320555008697098552159478605613372665599867117560789935547019018620366036114996991611426491699940513274482400840791760395093786882409161991940410102503074844684458040007272158709870101621349606305153407642683532085917285259925302867950561658139623468120116333066596892115224058789702264373792765553906159025678376615845518407469571147308829385071565503503372768893696346482635454413255560330808911030955907666622740973116331988769882540144833424705497822609097597488432102340533955733755125919593106384380290195504151280884950672060478159079089626941338745791585987681014722825887593429204192488723672691866149426451728134230543904768375481519813356800171353909468365976888689959342015523161937690027573958871127139354406536137706539421793785336370981100924344125934689707022426094611599879472136507108773187714361924577160341428240683866120896601084980030330337379254358816630274886561476780902845696269786085141431965272827110069677595441292442516875701223914907989555230491919538275065955010076019736099825103928597264171778524003862727503367371358969275869495924254325570798198771218387681734794734785962068076591898334136501677629906950086423861568226572466694310540741370225911877023543609873705641475782419841375562388796937988741871073351788655938230517583382387967705885420361207044464067054138229207998173668974913482582146821810332347505771574234421652263655984927773191584242499178256443440145856297839580633002241102981714178034596148122506849865020186173063271557904531846254588663533918341547441656356084524592841755602997606807333881063032784072275214816260953782061396007772684951254324527172730954735902064217332089082180408314346032230018876714587789172643265771989926504236091028796275079077791084071562475421506518113080462048302451637509806812278563004200630266729456049948075091474477380674371274811302724632868909531288865181770918065791060301355326416986126325143011181740234517764351822641551931512194789950750908618699791743136875828716312285654604082268958562872277024138213227498209825546436674065479388304201212236906563114535498720942690297281208022989696819863538122608404032112783520271465732330296596040065956778928070040715493474311078738862791425583006659459355643620706664210777934800269033158023315408285093810222073625955710813960199424338949941661320104411888831628840895679181216088460051773277344390145838617444659556148713297698026544040523683186600817591247995671094888388004557848833321310596628893116824217688962640989074422085460608463056168788457072279138465023197313585441066252114590183057298443777196562618161732555364874346021631994444036084707456610155755482664507728911261448291445327154870778040690420742536225206477656581036888792971821220255362723917682460821319719653833931696288841106172294383271738749060911338403309357568591844269061620939330443603266383627522426162932902950998784124967139537532428631681161354705297798661814272896021063460415739875971735067533495587846972365994216279760082487809530141551478766120742874607800551814998784818733460390437902949882970877187356520862088446503667990853736617842683399758435427420502864658162749610027251378881920954980411290925020094179675977854739291322514758106917001305055320879629628411238674400223495763063278840401510865952308575511958023366682455362993505933831035384192519970449372388348416978713208737652973722639880669641623601724908268442345233958313229466885562938200797867167430521411810695577896456945940096762929109444516215567607915168821738921768888939234434418612417436049472769057274778233881586705084561672172002025718075615467318512460373572913169680790965712967998144770436029737343492108026789898309825828599783252364503476879957001558979684504179860081231326186438598211997106340442031429814008158658534602780973337949190354741102694257764216931606644250412751650857853965143584318664987906210203364466790546353830576646581404658584638411345023103215313423628069567545493360482810558729630331380117755880671689031409382220625996724874002329853235660666420658969420167154084676150525013711699702212173554313752374427636908075734092480604234669496434098705986871714536447381848787805017440300805067799828019013613248053852236162045560741193456931048849013209332918799647186323075626362043064308696486638604413629761267158118578578254271193529514945125086813937724731565516675938234601756637751464471242225243277217156727084819558228024564558624033334514454045834420259293912194791890483799734949711691531244745307032312870465334961883846217013558081465451417463990844122086503564667974178975603983434013403167218309055822792538888374409653476471865718864291891660556944060628457899435629473220082141280572635236019767380143094701505417883376101409629221907730502386204681739013416629997896933725447284002026442473265737131223267074854261697398020901986765397254709633577042217974548997009146110575980030213540028070294163286356499685533535070779493006805316173401585781071057477269842562627347531890349940957653566800152082562726642540107352927057011072875656528793702313243945992523084025490837095551667974714935506337979915687375625465875329135312031138948955947925869963428969657783089131083768751462867987590656505525804883830042207242874812038239325620826938763608755914151472267339086412908371425570388309949078881986216818951272557983156017574847819121994368403742957429621327872553593867839669190658134999232781459552836230341993629712546918521003978860447478626982724161326697481498725497307338369876718482100051445578976308818236624280026643266127871922283242775726708649348512253720515406407101758827952228905538228922941141168983599989340407384604282835239060667436473763011279130405211279736806418311981766360768791918559342081734927881157276245395704070028216530144578161073599569296298256071005758293203936607589935099474836057496062131260392738902317402199241142818969764547940598748839538993246246858202895815802017159350373376309799692464182287804745884670759805814933611512691648396052352762958047965636466317862508535713258254768519804431696737962806377124296841954285600538949234582488149231852921153045142122558377467253157349802724071914234301798056569544423812075252273084120127099760000283851574522614790851646889157845921041242484403456220507251956916151434182727752294769473266063171872953495606737881233231691067631362368558521689077952035991350209666448511100578876988180850188302886783306227531316087957466816685970134669330379814555891289351399385409706355197539309664830377497928207972168930438151518837273378807004128916351586760374583019894807450147041185860253914948279161188418818637984895328876076043216635122024557979450366057302580021156927896651940999801336501027545007235955261752371596824346308316476284701675757117353065827720765802662726294998488297439875689962611126760216292686392453857828357339247771537133201520513143043282912108836923677682380096022243371589220600400171903411586154104763219102432569882439668170396855038934818811546892654087672061495948037577209516338737200397388374504338724914345375557421373263028044868382405013913563971300605488058324482875088969828019215995508252404088445728800048610608543475073871958941561681538574707419977503814260372722278375435866621386331217992648845328152314645645885669204052531123309475593176152789850536196309141277858799825189335799486219457497655496194246100115988399358008490250582317356147308074725729477532297359337990172700194912344764083699549862557278164034566550998682009490480708079352782406951000277828697353807480672537658132553604383628255800418775510487583050994618949676508483272149217336588773511641558599680540830213514511225036977262728719410505693251380764830883099183828767493432049764720540705004479950175857848193647111005023375208541644877975901885693850307599745377933027999132497591376226374580132764921018889177156524591500804701830070041016408505356978380440606363717254398336280257344853084839942931430419514968543244498786733094338657485932944595532083539780968248532853951457193417835612548508880258381310315334520075421340794239769007609694944632489288672392850647962089717149134197551308137606565388160966530334395535174014327312207821813458570575490253880381034869504210600429832948708961512501531696789251462117773663996127825331433892625086733587114003307168653693557596678580810900071530019327900758844730717571375226383219386795988636441778237475994120224464827198174265314568305929397643205857040776999014828239341134188244098696551378490467268126811079557555748400513263114993231172705323375346188579302190129662442721971622862854949087368010091190650817085865107418234652239044851940568015802244608170996324987048547929885015515558355216252607931918177781624544046130968967651326102775514939090116355251485087652114055288752911145538541648888637514730278236235403070161695978439822659324926124897327334161385830348825052318903626820382260079000332119796949060877144949304442121008605970154521800582394830272165755175673318800497755161857467831022696629538545650767187772204099095869500043749215416968216797544347971781284921266468631537967054393140517142499093004077844497690279691823521604775400390463977940862856225500098135626020959034258308922123287460411013047775621793439215719089577049999423351668630461825597105951578333152258054855728375298179558102513317970152165177409345882359646285751951306420120153948572617209792882030581799390861066936633344653096869283683672384307463881013235518712977926981945188686979128396333134940451203720937756935618306503150969127963640331769719856289217080832548921810969654316759864057660561198857090322617473551067456746520584031071973870024055504215669734265982347414428748798514327105922690618380128724473667806280576236931161436741150573858384450967585521440531890131960199242356101349890905495581005902210604307874230119105280947179302527809329638708927663241109855231595209500813020863101049016111100606702607230675130893453611272325678896951207835512823192854564784023394763737788807521481771578050398708552045422084329065331292073945005340817846425714446586366003228358307383100548788929576167349888016058745937113765425586148120765789991503463460515127833516740812580955454757802328324705138927237002799548563012436820301631640155063077025522685128892321865386146182378326444761668753193382878856190016476176584826104692711329558695267909694985737116846596177341080957646885450794011316486254845484569509013142597412049527192775748560216361859922961328073973376151801991718357367125357586759986304895019198815228678072182422706089464678113055186627319044746555584941756433216642149300058501791535223340098281139194254345893510798037155903821356017474278122866159513506494933445257437146686005267813925800319858819360553278745438154510265634532512447208376360391719054118012182201280124076903947472185699585439657095531724064980080771151340102291611260134878805461977514538138882523262925244504438649218741696952001836819613898236218401113724620080328697995356131009525719771227259298588230073061676434663939567809884937278363931025398651875607042407928205107334247718288978810390313727108375670055255073772314210187720368928219718111916709620365645953334327434057635793776625623247511043756874049121617871114783593441511356101582694866063404269357217121199933328837358362601296563025411265711313060333520655977415642333914576677173932840050226275612199783732898632025907722446120070799478446886232397801652436457803462265635314399903660417485190957698109961497562232829249905755173259572935845288971447469289971167837898230379536491693746736711481297110995290040984779049183759359753514305475850013483805528562997937661213584969696286243254905589518643262229463737139589334833152639174198701687241834452049313133454984998560644173253519326291991701623836096092563048076861906931895660180571731818486426677895974421322770316289779806959925174087596908389282990094425258368345210697868157177400320762034595101770101209921995388903813359952841982832560753496958977277401036553817743026669460344244206277857625920412324538464196742331188991491411755115903555114452548974053005773598690497903825834000241120909990366744595803678076667171310311044138135593213098585814764361664185373361533587608326072295368382998293962241461550189933066299494049608130982703322043863261299878920164481027599219922597700096969700887745364424853168619741278052553642679952775422663267446774974948720086640375724367223146150667537854482000209730767923461818559567533970434128415669006045067233191923253044468952298048230591165338798104811533874953543287069418010751882564621205785941296454131862241791306985991018051189921508143107521968646799343664051525223576705464337456008631033943386020173277755975527164233205371515966894055705579078965722644669402445278019716781513682468068479641126475965654311484012960406223795648739255131567886704162617299397928761543390144700061378639264485490916371947910467560418851638420948407695109334354239434677367177796471518122320283104540489698065123082234814498429902102623814875754818952141451576203625231493482944670651760034718033929216062590951248319736441860112393302841737676996379465719218759151414636405086679738858116525646287975680910864928084923391102282468395013431866308831945704518896556746656046883383034576325490662508516401219444142876338093085946068345926373526647368736492562646326150075540145180025080634723546448186318213839239309227303816173675077827265068646912489217343409835115494393091378304324235510135704635281121812223468813751906837923843631965638905036469214963101800220345547586495306177244227285607428888878401810923504106859985318525139069931178833337014564357368925585891121919122837871140232904373871468193638962803534188488667332241927305200587134674841528937702026418749551386153110691961930875873420005548978508180643833920441182681636033466465670820066423920542821844946742425771894155337493648954671771931854612867786921031278923869934393814672452287542926291272881004492009393074208083230526770491030191287300529258945800930427526293774007978715613485474448542545698073384966707934827679111634589959036618346375459927114830800022115660852679486081353117055558002622735390947808995605138352679730703736705319928574290178532043844545194682265135900385039371790453148310837350066034134105325189665473356751178102916679477768010514626579261784997891841380029833102130166214265475118845394283773434338615930721453788762553398748892934588372844945523752344697197575388057007667923882410176554994982667225746729503393080300125569686575648733908453815395770332388825191694871002755881815928025624259914101344415923401488599487645574112749011449154074483844299467322442595360518435669756393273268773661681622334496898830599325205937520282926802671124577614529273571144811950672593821720107138917395271861588821306413586786919607027023555516532543649359495294535639154707448020065206194046070372762218783330885146548825342704251291125165278035640089600384287085731409138433902176836128787395348749569389241103777336740291842087465956351740040184517965372864862263753953801100922252520604773878449786400478289192768750581449155149165140929955599763344799585243235260474905449476033502230928164620937288693507800053231224484267653539570674453249284655342220055546507295483552825932203564170584202547996063487651018421666468303017856252777497874879493790454198742787910638659917381481698468860363550297650868294267465760753172000617969354596406930816033986134184917369263976508862579987938229022681969741648674229185381401134690253254337015911203130028395420674869886231023811958483042946361147776486060878805699307553776477449216405271148684712984044097317825931391593511451642192012840769911205572903995276741175017937501473098202370140966314746800048980661721958985023434420389216099008116074658172068037700832028568069855740011266016910916535603453114171902942122271737469593859954316075883209623148890602445056512241374473205513354644736687917763131954858039486901800136155964775995784274005056083674305798033340809955994031414717010007589100759865442963448072204970233975307863808197180486987236989065595041092890063576998005540782036408952701307292500861594581713373355221440396753006326192711117093232187554407822112476706855295429173714110629347071684927625985395584599628380254712569105240764743018165737844295908504309099103174125054517057455609142712424106889901261052175359898452559868251063718266789669584883000824370948368734660846710355228341115564051666603677907293186679986926256823820393438187538174017264818215740618859569291392217975807221912700653518921745931413095839155199434141596216255085642183902852747606303074944024527636152648995208049132534290646970753976251229157602978386383078390393322089863712405660872340651686374280269129607505794342094531261232150522550862111223046194707307236147365103827649176459464044088679647621143526319633162802295402039788369415300853906613592091079455851905714119658087113022863282683513247003182641372694825559561570928726797820652160936511816658731902736092146181296666676746360970128472400381537824556625818183507628603064600780615781914972191763646894703144804578152842438846912885921739940331880571003389479829974890781095188372825604995406713852484974593074360481008002854859515863213937944237563575403011391618128798243117810916668830648545446737564823777828738192267815581143989931015665891101211476342500160444251153639673161340699684623495183153053486626831250154712119750894852242207488886936206859352322170944776326799239420507261245862934294328553769662191468620991834683056830613719412216382356319385156434145842017533964793819945919557535954393223726314299502475729839415066749037514527634087237937563073115576722613279916381577024732603751876971432867579305090264967962254595507831000896302532791316216929985142269972290260431201321683103034422718259867404322509944934658607140017291864567934877789725315120410370384497656905289819556857137912105543078582048742771383855310691158420617123924661307643063538688115729424852547008346152279040146738125196923552420816861490236483601179326070719621558899412587885746968250899035077735403783478305644063960501089228425081370495372253374441350894973302382376668191036582209148150401025648828642248488502852187346492898832070704242871059196547555716323617012681287883488596334702993653640786045664990230059860582415146339064959722199405016587860529662864861930988947620692557081450157415298610661318419098636785517750189881855955629936509688861851364673843384666321660283326827498327847080263728417884598987699080995097561313569973776374029656054533357158830849335657119651024931296754319648079615227021949473352022614474556936330042005605355212609963842258705235182771628108665341238094573603090398560131833162313042665920501017327636447206883863290539963566899460461849581461623856107385256848213870401893756990550552989788777490562504718723128149975452463362014114443943796656289834503844122626510709801969944013266288501685427851872002152919476797131201455509237844634215141610446996173693441566720177610485511885169786606950188016680467925134392026203000429153126483910075545099287860396638438583698299518041089980770851042458471065547243085201746535387650286347671529988346070140698440127857249357241904115224482581226980210787168908614327989090113430489025281073176840606667206944776303396913683004402710321622249250036402996804119037865646264367990007982287510586820872061365873111210536027958373311646663899461667480728240806043161752390627547982439008280128062546276808254178122599603437219358636060456180164729805946323440824873641683328398022243461434896445356145803293907891446473660082653803858470789218299092688207035000626970322285176311304129133702878541003794938571301363605481697355585018364936418386310310896367729579641965183317187189914345206899239635596776039275136581160225037893021436258559590215653701240044410693239756823771285591744216681831172500390615632484695239022924175561259105865227023328355800191559637733463423811844412635803791958655353008309781884883085416157938469700446377481577950886603540175747627881286341848632789753265941730728294532444321002803770514457226125123810630240853971486692113523205965397108137079711555753478353226735700300196677545213426548932187147242030335580711949164918154984755359629999493362559803966610851289533689586933985201639796768717949743726710988930237256284183713456061305506403695227898825514495503603014852262508409666130259112002741299915619115611503688522864360586471771239368574596282232191866699321950681121575385734712137688496614898717110762563322758151558312975004182635115844722878056395029112376641452592025311585274533004965585854557731872525308897757002568489129244571326055031740223854254812507153038849682210132199590853041264114003690871590960522760415735273441809431242281776133484246203556595111826521738463354217085667298644464816363873575217938394298743828713800336350232825840470046958168794117845702359768522286665046267705950225802964407569904551571792685129638078486580162154289945818797437403273675931956286153968042612156717902851192023342582622045509917280482209420262554097348711760134032708197075921520760191445563297640225814888924077816288378944184021222294853605983144147540171667144510848748165985778461941989865959144815780371459392444202557053289551918640326566562101105405340152330553860343327682682658525841104432392128998080238344654524933439349401131657622362684702529768607856290172731486389026305759199022120013113595371604834428428535613673361331891332854450028656543462071938115047938316261324875599812555303899376905150047099562442612215692983443264928694691136708889469162634006926200147066173745955906798884626298146781514800427602940097989439191794260492322259944617204092369714000353286866492497227757550987604179953768806043756142916951531289112660825129452374254408281810635820965065389230545597135358688332494385900065648759869036592489140971962210625293533543941542607916380238284507716440507978322429554523055390371352534658992840789570269258535300438877323767386607417629507121164220152144434886635992189031248889412096561033772863940550390844728510769938524270728123361785277112562923431520011611748508008993487303755074665407719657833342723282060666819492249009996684235301835152159460354057705902179161428789431479254839992818123192214321672293078166233052392119177515366596324817069700250004602039646490586288441954940688782573022751633685649049299381451393991026836796048135560814393177277296571733702743496159550385994122929722087172910515196401730849749208866981154963052073923261502109675220784685893374259371165409191390343589954051700718068722894122190550171007025956262934087572573829689553695216792497581598994118681613344995876917993552766337571911550999068338759639398741947995883207005289479972475020622057290803548940205688129484635381380931510861708726036691231606699682744322059845944909368262730954468089567644321838139524531639603227391084502121806151087612137574233095807801505968769073739352959133607679563144643592081898387466607352741454265554220491594929019551611902129439898095153121329695427375256459611248298766909307745524961829781676163048534892910915712216527824426523394444754734491053268641232839401745729481657554658344958923314512648837339643949300978344817719676964718493638389862509915146670136107554922614929060837042699531749242816228538202052683976065921007856223558276481798826742223310229860994288402985605744651055410899403465408914915498648681540978533395084794237513084448913891685357362426101283625378493026101570858450392310341270708627366430152969478210170562059703874202210402349481688032030400926285394511559658839567640261352723529402901658995790180283061414505308219913006789723382387330203538305908918516835957561344948412180441013180120555686704547788687158148318781050585166958294500356144312017820128034938317917082069660850077457332343041296937949195412625022683925976445847754203359511566605248892823693009696472044351704641529515244330626105858634843744945775441151870961437562861233374420724824807400503842023221002043926340902490755199362444417186707880035972372406371491837948656546322554949863606489336323542268844415454618677043052336628898338566082303688363759733486510714187982010694058112836742480975609050395820090903881699723476445154931860514570186408329031803731566122426480331549675837743297897053152809027999276818039720484214989777312527674472784291290584106701245825514288606750857271277005603139314196633455444717226799191629495130521359133310066924494179102559587278754436211421167607499572843513965997987684566377817083474057319929880080660997649229517545988528781403093704623026858874223452898271224393532747918813143067500780229699139801349672761678874820293541706503020416720846305911558140855235472109950779164164901765305271952607817012074160131194166072401515374643791294644945460018973747799610679337474329032186302909826076386334038376200952555218780477027376542863415131712240988654341014332888472969452051035981703872653387931749970464834263463617688212714320909673020166497899033916531169617745460781852270510386204299051115207008431336662581482253702422761184493445531843231903743974666670156576034327418967814131337959963278972337585331361753295440912538800875250777018136538908030887979538373169019124959657126016908258450916453349277048556243415315102843027410329878453277633027920395872858314314996876153719701659265214872442200875633510220633185011425682220376789178415594560703493280465891297991439834031893986923858693069241152055397297026352125727155765507969039308787336015211803011239646265922495863025598304652097895242776125005855380994858490482231301711974541477728751900556664941836518416395810052075512527450695531410160397005610110934185979568475054753105639802845019007174947235286000986538099326642125034539236013017168624827473451706744201276688298816432447254471219781479955988481206042718481323023170778953410513516218343850350846824843293050463466972669786340397251889564390592821488255764732172482309546961620296298272315491620767334613552602404685963416968869174770934344557244236337421521154324355819483451460069750409378407119244670064248889808520965000609893726590939824926047340428316512978108787183471440861001533251665332492882687186462682021913966410787352764892831321841609823058798185432837014041619832946674840587483326922466821250340649484629253440143770899086542197552541658672431175855553853272076790958977862223414569826826709365323522246368414877135600384388053617889598244150314118692475193015816244794251225331522969234496603928559318501391855548215213583739352798136812999697774868978762977148233814239258788518975967859681252442229369026461760425382113189716151902381296367668578837249409478381064550449438201121999110211075355852710067199294867909282710909896436410613830121139103454331186354278622647390447068756653158861952970215397335886551527605531900587006121654300197841282441105208768146695762625624655617668087557191699527108149940906033549999539880090619367192836936705878674907984466882836219254015751901363356914805308785519634529131141362361683173944632876579157768775612709884476797876314039370367099045763681102701434727980952557130493632284971466177715838337753360450308200951984951203794399386274026947537212160323082414747225658699577048923646588582218675841474661171935385735639883893209901021947000834439409201959234713130923735012392446234124021681228771792840615028705364031150096008368515988087924360930790874114046331799269951787460546652550856518649863512172356511711026356298436833154405730944729071970129954289475728795965656910042369349572894027513973431780193407141752310295563311956880908633924130450610450161849796607545937379650154943264868602009739828664883781893562061354291463518393884909482860709223079781784332189959253250429760755263212311251163553947781304056853238719148104021433584230919667240265293901957143080326389323925493416427088729872673533721785226921524274493384631226489514813401844200345948575610190967954811810403611114389728075159066409722111762867588874504468328436460938688688152290245223800950639896579339318039434515500973892283505016121513501391773322358857812244191763481625805315352773023468391270883441084602028869161757161451761785404101385543685472777776326814790072692339763502044330601379981976287142762012041954853622534635989375219156806494348221141345249761495169173405095062080397228020942172285682371006900052862955223840693829775918270922276754532488333794729355082773000643416637961840301184263271129175679204193838329644246131186935410551790610119645667426898919506307155484596541137081930955666151805620823796493384918837924939649346692784145312173608347357224326021814327790848161853878241049553388948030704245043273715271335325038188593891325594912408860630163188528100076321638106598926027779262862803876370404598047589773217887540226848001361147929379813923260582503043772296705167828771608789013812750044000420026201383539107079204090725338865308237833128292845397067740317751788672848021357284219050507481895922773995324187008972732673461340111376856457691051578714814480534744925588630162117569384050428879200537684291337796564494215635092665820215909678380256673520552342181387991908074823230244613201678923291340228129260458814388500174855572612264330401580266128803262880420192455828491617873457130873523398212254367313468956017665645928648254014271096308439021481675756153631941072864005585009435468780227374040784198443484970332685394554262283367230224648403505980358870985654452516744171920933085902017544206274173319759657289999783677454717627372882827933137058718095896321157978546317192118009808932901022831002888968054604411141114355125338352261134252675199486057047167752567262739862917636637049853857285304737357229294294744260481571164275287122812356566446074734127849747612903670478677110484732537944890870817673907146955665658996966041777690944460931303159946796000550320272510179883495931858707418737683066686093068898901111104698111442373853120735528170340587819641810888933886546908841042900025242950336410198594972111775689919295121772287558796112026293836821794608133471387878932052739284885377290081963916657130495866724853782210481504027870892580146913420789429891621395860402856793832292034758239107995312311557175952838621344012545394724342325413787358614390552087885217687213231825591124263935739494560797514804075067160747751255536266066043479963609699793343471530818952547179686699330492628324078779136377255414795379557243446219982248809510481155425179389964575647792288127956221029432060855991587938564590118600504439295704177840260415828180025962732571890863720278937877490524624569313356980698691480214772235957879824275389730972530283079107810744813610154167438812973563849400092547865006396109920616477714217592621110478979309157731173651934242022326787892973114902520099233424381988469994678407996443496824288271765425194744399555569535338708545727307705559316272307279514485204849324652781942773477425645041145137123810178934822735783388782607033921593616482806019047665980828405143983071553847509620863421194867138401577860762129930440302827591360258353214163665162225660793746176613508941617317129632747365162715495989550654143813997368854351281289737138716151808025928547175360129084322642332743475673400902261064420924513082267292263984858576108924674113241481240254274293308759500474190591185567713140611114183741663690334019458270085878290072678094533829812185333851998960002280529543304082250726864091591532315818749272708382484510258114885751900157580828239040261917904267805291329824194837927687802153917708137082890526693251469486219920674641520529529725495942334525391935671272874426622429892132177874860055969775014687903354858992024865620107130111950820076222458398554093525464917997162912460326251553108119135558738467270676671990886353207161806546087016827086810557401438464018051587550948561412724921738728492691972236907891399704820732043174428406234738414483357308417401243685215246348858125183339964500731222784082730736386292866688024236990125188544072833251656139189496911278756644386778790938159136490897385149748934364473194703773858822023748928490246757266759553215047353294163967530378184601829373775056058180445335254719789611796423870959128829958701941744814111758147698162638835597312946278569563733064173028014927621296788814504454072584444084434838992839004305408544716786979748090082647371155819011590052627117893081868949205906218506040206243018280390177290941106982778315066060449063578404752339913687314967961431865542277514820995809583110441590734591316543154551249134067207103284881353016029677275173997999986878266489880217694845419176414072985648307148734517643506326010659329946819754096625244780930338251649042093973385817826570246417151892306908342968727594588147163440859169144710885203986687355860695295774456293684196993204954601378972739141324401247001803741943735354730238746828770492606149312082715848230675558605960745014939068962924274511101377655830606505052851918259230665864920562906754378830868299421892145685316368492667905102604690508147088324104641575308112266045407087920105720934156531638347528109379506602819631654929665688153075965060648480542417715028277130534178403121891096324915325097111478549719370654699448069175256579755348492414880372109499900110361929220195399367593639460563514963020583233123729750887066897941705445669707389795975113585517702129977118828468175389738883198735953018178414795784685189567128584777197668768708689655406629524136067315446637361342295137276730447807381700989334405164364313178491885745686867067472576586703856992041353733942200600196666193185316172220502648161651574669888777588948039436786873779306408151357823869524781442447320365046408926668553494956336665707280514338623887166756192566170874515381330219588947339042111816501002390932758094035001619088865342152823365165731270898312259730644270826011733317730053396014999914519548557082461799143488815253548900276568286190631374718368838218444123474316190182060843285915420057823141020951858508022070563840384747232555482453448906613930770256338348638851737875304993982504400116424623678180506852496614857393751671025191055242023619600064766032642841618681826057722719441138330833405153255340246024713615305561358470222346034456360057677415065217200933599469118489757950671079388646722839770097981866959085476107543046827635064993160843009050421182388534204798747431904545880753621771392907236537565732542464856448376132842815174900974831982728764698326182690428707564378133561831445044376134282410793796752260957427937830815887783535332629278766624388493019255610488684808382885130946867135549391479716145126409823298187186358923162177951951236859220732493262453069721554605249583178690197819704521704272268903194633381465939050952047602606754367113668958644473740850743531586011527798877177013137002339239477042833555155357757319704034524293294614038429081353761287187304992910246574632716732839722070607177834085788894181543846419365727169988229315313486949704969787685652232798071126076757006822227945702627208281055101956890826957256164537830433291850744956883624016114232129028274623860300059678708547469209540225669070103108861406490798367892565894426524835038601209158056042924349172756670208977719199397962277411477922324459969469499680672652202068506392242401426918106329053866987575926000313866336083443808972352362293139720049394761753885272447610457393046676927584358026431454238145094403441393470557610516352531660556103945909188048959562302061271227071145566001979033135774930510157542764367391721816981914202530800760312280028843966023520020204544382909940061268130368426802674358014267727530461350879080833701182318848322053368917824977078785335401584280793299297176190090285695788065483632853487514305063506411887356850427975926737959652993702109895293077884077551311145411513289748756758109085739170010107767236663323362008977171876705915453279630756613376185321182116242592727472469946826795148138927996153342677281839111324089917891135578986408723146913876161679187641331896582218836520366114985976445393692987196655046144883773810808675753000173623204450062155617468209897488687475609209126184283402511932586322570502586891632386777234103043104508776839988282841460148145760418211511331950052345218485310580955613679407612553311708422475988350576451823319801284893314802270256283903242819341250613682177615314057938240623616249807562292931902820581442919465727126586442248116734850231153145547928286594449389079040813069058223144082344557821413446655454766586574359058081838687561682043766858360453607803329672197099898493845265210826351855245209067349054109056410908464347199932217582849248151741672069135953280457937211784966003773386641109530643462349741946993399858434241785092919267931395701230255941898578890692395018140486003989440744207147566387748013680331712743834740427507151807772178634845262143869976749238677819172013226839843027092773063585646379619724463995870044141749889485395297500918574018848971485361709198384665212099370092469319689812446423437845140532270793394454034372862983090046117307994427997838563082706690957696732969428014619061207849292859415075534102651090691082978120723806008086676997238516689091849673171488616602051718851996679682604068307824407535700124602573613720863397482688174037936825133760073531969981591747095455565364585828438806320446083274543772273315977002354839974190341458396049854301674773051236597386482469869284294652972542812118925559343844717665566097360169920778209230646393475664189965843561629653867112013856923848247184707472549600533951201833253595276821015831495765362970677270333319479100316292120152489319192260352556803513408546709285625642590059068920343252642849253510386860644662069522229466326067378594285184876578322803438929046025251789396946407733027342940630401741418411242994742256592989608285241038810153671976883608191033535246007381195513664397287857553382775700366167646336948459063056178906077332909366977387785903134595420591093534265478007952163445030804702845584274693536731510600178221189232031969851604531658743477208604913153080793127931388344522858722673852099201032732585079417634661875074276171004743976486191609475880320039435073654610716039137081263414918347871549673843570980395226006048576261702976796954024438154108963920596566932787563246570100443366422845481466293199045788808043735504404483550083364664950818669697742715804088605801979819673882710380897894361868462169994861218875775924882958711115810296955378108621998696133830367839286022845617221790928221883562022692807727172277217796873605455114553395011187021783561570392541828759814569188648012649511481455801798086534821874425109541181046420679774720168717359849222369388855653662231732695235142838418097763660133407658931960850080199058835874931935851976252224197302950300045214207488016034060750133402904766546538638340522425811069607698657934077997892773687437477578512476802538359988356757981536143364132088919128625560924538746504175003433650888800821128773676709416535787403084064443892587805317431556708029277167176708961265528035605677596227183964770529036774604922017621746325069897089678574167377494677946357495481603008564074234311961836280391199102665035114186570754474548827472234712228505846157535677413087706626702776605732202161362955823381706261195702321401085425415074295481430618418779383700217971097776733021450432247750154071612483937215348792164810069777810039416220840680879615371374839609593573523081397161712978591157450391556479443682587018280925935831785978784971076444971793695053350746309875489016697071176477695209135783794880576157271855898959912285699084002439326916772962327791406351999063073951353272496767484782367532321701588439361576985470510537669218577156832224458414842461867280036830461355237092507936990200736379409650298268914320939709276689720128855376520254828771906886932991009749628661718572267396745405982405945670905093025314427580374214107708847438561296940253834577106797046085014621551143443724168528186427049401542845263873786236196472815900249789268651705059277922028688292354371002281434996880469472132263863093477141735012386283755915322508328692891040290354391506214879872305756056803937009900536373012788796338926959865235684176334260247741184800029093249834498576461600296794494306499451901937063765451098171986749605418617439335117319704223436529298045383335363356135200539031829569276194459202034268146207962059558452248555683783558618158198634674777629480258736466481149912800769096569710066039685888804616445747452711301437177819354298088477824304312392636646382244147663704419993286402425782850616790296961067188472225897380125449562940174654161561978298165274013805580964014807659552273709371270800705689978292422970647161129058890806748748732034429869933509615225492947789812935976212058375504140440857299922391725379908023412424808826491968578838516697003894267301349436976532850310762796989298821238988244102320044345495185912413928951092313183571081087967924029913721962567814727904528767674339004470009342566059339155520344432593603212983037031915662266168854389518473003440755776948137916556220725412586484869700277789090558771445852296555290015302616633334568543026639340359251424741274155152495839036034374130509450591162335738259637407375126574715794722344870676337213532434186423321932769630791004542652323970195569966863523431010069510563306364816513034571772607353668946270779863925280372998173331720917578510157089989368703544369867804230390478605565948506499889929583576007068056685920781282892074668017509049836514586668701948956352421231695585228423005950144334272161293928324704955371779450171933446596621157032086386353583143638893814408702374132634532787173083854674419102960282506957256024412101523901707502322321884559189758109649397245818459500897469861788365854313919974114014059016363427035147142246203729230220763268135802943252407607714512122645950735565078429395294737268402970765134478568507940963778172856114995878504052955553775967966934356256430245245882511378566625579733150054980560619038382455152297158502166547066617613182192654460928826225984469797573307023108321119304660967019023870333509539294569310289720101133988351572645329793983339452877667766891658188310769745089278473747022952524619678448488990722413566450199904375659322002415631721362812398171308312392984051258725830202067877734419258708793138194874432828480743205705820996853172760215922972212752501065518720807977761242819966957925265459540208728143998087930778530112709237958962819831457042403617965567526986461505488086438632693341858595175538123855168409186604338372695411231486559797867044114578759242347449308423058115476135267939877805048197515581411512420027917762792303616613044595861742779413478429170220345871826026081458156543616157907132088063050438908886332452332114682195761881027660361734487681086662626633793129763376783624353121497184050045898656315665320231404263044513967702297351224247896865576327957400500187995937399684173161790115954700747043564055258243578227678834950143137380740371722722374782582894838637633884304741682725108855575671692955758191548454357330441935992752452185160468006120940766016073091018487008051977984471256879655389894712950686862538813454970580967040349563167475905674700249893443578006470626666631215757895846251743771316053609821506269485256751540844114761147166130957081476706011184813705229083760442934529966858321865563906634888686000237839461134918856953659599713088866170227060111419691794539712067302734949283493360068031563581505599534413029330182986096391721706648322418237051069420441760610941412927309003325221585971291496543418335089108037055311646902866131458645897289389565306089318984109343689446909395105095190727067344712964065424834485512082314788871470402054478123957263325696765022157227944564690924803747322828412252684241865234744449812556014032022222080441577894450362316703523432455659268532721599222299177822278621990508986139817334715250912043606205896794976384612581903784284800250182584743474431199289335896654551541243992936773246687743766014615581416653346868823561511063618239400947957509585567144236275212509217966504342102639532623541505514051884419414665214880529108139371878701893742820114857079516326300906857845649424035351147483479934141709243967735151988774812343803671361146068908068622734271532626369752110678560191193914365772430289877840078216081419461478709135927338247026803508512351015673151622401963131554465330504707166705947252280477427310473972256755364170725497863003719889498320753557456148304975213792701600897321114998146621585460492217414354915306725941510907923940057072276061811950317893828744712728496721919995086347544249479249214306054646179736835717423387560720357974277938605202751580470379451815505312185159179818480700588225037668006318216056256149182781221506093403946715901256456680295952288175250063895807928524620776269153561340726767315252283831628661308443809638266967416663843305143282547895496907588194436757685619348085361000630346496548777431817021702098115665322156756096942958036622251189216032762526171089998048569889912923606855330454963245373883935645157627790530209430747997891548294056602597103573941217251906861273302759324296816688905925354268666791448332785231831737474582725338314625204644977406385577019330514284996367591017452223487779786308410362823924301267227218899931310643814255481934982844438891327617007319284527235623111782190464538579480511769780512533678554779287534133928567983641958420337451557857305886228512933553136969862378560487901244617880303175700765268174180171873143511115989262679046870779508314959627299222946398808533781008487157641628043418247091314585421745573818701307472043329875590393427249707140559975478585551234631026580801185564434268704400263697492603393615304458495911537778311608913923405815483008099743066090691944149909327341021675373770688351177195500563383434851088209570319943450340702666697483444971465497801621705774347262898347138879520906083330677058317418679907508509477992793498433838212778610617755400757974915739477895900425806732987978900186870928048386672625136519499660907803955169054224192982989324750051848653001201946470607949078994107371294242646618350124226337656598306047324081113873896025720036187625724387483633186902813974286956935022462009993356325305312218431491019058236134061805864126536169924293567455599397206367337774484751672474418451647354946997728408960126789291074861075447159992632151755186373616162748772265385639770439640026287615399746773666774800927150445863394965702046182530787659370656406761770534186615715982383263469304170490534798807077328807248504144579514860411417656088872168390198276231291110092085680452762367583529215387202630274044861205514683740342031240896232067807627841609151802075694552973037322178844331135353742193859758802186218617265311404574128398238933816873133907054438450793607253225158915997439885663876196399413716922772713897832840468697516197879180183837421249468580575961676200459372706429182297109978223131398515068405366095740760190348212249652574124162533958387610037531039542061438726199432074807349207780609383514746572376702475015237846337416669282335058812725738038090127853129467832746871810403713886404509668049791630786738246324389140357387550904151280608228707284141604982831751505685696624754062937710548028721183333829210196940050258106294610254960065125560382515527729094724806364925125550324371059031025877653566346141620059645724427618293627684948029565818259475745667939319685443619682689149594737450668058910029466234252502677979079355272775070555988946651558401977952052205634444669653277621209736586462935702921418346119507544816309342147103332190390323556631116952323632604971939961068918076824087776604554689475059030455282311754316142061070631174274245315538047212142973779983064768916349663875397380012134335544121816387968722425329154753201018102612511437120423733891223945263714416715533987483057285107473439777280513888824749039674898665074176072397119763410480190171362187193546968855130312316885789684902729758486108429835012761248991067410275059081361561529901310355004000045323064494379403703424235222814570953864695240313442250550464694329635760632343441564774220524626031897975582830131232091094935444442874686599549701931526872561780638452851210785750653814975025725576626214641515836150592521578079511787462920649878350597570793527331390953525112502757276896066129733437639221994644092011840535280731324385527058171479150734869614934896419984234413850341568526701597301493984546081153326988983642017466580840345398191982188347453941617046126968556182246941539421827264374310474962228051273737665656773895380375020393756439543430213102075454615265787921729874617569191816003914718485855006060564891193961990968521142769375730109694242283213819462981721451460190664827351856727226495562307087691043838951471048651201014702846569929742221537141625589513546386884421853657035546036070893578164969195308446945017991539274900610811313488977220933013974415395075052130619665555022650611766679489553423132595429576629649002977711225649744088244122839386223814907165420294997571748036022800379154110550709168037363091545453906596733732153692115791220641697797068026242839551962172348335202437793008636710506359221939754967813883095855138975043356826345572142394945512372480906651469920268654873864555218914506999210146590585318370572896740906788943418002203180956974728309816251229858345982479985113709551972749502083103466313901155737710270945605727366950612228718054848689992522339360418497490631595828495757972600180500043065266352968633915466385813818783020164018852573172372126218400945286216898109067247869558396186037150255972031949944412628105597263678517027274738834532732322180992922012794481750386552025622423863503032653010536511183525163797868763583453202299957080019051267339352592874442663710850018544166824044555451489272459301573674322082071396076878413219496335498119143628897889380212093874637624186145474201932915555181707878371441476954269904773906986194788653821934045868275175938247241155011943686931598480700453674318957019349553607218831844567836146474470399537697311318203602245781533071695244006286282410011038262926388547507182474843915225121715020360926593134594736544448211201028021349017153097903715921008061150218366586910242843844584774934056788923104399493796828429903109896392459661614227440098391350426935141156411593182250623078851933462543412575168370381234220833621041077091371601832333187675032093704960619759712258692445007707222613252157247823187565719951360512734462975066480801676530303716407673111215997018795146700018131670205660891483951740158791576511427935837812990132239185641836100356242249496684745620911376805993348811355068470404328237000760911658001691663512995162042940119425193160292646430593752290920403598807210464055907035425398933360366915153800931966177403661491341947701388829649734859182542613495211380559124496719041742001643825173224881259503471599153886042394489306513023679650701061399628349246911778681864415907732130457956226948438490762726733237912121575374690753703609385583361907838878231075291745323233002788888446507140899164892828972229184096586127565018702336303823693747457153932229812731256917081199765023776551555492308060564826051799995136254442185837479855979419694634455506493752431657772125310608312874268381405267259498626683368375069681203213247305240362367231192723933624525928559952769826701777051202357618236876642863437627328477449222812482413446645866050715084597992537137585783036599726635516690973202150883947371537036996510590079046231274489623318164613732650197984946305209507523021118714487807449465260885482425135449027152558513884955077566780294814303606378916550128279386123569450393958612536729311076189102948434657107956444770891516448685612551421137905158820240941723898140119778056107019903375726355096995624671852883823549542111702976069407907799487127491749527323314622330764775756051409321048980249378255081175950913636196601358518028959628756699646792937445380946163373753781376854937934101381216351566747324367409968117776709733890156120545896514059434206032715494743875431239655262622831340624679225296238606108766010069896068019904662538647703951781365986178116820086375573920718607265593106550257080824983730994812642420169917997305651864821403385495588165130427241533563022543672343906526839363964349862661354650447149073438967626717544232338880904989340487048539441619275479944282697283168091623570610709709697116366915752503556631012242824505958601514036235976643762106706822950233793764090822200883133344453749019342466002284520556261582802942366069490004781348576486904865822330839067571168623159897819899479049232851171536763104003121268544027959176914900431066337911793627085051048780915182186217040158692245690222053772959599869178197897437164345030588629161065466365411710012723982626121594139897830108222866800463963002151323637898056244815006629006008178638578307186696337814858663999041533522812303481383826677927261458947557552974802201315105978273201482869445144502304390435528328439470249534828099695066722709706105630584481983918087603045846932649843973523345238663473016154992016722763642403203549294381292957788009935645053581018928505812307693530968858414369216853512482381362604500701576192269558070802263675223016648710559683467256850310511192631021000952039295356363579920707902612273824716112220722506281989872413255690135084565178751948023977518005011822229001227892299645134544965290394237226421805138115813981971283934642556396422637263702564057754669162440415304627445209295864480943615615996339356739550328122285061545845042878987393823873337848388821988246281065229599104779286314496910843254179594016403362979716698205457641248492166409422891133996348084688881776202129555728573707963471894933009262627884234886294061820528813909550278398206272732483140690179767738358765825776690751948340103991080320375432418057968301739450421744628565651175649760907460265133426514863201530001352671258292956135466449895766700144997284590290573618699325639042196027296842501040469686991438206260876190681439523694498925340248595181567707517602116641983024512576712260819645966867720423569116922384416575936881642193107619963001166098819568630047030293195473652901588054404774559002996149919968747422269715600239901423900983134612820979391222129515446850525197314594160846803101683509725553440808986846238759418962405564418369060941903020355472540259537590738131899206840801571769509238592126714779283552483493488937719911837568769948770278800709135576442894216517542726887584350011872863714760509314172025094548172872626247759724642685224004032720308412592331142205524225174354894521732999700741216961997851384993714049572614972260621295253112906523995925439440581447680898124177099339407432767542177850577589726356806747412431409790444455705118349900569770989624449480710782397246314544886077709607221048862878264087871807019366331812984457390036806390983189097785302727890197874553016536952391214831935597787328240323989754157130340942527169032754295091136553893245885679746014789822169913349099527683998098809028211190235037677330266157327773500491350379918705183878930967308368477755908276933259349898218815854627226570985516178281406464873110963318442616578150403584199686498709878153186630538456768456553721982643191639651989041039580271921480701470977223623308546195067237952842759948034502892450721774976863592719961511031487287544538303414242382985253003351397748425434881891916114097321668093140909164622048269489930897329119031234522495952724691043776028768200326687456960045605771140601466409350120730307129356328734626907111416824912427817491881223786169371614556010672210982518625050615327371972213144053368265359573086365471528493123540575888897112549888497556160638461832800700531121815186467788704411251912518759301809336728366660699826160671900455062002161201186389095685463199234255877589687306354157494844394707986607818504079829563756072899570348706711769945623121540678912303314766352940717185228522609071181705613990440344997452519915185319970588586396878483996230245885990415064044304542434340828815685991146650748256329686893873949756637817443501471828487257073355749747721480867581549515621436711705659459663986610443711558659325522849999851201346847203666239049863661588256181390586078909309717310821240245748255013515717255451218690660096970858395158896723067565335985631032326982057885671781254959138004787548883267606788061293209369213238366440174250685596930674742384506714999498956905447387574031334237094566145777001624540690244369183876498607386560636323897101149015264573410105530474274961715683101228782613414816544860989719742522060424931910791233806740218777643607540079588630786429899966226574330972199520408012820804480610170296394229584033241083496998251292506140510938421578167423413988685016287341060013565905823077117153279306413532974751158601439854245792994756856700186414706346238502453776911507705288143072254753533910269598279546271228178351658700105408630722888068540850842953664833403417269357744596990999544478264515034329586807784967663960067889330723380246265947251524754624788897519599068866243618510143900989261373633302913600146775646644896526343759241616173696375950820059508795563266902684689658985693377524307892680469841519257633155818980909264478901403039621120312154833260977968033354407894115423682332307072153591464578022881884882618141280826943734836463145093097051046529077916109040982005189520483129842425052648156896314125505952459200046410583063528466422684846621780142404915135385661111345714037758522896757020143312635044492037356382651326267161006018276966568808305873479426339057447466374933161786546262122807840392927151991968500755252783651322802943068411251705429167887524035957140472972363947379778507873107532591850737870754129695140711775736997545622742052579495517721080424879735664690738691844576139164557601164879585521921286053024368159026524204401722859940000169639123582035166630407219693509514087207544581436715374898210359582092930018437053068966239172279281520909448880764221921385177696955622513744312330413334217076199741929969498088471557709881702262561917518606895478318405187312132512430511059782170508813511010336970311222280719156844912915722222331646844104663257229670688597086189544002398619055924076138824571674707924544828414859774197903351640883242511063612461514988459273513271806810667216868346470380814022766207583802335938421038466259214944022798684524990893171525638866828894019846721046713098404970185826736492859978946310297545581014811943549521790179595709214921201056544382264953013694516261719157147909306795449428791263268945829134766466005550169123058382732542190216392142463051533538271063144715138775097753287025354558557340352901220571864220848515271113821575207339184761403054128036114770498380269334187558652637430791180140881787441017062304132641144102690471152937748713970706213394778183541265576639907114534770439768021680112518464057946549059518224189615823737138301018840165621126761946419807573853306249684347193318451018640944636747040941422211733404656018797639640480010796914129833053516171792824374565477474458629440982203041217053804755104507886261892240027011264822482557643465286155715977567390623490281733805327381169080206244594216359311471519268793202794822687243565089998762656461405913794868600459335279437181273074600275205401176909919968812891438113750163535755245888543460934123313543345129229181883751224254870867745473623733560399106268503842935621853499360846948400744049064192599593502751860164099109852325508874514972568426309258657353303115763350179185108888393221851404987529463086651616094213232880733213853222419530425839276915165713239066321656677449083512168957354005796417162730308532369331073287134792196432658191260842570661513327918221946369664123492436627282571715337023518684931646312708326343019731520530365750456819978914402380602807202945794049520088159052652108241246804534503909745937110726394323475372541964380471602037764785888385524558531469563942539255652938674470875511967582541669062967317859226101174092111589320686276026399234589129751674490425211016314249941911523983498509199131317280698446535819714822643851193926720858456120760561935823294094429267764170617828730152657129797376209103518221990601964700737163235456209545899286712145493170534934693493323657258470477086813992288466725027483244191989318738266611716420345074981836720894784924194258427240014139912400356194572926202872443972909879234475356165503058253239465574654236039227175504348743315335940178252982676707026882643526733115126020018495607934207319210978699598258799219490345309886318514878101557733858007566034670568196368836874707526295477717327379890886313036176310607523306093256863209285103254293326034429417174162656325349314466533266361561708707184024478435854715895477761581353547563198859217312724906061477246380271972216539225465079285444435576702407449972148360625234189530456432171846787334501877649793572186409961507528771033584740718933579273706967203076549459047894837240505895948734466291149228236977878147955736708948016321314868440100903550098639987593896585617866142407852094564608257941524239754237139323218443142104517219521350262801005554206678430307333111194557044023496924982269519627311494059893879239184118890392268284556780575543603639868519653926042864526711084338196783221496339408290647358096526928844810688668390009453764109714068396765990457238690950577305079436543008986926794933882601713416268197333080866844991932895772036210147822748282789805301996123228444508900245232350420837923304824986389166692141908733985001370566443262910877732559795788973838320184922510211458061384476484670015210872887121871232067890177266799699540207437722227307053850721479880680182356961744229991667961926713045814560469766937037206709416468047788671063191563178617348044665361191101701275953069654013319979371368932855036040049531864710902386238015384708854530023380920653450341640033011232451819506054027788721152662437219905536415828469614654133128086345101472880176089457920186262054742769878837962754650520378124793430368161547526040467930073216307741235889621042114340240049891010065510769273464734660133736205779136443114147640803728980339819018190769866454794454009456626250813788630641099721662428701564003651654036884024826571150924283601926023634350486780173949404433666462637996979052051447642558782092931729126728008793706453971944135004262802347508835264840430914255404203927564559833671684476828751007562141071417993951589224212836028953672131863115116149479614337587325769942643309505380559712030704444816955349922329565131373891134101220991149979207999219752522253035280839315964895929160343812294567846619501823548866221577657611290739935560759128027386179251157829381981111336633311126147870138905450820495948904310739242152101307217907721984498254172033993579399224325444039488905043183656242022713240025816185180257742222452398649604510248994862388372318498847655278572928561164624669727171255629665542042791699026535233582552656563891456789535187402007909475377840121295260562629479804452741222997403252540947379833021722761609321824008648102642171674856466261029378362645448259865356146516832612577537205599496310722421729649308421408402219630469210306094702659451487219298225599698681300628664368938514032136728625747007981336258595854978737477560210240233929738111147503733021549728194841303655868589906093828367916221856563739178563288977438584294683807788641948822089789350136968852496094391429201908893167777485195195436607529830256339766338891807515407285323052590953022317549128811288443303639897398744667441082304425900850206092518759731891593335312131676174599367017528912959875119651756350302278606672183500773342847564233343572799406569167520536518044540517173715228746407593093500747023044637580456407767470653514556049592218687500480879383445820393598628261159957673723150937028602556794133651131300711512592837195683460453909178823436289719946604649174471549369762709617590441618214033626871349564871783778305675245334344881961260821021407118135390772814186525722773012657878343154962144203019824978440710385941560362455125217683728969340455312777817639108552325194500362220022164852786269256076084961796197873644982528076021132408242524279181725626439351370458698969550421571705808588759087212775550308584658560086043069540516401465976699335485653788687234916223743896817028803172577005761960272744557827945929984604783697584467501739770485925043747941596084844956233432125721022879802928559604765224065548584817103775408801898788873241255346836784930855828726919887390203092958625903925350028998037027761295293936586339153168529583107716551709544176660898760205421048761640662757542880504479984761104481973651794368838296530764215400870901793453847420392954449172394328056437459022783279271769578782496109900217613712107535107612435303113112609707781543063575482675456315799149210127556189519507373425206282822502916766774963754212705954777089717493574001639988924084106783088771708107626604265293863433825420630145422799028509048107220047622981702235793126099938396912416513331067355358123475114153204599565614710086056588747221581749965039528618674564921106859111459244412370531394797357170892885195849646502832440010771961945093562580082160917849324671063831880269388219290113863775778916675744804808129095555741440016188521846709378602479929804288189668656339116943847508895652278069957640261867054349054886066380923236393907546874559928737942005808246988863315880905988028627095742840408468470268013977656855183521813246777163480630782523842971498113456015695552398257509765779431682373142679638229620347079740453440926156476862171800918613031301377354610396931228350817756532298499725330922814582602117701122291400890871789735595778167597282301569462266711886860004226946170337204649944265956054691440037517551356512298946393438599797414280433849720901575804221504456609963353631629724683724810941112830250089874416158684960573055242693178877580763642947630398604902345765382505435774990704380578381507360486928787220407282728887198445594867689604944329638497035328179681049070070144581145460985017716399121069342555400960839347617752449516407945152935854825154355997873055852348035305417899468192232829766833762050507620727204268275136079682082490198377936867434279506025270239309340113000707030485133992796966956507503688332609430189540196916244655707246940223841947394755954393238233439954359931683302135214518497085205523412008812020583548076716337488651036133193394012216890964353834038981808212635498101868565173633284334432276067692799452362917199757145477617976971351280915211649415333106874084436890913859771305415537432005282746620287416982740314294356933501488203205753133452813448182165230849728770253736235338987379189382187410860324225593359583239188321591669977563071319361443428946429801426562398880557387176241792877833101445443267103609698009426456098136599362052271424098923959343180677383311736643811157064975619809222091844543047653494085014026816269518966343358064665319549121087728236327813467324244803895385733799887568405519477857464099446584097607053654113080024954238049969788511879448084134489879334304204081450099398992046792182243974436519364574252433264857396651132092827043674242498552875960312908919391979489273502977860527120435247009114089577072186112051482697505668961947813916631140861395378088059191037258842858606890067997606656501863007901118213945423350705568115339618752427213192693815850930765453218485570947498616425248820632858012854602449475994071152631946161749215521665236658974599368892792133536168672682665430823425052705952484838022607510727343529512487462508630912373570768634605673816110442687900745105425524927132219396317298440052160179186685672819756954682095366878142261988911853057948729696611497982971687976805156320633271475884696411670984350022560779447244501882845501053315013146095505319886462201699739070736879161004222266494325890993652688706470395802172448042928357685257019559450877091302970337272945658839863055679160790444933961768648239643905688794922496618699265020482592343836596108883317985102809867001978120038879352319547431857835209328033858979053498280289289737713509391885225734861840800693408891936650258836466495793191406510252202332225115769714557144722555086652774186121476124319923127306233876044200338204962046521993007746018532497595084910926649506137548359038288834878654065076369081415260159895482369409142815001104489282376167651368349639616959718409841956398650971469395919586539888978375224615628788132667521834940665553489206633889264094184269561122170971615097678158643824008318632426059918232606338979970258063983368304143464351837139996706586471534917141356080697022400587386672192170713824143092409696589471290307969931703372192800782862056572096654812031734289122995095939457789878541154475000202295347520667300932224284305157921454641712296755896644593458890201747969301050295246952324598279219112345170669425632384709023647835443134475752577311142488140300751059553794262442372488515592275461359967051930200185808894793860907458555382825867169070773168010976080593957131891486721738070638460969953659475353655700310281512379779765709823352402808202968644553144656668856979877727882018760874595866152699921347815222657442887305787503327145696346610157171681906685165759286650480396305692124486441048300342447479988807965719427746303835260945902303394430025268833002818498829508375595384020769909727896852803099171281962505571092486604105304658738384230700907475149530620271289001233871229227314831979333745332730865214344699842694325842589629814567281305928116601270034196470917160029652358510102941223938581980142996268577734276395572752141830611750622864142710703247749493842227740478111211291770278777490892416022512444208773284978419044513966886795636698711139063739441490893023927942477453084591020747770417435875444119869525893077857634033109240826621357157541690274844738487852680004698773049584489034769059737345364660867931254186782698770256686653220425693679342620721259200361941618641289723305541770730818942161465861297851107059626597652927083088782822315606296299437385909134039877682038812123573749509591226993503642516316074963774461514066106800249880698462069613689484666138247386534424306965894099895996113405019855650781219620497706492145069765253119071034621336367404996234455166671486300209565769690658735287423777237425143558558590365853688233821534256350123127187778752594869843690185839908275930820506538282674668631542193309067826828861293786996898718501196416143221100436749855001864735752740766435239283704003684981491018488889157639541294011553466444199710286046806651413048399308753017203463410476695300186458921733535141879344310651469285201984262409948310938848187936291146712030592874437770392140207193200450515563828581033925736984457413686327839644039585159779900956302002795648439468001623305298080844610231052858518933597678327476580166120347306944997419643380276395724537767302200220420598371150615429951300357921073500007776339055479283175548195945479185390868186469133358946445816633720998320507184012281526560687319716152469099926697093984249944507527885678686005409552042162448869887950023329988733508197644872441012061294383411428560975280357777912242351248831736014273429152988575245147136387592564172790479886561335248616269272502797080507250355922638947902195039879278946747295868681306407122033957997350837145204304885719425310254485313219244328407322447691499914599151662439013220507110000388473186370308490307334728103579855724158436531967014483023209589527327285267207014796470836596145791429907383207647438097512169233139504324580133154163781707977064758198179703704350879474404075788579654337244585642172607456402863128463082848919305585127831788940795741792986570727967042211659744786256780239831755358252217230742133662505026105075097612357321128071507994290809961513305695915931683522573826789318033395050906664939054376219672853276240345396310416792765919722667712838842790743704847379614056750723290391371027601657273032771022162167980559536283538857829490549119504393543311745808582636966739648005958811469333425421853000038957536532596386024458601247122157238528899947461885028923863387393020645202555557571442846425407426455209827669809680052593277090709492523462819148964081203663901668552297622020049679331121473359136448311421441324126250524144169787618198555372063125728248443385681378061531512619162270217795144761205987193857237187169520582724509013185891831919844304803239720255974850542783239908637971672453194229317033621816390132221739839847509136531630423316303686537628826242179596860847660782426465943738017034973292721059688301685833345230923305636728176786021235017944294975456461088409601176097023426734456437229339604711516924482381290939473928803910939463695680019670536339105919149917919904574705892312568079162129934851416034920126351553644183062302875118279223225504681425535652320781768497184911727910267229153080803475188345774220582723548183689213149713414802439562089015576591989848034440366173510466126663303755954157827660225624276118727610715728697378527966129733889226591690270149642495681403939957676282672624423869786225570800451526625306844957016875024710580622164608447805476145962600895733993009678317616962646026567789042451952260964529254117668931382858129999829154438300249194760446143112427155338754420664884316288551480574789683153592117215279850957968003573226415687585193130782149974020186354126266821593108363418752423051454217650591153101665687221806247231859594314141363345882056541985025421312433623565646546869878722278833798665896902384067682617450955830202325917750597438945464117873490620510368519684753269120152958161806878855494332189188779966482733293120474478986549986518107875001307561005986822409808332851581794635790391122631226035494917446238689440595598446530829385783153096343465297970860306485207996912974665878256161407245041830641268372648855161039704429836110414546776601410359986897512563505677880766285103264763223737561194417295700820311134117122817080737530078558417952158635337677157636060892747760712589170466188926843405053527918875908229469426925106906236112620550761266832504575056555840349751505668453908974045482297912930462508878429996539954185162651396278842603747763265939918164258310056273289532645669451009731122729669252046886438445986648671948257167023877630036469503840143243708939953511413162326611870316166147508169812792699961040368008301930515190009014127334537657744130150293062955210856805906979407093958211142548198814152756951744547892363569535357634437219596288382265486073723293940100059098819729791616560306607456152363283779554773959900800253279318382460699291675362980726270501867354973580924558171411154654864846562901911752485909850639299789125367659455275743426824726241304676482231258631716155822162619367724432726476605860712632992000939103898611338598643101234384398114160379592721927635380273618572211099289912176333191727079193300052702610704104657170918974878124861184467091304417242435546055773034805825462278288820903327232155676783201730526496206199830933062596346133598748420842865723061895841595175398026962448729105147818230642238908100833166427224198281169544070966942500252593677768280425657725299575862177632646082221579811873435210788592141365489799221182417560076622202850464051731114416126226302897150175443441638290805617681801922339299167357954001787215852938716388469066944728736305304216522094624396741202212744019026959177217240219251292257360800813818964201894160513409739548096944077438299391755375771290474572135073434231429759624537175969714958227223779811926294110923437411880972747332157409199513589380424194633046859421469520839014113884078822156596060698032980359347181517386563223346615466369938877196642776510552730858832663967434834311084399267047439104602757593676468226807572618795252677219936719613071673350212234751388054855711556717380875322361002850516091390201859063135066830902610510446706307930137586819980407939139038449589935009477692638223249982951070473023059245356646475342263622062544626395636136343109254341598333417661407834070306057642908463375099204411674083339887127096173328796815321022915896797700763034521964564137849313355708457794440456262146705204507532009505749817189309047626359818287755137373046018213775111382851523543750860393905231300448278762201868543437686988749095817953163567794774242853295423849961748758440117868993465295483423151744470906672569186808817474748108523829673399726327331881703140944119021954939128729716594682661173383131278920284750589219428512469673435024976724549889579504450499972726816777099172932572966525336163447570871447693099961935398726525638461795940814611842993338683599630923934176344623220688496327479128972312092782827330403034812371242575058774175369706396093789000238292332077220124245154899987027178002478499913929615805261202850254484686190101181855474516422142374170753770415734002329860485382969343507224376739818027743375770879298619405738436265155647240880790977587595145862574189324328143431124226959352686971952016176171570980653071264513045520373521774584444972837903533940004828950327733442753699043394309790437374706133565907748537787612814017174938093934287232422939425817060666471614466216215397061259899057088079549798549632348288860557377395333700484166502455220231259025472059446294091796559328830805818173362345142746719699076750704024987982720584514908590947599549391394708657986486722257739290086724483052756960685046000999381726342142352093929213351911114994762310628537715536315819610174120216999846315649300085758175034223798182415708450195544380316818479349900134814937650084964851238300659312504398417919591584740313172775974373062512370579195203582909292183762773783581063458115335080242168820392220586394107630814062003875601360769465591830817439213694450877379734121433925788908973764699083815794503462939338652140696520082882225777505217490779032903875611216720731432697358769368384387655219641425107745709854184457972930643506090699539370733679378561699787204089595998940877531714304973277999471129244688690683016105187429831829375182727849389494492264827515485231439135731643021691063325634039780051494111033421117924247076358735821689789915686245600417536276111152900694858408507348570111039729006201606341545163500376649879821656496832056115971001093737667677178687260456925288230611357187424149810055920194542217863298257608548791328924793821557769532684376930866596169098158615949621651472153742048802900582692198604027715956080389749937796621606923203935562453049804815996689601150262263412576832091193462320290882784171389832358431191182337027468492961907221727954706904317305545935419266345644769826415285647232283035360317173454568613184798811387495700539110751245513216343523015377567677941848914556793656552088800106304422506470749971040169459366513646555122044040655798686973308673943516209318203445237511745431644038465558982132605819300141020603946883429206721355359270751584005153026670556789272951904920438167384575024672800501019728578574047731753352431045238636729218877965277539277760248056967586592941305436198294545441840243854115008518586004715425581726051836047507187088252148661612956199455291990589829215202997639715954784913721035576749149710875088664646918263666793703603768101630377676115232808922884684815995227652880363114654278210544936935859309816061965012803284077275036930294844837217552706161361594800916656950459820452164885759624559502449050183146371297237022181038082262736279697175336684406639222449687187287687194679831108434362324186089123403924161896569825815867220943868096543260964647737915987949853237487748279013702597134090468556149388653509112739921116961012975734691262224786304235576958037743841493708629114345123985126852313686865962157998679447743775767271633591837841934703445638041260887847427266849993027417046446356249582923934889336530849759476765022435308595878826199900901623453409338702493689961502189017965247452067280914532490204224202266115233498132251298302142604547134056580354956291503648008287990205594871849493560347393336534068750197582219595575487778531230728186592075914917952353124857611059405725446231099602722869577797609384695338238809151340213396287248446427196234802478906280405742841878224458847585036521263861950791824819958537522001366200830815702979008897852232170726954614880318527626232273741448044743688298263488437979993422778625303849817749698707117460518778586998365574695030684695902001285616920155353413827362828709648517333663263803801754977802780228447433738455202917372041138216608490983205038371913739943756609654699297138104321603286145813403153575073847274866691178099688146146170653309916928297380246925893305252586932349685180526268618320873859188458611377094139529412698983307390348500642455100662393779377030858282155076362910487185558291292623703286326596985425631593776258539821624718747124085906731834524797132781155950595292270910464651902158064575435242026146283140511653023367265722129638677940404919100592858419576604895274279995019460281845342933001884840367774862093239895479251713769645463529237912459406245830004117663075803332989505349544836795150971201247724834515664616396692206398141146930292352037250991278538431572060466568028976413359811217155712695113048107540902091591919228258725393681540092385966209300377172830404830060511046253846736722202187843428313480729221394169394809439800158654538660644228045857399454797001412523036114526687363903743665956435113108646167028956497152258665433264498801356377778129020014048766664485639152752375795789735116904427347695878502164836882156926492696157317071670977364620010549542891285939688106756613532605869647800562130926779847159452705798508057259940024005698430242798853373924649777096929050229577729983254755437106174844907801404067537853705934253121338657787020073442844330109576497861931977928583335520764771537159324717117604525498219478167241392389670609446572095021661261017283050299847240181008306025629116607417584725419386622479583904705563591118622456198400288173614924839540219710812085958316119876569651571138253933610970047690666170239314930533823984797503705334051869464929579499572912416514216581642169799805638623879723084661714693329281688124905715923662419130545708640927930984541173046940937253680687465865770539131577611042346146011629139124107375276064233512039105147331884026023016025043606375218059898054908130476202100444233995667199431058954023514241851857384964188812421953346500470307515183877623874462173986429196266632051726892722525271209719869594650648992397856030233382936959116798332461072333426066387059161407120435221849110378815013598889128915286911647446354112730195286874520138762933480355077535287984173830395674805006443517085520935920659290145362435608046217029007982025607100872864566241160422709273424235182556186525213938758540446683109974915497449106618676236179850382433378742083898823798911919647789476712106213819067119719562825593374057415288733083800627426180478143614277226534806699718731539859122071561710582115625225801897285893542208820611625074527700659656573680510133860055225670838954514115605661745785468658347569131922629873746958720571966024418283906695541328863140679185516249721388516953481729521621354797806029026529105527798210352041571666458299224750439617148667490680612649449129642614492425413381815207601654036812776392838938178099672175843058888920350458118613302722139464083738348851254948411924097684678438198802920332180224372272601298314918489885765386134251470013423699231880803503697589864586148094144755094143466512601055564954260035206749356223928841533072118472345414637284624592614989849821147337117772975060675841230616185151783384496388548417405987926544137412212286059684784257460568817044490987478907615382898692657127746198558176063888131524022796467587061345072195923049009927011567613157486410997181499583205527086557484535259165396288905919439268636081954035460095977724665297558348976768044512599571972385011026811948739849436681778991266746378757005196410032470800206816509857847581027135353394531918675577523943109978842660691922199271625112106040573121270815066130014370138387792363647311197998876970281769561209158870151791319269193857479300203151038361907033178250342720991935094161342948812125641438416915401148090460593620288537201741687173107659448105574100301632501328413758278340713453567977388402940496147390804655443381895646404173079976359467406867808550500579530062417637094655202475152932049209346475611963626353083832372900438883004565958237183437103800373326235102297128035102548730998968439720846266056630272840028574026634252108552767152265545765297901340282350889717977527767092626736490357970975801849314635678990460614989468316864301252733304305709805903056394741655994820750886446670445599341455304607362207925229672354259234598694841683186583026313109017285346081633955705120741197436846608486394149780773845344441154984804428556377717037602509951239521280735318428399885464780003867742637802924076732581088487670350369165999579106042377762489872156203172357397180434700559936337385703792259616854351742406153111871340042882683034076936679904596643869388445548978547289450460394762047732094892022233337806692236415757972730223887138808388917532463936507593695825085777429244735200241425564106130842677310393105324863252159172723598528047205976262041710661068676110569681665596774989447799453927619473671211257927727638588727571782994587645714490717848710449915312647388296419721858652681012691430197733002734761023110815216792243600624629463680470669428374000430444080741757972693706005570154292786193915156476998065132846737970420591020757473208533416023063420967257136959730937349072245628423546720574555591823252224635810070746266398957668630160388817653675555149831042890120884747080524245357668573016654394905824225894678516338027744059769929954726238752062443316920351627542150371847682649804651450535279113331645740167616539616857386374992055186115868244297121040373701350878506967044917619121508676311084793890068393907197593535773455913315879462899309535355004593138485065724136170580836827970084720286125790859161939804691368706679855780203851393381627878918196622711250851484671353212042372539829199907485270521118847765523401911839696116661210499686870599990780336763464187807345593379579489755042455543300713191498051511585193797882928217903641577722189873413808772554619387533781970999419286056654596839785325945996196121297588373386940425015140908793725138154532923330050976091676379561609891146876179874760537806313422934340517450884771261947578446238303527140011761162902572957230976983650845557653114734914083017000651277400716838352531974733611135907513163243843724767031876572859862188005671276403016735783796620716775513584665878154245547473193893621445642148986345843832909847768843627701450932125082211652681434133550923893140579898416547473753425852716443422880232787837744062041816039052569110443463271508442525718828068145325349656803960908852571211524583739716473956907667065651536144663446545827329028111268644694629236807018504937555489907707648618733650570965328630911999373462465746943535111206373327681198695408930975821902180293952498851047451253446378464923881301586635187614901901281315677581252627765338054333602539332148098599238580643463141521026027459263644778588271473257275970579552890211170796023513491404335015942020316855602344205251815648709948015526775118210503440463747953947257750371874880588541681346472263150181150873123708872070674715122079746812175904247806071159935236995114174640237917543745198827595260020078633182978097054362102156832554612742270519750905787020770438392750948346837018601000961303841457523464512585469860986922859873941959845178821822954873463049603943482771366673554113004760504810973721397457169783356097214669838003791764148136990911007216585847230323307934139120570053895367259693077538369912653040100263493772837348722852197187244464953943248432915829825115038126738525623890855424247408509841740301043797162583413857744164545280481021233199890229765469766765545200221726119475315271855513763710375732129117732261677515199482990506086963277077500975919540616337838105357723038405214236951129684701374742897837186962974000553279651813221702873437089100800402203424701688662258426763368673999528048414123782196187122742590020754983764842159460074348756073090866823293244550012362282551202995648860617954640680017406756915723529988022169920741564263810920893640649672171898096232255753006837479123731009467454029938590040543390698882555322867918748433596159497330124042678236822500394343365966768382804384147028228587395663359240633825719880194944515896987657521388985584951302892081676912216885675603903141404269581002240075260453244681135597383955319711076613519997125301586980087815150089270862192596013114906621647907776830455053341639324674963714444955354187687792026117637137007985402173495162114476285839533287048703712862246400923117808468668226597002072451316532432038960446881811330664936479034468458175188644675732617341203022259202444732629301498985042106934475155390438160971610917450124093072397402214817096933279168594652658208641475521826965638991418251398496096894043863279286360820822724544143240042679879586489923709487496993374379753217527724265704208033042807113384121705956811575796832822690032055299054248519817686436609074333106519008833980269370007688832392600193429062802582379242439372025772352076417899992977944939710143600765010747340177928261112208767592561384938465267556228360317671510116036806130539227866745526027320359486527745193261009992883217917707740871949048206325626998471748657706518250277547523075552152115007122029364697904959024209611679494772315455793425695634109396389066133791369081832560223600323424936411037666352540810708203820396847738297347276499718842238409151160302268043573390422006777544824912592814030102883140736184897370516031332452019542958456303007998591516547462275380761370805919954879697123397776233495432214316973494775848969880909647396597916679396069471728298685567786857155440552705497443351968533267085640142046861727926997805632764565211387455218106821375932333508977529753540089368121370485648321803155315673809278632053547625184199113724666787679369621370781480126580127615387084955249502783589144825153440766788510246541452668665380033917830583278079571408218952423624180378036775352236194874793397227670279108089626974197003538877685491111318040769827922110026741295697628362027561034520917335167490772097937686013559332301277612533086340424548155641938628526136940991718093398994229023159153618575160409233032191717762969973909022665673125752170679698966168600104383938801153572204687847275468820392371661078720189191984474786878064109934504934975914750353000705133817925575765482381958014973617115786696656203788159660177203174265034670103954512041738017640898689253582656240636995824665451595537334963178343299991800510508293993077665338629451267405104481718729737015783998074144297285351078042772433053986140135001891204559127755748295405422762061439036487882311417256255029056684924176365853080819598379924625194591250199470607263665187897892121807598358852210436856494188161068484116574825498166649151712264008795054165579107163862544932945194318166572750632608612073016247492628150670386866556020019502951195288814563033345068027109118321330481586340691498891483584875423598033080194530394936894582457449342603003099835048695687369887011067297860359308135372495346824910763287552501510535815023765067623986171130777645747445879735081706340711218540370221256323159273914615721915350236874177267236533861419068804220396413134329756991243088221431032004028128050344391284081171464255837615280347382575242232665085100699212602628887674901281376244980869150278511457093928404053955456816092925266640443238455546317072820511065108362694936735348790770713648468064639092607315427253391298925500130496118666926632988514372238957722202605502498583992513953838499211808212672816231053111881787721653704845747512805910695976474318393039995256481436345300471883110579598553467060730105105931730145764950125259412455690884792788066679102206023929292733076982154136552911739526748341728677729705985268459663232446846460225445861058008782701302475708213471670959034511571699076802415729874357104404601408770749907170210599846880454504227468199824941380915989418412341055858202856638807203263721521891150662237166611354561900126094929331984263609434715839255101057981720264259523804374025802282407407710584582075421198001641111667445646127605095788417791846961112173430010032187434856786994696517673663077936894598533029962749337469238918852909004808680471993866538642657491991749426947511538615031715936126866296965604865456997109494861478506251561050510282275718835075852125561091024127820373293092741393379013944134242714503666691722751959839728004857997702732288938019213453408630624501812151046976983378208265227338683221919448712772203599485076140040988117194440274041459679439741510088630566975947502264369133654261882857611292271455482614597866655953336093287138356110499506792664469451168206814031244646209773731090622272027372917394643381820774964619874643909782376478373212253036871649954279785415886523848978622851925061796150418875317934682715001848051535198197038166395055130303271509363817657414810612255748501607049569766070437704110901971918702577878550866255361938472625590659654717608418680330950334310090848159253904082840454515958932519548232325031751932813663939879071994142896561605732553147725062232386408482155433593312708794704182151140847066319304904234155323559405065213733288600654399179043346727718951991409982202201603324386265282368857534861031327464016204220672764756734761038621264157461429444644670309980708331978419000809688666856003409074882683026656319328271954108631888655187936777989128953095755143736244535554126317261846776346246829851625027061552715535750604833351015659082837516985561163998227668474217161981183151686025442806229540556015406702810312102543840264216778187667279579649682222698813587258748000017945122645609062650556408392319753557702063252937760538588554232799467370146168004729058731914315915130038549177643806101022665505772393535510797431918388805871012884212557067345378917673120390414291518744823788395518181065243213312389416785071215880485975119239404389443715169483032074755496582227729754886905564188899951673849726612201017844665982156771928201076261083234420468050363078678506969948306587919318696647269041915701929592145628573617240841348657765167340926569143387813446363229851582343001873216993462697446549196598539279830321313950337376043144626703351324600918548584151833200974483532146354501655090908733684941986887634844653791192348676854176832022731833623143047468979161986184803184520399910952899009035428268095053178521131546058424207969178553915861596074687438933535102140310503206397512592550284542187575298753183446353214894049838859934518344460271940770955764278896206102213359714760228127452701362178290843312292206635586883232897150823452399470206006121112201503299638356353251764813931483718646818107271172720940551563164736716917750593297610924492136078545400379171500962394588061302660353583928592093146306099552543021051339963753931768039478316429364781621150844521914976066896472486563962456933307938602917778516598604715765741963004483665240249341177604026104429350471602262328866033023492221359280815153906974858380572007174567696519833973065119560844553901261822797625602402640018420860289661491086128720923689268878337748448696982810883484102060538225235964809352015237517785958470568019724429923860534340808049980085719204925262051243448207149524540412418773522709953108619953196926033466851849191218320477740716401325800487573693643955629320939979594198402183304937492008556985945126765387182662266998143733581612518087158992953464567645277528150796575231974009282354001718089713062493133129318461548702735418800934614051492277211421041388661977977599181211172339403321042018785536293986583234222159621955930137927601902276920489599402767983781512673359786543571580713808801760023790789969176976790927144071552586159222986027996688878925780299990397314225241036783408580614444237961252758603749777338494420583588273839157261462998797995216410061212929010466203939749621545357899493363859824965820422759766279907654517522990680687825573613046491076084384834071239605833629796500183903692266441940142063932673875765742052204711552586894916870069874111811946705620027833525076076050548774451318933765237291227124766623018985118746293740406257267195149495427314934248865983951249766771128461888778463689770254855325976479019546082447314523208723447624084399461924592117915258861643469744115725196047945445201122986833401564521663975721807776796246503014216096645488707065408510516618785638347267247885276386663763991262127956436188963215997863471689571827923548190478907303554582986593981551736873158310515808455790709277213503877147879462744648373327723875657028207468716699231164509587451806838981668591450015563409583236043981847672914101284324239980628846974496185210861344270038211935996409340268470857680317654627809755144766896932443326432433219680942267919823041595297755097205379186001452005772677197274051925529752346141889167982683378323165892495526358647928947604254562569532809858112899537298583527605381582960150621400492491128530792002000720962749605908445639147921453020542093403884128456830383881334227037333251186997118899426243489717270451054789398337534014949216959979474978717545539529214553395726449756231864729487224171433064568382467805408043905519862432051450996513980266798457728537855285269687732567872007600681596050899456865315766813745583742066475883700066906673601049190429456582867711372783322176021047248844166551631424642323938952393336445728469443665369712185481347904145208466799052000102778437976730412103165338090257051132833871904332571275887406317435249631028190402588897605317316437862237606157697760638901715773754492334353061387333304907118868648144974395048421706676334401989442786780890431970365124725892262387044388377451677149499485479559286850854029674907117178289903753584550301827824553138986881023205897661091584074270051829505896523343540086439904769222310069314230905025391013231375680483425868692639059481591594602845189450954069163191097149967908317772775189805183323406744970467004078748789325640883129256952884029897049182374564600702488429686383798409823821977894217464951770859595656635272756768610215708548785658437996430056158344979756722783911843678008981191808585449409536274431913026268886272293339062756080745398581846027336955834271330671807355407814091799225591271289657659827982160090445069308621748083396491698852456825420486110173595671597180000680259340127623424441039507147965386356953396582363098767960174606015847254910452457296343797986609628493801832573562467980142068054844431539516188546224581726744522834479434448201639216765121951840278012496111272848831620695711225521942090333130914423871235752503306112755742257922017566563494273858564891252641366071431845864737315503684237929315712151355111370851782333568028248692257617146115551223651358892601364726036002567706718784077302649972236464544023667893744332458467724384624459666927808892382097976721905109966878478759138228729375047349158424060047321053775586500272027627636823523132647741474163839416445265930350020553735740215434642634458723530854204706040016604983693463688456182049006008144412144636384281749159596848171037149865313556110249985237014082983172797733523391502017546531632009607584864792686454602855800514883025793300440027640645936073943555676134289327978198436647973833589143957497832323360572974282028291738268450214012874946852393282995546246740634132094256818186723280945595086902118378867073030812826385737954689893605833604187440953715773992496408835109172443700185085807882714841988118277643618519575945270219941512202976800176733380069517691544406708932066981722543349909486293553981339932764061390717309214281894693903522580533214260994567787411785275240434909943127280290900792425741070554998868080318839183963658279373329125093797015577685745631146257973622364287760533363998128892069489405671115912475389229031940593783117266881327081837769133130116035922192628343200645796998281264804987634124940685503685896647551305363828989334036571598853461977780285546962670775227286048384687681147581940325438218410364675674825662127254073392915337841796053589461793357620119244660308765163964451510878833001664487522972300136859602215584910968098510792420995940990415805413235308007847118253080322426564798693898810258380420938898807666124223545445911775272207428828942412790630297955507944057205713537056965105810976052597228267818794530652850022173998158999441800469667456056498029529103118033078001427981025855252489400587281641331131902016352874717533798883055710987912833076052300078845062950278843136991209253413555100367872957672853009637034601483559301839940278046954449791185706029641351884698206082089287038659513744747060445882756262775585011970208224758953297055918872391570360592085484650122570666814307177523823089387053931484010102149136760263321372355730364043513650023518827187832545491809410485186719995400692215452907165252949841042281449707801467011842253978455641599515779939431466070224344471323096329099038123492195991226597930902504356713543783958279372593342616115449963517299676594919049518921178572538817513661255067036551389958456969959352723743878502140181745708515398458649609799560800125090621574108061061988155742568052898881982740555187616103914123394367011248890694407056650544076337094957577856324284542658694032355488021222264776205440134599186910236814287133478908717937905340253680697818858088698663977137920906151736241534581859603710847944164483767071962767935793655329541778274318869129848796948437217824078254150463271374385171899912777028107247407639271015654332831723908484364941761837170831461067554790635570627257870608483537666459972914164138915381373716953839076905467767545557066435237232530392391669736664023358381208800567027787101836812599297925855349601118810581151814560535674996678403071376076627100579466326459443752584359988344119134023810664837641552803595923134608612066910315423366246148982130057943481211339034842147063878112701727041417535709875492494671795262189662490513071377182220890553116228645739002200036634403254500216469730314369772291484918487288516734582837200116983551310815599658637257469833868589331775690160115059911275710540176825779931877076848395077575971114729904629300254156202423394769469896053919286724399075438099372105642441222643292157957664500678636895804036933060451498122016867149738086673510188565718021409182532064615165939512215062125880483030433722813819461591724133797621690399032721488204659984493971238042435596327601914015040484345556236702858441529720287407536501569513369962125293025238370133477583186627355860327447556365610835620401238471417345109223505791420195377753834337258984480093445300749307377437282310987992894863178690035175654204931808481659156412851539944155494644146475203875051802772115920315689632525432728241421043172785135097116291681002761642656304621177595475339854037358562797780217500273821426079841440959465830903756547695091118017780122093477373103336855640428723049863410783814075481200219043637520009506293520429985399592513293933446855333869045154805595098725854751011767998288654574782563396313681122661008513930497272524413480053117504844960570824501667172680423436750031865792577199366082844218650151388940678091118813826083591117594128037003533825516370884613236004398916427005547307063457347334974925446257962723482337738150964174586765493031041024169173545741830949852060823812352389357519047434035292483106273194133372256150130161080176058707004297743957517763285318849571140438289723667455498640310378057031620613927126790124553347721360248638382292035478205661524492796230082063632937724279975535071888514944786291030704483197751956808963301833971006993125687487836604943550187312332672702575507555397993361131331302204442808518876001828674966130737793287945701704355643362794505952539820300136164931038663068710640460749952008278348518373612138177588081833391993393875011661935651216054450403375996538832421696868689078345074268501971662498115368193957656024952614514760168779430956990278396372573510250344842566043132798136696302148248584272857917618922360573182644122462436147759707578526826780954825562564091145608728419435535834554866602185010793396651217998992919483779219739782986004549839107159278263159141989428245165644609345243065844033370914746014186531875241238011719438538598223999902955932224062667761417298636598821278483533435581691098463556442429227332703026009787022578296284329908314951872794984076928622370223178951829769926970877076549217717471019957043458435436821316010838033384515109725776469360986639136542236692805392566678757796836766331761498803657696341990964478935020549456580566994367787378934637636782348469605629531386837468531072337392222842559589607965524704019583129346451461665503866888833703937229639606780215600520306523816883028048987679170505463574483911291120321871297222975368454624964083066026513012883152106448398566878733860762208735441034570279225575846454678562366584122140726808296777940941184699961092640289084186776178307327877272554801410884652033732214571994715381711927021247879533318349685866161799100285772677614936678811689777664575142301120171353080454644810409588446827002950382443349448378816422022170280820620198126651807932702647373718065029713496083079758955927675532430426908086831581471947781169917072801379317427813552637175434088507385403463752576089643055065221371073269148059163113701420165030969307056018868559647344503268588400160907519549154048776416360478718909121872534433391818929493121686261626579418497643928300251562317073925264192944382248391566062202900003009817361162917165400700066612623227959909734705920441810646645146015061393602933169231607330415017782101710986952191533187628826861901776210304463985100375675091575045721211872069401284082508308753460597210806049522188814634884616453954914709265919665723337233571523625430306840353613008669503579523702874556016018168037255965172178658921776843431116011165307541038025421693004194926581542007429333675505775148986321102898574880816513755458036047017747474842091797054920825624728589727082842152146644814845116124079565497674681688655146979866235474414886461996209999176983193902962928799116030942257592918750986836470937560701531034159364501659689885208280905700031002649583314194009393429715801341622337308875466959680421768961778059622165669203746151693919623448734950372452228408336019582393209903896886273763262400579995050222470228510665903420961347200119629257530623578690696083144670371143721807453529794796510574857748609196987055435472219898731732519726893260772970475853018785961402154870681004462661283353848035072435556506832875731855659191925863373842510695020198695774879600069705054137305352753106578265108518993105237721900773146847676019253612908547227511485356342970897427857029086000594433151251920499764490682038351077915981364635449358847801770641454406288651474215494158478748283083378050919833660179376638747946788631857904692392930275510552337894125792521284650884162718931158094672538403546858507963368390656515133178016461409563714109931221997834564508692298056522092187396310731804223179247786947948731735122913832242238111285512041213974167259841740056995015041370153639672217335702556090903322600463781265241530676840831072256645507659903984845328081010229388291914754381007959870614253610990264292613883162770286987529684239224205600044798691544428816636435844598859960578234595392097817057289750089895054003103031050347924243252963814135279917570300311086036677023340225485568905327644699668026879753444727367804443586056289695761149500410295312861469019652669211366876384491948328140528103370915178850884555716751161442728035536086758617531094213367219162228335338503228049057456361273637476608849776832167413165764703895909507331884128553076452053356669041675534858309699404751988634750065015151543842742092085178877460997112390477480190255274635400903469135063656836309823589967488077848623384422386885810694192664780097504698523943769826150577996173231717107653009190869500217404365548392323460228226073248745514344106948625358862825621768153948710646506705860236751792391974978299427921674419045296211542822081861491882668595805865964518622583451613355069878118464455937650263326945408959258479120805253668781645448477980937693550434397993010838836980500630416724870686559076753054571464302681062884276227936404172698454759219286402448104661857285363867491189010718225795620688654615061274369051541896078760454606542191151638865209379041172854804016260678817600872711922172474662218076284399565324212610520752236613029198111371789817803118642771516911646800656118492544077338565920126825078859910611497735126291170363876380616518112652051851486356117667029441253838968337537897235967495378580777904506990636596053491523717075205176086930910034701307342168051795945480526869879325657501741320609326120889123591105113850516596031449539659057316493676601773724750829133505666447550487036997967082417864017632408428166910739390286250050878909074733353152461081290288358302488756161850192248837945243036249513321106483895489865913045793578092338962604179486583818347446539112149079741958201316406856934835517494977470279668438246436884056962941899654754001811779243906672072196757619173274203532055529106970359173085735300441711269554234162489053977092126196938664641748989678271451245401193562451187729555800025282018794981928438565871546674290579407317481334532115472658770104879194713736954968712753277973462097935487640083068249192590693043741643878664782683942477414794351927737050278954093101472371307800071772104195673527152680063970371906200093437368655976976318069419422342089486104400418586289785000864447726989404416620331313668920541368428792677115032415011213330219134441974336239418067878954145929953476327173855662931479113407683974761850051052702900992696906953917764978911085870585370646091892329075937283175227904115694854191546980636618680136744172201014246769077737209328702566020827367984569030927484118819760574363948631815438281511281533494959600644405146221031412541043677444178638071358498532661729362926883414465072288080892387881472124446000119351745223610675788570091246207899918664136531974722928881750316235476344931291689109063291166377378905336415782789705120523023775362993575594129731132718597611684777152104001149191240246150641445393161676885097251883864855629280322587983250753963407901531442235972335403419293149203751137737011912370600072713331885607183460344334422772355687051936715358644067964868049283635930977009723156456959993371547038402038656552157369813543201154227752643182782031893864513550068604244586905689943427071766290651436015364790741528629518039281205829915459665863016276022556343885787754076826135867261649404058157806295165408976027740006735045005292746810484470048969190151622296429766990994949656924239241823830487599355939963308946749683033005114238154307081945539046373560437245556999638006596777204394576614587995595228357148495490132087644436090875441086976848670634731477422013634512370435572678891408973592542682523725467106011541284812350147174154381837842320087338461223789833430227210499045044466817148841893383171196978172597425045553707891100816379516988720982933013770623153346459813785342450441995518945353723280206737653993197918992167109597855556706851506050485527661910674438698286673775287982916303306334753690618909775692777127187948644511135265384703591732335141170224038356045993309790219092738406232979928399516921226076381063343249525079517566480145641309404329450484728535013635234398469659534928194704234461778942288486505956996890873652316928276782328569984305738007150632442552016149521448725779960913609922384683920930750413774726075338036203601972104793650848441455528206848513672296451210923328358945763268349045592464766671868685845261302335246806715001190791163161410677470830885067151050155992711641309938961242446942020810407632009704400936392467957807438834027847064811982391527613656720597633278926446927416606818454988591775173769395382151963710274615842348560518543128440304847825721903800874467207223233848695871189423597181213091286863099018308666500215395547450698743574061058423216551919189080859918778637127881037884573464215971787963618022699039060645604972096780078001811933721393831041482857330383318343970880596926891582819900608030020161270680947088600779686616410002483421395067262172221221915987560409412390283449371474294054542700991599900631139491150740157039641594159255126042330304486026575105803118405657535179330560110152663782561605621230778457839442596051217663342010315890142384856982617974764345324583560737369047614592164965121239879774226419874369351137279540248266550800100455326594359751510393523574777648230112990386156978245520782242034847421428143340915560255835167205497140322328596597847726655753958991760845774314797014211180015054363066460179361402111597243499251075923211516310680646490734334247394279465737967492441621378133081576946082163273506167514075061630015006775192687341730837977201225218598630076578018372330428437704839414456520090805134072687492284748203235783283582463459371595958987784101071605531866606902256777955530187645152522785492173738381949602540396524308208240888754072046889852533478116166460565332834497285675977787322984249753006675717229725407649865695906519065250394145336708669814204023974276397523711807730234054364949867527735582037564912846847825789419343908771826761837083589877617788896342211640943924394179820103137242649384447119545169077711252005698229370933380095054476109011518686852460442765986381900019668704266837592205704571693123681292694152218800957549975159748893633855323127748160451672064952810646683105142247855748200781555872921653105951358633270112279819982947972591452670756748374075139623521539400716075550671895612970308857862512236784039355763998980477638342653261163326379953655222152326123137183227062939096706792797144186762374450967796781995083069571541444105513436799338549124312833791648945764569660491716770109098928954340776444095510968043831182253443173212159945203442956331789364800227582229865028975760982513430763012679460718496119477839168993953659983803643033939165635371065015615663397772153968910066756835476109062777579063937490027690534682127831818881431993085794031120635500765445139829828236617738918271910384454565557246512870117622266017557497517541934795622310453498661097169819836833891050814926897046496959258526140000809132724285607931505906720831743045768030448634578727377745859374155737835116531967864672847354311884994172968311345598230750884945067545623705737613296791752751217833969965147275433174654032116243774133053150720469317354955583340647289032732545185969182939377913140870286356115549124560576541497667786236553481886563275150253745322714721394553963758451898354234244321096446358864042061898190603238280885376883867638648557498554902227003843950681859090271857817914950481993465766606780475106356853828978780922418962698801987612911875136767781397328997089736728965801056761385564730909483524900102424700746358900111831174234675778375602175556024963258026316861252899177544409750678060530583594970299641287309397783104571671463604682910943444393044890624914716128112284625354853331997245366692351805889311612047595420683253985194239337385140547025461869521625060930920487722806838149726241682655079082890290033263443537400381952216683235478529600913510226513309956681993293224766521646020480329457364125585159531395454856156900609595651162867646120564858691271994013982866644910780158635350747323284435050230412600088081553906445940982961391620297924175993404077476665001794194833719662861245210460604313638349319941422475281665486377866062675948280626030198508967001127036849842259065175689390136868256355981352077712584469522458018488077028707475415206252843131451806977641108842001668864926493130062078484934054574919287775915330463316938782835386031004540159635819077524328949127657878466296984438117114604410051062413939510618618610819094192532047434695673144896404750835852848192924057702554475172468383671146401283097211753133246712192107814760436440307128880827829170500795359565174586121510914725839880482888379489227463936102696981872723432309047305687309762845154943378150591465030575786063485848281144902761080773667145280122934888255638608932227635751319909468687189157322817035818716956924222848471494706574518713953030043213733346516214286607997174830103405372251141841301316703629128498799789117960676913395451036934440400616531164406698537960333468448959731325160329117142748168879991628799254460437701022950249188574289622979912273837768173720905865257380495700491689488107198221462797922378432408715953977868341018404998040334173652486751917057515934978623401818776208094584143110207678022300620762975855493963996260762337780827435921105433646371457456931279154686619631716235993064063329634755113995152617539944843408303839905462211806708248195341339316852864028098127074285125448706815207897692559780123147606121486991239299738511878819725708501243356362339783527242823236655416757014951402682189519236868652261603552326541450737073931791106867461985691811750540577511877000350435301821450307614397442646115806270827909766947738672728744703654787029358797969063139491083713055784666119356596474551326817705215159312305972823347675923324572980250950068157010997317781469918042951368843229133237783435383036634754203333958827551972149387512142347111920841230990810749016841159009833919575204168976414275580414097290859669819177135166158948144584376391166239913905051223387357309931385606771059774101989416197030563573502842408837337667524458963031077382837509357777335450966624554830279239052115874432593421547353287205873189752052506722080432308410607102439234842891781434088552426223360890604430324721164120096694795668675331106501561578107989720581416131163999736514730812477113209020011323724767608720865660341226579392948136952807123611036012341869756806095177229557314892511965981149022897425760717622565200125472822893480826549260589724241042034611284434326255202789090762860474499719986587363894734769193858301099764101937746054095693677414850466432677085221360336024627482498357759910820152107398962276819780808450584181528460621569670528685485549088136482240328683190076518104686350714071527268567955404098120875957829767905353466117956979458507162559671141139283932978800317814055633447096776555108341078571411730260804653410496799382842552780262067013307301957678397378972529465883002271548044520399268234348352804085317404540882570746414916842691262172841714481265232930901897655442366137187056122802668723795207065342138454060147390535615501841071916308236956962043747678124995106421312436968289476725662720274497034787320149464308371993832348627614874389380115391798692344176859993423666962534594000526518606935506743777134470847771424472941133014649139216707222756388667733792908841880110157157457887664892816925853535642517318217490450032377020468030418857142979959982746462895122472639658909778316336255950029733330064271716638377874716810657885127513091613144941499041831377722314739946322869743832942235449401846730821997122357012192226886743948836345462893731627435557607775883292394916936455820029165070483574623417091855097357553014982136800043381781632230372869158693707786414652583632480978456434266956047055376016745485743356542130792812719910719292249302248682541250892702746012253788853418221679844258465209068076738806467458561783792540802738242794857649350156162664115139123470933606593217992090351796652998257364106791498482118251424638766698427713752618793417407646487978640040780258579825997074904482014827148137046547603710199341199794863329463955767414426961309162913048100410006651859452996849767553979772305445446670711282629066383107317581806469112726623785075826697878506697554655938547715370300775428119574117085936446577703283437209187654012884372509334226842427076902705195277244926027638667963196194225592378562212588525601124904841085059220710685439520934803887542163033165258352008048749452255526990503366718362817280166450808267801225769235521201145426972472153910085377198165040883038604464114152030712955296979516330690602885619449733087990953782065677290987592570982097883455949684079465146305368603367384656466355889428146007820590327368697448684567789812685155960694877451155919426888957596376006474129265803406840006856648551114210075257381397129194883665491078756494024024680708155812607057232993996652123987157784224700785829527778748593037100243648364655832150903582936203543123598217390003987942240539181310915077181739308514055982772279004151594691637667450979311186861018421086882137505745903557151287850621426354330102080458527232568168156722464298237506498074355015034230482836628806463427648268898136461324231455617233250164171109590074742235725150008798223652091695719989460198679448028440556138602869963556010659209934528475497569901871362309309229373299223155725103153336067104185627339595405458977984151920263581549123241355888419322032370495352140270837059724311305113432419208089522621866344205748270114186909770809078384477317837698551077770348835898521407994021760056734800815487400545997949838881002277114679928618104864140598658881133164727940321381386233952410191243700258269090904553594504910136609625790665744853899503621711832242693611149501101163762834384511969675098945168114783898157423996665836258085034500773848142853670015995118546256923407030838004153021873788381166850825659708687019769844783043298190952004250237388448164866638427288234000027747456879020471821398198017438154398317164477063543588328713293918127066128901660079989762348087782764362179217648301067045306579171058961679279861857378250864923705766613016336938574479741137228845872106935935946399322237327578413387775517975073173850939918876670050433865226267351664096927038084374630786115505668145750010757630738036275079366072307784295519877263199843582066240002249838524407352354237771869807972267418400744734292912748460668463382458612906117309246904290917948622664109859649398697853014894681787095856517084831579709259606499363335982310043668225564028909356064941849254899609071899926664749952064400528703842137537455147357009685242075693703781744647840962381212222764420857241338981782035685964688221903549454085153741895378441085976364296531086364658285568723223576792236078749921841042073669803467585836692958342375324079410400275042727044575542031223762190235671648105630772702647527795806068072681265655604782058235710259683858508920304256988349677990355069239318550503843415407397394313198532462576113845302997248920777654440894609646378763544358004822660656564827578225018463433736495142132067411834415787440245848654559638147987044620841264675839633569703786047146375349727135714036960030803272883119397083484439611089600145748542081637698923567152193537817531238418259306759414557583119435198298852485913896085148546967446402704742220868770753911355205200799574484487546934507313670835898218169562098110770371226661605664571598910159523398575908845719754625381891778860914396031255550139525166627675416535344724357047340031063362712956271972465486232546006782642054438167405700811596261127569050108296400692743108892451569560439175920580863218757607514978712444455252842788404140341682489922038245851035258060182839598512261539844064318360279811561070634986953719383201717571728440065526601026437251433618821067108749160759333134948146238009811643524575008748682432231851359241231254424147418243131750400718887935066435188473704813028495605657502648810575041193956898288552872842911614317808275847186442955059423380650188095865468852218962518201190863539503849769303892849199392350859540125953326187326334512355915393827662967534183485751815219830982726099540366860701482137911921009723188632834549558436217633859223003314987089372788855841415918124223135257529136405091023827380757776348764697428660580902421731259462734514510214176259907104980063233476228962717782891168594993386696209993819332952824198061775807745620896226811308114412431477476606315441340000817203937848295327639567238373256831003150902853952930624927260593645704372449337900667664426541267948077320240309454661436856908098784632998030276534418816151017579075430727894482418777489834444639968174359898112608146029190815143459020988885884481723996756355602055866929693717246710590747747421997478808957115130169752379379810087492830473962911467287237081480857980403223401165115170326019291818910725380254483866068651024579167458622826571112658445591444309312625281250972940627313893312687900701168161042212918850199853283593393740080450715208254633391930650780828943939913506252950405317420818485832009192913174108737287328919620458341013981099339251748625696036235663270756478410562198235086031171786937067395339514490794141996743757741691000197821929689709639703477220216809235786457593166130862117377973470634712897960850710216559139169327575698542365693102260634983656309745381604592413050368769534001453782360498370300953033197869608311458133123550839143105432481585270090373844876559535037944397377777643031911504770224518104029628186533479322999550902054071474623444239518829754077552906697220330075435401079495704466956645903903725909019146022968560338090572154611529813828343099626474970629535689454518298832690671302918026021873157151969130726881392042141062006115300291545983872149915913819517381327526403156144366530534509073524739195987907799270270660514186791102039919146931473624551642387055198061795005857339546355059344373083463819200755222914328807779805529175535940991601455760112640427300676535138354540053837806260598365382438733587982736187158215903350844940424369780474668258840404794278713270338687261750062367971603495530497956020623147142092742997765112758508523607591329054717343643935904051180323108936458116714122109128937644270834328376750641294244256308035867493625080825010600469714774879306638529627452129725823543905902115534060183577953175107290116598641744331731668413714763521852862502593340120374792560804255022534124212643708092983407576082527903316478193428044820375906445147856606621330899734685530737220760210079669241856353300554729150690468414497988420406202284337027795085450504854879401617050284092411765299235766361795237816741269588864642558231024554087482426353145613087571172577931151445446149458908768498420929443895117838539662693701905375306591618250057087485786219961343612400477178473111151768870596415676376040167163748035461278466153936567042755973776255719644008842568190954236899056440519699803378616714467886554603852633099584197610359264951063004275607854642848702328400335361331963125961367609536282256052126600526718081317891887405462543900297285237726298225456330973146025726198930273808041334600217841734826810128857982340267762520541752169328110635542148526508108474714045495032713212569831013562192220510192096346194529359585329347616065670402928725320149245892476808850366448433052829094394878965142110014189235492228819846701049859461345648391733516460677223755537798806512519552606828613203293121952335900410365741362699228362277396177401186670802940676592736608974582608237714487227754923330698071268301772476906190394170947861878701526712992821284990313825658233696952049225196041981701914329070038464582699941942150695326023524183051334085077136049437749780790981168156125718543635603490414980473541746267515080172393419186520029135646517657839102672466411845905744980404386692454060280062189792221557912278272513574486526755749267801213462823722141120415055117075704055178082831371465914579147041843533067404413431773182315683933150412586622819457286316372892050119911402592251495192314841645511364456541384819264844457561945233808954348453754938846919501036270171383085983257679159602676313280613429293677904976793094085076733837402791149574932172076542480131748047137992913616619039575871425836227272026252550707884066506016391974411732615398015335987653260800352125115454997815697087793900791794643397298809443313733917815078386849920160421296166507953028083477053738082714109086150116251818462180795168731351054510332310961521465540707432551765926859312997575703122350470069759425527617294719736938280767890025917896833402890004271567758380413255010871042371067513933315056310487385610835479215252516368530794063503667695347042849287160073285118454703882600922965210243712813066051022861473683755562318943719131230350790656534050017522261095216668709684733833528716525461912100548363567910641404662317916751650612233619673326535062245862754827229727612000468113561117612038807585048363340006572667837231856538777238913295118521373677752004291091489881685804157284379665315066534052857146670837537183915033551538974170943435636222518490465889694495360843991767939260224315640193949840476836060581068022166457157484809712228324701336392996881881117508786146030644397751714815127827784489408794265807463461570707197729490392811846841164562356866343607521438873475317229669842099314159016416241127607393262003696639388513038313361200647351376751368160734937872132666541283326409220898420958979496731667383254134342626432431704225666209583827253151093729353294489599172227211542472970851515568564294926730928635421450816608364043072072050546348252568238951047509397874247505150998821029061720442881183452497887040636596255310373478495815548219728348413853521843897622854294721669618928659398681383539758994891654813635608662683290729518929983361309510540618223262522374706187599922159696885094534602061814907618387022493309238254506960049160522549054654345275843105544085899488350543393192208027296606287533251757355445849551215389116574488328018292725520557727555601985872723866013237862364407140891980831242418607165178713680077542619133333529018547050241358426315580899733073242959573205523566913767634168401076613664298482727562234571396529965578963990435727633616861026176893738700126796546330822945800906464062232912631037968778933691756414358955620168535413639149566477424463308153674434906479496510567947476572072497468317549471366517131093319651520747278583975255336843313218575768453301607899197029509730426424079658302930560182773724239972282288645193832987083218282321439951031880213649156049695830784764937628456322769472201781171893804068666440565560022206259072902404149513493633461071762729904668733450560309529036972755917402034871697838406049880985892488969586980912400194227985186829317042630102204990745759889598574198586168871240793220100618908800563635884404780741182687535247677573889222868878542180267309668837045886145427642544479054858615690073491395610079572391312886202954661666727206975011898058967951391518110687536792701708296575668091614504133706735732728270968221851218933023411229238919308974157568906778666339597428406295402174315882724066814594885487648236072784824279314390262445447337382315273349781752254477462597333252239950193785093215262087595456820348251555570032153480442513075671568176049711785350847259041135639408590068860303055636588478649817076406643203084485022783205295883178616957404216434253906565197181163195672915864747059189487023004636341532171952429607072535668311138946894698578518616335792829502941629985974179752004814024865958899658747029926053423001805447704513548343657652251291038694330021549643857132628967968334326926947700861536632112602847776185543484782258882047353306758422440947494304937396683968023953542824797920156684346644102349456570636158291678465090432764829372629720018236337109269071358274461932581287901154809403896142141982810201000748274513596977482028972045169326580673030356033081000096185209157404228450383979074553655073336724044124523189633548976210087379776668840682708433890614265099368354411961170424358672095694868073288281029107631565280619091500401780540220229062800061593216758135132380483301693262868156176994271163014911925919507578086251554260911550096063686202195773408165681973516371623732805842890928844615955701759584221986496371587521939432439614122595288258909226780444902134836092047895357732492277663353196389534275132971675058210224306558551923242636395032690232345233363589881970380853925203105845750357180844184482899916891846728973719342230011367690954780885614479427876212967515052286145937585190727329145322567702243554256797688028955167870787292698705202997759882811144256123864693340697947336654716640370573884299523511630665161974234261125509004469707547866039745550199535034754742943245874742262477458594608672592590918611284805424545658678090029060088170727657784127569496874595545191508452805899081461071500272263928970497370918778644779632615902516117953811171847269097814465553876935643742606948582036549360798426399539569005517200952680511386825696588287376716100454182067720933982176460776656806837970334057686912268974871567858541286763282597750812602108493412684848420683059845227271229062094171764362062864077038345768385796707118784765283385552282300319908152342585006696600695876840329476759330499192586806939831738039843856439421231075476424381948699616963719557300495130514394103734441380379051558581357206870655001809536110041664139885770205695280960952783694500013000254907420329505917645591051684709270880169771190968542186007983872078892617797892318432250813870249043198505327844392699782687438825097028914677852846144782783843695816047765072888081012818026108659589488440280690165934745498633600612229349681505393690046594718821709584482181849942122437146839022342174079823658215617461733265677131788082033383238079839070341107420339699903413112406996221657363664306399779120729699219890576442626757117512173932626115283284037889247654333095595414603722205844026775549415353882828630260403361874848143676431235049442808359668036119847121506165621257920630304063136125661886209601660103353897457505949212056481684114823878333129183646593148040476651260206637398004380592186477076239565028253587835656137979520774202124249617586964175358543349854061154146156860865853653321738348860909721647687947309771587776267918484360299636051480297235543860265646250320623668280379581392666568573134983717821624491681172411265552004217867044071130107168019629772201925636698823257321777462941451898817484929968768469866852742561719973312911243151247793973841628493582694088837700265531080150700978703595177333434028609925708235558656661594490709361378546101016967442821179857601500670047148151551786840405355214029522053686033204133040197234982580559421246735797596807088808749904292821675188225381463193105885712437619788662330833649655316494434688449803447835965872189320552789036381657541407680316890272658159759926779455994621245822723124007043965133476415893172448302571347393212899974499824701962604214650021590278489347081998494218748747124052357420216681183769968700916961851198356956669037054374261106881228139398138200222571944154252871786527376454488080207300310429012188951933456919164330516413650716204200298863838365966421373048330108999734189196217900697206456183897952041773881947038806127824846461241264354902044549991897830753851324596586931118442152329215283707645081443301089907307113380459276256309947733029969866060156174785119572710444951437481509476112044216882277077789970676132572498677651320742011333404565999790245839197962205041951451159636728036233742598553305084199007955980243642215381785367813325833831994896250447801068125612201061694957401756001469063951384840670466389716442780863114148681018381421672214899319375320932532656896032312576907834121448560669887474017789826649146093543189397097988139890433874470415158578778537719445973619142855829328178694062816579527562028512163007886281582050767672836477109500714445358147291404761962646639447647718504016090191676527910743707870664539773680110788456035207614149194711889471788225897817004122755973874426652495645418266694078195757518716045355514408672451567741447703514316902883741846947179350646731601134402645813399720584114243944252886929716380269607499489658734123762544985443512465649207129515667023439941751425165625874585199895170195992537533983111170061653988000173985684927577906811246516928455453993309196204324694727847796766817963154045672470552401861756779892820219807602630518020689690848735931160245822651654776581843461273260034157140165866744256940508097231371957460071499371599182109972045372014024607030847973098360688064474654765901204040108124587563193814625081755717600686035038053813908963540196002995410808450111297176649671529117689761171145907114272066685678895867420036991950549021048335766294250491790444920402783807581718518370211360810911047549507832544948093232045361604197891812483307841956622494661368472857628526795689885997720504676291487774461792005347202218657008700264033687382352244474283360782877361803484095756635374090015639115609896761308716874691071462150858036807688567257022224814786895649378188441102577815925005349869561290830045250397930450306775855504980082100486630166086197450413032603517091475607303100380120058965855729228605190114669701088191259208828454563269432700556186854236613050597835206491727454628339035148448317207423353785154499805208079090385891422405020501274335336369096189537866966627795334197800353826017963017738324603554845654785127589143051909950055959283965233028970317028577555425769821137089192830076218835795085797752944315422213263940669346517098516803966052255170759491767267309627690346017674593047561799022275798826775826819885921145895592694497043257971247288002220372308873051839911421833966948774195751584271600028510631698044933443224478991858629561587071628514397946352586082388130666044413564248675752784101321924815365247533901359665135386702868472522900255042494491174399386046899163597076198570186715105582668606553460281761252258346099162490762843732907203148488246599019723895961675007668471396300018575320552935549821643548344551975724596256071029600735602515414593365169725429893301432094317568829810498032016124950644566641769706361303817257889561117936999819189356425639159786723138293681648878893156342449810373137939087781686349068340246493071111833346162662274223979822607693053289188338077841301075108861172595619465634299293764098452849327869809426053605650228539067634437841011104774741423087737181617113112576999747127361783585342184375908120204370060902008739798436620376258948696370297192453725315236678658320827870170231135654123243073225189001980954205259973376741278893181942853220333150103825177285640239472837628098815185763517661638325433845727310966799472739167642734709377354736104364430010097090108000215251920509724376085006175332611151226556059124332095248162392531180312087713762290922232005372676087945433270269722124933442631432781407217162669868626611880820723112656933760155346052744089302893973848384976158429227124078956157825673740774157311516816907178397099907394959790965731841016127432902560814660498918342126699711070656081091847023048187304847390149133198925971144081975585137827397804925849495476561948749558090704089640228576036902040321337394127977363275734421879383705556786549743848801947364694969108907107322937026402774931095572138108557467032829081221612059631243469447833604253473515434786938015046066807049478009926101385341749052725477765036086306326684657018028232671779932019684755301400647990133791059664502980956038576415600081905668307095688675223231358768186081018289150645766832322727169550477447000781394726533598559441040069896620336318920078155588054538493583302054303042573489724664288741779158899723827266685870956903392349740970646096078769093408252669722021267672640966241268277872964088609842382120750166631065493970768628491920853519814540342975042850475907413225195294795195353710657862458174697468410498826731804833160578763043285959043286727115009725960831267065043195325181044027839548992196883064811571299034350756774806992126179324650814665741089993172891603189530984325307596455904191946487908078948955521875832405277046897605837006852198681402924722966961895384376210739714620086360394861285658183406022741174977959164256120006726400472619698082373271544313203449957951218626256803885863720551689248262654480789655052758839844258381744070335160910397604683380600550288015761019160331421149476966941698437417854901627480458567933094859428560705760649846470174451222497942042412819895539595420508587659928470286979025737756986792660721311409487024075642344196936871253884530364843775348888122480716257896712051406211987579449111145475631148474272833672516381764276262977418600684837237665572920330889795250413376238512206111405717622367080284416699023934528692485742555897784098454861516919558082516014989974911665830582798590477836455506694427105309071184144903640419206566353499706123392474094283280729066380443303678689586073921527775666146452646185337417119350415520515984902523440114449831126504225325848584066779848933375199440412978829840782512636104887932379698401493510296185918987698252762713324346143851750931852349084782130597888335569072197147524897694458079269814064362484697167119960904830669030114820448897223395014661630027055701282897958994051432878969938757985620174642649034162517461827499327288067821849483598702255109939634801614127783386513123850379839589262322404466841230588012581017040267786499568068482190647778162014481789689866671079230363664212698939182693916168011148622262339945943941842896291293870080826428194566814176278284436165216631502264063859157802883983115792282536468656553088953323955500498674754496692250860765137771580006194478943175778251437099987869281281778939637369103960009990517457440674045878432758199692983333967330803488895128904209721809140224781348133297111909619870546075662748203281901294496095609714856802314742065517011839625187138392884798726459103272935870316943809429821710853634346280678271678791816519629927438957735584575953879660973887997686565199436974039045774023147044893723747095195121795359918441540722053538258027530208708233891521502690789918046310459188292505277345655144383143014416482439263511531414857170844244885067214020202049135100187679631418038790252417340977735090538783825122664971754525644521050738114136741089003594700946208751365120110181954991176410757301046433220518798463750979341039296556547400138901644431506041477243786850694771745458897961119662542616474056002876426845785250836814407514754902962437503252380576996486816964154673732390022316557478456000278899309607804168101071282603848423016372525057255303420438549118770906823163371024600959219832143514951242834666245995381584714672162231714612304256275244542230574144794900440864317454532250014659437536063645980167948188060051481288895541802647735598328805646775704111650863423388589196995866493409977120081678323151675148907703919592042885185323919699631089504475646288627705974407443037454955606414188043214688340290982616033958433847003445862041231891591359983848097077486874234946211531677730739663137057738397175800954477723938853516173512694513977370766704149549898333742627052490051129650937433800823024451236291547465170444089005641782357662013836689654196042998290815831497478958784631363898605654755072141967946210242572491802204340372957970660889917332878863212435505333811848605918628146678492353637728725867779724659803882926684865506800026163135056767439736288158062179360346863280851391725545519330527332906651674695025843676275146538262328551301085872964478728849782808583351107537516377618961395604457201457094797950164287641748070915656594031977069651837851778219943634087917709829053071471672029780686596174154187634399404059060740657727293995821134906549156948989999735471993762612212809044788754973780279857830555668627335593638637625853004424204562925516154120177135893805025354340748247511084253326999221332667096019396671549597785723940647273988251567653361904820294815752807825008890486534652424112261829515808219643353257323920178974769381803559578792400718293056562293355755716007030747742673639929047769870183909361295816335731533814261899038334911105423389679709515084982900247954669627965100351852490132993654139300274010837226198303934541174768266328423829185887257742537736777205861245878756252845845985984756571561071171799627569569705855624467124552504504811093746387968935194173762058548387429804826203715954826160670464232550960021095370903403296135296288610010723752393192605041601604117649985044059033573012076541657545623465015385633575144166878844884926745976115955234319291635446174298331140791458114170235650241827189408670073621879847110093288227665481356753865690838439842536985198280099985723451112042665298616485713585700328309606578383237182454253310908391485982516746057709371907442934659059472986712522522780872498207031069162831057671768458203843253893730151267176651243003768881973241572922777711498191133595342938340409324054244368816725362054810142657668905926105920386261701509398016206557310111546960485127091544760810228495825510897822082155806691205497737220977875934558807505163888001071330689219245916236826343376635599383978414978960006420565081012395005543579782826350924610454738902528654812496674924570737116538175807462075212381780919083958208718628553179600016430151233795688370757464138593947318196048568817127910163836251298609040714892455124931138665215088484780478095316318585790160213985575673166977980858544135439649119805002525767640439463073774566879264064941037388000432090482333038341647777180362624598122791375854276843356121786195460626505574097769351305453090926235096909891309135520264969390447301962542757927817448418670230743078348944066797954087181759306117842561773107188507736351274035771515209994991684487656899162714890782018260879579086125551026769369683533660799659931023724625636635918421150457680995799669989003337002249302978149959876682764968772441535975108478560916289800533078567319272079717240718682925561678014213611053783386490812221228121125672394752107446634619677684359582381466476129691206953091480514626557270866786884274740446591280303368182098664552775272981506690709915561114954818649087242500345935415494435814348876266461861739186428774308652011652363184229840943841226487246825163659474467774925852463204475440508421687429384142543895704445390081565945128385803233868025354729034088011414526600486581836138324036098821576600667525599074994218832152320523962343452321602892308205465374647784910023584699698912234118686898992286475700434807435106400640457310932306059224951523490542825373733370193887678383180151375523081128838847039756442431855643177151834245133422987670705668067786085913734165937368244617434202581684608847100159224551677823450736311469885016880457762799133474121868719299093364679538923729707958411076012172763035935209548272449188173512701886693917674397259567969883890970145710394769878611028570990328806051014052394893017332415418538399939258155623060647579961932035705178780801013674010339599127444006643361407310814557961474237569113060980055697512324194086458522474645031600207046425483432770455974163913898674207449182167771329230286922901102726618552501692500941978123764786102400777573854111947492531247385474298134632755775166757268088546705171218290406279025867057088433384690003256107034151653640712369699413232081972811501953795721613814354070757842793819353854964183864392221172455972077782624595605029723822646082866033339014909381821857643749917299721458622744212563146770806313805763487535805412119388838405538616335345612102125733028784281320695248291511040179506858443860940403981829069735090118134741687896799473844084007912761919947331855611329206181579060824974395193191694203399989980648166406703305045554543831771217067451598092635571622414071244236173000807293332191360265798192422300476915215837150713499790763763724216936439925938602017846502086685153789647063931162495905831643351188913503658003053521007705257712467837716534727154653099719418129403622427490945630715260910820870200660275415017312104205587336336213729785239462597390777994479949458421856311056396178528204608754669398697163910958663037224561008300565221976668658441216059267930920470868671163109857939064799010847892676086548896992744289065722798791665782604307111503388285851984548695998093997425665354940360035260813423427710520970329624918351362497670307274710741971482185107927697295686622083256605781062639277010044160532661820720176717404646466140574625013812677580848388298052233817316315432128759168388931278003500068365971134070425618501046939141512920245857592022072945274599326186960053089506580294495898094289638165248279599151872307149674507660227218268986921694224086451630218596220066236604456643129637472151697056603027865591540321163294890564638852326744394888185293693878896167266444529415346151033499317424371232728903494596485193408420818391996207387334270787012073103887441458646234645933294064936818367007568462273493483649794707430627184906698857067707313534707708899520639210034272938514030072477031642765349553616039053986437667771890371149998832816832835310950290309272387284154973587951754846690239241869103493750373808574469440934078968374164663691100614048107593461432249201784813642251112713259783595284282984494510879793408051803997732513110091607133469048593156332230313731674595635216048825262360864529667978043132713480575345502533621035921428063068793473380486357846557249024297072854866527792334956548260420756435174124770596714609751633172196879857399807667692076763867636888499324750010873142232671213366388685868022015983733690641744197947326674533355713459613652399499534063008978517419373462891325086614144928083182604899726734937651554836257979853166250548701075466887664339488626575581199141682759492056536393599701880007748780056507833638500003035487140435226269050165368857001986663137001126946103482359798841981148562384944111331705964763529600808112282183968975550204031521011304277665850303325710162160754556705285476102386840410526103738092853083593717292409187316494601772575794623910260595806547267950279881772229775786174934529696841758524362403662295429833252693227962299789069618587386592832052619572084166302289792659474300808683024431592526543540071941555989849140479848252147855251133065437400519253030565785917637342595808775844322907101834012683747327028339490546537310231632196697586239661125159862649051873916319982564495020998342593957904929410932407184838658732507047939060727209212962951312949851032720612481266830370546193590012377468838170641275312063906607466603199963843295707508998273684054133997349590236183154706608755882168363118262396327760197585522594023618982091408515427194098424308945721325293773565435788805177648461300591335062698095762904570146394823209935517515327050807583895801205441124392369212245648818819183966158084593031536241330710905067288926634691906983867469497073220577870987040226879686850120441189763185461941506849116634036575193002752859062091439799966812065902128959244538259830849293232482186906541204255094795913138736319576873154362615746059250318987632044489017738149676710517427321195447349761336491394238094406109357320205591370300785310946813255384014008661567768696632066063848391365382572935495430515536794306263350699812703111296068906954232431507335969007821858205119583570232284951297860142815663933734482771159280989775532018273260072441394139928460958444785316549703990584755347948582058891821014563894394350930616043613540315290133815100869319513911274701850076182957466232694626984048014803887502675424685191765736179535272000652110333514402662749766426843149106137067567234447055176209319359617697523172707849154221267628956776166748919836164584293952214923534870159537102179338990511552199873218545485427956275200281915499345824404059527604996131099606851744282944418555226498984897727551081131493507119808889053013732589964434794633742489341404806593234683932215446657996076523953338921899739263989301631049632085384837242998699205779258998496405078815603877302718751399579853495950289003201525376097507420910219663678987380946866033008451870762418369093148679167599474892457434085702476309644648239604132013148294528135371562675997215321309543506076403842955718164815919955574433932990558919321430607408292653033408449285625291005013585024239376480932693297644422596500369796985579570947523374538421505024433491955879410142911468971322722712567035438698047898375147678056027451751229450915231502242937664324566726419594502064242863753667774806570119277254679889499376461717628744276215992123943113049106709149144419181223701738859468624147590041924187399439458705898019153783609845410621105275280973444528758371275668645935060240611661064217874694910457103076023832957804236695836585262584537939133253449329470168563787095338874287223292696429793931517069173735622330840483149772765866716907576690827465561735771062812195847770064196975530330029997162414761665594132822614399019741153495493111609943174503215905463369305735501723548106931363461232799689677812010004227019003306830508483753383701339782680455373958096545722002599242118169792113099840144916562749970844453945566174876178065017110749545419574198634386724821653536079917624189630391452532141793677329456251258417065412113440491736561394888950943975255227250606870692683566135238636892579832886816551530346914722145471883014215783728863276796390848734529188538837937454336875225493594863304527344899039135143958736022927144985268267878927638268676677267383269317941976342965464477909889188758120739422029152942130431825685794956577540397486394739985404090947639672900646112212193801091362692880620130721111737765866508399180546402378016430060188193179497212949813536773252805294556239430019891327720264942693940261738823823317325179766709668460559793082496841196934392468517489757285644242906975600854328528937279693147934402308415125440272230296593489116628432888709614937743484858240109336835941432541754900940298463019522991414836459796268783376729904667006057997443582348679240324058858178646675016713222204848977096902348271755481987632101846596666797187091182939389991627927414888416185650595817479788155038390718732663277956603210823425575363174533538766979518282948445603223606509369394085005225400135740191952537721851412262491172137377659035159926436362214835929355194986072228295973374648427363046244717058515997488931787989861357553991697781020805526113020482592358575459634212564310977921976257244090754154480461036119846075197926244468330158573546836606547607008014040112407200794285358040397258428496794934556358597416588662249258291255683290632438711721428538550583456134720523626455533327726471441036866771662439236131037497758372384347770609471516508132688407320714988865774088146875501654659133313925641436240153003000791701085566878512035407591016507042670271162688880142302465090242665044591359290390401029281867453947178783489996140340601887917947141891406168231332368999393162170188133012692663123911718370846247300893228893294690122853736236532878655654506105837691972276475742861351229028311815211889971753382955491374195581600425559718913378020370860150899575306013303581227566910786570944367193604169001314587396224341731384405766010573409632521611539395639628896297203299152458901387265592615770890660076390737949927309149956896563799295272118880017029821385283720532826024715248159470329393972149287905210135255307061757563522756543242958742148120179951519665432957467786951982463005052855056253945615058636301384416099379262586027939023042906563509398969291365697710856752922245282909369000257238407088771286026354456152309377861536417228176137902966612785267719347332401841819570947497921069771516093654221826239069423053521890911147106478101207004054916470963032160494246490857651585425095206021784503579025991959728625989744130623179697364224314048622344681761873472585603121693145002543371036497124820551113020916270414167654914787720886128683264263531942613443785085849861907840521963039406896795077534743369866945472275852157049182712954937625408423068142010809155972304204352483030822432459291061731609646216513348359640586561235840470523169763629226431633413083723235846094965095865514479736891935571979416160909396364731728650479580585815928299865471861759148552249032319247063610735200406137301713800590548850600792237338528731447793256535489751936258668732114350811507593398857213049097638466113631026555549391297835251247720078014570097152703468739272464653542710993947033752291743256524866011425892846395409147930301864900213834873100912051987444641443632582097554536056769946567416288040432216552355680845968921366629043961134687595031989312542676293526328577216045474053839154495239522531857000881387255253472413453099334361683036353582282265082164672440964153236946420360936796800390729377405959306863740483429173655407965191645868234476902938206381983512739826798177862999694710871303984897610150957250413659923098185987670550015619016423938113809400951750989891686074922741203631396168637599483973497848645487907277403554314539532488984946991955496512874422451866283862362270069339073329676507865451449578428028142510019219957529399784316552466751192704781893931070290944814460804957914940200682450070426786693160430989536322075232616262053761367138815242444083947807233259605367514054529826203716386206655389982995946702705684979768778161942223123520802671747945947773032817313423327549077474568903499567516599462762596715971207881998591816562953088699704634197603430877761045093961320769011323738519410531670508853748232347120943605905343340993897099087425419821990359047225638363357994674736551784441904331276447565652707941949729760201533609794040284362980071473495450289366050098984382059827904515275380079964811289924168500129198921592156735677653993992161814718447263859593127841755878358882838495023963308732657456587427318602140668675516854545040552483591208495030372818741672791461958803295230656533298595713581206116301485078162684372209262682060266539523073166610180902490449396728408906570035955215119498054732035069371111159292228643365747399121262908194114563457236092235995667967507887733180331334543441668068012804229489396178305721283807543712165744810302552182561560503326524196532459490263271388497037051596725624879676469096572824306072881441574139072688611802576037570707154056892029513937761762755790216267282072669757481071837516388870910385844184199266124964126208864382233857202915737628218819892795342672167454501511021422192086267962718295832874192413581608539799861210077726068356508421207691602761442265470279946368891546234874521032785886914249153650105326818764093399791017489131363654192347407043564557656221260600380668912692257985253870101471801056184752640840161960006459031500825710464570414723919026593699443399723378522596026358023274854762351057089156847360389417834525632144217117387939883181696280243484220735552804322405944947608764482076673622480669900002801882329044586800148141471687158598488324588572274543841006583826516837079574814667812581752116123595131867491843602462536964409006947777801565917228301559608420561669137086464964794379736026473917986431392531954220562949941711540809865411935930397423038499008237673060242322256992411627801604711018576869191850312655369779753236405620920153909105868719047067248674906173903625088888786764330304460582409528598672943778325163561996935142610910735450577098411822489349485135317967507975338318816506971616898969885376993736750748606734294198342573606214575529098145942586819441189102571934582856753983846105430873041709534829215764124260751046764209620792559982302382967718589411311633217567378943754318346260728582230796712712586043475071292062261693172151902401890877391026945899520826317108018613887196187142692049984870961184791353167425541990811686690443509710906069891176089925836239016305640040943445348328049943025652333562533755216408436146897183044975355225320417597659316964447714784695096268657395243590464364349411583451024490388261215539694220196045177963458954927833886485110712489975657369701642912999090582650878431312527146719534251444546642067693635539352345816673817194878975516123418813929780433919158646659943093944544800305031631064687638883653361495490502018556522952483530741308495972598720572862275064469624661032862278465844307122049028699212044286994216757275765035748142469277253808224713043345560094900081359220599453963628409220294446052741339245849426912834309042200470292097234501945689355495085471132572729866975307843624201131460584432405738175762830276555541781801380213828289590733547721163746448696004923893332335616087362088561395813972025726294757665635900424989075753998051556426489894314310195546951729234770190874597941059140834026227694043485282695924694772687059654014661454112941201686847558034973632355381230164149345601359911660210166457840127865282894656373340851353375975796492234346654582395662511825671723169011089577378203038261678978876863786939044854071044875725744730706610313045261078632840198519933924516483222436498420401960542308946051166430786790222506452018932953990410359761354242829686244983323117916755602258498984690215027558300757511178305450555213474110239025221287911972432616795878347481655216792980373836994587074277504326855103909390542922132640546408104380143230845102904901206667157452824701774189491704391732324044341137294292712298790885531533434478680317663116193447077943181192783205726355896309957233199386172401235567857090180633338052267959069690976136792208471487768518571646855668356132636263575047711416031742629068842570211063671345220874283113865891533408862415935493927496846340623309934419776215606020479128776351969943620430597689475286945268879748978110820504554988834216700213978463907962698496515961464909590970661827895536924518959240922792620639046240073312214065131840421180158067066511871413196728556233646116861757237824540359264592186451088347096722714419365829258976833005508892406939401210484849053218564516603550324373081314862658783101463892581162306240987245656498995532094852780159715105371925927770870966740963481633891857866734910250023693292392482263009510052101933956632942103012510048117486847965699430133452667826027535461770555518359659303039006982197943179378181052148445325249518120767991208863706050446727873689442462183330139462394210253010589207729167464941759188329102121638934690866907197220896000386786235078288936249989647852160222036138378070618048202621080878196592363331998192206215343450563723171369434857496328248134882945481941158710929428256527483137313124858279835266799043473905794006277615965235919099168038584774541622582537246532463833895172552321846867639616328687814024918801437478646460036936647418894108680215422894384416084451199999763839449357248346664985415115759548304743061516291291941455165761273201874109636281608096788083536234046402236132140824600219107819742167609907566693667965409274579195169011509084889473403245566969256809336520027308838744283650376168246819557558496483673905742326823714382773195164624566598448389105406644098590685877629345724323213547896707451779978952211478551321071751681734209117247955591816403614760221140347938086290652276209953419373223200073694562598763161509363407475698911214260431823065556303443664957562378788194710751852903431977327386522025208950076125496982822737026814169999741465347788314859147725906500924293821370457901960776596829438324410248574135358971361311518739988043196538021869155034629671097545153819609504172427140728724319248708628339958908846018133993367334854506769570795603882752005243016247925873717735984054633453979178266218202191120312779712027157175725084936720848935542999921515357198247468246975929463449607164044806629417513148868999718139182855285153315339586666984964198500496349326903592696458402268919012536683674585151107315020622028878637673135646791762921304963021127107625964433560340238418319093571251699003373304495625513658627758242803853768914304404201893195718674484124326201064936168770705846000376809775778076497331208795608825951418757820987403763536475825562806810342544480969251518186645330044268535682567789736779567990686489999560330462243991962768167745426329148967598470840802111452007493854151847537996165668599018692636261749495015740326040265641254425225372619755699259232885845010484993159834414427734633115702097252969502173087461131113607282682228490246393656648918174097259805006347580055415013339112326247864840522415677605136453558123938867659461797148025385847999362197278969045849600002304484158264175228135756348078746000266708348996929592765750646686373375309635965969419887005837508253845004622891808601501404523028711154504185922465924074352960495268442231049036817752576708587096064506110849153450042177026970119568381039378557006916847557343547104814645150960079492371700167451182517253675703666610598064134078957163338924622653027437747583371180176436275266884786250134087030673735620279095507408525842069197480729832682254160178705303629265635140306583398504568772178193605153239725520380371858452096882760220501620262601989226719648400600164881087623733789163838102639915804784850153556156292212484871633381346918569242122196471924000592183941660174427824072457867959044187551600274964092994351278340142793021878676386233505085197978337992736999261781494333176631441385178321884072853924902947259927760001067900980931112806352702175739335664415906104514376563853729240180012918717672441225019537556863830720914091272719383329663895814257022575351012929186765278731724197693927551544201435245641392444339398884960530401235307488107114661334723691998917762285919359183322693082961379109721723974962223880493325160057909196714854312195389412321671271743183489054799815415084844276857136118946170751143397840804951394414174322762889683940028143659081875887874757004103279976483557278275563089933025428665491953024519156209840608234490131931769612481584203425387520651108918383223421443108629697190564349571881078746000626931556267010256854584770334125794621505970686239806803102100159168432699029942337647248167304689514385379628607150576667249241698173447894861847564760964780372153192691628886571098923103470110260054819504296552812979780354625704201530855517299871471478036213979779237993584456535184994711749050698903843449054299107543668636428692215334390650516775798191365467533417326486201248754651517613849129862019509725173830275115363597715426777401144227094684771168485313513796274247503960389501052316646750021163226547716704277375671791292253543045387932596039723286167447244547654138576959992623423772817240423071089441534913065789560360048246422667854372984874002704171395807927466749324178697240763629302531311655882950991896161330493999034720635217710228841106236222770446738871890494940320723495995165178831304642298025672920698080262922910969804149804568315060253573730144189908114786475308264481596341666891390517234350616395195974011378198621735954725889064578925223048963388927605898776706522001098238543427913066593176808532143747129126147638839207879769003455181891315708277763640930905008275657048416750561946221207078281490206604114298953781536520869959622302998751066137193840701604580510099159605643277488840015496833815735179855406760918955069413478560085791951788892949149506942181499451687794942720171302321901473063148455364570208598901133374621117430363846491718280049154444921360930201075996892886071483097013282644312161237519498519516779839939551976427193691212178251037473917773929339856493006240517660350253999762758237190994066279240315568259511589907083513580939003831228502800360653613939276088910779550542182275398674371339504913911151889910379640313094120632178729622973741137297586689471832429342802946576546787907463473780030245524606955725104129588585984478600604929278669954014365045709686595586724168986276982712927827762672840926361112113857889103467706183248373878145668660882297805907682141015098606699935327245235244997857675567136652730853021812663625259142092827496851255431788631732109606772168987156977929475665404477021441247918160307503772978991900391821224906419723403710060057232247531127480719884464752389819880177838975872189523073509574256344256386733207616139126467655854551685265301870001485509393648336155165151360126978024334242327646661292674216838674450428879298425414042673352700547496044030304175247012172620240526436455795672136705693086975220748765907772110886280573575436234373592453021884085760274465085821180844140320668321335655522397702658334092586667905840658311525455051079369195802136506274833331578473690782805323274200159838257671182220967941453787601076629334433441194084168262726651857477312463833112508740821774927376863213741871326176638033901440200540707581865937619542682153594647429755288221779471882740754960406469933515006294667347809783096408277466221174499883900543867573197232523558965374939196181739018721093445852254749992277964021648322734375209545102545218992918387213656582180829041872012861885157434125886697562284047205177000567964154604738008414223952849828098980807119636404023485637939601231747174077878245790694373075973678589335461653618483235469757979039405324345032345713619563860721524467683048252845782644879882022800773961446260765100577369725834866028199705274003386547133823268913289626703521979533453429085949198095139036715982190721389005683518521959932306077812404241405831141463397588856958233947427849223901792740061616925060125117030507838924356899390328759939363758314683495098587650457997614958580607480432803926050017643900838181765024590612047462766095199202072173321671425520548782114069702867546751199161959939147550052504081753459414024756323573146747377906902268823178626596759095669768009063318700488646312380174676508054834020380381646750595772810594993862190324656852871805983093633156852285499460986761263671906464556326871828738114982830154221506549019557835509189983928687714307409434320277494611839569326512077098036535650858952086917790166801508310130939969432749789022858711764512888866936603217967309268902310984349635203391355575314150156751487877058555179707822609977045231357519576399392743007332127241420035134784406722218515729440965600421543530543827849836841717205830013049806583853333612380832686354965493880596546761569347526625831117735023232907366278905071887889398556275343142006921223075976675217590468385983464833752090659306056189232841138948758097819355235413703885442551915392720724040668218719260299724861228534341111452926622457092657775528499979720565574443817936514535244797250403338381564983593464833514621586754270693258358800807041810565900275052421157263335122829393337485430395830430092550203832151697587290310983941290748031777703974615840861234677146011362226563408033927672264810337549806816887348459580969293490372769372190829373633753269990450338382831581945046412569097321367793197546122863703649267640152386710116384155154403124707815307044162847885667839050050878041304218200378659032180316501203541066716469391481124753456383414475606961144811358703821366308620354075122769667243718120364376244549406048383354681924908165205401320699588164399476729586131145663563856713823294356594184528952318576163480354941726144210556346820834871995248364525879488579635102708664496820042226072510010862211513289922171110605516836028978137827136634235121094083887029903911251859950157033011679083950050440281671292961351366986675220914632281673801195921490685040359090755010638787036389752040811207531351236246841193114874223795940007722432058337752260313040538213141537343409839134733648681653328758947581171317392203435375896712332643312358874860641516418642586431488020060707055966223761730165991827021756868862883668364652500180186338476354486935839150913271599241096616651510374513593367504661499210894998025100985971892633489400805391768616272226643788868435547303591086631724842582025571500851218719648262527050863865752138039946994303428701461726846540055739937209941059859518562618713066099084984521703149786961585191700322066490505128603226947425132386364243763506145114510659334819446593632555156488309099619992088247688052458276503212957281987230285455510074150832411695053752750514435013386736847244946790610193906033875457089108669665326469487510376717599615120921768919489761711229214266896415220083104818231954755750837186413905989518454043535105559029293602013634203929315910706182140998490297391277681477639860733966700826939667306749113964745572759253391423567933827612007721594152576104574957468386844608984824747231439778363806031769988165837720410330484609222884545636991735003214407524636467836421666419002826110550653531108650632064026139644103069246978648525008185907048789857712448750369577869825346142034029641628369594793148912617118454641389354823463428178549599382404036711909406772242438563415859064675886721574956780179772173406467684230431409189329566888736181101766196542140631486500063541307788625574028420902081584576626567560698445980482933339105739304279164245037029285435368561761567126873643424833595075290274071098853346646171637265918012849766366589148226304347810917296870721047202083985275298513505170203735510795271570453978483052782297163024673127308144874423740309540442783253219963215806448126181567684324444140099922517784774637450473815831175761657679406096476658958256018080423658756353435378561429598742119033349331597784390566311117244477292914497217154928898663330244043116475603958320899419279150658608965322881098585995170354032724764328016781043211239637202839806920663629677831033212725691691590193697816936616230890297201308156097170589458165553989925474474609704956023038226437258659492445383018893728208832548342207564413272001605711677460184559223756657984767777653636734542650232047219309027118781129340864472268082716281600811654095527402850423843336458422506665613518999709375187203529879569899987673713256310408475791456836589058955198551944426796637605218173553919132405224349715567396098196831795408801158963695209384172088510766134872822435427383943480555665280118380899635550327203572739583315756010963778516980796576901221014308899936801442255895829139070029900942029643806115748783832307458566753916680934473895101502887121163078689209596375885021404129263574833017205948472400382037978811937736526424893514330952717385531429868535208836980922238838984428168639494816161788211497787802125544621409351852146220277092861860726477632599257480675665355926267430204784183902955806425311521641738833467793075559593102572111525419646734157936150218486359483193229916946118072445274645866982277800818642564006360301259775868737176586559864646615285849603496599388655401550832335475886631814001818717651842196788136213647372001514618888361355874278908346213078847224483530825591445465975393408339045574723018444769048080650469026152766926584518974608634638219606068798069049889275719357342247664609891347273763126885907052849922754421666043889168591780384956514210121486156968725707680838585482717305027922956142594630325111044145263487076997229736668670528849305081487987111155663966978136031915012655355037883589407465831990083321561069875885423909405021719500896795919275883564971037845583411086225850725969920639287585222343558693922905653767157148893529185387008785191146744818013243474935463117066104796869305433900127082952488131677504389166083672845553454920898622368640141358317287091401757930067849377633601423958546957576945130051702327978522425603243210717932196511884448296709005440453906586299042252970033418239213276759399670651301194728790996498894803714357736353253233329463169331285290897712187534054613028501166218027594794574186781725998631208780096910590245687651415887538580455228987733571868672273059468868056547279998595713623989095407429224442137735481847509685791663209577170754185356609986528102107553753395071819443174888394170592932716096593028804470661176263833580439185206047351559498113009226716244601319235123231437356230277306893388433610330674857575041462689869014939076878955023226236798901282823113783006191278484128535639803827071849535693544054530100579130071147268818669345260262763810786557098769781436100026280997055543203760826116110853590167174696027722185189929976215414140990081494498609253969545955835612300712757812158691570270436637346462912804028275332017074898005107603365450950175758162015231998029649755089683133421393403223487708772024343666791481591509767156953536496461333660013209228679309747783910584780146552803118981430327703222768749966426258018457353566880914153747178574562893180130849260379498534768288604506091662796648928371010654637742523222087926753014742379693379389565558933629081645044644677221308051149085049145231391639049789891463032701652974487048476648079117146338181731908871836339418273838942445217340127409085142825194627578381921252997392703642575284679741091319568606090625059359670466883506983445898402318457196767320944032121621137741101422405140354177353346064015567751672966678924379935244486720345722241232292574968972610727943899176291638179548055952395921942971769266594485387377536931826682777428105295332118154618439586512674326521099793767838328306885192511515234143086753192629709033027974656644956812874061407861571340867908267355002388039275571847792000062735302781935225251045247202007218702392978395776671659887757558232430838415334811669474603344431528768094486060194125583887002964884210611233005974999716116922081265561553191589527693109816143058232315360045261898855121023442828348035265279398394113767396891953250227998504953881668094734123365360824119936636425395313912636957675509463416759133058826597150376203297624125192558419210595535918502625708924811252282785678828557866689270712898373425359161935267987224103412434825937675985571625341704711573116853559323121470786511741259875639504565995179249942385046886141112403062246246702401049089021181480126049257380223361846666640273995343311147082665675996422654641590929351657328236670445301239600335398332908088704193106685558925930092878842082597837087782263269930126656778548819769476485449035378622809489284433811135698635897644604827595691707335694563913846037313201598556595987400298768009734620994133786316973032624149942930379873559549510746980352307820415256956263787110041321325054020655671949923066673714979571828356597370408455489321966488557346743898105802667375909459672273907633350994960106412512072438302079649136515623396742321135796769488260371308183061172187914862196493976553770320881795652280826996881773166752641538062351015326494671655277347024007171823534480547455828481718223235153943246933618190961606066861252281532050796197577652977268989581984380542078368544142543267097624188562092694970653398617829085390967991581956267977725285191463329517117812669781072308792138892947205429930518971831047270572918549634430323574852169095805920078709549924900088237583268258408204386134080893902192470111440715038290339030764673844255703152882767386642897148956096452415247696363071450914065277802902453775486050081077640775274377767284007519019242533961103021763224335561721906511026808038706007213945564702622222746658929111329859952807757908544636350122658968045505796477013606332972341571332278587360549846094889997739239707823919761312834301754370807318805603444001664590184628532856721689818712487819718063669378756436434556662812693912308618872817244421104801570823307227030203455091472629687417436923659946509647820840429889359489925350959844168667109864713894496283436164101860347027042470552463529431000562566282971590518143021522814686617103444326422245496276148859561529243422510907878717723602094838254940633784424209940447777951733707327115235985882409312155022444686961968353645332533478681274260985218243469551718424197768189118668246421639188199567594689499148917853663856646683507751295594286347124999772270712031472089154372427412922945331762379169887533724976519312602154894107041397059713317209800203014783400164310850629684127799098861723045516931831108168081295983534593816038375002425374556090879163146869038897377221507827727825510846048726227676229160589686716936405868231747006804363969731401016811917147709132822197082181386133887046320599516576318094065618112376224452593789760935226362774238058411474825194402273946606444259595047349199492842614480765235840838570156030217210601072254686962034293554008747585844897157189817066403815159391156829888238041266608298314718395776472466451364888273545315761651702774080777705674773583569167866627647684272977718396517503483068217796473607320333068126948569919995690777205345343797448400747265851950665747267154390308315435126294608816487019204783618713518948623214441127478477069926231501201227739942180145167095281571322137890288881233316779409613023215310175678787522532170468024413666662560808719650444626714591971895699645795145613489443318952261960692681963506305316868758363465887210345155201190373522343848581825570708785919401998367172659916891225543150527626456567171344274026966120446636992897046440590319865027576263550146746219439284102126032254612192459831558015849106705827837838852454227329540885795503565320886771572375688937924923182671050651121529022834399518582270498407913680483116286341891173785292454900555804917279663337524172771314727529572829277455329588776974697058007808861900604764727452569006820027578115452804331131254660394017744136815774017832268267254280525243112279621613245483704917856115878934338199111461389503277666945532895636118172416489246127486628600445733203419605381104794481879249102614318818666928231077095013670485565044814245555204001816697014374716642059665995822357774161631154902211901134609076045162415349143811567181595827191070105637394710774687066668648465595696938059727025412289031059195945325537747242883651462020776853131467496030012452304079924295835144877045083710109438175208921400776468244957862300049472495439675723997494457228533962296367502868793389514720043170054046776614249511693934525446188058806723620666483999018781076323529505357845508512126059696856020047899651020098697516841141186928491676653237842490028671842731892744514060105963539568270445322229132614575759645841488393960518634014780741079914945255681945007048197025205991403151094826880404351925233006342767638324035205968940449622951290627701772503334218279856518293770446011807600357484447431952959499598373425372096190415059953504472377450904751337415688185322841896925612495754611859224131843602527280333859050741184083831594614276314921773711866481669572566426750332520302183131792599321404124573549639947815937579304603481046172112823162206537474748350153839761621512424286058245195480247061267997753513374527928205757394615941117865925403943665140867731476887449593605545718530272778379274108171289236952687460863596882235701451645392554618569753871844449409011512923190164779616600478790324513421174506469741714113863199171569777845954706902857216277505578963027538726108588000764387817948564095776455672884760419687660233466096225457627911899301774287752579048623082732260947410309761816774874458537492243719972345416930475738308595799500985824804651906009598494627067480371524044515306307477086114358232754202540022745320857272278608570618226069051796571638572783713385188079135216264106467116182297884281473284929496607328077286727105417594754692485208655451966493639771458992692899829883047906736256755262720446104678804252640778153141586937634320309129682449237477249318984355081738885140308925809380108056208722568394943552684690548643454724251528472574950291953384344927753388589512354180877260356434895499245029036107892784981796340142864925501570400174539472312100006026958216369104094276329350382292137911169652960826968940262344678468075826523134723113670923623565108915422151702690473451905822587854094501133139254789123302037527583256659500045198909965657931645056286433953938359657144394801096619929355241921081181946802423660426968648063539039071314066002083112255219878478169340842767064565520826200601778435003039805712424882740147400414652182001558700568558933815452994265533470378687247548521795357820117712977911243370110623863735544822298658189221885940316522004057498223679492974973082793811728864502297876352398271854994664225207654626282555369207457274143425953635042500304529056886228354185064357985839229521108754345126039104606703901847235134391944205908019688947733765133554027127165107035669533040082876681758122796812357283999997682835692000563097875180235178837125072496575827829152920128674665112906797624995864208749130453387439755309510060787808949578709450990871141823959590241299086348282440443212497928348618537217448256635089267699990828210303096853616912245891375789156796717956995624465451151573127179534865544935776240509256102755345210019188841992180994195758874320432600763920641435103544943510204401719975896902523218705185843002905462797694023081529299544713514089798963574997210792070020458405749340677595543941656337667320300295394153001592566434804875389846980973981092419648867050221593383035891788674340411924245862685075290223371078381725428555260571760488581905504660013317654076251467734827073399657970322267733005444720602526417008598437688919926340008410697764830287847294944296800143190454691411951474198341710588682707271797853998826636704492800956054187872901840156002689370122086176611652192312888321050575467931070995816036043285003038883214125103152643670527537331392977671169168612968783591510985898245399390969253895222461424361587892807949710762402534006416329709975774338513021537724764536616991655707187807492616663761219145972853359330373970140337796942405779776521875419205119737282482342035928229996623703722290320127810433752507056710763592119713010806789430498769420716451531005039175904455595490841919960613106768532468681223802460665610473061198745866820364936732465197366309935193182068327240955394658795221635470485671699389894668598614936355593931889036324077334216295704455479190518588357601761359419639652798775774008428673812964368481386865513455852440858315102156337146244497044102008648983544454960322572889575547483013567581121452694087165061164005893704711897732041390688731643284636033531589255752822553978077464018076652137111046359595217965017143159523950096753625782677270298227060225515917999858868316721003560753789541314388578996170074460381852989084007011158413891080823887927691162710424672127811116659688731327172931691982927049199950693391879335122874963918304380116748882383054276824862336752939491491927848570616966236955539740438286934806584481998429142732902277680312319991910742327486590285272410343948411897110261861585325481907216952976474682986975769519407697854060920569390992613874076816922832071601944134701252474659218268503281530587959625270082895838571507715543868148926649227860760236879258988977968961887134866954562146461089399554957536115147412996133239743890672356327061122733178818071365984092067064843131576791516350765130164825575174459287361922155826574359081156528598895739756193018852922390869535380469252309085554019822257906207629102674556543771619253050252560556775549114136797538876492859008087262288011496864749605566606423767370707661600944998553322667837187374337656068068749616261519926269126054015705430173641446313875808900446260056374386541515599025948200300475024375340169434168487664098199676461151140715420218600571544823129085433674499679188849610254261348803577270592109121731052435258231954248013346326183823905392188730132259921622048994038522959908105176014244588905657948640898181903334907742297837341105021487798433697104559845812607995690078620128488404124015725827234525674392913048332132075675007772968689165110131043852263870274834636185629563971007539339088245577000641126952693571449483330433668123364372551253012598314541745475769304505170727664917845822509640327574058425365034328612218182155198455538816921504215139298540449131609360709076686463048123374905635341714829348282850891993242028840951733741469093109401648317955217463140085300819083152187972051905034854839393581794872249900888635728492322127274385713601661957150892240630969708912151548345594599306808113427427408256711532719325652858553516414492968661698370435108236980938327202380502526205180731862844755419743065475995321712774514329000515480413334228240783882705209611205480986388849435154684955311204876979076854707118655904517800343562063000789344105779263706732892892618408434699580822405281298088689626413526990810248833726580451020077207456622199996869745103840469987572173651401922958889826214384498415931069353993020179083473357178937428531020831220376312938151029513016953183630576608883143872600258761605356378190667207321136936295895523014473072108775794302403234054927350229569256613223473937308068976921654287239107415756906318513491939050737819638252402507405520514520397708952379753660726778367803178751968373888270406257471525092134084215429955092081598484891843771563407934603798497787537339424337537381074652033960595995108474816259632182783624439473046887932425057754680578447858881348780695523087042055178593889625521511381991922740794076448742929388357226122215300035401487959766028870711650018377719405114311163051895637631887456292681142431382415924625006204540027262397269278614870544343312145715659587252374806166810851061726214797369644078418418139297320273578467028509895896211227052069530767158984612199835302922009698135913467427458231111204940258827312779780789154528743566323128004758721680758398955227145980954436385058078280511114505992416448083556645544401741937934269983952253114534339939003595097310613267110901464886790991276313332214780076782268453714378408177836748266342162843178528218865260919700958585728117302470775253941187120375470396994965836901593998497621608239326825577867026684915491359968559365570110122897555354000078606669323550668385280116150909633681442425010138400121402311578230288615245159083517382242732496612543090032619530673951488353428620982566246178073932711678076024269069092163139176748576364234456805586493706231236886310843901296260648106231416163468429035856336710876644221467150501183979395885817161940819727306932523329622498060297219420740385846871633548704355248344743012285931030395919002231188213023226120984692773416677974657301417378226522305250688751767974169107124681690697444123155127421380724891866272387500055137103819345066925831953137585136442378819988732576247278804801466910827483263096533187569739862895521115869408594421504510736722999518317339967247442005423875797427545251049900800727055337878684385162852763094350684869725894803667202893437205669556510029576482196138698756556867444724612498473201097743254237932633339454819596567876644741054467873659057196971354608400443632368922238685296692466969233279022692161950815047206060200927372317406685839309953771705850470537359538771336048020251544829418164219022289042983924748605759727700915577868121275535427614990830381864294696223240214562931804709142752995276097908045325765666408544515411592102538344119242312280676660311342820868644467110100741327802316599794557506659909876634412946380068946256726183964372814277184143111173490824324864065647746806100369752446237162232266308771572627578442966389520303080345539115995182081406265494488448195926592319317851919250413283289260068293709508756929257486121219884247966650294878200816493893653852134410019052151248674669528123758878727071605250569560468263177241056629836299621650156633353239480216513035755978928467625925790392619891115843774599290537361221279373990353618644045549348041834828268070317399578198667177400536412970777556175528343169257879631080179146169380011833028379384123045195945042866847413810378079360133045628532599166579552196898865470550400436097434732309007210378281953036223378750134518844425333189093717201730590556578627566579966270191035559956869383461185503815146023577709598515293304052508856302590933865838117526313463439156832477916401035980918810893227065819617511909892623342816896042870467186635634190592894976236319313006317020049102475542840757670253221118295400824787324149559358699314443810521443998818943382473599543636131003159003441967882928851842497623444866367418393779027321957025348053842082740662273381666763452752174450830163600925846225190197104442606010656552062363303188965833911050612645815363598915322644073049289338726465537498163233756355871274401941069005505741815526602175962627595800640399565510127365438589555798917649582798068899391062816440990413607897380092698025514464675480355473273474810121888431712690312774264281901366038141768302262756765086289734504946527426523845307385245791914689607903156417995497013218967790577489380500033930348631097353138678998676659011328084382344259672511678559837576979342860254945131866369083661757301183315206783456932559479770616478399459270398294512334562241392614353304563841894345065377392076427314183316665080925304940680929723681775829405034106174084844203378455573241470773560607568097755779346327361490694724747513136887637431271353599695316834592779948013672425306043243140416524685710658536456197483004463229881718801975517708982384807392495684664965549275044095605430777613449815746085732179473975397789824299149907695201795330340755501081753539398360463877851846849770835689437262274743942557634066582703884111823401033040957476954580806878461136549669131548093247696609870105651773353037661122962120886552448816674400411290022127336805647424135001084235843668660084554584337814285447049018468098217568590536840677478355838206810836413416250968781259486529957204615558022481744580978215437255076932477109903052928574421781216737277282807463739800125475486106868638336846066287701643523968731787726752692792602820142160423040051312794154149620448692873308888176050862742966724052227317210302793474117418117512672006810477538123570507691150722921311075016347659550700115435383226369709781508941945688193169245376688818489964175048822268670654739631395730449712514283237983857716260371150384515859426743415940065199700034459546493959666344931536352116404130900192063715980571679094881463816539440134249823347337154977461121474886352310708837147898057912682714720698720338570821908728571498022079624864825723218585481734280158062751501697856488062512015022939500950448322801200353238398116546380526955783822449282173607693577137684962723277700963840291041506524346685862588949067885132976539427568876789284322959846297315326544286525308125052421508907303047392312102502693917898963165352978865351182354154467020562915530604938607310740431192082504318136208822668546180923782595026580994354556524190338323236426350874221126450284699801322016550201345174151736207737463096165604287955212141222609081532588948164995555883621339561883452243705815695660316895924038223445995551299681264915258082653261656989945225739016924752433426772804957330638139708864231586097801515946923949138370651189541048819601789320238598845144567733998589350063057705265800606071311640796806113357856970531734150343168981331573682403398602533813104217035528937772692810725419778471898530895308737230183007855600417633553500602021726489361173956722027481680260833207670230297272336337465654054009010884914242307925837054812024754394707817964585197704488125741843109416821233519502388018324838420487612109108915523979249068806986395237304173280628052206532071594823465311148313145235598480016914327074766139844319070212920586579197662436659898287426187929529119382544283842841549016674307106920600510247913817265092383054749847930629453600380498591309025495841299385932392334947880516259123099505243211304602644296494700405962290851679007513643207265344074635922191960062804387179704332963603006091182960569003861850802978777294695235172470920677830702084105354053809336621794961885142615881646729445884612533011258817359528967835723123681121475879775855749771847770041164541793195536399504402659720244887372796993700174706542679950680662283395282895877108956000580048425158900742996773354586364633856898507766719309031380832047448976594980457153495023369103932831295786255201273919628565916359931256049251034759608246798268182972159493042063042599682229741754505349978179584919423180353829010629765299968914395552753709410501463751661942276179256840711145752013127690977721420145302167717415514095580631634709622513902895196850993376445671443030710034290055563722445873519786714385568826191796326087301281934975709661031828877157731049026717802210679872324252701266178130948956944506558201474253824202341828166310351633387689644109980792069299459409503938887052749320477602832490015682169243536951682211409953785136461695540439681179824470894010153809840747664064634201639741081394625660120176888968596172928843408393057971509476365072256769202028417780497522380222918359968467699551341803185418551970733603070509020347872993278522249616142855618248287282910371418026036083517865384818075128594820993631294704908715208729052101827100977186432865327751418512631072185654496891284067878566527017871806638583235653108673118619713523730080936846410911510253960676476893764714240522150221879209393714759412495911837705186452718529927746288108144042134543606645685485224872595002641252592176498179905072747835920092257423814033100966725680423770897727448859013582769052954848429325868405851260297216062956586687955872627729094839475016994595255016099747398422903923015671569158888734128252963491530590404902220209996518110488839304084378954935493230998576020206561339991457760953849117511125987057319257812360277632047266039153370524093541833226207707483409211441284499730343234320082882488701948341537784718123053330830496732578945825230946254235744683670200181114138061785770054105316234212497022306714795171207553465915911501901203012304107287341679785013111223297063367682307387446248160672043840360661365900927123835334835390486869353732392638829498055674475700333575360626710352218286197565629392015506302420127458376657011306618487694376268342803475553112961794735591683461004765434509167553101849933309018119408040888860717607304518444257331201197501457595056368754205681983127865658938980727686367150692125854378294534611121034278624704441115703656116518533876277707348433333195257614933785329378366451587332752699243545069401349289584527766763314805860912833461793730915196578889762558312419931228518830403162011104097137203708663924967910956173491737121195399986694608516213742795344441431467045215548988572187905855476182306404640492780919233290819496246007566664117948656249379221403976604138050225349612908115614239536346957559696714227220048189556206820072810484377494888345938792771505148205273427918702914067626679920099869562022812869425912879172338598862202683306019236057503291238431798380651172086335865354761057688636820332972264031493265420036251469897846833011552399704334091469686033310136117654728419734995096332112023222574735718561845296759899742699643949563166784634143343420214215760508336361883227269422213563906893445685527685521398311931248793947600499413107795591590126002384239166799516979913492747729876866852264929587312552873422426950913631767587179398913526054208469408098809167550311820924660417301788537690887881615227167751673316257273357518801350634923888178072819367435531564560544136312261214994276622051889665281718868592142228605336206656025310574338134887501872496217735155802198610530220665464263283267557510476781079968936067882666328719743746276437385885054530246021599530595900307913871315690858688022956708115154675721618871154910229521445805070943952692188748313844821461369141045710917552433316477529630556215155692680557557400929779793586607379218226135495423489607254939089805822753639059164151190914290667093161578365269790878445014400885629263843102342788515614331918769853021313999186296987005899820635836963979821104207084664027491864761241657240316603706135416689785181828091389180617668551360890250207985504535958573137623236662060658453153495553998498986777257672343460964430641362031014190838892656006585898247121273950665492826507013406186812382486523823473138120228118275261625132002552382246400318080880569999109557267682973341429704274730783232440447954389980907361226363763102230074262682264878858074668157196976909735675041429651437482285983851167881118679654969533740562465564192377078432286890417727262219850213389424715003492691950545037750865077950154597213686957001076481338241799644678086793565461729910027605570823369728953333193772074205247275654030919128917528150776765686319750813340953831860433551889429400453235813365699921239669979982660189763988438532931013209490989249305307000901082810862413793846290176622702323368144172650068402083922367431778281878725356081004126489599712674446714129231124667157011802031251869288572021915146467949608712301811106134117331754741619262295595954946152440213893855910070563334939704396146160612215459496144124837790618330082556049713097386960480014894868253352415986493286331372146419259185592107541656969784825415936349355110467587676837126336093036655152833204516071876232493507477071405486588256730120591027930702380367408355248444709038668798787923690688683312276376176712141318449768580252653327878939221242582559240443117406614648081377900494506007822195829616600865510767223923258449695689818073224944964919771716856215587160292538496761450257712592159035744259368629338443066146815798377949886065918510824932814492201816017939924111176647212261018849866954149225681201678197112081512929361732652178920998497336224511908754964869072698453430664100584375483068104937603685033238864564177064938164382606679892772597107532318214425519705367983321472369368728592772148850472631769404249125152839635468719981315545709786014224559914307726188391560130687926110450811828066971675969690566719148169447035428790137246240362010091091314048155673371055906704814887861626211081351661363615937041148988424057934824398319551869671908880963857457064777772370853597959654632469472601018098755942617301972047163065329980170105322653368371061459606906971850617889165293500111881128851064678582213937340197780045411835909461979691198423352943412578895108052621762545692536416991546811234112387505180323324294198649756240793671609241456970011675670187184520491258786451859221228254008683768011338739842452568673841766468963577076694184018333657166057706485920975586602367591478492536932149890851501321905750831794968350652023892874867626013848804662625221421252345505339329451143735593441326832981836417579803347374699509899617514256914659799919263200962433496261211068246985741767378996805666349642497086451756213022442746743449492943578427392381040239733939576979842669003236406022570701381816574116316155107721819295316017414234778966509891542789668631603233068634141970493447936344249894015910919567238966646606199679342814521157252263843271577240056440241572875185024203561907877213773469224980125224608174388008818503013772589016877759472262351992834806133911552030741109781463293510246301135358972863690728057582667686598197476245896577642609227517506823986035626991414131112001883478149880868419730468097949036252404716622688169389701496819033809843997165148728790956171258141918117801164509189081174623439195218709840565597082190659716080730932148912795530739432183474816252644104268576417621076706782968787263064375026416744792699743796165003845012170826983666984467341696240766657500695246242728491663087464091669934363095184807934579127843244577317264411927221982811560976729400356970215706959656510438516773354244776413597187266945628562852534425523026445205697829692837116869611080499774648136507677452481860134351408066702689947100973237828205096305679698608332513643207612940183405699673580330723929592255784926983388591148795605041067149152007981572024902421516164908930553199019906119867122641253145122807823515230211509121760327283902645381180940099394304079471902348626626697039915072751288482522278542786566087656567700125014133142633799407178117687074730840154395138495369753855540920304647916759318831223149659299235187666850557851974207695616166689918724182614362103511670214121037496283556629029806229854583500878796497538034597403929852350942975178686071537506432303603246528327329341216879474063953442509155271128978094064127206222008578007084962569580371854875238488656085288452737975114988223477905002364849777758804127452951430644302739639832422280539260117971355706675036259820921012486566782752900753121494747776281304120229785205613842055928416945079217268463039929275984319520853866547952839622048770185133242232971273897182362230310837695600092579683676873971088462165970304444194670768485969594414382536245234989755796545138687648917027952120467006221508006214142445845914670007794253671477027525744605561469182417046126789834110357078816706302437277914444220384494094663629310506430941709999724678991656391787348118629274954612689338432393836051075878108611449036050010181528876320782375650432164993701558787677938535859711842059178398139141091487051292069674884139525460286565149713360701598841080172519269546466702522639641688961333578830908780444274316918229272053815825010858037622848459092998705480544764992213351411212251981071178416605224568736022900988401935012682485454241152473538479990549900054304785943084289245472804755037700968146892062561178749445459981177079376428433285253213383037459701700476637406960845448094084701437340877679486716956858994406264036882217068990781120774014844791762649699316324347405072012355602071690515084390121075262422436974842408865678850631491599542126057296368629831670306023814851157008106909063816123944685585825445871209172511967992692926208395922689184075103634837228061420392519469860142385170331940174229977389862838075787036630359746408004884924101132329064961507903098242384909335989557905550079660884617343359313487592138426386357282545795003814711621769602334731928615172994882207405942803938703677963688320479642665831575657622026879875439989475284471885622065359774063926752122907053779943524909313002897361904463663838985372745804026079236732125485868622830416516092645395182764723577564000419946913186370472041641315238774388396954812675930126907293604383142198744918479865855338014757558567825809548371416304773024028695801789442161524632445621321131686213267007251010768660556610830723547469943512975655190787526325719441036268964287869977897276372284504895396502218523956494939764218226708881843663496213043975442502619069288357392713420028114725023783918077099053105025187040329142494217436504722330560822712573994776072320913470040986047351859256031196002317987892827802276478676873856595436023835427623367498731896954833305710703939238511852853271199999163265864995011159743288859138993829415533090263942605751565174812910352125690524973500658958650817434535901109899766750789957429669446184142749224889492653721547084848273527208059229023689674402235833349193869982575785439454789682826157715179760378882932679385738196334950425690496263196399739096682139925967815905527448317070029486419549392658538371060463713757710578709342412565161722176157761971976722381748013064444604898130259673026729222339276245566767936368740952676812575932564055986112133538679681160003826448408886377387476553428856479424448987839923258069261462079016067638386075500756907864053467785638423894946899412633450838481942170622383403852829428895013809650338475041685510807713447096115797366928083647453865405976836886008213299533236559955765160032532667445667100755219959091094293616648858766116033554976939827487104669572659214354021406337395395718771326364224820295605668288806925465783153248127012960873973374562963421712445867215694361437368392799705638872658024271446381742477148130514849490045533914042245835189152130077910352005657966254780328945479031482733266367364478043534828473362138396753981768238359371483850870610459984169329993096308875824048600160012032705583737491340175850310074417004057762742921920529236704836236282005069741616541509490084081847765451105445707675444922950571187809035976409197209704737781303395306040671529868075486940258045751220553353987042617098772600076469099255480478605479236674030014014504325071534158556513524133623558421492756431465967601793236640497916308165313468788422273088253895453936345707994325132851467246800326608718834819315515186446519764631371507481829818866060565496463905109457152874720635046117264412299136545598992905611832751762238826880540322230125857908944275257836846038620752265714103160475789415480352187972778198006320333457138476044805075138672684678294921694220895702011893941803318948796681800762024737471878256269701956983028164895325084834303438713603901760799718223454420477627153328967677783798307892369578229729937496299183054601770769691337140944236769634887045263587389009337846421096102843153131821776013112766489705502851415529933983521583605745197377731458977750542235958381706439769421552191442945312653840590119234044700215407371739993549907056023383927765077051064870049710382948710509058920657760391272233184077391546608432067527595728826514751853744636324760547677414799586988059192820506287456317917854815989903058638350313129661416453417030059351128909969782123788722494616654852116393615799258817479797235872338502148848339166269460150517406417729310422156266540915724537009232857084720433413907921819066657758961783709706025867737541685818244824263220215104706884276986281600464745733430832283563085644949873314099183610489375955640943416217270807223897637313164942399398352274975447445976924013701500518017965088758759502122937477390919819828396600864425182192400853499925523486479499543197667333397791357121095140028092846197654756491506946043559036864508024631988464088646336934262441160116540550853139756915981109692138069701210377553035108979637117244833470831246307264638381847945125058319625686800740704097898296902715847157544672335582283789821399441298439017280074088227401974305540719193687012259747302033683827488102317620631434812513663107360460615982390977116463448777148518866279554876774899526676096469861424495967715958565231145470308266534795513034342183972793451092462772810641243720614663431380902987288605769405970429188361338733714470053449246379083764583352380086906527107902851787831440758244763108583561657081181679431677281353117095799761625776226496260832223169504857085124536575678952363558393771360589613578444562925942004855889887804208132976497803379014104362179313966955181462645776725780106790999173690872895487151064527307284961135861441065089691052623149617250748483622129081947262994967540939051450459789795607211199279516887821476706482317760921276040276593451464173245902240461400687601908126490702422543034811570353682142461713601091234354491012509510572979865968770513837506684900787323050021531910053154634740109937783396908019681372942671653959726906873107598873075151524559227088732641932777116715196234821677702056494828638316943964063989501444766230870367752216391241600799830283642857131053216708413110669773714383612066400852767481600439053679739596818461603956459034909920588974223744627855498044488495591672121888932216634381560916376345320283036358075044218245752546157086055707323428919464973418454693256807161666512316509664988435451561050112674619911162173896029302992239423598629943378693270546336154223909583317191829115089485377221561369826710428656134549778935701829335800534798246113009227837046885414790516812466476454020835858855042114967008859235137543658100801093517326480206896018910994561939315722515659067077052662944574400685226746260684822853488928351150909460422472325291344849100362059220747136750045217344029898064745006696995100069028475720911205351022491010587110012368059629405680844960646577501944627368128007677171700488895268958501768502807023656069254304583781671640387875645521146657320690745365949344206480297378615692558879673104553548681862674705806423752813366781103258197071411751661468457497764741071017557852984055689954436824197368020530274607688603823946697460465579948930851051778305402451468022286695962785687032301335359633776828380389615005162994116237813699634878260578785491157046982252975278335521672562196147088778448836534123343273538450121660876024484749287595904089421527063884620307999891281554811827490561567153316413152068447564120268980982761407145930932023960637814486020300145868624225566854909325301773895741856173419091435283752319023061523951072699734969047485701030511405817268296705861683909468818153561535408872361488676126276600618244063443759866149511889246029942060848045737569590983287991796449402904119226619690884367133081670242498586607306838391142899079353763481905633570147197728184777719307827993340451265974991201460180719058611706276742721163641599149391569136374753415553486653326117822659210631714209013109921895052604235822869447142034871442778172759424725937252744855800986991171950629644580405696909099731628020723163649812392006580479001039200568282564337783777440867493650214556930209071421587676819055705188969402546163837706947359623797943378361054922600325439127299295144536812637397188002136313720016871105976025417384605669958857901390550424580794746941637677215470094909880074511839259206198783136622074725817927279149466006814012198158442402261765164997498465395354514529639834497360949262911851535212798678556469835160176196031363506224272381396671673269793219387602926346295898578492710856292198707717329809987749568840836249328720496395958603272033828932283538913591236846031372934329636663085401218644896211653074571863740322523713321719151533961491105829364116493325989861375453280370517945213011307408538984332070010090586397000598802387021280542548433899423664717604122271883430118107351923269929941383062338665082269121557195176490625213807101846412039802101340922075172010603287254782428834345596748100994867304818044389872022555979388404132285881407268756760993667744530785418895538293111364873134124634725752856663790118585847743454017152790276464052478674165753169721023558101262809511852560692463888006387819374381939075964964467231055853621268128896836644975484306286315110085373890594061303838030840762070765161869349711851820139181351549776888375028049512591995171511282057363426008415507744414252821086464379006122323890705067589980700498152064792535290957932811401891996766087341795558572281782772839286923392164204575181664733058535312709452798993286453884644467007183749568083093463484932130790571734645563431798895882252242379727620844287887118266778552829527826227213236091811284768538985179506319347837763240884286411900929797777227765718499389111746217375108627954528657445529231312631954823986220073995059368866104763178783801553009064671271996788743842395837357183428979861812575223257738641318462900660925988929295834779429558340555256152589513095032246972074953482539217811530705518809957601338332185667615812550696036417698720599417739973378307616577432069326155646662814639165903448860697723434065981440710122890816828055965464869747336866992617989484062354301493795165055936270987264284621264025063401545947324624738891607548550213651059861172826334437952940441731271005904451038987632848638599467235733676656715643737254270736606884946874592530346367043121474763865108744354708863450635672370301627388027070201189236432911585456774844619875280052982767689618148666428230392184152870612301275694556844939710220162734161320766939774848582325128080760515709765706098197573727009704916325909268299832516286670264548726346361499317518175770358784399434098291153022388509850386438419580283334085329876148378719840523327378577753247782836854252442755204802011865636967870707487316290928730511482680865871933639673945191364414823945105456041203877209398550070057199394717627518673862330169458870722516144977127187473986978142739296957471340573852576412158751517412402342533551442386597185758077972978099980642863399184898186965098515660923382297567734250040727678041853513791813650640272663806220229186821202458233123977291653568793914561154248333706289899695137029362817535490184324033804323663860998729402320162549185916588078206035488817742321065397756966896833752944985062795354231158608294634975280561954704154445709097255877262653002387495472913173768307380444143399225765905688989150894673989290781519122825226310629938129741553993122805313957223434488327451951279539697505168265367576532257188154783447610992645276780146574316556161595781302321716633078379382445797766478581979954206788646307890834004000172703481966055465637610210811449564140999629053998503006056586064982609735538343673046947454389453220949294276326463387969507121414160414397761222071079055016949314851287266588791484391712348339541581301619439999906138007190075755859724416218477368580719986695349242617237221273454505736170063625255459701179955465008203010021521587833204271660277735735994325108620510991478886610850537960176110112143075068284463810844826254501308704143320109835694435073883459987422506806300054950764706156804028717472845957316916158861533228432758879983341824737189842182439823437159412682526197871811043131623534537336270385504788633848692524004548625268267645923187160206733741517137506226965891500620538057154363024885292056227902838360900084785580813908233725800024025679881786839550250671785706982606697784846916537112442102258438401553766600803486973594017871530624703455888616913338297394076112882212482775644095092168960042125767763432029003670450108321691620749802120158548394148364527309146929842089581413470964972742102132141958731018800961935637428438039417967785201491566404505841323718596842526939079704315526065595774600168437495226548695152331254655993016137185308044538493758328359258710745498015852469933608427338781976160135822465844021201282351934826037707834333276638999144474607919790486844671262054461786253213772102313725153646963205052648800652281031084447030179230428635569822487139489197850200945874308633349933608420056285864802258384871347973107732062067003873196293383007018921941543306434629814862485942568853757552032879319012346181619725253090528031696661852306181892784407397907537686358274469754454493292189752111820641870174293615485649865098504855210242566018999418216287858824252935355655071096446679476548537365548095565317952455088954323751693457550610651322469419628245852543696334088140781815247971933552382318249614097831323061010466984942394562762611917444929997294478256573770575477796439413744479085736333117259562473065000800949594900656488003639000440238873542103270208006104992454489564825030172536482191135227909436326622529387756997189471558330585213052661813732678962193516267069759518691012783391531472732831941861733585971133156292995482522335891745438859413907323034478743841279162480960289846502125069248765778960874642064016256404631078535423367550197197118960487715281099567275628332902165730210589476868749435974138382093219456510527078868328831003246388359602617025539735949361126292770433391687152220173101440142440233771632649715168878118358692626626401313647815843317369572323851097319650239761437585319120592952980910787141513384761779351118396356699192436405425796836132977337140895873351498416265656927564331321326233684081734678061187923799602738255864593584695282171308544252943090591181154033993761876702539142855367488392058329143867767844594941261586864779333065413813321703830782767515855216136263352490864770749019580319477865004163371842195219904190601342790371896684396161317822094910959520253416061114513183513945384878328375758831009509300425911613259464373791851755092614956585781010649147011310160162375564217440339529651976151379158482987296335936220351299098397543995942397082173555824949415278155963399655588741396072941540793380589001696587893488473235653819616983874027726203761468119775510435886543093761488556348243070523600467023598097319940295842562034979411118835803089756361402787904752627420667635853770080627470652285115893908947058197712883375185275966984973909494817054045388953574148532566156983926994040224541081812631164975745432608042732003114257156736165881417248202031124625152325173093694052261701303633180432158659491753157709788620284995514509563932514989177927506015677693276337177888605590756078554262714471937952362916799022539664918957230734088115317569180289151575398673938771536167677204042585137832819260023665780702763115253044853096763663056461316206222348403904393148618691900190964069235764809187275920513925938396786279540750243906526432236085177948374488812510440451115669748373158066188355817387524480781384775096295378295459366256272871226270829825979788735867732362661405208704246215710712323008328312403632489223082754503271365643071294660466660539460003606247682027334373264968637540184412905308321350110909403979662882278581129853092876168242809355213902228314299561557063981194752934975025175340416765825439712243829183767020838156111314327582481315285885919432918021047082500311651742229444238273466389308435439700287221721871090010922040653685277269232080382290240134643969672303447370687819404080893252561975363151352040658631051227939773959969487275441552768017178820166304790822328985244977654495004345702070398465474298348637731389984333467193882372676909485320053316991798479303403410272816576858429550795974621444091344065348435511223415523299978991754167911487940538228092644167534310759370748956426449862652145456792359876952232007184242591888941459713893721507709542706341926256083291589263666295331958059168695892823493542121965547948146432940462894495977162546096825161810321216631696063744768233046960593331407394935599188513350775242118159484964731715370532864821233052280876030458168254230269365820831344032304594250486973318762248068776878544886029071293840889896853722073325984832280597738798802419435998217710576362730137531277173355870978394880028551405786323485648210012912838874172614531817530690654128853257101925523218593720185912619113978610098717505286908697705505860991575946479371471499720380729370073634203020281946196747696658344387253736112566290061664177531953680042523585483490100126963555229681232338072553389706682662902981591078902806162746420260887380062629106754045702073792673657176233752954646878745966933550350464736418528570828967294240508963884381869208995462586319197075823653965310206186927486606962362847463208802460378152651111771261892945538906011412779285745247237727843663864361906096585668621152040073048315364768872396706187183635355939003758128222945357607381489096603183750812992974106440547046326449690284575606921993491882524725498307429669667843932922361429228728611951772637351642541041655895821789550568213185585544330179583911406756801641417377256568421215284322276954419017996325726363197327415812225783678030350143184151357773272673183185413685049087501485974688525386393290593142078792564802895216674776861418829810346917859321075449737077572309691816339421705486558711152463708881778638959345538171424967307538840754749104271336911082048243725746672834125366118917849083104923938729227362394460941523108414789765751418700419398872297767854242387639235288238628947032817953191126330193623861895703793641436158313143802557236819552802739196314082647529989526913241590308480910259817320158320617577518001857691259777620714924818880489606944905335510940681469717284167103467396559581566624493236216464309731618204378962797452273613883771621384508490736169085003776575370119374320501949257392645702106313080592303072088218321030218722408372800599597546544745998356515609502376373124167827872531981354499479375379712349435017751530858411273484580170005937036459616476778944584344174645438480052493625218644698317040417369459547917072688190425762383580668723134199443969921053570110676189436188996553653880184322508711528006014442556298752071136701087240687770565224628408821121290418284636515690474948619542493870594740570421546305870477714942850584835241194116490528506737084533336848921363003780596280260740180302807839876856047506738035422583890079395454390890186767550122940589338034975303959730907867698842527874248194598256350488823749851075166636824594671824880284834727648890598341810137945599331879828052801027132525321016292155479469201243719904867370036851316322173695157386718045810180088255538870216587223474511178473634718812226087895002089276685465596432484617918253647540978257793185487552311401976258229286703061050801042740192812968349080419419234779382753275582588752560943133216540046999555467279640608339762808518935524742868302661762987023295210763228709078033123508955476884456415222478736952974734812606698603109918493946354845079688651301840806393445517072953595345723395768225446818653853080489431562430501733925532155501959724418751604208532949156277466892527334594037326078917096280218465728908118828059497969657361919703917965625580956523975184439037970183883882235144870621865112401536298449069182830831042906014202916663774066777605393170886524113875676788860712746691432516364076136705095355572900672139021592643419497893818556998445022534153009381621464356369139050523664778664509282907325659767690365519614235097578114075644182333540942381556108915483213277550121765796500179646955515423691400626778853430573905975571333136196016312745093836827508216668631681054921681774249492329791236151949608973573181923514259017656941260314273510731362742721031378400812996155913816685911580473982708424845816827259819961500576386809499730778092954263834570143204672079640014999948530951192582582980700817545549757757212258270057050046288312396471386097100052986227898552462724983493081060958568318188233245396836453770926494804627045935147368695067373928111176631298215136414144872212775123649311979019600882459763032380577085581523041365416773386053153471094185263149718948159229827304074767371241956184068886818867262690176223201762752893149495767856500442499124350600692317516540342670786944571793390344876410815441649204180281678362587923639012809219453689456425842104920840740850239397753827799466835218726973091281284233947704592572705041956183650984099109245494035983129465207693802064384813706847252525067991396388139335508322281748141807075145869694154604734630045748133069542875092208055496216856556668384279640190240093623830680937220568073174662934837113315151012889702088823908734676003590651612543792639733009334479731616447770419561824737989887157549218597760201958336665751499748111513973266933842044133952647691005580591372901868194686417295797388596719845262967892852065754834105900356256541813859409991689083166892873600197709685228460529510248267413772527606110670101114487717468295226029766218208812446784189063694311384238893139024015897548557141241853137181017460626365354722086477401999704293782462549519251741013594996741286908146582492186240504755049120349379780743787216057411151535817785667943993316409741081482278847033868754228558075383328990627086997610330223633839233044143136152415846397281489987686695781852698210010050821449498504221352225476781014538726052303389371286407084078489820677547919260631365776934242940661539962682560393745041634984656809033938684017257925040700633142975689228762668994624445855516105420931409275504526438299098852784025743779111586077583449107032454791706667584829865354714042439185382249903914399922783765388752318713965041080424095697822840478945262852624296166930529199052739949507712067419863916467116158255337797487263749194073410545101009434182703054602323516236744069541367533446211842219867091934867505156405780800662964013111122011145104045579326781470514142258600336282022382145641341665102871460404087042363387015702142040890921285054701852888368629386101969005237742537098915432687116870574561676657370276843470340573244287867292487722859015456243480712010468521690640944492013234623996589395962297511149625398397652313545370535018504428595676702044066393437606695794712753281880794069921941223963859924419241282061012559672515055137721772938800309729629056163519969376401066140762030266458981482321835948652884791858240284216409709051094665448623853171141957253451131823694081124292956237390447964213891306947292835878084369270275171079286048487309164232078028775820113357893541491587330129638922692036833609511428831950781418297321756882588883857390874794871923381176118569523174645874631832390705302017331186727990759932982513598618354559215302296859848251347189318736241927482970168920968369575815901364181941642178454572237148128198784257276379141025190319708237699403038548160732036216067957741425492738907461108919538856602762069464205519802400000836430209694944170570953867819552319749386717842864236724271967586780972623477087802530267837175967545115140229933226313046768635306888852180907310681875867075045874734493347897265130573752950823806932932666569864395015559452141494302915167540334837147946274250090179010300402383528304624023464522299790423672281112035006281233231591727721818986007208452691664606470159468145847454803582577969794933788388684958802961824501509605871420861828651531802567049768648782655694353216713169911963280148017297205266374560683330324847507614317017216725593319992675832951515001411989760942229619409632745394664278164274175991154594345414620375136124640701539630315098812833936029770463367782378719908191690908275082378095439529265773446009907317218913662251376646370521842890647327668759622505943815825608559723306047663293831735798879117629244696899687802291957393651420257365006978988829497025475093474702324409592176755202625079514143746208157916726192087422187971316451453452716738981812218858607045419387593014835056737952998327571855188552334033195574973871782822053462555836654616043114737974021720317083664290798073821092019667997184573485690170832870974819087552616851427461412501025647937791169184172334703434605443488446052991181389598132864816425364437545450841441954694944303763645831942539726244066706276966880385646634458907381338712775551536603469567093080451548483314128977703124893759293929786954449380740741965966893387721453716686398732993432416910027567974290769693224514244508216443056347434578950834743417675628401913916172287293353606104301405160981537372082020962650896485096150283587009639534062861086914646986115469769456941859318949130934357098589213414257189417029654712922623014209825655262256009243199188917092065835253299395101007713863522767506610457001936131427145430315894600905910973952466518318744537006782280661852642313551409281255305484624518302838781197525526027961642542250001931458729536414290919612597687110420100757552430903744836172962084504293011812814941032698332764238780428177540629200249854516574835903545143942402175496860848113629713347443635868169903684064812827452912064566154414205613273510701810527516892551973216211704769609089586765329856031328060335861919376401552105248205209658738754751789896954774412267462855310297708946621850225086880423395493905347544660284401583639373045016740185416917061215643381669395299244200639174606662497498390441745183059440124762807243997793570914794461845492204641700419686979735206614244003844546914864015015425020753708349227725551439195650798661251721618355886522887491762993544201582494071614598116046894002930808502023071740116239793336418156636846145906019438752155733819401616490031489943286098203244597098428249960004468150495385841392767908636259204787928366054330255162114834799337965432096409468786771792361313247710553055180509250338171465391427481800986337804023601164850393357828839738792873215969033770588108295925235448991911439235155904012705385871598681239846521427455335377795301805301157539984628964515000194463357345825140499757103828165423399044377753311369898220987294626535546913382762472220472355030122485507175591886736321583962253052631358060799191173584498129025607823599133287470877426184843011460303898792384828916717335348595558354434470020574653523843864351391184988060249269332057096566161507224328662237880937253848600921636077431812586958541846768525842759057784884960163233558766253536540802309094647177227833902315878144840137649216110584441469203968622510200946225162108723063190567927298280552429560016147043824228628950438943754276394599936058465407239919662767304097986125808034811372280589041250723542774144635057721416476227606692296189035283209492116973638937965116614318277563606511028682541030948937681173816224440393904496184823090888059392658224239753777861134918442734004231616571878015474566989564753500625203913036485378950007566210520816372958439935445028160810576746966801449905824137896847762391990362151733746639583504046130713687955569369994815774545453614206617394118404029275657190453390415155908141314053487661181053835939556334671530011061753980760844661647745251679173780339084767369669050948496350787467953484765147505742672779477258264225803157170672076960502367067966765222848565929369973066036692616534007781914296364749351552994683438159967774825711690463536986401964143076430564328505067657652268967630078358475868760323481123653019882255174509308796835484693058733822399194857341030413432047646851813858239210479416538695167968756662837230962842758639254409945774594225338258664588483649990763655350167023642061683086264675700091752682723279198365534972400499548043072420757460752860077848442451404846084544782768284329602816697387254512853920675680210043828912414004316022976022340561805767482155229357550099919969599087696047198738154705380437584716122838924431261093373992686076791464602839509916659699249553973510345078945764821916969066652765184832115980042323866381181380324026368652920855718106448181580486260851183151712879029498066270362407588655263187983192107609531037547208674502880894191336992343345071670017463757848805484444123200763915584648229710873689038475577998853015778276414786249209497931052380048845035533664377324087926445687984026160224502237539048042671620841083698527315343930497960403871041158919511779204157969331332657198496123021639560210358429517643307554358719632133693439729578916027559854905733553006223532487240172425465499652009923591767326981539708707475837131286659322970982929858191621545224642490851924509671898971569455001183704749390616863485095392378202526803936239543323439717068574635958683967687489639722863109394923139929738946464331382564973641403419721839183338423560178271389586597567003798222097690978465022976077802557783292280506327027124859478719434675648267441785078587502813876813664929451320672626048667224871787771628561587800422233491994866029427847462595201958141498248355096476735647926173314322261103244012667989547239903000564182860543513437809614902743011889934316265530253596114629934953288687155934558369162142161895627648895274017195098579461699470405648937322708743984174202620976066558406680395237486522028424653835127913861307986998122353799728482657144476846303024046236057184525580916550198079902143139932525261461963870577589916646248461863918294085734381416723245077040471211623000904528876699261604167580988778253508256029934153933214298816715060724484647958353884018363004516449543503256194103548139816847862830681551811985229584688507715939525056685596891098379538254208246758805348197902859337295405516198552355981485069132900373279806920656667707879237756643704252202491868730157752879195132610821026248082930698717385245844480799870134612693864494442778916349682616873598588676491799812878891134977123807363362245954320737625496489287479628705808489148411851245323980290829840831912010411081570489013927237322186061670612221590475979938390106435902327434990461788154847382569806036622264442593781866295240773072719565426256908008997143311765957963797647740062151661585291939835919668849873896404723471131431874938982784666339488641500675982319322005089227831868697869207454590161766039392413879870092779113631435053382163006248218498094429280637623236750463623570230598979090285650847002140048536482613697911533225991158407215343696117404362344694754568759960928195922209318289446283424486951982766874313161225772335335015770665068415083858087684076996750659707132665289528827866594138675491861491014219743241736170928374623539068119176448852651697796660480607208683314702074948110184015437213770798207827122015564079515984271502199468161931586219403531861215888929898285581582416841289312489383003793563582983897020707669339515525290053811550798752201629528684994938006321201800261904125808615300155666189562772122791022422904479454317211187148354580320011222264623497821837506626492533740517890556619835083055525912828133345762528660860469946166827469756450175572811916322486837776459104140956562268702241019635353629475722599472574876875520429085919590593605688409839576726523433582935589954652681016309842147302156869065615586645690951934778090215963270516445379256460085217945486610307031948312054514731260342918717910416524578051358538237810922813697782528052876478742256153466920380436753848894246191230029763780834429348242698830207803311565790843857329817007953896236226961166585618637981594528424292077025901413676038752659350513673305750308013582868206076890297239055752001078439881724993582248412643772038985016701778089074064174766029187528926871430232248760302564627063138518523080847413000680293920401162642497303903179156219398546876518124027761742989395298179688497382146042621177500757749549061408083209788253242187461021829728937067436611922236382880398868207286999855548165415797022398674320967951893921591892000773167657636181599823570892704998759453969616097326683414524667860494333351710563117026734758916375551103418912620184766548934428878615832626360879045591367318839908214736672631649476160142517303251339939585304635498597497206118641161451679589261250278731916328461632961378883972242980098295089581781917990242325988932594390001086703136654614639295762943633404323055671741812752716553505743051509940904242273998896570629926404447984572328052002115958803057192551068986797936133518752730534136766518896467332180798287405608350514869914005172597414997287849207004389956328113294771626975396867376341422239902466466704418502331545742819601529012762159805811578358158543273064594931187494820306499477817136416690561094233921567192000005274572968632965733969156822080794644453297284937033008949492014233642277575293986178786548441231502574877797759043173487614234772056685828250293191918622191086031002602799955477496198703109478285370167130402688540055070208585836917512646775296807033843530838329708730041812095628108265755473322887942561253737987810570981534107772796949155821270928885490978281405735989500534881445846062557262899562269342198813726972606455791417322397224034971131564818154277987318489426729202699070435599755103172644857939153085650642726672556153505510060285450968038711577138933871171374433744649844723347563883436203990099559488953889615675417784092983297517507660138976382987153474745815218052420291731646599914891616621492031724954263531018163454339551435659610830506488868329918366178832335098077694136317341260272895433683592802540770586446839783103453127210576231225204530252537276569507705427829667215035614412728530782256520352764778771938744799252770445222112337714359247366745216008730062958907218474986630802189160383343508907800934531226661731827406723432057923932912311381718602340438665879001226986920227399751095462861796296755019683486097717303306100128490863241364924039367233104861284291917433561094582122211964176210067339117515722178535900175390877175808849336361126531736983321786919960106879170723413153010511566610367720931216883296739195548211952954766126333993048393176643296128041032360068114970807944199661349005975400090030767701787879812746224719543268676093098040730867998539333424198778536498573514264347295845688991317750336271553742408693835091273023817695455052694852061589203578405724579188535459560547658051564130726939986843667373506288510791707125603306652930204061548213113231265295088449687303660689040632070794375895231908665901235807225940344982227251187300007865677408623566394097514059106715083509672552751244823407747593664434894821829901019955602734733124958297974696049698434938280347899219171735804954549146806858568136244120436015923018540824132638350269063607956286429522902918265931278103341275894629878895593417885480872881466801541260737850197711559535019469880402063627133238678977916152485471966802590652825171445721528124737258337794631485561362302674293998994910281079536322104328495638414649128419446332060443877516015373161434747351697455598826423407447240650515531800061420065766836244986379424334147074378990127900753220493863434632331113447465654422767174766569563803338806061455730051595751100452975703570819583952710019603237720902403868469231996448213421307771793367343223050445259206504025763213678586179249733357988487858418205474810455105614672470612783767175444542153178485791288302840741282405063032443782548170954362365306794190638587988784347117072568476450297607941874671598694866957731837347761068773127254930225618835989566389309071731775529601293409011722423376610357232563426479883128510641355436315931231345437698335234236444303872349909767495172350285827959389908158060509412054517863916403861859256166816088379072620023151276262374771527319404670126670918896322881651197264464583678465753450723818066538166677106580763355934786460223251874502737485915491168133383203012355143607549602586346977390020126574063216341713322158432123043559994641209701775041674596649498449644551734518360798680302042690736233372813137931283818731013095085810319939679517924679412421555501407388612866321380659181722444354320526164625918002763454326608356121833816378347764915510265019783537860387044421703194515732408695135656105346057354077612581612642515100474092226594486379046908662302303380730630717420653141346516875030346283199628819319526807681049983485630931034431629082791115873494938891057072184947281618277876867136850529730814461302621556121700478931639151021695038936575903558601897535846819113202173278021419018388962351490145422067583470978937661209935847077453759895104329367159548797907635102935757891766849867053776955375490831097872657608454685192877405625527210484366536579824003492666677093247141288649133397988936476520045358847126127117972425053741920238987920676045933693455992259088762441314761254998323554541807133616042332427850254835489069800156647502329281207662662749676478900013839691365551595537531547241218470296511759732295772097079954792794828657482877013718803120902501164824183227611170231716805843523323819436303068122186284044212251364136411979829421198658064073143172563991916170307583137909758247953457593117299349021766917755040931600611156061677198957557734422207975421717996819752992798052193427574383794149736795760833823298017633290547595659382108903906434755567737996528432047440729728610114615006697212232673758516290487580390978977243968543606101020571472292482142026026291992844009983261825103233522953177054482811947911439774525715349730445969206407446027595305851108925003207440907114164882990300333159605894004140634107067926787835632722418211017271367503448434447275128907379902957336259721654051814322423256266814939988220068993156272394992387807855853121432119764441972112420707414851898803569730057638470626275515864979063135087922630892132324822022321564396361726372724357696867215338080478938752152041129035822425265693896768796557449245203363243168446026686068777817200439479323304779583292994836919844739865216504080467986111083836004027006165305822932845800246317047307095373904694570944733211286565205046452260454565995847487631310342471326587187487954353512305031106056248795122513512726481164721445885898827447799086572558378502828044233528984946016046770443253280238092597573231960862222000150958107796979397012880484221642844553305594666132192000229273478538468785830354076982131644809183449247162762723632227643849516827980969621772589265922355301945479119448274522744151414141961009216933696841145045834011213982950703542996454353471140078497267842007526993038651646787454386728840049914689566510233810763602311697407146877750384037981115067192368667646293685695016654122330870197842467814572221316933012067724945844988595037710144355065260691432513962252622993486058306762358256251207157786963175916151371921923335072777830991205606117478941481034361444485258205375800364469117373489973408352416284372496177733725530725226709194653538898189711668138158531308910919098296501002228236047907215260732259347811195747960892060658061985270919911981844742875383231206772097811695063821104604812305955602141899643684635488045262513136460917503791223612874201978255596397952565145062694622526829691191808444002335228431026913454511925460824176442841196344190206427182627965049484191574690383948539820371589831136518473230784976898188461587006232350450242549292795214155436390108886341852872877113940158390671123347254528151260732004723357953550950839564033017095698239119086886365155919361501814850546477317562451323371295523387341005313002967340476100947302485436836993743081819328525652940792161586328509694133696904190789723778724992100110820161314876231569598112494190137005176472038770271650230975682280115573345731890012086648408322105313268623673037865799289311268867079286993874441945126664668858250921289657849373887212457889030296798078367072978902320747567299484941161998712213705906820306582143267046494670907162190827336591487853644383955179567635151758199207640021080895260226249705236085702585217899756480838988941375203175251018522249250627732865912835325102992370238878085291240353997047102379082604748314566489592297141055259381750837186749492164970838430775646723878006213899671679649208477565967946136337427618474664297365778771279284395275231312121922520612175089437143415150943987824241052691563964837484158263843711113579123705624895230769777137962091075593303192810198074074588229644296891525788628616899906223102741571001921406015327992677877082225548360477675289477717169961498065159375335707891145644918807465597825122378485288413154406840696411182819972386378913306392670197406639919818402644266503752302482646985935828474936334096510355318753327296597532656434056850885694575691458554506693916647947961249698105758304161160362933674083495073298808828025067503167709310751366465240900785104191537768614138438331814544752734195634816986736193717443790629490422400066658887718578338376933657637883410413083485867167567650202751736142149429245417534503310447168345236039686115915246415799277940436719540916947096126030926183163178098140769615354818265042217472788844172275171246972412229005023573436564701821061732015135862046518768807162240061426960295631316710033150355687413793512728455595295078167176563722508888707090285741364708427001504918807689654947437720870209819894592435992706557152475902350637187275106088216670427547380069189841928691839856341990639903810792604772265328444683962833539728586959847230316348925234312107147318455238607977568468106285395922694495941251786762087418369314022245335256433470519634255422108838967653808194933606656428892553795519642718041560222627195062907261725284593133510998859039598715493477234878885775384360830332430238962784686441348446194826827841930502625203083117819721465470479509436566018182462532832332212299575759316956515126235925221160183632305260780467870975180420688001613486346967027945203470127217136682925796940313652406950903212832100962910084802835708041415037294377702187676389967056247620140059287429909925045543111575305599434953776989598315824642310639891383406228599340813094028024140373727127111956270628277538486834412458683236358344286810065428203514837102320188442108014973385870907384735857960636156235644867704961928100600358076075714618065681576938246897002665642817466517912179252232490261915307914318933677685981424211678198559185494230185523323550310124232142581763402293538965695459005366723552034640277306881124645759241295816505429493514872648737498236329375020523861030913986083832793974555653488920819209318968511298566373318736276214167035961944144796453347501213923069555903450025021225209602250239954033293358500010040404270682413250317520661155241378832697336385983388165333022878359165241715552289798078698106550203289306585103733073750356434532719296571427874761277244712449926753081484857864789263327402780493091039886821954138613150971686870960371491374824003726420169361864564053279312736555873156911982811033734863552820932606126277055445946019147187621716282302820904031288013526360399072659481184724038388194822778669449220882204327901942632756680654800360676310616406347276610276922776750194745145054373299019624563304561476852399535358185301501163497077516632800079279691938475125315480659831564868117962417019835215077093277345008062883252674368167333983216828794504652009203740306167197783039758262521523542741155078655149235991478722198523279241043451404888630494244501878559316191717356959644830575937293454391785046069877379546824495132922709141794956858957652960896245314390332563326357387073976731926719998562347596770405786388154249086243850145380713687388911343910846038759445118646399133387059275577083720129167564281509457936055840877822467133615289456655408519730948485924887300602083734996796259534177625944902318410367672256474157453839475734296747250229368728244527332417445733071560641543930812052073772791615581524663440671345223615701629227995782837640586835646792449050209779288272982906119419970208026145222257720272010841797025676665220929764984584539260791610457371913957583177856051134498632561140227076355041172734513578485517620207107745432971016995293618411145589461184579616646190215567117541994406394297858247596816381812509264013974629480481315489978801021586064146377679481662209005342126372416470177249008162503061738101618548431820795856224479091591585143517472878943013285834873982509409974216807920206558992075894849150571861073028734609724999207539858798859766824382185404359622400859390410088269040914564643745457668066693934003157278485420995491453293814263136449393332823707676950533417379992720375836674454171091054262020514224297262700909381016365251853313724392851775193703525253383406604730652281058240441101518537492333657053847168001530764387976911309120583051676904079457371615017064616827203145040925428664800982946102320722308547461281757607692879722140266448499450296442371525548768061535444932073486218030883762496954905030749170079342394709183366899839347070616058371596959352187036201446786017605440128273317374835614837715356748278649103155419513382492726785716698914640516174466730957156640808199878603454252663251521688801557176426918187697016178277497407394252359080373768019932199406435881783279745136480893083724084196407853913749696811621203149759028305414507234131833804834794000285026808988301239060132389400264691013641932940449591293721418764880067172525075760622881522655964205071750827618754588679444323319726472441615160325168079642228458744464650824597106943023093450418158227670182869612635330271092278766182519432754645799528724379549423750716289838057743593902263861540584913910480813518318653736224123935281850733830092401784293493938106989126299908091797236560657392423639663012514690049597282047841186052559300773899515842544176690028384400635041797508538944805839188879170663636372084990672856294596967697380128788363974843194584575057953193929897479563093718812492241749906240344139842288999721506877946081884697447140750918253929040951668818744586577652035257172224419649023600793483379172287624985324507369602040759948158718300336833056170676123115626105814334161719057795227891872917012180982663355568734139938449702636780588519563587498604101878453044577723683486180587915422517100834110708698674581342368711334608936547360132268106750643161383207866468666612182811121438644158994080925311265935262526243637695700393925735440485821788486588600248681624283733116793680060082561375873988645918560158271352777738567248097100043094963318081615865078032472892129318527735558279246374074988649955489564293189054724902844320515335446939439067126233405692837584741645494009946883037082383474552262878357112323989606458633514919046618122671765781982132688512233014614776793353670314002338307784544497326881066514599966356699344529904262680651068332344924334070823065882927402419782368891657100307582046011711749285070865590164240595019240181106735769626094784158130254307467361706583411634328282314426543274347274742819554468538767184950455764923017232269316446688698531219679820402266335644562987729484255647997027959592260848476737579796942084654079002730069463724510264158121830598338019608262102719990421695223044368633352891687974327008765525789138176315418941922505199247918133806518359863410397589737672753760193771023971125744444105990432117021173534837805212661953018267159554406598737658026503048779540876235757094889404551709139064080240294476846544740416284014785894701878924952757886945059003886880695023151544902330709833513988900384262800593720538242485285585885834225583263257299218318532218888513936867621693026064004197596079434962444220457775910891956554154011667744444996191237463735194671067277028586015949710838360783047200058612305547093077042540865254938780515173324743641204584486889357731618452369283257841977726381374369162480331194210503630796217809244165069607229540656268652158360589352852110514871919598758295067508190530737600041208207231930572740721891441987717195447906389090905797088623152838502556569924963107306100061279651379467393257187399256547908911688987325780763752383586872130466923198908910224770442686816511482505075998864680590814858494307127944232860746972635040855504171183906133845851956696400640146674533878216524171217120386737801887767870960872184499648985870172979530515534118208706804386511419579646985135957215337772075399541589488562820895790589772172373532083215340972686815946594648589150765168418976045410629158366753439925854048004072496445875848198204647068915130021890389050199574604996081942439246974998952167384844731920033550545003659815228144142157242268531489391608072568919141676899156573913168756869768809042051767092282850473009069503006277913152691432566409394259306796894398277799085008744798660022980056592637520896283510774227871679661872257539787593656452287186173329254102675918564365838616366583030004117078843170279610112253389307541796647202953211706899366104511356613611356980669573346615360629645210367466481888652241732496445447719968107536862138291736174188852397617413350387470428559144945418882609294383550309770959987126836997571084885149135522940816948263452267258021499703337809330229388042303686489520373192944488162292786101147230981408728681866810479124968269133058746879058135202316284156556139721910708953607417295465084126046756025421372125414767233830564431884228260384740658864185542575586584051530420337481951992732965682982233563922957538194997353329377761717492373803667105975624062239066238761014301856819018444619172004893315204548834185835288637340427402509307025269507986851286207599350249689189240608864934712186312501327435113698318638100842774808222404359118828572637807237178687353755377262285713816011463061991535319787836012189766801368388685111214874333331914499246533171042081778909129674143207696300440340242226728816969652713370791120574204540021760731047605640226863308192528412669334274604224060769552248864885152135190104978693503160785003954884396677463907270167913682601790909230534684977644182714213667566722589452728108327792598695061531202365814355155380723948749880352715215094725614993192239916762421172960749689949243905082853186843299933792511280252208719688931644351457386250314236713304992816444327632464188882295856092283238736337263676156545324190575680259779807326239991026800803636388914133376320343183346015919223885229373766049131644444341340539972011324868288699547570535417976797883001690980859157370027308451799317317100154648807997743365266352554890575784795712624569885713434058285272968172900172449591667962051389092759084281811860918101535330665249609389036566145112517239587432026690723602325003595040423654871571218070025829741164239098898696215197745750116993694792852565051751709645882635737522897379096561166244586999334204752940089145602925263951860083944494416969374930518256709637157819294830269529986253025442821587897329555384128413383673021658039098799394130783785518156832456358003261073702348530173942100859231723885617293837929066879704433379451321084269351086484174910158449710518517780969094898374944100874589600906144520630230572921793564344820438217240656607281701672333219866149169732461228038684819903377827560119283100212603155370398014744192976512895084096305950252276267492839109266379986518857919339935777294631945022342150410991892407548782502053596352736440326482001090660756008864066195743462707976344071964520036224605242934451385249577943401777648215437506973344226461971682650227230963205438196680382195545716152232751088067288274821047317744116183857871054495818369354584927212157799920637164177545673316447397127890211111149374219906533675237227736409528157174692373820561343100070071526755636191093315671454622323365095246647665286701340235497705387696384756732261402290232975704682146235074180655785528263530184860023733900641633489105182350899194606160725861755572327499299050074419138019945194841094009757271152936545140701709697633004819359038371233306115563938600639656220264450534058069253481590474771014814388318027054180831488073765593320780670940649630104544367711258657201645899704836188213490625429972872318973370353361224718582713463555662285064891954554759099947301083663549972652646260839720487278120688382893532134081337351886831690765647005258143233450085419119656281786054058482724014371077883050722708552563131529752353600225335552392941712898338392554927156918027287546545794763630660117949643654726571816511720303686761690267176929774839794788553764267059852439384728346507823222156186499019671505345549300669479365510212691745336689178055467169421104012325684778132542333303836770199697763476865196421093301369757256216529949663739295373454839578003858861215770167375256380217087001177306223790809188683214190824270974673341068098379997120959823069504050037197386973409384482960798865297866634453259356917313347767083274576327706549630637335372497148792834334143874777618809759616001253098495874174491855662836221563401663220609941378739109810841326899591911332321049465320274649844010499861822920484971367880725694726376142311547435803681866338347204998344463138854909927132223311676877168245557416432828120157228290041826983835122079260819805796259930264188820820123491564102143683330415992657016039612654483148733513189228956001352282999203875747553857953095725327611690842522418886206461340812650156527107296298123421654359533170759312294498821352529992470523045337647625626261160181290626561748186011608988883225343116065168801959112249802880645517700195388810869667573666398597721059724569362444083255779457871640834011423625189666868924143635075246424125441506682423312456137288288507515187498317067736033086487080677057998688532326713978274905607470549869560966838249722675723197553302244232588997936436311923916009582646681277462378019512775201989454256284004195398156926866763085352930145000744248206535080922527248062147039566522813043039892403266941687190199454496808332915490367390989552713587182722719559681059072896525693725038918183440526727181340590111344652538830589053765802414532474042595441256736779175848493492065630538491743643944066801845584670773082448646545432942393973997370904840798074968211035068169097942545204791598881917477998737284505369276224195971402830006835308033944289278782136949288465679956951152538969524314956051624351838287982455954937268279608799910098173832408812798170398209675403137679688479909248275562938037230952878127610984440513047788593463723579303874805848409452936923573052844215046476339563105867893093485044135772512101611191139025954534642524701904985004878046430409597185801331858870474021420225286241911906284312503162974138692341748806916221420770106655618274865353929082920831770415793775111572075057162778791875474830001108918232624135900046026497619636497525377833154629480975035865335102710387347844810713727291832395453554801745859660967893853331512692889411138641613265394475824346627708572184321082235934209721379572984092861718286915791189585853075617130636602745537808610105669084751543953714588818766341949486530236095096631635051933186324516772467779550322499102559433813260668349322741715213130602679911358316479936121327553444930995911268504981544265096140157703757111447349759886315828273939319692225496511792143552361979469335289772302166729794994333463517484067832826742221696122541985797186279629309491702071639899138118615595763541833214261782729513424722673999340789964331092701460770863433248316049038568145990599463630386785484329689801614368407420764699994638182602583520869398279216656759439745901095357830587686834254248267697558666322062410792253356069861787519122161864870752143650973969106076575872037818060402685432045389944047839852487224192090190137112374522269168847303421330955192504264882103931212998422487490612601091309181191957556718466069411733899415780923108543602408039651842704573088151767873176587189825012865972517287003873012060175574673783998131177975869154428487908892236865860693735883741267909493878021899641388931890891312834317684488182059628196348066067653958384054352206512746811873581900893709253883060121733828198581236721591233102315630006051784906895280977103904267150100438175509504935862423073538704485688533202307628359420179627840242876664350570540013125872555914926124793009117759952464230726120969287133409325419967962488925832794638185210298285015175913245990094628488147243889931468075207005421215318402343029044739097397352045039453446569865109156635862873132334886379160541044930247551880163169202478014576245097455183388448857229416977680436811535198694742363767858360280013796444094174191167998340363813364874806143783548108295411422996159109043306147976590999923540862735469399096841069515205319646038041563543036105479683848886410662861726313471620500775111452364201511060770435554809798117930366040395058296361659532435694355685224222208938533519625595534025722224634742131124234863127682604883037628820761897919928634801462557497427259299956029910175051988336160798240969827791428196448326693420321936192307758087157818884653145468131438877861804854058470060734730825635697911150775831206341275758128620778119624400604740854028732009364717250503867644319122062933284865706164194770561348002452901574384088412827149607512398396920627537242120505951571949543206143243734760458301839631914183155168905429956572252570846854745599304392972540221485859366272158118510030589279072972485128679705748025689145020558789261704405312303409311228531509747270320221876922748321783766988706855071494123870025143348583269043977667498843630891875088118490395460286940598114836013085283833023790175280112034387581945261739342176034824248729325423306890738636847194328748074205744645505767741343964945647775601044447689524773971204163758237131140772052614837295375406962346872330835040018169755418027342332336503307777127495013581422144449675457330996349643225028379850259360248994211029353863514827271948414365226653541738922061655645648863411897321183324826889851672732451941136144062415711308604015704024610261039819948377853582340974560196723926738695076683573167312207801827496867776201119054501523713949189747278113957757241289220773935634594484536168791741849546052420520812954301112521979984531913979645624978322712964017982382507495711208804784025416923873931303443728780518412407858582819734961631486927390215896616100022182879909621200491195781901842970212483690982306623058369830679480990312195414213118602737913138013030070431637720038541696312541280723258450887046566035660334083628574146356104947687329035836562032344934395484952387810886129827099619676766497682890475167902861096471392968648717347550720192041044588424665742272494616312825007687267566641207068104817643970497016690627329327526593781591320059194869410574391515552148363690357574388107792392297205866068573775403900921260705917091116457296778312528959926797580201515568282789445680281271036835499146494244158968607216178728943670005493890684085775215939947089798361559244007599284710808565107400001456101221402681959853905059630042373609702617548587942147963492740033316367862217457919163234628858542306250480633297336016614318086543800476112404571634620133698888553838511871910280944813431667485240176746247301725797304675159199037268529167365854545615736639483513517024909040670094257234226606046439332248432223417558281770751252267452259557731192825351043754404314797664494086809541002015813236951929250711348114395131889249751176012435252118326947095157155400115620083601283264883761301876377789130424293432363545078671909230899461036224674024324742510527668014606052195101233920726879858807272776121212602513331894474619724488231373732311718862044671162958094656897047168388327688810249137396997531016118219015744168656557818480896493441751434721086817292575517906784597464767588130189563631369483702105621230389577778460960052675496852256491883843547462471773647178952478294807475000422626301509875133453657415830941988143939221699120662849595367367227496210838806737153227979403119299339890029211752354814740715886634638409676666671350555302735011237919187202585414872880556791820586720892465698253015344119185116128112008326198740615862721707891008861495142137147736080222190031417923016214611952636870281082469314438671955371179478814230196916173874232093960362213976649150157955718650744493430676259609986311670211399683794561231911479271048676099144333804959751969178138434470075165572439841792230512570953433668943807474501747803479706336425214245082832455708118155068078585548823282938628461094285175045248969564289643948263184700203474860504320500459818238742916535457492113020449648693449167277176907698753053108822943150809707115800700165326112198964492591624453658010312815006265256152747798535754043594066716982722005810475003057982035753290986626652478349223269431961520848804998211864995579495098781871316326070536352264780954381323188116597211607920587745189478849744101243656507394097791470076361282427909941380223205890400609244988961069944294889490897526164152170570142268058570913872956996277781827850164917962659393567987789492332572432815417148156002821010879686914229382966469293158578225955436545074767570614117199326458731794762406930441766215627093063644981084295581242463947265801782088966543839489092043385515810400974736232093729579408066809277651413403277372409160895803849588330098819882768741660198823769333454055230818037222935225746485539316426315821358769302341898781179246079651064543490303962067727079053110408199077943649417497689487371286934025198862918004410623124312153639710852284761420382689924259786505275517961451588230809075891555983073549346941241999592556613305304213957768327226203589518440789407050525050803286953759715304676554771919014204360446851498126387706992894682208314975451496818609265699115804133870094939020358172737237544412948708244867712173063150181934472194281749598933831476723056385524821532904388161712841387883710230237035205727571400043482913749922984707381429794343354118408984158561599693354213436353961279647409234119783109423812719038658204733005283967853159473200866103845941991609432490189225971939028674683161142387206253044045556026824417312583516932009455792141244821373377055544061807610706551332739560427090435257266137688796391780754265324093522709411246178122387845302688236647775654464509493665313218006701500016839738752444351681749614329439280643333607207692848661150150750233093550067201773916303435054561287859473804532789731545414267842551192078131918081772099930581928956740647482211537463229125010139326555459687693826217107704074956364160642800214200136927032754189291916659300210256004534342825591991585894904941958762756010762035548942504693733771459589193948239557496982664393938995500143559450363283255202100023266658157451470860548176578236636653124164988576637812102573976123889921770865737635694921165391801913334833169564032699718430499801016969666555496468267497077164281306536736776162132161435024779851374510403500761635030597357154289149428977065603949245137823956849774645739283965002143337593536078025038297529188349809158267228661669272559830802348372524444897452722217954406049856824750909008699206233446299399540333226411833354987073957687589186253968862895239749590755160214516455878685039102436533059103861903585687172092813237957886595543991290140462922570675446228886434794782514318096161310163621223267908595566280009787694449759865914350533774298543301058346774048166663640784114438058874024991640678525482881726826953329247009180782963084447274638758743507155527182440341186007359752157641801341198312742094622885661813751537905938566819794698291376697594754540022313515736470000367128468320008761910091518111433106669229741685624765403622447030959177577079375529544796356901292702014098659502844183301178710369611081709059811242922111815089138208554252858066300429266845583109357827163402863676610123119605606486054992753613424889066631704576496327080470116771304957545877419733575967386488833398874131562858864939674239453046870692973178857439295148605775772578975098061757608014431150041977845491064794982636526415904065715326984413583554653008228705204160847686571269324668814829638660043403172514821342075605074749962828427581860030381132555527741289917929042348919334232314884859051389999165411462772224037372052102475180561859899613899618919434887154718499793937075373798681969504684965858194327207492236490897678414592127829621127198751447383087392192405526878008320688850456337353790736113580806161657176321220419190777953791241435107237331162660869909752817519836135621613401072138390128497155046140131378611764107501303816434658695993348766817045921122353603644663266644103316727288896651722874616307148705947277770215981779043907049071402757769742529547122917150011662499849409772457736082965722087884020642658287576085753462969088017336570423295659831887594153731908025452813053975956549197197687875644467671445983619432044203459618091112931808922869305784148363557676769831162271254102807841558821212875890185130422239631739708340569500365614088595313599647681013887311574451977426760700659038615807483607595110853123179391711345772433190032097524981593911243175036185197265164970007617723908426562350531335579783128615429230359525340920080613228050817459235701529518331588393475021930553209002417044180077324002629944890762137883023981595084238276382310125432312986520085726081907360047177349706704303862436570765754382232168998567999497533755373748091610869343641437433745083731386157848950666066963391962127972306843283276122213009792850537444248420597543795050748218873909346994670837362334005975380951486327379647608412901312800633255230339206138933065235461088556550724060757698934003667260691432556669125080457279463097364912589236341896857828993517281887764961216786808658902066892695051063219767219620971622161309539799362978487118941368233743540436725334581642360830268695883760913280190867979026559529053578564463050683174613029101001063480131837410453556069787655317003508683482482934151299931509872008952328548479628573049871154977907218656417770931533066633494850840408119885261580021156345824078893229975027643665860626039645404958657721375027313030209844862829319273964729890402649229205490884567931449462401854673290028331689711521940655545430165675754637370956004309967188840968651560413482996376906281950719962519710548693968223499414044241431981222865343904448468287027440812459024964876554265484154408870033019025335187388168752241759834484763194354437167317722934385602346956756642984440345031551657532786479254408965996762451145721125468552227193867400606770246766950050846734711963628123621649854408839965946807694135369184095179306413698217758319066692332804279058587483022348473308974919304332219181915537624193184047583150924836027795127437102302221725900291075061122360936946931880205367880370682842449990193605933342026373139357996460173602990358202205640618860713248780821190341075972457938908780065196879632078604549763517148236341228151241130504319726995307713935454697824292653806594127343833629797295318578516288565858484653835406737216744385541651378003637368797788392096204629975775882989310202127014512037023686521157426391826936574065459133276658152344871701905198249959623685287303947144234459042951616135165665943273917640610933618023432557945364668749323766079038135684915130883133188458621758087809548975364060056516964651999942821734741899018936024001008979835010236798193296546240758661723808123626684449478968997751811190875900126717243815457060274854221838865597767917253382816295320901974810879886352453585767162350809879865704307696883135497889742794000520053263319488459696910182434180986964348399513943131096493974058644219505126815020735224261576642292507583386508102125348238455222045155376949623187425111529732076549386609817029972045224833088679177805369155417978864787018232778798775292789203261689692624341743559967601861058092364892684159009781568114473001481696022608827171664440114073619837029736807944973940485464739554512438434985559619869139463398827261585577919664828515448111436596631443695645488908357571310434225587763046861979502011576978572235087255479208447461415521037618850457222867717557089832315036612632473793736277477904520104218795164265987697058278203802489598655048848895468243433756452403594114266115801453634678005578466131740243440092976010869730760414803649467832157195273179218138640633787665816423206174752724901367752420576281052194176286685047293858166903620725999135375951930139282719051809939223070118179828772248307792454461926213730594052855443876346524833402189224541386534668478750566210808151180425568142937760407172745603299296144971023866783658443912590988499405060171757591435105040142614934325423456323147377702894590352981323098797336637280374886332022252018255625034155050251729878671450313498007806400396397091161145046253665564702386375405031106158537666883434830671782566777778535379186630479344189609427843969772544555016051871952474403883871911971009852495762387011806806940508070023753604229788547227625239952169476373221096327178603525597753775989109261537215086367615733189981226718265999903386501585361428044350094464435471849409316537507992014329443153770405803627683307182191087764473679857642253104538505517565312176782104017188436772373045152863935699948966975629727776699734472868676464783930367319052892252793322134092475028473921758506891007213833198178732711563834444876200540672101127179645583512535454288038078681792128785071009672896653512378654665251965846128807291365069930977664676284338039691620001839277399846318818189977889674135189835952819383469828969756085006488138257396677586611506316211411911660971561804351494833194656646675997502606941865396222905552748604348212938135373762812451721701668380440198240422007902915322297415862303896433889930618961983537064203114292160783695953217099074849149298333998169042988972216859384345479222773367488836983233489650428391872100808667792023240682607303631787793301310273796354273210086962746418216611756021897413266977821288141125341456778390494217599857028424359342306790263474590554158715925123018782739978863789496508873192081921096032189166940021885049344385083531566717778844787741502345457311941426838234385002766713112967695039330241410148460367465970773697559547115053200760258569883100466368926810273057329430735852284899215080224312314306979537178008925191416764206340722925816149709552580690411347608005825165639193167491103435693394505516448694678641034704113711216523208380450970199488241434455716870751526763085403940019759745630623036658091185861163778719585760116154939745015143366493533653348088867535675254420179715172431577897517540805372366502084565847490487422942929896345133193278074781897324857424281813381768507070065355760169230480480203283822459628443715674862147926109709845679216911951548570509015362255013567520089181539634985196889739639308044928075980525531852762341549170424715663186157743560262415494520105826857595345886849927288899183436231846543979982316040291366392444712643928960668259757035068720169671177763373167804241100234883307394440123596335165716033576559035288521725750011258165251149818973755819791786030245966432505738106899513617390529554843554861264373080025941620165337886480207983494507039558437647322427493582435659290865477210743643593273364138314143761760218966734502865491266062404973008834083651616853646311297484415077053459920752859698173660568919541474214457239927786991209897940903856840880543899514904824512427421231715728286518899387584764183255367395714872774826045338962773184322431016643847055421994296061981317717367454020113117174838066503620560182062229614630685224031074098914036786685036319368953715145896452796151525580705357080450107587215109257072255693015917367131729758148764468268528084652310175566455812649152568503457767971976073612973325420190819817592326778969895207597946775077392101869577348179247318964439607262774167847816383485935195989720244161390971043095766032615546632276519973802113607304916995891361465871513420054597962964081667157530839718325242017151809771436494713826450630284084111838410597602372825588595115014003410997052244157515032408817346091191907939409517108106364586255025196299063547541302111734212728967618683110261855675211724289106157524758187148637765724951587015334790983449115912492593936901089748560922794912200229357487279566565473690453470625482849323886707218714398591738790686253513139233732921682472225252298848719807125760571873262793361681650125878821999875790967412299390819634421709207428880488751548820024720896820838286536142764105659142624364616353370296903883705265699050014540490365550403808478103311836579979828305967725755716898529549000417435204428118919659175293126204506001417949573549185731337216359674874084288650732289776292539549960903875674228139072741607511348972145875275810755069738283940497098632941919416817671818081210238224791740696561795077152219996883297507996246358154270363349025109242130875932146617031932520108025970563356541510394130038226894601033230908839160217711031045522662219337950818148314270948944524394896482010025671563705642483843991739274640459587363793790080973982136520466272537520277650781878350954221244008923445348688314681560418422011592044714322510708079248409615564002481972880263755272996558040742622858743380911853213928916882547885428217594161506091472502504317771894630898275311298881608561089773342845831735382043568602946426964442903000544231031824931241349558308757108963830583697070960527941323321108475859218131326949851255280522573834035432856026743463746077234489464307446216124228415648785129263456995897581708356653778164296025658723021678836118816880922205967954950247767835500351077366372127036054760094977410203137222154963980945392261485081012747847142790480409017541362614626202247614065513502613220204529977150258691125371666160581945678809260746241399225186583480728424544557243171854277538070390534535232135465137728392723799251247129985392747828302542959949470503705693470443985398001089269123767381352827035790893648299033823548317994247849533462391334538876385919468021081914891202619169791577226380993723386076008888839368792592902642423312675767910250666479206586254419921838744555362361858726427799774969990816514820380784505677687911808309166275032873801098911875554591709344128700445676262414017650511206975776250380967587200128239469620393097960971843274864217136788107900831878932178214992017906594238175076956495313786613465129920707471657492825834007737024314600301204477456143397625422451947824599921722528955784086040052905277294745962789483410656089944513044011964102189561963613473043702440004963175337989558833785651075506448410597349120720054019558967513520039181638122912958844186982125287002669579887637004163730802711136910941738071893704579262264657246588390762406971100659629341749769475235843881231748198782754456573415339777992887808171557849437114642617793115587203638084602194709869830943436229220924571518865403180401920802169264607480369214418507444759476350447811847396932550619632377660302128182374687440378811580254872515209710720754650027674897174161811480014027296831301673982148502659261230588565299321787497650483321864253615997936534021008663959386409717101334607394275853970550082387927315708236670941777268305937078140646823054555810674532152178841515435961654221839368799261364202701188652324892895758902764529777613090934071896380797166576424773397134437517124068749863557187487001953617613545831608623791844370148762883021144117657755386124259245595004118525071754741904582269427770631879249085904369107986091028627649192204531243074197865116156956943244746817385276413247753681694790594335384600033478438365456513807508256767334664070066823842782152988922557032738511105077428383295721052408529837750084321242336639098690694306771090264609316177009287756818266925214667067439206329403918188300777586855504454515586065454472132588954767582268097841834601990774184663472774661429446293724548735000274044990398492313120596671786531809292726027979136867847134657831519446564389509666970677565144604787942892183989992104566480128120931575183429006082050530622895390729129560474111834252359307528529748832105644744185363796593961826419885375466996709336068400030134028902085107746691378076457251815010544442838434668817128576771983264504759426457352274375962391927757669612124032775001042841544523276760107574823663984511637119497015160983901572482494622303972209255341812896344229956709402690420896274998459071697843016415330613947422659089841713425385488814064883564377127081079344335307606079634575137772877351601002708786453881035086410522633509402132594046460595167347808779703454540070972221627847160393805433816317220828714888101515302398033075241082739386448091792746534913816194997336669494267908771490522075413379511899017503836608581061384762296297220788741528306547040427232487677295528589827583745086941330048891789074716678311921783926806636960082649831884048645185182391986110864596530048010719636030318262584616207943722718600247068301176131955964055138727488243452443506931758784096686669991195804121795807336534647464390748893379506631853350182473413688217887226411874547412048415861825798280875473855552234520529369839920170420043386933917951837023089039033000709616402138987551325283401897797628604848431296587975396382578071223283083083632480491765935872899464475727658847823152012058604003356220197434843787061139435750096847896255031951759071321619717158608769070488316268009047524694349992300225872968018174473173514100273062848109397660335516854338184281232142256115850688495996880990563131487669088661089292513130014255382369453499235259295125409840976424826268248436414972003027785918845375956117703731930538704234455816489655815843910067209261083060508088232017879683787395163971018162780578387922356512606547557103908715767048227109253372252479130644135886411674038631384606729802714337833048116140845049623025658557132419550211484077342178022325202839511679333448523754320859226867077281253394455275695532946669164651521568172449861409565570245192031626925609749984263774905761547510700392605753112422802494033118806418125150143015739940901171226101339007535010940956965457096266742328943719644978292989534144208182757136465628985658349416715256132724274174130675617829541914852693161166564174571593182181159681114626986666848905645319611873491486014321374794394075441865757727856474908663753688263412537183104949203246617272923738007251905970447981391406431629865205680087024828856593753082986006052189732546726496373920119432873604011264592368823241506676547656764344947270112905262781960102464227677807296578712614741627603837307633297159252735246370160941315946600604889179207352990757676236650556570607562449798556965047144741661421288135909779869968199044744725048031615671474157425235197587037952177505316087524930748847975106624597929749015653153224422561603343573468773405291640677465260071150799231119760372026599311079084577719917363431325397348236249381493835099007429346924264022722293131754613527233446377512655446184526821271630022053551429617187289250515298836914743972714446070900054181646543017672918883213680267475539170645479321732093834111401956638658275372368096846698582247741765920188173842206726426240726427792084465546858387205422690590576691031342687805941100606225662178380327763089602415540969267363993671531331706429372862561273240300315854144389943828080564983810812979518309749329912762407530397111424306189017656424248107514302368062029027469749203330488670986511664273317521612525198861617002863251799996537936614160455843340079623516285312865483327665575007790848296678941866980717496120017452329608366622891843469413433357196245113924641653088441345921354240397677038514849048873045899908324259449384507840541478548657768488329249671530885881282096717556704055170402812639599619535726253638825758888903698321537534110075474397813119902007731263261955178857995069646453686745006180999148077274719447227130402293190608743900273192899989885179897684267264155147942087889878537167610197907619300931569809585387649905407330840779415069010259433012819537209049138470199176325710210830003683307992148172034106006053264095881780877454577929308027275449398862594752295757755931559326546242291758181541174594433910868351012322844496205573802974605829659896435597858935475771580121750079562511290337099198020193775330321373758981490624258370368156914592734895435578707088025724418233232123248236156537829025339705170194972619654644030872873108253115415144989757695348998086091453536299238146183641532322020151064600510731432099919591020048128894189829728688009590216315353496216477787208453575524895466258505165636757691953064929574247392887267531953135937836900068646708469622392010948737650084043482929280929050861652726145712684278116599994743484669144187120360837131440954420803478931959721097089410129745929206624321492754829825582746426144130944114170055796746209370446498190873663870942056107424738341114096474175660985182280588909045298614030631395158536062220774419868249481938863192800170296129939486738762545506936356848131550510706666664710812232045047617923184639119796052483969928140159268560027363462408126673922580845727773747632008765808463250358950501321309794830989976193855344072242983701518617066681068355849791777134235876516911205152522914803952491538525344630360355587925652293921759771396082434941319654105420929319895668786824570571417918966820431974844226689143293318036863920048940952172379600504873713535258507928813686390447901217947381101277794235340066171070533460286109602820775884901724659893643643542514511772591400211907733163351882671077170787295971322882658872876959195953395791036485982030985044041306037576302834763198677593306181812423227528402181348201203995750836753676567554881914406866462751974231179520623402047625245091254507861393479006500779519744656299529357533451974796896432709307117937479438306970620346917423282880965268381237675486010911426433825015437935323949473281509966178156545885637026461943193052485789559678986109689743916976434153837310362636823406489413999192616540157140177421329927302760451008614024370495018582526847474027835344119070176281452284273885422477660557449648749950133174408134102315495182133079517854421456857166168012149728309933883098794969795598508930506418118077607672197479707173924184998243660587310241890939367332952560151389393106824091937799568969705564346792495246544597832912987335235036852865917348843568428126782146063405636387668012451844951223429042200274862098751981332586019465622054306465552101844861812357544574758120512836904935283507116308586378520014665502345330805406303750753459319647645048236733066413848929702186775663163388160131863294230386776920309431004024680853960123387591496135142406300590387868572000795145476786871082208174093132015860151959580902620064753948681422386850028244746688970324720193044343774270597600862087143283984232959313574215058296281575080070351998875840567176244792699930277296406892816737356026505178045271116363035101989879407841045765469081291040621080173466843137391418226186659205653043209968113640424975145418791148524061184165856056363656436155296071712756737344879043795467994619321813044078759368136922398681957790384404677422177817924071040924344080513509518244865067449344231820196199099069528857159308058275498885171848739413026878830711188509666508215527216409764112259423435640677866070233971121757343524788007303962709083986373820572005884881374956299112633936144075311920538142215829184292171963552985515190470432797524067920315542249475546465165399178301312279606658666575379434537632211923309023474821014922410614852865449966442575444524963834271469768323038734980540560668331021131277311107163659115706344914322406108512262831797088871033241454170318457069918904877010390315743750410629843364632137217688389835880808811437425151666417589573716357883107574450707898118136961580069027395945276833005912624638094400423418614999637602159892458546590476155726839634973803655884125682677899339406180205655219012859894170787168050782729644443688905354701170797051370767466645655987037501584255869542418286605699931831547183036790178904188411717723376501394796741931711376041134507849838286627058655872318102931144069551774373417509023830832998011119730764978974023214055912004273703881641483532391779164988749850269051808238167796245172989992396115161653012746501955884282548266480767302891973537303975113041412815908402151188305100821410461955988486365931948971447995570226213295358634616538860281006090294112882714921256050962522379211646445897404058377112538153721451457135118252074552059335974264787920403239839289813090732988606883504342841045114935543401963284701641172879014803884106236760733172800844488753786023811171724834843835589819885686301813308172856159112492186584066776763673170811222257591197021543129241657392078756278308715942424098997675607844795506399668752041222108254713794701746769666708285063894979408371043657771971700500448799306150485898550558092512072828839259385601580338616219455762238220842455964796989346705384913321908023405678870414652601740629418552187352152694950771551063551856232302369190256810351360853015384425362925301489618186412504330250274790744739073410277226499269515263834691812604273925839896156427363341372667810466851300436598965262402504933142558320092833188376567823086050384771431919590748534982110110445186693452293459267133482748643903990446667482259824718520849179145797403310604346340144895728144715165467757931521194857907206956686329786426566638910692075372751159985650556224579448231313211783641404776360657198909555790032299684353940793608225612855455229391922342760111348421789164384953260202291828359230574138204214440588017066009369029496815877900909561624384833156904982438216672343363346482064632388653761940860588479415510044450843253299128421343954400993454722726218994486371793564737981733955167169075979480424589185811805154894658772942120016936479437577474029298530106589506155771265153336462177194454020439373594043036139350230353570470553638094274089171418205055221921148396085075973400156392600541130658981112647137860548550541804661721240828439160347531006101775566913100669875832394860520032200012010696822598692503922782898091568707393133254166793608324077641092438936225523186050394142796495524039540903444380488273354993331425450204838380457256493909152197631667858657738709778303394366531615911661619343017861234355512390409309364019734679040979554640954842062806204053085787617127431281494187453283302856985878643992831238138298735930447036942471789384130330919661546593773152752612782387018557650683810078619388682387428872377876653116659141624823130489118651142058356813052287733680451218837696792485239651783952503959530111629444280854282746129346488205864248872416206675051410770489649890332378335467811940085843980217965955765295648215060650385788446690022609557020248941329492712073858612954308601829731618402333591216672744789448406620633364757269709201214796959354706084372311958515900127844981880042679929164333952836500925005993194104096693722712877650668104685669782761257714296705501794626531265943424753321037301075797765354979120217905802969674588914079686102742021460494291088069190930768603231111074784909568690495144798499615321780991554500598996645432052605821538288955164485077962395536783146051547659007084839737924612504529561195219429951297501181976560449229059520767847364794698395374006214351771546133165026977791470946068049598599387776038769856234933102496114226948226664234834338082026405746577450986152512726101980937201111579127741319086546279156769726428728564677099132565583850104046658471731230249387931435360275055258725968766657406847127396674162651158097713815602809690492241807743230503133834758511185965224951186113716693068168471692361834574617129783139088093054637207983965689130838712822902952486540136360510709637280041487368371114873304386447837012689846942016564436618910570901691452320296920106816310381229380538053506204136947680014369215462586614179620993542228954654551641581452809862190518177713160342718996450504520753126083500536649807109463945437477342687528235509162044576075559707131790669723755521744657600992305755098157003440428775355918229929826834407955170558298936615893421879359147587070515990569679239569033796795489220483766431825820618766426158950480150294762139040627883914147109348497830179482706109119704686759400415971412236665859105852299159320765119109367374122317943812649352547119590976719303276004469016711167187283670196844422976123579592226356979634006267739771253864213279357033286430067087088748467841096438599570727580209997980187559951154597705990970234125699480765764988767427132984891062340289015569989906769514191229424223818787583911709354860784488809484761997457563858713672022247110908347947825756024845370725284638311036505770023334898932289045714329655722036949389714871594995853934053736483622682076844061141683415772201719213498697825451147403321916903450891816055752595540231282809004654356006710009566770063858267136091024796199648555839469690085736548671617907781618517217712688093357721022068191769653128799594987908850780579543223117594097059350612967822769578035039780398455804705802466445588481295978905411930882159268641399653169264512017724359432361050574550801648096598610453913140238367752086846399786468473909488235779572171852142110301138032122210307354279353566409370962073112929967826919877211130693130233732453083821314061329361333268166198434318454178062370584380616023569496251875119082248899521893039824076401962701374122071876212318689748586513322740766554384261078503347254899848524837361491631295759783746388176697994676622727929715937192472464208534075389498665527552515435443499486722483464779591987836676978514522175503016204737337498177327586937444715187153123538152794133946915595513653158247907065775977820809456419166331443826302341496800179758227389925976113714375547219144400428648442205907220385944829425259545385462505088248587239068106437799682453985452449929380687043244493920992586421688296905213600889697198780555288781118524788219526766553610898695236005359125224717050030638568563608938366598500115897132866609770774569072715901466435321845981297664134051740624615354372864567379812310745438390250293207292582512892242436655879668558003710777399952314877534356200214478418501279927509288432165914840023723155341588729841193114221159159007090803818698160598539443196645997881121755944544887730265736321368191978570272354350397191227166637882337481235286368296392195901898172924632969968840236423223324057580788680829918990764136828864084849017291586137317873473134190515229967196607891812518058382675825467342372216851000194952968414610199059100000938372772556957514109304579158371849018730136890554647813826367374715935019290703526396672773349428163017389420036272701794367814016353268859066093455973748568740457781944179591236853993819608145036932244655348756296004745730195676602360836870790682120143752576655185083418799764714577745279026886693906855890444616845453741235247536154037728040083069517026192005042407240665984314448595953264078107280783628858669163860378797510484244820076688188038860630214084359234710962093916351210114514485644961915965215344023186667986683834129862109189619281459419564597011183491574513932504348646415398836715513668815837752620479266765225523006066219480904404622157448620507251537240175055498066336257350486414814976823864507614592199764548588991789466942241088934953825903456103477418506682430204765281751697718334696930257458567606464965913302091657007317593404443930262331197883368502841701795482493153873414224086819698093554490146766244913319492115250225613924740467538338502209376322246545944977588229919649519093319070991815515065725131041433356938388963034081200469973471271646808122243824997720824815176800457278153081054741567133609039912171497128624052772410652801727936728224026223144501185293703137814216283882750344880733382826688191548840003728284062213959510759299867818815708165480730623772173592753373083373715575454280365715354149563875362309964497613392769792220084313500332960828231509855494871453953548791276420522781272274433715475292642020989787998874373919733844442469999558007063646482071303109662446145413640806728249086423251001105195537338806120126800972238582480578685002912112937590257235051535352634987900198882572745196942244530248302227052660136106430517958866141608346745633482389520390417229407886106741530493517467025124158639438291452448155808897596163942304052259788995081021330273054411968565502082500524055853571950423988021172311149127993782882438789456948660879400098763615657879522808131437034590731277385579726867362408194481116327200714452389945399663590504299294216193356006883574462956301962631722473825516311856868151905361316646629174859291136729489391511391725045749492934054291731376004899368702883637439124364101130766555039421480783645962610697366466256262976363904220639897971739874263024327782673008953843344559044012025110750968889515174792384067202768349446569999915346609046655608575842250669154315955729219570602691825001112019806600674309629694171919663058143134219052071013472171284874516259264979705619657998691379612250029513765838532114354288303795045900832158463895099210260565471694960253115322731866968842322295596541250539212786912412028598160926454645274545243460723974314446070618613898841104859718192659205223857049256979275706913162915633558456410957913474382669187868488691124657567704371528445830431945724041673434239431848154013487149412595301822361437085530048859316860530296343424226351487129644548937537030545014852773789989834371385353525878496998995944856139088904712051914078273252597705281613206277527536283364826284500431821501514440193272024405619522822359144901050216083721058586484508073461943774705717376787747117783776080201940736029316597897177234174400998988103472412338530159367829019972572029970874949875896146264241295670926149224725012486858599259204716797919333013412028307539614296521866790787371992813243736978786874186179834151669850091470839109663418460044959573778396332869479782499646104834772561138672596529901969201900426026081972977897699444046566362441080613190314023481873160348324117429335246225109183585160298891306417142747605691565846185575269161147851089349351237788396731918263957273843248623557746819708621337614264878633891682940207560012742115078233263594759272621903254806192134148442953269882029102351130183327433966122692835367381220828576522307559289667330669595183013292269055605129274391089075283442134695075915880907503846980746680997763171565873873584206798833208168682794891157895243727600993554834665319752939868800131317247614855945716353287467124598677736481247623981462362733117493870041235684682718663194394948263521633343461960356712451973099034381565943042125640413666253320855368728456403392274947003157948840381045945487489315501295839177383724035881531479445997731498808525635454459580448209436001016325259792155506797395988070312561364990147546775118853018353778894636504436933089607627917729048868222482479184415216597812136096408685580634194695303703839813630943755905080531578084673509143696677686911802736538271948002502617808866184277056598055594788450408650039405080107565299056459494692385890917915292742197365006492774936516345788031303219083275316229148973723641130109720927165469118926741855041801657464723092131644372770975286736093413587189011365346892978230796983611471677558947715791524434983891715370333323085175375062936398978079353232545782493357580241838563737235211683686147260159810629023984542418956165184121958672695250138571326240809793115949568757097431108291472685583669024733063369217031342144441072563581567495331290598512777604458439692091640090633017973443945916866490175384786032698034100242942688551834655579826189866478365038690850427720651048141524839573987261447209830932989739213222359336827302244887771010003842204610422384476258579462777399098614113312897036212069745320587829936457588186277552240161337484652857673297709533258096597807221667327753892973418103741584893166907151567573945345659306153980929843717737293021510181368174381187133613011477407749456983981600576072639842211792522860358536331510952013280890566974271089448741235210525280354002482212787445382313465265066499904793048431622083713499078564776650086007154423273885582196119934217223248345972330893330435515407075356316586400200025916726243727895121104355180057896137463380131437910674990362621504577792567531092004023736372320982555352622995904202569412043008899471096689372986917219831463038016996374649686999591164050835038350722436855378668778375037011729993991513858793310086062657488602002349512959772603800870082938473271726446323281994290661952414028133648342548294188991563459730261297387271215375969490643479639981441624369710911108974249300965424801585050633855062855152357652283231109391730268859642979979171926519404958908420270363894082811891881852580481212886925457019211557764674231492308363883152886789885349388120473530622719584382172318328413666271339836708617999460470669677189918671574460867676821838548471917790524907777672342392116636148901939299837482070562525854641295408162860133528013880561112308642582788949999690839876575393483070517058608219168468898366660950143266076590468793528709836998816402580193277767117282589481950487313745427225816492560595978419156344236648840562808078882388180210764498364127356460066845118327038225316224337510391906120804917081601229996367372107669385377551984266147807831125725949262366507398432639989540622494590377908349285624068408358919042542244317286448088139867989850048267853446433430836544884396198977537587444264905947715938591637588965843356812731427668633207999401201809132967907106475964872034299372194339793141239315271175191346277013071203626179685846673112485256256188437546068366165902501655516986232229667258927505772098123671991341471544342866433998320627292764814755699526689871449499095716643690222843052060065256833808509846546110523157439519479379968401037434076890029855242268726655624137777920492582578645547935272550528165059101101895804343682912594519776901804719883385286942806140939513261218123413731878120616101962848291592776602773941945788647624961719274186434982628185725172451264854833037173254662252148729762995086339470422445515527721414755094020833592210444043807735302154128342494456732902645409326526832587834030634669904248109438202060824793272272046176756609208352343486812274871422982753383650482386406260112108992403136133901068003491619569278865243021255337533478339136837150898538735776392180671047945764706414259367313442477873576840514613612908133176016752535611440411073204088306526027795064983809698657374070885051417734411317403944832907758612407749625578304228731102347607765328323737036172733444702165588839611556743610099611434919893599894350167091160198092059950287192276147342341508069754817878774460197463929663941909947100121191109058034472923091262658581784458615114162365888045576530948815710872718804862586304382719382152831227842956757055765188998313464373244879331133629022891851245014459910650865989444161945495483704320573580411402678273397889224439483873174478194220972946380594666690196541935078101668984164807951850470847041478858061962523611066460851489995492575111353517209322118816444870828677770402080816631885838091533093816283435687451308705178700460096078421096308366411346898044279376993907979033270282677618171435418383176549256317843577856287499410272513532158594642944153518659842554342294377970358328873069185639378090892087579295270224362419663734911785517386605744658540172206504882182429234338504291373501725567284299988011730058279965238177821890981743894497314046174010436278038941961031233640096741694683572356826929531582633145045004178793317807946936900127544976734089209353669266492056836063775730181811797812999320259365365425169822023689191965672163367859555891837114188419775664445370073323450161798541383808126678702881924304034017026533696359850880558114873451605866181208694831840685080174609247895710268046287217508151853168763698565580140142671866151849910169028181193090988855151604951931412331837925288609899446519847903391768142559028245598460580028914333967307788572941399515250177293041885929717649687971087763136880260854247788222150043100154383251238036835505349930501290654870961882245743064064475604702289648421406215034129444442431330244241745277676793586008615897025103230829039920931830295917399500593539524275036444658680274229011138952534654064270703302732399921345846730801255180254876295628814376387909118714626389528095414757248852444869237292967830766216837011177904986460586847870572712842774536283246968270113576823507333317296373413878112492790589681780176811731421848598983473741284809219695227190561142009480361632061113851507949427347563296919173307297274542828349581562931943737937044634133495905355283688733003898104581212178559486697352524579039294189810025931712036261277914377167331092289670526796126439068605899293149520252646516089617560790168657402222987784574162762850003340652689846204540438566359193469960054480270240749797845896576041322817913210746543084648844581077358835035903976863784738212283100328914284174534066236320213450449402585265781828779752571317532937032683480280084293857139572296718545319226450003851723210849712027874975534236004595854330557992569347250143240331469418810469281470230294797336161965177481347243440731426902054992618885579299373962527230168421952652703712436799667113123459558158494476545088569798763988137412213614771794127815631870729394557832856140372871609832313959228222666667100109051833149366268407471164856211279446271124490849025127917640750086950095368698259407054064883744578529192648032640117707311192474813335476005834026203856608689733042988750356912494049356567850368011622260516457966622876107490198255924248155098443575891348968752508715061171079816218141143334615513674317822210317405949599964978266524553767221822666911226122063287297090984802994570099052820693770720252018749524656931204060752189353690756292762544227546285150488057456885312043538921575782622360144788294059207099618122733903379778663211674276926239125522917121607323029034558337037686725382602350772521183925374729236820718272469698928939773717709215442706600927175337034410923329323863661716317021892633529456630144832198313087258233568079717033220808013316029564077430705650537407445734810837166938793804268694389213141868290040352331383502870004165322076224853841625331990243060052157919809761179874233289182553876461183698255065895063145726924508106025170597174411099433889855896912237729537718973834060917037130939543294027101246791040654956427693373432680503440722051005946071923330615951794264465813382175326792639322081641630032916484262805676768271197712490795920818016548662792596139766645064231809519629409765044524708677944003229748832099500322096804504443397253183233775579527817009343790142378795405497168426138942966030465784070160111973229917350132753885698057393483724007587971162972707009070808655218336128820959749723686763340410941336977355915032197476673284331306687927626115423847873162818024408817116376339008760910932022668694205022638460363369269589012002885316481952118396629442149128335156261337004957536974929294125612766214320374310635777097472127801964370678066539772943190863025932553897409832446047583557996704180252037718490027001227963855395119452659700765836101239497129562027545693453903910331136956840365080270722439274677251646277269155619599985055289027528677260620452974080283196991648739180263913980878535610539011650930037189910328887891923470051575064785877492228235310776266822754065464169015644627332308477456169686674026063320341852303579418066739571028502382551596404467843618013828674555099535108408339263226845695659976970311297990459619456724718654914299303116214342027926314805215834966897509018976400876692999558316224785941593570114065044602457704276651986799779327782397488907384610259423563540662361070834889040988334581472971030859009531304756126629190846668844634575219857205793485737103536704555093846001216152364700102740844146547820280577818941473994082020451400530916259718523320304642755285172696840414302443055201023222219831936420839542908194747031659315725477336097033018268374374673008538249867109699002628768734338045203458972920322008212026121264622560562551416225266977387979865460777593655270019597568726934917996778748132687249893877504382836744890052724785938981805048868853168687262905128323911934518597296847973908006665551528394508435574280929463121464142475593077354294907888091220769760882440840905741752698795736012778485594295872374825470300950531954684187543788302044551189444949798476440499137841907790210251824373272040535552320351877986085777636156183982305989998761726167422305582207120600723395962961182544532261349425593930853678683200714324451445398853288714555395769292574057745079613274951021810140979554875223933997476955862499104841251597825919200608503757861530159657488458237361571822307761242485306691846878928977358680616612225886598913972735852943625310725046986672042612023031128234708212683383161711897535782904885112748561926140008324815035906960622317189190128319351646143690250982859093219433755099232075474939238952709489567264037058930794084863927267889964484521830776044043280540132095085849381450867139130813117045221716203970751845844553326317567703436411544539482216299976756519941534799132038520707696529035718173690092674062342323251691268743234434710425426108162025749936420573738779566293169957913868020662761548545968996502968089835168903276640683545389071138858613784600915053121182507325181135503904793804606325459123428395564615696482355188670693657802218126638659376674216153383060022167439044692346531465260619892353761266328247172664287256665562655941038284119784230607568306521529351600998632298793342008922724940697571300284798786709324629518799418319487359125181983806373441585797771347637227448148925950481722518934780562969086817207212675766103087281522021913708324717310596481739705634549790121183648995153653650081693672294268388044619923836400108836571763555314884071542674366914079755677024633279170454959973097905432631845336778205473471726020491477107914073671629080818315164687953558499089937791175301680919874736852761457110191219358638834213072199964797343810232563801659797527688768316607810604677532473086304554512338686620767336255811927922927214518290015728434702250559813417496134854391510082096719727131757379209759311979812208107368736414060803938052211245785400976134218547293388219524038342807747046756563554337239263394938138358853645616284545483170767120620997456874987852378305379532705011026221457747820279323031905741185767145611769436650207567476133592886375452574390026735159655777271429646978537109512471647518910980094999558979098888940141665750913433864612178411795495976538794972403414958715164954981977671955963344131518313403368951262881874833015563301214433357994314836830033299183766994812697500494399147027403122376600192271854452833659102035023280436930380709584893673112138778145864655876740859336908783853880275044586796063496102987986561268515059061798164690943823989721488434099157855786147436597319917078873217482869699481543425607428626012158701571935180928820711630492173808255376588075728863253899050676345466272177565095521455171446611133110457565384737070063605331653663046267801379036630400783291647337115716464595207695412339668947213878099943764115597067151431967058224536917254870586656846042590152404062746756848653737827004685326338620671110865153480775046895197096270050479978473858430328627525265285656587211758774396221019923870194673079012874083132085204389645665698669017119305702073625154603768512305088328445703956153864620003206447845474711267263873981651648432966816694444003674304833831037424232501817008392101485926570869381950583849930742457969127897826023041579716675108229306253209993827084301744201257568467166093387877967231322389479354245881149892796139075490720967286782050818125576402236183715805840231842035146849003847679243593512059562449700267714670460956491506799545288044754096712081998835344004648417097512340625263404041117174872152582383092445204615641891589846522135564982867411948084805424600408823950224139675395217330674170464864184234679998685794280830764843399595127080524008493739895020710113091791273224885486301617236712012720523281365704067070683467098438573952422344219315539633154140421879490872360384636425791138426192764822894460422376975583263272214952469607883917509300586511014524511327379634503878013311213125815669726286976955306276479543846945986597937355817558720965566059830790375463919522671661054172115393317734349110809339249620727169097844218778994501087237292903824744500964114712660551777057297422552763935976431237593188135794710902447816763294341607100751247230367812569826210368609930430737687721198193264406864613220362833438340602275289380800772314614839088058493528391054872701550773793869942366538987767435037891536897516345171435643751270593416511208538331691967982883023659016403837962806437165015799793491686043990300518341336727064628951189156137777887392037197496756238636254611389327522820560801843669997883450843117280701381775814684962506581094281780728537180522199079051470496088654843475303422178042700408124080209716074732747104842671557235623971374976199850387057594945106660468647984861573321973598717379076033865704620955878306176353696950337380642293020931027707448258513108308540840049887226622201080310143298508330739977059877752150706727542616730308785890227166843017013752816972722395379704035208933282470442409058891027215713697018834410476416441821025371810637755150778644022909121573548062640603281797802293936333889881462026105526736423218737435124416965270384944852258556852376747176539484665420104024066343161975677782422736911672746303005647902816910610631987204980208133545704387656335826404044661303028739391566914132967102598382513505591316315845862614812976776216037993877278443485857482994410656397680982234559906928277456085636159906136053065178986222282928082681798828560591361351313804419152797592000653565636829197574235152322472773200816603437567440538864529728335956361229252828359308252393572232996446808125448286307278705484450393788348260015795474706066947568380263853314457939029977339072638765590125556281334994576190019899311140295805739795711783756081322877846270877241541037331992566923144260157185748248984947728231926625211909862065698855493369983708375753645073568837589115581336676668565888563220257267719778707541234046475105631279093788125912872244203317540685309091743016472417698166654084746102330000314187997533536779212901286860132646628152205987532670455756605421728566196326484379280838401010459680096409904479360370997888871203193541147202497485561802665092555476511213054538188420292557908956983286093124769809001179235671873982202519479722753953142328915076264031608273776701351877378450602706277826485013138877883260238848877385252575333353017759195159274046881117783636378068231963873383627602329806925506571863799075523830943111005898779925704163936349404840344547712293369415280312855628841221405233431982956409381253873672906129568800479556068088332367000987814759609303068496710816632453880165762761588746818146507118494923407462643178234782888790246988028368220293837202351813230017452088270144231860532201511910280084387484205159841820197763489357439725720369289514421630988223844190928203618323117853202786273544782259413396582988823379551656182925331212644589367050286537297481493564689147475267122190870063762803572020907757788050851947975177738574817853059690152682538480769001248625445106385778306952405602145725909883926003315922114233571315762241466329519865335908094320971884385831215205263154893508191645301267350804403929644839358991197700794777041797457229941017747084198067080338885087041007047835578640015537469158989585639078330068125206070485144400895126902261229887200260945763039738519783844300141150218342281821246865853103713860941321117518669372023963800158727357701848537818300875565543691053749800780894625660822569252235524195051147890897919743645558049451389945271532788991928314219871524994173500321490858136704982475973822705988190393047595573278000490495185500518137441495361723189695264103374698674423831995789715451497209097583273793387127349711529225261043038758885531363567314778034185572628902754538433022327351891845749878013545806940721893798604663906706289555391563833681689263179901705680096484891140467973997418049642318341327288675595993504908516314692133324756906477066897856868519435624855995045828035512197299680753367906632473292967624773557173470376329966056647656155356900638044868874500511280273993287818255342461531495011040769068021540271480998633460278492380964211315065075969076202534945752608624260587437857234241927464530225064410441167505738658978759780994921681435952691392932332714642838694175562592814324245062921710190281455217348759843413897526811468859693495800473035609822212264733089466336064789000981187410390797150955564131879400102288735022821210215754623544925407798236356737253465963267843766253134069358869079965388934106250294065644798406817018163599780943857239766438819454342838310788531751124782199934693384138071332364354144039412597456389060628714478032222073658092938806771024026630261970258281008191737331686174964394500842911838721779301925148028703545975497614163940377843676868299153895069948259281874891703927282000374225676986013612093422771424161062932453605430870233821908216562986230314404819144787446009381792899422579112766935449070893853912502283597811382493556344693361973015501220976983284029364838685212012130791765859435169803128476722150714844379844037764264560346118966844222654208663319447345776208519086877037366131032409983843086241521647555015435662286136171328897290639578175671247346750529172115532183999476022917734542051587299650244965359488692179332493748832874970887070406905478714908398381108136029083440425019149820569971495732338955393856416700301157992588468289632211783078825996481689345028524467903760434856952148504315215174562276775503793581670578939638074121215917949768968863512624729129151623851855741196220166431537103881577259247381057592104885567638094087934962549968536021785215997541665174543498644341126121006594265136752860236393994003988306318399545577327272291127451973828560442605734660828776441398084900719605802475731275455153643262286075410882907107058765457421127982076027011020006136019911633877282880848812297905329562541135645494943142822614823357045064863665445885489185355750409080588565780397180372500246759893491159051326846490896268003190786023023055547245031380052763733620349608111269562205396160064432032020564623260906683144311179584205981974119688193754233947416757516594855273326666409488910241914265318655415829346912563659206058204082264492488096604106009665852838477074941894650495938456515908994259216748858066733297481007760278241252917136824844878420776212875969437702134662249765754898331254406459666792633740332237122397930761814814879151329634098779515890219305182961474228445907351103577038784997418642447312811884069436596583092132486909102231161925420621479636149535960930954998839239129786174257248941574665717861020002788522633085103859391618054150088430065742605840175977864956808519494856227233917039348162793451867484695935812544738005986246405320213038635151141476691334707976922011391921778001565879372939542439223811156358809257719104540896042163187780274790146916341863792327698635062843164488095098496681887457948380139623344248536775398501192506597140563464922944885171074667211388953918697240583355774238565600586762692798536761885358074683521341648568563539365435676057708754402693057063668552080789479926026282612713821924046640812105469896709928889681958931205839292299983451361259590101701091559596367818483535000207927489871061554413809081431159203090035999953766188927643316276416988051556014905476682469310323036523364120173803617871227238902856042011490017859931536896693531484698039513504956242171168787604229843278683096232807506408290144004866856283451284033622922926517140081197462146414108519035440511758845976207345146802194286065616716605855805196955511935522269560155578189920021835973829256571943663496754057749402163451187051091816052035438893496356763364344659159040834223498588384819231457742332250673546391639779968525163610808020796752217467290339016229780585899348589531291828083645420601845117391342551158841652331478911313232186685928003465796272920556796045833645979380182583805435425007101404262778177128966133288307867634860312715249682359292143793534077765763623327230772515027118858644103210945224218488825282762060668427033854279197979591078586826514900288025169923039176217009357128480348572963670415502645810853810431722552318076850524904019484882707170222153841853012000024792999748793933996938389119082414438151715273040483736807851319996069223817919849260366600140699463114150216329215468109474274463197416744719563252768088450651030735927292984213719511843325436688067035212234605784057657049214327722539615740273177487738957335505234812604501670033290548460072226327365213759210561296339265387730349702881373883495109844288203124278079790117839694461795644572789648717818137253758379739050759388289050088932107087391262340947759068102339200102711620966000270743027954755183446161376393118039729138883232086667505465707050712347605980261111252487608309767302243914905571189916465591981279834348788826728704454330380624055587540989829241849123540970731043225082543653208016957075827880987172370919588004150638287732237810551747370500675135616140418312880354906820451733145332930009293932179922047520694875018473816416550201548299087562759638248202263867069948184234603046785263855674008649343733939668282978050386904575398571490248177078884259089013961211358648121388767860590962693242403685534052794470383144293483536297023331583681420429501288709426497158084430901069174802839026248431313409362273842976787151568297033534069596168392916014944600027058275519957411853817196394265431505738426463222676160534831576962836373823626335240169513686884145372879738424982976337645093003554554857240908564157001498271188479793971595648275333364758160504190472600219794209589966480950609195293360013478729091691830863348806361872200012244095266738791125685124342701689343281325446060050552518802483743930447027666460473552166386560976224372222384120045908575274717571680091491279204348149821381802481334157933837882838411600956249584488529486183739916617807657596955959666247887085891234291304625951330336836808225010734212842027964304097431784284123291672428119443707572054423624991992116276887747870549669998442517711340994696140493096098818150899827531770834513842566347759316000588673248585792300321892381732554834944703151666651865332823101885102198421701103151828787002368209222952831500035227909234191160673032655936638101220236594944713632168685009115361057531192945856523744573218680287817633045431408368979677142793765710836228278906036465310569667342602947017479544123263256694732507628775144431867294577202680869719334516108528514787014238401193214233012657864084965598420178107157412707521682044214188741141627431369158003731263576195440869370025262141718015209510588325600319604658810577263192245854303416563978242116665979684237060998418515516708144520595780920228482272285387780297573915958325483176536120719177276937145022880519497461274218268401977962830656420647867226332265592814977660696335339847139850729178381410320784500224336613230964524194201924284816509019282575288710865381775555086118543083222388575375040062040009063539493180233152616161897925913485490120311119746460852436584105679981240684850070027343866177197838139761779982820132691672776156376369048218095377181095000887036990884830102214356549050435453207433510760458848262179355590254008454612047361591910611030939982205009212439855540447076102132852077799285636928777311993561793038908667331825829266038386272767525241003252607205149045754424707355190415651204607581603441951200533231567012814499165201537603348691218402229323108468860475366981707264262304599971092364172669610203542614710403882823118375224501094284497067587479219889844705222168480436489724398577951812191471183925842022822715670393857388166380388237941320887664100134262543308985888886325479848264808474367722970750332344400921326512897685872117781451578802254235906112286446139361496893685506094351276897103373933848269537671335307125217329761398917894697753777420159031478253434466741508251664244883807372349393714090735928779213083697886440183236336792445800139698162176859683151032412039789800378557048284618159067221813415391020710180963965712147900079831849454718709988044172354717879627566631374693294967388274734593268305401210747232326656937444006739489112916718642645396408473377989146075274329008357601367241307503646342750378842795386492354888856548972978298504866847609782856734694569968980092867940960614669698884652586037418744161684057599769339492292311782579251600891479912762538067293367783152716182300069030271552011602756554651443090622537587928633231300472470493554838037111299560372848495022640516788575759626537725170651544933118515872025624993967077277168723111447016203334857480476973886852928910554346825888486787944542862620066067852323915204925829419324982876420934520757124878629747754032565078327947865273173261778855633448514751967529510340412346546868858852211987758790925323143348311158524241209680729128829571492994603799948778666028456968158435374976053564235194596033996365131702054044224485525989618464140062855172487854417965172237635859900475743110798397110900813638060069481865874334548455303966804537261497922159263056670416090693964239812736680216351131844037116639624284555335287457839695083186259948241627050717148701859499335164238039694939041245370897548062438773048086738394470810247572389663601481654028568063527569677254672766125595059739811409617845679024410149997335864384172360340198787272621233935764295275278368765621686415767937524293701824161894083335635252199612743283395241235406356165407522212634882051255893570871065536167413875083781025147148595951984119693989319691555969240728031606127538376764418517166410784501577815589760430518266143282541155518329848592166538508870547900870427900594198704791156462505370702548530475386103029300672709139005632242406711119270494222907357727283083925026977710783203662974168442216120497454410953966218607999335961586978774606188235533317791192128540459781763635470415560156831499793475318137128608942941755379681007573305730324021604790750731538304674571020667334660443277089799687735296358633174222392372151452667225199269540008362197691286540967889004048892504503698872443458202541303929980576480685872990951973544984130604068214366403524742217655649460347284235474659582267153138785108680448344240328342061522102745339003064838984529584627231853793845727962063923668371159902561629749444257765069793671698435271774092230184775086502077794636938668489074590685975943869901767775738625645649658760180690225353735721783979849672306465487225239074774981879751259454244446153879051199041324588053739841505773431259648263491987751008162342220080275707618081252975604131788906161913187761606453679901485056944021778961531770170690398010790060771112895773565115625972761102922132249974134249034668758560169303822318782063894094511569787009344989957535211256098268826889394623285294849504730981319055417216137038119810186556656390920441324360316088942206732832708125079290555606254449353735948041184727138232705689301515195025735881643523330149681223611347658839203254200158496742554506647849429346990413765749105662634765916552461015271855680835402480922604585552641241578728898754212375663298223365201437780377953930784373376666121584900530446230080740855780240362547575235270560103626266143397374072368656558881276482285088347177707582283176623858033037973374816296119613621920410476774111604552565015154213370162481862182714815977041475753341824952958276138032026391501053197708948641165404733830428066995312043963312800247918714945260282913524594017803249887990363557048557834615099983685897084009677126953888224152817137946746122253988930646334056975933473529230752839321696157923348264524663970026054436788778361980350825791594776117073223994107470400239929332423470421510859390546524781440660127911416754968161827144657645877568063827057225125574427859800784258107584528696299153021134411266334773743812796700606352362460151784479557250620346817984102901957474279932231236542835790873926445007233859370817664617636053347310223221626292813777579754013825466632593632745480524193578726251593622991971341026800939770339587483315491085390408708552534117915071215215981450193793762341245564313540693580953805304594589263244167366724969915328914127558343924085041807043301487360060453004262566983010938925596700717121321893873543969162138456321589866935263783766577947491681729126354897627653126684361358177642411096390197278877435434052221177857049450976118632513264055798616893767699809965325195410537901225886307491701062760537104870893330079451715629663739949912873560801413656256818881116857216997501474042265800030478406184882198082240245808648164687005169796356463993548111926443708457679822593157817287023781028175069237547522848024143609759532611729536717493965359436138462471441835494166386237819709183434473078719898352093892192861629924859699372541558583124855290784739052487866277359819523419455049398695403101930189386443641706152423565441962707194952803411454876917373804119285415521320152010616830168709830033893942974685619773746725020740303811632312749951685394497773860621192976428042949759269347832023293357028141181711936444274074938343967012066168190402900493502560692559252988086182226645406256749618205712619127015779255049035569819362537710404120916085941224010819033603524318464831124315452706476683856310976292409430709380223056917754687317620808019769336690900838527263260539795194539172833933743152448674894422577399570908869819399968591734113773746303325134740445598789728070828059508104709908656306920716426764727481956453753902816901745134792835279869675395940999046850039773146405106624464649034690991078310111965332606807242213881702272445711893175361973647924470418688503943058069966342151733708451193960205376927015260281146182141475599815360898645739682817083889800068869718905627469236761789586471960841900934585578543702013680817536709994459670668155800424687250303754136370268109531886942230702719979297628367554494188421449664199099233199882138030984097373216233576937160165576163185514504112200620914909836294577568424668112226656735099598429557407899506782040957336819607543732270245285197986268219834899189384946330399367185600213068013012457185624300777484265445640278216276027887775049406570602873860726369013579340402158059159350054340997426381779498599668443047546446738634605497518370015875736953114951613146069271809919203430839875510891153828506524516918136203208427276447782301803823910663719415960422152384441174588317819505914669884448406323098170214812621869398872222844655012182543294789394711477966637220183824445787605586447016293014415775193720993686898329601876421804649366869177183495257671317996028565227071124209791795473016587292445955624726783245458935949024579105641207487562625718283253933221040857668009117188686742006913023692484408912568233297303228336330801877596916504640725975089262662676428819904698274126361587711095737284111459276430202003217841243275300615234783362802532064314392195371122159941231592150696586016913251326616046725047917299412801491365854910533606386238569370706313654325740833557688846258961205760860541780299048989776095271009805087327473927905774734116760658369813062433158066865949659045505624637287628257118311223038993555134529326224734956494766480043890984287572601790230557786888798454066733016055968604703828087119639246606877781200174452317003927444253454715735466489728089411708379539161260403755945843655665875769231947977002127751867495752425320155237067693441935627764545842232093740691217083797082704162095906101243696353495297141649167924269103673894700229985280345854079657338807169455571071608676147101881218302205994616629397276368137405756788489803627921001549296028457730914378122887454418903651827864602983353455006575190713026033903380454339029363960898106168171313254843744809300226414208888630241984902680786988317778707262816402186291036357050803480803083825981934183810820027569713077250283066895764530526912543862924932099235808151112285923448967050486812943305519086061116304569099403434361985821469282070380650240605295222199895742858011102047575378714011178006626106878388553838104035426823253399444274109968844511586667032387964769024253255948292135934867047515856009588052292642479893345017129844480519802294543296101719690881677046332810383688043988669052544064975896312562793011114659891482831722094248993761440266984413823738698318332390312065406449512555442055532877902208908673648854273105113687185340623065916166617349158537558758938224559420187665790749896481679126828253899877232933124327076147373936889877321274851140433042556577400779230569213920882070248483886567328277748228936405850856741090334429442953172663375202181282692499862755808763222949592305518746280381707883474197844275218154510782126547485586999008827002754400219069590452778786340075841823253261567789874512149125227847611283121872223525981358808444417375727449943635882918019971157603113635762914309121137352605770975544256698372768708013151233839846781622966545496104617869976762121693229118375193092324552352840665181089431728137904544736284777434733674505678978421124894018039598834925820855945273694431205096240008244578901659177455627830798796833866215039737590409016217136689598468394505145029428920360987640263353803570971612359193708829900732738757820129222341601738085202897645359983422633964156439969732055445987341660784098378217116124043065970391677456284939544619991079655715178923187374018787032673626843988267932357100605551483461761405174444508571907703853558806531219477980636690507675616112543534426608180707299305344409839927176217451890514030920369619537416993228718096469805985193274658411632110665733265765107549137222832321219324743586640281865034878368210579374892990925755351380291142683628468581842939588835274016377726094506352117745650084038160747729872987877544241361506789344559564645754145957955102735603271281481922902446617662849477422023472950447256119737755827220323450619664554590060525980817263548147439727077023288687615333956889563361936819097879365396919246961498743304094483991242130224396110138827684840123636964341635798448996187180942203317465450106514804388239907644962428872206712703177314936297102470843760011910241290994190377176192094317611855967366351139448408150558367249539056840739589246103282512302896471759671490540151074252040524601343674441151280791092805562069956324640257681086026034073745621191493770066709806500025804207080099075725921507276483402407151602561846229117348166531164965541243755253431528938103685844499741575711103454915461845582794927820910458951670471407288381496478436934066383357351961774954190457177549754401108977423798908164626494254095424181198301397579267796123996115953442218478406766101620697185942366854575888202172755651914156416087446875153962927069197531229180627735642281028388521976268420991729015595226157080932188890428727199090626050031467974529647508525793464342139835185778578718127900511966968844767605186695567356930611752958228424883224459151826952838202156956025664800678394059767560908066278884798852769994989589753896468276252952213330151860969542517767267074512565720533400399107891747171673552002027055048569004312413605776860447689783786596844527566459377018366942976203266274281889095771860023712041584748311188548449474228246398663691098522599610945545300712028967826960762727566873078917925939659323740501055793279417940704980233761367378650529937725516508764865421866603629946802816980627391150944024725630743439248046295179903303736164287917362492659778642476907161249572208450092362863646293892217772041079844175755426114382828527602842816395085986488865614031124160247681457340598395804787482148495655996102530267680609426368822541651909951730260866427206092768951411990728519084309277819690876808136293459934231973688750205348564324233891832327630617419532673056907775987525207031802579124248022796512570890803800648273490354124775238689922756331682092236044354060400892566051937003100745678423755257724239574323259515049148078687781864575930898586997831827301933366966662464056603469234772141044270390273459849319357537969298305771948076030014945684782309591533255158473841519627803519030036173643816979710242411640300296498108262891378746923250700510390401205822865156964956027967442191717612644729718024892075378824647992416468990313450960290858253746564497622383970411790760413729991670634806699761177206585562476449447547672613816710033507457279973547085107790556641464891783142301727060275402353697996660144179277069934689571759183865004809748957568563128332045656399568084276901076286792476169555172894358796308919557592573399423338988854596462977062529072266508577581019490827887242432677769768448938228523898788843455979242444366845589119820189191888487160409645098598797508540561585866646852762925525189214166661489987491380488949692426717449944086409027052885113521978246280611206130282162677745225563890258500260129427002534421015784643300656012079588925465822636812766784761745746967874002542108613043995386401498707514604474412149485807363132195318922140827772705953210280983701838566822949802035922696383154791830627786812466694728048020675858122947618654673412914566673855568777938067639573705289370780689838273358329390862007216060968768324934087528592223776570587765467591165243891484834879555898206597689846891450855965506675719047153495452709481304560410394724420026603602356212172956916779025350258335118187494006569597949306060724632110636551371495631826245729304600315906235804610842903062510306602161630869080794267986020085404970913962743251277114061428572848540871426205477315350650200855520308056421264238527304593414718794210294805742719997106559482735639773404297942818005181754208263471764710140737079858644818651100194023935752299595169555688112456137809252653975786318952936074787636357352080495989805667279042247305411358411607241753362939163475694816141199700038298854605441666629048056743362282747385576397828691709608205927055345821641165757892406385723920116128148941987433364584197337854749352919487108173237798661382155610820718693031855858037834602898669965691613705326941179674032817436824976109721182305029830540736158879628551848238204144061082681291936957509735661636805965832756512351134763530403951742298967102951118634104634532857854985336334629532433305203483352561484579067398966285561481364194738515985717039068749007970245688287648444966868554115293770893017182079254779274157400370247211186908036364282167809129608195749980389596467722143129294158741406975110269665122695834722902146859118133892067773478293150542778856969515895335544923454564338526684645687555483489998595644503103434643286579891860338545187833332513031640911554646976946621068969685111120273200741342492265308554502395851810575815551636006582270297145628959691897943057627612594119414940687138903866528545162369381564624734412311685555412364168840427163003905983959700344577112666204453594583499461662665282825954854569612760108569200349826899462942262276221728536387949203870674583931897490682042510181724944827878933867358972582829333698200797798981378850665728110965022649327845788575675152742942794995256725980440142902368724436669683749837448585551392571916683943434277415862121046450759090509218312338219244730507039199965238611808955923373070764549045735433095645796656147133063457961599854742593303036743361148609613182895320757753118395542288592189212857529808001494989449130572683010247439962049647899873030250810139853436859239378971000601511127074479211627812354072008117732745142789322635831701315072519712087206442757232741790499564543093494694446183319511033961717465956041188505295275157085815933109158541416775929641430650300004929632921534759045446507770068539812662846087867645615374754787998550921374771278163498680714578452221700645326102816524380661656081384698114958421614271045948399064908444608972247137677117720540631871703969488879953917253665107107095748953438067613515419862174400102116873370614394907405325068511963262845998073735992473305122408168933630900372203081094864812277025460866653057253761459970695580736068318449647560734483083844037135436446247545503455103463518786215937890220367078874810861874408349377280742473145821731208682395234987176272426027107800399641711088045505900368181013069329516540173043770219146318539821897749730411626793654743530539449549270089406234390454619878391513799909099622545013500919224702715519854970576186630451120039885629154571869027666609863298315050417050331487596300980200440120108339208076590534215309874094199100692892538674890229241779312289528035946831204662309531006361231449272867002083633250741040523651996562826016475828036315554130664970029519287294628979444653816418423977498453385568311945560641012771478910715718380458575243179768581203864473374975001478671877506522688130262266590496828700809973831654558240021507785697126286917114893712511369763472305783298661948564265859864283247582907413571889632624233987440045544012983176559741923171952695025517166076518625537112463598381055883264950631447668870484904272822158417129921053500290473462752331166422977552045875988167000340230331397788832291419433579263135125409265963762982608025664897777542004257641157003343605350974271168757387069555496285292673402739599781433765970743273147170990175089680407330825246149165320290866056886797519755464581823930894623265944086478332484689491914040604724605587032000129806487703479984020345735377998102309038623563141684773586012484514795445046661990413773716135191655787424739928965687139901820413974522385382599599547477096271887587677157472418723783050292611930993604327942287659454324439352485500240538536852521957439934691311285240665154673453364217493743966307857648692048242128868316378888334142895528093903152112943391084749803508270378060270203221112092786138407193729608592660442987986870237269564381286030960416431069281884697745362222087348713280304140008304453647995261183076301425143945251142199476398533523494977190692200293080642867163560918615062069449377475234069803684400828013260117035439351780341541509180353823796938096495888048861416822751019315548910808733332012490198442755675824571949927377670361074814752615705203841752257850212745775031278426438502705206741508691770535533415925669945440153963204046814092814997619984912709964520741260125779605262914414768625071148760464322101969619824849733953361593404192215711674047898249965314077388743788619103569147848282850111728926839197483474847986638572901384873141302567983243763521709475936417714895275409861265197456829981500128057623779889518742382073742522229058916985604341669259091865828720979822529706464366847821400746466483194355297228808847265863605467265658129557545610920688106226181088809044775439027661177321360251950564111817640407093778012367613541579068431207485786272732217427169280256886798943845448643353617193150028015829147212349947102734971066131356637720565552468744363921883786119670710819300369463112140053956252578259942706998858733724712744931776227796784765376896893557532856645331601200376609486216322222311403100060148903495337271784436076881211935792898444858234254194440868416425431946339748674857774606672588562917192295681086887251361293840592873766470859789950727045233824992813153472410118421279538853728166813974436887096604506141475449515633381437699588848055567796193878983450638435187523981698286598922989753933929543860584892605541434255829188402317443210607902344662229955908782854356382772120222266690848215990700531077983055139352104329351463074538099007535054443367248283154797653983702087065566522454920237195277641152036546954736929612962544637415609249061704508112593886993289965632973586015233729458054676178653096266423766433210779457115998248000758650202629490226100961245877565409322953601582863597983520692808312467239711341406420693940659994494890869738328273498941870428001909083208682994912732977374777960582374064097305270848830102851844780947567326416306340327823235103637516792335015237432760385354399628957827380316074201756984185592810467772872286735844096260663594255371545887498697050689563364671021576627762668992860711619319980340992318509389287936835442848298314067945416593421487024775956129044992762487734241604997792723242332368570310764594315679124033952784981789652296467113989282436209293184537709893514729814964028384521955598606173159630315787530352844691031309771965442814417129908884812289850868903242850547430863493896733540587987223284101054012124221462888393870531065916293245540838898644834034602023661181426788483231513612241728442565373947647492450094668955575054543510684648612715195974291340111716899246005260237962731308564882387305183739907651740509836997114013399114827809662610317814088130726969438221853638904672943823720484262562993732602629288555972433889013920374174145343683426831715420193832767226040621835724134369132335835997842900647064327943141551558498089794543892787667072442416369706669072294863717801657046233356424966058364892311115596804367505937696240964769238045962036788953762302128931459535881699777150040504348197039613855415037678762938295925979588328180373896606118096807490279740483464788875785079385800734607732005048810938317901670612935927268044941768588385050578017189222499566960520486732019313333029495286432788885986490665475550599843239733711263892484596825355745061623191983703355176773734372216739275924210236757323895820770355239804285159727915930096882770268527296230476219242134527824138034621775528500012120202469244013852914685610743580273830743256560987967433230592367969003319099607417745618083825453169865362657386420278085124092669647676560542202544323399500784020691297204121800521696183909817708799288348309562319350344737395266500045184081728409850992167285593192004801516816550472204263949414266818288643393387303213547477734173457889742879838273830694650325189691666324583838008451830591910890618767501751952639558158921052750123557785652166721955551476604678947811679663802842677294720224293340235800610559062458366543487043007765779209560808600118096306531529121445067164909268768575169505743859556011253735347936560812222414464179241384362436904363348524217593653190961872693856996658138454012639780427749865191344637796318483214852511155970889018965152427421081474299040586209497398332930921351455850092983509033347512498189957305183198057056916053120975213083517409454642899610684760028225506509189877806490781920200763652055656946227048340623205706565296574389792734554948484691834523645088507461580465469871709347850031582716008431087619632269125812778103700908674290832007224649731293188309192641249771306044942085425731536096538587440909793799125270895110069019540177219104353223307324891296965500552561792119858400840325145283052798909841056798972890086507394728758238720130212899071722771723691099246171487465669910043943759927609516350729679222381491262664031180296700660356392950294698777923275320411996332515730052748431617041367470355413358135388562585912388377371086363889324541746735600092765737242793263655188743174419020578289101022932796563038114160526285004342008289159251466585560367334640314608201508130722893196375846758751947631010751270500298549903599666048149507373590153549569102936972835139400447977613001586865958897296756111679165346941754018143122838416781875109681057486270332923292402618822043114284193245783540544704227432164607436541884924286465071383858834675082317840087702451315090710751361127188309169544080550260119582055841351335936379953852173095387043503773313047857997862266564143295991363005282034364466316782921500610202078970363743018061976697125424881462270154601515776664298214617781682901537627938559480393196458976255976268769958170132765271381354342135682470144382392591556755060399496735287456887915981925991174364302963998910122555486788304364844919967057138159461091529701610413147874067464079526793822657825649042790633298504346399559864044343447470140134283721467463268290492187425133343875647581521645889406175885078827590652872847840367656026839546767481497297700214369000899317561329295698322636409367962346199971946928632137475379926504974075442341412520277870478536836196888729933479411872604743195878475699232107285704049575398237995353406400735135101784625638579728276932365624467693446314359122578720798842499665543513894972311270918590553817737604405776795333065361225327697845798718184649473073781485643297300705280939544843866586963912883338173680725000750750333029279730815968360839866265226793578360923340332529093243174905871858448040809179430724248519078948283301882139352127361132980663958633113036815926841372115537869463406498483982982383677788254997941102618475618304360357697188109905495535341553547149467332835194553657720555834042902059878457691481637747690996797866560604798529450911016441738367146563313188980351591413873750014890809687268740498098926216430857769026014944366960352933133005328887545600089781673063306225414762555808557339893096510971577728162487109033170342165680602743788869217705549656422397221394895302736356636882185300005139841580144229567511159763651633018892605414259861383697421055490586747934760070681330799163375667773023170893891021160162982482610666534944261243964560853896897537121307288168009733036013754578844461530603428441267602270667556593031032752810816444338468772478368036199176392722236203035305198932981206509276908696659047105036207676819420229282279440659356873380082808235767753154112176160726538702330799790192951290697968282410616730196069261078280771806047030641545133141108372818173436701593295586841832876218817487032085907648009321246408058172674655360712353200464382490525106721826248140934983887851659777731719651019686815202265925999494161420029752316561104552124706435782558578749941388371069213441806352645036314514087100263188083883787894348263473951975749291629480266356110279659643782554705859447159034043537845352454912802060810515137915613549946087167790173092606174773142700620165348594611091885671373938693187632120030405856002127291547147363423483820464224098159024107776716364785727012911405769482836961399292835462698085642733005953030160571359771287577970766329285103195903014881025070090892959594367510487305615446297519536005125896496734963453637953820633334353531908510775277640926851171084580260350814227188207131027604987604952814327325988566847566285346533271873653349520453417562596305436791521790283615129672972410523018617221647352495579159637275508195730618668809070724787162810077531922399894918381117893282046123956720067980366689045698184631301845487753860459766348130748856804823578699339526852402075765681121687313257467276167406450202261876000892701151696174392516188963023868331145030127106169903188401472522392392972648480887080396080869558269299836999535487652017759038216374500518929650849746189656217458550279968758750620982034634956742345482634940173804383689153747780612380459756089843074522713815561688441223089459734422818533381645697471880243088352283490414311611697694995516123012219259675413312160086979062184677053020257876364389151564545136139514840607664731644760009186928457905032628285801697036594928195349448008752426869614171713245253291591170855163526059296021718793786214073718816015746275463111217710588189080762644917643056513482800490689196359874723728130304105161665111013723196202519226658996593072631969015527199211512475231055464797780662922878014235727818397196159881274904381500454745067604123538415046700262639590075213424862772915389032440147805339791036716002830009997040482881503147486112461995564834990201525854117421820552414423747107588159051421004550960108541445953870958541009852140928867627358360460496147316532047879781472997434659634978285704582048501697961603848972193519385055248508089155448453754302448712548585999019024726119444004513501582153483831592315845407219891085236339794857600245561275261760246804728813376039274681212977585546711720912315076213841085434631907945782686273388009694030478346894558355584822899352018310129893699512736573130264643431983470508189807652314139648622635024207313846918427001729532694743223147778042335104884330016933719859780376837176696578623869454992444888803432909116512311641217998065860083292562940915875639796025546529273506190921907527888804333272373750612004542632101240093859586246882715128649883983904006568218466240678055187221227141043845829845548468668580961846873419811241283133740828450157706585777670109238776805187117110727815295233551209445759722997303054835417841321405162819517421733030954663221797763635665683952556944360902725541124018224440983548787611534759317705811290431334565102012879088046262429223274121126429465713597268017284680307225631292892576799565408109324175648573784381973740176774670895192309989269041593416477235812502137523567252335900082721933776728720431494029096663698874423379632764619546383559755531481188927867858236932146161241302751096006452844416110018872982241953763315819896156439360995877586241026584670166845797618178413622443596832249861319438012771875078513206405119656739133910602866038786514743791344185128990827802086596949192871168511913335980514011324418729324331437277283795473125327447767793414043857291399609052103783051283018610557961148014280660439702681852970050572794182669363492058904112924953475856434068132092985047677945240597469364139090410103153195432969427775973711380662590477225502958848664491048480985560153475784610590532246080243629132641464118988023725608562955213428795303827933736767732338144326666510733049678886722090104946103663985738030657992870630309959725975016871011397758752271833894465038267518756560041888836984711113697198877834185238802738266265961326766431351213469855096756337360066255904526473119135569815567183638259812815964440898937781232649216129526113179454197774312404004238027282473402781650947188097562760617998601565384048837605035523779990061489722531523092360424864365692115697512428695162043126795653292687530563053877754046406216423339086867193967860138400486237766819518825905420542590342131886209489856460961875151261416345282718668238012348506640737781438944414342962386510754543079967823203286717063210497391253948851315147881151906844074003381222545818451047821394587305354638932384972977240109908321874030393152046936526094413904353756764876809928170576654663745556227976605705976781002615605904410509452000190601685286561564408321522195107153132854001389765371734762949854620759640032341890778234206753950123669747714336629728822054163103268962106849566721426410595332095847313816738482128922362183583830193562283633334595587102357867904731599590093723480935720557647663082826814121194148865264831652284620155790940287732753846844277912450748655924461373702152874577419264919187520106400957752869213781561440974939312342657123837366955080255333585679091140452121117759185083428591677422058505267062441825473706189300501676443688507390298258042861353733023653344072420357936009548215143598258721001124467221366242901194603539206015632360796177725347872867785471826840604530485138706811606923947989046723948974340434184043791643079210878813290607190400663077903602317521175108693280725083992272939643435675443916937683851123532580661573088727969024977283744856932345022930308911856207872899016211284495083597402167167642857280580060078491794480500886254606409820593724065426700549931987392666276414593664221447426293426999067576667515285816886023246900864686494725779118911392526293152386369444045785720502975842469073128554433074592917944198750829533389610830298578803503424074522157746100474960456318554860990933788232698161850579932372490032634960416301865427550184211163200578544978959142726994256126369424410130941811653962253723142692550886638842826161013994257465635333975703398407252225391419337409051400443993264528378281983787095328691508486852749649129524945998959445742273761336825891113640603525388539183346614094195210673874200119605841646923411462016016919096242766759868361714740579203883382037071267913893035017856215406180251705401288554954942644110713211948967306272186899684399201041899489363577732054191120893046604509425181618743380488100793534752858186923512028056841091269859468070685572225182910197160136387778311125265552324641038316092729796497830903248946540348181067225924131200317518335023058809244861410708805787843928970564440586154365782687701725872526927175241438185315582410968390007535490136889479051789253445536592552759634742250899573358271136275282711267387402872162912156660754837075378541762626008663351670431009397824870784273237637381992215987111915843464369539395066405056294037995438914203126772893823363233526458081224356116305174393066826873854996987893888762388415206908916183574329373155856466531369637518895418568098259387033951056324632079923084556178236266788597986981025616243358082311687184467501233598581810059905300369111566270026526976806497970874216705302109577370126712734605250856496084201993218574499923218248653245121264467800645759256163870141139653958475962576335010320363850822099975746139865888617762272621971209628033296973762774818730513009720374499395846546265962057388209252112582330528977934865578946100515330901614434200374518141138634664952701197236859877615691361972174409300313701264664140465287314624708551979312689987095136000844630691808835420018750975117948590016592269863349738818713053200329881256458614571189270543848582664735136372885675002813219471657287734529942872885487109638415391782566546717080074253658003298844725889278285179450171220462903334883670646576127771572894910345378285354129039326702254406977537183432149629218564910389154558130170103064084316764483882373892277944849622090364900408900988623087446659888722322333736866661296719420111627532001312940529810838817826320523169380802727755895869971978532118135786518713894658789913252348499600109035667769870749384146371757051802998398851221107845153079142870898167821087762787867526271044383214128647833861351075126912707037775420073172061225204820233316670629187079156017017137345019571043269404469537815881249693436530775214758661676938778876076205049851445191341771978196920425207998852679775973764711280688191192853650844109413392147639808223180520771343626097647291351753998582583427466072089963276811054796073058724348986855437368793659202448409389124491699090834407397583683018382861326124626452391479163709341712837132450495662001458940877075947510360500758630514130766690554720654876788126057835489482914661193908147510795952424434764525027629764826509118938391882323582845240998311378364408675140953816850164269788374717714912884563413644222008669883448531634959552422875054502077393358378402939172318448796939890006136982157102877777196144706956807436914395498711673364611519449466683468987918435904163526474252073802475654349577348745994595829340516087532081932518560064076832707070436891194911472533213318175191312999156473008432160109112893629326689903831259493652024560684116171295249564129625514466758577752258908487375970476099259413913964488733762457309912861273989362724566105053538709117929355119973425270667064983803954733524053194938480811645934626827292463746915262703016917721893723460830498959332578065346690079593188020912273339380560940715038375618294800002435691266445228289628724105069723422473344671900242038008619136958222441687397959949510896331625553678898708891947336651670585573437857415325413131072432631189632825926991781813305313270611697026039186147843558016646147716774251167974380036901872311283917271852225393010259645469366774238709005181164046045044073981113533312005476537074943872965037030839519856262290615254243267299825276838518859782505102232375597941455571984242601341883690401816038418441954774243685147422424128132445376667300934617407533478842331486382790991655272348682735500473133917158652599420444608880288082758454837622058983444865659529947085269152725717313452763558340010461559890391840702169714265632511978539598701633797872355855924181519185796160163934337848777296673767573224789003219299683422534073452439313105590427823121135215654644583297535599423869731488698405599838103261660967328521227205501105367606428695836851717136732604702214910414342726029303679549669771584835804282495595030447412667133209572725634701304690545888634932707372481244042177458674918920960226890880326836148275364469415227641592169543018764856843928624505125103365626323152597575198680299170841731594474837355492383736829155010832099323014934765194085996235524855733324620645611097019467390528676175057700978188880245409584912374459599743565115159658059335656201761115793970350607795157549363350588963170138962502044321538916723479107484104123974308962927246991552472982779360209272853422999438753392786621246710329186542509479556260084140327794678603394512300868178643469244781781118435882471365168617511805695095944824344790099488999386889724315332785972547937429897903832946029146002395873399785136276303712449556202322426914858332018736189386763170383648916508905064663022848646647464507760950195081925396441706461279006330534533889225347401080633410551348967483143025375246142340638364501639733714356798618290030484576317935286996158662231496035282795078213854275761940499419217427862498717006062107264662846367966612233401630343754558827451682827220664411016030734113342179998016168281072432471900242360792423933607095197706020350900801461400988046151521925477379575482692422251434426850744137711442235906467369712021040491585504122948216218570314373207623399314667947153204278142614745015123855412125058312045566751134492744013770447906686115665417890175750988322779074726669336959174182886588136386059749910092267618148864276657918609650118742246560699153017517687386198085963082587547765839955972676943348677767368816376514639339243995248719442345124643876014842594448671783730183870397170794213369335584856352943972020392028715132030340521884078984191662650103036840612512146365931046785193692379225951141265310715778208527245470912779309491122715606982101853048273333024325435217763300376980566124965642186366901423941070535726676910443090163394139528541067302417471413491022765399158543137389679941852994960076248232276260806771808943440929102078792657685424544510596890252725489708000481525326471595492943218904773136292854066597265086411527681227028292276682512358432537119115105668043735430769452413454428111763152909143500604223740819316802862654259089860562130978852520724743987586550963622108314590296258249048821082946162471673675301302039334261611764185415865805480197698941208190213318627737447332541329537978379333255996558550661140968014846401184253609545488345395844533630290257523550838982037618151554797734205871478550022535068355011709045764280279873644357330139028771414621686951583567452578788649643454485695867468689994813108883585415779024176467863174383494444472597406918609757778834295970757441799363328825103872622092661154249795898016252671376417091303373018403055968249779110973800428234529441462837350635162788880071205324953357056441961372379807315259263698113964614531978510144670613355217433527612719315224414266323470408637004542752985386623503145149921328638393989906558629839100390732727335746559363788875008619525778340005418509654252199621318571087095337094122646751931279620158241159297318302161183824949577335904012262782095731923262227116136030709677603045165092871675783995759919398646429707660517377441593128500299617968431302821535226523570708936984738753057506091280858437906350887526006901817448507690089604429394554758670516638543053786597833516327139693431636505787856641360373040051314718220800013843851765385553345459038203640833443484790832585718206762488719439009799422629310900089712786516657500417395480892590880680220542594645202473292274460403628009040345347024850825475117135313729758661780708647562156774446953695837068417232334956289402831593141034434576128831644359152671302974023629683631372777381510325625984305397597447312535948781385516128495204617921637454567281663728624484584324535392765961639584405169662110550723929488301937858369100706138313253154464155595889879711462171464287917566577660542053758649495765337761316742457990914705073373740908208793078277509547504301379324679461155267173846037404772288736926200978543697796565520192731993929124040396453971457992699637900364799231814788689060633335185562437845170280049495031796524211943977010446765274347178865777269409370307374771209403493396903592682185785928836179734253640506007119666903110111344750182074119143764440537849216965257800023265349454760732026990067797354622080090089130691669957177888152410066967240147067123128852456281258719420572721527438614924111830689714088063274458642756402878212668568628597658870981182948627969154389792331086754956261723806988658521858297804436090090474011592974231544401567380662372048971513328834511030682311456583686309238435602421280220918703717970044729559833488616533671757351478155593711262881375248947079042419998550403182992479695653764140446994213988444626746959186333397801112121268579027822565736767211239596729440836769407922194481107808732395103986534055199741734897482632163180414471847508243966132077010236457765324002213322961167412080724913647168589028266858182472421572480173633817778663035903276298449062372597931064204039284279662630132051768914898981775226040953850691282882158021758120739068738021274208182871109276232031377223275686949404710258719968237743776767681819716112338420114999445954675610174619580076208329278793896574201446912046361787851836207931383635567369904777655530738427361971424497746847344506604136037206238604425332616869028832360834266734892077540632835342853056280247076152862371559065381601975614447378266211139739464687269596433715418438860384743893049773194441241028654373351227248300129540203929566012359281864869507015240733683522288216857366081536391173844378560614644712579341534685698593037001471218769534146426254390081202692615166599047604685972538992947997613282869676288094692369412922904092196091793210674973843881138096161140603237248438258378232493913728299286338510039381461055767310939075135609774746500617241248366892268254186103989407004236320652483646774050955090510727415228572481036387229170998845174153507935186025533675062965389432837892376243554471296634990243462851602641047883663107973654627474407811968285549914254862565190006519850463210705384004153913492916248442850466337818779046393801244466455103193906198338650379294154275283303840522764093735289182586557715502346813281315261429697107264017192377225729660226702237384169126342923758876534912613872775154823759344293609644568328649858680304449874658362390969558671347735912935778576833174222544895886670779401731441138780403974219227852747207180721179681352681330813707659009375497164126049987967545912662647437730639922259950995689030048775468127345363510982098313332845823544192950860875453429125853221394618501001734297148217468201773464218660743003105651676855106739381648107278805865880461451423079883134491181982316755776173228305915421452937959596298859025786619326876778399011038175712522443344203627268623766175798556195046219093011795124974454633239331287827195842181409597243524633229942430711980388892909016332184128875113879232439780371778682513304255311253993548680795096646268629276648937670917274030861061807958296784634912520891699890470746130872497765554316147176339982754834614550850646175961879119470892538934528097735239798109883597128652602612848436407913660587429309218077982823127664151478708951390362840771219594821353644004654591509865488632462000598331981533474322128090352338599347147265022710329230054288604362959974034559819342971063413755162502745987138097149630288105695243790773883601648305054265736518322785393404377464061332537272325937355721497791388331800451158292321840868776216279871371065641700431110753324781027912187318799421417196057259445439665924795466470518613828136307141068486793530285495608402300030680184230913528951937452213947088188187270482504649124437280487720676832842466231488650466134133647251648703969711866920293888255426891177841927202378072532485697366656398127859587705491604489843144886727787112028891703419152508075566766549436665758042820541666996270280083481569600916976846057285382469273368727498031559981504567329250016722091793603756339342414743206650982134863980406945058016995873450942151333608505159041678131104659054298097076240963244118592362184449837755959214784086383271869599530650600679313992907008407271533621768816569696830868868919009104070861456814645276582193884156110637480581093501313545905841621712588712112833249051760754176797818619531996709084919267734915644769569449791341493477207466585359735756896934003260702578230270007846637762266955342473705612751856994535459435180067437579940243945649310750438704183796647697229366205631456083209570635708316667668304629239577801092743279314824493900470445446813762340126760040861218642321695104816432037809335966715185314767741525168795874160820670078224582376623930832594914365857058739176324326797697201222376112180033623890454330089672616299720309023760758211500397638023758961704058093692701069939139805955061493542741239937534337629665715804986223932857362707846324855820349895175431185737962295683487913720393079947944560565572095034415790994478566641070793087328264346451965822419249502653059110657633475730462638780617561857431245725675459150985584944673998574204546065368881807341881624359714887044556710774082128131841786103165791462432802571219917205301509418537286303897709512441361775466846533367366228217687397340445564455571069195680543380920229309180525936501483232229308160806090251030518269490162692522051990780811105507604058012271110404140741917817635807736355709846682827291713086266972618471022540489309673824975360794199027574435868651883247279517965114596536310863162931832796827890763000224330511830566197936239078801663084642314011544172859912553157413613183639715940983502694121548774589200875725699924506588265410183880026398328351958016175217592439501913631778466655894314776317680456694657361426979506940182295829853488098839552855793042595760551694934331383024303830761925337023411756547541165235527465502123490337229285450654949349868600432158517979567002257867239326751496816454250267814939646103012564387290126806170170286228679399119082198757238034586569962714809569477870695575281711111583165674804298802755491485680464189001451908024257653256878949467905257130554113129009326077557319543856204294851352009710474365326601694079123966930307672746644306220081312179862844204502633248885537928368393171363120421602236172074975664197456623401758155235185120854604235797143058171991888322006781046501109677959821237260750790859956342251153704268005844823745532755859171664379860176192987630753792623708403197401528459060585053725475366153358204205942661626926370594571964210359190614205946120221795167981618348037525659145413828798024929587967789091600127283470645088719185930473816794557329826835728141346412290016220410559175121759900208992019566508359514079754925672737659775789235729035427170713643615808603705382662903832981418599675446769805702073464080225304932307785124876953842370266753994791879190198517912360615972529424977353231102134314512759535996173710623568479595501107633359525567721984772150640742054665192892073785459494108966566272436667927760864092658727420663259706629227332614030279993727273782467815399220368901992316906563823614594736691055654732344724779252624061283300940453282263935246851336750421803357497970974264761717447216344691350752528646872749674615485861681958308851562290728722906615339372882178137403784364532192086505827066663458851275319246593868580856428089166764726220123379164868712065982790402291299097392218930270867396915182858386601780102740554923372604369479756300466962530733748145385352035083937070718280606296307036409765947665981673373767514231662744153295173528591625748894289695839675091766388605144451160368147814674245444169721719282214210939769800188758818746486216450366525079211496150758827305403205873915502484749636363273438188845864733289229871396852269451935246106159575865318575402484142261848484780535884417169153714060431418028599539642491475543756096083146307919753044427506779583947723277031801740375523257044409570143144504472704412983384158234870737514297995004811944904768149368431864485080986116541461277675787462305787669276547616320336006512878824595062880510370294266661055541640630947830418335216825437823725899052741749694465061875147352164903796863399373380323134385838160285122821910320647882236596719647755514864022353410312438243483445257627847864116646239614934921793442903410428438611065466552651819604348684298394383522377911417015205379148478807005252392700382023471027300165627161762238083562211011226007355346567317148875432684286975556178624289873528941624006378024844437293237921481142211459995600530672173041750683069806231643825526187154498180354374631976247961095858338759759711492243339544882095986706419275286748504778875774614383260174632349204189129236365623808354192116785672669264132211348293747356218942505313015997651348312060278678474743693278162973803979983173268277337805038084358993212315771205527309286324201038553770342429659943991206161866257347338152846219478497486238969470289347438122644166514638783890742027657252542604341812627549895975154089163215148524423838092572944053076474331571725623669339297879509836770657984679366558301038445332959778439528817724161997277411262887256984358982848293678880108978370103947340735253115030929764141936706988579169471295886202967514338070098813849418963085678348644986886971215732193937535903650167959045001437580042198332778770487858018831675836218651431219297534840099181295358354815283415543226164848092297318938933398385490947739010959607514284460381161934528180082450766984805065717398677550343334901263698219580307314009818065222377802832862751032449237844655592988102093017311538376713213735676430299355746120092892682837445329401573873181747664459638282850465724601523828940237260239244415998274048289619017184084229133966645306025724628044351412041694437813350395397483979762141098048539704852396107906240237889600171665175906147271058612898413712653417823519668389196729928360845303626174343379888821676289882461412858482660996775288151291121007428112069314578884902192156042998722845298268511018151761692547508461323084049821533501497827520381729159349358773654233672187716464739889842077355088919369224424397329317105903318755340173008417996997824508183370748983108524159887557961589963858355799621737873453372446473594634681936525681868340831469916918789437526805689248771277181792791130304412921268234896695097799568247421903957353812315640670705619948133740525075466995629984159803910343298719661866620612515453802687822733857943071147545925889129043783350156200160633621634001014476397352325163909235927522897228013160247384405464851201857020565504727816227249134526217093638915458480659845510570561895150167462451409568608432878510468237329816986571122711797385354402733333261406035333938098481551496813874347079319306026511407913352460696600044157886958703286522662377075949145995552574092494538387278331552531402941718890102390304112285171156915343686492676519094377034710254114939803860447777708028784307168560654204232900690211544268317475527414220572934674001404272748581606627688208059923056988067843636499897987713090952074421994319313264042376311112080328969551944962307839788487957414520020335322893332340681187349010700292806021946689194614865721986868987854054037169876749283688979031890145197176507347875490925706605027225404761168938346279424723319893325235824867334750274888686309337929480151951298553226261874868149428036042730125478242281604603387920959062200692776965520365004231448629186290371947559785622324554667329030185832569407767354543264259691932879106744064054666523011960377118897735976616603660113010615955748913186359179932407178036472576685492938027390198208025236692128060280510220109141748672854672656968292027535660675753853384516644147005797550249190050451952780241532488704369483284091875697598043318118545702643367384746614717284520238154761996500903343694098689125831555938821846849929399467872743135337091111922071592906155879228736307755135792553821734441794469775847139736312137749023314903117408007891191326070740106084337948759360975232594070646638753443858186701250446392002448469860881996576238194617142042329065444421426155398124968122535774711785997085657697516909879679193338714559757863191759958678459841188448852082548293561367703882991579505498158096740961242608837962671303880658715391621676297897057247696559179947803774987217549620199182262232601099927173923488284526918046824085229702811090824415427625015766858121470112275585752949891261920623760294478086976766099886931029964848362785826667733095590290580022008212109668437464148358130802013163067106621159380069862672060497930104453322351330122347463159493561952233106607022261970277544309034977758107286981619912702683903693715610413563124352119274845975368086955847928733241062009061519660102407743491594172677757424392810224044591093321180043278358975258535553111483025663294964984070272520922170837218044698723134575974244097867088740788827925158069813010240351965598648943331614368296460710215306009564404598208172959852806557959432467414738554560926004017707547710987428505696417943346873752325232964596646792558318824362707891035570919534101312824815807435515755616610282705668210499546707789413138637668988741298553494397266261697996529588164977202644069103798041698360642212852274653386121340343956900733048831839185225036117344989458556744489282506568304724985872456998095750112546129924932279716106465962402487390985500687929983415200300950186494735828688160549146768251429951534673887660000513632375023859710348923851844567483269210712497322632231952280003384394254297339727713605396158316894495768435697240909930291160597756593174070517832501691355051810963872638901857228114626828040840667101398529545125804706726387752429374300234869433872825624958951305165970030967604823351131028914309801951366065106328904354025426834579380627317192568960867237795861399654292086623543506910739358593069549465599990939290720121288387893400601475572781865012613911078913288266770490536076227421028875168198877768654817947545789504434848131671669332069345730833469380998092728735941054142482871801739007680417004155561231183223640144621514840120554671367098170008108177696818657238430644294549658178117552226941481825238419318849933845329453624855146359888275901686663454603122804312135187188517016852028575814797276296713159933719432924461451488987876576067564283211855097469001689716347249173214703160304227817934339235268875958592036807104216503097472955133336118544490843314873251205296278893486986156428351170949186951309040470970674260117232450664762392995955238298110624824851742797937007755351646173994597259270787529035863271385658069715241868866579931856450641170682937139494998699104510044850702704171238704489299442272403486637152265621304049027185025888617742458477904401591106562230244670342180656284389770798694082414451001476746125173004718370692185885421270518714442564387356767223248898029715134134738955579301049516797231633039310570947451415891647625738161517760911453093295386352475274329917166410860683450216782891350294255474043905247502180673841972851048977905645023859514192497676604689062181975728876407208870724609853453319310608746527168669972217688765028715678757284440028781024677334539723576367284826003464273109071730458719116534864632261106919850458836864905835881340904362703798510493517013085804678778787753195296497873572705036810221206573530721677218393032400880353573608205315493451510264851330278923141930424398167882379830915036284429743849565135156132909110282893256883424188921246087560400597401987739688733539200969992132597061261258995405285809268841449614089033285591761807894593688716057551136296444995794511238861065658166151920294810516737444441358586096940786730147016386817940821006973945698240320282004227255898484082465274253103714272613553486031515091993756863168819586772451816353103152253524358371499406072994648095670866969883762947153138204036219470804060907300536831559331958433565473054986532620518896414301358099803459185481002416969906635124229947337490562292357021851369754744889737790252603344917256931393341784303968530445530306188411348421874344349470019429873182911881187449625394553483018763171814122160471057428137631454211720247343098525602426417668182495590997910984207459107515410393548954327947810891821472430670714205896005290322396816275193239437133973481362271406763265156274881623615222126387977201905984834653976211938824052927336911118176779007057927502738830098586760003110516953855257421843103523877851914223368708780589046993204719391501691673026101061838510297992706366377617888471563249040275508765701308791254008952798005498259371756596526641267094423435121130472320015226828686477123127755794107173511482215604870365783299018345153237202118512887189085835216721795870211588386051416168961735750319339010739934924606986841258349386398570676478570400141004882215725676355984420218693840556438708800742659263811238047847241626175097153195747243634931008708269505112514160788606212282065886065493129429998037451648508767706561354234512348024387609313130144286266651992086530063606745839556960949512658993486392099783154706131243122394351599819217627321017475732867832561589055638909428146417663271038612275538326470813292547264247537245669158736313992745622121666661845396245092370015959670798586937852660602685242908801666008114128374057712981149138472020055852323174737240897560328546547225537041176687972085794344866354268613799640049845632786133925028589620484513910491400027803708627766665296675468144484339848835837692939732121932019984341730362468183456826573782398332747773993689142916334517403583380395031034793376296399854192067653188653912702960423385690702784171593498069027532096856330380090697019438180843215751623993634662974908912898281836791946605665726242406989300417851108096433195059745486521235088572152572597743350004867435986240921938168501064015093033103175548990679844967074184997549744665209477540306297633624754511160668001616575277511779843755395310845251272272289946488726235846757195122435072962785424973264460330205756723822679055828162360458906049745621583779587685987080261756250554282540570592868911590924185927627336557291667390775195518907330312130426870451404961257250740340111862206889758175833906953640303174579982842197540151562627823177831696293877319457495681858244642793250929397185960593337237476282719527824956492100502193376403371096079131732767628552962200375621273709639724841937846253387818842638263706187368837670714002380426183004903926340364204199405529243945104962621393885144967052678556320527776950308464134759647796325207422659331588242233630537460829744877391430194766302177046452185885646412158623120029352492408196310248314269502281925089434156838655415867589822038493447969715121456515511430449650833067297916762432358620274413042949771296663967436038849063049012619870745963218973513340850222653525907793899308874262142387094648571693908193097977298800957074632291717996661903127123098026476900351810803729218186728801592617192264377618400124127910222159072566783466919068157623644849804828521087628757401771321550621620258082896333987431458181036478019682057730807008740713895772950993221908102366882904676799032419984035153783340186983990569003250742976857405469268528211324670719273241282193039892554431500434489249815287551271932376404005584110088164140999082408022463334827515361856058780867216618772017143856084531548842931350072900420090855702895940343711035004847964959171321925699714138033037340623666792983270768285357901984479781877013115395187578414932347528617550618123298576612954573992057196892593519451647828521357762847859542295699308797842193738318980715156323189766794723588832446594620273564993653356678127193399016118002420055753521000408974511395221043727909340735997400762314572039667503094608191028002224968294579824338622554348692017461132256023064038930184168246551198056774938400151069135498466437984434118934043529443644938503176400967347469841155437715970002313413931754975189711793649915907989554181859477186801679700615195805169226649127241592320262803775992981098455687610566200463008625766041566972872418366257175113512542410115895597243773150812517306567924467029967585649842210513029272431886089937279981870660882125777585628916578148006321235155007245620194809718332077404249767421394478618115414226893078163340501482721671064069607989404046011949628213006083440767469352085982998788345088579990682612158434774228534652700840639022677815683324012521488742434088834915718101100864180498416333885528555344233008678269527930463531460552959127219381138051231095737698395621600115969597167071000322022628244775718063443977143964495979433876273555813695076362070252849108748474100826355247673526068795248353236307347041709632004652845177501997705942532915690213190039658998507011404012578227415996256735329148431088580418796675830458812769127088411138690711053883861462531344358566947777205557281134981299119582204687008276511066698726438397702318369098089374844507371504284807318117682542984516530350085238267567421011067737187568655170793712675788230008308889731240227864075958045848507659029080865629264868163538754300959141285731888075221574909653943295826741593501792972373901610545206115683220058319624288640572742479690278341124391073303165204472779697698011608505904587466988975923165069016001574134060672924604213042886442956843174023426619342677001993935511310181778024978269229393556322002971872655294119895675826617356315965546659410470346540805837784832304417220064328563134316573831308330607029715605274359563353550033670047022461595927975697360603122651557637781642257305443749180621403253158423860376956915471980637860025292681787349991461790275189818416530889202134303985069052713724544323024475459322628969497295104565093786951872383064381449419636372784145025926527693608214814685178076250715406784826672763021957282418850070779572547400976805700954611360506506853943503210434514516872345945220603013211165021375356094191428422633287656232292704403836627343113974894508865878367895832966699305453776314390659662855000295838835322332957095348151861953846550137912151768056866219356957137021543652900413432417262361854216266135428012448181674130055084027179861616446954866301780239119730873866484845317270971705414710402094503377841955512419456551424547444556371153848308717422665922756774011023493837015239758711763842223120392450402454873819188981498955662847752110090580839033908702129138591285206426008336593489391752359007913600656736733742278127959067537749217756852079252742950961172166724138179875060786473692317384290866160740211063790869557559943647806836899850686889607116280771406653440820492153911605273661552749634512095761947501627908773189137478197489881301682621887812920541100706026895066966360790292827943933383044469522211648598224747648011759364426671551474061963728863241341095899806762784221874487000706491792895547035643395184000883905313037907674352976749423300014571435727894973684318083161349103703637315744874800960674312099904296074465789756735755915842775176446114465115498962156113870426282013098258715672844757315126639708124796032186695243250634999988280917625216250849570051143522989420343087430300173271317665079625817795542125977262437850048933915628903956657563822977010593105155050119605558354706095672457307696854295469618336100900424595378674631567535162838274039579971748988047152738095826357629203277027420614200595243293818821930507145045296196500901301245781821570190235629367060521765730037194618093921487518233036818165216072208671130261662199291751543287787126142470384312287137858293825253013952892155176315011997018235246960953536046223773987845679262249790238801528946426027684717266955832693838858919856222435134713518357691458957656346501801921941874899219252567630835135374269993282388263827491082097358596483450185594157856333885500363197261084455306697668709579135104829175240702736776105729840029307544074801436092266659512128000942730364965770191036265481771159598488027331182339150482576322207609645920113190868703878106434472412146766385594518328065454792760503483570909051424228087779267887887483708272321627347965845780238748770803810174171344475848090593850487704028241262846270395146736414398175216774985061449764091277301547595436259405574321734803631370834097243095881289078093700494183442764702746460297651770867210276050736508995888520887463729385760893327939441448823967562735989435901395824700103620200861687628206474642237389986064979088538526214857426341239938317451951357723970753040344696520157696405330920718210324970740053817863229023423783061170489995150677552170335832659831826814672777155962826150820162325132405463042547977088151782255250354225305558174949054108592437809188321329649220304571376993753072408329019468057684455391675808436951666009353964719297411706577428738933186597963444602649347823316965634665432588993298725698569762471121472149162896847896426972300665492720512614448020240110569948034637722786856391654327363162727248295521223229737833990509754299602726994949001578987818182263028081469011116059166140377166139591555848134395281471968629533354766616258701201433586740541646560137814833065105227873394822471283678248156991020135642359289833931135592574091191625912183165663167648118371078620196568672375350436497453412708699597391779647152962736475142001985675031796749791548512921931191926341843354435082433245389865740792238938066086103371868428808016878471822922037115495011869130693775005229132144930694498408967007950665146570957478551242197221390182220857818269072705441611474431642119942710503565254176703046897150068360117953551743141089822417541768692225372563359351427643850631499086571812522031988929314089357168417817870164961655555498605552480733471736627613861821704866287857159056453616148955568401922129083283897501460622329088228522318725754037613419846746705576879621354264075114359046619883064668744614329041622887884698395444681765896777401265773564895548391348400179378086299483414525780691243593367060455479410654336327250865878331730256177246616131065758958797436451763696840652195046030852491566371884633349076203735782007760572549346594654152992105755153725824145998368613126623348781858350698822725653237938975934921127681946914316490044695770335914569414948260613758315936864946703573229228399626171377586006948977346370182427666868639521334560780044211068650333958300924623358031505240933072339861964990454661750373242293909354032821583652038231545711491600679811097050908557228508768871131811516673163907354856756510125158071925720251037605815377063899739051860607786203981077781668036207106000483926138734009070340618660247716240940931291566786877802643099397105924711766871438937423654058329825040471966788856421307941479649052096812248327190106538937131371315493631071468196225537242610532456284260665323799759386940614226006659189537912539064537067033217498668193569257142802198489609390509174537639992739410663574960678984020669853068087878279891087886532392579325299801546278443338046102664145198335760804756245634049140195187620371948513169387386570576357750981893380481467236652872398660255631466335296152812562694814893379427837970259830487380978216061456347422979185521908835491264771130852547026355194724511322188911299570243017793720829821939814832767368029454221869075608725870033587381332438251979575391607232397132192304119806192990535948805272775839381706557120531636547419359243351809177133609594678529722988427901967811067557256985314460605879294668740174229835593833379855989515088441121934131879963302225663956461717029750176813945798698469963957429073451128346355653338438628300616017198137948059292791076905520660957298359619470372708634296701351220928449612436090150070618825223962284317506211771099156053340946527037745322483463114855142706283840260509441547908115810279367201577683741953195072370804188531469413698368608517376601888918113201369635706032797325536861558947685515484778325019421307072715875099510846720907728057847287341797989939757868579030614097893161343443599505625123347003772880595993850191424329500296466084094255035420580017254841664817631914251344054390519704947496117914496925158572929094056866923801772912842166183930540600490775355076734981254686167848211270349520023921515627346680120667412517019751131772090991103022127532825662096089881225695940691807176472465330453884204998679271730445295377930455784673510386758211966672027229798068826513130504272207738783515336077685933333898216560289252505617993908112310860465755710526618840905612765295620411905675952805605976845503385255503278665667456686497654477671532275352627746331308645534469908183393887233844214425662221980682780264448576270666605152468863376629340457300633075631182367420791967426876433020747514746226326767898521732866708968236125036590478440641990240475206740182324417461872174736398760746133681100943434156401113201276624594674509024199664379589333068996069033863133816741460557265792132726013223769591700986853823902130236773677322240341618817071699786604473724011060632838325413543669082638923618731420909483835053571179414554591628968884340970954485667117563260656206426251165364846272217486391152221493059639815394853921616402100448896753483711572615901871527507054859766218254080320982654230810205990653073300766381094319920815644136218863477061845263421958970387725389143474352274737860393470953065931507559095928313172062543365515124156120025204651933349749442079459708171055614800889216138886801819385745408351658023915931574862525855790765312618733705776637486002557872443404881724503263717938488390118061535713380899951512230263508501090060639246424667940572523578594081727106890586932444995886024757815231600430075623163128820018379530137909126798001711154092603979055949379161454411997073352704977510964854796057238835483615787934786665644247039669267814463035693200282622638230669650992901804114868543314022728917802618067325435549054235284266145102282263879549178430611975875243236444070595342614331489234839024175900907943958678046335480242107738892216362653555722328464333286674633573911421919152273628587116270678391661930401024661367683393902609738243556654285087107830270154597960455925011682190928171324541331794906074769107585438537948649642288794244648957552706606015633314644083494613146306807272298549870201582985424346474699105988155116396544383489244429837511491337499072692046371776084503954589039770096948810053403967099868059539042624829292219541478879879485941525670472816857704316025315812165590629778030084722878692148265710145118128288589245965142540691573558001065954055466343424330476059134079293612412881023369586190046144982889694405829641338462067589386768188469069212736312523288915725309898254274162997206182781270723357785570778204193558790630730356146898180244019729023813143305777425192335491074028024777748040205166163044144957521864132330301397527726250642059367795304297576029125220841330799243217821351011299786465254845087736548799199540413429028465692880756615055063393675941605972259758988575095800735812001951058634224819066405931666237920818596489703756269590680399757767627758670530609486196972747910914642244385808507709277712816779134136643932427333994599697176874660578708273694281666334066424753927716819472066082151151570907013366658067863291046474518199078891756000647841721670160368679335490164765310957263762454562366317436255689672628096427779869216969510464456703474217220934082377170669898134492047625261150787289926324435788266219167781878100836429774324272428684086798809661360257321765734383148733234887570183081665521447832858137997788412714719939211890237461959412698569800384325469820282284086075886315227293290456612012573906812205015796215837876245642232722657221913585992737422435492818449524561278243464723645651255321796030323700219546611948482692779385224085609162879768932228822392088033077823274450604557711844966147724389853528974886005341729760682159794743009780816179086311865322959055865704263940095339682115641839124571934038285504741146133809440833016981196603496268306547284474833510824899990628375147154005029346393608415927344964884941898183367009716991623500646919920635345783507862317802527436125762292845165349805712353771120622749035321355809113959356781098492893745044604803525844452690385828187982593257930528810266931359448984603734860684208128671331479082523353450978955660576311803018682250936549818351350505122466324950865288693350150482307178695828333258744563245700745036611953545560475485619827847055907144738523504582450830823245833716503382813346116522092513746961020827998441559855815243707639338865222733933862536606911634732149266888256908606556984491513593488016400279345278461198748549907393385483285447361966557455215118964502533366491323311192185498353566055085246484929787921135202821349521844894603437325405775969337223473524487818352695642136815923205420986856920153864366789479634168847134859730620970568899959485761989832404603484336048559990832731802025289782366880944478214792771885009544405190686289955030503503740884119941253168197233881237735082957959886813925130581825504900544128005764094241868718456594691829234896144536992640961614534280510258096611628266578653078028290823605393012292007572876345874518510261281107958848116529790155060793340467035822161866510263782951572614397369452455856534639051329595650149299559684328149532256491084952258225990653498417871156906389503183796232716348969394839368989589980240548745960782709910770189502230871237951866189523715784336877665883601104305454936707586693130619386606321766312987187780681728064690721714904153177952534391703046517436378450123028018992826123889545993062684365113546098866103424089467528546174288654386744715319338938202595512763719308373644242430188842864319764111217165119679557462034553078885383572629519485595662291394428766495981681172557243129539025441160908244240463757481365752456912811676209892440201311314757476575606684253910366904718764303817321316823835682810075404419062327029887019598420063555759608915359614836444479347465214097615809727577144059913591791881653094931663105891983445903726262489816270486133987148645497287938880861910114124291340059338655479735801478211605098162899605451478152646761926328200792783025587686848940346466049618467063864894448017972243630321296695023447879868145792618270571933768248325619539907840225253423131271624252946739118433360562829283595143450658463709483769443447470097000717922877917951209299570515123172359203501867128890129509149104576872555036499544052391515088697251741792246382897787335856060404969941635708180434669369025490481621120590221092822211607717851302726977130295068071134599024519438407373071429836232599710573709558072722645862113213786891198985452542314723583995287046229536074365792823083431449932073822475813648259210298412290011125772709289410881208693351543140616607904318850447272073758092738841273232081119806373740453622191268204814387769969509167998430058779834596923969402999262623839465054728319555595068473644429349265870835159650679892616361816919784834242174179946131625590015296132024476257593043526413248178609801288464237980573939192179431840642136055455861652856600862918464993895448352733731643022809620093914494608334162158379238634577141515752636107397380319626757445110879818441639355804375737743398885731288457111995512603174277213978432975472547293288579600442461395027095232460528980935227512975090572210154693570325264574857350718304696968019112034058611974367759533959442376032443902247728978841793110201678128533093055911384868266204980496062533683052670043709869035945836881393818238540171582123068719855199631750707471300016787100547513106517106386841703224321603683500402333042603281583950388768458335650674858473232711838358025729233306011842507462903015187985643045706499764664468985151810786731556136972763776366158479805610263619924742151444278152822382208333210820355983955727874194712458983503635074680729669757038176076160807971673443562054370450777971781053686697027630413284180935657069587125328182967536382515718892519626949564666024672198536268718403862414710537153856329113631966526502435110890189621044893148262741196973282146147347519370475743609334696421487239456149819088419151851863371413611897142178082812296739577989563215892661664217590350084704534186884002014714946620527821501278104143425868531047800641769663667068028727801492410972881204741192978034506711280522377309571642735861528037634348830282244117325604177052049689641857294747425136264863070062143509702771214361179175846133945480115875313755069284683760048735030296666936975479455864226781756112365314836856318896080928225391384886757691702286589386435959569332229810454323267640892548745731028482998665548416421033488000869957440998185765707010103731540606250307087478400489086572681624029711382734722456393497780614076466275348883881087874293675162144208201290255996402061019781075602725826312986551555786806152870205729423446441499273278216549495161008709006764164238016879925466902369192186442351720612268739315339886383095912526441661262126032519282026858466758055572125122930318227007763197472205443501402218876468579072718708009403789062482431341102924740365073331978820175519544358586369731356607026290812555266426849343264607331081532475692733514275429447904281669064761239882495033392425466122536826475802590641228639508262831577429251666731755654350586846532903474902069658798716885889425991543420284489003159684024086662041003669210589457819639267039469627745848885927446787675820523663884222383124534492832465169982822271352897431376266086085990456039347195268418282281564761601785187208212570665876286684739654513092389245444291486877207150956186071076014543910650515337916489159511710854840616959104726121684388760365928652682077412985877631844795016350581008539150693466256917807182618949628592844371573502785499562965210314491063548971824625854172166835154908742963667823487053192967193934606773537540056438528594004708076031739587202828997020140606124348973704783579571819492792632457586446631914213766334743919344932099468161243615057330404268746024525474207196973404245151016039955020432380207619755300169176120757255250111564771682123248143504155527305865546088812097286904319040999192121774905367837914264415011192548229836157135450925292713709149177478039609121744393631348118118556954981502199775939269105168186363088343434417694332791916015842072794967112320335963408437968420265474181978875996771013060997559264078799297121753981487583505359929443205735022887552655957743329293133720197890974617294168531405603251191644047899956729392256240490788256849081365398194323177592187590475738871578379333877712447830634006377619427269600009719625116878753584875943951162670128362770072199243339132798234892771539924422731022614253629162244699033451254043408366681665610321374162677900076467957277894451084166239103856558754823026764849093334489641773775580452803489329370376774948951060723233941555373602341651281648238149084492068253988781251156043356929896766652149674440997627049086552233061601689185690403004558456938205997804127283979645837972715071775936319441649901082202160751665633472927329923319311045622976889066800732548352103964464024902159436749573756192999891823951415141185088333439443544823691934416902590814196438311061145770936184720828203017087628822723421865368479031218011526124156673642925624412485314807695025417923168873024988846951090066585144621272636070033535182563621794160718937866225074726075650574056156285322948995558014445795871535382198054465981590672467854241097516835777731990483826504875341573220640727709986775953731218732948555871583661667049904165871594405237700175343161019978801055970011892262120882064953509083560598637580913744955225349304395029217037087838507352805506497144165218462213355858727184368410761361788665145838358408121877338876318182326910341397319139869941479774258548778212443773805924673511342637132275779104986612402396847308583914022191461553052732730150011602400776933086749856302683296298166035983656169425242842678042247640338784738713951396971367847238491751045748502697572269041984626888609368207543380171696736871475435192414727455020129735128071819002811982971587199384204627500964566403289579099258147507102548582882693879606634386960514143468987575217821258812322411361882670484337203629739412092698867180646127167611807373134428771726699979139997314750047040371081955189996794451393253803380193777977713642734539600547808408807625465691458978807802017681524690917776516515327355773062457611690098682752462043398488003151812878890319463187878122362794719731819812761170613210026429800948097631265540840882273744156466360387821272735918944287087900342665295758220712436228230403350207195798052398718231183893643868386251683047026201784135673024077105713354760043175751092120396004217920662910736449016485825415971602999538265302424927319166159516004948227928056569960895018446341638294083850491039857631977373024755534654547106235579924708508708549074182739915198435387467418798425625529846376751220764982628543173996107474620003894294380429257846521620399057014012478156343502433928698940389677383765167458157561788540118164948480715497221461812479263263947074135139989006050864160380953804410159037610652672766700543586916225220456752093911726508054004548018847229039685748223313523110515691213531651875038304274339026484220325395054988080279186967234360503114548282744614576784036808053065322520044852584893560102405772301804332902640707970188286051087140739056557486372647858414724448508815364090157783583482987838457641524183377268670833017865925293185130822760143077865919176418621878469543110600382801534020453448283377501509984061656773375979215990272899150332791074268412367640623269426732406717023436878208755258362502126999977231053367808625056899132603630492297538412002462181857163980882685435915453608454902026273811375837352906316993528843940392693031633158520039866098169910326721046047397203203112352888026960887638012328274388747934580896535336850002752670603988147867657715386209151762150039741027497835859027565878039996597634391465569925704452901166601406541201295438819368560191113120740033642889019462508036878193534227180647323702710548579916221260383530852901096590386318137694774077830017572342687689161458828222275984346239709040115914062528600449283729656487753701787457262035279830034360760679797424255136959984248901791647123024493080012415772184626170274223071356137715486613956277986817589651517280936414661965061417297068626131569152992532592865436760185009732945866179535977755225534915444178780775602659786504395419664625003856445638740916575646749685170157754660904522377724352664297992725458404169684772653889363633624751547216467054031633114700244022290565189846487655677882002698851905683410233838339703817395434570748385651098727383359687132504269315478218257027602826900879698833183368192815457851684664566344602531803751239184281047493127698286547278461105246457971324193082986755872270443652608746176061181386993946084248438532287590269579675097389683628491837899055062730977420404944511905760097748855843121299653626887278132863501164669030615496633992859083581142364927495233127351012289533912851132496543247203577652459278527912369063392776720330013059428010451939777405021838494103432474424165171591064567843540133823578625725617309541484337801348375490389699551527527644346439451407586391799102885955458561050682353861031798124922110036001071658024029525182403983732078962153662126754800303850705965401868982782453954435200734413414058708060684510536557108515458640723599626218551587992486986644463300425170738649665896225761839785321500538705834272459071635146121078188770686787427665921939232842854604512695680243857244125905021505160261536741542001007578401022549169269280569282037406264328836215310935114890298488999539845626939174144744472726670989278438440712366231470905946163766420794672567453758924670626339722329459173558385981894901655517749925163406541152150902055477240971638901540140670296116825472759314249328639366908411385397157046161303944802279256264666489699270540666509404446126140580598527769439695427041213651260646197680269679913309275095089565972219527678992973621237018309712117105073192875775223452901866686439574304150074546912871088817491795639426138789418298456678562472819009592331073672140961849682159219389721716542848610785179190207210818610464789559686450035393528817163522441754907850369470776729689997318356950912391737445762455960502713577154491691440126047681779116431246167592936130020389270383721611400130049375954405401576755106689993979263732678975651655085108286902666162983794926881851488336775234744736459005112134298562394825337877734041241618600134261558027998052126515771115138968781753082276618450796647016980038921376887409498013941911840045477137318902121122523852513993666195041154347463699113713236478733464882010644938138160703856782833586951176529744451805368774715854907900004939446687195693947730639510825244117908605412310329970504524403829876689567415164723103717609163534467482856210168932416728050983709237604474444636972876469563853191486268015691375227893520044588924717105268655917994324702822323188676979244866354122130235028318946720849116690245653162312529949766036499935463606594689128425289449641131315326082630917489301123194229882077154798002341017845348805376246419875170926808408097724707714441941401831281913799127356147428094722573536249709615372813914211920155696083194636504333958500939410829680669648901184287074687550732359941884747305297532281870148228487882524728960141682084235185784563296111517602316997911199477236640026107253916520562927320479424365828370580276412828901246181111561348251223940889490626896086057733987187017358306029346578039585762063192082350119254834657218106821432117018902191876634879478374674073952740079838385042085548576029585771877261391893965139253285667902243935505748975838859541531761336901902989371216531923120409914461596425112506191954980493781034391828206963599659141289564085105134903796833104184199088842222199284686405391460794862144907312423023731402138851006801971226639593710673871695161067285817118009277722175075000337459525097009054736265594016302193561953126251415163841751004751797736491490527498890955698819636721648438965896462970870439437921049763166536186068906275206879532565178733941939377779571304062364260533955098060339951770496217349684214340202811502680310092647608842210808538448127864478804245413868395047187355172531849345928066266862849797753685003356696047635724810319793479993174264495408685979710990509477973533796841009355582135238260686733742173603914543333560507183673496021192242295894995641228921179768141807571668181196432786364134045479892128307940802281673855803565235669140359394444495169710321359059897785942559884496316099491856146557458785422022691295981565461401529684057780111182699113559265175487179321641071558027476210249676091043226866158127372976691497976446873234287287128344263032097180908674016891490381996239638436930099822154551377184741908912435108074152358437969628593515540026621667169397309296928627207771090179053429415446703060249656910569307075294778722425539430399246076302307539663010362974788947951449404814237631975404322547761792489130535719299322016567431823826182869175003870216514730480333686289970940682603836188912187796680619415705339178599383450063921542811093968664967341320482736740563968057093646127704704760292539997481717363789985430219011947089910830286233971969237411212352209285310367089950289028487898256897594957441736705371331322016864412639095495144758557133661353964427636539365674505383301487160419318674312092127022779917224176531888582745915629678496815169293146422211423055130483194603476991928671449182751231947918573719219442171854949812957075471777717288459602067795287692653391743558315336665581989701026796839205114170886105146958440407446280545538489523624649340863033917563141297908888158256492052741609446867911844760505695093024007108381893595661593527812820542374430447379914033247458411566931724624151063553370184270588587920335147076804506658735313156814915442350068024773809571767710987794847128758163038299237593255544169219054267341385745975332833282500666724544472439106203016111307451689046797623443360978690633294574447062610316633827160880279750108228256830791193510109880670019224097747917172829382590599368308097081733875390802867721469932143966432142977666500403839085015075846069450596523971520776166987996020992986393674378269680994434106271704061022235395082726802222983990307908486690537432507297224214984470570310989599060992870964418079172542309912973717789919536250114268471752942266521723135188500920138902821356353595928150047275533528931951332634355039430235347743539063082582046235745172928880246765226933004000586304060403348513354039109646953887079140049670869865381799757726552978970386527912024282533417876089686555743443699598558209260445380682669089574126549115040887050454185738415755720745885894382978131212782978298943653341261406438867314311699183222813249863306633266746608623327795207294064754845308636345330158187460508029541416247966942325590229460245060991558690620522878029751686287018802352177126147943287883376727277327547199424354645307391633338186502057047725927855301704722112715378942325201249940160601177375576207210683749223229459938093779870788033255675085700849251098464585860757203258621504944492280058692921427946703233740929205997586177603963564634174433287129466574063544433249020283807985269387926287375360212877818046031359846721843890563208656200602927905877971509333392520336985938068715036955646266915459942686464404132392392024310601207874322951565381321351884007264174449185001251073345154731530636982629553852213369324911096258772512778940509634005710361752538135381678979036858702027766329734325852104517277067534424012960576931105323992153820002487546541311455777277955738145854483770697735783134303044377676482575792545114612702176463588915982772735764215179268471734620960535365567476929158879568717083409964467199488340983743623929082757548580689792362398172830276405961429017928459519275122816755160207222299575868792015656987222918653314971168832267874543427371687564569448757699588992457674924557545242368215954691532196047847199234589763584000735114214476668629014270911785599598507303441991756181942835518761910842990187426050491041515255241836166539406780953960298460042697734779982613014915913329322403661856996126261923436176280140472798021242835708983931346680645773479333342454761342130705209752105173649925525975465686827484765094249821206338147036740336313490009554228091849996229414285955938786359918006265636062667596529970587836762664534729064472166110880918160136081457061452289179490671770237016919826769195951596122447400915499902253578081059248004418066096207524883689432191363548586578987353298919812972146099894617651261604209366503636346925708322249127739919199394598798332813964504068876864585046597826667460005329740860769078565028502347125833204333702179779182118983022807872608604683732629017481912675385433637110265223787758379275654544495189533008953303845285442907036835047899187653724636023633620675663591284418652166766910270448285955823935107253715136514050955753010456874192458385183661918507116112555199580109648252524624448341745714239100792325617660998871197790207152242593540942706180281052406767890178977120504051984303764647596614435351165109929633607888948862451966205713826435273748473567624578325735329382434017477865706986577801782286127666945924142088302134360275109844108215035087462271907161639236154608516160295012705998253766319538648523120912982514815473693529413600781176873447427539881988850620591259896759660709414620784176318877695530071678163938571087496076681325677243714160562555433628714229067063055921540277667344412113913505286814668567154967172589365593534997221695471418734213658154658845546584930898633724523602589743024376698276096639861541709695565026751514743886532141409909249331536698533133876607180656251666089224593246250703308922085939739652471463887869157899712917065775969752364335876016866747458104564525125047772820947573495656982077857925566571612538706872922080024511960280044374284366854272836615131146202088203887875127344045142862194893890019178527951006274290163046246011568353450116713789731967141734166536868091591511931205716578523295342013820090399554822041012903197028952062075280761838115516302026728806937228135993544194794537975604100737742611764951084196461563185426315908887288463048758487842859293262108965482598999491931408739582796981092173476934494947264621523702767194060530603975586292776725493944566611232951529976955137960621530670196393974985962419362236109372754915670712563022235206196981076861857472003434657358758889169708517735891871005792358066327160871230546916039355711983780485665288718513658178968213808397456317057899463829064532235065570669474202316648803872766633372587888878740959722252171762594909854994493865785997769113758354702677795519569490565927471748149324372416707151416416146823250050795360204361290644338722669503776950677018852528637624145181938562388741273078573964295043839157675391481115916567059225555447078296858008736067027454819879405048257512567594092844024114823313360427145718099468175916085151681105662990257838737840873598579622072062772725698669105955166641549336328467483503889462054758349459718023643550200793428890177790127667221910605134870248173486784692128656046368412193141020658391154866313897265185115666726102590305168069619131872082394744971704602775504143526914485488372138698263462540634150998595545707533344330613230705663465484815988649201816392658257821341342886145878313864920291206459559454425084693176298895374252289297917441279115032470007767389316242591543444603006299399413618715035968884847422300245331096706472225329333551482455112953856892839024323437409675127327920872909891272489435699093138439633136881207058197845796100517289321905053322406254066683278566360524503573529809178834113262925422010892648097794944680231802671379398455568019922279609945258530062438113461277954819833984583837709568922812534900348066115123234226629548652793444006825032024253248728921233095519676539813839281193933538468315102211055113064306742457630160052506409491110323928091196787822897671157721680965196246810700822166539884686910404647994706712204971362101385622317513075419473851270817160650993810878123306498301097384873939933707731763645918169259493327622565558673021077355948234661930617095939562042361222475358034020939826148745528146461629521614243187408591911280872277898102035712743733788222310327101021716875346331356912589510927732667667247367767259348766204184083927080882432866636603770316448477259838117337697047044244309894763166668555793393708050839961280726430111414984873976959524773210878044861230815306366840681292990639666176087891961801918832889200905863861126164118659353029272597156196919765371637645240414606750913404891448083601822249087545986181268001893873625042547650043305362944212373046792907173678115428363050172978074254995234074507077616484216898621592607322091264097659167199236431299365052050774638918293515011604435549762665369141404458018204285509110127525392312056191338026575095603607236121964315432410660126852260369343766902450989213781010947388470301954144248187826737512567157403228166087943596907902251746012371229603082727380166038372454260902395600178797701702890565509529448676277559847829065311173221766168617549300437905923474980201962066416531852299802153476047724881018434214434220449854881664798228578477142226102680920073461618998455118146033464940174035103161726458793835326209961393667598897018037098019246774473184832809163653460614129512707269471431173554604012221646003267167018235064849750385998733716177978156492992805096425427762716748798183606651157878683444925668635479100506255655606468651386432637584605084120305210801928756509017569285987845997323629108636087126797526641733580908575049548499647891697106972630909477718716523805821931136149553723448404490956318646576729108020722369196871762589179627956411612085564880666524508453525799023931983865053663235939527339595096617145062278347340866509808478506156959464014537020128670705301266694034465777330329105541738067968184581099075384111157583248278182535962607658658151582381588480113441944871472492574556195812421261905260137941994490053701114219298225033142419511311410164650598728985043406178578346827842638310738802833051817090188195259968971899974907661471197029043624745917650477609849309160149803312736987715185389821902874349641425324638766803179326771968723736030961557364363501098669667754795834272745537736807729265846065159215177814356694774073258837127027267887289276562633945005948999417575063343381618244890958360360361636671773271786918049318607103601123075443525296190579365649161607774299072626520046457757100271626118567921434505443819654273200857883239195098932660531951181161788269418202782078508123270954349541338431802460205485383975975987926002986070207627569825476583826207453814419109702443773795812703651824797612278583544276380263177730613173729495211186953450505634628754738113618709754931047814394736475127791994189165854422110200239106093340638725723014383167060130032116497015810117825094961669345633736105258316504727166241832293730041842856604822934712845053669912998982158283253282938077917428225916195017036077274909310710918263257143919027513890004547081283639622698109334370803656002579830930108300625887788517387358025416651395113653782101729273453360086826325700736826570452254973380524023783095628044311796214072342352244427831513480000606987138570577996527508357966623453691267662983043371347813262192086638439544988995764573375111933041928617735721165219391537579758690263171075453994124279887886366757076962952427615951638501636229405827095370675465259786602013533541027166857869445737767079118085843767195541497978622429455529989955895477235665455359501407092692073497930274777647150740485713315320661228772363704395729770341096262431320277621179938882768304043466934943737301311261531206224372222513635320790586039554370837232141860183013241407386060152897949283653117150185759491232829074784825250876153891043758917297850427819288950529772819091992931398520356704406628051235914736690989615904821574792609740411116186451315845001245091694589317546211602193378028715824518823834525607037525084368790325465151055261259422704390432402348874635477372404645649393083931540996141516345933311856135151514336226655970687223907537584564101266786623179959513247759778028541515817787147960074363092918157100956075433303801989897212006823203884002814266160179056209694355029718215674701032121252238835781809901449542544351484816193170319388866526253671885119099820315196198115214546038955958901610710182616045269275549013152887685412281845103769634625315291111468246203871815535504421169897639356575549393813748011558800568404878281925426286720781096841686795309648273548065575741730117029551582772047168166131248044973832256212044054116805654754222869031625971063787860013187676035398547477248226830984106562548233320731329966973745932382127840539471094089465809387671278433789343749656424931960066722617130057087101533893998318146240730064644829352813065443161014352770801071141875915917627525437489712731944688620820030534257432047759003301228745462717972300031760782087103853367813004133894438546301832149058561791858715026880938492477581894029233392855735214461609965213817035934042928810428972696049445779837333306494588700976052547477677781794785329060804721478983244823820421292385350313566274825774815016761136259918140573322358924882270304551032369462839300128476367816058858439252215328089082856128695040565092819693138649561112897993618237793450768279508774866254878324395941149807202932750583970308503380382404622709259000721965708224302343783837413445776519134935653776976848230241861333449189289033410230574101457113642737428406108912815322800356539306271240709656419691097387211616632762721949592794259601474689763084382381105172297326210734217517210922359680781304942238427651928539381691475714694236412291636692801854708980421337016605143528223780001350620918890309056828045825025869060513034908051716142660626108440132152481497771856173279743649960756570674229647562888598128016124493591367229434876338120041326611811252979125570848803090863706998116156626559204962799120512646289566632960745055128201587870854543663045217330872573122867087225541516367876624952856663657062346002464674830344578952391130963426399554367591982220774330736668947446104844779560355751946837723751962148855011212279521418683845213940954135941366280662735798741263888183022013807790970577361479766947439039618779547185229103511831029471908276218138493508725974332617002369872323809500974679871052676673799569549740324939426175260205201591915102727193121399446166604737464667972345373304597038576418208008803319976976962847019759883782763208158216556435110989316619771555815099338482617584102287245447070684438851875638325588888017041199870264971393343172229007018831864525107475949829936400347513142939264951498237200457852004994626726347010336669901355062156815726749208493275809621420075731428308048585851572812393788213093498136453069778592721984344860450775393994194561467972850077555930395910516539851011449162274667467751576420046686902861902561302775328737436010299572814089113822299033068742837979159256756794947039522541527822784197008226928726034408690651404785348915555735359866541759858487660728482035549687913840271709066007644603101852178937215142812890710393677028931021758924809873356089222227244812146346184072472876872218063604380188728940984014482661644650988771500522858877254198966388539290964953940968800992670304183944205646329302723321974714545650911040611042621568945964645308213667171637602337765131654658941893347335933508052678754746793372587017141985343295683474697632766004858483059847006046691504124814293893862544329174267026763381058057728231798677159510492179504093550457053823152148793570316792271592976930351888631283343622961334712244732343786193892688629586737598787950365821735350513596541159513372144617216695708223947446159019097422483319187041558867051520271865963628345677120607137660465964614485622153872949765367933862961768642492277226766301281302582917209115051923982982266096190402090382178062386828760203851734903022448564422816280550520125613690746677292780219523033691546178194922014378006041559567867623138176730353028785371019324245391049370788987734556548415711704215947739383245531404359953861578351141360432734600475798028657883864909927328713995618549510821745710640198483397655264579662725078165333205446489663627105099487224411998345032747770898440507828344630458406609432196082960748886982120069169191905951306210234295546575352487732268807207398981428198126612003822659272489581378762689692589536058435111772383500395270433543890317029300495509307677546723756072219220983142929614555295548340573825693236632476877601122938631004581145601980800995491417497641237437527914493775486571914221213002486730187616479479208787156883747946436846250660832122530484934505547269864617064499951865455599204909252230713648642273702098569946597561870913173867354641191848504373632818855715386723180131333860280545056445826871802240842826753021490862252450762406771897211670231533393355067461268090022989698684311660102926079080037040529069263943927349146510485825613527755783142031754231301180250391492457327581137192723885529043902254675717300264339791028386885124235176779741171420836988182936889147740027632719928208047698778779161629977892188831640589414069662817560285204171025196413180456083943407361697251373283951184572684233183060438139371226990291322743278575433573788973033849959055037961170125869327155875852636288701390472224864580943873960534035118275660962788435099894382048143659927785423547634514300005999526495553271852807604809953859665673375326723958277798313247272185513591422479980522289953162591787207620062260268718851088380095930752065265526442122726387533219307257835717308765709438016155124441963480489090271502507065255563433944721013108770898094155906846682716737924860718027277859345783994753077219722546853478324237881843307792104321012262908053442693578999632136952863177685569496752093416351165833959906936531307492576270902675369481966424718692100426280658012902857308216058163165141057447068023866581358501869278712853503074768117372617172833666055451758363309644604087875777883054376773086518923283715065939017422616655092817682126960742043620484906507192698201369965502070573096745066657272820930923852329200016059469159365411287828767565734493720132808522380917468911358825915345439399984987092795456485185532405488305553870835229845833727174380657648319465834621084049754896242042685777079981153734181408651975806839971372003010658843084940402203386253282939103866060875864250132662934697220217574746599271885450650593693402096656180152038781828594444269722010722915233394490731515623884103937922633101778453283289404150610192963431738561170136980139524313199401911971515950577793422921238426501053078864088437575620471218502777842874440117369695719193906806595691696798420423124829552867829145623351618726768056237429338476128995308795210198719454973161881262631706475090531586759278529682240859445615115086108491757733307838434449171821265028262464927551182993638114677710523635261185681577314902382389563761493487295908815310942545421288513966941314996341661759385879391057087309203474714863178171374224493061111980007848371596716779248368981321143780046882356753724332960930795029742334425821925563989403237055671429466166501173726434544398023807748907463059052282123544483961337609841664884573082389074425249967064960291591045681462369766238266460395414320630567294887822999049013825082548507540843204101905256524916678149810297070142650826209343628270064964635945799803157891211259734038040995379470510722928363844399465914832174871389427408777180466433443794737596616021595943632908144350710289968757736660578295831555543711967009967530713781359755436398763724980502660844074096647441611196912187841814484673833676369339574540642905790211780280060724565046770020107461755558802234423543795489384995819238271686961034238536069585516861575406718469140859221515677024935212838558159071562041383590195758806777306849411181709854223703543810503592401804168277531897711804463900616784412298472700254557194444152689098631489566926720853565369810511213560598991899065246514481388337173370834529862397989796817664322743314964870269631806818694818783271601435269391746717854510175591252459500263011572857037860862722976046654111225274312061131386862127991581369188571255520763532442200894121357866742196803351567294447244567975704928290679257017951617752521531580149698325526070126485237341925073459147464121712541299509165815777200992894400963518130467147682406117712734699923062946464751408435101297734320696003580159277693292369927145257978944667445335138950446458279930761093893370870857977338781285474685057320606337416172214103133820936770155430157394993491314171497334411504218146614385319961164410994023781324012237155597599744232575796904766551857509566196529472148846623818218391635085038555238171621850056699235372990439462076663181642997435075716233040984508950110521403609861757147124998730813509201608946877747318792680424854365737059016576627826856998484753678920081693238534383944695175017111147735353139977179003749690790379565533948474127584497675326429122012438513075328052839360977342833822713936435571426187791459585871596537711486173282311770357530507918472769539919875296390637695250233904610754213987754682338944053940999316683141259740390236556397011462053314542478820880371259845962551664817862880510262913656816892529045456324997471056614780462542924078988149564812392915539215034441248086560186661293035419183045017372099872260448608426546208730645252903723991903978512971285941625304755268647508487523944049452857667164697301969700348166184798357317881882113122855035975962461973126004850123327980139301224224834171306594186425515294964863648102497628219312413793665079042053399004631631298336722761773704984464995945887921097207671184617565041348285517148154273788094942824308900552263161591299029246470855684325621251406717040991106089846817149702464652297358952029645921843278481532974319899463824245711731483942666540629746034184571684523828554765503608495779904763990945225909400949442242259268057087345209870837654739316831976776218782876915738254521066847196775016242645357505099318424607481453818073006082852212376629486396352149899533782007809278201298207909407826290063629183358542875081616284499775706927306137704780736938783220845656642438715997545171186737691699946129898876732388671158994400294961512574777978737034212687244950604796076380655626194238708272166505483806414331101352157446972615482802806055374890797136303959956780691834362684419040734313593318014722045134626809361979075628958986838470742635498264870210335772873903628410843594686142872050806253736809824738832238284616451573631737141949850639533898479541675311827362909744164491691792527652083176258273259102164495288677958697650859872643123373757791681973452463833067063148413642980109695544041145740498990040145921297667064628586218281579072854251285659418185709458661471046357931791778021230883304036921180144622856735692162874519870715591161709732404655794038685529034500569988138406683641736648829453239012998685288287545309963476815377325176896341386889628741504238090243253507075672500674847607578207280286158856920888572220228797533829254472981613133589851508563909290798990900542288423079128208281216642530994881190635773653666375869450477281637411430100266518240974391818407352528965497204284844204237804674052155539384957326531582710817406837563252101025165878316317676337984582318010964203381623988862703844905989744588189787438459697907376495615803819942521641518568738744932521295351922962262622739889011504123650796593193461815924540985029464342943615641269006337178868803335633050812441619702755613350276359796391394789867178376017213819304380555540595569303410384105122038961307978705777726885454954624445366645448195286245318975562646607620013170818112262658225745283099668543393976990395770389938513205450392033700459325615631512634456753002780573652300671197910531762325506283193638849606454070867823119595255054726874353322391793150286484581163440636179261156748542055858503058688235747953183819794523359941560757872602029397162345144525631015907485321135023491823728097287472405571878902188286130866185246507904631961547549838025861268954167666885073369421402801354414396165024703771792603983920086450050536448226416497032044068293391487918369293463464363384172166546733293430447286164544052719056413682290641551542353019446915149479329980984938804852916954368336784075404923314687277680883549793721684071127118843634023897854743304064135800407864230691568304506974961642043998663851147351329760308629522678900605003634973065863543060351300051048817306879685146645853059700363936709736902293051547742673547877718139265194418216247048078053350077715429932603985865730053757242080437523245258647730959214712726317850341208770429470729416050615628729472685860142492239753247383843130080293787713178098896766762673353124891859394546026390742104850069795524827561977427408226584020038495611583796945037490622437646892023554242247348159541128938724606451812528412612225239546410619242076490634861641465061846279670841445692758178511889470854811711777027219157265287528172974936631143350821627368028860308483992485322983133598324710891748130511474207192750413379622232994334766180205342228954062338776259315261886768687186406169944259481303969378421883349033945745469754325299805838689919852531968780034463129327273251305973645035644868658456002835231490745157367511125236011967679607516575827731279801588784781717319586970762161101654921468173506017955751877440077260611276530295751037378742301281008060312478953205832502514770961449681907536458929628207740001788316736143592683188377591685772378529806978984077775719707461055224319973169197972246357519737132731101675668610371819314331140366392577436316950829942348594432167433639255317563951025096007838332283331147856905026305939631507485413794379955567693412463784179770640812190109144107034945339410089970596682767334035910965865775944722634226125528683906253070062949941233455448243058558835295422104328055901248006921920686520114715684455847931032688705180977140078430886120694898798429143555041001080259874794005596287487988728818996156217757653947378110091829969444159586666119746245202938610784908769727677461310888508235129431554590067956721149306814264496745033832942266076800260854731061693635144220927594258596448637644370862963062066073637359557812845915967453272307416955921366867520647225090403558347037577905060359477387239802197439239744374254791668482015120909307741438672447915254421739138973941256817111674396220451418904370705060765653859945014258161815157161685277203957789241029785466456111251175248208320168149398680331350843221230340959076761867713286113177869778094985084249687421909125412779566858267515782315405176292693449029555444529710968478197313501486825854449743672220696824676132920168627576196236928245991320973709521365730865027223119847294380546591368120329190194970129905212583654561927468699866013171384745247624697409803976323214452189518461874786087326970665190340645407398589190710340684493655136199570389641796113044118520111857249920840975787016557220605497256382747140026974317124089138526928028827655682314120172083834494800690991379214645350488735431649706667369553169265900162975642897199103738539375982999339297738238758322736106375632290493420254529776131737673081064097215385317830389699757723174441905616861944283101081343955676026335965487389953987641900635160452824334988488460489114150391930611286866220938179723707968077249428036959879768408637785975336039886878972260314059307630306024929058857768883819815311126297553251715991944477736396433025572716465413322166321165907833738790702942460757464536051214008445477225895500769073051075200980652535830905309157151356410348207529452439234824861011786306251052841074314850610593499093462130642188008142345623865459336694306991534752441269408814270905827189074410687488837397734539442351860597531517299595971785113005590152916090647416304378971382678475144559570950190771714209173140086596618748454254275363303584334311347120163677440839627662845030808567763063432695030557212136775505527264244465874959117832906902772068852682146444569966641770144103855669585036845458798514203299903529964269539395783122105310941249552918264081737224999453261858099971608688345938366952766173838531680146594162943558856355693934070077298349572963352083169691800442571871512191876556274255721574744962574686076930084193499397124101780788285847858595288520830436145735039129661651994371182199680016771427031387198273339610081050229102756801162890924179196330287186820902843171267433120564242015727065510534291899587770646626444863320273766501853948351023566685821014978661212524446122159883494566257976606030924587287487060583792757513343599932819682673635261364472409829704472865162992740363263244390874077381026388796240521354808415394056794616244441750671369511437967653264840623462815104820071626929393095421102573508652935869865959285969041649899522704703406723980470961286752701417435066537935627307124932032801703471991869210568359115598120202158678952193395820724571264546796306688189392413040676947447873362730482875943112550216972816921287535344844569065267780086534245565881507528913946405403182330542279203140597849912532992932567035039812195282867319618415908772593564681326261829682868144104085472915350639315206297372709168585000886539738508027265022700046314749732739521196696750409362278056490623940556100486858557735197854310653363508037259366659764508239248396826163490790766009262302678257183224953737870659860956856060214275909926337023740263909585222938693524086045900609532425933375042908195925711097358132778206755898293086371268526175882217816836239663201025550434424855864716154587385301939188908815561581339454316352559048721662857239459979312608464107820211057251193865134353220522216701764784284793799398536060082351376823488063912660472774095954102151016854760370302821292257801699989351061064193758486110613504958543339364770148834080285901676852447813803167909645281283043525835180328873144472060426970819059320747362150732049497495296516928063281005185391590984796583774746047607817103814776740898933578888551562270760512708110942580548037093758374345572061957038330528081668888966742153143243158774592516557579047065093318406543595456050088442066002520591931085994675531918168887038050281621653460586355597739240440475579987075344142284113294585417627818050141305257638451534868222444866906515298189322316430182961477098691006302197733519570776916143477512912312032586235342070031271383473266132515723584472547865489109633987920105503707744387853191781589635392401375179277946059332697258853773787035641775292943705076807290047451661992520543039126464954824687077304350050612344926960930290170726909747665255630323829878706905071283340908477763198326947294586596218662899439886726807533496841894660248009535326996219467390447265846839519924687249203178733654962401270610584866091016871145367224543954736178237865825073953420420106216561384070080693885608954756507317762874689014850686057134287425757040990625656998301529953493114391814200931895933641387897718245915069034364445580259587006059857242748220603643421823559685871572093701203584758199346970847218772139735054315638606975997858230044307780168500670878089356686684082626465066927263318720866967518301694496081535311805394405465742626960522001614951809199566074626229092805136165684299863958301353230447570996849346670907675742024848850811049854917914639924810970548629278663506702023788300573368145336278603594024970562826480111095035083194848341077401433076861595140438285629002401806725238044500971026857859864301225421332477144066883469542072386620044647685097320784403375143518806907698899810424995401939888404525499268886502841947760541455333383455019700507828459600270214243615789517876561527889168086912980546225160452024949676418321935443977478327466100290855379490860059467723534682320602694913010833959948385487264735113118525114002058711114868892130759026548625201793086434527115536549318300555760741356103026703704791206555384859522390359955504586197888163847822057489609409146196899445555522629076912157251463106122834803492012967100584376688152231601157533148895566571061526352518884579054756318697470602940240396201674788853357115483508218527313611099798075885092501471580681372230864584687486013056930039766899427430995256796022546493998860310815410001199552904722987201481184370329397759980454067467724321937824944624800272190953838476990767837663447843728548937686415050694375972985291367301598378518544063376194519239544638589513501001114555143119668030650252611726900328509774248281528477880461644201080286839779956984383713962463825534915128191107434173878105534150400896400934015366031578282651811311080842828604686267831611576773726094591740735493564993002976444116520660358423542965554849928217250663190547381556236623961340580361295709229139930144131855794603363153401111240988729171817102630574271956246387410410004057868591883870063031816499645879306437153465285747157391535593136827944497440834471345024267685788785689116730940876118984088070808446727331968160779599392875521689358272697220290018134547080018169867430293566363607996800267637484719973488319315705787158831849657136411014860477462740080978757740595718998474629400607528695900408370183004600917010856398786680225562037859596438139574383471357542352636459867379662768792904613933384521706366511629900592234844414511401091896251991598632994016973278861238133997342665239673074214547158934014412713705270130416006540501297812776121801126258145806204900087774289496947783160084940350513584664477437472966318647928571001143857097432506668563986596717464917550671921116249424017369769629522241567049606597116317212024162705341078002122058648922365525380624908448227672106139411861414229595965921098813403769748349816698964072859070876542611186425159781988104581811107401528823489890505834875848956976766927520073011018758826832549757132803110722064133116125059376829878647426933496956100697018258979448326885891431024270503164212988414170688784746315994900959215135418213319669769309273741137167315070907289188461974908759800296305717723695489199145211465655456003492483112419547597534904437045633826750993714372569023603482692627938140519528350402339435747274555845808917759861061304472399153573924326856038857817602655590911061110549460010576813373225482120202926187859115182193968609762569451424293721215882703915416013081830101825107875784982222964707153186078038277380963665764785173209730019610926458529735872022199510108272908035328555998611362240372751385194025926073533431761230058538593953711781291126929164828517698644755888458279343405783967979094617206677029853231339225805879555820396266955424660184699388136410275795315491543033845875067403171430655844622056062953925677474656657309927273371072412900714698305574557319111888226518099248059811492416576554425003521886396925591885144828941785932283049567256658424298329268224870616233158390839603705226100653765863864044913139596007366234003865458772560365190166013581384875783938829781546286972112013740478750445440327136982384006995825903223457207512635541506122349828762333426385002561055242297106218095344147532170531903978294601600081692550836056296270827003355265153032870924395078147434159129876582906965840585870507123206288369147834700760025709795265636101876490310580311340764933228570480211926155349724976343103462473290465229096588381475417741668384896096698900636337437141267670574300996209655734558689849533624324458018623288553909083916698682692607503207541979889882575127899112878571790669997746414796835159962886720602960589864631217993169769043346010898099788012937471251993839670481035633162487627321210620189994520506329009410943752519167025395120050557211156268766138400253432108609227088567431474146444052059682836765746914634577069619871960475959708231356664043222735362477317031353106725809085242236207133185198431465182668071758103504281174649479838485400700618207101626105319463433968504268247991207321446592013735963084980495130598251968491328029228522009603016957126451296498347988955877482443758736693788968897280156850539469119145961282403829483887685785762813399531593284243111088171343210778036753200647988147583247742459563267038219157753089439653502008361930404264160054273652527883378626469442083108723340418375747307653859744951391463647264881147274453393989415097905579704913366664210813950358557973163540265835132564794711652686770683819976032714457838601092260614496269649278273858575922529891626537176713055056378258813613115263305750303825354847116049967631974183448423278792734626091927780361648682705054818864199629794703901700090609234746426498521779336973793530842144496908144165114170695278146480851324337379232102912159115997903120062361805738863393114077486984415404045767526868866107395077065124612767202793602535195068989949643581021963986715076299463421558734331062486555613056491904904910988066442083754189865585440396128537552684920433221065185627670781395087458609385374842517599719753185930063472135024107926035333479950270257742475304596466852834158062559837990176795389151620836935840767762565729356921849771045036740835995086795736241718193648398965108263000941885783588938066857597252723015358143313891743412539221820371493845234117606927203178553714535379588477020085919002624160742946168838979887520928684789890824267950186028892353727942522640687155782837829680986665849499513048015239689751191975091028379223685938166640099065961630808313708180305238485341241202892839739460309255227740342316756391053278400408919034928364187299698743609028232515522435456496908419883267793429969947673388533055282559712093155067152468377771937307483900466659596840405356308302472793467434412681101128760005649245875582228458918328296641058716758680705646689242375563979677291303264998262334392661491413908558113439912136131359958187496265660996140806096624308036951382426381976300653644303121349311075816524901463463856177723750631037729520577469390903503126795954460145470276078070347390810882054113797676346786066288552796416350873018059023202689699566853354924746975161288170169088566897584366304790641408882216996662994560374278755050865736398572366461361533370582982596593892976413666522819698211825569000425256869458865394399082869185550299425511603315965605939255815712251699442018994798924365657221416887084805564542762449570536680365728337543883909529500601905756601566813718450698395720456628433251514047427989823882708972962384573436834619836455113922209864076261149422692870544984411473416424080045633123314094250337614179381521819212314893144717245008698826968157661014522888761845678281788969430602994107105612963110021697047144829488135243061899342679981711513006016482543923479073529111659635632392295017641487521038836217457731799232909410147404910349746592154641716290125715253926857583245627481484651130717612681419010031579638203119395389896371297694905658496125099969683554925997863690604835214847541787330238437446216876491619226354143221463208196981379059032562691456091869997983746702118233356879565925968386470924999337252461343231238574007806506663959450313528746485841983507554389307049595109114719030219755374627161282178521449730884362791221158558403967161893367175140396994238364413672052051966520465492359502906882309301840871349359780106270617812678002597801744799843727934075533800116267245801062121032048978420163650897421433819544121750669949181581524220068548575525908109138537012200201303543844999758948666288593100724784079424099701382291803098618745978461349521493344223874566282246127729777028103935812381705865025929264693165624920856185969445878268456659598704229212345635043195976666078670959810296272023640200868596240520980042667484645813875340548099346020618300303322319127289010840912309953466355620470341221937395313754381078216626138995125571837980626639609736785143937041638601180415765929983061703909978119688130928366259962212075079116295767560883269222492439987246630433938799712406752744132225769503927918992555621818633113543142611903509638058857000447431263285454607030709171299835246149912370429704509647974799392765976942472145980547449156040233303238729569266635508248848384753822305508827422683949457451327518852500422949997779401511037526109949101894569375614301432527623834520901733310434422267058190042603941581014913639328874732479627510646287695642715167057571019061562170782654722935598484180374335192151609311997233752373715348777105582311699680499629690812970207118039019094943975609372724430406724397824805504020613097700535369212361555452537866412650524491099435596548809181330218634717424358371834004712299777179520513700362291271154318201329876653188067679903044009204720949751842038516076603327452841204705048796389766743152187477855281016830176903675256605780590249722321503623130724703217170983628364779632589170770554703295224370532977789565915398119163133725624531935814384127730181033915675204478600907583714812889897238607986920869187860522126728557134349564834819798573049968529022623453849993729626973176606514676530134765838763011970542041530057832272070762204173283042665081636677124931959068471163803373831502942477304203202100386950407469295018453809371246804693489100120330864819876652238552174798125454155923894419732702581011393754062095016240088805117412859240585952744072290497671797760873760378741850256932465912580034116371876738547546457964323940949793723334903222164272968946814055298026009420245651257704917238090158009553172094094843647448639995553153346457194661778043306369806661403001603340552482373864666801952079902638975883708856446903166023072713684413974465109114835310238500505227083854573983185136468530707470286075288097954029955147276005335678874410114673047733006709074880194273716771158204009262041064284791331690387098034476968485151677172122033315013384640601836308862067855154647478759559206146323559478586424597235009228594821351590739926991287794256090000455117837479899296610738456459285919257910240942192209542827937499949352962044554204319077199925861931296315894994187689378333677822828959902257680595864496928893842502327627606830153544831515107381189861192200753467037016900526847306347048412750259396003096522390527713646609884039236016398464354930452578996611579539058760957753392167182487400190925211002390997048943545262038354039980340081758709226732073169528764609044838042113139301320156630067365873362206852017790805790063151566762598951504733513146595373446596098269041637632136381117369910761820462241858667476176567627673728771566702418992042885180905339787941016925971574766065367320214619866380118014696446787662623739132374169524610046654984605056817918872095366633008506902182477165925980559214414592819287158035956033586526636278451840308222963745362593667214059419222705567890391792731610657813904099908472904638548156726790092568816171111176620369003946468263078293071687797200093496100202516485289382647190927854278485468295312502260134052688939700886813156305760722361183871739459927283972163323089479040290483254856376546447823793966372716369765498186798971004688024435332082216989699083879157835384828042584865187388568042874580315007961601300659725753942912813209706910585253322248264917076643754085729537588563660294112048158400675069795931645210293897366403866413568167067052953468339520082663757716437605315108505996321379089282108744725908569731489829122012841156695628830271468862423151908366632069823716479043184777668420344386330150485187714829956798311789256431703790092148681611574325317201580259905893992575759206041402084142438029536263487916531495416407034299255130541245867210793067074580465461555236432043031666847146284549230283519523026641821590937926674679459316201521382214046463248170227920777017872547447050819847696489004815643957659681438509226957979025283142273153269217630224585169364614417089047766978765319947498356175197497759405268850722589418519853131019789846511375607697510650335933720361730189583887368653930486077637805935485831616578077485390559841270666829492458029008619294482857668415969973533378796261745027388056296832383993195716206661205780851452880390974506883931569984612179536947605657813874888473188693834458022737804745145571168206104409606836325332568642695774439407051803861011961940110285664960748689686307641497423130145629153133060468124572430129038779376305610138926157805017311121286924454224517087225703799063309071989226871603545583766196116377244947410813481602447923438511137754478655070671395008583858644927206064041035661943828042181104975723265088987037783431011236204177539942930555857663070715945612187777678892000048892461594119259882007965959992692316264802138576869816563923552676421342397499959226919243637686477686082120705275013544600735603730790613751840106573840918852091455018918965850401238008464860375312812000330752086593259071095137713402187395461199598787369504310384974678265777758789197646578545384612880102334947524953425870340000132528112565668943544341827884640166883040342106546156971619237017029417080919949004105515186335575651221765064657496881009582860127881175859950429724586753932192654091511971490588836950165758555542768492919467566313417771604177847834209884482934882068799381846006198650114095357914677696230456034300389825520904526688617263026987985579062267936876389504309219418602738262944423866583440504395189038257189114615454999005485134064376823802935409650726861627447417804702892538956555613594982733950212990076130792028429748711050774155161993507779613749508723355429068955878021937660068697580774549519944123149382707441404972793972526633202047888265956556737043287048443298661702821231920451705944973353449076488639288959669640041462118387330095268555029713199514137569984178538425464644234519212765395198808142794925676014611450161638552693897523169611520635117248048299938011383278489842305967122538694852745842225852128380082124709083803749880172323130934631498072551490375644014993745210757894903951716700620669300531822377391754870634026329998675485532792118194616684307756343224774168508987237689564533738417874526129481599123155368615050582443345179471603875700937337792599499211911716765907399564509546953446104256523858033583538200236749208322556771141513283923000316270858825707246546434825403258899918728693845617964743588488499908074908915240455549180749847004516524839892491058846602716506112337301410799381903625168713067370845109938028384057348178180969789249568277728098952762453127226402309144416817936714010098623842824130694900562465257997902669540386763639093486894318003898854207729243595538877756018467650569334774208338283797402040453713436039472503987780513834054071348006188067207483531206126069392280689177297169849818264784049240481409811285566835002100177852760891546687017645179836346937454693811262684573568691761687075404282719182578701939883700726718517613277559737727128942793525965724532890832702534095838409257668716726119687052513522623422332648910320142767053481059607951500026842611971738322543981280969701083138097519302317385937220042292110494199731664752536290796560882925487198008195259766996584841292441119608114684751485625902637734416630736488391481036404149227926949473334130820144422425408988097604850477878906146211101716132173206144298917406978239348924418528552528705653769887866476541105938065518593137327340366144254335153232835248543775616241009401762439789298440630327570941965137476810512701962444350230883675186765237863408066299235586404335284628560159611909680933436450872489943542795961844896773250094089589142193310539653527818875048637114994581002291310944436666992633581278354196256619431076721190521057503389080568553193056180962873333301687514094326376092759029116433407276114814499197031811710540387145154468340742823280615005256071589758536924591965786176019189970292929763868131668153292080883821614712869701131771260206798738320010393540447143673657926032642304968175596882768267403894757444373824376508010434968691004729688997815980396545039251136724538656923423241302265685800088469933678719577246896737846312174412325023607517109271564771735920628162521780476783527394541316508003259730631297735254382617894500513385187636127863071814141432525616679920047602739444286318717628657493915713828912693501651120460164823694998345501157197857433272929195585946453213901897624775087255551352762638379726583913134637028000482510133815018431715714415629974916626083321436753335605562117235999686500514473537711726189434322353122809782042446786360601047725776631175890487210803338477278090564957557785708728847959037870558246203284124621427248659248141472969839991440835358830087143127687603489807543400541504525229912927938351401847998422907463725130562783993527628535458519597514711682064496419812387084259100118425768612082009708377149215058548208517231531032176330857754873289140683002317065679854100632367832937094849911456783184616280586347197686979768911082901277796514502520798060266833602895003456419009286923688477899408756220549869137984671484684307245746503232735532928810040820666129098144092508315438470309925734866232689872526738002693076719357268716900461462988915312065712425220047289254901067511763631151313753077456907057068443798866465077803619094526476037800442166867614361172645737698349076503161817271875434171838209068612019558912974600335000790057393748153257248456574873263381035915340685143120344336602821593552013833035114426821164869282922974789195686956068756488684653656945500825919566614597703550256181250506053644303762323863825503819884375340312029566553760798439740123830848519438350178015223180527101801182316963351992035365966162594050426581831458196311608141898000955795474781184107876248355250985854255349384319952447746675380259535523776896051555270037965313736055516748112967775059763625264595288924957182525856040993170364236984836317609322976895877755466663270111182484062094980282353447079124679302779080818371674992118358760821602510619199253863312847638107778135603831765156502444169191462307997377615058532357016249888113130326065200231185524194479500992892480264138070192248361528263755155515982397987940388815818102965357608229165739378911200079381054142180646345315543163316323995647633342220570815480294261754419147070047069351857325065240450259043593018889391993585796835168196745270356914288687157831992720942801894656690034136549446922023365866436191466131480880874478209178371525215461155341453669494251570006869855801975391229607541265937788625502632418698094395014796838644356830608617239028184565504938674944969426868733536254765332634243178660336211846965436921995808342179891187534052894483469900215890725429671592813056415895615645709931759747019846923540960651229030781975518583418714283094950737747052081332111764504575038568963183134227379630244328875822677432645286009728961122076817683671036595493940682574127639221176499660084374989433656548536383903293536525239557931543240289549676485829305082202640396908266161485665581657999683876189507600953596140291841914987028313458392774611177350267107686495813679128055465606918014144505906301314781917123451393431284511136522859535677570412088492151473192546961251867405148463454269289403198647591954680343413007718952790120614810821403132214861440132286106236868767391489635450182718802876343261234330828597009421802066052232107296892687115318378181127713671843021036828396183570212966128849408088060019875111399364789334379397348981962724071125909343557433339801168909340271924218816092860763284116450125175617484198644341690161199075817186832573284571270016912561175879890561262527877283533515657550796807902642685768439213938371619856977588200607171152775363014889840866203329821772108037999431685083146850189550305077945212018966417603363490138369547655039648557278474251773659236147218810084605261540220763125129426931956148627950232646753259824776480111956178075535593451141866177148419263265151957273096889927724519987813325543269257232438911603856904647751149982566675051326174996648995985071815738375271699265513414415026226491479898747046554573497314495837175227922388097733741580813140656897020689693863892873825336450744694093222445616521615381684874010532366502740741533532666176943166750373724227327343090462374877292161206982253852410097231495276257161583523015778056361650854870058146053333539680109568099379896606850623294368068348923754041005923702137103882097682706905936098178008816036500821123598375565247040431620993105251541169777374332203015968653759089254077749806411182218136482084212702509853231239747557812404739090143024201339826985269028324759500303224969146394959981773240541740709344265028455167092836538306013363487541677832747008307508133004637151627855845664495205134412445448325394957229376517743059623575021394362266869406478648760260228980129431003211577679588778317516061721176638618350890292135668724617639727516418568225474243960839231622199290267911484818026773805462014895485889102970345339022421546568786866170739372359484211411582516117165372292922958855201597158085548983340067525679825116357585450267322236464928931640065779086132913933802032789997726131503912045441921731874154323685657907451141907956468559258033838112771926074218400308831220220548312842179543293880115064530678135860393287363381515012119605844859975354579897027866438553901710144614590515640590075662875788737329735856716996984881014752667075373244524774800538015047552087768597069614547678367547838166560537572328001068898414030057439371786310110475518115541433200363996767701045295464993378360520765166271757760728252676759179999972896660252613593310554419108243204234821572997931629077349801330321229204895723307456181853992179621982968878885854555293007540636311712057017299301332047484512888812381565978158332070145885017832460583611633619097402716455979111103217790922615307539137188575638851245325259340767737127616305096811730208960390930696978864366832646660849453741078398178886433061107142321887072817465708866341145179422143347050933786095547164720230710454056596845556808492552071929525201009194042512128770478769332720712743974092322159058354048251424233397871086399103334692057188459422877289612103359753284346030622346399822880073157866913091312587090653007393377623776371567121311072818203186894702009526919378744259287605679166070913782313435394829077757667160765576870443668821521019775362179314474059884560470605827676673424311808470799983002193968104637100923616928500993944841157141057539163242934955858464773962071657383271522840827905733741937354864632662248675960607357492039205364369900908012309467124967426992470248947848805564789135820898395992807435931773264841903004454304187246510184493860317196640918897243304638178964875127283798401469867244408286761265727013769869531181475271219903472553274537865986828823121211613501013260958741925692849810148447289206157134061060515229257713619641000722194456053861246234137155721094848207328970068807554378306186612180743559205556651060108347017845295740665319974538905051463602823556965068931653518636561292947033856828025953591433237660279388711686105076719235510501163644469817423396510892105350835415165254297953662077635200044641458424613377646433731863278584602167842720713340340266703845010396044017335482407085254235090117221777688631872860764105633789066769879195728612686659185694952443201218355934583946638747634392676410331190915178536478910225618133769658191864753701179711705795771254103700398605892546737419171613701288765763262103097590132740221887838081946903250865620678707221528252708569637859338710669960651230210743406393637404261733334267468962478419715687189174548100592319328774047324704212924767479384576623364577400061870030414238313979058724967451563005006622604404035682298123841128607286630068735731020166370414271961306026500738881679361926429953605657932344918265059138589589304136187846331612998310714906135889740202604310801212382253091362696077844934727302394368971199234699929591022792008873834413905584507031420514532902560667680259380249468651657703557944998112802336475581860308062699234067352637388552462751230390604437491312698132467846132666243424705771973195128195893654430717888094869128045247996871357257156279748793087327769200336468873378834235737913781279585636171491375853577237582162925055902435911672413767498641095711196539928949966811506344988549376806718869531262641223496868394456019673852936609905467993012876993723259243473639270830349904944131816386875032651389466093662839576779892847398209936059171387175964176317289399511262153034360346300276020556186910543188503981253471061717968620524692497595929721872486191847751343832711259690377097558225857338311012132962439618032996586312332589996762997401109203987208866161671006681287262789822019692319977372562481714316717098333117118895546163407292179172035378304793358102174917483524563321639978853509574308437606044681298033234190327651467485509350495315215856459076271954168202467020375821132629188687387037830065493364799578899041852274588657370025872857451400944465775012124772213996063620378189470260488515754533083194673108787836443383964165951552405542345137584014908735089158227462967409023828144244227199710839592103732375237778863940874140731929074307550934773020968399278486260199830118072545376924373336638073136731600075466277212985737422436903503948375853532766272577343036185257394326555639871145807331006321785434136208009583398993276286139736666251172443182707782120423360048181198849240447860207263979808239216836248167865395619651875209552200004521810929123743232113511720923400861804617101170830224483834518233989247703085203462940625429870035612002340033932093522392102281445697607836871400743258793704051527027386787828185429877614934085366741375569745566386207599866196544279848382157503596566025033607148762673232346892803518427726141776873296266416143991472476843551354191118718626237740033372725189525930606884369709199823031459658471178336459216279022922632585476698242749612293147442889663282636019593606077888593248704820801572209053055566745245157974486578197545362208497620727343801478808819487846458278267262066236301445183650807996120714431843640087863437388751753748386749246692050933893092844291977111252481433284148722938032061585312073903279042477479996482608142802245003187061681818159641041395088234866259240242540870628042979570237768824981066084845482462568201497845629767670080357488482377351499921718671205619347086411366691482301650771268071772347398224540781195359402141693325721213890955116805357608879978843365295652150444462690514960215521943284334487189566161930256384684493732649065988543335900403548126505523431056222602227569242055776606148696215434639685616235760612304371888670988319088451706204948924764259815109062788871538132253054545586591878594675891538277272273050500047364720763184540107196358340027775990393963087087088991889328095666288199220098320283643208819409855046918553896078361749211335697160206468147145050028746186398923144611546961407933204683720824570922535844658528733500327194388563430476555650959909643364432472673119354796397122073609857088565854167897834529254840958747340998884226361774917068421578897238627767071285266092604369857803934911711186764280847232305831106438041871254737187531524232782532629996162264124740701300523232299034695695223247943820337161225910564521446302192856934472413113656534123752617613259590352050829324562544384830871283524989170329993811651812171004039273193611512245439783823077248885241191176861197980455587875078143371167622860827310122128385319041945815293430305356378848716744560676380204856395489016278815645133504531537117521510905897022646137178356747905255147680788467382947590398039141343831960036220329628696125191547881110027697659587244816697629425821272342160771262182187976358789519756352209253940698319715689977834903138300653641907498206250376988411565141625577634106633008747218573565951070525984982976341046198213028816139339120368539532184165088591140373639396711773758294484537963534527822054710400608911516975144567857751206516408161642423448423089515441816876751856299047724873356587937508702904107383103804679498490990191257365637095711162586234756987773282310044457740709575316187652608989967834344991228957269516436398348255480215045201135331298454349758610734222377394234661713569239846092571914725982277893593515798987706868159793945810544400427799397516797385301298480598401653438402642941519311924347604998422725537729235254713956334292003296884452823804952704062260942755636785473479638275650407810584383579954731455529473791569260323726629749276641020912510046670447885293919941601159523909907345865293608106886545286564941261780105277599393338986231868979272170491410116283527546791270185484917169619409654166473286137602555578398395528707644521705132727778697189092939296803790241064869701623694099943438596328732516850410415563103596149226062778872637357581166379750264277770382108209314656566946847390226192096374141597373646422802428026883304388267505349343830322522823891852300279153161558319496379821359857518281521564345742731401054739615191630740599552066666196774570430884134603718891003122585139798386149020693521266180588317691849252091689740874436071714420965856989013301522464767795052019700484278093928409315182638989483519807673250915802376882134117196999978737164892015344253737193087629918849783386725934584864724256972131170637454933728778455358170662816562947015425582590915302871825420638331101792746098057534692902616530732286823361517037266974582898699560503394772751054990857197132970171818228999053430239723359025767300524738236870391666472714686041615379520190126417762460971946988384724494680627438812902626230052412659288089662038279852404227732411478690254900318818484947187201929476010186413826526281863740738740223304684111012362757929832859945427356278874681584733754466127260839330208471979433225679409045042987441847608774513619224878284865614682920895408342651614953855395503323679177570449643317074839069139411971877015799571026200497899197667195348471969857734123445321546771056946394551574362666352770217783142424518827431504514043685195670703371202769481957392139198108000091870750890011770699647929412900806245953376806854444260047821578718017503844580758678015522778201265163732458530219078504234657691411235947617661220850337270130149594105823625870179961206141912744417577005517960267055727576101099263339178434584607688921472386019375257588684499725202683042844210152417276775602572332536365200880090029903775833052882469515491946318488422491588561811342582821098536679682484768919866486787700676857164392978824490270162140748828462444015119107343513675888865387278937006197791453065586295022007349443952189977823037855243661653390269006331305860937634683155881665062201223955508189116404777612189453033807950937772776995115775818042890232198250778073235390531241505916561141463860220041561177806406276342884250866582834112630408267428280665340309020259809760208368692642643992772341159681746458934017850488838966185331004089500976851135639820498576086155462827482309937106450191503595079015147437885903480502098190789211726983971839869461600733042047431901984920990798150366274139351390367873282027749656559068322810428650645502597733825060256813807018589226602328834436445067815070778502720754483284237122607588008309732268777499757469396660538913330664425832564004920522965467842591213341272188702061116786881526718638056609498372524230491931443153939732227971308903340773549327416898828610998300823727386804763899575297998215434131307347270741821604745120137150336502034111095621454472401990296142172307061852347379782508960329550419709355069921067431950400225585421443970308766852955440576856495347809320636994038466524168719403716641348598855748683175623554312031911310807215662501689868564144061275931516005969470806898608073469794044453467570337292776731663176542840191966231798292822962416324414209311568939864094735985957782046959452197685882504956431155921629947415558937698895923748992554141853655601194094951693845392318116621874113964699072899051712058981486678895276067528786118838417081917672651642367184010702571103117945604713272226081139336221102844312614424597488125513218920517338174863010515394102733462102925435425327853765272028396330443438806221239780555793294063807466796632012217874160487940072769301467268449069460790012063299858396613726687293566743216144712812527716290293007694262158528951031879028238143946530996719962106188205575953553218772529891034182593885126047662298805637984494202121906852418984457355019676561276496222382066685206125666246963491495845846650700575577378642440918500957317430302785156796925787342700919109547907123498556899649002568897276824882130414602990858369593485981730390423684451931302556871438004256762949872807771130303799921677398976612521851916857809911892686442354427968474220548448647486229214935128998167849046573931589534571822999920484198863003536675332371188038357857501220344346822861418247598141123486178118334122602299472653216570857272617240880569762921188971418734331843072592749547051388497820519035177700234271000220756360767162400837681432988517272513317528711308314417057508042374237588693845040617866052540870930477625379488723673936921018794029489587038411895309111324664757955743544815134125293479327557108186237802533134192085462572818924086368747416066972795585248204138799111079460054455111530498186444576093946046599074959386463735986769391657826003740936886048498524015246856423673827398589946218834121380325615712317080272343055229200938827436944928674351935638153022843615931709393650569141650878835457076948006491397683218367508113178960138357644066784238350619657983918256019955891028108528341042306984089458445141169357412322182346885857519696899014770571497580415143292548581472768650676081145368765312080155022638254661628928704676039060650241837518090488219449585874695442986278711394610730476048744889733119104495803419077522227084430175944503009796282502088785377261793505909038855864994848628200799304069705068701794268979410831906198411411840499392688171351639746152380499992816723900759289403087767825763370784759005207981049814866346276946280754576391569879654973683835934984250962744777046890200571186097886533838718442536862559777366478917390574756018217423715271732717173860449311962336533261512474130017451196978412131945824998541105457817044960056388966514900100478128204216538967090672029276138521000285179707273714872912153975099440749981832043547100110748360735611265998068544780696571342274345325271577097976066947155866993204767093501058966485124008825640022488311446549615363281784284392421461611642998549895490129487472181289899220140300343196323533859313883782383058159639629002969710346775515835740038005452996466959998412431826477527581044632535778661771035168167194271797672942858295763271782534231442562327559936873657892052109420740206355916123667779095350231765626770995402624288679129338689530749763671365439908175369441645776421251605236553457555019760682029491132003296968712603906251405664687949289411272977129110078077246459378863646334189624550761312656424044371622055614401968524402583252424432261043659259146120049461608603382767849542652109841797856630740581689442252828280093471942009116377538845599232950985610479574970359788377571733644459121956260207319861919475643466462060297100903101140184429403862123697443745253922784430108261914973653784814093014767143314296804049577382789741431353787243917316155839968209284074865135970288864767007979687525565014066791001945249903933222978619844526052429422137524848739389059921997285863939483435450744692790271438499395262540817368355244466008691988555778232746805085053149165200584356209127468587270491932546337859240565741817043890183186439468649318726654360279652222626400692351128697577127234319363370289891375798048747344482872524367790955469491627281689901118369015272244118153668478036013007233856913186113901906579936937751561684439156398197869957043015457161641165577712579806047792509424410509879748288306005698078853271522617482049278238784505349136474268250631434839545303085775624734731818550198557819425001607911111170101925854459531376651055080653187399912870171663211446854592224640775519274956036392439212212349808561055305778820007927314819952741944721678132965279764655504646834432740531756116507295260930736145972892732753924345521854666656318468508734136177922104325944287527395403024561226028754916157716081064090012173179674087411585146352823563644625220177200847749211344081817405844571479278418119940381724918355007720136711967832705397026376030806857742488902734063223296723490629894454701993925358512221286437021693345644520204926809995175186190582913371671136691712969078251992548493103436345702782460618928138287940904692032867278580536336522008985531747147503046498591216209721416604213730382243239923536966654312221445115918477541464236942309497026617224328287186350969897170073301932101592611325255734097599138456503905546078364477569588970409237570302039765219933839683233696814092366635944695329384350975841655933275398592360206260203426201892383268897126448969060624988804725314159137820099932269493736875442998473911911688267840302246578417266173588455526644896577451022762660227267052560776952978345466431364576968184186704306870163300041612667835522868807469209427040563188434707705788264241087222079545636058581020541247971047452985379553757102060609246753199851944778626458627758499160429838377072091616328360778099045709917289929544115761866190752140044283804061670942437924250915136303971129459414582246704963998333894155054044692593775907757841986219565312109514259617445261497158654407872866769932198628685317426051796426958019996464155056914544642731916098996885856474839910719232817430241103702012376366380755067923894358494173287235992013984008889990153198015374865259608254454858183982107898646615603471136314863953167745888530721402109578020393090951680398634372428237923844635317919799575601134911388650110029445788993693817493660674078954060036030289067569962294087514228361013479965115143282241440638745488288382552357396288302269727002149690789228125591841162554668291666925434688748472127477414929166962466071452230861569879686265753587311530056653625578606519186156917341352451674869069490321270392387686292096162426618478094912433011928174729449167026198814461438107280607890993286055022461620089418474773378172449224181973330324012212905160002296441148670907850136404654566718177387162963320931023243276479893494716651036815605343250499448239753724005182901789591081781212294175977680708402188426283426780541454793454836929868965565925646235023609969686337137910642994737955433655170670852411670632924444808508166363327943285608953813578790810168350571305835775486958377568091916738949208880145492508495267728598912650637920872139207884544253856065418937754170014005960668786710923576928441111206284344886304456018749220252412385354806557654760870367847525145992444484221699441721613039757976729985368786675404617853466311356940367726988522509539841520560335471150476068258049079512835655219053512192762628918884338023192270610367947169262032768769364418118157284869338535739277440653532495556814638567281495185207671927507661020042548136471281375011645931293950041212648375414241802428016706186944666182305359179912645331765219569341096749323971152437768074380675188567704316462857125525627146833067252029118788912853476815692747087057100816979224538124533893351934745290798198084590264653468420358186863397521383313818864047625852236929661076446198048794764542249888796978843760310387681630447057763279914849679074453440331357206794284768314974879719156205003299981616127400439828514025399941896098604021706007205764491124553780807463016052217377779161521671493249231741018768967350923139465977236672160597204725040194402336125094608515678388324454430606386791376544515437075710415243147815759893449758290670001230321310956314035563680448504473515231042190488159483443943043074580581455537546862005610684085869538381142331981272664426787602467943170147999852390222277892884048325431663076589835092174453889178864113322056561748444910875486113444661262181730966748544038543432836462777751774095966934006979303970497693089423226581381981542649537272759588076207399606011060034777516019807045814256636537414762743325306656199860248220512283031762780435724333394170915481893982034866577124284537377403660174339495715005166567912347296106792549159665962564722038300605024993699530415068117946066868843655275904287029520585808895976864239535384622516994403827251088947436745730743273195032857226053488943205529950590991770368065583367969914465008551768474620844806678399548561717857684954222676575554128192490338554780450088031923057615055412543962781303490603486089184359463275090400597500336238403850819040245149420011026412509421080186125977141339246479511397261386355878817929716286568413333434215548576262298029457724010811182425217089904815648529731214884707184804476521672152372632881231200489070747973039663328376298317838241498097566645254752629774866908232223839592392069689916021792234702986583001579926257345983132900112133697119068370583010111861504186207756517262901762480136602285709473997951218642978445292582296503646640961752275277946189326603193912211673109984761226970899439137089897015421580703658720319956804041372931744091058267162734225559930660612301296736841135834134284132310968777084730699261458192363938174993544439455163222748902701929719687312117685748041600606218881235756950069736390735820044639940387977304158246336472070980080966793824892622589770437258167696729787598122155910892593665508074310279496249126864308086820218381875050390482581741177209135738824259504925227818707567234524807264181167623269683999354100045430654798767975920752595468172018940989693467968361243376331498896702405024493550698496089964609670968053825545093969232550952403602006376926788635280235379155020953108441163533532507088555130783517242623066405972815923135826319178398090604726166345117350435651337387038892985673487456212602016018055847903009287777497230057159523194577891880690160689324022011382146388015606089941296624074808874708599526961152640928023467089776433805693585452773469441017714105489862299324316720571575064490070017632092653506456917477809399306849287804340835531936294401526402584870718518414486578668176612107665000570104839632313449569831740227136152754985259518110510570188485428192091387793482165485289431635536859762081214025668711872452706477581935764065773951093364694315361149340562816315908180681310189096953912475101641572014528274395012632746563578375775007935225665451782017682451570497063585769665552390336660070605597311190237396413918925342629821169863317372797058162039873713992079825756605437480929788724269050226676920324625147687540540858537153176698850091100149049222590383472949046644576404808794623547250323007794698325146179136374882947435767199755835764189465480873835345990468034468706005369625856825565681772899548021391378861099886009462444260298220346988523009846825647875173920402234683012012834580062464981506709024745906247662294555155022640498908404984847579515869959581334323679432860129285518968010536781359216166497253175605005628358951461134778243842374426675451320830080544643594471587088212473272527970201890199443888498424343925759757102176630844993321802008084133596799297566741172542062517727848117371347215359548582936145333856333215016906690339554920754140089164916048098393613581689297114814280062057592319900357775131221726452492570233492184471480784558811023668884327699567769857687562074812799484131733940745473304631359471616503025094810913507676188748765172335327529305239553964345273667473591362223467029910342137417362414954335945575399636240796174970535051207524467072312370226375744675481050616343495516493446953556834914403856902316497437815714019975868821496431496659541215143581165931854988103433188697097019233098415753556016056884565529146876051274540827929691406787692158724247293156700651569796123185590618298063110798312764560073629648332394088166287364294148261455996166532799246849403783526920081941678414392604525264472409775197445500319827567968272168349286556073945222895771220231429727432698248083238860639888894567909414919563913270168301171136696336783107408873511394473528687224718546178261730554238910723735562993100911137931013274883608847042232766109243164744978221077853038218748384888718518986980796723273798154546869909305177282440720719573711183830591874139859110328314500812450908994053816493004302583260243223793585128633046415913404583776004872301654588615115760243780516368878245110610325955547752895021651140284668817837535133080609500609650403780868225295346091617015337060681615702128700134045651560241656189355125009507639292996176342351640235850405361952218040415072473357071109176775249579077406980668620598926411872277907198727884402736523711858002463402477727841991724202914618224963025330427593468017287603901640806505806332191990312349067541730764077469279689425082039813214008689159548675567650150727910538745637655769104525704977427453241250658826384219785379132060435831700249791145766752924778860080818667596444355029049439452456116422426681706398839473933447610635679768055954206918029253951850021909764983953173885178464410058394775486319920201197831385087216291469711166198923592618370807071533814576890747829122751061120350628908342768079427762882246504267469874236807918112365857516708601717381584144600456753159098181742103961981522625366523031461805364711650548820650585400061042343351262330614056086659622454208050248495471010399888081081161278741027874029769503115922092759113048531413638328835630380689062191001820399044676130814815562001600771495634313208510197671940161840562401933510712274278497646870651457897747757474576959179092810110208149751981843962578957997510379846004931822696075249016117897098345948991666662385231326214551395400175734687565440786143754419895960555969265049623074908480776384050920136943471203862721343093164652074399640961937761455589586018126728472239845912133791080794511755855902283560541677277695611904677895946287956777430871402386325604845994184420932244555399862535036465522287487056769622392886186731202284447713054451498791798236877367816872088042265772718721727409325886887615964204363358454180829331544598972605391430643596712635069692890250417929239526065660200652329203978685064290599361447488192897789564587713049315963618000471465398058127180934905415359466907789118211358873297142813027017937103169064793347220701272620462062459421413500707174627339859416373664984258028550608786178401240567723889055880691635216460689537268685446466042279569399721553771051726654514931015308387021864098655051542163586075652437513678998951579680418234740841218780412969784474634266966423057588715701994030980530389579912476560718323025314145317178163989774884810174313038861759982659567532610993631202342141060059802951983372455729856425502670188518992470561019487452535292732595983857314054750264973876364119225370459491581559565295934188774923306639849701512670958731102670939902441993226383098253144799903729293174342873044892030432995557229136101737518575651283653839117809328418191362716448846280817807728201511803228448536417643379251724189086779742453881146317702925056377392513188342899972184862332428154941049354125524111593273971951317280063621899946140480760558107877026020089755497208131075345398064460579915785574880618881144515023122717886521972261955189174725670176925828575965038373879526183496315558878424929281684803250026756236499324087789255131346449941050304701625583061429680483307470051816118850870733071453560801635054861814618657065259211874782686428562886583460420148754417436943510565032394660459130268872490368638075636305539726156603239421805808460952355822745926347352878551021661648979424940958208056258186537497137356209322405460324944624152497849435696321358568291533753647860126579014647942072066133429964407203085568727750904526299119845833001884239019226450450722834939606352064788126220327735544189124634305649477534843573383542217966799316992581322718063755423461441298047695769020774607957948563730662267344850603393655545611981550310163313490390537447658684770343327967536031424799120500586923934781876813554842267426518316237664417098376408449980467444157040964869476219500290827029149085907317865045487230846699236739285841899091143181778681431642420973600864035926447097741181955478067082226214212934383912615258388108368401915871672836732999941979796007584581959487209474832598389958950483212394751559166754692051351767433835505916651819016972478230706767730572532522324274329058843523412202207785954844963998589560642675310406825227293156293860435135277717026805404795672441902899447653797910258491391709367347010316670891094403652271509150993635033015276332454934934367008304111550510043236310408676693123080473059306085752813796374798219968741617696064054395553425593407323546702080357377632604079201632490318238324196921556996731129092229732050623891602601874593102610091883486852226173166378260957721770947961004661790236863241002382800283625159848501912259796631500908151509036694098518219495074484502988158294734761511243752548812784886922880009273468536576933237061960472653864049660219179357968435406485463763590782416436611236387286672864032586285230198874330446297394807854239465991405624458316862207048503943868022494710576900109551474636405913682988835618847012202186039362146188844438323214571285482800308965319974579587630874381461888853238396859466777124847493888820367649620624256529999262140490628313403670097671826245764891667446520219863402332924459364939879864000376019659177573424321019727334035773853356243206653293039699907591860218622687160352346125885834922063075122858755175171520314728115662351124342721992966522436705090015497971618003889431649385504628944389860244328611509018482517478772772192155777956931659584177461406431905896145594734958552939335908112533917088706793559495998481769754247187809833248902080109401878436273026615189403625110071371385036686826823660869251147938754117697968688205948404102508943278366982670623121744015769712049670066787292096592679764710795181126959831787641130853305183752889558492293554066459440220259894988431998368076809044160278991871709051164483517262683272249984209997408772882385774921155825028213909273275869836404381134131477972753302554934111661571169595714236494569226046199006588528153654548813847231630143384976875060437397854211946357034863692903072109148152342524288312827617067632384132122187495683648971610686547803608899781366678087706386807188761307704092938184237611821220201153445663375500607226428496002997080391094333232663137833379553062079222485808250444082761432407816259828848569995339409934348270856660887760420777157437248516074763052053481297905166229312811516299764361597439531248441040615254415798907543781131656457457998326580698439640556687326722109028108775825984244471788167227099457744961937652379104545904937111021666537553466005118036423985537326342217443810054119132548083100659861033973065638666721917982526205466683332261827426060089844690427538145940873091692092491059367092441049361920001509926543671286936665891620570590432137588061444026875589947048683554027029444462850301244525914261129042706919493227985211540212145748831310485012795317030310231802483138981590943877820537408508187655359820507801509378412036919975616888420986255321737588843848945030231438180765848616318440501660763996662369304066595038475754320515927606314897122203262387788792199422116315493826368621072664896121375772139528579218911097406424922787235207401840899088248974588174588723419119144280612581060525600196376561123312509584250634247113781664142824389311905401222657726073934778297208991037121053734334524762337812279885026240133868435079100899511605068325996557711296397579967350381535464973063626006421507116907927944168654758675694494846209482298865128024618055719129436932015274484523112311697308161304953964635368474020842834141227082882299705271351467955165515285795708738469380125324400851095907443122074519999114286463143946251198298372397824632104970343096632242896577149924648672948716057083562431171683104357277789600892716587590167678172982853358757480282855281266640080401940720093028697225977874008234806764055204448095010504141400914901858366857839445815165405724409609861450363659791549553074280903150615881386419715415651047883381325895842019336226315597126199752319187952693718801090467100801598494535790377399152077638407104794207091351341156523882680845250807559648606684411431943820457666531260727246566961433080119889582822521432079711210939039800114243260483254663705366968531416274128862181987629124044988654973576559128525413961419603924636191996735591780311746074580221535153971591408085151731815767904809818375366837516333256564391008133971311958354988068254034968773786599344515769928221210106207874793698404709884536137494491207286732175386373150671575755464453444120995417780288025597522667770602996740150895370870401731701950715085938777895854193079040190275042142281646316233929876408908065364381309912085522055337125687484251445408977513208817195793076746973556954420989314401929370163479284849847149782237430543681651402715325188560921870926850091758280056565788641638765064313033549038460214659459149397169826016683032621698047334290389477386708621273366628798991737329505630560290129266499457332701636729456127518862328570080421873940884513632394119685396949257258861741939108243262120230073808556747130846707245228274426139141353001117772824402492413174343570851875497849332620734771529658840249779129698590992593591882469970401561520439704986485336241693422360294775615353526371112120985761224638389389171156773141619583793578433664898855049257716269827110292852282795926022966824111042091318283729946599574547497003093900715400461325254512210753690737334810682360530158377277067102708380794109611094903900895670126410559662869542305698043529536328382995925589948219145318453800238951932980219823652849215218920926071160757728398239682430352843898166962206917016638772268042220987360883692202962810110240878081388053465621273487557553497642510002113094699159075252532513314821148577721276667345243823219189962178295496435449326586811285943664680345719273956326050337369140880440382480090938818397810657409463380276490723235333621018933318229936373729109924859292960373355257954667367339227265169058247453409907648827696313859746442014488938934402945885600211221769054312692807593665761847662705715516372946569081565618904010848113918883871620763180931666156229578735133141127755766707853353592887875738402563233419146569801929864655128978162315903109918663932486019010219673489600615784926888429171390425690827662157792242048522116803995684796241088235771007835585409297278907556186354498008303000885199576602429791917643412530180627743720016155337409501642645396274609308550082171784701032999232280816403336857734651311850080392504386741149827923408655974753458267442966207315506410554093049160976838999171806362615365743077917583387473271517784252903599669390866167445024071119139635626859041575473376626117687119335532239414505842760299970283257829092628565812548808955519387130733284083013266536077155721534119940413897097579314628582221297472644411415864944636071165166621499662610604640358666402603169315108103086416325974089783769287394279669293629324438021672878016944940618188137664575338594163728182514213851520089410615452909829701723112667146183840482178649245108365080889170095508691959907268659568835017209660366043744045796255350223414458107810519467113130621874011046792574911259757655556856997733370176988015562705440833624076582288750562629368723561945973562868868841603783880183376351329643238829170154540745293660554650703747222802687925630837219978200357192398655717857367291579458421026554583842897526998159800199790050497698991606588550399346671970897073859643805723569551631666284879330422095424441511666264761580192487771403637650142868573709093450183024056369249069751583001934349901905557060548577985892212768458490136467306057289503872150618908572793674515116835609587191986006184713778272483672236443195495595136244215087604959859708206095816442322825000369260053118595091880898271320032105937133641961751306266832873192374571029407990863588851933344623243627588477259738655424688455265698864211741500637061709317197006090240998796483342979172901197077027871435762222368975214764171674672676873012040449401173519172317434171218244332193357778516280278010792315713419621308358089264788035457719718661708130526522947327302052086894374906711490926182741358859588659463093756489384754889088749763652120799149742102726020387922427606951263139938784432042642107035251706062428087190603221527076404760997442930441484118510639510558591758376121496564555980787634870008023885253383893850722165608405649091124008624132365019528166245690687453651505691159359885083174597400596536289586256968906741341660768564629224130324594035529515660018693118455090637797221195294569157948623113794281789037537360897211034057451454042785162308214009110087516981626590286305113727754126780086035080394584158264044177218972997785937306579309051992381623629280586770465496001764696032037603044293000657182951101416323873362197429240627502759413866203735604162841668175939518150407602186372703607328327387195328044956224885721310454489865864533384678602569619762084579038578772450385855545733406607205387488028749367446344442806689284007054230236209680688929461342098823463339267919552442921349380939401831173099366174693335647916718180950079353010856632756194320613602951506572682018951510659072903694964639590927887982354922403984942655059347314095977734660436639684370666398450626757402455430633206646151883153470095366118184525508288545284233335196762644901767359134952366262532069452003248942181574828430277753263750095068849864638035455044157847516111466665866447739716040926766505325959836013649213068828628184441106801289949606640603435657738111163788618421438529356045902510552430979590677512616434225046581483711953782230879879089065626797516833778244035589574339824853479891541584653132738434186067864194335850805370497634035817609487381092632004379443239219401232729357031730678813553646544882716013516292499945315259054395906473378733516591624372924174774205661191202417631528308053384619776281818686498496350339414428124159133149813164973455506538337702412766728956676393385237304313845363171610654215102272333338935122638388979419550135714650698200635959580858228008193278788260249835854075109425679427949957590101141674644981213329744305310693911438030570716082050863611106472284661465546626686985451253039164705308379749118682442220622698738526240991863280252792532972851848933595260690408936501655428306268217288712130216804653615200692111450841307411448960697388450147990005073696211013367602950948768783805735063414086512716377460097649221850536727724217388078862003694125181044631619535141895226410064390657187064683568313687157781281313458974797876090942270168868616137478101003274121204518316095842147133811311884676658260625443913093894141801346630677697849400702467485229162522250528878981768563764532370458584244335521905335280995339263265235556881394255965089266391470023356548210252436812142514012742501181461693874287345937619979401475648302918950581169661355940533948876303458022821682849315382398977101167408679858172072908154887893671893207727407769063647571226119666679290067175984253845712656845313967763313630750754751711646660760044495811105886721279715450603125175242422621312946744084054343114129506223756075139817581227810605989125063460385029283133960609520228049839478026329492860593770074856787539456747368398277867863825559632839810653112063043182244179892246917728541354847055666101722648081524942787786640394936867887561765993156763565281328497286820270862805261179333274271349539015038936918221385366655857375381467759283128900585815000340919267281139604535423857907572904608758254512674938296327490304636206529210003340078644195382552145851671625142485702245706669208197389104613874099058556486451283263279969011014892639411320744986565461368189942220187884144159630351932394852922495694218354085283972661954810320890877648819265748277458631852626140078451335832734557332864389735930063784333458029094103555756904222106960121095197218912378403767060610493979323783256063622414540412876708477404376900460117474793549702221135352327372105821664643651894744441995264860288284508016836042522625595477924378063079791902162893960902454294507859776682160770553576477170309132751956327428371380875210814597376509799299081688991213538745035105616076315155870726656164780739429521322077680952099425216531935584884729305310284165859045870251810355988846060557457527222310540858761342264639387715711857626583384261309277871356357129811778952195610066907274666416581945406897799230970917925580866591409525121300324555999162722400272639786334588508112574226281099702728893027947177902571836663730511439820646063842203581442009100509480144019510535875317215944893169447510466034202154615641601139537007791480029157034110018599811732019410293864905528504882392048245806063819146509785410002922279058647214635148242322149455022460240011182407175498512792623024808734354624430887528411502390305888356765113693053658415601261847517456356812367647930180747870236448097048467924664410222676222171898067908523151933396566780734176098115672045917745700598525796210815969829379823517581205148223836329953459441274773373102084041729984090464329490367658806224422950450429100373702639695456599810871864991587166841881279689301089680125115684193970120234590823896562284826339231080426651406781431903592786377751072637702393611452086478813329157945974016513096618453120060024924198043067627029943089131249072249483715401084141286352224901124554421137940942643253429422884167180191880343428326195155656851906261937940717537079454972741805247317619801539620422308694861046338131886044137586849368579288950108642582094718143800561306239891611326941002477311181481469219875049774041236340878890891385877329365326570023088137871180931511442281294131050240049361621878086932855562179538220300893494877400996400174682559353805779041508351427041805989844125886173176673282077672935508823246411987429944304512369895252934762830189847880607774055956684254506913906069452826400339845016044784789903357542807351319718785494617970018131767281004621605972222456358046707696195549345710111128469919647519956477016504164568727796358849328506343372797457546610459661331097923061360558231930511955941677387733942093474113796856700163425521869805489876035496263522747440488955370029844522445041257333739975711719322365127854137564466976423481680160044882346675588074628667497641686655003140523506512342002704774648201186444468170127815903330808084456707022220631461099399096093737834040905357250673257512480391526522857219006836396781191734824376392001762518078360418842520240876208271089889745971690161147051306607584087796058437997874682104933437323911323224215021283119840938981479932610176204887189996742876503531084214215949097879712058965815750981806685024378486270810186459750501048969042567140091485877014104568368005130050902303044255000100341875048867498203050174723133055895627408959928758610312355268953200091426736517235124342780983793324228033117712812558335833416911612002883088559756656685376813245907376281442191581832464660403406323367708209371076409671644686355259959753132062619614558806603078241998185146077448158358764891500094082290423406303229671331912324016686234861402400993892382248386446234653452181962832276578231506437200157800163382973708417820022731185351650433395391831273764755400608226558029891878147960358394946453542635865392732773031290846331864825558723854319527496280691096142489733119358536355976005519596826538913455641522869580906617517336669991896708062740894200770941341338231631983519016639323546613253796798356694226462797722910023525188322410576266910897608319410335784946942152312431341725231854437341680413652903261837984287090177078288671121390580821040824551890470196966786511013324256571467805707868915303402206725259243051351406812832244181835824802939817102119665916740225701094712021939073807315671477464901419478847540038847680198338260051028665722706191175179695678032226993771892055594338641171862969081959326432912563420980591520857850382570662684976418615334073085107817254116706884406606000193304137689330460554223609256659440423871763907470603662410927890297794033154268665624748985885007782628187140990597422723763903140415022665405016683347855692212932447730773010767372468692708654374335585921572862079745359529180672561180902782116208525339685052786330700791887900742429512105177711971773846204592954104971328781967403027115046957074321712295414947914171538383929835471607217039673338397417872953506015278517318868580962660406783909574098375005011451200858213727262644542447771977098684111525931718292311427148289828852991034545399433666661566258356240929570170974929912879591915120092175679602014136710687857048035121413368030160750985512496055927175734057559452556173922341772272897265634558159821035306890197884020362002500916985100557480902164668563376334892712151744215868662516904931501338284057875703975539396413250034105922989743648259637473526438839980914250375850743819517642210911671690492326056821064849694169524728132409940053513252381931809770011285553184321537359571320487819546917824111322438980182691475488648865296728094529627511681263944588516873229664092681394892664108413125202152497304888256987858043647149066510262967889343652681352143577651319530813952953808645068752083783075371846501418462770514175478426613705465859653334420623916993484933803430659826775505149618215744295432180600941391590438362091274173669811759349776100180857124616377836189842846682736114873877961961767685878627246551077929456256335497055942746303248199714023453485513946031579161280243720572479517417025459974290229844455452150868699058527362252428948512601831425120464828403961302484379054387479843341479679155678955075043515306568964644530664067841024232959269516041741583378720921230211243741308430736261606180765112721682728991023600481449084911891547709308012726144238201159199793020786671592853771824451527490967928606773480794837465047829365057415621362605405754424282777971654630174941807952895605409465214565661829723357844625261945566570454374597130030103006055532310479994217640709168010842044655772498994478681255670226889907786135993133274433205130271642125706112587000921977298816509336530065001752040385854937004337407775805809389616106689088442179305137674668436240076365233147761101484266120056713087828053707022543251982673028001217525158323106678761357068796696909703327860031816756925725898991848969490150032666102271721709694841335182288249939592450973969389671583149983426551383156724172286897684762414360411484723321368760121271445766709062227006372859122680619269411640369000266426826853077724075950489743953296920849280621527637726952923247494064139322083452582527153038487490858397954218294345352637639635467119990768977483918894703553061695098949771627804273915717594045553949230954723479006397932054210855319867266314486090801610699955980066842977519046014793774648517523245628971150947484911986565552751378596764594777572379336819303645698979147655244694475646747013920445148844011964462917534443411321197783792080189637346886052808425745214227357141864820548787602774384106266290319548908741099178890249396345438514207317559175004314319221054490700746653260324763775952841069881691334563199264008048252304076147878339218060118978802888701252203001575118716234500152018221718524724150597790130320848540419044250421793341818697115069534781401518858400992540986883675747571621952237573801737819231102240563201921434704090860960423330379481666612170398941352940124806262541344555648049715666301722302489361436179250208174419757502306813060039719876845886634601190188772007166592171900682295188706872405115446447302685465268470665421963224067817300636336545579549963413310420764422266185961799478930872304531279085946316399875733031420856668365351278850157758708589683932582688042754483155002001810675648731161891146863685464151110037819437615750989775281733377571658274109548621668099207699259173853858562336112968790494896155649917976458709634521188714133392187473438378365327847461029193870030537304551293408970867309054302017805789255616463757749679089623802545398584756394207715295946094659913544570537050066416364677774189333682578084135642785694711610156772745118505554832859437030183519865094924217349146560187779214967546102162280510913406858963897934525435021018912318011750558364124444946902788947768905769953286858263878105553525661938049016219586116796889861502170794654166347449060640951022482741169149691074079753846247484192471272124949161510989585983290775716534705616908309929273962714933709260494892438427359253972635685716606526883228729263333583071808186931549510986215260865066196071056163701362350558283396252627404752333217978219562876568699185159558790365434563070585946813405959857914298151070723138234540980238213536487172299816404402011270548280153884140753600189141199634790751626148293740588949816141012042817109993984203590171155088863859670338295452754010762238142560713690699192754503906462197427931336616775103202808558468595071088527032297541380463934192610140976164748464266937655858300093442474545714214972120185511631505534450938162661920354414539785390968364700924032212866100997933114933112576852413435673315874274785749739805140349843933477780870922086208720546751048765229895390840802291332546237914448839762583488387676939747503135372026779991651950642986426560911070205248882354224597268078372706022204950642210905358182971601312905233555649559579645610172893749098438116123843038766450252739464581145401841800188391150179984455852725008931684283680480492240438932260421758378875312429700883511017145148873067985839648668598909892782116700445177803791517583585527397619280153827395697202075596114862153012707340914125891644292261095378390428449263653257629079625101601588229058370617383588611629920265153761358655750119192302695744872495289179503452817785961487908915288095880979644687864864445157460884463844473631507322748340877657072239403216231528750861571397130723693350046002648371185747178671550812514549289797996340377864339045049439982060614155855549882352566088286935570541458127304224879993929132947168603512034671910409813870350709820847250677434655375160137114548960281215875044832825872105162927678434007592270818588213691734985544712371174786368293127423624247602658361621368173374397546155545730398062151043322428621608914571689584688397842799760805299366211713160571257526002392905276118716090529337578953192585158673320859544684059742858360443541400983945003702212543368864153118774993460580244066728450637289851067929452420777425205992081268352259694050628219064947644300567667087943927738015901652775745949904080690766701684703760688830140817274383679769817973981599252182511553450809483912328556153553845633949270497096076174097060673506350422642461418962460973289359880378433906132699881118950706151464459440709383802468132768236774992258890594892976904476115519162049686952170719630629758402150579788616294239193861753403803078186218346045379802548507614164558585458905257975762339551662846774888912355209954884541548801491250624332636872479939232223016398130826064232297586355201126621093631692106224309778847635509925768719214671969658323159769088610793920439145255453703721726832386923499626186341316731445782891628535898711626134080671796024023803036954538208431765739074155584840518436126675930483846779983645701552454425188093423595032992733072084451782897405216532421644041199430887024581519737402528656644049486184888661710603570893870780009485136053604172875979276904459503773756896013980838569275676457103840938761948316745268947863848411747585178804062301226925590392099699826966793495477556246889362549637065329375640468268434855971381434069182510655689842096385318509011453159545180993545726377000682735847650516733713657095525519401331347952233741988380695750636231648899845054285539800142712539176837484725088274138447317946826962795402201673769915705982548485402210245041416887667121912732168346904451929733980995852857554799212555677675892176499600641039298377675791700228248368776232196190852661499535218580181628885030289707879860326747758118883016879570220264331950090924948586369502956470090397264649404373984371699656651993810595438985554617396657981672693445328133745451257763466846111374751788894579118528510216244932313624527435047767970288698252636013519832927164363343087365073719146017508810915783395782554291717477600373586015234537456412406200996088502340840220609257459680595409293787876569963803741680594530467633312874705741513396133701545722386446068823797307868106532488163009871470857606411443958154069700966033651264505391128183174444291050310556674947211698829374244328661268398577309790082564728535922518060101685448421349300607442305157185347287564443970418034917929406580141871552731310372615038555935658413757710548697215567914849168986008766943714569858641840611990679725660164942111328278294859613531750829440453149301259429990341958575454737081743796149211479880826691526907631001159277625386999210393912957383985417648283493407962988788024339825680023443071417766198904222954036592912724505665349576809866148076954722602558116819527123859737353641599074938825030125876484321039570899692822604501051444185351616876125639527972992836480165060537723016388077217916242253530501159875548503530405714306460340433961404732601726724699958180273812151959724855224260132602844644731972757880179607307821236165616743196005441503634077690086641992398201613345357272139077978480617975007080780342897132288585419741376312109580558866389335048065173923498403366898730526536226250204744650655846008275401658699566348441918949073900811074419710418141897599868807876560483823003064720132965633184317128203231045784656578376267378232123252371721067351880613894446090057623604235494561991709523722751415699513414063705715537302637773121025090082572474954254141512393013750808136387339495589930487683998954845033575950195025687963418306068217454994626033147084476049263927039367849081569170841481898993716161902743017766588237363417665422992784993292529981369771489905152938669833916440352625225959387980169776759918438617162278281043461191568823518851912851157306762940195399327760716749264141676904820623385823467652495990657776533481469359992757436886885717168883164298933934992120215085569233469390448476093941572212404915628670199092795419761464132992863918936832664038393865631553366353431856610501830588144788169520029350153053505144774798712988031281431625288585513225804002920638669665331317772788980307704473058538310814726639898601753684248546622003230968065045120051393546357154886551609681910709462168260467475182035531555460661084118115994655416631823959724299539107585825950499514499649753806477796890865256130649947294804506711066237653090492615161941450909018730706712439605485866675267878207186786600880278891685568763242541818655219541467982727271093503104414447002357724763843332468206413597752682277451136178902135097593238997000315894239482945239114343354974468104363562068907163293540258311543062706320211814992198891522239772293998969204876858012801633914393696318388094164062293520847134483519816322672509598971415390909711008196778001786881358872314053884394021034553323871829967081455955636541658834030461759290417436877396252265742094268658525966375039186657271262385222467593161644985434873089713644505797685660322014085066111859712869303861360246942515935119580771854884046825142341656225928572228623266673714491098140145402732738200422151380214726330019562366408752259944672509986276748982185405610878217621715144362397558090184841891074516228961105534594158657598754058908749493471966836903088137400619978879558428779825871374026357494888606891752336535953194759780228503186666180518517745664138557161365029543486049811723315738499074467755001253315932572292698292898558300423518945117926984839540038188506344613180375454212826183064661793981468281405866032972583325390310583598948692568681894066643473436529278507949287330416426202250323975143207353506400733686329943324444601004056378992756442978062536998543665282158421052773806515597063125546615542930862717854514965608032910555558046472780148396082010981662138577152941002208791594711024660459353580216637520163280915551134798670698269486867192895852624439709333799859122664841839461074765920548882420089498888233258160564200676936499860014945017751142884294553650927832621798420538028921415247320317535339128941529015957139928252755312844255850501640227604576004849009752712730542047901672889724434151569139352714592079112757694374366762802315313450798359357552117989745517384878892894428028694723697692739299500403216749086188024724656030079428768821130398739560994978176369899011680269427922343515681766089158144175512697923512212481815386516083126749806380057151945349833534695360488885954604113003080422283885561836532432443878459736105023884314921505947946552373911847008643706490163468069209349920317567123544029453121968585497412817843628063643344447167753394894712439241615521525800444668044596965108651814694517826876800286159301339676252847900424895379057419331055107186655439732990515632325463010057498603933789131273514302496031932006576149308892526329880113930976509568914975548383434673836210495940265519261030505652645617692491561064016971332044723638737135849344275565786479490037471288857633576935091120460733408833826541784866062394327835708036465881254551763677535489809504305707909846329223056609350273429004951026439436724591677403039781652351416169378333229950659462851922218280491864819193157578754255365584937341902518585312253295194588294959543509581233192411956604894439719203568632420432452220232218510875508000105993982074552355482978302534808431057491454287230582891927889022620252470724327438293841282180811233976073878709924081518861034385331665118134071650029772066333679276910548949716854040733087347335107918331655185245892021624200761151057593247221216881078687523160498471398925304066498808070877101685280845362740740460374734811383738823108190318685806622666073011096112802527235891217527532980439072260791658838455703378095352015458772123768500781002895693521874235779600122479969188540114394928335284413472963975361559169546515956218045742115840325861030159942182056933351064429156100339188862160281506057724901889429014593511695132800913067891881990813503449810466426369684397318036749266446390397170992286172040350512972088963414703300884287963982436767488329468195741715105500793341968893389512301825602357691239340251350609601793137001738912592361251792642158372031250598836403795754212890705889211167636194241077002537434184406359491275220361455086819388736099192348326577940418284077193312484228667586736376177350316763198972944023026407855354503759188425455550397412382552061961603947787525341923295551975965854987921536308146916009673043653004072884133226395149319864751386689712863348796423233319419228700498128248570685156723344643949403704305197937897427764563403555386540410428096273385790126765843428084071640653355901546077252604362004798180497974451206671395306312811641556861176304010711717630047755754932501100348842522794283182952593368636005455875746380502136424037062630972357459576302129934763050721110156015059475520636984537495173865625044596019043334316078586063153420291804926140201215684454892711399226873078846799885497702050755468941259294317000774495974352088963303983469155840894705708879561747149800314000411330681788878024885226726418875050779179884345153432604829669266841381065137159884081780858860989289244673079201571311114480459819067094648167727762366706356700293792221480977860742809920779134314781389747848369358193115480845283291314251304279562260053956684998742835234416695607190487106979251211298358598751809158588519682549304855078539274417947352215710021621977011941822192604296223266932954823394504576961780121036378476855667009925598480631378782867293730848723480670865146728733035706354974224782378308138308213014129123211446573510550938429879852029130191765524313730239133813242201435399087828456993003669022358566927988886766956063168966317328470391965419523666442704331332444391080005080338793982629534489265385049336990713362140603099486074448297607904162582496723598421795596963874647772915037937893863204223138803660442541100192714750512009676234515584286978870882139164440245287381955020548090629825639252352688840326263353300050985089790794794569018093683581507639976628369567239402426879014351179869978199405815995992500670664413341894559990019596309093922480248587990454493241147296876391260937390392981239482766161204228137688730753884710389523140607513866063645028606132838429808566290299157056606766604685018295693859924689166688958801675584098180149988042638512396614168686901606996407570115791283245829146568637024436441548780214189792414079901791573812744657788584856751690616991379855323445884231196577601394183802159432741416527118325781298143289869384339265421413911429803771026886911893073411405255654289066170960810633412319715692578487837607564981385037669230454648191886445291469970639410292644168364411524240131540486336735759758219267704258828322570059699174996160763174110225185941410836870526853747480125562852674194265726584372781086031227410911263256095099340523885115460108878890846476089566688128579651802480301133610899042189974549353698780433089991748147618206850132615994843158265835477224360222038238481288773032500927594971513152736993591710984330294769090023589173810127993660467995051174119090906206122884437642279980396404054456986005272979822403431883438193132056299281003934734379926963176399940006197678912842797988005237997322568434965382824389583138736592882672000261851062936343125346956721781474978773683026237142803366900326392781632276062437778520077383954643749838966588945001698722565740678295684975982436164749602128794845994817303779903877137214779410383744353702992567076860658788225099516033702888453505234342448174890609633348962905839296494850533629261792036786980460736043586940343237324536893516227138681285083458502120657420882585031575400124433816738293140771650903194893792455568743980552340081290830201314904782521850650487074339618027478946990942723745149990834470539483603833522737261215499584296837683388335208132197863835955614516661844692767203651413817138466112623084305486321644954271215335698659308573456895108355736092305741671439881605526438235452327215434231046329095793042061616927585505719405285113447333988803649713122483593382097448239320381385813031853044223044068245902568127154338803202207092906004627230731878189209632017046798104136972335221305155748504031490531513681799276760166515899883894387236090988883094251123380464448531467058676675648114297901222411959493058332482649084317681064211580840240285804249203478392501761640294241061554416590870640766063160340996055839372834470404744265311430550259809969257193046343733724726177110335230223438805867223691155905297451888053166386196912441112234999594160497841857049547998595237639745516626671438896534694240836088313098428256069572500778667945143459275209305603285805253160877272127075104842699037188707360620922188848359307984354336187767449994363685599384343809261845757475080881044566663890306121788076992018216199533207034193205344064698500198376781179248685437663985968058574541660920905706035359821906475923518993417870319346874323520281057504894132680350885776822703962928896354078033556108783490453222620459177804467295958690927718727628749907350607244940054669682039463615514192709474140099840499069827734014140740902413272582415024917324411046973022843941812507699920815978019201528199190473593974777856966618692738071609481886417444571323645189054612747516780541849808605550870833214517683298842632011465544923147274984957347895189426376902986152577904205383152372055412405453748307664272202633049300629590363563484907030698298663772385546451107835115906333409675769790014554134779756999173925197864322446895691723152350262420809284176562261030166818642710595988561119119711443766720729984720922929460554468341790533712245773371360680143629383275850335446394978924836738799941502895952356437343402065224515700107970135377646658265157462269371570574832647090224561088605912183149939844380884023627674044734022883771078315840348135916227595084197127747965518342559036560819943983382609474295261936133166514322040445608198088063125625890520303981995177146069259303949199844652904953375738548496120562273260929931625917289036115447225499567850357401907761013642358006031426646446108725344650675393886176075449647203305594584887811259037959513191057931085488115794352817196337149205871052412187406026939544886214123974140522554598145565060217037840700003092738630092122041711279144964025749942703910542338350577287568916852334587389122910263285948050603700828121872596004922022434381034505775299529343887855666590152856177826900565202376527276164107902306369907531593341955721591595597018849586090347406829910652210362913040408018545484079397492298648654896272937233642924840260743927205844080814015639030839817877110470456397735898085666105110184626590345576378630807267770310360578933251583036599717833363602587437540560117501841739695566629398531567399179647076585220778656534781476210051432769975121816780338223564195030579574315115861408574666704463841841015844347354001445520027161191063311456596493027000492148365209323350241190502466909512211341755867307849694765897736098962278834369438764779939192525786305992526672830735758171732379440472858157735464737115475245311788176053698330255420592898882689808130900235071918294588629396135761214660385320320581498378179518976756931196091912902864869461525732383258776929050298506288276640756598076586062863206869385748909260364161514000168030787971584232462107507884541261386286114513945213715025810510358496174753842964200544082594388714285943797775860165188791140176680466390198069080268223376010707232986510146706669065813743144646567704621280251454534501609241303833272100130075062918651070909237509414017463284635720984077215466354662566629513364166748184618624223311212524427145685940451819037430946128566702997308438497437557793864567220646227806921527219257421092571268204940550264465920237138807479308130941612113311342594946691218850142928794272037406890742212900083145010391530710667901337287857351301591782284818486737622856382766361652767092779511021977894254689804030436681474821319584088246281873592584077731676518414881731335347737610981238934876897393662886595317674888235750133949384297673761406561146722521523631315780107043603184084354421242732353849756747092200941982520622940051094913918330751587373421810710809961186483536659328574446920882962040399882371666017658788172059863421776454025505765310835827721899025853942382015551059001653984216705798320833798104855386478051972662700141007963222563576381267482756067465429744264588786009531027834622721471991102219389566643775507550695598556946117207893575651577796386141454776441273636812510799205847868216895132102593155171315262043460910750156149622578425381728372741731092525971530864630355691318707555703775618866055581835653378938138095541593541849773875068275037965588896841914971963644264908890845290902574601939653972330212721856245407938613758109392450783293090005092475793194459634562642851106837682349011740574053393135610775881102270100671077896256284054895257482963142517429173175076616173995548684024875374701004763619265935900701584723843214230614863152889679071893124193710031360255730550396439678875206055579420736508343887418892401953088947197625581872691714920654181129311585892209460585924495367437417175609945579698099130077978432492860670959699587299756876459972588343901723132262734742858192626847003632955556979458484022727796954835919195844885358925412458662146950055292678939098398909417144932708542155145933066115667958104365415984307642288520442534188186959240425716999160361422681617742890985999358158922658495046044902209489395477612956437595102570948693375377548044388675245760147351278769299325359772663372429001923905355730658809256919551189872361012911333512826117284576540641015811182037220522361942870325708002701469532784193276411677986918938148332819481247108287128106816395361907755464160819962140963570792776059379019863425707031725501732099957973991524483189651774304147652457314911846229436657553703622553238174907897798234692776925549446119200337720486731912587365180526445658601834005393421769370658551216119529118768045207176669397106648763634255019146832000782989909419556230853880691832827692559848257761143512516914127780844066334818728752290446056990924281275610395288453464202124030382058952260149287526160825708944982876726305960990279878290984191317678278482668614529919406039644594776350800864351377890101293093205828816921195410473125270418644023817870258299679093305465007154122433742068265395405731038984339468167839970757049554600206599283788313828967699804308897869050585439169217907261996538551156169710161262253564832626713789890510256085549467306267735723120008100771240416347279065200193465286236720888321189000067420708283597813046034946317239489184756584110060203563218685607637956777364970545607447379495313748223030670865178447814598879440385197815991409273897888548062758620784075114055185716277520691392321922740389396065545730774024756245653792272865310190986702081535699599255439084860201324176524150286323214582191525818512525217890657050139680231546975873208120462262879159766847718423588318647431042234519109712728737947727119907463211748260264470891728904669323010655843266669385949474987494658455865898308859701890927980321320672240560173434569005210601156073301351321598521079363371656456224994716651703070540017237732663174171088117424130289043997130883263043440605793695876545831615478973957235037914066677378406302475014843915094619883337815747583980001082327854858575577412344870913194115325555989127225043543844729019809958186749537919967287850712890970272020757812521935040171402204461312282016057024822326166542621911293711154079803136455462520818663088330850470228175945064314828741317254262214136771437757045378990134629372634292332933661795136636227409778223457114983887493916466313056626008718243564073123663620966648342146696403683088741531321916332036988399233464544161002859451461244122976861942510773001109712280884773073589085800244003583250988561969887173100424275031191972884774668122573713812511165192262426557408595876360042858949126981548170973742983349248099606902028187993241008329287655628332484523275290880200977781412300281737666220161486033534589670688400173470489752807862681293502158232251962947084162934332577283425158980672695750395262492096043532507797574122961406453239846952622591972570790345915572483199854059878018429114029513265117070610351728916675030487991863262977890549005779078410892423619971213232845371920683791909644735233270164263344207195180476169658101509834292162367178167471594110081456417130635130259345223762048318541976859503886893617963557491206894977773036460636023013489232216038690955478720043815899310441074841067595739274221072685209268349435933484173524498713427125019350729943325760500200013854767991117413604376966093545104015045404230709952445685194776238609695023612266056508227716903008840358430296385019821118455609334132336400527468090827421191877973953152113390902637995221468479178001996773817747685893420325327555171510226864155142089401913326590980153274133775225963476268056320245436559786525543764319799389589661330457153802952484913735652126729177647990823166247315080783512740837842698845312763359232493185011239750273774873963183217937699514301062926591851555465120045495261145929301000118627999220699723704335854708780149163698665720659581491936074913510799970721655492236807526768162297502702458507138813830509119864873889502036209816351085126721765010691957082690034212390488642796724908744000377101151711148327018662567749878176096193933001587299313682678341214286525174790992193020596243585441136653815265358844675270804025825984202320443211242088969085153459011505885055502733670395428238326704997347883600853457787741665852060447143429514714325156009545927689535336391495958650941855312160294578885130625635604069724926019186495222960341170842740638252576158229554762373233901417029969674607675062289960087364820048360806365839112842340692654841201817375394650868664865460858281442053436477483335493728713971018194891033557133422965267071817077799794937389711574477443535922703815171344147180679465350257363054265788407436436370517095872451942352538903340904219120872252136612993665201781738924736096558922859350816375876071916837104004721374679250071030354794832429988098117551889430387014506785993566217821396796388373328112833013548958528523676848470159233865873459676923031544808324758664604914432555144874959352014422229187068760614652521327431030600927899011517054530879143772022725003985520760690858740215546050270748809543453577926776347199096691131917234457906536606803614551767843577797811175761140782667362384792434335999647005454637309074542202862396769461497774478547951466231504333837273337184334391337750664517573161900577404027413233610008356517911891917934509239253804045686281462162286384765318925046558469787010276023970373733001274970576431976244845921945654176254215988935187268413225813032416298006577476497280855473059169186535038187031907355504629760792434111800673145534543306886398429084760807757143382072348635768500974292416565538019617547109770148274548861450043312500062247583514584930973713327968430685833899728312533540308497112923922929651968696571970519642536855081618444930445705483476736287365171614003491247610076445466015340306209239083942754233455767617444104906607121514470082981879176749219427199699234749625681528343700790929240262096745696812865299894122058247278238665985582329936505370106650372694959971153921396868324064489435101113307286071401448668694113276122614191488413475520642934845158183490354649100591812886178473353360159090744055293355883648287726700174737085881659300990190261002539225420496938568652111394463673192526737541677961273198654505370856387342854489764170729577557322497201627801676670436664786196644860068416301705305111257811079768710478911630368098061532765088834997446785956931221775881795749332058216394820931582708655994672402558695361168804662756153058463660961093646563200148126540751123217596321322722047701687719710569525135416675067343875678430519900999880387558846485034818834601303901679724421928818695772421775967312501728113337241688650723448278198453866120929970396369218272588663376058407373058129617879268663062889515939303714089868022142459402367939811536006271706239317143385642466762819182439692346296983156624866568619391991459381597125613975720726712529027763487996271754486476679728440395041200182196213345611905671517534578814782575759135457347368110017169228354129375493687311824590361048616115990984782048681114383292664083642944838274706662840575764693494369584861207067515346829061354757106175694447327055636933949148147335760012765112873218924029890143638763802962811106800670303855320397025834346061473343825975133738141181561147034643194477239610179295912972001312459686258522679680237663147541813648397552380894908482909581327460520594658784573751475394013857883968728443457065641274153253348200286069810103167361106024936440376142459894185779786391331881739747232845452224849530823761918202088473609144343465736539476431933301986270589472075494625864596820799994853427451355295879300770922876234882984314414592742926386100093019761721684993383013515461896776563760230093188237726116788710105430516536631516980384939270479634928077129608691191769893463378354879261232002438274273139072136184593724687946041890865941907893986366465056312010833904208637198946782117565007792366417630721489713347624178588597137719051832837278789465534414526209545888252265748203910726783385989863474878531805698460060645556867802338845382828363075414924672384472499023663635274019818214548763628933152685677325599054513097700800214029112942441928971657619417891172019815140489362777293242976591465404770897057805461708412996194723358079091067912786745938937335583839892615286690430798583332070478804936620109882736497330950779138079152109465532295826980754605925076156725053802122969709100666001878064564043117682365707519981641599637253565873975206228816641478977583881617007879614787701151510053059924439906614083400285876574695674720872303969325445745925895949424431045313949035300036527357377683412902242607444308951943767986181459366715000310027650043451359192358327728139491867124233388337518347345217331106730105542841930533260546836565293117861935270280145317660626295396324136295897983875965406718410870161170961499062187084631082588078402013782660848172827228136061300103671427353608991832684523456212966945100816934126618768997585212102197850158497231580022791156298483519568809782770225719716233806019900296718624513321019883232449859807744237527420897085759916470138105979682396772590042696649785260246741589832053774974199005757366996308315402374846623948838293591035483348737772480093406841608857023767428557083872144554891821742444007050370227419286667341386664922098444590431232432582611940208212253258274735214929678131457197449251074525392475873830654395201034680639434102794861169783910579907959735853571677448527736293453278543895111377178545420807448506447044813998859458039909063989079939421061676664134493048865699032101884830077396164155106828560750712022529378590388194135646057531392063570569441316167942417222063977760550338791130751126554743384530444613344882842756010216965643770871742055547289159474499352269328921752268269207711912208868517140996658756555247753818672739221551121327435376752482630190029986294828922793085874466386164300014791898379700880006531200192861901588892609773479519253149257354949150726982072628000576654824822426347200786902881378102550970415025427729244963317153662185792732877973045706320967889288223514337996173081380921812320561565235709015946778658106148716711633199768615296429051283199670224185900119384013590424063266018519838458986480385562471295268472635734030216455073973106863086229372187020797040819660142906402417919882582131059299517514775021114748035778623219259426065229970364038218211003243292174527546888710668789210260964524108330286467142995193381855175075014245738874085709280668201407476611493170776667357514536502514056332902560569046435346263468513704819531531273074231409866194930190669956249218179314369875633033947898003702235254939594165449642898051314609078142801816134756405219381448815879458193985716740906521836357620690630800110413986262865716415069231357719529458510156620827226751436042617007856350277246002844491981597376159505831011452716584097352046864692240712097798868533120432124429660317841464905964383150337882297884000350371207121389964254934369139482603019163641013786807182696205720501693295048822635162662453258660787934888465504158278967855607660798065114359644563313058713094465759092115052385908834066100484385434828936257548407009300810577435353050780194727969890301010400841750406664976689787529408839265072081148620851585615995962688251613967724947423900198777131124484893537258473275925573169119148118883608539942228423350089588890687009317746959692690952965231435889184804618092373667574450667471168123309436114913435009704931967212275120570291814789624645235552841374406445023562815924213768764466737303668728556151873485445601400466202728841446723061188890021956882033838148533401503061996793504641006272160267932157894516544588562143415219257020631259360348192406747547817257231665673630604009379293165665636923516191323666685124396504322316484984761190585477329008435813648057824930390691447129485217491330665828911451703952441450753301538788231518787415095424571927688374264069985399670350647415120300020297160130248259557289492079235695165934423462399562923889937731168623944379721821150306937794836880938183515761981378309839753238112318178057091152091378398877802857054087472624041399011033850178300363914588769790960570472041102730909900705766699697046314053990383392294880368347481252073461536912603480784655747144067631849346221530885536621907104694642351707925847232369949173622278630895920882651818100197989601553219741877634794085441606692929530314758651916944931578127292897887100669517164296515215704360465767998205078965225276216185242358295926716637477489874165083085573084332660031673545776977370531749179248573755290846865141725207879408368970761088809183942506638802995632146968287301096926982600638726834353981652242026759998537924274858014858568543442628823847529962916824455338807539220764687031485695116418395332449894392411687811554994025148654965709687752133241784339451425545890169262640877518601510897770799594835660396774829846122451704797845140472771954566953704596501990541572724842822315884897841595863482922562726556781934689291976080193461055225502942737212194219609547200852155000581792743033997696875039667083533738679518936780703312965682178817917365282410649064916948191566679018493283531743486846353239384870166864866820929572829160128563515283018022242112488226219524217554367970729363602553015675582156575282339712308696378676630105057028301589418247459408937096385232962227631693361548242518696764171991449013782618171611711904454136258456592769478153678116942830447510385550034512730690146064842280224493997116794167874397439576979399423957776192286005192990627364291016659381591596879546485123926023494257503453600034610913755668317607840834021786129680525146359195327666627599271286827695220249651940432279926810799747833435376403219382155953049715989316257013162239745200150543697870410166350004274392924633893077739811106022528933416203808701198865666834042665717782014060028442562318412204364597665461106238846285243009182538477138666655483598894728220988787115068698751723002015933884402119561870735962498644211403948545216543502091165187582488233607332043940061470079989815708933011749224934409249986607737207364201393698297473150003315051382501485907091251413103002557892068938603419676552740581066210260523180586329473957652603241363810350111098304448622930360739688375464636181777651185399084283474372087021920047438169447344399103598365229255849022459751797911255891180230119766602584273436908137629947071192023485450390657951156376055472539269199742221014421081990903431343116344613889641129758199402591364094405597322580685130995846930502687561610414326772412882481364816731209547894048836613652382383187143746372017372306293978246556580315431794634839175584586374193800306555758476534411809022734372004323321506767064705256809474570412148650795546672515570953812220835977001807743032874645373692061952302004374928997587272271902577488159031167995577444855862389779974377214027562801112808427544352886659175104769742367279708823125025689609320235476041039290471193213932018829113119699595469378956348177362029109922594066021425699066998460357953056566851222450042495691690778200757798986281331254853952671482961471414180707877257012852019427484848992922475794809812573359923368574235136508878850988673518991986596445484041977477452708950662591872116857274703637512284419748872862844661691047481356449139630083037169708356694812721360094303361968086885778400603448491501479414615473109258666454490143321545108157980799515669357825404556608104283900805456234793626315179352879251367834660019282523952572405277240064830399130277999156413554521852506489259491246449911343423240061987112845322670422518232900929726375504458274732643355734288821005193121674480498037246423704575560615575902290871372395244173783999481439591957024484201988360798798643992408495050401163980198922079226414827117112305437616421318908606068308210690739888235645480784882215141760116374795979937657202614801675954796232946266227688609215343131781130638582938638791170244434217068544129115976762706756968298305885175019186561123314759714093406659925165123806535776118726824182645500782639848075029410440670839395579709227251149174792099846755894911548229560294352366797027278560435673349026357372443776734557287244883774037389161225864339885373496479479376817950924187842271227681473207648211799849466618474159072671973806135872457797946954942834301689693257583964156594486633188873510939174518965854338563807535857444789471690653027177884114438478084480231160714966528432812785972539678485842343380441913085574244357523702526318635748052021976416282026730786394311517006684123786207965415793354462466263022557973577482494501814228501444532152244106531541864882718662311106864461981160589949512100327057218625301900960929297249440055671300602437245085877038696451755009496507827731108298534498755321832349638158882028187411085963070256054119492073864195959687038655298234510732095234261613479528901721742908112853923586924535627233875610150604135073237716271399385742276405900886029378388520914043113699085734639602278267590923807716953387329605272291049890473579189943346043688618385049193601027779404172076828290400431585263957864199482729970186804129706433833330497681868280946231658301789756194822076157738509239242753680833623704902169699006829352536805856367889347829094728752010962653934294995381120696471458920070395613168290319811775325535792406291831441554230074037442751830018102627330889648804540236450770226681801836235825119644318426576480699572907094255991424966324475458244519033355696977281393730980191682129401478590320371061206217363825905002629548019068437744270665013429951939512808281282592536303348368725728792718421290523282998426314726158904626187182019247222664235881482522030280218792719304257678693698241238061632008483068509931340451761603092915186165586790172384050718039004151180670422414385126243045849038792135442565540129173087225696624181701410512745176808884593770302251704449526810511640470937639822034261542453760393689331877351479553919579227279603189288270384368682778614334305174661621677136343304495165169459036365899330895942381419287569840084873096904921122962799820541954721983291121810637965458882928903289430651588266795264095784157561611422055086057707152845190899351041546030774026539658736013776392459919808651648052523850618344785118835213855718989578191192791804128727489408110322380214719671026207982314271830952186297636983854381067922945334285258888894817575507972003447669609878753477682780872587530537257296906469176834329035831646112701718384223056530772703372371606882529063657223373094395136400257043476451658353594907158617798341906789435053668487349734014338464378173599307315270887250777777767881994385005966261160937712379972680664572383073898427265019401189550544331628788369072008088113652825806634502851099646166857743300555994298254362946713598454491205250306701334695758457359774343407106216773283396767270131501376098344400401768100677450725290132434867566230551758592450403204711339716451302607136283856267671808895601145887224760989393465535536534840741978088911128491490388657371563028808238630937961425044859324959544888425360216431564682498389111682609472356837967382255539704511948400951709776809711790710664506357198303866783319945312493593927115923827189768204078603893904810739361307868629000477343040715064514325090168956537800694156231480362221698758320490190975981750904249394006312283071756113893681550831040159786893250194584249323416308940996677411983568941262894303223937350154616614607298944263196418316220451452576807085542409676162912876721677337627849080897873541470315137610839591739410749041378255317012311765262735484555299869973419749409536399024597788517786479859074363895182969292776468992078267684101014244850005999868256731926366048058253046097887270768672985625073198574222439542321047002579895502448574982371609471731019604338770305702253682728606604108185546516262956205836956677528363847359791438229617988862270962686139115396159397779288178816862500102016092107566134930899779232531975674156102717041026755114389631512383689276955629316907297995662184143863424986674821261578630497380932160677871564869969429390244550821644441557574252149411708262801154713257209547122272484021618016371938367795786667733755606895692309645481316391917744077360918973952071499895918402403744420333928330805263703553243420633082192342050431862872223879454050461708726917789776737873129555161846660961962935247865883181737373330167163392888288181326459127091885960630183038228182393393388112590659929650021223510987005121402812199267754992419455011669819103066292313074590302653516786043247164130022807006799859394784076263767948485553302285942407276889022078914582085230818760292054506003636335992701064672115252528473044275672367547564919599641432293851989407120346733173223042775912369571570462229499680391059157781270633288426902781248344219181983693039686749586325622818453212048857875407742925783393019230325853909681031068218826161543288601671063986322788750274759221473745827863830569185337123099814470512586130480039535714814467854287119667393258460539798503146922109991052251318338576813931759540433455026957982785793034730425788273010403186530333197449318547210745119411461424918398761273627712787591739539820903685306518034315709968028477876632421423843999870994515042365558860202140239529329790296837685957522114302068436003184723918271218178000985750609990252073754594832541169357648019125335842608217058725467585598667133606913319939059778810181328059236151534563537860385727797413088258058293308586319062538429639308011640595744415389322401058512943843030491570956571967648142672474304296565822531705171461573105271709697006848028722486051367571801748636143527182490332976285586779945863200095067070345039548214962882220358549528410280834402505751533820637176218238173263669943022901059170923106015664529140669651812580387581083135257712980992042002710012511076514952691110190510702474978368599283832138324228992964236504186565767210024312683181440260242457590884028746493369009595078839691307150324228039349814122608837087932538753555079005359053980734154475774105478182601625350579818327132698822117721234627958467136307899263115704218354022331778255427080029225465417489897574879131776873112903044147539320115139119163244827452205292297191475707130001102062264341404020345810745171011683097552447908651586351083247189718199410189418014271287700400001107649797391839788186130376101852299042909363334964266613860864149696326081515942769999359373832809933236919243246092124152690609567642502791148464727158424067404641789990947757245765701224618080561041812748654283893492350646550406932038450517182887435288310300162928992945853056576813228408662980436173751901385406901236811147206767410678947332546990596856335280645143299230180882061047301050583245522462338914005787571204368172261772164894324415393598319570848832169393022964578245800411009406495892354289418519208835425703107317405447972923232745411210816968961493715380807012659275528055406164260306787510494388752408938621336966205350652844827232220406480639981614040012434157911704729235530116361833987952355204080531980160092820965538868385945786658922095919891499329439459296909601990960781310005646409733035335781494170190324002272572746575340845367862077243826525804869086458207840298889193760601313098728382372645630749322841315324158505682997252714564894616434724602333775447781081175261012659829654720122826966347014130883288111094228566606284148082782587244114126729727521185789436225842434552746809217727148390182062384255817230980812654521134826357911439930817974096151286692071515553085814201046661207865284516032755541480558787832686454948210440053050489789953153182255260749654574030919244568797690797600602968597856954510155241136042041415236045810193572396089580310509572613919633076469141018258047246550454531261805605826578341331679483707458516361238621776185924075619712866628162683497351463262834006846415642197610394295930101301853295527744666264128472789207454566034947922547852131807774633293729696796720211537150489329998227014568342000541152748531752663375666712719076686977268690405160949458776529099661380570615748098531654694187133517210971126930208946347533402562568919551101436587420136327209147910900292226934699375226801706746633291526119159255307832658556686463090359830227421238516637459871746163504209238465657220963711653096253469688029098335251235979683509176594064006211526776246565284196086112154817731707282418991674315209967927385533248517680288532245279930266611274346709969119820337457009691870262183239806883504111083110351330398969323336277058889710828309451604141521877666343746484343183442263672425167981672189376327238857020951369896644306221734895889546971093286978416420859692264203910897269174079866059598423261306456478931901202291742180486609389265769143788148090200920379240551675060553412960827626301196363199374082006484855261198701423600966713592879289565503629190740343467967234756392983250094025999433515028256140092606133575598588838940895424226737707089836555844798194747261725563401814808080058662288504237440862587499402334906810594705347510118928272574752316046217769061982375997447050451649029912230224642463962487140528202135069033365373105347305556371960198261729092259482257244966087832109162675578260358407542611647043160004289535079906676177299648015130345007280575092043062830500977902125081482584870998907385351550634121228143844017426385886029970692789396755565332287354174804702952403540431183887057305660928706037599237526799705612364007019785471598658033893485747518064635505048708171014806471289980425737023051480973307801353560853802183353040167984980391029988883535874696992130286780689516985914369248985703258404655445549419215207776861828280130202416103999070218090552604525917388146470887179255873122659189985856074346574112473470731306854966769423951424049604122335843173935164806609991221394193101663812666350507642188062842589761651024297077015737245665837675495914921458978118751060491661169220428191412101256480219563679316056934502633812794145276901973767136256349237917273918786894689919544081918472221316226754428183080657156393970518479065285183760271436824043629976585846757469559831450953146519848882190768966370738248339647700773331559449133516935793523239579440663401257542130282210647972800456280891961422189276026713062341221752333614164700030809075668370282836475176871286075164605613875180127037113364817241625738261368541035200218997649350178366124920240861923401784946931764607366255228347827304091372537933514933998171835490206509480966854236541156856845275541277496039666888825615232013275923068277508339759059153106839686129235784772532734431508887251085870621381528322747530191951731920569898814798042985602192271891545206740533604989728679327110719860341728363146519635101288176026050180975104029916448811465704965953485153425639006610866061588209969864874108628243918457258741882015619498797748227571744174669088565072805391282554667376075731000990773508619094461141920630579840974201838566193216147500495887439574719015577643726721256150192881576973747700649747678163207491221518983861948027278701219624728277556374589948085815596642756093783222008680069987752593999444601805064922879204223125260829279622731593892672152503016139994500779185383241058508512334853491283504675667770339824545986710221995270493055059706395045971469046927234981724324897453651078147219371166717229374973340500084836802458564282020797517107478875431925647267267493699489952307994940327705584158763559601740434337971904738060613557250282623022875655772343967680233246320908122710721489472154663275648807379892370989317803829544377414549708942954022034442977841201551026564958829908752085383184519205167605919878598133489267265798464610414164133989451038726217746985234270510767704435539339377600855258946183341437102536190344424241194269221452936109275384088565077684444039476577196032125327612927052433005001651127216606886503428004714410643016738431958200165283374573383903633593288644711191216983907918541144521879567543558259656775121104140563477448390026348505555901547440033493371991992794574042270097873332340599951722554119323834382652328425642441663735731355107658944336041041262180188901025132679670067311055111769667772539733236880743829228319733422180245406888408010143262642877314737235290526287973941140700822782381815217174207256451869760037987596184959833403313836144434404235297362260146486045197325387593890694650957298862516274384030431771103462872078029995694355555438874166862370525131181501613331965267751234887801571542345761151242755159726900935329336235913919538767836040413263799942075491159832150840655671474973285882011898590061067956083092985457150873025457969691996439219196324393937568461109664919047425918414222050527152686373729979181192449442266648259021931219172264889905346720684873235231724957132928342600025392056214405925022509212499370785827120286538050924006316578551696312929361710830822031111591303397575733114363170766908831380538819930534927439320634852190208863678984208942417534505918184920835059459405652231190392709910315983355373864712500707967270843587207065196579406915592942251191018685736701515199073282643734713998290564078122508003805910902957681918257719092068832399310302683314697679003059783997858929522058347766012190539095894685310421642288985813145334794686580613549245811635668647023912550351627048681996257436506524953489325905004108666676163373685777841292709297369609587859546851539059808941557068942043699867001022435593690246422176230321578622798854782947782149662257266905224061964282929895223523856848618434826659297380678394901570775431332944998517169853913271560235446706609516292450060450606827556719214825998383487042012909047974251147649797310258745994832988827976898129704423635215750838399220743124958927741574918783889720818245547685255374147051655007108387193569277256701593017494921431887621258535667281372635757709085083137079606104102424907392900331852217636876291415887702701439104208649524440027179705526723677888131953562777023779236345357889761654237871709145026177300407623571182623425913989040965280816837531181270603998723136798398976604125034761201772852881185276241792163803350433252849064674262506491675484105151473246371776987552564277512504800224352707730029710349305802065467409148883948208272304754229591587622731261842183851786467807862133499093061772086897029666990288017130394883184970699165204333730593759556930684448004661137372753910944327920173593515829603280130461528750560894076543257537514312583618607101219907959482840439451673498346272402413290705844275248067468203748064088000484379216359876099419648075021384535683732350470719238805674855564944259922305679319049392625423348763182523931520595112276527842766674280995874863897698353892950900908865393669045443397770752756429407149663755601803560470495444892346541780776448523668494965898606333425678304653306588067897927055765434891462528207923831934882541697609701153202867008089954849765544080171155502562942229427716948273225839153724470971010534154768252503860693993680127299491062215818155921582727946312778129401602172069978746391597996764613764015570801568076188953658736233038203630554977886226375731434865912759982318620838421105912265206025908951002152217503193151183295397563374195319258548760047808634543108455070862272619564383963841783958982784922440943335044559144055559728317670533372308095438170479016211539002575523868947307181693855629964775701640005008084535190947790562055355514910449844713897598106838267005660279433289199066071472076786031725684225481528958087144039354163606659709465453308740859435946487229039486257138036422439853239126811277690172807381031170339402090016745341402001852452521633710145188070028949126906312105712695254249840423289414981681410961184369388202877192880933639204036646751776464768205632425136338121697487248937183484784850931087174001003221363013658850712293613326505610616615222887782745500444841422210905011392549272723376649123624514041267924312279710478790004996543578644848012777322857875346681282153052882828312432479102115788441887233276453187336314598460612327929149287766813497749251691947404013131352668579280323113626774053726123856303946242735090423351068698264457879998807248754868581560573262938578756258581477817809971955681549448748707743583657886783464626893064888151400279142066101989048279978711861145302666285584343791361160999283132127673999113723013910354641739702409283333395262161095320031829512381193624333607198299861461663727364364472358975364437912275576940321848674354921655651669265006671273341974848613657133292964558317443088168690365579880313205927608872150567934556902856947535542152097866780476703906944327591435138983673549970823921012169285699859754216069928197728238469894097752177827565166500681475095366554086996701243440566295914688208321763365776629693801198210693750258039698192673550844501068946690558811585961364766705889972825531007588558042109177792770546397241358881798843932806736498517192485251801851195177286399913364431093019694241412663716985467293183118716177347146577608076918713305148642405121490781738954205438040347913472490658708846203006618507605414232152822158541873414022956931838313534311698861739598767513922498907753102254249868861913178221898493853531710510576274479302640404656093199189378936137269657262386172254509982899309649921712780057592425286328229583566663208418770363403929273509845721903419370005387437062057534533000701419601620482693052025488440691017637787091851280564190276567283849098389298723125246494733666411137799291633681442684931102420472360961208967193956854695428839513080272433520765280509066595821955710993128781578316724201984245538517925135008743916005638818736727998541465476922975504250918640639663635908991400542276577758490415745875530711807408458370594427203967703101778441195481192918002928326248212569997285851514863003729384053015386040279725246802697056355415530844129495520335115371503607659637446551640916593815080722736142510265332478042636947204571042603064449569750037640056568622620485499495769798577496692340216054945819895780783418293149801066833913629558628390596423662724702910956274419998412593030464456734418337009427743350766024529231807753148555567855054707883995131944316851392018818250766739379854072247072406819717988630802616026357195844900596621231973044299953958499521770282889456037042523615473894585832811808733758843989859177799474953870339207234154620681042529699405916531781144656959980191022073359836579903481628942365746388722607945015207435052239419380933551927566187372416391745623375373076237467603038598603080609659709090707766157909594570178532857087700478537838283243155763834958252823439165748479580815030069320082252547010075356019686256224962713200153424937164376027267031557625546001802286134900531143558128030753425054106669647203935886855625521620600806566687667706375652468056220944976502042698212894257081343710956297378468797699503857113481809226647767783216806795214513677671433982914981496540017082518290951836411207739794496063093777901742341613719192757516668551351303411609205786557981518288318189287103655482259470067943884387255999439626822522060671193587632412383973334176107957932377375517681781930736842115159211169260101224067692041115177292698934080628018790904891895526715500125942688726612140719451297649934706273100988011742226162202726207893745495034145864489634527750841510411728734864923910757729702199886293978159317552777729783788370031471650958628166410321760072175710620707844139736109175014113328290037905176984292186508821157541845865407803436574058972036740947719486586415890358598755398793640101094574489812192469280198826064438473361121426988752706316438806899621966246084495409994476955618573296359076276172575021075255357702892986229933051238998614339810430557511594456644266765676902554091932247285112063594441454011760776257419180371082898923659089255852196697018441599155963832005516885096090025851977009590150019491766691660857553670711529489309969859424017423453316580541593066665237142680400279242996616120412459331208754422925429449801007746558843076476205093075412507448132759935431217580809361833060573022782365853741127986834178394358601340857211567972832079327868691877228213040032674198939838901845270799575713434842960133482148760117975752446562086295188161963714293269594991549174648536025545604641637772341571409144283941445293344709291996299376621246348914647032663815453996435148394927683291531086769325146467801742403041154020657102434604370368683530060261853011344582704900370788334666121208449273024722063963066588702547294873123142000704541056910808817087586243119096397717603854233304859196613549060920907744313340232383230003371926276686982248216028695204835089274537772211512225346732007625659607715602090556887139687758643761945730323959981291481092071268113844401074205206538896557339000782819030337824577207218692883452462939958373657038784333639428637135496301072605245465565724854785756341726441816119742105731681754843252912130950952291645297117949324745001424552470057529056438718358663641464766120676858033016697180625502070225614444032841306208291029042026573170952255728205792360250769566612758512513259962223267885457673854036311869321878892271258338256541152189165577020404778728985647507116568908687852791701223521249079138526132683588074816614877524355235826234942397811104595755711123378682587460259194819743685339274411053779343150854829665452964227701002242502317284546090647665409369690196852406147196872743230395077108125629473713268785938399278743298537085193498247635538993642744013565531301402806673734553880883046489945499440655559123970926451479490200732667095869612661668828738280472058003292897581777768616084690965225287671240713833930057532176876071656909244731802064406137244375982521248618303191766751610855424700500569719286081717305347477938137699554034828222096362525155892298142784482721212450832779521858832901358814164956243632755946662492771129669628747220291562885812381241135706642302561179463645058454606791510241418711408481375259573715587949890689692374922633143866995535222879108598219415297138771908416172159353835092375712622808047669781741913534614267112270671467971441060035847194804254763978667418647056388617890885996883624955736773734846766949825963628355733157556119216362946458672060442854539159904634221689219532292903918826786425742299127843922882423237973211396725447778763942619506383963669251077508818244129155871799520113710510673977659822564376731224766253410107434088058671380794499402312403751370573516367837590360970885671919804913580361154908732878798432339670953908142729460325377369917205728247998365284052074335875744228962284393846866887145516921830932278977979056100107346265653749372146304398166135915224395576528581085952261106602813958912130253683887693595279846284691891233020832297108398681937162539963889113168027826893576744539389847562726126721996876702648072616717925862801213525781207640558469627960615640810255160921371608186188903242977153195486773388480387018744290874425061281655359046057959450158961575357272053803796179402269487308473149774018851416767687877557420049624913526691631752856882248029327092929257404506216358519191612675970880579566695290936904809226377001750200648898478393934457462838449372623243659922174928138671306883934285473193653673083005552382773609844463244723166603062077780766776395887182576935044797739513142505177560287854439081831439965994036161903038454318715934918190277061246042773516549171220526657743606572919018687384506407420680747519685129207274586422332417076608923634222272914137978503147036705815888780562331715246077009815190850782554909326660467570601819158326053559068009087166903206397202128348576389314919176555566949483463740130878671717342512256497032972567861970379529776832480908632947962159168413290301688553855576433869573416895673659367396511853257766691809760174180806779957016179871086492097689329913003205129300366534586451419076318086048628738413152178110235558391632498864355705085083322928360861869439393071729255272263008743937181650809371482047175345742955145232409521117489336282618393255771956336143204634829771162958405396164803379924249598079687649598710433585095920451830998117904484111012630059244291801362956964070951104513706302769039928790175510083857110189786800855484629239126227109367614145911172045618504346843537145410513141224474023507682182700660746050192148733875720287751537623669848669492587701164469439779772924196557619393412924743097206522653545993976428726218407922969027563108643383017046103587610259790868249560164258232360589186678411571816485447001820772685834083366772060080155833704172244218438489253974956021850899909692409914917733213817116887101848649081520335980165289648483299921861938681014027146296458309211422284613759040487973005831714429988088405888417045030343398584725686717614412330427807358090165915027677472598120175995719356985505214726601540810330957050140914230550687498737816183132157178468761584247584160848026950056928432151136164159040793080735087924070530909282778338096557744840133005978958900399492889877510111038704480322404115847486801112887232284088320913877506489975453974825346375149109608994463661526388387431097812205107867450599488485546404623278216512869318053185946883691690478893870060895439983027748119701331602522621704613813907695585976141273221014941990339319997910149836986019471680036024298206431743307035777116356458079355585240089405340510983714852608628501700692564987931943196538027136760229876770094869694342384549131484523016375452195817321480584794618305002372221983799475255528426244609873603186423884776635566366372386385975745218710578149468719706644916634751409877765418701839215071377782821618863853312763547497816382163951438670128546295446623316143292679429878403237589879468213882165989020310966315219323831386848556304894699916414960862636263569449072234136240483943358365179523051611958015717385755974936196428402246878869797333220726310457564687382091878463464994481162949028133867096077015603657565192839892075944986340053108997544839741453341090247871580209181915583822800743158310965905005517203482858971544928403249535412399959050457635982592770974646289377121994731305575166068819168291065006012105677533565983158795559853521424021287312425900179810692340556694381712119768926085839385045532872067639753791264898504872223968825328482110904488747961851053099647989847628482381655971597359860196105182378614621724478989264799713680777445375997483899128130356209542922740612191045220225819500335234750957136981894549901103098046508938125658050650726620419233955802696743194471344451130630688917143085862115357705796260610547496864295017454401869091355598949044088104637490469498947051964798246420731248459233425678654593130877281349297397923763546207777199034882955416376099396427593422440772303751045234159104785401711167105219058574872360397061028210127545529456016314151904526315612818527494202742015091833530158855434756442011513173168094874069073337324974516050081952607004635496935853304705106441831083095545986201633957819769790459294975570590946840464379491160566958886902363818390646292587245486212112024602973151319309422381268162252062689453825850506676855207176386359307256853420215564094796050880255261136889206462021856044379099324999518852771378724723103640916856234691529729477435540151683134627409444309217581531448656472853897003826862632118268499834459784206515489027716727116879604511899382539074308913368789938556872067500657404571618883085781079360664304464102905003956349596964900091291443455430964529555400413431080654088740994981064757685914379646673237892192194517008984351374468792839976205604902531542674580682146288955457564714466252328513295478474444551349371767811842890481247643310299678574268837323283681154204715849851738725518682707484091985523569585672664771116321077937569156987793781953895801938974182432510836596991644094008550720226762982701210576436021320180655940110588746539638614820647838248661056452934561836303335822148209527666549193092129981481167879549111759438273023291022376601673775577666596373448180880354649905460129945686126028082175443638641197290712232210511715191937741489934267596533306956161508416782070089551299058382506819170325480326459280226840487065976610377474186772946067894046027297963694511605505550381179221269968126713878823091607279998846762936952561740039938056220702039698201570402408846303805489301832501372149369201613100504593511412868407806885659832605923744833907334864905669840886447867699144444817353332009012638143802123517232369975516374094733472648270005482968892335600812931911193380976400612249860595916923344567555040236005163046405384005530588850469260887245887310744277416372378015817611224799082451648461446653475599499224081323941112057220634706435932955506981826532721953691380018459804456365134399931742694116441734624516027004468875035583062218951340118565188892376831105160180032876329265052994036474483296467407249045925449313875111390109440429836000029894682369274666961022908678322615187707931060508809337887914428889134499395015775859709047503584219848388603677488767543428945643072755745437694692357564671642942532745703202564679447513382683846966631445595198859682329950634208478518130539632379762351380659608452144411693989276072183508118427895439008411183551547225097916095893501122177201037561490817038321804610804645386247767276207832399527209682139737025897454080840674833687969457997725790520274570311980764150763493369589253379956363869025408585263889607762392543700413836339258898820447480946443024066098239252959668166471675390729535953637093349323518043269591078628273381724288567647944865531203784001774193621458096851240321741288535943642912198639551792047255283002608376465716846068907927114042250608107206052704672184811629150670083372878244404754719132008784869894937486822351891215099404392771896851250331998408591646582764055592792251266398948902812043842356859668504161541648490886003937039573228720037843116794488691577787015844548324235123606622485532999422029545912912911591712596643238236959609176547651252011370597459017767344165491050132085137118857080775185866676423643776875294140305225154683000704900156202800065925447830985018850086112112881131450204066216267180413518927760006584992682117647094954740937115972788681666515791484843775886178668875350130114240743451947823993544754310647225778976450461487542185747973156678067993557548386795826411231644552816313474280641018338965088687984586321690058185752279215173825071190150383829453522657124795539693104465919697329391376058799894573130016208722883694907331628366465304055693518905784433853144516433631104865193016162335248311982952025727910514567643825695315911197227615318323363812504016653189164803648959171205748850190903142358126613691302024908015034485327436181129771844882194675929394265620479609073154530627611972711455860124606336666422927873801974109175598173054896774874809788472052157988302227837360967064220066912916581965349763494244576332059343118821019499408473635505572770287941561802801338467784159493676527857937323448714708281988684875437585049041985058590934843828515883145259194889263439259412115716333282981964970813769025937242563748000445305944261017219486474356679869229299645642114934263411914628666792597011741552867508168664320589875184970236799100423189505154204942496025714225980686020189535667846607902709439832939431605189804928581674466614608314916980591691501009120703259825714755977517791563235039468374389569665431990572259387597022434900660174411914508428334392007438854603007545287480350405254840297522808417400088936453863892285197843873003558414712202725987276045097292126280220998734133475339833939087447062423388901911037725294683037617668306220665614963291844952412977216595821184890179670206713169339215831107453319882280937394759538684847673056271039360787832053178760820822730604749228015391550646782358192863261222752067190579359087771993202355340312362422522621887664185719469403380597715325348630652966146867923559090885107420394793268768818133831407356633404134869321989479942230654855438296772688804524649506177142192980123829838634424217418826417595799862633422681998979093041700821869331341566100433125477607103147808887513586968958275157671713679235662501554167001624245541263960814834138085408930278131289050136805246721381209182579809485036351768298244638173607738022093558302147678744953274126445689049664607248221219348063184542529775075350090679285973083319505337928979824268165410133078158008498790335839480794436544734284649506304406675263202438905859530240665876474682608878946790236506994095767172419386381292281110721561189627247395724556537960309220067285416254293231135429174859446981725049932464205896290784352458441811144538973893024257278589217328260230492836748749760769443004837797330235292425231128847316552680397954670569801792681363897550576142117760815992090087800903428984442727014579604775639628608047673538964500919954440761552872996926954355218039277732108097432928220802566050165346356411454126358545162203985500896911075838169448210323176565046411262425753836087073098623773998009752960299792775850513483091994646108987911189801268951594011032917905204623119180760191509765168148870913353826063184982091656932492450946049757202085487742361174881607141681795446891999230499257176460998200572819845943483477650683219290560343953088108926796253177228657961952898126538181603241185559385934843983441264678019350106814664614198013709276737022582825486223624071691446068625670756947202713661035964264590536384623206312284078305153193964709288031681740478750936528411730120898054605970588741347259200254703197190951365128771940828534597046179155673065973907868439254710396689283866823717567936386466728341891727914526818645992079141352824942056561974417944505938672132049113386051864777616210935997123100802503676008375661957261438841229266064844917282711071277016877948857078901965902289421186148745410993847847293447682838296873551575881876596975545685496962446449173603062414296606745581294658907463276080549887397644522904644934241954737902650529922589861296103625474625448579427730257187768324188262591415883307459061597470395297052468559013796143507815955516940744800332269925174169008592244393622499295497859981417479794754715392041998650172280887199218255311874103566816192329251849178318491388698297263271751807487325736032987500003097053852544689393428315729722464123555494863141911682816511003892097296709198381367950228106670186241681411041148501410545908719820696102938461400095801119016797381394994072631965771956407740081100512761052949723935468423148305869626326849182456365737221100673598604354710454541309944565806285583173552315354673408241624721666179857291361164472320111359171743023220235824546968710739536082707254783421431112150515931375065110682400137156136854281955322914197631113368548570528717786308511097337643272302730854099565990822554157896428186588249474656590109789698378888471912899634739073844061628371171135136546522231278368642992638116349398207874051844212024109056747429399168138686813644256631731153286604866646606242971932591478380275079615372980670391401136052607340891641439057145240042447422520437195603937672109886110474620712196585040856302422109289030448889105533932748841771836782050844282364670519952752341277391387881304513438536857431340161128457520141924968153043862382744780794848349490780741534835744971497074827457789919903268024359514202592236148316000488843023511539444827776931004499103601901620078581619672467676071287534551148029055535967940487491524890730510913089349837048453633893046306445573656735463276103767252348934526280548464725471771960012974046186910889635259479614035346773937645363137419244212913307164789907487285246284686866359852118809985716369492991405450237138536012211405372101044415595116674797452267692659282742930243894972807112548115144618532955704650575052939415307058416219018873075766457037381616444277690425581695558659131696287454111903971452916976228384772517867963462374972530914848787174120360890487422426703872341540107292714314049377876350411770288315400402393863242933897238707881451125053652985373308825967313471285621203289270604987911687890644413341023401954912030387639391043829602829000388395484528790154273971319954126114263378097804378627947708767782544263742793884270984651775475776523643830585375318909980832591473043368990621027161022624057918888486556771084107803005056980679633462272849831560651113713339784190069725354918761430853131245922870833573641789635419020450498147608464763383926985463783576877866401536040930860961721575497392380783576198493048803597316363973511899984133560334137493727747057770870967170110231058661924243776837224679955408047097496891194895462372109794398369096417064186367615282998744460435400589023294409074829628147960834134243954953771910222089938857905263743612282694168331029153252711021247474223814707353978114399051672367714271674164218021645545450095299927213510493295691827906165518710499907260769249090277288470387712155985929380741152957415492168598889699909972920084598425250980514695707881154074947293326580927110371344931650457063005781861672581385520853879718040094894914372160918603266008248188194994295316175158475087622013290911092592983164669374218202537302342405048589588538721197584796874602278422921269779659153970865932645388157713144428885872593158840918514524394555907030120869778327223977930968439179463823294788621525296684014336126130102422770931045028616832286352092385078466994484082795583856484156352505358673270364172167632777645766294049402307387749985976092802096559597148379259456726613568598925901469915545580167414744074208306181019948682429308498897485154305096268286491638391812575629443850381039056890950055656785704863834872183534008625138086734050158723117983175429757031104939897394575795614001631924602599415868669126776884959945219182153458230765199989002760915259738117205261974754169534884682877320903967040847329872111577045566275008915578782853020842328679161231132231529045095644673665724650544620611363400330932905594969111157718205358195361634839288463879237791583908257059658943677265749163654560178085152342294719305462039594883588081707283419017006567509045002274299166262897786956972192381242883725792480834338804592244817152435457881529065211694838650511225190882142974405758316986127767536572651166416125551940148660981189313081237590917361475516285171683708455466205109490186716316421305727737537524624838761179620725492375836393306271131010007282009716004574888994621131287206322350669496103757134074454562299288216256395726343739225887845913303215547518702614148625412377664465162074986869915292758574551520119725823350553427428657844129076136502589050548491029154220127708460241793579377407341620379241829767946737025599034110654307876129783031268468083699391906398973287744479437981606487304237027184149367991645542663412035677971894039305629405418334473362676744092406948805452161462904121977639737060877210848631197194700885932763808429369648480735256407969403385741477116099708210360743608966256871553937535684810910667898691349179294295088523224394714553631101992396357538215342213864508324588289289211502663340177210157850052493007642372969930529701845951036889116715139191997471071011502859100437140810093235399684571536961067095389512154396899092154081750093442776025562785015637868487388051271167046608235389216756018985509655392872905073100762828429731745022641802099180650183119272134754256710837687757825186472506234150516718860238054935927804726151334364572517670448844297133274680191333900676711131880956717885387477597974123259620926309511468158882225094294383339669370310287525480433777041840748909115848408098207341847368299302028368410588402316636775629550783383619206524934009794079454690670060975993489001128792796716195656807212392262059945180220022505932963333477874312919516901172179342717634803769771054256181916520675633869342512966883594316933000363024437042359024179734727535597997448360653358907754225820121008279887715701983752429432445171251126711291907249280009326057571503160738588453835902979514236281937330371628973892878869422606213876562137654594135965921497586948331481535162108698408775105099756778327276563967274711076460852172734652957192400101141689260459680082237987570307418679476909890907417242939758407148121129968105362229259007648672388558279677295237016028605779136855491525408914026367681278433866515290200830745779344200738699098795961993178357088986262527290469345213529877425561766820399315405837918380806161833746490157506526228543885980757583270159066313604406696642165042356399841959780847347551024158683762595430792087232504163920455766448849198589848268512311671417806290534590003100324710169586954382268636658478035350528045333581425078219679468371334604067510875071061868519696895219243056210615391493031521950185487123969233995488200522721046775864876389314180586901979041637353463066019834542884657554577401629936929322690638850147970674078013052481419530992372188277209921938042475197681544855347098416487179832878402335815560451323052433278573238581012896366583377461206550016448998826074783135273562569762335631428635086865705556408929273924465332115991868840778855236145496758945533145753947577801192359972041794088965722108041407831549863932114557653953228367886941260266629607908680230894682848240041117350852820946852297256568847075083935073421239575823088106664405396113442977706949403935450049346338494975098117944348298233898382687173854107223233677293737809140728538096680330000584241154581943259587346857418090421337083102681898927919276698435358919566227683697526600495241713816226955544942183282398074186413668878245325428425545426255159245995412856697414979562696335428043285355634969983256408409873003684193576211677324405732178041589253702487016865696667171714390176885109329775818106187205240704435398061051032625602129149115313989309563271071913270911878992162675460954351307178880644005912618259499921358786573917355924938374185913949221207659103352630311097933796746262591216012113437642586499840574732432335135610699543227404025287535525403881330285754884291603932660160480711797884620083320660560133445601009056108163704470099177625860713778115510829192976863828724611730725435312454109696935948235116868761288943495766124619991627011777108131619584177946010669202517740419529735072765421683144321814659567326629195227335006491027831163933608308786991858772713492605016244402357682187568406081055266942901898519959915763844511417772361222598617668277789193503044944258400335759395155526252576527485316472427143470896880294447073123899750208781890000076698876192654537411841618524782346442820975203149143114033593169337573792367806185285437281648480293481886591853895268333724726490043724325715857576120036793389906893481422443208861683925631322281642123426572624190397957462806261303992381050589519894614702258185277642575134769840186696660038371630692798776107915097352611327771880928987540405568210833127428661117382072698970597956521476698579108435383212479516815178373987799819249366379521596450802628767367851709874261841232120765110183847939434666136227375829981745741019553444804404501055167902326492141306092227387305583372441893394565982818963387943313416537885833161030897903548790035237319514219226401143027784193731848409354532983382697617677875963693331906068295449072928559571949332092850429274057100889861237238281004617116364455068456323845127653502701943421726787029072710452379322200406856574692295552762839803385531966427733633774454954034761145457629381225066189164203915278231060448860646857840040710169501091951141241525004903054046890823923228281192446383758524226511689804526560384368491012759816342161503046470272610103398468465423815982715052007233304166837349146370410477549189384619756279422926137354390783016455328808565972744856497743116559680100052452844503349146285790708345083428934138396811619931266446622614271096471684125556117631124267661411720220440675763613427921621301064792546615598020281897622531413440810454421941025957042684672976688078940534683926038387630524607929031479731475672665721805197360992304305211391633211816836939816634452956233168049388545264116732489753939033970060426007938137312570456028366336531026184398975111759757647128717561404846578713387698589686499696855554449007733949101445579925157253625597661304274667361035823922361413187936059542501440915101358398694151241354915536163397544761024562358375148478985762913622771143894100923317850273032729921088207936913062363791285147880383339846803784776244113741680659511933841348925651194330695312973981141584085586959889963652296277757427775084013734998573474072079625062681274752121451386103907700885228594124043331244099681092867325447287391110493228961775906371470909888949081193423375890656285806237919782427927566435296576456150800561489896312153229954080105734882404544095797730670996823909795713247269735197046132867706143009499709918962996841851120770648459334313183621464482324323463043480953261296885734511871034847314728917817506069221288821537297144686154058834447075028375799869565651373147967011749590602342646273770998399485281319753057087681697412734779334206525295538219050583318538219188361362083132833878262210036238876851020232714186620431444424980602596293917770998234724552446344169360256758109680411719702740088260994661055405482717984497494300098071316932397732036529089508424473797969295110235149259143182324370482980454002129333099095530500744374013375490725102545120894447201180604113545535644826515762420197902408668456469846275752027171845548367184577223049184960020863604262050587433552993970002518349309413437114753913156929754732450995913790714979461407114286556784372157942502714144122442051929807749692993174378088171459125904578106938641711931604414467521869000832363094840596009435332572280408575774027420574294267606286091781004306671568743743822360887237621289003248980505839867804254717149252194608715710415109072374244143478056443637654384064088547798384671333134812466012236643954329808885822186326614954407239756572526361634312243331785185152429208612035179016850840368349696338329545408543140983185248275205809606282464558663003334410833024816889954104846463640077793116104864382719106074478846720602094810230250805249537138648724367430187140853471399617856753621265367646858375203862044931556756509820461302658279521716736846237690103120034305930612938679477974869103506223649129977589716202572846791205723335320167948736035886257673988718798753976597053626835373916819474248513022487470312847759568731601185179360819180556869726302204929876948226055825699603530558576165773313012607750067858440626956879514445137732695410967957009825693548905041706572945635251051078793207873403023159206970420768632626810769065276080841643818404798469002560976325432345458040486593414688917898981122884852918678490947933628667477813855079960990165010465252945603260269940948631892427169255852939233661006995380239371876481601317475625649777682814868058031838733495751016192576594148824563734097253179670721014547379489895202316115725813277771230313816659072594493108723442473723569963913104452461169586982236731106808251861227666046399748633441038755871881475813603501713362824903111849933005637550464460460650797734641920690394795056856714980910779488465049765878784733972358231390340053378798937471559578384974079436936241977632190947744207451166240813011457207921234262554546911224323369150270632208090869636830257199027958439299394854375321230045530075359756914057326572707619895700551445170296240084983616751073814388011160021849376967223328263367248208824239439357665642176750721865984995090211715477275031244802448224119907660615307183253122950918048077213433076203912532849848518870496436194676112474813502998812878942434106904805214039452383505667052591772035158055560880000841933613554606074890483956525822565246936628914332949289213443942117248076161809163135598975884424862084294287735565042820528437121890290145427850116124723172197822383035905404221741479418843197915904669311911422844530655607286868211314778026004340417568439706233855172233375592357480186375563236062537633399520626331941725635311067683182901151287272394901334530575952685163466808646143259392793763481882809012969858124456604951036591793433811064326555630854896781102927602006121981889683434516941183702017145363280226087537845140068397181550645951489121792118599993517508920842425165430753445677143454637887092130904511389205042437905952830306755269916351410284990689776470577031411163712519881840428558478274878582294814539768524939020725676457420455490386809950185255025534478901007990270312937033520903503957602153308148675918744588894853284401670698966384444933072359868868072481270643924469827742809284842608574932134284284034889430197661254941489064292789736905526623525697338541698400551939120732801730022589206618225546274702511904759720069757224527226708530944343722609292455104428111027936591859866419843196651212825566009080871245712339453197757901041488137913335357009601512469502063862636752901104479976180211170424697710222383116661532285064761193501211155499791060756934339249931467739902715292404502996119474502071165567875551340713805563848677828878846549914064324409350705279267650922089431371956150819594903509382390253726771790613561654076979129070269174130312046644000123332249780923662431282933594059427847831845342833457435303249582249877584693343520043162306995982240424878603959698030314786855204594531432776230943420089226444271315183893054784985883898517005200439124405648746552506613371486229914803238350810948895752925714134755060683315523114711683203527424187009178536199421916084378602185601529284921323078385371016628965814137049920455290570903988176178794088983104888246502875116330134132180116948730338079120498722103487101531038961793106861260607995878526700227502570142302647349448422331954727909476940962787658066468706849152765633940384386331897446457348612823711400846087888691012433994667540281403794580228336130422066999009137827864269546524928651035551177377103227996128534823083361122845416197797102056580247000782870565091264912093883895302827478953542095031164468915880653368211772393384955152321885381089272780262987742906509734931259273392151010414693501594590450253484715014812044880702094453984260185521475347691648195512591430891442099701094463414794574455680049556645910306349385762197693748241184266993278618595745791155444870013780754900981028700951523807632006361086928582725308464603666143240750150707987668097342602467484229521820676716593445392140704784941540768607569982251205692611366930373754864776459565548906818911765009007826485119521020780522230589239101697850370623947657955352195590676434123387921925646763849389922717243313134253531391804552894099640670414322381411478852026591014745653986132534941815990125727230679336528515234030261445778294469419216226293040492807581461844909327110329081164576517046268482170189803470527448489766370977219789704178342869881038006686962049288262824682095645825507379120031886775706845408217853137528736292008898616939079603818726031543079266533845985997746748327178463505293279702980310674382732515693558062892564253418656062106186823120547722842838908896806780330194692500827950831157129799864237648360044757524832009480876176722876788925540017733480936413826265648473273532994945140181213152937880052933871091668067105128109301769595391310588341042099578935279812687185976240048533804356855547605831707915023531838838145237942698445143457318958736368645439649131554722558247591776613289867028412269736341161591040886174968187378965468345659480548827368802774825054810060270346846060098803664148988498383638274419825493328647934987364441758361235152531470126790605823055485885224185810585010503017169601447573479287979452833921386157816525923049131056856227172714794116246830307165682915544518885553351823931523272022060968897750978659656725513110004753184735398146954520376136100353917051017720844164251637023861684148460571873318074399098653784611170579542894092635911155588030931452243220533223667724003371053399478024999540913252007842600949519181258553461867488302738084547483111342173116371489920437215730117963598174743239162251466169068194950460910239578403090213439342387766277295219922517118590818915654220725416240942309994183547453752575694446207679569762117373189855721830691397610467551867537852036351630735985384049915922398511602565725188535962124256142464229487864474871608380000230249328636918593279430620635392853009885004451452714056517986827624935727877439140690542817840085263287219244666655321598245736153395409301119415798317000366236966058502819018393080237208766251085739212206273938668770283410139146653781467438550360934787264969715543646667676979735580239003593882452317705714540577766374431993405661548118625960836823462987258889713322519639871785765233757263947740109854121800639990911688127285223360109147538310036915883704830314272304481514703213071517805946070768203630229264142840942708174810749612194535523569708645542625103453542305412800360392566091603199753602259215849322623733431499364813203821480767926452013687029002066223798760723237601930087281386396995912373999910872478500018910316926089370752001626858325415999138176674826328500051250233764763624217159348118423003491528977286180937469358005245302132569771312089037675085610486283391057090819530307821952294760099927023574809232009120789484173592210691453858715388194289292518849253448401216124512649498732491375930234751641270931121157676502120158308008256973615702274727074872586879579340543035830965543335853104925593341519713765111234752387762717700260312412325402335006287365063734820016437641069039062910870975924403494066535604748395518850446025805454849836996639236028539906420039801592933597825342637111018707133004454710144846384183685634202715582286456532096397604475395831078023802744080930554350109551972898707477472768226791052189774593584606607444760700498801798562337856812921064148255003610221755827891332902317500055321822147986530094399222296967667453336201374344041878976569886438255293427068022262700876962590287382623571427583869032507372351021969058359188874592257346580992878155617135231454738237156042645310879516792948398427450075567469705581524386475122889368797932543518006198096968229074266199234128991341693206847656819133756682608918930576298526024186108791339914227080642473713381098066232265100595458029689278457159776480376880227606962954627250282277780880188056447092419274916843130280688421424567194031637240606189106380206712918076893329427125489089033088160253331899207173096186318279321293470548340440032248993447650394119359325313286288511673151269561407880524223472832216877059000589108211475145932802755771587516527596902298646245606084723871980751995687509172977662731931742089241986029582804177006012435542666221843607449178058916516884052739692317424116658756601876657161294955787661117556456759760807652130308379528020258114070354682528597110924194238494100461852733888252227568071735799101547242663204693762384396404407953453733508774016113769198588361457832229643706707702792467812726378743233896401650435841971030121944930176570748829134662029991397183670201764015076931139644100062537854028731007902428149600592293834401702706158035318377289458108910734775025958273146316381425670434435699614548961752311682200949972251973796612976587149222934631599044292172191923942295604798120245893192707353479007517782896936513699502261914497711785020000077334198512767331543247066378712753217428749837894951549757660446075231601208309879895015334459945614676771481785694185170254024389580969411522190131244848590584717177704188297131367081640033547966913313941537239531385936991744758038161142523175659366851677675017523638608277022145630711357523332389681781214396971505157175991083795160407865250764998185920454082051641613711656195776418224712764596226100560269415532344607348221227022285432296915158434000520027094135117933564684422139967211601680182478288097826705195558890949632510431923131002757660163191251552773516135021569173855511159533446016937595875433857167120622604325734925318691835303873223204417259330777246140753816045887989235981306021763749599012775730480085918072558234081523400534502727830938639247724448628582675415170138341770478758863853394815280172091892196630505484248137706089641319518154726341290677179073568716738786129570653741224907810470434458538844365310153707610330670904195055044452103563011898048884045944111946213608918030342485648663049608066231604283247488096495850124372652732002075098830984391348028029124393854324677605750253671848605249564782204032454100169006666283886659991025786243423223514351962031140683815792608103951399584729188645855917168445604511676943861346194402454541976233589256050210596826532383340252609366581824502681218404876750707202503528823119507059587966946844414944418438901961551077620687541077071153474792643230095189893458404913461281187680541450972244588339860481003993965779247542554696821538120694793003252774481342368971032672074790946974673427020378479972023755971435438975331553038882915693503116792939062054708679943573196886691889694058859603327009856279458128605934366513910578789482833376905528059731330441412590361121709512736800254950121111315320611434710523634867204018743678578720710151241839912624906685056178373603400510731833769085966493505418003687398712999218321634370197976771360914043594786344453820445985296126723605195184254292930242135910771947670810457276866660758191457554924320098271644271416281649227599486574235317824796739918369146874361327288369220968802670969831305937636303991721817790482558183297763885858892017923587210090290143323165082547930588418764904994895896219166698649495193555412420144076532554351911195465087874919942427898890790425155622904714976972636522601274757716707768978867969406251663629713053104463115957019562769665829877911409349760244549429668361691134034640810353132301286743951172624257412864545582595028510107124540149277605727563130986173044568056329222871180952620230361334243200082142940434177196695048529231469024229236484479208775879024496109009679711175019604523457642173243770362521793351363280710665850992901487852728906475491430712852416207299327227119202092405483105613003853066723606995431494603667496936976497053668678728020315887540386828510535521641130868556095767149651482713616929394473642097524866677401935175249488901646217673733260001965602385717407257991886644228100591355801778704711545153302685784353957159011109092082428178145808163772104629391457229157449872089102956816732046011225163729938986099685023503134154331853490874187350304543936766326285071028349088407361924466069160659121590711792770603348652005600350384140306001420159912123510340930096508571423985936894695614226571862386050060449138944243215761460675652411550620492982735835590898630050900625274847536061807422075696994117298155706239217934981483424286538687650958549660472056193722238021625289829310861808217548012903030462858638099023143979783205972398574975146275598741316127849255089611281403887025222013201942217508762090037818544878306546969227307434242571502886859478185605728332890146419574398282427183857189872930389066523081952932415836989263982542618124448329756313039683541676152275592104709389374510421621325404784741928866333587025023830859620448913217438781503889051297507927414261159064112347216500146047696137092468455193962567219475245934196602913536377545546993353350906026993566435056365430829348656487536373546375833843057690151545243085348996545520111593880416991910405599359971803930020494982126496586912692701570992625842636038030342607394564218333168737263517934480414770291171061037999789710026614361798524661033810740213282824560218313429600453984885135041362997960191874683492247240192263916283698127755788291822935817960959072289599155874784413906603229038276892188028206135318882486766635034877731493285828904272273810899268778286963718063315620188894287145469555885328407656087486919712513069070827029239776742377029152147736507526799407669684455135233291789058833001365139998303174122891063191325952117380767618907268429670742841760032534887791825818042452610817541433825666466739299105562942199453147907157240188986398268485977409955150907758325803846328574809245818670089433484574297317226126070891317292235110015658047635371128392274508241339872254353793939215571063043170784000656783393470889299081115268988996409761952923313545806744074207787522976804052674678004943368138854858052557167310700853773555817471404018931794532108662358355509830025983106053495340404559049126972033372115573214567538347632799949654563882273947450392643905203654488208704737653756675160203460098496108319220678801133928317539486772649031175192145488897317535934490042803503950848015437719913131789684545826405360549210803343872134987075474108090909300056411187965476190445574998824128645486410056203046570086114169994826504691159395476768865823889985488110708287456060831790932739874765176182503720375902494007020934576364188013009980679654073003326668692980891044016322874377018101197593129476246841512396708537413236537011462746089153676202976169582283578003602830944477705351750330322972074152764015069780609063035333337770788580359945155846983345357660786760371702714690137517024198355383875154138587052068340874777349421416752291751680947045123893943242125926237270597329927802446405730454185492712966293321744274837717815726331244285061057486095878189195007019906560231258650369591162202416071922067528687792888733411075348668856662589678517149404464471630543794864042222108653867085203030806543738823157402932494673969625731169001053133546797576345562259184149614481537342332101523524612926329268470475672021244434931384877626237306749883671869533221863479134508816884446250152637818824745487716272484758845052536105227439795441932734702844771804388842189864316076577945890800788660961970242368462844776782883363473675394938424253207054593088791332467666029704885244908419007195617587551581698430776345688004869581274508625789280059912051177409176619555680619683521347584970598809061011165828704481756758558919605427731515392270188822814924154006311929541292164919822152095805551981353788011871609755712700922844442915129997797008558336353149245881989682333839949472446221001345020656068102703318974933144894711941698575944391733408940036880200039003803075540046487353394433992550557319589134180320056238922137740979551892725101821495756467670882942183247976679944055040410689436359115850803305335526361651802966001132548571937911692686871797698591304711452101572724290922527622393377610873390259005248318758917215377805198356132058428792901394185096933706350056111405247076961085414340359298769524670763826065449737797799037242745662944638044465767978697337495705502144285568349068592036003293844558730501318058190984984698448694966696138397789833773349919324094189076809432258703097012931615513665995045538359491006487561493469143343196036514528954364485895019773798650655973560872471122951492813727312619507548612076533315593530748670792586388294365403148517779911876900859888537978072354429313432344473220088732640653635205976257939488126851018870293590684025353569331891777338024789357675542775270087362559847771978310369678135800547553789118159009350723655930840660465606874335454921935127785357321353260261492350581635407348862864416577986031196047652314051198320087948949448000443271380743014692277911049359537935390611378805283835911529779990093755337779185410065898250468565377279554024995429689372525290109748096622812520630902165529105774734370295821356821631395526198754863254975429713997088087875025177307495379036600730642341280422723070938087029596979343254874171717883591889791974728771513138244879661314719330737500597368502828073447841706662704623418782878129250058350722679716658320269277020211485772554976463949182088737906451156172408509804762170050707964706809935995191792269631640734547497638602302705529282191303404842692635200913799044508520408088376736438252503047305651615330973013820588119455689124463340927890898332424284347762380549906826372114430333807761287317585056535185879044682274393600305973440764099617461922958226133450493694662690205777059345205212013189713650129256700375053746534403264416703651785625731064041548788763459900708929697609578554033931711434899387550211325735706761329298868573920450235408552448808504982275600520435288084553070156564152704404740630545730046101586805037589360291383665939478899632778501110569372539135041078290971665194849238459766854273055434067346069472983999334701827404789373645600190631328010939454552032178736795099181473626447245272037631505733791776532374003597753258320066925665609273522430656190932088441793852115318160934718835364837915038536697262297907098284750013214803214369074623425163192666239987295107179388749118611518436609612910257248428556926166863972127242698965314986804851708011607104366146922084877010272722601251550795337238150640648409307737738583688510714717008968490671594870722989602238146248112174058630019989971995996106974607871692446941678326597697267418927371682570086829469991520203305148277437432937138691608075655850835162116623665561826699551745428421083476115980106843653245590668119216674803002626306987801300701450605869121461925908064259625510800960452773888612819182160848561310138398879974841604228032756924511562630794252805558038669763404738051332213944254829667496797175124466787684712200186061097944535366081012465087227304984095049008941787841619154452350559046743993702588231141839913289521313995153354965064994975310320279526226056288589144551868439264802521872907034569558523941361325448838063697665971388282304986128201124795710552381869969825377768273430300037472234033451319185664100255811969270477464322956472723610064535203858514122496224058358018853831005213884422854112763552269701228993548217235902198218554542690469326284489791704285792478784776554057352561493277755761463659383656817882790522925825995640526728680878164455386346444307416725357915884676484274739358162140550532945800021171696239485694149093166303947915094344461319092920954732235137764839593721240336851895491483715198457290794011689585237568597308990111685843127154530971205749889680501731757919438545518766164469479575580254995508931397124097759408770267440647946422934657447927667292854345693052334559951038626259332039261464366174534544088785541395385152171056169826704576100849859533102694865147565086193008265389368094532649649759528953709644423258736828005662829012359168304311916222049338736200385238638139990714852726092718076622713215259650311576899928755260156869576343255775293804880774151766496082474441469059098285262306436343615678559818191874618087113310975447652256538864714386297836095327227006597862416777033882907703586564306554453299313073326780757985225457246105611812710381452690412168003595860068722477348635697223554906722875558029456215068047316195923157219530594270812194164680041155116235071153980757763374164310635314479288975468342850932257352432406576712114825866360602568942770172156187468299258822893786583452881659059249793924579284566833921218852489431549427479997043776946139738586326988565776095032633779987393360896459686123294566729733113946719568056665094436884067571770746899920769802018240442439315705930347268425793353135964626170823829155612196002766179310142142028245852357177592376543411269191670586140676565734515233542394379273506509047940232570718871254701058316289467166652069626666325168911902268330874041773689209272124273692759531688998809362219108032855195560377350710092246792710806200718322773801630450131025147087636619226228865764772831934792253681241178572836195032728853242147816850321570317709972303540748186045256531858729335892694877102116989853067395630548085855622698487877166684560459135922080544812958019666429940491636861253634108233145432107795715821357386414454308624586924230385020409209280628287423876010436288818171981294605122235115802795706719711320278303358343094202375276862905701643036366369022393803269092602538394603205192695838185111646695314446025898480884258394900239272096344972413733337994200170735142082292083176939337960915208897617452023282773111259343750813021790892716144949616841665885381165604365839138226247294176354593755267779353919213200652193826501960338781458520481868053799918675595098430755838187857315084303514615165294991245654453652844314471793941370794276623585577648869294309423106264960316044676856332855082969776824492279027218293104959447291224939196037763798501111529428613804951202186393720084934353259020577839742033549368979527593683056035896014792909687161870911671322911486408519443396880851462307208863512320905631189836300610443669169032845219321418033978747233823094119218512271423428290432322282668736292271334875289018434401794962282174195146884226543909077360771869587728432383521628440507050969842618314724001986840984749664751467409495213334932218012660631175453701259831228720295295564553602960744977323244877672971201613253086139457495579755690013893040264342062650760955356854746977774939788339598353999782193067257372763965246216557258642415900675888952865544104946422936519495187815392735592636882615571828942818777161265063703004329671181308766512900137883152054934694070296568555359533648973251105000898913871176606237557723597292268367217849096625286854650099840570990053789980693697282626981917225679643555038341924699882989540022042966050416444113673128232198449260237325032118342443101876313859406161133565001015011841802283934164368596584415097788321875571276436609184030920891927096974104957482448944296012752610397606216711131167047726499584994480716811532983292940178103773604339639398347819832424409010598602014491165840562248164859436514284168022749245162158724806793757195536054167620823882819999828304553581547470842025521018578569946869131543949696033322039049581780001798920822144097559152471871811347125197912855443670305645832422780804004574216736930453176070531258932004245812239160030877633425440370512248879567981118941190221270714880550626146900471611516679394344167280337683297390328871013258680361117473756398453511964590342720479467737432899338159458240779440615005749324923466387140057032791961495147367142365838134075488126219270694795556414003144634936900347266903858454752972501824337116660007929266029398673231058181286868575046268279238942783221236642075523895378004729238203953614556346353488028851517282302906681784677234906242966799363599584822126393095985788958027306384588112732160152883212318016183689773512298737203309073196995526018425983307288319558883731449487098580933394047924650231954528893586800606715972716545679170072743330053913743980711936139384479398112350702058544347675702631333038515876489721641766656646619122791692543670353487052404328018214943208763800187764423457124904679275587936805971721317696633386664957955617137210496273075294526300670762027569027727328839929476908075779822079383526284566901454347793366279446636116653184515276335274588564928427883199433279295548992113884886809747742271496891694167879246876278927634152123058157457481393503529104063074934848601493366011650982001260997855781657545012046866305348129564211026166233511555968551140764491729339873208891874147789753062934233504861003456910911673036519993025770662237709999492925784709330353154761214335520545615530969329098345383926322069133162350234225172313681577304401263290393500169347702369647403677603805025165305457277839922410461841366689295312555274774823261023241385735427965687372291459280163767948968927596422015164684971088865722128087295643169725096845353430515703087505916300078615597393161872518820730566058830672826802946176941446511343611328266839375894848414802235235099470273497836605207475465808279549038807559258780333771823713187986541274619393384838840872723488806425742128869167778484121235891887925544680325237349432786686553182042046901797655986605684163913411863901412490504910143964160913289509097142672679288072099889425156875900039267568786743222766603137237654054518930528718751602561391010413897862566104467763909126365796460579470175474351961040060987196124288345812208833035683041181698399239933052344023827670221912972548258149843949103662079869367778112359061435843653659854070687520301353755738656579227499040687396328729896451965448241119281776956686902212719553578618814817981705857292564906576366615442148124941088819892587080395801516494405272484099697073171572817664327077864373150910713256772550755090776072731810814161782842358665142618176472107831134828234356515757868068801420789999897610699656924933632679101794461359876062380055327510673777727707880844305624629103488064915551505008357735564097581412844115842847227160033126899268639302714020660672797036885189852279509601170221308693659336187521990777651648921866411747528590226582283413217480385871909341209283475540320777310373529138290104460101440899546939305988966902217804136954463210560802586326147666711715740837690221664068660604400588790706764801379779341053511189485423446935665896510858785406043248398489915168138113356558549256964577818048106411076617104487398520799744235449036930983546395446503531548145666442909184151071864568233988882693679527854301028789387288554682602998240712103295823188311036898770821401064805768559499371606497113142339997511083724941354023864809745290621613003399980004957812856733565686062425023583285163788455446444299387395986962743490825568608129099998291645615975343095888674928301324433484606533923195786472100238615961294009240959429523111626162951669162494594325655020043461185325869521095471394045414367440721858203786490624323984608599165836182433771557909778267814047046042167727871093271225393342427764992748816472899521778915158442406759555429309995218995588233714134498781787210067468399042561723854530829926959278667208874897651167370357563264960622758191444585073547380552454893207817245227276062509699118018212741540801477637191496683295293260233900949489161991552675599543161542568171380434133543975062017459013508016566499347521071167134723500482533099704146790276972664919506239760640373852979317449833720139995979004580150026988184456363094090441670312636613667248430145720772083885031139019377526231546630725776704358176178923884250230512269516108728196531594363824362957981722816627650976414537382240868357153864774999590170009936610857475002470389983355862519913450470862009109994184748808914579628209395710207404267560743996721197215001195215298778871989077801526456434754355818251329153370480786706641613411177339369971957883708149284886320344211352986700234279298362703069306973684901888787710322584822435575196701120767810644222913617659268665312173941982558390239194466008633292447665670480396456987606262231249916670923113604237526053323351888905017902108908156468072161793494578847273883366264707736123478938673205365331038855051105532724293716630843721945760558760699940290142815983160129314970110257050964974045699987521560334512060741847785861942005333724098712756923810193525526629855035026130370890543376080429728371778236276049824179512164393362385904312290263844839871745643909249650423920063411731061680880463966917091940557492581046116883059482985571207087481326401630454592646996719846932367910722988435566536811907079140558233320558367246155224368770914846558530627559255401318224900520067548191326945835529919100329405666890564258472539032726525827013518310016575038628804749284108995459466626990856248377791342967938700161360538024309898747371841270006782689482284970099402505490940982831149839996988300775540908387026659315236496062149726804205504835617102993803011677113114517247504320520721631563211911695481872787346541741752230735235985900281471903978355510472492898215737055674813344426624798652243824111196243169750405235269705250250937920838292834775296159470333945673583901741336732154760372133474075354634651076740422915187983697677626032898185638023282360263326028075656761314061340842541565986076388415764364874008101444743467506659666759560676679882290841836188602732421683937667703858059315774868811281721133854103079663257510485518935545803297140167469222689163531363596213937320787829568529456591239369156257030944171003347538685931974885690151967001160977666975754946805009222452296714663029181765621919529671631418001694319476494878589696332319339082504473028727488507068598708602706505528437963026324767559844512944696402404983527082531302333416811904869579680763394307250739128027853723645331540729741924713704910977917007780926431737614666431717613321489142052593128121428642736024802042959208155471576581099253563888568855996214760946751640456040316013920648558875810110146041638490390195323047984573831574582846785882730150225838736513091073385909580244290507301908061314501473680764882343859178066268141837942164457252838337390348777574147457767908108636814970770708033772688339001184720802609406189682196956202482914990609732508827481976217361643515434684536169941403017297421667552026403402707479313692128781155431726224633603247030328515697281827581505802247710781825041322778606995910687543297365482499106560405925509414027345932411014469349131938711038386284272350309567229076433513981233470527907850866813661686010507748915763942598267777182084518044537204492212526521552761234877656744801226468285878391814775939039122067797457061206410318779421429399535635979650996355345145727274749229685722586363659526767743990393019287369736414481555344193056588723955834804953206411076485102807306525667048334059583406801622530457604063438005087576683542231132678470386503886398174041632283903700285145868791832244523991882216161955863819224162934268439157709189431866335258782069612630929635348566901358306633921023406874558288322677018843664250875763058763596514929895005434692994819683596983890248928840141958197278350341068279154347605098072119189305656506934382753451959729403663839096509537484471202904482788406240750308863960697118574166602321873512677817083131100183602508983635929322271787168103218023613432098012799511698918722512785779836051058791221739200132670608107351995445722017398900713069379755846595564344083021116013507911261640312798340458686092806436756454877870286104471694122301248274016766969366030178427096311555204726348652705836024106945307180166162157244163344086007483359954159896017902287930492435373035822212093802309165108687309853928927350863317636812674824708897708122389483325691700053899800168039303071248216121754228542559957458818449096001208658119794006766231246160887306286898396504971694513384064834645187886040839744253853848284200616116209155453634367939632045174150695372450961748893418231563577820168923944535124421782689435704383043689480775945802152498680883347118206949851132827816892532958168673321506789425950346584225052638831919209380372448894002648569532911461313861665671796030111985784042369506549479776825712877927144336078398287414753587263399196396782655729974671857070319382245599066192587580860497533532558744169072509948265972085381146411634432325232597355784590248710138352586991760830109270491230454375315893985117007719573022592313176004281745938251316222847304180877225923589512370645341034485524076067414194073440321009448670501220887199472500834792131570669958786669519234747561852209677418743283500585583973901776312909066840040571939594457877675872204806830738010440508154611773166956234149709679864429554050234884328951529943331281320143131429022965495234181473603123513185307776812940244958299720346187078086893591434263880274022269129792909514173021615857515790534201936271558441349573119979005336420921587598730141429690014918671996112909196297541063770691713601980201587402594277295753918223213118321574971220996042309468428597380740401442884297221122323572301738660249904546778774098740901781914883486775294529213482417980966621918796041509072896613964277085602918772437358141808051343482530435729923431895825412770820789187940308117869997051559037716151487415809738961406263311254766115303588256370585218181127927304866870450451863796060653083069434725587612928817337834130160645585903944230724056565950510831790260331230868061786824363272931700968995501810435091926537825764181655864004202923338713803260394704626282363029679837271264931845432838655408176801394549011055401497381535307811711799432076242185088055115116313303920336391571163019071407503569104766142885477371825607066375133608866999628054414885527874637189145140669134208078533414939485257901781594288551440781841307431218780721304677211801306522763772973032655172182395412637425654051051300663365938767996603931171701934329242022681487054926724530168538986165877074035593173909951532554171644834997549237791342135021973404958893663775140497118910506089395150782693384695562136140616118028635647187402913031831317271368687255374239914232527622064642373949736431993409549389242746851004973375213970650255922109610016964853431271865919932260179978125909468353023354126757353219116382006152684683081381739493986491320480353591456194274153422984402417941309524957550933726609675983954338956663490197945291320155632313777260342254437968974909844531278139094984544201588386272178673973191190130962661745179813166264050728940327316273878797309428222459577816788674338609649693211806917542289880695981402734867791480161991648446413155606191465452400625637674839572763562683415323206797746284941422123161420533651442849967666061253844220522790184670870161281310053190526925449925207331084945202557757898565433118980656336721064520511940612880398287205791088498948778581100141682723072708606600412539804826887843673159246330412127141299448885621194364999419644760284059788524328308947213682382582479264230555718232907152730423811145885363413397503835287993928001571144828929312837013418406466879466911493234274355153374301145252948714322408274081396797749105835693167745306759766946150984793303553411403563905059680520824861903044430233661013383027456687634595603684206442965127797928325440996808678133184033923645946023733905445422120429417000633904895504840051513036509276827173147210303142294219755327957702658822663790718634231085280495171005024332475766512496925380309733387176114629925471903772774476434134731113148234005223416090887649487052587298280742968068308505718615288427102678381833877256453504518162858296101391036275814397376836125488653622210381602252274273806179532564795819400241044916010838437034348148825023636380366886614719074745597302888424790976922567553956759834967132517943844990183798174548529214071708857107577971282792575541048622488479974666313782572999548135422972360270383818345499660155198986367067099854672193709552968292162544159095767080395454663811700306231004388921553188187391476795227864253336583708314372159516783486486590211320876201178393057653923763099642017900403406940021995061161437787092112894269984371508270149434098038843201389244787553051589678577470673111391333345238917230976910331996207429965103337775251709258836044900326774129874360691878801906524018416752160092319857866971407712879712956520192653475581755488691227094046647560367225204479364269965303147807816337852639290706575173871951785339376458141736456988178132864605301245136479885011866237353972153504268579061582762307550767798776692253722950500889632006782641303790578079696218205094039977284456219629258537973781990901001511099878363710200515458119582749040304866351638608936468984611074876929797894293280556643770696883083306596385294749767042669502410082465905590134106934567800648046345876095642716874568430412705682430235825390428327514059977506851917234738799502988642008630051660649594903324457204416396476743604405677446353438136475783918978901359023977306760291234139015363511271155367946533322032475907644517585952935198311118037509860284057358860755975823221602581012413123466481660298131329772433233587671854740758744695693170624466003034568325473626097611054151747110909422330603308202610809247853222430148084318793074664786638371053721683385191952866014639251264620635931693337538210172433570611962292531006374533928913809549385743794529767779914799261628859557888243403292114940219993986163983819026689346234136297327749702906798503166196949356319284569814897777431587172234543639855677391879849617381183329601989838961129874940795727599753760849266444572695296789664600296811917289066306509768773620531033849213094255716927696555069070898068438854005186090539646359324670633598585731948993010234757136142415727947951912114803644781257025509491413111153339851741569271503172289367224947623891645517634852311536632673176513793484061200659526088140202773009003048394268807719580190276497691718738216326161435650412949207442815482111251086739555536558973224121065748227140320937924699678659662233490784510002705795254103881214039357309030994123905072816269535697236413301427150084720375714877452859392318937221014409850302155200333731239284268149387787805010743856669223901105796390250987361899008405009397814528325956037406937459494127929734334289719725946681524583154937096013289226089737233005045882206321146844706956588346371619720155037768605496532344420690472616613378673262540784178411018541411365616002782365465941462451388256711671779146038537454285183486005395128185339230458763619212363340554626620537740009392703158306891244044740303464900548586519247029553257465443246215473548093205533556826245381909096552194257274911755523175241090361982175630262680240937816644420594068015860162581548070944652478446999198890303188788883501176943402937647711862087243227205059380507603280762529392821792167883081595609829924867186895253698646266324137204886746214923313530443580857080354158447773006708365049217356837420989342764216666779869853333676685804725104690460681745635792363350781149421123137608266665781803288188496018898686733562794691174950858801123540433625075205715596484489132975151614583780881135467405315036445654441565451931873890608199432357778288145653963650674664994309079805949131896951111668738545516584241179799300403167205003519502293895695034483230264353955423414670613750391776047361975683042107408937855998850086777328031765575746727996901171007227861201167548194213450436478268932755896911927434434532240616291095475487137290270190600037497137993791247241492815314196417469943508224476936408922207884150009264505850879395168082237714208388496504209195654913454662334128380097791652615705913571071808083843447942019405695891968661158309229099159009750555479460079518566556334943692364669762173373692746459818719579750341293395901723485663298629592732665996425229251665263659522869319662431937420552626159663077910633444526008844369767224035933797178142737630730989298381857478383857428680432227554503100135669466146496329149816654591164230485433124047212734150678618980669910162835561418018492100319247895549221250540793183269691642798171135572507129581610739711753946362998155753072850351422883731973542623991751992009140430968449890329167235271586681844285899483369355606630674253522906204121847903924730653022865220374241232858687938722304444691470388276555015632248732465927531613240826572348864592015907573798692990888649885002776112981778666838398815018461357458137084470906289852284165790101719067851433507988985340120057927736361270088168633851123484873740237791209550094518516391398589895576993619475558704286212302575842678529619253347299548185676424787916977904188761148344633558469455847626357508119032573622715478924258283730597438522007465513903584076836342208799107672214943691677689976833577753017236841481248043126005415250410318821197912062809618108521991635825461147768225240383283005964137252569443380787010835687466051983949069733640201103948805234437964373960300095488652800533777616481342551578860519557278033125238426549895928687609629759318606361463382911952965446574035753837750506099220658331287641084058330840422734284048317994551329771747866804810424935698708274094717377238820959852586755936499670171248534425489607519336508287210628442810439617741444182749708816205544851432473455501387245867397994002698613042434213488993429421108111279538986124683717290916685447604276961172618894812483712366051961731428027675285008368137296126205775852028089731908019845294499115987677496396502415520906554853892611935391942482715572971475786495499862954005522632440607790878828647037284091718899201560081253408964638535810582033291884241903129128575424964952080062799060050168813647009712764199587653124296460364905362967317715693051226608447683602315672775746265748753367401677517565873074122754561998629162322548348177291183380880969047076526790068612923823562412672558719844484751096025830132998164950136714423858528658997040389456384695179282872897840175320042416147902312759298946236254910015455810926177336776513393282735496637594728097748084105544211419775401290626907644102839476391110916925966235353854541317057237322675181517987921402495878629261091456412666772230714673472517585850451827270051328012409694822253296992590312845422307949627892267484978958142092491653095124576675358323965379044035968417079397346571616749679491563100218480460901021208052096427451840720015236750186691082253659080779138893750559969689165557860617531189767413791792008169991830042703596756453153475013590202469137568396141199135293371563240173489670510381921374059728643450450516651309287801327878765047840259628809723030937453350765985581072471314954446421916753409151256906413028790508294262112934505627079709631113316218072250855167690675834933855433061418841831297130694407091190539493744450711961104135787213059969451453880086754408556967656191971880412346545146250355874277668616343899978794259577991873258143059971181097287849443110624126751472437389134826431043300820354848762101890151094184891546619576481098050624581287593382375976913372997868208818176873941853489052058586172606402813640855121844455180079819737550179082433174157654913505165155538115627671716876725607168875673994365478389383478643245160144207171956662644699895523773784721161340486881461050882360455845783257910015006263277198276826842678549642079247531978261791398930758556539747081082477525871592609743473193410385616241003132489469621483876802783485501294519911560730768954292290989813153917709620642786384103446559451988829490112835812944479364588271946813743245991602519630709234491085454788475690789663718207254803368754544764558766516275593576514988198479976867637317396747170091168520843738218136407957106481134511732951333261636804710867074896118326057368297149042579337224113239014930803864097007015934461837489687511560041518461430421839146382606627814870466609796518134272581902234859317084440629556117813029442925812268577474095942811191179660602167585059972573706021771801091970238504244337605123404267303187176837199455175451453852220104775088258895084555603674592759956122933764584482256620054507942977124384486485839580471584798239701915064754171068898362983821940131870579099377440424238080540535068276254245641373628617004734019569747451397871604209493877717231920583620262242854741850720471522052415368396762648064690982771400030407443333767067493882832712490142841583300726656001659251940448548861451840926226553654045432207411574020716704695380974012489628860271107317518139588395587781435060939337196898502704505355025502429501055047275901973700809146515068491262234490188605821724790053720441153191244475843822757011976815629772943804960874448480115588317757216644146057279800091742040826272213127248009613009834238952072655861304981670874551440406185210735520603712529978205140532008693135489523009854119235222681685569524291825731284309254499490036733061745876994982904573378709280070923035510169004228036448340750374735006034477491042428632253271794418223391426547268203059912518620597790638182533838572111996275160777661468950748624962313163357780109174343164766726555264592479419766207388394267671370876889531913691956204950009062373188958637345494761461184401733184055664410184589639956614119765164351284735310994905396572402541657364420861783815621490341144082229998437568498562787358981038637657108435300031059939148738892829605445475767351041161549926336820313294330537765802284663585215451242688074534183573714385969253129974269869042311521335853202835094444237437518428083240382186894338272209725146891303683809610915347236292371850279999086398004193824579271074291674319256414225008928481481987679187388024514753263332854836042653723114566727263660287652686791310843475266198404754521187237173098537234373258495278320980151661565117283033252082101363983636885555208300312641757284157091629816828505102459442985830762412237329847050829867301972824277184301795992497026101834363307678647472366003644436890076563978937016949384455714082874265597305348372963605562883861828571190631699182676009160696339313486451021479537633196471901556733806102064923091859201359414388659669042835909575828310965424132457048230244332295153633233944236810000974611495435706187243567197012457365610976634453753744245950453647296143846922217511906298426140141116756634924250841417049827735485885927666341940102892425177852091376975076721909951540872837534061359508693937245584400334378298619941597937685616872467276693064668777546523163809907600735700553858897085396186834926270392066880439292745919345113813398374959150340441044701677433579143106088131132431986516215920212139369122888923582466134463525087873834856424501737627290622966120172390549052121551062692854233051107125065594071565712690096132902685447786167897737498111298059390867851322398306913238880710157483294361000414139002866276050193249465267159360665173453900835006059508093563755755744291945266016007398429577929916162588441490355263134793294511731988377567189906220517479624190337966739485434925523468297369853960023083241340352678334628111154939946037490377121677437075302485501931946476704910621485451431678997729277369806295735495157607892274265315588000388138151164794737000507688788189998507408380177728196057994991973271005382803009233096938437841587892947433701488373287216876215654624119723547326051328923034754928214389783836272303229813237382693949361224279850390356708319710862097490482224691798316685623049419935181694766924044005714849912529999071566896247517252572103534208638189417077986593321115423574295438489144075898837828428448561624044727937818620586522688633190864568542130383478909884687406220446292188571748518147893855636821459920687990507110378944477763055043789784969509680752013599836839275492363311469721778145553919779168340170186725934808373383408745527692890061205369840106867701963544311558010866186391916090657135083488550950477012474660685929450956308052568106177106331282422154499320271530242349070883879621470662590806156452621913526797512931191990199000197243571635664609101887977272013936801405448931229093991920671544677087652015472633056664507157398014804515475593563608778084827860330717504032620304556145310854908685444656368675474249244213357470685188131455530364193685662224356577909630511893784734981650749581243961877036835226685294390043437715392127602518878116907927220050158570598484030158709335343000580949083066529599236804082623395655777889327806618419348907482203404503953479232122233744078835662459379767217530179063325573785230859883942546743320568340117508831922115371771285262414636280022352424505689482584464550239916990939332250571343512649992111167297432657251185432025875453285521674538286470905773903975946988508583731762290046639274038516381357968735875497541719338568954088656665133520011253290017386590457247860388318383850270177631658031807564531789252407558115086971382087375001353297460584775841042849988080318133281869440725935657035824501940889144034791291701448742231303027988540952099397754391877492431784370821651316141586989256319211424312430921168137127921307528321880599251756590767186722211899211418883546056643860505492405736144457107783414801417945747454124072051974215163610751600570823720533073262366392217891518493703039723144312213222725150845815844462683116692019081294161184003982285649241862253332570406461922945845074771343193126361138792163532829717446202359208688108571679235556665588676064917273007051657898854455805596777362916263594997098929383857092322170031121450472209162095317394663423834649056853647920749557990588457257960329525786138678852479486060899241860079919115341450961297963104136968330112541469824157519545269720995490508654616605029026655334227571505237834720344812972314404893554127507958477014392704042370321428491869606877310304408686396493197318559182196299254294406742373073912317750733745385104711614891159110748071627033844582470239957249056340104520269562243904830417851857982122505325317027698786743930405876662517354546541715797054858705466917681657642307177474655452316059084096511385832377902567481764466581720596100442125664766754982013074880049345299502992309667001762635290618841066263012733442972591739870421365735243604591862540890896848280636342257998843074623242051249242674979211459630861158168641331665882477336454407579997536060299538584753937205743486024572033232671796431633325729349006770428241080750471369929761378712859960029460959677013347449103904047406448449911389804652048370683348684993902018404766885823999231663831869484669374928323405832589605651986812529759767922835582395586733370873832547745498113741627728830033245257330906470874497579845933625369646903839564517770553779853303684639871806427699200599158830499472434929348760332797087203712407593402809885665285761507220953504004702229620115476652362440413348312198537065868928752320397801189534657866393347388959472496710051662858488767403604607012331876971879321191974892781843985444185161945836147106742771383883129454305078770469232144157239886185609028196240427616365237668394606911611387356998190113312799784488057334737376951574078493957109854395163694468205747935694428793131779760538682141047159866472193886319413029607890492204768397713825969199058766158425021369499719882294367996323423520791735458423266134656669087729818547385817711001061559748091954515490561542848846710270644018282062301277257895284518028247442887814819082317535618972909666118634090544554618641537213719392016693193181277801815577281794623974216075511501534083905368785571699033691461273234073718734911686800916596168086491294423511398727124360466345429755956034549598658883611915855616696546739596649807569697750775637869657391126171023499069409427278802214377031337177299832341590203428692808892856288121882773724254508932672657637781272754136844512180059184193935462859237100435809350433052823026616129084546992429252716138401110297346767441421513872459578343160658156747860175087649409071244089205654608417553695834001827672885498109424796886158527583957674712420783978145037649114532420807084427747594021182819504176362613330454238806719564743975380858271061350096312470912130828678194260074454380291498041770775052841956145853793436106627703670621907155064860089314563395807260971741479978035501671377409417223508669372854250565023544672240260479181723444470064024635513768906768126162056528274329001647281150211699415085740842126447668542101228914322361468364420737163288192230206032409830228004749724346805747307371761419179276660637469233904259387993403173003464735038929603161601596044451354093820521622816797388447237081223387568591984635533619253435494322793168364090502866432969122168068002272524740992524782488183268434180760746904145040220941102033343564947518322826166255213889378431183419099837332153345434449134926253604043366395698413806248222914657699133342766316851773770547384791785454314893689925847806530252205778366199480983101333462313262063920412933022560247131373722849158909059887815503557255610605625699218993545269876752025455611621263917520948909419183797099543502902486211632963904143157904671812281403837803372130355646568800264740547812557495318565938851536447792841527622567294575191260332749676178534198521025981536889150477947466962017472877758383346135759754685281824103067830596476148622146605301435324319212620963360514661406955570488390528771967369629452484368067310653762679536667903270829737825318681027511908977970131765637910956759754828453371980841448460986170392207537365542949280426432927672407978650163610959754565579998855729309109706904116188101993578010592624154247956758588735088654689403423713306829111726857342915255150806064010881334438288799620411387083025893590164058812771581737786336719231996849222112704050981245682035186581541877382515228340205227669751660548712778448216454684398170806584688179350649172411634796229049032923955531482383780179945670433376811060208408767547030631972459892699740702845733441195258746470390088415731969781490706199243305702359476967843927014794976206856996591404143260121760836198058558672214585936719785386658959356814799947380289747974224206292934885501554206806939890031491293766413479333691565057774241990384668179665342412772023525196811932553988401459259898117840853191330789881651544659568982539210181141303067467744670986336320040580255759868771779474621895158059887968377184373125159911253782377660142893337435898316146995946287162579686809920821248839269398038891509399195837223616239341407781177859869656848945228069641701189501270915925375279833906290550584088812365779293252439360540144579246025515986934234034167107460299563063161259653490286617934566124309673369241453709743251002761810965407812857914889199909384038588595728988236374834139817586917754074518779616487981500946518935742459269302483462458762725158318420385408074258087086539678226408362753083183926913983088815830825730899922395836509645802499480394451516181389316942403804008221820416448449507155699408504404596546752505331066115864444101676685678447498081038057453861522895298757552177547775447866947350762446770886533342661323457599371299251797552649850095056337054024162751939077931541875966320470691891856932359079134019866500767300373900376622011515063000119021621409482714486376197893833888357230696657420602614409641520860770007825192753504084224887180805075304960015059415010294394875255985480478243573090284275531321366936593442703071973078073299616666857382037754863245114349953463726160272508477827059375852833914585253816968873654640765737510197512028037948296633369012591687395648348752851623852377853092147518398826597090489320056422492618998390463152048242422214717675209980965167105871326285056078568975831224222021039798031782606315562895125281940086376732096136883916303227510138115339706124947552277230572768609331114029432503246625199073972666481432831456099851408035793656258142300438342320422792026042039266413050373910433328052802504904896773603988131748832659438833018730139787611922591572705869776849013778914444832352767836209829842564155484562561645891249352327946948929353690785540055841193625407945001076098403510164522836958918627647775026547147623185143667862644151850011146483264590025818960415489461899919011646926706624536291561837015970598162252421755053763471814737313044173213780245051363116711260985068085332425758084317487156556500828922637256326389976817881256035397643640642413988342139336677053820828092267817545220949885774117861957547605049470010481375903606174917592884553218863398222926058795378947668809998726785100735960074677034539147986783735199807814454796715859186916125789757991842347267400048828499091861141998645895854690068003904525541385248423363767523015474734349575706596573734586699357287344367929436491487363227047900230653988117441811173155001170305688233707001355916630159044701354479432276770633966127518437927139686707620868607513497329238046485905658568375174770406967860950547035855519636023621062779922213952582996384323197016828075716723926298269290005548682685609053991688137286229539107229883930068489341995086860215586174135065411632525965283846054994661670985294005599541454924937188342724115851014521484072154309009994267638924135019453295167341285165033130245827904720994734471197706910249950599905668966840871314751550944458794761480005586818183601095746614606424474126397975475307813095362529883542606980618588729632643588610412909161560049954110673619806719917497459910266254928282450762516550817944318164333887283777694077670284346160559270825641772045728974900926198734270966578904214603458201933078814335379205292311209707880797434975696254666940458974040443896998787034389561720837315382005808903563469333483265235655514634795736302783165306601719449620406385648249475881748420502541479860311041876233402264753194253538043735836405784186561507933067820350818275503628260035201600612314565479219100083687680933784682334371332299113495063902715666546176525565719588543143633958164838436817256466332450983429508055994690325337761729657508870676642074923387478397864109150383030214191296027045688637937436351638509867665396788368040732467935109175796671674917300072864892725701933877626426634040087733730278415942489977471483476096792647239104314968486394423945903074716391700271137611049765263838723196117121041038989379873472128834629278652199398856427106282697643494395164591278886048236503162698918721621964877631913690649119109128510288128173106148801449296840888047100164041160152983162823457636347962973076490807037889671441502275428648048495860149140228330464587155692987688550974443751364951470197261035385808038128352001644201628972483145248489915447871529989292533575658820746384005207765212890534879198893970081910188010518989088672557589532082995841372121173186289743821927124092859656533082136801667652926272373923746545098456937640127144294476473832378731746582001982962746750693018365470736621420842123601306980936380404252273247891015078351945959121286227260370984588145683435120403295243367135334110220029430146022790615671263027193621057735766832915029969747484282100267849043937309651788274671850886914658735991771203117674951038831906623939080100156224896771174993946840623020970819556422883288835306722830642250108016432825040635411611740468714519053348691456366086499663087826975575290588170647018955475086141202467251227747954182453632984477641194623366057202075361708723853031072841435208467386005447143169777872785231628415790527226618766020937482731050507917930369397487098522755818580778139027054803181334924658839047610302589438181129678185354886552545643554538693616849489713514161539176780194677946507115221955525829020726389680182701339221517302010648971535016474841534504573946662014474196192924055301766715098705976528932570427086272739733357176979360021195984023164387879607226001667121082879322531016682479451271622395067525780234162301723628903721655098310974927566323782331786876050562462007858775979415908024165040788377900785926201598813449403107138692407312308696982647580271999464057554169878324882669924111669340061822889194064392056748655952250159004353859521211684795137908501166531162788076398681704500639883383821970321710054304368702273140932088290142980851611832598033486633322183190994391744572735418314856952425726180436733732688855554127816208820623197157361826733640919606959375310716734579123863581633461091012098856460643537137719289809365503461548829020085185744794867100868770207972859286162691285993120596008122139306428396675742817100203959941945778855415346523047148787314276933698193795031856564137339978050970427038502151254431983387608889201418721983204321303027535869070819946855400012432936777640499820627452854326938803203054488459036078474798669117998536275993187325742667242460496829629221454856776547847593834364609769526992927654337783924772142575295293084165942088111492457749226885106433680952883525010543043192252036378288676745089955928734846681295919449908124660407269365679881038443571438278166445251124357685167967397663394963576197521649967377302147189067141175266647943805171021399572277411624016235070964796888731698358301477725701263325810186597111646794110247028195714663709137068284277472790217286341766497963502825707212796233258742860030609014497059888249057199248967546147663996318804882848337292396867002196878372673910704438084790952503595621360886874573336744472224571255544718442564592941966587596975093832268546031232838865927382659763565266691255177845071005381304200375081307298508571082257829332366979158697941412327684759298145956866697580077231095808845920852814556519608017393578769613579339759671880737417405670188357520339508904068372468502052015191186193667408797492775679953153625321398126377810152244939636101187925173639179907330268975998739383786647639539295229065249048857963762840167168905403845974777765825779808009439910452819253372251275705680347180556230261831846508594820826609644413695008371107249378010805040584305004460379334325496966779573583426833083198216229646364627275090775291023082902760417348054929915169200219247931462688501054217429674251060610889264854660503459064914999988782003069545487951809165078690080629647825165057068499365870014498338077328243809729452359428571609393024597432541764000998192387823871722836475511087681683583964097219701156590403935183768357747988272798885715670583150374986490538223042901925633324472428183781166863511025921772114731776985494936746006533325982336405982397140848962643542398241604274417745304470011157200039387519388716369678565453172250225936675769738739938491203457143174655978945179080741336876968272598412185950506654682731261654279054801343635720316596366019420654236015228329171299902185825311677779550490891505187500645644974561492370110957144320127120618180669822387564210496259593443652501014955580561998258641175781204576050417472416852580534295279956262473591331421052943924841388052819383084187790126748947207625804999467351809964745201117239752613576217417541212379370174146864991114863668034816188544840354461301469603972005622092174912607794015106925255451489706961504548740243388315115332719592337670530996596960829475286050871509474572772954439854122103668746842327682371107776697811638229115902175496940857507115524650990206821256654725682954605671330715542747662741545259645698076423129558938178780329082983830697370410230004279719178024730358066883551547781403233374354303947159502794618779266707686362837823348032547702799654549684769823521764440271899945762690419511789433332413544863413648976549293025097308670754025580480803265070380690089381883470019307938139508617665790908611878127989301096989474870304937805509045835164533680845765344104460914523165911693390147291852702880971575889164001566551742155111424991223916729588361896422960253445057994492618457374610929852121185692339533923189595268644827985306129903896088024438478628271483614712026958830169329056931261344185348200081509391610321130870164520421505896858182949675826315558628921165394306341845535399938562293757361636495137915599377110024188645606012380013389800379286384627317804029095062681985131643359117537514552525754472688998002347234472580085323150586416088581444938658762352502560898853959658639758806897495080551269083529274309525598533769249254941660460195441900169147182059582231278361545195398045745758173408932276686147748100105896000185105760218042808128827522804360076933802603299202126676542938161341096703166347624498216324668152480098273855938659005262757482982576578166482813562235111435551787983022876731758067964348663823549535943958383558165064273547140357151170595000513148353986491797750184138131417383781517210684160300204628288478128229857660924969832598683921001114589508587048239081582190015174913385971626523143386690109062192143094417295256815405244936233715203457471783558610538870115816541594655020777297360104475843786082051318140849162859677086284362812225664609550120052606393949664727398214654991916597371289925605037969561764765930553055083339254573981889918536009554047519278949854847832374497697303670969504024838520950038905426896604654147647807998092123636784654383757130999331706862752271043342296631000742045784766725414306299992818834732598353420585096770131862459940136638862878644769698288220358306215614147555808987879883049450057631463764911008678822430811796837813685444283548294586658389155472702671348497630545754004886579971715019391011950920042136610567169581298680760247316307458372295455627307391597103754901068018558921565241417924385784224763937922808522423130291074016949398688322376065510360970544460661806848614510972327585012715924984989640254014588774091573585251378416111584425739718380395995958435037572344672076874956454293750335367409630049014705671760429867352385466642282641210549850783313150294314562487910510067203583706372447378089630777461021509110153673398071594112786682152185524945135840613693353119136904892914637038738025898096281276359816907689310640742236912581342371421060483260992477017933132633424541787438997631049955604008219481501046839490289246712531036560258770542369236351483876037067438556514045652585681000934892825321088280659106394245897660830126653974122963063486395088961977331535243431679093965242193968790824138516286757317455177618681736376148924800203636420550965533168654002389639487396630296871922379269027609671427552381876241891105674218389201439504017086036153350754491377368198237464952765338394465812625269182482702214376742036284174759279137979086592765249073499041229796190228109078568768127290678290921908961797828793192682118012598441842239834087398440492120716947773745780592587035140154930988781737619108363211731681456247831266170635169253624984716626780815411813311116287964909775365793644990192561603409057047690045635791798245413962969002349273725045456277888256778985252531784466219479404321206670687947039290848887922855628124368797237099109567616356189124103345804549404655803100072519188697646537829538533173978524131246255033094907743178062412633653814536728055613593618244874315437932860927147635564998436217476293260248897508100485318439650555222528725815960846911656127930550672723407579901458327802902050497703871652322305323745540078636858346996044274882738259496114143169707546493948121399664016692008924627144727924504300718479608833563128568464659485592103422758620012992523358263912944916627133810044470331322743975167343312737274050497924535867339999751989662276341605357707250599377274835260706485988621636277161796182425662730280876335886415877923667952524833179774658284683389910005396905938965031231381774415075578122731078284455891364488365440252791850589794022800717106382946964069902415157987458861630393274688914418176752277734270899589790803278253215010200901485954574953855651757374172997748218847426326028866574480804142511280729948777603208422189857002393099756086152681380137257059051624748142572250168077056503408524109445498311671630601623347843936421316147703978802327506758693264924740613403994563176766722996388374169754247963101605453053399218911882096405022277602649357232032948334130780207223607946100912382385744391887272250071315123481556124149679664458998945610216486145910413937323839964952446231388214488595796248744868292777156361918808850566292329527426360163995465375737870369988180478592459537452037104118816534117383359555843871370461063812099970740246942550729050889769288856633422289368541056896869263745400712773027621842347170090844954169334086740620798631513302151483988759689959663681806840536289785657171684712658200492200121082965889656274523470731606844084762364260639985759410991713394796117737527429501424615798409448446327668022306597463851158652494607120041336755166199518304074063749182519623179711571445927788969054510486511699048654207599828849158492280329080318210016445565285768901174128398605215327491196738175865234103757803852252033137195370989335044028517283783427797134179943962866452330918550785354302855793400969241283290750734447573755115063031698765839843095446548960803782778572034704946401157740554763281796364522172682492202134177364465448596994328728165088506153749402899570735586123565534182311631401761588521147262248448180751702046587237901627466328114336944732666452135331828635018980725134600001921742631636358947267552476776851487597186089080890858319220652718440858340224365615942823433372264617132680369404168595988695278229562414326521882130894147763674406706044130936070381761667240729092185727564647794788672768589248813455947552123021912700022746366055738762258706484900866242029021763721942904011181264026863491720059633090753528609880144402602509551446566151413903300555462381394503531518140821086433280704019309498368886606639547260389179351251832167110410734400320584363960071929518623249452705580632729254435240124342908743203082947416506730070074088021210693341994496953275379989850340081625238452048246456858635815292858474451024666631448146420476094203272651572150345112845646612836844793777945587793992172354719562516216713944049794750387683478838205789006738763975634375038926680612674925461940863892535341286255245758762067820038212529287298208809086051401542447358140099253689483262404261839774058599115546150880196774380582815567945714394733425622531629442297596742173140385877719001972695928600202295826040330186156178133476983315743884841849134260311887026685709637215017061029402845358382916143691357004798816103695130341780427280372147976952931952074450334114528727231888097891510100611695269189342637631280637263098299145352369667045934489680185375409168195109012019635536207570088717787318047454314618090566387321216404807334371883154453868967976815734749068087404663018202913472230419433845122145494341222760323680159273033247434086292799032787523137534018504242811586275282527479283761620451596064046367876548129500707136091873944045182116726145923535184846699957054252454391400224766461663553029805065949430877368008123144267524097597293851806857267988974756035738032911565500685570893120312797705009774323651241299890139133182339125431457758715921525060311088583903940051703360177813508399041362713488646343015027751139263634398703166267641407602487312179715796836646255321217483414169223468613558017087256703005889763338031097685147427811459543085487942004237733326693049513946561722108298924803191710307834285581054629272845274452174918218341751152700777429455084775699268509077852409320696787110561065981549690352530758703961160499104413406317898907190530261915832957637498592943489287764649473558064820768178510906455691008471841206843571901019810341412723692859903426374443775956812843026394978243119282977966098163055009268726516208201032533187926928393137061516626078347049939976344119815317424869751288094570703542104526278233006741840682411280618963019934176154186751261454941156178205051217972938353236047208888878971895323096470695310718438680483694049219584323232938831707134988286075737251969797047096698549204245762789104474504109684549333570149246525675662194615825292986415806443386168485799724098504916224985489972821182386039875685653183119293034340727374768409411794576083129937088215273427970928632176980455691675957764171563753469503577431038685377502503905578015734651842126295749917204168009643147851422771545042019832492179529156036176841607245595635696366362020335294341351170495283539443759456549145212498431519935190202808785610268557064319972216982549967152513592172300516138606221776487524500018987379688199426823123329675490797050922068092498858830375579926076621096580972954285835175793325565958170020157773271178257755534039801370599886321864614340488711639195772222874131564076361595729099749885603326859410230461266816209719912543582299204062383015740921737359241069710990116478954843232180774142347795424685075987122316654067347410515858800389626833523605442510545128476301588477708086363412868550002098270786047743758662501100232376026740886150471594691295985486704658715292453964855490418719944208629881912894066698205032604094156049981953642889049514695609245530585576271679253112544036304754794418037124537977125042223197820493166825661454916632918104272548802494955172716621955206473787513449333022871854092436761236094116337072750612403569242922708378977747433411641409238329572601628449052347999252332034191209606352857425345817958710391108222870178726585072233510466647959344605459066354188124701740421204798760781002550862388833552303753679453641379152569050207840134703560980455342924192242379971022261868774912262901691738134764135462108621287716718130242899312273763407725504603960555725802691116526389089115652964364207501175802278900898167208739380725995950244472844717932121659670284176645859689023567916548478458514570623102254584671333819143795711428167396388069260413812031801406816134696311455783093854474304462236064443768072571903998632958582502580528708674385318007012389980574573184026819138131640032118641377532963509209171042521350791838585986405677569259796390817069219356347909020462762717255445628089985104169133679715642797039638930899482242295505997155801955352149976374388829724590609725012687062436648399397554219052460705118491535889717403300723529035112882238309266598572144857850547264881055037347908265172680591910700193611959263364865442279249728342359567715151414195568053099391175689236031401000016215641800730172644265223401314747502500576386388950088716363975165565703155549101543593099452681343381421422264047250958575507586916243371944634096478092284152473901319034649472024721270657407462866419463742660217769589275488961507378832821775175513364384640231795522668879622752620320567638143112352461344202106356738914605329399475164932219911300347512648172375027280457278688103309526954957225917516678773664082487014060503745773483491949177684817999009360148189054852971889905577374497459791916008572810598702550595762400948908856767872415379748655304885254827178974338417710892838688059137315166464422521091494647504582175608508456137273783190063039002909962283696415649869997419405773712282722988255413694364543363397597416635747805972493254922925028757653296338524045500848104443015392402403244798855794032694458446561752308509979551076659628390798697324209278253758237051882570215996962847619348930592071619641943632990097160526074984988616506697569150631767470659750387061695455252610025217722097038099297336708648397352887930570317652125067433513272826635698436681723538676423687674019625466031788257054031456076846038155554319080494210025716289039887835208480530629127150518542896197131291231427808137769235067312328827644673403343970606092635357317617417748480837858827957981616889208917064001774951113903583829546795107271949032336713343031198700283968296457107376735176503468765219185220719953195279611929318864260925755746001555957358369210798613704942771103141667740929964273218618510668597442918100279379159021865231164240011040923839506927793308360341098004125950495468243322317495944091598040095100330589764966684369786929872451422908867245265976040750731578436583337836362685873870533749950510947988537705151475263009326224510083942191753131270300407704486411727988930581749004503186913616905352087686037767784763597399169276184417952184072422859481891862480236868493146065466272307044673868817294445106314941037340330362755274573913364209426373752940413671849438546078108274850632580067419375634386117528713893128416092166843066483681512052378630432370921544582260696181235266851083642079087271093812772607828802198971724615552851509106387747962291338521615988853988727452353911555685221615091142350432485957910080295319520126844006238725238773166650847058186857337271554813438307602443144701311433909029312675523105933846758486338401040974300674015417618416696659398496810739834928893834956562964202173336497680743865025992030616100699075438524142685385586854485038156672425572864072099794270024310937656173490681311636776354049287086685549063674163907444496640234766635594238158998085622033932507469265721060476212868094294169698596719700653790961849680567637325530787622722578497814151091897698187808899155941654764539093320003333470716467087011542893169182177829861653912351568029000072582383817600625403935076098863276835276963606586818273871267042947335630770660164440980183179481748586985211536701097562059670794319716268108816355127039898616176852653198727148700308127477755849545869173420443039112648215333821942143311483003179277012618197141659181064293644440601846867439436894197051999178254767333538701400419406555774668458734482434250494979273026982368464184932533021562031202123339987981077962505264496791323524402891251344129645143270700349621672534588988762671915638135249496718187333614747308522023433277118417027119712734764400877978099646834948798957763273556258673731818808716633533976867274272559298075380269005225853048482900095746021576930044303999661403391720948761856119477725942347909091841415526875351666540262816847865369328683900484351536377121456702393296800689175183501761342303277798710486928428954767776156204613950295076415931906731182385054485263654370146800208887797118059775216220000235134478470865695182393386227108433951377731609976400462402770410348294979682728585251173752930665348945398489238837836852200110360338574867411936477077725667034054924413582726879655150708028671382223451961464723572470956315975997528724855931348222332354018781557054621480529070949160545464103749573430845671007446170356131801927634402598047581931256627453317688895563307203762979132019616241309769659683407690747329480122431335176181113393661627330707698164170650126018909740422250858043048005411889680810983629058581157843824558083896008579088799844379122942848618663937395130786099112128760647058801862275023481279673514274510931890294749917137747366654647943048312233049832425869169958053178474124872764439716291940989906416606837077831849905332072382985137548577913678542615248484560234603424121916660012730760542823963842648074915231807008953407251140075585439853479495812321067655539312732058106642342711781821167050567192263081215716957852644148707523469654943471981280125211034305571185934369062143736644867619906902710097837697582187267843967857914499605900919889456445881140571798356154338428911910973505555502339935524098828409804744495707201026334467506712186652634362619159595997295984612351869731727860977736525611677943815622550752115452992207482861385547259976212238771422964975144668679890733493570352903172429077846862584631523936638300160188326379899235480995224261588101335020828060222518196452270074400857696690412419751917951005409103418161413490108325115390643223864043495506492088169153332209875821302560643948011079926922970821236944862322923110321223844821673029585259105488709743616125996809383009039018827646540433530614264534197097868456506396724034620771403795146430911665220196090030472387969933144324015255183361885210538014642231897111952406876122513790203444077007313645038905873418899843950498848047090650320136110685287759676147938313753600110088656015027191058617569973443217172840867449025718070607533975218317185369119553645894386056660915382710612330057172392754430765321213113435701777242217573047192805001273639063579955623162529555209757871731306436807798523730210902507923430831505174131328548287459696132403007574466953049969105354809749854563377242086531271832924756741574938632184044324553804723271229024729840205461597333441420130700298626394388359115711728533057523405877673745101190215585948270938867469438639884190712551887493582392354958402871228485596020822228941647566519794909110604260538576375621816369874304551549847618788583862562548975987732923336632802598673535242063071678845137334872104106072294015746179175809373877273366940388340225535183254037021240141499907851104961055851713819023556828653305217875868824474849924187170707313491956198372642810339234981862979987825934428778556055366253348650894152979364223404856816880653682796892344085382443810457785151475342413529770066785585763127287599732782046939554797704097677921023589274302416376940893329372294147630409113567390144568552228247456385122423907438125173710753173585231995746265482569238590010157579762517855642089506547000171310340728376862452120521099181483358975588265241998961297703956174707069603908989012076876648836502737621998793896159235300815382906339981587760083006744446865876293931112554836561683981835266813791158386222856080348449763872921083750396393020627158619948606242993959269917867080701433505625021542067382612165684127958093220194256219073697753385490324259886156818597400825805201620529980634716947147305555785759770530137935173696095168070987477831862478716713660615588595215388886526284560466196369481330469198089221645566038577451268355491945113961028502873747810478740006096222658698296497867296144811460410671238592446959631865991862108390903428298412778365353953638349055019366794011343770717556192312792480829337603947197665153091856615634239372289374190213642645398680108879984404152796399561455224921037815323158057374179982821779767088510614047450516840662993965905915776756547184210029463911590423822942225347675713506003648700877273348873845097079927547228853756474394095576004793872588418500179824492631596099637361085551223241979087231586162940308420876032496876510295503695598488882020134846477871728459308560302933162011032100015190968130414242149705695618533619297514410850250912785004963873526941899405793495744867033013248435610567154081176535521981071326513462680588624306271644836694147639508140179922929521956149434518219761940691812500936095107393992970381122550826874771527425010419716292619628671929222354332367258065517991986310076584031320286318081993641204972145237322018947487695895827360718354620520404705790709564995600001597059036183757796038630325463541835306174215099252506649814663208237688131260269661507301320991850812641447523358463454148492191852266664657938324017481574944905767325916202758363426951015161537646643025969162894652467581954744213078664896292115083783421740477151174987939878410118960795428981043145470029735251377957987713589295765476052090752073227459394374121690575474326523985940469330792037655312349359443816455451391549072737925036046679919332704190809825913420424137830937328721122027694351618757084910643180722511530685036913044977066128305414754747212053989780588304269560150769771464095877857905089640687438389447333795711243292695430592960893842363184949014175515092445767153477527898198593746041434559972274385563102854080734798721196980346152850870368787802381563261194377446992517411401650981942051091945355156535958768224709561010217891601262853510015828668176995205299484348745022098732550688731050472366832465437132594489093866540383299465889187579094486588354170516774387071439765516639960324455121414982695283326626620631737939058878926383883054256843177553255233972842586892641639482374759623828238459837067818663291477705335673372145404052105146735160336703429705445838384877499430489033513244970996920223611055919843855984063564022453154915940411670617232605826685403642037892068716396809118812235711710512641132765704659046655291264748806235642498136146305389781823684126014488381247908060132349332739492080082473224494659224971754128659123597748523151193035832333079866672580029157464162216050496560763240319833058516389930680078693139436629400742537809925128690955754697335740927690414352028799141683768022421463975738704168804723047541886513624909852932419828663308257041133275109627951839840191162199226781676935418403124574511847139407452714566608940843191055059291540951147354179395536543887676474717175828873597291354297136109571067268812556247134823298541125357617895419281190515378245573646104747090040222919752142357291587863380179328288528047151784489556262872656161195830967319029875147365655979982529469130558781298644466161375616166638327568589779290568860910468269764002789646607227580044916646752162255048009502497345180551054865862886609330549842806537220573706061321237221334145200243710808866487388018082100892393134907315995059527701176097461662490616771835556294047280758663788447018807058381920474963056094605892390368253432782515757264569607621863921600013925691655523895465866245869682922856013939800444237812782610800404270792572497320552266828708039460844825710007028845380931601998556210943821106954076619824518236624493127111640044142581723416107041806447637403611515530834198621724942608936964141902872652068306614140011987969792473925206961285570777753412611290119025820051363919035109971708459610700406551683286464517175859998083764155680988367060877248636568476507105632844083518553632808975430844361889415234540478761481176278301334760517876271412288209328260926441086861393626196133799198515653386955563815100586508276843947413488509364932836797459057595838102578575203096318786655746376577730122609832188361059394116873906903926289421583840245175214762164876787065541205959428898430953748895718675446769814304889739677339424582854693573355425701507897985000052978302927544670840029722477542834791522039539885386838269838430672348613279837016947631082095264525406791022292961774890142155894038857008650848002851546974933167649947438835760986202608809173744650525251394619505929802742677356176408706331744433942421429817084346174866475392434103320718269874041562505621397395051695380943119397743441002653090899750776630677712725020924715999430440076713255845838776560852347201010184650582037296648083757546503568633540731144860406740194876935865160024818290999764371048101227720541556061678317086119306229011488460796448173831658390471539078722563255271871700291913158570880573960721806402707210836889326180869084951167405672400259785912541875018555335112542880829901851728294624852027925501437337024270162469735679569059872960358763293662150071737635151739356879067117972180820162601273050416958886422432917238210761705354049367639220584069104125514579250512095984639298998342678648634638794933297835006557765161183609849299099815973051815248243237015901719475429252694150560459186664224097234046764920850731231833664325035363478204988876993668541351393818670278104934426722215178385171937696226155884239793459648699299647562110600056549858297871645389044426199387393729242144852948777726440164926140444937066141593087583183624286649335978805805173091537236523697290312663572374029366376221483892497198877565855167630804264895908771646516418858204042238432550465238469862246792259329709632343826355494336170619801106565631587092319722734374289351923818250512815603134718391980516852980068743240940778056860122875401937381402970455019220321846930604898441060580772239449587748321167860895236857091893411756089985228379882837633053488134035939993737852866691690420507345002287149367629473215967255889347046628561517598813602217210317289160305091515846445901322551731592134182047983759527706023301655215309762325099137493368308482500141609133042812551483702980240589587475720396714765024525502119315301045763991859523991176223170666183347998970096337127360493174891712583209088330275783463454215836130147103441493151191771220914312587504045839975398573790646556632975796270449511986100930134301761305565596366023188931650148283147160485430319017684638436230688151748399074185112847858295964346584972019196714613379033297163434689280217031004757114857035209638414731395434429616501747401936716473603861423362976263009066450890493006277825189727302140675071339378773915029248346394709205469887209736909184703541592165221100447822790023319072214957504189955813415902429176669598509565662999113039197668024980591932823659876824225862626500770836555768731388526367940727109688670157834851582984696137369861251990385928333242677952667782375202745224127075888958659472726876796139417550761502387097071306381787274619972740793523560444845710942649037033622691150579589107456511269666582707554992730340319977405958373814879834680187481199087171722656484627971560298905996492307994988016122418017778325542055358419704511865016023551596129928830717572511748610340841553191861176426967779527229977864740521187504937210634524663951222468203841507548088717133584090362778809546016717751616126983355715181929710902661214765025669312989684011516032097503794871481820838046565927614156957032482104350887013597530687723211134377580556371052563099007954555281830660894165859610040253031488348449904738660609356108297241884613143779542973869508368681658100217959557227442012422506842230461467066338378674696399657329092938125966633881005084364827198379063429697566269975667310713675654653120354395329033205649102673202295032357525881691282541786339053253886622077194428387800828840138651707297499892243313950804608969989871792266226134793845095103418824007700600462619259202540810445178110347107178742616573758364090313617953340993055764318871265290546422980127855104557216187646631160979679325862421732363674722132082880759533907327368878158723009493967584317078186257820464932042024354025697346743591179365858232308403313296455749825495588649582122495149332682873824462729717887848720549804382242306643409711486039113209623706839981574867631349530415437283260786953752600044922429961635966723140767639815781340123299753444179200234367004124706098376026290110292344297862111772143312771180619001768267101934434451653724234708018592275374025042369799279926461130804664227300297650127118082331627578649997834676351301239529019607112845146363178977841791400532080715849942202870220629064123085158629502568327499683301210578749809148070232870663399798860768771713055158054737327147203375464804770091163279987927120737487211252433699061966596868791281227715952057811751382880103010697913729541689616608765512070428765930208836264650267388366570094693378814549113601570770140489989031112369066919135295722400154573221498104197118373245828191713229547117455153964867942946963372131331519785719173413352661150644984397416823111950263664113266700202921753708490281901929143613051432473755043788451544582458548434087184638943453694196048423892730534652438706796932499925643274779197541621508857348228868798880712281701211795290109302743548448907464010835690060246968684367905192367040401132964865249679006822138359914011861419053010108269877732681391723160835307630651963488389930669117649749952565135837764839140926131294346963967256394758213456425605252885240845066607151574891564131460620177313641522512965773213811489263343647246343714299600534838420625799781629673925178979453415229462770033614632229475902980270504199035929084478042355857886248543627552967004753742008334451478243135829610435138155488386281556675222701883250363044283109673336275894887421737631864963172962960671371193897229552728432832847475336611705706023423942756337100482730379660972139876917259917982180681515637553116764442578292012890941355187452600691050520345045359281889834902879970454155170561168197496887684243158594579613035881624291243511920356934167985193216377787268669176518621244320760869223806961287543197164399706808065058847148179240358147123482462390220790457511858203997104402319997047957562962068641021161185241473203381414037802808989413443626128093962334398742903675858221476144381630365963378445919901692310334295719041594218799688615152878589084875869775506073792049587716880782388796879861512135596151202462782940234305939677370552743373925276101229567590589337500119558909006104622555428365116021828242903384643930317639483062054301926642883084396322967691682840026941297972187971563795838926108028567213189753418286925726583283035880524720857720240086197970733028906345137098417794802788382534443718104218110984634461126287720129490966394996514822540643696963139660931511297263814939960005902459504222824739831676399705498426536692571869910947014057348243634650231538473442696773632330288182665346665304206893416750386159958164159147580175013122529569237112236802726389655935991468045389264749929451620847414684215745046801571319545040223359419769108417677538302927751595500755646735083784760951082208264253862684534397323409096438739899868105653741564008439393174303188362014891539746184875998086489522011511658732208125659755260908469141487834200132614284630788374329026114986022068309672081665439211671890797599136302755969593718507170619052373300685840298281587620628207647225198759368373032500085254483605142768107317981267653239974095269357782601053539888810597377129475479673483780528623536416799209430239992096986217539257976592856179345985311399788274236341098869687030363931528596036764392288883761466014668040428091714497388792356957747144282874154876662745401617952116422714961236031351028074556795247458554020039185910507576884251933813838240794387330275792009610446991729961844762024083102654679713092832110361547465789309496612137462256132823978590562781019739791732330547203516455321021533135371420394570678095458917007258252467246950297937816458293741238683787513984313786489717091799129269645541792734354729212571656900034382918860094542868767720572376171700898611257501241965579194073155159063271655969743828051664141435229314261818858814465897403621734325916480999365437408565309637506956483569551182345851745270497778176224858605651005758442215955720200351214192932375578956584586525987272382387905152259955223225981657429460020599549504439395319725572344252719743641396911152049776493141478436873986327616260835115715270370278286261127642164590616090600479852807529374449201946369238161514166613489501728782456278095510158625077137534739727687274534324982806497138735306608034494267118459872248698126347374180684121823927896569422815118386857147603060567273425131923360613757164852955003258445021061364405791749702522624191566002922104339477353716275318969668860501770173020312807109794674675607169832236463119480765298355580439510956342233913363872702759225706692871428906230007018646774911576162214300013777947990176990012876483857674695968024643909568190775006782366965778727411491644463398046061297338771372970297601859450230331266603100097358082591173240094452137721033458074325334938455264037577163402155662868669897373613797499947611881246135581354652942557743759332914438817445435065915835463564916610715425260674899423144745997745493332944727641891014175791579159722150104808541792825820771221453307375943384154650299992739101387021705746021481289610899804612223491783660104767094597514171923534274450429442375208060616475973501676024509141718128547930635122397623083445839453444366830167185481480700353428096238758077815156713720316807655149173107696477631139119800469806212588049015292378309516825573259285596101465214517779626353888189208846588382582819102320426053295887657319101638118563618187759938817550039476353344274382047701792300620963653475778855611802236588654643265437470129471192470396515294015387728306428951238275427938723121757478516823759794973728650758796184498143488793121284444615498661119361845002795683593898266950088369111280363437185073920536651721178628974195623078224157178441731975528446943766796316400850853559745493758692473340951824058219361499601145858049848801539132166467342535822986340281670445895053239210172391211960867128885377297538579217143469788713065879583315085852218513394118821553210928737876783784408241327443351767474237526286131559919542637103278168001893584434382195543979685532989879128505162362777118018499180051160095312798711279368676462769651921962344986972243637852860204167976567263806169624414075382849831586478775390142334900135867141489107734417524406676594841881822094100070452768038188134554297940311246176025932546396277882610297705057347823117098180809366298786774331316999473229868773085824529747437793867208128156378934993696519685149821577049671624755724275017522791039148302837849102605618569856149203178841482293071860366072668819180394719212766128341392332950416073057267163101304672986039619641184295660497514414756482272543131621822445106788175078940059028073636918950891345320483072453310641872152570614524108985738026068671054630948168206914368343482464723234801342489137746025259478965887933662062916610476575342254770830711609332268918707675391028887406405818917153345704606283229559075816508348686847385035011390813077856988508410470139266950917941680763638290085851259308950152321083589566384265865015701289004300268835073650810340519023265479173376294708649222833011380769458520081049649354790505425295192403188988337424138674408565381919897951239598795590192391947763109364139251393503947035546797723459990135509803608136269829674156030135770404026082630585196232906101615376989566071026542988084619108802450305709568902970650519587451664083860693112543595426980849954911512614140170934767427459568271379490206626720123417815789097450464685473551642982004441711991859282081182578800078748833100217648291031180273545148138694063674922405446383531537707978467159437947755582235416457110871000449949425611171053713587381484714151057823008219484776657578040096198678236275301602072983722372161629392077561267666562057497038915463151757997162592994970430648806054338972377969671644942056174356688603234278221230016369769946465027244277784695202958943409161197643733528696811710437150055666786905157472563180942321463718467645770168781795794282783213719056768895905753731039799523536447567609029998873986783803151018493150031295852039082401891319542643100393936502161688760097346573683329608235885945966136737781396601202380561862961537616013942719539915243060836445277596096041291109530739932836420699599191757960049377675071281234041774397485084086545848025025617412110349992081472965033471908619668622124505650089313712826645917340446483748887080209199574770275194828338081630824210208926445884618163196273297740056878725159463260050556432536444302554019383510520232802299179649209786676402942521053020700831787548767149479254626537313713961252408737324355809987902561362164956537722796102857673984785149518102402933792780514275434666873131360376803307439084186638256924287686935784687492204961894614691331507924617233142116405879578565339717557148265316970529948126172018074562941340890498127323925539750185976293175014693605694411185901660827067698203771220587117887313261468612565308723110890346268901251136693113903757748041978633248206201756556168584587071635145610783190467702864755440981628769242342722618211427558538128284755738711368514592965692828117761534147932625355053589640823672988157502745224464678050074747675256542107689350877420726361995755681522117374080989771595855250763630427404120054340039983590136802479050573060003299745450905737332122240379458741470387850925608546803611902942734164415152529533406149821220273752233102899160914084522538532092058722668345514749001361583766769593453035352647008886920532612716453057933377110981986550165532004090620472893345159479703379808561785120618148965237633463889568594212787881231462796379075742511896648929953843132071542837564000658178370484021673952701769474702461410941883004268850170534568427446805593515417381803782437621320001936300316387553820813601267633922317860718305503506181777623472650684167906096370938014938612505720248798598088324939406342839603135061024277633082681542997986010640793426761452098521340033478783399371805106004891103592410810281313557707189228719019146164652205085436930888173723842740545068958012614558156418962818128757155298195556651888802508604527206435072549014255692448935851970968240929777466895332094230620465996702759000145632690033399255729164091021527629071702886121045616108629648572267211694388206621413509473217049358122114687666736796142961129098349561796613071188570104437929864008343291385302548353675551693861348330432969485815584836670468531199987019788643704119041832183791543025894855364066496259450144736542354083935601704702519565556861988231258195124830751496501083627632861035884143823916320388930167414938278653783768565508725153513076689788998113841599002473664818000081512053874527807394381929826260596296545674033718493343076308971432527723307271231232701306174006921229332711975867225797500066870647229634929085319025989256793352892431300560188516020073820659103771044744442080486628497061829244960073761320729967871105766352888551478318511280257362374586870505953517682590840121292435509201570596685705667624743542806095905694408433707739423345027422471668386771643244212791391137179925012726292600348349734189715008345570525731503632909772549227255675681700556064375996143837251800689481008234564683188609409659423344148443826371309922714905066062222386146318126561453973878763448925547066743221357318150995093940543477192087322531616012370830489793459279140489845220500285944833134673600078889164177435634749535702651090033887852971115044929721369876765728382212381647912990870009279782527903934793764965429338674878343948274732872249122565376663855864826924312550897663225209978413060757069107956315310870874209023300314497476565750783517337050418761428350944011936225063495445327545131703107424924924860639234852178506858385526985133155832306385087221072945090649160662423491898279545123352170475980534741401187524079844684411609559958622867882162479934794191245785356847398459866560040719042429884068460565480342227306075324121475055438823542635175497597204308003678261413296047239820530987200519134427588737950640462027538661626844062316278721034088498280538646621947448168959124463769999986427157367944596488434249769419101095523049890612819573183920024891820224758274878742388774558932703208724753406190771456411962446758865387047663412341550631548009235439404382805039464756842637721403422885346039723930158148537990459883203183064609529826296665838258864562923754009407961561420317003532130195058552066333686252621544120138781508280418959119308131757607395353557792870997983938772729003592464450999703046621720854202229753049015968030529585714687851972976869407856611565619918374246047646011746054828118678508604993247767877043028903484267411698297194105313913030772010718948913496211867181269183023191460251613410544564943964042766987442323306370299725437797733872482711121002662670696341080048214977385578634966427576519451131541646636668205932977582965922474530027040594847093374023307667682993887354518204591073857281657561375487409759231494005627779834740389666691491514252049909613270001480714651724455752016600925808739735550902819151733513677038447270730092752838279310065470728609317071325175282312549997609491411029224658991473956274046411186399419980385424467546545595307567978456485081945731055073755533525964010592253772658666088037629202599339022276985771527367608242731440034776125032118536244185774842034848988173915215912113900489911673646765083018062270131569609656990788499637933073201937947718427553909440025403896944539936612011489802893067296678250264576888610627738368498331516518214424452359537591137693227708422142240184296691288503140217966080652018169492908323799328750706248266008661618698889860068071181288293252152972656618330013346973979793643121299259179814940731259702235912528250771030827659279207368835850026858388882683449633303920788017070174566231449822068769406035950121080109481158960024297428573768730621409520844334782132335276297331139273168193991557734446668928842612534783226029931391420604346864087490029752269384813229946106286025726633700625515243793975990934826552216089758933443733271384329414117195516154814233506606166852751635110006129915238540210727064767225493253278901138436867187480273692172810165554750525160282462215140263956648056359536124537175122584516420605818395123590510280728601209176761627964963159405512686012281744365842542763243278048275448140468742238763382022517200341797148824480603638641192729239381056496870730521592889947637731094017478487052936877803872545112031760587202289915144000437932124991510414098802068687916706078079804127966096087671823906794575327197429388394002594005826880643879569120844397631089739720924915232383595540224474916010472758467956943067861182804558864157613067726207639015908491375112379504566555848414493490413068106292885814304143881651639163377373702239841972218656858368739978218524567656189651194938270038716764903499933796778095384736608764478515656884037339731047243722061932720613557910289491599381842692260960847007141687237562480911345436447961056327215536840059235911244477624521646529128584978166026368045107738970435380900599162120339838232266052591677469684621166341170920960395104891240708665622981463288145270044802447474455977835201593839945997703350014207039599105204994216848977727977168927475085822108067646159591174347648080663906610240780196977131140211673081356819935338933264222320502995286461305044967243940980760125194066713561281189534261993564359267384504581641047409816676869802129210877879162783855102037774771368112816243569048991272172340432487264192668228462453933818944031114076647613083802848651764364291461330345695491494547531258170627703325249859251738282257427931820588568252118133013781959722253115899447007132323174554827917716124158273204047531419582403954226964600822840866923239209070576137232864182051726199820629344370742430772077431076894125681693119761555384411346291597426939096956831541655753334927763227708672164716331341994114502404343449988070308398818026028843636396164319599063351991660330657127984932460428544300879415059912331811202624989878397550990503869243269229281792231704257343859833725234291966666567012778187141790694769999340634364619334144491814701625832887534192656299051757862777834859901411775984833667679846481649199794911937820830024452778453798169607181417967449014380219917548023210640908920664670008740110384321530229044075252643499992601813461265759887248090734568320005447638419831588602543987317887884256573518074098512790391234495989728236945669510545942886240384569068547924670442466995528322689593052638373707477236277006885197328366748593610915159102189045258252234877085976274488907754573773279589890312142310397772040884884365355075472455911447135119544548195807840793535786705046391454412999138388339865986689290816998332490922438906672840035494820714720531890745661071050533454804496787607718442095409232762506147670202307948337726042525485764507565266557945482114332122083214721612500170117373992018782332706811748827535175334901433624469087817940175048033294087471649742886545560774200044491779514009947229250895130569635650378594866355514060737565609517411682846939711921722497425947145105275239030205489272039437119583263180711198960905455584598185157804340074236935376374082471654330049175458652797458507117902074416656432142061815127272906352050908607889587596436689298495321376099569132659352004287534839896909923730935436541793978598029858100514439096769915633971610648028896754174559134054325301626342790782944919234188657915207164085226817853805945485728578840020344695475767758060287213605760444496909593753287405181548474538857655031676631188172283335895204686593385068317701578035133675274547839280011814891411074776375723302322191502030392912592804623904335889811049671247075426943439875646023016450012662496184357278598977415256855123632204551653172081666820367553062355186863193394672665230906990894515667878392573925789159220081343788016260958472231415750028176284729633248764874422330189315421877935921394498827616811529697516029107249967989923145404933886959478616624136270197211600485096322298826558066017703774935883782984227488862811444287392874139314136391990929899176686208068025347585549346690518397083890328177493113318284575406680221141607854996262992758936843811568782777482533085084300127953667911149608160505366846961246167454184386887899197697363190288989769663530858089950298741724068122057540083555186226486227045297732998000136092658459934823561714623817271562367106336400206323417273969027456742584054258149619212473775519946762054784377923919977480657979734263165601322116055694667941935299025965175656718673485278894741247661525330204446616119524066433106854335304634576980734650376294528590570490213006133453327602071314054136583590045716798168781459955965950106584296073248193263462761799076204456197216658202520431760989219153604870833446294136869845994620862328230489011107249634680551926347102469539144748436739262593408685734556529239160487535096947098178110615078051852992213983650539920367622797321704537245539316156354305664316035301470833525968272138648809416404299568674709668838725400086955410829039260602969790857895371087844533424026073825847564005973513700433746273728310529130036663139945270439587724883739373364988749132192592474977278469979198995503080711806079793285143266916291193805526414497601744860394938253332482342108548217928113026626466442076891831208773256056268411825869187658298453387688649227480551950999662508190754984068465728656362747471818326083999180674364782203744108204757181592392307669665517661810900862183888294337197582551852871082593523561340054724672124453823731213041400636965269778394421002701552601979097093165698156483660630815904625882695588959056178786431363486184631449446469630037669433080148016480882831901679025941577572266304739268724080637397147672405836255355851030431564657343249195776825710072762742604472860728460622266849724691280755446674188263701339380219680613397524289728076948491109593017395494107375644254037900644058358162057565796900772398270085697742305351819438789303809748392580004439590430281648456915855833889431222846309382447171688639671672357389650139516579629766146815534174714510547887433379450258535346619557403808716105381133354174361524196221507762272676723252771077703672777391181636581314642273144202320177896790637125688102777339982466632857917064209603629757348953694101160868293137453016193364710189715903709903749644158498588883848419847120616284847506599634335851683498489568655770865777863167234777935530319310391580570829998305889190295534729063301659707115382617027465821732067629164505591810120567454584605556696972804078903047617725672241905325747415225130170390799739671204512810880556520568740557105412202266101299590928492169976999831897272249883581860443581587518416487555225838222788971789878357569214596736486762026976070603038312206346141763242921422567802562265914139369875352690671276847122084382147117286472225070712876365617007291837276558511855146175043999407871753828591403156595864425620240059141863917787596425604021433705401695509418150046191989289822807156067198963175790744861225022962098894148062238949196597798881843479469456362299388429298687710551700342465965823226647291669687446700188743824620119134017084188908923491633055222854307339944785616239853741210375986104685558018208036418703189501828988610252212149281199167009232338605101288522842396217920065172716286036116388761242809055346814713202973379587043348937676130506949853255171156946686472620474685984571547378435647573419569829928917227774374222958872626054983189082650000765964544365131271393297354983600602635823946020704391080281759059774765869106171687747937695780774639688274082273755950379515480174901500330758227377061418391397944710897945331216900558798073870080832972834174662284250425957327242444379694237266473196552931290895601109806613223784240934785578835887451409991913725412040764617445509219758887523059972075785877007904309972639465459775001023953341584040510461150439411952817612857453992234029862854261446633583793695324347873483004409857391110931162867225356378340822892893594849367963796058166234542661505038099355037329029923735386625633381889762030482928407351121107267353369997836760921245165957384144079754582086484059436940936137497385359073151957301898012510312157029056161157073332379610412806580388778035539140177733946877503333557801191876717810129878429264440644549245022760991375312392380677369023996502790356328162065584017953519720863561999679047525508786485517080422922903740609989801779541916805506237401816667076773329938910226764867301232397361193916778783497313973662032245843239416874527055172704570867777463612079006238719105550446465871479157579982885046350178408854734810195572383495100290667974006730528670750811667628833726447516572769293861120428064372541152899035907716342078162568446520149516956208600669262722445874444927894235674610262458671859357192083402807357081538955833976815843292225138767091100625347486723541361767144489964919269689052094478032603531713431247138966906447642032705504467415612808806823664546472218457500817349539575252343680855164827242272278201667864032786878335421082603478747063518744655809656544463550611678707043942451348101313279016017545181862691379768870659966665579716774521915072534368272150086467333902353549683486388469355625469190535541309535659731961414387033924734119573982963894711066739742809549340089872192137646860697360630841506695386069636430648076685136874081961936447610045548316051900492169694677710014056584894615891623994138377818082677052530719125529464125198972370379776084272598819497819255620254436212486888438146498345812570097187942570290513099529967429132635678911569054508806932126614409096658643460686772919569342648819719582550043629859601264226494618658298027804351842498866422101080505796459514930046634490133372171651579642913334251662138496064000170447688408450780050398660537145165409809288561636422678311291314401251784890775535795210904175187596417759909456429735750937841030453677987531357834633644495861960940941293787869513950267940355204482981662293807188257516145963334430182088648005824098743717135945750235954817799470838162267019317708673986880343850499173191707753052405041162171078895297517315640552773849725200875332589932213361219517026791943345628857732202580692484680379125883204538415702359706592572245189820035786290699402345143901254719341184731136757385619626072069949756733739271759301632274624033654567860708728068749310798474195213882580319525014810645002763603852542340805203667567887761069599475215065373142845300467365898817959622765684774371998274675959731228809993387837677069459452780025559887614461330524083966393939103091143561282779900517087273036252659204958427618992328634035053802417929042919519254632385592964854066032845951276262290641384076853016740522547661605155216829763136437000755300765761339992787154701055237396325871127405946968041760774506246941715993687397888613029651397736663897719955177618992938078964611106028881568145916275434706513482675562009886074444458187670689010917853453975101873005716582180493312895310062768351630401118243017912606943519791850063020066895349541787771098696985031113913120412229920510820458481316042417369229454128116359475015136974406708474822817106058708500679731610343072554355761530501961478264778539024162423923983598567557707306454612214425013252294591133586162689822259008623361077777523955363383986230433101869377203893034889207622211723859220200681312150069128559578989660248123538223083014868982309766676747145896677342422484063369483453611216482219367661253769465642857023304545249617613153519456988233853021279945120582851030352721578888575974205956962154804709270178012093942227771488780873126049290727462234345395000586888616930551138862961339893658944902594209198691391433818380762801704071765986931068603579966230191501874989666370783417291235189725038697133580410154930757540853915040715609057225011361027352596607595509172340216498647327662027334282346473853352549557102112507899833446335520270127370892061707956188693031040497158322241450670011228463264090392432465853733709797073356804282187082972295878416876585120815363378501636308489556123025175068972474321614264089423622948099272701225539841952430090858860257657089086108109917497852736045976643156396562529845979693352355711913480330281512727355682038202547639338706515950867505100207409265473080182266250311071233274235046601567681454374793520296608972184531912644523885821788646876891291561576295718898238106350932489333567667770107776501289878234593675985728180339063965688144115117343668583535613069977571756529364195238770004729361100508883128793358101609612731119192758520729656897353839806859396161573219184218732660527350241679688628575442024740372327724599600598429718355299761429874297080048525375879897988326246464976218355760975384249910302528473669979532025950063441604955412686133776769681634574183030980359372467137805371405636430429281028878596633543531048722623650689315156580939855195383418886790955416900968735447061371331463431737642553386165931017066842552997313657009869523981674908329820750039198573878148372298843171351449816145344501212971232900102806169416490257222585128371589875243922366242160558532173672871853211151913576285574607197586937473599714855751192527696588575585814829031733266180728445728321268154311013159290139251354170449296223592956507489435102672648994726784386911881002789785052542806834425016109924071918464825633539129060452419189355337843744676175922261594740157457676556872568280562513506741557804690583904216099539865060168650050368118355155393262667482900516052893212008302329826806660275952929155416644058601084305328615967150052879697016558509261248210604296747780895901470805091821146164681709015330669771854957598517086856076797935272786975773545767397548421945017510021263101194058843164899497082213453619011132361360237080886099696066685565802257795962853690576435322618840153843285594365433454374442233345830902453488820701174971100873328901541426737880746683712069967013292145055169234716649325672711342393626858960984751676647683282514795339282205478701600704657267130796254092824119808715179539353258684821634778228450566785693434216171864964134059071291445894918610401379529693741103848169626764508768628069843478936590086982644921794181587025998634638988348918501736008019525917145656177197370124680042764319482683901891508518639442012887017923311201240471732422939231935449187564251630460998212820368060541614079892726075813087736244588997103959242513093893997020706982691188223974964044621402516266119414033591708360584322189333454715345825428128132408653751759366175680749479212881712128953263799433850237780389282908317692586362764703394676152324696508770815333940676972456237857886311903274334081462920823080895348018603763268871670262124022785895681787300268056890892559034731158325261511611806704414557761260190361192455602478107181243053306589242931564754970824076888667017137216217952062083034365008086993354003091436044453131071353226329412712846777965077932322931627855348553970716445388441406863721140790843472473979895075646466482791659735642209890446552116895699836164822800955788913114650140303209491961808476006090950596657022183071514024712724316511005057193032939197492340329188627991040283583552748577152694618092041599213518899917813059655347188921296393314864395151503190920969028028592267401863659313419244842291479495990399249520600252605279484884595696568631915776888285353126336709558321680235153613517065132838469392567020962579977510993141541288323831764010474392389782115864209243438940452752406829965216106921721162966072358467824626405799522956689223151828065250445842298126265324750167169379483064433933132739223085796942321967080216095755785377564193441047461590142924827577513728769545931267918410902358446029003228874521311943341133103971952138567411721749256159132487130969420538527869955833902415682396907795674323776662852843245845411860198326176584403478976341617852191737987285894000535784683451729139315440297242528486534639901515434056549475583533832023803974162606324191162264259928765642339584369216057136440816180564292417216245479199106706040877274195434651490747238538044624416343277708855182324790070576553646410599006146256061648308924855615745361810870926444652463593168838451247705678444805408427789873465929439693078326353427964803152036857451061182205149995451933918792409543590284515354511688553703495923038845576430674530825176187415263901825234887656719035013239829548653420935053291626963625228762379743963742665910764804714413878448019235023130426340362424283731489840661425109860140918889676179614135017284127966701100021168889397673061765346997549630777380254912494498682355213260468579016662206377989309028009215702535739920423762733830050913593891185775956204870725049736463111506010196631070551739406021980642134767489536199733039901786290911634580014586840941507804663419811998979638943554480593367927796258004377548895743235719063033057946156114886507435520156702379533735631111368118087978832455336234368939603500203729907144808388788992809311455063133241492214607587159653865171760793555535788049199194859408935594389540653286298816737186740366795467775603750961389699705165531896830296835935092298019234155099183694822471652018095120026513241458183015101664187560962925039640341647348914587986596045208807807275208441927785850523877582306642255833895955433155154494427460749527792037636380384886708889906007294988613549094713215904297250326227726741669313695657541009146403188412863495171722953251205291872833180004677476301799161388644856157784439846395634538485936260169539545655380886267061095681053698028140919359446222940070582775409556937451942738466847311004963371792008179506155822947888660514154312897864950940196414709146439991143659038864074229503374988764432040763204608422684801244224062251595396818928208769734131510944477716994505449187479231425313271338662178458752387035124202028359568992846357618892188394951294995525357320808118796139493532501519246043684096202368461635794262962960339440442507482487356675518813964000670532865652220587309347829029416539546300985167596030423447448661067647087212514940681493973760020271219035156209943129985370703080366129280500727023942952875579529537419981066578519461126324941894843842293327489528823874306425710599993440542906774634544070677535117557751156111116888503070769573534178803629834612207447189633736601335730009697464625021954575077618547916981762861363213888973920110998351504930134832390097541202368261560635353955052382044143019082455072193866742780311693756145111490746271360906945909032498834482237990652971985084577092315421359956293822360761894264772725384043789923748372572930803408100541129907775541729817858078672993463365543237282858177745722197273608931468673408701270918249151624820015282021268654585845100563343322021639827233492970587830979148981796807139438647846814855112232044124051731806143826551344220401582335875180625749970675128470988315209277396693636814591997747360252236859898034677471321615029454850060391403301666725134007958424172037436713973458181075466150629873347120049955044239672001558168304981805008058500176297184768300129941337854789207558826006840974072774215749821694831484171113153824377804718368975481013231716322789986404094946083496307261979216656841317177439817915156050411931194512725033666432646307411407490249074681134530616160431064533543789242192564504130402049700610531593874321821678386577630365822642293555905770007632597274459798223014504035914197720407507392959871996278405321635219376952638548106359162670243032546491883568242811661117609760547730675289344936080162194131977145298137457748074505869816156323265852607719350180128989471228712471171060486007825038882555217916765533962548608601237030889305792942994579765980565804565516464692976049298810151474826058718568332456014942385625452077044862796203315980056007786403706012879551780883978991430733001932270101387217082264219056399833330959757758890527958963621227985433762669020256430367119970488471032830823468949506662657006853955794246187823797644929601941491721215448618635770164233890614568193087893663233882379252907052628299420581329756716967867386131700200063007270388922456334825226267982558824672221872876883642731850179442935297816177449355184272830536028232749551668124068945179178723147753488813766407498860540690215540505245204430556402984603322734604780627735366639778341905638691799279760620727175327339459597169816458151120682184369569293997036491941212101668410239826181913770060322655456521449027561302471193860894851223201809783045358366092927670248372630234687654007053889619555217516582795322024465787601987523007646608930730791032122043586606295498987601908582798044589156341570743539238101950266737020411035091170016550219630117486569713434843698320838467823169187317231902923949286907632640540503371286192599131031048868804821971286184677296768009178875334134021664302650977564158339552001090538967550919223191072304050147624854738061579208568419205022173562263174927339214025915284444618794335093345743250993479661520065109252315756693353254334328302307336165534964313936591410374801525147261967813241294484171461723609677600648063235768779116211031653970435670523484554221135703581903100676505067987212158247461127997906475888496968772887485656631649329767966398512217608196439761492587108703650328022641132639187690316188740122193393247073452366534802742958589887709034983427623427626037967062688300087471391066723499612336081198547878370111597848931806586195074469215693489805563992568114696287608062216780697694889933240030727045715851041123721148198265529171797369290037399121226567510730426529017050309748673420211660584235794022129513698972395449105567108722471286559727151585928407495969396339033690067525933654852652273864813702268534555597599824799711018619527581940150688521987006012966093205737676371933305188688598472667205013372101445978208773616883850377922155670032430681901008039413686399890467731320566128125861083256474898189778125609599543960736733388593970445894194452912320833444732959253245504170680034651279618905608270917939589320947939744497543393739884033419411433580514943770953515416042325183612282832791021341433474272922192001301509987836009222983823313022798168372177591490018735556066030056286441249606868562792261783372209146337182391100234651262378582133503276388586907807297247896361733990530388802927419465958704602200560088070584704065485986183132545043487850232684574198529472352232173397962622929163943710482619781713533584834906762627914766665725867728121214116402648531302805849453579767091731702660416262413419359086170479957809427276430167798435207602403562163023171654758825400856643049185117676692687009652847556731614696579882165630935949158824264252410282199261604664810589634034583636819484848027053491477743471984649368125979607452604006584435242026322511827292495645579535110837107216006232824790693106527616187665430157522495261441309170439060303000266737605419532643900222563774421527888856851796110640387715535649452999418018570748124616091681289214027977881964351420312847728114572510879610304816920655490565064913069857636368288849700193250865893133902632245184145312632167459179678237061394337346908216432573515108328075189828365702411376541433406416374967164379064050079577913105490995403140629557099203061623130694850645256993558964441126104037424960236593147432568124690601120395913768557564521331872664401154708833030109201390678979410580086381058660566998724278211637253623741335402286424250736586899786682293592416638911463385923410728940847019207440811170030449077116382671206477525070729505310518634129747690202911570136055766709110654506043955086664888946872109023242851055181567786466490676507947321081265796376555834990969299547616467682000642121435731213659586511739017337571702514618332590842548180435437550040495252699889964629217917962098763562764237506485268868950408156566976825871354189609982190675676748380728100888836442002269277955961415595474189534283885904848035070719088140599560068941240220073176975360765219953867098796780790111398779041030647738195838502703602660167904017336274449846712779895289460075515731522548832999677360788998385492783826565470927169181425267378579072121967072654100358910105206737646563520268932614686837483075153250271002767396467378346113689307862962952785996930486816103073842493131463475170497665601635881000396512035095168159536913444672529879421467549662713071992265861568081824625390210610311644301266586405882121484243580266567918508216824875883393328040225756155398318941836416428435899280829662363981621904520281701918138727919728420500416384452167852127561024743223180748132639832154777863361740169008118740179720315897489949137160816163650916585733591332510366694784559189712727535817118792944549368599281771715175144430731779187054071146479392905564155163307783658711191314098717518787087160379396653898002975103737994423905190806395819377254271676148671651811191498758150319498720847426327296953542557049696287996824091725048195706494455557304836552136960244423023949658369653613198048271932418742564230843103832133096254628693738870663459265156237301934716275847940614084504772996591152796204560357671801363173983393917477763227507909533323959953699114673481694685985726543464046066196564683733291511388533797856387873266131797656282098491779330821178112825987921162837883188960227723076665708696360321688775464167416615402439698078964305064961086577907758781001807569611275549088884019054695844377233024658108094577637777820465147932100470590953691499720377515464500301807381423089690878499991218350855754870722368978175566321293954207957860290809990401054277434154469703094502033990268028233927495176977039081161280148959083027930980999199254066356599519686510565131561514592630177470766735669177094916263159591977491569451735010979152541261021188952151765503517217534872595447990459984545970546016688888884565132727729036179939128435440977931157205852324426234306451833087483033314533662396961839775496299599281469325719988074726274967329341316727815738960222965105792858991387154218247898517198551545611562704469086014023851221197476948911567331743065653251045355782799162613899313228210734498980322263431862532033460777320629731203599208975875209032843996427289910524589922481159752427933795115613047572117361328527249479773448031138816053094953890546663989108120783326809005849472514664101391492035458343212629133644430289798505242955391471418972680133800189015696101161991290407592067123387186501188332563951410693505631923291747829483425267320287386871265653680649597066326611729652603977218515906635170397509739848879361373318582739149575116390745886834504782431479811028707750084094355347815625994308059106530521410577935226348590857316412273316130463020505173547076852903120415408083346818188891439237656857934035959939153974696828657880626340896106843232948711631215348922447758526085678535768515373086504469889905276645868422429865833440748087734281900759858703620073137912559052604930605849811576574206266459712090824301193039959173114427367950014206588754135355610869755597410716801371770872030600331656442490134993028107047832289384374997004092234431367618129611982662572285488128938514825340225038267826407064910624619736149810925571014552206604131489716119443192111809346437257433958565543888930743008041213843763304907384211643679536215421155353334654405758329494121389281368856466482871899452835240987230864874526627815608337701128511654583715678179418505187307893905314268014534302435842054028958876112987991536699933654649331850355397225374797646374318778568660725580158153287340091581017303759153874789427134249964977597257325089752124175748961287351046813705430176319306674527640043281952887634178407937821971971962213593683353187832851533799050773855040414282911327387320273566436484668148037441506768339356234407089447371766502719491253132900725283898059417674150453071527417644131020105825421611801314069652393207781303865989298440255623073381089235736660312289083189919193573717319014702556380046489835059360798386763935466812003157775571892862968238305967307891424387355016240373585384402378001253618017347292542554854276242746317291602530909991666288269336659185366153550686566462571424279474740592582773425797068620465424656757830209826789363180506087968309462997597819735070008798146811825548124285711916842205195380014441485427578540153812358237457597995709830599738308474646062435282365993956140984895608439097723645653261967736415354887313534022432091810919003323092751808543068340861593114361187080358966741127018285849253280515265109234387962771359034856295130957222952343836016003132862270999471463444192450824838238546436615593321259744752543071034954671150666663384732054167020944173134248133205752419186061050763068576829186335824313489049179370864033776283163942237497348345540938732153592606725462282866546255392653513628218368191291579097414633806271008864761296681862256111402296386910134675558556955965958953075572039181962378068718877695341690831013227226276405019721740933802879594849245765333093539253844632377893562161233496099516232376286687222849581325345094566746910603738334103961968814272666415958237382770044945937573501017202164919850687132388165806944491153387985304403031006753649227710611193145658636678987249435703684167818838362746227448824213236355141246275577928776617920887030110688472057302481938109747589664813322176259948367016030330158237062132454052313781432532460855165430498007015832808663305692783199715479645515292707565921247273040559299663858821240553087249899102075901363761387849626241077911418273370784753045123212204535350696738749739073786844039082129069622633815566651240704694534788751570802678628183661607772849905216538646128367250824762074021608738862147339412651292200266221556029295528191662650299540335353813677608685762034600453267075033838276780752047404813799965739461788443776563453937139032588848433011482621725554347102590195535249342045072214532949353426874366229078078216657545589658141243685763362666208577704447664550568483377569725381078034620030867445636755876826468072032719106728158600020618317614776957066758677002341014629403555327588470803980544056397360420266053519811701517624037104567055302685783023476582798185040144109500979033285941460617698548772330576446147379520990756202161265199310958576349891990323434879656130825605805017216288157745673923241303485002992000865696174159288275231200580877996869493707867244334145175947533090490417459493918161475578123593557407481577605603462126478684762719436772301826819359254951945326377075516723860557548937394354787456710770926889440218090456796914861020548351440317253861920612999161937499019634401190195978437809464706743775598857966557276273458149324341025306798725590875959782815480544486666275758423658410727873187745269269755903802262296275873147944038419703971659404794976047048601557401526317363789794575425755257485578362458276935334384642695481471728665755445759931981509016545627301510763646280938529124466458224423918393359060322324826361690091644405095881746487898224490168247568830391306939027247400332230586074194681046166683091446971299218909502633871198719400202323997597222640697403370510122764034710885884268127472748526962966259666123767637982345036032074696621765643739963001735475278813734375704947654671580784712682650046412378763764937469933551851539655628675279691669121732606277826741493341074747871411119993522912257764388325542368688997133223207376209610730841472240200817994134228666491756946592106533101687936959560002253861635671741335861926084385015542694648834692993494765234945007488719958438843494258855456130658626555182696860643629373602421892883477245347987177770880102786212820657023921148640993086234957226091469922421131898831175808701304478388814749026076050328738181160636886773241337399314956743261213233637607139150631656528591977651894989163777026773337349171400980139001856548707486665851743716957734821350736276565046994202932102750647908438211025477026112810349826326498752497638598917520748964993658269673583528622306641146505796275975963674892253090304241358758962970139224747428161093357856609092393954572491578484772153876357116007025624646877290856944788455336840702899271043038462079680017399665973034476419032855192257680648616858597926451221941451873542083826800879999141120985191255865295863705786252442703692747439207800189058596080926025718640058354283984903043632599393838765583933458388135359145850476668311696141763729006837625503969709806223983562417738337289061416111626911055525755951598669933787737500828183346918325070446306334516681987029672581462286223697026664050810592584785514652903493928042993970359941375705930622393683375474189031285477605928961727036956854511774505824282887428551646501564940925521109908508815071055443375820209355143831331364621571903025146010717104621454392376315418594175167839936878804088764376105958104421650554229532207309221555186270611433485466496723502541076194150050084395196706937638729747110377586303020659940830616426617492040559577755358131170955823946908939318244866888730823563376054127266760719371145521637192994220122486557295891689139071052710785459444418232767023156224104426320093936528900914910443357178267726470486108506993572051367433591957807762462300889721457826385036305647194968438313888825865522766662872207258530233151966236273877106702627590163906128511767758289043503337465675028032421063957841899869022061352131106377237393444021640099217444972028867432941103905245030817479723906385497524643843720879834700670790737299360950813345863815603406630799854874539567929941403279324441020208137436453586850775948227974191796050739115071862700825644033669638700994627674584031238467241837895761986342562743851981125948353602295309108836743821916680557392169165677587753431085370974421659066165050126252903133747843260358858198339765251700603964559949791315877733403096785898503480383077127210998219353209607578931131372257034208967643214715891496741010533453323863331204819697548572525078056540049456164823706028963743022189790888028631030441076542171618120665064739790607242020623243638003768955253004306447949921712861139281352306981553883907197379487653058119506458577272830476606480671318884408973324033269421282056714537488443755300376286999657230715675476811578701246756968713400654967725778216888479463773928010054545427703847175234817511809639784854030387177697823724289722626829637363201803065655760959902080223956323105890163012463877798843522276489368407157522753789045628107477317517784543033411906908004987279424086547284136746495423094342779585636660767317217475676129386517397626746457765164896483691193348217805656288102681692553235424378897580783447958678238646119086671863991077631292922959689990805018883899524033524612488836430071299023879399031500901245427807780508698335623021802164019450478854732680590740470160782241772888466968712492020616690695043367498143572861029174243166891971427347953742731279705241780649652080313925674079343499013735952568496252771580314796913400038589216192002268257639145817673299047270022878160164031416837120148770950659618934193845873279041897548476937583584485880120861226933881386035809448070812456635363265720819925184239062301543599178964374677955841814339101435747442083589923266639116026823644215912079381142164590565983620489735831345901116784823973460921309329062320852027747181450920440977709962299332538065653082273488479899191642206052421435864361441348747799724968041099192747680002080691173578045915530081157585921867332425359488948561637967129389772734252833317304995710829834111293066292809671928047359644093840780196181807307184025233872635968899932122217426110656169129274122351919444922620548557253445866039776125454227272796919960408988950864993531921165555589652901207611127094503769878740298437979973682000054734011774585804508382905189352641718923850728155283814173189021073278311690439328475044414129452267844904394894806234496083159002129168655896630538164919957422380430328112066228187149921477169819024595562843377840783034223490487430171575381158214524770232222281591279329029632520985815768086130849135165057599339021102211908618092218072319406536632683697882674941361225027085386023414787437674537797365304786613341013627342831380662788915262159182299598704435112268295056727507119327542415129206514965096562177490969522426595815394061054268568830290576981399245309419060367784101214303694616267433236087461074267343842259171796520381623880190401978036969009229840553400617509184444939894781798298987693233169959007377714166506244247821090047824748118564862624212220478489665933448938580811794118354160176838764388812222457314322957219942737661545621288062609402856253624097964300771952044244260815298804466505921815890741487601395331878721352518770109069161715120464314641608554533256031296133745779760877141053080136855410178179821015242306685217792560047466663819662608637087151802166722436575404160349001500548184160976452319650704797944740160839310754564883660570023483011081970052701285931698140672724615583979810073026964406930590582520681173396046678941555959251170713784115565769970231966521357052319963755175876192737311116377254322149926713155144963951659030003396728977434201850807559211763783731479601186838018886979718623992658150857145693081016107190760314935616571230452109196930061501418402705255143445428431946877855183061294988777111653271731112140438780778588808240320273785888448935317193857490158125983089905104662395391558098550920095379451145298932621106271705957492762776327493198701731286038646459778077640260767086719339709335275788575841763916615688202421522398640756982428430977488626045219029671159197113203073725746400671783367208522339309426138223714838566722586781164868644478606835351123291804787745222816928799798087937418394411369618278495293702472767715876658848235228421197701922472924323518202535015137160280012761794351472049479954240322379219798341824870008918581550687049136763110161908697647540368488162365163884414559442062654515968212103551269623077606972758874342734001656430989304475210596675233756165968510063659333898704193380515103550644094583098337629316558165524950051552642298205039108095714321365584650097845480655110966252340937506916551225419967457147141045222691368469857428708852053900633673244091902557896544899338184349912845076898812084544227223234045000444013734958374569183595882808623235661380587732908217945894451607171525389639845970987827263387551750042262759091336644674018410191666881878008299471927959072649729333866549362224100380522485055200266095999188968404459728475024199811686784645842689134286312392461515001945032802809055718781320864073778081013021274645081056061236030033795769500788667448338805562727094776011348915312419977635363967894445459093946876263771309832490594572312721453271774685259154823639367205065679297966867399621875846739485876849208488577841020972624814704073931743979347636221583560432158251267159854553531855218267315606843005104778031658179965980055756837871401788857442591785827691273456942056513991124439954479417711862425483081012211195052456678440899556999718854973469996729342016854533987718879929435187350205191870875485429467132171071350056023687739794256982149436190960759284473525351754109577632896082030412759335543615200757655504506809972829629729362114561832055212094366991118722008192804128990550896973336919199718444951629369665494854728249989954433741493492956157350644356449370507792188616039160337919085660653182425437903406591649604751387958159598687343923085147191135598299636789650972665558561675610921323167582700974193520602868478487075846265514626175104095190254550542916451005936167250542136104948683370772539822132201867361986828043848299810683590396849584938226293142553370483050988063759194573807327364351998950864897367421636667402691951338391169525017871898633417912707515969363724415784161016013565591852143555356602236763982473191806798694515645702265362376333460992266309495900508369668119745630499233224125975242330613553957784086271106103856701409592453016927784781218934668273600881509568123532525811406669164289504769062361984794030426866945241178867732450931516661545804211459306523551571881424445590137164234604221277039179676654687392882712293891346543150966496185445464582741119395220474482955813335396537016844455280521201788065577887243085943039702766051863167952097082560293570672257447106069564870446628877531754881105605840631063038709508541125930185890389185982129997967115238428716270190414480636763234870550487348539997642010787429135060683985516035962695169270869108486323992977970623031141944212695818443609255278185324694904427732988978050327013945016744774706005467933066623918992475373857408210475631040167873776941837056095875621667844894228880789897967532461658281629641748552677324820941700296325567191628222448295388574843347673410984945889212126206727400456137907271352710146706418163013750753972968718932500912724145687276429017517151456085073411506834911324179362773418230529088210184359709025106401599956090835918807660051577353847401069626788846646412940248273727638837572449332505144650468636693797906833347277524763143493871741492378753566732526245206933473870948812300789669053081983110569352361812866101926716459234429273060398207775859017087136598697268059518043123885296710141495741050032014147490927257703210454625620654250511579920432569591801078817272533816499415036696338686487075247647498763917911231803577036720044652850288009935916126582815370335741225732100797434647616580371653656894787757161524399735362055110710326848360491912090703643959430999474605468931395981046877594041369602789383536411691266845667341517367230957569779030089978663963819310268770508874315408686620635480993378893367773168405499286268061745711945795524581907810683025729088500652401656819963130806985612654448876421989193921327401461218506928696518442784350823710270480614039857961470057612136559951094266924077988378147211895420930374355645077092022122912556397385504438848738152507959591570169129316948377226790224651230209839318402462693604194023528216588556529792940228061759798393532177421091193569040275812007303930205658760211134231694528609137970351890523692513885327096003392254032689745966733933053523935178347899596430559852589419806375046682438692583376663461155429502428264156055058944755522158313408449096612616202017371756897857456971016098607891456410969392112132566683820627941149373231293885069910979799386560784314442740545137453344417335498345025294913977177937300011296337217665231070300155395313347936844857759577735713172914444494579321640746921042900788035206155092274699040544232324656364469593897314354112706829545979586201202136772854242530890241969299346298232159915048760289121112501780568507014679132752843447005706957110245824060359816587636956166247535678047791005736179077490102902989701032154514049444122364572483819912660195374137117585585077061010703158396041633524473786629479380120709894404301359680238289060026299285989860351287138923120044673976196883076567817466752545783812806091548810208686889615959655025267486860039542703101799513667838893026430447020370593060944119482952983523113690597489949057459761418540529999083785055732372180165401792949187992476040949675353287044201590227256003260840845218238554479134018904521592495147916121540049459598830411299711971060040694690873927215098938295032594355984685204325142378644492577590664196173838233459567564848508111629487536318109997100747864789104793438470577385738677120756127030212230597402144391560752616533209733953660806459900044380548836156433569004725432738023931684263175895307009480259856938097914296015906034411121665643120048008000052260907186432899983688270808725338038977963989225605532061192087876961002298959287560916192318040661000336795100736081925446061351307000188237809088321363786783069605632958367952450683911467977434712569119523279711278864228611246044631888717944302441255005166265939925021830674129143121783513133863617344913580316566101617881019728508703432523306488207542935000470065873377219633657924190201295047160617486223568096793821282818144751883938649231890481897539931074024780258431332183403561033000920947868976543491776089787665752006161671344802562416984703442091133130679142945034243084315689070455642601948465599402394496583504145843747102167861369180106805515307127383469780464849409798540726757453754390834377372023776033737221615253863322670446848559696756251386038274016305644584573493209223940290473659857625396589546740070407909460030336438273225746018253133713586469461217122938643152018634238094235115487791473600676102388438241139266066763234896288455929426077744466114196170895831076199847940969414720471857263665045112223182292532311235233101870167733920212520119922849843981230626710280447445367368781076739140310099850949175041229419252033929137591962910696826441865623888168730463865309798198481957226892146737662949364435533981741270976777263911190363789132415487528854470426674496699736845441693450804748784615315854239030349400523875639531383343864676260755731893428597519101145816437138852493812739056804575946627567259226103105302049789700590066535314497067486733563862100536943216184571553445307879552773560029733732072793245763540112348182670119218183833713799714195454378522338390699645824200544028395119073125665539569547599993229927380974774491223070826033820064777199271330892163149670440739038466807671926488147012097334148009473932759055348749872095128637177172862463477837656708186119447715737278620471844599450975232099986285776421801523840157720891359620427440138434212093210967248286256944357029175665656886291482316306649728063575589146551988494176646089012800180646157649048306881803511380990147943029274353796949732032866171398816817565564598590086160257730807961417578958276662466690325186981595224238761059725504153204512164762223675283063949960469251703520791654897704306171450595974896614410608324689875677249068566072838154445352533405665508629257335505131204083373093903588739687246118855279830627733408743735067264165540590526092035243896905472497211727126215056727541838908970517288599360025972875916659867544119587461380472046129520355227229501143149292014074719902517777826258664728966638473589814846284598371104217185878793708231247412686220768270510736258846880684468285398331637343700548805787414007218872515465762268410425754205453379278880473539351935577473538082074394862111492917490842231490543630950268260245877352148099415376539208985763563857671878823963764797167903954693469801152804752710416131895798796879439834048558822351476810691872015382413362789816551163093916562345225519559794198137844359813071295865355406823587311655632339789692186805391277221400223520555121860398610777516162937129739499169675712430463712667372923949484414415734066245732713320753885137315123937817695131394797144793190073748807629961357951257341900044041428453304442274649298561556294701064151525310836515090455742160717624337453922519326485113318450955892495951419012806938612949390853737801593359336855721557246882018072659747330253782608829288628927359675147009695532764721338115665471811664617204092172324725916539150898263506880210737656593203100884130603921729602829677626018758160558648548989926593539024486573454592472974214453977460061391846570123933720444699173385873143839114036604345590307711101209122125571283002081315456676535481661263014645350714434696492402790233756439480647418794266206408610074319416735840224423512288628030322464720188687753513984058968145762442504572303815449476890564770029907833193576122011969615944797758662783768548746223157337418269414019649752219892294421380782848791114597287403091896364678223899741168897120616923758254630120965035677537351826434683151293839580928336438186282971071036822764081983706623069873012710138524490722646872148603605701893971578887693750535711510951811353557286715015514928063217985801474594496669196426043699494628239199413706937589586639142602099699158656132136751177197836022760064783450795810052323168624067665224027029696001888563817962667222923110249487178281405213279270316223593813184307474131263959592784095685001030819794116104266959231377300408210876227401648358607862526665928004892331523893870470495505663669382778627865773870731040696949049044682898631723562770586030787973893559602446737267842483678851794079382286657604946307832373513959187942719005206738991124019353017279210368762255530254531995193654387593344176276402648224126488303646123388201725900260266479775270626131243253804646846522619292692205739242289932895450883649961535189695754248129224177369525487900463090922593082325582147445376412576485194735040107051134889158392136829684625183463709969993481338530197923586448249307195233432227674454453474131562792721877520512548552312901726063087904506207063474738020390648784255835552731302672447686348501994667525297217800180920896204799706764881391100549568839777851415409576365282861137306322005910036827936511353929987916308852422658728039986223015104897144204237796948366583039183519845272805565567281407270489988641184094843618370067342160221137352882961599220770491811821353873122763777332190821842525130360892720971963549003353188003655057596251694785399676448675736676852698995085684329421072211922624285084188604824253145046759777875187596076020805367372259448110687900376095301560894656350409452887420693507573945675581932573436999372291575388835705326546512462610588406368888718270987555241632170325374818733574872777073592573879180901234062721797651216053841806253253504600400087947872421444176147041321620927239810919172849354551664105214729433870140811964378560032457083613841083831079600888020731476279902112068058863335923162547037063735681515293179939077891883999890856553703899333684403060729299099404922274954211639708878505596415687789657600995371650477598505934171049162908792159156589495101765486731050044006804230548494566644091474164800279483758218230254562260888585219313233724883819270186502221557537611608226128184720474361451365391054122082486797634799278782736454664956745183198282142876122691228922658959021695458761595617849241291534619539781904488542068406575934437343130397113583188111562408273117383538160566701072516273273850290535527032937480193538746627378176666792703777342222404612954747470722110005258902676913830464812259791885114287984751727819868256047259578633603674224352704318398496489190924632590003248610346470815455272689809095455237730359178604323645699558806724636296050712586170307603023252020911304209049912866857675000905488156375347272664564552618358695091299603592575202903578857894500119492395035441819848990704230540659982453102323332393901849701122434546087337863109993291088594735800187814295116777897220839948547635993548643494912822765602644037955000955955145895126061552674749757854323631947561993720270742836212132898351234579363625173245669360283548142921579101308214280777431627373887183239635274218491537691118354638886800208475034745579325034455519250041658934096510642691301243187493813570391371340931477566126795783357067700585838986931904542889858395263183153336668223603335300720488547107502695480459690684895271985162717102643873912097716251607523416644440713835481402360998969825226643293258983312684046821981442048577193780604259863901683010742164121521010931947983714261908384436312783844374809383852234872609412333313783291782876030565698550033470168668535398843711860952075634628083142502433517107018462744278452763303544931681983050259565257374499004987184250487088624412852597245265640264506706093233364888133616403726724104484527188643170481015680527865429206086827580606769838266272995418591556048906747616972645602799045800464701940348474924265535839900238106401288377172100601676440531164581442039891589872823708267708780765122657672407227641577557560609241070571415608330071566468598603470384990213060525172952856570564920035940638276980970199693687302954565646866816895324293451769175394693717489684977096251165055624980021316560305347243287351514468255675573610663267341643237648137306117241396573256694533318549954835621477570177654803146006264124268983934603255879857877172437157794059911968830473242723894416703989053954765416880281569230999481228284390156793023275008517982654327627416739533098375777068959726928609455188804355949643879959131899238031707244166721472504032783812674916448202672756446571677180776870088219307755366160894534864717547929793191853185750590280781275336739623641944426297418588357716178946517052338758658870943254715406130141868161737323583043782910566217912479585152187383409431578457410447155447684821517923295211522599616882771060549826347766973169898706387382136371907081244743246669789213510166575013139190873312083189961408107649225044941511677488602263735049023256546199699092069382171955235421616880689641618837303957776442071697534827704384221515452984951449923046087895246371152074549724108469849241043385202586273889577366563458310458959587547469766364918651456719792802525501711533495903648528394546033367220031996720812667050279438248966649371412903073035317391106650952596810551342725839391113265153611236782554736940025125483214792985971814185659990579194793051839792592944478997862228642782243805214341878477663247706737099536265411449354542914606608970413980962540041414366084355393641824578705578735619997199023381042539037295406990003294868330996306465351576460284448240976955720589108427650942502559836682021673592271577914671009068931843222348908400256927885639789815780782203965243348246050629569341843997922166780907492737437050523229941858483920198923970400593085871360418361952653485037408828191826870914577913744267749789252884748211995199166342587156777352725340645766015422945641447888497623416460951344614136655017462240077106752995059987397871287583868508162126960700761096877889153568807085554820264319039169277942427683968125868512192410468933922370815691207807240957993359211653956330759565786267009054208850455460670945118985401077884606764029242020346101233211570926314203358362129793136295354834339188031565975729829846213363496513357312562913071447635853783548297489062442578774086660418834800941561921422122452266086301372348294444290543447901035311638666976798797550686729657968156029072152314791341070243565797553727355586594103661227060912515376503488203061082818068104883400593929562339602339470188037774185568970625554250391704940553234497826167077493604838262262636829887549703461015977506839244911005531365644898607062318778356084379614715600489434026677654831225652548575456361028128823455548355328066371371194945222185548184189053480340262133136090377803091363242065326158235573531474942085268622454997843837291537782651809367788184847028964192083133866757697438752013383952335209212878656648284945836178171983394843077680356755520311492302677571882748429544869922131211301771834533695926378521335640545537565079038642695310717612619649417587882004239256983356327172570484006134093448026837287193792384666131102122891623528810081288606249270060609576821196456181845880396932109971356698211304021622372998411154618889360083924325122615272256269811912723842637275438296061172011190110734947463440246317416708450206879866855512554755004921939119534916809453360439996932664127498049576439185265883015757800609094321270071675059926337731283255002116083306507285648159997749868959600467618187686588586553513441096696013531022535105217868260422918524842121694045828051750063167495711143866444329224516988656227630007530260956102430007170244184557420046899447048267746062997505260883143428077391538500425074911531516042629250050795638013352427218847605687029568728127532405658449006920019943294131514093036303870313420518391405504804699163588390282415519769634601886367173431137656745092064317998719971922835794714024916837415350001296749867293837073611190035055605369824888047503295625419955631728494877703927190780458004944780767060348109816834058865319713355500479471306599277196758189884822937266655952202638753779844460043997669625063204169122907512354157785731470866380702424728625289561695474652423422640792477485106320319274400743001006972975046915671199239896948075811100130087921460185970410451665905111385597552731064167121022132218891646737960219471249836402754539505043095905450038727262333781370555196448172243974965269777633678123959089000913768680874377258254237237911862628867507025108837703969758873943992466747282842261734904008513471026461083928802631227023379683280802442738129183345521829988651100548664957227004704236432259395634960436347684629750634523224423942298220312322873032636976002460442212929151288400456648180151692956285279993570287239619743671998912772553648416210738103402301324424556327754847233382752254637616687269168068827812453791870459703925724531060922964996735118071203447123157235592399853541051855911258554282048036990459485838094142450014375522285907215711548640088231439918565864118074864803445368802053509239956228717051326625206865160870289757802729740059699710306163255257476492727919425786625350106442349761861093889271651069320334477235338830948386186708223385147253180016914751242321555004483790666045198588941997456788959298187941584104589561665657595358962484129860039407737473637420975205903749504860112983245113467037977129579288196281057891277580755062046694749391879590814044608053696195168506667573802544229532494580645993332208237721417400670211010018646707526603328019270571173488545393572712852615972233742890137081946132842504007698488953321036777749365215171142117385543903112363727286703797736854083587025264520875099789410362435847212100231232253633866766301106422936382922994818421060852907665146038525248626014444638881890027850761838371752268683425361545045236931983301589759964369321827399536792863354670780526404552317166335116127493984055517871599967798511069569914537956881721548832264266824060121259739733534046170627053269480873508295411116822542368337127486248922652004072939999216302312584829312214076407543728680584802167775452334308492889150287541965156456648224978811426269517778512016820709962858229223985331048567050430901134511090935527011048363610831705910858218861444965402389821501614479153576360020640324699780000904126241730026018655218514825518547485358587733263280646171995508592937171372197517702261799208575225925923027542258409867405447896571933143618647395508230031330872862136523475805775047915792553618604407733101133324880117471789021758042063466435659225468048549529684743347264994282832572340975028974070621419647090985246768755778878557843674898038856916898756387337980859623387678387998144396299727147187095477488939263917683332104296928650660292698473041557308762833838411562293045005301091547774648419699746753492887609905973937786975652260250077113360577734758509258029798195513376093800608909164662688328058957055753658815788516742352246934713910437879192141487994302607518158366655018973056842920546809545734471039762855068739535056991467551834816051639899175250232038415394806154651786686588557213472621602092901941311997765248618451470228098336352515857836095362983717035514391375263883290080153369169390994863879820761287899314206260829424598037235238367069315140798194171563410110015984609548178960802394692532881670067270355824829647442935125296106700443062720751323526115182198384759781684417594333540576287790576193038129990060844778160206534434369527573944990592020218418068530091156944129638063024148438488309575582961515120456676371040217399066733853645746444702604664400514170472939047731969205196721190146346231865595954335545068193934379432890763165928140378481399580044508337493013487119592032144750979592227532641622832636116426191037862590179647968662514624751570674255482360765922184737660810173808934775894996697159948897584758213602302616594071781470489256672578009104154599775199184899173981513985409068541961262002488576390781533602197666584111887457707935304953007740651813741174646287131905575659106505105435000253714273075693033007452575739473548097486995059538322076960707192775574180855958874689752506356813967356045056333543163872776945285895813724813486146464693862878386596275104624820147497477620326867928368816539961704385680968056291769117314743539943344312503083164940069388491292965908671145487727894646419955681199179859046802785779275494666570720731099614015307272163890527427584589615689719486377000789413855650223514016043689114620406899469429067214596184349869052177473445969609278583515987841572192501565693623089084719349160110388443387588037102451733994679452907881564043849842813985348721127123205791205245825601674255642853272649901776900529941862983572766431391965899424062433362535832502957169370215465756439681733127598809445030338368255218833162892954959850375744745482918425141452743394490714234935740393861225635404882852157517711025782896937707374776976911373212940178917735983971819956061285158748563856797516037266303236256632337294094406219643052384863906509216644306833169892177102286412235663313569263056808977786364080681695810095288429435996633607762724581106356691574562930099974260777729695282109607205236203148733401794804790042944482188505888967376834037005652970076779507422299248907237633733029623793420231100831642470839745622246347261928919245182135652253431595134334776599795472384664443147491089277185159731293920770228234063382576817201201141992840400307532742534159755659811653413574864271402559016606899761070967045253722983502006033221201543195506564200227192742168752530650550146010340964400207565056393760308587314659480766444100971037304430370333785034786955393208665676450937287614658225103919007125488705915078079596998108015697119792861398107660258970681626885574987857015176470386568440877013763395910559791717085114083364216395887485364700563157841589997548436499279331509092023087751948335625954214343240634926432139510789861955013623115028901113141192487224100967897847576793795447017999832958562903718270779010261916774586910369502361161245680005572482069635662732280972472284587534075914177779584588692288009812929213478693537681367520343795219048737547037463908582264437379735192799317806886211494207982165801058444830860128418251304158073772703666142788508457090859611208079757997133494982708542375342671569357769636363792907828142735865986585079220094792325546587836638320622845490696223894484114651165601588595381748992931916220757546276366113396204925422612460926262718461148939692975907992235699163596092833562092422829796792294343883751724929908301362787994719963037142649609557271840349705542688590517986217471119065370375020071560792893143547946308761265962803099986972063103868959507629313626155813841874747980679452542505440286111997596930731783629092204265619925410722216017670491991383584809554837664453918892873418136061635771447408949910919135293443406421791440328406110886931943245250955661249708651345295643061093842249854616128837156203781977854218165549148784901886779587722061144429199878507736955806938900013745152660851477429415087808080150825719439047841556305636067168054679379952863777077379578216038953019816180191517574789210489728186153850539493808869233233874440980250105478948257551079805847000038456013090305133729873778084316999038400194772002215319487587982669607855901519769611644400167612685997268377528679734075186318420631906684586850633464231924350248844585562197821366769945073050606270723838749425305660178036733497944276098905161811204889027805062025099775333445353312473688211326298326480681896385065110064336844734485103914702148447586008000449436498512936880845704923116163698622206452554652880787430834792030498181534988527089429741157928732607248166121716396404198545528261367430933742158614907771660329616326416814508249586522945535322858450797826965908360397426055010318715467077928695159778324980481488598550074158338355132938842809015223772459637065650582207435853471519334966942486248087645970836733450102243467342049075274185707579624596801459895120124937268189170046304176952956043945738550751233690678379077058047551476420977897875322364672735829801257764901298572682987351866953509717104350282375409097453086661923150714735166756956908251691772528690134419920080208116693147136167494733960500877762503033481670935084709314207894864318290851353863225582932841949304764908018619641367963071080003706200687798825552646894888687102803962796387307971273695172918203314467916571745392458386585787353742834303973176210939489786373284555667865131026628452509054551173511267397502658400985111681759642133630566561636475565092738519963764331654151668267512042586704058605673093073266789395513718136212388688308802045061431248644041597049548687219398173708195321161474932970117309433496708420097804190337198350171263384752870336151742819008311269695666805554673171221625513295359603104241184798935788542870787898834497734120308697071532422218864502695803319990812062566184476307615240879406498523182057831708780970680779091461390999443962565429874613354410379570897930311420143676482856383417709940151528079239479967193821443313880228050457854531022307280884468601312288248303074460244425364118091918919935217479093314246688138323707342208523139658885720858236071375753586769039758695339503831291810101800569536401921961526035938013130414647378088520735042347390545623881979405129275079944026100673632576782359484445636841108240646361647516768458076874475868227060663913796389598881674362404335379557367249885440825224257046593151202650675429252083214047982815398057493066545627649438283804109894816261703882770159343102179199689076159529290535210099196592194404923833510990736967119052752478330940045662245770054786881930102281758162565645885732133588209851802259005783978319008038670650518806593318714546518548076655519996417765711059085529128794822287893054443868991265884178384793724800998150401098510316316165530559267513018648156591534833198909220065346768412822508987765267303921596358106101624084851304013969676644260100448843947077828080659378687236719981597690961742605281017871751727375268050070693818122506451495156096474292517035135683585368006118331560590657279284762861691908648020954445354634223458872602063538218654157072281664627665094405014178149993301654493223244936908899172131995009845490170016892793880132315028633036502738870386038200637115351156539278260809047457284591187326385945013619235812344264081353360313321514168224194623691638338249863292389082510667851503407728861020720609684074533408634361142607906114991876922154038748852467272091559025549674838074984830518310639248390473425093159408469457133001563481137464205980701888032354729339476999716673352243935346460121205520038226089064372175067957245472963937519967994359111516863008713643358254292524987999601834538859310638714126002738715347924324465906198978444154052632438961224312671693940924218574212252499966319389739049450007732680444515323938124493353612940586351946728386744606605342868917837152620842585572599325599155627752217428051518118212584771369911135399567363197932437277129137255745860084806163535550608502995995101233188849077394893426197699120297429225587761938622124100492721970319554637840638577953341907960730368797099553206076053796426259327512553100554940663879328563158049122401707170102470181662442436037105008868435508109617959133259373673191765958603866008467105975878335433131951846958791119377730576790310052391754118600379202305304013796902990207256135881782948797925184358928828535257526730257572445263458577165135570868716197668984516408047973415853985225655269183412530194440085891419428782316757061849361241654185502056817270957705764202380471212218673339718127650858590935896640586836373763708010202624235264035378440259412855938146560045775233712235301548859679634435851969702798912229961550960353448040643353458211990590875618973102632633277102684567755111723323721633827665988498180091675643011826460420584126763361825010665189694928192368250916254389758176342384683416134504061596322684793987297382947498599200197967657574606648754247575325909941231886080591409083073311730778954204411056455633561543559677150136768900195371122575244643774653826822912521308934638786765821357902181999145676923084627444979130016732590243011208123879789263311706187726120136285160762307436366582912130787866691713725191005581852363190064788011652536819294211266380329699577873239614162949336133584527388469428003052983903555536676430705793565562382180519009011752944340176890927878112427774462904992846913994642300106593060943250369604987164138776697424237487531531113293844291762906959733815125434739728596856708775223046811165491057667450639304726527558164074457534315362090441069561431175713800892427971409314507528860803776340382192576540746277694544179578813737544574424983044389900487257472974282309482782012155987587592983386789410778913820626663049988665676403922388561555642879586056642355730499360679485668881712811311039015571993742611318776286053656283718121927431695470710329903433762404851926589104218440802607560258197191492045998706415244385480751038643478577703932884932920114883390015547359180907565714301876473608491108526727324163226453759531039981297142103274713877735457295871026124213927330420015871497591958991036955829145464261832068748735473375671390071851628372554063489609139474282999269950695517257884574232647174020018184833119713685500387335474985624514631229160325573048221220241189431328617369501618070531522731362533942531679924620161152296878459619936891673260503018332034427900580394249596851580215036656245386250057010637875944776613630130486122252164809274543474713788358576408980810078056881231782404237140771351441165220465974004449904094521517270137632533109618910532561495772631326989908349797074046804846121661098481934734919237038986075346332811625687573391702107613904423802650733169838442633636058951294407985948303368276635800152525095649944779012987608919693923248503698199300191942151827720297347874006131388846062644075376653471968847802073607148355036600959757462838283008626590420241124096102701610230841112157458071377536487629788850896959641482953624467064714662015944905886060015375924689574609088820386332795622145118019972958961888164615260633166835063535264711194998141047582556512068078346766524251044427088376177666330760333669933754063026122717196342846306107987201670386760997618469668753726657509050785955026458454759198593731698948207328831624016446624074490352403098680588638046322471640123118944593421748028556877481488569778610824731031977032187405346675908736969540181340846287559419729024916322536455378052111340783119048034460324273396044117312197773994166209459282042023475316278261295033157789703046751720325980411443789003007691293014290545545575028033104866378970557954298842142344299970407807956485041253353763456291269964592209952751892834945500989842964129971519983348031511365662414763456000112518763434068624085087469146687640205003787051244998876753033650748300817126605600869867006200286546464916137664082977916196236375101752267285438696293331058823887834660365169598216721282962802373816480416938997249954811243847659911752666131372447874892794692784487865534099878362478589331210527503101949042352375667045948845621979034892793835347490988173464590437123731137512393281377333176773959329159802700078672234591014256395426470010832096452842737381928223446774829620864396510308039018645226188455970250520115023876574022805313477747359321026170364173844145861576937212548320389256036159190335673082381877713436076031545989850048992875544388745233101243529480204105948339716291321875464802627374313432823724241429209669786406472151732646164196649744057662359083436079189871494003787961770897586926418004584298296281044008639118251631699546741839545632236179991405880000170879141453640712075073200783074248088645811051499419854838131368762736945299102924845570965407423403432398560068787376226817092247776815007064761201070867027806508452269030860453512897031080918316070071616242287590764555547053836821950867021368646661468931862911348905023005835712844215859467297822224370449428339054748782011199748286309059057790186271033021965019824375650996615537030446284664244856443687750202158039539093598415131511305394745831733658705279318526245182377140724899607999092340880669401253164868852542712850164963963412704005582600787468266570305777233553240622667307053603650754534441522737753828764781841782253675851543870909912358677079722691441472948125830156234045710033844450955262402364170852222748907976231944841906620685228317699627325970533973089073916540019874842718772085096732442026826324962122344983467169519129737814145485670930159303335292196348731564355805505355733891132467098618859737088704454336231383106913940862053547044414401144423149787919312362029730020720131576901338350345173930141015592910643544693086576383419823184946952745749182606954615506314886486132652796077848112515085616169447366911303000808970637836795501229532641702362815010807719948113773823090994697119252657326444255739971505618158960034996012618053873280385924778876955373267713016849433038689792202641660169558082361267052988840195341186300771029245216750830841338245849893679044731123834947054383827625643397683580596694842872714269428823629377939931414080716597633473350329236055098994692956501623789923741969487050957318871348479445605568687184074324447480488726884601997414097849286243306512564758562371705278347427144148841039141395419053247698775484462195110394880848430580247612755168893170848282908074970078218537206640253483567405579377504934272906117038196818932733166598500377964468815362334881156610036164423883589489444489586359438117474917831923179374752854727108806689831643942005776198804772163942347818144960870944620053671072154072758117002080355706229598403976756861120238125397354406696839023639241792308412219078394987712524581412404461173464523584751266698893230359960683085313889444916305014170601876455919385263050577094359745807168879040080665387728124649412460610369608837215598023624968006945292308293755455127763567201250985290739805783597295289246923860355812771753657246684754226438792382353728836078444444879433741308775973117238097953503398674006594312055376519725128587453273883101385028450026267259073970520036795288193245527279530021236422738522671526233366400760237498270487665147076211341862836753974121654826572696020325041003860839690036513830607803507710902849390335132246685022852899084318283636903032992941064709736735136232555191962877784019421095891569227447989415287996963562227659598183181743725013345706868972350340653459678382796556230136936825671958976295526964677050329627711323995004632571449530324076787154145416923625275266687286835705652902652998974378024101076061559522904036488871861781390852247470165279858341524578140938491159600735841934195972265286967913624464192168626751012683577321201248752894456194199888703818148984857378973670247009614569556514175788218861814239040593527176433068265125954064585125904243311271427020557496496411640496145002463480194777494639253686477226056396914623514725082550799150682968775592873486325012715317418889218987665740310795391763265013649787213568677453689965323848353808256431992794627355126658398817854478139261349151519153033055918401110504197117861806853983114412652798240009206128495616376023880984287111599792883480174482705196431807639022978876795896752984237232325099171320855222434094730070883215472612760856515488506464881259216659861699676616489567152677752840935434446851362982641687942693876744372141924812617064688523384109718224354093332364320316364841082651705329485000956314982334746674922475492068451071291345207041433865582730575863404319362700982460153357647979252140063189237483402078018582756258836504657507147597924405117732098610541017165019980590923397125334758122363867341461524679029686339699734050523211551301676329597731200223943098897734317180517874248444662918750986257902963476288411367403893484264242483547324602107215948605462892650949022144595101313918943450990853614058417381331259049513583419915622966419424992620824235309959724810158161338501196617621290765662129086576173441767494569531738576262323831507740117844227005425065842400784494344844413056915912049179083009749635471689311258284562355037994610625552025741339060252732456428293993999222409803916332165548195005496319783635103145314429406935655617826513152451211478724682717992607583284033315224994486334295162632331060943407511419826434200626392162864386891505040625024740549463832931460495437312534210851294925430436087292581098735985947498809448353573913844412332028525954968061830798270407547468388847899286622248316032131421207565855969254259095267299446051735064730425427849614371880030991587699262559925810840254683893824706451694042091534675957490978161731250034333627610995254587475895867561104925667754548096112577843684220870869526151199713010685046515928738716641160494456891726000788039107869585498625774904893559657333981385788205466862323974979280784274187648635358984193766411610396333747044177610794350894080784737558336636826861472501665526157491125461675912524063683397381499758375023927563327521519607717180954658520579542533800614222077279510828437402728527373125323266427365046200035004325728693500759305726961627082610786984001586957818952048562380600569815793132890114110327670601622494632766481542506853933950129769963603369824400400545853434525877353704805388230816544042480178311888250784980130455387835030812262216134429401636269298460682150630427615799145723855376744721728504408131060342139689757777351896682373077677607452498668628934008173444141812672288335464728215991441516130775104799572153356335870338812854579712449352141175356313920413628601547830584054640909358454924458738639639763298417995340597720328802506517732826479616265470831652636004479693426871189608544433228467732784723540080120785839601442263613707401964448925271382318713223037337765472777434566632523981811311051473474089434283412990110725362351250149001848437613728658936470912287251199382961581580208237881143893828368578433953036801903644743624833819922445375847741243203220846424623276046457491883618423167198608266849991224630874921617080208016839179396693291309428199903689084390991677247581581855134624039925155714370400832321899482899775672400173170941663874105017398479653837442782150597736324644818759037719732933218214045736185219729269988438476050939525654964261883596799598990578468406771323278591907257468430233627491716435450416101535259498929321031238732695439834374580090920580473087417818261291536987631005941801756457166089393276581035180823134237065779297824256378744597315506969829062999122249904896123902310523563659741628639305563527542770548987908304770430344627232131307145845474732313750366570640609886232738773549216331125973578467291165588238031768871855672081846796566822164459867415480067633152155195357903941485644747573501721221307117251825289118164331212755168846777166712805726039651473861734950857634817600755384338251549240069218328774212809652831628346668439172528453242614175820711196932861745602218183970346445654388221328074245037286086366232091656348119813737338543874047498642734421761326884863039702205256589261580209051087062617070887042569617086713932333141526865315370487329407590124042574728302391625084925228524308275072472593129351162251400899244227661642539377415414051307171582448403090722622855826302784061821626963642586730591766271678284974722329599450262321932872269099561586865119354709026484954732301487325249594248247998826434440936690800791831257500180311791641273582669575094300327849953489582327541675072377475733193085147441415504721702190309163160786932754736101738565827298591287617209746967513933255977018767665281570175579297606726979995479151321370259314147811343309810542135572063353263822780248100145995127275241588138913080328501381465224353664172168416908526413677681866316169311332594381384055611267354818096092780245091396811245395817815963170878587959938232763066830613071344566686499544379897446356058773563899342454751268600061459820538550517780589074494461666444806649773628557745486629104416610307746884505332704818988274886950121514102497287396028418816790579668172712032829207598591487465948885810193464115447222420604999961399414034542279433726789648465591632564469107052521773565903794436894012967330434455757917659400526603696198102316708092879369449258682004500526405366925257769311628369226362729739736261103360980448083863684260211321691148845545676474808758844105883855659472256275017007657219774325741283847934981463224600905718000816933466840049686665101042457680373424825416253501692829133128014805131787454343554405140289407904120522432210838517237379669289432278310351977435143821005302393914941545088504401425480671496210550079807301464507236225955725127065627247908631171161579714825721215651339046066185670817084217977531826048890061895003476088080859536499766102958646051933466993652678006434066327106860176363044149682528288146742416947272030246441473881238222647009800928297068550086535848932143544206978207960650336591154276755975119308135823055765620103833487786082613887359784216794415614137127060296379004448278205874044399438947090538039213578630198108690410835609411794705456048852308145795301713146708248584633036621008959127728010752552965726056734545782693181264234222942008139899195463250851679202755965979642564929408564455409148661109955166311626182267436883847111427412988284224407530594960939301689450876408147070658911839044196273717852279162508060114815460255629257113198206770292467498088186192355535260379397235529164151901917552660551165495051113447601676913356928063017692993869433659044134394530595109339016339327750421915855588303099938238803898908530362118283312402709843700575143737315189390975416062120672201757952660889782236912732634553129164565064492955495521838080723192582590510782293908050649520404236144463260166064425343033669935400369123839508155073022818655138327372550332898261220939522043738626098923793257340132016170774848833425762812155982130930469209377006995264768857381688211934396854979204951789087653342214591866446086219851275412937462626687588857356012596976263191934350786352397550953294959775011121857335181303572299303749284301373380980680435025912537815342350795130455660898088926757599711957703480363991645657590323523402179437204046979954344177781821123978243546596319315669289748161015797529352429843957565734962387644820004223792955252558350625128276196042168583810871078690523262914493833715313872849948017888953415733629530822718007062014571150536033622697638253827982831571006643229599553463914695643250215171752000221236011485952365795063517761880945434081488562142683218261992012238301512187330174250710460756702680104430250164534912506168591360761804434910491947810902253382838561092587214775064084128208688750743514802030178780803927942011139196823944559463792137338801364416712263426590871219895438309054846936281479305620311310607634756640275842152774400866977148945632666112681880108183089548128371139200953775250767744166240032890006401789049107879500502836456942284319719194857991429282989920552972441605978693133299419524285854233790970074644743023194237485113824669316951515325673533366053867116287183322997064200995196248787749672621484157612790062397898945427801616772215055548905307225682506489189636275836469939402385055768766469742466291416048505830248848058808319128833400539088422070265118729311264448408375765921029932070997860837587740682801160024902254930287569617253382605718554754940188625149023327262971516011091790610012281672505869826321575857431634622551808517898410681914741975286318719918568265339004703648491148733839189947250097109049934445505647641014195957317229575007763711629136849542435815732854862511860031502354183691986118282673323038319992255973902687518089978733616553288671828445643291618452688811647806677523035726099043072403905240036613057745382600656827174179659181440564429898625946801722128242221506375117171469532340178885431504655414869717013099962006773844482959197054408034096836511427596545842306969393706678068552695326087132269166228115023273100516132308701893516351741729509632175793281504708645383777534298796504715938558845465871318205824234932379419369903351632396067942175026860835024738666184369032175036768987008589703326913681945379848806424983370913511548110567148825890579844253502993209112136505272866508064992801519096759203809161015031729784459692053285992578154183212244480372864410269282330507965502186847017097677469598932749095540750286636767791551236021481368334022101966471632234055621584882955242631422884605059538686490340357692725213703665315865047564384540599278168196925853989264320095800211713273740756557214219344188614263787543084919951708772299288190723806366851035535365060177874744815989635095908091893376182389466938161644291944977055398156659611293300186262411826512959228526854450446758921396584202037081002471749406953886966947407932946000808224939082578299311876420874129905216402566796524526440873180757253271731328880396471355669044678276409478425310770656433667172362589570948986416622206132231463057811801692383064498122167987657151470038152257667146617384384133207271574498645909566439673534666698053952695341246785485081332413372046765012654685173245126966801133998255121958825824762339739791763694017529912429128020550559755635568389762583621355849641996361755884003399952872911095838045835701980444961261162101980004114706428488504936742334238146281263154938242402774444374105279657157259495152688780321691193597528705261685223405422376376113227292496632172074543059746982550811853175074890809966679921743939928608017684488961032260120614229404561282746806456491755657884104947687031058596814582924305282402100619238202970586444925385788239337448897797040081817892513601139607386314526529689552807454994090007334077622495818222099172946732289706956200737680628118735852779187158363226680201675907878414851977772993313575980605681656686673864685327489872901826878213224355864850796056881960071528239090394888153512972676975153548524294146679484974298824145379105460326019063021555917273012475276136589437586454419363910753215005577574495536040759462491804351259370163242513440857260929354446501890501373308812179158390820086563788901112662458221309392530891175239205436732077604583625672822852359631292439615496644864704122941152866653234291421703750485424688626496462690605483564897515071387929656390146996510862488012819301646166562351078501092373328910158638253720492216154118555118929896289677434405565512300556816488465325194153803455216465534665088976514174082489027734604870921573920249124620073863692490284315569247103669420529462237593690484073697007642108053530631063466115497603975848026203371419377937552090896826040213099047309930519833665304890352661816207747333458343133187046656134694639833840792951214296614095936287798471086475024512116395333529285902879633622357654444957174139646658548746824358633930441503387557170742655558496554234863205608777447360274311291833337152406622247743789512165855475882713321179687230172007101511530172416824908804753141236859839199296734877380468320912150988503744383330486098890662246713509823219797557804222350897854702645562947337446411511006471269178705500727514203757501110838821178976209901705459319093951625743492792476313597625160539717949341232461378684520568122814140457327784739725999808141674927797190113084680964308768396701892048665301151535826846202345807470011994632429805261953581033416750816274548148755701504174669809850048547309615704276343938089641030497987576978233807717089432105651953149146773212088400574700816284125407630097328054771279625972860475051857875729146061329249178411834939930631517455893057294680073553849252170076373476183779106545112342989352313963168149439398520395362530681725379541974365142048670518770485744599655193976255233223614236219233000390819267351667891970970309466558481208528890295489404763106770512712077930081024360819353170306027316129165518169195684357918935092411017299388842448414823253974942544189013831308567705095751038091467401507306367631054571363408488541122438213546423133808028547357329256704105636859117876924230193663499169207030545987588520517264403609369799325298605986596234276776719693741897935966229093794403656578366184679666802787774382060603096305207932817370730578335818678504635456379157881007372300643649683741680891494993032118642553765033958714763598919171960389132195084199974709686123813854631374762044545218938501232621462583589825689498048265639147273039368842554211540623909793445870634157912015344502752570195631431959816118261039525147143127506878696479417644383535869455392432169839406479492776759927370128306020392468036832834518201009248725752200826211505968138201439459960462262920535706154958728667693944479727325391943391329507247820825107402399933623645725445125344757691833349987646691158642479246499437602480795536161102950362998848956628728721533012200495006557219176375888262023032024297662838169835446714175275059758645136134239965965645709547705738554355238392672232579210184835813472400837246694349591499770376006927425118389904146592875275583963800421259275989217097289859667734241536375750375865295075241285959530744348406282662507930721379136204171319553524079634433460784440506456420606883841965766650191869592290235329975366757309146097024784445458334346799667674890429971954349078729426204668134729841041477863159392086847356419334761469608371109004474880759046501579624588697672849988445946537860757305874344584855598396302803177439665198414281878303591747658887990401414242099288456991809835453055000072838759630853081069722960146536436227802684333839485358938574678404866132574690732329258853448452534622382503975871814405178520804979742111654906041698400805255627260378367209156783009902864856713180324564621283113757332439259670875323736056834468418037791509011521663669770281722754660319726455117775851820718854487919486627988278175456550625877662996694673154644427958705404665230418820800087612119337826980922674552195289942413578043685433947279597357098332033222333561359872046266732495636080632776850781934400964264325355773489372536478647055743565934892262990757509787900732928789312629635008036707353906562715456746150173705705981717928808782312311355035324204799625262721838223991719473962760176115582529353979625955204322707896036803315673686647879537963698140120448803974845985411303477359170249065788754859672292280834535364919636820641702997142625451327864859891607143848186775757240724806297553680864052473450519078924210053944777147006889036856265912192283464189968355144212664490447766374809703113994848954943142568865190555950686101718234226767425483735719574171295671408096252193597825841431715176127932592745872174693293598025043199168637490189550034481864348785661084742640824048183046799791928397193637349357393793426171935369043501036864401191839485370893176313046232806812337039236667526705457646657857549340026396721580762412983852407726612604790606006712667490624127497122737973796980649849961928014371924645251169237751274043720631802431006983615773531040215014658193291182889171912877143464705052255212152964397311543457000708442176037275811226710701119450727509231320937935186209728796944223489512754372374327695145002564319333042708865660441587343040765357829926358517140202999729601416963712897070072681092548838650965175097048872180766774550518649572584151419009154926951412552517395275609070194313057262376776135173207868481722877060780840222090346144346751425526397160025057001773583687820902443986518447616764492917209281498385534921268056371487628589616670135122368937468335517434064282779482099307665402749182358019163994218382300313056204904255430465453254307808624852751183264525024776532701704011520227993972948575862538521129919792732757971995162758471786976365209319887617627648914459182138317900328199033665523636087296782908437605297052577380859578139471618532808145237878636663729068521798506862823523746470812869430697950774378986605971713987272365401485913080731424651981800564808771246028579484392048789654275592571073196221443867820806767692761742953105051254908122486080898198187579952954679584396240686327980169933353729428654547298102118123628685809663401885830831910872242759635643353604519814079766831083632745226567451244279318320690297300095414853276013184978467377632997484441974090564107425041310695904550231668442035388260962001402762727015566906249422227103318078149685269856578079668076698734729454704773171015511750687076438233758967894866053731917750707761691007795683702481791097053157055876175883092797358092043991199998025483002914951584298966472661289831866747490968644080089725908970337305454717256692338630917806566398335676896890233275665491723448129421035042327642422873573699744850876643516121077936224035786978328356641267800571963381852965600956228814176676924945639919217884225827314968610148639190849341120126163571663417222977395421478743286192802404377052872114296716639860066248045590790710255788489720368054419250909946866918584511968902785069323050897531827622384805749858944093555092089079467665963428731038232789987734077469132392321455769901904776295876005251056767940487467660989066383859990722593253839194240619028449462950724927136361213491711009848839496941888914931743458820811733492982701568990053289375368815747399241734154341457343315741702383936032795267577455195165466419400663321672854848727026278818901228685627333484935483775092550951940386978905628802752960954083009379723562247794008315001329249140757911635010928113008256762600914203308002651989367579846095015083639934639945304685258456172169253719042871684864644214795850990282828202301780834475867479140170820897319291324341032265829178504425484995661279805300818688605683079218455488539261532396651412773312507777646304864896173845412203038987148783491936380446014733595095603682967916073919575076680015569155743139971460177181008237247829247892223187064606750519437531060677914508215121649900055421827767381798453220969495337746825082595408899782375290936653757200093792463091902410293699373659241126824227098899040054480705892680060416851588247692455271308073366878131562404069384281980549011569894747396372410316130504316244325001277629514096639311001187548163618276693675617773357614000964590082817964611773869710353130006856190965294247341950473956277430361934473794724703761262009316628642992624769413639587841710786354812790862800439337110267046442447498191865365646240971859274698679808828181194369241019652876793364352987262363833437031195323235763829924489422465583959715658515927468634915038740582746744243181178173526877892322552032024709842368182619555775177115647321941557492551386128660598729811980762112264720030383867925793735571335356234463514746493834717247901296920934575967895102257259965588297774215384111536952921225579485418703335326427146431420629609507942980297003658720677216633552822793100823962340369125972971713661945811493100669509015389732638457908904121142697653276486684928695154771920713088594285194040074702769222621091839241228175291527895351832796553242381601003502771655817559475337378648144575837774709335502728711636339837012641521049069754062706070635610383953387630325061569535186517427957290302455229568620708552586751948144913742445031999101036547567023841176487969625280329978080602053960054330158149825827071403152333515322521629903492347122582592399937804093398075055714668454745200661568753235072185121332318046709883428128809119364655204983814214018967958903122297224373522495268468909639719379247371672247369143331596677523754691193207429069029227174398211449860435615315736545709511851816287760492338086961456496402613575208965816011081011826934214262739043899964053187621669484099470755837061584486334798149833421255965101541643807903109927472976145239472414554076845805034799000575931918114379414710788486737974097990852385957509129135014728733051916918088126375829506320914202913501828821896330887819073652882334806300756434002805813596390184202334542109312627864128440700843166279492842248457099195144860416856231733367060708936745237437006969542520974496466361109947308615636263939203461423559086270107531296783679390507673152936227911363729407102638439941097184590346968887505852453142057860939608307500860599634297846372683616005150547279628268372218940486666406202033850008285799136162110072106906513054202551792634500952826267405482037548178968952084032934734614198760531068238296679249892695068706170434749307326006101840098777001766505782830363634375303910072632008301577613365535810552041361216316474563959282418466965005009111572780115692510856964107164105025754309092389215271758649313473548391442604009459884470734729777614937201237943720744951813366617360445218924712418445087643214358131358307081279005861193936502277547892672449322435978288839036096930968186133254227106791491698139612980884412181218419957832970190178846863860662519047621306596769988925534807957098012373013074456436661372862957205681522653244699927291526148554213320573952527983842473623779674281031849890290054435065304245297812018123177182307584360603241577137597123367917316382244210385667697932936456115834615349131639815242022572092543749276426699702021206382662149033428432832533007862077779023154730228845359457737189169456800883953843587565022405997540692989194129687360117491143201910864108157283991382003758850565067387003664495697877137553531501546856003578051796220970893007601715930476888945912235029115460021437142652376369555593655396904872143914290761210423030825605221540481556626880687585708132716659292741502445251245966809873520381884435226103226530972586713980420201052432937902869171784074536932233241623397479145796339465918709108700349957063176104011266210398035010428011993486412369034399458512437407200382681988347441943769112206406476452282620313347065880747543657015614758059540602617708053093928565060356265361237736289354683422306862177494212674754279682687841025573161505055771006205167581627382326576740133103320157325725736293097137055493948998808847663485466478544917342102830414974731189431445691542569129279347566593445489431980488099737502585474210710725745574466287985699457400747816889399253261431293041273826659920922276452601096630701668448905953268648798342806534715172183557675805219030337773078836529979314984302180821259156880577006655544407046603439616229424852367996080460684727815441143670124368932268852149846611620841160638355561057522088623612139707680682970788073628314245596834744741782693368259086576426011917019401576045401082262872768205664279467420752353607681130880788339058097055865737806712476963861140821144019105185806307676285580261511396519051467026859235549084785044536484734032327184982237645709909997873654798044308586168853694303476264044925073351841005263562366730835421863246791666827842971120161731012421517239917224927497140835186461812166432060129788855186453593291345765605931532218385951360239126410180891856284162229862579167774468429136055588474978955361943395340644887886706630094088921762843663245775017589965994824404694617067047700645588279935739061625261080059770678981384097817245970291556911684088497786851407009605340129488688981387527430466256387393419139286925421056052596518080222115888481671424611046227678685641156154117402396593652460247230801528455803117512873981305245268294270491073849916083605309275003439498776583171623170639325802206805856770170166492343413989492662181729444646247290790667621729335639843746027913466502548675926273987612736303278535287098951051242840435094756488628618811516100696910639485312220374093831890770918621300769741036496522971169917229766956709806941870506723848001934078741027006844460409537502612719085167131184578913247167211195541226625959490866760700431798310545186537487485799074563724644089862049021957325933231244750622524863252438358746995346507080548946101907992315670865194021602504253270702634650176109597496129025173544249938755816824641575190512262827505093776422254939260777581771211916302048452282192497785911487982458824961106223204968234782416155101212069327603953127451220464836105851572551595071216548086187370083687320088063316764443518122693873294804089201762935597287505155461532066183224523287637329934573735153975786265225533751702604795522170279532598218757474979957661552293742720601182617059550351010045990963172562860086933031252740261539200981653153622478285921221087334701437642929950808532739232329706925034189016074922155029328153522205060670299882843398906875025958805802640140340154220497216105522904097017908779817847999027786779524924769719464043680132689937517387493283506261421078583697078080313925191483531995994533755827238535312190628042492521261737037614474775160789077655926999809493073867883340652468871487192752938257065323259860757426050671800915519923265029698335049688911553690866310819809455214242473267789381579706550522162801261402237435846754806894727831322530414952685282138279639110524138276298459457606277326237630001727799276871985991437569073560305917095463120168681014883166465127897968521892068000311956515287441711069249155216612714059407576443958488550148467541961495525354326143035033910615443260354662511217863158267446848686227218323846343102742639882940769232642005697927961851194975055091085453128070782535544239756582263465592373720274066199807445085043045832487170022128774678454912109936069397512818617628374073355985286240347784806619906439871089125611026214510918443826604952714911879957142319904051632252168100628620372083565661690685096647461421033374207422163812912579979155788177023362983598804501908826622935009128831727697543099577163931061306239118437123795729860638865565166030979446252443071307850315394977474901543830478659777930104180806065954301369540014773122758741158861094753048036071544911242162100379831375768142964321005896042804847304351745087445065094301822284098056656002081742597474193652987409608651233617910775846743961137539396578776397650574800562202415935510616021583740140485767621369191415896114803316639876475442200888700655496615984098934051543362737914275192669948645769199335407255865810905901881578178785959462510924723241795328942647391614761758343278238441520985072948514258280374042562243490409701810426453891424640814533425070640585866730202764911013365943319485017442893562932026965949592313473499380976510530140811089945039538653738711868975097579167776556028407520658235477722948014806505390267299498968326799754199429576906788092564591732100653680880990587928623704495715308358197628964853505435022204256937409193866743667571781548530876725800933749487412104853640649051324863230263870955914209983841211098197917494078977186866774807562844162091551592158922535972388194332929855202270151958441007499921422062472271907335669539964584712584858918928996349898898395809572461659529776296348889848997925057283192384847168948544409993839727238940595818140013616305314058537510808596804590117989800287130555632210427022591454907450338622464295415499269342778456291570451660819030231934261630954022291808610811887560618265339253159422643361295689977068428490440818603651165591208860589811076003755844315519848113394578211693243652315955868033207697468924484395054356911776367526210085837502893730766271904066683588162620962266094480875746194236282193673455892673639414166557752550938736759649832411168700068995428728315106830686761038919819507777177387051748022312184238057598299445596200485958035546166139776802856606887638642424711301517173978979938118199552871418301060317056536061910481817512733070110522287808903676923528464565353454887411188766764642779413648940366921964904826996697303472043704090043922495628212087564915080624878909249443733782821677032807060081989216166446966369434364158135892996881468297277744082249903315640445407810634028772344491335649912849806509895886275861565989211101399828653415065115710632396834758699081022309007760972469367687802690976550262867001466436722755547809614463093829885618498391690382693645812045244235545231945364253210757995091594092033076334797656327675134462710990422792449323825763098390013668756051819355434497314516809843704531997058927744246680114229055622314620368699434744360114843810327357238266770116283626704028358909774969271354627931816660392840187992330176338597711210348447445271665860353294111452439309879630856602353975463890629365789081646967032987165729297675009279472249080862993371394577341255134894072696661176012077554326044302684254073074001017015073303143160316071538038036213972594896392515270262599730260639599485113683815879412238939692112258160573136980569621890531980423100573468237047150783011073327786281298929862315904068402643650726731576132998040988460644547374726342670766375451853858448297685302886067525008120345952809494053856046884798023212244924944096511907043093826703169309881613234450868445397641282826048595001084273978893424874519115620042814544515332251561104120064597627584832758234988893466570128727077633251436187664194649900388858371193847323895940078802668524680816434085083198731508369824355501343230836956792065535549388020069253405611803895315023297360702182682821006710431927599794049199800675931797839114092633339437170120134933652699153313739971695026439802045710316131977977803593456233297010294757680709869522169620133172073370879835492125223019375748099657964487040406872487594631109769017156032578597837916741146663883006649275547367868291222493544153366229673460923220717918086630846950204304080482592567124820887269875461684874393851321491463062281197815481615339798589151709456407898979760006643016230797713477180635058683496831196449130475874891179366518881214787987806015663135547572865901381168569960530564480360663717174025882071956917804892413701835320276159495293279042161829379793778561577930085297197839889507906918912112762597176957337474718117819656034768492662417573180375257627515704225504381655421643888914214360238734831844271104755810879549738796269146231359105006079542974550303696506401937254545367162403865144863079078079150965836605577957452491615779400413794032281887871750674771564022805446374403412333533863240103638261341051377652510568119561985351889834598914268425593755743543786586282542891684802881530701682954212999053093577770186321993912769365414801481714507327561262539052931763008725810694686833039933839880855687137593535187169182286471248493942719346210713299978326749339620543066632638870110250686471541304878756874066611353694999622044229708389944451990451184344735260115157685363056005063690752493590451024634009907168610256167954446923761500557044624880047879200377491589122377477005354156989971628914368555772763471410609670589899211151401163110159650697447320073670903727949088971888912411870932625573868877517253731563966941114271477036809858560698635151123978484288704031229736728615370762436610077920940180792950432842163128098820822206598901208150900473724625341595321988027502702670503793702418102419257504057557723544727364648834149624013217800877585112380127850477968150954602459880344667561276527183892578806300500227770705108161756615044757211139026363098626659537705925456774617254740213195202805949653911630464981853969616821398018002926057184461371040052318348315485124769029155463799040490530836059598492966329620115200366821392791583046957690278356447569584283439378497903941568976223974984805603847373189210500480161898375082812069360943004476435180431797783596125638485264478117764278493050912001330785577360204878036403744772784734987096958443724011209478587462536572336392283883527966911620429425089209798069526173686492465957760144261640533749073547477007677257929377421307989681878760504168842292307880733048876920406070640048590768387920400986608083427508463497996560290230526750083668745151547348778413797106516117643410604305403239925287996639373665960146787721652012158376381869298202436063497268559212507839619347879594448572713458503837143293651267788628603004412170661137864512319156954283316354642963269375133198313143622113603990179406432672009799344978193424067083619732515722717501873411616799759797983891545585656026652144168069749766880199488665655992364711243796087082407305794655545633360919906038386786927459984138462306176458128024875986200803870133383497081705093377005389144907873387765573394972604218890716073898473180991069232898314642874096907998890540143290481677653078834097861333405675176608649818990397689287368275942364657145729142503751092911483688457818022380351175358784421981916760954734358778906976248191737730304272765484150425968654514264191883570396332950139826750333382611128422354228698893748905599676865359324200427314680405236293400914250031463233651654307936907999088533017503297479107027246605110446161715946400718961812101449761805860868302499870513048630017894813650499084757492467768757138960606972022842537722858521797858427097381939771807442831025839137187497090930396093759210676185859991653173965137786615609027118529793267272272986238247293607665978517559486922125778001855567293770325573084586614168425394252474619066966042002614450217075626050484021104925415382257643998879989983461896656692207947808164349873079495701199674379533449004939099206377260431650472317834602534492950958405180067421992610247618779616358073933477895064490006687228759985189340419608677843883311396877798927892204066823727257982416794354413146522068908110609444627252025510917314261750449947494425060790261796616986199880374462923992345654607439308432718276529560853013617472220880587544170635565812270538235212109098542341885803831647995966906380238632666689464331607474634267623854905442948401134398769298953763426064786989055380324076385165000634064401792612164484555593344503182138317620080192464771814081242968733152019542567939442987674206981758407721887783714453350546179857040212622452322530438770078531257674234967118814541457639003227605428027240470690020390216032300623666445703286024620100629400601935062372533130387979315866112048483459269497680281991491969467192154444956197765878487975332326049861907396940417695114388471576627086809560807633221334982767670030732486104094419744403095196142366284097475011195846943481184688576020421005542758211854085987938923727394219764160134100913090770758805926664937894087393293528536280513161702091751151073839486282813202675016152036988871962125332304444393181016418292438822739387897595538370381552609600241551342311938560401135214973420665507924488096444289387209124010119785639738474989464043088333296531331078849033107746547813336267907499994176689006133382261650556534370283562084153396570685710810533338081644662050746147496164938018097333628718538008082785411789956839196592474086878885673743970535869626443870606341888893161076799273286421650912769810063038400697988250251587097242390903798037209829644990259035841322581573533146290506268767153510249132509280064637870428070458273827624983929669872918093562921490137602140569006951650463881665806055101986756337984830895852217587425368480396063249479450642402520494795452944830079105827706166501077838889384274354093597724096794434508036727689681188351169330196980195043824514002522541264672827467053577112017342889763975492356739791473003288373763111589382753010952395473952660804029126419086237092640503617099820334376748431564380686918145799097216629816033084481880241428177802947380329460292570649449607255562322735625339018461737053067842890945123372512393959388522072666215342036538215514738566423783278645995236395932110069124534842219009030952842281010634194020942203730800320250412720620774990311567236150399116025121993941828007503206062563085903867725915355138637188787042024394753451324550193839084363388033512262857145605310236545209414280082391816407550279462878570191043995988497446660606432225911017258186879508939460261771438443425262328734151880393441327296292847331901092268346547564175038102905751048226288043860137345079413501366633273600511826509551447415891826811800422300720537312593489791357094126400982061661624848141261040691372898030690795924684664015244609623778928528503523137059982477111366800138775837667150892345255464008279989815076183008903262224160166475691518096592297429796059282333964776900969712271220177295479728753272726733333289952876595356861937103117775008146801044750063605284527146507700156563744964416466516419428263778527820001631681550530158524503410231856703925202069279792719139776444408198423919428068374083522407134272876882755857271514453850529395380276907625163627858937653414354586178221104216193068495763316906173150868800631442080275221728158193985229560635370526892478153816226415552891951533798409551473608083224023382629154208285958822596819864576579312684659034968348741034471165071685825758105041822670578322110151761441918200052967329919172522087706197045273998817415682688381032518459731245951743970238126037146950990323831584344195198633652141997302312333576482181189112623472958843321698310671147825095233213039663771870239909495398592084114757060081238775203669831725346121102200782768366147593205359511458145831358036795708262854974942963527233499879917563568848429308386257644846852633793729937789751170000327535050775097860207979123590784777272302518376799762833867727498997989736836582194233806149174255806764953897930084131700314818777253084443109321257516426992820077628469580708855735921506532599126360791672285933525586416802740883773583236943522043701634812731006356253415895240847949550688580046476105618828653414669207996226571070120873675614438477761441837670587288599218061896657132925872372402554796571056095323974543013769939519175290228137625823694706529414121916850785396907738696373601390081369430575546687450556279034058666265010918311068995854256224479812574902616968139920035014632863202406474951890436893703157899924233124707421404541843577145181106532876576569316508150258506702149249176763367574799414934652611087995660887115971751534664323636554210350576957610192445670781732237289070260113110147761613311054285562718029498206639388165340841559170010365674522232377653023551206081493698147088954330990264352066956893009758895583823214881730970866387452917265449505594845110493549757422977216943630758375682913049793880221862019023599337188320170638925988000216025565164849940568488815322542217036225584227062319910085458734502372031489743715337950514699004686738244561464710715776147424499709986397003579611535784702244256327516001723625499741169057415874296937730437801578489268199033127202349263273562812812942135881042693779511016762029215128350961525922254790454100589573529638094912923398651304382799372100913730489138659177679900025939599428295009141683088339490353208811655548905969517268918722774915915866835388703189634270124278247498018327306958723918746473571327083987797279365446972431538735806180980743241823950844527878471993590702564761334374084157635239260820335369769830301542577822237911371181992360459678336712760032077401035909051015109043092361143862820573618894926787144552725266776559249189791539440164718135407425972019894227152823790534863596159367835202497672451048316020151133756859547770757426623420915004702767696734228629824027947673633113864573340476066355532531117173663849757204181780318566519683744816083614594885886176020401072904710860871891134547295395040054665866987898811168196745223485863520484238496766752973757713294503424455821407571560925624281903002529318644794223523631781345865323872604636800628251766007757158077444900969020112678746120157040391630883356325439290220760309388502970522977042606657880485070778270969807893557889108235715353436755236465743252957247970106560540262576548681161100406170520309129625641527317787711543502985882529017521424200467197713688760128853158429610933420836103073132216962558759050812973665701589812828229013105999789093327030767957833486439133323662102989559437753549993550982395709603794189093069516188889091776079287460110246756855399578915074519534865373867216567974460610259448675126207034996479530672669738257249204126806704131971249069011913349934161344856460214540251014317707362246458891529871621639549659205301405049054832599949500454472108194426386454552293447524037461458728199853271414089912734081604092930105103937564378518543021030177906661754820482697966762731538712550670019540926812112053810116280480448518687815300483273431293076241708094153069078622514128460727051190948166643549920289697940460156634101474569109430749480364182468735879624957448002861729484276544331223289476690395297381895638070533798046558667481964125322283772745165079589833658728865735345700889733762580934410761552466766571474303692948188010760215683839953777949198896022848034294943056925880901259065266895037021320472693756754347907107014780599777834166782918466467483948135479591812237914043490507080056497919188584060567548521226805705033553356230762526640769955524737894256552207692227975358382719281335394260842416273093456048268787998193933583788177073653936556599817373820684221087661740088653358766970418515206343405306994464756269134312625063029120185613018218973037359595667131805328532871496080892370534904166654123045473755548290068065319573392770647803974767832259404734840870483392820979663663484103526128718451563523534280056461713072799832004471732522458640054869658840350779032924391274450404586691909711973370353903879961514184816258067609151276630737070730426566989306298489088087199875840545069973540587126409620603298861289052942821163453286134488204409132036292641700857071771080977045558093792363759139636886875809059369817878376779270883016129381483171168427312362519994735899072430673653901786253721287830762197788540208164904203951588295141333322296316990688307179133414852333296888894896479492671700977764327496270561892981804568298076537933144885964935280559304434744112678855940127290136729078440635262854861621087660238672315641023693184619398710822970710338750889840118731908931085250495789775301819034939038002172735102838992244231673748683509436357797805452810407449317690031272501665436971302051314918816477038245371694917407085743922702174532287092433777071724655252567714999684815315123118515895907747825382622329593253667786578645220644999006995961663156887115331601347474027956367190362701334527443327723862256348527549527802421785338905831009307568898468952390158834382323770823448860290128161389692020436256058768718808209664201816713976391698675189245363658660882094679291454697105750965649590585111424675807617408423630667422795939884553814063287094217396813315697886605233946454110574994425569947862734990576619727343195499776301043877828975944394510705097175840737608793332502676015944839017600359739030649689549004334342966359533859114054425462622878156605502514316227364150518294559069936214025229569423658885999670818222734959574127652284921024685837747866956526729538822786776738937135719723406934317214883256783166111282924081571404201252590369224058924376051789390646878232265403216288704231693501901170468309849858579831030820500319875831698473145915055477313481407594847724025779249067422947699211921902055267912915334750459780578194194547029254279085421288564189811342313448310856148266113186841630287231057287639862658374846201020979590149848057645175937609011392810849179482943525856779315994564294685211555332514392605754509019100389186842915175893395047367656231042034242876190060125799361584970546442003301495866934739167999059316710944209527721947124496401486884749823717900682358746054719756772556937582224178204358001158711456737931983476859903750484256458226834484006044955930120431799004559005837961453106290124146659615544530567637961286000520371984643443829493769533321991888315210679742899385775873006433701204587663510326680532731791165660785379132505457677998198594741251001153932976815834054455620230864977132950671069324856621114931501997384403645163944537615027894982532575293501228627784609914336807039709050540965056762125593544983334074363713424129464400500867802214257161520369098103331563414019341748633386555087520337985142649081831957202135768522798658453061895089994271230240931210571685833522664507142157569131789736736036065805009339804134467043334037299121825242299436468250644747598773329672148186552371414434014458509968196181983198602393902538895515719769530971045753078608685483817027835362389574254803786379217562150988486354192070403131608124744903484343647852236431739530244603509310841930164832290805136705993118920133006513808082507653354991824715453342976582898169616287376783700426218623481042714794035687159725556645250042330703481107553164170344364943159804803810239768237454653739700622224326028417029821039743490099704067439160635033334538808839528369178941341052310414173116751969191192684670695378379140043392943991659168170368688544744873069203453485750466059215376117078486311791809502261222905813662968998180576822145576404683065132861494015552014597205784683413563242180214459333697898622269117316555062648660243341251216955466741302354932779200609243892284999002786426708947079932657878434333381498647032401224597166405771671814644938133866005153541989016904244780339733259573932532539032807968359007754310451353276805254573819086832843587844695449769012813406888086653104161896330697373139867485596386108150525719330919990474912063300859056542681427098999315423866499317540031024295084313110984925426411455041015296501881531745725375139835299677062333424585560357290836519317361953978575207890367082681574474164722360302633502742443913997362881872135397770123655174991947789238187755888097451140373749083513290607572085651002636555443260275242361236056179772923071758533317350209347652993822610721548488552867543499525980733350382975497008608126553033545449642917214314150772927616089754920932413848144692802663366521714349545593867218151857993006694789420065843560504772841033525947357379590991340984383274002922076679819109295407728391891949372605424145636232114131206449291497714800474640604187231913434438673753034809649194334758984797980402925666713942630707122037442089501222312488300436889389105572535726529452815794382025793791635276235208360714386704996304616090924749536234320774297215842610165805395147886053035368934738155353389028309090910066296993900640625884449351407848868023407061990808032719415512256733365707804155856386547466684348456473679517423467343350076180897680908598869039847600457504109631892761343917204574406715099637900611884791338864846693862664435033927623469915078046841586517568314674490812075608062744255121109283619931644810013960902397719150904778705787744244081544438143685909352714436659401308878834632013770192761499164977640797265829284258735753820427945284559788084552460734872933924950610150415754504802331715615000642910138785847558460703837542217847747168524932036475902084840623609854065887974091068980513164191729254816567177723240181659811569140817743063317022790349331770758823066530686893988316818512335001251438237534282610736508156955919420061078676055461609356784218256306913520503454880049478997537782660059405281102473371144666834436388224495274840450356250611919589990388974161482456693735360982803049680359173337535891146128606210801437536741451077060936110954240099208454144868353341547625879267663055387174795495049781677620261201052308997594928461180556945025610565185610892649659378274123898807073184887218058780736538470950953039276396422307365586889593904251288647108084381262286205675495776897978983319115322290275088490350464896200260447698365291624851527879593401882267834868004600170447125854861103528180081261978653522537969644624750623270377330153167987708750411933393691044891465337167218486327821521683276282199702782470174867457029847379281165851927002873357886614089400591721584276085664037404696603340681886233385334538004622592633333259359803038959594568250769185334685813540864679964375468472345080948291614061477936250818249694927783097573764991565813941357397199965951384391597054004734212860159264573203798962657982369903274642166956264421552750834464868812803089398270295352068310173098838971710030656914731350358548708337999883885598543617608250278711198040025445275761749338828739857044073006325361226550962562357809696941215065395051040001185197116016388442652580598220806778686078712924955224701782127527883926353189761814761762114739728730371741890334848522457811498378908163749102847489375845701911142591089423094749552501297244929653037866769402028228919820754660166258322898258486412696438317581247291896277618771532988232886440555721667631249707069917667434845184105661565809856147992396347515328065107633854678198905803853461710206339391800130859655660694173315606701755255268457891295684653087794363208248883917533589035684854618365538471458256578723855283268901228192760952953426944062769669471958350226095468495869099381991721126603287568004346689311036870700654975873368861646156685123185459609998381129869627662688264201781479173116287143546026571021835140222717023164337435418292171548944017449206776524682196627932041116389022347175975062489665909489803763515157709846148045469755654896427653923741538008985971766472145422729581372361009149755200563837799600971507338693389012431751914611464258355028853164770042074152720093885537031729475757719425690960667467426977152325516722342468288132337179399224759330586986521257070902922117695042063207420700163246756196515491483517472879221913360217206342100839591894214133540724003684452832108182618402193114406789294973097356179291072071336482602755997180074284083485233081935679067044987318452966445566811036134014970584326044702629152170975742389979065035252724123360174293497442190711023408527772557761185262512050968984564412750633897585406511748684290841810644152562078431644545856957852571708044700636851562090221672878262377236873715489334901855967146759373701268185021483181860582473166487788872395355167035071816830266569399404932585555932108422016597312500173022847957874546138413688670678675642639661135226378018921233134450139243525877212112934673492521634359663369513463915304993807163465076722320124039558111553595869990605041240337825106071097244998314879299443771073512791515278852540608199673412484283540862417716472855189601362632160999918434137645614544721486696480912862158873304680287592755430111097149004468121506831058502946711856529679886623670216212295298812175615920092053578354017471059090168073738266858917733900032288016702765463966894570315339966869793186263114768018538120852286598614683538735222891459113895563203748939062196354067830317925806159491209313611403568712210581334075793878067561253414796531675378657742577904261989404788348466934063230297184965640004717981138332203983277840731346914149064279566893854750834429052267984017256623658573277411681895455356079459090173073221431570228533284273991615170906256470028217387968405324123237988836940498385232267610134503097120302075005332802379044002856500799248480965294847057354322411109026012827755242805159991448310848784397581908984793951997876802810260830612250677799459811534223397534490717688244502056520575384882659696229550727778769517694152392795034209738015873629145515039404611391174448249537096204051984071819912580738847106664865714879908825002007767929469294491945427435669778725126387198914874791181916039695594496218278555869000162735039686579906418222240796207828616424166854223823249850757429658669333588023268348283574556015986041132141377945544988812761727502242269089937330532890282248278760986090374124543166838595206829604780331886402470698205744372353036479364343939505593344202795722653277201206952044079076614030066648583916615728868327331601737855313567304086544863640276845245036309498617531543405639828795273189308173173137795048969732647761170216733640079237123112676449717085196146735532512085699121426085530293951645468849508240739793195797999107181843963902960950756810618282012370037717700571829500976204729165729089210136997377465575272199716761371843346891231858996814247748910174550193078099059756827144055385958033606668499047837161759407782198707752113093412741024847568289758367728330160865695057581433864658700152268829039234206500914200069550037408404636792099538852210748176473302091478282533906539993977105566848030771776407680370596408992747735253941686562190931202102596748608088933540884911484835788880156500737692372404338952581216272208767043391679966044856797098849444839420452755088473119743689770476518213179595740490458286618753529246847324140569596143561167562885259330977096337083218502740314503384196688110479938696874533635055359558042051785573980012192790442367818454245494365933839166761940481754250773327138728193280333835805772284812864406076603434437325528529050345551340446546797190604288093332485886742585212367598850395473361820291448976260640860523780466758061100304949871942526184699688171320244890577770998888160208432293469315902065075856479996395083523628703670555547916880834549564902279628686838851473965046674975777890621075863742641539010240196675351211062653992157198803926671983239438843989673525497909090654204678537368669345283859911526374163958313646767558946964408947463894201575033261593479303291848435344501807966132269440873191226696039100092808819864120853253815339745918994736021220786891491418678411497874243002806003440987289368774259972014884101291505771640942135275004565934202639913884577113723596843476943716200456921707763739317029636719777785810847987298919221304632255620575972200193413923383568548586193793948082107487803041959701970349089219363397737328076820876248225526816904147690056407767207513042597847511647797585914736793947826122005936552751854508379108405784072643124991659994207248951986180425135101777666250553065089041779537736765548044377487554191065547543683950255756573907471187709628284182113353950873225790343362821260041365833319137645291100411113666188144065728573406609167085789528124782326402397517146259099527712931672993490591671724243020264409831324071966421608373702264848655316314736874562514150090271297681173917516993534946459212450287467253410620153266871099346344275767532389773496940637988668996396309360065864600317765140375883731929777931046357621165251367785945189553293301086381235242618358086984130536600500547310137870346177613364122838159388652616251401864755140520398617027106312491309338736052271068047421166071031108380346984653012904470099536441848060668902427409185692547449067631898190842968117065363778336361118236483217726215975320746938935377715484577028757962275839535638405780413149350900711796498799744080471937555891172879424333826108603405073809540087570195979484327769293184285487866885946240305382291641109319321463821312265010367808186877131039229840750711340799477537091428085502264460109980081963844886701384195141909147014902168698755610980046860419002348031176846048759496943643604515411720858764988991622251207620800625311715174851608746221452407255083063362217832755783332758361143033006230522230672192776714836817694778175218896439613357939897570699385102424543631359848646430703027500362156409569619296819435437540464726744440633951548243994434764071288394552695748985335456467563532689246633338412254879237554210955101507189862463005525986774566626835370198074606128879730986945046606703462472830905320245893279684290384725768458966309855799902321966333375447548375056515643599990788292415297986217409734179573331895077138190237957793636767689862465932445101787308955025322456185793893191375962600047060850177753912966338969025547410318320487144953816475320297492584057744155370624708911114996214433064216923526632849518957380709239521136302834907257443985514615524480956705299314700238601831713623837009597600947779274592001517241812890077374623115375307334932165432733104693124542241876384005720989978415164210589602856205738719124513782562676762111485103596119464764845099260817330685942920493324195697400503970499687778460522495217622894481413429758277745014401094599264130452769730523325241811443768003039678143574485150449424725434282373818964584010517509281853297687146955778067674044403136370504486606157649089424373442992052978794227828963056684694863155391168570111594602616553142019724484006949413207070719672160125098462398011108567749762131460502014455125141785783017980049737476601358198605497081062379527825283384676067003963605049126769633625289666164625623172344048426646677574074509313631278751524597531958419152307997215914283061915079043820951781296544485874742819584373187207317051155250473059253055872594920304340634757703441306792668919474713640819993358305932484562272939917905891082771564708424828266076890614705801476856429354782478588305632143246199027734766641174858559763509112049427639888771263326383301627670322429499267023386796261959724190497537700374266356858970816561549186131072811796787945194184380217703612023514069007782924753263396675311374507162427397505385886694482731947346727343519621273370619580154085486115041756154766366908113061546799417680091012549039981901981762237493378266907903005591916995653851294439634602250469144959323976658075196410195397160834998581732375130666659721731450826097749495507140590669053276792248827065321140053139562040259005684243089144064872571473628670336487637250459429341726490260234764160284774741614822611746945114569181594422705767594433370019985392158376564008299015505590944420606963819392250080507268127481824298969300072092350676260979373048397092396027075363655674764980932614036313643044668328634280711949033545018461405302896181041770149446236574290665145813452729763070178214332494770475063365868863607371560174386460103503104991289132091659313911884516081371347301101043192001253038516018742433745476455986840012917420679701613409382714921970553653129018678364358044991971320129040978006959597683319077270968796696498385273157153164922759489794374838937292141312763784852144482435424777091476591207776133769885156446440884870769153961922340706672630318750978131346044372124792803980652612891460750257281475400789158004603784133379285778534276781143681677862799087329797034786236130795130494768472014446452303250516451301031737035287209787633536119932080442377316727469272649584857896468218007498903827013817059005295043418002997154877024854511931634864085156091741049408753489510668031599320961974041645860756358451051040646816852465037420996768474128484881402509639340369455792725889448392430219622285275795680583233854942103075737183242892599779121854278157558866543423716186886189644839047221859546627557462060764938222262019272320247956049006015370841481843946586222191408967842738337573519328721011893548921089939339438639596237854318646285748180305876320933236154383291279155066756457488320088939437166862337944476090422125380649740480019938204655492951099696108499547493283200607556081959234617355060675193037168207816573473007164893003343380042071460714249388626783446320199775200527050457886572587002941368929752979501397712456568485314261206830040758699358056130559785474678567941035682606532399251235537772880257845814975587964430718047394888438123300759013906107672113649022355980195904212806019353029111482934807944922506233571782377651296642544787536015914304192005121059929881135900421985295814605759397509979688731595097960314392576741788840301483506200344649272379560313789739473592078670731503082269888291658718217992846454468329284799532329157506608321161497510535833893950091177112114161093882235370608778971547871317675767575754861002857808245842785205147019764053963759588357222860611590178908787723444709936084794806810979926805462842221433873028961344095604939026667505212128087136568197774083406765888383009224661409857941233445020244848939363216312487528942015987152240074265153084025882088017901892394654041586038711135793616689999875856466425211515555723813342420440608722016330786548566065701425382860692484794583298515166782710306768523102868384870972731900008936702660499107346571080759952557931641943377887862154040604504988252028882736821508440837181639336937641383666682203383285262617868125340572455001821891525097600751831413276524941164631166135243731811036026681060590282564138103745387793003703952421517643492155377945051123771380908436459755094370846865267768601666596890146001155496695638931890376498998142383593039265111834214002146190248493344110987643736219559952019285444537959962788931379765370254948015716066553008357717608345895005953083011333245844736318294929719557262172037024531394914186418385507234171922916837152935289973039058750384376416258225951426813703014579141514673632421984208494074484510852653533397752124296171862675760268577449728077844704644372922594256148567931563163665263355768617085092095219877076300376757838341054044586966433079414521479151613673380020183570865634492611513255173003217912070485431901183059155467905692372805241052214798377386081427740820157641788310117008904772537708663122990748968148774497685682088921265527206712334566676763334815456015465734475509396804378688675216697830723881184096053058930008473395174068764469993657042885235444198110294641924524532209281447155209531692435732667476585934035772944283150924641207245914509033030001368260782806178219554506798093841901986706099881338600111536383484373634916411025698327090829727536094108180552590609817739213395050248815714231678233828257636424543257946645512526961621994898542056331372817328894480630646812173040687786565316895690036068367168737050536246334732396720062162390402526588408443850095973120040037044242472636217527136155901858848470960061848433023738295854381131156809650071252472749715048283805191451363323820886838843676467889160498806897396828849692490266002579710488932840257411967716408580737892134297898278816747458554422640906719310431885267123506140410340481483147530133726594969368288292407085026749202156179396945366675667097522844846875626067477765203974205596616140670675325810482383032987112765674243986014688581337103613975049689057682430012181658984101890246361475777312292758071874007668500423112081599656598434214669622739796535846501345092342073735459450389654439274417453676279108505817863087795003148405372367061778711228726177682973155175604415832782577779055901501566190812349063810523014478016819728753757366116172802881118047668534645669683744244888000481554434188071631680438881462441385318613422527751119181969097725050761165564005365914260922534357695355447370800639661533213588076776909606173930240882233169452703638537272555923420733293821533383613493378188604147085462216505152311350496181810614640469189532538967778597323842093927235670215514723550315275417348725922426107479016888631586564733945207205940513200381152734732812280450436148946628465050757186688940379925655324029267022060278584802115858307630801183204335622916300956680730431794008672997618490400447685710843330918306738728946187151546802294194883435847501452944702683704845927798883450584645406699608835866512044255600157062752486894106774355139394993529001906312525250715212041091586367503166958970983711113899990461519512231441526898758430937754517133619661481584454014874922942511536673869683731537648328449458433101515065290203442453139600864567982859762370782047122471058378193020497694664673210831847911268077910350681516564827251675137020323992863072248331454981595456528020501760334293620702736913648370666504920769095157688628403733327938291882273571379191813036908966667453291127283791359466861712952703162418365239078522047511418124039228508209178904970847560418058204463253066579293356150695019479054008517667631432313918529855140469416037494086443968828481527602847132691285334474638373623268100261725698045204519810889802199182878410766950472201616537784271123705124414004624729916145363895927803210394550376417047183647377642379541073533879536738617906372876078187550551081860898407286553230850444501436243063907481211729165699901645143455195714692557735974397279278706265495646180579386107279145362722475986502912207011749589081873119721395540211867111830485047281872508069395679345000681014022600864665684290325573796587815758390968504596419540019454968493281007956290996525270689639794127738133215567186373254212105294850848323477491161448896683226954238349035885222417086124537581742004336695673990414394924940532284843723679801252396007403210799437917210476986173727113717784652525886085451522729699355959482106982296894119978479418791113847869119671597020286073493074424085967500534835203283814352521791564050005228030580250192290906033445019151175004134383429575932025343114808422165321809101326665636510304820338516458805855329836897359811634107576361034607660284288435623196414365053556398788119625024370408672138013043902863649625802604163516201742004599690046246900698987005778595639286383758747708527057541133662972656957001008593459282750031506325765124113135795864566304739716655602633013140317991436300318747428346770534470624374503978391995081739920599897069130012285475943931260670272058757692224541099343756811790111892896001814703535209900256625395500176289801265668906725324661765252124551938561154166404789792909206862254758593494967386889224518660891504295835946529239766526557005964076254217356091671217857895683103288182342184304093658730900802953903500062920690102892130107793670797911310787939331356787112446917247008685448811561622083591032776209576184235414132787934161938719293314622526928958006099140975452419311091246302266758975423006515447907832069721724894796841504502840339952977414976383093123800541738887463989027233232488703527409379764257899173933554974718009913477613526260415854204817801485721865935381609476366481373174925367752687376815697549293793614147334775593650651971530238230810001239377262587434121092616193036403575410063926691934977607270229624000917486160595694759232288533466439070369237323547616372726487638966554151455717514989235194334511504759082436902293075505561811423295710187279912413669377991518328267994926838674200699508264205167234987374352550108662247561334676707805428198765426907444837854320661881421737775762628011063720456580811322443360109397712319489251252668182585912688242926104613195958432649657536523102637130376617875139190189919185384782896342738246209272938847654800597623077559313939917011711369116801359783886324977582389098053439184916474293234804495381754143018943740118655478192801053331997524696042240493337067920789056026233370605280393035210260527017559913814396541574172741363894417004911529206624427903757177062770259172952329961563127167760527294295262355215815416717876206504538881990508104150737193734048767313285896121277662896040026654753226701918524348685044693268231133315367812353740507118754423498029711730147235403734112235272220853409289163274075190866536485009534271784015155306122992432838882531663287895650948996322621527274493445273189130499061033427231315052106609409295580993321241918272716690664613628668944900224508505173956821631482277105286966905397213890759308771490798576185624621009557696205878626796353124882076074331676671852878924344761114189918958487158803326141455527579272167551489782886246145765004196346587112615576687246148574464395438607668239545047633552461061529162005990219559216395432370663430554472254092344728422733089350436257358241068015780212821628844460154472690534529064192256036787076789066857470974496234041341206876070119628047988237201418725026047394864711871529222511001677288479751338721161412536135897241519391594384527019921821976481987878443285206102126850953348809959722160710700674886368728196869079040147353345863859928953965539390741342641948247017654717324469398367007661071850416077465878965265193261011774321597973592558260579405720543792162004585565530127406383215959355033172611598985074717771159420675085929786151629600041855231576967556259632121116845014887136700839850369931823722879033190672980651300352324184223256942067873828218080707020841338813131092008982848831556849004435985597989691888835369196890451229065893127498459798378554796084336027523681279138670780736431166974493028017498272473105187948527268417073283721508667615770288554587671492501295491601873030162160794568209830916488729772693009157180622578952466700240635862534182796545865043302312398321419242597789518119527709528752269280571007437765567921596126121303968749865934946218357562715195831951658817495254458052363183577784178544630035724572640431549474750263821104790109367017660805414719534486535963330361193841784180531895726812017268437645250511972400406263798478671290978408561623001681580995672869885881442386771330555704863462445686618145223716920063562649551711178858487139347739638944801591880105530312942340328726711420491683713621398395214712303895696553453901187001278285112453195473902079193291861206178300087359256241989147637342860429389518274155521102180200643637851979908816401365091145094077925044480674036817102259453553389310233305415002743189756374332600060961903376574860572071401421439549303472756634919714206189513509798369891792523214274223022858270361086593669926299771253935403037754909757871898530484485074216283191428268466860173960416069394706307791755482604581279054835647395800437153789737518830963001084072620261641105419329310330529485992048121439058894126366480379291956250921475696288850859736966545706015293831673790823721515789250105045658015253676116538589261218653158512447468716632230714990391069179186268626811883824574586781840911957740390031598923205188724640396007229565255598467297167801240515286205156412874360283454705779788589201843194136333635735266629618955180627993201684325336856234700856342005822315903601687631332561027701413371219770623864207799999238003639307202082491809365081296893034566567385351989806375487031836864972401694125444466065319203605678494031309598729826153073459971914137359951632838460175092575300169688415304733263183049066328304623281148234197017068983859955181522577405629469792971228893012410431615295707145710671451925411605142263793290204912562114284040666469415436375357283648252903504792667560288641111483372021620333093305591741778764635767790861897308077949581510100660443139782013617854094254133185967096247649157580340125497776091184989254731291113570565407209617598599248189617825404509952019968479559753116301438406459927228304980197479860317845952849301741424246823702664832823936070119131328187597876275507783359079465377149782344333163525153628254904078852420795598480766417550742065278032978718823429611240382268323687322602815478898611723141527638771840414521076714462957960476767320686259382885897682687194768985640567079635634728184351395731014562938366891018771235607382382466100032972201668815598943609937325633168435434396541532444581312638700067033812977660372379351437129889300840101629032013691151365877104787291503934450018287240874978556426238341983546822647562308612862133660763373678426930500630262518035502561640956045271797196002358648763282229022698874826922020496353081052688186405297997898930381906308198898507935556744574066108907135662043061031818219197707867519710682397825236919586311475575699952149432424203614971056834020363285842571976109380204851996545278253843146400511610800050695622090280600323168115476616535388663623861682563199945377949710045912581538172650785161424221755851066340952279119618683707935605932520205937004582815351885431424921561053266299937960170339067131626097925871390892488142263263596739380495439351594987665164529608770792085937570784150523707494664761193318036409581641884526635607236619637605615915074687064840545538777211413172223781012133222156359403228065234805440924907967954987336367907899565468776336995239189675886674814780486155946381727904677906592504981956327920744170314377528359147744343065147108772416776564875912097373517750148522111373037660626475751589497390065561611692840773455978294925648079323714464636740644372663109623095641034299793626486782769490086680372393677934567368417364405709327800729672992619333913693283895039187685729653052443986733412884347561000366350791087429775157965646531329862141561855817976720452911807027379466131071023554614951249057836584861896320065087914629814327487659639639228752845404682617511863350500115602138111404496771678991237540312893906875226152819008609452466668651929486567305998776463306987072017306804433836721257139657221948966264262092220002254836302943854593784406792721001976330013763048190578672596918430284341181412102933525032150639468004033415905785055309999324631475857551976392214400225117756078407356952115232655769408440729596114006294442918911498463429705765426068233660028776230654485412139212823851010140361408563707011596715183025424705669377729661168969290917917305791324901552963638569811165375527066378743318543506572881000319530535900204075117142148780029133515990650394233295086018220614806298515817682485988642537582422944188121070981761040782546095564255442970620230803425646290897106720470876118708396146343389057297599285539829005058571318487684392733361294397830537039247334807174371221521221913629287953615466779448185913456028817788762178666231208306887355683643015687187932496031490156815428722082511550950454191213357167353355063083119202910619196050849903663738474374524321383635494175307305528326580662799302057263438233793049314398471477026055324027626817652990255513741069180002951430865906519735038869269795230110481542473622219426702762392134014246955684923489556226440884440574542593596129299396872481176972769132071951270331151374248518430112112704853029590347340384156270533950354258903365867780084935869539283737148019759658496395820414743182842061035067465390050000643382165471294351250309155668844119972254866299866306500620217989623036806456251280891626941165915871562276845600302846504812462351847639159737847341771937919288771841044255336804651077680057191117591562091058232279680344106716462017639802404090081084993850002887706600036688680899413928328697733299461416142299378173347415704949959020998375549347697570790597549436198501221795022922262296998491534026426066795523904071457629643207182606081045952455411837318697136786521488132732642749984995640942443020588812057411418273525744297769865188674149167224158495890132560216095534884486834432465736351154456217987155856656535471950130263696033666320204840321337986972598609544045280304974567746473366336034900435853051723573122727659557520880577926578630009603147177278290538338125183695790036956313364623205710097291305702748147902921114149257610187196483695935413919750288805315388279347708851362991352926078536921279979265722724836741118125394674625155348183010852954694132364766564353191874079216774639283272874112370178746298241779887211947157809418012167081164528840960013680570278166454222661255204794460659364853470035862768592881884355962273015767073820393898258715504432935746519984648866118067703530348855231207295203018751971304250310908897407295686063004173110481031832236560131189145229445752410100375126902479049008101853597945862411179656818030313542980443370710060185368774319728191063590757260720396496995489228129682492332540304810928086264652389645271525624351610268191353585314941501469832977955088652007603829607811480734216726437488527795480047489792440899801914261349432996487497278665622131497611569925423466626348416738525128689941806763015890346535702294101568993765700640384368087399736883899995984333706072233806011192235114128162795918260676090917003513053619002630231574938670682859034222976508606037949061665844176686306540901786620851705976462222308510260434974233280923791806458234007364113084655149512728275793002574061601275878361394836822808937380767146413297506340539093835162318738254890240165834693078064869232863791072686266607575976712526019515105792306756573687144249842607324825295948060637789880277998848279912421861387378239886857162360162263847985442809459887581807038368443832901664622179295212039538203810419057543592810915772432570625334238821942730221356745430355234340565306185545103101846511773274893864070366924934165862312814331339722969435339211000818301911049155037612400173174306884141096775071605806695055408089999892500817940099250221296497763463439861587216214865694892263767722370545308614761014037310350449024048483701558784045368219062141894657493374708581433596203903885563381680733492446532119265822668817403234981466347762854441983609645760748906441117272580477899405321232359570441870774060164586392823389535548452492039169821220225471273125907637933632505122771859063519449716483379514814530071563583634882958209483058445134793524215873785670007030269079623835660728806224347287470488620637707661288932135548977926026557719105589332871139169304084039779977872892506946174956842981400039144957887274726481433048820928228547890677466092207321564979651983232543303818175933935627748050563171011134195754122098619338766994853499750307361164474344372506808400739001565660401878986552581046855603610232972517894992244438747412846996189277010644437323050644972407711612119238602761232090401535084964182547871816809185329144464946239569073530118210088940730627422991705547958786685895765917899059359871205476808848129669556443173143693594841259594663662551486705349320211659121358985553419471048665473463366302197445049257011386703852517066521142161782457561256717379375836876770320161352301937413604302241448219545835441755077517732193253144796231522476274588415375412836842622522958212602664691133940248821041809245992215939342233302863286402114204630195822841324487183682369961674137402193914538351479060381092316856807200748382421867226612606345758880202217849316384698480901796796097425483721992860349099932004618354627100020342602292201905155004224411123162487106928426311157173063699889015926247058792004034137329527405205877620530960504381371839446109326646481919707393817124386834474811262685384208130194591767423506797955546406163024558588228017711636606392467328726775573875469843881323679847396551991496923479610701028898563351739598679033934794586204821717184554627755525761238758153963862404671666157862910588384175511261673548129850728872698397350968938577024594704618181858745814619832256554055338881840786694072944479713742150397445639373243954558540261592253594877390782614442521494232692769271586745642700475311355046903435108951303222791563426590118095455864609279076442388780334699280828813182684953931154117643285905062496481471750297695737395762673260305002534750507569106838115139076238365548957359352463260395247151348816142125949929715782678966237941805114297748065993325719973586618059154496111538081143859348154869232857456431097573851758712379931445045638727079206337080245023744685860526203148697215657088008690852527686736804791084841010428097072211834980330656781719962641945697076372402415109952209844738675825936805047694733041373783887724507629982867704090102231912989040418500038616169465265041183456518863192879480281035253181461899946895862972567628086187931427515716566585050671392871212117312671216099120915275519025038048875720184935983936965935263430645438377416546870360672649479055094931453934311626288949354052913733249372059929751913423961838623073538785121809160183511215186692767176225737548900623841168080044320415363545380860592725856701839855555797291102875167953490811239335249194574773150922366761532640591616948070746718055066525906990702551688328355401136324738979961542854738802278695438048850193051400917501130585009519346074151022450360484172117281842876541152598466320119736426895450125133851732846574684049828571704139973092560150970462366441455363883564479008054765887307048392299438559980827001250258932624258269616058559743337353680946594478813678237451847596822095704732345285386229921923651721535140437351004150561744989553163821087400073898437453833371919215680421772689699537399447577379895406486414033750809518091068617989008772544571874176925762446579134753599547855113962099929248033316512501254073486219816033209948241817995081061970489377302174075542178182493005619509962770364556351181531469670894528772422923285558806219542857122966515558229513316833157072600156531451631517862330112131997558729355459610943895104240399801673373619650428606686542833039713477332222867470010810067234581628608215700676402405642505571487918995999046001125880673927182082447261076450678959962474800289510352152081662060115328511809989140183118227063221854052440980464931306865242328687945210320323844306660898000093578533216640594364882367669968168032000268521351591285768889913169176112565852201158637341915946508583395205853538382275093587787407937407420092155070197689548009900642853577082539164913768488126951716169953351824387146955516151038535691828677427230933620833928890005768201862862312125399607140624048847815694640446140832521295909700469296847103021519840617734880805320180304735009392226828671233710067190508735672454047191334049601735759974383043109204446978516134007016988911007030950706871753876890188820091865963092158465508467505414090187507352820795229849490204802406461123202091632303303083769892355461177921778507267384932560498182378045630971671660444450330916503176106513715260516251679745446803493947479920378995058408569958556498932484292095527240158832547508032685549606005160611563807534551333234000703947846257864138464507890227548261520397780267778450159178503944592487912884574100173559812717058608063031259227268998678259120267768429974435632361350540454058996549344740582898129278176478388566153798180255662871329927951153786203924270236879400297095056163450216384124432427600676423799525383967274990281552676472938045433631715792428814544101584568600276214241105656809132768489998319074097089987904417424885657651288908971147838825121017779412436825497185671374728361197465692973021256499478315951353221237826473041131018063064310356073754964360314408911139649861397221654367622451860672709519759902369421223379568492351020722059601733195240606749961040656776244906756133737820437640276339842350271870012538672271275653539657067211903951467598472700836187337267215600535718152009303862214160532135122807981139421047381856342019525195970222675211762485193279596371315778992563452783594574627423908608643213760722548556935970055293869169919325298789489729947273761769095525033831026661842991682284156454280410807618450203378697362187834819535194115107726600170108509455991591869685923167373502416771524860323839978121395244651090158482438247586102426477449235771984978757257798011559372661973737248388296900933090201863310500423459886492719070801767659887610383599328059046806373518657767790098591350759357158352143338463888601986486644237967844210593606479506645824988718151892777693017019568274428467546157735881318863219860243446868550859795279109633932513000619514528171260702345716364570235578720192152320402758919637125924055876754422470882976688277680480286141249952909929559159413785070609363263359957422425518960815360129779954510842701283772668921243689174364877250697300379408134113136260670220892922629623316339938858980447040425237446354629238336518430851063443718587574488939991456063150755013701023788548729351821551881354828858870808972865881343180269486288160598887493828782323508030223605447840629435776885370809625525336206361827779817384957323268010549052307288474236822213668300284563946788859137237460716818305943052521868729207618719259952861548063529569624419019926164467974338660931365645672610713936477449185080828655277787782897987455640869872909783669489784750218491452769550041889648241767022166259454268336080885672458038893594224602912708031640249703862049385137392672341155986999500733000179200970388415497207324764894181630860978807331518876660973571735150913349941698347496369382626539238855874831652253429235625911161915239313942459208443394784168318713074651616449289042893694978516625065675598725032987985144857908079344982352493569008033718572178717372849939245418079771479508208921269616553419020104838369036242057371248588642026949913046394425416839545419540875495201057981233240341983021945128491630549331925944633179356372906692338101970841983570050350942731460310027347154922610967425900733461014733572780767772008570103117264088784717038028494175113982813154401680031972654614609686893699677748317969704291580330110434088413773242275843331216761159567127738970013247964359819291620121562072861255988470575204756096205968187044526705852062101383927058294649987456876165073707600207749464434146483023646437609040084193424067590276464318346569259216525537907023494721220409341686495808063873531812543610006062531285042887876633237763854520384691576281147681119326850373889404617960699819227242849320731697229426941091840255610108622398797225365511043295178336671670419955643037707911348407834824641489599381644421905685690443349435610749476909664564241489297871389178537017766747107539415260857025939362594303529025926522038254183508473640093709100530532069465443187511622731527713198458589014136558294477985415347357894778515958807702066647855722453543433128514704897461002592365494102933235695981643153081686883908598435212431026053253178935148578187201570456192068678388186903681555299412489401693225588230106905424466286087105465156536356536851553097565943634923714113643760849835057786527087494285467845181406584928616115213103983278715130416334162917643736455936198125569409712631215939325187082362674722901155534608727033286473698643422572487554820829901801872973062423928630646984005523923497589156246642789846222500651112515456120235110016042000983372044469966873879610380212764305508195214917137017176666897654099840814367600347203273720615206861059457920869162011900505383958595451793612707864028180174056647728286981276696350640631807156365116042240454285540620382758959812898087510897913330368058448999935744252353030571942122513291045038947014199707301691373337267537875246691522871932926108888689352713363353797007992349932788422597373222461356454135010962759762739685433471181299881951774630506840668278026036886974406545166495687963079267107516895219599676521772992960281703675120683551367133815994264214051320554420034260872705710305023495897504832102842039230764726584218452241268306198713638291909273025325114726164130550059869049242882265698846812217639060257626591107661364498787717170499174536075777274238785638077974236179548240365530887851724756287093073727172916026009067970945248259657710073787956670329558771431694490855791726960966039576685383923375209585263419091649104490485276997591508541500068864464895577337777223365528377832992546746401877316377839418992194934658232080967538325118664521001683020584085955775223424568704698166030240909317004133972453782802022264334355036815350108214952301245761091870985548356342663536103282705736623801801196955706483109393067709772173238078773901688469092746568742563575358783303572369572782480811212700554224983010947252532599914867321730693509901084404708622719415005597588707244270002957548339108879322153261693302712689257917699716174033058268614913058246637464934465996761627150966241885165890872801827640774588031680288051597619609208958242334137089506096129846411819100987135795867993298528369579009658258692853318306217235002361968222972435641719255186771947663637656247949276439863350103553018857847656272634813780814997509775851729719710937827561311952784844058737656663152159466765303396011954253536854553203834268370074734164019222573849397421187008419292948738626137177565993228301835209119025009905751462349252713406613229144032991599750930627518263150886999247707618837611763735481433580623025933639127444868904560926417187995154094982570353036487094446330528816841528849429921017789709322005194232361857801660129107138645600230564056366939524343461389119021010864490433868377235101911424831542716076165836951812538844900746666741517094883838378076765485315367858979436638119676857438598751174865150758432402928206857701989371884750999505993443355303119988542863532192980990091194742622117594588779309341957381498186177141424363091388608776230286022916255008607779607615593287914472462406207110526608241226834464806849292757360170252133423883789868317692677332418230086572074914019641105516382260866859383379137984446656514216869081424157299868867211139560798358454315870845041204483764858077536945715684996051087713669077060064051448080340810534651033242702049619346111231486797328343605173518762146422932579798775075507053178679848554550517672386469068714461981992790026498701114587095389191905794782973514342568108310063080181732748993442690754107014562265841870275060696578092790360015865703688895418391380984319706363347694769469372167527795808581324501985181616560372273049134236676157522878376899187867037950509869530373555983627071332214402465591894001054566721829626403902376293575802659828938034340322339163749045086688491421164242529132818554885853205982958755421751870130991238465916693378729085237617243272561698366022133876268904371340021810039532929790062248955464984921436685426574026404442318770508014964248511293772910061219523278073811875124294169830310392270714393974197926470445688183732623895972031166501663499158182379105475217669486607512780419032843731876939544426712742758394184565003670799088938783259549178021419693824908566412145745291902578799374713180022474211061539737408289276088628528371439863517797984107552826964284526560387442821072873277324743937535221078452545027748744891788020738693380943944936303269173681171386922335784558903637692673929791688202796278796658063826944030802886520512128472710693013786442369047894102409452169065943982207695311940493579086050155257982556248942607450141282627107303544298573635454870737429750323595674881409557808812138187461094595067143175020574209088544965565571185727958673052793808034369964737524313359200309843308121132214700778629931464708420472533867990184707134554749033971317713599307227854065830301994878876060638061835001206475306625446740233060929064663965874638893158671886862632095648813681230805914354734846680758153670601116998784488230824709394603767012879056422489471457034237936811734205579741925552200063408818090308628813407519344946137438015953064913925702883377488104345818100917871066975403644338713756305534787886213364589163347621410629438009340191332259111754786450870735632349445365505700375131872096750619282978240726765318207295657572352107922394921631141068868832764308000571100042264502575542264584925169034082829379123747011985187931342961241076686523732463468366014861476475750674630552433655122728719692192829648283792927339545253244758531345211003573935635443505145823770829861143242861688595964394495825324476145973526288512584677914265480425368225021504950825788597090250146730845235638036968580172781239911174724157228797767361116494829356560905509659376453908333446342183773622983815051632631725027789655588402469715696043805057686622830033180927000339842673377867597899212615468871323953708046104132311548728446973676647235948116158884684340644670554705848188117129280596836454351826723687108345794229711858111335305934947160119284299894498770046717840486064744263148559501068564387019932002533270576141990723308848040524366829049990811729280189777709855909002530744043799962274466762009975922039699224776236213781739649072789910917307377074771285285471608381468042338928041716530473408816924360469256123167017260798054676663770462691410406002927388559676314215288901632693926672156663571852005101667473092084761670300626727187864188887767076043923006414161880960758193148494068607852237140516993549146987881044531374114353984036317145812267753976385388352358788308131728585750422215505558567018246452354249842413037702195554775239160894711589972903321533391075640139085274650332439299397285217612549089027341540468060737922592027419045841838750505122195551946587917226312104986232097415004601549104218948597979075784641382809952999277206653367955003156075168423695278502658282898105163912768095895172698833066231318601212888676457276008782266356575377333413362826195287085873942200059290156265012393558163419067324711443760550800872901192097040806179725154124984569178194171265597577767169148327859171448808254880546838174317174498866669718782916880807748402284586373350701307105864992966311361190664360369497973262918952841013580640195778373733412039958469662666253606663419832165143315430467497249309348066801180206502522997915940150596021903025060824659541769971575082470309621293731408918285476972157029671070368395445434511938328507971516634175217884631241753732643833540272646623596863358925792432910958840921852260815352863310898836241330581134540305296681833756961725784169363774853527760301850806314444771971086999356992776208353489467536793404795272118804396184883552240927948968351430134786582979732522036660273344260071868872098386008903327996940697743809113830915996372192845835140988163162525500384639975768254224652252565952693016019918831181119627893048485036543496707342398643807911114263071876199493978991037562521353547020443012237990443687659859268304451912563811631181306050537072260501994068277928291152954300888077149104858932939251103441332492190887695307114948209921659144488935037884688267812551599562045181811307249829616301117014942818790255186483146908569044532403944580173711879373215938079659726789483481620591376912550227903501741950769186120054427851091320884438652594804641535696858172919760626467545471640149943457877993113500210044537993698745153144849501245508725222979781544772018580186741680911587305865279572612876091462516648296862112736265080817469747775964744850341726314162426983275007144403923472399543179593614656324076398103098140753067986513085319350503901962989079591994131539992890849305292920390142801468950254402015595020784612558632592313562533336809591805308203289807800215718642290505214513084595875737932968208558094461366882891863408567825369251746193138553714584325875005004503216735493677060277026480328462627542341447738252168152964170949018141528701333312307999539890248234504795226312670276144715952837839140569368289818972523281546940614678553881634227232933482080892448352039808168087964063741664457688655894099601191631855000180475435477026668837078516781254253983678866316681155472098532650507170745681237914086620418138854597472290980382951361643115861526135714741785659737728218914291967385146127880106424034235412494781077782831242676203421006075196343540954645269950996377072299502620655333844250258730265638122699829778101754884802465288486691511515897140032933949624082428225182645588629400247054600694324237267849258506814513905789711415343430954055091346343682321160527178646518386235878396740035420052860649809319167878690593504586113437817897070131158954569356151276787096991614911504770362431669467109464688804901432295885899993641962177081542426527443932990500051881915930909800618494251133185737528879125573473827017892637167558374446959144988500455213765943812909112724411510689579086683159666057096221523546504506061755931879063079589254611861211792634434788088878915903288288753972369434487580991730441881688687172135028393423209912788268091652096313566700882868956393452650708961644707120728948562571398855411599272636291543621178692983219448298735502076312142520014400674470329751703283716540819041943951190508905150826668217686434175685405552412148178244703783503997312318631157014595202705764888219216589100096003626882894530461415388082864536648751753270325973132297016722488837903794339901883328216571612930003671942720742566931209468193618867159841438833135929373049344563694689385228825583327378904858868313632430951450436531356315203579973994867421120316812221549891697095305631892726215554626159148389003596178817826038935945022539743354198569350232793277339395227140890893075215430728650458094969713649839010097163766224143807996844257622113548415470810689117371632216348806510414794094663438686516439793867401315853234292170009054493695986588599358270734152154119347016707006738503813989698936415122145152104937414927911340468120987184859190592809583714347377098783079219987802649151108096894654962076013815411192371170215100303272406152242021961625444862177139953820179359969683494811361284826411195981841588858435574416668145686213361352289581775319559446845170224916518162714239564378838128107294989947852835131776134349678994298105178063601573794058048985866527550980040568063390892465631830606195425257351505117340724752618427718078810645861944955053375916412419757829480008937055955636544568574027664428167347482001473570389790071781393947413176987940828117354474004735647877067532794262714911634289982554014241157049985238527257085038295581456692146335883300736943629235985968215987111677863756217353363362639322958140867738767459013696033757330668992474184318981854151980097919079471792084846271990829729828109760206281508852597827854683687363469173130425402226195041338519303266433265194994721090801093729794205810352452236144249738228963446826856470440804260995555146118103960345478643028674403579314085670805937550917231925297786175033452060210809700288386753672830354929386106598530174775476096747109748025642550943616034785478222986865061216880268393086854609870829309352938841224230287312774239830354270619598483820821940355333257310313652254670446696588345338850228144694607493459654588620449530359545912007273142686637675693257411199931648546176555799664955985975896141433321630298678073849963421839644726426348815581557181834815313762443096838615697586004163069975144472113681411843010770994778257662184952676790625611172142041756466281454175957560676206337284248002333578029795901013488690440280536057393996612315737258660965672758071729455328157202847188607746857543225145345555082398576097925206043354340660445031270337931815355592025071512733478019619095531268358973959674554167027646029473504165508212271090929705292513777577384390455242147513704307211486427968617732710171134792708688195520114582890533135443267174767763641917285409741600617472291308461590360114390056203174446606734854542563822078291559643659103912138164585092536925389173085331144588725335125228223924220565304695170070413750568194220475850982101353659678942833814160706241841553599721231465711136896046979770411313193000535082958241836453025144142202570715138585034670503943045650310680637382325980814439857606136118624708397799889339539867221850270076316651284740271644073289894742666896362234403441915624789091522252599389702590604716607029922486521319314801474055735907309956598460429368910367229426000700164373274740923014546475452775499760788868814235874649708269026517354719461842238596529713308373889810688301872576557379853843194767728707674735102731474758723960873296410420430867736074784372534783425259739922014860324014946771418394638803395936384305343488640436647345855398766113650781660125798713270346173330065878402439569756532744391671201302788189213332596020209885944751639282190696835468836700708043725877627443913298727500980273642471393583832744318688794989159559296901059141928561694510224189109324055201340501813798475861720082699186709413366626370998767407262160300675311513981074745085486139894542305583461505479969534624561375402955578095084949092711061164653233735299713277856471347611672360925548443827282267148920800045156006062268416281589080639528696749497091179981926739462650343121737205138874014645119646243028229724651072129489431099471679620396259839044073690653634868956541046453430568369479072400575686793056145694660658995631861773422741212673374007156108555862519401242538316092873968991766498602932109071099359687806658580528467905526348343314782281056805665746835372733666384228256461350171245974882331187734545809491478719365871287888118137763599837582150136971023538772488250754205933129331467845753889315801665549498319188470447015415001368420425564144341035344305672002568262445415962159254472680396961823109120058819241636431110724170486116603180425266108066243683727084047889310849535811184060142745426223899739611084609122844135390888814444694294724940077228906554278398449037240201510887458459270662667380300112196793031442226739716182862113153776068349749018013286410493561146445780257083963393886088702846885457944153728500767385459753936446742412717581040420038187232787376113184711974292813902902951828925649794445961138674432410086259658259596769343653275719280698947069993372533331400748545705436791625408751935459551403620532541185312468617733850904700605316050120592696030338151799806200228878970493557213665312905585332372805706981580233528838154041244409628803873176663592604734214848941104024021202653673837720850889425036792193547291555012835638823898336142343203236920253387216811650586894573039044825030684253556568652229713366073595279540379304299436597518509959078740634892701450196355175514269636365513369897154579394543215685973099872761604732258099504606268972929213608068120197111753063095356102467259530015905085203814541734797089365244947242242366802605909691048766997887995326441894928253957386758069248506257689469827320375827994691474275434976934321748539673408251877156464609472652683133675812796187070034476430957226501484921005400348444217454057551886338160600811245402192986306001219643807987649360995633470706927418862984101792511991825165991882095878789930733561579379657731292440907506444498536977494333939789280168904060808985855076352696619849931671281599004370916643099321094846737928659491318136660977892147220941905006706620312211554642138739557003826701965425978484270926401602891185003928470461858395063137110074411818926878720440360297226873919415669420016469768124542964998792030690938421082633927831755986443968158557324932827882171160811072100306936236336556490053322539527734891954525854700921991511401661199643530264658875895009358335217828470129208089455017953077001746892519789349146730671886711509635544064543342087123892722511573103484068462045080999602380497808871261898621904817182343303833388463155622343307261349385565401025244050021884778077461775523740503693405148404963874857047625903616441115255877110819298334590961938972176084349837793252631652161738888128643762809269810970002937351437841356463859729746836273205443396858133935169297765539551830344101010458116674028487666468568446411548919390254166973122304367854477667850405653221669881926045490803868290262696355004168481848642614171914521512342184718233967656191980443150894831718520173826903236696004815008348442308944067557678329589115497707138849655504541597394405191962615711886458716590426047200306158090164755356769609313112285480575409301486861514546546967047494189281351972434822543423069178906174320197627340961151406323044244851514260469489794021151738563972072735595918479445048611544411384844784591736689808769632690777061982432269667115196773080163609633322766427172380849913439164262938943686259741177803276673719320746027767703838104054085459657439699293775742926523567528984733407977210761775405102758322369445841613181335008319247816514363351096521267167167521653720807001367709516731037669830391536228578922553014120580417023695130498225014909747652495282956968627806803181014011842221736012054675050482251957094034094790069177556015671216705949345590853018771794613163147661613400298400938730910214414940122799989352248953337178903161723890237063059172845338297406617862239167124471385318402614197587509043240896111822868741496849317441039199314089051867258149637252936074033252735885637056505836172478450078805716755447459087253827737709910210981093178903971319886432270276784652048441439649463912544383842154224875552853626322566379917828151148597495673554054594281530777702344806113634142532736142672630394349385398616841098389917974217517820024234035758824759779635601842337747338627256942703639960040144429267298835650723542373811594502737779881807170303088587468306619305063519848239518447835043158896477981981910897387678057774456610212788105937694098962055552882660743854654508222552640071754183689152288079405669802385522910867150236027024958093275616130627509087026060389311605970307657262568785435426574340047020660930714415713709152557190625956739985498287186928276287379784864903708476010908508358351698475826725997376237653644911632809680351585897327978415059185550609323984913495986870097519189258366723094676276767247139468609003567143605885137495110771832156101489454425510726904780121013724433218753238469693053864410307714837911182953082449055749521268733850093487232139204530196138512310306793981925074841577130126775514422014167997821370353588427862257473278566624615271346997069116949245675893403176213247916830440413289753900376219017208877541003075146532558332546942097861922827927830712174893810786932276154534803341596039116511494312257543090800086099504345071207832629541419516038333780984978387949593046881836949738803220303619163206015783149279622812129077394347301747714866066021830591598903119288289072276111280354391697198963329990052868071781833770348790926341933833232440264990158740774730721006312109901294974286204714252270801705869511221847979085658528328585462300699057838032984879289861928346851452155008181781884250722452525605354935943472722646976185097026090914950923143167571804572564718609923610119180026907389204046936775226588288833038995889817422589215575280264397576100431844147388434590872589204853576438642929821292346790205090057473878955908803607186491915771114536301895172227542339684987008740401761694948318815956096337936473134615573363430790998357958042482492680359893427405092309198686331012945987729167198984354454362501366592170373258472494387060191853494931728758134412549177226618657689085993554138410494982709139257790869011668731085066439025662574709619157459595827358272967030859831728538190692212591760656805736068978248256286503308716556775699234001059075727445115860219362499764443176910706499122741760261204249386316618219805559081018780012518120795614857930668892146627078186984984936308842098654291742765082708896550694425127961086612023995720069234722467953566927006424365720367785672491350869031244249547864561891482473567269506899952702906317655714196702357433600838714912325012581659005048157762477918024217479291415614338247339029812404284183834566765000359099254260467630602017852411974498369784385003365652387328972375199422717694681728557598500481355398756732889813678261767797786437268020542629513286963804926358952790283526451077176248855308310500605863076248877537912708254287769101185693684109634504567947292701575715770958225238773155121894264051831932397900024569776713836962488323622646895056218514224255567168589011114392020374389653576875607912977295556008134128721766557881021595984506280885982350761256852020270069658750008444657627306141427455608515140462342679764349960119719682796142530412790181086357291104910142845630842630320654837109876008705463287104540373489936334954356291915789435663403501612542910175046333497918609774677722857035950183686436285150120769729513437064682458581248083768162013578905968971833077752696117567227854107873333557625125231246911235041472215640482313923354329335058986510769615886452748725046569453205055823636719994724002411670944849336410471863002663913185903628958689464876091587676429393706067237028221640184221781832993235378124178577584519717039598904186219261105069200594085414576804164934378837490983789224793458074394502432366013200386710825777051466572986944667874832631933113203504907273331406255854091670925961479206972869589231989145486483470300475575554569023886232234530572366921789168344104003923000997106721588977739857314375176632084393512114485690512198564331605442286313452081718183644652549662032369399926789860691057118766845637286350304928485259652102517936982800735075471878838846716499550828573161591964510648241717498586435124821633257945500710647014903528743643163222953992796223815800888789442942178663606033405971564114501662754035084238470120852795974044030769815261669665745200039261693364615558039783395938848871515702597001672706961608989669069344649099366945062857064975219459459009601246665042971484100396202037029474198269139498510893770721262655733901682486170829747542357037500186632569947572839613098228315645684556372219073897357458982342058315896578440066421642845832629284844659466053807949599090803317231346455342225290690044686054773894415163056484463677840285408024672268832141557020155475428590401273619433211728029180117506177023747437620425486471495474072136972119305158825688172702194210347389421968407645294963832216673385646616499493816856068551665591886972109925351916339551526957085909474616991833719787134049161388610375542781480833296538024520688155336578225105940228730884649343689965632764548547024161957556342391526085553287170898905754407290351990796019670114144225676881870038152246814829255516054695006019975708669541524311578719080779046662388866709660999266131569222780364802455812253331075580943560629429299545368665870003733263729282226084435780841144703697615592887443038361963842003123626109812876964853590357717171670320326348044836238128566571981220983232652767230445161647872493134108184802900564624422594036589383743047799911834627114812062571679556406807341131674998619829443310578540653674269578554870726718340841173017149103934330636735322107208821853983166140659578386942019828657514988430156247184499852233873707466695964342757357966501291669246438270480269557880565839898220404182446470792506607216377151244443875754601716612615051676024565894384418111156160162375231988873466675140323370125335486341439612435447606345088662656051890233201480542437476884929061168532228586278442417189075962705183191523846949818686389372534551457607361057780335022196824687031061166437458140179122859158458427746812050169028173443458103919381133722900004668282697541546526151971980498645679797879565232821647657315882732378580040702216580134868042909484271704890850449696908101389876464630088433081412528253624742207224304062933493883904561284623340274276445045465743255005605442368744849848008476714131337750054891129446584568219928522687652987433906703029149266401241952982090280236871283920272941977806606936359085232451129617783363345274723261641652454686851518444723078267068517923376181423158819095101594753809820413737785262080649435861463598885510994536090289180915928284148316123652295197043411469102566750889177798078116027787079621775798582875099208976744425663826579358170974565996373731075392553493603565780048985700805097773435331325741651985697202861289715639274814680603405299270553610514445021103433724109784812404998126952915501413842971853697853367577841808901922491552325790383830044776485928347587595184884337299305434448325072512041408368883485823135591005142194691373179395594875791053568071826745178684264050692761049865588887509443929825647832372598499567022443691449324960111768850237173176825557385739804941113576986998465072906735931039433462559079711717407244453827731732913612286476216624563747895309640905025614262266015935383030432206089124894219598168457242566612536369576241607511255103879651388842149951583880802145371857483702363087586103849535826364586782411673926602703245806182357560669032796215510744953456636486642597383488232292639449773030947587332724150217853559399797291814335258323269613155208070685135916173966272806468089911500179650766078314670268862561923188834262903845787919916770701776266378746408583339210043574008079328463030858371816521659404618863259850020939380849509009055730539978278989207254717520456116001450696752420077547574163165247200934540071529246742210242433325020799904945881499946511235134174143353943239947877056720760177815387076169332339602282830639972472493264708672231825369949369940009314893517463523707409851116052709174578904494863869544082013627531445333483811130974155611994178036099391290498778210023095366017992206639948557864279683196183875774354094332622165159690376726906839916691162361603236943409705385909683241953099604277377095268578627515499515684715018244449781000005011903800467267832128849850618432407561204640318987312025197289208410370930483667656459524992949319826261850557467019549191631352198739548256079091244622338060063901811641650502740363567556591423818582524494438840732156820008584207648512698735997834380659126571015165869076682586362929700910935773311465998753453357651733578421324463543031128086927664501458450669124064934341098701508314724890505901684133488787401034959304288953401187819850708100704548582489849695122336852330635035026513553710815021136681101974921665274920328132157486404790891023700117465042718241166607278069499872842593073371728299449600947413221107302024032946177074473175345275420138655637711342359563612209288452345248316270531747581564818758589821952340754068990114179464161787034886084290616736964128341348629829769964638685543609338579497521654899609657425349322675407399326810117435238633425744676581673876962032353536677067151049542247586881238353003578709752122783608223921779046431403380454686695946267183532269432948783916349322018552150420062537804010571612629389236213944031343817072727835171906383015656737102501357826307641568053695621786766377555543603037289084106134919689083536049034994516617799576001830835306398686156726852089176944945770359580298410890684773633033257998184733924880347766420083764939188045229287712030837573907785285206130318921114513733269974893857853924724585086242037942510173138371736223926664100489670349348363419402783968052759852238667734001895415257124773552603121289038708638080297423437528641038991533750922440559043051534033719754042112957290735054404337756777440175357247441290907088581932685691936455380242471080354315621849100845395146769800556251035081918694863598779441454081251210605507203182808327953845905425820686183739550301152756331053146928080953285526871617195313411713789708305663969668349017711421888349724835627443077281609541827650022258652149355741955264988317784127210545361392072054809977480116269014099953248844202482629297882724015596518731543072683277857072446667583230954617300254501105360657463162777833227170920582631969789349878556630103384494862711451178707085304506600353276854960837553738838937335394930827993786878194541785064554381408925229552482869949933402352443286394192292839303510674045809041857409357231658751776114260231986754939455466296623469430320800117771898323514047338571577615338339021682128685431814288322380288985590635219811271033523415052028351258546610539250818479521788661566331295115446610355155320258063542101915398213166392880561238566123050533821802529153888476360838653712446034122589222873989836884028297919440440446819939230490993076410355348456182887890464281687720500290429108466316095560334271849653803224505742760914648908299148889375904840361832981298534142910569944356667606765436816586845393907002208443739816472219877707089948832655729550715390770793100647900179178043917482044350343877181066725242238619447951741404900890083030875587681180659786991735884830831278496494413579723955581374128734198429118910949034090265527902468025851959217992140443060642324056611567452687154979269487930078856042331216757244705562014024919285939346687613039544443392857456646929341434051854768049778386759059021466020684834438316814122376715359162002129489379459013066796677572850795655410648670648218262947774768284370274354433953469271638294357759056913248229842816297356517078838137194902595077953219331358426027823407116501463814912930535298304822127154319611835637516462919712860128296829010094793986671959645646129444398664841523495879623144075083347499456984218979518429817168837146788517527399835454724519878965332385396049312478366657784008775611744244055408308977695515661179446720745495109511405736051435059102772892801334406332711812553620102973959789698918525776602813072495664184913039279955317354304405876125221134598239471066733194653837497500862876919585067622098476671869536985532837318096283564935494905722531399835853727001237361714175499860400508447828200684828242500174872158361221971520364248150782699502150079636683700823035265774535950241265971948978122093647908078802596058630325023653358316414449490820937706872908804480049865673764963116848981101037006242492862878122262267495909257130769931781073897925123432529240573440687786328494715881759607555015633716184036004135870148751413240926254019616975267619950763087190144438893790633818681342861203499494791261247569750262811567050133510232686305282778849217683460084504138252236377760226751582844064425952779082207826496854822276992570611893013959042248192508035580200259789197496473036167633137653048149234041145570173037333458826552621470581290631540438276775990937300358838469546494034480954256986340311888181231231757850757617963488011655088477857202037303217134589951449129529054132067640020790895190249084870929786363697921629528518897514877746326848592355107578790889881150219506730343138389035340267952478981225746955213675147063074551291431183473384518929242112470583450814110007436983294371683551594354952974677935445343895895437728252390041059218903521002683646195022126034793970812110575026618059404298363168078320875000283415824126130569634599990569291600916090622350124400700387967756108693301908413182852898602518235230218086401719735314538171048633888983213654393756373703803765212044354469663841854031866404213461424974814018847833279271128277796435290768933671953972568817304842468072576107201311450678796816069099933403825463730160085099527426384908678675423975286463722666561244834162819950358080284346341277418682794844485311700435923121799224944209149756354488165182914030016763572108752982496702166198462018936732824168850963542895655851005526689766852945770989415867221201566759340828130702924262458558098948806201920350166091267119357152104149462648107837553011575845940001178649505953023575263226833594029622837951573436847510907971685163923179806857657704083056899820667079397261537707887515558964781047521546735182555039601837073232415616657262577082913881262256814770217508308666855672487159535336027551867383303595302523103650769854210667769647520183903717340760376728800151490609421825812588516067847423672813440154828053262212192093497915978895120490183698342324950307578051099414486707775124359129087589927805637369646740147221536381437073860388632403428736089469946821699297771917809735623507828326982995831918043980817143809913216584988238894924446047102109507481350005215055212874626845019275064103465567184391367800963388050534123410195427357980296028010023642184530044271255453203250178825998910182185681430913021363133367720878238905645897711501635005732155947546625343218396267475463067079478537626228239605269097472935987542494518814547058853861313209877118918366496288751534509647926795079096997703045493323361923283256755180333873337903595474036876468851470849372670727784613070619316711586543832771696833580538219803218876446070597480639589049210846851958363625334685384991125321818051996426357637887115803491161802449866843146299175195683649437106981476715226567036957992185652981502899744637087332528540461775724613048783933619797627551473593375766804230941610475653182184421529254170333590846377673888064574455498930341354850271366899649334152654767531340658588651934504028544155963696709695462367682884965478544263601933436174093638024670899195863993240549551448112703066777418130337857018534485536671348681052652438754084210748281489242508347530112492796329470818454277265468474613277130129412934985011441602911256310123629002475655751480039494302000712521179611038611735510562276056291364893954074414485345430891799940382462112525808798132624384485934817685172180268833248339339256580841261380889629296256191006751655717792247970384488218684629966718287018874250987790579967659899337154261370520991506089887073670862598387649842565602152401553354781052100111652569175572206457936251307373059793472718457618551863118385681075057476802481221036713793637493310742835990017253360517887441254981704398311973073697335726390751006067009956220856972338452889326419596537969108263926454118900719678410706912291389587957185313666592104936589545113396827718979532059218941354581280419232680163967829091288124560659949993024765431973781878157939561041753163380502654071247828103704338241138897178694816654647654383808568002369260400738742553263498777791448318859292348852636185138836426557864970797322045586568721626227008752715587545917450728226640449856249681677955074965007445459261836733791132578456058569017648756246330458896289101438558172521999436179647443072713321212851343355592422526623590549661695917144153413082849894153404716332682458049749068942783317086878071936191955247410306038764693071724864024640173745170783755901880161563912256454459681901163136123468470335591096894804856078509345733416492127676511922662856201358260099326808769000290841461673937740626221462094155541652099678891018377815513264383388712925334540527331198275359170807637628438867071622012603173721092062414729257543405165417694990422109768158669364950962661769691842527317394683239223601321868203568663326506465043204386859380284240723729417024172159701719725865833206465628147877936812532022707486286331790839485314879593159140373127330175446624708111249008311907825771197720185384821000649850943935076445282931682314892962310768747333046452925979667403599542432277632311006027720939881864751154167485410090750087303070933876981721167525831169397203010826937288840426236514728619341581700674378761498292773080631992624279403963411936652828854760057238241451100021219872459686397200705039251412350228723795645677583450498896703150437477047015198368960961889283281395117705986668932482547672157891759935257323750702681147677717765006703700845766928326445369671953964321338832714280568664657208116223648719112179693478664827734554958243436511120667965719946589075257035589525305677414448392782983630392985157718555231199353800053928172096048856229441265125401882753677231795645235423098666814274304879114901262778915569350980159519612924783840981239744624916518481755086739568477597906897075511358487337651923228240589004129417975271859340533956600635694676249806975210995646225506163815134408041324200558388909292642911459170563274217187483174887461148049699415961334716846232784340942533765729744401386066384803271141718230490963711520353180900187528744765671247864458254169978925529477605587789324024679295004473502335162132431843990266476700925356817851181630830169131245146926455978809432948125504937939428692383344792116748877340641267841295108309604156282051034656281034735632047184526277106549982550840142186574014097000741150066772541030708633913551257718138502295915483064506796362959071315244287561821371111440794276516493721562881408771447676241806820687091151604439954435323919463074177242986491039691907945559145378053127612481237647223829768229850863444233910319226456852633889047093015278455424116841585988098330834795333008358030788250958630604714840589360964380170099084212853972812473239464690844557521416851111375099608637073101291754146105566816172151175116492876158490831269849097778984015940673865784426847662693062965682239930439108786833893512967669476612867385074468867264960489058265373262278344505256331518380040083473523273850510458529001628980605428869916357481126737268130120034884043922283987375247569162522195390939135140433981902716216290500421571015095891640062074401103849872746399629875645338103638325141731152404610895765516362539450393646473755868106642369868183025627505342742009537777230032422124996031011811837572762366966317405672008636675223000987792999545499813785161213899949719969677070580263751659211116419370490761816319549831520732929856248340031946255010598475300575827517169348933855909358479259341482251278737107972467417216820854114937424357538025989001899279660984838443523857672725629485432670872821656045296625455571027693721829651572393378863809469278501542874010454259025314868809788106805154896576207689776267289141886675754094164027442491072237932964794557043866518426237486722223274268561277398275741739702263386954883618130381341533129681444335187729492925395566372212885927447249204828053540565489453415125247500459897010389647195837626130721068383931408777529672855548040118335247847447542872998533969031470982917686203272815842282621114282015112081072069970897324639904112580878244418872404143938376463747083090788914701536861841893796896967170021512924524896295018432963366413642595375882529824229041066983688009385366777759195936576447435481723142385095226971892094108705356255162783699640824859338429867824102142635464823753644137188475710374044559641169699618135858462564277255322984410937876051590745521807539150046818063174300246857055497222082779885336593724903147632021029096983464470053191952782854595967335088465913178566972098189480200429001368009570335292023694057952272726093640171785484986302595505985033737235831076980855934349023746927147317867576837255798386698878089734240654027307822460897940271349973724965164663711263474151025512549760220702008480009269647554402155631873660502609658451266836093364715269605453206855067018059964664563959913990885478358766504488231261564404961100899215234630595383245568454274680423121790811963870656512388714711693209884471837992977587171618813747100560005859693961474055256253156019568425567209600935375286665350688136070809809919505639827590560807179893049699354947096861968939574285738089323045505751913885895908299134938840005874486289086441382544047605372790953354978255141080352886739903423940611573689170018287713793930688139834767080983750625451545282215511357345373245514446049315123894150583618289686378071191203328750538536151750581008422402934314585566791463886304093624909018633303348257866984032488890935262946190594551926604006793197539784600554908793424268699680585307358761416772866409320548366199118367565970179350790806042899115828042580347485649906433021348803868245241811063132801800680066396052382933322669473515760775105583578014666337428481075328575228869390351211161815316367807481659187672698297434068503741527993348790930853840380835530806895730744564622798168070167050305639952109393066892155685731866218443289261534111834294452827741123758815137477354763350138356232071218814190934476148623141607366661305778072172574467276256955819591007159619409913678201677083187874003506194586923205842091703864335469196434169017084492822430193243656062227605025560547584220268316076055570722997471709709781993045101080314737554353444960811136196350187652056048519075633184608245636063963466709223839955844971364182769861089577689128378092221884749483724745320706113622660015746140826007890484809604097222962138835792008881341695237596982820624170723824836247587147384550376573374239119632407196751932023358340466987416019293235841244736842624943342213506885986729650494851369356652029231832244977202940537027571481327083573240436545740823886996828960839401773840112505634083402214990393405922814746514049912489232415261716477421855764456579714586897785734429963275900948983993325290209567986529285947355988637450069858376628192883600329968129313889188396449748909831623796211769630320852143236558658059579084679209721488961189685297931294560173168116891070562105525294984982214886765414950430566035164145188091405552171781704686905022252712479500975453319399104270832424330072739014438605715135788032815326456602841244521169329722010734856001942993395398391976376999285671231206196980668012928878864602125566862821561927272071640121951100239365832462213097297472985819801235951996021514918386726842723056884876769105602972875858571510515877255669248264561420758271927527963847503656279039052616504147674493925955214222481358610117045550537368348368496764511644405485038262869825967734228709620385713337715204083229654002645085110286714511588187304325885469688386061800991465385793962909419896014389764392833137613350622770655191147382693007988245819436156190954416183579689840378836225104575203363360657132757160739071238635868780667111789832994660526867610665768691741367508468851870989023074827418854363285077911599626487190992019832987261335990346355708519775407485017205106118531151390281295319541076826125170998451944659501495447702034325010445079119047726113616035869647070866868640531207944890276159034638591121745132470154639300023489561815332039547041551486453135250679012124381153008401798530067407225409684639816784989137134926103153923741805072359881385104938092603429212780118954189013976342018933514673890987318972988304108287583833343158444576711489270750253622320747309144256740528489665523524163541199485576360140279535172942505719939882360545269664632586518603569835916610870763793693985785810586661715830466360260852728221001026726936342808581113418198951515877823466848162185068325133966119640903212607309818448137425290328106368782674396675880574759817540504666396342816886405065419994926598959199422134855942446991494279654035025451914524091644960764991917837295056474001645228996435826287702999258109561134956840796699627941737773210901501304242773060671610582896364050204563981429076946035633059217652911263283249364712363708827533904333522217532852950850530544035607070470910081144165448589802013695181508522587302134113481848818607479298603438401900666896521433777473924167521259543173819835531813325531322099452989328801880943450644288856080566668866479012743582832819874490773574527743185109882655138194552781508663339813512043161604873677412064988589003387003452571839574914955681554636482680155682054393983287474680155892367457111413199519641608095203808947565453375889713715004723644780103424156915036760533810369881416506981764337502817234782511816009769971778839550289446826243676368909753411941920131687596292530159602631337191117784209266732456434876426334434746016307158661969301044904058606476781983705078646263130681355628452573479163193498340485852519953156127322971338743547186647893025695537642290120153765820148502043024258119312166290092009482716436781024452276441632160201487193242730051432806377220257144606781775244496714618592140613553549414677692351593906309265256785808416845126558298530803435478799738547917607505492010678997691325325395503468864769643736462384714469279231339214473910550203509727177708837872040687854217632411274839822891045905282453276867939422163978383836230740805793015646704413834919447301682746314575544665453589525303552710131774975273128290804127185019063248604097123895198538029972517756908074647534763074594280153916332886928792396396300799032734345022279895133765055625921856603500472615875986462044516570564217374527610319158166820525109919841218748712374972246271810364275397298175010433077628812759410840325563223413816908236413646325324686784662919539707623396294192439331712119499279886605972872545308400238153112307058195018238341613117243656263766042558053365402420960369965787288026680709159961027146913061297697708615788951057847955323490266390260656313200269900010882841673173021450528064293601923877876432909740424748063249480171550338749901852335398680074786301053919220587842863514056895812921751364799023670359602593905582519124793083779401968575734283902754702516912545372729356934558013851217029661332208803382262833054125838225719780819753605610977232792553264261358562700886106311202236720336484853072452125844567379091130996819979915988866482496540922348331157958263818883540335151980232374584975170087136016772776545938197154542927706614850644968674901689350590160056494635899273731962928432054141091834176324022298080107812957547717196108700659321947089241794543585205232336278858180310350722658947418877086710969997568086681990471788333546143915347129044582868137671334320229642048962219675699305818308356682679051850038930906210421363145402544096419578772295559786762559714036602130165669343279057550203003160831503899533089863062732257741161025184760722079139973916511983068987052205757973603709443970861682473056840828247440885666173748698579484996765331887215627734503077386931846701249376357709601913927264057533638930374685258642545892949632861611883907312513100414898634407904605128067665294091017407900033003399261564325381954722706330056522543419779390203274254740372264565973840860452444911554813043037855329462184634984408683866313333003284501000162339055094019554841039513720788989916671935399646578644979093160169538559165619001480686511365295909761797137365984909629223184196588744016018550324437605675234331416228190395972630585123355587427934498394208704914722585245592104047837744051949614444850942648178549980838770825649744370216582100897421821439908048122392210279329485724503634599390709300820774737064146263160636257797929505278585949019917542181836131273763568031711755733006736989396451894108807442079894133904455710896038083011235229364011415328375319266480796497711501070089200603051045113770378440094947509161110301648819823226672736024773510713027849540181246526147947051429584985173218482675376911232035830856860694784749014926310115586364758917509632787050899499605298826070924266778495957404048591624576998319968428502307273645569921465954977332684634256607386514133644179113034455966784740204538683478529774943630884477492195833262463185162356351580868074646252063945654181144416097527696360175041862663528402214328647035230868722103621805951254786670685943235509232722948976709137421237805417545258170610529902358369110548636101174942984900191815153442130336708699541994463906436430184695839527532073211820981288349552210044595390926927871986172522946980018265106978911146710923461733241885782772758961370193338178901744484274258615316125784508163829475869679880781113778987583734281839651834978061583013589833350323606218161537934253550841053459121146101060888979012411423937778174490974884063071225097667528944727000212413635300731088026782571921590577130963783467748951786021160349456580586760224908220853757024698199820482057628745143173523350751384923033131664278486518576645764017302554167200023934467726522494994133206005852611699559568546837322734212006847447324808928319295988528812223215847964717569520881106694793891684409602593091574652763886759622470203817712906610079272771811983911453381438837448909499174245672297437754499221131164294741250495016728423483856004978334691622248981263493763826286328696658931032797229956762923135836430409159181672493928730358820786383734229913330483061775765656613564557666746971899645787519422027553409927874572853327838262292426764698752791451270479629454344158810540322576174004051156795780755030003750220691748510954075662374584868254826939176409586839226955625439746653026262650707402788295015518948852565057420986396057269946969404680824689261043968879821724748356065289022822332612168880543991392687382129257307720529599643407887901641838767651987155576994925735755850914453275674233233531016205017314286286982104718279771819375488713479956586352717715305208684780815573515922936018799638743595538017448184306592931654087504335586166839998990400743040016190649794353380555128485459678110677829532907108244275367154378999959727260055179496258194549305456102797285023797228100174276518137551662003371375404639097785621566204500850019154817778848237238910522225931100655751520020159244725000385129785211814086213250340358152361054066569361349312937158785864903478692607950406060273214603071582871729059324149760060592295168343963692860367644142285578115705763411995880230714715495398838749723842953566081451445208412028455448569873482478678116676470230383927325044108815226707144881178456415163273522679416136126137308315604597371838454597029338256000641365403094642891190888614642163931743972328470672596017768277683085883660780565827086435234359358030839407806469564306655887249562111060136748715067033336560513194660010760687163307906812621681174074007472340653053961103281141144142579437821236919888925782003847252863864756950218878980126449958648433649819326781425997625311636389308009853794089308956526440290071273702702345632799499413480343172942709245800116293439665904726387356446484870255429469016183693543654616831954945546872655402091177226168656733192507425313258532668547308881885849079923110725343171453853309453719522783365828798941231407550672959652174108003186810713154233554228489126394029611936793157792979589450852614476714224296518643999134207111254049095875207599555727168560935037626415453414048870753773823555881748089891073386962962809498697759639997595612407837804009447078817146063614669277521764756470901907946654723922164551981353428915701299453572327120170949499791110418752430793868950346390155216556107039863831382310032492389372506533890693107942815309757040046917187965486851764853925390187693299435882991721622902252662017371986312265841191141511545732030599450240014438907692078956581307263632108477082912629186296052170974468908199040335140010313807785170408522145435480389449334094786770440494779414625975203270205162598703259211947825191966543004450305207862708827681888328800975329608807924867257077396298650640584805022399202824833474572365246311967790330998818915027167180715386949292468485122216323401528007148003504008096947096821704116857880581784039417817114323613042033651511326691857655841649645335120971427704312926236238786889343644146994610703602472601551079105905116375125086493257843981069998838613083826800216814300662059266084830337386771457471600119619619427394300310442990640292245570628910759183891615209475986207412115122971874888066372629494781726090632628928002552181087542441980333077568190588514942588485051176183451530025835302498481960535153271971185097949553224161325553274831231067910965807895865324867066700589859619780710810927570578237830358985092909150730195314635594923823488399182167377587523549131437970436913807676953087064510508359711599733758449750800087204411796240118705529372479690180604946403875896850294320828880789399590293794259371518290169176363896293712568356727667679850126208667447963972155507085085511505275924532686677978811425950618015776915376264861697507380726759984452842801137087947060077143133320646068118450598944843488418156540328419387438356541345258403010401183246915274103732796022007560447983902843874883743750172305155855428661168058060400869632052696110432398780898111904086419996825964978141894918475798843240871040139299358712464268395698953969552852168222894853931538003750179743142049099452896274798267281784607340184622079039981393091210488543503890028271770744863470374326998502806606139894816657378647285410253504088142166294997894470066753495603533880759983076345185846655816804443605480277896277419672991520238547855500278964086289382431955291447324084714640634313231016933514620011943828636846588253515458145638228915285645189819216766633528531237097106251746719983109080522592851161533263536911108355047485673444209564169777265914988697928772841412745084626717198375364063819882125669759004593709056590762406612359250389210397264461948720125121757393695588549739298551990505463894625875866066778590637039766300383106511511969331478254078785120056441155154481037572364940109597332714082272115199179887662083429855779639344916393563812778187552600483451553786074018857776215408222917805331420854115496454603079771914791506045192132977477461448221825847372730988411894886493260786899618965255054520443326099885278355401250726948009019609365239428982045936802661384373229844542982440345096197512182735824640179836537983660994288214775655134388496098347327728324191961832305218679438344390670928763661057583768178449833702443141356261023817318175069230394240990893008393640609621818036645522375137727550615074431147314838949350034877345837774907707897534524617525980629731586071480520859527009199370999975290680611557520008862297096097463168344279216910169636892816077769249772528907742623921036041238609719292034083905635647174108327035766385951526547995090979556137065684710977252470842483944351750018119816602621952219516668220901147094630643624912435313247095639596497796581890222043556013201522461351291901371952760331605591319446146325084460591706148510263094850344466017788840032281322823210340667014084143218645564609489351757846313323182976738428824968733930623911908307378989136921842520164009028318356130664709292016345396374354896248253318890781297294782875526791051324005355652238685910926862247148768536361427900331319697752727616392909387233430306970403226214521820437045428627164478045472400710289964505019239866449126394670803482961210416662434941549621277220606662663126672949393721302142945070487972644272889035767653573743598358604520251352221211649805600298308975486299737831163867882280791078435428221184327106801791532873878567013376841658850331063828444400764727708670425472438269555331207908289109911208429474368470127527897409531844941604004095460609489900901702471470886216880708855010490694707449477958082666360457765378057764276316284274202352578108323888177958524603405527098958937649918183602858029891334382473582888148552059665021704224411380561688444798653392017590754942383494227811799574246203390992579410923068436715844119962489397278896620858507415420232484077663905490456516001831655429807950767131179372554851114524555047671036367602736935186289872373954572735576406120878317699364384632196790774434685287234652829009727672820458138383510311987853047155823386729142209588132802380394614915917014661093084694803792242088677148461736826875343373385642347659020979747490256134411491327416342672878769026986945149444843982833775765077320794229497502052752243747856973476244349126289511655179569703413821758765930177721334117627188549983117000892216155309177072325873525469411686659847263605456599839858308052051771755044907995143083043264782180378400410373097292418785813339006620732230441828499413915866012847799907652064743121965883008612119358621045377364207867094116646156624240102067713625282620446378386444729120153271825757064088642114308523165163294746985068361463029160410382164414321437510136208241033528882061169828562521942977505333079725790030365971853478942357430364372059546285711269841829218208236449032382570685654160698555609993620955461739939796126004986368115477912903143820791399960018977286625894512950446405876908882791685956662114028198328933154419696866920695367885089786495085418642760928968011903344437300615538236609169297864008065373496502749335630641307545900955982619182935723912668159002193439743957074464161816519603769877228403870628105751999752514390099590660223489120236123310460862975489337141950460109441323150205659043010715439709635526351926452317581872762913939736770456489871791734752080027672116970556398815431159003630417952526086604214945637418452643522734467105551406387360679045864154198711361072179871764542908897449896804657057012399298967757623709593709264480142471937380179604353012716242853514651628512591884734250781546923688550991856283225130142117237914869462503188317585370436046604535340096579179165372851295089864516116120531682014558295568968213618288241652975671945725247409921945002422573835902045849124226706186067923957570376048532845665180558484936508880418239400209428499790417753693545472152651115727791206685395012329699704892463700142541556678776417544475211156558454093124455464040029326572666479154421063661915398283017865999685760002402242456357497750748803159648339685535546536278700474429734949102480656594240340345515238972889845396121440616049074922685957835010997996842196596650465077880442490039093070889195866853231892459432575131171870335721561332169608630529430084163341548892952462754287266579591882511700105810009304214800723029203805020721962665222540381633057391114296121521624003681414401530270069149622803551410867336485760866212474796747654366073665705819760621396336322415804442435551400718674050816829124920378611993876783948819371319118150393038061601360890329381193708490966884533539780328119538496120178042490587941098930245257224084738522828803729440041616502475688503550804226917547704127485117447417337789210949659873256633608917074510355568206453085798261425188139657392866494180134156197644346547310562755378677047401383157259548637743569759754427718181518826858764941374902880741360724894953762313500611275102920128120982540837938912136951491967253104909723897619946540433657055221068558235796438438897366761976600857875181080891543933740238061677189924363194346331430955647845665680137854058348503670723383874758804914623625319071593653203924425536766633218871655466007658344067947116435340736744566023874687391569366165026836638704863217953036043573142080782248349401019956224151292576184432618710728912481485147244689769223674623595376514970896306172747508760381996126368503581472591410899541988581054133908790107452685660751124133517810844448419361701251986417926876616810274739472159936909451165499720486944493881997071579349453756406028671307374838093424475098259947343517805671224008096612379587724057259539718328542059070056062950313607889713156316713254577969826959348280371224066984839023684147001100973737887291399225651742488639531427217588946606642407625579219962135838416743308249879285069045693574479042523723243582817534462886305525918159054562044622966976956160356203307723829145536501060603483335765983676279434910698237566747854980596015352198345052225772537302912031468863640846717940051233217022763358313392201928902537094976176036311734297411634145820667429494594921376674232820849763562703193720542460158931978221866621667509506343243178224114966791502013026159205839009516246565574262885479182207773355083955748503503174739834028491931487753125008150798978844067664904451740233381157736226570433627587935121070529687187695210749083009541171775402547601068323830642628492855275181016777498652396022908015518173542492801831290927079316595547092671096373626641273975462875722060020687020003064971577340659683197376722205627899865021434427855058280190517032075027510317742840783971431997617143554214831642588532820273995135736259752802112463243363844094880964860706408657477360879157328496796918758191479331118539775235857791135307978315860659413458817397458767107591533493172216914625336549353675755942600226131463403013220871342280453249907932739593833440653065105529849911524372075279549560936440255185146691237454017104429526033978908592499902647370610428226286618852923210415157637557443941011080402882801951978284449103167139372855657159973683145926678263991696965725829785778878796386991502552588791378510353522601540176777490475597675744311416436497410635417194369475055780340955770600978024121209312090709504175879792174376353090704739899323253590728762963694863557658512528741941814133952995586107304853061516726232970778485897060482752261759065186160704896326383203469537007490375533733524742091285356880801269592496700897459074575299640971022210949137583640525746684673662918679542792113146454218395815629965289348456199161943324675141989689957080895229156163416761362309466120970011692778342972077108567347319640755415661818352311020943283959845985396358769375223463313189952601117453727864509283759645728461834051153272234616403974789923371659122192082699112926315573459118886516909410034353800657870467997798930384757886174983368447278968921135474196942544516148985948097902012357759290417124319508618875834348387192580996496659747723912060882143973737218453703006670593988200480354257635272216106359866540154198150546382101764295786294898407980432252517766487866890397166650473400915044773654090769119445145896358791846609567584502893791226835437757993683507062328186055815632263227235748737612530061129955128651747765004975766079150305348978595245247380095808316061831591368743634800645543665750237772933975807990369432093855406559310379438496881811698059766858775007918128708015913686549180777721259938135619900754480153904736749012680457407180384878290788627668330538275421114007122946736379538564151053904413279984233922786384826839736433856060006074588969724558357247374902184166515861620382501217010895199055570826582084732458084364106439647444506580061540434246742577224752952310458548053648780763988885192968935108259528811679303204847012365135034728279951768862694627847805576678034318524483720519094937500080848405642706260131474073484800932064049218741000317637259844575128301000893364635785982249964419988949283808765136480576925222385546089490394276069584579063702367928925950149899860700489553298757874847025290012808018181661581659408409018320936546670240486362950920673209470350593627620377042421533958151058079202480223828377665947953541162943836475371739601427647612357281470910498712271031126623608322947913788155857624546463564521812296909040335621541666974284105560516213382805403083181893199941468008768324090236289387065208303988004514709013004523003303508678744197798054930032810207094881874647085226269825965879674232323925812158815364677949860200097493508804633431665530855868273019456526833697729529327802471407757117093898092584080188765655657147412207324386021183217704499526655308905022627639152597652253278088303814030096609302086871348282970835866881784483735812866977289214499465712731484744644272056013514601208132384289856168586229377845172742799678804316103802789633165902753330576878437780453027358287990617193546514595659515425850485540514292120870154768162484191574378821752715588277762669289155375636957946761021780444317745273203510662955192654274797506198557146459107977472179400922015675015787865877383185698876065311267866851184451957761958026898107994509721838164182494826903986987009111458265284363807743546807839280469311061521040926909413645628974101723616404961511357148548868013067724094558011019535445540159465071625318087472687372371732225801934931671821254846417296007314944994660494800766130758977321454438298730211960119486089934839884020812227701804341904916919576837202599311211481335189123255419652857482553022464276913877622545470954895665692994716956616664543013037068757662589618382562261215423681681550353712397316056250614354577940592857767705609313661771711271621643153725460748488780216043239512806405166597720013566503918690132783817918531687629409506334758925172937809609961708512902993575184361894426127099019914892496507136253237380655784124621277853637487704613748013455865097102781307147117596788740825532398964443638276001934105020427854493128363961916695924649381535833179502895878720720379271898647287970211904176104559347552000558479842128108069302524229936759552184836909448600604325986853297824240599792621343668890204330209874794165268153526254011443504764851542406674841736186965085866891403650669282680711491693207299755834805335498766024838314125811934427767446073609863428836942616419825136403058292206370457739368394288530693023645959192315825948213949076296499137768573405785682817975163360925067125917478545413670968493657487289044937698065404554734708094480170864080688571065529980572298860372602439497935513967415513765053134960045680721696808675989570817789352122464930943171366530267180422213634697960293502449587356486723324250185619424773245896564319403033838762598840653632284654428599896409435075824813253376346196576995180144032387860286174438548079657709859832761191398190284847782300843395696318795488374135991280713609930527287367484112834519530440129023948669506055704568377386902179632911607881882969672267921408817606892035910329028543544796965825338384804141124771284622936818368089404905498823066301915001780262217403156433289983098137335167692455765229563493788346336426408755902450408450244563554370856287016743919542202903718679549738236237664355085186326096991676947960609486342119381592925053979981001113142495573125439173141514909744329593517170248559999893273472746332522255262835136698870344658516786448546672142079953557052189293625887772544252410002387920097804278513688289268924715614969953415495788140570076688444184301851004200414145589332908236305298221728365775588035067942841607362664682388905458792488860133077259997537666412786730704326747665494443568359349206894485126052330108276478457105864274763016328715580114007014495372078624996116253876391121219533861356477391969281812300998827708376833088414725706716233239835013545731372669315216871209210452844383638459734122184085423599161611628583007241028217558853107831213966446545868755719018895973699081620156562579484708962673341867988923003776613466168263623003341643131757353384619864403229877505352859934702837418954493941758215185909392444326083421397364880840097866955511941642460297088816273007159025306158888210287857800366913081599857853785158442010779859409611051096360194136974533027394038899839045492612949730210903435731071301209949631469251032033152268006272617188331337984516531034068553078306253210950749613998496252973346805281200121761742365189203140299365821288714511324892023287992069291700309997878262046210509666971309035834320061250913935711226518649801404523001362009691102517369099211935024012588167233915192175331322902940829021353750767296017817994740393763386504369194841609087969337730698796865788957091477690624548377232877574627155078769979519732160590988682312697741782513282593986346161000246962902942678258929253005021114016712121670139564123442199057398438102987897877544460768272175405766895243966320260085957648987486639535553321304550005264332175184750518481271467912085117414855623239194591830251410704689135889575773797732279826315346123632114373688630619500373537676436068423485287424949108804525657449279453279622552122662435355332353665291593061196996570596763325858452197280840327846304595614511024461052752681311901697560854604072078937966886740839496424436978213207253311462904065690397345714673462168422616277298197513224611264804009556722488059088407378576212117546967899485145713822862442041581799920914323626805260608187024779507263083781291869504282244184599805857909116910175516126574919072515964957569328913069973465046809686514515982554698794696805356269095203739028389405243996344111299564160908445417866356648374152263558513471066195433779658807293555510414198924837341270758651639620290505522301043219975493480987029454833273016294298695023073306442315246273766106778839123595564189228049791319290309211752330719688193890058144453861648280540849288973503605732655990460512129894957775619199544584876418150234232811864023541042277233370445300873629238284929021529878910917337822248329087086122627850372468163846787262955074327690323366328751230831911296386502183854546940010825709534224023551185613355686175205873435930591150871186720085382681753579697502756285398663528504526488716306924644196966122986486095700224882094743153490755905008629284672465529154242574169989566986446003341952703727103231305491874835513219751911259819703036702356445597778969970068859606753990174333749763908984930484215422937968328657199872507614092420803854503838168787701574443026891911384995013515878959806193938370973253281076199571370699987719588326384726146572067184668409440536539572982022189704325263496618403634036808191909792722066280742931289014440914045901590977666508787464178809597007280509009842147424446571892812386763074364851220448588419634784707435669627053741218528794031714989768644103416801181342622674168092032951111851073015800084934815506343351109637622268697046488654754531345572810714206322488787763620634850786121574403262037924374120375961949644711595601609165301674441269965599875085151174945656617557587599393709785454364739335832589186811007771678739787804519901793654830586226959284093979517333795375993455585232328093540776424108579308185869649982019471120487691103249832992825568791969802664609732259321840258769426850652059507596856610325292553852960811833298507360206496107943913783580771432148915401096836261392986697484532536419623861769514777532498816051696698241165124623114286556805832178839294104368164051141846982365067375363453173049675589218688349339075535116548144101217729469146074856089248653286831104696133773890394863964181986546250065509085970190439767239574614880021060637754157775421468520532548113487230571435812619256387256010148259465273614822356902528925308609572657025740660071966482180402314497350997858224520165845551816248395854313409025126348776807284140685516525826765665837455780967447772987425995605749618616780047015366937148036345900364414952987861867631091181355557427869955700356515009755568641904767152188169585741865381499149758575351762218378055647641702042918855700901641681569695767929171585388561563923751516871985810032286094565341516657255127603844498293554477110806756077973350441877721789699268198267195194760953291583391817584233934345637216925240020722270838290253306011375234667657577071587623392687508563829155928665584439457726094679359147547168922907943910219986674285792342584158317257056580294320723439767155375944119673886038749419738868542889216732050637970943929102885589783521585445532787204289093173441455695726602638272218292609298076382336933657979177414065030963684185654431951583501177213533731038436208601234978845870438289481290065910969257896516716382384134345382524716266631255498741661391487493563685274788422528296223711764513484795566832760507447732749392398589089622725631941091940096532062726687083339938259918347890078240498765900039174862815996849933373016541772530107602292509564333308069201688213595995872292189600198943147061065985240636573935886033475106408146000637850580377220337277264574521208030033110166398477829602957801738429768374409976891377537571335320571551519374238410494313162627085211752556433222379659567489642063481288800027541398613912580706874659624315891594580526587728753378637560868725385787559288135827157372913991236437754815438220307313073670751188893380539562407674333430308825565034421293459509778464682591558848273335332244977361216554574820731842902853878797910507485216936977817122193431054738135011144983613998809708201580623289955242880753883278731815943834903566463739882289335775651564304135819868133102747707245167027787085183299621066311599408862274928396861655372406978502190959838209825424429345553661480794396094777211639738976018331917883691755717491873905915637167937134093066677133281193774865201002302443186865106468116623350663828800925294528123987759929612100251548781249764518414664478706256315051225280989713611050077764786399832338239582843956816802842601041932404925335036554032592826260170725081549759117331237504708685655733657114768093989566890631061639985578564009001711750769754631587812065206458751926462111818833588224462304198400183893124770820873929624051018607421251644758906777503704436134540298996241017846946953518086638029305381422001527835893804209089809411818776636679667298365849091986494459982334336002523759262480440857729433060795467089455591009996119966322512830870187756914745143009805180523862289000388066359450113081765591995731028604876330178908765147706346948880166669474963871406728350141781746351510477591428236903354116907882929883548355187457664340503575545892466530506684956386924255123127928404681648559537188167625868415161839348592284767379633759038213179501738929373145587317071974511813971265297604042418798113880052954320493501421339623726574693591729830567656263451736143019002003874569416374691447839437541444591193241334724989604231518262910759790248327584239388375900567266370368901068828449968571048678758280127773819264487048835782488574649016076992942250236361217371115763312047871790674777050917872075903156304461863350805774588387791984425240442393097419590286618909472097877006363123502971805635546270326308425210761467361931734437913249149831030403649772933438336157495738823672418274865129758016761645988017543619174952342742516456380592524799452080528627500943510759476047985319499634214421549932039691016372112330760603751824422815961795632376358545205269257483294290680316728954319569414593712204927587250577738251906273469762049364474051099343199361290505118601829523648852108738329969296014764510265253587442144195260474644357577966820898600395409441938389350900827541065148680441115592802271118392515236776777654349664349239130841700255174809161546790626116881942517807425872644384538717114461471074707048994755174915120753578447646672802501241959369467025903769493936247755309955685021266979481034352572995771479809073226307981619671779347403560890872927926788913798966707520433385110155714386646036864196977579964664616099800799575912066064815457737458696032642755881578520667678539118723749693195489332118577346531748552020928469490718488412913550277637954421970135971722624758457356110686278212048774113672698669302692268146408920143869758556244758363887998418660233160096666152634683762918644986738551281875605636644091463929412641006654292182354803841781096191388912963331215306601958608526592401927041450575881924973437304575715045992693196635999605237701526877888300441830989193026089740972507894956547766390361462947350911235914948675423730672080956007044779153506578782319489598891051228412770817335116482607909421302640537207624307733709397420893244381322735214826792186371601254658016338447211372363959864668671846865059841709684360242795661331549359200735643948517563618091416009388755402955188463173136196820285745466931751247602018150081790032050176640786654662992132770822595128239797445389516126500144649388391330114892620389126311506616564936222494159127389941778878280473058752261992401349845153985789211646167867840717874336094155553973712693928074315640848856111623422032270304201078784621912842176287172822343395968651775079987495130224700367502166507930761704593354058978396551762345339844177877209680089390843999356712931617796133475635371114013774496863521057791660987401187804325974321685950520659336303407670165682832806136849002302428423406435612631485351511368733358516067132988887494356541750607019220314547047758863742781051410844659651455259774124212172822326216933395626068352100974597978701447687644914555138936829893081463782527411273479885354550651322968430875302066586476257366123567635321576853635230737556713485710346300952042895182363706033231181264969857661507910137845801049763845119913312748206149350347692163107484259749069228621990117149724634171172637578421953843272559094367262094480756007973614559976254547294827919731722386102614774564508988650395545138722126079253392058762162380160445207340936435330106033387889779036774049832413698108989766250172668998026482047276691479656643594929421105984140993828430135428158414209071021243623203239239853718704202714654747478289490457255378932167537778451758556287338193374265106627287804550095194209014556757923879209587682203851615853997317379313201657365650453163504016881618545722035027099767186936814652172154266113042258793130325078151331636347256702561983488972501784382991155017822685843210073777179694673084244209093056020429467608163440376199220008167687368683638935875460177774300937537882954692434601571255355394865731697069425514523191048311316934373031486235661056001972930275647779476153414092993809489318174152637130619762775463409622745571574418517321200169276263683066553966934978700172206623415397839706148002084438115399991366513830941099256441575305890189935072077298018980024977343601729373583844585629890059964962666610874918521209658382992500993785231674441864689557049115344943840347398818784886167421252300104288215222178332828408707039735035262767643392319535818794326506303661473085125925925697657234098643829426078093610943205187036183868559250317597992931504779117164132981912952155073858307102686556970825402578107643911884480178125577432878418753825827465703034978237358309381064018699386090499084350141862133296166806685495825055371482050853508020029193043448324917979214111868113138397756167218571604788156749700676350339820918807502009282399564068717257009300998156908618757935008706959435779834702205676662999480885859192251113788421415234820883486585722279815529439736330155340879228278392164041895408632492113303946247755745568680709783840396872583560913367560760514532403424051563217123080478262886236299405681476514855800949936969698192967241463571364778736508894960766644660991129719128357537710079365511837549354156590723979448534456376141042270441598183425467749738334186879860572119710103305233148557364423922241407706348986428899087089425394374255788547606773775520499535376090288853837167371527858691105710909339564793044766578222159470863812093254401097726305752335665840492324979907089073972287061174789889377579005830636040718128736742646565707632334123051018418945140822952431628080443757573910344946125371142197083029468113804526425640208269866933569134887908897805523485713946963148712371183472816464053027422800017723121891591552340663437501557888440255000088776152412575231751561658318937653113097622768505216931283625083585485900523142488180716018174844592826513330114982918620766627380607524450884942273902603012518030669925825353329987094377306631786993164891417585261959487647036584512292820428479683185803816922344491231051459529173773270360288642163868086458069003268894329360231119248582906540021386461647567282105491148627992795580643016084124374719494764473808987129515919477574017527012957088553033856083207258290577874983311283825483553649757823985762709746010497288261267500860360873376463779352377417352450578108816972620976827324379594730390163760820744699605665574685592755084201928877281265898625287594723064638329763848945111760578151158453053683991660873903949429999339965709209412268254846282745591898406673648765172451311183916140503879361449824487249976379194669871628974775886119140621692348618798240743618203062747496013001223994082442032375010227027788292627801234425189390013925409726348797362083777634959390214256005869011719394731584290125547162352929062826186570523399088871409391138395918097787028372580883424512443115753846061572615443594013448021832432661564291882710091235220635290073404639136315952157155827239790734129989675187813685292476079126086174142598710026180719850465039296260487624294407419630154192615826549194614083889094086697796698164565866903283716189327314828184451443126843363679556253461309436973634119539954912310998019032558100682933412632229386080331423750319127507681297356255909304478770766904093998385379464364095712627826135261038205645817078676688608649809039987489239089130901815317849770449096923062743864510676059724310029378562469784635200591552966051568605634437425192242791416107701831925538766284597196239220349720365933364404727687719798857174403634443261902416387011409170141388954558423934096063737467243742233797192825061726857793671530616575000333344372066500698693648116419955604427808654662802163181911410744705763994112045390559077072904408632817204487783807330936163942672499005625648529683621431942611386551445021311517487852504338223655972559379838330899395779125568174087302783833151818202789015397434234190555926407066970759541311221604136569872113951087373948386740410934937141649265951608912514088408300519166965992623561105982981846004276489046755795520289109606440765993245181593080512024264598324644915129068634493064702483712775805557070083999508848605610563889494864912227087714330849295577260410410880459374906501634601087758178246441305124952154678756329141319456781944302396660348460789823570217412175322026571793229259932165419158260906930108681487483802255333777608222426148178110581148413556101077746913106344234186171313004082611157767150843535038439056665065221157263814085814179809542248556474696762469469648242734355123274770519274105611761505886517666304193136909523194592520250512984835115730724037466019869301978341006310687922215585761665727891987293130362207293976089436782480212910021756353995288176600863509316598452146669055327894659647203456120514888995468022600904170407139387306668055809899653193988647606906878496880994328763825336999303827096685257315619731133648156506955183066808799287215599052644161246735280095038949380371659069312753724796405735239027330029975517016377985462388952027930426817848423971367814900209261423105901395359250045669231743239928593594451992797440670079057135573960232572162978804049275112444346496562527555008354777977069493775029980942043539796303138502614649776076987161939743874447442786565277495062151101507453903473687449408740111396472886305073573241266537105587459547468099084727157207155743500045868195759200161065531155070121204624897968125113059076792592903796341494004136533658380509805219469812774202043045242893784891070273027327094373019319817507237773065771605369555784435163000630271892649065931934787532916030761386273751795157402718799490727743258352626114928224335669230111365152430649149592723074677913309360040468572680724162224959101301693921621045759392446647810154665992369251200565864373071433103752800925232946249347082588707949647204722957078545055822728774094838961807396714726386361427430191644862174324464506533356676111978047023301906321951421529943409090345894009212959517305625011265520694066484888515550198434599080744991380466221893292253761865195937989565702012689993002160297298252532670954060140647822528282539826783964015990575437946553589248250387988616902834114667138481087659498440625326389420214150126460287276752074033251100887682556574378979256112838827242198450830491629864329840128806644406156099892845583111578216814983307066420642017277868843454551730608663426327982964220634451245388622006780295052279971429602825299719137887879417907514554761332641489084102237721875474858676293352618346790373877656221143203463431156054024594689410718440458812671944116608183936875766032072710875522868393375048591913559803535317743630943579766715394459938369867331279432405009639636899717218652397543832255923312807863238564668043753367743602920952406767039931035780474071915319178025087656297236844755728326968935009732561867835381074840101114461616338992067606742473428892932777765797231265432420294426673191545327503652454192294471122962696015511456147111525860907347412281362601803971145207062025455653108924556432472354371462885312069529863096169652659471076390957193706452301712201024816364828825190266383865198696372257650414894689756904485972673586278697993302499356909196558429885297891130774478325265606248849203132412764788556299683081515935476051003203102073870925830221927453218002190199554742246053403397210929304495004960122451319465125061993728614607392408136984804217847009817228692638402909454209457213606643445762120881020081532361956296252785094290697316481287991352416392018955430772323925014477116762612304387536805091989782727672464925645195247954616802109805757640123628284330222123895558861070816255355737724892772202829589138711466665620205272350021518193051497118348980072330934559120320824328083076649187682768112422149718552774879722409152383336694060904059521992734707978085540074722550455664303883786361282639644973844929562404636261197034616880152898557375031816737477143298839819751812464321526432895091944127805129527734756604238930257493877165963275452880352938456597280140972170097644253960793078974053703832385783570640396782513442458541388000533609329466425203590248534973411984566078884837353527836739469387288159488664173310502364501795548177524264223796428084981147575262984989080402910745794709808714979750316135166729914725487308788203701217410946284769101823963410198318690666020622901529849020328529681883584601601708772565657234860780977764891999196403683970480657388281391130821772486317073824342478548181837309455576964949938790563143948036629796617289208275909075849446462841513466661973241132578303124263510316395254861117581064685780197298674327066549357857334151453675159802119680373810351434159117149895031173552422031506942378389605136514200521347823230369795193750368239713232173292048935568340572002716266120488881458143477442291606440439197713619485723879461238585788675567058521200152870620213668423621615390823052647000972056019368296946396311615735050664974917551098658992997786417465033042094013651057867584325425701300236666761099426805851604152038047193285697346146073792935571790234870461479364312716951688859606204227067797204060547094069590663708313300858987926754937473477798773020550316248575674786585671716335989649076188927672892111372108704254515819891703082666254270899709635938342984694221504742211607269516260365599747837137756004649915788738655524467480157939813368698042228345939735120131239195925822096959287288930011478744187197821594988812412301136727638263566432891833469184500211512021713501468335405520616523192211194720175127960114656307951256880357349225255233468984353564365556722589267942521839226035237495708052782369467159221173209410662457278112392695096599692152578252021953828564711075909974297199930624059875794907037573941715918820402215125513098997743418520109759106054547471889756815731612211752930308639553508588232467123176610943570708629696193750097853556042156604307767919354684589772682296378233300995470448165324970267727181632692374652415981104365909735078475301747131243760089449260322321158476814716816165115596153514228184640437155353413646906379172602643096201830614861280880110080816660469928516225385477754601900781932227370070251513681905124096771590642991857166316213468988113054589812014246293201646411897390453616204590960177772587571951526067377989890967911639786487138486356771435494607477913348232103648223925030983525518620034037400671210346172626941270056810085501587675999499190615419642294921135711161500509092412203588068791362604161221224584061456672761915215679594239764761206308560813431883548889934996900015685299222782188284809537534847136565033945023874799554571032691615920144139493459867397989435053865838837563469008485093657251277590752100010588148906442946575200409860606942179845294862291334023348284239643118924372252907010662766162704149534181395185297462259811125732093534242563565535300554226513392716977992269396058627611873315283678753088611541964949746380366854591718141237771377040231332289282926073574583164492597263775019652438075047536852784801541061654120240616602774097749939526539791176323077327217095120214476483269206859847726064460021042577089577626751053035763031149453226447419343600973441994864785001575009891358954719147580501943669877676397055819148103665841482389751398141394065787921274029977130881051991977721040465656712717047958783290118010115741568613826698021942929892246131497646446116968068977335582778908890958393315785459976985249168791986245529644358793437214708649520952027733197532710647470575654149874032262310315970552098423805105977944000696651037214549552014537441542387428228312838403804586390095568376771830825775899431355230458854406088636765919239335051037953185933552194683398475292780739960066999794675589472816409534392799318632273705510411138135633264373435356263339416214943407272988909495050226694492277367707407172370246669154854267808035224324050817569984016259979917435519907961816297947866501035419683805708857418319292196958555991710573251490551772636299236210383223687265352543552828402962585911875957788401401389516031844805871404090047025873974058811627840857941374210547996669615611321680107242029623571655942491985416854406275614728466481730299530329694982007878574895986061499758559805295779390281142547237793333183136893177435417393141464654869691005891407482298649408752269066058126270216431901410369234135382441927547225716489771751558217211545766870012265901948151196715599477647822101689009046546806999680215422090297924690392326637089535681606850733512089341810767933364293217003952439819283235117358103090337763573961895581045804389074108339110126579099629583598844152363383593171446053828393651237397969117187512616831645518165061980736491754431141766941995293944514318619031509697318979169280425003398276821122170486079832570323862399368173068425831687163530660838838363893428478486576365345398772312586146466831379147742148572218569676917471048733571531648521832578731573190039517827352167561600752278585061490260388214540994827522400808715242708821444187275654761700900269698757379432180936262754278238623298676916962618427713547229701806814283917387246756569473122992512862809669646926411238797390953503298175460290096628930266576682552840901720852129673405912227781881131842828945694337601952698736210156483848757380869299801872457406781980245024686526954093141884435842969867684724487989517828653633838994486599217726456214040305662255764909535014133415725529009490862473373785403792433466998864653616419766800818732705744982547737533976045046756683144516475556311316737204351829563670069467040866613355100299383335607711637491977619716690249153120778009765038024822267377731749510176618377997852810442355524654127586261203554724160144242344969858549618164810903165530733986104792552245510816709925945952549290581257731636323954703567865093359114527250599640282533932651733649367823891570939997003986758603151071701201653166119218645619813799601405037067747245970677204887468959883217390082418622993751125908139936048160782749285154714073966632079165726036556148636068636498361637387443083380518387525476700264820179240965650814532983394930073233510017076096629708875087721310911720454708572012084403112383286803057087454690243732056974653066495257276651660098631543040263005927711792936455205429663722776191151433225199355966883154950145120862182032632407499804276621243769624898589924053973968875913563095033935301683491125078824796985904925935154845546965943223277585797662160792142976861425997378592110024193775344488915664183765385198842082334341750445456457857174893292146854039339290626771526073271728117298598619519687636476492884060156629702844549650265559709989541151326768192851380884059838800068036891354696881000281817755844394982497754555857504173504041211448787807134898626114954511095830697071103602404411163709706755933976394310850582083654454013506822809540060975133757112926998244606320982517707537213671590329347182239267360047183691799354350495112272365199627108598944270686648692236684898253106396288539206703884473678252098730847250676479705663233260929897168330398348675820575965890518569079358069688260974697735959177846795844624696225388335955069354688425469776337737469433590339729962236578376222533860198349267896618473581819204323442597914116638463015407587133617676097850399376346198286504041454372209978373584698969841571137583490426202116093663317948189124043109893857011293447064833309949223227316586063047097945749616458675178151733025002722576673062623577034850581999473912210321220608783979889998627343438905797614005020443128564847045467074498286174386108492318216035273041471351511502571895743866176198866198740325958643202651230505077103206719590361607645349280411025423612128823676558282911928922622188934701611852682039612903289211820381589614623806877694498867843885618481376872447082725278740104775971339271372316313519782242147041830080040150533508792299761183938884456170492631183148988376057771794872482985676379881510392608605420555438935807381723857085327801006104561254146732055551008671386628950727223949315495731946985192658506090927906363847004128508048802704483439655518683044921412286223247900476669670535261036214185664385539015456318234707694682490378794333219006748860055836487292879788111218478286855075452767448139852493819673902322743808790182794605878338035555439057281093113729272124171745278631504076073531904633918352698737165543921440970722472652940572188274667002445911931341252353126332786834417404572227297284269940680062143496872486812981573976483420212218487312801315667050806215730651856648238217883262775538582855930516775076139520668884524489541637304896068454622602070899106183298597719626343735480632968824260124437872551331250727175030696499364610809873103179964314761994984703247437137125860594451658202917978055195486065541468931383669642165385854756388707487525747382878038532399599275244747620987777886055350352445251570992521096302388598178182240977193621345806437723017677058925171357554684538854662649263981197590319377144574293431987252353679433368238085030976810988531195762370401560655794409675519806149968976438980499608657802325932306433752936037570228174223178592876692327584885174013814195854691449620564522077825325995254401207627774327280640695923148444428647187063215438612990787590124302983898009507176702155785949458691320010673003996191879638264974090385214419982337104210694239208850545705772842201182001249943505976931075942923429175037883539294516726971120970150775152639457672450351075451084862200495697597723909616149986225347893352503856401775602221111008413594995417581263817268920694555092243396957572710692773627469218660283195322500916066056446061949362543543771021375740204564427936389303678541194457092271559495845043529381812491170287810978221315000714258782356652355627367939577860896406673072994160261296961830541150782802968657746023815143539758593606007504271792701731765477007256647001947131252928698248682482135383108944913842202090515645953750274827331585602192253662291669584389210357679188502706507106801647706649334734506493684810936003702105963765264689272778492452248222256705459005427879372979745346541855892209738936316144734944668925964017881751558757491121714377043961752947645935213488216761218096038892791191214179779400241847481865347531608678133902772178726341946835228497549314595732218392659907458671486652264747675058987321359743807776810294719691735701313402641892228411440976234437916130568054965537164958402127251564002924901323819017386158429703153900554488653350290317194948707970299880044034724595892667593489986614017105518403125515653702627303111935042470206870517343023363994434166269539207327429717067205657164373009986896107019070290988483599865446978783067908128539259876981049002127283196233320394770244208433725481935556797458859378008203584844537539170119170122861609700689661069637312923022156486359110418015526685403261950864946976269071171424315147856512796836916778475365624646592093550846921676273846679118028252489150312076389851589405578669300388155842183711602578181815395928813112853451063932065978745956791864687193262296065499892389252656560286664799558590976293103775828155998035481307723591769636246082371479039469404585283043634629414149192982954446004348587219861033327388942038876672471897755141006235128690328371148430408366499351150842166258298020721320008989505635753241663719938912979658730087726156524232158576275887736253318784410438536996916259691120093546734476845830433284157926024288038356570007989891861496240610137031027981374657773565309469215666874106002963835304600975953729641813801178595308320357268623376676158254840502073335644818261789524841881183809859367798752662319732472841139281801586900640267759610182807905041475749650204139903832044904357654511298969679438191569079940874512845251413312128006667591761505048137813554802294557842773135111351712940120383798286397349923744387271562597213903704659516051726837517683137099027195182761714290092888305086145996572009502369167908970039453285918298787517413034133217013056811167337180301283510620661887399998107895396213495007326934857415461320946433364614957283997689520547888308697301569773735964887599220984477916398151781448349782335020334006548133180694994581250884871112581013199639905481860232122054884040134342783807412347256044030822228118061078022935645667158062340531691678933532946143102000989718632506447436368206541794033416785492438995460382656187300050011723964635247985316258943935984050969486378593985366522477513551514589196492278073650574310748760265230566705601460780261394218391854087797094497372555693167659935920069031847484879819647771933704938340956758288416740213858072896533806902910720132935656450082346572548615181837923655519143935536794315166499577958372191892206567901486072787760969399926900645802764335245544222683933453044403735543975658379503661506814161443446939964336266443793645415284542684624479245373853519047269902644803733989761752170232195581906975606566114429832039342404104591440974508827541859042353411362398725424468979200481568412368048368185611487864472315453974005291556324492764368546810006828593851000565608383817875340628247582938352909957067625154949092634459362263850119491171800007999774477332654243913985829901981725637767691992626840975835250110927229713995909614222883852655608119995659779536481445032934050437478781954546757995615465338246001225429042910177207546324594909844490874087356930505923708644358422225856016673077556216637050830972911868547038564659475319056239478093364650945268790981507142705716194342600994677150302224202760743949342560192374704606393921018902405371472298223422039024036499285728434412338029523526869524094502286709333154225297222451512765060205531233810199567539866890567223109209389589744041002091184494217682673126921092780097733133680144425755391530823287763896488319549331707199537111978787843465896644756330065987512200715491372059090122351037603851513852069277885853394160415965995191736080232172935662191978256125975376343864436432417658174774648469642558671199947273306158738570802087552108864040707272068560838602399619218540441482960926021794611308635576198718294401670343916191658843153522972298584232606372072135618764154167156521669056101991990870854915880243384301413782562872634113213842163032278084240973215698798439057753453738197613209222894027435673178303305089956965371311637493579707742978574494813473553263816212229452785093617490638426425315696866899363593428785244995082327160042071168051147487270066977373145387339419000774085041791976886051422216262769741093207429587442628592995958883796823411608900356624258413824219377150791223521354706916851258230166560953180505187549172859784850892159061370745075036211638977043773838683544597474140254242268660633976545747985808255981267762175281197119762748875666300279997389088068789661703476655880458100131899659941068704033000938343735729847990659088980151694729169556167114676190201460754204081186627024460192426053879288476682480755709673263056029068315646404291364076215850098881796675573827741261981717242605345729121440913282402770204941972532695814394615444664534460724578664882624638004842662354498552230450379707742788888749343186820266312346391582539778403033931879207565535628845075026978063147413073575780915913472160828606784933930181326862295377785752030295212759256038982854290629241378682056060290809420202766061822222737212448963866221147465312253238201579904926882196422628064960775131422340267649984222435018254445169994566954989299024381949662052443651284252258969180651108734774164639496466735704834990670324285456481055970905827671969018686002323698499919893643762018689299786662612032961661388870397224181743055131683914136330152549301953660446914499948072567464806555899973235683375479005240016049707461907904227204632202575437294167550391948359191307113544782046004148631238019803837734476153256832207076137047673303078861515127351558410834310842959443137879816778851503707141010569713011735590508626616928554852782773538813323169464654685650725232639418556139314717347702469441059237909810081169269860753337743466876109546836402854280902948011330292917316079814698035304176041555351247237521227781510990494326363187642675207555865892013132135269387461668994122337610732569706075270216031330651707403629349240414193163823239773776976141216286753935619585414914379196363850385302518175972174875198859786635915741979205075804961658706230106226979022916077962352371379740060311958565560933926323270423323393075007689380455749777238200212840168456660343520376398610796655116590912393613393315090786984916482776536813781284158267482182292858997486135672425513997121159731991481050000100496493643359907227290894326330440190780481108658155788554811120846141914291772165197480266490056726080347670247625233249701780197552690784155232220469387460980363863968016083113189287148045333909218649225222294457459176146316867271988609868870387263918384625860225172004458820191618358475025848585709064567088851485158046432605422819147318015098535292054658577989212335615002468384235420264798840414620729473280438865761434996713737068881648649243146475974301369311625677667101337281898788921540824937719931006602798998735588187339600879490675806691181956126709320006150832587477086235470892318852266777271847944735930194502716943993522948942225946857712643044018676907703348364336400771976024401550757347046493722119406845317944465201625976721494160670286786306291673807687604983332491583794354562346578647415920944800917444205299711615352461175566748403244227048682194848979858474972829851093291601497479433159755995018462956463933162819818411925238045768633915470568896249376150844070710171927428852934377670504537348387829191209205144686488956952895610896454619455181138473196896584544448519341311768136748485930642018944135124469260294103882926292206695318094597681943013022102825682286734474032040935638747008380700548574861525740730810000885353625751166753078194532692892685621979319789752430602177271476960206152648208685666278697348879394052738135531271188736319053409086421196201484276063638690339603959744854428129997887328121990801205743435485290259450670097059622327370280480208509846585345873888329650945702612387208498236907056411710683651963008714375543391534518334791249748946485044370071912854346778361992082721960861438002179645361519705159917011036717424658081889417815406912232135013666508161840240909152263673979479678573600362000197822813716990434768965430523809231962281650555623612960185481245233393161446416018535076172895097884186320258796984915175792719897281494939948353678098078529232454179098070828492276472050295738214306698444599392471916215544649971486713188473584013336197009543019552422441293216936206419538366861830207931948858472082284211309351769723131690208777620893861381450889191359869873241148369816823488315726180635606897970589617600829989896453496534900907065190863126093852326366304788525049378600656228340228814921979123816028328711570058211546806440679619182719664396407982326706142167968621200469285759307649678655303376270851121873493288170651377128524278365626318977981166184060349270760965541132422302220844212279432916268763047500987072416898862859113273703076950268652635545682376037758148667378476430603876589878077981768366617891691221997439824612570389651944656259415823546805712938788683357997782917555456684447079331604529528699186824408227268390923995468571613399428646973346952504856123371771155175626880679570469823161793376059603389984482355799972850118791941920559835883538944250506193519149020232107874858645026912023727777332175071587461635122480546826410069668145507475342369030833999083888640583209384374973860947638348620288808349376129028427303775201699310807739201402935757692278166872086767012441557325981042645241222156808928154342518949430930394933541937103032749985711044371588346487221946723844247996140744320630033932924192352672944576705922343074933396938487307294615562796598025307562983860637675131245003219567345690316427177015832102262593584324976423538884831618330059105725680486149782336357669232513232417824577237105148642096973773014370407887593082940089606467740629815571241502660883511250172854720162319427528229893314461562645440793004533112738811373720483953301539067256655502199751015195469968267817831424258855922361052287091767005765596684163425526382032504072002820202129891458186258182516301266160100599797238019819456392190678709616483357935352871172041535614385043754212659344495828528717627117499313486816855438637978788918294816954904925897120596387393008262462693809627430497078911960358853186872069353480948243401815497707349450361012784791359810171772203414215962718672337862422863744423616777528495369385459352670493364022161325216532853635315118602449228091307627737119704648546953625417794832950839786672216951745897640742610276545834084851623486362604376262434490926941622386894402870508861308197935685472076600983678922145773103608698953611919902171918326496164703849686390117567535030157458532311490214934530994775149746017141810162644500070686620243106981845399112954474590821855814309240003743324807428126842841368664277229336638784933140809449924239815189779079060187468802108665135840002405398655027480086105714848730972907240635036754477647187748939566754715520363339907786743756511605447513853272560547304905923054145326558816388240392931658395798069505126506596678839830350643640024607018661157493325086534834654031473990145232277704657890781843786299058927728936321147324751334562989166687157989539882584930394080273094477681471152344772149314573494879259138869606513480669028827082207404027067305443469560424464702887590625733972714873409516940301610010329167613004389827374793771070424986858665787514211078591933110270135601515909363320768203905606150477600299923741387551350405518500720182152714907230556023098391478301400485841374683087258166383893092660958194336425973750928919486203321448430280754577102583041730574154232673023240113458916957059307448166144494182565672622813074139806365734575411489810036022282087725127953168857482279250184530354326901056830010520432023731997104265110399120873380780137215278179628573173828103088052988693187872966564242975312115130583194673655466790104500288170916107189224469102692348214825093394965924661037830372907017364029004374840116445616087278505864838621958165367412761554936634593296702897336257065150259362253194256704593320222373032260880772603695256504210560476361313922588687325956442570299806686293169912538533405924195764217891799432085586659807151840864020252592007391108739203068493267522821839869006923318436983693733146423986273881810352621771543665387554668851900341722691988459031263873384290242482800029964362555149832989572879140429586951356846562259036264364343792412034981987643621427311059896851460047194705959387501069299940341790735412164528830229638667581680294155210295652013926949424440610282271092368402969402675186038502117788387336893717215392792280656779545583525336182343783172864955762058030297788359907368750980299127064342543110962219325146322010063146783155937528397005461287849315515230823271440113181094664936236691861982686037545273011799308695315205810882147090990136691600323005340782653836024761627459506775645773455069147964379418101673428136070516411473640568250751570742719692732724096627828125315111126663847403169822545613319970714284532073107749769327596843250568530030806482023427693643189891204885250389831671078219954809969172422741639968895381205196243261322328364750173656019467008918944375639278140073251319753970733406705845003778630573819242409622515234742194501332651696700635948065836488630610352278444263005349376881655144311763652708981823592576825934599846300983621163508731978738554353287320887049686697443480040076464356253004119311684482925503028687703989688493390657332430773979810943624493797071060449638089945813120141125731592614285067944101731497970014769084620347648282765942493561234012928887516990301512224091050958634815418851787316101655475956063541127478602526329774340142981388745849626761244339169687674934473065023719078842470576734430921979827130288927026899942044558132861644009815319254499387209413984961890603403175096960655921207125599568699062384565811312675538832546417962825797782691814644501825538503808355129808205593117905480471250998631423885047368451072955082837206084352139471367209438886719578287253653070846908457114860312054281920206000222540565697120763634887796290701854579427664919072671930950138457979570726592347928894950951786074310371846209425211139051794183162758018480477924624611042314483412198218846411465086173367551570408787544753441152813781315224343627453830001055495784528324313774770835297600099328548249210479593750371916116835895597560938045140682189648497355495580121761049403473434490753296017908597133720774911084472176175726847135099358708586091170543312164860812095567901265900814466157781899075900881179644790668291767579718396713027856060838895166117417233998444867743037352069698014599875250045567664801076164935663932523293112682816874122225863323876048757414725131325557786305475321358477704135673514879491292028994914357064786724112985421107420722951866741854681288550638208516931442633917495469210771434548684707786431882609659052361582426291926343155133309013107541477430796124311776264791548723227362966671023203404541652734186180184362702671439567351263157073359171066034166004062427619345605902755027396496920390191480358949987682061513383321251156531538541578640768745328659820415966689024992444913067397746628252971586152031963739551847554864910702438957338530837700582797052283362083891845265016903304023485229678077804688583559849739601943617463199815340119228270777073285483668935076157433883524585171292987494944720425306516634085562011148339194225038464233355670832053899256751680069139010962977064919199664598804173148326086867013227863384124421822896671450545961755926778509436325844793665986391417524526344710428972944564664395092173101772697600067390444489138678587330223684232681258720367695016451290662128988651740209459943180251972226429285388789402238732190905313397796908060526913555854538223867001358721210080111630383651386347383278901047769461239625582813333654329246900758052507280146022978022598666392426065176225454446767674577310774522695777389864543779300932244717992802192057067501713612345824969966055625913540952943914632408585085256326527597304474724358828351655906491531118640554357690023396533902170070124128185351077215462725853691498224014587920436161981176808598230478734070648607366042774323477012512138544560120600621562918317421246220225500467797882660796911969145277226968916556098498090921541114784448030437565831066250472459551802472056909692087115750012507671078556302934186963066427094000539714511640061459197518002163666385780555652756122341688296924774836960023299028377469934713339320687841912438039160511302134935684823361300177444270574389466225583250980259643961263259428813526261462358321643481585830879015248308917054888807894417461270742629964929195836971425996276081642282560794117842479574077475500012829322012190157114251609585859538099431253281751547536823354964674683475447648252813850120756703980591929922346620969014997370289686741027701522756319085991080770890821307005534075431761037210505813881460008589971209324345274780105423048651647343250489311670605403747343957947334669552546529545732952366594641600012799355195008371398771411104795450868772349478441137393299540865870295554969807434570415828693410869605538362473046716725070632776456989179768335225315591151241022951864470273479940405330857880415656044605280677395839495064418294571816868947041208754660472763938824097314319088584757648735925588164303071478343166808671591783797131937966716267872906718851976359409256562927568822119175499328048274392330828226127357692640099268290066691569869033664779051506836899523364778101851716187185594382109059686580766206502479486810142071256917043231715133887931345035205772183103347114241030981625267455357470771898827539164574157094180751916157627494023815275992991997924340552260309117796746260480950707812520363203819766037903021117797124308897947318815590995796180122898023597107763015030857442332337349853337238266295940130047831328470022002078842586219304293421695438825188573491554529673036473841974981509837142222001858893741465319958878098573919585290480609796704775954049019689374037269656174802654613968201469408248792598375931317118994785849447045692706537648442709919720321214864880304980381873109971336781291418643099454342327568043733332906481047416190309407476207355532181601249916411177454033386680142758428959726867810311668396985314783515114833374153075541805585964030624779099445751279067346747644510807391684298539602852874880923501645990811639543725474781544865529642725485310166822981958944933849044868639003102578261462871336126510993932467298187841014371190384569891946711839842701611394067416624976329832385409638010329884656304888209117132691316781113239916856914153482430379724423225919828898204483985195195451600400897511526352180662760878128073958980824787182295277948068966863214305582645549599336617486808747459788535030034000909771701788591738673668391194578568023579706236354551357898647803277314099690381374771701080606486941952311296948409459630797316177243801295747551278170942815415472405541171041664170819576040851367161818547286839277161412358449438601963472181607814213979769430058122559470395735162745774213008088276615887754186338674206669386588929779626303702018235760165218660568103746861305257685228411610923370300811333375370298070608898423990298465408672543641060852954125419754357545985150009845768281000050279164680122966836037425461735284691780690126047065857038296757905645897608065922652844281546157390680362429983186189778411761366527021196389188358453436675818559590001399142339727742631664981411799432714715100346237484889651376142355317639621233246652208865538892565312295134668312156770006398385141720354643289653881336876995844020600264868225424310055229366626842211127057631543360644089463278981763593599951237371184734167010249726945070654680662775405760550805875012423321399338915940822935850355714772525593096434155876903915206406324357386129829811497634967984972623365710073394728049596147853894293112687155714858540735831302188000365732893130713120282861294949555252678520562185547180525458022108147689358307056249068086724599702825639514866590698125019275156263751667726701389797561701945551533672423582759532844993412358332970717128550920385798642130329535528218671068462255154350219915680783080229971368470614218697296832869868602247884883323894875810174465499963222214936276909731358263376748444647340385328333908400086112730182400249188282866216787800313914104519593262014759248426539000363846705218885786886381922063899640246918040090431058041306076612375325565595207157945962663503487600279591758482544582266127642071833164121408382535282290017888930587805044791716893430819542679087490927573196035747942650233549489153645546376933190597197182157622716678514950885292021914737021248851977502301844355755706188492843884815828892450145075325928558314593902729011431223848101786502847550250555367048931204185040578720037450936989090468702844002401940618091365629926176226928923860453015359808977036607109874191867098385037494468743050297241201897508633377964423683589172784252276507137759012475202699913382633356623401163471946755760316574082730512900616771053313370176720606685651453005458428719119166945987494636574501123588657898257443504053731991207026865537065420381153982764671188782812434268653727452634691699054168107887042706808361600301554521896161528955506682663024840737063218969117759932781750917045455769475601777603092978185573991833259879360342735039756940215219695603202241771393620862240212128101358921208142569127213017914494070276004193368230845518816734202117796090337677832122263234042635759992646120364376592283960410632020971025227804050976257232453064266286791423985256843361565305547731840426965867800895913484122535368018733785804432990552583617129201680834288310173402783910937931340831653039407008823791216661228005116507653399873984650546630846991165102045126460952123585747875185753970563686167504816364870901255404879284033904433830516934317587955462803995353225799440909772472338045161675915840375378753905872883953322738094594064069395516581620702344155968047590192269577401649842646847331490661788017680243155581625650692655818223087882037856992539269069534820388721355623573351234880550630944964338494745568251048876209746882194387356624956795226931581296996914217149567955659560701175297476786254072488134171770097951594735673762514651875813246048775617291780221611994140818535511765519858238120710344319911180907884277361918359137090186615604164351218439067713943594428570552427426661297433307609198170323966146824798087105859451887090561412676769812826303942571351799322970340282675569691611749592498405609663920501857330950301129340505150810872370638112721268418937819954432799368596322980311948779469821106533936403732483133106113913147596032047325687002400435923701716464621260784705727361146738942677253145968094916747702424383116209737343004575289845970335319828225584332322086307752404869202824671368535360554835544849733746160718177212113253946396428023685084034657029615511877320279032949728423889369384104438655302370914514796628750568298969886710251156627733050988529360395576377215458809044778852263251165925593102044041178658525467083623066986468415570665954854265572723729863104599292164282030337779879338308008197280849417382033127449584587174724733736443926431439452725145233739747069726671902319295540994176311248789142175049212221103119825327071379453737582929942717085571618164091373736260503824459532355414681149374037888176337811968289318180965645476308100561913849742670730626358003332619662618690349437227663446486508668006768798694440655309561071782136891418446316251917435722424832313312447943564441455663634014801854072160842790834946377825271834052466991264069974702201119624456115611240481743218290288190513152413343825792778975736856821367362534826339051281335660912604195498921888227333249425333237700644524250607348645559541397677073062814300448736812047274224304612660420170474024924556779611717753458416889210150981637314897044741696272612060390341518802807453608697354205153765644858909476789834901896725927260058852515302018975998122053833421887389582049367489765187087538333247696662769654548363987018855635300076356981131703741027574539501372551393458304475525834135316101501682860851850472545048878144421630171988906324208419829230115944306453653202121321456545749495897832615800184947617088034322386074883102706105445566980408148610590931257562367963892936401313232155430423450873174386644451757020550647596090744766051758945929570288959387931675999841038461057233971969622287364753104563098707034625871073797243818418420697717777814090127574769866046861610088563854152262969690427942455125127158239934608967677738739585091311831235876356349823511193726444443348317497016576370534528504548343702838004337399801695997848660385435110070206601207380849009551590204080444831924637846420975171791514583533903926957397359431425249626402385183732661346223401544875795328093965591433219204408422416533924405252848517002326766214562969250993939176342200211161113270553680294971463511704441795488219291917409539947355401826438217402048281844408976506383376893407404868684488101890567345073568616453366199807463740310529938942661641408794676934985026460288607244730189529216374700208575797309787143236395911947264304215916277563575406572892861803071034277878303725525576401602741642845090655583153992701338316435309461552484128795569291580899697433845979006932864261108877796187566276678037875184783195877633097248451206469937925048767815456133813627146262755621444462584621050557175400910082684394162104485748412833636045059410679955659552846904703682004488325482330074741447817071962985149301737839379946417371939908561793873966834977995370084444577442769615625679110953897478525104255854669285690835193691728380558001037563624952834912506920026176942693096780775252358613862157375004934581270867124946746747683014700871996440943501430700322793429329389274372269634597289334437460378860186961744587351419904648774631884019654476859751218263747163147878121477317113700297455645675340760838851181520734357545284649240909042383417387655611789630128058994706074371292914665661928308083494263516528465911616575420609125358805345143353234462679340982505597088911500388341825823995940411507690880329560301043935658032809571924307945199956089367973682312245112297408592741155313386631019123534239974861776708628399643552152375369863225501566150682753706070690949379051938475616255849059359904217403126934791088733885777029073390842757609114894387051884644834749583138236902399561730479574213681794075198503897672987347235510053915057888038491899219044853950312361715256292108377117401631258077271231306289030672180553128776070251633726667810358102615613849171842537912518406539260628073130064912826430006851140104062886546200556047242359534384092620175876623718182524367373238518596409644588131100259624938467699932799981020345663494009711776324943692205295591862442417530960640583664002891869372951465738127181255142695636354490626214719154370982395269578274656706224362824084084546477652906920374612889307967937827922521455725097986817479403832525368860118136857917832710123269498227755295501595086669579100906682410475250677976179737800962739050998075793240688910330947653336546708449309193246930544458386924983059994744361949879025943444687253433255721267659355946351105796987484635407745897798296678861499492695448640756047874770271566730012258698877469661234802319268598555961384529275304757419385021488566538689662241210572477548716604411924342470658401572491310471605682035910465826168018498481166900718666195682757057708435530104195168831009285760590557880626922283195284270132961994909748345850784564821794654776608267243261314127382750353277274526406907477077293037528374984932605924898510843745492937663822435139539132673385995172154047993790649732948708647304180021149630280904962328265252647464919749388455542810928044081805897406527540544346648405595850904514629270103650145471843428591053404666528909835388858409676540411581902307433821143500587515229146434125486062568830464187460543617157933147064818974768942219778964160683740638449594170706693202541205067264600977571427127679259931139456516673813586246402573111524013741699573447372907561521616194835247957009753982809851310257377075241476644116053043556542910377858269158889732914532122582460223597456734682749209498279528406612159112438595725712705064492296077646763057108271601714768755763176105241980999614666838222786325977032029322425367299526046847683748834266821856166862055425036248501247127773603318180929265612307690442674700239090241022324802546762111642175411194495180504782997098234615707213645930875419705162468317946369032987111238247534127184878324486457638984476106715677863486709369276442085545318676836785596369897783317325955507977816494685828231269924155781374508175637960178353869262176857928216352917178372404669014576858704330695055765683877623309048317386100343708763550130440874058580707177139490228617521423091244584757877138946140575799962113512634154781823008841033835658219974520255894253141422868429629406476817855222480667567963255982101471343445189524565192278998788851020269735265718101691971404100980057179960312380755270288542949112792809716555849839576758933761426921333847475644761756817249940462809726388752297693928742489636049207555232793984827096157919713249828425651163138924742498542155046319524288263930819101483525215721400807827167861401644528898342276487972418160996566301723816406018322785223097176709937028663742352926402854353264932628510428391937133441902500210508055214544801870925769131955308061988649454821977757615265045838208408650817115421088144708657468637150894331226660931092157164490896089646996039678871313591500103340621618180611196850063235413364994677785385878133936766876605722712854448288265079639027163292879468276412493535168384779169693808043947973538286074518480547493297241085598795973442329546653440384205762910968912769277830523019678307002674131558515644178200725823958872702549910771262346536016346530440152936489158832421593210830359444076162513779246643910507156986315694502077935845441134724706072856333539698328924646820124436312045708726671691813269171477844464843356162085928197914398923682136013742976487395898288658553593229865447055876199939530637832787977529213100020550801895718676854955704982899778502842100391987192161970116900786870864636394188626750557575660289078604958654572153843743220902639932835969906030983311895784050799932359726716856348577280766795549643346340485267789592454784682640827785333981809215412653651930009837778376995685651187050490379807738568684078831335734737632675692512493017642037966460986300296133221482927908846158223295719912305373195695371063618990754091218029840118443247228663999672094184962763345627849866181251022886879271928079653569905774377748201675051772015891648060920224848245227745833374120196767628897665266003492916937746163240208778969223331458634345721661679566304018701100592879594533040199943950528337003802987321887642018442140614255825591519026994830002194656305394843288613469596675381317194888004276305207611275459572085812584242209558948049627833140944872940176949454821400373859026865515432827812520327657567798129033571626269304291961644891710571375969396515126803759530295241784988753918980424378104526531843778941723468867097114730151284458006622005314134733015743449242014872293425500631770773286438470168025370150469480477644319489585302679421699346543734861960789602488980586778221486069511014863423281710306445160966340082235095039705549728486142404379173002868097920166522466667945701336525464030640659550777645708033253225206773791823065549515849703906798896508532415760048369843457203785974266860173498449856145934115641750722170470171103243426513570078601725968709553351013916035314495561901679229355804094558445042383083408104800476928186626966016003963198942345376414285476144273184196828301252944031927096146500195785892657282383013616934763493820307020783117814950392461721459290589622568341066096266964009181537136339602642272283022957993565455351024539615490353648712805860433789826050245206597397313321752192290592388290787339187922409790480164166728833237626938677163356117594196704388464341254938396020237737815423412195536213052236980770593318898475662649115389032829993807801014084146964902022212068929616521433449856159954123381807625050203159908136728660458152471531237939062828307163537637495406991829581844465317958554677996374436950523883628682506537216828835883596315264510021088959643571510956613634211196146277608738881131390273886838929142635446026094622541067183956202622859331453626009386677180763784313660526868336487004382000138665436906319393003130467662102917057975367997661016046683442504940893755130962685421582830624087549826854988655340367722497185113700851494601129051693130072451435909252492679006758039776740523813771522236765918036462745343637767686452718188206344027329154954601838001185160101547220959008766807645456300501226216351110767644611626904992093645767919507925825085993991273571514902254706181393325112374960116140667529993558019301181328663466593695223259262816936085276272664331834021378344605230050261955767517567163475256212415831958838166583279207918520368793834236967478358188426239112420917375292882215731723621043863969594582859175150499656974269765860561946814829556040657810798078293669827850085080287351092001656245491444531335120538168850347329864769779148031067769329214803627666685459070265211001283512718769284987371036134915641834427209389905619443904594707128017450878909499644640762583910132151316408596558759296474832974474898321403890571317062153001018008514770690841617713530911201146656476384189485974708985690284748306479391606733892023412286137126048653963756116124682066319333000091503856982844417888379761403903548636674039937474444146070538287982088010034190942606008960738051082512119174828520237299475016148715807115700182742402269708172500364739894409086648419344582675148212906949662876042340428310872624882190249299651985176560273384893004855047616648363214183619522363633123658246200391118028152561868004232025766666322030134850719133162351362695760946093077633361042411117907828994288963642996633289448690256331483751402497674287632943208549320195280994439184931739576097984717513258288316547714348440388007747771541379929099709263249647999515671287655783084828786483970606588732484124110787679867147525666899683414693064983724642817718604177908141518542494393635938204409921446313483417134943691656920421509545559174170526398650273834168951118937897155876175656150487844485275782030259658446092143179222568026547241303115895585038672945606493790935744149316799779051715803265545376631617597156494078579677092373541299906402388214344658016600963313831728420540864798528464277302755016190760168528801570737722696246049113895584411006702757793340239598598919969239106091911124582572933812935070933676749648303183750658891868121176173547678808255134642200015853608569558969470341915039221885877058236656733259593749517377814167430808022913677466179045411260009041970165218529968238397058272545879751373825738204391908375722328271363143544578030496422403592358405464097542823467033171398278422991772531755438402267717019518769562085639931823451979269104709053818766029178537352706747642595390416010468586680518924354122606137965276063509825978465795581165518707753468760220639207863728449941709158572864344697820564949971523837111206703925745923052684360819172603893213002225764259650799004760347501620980937065590454974207440785096869440864145402390641382457021823600660033552975330406527259254763374177712436737288787820670577600243475946568290255329306805134262255316548279918789713126614588841990410900450649147014638367257403372907312366715328291497139001196385215497170185430560813747346047412123294318406823605229284181056021025864218115437498844582532499191279669143070971154829555104156681919377046742318735230178855444012427092522206081568204747373153452203806423409366174335015957558429052279911038528824660129075983636634456465999816328109558136655798625447423964851546982290437460641120611984593911904139704191270097336476914389201709925365811153133120900301857040536841501551774341309955966024847144698008423419150320635239038300815043948925400853889163339089034345424569666515786980561809064217894255336243652325721945320887563760639470375412856983524298218849471028269610349856670568327636436495814128888964998667753817666958272036965633240556255850306968813881377036207277841374119046466481338502406545526752881648780904696409138034018180831702929649810088946534080492887338940376311620333737598970931699561917116650031849669116261470004945925872177795935367195179763234199862733486687834603694279397353017710483753721561412237452121293202704733668768765385575359302016267853423336350371937057368052728183425953217626405067825164797698725116500475388890671187483064605342364099615630544982686828164946526607989762142174941139836654206314426283934298045252939752363395163019361256984515090442486675996917813271493721198852637553832718779590477254934134761889106165458626985256256839418115884506622274327648500315456834802344560158794251266728312176056017123834908289643740144522965779011553569887199642793749071180539537852981011677589339744463780029491565005941593672678095654961689050280912782312867848363102280546432654625555497468525485693731779653044750311505098771146161751247844925747874585719996980121163049915897621527944799236736916335277752180986012273305348376926990186185692346133284699533104068218929018494562258206335332262516973138778980523758950708612711044184915648850081428498379091432632205927467818727278686757018159288578149608392181572901614901890413035461379939950899766140488116070254905383783594317740715282680973809692702161032006631833985859976333523080414851785613740666206906731543220004198367043062863952371360596447996833127051929675048871983662613827529708985262587135427559037579682351033597869665502829878592055918767232799352289471683381873909593103834505970856409763220744784067056414708808254497112862736522963227035338660558182303907867538051443399551205148226693531516107369755474893289457479010368792456020222315529401689833604714045177875213565258850225663979779482128053003545613499490814632206003672342453943139902083951978711800891575429701547594648690740997789723418875709072266709560150950121554611721083844825281724531350766263849852584191934057655312621893440161183213681709291612217634178551482957599906459005126004704091466492666654136893464855472643631187467117878529548927211752934161891922459345016401823329101409845098445094785606117022397411057622969637957383257271783727901291585292115379443445310616029166741608424280531578561237553612465295470618772013407059838128858455250297372903457158940452077849270371278034496353720894552338853778200221127730851517951714853035911972327343388268467267759935048711669647221738253347640537520785927284947970540784641435172080714423659582653933037686555717677088953043240376696572888426535463253187897392950551091679213637589885896636287766769328900789589050570559192587750916888210160549016634565641230121316781780765524952702060721707674764413891523395500071339099670346920401746150622575167376118993820667893790697543083011315758692844804432030304436412617797359550316262669127998335414376576443503932048628591761246678071998240720895541701568940439306781636458104057195624991498632421628229755802023630286868590670165736925994608151831893202570729900974277040551496962001635444883918581280971776929877831672879408519881464698913579558253331689799388038864697972017957508132875061561746035006391916468312000812347125482204076004806960997082325907284683825238200475119754338332263525520419567045173323682379755360484348128201807612765428835403223898743917816716189777870218262153111418882728003889278575502821040302475160034339139840194059935347946417835274400374727391366270601139703401116189327910624909241426549478782320490917220436262256541647758993142269574463271430103048774447029199684962190995263421062907511119533622280580675939031321283471376499668969656563686743930189009945158655447832565480674817977769634590364602561230351479845472598352405253190515460244704243826317655218272719033206102691790199946190253007876436709675687614453294995872101970458715328891294057733619918685463326753520674416092509325995522999158137316999958847013036213801111709647674810091663383984148699008145547072853521357108350364540012125423629814649417648882767564148043193657154360638369262473933410793734744978515631566871888321592226250778034911999382805396449215146631267876012256446050124960745451143755485036330348790814430451873148055455459774983208247843901318747437833694827429464235795902447758646640087834286608220522888323972442540327860582333126835042337410182664790497528849134340226974253316086359483863700677246045219887960596740406207647072196215337603141889350333827629045245115419738825178923990065122401405169969277694664063786655388351719596720780859476287362859730119088892545728081736739440368592101873364633526737542246210004320696271218933906532494550389837795978827832936346668252526221052194800725299102584941891711021038459190345571070271418450717614431006811764028420986026475666149023840595624829809181142265981313444483147712079497103067652691301276693750960663278347956078486349143621342176759889026087914666644334931395755629770349475993647776737877267548479109030336346861395007298413575927888075005207808806863119834445743256997470335938741782888327406924052719889413834502805974100604890223325417092874687483444713693760157662129844953406334273197992718833187893422415066506005513456137448681155282038062364181012821186765110950994818689634812277244356047657667722057430905144280434340113679683810232525436956999062126444892051840633433285352202652375872360196811391548410580336609155715157240408696854879482914619898018878020104177678257886756596885468325321890029659044882625717094778979313481691174865722090931302478274521729809222252238417606775965912062406864742989777209320395372870254660705948433808932231021977553949342338612086492947960671910516399479234214469760223249802343047596319276257699452197504038513570636863148947558324047386682725284836961833151414587244956396783072190371557739754645115354964871600270667645309251148487290917814191958766656551976637551685492078577209545733940556133625254714632877361823854602483657296807896682031168183434240959597374781529997582671470219874669960279029636277058976182262778393155641018994429871062725301248785563131394178352496296370485712867997698792024906800652656484926267008359515790742359166165065025889328927575820011011191539346929961145223011366950142801364675490217424398609334341005976286879950670319437208616774806650198692565584505999921366395233357908459800332558929895034867824914977299304616882941151974579538208002736423353907520156051157877585567965065368526592534470832612070815009074340088536578032914821749976550186124884650140933086655457653542592327453779307445375221866593464334655676947249061941608055823591240603176616334382149399872740137238953301043623117102796943656469294602802962499779256903637628582798040759397535300834417578975173690046930409411982100603837821223809987070090310909871865245745340573414949448356573442114495641926592384092305280946181699540978418737400546900116761215307324686210444183114761814906403970625758951713446470462841822318918177927220291560136006225114540829394658159908096258349734386941824569470006008760840863719390983314878050938533847924310507126323893247640378169478018629023769084958075855400316079022261852574803697015804285586607977087363552181792544378258754584191451813541694695773597066143330247616042618901824695401154682588581458832713038453516948767535048104426520650006431477918665265856737345724483257924728644941153233586237770439213592298301620304323983593656919831561689981351256226883307991176473787135258764090792760056833603350832333393526271512174037687664900035274360643261006858572463236865845605921952923230292986730341389394281712308394392213134064590247594653421788484918513803439543810212824064856517169473643237015701367898616034749344307633660090922763203204141950116015745162115578203858996761100643614800592571496108108791736525229671938650494877257374717592703359730372929728964704901721557792739100372358064185227787316388216054985474358885536301964259141083832182322259902472521031063713502711478145042753975846119291199594095638029924916304812894181888015964401033625527436198194395099669157531893866426923882014248445703808527333776153131448909648033260399698639201646096130763473343825309008142072938949468216760715583060344882062755605847056101566736468972881253158076684597511644013042764517664235828864858647444328242961061392230889181470044711775286796564055072601086997291785084156807608235263497065397397522174146177326907074898240764062789703070934743239440116904380366427819860559765075150385091392943211403719830382996078515038877383412104010909128858474270420494841475648752065772133131562972634282724479277442456968508497244093004658873864443711972218487041720725817607948284663256607844098972388695935964604122483007139843165881842815911461351736783110074316210642238144981648322020227119684671739112921233583135901564189566578603718291442964006483319047508527984300835659085129643542118727424343415347282617024717937731895763136453471080390835063090839490041381173725789237727777472856283173283508260967603081797333885005392611135741455007581100753348183947838425044893571216277582234660790398780402469497405141267990303450159415607486881971494449902843046489508643464243209316604620202178601272879100562139416501544419026636104522954841823006625359867404896336933044116553643911775512198234618639992981958156310630166466097841851728298841716077948973189773743757173266678356479422431159178345712804739841228073849125808813049662629830908866165527169409857890759053203616070000916360859972918745195927924670766158609257372283417229905618631894692883858413369904230335769346986292647949835841012187836158603605288034364678086513399840343315113278061363095026517209446395226397122859184703052509172284788131082320371925414935479117028979910920899673525980906350136987915035904222012202492378957758832994097640924982598282669259570358571018226575400962345722762285362109355602884631973620867181785026624018993492640263931393533821616495996304560917147938059763838683637014131604577374542969999170721950057417885393759280875528134050688144801811583168265478779528730368964956673215201583686946935691950538957179052380701214739479355297397865564163108190426571918354317848661474556981231651997453702059409010610565031477317455597228839662731769347447137460219459249447851804531488189222945190438910434988703852293523886978931337322412989930330725913738191162287143609457722248892538429997756028255895547394951078263226252884151608148132222349824017473551541535236922727920022882431473948875940300736788667707138553740266102295752226781710215463412611630268616884820669677242334485634956878320526420182303490801693527688347060864957500713483746335175630280981460617915457224907389389038333369970977592117674377828956289947770853054618001659541422793202418055143469982247411525368559815860481802965743372411143560213483604758776443350411930552784739002881733460309340233815196130946415225507527446135300943083630598619746341643148253261578161307432175887321588544693931622417992512180544921284546804288237538558869902701047270503152228358144819582303777138351401454011135151695606430345270132446711301957222189028802348390596553850628556521192723080837048128593647390574119761427627614826537506810158159642113872149282016487888576988998543121030944897078577217548657754184365932334411694331366155073987557444710036129668457290499869884675635080586836902381197378107857077966231085814733465255556375419733154448176896554597993796019645901601609984593265135340225064739802648377049706405176739144542589337749686594699546035891394160449953317355684533512940312260957705661510948935584292628544290278969119203378019805130508866974935314880861652481213605606742870648446842837572787290714945244556891308760158699645004722025424275977907567054316799051162547243096284621864910158558364906357154671054362124778155181569175775483910163325536681862748392226999865132297443002046863652169829254122194018271354510149720315046162410105540262303643197894706198383504415170138505314376163349474339712776825672340869175016432924542290976140404715652343932484984445653057690270418291789195794971433306145568423801880887011181141936015853499589571596063532070443688961807040120847416987204841943666483224144747315747562887886335490867596754217904493657078976909486000213900818764309763440445650230226603214695036224618194666073260925994875878429261578997136171944859450409520693728932311285864574657351141364187639103959860883311554023543263387031751320965138407139352310088931053413876035477959644656135235194160299158155561503701825134126609098779459101904882840371566487074444276949821871460816904106730823609665679445835371981412881695062607066144892800600601518659865624633602910819424063110442090919417098949939512201248522573765094387491869947168989433131539189390730179943092469220452337116680603626109122064572939304894202217882416439482575513098692609433956242243378437523297943639508905046806376450496995957852903447929029232760640509016868875922545867898133312117025266869341325042156400490216317053551565580057636000585854748328512235920350539839521211760567188110664423471680299309126684563184773407435840878958443680988917421857426265902302313815078554048285667692624309349485185256340910796644806680207458153844934445263772059583714195373044784977037070703316235122180615519703321689851311807128687687633675737974115482867630669657630961596574615764884934059125135515955772637908326475450619250087098243934307412377168111663341551145348768541616322715892225255686025727168692859189801248152013151709897426134193299314647837365900672146775466840360683290595478956092112163459282512574759139733680718146164577992099953361724389661459052371175812851548062303301120766330592662380908003610647213297248233822293246506422133309771066314155242086936335606360859260172459668621469573017060528048929032330085598685503229724535587710261368883715504958509703644565021096610117606430299268077563076067763019699186035463433595703831683872832397451602261131879779384140943684047270631980521421739696921360061271317713400398372655771709615965350860745312997084959663633240801114484373696532134313186118964962476939262931526020775806782491509338030194452991067434764709754894402549191064181577386234430319623862248014004327620593298638190059009494307563037586244140412067723211372675858205430648672659872011962070960892012490997121291697559309037339691606911430018987114919096867052543266627154282569649002991696815935051094740684925301887731989053310769780660246269767885957938566073289423888296578483529974102194304550002114308225435633712466289505762113304688210845065809806612109985988357000636237741896541445013745048732263136942909700804339704494355590815506660523994291652297596984745032843840938707339433258879201723908893489296443344125249102822545679304761957016227762944877550239729283158173817952058171796815226673382975045509753628747123574219618426630452046044037307850860532849307849184704060727384138028849819025818115163509326388279615338598298489749275951160287815192131054104385096541601423974570394560869593005916577204523892667240434181516361750684418129757952178995802163307026638086755381658212541126955691568987817509628812988872764664976610071148927646373423305133546792782867266789365504602097155752987053238125745115670296151074766721826239557149538787826755556693274640335877265462094488820436310227585996155711442948666817666890457900886466096742543833614940458472672704226150247449132105756327620016175556215091087453325926688380101811421846429903452580850744821898741697027452715068289702222768621878546996088148531867869130841901052745149421205077625569417141214181563282822572256918933847494100863873669543422027373529905550509089469826294386648281849401090811563377424677205909526976924120957821506850274938667671091124300003312728125731078071498418688804260313669662071105107516690172573344623664832283609690860372556422924669234213927859003552587737548741204427127889359690295159902815840255326155752196660310300214686754338569522494911145981595433617211545070590519611618318613427417212619221635661015393477695234603526880406488538009722768477276373122075278491620393480769858075926218799546411919124134341889838712801911640643086174830299200726101508673081222457201634303534238171151378835447220333916157772896894161969056377939224058629610189721047341259588259169024757362530519762902785947888909022603075513956230479222389290696779521882462761802307952810736892717028610838887374802905028414417277762107776095186263090316331253790558594644155657115173593594373307702954977026103627782414727363996226087535071428516934643288621621093164454567620266775839931006262890878792672861122800070398826536606535325606636065627811542771247084984116002132643679524267659745191887017416818178951702502847310342806281374616279640660243989282339221461282558675910902511657940481390536501852254606596723442904652805649206044950156138562328482583949769111986023873474343153705253120063420670776461241875159658154931090859721210919383343119615274579595298478367693369911548800473736122362100323943910729676694764678619079424614968100172390106196490018213874822533874664084473111415471120258310861627629848809191789206111929553255154535745695623422582474261803707139161147830306239523359723427265306399812092537230886566212375897064906780573326027533410136463235245721829909625627851711279787165610836395474856590401789247375085900697486672549520947996602322321636615696331414462626658529772422906084114023764474093519923250044700511889402999938474715669425230285396077092928638482062593091606894492576105531009751730519334992986157894393483856116532963020194930507225338580828439771813379806611342682436845245679209835200923010793426340076409377448293330169176260713943080870013418275259040634797013884205855758415136940980204958409717923344195865142829904198944846844263003440222294908727709905675563359834942793692271199197950771289195342139793018851890679208268686868257368305274616206742961659585965685174860241180639471059276977885574706157510856978475750517360184866388356444046387398423524452918879312309023755873210449954266432580019962291759505734603193439674076269809277053273679303075986700661078704370604507122208251520323250608401788388334351045253917360361642275319874735672709084941210006182935111862634236238318709566633191558330763872308338064453421981076891912230745965546772802457372971189755669460819665598632327373080719348500205365913832450116296282468890587187824453760056432781995378636501801212739799789767684437821780899518963301920139001550819372136491408611441721769211325575042474175241135925497964515237357608261588821068346451014260541988978872619128984317575526088521623652154752730137194682487976269844941520789927564009638187785877596907000049576668612925474413351891492032409880254838357222528397963508870689996367461355937802779500918232939140914248460164484260784409803266105662161106086099188375724080842326814382964931299938017218597964039180061763933693506704093353874997300330220802593311236688253620328157612119209575341442417326414377610943882978008155473364443821284196497660706354007716888942828189404326681277074793254489681630779487960822800348879889734916321785395531676704921284310640398910271680595572077421842810211444101279580007999297858782580735681470473268279966659697003581444476345217625157434099321724531623600293974070931992822654083545488331927111995249335748970391381217526653998786182000384734242091278969432304965452973371895597707061736642246144533029192772973266232041619386946221772791870052009117240079375294683825121473463049581875315256016625345487773589054077840953104827093482306428843799856815353258012371856598319309112016157837805502512804352816378723134751622205529386386365144229088357999111447475321025984896070339418138061571773864481253258137294391900817045566297548070263465515031221783373883840909412506743333729872177556812944781533974566042658302066910287364228391110839722788096480363999607696192579306802531212773831253803127588280905065935186713108599171239421503260081656753777141719652675713752756871894557545527384841743837835296726719104556836239431906645874958379871061255092404511332538701630939652119058303088015455085552333301048577078113780483628250940590156042554258797741552291243248705436551331902697174121179788504949698476197735486361807303271962579199848140095229533446750380736198251268359125012991784118238820059816014678569086166963708186359555271711487598135841956920478973963641623367158529863313935995176561422707730564566172894511765863210808866188302079997610593638401461996427340714327836725399109371728655201292574796775921106824652081500855762283906022088515687683836258128593119951386792186500453281190251273274101707997887143861967655172862210579679366583322838002990291948856658768200491334218002479897968546154785123221761986924957271217610469907573134323644691616509996008114210028719209781626509485905672019655798387130279676655780233491625554381786234620685678107104837771773781513764860820005508819858138509748565983463496801772625738280856992036748175993037187349360357427695406913845869498823107848262322342625176077981721426039372905128827153683435552314024468552417086415382431789216743738100406808397168750240169672085668941326674202648876236953025572552000689833509086842673072408284706594741586658155777220895141081437884434916216983254176960872499653788843889858819297947261103005783667685920317565566538423970319971314737380637060905979057998265101518987198702396945668902608329859723088950433432291535644605954675992116711176838826877308452719058057872690453638874358172925207940827145294040606572058999674623041144087765688680282114817934911639960428870631164329804286514342860500285527010255788108610897929587730190878898271256217292162431895711620567820789380859650562142455341527789051050211962252639449653620336285115381061424144119503996883578286216656534063178289900542701477341020757283115720781562249882276478183079358488130372687854209154324623360231852866999071337405750020041745234833352666222679358397939582597620200295680202110484507447588354222441705012117443342882989512378698871613319703332148907582273636005206790149324286136416553520981203087051703441199155310278801589735859646100960846388391537703506521120672300542587653133555764638707334858495602085197386131883346757926055956730399513179917402652847639278237057803500800671381356332215165369504636560972663219507283217853956733633084440422946379916177589614584357346266415386239385806387620325247039429227676196310428575229900776458506604495879193034114058517441381189212105329175962510484354353553946792457994924782490787622051552228419022091248860214557595696418153119138793337119866530881745848762310644566484849462873517232888451023552080509260449812632074619564418270654808739527067350838162537045530435410093082749982181369065375736723059673163414805301856620828757845126885194363371052737726463225666755522791072846088572287997765073188773438568111082947288250778306325863449384553700470043585407467731814660290662562959651767327713631385015525034238796932251957679528146271677066234764149894499229137821153908400266860936055368314872660569761941266289692359126910675794848102095947999522262691584135482534988188379116584804564402227464291618856821325707333720558595886699354238053334850839051071840678018500815016360739362450446413550235661814875201724178554505753585424234210263255163771068386673004618085591661322859569163282045401893468600947302695687447448511114312012786746159488379423756108325072164027332416464953154975216673086734557271519866724829853865200764611613910371820427885955862465504556952713768964731963516329374080135446155346507128826418897987800382478787963306939155461429998944194949594184271844509017790611081303389046825469274330372416110287221061031961239531030808948418205579371028755513985673455042545322550018728620271189765134510596894557644696687706886166176117510328903264362816665894011725275138846996148283311458059278302567853907279497085722525364816183679022167112703935636548014254641005186891936195104682810821381505869781439569780340716242015279829105938160500955400244777080753276218149393758906811382186111526296780626931696475693934691733432599420289036555285239723900349333524174607767895894240932499075554630600804920474767212211577683386000104217666887399970278663077000306491652919646654823186530929881910729282969321908207997662918208275758257487499185496124215069750702103957126136357660831420241453561424616325672981721815214805806372274222450333391562871512920244764415291545740215829394888570830085712813075243351787210896646169037681894298754030264977032331889636538226092661116936333843259345611755417298928208737174377316504712996142866453220259909446824897461534221749638300230915379912072889402327094150707132565053811245571328288378482225399003208286015606942806909719756401721051607368507394082730633135570230210441458931621335897859077010650491753055150546550139001128936398929468563656686290783920696137422276271986340698245261178280015670063661809473617516271849579253273508861815249588302335441115247088898762662111035175338792050584384415250326199029581231641421991444591948789114246561986263507437532974449387828887035838896164169188147760010500205821838380680622984391190989169297150142775943354791338448684813499991927680596244077820868655202876856876048015003383385085327497509433216312587808082790443119268715579314040023329583648263590817347434272971846468563174105746239265186685480183445244417639046018837105894461730072359068626551305679330672800912267953645108038771852099648616752178983336147675467747835724562592076944277592956642573289017416794188899222546645165402134623985346872084730002428538817576152916658313815481152905602287346287683058523428882656223339971433312665687851254413541207818000361260243475801982970339953607030052694952444101063611047334636827623895583456001177042326076523274017244993179008635479769347515242461796578435559541537595662727551625246935714213574130624723550845319622764601639813781814180047255618160363842861398109987203829540027668365191950667982456041948079619406923375240649940010607098369012095602669364540255606544226386086943422867427281104557598397097191072038548333579649082887393129356732110832104869152585793344811874320191315069704207325233885527643266831753136984364913589590952859983321440235944050232018441258864545897684795435099871652215004593856592489623273678964808892033204362167411258986275470033111548036243149902560647605681406594578504672007164091923223426191406641703869809627309953152648401177854673248251052353552625824201206151036105549096466638755987692805032464289217342047557115287673692403150737242764268123674387457217956961813971959895448823023828373779269192112416367979801907327108991529307862592879884673160685749461975336565207875853424845808128608886468512896257208618853975617355399749617982460706151997932740506422321539905586670218101237418642255478359684421874715327738803919814778380908107817707679220866159100213236957145665132687428693022663348373215016811912183112607906465628458199458405293341128438626625660446461326753068834827745954587560076058097587207535091741029610316514346669001634247397371928812044237524217280275003433778212435355353371360062411493834955424739133558633070180174327959333154120159318772618633332637282459928272106471234173628674657561745848359890678129783407211585231346841259782293885531847617973043060636520950545720445814372682924315396348169038795497826075346232102279243388870664501048932367985755918023501213437149273760379676660451272275664328442106882459666585829761321967865607442142528129823468899618129903572287044407261585080565079564750177325512819210158928691822719155325147763648125316141247443433127281693453810078760377620279330740293305804091523478413352543579469154314819693822301526001341507674682574241920978740619944594668123909310973776976479706748332744542849824952196558776413150924574579215338848101934108383837171848570205654059177063502473432232565445100544711320904370007846572827420140989237682443498953069606875110371308467030620726610726903140289972359646180145694291327130182653212062781599143221478891211551860880543416917246300794560319460889983174196587435876000758517236227256907004417511387797731765712078959261223173579809381097436688755203502551820265002184384510723383338025874071480085665350176782058828929075147810170482036553671617831550968057805964566394252945868996788902984848810063532022213323198454026007270430137846904160616179421017969742693155046713644277683086516357033473888705685559961176772520580613729027652542997625444138395208708812733108697435415357640184071266846832685160448933280177012619905394834333293662311104403877322069917343690546295378043565510749723197321128810656629118101430908136705231474944110587479809977908127012602593689341575937228280872631121783874031038684949907472178487591572350249704395829919295472342431701392253800007182725520859019464540923853211530713499083304374183142013507653281487663986731673290084005570710952044378974667654059978460597067535787070509041791158557315954852206959954586679883770029902787556636337878674775533331461367974153806890534756569961194159482096515915432205745060514692957566598179560578241719572854106464554805827761886885531697432946907159836751358743368956875370514623355308616899174752541248166327796701131314950871300086142984498520227147585468517925311172909370472211917991042198636742698270675557650021519466862628454350715566691798685285001134499838915567106273890595736114426259437137097163702704799837717435701263878264684041628603245060406455828306909581215164212311923732015669297644662950563386570843890294713288035907801357225438092339517399279554579074686156559499452399254508136529587794479136429536504977461929571455120775295143639600136803538888438775592323977091295443344699671651993375077727128711023407218806911370274196978964723941807623394139305592095371876908443412693334550472171716546098967844515517184024214819036026881094663989942180677573526037763532518825625798562951874268528278121220807399363902243117953695555729314841092889249927571878805067997727744874868033506750666265405826715226600017394637768282415284507759874610182300299975205589119260946086069154190573506117563825683303268729360246417158866188214961409986568006545285176461003518907667197496789160541078335275207373409199747054480487720866991585042906241609548336391267273408805151984195810911480714849126198246443616795938323618311814390990416972985072792433681685417540424046061881863115197425421722545596969287190028938155547328566463879199783472355546611131075607942610102352543750724713360756243532458101314639438379215116378076466107367530197343729301457907914236191752580069555955760981067899539469518889790788286366049682386091596579881525037901194951017750444355435915209389952145359099140494116856679885519409485716037596025058639152452976788054383973209669024229693971895519309986709386661826667981588357947117403002280829915375526977236852137074168934021717504784447739714238716038815044596254637147717527712207168974490207569187694633757019506172182208113229154470525281422640384504595048170082025344582710962483105389539366710281704088359813838942299182948027356583553335843466208148512918306257858948687517598592880061724705149382506531296292085732904128703970907657842822098640406617135361274328599799219420438445841370867875702993024930147588993279287359107134154793555827274553967192144009053008290674752371452255287474364367645671721287582139545303596212034870138700762703088248706804450381850722550612973272894229936157193276489738767679814547411726543741436401700394061087838904252997793010100870875597503744812099510500573996540756728391684624409966838573476546095954959576898388840503646400363470149138218624192008309438425315461283729147266549138089881843696918452268193210081695490008674872839239855670540371640735298434757559332147786221050687314993556317960126539004917717755465366024667130887485807968487947327884884393738372080076639831516355399844034542409693702301217127660853914686977138900411749731519409411536091883102082232744142287456796240885346342116486188171792291240883318989627874042089370209594642369441343729991168459473628520257035585482561141782731861391515216715017951584644689358266620906798093928669803226116233485042570085761124513907567343957234649877972347860861697670676117378292703184308930950842581656884255230183939883754047367818908533282216071836432422917909915883602295496679070755349781497374455751988798712804985029094020421238096965891189460623846961217452132299347233325778258915888667757277480840718728556267506633184078470451255980242965437973359525221519983678705943043863218331716999982813477854127666544092662976372075372725260349370624810070153093098259470531670737658453975505620622238341972740788717662899655734587321357704099889354461156121613045683573131883906794022754793584945144423737053334440871016880882776482933130487222027873555475240642730230595074203380810349199089666418336796704665587453002138869748823668951924240462099296841567665388976984528269337695016556428736705366518567837329367172431022016792098210207178910414894142347521053059016954827015997338544255685781563580353390745819998272933154431351176840766039526105642754567978516060789749956680511323459563632295400556690795004031270222911717724999289091328520479212335231133400326154892714181747532480251334016520805408225268576951746823241848731349209923101641862490997938982545826660797994096189758693560562637272708795642138186272525451088679060895212658381965950641678331132002671751491707848576798314755468464368372616409886831082372045829793540912207785085083846751678633116245196830005509725867444687328635711860628666017892452274960441168725696191047534799058222386155435079426407449943729713078212834074016560312864682034571086426996387126250292269803617699477595719559605172715999628262743879023402558516636953408133776914469601394926942072123771276051153283361572915557355104239898805363862826843929753250917155616860032498142033151275752125103194842817600864616984863413849233958085251250817492081534525418999040297593382806169878914204975886075545441133317279561401186487241373694410973530840472626759844327156231220145252532094497205844230368766094373780427317712395893607046386484259281029574102953673986665569007771971253711150235603007467938463881159879630483208076524383447166537488909167560086179460577464912180847753835475303937876356749307484610957425644914814565692392121044914425880400599878521942396838712141063423560401547816288783563372900969019306520406503533100279497301675087744919152376978595808157174567733211540267023656274553222234926371297664216436097670255725343051855096395281773203890293097359203904913042050109310174859764117892236112064312013053623568624814747571818381780397995469297423659266088555002548662576702868764293782052554271289041397163205510475074104096603030952039172004230592444221778679690819498038506775787064362878975590160626943638898477790277738819755719012711031954695715636278583791756086997023788750946895838496023928656490001149350226425898912452774412874590065571760136057991265121660940019171450042968656045919996105858039422179879392246543103837826179579126948899869104524549711968800485682823281728365600833926587199312746048860310226435653930525195033013675832914561430012812903334722699840822817614992799049838632039448929326200564404044616793467389827683280654875192730785547187133461315302899529404387797671109112124386458793250098406509625243500646947896414989875603978306443766890345494951148393829137684199705393823519553729288447973113769176701028828657762447054217505977011430163168982455273279602290354002439484381448082005257060238991312059011233530138786974871566573535204790059623761019828120656914520774353718073193690813459024157553371183680230536422561864455760496479004961445378086000919607323394892410629547429472416737210987735531680836314200796801069248201441423959641812315371287887858049138449519356358938725321692374749877123080968744148697704252721495831317274085375499696280539941295577836860643004048387319508071452113362797240085023822615421784945176273793592050895322756139799476507072776233303837605806197065267787241255218135635369498199811091709889129088011920519512754413745058482005034425847352816837193391366226656065326104195288434784575360261637292741022711369161537425508854101162598748944420985780786676520051653329758929299939970023897869358199487379581830101434184758317235526276829087096848723723951018302215548405853745236931453185095652395326948199554176080380056407920534657129303061606912086803749436726089037096241832015467808499784154056759153137078677368624536824618176713438082543979328758365539422063992267004399749516258107655555690572724120068878335862599740602429199908544566076646254561337364190335548717970543327112658525877132070269073979950650884458662989537112829374778040568745608178748728189182066899604630000536387253744561724617835816214197451215911834435344882748180553069170014139249809830989848414815681998755794168315786322064597726334239466055568507917504001720706754882222957763377235980155719572692528085433238816648907220438624220240437069398204720803704087123165709439711329876350794820873259556937659404526181880859506441285605548445993281981480384401476983550106365728308456559189873533886538078314663163073256572552516561883525111461318183446822739530828407422609597977891760713803501191018356878612449716002867237588124758620061250842779529585334548068251099765483031769732335395595700135160187880225249402762532774653111583041848229426978824665337509838470556058557624097495064469976752450249680029951053921817588967590075448839910957406793817755352453663440317490643763988917103811506462421676601361751265605330461087907097133657598190086309443785355492618484689908893789360805397639757420087508510758276932705859444662428672803911210441501345632309214061165334906867709173884719476827055727750926993545621516515727565764342599934037709843036193934553106075805720565365183468853579696578470684781778054098099552490051033656205858223524034748526641609743972084923966441215092456551524737531248378381294948720915747391368889028817014896365646636738981992267454429533860179238117912727339038107110554140589289314215222076799757869321090885088840538224788551698858762678569489361423419559984092497977018582246952256111769512429823365121039533459569204302524824383670071272089030626237824917682414438192017124144567703245808840889846640860087910737244520889094944717503075085207488407724215432273841821307812365419993818629460007597739094905611640184354225508258058310843941711459016587554683569143389389443765570782498486204193666882677076188543980389318859262828862177852965981378998039939901769263570768343834046947694428909550263371374826084407493122945048058330758437124332646738124845887259252194059818717495754116789419973406526786569025740841567140061907502040229434985107671807596819710294183796555628057359089058444832335372786426999576446166171700613952087220181254662663257088323202944514749242751324324378239625492927126003573307319631609301536693112337718849627833132329466438950753818081000699806576876893704117659637742355265808952409163261494517412297490660552177345588941991631324457696493596407876643348668880009356501741879691780327248275657106475373059534351517311669982579101564397900529481177096542978337843658796293400844859560023373963239917517956377849506513234477191835226535537651492369569569361108544674931899813979063432379550034352200520634302514284950724197767385724453605187175989176503883433259854834579424541568132529785690226128042211867707799285301158300709768663427604090452546167288899131825228423781228312534682629245215532702041626114041644200965377123387936879021788614654692898160268078152659868942232769361983398016685141186671843165306219735410013450118370445452865305978007945616564096378665877654617208029216469474909571761300272359914137044220744435755009862350320357067235457468436536106692759950165222146481594533278857098414508401662221815472946600745227548050583371368602869302316616927490126067227261141846408114531440471200795769027887799421953596586564596930887449504241529268971390581140600037206432803971631929156014330950304890491746197403416239773804735187335245888229110996299636800480756157073722930106075532117480122661136014061794995278864351650290929302233511291441853057075144818846321458859671528253248511709208311869829450937876985846936793223411891937484592023878267660121003894309016997026578903127923358496566201914844648449001731930434704837388492946339432235461060814606842700116246186188112035007624370895446966346468238957963224091289666291133842175272875434174213538145784439033350278437504512108063978522191157897707211756064629162069310242824480160294103723367014401407271934777661755270081056056831865699850318236336919952868401210034158471264266241209375499956066828507432307681031676265496775654009182486065086450672110108060209154570505009760238040482022146952146516609436554423196618201916312613290437270721565582682009471991988919221868957590483476788930999374727698286098290750316799553540327328114957855832834173013111956602806602015210073810332830280501995913153742932540884822587089584795630666412525140155391801469151872460424631713765776210314310246335183295739526008570789314412352508269480247075615900308777606563574851200861176275435280663926904387328591306952892747127795338618950219549640658452981559097707355000120352473092766892970028104665292306297730830978591459081297042282996747091427114901762451514857691632634793341594954142798710755561911096858225741133833022549956652497715834038023255814492408808468616748347890804504047783310872476426849883093704975438359076410518029839919324369269399598013577202605269935384311927282972140242413760676025419457116301207996778724432088676246751609617983995328640894642318451066206080940331873748361974720869025060870963636668720187648471768344578589638074518830119227789091089339980693076826089286098975785071949489550851242589025810104858751266733271371741549202162533605054207420852846542430202254257369062378776099356042496943257510628027329658689142063100098045797860929568489378495086884732921086350404843648866083994471654987039644172887061447691711692609034299866997779065610846797982924673773216503205025354711491634283631609696222660543975507582936629401864224848369469971819759448458878325549566869630725552637632660228148446598495626237087712498969197115008613640785164779770866051138709692697360797689725400702217878513772677381854633666392521091495278419003444507171546468027850858305483741356684956937020325082566604455318968528730091129063169113526467415946053824040992570713941454030401199637539414669868198218262936885811688381403481654633351498531975604692211998216767778505314481158623992098303841864827089502945604128560733178602632208183155524238330997926789013454638130180225412889281215445215763123017784191257254816205743620745281218255136416599820575505416886711826144776930033016833532496993704077959521462290008703045531197034405870256762660409963901646342829090585894197095126438911207303109038043251467761502197966507046462119911959146035734600607917441974135405986591574011200127952447052159119888734413270754973434562490771282865048991548192238042701526962454068160735513704830744212689052814361341247037784422482020222683218612577882503135489873836585875262602130278712965405248389121890010239389534378621078976252182494022491138144270238225785673340867883360978399449863084084511264913029701222280841907603691719166548689012995354250174949399579128801650059758503021346843933988401160672487035491427307398830852366799739438235747794130800642850524671502938752352811491879150262170327421606981508114719452466456765360870189526135850519017254625339849214900280472646530578059813269374142876810616425538485472651420649199164631130472034066378304927486263234465520098708803034932229377659866881750232454156790686159150752529553992469762928615313614537471019524092084232559056166993875074428385279063375414109037603838530920489663873425848385195027796742112251552715449625310918648424813534150180504386209657461992894943234169357058623546181190709071065079677560277806632691901742762213066561054893453862928832107322495117685869794934426463389785128549997542955827120404102850627616622447918125557674410343196695575941331795505021931539647397802136429071851289959141278424424718882123407125750704638326985928327287936693709478444725369382771387780501199385419066070958458302497299682880950453725642798573139743676359880846324140086603886451285208123147104428038007496117002033506239988060139775287959213607214305849648145132238757850859771759251719856742481953282031763676241775136260424612132525478205795822340090294526441363110279541960746292173616302042146186588711795362014213433633800457345724449877808047094880039004551078180570212243991863693745900201177538879615458326811650919692848952764758613206643515951127496770287241007830488569854772368777910158843728446250214995843128836216961469346636061736784289619806968377425824100216604446259050597698134417403768885024392053123855078354810924453988484987958859621259304002038977118649591603078221952615181317167566408162417219553523702752160054271197977520340610184270821296379358476713958602777049801999195172104190910759821386341477621450165145066231341042069449886649220994845275445062020329829371503652543796458378049681662095927736258191967435261056401222037686589708395049511404991893760520374782063239691681913238136496257170406788304006416484599875976162044612159538571176662760537016937776602567519601642919793804040666494225244436323467536020173570001580954584722863859387382444840714041740793783822299304302002013246791437258309472750479707006882581563849408281901346068205395709168341823145596031110430958124831802460693530445025124625758171716859280278569618321420320672941244442312163548372738263387096294071729967126897274790492757928386007778167418518043257830423914588837263297790267925945915306946189945451907906659829536582290301291287716135569312841948025134855143876274275412023369318099612389632905623257923597847920302117457108242054987719480309710301055084182609617799817631691785849219062307109297301650527505424744696451190309356873562344997182526592194590685481525010585058313845713028485594420735317825993322988581899482367211600807689347464633966105225101328032640213552190688690376750267421801048380822859524226324914391562646279365793558179215477193131906098422995920296970606487062107455514627012185179136149384878349559422113497117014493956676499580789760948570112744906000658682412424766534884007508376981043586023614875235079892158382684364833805199993076916708316596238291190270911176832757569860190442928736382615862854936850483366883563298176963833785052194293471764508778765797913989664929626213670116316471576717060353821776588848500270907030523510444906835253752601520902820613823560494255490929563521542996862247674862754887219449446389513880848182798055842577594483827783831715199939556463763078457225000904902246079180266919784196712145215019824679817189143073118180979214178946684198227818024444456487581275996818907715803557794548467604962169886159645824203310033042786663051193332192692440759738487393627213550694407024333295895664829763777688065495983462795026702254684563995378184449744688716152225246934357802386127415463492167496057616599484983867580855056812494531541407683530093096805024243896348104123195820325631571988945525066443100949704820935714108172504145920317682902076869985585672770151433487527157849036758761396262746630505313355978549662464239168420749387671033946712230430123904084256508253539372957604204061483289183542394749590894569615206902187269637067232324777693814543563855874274143600796444793307433293884426400252329663603901665363597961639643767351491416877176026853591331624493522395892203745861268833327792370841216326857126676666311052929513818143323532721109777831899882442690536131539835359866865070136426971381355796897514689220170586304712540202180374270368424756402294233190056525565268879834759113481450793408463352453049699855301552749362835125498984372992661359596765145709088668854524771007896280202737919034542548626136997153498133458956915079766371091214708298599600189105659969259014208898698642655537486349131260097616924104792168993078092077684696310259670745810972599201205978331262800362070395337339364872626723302431511864345137806443770724778793912659640381750947620865313609022609563287192714078008595499475076484013369736325237057169218139005193901184636305240831430066144507498345138497328882636562150560546379401332900808228796975879302645371424445882831119803664390489520274324129420286989690765837598713351480466068275488393216888865491433041971901319455031423823126916881528153644734904285134963339753980330531907402544122139331499545543845976781280833973725187993618610255942251774476524850928841689585126735179153888683194928081454603624865227798472389422861727679229226889353906954218328205130682427150154527485877766265446884751183208101473588986036422900210683058926868056678366232564069655252306437919339849249364785072845995319063039407610838575415300985962198123114551369942872304370787580238599082393552146303252974551965615674816922088897794077678372035654784316699231418844939271984837020587940922577087714136858925140128853597592424352774745123050737331674183989560786142390758688879021851395082086837318168589353012153088135411238095739824389957472587890934215540316504810369194320291876534954181660936633437138091464786333316703709559895817518530152391458164589418603972940143073134565119248162139951217923227073638885774999114706261347808881200622290468660653311445100566884557473087686019275991263104237354506213377713449589951204424059864869108895624164474863126323016653319859074077947762824325754081384476877548357508091122427718766331874970903259492292478566070971341900501332049748175985024321628330824576315733054994550779977039510263664305953143909601210014345526671130526028735697408918535523123571736900784829603024950690518373651071951332337714611051952061922038044067005543647128260761020329072851820616061707013530801822637175532185153083254299452874881879604761906652520984434892941426328234342309180792974521282915561619932580722050717111612059481722494039371446464723531339476554131968821750355455155222065817052834049876455181196325512361309730104561266209967251084800581563531885432832259021135616285915007882862820354064018414826780929751765159662992087642239739253117526419786749487414195932593370140587768102610125467146725173311373305522204544881503313662367965744914830226869072701470720177967022011560807469913872698563622055536895690888875706032701741717566610655698868085040242175629454935407353542736450950252848495589702348000668525915642243623895295580914658510524440686609100490378725888678909331405047708861955113539083777405112429526672434564834602978665399885737764561837908189492915063806445533181430892005008047996810945376536394816492122621535025170232334717717297931340005459194205662159924035870041980692424484460407868136663184729020233394515771702362362599804975699837898683478465150285399473907083710677611607715501898617532121970401806696487059262851446439894123176038846282557678746535352238231094917411245480336263263902235194863641222104835812765348255316329242785113150461951390496857512947577295493098164926671225941278857101756701301412665940444640771436285541310841932731853756593380223991723634323508069298888566908784385582213551130374657937293910939074968904425128662038060461398670825851703314831286739254580410305274124227113915182283634057010116603606915323605242336678483394107102871470061085321341977593555967359412457158593844946142050229030535107831363835145276586792726740407297471038767745006962018400997517917235502854725967712021000917678575373066788358044640372985676859363468952074553625148673817185788498796268607636998748079039171654158687403502204911356584136425251743443344820763845245640744508273566497064430358025165254471471516158633678343874714897440728635696990924978010959373650740681201340452766535411490108416353859183397151481814618603594608514108941907536363532771277224918028028363409455102748490862760956309284269051739799151077591921842808140803096746737651204310666843736982035599295381652051896655243465880536414718437144285753668048604364175366991721628770712337592868752174774892020487543193640835756872810686648509791769601866364086207252545899147752139716023856402207100934696488832121809933145701179155459940468451819039068191192978405062651452147801555499625273393521590735548785185428839327838935223829976669128591046598420538694984380918475202785598194411425090776809204067858489927639283957261412043990570138408620807967771204983370651448312955116826511938338702397092897514059330931022202704339032154312398011560170660602821650150556146764359547917824821989264878052185807101240519568081647519051716930032322240044749234433859869851720278650704051153828305868751133079533932482407976913861263728330794931554908534461568299617358784667145061034227481380240320725734135785863762818110135840556901950550153136741385218273549790182092639619688561239399509342326533828096578318017585801721100047203901317095943572307055412563702845611637825337065882453127466496685210154115235396647713556717162148563658314864409002621271061734357237373766611979035831856005491407431729452844475576425834435768959664551384982773007506875448876922292860794377051480699618599684832281253700166782528489720777397389312469468962234293983707118306014663600804603943742296647514089446179898930066952403616269121764039108439218399843045993609745164274347734750498207665042616788742843763223652676152439246516180988373812720346149936880196218505492663822865809960077960060147263891220124303269680269522389842298143632326978710880252650169876429367317585104239790683839801207771284252534442898365971533877968594780100406822571946867992705777811457791097335147393708975585173657973632034768541855062113540827360099247278556081980547138455565112376451330294724153919218734535866715663632089613946067129785592889264298195471715428212374266513548072632571989875597119100725511020108137270870303071704298691246044014208522441584662511782373907538222573079328786179662750690462930881999200400010689914512361921218354263866312390748260075111453958829534122952685354335337107762838677482062021422666468698843683988625451988323393958867020843218956897479843723768846134324905880630688829502504110244485879292096529095620854327895293109678958177904545190779917913219199366315204024802721479459695016290195539092200801334569381392579863356564567555468032112815935076437615540397192418257564364447979960468968345636256207523674025389231613232840981204497018335464117104725767319374946871639254939911643827367825544871357312474161443321004155643330980074320761215553530021452891246610326030501222059183781654056564956010758754701959569363485213509819787350897331752706545951129220662353607625046394470660134929444847446894863886593369483731834823859708288080446711836249943831938112677960834142158838885292131996321903483692412921631258124193914840344817541196929010904233415660774112953916193146122178913761505664413750141913988281143211850788974851288336010385153400863652515870108579447065150931370615087591724783379974242087588105785344896535990947304349186289088863701804331110439693365335837645723588235306236818085480814771184165100718990089170478465164100948610135944418056029466214643604637567608475884156083505407277579612868075441374248246376690927768399423033876566199090119087120071621802096966757936969985339823449092573453110462830005539502514646825637504565947896370022524538197109905806981508636236049323619315334957126637732512908057825455894203615677136807656376039732947281731288846010642717342773310046739241772234580673819840982467970713309098629882863216570605430422196425440907354993681170604061297144369917703798473634420416827628260314225356455384901862179077573084630352694169643237658312045516040159683573054105231698164390261877913666142799776323046946882344570755786711451404667881693312377027606405709171585075971093917215046093835002072672604303799271815688367889656534651235173674674096677534847358882538950865938926958148010794781019282379731598937307333577726511923496191141699807484234130653113708703488532572201224164744431209582610792576653859724609138447068182259294911389984014303416454779962331698930193678713163189963772705364353214029456350892331049170485425919804123114263153788673999613917112071944725527975120065400667664713219827190421931621966507914850812892109126898400298437733348571812555089845136583399751846735038672770910711914005247466308294041454344529651802342994077788242697164598220400043287319496568331449340369851999108261072065807968639456792675776499613200371096959674682673759374661022187835525588309340797755992430640221359581782180905782020346585481020885986560884221338914129962887694005927579881653248140980464173582931196034196155803686506870956693891759184823457664130582668370450370133535833409130781656748124349686882866142902335875507248466189648012062554645508552262781523192162902160359206957481598641142445647204133322144781153392089682325815265823013603328129043813130383284191843120099691200209524012875461093510540051739474679569105815822028625830951296964161577370217630842669182950766376284364928850805796326520353156522862022336766754234930678570960219869412526473813498553240035007133425953098189709912409662804023517638223332313715329045325381890721997283348080382443969043714235220935339172562438236916620371466012013638548958889070762707252370172131747392824615298284229624101966215268503598721736716175867113542639382803051772816051975695328337002426205313988721924850365639526928108981870247559912893187853945748608120714940851331542152824968356732170674210088168456253071776985047005830970583306182616820371434042613131353860962962224901015162680931511135428464436664258190092383140121918373350121719998344759824743103716522405787418248101444548032657636919715651272074856241094281468310279189691155136429455692021242780621720176187551586740332667097635943016819321486974617502552837833650636529307140213429444180054782620342982318852825201455739019109170304928961673778928794814369542070465320574562365915255377916800956701234380419329745918770595136849697423511856097522826158304726633062812537996003953838952220258744958373776360399972808378097516212291520458017231853995766130649465811378781975205062927918507169075930540779134423339030457346200352857346633820887612124844423921064142736778765351719936695377991910461365327670619540956659104075634366986550507163342353928029197703392572910292361627763563186141588898552208597200897913557628219816044356008103682807810089645443924456581659005430731295167186613657201860890924941323342093325791440808094052295226910849230182155707964561675339604204782490336808151926967376183472033255505956838114693790185427149201886834202654674032444853716934855520798799333238146319368315845335447857500392092097778169375772162604495207455939444371146171616967976444735563888784459348890681456793159490439383934145062030936132205223936838996425176552084997890763064591734412157730399456385613511762495930073510868450051565047281259487533659785849431633649897630049489427058244565244085563754022743860421535300452465863286882333607233343424357775817135561541453306360977024771677377566150703486427370492079127092928828326719266213552767270413986214447539212836287917020662992303714912204013727300578335560196411150207987421590602441361786139992187141344725794516330303823974238942934063611531571683930908881575474259904753300778905251484794403535946172198727098617630277650324011207046219295719752703234360002256228273378191746792686236721952666707207691677329624439746481642923738812153772603854434082419437963282244376205712092243506549982904205718322371360095793050830896309465160952399111431776382836849131236696953084028724077226375209562011626990481442113338080867585306649744761446905257478881863879306960585259622655474321683146969607019529637525905276045654835919567158836279054935027733072392710273310220881101908870455055706279833621274947526958399666686093464320753704030025068725798757648146304197698483827056210776875493043241351992831765310784100086431338547491282945586880674688806314596840505630003397316803709669337384785003021808431446374047246600308432141723790091210538545896513714010464578012386610847428589435632795050095902529817588247997276643317339439117708957087139567502646600235270831811304351463809316412527478831790499664536908164817480237689693346611135574113610021763489848824111687440254318814168297460407264493874710730720276380210839467463593064978692960894651745200951817612023054936678046678342859081938286430626636743507062395273241240916939550038165484236669127020361153920243902328552891800407485249098101297177275910268556207556863176745279788268642221068208095981639966921408530583802102769676608768329756347539341253579971226278446801066563574734302986101987049185331607492286639932835343218384759428280137879084079823040296306070799803356507750508635110434659852896665569804262536611201825727756000871925782732962149781854019494400380066841852793700817566133134359395586406017530442656134574966361525126513985447655835317190801881248710843376174670053968045537871384130468689439594636926704879790702156008495768387176857442863511675510409322959717143039608190694244707177969563705540332981425291391735882193559929408638262562734306941578709910364758357914857600721292962040695180692646483247915123312327415828526956102581406615954529939322671937500796394447953568142844954210617833792946338575825371226367449870553203010751501720009912951379074160380996313472703519411108925005978114340425208559777068433300968378790447803570043124748506819550899548468801848327681962069366894323726272147054593172452437836304557304934601913446413256247283594717660904594579525536104212853340885633933595112807136701324585994462904496157585979499944634223959450525282730380065210620711983368580187341768767645509173057646787574305740371758641105147221601898270144999105529182211060881792481605153428300256327641104308837027380046582965724556483715845232460609039459581985423685464075743603373959025276179599052204302837547644075061180720224044682799614401828497674472188105079988216432606039413767046282268107758155996353935340779064418926156158009501167340618096368000190741209660014329673995199804000443261827539958111717452866075236822847122477085294075569962572856253709892285066280859126699529279290177116602957872873004425736048079020730625802254391270716232494300824340959401355766989353668309737747657759386356172636419992089012494576075629755849790722153731948105686067949663765557545082883809604314871356249844530723538688117574453093249602854132331857363068797183478463096955031740610067317906706259449861358680522931042951996300661343020526746865003764555313125395857202173003308393078916834041420656570854599895155305309517397528586429917125120383749264384325243850712000947839111395354053448709790790490539998434512511363344241058822388504263593295883937556092068795260253513532202461870189205342419087556148805867392295224752131850935946137791104903646464878288975493331922916837069403970432311025458677542844884082851260035379265040310553474381090792864946843614687012104068118272687338578911747439949662981179831120732729438648682085479658421742740979893193555122927515178383834947799372093469564344569513651680771803403323340210434526955066623175620209629239300223230140309012113646030039435844581285729409641661260786589872802006562457654441975374342249015396567457096639655619087194979496218632825712010776321451715439680841334834586057745011424049914094072408894420669350916811703058610588373003121760374677938010722330783650031100009829128262016611306432045742857383394410471045488216898165351624080020630277966826578606011304037295569873086646176435306574995244548128723114930078265946769140219540325111514141967230110061492441354357736106558120361927850645753034036922712963500273758861893195440376956193323090722127891857589943248217614958270163570804235317999542115390214168702630616609578249341083593509412230098913989867893717866525284965429654252211101099705420342763638259878751862958961202524133426985125265960665188445668206267660285401501176494399879859854430438471200722674901257003281944722968497292900270560010059810744067728591242576104365838888156322032520319194934491328350300391906194201159927311076940998731177432171249958829841960670903722196400657014592916544657511233733652839453774150893050966631896604281634319729901564205094852980837376738492876374228644633288154751523321278527954243356765091685221273515852748492202247147565215047799798683466970871853792538666878756627932061379441784634044353330267123781596249048633026845191960950248185514751388243115579301286989608725060650127822954408213759316121045692861889104764932489526765747558111021321839109411115155011780618353379237158676860947006740079542753864240893779852007057701099216439798140452630249437275200877197473297136495051096183974443035359584388091754789721123665463464771641449475079274150486237932968583916652865698909099170479407080410603805305033955399122817065778052214629439563774638673343680462494015901784826796911515231493747283054066882343515476584180632227215947318137757773936432828819528487256496784891374227694364446880774141839803333745744298688163600656103416406005510242451120115916059493725648369662501188585390957777700153108078992932038973239842671366264595984822765394506665316606012182032675966631062292212697892504884404444178866862891307820057713813943088652903009685596895867154026688539570367926222113254372202365172640239897640889997473601971440791441218454416504959651193885337098573675957803029215383132051910315661262893171541303454909433672224854911245811967778325885027989774023237197979345040180843786855127134475377193630023401688867986503256747442855727508983448209765061608439131823595029226040459078250051500200594840656250351167333110307250268071824488784376772777092452970428439860066701444302398270209789534438233043574164531180975089520325984300752889547682478071938036095130428841376695594868091846153258191368303327834367093638077047196623436563481476914046231197378667262358872479122132890921098598563910685655145121706862288157888981533952971517780393916718733247497996599262926403231248244845053560833664029647576407212544605108827224342909533566243287849676404966731964253653963856789214154242649253308243336982553707699102067102131259674364717697921561652651762750325462006573711226823279455757356166524620008615501384492253175686327641899660539909244278566843654643264497858121564995636742886817524492653881213869579542193609297101014995492079033633213145534902715597661941332017857046994445829778974447703995999592820502217977156064707558288301974959406000737858025823621023711934194242417660211612007791458452398183221319376689294101326662724707362075951857178973843226354978380720992269638877643531360416977217321334239008196536341281186309628428076333594441845709506118839995136938218831865786147757805562340170821175361929107041764785116268485522068247824720002530396854981734464025882994834468192553575939565682756777432671028591846051337466797435952804625247490683144788287955404406409521662056677882033673887942736152199088952948288528885778869246638574412837031519357592677654599766820021455629322068772653477556229717474536818847451947577020949589194466161872795829298648151834054206100218294572213835106408348029288510035423756173797966129230984753503528921124997599485835697932982473292711485619555957496409295051068729544312351806285369604394793510863038830130270780884971330039604162066282819333610676287347698590303337223466596282529755706916382834594979544123858573182970357261122098670607169179932930247237538616549111406126600601242456171112818541360282537623780404828129636607828505195911950764096837115407613424590726229843975847794357485555521316716004906925789981427940948427186851224882856447979867817076528893633369713193359655350907726372220773640150420521637431681909508458673990968679391874228291541468193715678555136990609787809576999896433897654216857989335660023071035539158841772707232440187346032388663897672903137498711474575670850447915478051661488662084620523395296108025772350846649024483629642463018863744203354966512886022567783349138447704315289674570315241560379542686504195916710713074382359495481180692096997944129124693149884582219719179960662717562900031238231659777464487592363641150742786666372271173583788546318548133632500777163285082549554587556979115216155054458736890822202148039296585541769088475861444371204288803364762591771012416215319383687704133991452943791339500276632994391401835601438647132342285099428660459759942952618913679516429918678287670589821470848169657669341486970221963695687082529789099047734323497103354114885873563304738852467650982647718408741067465837995473003303026748128902550119884069498788182553337759141986074764896859122805023705912855506715730401112585833356512671943758971789085282285642038488394494253333776857816155367823644210965172399383097600166973202238046870732267049578606769872626878205330377829822471064871085945553183012348579140701839876696106595113414709712360214629354386185630137294467831979493516332833938058122698650010117937292647634626783904721304884674840934057712538297296653659902499716855588166337737749775931021247544137783721090851913272064123587957058154658738305775893642647916738379081350464270784973992248406636408238334185710562986787800252309964776878518631680509669880386605068115988005167193213203299153657860065638991668858726276820215778748952609631251613646684509084431812656031056474810166356081419818601830879714749867757159612815208120541686504979054264507946777956319704568036566016432486524451724724595885152010049791146488968876909309610915775628454952859238088904919478374486979622831476052274977443659593144892578203249044518510011293879199749277117337866718156117622620058417794046295595625771517650304677607713510344520726559972310845360660704664725922304468916215019216192640907134989321704542366199846448536621584761947428817860299068405076101772490186465947512058900563237003407170787914786048213462068962314376985967077150856485693975529595249309791316459643051178151071261114743998921080882720273530463711151766053675584703041075210109344517314937718817644060472620890997362983535312696681669828468630076663615102045182427270206123303439993788515003988944549744513252818422124613744953980885572357513685392116379310008732180993652170811696145919525247954452574602521134301966156624022341265585807175456125981622519367835719851727850620750473614967565619396660533514700545738303628224444125764201890452699174971473627408318368793430494534150481293561473818184587643203724309076523330724111477811918367380369858547679824289654813868983758475818398642927851053351546970150191150920215474325136173456605916712563890468390742530593887942266780324132936465709421651234162243969284626682964129132143557631670288660797913640050813873100801970460019946223642452246541299098339757408286635552592694673259844512436909715161080911232284908885887770926320722217138823428435650404451525292448582790576657671623706205809468042748539151197783063663075245431191820011687507149334157939287832590529754349613650667119018521899277565573851289650885879701234861110232759291718746237226918771452300311208252448266937268782585024279617471689677406111400896034571085636766945844306383685005251782691102350245993298163570950977643916849907329163259652397337225377649957916536516648120209408821123115920501822877795185184799005917871526496037408145728830875251843502428737695292784016780065210951257147656304017069139824142281965193290037727496704976066871816951908442543125142022250415440313330419416776561965662290730545815235205648885652847835604174697955288776252163592236859658962611989640333111214553685908903266842548867622996797764825751975672614636494730344227690600422074489065305796835348936188957481617670116444708373661934913081660758693207181136617956826434419704177184794302880397306696033564787445599102843520303669529519027744551008943028847632495041787783685331646964163316829619430094751720478270489654038900170150630230900183147958124418150323563338768201703447209462384517369553818576453181052173579101852822316537691486451565311986523043560527514637769131805946412919121308839792180836610631401854205174005330384926590067505305015529270836147781613230514227299583598391216660732250351317304373414969279829932852448097776348188583099533502692073447054902797416067979145381093838446371047013630850156553573002343637581109815838987406876980966396918725829566596394414191800890686057356394002469896139731858309634435786469439180153363014948991345942408730219778472140986127603092597229469988425228553028007972825728383390240381144607331402862071634520870034845731126213061650186629049102852290687654579207590693111874161275813975831547186756709717242903715101625449424862411850336549357868942791733676006111648556207519713528557429494099508743390122584747909198807893662337458321270457810803765516196879588664808314464890663181563775568957183566384651699176642849726659428176320116828501877653189002994274544388281390062822534867774204285722465597617798497702454088266208321376236458956453635499468730645491080397929710319167768718130248932700055111098584003930135454910633248891934492394669814076755744762471988314588587057962969641762097327864377633836443518138026114975652142097865538886187109627323725459798254088275244456228358422617781293966479555716279479372280796965090000734662254403242360234093317797365895359083043079341542482588756981236994921665159675581716250602532432613197566491458100857447988863930464017504944213150713429188010814367176794053723948265051304386240570917926611801291294857859571474703664949926098273275000735969252999813698837452484109095911129169715146490635028562786219812281115998576119955945940911651184837829650522180198823336591798914222056455584180792399119192438152374100726303823340743295860151699256983443927084761458448700333748310454337315048841095523524082568357650767349223175961027314288722090574927548960084738822795871694650071405379969726551280027935436806146797411488207070105647223405269983423635174678886390439872836379269958482994953551543276648734551967307763346558698655637538575716902789425994105616139316889277030895018450037205288419100094176918929442994450600971772310048691926925155790755977138895579018990192017229308656727965093561051472057291680562972549776284038426012758548896115082684050922996839316829201772152503220462843442055301091257794204520104085213470822824158719846805410919872491599579979655882571273761805900644524428650754631421278646198176980320019019982825596063854065071709238668200263400794595594774455362788964078520822284724292131072902423274033331081983367218334341345133120304015486887271066175950939058151924065790709555275729506292301601926930482266559371967702136707609763558373775395086542237979510848032491598824728626351613406378521010093825866741188921805834140926900545613645459179489542344304996892192387212884991802584718613685224137257684597913009696047552040132542749605638121762396204489598510799009740112099829887567409987556897795616778531956870406975767318632477770213854196633828536669766661366824563274014372802817188413753694020223759259939142074137534663984292325440506203072858064809919491881113750869188290466711700197829930240036055863441696404143075241669085442919793747169764613924652306234341514895251761006962717620953365475846318741496897162453280352815095338877185542308097405040983954593849946594642957961923686027644787404576953991720556964485527570610730637801535398645939728611308229217211672042630680542015783934657589272102407947823925920787012929346600265415696763377299619130256636064775667684407017350185091105903102735787166017225095650420834494197544132698529302938364992248238097945185946881401058551337587163163797515993337923417773177293605657528963291973748406917467165090821691625647936520683378246777237360844973845262416918931083005849831311925631759282197027600186934605475369210377543280309270889368669984433253090692838702096325040020652699952373495184492266490836857370010719867763624485437577827232347263515515042081020061904992629260078294271116137923044999682089985418526528755439342532553357694515470333783872611150034894002044947382515250666315519746523357315832357431109028521888512788491061497527113701746359161935444944151354742298512892899185792167135678457543682801330737899900578690575579175605565176159369141220867841619109151207658834862365317399631215316816731250425908735659364119988716168576198306660926145678731836745528113895263955081499884309349958929856762750728401921750615327291347633329926544404818643816256001656806637784131698304791375078970066262841179302823506561634968879792341557337261529465446640598404767552503662415656057704312710697227258014683238078186233039222723625167488397314346403397823852634866650698136637718983282691859041483706798592640095409858074085647659115532015227706185198084409957882220696884804535370564155192384378668893231964150104553711304191746030004315512026892063833511944020858535367729328626721677196435607695639115113755537492880521467527093943806774333097050620512198017409441207834911945232212492884730947208633368556465962824237686181393406387980120353465167206536983719195196020204068421354096598710512970342708088831304582363253901996089333847131063273558888023221181712409751574192384947780440391578027028466514791755299639725266807830485050581859236821247446076107308993922656871540622540330281438403073695884858312804503167430726667128703918774527196177953578157492717974463076951022195611930290243355492922141193112486752561050181605236779148519225822624129135161152083226141425474797967813814150477811349444236378267572860717840354729535035075971592537775598864494936973150817826465025755732212607651220201541649269972259549525754435968018263827735198537008796835972891887963919994491164324179836303263811452319168452299444917629477067109515569628702773841699947435242252344121165477850456980682421605497875080832961962632407474350637815766663853950099671296393877674623282556021213895858354778615069427140275233455046525297369339753995822590252544360845540445439357269233950648133174940746300823542600917699052116863586914051681761796136417421864834437041928785566241055178787620824996919758678705331272452485568721103321370206457670132694586880865616186035395789096768247140904644239911805796259969377958188110661116943818546037304123201256208718143288991666017049938930094643445417400929107661870424836897037934236081498080245533155573067030276279632600456870865441590989065019467010652983217575292687557563085780216046327529280316217104915100766184271507910233645492709625796487601729103087540004221285131495165051017346078913265041881642274842083863853967639180317718516394069269278007787564668143321420112633973311809514123901291877017516878587961100775389592906009355045098965112101480094707654145038683330807876056008208414495705935594469803495236421976856323480383511398546326025149298502663834638099790653036550841853438223810633721851110363580050499328556937148545347220745986694320195463049720247691860817709620378802816736442975353723126257243036774196435791692510485379444576949081255583803563788847142654296760830937434780431941702028131859332851280765124960902496658881523672638312731854592184407028777758659548008644141190416223035612774111910498807225962194860918718684761547823794415530571870522640955585391389866149159373611398044529049058980198188961169699347912255338999519703045341129681153753158132676497711525002222038433867097933051415872289498409491271122764922285233735642289992864049101641996223625349080594962580369861384584904375764850938628807922915768005402220013863247122634676117458764597099634163640071321637772657429696845729230733866011657664256102178592737916342054536808645531111976278433032788965762652528858823760682537644155036710628242414591529847112590764106764759831154110297101668180896381502975834205054632906731751271173225445815970345845157333687783256382333927035435469565685991747717526913388809303529307507654443080037525726829686134338159301616449621164243452339695035934124927381581926360363017389871629328600685243452186409125916215553097443344101159672097194112123669040279136910018827067120489746748508021233720934621842076263941164657832424532995900205351727122145077002613254308240448132667530505091146247922547805169325983035951684457426962940486544594290656358713143929700277748522650168113518035031588294008386410981260972617893237870710441616030374422053370046797262107096166388463805248548392302850312203918461319157943793291141887070797313762146798197650080227048726880120244442802692958884561914178538265366569609836816350183539150654983690262480438645184846790101540039316608698599521812406388361459910854521494396100115982486997677626809610628945101929743647819970270739705412414821686901053353467132903249938988050035818651982382768392860852489963876066290199558449063654066571034405919355064704808979736610917121770751029155189593543508524979628462867116428591656903479914552149493844643131417605176748989064550461045265389921541302255846451921694313631337160263895720728443027701637953703594978874324327426102253794720842528537557610044343843906401854533378518085085406525319332406867344548792336061867388227075370773691102430992391983783245256508355554682948592124352912709585941939535992980994627729458893439673520284102043646219668947129888843258547799074936760176876804176396469355312866047349628139218622256679696595642736684175718947663775839435563543623284906664941860993637908508197043477351791275053929610626413692009583293378238656893523626230880099384684340379441581127969008599485441919655312956974964921818230961731397852862610721213800963515556489224765249044554597189960714722496894294448760754738267781481068655460776219985061250912168783178395193531213159616104035251941709125964413673886211497613338299357285168358733846727011071266291197139597225525806155673601234503052393296465285676700259509543937315116440130333076320407066763436316498308705765847599065735394527409917170508626494409638970480368685644217909126489933362752424990391808790884735625510383984737737653422318815472963346001775163446475202356476847550008038538627182708021273749936760377454248334128345768910071706703643495747650760220895383584097523810622488091114107048942117447025458067620593299068844534859697701955442923919401647345885204794361144625529004297702408926786195928948054106162423972092236597381892699277756440378214181354028736903832819426206958701767627588598449469777043336268567597396613794422016736193112820342290717241472134128044823553527159055419941793024372966095557664819400795190388876674129077887930266967342817946862466223799245836910327623014717845147680237854326789112036516841715809503582180605306923965586838175648132673476334693542321423001284667427058215637487281013015358479808104499044970462472167268674257110928338148385105778360246121945156558289764807204817387250503643453640282406906342203457047655436174143231169215744985340269808811953744855354812141354428447928541153711986613907628479213684500934396585143335787293599704216391233185786355700207778511360802252588245541783883293751567504464535404079181940968092395807068596783887545797754135751116807598920195812264706664744315528783797639730860195076739518909158744976899686447293776880033987042308783255993929067617379758545201878545286086272590570624701135327072890034063080706785571237790243802979892532976438080025772720861835576327520719731490029918677772139831040964156818970774953448702752177914764767157870061017403021344041923352162582623146475190885504059072639873598862164658633676359294039092185004098713197763042419990243786325277494660299230242694413112163403053100681062574442966720454508131887397874963217313946894680317383138861678975374668296834302529847445919370048731903918072332538006973334767206819681098147141457874685761321380839697328504499728067607537424544481579981231559636577111610888688202162490239653815819533020540729980374825062621167400238794208553511894624662121522981189150062238167061930787834797086140008613675849336771505929189657625019332155474299542615134551573899677536411231872808321708078165598776233942359004956106984506790098100306033784627822317052497870701492820936318498216247253890473367211399195504452896943620066538061928654783161328000910497041256311145505514103776430448902772553942449743542237574772077941968278805839049522940256897279903136187979501417725316491197856845488066660853481848984502533972142431905687781832779744065463740662197501327399576977236774022244328351672988204832621173271337079625982087937578178684296062431343417728697798692725088990506691547231032565991032995206602719163491354450865994873343741723620286624996930536284862681577569912573087564358922841450030568471395774336995301630604514443986059698599339716386451528867043561695234707702792986576173079337482074343491240290757813429454715774156354255463617463705292033319429586156250649409287434184612815878267886936902693737158175726052751963349849418812697418483271845009184881173240729921932508367665442115350276160205731735652209116468073229751325199064626474990398029853456188612605339162413689641766147731063127936504267788407781495585609593753293885877766329425083677183966344550466879560042342844331890555971690639721104529217594548679033726260027675547484848607989608260628254565311866545092603198819052011621616113439373223699122386293952685283725897612979115715880689857582955776860646868050002372772132694445122778239353377367481883946855344977622156380343477529549198019257540201116149233830069543891516003263120469689255595290819917626275541426934753299406724452818135359611287524201380194627974171247052032017214749074345430530860210550797415922295630509824966619822883311485417740751742245693971427483869831827030633653673069570981488896534824832110913171138574601738360740101663764362321417528309786498000367983001702768412246478690413075962251540602241866997387917333801212419006313103305926453933142346032637484898499334478991049911307768311841708237809129638913575191964083956065875399093433420630946150975939815560799856020881118152454467755728349387872609469096678878124814543442239443280268124100675078253645927725820134529868119329216690668007433719298633380363717662106253302967293930355119516439817373989296342861290951684624138025829903391904771766412785221644692403171076592249571270727067333590157076431035186892345240911603109482371294538120754103661785734402350838844741039171651356443725484427628278296396947743550262151600230140714942114334418141318970712725384737880264423694549720211133778950412091531715534818030468925156237393717335697733177631884223856653201454072057642161771090018601560417270011141653317374678640857560584446109127575984399649058833686566956595464889096102666224432727713110768477025510740249981654946550760634372684279272846897779043818547529155995717572370752594555118538835873826883833234570499002534086431004014734915250378882621637584884767088968372773351118781840899318623398761496271761042778811343567608586688179177622392153966493755569001559368819957473057749616709540625834425554267975369836557682789096244216666062488316141208534345337514812789412786572867688833671822996500614167688444552149679705018961711324624165337937772708735926353208485559689469467565000434608591162602531247832136735805990306653348012544816023348709633157976603814389310462796008228974634275151485400029400558033004171007572362916803314873794255398648407956469764115983504596592882992259273509831098373576517551125768495827187022500982091279075895329405689601098604031398744297087925926478001999578893313197560324475763757931274828254686640278876090179589467639073660986042953949108530042283407646127198897645071112909674223759703786647317518966927958687026136022811583726326131679626458858110653444827178117292348322445318505495350026541476285418646086829062829191110038646763115802671349548775519323696825582008691690318138572329163687048413765389042503850385867682425010691769139631030621249560609260185354037830734585941194023403062250694943231356033004189095677908379148372868872099385108083469936884891257881547687366930395401467529322086891411412970733458242109071466676689541600953858839854387658846864627952465016924935851218595538183192161706515817806625782372661393518839957995628833948290256310711602439611108785223397807043098148863135976872044623948533032610061071298445605336181932696142929096910494409138615517300047809455860540180164552498502451721537072703780521086183170860099980545561363760046164528364210925700464123888930146604367123886135880928850810134199332400011448328059069556337526158019654935259038283207858111853788757283448156719280200424760455286274470432022684784802283657329051233499847058157462605350099031880117705457882574693156819900884515832037891470466762282720453639454593136390300265955319793330189065057711685208265944604683726401431546068861760956143643034207921125331462501434150356874298047687047020236144787640041793062990490301617762905516609957381563982365678140319228045188792212092716002791339286793969706925408458742944347381130710454641398570319010620653569098218591420436462692002644143688717166312942867374650943260428617894315454520046056173093192626483008898523105557288506544399707344680546023782033622970171176571784233288122563736565911398522948409440784741395526186473494543920551044348416048008016631220759708539637536116579902933655275850063860516202563509345527186784366363937342992728289024941808303520911074967120774568237675206980949449644363706624053666056811596983613637174491508173048913776711767056942169497357515678686340056043971149337894700960400217495063893371407696555578277574996950377513910276181071709946164815805912129593886428745567887364661807534068107514011536994604107596034700018282129879156139300065356247111286768677577352971653314028572837875380166809954339835488372908011734833127031586128891809710413076868605459412539614646177304426751366932195519871567544412119166761880068286647218892954623583352455654459612955078554171943786341796590229686169807089860930855334628181578806223974133287205067150673721162298634379309091386419581528720918721011383113318554246846173063904455977835586053083902776841188975230344979968566916381001946724982018712795288559446058386715738879870137460665544775559181081474227297516083793624088920196171772026684658156059843287283013500757870868419232039137917375689812455476034608388465844535729846809033158040022282943808497769966269931368685903264020043908467554262619274352344530860732601373544078990161891563210786291926151099302971972212287880397752620263932130272552560371314266142540041952715292863596079708758663516898668174187728969353770597613727799528608467224620339614125448623396611898637362599569884388574186178562409288579888377172428087828223624823218344039023112008250548610782424574845519472477269559510386821085475379950945110694757816958839131563327945917048175763662082109492610557786222153501768993624418901370701299443582289192919655120303476924755445384471332024107753361518810008583513821298653155219143294987931537907285034340080155746077325122211441066653084939118732962833033785884568782208234458442537761675031155137708956285664003864582078009171900343123253182014295516097370458651190776968638822867164943150267600459291195556510088102973738928852760700253593353940565864954784702292999839805302433690402116289772822155002829415486958535703683108965631103459174130814678625284079146032987130772170635762955649941286708418509043504147367018643475369217850003444649098175669162877590548047069734825410310879247493318129649178525063166827222247708732295537709911470767215999831095398388213555165479833930193848653827042273290310885278896748768345517526560281855756121802602855058343580542668324567234606014256607320405080688457171801657756906186351144708871886859412710327582261355841325735558035512446314570215761209148065028528533051415934436326906837251412294500085088587536561596583351573543498626706326009559276980983650115695209115442317771989617678831658133310826725101681097525719779029010079443367078293612099593154307362656635480899752588846331285609639785500336030868258598720562329576708897901378035279991186192762397060442370528614961660793611738165443386183835473556583091748173904702282977012760209405438373187162961404370066305208134256059891379058510491448094088718967357896935346413086998188066176541313313754847520127616103973127211986843181773294151835631178269603067028970574567610073221997797192172411770223910453053296600373163077515420566406053315489593672011413307068553587245808187458999423237354181585740467440171734075326152038269300071960356178698210871472182076425095246338636375490608550081065030907632185198331888288225371227488476822512912180170821028948260687866518672101485111738453298014504420250317171042958262976775264241200337670023485603084225547243806462072153360466106306480946144962432699983687090582674207708173095885874127183906606881260408124105080314766775915427765844132383306544969863344935611265858609834433358239033479652423650475918899735499411952812328810348722185120266471225530828615543991684896595045875860800879091698267289608331054911333938681796551383018071667300271424225781794949460931691621561499652557485884258942615618286015782040872064077976983522791671461155183473870429130107052910080635572594630826344437022978512728550784542074588795144463347445220401147411539567084779432807798964514643717008019003021893722859277335489859783854048817884849284911620905224613301479243733103696151663675507837800414400929129281141535831086149690965915346879760695451708524113882704373794859830747755729949894781462035993553702166483574042007883018014061719798686123245685816529066221271767380110505481069626864936538209738577942606825749028458570527345403361437251296284079484020855812729572546176519752067604777823127971732485805456622528538463417157172004291375860758292346615344601466262314817841147645745208310567062371368390940865041224938225601798930008840943559481245066387287434634233296032309768180700569595010149618567409444487527108719436830016040303259132691284067604582706640936726030522987130548361191769393132671270925238693193315295374920833125046574669739064285475191114307131703969988168745105742240153389949634078403859785754776657795276625147344920365200655477983791370884512654965647604964077787863122621995134499676902381722456765981457483749275078843138158754720135131671512600598931728299333262144697765973081296588363513116485163873496145312999624349919365045920163217591517544974560553276096573141093383864081022728337490445607259800892593304849903750328925188660546904244339421843160912963788866270996466811078820520726996149652504664128891256208156062306127090455177141169260352113049280256541168341637538877323637053214098280797174861973045510359765777603901022917598856607579318409694476615645019558174949817087334463840103235749832574285033377761789769116572715837702641705556085424576889121969619832434026922523830924971180878229336560348830678434013874675344441122884295784142218954114016232734819037022115360163993530854139764704571793354895721688374486242922449312413831154201782358459610858230024081834935229571199012016417448502434116725053228535224136330985488777857746453602320955992167881413513989220895784746385076595888825432842207245169882914921873924865160201581311347388917818896174802954161346521474308762137585138402829529684520998924833789341053895113276779797819899470272708612435360458406006939929487585179846840902955834532551664897510461332040614632185639821539539030716954419820299896175070850159425536341313952581416063986456980094645297008519841301620584200726540895287267786034598017080021495992048785100093761410731632644092377634801958424881668343973982007876710824869619674381378137679486055224236681314539911705685001047468632776574223933128731334937426381462308144237427263636092382947215744247298811915717313949223997287436860329031973955865102995248482149020653396761315290725748728565052623537207922414295225861851677964040453487289943972885476562967216230533602012082222159510241191607163061898383835537347978999590992708174619131814865286102656744837939570615003329571080346032385042326023889766860085157628342725225874816987770380954417087270915000631410031187072821193091304266600568885715974618424594254248818580882771562495266791731082219739363772326446634161120020287883948206785918481293790137983321752703673740353459068964879098126064564877441542276524481688811633677382991626260793984089419725933155640692553860034284690932972326439423415748705535732122691737280289197471820948623945805740198102199992478927976115285258160742613418665980149773171265763607742376476275710180985129965419463202904630215910954163500186319036571419177353068378003580299620120066708364733178344004838735946206893469285999344625152531840843843369934688022990019138584996704986373287807464124363492223069628018396378713716212208773019430564125042921929304361333490205179901490219356374376447274523609235299837924118007284075022211809545848370141550283672173931198787314541738798358201607648035599682740277196027354906406617208902753985210220528324060999577388509539721161606141197614510355144125947876644587953769797395083114879542983290780843488619388988213106841034217474037927129146627758642125500187283974178577011862184851239049177117474892136077330377014300658754912203052318955306384736031692073190312745573136489303397676040116809019402588885083691441507028241639112889318850546221035955498178236667364528952942904001795777982657373224590868396994322469925439997610989986404944281993345078503968628480855145276698855692612480011469604174345552019465634722647737999407162852623465488861785665108464572371133272036342918742149769472847936903885124066962807344484740546478216898126784439502746823609425877373567350345384873513758437641976244679122032129405352229138952605646199886273915623202023745896537328695771129494949753299604541822873296753245822141311119408637661293303210315524695694997165509232855792037450707200831356951498118311610399558452519523990288737621450175790669687397130739572074672858620151638931312823622477421213097886662660880950026563481273115605372700421844526973258209986156563483773745152739845739790608579533690169385774333784625976102804477136393552368117721456066433062521761604101158241155232637286373700572441464134018374064252036937842438573019371727447106884916722729126065360348612337410774997474887191442542583319444146336487808472985469859737353171551153695949134233379927592596013048028177654877787200340867897649237069587354246399288874954063177073192669278609991408071163553773352361517518730751151360414726354900287215050153062099383084608297979845902666898244741580383833675209880743589767944159885305788076879212734337008699468246541753446881904932578135416323317214149290625822939743390632745524623697921017492136397197707048485766875792213053349759282338635883875414630541991461134529025444173247556446206496031487659351173402359169167026357687007874416852745921449907858617982474739302863800253950808233817188842302892745411082892028280331906983974812017367321451690936666447431685834124163326801393850551629883989589272287826687048751370456726510439195716238943963812402199559498140162667207665419323202565448144950156332590779813732123679377272339215698008655938607513876769394349768815742087008473477192953984116075477775129170018582397954216429777862795197210262685096488150864429670891267481104367590433241854486243199275331590058592687300748724474414834590353299586271691882907876031140260757301697505081939527047441670531558487100431128144554669506006846042604238501770107510807816868955258984493531680461426382416315826970553482815882252594794187412854572487234257215147208040784471225874827191795201446549687801923845599307341179676374795978929862040341360509227298379175482386188131487851742418547308271067321966601887588658157175762791766135725492574012366360867335530277183275225304164482872197595134817992503639665119505789211765143074888874929275911737107181493533360863371925894022738623163138016066240581279140223937843408962184244258269297777026460595377042063486067146858976151632659933817037297465928841857895637810263116176598387502219867165929387786835220964867671161906954013533822905092871451920429921516937897272773506831474524736814169083778507876284898674549033290008033821258123542531992978230379263306700942182773241197992404926564974163091612508578991754539654800891380589560642720862969363780515032770600829088218823176556393017427588313623251233885594669566039187381081292407923348602698599138907361306828824078920597242441599620939048648006023433581503126081632386187006206797585042188288624326160747863338432365792783961405468033219160891286562089587481747704527671491203118839628944302277664019322336522758939814062914063050362880176989665936891071217449470072990659736330114396726428299729673994698305671324151121846591891539075844618005921665943803187836228642854523583174624360273976840085963101583247490545781753764841786681540026900982474547416492356035054065674226972516314207985230509514322026288184436219642887563256369665576189229221162461686528897661665313995006849814927272165102384455970243254570309105550754773605355338581702375140272872709662460869152521927096225023195181202353911538023146717752712497131446485966218595738012688767135448116197567549053373296276458939395036290798500285129308629020091396609439324387749082594983354268132026334265768458924795778764541647814709995578493412282794138865733381355650772157198437672491061655778413074515087886637606852499509281839592040904170778790487608784601177287939840177101230350762690167883633365974997183193980915122818497194367748407583410799701268466071040316834796964665759776537912043374033409778781987867304363684670524980785980002181944155035866973871359777340116388727890693039936446977565866824461622196951413678741546530427002315455656431909158657341211073035844306953226857489959450008021926246942848367647666308911566992959408153540197517220602909967436777067920395994100503797321127539619515814229701699560037470462700669071604449704305401068078547081151825426149403525901493251834982649111821700415392735257114870760967213764699110740820086806206402735993715280420064514614113793727005603498196661999571257120227266985977531590527924266646320910067037009455587600855391430314669097218341685089869413322945979698840634268970291174681598761378937401349165908954665236481184758727716055834740677472780446178515258449655621758910768264407932459527694950276856161763254193754477649230758966809661436173689189304372282599122861932607190746262192302006742488447578792082941410865495700723424178580007107149161074081328652419211427100489699225437974481996047609755774057950143623687448501088227326064940894771924330122743238943660251415450911455947799235294606143044496567613902315905234733251092253809971210860377534687651812464950399896450884535015638188188785649813095947137129516400529289967382110443391926479717940505482700493835109571983649592160499434326079236508148298709549956888370929125339470479068943226843680520270056731282256673606087994371817974394226208021761763408888577145230377224261508554938527644798662617077815171613427760815007987759335367248641553339759204967843215485049663254554826877094052971876629991291447580399040012291480439609304420036155015138602730705639980308675450567279815488514988907362999192739389683112636779229386080742080545922415826589308481001170858286111383143714691911533950339475657827502551249502070265534619388715930733769650203424268031826839765848930767704023949873786300013989302899972394152819215219223538152854339979800430888289569928178798056877451084993068739186045030862378681711074575245316620531634851831706787984762218133443765688908844164720939842476867098696911539736894661841505096424400926313857395480594053059025153420539443207641761630929365902784059655763985821885640589828421581997871035934462059090682662139341133555622130608246112572467729579404712121456597951082776454655496247782770592662106111902001677157269091351498168959886700821157635663350259212898188802668576800235298932114566615991554697365258616616228300219512552342115390836456152528911300806783275832687179385802780786602268958612393165458944872107983072304527498529042701285797608611163162204622817538856258918596991936436633397480324521665378308006465902755155353976515606947465727983045988688015324988252058496032444008420862976777016123601029968503704416920425424756437847839060366444534607000314205677916166351295005274393787040749331412037798856790315230182561744229107348926109541817964376089492942043568535835534714623657365051108841954862618852425797868186838640385110093432771099573147580540871359641150072814636666906335027113772754780231374774139536899707376922868324364150072227066475246620668302930214933530208366326311576172943955566439352747297646722371742147189698635478655082602441466860255164213031635848045351816326825324460562727375421264849799958329015279954750343311755011694611968632722812907269235015834345819226174417268016414706994843781959645600944890788255204483153331193107740699168115052512075398007668814957786787682751506518068963311810190371310195270810917612505519680108341939099564801862629638776925179210935514471843170991451873337005586849850091176487454181696657409402550739957396983556979228053525404078659102448180391648621184451237588761522672823241795637889654361104462680876717475091289698578562020247553003474800124292417815493863159002098354060982209781419670968650255479210110432537923514278281423207559803405556218736772851368306721524938719716601876195121841010591491248187545438758805562260431947179503093801327431294874179421569459065613380633289533788284695282860787691221778943922612574130172978159690969768331186653817662324682085704789232940448553594957954444744032804677070674763119868148784349585367940478701181651827360870453796630577511244842692549170316934541178795147512470882686603343038370480602544271821958901957742847429912102402946299148920661658503843311981340014092385890493746136447526722892506406821917191658823274454604325316925753908545800430539577962529039536976325365940084625035618591373759254061841536419354917692564303685177029775910269769899123783224861778357281577857126975352768997149115091495651722583881857434967027671154769304533801149158676107695209870684985654145211247165672019196153172949584460107665477244351584153079881101329180445951605569430955921569652562539078644408242153327195233965435361361933950489869022210312806041462350885115234108764791135574587768992556215503058293444096341167583498330242513174643739480321083976974297046100167325938857457217591117975371512579823501111813653877408364931845837276244297327884031497470011077725680594798025828915713072330993419201882588489470146147623724879527910022887012463015424429265945453659257396737875940772711594324465710829978697785040956565718501918936172688033026135126210843093488511771779469115826439946969439071055794415775109793328814571392529509186408600878455986239801121359903964637897120792616197936572234224256181346184537630085916529682386971720910763786826201501843591552973625062083743837913444452919223181299360155769433497433719586222374244932716454134669099188339422451352430229929895814867395728835466617842653256176019326528626116712243036243015141071457238733605739398728679844825806990689903591771531979845657371247258195146384412348692594279401324771832802222455302129580426749683004772113179765764236017028346337931848159346672787135160034672039620699081839654750570569488757156759083137462962065272878609275964271102737601394822772869265279772763861850551042879540501015714046720810019804438402169369474787358070920518887829812821571274329314193216538026595022143892029886201982727492932104451339983168988113707265255795264889661990728053709837391856948823618826294755734682507889120630244768832896986416490188312477256726306979870931202420368235775150656451051858861338504151177460142787097560217624896888880155904953756863252016914507151209983310685779623498639694641154864236157157182983710446278200446860903951284276458567133716121725854272632714416002171834450323847461661785057753431024453021331319923926927482933398320744812030828092088631525012925149146237376482668606553057014717950297585121049928388181487601792089025875826819480257452608500974294370796802133770995755199724524905943596050364986279718521709023244084732995656583063419104290572635520630148637520117457060346442553589788137819319198410315011818921619496764938255579751406508951428234470234713661100158006788019767113576450267213864288811702739047667162706407463212960334580337005575456451297660181606534750891492580545024624696666119343739467856949478821257499866664852422130903679233425056502098592158732894364958103337019594299897157949269548637370623539126103422167888061941109704638046885300337790843235256568626388505140198769187696446807904061297894379392810744723410155951692853778831298421905102864132603647470434777908791378835387893797701145509981598071869225640879571586772309794647863810454951353255375703012964792592142178097506051923378949861741321773328766118750027841811776615608801913254145124384195821122218897887628599034520226482057653867833206747790155701270083708958730666849304107077383111902472588701087337334325874077783271523037307128974341140585525767629280707082009768507073159933953648572338539366664445773749059541574765843335541727248603776945768027909957278168455870825340246251282097529313142151628458385165825067796835338123343745451559022664779633426072297536753998008978643469496866623969259528503140829176461694106764681843568654750078322652643986289218142531077021203962349371196729334453098761865175910435733870352110406328810911941971439022128317281347957768997881627304899284447527570624134606860363241245079505588058550059793422202201139702310883608974623567698427584826751996217825906070058160972541884826597665466025200211955043680462067241198738066032572774747050568468738975592905706837259649043148020205104035998196397124182036318550668657379817184339991210143964397692218591603961132983338103000880570723765466406521091535230067322338016406715183019409603786244764706281513464812456300971821040087280371882629430740017489426176783417135114663869364181737780999107139159266991534791524359385518910259277301714633767481000471785147887388822887211831137499951899286417236385282915683552088107424826184085480905596798847415843306333761325761330524791997438974693205193296159290423412362420599327496333061767464674391287690700951674189235312937179414869646626163173393467254171863900606689419804148070561251856345338227410466244046350264012690982165604863433004874499773229632406351313698710160266653484742950128527961668924479648588226060539411596683943161694424153120063878963043130102659962997923085504455235270587046166072233099551212055036812235875992319861684149417022049893191959254789373755488975212126834093729992010527013393517579943930846941746334218907739981115067423201743358589337580948901133888293810625033484389734957700979446323424942007740613620242054511452664893173479270593037498444937777135510859675051839388713871983862577173826039585709974571185702004368877106606070992121408670464016130278230474008124330008239079871648483666885188322983107132300588074427837483727427775392407128043465922088101480068295215057612960376177125579665064070863839091313771774672444613271517395192723160246005208057625992353398693442151312323401989571860591605250919238719245320061924550772069339550644172051872563782588311771879557722652874415178198194089380550386271694389678222849056001395528657493880490757375783538122982277302648262056225151758419875159739173126570779528841654841119911286415761681751601727138349430933466570704934679186978670769852409641310237746517835644998928061824608919837006237668551046855118031525646196704908577944373361372811781206652152163685399273445023411302239384786136432907638541665461607936529176270223039212598379098994484829037921478940471760616930182363149387250093445765514416851165273972473527488819451185643857079509866402344039299301457270353944709853880405865492605883833144641421619240416463928979534980523559036622150432516193739180505513117286169324782478021530381302552896620783757193001602810763876315917795115374960862675364984622034782043711212418620698006870033358741912780247617614493475218835492368334269790502928273368057793837944852564997543564188105274653955352899480630576356192127468080411205948069314534072033131083100299359839164975455052623660182573473466732018424471649900858130294886550831431191708563570719406426031693522644500442299064315983274587605459479905953417144772736533955785755701860545006636270074943908344239108687752855005064364648224709989597728743627211105381178183774156949881540211332215044268183981310425215487706628838307332103372105098520043670141063123196647342435818410838430331799327327484812888458047143694516131767874466980639312961506935770803931453646465395373653070929714298033641227298749139180993463253455234660939980415088625652577123105614516441990775490509418479407628620864429290353794992909994886874605201569714252431683709142692266156218152361624496069373845108868629364847526404803778598059600616683361216223324124085963695804832108746936678490071116814151002710242717001882455423837962085562654671649043207705385988480602147017666909248240958596651022549866740918530789267407919968578474683229310024441784775059130432005724100260987003243957699217718779697587071216924351943905035550883746931198923322416408450500092951416372052516671960110534720672931513275229758430484203848848654726473913804099206821634845528979417743484296694266908629868367993415594463335312253506389347294391389144974803680295193200814444934840547819655976658016190738318150053252933420768689568101977565386155798839256493808863668482875968593343054673311915049879081119779671425074488955110546399957241470674925150519800905013160822601172549441777717836438744607098646709468758199442075885111417532791268418267723995212708781614195091489181705103239502033210300237638254145993049784870478932938892754028954540081610691899497339068703313335747768393723361483468060378636391285485203164283667747312355720261125863137639243584450018436239931172771337604127659190835614069754193173551562951178525367878514594224461350048761335466468443383971252301179624160797666085741653036763586919332254307349153875373970570290786323888570562799395200141002262604268275292545224837383334549566259591949028125193706111834188277382749669836280972812932803093088665939855926822740469266693304408692145012368619537953645486591633863172373025789699269915756735895964901028125235374084307363863738157487776000439037833487684827759632398874844104088182164133440481089296163026697331838440915819364850840021819021189179538558127255960446129996850553016508892122343586022601821640749510633420008829164664089463916443594741174488039354292438479917412403290115822815273154349806681198677129001277889505517442263050718860189920626168520323891511769942828354730613634263201701659614276284515682045551193015246332044060912118029496087310918112575903175108157402134885524195906747768159395710397464794806017713883716077895533073506069333484717137713306449608733008855445886122905792080244025235590174447971237018523819924993066145209448197226506292569609009825674030307897709637199359202672384096990001191817518115748744098241923064860180293634537248281278422173071227523115729317203340576248562217021139321990759760151120367364921463432923373405426946114689719442214736881879700139151330362110101024895718766305683763973706797194989956494307574391754630946905226403962714662339688105459456511984963069993070756941097811230654438976880204280992246158012634747800600655331630746578627648493459782318248765937658716354476778900058665245184507789578001591475132895579099028738450696602282531034812095560491340548409344357090526053248010938393126560655209084473649774376419532894962776882606973131276704854242752469703745840136374940749549906590125708381772146941751651846887920331698964143740969047546732178573080781475756514597010007539506797757652680639854276150903474232560200090806236634778780592565008061813961135466084510757303368414777186291872381458315089899509181248800703744029075284739364675470852566945131634132588015556557280835874917595048066185744413497872102551248373980952592370595519032022932638289013620639692699178261807784998201027602462337456684446019592246966975674608493416985167210502310123083308568401186440428105378048570933849642679817918734457905072182632470949190383872571420401297746108445319828449643339099393434192424056856938154173148069547676166917784378251215618881535623407598291307393787657371852034062737624946658706855997125831810511659980325464595578321145196677337260753931920104986087354298993667285137983420091613382120019738576455785494223862426674630282406186879680974985647817521807983774164390398675563068957567275606790725948105560178680214581960181639881990609322789101055747530912068942902017862145948494599604200335347578658913516701953739327656173244697853491264465993804203755565119484056168491845051982530215153649373169478871425745313146009337193397442403403359120923479085505372153224789516617132776660053603535976343792033410237575490251619407274210661883512544976920729676773247852031692317768276867012355258422371824909053081255382017295786716941862405786348883044859202800940310032421447144318492368496757349358089442372495558560010865511541455042461221605691174333766995650778448152131704277590136029151820511428492189666114540460079447349133879808069321522897019092298292243128696164097683916984977221363085519955799069838634251074813899208188257114223227803163053262117241370408200157625909056965456269111856906958401785159285908944674368734462650585413237267456226622544872207980513591445881466872994353283861797318774501943857237805956173528204243384018472451282023111308295900654246401314281576286046367587963684727235460738638664692619431850577088847981107388219250825576439653007687914902558511667506458058946299654215990772022706311043078062121697471170587047074035586813666170193947410715088967866467848899222290070423321106212688243853981723170827371270500166609019413459821897182950393066310253402615872197768675462588532459499593247690899266825494071150349170389281854102218235004892477237077603796218470224220631228222796485680481264749017071995874020930448239070773316281213632523732035462618319387726026602280565699944674149985896380475774779427800891275183941527671338467604355094572920641843961215632213937566890499234255454002279706377322267625356349168049472533282527102291502025798128841318902923638793841785034589952252166092108006278434644789640915483563066303622679948003372113995755052897262380183901150080298783441799486061013384321281580143819723000096915489224270303226484954487342675422529925377910149826606765907446227915953424246740676597258348300573421676792081397099617881954032151030612205140626693216307231255494522861885158537434272313748122989826754740655572621897529302387420593249838668749442993190027033914969219763582032575503322558463309697308756719558727938048702589573440030524269671923157906594732935712541424965386534017646874043222278010167067577846464590170109684543313945714046517611967540560209347795978372857087890086063828256264044876813455883768943066876745001953976864881873784048975412140304520046691868907696078459760996261447915328461581913397505686829214883439429467954172593567424899136753663084299640636309307784157958317916682580722019788380723669265585400688641878798059549027669016273717091946212570455199016144630721196323401879176439153374285752567348711483642995351126500498572049824990395282699904149320327645752747349823920783110373582138924138823148660229146328820791605731426012579943073443424107841476283454019465790792320513074282630216129090649744186968784520027506973440387672792085775498461288973003739528955345424442576970157983414895780915487533563237032819486564156795030825981211587800440074057168753292699179862245199869331693573454099995453886525750233542678200490094703401894162454046108950423909462303431920351921352951276071047515203409823806655933863170285264053677814274382016112370641425409212219784857243602648368465418547776836969633822362329936276974500295115858172099276897113066785378427164106739595602639236288109710248020205978848527024714941327807491415125811749522162009174539787480400485895241655162735705512147268482617969969814469514264944211220457350240964984249485406501792763091996761470367081155352264768006628918711481373411774697901194085042697906120924731517786269980761476609532463634214627665628446197161960327691053175114594152281233147863631183686414516491276541586699203324490208450066392764509209972458178112871898652856899777613582498220793632759030374655326443947532742428289853158798256356219209481841877378088728908853794392080796920499820059261169114237129780779701604073626990133121361855304638413698880453519429003878065286454453664345389600428850197082673967272733400779329518009513185526630588373693750790126506591305329036889267737214445748475959756245890128660952929432740920573221239963931118630343498221656700131240532334137299507593367235024628196290265014591222021067478161548302978407267140534553681759133423131415687701860535700098741290969240362157559148039267070921303657333537667108384373200452922948211217994816479085271801218561817546489741096755651530723870691595499125202037844477251528732091707454809173650869086272891402615022601693619927391534563605721153577321012341819648017517041882652156780501403477084430063063298633891352293229261088279584591826362939151995080846510323294247704489049736858413416936495009245976291474023321119181515983904086598452898684884328407712680514044775453341183312643262433514041051135839216097366406258519016402777606669867547284028848052708010293704667826718995017438647577935534042523772110808721262036520888366443783113744704781245887409771392051958350373034161214865468206298406101132495541246718910566157328031281854731322575042340962296833374886152591370558024220105384618290753779198062254843629770960852586390339213837766781721845310518829714324100541134993902818945418766553127992786764481753022351296869716669268276979686529470615492632759841877222358693355152613057829548263384285079215855374659055636091880652003595014335141564370794926081751001092013153649726442109711873529943238231573674217606990241831133142421227372741232139538788514033890928628563661567287565525018617784287142759766036874284365678805760754415625819620334951297174675279435634956065564404390050299485777955831328865335284318571653895058844380658558019681468446752146346408724667832538540002406129892428055009199451510410113283061962149650530863518784539547218306300194658248953532361680957261038416735895877963809288067735206608079975356542192380520193298652078144139993628260511312500024044518426057744221681181537911044875665143537545888697693270199118887279850312764383226408844444703423482711124983935158944933255751475776849925885667023800111138946680692687300452286858212483681663733992324846506413783376101251482416354808079365259405460895738350958885894657011210675674174111121173640011513074093666660113896259662333149877868257726177682903411259442534977259088277317221183451264976173510771605152539595988609220951336849895857198784001122495007105082154809467646236716509698063061902758235582265390564372128075023948339339721429356533255249271273690695904095052715710221964383008926117082952258997156452198041842297956510070429094248075298407947973838344129293917832309827509415822964903280274121231124525333434409521341378211804090608315614424250293227691746950677733969768677872258374694758358655861387426107865931979251608217203635795784617900813366473936251339905779500870006631274618650558015874207033777910400114877432022305400750392503150205995208516453252726350419521507807914524573960014312441358376219519152648667732488432419839334381794402235496674667522216138458779601006629501551666082998609702372335740388890767300649429983987029965965197733355554802244049647830065182243420352909114829312932641696589424711734453501960407763756231008962238352212648193092457404633974593524188976401103830355993406835156963136666855693560242625561297169984244634783565537091387529857329499529127368303074224391123457709271606751926568331572101739444080546921817504830942421177079143392866261051563787904558942595004570043883303238748286217170392456811508041982968987521991011674568940129773905292008814615695434808854002131063832183149039755986844069082708660749349262092359666772072712182634456390249368230236508600117050562424105156883251642815362648334596007705113289696121896487803211981889858984882985978269782301324432011040438863912040776863210214381452083314923587880446435252679735812792153134781815596888872643630560048941329995352565620126900275898144449864578654821115236019642684430145534333214435479060989069309849454917619886414441618213504470882247375700203136440476804529734299418406620704938285114256416842699352840473757200082383942006659983348399718917420662321530698483340269339714599721974597040665333018129412104204588816070359656806279763085546963229806754130371107092295298125200406049135634548837380459829199877794490308437483917051481331340856825946821722788472007987539776642588948638303747513416523729042015433905407238242415247284119270345292599615361166372919545874343769180348542931687419347460438153539402309009139475180166728140330115757184332392945816374766484301387383175368352002595208005369599454090686373536698517328931105378770235539199648525792895617934554950090315715252088952801917716356401332453918873507359948461956313146635259468900754951651804273666542438219980944098780765317621584019151585145075767595528394621015687125979891629182807422381239195226412081802493106733050586462996069401764116499594658846070775402670544951553634719033192032653879291041765751544706347668325434648905877958524299279415450425611005692890997025481398479515278989898946129496021798009247388315947911029379543633389259331906018697961249444878052528737541684232970887878939521826126945657099065251773498126860824907214260220815726463075388791733391840838380824017271174291751715495547289608164938216652704014243336221804246538525280303937706637874769739484410989776891686857857191382340959447394168039645608589178560442135472422240168993850488526347080905133012024518644694464427824543628452030500403782089672173362953390936470979199094596666138980952059728578498811024387007195127026059624447922414380240815664885904532959348680326954966860937895504908617488621312573914276216647313321842743578388988493364096190444716756267531973320737267610103392161406496024292548137352566172019022091589596424743473644343802120423737780439018982015944336193465095448100449804776253787115152917488429589041163146274977345031853302618746086964456871713240246614701384415822802751901379879046184329831302883528442498573434368148607488447270345686038784234601276344448271806072801501165108618599560076472470691617716770243495747724733830488681520503139574781607782335522794007344304952938360086943033947694678257070157685918556160170973479747263342779554269659181191885228629522059780672159376611534197935358280948164888390150229978285543140001374756634556666454084652229509485822638567311515597341030409349742373856802709388093409430255059011292680515835115196432275834498690303695169853985625341381924780254228346103136548741911701424905530184265762500104252826728990892158207896187647674635625946339158829643120152392109032195036816589460656056622915356190955847202206697829517656350707297966096487711521598250987607288543720751708716728356211616030926455433973629961977198643837333643696814379737524794176489250613754716054137258269899047991207211173605199295637167868210021737955981720452483089148782946336230674134377440433666613510789762096965023483945191014857963038867731090263176888644973921182376970233789289626820860084462474675258114622653396102352934296144218947956138643898740626812898858046254829269515713859932701518668941674632435561963931062958207412449661072862760107525114222758243277035876319034648974280247581040256878483327496130676697295874105768982853541194480685046916219010863275195599018848689557507152093929225155651936302884940998731186262488263683098696743143774154733049864096436190258433920214153081864313024183999966390210211111520661847391023712968083020256063493614703757910657468876485298002365997990355084105741545420821323107905915473684651259877851232828598798247695424809880335453710660891125378190971422756814250312053148844816895874520729075463006092529249656945020412348320548323757949151887836182806046221905450005582264192031531351894287128730668743772770973779906584433620915100222514837979291012300206030150507935689807321318368730086811765112136716791508172813793271583898973344219374363958736912781990138464306878048240913835078843589026899300190268981338340051274312036132161790137586283525153635399275563275506584245366389461726705640212985119572850776134006384536765243434390474842798652000110065512579185993241548552343564679940372945932984574974224330374259012066052381059260923809421672648917774509101546768025972613057082759952076261683933921890929662367568986894804677849040223650935137605348639272142122961060548885035144191335844823484728629088163276941803974518500304454609331268211835875926998283234701049084122678062562906708007241293575563466274376413938577996007236853929783173315002751457462303994034032513949591582018674585729493986274730945885776212698022347005870063193301859179924611408131541009058151215580406457704247978576848620275392848939050398918491957685876741951286831060304405350227454727315626240260616696671805869082092009610269868349289652349813401675334468024494590692363987448526011509548195383128671734420353563499201740474639641954053263745092200633337366819584449454442121194890166729373129295641338670548964787011850872182094944693187203635837709971454327711001748738998465143167801285990783424937774705322012616332671150756202848231464168323138760835131723904233117886247105584590563600497547970106705540127400383442486791371830152631505680420912567295030031074512747971583249604026247096108631005556481956271065048506055947349518432810268356608154780643008742449212264786923518385592186479602817551271498491609981471786532488887347952041808680336595400891834492367523627336431638246834930086757464084243862119015662809208166334018183508764880658511985052775674655754808019206088364659919982931495974308547938491132767019808130545271851323905912767347747997051159432450466702177880629252756719141073088205261828128338039920099678967200612899068188606850388234687797687067349698830125430637935864369173520998466078902435603270383251063106892717674875498464381704353669041826616636918481163268906172092884241799370064250726584457957596158076294103181906305443529781099032232257161599232931499197239534000757505487131547059094625529134870865946323036039641491081692421576273257890657984536920279126719882383592083017747529660476389477793208598664317430131603480841605364861719341359090100640732495679813738176427053082105240937722865495145173765774686494743196657073683391527342659611078560182627342941239795127043166663817208513784721218452075310731626960745806237960969122063311501967623237057308175348190504900498779260305438412107093482735979848819744651840542886593264798334935650084191800582548824968237383331885578132316803786533281274159051615349262012530360597153426201305548485323878960252441094453134938178421235104017955650117552782424112955364827332148159141122346384664073784653040866320202726014637369034073338223342891986661445261216129826062781522559261775067946154568721893205978711014400821891957351710750828185360143920258395146072047218969483263593262716122759059093771609875463504650959556910959870422883042709766496983654529227169131440625158153084821303173721936060244737024760542076789706965870906614448361928780586531192374901217551618261172213932862645737378691366166665879899525268926650588883041245014045185178665647858291148002183060566108540546344444892187280749936165746520443930596675156415256479190925734437339094618576648530419036075019937283160615264143247908560529940815659918570203206338899299503543847450933190988220757461581789026108073464275523419707932832837486780543982846966050028481058544968707082948190841044169328515637254649465345155270670155004793151063656775061566148419046637246790947776090140360842689646835251654728829522799703376075243882490136064686061807942495922607181078123159185425246857874836812143963408860248459809084206643238267910374462275275691035458878176233604758443237150060969800704336816218918123297849157675407610162911299844739126537544783287375129539837019513661883068627413940317985961353072327270373859807940663172223268905094195813447735280131681562268169172781867597369189017193194341265804169772805920472095350802477732850238461594842625609075456206849452397071395462734643666384593192368237199355500747410982933414095049171921157736435233056093370604569129775234211486696183180226400682286395833351548397427062365031933395426510442152487963699850719471618251252425152424189403478588550460132064796908523399269080361104127539831610520158476000806100117629326518651334659206024901093684751522989283869258346222342496810007288265041740518516239413646686972003792750246648774659845197013078750268921317291223776420940573284615454322297193657941178002445679072824363347620589040363022308429872929555819421580063361683183675645454797586779995695479515967098309982951265095514486271485730785656672355773752465181447232727478551699643241334852643587217498866352671412416308173767961786393919624792761332489624189727142085537418831009062726575782550205088880405417693177681477584656578250278521234831340612122234815481192347235557520960776803309006667584784879832705490033140409186800648838226565095892597136964294589472453130328174321963492810460568877718951350723817045079592921326111765934121555956446116555403602268120953621682670282117150262315138717486352940449169245811277314745548260819543566838836005092284459639952092917349491310245480076125218406976625094746707639526790526305701610797061846915750891146775299637859802437043916022712427655959874385849825594497561788828685111295111144718867759291031728960995688075826016601035095414122446536958082762954266735158505171643478541008083816681956064804711273499286227639987102902460252878951130722821412702225897598022174356329635123591821026312816468598194523051934875809853521320795993887677814585864261779586697083004962094562876449764911793794024896300825770892199968467980468587857145506833844454184946305000845301823702651574572327242554036260325493497070088650494507612368081031096330297609080161248602132863840492580832167645960607158502200884104781813441252993045641721767121300955251824499054615593644683605639891068982784697476468168946710953989504579123842792862230588208210308106010573344405713097364494838311136990167164723362868338317520993995343134872934354694751941162954037218886228136148407791774656193654878476231565461753143953639469670619725419848093488554681530220417186918642419743462934609657662004875476301423022391740158895479419512898594649106682913459424072122305265326938350743889831976825985855605006026515768671037226156085889539190005817606366034184191491970890738130439725196152362681908289976599613732144865639310599717964842257409206029389284264809142476426882936891913526690259683900828168507820072734362721651571715228321805926415436979177672759584139328534642429025450609802375802761540024386658542526234196518460429717152947104210417352869541540233398131267395938926215451485968903896376167822361727486611725466170181415689281043013535265078884901805382117081904716866151285054343432436985517647710903618776474122006484174649091114095135264267461638329510021366472644453857678536069805473247555479989043557535058809793523101820733058682853114131934005216022514081965426146754541433681220306470160942617720760244129012581848087589522396566996147624959619192330440400709923065617364755447095415821593205937158018254121159462582242693594259968203154594592432151371338231932481872400742531321757791250133614595744312869315327805846319070436529546414160197080657487973038344706718401248383841383612779906555754324313933536774370787383449088218292585207733337383303826318335182992265164712788880429872407711137388813871805272037830880978423501023800483303633748183867663995632276101164091654032153448883004112087299268233728293321057219863434860452926096385907348343832760824360097086173231074046127654746792192916241716434195036544376964901756855563779316344505427329506140223293691462814168173060595595357039038302938108489499440303570066427076791218797971755052588568144805204435534354945268864875148027415073095966586432415612600458433250207026599627164034754845268040148827750460278341409316568892819304340362611056710753519700392365960593807596081577159724248329374843519376263571865910996582130836554704268073073003390512810087277169395635884200444063390982768890444567473868014223519626721111748269478796602513081192876031690294514354726661031773494026043275496168694547607506912217984137394996710533838701785413552483618351077537762509534778299627227595621234889801966378852474247065726820038310370571062301341810664264118630650743387335962023356836119357681253563640791343167943651060667578622706546767727615533491063255130656579168407636709646008731533351993207196130038033454456260859115368447914363190380607802491735065934710003450710406182462643393876034035405273422776551436351971709002263968706192023993645344130753296672084802204965312930190085806067848378312681625508341148519039983899740011772306312519380908299905514803357334047360842941910407747221134104124124523136479390823750688774252793366485593732246275886549098020411957729813305046244387376044327543568248795302148046039312619282604633322656428750981224595332029791892865725216885378784321056675797651078037413197713809847266869722764069970750808717127804550839226471704259641081955393717764657395200821728519659791657552649168642920537208178077100830869086568939520064591465579426629222364515898744786230780662885841926433782024703240100130437632998119351868457791478536354625553170335561552707755810296052095139832547406468688319568083411654621890594446337421746820514014922384888295725673552164685890820774224099743182210510661171768947722540277501116337986037096249229056680945802065427672409502535133137258241911129684836407939715155498930964157222822762847335299451619657350130125290848656696497652585019406378453969190435243261883049295548011531146020049820730407532568690254332460690055716482771477629152541379092735227112821503444353751353273449180412584891813188262021521810155284474618359609558885990747512162014109274031953020629359312734331029548073331394356329752787574315431579483702885968299656248752466032062464033338880780081491173439192031312434400984750242794988400684958183168659449296833336883173677953100544409301280803046055896622665880069561343317490231508823599287600874181670805270815679071833986724928816934833132460011080812616000480436408790831381327989295504732962603302973252964824017933484765238494798125811568678511092635804511842540086525690370715048286329916591807086994105815699347930366825808157597403581854448202976188630279571296519826794333566756361778305180053250680344295947747004890495499730066640460413979313066660682951860329343175001265696846306377271681207430206567928832599371840596694165764712075750203502692025837872647443284078981943158487727727126692624045733218329555176461998609502300211738017258221775216180631857141886839183491037964711954790652043732913305897252353265753961521073547274007704369140758852944011539427956827749665597296892571066621451967103597895992640529102166720299670210044637685969642766076672212812202218448936079666931546929849834104033089518280877846914345355285971171002258574132024935568927525860509363457360895808284185231300944230241398788362400955612355917454688308329900841775420067050400534729008407831977227280726817436949892278201230319994702225469583288627704084122070288644555928558199213756287626455636638039836545157796035993177359965452826054402778318489224954573648133401300730231983685200485478579485735227841235101894131643037666461269828239454878328304881379563125737486296786478298123092070314713178460750526555075824517613186871990254260017873800170525547133737671360675360744902956047900454696818699425383111186814167772675000011380701957513584078640186067409038525456085420525974196991689311990396269029411638367797946753072595503630711049131068665177803199266809605145125464076615918882507506044531949870852222490233580710820299944967762627743036871915724905642053168501327978388346804231134292773810490446574699611972784978967351759483830271860298704904994535509551748985839713962699741758375751693509764798337404169273333188270512112712044674699450732743505084257546736001927674462402339626847483343349472843815694072198182729332225473929457327378142123879240171101205908429405246592612800719640592641964488080681995787694945019531198905012218426863164084545172425670945440350245828197258963610413684070666078434213736873744927428976084259061255811162208847401995489367393307882005173259130052213821246591887148522085768772656574914129816064546621747394063672901689421338030210967440160109576525225920677129472482857269051940502690426175723350386290872521423832122067517686467748840516014923738262062954384211792841042654445087846797735904672954809053681151099816762039447775187016190554987610943387730641865707240283087204360830634227399026252487370222332373795770494231764644248280051433312492148845398596896740647343421647309269113127624566994116323857595737193359418891486847626440676375013906406927371054311942547430934099504652357528455477763023309229925982240356011362579179004865732136372484815874064006844779814516051814282972828723698166128462306941272295382503548171139423447248257137091393321571415790832592182714082947108846482868255927711715001743526002598883520544629745015538327925351281988493907619388260833257590311969958380064733930061080493824518171733734762081200680986234860155019543779918553414310246591500961223110663111989740821167957049739347339061884219840643862882918897476162682843392392651884560937449951605052866420691512273464557592503757516128558215073614835305782714335222936122090176764785109438068597288443682255721890433538878322623736221952039684475909394337199461067745869618802881741812066994813438038507739836996578134098207689429839723503806084772484068796718406638978891972205624639243900401602679277192089636655298847194124923575205076169213380019407714067589544732972974872520018979802335449417751460026430098169799596714832342631789132882647404988003088261391448826318084398725106791178218208556817522488710922242394814781237636614867487524987175631031113678548049796407498046834041201100244066508891681513804064807114973723764567851733431787637700088554803783925097830096023631900735528184911062666619178490049306514283680958221863193428864117417068900331234229750640463977815071000844145856648926125378765216874241033321593275577981857583854350584700954399068587758421279538122834361986400929192310939430394204683119743706693195129386418875699095453772922263267708968260060832608443565514791370256509322544739266471691290723060841253138827120911215358542364172520677557148248390651281585058978214868774613274137285347418055921929166072958019672568887895987765108999167072552548743904512132714906203594392768187823747529999063868911506545933793788059631941498245294204476877750067036057701049039372425675721932833207691230964263123922572429934481303024798933001318765387065179460703969250863599243788305412287958886159003132958689136510730962260852538928881151853970139194824945294871867878920435460433334090394255298960877757417936600850124840499804548103209393372660743267339166321148095545066017218823174335690490913112880879647000440849246163429566830715992530538079300255159179315180036084366918884731638580547090458526540501077271964030408112051965482188254415062454919915783390991742290444360881244053413282553246376460092549132871107134152541028825466257096039845877864826007872112632831618671048071041654954857235723175479602410707756783107710752554568410375077470124274400962976532699529110471619001913097623323763456397036014874264895679738311567428343277592547869326829807808417685250454148134463946545985821915612756561159895329028227205068020306759995171895609308680064129201315184677225291911332341029360922419276876932375745623638849744051702912037165803318668472046976543640844137657219405520785603729512023977590201303562530762685270137928781668265435013743015623680481563741353382901026217412102536784284363140064746805101520777982784631699042430636012945654662395427642785405035749232687336186004767676432332606347067249307466257789374474276228503810093543073560688117570187584285931528096573889726569209854424822850631932595622012510437298569191477697999530790162843440302046506728919614938479243333756103137413941928622222811346735461397088251667594286447257840120177253180470691710388433724426913147101989010310592482784856098824334187116050236126791255613132152422744048439247298335706767591855912827739341982922857198538471129139411657327396229364704798747132337681586833089810858260050413039214803839041502236281318084663857092895882917852390446935727418584471071984101452884999695595936870528398296348001868025780581444559833801091701432301563747338769882296732244749888950333308118089320489122164157252315021114426698359261353244927834854945302550852008892135067241810891975067008802719409067480659757006982239944384957891292077643539800645910246404633414825869553717212881216848851981948396825869420991112858037181756289608187013461050428635743449307315911660975275164758205425801268458887370128974498752832825815339780893829339719586766582972745544542751642721428715006984066863198842483051078628477934572976118064733116673487877439308771247205089541001140414565209807216531313059717731124627283114401255262418650116705980342377007196414786906708929493649004159344050655443483609255908152348999131198769950820386795456430464644592164530816821970903255668729199157419659589986150998704682205366328714418031280123630618973535910682584305622196821956088860339772865366323516398353706526068900392075558812389115105955481285757819441609229252721727974573627893366991759656632843813893232104714057192162647152915807502435312871060647501324847007840321809605355639220277574370853767862083680976764822113841520959931361291605713611938839479371809924861592773502183859375136547700817945169431256940439592288810261887288956215819449666616504575095646388249572480354930923219657237339957940085072648304475516202900112890506184262142436564868658092120135371838242180746757163728209229542106244427739464929121399836370934053446081621237887180585369134673294760964795248414169028135327494279712077727161101834607398684063948750076962796165081277350482642796022329105238948518135731744572246485961701612887193848273096163622240183323530928732907198259580640047658168985776466283541371450072575918960106664559710790327531862043554373353048878254920222791272370981589856662171373052050441451752789188334411520480852489621642323055252564228125865968569649627437474539356134086639760894145050576124762703025856061554807983923450449043969317613847970507166690321563960184546202298176162493400658539591016565971653954973112963650437524220484488240059450442716343820543238103979599405861739442238819618377322403424873134039090012685527771898370245035398165981701269549417323202924633391463636948401749657785851456945111411390984636252491908383172322473737358259039333463891534011804757998917370543132974155397626726625375036151298831627492733556569988644067224106860010691903281967306513190212151705409969986478058277434253458968857114771435574685155001381252123612092765979691494408550174634006383406028500046104945896034428851336284378480203146832012185212712547574191008615955203837615880872872226741167027117566485034975737700751863120271731446879129490399876713415394008589798624253264678428720579736907400995612110780169692055640878349371870406098065056427542158115716324227552860510002170808438166839452471450045081273478529302854348292043625986790667667045702703763875061004956620547468523230247253453477935794858737772411909387036215771366179401205222628737527147904411487247407857584266159140344618590306755787369179134318844838003888633715181838868217867227107004461946162831287696557572475826112692683783646849613572746218560185562876683387177307496326210052500971072658164677949040425543773276365137840301032681159237580490930912994181331208865416319387327774120692299375620354754188070628423931676667532769548176605469702173602930238997068853735930509491473251140735423172824606165053341968099725763922882253543259779371679158700222516249111189987170902526258573071329937269897943806446447087605536289932070493223926012834413070197753068256377240478191284542743952067049108905086170409784893078888325064371397979666552910122700397335705111521066024629859811946100436672502924228133501781310072507870352224543660831351608258175884673587645890161329191106891141938025227807382796862325491547539342413038538095335525436081466182592420135812363480304486108632732604937972952609064070010861925097095389025794934825509157573165783169340529237085668004055890038368824412325355383984004517459587720967675366328850553654011379740436749968610000009406471595743143259283136778864830724904261851043918456726773426854602749573789487597418511409933373663284631465897881737928396619754992338716256946731255899802202758752833522129072997683928657377752010836074855562403414883410452378698294424161256012423119608358025489414767046102691543934396726797382275750174718778430487245799537544263727715463521665197148471197486731565618730595883307873478239200508193282928639637964511065352627121062457668059524193532180287651362602902091801560875801298689086235150809682454562905906912414085908478539186295671709275924710286939035705566012747760862306287816955387062620718424606361797770133785675259462519086343093924851402542224457577727429729852753808841874317739914354021737373035535686322950269429909830020172700423530815912189410277828703305136449096011106362748315026572019510796706791439288776340137253301133181588991985445722242641536620484534596678208881990136345632619780782006173703325341310723982167413005724541600125320031578440143331729302608403498990745787976522922025770003002652806554503861802224693503970385270186958722119014773836653976453679132268190088419738049694157795034936171407482287388407305553318340304269137330633815601314641836205784965277551552937325885581425717579625910995632632213038146508201226004532016220419163349932068653118690457000972203012639458705513028600529643145835373273851321156020497321865058969133446535388656212818978894421843545348697880355304042236368421312137987689464080528589953038122650050242227948486323670762576665678106402349562281789884113932683798167006992234027120547605687775140523348318016821050595641981339574905893217787031123807082531815300382809249599838162984596600383552603918784945677880718802501257136469831871198455513687958370148992649743594426811592513552953946419687771787643172742445410474018740125267845760733274203333507023189168981771960311631372889413485986954697391806113476565869982255636813174261204395620304828616251275204543655327282109574611836126457461680429995725832588805655889914351360884178780014758158394449355295009574652783800746507915538642866885531298486394825837105950569920328882847797212368010245351053041031567622320991695342375603496196342986918385338439774212875164781891231985815770136330757485582752786844542531393592187657290422565067876903125419573895672727921636546915773061528839385333248240146181851087408487130134027160374131539728307149981955408113936457644334191087640399105748616009936227125906945793179789740189723874692199986673125173576351228940985857863725685488966783457885574039169174537868403647417477569042371987895160326008101672267546085066250104527403571334244312410977769248789110578231870920920103747524257258379510399189946422833733375230364660718450571866623333788921096051114906911375830741360926615490606422826603126171669410472413866577888772590689087179453969510285515108434338866598993269051249201816281797158484778064304276497331331223593393304371401688021522906424134841239401848225188050670079670619868188256551345749006827385376967644292672024759389710375797322472290724254332503463003750109691297379041137513186461140150064488418457820646521388917099179855005319485384984355883469640089088964389857875996260824935146803658939253356518826859241470019217586662291442263571878260292457880410755987953284366859310058519994241868587989019033669711343921450791915268921452694341518856138581231119004907021565187801781002422630452573536140079669782830036791743262934674858498032484539709792065963800067653423524722324822225465171621156020528272736123514606193541857535522267013774348433370356119019424950073559510318892234873147963714944229693939330104423249041766355780843033387903907394428320710912490094793049706357247476961028213205475488741426025207310948215858537903865323715769856582722160428264511514340001379174958774601330454255123945700168966571960843326476481199483723878585799420439526760940923819132849432572253398278090388896079857785900035294777601247093930249525098578596950823837508514857623671277367684002101758240347601210219268081656048233876278365494880829003670167883682502828397732311821203932753076285277334111238806389158827977751849070495710127810746264906599193129042800182368154982067350082080218512617125488366432555006682275840215980329598649570059751184620379618790024739821906330891051285673519023265957285182640208541595678679299138357108005061299249720363838356466788673517711651439409069715631861245785108254517091659804132309913051343976492134498833011406856063444756319326460724714607540951836601945824786881432121726014472559090695677284041100899944016791497161258763601235757557067479717871227950571898651150532501026574916140922647060941811590637070247378835865342245909431242685110575215440192803893646939821120641667808484750140996934797719652713223860173510162097076148766663107016006312877287241355316174455984702430373538016294500194337141446608367393909727250285162963772885879633918139770527232988495727014562171904249231099742219127452857569019052257808230214079344966860745135519405077781764550571562007603593294317545065188866588967227089767114120176300620030001218839775478910489704137667661435023148460939565852952194857975133704791464635799469992944782265889010689233335616754316459361878253028643794882231820373967983276539666688204588353813500812124328013496805993886618320993203625009027211974754339760560672215489899801767724749867690073602400593987204191271743759663038699034348555173481695111720657998348253484402592639217809349213082314127527640684894916646094888795805488874225378281598823646211179932770095683049626042805917164188697306652763349854691421868220542578229691113692756770465239808945968949214651968150987356600010076995890635713583371035094996170031913859911232615028397398924323840897265380910877041394561585241302609037031914893285366398628476024670614999598677745325195434018848839214649188067955450165278567472212032522727965078320137631178829298861536610390149793332071369159199999757136454769779350879809665063198731918990234521109824039022517468827298155353524511571339993497963330213995554784939170545780029906600819311156139984501384508078991307076968094177800395651805345583752753085103066965718400021347024399829699148765634574041747638577447339076249143613151551467801121233934897581839701558531900290073758754841955152179370684291705454698796629338051633010589999369852168862056068655037810471084926473201624810014079454212381896568802432998046188231640149198936945357743368804756424518462243666051175601169260270339389651979226272237222177055872161691905243401976439391401969110376110449751953683590653454526020996751081709393737028631027151641683433264549568012157168001860337111619634311399630133932258877396070582010357909783708718091066204122328926378689876296290845571179788047186707553771369859036489588908000726531487370667041889032177279793053388145336791646081875468598988476802765223331997910711004901727379395467133594658187904715153725405003161599725690322906880510045868123484674691276589851648246719123355874406925029515243989121637736448441227778135614754510042467848906828576328206535752388532842366017657363170511353561984986440974497182356311941882658626401894235235303651198837940394371478408304329173867987373940136138712626750387099669184651723262765432265751833244057791749984208278843421097752549674134019760855202921695644525287907812912305611970219806299414709163382040301973967617772585264939462594118921338946837407672098753747213973646629257111773776425348729378807747870164660039952199382609431834475868375928035012236492586498607623141977265328306267788694616625939681978914316470571826280131762108826737716680226246192766041798488499362441144963077683410423152121857019675961439869901977083964087868471478607829348580557648841257150734250289063858234905901857104095590418158690479883711024244851879401677825375653143362378651811448279130661211507859248648589477672493305002552850680803599841477408287272328949820620448355139014877611723978229072871411746693314997201059690715148977324463237918260894092329333467786106594768829090719831370670640963435541711887546652708743256216565753145788960093618398382971794261261317495631897451388078795935847901778754009256343112024718834996235694321106253254717430330040706518027411688102661534981114540488368105130883777195829136711411212324263970532786275734157585462286074509550606248734156858839813878718973184346895031596371120778604080724341104898582295387137739684636736033314810341637457670363942001328237091186054877259808276705470978304808172596229889511743662998634532332327001364885802746495714854250478246308436353085224195192863425109280473849888259424429925961611976500767463801685250227281178513273472440947486946998975853653635204632569822208769826550691304525838642545206306384978755782017596153346909528049466936528162948203872217086504683265157024553647444507361320776909702766405557496781472597664098383026790744359191437194990455856326219557005318173426589193685450610459322353569592581052535644965313077574759789891175771411490970111520625778984220062678277817884730072306146907922660528581520129376450100322612921562561052443769194052876248483452774298408750080286917839764415127641562161419871724941092895182941215452025155658805591100664759627173746545901168681456125583310898616757665181954721386281709708656665162214353049160674412224635353879971336253047045539689844289099394510968184784417145486555613644882274524985298356620024873574145546418846339734412709806416561075635992737399449056237755391277131751287385019709447550775217408595833933020812259581123943333365453503593299897439531286254380518310346238023938446660343936882640676019261559356861469094238967065965754858796011312846805075914776053380670528240928680072690018006599532921322346278844696532682703682083537083548856214541399083742281790357193748779680576385759349527625017304228178500223183917384113032022159353206156160484440155752770232432354785109688929768765578140620431731035545901643433930991991774539921963361362002195098823523549812356729876038948200163781056697584983026702659470857031273725688617387940717876073512503132778810236880936272703208311169831514781418575052066329685954050991026099624092925731917424107918021391122798591092212479775918063709717989958885899960444548050909591515368005569542478128172157358345305978537472274286149412874663532055557687062005591020454203426435537007361507041072046470136677730071705933349622202959218276147072738579457888548091017445449803929783218798422150134461982340449500580975798110295255676379299873431512602886222853577731908896704222260357179219547757493791268555820167462035715069744282012701730564978174768642162046426867357175893157478210744125022723625020795675014838709374485271194906491862631159964981631890596651046724096402736268438277028418663131832029642702030782733195789494463567597146034517473981974953576269571208098079928336583880032848642556515374332370299522159587065838973835180398171138815603243134984014010886395853179774899567714715587191602467419326175699385393533442647876460034455018078792387093107197596679422713244495892395833150551593394563912751905105367709402238671779126301181553133328942668956920019095755948270966409758555055443867612271283348375137772324692650871348428045416277349238850571562259833005234074738499653682296721377538437955652622500765216166129680100160780500559192034707563830877680489795969782580216959619989628047823236854809911776995059809176931633683705312157194538578011935430552884972246448099456723484804259590115895583463943055654023520039415038335328328949674780072411922986885198130178635710454157724044855815267892719656490039915113734929640899523059461278136752167565024616753369912553463319306604759068942692100130646280926737637884353252992160075957423563408922639794868212850272347478925823855098612834509370268967304104691634362889653810498077212550665857412334719594540165078432248444927175245260803620696803694566595469495843904942650634515716777820955014960709582489838080500627145083348787596419621939738082138834947582604376055838534374882788992166355366767810363860962385836912790322485923119953769126430476520938745913616583543817034011953421792891154215998344567051733237197877989545510029482674394098184530720144744743356497241277322034041588240932332975335764330911504835134385298816162953875100340607582376127385763180196338294696973766344883126965436421272147260781641286129931116960479596762410473349053616855248187314890000688694749320252320242227711988733838496855315390340124143089014735880950511345636838562730688349861792429656500285354203450438613989952158166803914883055008225652874545461777752332204024754442765662670958791210104039284430667442913877555114541791696654909666707193075636146359589508160222108536024841655579139452618086285516229085251252397402039143613695689929470479880723888039549904752444764748109678500407164145523991163045228331499866060217011705681001095090368480202745303310039683336307671704099895629884075066505189683127892234541680023721868528711070618622335520396025595534267594503248739714050501764988380565764015744935101563719975679830131317110402839877447547326726940408563344866915656683708997455024812986139627007899675945735695809220960219635941929301832734717461666670520994995171439164569798769216088445168708226654487245623449335951459460424264366030160076479092802775824707852119583498218681397178198129048840985610362305985088859527877618250785714192535844561283379050458087267350445759473537966703123237990054048019535036011634867137453598554872914189886584847002266075668441753661734515202592400275480175160406719189252363966098905677267353317100994648461208347664504935363764947086801537936970375155308278420121056398818098084363904001886035794950973993056776890278136848756363356971214258215744828106632360564060476104815902270307480317287740568378851613282030698407479553461846457224064965819823742333877926215472977895576148762605639258218846456134310989434843336076249727825225234359081364186833083592612292853700875363150299529240654868018489387519440424071626986104814517664723973311830318866984526301083987576992446339350042818598974071543903397430630109761236977061476180566921936171865974744524723793963945919407143244260968370176714994051343829208153576949739414307869793857156414627596522500640498786472607072772553518077608318568478385051932305455639660327739028971110460722509525988513729287412178995727720309620060799033855454364818366798686394243032726614647663771470531517857456770160928824094927448317519324385618096761701721544167911873143281660653649427344008757031358113828352201094618126212313984031828207086610558379731150217019349363499313235465948556379579809900532722112643775113901282709452707111703529002568533043024521497239941463892995362407920189047171684707978207888460363948851496506191880453564079967679159451668767041429172560739220000603601643100989086895382163805036162571400343629342206996120955741703997246739762882929769688914852068590532028525292347877607290277566531372282695295095920439579377932189187061623924070362181381596163597066321424541932587701670074499490020575493795474479630874063249333862179066187592418946444773455165998978259527889495258012797400487910122308852262943321329946425087460636827670130769883774284647937928814707320354119279304530495702843783327435752630526573232607077861302644799475836286288076993946842479584792850359211437391574124181812102863231782710713993308815938110536399004614468894582810112254474193799619147117970940934128301779957909235164835588705699171441280768684525105125418479169728947333580462904845485845756851060495012952482335714101395815593495090162320826740776723340702320421905970769478446177868662825878891152204809183117191135469737516135100266777412053004165632892633740887784107286416151971939274015105912382108999299582813664843286614905698562962601572013133377464704047540641408680513822582390931745754196678525645732888770749202506791635324713464763819412637874931377347469414651375605209905875030053781942151451122341941216018883196375160294748674902320810728674673192392962631303355632353536185528571827351852643203260660969954410376503631678341848485765478002904835605529048640720905481055848815831788853943155329232005518824054931989453483503231951135955952727505067956599217704943815760614371501916448503582394798200893638097136823451769186196859321666419952941870441564111715897036009536452660488234622692578683150898694600669762381905292104284356555312346617962113836288504081762559470958168550971085647441080264558567587561491780566817536618626038481222173427505295613855556183617959477816429671855658837998464533931202431814586675512537883930397838438614001660153813660651436710261510694620628898695230164328965951360293473967789943538524789849437460466159123387718144012420584685404311281842005123065179602014483694752980074909185669252860624770826955286461356674078433263077608843356536994945112227898231342954014578749519108282351836167245785404659886058609796409163556679373789694695998756976826280846905088365875080132218134507840971714097133532581642755897806148783055430527401291909118311198535123203105118901558151549462549494787159039007030813018006826778762078303090970989099544482529711159855925036848993494494601166300460235379659157412496569814805575461518717713518677680209051638515804114234027487537986814606966591479903188400224197164593063243829373739749353751364461427339463467358303717226291176869849745316840468245691013438245339744623487243884772088762175063225772893369848208142219293829073127668126504245119226920215811663482370635128221587462857123936355307279506941650135496538716516697372928111125908071400244427336975545404272197930885834591031374439451437688470854612871968553297776665456602621657022391353270268496913596855431032696683928233286067523033165240474793261659543870784816072946684333910373904024027414186534430539970974693705803994035928210568208464029368307452104032239533105303469920926380991341545609280571811677468353431239801948945728939197854462942849333581392301125135656185895886428140375973717327621263308455076119789221365522122712762668222138633880272184088917323522260442308863420960859867894469291907933155942324635410038820061698814464409553848165590057965637464514473386130588460195666391406610806109887666414074515340775859211456031885940559947406285163975451640493335694259476532834301002975431311302864380348172339239388221629523577836414886156339662479783517334155309966102562691976047715952454334223057915328257920801699793758273060183740881487563567044381776465991021038027071472332950846152116145182233638303092878978176504566720814669903613801862254239004222994243549842743965258524769267819990733133747592487164894676832824746125950361759258316500008492317880598056301240336405181813125220763767047930826794507690455189329254065423890520015097762671874111308633139299309025528482671524753746902873636821328776771008747268457222290150890474459292181701573237338047742666149160076811233871296488708157612954466548730712782967484885087307856168363154736224883409692627579249055988426431360557317261391301972894240856852520140029263766180696414827883939624293086963788248033793684588771333176888703607589780973396676483891941803756506467916565662672170761865132233877711104577788614135534116279781864005544962232900427128722478314244485072582181194506734598503183072944723697734649138231333336501563857171816987201596704497730819563560435320734522189139508703545360518998973724171003801096295526628554893320954383462713145161526879586403188312313381029160185009731130570416081944567114559659022144107890528925139868132017703154695682177934737588085813772459192893908417865914588267768976546140227673193247668858395293295798430112431779843134766550161196401352243100072326854417856680824610225568076739504047941745183803480738137674998263782603295296112075584335629759845583796114662525452831355427720026492826249475324611434804294512898591555270866567071423240984786680910238262472357244000475123897630680026443921969967813139219235751218375517870778412594181871010197895437371997203127693645847233869305017408962728938869555064573302887767378120930401290554261191364265679699883875833775202501580396422865673431318373289853428656718422573473626043346053114362151702123354299719737563779347798950000086319934968911299696072171828701604609831268112270312109845451660351274811585854684937924291223269842846269062343984718122015749549543929073649605492321871320684421222134422921492928579501563778789857239211046501351494660889510011164848679234798682751927966963535684676267535885184396663658542522416147770316704435936999932057447268221860766157117643294123862298889235637754534581219856421638568023025584001933322729924608810322044442352182309269028846210782748686287195423718038299324257162817044492823864433690847924233687964097125530711492525850263766918668950559633641749106307078989066019677203623559288115579388915225697400079359277127500520943407069107588649362109353276847372698142774902046974537632886603480908879561516780857967015993524945928117188485998102857543408660702185237898477802841072623831788745221487493331892491219111907594025567791333644341399662021202412608719093082158882682279492804063534615692412808143133295700267226517814611438464973293098269273288832109382249818602743396966117586196343681258864557582168536963055866257356036670689735653496830901784893939965713814078142710484841650507169806359455010370424539969113808359909992258927303500509875319713994904092450812765487361916271830984449663372447679566923336467167531818496457008941033533085124730606914491149489241602987186611298889004985560564350439094438063904182143047010743917856874695406312241792890671396405813665705926038339981578538405534310601884624869360746525149198386968756155443737290790715737914867913531101582309157818085915865387379761479179540744982825289193972814833660086302034754935188804106944932009830639118880528418586536260905076942302272899735511649919188801843404546108480954356675867063604735643808485884057989491150173252332324217395443147133169920677244380013959498940055260368912759944567894978892047688963233256559283920752029520890123851538040642973739572991688206784182219935609335609835718166102029599804914288670127123421544428400647090233377627571595367257207203161455116655400940727670286191652024719235259626974059319922272180661784105482760991034698718453906808911815326753826851747113655125125815245198620660644282573478382514807831726270823657180696558968529688345205474669978563599122467226948033350959260820122135643446231377992389669000958716805248121615685584474623929547965802332652219074725425784091269869732881621769890399940187398468775249972844998166011816786502616663514242149526662491458222806425298779493913890684516017359272551875341841741443095957250336558396479645159195829238493205180777870247998714823530497516398093039922926353832492170298675826671792317335726041002342772885920870571589578093080280079118502047850570338722556217587074940852597259299533646030467115025264157595515269371023892498600220152585722732203767866559462172388870382900831311958654269723214323026643951414427548752343084106516275367241170210984031883683492450938084903710884425702066224620108794493257061466558671110047476048024118060232555343893486787579772254995950382963969818391216970908079076357063845571412419889925305578456551854253111114601149128431030202151380093115273149938589163601344320112177306533830126460679072456036954674379500634449435018921049540188857668629666694673302462140936313584060307483665083942995776078709640209830045308546290214841156392675851340230436558355110748985582215368025100343227822389143230223783344854595396935191812487138285009457951605888267702453130864522254677574903292656995150807405202404704651523745040463135523666671984013182639160940162319168816652492359162638967458434466323709655502275422275427202212599093518563832711660086380183867704019108517423305203569475197758189245767100577660097427550772075840334912029458987105029890828040222043030437038641425221674593930887966671720585688203904758515038271417462221133736534254872760850187364352189949540228961103498913711947725763384024227500112130327708870104938911343836954632683678814500989686730281516326464662972927678798094997304246826466099193727736082007647508571981348811744689362513559678946769665310601422632892249881718903244198800096260503079630452808388274875094868609377846794313171971996697579522901980369443551135114015226713213457462764585368452913594409977274261817808201917187419705450465372604347718176904581219738491724713890654309664060541948542659302738212859937320800869074881741715124397397551321913815737972654615774961028528323208552209349734098825288604125197702298116113323643684262487079760513351863779835855953449123810432473370449591962450197793515250881347184863346718153091222209525217150229227016293378101005456079802875316112038561194248087422385546410140663989104943402823093953147438741883061038822893837803308363087743358447818680500037865448495642770071214563153133220239352498698866844085472998372504204436843448348230616523119399744150156834138377944856997700144125321034907466770546687370526051039173283362280361967437766073919171134419635331186783904298563927858494672517956195130935205832814193397295060993062885517691700008617276728277787252809711863161748696123419537908474218611576465243720856852236517786153072133620520660205239612961043009456573766339649303101390217467246501679222694900332891231179935737968188873118658381105619099359312740423769309312510263158917568270329626050542555272372360032785039537048821413839980408210288526059241646240294860217865235392883742311649067481987414619169542747523526397558970946949533448275971007446572311713017368096892602397562542895235907030518004774855551303164853775196522917016680521480558344931596544207441302412923948311903779956529400573700520547300111002273409695726439170163635717320142850237720711429461602233900187812687511899127715679272800487781289604392472125897846861240359319653266568005622367155893881401489559772703438584375049988773853855086133758848741934079625389026355213195540915326793874933954224050634839535573071973109968766729299593467751959905369798329325125685221295755745018191876271327606527258412026416791907513720395974202028654616994104503070858005783612679417631265367380218690243963080697379245749252987002823038406789390320185578472709066144426940807042428128454817494546213151307511707090657386485211005782661178901983580639192984105309957676516295151702410160622607105540399282753170279030613797279135273294696675536332527775143256909016498487215225887405048407186854074977601792700792665818893438895136561356420468356061143364071937417720140078350704636063438766112306411032494967674967107731142764707514494663159919183580522782070456949087522490045386106542377926676038040187547117865339186522567806060373671259568671828477259917203172135964415569206743932655508812965968040799424387388898075367706539185117421414990425759365382702036030633485104080707313579337670086627952204751226439391525936699214765973769531712469729786577041528552451316586267838309898889253619586311112344873980512648573024488534210382618906292192797307210201528590512852119618080281774415992487694710625912245475012597927728321636963165661254949905338631869942971124239513768070267475105576793656278594449364606998447241677719161144119953441270805687618557112451390594855930257232001390010528207603394145576810119942223477262878839865188047448050397708421737752244138387411912874114011750798745898300464223391219466622793518110147144894075911079538430217770159272670393992135911369046810572340084341831964480452818626720795692941076014948554429570106617881790177495400399631672546413035883282945687975002754966076875106336471184437696814802637288150879027981578134418509120587433572078071700860173454230897204122545644563922211721765800512363343645349419976255407963174518266015884713895303672359697371408225785348096932798944245646838235878441415869617128308669386424890092828434150196349704593142587391198901987357231479871791088959915220115404766749435394366062714595118034184394977122358375763068207533173759725484737890935090519675217267532428379029951009300377629960514370160014090021338547247915628024992722975438528084601572124175733082601106472561575493463830663711927072667539259974913751925215623924325037978012554407903468830665834745693339445818644232715526155207612280356712739530915162036610715719406494252711490552876853684477494561920995865237047360452672518904076520795893860194740043386372692822838591795435307312720188154845192726189329826584431674714077061999901692389088040610221295641279864997448492825495979233174663412558295021474890574470911930304383010635682216739814848789919716016970867667635607737539296005545798413341491080211771728523307581181766651200766964847103855874499003078548437160767271895235680701962001715538612111764075346892387517220463388184900328747160413760265118734039332770305887065337837706204418819286302451579590003644077732911668999174549645582237685354640089271744843524431820627097767573643689143536674332498231452468047210302920639011901383397615689979814344441655817586009887656932452329165815101793117617121064152165357815886037750774243857241899970252264295402892798375799441118417451082115479050014841000847448212805069794518778033918477826468225288843835662909459255617272687498806587547417734234117248748311507513592367260317566781422588973045499662628566207996340770144921107873678141340845231508655377411635485399910997796091724817466569279848620270512050411473365598163253925184144159842952060935110968722034952539678315278970909561321348260722783555686415908248625120591155585586752919180417753539448978961209838689263059379699568160414730679364988695670025776364554165548194082504355060464065745268027551650605836407477220278959856376507175283111467635567018942165445528437599716218788487708329653824104723946186695458489127179246542635156002986558016469718598352733456989296025540379270323429066523571983916460652163862735423165365129494080075574888612173952003974353942381185141038253509895627827047535168200969321046513107237577956896768494703807704825132121969519025728206391401496135016391577996466036976016227643612869060626550544578652334474651430839837776429970230740403879739874612403493517238772682674691821817326826546517134609627356017820740260730800468956425378514265569584730336447779372503600124371268172724374431639740113609010445585717795426463055613769768420453420666347182504792785319585842036450044901974710329276830184729912119566716956355299757784744440282749849298914285559531831523103670080248453441597992533630783285399077899233337432673287355556097728159594578716819928287303259779696345567142373345544458884093444559859882801714897321064938977898303172624649475678056615484283047220159179831679708189905453816891811104893040706937226115466713861057793744281085634301727420221638110492093064501448828434672477044857507154364571006814646897045611124326117489639593757720439034564824368703748085314199043568538664171795670898505633082377068361580810254405839817574193293254208939233387485215761797042146557359998431569752828088798623337097295719500018003791664796871047029731780636620425846904539302359556599354126689077886721695947434086273011898836032644423107005795351566698065144706257373607618780676593954261716603592231461096025050498872294529720897121538017971197294870311321442425023708209992413398781486381908447561682156964287632484212775543611699574589599065571991642302640943975079593714241038483743068116811371070558363617755875174363158543334051794165565911270208652076296015121634033118980837310855950599512088672237675842037960407046635689660571713140566453748755534459730142554450531020803734320470707760494983739617797831103507339472655709396893354764571750073956671131510412958493166617352507180542712998761268393691197752643735748642698100732033940446323649829434708257575019654361600740597023813690841673992706611245363416038502941569448156047765672336893333429731943922789932060075019592255800272290049064598795960297024157668901366197366688432841872253613065495640014684345133220466921474411946570989373654184266282973944147637088336767202379112136031708938030780046243447727499166995070707348470537623508089532352602955894834988775906823936234942991501946007592681424417753545886102726221984868315645302026471680456016702871574157125656524753582677334340399091843491417421875140547466571227665608387600918869866195467229485572128863047703978579916260521492923421328938957676163732781209204345698032358049581919393990750366566313843928119464621602819503376291169858083005476278517098540488484225936937509470880743664964554587636811673390199023718815712231297492589688261794503050247553647955509809638426279176121337062436315237245111070316760142111492938300912201949106044711474721144454522860427163756239594158008135495796096469253295591806427186234870112092573981696246007396405338269498852009951523671562050401597852770348853037100653341695723924705777781694780396631307442753680937091436225189124583635454938536194104294053555289835818066433347082853218688773122379611149418105183798516472858392794095566670787320581227929906749742428959512552413952225639848862183037479740597278016356129087141457462587426771893237292842676085974314304136563913680872577689342935008810597232158853592037408733702619183174216376649960922381702633288933012701488592811187500651133422011507309942452339950753240759748666621502474617670903786483124527830103921301322793360838019640258457993106417308191971887109560057362785018306602569305150041502297218965938748720919749864493478735307917430301052821524248538588191277019409163543235527808654707878130523332617706391472896336818636309220020794183053735779193352659477735848492126213693518014566631820417116204549323010137303291082942979142663679881685322158257578994139425006781602462992331066305540447063188614675717270877936407505837421030801077216371307047740131300589318191310850217983731914601278935386212701018155643883206057463838023688988795649743569941723888679531095679231923895873148835947535114053589573848448927855270388235266226109621304542398234587829703449674644609497633684150965642471498936444000310717159708296712132195684783640769727625198311187000360366703547274654764576642783118616265908980405495171260138017148456332026255219806517217227592284601130938173500316044612006080989822591896124354583218862449120304190727061418965226717029629456555608925286813370580280146912215228383055680859914072076601506576527363181834206540161898971237694127049234853097051355453092647888351383021812960081268882868945031506935343562672546909956441037500196362856998205952455048528265072755536115727702614226809601564850614661519366007492529489951733349412759005752238154386050908806281019403423561107502278556436726296295650949689618424249641184825064340011764000088661770336079977376679324268701621955386155943465315715768631356260727252504980808722142907963190594903274389927472070108279773813214482806449228663204425605226486094582363185353070895605632066786285204682380690412761382955214566189275694145350717811108921265626025488071617560631069385841831633112277308810949333207079847599853420606077820388675820325363478296319359066372051468157485241494371898601541688019997489835066726149594656437806937771119750307285235956907056826872109926621542601349955901009617710256462004413981139780471333714910033964580295324149472521075868003123300831527490535526807493510304214873467214946730308577804670081698078913949480132976319874019218212020430791856182088542676459423175008695955268031633329066282963276061763414303087039599213156201075835210167336589094753414328139260846266584900291595935337029774443147223383049608863083954266185175448118006351523319490326490078197943952729467792372519554023603161822535807666030020965141489287470914936785180381438455849379473290645615291253628922977879149180147631764918841840166527459667518028734467346260784747914768292203241252564444691189196215387731455615514085354463019207041918737850102534743109745374040389652783874526220799355088326217949548340052834764253950631902235745261898259905949482179422081731596688406947356777953588143224909948803313034553134417956418884871558316924617771103732891376897174225636454146961357843112431241034650137449537597080536627340543864361992217490080989462046186475535929524830328781721028644472973827504753626799892235659026169346909112481736531559335416520011081286146673342992213311331009399874833245358438302284151049300771941099682846045496093521207208326909157335630212204671491961573566217730259520456781447758125581621065161670873937246952994434682623986030285560808169204451612328166771946106387302050446430392989620048595944518545052547087377258053862103119622045473002545431498177021274121791740314624155055791053455286107751784573796185050931594335043418108225668806142582041285109683208120837497041982663495004173392682965587431648746662141547898075040231693188270315581978075343078101204413516924929387811881998268048661285622314066518204843475013175425502060501171425684814700041578400718386274379446455767747500548376674117342129840511333339774757451699083065971120640634803755022338255243906746941657833450928077424680663135210431620067077981045484619698559008860736781857622629422731950285141880180078157436752799524398688230921468774977072820959660786885065048355607428224401005642930911387808256030280520320858101993538268813917682179093343577915903402737387811289808551209820674897813595945541193092024275407899648975696718321071842400901705583886800281740960283146808722985150698891339059556713267281203573892331293261571252777134018110609901263434894518738398215670563175483177630650018871165926580730052286529414869548764246772427221806208541691414861587558087294207050111178853862137457560479338097574670479151668875562718775799794550462077535531085297345125293662505463946064078443459678955820691048148492563433359789760927009690331519780651176995730355973125585654098003114677148564898928530021693357461905987240040521608011947809826387037933383974282247264935042038887261829962429718770022925527578251130354735477702148292810414861949576868921040362777554068597331793296878349055464408556453673705540314918352836148442888090650190748495582692555102464926717160053884508566536344703851651316566574597223842029030383068124345818714355095949373964405720450119201877685006110720109347889994892490010559630344096070856367077452063286777714257917062863910406202800980947697222541697516217505414956794502751489286705038739303582642518030512382815029163506374671871092265247630259608839055777793282212053109982643165264803023289905615790106898460225691238273172080686330432501138917750849482953795775970362328016203907385647757382976354162179914350522555358984496949154069482685985099311312057750569171988373059137037371764881962163432641318945170372760773651597122299354198334817889317398648125958538547503038266290982676557728603953273635046101068230413001105155287774495242173282718336814997307767657659656579535386256752812865880754191053262885155055893351980230945960655661392763105658963867327282780549864949976038700390049553866285659917283659756225143269494242596322178809232635179518300504112323046708098447260891533619772908045964627683356851498410177563981023329378887112687771947217606597100326143272867261989541070419547908585558152963242788488340641769651893485282193578158001787181039253287206831620800074106706328337965876280326381267656528344608954191823901048949221159115001075911280064522117421417674996652483208075001738309205910740322676409992204900759203140957864979678171300917768950607899474734414581799186011286481000929268027217577398412543368949820949230774666336801658451192506544221871371944368496073206503400197403392673667781061450452678609075223434058699655471143643769813256198201139928887944605107812975960173667182355573405613334163952632369311582672514416193225022874180708770227807256623681854031265364800198323883677558357448159332464324481553468308960935907380711836193211037071927057597546405812133128343167656037329995964284797958946121508874452917768918511128920115411774316026213201229686226427655422924695055995347502468168742032101710507895133502790035528383306239281702619077397214368956806872462930585876940187431824736394720991633602704246630680134157535120190319414810933071467789855065258875428568129309147129181461071315963295236735826581954787143559294582862794771500585608988503298128503807496572423328965220127286859836250092056535046103286289088089467601327665099653833268887848484454571781226441395474995882819800460469845323613394142107881478879084358306830285203452703419817025598319901457986987904873997460467228236328467892543166467446543477581658025504584864164680617996641351306760857645786101706252604248116519696036823829904129954914830881373549211583014754516188618762654425312872188097604759011748392651325465613980096010836778157443148771931614722022306629949730462810554687304322216529839215462210341255758812504632733166924800321811163071541894708965487316636033104829024269610498772099463900633635289504935248078606356908104378682943520289999044697122446744626973295420405683109940433900280594500609161875011688308679498726628465545618817426597323878365569889905001471653733574791956568527016695092086217081707691289660829614001446713491814788246061067450670661414500907628364138509368288159404663238667645228381242190289928141983776348595988831195515130426982893026023568091502535901651116478683948479317593121269209653330130250881286013672850902765418373647812548210713235256632823192436239436463685895331133801180505337468405571510364935192246876081756941510448051033307039962480240240177290663331517443925864398339427328503153470077312452972156714004845984700527271281257443321762021033538346360571724916983401299481828371785140529542974473635375547440570390558019992956018845669424026154767532165729750993974608357674897716735287074425975696464754177384373815018271143688055962471162775409978022921559255176775463753602315252169826204822215054149846335946299432161904186824439268269806097388343206260627500183070172190601678621755276784430724118854689094545271797951173337657456659234182047216852564485236575061756542994974884664013793557892301891563673226687129747071663991912898815170306529298215987719256642408096982009881087232329675432736784177991761205657161412952353519294617907775101108469015929790381271299694654708259166453469908636178207690336308888588474587359315823976846509625707737504976221737482145902050110507870062583825512810443469077843662869950020544808825764696343978136047293864378722291769995662922421602039625726080838532154144410131527083325591628717233108512726188244999526539556864225474421187372264095243422141449684467886693483796230902930622748278858578971064197348647637778700608404201794292617771664973953378248815643522489178441378125990937097142151824164926864583634718797689446856765836117402106173761021723603486316339027105118385900151919160292810517417606080802051764032418995063106667857928085092461787195988578009698125859229485238441197857689502883772779555869756063299054771222900991119787239089494665650304416587142878733207927838966212987233206311711439092443527392593873682899767654459455192470520869277196829994627086380793589471085312557839305837278566205179386228847507010355940811832490254311305019221437447647993993369694326864680498203481502326573156861560743904792260501039331585367546950083768811426799073834088917182623957032855217241075627889195556692681105254517496206859573064829425293653627019278347644059701415878444829483348726647269050152606674172078420022412980509972377588782979818835647669007376218664701154946627525216533031237788219562190145542979526467440841442932237669849163461241263037946223515640396212537996559155453882258328056009425937408337042139896994653017477483030853060386034764106292909940178352716049456441186144107238026009163650966681985967010948388175417176184608389322235383113121487894823736247110863503506362502575148768182543422085766289923030712773817159506487355131761375240885564961828274973074756769855351338082546537268224479916595446166470762093911203909549009043549259944186969671918832227923039464869010568526613901270255158623323401225200631404401175095320952799764854206375922803436801216968984150589456600023704945273176389628660743755200403502752056162734239875503864870940693726265425887453265960754551836877947961690337516119491685189008007757190274188667865793087622856062668636708940766304372383571731037601493759295862528114878681392027754643944952124436330534189921103945921426734601539962851347025133151778777655619773876178841362966913658979911167634847063458318877971245172515773366938279758715122696773522790323637514405403239351536671905930383464238922100495382937143271406427117182706488368389099996330169493438705457638598031442592344155473560987988322558808771277592921711753293625953813550887269058171371302066038063670705506026127875445598406619796199837750505390614029675146243344303810110810725140065619756070479427020220723452564692427519150395189127488818154009144875710940735531559560680413875538245339520259926264134576333900675365498672018331319869941848175602844512919291158683876894323529154398677555819912161431021523173348744660179839264895256261005380005336335810391693115263021517310338497067032673306068811746286640536914052776993089931399115818134115126754905535027598915041033833634425298486424794789997987072696022968190317424742464449818498697873845919601160039234128566897814737704231145630294164307026985668083154084197078494152991677898365490160329199992229747281772021876254726902976029315958295279286790411098200598803872306193656022032273284470807801867499607299136244745042672191316837553453285732784996928978484920452844824510565597734963915701380311845160060799347327333426651762073615647540975717197228991502612972750382202341874607966329855171644209491818941053133960274952256417616036498600575270100122540171633099457777821526546698931517842826940526945980209729844678395887081374524597620333795844909903994023893283892210551310931604520080927884827690354669729938240462429287107731772152407099431789696087905466819580348123819010168863280629906642981552963973440893336224422667431364083616746967748126382512822324053026173627322874101652834097526535221491330845977346329903184850541530002247364672425062825544877686315083213920098159083699595596003358176144878257218854974606350058150122649637167590306527622476374188391449987642793277826992574334135880869437255459810050223086363718839000437278813312005731817819539207091879572052903082581335589680917429626082677322084311644092280701754509006246676664304575051468232850608515525684253858093507344810731701420498778637446014958871106730451063701281511763340097571369222378529088428293405145059835342704511303240383997654507274705324133440757634365498060647395563479407262075840669913202188204331859631072924569138469170830164184214267320008313271605999432433550293660159147422779677791785897757068109519911158554212045871687767868965503340002864420430662116872671944355647027976627485424935711203502106306314732452706407768836495023758385335669654258930950092613634027620827814507289616108449908917309671021023652469923418913126386490929343923940036583100945429232289519398058882229469769506278358742108036717871146772398197821804584748707864379403123246399466188125296021308528049391902440446793471783692213265956190519381504479092001189058681479225236759651271133210592401675733601472670056717684140276139075825778494952409390816575193296260238112910579278403336340214325458605734621259722432346639491791936709001594833427911403834639439831449808714104315545459447483203830832100146863051729307153861988454796486697915000538430550659316791011146161579057291298194693453362989719208801419554668123077062942100699348615238540983263011916047066356555699266658049498814015822135398482787828848772253186004599895287349472053767916784230655788868390031247565254811219576034908280511520461161423648335090460055337513012487725260274014884602411977947863946625613168728126535266327384643710656059028585709266062462237070391357515813953990113166552512335475185547133480052642900719886423084116990065421905284079703221628054665211828518104711341244926103529538882399306600553213398694193757899072561003830883387918703338605731097469775077515181795486175724467821284766716075820813240271143700325886275407175711461341672989847326438898323532965946163906907034922567067453999855574805200245685945925013688981750173847522434329737967072172053686881994451322697127458195005142625344020518160783795004010907256909817252443138890396535820047341023991737955671319906385822603150042188063602766894048885999986150382173995828485759459618046627470337931335605956994314587689683378179376304105036418167107287018547337888514633203253510194404826666433698207427189041875250661243185375431922836354220731038508337455957380787734065683591945033747953063419455632857244193513127313364205047071297773126105023200935451174648771812644789763593017789378223294740463322569672952048627425898645060302091622431039247764475425467675451761198068614880354394528130724952257282037382314660591736084124169498370397983604480852230621358781967815390264233331170725678396950458812064768378841206785324130088385728725096006418438589997501957161174840632969091987288462743897369011871565343461743759212386269763471446138580089052783016513999931691187445384045166264988007780163615370099345906700155978361654534461686141553261220810016384458687882761091759300572208978376065409856226776972626609203682511682186000170709550569990913556409058658834001498054747436646791470196018114902878074069044716519870937053713113237830457588413901613177050652628266101215034599185964659418719559876854251497243520689268018039367347269022936665810443206402625338870932830244021034620923808778600777357984359118298532587499853035361862899254445026922037079491018722244812850235933191444381792164819755365461604572329960839056002746167848113130644621518107175604646973406574512500251869049468706670883341286580154591918767707619035952664761483083353479682217750956238358120414156784361692963894925085439552016377118217632377085753733433729923528207365484176205772223822152476880614797718295293426124001779240356600300007250863855819185678273571310003822370503292598343930846777208397665798301679778071994595568783133139780346309848016584828483972792507175678151635886352139684873622001939773686606050179839804005476179099223976212048013402086094103442099028902881017657556066232631634980559311027175630875525137339116631627302438526738826067355370971945670134339629652503441637801693410645996593111668395351861948692560971283063629277398878660860538284018948013461656669121416715764959839702362075381854311479490723547120088709812080086850967346482610810678170280702030303729083293919103649190457305377496755047422130605496325862129432628283592391338868352382454585153431174014551130385576030472076626964978673670588097273304737655274366735183406605103505394919918283156223287183800878974583434602151392226940194792058414495897095560943503327675161355981792649764701334537078930990390643132989576213745870803619275108670084018375965321449146428097899053745257614495537339493781504236587940635034334655880703083023040992441650190906603241803081360279738745798688738702967882217800147273975788830631556980682484056200542171051294508180015295608921123903740890492799049790467897645137853153421957408100377291872294611293148557118820863440118108714354281171796568548703316654949236795843181403236521607865431945758920279435052048739583376286142454715933750380175151123785429532736920446412450507971303796147634545751060081042985367746766062155514517626976569859344778806536849214752221114515347371683970151293467179059644271367287373922951859622349709439724509445145323507516553013230400335011541444277885160982786212868973827981378968122549169699752568378504894694085759952231574783148316412733253841229146303391017471297117081565008336783256480822797072305938871075019290328415628434946733863316471517453990113026704047686650449207226222982137186689043307823015705283207979317005073493728575832221367321207352381434769235506795790618568530005186902566419587706518298484259160976584760751416635498086936907013317862493363877906722814623358081972044384236395930140434397926237233324695813914881098430268271600881161904395192105405345690528353865360360668674726390396405389296315654459338459568184782707947862753229677255863153924501826959519838458492535523687856748126792869625116738261592843862273291474399668331768125410593598673670423676196483314311067898928606750380582707065120645450681219215447360730666310133191045892024760249925334641686673239950463321652161263951268403664204389287032566670261317192001757975215740953594766406415045344332211867872200043391796511008289932913606827998164948202883278141170123710830589820940338505325630710723268087618868945395279182870625844855105951685684060381374833688057719842445037434875484323010441951738589374966534365116014017173391289760102852368728358498259498757783621789294217458303460816617613765672933461665713114215009054703872005765878359661086327947570303504089260805408850414500706697344317270336184237772757851656332253138480412663154310620339601996620764121191675278241204679121227238817877159614537070740325832716259531841179978229762744070944832172514706500136926861059572270107885118591670286222565019074839273975217292856083100644334995260369740384897437806285763806375797229913184103792430191083814514240822919246646973313214091559514147243362072102603709958901055345696048777668974189539944063749356814535130454422237373937886836414833925572261886860596077182346885877014072825706043294819632018853442562408546965645246253643835829752227194115416339868716994268406704092429392366761126618708546257003503669189460579734339984741042865859106490359877269856158500562873808851696697638994293740940744168997345432701414173945513889202070094313731768549400824183398495051840718588113287639549417351473857619605601573645401308132721740074569557968788916127457279120829584916011424313946452144843513701134743166146555170750845985946529770902176414759220157752694963623830719561218969974822712124736516587982300651909193409589304294155153847046968121749186754249485503828879472962470621076885734255506267121016361665464114917392426142562986087276125405685925440611500900152037982924829204715828276516567580178536523271487547889311948267972248177233860952600178674670609914951908992458281793795867109169814342767624180464799175397354141729304954634460085786743293206364408684504105226599481424030152487233817871289563635529738196675420695789238140409816171954857754745447327902554089436643018135799762889814125258653199337408311357852462156489883683627495568722034047971031751318285712016879490273113976926031019452960969742475636770274642066972172024843567949399017685685377751229459821765897982689286485645518441646260243976682875256492928465650809331401552890387515379076867688430879426055115322036386499044928450931988060957934641686816280576522892519985890315242015811452634525433285026121061760376501574028260210882554684761132671977437259827122118813996206125635036743065672654709392640037344053305956204028945446152861784890829918937887682040226061344491702293679597709796580839182311394732355014494587092611410777383417249023478988659719788095744854927897793792357005503058681986370830949685441322188139576014928803861738288604750606631760434191935320360614576153627715129857205551309282971987643164680385243111844816148802451353640008494240788469396208106305070169556913354018708700469574348486346812100838504303415342382219511143781654017031728832455170486849224438865634252341522507221971901298112690839690498728552535344318776640959701626602610726819431494302524695030396691900272412661870917078620588613912969227510766507518441483704399439797521469571853231439481519507114222858643590590008252276704615256222543027346315568382856558618475743453273267584609623456528393960775747188661427417220262117239665377047726610429085083359464493147408265307893635750331713400012535977430393739925995651048926136657407392840577973714526975713214625608596179697841043665075991936711267356401003788004293879440088488565063976278613572548724135977307855440745113775666839065109892410400851193729834170549001341842862230835729022702051503494917888816547588569743331970703359553583349354268114548924232221168914720021478950072480640630370868488159912742122350761315037168808120220091125062638503907030689463693071810281713534242741263048549956678409353076014744809005228587796913328912648005328942929903516332596181439405551401658419346241634590209721565783151185556590478635411817985245309284732256989329697735068593472545940362303908771356824655853371186695162653516356926072549395141169084412455373532979345967910911605328209063555825908750286619536526159348100763036544073415817944488140461220073376271047690812329164363396381190002783892153144115807688297449634750844596418560319319195785509814087362732677250344061668259012166807010868782588978451289043302294138345502090634480534720304520143297136637788930521760793888988524797814748842378387967258630981045805277506197264529986616784692413863528272616465375783623001783918499684439888540234468774744523892493612653789755956075845090193471441013647665703124932445661026774876117081682492562121457486447155633829624207024453760037260732879738903851943818314609248989359943781920525673641660440233608631013065065122610271665906102561159372992781823110034750423368200676211823196547874634513182342611592899204831817049777316644824676374667836533734743201142244309854835775625369901720399568604587290164407471163962050826156671968378603463862577150675778500087181882446417165588446329199088604076596810054383325464639672254170719172339500057566406578190748431752518423244444875260370270321304526294378324700632123124495307038188600246661477514298534789832300672723033922898968223731089417663318993133584667535134298307675176703462177564119550536400408799664662115367016029509973600192202345212735418074641502292637579549509308631291565862940149701813447987705757779451692782945171774599431335235504187243920468959149437190017932189414156438183294028271657050692137635822088274789010847027189828053877822503749875243693057738900257440562655274364972110792430670436576878616291240882147177560061098922208510516025236113670953923826801972893189163594923117115180497610254136591035480834496473543502405793571360963010221516262200630202203193566910815756009100640904434706828482580654266738136127398677922853972722316018074170593023659001468429223760188946296675465266803962003097691379328200704855718413202567499832184394512948165538635564805747025882547766907312001008296790322983964954925939192580139097858440781330626729009328775470239557025433374121644914772831746514226221193911020797434386388830078068303200449280203588004939884289876969210399511262820354543545517912045720891316288961097110629229263512726941646278952598807090112911380473955513724463300970924313859146762258860577237162718680399585205125247615803650862918709065910675905048113527506263732595486284515047273776077390529140381320573824259770498483067473782752604765619610041517392713535628045860704722886020567930700669895804478501068753449935057371098393870534133864625018265231347908485948992562335213008002214906275567528635765917871689516741276208880223903532244691384174320689791448783455804221933507444892464958737963361826714671273603648140931208023583314881009172347206817011265778149190434600830560203590231271942186471190374728375318653109042696105525450160061446061657406004219814437759206213759815260963339689666842395950865852036592915417385748284619156180254451440207164567024746307894918821827351891730443837040881600862382054572530623094436961595121966073517405678390747706927734749149255271113159115181549711571104852107029318967430491155097826258064505152694112340485961265313016668783068538401056558196249925839549857454748152520742506314301483526604022764069801290922835898224853844731164883021681881097667990627741500029675550915425236894529786975325038724408167994406493560611815447194361694329450785568039485091476923963001913921808963614479806584547768521254771185146918357069054629845303471480635865539594127788941617983438670920996154232819247496651243263910417170798398443713134365732780836780214866667417891063169449087014304707470615509744845943555238066411104846658428035226877705520305223882547968542884501866564871206068861265607399720930987578089823197354531748648732852931714614951226594336885070198903800809865639837369542268737240844327644413293283646785638041626070847534683771954894514292647708613739668870154051344460315760355773902650189154915706883209365795936635654340339371861267115826474092056320977587611719338915775259190645987846420259218076838795939280135584970780114479129541207299157537160020742052204001354977246789204876187484706858446293812090078518749426338103062380462904692926024757693213830144028069661405764523901491355731548365343095382251267111583430220409075358485426961017271200543447141890396461180911200909206326967744162669606984184719430426287937057691852888411697928244583540865321878246040862925279776068742218716869087874883710351647258967408131677038220051376496043704159154917600892585773421952830045943022946380251263589801801948390206843276658506149261417847115643844358560269134868063947860082049340111925635712717596533859896693815574137744061098158739789382514343128641005121135403556241711200741878411447589087220971865905872692356648144533689631017132566981986045885620554715961174395284106176994616662130933050802117778576946419732452390035354036685253732625368410000589750592704578616626438651915977118119850128678414449781667541698515173718436376668988852308442518339342151260701639392970002812916811435029544394288885486190346723336033819360672002940103835488339304770664578950545262984538355446098886707994790848948126530141975791334204042274155497787800000715340802142833997375971783125170539385748589630613298153525011871343622878674064172960234225902675180404343044579849822252977309932384921525633119323062340779093099553456285774848488222391874746474776044747116720957809638202463116955160983088023840921331438955856008826582993662608535678783353570397949099922711625542539051102647119084918988692680171516118727808659556222183252195717896517082623745406235678618693761616259581281013981643138698234698866074613619898334692711366215914829184428361068396722660941062312960788742169178206046779330657713900717645870594014094450557755199153017451484596724868139087742925679472385128555497571282306671550889447975648422798794519475460515193740897567404193622691727276998798212279650047312739452556296336979792454679234802084645261216708525981334078736877504294210983394432022260349878008215318540828533635180570373977052433091488879288320926125776677810021601270641978479175531224778070141029255342674963308625365220716151991759974927223531090497200540707587987609866386820904763114404956636800842214043062520147308837943708770896350630558823426249558724233001332776373619040747313337428759580632442230856887045474337195158668488378439907829570171829566745434334853965765263863244454859498423316779006148478652268102783238476524171856026530122546299098834063839891184107051752763230034850481858858647309401092737222106064299366350590412317127129053564130565426006381277868401431433427900701245572346150226290751179576076649153743469209476020208293595780633058140078965234632663809998363953469380992081422685496748040636234927610652553099212772542673726241412936006453221131850757110177073039692018556054925143226835557779081501865130311287959962767606333279598507337695217733578351010357233020712700805656931758938697180661781608266690099236245198973544503708005596066037825409432187602115819214973221005039630740923766791485822155929812669362050005436297763687659010183272007780804894224994890399384876034987558486519830184626896839698507904402394716326262399784090247016498886697558323370014728674469075484699759398589149517327268837374869091918827489321820237583296235617861825345126795298324230506935921533325206742127254180954729555150732476674426508765365783839199638705787876453483494673987963201230337917157445370296763614821745803632738026399293459554204670395522233100229560523762803990253415865579402380546192215316344341255113997607504433889125105948258207080297462552549076012903843999904288871534295245458228361541722477106881109606714353614234176364146236205675920016629039139718761776622790057842431693870027290948394645769235436427243975957116738565956528159551018204381058032108200232200540784849909786795657372801938915637714280097032988393412001487336217820722915512272797376336263989168492112216161103763602753479573296319680865571283120852446025556812693780595149462958068237701772201118730635382345918617905806471841866290084155710195292732604334992602166986445596390205784697230077678883167543455138781559984933610573552585819236108760646700852059340943982284534190220626689731435141933051988038223967204160926835607570787667119819248297182081077640214242376980777977383978670062436731754758524777920057018614468051244287406809366323032600396976893966721667411058437929186647488192515121423055384604219531959076635436207276366008664855528667432055893722086835595633392458326369089597886274741291099633581742522920931001777103026765701575181937962220466952844269916027674489278391188432352324956635235032710372279526404065973668051109057633470151088322759465349415130902210152752649861705738374911222107516219681481892269040208907497050499757945686744557753767602510604225079021039124011110494189284642145137129569137873611764036703639783019260321896778705045628402323079180297347582824546815890723730643808260255092560347974712073102299196292603692339818415062646262456025768380597235038702046399121387254764388743052473936904026988209072587937818743021450163914728977677717915558098194520351391266360089606199858411901338272764763847964677867346931257944817274033308191073167890342316378305829330329408339680085004104232791931874946643616424446261156655502386667783128462542562493850513630019023070382599909077656432055667527609852028065074669007218717223815163816633258802146895508429196303199134805298507902953638119081082954533158244844404615656603965638834471547788647803908236239444990950393826762557760690124205795958838141532260322789656594052817784811479402206858688694767698504969922033665062210603397132799797736401542108446448791200615477502372471997938018263776579476377122013302945296748225833581607433511162088860520455415768018802757353896113806500597914923933090500172378468592083692307558198454640839283374969526864643019873331982640854905014718163904028977339415381238293008519004486442807888650854233232205008681870601721577940315123683863548401336963833991048449953317289093879507050175040630744228781375436803991948207129936844775655598165625528500574422870652791033440929684270049732140134319965405832949500354840986208851552542826379858027804777094354289680425643160789921888495123770892814078379048137962783377076370859844098483355191711738409280865096036559323284026022210149748028800787296523198042910755243733077829777101128513452668465051947993230200030563394926073160751617386267344381079741766671069749453179425404512733576964956186754955336698903837357954333420335505487045422623841982358779832642390636707928670956329597583874150743012358703754717992567978475143922891602924598013321185248715248970982075329873875796535777322252060225928696183444446655643881112024536829171219058406245122856033464805985194117920272865950122726015809366265265051922380335598981268525855863964228227263863626084016366101636091912521696019507036228168154613209975101319755847172175808697663609742565239393636450447661017128030413205594169809984898233156533107177096587639935037523115634662173589064849116321801352855738278326448303465144622809172320506087590520433638173709038086717166738965612965703799641444785680446827816565528020485532145552242872323947242361628045503832688159569343316114231519713545932652388617079607436907366651668340150962172283168395491841049173813327963182961928750177149549278866082745122457712954016506809367318291000374541477059258480972578847144069715526238360058738640110543988088780334507227339444731327772697742039305435648144023554825950258958601140980091244558857013479839712564269184802571424466990767038504184160040579523491327449636646480329001837323571697483784972358961619609309543397988897697224816297396574757238775872863496401954983356009537320803626239119437858058564811202992220728965835635877263437015859530297308171537392061952877241303615651495471336683053484846215997123080202761511993028379548868803017042609850166588060880864887612669503493845481785694515752111304169849584859143165591402695344969308853283855552528623370429409521681086163024140331102810591323544367268788069480852499776028584440284775452147412569032245740232048588238892385342830012745949921991364518807887076273838140598026180243669343533351528948615097067662714645858927749323880931712491222581030424503610788585224042246381783545660335566035012907000769722511384847005199523623393590042421981920457334431757599651700161654103974836196466248905021471564926648467562120655843094080223883989933305339468684185664147535219466754280335212201459908671274064700426629906985254694013893972873211507852516744628289326577155610554897412747332730602758349177381083031456105034521044502404476510422856675658512411036294788579132832313011208474500278711639688515706978402573195978534344183777932271268914859418044580927739124423840472472476457965642821428876426374244471458379339232361473761106136546508560102237956933689568106139573236956516612622169962147508586114183261553635264374440591797280054242529212755427805850484322633595269449916127511258028915529994830588789456773888125810053409267729145191305395776865765320258401402994657519399546779624890464106544020945545194872759751507972706516374760700903034497610406480462910854726400987825785268643773646761813382071369263201161966606219049332661243962863616745437877510587613524913330329731431485791715502483325860676288294544004381793689985469618186667857844935889221430797118571333184081968376539440561011627805944396721554127899685624129641644699486708290161997411498504965054060283074035619004242871707928759427567322619354495051589901202790235926136828763159758679231646782623547979377500830177888787530865600915123374546346524743558645036371024079790126793306250883014292290863463006694433311983539967857794152807980023263928375505407080144737871105946114428489891913691569090798086757132923620209034400992734157129427637328915076059783689731482920235516842696134140483000400739737561229194415763135477897844637927158543558494343137171451333910836029345860435992432370791093193598461612221564997345584966929741131768615132346320114832814969254540317507170252721195400423757261869995145506593359906918520636564972886418200765179818009147698629585522468533232797726303114863956443765494190068889612001010805252902080002015774884138119238356963989464997577362941633956551328054217196816600664001823311509168294879406803952155338775093119625981446714209363008995477556980345716233072172930337076491255963878684882551774847410424106907336100271122989278651615321062353707095513143613135140946051343219333381448219666324363406941552201559260443704063276391163093421505164568771524239611438952091396780744451421343334542419240215662382086195558282760268351227077133015980918764906360822599518619148551432563677148334646574295871220997750628617347495190445156319451811533608444346027311812939728515588667404272233369279972150783902657365552731213263976718973678253862137774347550222256403755318097964555583260659826185317477383647801150335300325434533838380398907686975959431889519132767196434457545968622386221464029632144586682924267355375283662187198887188596404313278149759223676094371374619135831131897969819968429642985755826268898231319140887421040418028487649758836663770648870897558464763942104301492314592890780428867911165196014101488850859395442333260136964784637853865653964868881954231150605676793859051417200276889832963977676221821887029818968095361482661108320659723260752257836150125909175951246131765785370577108507823581016911331526056218408124510967364754731648411190813274981551539861584414020840805959650759958980245110377791595564343455827512098193261886725007145807034092779753693042898760684924878300126110053510053563827404524928392674322925491296963497843529657590875927475899122291990005852744493377990813765419224908212316221181187881460250208375917991014393900374607209102176007198794727679510775833375011178779230265274191517181758157178106160267198213563489434659067083112009883497644840759664805934790331151297833902007267701650009719016245572764711295922446596280807387091527325606563684401355221346417186314074175323833768593485949471310393204022398028286616648558963010484452526935275989976384824304531154819083566351613262931338614474471229182831087739629416429327309018688557634220036363441344540208122110276096604446464994836546884696046959062733617259853351968729162233282604757008262689415369561017703319924232477493694966320329383754438715659429275328706194864851296379877673207532353243851165350529185976618405095382116020634248718302746153045079720073494743306384020882355952231334241108609683700990836843071110295820504668759531768484738986628295572756418098244721423475507869614631091820761237144524617747572432696626769851416766572531085785251358817811622348394851586921660028527529675500218403012270135226763928735306752123601493628573907224862596676410541702555112414328409356546564172211117493859481479152634304873172681312163094159160764121798461251576971005927106148587890505403204098541220850336899532216093322409008207344367390649289598168967826937410635817079427367585836202883098226373764136159589079265007726572683629114115626730684641777741018112238019051526116602333189390706667093639830545942451707806385130822225879344771365319322317481306357335438223753614602606902858611966477635455437307114769912569561702856829635753919777615436434948602211847557673615697256074235331850892999524251970335017850554722038930120002203672147556161033519923684666000318348174577586155483591717356025064794058344314675199048622474242547385344219908601730093927855004603504265280092838976264939818446631983686416168115129218019915739729040507185559067275195856128409983096715014791350069111965109682131061204262304689766726620084969227274197277913628420525419350207284504982121070856959051991053728533260411834601515223889735655376613327848062994272701729930710343383435554800940236367409381346993033318765517305670294742783504030030752808431126895364050600855793125597682307273416339053100779670967486512108970831498907001709141550142647182172264302428638141859209130881235030469641600289240492392374910058809298757542817399144778405572471093652221826398348735568212104607864776989279114852579436805813900768814759531782704098038241882158783510757623605596382393701981560025103899790858596816947626436701865953479422434208253438594401110260790656070341693895979091743381104457135277247324480715101065294336881298711198476350030987424429089692411923030180012186524807942207073420134462315344925098838372806894502274617116440763078061324083254229374485255476355631542326989411353473604537954181723537145754986125970779339106909227039828896157743265557481633772601810870812361419442136786956248084663107354946296245930216475684783270728884013311569493832413576375255959697092211075195362769640547159421681645805809699369946385710600251696248315712068879741909074394074792650312961539948331380190545003441714970950232130266483216337998183292119109065046788937188822690386851438889887029820700134014814690759839017076181748712663322472374254157720116745114198778998757809196059119276469596071570322439353753473435028874107945440254063410630527349176317718280158372402826467879810581199728460664478172784296136501124524178108713570300026784552041502133071281837131769193275437735809913362378636528188638717123285994594774815025170532607365729967323270496061784637867561870071264526275105150699784501672919740747222483091643598776869250536080368360125203727594104285985758651962627822111273403123534086553046295425186357217843477794704075372714694640719458094613473396985104980745201738009246781825844248392501475236243091389007447539374103902585783482039395083508731164318036792102044239707431560862034676101748485368617089590087535683609141423301621716538938047354994336808342677015732689720454924492166594061695536913547274560698313249451589149941438095473314822622912373486263083727734046335279123094235324619124330486614197098695062719768786758409429900791558791697444393213346827843214389676415412199177660181617675927169762414105228423211742555966177445711323823165241282374429674700652817451800126199146020950072050001547928437571468932517265252188974366567520296521822039619385034763094895916620067756135842253559842523282337607380848628256622374093658527522302267031388700342388922745825380045520153053310769439503290130932326089769053379084826266639592043778435300206145282457930711464782847077779510429363501781173818153524748907380816770849696517960092746220233975914620644048087786774393840355334870113791890043443777981456595700119020638877598274601391686079753693873652203809862154319679908010090002798158140815322195469708363853235127723597202793814440735113647947974644238605445581348389002613690771375317304663222676457161225185405459413666562429764250236117807853990809205401839263963614374880874190841216416913717713542654772322398766774211702727035047762122358488311505158899005349839994701330977587687104711397865166533247268875436665623758521285918266415757973177670082217003163429392156503984901744599393425909501602354727833329102438297988135197815933924136300674291566114893540475687870408086475690914440977910078085254427736874591133290514571711817746856649556397184999285805308426030020657476334271260666093740004355264662215431039938520203895530045661568113059219891471935549852898588615289253949296097102013025160628088271040720920857607583042688506042504057688209260368457188220197156090180201923964586935513275170760096142442171533470906459205245666098267561064672184094040213747985277193896055403965834272870618871693051130891157228579176588195326415865361124770943091884252202469712967058885167415028044767297181320578056708623287631631327861528750050017026934046046513294709722222091632390589158690661631590317427872505226293205403587840890515947317095779362688053882547625295959041683677372106999422671827334193291064596625541295385149708986915309973722435536198526831386078054893477157539177907491544842526671921964802697448617780208864303131137648392285873228609334235984415269731806488355431621751992669881027246785826543662991683076407581944451546768494825924733299314267939840111723712747158301285229953510837074856241577634611723181372922238922633805693227892735387044840138824463523310110276402167351544162719809611767114190152265479128687485773430839959750499845262322497210426245101085557647069473963008474197963955830181955370991298194718920334613142835061863720306496970556110182915826516901135221478177360968508861350169260282710093194943368646354948974978362969677336237110270748160689196120918809688377036110801346491635156563598234947610876178414717665329663650414573281163077333529198914921035113304101369650110507368166535194473500934025465803518703067360792925768477891863258003737164660401507629607593800646458072547673303948508886069255649484733174348892897841148132682153982161873427720236221430660143782022343536483105645205832952087809442499777604194991744218914965372877307549115152558987615419810615639735579698879386232722645851847379840339884784347038221122581033345502169724809295904200937546582160202667201811901761283178522766619639511941285079954006235570381924892924360610050061865040219691852582722275970433002425660236774086050008853665214312249179153615507977781776368634120232277729557965916210894919744621639354484433263964664792102958898780572787535185280478979155785071977388894217006639666382620985301464453357903066303963648022522299779872239027505248498159147730626028887111444593545004953106713573867232801817104335965582382170366558501928372012012078131864805221892224992227513733520894333999213255119164157141627710668260670887756158864142977917670923486954083362135538173504450057996271610469413356754102002247688602401686075377921669327231489665998060821933892089000936016828470499476419792808430148237358135735258987789061228567851550635490546260436401808487124677457294005159432857388553890718451479359219469598747700950062595572361257395768958001969696367274234150511053787977284335661604417784294185750225588151324347892276911343478707921008983195037138961584483220155524105888133333420814336585629375010176278877437636465460813036866305728232958886121626624277489517016647979163753832096997087867239220817286116502455352774270947650804896184288388272909255144371589546008771620468245273866196118834369497727754860922420737941615922357197461233439349835917082240737129282464413814683926404360393877306241783199609575760410927548731999344967270162547312282656835609711704477529269560639766591346497063763488871848287169294010483639784001601245021069239161315117617143262906645787742148536101801957740634953998905991766117445599822565646858241504075700719990304507175876422562551804453218736812430655653525474534994410128152632661666500706472395354515556461755418314993411935626461622719563647268014253737584538584845028202885144398132142039292713477523114993359971304370378249189019613800664546904342533930664585406979219805040180952324929106571959638449579422425070065870022975891722010924442486667687671466667674637651072477596723952615132851844344180434552740674122836211289725225013508706675894355080818342471009674409691961212603394084970599874334492511792622795732343929306051937284144478116161741553041305248483858965889963932178612112551642627630205440915888410157629625944518271172199896381451753642922308092902180308173055140632059609125921183298595306036678764476994419657187703118997375685712324153674654490103921389716377616802760229105535332010947703728528855809429421980472762822297683363372893101923425564389877758245954083079545293662738250312976754781293176274460493122154539511647631636762552775054143270634370621788160858763450330843224168410009107870706066690087336778177241903100434844751771051776561507875671966874524514451306171231267755686682101369830123215105465375307841404461416319332096962449264251099792848604547253049475227477979866746440672062857327737437403733510490623166562370849251509017941357874688835943738121315612436801553330229073313804540824376327715037496582218219512186406416529705423723601748506032430696784041674209429516959323905015108010614877189400112420422356402812880874848157046565599791584809889294161676021354003787023665634048844326741444203845929636758293546750061406806302397592853763151853190701598581477770739460415890773930174341704880341537947802913751562316653198605886316661379133973407951438603500144124262957836024610927224537032297067110861735537072534374200445348690221571222182773507052496134074939359733527410892095813214694652984103433581271460325490937886249442445807855400661406505259558591533181460001186788425551850356534482878660171237585997266547631333505519125140076711297065614733658566112461688394745887475506687029009826885025843902372642400311224658123080121510087249843802101965515933024546534045976184888914751637959109777410048348185192127141643548404335280288522221990541832501260185785300231067367939654069201794625914689799388295071139567462697405212398646534077455445963107341030192463371658380995508569221663516082433023695463797451650019609982278168987225991945156732235481616848448385658203774860115264731641193448763686106799661943610839961396852467543843419925484115026931380941890802653810180879058466125004107136795132350989045613575457922648738571417297331032511472061397336941627721429525003630044992608068439102104015903755220367990815162584299954385611429552376563620089799462517175935067122012437455852671824737364102922038078836221004288093242228500368648516669437676169597803642838915981391451804747585726303282647270173324862067055574550442857942573930793220338662977691174479707086470511256372845013328367132368850793305069226033796976385330902598155860634304758474077589402936282364785349063015935749144012139079627595961272586286971406842633388977446590371710814334742819076871862514361182139279378942717120796131632477375366955864748392614740898058512469460604161617557583199233741238932173902681123475667111545200531887881142732984531881476026380869831343034401620448896525866244762460589859676613628467960691679498757339209170187180535753632233472116769724715479980791069697073677995319551713417309383251613087786316165581052957108721357704741919507143169585071225876936960698738480276306452077315416203398825845579895742350377947491296807470687372821924068192685138809089295035044404755342755164134335654515767541612993976774014824078598377507077722010068517112194117164943348236977851686101480316597417949598919045013574258391226641055938078350199973149017733802988728470237019013872847657295949788302127991551085553404994791944105189996186028249845538381094088004268304615046509959568805629264440344893474845336067003234444220149374733638246506066995404475294041601617676312078038442355661123877260482531504187310565585913231140581029309918277007075967751355024772031914691994818046955865625745370073174460936445608211120003841366805852727253462577410482016304985888966495384933246573122488241193911622033037630413668005134872686485745423918410754662802444503464879363928987080067536704911064386402133338815602625632933087018984728636928949627162017024256296959618615956204321579421948362524571246499651230724925498464454220902989142778022560008339748464217016662982765781242712634750051134550252886506789764376124248191710761316607257448963398341544825390833871747775496594807028457601425775741201171619386964003144498091078796308512460239688062499935882944598768085383525461584955803025108189251026917799391300709346042226922838774696345229356798587930640904457171064345206380052743719300693219422538290610070642462907314561873220588661080561575520506527548307968428052929371279727393098672873154728080644280826870750273232174801423997280323748056193248747401426998749604479529514187090981799031060196013360731234468457167718110904750509708507695738876668509583567394853711781879208770410355748719525917884648600677778531553636511532147529711838502575408676429037627278609838349399262641660102281705453308090771345921393892036471242840652085730468232324169529672731238666370661304043423157362439998044194011635262032604894122494218672614077646847776358241843741198128854935353572213800300956073150574102299118816874566818375459558846250045171200093831428640108993798164732788636654865314629110775733139345750833169785610407786236701077586797841644802748749627021905578610865506000694535028618036894988095687860957804720791328601487341778077625712779956681591282719123329948141158909271469106385567641201442933719289565137224346242443259572931157531284354220754455337712267184741496338325125112328351339539098863188490234427215241209743903951139309750079089877138869718705670947452371847182779117001848949112667994975855687512263840118788880731852690155641674834346032683781284086188768186440937433119387324274898106017280087096993320752366671528658066919269929290117550261512268603052865915437951551488630817936290765464506642872763784145975246429217767563499984391013858885357778529372971985164153773530955278268892070418048629599493060642804289445393816540165460030290433088940161934827723906223322946826774559507832354157016080097803792539954786152936407307070301163051199215720993953632462556341850167997133859977772138316200659942962497604779209066174230280391244356531955763855718615955472457104526868734276232144889667304141331492807923637115624277840372982929641800913056814471017405634668297806131530250204628927988398578655112296532352764135546533195883643547130583401177770582314783758979515274642287643829871043275122166642940596157956536139962230824967878158873166443618659028256717712579297061002670290353078251153194057501041173575724751217183711690423969197850312795010579844664436896842679718594970819746702048377115993898311445103283507972970462760204284491862782253524100382518563517982396930479185838141921999654069789327452302481140901700514761946211001789313499051302413150928772109376372951274619070201533357926277416477304022211613701658467402517534496023562336125105841796949758735008076766890562124061005074179019296223112117520872158481202992437081721772861515933779823711567716426891809482727729690082605750615587722015180200353617332276433589792079518375676592410022684510519729849481737072324562835553504085756580910538895940352274707708565908862545719569625731552596206164010256476530428480920966129099926006442153765783947199632035891851710853178421495001181972660553759751720550817440566776275122736889570579126063974851495330578277843152677561886210550344080701854551853507227071154558408608516325453300306560138072377687623059502104190684119376046784380141554512697090028449909814215545140890380486936670130132619996085340595351685497398298680243061783951850651032711960590329424363836941107505471974417084533075214714556381146597599533843685567614912037043868650334036257089173829466329493953060808109307674063908838430570159737963583200137436417579984351468791344252942744368857767294441024611730037214013587709301590726473263772629052554261319341040506487726348454155741667566699190379726121608795180335217255406518990010508911399786593381333940169161154713450798041984726553902379265734830357996350418668700754903351860634466412608651371136427845433669231719344922675688274220047929896662791687473822586867291848700392928843283685712453762125339325450181826820438048142775232733117228738518574492325442908718680926601201382808595350240405531674179656975145313159867332968985802132006215273463800801323645875522060691113971905411542775755876251611974564127606132103051393174963106009876282329606092739491394948772982088519155375972124333375028433526836506390426440881188269073178584038980317166673841516392876185994960444620647519578328439554767939258872286512169121521622314656538544876520196220072092015992226599027257419128406748895876940481052828434679600465269969499859014213205558193404375519025803983736217237891097935159315960913807389392817047731791991080194438206807602408921930498024593332793903280640688003684685678653437587341284672108671794137943488495057768722114543425798561379895367248557051905596928887984320720134528985371492409727330082461362888994383141351961836450660930961075648592107430948188184031316171299399701914000065845493922005771168917837290163692044937419345942605269140014768130934577377566437136571565961471455704288373382545772575555699034389458885695961928895736741875793603222420011304127112898413340927983981775476208118994404043879243527653397846036436063680480129506315435314503238181692303823194068821343715255596182384200646116956345677304315963199519593636749142929137389844202282533767146605625558477021816223914493144136858277503208480518792458826002246189010592769454792215615291389486801269193968172544146277566308534520064071798585766441405435149012787245400174447717586259566824696107570537370880812065632749962426872501815724551480484947722007723721106438612378476533440629048403625499140650186272473874147619750909187512805834693326448424568779977920690756002307659618635879561256830923995225555400012840628164985786851197962164167815635851499917072698423494938735589666544703870365326380839297948459038723229013538629908332438113853119226417603322383529336753610422871763465267259259517790706085358713001129226610199006901662838073867634703021122752035802838941966101244529289719115908607933708096097868737139287695138160061114959298489775585770453658666282902772122384230320085901534425923229074745415327520756124490583274020067989191491869334638865464867943460980624818361156386351068514603959701851270278270823558757482748896136465095198405691891924728581247375244393754974605103220096743588331647465332740333302268251970244778432358421441108639911235113542342646342433869854280132797911100994006272045154906547159712826570947597524017240664764409138067777038018532002609464254940773690146733196773243104268322687895361335652590730153611610809392375567127021362160547632092972337610075660374225428181517315388762838175253088606652786423829204232633447849928264183804064527544611793309593334063973745091816883033247199215678424895598896594323842273399250078832864297258373496482841647811533845751495120439253850471600839665833463996234881013548325048149834491571055397518183268081665188557602985750962444811987424258365757705597645313785510169138137792909109611176946549429757755388938082084140909800422126814070632889388802285027110861901859798232301891335257355618155359305570070055941700773053430845411870474129766894316973932210483464147033076570000966851820487192813129118203584469925993075870201762060959048785230316884199436769655360990957770565601935543500957915221250747316848100937529071076796559474136233783983323651440112927027521852823956829868218764920142381253925222206306305033404924377803561979233982683487213670719610408616996077579949927196721550221733924422245274506112748438596043587812987450205309353575991866357851268092387476414706577948903491701468745215779465473828864673242665946269551575796900648916096697080778159665128839707947028319354159867415533450602787716330578629708309413896110412478214678094553419782083642319867658434623999715010440448359106328609888153765185897976118307856021898295952861169771541757120728345945378205410215505375144677196887918827347743887233103255084162234909006628164940800931960184014497244777769280825904649377607229412350132085576499504226482768678248639376530285306465941181314537384929542680213747800178065954230813736946067998737999057448361037314345440214403839271432911122400151015524234814530469316115130770135535457891814396382942716672014836038377268987996030488800715036612868383509171591846781322618861516095867207430094355968724133020239648773761289084147433383537255511631514305417467767460416696181331224377285640466363766961102204759452302653934194023052511271112627107800649535642198404036479696251162653687665184522920851100627861117334506781269667913532976001543527851823847009760622214153022748137491970466633133436186191543963130465859224137102562502377299735256914988817116755097361299533231851711178401361136640097202467978340190194367079405462110031594508532632673702627421692660642715303896765872115674084958767380554601309777095124977274178278260229789097970193686364575345053007438739692840296395226803018915264609021949943321143163170314192942345183789607973207597208200859138401232228637037765183286235366670808727224278147424680908697686827218357357402565830278342691437443347514089754337501256540387293926929605955823384972476286526248669597409283007897994468525562532188077850591916619398078697156444496066439888565962267194614734799786701515383884894869297966111202735355547391222209795516627307191182263367822678263000307027361275447568144622406726236037702714316611380860059945482207133108419192175190056732508005607072057614318733084772474797949688016658525778710778721070974430359323184355474871342604321975963490933343404265071255133365518208734911980359256429209841041833938656046258713317816193020168471769925002592988233256330969598448880224880458154489239513757744820417447793878820718991047794451619276321704862468327097800081949209203676854134397023241788805935550153368276721985731133418198867693845170337438584701499090780620617243986513790212587555329903202592716522227493681873932055808200792463164231008097261612877941977820095649938325820112050097440835022920480357269836518796937870024820146643557801184883531055860719228753393190191427972244675678445008049514129296594939258157644208005058919682989604138049650779854089433087177161141255631441742088641833086691904287521454587381754105429656279503214081397834933944619447668801984827093671977538220929885894942274661401269697344293624886540817611413058622994754962606517222453894742885297195710789968189051033317493480333587844412555895245803977024732309134924233098043606277232300826720920345332136199253976322161170231146058128264320110654887516806349672887400417842937980707495845874360426929806417389039877235034317312600788766870512445614011394585818741287450857320725761302232381791873844323272493101143256144568978449391818280744633066264559727268024382135353180251573939825243896198123158725959095542521693899519365633833579974716828293200983430704656911823277404583133615436457219535509163347654544654699591523985516907378204009768631174954359795245048928929436617686697347320984413593664066564526167058937103813491859576146964431934880467671230935263533349878964252709939309888851820587170246193003159267004913579429224629584765717730074558907061783636968315771297567382882522042675700233159851951438664884141620963962745424138406777771043131251090618104458696355348866804041368577745283750113870276826467082188731679697303629106747245642429725985967726574661889017443019626901675427554047496357846682677688105881746162615178572690410737371114595835733380344152853968580572408821314559483867999878455506132902127319223458234073883619184104936620425789428786332599469665581942350054228543861838066505328468484563656945278609117961647371729874940804498228274228448135431315434483870219569191255442042600843725223355917512342614897282518878499195869722838474042923290170163381219900059866927677405613618550543386751723393979304463420437789492663327438777110491504121760389455675342844579777756818531574462289625156078903930204322804112289229093024696101869580681576952730585580281185844490836340441962075233509883501437825061309767892608080130920340875436186300162150318195843574987692427443930021752157647768870659281924546737837801011369679935297145570529194293223035239600735610786889145810730077760483848122659871012159534698988400476495423035102379017945693561868157549709211839163738315322367512640221101202132193443305870937380003696324519362804537727963385496325411194256931897530486490541522353595605718527670938587898551818721319196628357670337670764315272279629499865708468309951634922040783210875363455281374168510527496432512842550377905252466812180282869302998705882541131153395979370098761326902921056743836946665119056784649880078652347608253300402895576473753383806238507918739445044004186876000116877309666805456782948307160183228068872045982711895593984294075156957993135075615907750730391907566257112844977691084122403809738321870205145277583864051830342368279118954145732222258503366167809659998875651667370239309598939581010517327377001589146164770112132051764211554682443685149613705980382721184250145794201628695465435590432281297539178510068271485286148276812944906459538948678742633688336287027771605916264672471941581865222223482851797822568642204397796246611948358588425788598801679393824426551031905761610660099058984053691231579616397748114755099703123960696597505746390764902411395190807839237044831202432243060492350134816989175991632465729369371568370209678894345431932769801308843689808691502642680746271355394187078615030961407308117511045598166106683815932377698151068899765000404590360803345328808186437167684445465689013683676336001571644674963072759008575078829294793083668479923042971794201205613988440849099879212778998946056045923109729883199928963103355704210933541097136779278841732066933051672660332970608357064351896702415569999032090757221631373716879090393713289667393625248381029298594956249985866934911924835344952362942898373550106802311115576710526461731275661970649369313408932913221661921210231004543654768760650481515667996433194616773851581134015336396196696522387348986071921506278385197066443458644759501364554787592858963049268946280025117393558745847180235033742678683970897395803366573288205446014629242100648198449789193078238783203704813337521503024422188791553622359553533285669316050213332399141548796708214087992609052924916723553666020525233531550508396380709217159622500219523390446946936831568796872393015457220140202732802814467622322338291226130557774455647353740585655061496001284700088748796884541191682092961891928288026539979400210575898892555644672917154326110124800330622492062747264397968863166422406202463084494144269332633029398454137650695596238553804148567084073757931419169013513391786331449684949022565035099896080808628083848797407136248151399485360957297001717259671149882581928264348180519676676703274103181218609946897622051187420906031769231788956210342080615447533005861718196169779644656628908857213945364008163918463595605444724722601935532834357105930045341966126552317404314646575071183682561287344996027882167203725017435922639522133890673023559472781044565006149710540087129922365847922729859579757464041588455509239152676581067322457051907570574389999803641606215901692341760127257050897300351875828403844265702251178923429052185545351783501378328747081551396451274563701007106095605933341623514688042440181311903311185833042897258832077974487380810278914472266071240791394613284646175075409461818116590609219448049907549451302460788260839939135602991933768610445545985065998928066035761592114642153634742970411363762626793883936330017102297721402725028543396147769885585002756071045915520813302549332677340004956282983786289085179014154758059210062549856420567463832386077079166876923465644037358059303996376491622955509013126463429563277493317473442320718874400288945454419326653105302266629342874058632702798669604865799855702119985779747403075138831299717619536297145615073919056484111653287927209692888986991067021174952379847061723567719762285482690046558294544457026991990212953001870183016284963643634629249919201606525198101372214664421849946635144698634724794064959987197447929152507203721420318223667624508825824009914022637160529639167195131768441728869521763735033719536208685500912783288007515057626973158078779130577442645333830382092474617457884827492769505186912314685998335469329295174325834810301742978533672147396478566683933785106699139409123543893849684340988309462490826408284958432626848122222323719638911864604668493503838280544693536963090400231384827563719562849166509050579132393047119067398164842833684631002947997648013883216980283604573025792861065137724877252214779993867829258945142535596308361027351020952932989377986663968939810044666277411492955817481947776737859035577997669676578787781584851964264343736390690276883521590665447424283989312934370547989674473831415802293276206649223423731988762261950059560335784794656736797581071920560078888283178365835550952626113764205778004073423506233077578760636120144017993148756393935883398958942034464726074451862030797216514745391822042532318784763853125901359955409866322133889116814502665202306610340503058210659393393439442945163746893786283338392239476320383655919525051177600367685249308370258326489751768595765658487483249194799967034895150495679526901382199809777733129433745086312458436705960299366056124431260888107334084912862191396481950640109824895661331724109860659796632139181535769798077578905942445230697145015474503901294614082506216241124346371956941972630618332311519418188707318830129576335800424690990489305599021237722061489064950835154987341770551972483241237879109404674199533005816264872504448918366574562028874342528365455302689188074085966531209323605196476767863097413235478454789713495039090712370981052169861618418746668262355851771401114217838716272996613797311007519614198179998865117864631765814478628135647550140143077738001588073926799073371852297850711887862190602837518626832594033151118229917838584660722685318504735598602092113386582297410702837187793884922521115468606440754049312316153120017990994499567363065200940408186142459703464438783643508459473191980438206501470967242607189394812000297546047672245072577328278417621655303514704078747825341327083386756351872551701058671289251026248090819722470248591700375608014116335441809137897555091176613249055969469507756298067942681989534421478847263571085497737363326321850841483101676829979242129443806706887576804017046713840634194306689741733509016598134437485160590428598728039553474273844052504600756300304983669042404926968314450414329743388922413522367296349847773035312503790575420703186107718627895696760152844403731430381338944040497895147411212672958148198571416152928734732384925216484550584275180785804473738776483710931249947636315003904996516246206136562382616257147811883373921933558804312299007941448491504677811305841260092949622298206853635508824335946144014659999650456793463506945325251829625862632680511970650525606516277197362699817801517246673945523008544959587446802407256736953428638478556405117968806985916554275971685329877111447185351485840775035048594223955572363196029107166153325796018735426807328891494975569503423872172459198060651733739163844395970620281958190002886141329675965533236641361955816900931604069265327242624928042517737806685814125313778905677063503174984178826342411148248257683527035055935391151875984393860775152328049647250159884474687586434239956336922201727789456686356845572434853107136666664513911499495560778890484595794064115463954485821730885503650141419525188204440527183296969326715998579640292833591513049047046627092145743921042327202255908758528434238040007657280121900503866771944426024445256809918941952457797438642768929160477396720304085614298357074234529397672996256414668455638316636544373523539433206996701225842209263499483149893849905101791234114462277444262240308635021727426636356718964299236378565790331227310062214066596448966439146102751002348870096835521714412656936515590874140381779501961650351509853461665523333725138053685505227122583961327114781506672510785866365673384624659762671452107667676618696106944330957683121959050995879763163028455373494475252750314498617021590841533886768716414655194916588687896736113461695842898186274605785378226439070126833938468771432537258475316260029895551275180869390584718952059512780489624418131641846877974174111754549292732932661039255491374949003290193842608021980921387109718858303836125297126754421514331089747149673380884370718348035362884101908997684123098849626367354319106310867447073187191226536549948733788310898707096057904561546837635960513708165304857031420504340313352413176583545693580772698747885162270148034716949382820720992302952005071738461478354705938501286197244089870544221198952609975717457337890184312267400936377445103303707718981110338112392325589778572815301352550049760532860131871134166580435623542817504828436052215567992661978561074616748552513091579492436977940036531417236562066086949793960234510677058425167118477631734973684545590504054483997827102290219061959345393160554287287014987585517347836936073791408985327168317692546361232445787449309001520466517927080451129641564741334191390213225864678797812814729031207879940988964810982440098672833714043088023262977135966680577100807280961927368362298621924662245821855106300934815146298454321518705372540950864732345448107188375306020215477809095645528525867330436250406516191902038439720369902045340806562580152996585211069413276600248673641740323015106992107491503513719473735303213124142929686933639540317661691803966780699811216072232826193922689892601753606782273158501141617721215654083499152623717318282813244995112391133575328436564660001146980004537030363117415012138435657647611957264426284560173743694731973561747851558619299772074140602581311781303590032366691057744215099169137928570114710783834645650469449605120668168661787894293491410320182879038815032391447211803836499185150111436141061109451469128810461585045992383954325072400929454620105901885652027873245498256023162953848378015923589087467100803453974513100177627444388480958441569373462939902309428971153713928541870698856930449208582443332164434084023604877828545234465043926786308884656532809144065966659987381356172923185985714059089733829732461314830141970585705385302336595701727733541773440648133847407052671812827360193780431117651986321036542663278482618696613633600766020090365871984608791817697757379653271113964323020536542585775884409800407455260696522688766280582116737494533558616796696302873225385201166163710551304145099519071985438418837886223212594156126625133730518976542019600958733322799413584018669996584658429594487084215969542096980229696499771331630919905355051275346481745786409848127331062162804276269321805427117536134937663181005903396245539492073414523078040178991264894808752510384030463020007408747340630732915050761306554893118955257097670054315381797268627623260813373239203300753143757424827662745190844349442744823328889639853962580449063768110390651448940599024348214779847771045418715878672745752244498942462789598859104754377377355238313852848829010991530473722870734840470155666791452049114685640460883462897912907959170100097017158747726061344650839528969955512421620219230873450565606185408272629293799176698083729370224231402867195271507101413765016863909474732720315664343174790228460374328947484696164091163904335175779240431434462595040088498034679420385980148101265699045217202120081975284852170469488979146068495420651853181767927853790301286963898090633927243253256115795219511744124283482713380502816606294795776314021960198493101520260765849427405857884212602847554933071597053513307133318364891653832960296210312710583710789606394235783495483777702662259449872016854099572042774665749430173435031642060392945725838378251757595366294239958802509266125525556334923083638578848604193554820279031509607142053789465456283822683106375692556536358802147548633004203076945302971411469856707000587303187821598378599709421808706437783545444323620979698899106427025137419996847374355738221767511931461726803959526145684379510303402392267512396524359322858776968228779932201626916576387090748845254386582081749289196423080550051401032823134173296373046312851368271717768742716662862378179851841733754967961985373740569563342445748610378323645742991382254800811249328686283947857567770554508545146940348296122067939798583049331297412705423455531419947671444035262554579999120703885569803856795994778697165153709166286905831569268750112743182172053153715969110662864257361136070761867893940458642121173290269910906455268401345795417015486415979548644815505133398102119881898581422545898208710985682101900289502065427706888523707358351757896236189267840318729897695726259308273252317753919381004161536431489044456624730450673756250835452957770138159048645233632191639044188216257223457782231654663928090537654204231757015038101378449801027893847585418591466951317313244302041822720782640703160621976434944935376859223265957039013561734641822825490000804976895183247400859069336887987049175293163733163885914153247962178693366569275176139581109287425549170186163744348604192044974836502251413892620353113027388816816965065509522036430805781678674345487875075943178630951380643788143365101043275836240034754665492448871921903962241073919608610740973810065322315023976343266557882849370648976493257457668871714210115678809396811362780028416636579142093999785517099649188838104010335153423875873557861108508615689579249136937789665529017011289034917481600757094178592812654675801968693121133667625966119542519258785853193873466331774812038058212137020468036747151240885016369184111093435756825552114697569781361569149570835529181245835562634866412426716996696995624860319394544816384124229925941643555398205805667023637508015419684626272522291460072619352869340279947292551289800936836509196320850216292459248228910205700527246071119977731352618977289873237829433551630806450570330967327617396897809357098640784083776146116219724433827177907170641452470380049329395272093604455026971954505948193250380320535860181224237958129391244357754775226758439953006644104196020278380388455470807823356543046126149845174114101229019177321687961718375759141218384178362742620615247647740447972183196305930826711240810858640741852927790817337902237720229987216512459559766628702611302673946221803591171374218004189389597442754729701968966152890200471313595210711396137064149995474105114274956381065914370048738441462618505592842917876639485761789637678472634430710445496443034197668629716514687462575172163894821629965979435732609314608212084314787620679086809267504011516413780803858783125366133210341432189013861136606128398768837576168240419960735774239839673944977244244421531736750908123420759904091432536035334280571869565074453016496872023980785168117624172902134559921943509564131270847031061644799226741233468612117590102228318912467271222952307931167561320771748897252036423440964439569405754323557872363559849322431920353993927446007718746700040762258729076006684938148639685568580329212175386913579289935539941893850740804010119335567708588336667481029707290503900465498989872301225089342367693655733026139915542771501509460836695417415983954976614967984082468934518628587891405982718571524532551294542976091015541644165389514486949962567703166534201676895381458308760251943106048325533699084369326030982621086422749510997871890092102315827598371318316553335764583759017755041913410988954439351935632433121687500977172434808427634556674577518848144723024615690983052155396263650675757999959260098322869454595837260232363275947430973834385759493938130578138709444015676620486164692603755512969494853913719011838432198474936669271752398644083351446037756190778416013988496522954333130074831573277366332559798434100008378645598800930181796196355143378440302499384650609766204357228284985167806065736777488485527426949515937989574379434978539344526171538059947440173481365084865012432416148316978064716078371587818658702263283953041112485031123357242039046654008106490501605502875250706444201296265072916772774461917486589982526493473080963287306218690051986477108189064053613544656562836091906527990106736423626157854078839177778078065151461013382173230835236036700498051999510299700190011801928591797120074066768297087367721013092066634019570441264106406725523382756471383819004717870461158654404537206004401144344649629112381725772157569046285073743100056222690123728879223197329810687975706649230790406714163975892470736611225786785847200575795333551717070075522122653584536205041797920674067225014098378548427617409050465476803336487417486256778825210520677592206430866791151007883378798137060817472323701767481865176943006284299960435326538190546295136308467815810641406337068410064853996409581053319156432957143175254657397485994716245121538490113738943424211620181941602763643589013727526508745721221304972225514939878308993886315450404644300431727248787339241052844393715696320104390718846861274987967765079801641962801758981314535859412822202313117316915875760254019752033890761516339763738574282254230364752969188093179916781413279387982603501641999408555771927761619980371027386199294942362570564016797268315423599530247828268111355929465002984756620638840095973363661268237526153341722371717944502209161254589690841105694526583505102310554340420170538665084767812392456686236922566142333833729653235546568132604520810076943693019097658130525879766447951737032092186540283422755869362227537967936413438713009634964915537146542837306392322272845240388745115907969314603113027549056186955955463850475557423174406146482447661277741129549785987545241692040451345884238707076269580029204752460124907176577606150295825092660335412995469300296257021662421927084880474570198042276453687641604590678531559800544426163336148591361653608928010145051558585740000060624895166218755730930320426196197042971317612567833594340783454779800206374872541468798007984052318916618263518786356181438683306085324205116067612432752554695818003707666581632538505679100522103797016049737521955950134080202320195388794540266278999242454674840058177392129663277579430466767151531568477428599960216876266363791569211374951123759086146896135232452665193799855388113148099476381294663035223536855188382208314798206665258855237340322608337589810101979695211797554067600454434375410612004732605989843829316004822064871316727738088019710648215685915245305158567440631359359431062402619694781019283062468710387713304085914602006799981429207711849416409504924911023994311868980512677865140174237662493807145070579922812890799485132330863280081151035490713537174431071302803047069248022932389074512980668086924326842911941399504002139443965301249895675550541617947969974168673517264876687773427087834704013611854419596367100173831655555726510444031615583697188203254596392031246765097670117696129976785441463148170903277797361152098158195226936831192674952254191781785835163672776480316071874229876335824299919255968438684238868502640793856061807994083439278225586123873990245446147764676998539360562313583701191240331558985566564825582359309094350530673487129783578063816166240483864698001675049155109699102511587715937640464699694748592375217268861101897186413246261564461282528607655009049466876920027070923598826139550729426361831983266786845437684132784718576832324846763097267658988722843165706704834305700272781480924789807584278337093201820844042742481937635298440439483217887719828280463602079814881333605508929123051749858901678417396758340133628650920191532792751513946964802403311609895160480117553099423194200821702841202564103540674830859180928897183262232059505473369431482084436590420824272255320412364466226960754479726633336318253086112650448447231761981089074319406296446952812499749301343653021080780043418487304522599410656319536171858035747205331083642476304566617703318546107579658089593243920102056728127113961976916272100352097409880264797636827845295692067296404049863979381663235080684665295964466627315145239939000676607831434386303107989428460373236522574022955413645027671044794511603614261291850302968476712999973352959798539539381924178514722954176256022385822105848949732851492330741954947113917934710485288277650864060741552728104818033348587341655945295546716833531353383834940764623866724552222427881464258612604596992406498051884040092825163711382879428291239687329929425955636540666173017240598005102309224467940044729963883172353714542016373525219568323004212296906304130443167192632069451135742061683324276830955374720431603499967050007798927418187216825384940000742782835408467375398052100219649534324949467737395056086381455778536305782121478831914480469281371356505718742854433870919525319620422717642905065503423704142505243097067814057579005450691134668006788538723895864033192535542222088898286467707747711180178930407081313662719821969363444358205463158754589200904200094992869430366074226590903385159264813707493661538316646093520308649230966845233952466947727893355678580299621210523232199856087823333659082359226210035602498610329301712849035533878191642774626423877201072674972800025544262562349010941202422803424373495791308579165919828837630739117665685227004987860381474584227582539951845505320519222960544431939493333892862747087286489406130908198026127251173010647259218075412601528860125981030720069497642010563101330532368327431714616750066508479283123731548541006391879620278775859252965060492633161901985685086378688259724277836514042781631367168036462389312942474779143090087092381269772132096248315540008712577402301288731986868046103916207427341804829200345368180405911641070534015981697337913069346895992025975489685943676717264650688504757646158548479998944313541883077541732090406931341955619024697918829452390512265649658076114051755238290120545024239061931789205458460059497561797920543355266203119522300220731699391947012589688332883195866081621081296729898618227966247669353551692715405878083473490600644989993293478831143856142513995484594542918212174858393815214867929988812299265855068511752758739797665576609760451726860082113177836424797811185215830402430100909927664322448521808709468410969752724507094728950880098256954064322487376710777036442001083243633245016771733630322614585116086226728320609037028972729803019528630969504433806527736152375059886182431426918492408631270734786660639999968080914739179745406078247871880772024425864060554250525891759802175280777841904264600253758010006121336227582399736219299840982587700488431221335680973523484139131109057010790141096101784488223320543809364806917293735029197473169711326054582780618184167376092793744675267029052239669718399849968842324749204196529605275112545844019373332983269193406171254858710213549344590373800690504794484132558206277435876196463417340157619832113422825778812081959507476896897482040777112952873392161113220491255650154792907129585597931147539377078715156894641756276528933330102741555288650733106040132423762420958228117404511487873764471772844998143322613650045775907829497075821814090730584010262898510841572094012135446630651653868469888392606132322744974917221489677212100488872071986519791511175329252883449818903637380423255356183189392279282732847541355916521861320949364984629872701922628430389711640875578583455650847129621478664787724551521835655564223482146678675078448858141244535022140854737946013084208738807466960687012885520298783528874269550725596267078959273947370299179017028414007740689992245071632043172511821064242894332644030918786729916685723249812068579406546439331954682006541592821644353928787099672821698310227171182526756148528152708082542309848615354173932551265618568772454359224174724744803654009483317395213007004987117676149505845406807958150441104857927387078698530894805061245502661704919711300590088172307708237680454052154378836571887330335260047243472370450257738292271000357410260673657767329448300290550020591588661973258871339147267463443465783468459597805472758093777972321792564668552243369969214801158724478813992151440811838309727542287169653144170424202283362967769140867350629482000451309958209673783654822485186075758291324193360218443015556650763890565921025290705018404857479518415352643876048973321795370953507191932434645662193004585031334245987922900569363175905698678595103601407582835929056077091317440718443707179652915041359612788457526944834069888000204209831679104135888373235705973174483284000627055040330917055880512787269509729458816529612354766484903043091566224487426766056744696458397969216638362185950031119315889544747985390766102187498874655361964806669437039517898846563800060782965428644743019455871125216656395535979314712033629693630087920710650312974192835467246237369041152867362031374131248986196534164072733555735611916922137749599341189475336882854563552934801310933225288557548953915837086062023232855231592950145757446088743718305012406411320493783121997081970169566242669787870055144914499027512348659539557180420601329686484769157814492642152845669682482937402771575274316185893868263889079830077107791090764042693946826123653304750227617826653924650871352338709939965748291392512812053920319320803719239692932932080595736260963744308507122800237089712684516941531781573400271292658826627202887250817308904252489554795964903200125253624331914730710104613789855502951328934884151437173807130225937804170332298037944194786572762520005296536663835654199011777106970015698548877323213127703772469605318145965500543806608902742918182571778266320904277221795237710705398235418936125712594817327937677078963846007352746658653112706176296770126139898779921143383747330657122786196090911352207985543786876868061859560931923020512993733784008650464650653416897326203819382360679296351917217247441259180242137160863730006009792538291951755495965773526125844527721775099588138922788939245558893185922435553575464478761508514314038697446602075406454996846370271151531363916656040031568566643732456038835063446910127298971715788628910888850161196446337143247527064647958921644894830284789011544344510839813392199597161154111035156384458898518985061077746573320195226402916689229879254207699141697938918570977362334071480545601155885154345705102125486620609418965773016454961621109644522944384528494123935680169976720838369690350531796153137643206840657676539516209327035766377461072827100332582275027403163988665734776025780983446250867835902840932611158020435488151076356450592952413958794112607299774238050662244476312724710852318500779711674289795586639809621820397138742538666539179845764208049297757855363103642142755858554789237822467201498662115263236486631480255463608247246425053702071251923368496902625630788582189732178987126231434544783047575358787400919779601486358416524861012828598396759432404108367157319150713088141830711220887075354032480508185631427673925572088508577532757504124952146015188785302399482726569935983227540135207383420635052174046340017353365801244778266061934193454167698494665417127206453414738229511142855548150806887902442833071778007603234995824714901861785227182685753579528179768377562861345316631983547051093864034915853907459861112331195496218771119445142426987850159442928994726563628920686595282305793720510230023173590792905304980826345353031191828647899246238912394754532507766308472598275261407905752533979443993168076902974368235744189930532509414370127707497453900811465399390514958264579487925230618176938393630278462618226270721325337593855251703499426968744197813017111482427369332551591894774248267433574634586753155875830211928169615319540078635256652479521912825738573686594713191791815241163313080702391656584218259594325303759640112132758096663108567873145751737919012277075826910673719892140300469954732928673081118483620822539748300247706409454529360388167618818843619841572002634708197803565847676745272837246223647613334725602005318844215232596309907061127244412879786471532795306298488013525011614138659945763729676848564491094020920845987106816585961467702684510652375618844069688257376575579214583220336074337522829698365378702969781756601262823762930287182902007166795583898728054999155613390623144898681340068838882328289951050956894052198268241721426937678659326491899385958390084115773354728627539491803801352745099190297809270732054059883722417088055942517765988339545362202107390021973505009307801569417241338634394208308239769158721109651637771770600294517358185365789048693008068344840729586778985750104861292382877820437118469258723025455682478923125861584285840636251764293804782571590939911257175583946598762837643455216192794708059403602778196319845577145201737225952590363194078571957662888966937208882775687213448842524213442529177732587318758893435397789294810600236390605470140350865589605455842311829586924750716272893745632521196293125817417368144552814223518130124485736214397624183311929727516452774926167187527052516817120120241834878976364488018662662534391370189345470887405325467699765324967494826161762310072880831844244890424019365416313113064870211265859851469481679244604121058250734003550728104188769535815518113114806803779243535409942276980387126336027415541454072559461389905761095176338750270848263620816440812787285319320483687542758474038865482429344512655979525918072085599829393186148414571297669951712798539110652238776326559545038326646157117049203842656591179774676598313873713840335647468691976079033034750127187779003784890563838560841814069317060349745127312177516737287537015188598777249474746780971561668178026382740661598036019597560920203684821451748911297831369933878190456853960430165299561354156038028250776058583463973836565417504364169718166348527904657175639653789449487970411234100074799554401832345242053174730017296936922383728949706537935925050324536962344367855335865336420245290330824154252666345880534227554909364179804140532617447881370127797400590502595649948737015254756672647577362780654415485512925395462278217044251639716884931873205959793729141253945446351412561255176815921525414087154317649918230061601658281731049732168646789446506867961461028743387248643816414765500711368719220581644338331422421164607332780189475831502971497684488256958467338641933786780991099744306489224229425228143667403438765005898541178619961184804181425331248063606660177692567788857369228356291823266851256288893309754333942541884736095890922808679461692362180794146338591705136767336249336316935248427132794337331063201976385244727094461950997724254181658854134168536889811536945575163003654878767546494804704287984649645783023738019188450225658173213058744454034154721285917993278218877830919183145677104371888197246912731076456554435495983868916715009944934915774848967331601421524928623595682424157519808910177523447350585383995933896745826476103169540160367763187018025349142083166227328456607445315902672023521993042911296852300904594978453002414144544419873160643739670628838787896764354127889389458425520476374562872084287753751055030178495310204248431616969914274158358901333777097543896162261969934055416920801060013307392811042147138522240014603175937767926361522049433124715152974257678395702813506742802322547069820776252247757654086759558958215261104698850709481225520450386091093862575199944450832891756595500905262077087648576746960051442023087137036349972726324562830501753182667404260636136575419433204621479542861105944945933590103650093887210948914501405546499797031833761922639184052860558564449378587365133155601992634312744980099486352871261406350250473480406450980549984746925849825590569601111797537925433863760020024244378391699530043320107312038406254817102589713159096365693728620516701133731666267247593047137422389957202104630075847661174679547040004843372915258063633473968067177917354561773960777777385971323145111737405241102924672967238684505691784130285113036632124454432926238081614864513829922762902492640765625434086798130363117564697742921588654339548335496713970758588136171684596841028937381891364098598705650607784119645641791807659967687254269102097685105779952076976166850128682533962777355494535494737347592279685683014625142952931743535146093229528369687918797403839097185510437253120469377247991625917996456237336157121017799551433525338391099288620454183483806855077065221640400713157536422247270639472063072739815622900235139781231640363123653898319316109033510029279389343222211663792957144067468924174433095668654232664174804261066092870138688232390708735644829035635238457430830966332629916351693984950813986210454963528345884355052327993290085019569779543039326054164421358863442477682051332865399475948820563291831510089646111042400049143242330866242764769653726155652243375889171401880415632976927086514573481141530144686520945969222577636036301036118326607374085288866994709509468090605113587583150093745808592125820296126942425918004637375767511324092580511630898841748074974193033004641610918615278955676014757758662214582427920622263292767760570945444640961000188922912349070519661286013698649091809273755354764641713216847203854600693527160563883275836763155714571089649690262652159549602581439462508140380448806205749977433374698069227918946381462329124475844157982819953605427354752313085721214739878379687919264269939657405587746572090552176762315893553458266796622606318154272224882519995642492221861767510442125547111190972395874802559227268245293968123128096466910501986198830757363784837162307002735470127059718403531147654146654141842441398445300278505416698076957410069114758323608670860963258160483008502727902690330443248268758461891998381654975786674275758224455160861297408673794442251243242039067204862043179251041347051756948053264043295155027716626331108209936158976802432372668311093984985681832467072425813305400913180404881487625322583535624649745233229691702415385472606714254856835067400392105156288249077056163063687745566136847844838104696338664610621253258186314572643895076717269102440266788750459099154124268476299249186644663234956363130477134586005843414847216636226273681495170102240829099576455923968384361679519683920808305140715803149364749378259440658758091742353251531014051479274986466621033970973382533735540879264686358716627905387054589748185049487682351109249244145245096957274660922901561548114353398658559810737296289967889121492322702965160467556303706754551325440346727056329945478622043646655561482737565640358128925801424648151484102633865350990138714221408798463949073903072590367441893528379063483332575329045801457874511690827909235690357506496680938564073940934894739360448844902022950216165349355149736838364499995397636495903360779243896017605672574680580641143941292930543146240753283430597333418188576214735164891816527423196225037846008811202006275707338625549241986371872724929787749711233395704334620187304382970594811458620110754890249665960176681135369431378290363205111865400449601227088384688925171430794165897244286530681733271318185104817729999074225722091489855213010869819326476169052537034228323711683900670520520426661840721288550327206364430841822002516730560055155355919080928530491833114108672554515356182078462343467395758203895791334732904968531270743493491258142660628343047377896849501849404260895665438145962209382040220533584798211356937739951633356937272578001878235212323419890811706815307806064908867469677983876510666259250054659767501878163071891723094590211127073482747703278423275530383890898688296539269942394125518994685196556613234418789862885267901427486663387302716532642127377637105174669880070421544762464338856356846941006052143099900337183888372415349002066117571926610259319817905220091760726774221958062082187160347718538600760385412561101050746456867800936964611376613445771659656138119584454597310909798312825897567366407314728796222531012387323339837803886712425312761254933422338826534836906745306213412695515931712654507249197235076253243754932716064135009166954597090145655946375135709051665152245810520592851750143079408925682098648111041270920887115866975417143436326295733728037079767183155034154420094021160741106322165196583711727155229317133992751568632989645330933303557538812780465399205882236961375710688723524885726375471256994522535206742509603726953528102690073554863215801631492399093055730891186328571338108060036248626640958720237056096511848716767826477184681718234114565394717680029384239734018739363576810754569707026411910373124821307624982753464875922380406138930382831567851993681673486586799854022064419759174413879240518067474641124147450891153187367460129932189467582714158295552074843324130912153720878243873059103094575888621610272720218143215914524497515634537311662340037702517421635154177993115194654385272151056717586620029847766183378636714167468872152277157927729021694633606164680197796215079284584911478075892716157684325834915679017288743898589517113597501300950061607722500119095600162537972223739149309012199653205852102523169365263357702963288665531804161420804097628784209804132280750368977891109429559040616546482205461321311272963062819064471039531820398270967306266186192790867417848771965785625481913320722662461022898974573946546500520922926833971174728821004480408090646586960018679242054990953086538705707616050931269772209309534947784594803226520587577066091564654002354828213721690228385874574692160620072828473569583564027147312421757810435872609798629389629494135647836010849389114809824300737321428519293464555856588016084580769211642612402977328207087700096414505069357846089959131113475009385229824743361927632188796861984963397500936383233765920484127237995819594241727298850071112763278106450416845668305090470760873922350704969793573294157215961976518519993734295484037980703331751514578607183738053264505514332708335362255272668431444685992246221391193148828234414935768300437977952968854963159473949108759378225978858347118078833290873910530481793598705913936493983701909721218549768300961663104468718229884525592384890553447469495364811645190311593806255497470045781607356795438284664290643361510592582117386550154102938266071427588849088507071418830778894253732964354791993709428521250142824160822709059344327136471809993231196194591936783558116335414410396044549730845066625908719915857933688797561936870477813943293671640450777637818333559528750191486311484747864886180816265821049163369835500252847951722297097896867792272179745254111598131866973145866508730439610453478299246107908916265144569040810060291978877302402508121169480167959322827477228683193781375007199208183731008438452424819145941731620545424845168299999973362982810102157316181940911939440596447667776292328903343491230177197844506924446710706893555439738099125843801119882879519992555908735205363041040735466840921913303946157366426500608736605351521032900413926182785098570609798951519470574734743846499849306201224232964732288110822738892520926892989331440009765374958360979793250655087097521416768739778856011642862547311725094311555326029029138300092290424100161271324781954267367137564661062600453185250735508875761970693818074639281095774287329968603915369469591691981162032891348421302424390079991672786000554826074388249430018944359575402331654104734945948183040018789369748581490383504179250191742681352667309912073973999031900408086448122078898367440577357763746460351148694139309933469667720328262714456804168655674531401517995387294527760745929121110580231970228260071345387628596858627497576128042602241889044915968142857734969633520231576082580900526586706110235497855579403485341185286760494625418953430463287556727040056850467001567469127574101353056083319275781720332176237278443737978956510136487559719372855136575177407878528204430588892240290588375729846971132242031027306929602983758976737976011674806622816266862432184444342648813501037278469640522281172378915549540154271093468584162638087608079708624568714788298946451945976672551183734327349352036633917110475250360682117130516455918010404435205233440937191370084881613315261067212174603766448216395349491898002059236488622973337596349794418129233872036685818782477578570303685845916868090785868326068893573674218422963474491809770369648834354620823683788132347180881393593806806094644037288481011874532900625817908215184194505832931318865927310327859639868653512476413586045405222070565700181962246825125864807672005504769089837141696257262738256371460434531736547592193632931653704226135039652876914947532426812091867560076382178884408556134096505408984711156181612070932094795549502034127172797927322275632199632624763282231208935589584020833644656633996423251545220752999981231909248862897896629879946190579826904739613739041796910022740364451125197317865207187891701044401819645628072860833940927286809163383698821680399642169781111604203268182553940076928749538483460830176806483626124054612311662731327451047093453318277325462860849804173965037492519786208843630087886250579223047498406563187925249144684441523951112189556507076254156862906141654213416591570388335030688650918065642457415386746068835666394769582321257248790789279846264449870386192026997331193329154079791244089383683360699917545305439625923790560477503443393967782055709181452103998390796606726962193041805728237845206422055090653837353929556920919401586612713803420650279287838660853102956511110602666667611954026352207091004785702933060182083242463515306178031325603010441922895651878431515863080181050891891813686641582499697542119073261871439577651962156524981810205431970541126524714478180758297060015144237281589684462779764813022562552760297573369319251038754524983298179742286768236476101332179196191829700730369237675090449460345996847282055523085412579810007691532856364957803062999665891640152090746754901137635418140450851084778121336318268886864021922171785387443519290943438267034414979798156064099751197549972096434969264698988863029051905453439998224364221364942918939828302637166359897180867284190594132346841061579596057264501724399960335190997467703429789458530622377909410139761072847546457893412798438872099894142182122258340402768532237317516563428469332360728799908993112184288047967053798820307602992564679103719878103441856599854501181121510504855932236832117839415242718744743475288476947751549935772853351910202580637450491925008779711719551430105799865100116867797533110494782920831557111540878675283112843990961596976335917585766354316875735757925264897218185213557711321926656414672445354285226125684384417634936514086638248115395543732890460187792380945677011654936185376389612988802972623780236249442613267146095783638133984308893833123963681221636057985577901709421423443830024164070867814282208285972373439182755006047211531406692863788461311085530599881767270111675670693390119216612122211571291153564773091068400420680494145602043874541641109626070790907381962084610613389119824506428893982314773208832236385996422806903730293060617286172846329349073304991264233381026659161814919191039708570549596617656264018234721546816079552995669432512555433336588112700103999534206328405471592742942307204704541480769727595499713352747099832666728886027274945629924609945280584151269185291664130505515502766810405232531847025937968263289231191995916791534545903839699044759827937084579484269127997298126780468274003074868860636225157496791339367734342454658712934661847226744527748954387351991522599557833681958778385228622785277219212578265808639000171735384639555896767980371564057120983093995480089990922079054821649621988673022895662912942367907958691903325195680942950600373160898337733962268465323824704020416681287039264897719508620051146717835204385827782472724784273679927652687858368644918976642349264708842919271929536306354705229048056226744469922062022464793458294577270097600945358086400003235757060375530088932040583801556375553088449503312449699046986032462213346654461496288661816763836887187077917627837529321644598096700015409265927414671145855525871946259099698093015266712404220804187604399805071585752634464541251955221826644318759787938130814209842729495867925602417709871030155630021532711927999860914158011270127669816061253726132595219484560971168960728287317786407970734629240877712341273146616109637586076150654813124771519150029747446635314103515095200840323464748795246361343400005472034310343911551119471839269192414989410054339698454952321326856593446173597310444317953197157026360393370014391130187735628287449853602910395314662068497103672443480839403182582892078997549761689956242754272092633727951337434763000681135449684198892765272401652595758298612055074794223274777429418871404623087327219331759025112155242040926519476424435164376270365617020019322582172561692134528361557357481627302480078747695993547530547170911997353216966794662101784281418848293199712795472283285273794876057335884665294091942345607188254790935622745802845543757956795949599171069396475117088024973057586971624859383293621891904968607260102663803584198097926617089693925752047854126024713791745327507522042850169769745011112127300660392924442995749765345710994448907270017334698620210298109663145069982444434384569223354734845907345947910120683770581316102538092343929114364156630286235235207872796810898172880437022703380832158705362476072031138620005618085270132132704754703450146613299291334700772958556740862859098040128047957131893589714567764545277862725955951684637294822612102496507813973466865367665222604499519567699607026017214265590627784158381394977871419957163435757271668223444002031021390992147324038836613857399150645440403958209598715499529402959261004856148772773799211454273520939452754446429634285637925514092368270520830722811531974922904611609937582383368954515151385912549555866840418292314039227070564057089993001498647294053355040004344236016235828865988251585743297255930075762684512413060646769418739674101037814913027853374754510377564351273377378281474817931935060859990102593664251771899656938477632462038204787828670419930206925693516582818805514366908480178552124017485422563812729022018963902450480251794057676806148775241505888144086483130391784902741899909462595158672946306033484406057038937830937955105940020924629388381027038141307308299607518839484572834933708036425371595278687689258144283632341882671393214465608527325019903376109771380600259723282590103082928342009676999971400701433711199631415684093304343141642388445977200124875622184730619056358119999181142809024571135784986273978507028623949083269490697422840959315486311565634829479216447555940528552959599030799421039787755337873412193484589863263947190724489857814306127126600202933123736821776074424447922800622341698296671883273918490077353921304408067719735964767083482679779672628755695469102669264246511205865431173903088440617023837876997062024998127120792670477585663689961819860134646435964616491225657519044419117902794091690630758172438765972155318567027508936459899769492164418659475585663062759607306999054825938095811803315741985462604090206328652281405393746490188230631275895560841672558543037848716047760351527773605498406683299590916763998282041335973158177993038920084298402232497453270949103464960562508489917562987381832161806829385938140937947518257909220862727162945187078086884204625850485459517417787037205440001803852174259607924783578737071001191957475851023709315225148071995679268530759653774892621142074161386753068403131688508425336436939656051555979855851288744420827154450046459761914519558051154739132122047122078294367783326761145888087370235778203040070732570501157292375686825157160576758006455325633155059125373979107982240085793799516334781043870954151000787754218987235007076044955284617612805761470805198941044978252219072509661080350823320413257677382492927483953955184325005186970467920252863542078082765689746034518683734490004945578861828227617301184698145923799821794685271904072630100713562239478136022693121521903840248929473137048453537463556818608056383853220930788234520561956657410195554854501606200132690078870727891707301687631286729466044513547051376987825179043023186596491740048244532305146077782623932892069633047231428174741903372295201609351543307514393430418460291336850626088183076567837779227110726615979634349676946426034004536882114385952142951233206740806351636348991585017787895446575763428368138090474485705267955419997282701736568935202854849943337864184227539595640419287660285335300526813274931922643871122147455972380524123046243455521706940658180073068249685394155358043377806480764141125670303861550757094036643884507302114137693646126462398890813150357587076545883969065015261209751201574908976607094314909327371994058830258391541267930904714901456644925232178682448244101609146062368004552230219865130611272811302522975553759997729324018595955533504597759510031792439692979814328901586564864139669991472558019997014796298345102112667174290560028440936728915322195012021201189894270892678634362694205544430518296068624472641684124554184768255357974320298889121388881692653558169579147040051943225061112464677951349389641807990501903582097665503636388918916105538624997102134377856196745563195514309471085367002194128759807238363850999112473139024507891271439200051918088340495723992810765039081859522224304771647012819478330427674344705504485922414211826160222478957045158420849499266035147098781659642160179774845024234333570923574540581042947365221901709849261949050841497004847799105967424695680769660600194242947203079284435326012360831450073287127700043715391274377455787676183921434077249907533923585610745297758635654863795293743202108880678201693877831274701552690315715373297526083088163830824405480536982965487752790684747789788562502973417745755766026563007552054463806768871145248117812709060069493024491747379626684320962439138580638456995584427756248397794171479257328920642570993711571836483868339556843280770717317519884244232721079317428228999710280278803177694274383650274357371448266608743101882024290418420418917161814098858021812493819317147922613104994137389300326731454723454940736374589175858487309013615295480051592651318221641557972081027382595242286258826852821617414438475697605409576358420104213348853209882065733122470625554498821781401606253263149892519711098512274296719330149869961260001516213934501544060236611561381352444661910659881043273098047279100092031656084243338828767897217819514483656469007156086373261414667909506609212463953611525667650845465564171287566357781867718334712654937323533509939102918938177110748214245531345165790537457355232566113723563098921129515473455038130142778629897614753766618007071346533617878858052527229277449970307623129274398936421434031517041213545141816497417309513690009970522233927864011500079615429679521932684330873885104995317965753520890810118116419591360395036009114439774003984190653937966105507613198038126568517433138033119778034365414757777771278898897509427631065941514974331924582727807163971618594566935845825027326735283296913994928093695414490290199630471206493849953779277158903777801380435630867818320845033746823728549432466747480283548681282235519065639157494618810565378790193841007515164552132156682221466372533493385140677892214530503006923340951006168780019773922910650151811158832722867806309244887089067814047414892806649865982733426243889419835610704429578834981770291189524181026308227789760728388782787623587216992335961989000652870733189162897609575122970322827236817353816800422569421884294420455943615333079489786987158733842419304946366288671309456500473162644766544657615691815367686983116985602192930627232753617517777151988536013123830845900289668946785878588432893284400264610235745378395358654495242941806518508101860605058983277659545879730131811272456967542179758957303442605709287679385441185155558228201779547011840992744879959206271727744204231493700659338254848395489430752148295215095148465523305835303535363802856223388666567280963189287639527531442956975703572082753188044415893542684855734197707012386343655561742208724469499072363658601767858708115127705099135396179877607669139647035265141286631185662763317419479143981110677711274384012046381820307064045479024916046775188909728717151653061202188173830870254222239313393317275059588233299178320714641929032565764745466948182353048159508584002279396345673854727006042151669151480127495834209703745789845030343668642042323002398806486228023030818644377577514824279179975177134461691436602730597298651894898988343971709970530238748147395287130736637198384992665614169837612057304263173222108884159693311188267811508647296755100060321736999381950179307695670647394937926714803304603740552703783648639726305371710366308521147203839781426281073710307324574622214810955654294267677544459111146130771828790023079167747088666000459353302329345939939999933475681550767689568338476315912342575702904222756241668869879479761786397314793175623319310070533516907963299989645892165623712389053634808330454771323370676002880998580647933637044055146654174497542809316238489402535867120051301888266447924846084830827952315184469042050449429198050100894014663057130160258496244272047262963068195065181769634255041822101360329366049300206815583658038660214286278479715808982650022296561277084192466757095299928917234879369705955986190247766685894841487933520897022894201278670010730052621058423670442529994737453170821405818740384451435542354569301141701775206876919657441226669347992944085212311134595181430099919282897102924815191815925359523548009322268064613595692072899288493807983594763344557837828469903496950265687934417616822032087371552423465606755721887644521197839032779640394526144497514562607936598482101051432946390180710822069756238157310860854424732816902481180958540715030747350894824798125018276908758484114977115812657743796518634818871250555306333370870156779213580733967673294922931733031343033120146098923789668170150442516696686377450845749207289503154166956648329373593519714292727964800991997368982167430344868105211429070237958292229947877037955255784969774369696612501327026157255157964473451569786881162884331713477841238826336171439715549328506784785833096291523042010573647063630188418625429548822456249575248012577128277024995318099684561715869387269781156096243044350585236261466809498365939630649227457487477246130406240983343085952876030559750711083532361506343790644312979627651969485114856629191584898000138833152307715599646958399294893858467084377014942734528362966891011118649122575153202870252945061485749250020533663065050429669015771803774815136232280028959401239885897699355853579877560325060106397757572813478302832800482008581394090221977170171282251734391608613006795865519922350671220387174279614352760179705963766421516661781751745760402045472327366383739813284219237159979024594772981386022600177239926680263891760481759020159654063529616539450260105263800544459987349032944940833468094957801787120882227215602515024731691530416898878425062358080918955294812732317302111057860137613758831686430837426117022998992052882893257916001234545167320950682984179006874904595519191004632365707059063554159061272663680086995219331415233111209925186563118118190515197740860152652857156295359308180954722287751400869722754609555472983714791585177818423263629713637855837083599897603141680990060860135799204618192211299977464968335048873561909331370533713457233226246334750056750517568885761999941406054478657229427336713564119406333904795054770426114597988332719230349119163908961314495370401947972715445479081025228061889922326372622139669456953173242774608627421411684760918473599234860727476112044601882755163259309122326880311329422301320245769157209433089786168949956296967476278544737751917936396126540292926432704097908376629260112211040572140688290774091248339391383934024442749437966497282774070294914488743800822644349089676254067533203348276128349829953566921756386787273898170669945401468416670725356159507001847889987517545177118723931598341952446618229026169275439905559037929341286682221820500663648825003355089872511911558300653182935168660458297748977667657566740817773275452677981539859201877160396933295586749960883229654456191545275919757025723894804982984089360362710257380425177346559132333826883398204070700940598268397835855809912096738847215613016607696950078926857024011495861601031242781013506843704426299646171055870844496830689517273505195248175559493353618664619518680414268904485973816485272719951216193017926818996400810007411210270848659258093024017201224832245151147387569837972504763030916286828883847286095043473485387054651682201760438385023331652962464705115878116344666274153630288749486918332383851763139730572529586997472187001780762510112434829743533978235106067759190729052182687664239947643472326277771332539678082689885768330650572917338269322988843989879391877238488961328171989039359686309725222300714849308164598959088201189040274854955322227282565964460269986743385105405961370425481120760910003689004320555232589264407127869256314344495228570224527899173411024787034983559464920693373522709214876068524709366764119752844491454361314782085204304791244715227448695586283056760739511878749026521367745941663831100384401985693135534790430945574617499894256783257594217292265125439843917869184213818891254971289608344879368185341734981457126919373175920178201114597384382474193757798083830897358488722677950677176454343925782029654624288899867831323987573267531435037499889544882866020861180680183366522800109640816694436317479792353342458213576877285300638531136204379357232164793510692335800817963733976355164828472805877744671108111778943559409806326571831600784457483624242177629949249330597633295255838313159859704711543083347636523371873150384694219712990956246526916482066494838108759140154228740898513062014758317341904784665611793384014544895691813082884652187284793717366044695145297049267749296264271699287072610446087095923694833317785744283504300749232051391872856846732682562682101047009244180979304017924192930690259325576554460912750271711265281619883804696722764981914575647086785502075298745039028539371862426402601190621127543350922519973276763475867640059761275408824575281293497272775991461363329569250497740317961362416863494647004739794934554346208775205477240290985175102694980428945690697269635118764938100739296213660928779624357987080194110184197442769794634644867501489010176938555331234774243826462237039810392169066797716797361960156651411740337684841537435545569383264008663147484797452964673439548603079335725894941841399496444458759538912319056454845334423526442498607930781094532091507146984814124576642881552741291068515558272773127050863235984743945836390048243504499973384938665177681234728049914723856978157978480285603712356817420495618488814825972115940746577790363341206982163541688550007645058435274340139577407177853117581192435702459168367899387865260907151518960858458340471448454769633696803546992623714919896697261757679736649407199673548840114010923980666697678750990844019099143723810999288836747207000900028494425058908642658342169403120564319311930279429641049807975778871896869461756648818206169250374212635567842545505829139614161816956202946242067222764823472766195054968979894739479645068570169602364197939647503513325918157773826581639088861592180095464908543860612377690533383292404998570120411139771901624011379466567995514350470518555045359038354135855773982410662211986696659643537919917387348882354322134728587752242816563143032249268541624348560408562164009200340172485200301570259657586981967806078375022381233616840364207427079534830822983542107825356350393077447433898291448069221999045822522895451441942318334980433274130325285552151076887026659002478950637407705235330744124529719512706195307242423412801980339621946984944990112041041964001469148894491347194481712011229381808836248822372083373738607160513398857108682131079798612654887635204356889442540444836447972011960189541645966538502915829963939644429043763450879549752831403261032026334379175212541197296369398137740047809835547235317277366119163576951680093385766036439852570326255722403382008526261919992472365012485686313383553200762479690123796669015130734691871019201498221234698689025992142451398015163942851264063001651121077063901913894443595140667169660070163772171125348615865185137879414770848977251388506792411163882976796953253229395662363322320726582396797419177857048374527241732588019145788757482618587660928458905039562704874478082731028309399576401486361660484510396985577212935374946031329274831783228739155923414584515877954154718314210703823173960650465425292782967095488191082262134614136470832039550863932607869318509116775864080699246401275398037994736842475775762145754120080681867476685846175103499616327383118081699330683826105076806497006220179834936193497527323547259421291917763278259930965154724614716752681628532307784644359809770748757388435177917458934255146584603484324653243785992488044831524238811716728844162101291494931218375821134944172288278708466680359319372251398394716028155656522028825814058561285646127408243119792825225983519264843750786925651723670928872120656708171125519840987111949801322765921274145702278072273450366615221763301635857796282877659111073399328188606843777375234778930043363055571511028678389753186697593423013572535499063756948783658912551669985130476445350067564918275033738535360708541571214735791509336811838975019638465743106559414733165829128997082669149744325164247554321135968281215401513278983746032440828525162005320828749890101107300232385339060115674850784521908140719746180029176289685814030845783376465166529766831506533148977325833362247004754408403323230081742120013532027442365395208718271907490038874724927847976703950964686996797497092890492245073378558684303791434049494354238703322816378161425304070942393446711850298591259681217030218726194763871691980354153633881248597077369448353492030120684488157389417293492707699608640889699902550259675562448585875211985879234154194009766484656189343028903836016121320221631587423088701732311360521823686814130702941846819779782791608226442723208555354229923873845300120606675848692680006452709289493665329453248283455052032239772303305354710957870833428192788446001810470527661477297549291500401323757756700168676495742081807715433569456335435640080388350687111664927715940093167908859284794417192877852738321434253098611492808772289457877683090876370776506676249844254987575202077449654735512896610755726955350638997207814621114096238504362985615172592008860000337006017127511051768259534211867490519923780529619497726068427519501962931836373314285239874678210229094805529201669958184346140652788906954493068036728730818536532232070624191343477883685622819502704445899430001588114569961380852289716452668052881510374500186123185764458719206891444062915769806082093035169830534161502525906892470078521029168930082037971964736805642717395044113905222914453424492485669998776374023947607465578423074357902104190676275668016006396570006763249921193041408269986847681924099228673435287778447814542205745580565485712576497939828039153521910598239527174503641582405032431283118905843023037260892561612936340038537892781562152273143348666419173423893912863707107356262274027406347947678444676426098924997559133938079011508972527321444971084832450183721939029726991082449269533726185331069666567783555555232080568173812570412902976099193246155506819033502220089702143126883141657527754272908755692978854509600013642289402896241569776290791695404944707877375085246031046303525112363187518760445427652196679409227519036262760769540233236588510757379780663211916451928291453686023329819749777062141804900765558727941874528192351036375087402552473115566935021443087538428443830637769015854415183349774685502784548004713714037487807553445638399982591022776682132287440828771550266002147728989709433455483051874126513999114470467281597437764053232887148261392271268077247924614847125072225354699030186059274414378370696118708114221120766728604642714375954539816603850423859489106082540498002382864123431559176440728971237284791013295369607053928246182334624437781381039609673593138511524219679333121421115612426362620562545027899582495053178435999177911743858871826110615794012754014167345603672668838976729548332089971874512426781994052563568968732969282478901489105736547425522795618389747569242784542465849882167740205889942348619575043428015580181363996896068784057020918383486724947310535837354562597625653491868728257732983758451008571214341933033896378372110449011626290587422516895147773014368768756378185733165859442811413105282759016729657207205190816817008297501984493081931582540413225096941045435337290012304436109289292225483048546174008431937808719997423455456628952154838426540377616081081547953386938639648132387063634774500870790435449984570079555713161029225944386341725126060663576074862725567180424579947640687224448320992589876451504760487147722444340224014038535864845942628736913781493026557758714867424713663431774097591898967919683420536376120000723218435589320620448799705601149150673328777370921026668286444686791164258036134207674654192588537460157025995295222051817388532354666949534417882267886489124520094332557051497337111183394954775635969483772697525391241804220562000889736430395564550224988769151935500736848658219505645839839556559010047762760282054026030953432636759772379430930222181639679519995158579983261351499635884467738206737263530380311287147313045346292378861266340393960479851653131336725740638918309659280691969143719715362676674473456716030122515951789097769020005414267048116963004320143873414021991609868947494024094926970163726915579811920291177586119863928983543839486554555059815253505359352624975734670406848630066725827242033210843673335349192011883008121241413846003637213848295542135697209552297669223306835936528167219119648837545627645017336134406367548904842094916716883992249675036836031299537698264067459025677768982286784527062729071759010288831678616511142791807336932679664241814682646662260913284399259514310212841958628361967849334298798172608753946093912595055114438671470029554670933394090094013574460269193204096382342050305114078460608695795482945365052389788598727498009731791684960712033628606684286157738255703392971847929964493936553454082990287727151061115399797699781259345911309443669286024015040359980104437892451066410531482638918765870041597900996043584688487064124214117431040002448562451055951534977459404746101540095404851272147611707257668052036272187728010406041180236225613489134921346919299120666240634622632535277240810631185395986763618379001726075941250134606237407906303562481012063633301922862396503886960462750550678352639187646595502855987493065734809700918412722271180442005212399154762167577060473886899602141538786747373209593068670752796669604657746352113204798796264786638262175282515151594337171598420503890852957915123945367532883398045568991967481940661637953400268908860288827107152718055488665547057603628248536629267749987278628533200904340961271985257500721090601806962198648721598581374741611491342069830791700125094926009957796669036610303259266895714211082178297601793079510552087306412184116973943906660886895809995267961054554920583930813246735132663487945209702588668971572241959015722852272009261545045719172665443891104587544943521452758745858327661432435736229156151495488884298963506988882401859605994488165142653784035019232737785905105778653029954948020333913515008655983233429576698191626234376038780981489859163622559215409162261504431413181631438034323722754492838725238181680274660520275242234824677754762745911608750976553995332445233905480675586018404688213080053580292678423900781863919468902169377428721786294462667701786078731403109592249916913572234618352063939511018555377314042267716991120275839612657931316688465236695241332567234163221686572598234556638395376770420289109282265851076511302450288966800710429557316694748659167869984740893965299218786066313344032312478053059451570802005890409090451948774536752070622018508550381523631118375746366577634246170003877119952024555668767225535887560266457257940292256604334204270525280423005940609351972607859934919184646973037317800067527179276748728917441703072935795789022940180580248314254423963191073172542110411387217177916284022968466544464403855589857266122334709871285011887081161552055152947431431200191110736867960247080345704781656480303097093789601869339693967010646630844396166733729330466141299737918853864712597447327032740871510743601481330196910168042654343594420710899536607668183534127344647509144280328537904435306078012952392472842699406204036128893261887585916872119357894826927092263413577449507598270166936357114128870590759500955207434588570988950212092913235424252232112158128165368208109340420159078104721864795757202238980340570038319721631081843471758466097828728485606454829656478618554189356306207700094379932606234777481333750573959534456050781455536171229361285614379174011734565689324396527539445500127733534401412096924543682761672519454016805841059249550388141900543427035175906268205606750354553282132678944143349018945675685136332297912030955539699168206670882764458744800634549607487405399836850232794160495016964098011589573995433985755608114689896091154410562154764011578174685881409506841163094015924590250135862839648995373699171831844807755315520993882929477272920857384295937422588790690552194261449764682386735818632639312724354821908579181721299502676144445651909670944576042257312462403760477043455691285238248157396791431569307871339711598219551988455694479135427473211355563128543918833790337588181973681096970055301735797819794325317756889291072467869808162479849882099157025722929077673825444200553899027311823268038519027513594144565305003838072916340244229651965100532501951675869769872166893200673476616979441708045161436844975547601944472763826503242373522139528371993649992949743967302685647228411311623947904529997552023222326271417164362046705851749506473188189142895039580812548632012874701320680978723961903171815830895704080344779955444130817523778413359932862916539177372691101976472245241276406569143154243670337901771131262511388736619501897612741664730151869155417946652764502714273085839217535621177968576989238042577381626065138078471209465956941796087581002513503658453093490482834794015314569345336544142155046818456190431754147835240513493804161280931564033557715252384582908022388497211305693582632248382047176479686905786853870293929019166202088139184262761274060243148447298929690968765769189848798598605962933331384935549644116973939532262596487082273512459769677376555061444103671990128636527429634663948188992814505587870941417331642998154189800011240001938278273578804613931784338975203901044494087443441463983060457093058786733899084026110062319194060818416021169388666117354611447116991862477974497080083711723809607240594444515289094777902339236299622548961035381155049470986168069225805042647526086140801192765514333562823297830545703226574252865367924382790507118227004519189097817254338466239511690286749928521982036088551663119184027970639461634187154664918677938506625450026010251345567853610849488966937720225062785015506456973276288621148893463074063634288648143060676182470885034480108526272593094639109146432351220727388111735253684774882970928859164737774078633087930177512582275525516534495091779218781518857428016015673883200739956060698374340040258526055547870513690364265650691540639937570137134477410784306524349239574043969985086537958821660911566505041559185396158986757222381558665792939811006382399319908795735174774558066423799096413045083915415634594078747715930696353115768360563395505035741858021473579676211251630340761662870499589665228985902354111446951892383489928764690867692339618927170820432202958172508359948185648788987629640466951546723432098182348816671174017944003629853361184634765912509031593070971371202745707272967258642951691871757888736619331095358423046674801404879584545672808259744603434123642860650443172521160143518034738645562594297706396417685105647257282985975825979899107440846032344524895673502626171572574998449464252392467418694179104503783242674871447607657626634658174300364491632611495032211264843898182324922497360296132593018436760367034219985950883637848084122046987452704367312188846137956987596411604197410527744969182718879991825221723338576126270597785617740921902447533315487293662444066391070718993839955276441284020086420558722185670280763209824411945478552331809508263227129600267094971403008252655902902069274907913885355920940791206382762261377018057647690250407217066114118996233936161296033759073617486765289221868278735830200078080657127738494463719379066395749067220105462453417583366621458836691825067930502271127852474236123442834587238138617654863333804254664642530662721728961913966215115287109537206378862688075796275400415977789312144592076653459897787199179014881825260750905171640704857710870385267616338585635094626899278949382547651052073372683524060121323638647162247701456628873638780855294814866398460703442147867979204503400167308599045226069859240148334422996346757423880510671412541061866087485093051884873612449092378602955909079830245056500902880835852666764732428873465057438410439221305522087389827538871869556857140052867809558695457921560191977560723439542385783855818932975665092477244168570598005822138456234139963535650444650111496825835925786702770314874737090625067951446768525229756843960503216736765397193519106596177376871648775118705203429140080703270022703966429053072010182968807299737505586200833984467311492057248873218859116666238113150225528333654739331532921640358428754346570087779269993767397181716284835841195783164710697991139721291017803757323398498134719882259615195531710304534415233452601509108916079626888206862329441932499162262683368758323714687532930868853601822242348634255148953610370411986840544433765191892350271618322581075775064027534415430998335100830209888032136633681398085324202435379026294088185744714343328510783279009205067052361871884408311105482163549323613152193067201695474715015563733632525165551311689461570737895362906109213974175717671271139511338505276163786273422882992291444306926310002862921723288003315111928334069072591194641224031246491340629694406514660586666075304306170872771515556733809790965671443070940873121326769590438546181840374990614217649472826672071216191818245165857675975014859453926985236618822462052510118200220360455313304846973733109088384270075612286968168989129336430091907268569813515597769229443746510699706471599946258769292583056473011089238760230753191862288876313849714401059512427841160599829033121708198508173674356301928534598060678489212343745253942462877556889623726180868868178094843311990609327030416804133656162557238967988631023201440366502769068696558754280990655809763395629809731105454715377323375613182233572850647819898162055127155693820408930530666434302887168173631452785849144195825852551792993668332020419136300798307545850641055813760713081111513150333659727704906991195306313471057527600740529122194441666720032610926441435846794413487252683591887230573022395523643157541309272258005461880967384492671427708623433962324638203966474052421594756539270297644745553177841264125148412369136529025143945098900910545217188823252724811499934899811420912886513713306096462215645452562462392752112111814683219223290644508781687156443280843595767418849459911494113741461225807394386796203799784891053603703540111697713470001791636168633116459573811234703022989611675017189421105651040237568976059712558874058593686021075512682837871625406555568821669052415177505007303134048773088110185007785140168433091642244061263549636702050614160092771301138555778238990876029649273604492314347550285178162149648596511308787031060738840221159945067979132841466680192161209736076593149697261930581821730524010109011246318169371989294515345375275446698195410820340359643832088223931386827468187776699106178054958751459599034922417028765460910565825807479940803971253633719150472241345945104727070933271984696975355153594434865852912903730016576557520612491886719478775138744307500653765816042566128024997660670892685556753624096159672679836309414413482757374283369007744110262781000151565295248736508823787600269406442101241147601856792351222048621403592193279246687612983455140236169185815800319869236320831485192771434196230054497645243435463914040269743165146333652006446646828593258338722149839759822619547269377068527025750670016908815169705696578911224628092026770778454682564972421124615077711157979290760737416726567465087141216851912356059558262004849712723973401557669303348927275089343857341298106488339337948932126098383473684841285388059021604232193192407586839800820805004035664706731591175950480861671399938160750955767765139223896112623601743371803597108344090569055084163706761620301384600793585901676410275068333280492394019847840929475286844459825278588394090222733882754804493735866166690664922838524173337447609902906938843761651369242291315666774890655442770656592774769801991030602485995132830715964567188839560716171297271386287220357305791533121943116248983689128006651815031258251091533225183345405883010171353302486597152508008207874681335918338991345265123992015641441747199312367263146327828089248607740318979404301329038236031479699659687711517518655759520790821109735046286355981683402630514017166142483572902918399894483363675028042927063896030141995712002734488325069174353044055688243898058778302082122048274951600681040014588277112048537354899186576931867599352987668499502430009113899851373426231743773185358634814928709530794369858165823191763621163643141691009286445938230747291373164603902312724156335329598091458026551051857853482107276829675521372874152138317689852568543865368232994889784955992128146147563929437153286436168879265576083878208814114436277585683028812631528449428189284568119241259872503071645308396888410865470129144699951675105942678014391264337724661604552915148668314916902018453251317098288881406619003627531075830670924086491848667498733134284310577816524492887733965643793590350751020287773464514070358375809130151046868676008622522036146949525898989269159436986528061238503065735578807754089824894329762048320995972552771247623915594091472907939889767915981522649277080437036351446427332296146863902222862035745294349014680709095944736650970658158039973785008126728336267826291103054360636268030686667025727401411190160680173188519966263967887016842238450524555627427936887628534585310942420798463190761237832773201035002232851135408434156106241764698287286707761307694320675406273126363695958887891818444718301960986254107284904328745627500417726892905075683033825236317858571163697978030884449469146712989257996030356624624709615481987309954737774149978206484755914479786430179661269611325399542354079843200890437546589972233699917664394427517908467568213213706105506078551060046964879375720896714728386222740877560750419074056304359806124703680239486810618392054608359297345137999193528218690498613144106512341750996254420136435350564053517634256044688512069696228143322318808350022780217375138602282924411993905559602618640032322622997340794171268867075780557467829813104448649859378680740034561953406772077611574135536336511138973931705921226862919499850202905999336548057557323904288509702482235391645291650409887181738896851247421678095881960047998135451140170523648431773993656234628159733076119569896060873209463326772536790876484102473361526346804919481976657237563786074627464872676423583398282160899379660975291632018644992106313519883148965740034472968993979050039634178072471668829795482574797818512866813387495178088510728246547508221117145191633961443937407752864396512944657973649531916396802480662994134031605344472995453624731531209289246623868852456382975486890761367331353987647935628333654200221582809383076912959685382006146498209056298477036690489343367945289489500596445997743385572917172491961835039069119610192317043276214337723051077307372024727001884776690665918218002927903123534267706847617387483461007233929901569246037837705310959292763137820775902670273700841581296801856444678677848547725615824412424388350084183857306796054136852873267380041088184158437710499185487980623621233887632315683041558888225646001218652739925430831806928092932914516924874630034534856789281390456637963909003083549664728292978099343943732437577500618878298425148530596884538449654686106736273787016776735208241177257972720647726763320945547880222867209224935686059139417177129121784719798691474491083328184218107984950659771400935854550508804783762187941186224245758945927640786907240261677721478068528337249075721487516397016642191795773375643185260147480163076703757538334688563114659506679557320387716567671480327147937276268471139056126190963654370335049703051670905315419270000544539722395111624430870374617554884411274494285962673990922430253829231872763369312294872339039924458323563901654462631981309857694287186323096756356631173785357052181488498258087520318036702083122842768151352360135315038679783423358878204336299900751275741415546265597128959888687687467168970388104828379568008203213668945051211781729226877553179180431663703735934812515609910332835071763087618659340118719350023479445224014571967537180392338432102211355969046208101427510781507800644442762293964863149698980389876008009513738936472924473208218594868776036276412408044531202370646400456233993676826368755577549003952097042826964800160305104777325319755200286988369968371390085852800636051770544540603321887090293644574858309899184428186494614634805019434547369062931843021786673484938478342816881788688051381296995429436789469346076472498799042812806236191196431581653872189620451812104217654497132644643985974824404919953982285528580724609527715937603396116959047934723361520524946946417358874573351046199504800277660428173157970214875504907668368378485187454390310651507206252532826347281827517075454622912807542589470957072687875665141082738714756959701679076567219375015423723778789986270212988558204808124553102555007942434536453797054344719796793042426124676344722618099267314515839282817086562510140496661632099574896422326315659903072758111475577300683030025324858496406228564040262622341998328064494009444633364636223869869553687621859127526666652335663356322434368331142932665882137491089286380960029215374580716727295231397646971929775104189253669078285521573619771746027553368094400931122303849845755748900460440949712714069932356122619785429378035511300930488486182167398085518933504579241045394593970644281165718333255856587666713162286807845487037596178739931729711604493585200397011040288497964513165799821701321875304227525597782189467644783541638832255231430630338001574569656644064837606030503672096407385576496380764460392197277724524102693825522396646217938526429244306735115167997461275486163369391189729905397694039866970571665741268244809513571230174019520181400511428819381487461293769161931672825876125599156909398420757513026933119813932266747552250240457127017714128334702315415037115288424132600997080707584514739589876827568232948261462991066956603959514543974259168299201777636800422711372854394290814883414785169190536316935272080272308856880975477431476739486165091045116439786810856110985473456400878986596716153991163246489415156132948445709745533470149155302007532249991599814867693287594889848305540170561624321880889454079618229801065960158288645295693462978796589126511596771617578094870260752768118877096441722512590369139008440421654202092476077728170878022982666473874071314776399095850112363344650644099891800442460026999229769534621808790620008532933986388721889491015555896616478536027435135622596672010767243312474187592995907295409135747853228354483268340814176044970790555786431429823977886460641340246347255536106011603704367579925253277578712016467332640956949740604155163809265545526715059063259608056706801478802200703626992541637674467729091018573346841505092117154035724165939243708991128398408929677829730975719263164491013740536504566574851617271207992626602257619025227353511685901395629982921188316840674397060298397607305933301934494130939272303011795933583373547713454442260167201801699014483555723318693719630389127567623881963685641168544718601168356944240814854279255729288416963240420644346196403112136729758109756537939128267216224232412649439095516818493568518844272362064175352190266257172134383241403653126901180444098120408051116760265475517716841353715461948711379262862800457032352028521795145452547453263507321554986573780391496239038987281783980671433941408682180241569815401214934019985813797256597817053612925740229797069888743301271496277529627261660270635019162480091868584644277794726589379756446374937674012475875587501625755436551541110000431799958712836363405834689580530265397601334448783044683638914085766284915985066309686664877416510647227046055986497382047031740166899128938221883802307292421539749445206911253458222413230195668752893971122488089875550118921449724879479747747863709845786735530446783473426804678428370555610789462441854223849384045676758115929257701029697063977235520200420096781591683738287353574678173653583627873272479557567300807760577418964330807567320729690346114239783552297739003409995125666173712230820680151201449180324969895587177272250254379582941997034924381874845277480546973210072984809156778537627461295890579454074982904533179182928123032721196877897444148234710377560960361323107162338676643001196579014286690333604453431124716653250514911206185366229120595904305452703885597099993919557034824955833190476429400186327415920633532339247304749384983601617266977397605975571217038401716807403253900254564652853117182935039204560588197227871332296337873354828237082739064567222690711261370829835773691420154526724648281313886163309323962394618472725870451785557212000718348705574762182205036261353777299617701900316482190096023837567297566153401656980842610286445194714815936782034737856017166451648620951860543302205636976390713130609511435557507019181342889207352649378275902340489984077759360439768931565900631927618850956733485220631883943870566367225252853619717528327572713061218013781201568501159441933777531725087160098345256001354656776667111477632847366828354567240093066204686988592041531380249354607752063526323352034463663115927141615435799482491340727276456087376780996020872770847008282768964176611677133246710095026150664218582210736736291077312445328815032085868085387405923459613372175383533736384700285966860928274587045911384131828195895640697680568355199042436654665222928275786434122856035765259459946907764601448040557931358797709160084340453451731852248843798278968067539523238528327378984510113239243762420786279626261215325620936591473782862363821607663425549683185969428668876113726645051867848136282509283096390027955929487136067268489199737010471215786537419981439111432476601796925164574527658619280861009905109862045891684436278532938465440603492487778414314046163676223723318132613218954061714794706316292793424745941268023865873800408237690469500137691512240793563481567710316240370865650170203478882131105915269862212549427994832601200752727446303937081058238772830339218175233616839877905561932580615726603976075545579222519009802771027813696211198275720397053806321862227587491300529662560473448958589354522597732703300193724594231862625609247650431321160680175519471635393486023405592256275420121064491538611651153035800319434166453946544839161745347517378591562547332499106940984665726676165257652566402168190872137648528809410792779354205682632925345639263298538180440470919869472841111796304360836669518541725682323202678862807670258773898654610606233746432295732990564862530618899647583855176812841210256691517234266263903369863738002865178075716087556844719887405279673188674358778389458447636079835034920353335364933541924822669518514702953959992075423306315351214056703566526727243099668751392785310487196813708082268764079836367373729706179374554303146544849230628547194766336867653618606027706381843961068498882211889341023477417346891571300789612876457877369748088982028486487270327000957365971831727498310072835897918524716240282255790569685614775378016977519353679560791307835041884715183141536849470208330255493183590394107704238197078597091735079554933823916136410558676211624375527092389003757840304560768446618139887631790871368599907813189581178986493380527540203325389559850996318417964536261815578283380741466145694487789591343672249727976681868766128906698091875690802471842323070165014379203992506716765007431395148232202075810169979941241020841629491640569270063217505364334626490042823745908009196133286384368325845528093552101093187244188037237435445819935264089398828268061144497705337260900612699551055953206525121433927519754703824197679108161825462694775187786719389049154696041497433089093345126766047538227331354376936883230953303805951104696003018045246138702707148621209037412020023528751789327733629141567555437151330205156028017159512266787772118089037679207330242026103702913707244136541516091251019470408135618257065232071599016674451163178550378338829087959450465689876800604225518676346788223851588557300063235675862310271600331857807038281378351512279814895281811238380455451901667048754244578780958893451272340839170994559101622689045717010646101811582005854281745276921304143172912002319422243301941764502555946305345113958662132771343629124436892716411769793167174149047942369948186286168253217908584302125477336236594815526608881887386533829459997528031213264630012139537265484656459138489464084281350431249797952466462667525819093114362384896522234948862067757995026349610455098723994185171726989278695885074781600654867352648532347969908020073676079486980847079703906185088526222705061795857053326153915411667368433872231453474264289109369275197800144334026845039403272587215418303848939682623502013510454967473958266081315663518623881686619049882122269994962104987611782944449922459296581019537814572139514266424218719549597991825245693292634114062366274294208200619983596111139933500816803128307484516824690663363765249243730924860872905878921203746047737244484396159675116412979188521107112959869912848920826527995144367781173636993877642672710047762367320035918058284891280608196536963653474158807320382203232560024304102661572373500345861077208385178511453977957238853157092760592833965766453015501378678110111940183371454705882583891786042338698494415078437734731315751371781497434077336004981736311646197959503713170328339074710938238270969862095216429859513160501334896603172617088996069008360070748926471059413010665845572939673577243346623734692792751653637567449506779451248268318857955199312534131674982670037105601477054668496843042199716279227888318484727240740388737480883495255939930951444129545625452404447603656033562823790058680050899530346038911004677032654367383617129571454410921638629971867840243930142804898318003087000681923396456192309650579295727605535097254161990166153873976046397526448362512135582031331687000757302589753274325834031600030499702621476458311023149297752356551179565146690970689856026268175853824664709896292069872282730551231625152181611523468798388453206042406779525916505949467188781986039824794238298861518171936934158597176753994251549525471879858697973928229006932544898766670716018536838574132605345451341560001437332051864887001736755776687162192439703675065263883542236725596632516808807439366681049211115847477103684850083274686993646399325168372124150159887896098278259170212048582442170856674034739472677425345292731178497427859427078104041108205491429929642512890256028955476115956865214079062233849231199191464166706408799867904882274811038820732132271237307983125566438113787016751609445220060313053844837677940502644168068196992339463166361187943009343502221575762648218587458738577126063894200379889314526114864522257500338420397742741503172093612149134787888522358047014551692454717602335075151712242093452227829196659249718445973457679919739533555255023253312627058345774158908106322637146482706086375077119257300596754590376702593522275105926274025999700332462244011828244089684730950353802198787815213561384011311469239095131706864777316889731943636758622512190405517028855428132283462880586616555542466481530610186525147035922669880041218116991934342836786851983707493532695397923859616481363408044887187310693051883416915966176170399598361209014367368635095901429022454527444516349233000255194497856787045371137568821318720549503120757703846594866887068697930453808997186495813190438143680864110173667217015166548487290319871134163331564980866067153769086778335665954670012940535389485237909265854859073173446243247441785911128057921458245978333832110471762239156932534164308507567851568219606172904697216023555742546926384657141555696036910130850177471744155811152412353545963513754450628919967119907507388733630678252611677383474751218457410410812347094608953018795721570721272986162242203775623495451577404389136378243557133708909837417009392372377020742959828172159512655317447542024579463464845126838558040501486348596285082169762555020974818176350869166976870117583828338667123793173297286028278017048525981064321187612285733422908464149340593338829906226500522544738061237108062933415874235987863889206142224504201680876416558324632925848310589482386372448704686073607149838594027496391098237223127423768127262365706118056725081820837922698557568261720853604404538389477764493048850393463575171814449976136133571715871044590506911976458168849118383499138531185794359664136756426323438430859779502457587279752611191988596796203285541871170491214797799440533246208068369081767641356013318727443690091650063081375139283184994169139881194575080454836615906876703583863517379672698542649672412301401574932457116507448927459947906875314185005747211001321253270307477054789158785147866530909321011951056904805118173533079228485985473136668946287779782629420908009169972259304306480397268140019747978836063323370190742437108898135585966315741126411955520135629992546317305675491654292589274772819553246393963961608821081569481106874998603888451566893111602584936693616415877038876684725694733782325479176055752250386371748391897899483690050205067726533094571324524354884114622078282029357564386094647551799403513046472539311165823119492199958799965138770283872700720176013864910139229728671991552690862038280300973048765252790834082957700527421349706484032710633917932644805530462221235670876920119247978159953999519457736229554705097676588642506673007289405406508721227926946346677277405255652804785495939345175771484559687951377289074120233857258280836734716120907475808488746331739081600699134295277815780193955479308358599267231626312816026908029933561205777850690910410533946903947141229842667583099541628557744154028354302573773359317696868651517265300169522891282502658964716436823564162028540077265179234776124514698508170872580502035831429705455371265225611835148226876072739253251395066685342196625277878061475489276433523191253752308044122143642814684207042540753663785677444274457111095626307472996836246142804962859945465286524258373321746630456481864573717172172104180466831914977948996028354298252907424179879632919366305193380932322720640746327188534868249677264930837412107018216165098347268656843970343417348753770867900719829430921414258301690215619929634573563583628134794137950297540017057383492864332367995780128088972259624206845636602839998824661260305263817261603999545798617142541389159734542726979377560575241570766278772494923583550358518573862030748439063818991415619462863874499498671724090954468128059469436127470410348155092930994787286395383648582743615243050042224886524074918389668625538576616600554670577814504916468212679457401654469029896902354694892167167355086991157053675924744925363258599605986731549244705592814610514413229232852218472467519633847176199636727779340532257091819291735846142919845981133959554605178900283213586739192007929547063782611816403008736149719843026484667351377558248656073350739982439027864694707358868268889231619428210152114710595479318328629089439392306078480642644990423531988069209821253216134820121744759342280893447873489816003680320029575490411317621267522444124448226484927477027315733408400529659984107449182651698334395024775115516275800945153915848415198005742029300305161636489100755123845088915091288988776987873887329378339712238638055767839865293994006861537157157736707827591446050522836783367078484976136058773357130222071674949598769958567366719605199514612828338068582461557145973186287378081939752007953635187494218535874198448758919344016796659356879639708720247735649193171771315864244755822926313420851367768056298099814419936944268158547828190079298116488486687121726073764472175974487882573920871118067762661159136213230909892196400837581228833880633966603574838078733474367310140350144571036211460118753641761152930044419990826656043815230490476211445076125688692174608200017357180105711059636093807642987072486111660335646899664933850703572549197803042553847255098918119999435701439791170998918669142487619864315047585749710836649751190935083786084976667585997382531166805076920927764043276903211746963059431304043079558718565105441604471664503939559193012241750266686576738214906341031067354270809039839777600585046258361803196802736789814862323170310469922805589934525888517178759012418930591123575819227133318506028537738601224677922667502485472020489624080660119907644785460904606048625233218739050729421346488484424033307335105923176487090081026045176200619836213554489612520424870017411297033450141545906242011532019078666635622312711670180673819818781249520663836646528246522500485219235434132803371573584670108036353356885278853632028968332426823478566568095797404789786584108666225208412335000944383905417115353265273676715812176646552585037693515845742221539220909341319944187370859026313486915578358783159395160361104386762160890509910625062033262931220797796733912405970307153065689009040372057167460097125475749360415863023346918353624133319976009704920180667752656733118805146750495919808056567365631782086535643932265371713595854220117752609768421278964416216230951422974397855276603962122011314350042970397446414293180799329668326935496067341286485830422162567263126378072007519462164396837272417844041055202387568411374698108536804178433820771376385154959768451167809677548236818646891725379924188889778776995363138809839261682676058082659722212862846889544217401463288491439407691109834849015995387691781852553877563884291915830593518004647591953594310928381156671653140524647186490405090288876373270953028261156300784525919662176821191301285040845753774422992117072956579663795741439583150547513979793107334719276226061085171550914667287438586150591289169324583170479494711519398529609915809315455102012590290074979916334124049222830334605427240282270681965495992489568897110201710172483919414682468813566483437591618373381718355919226881358212431670651709556080531567370470431165227079153976794003079715591513480726294223349757809236138596724151277181306205051343005693199262705106615883493421909857258816582058638694488790319824924511219897856468231850580541060834247080989924042979643352606305198949329117656382842887487800079679570782407346356363088920316477511733706634343376934081421548161676440644132254770152564264405856120271620375687877759598198498278076900949196985127623806784576166456124392307652888358288044868576982487148358993047753968933947631491661451762174288640679472403153243642276005844938359757841111138310053524192741179664521666622775142444982393378779768971530309886744410668195913681804994892158671505874325881520961129027293801032908325669582601600838814068214300368335915451647912994598088439705083534221214639643111720609606231318190064999735556438772368748581880642931175036922672229331977737739794440162217012048518611484038104944173375702218545017950609593565631788862171225265675867608100189122249462883650400221046625404524760583104984408470635194004095534283703117566972148983234198650600812090150965863418246773234978234231483939779046581681994360530537503930276476211597430041750702498938866237438404195587604377189261722732505822731918680091804671546613454542177901730078894707967453403690332456600901491384776849874278836222121165478794981249275245345528069329931580297553036797328055180150666797381383614249927089015486551702466252115407520689355769569182009060774981885286814966670615388436792238445031189657183676247970051477542916719068880116213872527510333124949308145276166887581688966221212721312347569660704647835736008061956368168715735923036695314695903408689364083977247136747440379396110111143084923808727478250292131993981195221648927487235368191871993800823945772044682602087680061936309192702883967265085426007183577097302667883067113693010944541567269755218882794366434837983351132024487886870472548748267524366213174498262268622391420330706285910500276638646977556263097589901052957303332323461970481877460206795738792781043462923375283517029402569215762710051196466415237008058301650440248699952159049221236794048111681429923109894657391001744220954302011474695154155363835326081759658161781515173074953330120138784954407585732321940340333907609080108968138168557364693571924008021452624974456370656713316030952329734348040747777216172103603969385835252217034087160498904389699403474181177018613847893640326413657068299986538362414675827838020932215800588586218868006678963372997996588421829247177465854441586622452736155451797833786876897703136893556937505202326735313021959928750298403713552288931146635171007049472320517770262340194801222821262610227102472604122176621996224041551242855909993924911582487006842838538636824545810627254139146350201176375536452791635118832012137426608719454716791577852637294629289793927312238667488869859509362884518091876096986148352689864876494697815328812458452290758937330477820777465512822720655117088647429355023447007925002078053195299190268869254235038081489470217935261486072918638929363292378304982308952984367295023945900572259513601120673653462735211309603630168503972079132854262530227359491898469586127505527282938560539937308751366699301814992787705113610489211596113020680433346552438544434555424829579764288828036743314381019636377800273768466624114783426150180120332967037025458366687916645521468481259993785536425379857101012617421467567288162436266924620003232624894501843398169286927653368032043628305062060492772685591236365701750223747141337459270822794385744339416670402309759742199014692055366725540128372372650081691278100170737915080308299670041779757526003520467379702748925510537808883797947387051953561568558988985563484420283438136686485007668520507547995432471035579918406686823456297653149295385562785175148137916194387794612899062262845328995160341648620273216139283104305557529158960139302112194592825119429135536341452918474209804509070215500615172468909792302510331686023919070756939778690812815804673992559261440128518931817999156081372179987951148037061753679334688325251963010098447015450339464095905341154450843239509383814291125319815991249453010787703022158357508351814670693670410863331387658906392232537153306375975571914840612782792047855872884386781571515987260469051112744580845352405900493628055404971950989904386407559405359920367931951344246163989536143752933540883475159247592075491425180613183892030740897267452755254069844397513425416011114733108331088861382913412432140379511608466762692359140869482600414063670724493320630499957630824657019141938956592498434935693036643597644122598619575971413962556657016942190022592401331326824682955743833280379317125273128374270522364679382771302162300947267725814115221735399550033947078122967680621168644942548209416321785890530296095105813412648980931849987409264589513330805216903401488353373403761971476883414194465725085411598026530583824748886709117605856511974720458438835610322455788498803017139391758259292212500547910610564832962494015744167938748095164817457490821267688019204582433081186185778531799087069794077307294249687935732491803925355625618852394287500992041466416331581464569003528539154959292859137017201744355994237591784479705297864494077668744874080648281912843162631103170404651235286884918182595649530684402422774957477256311001937293244492993542044777769846552689108975729865176884533437592056579749956764777477260935473398798869255215121903239471009327302769766465975108131206912892027069581271398593969408291243861905120742516594528888626749746594616451347624797793419749703521526073154672152328098166161529399703027101069669568743519201705212007434416317317939530539879667966995447148790604290454515076171383169082085393116814781442544441811424118171182353368143217611491236975793627203606706446861825796980002956041528454075672563127554772720199749956199659155155111098421991996496257379463278541729810984414210247943990807553049151287209443835122428609821043770256973258992331585592267804310644547498872131906808113960588877081120617594613137749611875154780127582674146282932746834422996809641672603864507546726941661212652158072046466589723168937007332149415196573829052858882159250962196960571602942111597546700004324791115421427852559440445203169670487349719326163461807220465387092054098112210865818415961694418632717802872487516093893494483278736449652176923430400372941867763938285477843256288958212858972229996891610690262941383392619170774324459009281297826038139687644980364957215878134895253783186237559875409240830036137041050171553508099888408035635728455983820351343675270485170649735055821878971177440988648592603302209136789540676757871598720027970485966911272045396045168201835240016810917437285319065037431519050086498240823716495704773641409958514057222836967408934499029371871384212062187457361526530750590141951942378162574615937866239501307272055363058040951639100412550660458224133097994642631278951660948678148312400393123651291783118015643172068943765654416373332308879662154436219573419013088162683547200474241220449718414344595884855799392354186841363504569995850393841933961970922282551274125049764596869327437729435829853085829266862111022301244853332103875557529845803753122561029867095708483754538400909717082742105891402814302672794197671740871797068726701403284525643130395110457316111899490354938678970072118293118865962395885084857341428740606429126969326989228683710599807826566380691698711446558310237202256348912518382098618235806879206004739895139734745508204830090612554277921172685087355484656708776439083348205778367803693800323193871168207575242246214939120266024264006111207213810336867218174943723968382095294803920810100340447522701932679898028187930392903500421764593593833238212067188484221429905959814594242541332299719690557813073089999551435048052087120810813206995833034602763416708541032085412941590498333757526385816679585198724019835329453524627599805584559537728712142986236474345497003776354982434006267246285999443634557448991474068994081245291859355942835144532920991783073838194430004789207944775517400734497081789076117373773522020152417660826842074642759064488026438758028788166185980159946839098486024582113697066202737482268817304367048859743403354719993273886847650634662071462978901819422603594710153303774018620211410214126024784705717099356401341903366861122882714814440940121955765139233634898801044313011225549878086895325416211666322211218727580964374212617451359221766637261551018679864158999759000294636922691311799352570682154644539233185540182493365747050737218826752383631404793461958084478454193906663557001830664394254816615166347375957096204246277726806972187600983874486326997224090186953256407338512107021779723280540980023614821164067080497100675957494072969216753385432008198088835917377358100571939434746153690815227542483647365761676493143106645128147345181948030025091463661288985607084033516147126098072728137385839838966785936268547484114318639775452089201768607062614075377382858064154750224746647450063723603710799869335383297567338996650957472085161852664382016616278577800217851808173359116775780216696911170253589968528513157624790756552071851945428741186582183187856980792844603242512688577612247126102599081759154032873041733929532659550935837377094198439354722273534999487971717155997535802525934600155130227088140745062873764882748081912403999441035103886453440486511556670427562922976224416408016829865645638535198627854975807937805936652294155153784004041717422904528943626064878469704940692572484710453445860664650972183498620942326277236939574793830991829649512091658056000015816821780723992286842501814968026010686846780263632904935200544856744459047027272564764050887176123949508618417946156036437112583475307949169667442358121579193595133700043565754616429786150918244847217423911016930437921578344370595620523229133145005522592729801128837857435468738763076503493818584766654255444016483512837551156962723686864111360298205248438834904486359316672408667012464423428526238999448953009150357670573222316777066124394935254731555307493377401592587187086574845491129871262841191942845780918010778279851556263419578952470351188191010852544564832507114343287582828213205753542508668167364616378014915825815712068354618884598041352275098041904823731530448800406487944274352198749385362567169984368023483257958063254132919723256830356338257105179090249892347549000726011249162817170857687913540131307953077586689358624534418634995167583897236631272816895118002514318765922486709016613248872975815728109668339653781524037361259604916990248479276984283011002621544779655500379474484555287717575258502226892676478246808040523387122565080360128566262367914384013052880544055291463830584901896536694647269101781789694165064357720912810678008483127294667648817201438118504499747333879889342712373005665309867019334829962132800080838078958061954580738386011624646427553657580001342745106475037230278205586796117252330824568644722004764574220341107079321095339754531484409365125322508743033299287937788948658406259412538034818953676470140861869144709023940382849069045797963635050952591562245305357971611444323886172650293813885034588587403095211577818730565236112812599517032868032759936756678050228368491949265841664186843286649999952981208817283660779732123217732014842422584247685538449424143837070039629138435867383802519922497990646253177310488720899383418767829363316950122464942502328344949326535267417673099878985775858951746259447413064562110053791479631809904258816700362123501039291983553757820314394211180946315195144176128126826529138540883660921398704113858799874087202755108745217784270508337768486452543062217723742275209100662234405317939193323551644023025947497022564276834094694937307842221324795015985876458410153929764748768722680375548311014261763328311720092544487642920081010968223906070569522792977149679198743450033394468263785595074404433216930774229934400272616545343728905972866443731476232990923951825759343505073521884925874253414876525435923867580825328840324086040809005339567698223834681981242589104170879756598337500059338561058484378374050117248360340253925407271700352840255660972117455541405534860261132114384131472886869627898415747038328749445347823989095601824700074488361542752964721306232482973099783037940814822358610199404849658068906481079779496961010121196082176345625622430146454198201218453345952490835783989314313786442783921762482696354549161885597781606185622282572112125752664331329643963276856322582171541997478366318628929583039526636549504028203287542956060574715626669763479611607424043915378258041375133321418366185042476882983898691723257169838224375005145876836150033686414963053885747941211966720460694583553178333238182570148498273738554546331921993038190446988142179039996592493151296787116542400365912951027235193953879632629518754929530635653706768927933634234709807712265993224615182417026128316969294705421930880556372646212225230725220569907611234406180061553174050465547756823418022572946457881852322304757112950467287138937725355657074226217624846007555629463571925136543135782666051501880065334716889761394301920564152508467501278284392739211464967193492829883658269075318306894159384997671935571683156874811314751196709376036011535522848484311901516280137154068667159412349909380815141926904002629812866715086658424893116160845478878678449493765243408256411547174565730964065604571191911048200227877346612393291065592533957572852856632888543145704420875109712585790360722712353923009366761827339551906774777083367586186494957545803715431477595052077558164928533334936431075777386527391526020642227938145164329594779737423425394026330335260824574848523671141281361946689780734435935910772489651232461818008560484206719890064039545911205164051501588482232668314981836672580749394531451630716383919440582272788167867599492619182240617759631645536612678374324689760451782498344553989776847347829606369738607839911397379036827524857567249202178160151357049491748511033045154861413044978463913576294759324144294699852879747817671348776888271738621205829828299993079227561741163405763706469411339757502931997223361904346556678106520549042854295112485494976505604510141685492743319133534918945720734945881017772541054753743075198038717813067351538127265381752746914290612959108076992353219324048104072243664020784983898721951036830167130301885135651319165945415478364959288113275162489611927536409230164329409040236046466801172103293472608646416220235672140296484278673896925014071658640745242778159609422123059034692652980992737334375428192008076832045029007271486618325800765189814185204016815854779888145330096463219443017134482737315736243299262139841989052186284198028054924907677467407304657618718234606969845379288556242122724235886914751474287759511324518534580130711346302045095898798254065103335676893317813050850486259621603766466283253914573276641429708897085385013480341201267716669562264515345907562479922580580759016318129651293828465773283732609357388346701598465282240116869361596329840450467999700044354043959724303500754107487522789636473263896881980632261405359170171098990974293388840469778854014835894385276108177367241883201820526810140813595011722669114126637756858909657356763293309136216333856353989457556298714084296290535550521567952051095473673886168124923547499984570302924901510114337857799917643031212180646863752805632938829116933556894507057361776608418660026476412105043147485959491541966997076693873330660287092245519022445134891144241749394961174740659916646374728918203423559648057873603753087088552299891432746707121285051319867719699633997141373091937937523100425414564397649369252251502950276000654385917744496367624532609109954659771960923387348341987957549738494041603835344416755737587388262503377644822645818646734288909676091825528696936134571874054062745221186631327006714883932765557955238979544520109685814808063055124505124753317270523129343523988860398083738655409527892428783513600423433182613445536842011663122350919899552267074781272874284513137885517614578501408988706000773797042232676296053364978768301832070849723830110847700751348342144914581746030313150747893734694276840484665826572694758378436778430788951366218889382126008794561119652364376504083254542093757641843174806552372151509869796012453184132747724533380917123874946404042830847819305012351118265292591593661364787810442647414148947653269086460319377674811582226713488299600629958389936876602051287425995435841232403802682533028452157907664831315833499419175961920033723459387925606064859537194446422228276449041979510662103502197326716355878666592668058448249959022081402615663820472830558995875878452545968584019453258315204284791732657649957059627178479737261703278481954289043115440075720369804056069956972991272670949166221922695088439750005579467997354615168186506138933126436253864034449064347591719578760406593085087702193184032776644886871102944905512482790939495048880316714453028149333148487747994380304312359787335279346077821872617590563607289430421149808741874600444457508218396537822977181353579457297782566548945985003907571104510521082719650356605707187765883616991722075467234763350949588104354781652883834567517282901125271601585622681654657598702213920701175159370581353063063438951429840482472502045374593404614754723449476541699883480448019713986379759989954856455134050851983612419934160630686441312412032815571095789318054375919549494138828506877857827722672524863543701820495614089831746047161181340824081922532352471032863901886555616166997700241892437377301465856958535812122699634800974243816461681674615618430480450523211926946384028340257420309641321638320684897634335718050535152073275030728088674027423702561879042277876094349855157398779436311133287352215211839741279587092448379099734244714254993422245474756488006291695352109007039292974873696776706599593410020756524933096841952547625179464788690440604520364664214276504899445339396540814230123067965129822920878126451342183886257787714206148023980248708011231347419457499452947478555727845780768680554643396153231374337277665528272756530030343993665560848123137673760718155381642280955434035169522092023538441454379222014356795911650436238720661029595214300490002201914826742949092295414517030383287005032686035897008679453041448465990508109274256651058475006977041062730431874259834353871208889550036561757483131832903956645483262381147395461122741724871128508469530008446366199305834433704639955529496081614217319504162225286660814216363325580343715441458045604602134462044598950169288734363241010676780269117523277901160834631875423322227580224438973240438865066657896334176274652878842640240077272115206009451010639526919122657244672912043778046847072207323780915876132698442774259479901219161441098542992557485914797081565776875709297033431272203275483117932184254065049765291179359942925631777228977932214841979960064909158120651663029152522497588896127167788166753890380763696892818861597584995689227643854932000536182676835704669606856034579958867250384703503795312811917571987248875796211803647204705121927628252059979490898058899981228680523678197925711327566924226847352681445667265612245252247787849138064880453839641394927377956888472213047409295193524302129495519037253024767524734941878100089150810444478144243867849898182357583347349885844768595668495123343359060586170298200762280773747681285843600772592184975147083775113459648425247869873792697096999066178183145239561331472269687811378910452905478395677740835043370833584547734698854771885293363231185741044171417391441032237446130946481780618503911943121637696181843182864679864435035765375369217391665031764710724738589836674535188994549674664961032166912153609806935372148636775178822615055647852287137384173690121935675507297581265454171321064303138959034241857947891788781534450498305401645156254841126315943957562730594205941647493308654782915074373916277393605857619770449963587731224680000658189422724061840696421092453487499009302582264436379101869526946647151971794790808026939887687927724749333887456980221717182463645628643962531358452120254764811310497801210677772604415012310627176844663108239124165491069650297447656793393442011885356141404337565163578643843851679103059865659701630838662404815461821907019038670121734140391087672530071787423679029272417977095976318325662570111787051385233706078866917431660541248173306293596926372852681577233225387590877141170645364109444478892725347033297880454599995641391589783381226947600829929490093473468060108948895329666809981991552309058743277011739390207719327083188200089474656518629416781310824295191115942601650961387553920898787841579350454747990722228369860288595022100007299435340285255563037134025579038982532820739240314335028079211963665266979262010590212288485656828478057331813947504243837553624785361130846711417478565603650895800810804788791129656229429239445500835407198304345404795943176156032660309299979505088733017296483471935871051802802754689172934688138779418300368657445968838855778433374441427215554695683436883016015863729135904014417510230268858818432711645790030220073828692743607761036933526988152456872981436826581710074201410042753476008904052462744131966830545566526069428866857120605869338038093139953447412391160386072878356185179689803592623842944147366925467470483537427223296694861732967270060641161715639303490102903687149671980323859523425627006779355413124790145577210827878554375311235337599872551023517388219783637049444399677305674555198898593067973407851335900978862932462910073994918397996517726129571718232222993468921982694367175705638373992590369888682862272328019255685942238172591537135628896503308736018247836246096767195283070618840059871592346476559492826150082886392126298058584199069066957182609934683068658053135138097365023243341623714908457272758517092254793621120751477500033776172187627923509440690382177552739101814556965741192340559323294479416758082764563246320165775469672744916477815305663403752125986918696997352833287067019453908870046132720216071587459206584257587868720223322900980021650068711530069853964332805778328307729554596039763561789683429488811693940574417668948700696854160019520790591063841440495809266570874604914590641459826991507913645390024578439007841863266113839359220112998665671647761792424420624663247862996329923058253932005113685257238177946712872085581775423627209174906048829253003049227656570701624891457824360858285968914731368668006828430559178917340818535137211233939967276950342740913821158807394828202842539746257325029787843875501755612450286982389012206173516113683891973994741931625217689737091584414912588669919555178339572064865315079282460504925882404273874707264592537200779354730927801202127781766974973101528027126743102845730576804153793105550139793374768919482537465820917100802388129151439834668291481063908239568354766994353063835816593780634621704875770790645978618437605150573665060388950704929494257161478688774652070642390547127743004488612004664352399674861039864111021429685030995040018882382754506665611095296867153139479629900438974306241763416154733736659422684759492259482200334960286403687724336912267929849256911087867059303207515401419625738883886146007784238314832074429277364364676282717246286414993348134081422433537324454261454716200388800319873376583584126824294377039880658090618546261861225182962417576261933000983137853091465869331171214927939116198257838230975458776801535320032605305584033505171643575948719929291339409499025545625191854775981294908519742199981502824584520504649000765865969785660569715338064786808123512494440645419777822985484963000874375080953881219593895482064109981916030574996882512296909386936277042203163027883444893683622986441115172766059764993875495981293258865729046553674315690793311767218146896331240845985415314268720729414084808927607809420984510475572128710034035997634981336811119043751072120470763402969111278688838125208267631478700753851598029607423288310370397560523748788416125024620606760170716229734074700167397357747084912250823439449541550465290732700234063216528862555517375888034620107219306376819066760739008515424986312520411417750707558065969452502788526530926026108861239046533974829788455191076332392871854943177426138684286503541226177134958503607035775203196780337473560829789596086822849080438911122741658263275098378629745632691447438353282855883356067358165993679042595961871300333449315534032055040223087854105893118562383332932790987204766412742260732598319742593544856570360426600727760954797576302108979217543515376778283524651947478318981193247368100568962751742477619749480786976579049926887861757632380340821673816282427289148809417458229230429070988814391584736276874355220567201814691578065455126591562667481454691935451982365640949013847920511224368853286409379307781968031663605505945173045170905982036566918850718424858536307486653969542060290704438767049928309361833848230081017933493797295701728431159316768590136728071265818948460132842437665888033289548695519758844409012354100654770152198388084117658274462068371425981178067408404221209909110289931246831803024924262429823976669001932279283348025915776493958018991755219156576400955030172553480206278932678253434501271110314710181018900213190781434070875297761245985723230719983923980047574537351113015204100783768569811944162634442099534865427325927529390070219128202341989726028772275486387152741470438389106431789229977062124697047207226198424594151415145426056538028691575827475248372513173157081373356636604095495441203049405938911048661351143606336083950458117369571926543338018487129190727029478833111580303821486858586712966718312361019263499715650329447035826872644301042086578551474549164747040167360994590917245479501150499965111394761891351735353781566345109076490453927462016661696569591647928689425398672512156603651553002781559511653165418411874271859560475089873794413515378598414022482026009205765522755276466345236643160057827925010061933659081602748211209522397805120374459457158390671940759589009810302350863954697854622002154611070319488057517156871293111284736627929201434307037264411528073114690614975766461192469416596734556378861498507830977802010926576033651505354458552624394980299265487103749949669157857315678344691910103968630464275579500827259411250712327162139270608380059123286322225031492596067047226142319904114807816048898244984840306744635328461964619854887205405112044663762798387254244990977977760810252904562998025209328871702108560749840941025239395426995272158080877239634241300553147342300016179249122437242158545502668615157344017193658963984356434427946578634558731824697072803609768691579945108146737911792215352361320371231463056703371097882886760012605677651884323471245188559903759404988806817386043889812700970262440060786255552251012935380273932401658814538536762957866946751553646846792101655796157039931669235681433058785173196892508136213087700645924365722155459810800643550517155203121946765850118495541049496316145225428261731585610630568429453637550635038731999403726727279272506084531683434153556370035544291139702093307635800529028711175254097061586992232889683858180892738589580615338955532293999577534947549167280160540607691335425503889565283134275004386506990619981157829777026011484030661914312902835082961737450183499537801601274072084247253530363878810831175389838401234866546103296902880863749684924439524753089568146327279228606510340874191579764566233769083978127231477967542551296022780858472146036601449501768137102656805370700416669539115872896040510823769989586606551869947151321510353509759376861023571907959749228976632332999077568504702242525880162480014703023274910655058007157095507882530512857744340872218441799696069197236236521520435327535424227991982963580279506683836780066439309150622941152109558369998278878713764852270024578355554006665459637784320531996635111474248259386429919644433554318297716483069561947260696824773245379543017262792867015285960525884160283193496859978501721950622384923089053956541752293156962917254757821430984149094746985451092495123841063502849211682624639203808226918936617645588118474104982625417082386412220117615473931862930229940867413680042204949422254944566244049465812557538555151616130322248754387923705457856820384808087863391161721539295445656615987896921166688351342427970077206552736378033848643133850624840305436265371622144187211147191568834188716540134949703773719616744835208726291234401019011905166361984075184367507638437427042884445704284902862731137420714835023694509564334703896702556641715141781164510383340760371904231486359927926158552991422169558974086877332907409831521445613578430011161282137873828227832553447991781478014913822892018512809072927169518903035668108290561671950534138013543747357197027451012307625938899060719092408640880756774367184790188587226499794816829305206805961143558481361584702730005868934605691376353449354312296975114884232362548231969194569103386648713184996989642334388248692624120527346217218588391388760796757573890639449696418812830787428069210779076119476122966590979253444467319568848379906805109119819441403555210765192769313101777504443345764225298667584451827434209314413115474450117730346087701000099209614256861633668915036453129552847480697815916258915279253686437466188304161367207504617822744481714386694323572443467781400548569693621748752756083843590240745925776548124307306064753763630692184394853793259268445805738973287433296536438283472889194211994245515074245535032695328629734533044139238171028963305705747010500319607360382013092586168918207858612264436255435571680218614052048249840929431358125514495413233389442692526163493969973470571951966690249417074064640837486553421270198838136755973172991566488118597653352662872236901338574441528333652739591264502402169988322691889105976886341316216201588980067037864479997989085784397588245946731491106185212762570790308444818828545926317794678466303719941296182946284794035999521168564310468616357089584740080285755506977987128099242528412647169702764367381225352515873728827393371818269190034819466260412468189973447815923550063009989164465535092094810150815629556579070698586884931331488227647746173685522407365904145905568515047159801260882480695211914447627861322145270359103222548069974878133045398617511321055780684249686178070755888355452467608730861512187624295704749366899300111448004922935217740689640918291280342856170484321102709350224351343365829911070870510703738433787207503950108166796613345565535128776783446478434801856821569065271568832920486902872173946489372102510685114692343935869564800390018957492108219666126107424524979566969569513742618431317296285718349009556056873839206606562778235172729164249208193274830868233254552758137396610402643049927806654830016916406558090609669674587319904795416354437394828339476853248253400305373055425932912635571198531546906600254712280148974286412470319604094406478192562060001461936772630817733360852212797552499370536729054826367861558926764994612160474496428951935472354685328599458761978229361803790425435022306138059251390690446661661719988471549088988320781636036716411476202778584474010398920712690069376855282802815791517980650705214256229799797650489940315018406313345468117742874944377781454241842326804229052663595917194263278264140270134006380139928047690174686601271130099237245741562253398074823492228292798616943388670792017778709616245271040840336302873863553118265613128505871360137359670694711621493037419701333381768705348619914380852240260842620266821221659888684626300651359390040689624215183872499159072664060226628854024598373588262056901898707494163936656223692655436661905714326866352258463963792140552663888480759841406694028690418336355513155130718094760181703232873145542141465008844521073945472466576313040411678103176479478052777079322432769398846378581702697766627810658121525412207400039906020108953395253043257573762913923630204611747108114713200747452271482115700804799687867201063992419744602015785326937842454391021690225186422978466477457121837698623579195182811352854620161240304692151130414728287061512783066442481913022156615903386609678351067192943768203592492785587124124325079239365573737631400431442529477445283492507453955956932117690383904040501584686464292654254587935933500462270736473170625244055965957737739416219786549932970693797907671178494610586597719111390953873595711090973520472865211392511355376517404698858176326165951611460486697677131682368367245787876998318123623571171461563308317562603577936248981801757483230412431395663767517187883584380814098102533804545328755278959376194240801479240792349825054635051949566778159501909344091464699969335600392389041185194444635525128025353338641764267056356491839912068888809235010216850660852941049691005754275595127995596474162362653668854222366080890727832437244163638759618964873181485763908838591261427937173284695300112313020557173134578144733560284415667010153119910199410586937766752666900515491263631999596214534338683210633489813189172480911240768605467532639492299327148303559565397995890139363108815131320510241204231078790426246939173420921643519873554383536800074663996069809223875838955433810286937837562349818462889113796854224867409304979162913704888524295665326704157537432998217359924425133501794427516151446269675905358549597774315065816872030667986873331910645253156498394662218132806513414930794435076237186846611013491096963864891367611774536442518427791569429251616153970745013007618817770103004424071443130016218387739639125807938955024960668764158754604547569823839408262261241962789792144159234622124411305979221596902681027804641883506755110889509791618703277532121623843644934312825672105569293424802847263437672045407807284856656027314709629494744453857918159285839783144797916447995994532329994707459571608387263866658846265312158239268745302265207568400847749830147707562107300575114353983317138465577558754091030817168907402157592755793761995192233585905341078982064016501390605437778853692810992682834488599188178914108852237910463241959762920495182016920878921375109949130264165575368615105586460230789089027364666908536325846422472106521344512845564375820948095689144207826471943819877018829346239170576603801349394446772028648016081204784924840935671131276661155317072288208816779959664449436229766799995205373202595513700241951677575131131985959211264518940442506792222579012784921068968478942428143875635457323581275380445940130692591164240407387000937408463194378450557505319551373333527620522284036843004068078719283344028439953532062828330058706536039770085338925221573141848982995969792745690079161862241538515326499460606380604637751676191257386173298908650238137346669038997029199097264285019377719847523556557258470670874640851608020170288065274356307128440091267693291718391584371865756854131769602548905490444524354672049512911171855324123547163908442713309807942399365261316932022085686724441998063051977356218270903745140340471264395433037215531430751957565179918442292754035047889653784817301651530470343548084186055275930032247117130959698348539789888699845518458035280919911821923845212560286079449269861226285985428940768615139775497662931255692815565994607728731737678508121067683487230427945802641779394977879268959897838200050777966869035827271393371928533139237705818710528890518112629026962502907021548560488369222727783660346193830691870582536770974240670841690195324835674922496734165185756574022116607485549020559653571954939238034591097735755526827949757120872084606857519708343076048372245501433713187293729856956812449295236862006482563265189726369629363207173769455881347701143747811377240615344559951034947080157180689545803011917952743009097407217145945829371044607873621027584486789947336182028371958119126646266229758368373672026681005226522350627859854336252479549011548948045825050870252135288292877430232720599022530471176050446914404927044760270462883578508874546982035822710073328416618794709799555777635367675195950665208834509304662761249965387712997031410479121195875243803351492487861050161942289248430317602515566883276807729155228025686284295605470942966646911181377186656427297670800691975903680621610437246744332328292585771825290267029477402884930279856003062945656073376002371837415737395078377655280235715525822519786949216237478191487756505295066530494994956498817049101742547463756641756018061132713784522076438006440537438099295675540489343060361535106864774391668825891857820867186774631434331934893857108436698489420292082172577842552910339246257608320315978805999105872760846844689166709497722908995092124175068592340448062499753569379698196155811124458172469429293501581684518656056599871048481178220708232832975723846531726490744951023640752446353822060536227680367898881365298584946264791340032082894022319715562639620728439362556937248699737893083399357072455523626820466595451858899681606900658289907350758981407256704457391057274350426972537849456470221209964220240918634427543698571282706389549683283152138040879544526977629774080512634640139518253670601064599580296188304736246379996464779393828376004314762524447603202513324952918664804547540632147948493744761066525505972111642471397008938053807583165642221830267050733420134307362242911719043931474889542399897955892465572636601867809149119381073824305334394315088554331371114611373245968693985847311780416003274942239806333740020727758372278969041609058472904134010554289380164737099849611471532369262756362026712352853013352800256493769686391068886104670615211320598683274843426048896960090398257932290175687748782125101337689614432117739948200903696251168816841100993900336302063324977133272670748826890679665448565022618850589574580102492105943375619847188833082362327770119806049626629642865779808176706738694606235778057053245476861632822997183364470777404437392648534208696700687933834225297824393202353084083385849452270283072771282874278590132904145678385693483586870430620623542061430281581117644179174031991128687760815209876376574622139139470843496051673649218739782103358846584437726523231733160810239643730673064998368079522316512148366392241379387533811570511854271027189919082831823131617068259943046234801787848882813485223669782540822934400050163035018452811204573690408583500511142202286820900529201383753707647301132165685358607352478202737315681669998322146699181576094975535029692803130678454526323455441431466983342702295505714334481027124050544846989305885092247905218182403458294038786678230903248906328265814994264683666439085056955001351230787226371935150682250731815287454823333516963923251215401133077588068136816702442021511341859151535988032115047216698090274453525170771208725239096722702365575803198258616010738079316163630710065764417927538388428140085763566436828884692445390749599095658607435554490761541138609735947710754681721174067581188534992559453244836542032989421662010997409739868424720104064811134636042489838264767736699276637527220333197684444032221477663976586323592518072648756924428765638620291625841780643540524041303006914920571555240424367252054829486026594836109077175906502806918816525651856485917007831173629710402984128523470372363632558443077058063090667338688879038333980193142462963716321744604305912958501044785800413074356163505951564168219136163257733036879025831863489972065720360776748776698033838473147850840108713580432794393820570626719019794884247323830086506514746808092967503620279236489413782303153899879404758492444230135929373041640567347548756911436740063520205567685945142810727491262521852911687940737710143905605006466966949861312763638325199236179621850177262926687678270050331002617559097849804897760809521215452989027973823259332883596885585477697616290423081921440963478565564353631157654106357613193515129974284840147656812471256685204614136199931466451104617663369920001030083177309545211463836350981691161343978510254012163766849109741281876802947092332014612048828140498409945811984141927025021865327394774878353483577393844644838018532724033247074014996714681141045348836333114923048721543827759445518430833333509601543899263316639132755597423917773284223680187488770743364936022126615017941251455976732848447006858926919009092285949842816685243721385420511070831088105532788609287823509303719329947832732177866162354861514902286651137605811857743354112032546911850670641499524996684267195282266813136955863030458232710700190095533753229120447750072165884052057518458578045945813630129057810174408991486297977277901153839482606065146438188066950353844286942879413307940860375030720600355086286794848325709881403596738869534451692582719230130954075460005221097016958551730335461325263101336471235110948743372876523724278416831490635951118545349976079668674266642650446621727603077529565411134954019148767476149361874202084143381046046316413110995550487178776459488362507954952634893976402921691570221671626414245577026302380585685399994420711961898837276371424344937786073499721097423086542337388855162514125358674014740436216103799892719850156888606042308084761723432349307898342874052641207283768148609632987830175161965556000636379643242956316982172974517103612718340846939159950637063790114018921490399784010080256396218878627885047547991365225113766709310869757970679478754528193452114509113662201437927838567610434207259926477338304429216405711927917735587819615881153085237754590530580028592313581272716206418481161852807201548897553746462572107876188912688330337318529745852580727283039743010966128524101558470865618842221393179174158748589053221256797212133051089641207350983627964488797246327362097153575698061722991515190648315248453614591311486815854178017039760660409494181070763797590450068083045291613611026157352138195951013873631683782181407258110366026352221799160340630942256365357072419599989069298673684193119651035148798046666562109939470628543871498689644428681806502868575083700257043346154681475129023431142967414339116088482421509477699291197353186028114320298892654620011145056150673279349867367609072425428048030354051984710530789837125574016335087211836239426229845607837222412557018470154151894515363825280519366406409452403436619768591759629374721058872214825603688845558536363457104135142157970791763585363147678853700220945469929055860945717117663138093206934706669821359085167390781615354287795370706996804385807252075031439837633573012918803676218075966152417998996947508448844181901843664888412783528442426019279277012630767178997530992911236071820135758095059529835677266779643650952754613613199876567810135241733897862384125599340717061100936699875266120714721848991437972757223004229901605471209876706892596343923347537508186415572606883322863475752130360800710569840466190446722118781305471186771578642677439816347775755549360331297262835842980047290303379724354774676279256957897747440798199174933615212752573565303804492084823889483795659371011831911582178606228541883917484339081664992579626825642865389661924713483790881727654923809506262114806952660045518533209653425052247928190959884308343359082834598036906988975430332597654618832267218843129025092652130068034737224276460835417819202009890994708570796005122559443193147066191280795239011250424925761079634702830867509832056305633087664553597925392880568374740866373291804406780615647498607328329960162832453778813625065568116290260391337521194856209670700933725712474953872852047315331043110298009426031751534612363859668249521467077096636442009695173052885958285636156952165972573066473709684986672535299973596819583420253519820153740609954291019648916611750895298740599957769473073522898397207806811982589211480810160113114704602390309606870338103775172208977512752879493195446093840233880866451078534964717188941048319876837055011637669277962487195188907548218520181108523065832443660315599275284442025121858228616169811799079886826785743871030966195783261712264127509678495398771892290781113671835408037444423822370389105633279592508599724114817312019796991292236582869908879549768418269778655695569033929275609011048426687940442668794120791676521816391353295619633934615820710053933075015886703861938652839677358465249478536529983585883141601998880363481104543717731345656725465528368127155382814053027183928340726127933770915237990762822788705783462054651923143192873705972511366172253035379448215219341702936422998060084781036159608687209156362518274647933468784617364172778673819261917013755890050606797570212749494014426303879169764794731382423581857754025925055909822529136876052274250694072321751367488269737073869808157927441820918860248572683561616792372225229569240832339090538273733935846345631289189727251603378546605877437174717052714271697803269985712780277473852390330867748684979528621912667792317145359694039011233784648709220412749824842443814133910452741959924635310531402888638937010476564324636978570680196370968313313916720373145604398143425318712602256388214633721730786559444056906073741274564819641006976573870418823249373090575590327396313545481652210115490615848647968210014284716042509217593542159239867749882937024135878326413600314128123044494116559116767652723327967587911430769773476863344670552457277876972477747714288255870857691703300591970620686907717256545967219387189786438595229054825888225835922014475686889926180979842228618240057731238560463816156958862267543233535462663625679796180745572654195917568335537332229602427740964436236464628118613150621651270411621923747705804824148061892394148377395660453358035615727621194175988259915985586491026644445641409683535023215110497858786038300997265568573688724880832383209093547362695152549197716014370136133662481419633067655728726381539252456260687009633849048470127621353230393395023174828597252499075134346022160358819016805504953123121470737326942533898449210248742407270496601984925306087288554378007255449860467086455815754399447296086673092534979851021321201221466586510952056630376115025827187183665340504596608221253509067673341923182966707255324288546227382043571065629205816772386944777487206097560320835860986987659732921331062730619567521932121900216008221162382124549813446925192777902022299478089822087175579213134603521569557998456858314820464362003565168431465346501673254741355062547678219833210120891949857234296361659776218542964444047758597764288456083831212963710727662170285400381664056117291100016818116524902323410161069860380259226762663678908729555470391871601238122907067074594603208960133243561910901066438179046192727346768605540712197873184480562726588419671380497750526337651883941630606817662005147135579062304838438775153818349633411198105121772580287957100283327589137894781017035517405022339061266396036042719208986204571602762557814851733963291933182226645961116413936627144997881676677236217152960068020661488441355125173947663907958749941331980386873281880100821542430477072699044874770697282323548204852699759812621133014313738084100648864978766913490652322136978281082401504968236146302611217715378624470420503597317166400228595381804968000074793696578829162207555461408648303311155289926474908961364355188980495924063711781924392931882958310225619405382212278352339362153361557615570278353838504159339182999942635273921995350370014812659262624971282709477240312510070547161348518795313195739436815307901532899430334725993574274629846098850753415948958199900262014562739283755423066293569841531210286346286077430163203516910077688389887296033235841622379949070254122313393575808591866383037397721236520546098305450149390907710433442748635943652970242255857346238440473986968172260431006576576111444285329331434117986480725028656739037028912382904685626061575301888162642111326878338663567150923488284863052373422155346465484064617617860093187827745307118010649451064798705270814886109429382341340830853111776592855546725759152091171944904019074976926750877065518178921179958872218453500680903606949347027064554867503507623066311460386409191366262095508251955703977594249974945991509447632899676563777114598423452144966463243791912790702572992212263204723668854214992405140490688913707620489001103097762440737688927438115986096931126062194801915920713704193476404870739715956930652835247662008600334017657140662813208974470781818761655681003968468993202400601673440363397957571807111398302668115227341358061575784326879788368641304196793573360540500446520210662905469765368990823527144277951485161650054343831755065195095061265661470244450567744136249737349640309214335523853186605745499658367399234694828583998992451571240060490031587240408004238410986134974612988250619683888104728000363896346501264724001596157105983252392498340799016676798549735597417099436403448199288147081965254657258161508003001903326300328532105616573209682017795578147902359350240194510963066195731642929258809776314574960214654152208969167513398410367714055895569352323957691281824013612351053717128311145219176716095529585776622864804505544397912714406701614761241331241879730358946079784973978702062641000506110159011919869566190413472485376479527868264987909977769625697742703472006289656449321673439244607198281464718405788119568728863702289978070852085044855500666504337949627585205792497112768510155971614910254245441698060748216444833188708751592012940326873644634271402747061805053685806888836640896677061816109947136742825543392413211611037007622912500674421479252522389236790195813836494760568171288392723942403553323307556100673932869441242201751976310906082591266745617267773559369842761694249735242396256007296600067439990198084511889799995629947068868372890046800312936075570335885562017353375511626167692837218187425738594751841198303443536053646950599430478175695621612758724212712150603949987060342225783521016311472058600317977591854668954066065726017786947704515573877497125932880402856912000973342165888143460801573695200199823482820185547609793268536555158525095585827638355536373321127032042406716090174497536669842841000459812146220457427184283202083363598511680471143163534863267336546199365298320614692660912593136804691396658436437071933238524904437307703809042508542599677658450061805671348823379432092395822923843415625639780915341940008354517327257100798729277340363355295179954095071999332522936100617525842994445331224879051673476668685205957389978445600075748817221098177962080293389716710907288161219181158138197675643378612119587235405060315520913073585153980764281823522182583353638963046025966401366822603901210373414945994149169035095591504148577560590811885655439456255103382788643022697703358512791297622756122012503809672018646957639950073473229557126787944042403616414360429134278870631114891573765597156468754561824074336666413417898919094634515897821353577833341364276866313994990785921344533687636354676718478081977796604456713719300996529090007719898395277411989246314526817486982251600979052423473551062477419779169448030827074098731158379808049069976987359853650414067646069217793464420172611101937580744703296138552857347759667715745428685409990223624022324063483992649831130536147376402787772487004927831795440126981015593805168872563555096925944786032287458179732628761352088071626812202969896041317291387890440161969278648285542402023456591013500889971672037597736310092788108520804946897086834420477955818783053408972313261380866058323225434313740122055808387850737927850972880432887467263941319533780211304818857592838253715848116324344088550179454298279368855059315918176757241978781722688453391818979434275526561165229398110880377110541931719816456065453298938948761583851089753035645459571397386255068673556788638704098892565983513410827957521984847607790150084653354414117895991184338111479750721669625468765290324182226588805889805061211267684252330233877041520558855425112361648609968578852355269194787447409958801949470937883367151995011547675028657876202287849428448562941445271425031970225575018629561753391099311784503398225045906759934448355207630109175638477600732515551548017782710186033028088810820833143032226645320778238456232935599914559399843560960220967683750448377520347983410352101352542177593267481782265494021309752757772668242257693910831598973602949954647538686035587467848861302712293309903807138827892604625754911799420430165358216716759154991128129789271449915123743267552603607340761043843262781671469458132213644347282461163237993594240174017986247010860581764195699543455699338328020109415156759433870266780371684802157181189503338124542469511487770936339155252434943408607679410258364307631534630860962853369223569373607011329740190405404261256657317976019410786361073522855550709600733957643240803505558942517260604858666914692118155090749275691828816530497059686607654391373776368339339876368994831506257138215113674237404922940210757745147226669331573876224769256516896745129519038095543179075931736709202150219239886573333955381859006699511470875466803148826890599422830568069694634688539953967616099174551323946762062207731365403392310525569642314583128120377602708596151565414878852030003708014623614376792705454410383914349404671478324414395759406368419196130958496498950454408532763969547576918790972923797929736150414075328708095461388473300332416789025184876326397431043136698987483419367645418867456487124770139667679563811933333061741771113377563315488091982586825997617440077072092769234613787157776708970736997891567110514960245235645618551921811289325546189631056988999368375591499747654033889252607720777808295115624753239844363786778992909452611581065753592688095184713510017384083902828706587485090190207047417825478737697560075006507123284740252099710406690014976849623901795225910432875533718834175688675470573618001528162790640123209816683551396496416033709480779146310852850617781759356684824172432874976929652740433165315139469110034573539845740766548374968759796283845511268825079035039704008806973189477834599778371293452871103148761355943940430908010385274009127040893998890767493630980955109170334751640325298618975685272132971840849816782791455888802200909610460532602979138412121619596763295178154092244848721407054598957373552261508858012988013483969838486746997574130692409412841132172214374487975302660557299736144686450128182264567872363506971443207448031932651420994670135729589175821281689548362990459150661270045552900121149956738847970826595384877952665772432712557446971507370360703433065820082858660398749581263516045911591852202280454296954237015719852487975279622930531927018442926286883288535642298856835412011530128099727302181159134783777619167473544294295705331253952793454465029552177986702653208220195718801561417630069686847545975008135124745760809202017770912999084424177052002048015480272701659898936308987875260335933368062678225984247649256299321661774283393134475658594479674411424056285754980109623283873067179738312614370934067749947318533854648008701211499068800987856290477651402835137362349019533709498717375157272489308804102971054446765670177294844540092020270859753537281101369019888223016252512384863682560580975840748611795306911696345412514803973814182144176262667944258331012429891565928375862491761466212693179787404499988720071840965190522955925287709998692795964572328566344019824121073836066011105071155376974714573187089287952581132001648477070726783616065949041150366969455969011887043945843358158578284021280554825404581050007339612359249149988249544564452218501574665682870323909097410844831193195761751840841587308010623871644872093415946203141960475411085797605837963354522957821184117015761412305230277033240916015920593129791175726556497877799744863305708148288665704667371643529427046045587314678067812885574082526117121648943332870778716221275015769312286960134815028551180657643285547739326488957531041786312993394285053456794239205497768837514617960377831265506113590212280377523094618077960432607755043144783657262250156019275705454112180663123922808304249102589233047890306581060853259732523228680512510618662673267406058173008491615555379524920680877789524968683642192938393479082719360992945401901683723203266890432175509180926106829571251536269302630437265131034375130468080502466707512515515241860978015652419332825009937400540459504487095097676865781675498947200537541181758174862383380935802877126866881292051598689220392253076058139548322419948772101262285511108331014527755303459236877810288251805635795151787364126046736639700120490529294295344898359081860175910037833593358507382622000005320215013648233039452869608900597023134247597730683020651221043644242411031122543502646807417654272712116413248967397274509905148532861633401374069523171381641743966417117019908969769388564110892154555495031540854770257584596894198388720337686412979323206477638275275246662290507603017323595705521577615017941936273214648216585410065744641750466108059800927791052393452915625935389775939254363403714657740403166856975048995879205573534748370559169875083248152962783854919736720010871516314437415422020891214672124374493983740273850768950381999497433211547707154361521371778817035657546476787269567432697099794133182446086831790794790982693994273898590548491076239211084534671078269876127654713622854778782845845323857935791074100251713559446953067416996033868981861795034650963908450032002337825164995704892951804153181585683926025066244913466880988217110940573741216172190196599560223271072912553926710330368574356466727462329071725651676326528726964668730276922802915242115627563016108263414775521410208822961088412527721295467151989860568808324346915351252487195666625162848264016242447528289055289963156716122761430281630415006401094157346511259289100657395169419040916035363208464650996195545566880289220915460527108366236728308871214212818222043396654998367470812476431256882056147049923310234869173618205334091382543754309721875141438453921164173027338643456114929881575493147030675967396250829936761417297754084838419512977314285279060835774965733649968523075514334752829257026778125590199485114355923277632123522678865507200377791170931630338923775405880686159538456873322335576332190482453366732105090954892522522155224108261014216410627626870008573022774812608202374066689861687231932360033346881125826000079057761373066037119192892234362253458651408374833111686375861833614861210441929788187463515600836868020743120895577257187630799486251239542244014560330320710853960887496114878473650513290784477474107414191175217264979313606132191902019951907742781290381878592895659576308780058269156920858107591405478425613253866056885335304911493141506849778061720951483706199552329620405536467306670469958214829390509462888770127475666061143061660160007767092100979705829450714054393118330948998326182413452351762415439154144409563413027607210584933848231791255638115317199702052364388588855259908882660905391609379208881502416604180219900835904095720143404145791173698496614228506182784460083025716460417140456901254212567542179403242833342441171803772554078284431923732952417791493224503707812393944767324902996466621829754929766301531118156874967133031559353494365012936933513578875564003328564825998267068400560703149788887258410133640833840861996853298735526483387408006994369083519554706383337766548025777869725378805355456610458070887470244214259933358585906499616881598116119999581427136747475387458324764825809184852195257271846536075112666093850988530928273196192586121573462384384715529300334995180498810756560302751802998897054558725185708877416121996786950426005631645463951471209846718340964914716837537071784991473625240911831931608899151770247311642699560417011994417175897760681932941817194677259510287147158026691488002357611870194532063539843358796381888098014745819216215006697192648646071194912481199964452277492951586821549194607299496117491657665838111859000624919472676538141577819736268188857752132939489110491073457534654517899871976826418841755208575284003060838319400690563550862949234932716544226127819105044803596508125150860259942154069925975492048371632911065166467581722287861724686178536196181602358626439512626615799128164304974181965691498511264285762240745587196318262436483974783318085172710334591068441611277173128321561811033035118054409609054131340124862908875301388123076952301795925042913945483693351918883767652195541984485698424718699107475756381420851850255888039339446255355669968989698172064193181056918884570776096558074627589471837395494130050174619842998083172682945991478120150232731990381961515373710131759508611860827163020394050185433342159881360388770933001049753195727461185134041619853497139337747729502002997588843029978766056079405801294016336128827970765293052467810588752020813495464546336635155619288208667735424779290948733455501089691834959517890304205146163588973218067554112300458623126977906491291731080789572680383147927577400113342056074060173820605071251553292945060068696355679251353765774779696694028428662697096843464054210488619320188494339135208501680048896606163380545163219341204637968623156203775029596911480830273996755220776887589447354725264318442095764854148481399322529319335823087762830302573518148642698481825930241928084914337562747854098164471827696250441453088546241789413628940034626833864733118000968540345591280381503759500631736437856471035460712352661576139920572749013062731051233384883222192214833126540646962449134316520617195656064238082712476736787776051963494582205166941505624572096685986818992132788368538529833058770787000680632420680076264332217356185221563015434457072416055673397851753581086379357209499832731760264567134610965389013968304608120011415210678678169170785216578081519454956848684483680102409676840687322501369818249081104169188387770686945376088764243115805341516741923184928481238223868737568172637644187868309155406974359316975217556315108509235188346365834556890994275257491150288399808789733245820552890041155634827030912318154547859429876432707186334263143150352776821563371468885383311088844574286468962026240352650427187521588431436060612500125079506105042737006720317024359746739309843186397576379167443651881925361267633529451100368518593072413763256053192407000453034430170433552891599943223915429619667123198859434040218734938678926267625610487652861085289082449020933349209568110990794813719398601901095069310628725510238524699349837652341573748414378668230295511976304626022931881896412797530690222841345672768327608223115888161792970784475953318327200792420694077412578922625695311635264853866672288689801077842463866735517746622857629319282210773853086642396756133170088593696702979329978624410349762106031303293505214787393266536471146855089290310059684443641909285041380824421078299674829030957397252931911564902968783025773089339818960415426676079863314850664200985785867584319444168380722645366024936211432440949096569297956290277500138760286200961265184051806849769431895703359825276580835915124519130032689389845075748869606058502557708595747039746244243689043586154906261627774592930038499996381842245961303933933896517674101302072448720195434035205391788248815315139586095858627226535416050634673538675927759984138581649854707438009790691977571076147945890649655886723101559202786066478005402351650264027782647457854397125130723967237577167407004013135032405158979614102568377988040215927637406970086717415839818637410886798288308510659417473560859612496957981000939723713880698713189550493719344898870841413504583689782213433009047984362647942529672788596376805087020544880463111904106245924000971349784158802939958041732104378146381670489894359364995181073965575527461654361177972975453825937470764327477534831162180201495455499186148743334840147563543400151557701249511853369707662705652892226992733654932693271155837519014719619953685405483123356922602843650741408794706892851509362081855298287675418648279206284833535455411660336213423891892497200977310878394707964241434576553952322635106240031188225608457964404377660061265478435470724285739576971419416993717953786558794641407125464196898701724588240538671798256063615703077311897391894807892937894748589582803770402778325245661763872737473662449267487721124926195370566215752581775076317994208122162163372770469388362477903688423612797288998864721161164259934519795855695146808109696964642248818747949052231314016773610524917246567760889030695616997119272940885701504073802712790236703966457210487174564463833073281558995490757244751878327590987812936667356962451283648266080823279088104487184322302789731805084492933201389212627824946654998527705436270308289218175042479050185718904113857645000275494322925891963374276278151420362297697656015276593494252322226971786189385968247108760201720644576903145618250002344937043777552187334805051495042620537972998423636348961916964228350190517130634316670739751364670197611454073234679432777330042456007527031794478128055777972131973748619039163929739231955065993883108528152693484324071509197579769865063479288299780523680496582666755112781265379738415475333846513905620377835168999670007892954771371021407077917533551051952988879934954330525513061277267578979635675508168022804529803424710730223228372260180316277361034409863942251334072499555957499172253053409822834403062293521837756404078578336413254391036514499122228085515839829764023519993370614894382517668070758642523950065453108431905235094155899604264514877570865211415744201575839451266109426211023949746300278554390837490265965283061259000446776938179327238989830796753165807468718604441034771407932958528494398062607961055266148071289596136551700238020540264121544680481253768558272995460853914477382299734081968498000004460951094873149117944769104399874685463574136038595816104619160637116545777145427835062269957453821974387881134299262749041742080952532306085998485455262458883820582606214558128698042278992387063209550434748632710635675311223756853944314241179638313695017660212564221753309547086552320714482883609679626416474346573695792766244662185693885519228205754348531724392073577107531941154842503853577809984944175322659805550419581889260517917111859983269159320871780945927208902271731882346867599915029629673580098330862052443859387464625583171976686998707130324605559269879185060856465513238483626393175442411383343004848284846902625342488715122027998010632520064374128535591056130897217078177060734910868384762207670050148283450927456375374172379054263359589768765735808497512876984751402355834486849223109129966241113587323947882847787340854101844584409641714735826325972862312431158811872827257036972065754751946463388110964592419515168090617930044773577494059615553019671228455566559540372074934385554138364596939829152412875538842617568828780019717139428807341295882402763052948344108991103355836307552209897547743313988277676762488540496964789171990355595236092528327630343089142509768798577507968590707426003271108315678597879166589200826908669032775640004200574499339278221056149315094011587335289728368381888583356435547377022819166815878732641066011636967991466169587826611799312528381249514177220455541550973852278601208530804129101919030147172897696201886910019689342539582982360610135278983196333400648144859269808092401889910164254682731797756130167497685503732825284433074844019843837151343635839808628353626657823370935371440368419595459877302746094171360274274570892172950334705869295952525039475616395372487677783900834022536702809540655189268314719408882305646469160921515816968667915045193879655563182935996734406588101878724739502037077237067034782985166714358418937904012977426492215264961567721228993152991153023094109764516635563013342266694603651015823296251894656353420314122523942365629502104018470898562763202867442201183720010418441582199939472519096641507674204606701908420619917199771176741072921255382991212034968419445241404885968100641268596288941575756718790612232636143178739899778163742550380592841784620240898075688623942652934492190466546267755593299729635081046742150945809093338974590471597432289303117705403904409822203589600807584529281236395740482831521403712211135831469340551367257857719047001315349817826619498948209946069445198857869093078803175168275208547032718257863386224654057832496960019024642575709896985996079912664691816093149739796940971906699258227518722369966967789139493356244245779747919903229635558908286071786038581551916919991488171828693555237243617588174277638562142804152964773374463038895034716378880140224301595562980488393399102951019917804783107779918069789098053322017173426832755654204840157435514259611679093063585602812794564399474016655376965747318526096990762997153392935529250709183519163273863897878243110852539870259429389313959464285238860787640910009229555256737189599873694131526844592903359883884914083882225518173915306581318004488345104413347545642154850006552756962178416551290764284327243968812547012371199472594911745974222826188277662387456244288506611184514419503878631803061023688589018400006359987356540067438632315846062368521248511919881788257567319166863122840674809088904463654930903415939615846374157191233875420418712759120343898195120797662259324359021077271180574335380831711424651382958016346241322416946996769014197237162432429212056751557976610933894074030538721480231044296479547365110753308590624265529616851173642720565408136525231252917109864690042960286478704017510186308717941180770661695549595882902753837659351054869212261713741909290725850577304963727163130691852553099262586059573275587786396343006072983540781449149806365534952248299350509785986423888771632545427380196466405458536281849339445509517308356686359732731424997165940864162288650670430839873703211187808057049627927984968314106193260510730237183829636086125364777761873431783274689915653553404204325279479224576088760878934114415113839684848211618637176941274729060990010737591843182625680134218526263175556073595317615744809290797138627117286637840557689022980412186021630786968381742958129031544421274702937228479296052000244471314880791419957013550237200319288625903894410577488116627169976446423573812320270860544148193686427095833929849182085337490551395624340956858900191822748075361080511349939394688600786602922037783500762839174908404708116002031154428408850427511990077647235788782244414648173893875092474494514691158550424922091287010103202389835495292540153817054222903549531654623353791691168874075614412711230048721499440365845170650774626780604412858922618248273604038208822011340807974009200092660186172746792910914514920978683654608658893006562413967328764389155394993009461003768234628322620861528675282674794498275976062044765306229930906608552466615031710881049577977500676529086995407572193645030816641600314766735251122575405549506208124532596663331548201888092544894686434875005710263755411067937885620947526146217499862150394994021909773070863324855230298298213935674115315133307328375019221716473860618208126535966802879466118734989022341073708295456157641560333918628403980147658309160534558996002458102600145224865758233384784380432348030297222213881062704142593516380364664810735557682570126256170844541865133283733140285621156759128965289969812815114359488373265981422606219784871262338297154926312235530605702796728663574070455658026280657488315473828219769674074124711002985149553975311649013390385277297970688032482234508179782439034554482867037646863920539281304592384434967068330976558684354843978877380126236312912602593318505051897928808767628659251574834373373123713291001583251838538430445580154044833368175637245538160481731625023004755156741525964264971922990908222320395644639668708766829630036293557953950950471041808539622569570253777415123307995193651267980564992783606360564862516339344854572584535721644887466092691446658107569974874811861774301079391423089781251748341134466383763751270524768722703592500588562230901636003335392313357046447869356207299898115097583184877857256415978897027406520713017184105221358675523101249747013593214174134880040881171718366202501520180072145646137465189529347089985884041955476045315356540990091438421256237752570381108387407571093740127281673464434960099811724219603064359945064260745749426754751592576013958503128231722021409730520620738824319699805902333354585044347857887257930249680524411953599066930832543437668588736220079270454118936863290847072481942220629281135117270252444488391293802325670162438628785542539701893209416489034256642857177820423061269761365286461892508963421929318702073225719012867139817286777394357574903968224013975585388746519534528668741974862600211476254832019072372357334751613795269623889376769684276245226712547593827090411520533859017981255039793399235383567391016352105597642085994455177751775571891966605449634093154010769366095188636692856932155043565329037407018152781934215076120160800648770530093177412163349153464152151481836618492653195986189875467484560616000007312670900044789654753200915797404718544672876310508843150326149785997466435344663410449834666457672844842429539287852349393979900884527755637143904035200910760484031826595088187695835503987736465544552722117324313807226153185783341853682146188142006246903995928013322191079953972430983838647860963303366205404899429259170801006545309035347071603174126642703818544346763162345105867505559334953996326575952224169064306033396977498984539189146123645025181155121558734357655848735621339284527418796583373462548996591576053995666217933051679987436019920571014098932542269344720784323957920337211126266427713375621442788702894976234830865411436459956977253355650748016501333899112536268644640950831042557235258805810645649921179023772441692944154389592459153120186282714898872930012737125881353247007080272144479887435068648700026595786534654025208488661105745407765136634137103210295673597156342764376096040770123358777743322327309956865781659229447881886607816618797092488051306006115242314430922555462625444174175505941593109752316828122519585240143707371246754793744159013808979356167216614131005439076914043135722530669425704434282532364968318725571773527806323733389866754153672898794294333614854701522262308174480718993804071458099446328295625291929898170006253375161501868915249680169333226713925757483243073610701183624672092908507288889954772708655731531387660112649377246867868086601151292227228734254265551428071244852633903702634124136076633227928514194846411084537946433583017697154674085746990288234783800720016783165787711186506112895817729848445294270578748292811307818335392473513501657292538865873010561481849643492383005906847900003914630522855980111344566532537718736727909233759448544946025216471080464307264311340381074524888474268492075657217850468644319290456190303767647296393779091716094831982602227850026597108878142826339764339998688541939505317048448256639419872555400838708349944476244643263487337006452200555637873257080333635329380454009176430350002599621283522427963928187058510083222618524056957959168207200948086783182367153262797824544313031898207111826521229268715342324054114262990168158759507212788455339888063034316530103853778405910163197628400610181504840887181365187644206424715755868558371804100112725285093537967992716630293152113282009548107732614540016986154798676306800419577745186848433127179286104263113180708223996306365592349182942676761309131978221980292610284458295629106181256516910670933156467765717031719047696870981114480819743326875282524989635037361828522308745440152501704318260283798481309334171259772093786875365255753053464562482089265136466853620187208062622440468262753740477009520826060640256662161813144054405550894911802754770696217058148763081753138949554034429701859629893941695597108085843208332273081665708118203146214005612369403217923088434180970925860682978204963422720247856010110485316121464479084894469535947666473381470611975027056188536292249051218941570079942848973851894960012616592904434687964212344944959333457388430132699928710888183748302075256010431876148133619935667262465758045615728724615859602001337761755858258144255334493859676799591367434192020798735326417625245567323942452490389637665878216300356160456460944439713460446688810622426305233489873008948870388334349868114201851933939946659470369238027997288691991975041095972657784498446428204763803811828309127941609620105788689371911545849422350108741774978235673901435011092867891575384869768470051589659501586163282040924814311161117705561237024100240682995998515201143684991860024043115826200074031041693275175364016995464437664185267126340122016518817720687505762995833889010670923383638024208663056166365836462145115427826918373079717005742184628524190240992687358514671395595293577965084735154607862574349285527006131019482511706260928822712300210332790320877479433910198478655659467054201442999550978988599281500907544608836620382934785555396293138114492439244771941220261526871177998769126425983404979827420913359820543533942072905122087405647080905091924061729124365981663626076076051888593763740872540930144000115771611549013239803184715160237676197878882612198154828936068568048173351406449466204759614685760163726118007737168593202417777398773529091682692379637070829007554437803252817115827450547075303526603587542990650174039950505946032390845136899520675674003112334830525097942906310328907597427912716181627123133881278183715660820124253087047292828047094042822953054434317238624125816355479955563661156532727394333443842025231355373567815978769002353844441199942860626423877628965092566120955661092323389271456568364760479359209333771191892448921042563091709850777199922616817060005671834128744990576723346256889072615240364731203695152883315146122830286051113709839856701479499524246567716036839959727119125086594551528696227445518693718854395753504436819521567644611426247675880498447215659905007434154565988930140236268210729895023074915778493885331210609476507181559228171058079234504176843934688095657244384456737431486778903778527493891941722829225153837816199869526134866798154220231840602296579582893518768712081350106760449686809947548922250498641105261565231043697346383916847780432128318674740471168285066627933723978836437250237518416270934324391434595135119686903510660365572839336597248526201274947411617072354632898898929996585273724802419704279622607081317429510590425768822822662431675730413349443770053181165785402014819242640108287689050761430575140472351438257440757308617709200781810328667984452416044021593285225789867541124071721712107551919187909518022699092321503637844980847560451084361710221373166466618321981349893043728214046894064172664982092109520733292418766271584523108153401112302094121788125923439690611199469651184327794087185120960040589406437477039152959159263188222516119971730709562198793462765122465808494958349597061727731700394017024132231259165181958126243052630071646254925402578790046206829852395414812384653535409921191834205975804594170224911312348419828766067456202248716428359739976136591325741686209191368003145145590986906568085196070295045282478968964072695507355664088839550342374389311480451031370726713374561713067185065345082409827711831916214432930111611990384249966992156141784502263482426012672579851429281284227498193701289310164335364304753753169240678692779308597141694294512250027353326755296476575739456646502734019033716373815053463742606648573501534895172568505375825778958699751200442398071885904751218104830443985185568591504806426476225065627957576192209812610331875753189034683393901580168152170780342486297934760953099186471566694152059910793992554567730540657647139235687222764500330479013554443698280604159846256621916534363004899046399551946937648918449207803714232101815139947159577087570787962708219864154420773265794197040698476058357510758581095784240726956326069813028791003443673509323305462685148072343584000609572083772709333491566602711963777972889102043198073755489748427430549544170979383270839659705027250361632719550063552257284928452637688195375243134226840770480599836899775644972572752850314452160016052611389850241164134446289407197689492745728303057797269887036084578683167362651379986132610120226280224958712852959039838058847030002041842790516073359993039883766724494043685947295665996699354727129009752459969787451786229774044131053176395879253699174084871953076604627313302111169437068227788643813283950491146838999396297026395395279571529070615389975341791805408961046474096072277964974432575065147871677593425398169635895715068445767277219530044029403717541181973154719718799690114010793220831039535540885774095856093174269856637005198244091745970816287589127991342804955884626480564732749018631290443376408033081577190664261974757569271158052394247540997290711880905289851704890724451730912191010222874449290376989421312794578122328712011377319743491942409243402782225539340059954206399061008851668693581405899990387098067338104571074047951958122735327568637234302289882376880375118176911641155516852071668614602859720359718853347544820886401985205286874898843062610395468079151271851602445655579476610940627940691499152227832958886525397641831183217124837304914877829545634708411013768073912517798913033275416827677988390222658819794975969558818262041135613978610618135124857444453587086192990838072125515654541159485452105976651948139255992456336921212900081932468364143698657391641937262809058523012335091486805420391655513704710999806699345565057398901986965442522423031395344179449893203697290686225918224146837556677058882297762817125835602399683579677035408869229535533707625599421578217485953479409744712467088504158545536864314877091368730447709154260983705464679688955226685502552915883851932213649327555980522040593155448896826370551519227520063642868373716206922780696416131756855920773272559491036615199648348699876071977031527870618283733007731509359793695219364445649400264421018121779680788237085081897897260365724029794132682873611403527196812022474521669687937059160184468803621114987627149235126549173323844741880197065329565922733694156189667927199387663104011378439681822217519181088271045698008405501167389313783512088128969516905433058640360930730138932674486761537357401781343681442400485589021581770632048066972105479375490461323409175114524893972631959492053434015491103256094002561767292208794140797164728036879607120219195777018007900681034852819070313527791549459858576289510028300013064155270708153485134917426303914891047002159894301824889804399747106812185427806565659801353587230619419248281506778566313198116210692405378284058734414983201330811397724775792444364886730379956946864549367191362417830712690552488639992329956575595101708402607085927241293894233761344504847248293978465578435648633106334968568712241056135006445075102451433659539854013686633177059238416499153400036780572675942703937599108295087048501674928901310793077720937306635597372115587348701789396269657260147639806298330491617527112777168386238953693995512948657333395598402123921390256967963223362368394157403511664953646818793247818802278883415044108013420603512891653735699887747152008352089968287719901457847496917991947126403722334405784146122497121246311000227538615756094018189685444188907972191892336782813232699846945258808591310243329447727214032537875877019940159870983602906146278670711968183550755931662630172956944091000631564261727769083559066868895868984568864309260792212181845660089985044815897751918227380134257959040293323555442555855416647327763565469958954853549478656363433276414400110842442852051768254737448991066882150393434389992372583068155713421437304905161964582430336675481817918737173863098178568660809288130913351486148420484206473307261245109046992948582423734635731261893628959162608793027989974788791272350915423475682831758506009786517271476226850009787311267352556234425378250377362682524555318493445200817851802171427618555783562972066609832254316252813757075822784288173296014279265703627207280772651600855774552555632155694288226574945341955567994803605511429862884045597313064263569785520121614514373909810830161476261414279750187543794083281469638052530297522350249213416573094156727654061456221019954187813483111039230788608013099890507010995056421385837766623037092748932162415881766914199407386326961601758047668575237080575393994862408820693775478119428355221427524199285900554792359994808981839498203226760594411609775771975886605572228709006429568252850510061056300193636825813536094663397162164010573868086954312716535992490490299986590477545055421540485744164259471957869522460561203828911073209481040793124572219289438539962490693149463920834975826229099665317431987674279970027508009888915770678298941969560800929901586871846569504764136491124243704377195820339002252463920343534663255381608117291980126978294564628490724518651767345542336573576369179491654167922779750780556432803799447430407479183544767627873915358595043545244612830588486464987975436194312757854875173140835157455001833363934435193222212303893863254515219328358082060511266638607632427602916045277982081137645649428839477085906013622428025672384711151512743641214655217455795057907274493042834708147492601624177821957516160639601990817477767459167946054481256154107409565381499872441632425426212529712171213991946846540125880911135891450774024239350927782633325009101631934976407620663974821292966708788584615266680251202392660877598737236045095248876598117974737810922739051264444946615717907104159527232765389258685726740998202978901254451724450246443528190317192854706930466560081995622493445132186923038113481834901661314796992289947889950909205804070412578004674759077782863506398209747426054371905916449772750642047307516615234246582223904206212435964248207819961211943834004385112188762369790688976111917669235143647037000631563523919752169578966842364701356691250549108059430675903729053358975581501476834676786126552868267982099273871318952384652313253755290342045970584870864245790627274320536948475853139352379362671280688227722541096768996808023696531992384297260999542855398747566804426383422481806528710837518437695030690755970207723159075415931667242484729322106681665744594820964988783204022282147796231812145338882979668179980122330471482193317368320716410018282689251423799761725726244326621211149678788521005085382668414036872992438401725034638983542786330711563760556769116249394817760030507589306191093369469204153308379574918240430957452307656713067579527448829707926556621615045875090748121706188861325441533622042734160255566919058761274907299844997153891182627255648852130970046988498357899922595286093667137563128781112847386893370924408273743723970607416685433004813095772834878041791196132765223446776707886005072746701044805675809051802522580095757036698490872544822791963624869026658273739990600280884911219885671138689815375438639456195814058344951716361969362385051474456755858763253591047605123748235422270731410405644072102404534675105314975765289307808114622104836258308305941419354226187971471442077652640226676355422991853874329416909048688588613238889925878820665401636737684221190762104831602963228923016383662945882067209477055167788240494484533026035110056425586277819680050882651591389988123599182902084142763832145078316970743421565061481083142065612886016065963578589865885653914779694101664152498640984231293370761222574201352707767717870316200147888378439428695196964605210381424331516334859025277177153630408268414956876379015143459106113529867033950248071270049827601341869849881156131963605690058125011121758836072885464615690360585048675615380723429365454701089604134600983478700059614696649860574358478924954785127405689624246491015708780097450865178050108520441191759964492370336730307483710196006673017060774307826753108525872948188625153622144110676196451424603765249764332980294111017238462312058184622774544145239443113903102202500045297687590695606304738446047366099230934783236209895591575066834774029242708671535334246371731078790817498677104896439570962330822921433390164121143526369880930816330680346071269078499566737518038530166231102030670172709987946227216704302871052462468316124549476732639878082084546834890596568381501158821805268770253585499601271206454054400928404195576759257058764750721336491772392625814825363686660615627923354436347005643228182672778415008763595585332512805671193168161091682935484952323635386088996921671751166308951479774755537896999023799950607506366471808583163823796253071683349514424825177709345218984534589614394630188298807544054567986351302984336661374303438885022048259306344748691580735383443992424100013962497407461876859437850750363548473554913541595002940190997261127704734629121629756783493585202769741235400591951899576625943714331962679885397612785608626885170867516523585255866770587698251139993336858418227391062496823362209339444630134323507928026800130526349177249357384249797700328336577769319851480278421097528346714810520360080366330043104786214231073166399422099352868371444266822074922718011988665776720807432653886161286311563165625846452073932455147357608954501168846299695260800224215072312110746988578201632572821887958070131978517714147406917225233753872612942940363050260500934681994945516129444959230741597997294860980539974752506173574157364991173569211899323284400187742052019931994754864008420399844423626752233866422761048178914512036697312871557612010071137263030899707429054329175419079728681812999181972081478482137503499556604471790241698328346606611928927652297843312545499643609999051701522030844670093575683569632991299774089428991054859585085565414470172002822520517391059078181998188305894540064263957994675836701604294659390615097972310758059067672929018809161918172397222622363210123647242552467460863701205178970850504278603764318022341663145918355433149463911428648172296352691528470355786784646873428254106654934558870325468099998099501574755269788388937094178185968522880088036448706080590166661814830366556816454839176661784938996554953274712398870846010863775832362712545739604806097305355267748935083874699534362235041593787468106855265428020331442086009466691762353195794440903361828536133013031637297688753090108135330948378976453755133789184553974412875714379185627849858348463277499774050756385965824964463748316342182624886512078359216571200672254122658270742896227678432175718520927626212239670167699061644580187726580592884710085519796605690231010649998390810942574585972859110093443750505334331616519427065571841737328755932878921512110239102070099802995158512078790698101453756825401569422285647099453227607261264650289769843424676085715873533355232137124641920822410558253531147525697662746828404513081400975246350801133531761826128175969116546076239558979664734077912599876213909619670930113861648579516810664200893699983397124026507242479371431621530945447364206209385241782058964557707934645481041680119116050979121865006055435701661875957522822446246859814125333623646087578740690900557583463576014143723812189763590704458789831696770030003369296030008649843125434671768191255247140338859795939314714440313597237111730578243431916590054973307609088718108341597517713210236015012266948878260900031136572533594725020952038562004512673014686678022016805676622017117385968457846905432087617675717425131016094057163123117898966607684366658902085000618853758883763208553374649451448992616835305019631750373411157528117936909073411226145420813174390441925579431907758434479559256701006538115138989562429712491764054709721465370902260431312724209437234988561274887548977791084315902668706595898788819509255782776501959326885268732987341339526605645373952444430257893894651357945005523338562569208104233902640509214248657864997668394035293564473072609000847160424909145650103489700372745125113290150615777337525019092761228452400337792483927300153636336851193544117519852910778279343241845797625083639127245200315941822892115511078897339812455171171036884894717848958927255149011909026332351549781492221522738480923195997882035044576694528422736713822473659597328441676355903298478579788151988430168806926131151663877566314868000528503836520701484790112856053878477208281515947181775694742420179019317536903341826125312213298309068396284360967099355482304519472591423146701700959450177740980908574648603948188421429975679544034576888384960674105117050428587210293919605992419694699301989273146544724118826504670424708965591948218365986149936837886570456320793741813823627882885735530884884790322498919109494337362639848321073488016277578302588136382245999065230855192364292705580622024948421443803132978617761805312404102998301106632820925389532779336842321213440523738820400276888899269442727658037468010850261940320284491962984590846095380782072169139870775629363925191522837762053217465942978640606667899835446069665328550039343117160017237556908516818950582322783336151568069843284318049723132987104452295483047059214780843539650652456298604088237297647911597683965790055013228850631720977429181765733442912169087655539908253423147304988430674463441355118113043496147300260455564026247737660724015377345076621333622791484370195969273634059525225399533537044124541919043604047909064691886955134335421449030880631582170831814901475754123093414366150663645749089563169343271314456972566053402966836562500792765091622098459360641771170350286862790071523350433117079712087571236128883927248942639566422029961510838846241289652983321388314744488879364843977921042117742385711896470516476154467864475967193359655984509107352584104883447457772171559322946686213549915615934488272164578854634692503866745474660364213203977811571282211034085034044608685293553758941337672758167945181214975435310965076601363628612764962080161038323436762958776557310962061013497585493330104297691070443160330147236127053633300638987999515174899973887463931186028286588600554390642978828978116803165506652638240412602752554377297110452659179479811749499831375699559971103801768447882634707703181830846938740349637006321364105419464605375148994043146072431661314936920990310310396458193538195368995985001612596557982179347900459316260984607741064037394586921825201707834072202554809046910005716625365596310387978228298941854136362416390029637678937627286394936068350137787472468621947340289489761512219763688836099717625537119907174778705445119014325674127244629648999260610924754028100755812898412940576218879093080885749481815360363341179095762379985429155556447763727894059285999848449392250630390533090022625337237409151576795168560821691466607784715282480175890154504503231345589044978779190455413767378798670203234269182289689364171441379233839107780037782188931079628837749828933800612824187925942103469925983770358950203544839307559707248168951175883831078567076404568732467297982995622670564719937010415256673878655246329435849554553135730442317952440588268910283204439736258144890839082538489910153083795411157258947819600477076569259899420051240559436985430370735973694030166189833752833462802846384869361550717236586597052811116379641375319496379538509585671430766722065085110093995320888095779362759468124196957309346323916290496527797596327486533859552366189540408364570615233798850775498496373313140070566450287622461445909121308738866954406616810969372909785148110002643348538767821845287283456911197529270285684936383430171030708248929603914032389451255398333287537919256815748038190567743865022487980353758780176413892049619535203092909028244375127418326708457624723677756327836494610426334824863806294008102402292426760747067749248478963543131748465798522832346947903837424649770699403153330530240375589916475958039831906606877045059125209702398591645706577047702703014422573061378082685184567582481031295836581152817735095844957190870909368891831870828009383230957038359866068297956540736900534961542501736281186890961575018569245465064383423175811151196079955573675430929010837042732365290998237876999755489752101960983220797204254422875446299998116839155792101769885066376504531959467800957508457103952239189467746794750009860044491614674378082237017269343408657186609055825176504136614161888877557053242826012196138222686180644499628222991358859582470109739044472498045298393372770036784284519945995960414315401680559034368520791476836496217034548024583075947024275396022536066065732215563955887109089004068864341998951154878629842359229788065276265250153700982282244586445902540498705660656135121512522126609093554622510411503011497878776705454132176847568243177671741849180469488917809645783939743395065012620304386650291127759043233555962769105382939864223611267040762501765518244987364609407521985827228542847762494025739599555356909207260152856346154465175170319063106199350303721458437943790304674374461908005570371501994516141155658231277851161742696110088377977322418181409713738916271547498825030646418341139761533709696535126961430393022667844378837293639010899739963749584587222873929688298213415893966184512092306237210169862144111646470204926969692739447450736530040993949610353380042301454805902909737856962952014816034413001657464308389303771408564769073776288706408552694966635658461089499597420012806134955429680700433212067225464838024719806567183883193012429103741246557277796189552858281890920420841734588107475747402231073966394708706290927005824452451176650732323034645992520104260994253500194855813460852031036336008432075495298119430108649689443444764073541950635562234500235981208398018551887256484003208130778822302538610451282642306798334459370689191285342973303152478753099998555011170491926757206545129264245320826841708837172715512741836940991296220183787291305843394397358111839635480382795439506427619721000048471772830765946527439628735844498462901095063246088531428931264993168685262447970248054654168282976837265552760519508050952948787002325492248929483054118878734617054466760805759076940813950933889643271550146354861503710403440144194866233572887392602735779556121409029746458403636311964273607161865530135179056500915665982193989691565194281857078818192634594146432436466202430587830253277304453849177978774628079660263395586052836229833058786074119421005101424485225874135245484163723487586857725591650720418785334208959539794603792995261889080004136854889284616628762402512695992942166718369934732676387487761510468747097158702200898980493874578135083481390131035092100754866848596124413400692695966447588771377746958356024325574987978824785397029327609383968786836001308818403173359137701812653436004510467972715269886915471848645654522977101061243509924594200585112520672972476750391472216032918631015248634891184857075993511392834542103169112534195026460436041597866589610530294274013134276597905164988245310781664605280328026558877336284260330589403439568983329397638963160226101011872037308271193245163088780434370927964545363303946704691623359582850119234996419459382297344330532564882844407342873359215198986034534488553254195797816561570778766031715079849974143723884097354119493538836860913323112401384683478492401670305807346077997114383742650624382225567830316369824926022761706446001407198193829422194730544402788534302415361190909807255687257216228236812755916437457783747279791475546759301094995492735895526226005095076568243562283430667958189242737139736925081728272743173954497183262410295064190767862246015885054342713881447449961445028903832968081549746266979838319572187373561256342500208392270571349073899429129042520552979548813902008703102799067917876276272775676170240767846649659904846437274947718433236938273709189285140875176223373751352984115921657942620456785657662970568174952607888011839074708259368984204779367794454111538334654584105624785296491957272972983723543875524818188628100555487809123644033956540205328030574267631001241162965029861337712163244438933030232491107311406186744935134035588043053921969999913149633790715541208888704346853721708844167560047549989414622812575665911573727140455113232714343102446624438147868005936395113990112816371182772835954252854711069138908141082217693333547697978484741105902205234985533377187829154725183182309083094123989163073235407380421786871129182083743446382644376372817887914418728086214843543938585983333169920847895329650981178295342835720373829821686486381743009975964539106927969994438750782579758109195996400805114648870450471134295561041879394692329717155550634465396127614130572155692162819453647803383230281180879904871867278318954843888840208936222627632361340205006822407519531054824730213773353554390630565119376141323741137554913169279751653780471080296734394763106645248651927933006399518467024131048263343931143493690805925911349640203230414121122371475475964764412195933453890602513565693730113867823606837526539405192386635782706951004755984203910816364316392238477432692252808417236763166998782014695560546164660086070831318153486410920513726500975827021277634736525937305887498419244994665546872465183074640808867232433264041449550233178826653835410858733370684054361783501931778582014872048564268387524378576230596495785651157425972798764663768392071859788480901574267988799476179791198852615848120821973669740046325727503490868095327283278533562820731741471842782557179838592026190587502930251971985643982344297683931990175735815890253879995191400472812691737483243190711242145092593961237434829723405139282819254131133950367645242620212181218667921730234721177260948820341402392063863783736066408593870464100258337441711546203941733514114289693677263444860980386865088325813926396410215660716963116842609969091781097921743277114614822989379444219070071771081530103131795286155494126596247165098092534472286218693324793788411940383200367420442703020500824356597190195058621141797579753330270921992733857678937557060189756465256218505704956520407331572822850602256143606957960279882021298733234267030368667978727250690713288903491505074552860655919204869799555799020246394442374220463784082582502086327808275545971163136087781237689436642404952182334544773991355206775093260425861080176055086575406818276116311541112714999181172587992321633265181923972406751256914907779030082823540204286179389867437948323462748059776436135353781404848415819016066802751363318068505186533929473227161380686987852564911415319150394507965442755473621013126370974998215224047164161160499596763403178785123953476746813818173783426011052888124945851495033709442272484320368550300692243430190700128900104481707730199687557208817464557762139998406150022785675994153885786236814125771762916931516214590131846945817322228520220882350677681962056878149378867270166128188162830744308819701003875220040544080234152956192602900076686864074327876357840502877156363569086162392372857578104736158974755202839685070097531805075384596785375560236757023045940898479445153557580475665060688473661168123588556946504443057598950678172678666596282607326019477421424600693825326294598360935916196175756470327441209521691622754952749213769153444323411004620505380073561690630951810102201776408924261121072181781551144334673901340669131805536742484624350729391586521792139412813321907608436115842781972285311249670745885183847441780301030134186197690877939305150435570182481428935220125192378455563402429068244291183975231906991997027406545816976809873014647342214827810551117931374795556259022439897388741449422482608731119401416598285582947264868941897255431700098973817660533196548920920638412782257611902033386508307664392035463166663366889799440862921887024938551760939861262421082502282548503258569747253873310624085446819650282449348131352209069685413650345774817015128593817889168120366717892521808946084616594145198421072020928496576698298341710911366268216000275496558106175090237276839483995538596709856355212711703618908797127941024670076996205369596651718872202640073946948899552454964596049056102617690165461550538987911518294606685286742884954132166543697774752836394692423073528055650428253865390998774146994593550833867583149768690236679235048200483348237412778035148532778672576439338631521720095177417381076436001243007972777308730698069976489409764523254423988317646970683315503070711104455663514929792344657537039344397219481046259510531833850144897041532248193907003251953896690347912724343056724092678771217544333195717357983807953144727952285585789335541107138833444407988905204181244914773889998259526605321285427867708832849137639009971011096561094375497023137518423592507619958877224280805365520318937833973446819046074533428450758902826216052189353239765289231256565717086423566845815597395973044383095538516385589675491506899673202488875765602077505319168198023270992611001240703895036834037874009622816736235180100665767451940770779444342667978369948234279048453163966020205716667638268126669701852424924348396340426195979014662161174112982728058776075970416224045237237835045491249192350579781083572237263961567316044252977088555895276835882755008578959862721433309054997233609154762888423917761944388179951819583289782429454769751780866253130933754231663444483643827012837129812587132919413953236267769404679041370122048514910228240707357994505948032924744840070492769371497251996800027220868581698046863673137817031391783092466726829988443266575156753276633720538271963703439312512497610744014701310622390734319044512816843655549140078363822132194008574971889312090235859601218971897524487476446159126390412009413017868275803590119942119993499615710342485409659739091301453158279799975378594830618221956893931823570936119925810263177424641410938437762871229598067458435102107069772233531612316575272750778319924354220443705796251204765137747021250155862968882643206391585893995026638935340750366561322032566362551178863181366251256392860259961632761491643105815095798392128351299493790010877618097958781064265689680005425959984874486605670103502630474677583856575886130065407060621606468939474356613431102759335756559283523470904119061629478858088838648374382193167632331844224864637517739234703290107868608771304900634315639371032314428290500590716172252427493371595517506267962843853800123085738506321312366456576499330605505592239104409186181390046604270032870263456382393207707648998064072792075753421909600212184270529081804809080370927394936494888685140362382005526299225352869321757231653684264722623354676303550692536522873182545980228141102398354480710319333870323227910489209602244480904656227267337365870293551545514433217862769602916988387481481885251278267263575770534600326439375951751736534752242600543266025164228291861673475037171689011254195058624715805362474912844981193533191807141918177428125372763226566180578866471481259593533710313806936219233184226001437851287703628088275179895878220220877846090395504026192724810529870886992416772950028437638872909191657447652152929356300712648656979938333394118549118874448482238466620867089122936290826822158902498760343962076710259501551890329337772762124687920279961741334496456883249826495463535150333296079658754744065923385882801297607650252475222690268463628893544107059027942780970715169457715327832992246806832165958193505160686723269498645357430456288853533930275011969624185091443262411553074491249091323257161601852570570397897394358198660103057774187888673643513127824825880469598004445128440393511235094871955248507552068446146640156933637443368140989649594902782592586301105336488113471709117884647275192280030028643887956941840178885745159122941867962952153256122307547516213874999700082042869268537129614785007209933606242630358363527994659271911440208580276233843702894233353291098504352224255250088335279891786311103879773446610586857927748601391285724543049014631979797951243419782503126390544776475915992219392986070036247212179587073797726990194769442829069505522728581530385444823115686259628923738191747516965561481561906366262106965832026274974972303553305235440504434163587412239454064772341238521636338195148489527619725160052666590706560274890425171645379307536242229724341422071630411705820685386209449266781600987846854108883896444098834829831334886477679132635782104374290123406280312162556371582737604059465542801178745598267567640611365361655848750191234508763625457319804424338891096139962280475134839234592287267806362905652447072050439197655177548533936506198783595609607057658061700292929977180792385608844858477873708169081067606181895920116081601468623220470250673604062930279335611250630563636191313422860637080767172609672635914214893895847592903195450562460553058942796540946238566841302083226921781613393664450420045757245572152896797872217444681797585156020713822258388796427979935751464354498309430612087672176048051407119231560984000447555545834062662221212139985445951332642448067854216668495299920464085893687089572832991868153923407701358204752463746317403200741867416742284281040505070833339144083060731301315286786047121992177489225591522359987898169963384748697812373514489928956950830131904412424536914047221289017163464787813013854472782019306162787915805059327590173873249501629671689252405186154462171916930988595973707980658063553016668796763379806041373722785517955116893742051762197968161882534494404321906272961508442077261274205331843731249891501013420025318519731641060217696228072656949097716347903677773546664804773576014817264077193146241112386099189579255988742244159405816260749613442768540760113700001352230320586052361881409204697981233939321473352251626167206144899865051394234075725049872508012125386126358480191859240659502080129390383183958916772171610148732061056068475641761231483177744772832839156528900377083317970327999265495452695181851142763000657607512604885058448211664012520746256615154416718975237745345463890101157124014370420298749980961092035823705456488538319521321120549968961850104850444688859091657701776681330648938302148540771588789690935524193053267454104065700498118415184293039628603645250528825081769643508340946705201467465757688384512580501346516954664185712772901238218239092565943741064368296100220364578218571524025694395973401811086747358008178938805706832014126023359014202229682091435180953035693996465182601634754997159088896164866050541814771097305791193482905702231525981522397919040840922207188609529525313210710093759341316904973757975957814921827631290088234319952173644794579730135579758806660613912761522507992206811022605375919652271440716881979837385362469167530793283271349408330511162317594402783920484311450503818634681504609725264077965820426460818466407273054277580367130105663362316237091249398989583610788995258058275658673247074021961824949748622781011148584955829843680222002395316337488001639634317348294776694035000495264363111020326946586865441240632832911672334818591110633059108638192912410074234194541173220150986638344523719466379895627896830379512917325996275685798434652846655203418540440081529319001130228396795044168743765817202270301744327708281493742661313836508411088357704063115424811046833650168678495291994217945436297803165242676200826271159422310058622076131507372037068349593165016444938545456161658863977407609744149669267555842541875041870042774961746796809919827875115084102867708959262937081027546229160028932390544396947012521341051835452724782367419026569446806740407048544456246378122730944887081147660013055397669391736762141845447347282712228650889699186267460562724090384362652530346305735955053577146951435189578819749626576174688634550864490125919311509587131074030246340554667666966076264796779651856543677863130184635413510001582502915760239556959685644108797431624919015407563091886952082035823388080848441729375143224341602764342427377049456063408579978625945525485206687808646067088198882266238941876981786553837032320148232258289808293248904200984351519009744818872228169649433774207525841679126857887165764028568822786985925821035300172316219971062354610473011059245282745073089546835244286357299627952638970914519349501767202082234873706786495409694539130216433417121814997870914833009627756228013242779408063911054817128251241873800035338877903351225544389588676548362307811963421920174603523152936897955737263531100446429812241068791917189236683083183330599716921204439251899381789213113428896797911105483350131676998392855086195581272198837916386738313757509343460279602264952919490714076999467817016897263343086623129411199510678177390530262382693289719373535729312028212677774841381799987711041615097432638943954429260401043952509631575110154737469363218682475005761871871953829406135880453887619785179573143158645863836157656432259443065471077820047677953695362706251408328964901567020545954998501600389004419799080556220736045207458032487503146941368348111557632939330716025922733120672361731609063677319489299643254168929197055583562013442738486352729535727394109561682820742493395763152244369307607451677017122416189489567188378252232390673424303554468768869882484839923269705368348889731423577370671465100730949773509731261602329098432201594398869899353177553903570273733072814334228088122751317338560858290969086531951518621909650227639070682343330735366995661738094556399545355930104694571811352144973648188500269899411902588804423601199211687388944452332512646101505762827225697431983632643979937436993125764303844825842815508084314377818654520737991005627732300582786093401452613796015091487903983562147296787099638263632711800000074906011048292997846850991660782935405451751961139678401287588474138200948218231140934683810021698967797383747301683782811102038876826544932363228023803250421069680547063230596414059454221644250486651417649482314510236118763874328922789992514358227551953166362144688298069262101655941111153421263206234697229183272288276007784635668245418721473528191427552751376139561767769917329952283307617573527535270933068354452782238776524519357579862197648858563809291809514797675662086412350939429052322264789361540611975854047611526958553720140637423813295218108570306058334141694030846365051922925162573166491415826767923767037338079354784552305932453072587510507722644137128380254089489296923217079611591332274421025292301852920718522784052525859568990043426163771843265797616718528527450303905420545857722556548117944031191441083254886706646531746064309779699817188084291891971905729071698754137006905991467474765607198746127900034956663221203014977791716770849254460995203760168315071406848487283813015244144000640533952031224361962945846305666983053943027566024654605278126326352218160315944875101244353393579806225111235568328972666017848321983770083790145412652124981193549941879929911427779277563060792839982497008787671844031072929477597414837053797950086676338703346592479498462111284765401506104624245227442678693413424186405831648430303068727956722727260651048248612697496130403401494682799546334989563519989758297887194045183126682266845901368881165662430180080930183402787534532453634884886501810631304866283561237427649114223091778169199473292937059099845243699926755770034596169075330513290972068606550484814711924577387862156446868243288250581215661727153644094269521961056027669414533406602366438609602301043493161291634888863201028095926697648140004097104054036585323562431205362291012138457928853168707924490530407888357562467738478917944624273012074066656578329639807460324398510252718138253515567933760625378125740856821480538764618282799107159749958891537618878409452114063853961991403867194317414062772616093887136044774482022777296018164235473276127970950779400897829064623039952999704129019344363037301777447774542803011718414424227690345912325326317720479160431688178701944076214502138779970273311694874322282970029861842449551809533583867402697234903146264413737196943397232629366858170927117295082651270749707853835555554874400615879891668295118917644383688867462812878300499530531058598000886732695403378231372609095741927347577994506997168992127639101388458398169611563816832234810032614782170003543807409207261566878253302697581784866622292738955385625183634093391301549570999052182848857076541140869339261115962855920735788861537330114001313829423279895712170811676083577852264292412966807875579089999962891770251606063057173626078071067024131053176325090196555312722531024946405260841595020149257606090514629098777123403661720602123699104054726919608098424605832734398837777541173385977587752264460814900033026877463811835724564447253135562821719568448841684913932355739641335385380174857517850059521724247034375945251602863167532133735874102860438426755530153126374598617172640192405829955946098334800671155767613132970682572765110795034230203743465277747049289092396295606469934139089624330763348740746418749867857180191805818877068572563816589723189482570320908661646061565750826118690811943254738593481487666805829890415195620601329144601994422931156344537906299720418148205260000279075374160510650076362637769988708576617599266295163024343973749291751704115448207987470313821330351862943332864842758576879349767252112426268040923422006038058293150861627438846319000626939403187376725984587923993807633493978052819735364227827757484567189146946129144914326950641638352869731804833900132325356176421569634769580784008391886179877041023064385682155438188219893897048080330718275735772062567381954558228587269836385218473934114629992033969162183940603938589929835612363494003331091055230377809160413022783815882640191717121452360832551212613978611153351549099255001908386621684667815298151524051240951727949770496234789486597061488971248132096434940562398772739157498041317097345125558198605204732256563146301396011980457218839085152291458262905494965082284857865723922671461754998996829974317645016728313318581094440010477629824697875185569176729400588520631115496358281377333100913266950678108222481911469577019115989620693183909686019157883214533664799564357562912723289691703686716552654569366415286562138275529434552149598978989331942638882130199248925689527167123314524406492791756371391874978152384758554690655875202524072795195801840064857241326528573079875671279120658717655593449862261056345784745610217347292127125924960392555592806706274615846144442366314130779605891491754453212625878061795261146453516590960277447408875424501873240748434062017429510234113881987097411267030043081459965438454349873046593730486054176388539094359775477049771267801725192584372196178496661134448360726177189646536382894988627502546878030128126126054276880032772211179329655173946247217189163795753986820420577367077594841842358858511311449182682675613887498817459550758486099068999041198581007491510999185976299215678850625278303753063251406288758895492554310083114755828281893588429277388787415250359742560160478510927414041544410179301976937006160364633514590291283045631421001091347861007950123246343817589396064143977634056018587232916256476594026025671946566123039928608688893193769918405607127024715246745620259129225244041063195709048888825249105896187787571748192987161848030368757966026745908463033896971086797302857435731169209071120468182501224137908882680428660055302547863884284142322752753777262807327246348329689370916842436513755848110282404006624864772117593862466174759880899707462584097653668525496242189975632511476672612192600778148487716939362276408364436208922532676032579200410813668894332653938616054960494225982485001223168457581672083698971282268357390766420570064489738212000267645576722919932430430300536157658684672575001406214675480426365524645132585325472994588350076515227374326305062868226832629790356675692606481543767599037298032643189561376224972844072051785914774579191692772373969132013054098435410204832583585014038980906465926478144028835613097564631778627833623101636855611329424209156958276475192914189917777034444241390191874500021472353213030846647391781657968329013856180347490815938724647585986471021879572876059376807320885674978451671548919728070926373047823351176632932344109795807701438298009779926964584744927730366626671052473855042961141943269364545367732088773685753294921318418261355968508188609910855418361123498625983378050772070660351064380469984558380069745461378034320159533729871684505062348991605966791565596249710674414922138308639794915566666802636308587053387832785276558206865482524401545111521006948703228660078702135947203389231564532855326051295670196833130415404469625484832638518607963665290008976052370091496636608110313862488067210693257498648842324253259084564009594049025023537134719906410790947952011800054236136187008074602899500931901184701703640064493975797848496183262396631619073527338186102672177408681253717459310265936026104007496721535603320509638958685699726995940644066733126425159909012509493534326504101448744965407385131703126917158598295477776377165593252929263094726478310984243625510335750496468043252475654574967520243140889889286329560633168039022143050149880040750828977604668844518277050259045787805771626893266385321626131540700935808016906102091263364939333332397055684497931788992799927264455975031387272680493393678036108606506445262374019892602120167952765033783353895505969976985064283205626438497196834694854978663802583667123710156661740710869321800634582390666763533963710106616900447614133007885142359504319377798595882498000319287743325240146337562768244226777302192793016490097913693307336603085714129315462650030432406599778917199688611713428128389351882475422488072155141047511374777398383889311484299436331050276318418606173296140329401694882234092386884367966997753255548630113421279971385076854801630406521778852131071445738221608232390336052020870452012312710725277769333062396392220165800378630696221197073385697958524832487590500670020962953397517303795581013508868794791004152235810857508103293544374053623021841508848366641578794165822939358684802847279211273171709202944798278337793333603245089967996219614666724924661867048571100582101775783215192080027069695090868399551650643566735625324147761880966433496097827630877866896675487359745739274355548532185377414576491493560343898821247945409907805279374502627756260121646764076020993290146615504066294230850143291924124487542105903160260780621578712946590130496044801538143287682286878329768052941544676616090157020366212736342272386448152544169247264956061013444509455805748664483473905286701191513281742651535887714191263850647663448637720439357132684303745202820418899579418546530045752411785834929822499297018802690693716092391484582803620474488129131173535133776786255370494252365880275385150330539832775862834686469176776902926288579974033976958047158860733977190846192848082598301214616796209180135327362744620368076884645314127244689479017165552939890108835686277446608066814861247738690141692256668367504976129697545491684579585946238498785631964269209334405678640444053479294535166608147032467186429439447315616633749964817237975083680149832272798526893995605297645583777357194012297099748478508222863211738532088107635153801928665354957288857366656552150371417846486746182776414179097043078557193916845982906897071181384152692919526193093619275650210728637171307215803741340024970882676080560803019061226773592733075676255509035815031027687800620876765574265639176095698868657691746079720662025969051698179240564860893893739925997755199230343322891620865116558426758657170707239406612564958121556957898076740565823711182394107990682448255746001624294659270000760691951342867464424722243797889898758123195278411170142590468934266613772037130182144358227157990593361268300986121317260336956413946095120990680142402438144902874311351299177606803334296875925153570704632953541957572903023339036136579502727832059882926081744290381188476891546089434632980659739000495073051907756675288399936257651471021872411653415798226742897986928766562421774071876948233820118245613229119600000676641909620265262034510544690731410539745969064424655366324489565466387238479735652141363902910502223776566023656204431902584938586874030811511509888960344270957510398556642768881890352428739143541585360458896623504670374232801137000559935919911455186663570318223294585341759144155829920369027822558698793400863325340413682406511588235006598989575621955508340485333280637371936026683745242816019709532700958615914547054134941660470618953095763497553490373989859192200052903578442447063354777432245019973582964256519836666656007034887169483202080608854938891491371396401320378117599915562987749863828704056640562328019008699793964176254601993790233962025877731029877340882594547806468748196901686216307550361927002776885452812815389044721447557720391373213570117816158032571897318494754912189144761937471777088719952330358073873851077180315161124423763797417915788366675911307416462104561630426982707602206703407300887369389013337166388648475771182127292281382292615822990623791868199717338735868846072831325395072398972960739333595418759994490969715028717537802109148501426623595089621422014875795352578750559028149946761526875392592295641987734541761114808060678927287683566908795882591936501263212549795420259692564050798026197046001415512041631702317164316985567608489871342866833081613575004049380388657522854853744552793965782765593813325579372330357185300512257590631783188648839618601503337550722989588132186305293389711921199758515239847315587203312930847109840318476102981000612011651607438921477591053068996548707045040102174315086117952513003903056728578866312057674796021675035390625796367431935716913212754478121326424462367540985810008609598095790304792434976481600961539590349303809022420851379136814894502399828040912064962661052438261090032105695853774061466555541608864599776051120002945642564004985135148742760861855856442353881184583757254650473610380380598878604814864180521638664934950497166065138069360815849385959096728485794069384049953711934981285377271499956627451375457530070615111669564185800133493520316926728991611355022957714696898335042168012203928104339839295125954412261956814019093292147266422338471983001381504483247054443798580848913784660467848284698088205289577364245416264661863905186934429167438711843473003187929992309285920643800423701912991505150729234852777460586823100253483195216148250824078897266175533428211950438889995782784386638072364687289893618904601778369511375129880441210354308487791964029534511019749761094546997828577643484642292849187786932022536402535876139734957894930596397912621150936780379906297964835747990298594190446941659565286042996478171980434909032840604180889668530975780120107645846571994984383321924503758145024089236601615021448754266108387956816791411544886092361191229080150163869232571835784007625817599673993654010102007682937222467875480045513480406349627607917618333124410506810250476789006625653009119870800791136940721455737695622755768467591290621860450461120436353575997271543762286409537194937923917750343146450803084290058384020908646650102051108721957671590073917283869682145439873789078601968976958943178619400340809738235956481358252335867941535594171600839719119991930440259818336744360324190839349839509260525958223896346421564110665638950051417988550020030402999523909439710798077888883552106235004293436604250855789365303815891117748546256562766448514438563008129942592220168655148655886334407186418029740530143452115899760910291251842578123491957236152187924377923756522118878820582315135447634526529134045229237599368649770280848024295054038307878901492045629453896451429998202350491032897434841055158142696140682707922430865309134566031888365898308671133851698879731423635351979317067939758805230904645147507636903722180594572349745895525485580756253774275490107255055621752871598491267242084680328613114530318207756230542147266158623335225463067364568080553762754921972768213428088298853246640858853067652625371295533000206933948752302832404239617810381166405148330906117016278626021035225473339560603820501125626273392946258712488006403271678681134394287555667902534735662826585621294865135966554018820604406292759867771800023990642083421373778800231981250280074758006428107320606578778818009351614596710364817500647010574191630433121683442016211051466448094411930158040947677930646156446729670577558289392907101563294260764985046000212627330779970424828765646406841891255948088215626867416711455327474078518660294016155368313078244586950949141891762055304011247206072773911523030207894120762154654999308324525462208356930657358378683923083810337575412964509875688792354902219861495598260276692664820297383454877982699851663589566586849390905249669424272124655949291128238989423939908746792547543227177325854121240858299346833646512147032550527675850010458222548322334307560970762729494394438175519032413674461105716792082750140883470646971245033020041997885058315490527547320145001063837717784121341790147413796840154854936291135492971011135139870327357962616972079833441675030587939279386606068327375870649151559313589469568083273969287364251361063722432709691508356456450531049948923768941333994541813690281962967188116931915245705583735113738742827120869397171637181199201532898264118155359203234456052124974266217110757492112789427813811985601860178867852489672087293948255855870508657667561733800234924071755310383432494442435189172152163968945143605272005903357386366616229429652811761998937423473888463290190582350663651723999209996176191471410389513501444854279068484411078634546408495184484254157163741181379997383607394291254866500156404827359250998032261602112607363413168031140031367942501166697002180455296030341096621641879110506110650702874583051825060503196355026794478386555851357603456429568655917310829350601659752066019724397824431987627301829143849332643417284937108963881250387298578334209772685280970654117320211138369814791099491602595571601757589143923987511282503361941020074864842996583609125993508878691350448970480557053262794693204082777478768541912707219083700554584415917357837905500483215526821234166836210130220357973906140044780549922694618519767822120291811924232417676458724903874030625331433446013056382714678032205469590334054021145416080387749886427327943787242021250346669602382493567755205122065836997024059299961737072489906158426608179294564121058402732732883785286691452010098330466848772813783789665321470192157205718716278544572465932102806493633614312441821532462922554270795606004916420317880819414374312387773469210451206298026625107600054219763252160322203950920545119171652120271122935417684265123449644094780615308288476073023771293820612019003441286680662639563004941631486299330415774212587025214371908619360319425418301055291650659179755465782940291291382944253438067729364021184203926597741674643676954899996104293847343092427617632183611641911963989380756847406426199682579793876307426807224912985656928739762552838501221800714145113570698747914058738355318427977984251985157552738138983634146542398189016122042982223248404049585758879775757667247279514146229470198854254968141514545459065423137962012947594199701402355160071620116814860752553820870462087464266169317436632634527207007672116347361711660343841086663338502246686850884514169316791712680515685425258637234032908881137524587520027051727884243211031400093733683728703480886739780993459599947850936832206763447373468633992232903603464280207346585345604627509624181245966259800287649639699720926212858618299096995421034983614807383533277269710238569825108155775118945997611130441888975501176063088760779493997145189164433715976271677936982430946242620202520959604335495662951796913044847906812045016938230217457264405217052420618513158380077851833372519787181926960178796069815208337409967201892625073175961999550430947021273795642091340969918829509804100006528807777365354218639296291522257084553036863569860962993519864988895580633460319787487829792231066730481929706170745172425261583999526351545505771496602148488355336695993619946504261565100099366580816963542783746257629554160844619338427947531063012243139917675507985228320691498716054176268519493588878481984709040035625594952080458527268964201939398824704403313253370102632783169802339194460352375370444332200702668034000143073192629947684756468870415330663669479463036998955493876380467864222948823077300189450470641292389543547662925384024255949843172689560495916558450802136028742091754098491501638506727086355850208339745526019414826738905092589570401557515119171026715500112729992503849165822536740051783840152351888473591222410358787524362826073003248791010585894723690099653723442962000951463666754313706026443301691349727181751203416987137006000192611885566741253290482171465167677636489443713666562894367983425297864380595276411581062248822058357209517117675039236954045173432768533364872255445360596555211822056512946821157791317745966721043485723868823829872251467661614739307381775197313509514097110390169689371806653295522569358492827748614024235766267475074679769879053970408742571874103741527654740458951411304807830741040101801211694074556829861110340620131569195486373954598499257523744035761960659936749108697855267891820493624908233390443663965594400498587277649705685045497677059978430935658548878540127792119634903298171064383550766658388361995145734119337806344038100318449526643470933769688507336755426154045445509933268582233938072817811688202403236111031613566524813373307840752780667805647888269872912162221486162789392092743003853129857489997671286164076856290076014456117721564833803214610483876827003009012178952498911890811440605603963401738254991187045711443587350341932939997162888364012235106954949222820287969453337914120304777020180604724628647105959712123906819595459568869976079784825031796963516059428956155566672337071781873266261895041136288784455517670543985564093712562918550797890243396270372341109156141796194104876946551209052814697276560350026290930220486125022749671837503867437735719243662729675304947459203793926847715832309987260645002671223762952960563702336583422346515095315702427460761710283420362236669281449769834684288010298539598444728713384315358627443346529782203242587083259495725756949159757920700741558789811887964782483246524243053418738116632146778249503474934522433534801068119570869767900688012847460554731690964372873178271145544621856081302362427501034993363265044838563141197499183415566913077782545152982028951809853785174953090806721569518281038305954959200541973020818911931184065900780229764505236395300035437151648535039979240400393915998244615466528373939413152376594072796286697449417769682476576725240972867511876969148775507701734830854677012064182261710730571481355478118283413395890735679436090999200426907112266624116839439267519297344311170433458390647739869090469908330354249104480818588879711499089516920344585408433155445826397371179786747328578350863190426650208746261033206526780386586172732254477279818848392478286927066675286031304712516374960496102646688948686144348624440485093578192834908383215330214617321464627524308424528595542813181137307219135023120660393085993871060612426890664451490568994202448255718349231289701352865595993061006628126407821042910428976656928643869402828313073998805604609756196749664009735591064782519911361044466212367029539069204383714622601346921614890206734085574921226158802845139697956840392227484260798333033199261747662340251609499791566352582852055306357509896920302284885214637127723945689401303646897884429467228051622846875755080180362538102580515409643957158739312482659896100132158974503839578301456905997437029799417096178396801743105507513166247969406175635686746839889889854257828311087413861578207218757135860626903344867971903074445380827616589216178371037133737363014367377131289211885213665065892222589227798495652290919994132411967685608690182854541976177363655711447072240098667530531199654305966817565891087004959749375400001547993654349579699266225671501017724500137807961485570615932280368034404783887192112451318540916926713016646567234986114659707074990141725817014663110540337243758465358439251559960536706346591802329356091271687927468423226401417863721954426208999912676432312635335296381900073624172664494899518428111825365936488599160165909375228872892865084589984446139629484380490687284045778152144682480408094956973027272968853490899098023780091891033950386581848385638460896555554370836489302881393834720997515314663396654871429637529942393722959441259678001095976316915143129102782883761002736399404749412287426867234403520965957264450222539964773022141281823660970173446041525726357117475455255970365947324635381926308168382616151003577894241558012633030811628052467617142619234519057447602630422368023944835996851626878830755556929153300712300315729514610514159705544473738823915674453541976106906826100401762572773659869755776798563255426375288200340767160080422680557170525123536236104942134433704427689516821699881494510609030920467889276844751832620643707216253474294919831910356721382671502356615897147886196556894323115930573164530821725020533632360255698824044979306271090375462429430487673099827521101867292749686136379270369271444581924597237174905335308765258107632274142942257671511502995952928099272370964560736626376386416207678447282435743403530270501983791929456928076396396448745187371443387841731616856415277815396245473504884742062565135327591010815470987227639340170188869843668355110208817783565748275960727288520535941484885044775338204267065355692701698092484022773528931128952392349388122351048264714189959031190786473931347049656430955968667513894145294552344472820369741349088402287253264934293869790569434370836214998228334035875056710606061216447980288477839598570847812639985733720199378173329591840104356862531532875977574761159329335182211297906044274591124497789926230705511378562104031702601122816904133611928261737613837143897640274363505034969825994523003316695433401858799712219420750757579418836864553156562800531503492361753420281228293742413907941828191455544587388769579509291173808362927904307374210928408907076898370521460714744999144403527170141302536430785938702377116781684744080241503345996433638070613860878889448299453149186647861330578961939351703899917776127312095635718585390746808103241608639408845718000091933423079243022715318819937952634430151330860662357007804755515229809163493730290657967445875344412041536455737723006243267327197872864639065863840968040012838330398119814739378145617010274651907766956108079468359399388096417240059420237559181083441141675089882973160534078908199019166337573986834527462470593217444606438466005862214854124945674979110132117391726580120921715143602580009335060839530381288904362571986551081258258670084060969732963333631577082051395468162432544330379849574490161004121518915131267080926713332664389128724454229035832912006892099600120513847631933320748588133352656729601099637678647450591016203612742226428058108855924798108259379694110940031595635432866578793429624044574646562084818035607193549920332818596056557649034878738821590259590519513889863901067282938532988427904438568487582474390209663056590352165162026473703575019352830095541013721749702936963778152473691958422417353835793804292600551445271279079941071570915614823595254576851772057610960801915430367861283809374139336465128363707032237069985590746281323788635424788834736695434998643126043702128632948117576164475102752455316924228753302822958867309904121220293673171638513717614928973287438992017085827293905158989135073762283641127294865397462033216051533085132113388205681065964858257895172207429266401321670868367134070394304319416075633122133359816992978342967620480999723750086939053307503145981418371382532739599470965851247070708754071006321015834834469069360319508849309731665520418768972915215399003191323114969323981282127000839997261888767065226335310674915279331380899811743865504209338884076215829139328351735032642108645426309773528124357337145485538601019692224139403899156415081051054993625268860548220656551825163542716977030932102022237589976855523178919523631423878530962921098063365998300436717212358905271950834537894669055412594874003016229902292878659398724590164914031268270543853961959908190429707737480332740191075985815309119473495083426069038301242063747581624725942973463740656544527445530801174881651271475927287883349352198597609245342551019153649470440218081477839996681568015904316573631560787290126635340664832636078393590126122894582697235724017251843929984983622346331506647690064057529195010221302684112867243016216000835624538772223843115234219742538746844464061061720967113164020741540589522093326138779622958687934509422296320138109787709781941055176145235782994489321612800434618905245146861510789713386880121172707437983513605166811657008931286733753263288490822564803095047192939986322124700008250222568916935968345984100154041968196267057510188105481595778527149582682796626150311696671530934740994014912313521915283339201466396264655134974782870132775181230761587724456156539007162031329289715054203231244110053795351239615944332678351070813860555269867937968590320664400286131076768456288393388028838336661486972248083809680718064898508087899930893567386805335762491453471810201752532548837606512963433850754887862083405220571445108799102979820377858878855751429524916913228400735651971426661065611479696176461190068973772828121572202353279642604507433553133973666017301420262690760661715485628272980800897669564968690456228359300232496970945937704053231579628633140286442931337075280132790416043370318244491909821984134464251527992343744848853435095730301706377734656930454267913330026426279536408210176955836099601473760596725387888828820721801219522732401143398979020228991025045763581394919094792157481979014008485933329092280532196070848173132290647162451571301705712073513565704316367936999796656875320026155792599808710300515266099573323222013284838380456661675544193239267513930957507274512610749491883236611508570676109229811525884860061863943972637007536348729561447216151121928502487417716509895808733600273041579055663748085209064939918686699392720078872437263711402894566305429026735077328836262685775855367095458811539448712118429458424343043496053347843150794225052089158534170820785614300281318906381585937188297441337366471017326534865954017072447326994578937241332712951369240760837478970194650810019984116920333554621241152644588141660198045557380641241208507234010556665071791498753077786413523607973726316181306267276713951919129560065146997097470366483286436489047586928187642178893149675899101414326385393218817581194731865480906147049124610370896335486102465496511801977062218152376239862766798230600265104725814651716156772347913746648225701141354804089845859738914793897122675179871353632334447006034630161520904439858486065523343101948773057121778441995452724887408732059245889420748667731881247592027260229110500954649804393491837369365612361075821033376218046024734847876883384361750358381913938167908094759303888014097893805296689683286361813414863870786172594650527329684451256598775034470369913481752882732498659077604832533296984350966693056324262097560357861295148221614607767230737960490436920990976900513579144234638005177982516962594981740080772278428561745649559205651665671053197047020462135857733009331921543773976567210406494313315827657541797804783918701741562599525431754271985883403238773636466020578436605341582627556401570249893374464427765406633038240076519853903871809995222739600266574947407210086782297330718921495788000101824629928546522253339840551663398103183820767990822959359610508439861621717025576448945187485733521646090773565084622691384137869523180750486635099214292090319413209200229304204790848079417070868215907305124346085880853664918567117311515053688748444005799305628363409550019743638159868410949023723054403308334716004062526737460229892064416814861270285743420761645610471008987209053480699814728331908118430387070222903919650375826099113029395242232579524373078741946345939940566223629913240956514542786798202085183633593287349152552286512318247717957175926894901763546679178467995010188764557628029948152657869223537634705685836785370028780920481329882182946567968404274861252675618972425258389842706157479667340508328721235319081362212195149447877103357125866133107354447796801875756109039125761073639126585913281706086169396783893664251975865383248655342138899284185095325788519532710956630111638044275454260381900372176435178320370371088211491714509744630146482415324773712906320975774514822485329384141934198490794690715971031176700607205434194363025276009992436931897663609871978910884319361378403246588819854218240274519386160821084790292709827716843762243862142387839348610777400818525278488662153963547941311777102991328641471049702507112139659328194899628116506466440488087077794951860884538026268518042297597366696429621697936700720484313892727441321796703400878349404619598754063584686005409174195873430102933328086716072305689852934438465377852020836073084660319734680132256436782609403846201235575714867124761217128018145858666225726683070268907533961922303622564916726978484521013599474576554549254664588636578700621364778998634326740885171045650244953857802939566991192275497940770806828384117847166826851892137615316657120305285244806696678481915817661317146781829141869682860706548444011158608832480143053644370964622345728777810553037735616262032823177133662556604492235135903959605193782025291814855008320389267094315299189591034833025646701196788779490895152315062585244398090813032461431050750493414233585549036257694874898453288220529423363970647438274532860451561663021051269265706777678123641168577780459792114692305442414963228703051124131871140151637908238527118408799550460197571345075699743773495669669823170224853954203448450218186665114907121120380055234334005873511413936169224415825574136108947825189605913340825673862251309663232587776621328057227870983116169156021912204967771557209748958378607584285496289185154795379967305380628181873637449670176298369738961600852630989063161203867283002490328896803424587816904052507029771294802345301402795816986205833714866094203840255322517618613009381489388202705608568164506952097250881582510809003651803431867811618134048534746372300137713520468058325003813159274030698416176800878910708365282108047159668436877130112913843318262761994743239771307480368271122732459442119103923872485413599491316667378949059619581459202787968016217293747697856519217024351325496086368368218544201893274641477639687219915214024957362136749044949280907327700671608390111757725354711724368172106979467699280408283590411672725814360926118820629078045125486363409585928657434345710500028981287213128425758825648646524023532003530354803185337800441504808980246161247478923910444138327760605745775996668793638605694962860920893693459955070834927777153837566284383402625299544048079218958710733443359064946519114615833385207213331245500257558886596803067349697798089049046684373608869391388488976382435354993126678828028177853898433135075417947543621637637175347829427263320790015657773804232090953870663516776166787212238263737859379410671606452791921179581925969874261442338366619670682115197819283504949942707169479979428960161460611467327378875358591087472713768746205470214482308835606873105931006124805115323395818019043025661675773122795909271105637907861844779820620936404461735180123845567129296851581392023354852062986656247926446972626965128156073222635104372635443784277184289359415609896579584220461674943749660361650261604056443147714339070358979974249231365742016463025323276842590050342052516828716100107220504689007729312870495316951631965216709976478017066372683842818730581972497753997153230755722317977745766133624383960247778777818762838175291253648962452742064248648487109384683591429979256086798433247132889848395818327497303364420393831176010994114078615749474595316287821173861194107666188462845545230382765675081969683865900174922927106087849121580719509540170179993424141284580811722202119454624769664640531692457713379006221424692442281866055671557775827093019344684641887183320249449596535399790864932308667983813087900325286817033637455293102315475371202037147542868392307909564713702908149205307200699801346120933060442170223793452037471671964368111511563549467283136191868696312352699626533487954528948557527721106196717469391537332571986933749355818646145853868772563761251048372901923592403735293483191918141286065471204681489599873829250094414661574505468493638983795070621121314414891310963751964061362968189164539757539075309742231420959035030319798174023126534672703418713192192094129068864026074316957405618071059232753130785590483583240319135281078203746098061627718853855926517202527664164622925717741327272828139752826917645275240120805539931455861052752577590366689467961238951170584546320805159601086717858728201171891070469998271099699592728695635961488617753378570421250694242902559676830996661017263987476697054004537950573396444438473277768990544045844532280576839649197807049316585175309602164465980287058604314352175847353245689794417834142674760598957030023050038721909170703267110151994402214444367436025744806853876653557977743999348798196733021003870421988617907292650694614178388863619655056919496018887978153237027323623732268345877858511864209198148832804695051726229726214195699745569006673129629459531695410563357020473170729041125671869949944455248615905516053791221283007789871214176784366569763030047510835629810576708087291447955166050219210099929570998005272752275619070293268844965042792572985977643531124496669319582329423722327580941491772282377004363855065549180845805322305895571153545122669129414097361361745934464194630872242229519515468436484655007278868808456900397469199173175571104434999971357314170858169317184006599386973993478525662337110508602753297564451965594356627328830969444477416753635926543725758205341819053141074811965936096701292145603380493925496623604706433634011828812021132172433660756726254193293966277744278077702948189964216108583476635075992892189700440248611192319652005931639165001130788528687827566235749964672186394727553239553052626952673913414963450818607672432792470473511553126304166009244698428752690303557679149116915155978335502550204761379348027845436214431642042755789728901383179784953731989605048296631613865112797044475527436870751801763407637182108559943862282275896968344697715776606347487311663064456313866489923311498450664071564374317762820410670052864681343198152808688495437451156642695910101883554005257576745708971533387203714198854188830220768792320003477475440832603229466784957702301599725227688411585485034189723956715592656927295259655366893562401725520296120626755009864847843101077528518360091925826998359711196420084752285175651769591959134884815165432541874798536830789056184644969047067684627183899314880676066811636526080461882674887225075681430035541810847160411064677534431268094781106602419241565725712925479351225174672816345383767828467212279228092715265202164740771272223669178285133232030745185478751884511339543110763610942921047941077555571776065158065860914900433538186239004509674259846729018807381997209274464418504878859294689701160806292114401683136646290727281781021915610182199623707119232566960190597772836245697845668698135053799411527114941311980540918447722670556597935845309337274542517543128972165000308801869126378209280697059546122218088734386110572896510412369858163403204499627591406497600928316529138604411004295826532153826244278332827015301660355321569374978704509916267442638332910088946638231244398152059496002637615148454170367961523303165827330318293128393178426129666253899896390176135546709076118333506788654877535662267047871213080857409568865172358885114017739708365041328165782171527946970668432126488168483856961022421705024842690492553274260255780305003750067311061533207412763499887995352506858273708385624770601862587625062852533243329329241925383660997802461272554992007760295277185047414800754295692521403548203073919869110484277100163349250001202212467146925623408030663180426507351541014847843586219470027972011296840635344674609632784155613269332921391950864752082016191365915350216671299575347874522186230225440424008038987113385942220460454041939995185264285429010310393561001507226100520057449003333343137821286290322350841130509700260246420364636791449811373820861698073127345021749864584388057454434809386515351360982144512238911983318598252455029501654111678126629094598752202048998405458605514834484993441615633381641383766514650048797493574317943600372494359324890276658677324563782037877713330407745721689749084219455997350196278077522843250939173495407977762542432838224806528575780577966530378249004190374379889215046844874017753863181117005043443775121796962923836971541960191051857233243458021916582984543999501348587959861037781065788749508326293400195937057603183281784787327868791618174308602178321296510511328294280316573248254971198391592664776121324314083902867973754688511846166712854487253040438751450157075022249697564828848249532883183344243421426901520207000012837304518077464917984449138704390177814591405405254955483105655294029958463054835594619106933894931435474379978391135067054014930640420347814904895850374044100492529881136927595918603032918097404598944287667654637441075430859084963049212927789063548994842590257157174810869876417327132769581596949398968811230589260577551542378305190530941391928789551487479711986433371088761874231050161576963534707906676958773905439392052915231856199965668163717771664631627963059264033481651755030586776667933000481918103011755269295078868508412589957517794735202843525524617267592715686777042264209481092011423447981678652162192658288342195388976427178368687832244651932477874214363815325535516827015454164750977819988592762599594327755083741355472887888761274844307505313929700046991516673277800389647214958805367530246682541574969628613454866795814820150954276951296105886281483503314571176646448735488510913555850857156341621844820041595217637318323812801524551883157306807129939514367391602056166676416367895939365453820631437673165647723162046520606690641693508643162349437411844886288136932934626126269135614207625193270761707022920698144125045075144443469224474637056533892345040140327665104441692022422099322145213391744745372728191350214799817988928800276289052204083938005178395484884803876157560711482072860904274408695988550951665554298430390156064398834964767465608823267087961632735703373408040469248190144626794381476984588676282824770955990657079198723304813676575322535185309653825015540329774602275257882095379724804009919572844469994728395038747755777708842777507685389097620922515932034873995569253538961458992535684341094886275610006971127158015305017564543691677658741947626505007524708988681656471987130976882051505758033409883453616254821339872733131685881640068778270093135574703730311882592938600434439076338455078928242745888411734696934796400199227551404927015822023956435642939572344799149805899361269382601385697417804731064215983103705785652341886250015039899710373267445462674006998329871566305994305123418240662803442876776492098184160506143105192482537904995475451741529244726261674312147246391442578939385419835936331236408658731819347800675017301775266637188786003598844829132303531339202149421773030048545892044181021860839175804014639818022785080987160008557310907244613086340096831188225139613583447030612094254666845437954913369916318483035742619780354596361037343385148954276671377889728375012441658262401070055884749442794519883654409223144854942780764422614540489029124274819639853688288750155794471606433490040001006441980908264923344446438639952489397630891040541234399934912157820351932757150394523768402791703172367205282540961952115941794446327762780740600725381570480405782946931209587279747126816413841831392339071006206388958717603150621151405015232254712232834848237520156292342956013005390868572068555781817869184062894469519921625729512009502149014700150807783334728235083611776005798550813203827774919377123278512518991059592870610187137759788338723629249739838075362690345772996130019629230408407104187300567020699480771480770046657022770848223640396175018531092400565494159371565819272970454291581883733350043672673931495102609588828587312626556842017030349482516756225717608498651878279836932258759187785594692119723994355935690447321926055091902040037607680658258337692726396919570731999388543275565072816663388630359496023096015338451137591452336372237174220243319561231650933237076698392087235721387196965680691472391910155051195530259698946979873912002612040080243022854106761804609749954995340172749558857487296990055783396322952273264212005012014721624892727324079657616295007821466081044314670191059472748842809388776611247517413382191415183764837042768916975605391089036386953811454057108872984282242972474326804374312740624905781860898203374318834648328603748953895533200640718120487391991533903776479039536866762980920922201088741309619718489871802509479829804968014340625109497389123157947993619607271217436544586531747211985664044845232061205291512787925709480102217676804612939647603570903482049910359050988142887738374837430343617919020087668925339561968832956889646260860791675397097470564096539211645834385266990071471581850574307348172403766188872243281247139673906059823443787921120922405672213841960069921055500345784904080762440961582688723835024219475782539187240867693963778421047165284463620945400178296094603371098117842911712143764072504182955771824082784489614213343743087010337956276518261852840829429005438450585011173821836218108810331947461953467051961285835883741448256916407645605681378687973447569475282511349898914515001890844867096314366057418730647451229832850734036581992186156456199172060273271583588467246361268915455187956445285722821561083511534500497172437660472322925950704665573529646628442840588480213412804217144154192435666616156094779010937812660912979549350785750268880165490545586394272750823026871707303391620800919752708483137786986097841235896417939078656889764611353101924324164127793710539225434177718075412332362577297415443095368580218803265855128443798350596785377086783744971810878066331999517105642334842726186942216568721272063345369815605450926771113428510890874426865535552839622725738447957212911454478862610997450580956381659394179357605317299283259467419019795563407158455691041712094295266942024286092056312878986373506856424380478964099730878658337019501072713532176507649029730579218410590121476657959443989595155183115208830847495308973143113934409922975781893789766368307288027974188480965945993469410378494619863986537751189359014962986082179017125644601921594937253357780681403810638443666930566884345925973850442744849894831673946319129701322889769077265907224898926949386166934551881265674695167030401053157321096974282880351490569274915718220348051391860029099939472885348892322024549685794930886392408730688117140535570094485871811963518030069203211005282806858264545799480139359352948985063228915037146350090031499399923868761567089612189140679234563841411110392711775541641994346588965048135528479582926935454148216023336063145611662243521207386076711365265623673780051269343663058479902107282014279631650281574521353127460962504324635177700905895657474333245234748164110898754972021273024855463346831256512862111870327686269868002508858012972917376977237241079824843295395301969864646608902310317186993221820582561186270337417777046429313592323265257040320157817002399605229798805366613115298260720659476663158800229507098416110681909878169719503009868567066590329143845596519868317606749006454372939380357031763190692843598591512512756479232356548737974608540992248085885159116795932046751364732368061261197545868835268783104996194501673558541861261319682053025757545158895157957178573497091271422212656066901506332311176511368475013515948424973206108040407559410020011345860079684203860462770498334709345677514611903761823013659567272505837582382062019079637781497983947454506956139070292144609008387488394940722328622877576812532078372707886145410422133088120263946250645984835392173114081192097988946993453353195902174213468853837458506382459956569756210276115545385695441369345900244136116112818770754820004333534380809901015536384522240215426610948827594944349692518363660422375567182057912748735175842461387864603465764528889069273846859869187827625424990861391465399526666802236467401146443717782561556641644867546188405477831315614378627168984861166412238533751684278689242878464452770986904890734587550499589504273146223026513813372911465272435966006559835229794503980754612336976303624888463400978087125705240657859630663367838597362236213122178238457249522389646292886493891765136561108328236990687716943782776610081605320843883144631712706986271843184579048001704233766493969178023994698227774029586363888330119676487240088391585335028376908049378029789829664428552091695387636658200190009550028503500388656191187470939852282840778132551579078712139358070878146387798102958267317121231008350018915702176794640805372595642135363056958338247521386824914908323507535544661070157887259953266633528723876804398943785470295854652402320113544904774541857238483015669659774205985041286387026662275997680165483428302363681253749173123698673047902833209096498483610294413869641203124320455835988097074613465952512150016141588703022785359740460069020317397080651131506351149660264566775065976840624323678260949697382501919011709817592471154202628784556361523517054900010227081379721883478359995369750054987080602729122173620528361392464176116584322787170870279613796556748361575563089185032022039154283065241827641390064438789838896060939184019992589332385027026225712258668530017281538203927572281492746474884656043860485534215919504583026043213456288139408024026749494535141805306638423064317777926152145775476482380535155103014130559925510449784860836521343529277251403984551779295543353150157977246302868396172449101339316536068387264789040064660602864447247594458314856428582205318804137269300872403413287899412495296423916466569337962270984657274409969632608478390140180328210355851116034483438582786310328089170096994924458298730453557822147228392738704318666088578904098506810919586832820191011452686203500583822962969289493020904932543928792212527587559493093556884534155646153601946445700438345934422032433021118962910580953538309474832321866093336590658074380942462315141637513957718267840683561763140619290382789846887955029884849750955008313638284751880999377783948500268328311050163997519822084643725321207622933824690647590837026444862508460052592681236319588708533696679365918608429999296272759020788796435546255081775287457068249349310023254919692440821233009832102002542439592010163135894508348055194105884235942382596256092670634761397533907129525033541658312556559289677431529107436141769101840621562539620119709665732604562860146056136926494351748752647135832161335017474828197027218616046039391913351464738588425377685639783476699234047152864524517826031345811085168334802899679602010494352885132293465662671983195592631276394468013846854285231308054002754601937713726192324976970751962052966040705856111658294359762477599249603076721416628259607321236687313435525387413194927932002637196978119558040507620105954113433999051825590032723984802180846199493464588202128601142115774623951136738016202205046380511040973176444986430428042772927432185828786224389073674590108097489461734519287287473356077609050971229662468626186697479137062271255666597431718869382798304686920006395170726553296912825330501925184101034968384764425112663042694602650357990803459444066160335468856179386152196893935177081723937144474005316846662754162069802454773359461383187988024744814327489706148952165524125880030737203055136289760383440185862317723750421958943923365455589731926421354820848910055211880412911791819962422697182666607394587519810534656895388890690332244411800568813053435117066967884833669069984220699963462274017204556892273592628984420590967465649472569456075641532850910490493563846093033816059833815949022017326078891799092567669550638998656430767666203192724661514275867203575520310827170366485795167924829626267131800627404048179549878706920098864459788273051071447655898532028634834005853342464172608065387716856510842901216500784299050380754879891937480910709168768170261149058778354896720796979495954050736561090799679588413802155868120821633798886945724623313266891558851697348455623748059655749733618521967850610967515241295534479746898733905311030368796470323863930701826645018503259534782396700439937075014595374520663754582883671083296461716282861272194725780007371400103374673502354362859123120848642379614894154908802910495582015169833050805274509552017580276967593550141707138765711252294368705489076028114844947741906498534680491937637679460634606061698708129484122182583097159627466033004627714947646981019809740526779887168244833778614667250433431295994892045690750665534670420144140638962295514328371466098609634231480020709379397323205894521221901648307957921351556756912136391885018257060625920503458425111680538846876593303061390414147072236232118267073074232887375819721920751280803987385951517748260859605783072587607606555726203687940322689438687352324150475145188414473092915034407719411981686968577431195328352923838203302209936606014603307979491503696462393390632550301914980658036025744665724772735605719222676926602218712049621385604624387090594630312080606609949145946855437996950357288102289100383694486046679873628828150743750044891308625660593034744772712511869488224485757985923604971857349827935603363358404168966475765790767107884495842111560137241064813044623636253332272333088454432018012697384181615501026717879960336447493811828454327433671512056280346081171663329419110725690063670800102165772942558047472119253439287207829397176318291504466564994672061211610983537059105203090498121559957249401418224059746431015274916738304476026223685959165693997098671695597211131627519729233582824607340292133516839566180698493591778522365172346216169609866364767554564429880037377582369322098557811495253060744715349643321845908727230022792246531273734167949842346790249435725657693284129446413448904952688933643581801571052136855109532692420418791829814062666930602204851297921236603487943473447152537950108539207439394466365479496982023559723455674154296833952190355226931743959205079370595980872853615193690328229493792148944954884254795896552579381081674585130407230698064851802805621045654035913921620739740850625646229821309559185415305933487399550106769269881676703884987828840669553787844205814857588872447373778781575249360752695985199327944787772572981778656030881056099211539263681020893760591146168759543310207963867994190442079804224764997496988878084492793349471543526243210322257354715937363897896625158167997589233348818771411057280245838682644206937653899785748705320184964562494231575893576133881364055598721282464185547885203341325339797851031904604533023927542052974284077463782180312491501166146611926928940664992060680989980647822397858216248450763834173537644309441790446222732874703405265370438623115194143519747151917994879198910573502537761703653355406595404819644120685277042823011547396659300209586565478746170139448735912924043154569933887985846691538547767827984409627729203254345831090435312512409933188736705930398157064141871550120524573526087721781665475665484881751729494514211372440376446001359553194061771445794768161509321527313970970856054819789553402549669422133835002825694770849111378970343166989874294144171394381409665512407511850910755556753902944344728462818733062739406279209649296781712439619672335423647043257716855674860465648080994626647610535325470212110025451624583393486839221398348834159463544787936421579149239527730161944964813970098807049114460683316390303808765474135764279190475479370825896447807687757667722088722914246488811277790108575051394982736317327672984572964330758964164378569232285269517357430215748450048816011367451002266202992688839325417494461402072671788438825089435881867490881947882319160493976827066999299302075946031329226439092491223201726844318056594940165014534842799117139851103006758978828573326588510243889996443783890444924258145989214155203485350789414574024600331627857407445152278848742073571356929077136225761213962424464322986415213838355457411223155511626158995759685257780574529308067386814465159362013097276250245608368249502406813524636122966196538128585445020259763484973361225431408561197564999951376364066510099579030696538202901106286900030010385964314327349062337153021534754076237167505958755880616465261188451864237961686396204336330718391805329499678289305434504090042970013073285517561327656161782119362160917907490543259826437656352492599477259215346722057433340253277172950483484778005680129965949794173849677499489471260880751964015132340044135425326729625721860192817792298102062746331466319803572460283352592814176668917825940474029819117277086256326676137181044913657816386881554519935866953492735394144247183910309395200949597544946498066366007817264506984329680596660753941937604795373059354835968813970119750334645244660349972146640622462046991755167230470719101202448859960637681129543874100471918953291043315173642832803922958542166294901272680674985938971436359763451700374482646742737168097874457952911999363607979089940837707905748241607976237575393620822935190590905103962901231224264259646875745174320630238725705475628291084323401075348423390986494574277533540994064670442808793479662753373333965339643753261268784917595502541021587135185851087962533016951382777197412033374417283107190734062781350162846970925327925308275559646182529260269778365821323238631842600780682803520891497738618305952575000047774979824024377171395970324880377463505592534149346255875590514266211807441074736861868034717655862060499660243848516746212032239079100363633854777481690353138945366438550669431123615170074088954941740468557303905870574357577631511022673020082654209376186495023211935878160090830584807479084259999498883635306216141934350288049595649909201645489344736915226157957101337971723303707764397861545715246021330330428582205115664966308498542709468792398747876870697507702856173014446235605738073627606197717511182216654405949199055761945847472134471810234764049090428455434483426777553571908600684092938478245940474486592957843850724004051404240161693920811397854187544566058259953881511931648795322420859532871116300463498523277730939953942762364543765414104380098555708491758485871114197351055502929603038264844701537484216642969548824613630445854106565490540164350213892694075296192687823847029202411493161993772662344429908564224495863452678311161440547501251201764405810526556279776838533317553366024544358261309782690778130967081152284594186123404174296755895899120373157725684309673443563123524022503621018172700067620909470370906232747235311755802229073729965285513107471357296320127702961926172232803436006292763409550753601304683186559292129511738755366961078455706525912211845227336936859181027097631119449965667557236618383872469098211284962799570722254069433200302018186350474213090246090596294260067320674616521921674152853068678087810918311702974361976576020892807642049198798443913271742485106377800157241587464067219483443740449210484276425530737246734661353636838624053946862240789351650015158900010517409972712384611598028609135539098227135010204346004511739379536547832963504213746868190337308284376546850143100218943973855977136629766858049336316824903920853684038589135739221191702594231355437124381325111001022561412800724873754903514926135685810735052710567229599177895453001888286768510256385557080306128695140709654452037261355783082305559831426944641736147762929858514234376314109901513686030073905956355816917039485741685900611061094510075030768232892561856147898626013608241131144298282446479015378032301136893711342375189501797069543503636973874201830857753489072721828091088832912643516893245237009408994777981236853216642618808878258536239714058347121828044248647410771938096944033623115386655462313361127700855045307975049907405712851073155709403257779076436814696793227470388243498574194909798787989539828134244122805598621051824450281023626101268558727527314013634879222365913990120255717238562081548989547670128637725762921141852844031656571127567194636805094987807820084353276121025768483073941491306718499551801366844308504593941447209978933710926171874067305495471186991735098113068694345203825794301571191944186291282160431051627144680855943891735443874158169401876380974546557184749839066029578727636456498076175992677971574988651258248370046266046703599054002363883698112307025229771779376020597140885554065433681488985715701910320918428303039567577210346998280704193362124989278483895040069424218214331435332659293152290190324816369400285648160964238380589385294822558747034967569865686568182738136384016979827680035653512514873356307299560488448511853131126331095207764376107706106885450114985691224682364085768618714963576262916506368139672974050160861908965339083746568448035699359960373518505658719127795414513745489388218564521507945013032472611725158011163136477704541366322854440849182386708034767314845904791048237453349885765813589521061853035578190224742525731088319012443789016764694867566324483943105924804191970705671300095571642588238168786814437165560979041844047477670672422866779507901100388422439415302021781132090670075918409931575945002862366735561079461044530810689109832343953154874454499216008240341945385402797160406092017445515208830734912194206865114906292357514985703600716419056574886882478558480714875200075373539433246001596938854637746391631119541076703477944465153650049883137381997744061291084139037219292556340826596236576803380217322721821920155965290981550603709212682890035396628980719339236914979684283794441174568146230516362321951767027708801626404761726879739381338505567414531051180605734263118661454616624607205841264463085091423315652843121057758168189459166118869654349144859925267598379048920674779169764593729351698286189134505800676929020422272529337199611321283205792537182131037059831929358619199236943616172862436604518423637597536300095203688823006038715727180207261129132582329384558004799949825098934255104294871990051590106649506714677535534020729841473046988892851529629790103852197691832435935527773905196887400154994328788501582727469973063009591485607492266643895642565507891790010875122185447663966503331200511840662202231669586414574548653295867881392488864541954949649560116626601273914369665166105750932405710319767970481088185354469895477617790526998617320211630205923131683998197271103774574695231494352721300158214247683555671575170024377240503859174492488915875759911322920779399620649143893243585491858085822205994758866297203755949321312426652942558822038385290056134589148464049222296949275704790477521069907271811098479994136497602861951730882486018751782370160248127861324379227706212993098187540945875468612097951514940277326817826933557633995466373550176055807698492217766488305855971762394346774010172143503731174757248419142222855547266671659635354496001133223673284343508936823603096191213105184679403375529068869951913779382926417607670907225915338594263254402954350670285521969786960753422737531711287170373143124479483740829030038390091678959782191951249272278851289736495732419080620749528475585704416976939926227089070339707669208411680631446433872245094476004558094597137350241640235292741861987719028839592375614059984270729654906366040874748441309297738743847762647415433436348219835146936249726149632373668278835144755514471038958574590567601718284990646582870285823684388120203438902250440754230667063876301113232548845823152805865737888185779614135295200735779030361899765658593004063241939778830253979570602626752325591832035975824521185087573655122983072231876404920973355312152152573113340921759447648224432697733765042032982698949548473631162093262811261327381008665513074392846670630277308329186159057684633886947743788420326747317905184875230153653727053927188131492624858489172986087622698999036332674586002201815429292565039579998700898632458450772331039574690561723400176563089610129709094128945528679946281003912728468518828676846116339517126565926878829329745452320315017747383540724006919479588185154140848791475892437833211526621457994227257325195676922557390632176560438258232355216590779945746013612454830691788226526122166825929644026447070917747938782345380014424897989728809494698276363413893389176889710261446554904639959988431764931248134821659728503066429574797572443515007257577291876067886625950227994287644875249136137543465413153157031333514012134929732948691980005800932328957626925830910061059857737952971570313098984275192764458401691606550159035211597951459800137200549379853753534784771067873981738877294208887414185100717696308500121501136109035302397484225012122893296145801640936122899099136803591664894395055968115697611366270444338839384222490960684096947720295262452134953033276209818836920421249036646778177412372618037836481008914981367031416085907291559627997751050808208926954775154180505955845335955732766204289988091912917089178300002468242264473319732929699270110960591903029143160568084808763345353036093722960212275658415715837833078105311185477272125838320937296612723345956589684180940004754154776979272868322010267861506582383351528128806509987176862809870189582521193243676812051391147620801064512845069241961855614714415484906217342080459472002844332185473770795067029648499272648757468156004298338588044493195332066092550385718229900984441630583495062722425440511866756707725560814244022686723171083347694275065971783906666443095638195721903980913416270078413281019640090160695672185612805591355277285758602762080652211126354457837777608083395679982857251057859910597084492760708773503268552131572345143085272047258125805440386915878148131779515644869033257724396495887663611624823111786439358836298025764503982634097185781805656138355756611777497347316355642143685807666508205173159140157704811716663949475036211804221982308669703314035793983907789999085171489429639115493438546726417396487057518496701598134709967952759222261680321983893534734651766071583123871057484807527661086060985835280678770266205649442522283999411266918646852811420380902791181804979749151967561777179921911667644530900596719904036469457938442019893345398005327078614152952244810036124410020556425093428199854534177952163783906429761509565147889549524787265955240629626180078981806796959367235190837354289736936384466673955544385139727659154960833614109227303812572353774062025346428858911530546855444408387410997845342114875362476935715398016131042335972694241457764671537719255953046313409975826899976351730560280608393630419811022382373752550392758279795590097995449756315984413261168882150083206783368987425063357440786067157073857828516685163734283508496845154533484736584130794357150044860426504717052501312072314869117484589062783734156036229495108398736012330165312435619979231235875613702933818036193809094552213189654061948920863821773324127234353929512374437192251052395210877651273575925129181780756032269486477263509334493981741571229629798437189795212820950694951828184735673214282229215422157875344566917759761086587259730874446585922396312293590443866075529789416999127852769913929493058357954529569641098346010817993546893147969869608935993765445064703174618809357068593720370566890945978844774305110149170332860867923278916292100193846672081136859877307084851455452547977180787322651707641842115369154464881381111444726176151099972348823131817720274761267881897697627707848733999091469877722461023839985492022883869702344932755020290591671515354740416149543211758924106313625782925540964792923778826257579659638886244835717951767764639123381223781979371746191033134459582653796138296702985245231027696516299290386312109753575025046851956935260043264880267225038263506348844197586325045621650399719466123631910367932035056199967462255731931803095632322951750712739072793698770522421127166735237786963715494318965139120344676534703177532056988083874257497081476550308699426292570588684509246813146266157483340502195443278264611489832096487468336050959825355259636480064258027721976763663808975420600010082828310282729840377078689312526146717871561136662279460735674512020489389078828611500256645851421812846123320682660036758836055276624340334753045570568071064516570912974385617340660432602962943293531460470885809016141617907102896999051236387844625073839132242355992496736948083470361404028426353491154808940748959841775510058863387148747401597501947802198215709432875524728613754908537570736248247509649999419754735953548703653925254401057779720583094410810067101876080929309510707802324424837909930114243587454064850491382249581373676654241083752919527647698907072781741117728007807845519407043305908306589381777437560353895381976852784893552662269888945602354012492274545578627018101372364891508290649846511567114356410878891200326612800743423504296247617344555372118105907653001388136065523116211246097385780882905657221534030839382188937099881524445761619266995598654476796592522832780736614874175040641119179482474449355374335387278882778755222420939657945218603016508370410898500009997169994913288741389292338528557529849869240067953278306841771878633475401773964707133062534955459970309595313558396019932790524311067975100292491807759824028937874963537736784283905153621013551937842074971924723321045299139296755585767343138266500153214108762310707276510973276112009529720538901805553347014991042610872600613344182550386446616991702571086956874444766018097417625741228984579621621751176154159106236095092135586581784290043944753642717873308657008788070384667701631134653013932592822133444067472637482253240118683216265726754637007395925802822987527937316940037827422908455156301543193332987402556227492077795467472491088492300114066016439463143369219218726740071884614048143700141889123589203390636815949360554895374167692290136025100101404953794090170003084507995986555737370913456154963121763911855850962162732927935769175584519934219064531982946670618527371227585765203236587484681328016462656938792690064330529377394580827956043614332426842518506496422690536582519843128744422205911558112541280588148537634331579152568738534294962008830896936653676118968468065570156845587881450110486977771213715783869840082317307893844209710854312248294255861308863342241684330513947277696674618095409070619561113355831806987769442375891794035445808978451850545250410568542918411383862890610985031823395228131635402018371708643781075935274749752058576603950641110627805021110003810042192284902422912576173904498424159897958336922367850928583265764528626070143907244197144955489589709705963293766694490108013977181950903018236450090162302789716687057610253244341227894410952908656326001065214715220004263122777897813666872684289078909249946045015576933235142782882088678681285437430260499247669394045609176610500290313983862977192977623758795604073611018453592902032635181796615327443859373937550475445199272338754177867710105282335001535743782222543411928746975039561396993112045547713073410450958477919431227922918844392317425929673123175444830702116680522874563920580947039383080327528268194470092546962691723800906260472327685819583288566130207947320364339739719341386307716022092755610660114927124340772904223660935749640221110328683834175319862754274976488841854622980127634421269950126322388315253741710423703070350655794134647499320794937634417977022155124526013337927083950492618095227958406459215851014806058631922191842435816493578367961554883300585381712318617067706333293203229880087221907386195032978372044304688639454654846177088618220827381885670726868413663008007615823090008075029679148950091225169192367618904250561036345423462643822794830229037665976711898466608652096935528241145825832804440728171130449999852297453588705104559498882570916297748834566075658260535302806151669108452800313776178786788110253791307291423136213225889088905944074402323784940395423313364216233281913308734074074796322054785477635920023104196638133527019623343413372654584461022594618051678333883437180308552663417496747548049762199371409723279878535563542894056562260666619167749359124251843045255752753315981398285799000289366311401846769789067939441899723882942329818603144526914992347351495371980973669118999381286153675444145042661335402043841242770801126021739516999567252200725975553965486457336563389580167808223755745715089740759944654887150767129817079516350225922708033939282265855004786207897807238625949883368669690133987243216142485591185325608583575201508147435117994748034696340611760758529339476386156366550488063835729981371780089615164521271839743616516912655806130989129913625186293251400863208143315609136745243993646849621870371392522993156657660663899425685764647093602412687435069189637802652117666029269318687816446995779820585856623938054901290157068939126565108095866824174610673259531746521476910444783481900204047868326083262202489433383463298637063365717442530971327388569222953050447589223642687294699478300665926519665802439283368102877355412826013439757355939316522817195617227580270851418819231374757152328264648987773460061911217972064761709554965988985702996712147227106767060803752841990772224581847415244212514836529171449813664524526638833929973376992984418241800937042318113035234877513892529063528427047590876692875939388302257631278520423383538819706870177975152999281243432608609379826310445455281376903009392449066022148195403427118403063409276330518017881499470302464440236620045747924477584325400015094628454360932795380131344955208680426199726816571741294100652054133057355297926630694102688823891641488243196460168906586607665614902355029836984191924386764511986814734285368515028321812575777500528133520999521850774866724829716692738844258771447395093987542706076018098509142065689444705405029444396553959793578255924378484996352482623601375279352076658675864633664406789401534931044727902632684693457447333631327103614288880997638056259004868271139219683990663738623688103054928120137026086221133708001880343406324267745355683381085959431914338061553771510949930358097524022451829883613213495866474963514229464893073453261319301031441791951535679505894134726109831969839985687805180778082468667961286851607630501874715417185452820096321927613691449931647904767836913061061663615109390904807201861561864027737798838329383782885267465606820259916188031850130451111510197967780530553591288407531022706197891039431719379254540852195338141845521225234671330826783200953794756193125855907540726893013951392561023469543552046777604865592746036450872660759964693755636856634668623839417245874881621374364816292228932801668415954029451569963967122247568147934102778549768573978917384869778179821357252248021965459761375266994783155814185981972219795606685680439149633404633823160158715218127739802662049939262089028803187391985949267558222629163888143883591918152692142764863401075836105550982519302852992352161244239262571821829526573183586282796797231590421027227730720224118277820753880730257732062482852111251465198871919859441722072165593342199105216560024099939239446600005667339427792835882254985777600715494617690312979109150922537838455745872608668549010072294267589859198860834237284490932776958829476868868676414865108846945108044863529808194821175644552150669789943029748474510002959881040628308008913141172154543376525165732944515088566243750336200899086458858355255074379065700417394133977295973614673343028493699662199397170010047294473433623463163071691141817775702183638400101012538971752255265709359151711540727410054034893802153074283082964309387952988254783942698814113339342179025376220635703591002672480411687015554830435015661737580590727568376523714584762610529435726554055706541363003819671429404238396727074242270510270140064754226287231249571510344529178048115456178147715060950185389100165724612000823555676495878911319033830220495815893390399766870642292581189717009169396751729708162645066816738012917735629003097627905194629786692590691337965998043339115232697874729705472617570341106343763042142678196953091458803534454562707666576458892511224866311734969135653644756618090713821513202210295069182163756171716848282393347811118942718874228771890560866208158014879949546219601727972803507041992357131233123188332766391657533946520261200502029899453410047373380409232768760234034595578543536064060628207159924356268878093099595219357420279008361084030141584737212948070627944328646146986504131141259351219834843779698453933337364187842015416853283598250029784094443017505736294966954066197241823947189014282131927409243670709323786851098044421135840317692701096744243272046586896181314882312083201731037755856558386976400022437134484862456532558757526543184948231688133064083826460914837211879755708496130757494871741070687503208335650122588831508965281021689118243690043950061915200681525414900808892220690260023464166666201598413243213712395888264976860387094578318794555014608221155910337985692728702201658556178957997910277900909467634619731919462117982402240356521370275802778298195497505170104154159091659160674452576736292465279576652181405873801775933580123177934090486907878192218055417259686822210284087993236539204769656450342653376657555269114166753910519582723512357703448416654782170237080260059268683002507554745497979405601020532250779546911779701695470036661011627945957873683838439793318549245546879955590314133405594029998765518805551073449152216677241494861320092083822765910626118515080411556461652193042248227085965665836885048113428377624652070287254017130279564871100762182065081316285458071788320257849964095522293827923677219590822003069565688095660117069538373599117231570863024059428465937965596677262853877962089871543015475151651928931725534188715336538870286851818552433284699254491427202690880677824963008886087940948174251376865793885661268263010050339271847836103858399745429692205182127387304976413812476565050004105985865178785962379765419677583742967804618197701319130307059666673075204772893767342084300035380736061960585540467551559111353613081116612601239415363400612536443414436934175742608870359311839316085649107710890625317350165183352242791802982578923550112008042819115452822538223746880303411546833356141226345733160799197980366649244419813187713229615594080177864740424995427249951565725249193005853410819938339478796927592034945321298213645411197983577924635513210534700542409351109573515474664069530514444777865622411582216324786107589806767609062781991940461973638596409727218088429447587260244522453483663575199614092739137092891535398557214925187102452606596546485471585645133105779044696379633614966698142273828972011509751493429504114197230960626510203777891114816133931388849646612391532861351137492747892122602016847841704825155287695465162610365896486969960548262902483821800317021037332499383057800347231452718287462292564969734867335435678164722693645570773084473872436728645572889850421330774100650995020658434385605324256609965718744503029799659177521055052338022334665523946728963793536236614990329406547643341403073791322572222285802236462935255077861529815740363690159589610841631649810772631917078679571338078943529250561793629498398799194382794562521291180014098926753083685871225809897392345247637616628180242255357700577761124815221245339875786520228727235829389052703353337084236268097333999643124098717929738731022760361828529363161151376974631263517652013615725610222811202093272576370986775989754047523781848047768225915988247050760693732474055832084241951546539798038887570510346440353937354094668052784578714432914722305294168103666868026904430997513492999232880242540968751187805222830050292092435387176905586805320735960876644666547905859344390680498454066084925449393516999194785804155199315387123336366928146640482870089281064316822025655633360380655431103289318205245807936626778979379731907379560332983074041416499234051377636496271541430318450357492418897272461797460266539275519599179762103853493312015549472557612264912234656162706000595521012986681106319468672312495927873719028415301996339713914980087838897719629515702030596156328929855552380945163890062965713767622753580432343968747414840959086887616956493089613754643667728736599223605582820475976408700079441568931346470812842516513155836521420411078325560269006830429007377073339046601584210699998760174153944704452134198700472948401781540934204689575758781414327860749967819889807283537375306184378234204601514886164550305852196677727778765206371287008734941788523388203251174509823383121461328253179470845854419969478321608264491948722077352342389154077752309674209236376209420366136904554933042522909466633844590652942627933941781441926253501530974694710955334106547976595594123930056848517784440943404571709838610568598695761978797291700236473897602413567648389383556641465711465485417856691341152594240713273638354006527563735944348471776445979902799161886207201634151276386150288697433767727197972917602366387847380420255502632161473805542455269563157863176815588710415176225164724152517561557464437325445418151105057504727646019196043173537861022543664109728108862210090384545854199659111120633725990383764665259532971020546609966116030054716487684717485020298340394781754204088268229477129093666402856230888402467279560977071442203422452688093750673514796990576018316982414601677068521410633643589929451033555511014527346994344529051578884415115363343597202011905750016440983440186338501317244058870940757272007898298256013933628592079085274037332122600025854394867295175947467249788745212425237002327530409914674101720846761749008454387928110541736638681131103974156956360601986917045275881932661734831587543329388953967582888842684561390625937883957068631912946781866318312324555154646808997767697465203029202352819437684356121365042346360799171731702082184920854470764459249709102481785520088075139004986966886010289993864945273065658912365822526007586041260184523080788394154639211459327376394295221909102653022845205342830661773734418997490118013542905327717567931436395406928084506979171897936101673709668467597633499698828389949828226507476465536131575694444111276970284530404699026430879284121903242693620820828383569895360361269765262177260764601896924029989673762372006667257711759785428121497107119344085856190455896288637524949170809420113341300447037500014744577171647991324068841853879059742697571091763935897495872555475248824815650463320313986688563404997490779504377610616638705323371556307622148419189010260772057246413586362873381636840260246326158156499418951911040931730144658306509893768720134564502086942500349950674577048877226879153751815222362974039763630641867133193852311685502017668381488366015707914944614636553913628975239663090381395292295146718036869517405253316955600013167467519749283781766257899702330915907870312524063132404800322625127157687220634335921296083663984969510060598124658436359253041094449511800886388220090480724218466013933211630887651486992904291826879342611222420673410165704781305796906824247659157679405870140406157978372581507637288829353641430215742247703475124150324334903181920469197635972844734895241385935464107026137269419762318921756648266837313022984250068220536709005807676345115523101510753791690498976842539641322189380837923060652767555475531452439363669851550825164232004545652022039455536484862607379371542983326978799317656102645055504299837648928352315487670075468374284317367105669711696626475723725656191999643325172276382765183930071813041119843584310490943024080239849877696829136342933483197548120521691167671782728687464294472404014114918989252578748043204515093841201948723075383214225447614748696882873778396919549511097772298946270026952353133270700070011029567268653123771343030268192196881454962141812466766290935196835894472282242575400421656348530456964922020247784748652090111090370631801870395225598904369044041634417424609424875250090053419688994245618604295563209712671675510288468673863806100113311879362933145312386536689520516121980008962058390113579189447748264872785971845410244397605261967155489363569514366083703903389144222574921229431603595577337912824497300725577573310096971834247338779382740409880592260730217653510639105192263057479669156349796069411571891113205825537124791543094417750949904482156593237322242823482904496583895895884500553139140186061823182171753473416256706204282459732783701779803152910601498989516927525194790330164726297955475203716858090244966445987425854552022263896907654797151770359712132312927215601497852202097750075305692918523681535976378717291547539708961451118846047586235531321000115609846126460611774455950554346961777039097214895979459084005445820123729437542135348550747667006395407011235357512059262883446440784364573000468247471443709007942959052485791753033335651908693911072789993766064763512909537812701255583341732258750562653708514588460925087762919272408770619398907192327527388847131257553418753007439481218758269438779416517395363596079888267942287635419181723992493464132920527682982752533043830829778037258087368817822383820258759911738560591945737317862940209958010066348178891942588224741208721142337630688329343094554283418729696920851987081031155009202752696178776042230918586456106958217188700451501237746650149435045289895120766900274322887125527939648899715586651213167884043016368061643686674499500783835913261378849433646645391651899980615736812831782531571855782091408715823719527284875277065978047344160206472955702691742015801786839611043014888308076436933305705830996626287797906382910086545450144628465218655662230485788579736966377079327179684473601936994236869690576238336293556936850849023677189754520101451806536833854631396853624323347618760616927993375520491917642064251470682494422242952786166873538073112068952639009703229068086944017152364553007842477632626411328565172863446921405288650873654747924412149396853019142310155674886231969227191925068391884942833232831939914862369872185979141662154480193423081470170137239103992174208662800273260601420351079110365263044382024629414295121313080144917268548804614097113366513839653952194821855678933314995090584651059073126867874147222820459814047703092647693783771861030326486861683259517207186200367901779356369627744625367563927691077751999224753674591760048367012392312132213807329678045488280036096879214709965683968237967795200566115628912055059200119347575803686092139591047959979133726504957428870742505688519019717792513344908412094150575716031352943595504815281797140815254195938972475994397340672060480128173595651705327917384279662016401203870927068130077943655559958399058087907998364751214217855642368626652122549574517346915173294465212439452617106187553823115260765465919944406451543846370600862857280839670929243490011945444992012426929091445744218230620500919018935709628916642441648527557623608143892169691710423514808135786580837671619031346786992411406521642322894265767581267431759442982075074118867257211058186669557429198931045999370533822908437725847341100339989381037471837588312247069154235571620302890650088298657205837632708620401291946870325510658675601009526855582689588290336461776210537223217605488160224671805401548380857188158005147978397019109358526546715497910713684849041040387123122561282888192824386880618592216425172459746324966921331739088091229992145707133978467712767010791830067866999281445596643001827678257639643007637025746402198425942329897202037164279075585411681292281919244091014810079664620040449756176603246034545372102344629347881072366789430107039447428149737338534075786063237280463342377815421308604500027960277727280128660830264249599934123575777745917711044269792669722812163040802560878501492495228286750482121704195378478493895372492737438141659859655018310068212927547268885977889904098905418492362872265259706656030416116313169631660179193670382273421951362589681680553625769822432340739943432531522934601035078612893093736080331977883530126300576661619871536463831551110917522255227273130084631081332104826374722045704076442156269252154016314942074681983713950889467815947481210607960727839040246060598218877725437858035130514244467205454980689744333768248829557589701896407160191642476619412412076295436604959328825903614597200080520737006736639451228974135936224951339588519166954301804850605478187418017481128991261455244881193431822501804564393850232187078082044509657337116515663045918664749076786455031433863081591824737718373435235425551593428393372336126899193481052010772016572021134372543228254127047831290890298214034440695601202473222844773201944588592914231535271273400900451274695205911694664847881852678592556608112894706643441787191487369795361876075294688630227630246243448539895168919240879924355839940022327703445257708862522709648382839692268646831558006458832322615181368518748978272143019186259960205542788787799667535623852628751500129243168280886016245124172904843797841205923733047639427597275346717827104927694137221478843774010108962260558982312791313387563472479214648204190693434311450716865811685459015669640928489333474477085121962269540575713605082088647394636043194312717506364493898040596448926149696259381341951686794640183459709296991896282160506678860136657157655962008020184245760804124281975291475093383889039592248379223553085695733297602709223052693563848064840464210579993694176286538959879406691798513020024968529862095266326489358396473959138163106153325842053793868947105443243827175732518048679936222519691665837128106404136420586041132794027226501412218545908685348523763209822677835114339994776123167733496970100809794194948407326975877150915610102160779228220520538742332599675143753328203901518446487170129823311609157549290373581064012303787397755617120820281474728000881564166190313069279809991821089292075689278920094238459059919481839834549407429382257365357569219236809559441267465931132340237491885716365903831196948767649129318632123813682691963448206297284706934368696952139958530458404922288686323443964699725304505948375569218911094875201987827851381012514654662122269170559006627907237298435134545989394889907635705703598679764244715978431944456979944948715806897576673642229455046089274558511119082482291947193520301174780433395290270380040364687622075394023363901835417423418398950222559693129672246322417347713861267073143254869553730769524726193448288069953691203197513798840765771699495315356871873900120687995958600066837516627110396313832933281933717010998292310786499312183531909395222794692779852934178290925473111260541259927453809694716805655142914667901506467034491306921953365177310173939044265591026402102532703524772286175283927712352336003123016443365962999520320163240303080540580454969391313921063516936686965329444469632890264069166738849011158366595252413717929161862400641577968887071750277404917772011339673338421792715714561025155385513404336918052153365604978860952495393955152479871932184447610880944970603010176103454826689046211895111701412718305518388518347649346055997286530712574439457146674042565602164847998427299769565330404808943181082961942078400367377648119118010767635314705528258134777761553721531531501736928178123431554743519677730363855007788327971047268606990923913389284078789991380724000451953664111620354136896569040798722757609526133943299930553956989512982736038144164588195400311802982349154507890559840716663794858622465252784030163234445785453367874724081431204847007387096827970160316965734526631155796811130261807158485804616204634700333123595436802835339094239176283688930056512525715925814535563615222271181001855286788267435523322607864770653812234309408100134159204850927790869886197319010706091730543436257020239212746379213544908564651776036523892140425889108122560869061537256952061749186044887954577799394191557972590380319631114254340037699758298277122466755684815289076711341116434562960540040432600799373755672039320158407542049300829830663666744354040406738291869628163433263001598876895686784319309803154428399653833280152868181676900618777470950394798442176798661242317462525974960410746120979001758335016804504929469649893724993736488593563746124622434365903495280885952268077769465270317238265438617071800519050392180219863477385492032198613177265813032932710479510819533566740880064692271659993780274169058003654700619281942434745369962033588901555267969349124290848561218186170819495504386611367717814823799325604331357648400593837410496759257734024003664538016570232976061115713243197424101124714972299817953962409335942658433170004803004335795898228717880541477493082223852611216820346085356551035485104019791866620217284244678051251457962207888697584847782499151648446800163033258445862078601035336502349286793845790724404137144551781557914320443739846700772513290639907659801672282181538040934963770578159433944663114808283485190860353420290398428035732907512099152066767510538386805679085501681176610125890391284821398190650982829238755623014431254045495537497308592197081053631244656444224130501701478914714723846433663205745115044942300263560667131554973325746724030410490995493308628589353691423936627365127107416437928142823795247081562649380705671699807364523257400954140156306342709085040992027222951404767700056659946262763827438742145449197420823524028662484470037754138724727846498005427025017576483626188695247304076347331247628517001568870773008007726767813817976135102971254123040474960618427210318985528724081089120525918424160615286283480106298414664025476866301316550438903578782435159501193671631883017073215665255703180298640192985509663574133436591286265421159046497123667266256086559310237337087666512577857004942418234203273042875734444788845556899757798553796007411645032577672665090137899523661527269304724938690786700417331981596342665451411667094977923102684774656025389789063640995935669735258966472334235130594806363622881303498860853286355894208785217032956905962992489252628815756288420983434471444173284678826645002207904256507035591801221799512258242629236924487016020578813191286476281849382012902705202511288512854734471267570394832681789662562577494446304558575572429660273917272646305008289398320359511443111545087121137859741504410614751824015350623439913576656102098611256947828309661039021109211903206177624804892126823484420276566104984720997769499987583546843578365538115135543354629858653775816714588398904662026876423175764029732042889753139372366197420227581140481767164335937399010743385484821071298429982078880691807465999344066754881453176270687932236047826409900641996378880253569487612362702053714010891322381174526274892751080184830656085432491543282791289554690349742891127546127641503920889801153616400827863301507219576081692002633734868132696511994172443177711568334235671074249924367241195110716747077973633559953457284553908024316596816462861545520215125273134324568163677848818683627691918988285363724205863278525217034616996768079325292309787322585177393591178610368253851979415260062705263031035952971470968668293992283695839707075770446770229830232187076107546257135403490056482818047649344892949762142130148363747499907993083963247780386036934653521569397484820441349235319911418643745768732658212939302374331928299004038048039761012012871489297307609129351853127010810141389349338353827313266022010044591227915557680406760996677610246701802132358271300524302031051673975371379096158675474174727084994070663189592478666280312412212532271980293831346040572059423463899913080011391736711806229043781761770883846584639786744659100522158487507063541571740860642961049878383891093322793586253232230139107840089395794671523359160022807964977547953951182862522611042363944630979513563046498845779195233968103866412087825520318941014749535376291515477286163608507240116797647399319102539909236282646315825545559516028112485479693723430251847184458374567416186716198726005855804712836411284016784618681346801416134225895934329108816385522393881074275077666786708685992293824961215758952064705346868858030914182191853244010703878473395000595676662206059292378529306788008023277196374600346267641421542324059082112552907642837081070945275460593351986304596410492466275410311102692784093547151062201284631018403567797553823769873386880314431500135634199641806761927997063940571814958749863323647581187570660907086981838041077265012854903457195804130927120914439069224771902995734408861225550049995167008508888829348353704082545361026646246991198864772544616416147725562111259404155327095766838409125518220491811800888204192387967481510989984098917172956503556427906450436840496161446099999331942776794833073469379367666948324339312528477872541858230262842479522678618841137702569235188213403468343014004342362795544693668992294222360107840159807741661323609280614538575199893608328909710145367973068445538486822228601319539813686326967800756168597446485798616029391606036021638213482783372788598197345231745385661936003043480594636702196989065144962724623112300891068141738049495431133487646829240915022942568228715211594707793435337086118653095641260728139511320187790994661831731394183336756785552352416067124423105523134347809265732578875101987521587245032707856824549310261817099102714902296055735858235654504630250066036024023314534326720197559977623766016321769884989948718426872395486656387756816223347288128496992437745677673996015096755808661025751894977353964258939591214560135639598303613598597765796288307258368987654839678474200801384036085972102036141595006559601357542379674126918869929707879110913231436708290048605981394311790386516694717403107476018048607389464635703567663720710226771877288895986637850410251814233952410549542459854622990685455738987480993527495908635255550751780576381561405514805288098600212836679454361924242423401283758946132136915706666246599582722089367663840086453667550532588338269340448861860827008863451370531201966680755784430710076141456812635701793385038237062706736119882417490559441162301885106585836567120540282932620901903299561821206472396395555079915432732854109528219285620056437525630501037460142988067040206189732615690319169274881948856378414232131121834918894328846585209712205413798676836359827803312535339978507448523949649976890742108023765151209331524110271620980973206528172559729661498761320465347802990559933204871420634745786391117100821956865659289613878206483650005269277428322667972605697586511473910304046141174240294968687495754736046975304502328459494782802649240948263251064020983503653601349149350075879530820067724962114943536995437203492612637837630253463885716074000587130892711581456913792780355552529020609324101112670466000072721781533552305916066755659568309579835969060873905064763292690348916735651718558019832570411639665238045164422551037271534464382980150175668015200900561550186067389648352423874234322112361651536481185114729759840085484650348678048069753405297864565530915958081881971802758520152102320452937878752898009335163662226900619199746770017732213827689775350078660654240723946088546062597493643862219948952561874019405385437205247830762168608826810482717482380122374443844420776866616045969620677837330142454608543521678205399277240908281578653362183218397779350219864644124345156213084727393520515611506076045462089505510122072021825116025739614642605331517253689218389676232604538422598104844276775294172071950596356769729318518780408018022023162697157042285544742794735989516403502276594185795933324059437283716097483936516286542660842584729049591941899253338888882726937481010894289141268007649600290636175611081087234079634742498766532067309281990832903307104816197286264964869046959526171977614133632605783793563878964685431792331019089280015700187690013566839244818021675725743209337883563704176461317237361682893242474585112144236933474746357414996908484391804968754591866299831104356206641845435238161606969306194051517603100537890185337021297985177880437196853501063265839610797983648050187738216776150285529092602756500218208482242789671426964985303097318055232169263885728696163185249652351744462267921016781259275548933124416263731191394956294790155153515423686673205509554616930438241866046701287481912222560164906099851850003403833134298589229757560258895782283607149147331970962773878801949402365753353091025746416977824418830904954861833639671402456349029204666151991948187482266101761070984655691198106739867758226535749504623909073450435545649477213805423577896729988165646692899490550686024211098341234447923024815764125852733814651375002263355567019920236331265593717570077203494332055498526873297947735812298297305132033674639640085930808755007747074992633369665369575462830490723534799031284339149734521564807645146908744399315708201264617664216209588964613111050498804999776825382166977327066944010270612705851821939171876519955505899827607247149284050570438604724526509773122452623558988222031115085637168010983421893702528665227896586235913073123439313294589171362904705009269523836687671094413119280033386541803514035788804023360966324921781316378554757211430546517416490540346593152139877494939195116814948905220277536391722087379168134360992636224197591498437475035405622060417076366337975170774578268859829699932098878564384801846251732490945466551817053422111396425126333861155425647278879696094243407587219941338720707401503795229470251304384678291047841369058850888119463680828604327442190802922132298399464978638210688219848773740610707659345015176400312571257317024322493674097408771096379984884937550852253953838604567242315279637392832081339024306759465824959883385060364072086297584138304008998948782003329530254088030009817198142927829706379943830238046116530834068818859474427181580981626810780259300152975604939362883893343803885019608756921394730677415501047055153923414071197261794889114095283212760047649271763708875731252127719705830910268978696833237868396559455504362746071221056717161186093073737845259747192791290850529225532677199731041206178039043520453248364903087142246914844856261136488910387818189946638120053552520351624300649912075042124050590239906516597386862908320061172943188994914565448266035186003155061713788288156605997534039728495271723685216361165815444087554336873208238583751417820574948452522834186045750741672139730444839741998360945948389853562725844252716279148276309841217151109217816532564236677033215618527311094010351225176224435071915408129387796485728580478758372556141978160063026246310040188064123638044656678530739708289402050904716410025975711845843051191300199670788099674305823429951454409765316094017727784425277662862023259591905221791533660911883366694825366499258012646431935818091369718760193840104477749408630285730092187395263500843108808192934121882157155862865953237318066275107387093590685193541757151411216008245191966789538922423734466133254358117442040175764745289628412402792181358512791722067782203096270948666466880378828876406488115308609334251901188947841011870503427722859516372400172723287046498876211865377910444158995926016632929676431650182570688017126862269546547717741399353323793363153604248529541870510257008653615162420609210609588491287508579269492862335227086513459108158623365097220439517947143056700441890446297560475831476120457327497749959516563396381804870071430843607465436749658520979956918640682776320606181599149723356345681975941536491948046795574081720834746119448197737125243825416813878457066494235242952457940425857177597059187976098802221000815414754127065308507397881693080451131630715713428812303684920024325438448338045919946699637394828124690725387662248521198973323313618251629419109682471438732603270553665787622471733655626674394420331265672942910707679488739083278150068233745417114048640596340779673077718832504586284345743510504595290900503800830841051823863121102979760413967899464372570426248145777418746633656062025571966284682502496406397766384850516987045475497580982334808025972017587637731232561016329632104812833283541975685615420304643773708617016223133102408761074619743402342785140333012699124229806440781774695752829004012304887179636559488815581055273130924178846557345474991705280568154632556869282950320894902842034706474668948946494196723324489378783429926779993795653747024934867274685143148101444028873078761420619305959333083590344872989506207314014488257633594855755359566959946366337733424329295899481124190954368422709711699930496828310712885017157992023455897451888434070506621724443313015663928610514397349045321810615221948766616462061577057294641587757555633068054640837655815663662720516943905906547307789771734016270716402622786333594320844204444611394781141249216678562365421708118095155600439005713225430668675403628186016970321682540820696958843821544433657910133883870511255907506857701371317790971783159442510300911962320599247694486761987857362648013161195939200529546102153144425213641228244714633795613751559351869023008601046260127972778446742387814256624128365029145437922815627454703279073846952629638892096130982762036802403032171598615076891322018783008331247386907941383398808741136482872468197763775702794529335879516661553623085550420776702049720893373007890492149780190032623637283957961205703786131020639186194027825101809654790665808076179493267859575165637744799563191455989094425606272576104302656441251358807469244604566127848806464978902703217512475053437334491054014601090171919646373502531820251987029868994586451408411404359684306364043993671721441743353387590982857425754318273239247294099131837569401976176117977912019780347735144465250182948256793757735727404199497728685780111592827013529766264003642796204380680721433423311867857849261734542954004072959087466106138823658963635596232252731969843954400106451581884777274275326926668932129400925644343769009972076139722453614110453884359163702972549842884042295158418193516394418861396673815864319455722574426744956716127740802199508571162119816304435882209002766553885323219653917780737596014226712744363237420664902673295887225057415304470339979063010213328411641258262145917196818018783630176072793213277162906773252954229584601680535202755597909634004070630952861551773265963720435798882502492685025986405968200041385177844537825191876352451734781682983424437747204396255217869806514389160087562814001119870775576019276076232254720635154464025947380328747858437551239795366628137851015361197509342609284254387449817508441510770554480667575263634933686907816180712917811080407826375544759999000390106546719043956341280056571186886174698054211633621985096550741470793095068443091786526283383308633938988040614802930343203043748613338415861912650623327135051126516382537784884820839844506284295883553536282920692827455074429853038433747967304080948147734527195829347580226514430057243329955426135761022594917963218651359431818184510171439997293789427691362573930490196747298187840965978065046876675029073844562837597873346106612400302393717356282225397045463435068140113674258082643066422132564512881838294974327696449358375091015854560944820404853516372468657033383747238923438491944709991281885460653618087674951503289218106404026160298443436031481200893079307379970228161366861805374819750836576742660910644278363786873987325960771677229393955957763629618094065330000510334061512112822848124596144199647579475798973158340707552622268701979952204898513161249855985563653592724336673600223098979252981817762585981602512390431031125824169336141742740941853051176509957527217072676004617433623425278822651077856240922587940119848576228318886381966043883014878343538921356655387782850669574815890523786236274738091578404853369620622794811197955841350639902847581842143272522831113666244229539050239519072911643749675951764802160165113305656236579540338983203371406493407056168814523538725844605284158835456349991180384021334612821731944769681480178903465097738885447893713120468771960333096256332717241730860425149450517196112618464622933505266858859903087148501661056761643047836510258716410966046222713826796043735690479725075121236160469759339150973048782807906388210846410080339765588544516450175609193172209924803380429302540915701946464114598101897472215374962364912856932172034532434257480880919172047213553037141857590561963104110720748674001536037054513567223016942050591831091464984531396140996948686283342234712642697629643505847986226581704855794479681836801618011445097930585734277526767782770828808025520969265755824639052001028893910849930388081249566085386121529077150155196724363503534277289840739657360642677176018954712842308067953719226672112092355643593571048367289836729687159952012137344743201424205043930945379199080131213560168227534826812657709275721684408186989635292850187254262314038099460829074784805920201396964349036939052440185662994769514343992281932218432292578530098892718908648528764028695438396089463440297849255390673391989401669929820620424253497900958785734441743688498797160094554530345730772255949692929891087609302060690322799215792097735510362948781030137675559450030827411634280206169569715694526409791189679123978872971346696822557738685922273050703530382407645558353840329046048259972591871792383964150321072673306593838993611298545913467193992342154186199112528690064751701151845277260738161618264139156964124891461102382558103345544934323918525035218751096188602408001419525374270998372663659333501123125234202369803541524445794293004737724090792820154261568689925647933511624199838892886658494819081168955018583794872501282576025751263570590285539226046413587579780486124680885919257055034686602575065919333944709951512358228149736755506285806076229710700544398018693464461305295605862500362186425825701485488873790671634198831381035508742005782239844002383308810143476314735306279178671350343706333699643941685340758096905622258417235663484401665893468565806198645977684494796562643871334877921605710140188583744825100189781898646102909581842594513012653759941797093458653482771544195349249136157062339362558333732717645549294217627330941748869647467892282633442722177599674109323558369747739629805038197961589139070656089822582391897980135997386657935754431747804675531678064424392373518635600154917417940967029129128313970137203148103916424748344165857439194526202272338818230964580063138744903316828517712336408943718008665185669430740375940741180390174458683643703066378850426908448834613198873571209126547096748752579865249579220059397565902930774648665457010713772371110934669797268750224393040478605863495373151451041263572464675681843358372882103602742679811830598003326633115372063880526815818118046657950129719045748126266545261238511719292614397298008186181288984887055819815528564482197441281795612990066432655539692605813295053226818583537571789981957829178477042869427097210329036478025428146575588545457069363662598688836387833188405616649537829972909704613449854454241892022076022305129895826720567212986898648267940900213598752974815985585990214898004679477898051196813668862314149120818691812783424764748780445226687244224967857627532114530619410339840490147178336877256008487535098286685785455123965268369662048663759927427015153555674152978090213535535270899187567816818861282627663785603006470039505722543765442998006937215811959764765192511125358894807237404686809020016679622461593528602145872390795713915634315542363306192823429964074252653432811558550828310644813663058165939610190223338372966868543575929381533869096166625484944131494959072953428757873346335827326831795584127916647267146317678197664785105964842932591653046915917601019457142176215238950437885480294912845568032163878238033577125629472851611611746404037648771710664193423956016188682127070138930816369200513526344920811921931156402180908862333502576306482256850512551561606227372558805881653602103847466578602994796059953274992066090105388195954319327655545345169360500183435197437089781308696524511181898365962854905536454119335618995114638930091224314919599480532001072867425171525648283162534748462756000150594665527104408576223533607947760118717460962280720302042140209169280626573731292139683362488029127496584600248331801196762830020895159224720654583836169269915619954393660060722355775090809339369911938001175145073137718475170163738161026646454974470235574325555972980030477364255470511028408007647442096971266213645075796811778683749827102082833034068184136339415947498096689871193830628936660920335136352644737154775734299734941689080996186358522526239075462316988493252483130160579719517301403162458075248703095425170366111820558367744669409331984474730769489255131992229367135710116272650137174862442412283126497379474439129260807592677477150978267306185577839325935811922669685215863777451941151876285120406629289486692465344823975505630360316282862490968384523165436629221912270074215627166651171466058158834160818661854716136779258884733623422784288905338068750848624265611096339613247944782352419898952468555548419051981429200072020033304983931833314847090899025035143410421909006358817181445007659199903818390130715842410954963271001880663049736389703793495518328863931971703848538270068203382831046064892514817758948170275568803306685335728728478847720895779121327629394613850910067568339152481760094272443453712607553267991515328974574405509309233798975571856693580244320396320520788631120554182822356257382579716434394831942906336717725022765808696169820773852530466731734762346514793617589423753338559660358969404642696464361188240330609798234524630142441711550300576576372443883331311956882238250576681806228266007527980214624144520803155587355583332618032948901163089164214425063051669752872841959572939316300765805593368521485175986564737049653727881392058017852736953118400215355457081977740051322574757603149086693804547720702596835661013212071160666010512457948820847692357491015880155417083448272225661261488943552763635400788383626238993335094519271526941158919447838630514687611029976063886614061123665651546577946196866007556983938930470559918646774944692719165078271606532369848580601435013564590412016349752140209596190843024892078588955986175040372828053088924450141044150308198893116326265425303835156595877277313828818226781829163412549748666774700120904509478598960064005979947503459941483192604965112566761563391250472768311392372148187629861221819001975368935435750288399725361591178294182119078679208310664253385277092103045374778626927213920618184393946002244485220769638830433033018581303328075369498688744482536337116642096060266454680758997413056235082881823784538073051887121051313956519117671480923642336445076181411314098977684770706806554743677436011082681285174975078174257135610498885562379984232384845049964650250419014156358894233534039134001540745351440846136957403538225725425496494069930676001853332667165597428927692883181468977231442890189929518133462760103525712439598054717256601043140962251573256884531036885739295230247978350132592476583833859920944769416828924609535226015318656861684928016558772398343953515313548685434628642175377064971883771810049057862022520364310224993119589532470428273403758696197441421042994327562093398692733636962660723689009394745176972045758923431544019286757214839470157343670737930867059786244856047863941803939204358704977539781751050945736842335884425490891897204461589241074158151066525587248774131717253189422726963954468577820759748735041312338747664324360473551060974833507058263504233576144039083734206309335968903236090386334272317439144864650865896903454588616055465089934749441420021845236957475930737289106121174720369087184450659779525139883538631725391029141142219874051126980777727488433434728694882671896441698867228517297834587351569069618923437456724248412791269891858221667673401754404011341589551297840489201259324239678328741813846133370971402270070817732827783512838889773171407559767207344247011575576378845726426275418386576661737327078426930635970064531137842813128238888075082223617970367250815947979216208234566159878285502883395481314244541713435745567964367491676478336697998107831028763134036458017622867022403575776472380211903474458239966346530598975545808068155697334220039334206602501035961898917378264593288034001851297005689432850918009095196933783634750595412887405928429826968017276834672244789988445064193854652177801118824982851300978605948922512615253750396139713544189347622848877933072827276338288937688277898980850353950418929184233088085728689507400605058975470669977796893510532151136962055448818038507303031687642206392359292878179600948619717110824833825455019259170625441239064472762278909040957246325094508383382508560803287403802347358738563636463227455152518843247067050806120897149648090632798382179408349678204936203340700731158045339308254567585499994662277766182620142511971751679397961136227837162526549463045882761949510533054350523608583992081335235443310803791918000300263542215730090773899245628223845373020695881194802703235270010809226009019195694157051267837173621058814370579398979477090707420941305352539637792021205705847445526831818436969696045425532659231437873738676569771645075422471164691833126867906791267482394590218920589533271290368891198344386776149883292361997025901277526914327009321730074744047923448679661823288591508981089677871309394747948550051626189895311061369400455360740322680016604334958996715360633044523734209126309284827408788190874139103514564705864066017750006065418587795905162423676867146323970886709982420211458882176582221053057504993755692212273646737608979129232575635722190954231612385256646983552427993616965816712489861819753947949528087503564343144599404358545952581629331285830708691921504910110395226159011279508814470968233987672370985361486237073716730134165370452286636806585419532895556394692676639797534751209283907756700736501014755381666772880308677623963534241251945863703635953175552368599221292010258504700191970939685202257576002136530423404526167982113369925276944771317196378559576066966519614037318630092576148420828533878179943752261003498583230820732551596193752022382350365056590392054866036223195002088762814659535259380382478135110340623438405621989206008162695730584624515184360372308067942140431700516344355033697071914052813892876995478380852779126939424938778051544637354532150865798259678665372191574551399583005063186633071102264201163792712593029684729262998003004827015758914961941410172593145613380669875834617534586761647245076068712340217292187171338470341344828581248556470931120358906410587034052345445733348579671789002647360516914734107113003004275064381057949494728491242178430405485745285547019085271805603172596805058592762114817718152584290446875329196380509428221051560410484450922495642366091682403165910056969400274503442467093820263869784120250575849860983929705019545857422069296861684224692799945900311667924433859636025713768115850887615915238659101284408515003028084000867074407736375871812356147273117742080954519208080381305827678810492151035295674789345861780658159787139252437414603465817782102938807569453101259175705255686858323496191462176163500611544234603161582855243824863572950052002075478891640697256449242529860888396057345565130335225037363938658625553738740656036733665946801295370671554230702075438202589607735620555287444017556529773110773455811767059263588244640898197682078747891395002831594997427875339509621448328329835698966685594410880220495192634758646053657133240703759067731091116296679052280111016671869445586784805711851749799624532594870277840811292187050215739631021913554338769538738752600366145203195660002367568781930990323128006431081394106737595365456742621757690638970639098806854040168792171357135036578529783021494167068537842195475382318790596065648340900368920870671702308155007636536317823338920535712451449149503939715433246864245115458342430776047267091614949543214120692885810732076279936735727729351321574597930076618090555464260326531251599801357504489151824151046092988446177452264945493804266895108277975422530667535692539151908665445597185350503067805118446441880130246597322917001555936441357275300648332453301820768423428507166048802320762097704818548572001970199025329908076870200925556684187245631419869093381213069465987353838252728554754819181950251994213105674484511484917073118709416963413214089673134974317936226577143229169287883329909040858713574132484304983364162863471814402786947565221794752511188123747073797213159522773402842511817541571303564868650298770496562056798221252373329612047628410536494167463590494846929656674741993202828491849693739212546766772901009266031856498651457421493583382272074967212424186741809530789409153406487217600928095849822673403133493387727066706977632787092010654738159511538311530643466375720877651574939525703141231214782052088980099583304199119368979413242459073459901597905806326697404065980428310971910571681235857616885731133980776075077903430140273940950669354112091581276381578704732551342434616688051975251822381235906493145496896155081096884222058885415693684902310469753452536273674141398593179038957501853431718804647226590739016876945421513761522659028879141175663381645509079331756569006552718393885730641719031267434294441788468563479341276338381953190479590818892996313746216216406990664380530091366731231546586216760404631618549146763565107793382779710268694879579433320777597560302715203119032897552197030003325959337605851519478960371635682843086127056338893427435752327090050076367344188138351307938058315869451454886684029116323969414638271782643504714389363731897122167089145935037933059248511419432530412081588743616849173075112339136999966257101324630326986777272846290627267776341327440390286043215574853057035978741875074536075508927619370302432685880423552166984337298110475935233565539016565380399392816079221006928728157725866899055091821607662728785026524740132176763343742324083219198399619818858757273467646531570970986250993944833319624645489404191503866098477509788892245563292578333456406132053868688669090846338257840816960897049186816456267876095508453452452733557641641334894681894204038313832481239707402872957823607339777971388826399686935385344449198234622393274442280967296700994782757902579547941893049039370344492551740544253240919438524181260192005699581792302344454677463203431961395634456411691983207528028446325047243770729438862071708787243514777459682678297096475627352427040704260220765480130100155478706271657047234967374956683220214959357288186171263793543040743927157393750629965965216559363637057458443627870525771078170644555084833633425279050578344768990691269514452846972952841990953660794390015902035832188855927080011250393224312250275763600699247198870491817635702265473149782580655513494302382308513164003183767851951191573931696441574587571303856171835745317455665741112844557619728449249573045964885255457406094795279187562460552095211224642854323455288053913869093757747728625674803818678496129482806492382950211269191344961595699409507084114025577050009094978029438656597096575773977527678588897933273311985152384997629704905212884747095151821250984183790193363298581582192474926200138357626308031502410453565177571303096133918558648474832088395601561421021944077567743416805537523444905055989368557255475841037283562756615976333879802367417435231468844099107268463457528106909958423048231674183517019711251708287871626979913247955096987035059587859662890922209626725569674162145802015148506507065231004448641589088547443679802007338789519645531448099351041842995022012402677352894111045464635632206550355650580525410989492652001468384691701654954939849016817588480250993987211092268858679665474459002709792215962018843904024825071377989454486248826836708236127751361896868076914575660550259656163054989430767003057529371428203485397828407414182017573442604577480337753224902389771530823523077677127653097266709102371800631376480950910290736499622090811161496169358846267950234184118681260834868857479657829928742151572556626528907863368368455740973881518457436607593113303868519719012078806876703235441908992604507194849380904840067383765244326931337823732070119415721486689988514449034460478407889089327210043729367030955804366485450566415789621705971168782996454379728585367911364089565730317996057113869654780162934290746535506108742472751929204461844602006477044615734236544396097907178777185627046310695915978857800675847003439313367706541980727003984539028163932870089314088574233538257901171638854426292979865640033282894435314404477925004261627479073857345198882569101541017511229777775048368150311301599739057982876089300409797547573729877123765915566796683218685730637848617906145873563315457923228600047778526858576284987920707972120162049103697796507405072987916016782358171600111150074874431232778419341070286350366474602122564422332089803284882795706302813258674577798851505944648604395680151192523401086966900292809855364665465963686744724999755712689415216274524949190378441443817802402595987767226654872992670814157795837779436064431151475639884399885995175634228318233762006613439793874394101219079008891362471093777627168510923337833690742789241659883186847268503186551722114929097028331153061557269525118157388663316202762966237001636180549464497174507668901259651792938865998360699414259888483380428068342276330080534654228775068441899631116766989618129721033672320877120002170122090850030116505396518039183789260955442123471413397125649428542931784281285469278442257723036305207311710972796131545019934984740629418316914002703047444852509853109553811051004866545805906756821960045876969239068632559189997101773494787745127181757492005926393756620358806897393879668165882279054656558911296467148436030581880655411564711196205808254045662096021378710061283816577005005309890909131047523082060228919315956244018062608259191046682406945702728865053256196963841925791616649868537613688883419264730587320336962441166815053526664507541105702640693348790018306757444443748978071666572390007411918270142475210554250757952436133684357039412717565335295913296322840579883520011836354646527380612132377550391568895230042972051920621003577265040284916215060167449695333930158191888910509425938146598707420288598265036003314463953655097104821849950420833916599123834294215934551426766073345565225549485508596969445121580197497815071591488146584845862648400653396300064060100335870680215765425739002679817934576687279289655763164240691130056705075600071807383614207495000392621832207213022859139136106931908249685109998323428633914199876281456737102945665986197170833489654918048736374080170771223423787722239768589020103338945187744493801395272146476054527372300704166393303913951330193756317204111203610507809783044902891121774409471975708981751520493109947016907471143009042403570030678346354916500751582850618178943500405435190160088966289792476076035633700445691705347694173880094503532402279403664555848696134925958464414104493222911823503570715162477124497940791234183812414829470350817647263186131282162873008137457330569994628787656139310837220137665401653397789921513759502066547267214705725677583136461638249079052771319952519166183083484261546402942929439471557704458576866923963416786685686061297729749174242291500725384472016512017092348725528869393358344025072701907563385644609321838004214851306929683988760665219301311408181142360685817836479870010180332982959380607462898873556293211905331212382616434884267417234876560036558296618920044487617500182886846181057337688478705244960160708627421348463018073641095411558107352734373248426286076548821850722309001437097722300962406909995309974683828832770661292148281989438039350864163197823693973957771855704101276623175416736617420057227407392269933702748880375358816068455085335453806462233988795977739858779137852959198219226052985727986842460279223806816542758360543385203287410775222985287487087577712644868175197315269999705173545663044298474960040000865323792658160054003907682703758886559278548936805177719793727836545655379867838320552411537987061147801795860110306848155917223307425658902241499470872345116758052858997268503921382246706716625940219074970257977216540350128999768227047026921167056102826330251752514803222212011582238770933833999768551721430919924598165344557574488597728886517789750060250187777068849159594793310332712164072576681942120426273810079169957228596683008399527237461147408349496564338664160136382456690575972064181418142832209284619896194158412557192296658887975774663679997613341949608597065673146388383873361053731767402548908230732688085616538219333315852007395115800430514137394871344558708775254154370921659011877613552694211356904709282256454335751367184663974615350541895909696414509052983896824256513150918572684062730267835176373939425287582042245392587418126748637920119516684119968213202010559189961279785371606298291976430337908444882874284505785311418751430281195728262950751368966439823797776920375856167414999563113582471861670544908381345848808551275424998680140872861177851347118527868750701681340267149691563200502254485649945122628892443867987394653016676611585682909305098784755204872853131286215325207883922934269549645925276836694121941389052474424121623227939509993331045004098869103919128883719593016464094678220839907507249057965911754558668136247001218581888045657050622272946891319723387749493893479584680045598343926962278921951908215635964536819816240860189246829516716697177507160874390064846187740925925253937012527963526151123452390618743196758659290862658813555868853992271251772585549178295373180270120140186057979738086449901264359655340064552848533266284979213393162124272792028628979413667446721792415257233761910248462508348386086159989324742838123405597166590285203941943084807347857011599412977707387123428429809618349719824308583357118169452031906248582588626373264804441155859953667817166881891691338276416300143971036323945325400326326984564266903126410246908872784781424106501343126755136394230351252783123902994398577767456405630682044169079994659362909907105480985125905528918447016190209138415588745000415532482250068310946409524718022994498788902315703403480035696490435175235360018581963281331440581972254129489349606638431157822978817974898688456300579005114757813500452239303731167051983188743203810733701674839995312770001356017288276234874381317777181678600184586363470933067250633476551387025043890510672763984961408187612625393295530239495001019758955743232567337520767273463603133981971376821456061788806505990810659033084327752766174588520203277213801807351340219714367753840035441695781046340240683433883901399727670457836783248565727622101091522858423837250629796572450703594191739371145154631815297522327595788122149445320644554708951087536075416335047079078314630185736870404641526885258517570787150947400428364897759664807701877113149080221535183400306121232332543181105777553990139830898475200634525847603638318431129268899011415778578487739951906609132956109679111969653710568989669054066327249623066270335521099737485807551266775821070128982353533556271424369813812978096492395030867481199172345969505638170626567383033522838809642466003803340168680310252282771566369180651392547854041235625161270942102295933279771147450312290637201926776970884212270141441161337941454232549670491095085409619460278701508561934208093592984164212871987789654021649579689831024531599045778966062731470413302988870645742986869553360351510528368462196243025171567125231574406160142703047758509001756759265107032163374741302901427960515778964033840406766634879387368691333929253403688045518562546200854402777419769612915525891139161795644699875571702506880261471805622997231967524215694852407894307772900097971833381369456857596452483193307694631210205808392831965098596945393101566150876191415622249393324703963189577374266059447762774715904191001308709112090122638821760358045028826449804284647578129079287888248744607491902435939111591979302647228563181902596003045047749299837929189168797746085088314769802421730960139686663221373746411517863149284801250071119484539610170135144874290728486694520611716594164245614706683158212019323131086549146483767828175850914188558427119784708344493680652206746008065306433053631706040280417610577324951329989043545083822673781444208363773933464866490582784498440087045732406974528402834069879115061734370531586401768312156948782407746644016532883359462443809038114847711703593980199184831160176202659215318041628195921903796297347340855531921713523552580716120264281906718497458268687804642341613217443879211768497442924194609715320925298309593093918973857222757323554818794578750222375368941491216743182321790817769897678465551085264112901286997765614158718622569924028561536831230757534517748721724228781056782827566503551357698596147264484758451213986856301437832027760673415340151365168020529764461797415121628132917996168144378740756482523973814834384661308941994865871880119711198960967249660848858007654418542605917777779831179162717545733343433958524940484037673151171692620293986010887194892697431009619250765494931237604710133947104232173087459011658490072929493992638155677836991942846239204700358679387897359942919059203085280159807656664965764634583964931549512704966109125646453305826428992243720384093299054740797829803272210529001826060330048419280365136023194615274169812299123652957538619959879525049664388518803319568554121433898622353567595032154164550189703824400937752036439207371202404216315387088740641665634156589558404827820706512908262095581941614483546114545363796588217954422795883621802996732171505417228629920948227938612645809397105461311178919384427711146845083272818108375980723180881589753981785320667790445438725660853281562150510331952516496340927226294637196424991196205252177285783592044883665297059258246444539219238480916222393276438250132907461869495816835195700478233287333822930867100082335372271246411518824829525731853099174871310740315239087681869982287898824561948266645504270489942053435910267461179651019415876815025978169079444470963790037019477623730354784667758641755106576130094216645495906122182618989784081932376439386234294922200629706865472533145980771042715113736994994659333848870256264400717618584952370498355297662630648556429981343975201678715386390129045275883235717478389408998174055980444483370393775632827530247422805944237549018315933635039480053087862746524954394662301677117598599989227795516202249799569659809369135882637529528910214235712790362090114641441263670894599525423328118297925265348552812936186263892352561105201644094578068290823816691390956058490542084170457504049728593511617054365738243252161259021805984937130963293011177408002655342761119812751425520662176002351563527390955915098072838624261550596391291917134585069033461080699576939376502323673555856588786306250890787881050966793159556619706379169137484599175881719138897693996705184288807083762865151454753380453097632310254713483964215805800798710516941989410873009140417584161370396555384840185975965889023886390532699270466923274122991155813559053372251500288036573768595532301654402701317290399054772603928731346222029776673526868857797531838549945222823030740624901894857730391787787158614847754993710392555457055442711267877390791652653279809962102415103274286741774979987545703352658233081015254733733141812585057833100915938233578206083407709855923666457428638865351441678883074656380458052006202836466687971797877227668240848325196950668861519864319136617539807586664584706779290485394591738261741076328799646983318897543561952506288276779729129777766161796044175208608688187108820922829398976065368850986957021793257596827832460032128149101410946826175486843108769646954967527623207481751683548979416374076053782402688402289788658819385861243378977339323757506343115210767728325431156015746534425512035615520162209385108736532541188904183068650387622827222881771404743324467101654117546192515343743720750473491241157183508769883697611366501583078980467581906276125901775389923009624754834397142836439107625537801360269149623722665290296468282260022098608394006854669897036858103465595341929578301998807171648987075955405067194312396840512619300681375972808956844711470522063257660882185719459391035661829703329116561399742250566033829930058082347091785385841610760800565600445985039844961159807653045807595668852080773708593024749494416324930888106345721526206557030910082916444059087532754895602978134327733715128837513522781949807408692987574045472397211481892739693893369840202032012763113667498108430507643323397897650596473976207852409511843215156076847036925135749058882914301023998141174178831975815296202868137107268939202942819259147691032057050056805247777417602624155487740131170397137040770124675175205533342501861093289395377491088551188236563621864733104704207170246519868555281354388903624664977200451226502930680005980596158981071468449448460851141003642488298760236059354577391877259894573364545979325526453147559505034834388024298362710882686037848573651733573086281298040936100803396981312608303337772876600076723242112680625075904403754803093852177543674896371549659005403999590381945149435186305314480868211291245410866406576713937941591509911482530889500738028072206347474916826351364654660151457123804419664606609308310179795032793034945680159951424176016140645268228586616858726938397731880012253078186400372923045135083446244326073441773434515452070728155587978511044510039721490696493716972205089299979035076835428990430413851321435336563363005804310417021268975216409393153776072140142109754853748338129750476059036286081939256780051123604602309932112081564394579790131821770263152476702466262273580440741896826389318205236348271305648472008995758125184667819169532441176272404949187425112753554944529888090369928660262453226344527229768410321337231152386615744495592269720104328308480422515529632404892309912004742212804673562236765108148995464175497615101413317962586836774075152892280297758510265970111049621815306006935503830606527226524898108969597726516419925663879974522042672109514961409506793698497350172339781542320253680886146931115643545154601808990432154733713668008633678084310603345492966659637985216141757952198594594063688987705726574956464673326444293038883180443216137133583660686371939287737584128871969271838017701169542221435792392923521020743238178207967765267008961728723759831730658438993472367614437644018422284968916843601107855243652015628217286384954964819381510365423846314008571719862691796993365265276789103732265462930715481884136925200280494910815869360168055885623400512085935372665536837450287004406833325528644890506488622671057301815568934037753708782320712881233656277842024802758606809778298159567637204931923367978171803621770997181457376613459581839584900598323280497176502994497987540148581141270176695757781652535467968541958073909433207917950448487635108113480357725195635673290511475419216430588075671208559895518362701627394129716769799705330847312580556790240734307463381326569418951363545196186464573475323128873722516108086644445723879305040444542422687815328596413823447205049440015458361144128742972391140732849256297881953216345344681566555969144382917340192584949666802701114395706536502985089076473047991626062380561058175669056462240926459642493307736086242557672341925361181135512884290968235156885958052488935170137859767024586852980249939460083080127998572324133600187320324979142650883954496094670248625942948210338209676937392371717367525627024527597172133995042891911021913484746261445406346279571985142378232099083825726493743763150477897914601355017884575367411003320747532601441850697972569519791425939180911838910516747403642503974333016326578591667837725077126213053369055800870107291078657525889390795982143747166003229545938850903186451242081182940023430589789103310631090703533370249663948664532166543113096883016208454242060825171629171092594650022571980502547250792507863121340315937240153144483027717003848685519792790563139535749383172474833025792490653367750387620495319291660268792495851272827959137198431553300219725226012986474610020706345946213277013747628358030819131532691740064259423988425706083669720696569435129360444206893898473134053811582462274998106535143881828828272085164091924530998416475556230821730392892476269147558620926715237475494431897705791331004767076657999241911684693769791524227012837296175191760195312831459067604450488858637339143730448600523211230475795437122424366148798199829237598951262374039093848049642033923698118243219707545996807508883043268497809674195190085306063655161978065698117114923588120336601748237405820512229580208680187757799156423929364887311403646996592729031389615212563974756387770315946331035553510900506532840367416606263337323371558376739584355971922791097086231596219399605725224477997076342446658747224359642399160204492710665819987042280211375424820564190365505795964114393216107670790906062825206086640353056956078112549704241622000355432873658406218836069665152926442502520273633024209043216127118522424277241897079559460610624845823619634057571514820197875058360415245400591551763335302531241434832877116442024934704581163642422219247172281412654361579951225447989206212992391626292588078354976838978847569828528234594696244820814524923735996068218513839282100597197397503473949583180898114712443962372249352127064159126314988475380760657013703863526729108539624666198751527007396693193473728534153807678756147432806676538618523058085494837980573605317364779558657524868205152861105947439411823316557957622879246994635605326177858380463003535631074218424916138437558791142294183200021513767946022026533565778031794045596500279152555756185599215231001568911281921906390499529786253955825203519029586512210509065161914292272818736395427081255686719940869573601848240801174219611555034188369685489792526081719386407276714938095299677287995286473010477471526381425940185469505618199215457495644490463680877194001222527622354416162958908557250092065567402993427750642028454242258512408141769522902346560825975975317135156380797795542124231623085533642472283385104801827833535498557829762124639717018942653048218954557446813523915226278449525308577585873870838879458964883109194366023975647888383045107774998811741856780528214946099512070495020773692473459123167884019988685110091965042486202292856592032877046181884532112952982887524304751398940079395516901787748986977261082530703187267746428709527395026935691928955697083494708396712968751201110732385671670201997954245226633161479462458363065563190911642353987872641888636941730755948315554108612716435063585539089512327045476272528421477875540350408576925735220554931087817721581577457301424700126845932606481425927056485008924680336442220484225297304434943041140432019496320400224099549169491170387362215929321848210348546386672992929251458175111402134459931377918933317985584783371768389849894986962347480903356318971958213608370369179609491497228997658741725755445105956803898821910815301229096673866794149634656454540891712995209017654056548173734525595825528471857145676253106021610916542569126660266926295611007020850366022956013501613143065330096052245104053281691465862921263682978557912690710693858786223489066925058594075181286165870746024596218874291358257391817687982229806859547122811919627914741721360443371424044323700172961033280853708256983135541992493391126177588216752647517336482356994017465800323414429764684608189035264521874033471809147315970714535299439818016821085533733528321870530520390705599697014642337899207687087412424465818502926462978789826200115792609269876120025587867602855111005164199007169822089958063509108574727281018790146193611060675702843127991677121767508984259638297065917346685852730233537149815745724490877542798213499147790655997742504271577211215783805129552094821388454729456764744999433729076892257046185358191464339620704119316506835733044914873533943644130122107428792674877310204429230683099472393471817662082566182349588412120919984696404121364593834028016128614457730221621493940166750547704407102191553877836807347904412300764435303158418223429528523647583405912215719340100275859944741723446661520637427640378037521625951063599894402918962789998209296868386190950757383208850466278391996606670390422008866622430767580405120664878411705946496951291318971952823072434316313455776614111722131520835516971369346012806269930959289815963398554881205253547621489068158480678742144222690639407196519368071817787673593939091593509456328219690732332857752453298362967133654396971774657199162757967451676985366018707802452227133403440858822223912399362041032925202840538377766280572868709103322757085239865093753742363389238006469461673651203874567388235356624455925471170390162983529470561625391331709810840272000594577896642599883259143514990430103024181292077190292178794843976817573312659811030929619778453667310322760968283422959059947152008635148799538753610470299003238699744052641437425037530007902808690444454910129022463654896690439685101655682588817749115523449766070467700128329852956548128616082232972452183565660735233183917607728830785433346880078129703856530552122286796023832606401727978064452386140218543282667066730662018188053972454963690874100982099271570062051037107486992679809189777822570278789868307709239763509098516660976113506531332201751953631696636912491224310931662254027629761992744794835408853688494092367415451958946832503664419413491440097870314384645167155550433305107552179025209399199807860286240920898363940352100579897759929581281529872533473944203307950037256604482970448451925789353625091029274450918778784306456312864007883121789767161464525822805074756265744344163489631798557452239078289347385271358534844571201480546136096096105022375720484776117311366932043557334477797515927429204845234253461997470913934161249580233615069277967073306824404378031265073842243602808723248234243969930694659809614774554077023301760000091775024888350932373036939628720760462869696153854533906551063260007930733178904257574572573662970180598699631065614403506385906999139516282015965086145492883133952700485523264088710383505665243507490700559945539242760590713842239226548292330087947984251335342569640831409556092578522493811863592460302588878780190624925849172499943365725646420068786819980679171698172014723567750455079785057907735357544824574767940235872460372373934747109320346347856975274205790254802662291588911043774082116658649224972774536724538515323373299511177491592050891253524980465996955693919340779428552030419786186983230269558654355432308064550721430241091446762262343889511755627976456005676464461827953371679096930386265097627657390274334833327561855842537595505044888182233106967747330143991133574539386637239844397744673018496557642769653886703704459025342391839754895592242540814510038213850418692699751428132599159124481679639357501891483374932594742749111781950772197797050339851582556205021084316236799207428437795550936436939271947687768240080359398932786106503247233846378767161524887805314794275384039635114810059841444503029189597649204838300718524060636386873487195922138437163594622683558066399318557682501707303903795790041308493373282639259095885798077204955118396780689525213066818364512969074489435390336865512014649198134023851295752152082336372084134136223845574786897307383476084133748069334725222370000408214683866149188665527608695429756126575002189905110167019227625873637907636554964222108824672189163638122228757013348655718526644339213554633861715238997455013594354977341191993780923923332040507931784989735608475300746450479787766907782747490834870559178922652168166799464338345372636017515973815522556549390559807447541779024260185884353782968739579756206934866520125934527056362696429809383163742014716681190155526588449745057989744741872043470928938164806954509167468571489326666335412739006445712201001428971982799053975317261673178949252878489537494037557761687486455718362566299752118439451071289257053037866981330044238659777990777198174488531281218684044432055114636871576900565696080494119244147359305277676939998021656635241943740850976843079273892448269220261801355755807525483098882893014684377915359019171689724127089710721533502707866030511223875336202296539944930111401912167504983678207903868512950419063969824859944615625696735071637122954619669680927159499210777184214052962333600376633424207585628966068933780776027947557254234415288979341288996259802937260134255123638152949629919557748573245241677784220925078834316979767203624460444368177461029619769758474163073642587201901568489772877220897320780300970014076741604554080586806468719326653066386375340718767436717211272854958986610928243574111013006143466991146028532358073232985114127116168131038946822481408627939071666005722374990848655365473177057404101867647714436180211064320092582396185718183064928718865192740545389346869316826867310850250760881879770913793967573987198317641414487302414696831058278959961293332741503119062888786384509280101808611029949267166723517447080914713145117811975485461017601579763934043293438101608584313118030218833491695290737496220281947699499689502751581694271133052083639478231690525496403596162715454650899737566787479683257400645169849106823686912741403477422288109550195099515583069574020002811942385974015953036587275776785620215933857266855971593453317304610202639740840056621418850056561692193105996673487157886209942714238258596773581187593262781654802191897136629769952451391661310586604629219417849033411938038832866459864145126519056430872770356653150907155880320286513696819760239487536747686664870483631366437662715041735124697155476909606801307399892440060811758411396891749982834866789678214735614933792145839022232398624985219414370632921507681354723398686160820884639455163872402254804879579348607507235212384800970689657358549133629669729003267121672934651359025500014077540818878621479231698058059313241398659473690672696254914080502413422613344772332412855923907243413575937790859939405202336450567111456231931885071292391757684947149719032068459046531682791792081317127730850094692733475080425878708398058667603714159808627482773722644389408185415474932165807965648658466781044429852885952354003602943388388491384929148616164169320551707523725937704964277704235526156923667241248982503113735808807035511111965167606141642868206852896397369553785263288681162808563138632010930018214983015823153705294989248073502032699358684800374124522776654909212037245852061621383858205344876466239665166348218431581223394146425158732073985769747508052063232502247211189238592506540511843850070924359079006998450646894799386629566105754258532382076917312992899132096613643421593106168202675684305661002275223543028197871855597232092084224670251555391652894342389751161590270631597190489419043020297350608827809687832918039747565289438351454052166676193216357972630062336956835039097961263498980928054447307355627253951883705349748285376618501714209589148645428497600171051431888644697521793360025677759250341772619691394992475219396228470283267202453800957642264010001595752922218946511972737224197219885941432153640418562402894035311737818279421558219858023727943451368750410429267414903887079936743977813553275575927614473321076224007002980390713118856015849385372736308920847921385674983433361718595719615304539822140558537388830532499519342832471731515116067043797641708168743813609664300116762502840454511799515396416684571981716242913631216834548104228325441208368678573488993352652677868417699517155985586667810083501676130378148228063068205094147996520208253632260226993360934264731788962659809932069974772877813425944890894553086180890765933375242290727048134248151411803911023525573762840267712517109463782943011270324499817009593245834899533567976888688100436528600683482563019261624450467707262216394261460323411945568617321315337431671199357952411352242753943650268299254274495839364019022283409215557268345312099519310340027323315907089769937659570134300090032532022733701161589880334324953330731831627343130042331404051810938693566924005463553695100355920102087758972374475429774500947356196378420534568063622935049827068085672986680400041326110365938834437811854923979232728224853658832301187661314008148234507561209825099622212422497652377944208090049634955833298308480640584305353532045284257903775584755266466658624941494634870468433289598875822860561640807432248385303154852349033757762316816128569547159372246011420868831927191005833406529704277190905222225363817648268950917753285361648529027880356094309923752206914043613520228569526606020683807905887152476809662157046435233202313184760538165601908760455848037530323062448596351203077281033452828808267627625025536433112500194800052661761511527701137180888976288724395818428097735987807279235268440248290838162259010835185484607033826650264463824495679188301397933105795249462366557862148327907905216144308201959504877640645616989521999459964651190316475263653880059291440786794774856840659083710387071164867681489235142321687615491747921458611987844851265475772004495134172098938070547971211675362371846946396655449494578906685700320824930880476094532038797791949878689511985365917015143727277279279259506193160496835213040538145687666699509731141331035433139056790267468868501210405647510216072559709769487378774949729079497404116730773114575851979759528977248861021258332069889880816661114913676021245197974377545894111880734145237109261873417202752483259557126159458772398138157469328119036219190328282527845969864200188287337768018295798360524425335401405384831396900264797054629829952488654965676175371901407728381862410931593058126624608511615825409177190068159720291840499790338623897732829376841089629995180682392321245599959261482114310949365051183143478398310212351353821581058934825839296173810377039909923556371479232881363130275351324602562212323459714754014860775379242115875507153685962131781872053495613699468209875776858361177159302435258633454454414198294022429792334772324696959482965179454468322707622596416828050589103752586097414317672496504428254203986483761683239656014270526501308387482493586607818778332965445209504190977260038294356383051050828761884452428178714614767149652130497169029706107635465786701776784946503718980291340395186185754131213881032400444358827381888621062138963977499840532707082573049116917767105981711075308044267300551448805612760775010219987873742920368423934738437077558816173169407984245374222300502810254246000429716117169631527172420107164329707770942270594309399987033923182357871994807901740350499642725551044286271153240721509234125559381243757535342884001856737408302526529899101727269610584978682940792727060576433571612246414650730257064356002714847940740687114034362954296300446553038478863967642339238280178717724404799431421698114006878239505619928718279857410965816704313632065379738338363176695170668414681376626729213286501833627341065979215298128291107184802048085580050522508270148094089942639374863375822792010482928240367177309369690127449088679763855980965967271728696277226660843249376905884000302267547605566978510220021312453132414423820727394521804130849181768604282603039487851481313573576361848527658158843437726231573776057657339390548415598033143633495533340627976467410283527225074167583878056853407277074137359895183807378769236800494876500895875511611000335946025619769605242415668017267827636294713535245400866416122203017440826021892675340942629978480255208992273271927529285468474993391429250156231549218214066699754543568935217050651466247095967883961371507947011639494024697184680529110689137279811406480589068699895477581518182166360665124247367871948985760056377707220666884444660000194086073434207695873751811977634226585097664331971634592922873196253346644439870074247414621125650450343950548214545275521379248929165253674222677214999474697625989149600636642796957513614611765738398608646632100827167023646189086495267573696032158371029397838558747145220826258728454510888484073067793535186774592490384128867300077415518925334126148031750569494105933376674574257721609740756408312592591402165419051397809493883105017893697362406624000304520550948153846167460255441850420546023273903323468159801147793643404895058735253689422148102821425463688920802231079191668389220404440713116761262891674410562842992510788113038736690529986541796098479141766875477872292588691143182692907590022140058246322406760961637753339642356158044863893608078143236955250499701178247633456827732081744324264825633882321841424423207994735378358242776262560121676130007357003156468434355359173691050060667109827602941080109021030974342700196445146599249225473662447973979103446152067288609448084251037407549070580698387689477642588016190582575635248705994538832614691324569689123345405686400021120409718670598433121967899478992006874609477704181261828602365349532470965656768489334894992044288271466682539615136950302731594461377754797600433912011897113895429093697710030902006622155561355429253869208424841868213797282528493690015510217527646168729249509046765929858072073518877459988694391397257633390088679174564277633462368148486583577193656231878406390459121777957903926645753440430098484940861224555096531039169253714101145599570584981221415391014073853462056227272650108237388658383462986689576642863550532479316799951694211573621649034489078431321624662593155088585045878044243389308002976329962122347934459623943230523319279519553913285827779244980051408049571240244473493116976975083351323208490039012480650293452363544510237064588816720719090022826212882397801186526159456675675024573047195675312263217311058906504735009500700200336228315739231618426036234066762040458853753945232711934895918814696364935362020745305290827282498246759422931632276959568166827221975007883673998403174274708244959970207311984169715620077469945838158766501974417876997836973747793689989679133745362998064523530034075921135101125607991502711196938787623851606538200083096577113325067800267507235221861252431798112532835591443593152736623279808747353861879128425301331656481806626916899833470198312773211687029917784001065776260932979578142681776133874571295346427053979878514549868744798763511684729056368340869270521373523764561572742204112023616237201364191302670787063820779876457949228914108553971892431589031774790718739494668502333903206185961033882856644319864190424567967946210275094590165399345627173232800037258257119029565188944268782826583963490164532191028338544244361452774111031593202269147511643927859642529409863511916697742773040194412316891524466530077415504560301183876469940018168657242974870471269097739466331902453413465465170371586001288745469495720287584142681000434351524790297585812401971869910997551914762240214048782437348719225152131644470435015425091545953918888164993246854446427308876982966071675433177125803975890771886809855070223893394144687870216962030018014652999113502177881654207856014256235755513806096065208474231510355103996714959165304502007870695448000141401993980502007832587003799746822454249395968061615794609681996729093880396802089468565529167712704175637526940000088623588691081658636892556966012926776376179576043685542739589790639807309476519668448586517276983565981282915884959932664708685864444372359592001691794791578538680387470989966168651967169808072083190937567262209299386466552087744913982226343160859439097678543250985740895003147459912274734335607209738989291121829405965147465772284614066542339202587034758471769232510256729605241254207210742325346786759118834331474046801102668355499815381200044187615379348783730699641568473613630911904750583950032502276756462269930622506564868144141379927134090273336579031825936182972969589506179749853755652386744682818286966993598471214178528914382928514502471540888617966783998520448837181810997403475353038777770765746888575998821397490259057015354739114205131309456937345536699780740453825527820100431325449391782357924393950798044797081004610078461901100906882395975049791788997126562709676067531517024191577139573099596806954944790304593646154887032124786149921502158992116579354171380199270998703246765979034788251032146634664498722029823024154960724901740252993719833167673361565420397193992230781817069104875501878914076390861801410754210502664644116883460341399275672919596748454056773146871219530418080399557200318011338269286762949906213823001747637337245494926503017563532449075269571202547056491008768805870676998678633101108283854343155648777152901907753061822667250901379844042654007349577194381041515232844687288026704407581717881716549005732495255143838324926480572266641027646966064092913959594367501489879047235367274431140763844551561555096574801248517120520022073397667665400033241346299985649492138775840096401999451153156403290315519669029264805986899613477891314317176531119584436990743569228735050962033514137044661231383343443864553716139426622582905555744693970285675355382901288607771337305318595035733424127807333868660826891495916138792350472423705755938180799111506280548592599758408376141339923275093255841419442480336059186577363991972515177408906114581519798219032031003008923701866508328473581550730172839983605968446394497347235270012668914767604347236711147595661574285205276645690650274735101110219619585418904899921917469249939250967806805190360412597707036271218842623942123007971608991046446064143631869206169588369576145208220457603609946525126435077283374582327641969681789166478457050226078615038824302120267860796618970261352218944011785192260216256908939578833253126228749718413104059492221371895210804199249860585110382271929774135721852047310163777117277694025190041526436681538385789237587880462612430186164237799770433069741669776356310243012299985955779448401312372824823113891425213979689879825110607401274695758664409038572450739802576592991729622537910960184204969213725278427077052787935510429983783972433989550985990057953465804712882252291942955255928489757062729725042871582062437253257911909636895718110143667922579258126988384931675570722791604201610287844526364444036671275552059657818113743306034785170575856181023201245034956976575229086813835930305508708009284941504297554642207853279600888666802706167069645278215931842098103858918775928780916418584005836919218544727733520306207148006460359492860699020264317472236385148402015466485574386389839079014182459729700094783629845455097662788903010076293887280804739799672707471350423637884193887161320801916797791729839655919009542194243877803869438503075145143183308210773359225928122615787311723379923126516205824991810502207686865495722992530201692869231789684900311509843492502557984446814739999504591637237647744916384357211064970014278146082348901124727889333354349753782341931543569723718502815040710406050349770991660090727357533187855936462024817345897499230696776059224354524336778659078594331016427858860944700639360559600528895064045506789195597193963870417140909923986121712453830729615073370650051304195032416138045746558140075733326824588962748062953441378242636642871223252584701764633300342070660730961207484699413669053500201018534811139208894821304248365866135116861290859942367644481007254933301321571784971283355952899650306627309624585113871188961309929902668353568737384445397372767636149233674585696336119960894892093871046649032779932776506467680148820415758117686814521973506234954999566578642208341796278104219059913258382713082285649799503117768077455812292425528827313383802720430771707105219902419485328031459943829179587887993156869795092156916845126305846384666558208019518541012057254989959559025996873175761367202533861190951620504155544711350348672050163516685194659477913246400382521614864447282179116544368959599902795987261256996481442603958368477935745616224016928053952641515898780317848386427793577536146569315017318490263177000957276366796722286953967051652424156929382232604385703624137304388597791542529158605965884984895984384583619252296072093126125076729528997555067786366217754247083918397218682113448968515773641003755656893851928986157434769727467193069392904628007051072764622657281497201782990019288431082004197204299247202962867310850912027293696429731925759194291011272596323430404238914399296742312709427536362754186902407149803258197089569847845218590836848369646101939966609555856633388951215619846201515707890441538120120916537834184894581507752964883202067625768097162123888543341533999288412512301285484783694345970891133551696592961300122112205114610879407944820261703326659023720341817289091198818759375929012137392528556602287866970740930207828905983157601840706681403126271266092564103737138648899356929414751501448890298044310673271821655222945892380802066013371852757510747564741363401106544117465280482536114390229188331392026209255564904101180954544865928330233600793930786088958254159649503811412360516814740289871958051202372018242340325495754956457955375497614685229374657148426855265290635869023816421621264093153890746339051058871442066098887033360673256587212393664572800029326278471757319128660400384556065910822629726876336144521636444591281638480351616740454481761159718758156186772443769204235415829002868908140397622459972935230666426905365017559650861203921090063276717131046293527848950707654557618797785733025293590539983854752102759323067081168934235996658546754388155348597896826059715376867883571518892983043397780993647502280760969657456752949390527302736232675455521443069644568054028224123154264521508690958583616055326383652024208098018032924178767179179899843232756398403667588727402264592949735518581575281177976288528959245807806464241972634512609601877309397841246275700607696745057958133415367526188406952650177011127774650886325357283792911406367015651340158422299589244739192232126131052372322839631211407761080491070461725378989219668929364972695008122011889085246365284598503867074894447368595684995495925403546355250462040244659320012272819899313517324425265022077249540270182862294074381024678758718905622559714244330752491023262195422476308155664998076224842617658942594154636822727019807255938690862282816837915177345372091977473330481489411310690813389028971274416632284205382099584650240215344571577066498626387449438417035919890997470739875864198921210821343110900104166866772971834528748829230878033830758047755503235308383919570596372066824484821070478376009265551961906430617707993138531484254170391443878092424340902133397206718763105150307294204405190946161533416381323191175666026428693657217937575431504980058512907391634900571907004866392219730243677502127251021567288174634508490176881769865915658620781456202179585389352425661167388008819756609703363838267703740553941820867704079951587257833057940425328271023902358587561034956284984048781709231213358126501004025831224892701533167044071173094745453594116538015122941552890045179334234129127950377944009496223705833343872687096424622507789068180791973313529393626799264452263792199341670918180233412061050840447578257714345017361437459169525232893933392968635590105520770114799226271224349638303305526325106242266600497791537897981530988076685047803015711632784992878664420512023051596032607622039878631188752383035448085146491292131745877582225616592614662033427350570682265031402585800401566989794999420586420015140017760334997042015366545330895649553970003425069387841284370129220586103035299606941139103655583938786059388580263133956892613132622945622631713056696878548385176324997890368851277116362919339229584612210868811697684445692588594109044125872573003934942217371858942396542934672440940481439594126519636370862932654714582607310374760805297076330126906124138710589160450071630479247577650988167601971849937176332099265504383294517926323384535025943087886410245033660699594046583534586411712942759811845025613920779677604962593128311015881282215614401270161804948665650933785140222323069827729579132495444094780048513040221302198802867663467851544230804678286497655500869586907071790281279458699374199187708921968803001271586166227929738369449689322016391867848651631830754306811072877597191831000388989632845493328161270959743474515927223751333107566793239568887540057045858627859758261497504118710513020073613729490171927703798328312403309020317465016348252174009051598705406929285810557028583332301876599826419943018101296659658973981570057559685439855133699036706495462186662053714238610368560475040105839902531353423922615341397624342492723785636379005337479554397793551223745398417869718009264423493156620871447631124150252554978590685747679930070629485393571347297580989627568178976263964794078224654180238482199353643772393442675642516747541101745015533344731615910941652930623223813971911173299306859289747152737744901380809260423920306885179343269251820433638499413621938169411756810143356942834001132781542383042609594375683718843520532902013163351199906622459456259580356635947842534089158274774465958685910402189889275563442515041074136914275035229887705424773083972627789100714895180003993596154042769777820125414594870985862075620595291139132615148088760603693263147885520994089507097868224775016455220193110303013869720653202679205906788412728996769671390694013404901843744351688399669260169183795788400805693539625383558377870088423208636887274258906811732217947860136664488695040069767385525685974924280944753399179676710833362042243385305523864628793118409264972803853884059113801511479263544671355662115429951254151798093051472989966002341564945390683545286508203172738994906341365442881884429038691594456832271121698696912251255025569416745216145879071579945798563650911227726590237750239240758223688728395882677138107143567557608019243238223476339620526924879257481682834049841253832198246248595807882391470389694071995397407586995274149368419586530899414989778722692624203024758011706788478403181222587099137025366070489097963419267508784709191206745419066794002177665835894475953306772127272458782192645054265785522391310178411850665107854113149944858007560186602689296789354197319207528564803032352542779180900550067845135675445226702930366684018946246429286854765753253561775525561559628263660316360574956361241450848752539640045574626878240436556334291843655264348078176419433095970531023952797737139326187510870323003914510909257638703775358054430730034172974088038187982006062640511479380455093178984069924610669029688258169980726238311389625867077285383726376261249953894005788095137129545264614194743772282607372887656144611158285429056837263600926504439979742419686119153505623988105284861389146029454208285968449039020003659316881904791137565522530803373959433074502194481205685768438170947067297118379595848394247287871548658485510025559153689385705795765634189805716829381944160603441772034089209619453040204435851290232367442221494600739976873708358228330463011876998890588693208588830617520011169008292743934494887607027757078747961530139751024219914840838097628546420950947627141206837485106540995787016802687050450342013619919418770056546080310855682722874677016925195683276795286232889619158100880587416756665477304119453667590615920154425857811822509340610339565548109114623390631075185109453349402867118351657998924604314686784045083880928933244200784137392519522565049184861690931350456569823509368730984126467629548901242546915211344572078662588238600836460106888049246913782188044150775525691690684876574813137503315747112565591293247161441916294319420056975121046668396027233482084819404189574609947495855540813208011964185251683293257551225919731014804599818552619180097388090116149966013766483695306128787452686810314126566179473375964383408666549084471767414130817050475111690091379378027948632612719369600303930057369725457190812622721318743893201664543886803697095843215019791592812208510116155679111876296509100211343318282698802888172842177982656669257288282777720281409001456705031402606431941701026319503527961615674895836918561491237865472787929170675439323705534342789386216840273803502405233056778685350230503017172640060763317340654158674242080347397527516246489999824999865218268864989796872681758646165081621798037213744340224236524426321258153684063374767302579453559684399007660312005562139572670884430279550999979527469507950311444109416492957693347888684286114513380232433472075738289446856123520294426754120006080368427154436104732006386966081060602813678720294427085354724797941878908896573234166157009347341286756222959519229837668777964214201743592361283172466492974672988001231673536029289854477280023802159906262446652731205039397467396470407511206383300823429421724345545050218080387854457473380631150643608119181875708373836665303485253137654304046101895880445637827713581417251395822080363966656246172230218770121545202029212328644027204947565558832750121655815578110690501518186292178995336231372644694327401225301499683663970989451235761225233723418430727645659568031447420413770272683476129379159396398709747045090935878608721244439745980668108876180785169212868688460968020973579875509986843792405933758042295348804875053856875214496455619624263964435308083019942497943914275108684438718334040233638072821778434628465088686566500581364625860762547614067836161323120881582269134837642776713181170393565216576176557314780811074516707643038511161656026064700428382703380784732480890368940926816976740621291918490472482314023199921269265537470845332027562531532222180850040416450154568431116143591253894841856232295845733487156467741928874089837400015807392185992221045888893909536515968250815526589588407996191926746122010145560364277143733606402948844863931482400694534706128135052763641744252072926382485395327958841130295236101192779956562520245481584859757556682371445743541193921016052775794258108423913721031671316602543014975743356213124755263190457316536173682511956945870298683395559700426780525762055972234179469427028813348216628103309218155898190898841018532778615795753684439565670838261753753358932961440663444566952368194061103070037357535471983439219499371206242044715995810656856591102371879354051115603195172391315794871545401583633214402489221798036161124694631831196193401289956972533311817855627757162772270254288642469813332298130891190368188822502949972507484875737188825616936679155720573765768280486417942062206281494898653042315362437365060180444737263168014764168710684936222294237158145811619101742547002045661232421544558534570625348793239114690792105922470014360605892762671667158219998322373611492710964857262300668271906105131299652378188124885501345223925272384248991282611459404746321554704533972154068768982163836186252809424134852999663722796641768386685844988225241204617553483431736767554888759432561408171766186312093388174744959233460364789033399274739190022714584191031338929770039063163980926845148533740609830161831648331066604715086888833518547086600881490665358912924065145295171147342015351855302087164055372309119915240368764494188039252116071100170021035244481054308874004750384826945793017997750034089575183654535224112070314197330990440559899456465513928912321552500830970717899904248544525114932492368644800984240524871123823774306624107007611513210314118755877939662794326919972456214825499248806214002465361878004825829425219462970559226216993143265282399870150877737163050161265316425787311053293094328102580724053786343804411971809386372495189997392842592410527263825069381110163667594233263263853969391478228624988806323017971186707753880992619967307761283055439673555132935601984588944184685516041047779012473456810583429731595659717409547023223787614665357721081516334945116283444226407938518820760567852726323183554098984196500574210520348006469377822604974578600175639045435700557271759563330053570660925414891980937678156928538371428599061371414692293093593879489261847506489362108377127396158863827181271884269249804624597688857951794836061668105209345561714737530612292473662895956604213971089647204280757442378885111043835384990793596077455275600084007539297936099947947717399884209073199813976427309336409291367161708840998271845969600251111815908242599720780987344929123594872463060535672872134706054296010908077222513701077520766644519406602021958252127138142679575298037957373160710538572929145616851108872137943543057303088077434788610470098668767577819950077245580603196668524796943221307965584318018510371056038921969968058741455135710632838455414206329841825654784982025909353071148806408025116152683653054321044054552188962206584765936398184019257910579592293122810180379206501552681179489463484716785564733661865519250025238115019451236500569429262784288752824601048358803610806892928973470619031058164303063704789928272461046722938982299561478493260663364382292470416487859767867261909455814930302531668139898979539516413409337099524132512485824312089491238698058604456240448711680497468238509792958471783997481976811144617054647215933700583002022104623740272801953264489731293430346306772579485116458182202798777839472035627434417725727473154773056884727976958341544962242378980495230514339526964284221592165366043287067649491513630855697696962529103358403366013534948654724681314286367180030188339094595077757118931333264725270635454684296431953300614324632174785993137792723002264564426634129271023130366895950186026855307659337337382759222435011290445970212604231471274422284209168976570103891875857923427147786016338694725553395729017035493206672305104325352398945462595468801775568011619536383707143637901316499718382740435256011782403744050845326501378427254453786663600140183997266621235082490168887840201938564772610389027984940461368195545208036188181709489216809260910123683877761087424180822275891553027218155690018964505125476258100526658328932165926745798087750859973849197419580296964963986913750914759577963904968044617071757489630392590434387629989378239640527580349949232713398739331476918375491522959755367988438877029265996748303794813680329511181681528867604221150062030373079423029076440664744376130161207580103457386783343280913006535848579704622185725893261875226422286966446968944699266752551848539605797122888528087385686734474362566711697574846291849511794312936428692727873191180693489753180049624520165305939836171073343562675651046649570645860589492332023847505276811432670753226245484638220090883527440293385416240115023139436109368813237786922292350107020881704994951416295031242757014147203359954307757954750176121853259191666399691017088967370086350763408490327912708044626239298622261028131452231712684967946345383462444420671268996354591338796191155461324657000295294799055337806803226219075590658471379857007412258213657709027134101379041777689710899031090659126677409599569493127585709309786773397275828404210711003999180544100092322556326737713224942003685983316075879170069662485939813399333846933492132067278114079739398535506069110763734575078419490229267369021044196132652552963377917175662637420461982169387259579899472041942228881347921020384753629674682016186111341160574432296661148581976268321045365470704609785098000204803926620262080882316732452181601439848328518092199673889029173027529981947621212874298803448579271094987742237247559726690744647569358476599071129088382075845990999421886803076616942167739854693834588114999223022552075518263225570605360473719853847159844028530008556279300304207386144961140098769701244926812959138515542065289172570630596310347190341319822055826373283231789565230411760509543936531780207704374331508490824513593877081749339456533974564234410276901259518249732434602447081544073106595218666164801350495056801574234125498759908546280943127807310763724805611930050935770967553771028082331378396631675006453317163457036553511593344043583790877238483534473157689411845516363101552489605734916572955437571081723557092496811290237922458439825293192597170622518565856855336967572900252438561515828224563266220040825717565940363483400552437829751757849572265753011181487802109446270489248194842473720479835100495373283240886920063095416977032074587228172154002727393712291244158777501715851787098079859447121109354156616615405660083346754294273024499328973616775009767538734361944494057859108389345354772516119941887147013873129702992377356599742658223461387453852813415555213069769143693145453190159654880051851960384164945941021994288494982174931956013199005933881090532086495267115782387698472235795055760500323789374529211968468456918461188056188977061065929074328284243669815927827460563392678573718182530311751663825136474333814251918527501412380486903828321614061323727114843262981076565595984551060917275483092539088399444030515998191815763432771648062638131838849821744704053859486295786678290901309639476331309980214646216834178251096516047190752666640298093193555087356783119718148187583979442461096034923099407166762863086196597237256886784263184935627971680149647655970358629025855316976980114714361539133976748122129913187157513489002640955563315926402824465631953346271960829061635362589118033209163400138972415751436495871921208241330557390680983226496631621717245968720910788595136277070272112586677999017411530289162850621873899888898548815540759222609332359242457289206879079340088253712639018955861656349841060302423428709844062661087235197696990238652286244894179213516536196418907790568590129462938717863328487558810876876851977215162597401647605641059644841212280370120891178197855074784407626990496948148248218317311963735206149929556898358977473628374838540036703844289791279737362471560532187600472920032568227931927183910444067850354554900563555163475750016359135505593543390364468914325365985605606084151213432510494835049856416471481993417440355855255780623116223335548901547953099899350002866525355602469522886602602383189804104339001679760969690604864096819361544566919747907858833886681710677604901563604293889019541802683391663113390222675875057849629578434305505284396439250214478504427126895349188236869881664078652641482200539994652053570429095396872180724072176650356593759312992836024838705809593627012068538263307599609152447785945858210890676308587493508939324459045604194729062530504262197469859362787435356129001528682390539199308147473330297027173933332626222996171855808204339077661724223717362888077713996872477752090133020024164417702165031291017089407797364160847032171718325451548574200789428008304187465857562537831557494325332088974692814747009686528866488811654563609136570091506374731673016310481903543837368192584440579605856038482036355905826917056330015615682665726118602837887996977010709995795178299510058686617249037481616554140543709875436647365881907474890573276617697345064011526540844923838418989899668686031100052687348733558509638284195306607435131075392769270166753470063564094796271184040744948047487203332035725882835140118187500792373665454003049305158441721030006044408232594964231013142032384616153783216721551370233149747765327604474697929209357970481069937596433475533627113270062103422013751103622341370431649022140765682637400631463448414188615787649452628403513320445495986113029696359269805753380940864567134502350106114583478848436277422685912096937835436491199776475080345838701524080422625671449787200811562937496032425572700741275288538262441715563138560298983286690862917203105926114625364701196086583487743630207169760728423039430032973513740786778826789711500166833556156756709086369382884200528145945408147264666783051060897798482518160667776583665823292249545115448016676225265044508672213159531754395350017369526323763386197074722475338833934335109780165070972618931429501757879193962644148140387950545145404251032961319730071011360882681148388734279110357971215953780379970435115920865444665504672158325559375108238344194424196892661737155803537523125508360028441993378608405999997489627067219963319481241722222503484674776338853215961000266227152817818687194504249642427226753062387920323059931782930097037203585458800742138794881276258331142722528225427689307963395576284765884789415816906800009232297818107825947864321629894969601948312922523942137456177640541085719580942906939836577039502829625717866408834006141124471928064255665758685841226703235642700648319221949162912126001263892669934898229240118192921455259208598839628676949970100335391909804584861308807662165323154719928289501674777841310628796087339690623978793807660431451197421280160107548678526943164648411858765736582033943012861856430422181817219914044828841305003444916218763614423161985512666773204558661807049575607510960755363821858133458018926634600811455564206217902781882763217599388913472648947240337249700857194049967290474874262815390833306007146752452622703469432797027548123513037568127853553400685633424005343135257996217312577872117840734808391888705674168981199738061311118581866562046218892712431218921892947309606898325230364605295707069312872153202174158785599984999084749171442738131106703601780406068237627580175232326600131048461689098034493312116822245748877742275451953031124618646579058929039540590072979305761049977349278592868255860255115299308395597753345587979789042042222357662235307618255728253282182101990407652231090179387763523061549733128376713884894676643697033473203030666309010127461505483866185664104082103715923878051402086213457913378654319316368790863266992168389957678421615248529708968360249372586749575644060788836380087326922935156110516366728723922979996969751718849706726668593190648930203923591948540104550502772003018501611557465594060109399628121821129440039175324994827101426354461135360713684338091167040072655247375808136074209196635693911759141106627629892460768339170918470564207647183197012959291401608357845091869022446315268556443389394474793141337001378811977901073624522441182253744761950622532879143566222349392172786024912686434345128756758493338163856727267652229860708885723663472842717144822375443453195294937248644388534540940620457235390723088001097573855069924855885371046310377799000200513871913472220826723284949300483061566511548998145358964981556344048228988177607146165727421679260298607689686115413218536291654845625033237204314302331005387773742067333495370218692544103091210599237040833579303205610045250964418243978524589809582359964064293415631137304155736494735728840100721019311262952795019978940193296189064669330311373589775579454436047546285058313336192714419900084183059609926702965437633401939893266161797334354305566689783915458504221677776558439296332083001754015980248666472343095985454667286786027704693712342263235669925978261244571623285937033348320645973465561150418301342799888426157648473830329519881708308065522630739861959214492389031192644145547240733817604297901574879883463907992725488085752005732595644153070677014751848996802290172625114489440295405310558837731209861409696199575695575083977793603897165038354634842752421985007593253766512386042221292825630091154501258529968951742592100078842007353733591021580448852857598630026020721448440430473605033652783328186038337563529897013013664621145840721495939610977115493679147880622844607915400187689983472926866030900451484504232989146465247904105567187494043897247537017846735447110461883810503817938792250331761586833943526513596585273692382008273819773724187521226827775613664141446482936761311818808623763012957111917889013112494105869988913339108075085796223551808754411916211001502003293588432360599902172960624125027602863972858505611306162482922380697517777451559173783368940323746165880988336349127841972941037546895349794960619118109116337121491660199158506422324457217091647362079483034984669571345183798003127045522716671436407120745939688869745641004940502607586138183785404247484079514543952903817541087215108641885099901591361402019594636193838448513945933093473294219843153525198489017782546854141804226701486023495744784933209651970628621437283110594560962606725370707654274661720501691639045119150423207844791770303580680404191699253422894879117288014450124281050656538376240960756176927740952083080940907236762655424033153407377684715791802698458256138994043725224163142070177643627578085310563235394245686819333620410956050901701179039010994373339229151079070171933556126620861822336029515580235274221200419490141778698186135503990252840168895522631459187221715646635582786992420349573152849835574606801060155435672319224971950296628378187951246120188827729547744959621231860219052912211948546491097775737260562462760515866132495680700070913952384874863579282390461733300921386059808833156973452126176963982019172391748904641527744836066185863596949061839724698543270602979287819622549398321449408934903849874079148781352232109222409503959472139789052817863953203738614077840311027181832152112151742881108934861568400742525351569064347674424091266754132095841219606547140027766549180749084267658359216093958999791098846879420287444294764456272069302501835788602602614177495538568672151710385014473716904286625693687418729553663738898728056794616476714059232760434188138806071138778251964801289839402917164886916900890757795394956916031455182205586649500225435012248644904496516054516984434674805349997948152394846912448398802915259690491013559249223393737404002884441481082112803118167712998905926445229845286543243151867854735611233521412404082133328152191270517747315600509665835910749926239287903751501481018722928944966322063307279784778984121520706937245266651721149552650112833605057388056820440707948744867966247595390321712246800123597598796501292823357423757255771626182751837262065603767480737657326195763245538542232352807381408248693234730704968254519637659758999827033231709148950749086695249672613841065115770337139659901992459147617207253169338951456646618010239570127119601239960624447044352389386308252902030838961721889413475885662523155637762275339861947618015098626604507245527593460425385405200993760195050610105807019093372456295135522073298841194425882779883761533662417697875616629248094563239091435305112180472790687307538445046589761023667990979329812912821245300526800321328826449852467190567482979066545358199770394348787540943833077633822771825748045715774618613981633682692648530444261132584349256984547069569477065853895757080304298077120866340034789298712322171308907976600386692896494750561700015812260250408039846591103617128582022520222844739166772931281113876288141801672939163347256428164859461962428364145149335826582151174522668854103883941607420527125013036472263560897784922761472828650445239536536757266739035256015564966111098223223797648382616817266286586195872777941534474792451470047957337632067160789890165966144637702373060388872166773628760321411825722509407982838445762839824468016054655007662665125717443618935923435806587981434737102262243331213642174793937416142752619202555598644535964985303964244163313035763774678547022525442373629307672504014842371383280450764411913753354667866120927335142008273436511493534121890110816008936017864633632865165136034258582276020314832002697988383946674331061450509839144329290564536475955219555434450161675498480928264483977849429031773520713265176063493685703246396592467012800803004275939961727676339871466106392658537380655907590924277962965055302362203777663859749973484227901099767348363080118307193395379084910892525246064628207149852329805603645591780426507183418442012008505707802821015106787413422146955963478195369471342745555438288164266420864411223576801333633223745887916038379443896301020831776452857435066748252245914376457478788652272127043734887149459222470634487307758060421931594680615196469105077146516769576879654752897932079971567079757364586464949358310630754751662923356738899238575881032202884680102906632888247560389133123882218584396125813067612566942936554418249238063235653292449028387699124853899786157109024522028284086583770034731662886637355807967504035365362248681888187091101516630043541204292729555719015281845303284166628574661378876583005841771826894889397452853277105491990818098171628083655780326983542634336258183917714471201552765871941927644844027806616784907497522464469335101360960203837128104802246111500115050648242622228039250096365291261860190134344819948798954427525925732551840982947826442049309616468267605023027088876624237281144558889354246557088281592720916758992521717176258654158938341733483926387853542865364225334560086354829310329228062537164963844733726086481222274926799856863959154304596831982104147521469487245941325627064886894867204190527320623932591689156565594109506908045225810222311814691417366525840911916416392677422831091055797228369719047155248271891471181277027549887176647516243482459857046630844252581846734574124396474513292641731021025474388321614614681174495486967626849922771809501210860936817776861134398248255262289201505948347955111021391041935665202033935994365098040985315541595163979038361202380705757332067755640929862617741992889810539500625768234054933158464762387524345991930799791153627862781813344877893754318653805797420182652608385235287513525798817425435931005152185170872497746424805610101971302726137474312276971693412913374024499743497354435805921169419886111703316734418482418304304442143989805105998391180045477657786394744443704755523449783782533910153776168333309124297553365532540591129850321050445356506000299307280448044114490557630865108654624602388024283430936949707056977828233914069290093497469533371726081354263059228240821438095282033756492801791496819480854644808464518607520204589955531003403162154684918375168956444919153381463674750088288704489441025837217670660971630100592309940280757410482072621822668568787278758134116248798307956484181625998051655057259497447196373217422661122367017147363065246408681781714566131281632845086922732418400202441962370609523743823703467282006207142264405345021680649549289621310302068433639840126040877174460255528823457290849118016718068697345939271203363449112490765323691487906455500202501720488076183614315694952320398428342666661908021202667804275361584034424683603473435412661491889762041372192924011096152546561428107210762081366809776418428086649706119335037585657818404347754517817969842878639420232680623240885724800852119557148967370370687408248748864688024597767082325495233500405030885423594267528476326916794907006264144712252964947908519521331578573228968942888000237155794407485628034809596896000595221896658364255151068089147453993514111313346024974988654492711172229674264076900162564692623692324547887802790676235383333004286404434519688472111578312645981655224240003103040114605598867014514020264335253216866316331656870084768366538544977422403572037973100972898313182044911798535806415670373069462167162698456182006003089094720975258041915761201022147494617340793243338805249750571323510197240196261398882963967915322585850321905824598150710738111333514775580495391374524647061442531632695383373139353522957270491377536777137340437566373597569754296508793997447061372346778288008726115677885737509036996960091791822558832351047572831771722457942757562037050297689670684196831788168299416868555888717008564058065548770784399102851347882637511966953581023023318916865669529492507455473656536491129547873448462921944752602138710383391983412340432792121440869921822349108752694034481293537146840028045275068746943653453528677566273166360835317349406376896165655510980547887453976024008289586053299100666994833333936624553772383950578056168202068205361235018885987544183238682783149165132997224856188841624856805316572926876193714211242670821317152843571610833180580883324900732123423525708279095681086443856420637013354550353932982184189647751434799463485509422661462830114927966812092631599861797265192884647289447687973265878988039233385580846146959686913581189253743239260323533229727781870096507432856747594053180936820983443554223459318576311376759698598689657238924302313695739669772071424060112464032338990043201682009302640941694799768799667516791812005226664324592169158503065792794035736476803051109865302349615151747406100500144545441597087668324109801408081737453574588206633568772387466206909968452554915673240197095372551219870389048961293449170500985852365629383269681662523539656039654346524851797780180478060732435040713609743165366035267644720160537965562095939309858501122960480939402891778113133887905451066647201918793275881044296507807120757086294200743869270023498369666251585595495070588243166624038294130791641515806349094694191750159433872388827538722874528318229395772379304074371489704990765059908583911945303765163233720673154852177161974180783663407134901932540458504881219304116281006396689469074866182946932010745784344886695347607652283194784403917368694904675986846580980873894137554216366996836882155765290367612172714131927827178571584124533990489138771338210483733388772747932678490828587835449938951940971878095984724354372482388689363886248856017511369602776582020207315911060775488848517181526501728293000553479743135736853863778710662066039883747796038980899411130540945816962764537652006423661390096162723043791707022893581238716902988524727299725781041819676631871432511733366469669864740317073561434960495398608199751400483482119787608093103830958411509625409199066830901130470303084060709578759804812917716495175295280567323156695481894459715539526148965137929835145468751699727031655315188311495720064916401879319954712132602224929260601591542738549857714210316196550863577774970112969629108338449441864573111045185231529808602974163192016928628310581147774226205835988102792048903080293241075256649246538786359812829820965599035386101140184312415738361383172213672795075043749576703627597883553079521349129947796041738135085179497660024824495180536391386708934405777432852186473601335119152688025227970027021601470247088049244253930141212369274447318564140233319457582843365676556056727558635422726823413382980286637603928248847201863881379693871610437813323323708717951229409414322762622687696061606816777133052669970461857590973730355795059981084912188716065240442450872710082154128971838042628647495233738133867985663762614968723355352256370018339980797106164466628751995413918458218192356121481771127383987014182588082702959096930461644073794464659017299610316651730105596863301409706744159497643684526043503311183175674341414810546813261889651215982635374303215191807376405409023648054407269169489494353879324693683288983420880552345899585661627483650261582084578887515790981434284504652143734416547149727941011806867527262915881263373876710808957558138872632557057494216330029485066418611018197700201528023000295166728093037029952381536481518857827820977316956437099564433952222557507429110330710065489148087551184407049582350800846340231046090281047578749194671949883036504352729738904174286505513213429086013871817538977311679729923194122010807302747482505206154110592067604724598478108299340187417831942118144586597631297378013431228437507477658896357233624296327837621346422577685877655093184034305274299583424773650250076044881253312417420645646909385448777706155642971682732045876699954360235569190559302079550665381263194485496831613874539967776990969231477455255775512049322567032825679333282487621285544436786872663691525452839326991931566532266541062295814126356044293736482061094428446913954045208472264831959050389775662506207837568893243541045471355654887821562855240717878896570453686261001214853114333499462119133510316310446930997790350743571968256560025801291010363240700456017871908792710159243228512647668671958580410791902352378811534223263354509370442126575196959222315696987867196538831858944664764662706791500126310968212476514045135219105046771745822421371905845541183003258243295510803233788329499406738243809757816668081359782871318223707837436208331927684353530217946563354811823710911080172041316115717768971067589894822072019983767719963709636733306105758149549060351937056525363075824895038336432234421016808994941940259457824276559729271469688791804513988959837889708136673294191208630048012253505654850411723654333446197349448433550471607896541173749561687832986439050445637175330161716672258007745348196854199990726427653685057760113526913404363988637307197322773289492504157677599842993159187395251645339486474194226535645370127505226977971330016184571331113214118424930067959803004484121262225956019585220542112465151587468162183405457999115108863712479727414991472342390697971721319533366565782385260719085311663598239043793376897890924094288022078743993408998961582182072334710453401045666691256491238179185992958238295426293924489547782434783424220546146664443930654636641014248454673575886979692006648249863664027437628423622272680474078783796421008434812443434449632351834311773607454572096179827202357887570642371766542285765586019917975678064460728742534647538728330771414894803166418946833014976457709376422078958191574211170660243967710273046978182522094502901716953255065439489173430867067574542068485259043087451293154014915009953971557526319005689059850352053687026942636371961297633991028017135825436247383707899839142121080548842808784885489128879761610812933569206793910354922541520654714427921186576642475825105064577942161131327412573867133227598468352807932761697856238363070102685324539970921249672780218922561998466085327863281007099880513388034245430140425832085373945896272894286003472603731539321649128804824116998341720183118143205328209408694261095513068221535799138084401183372001175452735930250361483199338091247461916542605850323615864792208677229428913524280241728035853208749467250235385629967313131508660955897399421361088430222909699879660425133855191146507082529614070054826786637990449376620058601064519135229227522993686279150575617666374553067401938846943337868131842230677262480396521172970908695234821580051549977236596705912893810381717342667737717113973519643680105832550716871905279466538960075988995803981463877638490609036606803822017175939780118821303354223737342865475665322414537397265300240070899531606474446972196242025502864030235118307683916143756985842304313404972586684524714262472840174107995261336524124814093283264339975689936616000513858118156390415513229659211936608186067856066044202881897428475093872023322013718869479064283642590082034442593029980142595091381959237667906227080802336936483495102310448933589814367779071564705461206328343715329853946976527470777576193979017181494535032545013436929915045075425551044077232886013740452275780771860329984154943004965277923483976119141730981612382985387798574733313871069553517333618234259156174719038639795221151413178776421327121157690381286799922254360945694178798173546053052012975379584592435454674501310119511920699170932373479578558128951430130299694670069952604996125438430840682359378102127647100379388423548646695589515517339284899905577513695481052118333052484151145858071645474908348171965509431142205996067710292906243301299948787384053269683865469840735370099924822020243510780504575486937398022464324586378239480738430586279712420048089378551010095015637002130630984523658448213418685046598748190944671988364275789477830001396388651278453503292357889073112100272695021380828201561193891853832333792374805028116962895692783505691396468775765746661786936392263926953736287142089462381608642536610585320672504014167959293932412819309225909760329227796287934510263926984749978140482710289479919789509472451094389467457517125036916862868040113224459535674716768650524768381373333911604953767168004286450302630845515943199688360537228323510973546140456382174562832388330718163145066183892370767779942232554442511235008371622982539069415180093884916228386300762781165565135653774225988239849233284594790935518400914886396770897703863898907452532586511561173966339154938152870620750407945274756605203823846181262509278352383833909194806563254133782258012441648724260155335777046951247370452674087185135151629128269414599729465464618686390612663399269959023692027537199973991834890624167186742421808104420211501799996802645719923252067767438440532045692756333019046106529624347203857245284843658186604995287404623529533761149047126576643552384681009471742051637956185111335970671118370884049174952003800376220686239041644149411782568861722958182347064212154853472914870323971647778023839293825692966979302180222173908815226760181828945429348578213524849166801268467094825203415226699861698309015453794387255724875668228749162254156750886613315040538221671959492102287666807244492073139448146937413056687820961215900837732026754548025923946329675274094928977996826019864463819597217178971431405599686936551193050806772563506974122732447145379603283399305996605477221269948482249751739276825920710278679131333270517324863295189814842802342243615698555936371847275698329597900864302071409715047749604533741692041394729049536530969820195286478545329709920113094649291604670174052302840832243061221410851534410366421787334505134347593826407883700826548777721179279647800509799788434054978630570099134076198658123787924465471149073079806992289379761836556401087797157432864702096742690690236221068257967605764358882992202219726656455863999213220438961321867426127112801100026120905757660712492879653124062823510930731438862589059199688758871684808191973181600311220530286938818232366582561008155148607378562313952295717981899538321282279995771417488204800316032957438628719424911802134358377846795546605821409140674959236489954076539118897746416101652944613082170337199824518651401875817096353314185507542202343087315730286086002786927714234978943624118045366672394307630196759278385132719990774018573504962908391268975746157161611314815100691607096767535849189100644342420522242583837198994905633554264814521228239439530752638587539810707399825258077753372126346645092002925705561419552130837853582601329078691119864669647680431627070834121011021257180411148348415295790780111572003488072084616951337236529620351105913582332118968796087332263538197090529238889697558350031381408377813359061172840805323799164843126786055607125745994511167748305191048328918351206129716933877153650322119785206521127527420032757448182141110344473017618006551058883372534435897083116953056545787972053492111897214704249514013218141633519959315312814941609464794992496052108358446655885119368316346752136722703908648968139338878570635265974617137946348536999076107295075526824729131655908632904268605337526360284624081907675249333573347997590675348929502722472203603540820926137213957854389586894352035168518600101688358170750119879795165723008245494764007671824759272753200817297582250663265641254379614734495400889150422458511275992193116325113359525918894726251490778140106295264612966105317661328632215148974905259106173833886259223467938312246295592016323521382393697434387770719874657938124378192275796621757320473244749286621942112578742362044376494929087084518981287957125344070330409752043687425937648295343567791025302146929926193328161379700607118599531230859784889372789450074286591832800533484559265197800619938362254498511436823420857691191596395988261156480279572037118869197230203716832099519824459007866432398440655262533236835589788181174186197295483483408694007502356515616440665214833417510793349158492822583286356285853308036422076099496057148649194648517624577975873588677527599222332736981273491279553123114874661978633843518254620949570811091020049162923057970717324262098527828015709952012337094618143828156131737596382336514770350453239144918256237477898274240205076205621012387076889983308233311429962468601090372861549985600915131858098514494892830971503208774737669666048249371440605061494620402905847553115831184969487701241240451867121767400136787011945119983704965880876663822156336199728122397461049618082128715987551388910509414791262706995794906385402892836012096589747202062352944099112144739611207735536218191814774741635698198673548416509430607799453117028942817344191654980919557508426801804141001703661973345362216567481491431454339191179252738950076332079624347251774929116436723550270679035430680723588213082723570416291459724764783545457930326037100387170987516499244694844028947567437007598879662765949045032571277429542561781816006561814266376700764885545043529329747713671097372324600270159725353528830636993985794187626375890868123743285802942789132958404194924824172086302169666609912149664355731534224459164471480705815330741245283598466683737720830023865288849916181357732903923992005872810610528525958833478747510846885877039166671870268973755080319526113381258799498681316973263935909294301113073407952638889015587704403058240737737764400405122666155938860355275069268146731638517470447127652921098505563792963000469323379284397946205889216087237122770953123087786024234280332996718727897345211678951267718795469038586307421682793814674693240549112704392137264616487714384246222682740319154264943890388490848733848717006023634690070007807791851859046075743390683382341867254279058535499843246554562901691345813672302673805600133911427341007528026405476492206116472282187500255733615769508154248407372624657057846270699428202734124621227591346529538577478525338975382089952124830005036593805969146324152479890403935035134144235716437632321100335134611628838595089335120375906870425141858191455476630497841297420604635975493198090140287606702873340634183645451758974444680027849673273515519776512155131308375589291120065707257677472507115015289459654532392611749517827880395818368179681605699278187564200775073136921405180839102790086838336335353788675141206868734193070864500337499892844938952374638722451027238180165666493191041517950434526150492824880397124132578094587659648425856957133258434805937507064164503742336475381618150089543127457825873818948200342866097324824029694147319620980959708239342789626432871214564884490721078428533450833653821264520180564346942621127122345295573280693217518543866500222346451770020234316219985466637164455238981118705826375031920279639742181222865097187859616381611591612940784487131806051106005543106053020505039401765360734028315249568632370144520223630817391281094321989458434186463497805915277918940059873683485116757377053815737601510460345058936997994565770581837913692812293615232899783987722678849367268229372162736710834438556355523032199413660870480718499584954855134545561149211397464274190976466339825648600456873227896310921022691944196117952836363591286467766047908706281462502132695280149723498578112040032615838166827521549089187369543284110644571443721568638239363658080536355135226470054483548947702415254786771142811348398490853849174572098645653334368996766689833254934126274948770437351139264577308356414337466410242614372025251499471352624575627510263852056635605055340726535429294772845584552079430348169894481492098000259788136457310805388244553152777766043724166761936466284313941792444638791320805279678956037137657336796929489433534568886911962818677681575158183820475023094317518934856634591443421423423664029942399897645628302770077676292346134032944603239791256246833882879316920511841622457339093386422426045431893401776818705834849224351250920245317845035388188790162913753205759806440479436085152655366278006913727662337189719532144809116836318335779892261517374815407719000840891630503353432527200609305195113385580391409581515587411638302874923059299415321354420044972475889562442237361279660047954016838320656557228135848993799997002682252147132602101478342094052042907048413603303810598371169813387687218956906584779525008140356824376698349565600807219278860589981228794790259713478843256876245319606353927013999391604409516203592071940771398765694500881101897240893858730222783848130773201659390917038987259739107433354008657005578774674721286361578109991449180089609269780238387949570009501515173291300132062392592333441188343406083001209962082157582100427838922527321711843505291977532055928276239896833196005994113463816077015503152022263906070512812507428272492508659584793727823308113590360284331253640576681936338162556489840336302484586384177318810781678496276901619812105573285051331538512763959328968167149555881254935720641543746261491394423927824188485223758921809419925733275337540519761918233580319427177129763213822607622091138887364604854660820948066543219953580738801801643540032853082981924558630198456666325051710683053672607783459481846005200757697535640134367008705829705720604545508677355659261603559777996297983666004785915509115159929770855036148417891203402856068774613094087924128205349378199734664883515164099653104986554603803909454374889361710461478457193749429278461353386210039429465271075236776859013264436189342484917276009175041770266162612002417732956748653863794297888278314179028273797108874083329683549671783360662116005710203211310827944317540154482219624476850909176579983581383587717951735252586570665504000874774481651953648928192234078826321584383100858277060030304153112553901129004876153636776077031743131278226949987471615603483951143186065514228544027558077559657543884807533831092140952209821821868099561155070943014602393252098849969708431717753046254721470050544145812495827225700322405151793645644166170548330442319905580484155701992598059316286898816192399432838533653921936651239527386190283832685638772147749486231737823341137160373430142252294055560027313871840659215882213988605851523133771962441975339899797576063994053650492728848865646822781974625968539693774939297945136168107731831973486570229583176175516382237172266941274473762707209732176161439588901517677399303791128108753160623399312273557742384957336486112038979764900391520209471381998748237686534129660458019002376380863080317986266737948460689274472969950971038768446604283502097692249570368513313282501180503930663736656155020352135307860096879078384691646361612563454748754209616651535796395876943938016454173555541158298571422470969372465895948673445645213033310409233551571439941077037595797502487417078081005053944956414650079682920507318152696606388067833729564185528113387635123171044336606539187074595851019802382696738581724225813348903987992256468977081870369638555751954935504238956244819450108320978757395410930756837066929603069743608964485683138110781281099734755083416208380615447491270842086969812646681515296676190260880154637797109717583639224551157773515988732798386431541174396700534003877298827757006384251131559110587883209315170370799621536238620808376821810518240674401361716155801304146490139041860598536671716763628180492513704966442736649569308780031921669425094359361043525620512671266587896513741114111023670681243119081835716763450706259334614665747971753207966461605402946699034682394844000324150419073292869421277107177986605629667173619435052444034088912066920390168293223120557867501264176002316601028724215776653255371356420320182573616928857768909919113266831167038544824841237924538438778377175969290047070030485190115721094347364367583157518850035398066157511018487993206405213593561547379119327549707296737903536420954092735682841676664246105463174067121035179372783129292885866290678133420707817164994147042098337968947315949494561173969072740482293677310681797116392556788626683100209623596960969407574469465118396676098542116435276657983686118695758580484435685305222435165054338008132638357106018539467418179978389272701728510238278211753408663379836073588500956076432224046664893268514660387976423306337234374099308063394743647197353873599141179712894327049150934618410401931137470704924055335674596030138783735802382235536150397675500582950603063757782361234377412586041633323609610890027737650031775683246330501171612995944180207923055119118078427782649614161429549542150206412931026912259819890272283561903710413613694085272188045717154036269495831593316132127807465118406558104086283209811056504874824379165254372865672995564275001171024007837296499004136974612093477318111614198255007880762340199517847808154744462280980823264478913802979840059508484651665196825917085132146687283004383638946846864485161386689639960798242183855307212321456463166238503130937967566019457917001759589926853520876641828315195678550939079881930715119877324735952553890197056630841744013472978459278032993112880339907567633027649324063306843177672967159031665263948882832436233491521358227719722842724348253674175307825848750744063709047841224391210641351795004689137719246282835082683349629598967513120824952596034402457036253393816910176676086871768565522963420463524452271573333939076559153153490508677231939425058482046053911120553607929201640252733309915237940758233291951464129037212976970347682021149085217252076488915603335869691888089515493479019247296741278350250634140726637746708087983277108964798211592859384188640022876928596705921900599070747694848676705880714719082302936211566389662583408235735833549588053571342308129653428317404965763331803140988717064693605648577926454586170746623244846257570847900498451037723830629367284914256563573355704187544584852213452023064729641857517438455490812686664380091729963479745979841848017830127870235636852016852619950957849691419670257571746926493980909812796997139839623657868313477089491419000000384705432721269514027265593858365832328662708824159174579619876590678069707387185151601947919177092372656565213999973092520551761013138907919566132712066792170253303563424688574477462938437531822743229215222739627901367648408761958606782121128597551785413358592692868593506157289280875326032075916754316991921220932457128358365131763485333158392469177988065763539807595284173444853762793121428594338035708795350097006039172926952944813542406093432593807312185784849710291491928368050754080094544366929198324460824924236279921249974059946382813491395824692628819126604220766797224949831461158581610197575985064383392358180099732664100513308948931118722128882407749563806542664502594543429893081999878283203581383236160752119115748431837524010263896830271787183105650368292730829900241525867980858313055457134336608584904855582087670733312249647654751432860640244320637818966228117009864571459436147506104969135516869500478811085773561285827291771423287081960039416936771985449975478743847715641556360968122643645146875450620007763639421783018182370627872346508019123112804718401295566301217124679344795647694638313840329478156302189871029494966884843867794026813854020638667954777687153035172629003566078139514843773237068765510691147771162303548968720717244239602135249192767653964042468372945192686287437016682226908640213246303056162933345275006012901185479518995894612397909085319650965990534353953289435530931055796628993535018158664859281926276248242230987075301255346441558647700353092852757600075689321162395802615939487813990832016578097437169843010260263833525469074028696428908855586371725546847119490066230706853833416854145752592602348880262133939442244108993012808382846500756365025057560208080343136888441275507638107020180412246105667648943590114901807408413829922232011130793755462853529574949100963042246650170307089195291103106714778586642973386774005726006885214403198209709909730433451044197684605392876540369588775787789871036021587781456287695600736931759786188874787229609904096587565435376042491296738325909939037423475337889011194095639791908423449003233058900621587854544780253603071233513046434383233856665076412906891433400979444011865229798857611615355451912592263109786243624030068852875969361035832843029743514074546390705594851622475139379391325628373637139448719688176411586999626804622235797388437937527362311488288415804637842870774947971342655753984562861857660723095748549376157273258430199630043137835786902729346339944185776744076975650481957737675442983675107165986534160836699622804807794309479365859234359333302069412827190599928783364732793489908383828396547830764809358504522481479048790316809567880110822839015165698628757238167519148654943174846588487408045298937557181326606900573932839970496337829024917668079138210771738129647136058242948745531731583410232802491287438651486078578934905685428873053073300548849052303948761448723152382148836837748928291069906024300010111771622807378369969768609493311015197939282075269293582251095087641784900502364167930233858738073984142463337884260384131468498108096776557370347859915562401677573720139248938635816322359605885995488984956739703416473733166056948378849429699059995240359367980186136725494765697362322542756514298194509187290530842166770993312846869829471994891278953217142347109386023370868914250210999365174883831151355585968038093522514321857218213805313082386891016045998589095192907570666090275885082846463945515018416858326337831179226108215667267541787863954512232386772679816589011370688408502276321199663058471418398261163497436944155034659687251644545345948386084522943236517243669531404275237983675794546229991019637446793453483713321623794523204786574872030308547883895521203424454017119422604576950399617502776846474298974440600769385436687164509822362632999350721387131367660086335028641639688310042503665976294431428074337388531301481027988974045148005876791724581444278932021578491133410347113954653235188655613682250939656624291302264693384490293020828121240175023636539995013020663859355759603515571933773935271688672351363406229656955892538867009515859061456557417177139151037758564843996378260011752235322318877991038747040660033142480359925319521837417201567650212329301102504679976541102224218347673806547491262358595891772712934237947689952614394616148315416047236420670237229151897086826975738549331618935759328053540105977497903474630969244198123116682361428864261507429107250142055037706289421043592763264147269822381967987367552460112751639428912272407936723334611251007941107733383589490979715017381929422947763430660816335927103604851340584410454967633759612246739733537256498000712600706047422739782573037739243610906575097105024997736505335314128103424702751312448399125070840772813403638703991328140847094739054703145625878633444656791100612874451345488819913263700105651088721572397934322718710974357225712064360678579116714911288813431456726456406748392146799631304207258026919658580551927216359887350174558769725662424919944320293153846429329950995740273367285398642811467240447420682385405600511771502841850571704488070941061420571986987629195501457010724365993222164238716460274646249617054962193258065581363558375837636541252590905021068750100514790129112039030433574103606282648567704215506153951587488108960677275416301973868222009324234211620177676632030464248221095608036907264140585110470235367754955954419204922154009225901233675459370429069046566722075092105864192201235552164921704448625612692062173824706242044262629636050418310506027943999473383773801331587513225638647673158398777424666674308573401372309976067896884623982095095993228211834187001629145527679712323113964600488531925523065503039958724922906233692442037321187713948047933536708465039478077126483425430948055241372960714019493468799546385332081307349552037576358189317048854576782142237120854719251386843281610770512772823615843674587363309098289740311241881897358253619172077791189484954605457588534830733658511796197683391138498430979116445512253207697145342928292374329731913497168446511063341734747317531289615836000290406726548954800733126110957048742952500015844050808156806404991634357018422637054127250848072222850258501769488217362342587226169147672604845365501092628120942191552986059497551468377879732048062372285236067477916878284934819637861471521930387246496120515208659083439303196507486333180624245158628627594334904272377112305669933059989365677276892064650773257231372661890294933104177598945523996642933297134956283071389518773780857653778061872767097308486368793715189945028288811323996935666654951615162991734145270708692789838676542772924425547262104308674493520288316652889137056374982287023324300406197085065748643003535439234808611527367589257847751379393308971064412633475890571128858798716480023982679593026758194886443708308006507107412555796337530683768945099126414116237967321599787165294448511542313937359944161614878947396150833206379387204543810618019565583073098869082546018243668851365015555142206159151728913261636717937467662876598424502614967420754368315399048677012827355707680097644087441554167941450866139420899882194856404216939345215027071207282324927261592779893746893887662156909195838217377051340672307837016931936766885670070483607295584691573195190526064053237387444937453344772708874428971542272293177740333499674740536864947862249909596003151184497528146138447502846963108685344144202115898606990622343199206770629930309258048413950703176905426823534323285168122937969314781243335845967035421257541280804895650647972558577939988880875442678078248014811344029160325486581945829766916467624997593820247399097167058352968530905836297413636333999307742557067642799236790488007522769212546439017596897748830468099171364631200956883949697222105375119028785947261096624867323918212838405700937213542989496160424341921128611261061140021579523332591179690300876534966931976762014148277927757749187316968450887458668896389889444813716014941029110148910346866405311871511500653432257217454559999910030365517469087033519619382281139523963759647825800861290274286107349288797229391596861256856389746927465867699979952387456955195472822115370915440096175359266645350531640618983523738338672478881291962170892039912690253926624652821831934797453001579755177865403525769684395577010246307053511237211731889303505968854512932243892200137296436657930842159957383390276852748876485368466314278997973918648381484604314220102512080774514305529321387830760718353328313389650639255576047846178467788513742438621210520463502695234862204944044461290750161291022125184638814351140537982392407940943287873284627309695308100541626343007813627328111946623294015137292261428624450031053043105018769577138851536537097223439163391520953676488804117594428264816419032422034931238234466100516385104674017861710139892264585978510870434060166654987335430781003408235672115839157424463171114948261486969335266183183686177995796744328448496578940221589385994970624707305642646108227980277805545455304096592045447752492493782546883572768578729322763850770578278230954505616186315725979530373029636429776735579761725224106623119311468876555776757711438756370952836133792759998943706337082645540555087979826180234569246051329366709013285903212205061563179042463076421466093939190207657458723715889950753457184367744352595471561345044820013853730068498458539131340322426330602908797228996156620524038342838155421471459814145706585756395899763776331930375072360266733641136288447604317883681983969984092711383559390851432493399260313498200190867538051312289135319727502024596380418253243941384784061947370872304767297982392509147838534426600807288535446456116328449853763056276347311252499632072133469296525100534913250832341142054457089519301892054854401699274420064597016617083123093434353248795578629795904977840189525898183715116668776415415770657989806335139187406466388949047692215667790754245538285730910456758842243645197005542075383217176428501060497166143997840518869363398338602188975849261806114397100532791745474524955058851195387125090470235835966171875849851977838331825176369645415514324408399041269889892526007934915501343234073111471716831139227624679532947620905016537444658936792398407824894666530237056248403638738949103983203390142643106484394229081726010584278403584352956050791946889030873200748057994219215170741412001364985191027373853666088013836842820385818009980758534005059170781251847685298526925216388119664106725996748414396271382695406119640417964390467825936187777212634346022450697023213791494917805017555466861864223716658305134284062539900906323987507971311850400123417856526092941498287255028161573720238603618367296593590791830077474553703262138370998720668295160392500990799341335915398559318500396002998044591312704134838847646422056453053289559357192314160469731866403227558399533957616740978093819549972737315749417004477982840846238322502771730004365783539327832129802144712493449522733049274509810198288828457418326088407543690324185565034866825817805778485629734316361758316202842680569229027958327496858207071678619609819693885766789213721764731519388114956261618747815225012967867670595882230648737446951161894214290457626575815148513303349012132854975201799924820319995208710097239414272558411996216317049181274101542523093603854173890486593905805841849722542769426630827225165773825531061611425915512715380114560647719495910001339091730969103907160267282377381208661986322567776765123299300123338668983734429592293863449504723818375381104216144890144591240200287977152881523771318002916173183398593376946966217818801024855180308398740543585747253809486779925326649625830657885577763755743377902949248416611229981152142173761495986804019954981003831401527906084444950186666410047752056296623472823189845164311938688161918694977218271282650229744191623597156798303205035370919804888218456473553916016747077504333754854776447327616879217785452269760842821970978100326863886821846039454812055122528724862992726959005775984995354267746434254187749336966837873954943400992939366718139491244091384010643054096693747684158525639393882373210046575001366528989455460038160783574078650790935060495636690244626655042369965354685970554615894422552261829442771214372274662645072670563331103731746675434233388612231088448310277131056665519405706612167586288611828445527823385453925871607688911600591875755537846256651213239558616535088991808332477026285568315813565864087874972917182222789145670262480412286981554508017414012997184647328366559200103827950170923935593164568430229250487319026071462105031239912438194855647328974702354879731728512194787464440211626528846465411570157415129918785075474049121937316726062790396196470861328551524934592673130973348907898318483791133544732584917821747127340659688629181364127315918972504516546105296253278938033190149875552988444125278017090695774712741189979731975004382237212484619191934570138931096537870371973144913758770029860633209976611625878772571353689346507881240717292076989236043671442106923278795498889546063357595493736950821865527365687745263955469209148372740251142871338717744685893777026023982644328655052518137262144118278007792469504798131392920897611266673958980332350440938466007308848653447521521131553218906245999222003260034201939520497839912302223783238674887446853670063171103020810348276532227825109707779851293229846263112355463322438585818106570334265308923089520743303630076920040546313647818723710379124859863505324341780679032984226555975016177381220220939405194902765470256613821609027202123133737771066152871958872965515036058040547670671678434331675951426693775468326934378215650526875626802344436424602748704204552518324714948553417561533484954322295441276629210574664272761308513949493789614928447541133370357574998931648581783774371400773631807621294969638622659732564008620720253076640375757315280777899371143913216974297678816002798952938642206014875740812422104795895151299912414288710279109898248325804096982915308500681832247865421972851567430057465941415081932901939502683549822246735580976155298444932289992064323015073500057160988068804255200063494822675928657953848533321876720962447841352473745425615139793945488244256955408930965545246459783904092769169199204328684995543697656755846793420351264821025753927927180915150039240309094353656990034278761370805442554504021993128609007800628421299787890908961209240447324713626964326143967654679805334639157214573210709596757150359427520386868019074311045746818872928937109628900771388909073497952847992356924552636673308617227612051770843902524769188589128711076228632816207820187509212714749371029036196449305910115085793487434993324386989329724079823244592005255164053977455219868468816493178245528592718689408598637230151168922517461408466683433451724519780240992615980717505625656800511963335975609665710448961302400670341129112229464143232049928348221789494756551177266834005613618775293073157500419776196488281963068795568690066642355390565643118435227459890814360403977414419865542368979036964535295008986684777285204048174616069946922446619778248547751558550293171364470459055046580402488376708122401566115937495431338380785735217555306082814656700256500144829282289233092185610025950148492060410520642016956758356348107685387863395702550604822754538515531901605920677037819718990333940278115548766950662829552566598567659982701212006958776793161917271167580118383233722719083483523891818241133979399391689928350592592968500459306794678052549326543204207274178244446788665130557378949002405058554581319313166303288515709400258114072810040593177622540615090023500982089419433049038026087285955084868449397320225224430405299058918829984470749702530800681509882385002188912822279110266086691405078344906398248467765004314450537878944905483491528845891983517390801067710169528298637337830062725305675139565639893557539082126688896054873652394874963064474642846084066791802868671740072126419746174975247818992189384806850907444080426210947151437214236679266789168907483491745817503041995980825588463929154380375799111058490392298213016271949285171123222348518334678263664133918522948644433459544961178838143002902342412058763626523793028877582496346544826813959537370914845599732443628441034648209150407586705906919765831176646215070158619049841529326348751030374521609389710349890239192878092635771808110645386633018986231593618858163055600384647275171998654858353101188001118507045526700411075258718686165452035569797133136624049774484323962246851204107665834803287860314700236871424665515577441819214874032084287654277291809468514460899478628426573453337280547032084364220327388106138492461790490844262404311717235462028049440366302842032429421640184606635710336589971844137349727123003625756792949889215635073356770330113641115401498835885043611850353797489463981808642399017268882848856673682910845207839827803957359734802799414381081082602194402359795689472687187497427571173976882934709956036424883177630233795881590063467148872000241156290547503120641175211057402276132463637200562766452763896754988457667652344569584443416743974926362138817001691952355974968602469894854892690158589965188681129384612821684456296164227440319535350259614920028975198319582393065981599693952439284040484487025093028574798275631017199493256919901779402188161039028426880619685761408208085020569257023499996865981997175659498202933522381920679991311664572124946645925942284954772083096528080739582398272455726695899263902076602671918370176360914371166649129597518373009705126946756292648648145441075154017316615254848077732829873378676258080811997395491192564238573843736527559169003103799718220285212146451579025473768339539816273881423174615572008573937555997474543406391942384871455109519753341959879213830123894566073165529050136588988498413698561546754863689485410924269352577148337053118766470595292612839404345178835994915177102621884627439235114253790186591197791381122702043066789934662317239824583792391307188332861960246215431337801149484523684887789176938360119920281352586386195970792336759168996355166297972293347257054175906339376858435457847087984652358316573805539877836325242221025294905746033644615711901220759380384149762509921465865637523342410656582031730516357195306170213649593746761103592088241857910771568996154882534854212228503473427676566397621587936054555571108037376843655473426080323592411058182026203930305711535610074613757719360337908969545805150500502772995743579524174378895052108519873895156422067885069443742293797514848604024761290549136988199262461015960545175781491837728454147213425866664246858968126630058343965337776210573339606658686818592013629135048674922124640227124502675622493923848829748488375188240661210487284209713740842469385554639144563102126149605749718693875353543856814952178899118671783512195207590424918120731898895568998521262787033385222170736448888019072874692518389913573173217380832265297767678059014670616362059403602205440819950888069139298676112463740706211163375583116242251742924239837887421821268338850247460692086743014552211843666225804713827637506427688208764251438529093365067406146560718817998951873538845070467583595993199493317438177866560509260270893251094940194486630708801781653156367288474066485471908509786483347943734155091329667786737063435180775364371591916787186106294254842344116088400598765725524767953587038327800981229887838407334684967880185309234609527183318363881335744378456607469554804532887893251789564690340596722589334565218579209221712942094105150855934856390038136356476732238746186960289498658892857887077633609787840415721638859474264804686709080713796895873733822250801032497432022697016815575173969725808661616741768030920285240485035650498269281219479751837181988825424378209716646272658844911810971669056518026531943783787720047765543317545494667018550169342086873859354927563978488841183386410530269100106674947022644056172312252376640249250859594882159129419879350122354251828254850922382750535900484517718758282257605153684118110276055356254000573358621366687094865435274678409710711913842397989428366956596251073059189759703564908199550226506352206637010025083731538734287731902328250677423472736933160840772320014002558667180510772730789277718592381190235340697184090285072667941852210448988313355548581665989358900171847821706700931668803247428212425167629645138899395235539027660869769694386841782146361079699468926774471931442299583078481737077946153840578011387181726383903877019422873972718171808110014150287190705398760323830250993565932263926618597160266146426216647728705491056957367288387392539674623385411300197640639167160150724401848716548966189679465580066981040756483738266228459569056610447213313982227332894165688829447449705169014696148358665436516976124508022297178443538897844876863094542364135762703175850264312361146126752606035191695019517660421187839617084127114511526073016090648601023472704215886324506063073183833967696081546893681671585404998001785320283177256303421467081062100081962918204210407476547296989665094193270945718803067297970551628247971996149498283996761245689594535596020139806315707442605775903743587851056179321645470722345933056201061780957950515862253632466171676640535274135144332645675079234860289300849212250683246969749136358135940272378562692761753143369163454581405620560409304151501636832639146279258438519462483317752324541100820520796392348693993220936803688178177194768400849097384117128028134928604891287691029299960757812233121403511370322100405093984106450818338339946687837704061272330133722022584597963221450482651942238883772074129389896883306732400178344518837852572826794841914571351887602144397413883679809791991525746608028769451163648700459620532658320832848172896502440773680435304093333609584391037954973144560246610499850030399068868971108186993245670493763677237588576035278470418941364021806152379166167147475220698662028730778102307328116147289679765072031470677221271619672541285160709899653610396432772793464386289463415742843377947181526966981499475976376889743691252431415989617680605499791456633251812494759082204724568431244475000005847553308614632570180798253042052714985875570326793938179696919004317368964827495192227594048258214433834295626713228545351559688215768892177527058690360629652869303092776138935708862714189523234755668866039058028010972578069753152516446303973032594665036694616523434530387353804714507486001496103964330854848435796630657444628491035128638126862477711485427671192869643093768901418882128497073065426338801130761380169021978781688994946342261980258804187230894478491823002711770797247251633012749179311914418114930036898612892646874754163358519075313784275110899954841021189678882744036421568302879024277933427645254378207831097744752350111535894821059169689554397337458320702548171268740182814379730051930840430744144481820019238417889894767908830304016581250403841688338001711031250580107045682788552118156319965927208792669159153669477968252202813512490188383773648241428199767855317124925595126955375710368348514200939400307355504754396216134030433990377865874101977952857074381362010454715757197203519224957130917815268384426398736667826875349516391875445685463301412467873781631708491400101166011982077616123173189635567594396869654165988386848567316292607525260551071227053661803361513498548048480826242129430437579669144313156813159028619655077815743688874843876500617110860368871757432093857442717422063352152867311665051147157063935511009748995950322374244979365165368179824853393689133968737515249544421535177968444206867994494575684842859340713249088756157490092933236622911699622501593712395749248409373772151484940239461909951373517949016618803435072644965858015787224468792482578493852951724579945062302715443871096245455997790328379006227497882461685500549569541653700261147841664990515497367518162464106257275439757798212525335970850670984679253524924828088476017671599888093594530578102294295454451065071789882260234720869118207690663974930994747155169565368503426157624471512856798859309187467008994824338337536998596330317235969358411652021321564326753347148579919326339486253731051290602217137066712838658085469806157411076826893685379424282805212103452937741928429195538397822481157002429214885324030743345506254815277345409664338419640522647083017394849743209973278713788382832329102537819817993120042767459218274514987678875130205028056230825350601971132051636946980593544760560727644428858777321044801820438114551669382135811240214155817864317662353206700278616871610366507195878727376973763210952457551389477034034488128308291199247965831122555112822195045182529228608488009934105114576518477269336624412051528253844743378476638720965436243199012217382111724102778617519211806737370235867351164892576658198782243546277974118729537418812158153445791441440620440544317333136790404751446404061482208334718029522799370897328374695323689389511598872057081975161983168130616945025945056724581303215503804669197745056384757684414384056622418991341726428408751021019821852190037616365444572523758030737818958045991468528414901187228561571090424605488921912591234460940601028345670251299095377554395198956853392590370341087216086768592807474951098711642970851421682762679995998524334177745423161024756518823753408054421706644093529042946128441882014021187189650305527443973777340613692034273619318413325811195912945517624180423922774955224816525261397246528127254713604003091207634174438468184641894336191613126552980788001859286144134243052963250760902780901419192540665800626636779378296450300692939799855059503607561843069964939502375433860704381750178908722481167948167417092660434073933031137621957873050994901719458446102271309388703275020685053800828598453603836128123953527449615041509073624074591135215631727763757831720867231424376803870146956929640230218638251415251121386301256330428253370929874006887322274152658146769697899048325744191419798350114907999194137205733998542702224827575233750000601272011298861949573368762677284820291887782044591629836560669917619080301570249709703114868704437222700779768597126453194575105639791643247112228876698414149322043325729025890848270344079321921620251300731343491867903969417555582820831626188780027267528887009297871004919195514463212054093404058223624133011390024494440243833769672172029902721809805936189357500109064625336300021606097935639646759899984656750578143004063876407986510033047437766774819603384608750101920488087243662759224735904776394986581427094205343995026180081253057156200386920511719272497235639441345473625489758363406241204569332890860553010535027772525451315502404964479977345742345467078607473003704899724094793594299020914582276028110807857561838043289325747067971130772460209562501365750264342090983201395633701679338520216408035108914440562017040844568783935208495856132548438295809767214457774557343062571743918560717816155148536594215286524618055861472114433490356977831655814068312567024827071218413240852749332937996414086150950397898142679998561620626187177241478844567643852811372983385065865618459888132000199616019868969864935701462591767753023360800394195837681124086795632801953174295671893257258488867766403682599199777441042428960156996244583689659791446987508747245872610967976090066315886636407334313665457859946252567725302160909046290436016408479156320404254431822551091762874091704503416175059763617726696220780489906613658209419185284551139450059232586663601085483027122323418222463031440645774781594335985095449414581618805619734703333528494634773552246247918329764806065891660173668269043592944304147001515856049745199590872453444773027425098484720767610891512470934065646621884446589025975260084602620204914183888313270467167946387675439394678416864497072290177693080195203343046326374575327738949368321987495077176542782587423958775378082126625233643058260150002359133286463177526051078651959999159670812195251064678004903523737310720504338689558469435516709278722926046723624735305007053305987435756189525929294292415598486838804781938946349437096712915093575886204098923000920088221780811931275383610415756022636035060624396830944707826574298862361549426161320851573235847512632570534177261962543645655282108869223977121985672237583183858406546456549669093728055762360611263769278361434724136295115324551531243303536319432201727245879702820139039862963146617873490711883883149810753104179532387716086739785013772683148178548567018762338182489521115677820785269731042504244017370688890577152745402986353376382824290835763421160272305571222088923687087805202643827113423002329672697664976018542920093303022839534255580919188906982382636153620254154431779795713741482637905867114613042475269847404802673166513188653828637235325927456834826496561411589359106003265133470754842328717474373333734253905356752577352111252046547007712686675266257290287185120978441653192158998083565526070456405570064661704101289182476621680280636272348228225178437192307598379031997988919372576674147232113245976336545201535580309461414196521121051619624711104380186716343741763662394955026029079770271002908381055913608057665660850778845158887276592892465178038711617550219423284790110405772195756127987023354231668256772112017266086245041931823300503979801826280078856186923003742476699940106112620443207113351589816579937000207807226382515641439011582784084050394183278676966540356451604582876827426603598763894918417821193337756928009222438097517590742948025943575734017166945797504421998666564932429365943017610315145848660144487079280843874632728669897956047589544388186694754995021221904059281829890800795714546907489239339043190944497191402101009532077291828177288405954390248920526556452842503111055116108870565598395764942695320380850819318257970021510346160708832399351694019700916446284576036724964788764417923182152235938607878311822885000323401413881588960407141580304898578418920172490332427787430405814894871687043401268676317724363731520519960739911723498499362991547020005607241611800120219832369813601680123734976569281031284916148040032380181098940088256748786677237865213193135232814235324142424970328690071095110354604244189152025881549616902090284100228900145187622671611850079875923709412824528828366576708607697630826366448723078326819043689527952713231611683093555883476361661787240557891920842591155128818427906809091386424040077654882728920572009036929969977158489347044380494408235332245963353721742810378535730420009884587913426225157234432363821197769438468622189401526886598789724725167927731810604446914405767996353433249474322773604835841053959094397181327059064761080261512155000455655061151897843596778277685688880199847905359625237241897299041393465890878130489035159809608967076365301324688000670038321617053516855274149968779699196751145883055643705095119298294130815809933704942231255098292786333769179068823594065365719988592512865165173934966211665921855980361212771601708321572719002742603989421621005259575539121199443979748517665777695382841251652759442009827453688587762361788236901364531462025592810098834751209769785817777891429475345382073346086088670083874453142453928509753160815182239607087432788137007161569833333139837408043295809335416492808072672403336372542509494217137613158494828621568385061144965622027097381141420754749712595320341605695768040901643304435930180593799105238615337787276172060759092431573960767555949978038412828695489136853429880024729147646745331131756696173287896119967179028814866287372832733417267791646248873486678149771403910988379781870332738590936302310000558483582421365758577197843535658951476105262923961892238134756881611402460779796495659403247543060469326710555491621507150935868773234837808368781337819625494110126284072954364195418860736732958914890160250334063979946177783977195507107253175953477797786169322073389307669672711411766281585518586141452716715950649526159692693447397589706873922888152975157429356062906509424454441016316212832278305814462551507297459218941598380394350340047233036428631118183464872578399013425214031730338344227463072212931484039900417284364788976229679173197939658444465531334461918125613008285510080136372917027502986149349175940902566119587366361436955295033757670081689488396305234129863635008405900354747299755209681594063675383721209050304070251626116060367515205649294809409087249869091019073752404164552759206063913780423905378901015014065440308507195119596831743621968100914590277160185274395336913638084121937685520506418296493803708438943485877567971660664346568269846368769919151601396771413686610895536274683840799433479099030837926993411241804566726454603377703264419189849310432979218274875644546530901125422726621825373281835537540843917568289553737618509308608922220795194410752267897040230914048234275450182725437691887990866487661889712907784849952299279345617014947641607061043672557494238715044371882839288784919952255027021246827535122740975090861419424357945853614223362336645778911220781407255508308882150157658854524498524474858449746266146884321023768959526166397040019121193922542568265178717068688393624280058640785113027267184997634212930198832397512893675084542022381212755962335424030206378802355861563316675766097313399671586741481480828578555882571384716232382411944964485991158994199737261434225305681767490486089178744680476831907615090958120544628827999134883802237806070780073166728322946758814351738035466904721221073359388472391012897050850265430629791280529002466834357204404269792911764834569350413508008616325027313887578861678206305832307711684783439624781767845608415044415820771080897965805149857179194913519010383384594646159307108165363082663682850025622821552995827247819220174520843581657236392876183941846037870460947531046004557435997906845148338826843035358079600937059077369951457402024943175284296886203916814002498525977226619148628025638516148268017779292024458428859759236482709564568689147450310661691447764457052977231959565878793164814324810762080097079111162082042446153844639199533840003880918435120759869405274771358935687783776234437866014646267741324018588280001345527699496518047295527184474145637608105409652319810100509904016187800477668631052929688592128319388975153664580498022198417950638358215946998499028015040418574165048222546671866202001663837454288582491956333960729056918219430593579814736763162055877563851498809888772232686941879784794054466057899440188397475542917839086908635762576963815810359445361449948016359804273089578906968921853978370158225653636412191172091160012438487539615855119556332055249242165607284328038865008184540845794569137232236631899482256717825926216976961020019914875162027140527160995033585520222419798876151603608066845857033831445328843616837210929611117149591927448811697299551910215018401677339160856600913888422656758895249513241455229726843417105758267009523720091558677571709137506832338718982796774527034354037302198539700087702013752210329390689385168854120250953531336427421949423556247395598962113550192468629967267744728100646389016428355115559727499027110860397474958719229730038259446976435054565972954921617528455965236612156522147970779555367157711499092220706228170001173756253037514642325019132569274340846044605668693493823108801259510550764832161821852974806692141179409855979806440623108318290903299307200854540348945982347176735621483153539809266951558725801031191381139120010517947365092268529860972341951309883858519415130427515440226215410258034722014775095809455319870441852846249627938215672995081466759364234899481939886156530872113920027260472095175992110305045198957508234002561869481743713572448064951457351541528879104955109728171433648755934793898174258122268913067489600018326697418396216767482198764777458090121659749478221194963174631361570918459084826456389349178333775027737942588624489551602296463565211729628920441029842367364715098884326113175732360780710725123466581097537328045914231077245643915671431843315142809002492009921649687660375878925979954738301654715550823680572159199927031981111344002866772199693815358335076070881287576584616079440159096729872960233807873945086999359519239002455282456427393546359100508951993016535826537809954796685005637413716763411495823121763564136719577192118851208033077867228034616149222577594295722153977972404523721348433156554550245868072113187817338378433090387232079804146737598314189005590229322284109078816343209773853096748638797166829286854645509752533920805142750645971358630395251638600573318411390894961548559295675158447798720090416545943936557556014139818513320439174573004706685024047529663560766592093162993128330298313115816719085179038764246167454732767008562265229370221095706567829580187197034792793905762358778601997659639853540957529825982727092938738243161055872197941041762366286483077759385596974685176058802722666663982443221555544416848216676798993990984293231316706897910471118155772679278525372227801091116628293010594975000292569470308068082913431018434826016853193826942474585544469697452942166941234190369701706884472821222043941990382004429508094018793777437604096641056056016554037516309592240108000578052352152126466862858081632550265940100003172457157686494252243833912863508311694628746406269728449516739189960741673834348639090428762351248320167530838464517600799775677967110962213170061962384015364799977766508534426524775897301051336489391568705510688036634289322732091257367676142940337517136519449087899236031539008111460905305544992888283290008125190056986535070562608096815512690256276998197977374030507370286298659308976109471260117508316427471906963908652271053485738277033224240705654999486082363942738334872049905363020485801358695895149178245913616025549861690726525661993986140091759755540084358086614852465891923977409771603318782641786883159147478070974317068381777067988108675025921315407732807830090237018833864939426758852655987896667859196386821596183539091967296978552517746030472658479219600885361676148578692684564021417088657703141833381470873745777945620078850301819932875212883084439853830043604379888946755484008183571682466942741134006220181501848021739943964711890200939533155581787433771580273544516697956719787340704479304118198378346732732416985565025712926536265964188518713860010973179607746904465793305972098178127372697526371156099155565500817537645668509404104095287934310826178103460552469782529107743420665862355483533674479599519819750372134597783986447573270241858005630391482374564585998196523475610434531177539263780821494917014325565580279548441714698367922348665687996256856670867054502760338020696456909579069784138177796510879861817899514151433633175129220634571871892140636797313418153569784767625557658743733741120620694352698364115139459977589969606915920642916225310328673903601026563629154139337515333452448071833412310174728904914209779527874973761568682224247242905925879884747177377990537233835230031751537953444261391869917769623575387834786606532622957465297749537476237791159566594906363119769189153525210059590634650580653970541131603545392836217740316611750396908131511805829667180887647303328896802497744123454716204505374440183858675771656097155583376620434548988390952152966004855622526566284055013582282525234274565795217776335097196928931427590152135618978817163028034885438033567629178415581305779111431280451916444775951114892178429317892709460151801920593859133438890216547546613133209875528325356454072043752116120072053683098725498219852609899358253397978862477570686497826222110497117592502333502370006407093335998148352374060569738916190281217493664828117038308808362269732021624811290391675697407636104861066153858497030171392793958429615588686255841449482248146157856215957244722980451912376449216953130965494487627797717938615909237983323229968212444868932319570041511341645490917668381781098319555326196509818770537332854480922014523352472024016162401594182971513588668139583000973763999209001448678076901912225730302339038572187372430380420031843292942018240054049863661250071670443085368443579176511275507258672699393058080341073071919722440594227479317404453235937413161399704841226596854502076437845266268895493527511761562569987936632206726402733664208953880796492379388303621267205399286651149104858772772451675533233655936540888296035254084037169045643879992013640957772423346629420335519341241352523543837708759418767657276003598630113865288493217691433054932098927841944042651732065617622913132792589970670402118328147198782205038123371256178846035555680227839473097106498100771367449497838689832147878234273683752171063635197763051127419241388612567876636008453424694256911451261757873620018067851522907483914834741865366730625599978874394415310046587462240216575690949728231599987265904366645391575271964435614726378391590795808044221410745877844006466205365579874780962173828759343531303206280012197035744820214993521584722960103189212461627564373745269170515701996154406882921924195115644248811706196545224938966336135067312129379942533259161124438659051057935739184174075742310947454915826738290206843468981483116381356066107365554490048621834371998565407378507983261628747061576917571929009812869387586735379620498539036441510540310994413157793706444981358631903828432614919210738497166469538815408923249939930006337164133143567134553835326198779057716407316063019463692546631556105646661174951771044843421745710659887074604084931137863262432766089964307834381563890367766747178415707626796871944469119542792366994273061808451841787788850700731023009311139895676732947119102667054650779276140418345128067013759896743977900268888929778738365626965394906963156775447421432422538568481724698119427787998808004194354503606255495872906457901523908171460368091521593165058909853709670327373245937944534829289109192480857064842403739443250246515576233618351990162788045441893301859731592142214727447099304347310442993469413011252380142161675908017881701206467995393582348072098897143089273438794779137365389983106325009008453832900405373453334087690168971691691745284386834300146269153397198943676835348630305076986830841647078660219650134388051083758727796519089533360474103109067885574937927295600031151652106618161558923710204594278407966226794468100986725696494222577557399711651622118536934486459560792931236095221079551756823507584893568230936316657554937130838145528993499969391410118662728461193090605843914461384793661871763964459963428452486587304011598430587111278962546694218246238886099579872473198790705768355715626833863838449568490295338251344652981989006670817770328004192092898127989800238546469223899111609888624329282480292563666047116611725016993424765906660962302788440427323931988597452305103195582049474332599853860826688022150376566163616723724872711330694233881697926867190106296622476354848748220640661939328676420161576844145398603858387493003499423757851253303239666344076791257006727857696026588525212644357188647728882453091045891612178106647842170750427121333180279411596408146184819448480140823826509563087753730631771917351541753428747044002227904710793207308383138630624834794201380564381207406807922585044583822205121546522734082461113798809066553771638989808170501948758773073713155367701241454783267052420396027208952660413514437040129344875579628668883916166181033397419515099883386053782648262833872125702594688937776098194792121911500855290644105272398568276037398833892557290901997660541356101941633739484562988478891365386793601927051894406872304498054948415971529889593135902588852527279272700700606515576790794013929968166842725153582952813826125132462652202140287049395448825660384554676858720241274459122307523663115291449318656695526053414669042446467649135652605205389960364850624522607137293969199111475641764264197329036153597089941477106878722957610348448967498256801563663604277635406712817923734723774499620634200035189105975926461922373070187168022897967357054780960339630198523795518203784868263468134569995198996651930897306967480936321591242082541424195410570993513991548459354208071462997151479594462890676370995927358599819490218199218455174829541359489412298450151454137672619237083276569582242092116055905159153859506409570416477448505469533389111900229986821702861815181474196823059168071953954878999152980195951183582703637618611236038244681089842486209522632088546771657316232663721918613418538815054939988964492258153535771414684782838730312544328286109607375978853998109751516380458495333518529802055530137229939240384377893888816585366269465115870241521688971155205174982227238723360217287458654476495189618924540688603567889668071294421459832774627583223846873263541498406097049579645720984084741927902439149286757751071940833746386605041076578761888082009255432447390577457612181538053506454388651640506051372769494068575997944322927476138555034818250486930370529238084671769629809600400603041997822251653711139300278108571055291454406213092716964082101624138511462911414068384118485638406428592668125875077636995897502885294773247396005542188036133147304832594420957159480844733129808083140581143954363497716091557686029351837637150448436835562469018894522380118184864003732646087390470910896454821514722300120059254863583776307407525861124194620945325674219827502906816737291735662802268993728685423583139680876811082398233466633451417133376795153372470387461752211581446031235590452745263383774819832710055605711946550568845398146538250272910479105395622765819712098082171686189044893680609087051595735410874434097176975191299756907774905239138613316847347197296379188699514375775878698798965860732754731152683483993448521720303162460793240443793473842245870988350959031136243248978141180802531135533560593588523903706877181299925636487587814945103234556936819932011860525203883930749779468719996786441030962383710696357099173065371505066018140970766296457904649641469343447703389831646454547279442548832756988964056314194130364367637131891562943210219807280582483018509128797361365236660288196607302825347112321136142370833068665224425439396326565322314331392365583506632159325193255350352595192595525126268130413630837324762798024004753775357909244048634423279664906335876371744410822699300114047930608266876696215467326882078640457030161369826210406351696608068033805368008942361650074198508576964634489554770330866312687947528194837200057677929859653050326568615275605212845097865700434848366100619026772454725214402260128146082910059074662849718147617812028076961155143974906853415892477904470406964130416169612310971733103394394237755311658141430055418531939821807795062660042446731420563499150950793777007824421030089762383324395939397640529884352597652319670499678406745626027403718590386492643737630423633086364282188721009823880842635535605722450392608115051481814430497975026333935527249828935794873177257804868713772152312376785319686915010469473124865296610628894550994233797121748209252881631169230870037302500723356854985369421690342259676871598480993943722387163829301163678205946590509768859133044882629668003018045358406933538935261974850940017728009959527132429290673927550315714217711190121470252794166597810027280621786113683016163709344388640488824817926231695238062903848034156805505198225258397127770772575192824270532657611832278649770155912636686933366326617783845908732275692044294877463556955447230325141808521996119633934084300821094877770232273193768468168839275837550779619796329238252478868132074286882786184962704833987092982781250463458846231806000603972616278753566247176881266656027343168859157002638256780041075204612647799768402167009791780108858178200846946392224697768382234388366798036871566632269159357902356441375469912403556379437735813408942100074276722347817528320126830515832262609321112203356880453709743614420818547104575303910064320990431126579225240408078604977963254469809860658084807726180217419882526194181119580034630329580764755458991343094636913103718624036795717070727909993916626162308865144234208307795530816402536329466131484696017725782257927595275632071727607829872913311150162685006039545640276159712829353962275806455713734627515502824015733955875959727856395521900319831368323468861006850294422961506087770057913343796137299828193283428584070653219816407974004531517477554375741500099586085900032423697958820819163621337290691944273269124607195049552898382556837326841470063494819961785971454030415074942104265340179459994349766504869758664924932928510219803004241144787890125134663467727860547322740901046834980191325913902977175955368793824695397432169475835038539982001656514032874332721337656629232156238875700828501197613980641998811493582499826426880149705084051292462519009028499907807314233935347825390267659324149996318696177375410048779126705083533071289373895593107618307937650661500496706032826567228059715169829243880865253272956944751787583906171953206900758721863174750126374874916412423142640308287302740491276988956280869198229778041562453201878383790104507798433582890700391953575321798330099516837978134757653699558496534975193149773102695189369054658633912624936924700919888348871675485672105849598085749005280957990675901138552183756975451896767137905692800531587581688318620344351330721060325725023622664484773657179751577762666215265518524507289112264546420471911557745263690512949159563910867386548396040027512936395039065880938584702365524413413581327809528185001578460116000022975147633319644288832857917771240783955846338304498263816862291276123091980582841529199592458321804789169843316589005511226030178399270792271902204753835479896507958848604459870545589698527817901410566254691197180845353179365145992959676478636311692164396329052129415417891234097098539163048028692840024608619120961486848606485902245071724121322511281790888677713446301679854041188769948985016559592051358182754964383004390109409232858017265657692257951884435596398522314436219317345801839311151159910149801765329032772346950381752075529046660995468780600782309565269208923273105964878294055940419700016715561574269379503662095942992284920554837093814362567312566994820644044029809219540978399783977959659184998488200812143920993837872320379975283075890544211096083141727356536860505034036900454644762158782693977472462528448493247673492964461505770090286392985879500650469864889548759211291444108643086719176384599854125584628192012965489310307177868859229758807541409374249284411183233075347588453340304534013584480310824704089664972103813108071613074212670801834825525191877771593907890861736979575378188748019480477023079778992506786598987973368837181838783839508273466459540578324802332084443581946696316064877893954494424321746538011120246762832864632724778951807085824598632733436519760289048514592159112116008124703918733662680079995290129051725225460040176054313709716953641283526453172581978189792899464874103271156768357378399124714926842069011129678304968511634849715295035204583726336732844592336110241151160483377304673383583775370554558207958831209354324022574471009911877628459028778023003153352771809070604407313246890771431730540698129638710740203827149856927668348687270160274057198875973680229948279293089041538925075657584415549548769048427572915761797631432655271160866811026184011653278731940884943553146470373829839657318500562253275035129966541207043377782859470996808962091181287689543932146977730866012769466956085473442770505192996474621231774332053234267520514647812399118903870086648229275484285544586687136647233269461113654135951178558529099975794171084769714168173050745280699979530707959977889692646834323273190472060024146076746018948038539386879712932922249726162601633473327882722202909725956504895605326827628854612633905687327468741496606117940736301131025964367742487420272055216992553419445959637696919216722017998285234359475802183708723751930711672391887136748439688910583051097642330590880912010122498310221186492149864857230961915673962484389510444406772710272456642428123422557688908287140305986250411264740226156727161455897819369442036610508845981913078510163227273098093426451316329162190110387129877546765936366017792329809217950945860320254062597448766512027050936925203758374405631122698484682839784199481359696990260618613727501584759225767584741200790295439756407577015604188464496095779730037184263349746516145354485272335178912385948139729771799578096700435110190288149401133268614529833829398953732312106164445024043788559130239440000094477502284661445742219471017798542901660074190296721690061715214090617875396785445914004081221838271432852806800995522839918512694997767139375036284372476618977701220829450380684416672361006897349113281979273351273827752898047444790842512043376248495640838916551243075918450724839324553395507401901557852787932709577608740493262614046864043225539659183441810396438896891824705189972192533311187841304020699340955711798621376784884851359966553183116424939506187522851614893971390730142456046900576766687283675903486807445434938371335465024226120943441403784802408353489620352000274598658538200704351724492262725312228461761405087869988926921429060662858598462044634038717492310688193793462583864337363845562533854522227472076393608353044988871121515570655137636753296923247669845748634815916908669514348405266323647693336522812767093527062377710902747444981981156148949776883472441382089099623925154329256858726164701903245325771900388568622938200291269326323990408536399281287946931269283946089241742298856364108216735648104832270207381453251980306973936741996396469908626152357899664421878792781567695700012843912612433966113397970674276090418585464051633371519716023929775550577231595620610218483710947896378760502727158636680503059988622857757270994453924110462124761998077660189956130202684244511671084347581825141816235319868238063500872049501228644240125681382808683895637361813017911439437599858846266417781206544241826266013107795499488313326345190850578838669080315673376158264055201719751707370830236305680709107959887390162219649073222339914441791074365636711292244106068353366498446791742953748062664512233681824563604437231864074529683817217107078699160179533590614209856475684938032854614840874441016433709716929861995654242079529031220783868611583030087092275136895140378182483537439378558009125705803985322175990044082870021137166159682703314984406443007440108591743617111356679527453884305132084343166450485392640520823768998331021879430808595868553833484571937221782908613549424741366077653199544707412870647934291406820897653450951792154031389542008426281182005938137553057772414014522693811444691623387534379899533698686572468090114862611479944407723897309118192017546904137139641418615438033156186173925711638718022153407644652098426119956804752529626565925754570144526816188896026645408903632519742768270405830860580419226637508283110998836532088192475183830255097096098535989858423398334170883535885472650760501865770651024420756852194058135795584529805503657394860787749576209570808575383922921682779953829700966944441567111367945170382150460658484226789351815065350317957892064323998793223270017659729460160569957160954543116751110883489264705680343987846251280977943717801463808039837709086325681795546576278989682391447915010386438445430243394608643903647065671311015586256477388973295989532689072082145487596484881289360464184474355923311918746938591312040347815643472818105041164899246284249376794877726669880048169635035473910776341276759834053168636460321564924954290834055184851689544388426372174497639627910102406993365557229342119296238140954238963354450332588484708583859027805763783487346309286762146548047991089118220870790313688039084935129950400906901553311839584520175681063359377734636524238215056089988011771598103936841970374520362638045457951459033919181997444114529557869009884790748935470171603149059581574817786688322625827792791534404579116677075157530246503726919380293859178095904463705065737246448890429627034550908302114542465879560973013050051598779141311488282661800370991580680447061079360006781858396217042241930741526137374852035607013823375465594215692246578657842553652913512032994437092081224183859198199948287592685549503613785732668505116836279987168776704127237856769642825708204467525729877809937076364293471429014978382144250530838970623241271605315006176602929186284623865084421426969287387710017918175891937251127594752928059868030920958975690913533471983222661156368298171342641784101476013569759542278442167346273840402883190227591744179425664548344751030002682511200038927755976739936981959131675306247679365286528967889327654117818891896785120072507882710668569052800680903545823840857918003832427655683789332161544359154276366243334477037681696958083397940455478756440744631492204117425080302944440253285560835690079209322567600097091967816505700204391030732959395978124165669120176372559828167441813016314602131361920873866241157345245938055173282193322099997782171543414315599455307505345630842309074629233689957383732727253305152894954925896851011921834269277159525234571943614179821547324313920582223308307240445552800493390983626561275814597162341991700027789425261199655954731660533423179424913848458779903814805185473738213810077793792144937651539506222477335412133499614886115817294466927844659196692490774162062743373839548004652140492073710751572886787472304068067080050022754009846332431021770273576548847107455982866193021040800338754334988885974232978340333691509688491223597078185759253427316273283266722608489707494591816348842034853620848855342962907589592307362062954380774209614039708485244932883129019442765880865125851684045933566076442647935645509658768857935146661497453623745042816046069536562790966198364757647910378659348483900146168711568445174690304895284983050827231083524577614224044171376469759089681675128404210514502112716127572286921905982302765613139431285041153701902754667689099740677674287351847250347275832823010071358115164219313418289045742751783218557305779342779914716754598814776047516871608508517351713558138029348570572648249534200778629872690172634187685952547100059064385774526180722460812933075119336816165754763020504425447228688206736899482040138195588535648894478581417516423551116400664089841943080613436482610530105870169777999016556641234077145408730212743419144310131658089296364088739352237345901114234164949285083891599187526037627842099934224595782710844446110283599865310067601444757106858841918171304047717668998110154662815436340440562233858588405745666556857004056426596978685570641999757549849658833471705433075357679680954317649902434413867601582085482554073603251106346741396829658572600186752473108292461975493848023088584616668755253657301215951284004492915922829459999766100940173660275062575966876799790626848871966645786490462790275346028372146519577347266695794719790853133562035069992060551339350751047190549638719610125291165308315116552895355830913617687294526009859127806627968970523094456697407330925296010944723578299167820333109199630692975808050456041826401405831680003580434181846499725700379785220076758024048510222582952872253675010387391205890883276462284781353265067726357341271257273717935327094273518446650861452233376436233057258780798678382884713936044703454068769852341179221803731354243718431084110172198119598528907853596083909646782554940557628306199969834552042796799985877313689773191055994918420046364201567873523971597191986236005185897195678075780608083074271776321650826837438351631724510527274848125582767075611395623591518259803683922969779584219593049477345815850813208407021927732542261961379313007654861515413417449768337241368580474097657635828108022617558724447440313740256769641510849406280088413457043680916399130306008061745684884721111809285986975030369258650216946831038649665133404140356698401385057420790223826752831748267819549284916241775948218160218461906610023696414903569725340076985971379091850004712808488290888317959368282135029364355967415109241158098154540981935960305371689608768099827595167333776204962468121809944474291955528125871338643736025710718295574443754219530701152694320375975289978841485759973468291288234721581470925576357534934912105146885316249851056895544290130038611746526114377046241418832719513820775445601116522077335458845622900516075105564366836206723342213917489114417146206120559626428224445759126837572500217558568466703035607467824721714058891586497327827149969968164800126007383679056969005333423640172316241718538172205528616625517274428853970449676883467275123297558254154323016947644395198711444186432126087230099307052898438764481491912526829651816471339434864254177247724399218644441423741575945990806446113648939497644260695551811268982665454345967669096235894567837604961140910895568049456304265797561530487686418829880635135781743497787497526332920083944810937532795318736132794746046348947639146735984517530929819314676231443432590789884528047168566887466324369263145009135204593156528522100393637839888563807737161311326496151160976057066947612573845150294784979165437573444495392614259211737821383023765669131541869788901076110423764407395339024389764139585136029917628203047731081181469743284905932757148729997741598222976434994027802569738374883413424466457176459788414660477933473102882168870350345734988339838745738809055517079112770685294209352253494255930077416536533881869206438794530078562431021452056015500896969107516492336124766797489404697293255757581080002170720636264203984691852799633170558261985701110460517724323430319389992838284059675975495322495130143518656465624184921796728572220532825543674241298493890380448191876101834990513876944590498414560930813048650085713412614061808096516176376981386931239738239388563053511825931765451202235169932764819388875416273302545048096032586346018416305424559803453233743166745573028037052548008069177860721258895712405921169087958571840520255230110448736446857695173786730453689213681922887797861201946156188478826490837427085216442212403265092018457929136678283960485094021817978185295558036768044905943749415907091192671335119988032798515307933620165556404756385212836039138092879382080834046067048079552521107648623244491266813221561199090435864098122567283356893209087508877852919939271463811583020548869727825331420000994506755776569489853084240091795602949093239375056225018176059240718196544258391164403395669527868493668643559056048058955682088686410097031865475746328119508959296879492222736989618690255728059972153076435084765268078127655655595121031166928300757635517873386897004830685656156138999832911475619814946102747745591701229162539152275349370019560616254204961848995584132731975585833524421435727137035889933569399680681043153932126457308198615417739094477357915074038311253289690942692252722762066798102387189588208135052760862044749824795652354276406676809304286475234927583974720471160627616819486105325183127623272132097648612177343175968528598670108144966363663912952337078888252711106624800834971403257669997334339465290801465543648975576048124390276000450759015340761783734311252217524260605030843356539232210128650920891462277475907480580191027504852974469404476918472246498435721432304882662007223563506399241147912476592423906840343337612667085358859970285390379010235388212566751667694466455763357217285767677083642655355301087939802643490469411916670284764021516125504055512830411216481370303649015724973909173472011278578552275637544560827317130389712660347950826049390888358215763605061916526686276251463813656976385206844401108525671232300500932555798694837703771575695726466870649197511343024895883887204556001343986780893108610738049027290878077913280843428002101728470022975166705620343931254590184873742519075053599347732665003668144745941400921451169091211539998633356502124012121531487379062540639716297707521066244140147553833580523428215697084357924000116408113705811774183654670267063239396751381762011865296752024455701333345703863267446925869282571460874628800271358306203241609377600723563231978588445463959224369461512406338416258851771645817776349354408937791110248115833601309883499452575357696476534847394235096485366686617123855019602982050267366166168685956222198993640604804878761488993522258951505646099490350474563615992180956143450431789918013545266601815370776368925403553330239507378721984000148899292748424890588248355323757708004070819237841681530078381419196806491979355077110763752588485195781403397496210557433252717481557659768957423719647460657876856747989153612829018861355316087397971655670459956843418089256550535962050757744866323117747681471403112939147100177169718570808941121606163136385875604053277907332648805669440059327660414660054751046925627618875712176833612093397214781024553776330050122329319381769586718244070738224415953254585526740568572623391853955775754600578936069867829434867648944717877530370289476180803253389585590849740591223098750521490830019380390549919109255298471768730170091324701532333478310843333020178428027242573670226848811696723608485867334265185660527354845914591012938024387378162792197755177972113359422842175031790889118218358358604569556517271884704042465355938060175546105309744893237280470467840845549956661995662581241550372074423499023648062988941918131548044089183606847764927151486075292506634527025705566982812174808206942532172645961578002405280872384172941862178722168229958719303683550431840669087294357227063514504571858955107210276478667741523992858362985305642717010808035566780182370102079560882578560158881970364994665326934986142313272454769066323677827481864963951150650180676438103714078015798359575036894972318597613994239696026949982210570665630185608102081136134749394060522651137246440081328836302663408447527773770208106938994252204722868255934178915503812762442130003956633031223401299053776772209398183625776913262376355936354668402295667822891367492187949964593386153582938919345221000798502761446756474699774048975206066420110173826207313325699360317102093775939133706204787105721933004215755525401528914808271968600975068264288615678781331367802424088569670714778075275270628256503220289336161261355180889418760940068343156717727623113917622199933309084397500528101222211385093830130213839649474603711276498474044324675497477415214348809488528852138934437107944623445355346276926703189075458216839554059354001507415059480799980499106845290070665737458543746413874483701141104649566870056451853597951388206190583093251011779967111360621949660817043836027714261878987825712086466582292707855563556024419467747030697736679678210129126649270378208216516800170322820639542799309083197842847618858812544929370778820516587478685468124529723085123186549529671839002841378179125872019799247586595422863893040412785066503933632022934464552190141666909456741356243515672046812979553399868586027673544076299715546793937304059854417090971546193046711441296632520977226984691365417527095653146436309498871557620433932240747545091195691942549779965766020627234596578128364675538158619020294277256106884100448412567390150868562078834806274202316241741110862210359495551237124962833477421369971938183331625681292484560790046449409787790517572661386813445121397408152474197631223740348123719236015598295683557540748806862636004582817581051522567100284578875588620437078749544956447608828856229637732719025928239809851515090012839614611848389879839370312519587222078019761038071455249305142105268847293094954032698896499943231377342792972963809834191528040413553741567674851353821579115031424419914836787440396089307203272483264553873614476995065879620411124261811609095099074819791454904952143372734799730062160817798867685100428016291601337613372630724964616930943209810422880766121518931069907903839040386090891616667533325371426602660382411779670541366331787477827780538941701790416222474305799510593416551828334224438152390294800066483177187306902488794147894163279821842612313844604904047880998290045032037413391126387955705609256509744350357372271088772709762050298332729412034130707860737681610134835467795962579125206307035509945305389271972039677846091497753464810948023431268607620715597316343493255653491987676023797911230989982837081696086313146359820663486800613624457946666620079926476779838781666725121860935263222641187490730498376991195667198838611961801395842501553310677179548596881668183274508564749800200973030037246685016035206207190144162376151576759174463810209215327888008977369829991701145188996405567878781914728343336236299596758295174600486023020793191354400852293215344623101735450724460936172642039591654904688468756442080245046829968977922011067061775417255729453830806461112450638564606350581630439850972787884527522878832483362226178540225805865717291202579870476260443572285975794676837485375351414512797544235976464900211411366336859822156206808965455467800327329341207076621796340684419334018378743051438896247630748043162191825128118726082934316957710715580615336868643357031576833325188110555211424507782884824965374351709057393033169448641114566263226085554010148766267724142414733409808810922586473029081715723208206777201455266655863911145695813559330028902399623670455517331957829118863147672821633477801728766601796925145248215393939187566172777402304926905218833606027029392817966331929260957892453447890752918471547542512178143495559522712630074649355620096627917046173442856107963305803866013414104933598770823988698199734856455577225311430480069650916713894979410189017654036605351654673175670306055139846105357446563193474716717894648996165657617475121094817134127691487588216176082287688690226581931201870241576476024270738847051259060327743170295115597974041324530015482800246594455363757140311338459271140684085923456871658379895907080467017231312868630777870654117118783451944582748296011744075278862491049046650210991727502477477800861223409168425416926249961730708394446653409601269397007440923940559036158465650005473857021072830620004827005305703101648044730880841691279989163793389406592060997924338336268083231010119987147141907850582271891977111226882321700042566249290964740408975856903761455174796748401013761307900365827909025283614262792601569451325371398216177352704134627808701491526042996822653123343001402418832254327082183048526461420938682964928888482390284197747113664828229110824483214316933867126026028288298796740257079236492003262213869767569804112847199569156096891652323513181265529787559230039537634197100513708347253817830741180430553167717336793945403204419235988449117639001017786109134320470117110866029974946429383591533570406594545129885458916032771859299359762072193500338322842651331653297986421912860438506868337926953146247258671818044982325910967880732383324706387922226523971176186391041646435803153763867748190947532531057380756852317504844075423503357749094625293586279294366786322344650132335504361878841480862896897900113666609173702842263774067979452813891918991556550725604524523439590660177028890532253922408059853757526948793051535854842901752196168481837757625935013655274697107117487016946167908015170113699442205842990631551295230788607536658585325322798586523004037917154402643729392506268696853650137443040810720108292715546435230321699492082247187640982396310018736674514032807586593267602723586119082106389326271882522243829233394958290392352407196448745756325023683682918476805751645246511998592474678969658932766507246127324438976634258966915503610682663849918079497452897768723434685685169883793895511593410744677143807460339658555325796119786911339267295343655125128680144180872423005281719119266272329265762015057968314940597464707018224373006925091451039436274007580793513827176468161297302850313897639738470827110382263085101435397230980430991123781369406986911503655557835877447666657247319919086737997472896762624317979785878236558094349645226196258051883596486878570035644558939759935712799769382703005633023944024031940426246694082422948716474764008297495455414329315957962001217324991916323884260235809292638685646976105735850140232644413747350541757319885119165630129904925547597840043865529559869086123025481660801205398910177727980279352260719848427571599489269467747032515788216921620541672483517608980539387827364387478632200818050112891774530605479996841860298870496999820721875428045498029807743073092506737891264686619995056581125683304718457134160232930557365772265706020912259650134217288729406835855693881545008534149579284321955674081075966426767274013914865205721670050240049488102224361434823571033019414087505083075148630585787934398500849504746411934134560496571088112059822526379764105281859369311535379997853167701518447661002546107052500265797369774003701147864444537399505594602178952716909097196663440787663961595118736681731119867654783373372205658335942232114211804293296359960805053770947338454611546911944851905930433384930050614799736511949382628627194238395735845193838265351610282637353869321344086794709285989303499173822282940822891772959007858493775778374530502257176803444245150406701866329775930250347124574119259285466699973643766839370578170254131773552490353222271493546922284258014947772979753284804764359338899411939336574934708616410026123795498052998040130552567074213967226741243667384061781777487629705819941956182831341125342260707558938188852754848422768637515842643820121549773171012360478048268418233813286519785776143941849740346009257898560509354364287042215823605560209208721700953459632322554510340783360759791668569343934166791133988687303597249574222916865670655958118660878524453768322101941523217896031582760287154340907413441749635783713679823102878329447780591224229173217875691197992603121202964057501243119772794466616229279152339284650918788303752257993539883249039635816768003735902244721709234217706886699602257798277315712416976348404731895770595271296119863933632307682529840431741978975750844906113063768426496429501701272543245216527067244989258026445983732570019981271465402060735709068942109134316082643079987167908076118124490126293212603642720278036393998215972261577279419566849962015017818303756561153884145008420204873997344719173871071875092892002909069341008609201165932027586650829982849321953571998401132675729271841725438078104196473386264537603014480421500889845573585278692822485600659632064875319166311023525672192334059608839072641500240685922883518876860652785307426332737302515650184942310895301658824766622652293451812801263535828187998323389101795871603030588076671278745144971528443669639557365080676739726908042356226907305282997102483214634756954120690863527862720356996390519785929289723066013844561251209187761854156661212712390202757425129084350270277002804506985572356888907079009138092624491293540604716116619471786707331861973770970496483708204619314770510266875193270702791785263144534052821159973489101040182283027338556878188618807523532081406793346266068567365111832630730172020733650544108147824167754376488317390184716093296635479961438603264452908966533699361906977593695513335026956542465032358776291175243871994235348811427750881315660449164494961839515573454001404179152014104016139303902056844371830658189626249407109728263535951441319294966121106252850762571001946033106632347051164413397978098305930568846651296372063179406614645818705187048711065608633614969420824400782634849152009774237621842756602308555844932839392948719456741340124637473261675045593997136076508977282920606376400685015384066854186116888608591428837159963159033221049947394324912369763455331343413350215780987138020391498430025896435777916996143656957961750161184374963274002166844672451028871434792817817492973821285197334462487748055063643388174730906439800757715940178544801173268792118421709938776922249261001622191740821686602086644580725052319208477406249462195293819330769037504335678503198707106271010711581024776786096404228185917729976645467913501331422942026310820278753183418029240077916398895527625181146892771592273987573787291308068928973618912243463501524773180116251108640885632891766494790369848071636307674674602902745547811612485954401460575604901711920667537384927535165096764670204544209830882860808706094650726288955008667839804153350589889110976460299399999344233680438667798706182746851367631243755946768019454969055948105302961383164215899248014853564737485824443538422337610414285432423698870051564178063892622200439313246081941549728816984022836399890726343472285991276419563581437325281212229244643551267168174128166241999624537452269976273718139851033098126063325035105870472554927431708151702019132763026697023529165713022039720686374822647042616385790885932350831158419984812358573475783470923884913245207804339793273302645561509988850996540909794852905849981719375502381970185931593408513337028932013399991072168252839126569188295112579037430118023571098295445735828447821932130225564778845952367898364036832988147979675580197278271954328607896794935892192531706171605601339233331498063855923758937634225720550137992812317257613546098459238982586308563199747479289186207272007752403863782303573931312586229208460310703663032818890445555010554733392071630339265435409578767860138348357560357989305985560298713032686454309950785168669511768080146747012335497069899110340901553061197697729595257732902855073548706119196902713359348174527879000493394596373582051000732815734736599766944806910732567333633627858147220319803022506362029827713443400819524376543050585890264456723681922922107591375346055817150741949426264041626481976327579012142775758858237560191982867794460132312285885666281580216293185106670163649270875973113301381652762721208641113279417115454907751524723592081110937264767838112303938465563003805610247487900577627157085017683943526629306418735560882085473558051929384728255488096562039751439109134082925479188768605599453924933226697313441641120311256207552220491070041237447803764166836272479124315544168060915647989580596196429930679480157645163073218625222583709754626509002876259943016505446029547103541742008592003203865962967869965342132952473614252913469798218459711536133272777457800315477031507968925108329554133964656888143593317107474454477727528390607094715727109896725269650352293407777649205472412629156414709510560418739920218341964290076368359706935711932787513136828621666018961598417729511171555120200836161050086176371192683163510919656102996669917881364822261277087110651421319882190561051473338353453434485049956775216900510796208442951392383037937218928056919143648579469223520827103414483046571178431354732337797142474058372148593742917754408075864249612849346121329354982416516212015251816180389310734198861242710880198956775603385254863100576785071538425722985845128844401019712970303963433791156391838322847528587343488732405012902298201865673067973369992154543417150695166915737639207047092172661532848898435648024462384807729502746203675294159184806805256135154640962007126422792214274705735899953377598784643983495099400940570969294868434433790904387612370795573651838680984773106691913283152529158989664805066622283589722634214888839914616005431339083298723075930378146379403357464919975894539967464329483683842119948815519921954062893382045450018393445278762202315900946205094182770531538367181474959691652892205615380293798916636084856240079723530207302192380942850790408045443400376945522666865428518756686394728789019851668027857679848769324426521843651756819018194972354442934606252385102038768319833187216201970276974097151159415747792252716137620651104406575197437245544146781254145603024616744673697289334747571917018749175006951156191066148423497346782910958702774478864385605864491787668468181684002649451883357065787820406371218943923976157995713173409738025381686792076880062320771856612254619954240243007981649941512925171124927778988212271429379920114756670209812082732246603139352211707772996538619847824230226641597792066368015683471834368638170839520773555830617991420784063434731318181512760379165470780423817264439325993975130247098324195746088351306397640913723710697304954670695147587634571990996635263780631003667980774248779658894342272377202940279909198168636875271478265951477250720362717835921808934595031896633310884672360483552992916028203967893109003160701073608271628220779772764389052933582006686778345165045049051230573283421044224903858976135057443919309430813162774638674691989640704354779975448076292530498954040618030052310675209621680313188983975718207201042587135441905928631464922390262049775148795763666866278188786752281923573269235880348947572498209396476236245813434055353431951200081546426812427145690729639585964739821376352149021871379932146832928748402702759739546925072373009851950385109067040564228563832531492302957406197592489528421156750328760812033680702476483495632648851754122455690813489855804579366299968779954247631528980826297725986246399454702348831554625020091687340492987849318539188800056638456036296065531561204149407802736922688115642960672579774076978646859813396096607622261680311931929548209631728695738761870636614340184663907266381119156548333732350854861105158756181202005080642119443051160597543818529365999671401083297231432571178525915552645154941196418271730392007477275332669833864538289283951222417519310830622947925894201726000326855920389160115487819428650221451064267944796301081896936125951270106207048431797259281885881941654241621560458912005525564571049988495618546390366837274043452072395656099744885832291484265377744050222170549177187607004329979995944178595888794647794410330829955599552127956040810077047735697072962610823828773916070862725802731565539165953043049936586416439109459306042934156605377640790764712353612711960582483501997886714433395075589987146867509547083552393942032526896563695896559932929693998919206922368947343363504306764760776856622156382922386628386894915091633643810347561898656644359343749346376217713024693810771570420259627886125057472086467337645021805111421218609172637777374781799062160280026352203433930460061163861576410672848741200666391652583336623217088730362915257606244883312688980297865425260180994809607358836557884493910173487579482808394461702331934728005013301783741192827491493498468341727511098067739211837076451748864698066906010591463105577632387389532283092386363350867762806151965113948544411695696895765036011821797629381407023810769965272028313368549384260369811198121156932028048695885609349221629053516826719003310834003122255452870484394416705623615121597013678554312067883580507325350331721484158940151457688240943828076706593238535030037886217435278349360037238774543255347579578345754860987996260400849586013681053655621307022509583430875864479266949543233966248682493764171784185620272765520920492094502720213963000523304757229845575404632227395020352719091765382001138669183037476208785695531641621207136003711279755547160374328910564789642832994818665860646447701541095446148948560601649837112187251229998365817311528582212095735416696166086299035537893241390910956101490060140775266779086198794036871561928238439730788414892103110991238502356636673077759467811137487543635577539620027215187561380760136097899231059800925826353089302134168674111861200347205810130400210559800903233464691730041524233419633495369010497255286102985131576761936063748798406686980650215783224753239389951598591135447619950503831140506010417160947482448942848729887240936291264919288232210074109647904865797842521915355855518021297177860490329182286284631619825773226880916877779206235303958567707735249721724912210096196552071807169608566515716315031096036946771450005594288750895032898062046650217037051961258749025283429505941075464180376687862798201664797523059341458510270072983424719716994298799191272928335160401500724635933358419535339962765307121370626115921876674105574659641212209004708974849241230418398700666932371513383840370001109188166665139700508800437691115725157508860583631755098913466446263824108543106321602091564753039850402624281886245320366795201054415656118859655791091167599435796892579178362547850013199432118937725552792765916244987513990786077279996214549854938086789031105454642448959175971318455739796646901963149941038888375467120071472006739679565359630215537868093746845461162452387479015366040710060621816286123957684809680264505414715163551876065367696147661378916189442184637278122186536717122622202708061938640724775442757217792969694024769784893230236973761574249541235204537051288630620807491196537137452005113442718580295807731056808323145847321913283183511959140291268505305609065055284722837342591518874963900950727690999510477725589491203504033537593442643797343289144140180457963981290922401924275901114392702422299551561450995985120827474200754526438809450773489237067388741556033377008126937359043491812197528300790704332931039167603795982148422096304053049277303592294215698302479531603875568773060779673677315520590716680996256379396969459953162532492697487562232175607918079323557102984078524355350297185937086428026289234033411164531323352080393503145998027279749291565285056053542341164493266516489559417141687267864378981638625844206534001213450092258474302647743294702614970400840031654816807826166453578355821525379869710836604808247383491416938713040514848221634980906007018112577062655394597284118048715763542971748370598280178044172937425309383837610745694319270646983024145921033069570880375311105641703309134528446408406757451974925508636812499743258235774847793680409104841528086519425465161371587416833077025954547130671103745059869113676847157459363505504980718667073776629245833413856940866117665075789198463740789332936562055639140677246203509581828266916565166517808985619159469001199546668604919987227656530056844266867065368479631135256020495323504946398838015783524597805845070139624942040350738674294609079495166921443686992842633836483845158608288252427878101448049424507146865423179245662467844628442017568496524305272746618766466561374801537052135117161319036136421125481065468109405125120858954061446139503663578401678504207467408146969602266495558480186909724982523185063341889324889642551302781887067816322955089728417432644940760788436487474662375291696301226505475734993597476441392186591688365074847571608157841443140043414341610635533158379584538410822703006405923685705389371501059268507681264209795429045054071734913880535797901733045993426221033722174837573534561351969363054900498271275523725074779939128777538141200787539306903817063275957406088227184055181132546249164559429451844101605113629885584072886958231188381420838514584419028355951086220794210208827396277471823282421884035662619003002661838115470081242316136322268886773223997634058530363899887208799516509669843902021012965011515235002639524346946075879025224914642637256020395782931017861111481292357048377738816355262338174085189337876467114576371119201242936802331438425288938213477884666039103980593485236659437076479156613088605005384678357274494080844614628919094020220756067009429669320592675956975390219034234447118521273058196341815711876705329219506535974553372135881229420207388908023201292851072031879079057924513885289642378115707209357904231614861893366790026552598712534242527129222996650399099992353305420918485042234077656498049909424570318602319806776529231886816911533381730111432657914697217984737708297714113377870783641639877204637065822410170469785306715874938414908077695415808782714006336575992720470281571953579761330637449879876425248421109188323182479266803445771034452117659744969175239303363967711255670415840121999572723535028195872611210462166692547217535033799645072786784728278013402908555150164946632786745206765697294389819765063146792610723108914878762684502141432202211731523766331383559315596828695173848558215371841923207282822027351718131972289133902413616246707885817036526910696984264745096841271984413759136356276885534663878956856908977401597870133442602220632175441894807470195999028403496734838154494409783686868947918647306394661902004814028666795404477106483141111958289688670270550073846856429880866182335975288511592497224109119643635880769896137211362312493350019890511362222298179826055529371847140382601601297743176777840138359593601252876672026465941045376458247836754429952223103999739541510818075189383310718616889653784264958309667105561564429376079236832127367692405900661582413133643003614762442100522188317329499612867102023915990208832487571583485145622139689617775124879885157438640752097284439472949102517370265487235264508329382005367899496578662137348162383152095979557086452877032495670394063857768807161380837129772175256525988290054633808637437936978733935543942903916603675892621940832471271710632949339516109862612801462382749818974230722705721197771752381070681733361154983309038453686398366652964838891243171922951241374499973865583049069289802962676734778126047162957015882820414730820813857029372069650358292903935711588198039950183600766985516516101832116635622769556730675542486870402208952414182085141598651239702915126878744569707469072350810594128694372601409428432421296813735517141583182403049841303196381389747022628039997420678911768346111841313075606320429426887669026657680798782607160224977519651394345530993812745798333823483288129347370520371568163820264883584061785512061230849372937409293090138605422324557456866444990562343148225519271829050666550603650073853956030094299287534017302789749804957636857632251181444776779485215932264534339428308746557987953156610210977077276117518685999960628265068960029233253005884228349558651843528253091453506348321516567603682586455537880202378548831720171114208569398357108611859333322213328253030620248587888437448389677697368555411438099541689240296184503274252065524980802168775685149931443098630576430956711749885821212840349401030975119750278144676610378619420118275567042732812177411637438103321184323370738629807799202782354590228164407419256134169754474626565317861168024946876555778025277027162363732386859837582380053915089405764445578561680314704934254175586994976229238536459437484059712726034977049409770742362635245414514044269412560595571740939098060108470419507719011339380247644461890157133083319587462169696588992903724868959872213434723538499692889036891283729405455151822447852167382782389870276066164561197947115574406857884280223489849338583715738191948998538557213233689796125368515545272020953355977215137136002535553121031336390813975955954700250727062034580092814510019175491321723251008439847460195039786688414860908843919612803476247325761500866864149720129937694220875249825152352271069809056775637872122044725902716561361740077367606823736842528999797295658759650683658470394018322222654786385753480373521986135768776634247228905844580949577715551548748293666591857195676678772994830131956661861413346176406866934424668854681007994923396819787674925804141051898558968511330424295879839028980837557209716722060847190543893677465056138850615628361819554154936703663056028646197444551299450484140993711884288532221998602269013938510399995669309349497949094052977813724030388862754098370679163468253471438797737613955543748641789447151501405042038363118055955876073244755346099853672789962750136718192845463480424401750773237563345733552069339553906765053592165400296276360845193837676495583811564444195639921192372924121668709765386278256768261159295269119289886860481434315386977704084748944988115703652666199702754228899947840236398760394013802534678478147628683138576315612043323420936668591987879531654293440263805528115952612010047391239873904870503230850975639768864604217562388929594161855137752064982739665334779054015522437421651302754850377541197052335390655998524233599317261314446593658494781026296226838666971406606081649088063736118551286183678351334990258485889111151329698689733205877991803006519249819063422744538340500134627722447679752214639671948946098175887422225103997242631510975376012696497443819175199596033563035894579648139851927637092707256760684845655685512944680713068590640218919990894661799365841715846616140439240270431227615229671875807362093195361127943587685574767169735858078671492194607527024757459785376102519778325552922742097920876691209955702551681072996402607755496620209816890735964577831692261544728695475745183313496188895527258471578431565530122485303245846081295416717510420529038510512052585986848823920429621876210746597845331137094086832849854497705671663715225026583325811518368545668979014846859443539395909625036070336037737121929702340230927477323386194062308897382958542704610995110481335293212280271254781682860582216286333393246197291163078449856397315369425644143377594653267949107722127037836131258504172858556098989954172611050105790132718788060340959162615910580186851679787395970903589121742808367137865486594794372186897926399109924823080106026314197421774220882143257360683022851111041872815127257440892483985815863469040900240848517402335682734618094247240471898747732120372457307440291242648521811831048174887896741280111812877841979832112012924615853424232197315373659647269413613244584909243382964416435961612255834006185624152397749325239870413268514731047854281956624499610229056573031190604837400771948478960510055092213932340344309018421785746863356124117282534372865613252136060475024037046502872103668696838978234131421319241144234149010483917432803905299724148386355615872472887650911434085842475582722900315122763947653140813944894944006432127404990895874216489670362246162381341057321843766361856215585770614916536896287897865134965372461854292406892693062173076010334375016673670120024667709778769040210156555747765986222614929299115738358828604693994726907915145551757692646629656749472797865768382363217187108610549536567922360523035400043448460074651655179431378442413003296524537864773298277523534372374031891334099990511207942305999624950705125158876255265569719897902095309040417501761353735915385385117300693212787479245392887605855433012821667266286126745821011465473497429907229160549327634557491221948015350490912639021933535936597762008704907291876186095557712788063643500328025813237606155512739847472462450892964374244085740973010997010577144088906459857326141280390152147353221037285925257443898217576319487848472519429656826051792048057206667480742851126528203928108989403375967696616104002895192702868695875290270896498533781947744700607122247569811037108614582835243546307741447535084078327121408146885342372493703606658574359614489381120503895390679817071457008732096707098562606846270316479035619459163563060547191615493957028187706109139114125730764446043447781003733748986538535126166292304735679948285173839141542600516156953982469919694741670523473267565348982988952530968071509056214525127034916626686337863066968304829266696963932583279273484584622299217869845929596841958972569904935538881568728084793175911136232407348751361237065555267467890980505976755043314079035743626547596988929718059074765117442118629724503807915245217379743075626380192923221418937793038066895538847657701057284331080061759667114852016264310906848509579497017196615273533579762053063301554962294993744071430277698038594387581372137488190977384593351430885186419776770921725420573724727939270224860944766387109036804260990122364128662981143729714463975887832875632169746156818141315301666472561349192889346605891703250068141740949429084112127734370535383299637451216453998106478840387914179317266592045308416922172408143719593221286449565504906160239746757278293372853944793338370035527985957415692937398276570617939491048589771525942391096183115968531309865975305732710616546420924446508887742041015470976488619950240788880299132393347634573450932860040292764222358468320898649434370677192383502321195496730866527470073374595647285828277432024086712454096898034580017549223346337719808218561400044310351115855865348118203510834060967575019210227917305541369162582128631926610543025184012784842230450073274516626018842863615542607742793685154788753435556349621502898047240864159129663653733215607251998918065485678199506327623842913141878327706406729369551385503626951798865838131367704669367879025038785471047372579498449475573411281194197209329319114377224159145857340638944488168603123438471986136741972404655487881981434388391722781464238642487168861772301834622541677768617173476792527596739904712451233678208995683147592935333762740054214443912521697161900648006503930461179293636429558279967594422271002594553958383834494892345637086317098082967924627811343976824631589966425680503927775956298053501827709858482265817270367643546177015585046853149897133464214988658527920755464449592543503883232132047035477360503589320088259020724324695438005204803462581250417821606611816544226945986111281056851332382343676818530684916602638518143697481721751918671534126476651806811609113745587838446399080353589869913485489424386814245812114092964567865391545700162864800748710256014418672069443664614123969675122080774907268959025971540695546814501643938235136628761449063068450511131850706086598909304081296080764175490922001683730895982259950773123434510131897780003697545636810975802785758758084350073557348413231581481086774191838992692182949848842585770201925266121167750161881112017014715582821428387893977670993197393842259977429535960269548503802438791202662885452196844079815168380409544973973259117486004022393196849238622656448394449475588353112435556303688417764271626811889585742392611711042601660064818400447658703968834307170953236716271870417352273497221142613510792026491112959762342072849133165954008429764069861673859665067106135162959872266454236933169419793313120122024170700825765964477887376481893447032568604925314476727553024061836694517655983686607000558207281825366897251923794660192715475242472045920936490613011054477429705135240688166130625249974720956171485353219689953780771360624237977582081801169333805670635339277358142122477530813447554064241203879496437206420026026555766136859010143182843320335138263533219779063634235577407997192769675581287094040096069142023243296011766773165087288825452211110493686210427564946264498423056772050057650015232241642278929367770022549228438710402985881810303491226326901064459059129691414784917494011755978055864542748885355720494661850509550368468825286306584817632699556630919937410031578708169594076550751715730579878802641034399010611782453444888815111466795549092740511030019066428390019295098507080894774011108098359667381024134774563734777610406107333803631901238900589475700508884347861653942362948228907882576370639346562519235161632515607671270771057945335734258121721629183947444816103464463635095457331488918230804215153492068894103534832797268570436373772586989218423798904180043523346202107305813436391875539877600403475381596004931942580601357548582191226669832430094097484159215160493429039705280949843957172305415743079465329519049322078499631895824704766761434110374479335651451874518092351668221636207531288625754599138146086431087646638336257866521983297970574695357845936920116341984252250090696659976811816466567991281766364181389105585055222616890996849719805565433569038648952404173643139715581252639771620488548329222904054658546738176559592966433247720937573540341184784518867470914798641177039662918053392079481418601233185906621807610442723708182023453546654944506714963738156891791649478662410705327259651565837404628470336055004952999631634782319387020617451832271858310293742267086069556296138436066458919162292510578160876947280278635615399139882494785260096608816355434931855438718126159639739087669132256771816338774115841709521008470100494454627277756446963984061555602439006817294346804554278303297620656921186642065701861427158254327203625799839953270851921354894496398403388187858030127145900682997271098822674747417271764700799067788619204579840071796588713321851290860930018879085772527268124028144055605793692886525142269850722807296031859388329439808716840501091304640722625154219691325175881281489568383330675612918580976860735865869583247018830884056554511195650239790052092004021253059425672896386759375320287673055485960470990132904259383391867694169040850180008939517063437287981316724462782281411223631245487070384427837946080798296161420102931442457619100959333976416343439448968344126493151581198416234928561164328910792079104888413863051769542486821564511399991310674425838229463498943815537091407866196945706045428059735285531257464677816775629340023569538917096257196250401053060623797825331175038222048205940438310434719712134783437574647099326339784725557813133303634458693557816230163413955400397777847495867242193337800778277792696709061871931487455884653175560036870899083234294552492824560305301601373410369354976215329492031160250123994225749153999392404909300172980236144308272624329984529622921224382034102075587879471697199665907031864326782472723106870683563286951446334219654420112852502757899237064459997642953316988421877319175007937243870835796140220608885048040209969948483737548004286312416236144594528117198463911166054227037871095356685886707902254252502315214989767502178125659708617978563704384299660930482533397908203954557334416657955063318041943719618018381480947697540551982446051119480733515394601183778339879103828368999337917281122433232548126264683763852505472811550595725056851992470324799637883277158140216140331314095417291377216442433182083018315903615010801322400675417943798664254292197009167537354818945505100614471042739957822897352090994702773443546199656317014471543414944200760594972486092336098444120295200135271057423980594316837887603100848421419380153210494596719470188496268679637824547096502075818072711196268580630749663918846512681166925736355327078508419651321371778061930742585419684176588035801930972863739659010879912117929925839099939409353340533443278963468802800705094957563482117128211871499024838727135241770268352644543102891303269324137041450620927022929748314326887303269056391047028622312427897055986164840998573605128794580061952331910823000003170998415481240711717996338395217984702179148543488200121369641002380225512466973807683862532088247026505564008616715376307921204324336601873705264827743435311795621744940852702563961101356515371194267202045630242492153156383934441370853317184955899553220194781896891180378313469748014717066635425483224547807662163125936720544168365483430855893638631254686377144188850933084075281117906017155948206403883672581169842290944054501887202494586194460342406388547512993909578954752995286873695628798550420802283413341062040077885909168664064629631991308323625641578471417996632244570788392742930777849602175143089677403810341496892991539388004614900569293402560385913883662781292255830345681860104593439083003710293719144368228789316633560601712719340472390737209637766276181630053894617628188033522841486879288933947479228729611131018385715740669530517275470601659673452441324090556004948510256713037536488752420481393771182093169606271733870746947320233143767330945967437709594357020823928835654767837179186387411603815135930495941288279192011827380453896035273371724793215822595523843939492654145980299557893502934687026894071431620075756781038805964474894931801889651958958884170699166661728263367919020416619678237322839423375312868255732976542445237751153424807114742447313531753876433655960384703920792672016120791862340029589107763361360086259912162011688245672222618714210615801707292802106642094420597946366337222037115998331782518711417426969985885708566570406547970835902454102448644430645007861765977941330722742044468178934749085329549605089424785497920285674766700942298268865568880625247540599632182292951207231631924841484272192119457189824605756821250579694143489060803816420128953062248011788547250720700183659142458656510695042354755095950327322968781433393084294432940347638164271193557661117416115530583415325469367641652680693517205565642861105164597299655185349749986951959582569721795077967227445746234870182977818927878544729800230600311822183827871783062082000525748740058496125984655044053590997257945751834155648033224832943986092121229625027452306978509428472844622915329939021730988866255247661434211834091600879935250391208152814404936185589617544347916643094412454533242109331609780316126945241409880640863718330149800260393861103015337592557445618433148869951192755367131922197521671583660822818183793720370643342924564860057199972314845603901464151111071039223768365536699455849442315431874692785255091823185332632032657472152894244483698916139092167821204956969157916097523059230488306951164550254306922814511151902330406862996503493804188715379634990510386367239101555203806422296646100220654393206741785155989155642344581898432208266676393440972151297281322619965031957638642856370750487237097451174520514939609922382255244316113185148734990161663817810546976695350424467646417866266028743807403446728674383170463205826780809312218856013470572934281011823560681754928182730992922112902702431665741345329470480829984265260347200825876250683202032520115760912845106787822103028670263414340592589938448600883567962641301535022576344245828495211289841977373655150079603804186501018290217312612772423557341079420113106577866181929583517338206628488759959157508518185260520835513389915557143757902325516823981176326385584494319862258479717267079591854819170427396475327210549542401878307752778228005589048597689884586318966920897173094317736428569853350921299658540299142595255813624148564814004987078448185607109860342237233567119749662595625359652111242859529114001419787203032759011561724790192381290522845931641591550478088811916297028463680010720368897788373904200263698565903843604895611750324727442972360918254687460667867199461978481375349781732898936075724148090707481541809341059033963630442641131639528241468100366685695573984079161312094680226638931834274330986492497709181858307545721154896512627072814078613610311382712178630822560245672176755669486295754981999868441868408658823578705597248565794654515634750398648035188592292364617103410869726031861040723709521202779200246076707095486709276060710501570384437829626525016182170861018640499057933119317425125409131360102736139480188794334687721871679005723783621398394569010126880021196997113038549354777194159877511663491316615574391801635197535515873287572910997431256641164508986462892437178517588551889618351038611290439391041455029964114863769450820274545701512391275588483167739444453644474792340953120053643732889424440927499861212581832064816900922796384735868243157576621253604429125604878873748265260775992561762020007942564810259588707810871273309794352498387365115037435459971985794505216312377262076053317155344734959928578822908531493178841906163653237506728984216585452415659918478917059274763321816462727538234556799215533864249609021866254498691921119129955080004487756209512240065507229768574442792300098816923747365071895619120247681860223184377121145429159303012308898009846944281212372319203239672055406532358217407083004882499605061650813371857985642587394744061711593679998401091767730375343208665808671620712468678241802732623213652593964919388587465623192036648991849171915789552638542427904990438302582215804771223891251478061928666813484747371282416355330751367148960233283122886887398251641750709088193456360815467247955890825999789764069350083494168389532915334719945465169901542900513641125454424001407683400171312188804299715247431473700564449855155785559395703315301070115548646186937212876204716713758192028410196718336076038226471274613208752821642379449225556722658436170926038829447213719207809424236521104586124337719283498479164827547427620610533100834491313023993851741512924070089134116424533481698372306251662771163611305785701983024113661760163544271535516873327024377622878531426881818338888496019780485310989528642871755155491989167450248743570858431518886877461259584545954480139015671690398183699609476547341143864566775666006658282729367992494727468522978236470639295401326924124250800905541339879003366371716404521471755823494089573822282987337124210527282269418153513734991489020220650504660318741856774282669679503871601142111232267992215231534009253541300891413661401601559885979635239199133775698287219765504240382755658403343608431612464999276376594412865389285392058257877429436369973850601022075983945363218404386356681640491630436536652693398384201009223731711467148217156116846267463932036828731964074342378980268328393678207551893161203169586221949115447387652622718373781554550548098464984851485537565221899120805001171211814360079201426750621508891758864596792190995505529801994329751639082957115042235080873308919885472069882017216124116869469045583772438729266034712377974465239518593465904878654952283503069282725259449722687890539043809224684903937921175426571978027179339279118008921818955817811691785466009406720879521319766276361867121176699258275569070677477362028493727160649264053174961383845328242413409838991428866668262035261075840993152501551031986472888865538200239439189512507801645287139312056161246866817925179786566344452419759800298996648631405009674107365205035802201944967020243754702329268721643412527184263749829096444535068737852429125821356811416640893539644577585895671608008963876319183515853676594767922490056108887196045250819074784750950874969497058944120266349087001494072395642254398651430588685076307426960665726294034624735595344666051396842149821570811182009788313274846780409346709622053229911019206962683964113780971450489805445079182686587741372550804075535642720268886381051906664661666234487684304691709127224405490245357812734942890748277382731739886682935746579876317740328039665143780850200038841921402744260046833593438641085641812545708300023156259512874198084542764072892179641087081920132990648942394858320680831677238821079524087506619828784984899695344703751851685432305190284853866904501297721446372311431358233919850493369480602673074484423785458219555641101178392716387445750649380864137807114810900212660303719413281033248755782545941143913619098939199819305180888986655751098440909617642005595256915946237520614641862212339335035701289054278063442945247106628101569369830852116281277641570090802331413774786456276324551245778122622912948739264169566272021098805178070529803488580469259939880894958887432839248051669449494277021059177335538338639644120962424126415296544903529723620372341812179124986472280429953780713443734980887372428523465495090127245025651377821407170478274188393416562217690179506052029947833953508064650991285846114749745762468245404906616260297344052015379603905201450279586253697900962223232300950786851832360860216147919305288870296592276925243227693907711270150920706824871891713952890011579203235394368927707696228625592458765496485097258348570863323440446241785105497727373777287745043318965362295334350934420175829062875443095331621561244015230156752805253318308570329909330025843587418104668530602132562514252327379586544142462092598832188455855131616648902515848318176522321957604257126550749498350793057452790025670712737107245717641144532292211662958573218966382525391048216382596776551056205242500416787443550006636758036858868130810353953545272378279068467549902358447968927195535783951701744357794170071001908138434182392097783582387736493257109581732801834830180052120376345985777947186170563226675117620164329789091524026892873983444758732717764911418678858981064794744709683614642590657397715502063307528461690396949651997573093513876754095445970972489640903625526083779948305625003397375127012679042144772710920807347733571341231731469230240438823406997477124541554373224817283768105861874081099222531017681054987243374982281283594760185258446471793670460428099462598455648153188029858466998840478325917426961623578276419931549396297237354129022628471870217656651152202081235182439220646388536782888332127440988241731298165837505817682858475365078035409279550799624032638347456522058277610403461984615096763337860027577750219934058685501995421110554725396657063258753593284120209515198771883918614619269825446384619673895872581428603435940768971504133305091077020979069540633014326257125878090680873160716324975026084784960980501899453683709512101370587704796190903121801158672201573596493761938384423956058924618769838346506012829736225917927326229708043757089030218320525796960496190925113177939638606451032309394736430080221835902319095659385538046064579904388326443433445969532656623502876191956997091656478940572188209957361885400422961460434019710168175103008617064745186698562192634171458972945062180892407031326093537861654629444281311132874924737386452574081577209339362511798413877404188746392923401898901018810972590625849281383055738486456176460565801578486407846902014181260263664274538527881541454321719963532652394365388458747085371467432396676223647389191653764791845729364409709680308697833820803855379194947403549430581023506630811704123688180709707484199069323824566985131560746677979600537443703025140387433439072688371895667917432866555586299604624712497046938813883758740027808074389449667987664926434532496831362823248429430453673039769802150378135970877566408479249993173439101306738745322324293776787068965411763994152749376881533582943550448627647221272712039438948637186347051169930921049612526701039650262711663848083772349348438044042970716250923845011620652270780206083770643608940863363041703724244259950283730594431968547640306606374334674548577281385414495486049267524278759699513180834132976200199109694371207614645022785833649976064866925908477745430955319577204614933288658869903734346960591745111346255988227971174574547230119350905365168530317326435659845493318962220378332523583104807598012452507623784666512524828741427203837477321237698906926504386196710117552652831068693372352729526385248159959760767115277579890643734415153015344769462681057909036549068449449919843285010536804004525869638010629635882708797808059123806966106598650739085769865375718366205076266582451089610641450550494809356175883268019289990321936992158378686161967527424164825733817551870033141409826066469903774602812723339807502358371277636548551415697047277157217597125603647411879015779609579995761625699334473620350737139688014180509177919802615657893821713226968862209170179801688951486988729272404240574219516930696099388886727361761000500626408960139727735211016567991037920638479636344369639977718398478951446489335255061384174902388871920549583280163803035258849564559250698638527941722055577254444487077517336034136700044393307243890486737605834157636649738449470135584600500552171079958230244138766091713991376558332776522793207680506419622107210782614769735653195930524317145048875354047097043425515194992048110767682914320049954838561974583051809234892553068827007298965153299639420847649032170611464300733589052747332755349004980667360590008998090134196660844857572205893510311704063164791664661082631463202470867388873516857465989860826752351982936934697239635908655993303209523227456778013846712583128676005392621847413671886997748609997934166383265260693717764695218122509018047604841286734370848693309990947922115825884949838019297065515716344145224510229224989386158377853213805410405398754617539028055384718400357919534486792096431347058763944438762041609955345298804313061812574340599165784857094517002396058203398540067038923296289811355451877863420007493511433752342844371272895383058908008699557010809205404356670648942610864944887775656942514070601299664819887586171101324959300343284350653806947175665278383149108253682870849546688594944923650959072862353316559833405146049309848496150668996051730800350520690480686737769271277215407433908553400757037028537121991229252143710376353428669265783565185624475695165430498189016446294854139240419393265502560904524707841377932536972914103155460339026013980269300455102822199771608755605369152859473153342151414102338979728899271683057055781344344770870063932092443071459434453180698629536513089976033356330178742565696629405226264379471303577657794571762361080243296163941740585805342454281561272315689224275010335117881333443081441416927025588599290707404241580368612661241667949723797752388527260632663261611645601888005407591419519712554355656835585469224968579614646783138128579129088923867748514134230857068023850909565292092891671029243848996408299090068707335322929455502386515962663179000301834325440458447354233826378426101567733514436772130962075954077769893052625041604691995289329868094510284167884473755355818976394405615527280392283665694015770400318450469414091410533574750586302091596390479294326874109749915005512478179911568848383332500433598358965456416089346160299534813596138723155933989457304249115825300816857788692704443630690950435439469470088310242139312244160599081459431680501619997827647780630594630898470353641261132591805589265116644417532974420065711481519116116446233451126159561636767684236898108503253602443971049091756991273576019241470328501633594948362452246970672405941403292612712670426978371644199610600835198538396657895678436295562841294684986882412513406058794425352767076110645844081969145086162538325603901932791484049727152560878817172923295153924478934024929575649513652266325512358246008478620053078117461428001826973316681113974697789275503893034584097819124245880649204090176383816781428484396136596270288146186404887927922724675111345280936067147287726887315882293945084961032481477444625579197105839205601496509341606209404076298666430147215497283717648904138302693521829343574179203250713625318567197386429495243495015748934429796877521998515980408263315186101942493471639430501400404524019566129948045527987381499824369115050528136202061266130655026272017157589665920665080431668681998237971890128098380700757526009165688071171687982040599950381051241566411822702526524856916946636169525826826397369257376107248218060949667090259903089375643897048634648745165859183471012517088949545232827803382276498902848315840220951708774931630126277340268352285868525394905132579843489126097033027890113430313491787034610530007037920441347325169135901888225407094651074010629777625530664727686003768050922321850678444877622820191007350835306155676185310197920932528113299030297674343815607742276101683371255251157725452542996527102363748413954126537983271530075353494010076406688709103080746394481107529347722597223476848981527370084900420228171168650617742439904361044253503702765938113231705407790797835084785871947725995572688878653724861007513542313025374121447425130260561453474546602937431181319866865148127775672218655328493444990910198670915877720549258937078893909223857724008114401950716432900398870203005126810167450743367682260276768683080961283214856149489793543469576033297560773645343614202189703268471980902544013389078267957717233464234735071214857309233895770036003392723099510536994598395572261106765924242938027236630396873730249328471149536320712326384588361340466227735618576237340670280769245410304277943487505075297426452708605410987975761246949438035556422692813724375072537169001877986628022795940806963969988662113769686210101113792039759125254168970843960928505659763543602098497961989604704854826454455726270156443352016380621757784284014004874670234194584108635506623896214502297806756931549274154740906400813469486839308299054370766143883507640954738701445453400095350026067739411360353526798189852277262383051262627588782513951101146118828041718532688871890135430037850863621813237092739889625517252954902509915030253747709244783836155106744116591229293121851664519429348933929356116456139317794612810204931194901187954098094749068453101051034961277842803234292098620608905074664014235231174452389412009783800336917506734695454548616301189465539580466595490517485998339715455910172784538397895623728313246535434741202254124382232974881139403939446482990983920712136350498711679837013843170014958975064769492700617027468882238049127834386005079530118704830788355883696822230522232830693147377875965721588428609284367978038575734773234958956943126676273731686175584755923081300912421646725812621216179181610439525987478062052561965246267177317621138676262756721272844597268824022874261957077607535919768439991073941372650228201756773314635848545487222468941009085718639219399831892996614120989480314687744390785693501973120273261424961660425562652792699034355171282703722907807417518149429917193355242914068391766089753811454612181299816670787512295674485461562132597787975015099644826412866543872922427932720115250414481759862535485380801608594784245462311937133849084203225645535142691915369645386890677358195413908970297882284687914093206938014113042077146458129523024330826814346663407512819514612851997642225516823424922823325140591003256457309828427362198507287973610368920936001158351610729286177938844583657290123825775003321009755522907088248693339420581137561213218340922356758720534197691393221449764513808393902817098734266279558260648117335803025601642462240434975103748118709496656164607919702086038494738812180106297616804206206179875311188068154627476170516125297196354620123480098999129026697109615885847364533688621231122062137562571867606047089802152638245427151900705137548240250551315311515442756140120616426462138408194807509204416218144460012287306251783431186933345640684072740306683020540729009674980747015937327980318300659083753211916861736447500157650519093550133419302840452959343981776580918198695142272883283414818688590170245303475675287596626805338646286041244966988349172058675833051866652974639173059864567252671619361124561379612469453397443765543446702803623901076922845765837937683044483847517012753544312672848790096951366362258181473527812364989798306222479213558680704999285628145409439877109409857249491631672631920626105587798141257297583553771745763694620893199935660547195683955744952974413648253711077306299434609170166137911275384540992552122373005620455463054809825615899223463644246736261318280585359824920992993751383251500180433030983944308512911104168891318582760159614593142560844881141616546216221768716056702055939645546036086278803836128259725936621321920707701608959520558040248036453095725501579562041983260769133712684912077982902548478860405180118307506069420801891981223049357926062588978600816080747440970190195696354604078095736245809485608799087795970910744951051184668419744621279706507737375193340714574219502964349358173898528907800571946542593217966598628033875084941174570707166734343168543395700073841126119903010889612390014042984139188538523794003411788066737758808517583199251386251580705600915920235755019988339846666162722912535489396974143884844855026125073777685276487321714872512491514325325755397686729863375040986356273064674599654736900275557099132123234147004408515646056597523790127333662586421958863554453871684287516051939727160661592211860549568893102411291552505568270886339900295176551939864509484165429541097934176239812740798753124926032725432321484851550513073470140497465017787221462467897413582424152445313513146308880985891336535736338855350893698431290899293443663596781060199475615160045637946228891093309873307771723871482701176335988832460458434184925735341970348263599067907268885463097519307900694449195312805244677099952841580200596541185274586303656878328768408740781392411027494029926537599698109335030496244960956083153055935481733643184046153344319550018672465214918761587528893775355600131906675696632842070652245033551620323401482918447432786731105273823127665274710961199347486805253651600461798682922289886162209184551831804420607480819542523937732272177654548276969916109990819965267501455621701388087049293697183135619409357791649997041649547577579407102231939637221789784099769235205583839870284116399225364957112624377943036515507664478628887282993360123290685901857406601920658570220381528242507827773234301635563881084316021535495061255414794849839605961255581917775895411685291142107869836110768415615482999577897514028315232703542997530558248088222737157951282459773590615459349527391697776389963478596311754472044270469939206100573950568956528498126661226069835375394543700793287821190636255880058314603730868066718581724778902680748552148925054842121184798942795995659561250011592103849097583414478231544762072649055695961752296443314095025313493626428157655082491883949936975552985046448888635483400438865316100440899346747703032312387636215021632191049016933862001553881955937642750985598893045488649244169929577902719784751967033622886318934635535249595295533203217454344321562530594786287281477615393296054630860964112084529690327335796344873535113628331764883005217444546441465998622231777146143494824646539113854064739567235538311263801067506835134903464545883389566891187289156926840713692597315429387942114601739132426573589499764827977656935039698526907477224581074947427387729158834990023788690370068385006766850948027899936115468393747283452094427160204924760086798236345630703065918783494544381100921284202112219023571946127147748142024936819782751315740257085174146690560596196618575143533634016113449073295820224428268580852407058972083696608506997444465567119380197188147001939655655091654594532063930405882254613389281475861052437694882720164120961615050493559390125797781314534088033304366447337439787172718512627065774208468147627830558578227609224467899584691618965746530903756501376211386337424574093455621321707937287771057915737094185177009287921446907686974471079613700489393603529727105284628696472472629139981279107705715036045435396967377853204190359561868536678885121856022314546534079175269636792988049179316674823035618190424283005291820150227219396648828527986188924542508059779149706258685821715951204484470550438693091274111113295749662630330574659261175110100096377805060690342621002637699701097590214545923475389854367582262953204688166432591276041935727088729980893080068880676450920789599760954094070279487827339450933711717656306686554293346312766314635695768184155205226799221748273524956626451948244429128999484848429713619070677266116257166669271404526198998378848542667490819679008053846890856052752262273660666060001380490197153496232151879542504481811377529144972575074667864004081035423673248803152695321859560525153057941235343243886721405312414726057226610401768586637215323038812414098799281385731172297457910461399228860273945760717692432723950474962510536261097472333528260336590348622823223308693744033133323568818797420386855906460724983440929388311618001219324105533852908780897471852534095172072167251701753622392122374418770703880022984637232921420322275709902502273811939233599823999766683357619517615711421245832883115860536937562267649406731036061247890370825721862021844446091447371839406585800978760221252560669805273303876110112595567157162074722874678966717412111369110050356017712144891888821253346113540451648727936481574072106968937714138305237682165532341284876712903217731626393379338448966681827184718963523994166775104688851126941075663119250252355310132195086505018758438727306098977763654679575711204221001940725773811889704324424811040532150946795935128617026188625299426770945101745734027187007232879900540305384725460704857452794708943081813815744910876336175801472418474889199207264881824559380275557177552108221972967672954279406335911368036010127092630452206304420486450839484312503852226000685209932778346612719505249613351122728821440421703037131152657389562416247237117927732626923458772489954514247349534298551097153682244864697140763372585152691589728642099480585219765423432874453103479923600436830483921019570176971541539331174324358334471054434500402730556224801593703726795381272737791709284605021751274619944131281307874150314641322058317296680733657596634580920301512634343358282183310632682384569332030922224118823073950693013503095382327410266629434168674583001519580486559105727505268809322747456695664331355726480650243443259289808872736460601189414296891499089141375653613579696055993083097445157465858579981560755317722612287365740166284874621275064273063261522453053155902536970294308778219456422158775702235118572244773147703778517877075759498206412503384696490926738446269822302053174141335249104702938297143355193953410597932568506813157861546676171480057033626972010558946884167183024488489153371059035883257286086055704036392186842898998548032095987863425953243009230949999276192874960147897598010045632153276719795670583951103206039460285150418167304222982793416801789127349403916405096967996177638243987365716695424956011234997256349681619788214481839446291545290454227418176293187235528891929420908116501224233776100329166967863447698628941493751023565700466331932383661637239270137101468985743595736627346643852600742387745658160651072811253982864828149143366620324609955950330543061865902786365887928339234429933356280621560802608176046268200973160514651896400585978282781524244916908794440085529104224175473551179171488222104414695618409337106257029376927265244705046697421130823318361413724876979977406612130473842407365378264146746778785078238261357171836301446386926591919604549827121829225982379573454526384002242363539125018025862296461420036140742271543765915556647267110399260891662811017214349931353270504973514810425690844331673477232559578219672288576752871705598725629544555124989140385113984114921908242211097543939934847886024806374770661520883790471486592945003305690802506911578751480081637653877552577187166722497725257077904506278252817060674726626453488511486339783351650702366298840001651655406740859904578225644792478154055058770859402481196368602038231458424265411985152543787489946705756986355475744946681403409357088589711229146781530589932609479073896961774435977691851612440941065532984398041126569745042125272630998646843197943738867924140230671290455236879340786941069898128469263724584065966127807855142222300747904264017645101653365723983335251188320458861880294424935776198899869773177117237983377328954116068700568772993051619090560674689603943882541224172852537714186149369736192601032054387839987510990972602833557651007001028861672803801816467701315920089705884060968466277976118584964821962193747330661914110583119707302247727813216727555767309810205572071360241247391731216069525954649795725752514595820782861111110117832053529039826491454622212308854684523899190960371228113643611259807334470469663917407112013114177026776930150427826783717432608057273383266506787391323794115043229755074924262011407142532586087712830094240775996145107922582785052285143476964201896564768343736396514700463857051972773687261310166452616632500676109002712439236630280185685047359253302188855665404471535535068313019608423428091668752619026840185830928108963507470116141144306816357762100078103352969195878405397231610501312794685943189350922669470336460754069224328636624790246345995466673266943901770939077988852878503630687045005433364062267844004152447764359284814118935939920815053044350079102782965579872427888645039806499264427864378445618973279720815889414884534384728608032344244554614527484605487278411487249246471431942148400661289515995559048821980517043122481049514775473670774612288335578232119486730031708725357436915207678629201803777978705362365494188019002705945702622711439792043182472476312946201641252693697213854187650300668411306282377043017860546838449939305498530567406031963818783503015496129851958367405253311627010677801586906511201747629869195895341777291303050775553028238351698000746658999691846428942833253569475878244978064179584184335600424524928523163039388398663931376627202527532001024505561038795877654735199217669029850382432427722869003173487029173863552761064409165802231396478705710972577356777819515263891038371223653883816528237361440834802375215780117257500385228215973253387558603810694493534964257726720799134566905163514057764758021386733134987292992241739769995307090366434120501753534617336248694856762840382421615967599130797376987865503011784143449787393893974005931689394961624941094035727649947662405188542636796925961883971207835186402653694636462083860838309626771189191466084772898791192130132711667694022621767379850583385439914780912684645596649550732094779740558733279620498760493947525706833359137047051153911444539219075534121387900228279438272504964859675788718224140721429750044636262741932302894776325262928465377928358919426323065826283695036256666178113560437525981291340575132694254191931127200446267081619370481104961351677758207748198504821697166809434185093195335771971114588234000325428365401860361522700337046775895075663995478876547452244220612864735123371057691425876938329904240665975636939721206894130708786014188751206290621073956631479466030098198396822299637566527374386988656596268679008957209712847653834572043506298994355139494459831121883125142438032265398603300396661717360081323416673695617913091484568483181318303402697615008329767061491179062457048137188946673172088370981931910948047059908830092633689896245476463676870695488696076479189722074821794678671370243800396531633848606173523341354005770622170924282717719971652182018202076731325273791159416348967705134754215708885578076804837513680401061861521556386449236250910878676037340632607328707460854543725216981420278663212092341969722244222524832984356222044280073383295409628404383862188405249688954374303432104414001830277529459441419049300614321619889280462933076593927881419898253059954054802151081112790264932770833846396174987131576749286947575092689586262176062805562119821444887514673187515671422479345212740485084251624367777655538539592169637984977748673571756065919250256082882099677445093119389589438562808432713458483594107494879771359700957594827973468778281943168765341053916663135452158401496136031908695833147808634650879039986697386559214073822218680456128478902676292823240720928951372354625918868483441641456368685086207275774219391989704811881208189784903572883698359115862165922314820059930299913532741789346948307101041101494806640943794987860335987994948243880361464705055248636208653587412283275236133516692004658693020118826815641240219223418623020621514907408728273798511272422265931858864606759732976246581155085965520820075364592855956609275028415618290881251793685339356062195126470081107034317112524340014410009243144793365204188516688972017719963699695769937573902877783962598191953422517026943841145390871198963622434220922763179140384337468512599778425566169375652733675466089109480465107540690950118045368856618898430026422619118446767722809535676888401211608541957847517715983143969163756762176314941391140349226061971479365451327338193675759215842121194053496408438581414130609652936328004191877509125314945772808510628808268966120139008456295805781894984163733972491010794672561501849901482127793211180462694646053804955682459570125990315082873257541927482712676544527168930389907679903646789945068235450992522663987985468639571933092835531003739796586412324419772482330247517585775354438981620665452669025492181879412893624472231574043800734376278320242398184077438194977890655753940950290102088753453250733631062718926874562243084554822396509255997899820788093915787329267352784512344586268006712169224947878660962077143315140776607261555218975443671823743310413912802712321233970418238830016298033843325137139720023689979012718339211706912574544980614066812332926356645773794496081485815193730406953352059569983594674259965876676928110889301371851566917568175604510341914563738425141376274141334270499752239555385180258563546817161298116617656914765662321194776481966943428000720169148637410276805629623357951424463787065915305218573265869302498129931950164633313596767202812370116869383237772013265657160574437670254720007146868824798084776464864610792801786190333044285656747526435023081622199923622234861606648658337495815305706995509171241363287235530143681244213978736933722731361920832013882968981737720268706585638511364299333835148291073852171019974503645248284426477126589644135878765999268306413063065075088099660046170161798102999182575399495422889712172970485515809270780958643343624872493163333965347003302797804856668948356040732724015142795164851990260156698127860016220488786148092763997216643745826815368111414136418132677397807078163433520753899641068449452903575641725985617481623194684749586436066368711742054441035873043875145638058087604724912508344590903001483987613875212847451840327689873541946161323302070202305240953938621366896674327850252665986979671435002169816405833824048429979304648020302509580330866862197128773482484860750500163326514713026024182732348104414099457684591161377690202760805020364557122869589077661945937802456556246041601889832677667510920772534599802546032609723980006605907952055800826965528914097009458972386842995560599364755621789027709943325349791435760429751523283352811496069347812881569348356741319641838534532945709030032617427651823515064936529305271148398881580445974264377847226105046948178270159006363003934311778304538102077574503874775620230504950465666633291925115629349696890642847312577250087858962101963730130348086995677474620267303031189025257689176458259054362349106357960315651045549925518482770454573630104960705512735705327347812399934073947663040827423998778285056645408247190227060987421265012458024451416079293422230791951305136350361199386857952616782962616608076489215330092284301110168392955787619315558287953429808587069413124353491484607613970943371810621280845438630880813430166836307805239384729172757923050870100411876170873358706690352497952520636644166711782132267796739544954302036622455986609517862273621022788950701095479574376115792015018950657856093919911360350295891304943605927575470031798829781369649007687070045274472192189300353399370223691016513334553158784840595702177054897380929168720799944390413849709405977587021052964649278911258950156295095523645824166669779343097930247697753936823754056798474864283449174378198271716594942543717402793307455529419960638560047801185589484819748601583699546807283552143571511017683856116264116504202280216327002299443775508840707160557499389812687364393624712263221383551293642425529802725162018815734770679060910469071524155234009803679908317931212878142014394384912167100938641323303585057701400258795969624376974528615149240267603345071162843047750713733874758274012874228628552003691169795077100091063823240946218201336079811630492916345813054480625983305529652336403505016995521472188455895543471653805613019954236465307467779814372296162822556166037346115420251851204088700577322531637006211311908918496469993007188973017802458747023180098577364922097735022510985918349004760277345572919817063528290430780368099869465715490406191166008390002152190796706401721033238096865096175166241978769312146480944377420521114175477067315652966225432426307052308990515889419218279008461015573739880468497509298934359314453309792859481806979513868218257278228716122321578591805974373532608712546222565205856302679516082628906669878911731486959738043501483818047310943732366903183678716140684925491638162236702301983180053944183889914096591143007792216125631341807420359102606940490579168166708047713039732521061063479602965108951422403044628595640242428075020314914315911162159347091246115560389708606348965006153618965305363143289872613246016237255623306367602430162775850761436249045136321721011489817688894018993201001397183031649962802293364758674520686322975861408481356371531064304553161504662403328264063481162394557915568396920980559160208838437988663431721963912312587354689924820241471829745190845516674792245746331061524546148722591027699481064247238031981843395842329477199221462612066925487194954082015417027172501568667086385140964006854427162809240170974915953093121279522114714290766276458995547961404707406035613126515095384725773685447128188183319470212645709227576758054256085360510944475976239985698523820330614970547320961124323231300424498212158159907582105246923194247838984068294279902741700371028779504877885962535924931805564674894042705589642737820791300718699307305344303144098523477833070208328746404811989196808328972331086535577710827738722973378627216152256753298575039515283391514265420010308214820258491004779800013143584512140964860507263402395601437377915406535778177967062583389401199155700481069185478608180054886592814443193392611262147853254269104631663506524203012547216305891935883250934248654109471307456407153818679413479859745287216408745577384906112840596178056399585598729191456912526817644771092625149956068419621695525794928028951433687806661506014213671970786780377704349366987204420632508611946804665749074273916336010004931120873688433992424693059066521387557676656318910614962194172319388265992303472422459867512803506538845620579018697932473006421573190006778384112128585802477473163381483380392966053465828012963690480353090530637209257814899384339195436376984777859101845286385382652678457181622583245057090950619129532888345762746613285850756345175282982567334661310270692652047566237139270186673141940418021461257120729432704047585407091966699605949101617171310938334857552964556145136013072410532659729094556606051752592316887799721459903609297289985686815303999276787257110456454219950643591551931749662938293221631403073599486432944244570008382442062704293506736299871830341601164231891132403956334667811182768110533791742525906548283803577376176162960318847960705153147933309158289016146459184121711575790445476030575091777333449232895609269520795488270684277780942720217877550117841978473368916497264842091156486410756529754815737057694671520472370543983468534966140040675039654683868407285435592008562517008180350344081733202975456969056877721024448968899978828829986394161849231924622494566209126060910087703481471175540182329577743581971840791669169669062828050755644389304573407463487127621003324649517211362033020390808693756392647069470940374725243290730578381474947269247695905968238260370370861345892583710626394965003121319918639017783672050133228481006831368724392167716520517789260354617698542771174877631468387869549400999265496582462099219335628830099889017895831843558988581109288426711331405331649010070271674640841856944614953470481665635830337957795121871678766679000154386295978419348428781458988607708492750960358286979609964769306384163423346185050423756672842840640638454889464236528970136683212083643681839471039422012226076973528017244189588118863873807735325648394168487660675999730254964480240145467060957061892608831149878527538299598520447355096438359632649913868594854611174065741750591696506599218760198045227559849566668784829740011736057871750870851165204567913830363353483791841380559756478977918611104783021132032815471178000676289747154902744845619226275369833346588345561854828272578053755527419451233765877748571475295598125047796834989144853662231736849267255151458190400775553669905738018028989790095832982141247609712581130870017486093110346434970717193487702789405798621480056920993727779357036364066208673644816228596674567846196265315524832348781375500681869451788955049602779556500731734122266542600789675258777464826252378452787188611944331846972014199567479444753777908048204308270661720007122010582007750823490674773100767022384094780585003365347827777671447442767320027167148181949283477318083608026340598825088536520096216736143829973001798818473138553832062265799025075740311424452531463418528917160184859846234569880090113643173870929071804912279286057501334912335918513487585114499617049807540781429322212557590731444785530661590247555871395526447213152545891734077733535482262247014556731590186575029559324591794030720901570195218810717673378506046359688756314579326812384914199812481231614264587404709011162538287859651618640838495711055056976349444004166138911356035038824534319862430263491198190728884975928181372969934172505624217677049783165575648366131452162646426490901456855996219521267322538329496515070161188362933884111040766964892728067041220382711715521364587502358794041779643007176357018278765050985090320824336343654979186760159058658980146483876431671027621515157443209580531093800814528882951878562267350312514046229974041271655125926934796961930277743424408260134470906076259498906420817948453298243537696918137632990681750989121579116373386294547721718112661915269736023526594639865634045530187896111840829422916440249437430457900054224994940883698931152945657704181327716447565816755350532003620189016901664672420871213492396902375181437209594716053547067323905273353701086746574021357893531247202536822052601794779528925594411057564429744274917748802391141810662193123210672925426355057975243591435610374536511814425499525216907746634061335158893395261535492760473243204513552626273151213533496815411403437569017691366607770164550594012305193735177079741015200497847841364717417779675034815519917927766081796150909927383211954949034447693016053916451101464782233213924799941869859057650137783590666549798601969880643671108986549136137339546663013259778068187800309775760753275571297575803049744201125903562786156021139603567879990887068616553635358272376996032711747212413960590563798736122886606349245048976591867687312831814066730137400170587701299249485072308032493965069909341207009867687954239742665268238217230239946658472359405236625490121368323666035959802473196465182973506276107136408754550820641781631759412074897456413656016894654991529699833475610945513847950329643013097658702674326786105474717518612501782191380872680270421156231676913091173637735275209534496731111295015326668521816235711675129992831408989679612626170426986644533744738464547789664972503020686598612594450554114000501819926840800685850152397361460711967233916331218843887333552211940224515909550399715319660362824784610320566551448000304078122162999968203839723545918834442032724751341007740527974540010761086668941019710054417882283894695942667921311224418208536016474566205039648208510188866569570128856034276476524173335378896961590603066757744807902746148107977105775422554557575965113609705122418317229204072818450382479411093983174367589510852358409036504909008314378903697519301811291448276712129095134201590287140166824346514498751241280528369911848633124702650850139671373012443289880160381722296428939170323618658357401215389700029540192136971253672109424453564524201902001529062216908061514462478622891668061637924779378690807421130034445675166147296947167977148520151576392107221170334331065155761016057910917981555339385542135728454952235747364812892524805163156649655237405266077093569566458222024751173404549929736165125651755980703655666788661419071538303884396634505263578158224030510219543328380510397269499942365575030837904980404155618445754900122594309667651178861991764680744546780257470004291595604384385934082936306018060198147031049797857274038885604896233626810411808325699762419866084234650205442401373797245284215661294829446749342997307029615422963396031782735163313128638723338755504507751353795331789917659268921569880978534389418031744497217345594205865225352093775714773971382720496821488214125020821453462905094922986444771534987089444057289536423838808524391346941703254671130593293804420026237275790341627640121095803578809338610808855049355694967278858692497300379107912173448333305545192154665132629456125338368016345965544429385509486067899315958522543655979771754659957510829596694088435182083752262227041263522271918888190280949208923369453270644358131523735107555094910225327317777678830586165259427526377132767794109017377542487238128052459085452353134694256292912542138316043753693454560035289800754810200796776650261733323857125724802475521643110277744883062491745295181518111785605668792715095256980689635737758972251371528068279908462664864435691847205123690354264183542847976809454371665380007535125973280987711653139391213663142749489683015252233359178485562709515386805334300506374423776053221954771947504435817586825796755960896290290591516528965288408154623171658920735821635624339481807651728117414266877092193311691040986240625932079347719652382176015199864558147287458656664372868974748322467039824730212833238814657890896633197564196777335210591643176867616818770540454602867431360439430167837586047316920772952106822588360651676110482409761443992006505421195117433851815977054976784223651840508150002324151028818996337058056623527689156205572510377362722736301934978243580440281721981418285898524248410985044751365330225239267316918431345276518288438473934261419292794671397488982656346435268598960314800422375574143183024530644577646742755691951366783716968589087598973301044069485443034048539603750029697469284847853264555602271158200315203927945212926696723678927237368572701663926776632690989355563278642164201936067947874538213842272337011252467213595383065950399709582587634517792691797226244261977875749314940541484386183497535679631532223143608876851540208110001841268671474556715633267959198962329273770778153744651752190785489715661449018828723682928615113462155625844667557162634284259940952703199186602827836940141842406939180498740463434970370284442174398381102514179057650347329711716545052701347429224632525973176592376087297112766180860217121975633263012275422411892289239421908845423918233683339098068992824848628721412539586402089910692422754152598544018659834063905880933056522801381606539639423424991598891083000472842051722290113895201623533392918131992302561640982703823756385706487699221870930045206610877678653513341065263941020507377814293100588450281046135748582600475073097563111870025209338982959877297293838367678746757273718591279041420456809025541115770324396203528080691559093289458385982168684421553636800207194916322682173225883524801330594594492543511547958552580261488822718451610978096702852311223828117272300159681336654565496604733684457285456968292052348017394448467604650026461940505142957455889113233571633980828629442769577759090793396134004837094939314462876706105909321876060257698230829725152817384768878635615527955620696923710097517564210426001692276285554384322761591755198258329461122379169452595879362978139680675518945298050189239499728944116292420070590508454639976011619496030899304763142666560456109353557811962504147244752090117563067082078912250270311551860413881167414625648506134508511198426352921255436650144112802899757863207708158483022451010655919513035893338868420385691803160664695142518049276159375443562684755595271486882022091247089557586708297108220743945454550427580082957421000081944566798014975507298838079513607300639851342919093377458414864972304502947971809038407069940567391979881782472750938355038311924043723217264338629349192171790427731218965602593152187051647623407739652782240953800478788255193324285340950059853761593112501574101958650013293428748480725604977772168059609846325889175792213877450010408815429433827291380522087495323543847452344272463906934858004306536282883050318134559989372583751042792034664952075409517887624696557562946227289057456822922710741439102729795651503682990287436757124334274629227498330907939145535630839193289246931467902348881032927765869544162412388176347127387578054802517406707746402944688695991478344884530031517724186516872655808068057471029706083289007116052632040878158099263040668947723700024129108814461111077696074794404040676236654950594212557732913754271951609961460403821922814455974610623394529064911186925796007634825412735057570870118224754619831808871512391106270913211183649170748138604409531490009050915368820055748628900291466510165221646843305275905047919715710695839150652818941166478669933505163633621365398313344328423411809335276227755896053452140334680891181324079592251320069985343719651317168114736579132943842591627620193855804927427668013381612810613078291539226527394004509406775122920537181736606234972516410347519187692624153511831681809424049654461021783248993841906895518915760255774659417772642346148956262299809598392440982714434996943957466443263416993968747002381028229154068421875472241249170670460369254651108658175616302944316417946984840266723342249159397632585757500110077649543254531362298044854305608773579865440717600056216060602778261802569999373224893056645167972726644990886925229569351126513435186802590536988465412045956689613586083728774250395844132707047300111893494329030591660414465554441608457619798440910274043847760525355084628037869654777141509052979531727121799564242139430747679310322912035216516186022635969630693933004935092249715801463073151561348482489525907471147963877230342228373032048022339059269670816435201901816628390646843092042441223919127992052079965761550556286678506052320489100587709447541748853598302616968574312675626824535331543403910943020616767220330896299507791626791051051439388265408721925850639114180405191119217633945477169407891580851444629794353048802174009869465380460974457873618373501846295192141286878235963434980112391567481692904286515295632848622251599443554868799482122346423693899192882005022528892430349819511444992092944478404945425737976543457719780489795708441884924030907995253014827772414393397248474988037066017095698162069618600623666245705097771092975657129509181539668177716465823200937210224574384838863944339201320063260255248560058981949021596960680537717073148352505649679929806091909913536014987616666672418554442673301566359281393447603854646751044305915088137432718947841837380947373444137768603975209331864914465066671820857988212718960665499359838934795631139187703883839899619542976676632024587225500303070499325194952390234620373976281459280984301816408400364376396839169388442253565316821615241056531129541022874715607190975509252497819942721777390835891457322936342590563222659455996700109494069359334825238338969455250524867595175953842635306786268200107968520825525635697328863885409118308580504827495029402349993752416338256571315316860314898170959580822091300650695953422969022958126809316193432699043128037702512479575184060598899523998131891079841760855650983096626721091690797066672852298830658944104285246120610528709228449896105000468055666806125372015013508858652254643652989150454891128049817049830586041109143812342785409355210137776027172678016782262556126344772943951947147502450266938218483843158608436741055910251668746524122200805732541040099583347017688446663032341841899080663372053371131483725997430350731097600342017304978462397058354888213961991775981114750251862671011086080046010401948738192810663194675201824446478941868596156213636572525817950571685766568339375736188845051932871786088010632807399919142981317340731090275626492284581987654911474323119457437029538005965509705429872320119283318643230879814209534559975840840523030858816285533864451574587714441238173921442532637516860411876188783404754192643818940413506799032266151928093824251278425053715882018978015537587012948852197076738907978065139468398612674067310035570965993749135577438567351882487287009564837729398393698870190155388677137417343001596473579904235124897648395677366738030980504151525929790713593114564363785210133446968643447497421178014669820237820808215912624917782572886654831276374394003463335753614185890831155640577240518241026088298011198147011586880029742917992512815647655538248458074853174132679124276348866022207960639781520178394690824741778722994265232673609806532885037245430701489993754101260022549070498928998698349856027814608473036850590894601997974878877139711682055795425094023192942713693814866833464909795597117016848423994810369536222912892874791764820142357289745966764765200969301054133392408962355138811886323762030861497877107996634207514346850662241407960636260027195990738146846352205499643934231158311246496594409172971584099396348557138152558974644780688619705130090646487465747307405737535121840392865820286331998103895652308399798051361920527297978760373428907129307976616082164763025507198979196672625545427971960880888187989861623922289626155456742202761797135346246708450033067971726725851592153335105126073536898583769236114094960658497445295386580463162255822260519932969431332403302392351485371082618186141360567672582660765706318355568942916331404991163930320333986480509970005212155513339687634235095924477266429490035129694250867162026715786342143312023746017022119402206417912045963018628796459355474751023505060871138448067777549593421238741203588419121672426891822480802923956750964756660395911668990639586842513277579219811197734600578957637361074592052670468994772024922074849349200370816945858569524795480375930595402086633909614668574798182863535689797751286691544843307987246211676597146683688662357558054552452350336430135225433811272192032125821375987962591520801770665072666693104662639977986982627751372712913079071838726977751522773784030043852814001312714381387430050630482546337008663844098834794015763762004856495734345438441611891539039291901351477273868977720280128658374358703272963061076728393238701222440404526853903917560093096137833171404449591732222519624850171088195606759261272030633942634104238124883362425096756581879360684807734493430295768717645793872150483497450333279515507741896062462895414858810789327243634178541253759410337951505295477667186123715204836277978939263909702740255941058753993630193416116837642596256872781336330895976330188780639293069719838307739426653282207101574099942197789918607452561065698805540509907744248336139117399938091998554267668493219152058371048536805675739112893730128892241496233063740463926195669879735403409113440344965201196412134309060625240678642513646060031406994980536581983631478885627004065550379559474865649788559287054988425782427779942169673513540134224935147078582538007706256379335865506276015833549892445204818819658538368225808810058394565383607271772169056915493401323312639709448504922491785619355788586293871950029920036515575747156307647191135788286627049440751132160641053143948219139542658002380520217628035068834510305970461023596522267166240191730595070054634523467407998938187852192510228064365036558937222130748077257193336360805082817735774088821336027013963403597089717542407241387808256073535316495528772203867361991054213973271731469223551558212199513112689179477173974527088077578235589415617679791400859155772949821083051942662097235002594196910438411370835347165631274619662056029620166109734047197957062858805655102281759519043891043774050321919149690953568997277955606300362211950844335151487662033690671531541042008790893460496553494932830652364102255825643025268334002109704714027000552931871353662731319371643383746319876203951679465450386847564588704276878275583937033607258202667990083363385176388866696976045473066710253717172206594337476553804647727313902528362401049745335125284653954454822512350165314707243026369904093905276421849862632458664971835304144394682576004111100290050250115533398996913669394492752543350999275906326371896763657875500308161693983887089833285654003155003578595431136727245944375604165824878778765488687882557029023778858834154543487081596124064400877146324329615399865995456451394660994299954828144923534116046851385367232484139897433720530109833578693583588787561310119080789257170602938224159526937745323205358645742413187513556089645351985065564929697490978177921393709150214872944592669881796058860856419640695431553393195732634135635915144798886159256313933878220936174596492951937009693305912748598881856641374217587082269586291873935551095322978833060661784280964081653678638510487599176724955868328119434301335286451866139026073061204176209551226647641745742330954443318225690302916277196193211436825690745799977018971931048738767054767628211510383719183253997965363036606794590838245549102914305876301689224120557241609349443702489499104254982933320159120723062787592228856394835346751413806077665202145423082666747869920780358452108940163079586396628229900298658198172906840202361597500650104337518381766013167450456008506004514499922096375020712630133439261650622121586322802038586368480859149066513090082976661334950993906039808535989301325646415567559156878410040172619887519680740838987126252879534418716697390117890989798160560464066691639958186838232277735265843891465173048083700685758200822219738377189984308443136997394576892200368941545158274551902910008785700932113586673644553372468271474809756124875144059303631931638650397452962770118308034672594679103051898559863149381835015670963917366005081228849784482783787397199208789049821490927340615214131504203251292827133100704497720660184938393912728675746301935770623945355406561417965239417911683545602211041330566504948246109606998736664642927330613117185395135890551762252711411543454209690480859654441170915662026782004420725658986178149032264950019296448129537610897557123330253434902115735309428171333986199330386841610462568903968643017829811670518441227734665447231887350200399114625312402944560022071634938644881880169565762979679658991165116062331639434192567512233684615051642946416628433717374616105116523839490380061687066135714670541745236699250877656591176842858262680505042079245110713013315865872949755800125034932964212030559091106840599533231350106884730396284342773743837020518629567725211625009850206734762537236002336639850622606880605290636656577810214853460589058570629889262855573009315424027854049495067435370852553107571224560633524053559593699815806680260189620524574242686295745267651123722457089024947791792666571764780449577643883108770177900857390635410722313092325284301965578000816792966103763878032536516442997745676693833199770865707176434133451261088587470512981056542674753482833072082494396367088005901536773119536265781782049788212386175570543043517140998115977424166485742775600198735673511179139614566795266921223303607884539318182232440290232191302524901458031091380630653642215498281760490305211708609829598378839113578676322544863264546153714969893920470515046534710037143081269689687645609458430228306911601753730850002429114272249661346614446384785888356566921704718531243639783549654237173547056060464399811766796373959521829545694239464944550427833544394794995083787243032044766686774661974350974824355299006768292272656118114464259287293572761027778288113080104035019860237332156064948964854383198566069082397026183984386393403154621379803574795732752320542988345874478795823321919096445331105378753867819052958322010994041784326448306578542958108382925709258272635926297942066138526588859477243680806627224129193287457115822733943974495320264549526081587170832532995175992734556241388496520468897424514356986700663710581558365184475030783659617128549349142127346468401088317424897168861308451203148936983452993044344025250078673180157316923245300333386610610245450464785134355580389724706312930951487261421510147214174986104805649485623217285507340723005587953694886546160530602841684153128050372740513876305960646967176900584901293390528639791583889189032971064093220946075875609786792754697417024588830786968136813748382241718129207913234961720470811566331600023696963220362580392577367458203576346341171844984236514878361646084974156638346410776668697827116654080010867154343127570451420665989582345048379620936721593922707004576122982959400354092478146184008527728221848986211303495376883050153878155360266615817071869698435003603038801882607038502834413225364111275166819273133772561284521641499265668098483527411969798884325818339302967487042646101591910989234568870940739467406111132211746160461251808162798234223803085379638210699953449658275152971511754257757030474590389032546038889128837794838974213266713871922429879689529645087836495947550782343499286949014278394943068881422851891272432626189889512614279806940084526957471607268907675002691269139329359503426369790117822910051565729476431822616927949022795198042512918330145857023286641344140413150489492881645185202213156386796756353864195848349397918484664027153466021536364822403337929326514514070669656449768950069269660865866894335572029582365417090503928248870509626770510025278085767927618290609247087796884919021147174386344702191515194133547076309605003486134997650681803080468298039901844914309781114924190146241145231924563595178466983206866717437414478339710359815108080735708344216670632582451434848116788640953378815484925814971502319102323166764013685016363919942941647726880675862455649334930700098272863183478052187839297475320559847142505513633320007622289926155950977250290583438237105817497673068692966040723633284947501764064296422248375812490954953980960410744503967145636146994088947948869761438212129226083588322902192713759576774291379096503799084915407179778012735210904543020195348190989780190996142786677286371122202553164858211734463292818161792529346891459701180146973746986337461052855789498130759021585205042244600036353024841450736431256513396907003992783815464324339350549748646646735850885541902700930272144445639697710453693023250045971576587604416843707231741171904874527172521285699256155244404380918444746165260235502048228632943202134147880951201513125355105271137962527276762588738909583113181054926524469840642522556165148779398720511534864748951789487819990923999811287383029449738804994583863816885142689809317599436184670399852993677182964708138138700728044115576057810983550477698412121661911973501059698935999861937155845927381512912793472566541146036297999172371028423115488070960149574130442367050657543759108150075425638142479810115078761781537780742515091974764133047439382905750830932053955184429256369848529745396861536307450356308268275664482668122093042532593689202876427847582864766305093443207883318215401760544118419962748467746180810872173167639227217521915836998308783107584234438404366579476685019253904773800848046932457071389986855981851334511063556101994133312670029504615575847372393766152805053501606610608671615853052953283772059532793337865181293374486897085637603535217901877499811852994902928868073490762593314591321684631216778190637480722091215202419291438282742155283314547513493417877366101697083963443088577735729325355269819561825870331400118603942227919038404017089746881733638877579083479828010663894480803698031688889231617965480318269036484139541108056227991660633771658728015699572511498735644973871806331395385640669469135047069570504318801045335140290066240103408281779776681392115905364749156029251819354896452115193795887712276801306763222934942165240107730747115762170992082940383437782199866020709667918876285770006077897385961034400851745701436853444550942473402245199237254333558103292116437348921480925309651619165415211339238059794335987271803211631573361084128434165661037103724687469251056931771198458312499310678142242058878368779223626126409578711227773813035459672549296514701936185208866198661943168671235295653927436772163637342612949067731414308256681452031292645395650616182457909918677371426232755431554019375383422011440348996943039411563177281068354734353460969390471252201202941479139548635897807841896465290087358657446336586273286374183400636587367677635919532440356935287283764258988640098163345930924622828740490471990127754156005770582106323450787017141374458200656023719410368951817468968903095509475996284683488409082528623987370880952799518786209532556569316518616085875101776331671321487954126290091301411838753421190059192159583670116818007406408702193764751663803810025366108491848671169227128030167554625597407997251947687383536887348965087727895667284409418835447573249127422874299773059004635860293760039718866110580818424950864052677001655536494441836415105579791422205576048484947431204331498173640628778683864663783596439450010079980644687093070440609605287857441299501257809825466176773711834641335154222223417661330535090012825167241192247511231907197552222038679193909755306482295798489886254440212726387061059730028397832192983901915345543950639761140902665921479349020795426137192112055337218504149948956409916207312531806092691474789765894747976124764748448016471033635803027300963007702870505249491234318213911121287011544745537548041166851343290948054599173243029868975652710325598040561977990310636790593060902936083083206736636246863339253640279553632392076398257345201687138028141230020717575454594382784658175905587026302876059192728525678357194210251031668832086255503698734911022613861169749460978623018118229659800236792135082897827928529368399669413167400900038282116297341336710415817912913230427835403141684587359736988273484467664230626833851645461174433475227310574762951259950635749339816193417705370827226750503856918395625810255820670106226410715013893075222342993034704075167193828197756548063685366645689282348211686620420743080491294385229654415024641623137007831253630896996240293143893336378735584525472672927446636429637086834179742879349076178152265070107268381401104451177955527861805650394019994146086268550201320200006542025531830948412073149931908503901209223264614993916289226898400706839760797926439023065273063953706934448814303337921026686125094531917973356887496090448603858397090322851020327251824856574123246448891130851794522534785542569122380611547289499681426240764501555759358524857924569588477987817057855779812489317923178831059984789608648185860308626571318472602428323508089601151280742537533851512818180823130603652249543304778052256692819748410306057178264986062989380785050740899446294211631032335621651538743092886389464812814884024221395186298348096738594686011639694976521021873253709864527878657275341255304818410269149425134553264375388081561545425788378450557699511470385952898499042939462248614114678758985106944447190365361394756961744466498530171950837977805915544426806584530571289961470243046976586775052323579142387032077579683487926108800810738790441259755600795880476063620859970916911916530175597819543807103655466258307481714269551773561481911092806934236513160283974434799753236036085200630442358131672094984241113749125691942528310954664969145690240432755604263626223257108727691352732983214787177555518218714497496170554804473732875532457672671462315420570510411235451881969116899408290851166317725380529048001172470786874806995192058720997675811212950998307212091939179935716810120816210901237190780569302131338665433768576510680693028602823055813133840820937907679921518897093457865199187294589607544513925713717890573524848543607060882261562800596608881153934782852837588840454616893250703237308288492132907267581759992068870657077532412384231524099812642869542758281010685539548945035327189806568952987882333123237865727812116204992628066060174750897921299185072619984934771623702727370301785251482657130920593428914010632592750691140943478671890456373949750823112417410395595289318058345759705223941435691008321228415588103752547786162279756898653739244061612431945446144809183525403376680652422159256469994238385128576161887675551160594862361180368002437596051039853594565162332840212486431355517793193592145172978337472540088336737401437430952530145560451264100043839461394078361363060355068190312893452008238327596967999846119504645794278465788518494476620505158906007443995859239210710829772942311737699423886066591581118450711360489072735097028467146526336631707497245928159996169071290785505629284287557082905475343944389698459428671600952409010077043564182573634045304017624902156129844175080697380623153493884964506578778107851023460797438383576208194869401527816846079753614466509327391249691552324287180649758972752675085567085355888514218297130581833930163839715890335235108840699056182191097200550568297476644370080701332253860189269296640969635335141330746888089051290581732917318881192589477786545568718921166023983373448227907142999400182199063803601027599377543387695725020958228334427025343140109219238439183460662786823959781935280674763487152540741201640065829431784217439233702179260333290977882169110200071550524155080379925919450280952735137537167098597899995519080440264445578468420120975124054391418577809049469057760051818199575852598867573860175739550714405555315945037737088689861949944310983507300459730433672749381142814111861346279644877392265669772980446007720512987986477012898500805974619359340262990971962647586972916351083975820288295066032871062314537234431359961686855551110500599714918531179278410578399051791738512383621508630506885413875414194441489473610195776654453831094392633535735097197434465104379554778680560722156195550906956462979937940468740394221499835106562536233483726753068881075637716926358062980809065563168746451801201131267115518755644782350537261890874385961103806109128787518922374371008683995029050609287850460111756639233539335395354954845066623333494308734925488722668242986590997541597600819272215207304664663141845222345834405841378066286784526671722061371082324275940029010311650671872848212007876692227973121599863956233152586143978372444965622228127341152393756467682942581858641725976152944085095458942108912530952140722909688214059889762170422772430095341568869039024020544651655088284914861530815080609334703397055393107139697417518925362865091678184768427462281255224841409127840576962868027740297926025105052374451635299535220389229315811724448548418266773346730391401455500614697378357271611915055754132662000302291087237686454759733984389955860056651857622875014738862260707257085176099533850858085729611811567166997066464792136391888732099567186111893451768739467962378934575645986394996008927992311169298707010229678798509739255412952366026795597628115604074757577931271311438377821136432831619444818679550618384910632170234082826384972552595488323259854559988066483404925931661985886028641591296750963358796630708732806562372972942830312242906570666215785592610833196907522510811836996439354649758797719798195009437935877051747484995217124917673749814645907739817909200613789461043984854051543684422515680898494369314800616999987958949153026202771225123761559377276403882489642824158477709352414812960439272097721152633366281179135649644391570361562073519123532420294170029386508535988288565177566595623822320561356838206698183992314958064270060765183961662599191866553890866504995571249583906069487038969598049481806461023660295134934306301723575810406976245636664375849623342057083098055012409253833789460780018136772167456465717039915967952184699383702357428637831841594487821376072907767199765093481223622739615031805024069751046052216918037717302056009906156383250021872941132167228756763962910070916253240488179387374591802115123480873714349834722441560301235186123161677394143777930509757709707989307995496770659972906215930670487582965836603844125496157318691522786767435408135451434002227958092997783511732119870256605705482588550651962177086850599895694386562458210747405357582809399022054708226062993138684199519281820916985478743029440407208973065798806795599679279103511071011993238448352498938294775538918275273040410944356771651801727999544434831673071155854969139331556004055882571746750134044671646972520443999745541034915102055240212979401071248950302440324495338443984156123268392131316457144725213802634272105510468683023954561537399643562903416937371622025221276173450484316813194371828599043983472657862013051614154544257206462822997474294245952669115411161742690463456274230502573313752587609842018558930544554052706374302110827889064754734036575468993172965656937383565395822220010093526599914353498450640088246126418243192192019414128069810977299122343828006961261945052078154514323912865640615327270543920129467770230801822439977642815923166502719591635628245344327788419190376023567186397980085599054873358351589217725723203516600335690283307934506614775340644434287296800270585312815229318561527796089393472876728605923243981371345939956905542158487502225383124927732233833295845212904726380037558419233810282753620202965836182813037015747651703492196624412280167774279743982273878100067306704249696807841696953078761997359172750852226678940647401158492637234171576176825569118814956315998206281532588547898222286963493972942800903368634593907158537357394065033462452621470348337959312601929650860332620209284339647724943641634135830799076094844166999490560441602930114686040001150187921883340127902761482689668573270913116961558078530979081949223006464778607398354497655557457950810785812604859727626377275372382559351254067433178654025863461732869896980644065445572348704954843072132230458222169825608150168354909490538564272424962459798806158012407131067878396746594249663280742523910915139033556003585646194339531089436245259009336508060059298954401366054240051073000502734635332308539108785411616177459810192854466061187497681542672619526778934792911624907441886304505724479913247495485186345688667292924995436946595550548145311045044858570170909863601769950427088844838428824974403198652908732976238865437928260921082100655632203790630047601877938470486550686594188102274064090029484431743237609632319266774481671310895301527608014633335386210244726050133657294790901075543987688288507642975994323229255671514180301871943659692684177214225292278781559148995577323491694876512684289619021804439201433959742205045264887631330265714290542255303001559840263552239180378631375404293542604614864060144731457528384338723712389374419020647044971346074684121221223245239220122190868472308656431817303164302708653268897424297058718346725692921398723909762266111434247939767829792953632555294910606683422720837783496684870822818010843126998850862526045606352815655579903440879374247721760172868245032157507686792881288431417711465915388377799501053641575314215588720098647048293559631316987063597937355025885268531816622070543166496710455069605669540445603614402658526997369376432596923044604863866747498347706857733495860057337016575134414079125535300892769018788719299995555557606307274533115147287468584958943513047411023164669859565087459803759903429501243565418235911409987132433327945441827595661719388913415045903719757472221779789428082637745487042933651014790128744923010014693903846285693712009469103700948611405962245778319255038372996013798244686064894630222241324536991153193593022427953204898368291843719230789608052796762777775966676803510223454731657170608451863471810491274868788209612286859031965076212988157043485547040711937590117062353933587906070237328370369874948979742328591107776346120199868279637344737470525977572576193031348772480775558238141073744026442699201109669851373695464340825956838460598153894435799822548790143630151680132466253850165874712931712416254822786609905190708370411081218720067149040794341356137162512091877058644703629818736375248266662253115713529599047576944160024900149082523868980636917709300044940078880086806945536339148808973532943865765466655142399085063160430326047369173162417429684793149665645052900978644334218292041416396644154473265111329987348499075845860003770516769914947469887109127420622172007744745286671148394399921035139870469715158200391052908340886843166780594493194956682852320608639741652173091256076214544537409849164945857485696614299052320405157932428090517507236970885846768166295372460500380815957878116004976944087632929272736052620352970205764839028712180055924402324251048325864292086547689848628416754238119276263258873333459112322599498966857284496350007328974330852726639872636572169407896605539616643105069010184087264354251210975131690175420394355723702661320565958262670069918029622210905836894462518097836336154569228795095582591815007210333743812348724337382889365738512955646037961012368200123316919729889215455924375133848288830484141854115140101099597258344565780100370621646681002212865611406660965301045739358098061764653607917779313102795305472968772691530530303797748188479532463923276667641329474778790915550373344599496890074190658145899208379513465011937381836453023804869356865398673696165228254217990598749381994386020141764603858352474776358776038864095073488286256593703503226423889864042065088999720394203480276080366192898403057004819960084624208902145320649350202981591603273376913262627938172679468904905476140743671470506887187137763555380089752978896783648104176663646211223814894022907917179779520752943210661352574880339544519935642461700896232379453691400771210705876296768205236691824663087956925614889517318592648287028264743486918490429273925883992067568997634728493333135190771842697807725390877060348510903342777196698207864407288543750646191333370371860741249252694126882034178464231018481687401156364467339828758071294957989692838179535719306798889859786832355795889940962705298534796043884238077614922259134931174456730571364700837468547774499226686213782964273105958527915351587318969502978590653882678690788690485231172174753736824966142293402976551604228357557863582106857782404110934876388746329743660702968889252454615708798778715787098691503257889857557265171640441099683631341603975411951670254121458756566267755947114688552562705850373242425051715182993397675685849544949320542735855807327341162952192675948182244222005644543981878566098806082906469430249286893501511948460887083857284477146544336889123934392467260888646785312237957566013074023577066034003824670105384377368372217931264502625777126218091612552029849791631835542645889674503789555111228865896996549111400642796427586312981872971751693941419350469153888527435807144235652997127027091119338856502031764567605405558884289413492716961095478257448952721559092940215646711823481475182194813736308544362642665706558577688208837381854058533526202973583670812930340402384148780426430994939144702954190414790348806780282682437358990479684400976251494315080132255594641197982060534281163237964343745404082842012048908787339200572321471996128682814472276288514679996589059900132772248001391700655537153812807472496161288659181657152693101290842529797565124506759563827912011301245542847445759532010555462589213293597093767290316342277538301700072660417542495428924540031939556794831171432629044416853144977787101004008420670430667376428348480474552583887984453821155718388702652376314223063761896939274387805087895741640819452181215502637589436705822307793984749694427386394673903451455022408408481249835450528673762500300062560775493985102490258120560874984989963239345764712139830133600353142862101904490641432405553926299205970403042574211842676317653799090978283620895832039139327352955652951633469093965756242483962663035573578436611150947108698630223608509719333525521415451301784707075087449008927483010595434041880576817198854869976372458229596549489354607627582547013689781138006295295149500252868896714893636668496486135579241914600598140372472621865453126175723032191111659879944373141719150132681354601564579189829094115415740818822492907381091955953220462460659025557694070618690550927266101800483748997600796307720531187715840183066915922209116314733195588362363923060221532455472699427469081619885157035282273635965686134090274602469180452036776071511928950191522647958436292288900168144703603527620672150772722007134110645296643445504735783139648163931535860405388168338616415609979246201176860832714095878257489513063988305914735583716228346343155034485413168800896962350516574739390827227186462467356591859881800000463518276936466733193343463907944740138452638557294790595347271285517318562861572484912991978805854551937234237655000160028046199934441966768488959923806469231174581659169336641048661915098176487403946057489116807188633203947149324551213852067392099831656542491025017183942279371176830231113206058199740428815425760250407490406407696627437025174426674052864193814235276983210086811853967494722899979645045088403271975693878626614488596060308078703473549024224102676130796258604799341147487466553954446406005299405849590409477927476875691370959673111259954932603293369162747870944199280538538061951070368511641977196192840882314308943002974153062152859737207628858586998157031354224256944100602336606461690708919278823120439094836559026312407186957632007005704783250981323943397896153840043969588191796733419609294038978740665599169708526633364961758690192423998403747489222615615887863918828897995258512050410895553781214675478492236368084996067661097995575877639755798932594658705054924997849410652554575742149918959839528085151664387731068295150832545527003037611153384616330677714386256539366861839236500348186660190801861259098657845077988501364183960386942065529906092808444911939275407600532092651088119889559778157236057515192471538696401552320923238432156333379154300623235009846671078095102991213516009443070768363371262886723929352112143378375182372077700477849876446818807861603786287534605990950774154750801699815452513346616694725776780649258038280032478172278281914918735458676701902483064998452552804074619810569151658450303045695633058428601538139214579879429605523902466938242267442705557942652281862290790869887315648527814616333445470550528889830869122267274042453020865637393950719503444733962784440683357154153494318197069154075022733711015501502979133882557644990797579680135062571281548108441627911941980251514041446249770778071277775895024224083915482692039708839183223519828850286530521443345209112342912068073225889461833747837455748048988655302975721742891336564885841302115562750407927309601319091518854642058162396539095597452501761909246652607264791694106451114096575524674434307669657522387843315442944479570863940858774630724009129038467781946607291337759876723168431420848329529004233706687927149871793146507717994411582721135381660365481261153575165111317367441652380184806532254735854655212194715853196616909494492989514719639530851813250180165500606296880146807901747373941596782096204219260596501057792413192584559129997731546854986711975926715399480541666996573498601636753624252119104284604923821200819031712868497395305144756416684176455268558407331914765281783344363225222859144127726645375112810272345892608709335244410816772425876433091004183064050489909481397087267590528815083214060277182161509084572816916854262345837838174779049251668232583083961029967245687963709679535867481231980949638247874212333786741959245047104397715425320792854643162358044427676893292374456641629190698038129271549888644882817681168867353957417174255926914599726764063400220209361583662101999822352228205738473663052996780133272689674999988390925643418352224319740040155499833152622163005976249294863788219488937240243952476239809876956930413903785468315239240567721281613610906664673921303393219027112481599402419376740136850355835604237238986483683226733965823961181428808610832718041578061658541552490168203844154256981442126385277889799055560491842324716306046724562542560458801459953602821711288885461758895493899451177382395281136025007487036399776654220768387133875541941677651136728312251240064083387492355547471002339853291472080372859160523559706150405003117736210634671037895795531279507944135795337071922538292250465748863440868693202687032463071089997930475386218288786806678720504096417858747414115670787012704112059777207846189848989372015343886907397784075319148441663148395173694663765287299223295466657461739453165411795785604021271130568885766204041547326305422508791486494301763975452967315470343683588723111719927229850802516876081873637402248645356737343996931064471725583043736462449792198665080955226162165602767843638453532483578416562031368241221982318923299553131559945097365286039183003044858042977920190826395971997864575293799899575179973194237284241939748311116220757521910634483427129935733099394981089249447887881920840775728372947658975841954947689863177877853551897321747692558360337255527638935298760075792278861645076128559195753576549718373529858314764881693568844548620926688754097453270617509110990285182851005118057632595380977372935142445177282018450582735558739479215435467888179650835086827400683430736416358906825506751909527683913827525001632001896634244090519454593555644796327888239125764731711441009827166727842000391990643192132482811357118019522037112135141422496836610261114047115899189421356236064569190459485578744171891709110421294266814458965964670175203730412551524039867087908356818308316738834501837543670849122454097767114475636413669191912953849171809269972354636519647918945212632877376872297216205495196740741086872164302790321706871851909174058747544909712329703634874268336570640379062563982925508738011992520860366279663088880165062412516663681567896023143679462116062569229385057624210878712451341597860813831057945738790756329771435977749932493353982107582888875164192658728733228297172401580743942261877165080898681226270815824973698829896546567912596186335441392382441604414510884708388636223620370998071399640766272646853368117851979046500916701195982955766743995023294596799938897955827291747809255235202037730255858654230287696482680565463653842117918214586806075927672315681508796193064628240041668363098925033155784373228863643253204650651531689361741977531705515900374969002516605742659073081696435691974891270994384781116238221295011837278317141569127504222297447088795787763974329610905705204078528416149508263254143518122646417789808334346347757596423733674342184815122840171593165969956802154555090038555112722233549419347918177133641426751759994983141768843860662335002675843877608168670763316301837831017414723334577850762371014682791068934068846182835613385722183839645920681572440809237022852824896843128188045740691428181420235433118163866102018516428192217072009614433957454715259599247020156565403807545970777585615938847802981389910393289550077741705087149625864601661044209194817297374162929534830692205473204047420778162087053391197951836648248878311911626498419800876731329504707568379403535776774112975204209905274533193882311246642489242523071865828875000751486476085937831277387327374610152106352674989085934185307993534114759879199113080744332813393909948073648379208605353192896559119101715125514901679362347486309255083802788825187730189729397978366494238323248907269067103160998814897899896119243796417146967681833274107180006964825458957209787476231657357024952453151509706802575466017934787475060876805192754543308599657341065811975355371521803602082337170208644371891213844867432920136269727783225046138510059245232803414332451516977632098125251534472261072188755479599341155233161118492996749754999146160505741779121062105095272821449807807107316045829533389434438001045283811618650645927339055099200433022828379374350403728004474529240957799123557696267750623028236866159774458591164136655350271078511940490482542686185932177092355100888051423639950527796915521037200466619485112808488239756762709464525506050538018207834151319192118759685623659243367473463977200681970011077336764942875537714250670682187887514444397858329709837942151670871987763030970972503013633134341876160717464908304243752551903599757274270928200978133222036371656026495727867169332543357282029943115442388245526271939772375045560030531064742132559287708401249907691464829644862489896795059314895530424757036886710026420021880891165977999674775713713037361819677613490615839165091842406733985347643629604596919389309716734915797013298750244835268919069260461452806439526258813930252043904663013151849086605825201734993680695089679381872909567063949017479373430993073404753843371237095542152817820888196558610056027025414479466257874013652279056915664109521155277083293145727842729549528383487437539108557470274558670493918276489265953224477014640607536238354500214138823065095388227933739477232608623536710925581378939995998850900831816249861991393847321682630779384427827486709519508667188900197001462965618971755674460041322306174094194381240208377392361100858406494704374664850701359865009315519571783707226204983999003068633785408041619088633804301666494258276070169372530863838184211125244528223875351223138280298410879001648786571988484748312539657857069409036474782058081417267994313088715371133200437977815654224301275904242044092998492678411055693445708304305599933955109058576253035874312824027443615462071763593020883634567061427261358771147796764893121514078228618258985553774669074749605455041359898031375885945320254854333377132911639648084614105152455825857152158125915579460749185389724186935273819610791735583740706598195501988868422319191051187258044685694464930784268955280307837357659929891954368012589015660619104365855999522101324146537395148107192513806648065783861471791698705527774200722123915609601945760865472490254868370403241622442887708378258106493154605911577337340237441272226369948931737357737403689616294732900077414190871728859542167964780535001673386194820290574402595295185999536904374416587454256151391630422532721689779440014931870273410299749621733341220079495892226303508013219094500004955330767819996304912316452396390421325851735642343775896105007887390068053342226292978145569830552444603829698745102679401253356726663593514458162080489651407427477446143079023083044414264658971313467249897905070078029335182605689435450154940393876178421995660656523079694087961395584262088898208831235363163151640183000412875034696643628756272185125642168919770926426681931786807669832767264931467625681860481596767561782275903278495331675182872649029496221744931117627655496970727977000593867960873618892648034368668716438090733738399002420370737971555321617065408652354604444090961755890157174094353834327387369969330949161818867425920889108828711854639239028594728896049625915674668859228718123819873690798489039269239522586956300314199098149299991133819433784972363646063740100006482675913496512866690248694317924069563723415513470106184297612031112884358514097012126741058263857523734339837589802695367089148396575819170570821945970507891597245569800665285669727344634271873017519008737433054754917494414845614879079451895830706956602426571536688165057465324028900669861952799747192481597339164178287346132038136751983944263482040295904734887059394165236212332306801823213169816767192046803415613222953678173629168750376551518464637045464324896943285160870035271350474772479600076698645519365895547769724993308107831672260835130299012191898051550803188003452842507072326355139011605259925127797826812911284401116218453099946992556766013133624746385795687016634076718175862464465318468358679243768613138842556908104658922892816636336475380340777790182600949948388038233809559016386914254509620194689251286729862736042768519276804259544317912292297480337184425786316991953041581843033117075294397286528644986361403995996752064926565770651711922830200325388743037565262537719368910737190002359048353808041021014477965607684853017438055562522963307915088109180536430678342043982902782314205116550676463831748973086479953025036099091040799173451710347861220658594922591901350533142322868735356654070627007136462808328170381599231178581426925345695296952636045799622989039278713582366733000762859601175296061641709309614322178209153569476986500435602606048115423173415658858916725065550738864191359562283861749202036557011027943095422603885035632077147338762394597977402253206690592394303160295167193638426541203285945771104489473450935674010689515447296895052967405505342913042409802144846241531464032360819641602779454695558781836561425961831344365623279782315645293711717455759441806516227045028314257321803822203615470482128645966083094798864780894690679339915772915206850875623402179209156208734602971881936635823506537044099736308864364747225663499123309354171792104491054605965675580613779739685912184678843150775204249027034471290257221898356867258597905519743369009097338213706015567594843350525336283282192583731337848821478259852432248639663333958636285350238028258547279376891272805467583972392322873449987250247390215495033036873135488083297626882801880516782592745015047602533804018404184504363147463303651155704023742533298144092925193990153608579432967293005983805844233667562862293010846189502659867455952920701776656653616087084502974943130380276931160094818632156797324101968049502218833827250391854275191451302593094383203421460703616219133998529717780693872343327031028862924377790021879064257022858944835589266762841848557868303142490113493555601772777281519958136497464102381902632069297445305873946658181020655139611275897645589497594691145938198650634896505123446528818267060230070482497697855949599722944162833833416273169155289565850699633710694953187554516819176905538915932017333882698427858108392557439951118003377453572135792506930235910182640489220599228199069253381536713115895402513286040029483544903746365408973872879945147398956461535785310162413936363482837873555782046499607456740095324168547998442139152028982875615998870965234600360972423166409815531611229230701366653303153677243580122888478664215652977563801357365278683677768970704778416847101343371335047423764361605084174655735762802432001715011810944151112887707249177153575019955880910847182251311063246989614418543077805665082465401029546475097269895072933162340273206183399312831731266921306405031415160210510662802610201735395193589332737694166778706621701028982312253933173223919164173304535064533929207699234199198018385592161348433923575011119544948315818217242194562151635732871844377366116340095714613410298367422311356619293784688792675437325762884286661808761022540131422334726332323115738660622763982525654860579631776344047822035139626716516215898533136260981830974729908060422037899506302036531551292851029991907915485978978262998275289214729302008267886846153566886785132239705905831376847759432673489519537812250107865262317073764664928169310867505817998649503835596121147726358660901951027609763791932000527433339641699180094016954143667063204303226455755913859708049452567698692668102151590074018573345073416764004689535638551908205821996753237520956213921732801015524217869722732212082316875543011777047898164466007397899749109944569455560445711950373948063202199677357707950064250116896045108284069550112359786699086794811490568904559735036501921752674380064697525667078407353516973171931485904898122121040983507824313443145844742340487294503193476643434678185848126285437145928632940971622596163234145290356619335018026288352491818220856703079038645212848303127385378279997676855833384008584200594991991060297153380556563148161404468708988347203333343339136803107749447961837060016481350110585886838765740993477909617255845220450427247645278780008371394673077904388543271516436574575737256980768561521012170988248677706547684549216543929441334731127301119702554504739945958866749650892567412504144520682163735509570316142702211701412550344521793566206656664393798048053042863405628235260316892004035731160498478893558625591067412900230708805737364179209663076486079272466853963683796753319665879032739952994704574651943853799068619413059281386722032514704207421370340469070028878465459591997133607750991851449274652121187285651278711258730577067229554270461748972338837694921894281562572635686962365632005160540852652131126828587578917415158529039063921720247403037645782177291270808009487172633195158281175214644587577372639190528793878885395951542072973204036135585472700136780340140480675867869940305362761201949779699732390693307996898473314432310231634001976992474147651438960374975245694129604943963460514564890292693084045551823738613386021566588153840503454728949326954215800186340161052982194020592519726212707876271196999322751170250976573407082387082116226932341855745144269295900566565894095626605026699943428455009442865761259620367451313845337124594585861440537334823709049595554470786430121532989630218741459592629467145289859786860124351996586735830497343619996008790969685956183625200984434395697299179812910254927386457098289469938492249607407173824584909982367898679746741822933519526967982851119009555382179825892344562633911190463618336219768221181219067104525754625685208431071085763556498805463445437363740616293514824438270586914237570577233911091162780096833267761989727150210224322538789425830666899512120297250420194874007225797145819352349671509360690833829055218701951098368025193095937307380539074006004487132440693449999246186933297057964812717776480871171561299755580409451663620256260461201991563932140663110946286625688494434766168314682008408449945941336442240246134412877337414802905989674274367699089331647622356352498296246761378453715024235005167315654075257888904451384509754549579985485883408801736209756399545122213600981741778155597326238171525017783524119435896645455881005880147958742690745746150507432030653344415018610008492219827836359809803359746021611915258739178121198298247957807987436015058286852800688187595183275596550276357532082033408909342817198117101060035168252144453164103085855271862331935428620279172542171875675562795783638927443684733320911701897994500998448459548603589197015053246156312956932193323162093916424145199046568125592011482088687954485677756782401479765410946829177584225542274859785969583915927868114081682770886472380402893100708286725617942941471514993849435062327537273890413846405697531046139714062833080854249239273736488236470852327365064774999701926741022769581113519248350435614092142172287999444055469827555296806721317582422350424964466056321989750382319070077011811715217969756306579120866286890336688498750801508771625950009732338637432295660864012148173268849233450193448524003866031767709111010100439990329030133684193813188099720722174400013992539919557836848225619874646563210589670044397797898422101441250581172329944424061137408554848505192981998693695547699941461811776712515255600259451221114362733896126082654380488184434943866389705427205899813535354146922627200313686421230821101732786947449680310047213759745362533743595016458439460717373315355783354324867271157727717659879908537457737639810076925617446989990198363329511429673914472246428273432505089950745627726346046686945673441341663534718594525577705641533374259154503839278159541751478644946636609647480451553226722614015156222871262813337292178941851421294566149562380514621463343798091875811900876411824541640868064162211280276041031985606528882832866327499364532228098835440060083316368724713373989874982425840841113226529344034058584455592146716020759866374939750212653902712817620266751467382111200055624468603541903417579062946620589145394199304887553803011715069893795544927910581116247557433827650789415048438983737598686495599925322435926420650228088855435034829911268696953831819662125152885632088055982184667437299564117967709724637089778932803803038410689875075260729532878463235911305462824229759982113867521564925614252023224559938022777487871822097097079970592051800595795936211660166246868348120281812335690197522928460729339319349564003489316248210681440939972849257677202800977566685538105338739500393158605243872711393810068520609786982388038506139712535250101998059635632847578794138749463976401949756212077281031381024128004832127612140947206026148020242404287969913064179227455818973896517968669787529322273467496195803868797971778559540839934010310214162726043843202565214277253569905796418850807166527669743167802102796999755535036678252793541943419249522248831460696175401914795113317070924851061782011103545516331363936513538293623362654502375474333956837702634784192968378884137279198758636080057414858774563722177461512149336167605309544145648305271769085593915400835007881527814695857719060867793254915962545298064175865166261940958877540270019891856941618356973066761946122396131224948951955720253684438053158298481851461789151363712821135948339389359287356258293547077889966674475523379612082484350257650947317781782195591125755796355930997804837029490752750126213026605422437281809445095095167946703794383717866868052520513008350212490737309783838354570884987033311012812696498443963121660128019359347479383518225727181914443495355790064543123802110724659956212126193146699084012684052345545386013063407913135269401593083999767546316740869318410258402171450982039427586015679384801603497583884957452122501482557341429118677864298327927486409898396493824070315868795719029240819782179212099526135646540371248988228203910322328943980611649052217449234077183965085687335302429728296370051823750165236573685984624646725776419984791698072182273097016755050968520193693582880873948095020703412184106295197218701449610437945307926171046922773270762169409697079950559523324791103972394449748887361455853972464443972962389919572869884049490406136047040255154220687461137041955759212792761719445959904640484869089900527235664733538283846488300676841237789990202043194605729880472699580410425026852075713885058383795886563753971659068825935169599895075865576152345666778035658761732615851935881340965572191195398991360112459266769379252462738278942464105243361957355625256736242322464554566800345565552691896987054331789748295716076954734247889664238081540686758070967365770676118111410879070164919669684486380591738173703136626807517168322244433549206963743713164447821693979383668254831406014489179224494117924107166599647413185917396762556316554287071800902940390150322459312943038433378601307545966161686487355259946328946200133174796474538377997086144711860090551460365769498078895947563868207375888688774215607617750935389057506702754443469075945614197094335743799800976063028753900876330179171100279995745239230992612386100532589152080131271098779742074876298326946951835948355649647812542220913325017439021777997895969398094180869671569405586594144811006595247821962621607606556504492143868451251769403374952048120613627352174590494166441815493119078014792233194983954738129741661602390225817771616322705412347289835814134757299665142674878060722429254234675803699090441831837184265310885311650766988242637018788454675125753090614958869677193059477039751975189276147611823786853896196046576359023145222868806618950916672893361745471256310909456915504241812279035031678218618599710732028875670193929697471504789667854449174031782092130322510406477460975550503392609137914656038764166572512387549564291746253746717349096256491601303395980581733009305420539817227547953792474666897021801474441799157268326382125752000238991263555647054095945902697513723301510767457752466695863817049724369895277105009991249234104737479884958174670192012012805671037945105306549004659626195287198133475298231372231088422071546489184357969425272607663663123769471754759653399916240741912533686244753189136731641542814700434794560396996050813461720569467388709951833400163236147351752751712416191249220663264998389285892634880698436600311848310726230055443890543929859851733383083840062214774802066979538804824443492833927972915204748139305754199980804610042302580242938978344057126708732312359386685781753460011731389886219514543213128764698127854486209229986527524737118823591221073266212431872962793528463660872984271202590910593768006998465213908860112595230658027245758720364616347367409331170265037617241536412179987969538732673519884894226698995568901823997647291483557783862538679805330200978323956568842253387043498952302924674180759882970831675244633096647391849697977889270949045433040300203464151854580673256363401119412841820554863713378930565959011551433120845614893746943533391611615109004509619800645774046601009573489517056015882452727770089831693490435721083089841671073783192743758553507561151895684671180551032488013377920462113650440014581107604571240895530889384650585329492764650238885011173702709111850435923529964960943825374317324687504466738092850539495235201866232822326495626633020153211496494354402498570811216110723554895451748368274448882564807131372853700842257848734397843717071837578919186440001683782162535831532591232704837423764991728984943578724628021842569316171429038603701399677816604000330815181996953197242549652386820226206525811531475872900055953948571905837181179295254951792633817005545049324163562493945623475788772158629927538768980254397838313838633166887997528381865906877267833557536241515652764772028666045710093899937369065917789920250463101900828921311563412343752371201329244016472509377719437395990035694304210686747498237600559824485524098827435327925932893289391700796486918082965929351406028390524579048784200339566230458129212475419180971081645344927564100032717554545025318100376988712865301624880792959711319681482511393834987460695626225794648466745046232868096315531757162293099003207432169692743508726816377816700905964189083798921952891915783972787556853735446086212448798022885252572668902348771302603524899592659105444767726111128987852306913051214665671009437313687281941375223831341201165453134655563891323466389263319428559067879688507618904711450887937175820772037580004622819161004565690651951837743542386311081108298235722142364982154327162880434071730766551693359608023936820442945493204954992824503492360720924662015261308147718713739343264883099778463167952785065551691067598585074515274045903790025754781307410809623455168448339140433335687813947427559041477476125927574407387715465096891799605069347255847804188008271878770346825621382120372468341685395394438196200482820872908934693670467750658812887867923280221612718835802464027548223741668482786803146839837279436635664856385003259970434872175230239180668105827439110498212425064307328646895880756933869749716648736485167718741969974514358230594397525440527240990659719951517275087274968813119972407993017316705967544885133156441356782946666368982254224552103445600111520639620468500909789534189779221623464168809135520654195931601284276459880242398686854030983467043266283109475879505879592896628698479936569415004354011406319440349067398779996371910867879414927171325715512560662032495126957525767430164788100363636745640516908050769925100426400273637680124773240062806231451068203064049002718383149066878320192717983179923533015088541040826700107201334499186964589364836906361926600678748147175000625238713634243259524462640136165562286952297931917218910360418339590882198473595923869251458154901417635778098973899040467447515135379301507292891086342079423013129239769335870619856975408964857056173511907269307740752590040272317951120900105669248089971117872113485572758355491048255187152645111599297257310065017782327068738922264933203457186050709585739151500247456225323707287119865588506618221810808833994381095368566298969221903272934624349607757375753148285082004388309094420499447881494045328500271380508954591357132964595010140438227637548667581746149203897129188976205733969186214130847127992943044018274480884915175498806791561645933430719841477570377253098135168294124890070816355335533943228330438277094287438773529458581202319915419372697491976702001372137593673939405912823480739837253776464308533354447440325064314028553790825486452473097609657133493540372742910127296012125770637164657436722021741742243733211413369668658328584263381558345506962358352154647871489123170720578708243930900768217693016789826240092852246167634690582650667834128959693766487010741486114052035219975458449274029588251580139707853378344144663961240674643753599161057494498388353887643746163357998148145715023244253234147649750135097680457820341097369273440373902382725581015728313492152775133318226673653675573126963665845983594954537415786364078827358201293179803786317014201977825614799315817654823222543826987561700785387809863485842241122929815533121340551136926627282820105687031936776678206538349374470082760578300082176587003645320226933479372405314808362771315445083677095315064870587081318245240966541889048148798051965636803649360245345779497614475964030301562920677248812182648939475318079624929866713675830485650994297433504119376194646341348480280002344281780905477910877376793201291523193366326549379174086928832232806321936068328392098150652250969488538236972572107217687895110908325510209095003055007886531075879508170704604018831406610256041803721002094188268574114273868487817574619061576459960108392626417631526802085884326803117778856286076844602576982627611175662462568041535020472880701194543463505712429384853927626294220420214917290700679377038970885909106278549708766839451266052573388309993644893815372283969914801253871611252180112302107245220530909639298049062734410324943220627498763252512281814557760622090566283825168542802553663700628411752545913205939099174005001455189258170911257313992578623376171593569548775475230026043043138436028822757161959746566870021480162443217537008532191782547485349535759318588275859481993114793283498623085827489871638595140824979902081782484778461847537231492800923370947061452298227852804158174745980074151131398172952102094886853631686967448776271052421996003715336932881464103336684060102412462162701553494709039791742192876441342021928674932648735340232385331661427374435486789461610224768893112511048739068831191113695337360668244675156797795658439064984614569181700292520436965355052862418388558311847719405840541958594026279871002944209226721508548619675587214974543369199069096444718152433350903843329468904162642362545351279934679899939670275844100293536780685046191842819311230433105434391441852092360903237581287334246371963956970789726391052240575612197795110869403006076423514017838292371363038530327719115171243493726326187450320715955029611300309827502369216973519013671289346260275489165245461120525656933213485374832474009364564879226999253690446109293527869386396791189094988676438403570549985188277519887748830252188433539885974736561031390844153169437073017134154689406228779471203620821776045422667784671621366844962185158425313130894121723878630624245868811404286230757088859764638151506875429071091625308125358956890870936220727882338131278217811675678920435816430182570491751458900978377713209282007709949873127431653904967257610227567362465198557704081211797086390166376422369230174107638247441309102824691703385626936661074808160069468826320834808439072300939859426254371072024858347069778616922606875984687307128911368123153850302170729435710230143079119593616164850333642640841553397072383203919252194341181809596216492288031418043876239866889620569038449135637765196232670110488901141415593052360789251228507728567775255199827314540719895695958137778224444097211789420864312285661024622363129367673883585194910896468494635893473689924898377528843162006684800901552238715420221897981318820683950070062485568708835800557256191837791578975574481718857389821202216079290170170891222640705920869554226997054230840334572307076668821916298725877256915177736816097586548513912254107853380932370029776127078212944748898604788654673252919433329770422579775387123451921870652826785207844221068225305132781208454882019797024625154070458078469227089883348646218787484289905734760082834547194828535948965832439777016077425365055139923611430806640985730838336767915943701767538517980127696245236688610749165710045587315365972063619154191362802705271607246634674113971322241752735450415222522781310930803005451328966383705357890823068694679953752205775162418847123482221931614644102000273472287502265857654450652371808475126824410146903699878794460102745682085484743014175826860248735488062943580889099256777473223666932979071367917527302038185479095721131915448560000242157156165794081476065533026009555945231643227603428950955776286235265608171895302178375625271853877288356635860411290337514480128590846044906971366508156058239371882222253771809291101177402798866846632655354649068588242826791637067066692517684616224908140824255736175728874155080683492521576709278196117148259413476882990747601411432089239648163912063147515899888759504292311957753214812491525417810359140539981107860682124004364016238641652059268763131137571571712264048321953504602118849123626665493414893239137301796242353370559722188847935004915228665854968492821889279976601112180580366575459175616570273234597411581736360780241620852424764247130134753533953601472576548737973399497435217404129808191155454747678326514686258844514614542995267063304506496216269924387849271426660413260146643489562003806905818013352800682439703364118865129179606861347778852660334520141003384676425514830525562787438444261582460672789278302288178419833828586574151082142316178549019615446237695106003469167179916900828310571663193430500272975699178854155104936772887233595506795049434868637403915701756396801975628230134703512646035738945476900381046677336754530234049332104506218225971712464852086109108576475301783228228882777494339466875438435296257966724093293653548692106491699622471808765938634484753278480183902440062760677473504780034525518474246561998551532837904190170167394087821471065859150237513797130383611793028388626354495378050739094505701096149928446345287655035101078965576797526774449620910279067079230831761862270399701587044561684609519005525856562748178243578441782836065097536805156090520000244957154915830277245566726958162864006047200599169366808229786127156037070126342701545167049093562777750478747258761186889839548265427163365629554475340480343613799814715341026266168146602212428379337433127729965991368253462522715041846286359590106264488008675323705817963834485030799842285076613572403728927112515397824548872507591383212042050822556406111498380415105059859260356516129765658523610527969257482795628686917492415627407265705438788599205157308554329116502051730559623387724127680752242821932070444541465794540498747926206333257602821129095208588165274624190174007598417701726140572461628212794295338423403124328046529476953126004679553849893029148763571590371392680935146231677779728242546142618482225238874442115725543252005011113508363698370508792176921101289950806885844412708315197318386684135803335988999478079252545664993172389302783948965418438034253069295061682338906209825873425505582260419549597285649864864841359982800879639334504271871770954841843379830659896346684103768843400185647041237865285697602601134015079714032692467275394709218084966044541607652236251983476432701106815898660442659237997541825083307178515658309537817979026054843305920667512071253792614810918762328091088741228965021555426650559405316337820015613280122659415797113862270970878480247108928127768167737109627439530910409207513502575074718449241669347636855879676164677089142013056227294440346474181773696221231354607715048609685890876990639945987410175740247108261029842996383225440331759539572782955463463581400881767149743287476405967984580369838697299852087399317899851717712122495820528530625912599943016630885481958287637718376173100844441539042155437543575369863997640437713462242287010302989945057927577539020722525901607371421356456014489118181830637898591314441620639077962260056349842014525519624566549781666587296827673934493409397632392297954427006421940783553898891119002817850278130800090824933006621508426052878168780394058233873181597324452486221716634390589938483789421678918096820785086693209888839756577814273514219380742517910785655933706664718132885263456064594171375829915832255965478448370669516353196423422325999467876220323548773326156904641432702816695363561886750390606776100649478001452486500837547883176066070380797523335338896603062671554391976275759258429954165292787661416179543320627907306663185754405066572944462373073260348375556402988923340017688262197674669821417893888895353507481245451475909929799657152950186227534940957443766317864309086004068607207212263090428582825115308842675859124447547875166392209936082707422497457981307000372021472032010455835893810795993790985078966497842697638262880040472198030007572270798528140786221365813363553109093050023604887943368925530407637755864774904664492856743260226920667497950379139741173549574096603321417288536225231482984529828761673043027375215191980391460028036245468791619725727653934824700945304013257788947492264447477319134389732929608924534937976107163241504316353857960183726861026693304828076190679965306089794526917754522232528793609336743822422629257168936668876468579208656167194718461234982234733724220512238287845473933910784697895725255762828527977798138851248898290222521772615770761929715535723677458289937652558755683388265224280187543842990955257365370721492504885194763965329716622927328476240129631051143275776333620220357704164285651495821039792346930328839593482681930409438753738674850089189384521606691646789222196335583085795332881205566122050471300893547841353650128234598912622221908113629955940785143019039447073691158544975288239650290305591242582560558261244455275660936832986065521063238455098688459293259920343827389746086051602923697852982950693540178741480308463957884222459487930241173964379718482825820227962701346252481947438046940099682461295428576598527404822075586870561515702533538389249446683593569599831599431266859940336425565927419314334164017117470599549444250099933884577296949663889381824334910226450390803747837069435003796846661973988185936948806738658785311808704289483595984083838310856439553179576414938814808166664465683959214603310453703194864012821944810681575999422867715567605292865155418205693776484257317279018432062728241735567204806638895548330110635496406082799780406558492465585728941970547460115198487182791237562898002364181161083546342686007864118046354499177503534709658616206374940604341734016642935699094206804178554425932983635962692761507519339505322444044729136583284692243723642866890976201582318461273868006826742368807488143959210530151018720061781212302598275164305256509135633726519138627457819806263729567281764320260659235627121731609635249280381156050035201041353546232048102092809670664059641076449569986566619082597833565425654847660535788891833938452068365201376747074806752347059154180086065578823767234847148366776173172215635414086100283648530574042019320738347391818508926408331737145662558985983099419169611730870431090048674253503267564924569934596775047395770832070495937900440404282254647718740921658581916036724994168545855607826395743923944670319934582013004456897423150317661646385122720055251112436180541001161154846906418929858801984092998951287719780343115119812431655546728594462129833972066124904475590285500457654596653534951385043827419491557508485081867137502922428250620419548214128480022063622848228235170757989902829305009918726045758900859186867335061985774787079102694808234782881646511439843079705494437185452218762264959761584495697090323211322789875816143561944025437455010521847954472713394927876259935704028558377889126457824175282924822952906476276076683969764558857751186355071619659621118960842217754290757227152516780914965177846014481339360761586678526146256322180853679000381881425315509115014086294887886229224484513824271311760559757749584546190434039985555643691221946660052980901284227240501651285689521666237137823602906053218166004658517145609177017947564364280775568350204922486021314171396299400468649074939564548882650237317063051669864670779796704766334540219562233947008153425286941107584991436555830656030402522922745562763845571266737331238426297747013906708429132857407205645455573943729016875386619427707891062951397194336681117390352256224766578033426636600307002437107963148647070958182664214132727190941123814774188655948264600937673664894757453043844380603727740030218506762216910704336723424342082126841720489483485069598433920808590043787920112368823764628230375050468973379166357429744816219711621831542831636861641191745366827805943286240630674484235120404415323527354333833442470319016810766655781741142423057023385925541199480158223417555567729749477929919298727391064484933679394533462533295179499560807595212404182355941664992069528812992911464435476474316851173049142022990911358122374518282645478713526672290237430945303831643460680236430074175206676824340104095158657533059823311304934429442357798546508763195482014973922917831334654072033490835069458827583993075888763935537439085776127061615240466841892761864156172097524432334949774218751911553508900063159283932273019796343584657655900422101561085577965808788819181081572855825499564615708237386059929706153246841573956981986952330615504060669884421373820818075455545681149934468218699632630745128404966433126245580719099023913307776948366229127568844085602952189167284939368229702465139113558909053610442957513772722596092341495874601411906222998463725022491248823585256567040052705834118925265764247899080447874941063119475017950991957817200979462602621521670869452292187590639503848072145053314152609130515255910669571336012537947086022554357714398165521051805549086452272942920931021247466738240763421484176109489705691247868895421249741273867691070566636333673037196441322142387355553313130438241484237570680973900702237767755055038681277382661041434730041474095491818349578289248521173090929932836897196124139569174411604226900587058822737481557499187490431933852684779091165333011483334881992302509028026054831397701458424271818716431735945782274769417292082289530239689011878956242606395009534654171450202756021604454894007980677915394039740535928708545667093346054622770405674640035710461653031474939636495706998454230622154595365170867274946825865846117524411642493997729294216552298671509001746067023116266587612913173366049436422692135393624243259834909866553485410804804729788594286704865976687573860443928728761800718470489099915894199655016249046679154788984089233936169540477466306812793863117788701180220125695515872822244755967725847857981989645271743330266987143584344517402894472805351640654035832239055098928765214923880764569848322938179046841273924239704629262575691100388143607423821987314133970678240762195392368672628797593509490385325508431937962633195496259135165041933757321374003994108580928812919852769012219217076052222999888648253569303770991259685433142435122248037934333980981601396937423853790912591423271656383426513173723588565079796240137853971137332524656600638348672524302955004398279285181164160104748499716135003436595932591538714189126619757449901227991252316211962698434786843014520218295683524896905304426346019863128454358454380816926816269705534958539322339741801987910555855148626095195389861908401076428214212053687889344810180738262286273593083742524036458535592210546713537178874441618144229641202119343160362950255253460578906262682619470457890531032797786411243625134913964504421003861656781351519562786058277733588736357456384793378545736292363575213263287426375251303766531081984753937774186466998582963468982138202734313519291116261759110369696087206278742485178408781078107258537196431320540809026146896025174608463531181631909567135952933413300910064382304559127583507343815527222827825184861555725211168854072184027978175431422188331726497510589861679901314184529258290066023634325493661386381717268386056168461749369076329545067733597317000667407367668841046442144184479682072620677795056999627722707009134821576483025046411404372716931069725412454559923956340805204362885307471227323260634335766733875659073192495351077100369112748551381689865917900152726828481502667555306948748510376534524998296136145371046411809598875342432308361699035780912088118066609741526310368788656072847661493745053750898109039840587886304885485833287900093059750064033025253229720286504116313362524657453395833549245001463686228613678779825560122388790329428414650189473691194594927840521816063367211460875278009846832514929085560614119368562346052416838344503579600402522355243743051815767651124615507833249912596479266546058408362415327634147038746346354133493684700002954026733955745450949829143918694435250274194990578092933345640627294274279279591799791125272550917308600511701910440421689766104496232664516959775960292682634296965750276928532094597556010987105113040424584396038041845130215221670309522279856596612971487042419961256314158628534137609776170454118039426444421170043816412166110780003544728283660665335517527159141643518743547130335398653208710946561057512386698422594370899375584852140840100317891496131399548239692902648341757058288695423390147074957951274129713722291675225416168586198661924358209296551197697152081432696407437043766733132600537190380598492815144119732729833862471615203305135833978371303030231324676106539534671570638548586784820283778618554350401990263214314556070093983112224117886376980289633908573417943268157464674840025945023165390535502156297937663741891644865351446769038258422174793702106886297274774836111327664439434022344806819361317399789095650826421964187656203917521535835699617970320739900752272243995863228023328268084801928366408054131938464925808296767939589100722980582558067445373928717165863139490822954300754466033092557568408223254621872019629418752568223080699255739631540824332657937701444637109173806280737979561367162624620319191986915769943508632936846454475416315199224691963919270147496071861402693258380039844657491914781608155239054051971653731776774610832907930844822463291722721839606043453731187512147303686662532339449531122756813687481416841766241956196641885665417170517097933316732556459071943377714664190484056893643320130155387688999960226516476018352308046901730160647895394985856379455326164982136163654780513873303048790670094108827126241628705352249872069422276930794666299964817101453313616580193784230158671699051073953677391606594241226755607715559722276536402494577641739743929367307258027725156043307163583698677795931573757429089324275663247090396675544320964643557561482099352563480442423699397528925352743674612650133272625627583502953410913929074809866413139110174794487382119568093804469733365478649113593830282575316541803718411321951087405868259632806340596170580359537337333686652257139783820534040575331429744845766926270715876798359730940222207054666982550699445514756492192625028859355789203178406547257319201357260599521103002897210926324578482901578450895758063038270183391148484978448458642770296588452026867943038279801207995203224441120428884482995507515782296906484608589781975200532162692902013035005778890242407722529570641931181111492964808900881800512694314283231971439204572356533151429274656489224497253499460046732820261858347219398817833041350301089955626768666927728233923898286869127541527956414330778633276485526483668531347414477364859888544296487724299808084438895007103989331090768903346971000144637015776028670165507752945951615936623560906217726303420833121933612758274555839113553186423030688152080264065247637248876611527381363474725000301526851050576085387207406513711972651807798122941642207465650196249616483153378555785756241830359485423074219040979449737710964701688482445427751575454993455419856751374334116702417275395362196071771443327909302835495896981636409352900279188310591951441077036437788283420221734493685758944661711282248388630139238449157310345169435048271319810247921484864674226959308423074426598967134807393569064612277352488774562396874138554475510010166421880221258900226300500274303951384359538019176766648397547122025294229303695469413018478862629538703636035785843083490272084331864675948606252980770725247459301732460724903611703777977503069434560310201005121701455196334850263389350636960322179604621936024532195416016372296475142018255551905589551791968789091772920909149920408497025650527407166040944146686902710331850622365027833403668899109567203469659258815573711655862487441748915157365031671981354916008666827255852501697359479608084051792258209294570446602992660799320401541984665115547965476074190015498241106148173753641479458377884024804635939748611836855328667721816235723970359989474963445930242406561868408624432528889007666563667264469008777270506542274673627477706906850643644495572679426324429949180304951229026723924824444181507766645290549663422758036485864409752465555266775964604369577244781577841903433691294333523969842295401008640930852100425379204822437782979488310069542024088032163655686568557174735622870733851060630472167655316905633302770900057355677682390285779603240245133324211940495341980388548330898284765961234842638753781700808631880080575123604284928331487113141239981555950736756962277912126620722128307968734621186256670089880038127324021845525651627090934109392256578646613065788637374310932365145067204173230195873087150130371748911237607932888539661662686337220515007685057147840307145115341130304333996955458658396539472877307608649229025647403643305854436206786694538157335888388795763370481906859394655645513284911162030755866558040337585463683850294598352734494527348905417686606571122110812746718266006844469936776605402760609226862246511175208253771946647620494067063258599834233036150956977355636492050509964929407515879915836386421786291231545188447713966638068234111129196474113258567723800376899278269817414262069415272023974460556047436997785451931365138636138907577188160924735841569826383583716621627860912764854811522814662873581307605910676035604381415334345093747139223634994266640028060533090572441729377810088310821359154799930819266119362085612731296243226672592176088963658695726559617497456619368153067716598581791162664349172374246271542660987472089968280322482737950537133912979608756247400602952977874088308875745532610509573492364927788353547736595829295575175430485439663557683149315154395930124513252051641357370095850705706534198459547554825116676521360967385746651979059017294793927217715642535800286460526326308296348540026879105886498344106579731779419508813791986642533928660407072916888431922855963632021825943074322499243854894315802608000366805409030733429021219438921974625520793044377790551447126661404220833653076646143597771853689975261728431912386352208886858663146479130161203404465868394126643735521630501984858029664004696326783337205352955777139622135242550287121452536826121635830659948360528461381470051050075516540394238756889251234607783536004170019342948886489909772463008729925718319888605115529314224392580849947681027766172122586814906768414836588820252325832170347063316138440021142637607347354276009759124515962653553314667693238617912797445410512983492704536882710693521122071556491515776175114750283102830460579724652983312598463571063228924252004451952419801920402797814083462149295176995638371205254280280156351929107887777571293991575661658270341343206936717497938522124910571830265085715391875585601621814092331457192062388398527183286026222731585706347472957601598341924818381354972530481382763932828682024260214959828811804439496010234661102878147647111633620114281719174948463386523892297262737140584447648662222302447764714872514469642792067618665693284240933124786359257805671558078939336452540662812412725159301873785642134888837142629560796843349131486187929025019110191909303441305936354993676121516527212282286476065230088073927634566120414311182851579689751648444444380617700496463834482071876246834588147503022398743684498087676049632135238412830751153294141023601352889601174726916831439106048167548604562891477789841530556935746279432981428086233059759205811994391955631622593664614615944860560057872157950461742558998103549613229555272980338848341918615937145087800345154725422009075170661632293237506535850161074030745734689610513654599924647482594085013450288260642244890787183093897262008263958195040658420027796143284671760794029769655731301101898534320103254845811578287999207478929707910258886011473992232528706805855800905413145794955418186215757740241009468352247520530689936938345038446874905124439124917409159625751832351532104505122251449106880152654721655459768137367782716170362168544991489992464220092083926204294981760677628540389526718155139746424973955511893007619158036209490194615768752402146179443326125077842610047542536276522063522653396812465846031785645264641147183930206899066229462164188819021865304778962046315153998076775794311122891402151312627013467129212397920935907914580207802532748934856095573865802068867745134697310227761529310930759583430033050011461832326440337912489128520374031817595411923353660443569419108659617648051417699153225826232575774127429946034067207155311856819837102157444725478630026740784681619368818277940851383205385852111671172044902183840588709355425489015800138516691215378002193338597839428042315184558994088835864057486638632127199723592069513343928343628923197936706608186167473882222912696756409203032520626197843858737868548562495990384751391022368673798490623621119873989088431315714912431758006514940832515603998234969740125935327747999170589016011367766599638614545629412700540386730716634005403008938291205092914757978452825972179842115504209115022409637316631204312898072804735166222862497622974179721372654314654453922767124153945855736342292102089712764366421664994237041530046587501521722530459070343645469826508749723218948868399706802876535853586698437094869824636610176245756870698066809449388087673272120379179418357381285691411329337028606672862288106660804850428817961408008003825198069266029386747072389146240139059799913759997201175832657290154039419171420601064234584984173468739606428985935857921177507387445531444085662096906734809440224248807261674069758577397149900841764585321795509679778122090797178333798912679333725706127571372602565287539291382255605596716498333517116443339905988841074271561550560104428785743767491563966821495276016688814320256091967497748395415940533170460374075092248891142542115518428104018442514785571656530922907961978215147150201247889879590434425622368249674285930286959641237345077343217245659037701839581244190466779837007643063783612162150222080539221898417640287598717048757627376977786168407567337384543639955265532555223977642273627306128757732074132853923872494765181328512930229051754447844831053311527364842589085019098191917993876586178891001569196198468540613574528584565248014861710021135129867502556722340604764263253951825129227640499244810263530990976701391428939285222492414759918284153999616707407453769324110864222902549064761529069305862178928009230484516809713121577392460641560653098079293540989507883785004256818458048559376700918762111655169133277782008843614682223228499980783982763944872105134903935346515177589155861071252885480033316743791366824344238171850670026680760562829122591989692757908834768777774438249391274181924730470619737156251763648585161389262198608764344363725214897092181609281939506721509805218408784450415447772419320572393599450088279114817413312883587652561612733737864495627222455568763245492481562260651185844553798190345855505851656263782765027854898720974470815923288260378560659577373643056188179313851338896309693937758012943262046184803529921820785489865004313462858580764605250890404056918921870578413062184898236161128433773920626680268471037579499198031602592279657509656044979639075779738557618028534294101643929578514638237039648906449023155227004416346491762800580306995974081748307334082445734737975956925662931739173162372445826171674032312706373989299020062197488883313169869409954910903667147250315523296269437847054529166511189648213176517267471843819155835418905223404807556209453903634838570716682562450526485660854322498754184402741718580822050547894760113276019924242963134160594072934299702743242469010346040997860642975395659438299769990188205861309945590898886160965747076026262119492456871084475657143402084051315868211815651372895730573918357035704073866332379642058521104291121076524502256803160372903184190448302689492865305621310460668562469157130165622187388111257173074974270548697669057725058813437489474633042216863163370014495024378992585543485387229002256394842737432986907760226106972636063790459782958844402161301311793869592435984477493913110225048328458470528274488329840188520534199329094828951905578757222564640936255484582158767907295510103710377974723364767425657558260193306215504794234287112667662810083772203860234047747562235458826425845925058567491034901897252987038330567521392487389662234526796178574536927757611346260255852002272509028997569415001690294785092816186833926834294014293788274997601962110893802208212345094674292207887945848834616178608142499319742284740074541165655957257770722283396269326445172127223305842480648232716124458829215277936183661202373714652836014374096269202859125240108164280934555202783220938595937483420894902881887817595627776189860247978444406613257660054103656039735761654346244174837165353652091609013986073677071217521933880353113080051618527695459209535491960442207773227160069769093974965829237227416237924230186406707891386056164947807612171712808304222190351050657687638582812518277958155084239803728978685530749537151261262800003630844315476391510126486264596030931009037733298761086895199648118636994494500889347967628548306199028482963489412438212057577194312867971227771655344946196407560929680451464103627828609668621609623758536579412340030194832680933987634298064529096182717321806562485629230143569345761117941031627594128733705261011186267833667025833329836565983230126544211669863977685180195772812353108395787462128724683872660204332663121804683412405774812127644884826134727086076754494144336341803183887482567498371677536977211297019613970088051003512993330288443540703272233025383057546939548368772215445679663434152366048635293716549970394164722916509906602976919204504790860682242336027715467034851455225254045023829768943249657166412765533368153780541289324226165117683607693585497993020525538048204324087977418222468376740573786395217869430601898798932368157874379158810097085376583299219754668829233647157513241763911565221531198541496295148503700578717994218821908161775137501196893450667420083933996488965518099922783793935832591296852908646936203319735107629838728120382736340761422004215322737687530886366958923008548557548749986027340130509252041160134905618494410338971714293026440216328630562546183367892446868851145115382450975183204490057390668030578016829028971975387881255793673382260164493380273761841887485418409682952133230903892284716373333937805454476278149967260047258469210708212707790291816172221069123157216902828137049421178249151043834800019275274715501903135412159603106561406507455612070859639528918066829569644328342006398062144729161023407083364754171432060096001471675372439020487153942818969951170847487159697302463703874888313518045065996465601877249621546566520322182283762014301683127356182402490891865268326079890304234897739680062601871939577716027230386082255670400558753901563321798927508184118828364270343182393156462306925455342251511707805041010673652642100869577271915781698131918574068785656515496181396860198077348957424727746099565772287050228103360374558827203187392213453688065801021004294860087917147075986141432908107296300497195661101801253934846552807682542836707620985507728923287494347195980749030370514299456681544740139162508598654493893711279777178055865809225485652460282142384126310896055021854484615206277831579195182422559322486084658651951304075410795338442730138001484728504342122323279164636820560097173025831315298080585160268486543218289192671405455240281236464882785554601708665926854277838735172488811976154203540433092190592306647780569265367685610062316576334666106089071076213324579155424837743307089781272876677780650222628815245141848371417381810016882651542492283828069810273589338893115880091163177239820402288976238086403898064702682756004395766685954192526575857025238437758318680456330804702720474148042804211883132968804604777635059515412150521446105448673612329980968071669404723547426094857569579762833869978076315355404188071858400260995875557972770787136074966500900410481777408013345107451100206605196304993372987570331178449490201434329062273804475990404528089605549865988786140890212505254500265806552758881388922855763836040583001752415630706095944138278029736702200610811370722688841278040393557574267666668010888637804639128976101075246428651425830917518979601035595507320106389530313136463869551977012569379842053263094668181508103248895079887732103190980391508969539770747996065657766455620865708110636084905141884985478232980138141317864357233132635515440865303712656513196072892460447605684215261281366591178914344865639137167715459262882698175300722899259687093034818224886416450365117153217282547738701034457029000066039471679388370676542844074737180820263441500284158872452794039328415378141195675763375047850046961137083064167029770730041466536155104236096468002179614572340351984288919818401191888222446199368390737202571915629660974988844357646778145381859032157676224718024426947504234954738011834388082282679759521275325386051579636599856324172784374764943780876225460530818078765022572860875368552806645917553008504120452913319359502640996966475020021194164196322489954721828328418453349161725886694329970058015099543539314510722754032089466826392317928378089377402502860898951446918259165917455029100170866229146256094780747472672898878082504217676356255407799943784807861450085622050928672824902379897958355284574345323467366129072990146040337843354339319221209067760183946668901378660111809454888477387872644797468147996554278293387412625138409921176395461617088704932905321179102486443238624296781038564243144203070478218569377780763400395528811082324958808980855986455163558969638211585397284746159828707176387571449345670220445784849045489137941872103404750405070742440716006244068177007503606782490077531263055803579090365314292628614824984978906024723171747183533313111719997238669872069552911533544267824748328684884829808049384508224146518896912990077743943594013517327760371616444039077301530156728882304893163231198282945684805398259591414124916863985943435689990981292400327910032946705645527540485591068500223612053644308340055693392858444449636399920372061258209161929362470492879827145003582066497173250957419081924967957273064313045787541874955693152465893610986836564470432417373400390148864970100132540723966506762495980435796622826561872170043848931450876508774297661812820761550468264875314312819580066425449095706469720937138071030828336308169339814064823635746023665141218586463935707310188619315024502959381250995594255330182165466272253348546821327860614511148237223409676811188781630700748852750364876635489944826099043842083144656946073731429247327328082537618399704596793352684491009121395984297121697434046057605918450930063278978767975483862273295190974010033980908761590991970934819879992589468275180524335218654599687078810480709396707689326501138314132287029848669347137279239899335755894698322692462396770111694536198909657549933459514775441237570411635035628990700776411263405892027540617959445499147662139910683032392080792554101795816482484464222899003082387034080490728409134460339706201626065987338489985100360542725779767890710279239250945311738244318521499125391702354360984148152331891651327190397049617421777556139987918487737895861987968417438139116059625788619511854867468584330369450075799704712253802717356956377183486562602296018505474141180580854994551412945831519097775671931580094768503340573601215433790872653079642293570810834051355074684602932671840205869564773969996460055961563193197627148207444175341527411123005023041588245363015769803879093289640553724878460894254156138382064365014117032694232124136720279534528134753817184441145490163454692760575755988250979309247937004506100430980452450189842137405748972070082159780537782732017124391533072193220951397443545274710000157195290116933280212876955689442701963687913718469967584446031098669739723122515084820746303183657129066493902229597734098932544747711870404718093231743573247944930533527817430633275062844294528203959789783793795446026956100670099406160502027733269498740913683434918696879596878423037335946140946740751555156681201541728178967500239269772928999483667078322969525146664708974747289207441261559168425576785426281357070347895468457312052455990714886704280259492234995565322526386170178220300899403221907364008659909704694584774022970314463186196999536715456853759048518904148116531998874735948483658163798554193931690497234300626071635457726442460557249551905958175124318724291984510155280072373923170486657497963289030103850998076948451781595022747594227052732807837864551527891995957818465158905363368810072400498456534006052532741704017359016017230638699925791012871389411002818131375639856846278602195420583298184394046554964262941740266827932176442981629692685458372102681941649111535880567889546774567789339364467595420867664392807958093179628251821435729512743313524992792828940502313988331920618570135598937170706992048441520912175467824866616164252760495310817744836135409277434838502792997935014755390541862678716470087935882049236281843414535512960646338721227205695584670466954953818540369155007116345002545861296343067632394982286567205569206598487157151632907611830920722966134732460638011920903720346229479831738100204435101169343282557191731587653813965450088187873287697148884650129698750110686862082475005175238031923694362124807740189279954914412275825881659013854507851371221588541233003641724138677314350003126561270938572911236179491767749489907333314404612015416552848712527698410812133382657192143123471699100691065766538692344191739155500416652146109817101140887741506302849053139526740406066811141245160714390868490651380417018993471561405938616041248973943479606913128390808500298865830514887640843316592524308151363705301244436965107070245580475062715714493508137694869828154886081077250409922102915229772185150099617399771724613734595337139160176476435565701919199598025663395909422286621221692916543072195584943741315893192035916774758259807006265225623185639623842483122314445916554549306052069036248869584508367321117950223484313091815887561012483437202564622468666785809930840353879476115296566370678859475572553687919459815193198004103609137063414084032589958237011439371779980719513579282892114984719688098844105616524234911643576887982131627147940774446432029822990374774895037273803332076626824413907568732468612777033787715123385103169669520780491134134901976198931142547887239961587311312058705465421595599119320543929288324124633469392888379571165120274046810835020241291142799970586754712425062083566417876902324608487979741487412107247549862675745222240322729851479676440073953787791651867267313398236585946044832818838948754844666845115965569779276434213289780108469938911972531118251346247823028642892046920484584475109991328886566017885524855848885674888515731513678720077964708994426765129394990080498181757882188046950191676155521726046626267520349580377585509830850195544287091510504797880433764540414598572127795432588729997313119687706978857653440596941974913348270093579985564942465378851750939069816095163114692696466267533964337506135413060076926286182127370458670937650843316011281456077916452105156352017064460413661244592351942839028477561523837641167438706100477357552352345681724944682815361737538999849964600111617565930377294021207607276399287141201644051945420726355179763628490933075720309900597095186391997301706955621829463166474931311769858634698818850865224794836652469243203982537937134255048642931754190269222335702142414672972411650227665820017547426320213353503154605997748329750571379263265135362405726575007156320865021073679764765166517256262175579824110569867724409362150793409331865131981589081854435929905075146135803978401191217208288964097684228170754687885620601000275415101166307934268486542326853363331163713050000250765432656734287644746072645646376600499370564556176680885714042161853114135493867435983804882052681839870302772744197547139321496499232805817929201597002016759809505886659902118915052269433597321445633127194266468487705448127716495269603515311539897548402799409776635834947263591229759561790623616306401831304866845064012365530147435266893902966120506566491116279902678772339923964224797844435512480296342387083818766097511419148998949005592848346634271026430544376631435128710257452506992893753115194943585727464969687792346379544228200009478792077956192553249282383787483026366520973515543759806148027707893392706745750530176991369203917502803853679512777356412290019373244690197213149426899885243055549819988450798752574885272445160178506343897742415455339130329981926525080265451153650060468443862814865302562878461484413862681343923952422114046949768549100744520402529506908417755458444427088264426711944096729072047786429962654075069367208034577944419695240090532434263037629290917088029580556087007135913202797181716683142359451843499411028608878790166493584982707767218732558854972621885696554139174796762455249024668683501511904949089622570030693857361950510585436631125148876575614217319337532466713411038642751704740275016466913431632810256144605855257544630958924944061683132807593597817446109802223105705376498767014575469944785633926723077809240558824427816739731318615651066901688920658413392360923654182365030013060330811789899304925042433485839512072383814343598690516785612186839604845704924972865834162795120828165146214423206539888022397880005051572295686199801491727202042965891618004436578724409152338146902618933543721724107751221083091043832857714200286299447838466327837968203083574426579683016097210923153437926409145534597971756767088611218519742637720730735830996935049676685857265962506178946582745618969594246697823346503533690662951708685563171070401609636787746397513069136217774401257306572483128051034099915823317440483110771939835487430243309512510447136331160810693440361437989213403070120545267619471398476099827464874743710839702500502980731408542849796746008108711016131082713671073060496935024621031523735045454983918321705213392113755353794942493544576209433809273493740070979309308080431103177205063993217407838738200785372508473237831689959547825728437462766635055273597877669726298281272029150757002774311588747012835581012805399227939738581670359610191341271107732232732966070586328907070868410580063262043458134538908105568428460098581366034673746153516546953736174589969960335399037217112260412999335934893134795601175337824265251136586022259014934389661308831129388874593174144060192635908067635719833456374427085302463488143791507393505319268803875466722424534965627749612560948646470218190182468610867281984558288725857251502605350211234685270499021964337954054625463140538944920885787819767300560386991926390904286320466560180936342006499211337151777992186328588737103364918670907552881729086656677294219247734013164131432608043662201639918935539287464380019051924136399333855626209233088466442373047374924646898875134911319574018735551561166571677991801548386156690546838419628089318069827182742661524589072934495006525308413102326322119202477065218436874148373336168963886732583973576416049405439991975987466064258965198946698764849549357031426642147528347474878039405310450261852746922228009670442442687917357801406025816270501902950535645979598744144564647564865452414102837441462466056651253041978809618708493308013061265988008466878469169708399232662710432329102019341166127848367675047205841161964474272563088573979276574591079420430535758743676025770442039882823864327142900449541831018428665467529099215730828172276906809567676424032380103359450530427904345906515067046570650019726555703147144084039195411434904938907226372874180804810596391338209069403156084620781643004145194947219883617395930605521527546047428573556729612855712615961311131769503868750321902208572352582867226696743087845638306061329877319708242872964283504945380684185791470569263109783709012052643533002072405113886598633686975222239199909021644120718600892152418511365859717493412586324672803770712245761721889065668676249337063022219378397198818309013856333386081192272650997695499881361215058876299917395618835705121457227960318028285081614349146486435426701350981583653965750917669219866840498269062302584438466278947002931392625505322377524942053464497461228355687362936914700426765323767363985079204877165942691196894151259990719487735584854439959223928820895401549810897107110173402744137030540886484720873750828580587807172200723912881191810292308418419330846670564900781136240558236844743234734425651180949868441553742350449682741528208968625543229353167520483205645277105449803023703948545440928584656327742403811797248131712525065722180015837899923527516512465127281301248105055749099227779162830169592700958270568659168955289475902624240000720999892693243950352947941839070807380775509195470591786108410888390962948438665416054310285882067328902156354469631859010237324864873699825408147955712279791211843592078877393834805848029697050875413163197313489075782423025750522082187129377791565816497041032602069746533344056192776840952443470947644445860125172698176296865751832271039501347971341181929977972380818701057229904283230627546085081373773482815905924023337592886714907714140963903612755110716509931546396034720447850843761420950474685290939266579902222786268786270366525647770602616278683526931800457212871797304611178380260178440709512327162960985094622218088708256709506001360557918528260667127398107051419183490639889952817943788424143619181966228015366859827506506233315422053390469663284955412131004146943923071272467455715392178240542087527478242928555709999867595511175356040511003601821409420374401244175962262636592102709075829964749032426035261719075784664018534416367882598795306968920701150463669214466099732576352465266780806218117196176856854821109252563301730182874072787907509779929821381077558147018209711980099201596044077942182736638297231404878546310394001512019317856356657869962299966252904104430953338868346358663152264039697712963180231154504642609657266966156345916194813224316045913505325759678857320467042161955871870123195227721264822749265101114537660826840153244125304243876649867429808129124320953204246856223780135287513054907008239451119191677715894676090416518007688795133211606819056760992519803893486670621917568836308693773908476644335741533907666208832766001096787977666799850608248267706833635886101411973572519289479149872264136083398945957032701307429041234281593677630703387202592208870712778539261553876305007428181351098857156996063749368997517323216421168541426405086192709159327948030061553118180314384638028300497532998385632216972897128383677787633352015360152919605940227911344254535951644648398445066606098010294026711618524846070794902391557319770934335658544019236255488898138332129305624255232809205759664181729021704917109035605174056623426673432115853186610266135890986960768243435820994180786744727528708072567268561833649266664644085523606997585252894938508716241734613952666229099433886399396011508176203350086241776898711273664394695154994031246678274516858762462302780686852840257185262701090515797905163095581440884824121194238452053712191222966329218145454756324231780176666847110702746749671785682266941533185328961884859134202906906845707615322895410231333698362139909751139813177090649834018648780702593238740295418489455078137566666436650829321306911683094435550492445014008456277888526961880387969763818898190261433438366624322519032883320086309910990223829661708160787805896785709866752292962626429096065742540307179553217906135571595565793241497594693086934781797366402939134429109106725881293825010711107740149082510635199698493461620402712107123544227421834546558648266848336067513781345467875489698315083971631251825226772212661536100384855421307355432693299376336441116383312567991672887824799065938026207970935039084584197659204900593841442292871974485989572314116867363794053363970336204399572557727984835913176584088839759174578538069949596818892195090369329363901324291175939713593235418676424748100324259027562552868360456006822662120319729343258094264735388850632795391842442580335902511464512038195536162309215706419699447397655416730391678379370730838849888995871450046100396184540703863141169383277134203364100587060444710273361858059612058691485055686262784185707476950564050903131514376540864939879060386531026574085489128073076952472346874315441604023466904004720802476818959008842171946831036093801702894135573232539276040984009462945714754808357728965532374967756343368718667579691333139945472218878466671386079919509981517633616547555224721303124067961913144720265591837284811114421051099182180888175120602615505048010400841968233767870886718304552611187345285329849912476839481539654969724546873952760667138267026619183999936185038947852876599438990229055662880502315024383086926508112498372649161973734807202045226428739526355645581334706591654129965212931815985319956103935990339100088253182137105427615654421902998242655878184858503416673408198345746369163535630886815379982059903756600725117375130228711749145236916047377803609011718113178497331894183109153706740101591959389336274191409031713746772541100769302781152414337991467009926324829425800429880967719207602504044105582682310526568275327537224305939239713126508091857998067323008623635683992142944718603132045111040530350766224997896530457505852380988574608735969360621412254980541286279043129937558631938312205625453579925046699954623359411629572718977173319758059161058054698124729212237791878713380533091120879027811973328449618805750683350853233849547100864327299581752484261390679597445203261792390824717661264957359964104610850517251570459007599181352638092427131484207411440839428619372775632035995821674320422132192177434995092602455003665986954332000038573937647006756390343427309468100699520125880699883462267411371486235225106577821648423721757867608518314058189378318479480503761851444572085301582101821333025941566173620825974818873997418087451832382366295116173120114552574557509228916223616461693819520964907007667437161605440281700799616776896478255836810281979310951674852334727754975957882908703977187147694060640996431657784977842917429175061983761630240376107381725288700442391000541852496478344807125414955932795462591403159614947888824970292554880115422134354611283771017158214174818936600030050016849689765688824835831956437806517633769211743827420299671765672963478927281645800777040262770335592528562082762086492321485554717202516495396324168541116509959113058138436642850010260562113800342550801225116189462701872918830382350835793661974589092313712769556591640947901552384745219390192661204812027316680007021846217088363411502478566707793189309238198235370741827106715783537804999077089302538383263322426525163226120993962855000603946728951070990078880974542140544201976114079231308835520392714584178521085760858204090707966912446909109256560973760298902192054954724137759878757478670074571925056155114280768956118176648321220128222766435687270775747012361073822134187771939708712199350354437794492794919083083589985953839891056379675812277705506764484391803508410767696966948192027161573768756612574966190686417817558496202081528247695710210004116750794863007574715992294793247651805254190895438110672863760738268454918894917888822389209225660968753204260522499079826802136580812723359066598023060973887595871786784247931702456591362938276458247723239143169828042281601068339467131449075978399143959787334016979673553230901757471478387255196348988789353954087046426015878364550847797518816456810491121269024801149982311900324227821289594939036498334713488489922202689837965571520619570613768770947493751886474654342345883900567212417408233839696205946471895673878574689427971030009335364231306380977103535544789865393356663906344180684641704260357266413073203669863940475208076568019830156196176139458640245464867381617746860116355542468357450655347128675360527248027326330974269731612022263510913111526863890255922686613049388224040588598294948290717921759562439021768484766426015672745169471130481971087267369069765847242695791765307062567626143169729126027186339023024814199902313856985968087683885706497902769726136338343525176496894397437381565100310344033611175451833940307230567434769004499127508295528317291997807055486949369070676553415624636754510292774628938622986208599725396824086878046988243375097727882362141856788931579987835043931625561008051352460814367379477114216386034439213925432052484637676003155004090913369687238592529749292203569934108070997270906006334701709333926779371180385537637601814835697232308682040563748727131763514178266453854280624138195148332634420145857061125538651880356414311133381204005157929001679250324728588976984771044530647214404062990722616299103171725080083694421273440760434463649622753853289217353284852544133703159264916978195358281931631329576173171592992720171230552536279923346085950178624655186702651504959786120375226190406303265498875068725918469092567265359156002154997348540088415672607680300023093546581528678410929786309744435989821124172833469512185712148806546033035950200164491569464420833611276641442535479478581784001335734955029762950098342376067530522062846302070438563554140611421054308033710439436566328222973747423988783399130435425950301820717129348386520849381114382453030153185903929129148824801207000951861918287918919463307846053497459074979960419828277078725103445072727858914451834522110226070653522445188140040813301015064140169227102196706831499051980511647850753152135003795283118424719440311139270040981556428593299341685244779350446418868020162599067345334943342424865609209263202421272270144642148048332965466656190365784927675645173319034089320809631964582941425556847924854300834773611861865299636976573342298529654315591185197967838453891447707911913679552277204250417939326493419598385371759147243791299921234357757248288834476501903821947329726487958826778667451012753679054581941320835799123196875155782153648220590103693541403367566337040535350493205191858783172028438884894311576720609174338862387812001621441662062271829509558751635114248365131962566718917777406856278897689308386606106809592194017514395425469228336337273302321190976159284927979177667026697770412652140868896326635426453291538884753664627617493111896978002753291051681781227828320230883578090611851428124718370253048380825668830152404999285183110123877522183382915063652590854304210863827539945106323550990703801656351005674452120885411346209763041313910968673541171778278340102935597874798524345691773704723233205916013857212451790706823245857090233587210374648462016493593296953330201984577037345551764956916421350652290394584246277993797422129153022867327316883196846114639377574207176564994675647111208710059768630841262031305169021372745029817207165390142834466301421873195083687811875782864257451674064539904067510709784319010014190058074211920969911500000462097556895435209561616919853851684980795341039574917851294110860634221583144216002424886669810863811019648275395207233787288551794819479570365567364898235943873974907731364503018795300617793846314431143443587301939191844639601884810147831208224326613964368285362365096432769267100483789359378991116649777687509708732467887351830586002713369825530159867352776114350993107837279630696449815105258335229203757972103516574046413420696916474113380163738122508735588332248318530765982378813228140287847085774826375835245595660377211927286035953144489972844087007154121254014435028703689133405923789436348569701212585552407553173057930561837782872818866698977925037729395419476553945701986809476242638124513485773293396004832052906998000232536622158802231713881808582802098946270607353406986457404046537139471434487364491990120505610986665068514953154010667033655806183050674924494015304592944054054626511839123124206762473287833547938459506566701627981994336764543609587520353936599715665131862283361077660076363812460652557450170992775586830205392165837678641758791107469433635419424904777667620402782322761949877889254563532158924271489405583493786454879601234383658397974238376532516836685139389230434623660021742884289621076851395425237518060394213494001795448473485152242716586201797768241916177485581639951074974237186018900300222372019930716221274467660517152898033592797665837509142924517530649227452090653607642114146320898307559221741096634043107314877019830186388247148792493912534711432346328334911740027512151501888404019544842037776883298706984611082457875180861356000520885892234636433926146451696801040765322360832313454446366501230791511760676977316830431800957491431498988787697702647182657699377488613825709253737567417099142903111904059776386948824839266246926687953484391380433285451542088606976055085908907637945883098469614687535296864354932811380625699313903585004625320728618210291704830632341537788515833024409698673305942476535855029554033430872326140554949380873684732958639970563293846631398737875201240508563536793700075357300800993709778333144482456458547827712268169080806318192076875609919415010235212829415816268288658820094946414871952294556459567467164736536792845985258256024318755540581775465996910455261963596539618652717758424466003233355499735248324324735624937700667965614062038304628062006602845732798836493631884105202568831579497439840940810940140354177172572264807907813096347842427415217467696921454353523804824930406144385285148980380195263933416792705986743276189270344538218175045564806538219902501359495422100633392465727429336901583225710876080554891036193589955170222899670420067938633651300835221140055910909989408479637702358908340172558008933771105333044385771977465873333565339213164521265403737166149441722946403594267883976549953749101333550713151475617682572474528735585864880714058124313522819664966284906306327193480094828282259229776824870302243367621332249084219229362381775774075878963083593283845778024850609702902405441590014808798852080650797921939979216670994900962944499398160727132076939369142400200646196031292779742822376146617262334227781150312324506462596190957163458712445520033645034852442219291762644299407097918615009705199764957629376719804507361493739824588279425450232676854236710963751011275174592697520127944978372143224330981460010829059579188363667433985490039411015590283692988060331379885233866086190328835845327127318304756351589403720906415691638499062342310077685541539111101583261863969670606023169137534736805117080957883369389934373682579088139957503916657957330764929618579336038575751472089049687771041915829033565717852374430857799303450754536685494217376826462092726303395356385623782245415107046503411238262963301512888153660273313560645891621739213525855610588786738791489759744518302790910904533558738407488734408445012532244803818382157345721465463286705804351728814206931923204750936907431057005610424068140839135131752874171402327273204958784233757488420570378815540149365056147927786345952788329603980921591544906199475995074439074559106849930379781050209061245563535275342870249822505237153028689339708334055744649799587486503771546952637451123333678220554522637355850713372016409213190673806757743213149243756131697594358358073662953908808831399952506357921001486381776607766862005269520442345778228991418768462832553197716452936010406451154828993132433265458780012688649294412781898459679711586628523520487497862773265538694422887342860958952605528943691445137864054195007228688960563478283531642654342483365923886218216627838890412980040083307019186638901497851299516363601605399774188835209706967063601599894686224320869634594254707517388855768009669066676804838865799424858550214148440634006331818971930332886446495118465653980467043010288051732862797246082112327145803647769368242798457081904420893307738766060441566613547507155980541555205829312834267932008121137354548125447517646492248254353264392891887866380884925624414190462316677331438405753268395223213442807087813082912062297338292504034955544732876528044550585071748821044835336621295697794012572599462236956265470800417953540110244220399534035588442961311246804389214082961104690090876089660953044969719823658282301732106958855571804151142395505383978700040591066442340998224987625717056237253426102468058955023973083110673939244532892284916179740544342243872041020489371671420858037721956252401847504408702768368683599911020874903131548666721552410254082368668874515740886311670869573990196290376305937283069565844460476047067730047522680798964635133402262258803214028761917276116522285603565656299307800557479011192599170685758854970425797635630888985683489961148722922533647361091980264496474674610512247926391521752676018560231598769213710635985103865758737687015198061157960513981944937268034834384704480461845058146029906261255324595841246935059141009466552931705374962405335656856202867649159858331926728548935185107235224018672232398845130745270506936311925988623823080680679804726750429755317992875522886719202155517290785148699010906513985755781628097858531081732133125591782251874945781318229373053181939729985163260412555717677276597419704068532251115310672086886439826613049698611127941631876972619886722585425945643072723537275365484148566199060118921547976192383813511539350753283847283757194163917165031163608286480091090211516374736937026579113372999039693056806970295168548929904116798270073193473722744476611522024818665129459548973191813787851635498441121423479655936704206278540095301459128825377320752979385676777879393690991680345854463455264501940063202501791801557797253176831603357835682004517072413685027395110500060595529859696451030556128253223020644205745415823830381150670753847570715684903011672609560710483145141168471060418228476130127488462844028119305496364854991876324216284327728000454068388029373149420700696034035537393640304197224850981077406989099316557607543732692448674920303619483006133780704431547139828626275965517555812124939513164607008515537504731862139208408340602083647457371176209390716764138884690711889507052784889407295095168695586607540706709700948486218629432307290147629173047921962411659229164670963205256525861590374270820215079043228659728380775123809871599862971985563184671263680875606613295167459321867553153007663803252782953281163419873790605011771222213209674675923288433295145187194571398528007231968380880767195122054734156861141995815047187450865003154487741999885027345578061472244761577426365303374679027922809445083205934971057894309734078832381636291083071139774075924803133316801495195029107736971582172983028927224624638944309357928714432734613856007647206852991858892503644717780889415567649387144381310599932231418844373967753698455816712400380283524436921045163083228468824465759468140547679657042912927095712444118490116421839175567947942840914041894903951875961371602757908079015516889659119477884634635185182428850657662185559914416311464375980511566217614624396642107728862569670645550665899029381663709501352477850771849000818393802282263135866313047340649939915723815634668564633572599695101089761185042389392021425789285141099486057794317344845304332497647941533762081493066125956024399765000019993426312565035150142685182636520219365662858578259782334082914248645261702460554892842612122071297879637525723043186516742567156327403543311659088282529315940918636937818139978906209566998766897648265683247561181780521276869785927443756913406366915043439020802341447265730376502753970733220271545386541262270718551704211004992260075100048297104652213834321930311463768051569056590898533174949648689973292098610619989447517344023268647450833704775924956882616971900446299190948256699149565380276492983702013505402961606870185820890319202334806803298957541370930916791380393217418278459213113907660197084934905199095195055965617717138856574820920703807615384728496436332144070507676780659088136767722311045270551143961520610013240726540276402882253929837840895096840794054557046229187676824552971109242582138488450173627033569026047071996794324602353706368486615322770174121003497474159620058727268246027562531490984527843641204592868961269092023974113614820882948088655030266892864141983679265937238872301145024513725979603503278552448688200350418306163913677084623576574490673080298862549279412978074890429572475226695741450200440448007569721465344765991193442088422498214846003292611141611297084675543539756923299692773056878453679649585339580863647417024610622340181298750805003802779723927402243046434630784912228258582712719917156287313556509817280675601874234977527692519013386901174275258633225373874199029443331040711493310241904841997764391140216053248774178570470798831656940667490125213561969921323535066524683651586808362479779427471595232969305005006805152605384477585680145889984660923117123609971594735368619410010723256882149700061836608927351410115376211144355351647524059898499133094205185928702594245314561233708454870157460564390072130372305358765665323245929308135664321620090161052410177786668885506336943865394343416682862684719405906891700806941356195335682802343899222553421591820244135340313885229467128473488197608435383343215284437155786761741945382440986994534344957280993340913449822573635714589881084912832154097321812571177542747287007856093278581117191297050526006457175342722517905114335758526056971597243087923498498651527275319531351407071357013202088153634303121948505611038335392941081987308786379187092049885166385085839635774992288485592840718895509466631349129801460439241267010578266087952450926697310582566570956971757314894808284900448724462013413047621193132830015699355431681205453306814705208012394416551209495584244834273366913101784566949498238759999786275752038278941611870523873697538935226983339086621350133127028289587906475900305574555135264240523657620123543797688583950424347803506315817805304474345192719145172510847240827377939890606236122657385298703345780068287719992357443607835630104163634317662339876960046448638094983607241259719901719181935700176521657195772966473315497842009748854015687071403716791758973569954408162319653344400343171998966985919446655415180406891468065703062803709321598182627664260028767590081079465346750002764052577071318353369762382165107557671616515736954364337127195351914056611319946139405256972589100532243283224736584446420709419985943077147754172168870951102896391734781158688639800939876429359649125017596964932522788754119762028218947842671365432208166609509838913738430012380652090707555550860499603062532148477235434494440281542763700191882326262652342277750983440121236728975745727345298184031128307590406159131511941544544286939026301563359660257964210660233322476636488249816746057006595192499439306411246041885759028728278360671309218778759377434932789937018216186272165880568353489765462253869358515475800302121743105937478607653778747923152048817068344333229321435934271338012965019038644313585025711702410879113276784544653179667115660178599328889880507992966548184285355496264727642173404173348149258873466803052911795140017689866435927772732708307606111870390375939639178980800316815624272743393491360217602815449751095199680443471959714039501338872041316313172620982497824529197504840868670538648140349252897374128400398376032038018764789625204270324772432627912383422295028076096574447278813610018333321561022130279703583151112407573677607356438420965988680606540055026443623283331588625980937370213927557444140216436902895943027234278247607230057265063651592910167513055127158831311525293284071772204092210855913789702301710613755481972583785548865250953426747717867640491590152171084458908245439197515122366775808763931138823863085935609423870427520927166751192452959617364121996077441720604677303601614993910709672024839945998133483441720688069346878244031381458135915050136741803747673825696572784326604835849606995472244191005256646318655735269741220621636141357853974132342767739314407755267870883634951415438103269215244743020826057913138176745936507725903473225994634322819225101901614200144878927447821444225920254715610098688670264225653179864087358268551655973221815448889180481512462892584708303926003929790737634827771085680132832058407218441597602749028076697638439087830417285045803630830727183690181675699434858275893691215198156770332359869214286035385360507593341063798844475929408526713113386713533957895311161726503907407427988253297277253288108649315287608759044121913593422106696330258820562075867406455132316066386371241513021442241956752188764286577419525476064556484546547706934347729517228782087224443135580544365685159812385119625298285463442398097548633841002985837185304093871970267238847670223413369072441257147080068521359783693864721379547424193291904010385640744512322876465571582594348683322617055240231318241449438793688270330880933856653246113676670030016354641611227683269351596404147769779657504403876862832215910941847416449803508670998410567847008790547264272571939635657291132622172483783178171287727894504770482885553951827405627107740758111650885407328004887133002625692306909616758171900412713512987211062448168549244810089625095955497724102524429557615243468438898822922184069431425206189130452663757002892849847064142241857893146473328348473137802061375922486272214910448493241474992310490156101378131521659613187185030210624129407851351818411617355254911253102221398446263346807293565134172998551398651526788384564754367030752907716449051217488619115717620042413653045743431044773200422974196853105268200102329362057983584900927845841697053914322756924904572232505037031186199938688843756313068101970049910223510824789924520594718775504298201618939717883461084985933949125632724530399038319920598261957829019241158670441695754397880593888321045276134274006389159815995783518817316526454126044520468734491380773001602392932124046605876462538337748199065359116226883513188924522025232863527099255636048844896672620735215410168725760493781469486773563652090708639801277651780790683656076249090574480176001082875154242939638685182161903466382818380687421042263926126913531561578068984939584234424071851512371964506769694853643747637451754147015481823582015058058788213169799924595982683054984789846242458435178928691862389910870798060551861735874195151149689226938310548603527239814247099758360384378446046339565660710712542979753938957489019265307031603115232269844711598146599604889060579522136150147484522485952643890034985109382455440323965450385811353889594960935431328176394623730616800676876436406259635343399745508048839677537744503287560873385293161215331870812587825666857545602154691983377649945277104020395070769091212317322658897663007034686995043973062764093469869619950760984899346948440490720326152000549583405198651810761834734584816323888088154552821862453748729593498634972639643425911997622181006288848663137748266467569529211928274104266027105071778764673802661489318105113520690080062082391460196054361270273048761787587842407919990956493429113909916647608336658590982178216688650748904798397947686545396101401702630990275876347754482859132631080169442326897431105831986306335146474052683983461949529213882793983625164263078388743752671756006956522328538497649221601973472725835264291838484327517640829338353444875689932362781857823346765857822156322019985088510649935160837328894651751918477569164775694886167234162488118372405150085198506227087984391252349850349048948304953259555562466932103399068527430063836231134951186860162245802597711562447160185072268899246510976478019422035056207057157685750546907769017133387752283789639098246273341686088087419882551098760778042890461867167476303925422017353123186366484681735223812947100581028478408689357877392622872040656989333935266390872545418307101940151947245896961047393644952833027842183195755448177777376333265464592738567851731783376906343951775736694881593763430306605614098552269818650576472354285825856139814492120760467800160109519456856227601193000993735782057073213783848200276234952444362134729882072105483662361968556212207864869119824404069345905390988890348375790918778732272324211062540265486535655462422966392900240666086354155285557908952570047517529229599679730371985588591177384652696803789926737705791592681527420603288548441513270146325951115293383199013342345337054555198959372606954006227614287977800904794772858341014479646723960867007888269587629288140074744114421914979728435886956146491282657508367743803164959908715679015239176116607233738090297086262586999275496129106116227523125303288842384948416122350963931325854633981348823874621687342596692223887086250041809268650199822979297580152172927786213370062391231472708026391638844036667778901634230033261360642723864244842842402565161884089216958100054444461403141742263774145073953912846091901074079589769932633401417353790811201866108634489152814410605357536500708135385728168574646662826359620590155971308039776234508101100999171403952911519036874598930488831424493992827594284300381579012976544194072748054603536317818161479439820020534828840116779662789776128547978872935717316111484379237309914509180726374635741320833952569197800730960291670824752604333272043128317866173125277969862158895540699319640797707183998735516427783022096004883332273470456640811125471031006459046826499516152605876241287148203134689731844650028791977165020713919433038133010673429636053905286335813017516301914072289392002843861613693658120999123986252576981413276566671095075545751229608876164681765010403060273615540049840544584167108039284198830228076794071118138429560690587011008572327734220943349347794606809300448270379199702692897062073593503562995796917747393183083438454891273792030220617213379337689798894923709643064891561383769406071084059328748529481244116539999985367437322637759262856833692622824101801091173610095114392972988241763952878286288594322748282399422897009030935562457682385234521467737434072177076234216596470423348803835785643936664214578959996905665980758585416292630133815273337777818995458691931550592707666621964089192807886006690666127127053927300221937845852502830719840024357342097890982760575304422816515677731961511066200427563335079681611356748606513564580825430686371157767107192754146754468089772733497929380140120426708545776256150596967211025784211834839547123763238737808275107048242475515185985515818527949986999233053584362505982547884611150777097013379242602938255440296087574527577380519481463942497771258831611321079943683435874212764488778349616322800384882204019694144121010160296745896432447063784141123783767844226212031572276039724231986849713567288508776138510117106295206759291994928720674824865562430743482586709231402350949261760881905955316875974744691860480340880916086018529599643164439068728180024231429615805700743436559724370441108575652751472414274054031917477709018976776841278756637496055306433685120741106064661346059926800564724313622580147799224526660902863425841057895719844975630001091108451161112550793145782350076665119516968304049824663497133536628176467113562484405380528885238168120498866772299647657486667184098208107873787668393771369563935951616715069112214510718944551743178755656598652189982444083563044117488759268949737073901312837998070252050784692147446512161319641343251385788060047037769243559916736472180787798398227919767021020649917055546448793983110872043877587471933245786527889160687331786859110852670959743140459247762436203069059154757753739424284973588069078481894260801598355609702905588644657494087578127588692768923014466188046824607635920139298825588449850457620271978418658545849669674114173378166691001152229942706653201352207875083072035339196978123173414622035487051030996710960543445773926366918480848888903194422787890169968245580306798481738652660937829338254881660650858892602438022329855887739749380757509413609421222644763290317254606301363354014635273637318819741143018163951499123359061074241144607666120792862122012740953776901661402574361387436925012608077540168748956249120691676255338727394364683488245311711190013754841245907531896897068288062809728344737211458609820051528493710531498250960694364152363673284887458656747392567012241852334941588388027060952514959013341731804651643478452057200802053849087541103947623260042274871423035367202914814254051042155918115844854440029545525401541315272245169275540376879966088545286603511813875232061199930505724027017871572334982397789605735835206053977836819713494749066520876893222098207867884746468235259361427906555985676553956062995822545859568202024281108631392073817667729990524991154605084519187048414359222243016681135282993233774103723561502727261577779192262365953086801356086282624127016071308744789308356994348521375550225086601667135963711000231468114058146490631331055007276489304465207095898364969267453383070368055929112709828005385438126978190091257174672515965600016754032044765413355802306771142425282763162190939796262231503548168384099624391503944286314402413728800432788551981697840353146223906649576097246036660724054633666774509435300202620870263118238652596056443606373024715043848952407343202185955088044310682653815976171440966268618179213133222844350572016146083137765589150541715936521280254668081897837275178531085923676833001060210417125917931220107577048940613805321712952389498833568742912523824486059136354565532066919481815637844877447086662571494979012363080119451944487215303620518411143456275517478256220964490537265084830652002991726395827049812141506725017121758066438103533873011450148213632302045365667190984434691625283856382530986837277417008026103717230494177528926726234932162131832432079117078660330616529579994801013266914790183468626444476031043618772214448685149283421532233799949886466332657654544165029202354803952495688726774907916379938181108944687104076108151382242170899933182908010715314847208575501499087926978252869347368435768739101050207525796077746868192088456145922872113289791498863848652191352213629566676101398771090088052726932209633585761957748842976659010197589176927733562860670103165997676331338029747286710873312205463124013869167589142153742974981959848664898869494451051604669404236889994333548517556190105599730893432052228238429650258489141133461676879306857165600058778820745031292807396560385574367531260586808513923768388631117682903184867986391921677010601404833391828631066316981540209993747278696935711678347663776549136762939913778578819455056686426814708550630694976287404029659626517235083714499524931608761225624282502092387272822821312899643167342352383253606165213060821320561491960212171234780862753892814080202438327791856324964726856461235880497840329255107075248974013049213861577938340838563401658818300913351806943918375349965619113131669060905390678726989751027692075005468937546977451375272308450695052225712180517769632811587192584046089493225598255256846170337974641143119588753982714845713449088492378947717992517248132544253189162153622121471328583798770639540259185268878185765143812986193009610470007598156292432694839459608969604572607348135504602997270642187206575404175052164565165786940243923028055251447214425790949548196151860647211783040891479789917823917878864917738504756402683697665774632109790795664014447619960663212199787962514850061332849617388775638615810744634422675245327372422238073413017973600218022777043835655657717777209140819508670418058490364644162580808687704682078520564255135415433838963338024126264086988721879512505976829272447122064378231199486361660383222686849457706494121843719634572272349628873491002488965034332875847188436384382224760382425478001268081870557697250579629197286847497049083924966116997923773497183025698897319464024344770615682427766496626150244877169157949427017775934944571265565881600863823944859373908658213493263106458908803540179014576032449608809266568871125504813772628255494480097445412168177121406627065199783946582426755864907516916532018265090978713197511748456892947458952763658070380315622279618010008213036063973135285709997527024232439579521069823254490590201622693906996593842419001286540385704621742546072838280550426923653475258030740602323443871120684565780237503665045294769264799608557546046461780477808173505688101991648356135826002537930386927384587402095416051947720070847932598694033007767693309242491201556788111819361313547163361523304580714420230034783203660753261015604338296005109503810184268502627030821859619417033464073017116625919985584379559782032564068535828962463413121222558989750898426165828447110028244821949660364252754662684397454022730954265711010394889170900187932637241906369250691013993201945847270577572532743900008036899208057733270665722313559617569175819335078049374778350952309517248516669973428430327074516960223525286628851629990544679610198193367594538384620070867804730375328979234457241823998130838564792473509966767215652779718821919403868220695887392838126057531762313092611071383049495920801386752860403506121438604433432530360499767403695663282783075277693299747159684065448227223672058921296682922772619183951778877352405393870087946783036348863015994163281700631361141427493504074800212083262401964485049545592736829337822107584469183201546834512350318748384655331715149436496788284788982084501389948918432698983013793632290784569003067446622159053464701952842267798687767667188826442784651203101589855059026920977287049743420126864670553196939009357015665844125077769301343201186816721771557573922934322355220056754700490912595183385167441120157019781948708523876692843727138477474961126305735795475996185517367864314947471403992555664180779790909704509102324666397430206666814463241909626607566196687414936511636826961053063357218266614782886757983555216167497521849789047913316044962623097852709119777363135169800144293612449168403687317138841240469337180669183553259379801194636628272323777523153273137711658336583766652982674593338796372392963285406777840398438008537045998887865456058817762291329639154369447694042646900925771779618188511608897069906916847081134071149421481120448821828940048652571145595979395462975631029229335264109420130373754026023985407190877261017719532433575682086075350628754826211307058567554538323251705817279125649948187354597194041523946739250561686226525223402910118201706233514270754098038331808470542339466514542443965116429718314771351798549546070780367602712146395337415607329147598055063403468784202450266364781165577597538898792599101507054181604438716332003220685002494602189438313639637866896061522533935824466681437820145903753202052647760119985125763674099238049575063597858131456238804159509653596275596206845561699907108591151205375335604001310517147459483582696280019366177733404050177079687026070441328762747409899304494632736981831950549090445130471379807517566270788993924432317394532304954991777217609920823962356710523472088853940305950442047718291324817650151233217208574242459509197717854965562824532630554189286955524132294204867255423651434963407669711014610180865050403484915508533254541911176841548222746831026616837206539247117051195026326834375191250189795911248476253538635416322637393385460263987250448986758018833942166089011320404110387192413295180198839915298826724614165138572857222533911506412744079667005133368548545230255394215472363004417763492520141357425659750748100343386992699824039464621631437395796215799884574600243981932156951655103739358063465682500997093772195011171601867379567185397493902693837028365765551604772870281467851042349979795675633898802300588607357526994097375148040502879007836536870070003901545157758004407003547076129141881142839749404104619408313500514571755504957399429554984031376238404927835428661049590054285161650350803731351786893603427543894255088903681333673327038533844154288732700268846632803227373819561170050023246145671026714807529825329072643470290746509522574359812545274762694937646634954820807335486856138958374181215738981632265320324560714102535467821509656216164532307082439325221146851378493404194126662611994759023836762853679943780384941901336934961101051769168332148696335443638551288236141235170576716764687336977488501329577429074964056840880329750586537762030385385504204605057978140196068814469344332905708384900565080754985981383911932380274471059974833511016097411908886604571558462564935610487798864615502682000697271807356340064223412028781457959938826492439177374789553295163663964050349624691580968068858293142135976095900756240460225557913477375557223101806508387791122785096679509836522462385415914445889067165497434861779123572821673649736359714229837855042102465398483430721476936882443007249199245319738211705753347031145475694366476014531578639656577106852308422851173089590078904167182518105037536706106405937095276979701117770523220234997303275306902217840332224246802708486469527728087830988635351396168419313478518841765801283467868453429076397583708593529492707219527892806937010488363794845635789408524587701446616996891316999219293316128421150390526672525261977563840683804263115572544875827264459361985731531285073025369210236436314598198626241326693515095603357332560134890713055196271861394636560781922030570272938442568934450094750488284769609025657312753723195887496222490071896314882056456449034872023893038755326250472691792926376193094667299880501880677020156937204971667158379389486248711161621925863387629813844626811802021810758811943093952902356065348359546165814597335219931012354437277355103029651049148859112392841912102750100092707303198639264235022155998780789211351680287933151193758104058710709015271637359803475736602510982544750771123924906857589297978779116269646610473640300426925910710249844278056058094347531591618792006578677296301359584639596849590868255607083214107730691862218795184338434959377615024296662381900833346585008451046844113055873879747449261432992492653336355446204611365951619031287406473711094926167752057125419595007947058869887218454127878994448958483137992190292522732266861879666690671883708332716455673490502359869149844407038033025491122866256941763603890953151419313815457105667445139845896551703875243293859341940370271383471505555195415242399194024895324736260532651523427943283266398187815836987732476882704590424135256899144586909090349198547354598083556577117892952115730408848068167664412406141680460952791634955281563855896700557233268393773012949393365508961923637895676871127033953419838926669096313005582433086319935964368690242931148851629987632792137656024372006525916213944214313865718704954014613090621401342215832208783545284701181746841027700857855866530820235237149609879397979116637315582918186842484842322469465485629741105153475756551080020472924120093618739168204278266287671499460947803470998062188809051224336542917784852711877515782581773010052633516933765536295199292775338517420381392008833981275556057602332766612169573279590557878350460866168210809752358042577350182945200224277187028799986762198524564220247800823925976291890665621069226950390913805091356736489048650189299982739392068436385849222646484510792969944725329832832080486528212135618931403673445773014388575777809239750545167664311720947426548422501294683568062623072279788615680146341923248870611227098167689508247598558826298871805018540454338457421039308756692702103176823021823491793506448539771152428936805158854983239416990197024672480563154390305944599987226641085100572898801144726944691408247324621512194888166773946584053886815231643953632403348757128654985224882305104654520724617310904384413994375964749837958496307949089896329226774665070636820080422943829460404068193103035407204921056258540557414251303516724596355364484818516440420776538084377856645980116190542450764410924469635024654257754993489216403733915688573184423787011894835968903020196263314125921724675680052929756681281359487619072781173597020679489347333100686000351910030707404346554708847585467505681335524356246853031743492044072003812975309116669782032061056514557713055156544667450464994550038642301268903928527993993092884228815831284016182331472284761294832756944698697291774519934225206493318468554083879689980891422995942146212645708761810126276484566702777933316351338328713177702764836322856398056066104659853070165888457975506833205357319211464518135542830689050649847152655960133002773476156393143146941179169405830548131843630421829459371112052883283957288778381570791579352903008114123818792262212984814749806540848379375357880705990851341906414689106392945008719588690426049699982762905658258704374376190068662042807502764460384427266780912770798191125967350975180420720150958839531866208125416148689003776480382115892511411116770624273288928799409411938496432439961207044524825656478930418943530169272858324299072908238185238437557363531207736535667374636373051587397867470556312801333375334226644375764690135097033442030921247727645408660029010408094337208953040931713249627551849919866070000579565648830042528838624835415245631358474496218587217332158375584303447777793790837507381269196633270428798033635987551617734416430779483401310024420640451000098457973029074334454972507242339353115099306863228728249082520859861875504154699568884683798251984672543218895222011903712735884484441549838282097899830090336536481608828386581957603290652994416275160838235652554131888217837831288696419599622223903261002095313597412423520414027802934681824877751668300985555326666560164541913045854019086222040189480350693394130419321023588872700417847413046759069395747007590864919339774766650701305087332034527907668948078688636101106816675944178747951935423526207076468594222765812701967194427803322587516413608744155866086972350627928622239805008436416391917212878847933436883832269666407946828988581487746759724322078339823498598070168228275987768788726017226035474099123771053541463460513033051251451386677346852604148279990387348227990805485650725405096021128828781265241047228361901012095968306386600381768810156630337021116828041509571733561748280307210854341321009205665715980831650346702243652816318622323851876915909827597440082996931461750756959015035681045391407243406227312563736396676831165812722492896927894085662702469834221892919701018183821762350124003345300942649519516381117849698126288654882355845444619719194409090248884550293794971059300212593753223689166266168343767796235078049714005770961522722302923409963585934018115366085509038392486479287258747037400363239348838689752194575770464314588829105040112648372109811808934068300733115088766163837277902942505046108696876362811268816295824258683068953747975065873429873643946673790293598257806407937852381611558227984313279370708903702871841851675661709332335730850368923922148703686311645989204343561962925321984863973328862385731367376956807310362470510011573484254524715921973196800840901752172892061136485922236061045665274188546542902775009124070886712261002340781816311960691269068138020290498542239368192400621021867597308834382198173096946816130054909710550713240164768838007371327609403240891786790896144698154441937125342336193098211628097435922330036993428930143434462920141384340025804377741010123262238945011969020876125697241662071194695592448349061994863836667537135554981048241822445914733904465336014655619083044124053712264825543737698890510332578965504474143549154080141376236418053029894575787166563112525961468351556791396070489622898126184372914421622640055453360648134136425249963369443066927010847537274665692308725623956365832022849830203453406589910904841062317258884636615655790160090657397890579340133175897268984705692886692262485222474177368182807543669296005154460940787537072003797280813051706086789224054782250508172831547594979675421644960606924226798325350896773459173757575295665433224621590577938580835374487523284652419200283394112930496764279154589417904811186766273053730572172514886350972357736360672015660617126379143036925416211346352365496335549647240780441091304831152707542688119456523583234869628518001787911288581647771476336891965523642128133253503628107940959970965862182033720135982287206478743355912410889991597637607635865639860963044517117099244705917695323588960745636157916252021708604984154609568596976870511107113997325439928599075596676589138675811234335107167487592165539831516978238100651989423187238314924284745755917304579278208713506155927074497533308708244043664278020473136107824756582702964543842752539815238259485640707082161093916541369893451067784735855720767749840447542473105505928218463276523296871555292980963195185909132820205435089086468689596416313149992254183094810334513276399668162702233641604615304888070177777959033806965026688632660757821295783292810691362135941702759832500747067032127306271246303396460552024151609995869122794236476796580656814002801104021128109597417981617990376999312497197915671572037861250488196450200294852113205809916281347559517475656667776323198968268484691799485631518795083674095676969327688474948270855333679122583425392686442225933687252596005134740464869270124664135372273329601653046390728328867106881937111465639653505685357174341505155738096870016738459183709062983020547922100427887711159287546347253203128134602700122937453095398673990649104233103440702930790148874593152583870216196388471995834320939641352991051160573133767537916513983708078246488456827114667920967682393068309117096371641577434364817210049332542667978646880396242028174511368642599820626775346572529850105830585872929261583550029052848436048141498960700807044170596909004997858682709114549980878189681607058344020315851052673953146098259037550522986115311584417876295145889209431430795883164330809412655798545932278278460058444420453289793967488009651615205078236610096147348828747129736108290711441895621934363804150729407935093596985857562205634157782935545175659293051880197163337365736991338117155006513521086777483673202082779120735636998462416277976303601311526403071797279252862564297566641668614951123230003709839975877556562335593147487590541359751082139671115803216377844552356317921987818885163353487803191641861237714653238060079575296961696415989333225846263613375226080450198946602309444272183831346783476377795625320473441496656973011865861876293814330490911007438608141462527120111667253022984438140439498080701998137733139237159645318539482033178052991158026654586221985263960116083936633713767132700255477473931580879246470622571243454177189873368582074636033798751593634702193542781670111192173769958015373510350540141012404146392462798576045635467797946877921052557084356661113485407411265674861210376034655687549921432246884355938446926108578797346665711138549183314106691919137885722531048587366906605278226789227859784209868211214605394872317416924225253807890803180027243797960373713451079491136682191259887662600893829211004599514866628700871480657395692904665960401883178820242453196446069393298930132527154986151072492193148142310451822530061052464892099804518758605780510713624011529332066815259219852538677420307745980962575302302392314635248696780879725341529700279675148568299611289231302199785529095377730401772460310531291117057752764856717322231515577529892717201633019522382044135365388834611263658784839588815088206911518909951069291754558041021025363114646102214188892167959920308769174126133803645085495409065000018578087987233114604750943486544059194699360868473531771893616227177496217030773696717058267376723753603367198079639612105069641859785917046541769598933556185185085987508971772252361736297055406390921179309230263477021083986557795799958148290164221693150897715099496704962451110913426546714395116546186303280466150810232851427990766868007223859161626740308032381531157122465516587323838789102018129697181699865723018243468056393527377304822491250221393552319916931750967881458146512480364435141113481677199064506697247848593043283338201800427101626944184498231093937068237486461899951732081047503534362731792027733323298101153899541062308856808611345106153282275892287505145192504301059145405643757472155983483370076781560055719329000767737746464418579728312142835954426767248885779360588934687933294828777746646067071775378440516129805937953529587311657701379802780109492474757905243072704062034222225865774833190455142845033497147781540289106080005254639049336982670864737087806533840195898592366117412933160973034294511432872191038831643850726970924275668533386960574019461750402253333124346158227315389909927038153883230273635059445908509785900173579160824613540907159141886568411282480790075682001620107652220386934373725506264894214914768721162062151230006884576887579646904177028278812235591331360051576537129788048657157556706726553387960199913172963439485394250972837735184177652386334127083944537729503291802987940614956520535602615403672050905835328960068578566132109669179922831639908665792849768259894912690785364067633972266726810227144227023442196286574722659879198323973539623751848687931637746172692184184399191348535449746182863357177759554946059685898121954940646874983315483304099910653562006609346874911358254962176110460839885972042871673829514692612662135403487684961774990924596125143592166801473811020962026474155295536101746425220556427217123281559980262822552219014639468162420364373512741347411027347971985355976153034012287589065335706533010033635027479869331645577915559567489692280091864050851804149432213296595367536466221931787370966267505337223413251172369284851215170238200585040605449342708867530543834625842248907742653320886185289003475033076999373468386826690719940208711556822920026594376825570474368888729312003622697857148817456361527086107027616435866990845002192978767118146106080258970113387325103081056332037349459215435472449196015102116800195697733639163020187901290529702197699034248902077458770934675526246059432117081454013769959173962796695733166850327617191936670798030692342663067724641531269550270687962356728047434611261043966570491715510518468149431236308950838787787963411541462288389139449132396665707913989973487547448883065624567666207598644479066408058182668364831640373095331072687943972954115243735477906596612573492564637056924030817114027144324032372384146029579861692904204995477087445967337039021741314688922204689447943414465149013632905193271251960645462775289895531377042629023646300486563011393453526835390919487618379237178498097622329046961956224811860718005123011768626634787488576705249929763525442845309020554063784100438306486013396977042703168730239960939400420519753189025316637431488404583356094985450754524389057435780788714244587763071184700252587265577929531629886053281643638591889179716615316852791526859625317846437086205706539900724365473767262556931076329810965652210260352855536074416940523795440540719313951994325694446392880099864570149770528102608509840522131554671882728068903968666530847861518243613549369958591946250349820591469714932204530035617232518907906221856829303055546691135991160040519247650606344855803582591803782127054003096054642084944222792591424052049921110505988956167570389597243830847687387230304670787826340400162214540990321585293472140484627851900617866144005948783812010791497665327248887996778286718649210750420479945841983967656923601088410341951085019885853838123685303815360786814729574863226128941957912009781666420076946339709231227684332778737278213067690638082862281290379206708131323757886687845625111144563250281250381005289181709540724498421776121459030961961705510362097972716094614958746455629854037089328701596049523193722907591386038931068773775988346609028369220970261009805687188546263735541975704314947113939854794239025469205105821668380814017390363437519129839251831974368479270505694862511192060606707985834944292796535751094419108892642055891464090570769984044277742059938505848610104612153801151323259189531351919142173766611527977883608781415718551508212520742551478395560767486184529097111182823939257613189434784659753812019904816334283954317111477852119211567527794114754778099494443380752655124361264083235880707647885093065789995918012980519440668780571311101398887288276703844125022601910697538381488691343729289578660802490796772818259506663926781028694766745078814717781911572846827133452287061423022357325768781540642457781072421359170275120539703373270653685998902739526280307072916632914328838235071487616752543722176763081629208923739564269271039507840362673944012900951384705044403967236997631661041245241895329822764560216250902878642560786230551412668316902285838824029897350755091628616746868716012846802565388387123871683123126337283398807257798534118652069283754367515249492245804656270343497652197399726811102660084718033195694704684659013841004282230677813231901082567720476352979635679496998930112859601674959550942634596529575521141819460842026553488363963003345550729586795783410642771432332477203660004698036775156064275129451343097801346211857715343530220900862422178819007003894489084847067381578986731090769998245385326185913351690946417242431287706047288606376978721310897066457390781034573918928679442512156556889441476234271544316267599942183676123025552590054726848594727725082338917033002781337710276091470092683742905816243544583009166064930700380047912249043526086666182872804422259294520921685124989591012987580244726873131843113708250002738883102585480537118380172051134706911631483325322292309476627505725101700145068845827509895830080049870490586236670588771447610747000791961804178268521252884735740316092376956054662611736568628183138114031918174804262058138630058034921085171254041158442681593304606184805830955209905470102083826752719487176068791266757933782072854063645901634242132009534780020312139542600491860633490276348648468897030406024318739547357803259241242701038698379383651405759136101435303079109489678985959245638797243601342355815760972628717095754639552999265291782537053448342245712036232825222379383809039400921568066837963061850338282675866831404483668106342198021305829927244175430520856337467385900699821054123810887405305042976451090866185299423020444688090119398370091978212442983384097590883738495009467798853448366212794396892965093555245488452996526535538162471519182388045799504022018885757501319731408897520009696587689065232120772414146944117187900238691493592404683927588137033601215522874708986172224346781807410547328412634868362840005123033837357162407678046340766594363048452209872227245505221644789841884029520380933641028466287206029604473343562260921986221626199444042149265420909676308923273428716931070835966044123784905583537157383591959970813398309314612676341003659337716786304142381142426861304046686730713718947673971941401097313428097610978314481676669272762324143093057737690248639048581550805745645723596201457621841395445864486753427016697062140720348987640808945568381285471111824329336731747196125956134931630944601646933969805852166648826139789431435845469389728392919044092531054344437255715439276947695726201007643849646248860155789571864547976100198563882838660436537464064338923449710648049400648263580268604537479534915226172574676807708993122636336430547923285456727369591738384551034920972123604348516969946017996269562389808810863766976288535768812025942650086529005031390665627743206006004984374782561323186694146542261333702741089663650595773440064067489234436544633203104608828623019668592732300963652675069072741981977939955212846682068397403797422925070615911003791332967737965956828963196488514599996289186217325702415765059871769877190042297660106242967190602095479819145973956601141605183221288396551184135771315018866468396896810866888365672567057773403946685699482973984789970323988107710587752864457116299005911002323416651700231677275057534280378651809033113685915488208779622464696074473791528659830011681177866347952628465767315774269021320297015010785000277562665087546095251855811941037059722010046830283182595215037465623973866469612483512100896324292443111825181287245512322906855644743825307743336281339471572641628737092059673643516040643980717412935580031533048054411893812006316441097756984891698694343695851254747311406386696935013476014508870641639594875722025513757046485327268863679987901399374761008335480101643641049530085942731364161036820849364333129262997374453483924600111138574903196072174130883450412801269136520071556391052574118296296424465825073417408005173721142303277706143991457406843729840509440399221005962798872181869736880789313936139955071374463855574953377292014012328074068710127673746811419726719657461508310396491274387947986359319543783346408376872561501151459327398604538582465120628000305929019739809932422734564554775466271240092289996445132107972153267288923526838652940499510966100284618402564224229999597602567878164781134979885124031837875819905639881606033421281385824683624543442756441837436646052977646439094598151196551695411441859139196251663551394373383139566277840067029221896923591270689498527270325908682538820174537416545491032323630465108678664783257757676436162877592867196398634957571138924672986769725654484846112006030185538370082642287633251165315443483686050462344917816937967618853908432836861843792316596176047672690664708098775956592787925904919048118352219776834424657494878330906245414395544125971397630728699860004005884004443858670289159142755522379285841254775076393438159120460271497934948162772449263410863229779341179038735324119716904324413244102555166888161763071894301888577134702788791035105972313602381280209095901617579061725104586676248945905137260394779618311163753981500269302495933742291809133067209009526012946996345066109574957117196864308630714282669252473792025130836055043040962083722582165958770389860842606493374879993344685937559106508879300906630672327900309241032679587820008344267663404476283764506275189605564598627833417104069900303128794114084162508399919779384985993865276101073125260085357159139640603182723444218608561948985899595701867192149581141294907467510976394912215513100573260252169188716457539419201549849125028121163652712163766279492897233542523237759006476943064576200278122078263097626081380039322415138839286431095759554697119723045826637706734152321885171878194018232744351864748465919577331882030879843496124711203735755401819126458257284911950371213271764456652467221575957978721010985848874378708451469817029802155610822378797154611600453665491629017604033177158543054181139509637822888189264730462529581567949212777717638444804938238536485763305129248782100194153272322972369895199113121198628862584019002949097607687626329381178638807628825316396817126504345440279060869505172896312849145058815731076219629686181736867453243585298762059484582071411537081999553952531118363217167056248066167272806526952075312800369273556185946415924534800557975901982049985114804888146171223941569234279885081533988097727267978948819501900941325138120589012422356108870522700740649714487494833246838786248871276028596581525960147770048514714771694711383252396634129041734518707312869026906223708953764691402376341909019903115036551069286416269753043765339674180746588116809717424584331975654140887988911474392188312983880100261288835009340289837155876971832807949022400957628181209197285756100067367986257086808785585265132367185062368402080800285304648003564116568803808805711410559054591671778663450525832331837674040070268551131766437627169180233186550385712205870320656547612046452500799425708735613011169782506855710401588993929997426695102610942661356511229446521546986409399567596411112926457122683063565690730702743948770389729528103568453661137970898813871544332568743024177168353535898511275496684701369478219908985008965227850073364443238533637844611119433496547011216806343967984336084176695461963906831070947243123618828449086047992359546553169134644293464364264948760316314670318384953933041525651214159587551184854818548558911222485285185322561137490526699212743288975286143733799362590344470802229761925893374749908805106790174814313387332297867368677911207789786720323424380948170651968248304245042460774541442407968406227817143869556754065529909555588562406557544218706100909847089502138292734433552180377402599163518053341141443983097937755386633916206471770011307957628799573047534619045503332470647026940583590659178213521771240993983182150335371669322219286382625596860089442742046964931206793738118739965868462966165106843141042969542385277186840636954625756686337755107998259910588648656819366945726807033259770496072779470377452750749618435399929228937235111464914089316406251199082798549285707204381147740461237328963164982954200868773479699521358119820512622836793270411546850717959871050306324767252085954436511036914698239892258081098399074248556741478744277997948177388995110901159355638390309247545220189503552187040717767028689111598848787367318709529455684569227740345713753413909328730246205778921979290376344230811313597789664988436038087399134880632568010779955356139957478455262166562578568470324046838056331411970628901925983237321779911822828172019804506264530765499452058210743359345441701312110231341565526746154956662439048401571703400190157677741249810527960286941105348654574541176954666268477812642382036546928649462300194640869511100862254907186393050571681417309988920002458580348934140676106852102617505218704135489523567902376662567264817846298376969412147032184600305246256790843948379686535843336787048116111269705607775289609048068794501333251317630607124667158368180726317350146301856419561715186508303175020739111065122759147184698558983218354737046303419702236024841698647530573143724881612355289364206184960830656297501966385160409183851118319794402989511962091663694185221611588489774592003337942322920757097257659899304318969664705974515369492713136437139336826310140462271081259982243624084765268694052545513687328637265756367028881646696750551749209318963463638395754552906591008145030178172451083435129555988959548987887209756960905603108557173231211019060527144928316864310068236791197357392771429748915740814133689200372150447244126495541235991449714289269200018878930748150166624043646064230893581858441094089065644460246277414441292476765330324273764805164047145021185180569980396078872658551742895414252395474407842283176269601730912941417208304028734777699484692567414411170823247451872123510115852446803371577049078680564517807285178035622763645176841647732344651901595258589873521050024581776513254477443304531303627821219885879126909119941885160884316649659582807419429798582402795069824817315386532063061248357402505945136247255940464188085900268217134988102404210091348179173627036920803654164565716231418865994757992862466841059253057380833226959164121413188113833842695454165240767093375284737889211874341239569440665579238933464397139134094415392031511523041340490655356895603404066524771851958972529137511513951627647879205029782920299662345002176230709819355628417582490651606452911319134924199585662491366999902284240015023312940784272543743706215084180029081159629357311073225055078928715189183216178506279792528924081236256353751964740217918627753080289315550269429797830367598133043333514023714074747620964459328074827648948360778587040181807879550928112061824435144165910361589608763681234368461309191530575183366208632448640147947107473819017046617556863416627346365871442864294609041000017830746623508873861892802757043400128071426529658383113996536317379046386877849774626733401158672131952591107838408937133387825374500003266309790729829441067383165481111639512848934631954217773502621514187965778031569374314434453899089837605501317241365212954974626627332090456457396804377285590399930839353391385338275257839736705900783811459078317319522627048350509483700544435495816551910491946716166888415816400309306311184998205716786667207701079653166780142967952274359697056695430971925956046488447321944889225526992252458150643024760215952194570159407081666024411594950501320032959476990764559207388895844272601122628190310810350205573333359911489023721960917609210150918480157138927465373513397267686281594234153488026604915349048310482004039495319919644583807581278619725234144727175552791607951983842277232859975670888309763119642872243103496934091366716167585256152803741939755198236076518877881983883988911079098424537786741533804203809456479142515973697147288272974973345501877654109357694581710154878509419884444242952688450393100009520832916447251462805323725498748860923362778072545201777222421371159592247073061357718430867901757660367642993572787426054684962620663377011872469832550956161343912622375754626395560499503325997047029396794454651554318802520589470662834003835807515712112368675924112680575355559066124461009334425792634287551641824224057835150864355209850741306546366111814802245284667132640874709153902194785462044161611548137710498260624466784939380678487261459204937758460326385425686775719701330638473381380365920752049871058490106113076445353941359269314199803791909590500069335681369753664860969468551169188777956122058924213590167449064352842721734067921949443907286084527287631553574148576465615634990282217506741325671094765563041727097500833014653039251413628606246042150526418358871540463918402881625184427125983394013576677408350567767624654705408161599288219808333326067570941795122975373221787973987367904075574666389769625279400229093861980645642467199483173662164631407109249962232758695807267163495300672554498058602479152017686399211870170001921843057160864231138198557508318459792099086932595612801237410873115582048857193373957836289122069594298935442151043492086111066664954041324466224978471722371487902323300156721586607905026232511172502194523588663811456034749426152704797512100178207075111725778278683026736954719773216554384570240519245475563492018320401936688539836693211802655709650218967828204643829233809150989606754414511552580008749102433087179388745356861375891797569090533990859484678516709944207689850162393881660180030051862267721870137868289739141086015017222435942710473538555439626121775431819394323914560278752364065538834340665597853032354380135885824461780188904225439228663180697738166644729505503173072266413701907357924942519979562747447851286559279891467551670790892253243269112423570611112012079115775538691342594495235647976770849661654347637482255740303802223734322587502646545743470181962978698085862018374652158028262544957002738160121858084395854140533161678555740175076509071663508549039471983960206231898627010080028886111094244835987494377129833743744377394160728946826982576327564240116375847629200141127499702537311047969661286507521010584955192806412565000527757583819462435599007387123300570279866155965877214465264508201604813196207285441220134182970358214614484032452435764951586216652563896743644043645670706169047088562910693718962836126478211844310476363587649632527426122840062371987082726141489150902920209836579707537167723319251318132425232561842836228371683479470876741742479969349031422501423477230266463945490666040768599319352415399523447108159195967339995489890745833198521351622062048484184164599524086996861006696536946593209210004436321389851421101878456995912793983899585540151669329235910701711018848944850517066988263079628633790556753037156665268334886791549908777250255449997816669125504344007337544751491461205479560433948009525622044709040878754557996385593257603715644572365006700032183440565385222419598344194335853996404532540370367394900430316401699326015158512865052444044030026919847276754855732873268156231389281303559669627438114696296817509240486250821592879575949344638541481170212951537798139375542484838745067468242470405867769068687641265681194796565858888868233598899496683256074435139946618405736929905651590874895148438237646676284220384363673744167002764022698147046713586587667401036794203138089900379009181236286961184718030698578109841992144379003684168124458571601170642247419721156986673535540275643162898847177156450106715592155205356235595477854515000676201364542262839037110791621476305131167504806643166206315398371944471464912448930951362565856877834362869103884378024543240765635420311219183328992274693968262357013411949522919345705881545945509987038308710267888780467657451791125004090820564262697649532848523182942100404789832505148807613477645917996317809234727279489547569708557383281015974644180990535082850572930603646014534535726413377994054928282916881442438799364834048783760555790960293014137913487470313820644699113175397440579248421733095133362085088364716959282769598676961583631790698619233053509295601821209813967904207046290803788619175313118362272335491613794532763563183390586231051781508950803736550118581642467536267253790302584608416551258920468207789778395585624988567082847829179395759310151093494708632997346490027169202892504029270804019820642280872350484509691303185139097556551348030758057265425112201160280887786034937078458967881601485830569908325123901362114844172783267062193068209318561872735997717638706539210734700838130038274550916966296347944229481549170165781949399241378944589357857443520767783697848534140131779607887697223442377266829956608594059705506254520139136603068634647324202693431433568507228210292434601241480583300800583116007160220309026983823777491075294623060153007004509504275999887535820426704890921029097965269925945497382792484739422426678990996129049702776878509447643164629058091488891780548746578438111628151635642604093963032756746748264141791286662869990579033929499134369254266150948747856341116924418348501632543397347355569022540531238059906350197428844686129957132315993905093236306732558248264481998327406781450749657508397992168486786837980894654832817608720879293927142783981672803866535752687441264661788162819868971398442184313348791255819875979851261469553957971728539215784879176192629245459841568143581290533025818639560165879376121198108840456599550867443499503152961087167885086948316179565487204621130569329388952699677302436254345666180238512418056446381058185884551943258101990035768049991088561838505608932352476005618879919639431090490554724231454456745728424796812087318226486977376039858535533380306798068205897047599961104580973292694249071025960688134462778038633212218794425230814328112324554440155165990869985697209037808090436657809788151184807314368662436599279834023086016233555701127643559408025189397726328921245568977775964443399715686396216382718617814787229266122622152875091059399718555950818327901116570782023488612729349338749203178364491207029321083172550653540230264882063606379211523753173373904019218969196432564624553064287330808223751844622002457656204836978602056087287050077982088426654123785725145842031071676738164403277262357859146930839088627446483963177608204377468924998778420937128503616896321754632679788163067615621817205898133320490747546369942474480269955246651244234199174671121941648558271450793735494693684807082613918329102943560155118775057620852559371517425424357840833977281375335333142538590356860708609619295010639380797367234346032044401778780333925553638173038519920686326977013135834469958227879611812770401616034348458986337116819864755758684348996100672373715670015046709989047320356467703905285971715430065847680836558236539308069783999702551183629466309819159224420070818698202558695992497251707133212410291378459611632504236209749443803214544934732596663599904975815725841054670442283366057854481665679190815732129184968113578953732311533643607975410682782570982758239265473043874555575929889527456019701141161001478165732863230461024842664943601524977509453580692163269457873858962257907257415199289383816787423349731958002667083472085179810847298928950729858503248519269571297217213299873298484738023753174656549078059118392652258303128802673788811982960715399168596464504529177931096048796617687224638511641701037610349191738219672826104005643588151292209837195325347649645650870181194018624123010183415369766583851086182049135704460890794522075242597248483406791427115906802418498097775200062719971593817278702193206198914425548623471872733010375860126157992606567457975730794035456237585224252020931713145940312690421496421062947077209510004223135190315218610326634762485652561355784358582585388190968323957821329539808420775906599468771597548479784163702745441798024026731541133126859723026129041156072715890328631508455318832670139590347681391114617684585196540631714661541630677589443772763890665513918782724154193084490052635870729215341631638742154162329779470311724902833349864823060144481392989303884166944613782849136564993024803755187713406683031871557248731346225279924644744653663662518780668116497946348253836781170585725534244298305134123458523278209676613265301005169162774373094529902660788097915094803123801714723199803978094961202663576891199209579179729304632888474657334911784884093631449936234877065820898015568047941272543925182000431152765021619231641253995315663883354177996572927774125351816818331060075883009630991857783954953393417592816728793278811240492775687756342876864827598345936487619974067124077618766469372108096136126749063488162952158248080751512672804152546806389352396393783017254854460813393967774246094411150261290346186109515060824493593824532996411630108464408180008783185352310466195167968685656589936831137115823172320031336059825067605902771928565648508597342780279921423122459149910547757370203515133762149333122142191588125622911762380271086507432975284755446667897620778903558018784761181012419592560650820646760288207064466998364508408462866040981586789252369976843567445996801981422364355669618982266973570273301534281431847819467350809711569178942057092366735092878873941829552073438821781564678076349527834724098211646689981663353947391951398346425414002247523665371738830548583356375430450356198808012564462322609851415372592750990629928741340860181852518062162407131990812522806892701541110538870979112809086412833975150844546509489798684372157319050597424762774614645442124794607733495009040238867412759466025789399118234067140910309596940869034984704503224732240598613477134416776321904016414028357505386484146985876129431997450448004334689998936651242978994176604940164795705872066416190883221413241298907233650543353034049246157241258510717616738962374594355441998949919061622773980649805480452612122928879250687599204858258544690366668779284314372589047280693108216915522197096833595656243441295880732169674238388221676818046396323073238670069067737775794410157858654252665423466251251505680616181503222781154952222463039517825918386240379231927317037548573296145348355084592607835452321666816075150724626228876603777447231827532379432140968185922269851638754194643079300451143239259024172574571344368220219236074617302758408776149110748132280506550352300127891185989867356740786980309846774387372999799922147727016181825513946761707674460156275157176399172333869253454386097346299524252546477765545065650437814529624462257316566934224979924154551248476085577781648573034009588470047090531695488773652705768969077174049557347852042528352435012696860659255499009118409236850374748415889408961721682827093421087686309414400887113320064126978892006813727455388402404525947363963916235449277019381133214754827489851474823715334015316863889392250098630638600771810539421667175435295581431171920430322014722170200449845877711026567154227005935132323104517864401828216709129003559351823074256469918368845115481488242686712393996921938202763629075103616304710016192746764321822289482086911864260861043232898662168946408011918943692327142003298981856682412483650897811320850045172745750214375322608906578926850559332921322699075312676818639634680356274529106352211201699086473798340007725483038730570935292489261462387112660492996947646559242393603937958434699603214006222644623073859198329430554032477974434871162485791677320524359511763080930122345714665975252644444310733611744899895416475847833843986249698792686839501470485144563765520181418348987808373804290814611238174385039095423128313923106434296306064758817420624467734776066026371319950595132456680031215728178953506558251793189911394168173258621813795751498321086955607996355479381736686730250732742788306321680496316170154320237736490151921973691585966803217703067073906131320308532208703666256919949989348216349401331379513084266302541483788488171966992259651421574233995117166155786245909857537209170094868927997209187458222113048708583300092656404779904491148537408930388923151752559552355389109130730023269790906607571702674115444630058357632429129030397249084949821541551353889587865152875397897900847880385523090821509205027570290169435004196008076496015918738816656713777962533578797322334811515489934675431917736630108613985992897609396024659127174649687367542314130580170179380402366174945653583981128663162905145572129074004415481138535154680795994997956341035481035674298048933068212681027305618361371811463271955841347824631794157842305463567559830444047079427404859536190498838633495989835171778271150611492978026576639446858570129148680587323539477991190509479185349606027416602716511138989223517942756391389230454881374850687370002732772860328164256528462039491390566062960914492064017337583964895543757877392733232640090021178832021082215473611243087630870038267374463959549106754486043831259103282188054605629765451226188650664040490814759539661849864526391874158321436609416929817256394669734142643995401285990401418977067246442710992610864419335165593392104294311521151131258390706562613038834576247360184345088985553364659339149313948141238398450082527125070387335302038033977766927971873148961311208308701107496021237747974434443962481552763318448501078092935639724112927975721869514634259518772456107667350495001540998933500196278468967776872665509718317096108261005363568907384503343164520148961609738016638825056781025687143347214231910434934988415297030340934710233347896904753428691031548439091475565218347726312060126729648180452850550014527909733827373773023915513610430679141090462785994721292703167816098339622066879323594260440287266782009063820872894041146534686176903671856736651698974541802561059831441082904545517330852954263095801337973657721803897318895182980773565038317474917790483974762448228238554780062609167484130781603141372393373474747226239198418900135196252221028235096832166018627933130306169962558062861191174993672277887410870267351542359648143186541567613439275118119974824139065026275020941388248089621152906637715908639833634228274326832269865347740101481928436438426035946527971465020999436525526054236480107106702632735937577198486092190734843979118171081194188243313622763829799192341843219581969876691106636434824364784582938088082614442165315614648603954914115940686317285403570362033585742136036775340639208155351199717557501561412566741772077616307316616607593765983049190648014901543472348742338386251685448436534577808443271196571170584016871091111156699698228877451957408301999011775325668583826572289330917073013089227191420903132655034116918236985487010439609386186119580863579998984939166015720829850899736525700163290124292218254331636773849151129532362611930944286171609101462622622551614946084266651583897903723250045239909553868360579354239500951742132025803833849695137515307689096166058344777006931079262122945767702580666264479389389880215121361989880929193190799128523954758415186054604967018727173973312930967023714959757880743166487431945070412450997917414492665249312839326194805894438101621085070546459761048187138890677907918365260192898493625261097098940889222390675203227954879892129980827610335054591358523066388753022198755973184842665248512420150581229974136735469493584096496798774155661289745611337340939104974083016194003017295231666705183404950092134659052485860063740958049008575012939509174853857662877406299664279005909531744213749455632145608937981319773170961200121338916448630733360837928134278431173913780998886738600184527418656037134948639611240117601246616062442185193669433768569156128140043807896459889962020319154140440937148627284321852580155809338512931139850581656823429031520838952681951188721983678581672802808745637970734831335653784095312498957142857336109049305051108333899412419336530348133636289394224647922346454276858297684098998909419449013964919431967951871995292786099311701277742985468438131148853539140056151913628249151304210785682427472713088951315958812131576303272136646587343581361123586518016482019507793083568132344131800913415704617824607370463407874211800038490332362038386172910188182791989992069495774484339719003475914226075420678239507322414658363416739072991733015898585684648851433102628828379514524197286122113940594559756542399820854635387605807907334968152617959804473319586745056968348282092960634390756827175036989035803640362113027495507261228131782401365014171564878474316957766570351116296712123848020259958532256488528669339151499568068095426702443367473234154869421055014829730950301865974366925265967635774080241065542610420488533882417273918863672898685489043805439580391254670114681289953958981241413810630724040136169075007564231044002686234925619205204833101598055865251902266128446976454163488975613822976903703169788564614271720136936985404836669106837831100910829163061339234058971452790560191107473445057763385136612834252679623137084839201854145685332705459811687174021074958433140653993088870266351754532768696436015880773642272900543750579780013919255095961223584369163134510683891330974085621298801033751784747160848149281831623636057378581656111124753704232988148287480014162684918171034923672435740881567800293358358050382538873539170387780046049319535007973641189756392605128833236107938512197480430678885964900434163521144277266741753884590635179216782417239050752921488023306024526642669299696470882813080783085231441149093968088250764083900463986878540817330006981037263668480520847541566668831100489886761333822739082978335006463096847234655592038202997326155441760776912444482694839742030073956244639626152819881206159273354719269290323861619193995701666410465957144425088138726956190369920675825367081684179782688800794503530859628909442362355094833751968144191036263499660927508086727091946693110287936531153188675598785221724415081716031708779660986752427049513728907681268179033471727828621225610838670972329805926190071444925350320157162659857743890233524726070302085063449436905567642759675299215068664482715101241660005885731612330805400506945237303083925249370008992805376072252080534637973504648096244883492037743604051704303171030228129498645057920646394102179849947991258611415156743380181195432342078331502371887979860873133214600822483340209760609752271265897025727008053209094174780563091129020548681897402947156565106952619751344457059471698031641034719443538048184480748968660805335309809073557133998938108051182866286088998350706633346374020264524730523399158306023173813704158967868921916768938903867146073655900323836289950953289339951186461329503103058458733334467329609927836628348800708613092394307890293168351878484023994255930150475421716839341067916762774177288610325017292068836196155307786153329981503319386369918818192583962114565351636471997692901425188644999948323190205106109468055765802691560815749152572000367157754948861058104181512074349593955495597583876802597951419637380172649745603504305857186100286999804822159467226541647620629793870015699507818780414950589666246051272991528004404102591311416929701146055387470148200609123890904998329681894984550550442218328246604132297520019744719569933353247932396640104587597720081427690691475319521382959112286799163193730162627621148388676995727588279382361007376329075074710432613932870896220641025738328530411457329070394813308865074401344227900417704173472946149398818162446919392178979595868482369636189307707040464989004335889375035194081897863316158625824443189439722726703749851622094058401633486437952153744978164592683781331323486627359736440989098145884192186666387172347758116101523649930444796542027882639005528308799222754831095450385938796825624632282745368457718397634485122616863807916909710675295717232794891392004472839450175677457469213301341707696781128956517364572536813333597981286880600757592234027660277705454369864819847440180314360361909533243025421800897809364061662935056219189590173351887296315980680344512873767167066825091101610371617544155376081636000394362169829650033397068863923505635015536242601106610389322419051994643689523963294203871355240935516881871585643294641699162625136171502547024569839100481749647956456450646068556030242492982788790922177255100539212861100159289530569002738429850226544682082259922122948991400990797290217952241653448599239940344583053143367590797003871210164315898959462627371861471575069057562407752597182984058487078605737779339377674526586695798554607175384040169520589921865684574932064634266342156939950112833506897305288750208545142387808431538813726220322706739530692875185299321412753273186006157096608761301096122561219309782516070895294849313749570192935672205473799152262952832945572218027523867143550981973146458015057702948395898830952164009223934455218208067348914017250647748617644415804854179770320845632155798773735306650168739589231287354278250892109174266571102402754740067145607157841818639523456376695043510844746403344603005817646389058209414633641232421078742486918760900991045979634679869084935177193354365796923409110498721185814055122576873818074596986086049237371271588221239269990780058984512971067737185267446588866507187709606542585804409069250212130227598377933843845395173729599498819662378668034479569273178405589885869316115584310500001523629275488911798463053582205139089815764671240286341622009830856593362809240092442029581792993153540525694909418194932812455048455405590333330338287841373106878078442152547323381937677142789737141529416353920477687736419906389833530846520846387948118764589029666350749416618537004554447184275566929533956680287237912542855421265421853170112259912639874555424679037033278701678584585689509926952003443434782688117624666231165797027689811552877032542084151349892625468996143776715969822038414940560122640703989576674595731236518583255894775341234610032512581255700672186328084566191642038515450881496352301151726693615146033409318554820428986742872630907273263898796622806928142287596501953719189092903382620785839996112481752082164627844389230476545191618388691950052580855349605813969401732190140965540154470888082911141414651411352200196411249987048365619276299397425204425446009598337361473050026046550551902192142239968678946319071565655671235616970835820531312585438942946151950848152167942427104932185283830203605318235744903380437915630613141283568827784497738498135414904278437787296757108498858486026116361837991235412334163666953416406975676129961862490422551115364740362125052423955936265844881181184567645854684680832267878019968163648847996419869206879177947403242641406483565146745008230166553839974288664844746029588196100151498845545585776246467923455466448103575761911486324305823110830208726265400275498092068856348696832232457905242383330753336248017159783393890258360091167691331635710274309614168190016306622495715820277617172876665575344605770214019606074078427007046581051772648302273505890207264202843820465752590483110822921640215295496974343675750601486874865339925039095231599587618124709402699593710029668287129594262372928812189685675903431702355878773707214140923366569107145782725453973331754628990103443720661236447220484113042284495383639288251716306006349311395033314754143111523417571137600576204826778141911442379083301359998942902663797735641641729180247553064065272363362701249533104136881078773451205577354981615641419125073516739704798189162510776326832768582674542365686125323971783511073827660502864361934100761667633138650882964025046117290474837886391558100789750693202438606476206314562426569349915750731012962999721417601597669647295069788749795454824424245609654239832908241133975499179787276202770056267211422246167616563172604218331106623856332160455245978812168384286996388384738129199425470870799508738242860642280645453785573551281806878962566508508178094634607089942667465139571674916626642092983872900212288580811777772591690512673548807089414787236289390202295458250256291501022842411975034785988367508699887174694179040242493110772772395180863391406201700734573697991964673949249371378342307609517398096712287367631541903738326890055354274714578313531099710794037394556368000330056539641617286603848436299153127722229813213811876697411113161841274656982683828363624156020274568608773638152084003966984904569687002719329257783511362084158364964386671153739068515455919673532334411227035748818365855016712458556694354045446038075298338170061057129907075968859700722680918212444525297991114822297657974274280748461250357536815950942563559046434827881209974146517999710193826989320278231352747097955493698949248535214688319993545671738431049571749363275912975868626128378142169108996530800508149629748489202697769578740654953844051147642692446117491233571432394789767365228809841117780840429295195490767507349178382401043448046983174323540933930863869619221403989527925077689122745354213100596616924046236822412302881916717882786817512387433988792978247978225978343249821462965308346028550943487275228544177976107307321929397590317224938871940797715991468109983311438461223248973283728004207116485309499142560844556496650943687213094755759329732778775496196080088113386889657805260936810124945489406293834102561984843279232388962667833687221116173194013874445301436587776625731872734721919532012749264501268641392290341088752234372149577413275493885615780817516599771471314352490952807635124525899907537040438277495668175551508974071247948420010676311421410548138771615042302303498517836811600784129817158022746428405361333466841058089621526707375348741685655697371554431330914557852122062354980013853463344924654987741867417717770918261589481234552391941682521660528100770254021130541199519143466490087435438863750176640412522819638445533574294957451895899381474424868950330106334063520612409329518714907551290433668285090903315383274123860313046096244975773742492013457907006881523440658878076003353425619170770975008760010103396658308781076909548116800542515982081363398316454130736113076958656747882682085592891398444732231959192200940448278734219915772752443536961686899794619443956926310150153572428036995277313262985391167192322454568382833738220583452586127955838183347232088805241681567752090651842430939981161563983531717390180058108199248672540542923561207710337289533353650223760346580965753456472929321878927051367658093166956465377921879587190168045278102226226981791783032810810267212088835293335902602738029025654600730351691357017854442867472810550326737947314935474579815755026174706094674563670666820942381671110695459842541472456904021029427956791249459044197831146451893408001844115873555650138769861783491544522334787188517107935157141918932966905345822149912705675632739016119004695158940043044947638641745198368429180671312920256278348687032059749297460991835733401904645209999875896067656196576853361756120073614393563604148278391936721106690184437826267432364591111160386767903952832101417588035633701504158856639949656247389481820762713141993967403420163586286330939157953386872406661364280064962445538228926002430105792749609661765020007621635527992436730023747305204689878385062330589963445119196984121522493717838057408565186909037298054512670822380870493635224531389572310842643298673509630367693538863333277080776004118556282850582439502167201565734770541155969886271811158971444070335359427466695482128415568950288149322464976026875809122908129310301257200760166143696201615999254738614256284527940886105105504392167498344939063687721869944900820963483216127546668916691345110565386948814993649763491143719700087837952388467523715425079168659797524645758130445458604879426559173644512988130111186979901716946426849857918922034350357258112085604319744968692916932724076074164248603792183718244677048933413158914891604225192204141621972143106998158365827742308564613889904662585290956218455955160775719372277235313368089144069608460803236869076701203582846553164777075687441428269088739406390642007623722153661933310974943924791979618182077719282847331018329526771118339067490516664499914181530707626102306271378490768319224149510010649685993144799145002431763105142403376428885916958220700005794983156508850577511339786794678284510524835066258151999517507415736522171718733508552417896976967493225441788903100181450879112395983983823304799428829253355590161556744938218930024494768794247299096563408640599469857635912851886239929188140169053808447835898941422587232341407853680764789061752100175570957254983342772964726850919093766887531480777308008967840481610183513675708311072666642403690735255567985744489168691996942957466278639364415265261177837132179447106674465252642729036851928850020678690349566339979374281350989436384309690949392813637781074519948290550691846662273948355919748606494722395427013554792715569591863957966668801333281974297582576551138973587270917015316972242152486204221670949329083221750680340667437910223506764180317491378557956859172962236003038458241261372140125208101515208014215929386438608522195878033520283012147548229776732258932012905522712819931608913015007572431852884871927751998166284348581504598295112382428136213018520784813110207280446414330691707187355840485931137383739023420386302793482142072965209037305290302051811375172544449893072986169705684180535466798881186227257822517708499608291579541633819449619486443696867634759189934295121857740451301561034798462293619037018286439789781312134917486472380910036282669216982294801332001393564050281604060003170862058936380391159594036131686124340805264127261990755046581671458521538165041795131801812313485976637696580369243325985242027206197384933837528205687686576603137043417610950982598041027172975715863699390831143415429800402953056574237994628350080044882642564082179826835239719288732647178629313857553783064845488000101086837694024802239031689034429313799630630704681670438286694510709136315541109053287636422654767258373816164894591202704793621288249029884071484204775094698057073407626734745310505256038061993239676830562309475631636103729841231878923105325058591870114155875600566244784471261150196309146298329225636898342439622926007224366959243046169228393143992157990278078686499937532893140083973260283572588227458642539218791065712458247207275813783411224503546730196728072952089839769726896976234022611113846369903673521748377779305980867407892475662710770328850640100756664145139076666302531284755286660685621400740301897224192619800634501139104907597868314708258269982394700351981627620020426549260990779361862709739818181936520287414995532800831151733841970077354325909834152736091428415667672864349347423295190159871926388755691696961921722718628419958188190633085980783965560496828827461820406802923790680981408103599594527803552364134981587171206063434092319859291962260635691326856060670009109583021685898995249395802054721640519621463544590080730913034658817844284746942631989714988876617676481190095421717002018931610477986429496555547899621079252209286969894439114199396278078294994236359033900593510848924211464575003512168536455795552497205788601657569369183957353821025969673827658004526161931104296130479786727658908975861455633769258891420045154276033938469462992640876764701540140959549272136281861407156276980797776013929985480485625204248619421997174985400557755320534695877260939274112377771990208766817035036457539311494444904198823335921298639313466046262194718878395836839401056344948601044059697189849551651056781912557337991745158579868402837732371080559221635765662656536439090991548117304421685658962126351190104375793101757955520115183393782958466935727046955180731668754287902114757373665744726777883839307703599919867173646045027634017780302561104510840217250162238753154793725835993117015772613185200790237286927998245542821620757825008572162269663701092391575003368026861810604500588203243993322756570286555392354799588950931592627193929393475345682776247732178141891794019260054510645975397042136722119045387850055344484128373500131711395681418502697871905495024282390040532489432007391618434542560464386600047256966178487145049059298751585280393961770837660311194780942726479201824182473021686063004216290642825621181707220649978778172506736569037989935183787942657160816225315510108209369160358172435932898110771961082036517514813523993486532506625796404409520512687100027361312236899535674063429232083567584326622008058569609224152590482099133370243066206726531995747095583564729256645550375343863333088241276507856386504973353221746994981467366642839314650057163222531135067220571112884679629397154259466353561406369622233520789635877678542286651336101066894551777043394762152218520387869655404977071643694125993897150414458449430994259939577001388640633379274040844269115692720196378549701843233267910870758774597471855208304647856174685150557968946295234238749961618027062300029264912113370149663196532695828901083689890960383815106057545184794777815028938693699996833377204982484004726277724737871038316195152197179321255674018692274560523920570980864872201696911521511252554895397706595089912070229054261695882086721451504373786924174751839064833180156118960908598331658071552717056071411260934368090824046999724993285532415504590244643668876831872030635593633231494736327690068042589557703570379085528001315056982030626526326282770469725571225760998946844747313719539690481525951639657995073065652519333871206416413848182205703651462660323700539927680274683256773287439634608514538056179823813591775962515260654723574090154554847348706603519803634809738090801244986932896832790965097579485448436186618851842381521137516785057666483628901352056839040190717558728774152096619101276248550579056565500746655758850649023308973786062620018025000914632474748599489868930820564304420157333080061635637393181619672655086315161125393536076666661312020661803776455648865958146583439073795219718237394965317886836948631537656734473138348657672520883934608289178146874966702004144935707087185191424791194054837961522345909807447160380062339104728910207749620598920321951760938335601658701662227350794261532868980704573480817214082218625708237715401674279394416963624145102641053647571601335007004012164954076452637585536371320760467139910957676779107665983370323503674920782479041999654270142620548446143236396075916958243636080032828812124483444846780515544215127852075594026543193290913248520904166622790991846718971307968882899737940494138409852055666917627681925711502278285276462784857092869316199116201161394666955434162371405040498615492060005722702815100852141282540746911789018014465919838137039123975988516405420278154649337231802921815283841744880931727630677890482824551438983506067163745288509788709477713230862777773754989766590241116118477893143243613625283370493818250423594127888075613812947046047096807137826119242845692318704349507924636632768496218840880597728383639767419044031934859843414078080247690389627206572436017240288874965992238262830159657491703375242470588030592279792705801459798075272187610542804410796323648151332889609483890919337776586120328168578373510008876543929901699821812775487560214733016790431287845676305894889361509246974139001094682799485841482116563889105052316894008156350375647199869255018819746699989078785361060912990797179828114939256491095240582934748465665032133057156939804573704643835160660789649848917856799265688561406839111991183308433868117396379023384551226212758218966583308600636411717072820688766104874504472781403785146896889988763798337820369729767340172103329166777731316489545564506911618415122791652563710171919930440025308606162748461179920661874996386914229240622022545744411830170447493959877931083997964216584574723271556280423803140823374012897139618824348621573986736270846212302310051858432908830820183550795952737740802780725084768827986462565977141733750816969157911851869555828657935254295921075487927791149902986567071906466110700000723489656345339124390909667390960389810918847851149552196151023315653816180042073572886155420318257044596840403606721472473868192189729190512042877349149306502312188022468585860113759511722268810698058805989108619499841525093338937291456086674054543392504999660598077058374704247620384631516040702711290666425456141115107583558638653435326132469175160693140207888239192580805635179035887134722300426493564770052062848381503142068898806354149285000410571305008416074742393813107917290852925156192017471946636269645353078887017224063785581515544952208003856150940235951552076339940628487527451948839025754650393617564830667231465382056145063068970572866273550224456921175215760770875736466526171156307037570043856741636255884306774510224516768579284532041401912116465310526710512937740463970320864972685859384132136912716648176523709442284793132950252194457154651328202405316200507204970187608546579050515926363633756416248996831099628766607505394313493661043092353643744930322237855879906511780775156143777459691028936113457619364129854337135809489402604050936307728597971418700945629024032444339557732873008254915371527777134155447618708394732970858910386700111650226905111889774034386414584029455766027478111736550310597854989690233786206500733224488456753164242996305246565782597072037890310891790592300670597768062521046522027547682678425231885016651302673599723918186921247340039198111122698123726279111033977191248931638629467881960773065544801270408284137360792666218661228627536142110084344254077899257946215999786295063410943460748296677528419477361809409315529081863064152562793698205257846428922546344019137594649258193586425739409488967894817857394735837513892299680455911599096058181044499155520323030396141864032667616097304763921471870701445215633541269971345758636374718417223801396779555832893224659356229632504649912708633894138495018345040677535771052331759622840878635403523780445005557974825751724619599767183762184849683625043978616346798522338127861173085834207252601730992585542435034975249365289980760677772836121975780480071965662603722226288060030794878788423440051900897104305490124088410646322891460683308523742458047057259057415068393832921974712046545601195704896768570105348044040299888400872300322679434541760253030797218655807373966990444549310786429111973500809700619617095605909003839646994435142868017793044884758616918748180918313977709629872546270863710502631649701408695239311751874197174115193729659076825190793035701866324233488672809821009024732675619665834392357573120687711684521490394244853928624231201954621927725441069021327733625062160029758598339146341166563935797542306265458776138282503181268933965503993959082994721353830089972434280903572708129727719759995389746265217252220509968675425560686799734383067133852304376752868969647209085212804396127473553759357629101029195865424447861863796634690906463228881599629746866784495319469760506499120800556910724128167062054278308713969049867356438768659861886074063411051518212580305794033628642377396422520044120924025644899111599716155683308120992253452623683337932846421302981904085391609522041981042079207247093442470685917755983416226289015603831436670046915252997154421161144724574694424398627968709662680099331174029414044479086177899644016678321057898081908930414958314228609504287805203209883294451013214996860463303326370048508618851691833388485589284805622103469591339211310798014618350389173698321121713297351072435500978834278662548006893945018683998304867906952313305513656828695334850459156930094728704228976872778802540333557195676256441144926798494009182851489180448518092741536754252839289110523817159567330628709116710113870229746499229393987147925086726751737496393995962061941445375352698046986598232207580771964248247907660709601159875551447162318350343033520109442407744809060622684902160634045263850345306109484101079333950217851630294147642663694688930591389318967598913703437699079462402250228696487267312111351231002066759539784834841459660782268605841136651862888034651458561977696492286022118598897828511958523362893858355601562982444886541664113753201777524301232061375071384075996813187066310251995720737488689102083434204278097283765420800040746667688351954236536573230609088839529356861199643980609607776100819656355121759515494824656470772932779267844197798093266158757109326921857831734898203381524451945346524773844974781368739141271690385729946166528014486001751417604368467918670035436199373504928511471746585199918198251701180136289462144532453609518635159239716619133038531047701663650688066049940641296828629910299479058798075978370919478062476598033954743373315328986518819380073797584194632077059284400392950482083223737566875819477796189842965259285282676932990793172678225063987003577915211745495980065697367568713252485762470327438246791011152594500875087527459140532687129988299949986163218857440080891507483640932915828980425320504818904497339198966540869559547403148716987217894220706908158028035730822698466942679922857273322340042103515569202628139692044037150474529477921643418190683782661830712668403496650628469670484543820733088849533245362466795419835361143479050905061017566132187087925547426971231545196800574111649909696865142041974079443651029317002196717245875129749450040894657411201324683867173634566725120555649477370334504565034023667875761529942021590983622765656182561764022954847009157427176599059876985862764874732453743954742286925910737939944438064443387155227444223191841964928014854205705983312615891801710134831848463499403212928577004078581951874116418773683077562521149014076973388823733090043003589981172151275150875835758270197651139479055514950990331210095167357219630500370843868308342231806309486799205873265444821277444115783008982629552537252131413143707310511486619425996563553491029986658103031642086914404288359809995676347357329710455280227695544718078383516555300293800245015388823385563337627857163075687186724947596773763433593317057106919756081257340153949890774947266560771320877973696830880046366077832022435974386754302911535158175527142292673619100094895666913849689257946702448789247804957597897237032565018761075956158214198807978795456313631882833746899063391504088050251566750345834660604698618449481000395088215632749023394000896551886884215175003835933369272892916797486847490852137656281294702113253111197139178562046813011936834110798342067012696817053976554996994888396763951291000477780630889795481127627573456758476249430812858068837527674182022717936089557216953773268339897291590686872685375581923997113267815648730127921198766612136273748316939473343136428291286857009418138426468195873313129757501499000049349986341949514050425127833851763346282752003964073592707957071590564461861169809476877728542339877562320642815659109699320350920762552507292311226928402518726919337996122271392957087792800345819430599452983931227770162467565917935837735239304132024074258889092005656735911016656044063039872231551564225290482540277546264322693658306247839836374662891596090044079253879827385293297456457072888126372861167305657579421113564178021855128413767569778718872504572394742025733859099701607123740051090837245209745711952267842256448620441009225347706143273752423316447170650628009526023497009323965473018390692964926037463052460743882510029129826079354843985074203360535229496337610093900166432271966369087202019260884216840912776409878066763818610535685435403511376176309730836784215033223935334116268935446090443281601973255294587203400974107588814231055987885579820481725529569286371414103542586728875880736124895732750725033156077914985024572178984287370193266304667850736439087284277745785615459267624562902456132225885444042518395748131629964880640353070004495190058098667584249537606022126781076677795800524513032280011302279951047098468807065857469013736577150057231615329253080535726074230937375093219367303373948764742520574223117236823862661625325063254101174389490187456045306139421902647202782325024042472255787371142663274954203623845696852819309968266799326864940468726900086453383611529711852339590358115822364346518226099304609636542890735388207819127589342293417373669601682718736170697353797211945921183814091069454859764408012837836328068343160678024624538391520740928950288813330265565230692766566140880926023269864098636432451714021472896426809453449193605124197428538849708642143320998509270714264164775789447737639205468580112634553881815091289093350111296579251207054626943509079175637704038545339477865786455913383220352743922488025397085372330389806066608318751985303054256426205183143476196978932047484645792240310987710225981656269612853292794298525396621800683897903013033321988379110788630200431665348498183306935236719288476157826752007703732120303028668731479731375931067554749237240693619751931444871665232828552055253298709336061790901784590976877468906062690284780376174218206741399267006391265257617215203156915769308878681599587306417360162283058077304831790950333369298566542540708946762283632378223682405221462792678093938830607932228574115764494627356109228637935697480511752945181513497749268595678274965133337145776676257209998089499403973064903322258354398621785669107343407857490182005176884171012583340353222890259423754752489548743111851671632901303943428917521108254402625780923032677522812945888280690191495339189729834346376879563470655231541619997062222130498129577155205551551909382677580637043825740599446610697572597037944323404167845156390027396476221710659536014438342652584817692228026510384774605628326080466672117938605438417001589651903519673495809688537353558950792093974479934987936881502680963132576025221643378437950203888302612771453488155077643162638907023337353649458305437527770281430543245871444149168215421813731250921974644541017142327095848986321801871071765215110723489003706379934710397790265569104964752082134814228690989491141240856992669345522086023943798391668210187555154968822038657520533210343253642009030548744113911663369458442452552470624941359954458695457359191215955576666975510490889780853055539570991734404174854407818247124495439328691469326845983916665093050148555496365286171943885839357764187839678572104754930915727013908514218306533562452114684311863454945088829056782625886117582210453119798445021873722234189837656567021789681612951887982321566900598924660493490540855366458725494419634529054269691609221797418431395463417427899816924526247154269175180101800812954990566599908661103189286466807344902571331829144855055780752799004932375924054525896548429286660644601688810684570828851426292953506698777931282906996160920365865175805248829008438580804098838200462784444884643872325266159238136662247703717055852534187060261507321280761597062543321961776445994832736146062487583022578206690160043914192681270062248428003370983911764813648447977481814978799856937718851700933490209567168330734303271187256042921672765236450178101338343468499521402024664982941947174459427660572627229572280875344386973462446267459006317874380085521385766309768366037407878630626156169587647844046818481321920077300253483268508041489008780723562747933663931570070554204007741697387715309038955824700339006058048045156325488535291095548807649934131530508960942730126180981375963882412740990256148737548536545602818598664364533864889693679886095699179999515195453005028738229086215799583992534790160666369756050641568079357147077629208107559664530773055493223646076721099704898501399603691398549297336454311498033033656834884553986422531332640149310551647566417426474461800125042924114664521213168158526865923859946828092900972374200209407341354785973327964993599866347481808307515043385613980753006435061060847273504945873909690890808967105450423734868389977917214982121390740587115647486164361696940405117959401694417402149051883049710650075825100387721685181252949113915319406716001888904000185435857258651876072679912998114839188277134640929921702323693122103521884949795407358830016586949389592645283542362635360835570681312519957162526515939079452872996208131112234129703844163741138701659685561071719121501436897668001932799913598119203494041498379865232567154107103258623343559756786973900319565645931833731443121562758519819090467904288373466520715637796830678176870105701553321313453609337705526190073426493759416643497559308567998496405872598263906752727311058923082007767692898466312883131999186268489017549876546286262712667436599299125513482111617329731789801234094150232860734005411801511015868538547397643220173641443214629198416662214626523482276253075627962921249639272390089180882854466445344446797250573645605262618047202857725125204617218433347827349125158147941442678461807696495133358376468237448683788456987469143519633331961824229080890385629551396969741674432040970295448293340308514474502281063488333327069330454836028798984557664827128529358951117687670945711378351149486772359840265742254565886038745344918103054428150213964535963710842770768946738899288477212471905732584476182313008873714672127531914014062482807965183869719274061517396660710632247056725369869409795711507849694257909566714917358180051808596409246467321000136910740203838899834714315033827283408244431042629850340886413669038031294826688769806175219239236096894390508957537267380534667172473522326127067596111380958226533790251313746598028373215884765369093427861403405655643868611369138203042256747799921003981446021217776288603323571223961897946955683346424032324678752129741575864638949366057602267299964959879944298517279203930001501178965566612434606524811305152609341497418045337152299434285905637387494078478342544368383353904344416057508273359551525861480377423093370600297945409800561282401626152200613423895484777975963177657214653206314964574278362354050892397413380084451798296822192405954698143536981077155991789219263898883818271735753642080233212344068057548741465241450115978848088455792233236355239263982449196209943362541288313008292091523573789749383112066792789698817597476765738655253283775191960325442218887593872730253770284265511658860375726867436993511850836960319418265098911718737741043765826033592465341549166959097396624150343544636591014099482706677933545991361402032355092296029177093436335919184301266708438405347668676904901795432534583943588608971064643826122068197888396755259430627022434252641140119829288041203813950826965456613969733835581726439326981610721913171879395668547836917632578726420308138587396436584081865168776978116740622448144130029682851226069539984518058187224176326107526531936115009557355960766640861591256107258944157515965667122661455589831138437624550130592207620466435100004606057325343790309742809433396085989073965864128517373045324195161478154324900651705131536182617321769731589079708106398510047388319313199124112806580499355434082250090807114523757055252431167156666446501721801276104334150569505719246260023308324851558438600215474892321941357381493323731364925628293720421077354267177723956804760651573807766911107099838843757608940333500105164049443315170158379348528895869114644614078517656590153244854482867234663070773285661865317165079959085611038720140978566021345553712837361697500769748537365685917848962747773036764023444072182940004541137206586999919401073201956324041649033215919188467398432417094668685271527840025247835485803811204216081849464979743885422167331728504062880569803926329827705091561196671713487932575594363551895294487232970781508359775219394407228531219407278060484132677772524553242483447773707046059513760616851348796028726133980384351047234396908114808038964153292233080022182797482858165500783246226705460008179951816741572086340161052715705381276405413377389768652037336530213811838421111444328093286809517456945653039675879052214284092741218814628051130809069150367709030778355030798444202118511382304099771512095890993429682337490394911341041271280916935143211675074873818664367634309632533734945993486690849539537810830580198936371923389564120198585708113843453403918469265505066954939508724196750609849098604958846784788656909885226781711035843128657036037706772919232323244774509242549240144914995335934375616732620969465733570208364701202790751625901782563199339872091812742826829079393888971062218221336790254834672582451989523323276592944850247807757892210468646397685122891498552284697126382803731215946166389493839915207177226955702006053171757814308458462214579576134663572854744028768937039311468400136738479634609539724901633577038802756900847223029301380987081817356764803598431269559028987599645827361088178650763889217277044985568037791433695765738725829703336488089878588605459621514579215135064244420523108106164820098345401310231951670720619775097352584414164765401860797375125518541076530348973711583787441900437073365053914022830069289817763480578200051255221275894621804785309378854457753908955766048790844112801977125915801255198103472258361096256393516526396700372622034982720079884698420917413819479886456258186334389804344982167857781555543428635239872571243291348846968123318784105061487550288809062378620297965740208367487647589609571121843466861176060496041621615241146390083071347884529200108741559465639413434303412772071109394840639207354936672459303535741821251829530917420974420359759738391055107728693780429076092627017442133927267817254500357284058020577808962352108764624119448959593748845553613172587884178710649363760733245408152046669746808717899564923297770398371667329319634170565991625251636899736413873977705979240857824830663471225366894306157439760176816918008632660863013747434553432400374018466002883513572098472725035393955644919712294326362388015326949709341250509294450861559016238749593075005041780430018665830695415990808199535717411952437418051596625417712378505205778886244880775313796720511094706379419107201516723134769220799428036512132742306882199140986186863765725374936105796965100500687841447827902518425563624942582235199305286698134825153568544144507267012791340592516379480561516269861682917542145760681437640056138265385258744494630595021796315866097965785035493766175891222491014298920271613475372873251299920510040300687403513184268210970859953429821099504273794323072579981909709582815177471318550219794948207263362637278377447458704294133463199566164292142280470595829421196933221656289546514818950918236993334896313295014484636581188028394789860385303481935265810826997302174060743202460890792664563950436138709924492784439177184748177648337574015824318689174091394479366452582297392627036154975933960408943933687360732809327069832501199478777643704825262575852894987710186749739738849055523319256164829231388805049658760228078853079314560634430997022702191902550976583711789038578835159784425839753390147290702554033166503537745130391255693385875182746880239640917745870356596962535860742993994021695760007950095266964178432399471079620302272690208562960936511756282756151587012957044157455435109135318351716315171100374159638978549870475347273420177139717521314837288164210310095565412084706289580783845111235156194029608282547098235836763626929749836507625968536370479576391327309410238503735330038931597536630806563766856717369208221290296473472542854651845281568077660488807561696701382304780161793445425332127507274558169698784164700739560867690559854050004160008828503681779260253724208556715484901706324815930165668423190173471864388611797804757810085106966373819989197101881785528890892835102053709887747734337729155289257197806951908060856768737817611754171194402902303636478602316288005814278547484732425963627138931438396514819044734302112223579504753566669981834445980336812845897892758889042893552212826354897499205654153446723298499940652888776129251790393375638379135331233068238573411845779765803540881331799781412807882637559422231765558941648293651695760434305479837031158670197269582908608724159162777923511414021879736438398265826743429776571055842273802371823316144241148663957032217980887422399617936184915846742910197268240647380546124600408734394572596824627774827244780661746349663373729231347235879093424464972798739547930574411881524512945130867580013778261333112049463678728652987907609495802641083875805216913311289206531786745593698802573989069417290200820559199226764911622331267708587824256078940327616903934274154381948331608245671812674231002156529277101827387963688628417540485601665119673709970656982002106103380204763222878935295265167109808937642078082780724319417658124619205293994474436666297110488035408225783441166867630256317064106689816685881817973692466941045197677588502509972967542724738475862738882290437635929396985037979688071084915324849482926960067490056586059679545195067368238680575594607591413835216250635293087507449409672152069109899997986924368500285157503996718697057697797727544667520972418672730209151483512018185539060410290461085826457488858438081028625425695617349020172243941154975938847014076621347045500192040949183841305673702029399774069197519110969133726314927899292608221906560711817541747413489216890563039508722536276689461618850453841292841751001182502178665917689125974688295905519637394456357878933962958024754056912145196084271993642745002710512191744805786178212650751425044244489876072226331732227639493999754503881171376494910409064328454598312433232353661522845428999959870372321277958761465146213301538682188736463723125714482085938155767591421485521295045646633106219159308323684053995144284848943134790243586070120675104813967911411091006757629204155483625874681001967878839048372522973807420158957071789732300568883029492059650178229764112727365146656456423669042451313303876422865343627161192161776989195948026969422213833509696996448453759630351369394374664342500941840957139273378514730982600329383687415103268278693158196306455941076803904365969610699205965444612213713554609554919830279730287201274375795114583156181057364398083763181853755699163764560734497836087895149382666353551345060945048050888940805210008812793053078224273886159438621707727600321601557255859802162651725707918457520326054896473137849228706876393696261546741464964131091295541206449701731966372706150302478918264226430550285496014276164835555108526180973372232178883607709481300931465402931562757687390670420968430759956739947076342541055402439158859520138076565915218150808311081951262080415855030071288327107208450094927844689006644795065371590303024630958061844538614640591309575129147011163472741460271128664735983827796467613002267168500825023413802964844953410546548638819305598332225263360696282453519717069810555713480578455488508345042041087800291456810902221897473203445590135547360349122756606506898276749980112660789337949852959893507721745215023734849843332368407103570312159486566833602859201714412099808317826204850793009113302833594927639280095361834601947293917875045729966716944581099663023879755015143311996102837544576533297221742029784682400863817883030943100000945000329794477062290439442660467925227673182958570861480042784542901492810873407925000284981794701835192203008381826629305633133487529370150477721093021700580679925281097314161117090460254722574695137789676981261613523889135767174070951768915027483136567695669562692170980190593114459638489723243429717858671708526891521021430163254965784880021317306389069098834763451502698458016979423163055549315734670034243129148070936451992699805937148269367392246964504346200418209150870612802010493004673460531992537936122878660089268351626436388907482179151209889588183000068208889276284733263929765345994528440871906461060046524062290791250682145098672616673911143845012194892358604226820779005021601700828002084770715009172963622189644651999850083684360211592027237380683533145617217617073356947624574461444507803635451150613284676972225878212896674604112143312030095310520678354969384767896373942325389022504049258984001285891586068998413918563117238326616784696274052085013023043087443280378575854161774009888932292539327416271872349953835521247374248995869164401124887787559969091722232279022960791910224288881788762691944542282271525775965706430060562986699880070695416637998999334305177283933612657305091753544201118824575816716375114100986316032798130546714037250217044268462860082683922008780237432907324300217755676160062281453889938713331288831020636734500048537324239830144427855388817510634672789678482997293133067182689074700701734408346272516903235551801771845864945816008458084963942933385178616153048936382148689690458139844534431758055292066200141286504415987299142056136907845715109291237372971213202513549192457319225662900888216596523572043568398327498390967825643162135731469757679129905208615193241836517498043436101389837710786228822525692030032166671191273912933997577793683511592425888902396802571700895739189521342609545281864554701829917621697583306625949075154268792854221087143052192018480495789706089260863075871239694285873478776779826926022071493537336458692845782304345167495349852264593304576848156686210857222187177334255692774698899450686832524102456891242741382991325957767675380629485116245925513176893661412789518565914248517880727519309508290157482766445275124245227866957098315030110813759918569718863183632138187246461546292229110491855328243272527558192452695545752350754202544060512128151817076513133214084721024507293246629639167303546617441236299368337445678427297207735740999553773334698877139606462633631704112567045764041606982359828424543035890799476410372430918668273312366984551699775794192220356602555574064385738126079846839209275140322938253706687751510918044051141501523308811885940062687159414505236264658169505070778028150816137573130487922251307213891151555478162101808906686082170297568634054431387249525526252714346273517517707065108774356407377002392219289452797045335971185498275007312909638010583430995838851873043044544217450557495739453281665761614540730155435160321414846397283808598788098220397930107459516614893245840947539646222241086557896108232852969291483336098082860968723101603675663870149904974198673646175418396900755385774786403858092197198745460369217927790289886067035073803957603556584077482409371829348899806012525824007254447138802802265564722272662528051309694646851193743218424649536109132240211501484761232836763169143484912606050093636247926841029541084986173101408130063811658683416754967036762049984119664660634613007028528998184861944476227814959560623707138907941265541116496176590859836998414890437872607976561981493286514325456835603846608410123399848292876731874865613625758384992383086549418287251962644001571577565693733502771144554559343425201057352593718538061126938255467114622003928816679470446728520859556609506899554189509729703020729188990997986596100120286779512530518605220460560092872558288446673116586679124301235068085284966016171098968105746851009605287392682582632558702488016517403313302429677087151064752038818876590356378537429749811319830871538429689712154835121467803885628116442676136694004477588084357457406318426376091062855695078750057185017189423864082952268177917729613979123830519669813677053373810739035967805377585001041909289030675706805558028502322775683188689328732405798036637118253133549618406219408387259832254458147718577755860738417640539322087070770364699591121589140417490808677441456506444606632713977146863285469974784153619434217878916693464064532493593941303845225703931027234258259908589899822292708938671932926311302873186105424977972529247365948855463409287724463761276611906654743190826770546866782650967004579304250665014158974047311888588519699792507527395660734089177886550719753084453089892788221538405331392344717390090972466910999135010720723915175612681477171578022783941903701685180424815170877291396325263286815318647600069619760425886788135215719788559404470433043396261008051012624223354211108197196971502062296308579104899887147520375740548616346053105381677524354708469534518636412276894411734348109926613663917970680412818816695316898830981866969135661455397850076030704735048674252997258411859697590051755810429850122169692175696986691644258557161422842621900042570416881494363010515389642987199096429665914251187431728274226177308865434784953455769398833277683456797968545866422062035222858828896690930994507405156226116837317670478182239020731246950451157264408859663612333409361277389447809605846976616179229208437097710554152315087724609120229802697138460417025315525587170541649840326167199704993359766382980330073546791036158511099616358567181711436494244150160657118481237297709556076646352354189487207723607311170727796027745990805088801652518285198893890309179819497394594942345705468766451951791072114645282466955087422160751624152801844895068600026888173258067694892382525816002331790007265474794462778829987031577925874994573014868033911098666109223378795922062520400783006737951723299300005362892307186016747573476059345175248422287503099086305199096038121402508857072677993175180089831418060707139742762823582834404986075801583531484000883733643927453799494835118241257239961698962805443333894513760764004411906535984317684002686051834348198089129821758166562515805314671238474537881475261519352443620138044638420857232903440302938612280479810350573489254886857948314249388384340318444618221463482534853074066929809876271189426318384369745029109235478610133421057709182461823128700217531990710097293307916630074887934888738803313920321276260148595808411129596506623687818754033503013761177441590569947590311093870750156691845213508902103631183084310243540046835541633861076602626476131533100067188771976772643829404813514760766373193575372689621608225769381295587588220598066740092282566160852553751135495884953032838807621088600220998143086492760230498195596680259375925321035502405485272354061884626732874169603744611770509548396252101417504360196133002910547017212909076090501732966677881114694010513431640618969500323205816800383661604017220782775976732808178797301224616696037590900009478374436761484762413325042852348863032053055111525560879763377971882270792536905097153768811230723809402921800276009949516405534616776181112430639290438850983402027040134392920079658597178593868263458410378344853126708769053418945507670149670215789321813267335190084098051351705395900438327635578985170496908286056461688165912138151050302240113556837090238365112642480575158107859211995173295378463543047223220784388275765450410874697281617935311144814065231031615474201455144581678007307532925949078768418124110224729259296433261639775810932562159352891057898182796652292730979677305495240728884359866864307000562261753299985748722413439574957438664078847208861043633317832786094466741673361723293211804892068196631934861228639288640007487131735857071256010722317602110086481175330978239678590833201310004905601188221723270540460647790730117632328555879926020053354607240076317156000404937854364861877489903511436572935044945169568616669465238253746856968828546512509054345152716364260332800566456041190045355713958852867743577448689731984473538052160517439324588773718378745763989738533123314555248822345348801436188382395883248500155319381366857556383616043079750071473629893094062219705875273934991386636761572618788660105205803832228391172473541361912474356419863284563390873889976982201867361230709462286264464187178644193074696777844667856829267874366581332655060279339329384355721485203923127622547634525164823362150959830366551924150837061794120159412602709748227226536953490458140593238293116907848973528222989778663680380909754129153833539859228700635107620167563731616900954819065349611926105397384363121220957559357501546437974935997966651891281631649623047875951242459315003164340086474006487038530640206016893341885937433767313248187041701797292254449785238201368529168314217196943732938248941754763631994207899047151259187737969132209332431739335193516986088159484206707782081575684134851779031885536116961497999163705223309497602796985067261042676736737193486454065202068794152376775779142764801161226826714538730239627635012951854670938027087387919291139519370049902703034116380238835469171513320445951985688125570773040437609988738751078110669340176014295243328529824099649855727165493387710070786394993998297974364123833958531768203879551694434689291787881447742973063154040103230608398359154711938703557866738530130880362197141491340264434038602209423690029972753561616434050608932259597161341833382928925090938932660013315677338705463463218676056982489619790462868884174948934856419604499889975218867914409661683232734856369114766695978383097415972656674924008219620263522915799013026671025515929520548849931240163330592700130035221966180872909379143724233611963536837837478735993062728137621403291131503118415811003091327225421253135476312161186072072738037259820765547721258542448482073155205940336212777379113524481452113444902101420794795264857771687833499642235061508098871850142208315629000966860824029611356020268617385724968121051189333359394541188957048692221005035306183718180104125758510926206686005275107412047322604622708336924423375908084104698533456287614855273169983897524538562085117978369928877537229551084976047387771199372357356548277179011464483138880194714862144549302154634150742958099507691910732170718732179936308367219065900347605860620332991143262154522623112249693151684116089340860860375583587720815145204175293481517187722757487389893508109283609378794163023679134327996705708519297470712676148683736796656474421609482050247025224201965362852394015537724387430249918040233590391460222435807779253219866953138659777134521469128430391325570998207951015332763409070953628442331100476835116988117788114846409753528522232252149393591389191038465904573586442817462947852944963741360005002631163104140413417318907007998569325236631200396543800224076157447372582727364785405816628512782327774703057611356836234018542569466365358480775829990800594353419959677953085295982976144426034222657038583114342168693948935632503847856425227272133779497996846634595693528678718132971319429034827324736670148294718478946212721245659570210995086814195149539488983716907480148494939819267889761768578815884087658419493495543325771531512791100896633241186348314265851997501042490706536558422278599286847078124926717881015038928551439252376155149326728050216344199216060378835707146960380969110124956525863073051884962646746246995709048430178489991191823627869381029304066113114772423136638300851548380185905555906383652917139980920922954363773961198737482472476900004500620121266072340688923873811390350426314362865880354558928626145305590036006231817154829853170176670990323467797775099474689566830332582100826609946142887424498456891693287715752924531791815651218374094283982123081428665567548306024551304567575171468722113083342713085954396933253141583283397624167001294058630793306208248418945056220353847178918070089726289388403894820841098028524945082905904937145771872839141055692650095647429284797747003262768691423126029282386438334439190611109049445759698256496198217305404334177734230959459868320189201928490154903313092045970950501366560155045294197124552896367149415056184543708426834632451219758702128887520094371616366108952307616111628418394957269099828180441218490117505391915061480714065809093380124777649989557724338742432941888441865749776098103301141054506614477225686446413370005891663178723569243099926967040288885336160792461603813309220783507735208940842600422528244540552291783674817310892217482131195508537406095937643385185529081968264701215654197485681705849558553152468688223629170611165747400348094118717037473624097123099011714301364060976254331639726906930332730788322867711162860721081732717800511491840359501065631305770007816238488271394918485171392780088462616571682522218119244273328444687795221081805232085160463541125632910063500752504435354466792128026536916112525905854114283482249244428324092373650102764619210225552268112579864561989071561434882776258454300732709667917632340430232276100273497088910331924471474093160203048859120310179252895156125084012173447854655852845962352691706186746844062670255885770923533368123548346390617190302095808430003494451040904787307740835443323866007610992440145658219559371105883572419858061355023022113089418752332266837903799471077583395597312671716548597798671032651575920623048122694522640476842460979669691775595069521735376441874045014795360398122498089737700178892288363605764254786272292549433835297167909768990381715918044410780694276154491799574085182383859667003650406558807069862693481219335436065707524541266834141954667580883578009867162015534472194768082083756558494525801048877548119736143370320184162885511758453556122027785656941891100178707968504947778948447867372348254109899192973268562868532682409919972259690554081711751580061800531563087010281466714707955418409780721318413985267841552248874968452864263715913511107935988366418039874893055243568594277015124528250591746271749996036092143478224996533330487176297168960174908312210100583290316769881824024332516004515308017408606542797605611018883500378770207983827911069621404547362710284539658710160175920800419792144815777949003644737106976714674308333317617931963864434076129532020104110480175596369113308194677377326614441961693002584803528142198619572841923842328191627694372795646187487073668180140087639556917500500841988093723089142695170255855272013000532234514187944804894432243050118354000990232256612828707416629097550334956610446908910816282138014461999450044402547324168397995703743606853335270198558619305108666894715292503824909894350267547874079147169153321690105726688926029890431285999639563314049909484836810406473256534746567026706293052315486437240642385475798598144382500985317913189656286455341381517641157086462533704319478001251028408532259521790050802718115517657643881217459681620630473283249698568661244038813966325214004446073884460230162516312568441434657115388604026932578514939488388664884883245169711446979978353610803841015379574413455345530542461814659632334643215388731220661921404686310894075763311140760263969308357289374926796349229325712780076379797379584010895739055258425831987907292652465738659874755548445477541824440480775038964903555301144102131895515413284314101816939096583677028858945666298274689093504878917046504538404170067510778056803791153596231296508931473050506555309529094826967023859569633238181481309294684966119253894136735902651911204373015568626541703971184523936532215055774433459071024870935510877606570272193500101203021161497384750497588292772612528373289231056302200432805016297016810261548139372420254533235514285760009075159021475527906228772269430409356057411920595758343052509597835051030967936331739817417670046262115701937449054135241783555825194638390176321281613952254534628190339035356644239581074952884633210152837945806843581166289335108172181633709854800071726160399323220152931114240883493538693016174458793397099945188042675319674669487885335352804546037004119249524083565756344241911865698331645159679141462114374814316436082085043394005526565454830680546990380965790145201852552511474029809816090255885690395356361926960871910193219220086337433772204451557451562829171862572700802011609574445961634239302046417046865291266964833422662462829676941280942511608842670829678178178976521617164601991813780642700564483327118008090407772996833811969557780830991463440623748182179027635533117412580015117988432727282753939373055588518256854943667785129372885522359947959601933234725116984144358457612615021992490339270666862910159604640708979068091971861943435387910001658795116670601152692572900415700054408855980208964637851252670224729547687124321875441945488567006743452292449157298164065283075824659129939941655860550537902683226741046909417308020611508258391502003360060675218436921983913548147039981289522728718151895247548103516384754080353666012714028225053370477990120586694638212490299593332540900148502738349060905755232792376182736513426099394330429041715313080907882051283876254933010861504629219476777151734636021609368183742826714045442825326034348441337320937091918067858732402870149566806100279295091669936602304134044767543381140956182664825559976978172176898912252206385613131188659581385620339855931395006636822546127902972192833643416367459356640194616923952699302313643740829537613328273073312303312391647250084382735082044298159706605740928960892011074086943925840191668624632356386923619664414957089923749011417532037315800103666092058273390813697454829308212086065382933216783593325805776492311963490887308852216407773387079786560088631219832419750331357585273244889369880116743323899627896860730060573301810616387191693386844049723285350599365397055601526115648071137145294984766671158830190914840387150601545496912039343393506458543132405052966841482875292946576139314530514358962558899557192984304941143536565155932525887312945458803498989103133308761417688555169751548195094976380276437685270937719554454464458741418218985079034185556720745511487763031844133091978446884429941046770798601748272246140765031072462661506800606493753709121547202444448596984108188459685095621046345216186420683391908459322447272040040316975453385211406654178853726907333657743321371978395887180694567459282223983470758472359666517103257254794976715992483854761777991300554040942397167863420204865838937633843032252842668806631865538873127463921215709038805098420227479876490301406716365953274583318727402238018152422979037460348388249102777283794131105844623798193864377202287352188954373862443488137221062591827322605704039959137395632816525417916543470153378247529245499040294560724930800660921920020142174503323568184529707931119408826843367839797110583363770425560585076656769375929020104133354679678054305780365730193143206060780376508329943321418589290391264940582071222179918578334026836019050594591028744323223492030343410940428961009959366995865503674272045771006329403066501851278325306189550466093820671507441485795715494206924950543837739666730382724271104961329775526310132024097167521641395231468010349784260740986626210253037131084806541146342635048185517136252585385300138507618722080102073020119114381325448549623107158489079261352479938907382846137548438852199399279686902628210444646314340501073826693381360581476727743743240946096154037298990185491835586979350867949079595705443524164009492425048904103345275158805978238197088409764922160871540214708163885978799078001171711487868319048989074560015124488985621017225219137392725069740572393500088518350381532017844523786352368970664595293257717817134815622241974044763627772703708626723286621849225440934035709080292775809930017410773269923002056287379496723828730006316125233360990318649282715528508389330652740599490676038847444958455544640937988897164997400716453756740311161877051298532638166410491890639814518486864339355261735506240260208672205277197093781312759471427158018079471947408602263884649130594255688893026616222929713917115663287182729841846627955156235121578455332802330858905003856665954019789681803153616000239618085737328823506241094702471179187963696473406765934704401928151509535592194787551259404427860429542647287692089142367492258709243818150184855184629047053360991803585339884965257660161238696328724435393794899448558831799835206268802760718268962869919697138467595415530859804738818210084432464507244410862324999772140234078501388756333650771642748189793082937637108992909701173338753393521274877321901851577433014037478128294219287604463310699751604447821845666278433470762456513398370389470571940786555640667979544801528949091367341363171040713802714328432733609161352842335413059403494804019240080090428492795244290295978652578515898831046994983491982882228520836536541382446032178128643197044870677040732451651945476838324524673317569210533513066669253701234574981741638063694970225088626127832136449130692899047966483201716338657141269440665967565810036738198106875264803797153162476896927116432158228543698565985886874359620885475288532043908948600517570927316159053077507268265821398325136446121951493654848355172903227010120569238055481946445660737971770045678420144960246119312265007996317788389553304887098738060598723794409403677219866732110753457867910369621202748425146467220544054433136095000983422548394723675427402817844724065231945804766343765919433334943045904202197794074505854184311058341656687239511532821211561379615784917598689075830700078273268205482483258120794683182618791559540532877260867241494674133492301513886161088199064124408068975536474483251529929215261573183550179526860554340808854275926541733456906841002722842819462605501779608569431831549731666447261891055941670584986839356914321575739210640749261674650913827774709596897272213948650618900600820735834126614745635565070798390427471120063446798293679478738990785319946845967398508330605432270361323125492331928200811422868186812539637677446286502289768195154108614422790583165099063868027129941609847422140324473334015989928593282377216906936079112839829932176660956529348382916453855539420854685945855803035778414791023156646133830383097927940134365354924350584900938013446061194415150163066519111277127184297503608992339401878650754500693185677452405535872830934167491528927339510855927684088631045375009437574670170733430691982807961522317175637590545336570809195145527829170017679160112940275978742757751047208941640871390715185479750001353740767602181506099680845202870748239880310438089571000398924928826221946474100988603472766123077755656645031211239540905419187376044583021856250319658395406010851117852761973529534865810608223010152627675301185643296688252646707554614321686158893225519856316921940884980894929217850550623286352188709705815525092846303461887428536908164025445370335575673904954339618383378852832567257269015862234411194419403222354135369182814649876759238968623521780424255786336128997821680900156983978269673610911555340768199852045091619157144766431319521696612660186743276394574533729854595093008314692743504200896365863733005823327720083053651729453441053779759044098150482889849193456001197819583453660168568933092097163013006354793441291395980339635984920209288165850129527451610641538149928369536723034313837138246145934371720560209567845179829488801996472384666919397296077713060621080817870279116205626700589214751498006492588709764491520982147476942037346449857924234382098478651209834309553417347666186582163819248413312907170917665347878659435916585620971271948129011743935040354128333021568806687761442706906679150885800968267845379163591316227212462016600318849679390122194947589703517773511311010427364903823980679043400324304192262708293509740022665250025028830992641183041904713613706739091873962827254308054858470133224865903668207022193180820870533209618059048169196191596016730175174052771973187228904694549145386002037729133119247872390372588673218284909567813802276475539578730863012533160101544779884231678874951169084283961794898292598908908715546333990143262189584135361064827832568461770546922307015757668404565806040774968919359312648712484486060842621056612176367712363749572823904462708878671878409091053270582706066433555080120493549245708697740440734848954291209708530441034628381024290166710735224153262698187813622246995685184504119077993853054225781954094718909864540688522076510969359593851626893303304897646143132063003421277716717469302381382610944039950432905770414635905232842707923066774225059245930688200730611233029317660012638111595687395526344949349394413169869010467216469863434911436487661034095485465611604703173488472534027475743695627488968269609051313525383492830153547904559440307231533738975771632085477922226281991586428005173626068988077265379801329360316751669584482427340570339805088523200889991200036652020329856178891023310691392893636780227748079445163148658379360615628570608184243486651763138392434827010424332901238502509268940660312981747550031784659864808573930496547220848118737838988410569458696567226553836914506078301443975071984234755113443600831578470510330307860507786026993703826192718963898545576496147877988720852743791634163840839847061299754907831696799604733615619635067977567868136488573436938507154145100069670478902453470803070766361978526679093643727543258711056583401879542579875811604460133790164171013528242903933051582720507531086641342278457615316974622000919753272995587341163930896476363582897017857905845919197097988605186798043756884919914147246703284082202980358878665273035000590356458917705971771115692719265306776172488905668200889742441572954505605043133202780178203205704653197534002744204328024745183713010159205696230793171743233446182462194123817205371002665068810399440922572303736585601164655415012174664650583190796842703117757272257487325645861887048441494197197374060453435865305270927633463865554664713520667256541128460703482450269151406003606323786564672675890411666290468286030788797219095766131050743186567265049358182847485360798951921133407220834523631309232363636286322579396245250345294454887006082893574373038965208603376251760484160164186333068227692459198578894240470071472439766761811163549069607816683366302989715421283382836396162252648821425627212818784263640903633429461182695125553914575921053912257155702032833455100535131461254050339853987804188408610233416544771086214270518800749074919063263172123024967231938941342534763119771826802073682073468242095552313018784483218440297620892832355735184048862510938166989577470128861387854065640754309682413106832282874651330516758846948746986644540262481628345424726386301606137898594503335618279766473708258569752786820385944747449252535493395640572363717240935480222023828036450258664317143892597034378244556378203344804511879269281510680224949921142659194666493687180194763756907781302968001233095592183479459230843398062828604962812314818516361474562989294724831054127626980201164197777414719215418924514203227406036082624646217150407112308678790994453565663678741096653234320110016341560154870776505099276644552273970119104840664365176216689678330865886198098635118826432832612323652351060440022241334989576627210887815085503988640559067172289580545823500549742756315369876426878236251252917893112983725487332425668829081921959592980069709834362103933433702549814848772095809541311020169683333481261546202215573883253131033306398186616848842682331982574772481110023739202480517651974758704413707933283967531584965284440294370108662749322560317503493065023336571679611571260720075384400411121679413276130918917061812220708182318794557237626378203920854813164772005992730334917219763716400552237133200241863223865406892952736402265047020340036476338077414421214835104909510173158565881299665619111988322531725145549678053324507070961284855059323107533809053331356982300787567519860546850050471648057977064509579577493672892773863837421817193409944130097270585792778219042621641865171889338426147389008735760576836750299610474065866729250937335249913650482790309885848482323932464034639290895417379042474951576187489573708984305217397247700323855645865679057254692140999611185538920929787675762917306704470955664666209741302360845432305838746496174112313797641629873695015101690776459713078116320114160511595281140011295466782410392915313468870076300279085357884017999620489185164679941581358120636834904770061028648776598305740016803578336674064072412504042391297089502423837646143306632317308753313840646812897585746939614032324773690105653839023533426217764300549807126401297345445406199678104547085580028457377304597365011291847155736351288491686707183440946243863575622234503697691756760286047703135096388917266683925773475330298086675379460776556550026334102977152918877597705997704746701006393321057304940332162541110179496510929724685559988144559909005915756696274365913467578471975351025407382256222716925147713805922839909204030535955237238929960592587614990854849941337169071429624168977401530748525467158769305219880986906614291546557610749509942508193961012864213599446976547588539186660438128119604956780704827233036719019184717218340251878326793974538872508511698709543270560925445366241982889760071754281461389746719815355788045956513493721726127817444367985262900090492200947991646574415675020556025876113031840913736528948682553675040218995522054125609847070363875741472937477587704503057225739121640105815596992230229809199498772034377427870508692094596665546831437601632166556801534632963490844868115982415475532316818634251623779470841413010307285679489777173912225408033336787789468049102676138275919274108550506941580678237293902199180653032319730537608859304289314181935738969163933416474461028303967960067199738934746623128185065920932061854944202189012799855161611913846751625059627136375438070522509516063025206265132367192664159212951797560564943568375481338302533137652488277388716738253382524839181413897156896391939386997595889811344856028389927215682623068136730711132060475260612876381066345155389949931446523547150331110550338767835067146535670901033327255622869785118466550926314809772799427984244069652126877655008305306490576843136916044556253009425272210909803748095568388416826204581719848328443665649405854895654595194720378960785148913120904905988455771830402848790304521025446723668489679831731925945014348149882956334024737208138132179070349299159448149211102184681400611627382500439847356370012726394159009731611013556007840726544658996573032449165181124105708852994151301115859551994664712597590640507990836249143877040596074291214291143140115476498817489641203215834795477359744339963128286668747628047302807758853068675505891161265877706103514628870019289175729599230686862924870713992790410460454379416537703598161584769099614298253217107980790744468486345608405802107428190163049633263061531186570917167877570354178067653003061898996092791494232353498652921736541680758025703681227444401271219119873860816097308587200769137957541736016422414720452480406930858675783304914075173676289360397042287392392841540928865993759970814669274286987410434983555660034663353171826494230806443653445477133969606974579271484081778773903584456831909336119103126396123678289022975004809218465240931672302994206079970502201013085503058921233354054416491268774017955145858673061567033056599746569685096875716817815417481925770129780800502948148389085740294003659364138013832381690643608408798512819599645577102300937290556795909093244766778022114089155209215902389454959573691231069383462074622528829756460724167148073047253228727163154883728193079866663305186209582521660671026668220256854320161607315524692822022401992484469023690984282488531205167310079196838704384718997545745243971044467867576518518633759337424762816836475196062162451949526080602974593522043370884563557533804293463236686323680853126795695838831486653190750998762241834759890379334860195558782289312339768736384872443294992405928051543672565802560939266817910804475537273728496656406316949647206982565131388845759868055370977256084954998487420231869811680081903062686046912532977856891796618764218246609897397834499470961281854310557467586942961592913920504388766833531039702924787959630741526971199250877383810012129855065079232900368041929041252968949616129850898789795630522388821978786215149573472905952754562040114882119917878884971755534961866813148225017395490746669348991334540922066098707971652592977698780446164548323750035355025891734872647290769612009468558412693836941274247084830095812049285736964597474436674694225014895737208937516493803424542706584916103056691734731742672835201225688758276648388998147983020333526033307472548474206241804229960027028922612450966267360297683948647046270590357130672913466786168816117424030115543847423652527158904676403213830412599117434772426023719479859101266446332560680502059684751800336744553457845912283937615818126619676246368614254105308428712091422201626013291897031008132215108649979621140616579701547501716404092934616130185146091341886073123856288158910079255450974652563371370986273613578593652880922395467909368518271005775736373274050659691675040707595721561050417212698194871459041644497385551128099880099971710032781585843673077734161166520883966825697799784877132497246970283072626075859956225018179316658526328059191124635760880068629166501740879811644583270388734645884001487308684598678672184250919884990346524764873148144176424337151116331631422998036685310563552507148258987220325464013736684625655041188800101933999649069715799464400337738415149351123025931128401287313800162181983169465821261108142435030986659268838551524855449707982615276129575323941242213652595953449179259522141002907960386428143694882696263550939347529300079578208023683544714653980761290527703061149465900821960601249929899124069628506099261548841831422786922350800592893141263181019859275034015027205353114589093575582724312333601791895773015684873236395152095066556556485366003931369812749884452774638945145966934909341981195836956895286184788968095687491070189758225290560442847737795722583996539304214564128046794939471072632567617382549647012470714352393152336043629553774218524746025578132804094035429884602655288080407243186240867244655332196944617388535799942545659734461851907878282443425786691881658730563635044755959312748192853810964789067543816052240954044993444550954055020265763786334516384524229762935955137389172742404489374058318963073911102886070347076015510032780853589142766040846041663202051461652371654173062571454385527101055011532798268525542671358545785929736214389900293105950714282525335883903448331975381748963692947232111353169786022650783959639932733022068310690597303349542915923493320869084662585933333603844577935606374167425500779658397927602546803362078173071312048571119440447822335346557965563780760630122650535182506146505736631431343007029443348728368181408224819926339278777350118975165077716186490596704964627090875472755672243479142015274245335418115234199215667459454009364579374126431322564409886592090888886512022638359422400785239076598011355167727448570154549420913812950226195362296025624567071717923373273699482064247008919875943297899391062885719001380121783879250605621463467527343465931942056050928613506037880413608792609620643371869000095704395366911689235138690524855533766348867344773023139327773935095332948423561136014636773227614436080461300715912089130404472036204577832280614188439382089742218086029334596359706031044350205347530373694314620107425743946847219924744952738860590940707266687660107850241759057490346421665300132962136255687997327499642871885981334233543900770804407444556297490297983478797554842877300784524410238656061111184465457587516158492745092009909419174358503162506280611342516286477262794478595128720747408370021303666239898551661319114293742253435940666726654360494307019325991839473444406978087822626765911209291342374452167325315407768098821753524443118306344449021682248824346031071177207197148227543386883849475493290735736644933248967214089267250062874496573164185950830529136378454388321721192559809776090212405510715434754921236749676140164456728046246392016819727295983880806951842835395182370226368414881281224136215818074983012015393373627462244162498142926641051594733181682836109450845321062797133841897010234947860412290476921331069769342730158093991122751278761710538892936563295827685753065947061695389044108677386195300384719117572790034708984129479874829149611598114580635710862371520643844241230963081611603261297883625084734776565405649998721127700356374388883708537911134783331640993372766743992654429096120893320071504074908290281724592746032990553832480889327837084510180608854283859641978496526544790603249426420390975217652363973433918967540166258002863319630368956298850810932547154739807544038654572620780019293790132067966549643183990572358649073072137148712709087273459487122441766437041431154731087745693306452573990014694308864730435358837623750632987148967206535451671871273467241819720891605308418840061617524198173353774164844955413809054802795326672857246271367459266740493763825903379128412238034179923286306013674276723883822819971978309556128815096182321529603682564079013081001083536765277043752899329668597209983681716917515459198603572631409970039144127884155785331678164066569449780048457683675664237441559695088005501241198941818400215244570034349006577727921915113391108412062021831108098255636268031557893904002710599266573713576979192445123162643229989267744141663824133510087270969451655055350768752326541413250457660472564055620034063913273162285549625735598009467522744183405610197227807011099070896885480139041907183695656843511640436494674061614187985290516589580171115476276415481053945303726080246194151551985046517822526819500807557297758528409931482039111620272801117606923713747244769154625060826571762323462534283090941933413758523984606577399740420042223796260969561609118417959268048461769752138681792249035737782756092586271086997521617460175241122519689123694837496464828599119075208897062226343613531551205530456027121522490626521002249067545256468321867222506388862205698509343468490599223934461328401421142828564296703809260731448981438128976516579760002826119373948170967262724069845489492091916848283864797105422780902951302626468225302559738409455809688549864050180691529872834457272138784884758632898089771542193544702709690486003222543057905126396148432012590532994236027339456416251297940823190076962319288088467239525139233506185063287240695121694897007375836342632902201750538647672579091550346357518727300189075083697420413726485689622627400310482676795398161401280530841759261909426661497381788694390170855831616882972030235126587609654262532216347899452430066995163111426281647227241231507945164089902189891387799787960947696533315037039339793540313228909388761465727009938639008431827535940483734114928512311429568007176523380523232338726606449508807419385924915906918313071294458963355430390476163839803755066775234670999105930158632787887830648786249021333328897442605536238703835726065386124118096912507621750760386295471402678913463662887870222147852423467914998627620337563063303024856242665257251983466808605173655592897690561040991135805981364353377602798392515515115058567610678341588121825408429391695456432119436021565883176718265843232343578793457651717872515458246248805002112455281420000281741419611938612069568614179301738820455606466046661149235014379658471559811110491920269706547007650479994792072763354279115881316301466875791605547571201261128860987551094955014191320006552370827339496713455884246644594373515541473165545167675410609879388875455391174718049664368986915927993046691726181763159725581891985787284107580410839807827246767416343953490678233446626788581503184363053376050319836953301838271557233094942357342771649920660803020287757196192961269552188231072205044748284289908502934723993710754311922967316355093341437178329205946302642707300558580349084115118601367884677532613870578863594217785602432516543657539838052815234061213742521293977526590456759217258866226976263962251521393631330299797590193307855045578231702112536482545584025160391831214942116757597248691400543162093188088265903352003109605066687960993590081113447807099686138178978894001152166298488526292036453956572799711767022998022176478147926167443379515915828905130403453319805054389047991837054285549167164758373439195531820633625940974064158343426261003355974817584650423596036612003420917142645620238567718147446372458801226551607121586078235807922728313485678742677766052154772362125381787971051238604982314353740396507154186584691913217381930460157305985130911509214170081390997784081930974116600479320810649734683256876544093025997119906426868773776886180783214060125448899361804966187225890375653961082702757868070540030055059055463736167084837097190537974022675886975908746584281960978011422178133502137963158533847062045147087914960098119547703925255370819328064172617878200235456590008456152380602306714291102483662687131684765012141162643966545363978494869506545003376433325878548290730000913086630795179184120483953412973300615261130096571079412168399076264649847435559887170051434872851494440404388716204469544049184612319409580582353166584605725446890450098584469733781314874343624093311836395281021055054488562503885598429140569689042313328712840069342759591135275063628086660101394107216644310990721639890410177405457737699068600167760599463189888357162708142846534731832420749912782997551416092378981448217438685834985531721066704445363896761402388028077264410977758136886749201934871575639435653197414215056058750867318912214426797913133730122288617696028196040517120494386059514937550264745105819057446391054482198055019670909186315954941072062099750683620520672708344483999254276823784618769934785355505482126515596466090662796081041806730677892494541389498800056122325837830455875586170906849216335805823006955477647190529769449069828305745532710406553668932079022157378466737605025620649110127228804621480650523792842265719342611697878789458252428667638365189837586894510785682188977347679275407463937441320682460056690097084433398683785631258016698329863172490384318274567337684931672866756636811524288110925392010397301936221813757506304853269721958075089531647447315876660071200273545068416698631272994858357440375989869515090812153469380922970254471559301106158563121874748272842205882937536839177750761584775801220015925136000957580146539512367441535725838017701296901498912614369817790288825045994532972836019399635237714451756437377056558183894117936520919345660121384227935445036360373834758476318416018732446476657748093923534109500371931398645653910722831039834770515517732829127899816004816464505545470537235372565428758491805372687507974995641539456867110799856339110097649036672621975912095811685210109536500710139870746339231742177036811552553336545877563564398927479496433616110132994324963649825436622831875220655745801021834624579223909738009341761270988296572735469369951584370516316980304616895907015348238488403105442177152423748306519454862673030942879293779964696003790080293318053474016936068294890022396310765677045017983390799719547101928339263969126230522674211856234818195568647512594578859454219751880718956615719667749109394653568206841545892152527997241447379381711853130972971683955731177561548239847739235539375349882601952452481526547966709567934464971340356189365909948911740932557001892943352158893093079026219636561406676661985382757136899991734032137665113854039152569407422601762691939719991491484575795962640568786015083541517681549826291688887275596984055094134442970006697576036729640221384768686782410429451765136724839731694966105268683392548865715523001038025773025737139359294296391405713633957217651543435295988883364830709370180223507228992871825771325225519957720598974851201559129300356301424494081721397481088373071428677019207107450308047051954219928285692627754083255973619656196907258633158875608766591681532939744066811402502095858835278590812723790956456007574568274662854291768266431688384068977415582758464302007660799537999999295573450286197147329229537366454065874076250442540992750331934787809521650292823608552531612247283852219777587085549075595898565851540634477860395621525753444796244974958804100830134199664577157290731938563845809827532175031921989713694890044562719732395345333296996888949904609537534873242093140397466761824713942822934828299053901226679826532950088485673475776533391185553590565305891415396141697380599235742936043394927492955954922358010325629701175027504330246931781544075127163445255622067636789354901757690861524282151522117197973071340569504603305157407280746562653493652160672896768767066400124161764444715207383690579084567945836711094950432622388107865450686543780185723613623587809147050450150750432360364335493963733666251906810103534636138994972455128645453014371323779868967476494339357148630414510816539411553451440480550486453816886849480065173941090133695307236018128174644318750659732486970764778670555022734204033370849741777962247379565599207034596455573444586608938910796592342524885067405841119762129015835271475768381768681578495577199171258344811573020771093503984166587247505582883717041054403146021454470381181989876743755128404480492179850685909111105309128397248117336008591647482645525695731734087683214171561919616376351014701414870131776944908496668108832228786062454143290670737096810188368478713579632669842286444887313811785476982234826630964756825898541615884643631437621165201561324962304934151057994039482832627030247504371667612373307716510924312343601111352351750945028475668401898183838819122604431791575740250067888322287297622245765063336272573429332476057995621981380254378673491034652260425165466171331895081433468882320281474486858185988862884237814996971167975910639401897375114810942746592470048680825312257245877397247022036673078563009779701116447505509719564344573981104892996696102432199190536936183256007515455372231775212539139876398846473896736540437572654175539205821389543604503160460554982306835734406718322898791010913555704405949478356448200867495692922782836591363609141018137422147975951586914925797517665913018302675456879278495677772069095484459249834989007146533076127609636386468254055987482109920876660099911354766085517405144566009929896866224321015185711063800792652417720684460646801486007344577893458367694915371582986214281489371212628780913450902120872601327242782994071843035338619364172687870852388196696161680708081651675066775631235273301112638905348249774450784430645436625940035316419687072365642096839919193029932960613581304665728280632654319829788754614927735344009350122198667116144225225192421801826065624327986621540301859083543300333410260368095071814057778662184319551671914329018491709650054282313352406112452647555127722182192294631825520528963196792940262892637108979717623904138676517696437622804805548189222430445389980061068613708195903359305414004747118729020643486655034048520316639283926235214053230043034773568066847467280013283676707707879933197336371083041972343604077947408799441730604831146653934057733548304060005703841654671054659415260759861262919172097439671031466045174072731342227895219685847797245483423602793626554480644070386942891877708961789985064855923341073650339557831427572439922161183108267745376537600002639207606171807388612781953449486120771306587439195027800486717896433074052830868438147368723609251519867062655209402329756463278472794567081396244403555878965437196953671131410071837985609580064580223206720462995789672492796349293077316753941504019117889178392838536619726025238511643855980773744231692353509193572859616593317744827341081675621514889673920313161623211897097131415539561736130102488569436405972170856241412296825129394213453863429525630707262441410329219765340242098570448405115175584975796364967660621261767885775861772064180054297041124263927102135256875973926071466416924840938190978236389260410757413673714394072855713481011908522414653229283433999427781366154036387853675845270119025104719180784689482203930392612908153917706123042005592289570660809187057658524869256353935022207129007206444277280489400493985782620521268169344720397882759772501213457430913359287342369949495566526886447018666722059644943607565832609923464453476579793849785696368785862963106401861199371097278310105024514724696997030891082824528587325135955317403834715128863449379334756076451843873013677002308278504186173739298851754095011158244076240945926776878723285050539603615393147527498662150474537485469167752494832925452897587468136969013624565792095887920692437896381558493382488037384318176937497922143497838647060300747746655300613289600053125636910871351081350622298113996220385055716655058289229147519887329513274011972691226604327522807158996378681188368581758449031628625224996157424624596883244935390818618617501364589844446614718153569034048609188503778615487701175732453363606415433393994145581755254740868619243785455714857405519438303933635158484609260331767412550906606552940649228040871813065629740864459206720451201559343760133741296915933044525713127271451204407666561115579278276142495087869484369078627617322333121416789255430547435745021415635325996931678613187584484193917518672396333522913543991191549075839241291233906466428947751695738971060317475304034797744375986224568959358911572684990615851066886206938449858831378599789701408325583222554706338004194080923790040607764699539170958697783690775443425245064210452351108764220006155338271452826303511936120764892278700356882751480620383155204999045941604650125520896167554937387867550106530988582017413286841553530417388519798724651052281010867387920701992119173879080156697295546470277048936960057399781005099241239696220305044985585480663804602469280294042659142567854965799125780673399673476292234835555834215887406930408871219376210486942540069423089669758614966821472048880741960698868980326284061076330872908431901615714505872978492955820608413452281844739888686232312670457696407841117838373639779388167379875918355241943071340548668910396136591820286351210906182805472124451351243229030503446063594380723276621285580548260853842824269571787385821340729987556167290678817808529999394536461927577065096025881021061170561700821711887509570862166917297196253838354448749372234080353172556366350821457169591989173773501798376962070196557288904152346583350044027979860600835616584827872601083911619952527371785183152891779318802685287869655568672610728387743881856881969005945952504136442504803720507758885995186485385408477256689897501888754884110025653941883285716104967450546178121031891767090841590710243365017832742306672171207634656153744779741366956234252279727868389129485211894719136605176712236301076066774350820629466110347453625748785288027955264074695324404233061213827735292148445592475023879021062182699422353265565989866745775251062210641471628672648868329124429634963150799079058072562651967240578371528291848334088647200235930563940134144521385698929871519742738631982855724887094125669677460054101995221286734737242522935456339910811011930278698180510725375880256832744930727273959797171586501438270178263558366206184935178548808853192392849022839348225931018906825975661417180467315402168886088802434111086013057252086235327018237579999159046672757772669480297634608373660957793186195958941619341079484761563794722607302179738928159238118474893759029403796425525486415772034946469158925813894068374914549181058258323698598820780700157738525957888789727902472290213868199988659754803962667980889961779207783295180524071064388211959256205049309050484911882555339045357435424743683312814375867752843877087089143744134001623666066380009458086759572963341738504349173978781488475284256364947657653642115480389791091538030664314542526958255446395669046157154504621473832602729455597892325778213035754248061152583523636781740880052933057652390676752348983683735066963695562741097151645253868097098585095319972088447087328690521756940370049977302465581109094733420698838952199299959832099482862541837401035196514406192761418818502338917005578821573140297279572667163717253056453497501160704204091609876601863829218613163235747905942967461891575312115245630816244829484791492806559038045035535660311818114068142565957842611186712141960682152560566769811070935941118320544953974474658319775587636627792700345863098036638155174438441874278281735181569666516584063944855192603744266825759609025800942485647862552312979513535671703450339102005496895563660094607993950110688950237966430776591755513144447897715743175990507948358936979042296169956351125293364860584802123162936438745227876124044194874502233372081173785734916402844780579367452670723742167789462418183655777544315796627522703610829105227817724337592820193260583008865900214215757865541986983057289551480322835825445209761052806001137272074547027798737619656411140513421981647233202073611457844868078081569366630632606137021842379480850275196880713658604774833867325592772885971813207175306274012890677295004037641017513998218108140079340859443673766814900588765667544144081047528878112510404207438454325860862762749609346866778810772197892092432068269969082149992962631989054891215216991642529382568565336804160891853321727208046989599219795654170236923266970211798855864267349270843189456559831089725282970506853021781169158502027268276341452159623188615370990766560755468577601608148902189279996029763998016497141897059584492605844207029226036892347338020913387063140313945016933874136220383743857672552267228155098576895635292983183523068199116209757697112859459678222246254184705504503153015481519069299148596043855112990464146190737832310913972717506425877241086992377252453716431802553603487099857763110527744874828708266250376080884890014639361149220078415568403856389227632446156909612361687293744841455914317691864954424148543534617705495393788493106834201020706606853388110840691283960701364400351340819995571968111342551942268857094363325508649211786379743798375720821942649113680488636141022148583039705095152993971278807248741283892956926600751939551903780221669660391869957236837758801191001102423881034273028868096950360585808335219761628362565925554727262852584885300987571633503549623563463185495067044556537809629369951503808469786537692185391968543004419864887741380916046977002724771149120070198087045781598363307870682535584456264215331169889814068522607190190447185327229398962154238884075922322581563602055588587594823236612075228623097190564181682573897159270162045006464876172397283792621657014553710342159393478151182313249070541514080950387095272826177656976740319506236409954414306214830981614394239360181191254232980147262840442149638135930938036920388919722612740482041002045700449780899515560553193789861857923343026476191951294607603715276889526831472394641226377753663416381582474529072749689450036045462901701225546611470194355855740864045977005441391396497867311890261583123320936326405576949148443786828835186147792578907553445469921824636170637654032255407347306162467724563006963018183644512740970724068663103133349328533001418565338952987769450596719120139747718557491164966750042404410675042440086678020174794419074385181558864217517574627035419820390304161635999711780882849107142320365746597848897226008004517646303235540590968174440910979441690785694596884047829353642643391655685327463394529498839149341635595789518480155233597317578956911023860551663155807908071874324200748490512394246128339119078756858522210784225624570861903569117615400670454883888372464271792336014080129941078859188141728336741879115990440284176559241069931872462914866671715287875211175322648328140846550755798855799465847727676594268500859895116747789850983569008180126986625929081285687722546586851127303376631291669937847820071933433733698771613599123313935176898715825603940393426244265755982014854511512264079089780307002686194337624730024543833533956666022243834141270529378803861645130221554430829126552968174157554665050895921447918085395050874525984129477435194328771398728447424651468937800438951516014519146329802606522833168628006302196173268158296104500817261526148312336667434539249462962038065128035425789644298026684187646198900067380139084796157077187175316962005268637094970480938378464693529615835382648573072117894095690726876934302701767497084548908097047640685918459707772360458953562807464163820913711562298037851807469672397807693153253058885947268807730023988091784396263432104889189914094883697846159290520908353103286982017758417222466016918922046147921589167839770303678807644778324512731834037559663652716057738431099568437046265120784364657968536970937926252039399691826836981514023087277316231576675087957228098567894083869422396596204975281529433892899216680499767758209810503192536106454606021613093187809591323520948003214159686735452804882584316769698336039367329861458194978825775142620612009749583602132558978037118438311601983536696018185534136839753593111071192648851398484884548890572346545402238489266640362955537093175174602733688824674928688220657052417912494367929497886241326590130994617809239110330830103585573096236136821804264064003705860017838797110063008238922610941428865176435285312163147366077560295463858203251622366026355313619186751134243187187907478850164999415239345667654028176701256145218008192564177734887222603232223994833374613747513888709948453703059750864863251172391473137067841256153283629005995079888336852525770125735578230740675769997323161627750294528008626777365413304162045368179204761985759970878100266638525858196181704478297881964064922232362625405560244192118316216044571548578270562409275182893873582202007500081125108347023993401358760616256676822944067024218546347399235604317271244810160707212593690908159618152029005575004991744984088041407666623422698652363694530306459703553166578984030879282157942956580646285537524805424625064637933708095159233115211165195108185823818732547129927398367787072463954027586691018409225839642753658090647560531617087643761224095189235402852685700254660637752670996965090990969027322764140735238860394302970796324121730981981887846967148383206947463863725556855832532596878125296639125639504359882722477877767817698419698114254214632681144463045107377749417018407542137725944298342029947132216783446964585504928745119127828244824267031598519305953347347271374513471743272929270806721577776835842620338226474381388822942471838532987304229195959679049294496361494042574382353338646075999362318891422515703719200285970921067287623729234882938125242716115680616733440792892579790760969385522375597806039473042051437968634067576213728748912462771672866134821036053940949972021004217870874394519168295056644008070843273898617921472201030011420119423558252776631917961620301650910828951003756182397824779434539263855891102806715739452983538858477393409631761174462761991455497318651428837181647079517091462580965649900721849165493920641623848857934197810429919791313729336874525230240736944885919398773511495320738032560753346104140818989567840435110173953390987657002182003146123877414567106836408469309716623633100334213833877780930936251217684491677501664849565768038634050205855187817946566402183364568815985283762273437499584323857005972115075995279455001467307390451502895408290757087335134188844365291472619922704939889773010356421097019870842018184895377130174748524524897926523019236734119504943186333865481698916435220032731858713101731795857069293115192112986865435490545354744669274828815382675889813546398269353642361967333933075262861495802272411119362049318400455240081164391542054408611703133757147398521030636525183779443783031167072157376040775382019890761031367438338031060780225334021582299414506147174025991636267369060861542405938470839510639447882689088204363254389219975550093095283268145507007444023795821951639229328653235634238109411213738571610467236846755339592131964491267712141168759268779053898038453740261193782361922592599507351618215597795031512010690541864489510534750949528852845036146053721817494843174794114505113428252711835084808122610083049160745567356191553899519529879893185882289599708510947615187897564716004719538004364211134668115860600470059219377222177054442800114492625030247939387798637008212116725333306299950280319014726086661050506775529093044121418802217595058395818367444396463200201537118886387589220594691228592385570209166189814198418088071940590476033077597974977982698466345044211389007551788815864066399738879235400919089571987869574447520178276552604050919175772348802018717342629175703891931241102173980820741338331736361725172352215607858393755020842175406723469718744248487394665978136898109163150239803138293747003368285276072236536069043187704888165684111025109002109720909216386790167380464725037064042451927632726775009224687210886876191195166737479921224652906105200723498725221587927945386720614603585438225024756379120595327678568430492705175179184985774335514894412621451639758717881574464389757291236414577018440685069102103271197039619990881871353237382097456408923829579496115383331443339360726984615160422284506193271256211852886867232502601250103402151532740316412597453128755299661333087989289691959948396399847403014670415118295829610043128983041862165552373594995123571915134204005646985479154617288882442825127683078440351671642038008991000397110159807578533787290494627613857002425158682089751544395113889034264850784490563503652278818770153096446978820429659747388479684045221634161851622678324510845472044971495922448158649227235164416187117388102537214157916613755170654295835115648274259951520306468949639313209895223243712084918148100751070004750999289209211876634925442642215795698927612640429566389466848893813675006747608277256616940141350878555987506863456915379244226669912773218564965383866079325135162449009769801677762926405851261590263302333419559100534127497518607532336382133013314151372905174130249882869247933682613498588567137949252379990543658079855357477743657823737370205577897989644425198013253701022928489749681149058455803236558597594767846036750747031586212297360485751587043348597691144698420897674063834866994370688983058636684020611618488871565401805316343475689490344600970327550490555025243906917110203921771970570661342660950085389395862460443001023224058868384039187691404033714696430699799291553613055904158714763125148381056336163767093148790925478979416258171349033758716780205896127062514714821673479205679087256583665402775411202747967093659021187771872914737293097442717371911872983367337916767524709767647973139057592806221126391308161836126362618817456268980874187325959733794417724470588622610545203458112544244778794811210483851681664311757356493735679085186832878182640091598690547062304511578887997117313647591941582887914559801731694452264551374504769265479530705048142101086516196794545767157642895991324040541959759405246930962302221273161834719296828236593753235429142795599261297174535761400784284443624642005560840749461251020198785614603743335414044393877140385095395609977960930836511525024854296533872249301677985935709070437113107681291711124043169780119834896506876698135169536246019849976458315429112603322718804371642956361383378906199355982922060177702000618977772003128486485169501112049305970918570244181871361011214248053023559056588717817100815264050982463835834709879271296108854765834802272948376067158884396504211669813429469792499830010939374408022474960917230533913268262842141656384819265777377153428700412294754044280783087377481336173340992254621751222454143669299501453936233467758481644529302759760496036882067095883583410745143440975274277025660418052874998236526440445529028536193305172590010893039499623267528109940777366364883931062449144699954931580894409059698975049227776663497211356308341706369049021668431843298302806376879085843859564555670702606230416274359073957826708909167654699509424417529597913751271636265758771579096228693806169149862610517182483155531053295361965796047958288918525428335986372848790091765566771639328827684816783907052869998840924362998565247919284705628717864467654586946455341945384603769513034002662463672507724879644785497048959030760523911279957002120163578460445022627001015702170458444602645897487236908129497144219854980360719430890858173664900700309356817313606051722773574618344614793687473003620712278040588931351994238243467356128311252817367923169111536764623538749394700448608481542336349435785227673497914263852195768153423572517264332029323744477453702489939131296646438833621695526280655014981054701108168502039679860625592331250442637504334088135336276159731267598498191237799283761398209116616255570968820739584351912723731197993613047720193863648099090086796293431326664765983267597734150584704284130214684473851392738602132558319983819337922329703141565539694570433048093377281224374072997537681681252965707475599830921890536236597691785371601689909191962614860924823926669862337677235856273742415945494653493376116449242988120138413879559091446204889045740715060146634421602328570065846288839340017183596314497125554772910183179325262883041635017655972957414695494808260714806662218675300751670834457460358307765144263965346323554961798221854910790467465718162872732959505248992223782009619978845981099959129521581414928757591727650407560439848540924572935548545930550121225109820609943004994723742402389840412977172506507378146447176544619627831763968420091661603352786100659258087304836504169685666154938821253205094059674391011290930412032374373671785187304216643475555656463074674494567617807131757817669474575387108234354038757450218134479911646101082405709860276533359348835719770874359274357583592537516323747875094390145045730572033943712358277508849271923784364956818921874178670078325837767985443892434515158557593813044808480443820364384524238535423452178576927837445869308810560742578098438661088387161942140406561122515266125853456393184873768324512078567188590997491832513890635652031075042572543526473185826380667421859377643263261355007434868032592452503826939622785215094722230086730435305533145399505994183975397852510361148881751605926897987252704076663320130547990239758529235429827409709430633964206095605656809859112881902673279468930967080432212800854267823731603253314339107530961748434300297108487106656989785726206476622102462823874348307568700610150457009019158341347660510358396594530832989338952474794647740083774187761375169797540962174341078182419445609609356336267809243109525192230464851144546815394638671049589647256354687358822793700872594255122506303564340641783499510131548761540036204240303664982421551329780892843264391946474282356175966993864223217472335042400759061292117203861093712492380705356439025323872885476791241549020753818825492668460377408958004602501915965877225760645716100682630007586148718662849401936710218262540806219457852534284561592812951166312752017640980422818857118783126840386768880846463899661954837414502265130505934187149795398422785424593852059435115407964409884927812700874618160381388691137549531592510683088894492358850879003763153698859120563469951480751793316123540738347119903960468384689916042022272028146823021682526768084751030364343683859938664535011511271235910552203899139276561716255684946889414287568514465041408099375908118009674803593316813880104995192318682025090037932269640369493308117544169195368402938875740618540077796789609569086586888501547784625979649100795330894877015548268024318220819750261939992693891559419049466025087487129294967044775774111627045911694971666232969174506426213973659157854786570614414326587440234966795695431235020893215972308190931839002198111564740200613579237900433757880431296983360060959539394863588043492247658540517184064467176456913464172592001139713202636576423283625530345236445721766126722523913194929086820431595677303506178529745901138139207905531000202085442206036237379273330705365190369429045260143162181160118264114752533963816398051518913519722044185724803568034974439211816290241722339873550739279814183587204582776135291242856950782451982499337157712639616285386286579182622469443975808688874116406490766098216701103504529774468190847884462686781563699023889687278746280650796563588023178542904230882336019786948461929890796712168600256191557304136443128570333469779069176444501902199040656171240266629243475051166682724407138902153586719345436639593534294691652865745849306512175774656580330754275438340039627732593030331290897010476035579108269072073142789704389636594358672510873339142417428111387509118716990582083008186774512720002357874765225114538790046126882875939979244018737938325131624130265529063882563368263173813443592012103441488073854387998151311379562768009446731538018085086016854366698269479551523922897715436806565706306979672732681979321174169572808978460335164178008935196713665379802028209910906559442315324014123194412391528949574467453913959296209200057111353836820475911186209652370982732378464772131496788230904468433537157758325958869673897093308643606428577702641078560512377118509555216984676685917142760004986317417132226645416510352644057161150053892325875025780465991507362620320670952378674187956026104497650676949457011566779058511401614178132905424568690669206974246301220897038717275043960343933958864594515873315499031940627486204641333176090305382139843532079563116000197560007424858820613568206783377693039545585561298167856711198294877178114066062503724378678631134814220608833542503367411542909642956486177638515847324917370317788755455678109131787321453030340294142288150283507423319085188419651415450244817989500097100453759575612056780067970175091216737490855416167935659298777466583307219320999901618773915487961037486714985190840215812558768491779320480324901242303274603743761805114116748674070352212371095056217753019104853636748164052937492949032450682615608447095149741391612497377544881642972650777190136972855803585645632905421068793994505646651956781009441661530191635876692786213295173592500332614059337571361111589561754313137377905047660862570086246883222208872891113882923583555617856533001602120219506744852611362807644866932388021638587460874732695330093826632876313595511335089743750132310422966921855367373264736532410614026549190527225462836661192645703987369749264022494982923224948015110246029805839965016517546363005103934841748098309533509732869790034218501623424100180960811682054067143931489918492132917951314515469114034079351341801692950550184882298126040995148701631065464472626905274508233981154501062161331613270674603702508688727301180738686435519713944710962794587023696936149684805174815021890412690916721199278413018572554491924407930431272908910702602431407684452153439648277095516358845044046552168596611827616811428316483285674298890451472777036087282228134680833098904866705612254233101995899947705094733198164886829973535393922614715714110525445452643126025255972799824820899990495623505530705262397256355068837443288155639412589862674385847635092803010346947276760801693536887820373583498497787759505575186963449922404472091280765093725588093306478848699413897644609121501910696937904209085041191364701666612477194820363723984902698583236615874948030869271099959289444767287730258976393773777713707896966013763661391498578817113846616135999372582736422552174628190601199792964709115248282642945602239042152086314465712683966354694247986443389450235315262787717892634464156980041471077583293676462762405023764493829311926439928578088957548948607835074008993837885178930854992810222476032914834214270270207295400210528488895650626311767642977173473336599306486749379040486957765624852615674428194774519327096201998557849980070113498453399575099908295485289498704133713119559557368614278083236707589842869810618316934205091524769433043007741158131720181462697230519762871145730643206011224329316585887357062015874882519809578044800889201706668791599790875032594118569303792832674077458941070011717262063760313436864548994068606832627882446685449133919923279415413513020257997273825815973207706719905168760124595788923788774074774539149583881321986268063108923673949666101084881492499040656189666939615802414616343090767877177594743340520656375750899351834193603947056281025225492228755958733386722314673454694663883496390940667471605516758835620925466620495119963845671091821426935227043700115611504135961345123704464777185697928110332580030175750739824160413488049559403883827621076110982014571517282721932478777596246795918681773559888106457695061987705977415634057272138482792196170800458953014320472033738711422091201175742582352036790696393111435762642978788614190619842456669584673760905056274311994972189541163647546577683844785630287799408735657391947734775554936012774625596583970133679174463163189455393533987666022409734042028267207006176045661088853181114025924730499598072263413981357334568718439212453557741287595486964799951354701960815078017129283393765107235027751607165266944143069156118580048137469373468027769737413180442824634698330659308161233045669179669165249435287455208167654299776183601679076397577352151504979796025295776589609315271926715236803946515653987440527200198430670581911221380603701339020744334314154313393839067575262426411118140338818507909039114688033262683528168503340646980470859730477637767586446881099749458093276572053286782205496875962990119092954246069190992024140825726101400099588129141253804478592809749758833042985245139657001555969729087520957319614362208602450491765148014773160543574158384680864221756888177279271035180507991327616878093753536832867354621652610935240997141775949208443627635925785984531550477807604293519808795576940317862441647070981657898335101684277349292362761390495735107824331948728149102944799373998311200032128480537458551736220434356055599352218741042633207929217229668468892248926098470216771938313192405303952220898394209198513323756232741185758649438537117188183839340972740640170181829177072521780385194999379418410686745605460806633287923299824768805063082899053551957037699959007543189706555764415525403941509781455544268019386647064455104424133443307021092086860499728396345594596621916471495676945088114230076504205407953693083895917525375044960573259860893771600233803402285293143243965174881859330118441452310795970484401510668685929430624893973939324613335926117221338589319355622207326708549454737054616885357414412827091382083330796117279410433349856340885560834203454862249597959448869728791019573775452465235287116634149137588970379530757279512731760085273881524162838620056928848104598299507067738039936299460691707489120279970221548997566510084180460518959896608026879598148019655063812835839989227723583654820102095360830606849772248143129346200106973103631458158366609932823891474618848255146257692574837097610544289974824872478600616802732434667337411365255457734075547242511129111024601821453374108918703724878440066158415292910739170185780111952036179833505517405083814783656133432815544716849773586287079893459117936461903534814960504148084629818005333733191610257439370982951510929765836767379170363232908965280065020979678802025286478419531558785435422014723897226522715877134055747310219128382939703258511221965962362703950669736741245762302756500178508514550987671631894047594499052852537085592689155010272747878266943990593778643978199388333575285542672886310795538737131531492067291978437198352636757303508497845471074230569379094681997876755078858083697533537249780614727157127024448551996101358248357236385952548155858275475869602522391788250804140444309430256330058243103633701002087207118110895170849667898489306853825820692015846116302091190827588750076251036181994577839303897314505798874082419793298378562247293273555813850715256670743310603106786080816584451653711212218843615080394658846843696845308572801508285975951523757060588821347427851987852852830588253146743364184270924649515371999540909365344765805561624562782601939638960600681150658592510221921988431966231462710531400339910944549361059262060072337486448829792958541176575313837196396690620557113077732894203235668655320404623421903394971699239404136418516354051137537518519178887727130421250452982676919173521409159113386425207898249583991086390902885223472325504078278304782115209530355198159828479610990879822542975038491372951274802147782037528061091196871356328282698203547793768337634146244060458336929523370721761211538252561452365341820602868483916068494465374937561526958341236875851182129758407379793440973661173295806998509033883157555730361650590049979587832972264890888595114453932717804219762103106090406029290602330431804346020940506653569452668147629200377833680853160906478651923756613504563894414423199321932848794064784065605879080632244005301353824016099059205148419494871709345353224344177909909755381457533247411373437964233668751018955683143484973060568548111150109020136650134638867170124982654517280551033531690487178309351015302506130276529269077232051532318025669798718128127021312075091633226938144499134722611169568985811977127028667721857832162038740159375174866942389174155463260301836306416336125654495053393658653522915367653596458810762585629986364191110326826382979727775410320740042887212706066777897872924698233719376967888424064037378853320936471637171501523850324383556301136861394198629259032125560925040844912175986677793968197592137776968917544096745359427210974976465789694307137880985958083133759198115637545913698862956167352570042998370867334337724076293157040006309236800336581075275931624923532987530637470439010716475256186397980698964088563765190745053272884715669781607746107600633970605003139326524974574714076365581042964279994177667537287883090509259099294342662163167172048924069972180184205824970508785288246791324772826916948994212978777803265178451903661880500265642940021484075616020204426727754825412573143340569405841042474270480757420804563671072903215819565632788057170325142865547213561761898117146860332338263560193456490545220139750660990767059053836148044236320409372487128849485192043658346897561648675734393792752115228644690185385864410781717336120582277575523911550034094221619706866132128207475000314985706717337804183074131555016041823835268307179700646292569576691389101336909682622599748336663683693714202422707730539793859959420687993052592787354156651819061544030261913116822500599300393941579324777708263867678747869973869270832615606981538466600851178393417658346862487068392226054984161363593203650439675115374529086184862117476748051706710356860795313845027154352344666071576295965556611766380790091124020048712444016676933369853475270471889314316414715480146730123731337111449803317284252984023135124092396485965757829457272680808821333604970641203638031823504919146263925141779699418442706618516365456350735977257448433675855946118773401704231345916041445032188952832905241992995576693170220644498287241123517158735699952873287793212320761549654251958029824266168939066506655103735267045549841827774884235433084138301106582687686071111941883298163966082923110043723161951285406497397888689918069776858570296803254885028388150446171422517741467877999338075424953241305114498349602535790016008184856695026630201184853411734377968262266439171766211277631897980472523115086341675687730440184860924281504939279134204095864504020076959861438665257329358622649730900600370480861466890955094033608073475194337326456863899380250747700922907226445266974873769083249976297250861496620314549288218955766370016414865329086311926489403778000416326553407129619803997145030566537047895415777356747505027726855837299018342534551779182089250508421558939075675660115783651411997141058718161695396264493820513605943189042261435270722123077247374321596154287930711909078566197478278747083694412710071928204459109749761995167591974062471492707666950344872700273195863264838260948646572959467123014544623461852149554394353525446925818491193327090325844956028524354676142873339573015308138979325486073275673828366407814648403539469769470633650439816708148339118065206505545037902000827247854447633615203879536198552316004724340333790920347756693792418923332866510975295432141076099818840252041549097209103820666613138964278372878168994919687722872449480232137794965543659862740328014417201177809731061082294685248170974831456980380714269646486946567324146620761633905047873779569872083239098022722215769930348161393416113548863975190218906074899316785088938575351976121390805671259033216506878531492772455368991049036088126689397763216641587528462077159067409404586494891760048105533293259360001095489732651786692465098934516535038605809289639421309035016307673338912461028590942562703144851279326944361938670407612572712537402710601593417758192996913135813607908081652974545635415165341614602075985803886974533306450060727817796261103369199557175584768788224905531077641166790336888930118228310523130693626616363515692811762712600449975805851146165240793849926147127816783509171163015812080030655882217787776489687342887118613092552335722394415478660325643353764405565157849035045051347368724708368197963858567564647653316556835490756465161990216006001330395812679820807126339020686199178598231543265402621621328676890447257477584964438067254394685701734491300776815420854890125553150350712413241563167180073283199253300606646792226987593178637121780073113546870887987805088397941674084032032190626921633531828095526346807332435589124430312115323069207657563487047935409993140320075733448084376085998565303413658081445065798376412207480440523847010176360426040055863747302363245333728452250957026164139904869897022140941934621855488662330591699513324952668903629782306555120321613463148566346420631174571448155668817677619782822880508189724667562393273382787152337693848850447575491233046848501610965834666024245467510602225017762142966574665400417310082955893039102631206226770780151107031824119630879822682456295519928094110537253123636267627362202759705931273197736619349768663604052897978129690075875213361494108403004151789938558674197858822642162597184464649489622201354745368415554875063342173917029177291215076545684943266752001923098176110384573533434639089072737309470770224729593172401430877885910525392172533997391471295303601630942539115136923206209555933271069447325196016333736212275769032462105513658065998960702538281666946899127410668490909038812177407823945413265128696107466835940313756870371180737848584027647032787662664521292420778188164186364967046303612601619380664074162030452614006073869895075839490315768415027398047301502269780652388046900807809457959292535977006751896475506906274439008201729224996576306609647288371334548187739431829171113756828675730623128771829349691000697105328134957862715560030839547287736349406244216144432717963326813405282926736048987739955452914520132676863865902132157693476355632681134542459474643351073058905532619299800648500138240428418671159852020248317279110063616238640808396230753533033673013905814929045243221279438977011820232528939146793808921091857822066098033095653884072297794401701445103296192908905070309838425040450382194686104636434534512963104227008298817444363263470063305684693307382353466704916195849692238947219233602940281556683896612554517918463475718355975539722698801996263800104017480737500707774572977976159124469772905803038272059288159206651870806718110392103525689313774682128450261908248622185440885928947015111559138549808995582617585577650058281010059723880775450890220835602119813591132827136405533891267193317681839975310838889288368128528308237448132283088935313804606498914890826512581899458812709189201538463850661546511067597379248557451558468317097412134795424118955498123140599904750340538884890949769661179252030885026122275021017316541660349824914335171126670812185082932487190353117252485290485944066056295602562863848724243867836536937056968395425966668206694658626092725943518756667143036137165922190567890178821841429291684665393802198341298066470986250473361532771237900136556135605496644267487278390219784755034263367446266338527187120629455913208661648754188638319304591778680175104094117967384385877858870256987123592178782387286117480330892571899762855917751874427878231900498200462078376259435443660135602288203887777089582760337095957898599628103463073416523198382613597403523056537545779526522599835428558696978076972316496717356270202099703838369007765791005646518079582752437710742555964481892512481977343600380660780123510583792955573877027967538365463883185661871389778571149079709551176489404588046699070594864033376811656586293740677611940874930117029909043366314929337721975241343478547284883531755283459905173980700203643237476181007639311081693484467846271960368423172033336942260962279108588841743058295516247764255251435093448085826417382496178092499750620919154981811577975797539838372271287651851252009755964218125807354784778097563844813078661231256846045002775766867920595449843639821771457468257813699183143644500312307488940746123993779451608087336809868451281618881214713966352087282188021522603368387048307420188754279303182165681466771037757065321939476039087348305458738477062972311569534499000345920907088868312214570556260834141811204547900957049046768078390046670759816029780271171484343722542760542539216172684871258008452945184474832888464880670516731140701989594768547283547312722161357089488504063917850390954189560821312855272264004090346257389052886595849119956566286315055389842069656754119520326127383466640106397353180597663379281261959955536094187941949547448941711566490717267033135749297781238181447237036238523223358794638647118850444756256324823518496943134738518810243691118894865264280352599388016107446104671483731417378203268318791916108323145383620842490141447618063665269086739834510469188317108495401977927833663324048830553502227281338986760722438043716290059637770438856971048549695771456100641786890747839426026621893999282512812161065166357427358947247305952976436123046522792634750870459608305336024506886194400168310548929532022084986256703180173976696262675516346438663227727598109068077439890891583431885019627100623596330359681626116055610683165243990173683561627590558935998391007343853745579419900934038042679739640622182116051328340064212070027580370074479240440697505727374692323648205175484287835529890150193316723768346851016530716884817989910533305375442612224511903641939739047832134178017465241342238843863255269787573637622467530410037376357086838859987173993333378977047248656473064591391327984713172718644537234784593276773188280416160701425313552236368816870987661549404047269854493197927843435217668907351167865048082297181211445190065104530016384090906856308444621313273693107123532451786851719206498002532682519846682710900174006071866392881928128622599099760058123727143842061686978911075179368429604575756569522251180505901535365477629447783718847560406367625314467108414726521385322562888080841334505821629759548174906800101161397066085799408637643048604763837678930830628625875334314130362771787567451758382775740903027914061176068645854795859097447169677514903434217854151648357890498051926867407837612348400416712140205522755699244237329569299008323214091456363902558395099158726689532539783929023943796238202173743589181268588456536030057851350146472703667402297430995509055293446293020688761779851897007197511755351599616783614510629761361218609158295872447047956781209483656502376927190978250600942709057704703972885100324055527777407103632717267253879580483142215473047064312116318153069256964155122519995666331509509718411301982382283196240876351626479222152535648439825887867491332805527652119509781004626216225583503189806957176282313780927009110226707453861407009678495223649835670355516996389918577020949638572840761000025637323663756012822255662532233788593587684522277471844327874437455635205462525565081234501970451742077896372688090019436495379837122780903990406744766968654416652060857317679330626887492009248912991494552001830680401734421150875479505622690050253114604696324514315401885008097869564290357380999515333691551801533636056537290138320904098152749697213605269149947042079191924176152122079045049180518287049832983248238834848883738282436848828545506699640251866754588663341865039870947938301079593249271252579172897861677000219644327266582772754519625934576649907865792503703987900750320676619474272128655319023959132704217654637891290558889194973282884078662137016859575245132416073223939588375044150865759932706252345024678679053273205377782139956876643164024880969667479096903399430308289221192552660847694982236470371597574475611346739051252814580903710450873178087111933957236159766207889616873016980358625624613360266440928569972235761976785043501518308996334658524486265169423758010212801308228632023326439987969199190649945117077060458954510776093298622314925071902607250250840588242925847617059292572836113468463579235857141882670983616471854521328754958900149884174838374415062190066857209123033673600622162742220902527879622747938593168193641343040774187413070590893800568151225327139106089463244642517744558969788790630029903752087823428343123626813082996701575997671000933469724253467208059050084783315752721786250219247891020690891711142782734207843454505918154743712730425998441404962660549074663514707074529596195220149766489290101719028035287791625634213938217070542599946924793145249282373964622040969877488867761055369740990512824294403882868397534461973333917010830248812565857000801425801326155607495109502364656827334948426823387625363483851134068114139373942224308876930461012849365788494045227109870350820240561397260880101611313294729530841139992469086954758510548107408887490677693415952132326546867995482305094226388484251107548729029923477658074908379497717050967362219551986571943041063917990934823545861271002336717289296064347568053786650666163013612771866191771060876796210160476804093535411309963212373570759261169089067680240433313377182316753721418341056994543614270701091902574789928972438786630897188787132650642807251357290786552230604535492322644781636772338938846505699944755066111387834282390047054172278288872902166717039346430897608668499116155691511792061083033204677727698046061761193206051046406283370715153153318310757880554810923542613142367338460180681234086471002637325121852087049756439240421755414285316302527641599104649820245451887726070265212662793959870944079277665725005953665665084941190843219631557276958212176049301625343444032435562762780137860523347842763961422505217170707546769492362614209827267028084719343696623563266146056584729363704913980916807320451804876176767402806856400057154272520670650353818510973594840179492783685126138292643934247640582229102592886597396621060097569680547552581215236582837273109541828561224537424769156806564255931028325914734122792232688516996178512908673764576479347504777527645712550546027102280210718011576738144370953260786816077123809412854990494492905211855539802371006249037511192274932670321413262259982779878194321870226369534292743573569217643006885373312266723346737319945257127853883175692571575436696273166331413197372969418034390647157758082061661485538984432046087599259262845449660112956524085848946645801459340257892194420370335906876585841074190964856258213715929594263222811501616494527315563059863234729620982445077515780975641765760491600317757662606632247541350453217813233832658845273925013645999148922445144709494669033887709707998113961953880102365367147802371506324556394473729687514932192401887845633434191766718775609765984952733176766618434947427900634417836931580082783159590631078303796639586571294694469443303085226481838966428294141378656455209390104997692213375806409926714752330589119284412223467416817396604925602177089705872525469356413428387603026951007717230043242617643782508776289446989298735951323146432556611334900278084684272219211943083106838925130913661057979787723134687087700189632511314482181864612747043352972407382924900843066387432687206219734596438785105656795260447857748027883874993622875042813246523963779691495472829200643791077158067136704690084185646118828077506869355327037883340232072640718657716406917842114404729448947251184496824900421379003422620922519316266370760310471707992319982754324342827717780045981890531310483369136502289262606006502701521880302834494228568570235399547301828105786415581804908710243436948876192001695611498350953941265170535038323408457057523606953236745317511151166074842664184210353750019098603846760230627005293673984958189089003063989063333548271976084889912987175879197504227915696123436122731438318115819613213409871609963624407694162594226328450806436859115490190805042930165888095267758562068531155971804942084234246578989106735022796676889852395274216873859506212347668974356802874328424610745328449487436654107066000957653378325448997449774633855428862830572328298623863895329427555542968716404454620667188379621478020125053939224783261690591665044760838525000950687266587088734595317628730769819588988634922177228420952831464355440749617326927423387596246749123026745389519440545622895108228444683223238260966500671896185081781771507681303776798469084558058242364650191744991138851374245633401112682516266305893716199160127624707719362662755890255293714731529953488374876102147294607190143448268161065229398720063907898119677609166742243745526198761323961464714988101685635679356636299938679238319656955320342114340602275811043522634822895163414203389232491124366271518846940309091309181932842010697402317473844480612475713680844094283699129367292841538333629984541367353541387539962873012273334619152554389141377370704906520349241018939208644616988469917033898606142169881211387127590923859536958411002490741462386178275605663493655544013497723678946381828300599443208208789014077573526343260182555260753782817817888029850847278047553279190566196449734995975370901228125032616554428308551181940313129555336435371364215120352792721471672498687007589444899696195280541733790043273193104807653724912198608983809324640420013692007262664828977169782328274055145019201691232510860119399560546137591349715372086981738906540277905656114572386829750410770280112433003375575620131703523048247829007767710517207153149931084367218594097498546501727260261526143940963112937166709105962009466720824097791722618170940510840894303513704811848388527488878333706567959492301510938919818564594609853754735535228694837241246473263036277927427551961412482272936458496045665281544223929471005952827284414737052245830425811143260278320463555770941830569938126109999609136836007922820898573288525093812460551617545766915990498927034779792795024166706586859201456283317089800935714189603736878377794459911648203586764224976990180654936433339599167126515627760120398698704504486272251556265817047300085321554192432081338411704713046934453938098499634473226236246875420488807846462669092823929296586739285253078219626559000400605537690246280169663876016600433360529109720360064692438320365899609227457888311266526332943312144316392156851941726424940969657822852711871046483044423372169380507461499442581459059604414066697653483492132346713601181401727594026261002041323756978524913654155935440339730346817488813710798926257555364676859492149697338871510336799863076042975373250030100824396870794257501523933277620180022802577403471139420145286213350026384562909226053621440782785255114549425624710925002581052972472457203303170020566312114788386635544560012572945532779189384668897779106796857469711008687734759292051904781719204441393182425503652224473843464934648892287910937486281032920354357929759497059814862224220240722747473368025871174243776005126002829675480286794608560949060778921527672850052225405708290512254906321002552183217862284511171127058895736168629676191404736412855849266448563851252078605790504929149407573833209539979723809781984083838361919368569089242797494324598182470667942140304757513064078467351740835956695016461602446083922321281239626812939130927703166371761589977972276181738131479570725910847768279429385253224440106896587903484579151240920665799855520045411215075256375639619023177820952635488237471277858646138466391234131905228848537777358913564915069011562399295474655652066627203849638648220789040651303244507960987197452930926041715231068877533280711498909875402713548285568001889672497974744645082259137430287272188588620397733309644460471423888907862147548385497587828707530739368916219885075113450986078943916085607638065744556373623333456995117742523779544156169544665546881458075989909888756329394911414158854298416770670899331620666189033827467848142520200348191980460129783692384233284701798774464974394646775645807648343327118907153154574422463454702978974224082083502973855835839441098244703706107055041238001890890548132922248730021671118011935496048569660423865307209016222856133121569457302251373373541771715483052264293060942748955619169663556190974777605275557387127991368659241242760753942470933613090906671386506118767438164111062749352888382675127954002760211424624818608463498401761074988570654378817319386847085615425320879245450999207655230223033931004518495729213539942810640143911836211748849086488793692943242316009362915058623102321050892227636932720822725431203631853535428637310877712543262190187733428115670196655230174181952151628794307039864669556970817431785616387044976026728692152085172442876756784543109345741779568951333389116553955690972705254808192544708952852115838469139991509965005664598053849720157703714654085364051182552533643285097848159970569768535303505650277598278216101846207623855453778553513117408443438801131318031666921100562702675895483564541316382757736243367614792063639394718136150862400863466127320534470674281902392580362292219216627310023377019264902709447203071623166231624556933959416405244431466575458905838309460610133381401503533594452954782017110943287319079232488188917417142432066337651636863449163901104144660192991529521162515448053230080483320182198465726307233757209359962046452764841046821137951154391737153997243285307087032223426445187956392324962625521102879859103000238333702767706856816494611359585478653568052467141059302662219625300284806733434996881805871852835911385608415278653814705282996915485546127500555824013695896080365270155619900838580329911154418982599807851468750136642448898978928551274329607559576000675540236325029841580190423469165138460562921730061039556079633065299933992216581977411486103905500741385362254922436162159663021340614679757800518547492583349843858676143568432969045476073301611859186603861112060028384183972603754395843924970572432861617848709600763438717679973328412918355551379899918983357762280688342851963515081026996448350940706399505542817095964974612894403245349942383748171031111230496029127546365121016095101691932926217694906780091448866056704634103267383078193127151381629556205034178012838800329132640779118754188495522134512827399086943056473047395588478208382331326934955687767079739613476558466463205082276522975966899542241655441496271212624506164021749573010358074868865258923924608854726551805252611839369211633802560477515573798698096675774659129284191228991123387150693293771987994959157973039371682533065856693319235809789403712034166111433790128879339137854589295216539210744456596633570578906299039109079442011867626749186958537757946869391867255259492922091486029317824849153221860239778921231416578181297786239621352748417666044177535416386916586714749505074169098044810760115335466941116340747959731805482692696961410707805700094397267439176825930152088911572181212397150677957990651071071363404586554159570396129879635061199829498926221697655379346007705569733239148055460170413922440293626426808343052642669630843994418427904516677971646353265339619834153743713783415914196802281110824265860705281222982179606262153350601522031854050858641186960919768046989968856817029980639589288383914601191373386480753116962512464045584534215716047082181123461406184773583208667651778102527416848901821158647779714702073774814826839206088112451320345019276264092975106456765035662835589635280274220047437304809839669229388826822082978175537646086929287114731273796329412356643577928905231744791599825066542113449707142431595456453891023642358990852794750503685520743303804721920969611905686350706158327460646174063740190256986731786171878851896886573046684241439000625865867282896620180692078737120815754557104551728540941142703599378759360090769082148793488755988720026179843007326607315702252201781431717452618372978023381380796732444167419264304686626464248520035704783064491245842936748332807168011079415967160032527994545232460098620429838681664812045660834348023538984250898796921499494240149677548435912239838676668021586395231371202822254091722245281611489733906755302006101118343621729789734248906218786847241348314227582511363980421423155424096015221691442267535433541923339869388389209458817107796572046610181335668732436502344283552125770516891957482230984156167169087799154154777221869459069165068599516707267442998055018083641322489317799025034761833768677458429186039356582962915565275058786106573340702799686039670836364819968166621835331735475411922094812928148842638689275340342197570280775482736854456434516740619172324986443936436131986736006174574098252998208953973741492321726654281002774162694445432725025395380952217993244311368507066579584528480731112210799672058227461562748315211231986012965854719363500470892693125313566030542631944763330757619978932393267089318131872401039854328901103794929625564071226020734679136211326607128558457959737124619476386583235232435359417673861078096009995160835833477269848270675906382475347647264419760471833415890121789463375633279995256327639852473089440502899568829983396221460802431550837728805100164135594615258436701299977598396084849581896095801273887229137943050854045453138687436295257282670385438936492393988546117078596728214368971812874900727590914526198924760479381388590781496127830518689543772467916143060738263918410134078390028793034206625527048104822122066852675784575511895579043455691229615947875098962424388135397376469997065191550103215296258742360689820412305148887642429381317853511115569826685410457844406261269782462798639583612743133218824919610072425781051578887482781944258729023705665211001307837328054126951781499695642874259480814180442678742961729311697785591025927837752204444679950647800396306885580553807928183105911890387242592820363481084645860803205949820681277003643915061847843363812362594141997213191593092071489569982939637312256209151522100369273448582869490208006235189963527276919695389793316103344244322971153579907685919315467673660489659577946908191761241254742392972728554763442211545944930781195487299957352339946010512620277750578521582373999602721692650481845766861516081803838823265279451905953165644335735442658321989229786912435852573326613244868328378282651589097568712592419976508933149624670897728125871949058151254033135089768467626702030907702092120698244480948502314524118089663669970329653611968708895548366738901648051438610279104390857014988164108538836145130436508186104016311873872318770819348170584142589926101205680567288964449374398166809776937084406586764006615975122231378801081578350675092812662620232270959442858556254104116203584670231671714229314156810142019895549060358512379666301889370266181099013334412360222117117213559710548516822412574746895631501569490693742177327987880714082253468956052376891168584632812707639561422966901596951012084999730882106606201500984249592141605110376215351695294194009116137861149065831145471736813923963122706111111252418270109580623680070716162934519121398394288844348837600672686255408913286610248615504514344185639184659732327055558396895941842449782886155009363692176756030402928007936066326682351203781231346353014365077473499512709947724509450006822177584118102612738314260550324131321289730500482194251065278687000794598633215640176721181584874513933112867248739591284420600291174931871247169062723369144873228150148749208210832941840916959666596338597227330225912336230317868985528457558517642998149269466893025931996690529465817673141997290784627126453685937151429196346250936562265854838049667603890558100137021636443293626338952610865669708257457096210939901187227639794755854291462950475166490372875980381730471793616062544852075879065481691930858679931014908338908364897812448361271677533048542385668519656476702227037042294792246957117545450531270766475713251550157750510745085296847675132879801781784027263334824347544061945681907244370288901670948040068035358424336376578856845836340524370192846807305135011179863301883160946887684402844071402252625397413616552892880541494618274141650474390481154219718134971596118397872034341013562451163961175919190255747577447779134497101258508105823526996886833726244261836648937004189194703612570989188757373087824466044383667296280817920059034964718283271120557056036972147887094854916482464747285264684933499386896148601911272238705486507720065489199591059848547682046821618521785562573501118794888222230656152081752345202372293262073949820829740398406879723412555265311231891161366594062278231308923044967238966607247861463531797421535871956701415012447404362844812953002625121576292946748255694407459028053390457338266501571870569094764127867170027181032331092523311521046615251354405246327570714684571762279384407746654581801822088324903994263861283233023095594540347277970401651981861926693162159229766443045622059433566063736968248134283118615597103621310712006274434721126622906918218019744182364738492381908074790705656706940440499736134955683377535612712507126989029492429811690296904861227158338658421680888716667159961243242505846701521743609031008216775659085813506075525018007016461578435723757283245409484801012474659752761419769267008150713372708697531622780290009220778169065338217904614035153219748955705754049160758439183962679020365804798546605191039884984691100031202180123728864386177198359241500725276763528736010149861788081764517250501602902676863538138853836611467858270191726216924044466226586288455160226784493795902738812851016388210544031542507201087525802390090628213078505566596990871995681001033843461702129451864836982892730422739389788691446194421649129078401071249104193064534518556606730893473083873721733018742260574509070585691481751206988696729012670121042230013025129245534585893782968421406802383900243622298264399945433139862528818749165780818937121613334631080710176640871878647427788288741620982136233294967719886944994316804099501401572546436284401392894432999510617812437988372465702564192633461306213810433259835099040268294993315984568621295903342741371991548082374823215400502249081539526113170432863973188102027966539857501912322082348181565596374861341950018182314214328467360491101360157161770704682684375909576493935678432794263504786453738877052581035174169702558615148779182356775719661629439593309095797467553721583253540012503088641215562815877423511995109622914561086401153407741310113887533337821198547611282272903081120689300070395987080813567697818399485789139470201957423502685516580989825250125754783797193153475895130911539192881069557828597941007825989222106845661034106007525994046807046671816258903425634432752566420082231736054798466948567994472869494316731226372115216158683654158861419660012507143976888113435206349933373822678885070304573962318788087960490823957636721609343756942656308428160687323359353274616426485536446678857182950736605549675175713940409147204831189872476764563553872365532038794188719462455012812654331604378628526988329705871619550625845958798776706161335123211583829492748973490034675388387860721915118081694409671486262879854264069657090365784746113974566139614072094411505356206635920613171679483749509726591655733003267480845377445114935977220349839767346530916730830621119539401118474946416483473797434106240216339756116185916060951421944660238399742401796476347905010025789956682897092013535225231989483560256025896863126398372219906070402784022552828786664396171981207948174058128147758877548242666473051079335018383141383042837050056815756619928196625124327601709162691017033411302103228944451161511127836949003473434023892729608551476441471421782191485643156499620377460976250230791665555128120998889223897121058246148586840341871306352677251489870231288173332243543029730614902660947432372361482270059656713535508314229162583608255914328481373497603838740804286229364847542303566182064452293641384690228169823959412568443861341358604056988413894863534642943358081409056342990111774247344269144278283981486028929226527144808246389515365117235930938209792833136757459969016217925094742090147700817255868517139200087817421245931917886522814218103559640062490123669071051424826212199844136230300916875694316680066171431176701656917749875148676996429917456945269112891016192772624957227176899732396516775988733638192319753866905706824371713407278506256308748182342166319005615354081353972708796556711208427251703810284247455646818500292755152320219674877673862699662195191381226637908283130441154906024357584807011908225180799509225645695455149305442136164168155613281142323497084535182299842729358212261050250159164816120211478436309452453079170102482867472449505166403863329473639921595260417222213843232540928168508874840093095117575901620068942753205942561292907119776742367786801043954726355304505941740541804991370829677224276353102174992587601565821307987673345083665954477386030168753208937070376724257059422782812895386948332846493974061926032979780070337156985385496517516303723496756319112363794508012851488632925829585873546812799043020007577476880388855380316235003023774716388775238889105738318045294542509988291123121434465330686523615440558620882098524339353026263914045636663638449965783542058376282405170142178363299014359499400631059059561205926094050438595626757590919473519107401971591322021131532886342559088609748558366232158251155234577552513632772993756819568782845216442874853836367481674313115647768830700806959244997388260446451618301552690810991455433334884934177731763281743777648748277962066741406046681664599062026418467307637571861723591731501989937356163313339803899864579253491089402325708386508426315504398462176249651557811377026817128112258167914844693528255136682719155564119583062111033178440500841422586071940675988213454600575849691223182896069741445775268022469657011880051199344810024394546706037006551169205253966232240906187879722989970632945660664138807501742618749382829649176303264494338161313570125163429223910277008545111272853060203888531103078787500155262002878807285381423525215212313034304535569889758814698799574615466688741628113942840949425272290876570019530839413590161511539799049338312574041103105211485934072502928271505543902893696150612013905330726930988835106010790743892883880955582401561099147769752685285949116417890464357691211985409553169306280990051205977125858731606745112258914176691551131804439954100885702935347916498538226656654340314635511843524053803845190321604101310465478830398824121956929637754183790280545030624085453558982247511426196451701926443708490433235660166195638448144498335695415395767445731878411380885656390887708405892147705464456319723205349691386594091526671406080045182236178861284571234632311857571803025140173684204325717614511528301007979292821082845528448075918809429149303440054917816530545333960379984186663653826310426266437497775730378842090849088517986691247906487446719524913371728213298716736887913006638441364858202642093945790903908711330762911026447085545139942375105675444727690377461831983763954964054000664708387384057965632575249497344723177644095511322788098251378167986680662955614275820844104609903890779927000764199788313677174133008110623135499327051827186320421093447908356533573443915267705288855523817451140129445157526227020453986304651280660553384441271824599225939974667301444558569048540324554901547978576220033746960896957993316933470379952713265114467654860563395619599904365183200906364571462234833829548738409842666926649227109307079138178287523234179939347454592122917351097291789401011527977780625948845989924605159296205195334850984566693889634766626876274744245200832488783096054479978006857523486863372618594457356993314002764090022227521920795796409003245563812043748032369955927316294053303141911691216488404677058202297789781441669606272660015357742446822691358183443882678738366838469712312354758000212084245452900128568729117523106650639983186135394042295564117910182115943190594026392708639839573537433918088783453513808515666007226232202800281309378037362424832046227484803848058114234329941281316206760035552237248937837295982666518775560275994000952463681497302992487892480729806492437790360124386932886849030229848611798154738380448780735390410925450906149273752805351488996357359589358266887665371345359390700182073095224191698705350143385074302602755238428175721687748069163449289002885412893486553794115727758238471275115088070839161727023328564280182807649144214963836569298543482133901503528305920728558030773544662882902953960840204198213304624656436291480270009015800923923836213555250259299355257970959028788645471836678435176707590313677982262375864461562371267965638984383846849684598083941910595343247343019077299097562877241367206806036503872603830790780604760377583907855775639468574178862926320413224177320786334055074408731611732896813526465695461790437871005088893014766704901420220382494377978823119976149784353559010770655958844205287160567004083740076047920986767606004770500656605117109882765850433205710877543436531168293708151734590843416739360020235212275980382716601021735825036778092289787525077941292991261605176724278116565545213924113934559591325558308115051414124131149990880114500748044096461502064372029248098854031774689307556214161878461770860458666630356214266389361505186725535224292729700304641897841875675695792307187540593812283322488152712064321452017129386219791009560702230032182240617942420957460863234360278032910071419534997128099505615421093344594617085513702179097811505342800970013976318471077924571074671305007199277480069402391541559809158400062691573676679919692303793544970919014972810698108474736683572693800435520371356376342453280317390071809836020018571121914280743350087154341815188497674281096794435982649793516222111156780019145705458492500857491203609447480839524343062243870046220782953026690536663990574220796002260814508893262944912163978707054004602705144353214483719679072754237742521496287370840947815077355092769185574464870069958951994847476109849834613217602269887824418599906895014796736112878886343460354836926642718000446634385364965199833966114372200872421362262110607760368281377473975490309319290421486402082170310011713498234693679060263396000747674201096164052672949453760886958136863438015526559929406812168498428480588258627905628820225070432063757206100961679464282066916844573523670776336924440411977716494533913591233154973190142991072139303845466193235172283267714799668210590923662002647911733012659729668967633476201146556544694598658059959280367619390661771977093220048638253112303132970558216293185321038641777233785712583404133302494880430581949509276788862630251781080750296506535090329717878073719412720733407955210927980893938281142807140671742220442491665875657031883387539132911749227883032172667183076597061479684784134070908284681035691463996799468176649677584314071785683559568495051361863568122940402897420683003090717230551589211310857608732038649121439399604103133428143376149677810829569739714452053091897566472666686850495868542993764562886974064942314111018864319315876995684027923075558902079140491610751412075611768047214783267047546504341360251427129871491695321156403860102245713913040953945684197740652572810977353741457670405190900569651213548332826261653171933946610367439619714719064045540906622965297351150791200616210195009736908530207440829029404055100571910939399136896787928970173362981259928686897219835738444785968534492616386532343483761160910503225935459218193626405941211366353661910313663700143680561641563096832987045894036177642926982296984257562101481635533606877729120332919472715528673096201704529302199387453315587251536921681858301623931159221463112358119262990277335591168044511700064123382582158028987552539500826937396165514742032573722285966165569752368013083148116690092086729009455647968373937500791855884263733749066512355386459000895513821360222387548647516150891190889199868442088825081532272435106491930239281188437541510944897693272638173451288536029386182565361428049873245549958692349381563773369639542074427443161305205259119089338058276319311459555604926938575993744898402021708066421078545000880003975563686176873687533632461396518305858531031769471685866907141662708546940313939793419689900326979285560597677541027976260562400622215131463637265065618486518101459740692565908765529063191049236641682817301576662252899575075266681108778328652365386707575804287624326021156701653119601834921966572573654604413964830860366208316198160865605264002512211772867455290264024237219196944688367225055723848167612422264115010981278544892023120341939291948657217998368090131893462870204072705961372179092075941009662739741091721490276407968725576332573490890451553661453261147715095141563181942067344065817502816156020033426944297736243508792366695869201915205862353958553964325993939863749888160625394096670728155561072276549403011662357458600330650765828419651799274792978047620512383459300225713247822828921951659740144791610955144000430062439650610194455589277365056602539108697399442398100788389530332049083577226250180995762953915311484166964423004680920397354738001946684072204477521643755837130849837880175012712856521163701975179973253362339253854042368273909824953788583496875267060820368509023464166755706866391920149938623149442058007675992523698151860781179007829323414018422780353145104607553876198037069410384157287346304695134877662238266912613548166111921270540283116946933912102558554344287379758632728634316287835565637361351546624784002019481920608906785415260548556553307794337389459669760696295774180523738362080192555405802854209688392712252699033460758135393183665459821573463413041614934731215014846065710205687568962771134556037553362204673186888666263844384224772399201564868756743761828805741446378834213953830155811557224241218898529589068729619147375858035624496213309534495112601576065342394032661186089378805714527542901503705753517571027062477081137639000675444810063370666692550570299348759446179772505323372515758296661406883181487942384866459437129095107353082305609611799185534412590414700855371136407774980808548245539964518090201098665789688910474987702773418690793317787487619269960508686334515780452232902480696278097407440828726218889694932147120798828490538160387914978993021758980364617910112858834564424002113705626740133096358999590804536565131756104877683059077269931786656045666206074764503427521903664988958730663431529679413187494166050776438908806257562035667249541256778052148558363191976957270361756323709624066638375947461658698206654589604393337888336296525717311501206536761020412078959332502849736529799186468172290530919535485860654784731835433752214871010788437237577337616548473148932656902597625915001611478734872381776570350601238213558660686151567361586134186296820263815602296023688704689392212097188727750109713479858536211467072914573397482806859096384343232430430431718063324219797216905409837443440650119443581841875633219942151488572615107039072450493166300444087662516693288708834011345021207422692072937648704969070449981623121462488461537602646247472715159960526238922871499420409626523132933347614116048951493034281159930820896846539903559606406966070210917632121606770626079627931887665579445829914085266369394886959543140888059355000431176225338574165817997117904185569332201293420231254893499095186429401913369465510885775734339387594207242980062943024674579050866246785598768098485566605945462476329368655480826322650658385435083973648366335725980048316122746368562425748677722492996456829081228933510045955754371438929226718713018462820684898670248214936669108539636998381584352837230978220268071031227664315491873528166386805979545974150823982941090385958352352391020873731171652310238353412828656482587211567781003784860749159351183715291092232804343603060501014959949001084528568972362425487204174079481067052992360442860513264841666203178825498377949291185431230964151451965895841121593527381113666776135236959898688599929310280003602911207144588778254106463832820881583633995382454845135018900482603045641039695617386174975291660643433513811935692368266098747735279418524321497605024562883626778117361741528815660010313670204584856646978527249610256467214871013428976543078040679595492853580507580999315153896831796743485385678995208739264917461466072941186762708528024684738251028385843537408351746308683880114336019310471201367580794278861789321000931528116112436363445397520828978040116721135687260247696863688699029169466359193932270123780381651999177025792831212426423511595797812555697965493425860934885624467233899755406280125993501817746534194035911361942603351746283878787170159001046959177316895155578502506579613459301058018139215931060022959839829530541868142905597540773745301614278488799834349657649526729691230016698661393113523659348096349383430826508221200170106995218930177345309242647921532843568649111016433116468680711650072103342694587822253913873965533704067622152007991491801860283305933536720373936622679618170960840396764828761971902413318426657089522576298981638288364986561930841539955000805307707133424745289058302829010039117040450924023923705428306319993402437758032196826483689222959927126213771932796404788707396483604516637307315118515970243836129495839173756399863332403941808306806912673808363991351919840570620231967916920620819671712993253835779065901079055381342513696731746658973321216816641087596515566376314134868874982634562528569739879829860925709844313015433199322638197545740012915479676633559334049554891299876507105092875513726186050074122224916270018595185878299163331140389856427271429001940190627251887169799059136259943725958585325191140680187529055199427685054508028326554091955608418525717550249756371807737650933488576371261357882037584804920055306005631668707374641607875819027969477912654217789925666209082482378526424512397343840789691297618063785162439378578949701380415611526432252266089381314337461759579167587225591576511732518060795195022487383843446679273494192964888721759064874637788920886758162279055459673835568953425220882324692932060668462513542126535299634407270755730679677531049459514026890872518640505897497692611915996877918538969489384071591331451516574547810417132324120195829732256436556143237458325990966632157525644005016486089536572279497837659689621905824618413527465130169269508670901324728373870105207424670623701366559662584333568992735449918348938723922049926139745510472906951034623021160996002627941079144891823981138879627844506414189878254300636390506728183408936011164097569504649416081676975801452354517163126010709070748557713554499549978358903152519701612008537986516046007025965571451296785225190318374252167471579239906710074196958627812335047359261661105064332673411184314534441183890003083142170486363063019772367391789289080877262807333235769778195315330227969963183711574188597219727887145610023730924850309478788124153733723014226653754595665203642151985902716367820287584083407566515229606402781009879998652725274103320245188532277321270198913813546337823516094940089644418203659770953362988229528297201829881004655567288654959474926414011043599583025467617981338890478188212612233525577392841501138956331097932823716748275044507408291323828717157093971275560812246975477400226771590364062624407068151824739284589483718651886370479687840872411136587928150085385496582437921445581228340190750367628310128575038028085222175203354339715071463581767647155073121899200617448814999293694199993278431655293257708144411889515158172002517794729859031328501402733606709387891727378668724933514780232176083972915259953725374388266311963023188233512902247644248534292553666949234557830370884047322504175164822626191774964772260873827350342016619877853367809903477686900391082783023231320126171622368764275245457224437358866467786674906332749185823488896558419069262550365353452645626749628727236247363221089246272029326806559567069469406431088736500068364040433471823195682351792126871468719434888278788184179952681548256292903697682130279413166800712704621516265623667374932461153935902686045364865680279742482013556805990592762530763184408530407520622242744281290514214662485234492639582605741955117899846574888311433809572425948773439445779133894242084159160224594422722560470920746098560210327987774964182515648719822876620360076422311408847802668829754631514393548086917194576152378998280294201012394342347195942646629931992979393394757817701625678828278770602167059993088649848879839383596362683285391604846202981781058625795748291451165317401807224083282253122584893031560735155296751940954720683948609319357470807339198305350867560542140460760683825178219803500159009697360610257357874123117603398315624063796591487148883251584367862949804224301743430156791806668914299941800718337119429288088100293547326582299181614152374999234470703456254331295139402865528124032917643963293647413625982273031280056327622287767681131968711747140680677633076604394238787918197506871462900009337448812758940793544974557635098197449542260603430860444488847204247013288956830911768542118909316576455370307978439140936786578914242471050834583832192903915721114426204147289070104654163034007295466983161245004629651729556950365141721499536647149234982395935246017464092788804686743701543566166270263638025787034063388846412936391895154390871313430272533641563731844267076640620928559996463906300313135213509555681287171325547244161404067389062038297090337287225782200887698981646753598649783806854393237937429829313349136632998095616200619686234342504313210927258416360617588090411436907856812868766925869547517871410805138272376134127533800486621364910697802773924838245728557022430534816867482735400790898206962757764417566263718397106068321019221057283737021157153290175624498985973767162227492801466765423735405667768621078892327095628898256946665938572015881512357759857148433156941804255778853041660197765114038852734440665030426467090955428784400250231533398321464806943236161968383842930081661961474022201078945134620314290353976499580921446504166619418254159341743626534836331381053350032857457984431641128154014686367607459081814117933148790842977709248842183821080434641094583435354925941666228873480177049914475709984277357285414425914375235330871536079280386383026260790988593069518119996023219354231089478567682939937096431555754876047608249283837226001897060906774614610386716123499722777614783031078324056355695027774454669136992704013487491190309460943045015767623835743939976046980500547635724892080798290098452660651389571160863324237636821688392432981731962338156326546947293822217657124677409997992045989143017791479098383152397483521482797705388387796886015176386372298548044689792580845076026412844032987825508154627363558736254060774681586196946213303290975386699220874315399547602800144225338371988515099842550862962685496380815129833397995069093734504491371605402718568194388944253341472977647619944576867613315456337718689033789975110091458378751329138165110231066970971941870298310132969338651774431840575323010594222195739245825082064428945955999342601892992739022062505252704124758756503061976973987144339891763879958116120849532189558231706681915216003683668795511931696131124182082954056641820550184015822981341765145933019956520312130387708515409290306187767557059144565045497957797537591024345657611784353945847150568593202887181606087156405360992009972871227600248650349784147628847803201209827730151892139833449004723089626331265674497105014521664185653697933327289873196645452831629958033767043571070701303076393560073382414413996151216719409580627897158872053655189786788524760790476463573376821364364386023392634900987343443796124663496853015771071527973302842642165054328915755905398591592132183708443700944917515906062200899226897774053149091457999567238023641839082305827681552217377432642945696481026152316991576751207767451145092833118447841829040205070926681726951790254448210866205830688257167731469870503778576089472472502715838169806402679135278561431632079931746879914531156629591433423316957483462230755100672872601348211486700135611059424944689113166571838921798737285364554172981289516193730574809303744344011380181367581712336431216029816343618434777017221128035593972593582182734446847891706956562004314299500736383110655139500915353068067450196093494179827561057143450824721240394848830632886040115069387932399726882144788443238024149133930778295604008602715297371210929160591817431474928988865821909715086481536586699882669840899634064482810451064467397132775139636723211741561900863369040448269554547992332366641077631867395994162397562351077137409643958388950675963468354504199619142219878632920735070224956159043001232313851309432743899009050118987102082802669699775888411051120447959939393035311972065297031871542919555671945092521167589766945851581744870831281571126504018115239417523318637021137429047498092134770862255797363938990116079303049908999963225025246691090584806206571746004142439379327785371271839941506109845925813103028376629596454191346259804906029961467434646399463985222274533120720609180325593944595516442215425885007770924699224315196883879878258813956041483735900189918312530179948557624778708761491247594774268466955993846251623725826324707913404161575358981031420808279047858132093880609982959768176344529589159383546796415070905526528070016947479840034543000721917323089083371420692124623934121201425494182877884266467708305210314483810067187174067465666741447205248709881240922420615741433578173348358598399546332518631863555188321198422976510628893588525537754763298788410191794631268325745882603436633802823909841658321664262254527313095482504179901167953570041403334614424022849400304445481430748456533231945240140373203898306782575034831574032531956217519963283194392393446327762154737475346139792628081039540904086974443642718440535750734939698203284196054336496401256806086005957830676502092328553455855020647108150831931761323432540833158055161437818463571861413056135228823556097805377452241454668238704526011447772826799785460893263612911978213784174412788596133403416296026336592614537731672688121825165380719323426732464112317735601344786979330401006983347348688064682283201686673911086828546569696485657593451909586046098611236836607185576310219995425958061538393682894725044174940988284766164433459414559048605290299521676061002865754458924372947678429976804785633604837261408084908440172486547803462422688259953782410127381078421076485633945300217751497193500135133009506481028018038189443233145926716382897182629150029560513000699788382417954466955861934543617995281275983970497188625595929526906028946783926007234262116637127497408450771283400725353667686469088666812361098003402449071860382629797883528927468945766503937233427587496226529931068125693356115242908506927770124899302026118972861361782845621971165340522290335381320030096962273519949413259475517852172921595679975929101284860017158259232048355846581989487644961116629748721679279682797496177357038459671078517846650486626724620553606039733093265087000470577894556461673624478148407000466354557729594228321686450418019177165606878004204204669971121698098600460651153935835846532718801842815009982679965836193025033198678686393991102034520426727354888953474041160519188298145493093557289994246209773651028377033636539006881359541738473093600949056308564976730453190130551492836236395584708957731577588736504607924624078364066920273752465063187709209690639448964104868011250505456178505727123011730033361311936403857075465054522299816493905429278411571356204578123746897970825250102865623014194835021720929797264578161459820933219087280078384310740972897936826167303382238175884529676194712878477010190432204310281724438493433913630303847477139409022966081530609211802114996644863051992647472100365384827043270119789710201617659941049864056286506892758800198851785356566384026334168150540240391419790341746730727959861657761843652797621836603378751090882810414577930279538981216556512322739044922636180962592536215155836297464249382461876658892669976564858609926893760975305613024680536935537016975515722622403899350817529789753471274326793097200563560019695921097150003371472675266809752610704204002724874510032291126192393317042183009716192427524238242821671276636955506919648077657607587127405386830632091930192641470253964741043233322509732891153998344209522669682822894519418151003269636451454917616441104634059151478898526198766319407970627302482003734924009503084329162955110943533255334348124667720793855133389203434460298846225478539839678479395091548606960859542745298810103480866258165098644277626893585571092916909753287078241243692910198212277325537992888968630426116014638762008122832753333778530013440406937775694434903636941265161422780252896148256519301167377866524851957089570848821715745276134551739978194005314103540970290568723599722111903431381237135457153912771063423289248151823814854771931570012503819891196555831014195895098394242597931547914232160048674795708002939239635681844219877086481616714864336190495674865162437025652230506914648114250492473569565607025288630928778759882789986133109060223579209388870618562485820113106398493445890648999160204477603795786517679789945057829588512716946697713623626113585434732837257176353609853759223836181744445039251093591107751394994983822505488092042169601258206630662754664491947323142403034101913962990134897073422480365397188514592627648975283262553520070865561397190889007165306377996895993515262431014379232795183880638903437954519048635236884363327482030407694407473924077421869417747683365978996550496802616722357887304569961988451516812141839444284158839644469861505811450134772998583956461651486395001496621794137570558271889159095144423343089637055199764234168773004955935857120634859856589512519099311415355138754298217392279953222474730134363142533475570442684991598286419931155975017453647152047628658347347743305601110614676926767362140507199322849310616321163252228845973531385689332685005345362186935188296875088955961963136913651752440806868597827560336328969587223472287080820510541028281096934011195103345377574671546197001157456538815692420194474398285889374764123295291373032226241680352496480786998672138441045616290791113483644102698700528707829186722731202944304756767247047322043647796947163451996548011616725621330014660931274948254801221944201069183414666281659762531515984321175754313841283660370354009708082537207010347519989439793711291725970540466629347301236633704065872175027045439626798447948718159016885342280042925928924054781199444121826306784324321315966652018519857218326349049326184755135026922611944335412465886637895159808888886521938302906734501458709598163773869298913261921775667374161463165668940346740064514322662444947346644727453889502896533008870470575572209497439955757531922871932176525737375965161806777023575379125244845701444567996438259940363380275845883839316513990946686791620845945949717329212777629753950313768828326385284220013044658883135105842743345752357151845175804379791125554922421953884907366430005114636515134760088900844031013435636272705418688827838390813956680647906209439546222673363241073263122723314651335238107224569582859393241131712228478769972970770921943018942776651696409369668413354412332247760646723314582687436743449513083670478406279408793122155802866028741105550161362547447989346012156355216607777453110369647149948934021706751219679713457554458319316547908729810114497768290423311101435192119126389025295928521485478146479845513030989479655854890078145793014887901093703169203427499797613000592629713304189591783733195280602566949978557322469826057391513325137960536268619085438712760563001096342548597073589200443834039297405678725101242193633917159318778476168072518290814078969689369106174636343285800135851027375435155701488211145990597059540806084237243914989720822120421542767923202756850110951574125962798307935506175170654715663050885374930360879202519343607834109092386496728473849917619912783823340938238779155223900032182226936799829790050965510774696087563063776382269950053286958852041928224393174483741987214896528448572099289018531825232406888321705617539947540103556932653537777644848827759099836553917308804332721853258268523622745098272506067321939912360459944978222748096575543371087640554809974069991459680532810162857944139346319481149637976654769708181421127765667489994553904725842327359103304419748356784043721184716052258369931148489574813163325688953032039730478184867437270406570749904856231855358900444927649668596754492401193896061393513718700941176324729496403187625922548878453901093421365688455402253438933471966417554834014482245413875773843546643587415315295716152153599863648864080778207567797267076689656491497404417141648860588190613557933761434960556097760044889155806935698057397126837183648822321760450118640572762376059333116130332342372075745836963039612201925509822390293905346165455350791575273032115661940533836500971059986087799790468938577737284694643515483387282406202098282108418612558158954214892092351820894900279524929663459745980207098433741692496967128476734457369013063839437568112982333444219483122625812168977632850425845568874155386805005382512824257146207385924844983727900921454537197990536396641577080396986620176411576970653209936274233902939051222232210030884927701591959691819020171895323960270883120570126342889924639969924009821912510056802910362867514010808972623516521892572881051227019866264273474458696430876543864923748269708831714949713320158419391153756700487318216795721815734136739680969990424911632915333600522670539138278848939747825244873128637604395860513362125741585210554063888509505962258372022116811632948494432934490820204748105962484062113716978639922072767198099392445097634033283911482903578246519161957100660069303191991322514091112725544887747230290335307718733811444396917410755018965811756867198911443883981076310268086885968622269532558019693925461851150498123348733551084363624400002562280061261369287063017442522315445998782006856102637460589987937041446176981762370242305286037767287762598200097922710121815942092065069136245168826411815355961898006769545753415781318976119456936402023242737538686959546864422558191504634514840582593148388052942731641457070852837157004312379750935535494733906999245532386321347799572675714911832626786486261311609136707972427380956202388047198799168461193748509391026099365309164670968175517509993609413411380214449325899849362033992878658867980108898835299943472095827483814827213445417748127626487756257261508991092677150955764813211891413936387897536707032248805513815038312924837719217846840334312485360096585533782275821388482521633058227416878174061490513285622004416558461285801670216246273471292882695477270028068247307724303289475309728881487594705631189837707878526374255389973390834136637127823214085788647130503878951030464059753445121596048577992005687791286416110430988190445029424900328909583528458564385081321181538964631678798799845994094406029266695774099445256677349405856824519046644655083402027416633655884015708792397911948556068782775743152904975461182423520726711374469053225204035063833978905301645150234085947076605613951444922292826604976874818556490342177513884805757412302368447523419667936140837140470238140189959152298436064016529109818067893778729804619682402627544761950650258037635365449517236713048519615525458567491695771122095785249780525521974872344425847055645259989380135143318522115910121628713192124809137438322381580068223415390828559336174804234341146365639247594770288477450340911210503133373421466432006922993962826998962184036918681773055915574867081040710674171909124810437984337719453189924871370741624360073391347438905061647790041764528993835161622898582985863845674387599461584985389740613739790637003368678506225697418350344014223974456242396323854642008929241272066586546089791700100845737154132358633852432436121656579029981941716614888487550138392896447329808951778732459205825996308934850756471925648627130655516192907917350795762264805250041981906960421279953092949429205182065213000337432854570770989321810242919936157629155188359864443920733405716085562976509885222908143982097926913607297825226811654421327573332364820895999077705097958108515757241236732927272824425332874549327439743869248228511150806258723676403512964346852315307339178790400016953319549132484470632290574387248872338722772894683546998848081936409919335609538931829165391706413990678719846389488847138259168236020164067631435068845537476888832769329006277037398457897501774548278359502346832537310387312760220045230887261693545387974687330316427287509733696834731001290011204266619287033579437392412158723085561234913645450994539231521343035057502173538871159214111898220447144690501731129979956945110514327347077843749691417110201920551363393024027531365520039059701182221649583225818535370217989148450182847805346753601527457984528973319523753885869834991990644033018348303735230887157630591458532358159318942557782842327380557334253038590205631085725147506775231347901684222979073969734598976494124708467281592839163409821043729196456899750780632135095413313430224821212067516364039347099718907198428443809898597835784474530550332208657040255521760790786540880449677538583348615170470011559151304742414864354857413723571078297483491980572385093042001710292121897454763148866199844244103795236872994251489048434044683788579281677116430795676898666095176345703869016025958779482719165172078145438867776648618536316742234236610838358603781561990668975048246337939509187555990847334277809831006182072055597246574216812145104182259942251213161010478297269699162221450338389720942664540529267620437205702489870911095842745963770950212820957911478919531114426565702586936829845070526988244909848790723799262790132169742366547161872654933406830494255994082319460630422712161760177963694733668783254136486891124150963367676417804274678184715062838034720111864251189794281557369909822607596875680755288923515469782160558581523922495046219814944543215823012011508143993575742975122267345620962216532675201147852510424181854830980536177985432369738206530215282767582664451791834080624023546468831763083463693687105283046787416718609135055876280969059873359688981460643030603565149130307165966913425411906644230137185046862165184175321677098507532027375604076404945283736771664718026573576397420196669358909925010449581951032469967025792087289326438381959351198088424028590954196208346697231770906164580110794562288859687018433683421675952082556460490319077932631089531641344911555447809999394687946088886573635535907095805226396806903672399093789971029086622849538771598505899317664215910057068739721739877834598245861901400113488344956227782397024014565067865366345484753816052389024937454975940775950978056996933449815556719241126620923779707625628808717268223905177977981988062940061171647106962012176949986044948190678293413895127390170261252834325135899297806178842061440018451819225601863065043329168800249564434722740918919997636454907870528257761349935419099438471221463364660132853505193737793131508073463632271594868538001638433190798139180416079992422665567434753457228938285146820495133462908658733707083743418589818038763494809187721859158729787492415840925777330550415970060244720591096097237519173402006967875517234893000036494793133904125410492844608086891812764860635496312893585654318683474745819722741841398975023556828558031820624331072188887321045971443223279725648275604347930773345318326483743953601097453413154045281536164615042512285043570741447544291279443167909711597705314061481940949307047051851060563874559401861927412183887101671281804717345330395976181311599423609384564968172482464534451921015836838078996762499468827784346628902004875829673709442710829162661487613279118406048462028097177894287358114285560686523783433679121200901556124298842953022709212800531622122151289454007897722604945453847146126572956532177745702765583652083141283561844020156440825359398197536647022208285635512036078168489947806497568397214910595690606570500106867551256186703174251728562321696098664432438931664694666556513617048276429640243558349210153468184755131598005746311665789813599662083606044299730576508942275473065208384015668230488262693600520957653909912537581556404536006879307369624675908999712256758951804106539044389471671966675472731599513216603338010714672502257546089552597742324988202447040886071924735747160306195637016724287662565972324751408549627135703010528524487221585642443560487916473051774828123260829192634018673073477202123533935300749262620953937692723895724428892340224489999227376647420431285061447352282037548144123854740636901901453130263398557711580580386914356057095465613056753713333192412990306834717408344360732639377090159462760574884181341221422505755301986164402069674379490996168042150401594804745549680382903527954268611581338668195233993763261921610092169292543230134789417099511465803216155194363349168468639462885817339420347178516234151854978851576925247337557016677921984470522259820162062350385859958852518138410113886884190684048292898210288660480199515518533698018694357080425536606994192581906747518408019886742516247557334237041030799049228664914048025672259536883688727759822691889496942344820476025138529329408514650732830522200781027401160046286174970219030235205352099791052381911541769821024189247307999963329546831053296758665158679502573930257273953793295899951292797756160235469938270788081150020867696391812585797312507730748772266041734363406297213172377972782417717093506323065130361322162443707254273166990733501005467787466841395725477883086696476669965842801436491287305637652190711137514285399559008391929655374587496160669028419058712812862805855792091321592042711900323929074316510855280254307444155262225696284682844839739203447863457903304068085943544955842780534674951831425798924072979520172788661977831088201175880265170325890856570625475254507859470851313747420648260894603616020979310053845176427239285815926254295501804185786362652834031081136109653092148699572973825165790221180294148762712911210212147720931846969706234980168492911113667378108373763297774078213235663016493808930103840411374439760858856211279893552451211522433745618939248655390000007357334265121129075376319583938979456441874162628952442066490230372167715369637117415165930730219958817382389247547532227300765384284872335699510927911735575650053732366613316818553541941348554677409438372419595413838349131878827497565843934075095104333323435100666920483375387578170184265568391111964002824539041071165204257398129552491104843523629128112985156173307564648324661684587543767583545163503795705450457772474157481793677322745482245732468217980558404120733797129495593432844731542481959139732771958924557248292741748987838433177169893535144443755121857271262350791286416347303437131825081821579690621099368645774977927803065654757481284911436007105276747111912526881108230192988656566490558131390958690772273751738008891765987679847209503876102851566702563208922741979371322515339213068542462195085083459703971505527097805966170615014812906417926913750909262769981945326046576525773989088680893694983152122768824953932380697476916819402396717099477873843685426151496548025397956255284049217283559770455103557109623443772635705110323438234042572128915211828398806201801748120295499581881127501235345092027215319377278007333170680210952039133878413146050076585508547025386649145375863888975732778511781014117986079427034503643101953965773629200249057716949127353479422130594128322025680386085364021274207856278712578845378874625241394477614580457289106607620896411855591616022522931072570316639057505240129587928486698419149127732705127152981834134553633801241032245587208301837375484106583821120649378841378690151019363504190930840093019694573143096501446474938558451166389435633290509813868018460937175426262230403054513327928183667772634382452670393564516913899478514917785784017089709895560529012270094106399354205985027015312518474123210309500091329521844712388747763951016256573110051927364366201854044892081194506832657586437309653934807631404267453163829271344284345889123534584271470738463019877460044630131043304995586119423313600638547576142025244257185999905264324358601218672729218254923276335917493622411454185056965866383611978656840838605322180489576368788533640550618808086312436742268451082612582424361275433767893350554992088868941346460036804287716315511837813857418116335165461064377280608196224853494229369094319079123027657243018159513055864901923704951175391270144208069762775568491017279342158460085980647643583428604504453077205923352738519476352412593515910106062752857626042013942500938285313935464634871623557333058734221140078368752313937332358598248926720938368191850182806545035813332414318436201045359353744579663105604605428199681609996268605049874567347922084891763566417180460127065303887784446364703077712408091661712690632426384567960553920890447945014819329387376877759271577963847663070648170452147471266354622796833521349586355317019786682017650826468921860670735727835914372141335837959389730605265566307356698740712899742539031791996796171585948318153437855101832548958140973497837639464711674159181892165100565611153311340518267624472238789031138232768221993845449395119507158008525893737665478567432464235079522521285384252978656072602284301721279259441208468769361787501221583664874067186584130468555569044074133103965605081488947403778911411585968044410590258366928354133808417579101694675793383166291891983268981425254197562222074580517963728599299128574629962458752580565017045617590008169858530043818183549004590672069682410135771765195394228356789281571405324080831588311774993176388292288708846023227181395401430009347119466520322070221276410011172451711192918301270900252933040334741726616828570918709364780409536137610816862122345506113998898075731150615016594521310404176179797685456778039695784771991568369058691171179517562634990820633598726169492774648753038194462341086308025628766322189971360406029621958509471531216997069620825068861847731361740612748647025000057443810770007295472272309679051036025360118591277579904974056058513861510595209668861190735111227090243940819302995452776455134881784010804404774175454724857811270059130797007382540555789324297769392124436594070964641774456663960344667675753066452838338358017409820736037575357877765690790977849416681399569269162086477448330331644746161943609902728750670735266853467345696058564547470043065259837671255553650193441282597556698550361546480918505749817554853920706461734538066963187951476597531080324567342756706450885371298688648477351025535035783781312311584685972651110201098514296922565156284191750933147190902200800318413061367946037463472442252096635141824560476084794263468955813330941879427681228816434818420142575644655380500356065883390496041141097302588781209992033455436990441525643249686206909897392065127183824345351255220710301697019500476156139795597630465509382203362442181572227052299960341765135611147421570163359519396008193638646618305106619820359949108716687080529420217816213528999246590447767177900360061446410614269509805176829747943067785588504922134037227515643474958280818804590845884092423195365226772873687130430447587837994151896437744684498736016045477795663168983913328554494009014150044496386874246624573028574184148088221386475654092596600887869889555688867773428197327094439109274623973917497208700275108280535654136263825361577127599953877616391287064817939615695578626491773972678958724336571179716863203051670429392138592630965884617590307722904789412173660690489216848845188998240034859147080517625384909177880318033083668868826880521726569507186532569596031518875937068688865416320943151067137870348184704377519204674963834319845674381686939192003753136903048284420563475369400624450102723813259328382707412773351362162573966176894299888070095034156684494976065292725755661639586375478058189299004189410194359295812698517285848882137840103802189833053588943197277044125805108792371816740501268921896253371067151968358485763261803650802670731393368648647968771907975683333671798479447771678758703314578338581048559246678430422521690127021023683592962007245084227659412923302919528082341478755393756657662340539530889654902542516717604129101415608521884863875048455275333761194358786784965239803254124594016618775320757491729810066877474871102497860291043975899201617127998968112603397771797547875969704247558017898381947072199839208760719838548843076232574871894376381415710756203387709169413859879286227923130552595047749128872246397573646072684135997871829826690389426712578312703008011601205550630541791806769804469158743450741982822214277158480661263864495415402030245417454805372820520762788460525506774246182506415177367785405060058088680997498254658156030709095991246611735434903105000894302202323418933465754513505885634480600941503651855862794079608011596918593357391120261858332202093757623338501775447852554054045695694137669077338584038355901427387142131924278292443383238365690359244372740414114986145404998060983001842499012188244420980621632348114823031623262763266375134306434769187582198702191976513919155946529102573026901996122489010410167582821516062446423859680175325207591916814505794033978825089355617918039527671539944244720480293870500722403831993995085038968040538760199859319233033954718800774101550890839739298043170691134064401260061608361505132883680815500334758604860759702932152096784289736697523984768309163760061652213582014584594968305672350599681167785457132340427513559972502786988687102687217398322796707133679229982158543482459634639821884415562814142341131515123886191811150456010698254896431269571736188661705607218156351304278117644415951918718018537443682667379499858694970138260426745955507669161849382658746877877031020609736627661936134425470036629350713334182560145755301906226601205458470517416762498039226796968534291486592654836477064021472990364130174545139408320147564483823849147551871428465250866310538209755525825828590706747239324974270069692564084713057752828022375943970364979983886822931468691514362319303204053175610671112405111641890997412406277113741118591458520385273215479458015327678857625489728267573991318960761298983529152707907175279663767988037515858033580223980796318057874035360252731821091021767398487937116250968614898433731361369946461006741848411992840984977255935383850760284583742819183442361588316420304143701170396617050987671886076202037489922040186616226338184395420396163606193004556507245020695209892784018616820980547734338044062059588783515922007343033691895989482590757642164013159355848667709747379654663212546140841981848092274477906487600081313908780335137481234034686402301836051760502397555807309535695896199008913611936602439588915622097821985980181523903747346854475069808982739867153157253194605090326166065272267515559795572297543312160963651003534229168092092621301058377799313531018678257395159077951601148896357577126489402950803577240911493576397656585407414013355346553305708304641212205106876797064679726919195230705496093690817508674871636705882521499024055570706578122823295363046100807185293130918433566740594959175776838190977227213524930520632973690431758756285474171853629623699150948895766594542876483427026765355696055994291844000801217140074736841214926543347933892452384695367794501922577187607709976043110724521394746756027004320198628682671061379428407925800036733065188021081934147913874859288954587701695404724880578787115227858006294609006525845286940573063155308257409741886880852594701108317812475469572941228350471964856525680607008835542332766550160076909340194553469805481288936071283389575274126421035657115088754100971020827165356488290986670843136722246825679515124254404490889886645242502017708225743191522045238667312908152588327296074016547320296785937151489571189660426585715272807265470767325293820256571557701539938119765992274103760069894452721452064771277892728164635051781505945297138888955292547820564690166188741923834634855379271433390459546075208022328208762297991399377863760261390422714601502903902840927980343124825257346915789641186515662393325689453246373586267693681311952453970007863211024528257124653662567164043598949473379201831132654388091556742202199319651264628217601717556811846519566543942734004316845674089867896288618878939997775829689787205964866372236038255300219039948192799624065496011467481897017657693542199288162174670231403208583507468727462737973715388369110579514993282211488776350637260581668331853387362206014770472394075220751236315975896817853848199785421989219486669735937978326225073029746103870270129029245962257141493976309623926112686403705900726542204546416601988191646908807013953704297943114915153534309399349804222829404117944471295128743434963151865825243983478243761987338179826244188751154579866215141413583568934431864885597296549387874498173130777167208488098700534696396000402127223379079250333273736778856196008301856134484030798992259511090558206544103017043712277412564585662046341919930298898893982952502009045840825601875243033882094755201176208714220276013929125632187563226057535281646510059930032540521021991202724918521713999807319153413185615181051580432809336146988846922912063050896547257870182346571906215428034921211833126371765803317017859900376160655437032310962751557657233558188981265379140688154790698094217178879738130481938291038979865164886901910161137978075864720122088599787507750807563925690598175528957482331080706721000185373185813504635117683350788830290525900775600871951766687641681403671379083600272751122217396661756471551724394041123017595615739391227333240864473328023547991767403537993036397199380290859979486437156434279508707892323957394100660600693081123485975494823330142043243909649532278202003220801145637244917577140614939904964990903687583817452422486623314964669690957764993319173903887398075609036649280069874630045511050900185106895828997651036636401656570725880317401703629488241384881903693580582316553960446809124955086374637313215491274098500494874807146882040214835664180850470910617063249354897699265679928435455154274288239593924748794868261689775361483447286450328546418294182204798765776312199695946872686334048107851742615156402758025091208477416546969473986236441912592708517953405090341441655587610620234140159718321228496663340600124251407028878254114797125012176206932071650515534304122112654571275209974330764024185599096997663500463603311088561343823097520553652637986721264892441863508782463456290402770595139635792143734298215798174977289154473961315155125358680958502772662431314354924420703780094343369278630457124252042299457688885248322492437105616193555012632047092672955660592993938740535327451185163775751280757906320300384966481376796609603415635260855544788541367889038901693934882551511426673212622949202792576312534956450965916209036985027052128221290612819122686189247985565568748175964965407386392642248659856226328682086993923346200978737050154959607820106782630882330016257034199441331222379383944912799426471741683055854908779490026418611700916417421646746764118850276661823653853426984382837519874771483345966864341025394848173204554486294211704082170212075838632755046019005671598824751541019177232806568712956225602557491523759731372303300154747700857926798753469404856451092387603700353524450595699730158436611441970400587140064000732814705284028609595170037063500496153808403394992238600227275257408453897895144652676787768755184310033837025233885943268896255404899219233036899887757286379304206675879790748030260112412475711997809253620748433273038244067899511398777592363051073211512971388444495927072658943487034614800982602466616978808372725257811408129530300136216198063440506408127624134460985166749681332590479871000690395027387809243907593069704780282394356887054330982795450024452132641308968383496590607135443410737421316692666891671038335155222365572070825610372517822872118262461033218933154958638827387813030448580189795022714638357285935167632059919588798088436806551588546854688911739172788698593949632461355602098454159057134123294663894822560075466352943976779168976304751688552872745317376438329513090970292630770026054464953848635211343950024853151333277379369593883785869508547108767144129223746274782808979581149267112248972406495104610860535549965951806405513426770348675036444445239055796109961839816956493517756882908887001847174348749691510110619754663046595972787414520057993237047077066561715659138776215590826833775213617432770944746996572982479619696715625718972451570659782410528238255707581002916035217888696520597901482121766792953392593243798906437927561074127807171792450972543951740863081792566884964775678185972596402474976994378059752834277804333436196210061840215282904015047344483299290287921045716216977596309351067484386743681462918121012273797792734840160693768015718780695642695672858681293039294451854837617701860179279555283913914416020319425875446900151038285638737196163655085168026632857502470103228682354734869512835291771939630427787250555099325777049052252650162780705340268295732602790561207852160166742270962334597673005140018848364078917507074160830763454083398753610834280987590193311704292214113930893580876219985681084267841300068254688558967070620048416480171412422311179823713570152055274652880803254843835813624371597180589521166704471079686231810788705514564443724412261369352474584261880685725136936828793706688615197529736668992107622267953300624090048967216000069182370703206353349609821614321274213602176052701001838411588260011107796263524481768997733716575036141350344661588422801374141767700957165586821166316043232153728760409119891933380621369695496083583947870652338618143241167550671336494437572530609362245160798763692335769686093936380764547513654063608016292768383727128493086774660829246723064770989241451513092303793282561158659773088381196494733561166356152596094924755963973969929302428509788069241344932981054632054402376422178090572884711159650993638312701057592278757883696994605923890695412451198181433468457358908901505231390752772270140619626720750562489628004461731318592547650252118578959864387063429139259949987516133302881159361005904827638775949350650261050751263012302766206521797722627972749560773875033424064342473222639639631980765239541643731310599190298668111601190412458999978852018203404042772634377777195330068452050613162446275485017091004244551472113459979690733372978695266197139992087692339454673805327309264865150338268540945823725124300409177743664664207320550437291411881597629087879924144565592618487869957585529111940399260458558347672133073679331072802076206387386260387441487796371004700954466822275805314308138986665362357409753392621012924261740996535733531038710880309747204316458085777166620583810906225119079682842335550257045068578590468873867286564177156237196798242163514729945283996910587298315300854374425816531337773890606128673552618107424947465672016534423823115543546416727631537097584387007257008065647668335106249948139828529199363751081238758475602229811049944628157416661485765050861085988559686808688259707432209024705292110207238290110375856032441846054568371286800103160352160904799430386352498110334634324343219620166658449992887718350426238066801850069274149578742151901324845436559371855992671532568124746366529872212220691757349041648162488952667066803814028423637085107707916222911943738662731311334652054044992475753358691682914121333777385940445083849389647404687907926704770398861760732461480099977954435700786300999047918468502100323310165843238866663401586798243823733330862086180057912871039404783233717342800588699539700175897719800045290514816443181582495602371376398576605314670869042984763197662251331274160989385602783697556248650336939272351513965499358816275068370798821358068888856052960662728355174758878935036013907585883335266169869711236656828619111546924852024270867676816055304389131832605485400923333301446370483089390839065971801820351745782028319095246843487392739603385857678951905256799890022981448447754369931998996808736601707671698052673817379686987927586873524332687224040047755464309753783454392091618453639915900086383106914445336868623653844875685162375555823510776325676654497472622831226136941076759135807773051506576312508771712984956723664732507265937284415771017854439640218675181648286234396710609267390255846227079987765025087104560873525722734061302864570498678917956320603952271763634285906461159872926837641963031365320729421862466862439415122757967288159247570947656750946555227346990931606274184396062906983000805887325092900415604448547859145604846038756472266444889481704454001648419779210355003494228607487727541439555632442413294912899557230131972369764548684314630732676289935761880152807287564820659459656581149609105862018696765722447625534874588645353763259046799621322240998623478078093297763208738111307381359560684888717223346888867453393712860576463131416325720469372996199905987007851763801994553050117913103397751225555637308819967620126232052779540944473246331914618688781043139372792281299989452335641784891322328538157780772747455096688323171601766547701024380096198343684925349219967828959997765837266710202358516254812387346217166913109567957179816047157419986204051423191030210039907244323470692329653842940215283528958344080266358860976226715896186298026278676358683283681993112281578461831230825093192773066023184394756592272159135464334054549150896368371083595825913013498785403352930060587501633116990664518873524491314938755367168222545519209100772558445594553907009382839278331293271884919070802883127455915655077630017319050850874856456346265653548605145011062095003873486947214212127238750406959673025724545206397885481438095436998146809014567301989804279134408639229062013147817476352041830007457121926344306040813766064028263316407266311476460584582794424227741914951379934494808228435623048125191265728619607205820877075344840741429400697865298786768363641456681990731331354477473904435221781937960889310022730731534147564762730859578185052736590640287394358250636698260941956336984796095416234974143538803768241234456613569084541187876721976887217093741173869307435849912894844467064578258432213726961605383744207433009973012512840191115174667588992005535080019347312442796030438384968305804459447860198299346766554403420624402945259980564948994695619789297636890713289759478836797869095274323492178419995256311443232653786352736794906690433329713028744213519649255313582064307983928313529343120909030436353725055475661092362619023550734103722996950544836338649995546086187793078260276654345379094065247782331206176138446658868975473358118717797586856355631212097041761454331065261252771592632009698266672534180538524597408167251131717751452151167931168376217836407068675370287462344912235032179395342251216140444590997722769224871959982295472492832380145267660389989959310193839573360116785018120946280533626348889928426482668255458996189338079354552658907185008017905919951539137723500147623724919826667118421762407378490219127774950880881782259074059836268286967907628834449615778144823845266521673693694979502343504228451463657166164169691693540085207547753286338131579102037618532633158963064131507453481182625813041711521895861170413838128085263378529886459891709079186761495604310845307142492102206635170885008118595523827587022293041482625118296967079463258403718386431843317790148588160624581960670059914857246432958749820797183993891928658878533034861698930788556776666144988461278903217356597414995825694469707057717942383859182743379702438608386497675304778906345207352464155818387875947063034362276369494428743370069494313693749986336601583265295114569504015096050419371382232313993666930834799428886200002223015993099484332197782741229153851229050113425173187986967316081870028653067593709410400072539582283581438950200708210173131418725845952487394907512113648836609728135458672362529119768440331463377713735862117393406974522165081689338180840879629450783069621064670232117329196433453678189789860370973439177227196998962873728619989343083381697612079563123757686159844375932007606392246193455314842811971196501796528979911164658018086434730545889144123965701176862384834456843238503829813031865888354019512812870966391711460381795370685710496799600924128121158947846786825266080597679483117218900952030791533624435074015532352166639619953439913607667858246066088576942304651812340522481129625055082463465735088063534131723125109129748552117017937953327197219723590287169949554135652848666892122836217440754431252094293923767398293487505616493143194420964920414389936946665730736319213671277489282558178274963990909649304384956043258327094170684740259279931036274557727759439325561333534755028126469329942589288858090512259067691222085988469977111816044851602174162849995295017042322507248867777516180952874180970222195491965439715618558602597905649805374454455332795271839344035768604200741342921167527943825332258080838246495314360637537317050996777169473618362966017877984558466842705083730798559321529051511193573201651907146605788092162543292033687869541698730274486511826905077936910420352601848514949268019699470043931943235234242458288061632624689576342658488582476748872460497965623686431041542550051259417442645212482668104645123553301261415166417786261250974882373413806826094443924079702566253386172422981036062708727050864305114777433943834753446795724230245629639991885719171792181079076925496446422196783216902279783567400638421279648127309511403713365610696850468447769025725084385852769321166012465835473227099185929932936709527615473458635144916420408517701621990034245623178150009684844425402522366360036926417419291588864398122369419792093794505118585538905647835204048500928990708561656169109450340058600292741236637759230529130631440132866624093627137319563863900677573686294119612357907038374936037881056319543521037390463018932729189941679845988595156370530297517494586292387588784272334387112589499294681331063077755231148655961192516839202560689408773681319618539466964014282292568121824131011846996984369117769213823394011737787093897348350287084721644352173139506664877512742426202363067060759893458806656306971604840983507212106930703623212033704814457664389489029096561852498183867813650785014413702274583096941055633386875476600507558871564049438809186933112537080352815747800490063975909999994850511265830075924129008047406062930820160983552421548495367422161378454343818172208817384131335817892320112755512425009578575977009699745673675400187720024512792011105655208980251472545970816733680926793573891353762240059236051915658785718639966136240382717250740480413877022331256177677630866569447061200442791379293733280998965249573394921380542426854049803178956752842051291335111375901338697728074662872146995612358739784118602513309707156258989720901319776112818105681909396157644547979653701257359094064397099884913522255405592168978336332303317384042007802959969718436554994344836577314887800041276867120157173301204020389271449244649845847454446163797773684480334515032881990414350280339934519069649621992184046434710367474807449222944451929111447733236048521839101456073783979716891326340828701326501640033966622467209874034328252035069481584307465430241613503726715896201201785960810208902010819485475155820042850892376659350498577788529545903711896937056313079554773096272921011738632690536818548874850532206175528258722379068879779407366545020745446497979626599606211511010285349454059825398685758625788982188919919404936180447822569330406119578546132840167816011051015085494759918069180772458491863553070230861090394188423387992612979996179405728707253726447359733091886786482553215264428550614774148512953672115604804034495852549356232300378071369990771164993242091245623971773299928362804966606071228948175854319224904889128905463542549230561193176513564652198387041723761819205011148947180777786884974395483223640309854281419667203031559031755148401065416697578339436762917512416411083595356396437591414841461014727068428387158378862641260502481016802082235072672520414877595303758564143121553327507725320657145920575657974275759089634345411695937419613910638451258043300929146629671137700024582711714427843782688905626193028824468744774959495408054738781246137894324491681424426905108900513232416172621672645939884126149695074638967830389516473746811378925406940844386427680048106050249221800191344169518117939260159529795817664700871917192638942313445469694872648862818432321609771587754835663643529201936725843058983860161365786501623833462821056373078665244269397491234431515388336047035479756848639226474922530342448312947950385035752703035361114111097188038781429313636344923024200504458354675589623762629698342750513223076315246202678145957102717134295676112100138274192300658735062844457964779898474962680144830975482773633930951427209735277387007038603696754854053263072699518492789918785871316340083031420853964078865652880832694901100070627556886422380514809239489461035953227187793060995929670930986295414549517658489160028320326665152161192570827816953331477273206745989417160939317629050075354791842156966293545707380080349314411982174916372724888007406447374922442065176473641251994054526251132912437743777196307783091346325258572586207649549309929641195296645653128282234310409673268526963670127932164698383349884229567695795277101492603249607518065739622687448437165009174287717842588491323050507332748537859669782091689252886196789770090454791587471689913650355885768792929032864791459493822067493200552009161067253552741635293320221958412489482646402503825044698311520959100039775065705690468934208104549459386853332973651080268443212364164425742979840968332937513998787049239782847661254968244776727293595331560695384970644220152194821972781214970321982232173487166139233508851682699260612634359673138996889912088896266861315650576799533221922696509560025075825261963110471739686976150914898360574765050878725821755856041877355848527903499621440100593388790744309656411183262857421606635047812315683979092358429034544053385745157612644140796774646851982502787653418890795418224551022506188865268323724616110649175723943790728953088848715853757534780296219981168573440643553889079898507491353104445803234794311208077693432877201741159309400826398963809296760561056553099390460159103745014981993004288288259069878893061211174599047065079777877916343774366282251311575436012674368604779163420677429327731168633548622177808152763218883576839036827115886731676956440194694045676049642792182703884051977330987064220010156464595676801833436390733751934436646858007804807894636931373300476881313522941952714832494561676628031749741414606376115853495872915142478433001603368313464180855713925952774497992233857726659589478245816378949703913635656977068793731393152596066139633214092658279656566975512368043725712811814422035936947705351281571732194363074188612018220389152252172536920349182119411883462543346238473506990816288456674158643415434062500704845189286911882343063676731849062541241885739843648799445140578160693139066159004738933593782985072151799832282598879463884879402122514018211716946089841629992455795409954814606107971937932090418019278057335399495989202407452870023929762403701749832924412181407340132821588137383580746262231429294939564451522975201408404581074606410148656244407755164502272285820606207210030175926656730187934344741935972340046619694337743554317130868545093496027959560093789986734513437720999587515398593623657900700193134796335985107444202110397809110382024908612048668150452604906994759546363625503127264399640601898858133231824614333693402126829820178060640504177036612607208576175318566135348388280851138227928275044969002068645172131460502275123768192219814239557610631930591960654587373758960704019040254899897827982601432658195783353710818954215732812377931542200531893737956146834097371157838111720430449200447477831104215503402397796010448291862515261327701671312607128747612038635294716283904371002101988017515933641216404404833720340518493026285619479361100719862611937510169219225588881332619144404780301792986903053289225893440226138771570729984402601436123038752806994791999454995850747406439458339509157815800004644255296305248176498538068856217057651622380310120238376869499439635459151408446533627664641435795683337895575861489815716820365291965711420738114383741604850145550330264004767813934447747551091436330207815791308854266734709024174890439709470332845020864809999961669026958549268398552483255496480592674480303994042159092968020383599583908937289685338862599022143442431173073021012289241841707886895139604998862102141862870798886806516314684564007310547938508056138630276632281995972067385059795364603286766168752172690747016623874408689195505219375375838657073074474871958977221773347628104802141494499383074105836047119256845484208148057062913938195689408597815268041746223481285110014161281020049731817925245494838133482782584143831892870103704947329364618756001849731613862552704004990061148180142955924090408490548572566870201306420091654107751673339487258279392392586721719731242811983997895325242470798502057446738975481817828025544243964775052389872027505142539135954407321546353731285302587938362897332232666974894147227270734985484497367934278724872002996776588708813283165558241535377284860869568531309718393475139080849130928274522148375804327602603309691496683469450635908270666653071067981857089444360712206208670901249508356821315369486321896846663448711174001149184344593904444604515195995212776937223672156973660083808380070319819719662989667525942482258474214431765749012432110196102432437619710684961880406272915041481190193968007118053300151231580111052469346945672291203190381740730918924701476575529815979212922894325293058779310246589269225364424653361432634966063330733292170743966718773220541070244554184532264425501850448841077529739181818035794574738405009618935910623720670317580783268258298277260405927695379757937918729841782910999926200090735677081553752714396672419432288550897807275514099860528928846058174601740023850571636610326356095812522178095707241730168897370840303993655379097255737992706604233776502163032619080180390058353217130874476556605981716193261621687457863040642418133974777740055728201325067700694049911298109840706677030350938980944254802611364737283917038623894074679725501535100877160991411596216927506932171090690949210850981722520386504714504132563733212584516262912474659209516872723774075320850702008138256088454620476814693072653524503249160835708853267018553684429563968897843779297516764256023258602216952184792911013282727639392121939562571355229415605323238716783559034686978867453635707648194808289201260634226807826383110540372688692498156317927118377450079329976528906069295067504790723553581138190444652074178484037985163020741398784618283029246919047522649893842389304482167113357618473953852072792133032146038558534629139794888839972996258885511604408720022392978951635586857093110091970353362213019846931389806869626039723767602987954063940534394674228805124667197933025453260613412518143067140187371129779259842279452924137478993308033836908135929363042151263856861913201974839775709676134487004653336092435698229245749826037469162515022163293675675531529121862609824610756654437132469387954557710738440516662918093160537936225513752698534129465577195861117880333795050175919889188805151883427114394753528439529507581184656605059182992081044562515446157467539848351603041476424400960568083164017185929419663058804652570502676258358279310846086326234149077296922166530020895335428091151882304401302204888044974397614333981459245530505873041731538685004975031574802988486737613545078425580880780483786332560986347751822849158141589226668692064045798689851029847273079644589438793703124584030675396450437305684328510525921590687295829116942443941666287059260243963121680221871333970930940193645406157006299418713205542573884901646825737092444544984260579803870290147623327978865967836373367106073241583486262415343041640326872328464108593350257630961607303203250808446188671354650755313284327346619888330347607911257877103737028742271899982061392585658020611077132628875850999114324444476856956600713391459708408747693401624011400978554662942233666968999039296002592815425378685359834707862418161538083873219694391057437884314340118822443941064155260402213262333142972672376454378583229160248289716658505248979644310234059812762447725085437303477438255552671269710247185886044124974210544326229779465488070104180970604712141187533484451229667494220261478031435662805639405843648922340775747714300154178983750494154556480861531393045548093754824796186071295302287334397661584949565240223101271302131447202019567417562157110927166184741952659196665013122473326212602154277460927840828337429533160380725002072614230892983544236021711569533839810063361816160718146099652382528660746517089533025654904897541415511011096862407641658167349457345989260877398006683289670257740943251308695556279789207187523952933528766450252364057757748000338475928031014613905484258456900079720054165588042184449152030632514850796463726680987159138117424862481586857268718803758877165900716369586716876212492604190624618409876044677841505995949050775614877890858160438502346774210608875813826874848718676366206540769390386228401624598401030430245750916273411647275207796526155705310856872584869497939859102910454962500857956153649015400682402047832431787960614385409901582840237780226727953327243399196575197893226651936390105074023187700024209734660104088985995578163536547234894523220976393028190588630048156001337376472538176173754641864552068039099168651434444960141149993218479541738385586239869377392099674042711775924681277912860746863510261758880643528670893474471548316297838615799925547024789284969784282027867438468624486140736429373410256046192847024192820741029843230510127817785624041041514198219719308833731576080071915293828681120668291417434828456674070455461059210681534870252245930524804058806295332763073021107354315657921126278264874667380415311457108398679713276699300484386516470881891504259216410642546268806674223320324872186110547845475774657607579571118207724258721352134403724672239737460810151362632175712272988611346974897717499905369913469324518834113650539108376681482494037092923917653788627876404880569662595962659032139845040920686298912198584312716114546580618973075923391719690071639416480239750169724244765124589488420686309167109919382476442989481053271746548393674511541760931383842396847065741767445016364259469243006890431198271125041325152933399405529727790682484624394157820231095934065165885083071039417669089000595682812272695185437130241638281112397638518966123543269357956119245330742543642798023440158696574893343912962759529741391001272075621723134365875273453966417459067363817439954970121631663272267245259950238334452918629208703793429395331681063489144473451299688314226214802239863678985703140419933107615033318084930960491786166924362387252414721075041078584477390588726787670367280716770240241308379444425224266528275729061645790018900123064014896597805478149795995342696753371911562870135551489983891582068502169441642602046473027076880863764880001466417365585994786708970474703885365228352311533725509598395448208164802098514571391485197025479238127724327054297808188896736298827348588697015780243844862891430808817425114732013280270498452927042777215509376675092897492039641934852742024501540447703767802447007269236229807305941504647418932401886636745697618551830441926472722455589656775936191695863953215776502705718404463010976986671333542505148816764129718271583636849958366582795825508271470710693526254938329951384032358292392182075955883937066619314235346317065816096180910338050921487725333269543457565329331414877459339993972288702473575459490688706267149894440339446620082695457742720699175281831949728032055748300549417382485755233704790564240053565463044549468227943869312719091671744816926597348541617853290033455414901775080729890478192065598796875306156059980437611289372701362660629768646966016271628781872946979801256003497409551607975792211371582658796670513012619192396594627447779229265733817792082303057903229592581435074210995189238794665854691224212232809449456479683963839420299448225697392470871521302924300889183773608547600013465237637917652575130227292447463115596002003920062202073623602715060537406254517938928466787762956530495630502746720836898630313303569927685561785594240510220358194696790667549763321687985673267668356611375838779687958129775418414923650936635418372637354040798902129983368708694189723872490154037391738945823764315596298926135897109854494396293437305650706769078085647667535902789456449104363322888903452715627426577967009121735741426941888949845404982200655254763753489163455772271631456818158885716829512423478072847820474287841945431489332337636369259231749383697078319695242334795981782679365530071208729237624446878507962434009452052197318584599115655183291698304733305624608740584355086715420586562228327423434439365692323973369370871684197996189165955067686206372633721829462929883881010209413097863664807781344382253596326120667546441822392839848626105808637330004842290255482117900329549210842676117295709130416206803437637876348999556333331488452510981042649255816335577913682442925262665050367724060791010157773223099528369687207080530711803427029156681299170050738709972118902513499220699015787627714492563753657835277677874880728774210286878215297570735981423327053461520450487592252190795924667662500466233804293511916276050478635197742986825009745902480876226709786961258963167123349677238689130649176248789601042034460387789390269243180548452437761293325867469252687775643531270697284136327507642106709345690423124059641890196889640447382489081594263610997868558471422872334735387254633717044007365276579601794458512380780145811081777824544598624621397192326672045010153999399922898738038249655219249268947467771215913163139342765203609718287488306701303271261508290405333879330035020437558531623202325957912936532257743502804216741902728271853192345376394846548835462996081097518882383114351191237879402370349726450808603963593094842668488369803236658863854717112061630816685490473867805467660142853919435071022345551639363493608823531447170234887809464669583865051791989600746321501472853692672414669550903037189768787201373250792487304959353035294035352997780055710517935910347825976804656484460389895065576625888400681598693410672453780344548950439683247017628475885710617312350829013670232846633355039233893344787243195336970841078589109987224452884538678412165508450144411813649476577484674645844040847720933727615064539322331105178629210717596758348514177581981245990928165046726091850468428000527491104187704563256114548267263246100066434330924741770184680770049185941362135105137433536469135210520009620896641053335414680949607809067843683973571583009042720406110426465405329630579425258026414376400356419910458882927472030716464518961831479332834281846981629553555056710913600294484567421429522018146021260948521315957588321514581013776952679801953680229377842668533112385559410411219884661823921219947171401510730676224658896422539266436809931065415386110218838935211747027041255343398874412460202733729705594025692462189346158021828825359871318210312380125256879390829316328456055675801409975569467270069982265895371946414346051852495151213091470084757912432965801693931317580192328297577686967299878106424204676842798967733698800603909450176705047231240376438266419197942666180710387995072012839788171171769827531250460226070624253573879394883808119239788950740694713503645335492316233693740047027711479769762568789524306056572580284877584652651642675731638364760079056876525663570817235105450720382053186392224883889041930973234566167256098907545973821574633097219785921543196762440881169339139422493280942801631468092078066539764032384699038180986938889651097467299620346494398067822494035495471339558704525844168280299068813652925266000181135160500592671742260450135135817624491649497960364175352218243951808754139973595711993119903807888012804797663486432511992008116688886060736129390569971850437693149096740376502211834574861245671913431431604379897873287740285992460538199608985667554256614316933052851108188225229853340807630688248423703149105663879251275731273506176195888501048042319823052918131363371852408766352316414141403572406627980325639129057072985304812883290307156383858038171091691737058703899901218721658504265967261286823460446378198811407995306289104083273731314113416203796705960782527921003471785299481247347553598965567104522054446437766862266663612805845967061785809882491538137789644213424803581473215118987591453616818963239495979533237597689439370894013263792671125581732800683238156214859827078852005612943181263965719341875872810219242739381600491515477933579331772915274402613760206314036839525552907361530592761302662355209034969858251198030750122269934165319629811027350593995657226687055706553070970317130118526212086188150329294657657973604184302580925006595839572430774048901307974526013789638518278757504348188480555244732751162530284958003906142213989999844817486274690488096234597077328685618602765601268553858274603948541763901064665410248444331830267226873342724430544683812969384433658129173561766336763507690670830842583694688136190618468518308509204135900069811469927350880138766031806142448166327406708721884768776045831333339541427791425883056633049222434884707700167604459328158381244953571437331615042267740915876391786612039745155745583054150691906680152427789326153402609429514379600981348061259707032791825032197260164262646734105385769071319862642770538074196794110840821623706395812444056880614865181018282187462650455787311804077445192784331617194757436426357086282247061388281099867293652000422783517699580730861426644631772652063218181390682626778970437151190412922568880176550980574021267085750572648586470148395961169659449391837789433748477918015913111003881707995441660213610842530994826772911535148667881665921943013351909601868690184401528932034927248002528531495817546068276834435557004603571545788868987991956663802692849405777236418852380665816165363064865883067090042830006013307110293698651200474734881249245519055940195010131892339265504696694535778471024548864033392944206060340942216476181566093460894533274913042753037557464452039218538996879582767325709529868742237621772170775434126625378190399708128197032984485701858260386922314313483247684168406971732343500019512410424891189365141807094312557349909425434685419803336104411183471495983269090883519722369830369817086338977836694178881010812675026911602312520144193952721347633383915689767348756587464821748583295643160808301883759855520257589805720163892353842463647650889969314070023269045586989229363986046424356487304044389726625071098451711452526050930532605095447549942134487498982550621166935172391684626716789207902880903589206838480043292905251935518765424297848560358266776947756915954366703622382423530279280351517414508539240247284130727392165086949577283599144805275311773972381709404281051825713863803028607296765342930249361546645510494011039132612525028363584852627639725159761209260166220773110997972894745841605294455901449086541768164121914694281635663803492245720474655691560868921019959100097883999672494163567539554271606990536026526254338636486061406754200154695924470807588474422921189546572447076920983184258875746521464389698034078636937799022354517090049747871684178424718126994698126927962900909418330605732754538723938516708317426889112564551177392480285924496914104483991298851653202677796202482756544194309483506432047387436550481033393251492273826906455042756958774327912484645705864185231291305506460631229318323035275821995572658610556572425487074653248927662354728766657886325004689995081540262990233550163404721438065471471864971250596846680229684892067264067180881361343388822303995757131579197677135983236021713173643833146803563905348251530511257533744712658487249068474390282919275521719285072148503846676368091945036784591143232325454480252850745446883167183594390647477461580516569332372834909981449087078250820681977835364384047809983735753152138010368595643670195152574087264304459393574488598717296752530165360942551813503484864004104307135833216307084661820812717259988795036257575738778131804277034505792786019703400179290760334531493511373848040132762257426222422123036951451223779025813512747628569091366467977703006386489790652164455027528944865620097655855077883708120311159621032918628603088927866692931742058286757841087874734233813838712131080222259089042019815472288847973008334356509296264299938540858382343003763757615657640944747097588137068634159141855654792109509063520255140221990806446427334656617872818553668395138116904938668469876112875381247543550505146664999338584584547091968951132031191523618678386097403695829800471890319624951441674319438122134123846032929886940143443956613876587226216400979111831793366566793837668310390016047368612762655877283818519887541731258610524760059091953223718906121006103395400381427202212899262250411046410469114903504401452292483403123173978867593312987791409208115188509892190964564091517800670232354935834400612775724940482988356479286867994060756730565397331562117599276928167357221462303548744706889418837580218894067597780932779761105282815029841395702102120936521363257837514939405846748341862430387628417033839633339738486179978071046020505285198688333575193623373996141327054390571880278242155939204557820080807568710388005239015761864358349600111163046938366860083957754203012885052417863429521210624348272910096980241519891303582403406713947552669344322946514754399119316444540915184509229453522930715975792972761530401056489926110734408910462725442025208117829625891801608662428758204483421101459392673590678269747421148149378421433297756281723177864625912916104699521868610151711575205459902513015483461081136695421816335940593286667604001103111459127297754896662214052494478016196573976806902316474250342575480139432128190412715139758776523797417534195431025199889046856451189974319501287553885454344689235930422666050164012794975717284011418298153143777749252321551272701570674538152566493459227869256793666232058196488432095834749653624999145463006824330104198383744156061510951215400347826200487566602676336478887187407387061757404939356791515655475885041402940718044734234703518376907981150858701138978291730691243701065552666472194358945791832889053667740533020602230532676525152526826835372822687536489649198479957701632644624762320189227610171067749108119252860321617999920658314724059721273401894757500036848595701789453443579080637644010311603759285063179903196624303283207990353038782664780389207335132161890186992723586437709777121330812567719350889129236104826686910722888652073932148659877381559818709899694520998984221091791506842269099621419064020577493473878325865140429388127432919895128796330518562549032579474562386760421352849394072486278233816400033378945201338407885526483778304234162108950081290714634636922019666686708699644707641287001431546141254475685492697550477322206921873011417166598561395113098265468296144566808482115154853610952682142529747407799777415471068192679322710173310935608604082441626674809096559905370143385562953532472153142390175364635540395534165962628450960913976299201635947446852525236373676679175584465459989004346696234719679851520609501814727930614893554110953938989362874912472570785317064120964901228132886805810774524645165524350356872936060979911595686166044463340310320350053998573155562479770903995247808851692391832295781358473440587169246273246640660557951926776303146164957693849164592751214183149769305256438241415937629121842333882930194029226948852202829537703915489403014044108956492401415724751265145189501539183693447219033175263348652336106050982591255491986342548575459944958702630595999357397271592256746206746530861979016045904090784657006957933289093217218795062501489962917696860763437595926261720917179870246141591760121567643988845646908197489128872139805946042058832146019796198158002880651073067347930026946155287851575366414604720508793211311003381326300868609617717287498321315685976551476253264532367919122151052049194334356875317727899722002528753065523286308463829618321121433669208615677136396301523885481064895905460146231258821231537062667208340189284949859255107195564798662406436443864372666408056524032090067943003040330534162463502060515811900459880538217215158154132806245425841577221226011089692076681466103475952447575127372041503674582250130467300523359302451029508942909519310455461711475362754992196932032369367676651784826213960042541353711852909822208683456469238764149847538966565768428930222250141246688146746261290980510490066669584914064999028142893052607054427946162363655539978407142552565289709447837343618528148792449376481683737741174108044584899173363226258319622139416591644233334477221247024955150891013606878568463939579709291720201695977870086189404839426567525887723409283223295112721065477205380471643480101003298923264483642540532865028476212412514479740860322605416938626264329832462002893450769440268480051006249610043925399598712389345011073336836222903507506207244661823700328704226648696669792516732891811124494315306652643646753571357380559562550671230105803011794516405510057817050274844270393000142777919947696054219610189489208384136171395312570244709398835112776342192247851768031738794759421049815329936325514950460874898664537779753686384950511348682219897643142206463551520009446520299192574029403780382064501925304136789693892860582226674805400814981088360885492803611069184756393145473231581540134803821322075798304352662415747803440190678093020984794311820809860385404579450054143977101092108896298056130643241662835814353779432059402896489765342233704452104338562351846185117694916854775128207102208081955658167482792807369080172841745577838781652456357169060617979496481806885796137032017842650571689076124376617118240189156832101620613128998710554197746208316524827643237151633841187001245989861928460199746907134352461341222880305845397759655304302741772154221044352040398947113664885323193214841986767432294780239789790524682608603732799432469512697214037447079032559284976041225584210970834890981623027451188986227684157812536110765797938637739103911113063459911341935062943817944533207529318481176612339867382024933794017072188100307631622167407501601574517629325315972462757477370138659892460321788191178137708456275735303997943434913240611014190613221123974068713003231463516803576787594355569233469897310149255116057432622398760813508182937471164586286849138607025906513216097778950757491632594756342206291174658565141956588533972055065393671408185667505880515775135092210467422237157861602646453104239341931714484253944286981069873639179403657468736838613430499008450504166571381852443467699157885879552623977804007323244145619828641821943928355941086981079715359350465036824200119953569977010134500935824158058196737241256594022310939513116606152054131252941364465162250131529511925484848329478973653083222220915601113893060836564669512260659284880006650241308639448312570999308997218885700559645410946743699522609063608161540694594790032692408392657158096108301392797657498640172298916510902983120258604548750655390723783529255641515369579694383601128528669930520643858116505228223443855683322605395254362018525647055964668466984423298804181800372951940400996699720219353424517049357724543279047093467446013332416822260581398272383362095356494534482518734867432137001381202328358682728627930288922103759190731024114090035429958234675253512570993432437788609198783953666135762450234756820857243456768700683826900619279037897960375755802583763707524326066178516878964874643139002054530827587477110671364511978545015389617462875798977929201769132216609030170213212373942551627820946101388620730245127993740385197228057857128927526947691733133245101606709974665924517688106374276517716879908846039936541412420359624338609407700732643879139419047127117616876433539820407372079783282792404260406700597096404914870647680474033856505502779053563369056373355103871884192382490404656662682310548601527166913763645012945889066103951373383199832277279837608356127861285151050086205016291117313848688044187089034719209841332619375646622966477566496520875392390188157580249991079242900360244954805151559042005816401345656116838738335778878210719062051912531294671947758486753598919133072593423790748133940851410417419389557320977472806019828839082582892970288301213359614628847043395566807129305882151220127096116637227031164775720378788779537606206695163465515013732089548556462033562029937744403288691877702354639004349715576463639553056170551678941380944943498142187154480110739084656285376609023022231574947791423293003811389424826032128715755329077979883442148308301196260187071507233281524893917933416723322629504789236637212841631649786136033912934868007605539185445233145510316294872945995587777516583456949058835454898378501589875443581318567483574619371853693898143472243251156782948959001392835083677200894656692966611267215424430188142301433823557959241229370606116307373028404775640295687153955933205517007856044448236419067613387532445645629795671665184332031669605497140056311733360903229819631040249009519472606456187472774926709006426950511709968950832195620327646630884767870174250382473458729524004772642837608762146385226972329728040539941200938622645952640153694893913487615854262455428134361070734535141862161007110470834964980910209954353199064702610208224407802474716978444047154988411476620349244976683524255829550807380024611792504092390448725729363185853056725833185169962600442650064175337466128454389414916016712473014788038774353691909822504304053903667190058879930580446356747557788562842661426108723831599544992307263854827415934648082725727800684513663938734092340389249975292431235730243100981836750171821305219097981660895593476215154363535667191108310059751949941109121476954254264691337296838429638259459597991933215481333739655174389646392292515473163179672191512279035927704280641624336149770028035717854301765536892463078282226341592018218900876167953122258913181718578323114493556627347229886090524372790892323379461542068714357040153677197290754643607460330726964574283900192886056160760935825945301667265445359707572322899432430886614676801191629287378934435291939489262736444922957248815415889948132326231364862012815909888829870848135989170352889156083689734380474913924581285699259456080226168302958752525760365141956355650084985404424973817975874748973889700021069286068783955716367095150730356996325424348184058160218415551191430632847159676010325772990716431821085334403856298974514452055605801911240749023486017742494162440696429061516894051185505367979555761297782601711460549727124189548861459467362835294280300482067589582442818591232629179616592161136915904349175714252381800406094197946006737112136211107002605653497491364180075815593622105676017495353831963286295588530747489611326818296552658301737605596151671817771019563128216218773898920281998776111551811637707541411591957460749865077217907549035394190552367680554461994484429424738631231228387136527384930029610862034462167146414670206306077943628802956377097489123659904377531311048938370024747295122964537994028650172237875080208754247958629225404650833157253859835890525445828134887263200066988459942304583414472301471653347552910405026418914405408183700329715201022927162571649442711423733934555895767582105112237680465726072141617640796508815023135147707238872019867069313485427006400759571427142919596889312147246599267969480724010098101612511885410813991590405173963127690743259919101035788977533776872370641850985102782132834461878060806280224169602703220630004561931754084039784082897352678348336928926656221303191207990443865479451140052475003898682635290565803447701076603665100284124512860697242988223659081100747786038015978268276891518535886925507946498983294742071606722268451920845528104503064800565753690106513221204271875673451097762966751795398149438385457293935579716577622335255064283749487424825156088737388822612895263808604354008752764600723412084933237940133127787114272164502459490406053150278432769887701482395410327833672027860230057318885521293241080380345569936555224556646555122158209968589647593441861456339715044961406915304796591407310185945813153831981002391542438762420511598776637315489058477513461830660408628009563095328068190440125843676221294236938343264369126804845364487269050331389448406692855119735565936510166048976308755580563713382511578490255247619890180062416120760429191465733786699007376286343985700782779407906355957130971931260260578608011092226735042328382035810586705173147690545379789629956125074342302669262993070049338072762329228363594443760476441356445205516370960712909053812508265936767547684528463391060331047721947686979773231607419900098204719715811253755321956712454880758734935587347006516803093153801534337077171369188000323971678696494955963207592716736624031259453792948956458150938732641721665736064196525149911050143395954215213803469283635360700835416620927978442812319105042560675752679773259854695816266786182868895709617030317513876029507934150700720481386938189815796076264386991163986194700207026421117021114090758089598774862730241980670304494912024097411421626588218990494622462401946474474124919116217716166618758986327386483246136915359046050630346891143741835504656079921361680768627986826443383044906038379923732690255792813067602672429585006086355891772215804772430087048934701728593915007515434598422796092850338985067500085615078500945730115146324116462551083671352090260096715214526183259077588253924265007651665034594049644142813276552662099528522902058470515910530061608347600548540956980227530125670024372595061657243725902321887074200386904207264271979828618654797489831359573587842734471075254972237996559175100089878793655407952324506463176106711784996226568664563933305442526705755384203111433750772603546554939186647322824507333170083833430046989467915490673040480716779518963170392872417957911493016776475817363357869731982844805833663638156039317752590120662465717732985021850093644989726889883533270817956308827371018046276388668010621393955447855571646833462763496024301312656880446726989094797654438678736192515778027649995163883509562753490078097473381162174401626372469991779958785402020846073012659813772608531295741510794957342870763090893794061142733564593817859530434518375605213278301906114452576415825277244466187241192416232817367408604833440950870540688737652921330251354524983858282733694274460360298298694189780980196362756795434227799033073190781214286177186227521577778974228662192988146728859157386177918013573830343265032081350804297885161484852971022668292909222609309251337511059247804638496897811538294837953906806581018601101778578172034854158976491490404146003115479137588039567481556754114370270763690313642884449423537441785725401290974956219153197344863846659255092250224661189847198522570248835272365818196075676762603550472120735569385917132352307775392197152520855128973429670603614173323795741385362852243701414542022880314323945964272610057910025637724273175943963564611479464735684247578400315403969948881045951782594946919369901419646827564457474901007099140931784426214646592548457905922542928052411558576399040703661549266426115965633491542337975023395492894876067640705927899817029930150627871868368605941891025612206566544507940290388802437533399269705179383532778183871427516096804516922150935907232537891856532302712207117042818623818044280998570294956163071197491950823769127211680708728765334732909600988590111067840403085584192559152867236555794494510625548656621940001322048172626163972414494579784249880307506089178703053543602085755195833474069542962152148549620403441656566019302387511447977911634205990235643872775813430653438310118008676112959552701576402368371319949441856368664210491499712814420085309851423864310403184557010443037593508726361214675532306062880157227644435473103032357868700825531159780521343921828172070268721478368249662027291310675461024502954608116534516522007150604543148003841785012169695441873340423287158557655230398536625679791036156118586094121118880039938843132963221267763922842921381158067049335144576937818824837012510903684931607241821985010345158410890314107583201221792122233239922290735782093230941956928847158719413932922698484183493840142118627671736753513561966892778960303167716454604974326180614667550982650766837027710346197067657816391264081137481971865647747753768010456636743310114943526830628507313695897651347109208191283265162961868164942777916845253992170695834096385207060374766430517499382020692297258283448457511399070558624082679799121728933611174558805904809315367823537086598093657361306719766197874937797380632046557471783018488168575071948336913743904930489391142085969898002044520311986694888054042834528162433175159643785293846286958678653745053488391211057187456608610754001568578149800090514419922940758978629053490068469104417505086567532692769527524118576136686978086445861775162067207828476724871576716120484705268353227428373875185292533196329339693922784183111024043060569618960544553840227087031073864289637099070378359414929363566102070306255902961464439500395805158731291786772687778454762419380263905186618202215573311712862175202839289065972608046191206117596068978956659488032030281815043468057968613761834784757123053406893236267264659994421458351342229252064660724673212982735825560455507344626866111782897787137651151835056104204747588711164439031174217687395619968586812486275579244096147370720052767595527309835860934074292332818270171780360002398377810166782819796146523841609288437608405286625581109503296016036284670583429399592598720656436992445040939692800951570958110289418522767950267831793466603331092921793466225645692990439192179960923609924657769705506225863415592996084852288450024509804247181151520656567938546954840308783398500107648467177904670847275731923224763873446233485139608702954005577949769570580368583009127077652996291534689111098737113097565618610021575187795961799163795687122187337632643856778599291295440013515627363077098710915104303840547791804786896836527548010981948498268812536185936496595928071209751015096346187829655411069355276927316201570650618595111478675819204844066219920445824275445269574802460897015662940822535423387168247443417862040786585452266951881348065446049109066056688112161876432495286659691532289934537425014191125308124974052819277102836734900659611530224374217920498340812097023737779687478534559771668721332775933086787069597616790243968495133150044899939241282614641819343794137184710048096415844018038690998263679189322626861215999346834328611057409490604492571929007408960152494237017161835383369795872849165372139184706330251387589349136558716234575128062969374853181777015177052199547115915484849657210316656805156460149012195644606494492774529061512862660348374002237018806568118277450637897439415700770542188094652158489617778765344116076750571198890269120442819567878079152006437256058854508280040688322286927008267796123985207772814786032588124990547649975761482448602771151422636544232586222333305464496344214451360342567031107033057543346040047776621858663503782695733357385897779156666145139751481972377485676178788016493712513065813472093550740463498432012629331238109504358401114143680474675062532823221279954306987476327787829213084287548187065628353347973616739652008132776337237863473877582379391599907502867491496780597168509012536750766885536739790673190897553929342430630825342583861643514299789426392672769433023702704146435419194201878804098332704340824256806040643382923858280468453578085816731416257109915711285361500432967428341516376260849908072921892039130937390128619649345783816084466453787952086714348167229648723819782713117782696136408897532639644307754468023883618380570264817394254272573047093213194534612202796029501786917518819281280102740693036102828665203192490025130117397687887511419008983553671535195163804972517969520263244999846907387329024399735931529921460870068918677405920780881622517337384907350399472439488960397441297609396743639593042418856510356319759886362535775980764142269290387993345289563358162274786983517772316639197554110455511685191368820496302880198603248308563660751110856898440632821792011142363379239753585168080183877544265075627857942099923364226744303719137907079795896339317225938802525200699755540232432402858064807472032862654919970237739923651616146231058924560793315893957660428612607542520943462845031353011956586579961749277526488145593812432502935983423159966941841874452014452785138742536285953234917339685625137542327519424449736330065523485352232713903437325222304815123237269545490721241310313345951808587142751925140777074297974838897333409284186894765712182649399143024674334442628506235538822427981535293003059787614301748274371503373400797603672171839195812649303676382850251393297787501202508657345993415504952226844898763226480332637888677429717978682176307424105418772058578390174728391602358452055046467053977644546846426145926469087218098897347722730057741210732977715900746018472970288486733942648465299419434275291910839261709534123584545750458763614952026677022312391416654598169477008572615054265441700316015994020730146570770956153805392181780061826426724711692269685710348981983978548287610064359961560099712333856825209395851932120683406966653083935859495111647704165356181926002526207030781658300769548947299096656554681357344317835396904191285783352562365380064960572186542260065535233269929565345880761530384374599942997127709397296600098666113058595246498711309105155854341442450044853694311409700775181316170992393535329532634374258764118005311747293303763666937163212427163405575099986223614199263666649680895265909214187902923822337036710168110172042889591249145193766992539671040905958638160958520429986885291852585825056614050885334308658588996322408992951197853974899510965740468388259755907761157308483237312044792876930254180869539977510779183703822524506085444561146379998104185083111071468141899124726092773998022396810939819312815437507053927447015127119958900859027040809192571025978594571108245546632362048518093888362856442350069521741501893093463341099760442155592892836195711080872811560712237497198586118029467919923005102049741221133236382010750062931062161449375703531109480297586173204604137546124693829305659816064322588726235974133690938804423533739978859475172367215146001456054961140700426040775918343233563863609582947844409340062498752905822713255545477868354914392915805870790783008322005356213611156729312007823247839282452661605104494856859525767783499561230623368788661991607957368959419278952622372543882100037305915436634025897621750397410687041310170732165730991830585575007897328609707477845302749495676117904580576677647292490063419919711493517234722742999679224376988115754634558373912572114080011183652149591962166650070077947453416475712029902302574706060990254064461295849533286616764577054848298519359735090378268087322534665043279842581516571987980784119401680121439260544449386071226240652942400885789598099143329103375608050111823494870236439745962038247883278459382045180652264973851197969766673205366763757051682529028395549211135297755707788655982276385134518204517552261965099570973106515407186269145136372247308514850598608784239868455161950625447255193478268468064457712551885478992078434581427684237025698347180921923773493459130712318099830722484561622729528953605732811082888305603657368146225982724510480866344225568454386924852802817543653482697299820587137053814717473347571011160852158928804822012330910110923827212167557716181511373812961469674783773254066041229563484642931726380710403764794139780462639295179191945648268609305829934863408037922810431180391153794117023503653752160405957094833006623303027786087818984547854993839538040959565937374784930445522121865585303218869444776903934077204057229203229301884041490740218675659231325048016648083946714447145164537213634675092849001404772052283754721341354724450732463497699866990948336537771967200987747135435793157275967209189163250245944685173419214098018236987091473825980836860365285016883485241123627080437265738354798580031447554216124200312568744798781823831899110122965541471371568672397844222255910086310532499762638132785266258859174601437418416786171346953187495415748775405016121746002937972116634262838671456045185493587958904285728558204973588435680448861955345768383063628458839121289639432074653055803245568566835777198230700944228483699471244420858116551957082565649032755288539799466617888106647330597223909187073723731263827742431547892114005936132019683337657129786923930307040514877481908592724469647719781319174088504789775134068248915530612353709152396057107297061949258110925093893455093650883993552788614814165495651039746250722966453295300108217705599995147848711690992305373246903760570505354560171990163743082796901846175889093235151068525500317644477737408505496965125036505982451407202247243175109112519341067569728809045809463893589858222960303670834857379763010529101747556610318226721671897678771474280672642511039479453351472309670625410581170391022990244969818745712907945978279248349353040679720589477270454547393342237682918399477603081548238531215839772429776069928781274742809438247343384073622643025230068151179182280256376927147407649157564873614933449194170798706743552197505107443434545019033623458285168925176155139367492299213043514578698950599000387833960822165603681559680809326557303060457944542677381097989296505706351934692614726607699268811575923439676623103671068278955119124367878072500751758889014424968215573846386318866365075492066238221086738262868724988428256235612608987210657829366229462197088923061802407807562791617649963983306121173615107660743437112597579348772817627594715944198414627927309190190005398410002919031202929833169906769506614549684989065388403942688004628803313913009524590582182990282639291082490562436999351471184788970199403633980701032080389840264973240906445486296191701680854383536785465442153053844002751834274869262176951397863646070743934649071391024929538608964986026385233636801029457699166694618009518599483257412751933301390600753927134732769756037999496791468701263337870021759341252947487398792620182676115681688111995775056688213861426565416563163022497751580695147060298211972517588419446201160069894782873331884606053188205930598941784822098013455183884859862605569955235361574839237987051989006561769797335470973323002702844002466308000014340500655920375634137254201915424677394903949147519151913502627820322183078639265853063226885285155292514527998960044176895928299864136328975636256158956272872398909819726448401276794993899729082097329447927007931935120487316214868070912485929178882548829479427364224622624795094733347262442837322783069253871944982656607258226677178474389643529002401420113149091587891189055426050634376232423804305198727636176073921913408741888773151766115766363358013256007146131744932576119950186105621062255625811121950333929905370359500977410855589537417237875475227602326771860037130652355984190840803154676787808885117065353542632970149365342792094123853031211311615610747884781845961114062387515613850801080847585960194983990341711376214638604740693425299709068490806075977567452538178626383538754697717181221548418839433869986927488678365308227899421076146998025272908719227753594700965341944670128330871757127786892161953684286749912996226921488406995088186754945754577875846236451269793826701393649826588647862357752521928972135149948910337365232938544044101999782669881995462226561843124909641870891012258115075115604429506596003259899025066622926906138451352410884479150674063815456433712361573357296223177094665652214467816618863743226775930618002778537001025323506198526456800481390625025698884405067783834487167399311415910571165097872996184395897274099473571851750858557438640869491102623717573485678527408731594919970807054347678640294754256433098973125504111178306570066186538258474803268736703324003206768054829530324590126106859482562952815914973925552682290287345534344517401234577370436556133128605676080502688638819870227346710875555997942812492594830625450230013134065787293130596524867134804448882472435554821937073594772813240679544329238984782284661705214332051557934325627539194622932661907893678846980458932211696098484273753036659324709300868869353515768564173233081741502654099823822856110912932693441544328218351946200324372022900641254827051084297211231919472392889289252314269900040647853272856777257064244627264228763119851926916266525606333168410523207085213488712510810835511560649032936146118040365181268872641846584343342133169513609542979683280138721855406681328279329078859447816868384426189742408015177461947611021063810942069458883322600229677937670008257223167413964575869069042950378446505840307890790887581810557197455463428238809311577154345676901734901144134984030209037831582552623295880057125151205820583160451887538426908674196713167694820061782498166629675679626248752953824866000357849061640765108832098405222464931867603462421456372523161710945089641322369168412287927767885659767489381229612494916901688988386999310003392773188614727809734631340521713937796400807977548830461643446427021761396058429902689963836370505476269202894583721851020941138534741971802811308190078545618990515061665451618533304708919945947295544241850572939697716117337001316252192223646142747277255047016843711623594955609617361437489234269625319647445388276372317900679751955640343885202523764513793006614417153732128527993080640817455386142318457350243069770351387648600145656486292799234841190967314070582116112854700732640321709673329989662862837191120618564429695210826057964655728822601504564861195429565141297505003273796137540211745477058224901542562447368527043623710307378376144285496911163617822022111564458386214036508276195393555611779275473477616436745287780847566645368998052932317303124363647227167341067298463757210076245699470052884455594107675880380002141704315666462249653523384067196550610504861031865511085496469009888094158144135887318505140000084477530581659485023280266859799416452307213421032901903224384892484845700127866383635967818275004570000510356315227462421077113819516641334825814249962119148211032898075237852914902778930835537748406777252113659708704071313529291614783578779540546534219389105339553348192431824235767871415722053501798183478323081233901486614157025768352371809798076610556807783569233313247836463812096229660996082321042203309004502627792315884708100795842715498621032610598396276685381243497022101437900795178175968455341992597725261119549922156586415970161731418879077320411914444454563548166885587574378672837680527717874426046714139280721432338237176456910834220895312016440208131224430387013721307371322984740446772450952873450966363291095673758349959187550331923073971635450264735956627263984838736927134944476681811190731081378397409052702558206313302958486579643093882074932208958214730253045869853339891371975900203590765991491065825984827693906033323545427725235650185774618538360071607554780113110427155251431120946467916402535116046761199400192416584540060096217326108953433736985749009283126587458773475036070382003581948412356651520768095589518562907107956740397202834538004548679204537452996409096007575056377577382983014276457876385843354991577088086561669778835971453428603877719566543979635345387046117008093200427796747513441315593654792778761824502999299095389385798654560403553314581237179709838679761358251666773780902467535342686320302375361877551620462373428384899867562346094915014115601406592171241864993576631684670008697333048775441551623344778387103627820223958633346569547937969931288523895860328164617604659678038985689915028668765160347083869740885647251475813361260596497431569618656685948437097803007723425650215020399498624402581691856887679754598822606349813802666330583736767018160125765136419341987818988549490790915767005352065992625670102448345420769992711685116309884400412514899885399616743618089508971871883377347854671098990650520636412458062975726365712369396350261426252281291094208867017423225560025028437456700941950041711109141128065956077747550394734158113560894628445289137199082338156123280716351079559338148999048011058765594622751411237936984124852247185631855204533907688900468364159047551310375084877439623732661065535184771281458156217444881985988633586353555190133733550291367767441324679840836647700268730186941306261128510240143942780940260505494702044068094726741923907386788467108212642318493984075787130825131887726487829207924686979901590851575650437246836567732807329513610934370616167428284185417999348536988837762936028606598271769240723036779751172806347181468956430154549298564038936833754787691532148357102890387882783722967287509802886914346768712568750509472998983682742856834194082941305051794754839902974804821742261137852078222037518520424399788931004339252809305849462610741951735367451568391793639370539833270402569737564532052054215823061178606806441923422570497305590645825860867687796755809336189757684190463535784964145755007428742574591794079832951687949087559340712736254813936506874087419855336702521499793489754017355564331995038302958931011143780850440304444090663771485720812852573635558828432850448303539514790702269691851963689765678252110888103946124891326223108114000801952356209181604563907807300482034024985708160237206060831734014179228980546124028027897444679219908084091794592859785098641216225460024337390449651035342288485021083514755470240770164936981416888170738879808516789252241390744628786833851202803312749251860950906558410346551720041657611526448968508101961106090522769573392622346223895466938084810378067201199122584764604852543091436746327520964085876999390581200351833343925246315019524470538616750859039628229316102426534134561643220404848307095925128000843727787667640165731926184191036330659043365848682329408556822451798277705656769865814120230952338788312248853436052085386210409732013080670204916756066345064519707877092116168169580178861430636598823742186933803821743256977004094740953666733571834250213384102774314204681668079484376294456426263584150949566982959168102719427922998692341569725529236242853699502396634087439781708602764349677483149733629775390311455478231040124386906944551386538367892675736925257319752010295658011063297381284141761261181912049466002439044355496067009742177193051028475034848622417196442860518632967387942902039261890664982877953304763974557198412828481887968501112530141649601749793824194678569759886570298111572375554702199862729489599851263358013973466897507668417419271116797485498809125113191856410320711075777234694839778355503175931436706557809320088710004336726432600556978896038786858973366450457819154837961641953852186586032769280217969133992487962484120450389143967037709089766468516294355151639493184596494092320922361513755393774127634116336320155804411114204488072960699927744759151979874172100232975420867353311070360397542202378257109768335134239158474825593260745910923523136848390352302650549367763203503769507122545436023293408786104789282249003443354738247877118444777032495650552595657689996207787816027049966756711355661573493993705077227887670186324341643340508127344897199150147090737891766863140730371682140186548117120132061117111836374572850237371348316369152302116788143595782559744085556400875959539820347939188647361091658056510921743106603266255852852842157187283406810845468068392408511975500235890201093715766232821844004424093480899849871427606635614615837342130467499906384217321410692584599229866099482899997951284867851611062847651508379386208616509132713513672931144365644654048305368695666533774826856792953454694728359740954972204441174376757175566583256199358046688461204505912069873008982922174055013106242015153406810905799148611023237556488076897282128967879793266154094269851867911002971207662813704993811084493505930966372149856323499036690871963183901723836372429377546770223679204427303419225577851360184220725997581601878826343087848190819102067061844291433400031963426372781449855838656860639172576218521369700779586474871732545494442700627435343382799514225610865112324498608552692240190890553638946147893859782234307781876676440845426114931552745750929780853929560894485130624263174169540079761052234186373421385553098488485485253759085641314820649363979672902968366140674511216884012235732237445859875333288440156951311164592597174075711163905838930986718320827178568875546961519231515606428217400404261077362774077473636504439899577546429318575420016560976981317503087155674298966074532649066437319449127926911026374711598031253305960318912485769929297380242269640457717539944162607117545443725202222726945416357785443074156243895290922937422364954532338664443185952897184500293414424781220456868027533700174389767233904532362108311992726739244516910267021546932097872303533079709308310852846381362213086418713327877426583985969630356584047423996876536378241409144691220548863848830069853050032574991532447560477794471677365616968553754801327302139210285678154265710316731905702548319098231560800381118919240715855919597033431268598256599291182621884900524826907638160862552688649679486543209637647798083986082607968785293534875922557347934920283362215423059491913821333612481942184768170100390328046319094918625618095427688172114199618319395575108190065219691696127554102210171157524869259746692909353668248781266767182840566358308307927825879874778627054967553241840275773664218506167466417682468746217649940064764537147648194528127430185020719877404610307421209928391156487236772951820717500986859206184848940033737947957583422461269355404220223756879839066063473950712825709291552337946261181682050390803396257321077844604302286524090863488861493547687829290997232632004785885154201524070462245364896586409044981128600267421784929392576834191546199375893344092304265618810976564894867185426012247124194194032513954456731471282271045356328527318595236883739266585499949867283640291257057598507207631069078819593618849359469791680426643884230325544255567217535592283414837201014962053558210378978045556117737447712174064107373042889097990404022255874178279713792078178699145033446033379885015236988528322796981121258784059282124319301466712876956121147551642591602649236863366920788427580025625267612987263707911578857104501297123761561407497462468624073125174567751817170542994174217414696986083428748265802276553333907549107953445752314585489893048854950773655211162604524179874083914389762406583054338721378264620176129116697490487190767060496343081429755227114393880352228848610820536852125813711694912701746753589955773661628305033688932033614585008492932253511234071906971956975520353441636088667936563320593505240533811014499069485603304518771792634572164798231123523845742505604808790304322419614497843399928030303516490203296936356234063792560677013202405574640276524408709233444115983414642487487546121568918917597298212458051811981830165642266165390295352950232077712844478337611843071750268270882904797686442358577252436975873330450378461218856278589265231153103358367142045900749842671747941661163469813560705319474996768323676253846319025095347891315920182292793892259376615134122613556613661591907807015084303207404156020656628751592547805975094207495752041558470910254943895864308925467085847053400346846820208060261040658121365587084981146330546941825374668885165291572439884421349684629343318609620871920193903920103664670436480587194179866048827001020149883081275062979981495583040340666463411204216321257644359515237214063860367673632214565543778984744926493619783223813500111078587902088106860563227279008859810461611725651633656893721708263676364268479798069175653557416389931251929510239043940212013274493529877447954259895269888215427969577632513271616766693135169076542190917049163524104582453941101643087256314682224830995866618453017777378168048046103348743571795853742086086396301245349030415281532897013772551878222587378064920475267467580718480349799883257911869138061688017198968346239596918535169686321793567635014310435940620690021411206249739610489313790358081589770546964587241143092807880726532403411638422702684466993451562189607249369088627600861976020848589618004189211041377221078103954600281282099179254067642509108940129331612571691763412696155031025289205337247947928834801955229899571346599842202567357546791774055299657501219129042408714135457839799900909169152206849748124987077349761962571098030445032112643738853391149846837494170767980580153010713356082028219911781785207469460995192139190378678782114580346061849276041648228483326343991685431430445523475923241567254824067963074361717353515815113936651873702620001975551665581746103920009641499298393026610244020465771429861350231115962022256066595897106474940655954825778079014951007337411825917049438028278626828938384738180372173194301721469656559975096965292236457825184514258545610622538360628330354674143730129454871399161748538119928282257101766002213085388042754137338493664432837229799642198750320453123707617754535739949171861725046065228994731005791711398257913907930587020465789772311592058023603696499735449968273676823113442600444494028129989489790454452729490630698846723307316343251281456776293752715244604272644509806044642915441502860038327145063574300029162689488341238300905614330116846399352030644895893529969518694439382908396982071967224724041323156292715587780553540217115063294688885935772645079855199628381703579167975215012361597052995005156101806784374553698300669732347304617339657784797972932958754340654962194729962973444187447607832408350372216014233145267562253035334660716532036843220044238028514988768206288043973111650200326611518636443599770930903448597931245160750416179790647948854130515788394124313659032193646878979645332896106759349441829483778345794790445948702305725414630194487212707908627775256661275412838127184008203603420276864638960097812773592792920913119633050717730985041467433139745601381112570397730229777864531106599632293589185645363029673622689043273787693890484320636626441662882526055840091607868108704986533118386962930111524056664689825937412537271748594038940233122461344446570231953298969156585665228676573705457811769836536718885416376839176754945345870575142191273636272448949553229350376136716576536288875017171037196788135461276643232562663786091261505715421874279485771501393928156905809902718400153491967348389171729638268671043334082165152519925961580152586189845022581867922737260574397707541923930932709095014590268118449580971600985304727409330652499748019490800342626549582239689151384987341080460267090364678438544498237661142219141011738303457885200834715686180809416944236294785245346660954599538512167801044983697776031577711534405784427762815357554931486996799066536875919214939759095503163768631390038956112732851934587502692362979353358169913650039393760742873175017413240741790771449802111081467887653931923055567762077678931541066801723496482285138846817880929000756340835306575679238113163031063696819676308132320114764838135716324073793654297185771276092322535365066819291446732430638989371487520740125370379056046000206350625410047528542946719342630699227642041663002342757672962156802589844118985819799264878079821092556690690459081677732509041086842968242251269705847891788529999761511869955606206764181999336352556465023913306445778614236240920887021808000805172380574491431674087107414392883823387379969258530842833745410171020652657266425175759100811092198292297501598498107459975314422819385802361278652623651234376365294535941632601969255643258940058843579363569004337060715368543844251754967135401331937502766479235592679024479692341997524745850988229227858850232908127558698219396105226528822049304289684329572511032425758992225587807365177528310939333070885430668488660576189569439195994495888836045992946980286418022519798646286794711750611537778414732367399928830238258401361392066681249169091644877784055872324553052834212654680792684021811508981122427809635679914004296435217276587814293579173149586435516873958895228898755280743402473981564714175444517755714942437794079516668350484881670914213339238422975598937119602884908277520542908400287435003419432457065647563100746054758292081699783853833661261194049301876179795345799076997717737652436947531964996466297372091528728321182416438978820428785455906575465271879322501918642433851477725546130990751247726597651283836438500419035508099060559978804023127116387014603309278175979965681202168132132975357191301590649467130213358716990682170501965934200821348885659129877529865129013297072169173890902678575617371810544750648290953947653694583858215117453623676722695531178576210219925134469150536726933610012608331579110383231022264139317537134136979305796870677934595410757964829229967454948136398337197317345019354489225263086535816856454295781640606381898267858952188579221929059973713147094355349784003334243612731286140875281480437201520808246712806931776309588366760067984055064124011249032785832581233759618230380553870268862829176127685467100061676130806544987850828296795410534101364424154324646243194696212274753977520016780692178783376622829619244237757554710808726289379816203362028066991084523818434542668686872363351167868054582741139687350027419716885558115890629282456881493261647673938715082923686015844975296049068515775563852234906499213025791072419821065530326887933700634677270739288708303582384129690874324690939128167250321306935310180965705220285593009431737831455563933178033815592139823528274622546487970942155506497513174973883243375902948584455848861145515652674198699009537785207674717734715500012088522985963298176602540830138473424334279182045275040510365360257118038041415907249391716042275069359042685534242200841106245784265513827126039032790325744855740841426446520934926122606843983261968888017140783247719981870825356554021606029179989052857509464610247504870339753699207936978066571378871714443219413235711508161291646028366353554493274127818038663766799457885626640368091213081865508984257906317986031622049360667063729223544822617316066898590163707466295997907342078694268142887154478853241023093037064508656023584399472944570363905685973567518438388051681079613965085754398350347842705669519095250334650400260618824295430346828204113799415633030914379911680667087433195240767497327109845609603175716347048260318758090004810667613117218135752021677995348923201280342594121421282875570791034019199030872184243007730098425093637802738655371646924020006074636218778053760023232283117242098141564204687377853780066334949417225436758408309166027091223427351835033451462961374827017288766549671765016354736347348335166483245679756547020411449821265237308288837197731794223890794604632217069937878100437801324593568478219796539958505359685233637959903559043807957884942295794440396613945159754139645456712750998678523350447982688411209048218991122098217709735950811903291813220241018404586261738886901606058146689598385737333458732706371413966026197885866832597657569867921607505926329889254168144941445738846983646427769908801409435720862109541543611145179087979176198351023944131026474836754079509163366337998848992173959487802032771756370626344138150442939639116710366782559640927273434408759478664045415687712060834063985048928900816941272131049962644022759729832400129854455424181086545046441019397586840285155041676476413020458895221226060168789427521106653048543212658162660985790046874412398840271877986473644960644288052841863171693265280060059027933863217851531152821773593299398706753182259919154637707748838577331078394795669385506452550730356654648812657101721542797308807891125808536314076586470762339084352620042173459320253149098228455736826918423110533375131495996683969038559677235467942990725841083518457545845405174884540463023038541411695070301452775888468280780888175736206483002411604245895096579362864814971041809006874474558030105536295999189911755591305203998822130434467535588709287065311093798695634631108968157772028850621445290077277384459606038229039929778036446384048976643858326819649700068331295457679541247015205600050831361284099456570075598790331327990605527099517692021285829261692445744825016563340638431647723757384430654563484129236746656626329140868346536573187608812954876722801502756142381498486758832542757489448830929041732030635605961563434583499410400447632681615443260355162811996758856677537115387237995667991525200360401790678610927534288062946560582337815260990327891397448232589705773009107221280312887837749058844737647012385037099156276869731579561212596932934805279836235027248014403909370304867353989622120224341563907640215923948772553723070809833891103668667142474194104200054506652511586693647324986151726645805098282606970261222037100430739116736792158408688782144795702370996475379870302854422390576217345895450144780714265368079148721757565105177097309618520014932090355282714482142457499078377993857684837895806425420945400761370569337307446576816660256587831551641859460222267236459750613290240939703534318702308061335735171229868647540109945192283803040945677397060992474612362985546221996146057421472694218697287683672993568635237174293496307926558170487665916218114630042021901725677795112704231443864207996866137917943401364085805114666945330966315882852343782493068235498528516672686236311053766312239289611067361448981906476736950326899345141050212929254927175871623277840096755030209618801569630128277348049705265908123787551127490564134001267661603784173796657334766688939163626198222355198711226090764041453233473778097040859159098205300416556889411524649047470555067595988806298358786808499369410206153553631579375733583561448180727267357000190566361560091255965881150180832988936225105220114879175635536114233700097079719349953864845856205077036254519884226875956343676229836988803050359633399669825765592949566556943319595660348189975821591629080074069008268068993362616918677254107575437454775841445852498457787695104313452196816639678442689042785602338786106819276456167220996854809579637292446055152711469695985520104327798418629329783078165456355081367400688619474593979400538302729569958276333522843796104815955403957846870127886413559405629638848597986247550500413416161542242728539974168522009674856035407740324622288996700583887023862461983352211347390489942464292720290602048986003884336604824522745811423534954498525652625948181432410419763559270055099397608071317349224305220058959124545297537359465752765606951925440078295246554084752599875973242543313735153118910837343305623913393449282243301341186654322918766644880960418487707418903942211138991256983645913101552453888479545777658407078967936042689480023747107427273293522453316083419571629258817358053511139841420616770281289830108214650318687281930259613875353270592239048541461094457622282558182690617554700646180899615958237312769221639398596574242873719403465097690782824128518952302186178975142387501875445608835052716457639853017639806942289791956495624163447917117881625805979449864022683898859626106120521270044009629032369950374745271186889971201633096032639248231809526228354107191016579029422575259422993497385701686431403457927739606072045864698339037686006192819636447888059567599574387435474067699454725630550654670642441281244647133207468901905173273145607411960975534564759740052990854943308979796237984952467141881901576636328081230855149129213846754286096084355215760312766985261705844615287784153482473041125225102374299272825189284426959268441084699691705074521403947661516944359146945027998379901911453848880005577129861165796043044273789414717578313024879744053254466970253591628066779171073157931361049364883272156080384480805094414591533750451069352066038505627913273671430089533038793446185426732957700382458820361670450111388457853191516311608073245808242164020430235021505415670764244584137672484909874606084144842354941952086504083150269427571422251316927761617676919877200886210581953252994643433279270806897269931301679496452379465075030848766342552045783117335530253386197411684587112038193576432523430311822751905534122071404250451725901989486687706813443326346427920907922234628494008410105841312439596599616191610160370802540810223343933926011761211238999196277996635172122736405459847529247816059180014827961615494883614880019879507926939012106418009132031144445817416556959312476212460399600810872331371577035101984779547786320136995870008962534054728516644012724419862662429836744658328629512701260755104900020859013104114705418976458146432871188145403278925057945152028160915364265767420418326935747904368926683667569598411164004715133543110150293910101342780122581926718509040540844033373995091102793028457968443311952081653302561005780371061334298235007162156498909796695643216435171702852182217508501151951608007048576928160319467521406716253337271724313805601452454434326598203940344377265388181232445883213850685723159054782040686467748200517116594166183541724547511174993075517524012051519607753457445267995779035531862766279337334197323783453864912580997804556231534329830921274985515918608018557200665155526306398398980526466792614772560325318380814073592618679822699715875036746310751585004192509224310411510937845742857625077238706845870101044219770015663656240283757717824759449139413030900383656482211318599704667220021800488631390892588215261008188872490349382158465192286452097555395572403394735277402896039687954594351241728083504871766691717919751691572619905407159828735447195179127158826215381612140577719780357068162409788935415220743800195079068475329129323731587969919006796881498970089719154098989457526714817386851364767501516245449569873981267183099933274903697748571548646306777839743361318298053613491801139126783790615170744570626447659761623695998165946623789579804555124217392144456099463194830583554336232399880743678363189211861240954510645110366495087885770816845568527988122680871868181621791357284008670130237592734488691445258891294289340941092410205482601464159571676428591926672759207067814682345314646574761281077542717555752546953507427248666445143268358698507988786282194855109742518758868287106852637261003514625385619898995017088534070392691330525233868637046698983583550181584110174675104721120809298230201085350306165177809338352500699787085993524100747646614625279901819324641731536322178715829504730177749011327213313653912095584903715919606313918016891299449142064275737566352988631439734811232578543555171189499976116390591186364695856048554115499920248146143834088105439920336695980015525978236339823447570669241066961506403629249319158605782342293530004896815999574084204501373631387807710560020976229138562817429369784969040889286997580619378214898553937069745529977654839706765362928723767488256085358839665121368334573967269828397699778957359389908189948004297678449452222664147001228690052622080079709570608247002618110249011844695240993332351480837920076616485479700758327618925650469436737551052588023111880218549472825792429244859167854582130040021576820801160027400147666719725769680622670055313790508172799775221182079447748671216946338260948636450700135015492384292142885292918357113290178231697338773037971069459324259336866704215618941042484761480209428639645003312968202055604399408808188931260979498858880491658239788827599113930700051832467545230676157525770667479621192648181384296348236791547430367777546485056567299330888685870249181890031942803452086239967085957457942345580053410749203967586034336847851505888411406536219797168163480785102374519285079901414398441049844173552043925533531696987107236298666795809154591244522414691960156095341191510201677816018388193482873606481944930905142091159864183577549768085082485803464732165512247315922319482975565421192157866252608719589923541885764700810616440077041319619209730576532017095001819369224385794666516464034550219041527333580752541557947372026248557072822794767974707090692141253710151674687324988288857526222809140356489834441437745508262667178070657902749056658309178026538111127460986471535646616853554556592629839294758768121767189914995516265046821142531629781031271968773945628265489242193651210532541060333031981856988964054323764421289720689895276480603914960740734541223342836146186706442170867503290571402421306697767456704480233664495696279160684409755312143563349434061346760553899110699091169817888103317467403221803334058143504277482861058675893489486690513510995824867368746443552510166839144726453628806077161711606195657806116682430144116138655354056769113588671908882021950613200520707355942755749820256173726571642650979553429752814556988123895684454354828667624591813074035239248886842216681779021544576185762764955505900463417068713750997357713023000287139670264920984177227010341824458731933866497505403788320817886636124031498915754285608601937403661289161187040069444597577330051935633783362560706394766674745646135249027872929049887087522743893637391399084294328704707899078778780938443792924765446016851734369357079319199979661451413065023863289575039620982558163391710976701230184807932451089306309280563280754479976176003142416346087072140934267543305495489879548258060742901514110448506070730859962190350997238143763841930748714198855243773816513399914784775214285583763176875807395089865994563834467372694196078001530607621283313141624363535534596317333585917489539306195442864675676364187249259418244376763083095804373094301908288190024189540320715579951843789540110835581644850898336916499801789224808013180769940541939325212297129557510619265746421555225929428970426813957837775822705168138909477855407366270557777253797014676851597972014959815255333789343673250061259677721229461393615391547945607080877467205985910754212413723604813537351305606750034928566020855927709319714536748315994305115595313668073743207146045650400432504855259033103924976850674448025137096228140687265118776438980276303249867087540504721114928123583743737681629358084433157238825176612800308437259543474596179222971393470002074393809266536369037403782862809032368605500890975123174258714464463477743650864073782319468039956347747120137188375182012254432650372071872206032251456988344105311482221271722332319804765537803665611584650147701486810028507510673950516352631954995616783529234586823881623055865294486837162603174518686618395934582739158230774589747766094977007959501620910351724409121418877965694453655615015668105502408306697387503834440581614621106058036503572661410862769256962114428232378843919691935605173471814691002709416086459800893467225197172680058815022441180651163465266294345397919926011853633545251843122447687903270961906859927407449958302219644339726418657904531215510007792275823087244812178464428401944228137880314159268267222941847769300940933521815679033273147023981748330124447160500282240771181543047637997325977747653046613303352698670153084615374689570910772450128236937621011007714518093512393663023334922995631205405472195881291230968707039025423546536329722502575426756450747976679484703653787097894853762481545834154748046388573764296197675642253283810122613161356866125624027615923996103645714354164063118165314849240613889305806652628834466597561981040663494688261020072952646193667257942534148600983257817202270496541990588264279187241669360797612697035864775142549257505766803442584799646415048037476264715179755749056739352607538834693976042770905023567490644116617486026428883687705996175328187041822926022862325424407529355126685935863488147882764205933052565057752395650907437889286109948936452487420354599873636061117502870983754043743998850367642635433117006686871895960556487799574701949931887267102121785006144351836878494071345868015556466231782868960738818507511675291746930867667643018266976576078950172973105149528280645491806974826629977971160355925939062075043905558279708490154426636096574339051312675957276264620358362353588200555576693287315547015278461849138481850926742670773417319525299809802206197897448928415671549486266628433786606831284732431571462261270159342416510109712936283052843711838413433363521143296217679091598765138924645469536269840330190231554818389235174862623828423467682421797424208071918350523866749133125409400745088749976918063686867756368433981576436561084051478732938879099282810298625164115623229503798788750237100057806309787907973799109418128941535139731232581489935003587246646356010264707815774360872748140956087782341008042291918479493664732349322456437029561025395915576427985161572528405808695955390509306096038289828355594500802304751982099294852033883012433395014568527438992849844792351378728712512336903305646797410529073076147462012431415557397022987496374390236418174202392593962623443404036528600909900613194503653467625310163503123276558562709176421740268482086227862847108905434766873031097047035793281969179651186661497287980496357158363367221930189660392207087986725776199502990850893636419885140114708292223027218072412789142673379355610707429923394649753597690304857331944472230767189580120739971205791429993468971639651208876121065134683687573082083884262259777251411590219197585859290979450061809587536043186563779013781856144900260163060270121509851783316687164532281569915504696575162826524645775107191065971645672334287312002157522906588043139045369720433977410459878989183372546933347858028770994300366287242492210134909230373619811445132980980482599369962273715311141371179131701151677756894267876736643724941759251820201040331807036471735043324326143462500175085590469373435212384365149138141577886518434299855961633208223317153420096311302202381181777981558792509455063458411250965964862669404452368174799529731209672249838197903878758607383043314510522000288514619901515666165175377443032442245414760507540783196595700678652842916703329133142427170345934212145105456553365409574746912359265611488942050833163321251401611245999884538017923881419400121656541115491038648912820044406704468388975939767185023949252947473761728863157803288974848319250301732682540950168942600637643054193306612487475785065553009438331448493590920502880154865892556511815997540924491228957815725077934030033890409011978288431105250980857003306325611277889142177359568998541594879203622684328110197463246421966167360661448818029569360238059211560433341780272844908199898305023271149967821564449301898796532327805900398751083298134911602403292905729513795963948884676251878119920076631204246605218147336983299705850720592221278643830338253753369658953609348872105879458861593624888009952821911105072930345877296526625181995686668148950811028478796302444082252380717493434076478566929364476136336701626764485945127280250950176655710220002345198689127542467073849731100749296332568253820462025113597831071517332243339868216998040091246393361191548132990288717897945534382688758492627490996754335558739126942889827811017788137336648177687619991653554883695462726371880237296706451573991836072457038005908075444327107008535496213634327095415525139721337124120452603567359064100516146872272705016714714027222373544123186571749584537761194141495336215568755607028614839752809343549276310116617031924251849229517958032619291033104920553606730870544454586997867094791286633018282071429396013717833864339887493785423671966099753039306412815095516583670685575718451772512247843038131981848714580451189673587221812978148002788453952942339699232746916374808087413622599342136073800072262852973672896851065956710519348352353060321405837708312685657995909551608834396590069055059952221524732085564631055365746973476092599408121733259583955586540790843067373541498511267341816560602527078952442588710897402745513804267708061794095828041439222683011349850951806673784081474455394515270153371495951392326577705288235117394683945397248490179060415794448538862749093355040536810235105509858945564398450181320183260396310015756748605395024840943615211452229122848085024005259066809086919183072890322683906804114699425301701900824467615535463126639641918760761289737255961861408700637760269857906480558112360418642209730638421817884903500041527207259289739080882874534557618438720684831170378103601220403783832947497663954892988908775845655955510556118877472102750811789355784313469695988605158742608171376435224263958506215041256796670119810077281338170494208968337928932786797517878422998573940233546535424556313559889104031587703078517900310390087222035656104101268445027565669795385503551619008110021703432503510538353753861967521333771508852443335314285466720895900815630836955562507851529379614250948771310625549698131869470580495637776446665469352889703215359780844230019039887238669610100145037314105674686779074770371485313696969847867335013081365041094349675434723874519160462166578573249968880114422005770597574754997475227896976382904445102464757587953950950022503611437493824830333147426041687680815686375292256457657142745868667558252799238682111575513540477742875829968994336122383279832975050891921168751285548889381641201359528375514457671594379206276875998870479448527795177118430670479933172063348800647169868870132266299034335000971020053276106364166532364124695093104799172148168762008228113673942822181224577555925975987583007521572341593607493121420296690222817941781240740683303998379670756397332184038590036878350420268458684241335679883533580004718726469289932025545702825477534094518968137222760970745767179047540463877019309286384287291600037358919925649143793005820890095250502517759772699602913950988971618104625353090027729341547176173349524624647022610076071714129790338021098533886955533649014995043595350187969002919923217264576632968903349325101837636318537519617812304777827756409628055365129300577004590167934654865808028810339073669339917450920077243258038038926442219151531914357590842224252826177104625281247388924344191062299194685493576940278921214992430976207747098616839263243945582400397749572973400648271370417378735938112468375944885426841135844295370898097325630412614789339300812370493550567113392902751505534075945257642843631858671620889422723151345184877519829298823163561426899197077251573386317778050177586203273978221888938650612211205838248891082288606022295727390208008332482948783647292380789537283765143535959848619317567334463047114189842197834763787502596093389184682894617901923243352194739555637623343315077158749539554979217131518794833027112651540798800280058121346111107030681251222608520933375003240959812034961294850620484223077707961584893856918252274350438005005428368692667805515050258066246115543780358963801090228348589296090407190509129991709145322431082110977488126172984177566340395377798330312313363385711194020531041725932472948111991042837900679138722986310039574782315336011699463482955180918916630690388940525915432989693689812393267242363799183335374208715521496520676760374391252254433341144587886600053539546371925734298024499726392756795832994977014361606435421699936031341311334558522912242716241082061929521622338208852564597503384951781921784132663085751701485497403612532123293248119777180991631206229062832626870892889461986302990583762127790302297825762676118888381592241713642448726994158656796108962415700772677764709928708596002843796613404076014776283462398169758735145482169482618710108611224966633933040055666169712180260335649474546160241025456405710359577552697669190870855768112863958870645307001441431115820900090848675484598022508912538293912798538281366762708507341103335639934173852013991715663211033763859359946575676457451855166861553229525124170122556359160453383581992036423034553764013154517443597740488829421319889297774359632686143361099772556230078115178157357937402289249417366659439981339897891327327999966020648532775515775542184929180366924938066108920586380142578299682496992993012259786069816127349184560521092065744591410210390690619453208685620948700049275791183195694952893913902908665133062864822738467791586062175425716089083109820001955300007945121551075175512712382585222950256889657785628907516427287037104411336622168048267121569916364163103347347178128049014351517681045510593191467335184899398178513828254322768390779254138697085190436590486912580640969919314115655608065596927538094972058326175105746541072171740403276930574075698666446076621884144908803617050008992967485048847631916079594021689871712344433823614527856044812194603340229702747265084372853048815537380811473609599340123211246022705105747458150473164231082989185836607416584698159575778869814763580154214179407258912956558292256877405306251373755890174000648989278824523158233238201563139152761056759068555959698946792696857554252593017697806913736305510839719732027418816112762553475480926730283529350775865933844712574193936091351935442324172571767610707355214963079297402354907792818641530815599523941406031558336155639301419445492750658734257782099737418089243027342772763271315125571069943536978656990266565442900856379989180694984987056678860727590597292008890434634910699251783164216176769898135584054587994062128222308790660043300601184267588832018618322535724174150007210166109762526995394527298223891329774110710812184770577921585442828429687690651326796324045990697115135972338536797698713076270726655771699044373821689030253785329607707082473503832589263234939642589274695013068781695304403913578269449541372378843263467205672650995083228273349245804418091052772897089233620466083891005193012075525147391546994369153110599750266876846479689836369082213042144031691184773114106236735761579696318274578172040419295014811621880730412714579788444620410012390442082420949548017387776706467889324381899236438064614382477326336223813503235428139759485384510766741116564591990990817084905868589473302366288147752518660190951565601124310702477822397346167369842715140219524687422053671395104346139870654566935420701821454443693250671121199383204907056851829448686513342621573085409121969450580812106496619998283232462323658938972820543569025749985069959291923492460094585053540355793670022293365195842574119799266777951380481711295303282324983873795999963173972801532003268086402927579792743001751606137500012026923585623476412315320322099081492874252474426274345350238299549156611327956450840575173810049759832404717112482779111214851879969081840827618912526919570443604647984185866326102628593778613076970650422944727315332145098297962771467836431100254418838875511584970589315310134903787448875679232430940131268807025220459720656048354440315861487952622544901038783194421721846741686094134669436025837173198974297065038826790803586660994020376872814447555917871395768399280227061355935336999254816298973809269129915612710934020870315495993043880534357210680832317076179617090303930933092048934181152018219644650473488466013755040293146835365531661557289794828735214693858145171781483049995026534351146924391666598309154711722718984800624287805378047633199414814714224554135675792141883054715413721248772522309534154347761686724641984670954576248567396800684186035886703152218313750434092305036949402593765159287620698049852668426331468392793350898622685687141619264704301907794554483911239363746813189885194142897450802423781961073067147561850055795809189902058058776802396700238147356059720360521006005370616775617297821874957218815567133958098368775512509566601703474291846610987902478408021475004146236602010924810584735346795130875074459526185484055301364719484835133714397457446310439378434406710187319387049699053184777461425951551091892759549719912904554541187613368478184858103065363435574593475012663879864412011086680904500980661731863869843848326537513039414696613614849219634149870329633573515060449816933799351143854765446245451688112139728994624555794010660880515460624908086139147344968606502288317257789574606612396624409319306309991781046503664753297415991600695233709207488342752270453803596909314088375662930862316345563149827064913919951697815402114816114155671294183102346671250080997940389264998914818954696318679531796594102432432130541996470575572073780263385521894999400398659645678736077431973246423894559440452436762242264418870814689921337711890329947694287791677240361670748055278135634223104031968436357768758618227193743139693522031539579068929620143227092630505975272371208189627636936170891909650248033205365072504260085985642417061867689160854280037085566069424066043943019002232570595576887115985892595753281044423670838732721142917259877231997780819895651309310428565992540001084738958577942466257835119756662557224958313507310639171413628850406016362047859166277354749761975144806778564035374127922670009542309807549592597683745084731731161102997498536259785823849828475224904563550311986333746814080244997000811584572862875586693728202877803225682920245606036223475781021411605086242064630934627285012245081020567100870513528008007862007149064068446735580358507431286689514154830818371802343305352007487917716409377147852592613019250234646881832397961929375987096370218031562572971076909500222699856019894534676522782785374416210487306010483993349401339456306930449705070684856111250968587227102472642597542636106845154346398837486581563029036900463471482443496082849818131607207476660828109125833858954827490217258030512890291105326317455696586407022995406375329319916266236560306438845339563529302396128736554120880224931834086552251828360034458923965685561114981768913696866695301632909527958023322672589328410779913306305738816951094690225716243468071000634787227391398994380673364760235937171096143883120065314876715600038336282123190670365344674062135054063292537357786294889941285733684897356700521033433136855754352044146227127277527794853793474723494609185936153320787999004127460607000665438739454493532532923300906235664969896458171145601224253799151040368418862984871535035959874678663135298574909525403652024129988253186601770283842733452955137203915625759863153691605616243765078086892738920561829702940896932314329728574626243294637843776666502709743243144895811221622812413602944016771912614653581121327902127622192598620393233501973062929409721140228332915735395568934956300306094171243760519663679289709939357562449136461746849741685906014956953828811147547568822643408531136431448764504358481607232439934404896314862933659907919371996265175630834697947156983016473306005957943046095702727102297525903821465491114523216153839738637295315160085184189833245988751055821112267347620149827390823640492974482453465905233246587203965756911858050701094875710105917845079140016794659374162700068375304777110580633423033462223916293646994987892789411100867808338868831351247175714505649094265803168231950242628406367240216508838629600559663458484550175549007526088522696445856101862697978725159818963160369913224524719214803918891917438749488512968659299492380485016195027677044175714198327172152882477578401276135447082589899821497216486577256943459576384171015327582407331331020910905124886028467035892340895160493741643143552173263872461223747928835002408063525537889978046827565504968918534611694889601587152214697513587860274911743167420455506534118493125221599222885284377677364097974844720797526122256642007058934434340317448320826119593813995040198340982622331097295928742449443887274871472670332566434674798809779400841493316715505209411754795084372394847393226184167658616522379823839613564544534140845910784531016302507410221182197391959717351990267749840989978858103642554847779412205925439787006374821330656941101804078559849917302122058344581021452393500608087001456150748999330712013508389952838799210230031859556774566925974443959530216568492615919374792368681128155022545872280529053185420469726389272175518674960694887082686052620565638390093864358602228094712055889969439461893057886420325978923711244118350734071567792977991129838622710748135048095334153738740917183587602707648181686231559372845306724346272622356062981971705512330470655642686533655554470853874457359171855299804885975093246514562074688013685843230644547582199057220970843972770041547520425289156557153919466263908940672399718489277743652662463526197646647134142709841165555650791795611932723640511518298324997059621804501378870139998675848412824115003301788143256310147167739308553176368790074903378387238461074358809305708139251890176586002112543038558032406050974326152465758087087595325328269199241968749309744091449749061812392218413110008113758157214224175391229706103285626956277173679852807055266387234412065676796919398542611585878868935126004271412304383273349596042082111623359608959453469006472237782824014813611256353705182082845792101332552823121367544074474913743564935912459809747080562623498557936129509165960669402526294586795798119415897585827373444169451585219789901989294391300284108382375634215207657051388150384534136487817652037044084813163494003470254203194120687916781853774561034575840127142282438425126081385454765587740675909596961519223200445310237382331658690736886298181773661313288028325216201394084570905501248207975066863381446193780895589686137114270679959143661488568237208491812376529571819097427582760095256904790401706742811112952273866248997717730289826523145912520576990091181389608454768783774862692234581149747525042412697466662047350091816734379071374185669739030843234268661356977450094591778935786387178885721356150430432316204843886751944706194547587002162005966307501363141258179692764308443286769718539283602681404368574551100228878108111133942128674176522561968987652910429363803052675816086368221024120935128857503385205996989979352593892569686491363086190938675898028126721105673537150854203392471792125445503906731263857478786045692812577492389849481495268323979083983729344036057770690077855607958611002657680547642661103762983465295246599510600243519526491176305716523011417734887356523147420234224131717306329711749400056352609255183737718905413745467987069196359059617591718150784552790455930742357421001409882848865843767423345655100967224467073867962868356350333078423029964778328682067287912901907241294423563825194735423090676607751041597312806086126881961544204952038234441637539259236922380550545636320685618283269667799657243360241505637112981769717752530566945759095283600836123580562275394974420697566765494661887812990421075205317426622490162599871522800736401662513343472037962661200190181020244470976392295011899984114868482519288595250647511170515148097566862711739030107788787683794237100336366648715554583556683062315422448955325621820586619600705715619173766867414200212724689284784465191963783837510842754212446332052508266313393316088912903896761032455845412568689714309030695203553551375183953897671791301664596138576970198205808902716161752818517574732527721217440416631146106007887788571355358426910027668176012004695614026098194467221848338027054400374101593202454394662922304071652490808241917028040556471484426737728742621118946290623312871943831701179740424292538166915762041171166659416916229391837902071362755292160204431793021037049569878310914446023719478674626712065535306155765378818559072792681953723335916457151332553707729552460107374261526755197488251113481666855619498249629235631278117824899325096411946258331616012220307506229106576451891632849696233380252138045983469987756205086874712224992941587041347716542311010982240748822117232471742795672321678045506282804117753331828686474597507076747773847867087769168079266551977623580427471102555102652064262824890254585185773048257410238788767874894495889740328380126759182884647477619786827862567386009767016295636107668764094977735312194564471509149009485525214786221646476964152698039004177152900470515524695690043247743249342737975529061856865248263486905561177760472418354113204342304139866969957545277282168935827376034000507042266412703902778323406777718783054355696923155695892214334629340213896991972985094206313496551777911916242320840384464954611207812005212892173806666777807146968205337486666947913624179755069236006106256861281432056287315874758977463525625332880758635117123283675404100454814830322370395423474665446141508562401369213421029312695849210815132676401210367652834769661287415064570989971576975661073629921428009054044171629497606220531098029098710255652196301730503815908337170182496915359539921914991927183734895603476769615033339702732990583866883318471044813416637844849571148547707797191030846207611659890556756699906863162594243939666104841278478295019629327886407562721811912386809673698695372155337757129921903643330052981452226500609201315145030269434827460811374693801086292113327246619042059327104382908572633861612244090588832376643043899090228534963225868898223604245442495778529806001393465541980769309113675105572270075493932093185703804014387186050274816651607715035604842541574526725968487445191622540641818774358265034255678036943001398746756583031280388282570269225045567484737744356016968309029257667858306848257971329538323652183872028149773770699471773596154665930949148381814983683594171444635780713617463103720089779251108822431601551121317824360080647048184343862383985731048475306355293269872097461730933745357733418195945114311734556544718994629924862191228696757984857035910869519246350376984348474744945316807855602408070302603476294874961246423432106762250260605400558025991154055250717183410240653759963353878291497426144446131018881875692762274212225178007048443975654458602405658624960085591294166009199702967126998172596723882168609881321279016624833884150655876453104011078576042996241088153048513908183271058395560788555434996273072868898672142712883657363585038997717598673145108397718070858757082035026044489978482300766436408607801092084686377644500181964557485947122699074926388044935686185531058513796877475221299609337223845681734495616269656749237605573757343559291162696490363087038539663826046788825471683089652019805264864061622223560334177711585093664237270576184289900552856453742003747411722175685454131506863188204919560826036684493162945017983880644700163911410517070302211353788233992124182401908051464364230654081154599343268827927138519221165530044017317181629135781183464942352910415670667199070689530754857490305964633968945255757517345090949758647085933337938054240150173646355852061675041670240101728071699253250882458106852616012503903038148065023046097951362842174658753040299778481682351706088289651212965484112647184433010267928368159180415034155931211387363923351911796104377804114497480355765769486374553445693473644086650362334500620838015761655129764787446858801048580973007323751021524290435331335480546993683883720101717007631567258092020872911629159592887341824480990348194591305484884699079001916681994357556736543696665460111018820618151052883665013328874465922935335628493956784820292008060707395948204185918202666216925598431351660321812517200900914682148839257247223613023785232151481153169167914453114654111214813197909900848099090498289273087760157329682155172280105223054222706999888685775939482690458351989762738946430743355957103795211894712054655619672164850368771980914086925901274545962477925202445562924044390334186982382836465410806267910871784333468604190056773483091040995552338758565586196364853201734545210631590095799256087751552360307057685263226683373358921905970061493032297720937484587467567530186089380224004911797856674949759527685633417463576232667168314401418515867705743953157430642449763849211121975250158536287498672844629189237626203189505283985189161885574407620198010547190999749138344193562348725209076237092656232664272001159468720476201433048007968779314812787147008293252899453747988083218470114054384041277351201674666806227947700551784821164320262883461869002124093892408534481976917853888055581542510540985586094110507043805045480630827624831081554881553816836537393239055078384719232171026575329434583678890151909807667254909428227025057634057276944972894961735692361610622236692358109801928303782742970381535004527102701758733510841964076273076854764458935013646446229669813328229436691923413861991664649228940330263820445288790834373685002960640168921770131336625967061296694828587079478448193905085216479072658256764018364656678269060230408151837276061654131241823219877427518289916754448087224209617185887753069466486193518236385434113291181028967839300568551295283476907901077123795836856170486675253334817395684071615299015129738509634035114315975542443690400438633397052564430747387947204051850280485974792449695896575555818406345760755927525544290634382995937489127115908098714900394021683618183768310652365370039435219377047766414627099997220269429685270212941738235770700736586852192967530160071255252083821559416739531206685086601579483153934882592545645749709936222103990319654215274424566649235932775130130792276813384676210687397129282410535602487404059665388897280145863939156424009545119235038903551161172121908317832074369010782490217993395713868962123482299215819548786191597173427041786367099577650322641652464577080482513181158016993028463372474256308625654849676435630039703475644742809443773544228363161734269832298885596034683250307402131447719226162706040736194504689227820529065593405277356958397551167671270568273948573373123147179611973860755089000123564303513981602319310761350405612127893488414630468129437833526067148401091357503645661827638659385855012464607024695038266036824826400575487486222035668921244628221405328793557224370003146496644148428813577013929129858002420745556817372008124191974139293338730858088541472505039355901963114753026052256314702498664323513802309823117258518569113409592412953842417401460316121980276313647823034460013987595253654814065337460541835533604268587937952886376391739950378988235663441403563037837600688389354288982571626658590994081542318527619187862234606859207139099667184412939497180282990980089440291467760618463978851826092490719955552270273353151306613271066125542454390633784933634039003332577446990076427526668834109149949953388199152185957962942344415823526453097581284655937083168345766658174698845983404933117942398147508335237862846173401936433769716512025253504858188148716104036770745706324485464305340934010710781036564582081521633931225781426741450309200390913870834917116392493452902490883359065758157682650477795722128619261370763776740552068161778129577093806492582322348716186295323312981407957090566286722605526691384821472237419730893435459597443032794074858068451887597594084019885086343110241437883166463316559812642580193207057022174787751057826143961295459794533475897970240075169791860697501006122280217916237309518970634695504232646591875048243725212134210863471775079902093454302070952422116872155473318805639435129675780597131554549014865333202980945135144285234986491805657474100867364930100560959681997356582552608818709551783902196134197373316920315751239403505728364527309861634567937852036177574723704666958198572826618361973959596088587219519906813824786287824135524389760736344977973630385846682847402976413730416795678963360963291625940081284575995218541776219608260064141835027296653535880429370919161392887931248253364723724864137795891346891707979976316609632984363851556763250514316046169998450025973841744004524615557306235990058677202288320822548433405132094095320772243851955523350130634687614847451988788488750482835221528608045955967813914757826632543654119007934122743971548693663062392498870829658348231126533041342266430297306168568711816616041579513609024029895355886910215643559360742963419263033715157566197167727214543384565676575757448482185643599968222378387346669494299232821575982490037247807090994812000660745050751600983485192835553213671685782663314979429225608050717606342535083108586886802197561521784818243387792191406326628341515700554351502953972423981173248650147321189644719418963568655559414876168750390591379823055131359698990453171555824891601814664304072558445211787428129368798493657010593746129066569379806499760013417876319849959525395866190473562026127456070790683869670452817197837446191218033018049393593020683187571463491578586711028790035885095350276729624145552472804637476005928154534807891507221170139378807045967520465560148701451301715080592706296469585761999992080701252794991553931973313201513899078871210289006744246046440471202369011569870457665041921518374915250828422650508239872338607547391566837875264821243558068971361800198839719600069744904664900585443427742361118282057606281255184297786820802826159514254614253454317794387558525826372025927275946378542613156061205127095275617013925814109846403787715942497755679433181357114836212283175555293456862322193610661469003422309989638884351055821179433586276842113706574288964266893696832193465643126854758550618462297938631334133039184076246487142573928413427763584333090524134996335002821213340338436314022338395066068329752735460932601778238979479672812718031706662375027156004296892967495437939051150107082220224526204039680253181179061266354978513002466106081072266062898791096896178210227765625404879080621586183237330600572605690344708500385351739322813616768306828749170984011020831179632613385765833388802306802623477210772470549199910552174504243091402688057500264018591342353758203203937742695868767083259089649518539711758945286798773816339781875900795490250410144183386743498809729727867110008560097788892862900142102756876879636195875600350322174656662236011407036247019884457180681751553923330280490963867126386859561390964792614537332317197252700179129468750400054906792602749014863683419875471100478598402275031441568190557598024985678216527070036974018323931656642591272440243573208951648669119738282891980556860235149051082852188108785111227769498675080987530684197568568500498135290810512818499379514833192753764673689244859284662692493348049462504215432126488840787890381320193555286783278987324844175095077767355636601024359994267268330876349211120022082651796069084527278642508117065089101969238435002319782335814266762503687095976810101750120339526962831890705281291573957988117244060296927986147993497967748342723744353348643159210554245739754309495743806630061318375238286664454540156852728380643896051521511657161347283224785646809414866576369560972177467578611966115104523776197303686801760660901792282900892063983619005887184014316430827685975867631695998566874079791374632637911975224983210707317649838360830920128683085338566472521089231262427306049854044475788767488508744334389140306695719435297951029034313896757088504832693841284308555358693951744325925005536268517822491712270242461043643416651402589786742573302278601849940165479140579777255273159659769681556292502334593970617396814510004099351394800622493759049229498805753324502666060194935894828554884398796296156590941632123715191347400042989214026928474785675772483924380165630621538830222127167172567146170449539904412397537954837363200429201693435360257962845803092351683205610694621768757105173186041448029961605360641495056887344293632508028986073340543526958681337750253374778699823642331640668353421227584054729763997678256756527242723039872418328743386813401440394679342116805151169983067903114670468670734616745057185745363626993364460587420830780339554083983962978508668528718997422294280155581916482970369413611561631764500819535469188880228244335034058587411229817139796572711896377544440495018841144580428800063491777020055407719440714551013278707739219485636635906135505220726260261271788042081545609687251221742018649014037401059705677020207489465481038806089601793690450710656058990151281087963945628936818150246542473278258301197756567780063557041202711734243473537190017024822020843145349003366547088782150267894269040566756936052971839306403102512815340865280690299655221316593754687116953661731925439206536373924626074071985479409995767957281877015584927420799920369636435938479436918181984554983432751856418502165784573145940097915248472088818816971805933737262979500302835512961371023654847878758303034491520113697887765781500387799666445361176248900546991618453806362394489200264567760416778955444968955735847359850096219789343662978272005472481829171522144539263720255767533774342893348996947378991529195454571967542544637708069099399473578384618972173132191125001112241924172765316474179235506175406205927955109496409041152272794455369534117513981808862641898461491951858963709756128300263442060187153484494712421539879384723063321334278571683294578291350968957092068830741696398694219338547875277211869933412340343131258550470476388294141271097359181196543725486966456340386543904898470891586674934968886393251889594010760407785660291682560495872137157605557323188755498706594713446823829608668228265774508022403667771096857241182676153508879270387567027400948573198352964572974678297854768984080811925692673533579323698747143037885687562204617201906730153028964537417410952004644977471298123991709630153592343956658890709665701589637538350088069879031322796115757187814174087827185809846641776139413748319156689185400191318179365473087467672915739176885685749810907969660036922007578257162299708754762134218512859167540254180692542070166596409319271939044548976690778357549826164533601634693658385040512746994676071639086945001487280538375692616255191968877880800700691061998395566251322216754250153060086118534203249049511548591187427779051953451384796668897054684241338564180534609950092326804772537019517067322993225643960331858967740537062094756331538815889686837442734787158645236583139148967399498200851113420407845873482528602445248365071275347883568523194343023092055111574277479651305756215062042078046037195456807168337734014184362646537806123016989549241411414655341611488554530474504596754583980344215210780001941754597444404022586084281764903034817359542044823500543616142243071025825311050245956859518133716409999553805531997380518243720322389977308431116744037611519817183912104342937552466496601605537921919530101489751285005286126922900509882457628583726630369203617658794024915259191347904373985954401466726675832551554882333102427548284613395607832532485227461884496137552830912234171342073774591422374740111779162895660865181758275555422979395297269191735083774906280538044564510618946653652320024009226070773467185857887809860395333021654954735955482499810561414691514858861484699617887518907826419001634305902989630509663055288018457383582586376083872337078234153054384658094171387343547940397159573733617099325991793766877339519411887684511729150776557963997970087950035287755433164689013758557671116126554710127609801092081662825010881215199113548298898427145712612966591172500924619171210551516364833625668822501550438548230819800198241441877274662409821070840073496951601656587815539581312837134550767801253762140015485816117225118677014649661562410050842959705378411074359701292744286344190293204093849078137610370866247858440351735723933075402331094946184156765640255802403320987707534816594576587882699610536130676425677578131633730165406838131503450201745980888407005187289369427473944877280455479252689570936765182751650855766731871668562969600737619465258755313304273309536337374761800024066560177390051409374087189227242854092226700733325404799467444219149407800447433372767031909695638526931774366757765550782171501138072598673311677867394867914512271894504726021978961047102106704768647679840597367261594806363616787584624967813700004447140382140963958194989717537115583708548042949611002178589403890786942265334057013033757504175814047289204721994727526351352543748204420657837363817531959988407799796359749675335525472535626909172208937430369444356121294858885188605009062435558700539875876882105402762064380830378727939535406937728239577880004414052920102225591818813514140356053468884992908816563145122936602910656162384616510747595074473630912993875057929863318465649635090533319161970712786920614271084859953605615834724864340884191172053113410027793024543580960070396248520298100710355789101919771767087663560964549391398823942007856096764741432439104441414611518456557675118308311893525190101866387111177731701088006634689931430961764189807875387088646736909772728468618149719316595582152882914131468762636814203144015479801920312645996057707338259292045929488559729782073833646367026783600932447386468124765502071832401919378318227215423564290235030383289320073895559041502620001780310898468796385257678093525022411312735444278235909713383335359449747001760984495408048382799102362926355603058194799444787382080616164882033075625900286461489667210011520485710471804952169306634435368322919524220630237281408988388592988743849833954440250808512553385196082327401117455613971287820838567862422028008441509986319975396793870726056594033389645055023951289057923026279642330095810709824524566932908027182292714135264693064689707006806285226360606870326793845210717963137112150254504571829108890401863676582779581151011900078782027691626314035246076599544074396591383755159262703783405526196345241504435214416754995745794201462818602991689030094600589726242935054335248006632715927925911355169550094281095313611517260521184982911542753785167937330158276382111779126436160780799990724508567176822004898460180320731553738944033280704274682392386151252570932024917798945240506024209554775198637188249322013036385076877841672039162281219151145481480462574716638394845568322121236372857047622382395161854868181154424448046861890504112235745643826415092547572607581523412405516143689783108365174815848959636752418365774544484056359802059596211909279498704315229385787636019528004545960938844019551633381283815050773549551034446029240780863840579632197826813561790359183724527297086348049654520864710925616111036139291830953943806101710132953429106383457113893539252133392781546033156554274516456436489247313889515884030632758257956380582615880071557664456700020938240898475076745075058842883652858908263447711916779735997769944847091390521296893082269512349154043967974948886498132155169741632140716094614879822206291958021054109511331921880990321765517851582549323382779923306840097972048014941064488966368909800883276991523993599236395976552865538993470179503154632008881308222838115900683446894050005434716860544103657519845072904717339056615185436602005055869587407040107552754590221521000980533571949661138349426714962968450200582735660002278171008488468550301406239542661822474226205817566372861345842153744741440030334100796783093425528903915706208274505981291484554165834443490481274827344133654018734398181532549284680617576191908748350016728255796112327070186497395555092589853570239557374492978480182637665570903257414367473255322328395131486533936352277819335415204839539892944352764788627233247128147282263626921192895871294580705163372588225153503408398478013623811495368582294042822774473419378587479004331075293830088675577727727022252295860024708331527371152457485655651619827653181331264092105185965314468902091461799569658054348963816578936070821234204705536208008050326714440577053123071180344556096485370296420132998510080834993741008992432793153657669029983639798679342413949130707305356433804672101468844802751502392352921913482044230637956134827172062998977702798345312991387995892868757358744496329551503284163325701908701009210848619397190885932058180544050989052320090955087309528212830400087272469345083877833199068822157501151799908978165256936466022014015106406455674961473980190300971436628789317495336389945450752806675178735580791876140651005411873214974119320283861711966636654094293114291116408242284753376109837241466111163368574454193302455079826309670602483883453703606255982767545150218652611080784477256404031036124332739127573334621329655540492162682288833001186815676108888774269017675969481062736902241487774005079097871093420796081801482234160985162159602468869388825892524105078246697565213246537570015628284316721633128935612124924319737363132350189447680934726420481524168387333763643601822742141629372398966442196154230083443121442530097252528943400366157214980051943743357067515264815696979481774788968113782060864245763937356716517089742226210987893815397985882905214543365465411322435283352137472668932937858879211311216909903506150893554562282170900173011666332470779398391626568212336284449409088004493207383543913730449952714924449509620095239618422895081769681257899958495877850857425420136204498684422255942362797709857530346585790752479923831542105157632055782412542347491009194371316491071761417188599863911620624071164856314042387357649452056045115381526949253317222414537403447850296495114942097943337711503124222296795650542508961928277719327626399896399043817713043040446551775931519151322965164910125962878017559867320949399164640985581183398134219745604766714289011683402034822187552219550129167182800566236436465955048473110798840893614217005048962753282543206766901840692505955183819750947518678638955465619103655638061801233587725586168082145575871750504020417619177039744275082553274331369138318416261802344007731391824392017696281034344404415474428434977499199843041835480262843571424556257209786714931353136444806146771030184069352508423055357293802492292459587611397566257933742829373573184320575476655062481584445566449602041380082237256706627262833186978651752172142979484548604256096636319961694280518861859858864810389435205454905141963951143435274814315970336789580794016118251795819592386796439279171079280004318532717352076287746806657577537511617455246067450176993160933879801780190118900855848949544262719569533169404534328377708514738159061619600247221166215691221979568753879503031336520551667667864332823591605071560240242601898618575363075648205395102157079271505597785008494318249182782041003466417639786196102745492264349244956482313335657963246123084115371337768514790334018825144012545524747288162420879383739136263702629256787520481190223826861452868385481790910541650733268977244726880989338303011647440817288216806499694697911082711632608125300120735070392838185073891265467193089372293270368217424680495194180122693014918897448156096562007467294584337240050412095236551837202236417879458519926753918630035029350870445363135977152703884343635645223691242042472085042116485252582567149017930258300376870249346439714766253558609996832517180376511376035256983836001122711013926353187576870712329976442743844114779749524112295828729604810099072289250653653610211350373656397559696135703885810992728047660276631627273071324905884105113147981220200629274953603321637649744590687661135981321037777780435275711276980924561459306152845227238344134005882714561993755997981619315333810546632419011163786788183334996688009855689402707925933114584225363716154401830820526133071013496243218322949236821858221970537555037920205447510322542655717825472035112457956196435140305866301052609123935802173618851832939243711691714433889006131540810509410526033531205799446759588808282356027830732874950220340050151137150061903789903556492161905191710281870463450062147459159197898481643762170189148219295836068548798895409197548609841043436074967309862043404953818431047496291287753162143586870789533365384322896557729879422321604747486217034717826251241747987074935812589139619750522005569609244638220203263057224506467250974778565352224744014480426923929861757844487660623626144190106057337567592532366599929895252159522494684809362394895005241342794930289992560386779931535404562412062653587203232383363724681849036494461983243421171493556473639180781132707545212642636853796494274526707740994866635247725993193964772562030491693201055972618703946556299699703849663791245267366587601509942622340857538746200572577004757443008757241565727395574436360930821393488991692120670297934618700243443956152253270995193650699943766771466052983158218208292606911393806204133125721641435789936394968611836067261393227203064991881455459339885339535666107626256959156046914659855227754357676538737988871215531778018698855021801442983199830972359651486379813591435730060549832104196803124716120006653204918737773451096687369852028469058569120282658278884913447410450183773197374500554837018061718631360921253616458421196540898147473146569452130875770632511225316543305039695618077690935330692281581867952055536488886471895513585137379530495205842880397467066017695860364160288977545016242404424343805171464728695768491190365172799142867334082807651095406163502973684999463154910895445695904877965211796950784899924580220338606912504969016280477979020915204760907116989739822897072388662922070935576649859467529296822007591271623193002247842480275627074467882137199201551661669115399636464840432932861213357852802070265334627580406279088998848179890942124057870034326809705511025371721625650171584781390974831113800170656926846166187546090383973296743930053860547841257719656654879538599944067315993683764355530822644316766064325145268507395029904646627135432603270059547505496021393561576085611430812591983520693388484188082642086889920847254368319542984580300025334972752640614952613247899145994145441194691341457584496091768574061155110188548591783467066027329932739793164203809679207386716746267914177911969576598645200189083267599328715950675189262217925631731366916163093469423891327361860212011187454549409682252970267135399698613835397026244961540347109939231657742522327635720232649710103622596900798325525679399370322829440744105171199702600553669039771830058394178491810197365773964139902849870556579291602928870265048109941887825770164608561121606524042982845802570573763512041574494669463840377921455503869139614788480581573914890507300976227674687965923738583836861864176484338013384210834543869965052391620511042759227234846092535324290677391833124763112558442575381791420401449442729496830337699782208954682822661813080595731401249968918298506323337903623715349762403293743888378290307340935187850331023619692313170595472521600614214309987756585827948538532818335648478671417783776028278185442957813890414631225743640753206750818317711280103458567646331136912418774307883167639568641795889990725943492381196008867698753976919729393543773986035920657635249737201740331464186201540683695990277708476925677375948939348316509973861489817692915272989163651885461329197462017370101835129011023705519597704569754517974652295420800464513919108931441750444110694118934376422795466922705685698694616904500922576129158918771469063578715079152981765926742228799918420353311923334938845241860211919579127309586950206485418706681102850587485511224305540183669582859689814416140525240726784061102368113430736217646294703663576599292750031644205930632469179031182593648889120182554052427318654058355185411340996364158778289076717829977787353738431229581420095983301436856411888404476583958450372431236796036852828593961288711109567697363695253567478780941379277118377683543191450674924648933809246022565104677202907608266443961990463820015978804051338865916222193544943801944404643885213272934001785092060541882989514235809857772317195373027787536158054116851123361660209628404635442852157739521561542606772627995962196222052219840956547287263997826586255511254206753122713504417815498333248481056607058727601449798378351100964149683144586754655614313769650292685794918998511364813163361967628247678287344821723115671030246883497358987278945546688632498981423003550747711964622423589244532795182483294187301180155789595180338053065426088304474987156394510215007192801217435375576310312179139930698701961984718776439633520472005653989769691568822262806760403854795634961582833572968401210064931407183200204106319594821907469469871437832173585000317471694417126614616929434213805631798933351800408245140085627312055600033577382933782007753291545648204389269198356888328782840127216703369741703650255369213562649963309746154906072668629928129935914729337632816325435770234189883812751095224908185007792149672829025846509557875673705320793628004118867476802822363049828886716258443501795299490735087011395017203885932834193538548177977749994774396788636173444459096336813759643016785584329021562240885193838836802284337797750237974373758724070768409304099047638405946702335967687602556139522103341585311323144820947760757803238475535179801722711717765428464975922875281613124028915719285217386281789764730930841604860986365877393989756890652401103657295692141513845858191693582387525619307952117455206720909152812292572835420141601417537010568711999878063012300100575460932706042336289012544802859199668088260255729492191662878698510473996287988344160610505949592986446897502383376306638651491259122488756979586264058303126427096406194175622380424388635146029734953189492034941288859650229528216190433665424984842707117401420746056957756864253656094994405295203680772755826289265702999369047118352438059469171930983657689532491232066098016235047712770816268359259764078499824164050889493491196507803060482644478463768308308353431507381818736287095533598533176023075955327610193631191343695842630909595622844852132508622272297284620163130046164970001216219821057721984700407208550276234950316971858197546591129097137574563868260487668762351158034903454855565186438778779847691385080698115599229908602528829286635998975496107679057271938873850733899300518082274729482954990439597348110679244722384849780399988617471657380427819945764538599798601980676761667692603301799405374487186066857224078291503332634207476118792912326706379726044651664580804384942417625263070011984493720842950708506701147937911768600238717374140142116873485251340622157532319479552951004160810463201859011406050576186632806090404757024620047186647550780999818419605368647003755420777668348348801977943837138724831998953995070062917019533478105216492494391397385709004840856505674302736126451811542813491123248849876213904212785799668684517796234631102134863364586384161990239705977910643467615049091492113569948894521820423753125456103817132078940202476412948880171913716399539392810364448847078034748709686184938419573581318394086435098946371262454335727515292040355367997050692043931196786383275541191000781292529862203478901529017822050882595737311047891585768555668602660373488415325589787762181788167897840390820923016108567945689789450989781806059868662673479485764701142964616389602681471011587467585824442956136388542705477368719637150919365563031746993884139483667922581333088229003801113534609776006674879009483421807094444521627861762128255841604692877074989740673028657971231398818030618040586357058050465868605268420224987007548307306672493580148761460197329430104795242834642278798401963160641286643355294087526915554827298329283622441581328883651621615389696430644705098552445180739293918497830336849898114815955200866533405133654166424635807196729747124423283186420835940558151550987593101089396072516668266461006251607427479159627562202607899354149051126062642605857681392726746722226916247787935820575964029980113089539089642365249988756643566230162974286234263890211148822414284017023847201140601715140195608246134424785434739093851734035033789479356217817461273955065150380019740290564512862056507745625604298448770164935490543091619021674361144903876249018959275157360981841555205831425745360545390777083556800658225414858568595878399075839711651996195100473854374107838548800053074543555752564709610985145063656290262122557223316734270927473716085221226830883917214175273570154842857312065013986981095931813500727696510632810143489321662881737025546721025285064350501324639009990173476205771348570461022971291950988491106427895879981343505465419232905209279743060058514026394126786423678184055929869030310685589621942611379085817817255425334429736098223788159233297209535600732231682083279769901154136799315000115373973846703980584419697294879451219171792907275066923447145999932517862838922290277409228208416164936797726892111247872606474393799148897583160311811807772274234916585975005771673496338171590065232253799671304201182224606281436143401315835006492096507242649679587836328386794102148956256392216787202261337132594075664366686839832006725788946900545973746999822534039570660473304037706120387262749579027476288787546331012791028922358106446848440810035501738584075021487774592971543691256643019733781408299843848726880216716578552676179330245696083559867055665467693065178733895618058869582280235422092621359203741081132188235298942867694639300912975682928712537139830137890721040140564685123472538707455159265722436219276773569872377996426754823628127114922881686394601186558711042465432515689659369134032235229607995211841335957067526544858420176854330493637337570734612842742197676292532294001150596197545937393856768011108241067629975333245152392476622984978013209797084263020103958890361513987076457029873962750060835358774613793170029546804097663417227429671504651230857023191097082582959456912012717500478907106735746108835896364996294470176882256600473260133695271149520522388375317289773145144970770766028871783857862504888168001473947734229746472212362715828328746580545612427960589062583659248379098697849139981453641333733953596973703816995995985926166339495530320834051689289469994323769981482261001453541511822161277440467163365827931032671232676714319860734217844251965165796023655841231828214557713353572674150899365926253002147718481312397766134631723040215867224295236632494007507052659303048325219051325646317137746882984752481246079912515734259656976114835459930757412655943552830020596733808212045043339835386274183531061283609599206820402389497956131982363252769893742290142511680741225822318745272511429631114768508214138953401930210395115969919836311340815377627345988673295047819113621053706736395537212012651116680898307602470387451361974210162491026422750667863745185623623641686637857965310937823261764695403587911763656176517614097086807600511328988384264299398449039495593945436135926907320969032335029358054261589330730837543570758941121858143743804060068994715029636997176959502853189959881152178276632565423815985173988701739962291336197102649149801878813722916280516735336977077674205519264568346751144372886220617910749877062464249112312780271320204723162773751457100498672549999904737127788347288864918915490698239926888261711415807005796199173687049072122354355190069272622700055716736767278836386788936599771384491984792268985501253370101000277420368202620524251043929076587431977605226856853560634823746403052630282378060895153166064074086496543585272240812412513252526366389034484093003332743653120851272918032926495154395504209441550774510988897659266715036969690736826230135142975406486266745321961107631884639865844286073017522432186273027274435538058963247730721738312159670932581626622559077414271834327487249750582784823092210265089872917406907586767721980570751442970241333957042601166744467447706927247253412675525323305395834082032336672167464699183357737488824323648239920758659643570218101332602560268012914412101853549964760685587552816134179752401613178851353816165675032854113532679265004010345163041226084403204022316994247187876893093831440685906824947438949537955003533304554247417074122373714587036859428942596668272222151337448975958583826350274078092194688265564702485106399354376219502318461004423666007849819843747429752361095513706739205764694665001597940710533213560460385791225288181271087469774988498582353485490668444378795293867212137620204749353728350617362823427111921341607091492254724674917094476007602360883846273519706992879193605006581793147879052144157172089470428849003892647989820035039873864025084985701031412237466048804675088346066191769169340907249847541449981351754018491727984728306941650967234382228632790999028998185666994116487702543774152702616677163627256472597554497869375729965769597911834734672489756952785936194498336166753053909461116180305551547034317680428422348230668497838107386400168960048351430911004763623459559554573426762818151638747381191689035482692290808437600699525783041543221779411115326314049559065174649548422951200548849999934557955002521880896996332953430392257994482318068020923532432440486230037863106089187070594453331511311904117422972187144925928911295046967700763079617474474494010998334348905990023592427375076598479512828759628853674807606553410133517756234642225673624111251218835558762058903265305129883435253044982208027256915498078152450822891343460328410101252358545237915003165382217721213961739318958498784256787912375516652969711208898647458957424115933817922844679989959299322875628789746985521870297045174861723477067584822508578988143249390453263210482453729316417924913367357670579213139161032715643122329479766328825893453320647999730955296211339502004360263714089220637472648508352494248110099986908760574164012034837076543845770750183503549831762350537859501187407924112162879201814491456263912792788593722189945515897923179875148453906819799622497682808009236640278825756391705379425746338475500784768647659173148125996816778569046237452230031963841543510626058327139140545124912219878354318128517263289974033577047674493182769511016580618035276997790569679381242175493231262631050256868264450506017688805458026379423258051003481204234896241841130501591340410204582163018301309625200962185623694509840185331291005256730834175315084538378699229137250994624190381445937418567807513308760898253925018070539438269270975323019525937366134182217693676239364132703121720734504017284585240991837076563849103727007868169714434556219980932176338691083313028316772060867998961209670783646009144466323073011556747307619276186597025483875044843324038701038039090275759565999549399594340113043365776949724145904091800247244259479557554861038615136873555231139906036602458740746991413851417743595835274346025238184786833949648165434032287307718683048433510446002379805463054110521171719081339592509899482648465280303619977857412798197284661334470872881715601853485968168362027213428906535763107236452769496797602792562822306245210027404425940832318456403664790117525240193994341020212353374994647918127655462637457442308707417396673017624218047080477040941634337308041571702030080839234041013076298926518718940900962709104165813878454787847964437284348776742928351001786072526916834418399070812918248855409440873656413691623603328784135331445586539539968349281943954006618242786280333225982057179186200432310269986434562368823688659895218052011363976012856353217411927093175924280459398261162604009482347508572053127637843130553092797220767389752191732192759191164917661541665307964194954421617438019967697512209151216848093038887896774604521940170265485028125239182817124052791171953729285098397860095280136445620906501835864358956329176195698055611661101606582411631686431898496571059612702065991004649416451953000901746701016396407747566185287209806931106112089285564002416363490398620364403403649268222709556182946678612883694326684664697214021254983234998418952304626587731130556194511031720776196378631959715435328963442219721321947555126519227248383240606097607342064868396954592797573569180020106033523632055774589939913932911566681140534613641662039439528693367257510527155644803056774598831846637627650948007282114631602980122478005323289812363243897300967139807871515735576618518113358941680282120393087168474034995060009899320241838843058449049594178538022947709709094073736651792731279473865390446328460374095404307915663355133040156361906640136065255365650796675826502424925562375531619861761211801771217760496963547478773369475764370069735384039344904117849458603672254917915762942945014963617503383857569729564567723243121974682108921994125111143188440546541587843359666081321110359121127569473251146410283477464290011643185200033855158811286743048697693666879455444044059696139547791006178867900397057835619050175922916052415592544265703312653293543386893336393112782328594408294181796324213717100858625554613736460149546803778533970273614737398765199330721536418987186487543884401698181916674245607590370373507453336509288400164408452815224185657300202457066085416186956381533330968823215731288261902419587617277720423653469436253938700252030758879017107765127310537616527955996067466464920511945780526596514012746659495452954944707071523592800379004269274048434092281181427508444994567539742532904110968344043184709408092996814034453931923589756400892137659836657304641076335680248211497676881940463845151198095820622883824439029393903566336111614989761528426359785091940331628619998029252240438846766169559920737215212559117613855091331077338132805878784780550620396250588741083276225926503651455608262173849168489217661956851505126627818030186569829076353929366718024597538532456230361045096965076364628873790391132180937702598304137362701810383060188350881497800260584124664271322735222440602508514151627069137164414123380243258144655911434821259570550874762114757816945254121214226197786947086361250084034460808994915960812644373209628301783577226628643617199824788543373067689839556348589717543941515679080513053854070930597079643385186116836689493762117570510674765488300560326253759034339794445187875524382038596923308861922450529909345164805806945087522921165401850771212656613861392118842409392946750030101476639050373847427689125685519068575468252376232795251858897335647273112254906237838809846826876426117634713866589040552486120550849528353728459918758143655905553013780115768234893294857456475656733710065801505417138904597823796115538574948674116459508299617852835103501282138783978349381188636742615605899985463666141836101311984513174732188310287203248988740722863541525508667403557580278048670392999921297599047493997105245587213176112817496354352298702241288866462953137559017724958591606779311815937621434575483255034337992350704699152951127378717802998021348706518360985985675806317412720269217631227027435864333223367859233439294413847955732199290452859040303846959075682787985181936164374193437162683940169968766244374500621714318181401928757712959451288227613427569237221260967637414676341427340158287306889849219869420097606479900609777507327713539314237069993498437271808059923258915935368171303322861296090619551737933825607859445885059909628753130417558037010764626410356935833377794016763570929997816642170165078162417134242946414588461003473993582126535124503793534146007106042984241170241058085218652046936973407577333261321832337647429563960411102856662172816283955398392297917262263625360864980616032388801947167619375164066214591496323909377622058028237306644861401029254517560620827148807722745580714526327817850985140765089984471537492725104781218131593213097100968643606995926490725640419008962171327257848581483961193266991517527327319580733703182021905051009490395703581411597526445872090964953314341892244209531435872421869216529651973069119053124994265070423886405910895644844325987056036825123093579066693273463894348052169560574631324616561327499929561502230910218853993518829059015410164602864728852356830933592413189205376025732999420623689185992000533186300803588401928562610941634215823169313740172694772776634740491180045062620777598135731154394244296103315567910429632068254525903314656564311390971545391119442312297656893725216558109279527540075011902326024919549465463264838993812931326741647424915732422140164690784885305057796223947969807468105212207603836349735111931486742783894757516923604198195357577771934690756812471141840351130601214390406990850578339203972474654009450989463226325703857010283261220558505872820203116064573629177133175737947419912583368723287104859282100950623763473470466463814196068993214170689699778039873615866104505586519998858261893765494617719538752269235502994174264617504969000593592683119873381052992829522662415656561565466568740557872247692097476595044455478381310934388884606809878603080459575164824859799099569596260675883230538902191680906467810544834411394780502667832612047647237562739211405414046797498867735813447602911229944114541271984561556092994775453848847170878772531976685440826322609951834542416681888230337286102631498101938677411661831628739708170322608595553055326993147351808300406494617998542380414125496563667027935285598799660822547712807538236569634951970496454637443880588623927559449851280569202799420359846230312537797196246709062328862781989723876014831480742171522971961562774545720064208851670757008462715885359180816506779235467552760858488991106145761540413635674737016553659036309407360022497645204152447252815304041752363421490747431731878080117967055578923103482078471139927711778327571623193632139362558989052711203833332922783625382248667252501751642685053900705758326439000885010526817405065232843641908258983887336486974161976141498792144955007376072050176874857935648390084528422848033528803046142941809836362464933409478338560950851254365720341639656129545711815753117994314880501644343610891172241038913680167814998005605073332274445790222257628871989816743628376057411733242389005680641428016430411805898086256723084922685315624301383680480398186586313504960976336950556969040818073640461114476460250042398763968330185862334461224610958670161368715636561825131360867886215566945821082215356720395803878171962837685878273564257690489109001696444914673683615157199431647564664256055121369805300095308466131129392579170972531836440431342649815932540933303689601634323601775526276317908795490594516335729914387684658731196897483135581479456326175236315850262425008852977854508242709849628031896277451602256105420921619200958834200059651376392081693619908574052781114938088974553898059991971032712068779194791471685338224046013095516955004978091651962046702758498613031798913635611900420689665559691829524682058068376271681105462329988898168410784335334916302869258392757842919034058481048951274265459708888316615034655581203617087822216228483662587720121498680691530533854945327491957983618453414217378903294271712959186918561124963656727872128867624528173935469919241492979985056646431027939542857159963739836256523791675250678750104701805417681199433614266971537053047758091026572440565820325664953041194848974316337522606101333214084460054920947023088630155445958892496498712527988333895791147381389555276541680004671074813558909287652328099981854511839105883513857452250968211247466583993166368918434517244695450928614378520209060274559157361360589225637494718568821009224979894749881763226343542021317070999792029173832734415727790386525778413932397691660550053783800842026796434838268698389796671402252684882883837635269526437445794178609166155536498756746087373112242572842177947316412203019621969196082153995324102709264288620779227920604563887905193089848706299906355302211960773028190145223372406566939426165828779512175574715134386793405385743284572057747230504230987382036195065077109787933639989963092228057955942643634554839243004742696377547228473502007139346811894238208239247076261578920392423534877398308261229876281811844919711455847198653988835858240494287252688542877041943900488532050664233071118893608074816256656832771644218140615225925480680432303858737859845465818725545579078560665966436238710739576496116485919621915302446503163814391479801521247011899887525529103491527263868861770555598881830450834444340177427729030915103590780366725958176446802113992169257760975403042375038879852356461453662206313946147285644083376888073857532167447858464009193969318574940636986096827592366029952782067560853464866814790814520023047793373737192481427368609627267843762861261953184239127159505981647772997712517822109667838744222001452724904263229446658921699007864231320520416512472703489163073757224685810625023919220921275502207052143724399976621441872130817705305927943175882646404186196822589050169141449483919051556745813030214658614403322856182565528338178379019628358843581337920300582229586658124676609745136168588909543364265050403793640424431145307760240530512598963584507573342815042524315894159048741273285080041551133794719889423637562071479256466328248509176984818522431812471412833856450204997408506324214171768865769072138157595803314241066616025109065070279169424619188476745504186098144343906429180739239297069084510806081392679631682770774056039066895505022849170971401880420464577931327111182285213407003171507370213998474261095508248828608901425110915725741393620863610281789759236101852612575987587571502526253414021448389055842700983769598309948333911275304531401291765576122845760937613364051421872148887876873241843644219525234504646148872060553044214122558253393958843570022491562891998731079123440885273199633855968373897961719070223727964139548493031857956129833450135331636191826953382566800617945596580814562877176158010351264673016755781171679905143248047948401193275867879409069587765998106557569680068335267135094678114969328054589255339921138870742765126396173163690953095023454802383275693015836362301898310461976588078923871557510955654249734538293617866575892472469326112002707619323567216341965798952352797183124021106764053842434199597228697728954210709374747104049619167111535418365440585451228905064256047534682813000521660826712072550224053846116678051721967290546346148646570759377817181239129949355015622577895955763312468825022804133631613094339488612938740861675013954217231407336828475721650272362424704104340537078666757833015401486155034831329553782769183535091390532546825410114390980834453083380047560660962674193994197947409704849337435089703298798053874282323766493310628435010298721774060517421502425570049500271513691625959289710349615915380671972732729128841902240594375484624162520412699529418614226222793825871080518598752017608262018611706386585964753389730491102034902442027771471184807914225654762776518625544920464178403181382636689546991583941989736231123985849537442869657960999425625820264847899627163016814593716617603152858726548943624858087897166499231550020206412297135628475751445909782690824472595787701565996614103837811067320054270774622652300554128086853920197709749688016278400215906256977817968585308794905865185815088144605206696084529162463001133462754135204076482541712615408299821840333103597629845413740386359925562034188801960470763275450489941400250651559554458837377129594483232984654343901815799644628959010688377902906849778781160643664621377511887703091876943745757161275530868155968432533741687542359318409518810830768535834557802355299810594422018980339607877444283726531148290393671997739136145666941990675081426961350705606520928859922691051438730182744575545970783333001937522018808973022347817270079166326669431966448486641237716521706725300881899652340580244121157228119986163799343338019322941872619519257599671258253852421620272522713399428513673120053123650784988915107123444801281799644956553209275299974986512712036049627223520906022220628490779094409849388771212128870983210483893992720046770522749740704926718977512400285926793384601228797814584069018304102551557614619009707041259148478659332223497572605119216659688353584935594717657235097976485936803160630912470787332603453148936617121340607579223048843039500015572625073928483371018844691678199004094549232662303893634493025367997128023521389820642370984328192435411832570863741703233146354435640733637118596884720308927191648785986109011154977829818322415130953254635935924378202984877551777773848612774452406525897221896811727207379771870655552418519854976581103411059094676301105395305564195554228206039562375245694348535359310399213941480903929674085535227286890523800793418859639231257896866459186003270670293439387865712646524320231321786947422804032590121663245155084351853690732703212111089757105842751102639613187807574606778025101721971419847477467204887375126089591498921294028989958824473405617832307792242907829130895838278653695106135723874570046739970874502392577102765979761599569405292565735266952992602390005941263307121087964869035392655885932779483253644286981962076263955445356190894494129314922494835397763139244891782428009592768483945493370297772099506927765404932216909627938035669130406163564323779139964678777226619283572523238327161834381081555648837770991350084507693454332213603374436053087381457619980504682692792864044810137629394653695845352717095353996851522506242502313512482076104355877572822711085938481027711845673079550158163900963719797505870614838162985870656796997831338709558942993247516804127728370724578764031037126605288933188084590711505454467622279830722999873380181900879285204036745700555099663127349054113269189537808029549541023021297430332073109700768978491341760962143275410244672044568576186983613798367373403845882373408424435122241817219247405604378675628100401578943074691161405864315483155350337263237299351351981038835043705899942418011788720804426210050460191068096198642383459184455543809894142748284916814771006501205835484524884357170782877359751392067783660850503815990101415363871433792179441360329272696228144102082809553913947748516980010052317568022883469120768428034584801766183954324089881298999616241377198412543287259996788983020952831066284987434468672683843954203156973162085341041125020033921698241784443318764578002137408748687790039530378967528871606253333357236258879101400485917373779128386267334782921555081392309488519963996729794981455622716587733717907090042816842365168537407747584071633268539142237467014466767711888378298017358810938848334094356627205011062288365597669140460482108099790417789264008844146398206920607433923837546210142104909733540600905371997866301677990932363470244987421609774092449442723104778776826610894625164502870032920480859383850445504260636117428130829180195440800945193987530022211884961978979564697324020576473852497106820964326311487173954887035322935791743763933739597275282021838088139502225488790362762245543287006738325737056683545269626635562652151187384259081146815292456523921921324183869402479370154438064330849722566321986566987290314980239748594598118868875442851782786067346335083782508862204841930290608697428115535385066714014973257561518076919413915851017279620471288679208116383763059273310274971791864225177667599473367534020156988756460995074198856449724882550420714992815696937765952418806378946915905621799865790796419520801929475342544890559255980147828063724021061915092069997210511914850043148240051259619340614072827488366141654776761540526189429693307869242083231929762694965661776601556366819869226733339870581935774210494300296166607589366053078376584559470249793467250274759324206647664449631282465754806502745981770368689945427631128293670304170547868478398621978972521345829995037345795988704594653167094804017709425886913918014664019563275528975495654263937126672184125830742476576297558966627126610611496175048791027629185742778899664869216188957022010630691447917892868892187317981051848945908069208525499224573216956124179825854553846090299026683920375550699423587612284348379461706869896846754925738243898862512718824012972902931296801436176437404251720877047912701751684630115576704471229729815748191117304627114674858504554570612144707421909629749050269530048338258399007007478577649366238184598279747667466450424328919332904123166823898005462533399979011871981924819943686734439541290777694366689849891622551887991171630376951490101760642494526826134759655427710074364643007815402853639343615610562367249009227679202986219319830300026740888318011950166053696770002939824111538988457359869133598723573149086185146133663779635927830886372985981303602404428970970493630893598805678653175643227607225965621189550675601843081571745528945618648626434675524814259174076263257835800837063692444860489635603444938030190723976612313863935513903307447924359592974175765016725558370613682684491304916729636337645983628598314559703977202103180287521405981066330648499389199080984794816756045121726316673068338473685362467953348001564257625649141291875902401846132141334046042140770884135165413717921375101664695842412848856681425382519551071428086114868355567339865165177071852705474767225525488104972760812366138916226560791700641216487742330122277409489876090810105662568528551868427333087780406804111238889444531481530376161104042092864237070690409402080014083352095559584515368601737110617042215566793664024305673941329057417199660328908476978520492697091734673231984204892550827369704965333675414299290094078667534377454444899747802164275011695530944610034250677808226299182592373706183820496438069973409842940230563772769532127904416037238128840854242859291593117291905692963865942151558221103224978063107372680916648173173527886184160739618824264986460041111105521776958011082697037130179077676029928691804673962273438116653790331650154515084665795982739507492836986600627044097794978586690494790874757253589126712660445666440690918490611948898969231407928698898887393905494744821867149867263440800264655567583231289516041929159211208989557986553664390398951355790048681441683631608992590693428284515215620709940439859316394829781773194795844672485605335706333613730277263553889215040579173751577536748853020720734481961667910186598285587916780332491256081180914448421282802378610247581172302173525482522437310151438295827339272731921920311398704806464328512482279962774776849680350950357073512143696449327259710802010165523437351302692730141891266819424480244625247682007399864637438733755000534488566009029827669239786092553547680918601641964298686728669032121464735170696944284220422869021093383184806005131392733521942156912159209037020478668883747502325979138022696522087825665898216280406296022211184216843342674256478576810188082175880121607532639972936411729503767566355753799017967818167466132896723197255845524044708389605809223137404117310306043638483130375431300052301922728296981380968803102203493294297470045040700540469098966088407626906928553394747016003243677734405228373293720909212588352374393597563415760211115430082358092759994846775999176335805549233864755075219046196878283816477317928619052864074912156069274729182511490155761307082564942230136632041241224944114434725201181173648505314543147521845638413330054593848394822226391641224243689714994662885223893418535247967310657348744109289822655388706335275038421412936117516625646176316139505526290026221583916813947535513040971139342966571055682492231956895369578580677632725036186866929589925932209840186597895985648802720201054653593811051118784540541608763012798975129610269673832830164296576901065179111364706770165691743714343803161295579180316469773963060608435093633784839227050568673053602624228340333029026993225965770017520945481375757015356767621015547696297243542817212367955070583350993196600194258642739877882346093809877134761666754364330678079862045914371329107692873278608909857790212398372694192225791124387217116693151995774504028666725788689405111085111694524572976037474130603226314017979436726804892679474266622983660035334336783437626555639373486922682529142177086180264242096741807301861931998526429000917188129520853533064410486243366748028336961998045604011504211495118404415051344311655727548496229995096141625359782838681261628812917279194410156703480419123410869233476962966562514017677602538773868789142254918653299689562788518276608338404325442029831162010584050889092548031301964642448181514656386636684992875930588300454727840092533673631791425716717115281936739390847161560447721694063734887952010411086979831880866786154783557169186856667151031304679974203133966314157484184714704544242236889517085717965484164918400744310066850938246301933485333242425525984108340432964859523643543162793519035529690352498450481059804163175268275962379943519844666590157987408406216272360647659310043798428773255731589696424011234354907926961687011835960278941412939024317655987829187767894214322298648919960227935939835328642270830836788998507481710763774695938142078489076917478493134769535153794111998958069769700435039433542999585612016408337575220491855626618292184836566827155066920233294261378632197660629732549197774750781409075239886295565995794843360637790487486582080631876817909516167900419361837517875421387464380355370023078585549947832680956037834632085939786136034821984198317564628093420174323799427687603713183198537260600970127939898210910049744629022475348077396560422118286347750286619328158910496280287224988815567391627700371125772421381635647460043443992556994224349534047361138640353827099902714729968402390966385235442199809482664189919716270859448382749879261007642009760424769729740240624106116881133530806099319239089012281843851659700941840328573560539693538415903975478350105709734643627187379054674789349205614015578972710417417390768732344032028525625094417926097283447313853002270303902238078063262960304689331881202753429994385795074857146042041583134667168841099438483672662095692945548476341133344801975896610538065389687994396216944849206236315626376853980176600602243580505258026283676579239966077214247927527239786356266202349939027146934210960228093328763906495264035956528184964886849696713762395684904251306205783596805810482207825998748324706202242496375963664976969482524151866152306474424324261050404999861527012323033693663620516219330173671908517338746185637404763104533355282693679887227930212750234986043705079553199819720502782293457043016588765850198705145800186274095537645771176683683195286842200726820387556850014798488220657424218955674428631539629718841271327727524054285102788539183466836209754238080463328133075174291152454300208791310133320647537741613446540862106017725548968983913116787659724770910520594546633188394510811335444344926643506161014007846377733424602939114220820882788238345215877736338522138608391404865524935238774402753573850604215637373373187915819028413935129751140734933732577200930329226025764613106111337646736752092965418156551390367978390685484878742073100939184977967137570362247955404616812236950863531980142538420248885924141919157390385423999665474484149630108472846596035907810628147991629588254154574415987706812177593412572181054839849634848291833619473546155934416816331280030616287727404924974418429807109884167621216190356900775510255282240379589365392322493644326593557045624632751607917001770666909679185000933376355354103924231165047068386873202203944617533264460759514117640904653015430041489135850432678484628624768666541987867640503146134219414927320030611946181458697832253918116092836496756081982459996894431615440714730084394755798191719237854075554398361581470444409361105720382610069052743749687692633260631776272633306432072587341566398506173997245266811380765847062507698648365091025536958325127787870449027094111294666548700327135887832559584860454533584729898011361971609898252024224603785970111017253602297752697568319896216348339658947765838544509732285219236803540341727429670889038084006520530657366555060688302113398795890718103116660878690065423794093871534185937080007244019119543873390873002911791188717018325650398308127846873400597256071121817070985169448518574372067295998136824878622748232706243217183259981774011890727891710429222957166689076518533713918024420788651031963209492009898855611514873306807873709968876337383975028397269641011079523919380857962905654018138209145790914973964241200841442385589046058786516865613021921211091040556283286101919311200969347764448828347815824860024285071066621483958164231915396315616355908064358184644568398962604900693907670709779773511011290351677728384726316331242481471784119259694802192774295592182764913094756458459739891808959516631035719379044426315602747063071084699818220579794942876980016622451164207810784720346847791075876030690091902317251529124312565502036122289120032268286963445174221661873556503291603879130086663562876190735923312916200567163207101562135884891044362473403323469085655936621406541880076378145174145330865489168812874306091140495669579300052164779061579252927558440748865572751361937789299193442087820303517991175339579964448952470304062621089960201023563922671252215632155329280896682465147224652023326196328501657827724010809473850175399067411636430045259966195169996135924465493230111016756296853560138219687815302934571859538073554731144031830890257981527041097081217366726228263794706686617375208244326521124051645459377049083031913333395490615706105743103945933395702958208198324018980839636291702207768682817813154461488304852599602221313166541375039681113143386609453570383309162151051315454089071430520004034406153757080465641574723389040914471055696700665804916333203021157746902250549070974357554790745312307237794738914375324578527709760599694810369467664961536049471576551337375959223853573367607516711527222500713045988475862658324987300726322895401548810798763096489018405324936219675173145243135111986215918883762978323276608707520270165656787127423386029999708544664561249127209316467663955603242917944331385474560216853227746696135848975719613744338618800002319964972491594894180538417305134409250022831895649720427210903072936903933554301300724775852713423427606258340855733280234765881861615821362026076701670335917171251798654188977890872004119129962085646384125522271178158085910010716142992193897350651360994520121561386650619789772090190431176670695955290684589407216981150197732386956781830452726058493265795723550593967223386683777389909225855435594797952093039231819452466902710415485168397881976692190933117400635745695592403078813263460405548064857753231729296395823603233624665857353399464068490783758405753774657531484838321512682513501913904385433294121798103181722307481145835001007003018774169987099867088799046011726943519400498124145890398610339578249231200385944703776767765227464601813390740791973616318972554179724355994695271022917676220156395882138552443604802701773169500116904871100466133852566688089062525768062854169009398781320807231308525513670463370122790989673720018680664364516987711974117746336524102878530802434865052769158562185926759066745665022031240378068827098324389970468916047188270161431888175809262693421950898873015133551301038324648928528397309758189240009839552008019279443785817780330855838541985980264099887310241988411966523368203365231788519445776013986686343762407732106170655638841047474922086127049551901928975080923930382681460960449423766123610793423568719735092132896199357746825933334196411475896517883634058906889820101064965652366603875135211715514819074130018596483046947160287113850504479848314724915099014263342163893406213873511859946822634373788528301762314031988553745979198570572870279221388504193431962921058398126894046738599627519261192093682641500715032777330722133983303591895844164464338560716814819156659615814049002258443350284388145958683665127630736319289604087865735222484759043495409066012415425355049375983934602879606961096706713686856643919498187963426515736159359537269496926600889331102727677353399022409517923075885173060501115824230420273016518758737592794746043307938176059097924416552903641964677777356515050041956419052925423844707758740238536149952985013520325475929425169378768612907836662634263774359361900805211034658548332127923231480326537443840364961306497737046232541121289525327164049572857660431878151826763515843374808548767449434541291636857287633546510287822460997694043555020731558869388868318296915502617312390749784474096485286768848928261606636719990156372228746110115709599386115096893169683845270872798688918400175320437178945263743725614225650812480382390315808817582595196691811454432734984003855744415765604372381909187468475610636090057985010640094786279118457383300139685258258191365763402331338942429260749532720576079055458306463566322741313926276316872036913367437629194671117593506605425880042996717158352705062179416230434253413654585692535712039908064421474217383401416633818846567990918606899858844794130420527815073502786586870485102070378858599139323727971187472253625373864959209608901478529465070753321566356222540623726632240987153902226161787162712699887754813339109319142064470564815318119279074332858743111153623477476352023194306340946970934235881265730194561219627595946023117047990024181504562712096777510269744247248845785706774086340977444810417746338886381665309940098403395341163245244939212971422363907544538374891074970909799275327127688821297075952962192418068557910684399482942992552393978052547917655190981024538175108281247805889526395033837441276747461480260178666113485564968509647145271151573245488372645550642327364987030238813459694159573315007778658620643471660500770894084059600239139498839482042654205334486795473446164246309898068609907050053737902886160393607680860064377421072665884147474091756753615719239547483484940803865235944930839707735468254056093957611378635494146824968399875962367259006520006109859268319008699977544153379288703949470899349687060181925962026073110729758838674796147360168934697733062336001497989166351338264099226231504492080351403476330462876237790605636686349791435599136971483315942781161287263539738985155170824017168095763581861864958297978327805011379558607686451642022160902201000707507727499514372843903139534990529448323236361859671185041242665405731848209854513154551456319323224058997431961297530935363864314101202858853265044703409473679349791111783575117598349948008114374560063184283138836928203489897055208892369057924713409404345582628141114766023534033034371835250142182286241993397265871382732791051173364678349602088595369025534289518322704496359694243998912728972962673797167458703956471080513281614354981989822692282893786802489273233686245681491381776824599147148049223439317450316785798115259752284620968175715016679077698602522299980059718327661222865626112905363548646283880236347099200685393422066226473012418791412396641041529709494333789737050844765255427821666654306017545610126350785333246720774202279141396750882422854869271900518052206311816716809499026071345636352620221146846429327985457671695901774222179562821027883666623882791329560999274246100011817719120009115172480303620363170624472076037915526743538194014941321235867074472197685524423319364964541426151132270562780803186078765460605906884111288918735114472179248051978102779364829324980632622320669188629734372202138886311818987818565319913552785575432369299862963792073643488097512947166535560097845015147149953399844508698929175027514504939317300683097924218875218456604650124946425201584110118721929444680798229995897615421302024115348337195459361263350857216103727725191996983842954588695440325735295596215542987401981233753969400691621118809111824975642819472596594558451882395831996047183798527836823451644539546828620381607796066266396120494286139261538751579099877965102660856324081356539541056519143454363035789250231171440398369064256991577472945706090609499536453952033124085689483230088858508483105869808187262990520564275290162068640894056250032522777323203951375794703119475802626871613302349129951598934657145410707510143485237942877641748606888563331895378702329045927914148785294180245237372957859148802965024245829750409966461058744869719791367915380232816224055886281698090410058452397604704871360926885366040658333714106673547943138650722349980806765992112140219148833266965415442294249021850078795683069713918510739656201500731371070649010758052061687488009597648846546256216119077641430391366114994548375850339080458076418739616373511228331116615008962043690500237778187106445922283041838509190098924179941368942403461773170392739880831302160681254603471905499054929506774628252193070151494636386014829933077802472546293935620039418804031460000776222229339295617981015491515090043297920219490151012703962001651585400703803232178099484332868463929429973085567771221637812256344073793874831549290699955806132102331950271132632518660417211861351864367940496806100712353034640450388309221277329378737107441695877030776337701275394063055694684811515374384221609175430041227306972112258765243444754793668851659049057939858390880413293001230186931549848999644541155365811131811599928725136531530782861608398669631554937596807121880713022314143958336760563255298952141827472440260171794400055447676277386209471746686406478337906051803370814038583697437009328766931918133119766937038989878460996586027791799006506769388166212679800214500825517455462329075897140737261008293832629652685288192180487173713183217541313376441767022740791003822730871919682002191281011633684933862392766677038360755633470534875610653658419229323078084878937966168869210314263802945736378567632823068567150718680259323688309561059081094244379309002841160354582143467617004164173903118865763261796923504098722757051652032635900037851824243182116390876823515052397304627760225885255622134650222555341277309876412080112117852740554190092928800647883098140451660383855745418609069516467205498058490246441915734255373149278579950462308603381266432246286782518942609722652445234463028878489698836953363575567177521827698062283561986749781847709133296813199580715969206660432469146726502021668436831590887837597006152639949183688387250388179203042948416135724338258130947031860541717445334791627152866088001727827371992562333946623179314573309417502471587786215612723044403468420592151060045264181280670923183913443638143132510530689748310044092791292226270808495593508303335298947964431985605406468790291724774744938481391786946270062461543834713426264846061490668989905807365162810126045257483460994768113881479247769784607084586194511882731332726457563203284848719574392438888751707881798712746524362521203882118300568066599369908664488098759174646532344456440816297561428787136554860363226831819430389089813168871008213780469485923564673712572514971494527909890042143886854578608768300421309719862287459614255010063546184161561658476851500776970147011596729996181736745318204094143498262805756270127470773326025017989492122150028741675324141960498636393205394007072930029130609014552686001969122157003279707818876540284881065399845796950202101151546991088040228151650003147478240850835063492413426837232185445248957660333209447888219921886487822949480085222062793248212830569934911805624062865459489071259479842814703706316130469487073280829775540899257516338405177836588831455290583648149226639823124329979128890561406914930834494906777090829420708485948160469871333732358473652175919669310130455855399327213401355428791724050352618069897449696646002465638686219420240752836118481998752485155589310860111356764719176724511289220784684466514446913078503361471137303916801595462558042145696074377093656509946090896473376037965544188238321580592809321009661477088082292225199431252960767437695865627921446722475647795260628067935905608753443921035619551464093929133415982853611934801048022854417953738721051853509338211763721334575147731994676176768555431690153237062706184638004822701145148917228250872921759245500127200985640862272462645356539698974179782302804993069995592176985743276245479906575095293640916897189597317539823558330098969243689268605968892627034437570696170572896070077572073590292106129815475599782948383451099525744017483129139632721984166715696781108995783580717417757413891070968164058038557319042606036946757957811701990843943173015800286317383554087416852046597051119210401287478328145035094698892257198667696528418842964904624015706122567372056043112021939652051158252072774532890148723333431061483134891978274542546728662850381297780767703289647830882272638764444202470338838564636710641791657711401257872029855327477914783536086513647401655716371389764507925373827801326531582307986253051069843841358838238153774274435515043470609439982833044269457151282585006513420156209312596377528513895871044362798765226657976362915063785236374070937664363965917026974509131627668494468779482469126217026680334404261604121321356716311775002013279129862089782920721475639152610487563131165103410217085166729263273916581777034725609966124447674576467371580312308626984284351572395191595073759332616467366642978096340893149515011907329814226665720522418725916713269121063493341262253464590300370511553577893778973567050066009560455988234754100814657011223228458752467168081702646143902433367976759182746693840847735067630424488235418327974267387658050546765235588220974263562252734611085459969763262958375869962532795973673261839491029707850256961284127153466787409220891073539368290604134754355950206559251350136227801601654640837981338871273979336599912564612717125973061179351051649697428365550740451802601633870283839623995981418878962175412319820725817153369610098348903480588954077471896273653843437979501725331421568796697351176849775045044699632365546220816513891864171740738324765279253864344780917298164798025228528351550194160803927547546217240340307844353695470992350320716391616911915994680392866808908017676158240364383838270381440635958639175454685376310357242084162680304021373670633751537883353934056749811887076998256538652923831904881556105409972948432033761321090978111585844747659103122499882639503890048985387453201426824454153222076907165967747853111277224705687786888876496715237614445421037838684444294401062535394921545508240126531170221128220258071256375860360600391013670457138075673764227069294206036552483808245695659300850901208052034384747721192155350607594001785191861312100969983860243688230769697518712920835564608089696161223131734201631663429449446217434871766031014310782857783558449120662796087175876859998953202045184761538038182553367683205982737888706051652982396562778939687665342476544289135070993787217918750274618842972754287231108207996917483167660928351144313941349231476545878148870970220185252163892373260305015753386287900336759092858628578543013205843647686500747186986696237856666384387699089429686800753489149049960445425521777189277299376509195014627488190853868680493122606561025894489921523942006764479565251948513347002581396835475985313815996977034183341061275057972032940783374961272626526291921127595530449263543111298001081328150129138687023453796908181130164941538191056782316082473575395798793677815907062479611794073949027071633562862545518021550998603002897384350171920405001454145567933255124727557519916830109814928851736508427535879836273865294470040120326912776825544952547437147945755458854281800621238681178800627809719901994742071505705006148192530464041532234622032500725268752228606969542429989834528406781627686596498954061127894777031088601012078644686739258429011309438624845157902534034030903670261609452166653297678994084716744223648715932088212476408049622934634871570501171971303269054436446208235562396526232930335510366065665689381717364428646811232762569400081372944273412745596871964115807367542896494592166357084780766853004050432692394829511915861065434492765075200587931135630469638381614231825992301660315165356249420296907293279240108597481865080510008375088388861458329079738037224458301355624143687227450717668585674174952892872729767888746929190917218218695215684434986526241491246675678844913347345960616277030387516156039551350547972601989242293932029306920236931447825955682433524051624703330037962979852836260983289930342280603688466013606819225499488244406649635986659509956056358303943606012902156034229892858683545902034703709115461559211077296252376164177393537619804779279740719113626731816183307123440180099236139935230973195410755556179992036397994843892541984976959477403671160845013217997339291469990965277941370040629365507246801155817695834857701180375964983130934023517129147562132458156208209962430380086220011428854180011671286568696159264072754359292222833458784761340993253364360352365467357146056508498271673429211487534082681610110636380677803310545289783088168226624804066231929404151628227071505562737366987078652065533341526700199282189260339146275447618611082226358696681169457822700712023267270434148783607152194246402943366121473444452357705976847851660383741790370250003809658396539920956648447375654913938465467790433662083606545197936593689890860837684566646500896592627856885289464207356157061868223874400952429426554767933797105773571728798404219022323948703187711419614645043371883208547204604446682602836748879947890376617068207804091000698697694833193139109205679492488508687550398787568575571193588635416926200134187577503986263228846751796573352596809232283571125729989336642493461995917382808359671346133932147021949478583580451419973860355282781110342182867998509288944231074745469377147226741749422160314635902412490911584215487748640275799916011184356888473141413487889226730156845508918236401582891497212294192753881225112080859484435612265019994806192591066072144591156952818492562909492389613878037474929887394062315947318848526352418590469036107022996062927068024255238311651196896689026183136389986004096908912290989357070639626019625946891334726256453998414089512349840123518608997680749144844721316494622354078911810508973200667167315761824731009078602184486238928470496692158714199576593742461952019129680444426977754431778087707255151881646250089569785438430664505243465252411381277103611684694896149798260133860789364502480082929305554539327185514644737705247522830937610876040708664467581863328863511766943697966288307852219011496326047289686482353355235690240119949311474541247814537132677923677634514374980094545396439044021653020737034173741011839439879667442178995908807026787311359443528611851833522644656888721677759766795723762488632800746747092944218632722137461963319018012378622766306266119834315902989961970569365075915670359801618981171733047159570869931434627455542524236211721606964274786239253708402676987799181399646787472513309463060181761341126658052210228024510668561166163866788462118169069348075855451615334265590336995368873458630983310183042755959424131005693370236096691364452838445662681553472624140564263917043570469375924607976581698452903595223044334435368679177735222773852531408291265273472325811708597739199436959231563371561437597779298963271835146305897985182026051003516829392262755503589856517697746835310610328512488903053404907542757565382934133682120410755784170746276570966155718168334319426540612079245710125675780726427632127102250334578862254315782250905624397761182163759995471668157925576294428053891070649994772434023905654923105985327173858835981276236044638067533115977829788895974782935538054844392636909926287407807984991742937607687545808143836908940652629361710597656255816293860686556359775588947924151069125444177056706372187065176383666346817611954511079072818127933166262083557065945163937359545791553053644014603620673413485919149504695871056729649239372777611208861264468284092979120307189055424692146699245793676624138261363573558502773806181125676611389628364170119504974186554937288178576026981013037074792178488413843574448130585665324170078280100199619954562322601794203122617389920577607374635706588299806189811112366733903849526183609016613189949322588987490095732541838126879987258471995416093801122224717199671705891749096901479571812664392256951852724017740231581098381977720721754409976300531903637766600073476744697406027995479675503203446614768912221000714213561940234630525976013029355135961992241012530541916966885264589008716579174026688808029246471505030270816912378642845733335031294553382073742467529669373058435180655653583778541024452153595282578945110113961981674035699917467025084147012892174249404677174242366830164859627564566991470374194367208573145548429861580720730749842328113530732887677965866389555137206528490473375430514870256613802882423110171991438706299144355323747238508277755519081107259863504815822644070791769272127529930692372423873739703644157456285857315486273007351139035758412825515873282781524424360228468805128956435989953945865149823717851760384594349196596464478388563896752404319953623383767193499796397337341366431454884118216739903956378816095162841171723934864269119543567720429853221626049388597731820731280196938339564761349320447900859632309441959397653554226148506925525046252734721923513164235951322867175884026941147519960819489552856160015108666381108316891764040883762034635656290290017015381182938658124147511084919587443781148742472186462809477093270182466419718071697319563349579325285158792185213286403105787763894063818616926891897480018988628241749106269549193175194700234518815976292410165273363376806465650546872108729664036281034437022426956483338268972393488113500931146158073236656870993041448042496525923328881987023962961147826740328096756750814404611982309777427718585407536337781668501471419097935486877198729533940032368452195445488882265130826831485258277077048171846306007011542575801339578529563724695511598726049057446745492242895118907278829608424660357980032498909610576098509726598868792127602534103132417489882977677861452510569119789992060165347179117251558909268157788357388186926516166588622592902899513282819841969774521427090014861479774464221589501772121816455795758646281862013870051793592764754199891386141587503640477538660558469116038745835973641864572870988606895708016453570557465234530927221049771635704140890062263444701150613761370458460089566844096335988429721492669843924505202275192309619845747258906939191515933183456422215046063283155578234593010297648569102042516536631017490237708325548723298696219662425055683564256756799577542756800859780313133790389125725380930777231238815946833216171695150415210396291782264076859828818237721830305220539317951189855808091559767411815251235106168349160650115228346064060493385593673461729805440517824189458827194848258844624742263919020287597397030685089915895680838020041911984248910609030385134038080699509064219083698647094874918501239034741244775949787720682247791852873906309337564752174924691091455266417524809647356248737424979841883658212032097421239295195982156889785019650460754543687964440209922207150953234274981072846288299704669733661164389435847929625118765163896137815432513456048270267576938013763138817068673714394375430467909981836077954550010650186616008925827713419233076735219125128152119864742139265738949203038674470908791999745000456097209455195432124313492320401296437094180125824094208651878962457630371334817138235541864192029091093283513015740814348990537120896105480554226745097378028139416762986385341845149720889664847870201859954027731015170849871786700864380692706464523281965202312079022006401545164457722034987799286157993555622837970239525305972261451091608590577030451386864054364159385726039320703941627334540098307661797280490519333032909321517827008144666520177644409092168371150388863164453455155530040170799809356316141492082597586003458867389358089567800372251237376028628141139798542185234447843923909013547923407996729074971179164731547879680089111844348434918829901247084178728503078570879707389218726019248577953653547581616899399132832187030437898526958245180883774312759980428510101669199923149901684243353775008856189800022340260747192129910913990668940518916173250271563498698614666339123479854874501399491464294832551960016973842548144022500889803328793673878031516580739091125909097957552569689075032376862117654607672608868147341897338638229116008255484510099368521562616359279964932674897791815261834748171223474534777304233618996450518105890415540848244914574391560557274817557430945989653903778108069416095702793683740841212717469356528479823618973522904290443433569405852426538199583999718067378287647277891039656320903791845789612405759933754544764094627199599747434709881810418144205520272101511244598200850616111501903784727286045983087020891273368922351730166554790508854930457201342252181600260479550875460220251252609736359345315711486533592490898481548109596782115359073330254966070131756331584600966850200084367573339372934016784118948274715553688646140597425240988226098234410530574782665410412370108295372723164450457088068052802343141576645987261020682632155823325057129683449974951473650612295237557345308385903919673913497401546433639634164427885276713472904531721156651122135986021888468414570367778920222899533168620920563029423503927185488714219621850863163228242164831667139104621354896552571093875043067959767351187709221841257230159384153492632615953951733134962648129619559398864234234918536269334435309257651158054593234732067348799099079958494949836317589837071140007666612326676413292987783304625563547155092428042688271868851824754462504335651328493754516477133135456793411920691182136318491085954048772334157596152987872517748456834902469229314906537600276014156104247994309273647548135814915830936980211003790151281037205519507540961876589065751001513694988490085067794585061488099600905040830387767304876081743264974790362395698339717377883466474225785842639629251984872844339130310583698603816322964448635513163476749901251034647092825788621109544485589634727439251847952914691187017512704161940577364368414224553954729956388512544828995788074732993045192398734482907022356489967131585972320469475790550892971579021002214501438647114528985963690875379956196010966737782449215621785684892869957322300372123324229386887373648458119379982378285587134588653024925135733486862886605633538324595602674551543795280507323118608263030073241104455328649863422814870501645513671861222975949476557131645723731825496062770761830500409338156775151518583184451355453797326728184977550595986419323434026086063969148081900106832491664222345173372293746351294643414929771474028240070795288056894937328334759599848161617683136489287921501613152633022450269345516309845151328097192042094877679454738219062179173863246917389833919583179930456900360350465303076094735033689529570904124275952093171910161760323450251680157287735782046807403983384341268043682828227716051412435578118402249542116587784733526082545723293877956464788892217965233693572578444245908303827265808976387048136812099202961245857646838382647874946975944536873546201088443458544865610257941742376917681612150010180976914954956072957900229176849603864225199209952424582927431333129866241389479699673613629829830175960249660073977468462648147604297020765570516239864857328883524985102398796846370390026365531800275465974994147396250192034579792052309510263457041056047249257125742010207272660204627252286672482431738307817477232297165867759212031999531667289250893297604144764900281357800026955099558980547672601363316251709369013048647843130526868444417076696739346547862628345601018178032088799021327055407274804066884099428445568500450910928519415007653074568926507589556189041515279290912180449224487648777142643002907587818229482208498782099613264624400885188320961308299343032151236748347237494093528629682137217876712383367219539123843708778481115872132189078395312120621023223383374700056450931142692442246424778462351061530136546472440977412793112261395195626118447250938047964218272182888235116737376985144435795022215320880919350519091547965801620970439283019988005994739531907292789122396019915477785536362710958374114511739999408373614565427487571355866896650858684303003925135906006168850987377783124168111861487184569257087302307121839646660943390530906276073224013099255497248761505774034105038179665845601914173247953359505742953604223486086757916386772626998599262838254934080971411289042721358120508663823901159165912942352265755785309603812160075336316003651096907952307577685972407548120131570669277076752774985773457950183484767664680465786853333878881815399823011095622468847196037896798448098358089502700411627388039882460030509152371030760519093672626286102268850700743021280251165538040455689464751747732061292492901621208702394090077810720114792597880511302909489254313070665469466450556035242429450411380821953094907392098999144159152233685003376013037077640467825165522638242080806268197845044977738079691820355083766742533363916618288482962137860300284047360318833585902295465229788473497077324676831907640442006924309017500348761621988339190516431257146751899895520236021906621803898642773766226034283437130891229749870368755709718148569720016696249127548763527994064858333649749408838753767450193144066816812780165281678937871659359687982497808826049859696570803062827368561682810468651318254740848542178821435115527534328741328926827748965784418226902569576807796308672974837042186767848740198581300974422140368131707826598803963919867867091245455648610192699388315532224197678541331409128301154796533723761103175256072904735807695317561273450587758866524658992340431940290786083529060120762319377825717635126197814891271396828944801936502599422172003321345008401418669102062897917012637291651867629734429736407852123569995942248359339333451164975939611954919723365209514833074511769819442888052929374615229456982231100508261979118539596635526264167351068673573402642801221441680347044211421482801475330596998012681917198955244663375998611291969703390216686265878869745976294329263262039273736553457687455225793029881037316505268733927338281980742867911788671535893892943434909605666762308234414528025930620381530985594721454807126887259156767485385017358493884639282322998366134044681143176075498818314783722185857482106336049150187598183529558541172101998328858851692848893287627703326204327951702449948772709580038893794834649160909024804838884673777179927795752584403102459572550657390022567733322630917791063409364116761539362634776228556523569231249101351102160541573389337344921880432287182958104005788346623121837398828694559034949407757216896796526332116089941452562968586176746081728365545801262801255823679185082788090310943427490875681710834819308252775367364602757275384920257801448989820107024027532266030547314659268719390920539998665813397246139245115264623637192824682210567963813739801222019819949287689409325047862797990009257143525995391716913296712716657519873629495051435771806764395392519708447209245459026187177335318629743879943797293238213820768280286053850135339596351739934102067353915548874155282373018041905226264159768614630049129525076906177674280349600288412797440753352025723280548199564618567128111261559526552634750721539086584845734944874092346455754143839796403653054650722990119184841283436023735445325427107741706678100707237308963308571939452353791631344970358192942634367254958619423489293214173422805132225176289658736205824411670537261140634150347294729959546906859905508244693288336441481546265454627593226513464143447041156758858196071391000523127213548114311753381162464291793788274241779641514004718498198796157565271761323072043749533573293336798395791620883811218326431404178224595097424128659809522955054273963440185467611834671095705627923448268144579267447012916535632951988244165978004202920731205191376449905365196975513842150946374203843592769094727923810892082278542157377652560689896248753092730740356815369268416516820236684629993938830791065355646667314537056229028651940459431466879988532797773429788770510098094001602200814068391606077916659526805694298931404319823551944476558927261887261572141223960050601580682209968345241905206457298511258585921997348826602325409393127185421263547485253481955910188022955528051322232663053380427969376045259531156348833453464826058154046596471633383644851536191156323455737507132584014127176121817485047336771704222200656286439219013540613241972348235650353622282842755803100467949520397263027084898611105661034056808738971727727547142468056934178974782484112314214840488990001215452739585557709315196775231441920498032448938656995344542727059867067309025047889382515264400972942940780336719522567009254982937814833920493130285446235942425625544791046451194356082652796080482270116462164546372265296143764524326876299030376163996898160330320950350568346802731860393855802152796976225723832733413803726139077152228019825084727978390267582373476188993991821509618018788536472045427318923443463161174140434767831009693461997744197337361237175270243715111164346793437247254059461503946302468986155164666743935329887146301885588372865922306412457050005956012006980193703246375671916183053631223136408154892461915409890360966332543522869795238401640130435110855167329013982985428620730795250739221224179892692627468481987115281934328772010511309519114177873471771005595635205119564958827517715607179149224786609877192234963940804520923825666745861673799778933053067985921828618294546606364689401097045047578664899330432343877549989895686118163683954322855221801740851951726719410175328805937355518076015982611672900093063520374819654190670381758452181355474808672106222236678476827229958058222155456331498008237514280635607238366105145014851034496950644019884238848152690690455561902098312880824343390220691189247237397482986993268505298434826802511073390640693626466725236663899406676705914746883580445378593627309515941110974959303909389924818886623039300829269768943477034393598899604420107117994219969188790353065157816184028146074548985250588286614939351437915698522208302213804487711128488006850495082633088413890787440728568976491024512455612588776764728154856102345733772995477960703500562723946817045328077589989276058701753461890774440442593090524452796645550338512986749765912063319460991530789663304846085449640312823869886235549027793837089968189479236338139428503531195691854511795723732542861676744140398838801037102991244425596371886219029773025466675272583424551389210861007962063850576912641600705954224862256164046781218534507601018381494226877611440106026674341191296598196762917400845503266942345668759506971433894564803877355871390682134026538268376648324936026452276749082682509002614137144251253646419091339634543856052770624505174393732044676311650748363264442056169257176070498019138542034267816172688822784333415891340846544510899775356644648865879917397866001716094139122290462120729842077956930492954127911659549838023913615963370918764011774616460620286495467909642583375396483465112830820130905791426342990020603641962755097467654608956668054386766972708580708672927517326013770803140146332203363034644433977981292857739456583442579054489985063899334657141185963927723229016484114589816889187078800258438913421103869076116878704048688058611565828435303199393028995398778718329800130314821186707741042839605127674673774520444037358521014610464932184330216370891172624129790282245961089084235470720052989264132012899504538605087639234822229836469214547617274823789057515718666955206753071993883580550952049989692427085000443859717215638402341421442452356753103119511747386910262004190095435692680650006321604852361124098539963371996147699150705789051438528369732045793452588262960320540631614627871023038017336393748979541298286751240250609109445589374929656186678673824933145261411214368952258921314441874243291958776684186912192009999515129276036109228560601660659232740142260216808998047598722607756796473020289653032507859442169714310834854789694671170427929770212419314572236059656946091485250489430606651333806937853715819278810990423274887005723367371720291305918757184164416945013391442230699701258179917402837773032474935313683780632613871216516803926942048985388910448984341319850219179587854396588570018132764887859715657323997874412842813749467516767923193495459983125670123589389059969090243987397243436168351134797493129055130151326405835955464727045263008444727106671922427105595257023943416079474464361216425412137287778427520400355941143799485871180178987626733044971119992130628363105710718396401353097645511388892395107251505691485437636796088874994473378781415158143267437325036089693674635451840105773529323298748993228764953876410897027883035287296145661751484746860985902613921663253781868495195180721135358949870364635217523538550082880987469314249072679330358900498234375140132786796231067205439862755354260262407828167244120773297008487801038308557578106165934430984407627191540012837769382398630700923974444658281856712397153046967979950184325025920434380807293434357492652807715494987829184644680938327136736049382510461656881115659757863786009617920906807141351824233247363032176721554582609555799644604867713900118128776715348896693500179995209487243246386451313454078980020648885755880710804274632204972836458520744665352267258481595462638730640873040274856799445723289083867315054747156282209721846221493533473565034841593023369756358197616275364245621454159225588471262170898880448219348338860507113927874444110607130894182387234398723969357046727115450491923175156549881141607622113289019545317747901273827596582840839181116889162643451222705401971857197630414828738142256005962770198181126195452095844265776841926347808114898845709260405355671882924600778628437515266685005266924672877769882806385547007260669776229466283513895291086869844258008460330692790136254770068132977517926027420315470886828553676615349745251559052260733066033689857315877520378435033262687651444248068785862758021763155657833242587663628622732433555095713365785444309973722056059746565144653273559461953635349432303534424774540139494413212301362646960445825810285188301596235714067043968178879146928966832923688651490600115896686727408125770291249333623168856730785310237287034188686628180980897830031737567608788958907126072580449392411789003398946406665763341305639503683794135587179124849319598087173849691817713495384470735949127250309502332981466188677007789119295993919090239824953515988755213689935739013193593170273092842893085853262939358594927469746691078963649907009950455786284025876643161134161189566324026760875668797929798047301734936056458719973471794245230825045443278060279149793950856256622663736273001653694117186189298964617872849742871069114301259841951614587829214132852402941992882061500124111855124296063340843421882231639988037997812447920632225287741742111907108649189245211568780388906554116520369820282334703106025800660446512579153989850617911730734902018798958803651163744633934072854794989795915505176681165654757565176338835161775889353945004761116488470375233873521340019244080017075517401495422771052996530478968004972943856680557694518869579977660385873416657551160971424437071000174481131926316980869451110525707596045247927160388910084642020034030724731076773106714833820714342827417900198682784895495181061973066252648239994464960321806154739979337275292111825618156801193786298733332921459592904456957409531665886745084705280585810970729570322678700694145618881843340554362955516568138420778342467374738570765783915896875577611634374479459457194183806996749789155855201597392732894619741406255470687405012587157553903013888577905182554081863299288045554559467483430278012962466759668720904462544652680194835350174559628974135114298884158880434334765627889051563628613016406651536580792447721306151923804851653060209910120757150584110409451835251742343412043028165714932489914846874116119686901663897007363891919011644703841308553567086383040116628759613884629964584113144839100071234201733222483151036736240982599349343215620560506739064772480790346202132702438261583192660415841807626825098736415614116521457578069384560814387859614889806015535510549201156109389656592158442495131517028048950452816208209547730215146521926218533585255126031861479645828800888276030295570780560638538921576656185097809930548792158550404660244547262020125786924720413133029785137673273128422808828893943972897975266373147591909166654095761549225841591171553977074508825322168129257133778828937851572515781728275857409556513558507707690399336005720898846675913381291954701351222708474475140254846508206864477633244543367820850729349678197485045259211448811363423879941635426143964655077699268217142076980481573400620846969775477644276061396873176784521735463475650313821090771070403648185434210857563264780408151296992477185198610916976054334256470221223761599065745516133541108723363693864989109512323440413591263320410956060973084232725738742392737819520957824863638368990105068954284755692160007014170972305069668152853775873317465799812437821260458397336850194046149990803985622041353224017376941682738753974409816114811859719714631154177360214464626453354359837172459148065378781501353014557581330534577928729166402587088167471423443210018022587859074856027087063866740059352197679699073156324520131740549649226512299921361383426583583040400419047827889660008563426741603185102956794565318401545804377030781618900981348062970248126298362071582765110006991263031356021597011736185817031816903125848301856681374076307444490417359364188552285992548307573825525415891747275794460050335088618139624670319336898285548626121224531931430912813607795558094617992125873399087512048972125008244402538479948529903317013776803240297504076381249305526302459391268363601112589219573990817683666335778191035712913880187537945088145112014306605967609114390129953808987987363517057883924195285479010404612981427090669307249073387634506389659676027461281637673008906669208614287938597869199384758363661241134138559523740273113242712574595855636094546413199847201647376470331837467349317908838382883118381767870076216471005033711191263895434633987107142163845505924495535840537739460534951945857019318148899431361443278282913986085695796547791676268143799697989297194311970623446720639870764952457871416747368353395760305933187591775633444696491397680442298463961695323326071844341482478425169443084350155103093770159332511354530150369948575297086267205112072574701147484552796601680942442858889602015201656637266044646242069279616936002179856387268022509135428853925365673797202447623321174473913475356005585950841233565531077854223070995018947999146164571436738334843764569372076248216334261314456506305073416352168193093582101865374255748663371087794593074292710375773550169628404546708799085475502813673547514249443825305101452888765293170742417139968549529566607475443646622751173280725739260929931921284922638252374584624291111366687572904658272010371619723201648319780215216402368287808698787763239594122664215382464707769286889058761911032365612890516220373904056299985035892805921853510927427261007572179578771943807865767216951767439718700186271458372526628991227706765672753734081446254029054934820214717716545897561071251769336396070064728801968874016515914546752118332221074374992242046525810278302683971482654099418410081624258129666747409796513763071494415768130246486376426898731858592089263035323779207351432914937835145988053435963462208996323408260262650575097077532867496611869294697973204604913214635400291998511285890731522734000755639576290766959928087589977767196874044127135951400449232291624735234976564247076401493940314166988048109170266500222992884557646192655760270086778846161625314821120691364484740649885678089497711477183985884574355651937854153760209572238417168741611506398434853377487129914113574969474453431168091074127981687676242900411113888170573789933626836700680421746553255547286948991545364769992503132136747694992966459793869800272967063498064202200431191515491130905594154271310009989101051336796829562003359587426327162282039231191172690799773209636560979039633427776369081760275136495037796886092503343287759309375396199667688233920290815989068396612372051454871770779342102871322751929400232118382243462417553855495525334270991662282339734310622771662367344817701828117899776833706561391870252028410902327736167909815174458588807772166107193480301620177009906915480927364496244015560355357937277188488429416292959043266661750680517375792411004335674378669415251810127218541304320177162077356881545401455611342177143321565089116309631113948955633786401664943043389543931595045311623239920308050889742581559461207428996638218067031777320847823017610455525125589990730144259673988771807407210937283803500511443454160355898788261270455089236849264901276929893388290319824162368992641455570314001636203789932023307207060869900549538913639591875466954899237463690189535578668424935632451411505800924420635781722473702212171026559593715781093466219462760692732835927462876641232304990255005378274086017079429009860400658213220755272524493310961362326247691714475093780418812664426230993085777596166056478731656569996705469390194939215411681069201214603608715098582365335927900453218865022245130000943360557414835044747696902960016830435868561652995741357212973204284773229971337248006887330802169531842576957388049970185369453145015244009341249012262081524401123615311306990388030929187347104456350389097107431174157269743557262464948964403281682919462727583921948921680263699330520865765286683441947029560792680954612045937517533708424854322941978685284337399905967322597536157589231857160595747823450910201987103979195308148502381774290840872135046744625084386190817044427406390641215443205647978014271268436782716308786735590709192085062280747947797984146083236296367036340009810331592767070817882553844551733944707681168803804866163994021598513007381725599857947536514551204911577046393751721241127979695420884334294720179734957037144716591637381109728928056272975789025590681466700456206771612283348089696831700687705706714563353114360114759657841131435000799340041204163484683570380550235410471565275302845423910175260979134719472810530427785347345829492305496114480449482067948774370043503087593241042468286908213229993778203999353323483100626235916475557427233737615528819601583986479308609549373299675621905249466995478146009987277797222674518852472839587871447628827413666766560923454702722426650299319992529428621408559985773903385954625214295495046714508281962132633737586464856808041958283024086621908104963647917987584424044777997107833450643853999755935927252997922950372135376927622326291843659974156731149280307339050190152117884577214080937526273098143217431682894020591397457704151279065142183221771737886044963245863008298493259936471067042092067239154434432944946588548011585337458256247123947095701264702062953961068267963528450637484113309072963178584829117071703008848647722481792258547708030964480611158681545358900291154992111445193649548181596128815671837123162946993743896291274267593823722854483713683520221741876641652060795303790752561145856767264241432123306973943403424098069362720252291490631316189628934384965192471420262445934176909378972060979758414927918037231615695743189738760591708515647541128277661108726645067679850485694674268395810731233367691494115760854598848937766690114019074210978438237639128378280155209688829951923255512342014542441297737483493500062885191412938376129070318880922723163731329461956859139221437234528152758048649461893273845158173097319445751065978233232225289603259754587958847199592985204587439462500036375410781023707379759475747092522243458808016421454590355743983992797763078969933469357440858950957070511026702979404884890540560753412363551010972276683224850330648756268068662378010273064545474484130575064950859131549323597626336856217906331047211695801892545936394824809220144179969511134703471565254904376571947048529857422799353733187208743341357981435225701876150385898858071123272481626609693944123630193935373419783595077060430191530422703806126181642288036335836543438947569752593450860501448070145687353327574972979171920777307863962472390920922187786728114995375671300615971995171762198408775291487033250509363521506130968001227523654118410731022710140343843733451233502734140216231509473072034447935926253849633142913172551679401766006241872189091084496956964826280626749939714754597168056493324727554912380873544582502201423261163901590563053020282417132845650249769055541176623461329636352169699980101727836867629038627194919972964435437093418128155162950018496939493504657274042516572593349939972009922215458217771620021024047633651886203973901247850102745643119135666676280585204110040756714382414355338587646197007510526463371012619236466297894888589794964865110493702738771909213818621155557329004260684276037075152787553087532275507843755185090120828260096274155110610546748529583216778712863318942649440115108038727245439387035708702628494012025479066959799442287290684979163603194110417920690596158733763160131166557074313057554483966372642416823680519341060203457062395566568096300787365274108612529662768125264959900844376317882948300791751195854811064150786136943955255382395246658940360878325246954131503564392302018249866369865043626359196506140234656271796914615135157236231325841542769628221683268170826232238238698616387354484918621483389534441577566492541433917985142385040087965781432422428016058883614187069459974463505773460948660552531902700426576803827094616486931522962726073153550779403319422771075426766131378266390696943152301185147653623420161086873931043425849432311406717725669036409736344083905046300631999794970870801435834208041949048197943822293764593098151880900388690728142911531700242951129635405036292370054535003910167555974732695920970216695711290917003037579510753660340394706477097447364631187306192380022648480995480324247224370665082521242784324496931571327052135999889539534501588609511200759979896104875506729154157178523228634925855924400343031554960943861260188019493928445093586261311384516729642824434084491342746757547450611975873703227427400129178089319377171648949420080842271709654892365033523692407323336856480143699577608388418202993824519899896928154981932211487598567319616085611379663230336392641025754272934782973567879008953358760045928185884045512538605060842882197996651646634775780936299144076271284942906239697701592636922130368116788801824473441604219003824814189972063513404883968125298516561133088806218420259987264879929895065923005600787488204999897546270732626027108041434055364990507831146527588262778811629907547339009541159507197128626643308715809039399432315095007908647591755372046403844726606432462413117781641949269960646675077048535117098487920255062540214818808831175959187170743255358544162101965729598549044877209994840197380683299355286356509064685594964522241948031356315314649029919565647944513376959037650448963165453968400444577040419643739055266215042483871201665405629726088551227460497564253952118654235223159730349631786338647760802730411866703528048224455942496766527953415233763710822389525124266422654172090866292105062615792472222381256838854945651452942241114220537641017795814425859341588372526335410937207045461324192184251415851497313445557542933371272146909490241649966285453561448360269064960255527302302181877356252381324944112688179715693706673169682168757378612273492652314989835307072151386838119959861928238410202406956665586816506169769305271837071362708449925076858979401582469851918459036185151761186287511081484864140986103875295147053588536251293316604006649216323928954122523682355478073988822746661663360174318423734854436773819505097025991998825137538193527240200713391854160852492218519179581904242778943057741220063625366141157964649946574474580941105788342270757971407765068772972249029964164056212144742843552806407151493640672217637792515988711699817372705514350202478496121437340610993191506556208514938410604018833886866866429042815415283859669230080778262843424066474590339719800184950960563886066417447272702939834752180602333032876902504540877687989752973035107834298415673184181296391737122005253006677773795992968038837463870666337767190922728125351286799083280493977444123868885428196334433688388830716003864911864528389847320404806639089808632028354396919016568284583165926486708525794680160917024761140183230118262761745461018476443075026589704758987778966060408573966597263525937164299241037092902111411291576174251985481100107289963182482420641001269550070732614600823074956237299820510140091340661144500129469968027403410639177026688621532515253815360180364404799183934877093691566553469937116847794455888632902211473641070880752440948751908563831553084299460316600150265765737516845312536082394366738365283076507198115801889674934085396498904492156946254282297859881458023559944017878174600636383632646877181511141681649208324972602241735340843916184861419879442610377116375867588903147667143406286394431700694865135396903243879184394242460201674716754322466017962553343023371067979107277591672150244238318474421350822983913252255865206688941126047700392152925769409546317768638759476938840357540940222200945329838460132811896691065410092274468245434440153307567579615114056835679422026835592683019013897160421546000560471261203243415758941773576491708043383314324733420604781181297806454912444917168668811397854464892008888683137063867832993032969833154482051228838951091305211884156570758603421464548134859770470829367436523672461875362084004201689238138556837822372295600318815746343594832102744210905643792597763535236541888146883411186447622252516575243021744399167950919363900288278666691530249876603937675722861728394895692124717461898943720842291322595430625503724647504592399429972075482372318651836885839771412763133437696263363959220355141818847699292966617131512347284541402555418452515966550213962468247057896120890743212626813610306929415015639244776252949163366610960188329939581085245243217945486169569275481448707615221505022816950910721094362483801411799224076177330594252335366626074974182770383318026935062522687712291472666578997122681734566375800266612541740194279593982217941885278138937964601481605435088639795056376318666093605565742548408225048192795070623746495545943124523441663463788155029497014485483790285532178750251931972689039136815474456666880835741797891258391495431161135395821668019538790913297807395797138201990241012611887536101841482966023717365981874858423452347452169129712844568563684237366867056353656716095395164147212969120002707711100951917932950543563083428617636731350489386716883906372369954373188210585360263751515953484782448598123004006006418754463064850170191220421025690419244318617624239031985450431793010993422730420369181673162226492950411752313744515050496032558787895386491501333571960166641529312398173180193723581298587116702729603295023705579701610050540815857647700244103644553706649713002950413987221952187899250534285874462786915374438824410740130513570255511639793085714698732284417441013624544817780285203247137503693470676490705426410971662292465711095574969127129972077167056736755826696247535444327255956928310674147024329267489824170407497881100581789863525756082418578666477801542526095760134200788869223605708222291507239064424721648170275828857079575279492447953229605009658735487398273617185585522821301388098897280921015664589476289245364233752004245084780089814241517240577023566424165733013942872033483333211975181314137008525699122081717961053333208320218036678634454717570430546872899179620310517643050558271219815265618877622391811465701443429894493858346307905700946325823083154142134546092172446686001028955509408441357797315257435200887898894253095203287332646645348059679809530591779199896713496016966574579490107627313632392823977461314504385473257105678297377712590002935031519673251966478395388841085212010543212010212581737411710588090640470854910245979437995049243723650511352894074522417413152475312350023023130987682152461434684233857503484830251505783022525356462395984147810486204581222664120864064931659695948372982249779325416216478549081698598249503169080040053635489673222075105267650736340419765836901664313402550076700124817570143839723591506022587326649348722789846234415755169359181619340488440293212428002883074682038562895666729430819391583387177268427225402170913984588070377854219267381423471070178827481297203461057318418744612453380828794205392633731505980564344547455914188681474971706434267206113948736346469308773893950918163549081829624987073495554609581179789645653998727099726957417579364956074917829091320965689748873438413599078828995612887159145762669702735697666206426196821044755917184306798116833586370225056870976947584888455372422741320600349952101758288754747829458794469904052384075085803405905085071541923256577267160862328378844471070479734881520015770385409794773405417885660506311898591868965326731506979822594000318882779697237401430445658811673932934303361297635218120733521141435415440182169744831891139260493300415988227465616243554677952493386083341634465245618136667083345257114914140578380538161208019603620936558102149159631636922001426162694262822961800636280130514957739976764130345074373245697142021815455693356931846184456826250415973966119845000676574912537108688340320493840380650367722033580645855482167244742476929422468653188193749312825374478501570166298374933334120859898211307135944048126198758334142607144622257285215138495878960190955660628898315147582972946074701652908429009357604696526703002049120557176924151531961100402548147728660551772991910444739481462336902284707504715277847494656106436529196415100033620537933708879423895889967702333273204861790401371689575656764271696245680767396389915265149076866484324715312514028116460362044211588895919658358268511300005024838099716447670033885120827435292111001523066983759515708665211770777562646551716257348056338314772743395121406950662556185272103455135350441223911253605826850336475496673227109157123699306605125556273153455071943578848755341824098572532820336437008276431710367633266769183061103918475597884078941640697057926449146681119399220713147412216308626503959889685563624970617550122371477199601984890900110742349417947687756444140048637026870369093140796795398582814169504437357203398937470708802991482703167366744996984322118920593831249702095764091392722629586234747378407769409572016670851089835809666099674190083464830615608734867398641575930899561841017508439052398400472965146642289930610651181329744007173473318593776036958893440787086716847810958876679661186234605112324097494368221058923569477884115586202816675789449396554302198311014071193731671683462093837182730149701969960637837501876163597896355621458489037218471503656287418363840780212759676049118277648411864514692652758060251464129917709883856185528646686694497161878985858758823845832165589767467202215455350496565931849256573489200640095383901433314659780417915272568219866291617365383133096854507832939029141477691641590568581726857512164457861543201833724865657514738944039002906577622931453446331959586374017292180869426866176958680349209360342617482828695034004196748510753245575340007665159835867023380144957622601110337358534597194488208524119500354492160922453206137816239768143000349102880973087107740734379680541075063873229626785176809728528182970589889084999937075287656295722885299272078569527870712303931136542215737434123179676678959747353425904392088456372938897935220633891863453750225053914804609469477241364290960482877538965207281515283368676176279465960098299461865480432462653179311368433006616082847351881384789930820511755133732699842503738749942253165738886445259028049534300827554551270681640361725876514613373327801843206510851320610149188954423640521497530569670743610928366740173015691629951646535696346109874071157766477534913180888377129627188024557036610960619238051564887198449139128571642017716372482695986536435495006962093735997272164222134058183477724770733509829369748053517216895478405571900975195796658299716145534748141607049049646731434119286263185705855084622467445979353085681373511059570522544286218206258034682107356927231839996235777486554790429559083614470963224543763153236757977567635803577361593850389741103363088501638314776720118450443327487304741904255451875134467889649554553586025005246616647624848266398596973932422070389072849407937596056218435008932998356957853216134742638887561377126543585718777274438146959071993213578192564119224080320912851314391889397945216489842460104798256127201901612881812562812404578905964159967190812470101083416357932590747077222035939439347970820291026302397800339689850151334785852410568388123688552708440993051374012794802269844141210939844548889981802126510604132912721888886038434254129750419660741893644270398362846932766481420444251033023754209069573006243352705962292442607279009326359703553796072355177294160958852023054404406865314371295096442694858122236749047685395288573566402858437779624584008414021054463430827469725447887846482901519070442918383606179478780369700084690080285061734840908298717067765867084848164351478155416872012114483227742764599282049895773965642692814207502253974846404452062837266853620860392211007332881670989282413271464266996497858543669599603584252615807035368967979968840253800213306618960356382250056041519743228331038619896864442127333666483460608725129912349290562568107422154456546250238350753937680207195858776964444474102337315566637637488150027870536724648572806860415310261073846986647455363674351665259322703204655492137777503149512163257085409263929400618291940035792857157317110945731128572297380632088546874716690561237155124254906526080840409706625287976591265842496630514719345220444928417698949266933879198370836747666912947437141357763699931785657721209877017308938520517912991645114286939596815348091620152028568325856866229467651305678599522918578718165099661928060494910871702172614539164820581562986174700777655906555099599226643722066002517445656111007431730952005479516057770433127518929443585166422606683613894150334096803781514758449846470456404007186982978096823520677051709342428563220849209662419526014437642149001408807136772689751209622853472227594610399611247374059902101167776473221288992858791245435846158513538302681774072430687410697298937446689300363752160153443287405643585147274245899895811821204242970643140189781304656854775615317259377938072703887460714710975268426002065241225945319628046386337202490116601168264408822777902841254757373531644596949021748903860655568495367781239627179297365837515919167481933036160132549385318268956272325448166476511710475842495633092456821524202415470267882246471184099000860074038685226737436155922329455825432517025727621602958175985587963778515713615364738729747334822821830958440201753611680074213447483642028630192406982753720692427044523152708483839531782408310260205720675926223797498679828363812773470384826011280278045188167200550982457974789760131713816842727336781606493338742230338965213533489620717278480764914658762181466784093910976179286286705498655361374823308961891046371889302311958115647126632535853416776903546154467121174703628440221570019361388669666501047719453786892917810094234316090468783316458949297673654404922944024589829356849667245556067731937479510348550490161693938195709620736252340804727769528768801607652911024449334700754048068123388155536661472949476496262849666881532211126636204551883509709171509207591012238336862942556708560218015102709768798988848418050953527030014878481679141517188942615354766878801887730607074832900127971826212660974692660075518918849308853991273732444354709269316490129990680177886407814304455406524911435999109842181101520551024360519295774852089904811468766536005510244593971404580390076002588415393584632370567049080933825457381781664684797880457819772388572171592207121593381317134513310098788796101259635901070099125084190457311146747099732924590111763283513464051815376968171631716156815021302499904919153118861715675230835122975841694140929520453220882438143383548596893169288414107658875301026092397186027699191761381864218480542630435242988822593061054349804837930288558753084272307733185022880545674343175624517369296877466719923696629646401172165067939059859221666619548227980214788981530098398406320137111275761301797715078709348802691000483077789751455711679775980141776096036181319001010376823733695915513162366704827552828945503882787977698898157419814712264525559862391552522631896330621213475947325925049057109358305980961952049738045919654270132287266508033526817494022275986465156224558969334188849306888489272966250369561157691607196627504151726381819787235613077678706553670387677590306628856737953677598432122681735757343476681241186530687144106721258438980530361753232031223416700496047197469802971439687918325821610168819656855168132237547046671670626407657462440309989644767256970315863021089325503972286319926425439475721513159061992505682802107633891565318911770022785975619885448858809204985373056616406630093837193398037442401345324014247909700312872104534143711799541522086023787319157504403545342397632809380597522347677844056383427312879419272237841998431457777528641748424667480202009543444535486046572840317348143133718174651334897260687921017376271842234057835041778929722102318959498050855586365168487361809359080023691415636785401401041904416187941484839695829427103081625198771607958150988015111823937760882388204188583675529839283847377783054701076828403241172294329546118290510283470741297953031132207218033713542900501696688094073331111936339685466123681960564994929269131722600317536060639309776651080288836073209102846924223169732285788229541924395008170702732337039674519354769004104030720971470554859293342449685506465456356943213237684751831083748078406127512333282485938573249581719178471606516186045947372752328113503992682403730727473306461815587955018208837002161742491948652070780259492519377080065145642838630997829972894413713982770477670884597671809698523313900258819938558223019161108319326309502049212064903896552091757452004357253072911239016312791159908190683459177555342052466347124967359827791910518086293945251797176949351874172325445217135531746301134077337265686156541796146868908452118779432392060420117229704202006439981879441935647140386490121753720139659345987543780201133190985733315784429464968140553554393325549514798068057384423361340401481337892664121062701238168824393408416751010821333547263281658567006297508782469334342231469222752387522868294111765281987987073449008175951365991688470963643575713540542374009062260365826040538132059154764804726032362308266361071359361096161352942860301198107264162773605748943079758843086768898129337851176544898406881032680148491774428815050481891350787209044270648993512460042609082665482561267058428105562654683276564120088218485016000512776048810811472985098240495603748586944521531677146052061753251915483856495585529091884317843333405560767044049588598424598784260120454431728230774911608189669583093438198192937545851671220746780702284670942446649594145595431691750481807322411221207329212270583494402692046662072817913498918605825677332541312222894052826355816179606472737307958186938114957952577964273002656481898301733982181501789050984348471907322853168013853717347683225944050856916143261326208265042636528510373364370335949857117003293331726370894169676597010288820300775559106195709224589776346113406898765754654560168993325152995437795807232517028187069892155230471446585464989672436703224407828743989087182593870624029391854840728227148467558617154286315185708047406103654867033370719348190178514429177088087507248960362734503492140303006790737316813960157744417146400205832489029453875345511896508070953425438794396214435376668702056876158296989583538235710934039637245547123870358868618581540055600432164825248913930447108124330268021080735687248640632466295950363849346626444684303705010111614827332045511849187952596477835166150082092016763988871098294413832443551944228813527317885740342818624958718631798232694589896168546876215156731559345348973803126679700422537685016365116946171363011284382341321625103251628255054486256910373140922971759812542456628206736430691696773200968819099906120995561334073069022837545278488623402482343606028691742988638195610268810200541528152037502799313570649368078134029132174729247816071363740762199045522543596452065914303994560067357652342131512754215616514703341303054362046981766590157440720470420213778067652538783115434410842296102841223011690911870905148101115988748379722915082517154784984147587610352176823840466250335044485703037814679282502615468348301413510478439321617686805484692527488715012977052145548669360923952324960336462281918673854799275227620222460798938253505017217974969892681744275008427329263179855623052734675239343779992200776907370809450272655367206288818251475140007667950719496467126428989582705577089689592605637884843842143493030868876515767863380596640778416131340860664002894947425491929558484263325171156870799149065660013775517927877062880611469059333802309919252607828663878506959203913218097740621443927055313281938425101342276683995999516261951271469432686397123764351607823388364216216258828130719634031209265720215401871228371319335068949484667279638763384640603540793646094310399050136938060915509695962145256132244665656236441625618544105277689317336755941440740256264131700906999348753313140387234862472887775058777688614519819677434542447588806221729583224103779369001174178135768287310724853752285240088497388322413235990630402017361428763164653814413483352880508106525192176933918387433862863345489586448317020351143047744588745697662653149212947959568764972961169455803998738145509862460008133649578730044630470752739021754366923424108992742000605222043763274140432177718905271296461532607764313770571871537920178179398892598111774041523082668433294127617450506617063291948791688134828278361970009287164595416108397600473213894358375183003628324103293553446316555869935608639096828976416188257185253677198740905052916324404017883551079300946813197406093581494505018254962174407796334044029438968614316120542547305352356902209451104034676586856917335958864437573608859931580337784847995409206837563270482057826843141259160867136404305904395373309022305533814338746321842966480321929629657708582011296326174166631469516119988723008973247663163614849746293643571430061906157185742553613375423824362442682326718943574714339303477876850277101212381795106228172076733014196321713909718801093567750609973412807041279743843662089319386606943108761233659551496674904427237105651452265893450582484671343258768188984859745879772851131712106004505023913726235772651725804805675815990909026096312492296265584822890104850936846616763999064533192225565633605518106429620970048736228417010234775675961610837797332972611260871214983473754178861571979534024365082458105099584806726803615670563213828212783072187081041681761759597385600583708942627490669820127415166065807855505121977605341164708421230150207413491926442023158045081194294678973208735633367803702580414732806305348534492663918146037320628791040031185421937449458714260482412380937650085918693285548596300060946161052322271938331149483346434239253170909163968458811791776934684407041824941978176267471935785542808833597160328392422604993292170309665846693336819492772756274010762846819947807912439303051680861441188624914318049986299634511719501520147096797481138339093048799522643431658245216171013360975750149849910333629428087572793842341343638887699851052972576343055497902419434698172964378415966415508796594917798287190779913887601425647008167995807447999591723328561795532120560040097919858812568805572398861268082767970771719122310575071851514464932807445842602071588296775623669106777874782839242677679203115589859583976852443709006405503588908824363012756373604750014669141494106749715574179585665333551780082831742897911651493419320503712440038504196681101738554260788472956202481360480212413225597232163989261384365531401577135196777302908408977329122723697399610390812119862897524299801586815866731900553181387142628862168136230450955977854869383735301536503396087301730029107681239478606862382209508045751081153049219468761566202154192239457289333246358960576128590064654853742337605755084929443866509411232449768220234347517775512394417685381588244260223916159658160283817137366194417526201603967668351943135125865007018395744523194052532027819918827460009481630877552098854079978875951510988308868910276109401133164227889751144778754231995280141607596182572035881901420243004288384073041372020582147016826408077945847179189454776930103720293140127453571679879404821485629214460317260916496918844341316408294818969600474668296051545539556378883956417657058141777052936037295577886260561494275135813765046647025635013142641990653411348653719896219235421342910865522975233688509677558216216631561964468106092088109596408637149417773967296127498480935234565255403295037015247089537336887399752992697487727440204697278960035342632506528253527353855361311107523510867946264044552214325889877258248108306768680460264107203460681536488907491388767085612900263609211015346068895985792718618621167917139704121210510280161874065069930405348459684917830115019313219772139358413621917708903236010705854195656813246980867581586065681506037598501618670690065705074495458701717602069192011753210089560029960589952159464233831620209899007030966271673110858838669607995124311199518090161530595362735231147484524450483683201647829275973808109739106047369080146376460703881440773565335052688071293659363267537835177136950365720053396813299328800856970601168586455302597678260252009868850013997842009936544561746817052291191527316440708919580885867695181446094033400268935934673510894206768508376288694712179625051801134937953196728286747962267948188158717468742923913462968916542255253608056283607389011549776761103790942456142243731025306354245503885486224812148549092853014981005225967514153722250012681483313497787122960189610678714729701976595016025350170087011373000027528519324781805002440774364763105410951661953836403131141478595577383790742600590785840946699852608308804377865950965494522924971225624288144619248951792682004346881138679408156027497306382670941179707862381020325494304355162221657382682725026229659449929390499403552992077283719063615881272845954987839638411766406119724637773858411163007106723339125310026276619130126645989502571870825559224170900736558600880393728182769706867579376521554590940408467570585348139018360380546806014145630384362594698328788072203846754933870065451811110951519334105136326818287165062338750875522574745610604614690593296667928370327426625723533644722458279997843908881443144321506430746006068179571564230244078910835418952569940026276540653539098677291892284397295926972434963800071879313977430282166087444833953540124034899334296382467561566891976657031680003110274742773864189615461276799374780343161383564706221587365627296204431661667751027913042289943237907780115827280870871616748773425873100853736958468374154986775243189381614836049209909584047927306268815250338773054774337211587718919685650429911768582669974589117349898184707103404004264708437660157016483344262982212150589913694974531380262263569927139894279988757371712888598797583677886898229837608014267193582807852727277819109374704116906457923816277159284027725534040341495226177812103178285358371381681518917108760736301389366278434534398217248183324224428542883218788477423096401759845770012413923326158082729038525454760563760108478859427659137381535520956957557022150515423712240145466388457105302114549521574638777862010929597268633203140080623127209962279590453954160989182800175068190484930368413499781969921173312780969745581914657710062783058643097864372189933925494473644980892972269946675055132025426781339450676806772796870918528386334917480575615410601802351325264124497441889979714156313446257325779588371493749166287702556692932307279963587541105820934308229224168528761576408326151134684811235352282765091285589869477714152284325540320272938835827114995466438920028233083773622694080308778769587424632188278676306316987615189559497625785510779073407691618466619161716462896152394360435235168527123288543131350429221522750686228065246116108475239779647028265633302429905786953268134019367989406968249914457062832769619854848195279084951052042393822073174373833665346613781295863792323065224121514754163396775164692082574652408991406356141287903023318719125202299842056387379334330248682415253090088059478395873360909305445315922496364949855726921516705926783732732127796574845302707735909397102202333058820244002762740725004303732799167235023215993377312583796642371175635354848979122161161521653853941715840570156399149497901330892126992956299826288193269754631345346595069269986989371829989029005816621749146059974118916898363801191512253842465372722118064866252436283023231688140612762533024567256865996520961127663918704733819344702789372979271985116457620806500607893624411627185908246908819674923150709310128061185682320959310480173761884715712363999027754238872106318482578421882579762866877756278648446191169718951939080256062187127336506134764854972554031534216110788128557864301769578339546224831835289858632275820294963321209293146540764821734762017820020193671940997311875066508822631874318909082964629414146864336557779316684252836794414298340330619246179907975078341947286514468764898061979432447930055525524491216806565609663293565153077410791608838962069553207884607565317345109273695037818842716549177792108844225193060276980829930464486988898699877584267118416406938693866971815321815324709910555463407736286844790832329305790980843961015002678182080517875984161212116628968132999517515045391111112723186684111371568937469130101893309456610100260780772937279956087742083833948121617109641423447772144043486784592139953745741434053661435777452891454701793884732700703477278606854070506941801035822966213421376561771891289488117853384610368823847783258467480221857290924449888376763703595604131519266111757905014896385695722291300574606548525699529672632378013775770186843456589295912143784979817661281109498266190946532161397984378303337171644167351520672765500907474806064474831639668711149831467126725483208159958332068988924629720890553707050944736419385899220530467755713246876367351388441812782422442453699625733043299576762435426978830020244465012167094890648489865598860347990217071618992429097498477098768488373373326358153219706346532025783039397683923830523339573708352977923448210600591920832240573807527553362203006453747427260016277511334423616092435839242835476209538592475961886240200048608280946372708297432313685853974242792625124854321793330503578022271430419915995487721490011130488590417266296549933781434346935293134175015573122340784982217651099785371406658470378197253708193868209890359214035839128228688323704784573568373584132301106899708566478964222119436647493641056687244677440206157974117377192819268537166061229158287919777968147675422587404833054217385462068716610069168437872357948418499690768729992876449102810522589237755692959914473122334961236748975059395938522457611619546636962945169505041929936501253669750433377308892028091564819434480252749682197381139695769035394833618472242929632806762667648742040836683176439088443862592239639602944285094827234621325222619111656865014381673514796555120534660470755080669775373650664801629962742350305917962663484349909689514350665069258446253856695541634501619465504564222347029466982765738388471981707967266736077060067597307837487764022146458406805587604250889854224319401660440076253315097883854782673530402664688014677818332661355966666004588534673833622482269190084614469091865241434040932170651586121708154218936158806530752192561249902568499206290214848483439476471726883359245585203705210877308052297122111505966418729974716283664097964720093684196494518956809554592216828636552179307373934740867283515820377591710260936088675736448617645859808652179429068691227521073308725191218350134182342938215204390793383078631336325081410442711330972483942576247181066916552431413465659479008595650515886067626675711777791896619690262234164207833435199137446462561548265181353954808445509791410638668080185592941010261509105081037987676892644696047823282444561780425235748316345488367569966653491946646228007643736682573924855117702405577976982268173958901502517077661797647283360343395727840676544780567454568198461251377026386679082761927395781212830313623614090619941707984857022213029617916258129996534939084476423715832838643268366871656926100933844443046069826061706780879738383763179351984677108938069915060606579020524136181627129219604856974265515899071432911972304369613567085967219055985459818274758647996612294016589685678776155533631531140052150240526380525077549274108103576769417105146491876324260854440501702824772886073713476958111370369396582893848885759724687571561926903228958312244697254352616650422014403351394267209563935587874940558074614712215931488297586811608446043921460557055238229225057218094680774583010372302996376513265994902569195657749582564941457676718937749708859195861227836550036910707672738063545806136414372022147216851118336639685711813588118484902116154231197033087707904994514287423464988791889480078705107585378320934085620026794574290179366736017216568521550261482115886893299588103848493287563984373439139603271879574023071340669326707351745605851354748283136620642540172949166526692010918344292016383484082947447005146166496498290943107865322424193448626761114398643229796220655819737682980925919645487278079775052056368910298760797079793217835087467626128126057039779727110880963462633211113284077554370286630380154052067385058326222565798943537547555367270168631081916406779898069391610756805494294635974816575542303410195068902349601617823617395707872406606284746379434277090399743482753274769664120912361367480725857378504898442595360990949678024796424644291426136373417857272391621587832195575567395280104554606508731409736852033410439397271788868303323640477132470682698820109841307664369826588870357516573944828499928886522175717057946999844906123919098506754170324281268188475159141900119596328859500580046231658780590443995531447552628044156463713340330965162122310696872766307739888103954820652364025271231507377060780028183564408415881596942754155965594908698836523551714523996205900738829844229030086134113405188767962233966890865607780959928984153229700070363500206513035371821773407170774076292696969795724053106584220458552269612178833378727370287484725962016212864310240676645239684747058468005307655156680559824785597371364015957074001916139305174017079325015038964754497082667782093720870273965252902210440622096909055251901343287521619486581320040493166206944204415064818213475302461729509691997396493766398861933798548403469214094448028430812625761658229403159666929217610974163177393908343153524031230420634764135656253123521378449172870771834239181682887074295629169241196352485534265263273777115972982572539361848255705690922322653360427006723799433772181985458425161652265777007619081977203524687874818673789579246706548341084703787139279296404901521600260585986067578625515578028989827414297663541468396537689916636518618451647233293224748339555268694569746413533027476932968167985167465099011289196060790749793286321838563869165342479821007514125867872438043320307258826996887724725952628513517774614176341359880676245898957008693483931490781037923936082707718944440518783625422749496747154656580562982823772442556606754473247825998331586892261485690946768228430980224978449552643073637948279370208838833310136608256686223886559266794769770277148135674356186501638899359194009772806228510793945461809677304341526931625532358814375050701430856742383744669666434190943179200432870388256632008327237572939593388028367774770000051094339452597158028202530554279949165601278344972163285214195168648463089713113390840211405955703208827936246090015134952353311871913348567607314773584617646050116150470562944513198368221660239694059919458280587072448206703691080604775352312945186096608044805842041508379460598753903842209765715804152000656822986849219285984729135146132352159585246471997267508911838187708581516964322127496916676424422687719656692921332812102240161063942164552466393737362264519560317144243053567485627273304591757301195524587222842052217881124684071665231030395507844377736950883753861750502651395278397880490726916834795131225598943621629307657223249542066058041478750725908877980870479894980789088873736021797852435198278092073830990401932627548776572629381015136034805499679615016652746320781907784729240924852514462588533088921994724287526424003010800068348641568715516208368530945755225755534197975296201146768426897153909810699134159234430383950734359444744889348769840159924538309145030965663802904736357029809864484332444011269456122460069796042837638509014499314069730277010532326515890136603436096607369229442438299159145326478608738055678998089502040396566154279883685457347210164590647324892369402138357968523639364910020449942505222444055999259126683570651973848509794955070572049708825784600881951268176241555102982192812028316139523398355232405623569673798311101153344073676313171113279709650254900197518612160055132262715006251139803085975272365995442559415378389364221561663404680591177149311899988520730455830896346917833797790663676809808453695812490178445962447154866251078355789766774616565050220269095798890877173895862446434762121714557802263269860512732294667305668834268055367868907535363228666799773231070199864611595843540917569481369298190632543125283772266756015532880518715464114023774255917575815147399966216519439885219037295088322254517038940720019436044435840601490916228151525901331657732999098340887542055417865113598555684238651490063575080781750738093095996753913213920660916570472795133022140730347683447378168006393640358019557368261753817817654973655091675579654711703133857511748364368111982268748473833280950521487039775267549103555194422724081248521960394655377419965520062939753380617551143218400818443885877807597571297381854949254070685203010929201820181875351064952132569994961636962259215612590659687455251537245056491588819956668012623953742435714827161299696653428760462092286666145765874176057796546294420317918036170120416454007087075472914827446345821334882344328389311428935561106486058952240174142838669447558282574097080893561644476649539134667181425852173589118953401176275309581702717912010623551777447662217696455847620128254884870232839236964230586052034959358143520987859414195265735723842778002629573675558778182001237073304473057324321469552520569577856564699814896962755349078433001315397589701147822879592425855234949232815430423166123889510957982090951159039055611576271361229938617778239722428889702937469346949025354108491461134351629329996593703239434569145457169389931339097923691132586632230923658424181729348046630802338340855233120767167218340013748656037585718593008043959433499717496594840492746222172753091621943932881781162512101331253882972740952465548313538198990112379979374422499858087302980140267609400158702189467916437170052420517316774601103028219111338842091713333510478552586452284408898321514863829556421015001979188492540540844118544000061570236769965202904285163620679891735454122629147781213327660354492457451262960584157373773797885341235056953245164641951486293138029837601106457850739120395532619791475281424791305706781837265082795461047019146637091915722134888104853327962145039428643365819314577720499593448566684642459585097661200381713813203937601718156365978700779851080492521229464791833491297939292566759789063381561897149147446594108600481075426903880840149072997743058264966797385958351873822057613967984420514026773138365381406120403848897472530629892810909150674234934283407166830342783169104121695972021805266699810628364459278544453296424390408882553188929387858574316020807489259278890499168669142029754489153197849899576589102856591210854419905337258250384045055997447385468785773729295415467228224240111436807964220979387238602469336765353824138495753075508709350633048089957961618040885849958565784140547850508084348517725319522943217648519864638135116062189184051662940423391607907230576406262484694450868813915270530302201907604391363839015681942492668678850585146962288509863258694248586976187668090565539303220460180024423918030673736681048415280722885447827270393011319778676774547169292668337507950079970911443424975112659851094989412687670498170881262632483794196156653127774828455989686140971625675451039705489343709240479331711271380451491696887377319604725156352339690043243286155680805973211498154552895944739251905876058465241032556347736747393433369211631731948239328491710087399152173247685317607587747746411904232640047681309390638250148534973794185240037290726724506373061812428667685672821684481118369904697047477627029195682501580151876404362962386445698786317222151795498255348911768305118919292717396282923376049542060727015731223091178695599491998360882262507164007928360540957866461934244308518234531351066916109272516512146663817540706596400824922752331845017816229497344013225180944173375577147874657972413722147944120928854941953634146649464377487843301587481455390407574534423407138303443152392175169052914695762994067282130630720901996414814131844577314648246728642415745028584504185767895480412267949550831236066646100450281625215622558429888858675357107773237357170938368429349726082289180984125729899295251624610733489777599442401201645170448773093410929325303278266488250204999013590135685134970109663622938833791688183105587365967054935264823860534387086865697433776806197747941924282944689954892580349703969956367706695353087484024095800302259813109893987993721579262475707968073882349938366793140624527436049946519557585222473506670441119019985644615917180093282622436964445520174325684333207814838320363469084694401845455408571946049739602621288590396228594384784699837631258997022193578231489059933724130197141836390188054637922265345414653205900285752919974459761132509667516408344179062665484365068684078324611447137714250983439090543629533647350476186541964326595296711394986018171196352648747003307476454284025942540628188503983036744912079047498351535801024709428610439796293788706869146728576375638389673949466206292403823968748275601073981349031711714348443790106842125709586659824334845587349557413279408231677435060542343766851497679779758799944594986257603858044699049215850820397263270878904791051806687202482949437774365789676505951880364528698434608572809493470810866743612683954201815291146762186874389919426753931245812440667715941862689414933548417511083221516676765889254922550028814228023653581497150440864281923932018536277119105171034291054127618146199464724820161637684392344854570289741448245091432120159249001163547340831813174614280870678101990016615783411291932814258451246833367759321371608780191638538204365071760112450501496372765574726221726125082832531818555807830517372559846080993464300793729894980385450380711446554428293905787721069100260772941194201130843246819431484468617471963137486276951354786262601743489034486774729615153612694986374643604586599858246971780168587214234389521475539678996711917637590682067841073629226308939698625249936158203145313882865655796894789669203943255720887453067857592740998585378231180159103316272743823414252208684324294124344353598307389103463362615824993558006482142600258194836999920329363337895537708416511200056227503129396649827369517657414911666336136618152008112458324736929475315761552657879436023025646801401402597055414997385765197613065522501023597689318793956402052513936748672953106049902120721309375881025362002927914248503505567626430804899403972727690939622524973383301368462769478146099964356644305077032964149098660960415252007604884701822547194330074942803175497002531656357950135294005820218244944796626317392577669702744401304332575553393516019763044313931607987374671642443404677770983292974314046373034940486834950394251842277406935315585995189891229090859701912919274698442643249500443380733663151276495670268498232415986284769943949846059005891486537228300431039428218382780665079430232840410423103363361539039814285056082220579061699725015756802595493831484857712940820252345952624636492823812748663628551794086772609569665480194357730863818219327064719070585899100212079530705315757919598623794005658163749854675327175667054484057546315718028360519089940157250816997694518905568775597546631896598064702515339044009300439378819121594626780644005815031103708083337468134812492359552099377566574916692619193425676067688525801653963166209978421800485380615450049682164587206081022548442316393811424711443061863679541672829194216557640556146373197502026318844416789098958157215384774884479767847361497085258932255897108160976915923610198427329585737346757892733891200648791243039498535442725470707762360355140548316494826234167027925587732921927843607274763534533165262587762295101433490650165595007077918480070510782201529905552163218750060441512427478545766415097139489766966299961918836487315902768423141673455705286209922904337719478939344961067553602040689801956482988007205700144541905227124294357285672201672128168199833293788667732290402391309232121713693071947781346862148795227541072243841869029059505558389873746109383500713090204030921247647579368463365730392035744168357907003279006167384121298533335753157382759561603195820455154929020723690346603030035939757312246320880419761734436995065192981393445555833105993316903508861866861231417971225371324138464072311819610243092955150592748391741860739239579021246515665430314203731742946240422472498313329125344843029570657646464539178898464916910710947439218654295210960668074457404137063525688142083320181230880024789542400894010091708295519368779024062454744435003826627758731597366478148631868292638312397433094428073263252303650297361330378247617826376506063105234166301842617907607328826542958953626303128956728288436785778098950091589616765480379578055441938145621019541995338567977836188882965149812735178489359500525688332951353546765142157220341323291328012865997707246634999354405142687238888730624030386124762158298330702208564287798470691496181968473130161667673203479589172117100811546688933717662385454633066862780343105232234457721084585875535310133243347461632877388619281498233899939473571928730389758653316799614207516838911504313314589397525147323213727905942980105625466423255521576068333473685534969022539359826407194498560243156167491540310347329624210971796256035163623051283121030748953466956909626767531640876381536769128824437687170837461751908689158422557693389873927387987134529918389840096520374787608923752691928753397221252192928740831236230426505647839952987133930457995755534046527720919368402855227619258900585183009317289375136338376463272030095555520388946898917083646119713812523787091716402110194709762932790384166299628746609495981212856463996103542599487077900496154832469940952263244450442914941302774414428235629503333417101270353701444019256341162182815632056747515133743833807237827590535279649473912338893724107984755476311064822951554206326870784287440030791898507628461850219634840341034013906629865204071021133265276109860286770482628529088991797503825009525547851143942148137601360756201885106752167549706912191895762388750709235374055428007549408535191263094484626879865378425451323796802384964013328559427713486132480026520543681291837949915328231756455607904084017440080899868663666001218934717085942915834621380193576547056049243265624765340363439794126282441221794066479602065250524956575791770452092835451887166586088273095000977984850467145542462607251733179109955281133498101111051046990336453250117636772495196440504332014050904005167892584073155453248583109431740569977725481406126205545298082318472221454474275840968681219840425299844731778244447441738525144179108352916091159702136828672966492483282844479673915554986026222927719189658191605221598092606313138051181173294175096808988464687878773749426561871140065368886957269003259616171367144683056439260931403972955930738771062627398539438761615005976125905279940975726410111337722335623199597726719156272299205231831809887721642340174431974165522648699364268738183146785993115799350815182695978710334423125244524166226189472834628668195843087529901454091663964499922727244836639197679409237003052977726380120903490994819272634912891782833883730640429012375911132477843211094841541989518694773174326487215785978688940204862019523848841068624815525485255025012001110153612443620606702078931086364668532943502470922539521059219044163505030281974617659559772370278123414913020246179460394621339065653518900713571150937811441438091601445722142729020249049969977195335877467469715159406539017442160084160619511170437931657442720373174898070335453438822353821841872797686525243102664437066062990288837753387539047530495039302029718876374637065885496918457925012417592480994831111689375616847939644584378919705381895791828664281739651140181527637528887383317854190434604897205065364782069081152887388122789930321839428675335419406694427619123920958909742562003463315087835333182376873819684259682278484359174026810950138144995281729539381361511282359618540345492170083649630944943450213327485619162292433204162269882194165996337763002891721803306988088993245615571233055896937454645112177391687163452565689600204164704807439009350565583937850186197900422941495818933143879223495824759400985600793436993942948218137495192840607475111706855312726690039791453116881736177184217353365454362994311798648441556964589635589940778888245849071264443709267787481349829425514923690883684288976674038754345295451612736335165693578330240774830253689353645555529142528420794274821812941624260207956472827117329220020140290531396532882531411561294672546830163152590055028378754484070677371812148667919957515656965365559417871251513158902398552273984486165610476014199610336763361358330031376015132910638007123913860465421332667765638432401631458488566827697781492813683339272059604016868672282699051713809556247197178214946988462855976733657130611203494403412711867392298829438024608019013963688824412842728020655579551717729663480426760004908034946101245497281634426679225080567850751942577235219265942544789559278149105730747280748830264684726375024209512953189158494773681675433019464017453896937410189441101961747234260692623813109324503527476754216226360325066056753499545778650551120234580679468481168415451358510142273210271618678813867498795100430864734806490299561910156617962913895927322842767420757497967306605784434593323463175660369315233463531788991909801317905919389127079077693689357492495159396714199026266687709538505480510892064653066623435530941575645567159438997117605546045203806890185549991624030333518988526379504764468339285061207982838095911805998579966543606889401159481196500034838590360994679530087950985409285799969479531720531079093490978648111330324081328223464205256389681639805882399202369180147271620166918395746255437203222412402958807473631985938542368184828777420639486384025874379655312049261317365007969049596425372012278159892355822669904189905595238964510560459571271981068249346442682869231326678629037381025401815139505548615245579186629742391289571522360236522159505601088281712001137160219760253386605483326687314504485687589550184130039558398972108488125758870181306066760381751538579634636827365142981846841273493872783190148025814795353097466353114546306448097412983467300825987785195559122998525862803045607003695206487443540430749664628848301992027125860251530069268114102861816172339061479105636688651670366324786363428458249686930153676898272876820615619584479166038307075751381496338447593377141712891295462319886108924130943309861959438111611338733683509947214488509076502980815270976083568111285678953340652051902960164453226155906332601153576258415418929837811968170547901499137681577108755787114100847817231690311221203664638706547125473693030595587244066031945686059697467566693715968563383550496077247650390049817912054288247718791480554037277743453745051257464895919181784487376105038215529326193971221332511190498797166321553531343866343291620454458632421223267478083902584422935698431846641899635236350824711064394811256749174096888159599105533459148878321912672676609761404502342835136415876399979022828188380874748028050184325006740388500878967425657877491735117974111133449488911251832589995088342581647665172453279109433429688434652206280452898261373459494377895121116069811517177858791335680391221414334423010842914073958117135642948033889023795537124479458805674555662857699603445222764284017301379974912725916883768126441161977892794747081738614644412321918586747214387431944187713347034124872748996156315167520709275282209184496440439082156833865098416976179974408712377332481087367668556163475603482508633508229653270928676279332199162710807037824721301428542083831874442634561458872930173190856385970690912694261465937052751169078786004194339105197243360041355268424903110431110486517168571090613380371358469964553010724986375005991090710616191033272051624159029558369508843540227181936174895148748130112600756352030396787275827372060981860956456622446301223467531706195383960251698436898876969380594860504147686039372567609692810495498008288312152511256471774087945734998968130402774853578055160111978444853926221230260313067333416613043353486888304093888677414804662077646929755619494261996683401164580055718364583764807343327337567632769072453081193837445580972474839496643412039092053861174213966184895001918141974643579005919267313847933720037536605924769206075128867133669001146254307825373505220241297922419206542118350092222127302438293282503526461755716971007952570552819468447918588028917105901798919735061931723853090126848090310090798160774992850157829652662959990304175100285952865229307207973741723988265622505503237189861555374738752607505686260449137749012067981806785661484322105263152277139967577398528393155593606895762243897874967055446975851938752625895341461334824241943864349565310411751330625081650213908759654365257616112514053314467019252582569406224907437190468536108875440103414326198626282806004342130023755013347287325581878904085942114719149056417386701145846399570998459889701064982977629255850459070445667341828241352635570918007300177783267154364445965694933492845750868402150867820579362884753985096138533535795371851469407168482342843536781237382345938785295266060524776960231816278263413245300116567485359055259240836953559152070152304758788876406225170193231051596696732470772233232254726496315655393590156602090083008636269024095154979743676029773567230554123471219888848670217622753824912319027284238750357924780586003578028446062699207593016084568027081616834027755584885338750432138732182117166873425244901807583318799065381795543173309941277253475864490416116565294624230736973688564641023693111848326745405453589839373322461198498179967613107926919964468979965781702106572436300246955785299487642357996601590907857694435958500754695142093935411132698284962907708238680400031181493113697966942257679651668783534521865183274336806160604358631108850677527043701798756570428375474750794511976023177600571208313216813115187769978634272661907692765556433260219642670888192212242534656044749335980976822234180750528610035405426559057321938419099011842570425044546424192781037721421158122428051901859153633131801428394837237200029851447702299407067730500634942029228745171427758297772644076739548638780477415368859457413602950664957991313682051546164739516587802562914313847274642513285841608508165949777267015490577820593127249515580971862869928704541570117534033138186521951809265856643690193906865217825386189728292623542921223418063010339201419557864911958170755285584696220913268726555847793235843349523336263434158197116066683651041504387110150384112481709981469628464222891568991838114168246908748806634105657661054418122619844229083253313298635421499806566965440518938345582552054251132590321178300795142971671217578034859203708537809929773240348201819395819089209129456141425838146870916070485904168650064879623370725776244100323485551145569002564681030343759491813969182596582653619353947181323324477248220957698496682619457469007786508611641637082606197346579557603998771414510652704100071609977389401107107473956905433775399920851492076383070951491571640764356831333955014096414509429432892831353829842939274002135011259073199264707650872780110098457768262569909996133670924280395044285117406448287968552888069077997789094508108852209907364327356019060053466769013719658479516056507075026915323814765859528832062033877910641169137704283597041017579589366896455583926925124165600012458331889467816843830050035435682711099007890701684677707041902553024028861592168334961808488563699815175401817569730871548603063180425713440108050821687292985684310126971125842615439323516932273505102240479992994266780201190504461002081757369923286799978488990916373661535801942624061188102342140608597306470185644904261341055943278065729125208156614164598913483462256633256702469704931886358978585193067425735637774027370978883365461517847180896042728020553849258249429576264200578535792388386603370011278628032092124852884263174719846387157229555758535702638013961232303123343823864273959635495282692215306218041246041332408062566583447626361053315850251584039920613803967215391485939406280340215151887077647140029821081584950650162041381701852467163015026637349147991649615509158496247890116939345932040178096127577565988575368479433365745832482437541792020969902314996266273339379145828486149721651509160442640397800139591639877331779543399091142759779884869062646656269297985217349913530064670182663516096686735084392408726434455158726637824685332797608968610256540914072183858604307257717964718163762016922428566272357909790690529874302644235843799215248924233941926439785889247863004388070876197012351325361760248364505645103789915690207471780045952386303341920550538981248135364128979979334393006074202583439481468398438694185566038361652271392505997194343763394691019066966572242577297494479875561479345098188551703524878304249043287159363794629581791273026357640974145634764565757464316863030484626396817302483106400345760070669039411859477763674822900518180161018527618761068605358150726379248792204367706914927910998679358882528861484100747803277889723195958844452258345002989074329930665720682793257888169513346633026918201251163011528510574980136727758958973396102098970012899910755768488715290764351875275506758267339428540051796584563610480989728741510262488870711829242079808566078440556418988664167170294976941253706233509663516209635187947795593560751535071848888030003746882017865274497455726732030423849521549146473745659645486693500638172949888318147216614523311641530451978922333597689841995706574980052749329470145672257528346605554009978108138782815516009944448300800661734953449160028919771190670609956057657406222183236244279865653168269129238246070359387350129139943094407311051504665418335391959089894821848617445753284730435420670099359191227202079902758048544990275061242352232511901378093750945377078551113448879723133692845725810200174771461837075328837139723327039535248795931738184994626538792991546853839824869877082562602845652076829225116929919880605080296792539521317114951622316511517751559399861455967075855213167656798698222736537106959802805677191574820953090494638446591381373819836311121217308898504361671504761260448675477985000269763725688918354990558424235848773607181165364003067080870128419577161282029147040529704519412079640734312629490600521960912573865757405552148721903736025117288001933761301304256222694428284760932205052591475543357349032516482720747688622773685257119207312783336218268920058091138181132297078245498146070802482212846663352435966208230272223770352344895110867635259590412149452864500379128380208414016077018863554973378231650745314773534605591353152252008730204234210413926756792762390729121225015412025429610683077306838336485005080892717717328887175416301108929885445509105153503510451488330961559515342514564207529611538773607898483461039031170765768934489099480742892198555531114759726349617614390429658246409650824907746796541977059810586445178760127477314941648116132194461938558765883143138199069855381286823208992423360030442165197063229629145407354279617635956241707593792041294474906361383172994978673632037615352468421951731481993416344086483285510108932005958988645720260637753933635640284709177179017494487138969378821447004270863917288390450666232818233883425395422108973851563463022417314337685018130224740601417263485486020156908463136485537725640535029322071654726407387958164618893663960503083888546657316464969051189704619868641830674314721693125243466266533436787011954402848350102184587430176455056392901530330121443089598905249572156562753010172279380471034445653143089863043837328627861244381314806615809817180236248249804797707210790633986080908204049874895749535772638789543960507108291921983205483874257860437122449857817609601501947749458381090815536858840726628418056323366765585422881024433496923574353007211264242327938948680047154196186995211904105431262824879041639465911054984670549526664520313153727787518610758315037071287701923483507426317283788887862173731059451888648045847872724382247917997810809074485338031730396519924235717208674722257496985249476320712225469571183799060110790680153485494863029102129400098449203485180317084601356793150486913043810570837220691822483552015441509719068192932885434326479799971172245471105192802987035998038292392874849250996755115083436518714949650164066746751205813144763012333973420238063128826805700500301075294723755466864987282150157266722873430787219719674982254694384653253382053316455376329642317455065350204215427639706853284746986596926213358255830432786704437168175636671382250839398576732560063730257347751569640392913626902601155651558124389579025672972790087413343678167864261434717536790084630027138983832802311742106470753243173360711153112981305462687663466692713176663973587114685623196898173052871384787769414629377990600958727301400038749344595197570403857483438855894258606779840356988004611810205248074905176176927776204067124725382563918735982398965110532302618238190296586214946407869192436444137857915185095474378792985112158018434928963978034209245814597479816266484873419747649353044851765265099708802716791524510534153280580692720424659333676796388940096720446548159543602856292371032940390589338306010732790476267307248680697755751229811141527155573019400320887364797953129081657795289705862379462885237959692400090141382480168158764463697273988742114682720673999209932751304563239621766249152978280947233620985523569604355813496913610676404831180164271099387048806101734204795590151459668035389313733021097159174988517978569328033066732682240990507432758570830004627579407755841153273063392291715730402435227429984537014704201302403458556445767905643404334359024850616667296921613247050549237994523445756334014033132516782699161123790834938826030747361757372897450323779274127138747394900276739213523030105671732225808877978380808905967831271534968590659082835550271716992949094376892165789488119959623136619455193767706995322213861417771252370506557548788737558399394033729912255178984752849566382951517486773815057055673495094480663964200615751043621505206619751177286907418914175900051328515092283212398710376039899712526716712741955228939371916469729449216596767146320880993005243275331461221698595285618030624121828670831793805845350971501589104987182577037514750635372033079599805559204798158549798532600844058021986969215984225456354249770058121547941401739795334013565933190829061726314446230724532743282390356678751623444808283823095959450026365648736437115163746142656771666653646310595166440796217554594758208852434040872790200376473004821936980725222566638803233102860708251960059440769324329421191994846220098180438746188077005582811977848884874879050361789826125803074027732732113778693471683165503346428462888168412435962867871193352219981873603280461930387432238032083686518102652249303518597777081746686436068649027191498035603551321126633751466627718149491193046143340069940501908044953794523571110743212679879187645349751419834157775069677356879732600218102556385759874638406822925757616443986820666639806207294144655272923748403642119944723239012955389699034848592345296354638036048319108480438128443130102582229503897393160795845462648586611697783291064391745727324513240691387904774752430403061081353916230267797906438254460000106346546278044734473662584256301410306101898057042382878813232665652958727286475376186866001452222845496238696686690296263532844211797348652988700483670228823167216842335736904830227583406474807777654912462997363745050727743044012725164784300990459177633071159240387754526757568013030427965929446434141577014617694218164297591945770866455904760690122835252169471972657196532837829547134801933518256439537103088837310401867409791098739253822030972035267824673479265613568615471244108001753982063821795419903931252792551497254838464868651012261336338697797451653819997814688661484850406896288732515041527297276046208479533265311769403447433580273366973900224277911065966046012920474954544102620131631481053551858464423745368939752381892768274742039029257167487397522960213999222515952883922344105832972353025942605285645326510672284248202007923114102983758678519962061667667788271028140868005346957783869204519182809255535181910063323911188777072080568516165937372261561334133084278918264984983149250791057413137711352300083757155419470490615049485806939747145699165292262287031013381167641178687642411502689492099511957591931991695287824433932339593971987352099515135296928825708711458003205163466491326906985841742115673271515240891819654731189526500492788291077155019504876379304908244715928337664598846247281901844985746955517454472956159194751631153325200974302986093083270022089540312474725432851916314866510743863963999941670157504389736562492648648806227485957212047507585665872286700776383097261322487284511881149356949312410530801843376752188120316724009249031081140657977426989309385271585464108814335498803512889439851483685659755597962185123575493891334193790744905305020133462575983789460458764209335965921428410724988505928630598452098870299279897571304907250715096569468043526936293142710444557800050006860254469304731780990428955553074388208766192355542252608872306123274108068708661081239169617618766572857482185323160134209838407553824830134741698685745211806163354005723500055930572724107768781104084229275784153078142308945188637593323363715410875715009868510295962836881783778576947424247201374495551032393328185983652484327982417698935895893592383987577377066124569672649251529744166671530259805609305820650374843598177060725528756147003513305365541599235326687456143780190146972757699396115919377968869612782970106866337532142524288426102920087776780624914166141241068082457352550069254604891554331581190556259974246462592093069818581525185193144610811748284850722472354615810264617968663902880435801410874103989957040886898866771675307283412516779478889638413872060671110751213118002187048138336411700822577991853372067819207236306252318063875804829365809428679873418084324801573441747583904420875615799220305034383356265266128492511954153829581771161142105624478029586373939204536176848580114953460432881449759250043766627728486795264245495688111417047837958915310939306505392540498474329243186373695145541325662877006964318452526947466545729332459120531514644654934960239939383421379389060874793232399598907410452011364582582890489297935477256990879055276380881386039535142518914225160099197502842631663706679324707650283660196676161800977665175516970054085750496626611474775007013328153031510560020723534318615182014279309700694206895019678698661104648059513006880699775875085529939371191492461634591082909872796917329230456935238647903987335670178906235447728992637599649412930668750092516042565247915184761470042227190677068023339795326194764765347561968799717856448520431611171055845328087547405327189824823261367504396345948255420896731621161634396489431019506732094532097339384678523493443294835894343826278011034474525162905291331563493187409712339128085206020102030426341568084761567514913816027523495048376804531344690903541330822800007656488726485923984015446994575963868652457694019610487647202289080464691436101686718301240553161484167658817366997471562463963496299095946313898716545725639923744082072741605335875929550826542009632033267337003599463046485140379871885218694858760974581151845242834671698735414132681408435479460026727590658534265077957730707735635908723486761518792398713678143804771709110933554998463878440854317555030355587484168537036596383629536227863678050198220903660468497892661027058165201723838976682230297448255864762139090479110692548420253931958160508124446750824519056712316144470031315447748599707662183349495008124950647879642555458506968231947148140945014894937977262532890486902463454503308099330605750088045835617348485995625633340362085655527217513003215125647158297504438607469793985693341240677484147294558522830007693622660669882833292039574143539880722051329246450777181882820021093774847087904388811420122089336116701404135892509646943030362303985984673041486771364161482926764203827805755173676560617609803470560141735245187422482290510292352940743926435186005242987638911474133496495398597781291197037251948444656243392218775505092728060460141398534305275460660249684194661718158517386978913232967364508912457155058288415971655827838716353620998227005797383002661426850942715284597923331401895047420575194885036850023283914969992257692765943910975368865788619285808506634391800290937678614267006067123919579381052414311935284151209742628170952749852290562920060896374554225304633185674181198785961756287323205224318981491474354919212762749804950861678041433673672767626042109754757871236682028667197640431099111765142986567208915791606339634231729325075526648988538310474815713026940232498144967739982558540659965062069523844621946533943542877941336986183242335524645928606858158239142720784905715933627543763132609407458213167348102346110194942380683547609867520227769967657663195782309227880332984031245964406274647979459841278733082282933847907223393999577326284095013810874554000472764064542762799360361014255005285662618596788756250559548498740335647439766328877746893471551067847978551950949712854392216292742664192888289218608469338839677970712167942555278776715343968816008741261617405817935300943228082529475890415974237510225143634696801426859147723572128653774985872268779060535075248283129293210867846477180094781462240519729353297998943819994618599145733723574141158290580187453849874267771048490716161859035168091561321335934166560123712402598983155789139067046652355473042789457745326317454564710216987047647809999723693333996989494709423496868991209475715323953949001799551956814571410502186337533951584710760025915754818017614099824153730787447992093983059414433750478894475990284112868068119931634845237471942795472292170512813345058046357235667808354645209966324324205906700872987023048654404311470601463340505614153556677985722637334632121211506392103160654251213607259346108154683463807732684948006545261228556400205535798713435679480951573707544450431279140422049369441257636556911205125229060742087251626920288609560141915335841589136754869138063131667574807377631533750241788585962179597570356940891305799978314177937039944972031262866455436655708413765844038434930520768283809793934563385276421465250014212876744050147131790878137963720640856041691595238530981101600015073763014889877134860781113308228977543613775020870416614853626041705939517961586998852783016571017753933687059426003674978999171059721946965361042027190689409170904654819661207569576019288913901611172734902270537902694636287914064565899243940084493003909071041687154877122088650730225443503345401848432166774999200343893448543226101677128018402741134599291739353271981880275613395330550573193823946854014011573734631021953094483360937733313757105323041727955272905168398586876777771040929415775329056008169282592835520923490604864704528698383345956253393437876869525026351931289806702552446417325236607742434111301462635051689427593205977111568886735545855317858632925289708298305191076908781025530365244485279910060311567386776218863694045766829272516179926044377898754894061831980894768269950037638152556697372435822185778430411214933036551191986833004669882387932016724589732061230016175558580193658586452714092722964347125324998986106259579812046063259071791814777342218914567163334119067168634143601286672789862878290096589569438038765765091323649409963839593474281948229251378812274696300754111522566589668483127535288581393681687277015992086774238886413224041542175490769937337258769315686273014478799794370378925433548324626683204234260393398066139440252577842364246543309687266918878130163159325901691752233044816522363703414390995284511553434960930130538297558105684301668038344241493750476769607826069363995598190302453970550054211225871782724970821126207111472089088551726529899939624131113483305807588678575609012731631648823395457546340039275546583490190427709801930079738751955726975390686908160399955673634713253356781582589244288427772854080456004427926648169667410769722225096706320517888132948956734879489888837151145808114052453908806559662532222785479900826850613304982976546921409012878732567340016565530545918850994766901572248095176936981635065706604060644494869345486568081092256760899529819697207233990805767432014788117749994845631094778857565884319918357006588128736375850762546664544597430645467029387791527755720004073743978857732979515549442976392414516645615188637399168437209761870486942380560572286865602502715175616729225339624915369639465543597576168237648640759026689176397327518102006608220722081121036635994829317579586273904959659191634349918143794477476222064577000250457736392863741549693124921460731577135725164912901280883330693183541795711413713533400029199349401556822277659415564662183932167248593924859644336502762153422918917708462842292866053486784958849739683988127766249448018664746718037393245989095833162971459945641205686193502607218129683685708586202479410703425743945700068584339650225539529625510003197878834214878428089964388566519513711226732460999696583020519980232458383451404977727363968994212896148438586331692660021649981195761394642688537951827381451593025661888285305162656400010462226414397440419170584379763088812943631966144864613067269043468817861542122852263602230814861583350199237006384532152948827600318850422629267037902296795361152317202021341604698520413381292881248672627896760665618234829748837496010605980236772401449856822628132578372534260579184277609169659439304406467120864135369379659442160206901747214279026051656103810165255557766420915530823940790918772962490837526769486483260390942501471538266110210582040458971475995028844458497021181966238065315717196804517464569741854034115691076581758709810044197808708661578102310874335828080961950039152559019868128046279874767074875918756850290277654461521503554761272581588066357004653032344258338003883907623695383617078472224160381432337335143216884981289593900376359992253853822221759413578988993935436772857764709468912774419298613037154268284810186463737115508948688373990136265811247855695446920438573425293458849332411403687552102966435102184365003726693569322009456311616469951005742998914878962481005513410843995380866335687711498933844733551686380808534242484470772791983369151358286977704561204591441767352882455971645987007542015478747028227204003806835343437006938705150173601899335892170600512638836995011882150803270575250153106823877150867744543317949250641063503594163532166436580627179068868594755146548339624563107096548249013806737293897800913578287852731531147408784399594643858279587206784432981987025367942971118072235253680592167211934049419977537908121917525353335277013696181734359368140222841650017794196870915868464054037317396990740708315119195306970511448544271355700546279799897715785825169737428150545651648715830039877857156266513419468329169906326029321625307456633572438861239406450428156679469260083204952133051684564240755461246588531466951875244472057518334525895430802568767255476987133823018360443891497518382780484840618110608393075054086641648521842330361293464841155980904709608005165852942989115475187181973687815973141982996599585015753364566695054786449840973867900947109710553572329190218591172262520735977972152003383688292452366606080313964231698320518664545035477009795402627272822608968535098820622489921022017367572957318212033744453506453917166235119734114636619561844989938006465162837955199506444293522770995602702030210874586919077955529742078090314471352773428506681834362860706715700023544826288211197209232765706898186845712430183451738827025746645708356060141751794253120123471026448298768484694663585821510202495105264906141978255350216880948941530528076046137818263633466344365595770655835045260775415781114007099418473677920873677858963768375960493690882457845718050503920554702727913526577190184440898296947837346431158266654872596126017741690159787745240346627311843708875199667484442833482525206323991444042455765931625725140300563795385827971971626815556201469035594031357523128183306480117354581467511276596025238206675172564564166587574671512651391388345429253866887291987271350923730964634354685620956284788230315025444986376000400045173075529767023225134869133924832911183579740642691364092442105790160283550000963425342557508803912205561964929078681019487558317334188347881614195820933763508010470342085414456336886197090061934260206659063346572404861094699282425109223001397089974905654046845007896002851733346323223263741354963232541794548906096867836752506814852577809025833193231842389098177678284488512378716063618092566961392469390946741587428682509796858073871447976726932842597179366245612839468126457873305768938323135698744633073511890005149922863374118839517947349027452211204322514300975037530580537127347862906495896474793316853589004514049773833285333198039124018097612621514266155176732459680074007114871931531626270418020921582539373148246853918669062409515858307124917127984404994195668677774389151468707787185001375339496381909943266833463201052161589812199235444136069572742172136836503806774173377945964257661916892372508713014549487259809170575552883591451751152972293528945316475876238035193193387554562819370699476800275245703422928922766843507347319826928803549855508111175913911368349228194459824474507519580729803560781515441908311574077239345357469775931610025648911936714984197580428662959921346384427579270599526304768002009530287688379586938762097370828268510124141527711247462435960543583108348650758270115323020880717557891942415563844052485741575521034926345786321638893391748395490465225496456389785296927601095337085121295749212911891627363293594653647925464559917935221742763525400347665325425186932945947236257651938786079841968826204498050241358394395488749223926040025386441499180592463325525503124836289329293567789921700602596446123228308353193797340049144666626375388472398675738701559813955123010225836765505904578935414255988997975430034081167907628107881148902341790833515534484204593442120575149865275773559781447054002128188124378378642478287140260851866118670822407268340043248355565225587396163628371866186679784954969984486538147737575090355388493599822774003936086933791936555183150212944054522151322299408091186550055518443965841203641664906685263866700326413032643146594016370051006054421232848573529643858598204968173703668943075129643626251971444764835421044985804507819901461842583718302955105619132137687538745383752648268274172571483966999546016435981226569928510773734215228751519175833566922978463496453843986090541364387767258653504089875468961716976845541217521080674105300747604175236336224623708210154644327089277240698867918754049331094367127514204891683821095440057643244953935220292125503433452859972550888916969371477526920413062192887577194912383771296048537939490145580830919474710963865722064891841778492061099388337378490473870045038246281718733777755516429006775046896522663720584229233000873719685558919381059532201126687510380434941222517336656582855372767516276101974255983804282404781638593306951027633069739145423848580747001511321903468153514911226821781615273658985701762040938360115935428320360065539591442160213557156471173722648636893647903812181872820539868517176816167436106674237568830928935454926979937850860735929917324059172402683284413251586399947725668882237792354872926900586329905772074770967392240324278270072501884440790225335851957550850711605367664918440842837454326628864669846993017232638477705323240035577124909191828137992533277451108384421517624309780415279475716799954273251872064314250751093548979576145691313570718896833416776336898267349827910086742412247124654778788421162293078678541670030934539037420360471600419644648575748536202327329236286871085022220214844028687756442197801697010442832275076225723270876431334833488889961040659758869526409803237493556870040803329424752061245853675895472879472656317104465048405880336770488264236961284885743672621040187851564116465924929318588331012502790963916818894736925351009090354588389000224486070605457745700965965234464997848116273270297899276563174910794123927414673309550064684185478454492376676588720352990612314873304566298389819855164875003055636746003684525051597321366574861199596934285519033208968780830145616467749243683751304365938335986858920691791772694128646570717652634045257442982336957934579495857000195500795288110196895097446158959414706376758562222538083315028354719526573708732198956718694616354739465722670865895501094945824563520076085945408185211585417231476370904907794486721384120649562189561238555167438909355922992536038320842364158495019395840035121957689740501483190169682016995115092752444375931722703081822887562967242305856645963604547024205599109462140910284388460409929753292426873353271658312518616384722816726356044958789760738790502081659980788720654226566153957998933191443967129738558906553921058406324201404574459211200985898220595516036746349865982610478332137931692061842865991608382471475819538475368323515016853952732547619454758096731964133175156410472507531151249309933363640584497902844644934313606633434093325084833391495604241296696858626665452894352131525003775995698734369422501428707171207512426295187569528083507081688721461083704031267038837762777855596231768534590637746661617133523456882063778413947784608589115940736884762735266917923494886013046461154076754903454997198555867777130192008997919926316813085007302761077870891519196986466475660659688153586966398879692511993305766264320016363014932038410989621970381890667392493434229251476116237401101675114667988611909008667169555801496623217153183957936972774172965799249264331706570573157401720252080608812035207689393089520086679856434669560243268047566640188785394928270234320934237614411309693072867821844038488844023904227609208375410420605524534503170026347330377098457037687052543039226319008640538588481819070273199342260786323854110105181755393023625776294505140252578850805837735952612712983786773104306453667738742931095703016337954016402997998314248378020018500814064046669712959892825268271745607563384375341979906012838121047356537918981199381114002499442654760944262625322182703854876001247344656826362148128501799972460453851198790019493049290030993154352943317329602169097849482120225397587718056705673757732310447291000417407019814431639038140555445702405658916197302989307092018770163296387845454274143631485851658196388895495237898601705033300682435670160378902616869040191298384280720202876291304275870084305749914422920587984214957430421859033218572559521452860633513634013993506135261214513450217007035696688978444362238012182500625543888694985293350073852215999265350513149475699282658240657209046388994191638108578983483938148227868047606548784497718619790158612843359980327490078254534554005853822255768980988452600160784744910655927781368578385945610880430382335411665081010706436836526804606156508941866594460427171862464334275742817110732441706945550142635769361321351149326539304748737951154778397736136773976184525201615355421324629438306461296387128680235590871020499882285784326648761029526710627700038998152305023673127448430730391072588801592547203427809438123998819040875895820571307057563657004163767663586345976111448562501789897377473138207781884306908213759386226218076444390226270041931741836521778935414950943966121129704051850440778607471875149850976242325333763479373167428392340751387459542834594031004379798999505375669666132706381400992986224238182615474368609989508987307887606144237419068473654486273315387376553912212250133515568421347669456975534767598126362492743255702464601300736916033966826323100641362455875605328432054374398442483332679447076946147694891806029568142131578980215957508513128074569636962788500546528698497858611942565319713717929082946262426943919020368528544294886905410551657233048769808685670837652023841380950071945050145310300345813070754168978872094977039876246425489030723056667143121626343524809035107997529008839013836218774990428483849249327063936739899669897274187603209186922823528135858514901884257910695598393553322068882862352835837390146581328594835635902636306913641774199730292818962556574647415370100842326024889231133830247073440018988431585246380358804526553293825774257970299102160165916208654550103760031972062159348004726783702525578219780924270479880231734163192091161217815758609495935379151596453682031123969694867245305031867177181009296169223849523898670767255164739308662121863192809281931860993583587646042711735329487441310226029535130234386121852100061794090065899341633221250021632028692546427021832499605429373342458611080317351278341901549837836305684564192490278371024401437260081584475160718213734612991014942141179753245740204523594917419252009518543895175758105626878429747635721068332089620138356434038152532188480593900179297160009043706113378397754740888804206824499307061316245137626258754269907269265211938409458068085282847931041689116549649440424950821390220997378243764486448219696544117582959774493075468028385940442746058217754238663460457824803192131250416359429463991208450972814795821434207953254896280046778553695913851696258996607090347010622096811673241761412373882242427230662084468396642737753753842729199519562544981994681512210470116954253161815168974311190161491837571820152049405038052058643385417373850479133939481520869100753072407183481394388222114679030079535563988202564942172165378518716331571880753964947783181201658770466634175262693111398815298020487396771294299353020096422943168806814053533047710867281813399350713847176703646714083250481411122186546762666344535365642214120604507073712015308107274571897764663185093010526043471193990173738314543790254010209479592220688973954106241382113050749220110252221803718612579195737005286522045268427193866435606681652408106776971939915923304210614304078300236035116409767822491237681171438272323235590628548653220204965650897529007839139684738127818403800662615098554362763646461903833840604779167349413824061501836075738309475753616053138168124670857721456674596034827609369371324023741205866055599064822018523369434693472968388123581241589833651462262323927592637576034218421700735380514879406456263553230715327498580758824821844571114702981843633863228016143092081865783925558081326655495419211069988327624510447822775264692227148697329061042647757861410519178689692871595117412882381067311135532495454553781445952657029328003114952101068600257630090208320689060151754337804746655130404851701512467745872191882956256485435691387947835092403973590404946409588251127576705811492054726726639588807759871834279342579509559837621529178956895601129541431135424817829087561278624608286991051490822602866960728726985504389708593518525612260975342197783972877265751995287143085558797117201382571185776554791656386196492101395071799936643255334357181269499249266807937499370839843403009774558785489601390667748771640043982463731479329470488687574584386525443125632074985027951227234182005004531681011416971736348110845739841399456214399193931165365865825056951498289642576720880996678579677109050890495410350305993704280712381767653580724819951444940464580415508136888790163625211071175327396137941232762930580664752232467802724843167072435471044889545391425518710178683433867360523258283635831780888239866941728770691233080145740748553393107973088853808053410221416236593063405292042979625768159362509684943557828324314362644968117572281731829369218861546165003287942277705761909169889897418422630711755467495383572892245469450494221023522776592818030290996580958120663894165915370640937195759319808393084088100628223469095577761311880091644312131660553264246058715304532696841996612144520621163516284915361819914705699508993158147533795531974425689470301399923722226949345579528658401329429518257653953054606732042357159966832883022761456223734801168937130607503293557126257159109829297491432650723873799176236523164218422019412513485457519717497401280918130514960157612717485874845501879645531782791817289415410258171303298853496872027350487272119319327071493412653426616003686325224493851533733028787085849629449351057365342548447057252963531161828825517525705413177513093901376904729077397048524464386621936118239326127784515948539041651606597405137524910287771939915880515110901504950281773640937318381616971410415231477523315864096830453596759331728560616765748228573568919563196173230931779505236627064079683043388054333657884150085032816505736181016041807678155666787529684647039892231615168070904942366623447696824034789853959417595518211480899223946323886503711411685067028436957925405489524554444360407002048293403058207633734790558021802447826051024844249042447762523653036424797752298886966028229490210463722131707672227282730410932579945394262134361405217236816318931392956888230301426213677697679044346534115022414143527334611071283291885477970580296757840620100298998413300796867240598576612292349580137601875560002021665210643228052600089933505618364931207508339725509561908707150378548278678552418850538573749066890063743270133869325105040426064606358801881855865598166933405298063237806990145939717195122156246496320273588398500694182797435381848592985093633560617954576161726436567587154530476131958001539416578349915008268673161665859603359340701255377530446931276961610198079751835594697529772368576836088505405162997845612759543481627906697466489746220100690428739551558376598384639359860421762962272887110636071073368429538911192738228458265941358583565960584829927212408354844502757822373358576129791916471460000526013708894772614227938717145129270949561052208878244265328467386966218363720086975443538838041213523110779322908815815610402481439922433608089506198500139664334382420313573284295962825715720573447961792634535714134402552027188758346456314946599557399519875694854124877921751208685983468004049423006296958732487140813231202975931884444336310328270878339605211832722593754432374375339641195345081494407849989668443235801637801890794942108511053680358421672091648963046753824674762668862767284922320159889666689193257692305365415046733767551142223357145560658653585506266106216375756994307168678270865648464392287769205021237229621633794540382706761702052937425287085675236967608993385667606550354037966098146884760037020826923071450174839791749787816965877353083466423378077308215681128002925882653031666194360161858980284174143981282440650979441228563186404096348330004975923693801832374777773267199667100901731453539341805697965767215648880469679588529264386187365374669771240504293395555230806406023395655794556073549219267374202920002738369056901890248809090871066580894033155489520963943334599654140464725294888684863032514395876499420672130235700497794600952670813060680921017988634961488374418132598350228951631114991367512812485448635593656524759316905235435476473684933869303118449901056619991187035464916678647253261074858576561860066975738963686274063447532539303157222671708922750985075113282656221316281322118639699594631493326873691089189104133274043704968722862727655124317714384764706777262478599159623209932686308782506146737298082145892620807429041305359274088261625545843433858962401232570878783046925963617248003372572596896063997015173241955699540991662416203457428334528116546269401182405829779246378722926877222350445685771640535935377911000173024261491376088841450968227905634433942230197290475963173637799765878375380093601008176282475132551901548129204980938257753990876615784881863451948628606838709777794317836250811577552514754161807003509572241011684067057815477639193742693682821990973492630012971340513162163602276189105217882903807713989216342875100162207502024161105331719338615028080014529724109489141155271053848217246098973876739244868386599861533742360681141265138972040525003853613082823721804699789208285544526135380113083350011381072424265091203923745192742186258806161764170228691996561273986912994549136259647759242252444909073802972393631274069435085471724954072218271192161815039380271277416464487369369816660004070319800537283153915721076113973116474196234115757015966921042270637566380008553782947019695889232332519007939569341436236784485480086696990882005579951523748344759409820946047322676290251836164329975999763725385010154641420952691322368944237268054107789446957756572584597791968353819082840215112547038983008234460526007271458942263951180068330303073195772261083699925646848524546582905458518066871482181783396429837330076358064489167352170963459975313509328091935070801102920201740356114439642235909368162692512369523747144862789557750621727526893953487271563623124505335738854012525735393944852186102794697865947715950565749104957248768995374767464338549476232605727798520918867318942731931428957392972965308859708155492578942426637947765298478683275325572598820800272688922265832104229904583030078025007695905080551041179165393297010770537243598886232845236615522797312127854797783884279754182857037779723523975888774371864307493792468617222979380494926437791915856742709240392740915979270830764405290315806315748863436470623959444973906966961572228014529217293084978855042228362327839650609392942884775674990945227649710823841693844232075988214168774325538156361765100519191999937065053587867117267176890745540659730567851119755191984836629022788566950666545374630111620626148693145152542658852407728429884113716090512910448070743199811898008583348278533932631328025877890177713080332712886574448370433909287464474440458499619469840767374650349827087167849844954883692126431817746799564912066896527612292239144137320905529223579805438172682163732947653021825899979639915678929677504229075838339537457173803002215709800340466087961466483768448704527642306309349495712853827916894761477048810147903442397811988726525618741889048003120603912486450939587094637705499428365549734767201665678782776857888792353374160087385039222440313881339237858173163915250040916593868523980729887619531368149059426886508612432013251963113609718534193256344910287332335604531108812135288490381024231342009114855487402127416580660207522361520865749498121625134488663188691057644167094843828113972122233807310729677954954659014175028480961519201345277479741684593394481344926698083564296820712607420815442772016614904094072458178635157650925775343915169996265110915052520963049683939290407784240181430219448637615672059235165561650061766149494707296945338828266408445073403122082544954641431757573810967421250714805190260143738894330331316677617188543786034001972985116305170574409876954269339044963827657055627195769417110311797838284889031666537350193432990045451459340141635625879251792459878373531137682647286576328985640273709511063228463858158903771913830034999471196339466054924058881289901726023911561122734147128214427910609941027632179758493119673746397463934204837260715006737740350779699680779644031236684750870649332885627002900609996914869684740287621887761589953351684727470918373835595993229341969045032947997531593901092803441693503520955229903736742371892322446120356951097869259440568197391803669700624763809583740752456245835529989782414762163676828207415901080506991422214500086465146397211618774035587584060275342174966329821769378981133099463412523842753480917597966374528786921358984807182759058819832073282181201078972032015093543862448060156459714054913224236767426582154545192064166845133228245848703817348653025676606340565925613280670969543047323778470390853227949670611733326985893777815076103898929203274028121507710842328422658186618736710282667937711454349250007004001682811593753190692921309378231341443997628215405554131023106348738477856054635955676485248524135602355990082377760631888181595023299849093255323226194717349214942213444193876635077336339619785407921356698409354502538299320744905467127942845977411229853860000564803623045302852383171777744845394230951141389725366769205490386590722779033302588297561840038790820953463779161928733669887825511050216182863866095240837276286069279650029553843500960707793443794985230594600376230459815678365072312208298926217915370246655708279141553998367749394502316527916127617197076672528112630585577528718446646313833777832734561703392132521200968797658164682821132531567489851426262201027092819173085114259133695364931447322696021554423708302403790036981061665991261008146680329741564826306898382764242662379779110231536197994576353226895050657180920050229170969148885493240500333586523197839093052417138226365655817207288029325791826981596176295043452344350940083278484424564832849097648673653922895346545748793547945773446227360627089443130439724503113149073332225014019941447627868956568651944374205318619327607367015628830601278022132469940331212418472678896184251524937435929929858788905973784562671824570190598109767949563036014471834226438126126494565239318524523238257177325770448654376043706216445693107711570855531948695613865953624638517634846952636267748004692084281805312179792945413864946375481816868762033500431676825421455280235524758853217714159434023759395209373089018348235303752909534887873555721808186420211815090776024007364862135898290808149473912182118558315987063266894400916288410650922495837389828658523469940621434921384639271501676002095439969265656721973698595151325300267021489851491055964799560114819101158102440021157394326925036248767093890162461619185541818169517230610379415421308530047553831358040930564566228364878527754406536595775655040648186270986234302546782026734491329092639723274905742357373674254320441117691162494984589553526593286459407644031829718603352040270098653218955190259419071205844051593300509429668176733782262648441196600061019278840493847194918711588949264855627636718794219169027219227486583194612786009360038928095794418655698355253196177560843593120769782276305859471447257283139161132382177318498413777994815613062333651811414439211400277272375935776171410999725646613031189342259967489428752442211612509883551039607104036985543566544681111961944846447416924522738261295918721181551398456042402336083384279119913400676707563510464837133396335047214896872147064482689291504100673536287418012867434172519772753225398140679585386230357118224773969153040231076368996665077429634804249253973065775053198893981526749776592053118813763388125253297885985305494384432568956126648869857897524514100914051650022837999235611644010357224858796303509167423057624035404486336898511179407738272986784093466344370807804801452326963038738755982399922236856474113963446957381574222295594020398330889134326015978912200806633166084489145041488721373064887866090756993604900808868305126296360309647783251541079041606596173760801330475929049745693602428038619384147081994282943689357249805181521509268252397508314221422555608819870537481081396572561458160605782926639480666063603255793257976847476086352869599222137849213420877721553745893929497428081907944126301349982261587402081971972371570511025357879670890627546308112982918543608196481400312623022595301775920385905824624259627121040804382431827814625682538240587073579793679949997105063757514261138251631477194898529719858371246386987104762068011238216973205716329916225594219691275244475621798698102309977399602786507668386193420116311777350926418457625936416328223217602669187372875537305807449808567707211510264741880934039639955627636449985555608646449520465201580893728936681648948025406988068798962104996245020653471479727008652761396725480431905078654579779144207154269758520034207201734100745028329849393149569467140219333220287674719109664978971291989855953213335690903029597331269073910393791795286426353268735901001865143211783070336235944996795243340061138134211766031774048397559113983988006946307205971935518717514840046803441169028215475587400261960494800518178348310075448163079464184536159303239960063852535727845378507685860936654883668881810363897090098425866702227325677460933937440931539883422293450594924182663666269877155408609820739665072626669929327075739772450247597663565546084077790016516952738433844742192448262147744835563480608550421586133209892132512763400017248624037948892174329314988366860077017843988976331749298600460461617653386441243232279250249810022970521489766073033650905793165474371455604478601661426344910910256055704399997386020598242506930626433098756698963695240685034672450222944440701115155154243638087181072331105598147248235805052821530423323158195770053778511647094767326046911090462690971273878113260853942350140951377707684004069084476347908178773549488076884094514145563219016252037906696629630175883242480158509152555348494059632932666883041394761913693110204337159325140667754529290544246813617960923183582778190501773235957162151762659663235033941291602995994994599229595159139146080438582910576118852953832414182233328262073524402810637277511746793625342386044228361136470851241135039006803265396872369860827708064230134089222186198250579520004393468631486740429303173195326101881914489716295941378747834393658938685329619760720500761239932977293820263601765001142035297225901215980057835540035346468172196607820078675459750773201698581834544607165627933698505752010268583482701651591057170663501155291577206149730010698456420933730672355181746902732401706502515919835062275060367078143025268196615216826224884305035655569749722832519013171289591369878457020853151407693722148635961335919718435275639322149920967638278651566941761162227667834743763587987110427557658787178408489927296068195959524090960116753217232181654653974944906878845127202139805686882313524242985698254206000137150896847711998904723122396237469478222168380320282099623198419088597669111430042408928326784933248804643459526952027942808234013937089254394781271806167386821634191440268845044961013089000891560264759841742707070005942553891892025321587561695660547006928129071601520191998007637417147861986229486583811418387918216041101298999272654969171986956875337087719691309459757347271255514539304508156131864898624640675841884451171285549822407243636591131456100326456099205372642610847492538583878771992250834356771988561903427204761482929407381681729883443017863594064007890448428619145463188408067947801739552637991397925306276062128440837814758943943037747706598890689717838453291063003939976441865732566119402838830512429919423836984777691270218940763605710348519261351367525446416853925814577705859335630367507307882080595839658395890308005014738256775665240377090875548034559296110180066370680258864456269814766007582186737892825661380869176600078036751262316173627554262417997572894476899704082005510229441907521070910377915684129243382581460744187929159805180279239080901269233069959514226708293588857522239984353211939511868809579830736060181616914951939082788076345483899752743580509338784029809126402698936708141612218370909226897633602260395578055108268866022494401016102377729066322828455895134290109474866901249284507050285346549743630796020749895632231061840613971594911222556098513208673443017605750405176059486055615502357447953153976701094390547952200410904106915453347615475732546688108988882488056590610209561935948722127763798075190011610418015973099154860445310817682510483530475801595616327044095159740933238638589172014778855668262203282050932195993641641084989005845767059510114138450821276633826612899383587522790951938095201028768966402605606801698803817185646216269264034982178058264779418731254845611263734602184000736663319057826286502024492149680177581660452030956671351392134655357163536025305391714060898088381615766519644936570056053066994813333286839785419180613326372534802702590777567871637225777285203054660175683181034895046462728246647582086299199997448277239388698680777509171210438600040956333157335262559670670120940989472428093839482119108198173814558594347569564903578914865403089470314518383647813799845724864205578023381266810148106490730736174195262163673474353933057268589741582191724891203087077343643048687335477096563839938656304335582230357305292014665651979392070800714988846570869171536453750293218202692491896235068872379272351146083026656295077644253520714899233844754781548109323428052074732865622015579920166115038440634600810301577554851287801674311014559492316169641009477299896508444424168699847773038021278009538116261840405971334227117993805002527417516091060238168782672708581225655984309499824351625651492517651450991821283528940465068291137632132513549456306626330715965120246519103789270151301913199080274796897788081413236763473257483564726122204501039334402319685615109278953455103600826754915802454745331415657435929788237262497557978690532750637244223968863107262514864397015188204887989034449177126124808645025501392730456535489346161906441804793209025599678302255730924413272005589042228938080096509356411705520652709052453383028821090529051908501977572288441597842935342243339368095825013638423277551764575870065542913196395012715054117347637273433570808343845353386367036311763840079149695747350968769272620551154464528131282522281243405639433905640194519731061077686258541396717455452389259590925450331187582886201065008496898921432165523822735632238954166382035844303167279922641008256908186637790858370718167880882003182662769456260561261922900150695458614675504118692334920020673672458217004252320949202692797857073374291997172337976562557907940670809756276892250889172540557243695932086729037784075362378311388196599483849782920753061397722805429469288453351294573423787684218470327246966344522748249910218928611418917728371666460165224322008205608608613066638607167444380388103477712699210835990271721466821190137344960226892838439218561761435746475353818580243561323829293315421410554262395366099621318402688577847046545064546626329163644585510835768420619048263884320779542077592905220673366363613761884746814721409026662590471831907833515178121146383126184618858663720262002266242071346396425580447749646643082036681794235261229037631746978133842954834320136858582697008622044729583495932230773707146540475875320184542612699513130547342652570235338788156703760397853639998343037518800139118890875549092675919304407792881943055215241335829556530372726015737129434259299683129324052577498287902397288192714605340729499527336450726697895626855004780875149382607523811297863851586963713375103599789143258278746236786998122031153592132234312624114739298308803965886148382285273627299124052746993226015168998099547754132725312474117493538780356443906056571284051191145467686661247837757133830332271956052439585701819266016891073557775841933544615576714148887683028997812771836307172303302568250050455932253935279927631419672701278790663941613588974830200119415928981831497481547282023555717146548981974342646852329268372080197468780728786364057882300586200738794974149054149055181641219304181862084069239256181697181596314173546232584799619777796619696164394107854740156842527158348492266024950961392860097084268506412085893937460464994106676779314375009405124182074982214692254210428771410992013256300238057272760395853776326516929109722820865189716359634988721852958990407163460335079127768537899937396339729977135124436098531844965463375561810589637957929941454668709687248731566143671533368786333866788890338746879033457225891698607311785573624674890516517435724272212990431470180008712824365373212687619565458496009499975662933762959619866404105381892113287521080849365761212134430400470784756154864090638101273469663399521841149890503475869400678147715769100016009908967113232552373972365122495387295225818896884917416391083102530542165298180821324675645802199094142179405131561792814001729142978514527142097130555371278631176025501704158217472982100051336105798150876598250954807298778993374410992136404739617765787856390173836906599573695654511044437850459306885654031613738787922571483531778973832669058753341327275643528104557684894292661517877394720111160919767893879397777638672654685684027766767885300528126762185046915439431939088718445178543755719558052794231690241216490694608832610458546561802440015558720462667218571090999158053304724360384968428992903988596414329527784472333715382788935303813914875595418705813802448982260330347212886677703326774061038439457876122793586666652080521858702792110477533613022123796098966316246094471107632437403627639947297628528169635287008435495910366304978156447852960649019778931741901008631922280299569269030865066646561994538390453776431637046377863193508103013256384573777281416487190035256138900523560555361004282393900698533139556741779409153921492562866931285452958041962074262141860391767197952605458628147175682765480130346889789772277906196974513021016997686515045986310582704019253151741113193020046386435076223969428990310552373226464427594316206590812340322216519549639259872300813835205924944691145262757964571733579975183507038407632391439733593455640593994022756182910293768940150913397869226448158568611128860785538234088546887573607627610780217575104713500212053701967118088459877101816364610719753264253724453124641243153414361235681684492938403821463042561220247354105502471299756970044547655366751499393874084080429872329441099304138950844878369915559377171367616699324508896841546308451577784636728391397398929079291823219421481184631347276220031813155211349545014091806146093660265354909424453795102028806301742814585021717690738715760766808012569324485217921098413075854298930744722793810973306103839125087516009745416607732385073476309879572254421613512863952194753123690754950518122155549063093802368003898643636243577907475930366020561612786547062002780711032061385960896148715357687682939627545580303416141443858335220044691946276653612798785357668383477461961333254189193484854487209253189336711400385383835602390835907793823608040076522519579354525711937225002596694346809211541805711005765286413534605224719591647763086041838797353892958601316814493361420323653731882173904001368873282875469195034917403444838721113107478177983601889224226121132319840415200769034167725688966766271333641714007055800664933861621830016989094841297898379853717548527984797418565323208579707546669004815290893005553929675540040245183624124134852097078056833426904703722730767897411058344054624140457562228651042251640783041112349277280675203793663785879425162703524809691560483632884874215241311870879737000701681803701950590406913486747518041780236612729892323437726328382804056615662370734898443512424283734396938951046630106002037398196272450732531724055373696897958421922855211032154538581210092371130363386964483430240058993158820890194829675150697140061748246823521777372948685989480824214814593772984873594643762867362992448370181051659810828234742771450251936904150621284932812365817156578312781825149275009889406621217161800310382377830489006368308070098574175240490789930624730530937821473758854344354563891500925558762548188369133551259095321603917545579253712036061277384461845226493866096364301772271523700792078666479541889458151216835740857154847423542837113051707430751702095774737849812375567164978723183985653865233064628790179809408710157439725792070716679567276282305026677878788179448497931352087618950668335986202307992753354569309285839510496051511404667197545819024967354750308759985779922496266001411948469621057826191896512141073647817204759958313468286566626086527383172830920961348040908066837456393631568475026553108939160199128236284780859129026750895357976279981875204060804095487888868495035012364375107536040713680372700105579309648618740232410382045397662067436075765751276521782957466615121921250114769521298674930984247405008161820539948567212421111482837299160151131341108862157176913516612176038651661730647508473861666087306863016483748577180741920734569929065784189227251844598378679150173799706873384314572800921815013180584509780101207058110098070709640875544193463560262317608772109055596277206732169979651351539144047614920173863786312827089971331247991538999912317255591232230944889411632168969484015929991026102514259422167804261769752568946981483588909050721774555762699488969662293933623480536234625997116242627857375852933241223905043100990321729841934710358497674081246543577205332446806271315228849063808304426972759397356029466565742594067304789969222193225564941079693564526098759777466331472988561388589616960509544119174288013941495644835649718068101286750295788431735342936949461127819564238337281968172983112816056623028447691176649955425539505870745827318228017689509061402483909916080215179916041024000941691203271502235356315046124250651968795075198140316151197868694555800787839335895976746753448796826234377049909296348537772121553469288915184706453387617328637738942633349826685473807162724417469595746653227818279542505258025678573368852733807056868081488342466691594542771570094787375627426224592159664821169370530133565078318060985336239654527435116894544705417464375641934914140363400234496221932932372496531408806717205437058292525655971494150089537812613705906717921811668073303927088380769108325363484961243685170689943610596781163784224035086953099330500627201472798663807673971542754092415397454862533252424176538884852430121521404853952016609864609190482634023561473541639556320952806059483853903706754774431584323622529105314012890229972909453043947985905645208103265516329508789961265195017074454610977201530383232973264739292706981826040886907089549905183268436461281055302076519799925427725475836219060167166947805352438974973236450816750918155842286265517291384477694724838267891646499190908747536178087875365793483771143132467050631188993031495454168271054461194749197294252541190402164346239966962998339470722037596939364568156533929289540147859250268169715565648589889002835296425622563195460861299086152732484517292161536205088216111588528993454511972764334038713123482850593992857714094941496854985393516632933378102792381655446048181622956172308372330956703134697179877941886978664581115332628642742263066846639254569155381079547277385105849637275243541705214497702280121535831116068676204024601816812363712224980340748716467043796135718429084407732090139348914452631098199415411381595097356324648332604182778491981278713181619728065174933561013571094035093514968556105586371490834509651619937864795438684859049759497711637751668066420203124484233954859793545217449199678583685169803165485632468095668577499071096884676711438342510826393232434788039806274087188132166551640715840390817847745150544777749065078190497792009881133225584748942394766244974304631792720091718270445564605794073830933655052822964548052370705625482470153784406334281973466172504827390243917750767274257963176614697464874502975086459217327050386959257027396669855429349308962890867724869879792472878744589950506367304859787336849331536866710115381581646818853031645831293955260347939240633367021827817838521482566154855052785232036898799220677886399576471455487224623037485982017605875152472738472542132914609284046039005302168384480658297963694136725306866123724250896316590928215473189085535723260043577728808612956529698371785662342697252049163459238649047248251051967844367486242083846710441001026504073013660135789935067909214391391815911844685375024746633034844582823212326062903927422338577193271551892572045390421109537607531380575348323196803759991257560733206184865283070304629009490705955880617691482950319891543100334028713420870623783293654735555963405768153075521469463856939739923044509413114131704551403899535775172050344650289145662631553793692964043385446507355599619419114999889097515554693437783011893483212457067273043188631443361491340471691435656380255607779287296922655372622151809964008200523619902706255345454038761033467895100794355367538021226709054368705414185364566304463294283391936818295153235965275209184748520989922428984389749705180431504750226629152411707149590424378992946996939359751728617684045302522433888448852944286812241211977939994067016935897878783588477722618362707806100218833297015904561981782453206993706499575155344544671437544943980114595214894045132694353016825962028250476890825715550912589971248409298921237837257447367256556130191498117459667045084332472884315326847931806404954310779505191326916942633122115670349534391733826496762110970846737262274457879278804931160934220979394461144324874713390057777688073371636136492502515164930812886574723858318901376065859462972415730759557360943595780860951017366084354332877992412648407671008264421021514316406335423558837405978549077357352128858669408177930886630248494546296233535092495783672234648260284338766521106794177862733754448476484836346940256217685878152235907278501963678106953037279886786213436646488614132007746239697629090633728848359736292053038956318413688840812570469961230931179483686450069057023672855805134661571023577283332705504257958760566199864308754501217970307039120313992623117253200125962055328957550518210535375382481417177267227046080643201177287074216749327543103501083401009891975527195007543506103995059488578245304009445297785495804139585748933897163794455294041595644048092158954976642390839018175334891573939363458423394094947573873108932899597588675586597524913451329734391194615481750434117664887062823417593074934828828606956455545686368343999233926938883134467892659340685517955602375981777913924909853518107327381578825265521340524684864501404249092930365274480607200448312508801567727723830359454144171366908719096547698386524166145868225623516342464023665330079003912499090343462891246458096423805736933479514902268767599331733875138250501273041091651400741144651714568516642324640156140178381521325731128226071419275732317323899107452067928197340333573458551171659369305609247451781602576205556474082053483479144939455447214835091819074799187254893726888227686368414668067279882100804482403568927739500722788891935200062934038390062570672223468657776869099211876772791131960106185989080050006054149761057805773467867341793403552256920158117160154976930157702379356413785019922465001828521459652896756090733648260307540564797119413407673998450237900834045473941026402393531202950373730482135382090835047061495700854515219695637090094154676237047949113033988858931965848257561267328561405422277484592806639486751626176337916520149517725668332748915629070093634378228625900311896785350292037603632475929027908581314720576234462601711700938720541558885732351727999816502668048108712989100304855239816243793851405960188841987896863801805059271496502573981713667651327092713211552369990061095560828296738354181849033664473161782071792326360307372102644852864630349271526237339739888207505912848718399414882223171346697604496829781743295291051874133395471197298228683787077425879856396025714964684606740957146548841567813178548316634621967530037630356036433829073082392028105709565336377112457022093295351431463290986148537600531015260437246036727986835576251985790746538034387526794561336948161194627060065644216847288574105152266720678474360593761386793776232275440483221498465905246471349355063310575585311838648047742595321093594488792624755182838556396833625135468115534589993349662863260178495422156050218365218443645200520171896748816453432777154680680006126972194925216595818864528010320294599014510166468315243451901527806400690737581220316072390280658161226971974853527066020550633298579601987951281389394250486943367237066443989276057285805167279211877596662504214770292917848115874390109496914995966706252413922310287048245292466860320598231821717153136096424577189435245088932333097573400714078528296031052137135895827150162463106656182584739655836391904481870895046354646839050546120231665800138376442752313847032494937004698410829717358713528410647602229694592629764924047078797227842515874827552366741018193295392063234426703473512497549732547014181480118247946503567754592940744455362851236091901442821878188827756310683511415260815375220039653950490938582507662176022422276507879966942064622691117933857172214987073459927335458067213055861774368797213349975655880156278653921403984849426670946228964832504561811914483526347699244417383730654774112622153608693234353719836523478518784062485893064274123741156742946707062982280024327787809932028355676456844293505381434555820658727906534403696597877934779033734845776785098323575703950496126279423206418208087481541743486340341585610951817263186401344054012975511561705358632843066008459922507477304444904637628515033987561780350365137015881829738720459343243578660050191800634180548738519006370656371238123236186492979594192858980421960178660406366614449558849063825113200156488653828682882044716056391644639231574496092191650422071898418545754489162760990480850805030052569630129874561755934964469673233089371832162387310050729007416914912850329587991334705345045966064992679023130332770374489670157492295469615908268026772769408677504612283842740722224532535018670346740304288208157604065132846331883430916162204166783616269782299234753618970919500259212646454195459196960943971028709930533732603529706957755160949490945281315543038489110728834179502031959011131189185952164310944232120568518513062895807406154188082051150745064973908871425805674052865370896955849927354861975185650218202060101485553590838277563578006127880102422935561222007113331313748278703343011950758151854753386612985914663455632511923914959500388706073335065691646649567444083096514382020808352504989493503983479604710369316535130229943163973391866917575671398147126677523309966602781635317738909334732869414465383621367282264777089630566960515046839719984458337516662670993646189896853715487456056295651786358594777616359283376071583512954680576161228095721164538865693106492653670206920477387139805678406535831302894302233860973599662600032378308530146628542044877428225123541263189911061360411785803027021033849383713477436291185605927541431797177153403268653935602012395097448368090522942608112650073635561777396927327081592457540162178889083533329002735398337915863811682447883703129268048682458217943774647152974396990959809941255841457847654696126348353110030936450665397392955684447734033156257307486649463240545743552764080316042764639347245121380599542314433439596286755085568851070680494118532985812855469844121729026637299740196200528196772258434379362426823122247986327583091788136417477145670702891317816087449196821719267322875748413806517541333802438206039483879574827140659032990541288918441664777174828998425938924169544713507168145076922300147342105667691973420150642779197429948930790181086286149245176233115143301745699666759437627545194675835230169299311241681509992580487400701968810477989052883228643615081407574596143911239309402698637882545301482716213308747020525871932427514783843316278308350355722432785973243870879029543909866295973080772938551003138261688992323975075474737061301779169243035082351483380693444896967661574261475699993699712951017149666106257233130949817831150672459078609875151996894587271376158840657983225942271899985670252972486587130061639029204627822207026716083757099856927726115814596359154632933023500278332754918715640530033020807638016478730006608490656497685348703843751250993809218024574198150989102374453335774449375530743132904761747342280532368549841343398532538194913853427396019488040115582519119130378642943585138038969823175771238470330869756801547402928238020116888801702827760604705635098258827087469793298454445505778047294906183096154638350147195351771139853515162562603350463430459212579260160790579043805646647234982570115253103156553945768875957436857020225539864992330186163386711736993518685985384378541532037149786286890794236109205631366954368974095996564451791045087997985550794936316913967861837910668781840717945195320266373694867818577106420531340958541694609546902635693322899625683244914166424038725518524284755629237228833024507532959936137360016810621321325108941657915107439944630418176003515873907246284878423140900461714035382834129623693231750764159653761201277866362204784719350777609397799666815666244626281366126511460134752745178905210886500556376535457829093881902659766760509399592962461482798777905236354291386808178248789497892609772607956832119449287527176838845216228815405320265340557525436830433099233679059636853601086079425578187876509013603072010917657149474002653174203933921343313565281107299406105643389799538225991617969926807806803060109014386629735276182576285863486748708970890796537664599481085981185621187197799934806057249884064342118670403631267338987037972954887257679047417347822848436263053690946855525936884266898105038085218074138417560070277792889018124470151807513993760354840225379406239003143205860203793195406378670447948928481553798948706121434972023988354840914104828639003954595374110900357886781110655040801219948118768532937214612937950710445248547754641118269842448208764501513742818819159985510694896438182459357610233565684185668575231841027503813643364539218062769414027146794660509355823195471891975882642713792108929514461008567597078433131579027853035157802503940960994917489416000536553301546550373924678445508585567419474919291907737265408612322279425743117645323521043343821436733246954081481719305784220219891674820225599322836625531084165524539882700477367295627784578102839438626378997226513443284473519843933703700287019104446977552131273884211828736355845213834613994857413881351292792812638509291416922310646881873270564280721129920037857902603778355840099498592560461633538415625604326643302949122581277233158863058166974381504027195258617076994638372579797847008913613201465050927904717242258653660843404097634526887698698341669807645204596109945670629476274579385334368169241793138679204299021592908373977098726269288147615331350288016748085819515532323351736364147853998545579433372755382716472445310816145875563162484814802276825141732762953844493816366480900288656241137793683382037637196987413623606413786773901993736321540158861907383973604169217248111677999801736086082678201263087484695837074366607143166603870169373028044835464812151513053792813608499917607107643133854241946600486592437952933936769433895460513632768220475556915979174511197013976565715811225769914527544205254269492288083909068450065466070449581153624114258990743728439796308621827763951350218161532186678913746703808552175160348679891368438413330857746310819926652286792600154527446845337115944911740039358076653198890996951395117432458975226484474551137349835726689304887089279384481559520691372365750299566777707833467407907095458749903832247489191470383315703418892497742297252469925460659128087353430154505690974221976895778486215245686529997131220753580027042888881447821519235076019197380642679143672149367942436142936379442012354789127672566565537723504211189805211142620723897643614610202526550729464779362566565688680418538902468204528926352568498398803800812259640515685981168875712728609796474178092752997442036850180023810528032841280160895427201895507479461327602628385327872431912985931565796813472058814621701051829044519610816390163959678566584789503739975668942651814817070119650241265810756021439680969388690492215851958240046816648513660474675779876420871917323810863102219079843522973649432506618593299916605991615597299757461745559575492572566697070485659279936098289377165836871331329382579060961916362143906668246211560516435219364159158921912628049357238733792395777425990403237955728573561710831070936654501942492553188852482055043215689252865178529302413075025492707767107688347352499848831490231695201524566286975456623402291170894088397401073475920108600516356202092651863478410601603527199240924983088477093434608963194209250837461239384619322313117638817063679078278153235019730308662999591992062241515414722046976801999354645962787694082209122840452661770907338213407360799151764106331761635723153091584081247693272702970345044795814718232495580905010519938873713641564182868143466417083768382407402440151406850390949839231869541359029574056373884744918126841059880921903154506990535505585756129225643155185048172118146434965444649094608198364078443362600055872722078034762566680048593327570969541627452799756038883459533601273001348067489881874109272713378929495743376182509030886234795072711234356262048354546489727292943416320779259921390677623344272705828758402268392178708087012439876513237509022211038166203154858334660483856797100895293486376333133690965099214066395863912723189909959813098059266946732953980075900314822868101404735343271299485651525205346037062357681600087168807972381344658400991934192458720204728626953999794825164336962610564054112298348114137374586438631655794662524374865120949667373406225361193821558083587031658131602160969845002048249788592455713554771648869099045647056771644839551425756751129763266024624217431513107819618850889170216129210908583097940583303208483743748250425512685811246189780612960348030610873772586819412177980020526458689984400366981949917084711949050150788524426741914048048472194506300489136985129980944735423054181490625170579694537103953087543858256785624317495665808125345115561718331385211702156843381214662221167260363055857673033661724096929373839800973911409949382252322178955437505144277987916951516457804898880851996914517149914438623732314759405983183767690536607056126044110181122976701421216176258443121908688730243019487506078937594964065167954920754859356498178229911761478042090264187601351849924128227103607303552468073851507526118650158338916780530697939406739325783916274721717138000009443661087672773667135109786782127837059584340295860466534279547254538754340431605745131870584873536420611962536005799672089038833830752908970979319693160566068873110622700811567929461331316326134556334268981430513098219028562744300193135814912455868265248847933042341660345963582912355378190123883946556223758195442309099079272637070132919347425244576150858441535016067776606488862522026614416115756982350023884720801414703577617403520412447087485143838038067704925845418046130506949570679146381137780662507453893469688304273994182251295573227879685493293503385094403839817667476229908787680666658864119803303571884037577919960461407316716147311020006347502524363899206029499768681645895051728312641654790029956737227947145932978248436564622106106372939782378310788329254757906072109232520934578008364189287528068256814090013161810454146189609694834413664157281198677778383398745676365008266351382757965835872581398142563665028294604139155471506614540885020479474829883859932310989583564259118680576306189738300882394961629095192696594888415831285626088894984857528858178598201021534889789314316938867272417189425363761498593357304520766747048528328434886108820874118178285325100525460126944139938745390513596462295640563649052350296792268555357266771919270843820005436235533305682389038278575015587029587246197648105315376919043266379820970803288576771667772328445698060517170755452776576463052130185182518317134546708100230887321374018942734804777203531815620424799071158573161451075190796768342314938196390610426730655394643571296998107250354869614731459329598821541043242861432101687854249220140952180136593838894687340273469817226479517572749897144942336298808894589908573453809940589225431676091085713720371187873489782545688164916050786676581288090110047338185821717556877954698735387300194060012067557092655776219017834744480434904949080309643624621885752059618795092705016953372694800882825216945469019714904663818249929303179273965446086857809386854180929154294687101162500462231033176626944479174846220070614480633204268881793922306133870274170837619117562097377594627867048141538519327477643809921372494336232830653839825093014435931724430933161010940027372335576098014394060106167369329812328422773124962984884876449290067180218545038808136574156602933329781307989588958113368895072662535818396370532360261344496538537420820839240297263599358173561737270980529343868097511102811136983559989353762019358483656047324972340829395729260238212328568251900541573358347674093621379566715350006096018804682799651535668007504543788407868507913014299825991886373233208271438377612978048782438951130407533036775956863362268590256015345111534824184468112112283760497134618710254784930448473393737374511664540052099073936234785138967559630270208321858582033731697600615992715047164690256464342700655007666435067579884890316647007820483827905937562932942295907911775359143822891571499269599759696082725590140979246287367788353274927156175719991907274747692741752981706032377413851918466885442884740779398950464431274925272494408058880659550798258672514981193816296433254541040393660567957001233740715012593387870139350072410662637108213403863613769215567569787111372730911551133830754295041238362952212475296220971562130226179561255497183230882231164560231432104688210279096170357256297282355738440074582143214273537918253058207105778211254844885735991172613066133863483484127402032223438892026405563554720549144529870601024290572920440930317776878439366628643951560567208945881163855392440087732211924340914361697257358956472948057296473491037411034912414615129024771838809437103402087160246675526030046655486859400969110235947636722726099542235653179522878649930281956159601019567807794991041485533296080458730217182424403493892927967710837327462227787412306127577528919716188705319556855670855591216769837052211225531503684337477688641321815510164243981382068683118169766195046651275925386534324843765245151929619493655972581755532820213989014345615218994013057848234310327022765939590844861081430973190186858960465577698627121743531219190447754561721018781399897147713096244011883609912338673376787363984584662847927937088392966817888939800728777608845061095002197138484949022925575351184155665524917118554756291200539333782221093839974781098521553604177026547248160830029159309222293884221392216204591188493268577204717614796822291650673297496270089062696269108560117761814155315145054708741332131348949226030979576089231243594674958362236430665759213526606378553607952127953967616963313076517188797783169266914304688617210413246932406521408074568924544894730922830059386900814043574680816229053792955619695410361230942667570395195647432188738063867671154754722994162758142717221367677185564348458712998711704115066668230670877315479892094123278760103180134029588034846676324151884415603137974255036943511079630979457678747743815461313594346841140961249944812252793729451131434193797095558674132223629204000705197041716913865570162430798612478469617828381224303001437448678979997207062597252186890232426512316888597569343523044748579611943993636317734418395710426839295266914093172215953138080113209276110211264008567775808556229470962105189596197065258548116697700823759391548076933728577124798685066552754231965229118486325645273162570615064704866833704088178714377944881821358961218911373039437648242878464971071861245948010104650692386688015423463447156127790936507940000033349015254808104203214921927271263460422483740248220930708833375885848606655839730167094029107470676567970790823099631057592560673110556177386578131918330206543537915694735424865859792558158007332881866888893396888101447494866112531042203511276000600330884874146240439936296875450213877870117032337671819830640010646996674610428322569841569743504767904849443187831189037314329456457499718919137684377475102187421931624020282827516625538129198104365527467295887562955181243960758695512114981094537591699132679083935116419154498875202859084880529506864531330895586243205866300795422009751899856959324577820151211448332725795988002502807964361315006672602369804272567999343762220905262299451164446544054349969940677105641793796798569361225809656662990275634708743277937472972754817646685013758214857007135176303799807123868214655784256019655530543785524834089683623302388690908156879311539499204014094685764753180132462573656625533634583343811702676719841372584547859625022706782438012638649211965963551941468633493793350071924271866694308959381353823656972698155585426350795510569696771764720421363296970486214581505863543077223224611607023139597435225556477913484852801694417282070991511767281378457457631552942085668181654294193886134102169169204809579830437304560262898190021098207985929024024224064734849972790142642697134156676096847234777692729068170957220988374126066232035549974892191582498775818729619325053414490875982676170467522874364470124687672907919735491552457247911104590406539187671017724483659987108583604258526420503365049981952810034924312271999057676120130418536213486037008909659715456272785205530378343400115411318460014052586142443276124657334936935646034327240752065281445584775883423443383800264850158254590947997234818111021099887710212434298670708063947086084994255499994526052906019526471518580052476091107267711311810083726001222871148178832995036887431039112876538548860683396989640851412464282082925511868070929009844649581470517793381653705507004246133672017267599242045873415533344585684762076449490167512375774129045582710665198093955564115522499484324678907442819417554893649060968689935065311135341815968893567498173836121379590598519069964002178216782930645030678044607231221584505376582444350347723282795598979764230037479583942902770252786029331179713180037010983356511474467626521841791200983651392356679350048808608392924616550093172863244047006014751716332042371202637470247222398176322726310956169003137333468899712830599571379164066213887654228625133074285475857961001401033146894586659976969905014089300346608815341574374099423138793843532650357212351647496063099051797340356577979327692811320318300247732539210457440512925217639887330593558541509687598056383516287261785260038979745381046345181532489030485338708568294156436733343699489838376702638139500236055866411659753626470003470488335048019452179740241838489765314666995030344818943015905229711827979638501876575635868204571100388946033793656452406655655717809192990654095626816705518519134113847428705540643071891557160031167452514803594330895574196720297363237769337832287251369516007782938721600049636882457637776191798633677801918810693417593667674370104606522419375966999387180264069036715760118740204285450388920833126719949618369626605214507000779405441331529980503341120126731962137338412890960599154640082991619932723588248886321099183380581676704860182032062097866920579222148417612234035308427520084884543298834547597378380179311932162729820517238058189470988757623147388831644399049755121328418708259392621204450292453009951786520068110941116270963660046188339394866382254877543177719407235889045303696402156610706837616848643835006874272751067387757541036585295596078254795823639164680166482315375406264153553513948948628811507049266337610083889466638644290509844958116270802509493410549807609926245191594263998941867190681334817153987919400573442808118342833089050642423800608673869349057105771921960219784466654352113220040303508644266549098645360552799483966829140964491526833169146672449171415948664210628747040273187373677575357880653252018756268188504074763741870643767346115094597908952707147785359441752127899572750380337088389921021909496328066442638615137022194379328748724866015094153627609985825511380842982249817133823772083060112892128024000300468855273186341193891058321780767882462418827300663095890176804225907680127156160317724562829209155450265077301950200705176170314414479083901178442476473546370873219456154639605203784905633897322321343228159174654071680110847808654756995028837691745494101320826828100400498722633583732965254941885726124132235092143886951398145353991369218365709674380326814241179151282172936688781417859755581631747705777234379307490184414479086704535985060280531796832065340262872076201987921447907968167155564480162150659248432863318149334236242731697537188511080356901758936604261645828691959205460112999977793998078617167832168988917774813101110113553120120236180896939299285230632105715133468490864540636857953562683025931648273419083213527471613012626563796526701995935309371005936601665456784476439897402358544003778467972308049252910489475133234726419445550102149168613426140753558859117711211204816850986635973368515737580516981957192084197004146374250030342014424351806504971600112950123587036667474134090372393209666104191844218511260891508455701723199564860534197225381328011554469662730609914870937607548195866712294926846732176829588209654315983703003242514148236038250780911483464578467854820422920958844397677064780616751155221467371285709908871973026157716005339044040352153793929450301690148576693414914205291512096012885276325586007190827223380279110759852445343226565736112454205805205096917527935214523206909004159320638247676517200324690721252451865936157470881272001605038769760956235583661231570504222117863160315175219652445642229423909510943776710107592033958455829257222369083767138651563185235672011191932994670934434942289457225381216285302091784285217485467612419922701736843778888167100183556197798449179823656649915161835824185268437735688130761388317296242517129379336773571900809045683962769056009377608806787411212708067117863193731749931259749307294128980642149783489510838613985174277995336514843838155494561554307061180582087835601141650783965778133411486571202969732937988511170571379834807288025215186898529934595382624298666806169291650507059076429548451806766932015846831186998976936131521368704735035226494831052495965147690731364369440850734196937813330556880518772908173547241211388156212995278926788141602720050519278984336899718173301150002299138992945124241578839945799959591034028371512885142940049439852508803213264936942365699162777522226553740174715267924748546392863599535459852111847892434348802632683843625245543949371634834455819454590124432629199834985680820486219985042150508959413035741252692620833145123855163926214347110734227363378538816840334566531791419628723870718571229377719865347277627052643838050930279490779148792652122078785836406503325653354790047465511105947944812960189653127983680011581465734276017356158763738883542181480384800878657638514640163652679045976002169648335447356434929405859956168662272423313846864945946950872470406518152642692814603976249170728127150139724345360874734213646707550639088702410909734070455932100893931783209380121122569765052151154184931831836873376235887564587942191970598398754754990666823042774543811558677186519578147331824865532784483278115157571851375464557929721074265686416727435417784079036399463643045466130905032286637180027848259306020719819838325185647254673751618256249751111202076766966090515400728971753063924945220262709846797787831273721844828217881022929114236726272745126079410675283155650158344171315925024237481251573904263573208981331175297869412766634994588856904544536308322419467429770142960253411504946401024660731065341582997583868481069549148687250295694393535052187686339024566206157360384865032228837401706762025336254330891106675434751731742060811816382397997915232326413435017926647992268831841628151221999350267058552139389788704539415284834531595084996994774120222342080133768335331476649786930814683306230543738901184761910006818387067723206685465540700786007708166841522880663465768754139280665399516012614435129876051023435028178166710956209430568028190181447253562873541548175415502133751558385538582717696472769331394568280472291273467399966530882074690866819422974232328374166621811310916374587742634289990297946765717475338440158852814048361414935814853844426593432136995448608322322367030806398155242554618875498117099731652107728166462235455490646488131437584558030569272943509428117418696757548238039294761491374071377969849046482582478423282302129452717062518074679081727672065080035624146644953062695459166413185085021362961878422919067264004910481896921531418411724029486706766742286984680229754094628666719675555958920931867053241715657877686158529362446415690141202781413578999199983063260548007605485772038163547029445995705293334641394050629035004016369256976563818307878833516457290849649165272604483753899001241967938571479356089230503438529049624075682209561231861489655943599700917575874637635173032293175978046142679017054331663325995519045063328380381725190443686778581465121037888821996991433318551276830036063290145524478470834573809167773879190772061745845206166215232264449847660531808232125435140244060046866653506037559780083231424937953847275656877217976002294715648570007374211027438139683891375999132247011384521617804300933200171129196084031830646733010626386925621369151648295387580701959333798366557657851547693675275269305249578170629293315530685632622666530602881020745677854688035424240566160023600919335170547110736782855248244354557642493515444151263567276931999232666583508377295352940733333867104581038382075366915945266854769363120130079972586610289095614371998031640663303435497892561818555434487638006701622846079745827799970094021722148068188223259393548295160457389100022179819576691346546259644854314490585673633177425310532905872039681282766252308680924093196148974045041438726702075666395345691771404102432128217216691939921158769880459430841697421866994784460373167965110352894872877056543414777854604166383609460396924620376472216521274575030584745339874307478885262579355930717647640438842840572719797306095905355136539921110040232490245708126138616018173337275234399078238610897980406266302906567722856152374198059288108982281500286441815744511194911816512399521605322731087500817250443022955793710675808492222107977368231493119609538769923699354266645598041158176161535933788942294075271746261278969722834823118162889642630091245953532547024435794008323608452872553274889815349957016038473804881420337394230372010649328174585075206942073206938617554333212259032084396680238215286528654054997762544561400465628632570315116191020451878176968308202137306410333678742321456955908071428387032004285502395597376821884169684760806817173857686805813028988105581770068706810706347179868797844994214428275959239630844647870873159585704404743386355957057541281046788457673669716520782386916185937190384532617948879102904164895909814964490004119416083323626054559616007824427921302603362154202635972487305130296641477902668955487076791680820020560676830536155146949497103716160344500666751081223693052365534522549043710275813552819102037217826369128045986090639280912754127159223106607539294453844263517495026199465996349848691296656456426390757199058471187403259276017451189966042333731897616101875910240992012297682670736155359125330518561197814083827852115553651081321654914211360963577843040400569554555935381280126070644495064735571655583412494791881245214835753433597463474391551953035708150154827016490532942672516369671354889994184225339360297058849199370620148976598749488225963310028006884460662703462347288416330734912063555740304989743348172886912532938538002460346388492191505071215377767395035799084947719277255099904795415169535941405974756396958927861709305523855423249435632612569576096575632159592518831425337409637932387602494555148374348028509555878318186959544546431254695229628321827869275071822910771243376268478261522545092727539386027710207698673651655986899340593887558120929913437964372752189811810831139611485861319909733037318782215463835841637659992245033420628805769512091108300228863250429962979088801981789126199998531997114214076974684559216370218112083672434039038618016471849071203048732798618465978634617008615536954805295119070516065314804981233139727405131485705036220902392896474284736822802912592669678341793524057466343544908726659384929499115851522022686501424395249633242805924760749456449447527043517985576412951702692543847080169183609967171689906698290516062035817651838749398414235849617795237233996416251156736734347942704329549888294585966393278285109352250713080782086201870595125126567197532926507265277365825772603966815390811544394592949574055999091688204587812164180654256178773838349262790631141250607317722931427388775618283268499959064702606717994196535806254345753216001240451188012372239269303803905680003691316645872684472412703332142651136932025186626218208397399273352180984999961785653920458049585355585838974117943738910085703288243622136234591427335776370312503724536286989638817923825078624770871154649132499279971600919707892188451018157741711226573341282151969189567589942139778108571641277293974864139690753984133993196072110653927113568944109452928960596505560816773388266883646872048922245521064358997018698825606904957375340223192923731473993342182020141664161606473032577425391629345316065065259097966067239172174309820836968183388476932126563525114690033119786301550457876616207715177279764827905513069098569051606814558685262271036659358184511859655053895001441317054500811586511139327237269370214252708444669340773092922693217724982885269412574543477340313174009660168401293128564533591222014723550894033358259361599553131146017640676166293207156615619583372112221226384737934149096326601210669473753020790259071781687966625519578819368067629868524790007324712237989784639119305874059603513833084350503938774065240022706438110281955492410544586900203485036400740826083784077246883847846609778473566317476307699118623248121760640191004223746789524052573120959662669874384757066151333527333664529574520779212833906148564445351065840443160889386074044854162151077313507896894486364252496987637820282711544971273274327847069998563787182698799206617361569577867540496042233951628117783636973570235293750524144781547353429745951006960034544549949587220213630077721456217252617308948744516653334918933032606810329518526847511049550177980106246369876746235536676862714021524260891791834579746389478822969012503331706322221173513286079535959738423536597705085792546251913776240223193572201266328925419442258622531303269056670518295956036968982398018504905711208179984196492544969237288054395288219998893689764626502780548626766297802644752156860926678524527298887459428350644113517436383292227706301056155856417502743300091117680207390599424819319863482084567200481778681436062711564439040495139673742540153784543366478645910395691044631810654224401055268794749217581606134042156815473921202897632421812998683383396151022453487246132764406131308364509091496793864901274495733170265617831718642518797529750465812802197444063032242710855030146122792108105359569332422941256850923018513139503386723660300687974355095639201963792307173039610559431207167602109610043202855776056877559922680498446991059647407897857067076224084937415853965034442425583081127114801377076724128437501205314592628839525641469515097385733515006635344789731899916378265832204529586858789366008493028592552267873713877844238292654318274254180646648263120621418714037121675901529559641739262044663432182839552549099687370725800105273807561422471251934219201669373487951813741729412537362890782501400395094680514526124389002369186913781967272111688668293423652425890294771036092625722837462728646920455614690598539735583775211201007926761558355714977322310580134881710166813933868443986402475837205060511847286525829519967179728826478691984476574287756049746983157770601926130248802068770581335088365232224235497247409046870752934006467865589773296881849944458106764295390716076184384248516007460653361184401951006524225030487873987772058723643393389777294565928191310677685355886602140190661724023808659695477813768917724998113517855790627053647439024637933427774664792477477130387035446002253481213330065115100766289441559124642800600237800895099541948309983003142566447068903866522132037811165297229612272239851730347939151356873274251994455742332552530750114444877895597826415054171467774213227180741569183853007490838080890066492438630131468040292845174336919520472397633629350154449058901791476133336607433460144031031330887045807578987283745905168985815907183668016105956465244184117263992448131483123155656432090498520436301763533383891147469150284929332385092621746035662217578241740014496525319583844344490872956928730542653223379000454796296546358314106899195539320947306044846451502970540521971018769524990757340092653401970218522830304150293832291123446414380411825125412964208641306599725503726115528794584779238516993189008421699054630582721821426119027326100088086058810651836873006405346033562352734756827528135993574313922163056151450734431136676338241730974347607360763689088726274453581379088630726676940859407269674584970502526095104294896644698437661585629506858859630248690671751469518576071296958331857948902669538107678955579279751879520573664653478484530368719922843443547365878791251608130704412049193100788120881282352682161866185901151782517150418347760602136514310345182286818674798627383305168060474774067023795104369657637628880218161399154137827586159635820062712007582955098901426314736099062942056373847076470991760953551052694476735616559994655800806994147028929307890439370749479165507524533107171487631554888392172796357724710254979237067839540564934024248653918120632757587420003804919187396324526225536483054192686314602877421880628688973014534684199426646768500644000744449427525515887229354280101540550736895652137173861152402935297579622260071129660169183787492798065586178164668091556286829015617108714377641191638674087089639086034746748885690938877634102590170337333475871668525587286938150966722799439065072785545733840651046809869087530422001855531664368466902311115575094088155779204549414498734081551267082597724389652546560203666392976616239611588196057603779593876046767696970451016216419576336010731405193951958627670447214142193553301266173517225071779955130895099979590590785471764217007881276311706137465332125627989235183064130445802122431527271369517988045794300375204841622432579655299349831387023469248430672417528507839704596909359420528671554725707204586711465458294933481307935845870010500457688334765365028063536376953911739415686995539226517388794673502235561685397279916831865889670741632024988971574512026110706353058927661251798996154125056167120051088416781015166822635087387617203552312945113769678333338084149566745413636485952832366219210835037115111951413359915515733789020140691382016992752358631382886064679527946391172596785572098582794497851088631102186491304932233447945409425960477869801661603985982963104593684404590809524157923215404218760205585360863663407627063233082018389931604477054369178937743517649664525656261897618629312624957024743689258443457066762990086701163609843116382247166530238302225667542988823441459863764447643649511772945970280465042458256671388154897581490738275932456752441750129122310730097741704307193275947214974318513536908922593510138704925342943953082702219686103685068188223009742591999626678646169476116126001709296341718194483795303071524943096490315439127376486140559729825001369006667499775089940437006054384419507585494194246086149377422035385003628499485362137082667939577631849660709813914775922116303879388680215290545114106160925723030844528720378831821677211817190235868223327213728804150816859788543556915639616185388576697796408213200254737697884100487036323103989890081460356514490810796713970196347237825698073479033982055588842821683265472022994200374840428161782789061546594174085566016970947815688319740150817553835498385325421724943156941707198137963865498079769057443863746063055356558291391138997292154823664309981484885454542574223278399438255069275698647593793798531966624450491072266219184157772614249393015070662011891691169778909394956086894288916336828535585092924444228605998766813267536252025898185138997502963111527984026747003212455687344717445617805553463434443668951162164500993191409022143546985165417740911630743144064972388890999017399333673286213771916163600553471242780938139008556232076514664004759852859250208813346689990727422363614015486933777180896916772301492887453770896511828472718202035261502381510434923881201133139513571179735058969753870636772794436592574623798552370427173721817823991440501894745064828814905932001016979043427767751360429180752094798044764254656975144362940200515491195754781121517398601782073525658439931090625484508398870967236885147018280120179330456298248755785572584639903226285817165271838139544150497850757176146355262928792538920230782874224290837209466959766100011882156804834038266170007081708029473742903843121487709062444729116548059806879762196191954598944228526491536848559779690763167955693202075131009789328226158057546548810961965720893487436936160007565625578265703880159383472365153096441763622836342776263658360632514265831754549692148827582021152122491307348960970490847430658367185676465401190760788375314534983888238672511382553002548009629732276044768637446232199908948079756335507881347387951882349120889634257405364254791452405374017447056738473711320781286997644475312090121972082607787300083195385200829099405501256696523185170342406085247927275948769292661031387545318642231244876880723642611211267283194631707894376746237590610613164647830206340710194847126825979922425844616381120050155580356502038997713214343953345480991314049687899877877772060078478237752015989867487790423874953536770314225195401865691371575505347179384570589138285042948590304740783475769117978455521629830864873802088584494629696533061097973011423999237779863528208031901046816502403622091827238012183610502105440109625419504446151684691365340603445911669157674379059239150795742652450761634243803076490037168828384153990723128508017748273398008480963694625431145940820702046540399794926862267239969029150096294921972487931225233257049147514793847767009572649663467067339291925537242642173113361325430006190350780052667223727280108327237848079215778438685063007339722141715182643826692142034935234240905089315069411928381846931965268914441612357611342948197607637642025170218155786528389580530728023320103981525647562289867464731134896096466953209158533417121887544074044190121037235546537740103975957555920259746769619157249786629812051440292809738633733855478836872280801509659345057207615750142889366237660449780202906183572979253271574099148921199754945245459090130902062820930111401804772356745639209033414450419666209439847492571843351328567577676529992612035011320911643297191052899406513011299352725318109142877577352549642474851302486832736213358357088324253559561899885930726436637149941742622457801431379105479142809117902703001210068482171464790903169022057086790326901576753056311980874836097755344547504234015573719009475355274244827569098825682944345012310007235285515907237440382742442037581669128432037331860166656733071313366540376202214983128572607944927144224215973835878374648606311152181622875804660707461379838850570484523736734060365129546607917743996423208986529014083097896411636425244483454909051781457578302462243443273783828868992880988181732607610294902917658308133861471673206527693775105060422335198285656615303060038865865103689776313281106450125445660488199476869330351104036615682726367226805288825774487272836511897750884034109892690491140414484643202924387475746938203330487880385143669453834029429461274870423679245365240916795722863395596817737890565628500550608613807044421082281696448972097122347783078975939070838917218022669717640689540467563575124682431247196426931834561291578791667736202060342059696650685300474937602249456990297732651532746505515489716686780742231632024498690090650077247990081221754590629366557673449550289306577786456203364770595427544412262403895386541307491128619143104088370648488823128747118274590129768127291675947573286731486488129749700913005205380294917339848019713487924313625697728086892539012313177245732967376281586415429862040481918185742475893302239895073867506025163357327692783132776984893665884834322004474070157071734541263021473006434024839968116537524247970564124546259046307108891810298499409609950600882604426129588496558514392134410459318930692970200199044978427187513518731347304162211693017199576892907108878392743634170304106429831578220851155901879475338965605343529378925188070249286287286384835971444984220228697494736649897606438302992260961180397007169482408202445551819481973806652953613495208042280498207787096385632195605049248443910841918552783213251857066557729810846689069991416147396613876592430061457633359000063288873722626135059715868957786487570686913516041154485105687929622477662384508952827791243353073053504957431327409474241575865637543124038730099957674243358053048633100291392739576679848532150540854374613777577346506986999168482240806970226112340327441930285386869398998227155301010124699107549136831553059018434078961435995251994924767267621626587003759793273004794107971295002570001597023769341004887630813421851726833710416188702762098100132111026977993355467268732214607821553089541942996470410933381175544064109721467795139330435631320595690681954934083429936418849581283134073979640408262656640456489711699226858625080488143835852200623149737838440532572170226623469409485553962144419952117680073842952301934977237347213461992508429574278874350065228110931318719050786766066845668213335096300020763725275193887316250622019842701304179953411174101569839603394081164470443317960324982989112856178383372327520675568291549686804962083694108411822402926983312169387421187960746305201855143875711974691419511926690270508447439264591452086400188532484463254504091287158902951836106946748564141084921151990149151986896445068441533920115568791621547447618999381575582286376737621799747517728269569503182834663582633067639973544398937917117590404155300072122065131696535628347735638558444085653154112205221648655880504626077547996962276309587433989908001578344683855364876414283879069487773227186792875858561813061638868824048050884988477392633731176686481840400293152041960802871672704502831184984025734678842777429755763895062130992268879863946935924599932017536053832797072957826155684563829496059643556898850504018673776419033425639074650089501684568696086370207230639140848711644892315532590940644115059640903677142865178476626593120060384166104111506731495809639620187295181254402432079007239949514082147802639417867463253475251624188758466764129607717268198174756908828895384076043143918486871179054786498960419321726798933729809495729146818192686411820314014807419211457257449286283891003918087446663113914717204319527582350429549473265832298039175252712128900494739267843908988120228769620688683733240287995931786271505882721362041717473470327719653766008550381353719625481310227574348410726139174259188244062400288254905913419275767009593642689509046011120154345449315171096895238430035153249860962670000446775573185606065874908996766552134925767021401631189463682498701337502551793666502450741051718993804173293874480278099354484601624921660214441769152394958610627553434027498319993855793299011373490958886689656297810775831082544689008901966281336593721321759765999431530591372778556870580021694016243258900129955618847882894462311615821938317166561272682829861780923004531418682969135850555834461468903091010800597073520844133351680154771725851510963608288622655206694235603415326079157549602787512322397389853104995739447648766876953620156722082568832516394875236088215810298791586862407376703793625229589186109751640238858913788961245478798198377715195998601875145000580100954568726675195471278141402029647431088333061391639463265378589255955685649589958875093502819643685867346128151083023938478098581757177528536169649359024967823481720737064174215051403178083609939936582865188491365938140634706910748545185665843004140952370864653317440214841073002352203314356657130755339213195609958695296933487554617476146511773565426075390264169364026753037144436784885342333905047959773940673128628058294556043689697558424484259037169239940696645107166217540237614854464214703537840121744197236925979200650980700429506637605921675499366125074182297259811940754307115425914318214314828210597273743402763298247917618624140580869056686520445541044355377484482317897862560312882495962827710668272299532418934618039654476254420814853225483162941608999623414757885228229541703000414193682029135680521821258468631234448486959266116639964860552893358998832347950737566607432758073514096190141248313374531755914165641034168252841023827528969486334192692826793407884386161586331933329337054136526432831351144777930200551579801747621630403438636381343623747145335519404327742398346286706422584462039021805661289970719771702075666485607916024704501253763967001276946121161281455301927007720526033968993354969895660796978380506423206592943299250971117128506285888837573035969180380193025561693995886153119471107762026165178483895499795405654545635823405397716654765184881422779191500800953862023367425501816437609019678021646801087904620346009082144625596384252519266246122464487168967581812115445036450439044455819339304893427125661505263653420530220442148040711799273616443129220628577218124296297876600787605699714449977817959102454525692928555512340158617298095280425956670581501807846787092534917646512421598062854497483626006898756232325623439385507160767339268452460431337398707958226137586195924673822086288048856080299974316557933402547220550625272175170889951886175303595684497072165847815839482748083941103502737850742921926039642982217350175532144581396983828227770761948699171104608520040144318006903516348982559715388206071593774368928900295014704943761219594256799858029146302967555649024101255231365017296739723330047103640770419053364789752707014730689488190005673363529233589001542589732396026447385175818754217978180992116587644228604404939587596830653542744277159967541219771356628292899324887311185607476612308072309504937268040449677014511881944484812985375095639782426231946152401079839840311739780680750812208265279235227166208807712477415361266412785883367603575475974016199718077512822148210616691526897954626645079552979080415058243860201519159915492516346985999499235338703000261392424914381313488765324933048661326782916496807409316196201016112948318986147631329970366294160162580618617772174706599130356186289825667101082971818135919522161930965231043989551625552484259558082830358110856274692029098876780291198656244248081408787205444036378763764120791673722038493344577486744517006495383205141397257646084589832830738317436983369310090746256605611007493285702490705958686561532864126666595166022340319059035387966839702401657210819726563498317657471114867391166665221343189735251290715937921496108782369929364215703190149924326464442497705503563183658431164141892180037276620762436970302309670850969272740834176843677415611701246006226431868981777048349856437865652863910383945503856338757869728760505544142083059440505965132305749097944171749671086615606304747527050124707457625325391262128977897273051419121320045826855666050923600774505698175986584449808044166007948753528035555610656819897003298258689894850692559496755259172035652101366858499871276390595315171010084773209843653470366275665393997576806190474459909170106618056574819804472967978527964194309430166108568365554555446876995540950011052436930551904937335959802931151047092457077691511846110453029398372366236374685925566627922595838115856574978779609242723848046988265596202392580123858337690438681456729129769087266475644684143814720047931543885637223507191406578921596542166300783362568322985486258759263737165829262255633303598398255109207639915533611656322452651551171779071902425155947975697620196171359514736010347550728188049967134778208677081295671075210306344272560350916905296718098249992301309888863738021532960226364170468393643128665379705206577322460660271830139615143025459322468311842715866536132519918922505619292638833518370567678930081982695942877499934503939089133717116518144766251144981216696604200665353409723308044566492741979435045673921293060172770546233008852564060208275148737257185533475026400484628529448907075016027379774462778714372923865707936542439464334147265043203562653776589174449959885980518000294942049333804596762853318927444626470836196832489896093703335142735609139383357487621490422971747100095856020043626124766285401709363034300876346127793267186935255182750908770049640705276979554370886171846120048278137415344770115892100553753670524545314898827436109020080013167867546424406614596265802876154223100531610175001873376084165874802596241548046408057770510653128864956097285206022793401516123546051048339381524328768265946828612460495062449040983953317964023464029664643544279880182066963304070207268178986119167602483954362904178407145970457256618323937842186108682796933640225430624613907675300206744274681436437513680054661432235422467714622824233162856812931093306837626372528861549908316212192290229677687892058978332508286932130853435067829149914366060496091136513958890915734429425207397813545536399750349642174314101743260274906544318212881880536922187062017980338775266219359179120344063076293707398683702295333252047890922570149060285906105718718364865083042380207303275169488273365123227590185733377921602595768127866223233060330822154642564265380090185625566885960237925416081995789771902366129516791127346179170125286687628058682276751139715398493169843248705147988712457056445993234951328180032571609825203765055009405323769736099372859857726309408974713687189910866717193396076878007197637959119852978975617797068393659200300522516088201512465777575561440644737234542408736509575719832079068424804609248722951424985220337272464347518341110473977535196172045839396686626528657015200166430500630231886771951144483468604215508313575062387908375922083277549860561382105352602235482141673366947972577992594103326908865342989032720242819449531658867942587598185748149097328233226239466034442034996472604186640489766533132129556994493845586230133527122760758080467754863918494539859087877931406599257111033570915644433444648406695064007128066966370234429968668249331107305642480668203029840583982027406444276419419820447694941265343101019908459240029049206268330407045988791733403238060167990646331845654953271994132962884038806072769977551584194265656342712865141154627612614702333260186182333352214458591954560174377200402806057626253912038895007099183521623251477841825734988787407125917683328534657339149628921775090400514525341640549540213022986403132883399942828312948495978359651202999469036414381641780505111628478241093654899326667080813757802234621926121573608159958094896582116210004876602023467780881023482646273125607825608408170776727553617902142012420191289141734067736108576195378624440461276186176232136260695883685548919189168963780610551481721875682628249053097474235542240884183431690980558608706890180616459211274344001384729295161650403994724223547753808569825418128716908521934579310308272172891463917455854808832458121536725584260330120707952681712647815816773635781738247431497565719014944658042209442448220371322088361607573407692220311102130359927589763494082854715626087310992988488955267198599267706522546155477851112752153628984179171112601887789280754074599778330208215661808817781701625726368840254484860745317635653004994512289929067008720443130309499298423952482218362719562160913676618488869132063891726432168940063319284936031051073235963792335125137614492867610149698383035919291438674982551480970106340459723498724842396469065688155676792560620001877687900944194003545858723056723159598138067338964282768294907871098288424455668232452416839903662133892138242164211570432975563821474645243355389818410233363095954598861447757001594985891222642730269238918417964682153437812547431769602073305005058555114427153394634300017613557037354490475202960467937559882562338891635266533903248335035552798017996579619298967768700073312935460004638573496891704802046275354202202706628646193370032344210707707669016351923727910563537269691761031226574340709955324376328026241890335633159747685749635408208299107067403549614305980015345076609887702084855270464441345610981138056901924367557043674592708954601763824267950805933448455480654366190346188772570259926830298924828495323990788162198980774970088242512899491823668339941655369967239307789038799949830801654136419555839167007194710974580683560081280322940595045603637368295615508227814050365623113064840681710093024434936970216681642260697174931788781995202035536321645046747050263697922823718654597903827151386888502062541130737524324706151956355257493584274211295132583493362823368082015293889962693345744020804581922032857497656262952783903417027790357804964852520479222324847961955169936935001215565137044995424124985235459048925187633569830306047599956516659327146346427138800153922154986736389773169479883615208404487335446160604578874505755074563764888939465435796937617186523995155447536216607064305623587909646187941188457105768847834151897181480830379740832551059814062505665595315177418412390069273437866945980362666067861744895091089424639688260271624875815809063518774834918578324827891630613563695741900495391733990229707157316270741387477575773624244700161487594523941532745194856081306414707304660215057613928438931506636636918527103161852214098003368985606956071775926571516058577059337216160500445595675841772702391644171155577127458269847548234900381039230621758123408325240042683856017979691626777026112606811201798198435060661760102512319268985916460213216794525506860499961691225610862086217987709436450423070898850899255207972984657684724042838417342571371726946011849124815008613193712069307838896409216592427867290154293420103906860442606668668715475058645990040146070650766500987559104051808397857054008615980979431556847863545842257847620429107663438398972045381121255606988417550866265712720177834490438807631637118024598771957814966005335698849889339946010524536983194101819393696004334377723192537672364147639496940146527166933683144907568948236681870725259157062380908754455026244088585066302536970877135665638301073754777414652489440361069603651443685843992823362293280523620961911076913943442428563874807854630954324093672912565819177556098033381091566214871587034903200831343390568117289956886929570233477059692299312991153456067251906571120923357674441175856973878685854776404395282030733506702834050334690107902486521405561631432353670093371437092763633805333176191688754258369740102408094005921783660303947891207192217635695538104999598983159109360831427280711853426041316772515941928995378339310321310116876971222573231322572127313663404084020841446042893290812516743693602359391465344367222891079033565028164511744371666924660194526580508451912932333619302816928879701528760249074399181172921650498837475395657028904364044882505956114460680174543864101037656765879187353188440431682393154579338592966893932880591512797103780702285490358197468345348480578664957119526134472527693643114947247713049454971195906499258881483544731829820311153762166524327064706655985319405406695125714617740306514375594204779322845571096476261631312773945060685643481830915671603573019976476909266837878695001318435227909531954168250056701327176960554189990221832159437210095736736183474278390155950907029088655764864241686077943120142119851126231049433484770845402810872381684089574474094349452507077413652525229456678184627189644613116930041830521446939238551094550491740334275595364792390482389745217319975279711796591769373763638671411801573006048905169044161456335993036575366587993653557186648593756276954698851946457548404994833417167777759187207476041367964964342311398575219530727222306047882092581169935281190980540127900070298872064198476396802681323237157011027673033348051030507424393032726063147895733102261936019609394678923932002869456818382407203758008271413558777004907651749149253119559559984198298173007720673810595543961725662138418812783850546319105466528256878289316049637458774451042201023639127425597874965328654379798853879465141761147531696921604907994668353609418754502781618183097585359976488479261808008089165738087729405782719024751851956843310924561513712557681123401540710730393188515059518915006572477987890759312920587443433004879672561675541485762249821349734956267776605051931340724175126166562840667760593615754151664951935442467351535023926464197475395081094728780065272773547927991559199361942486110968760172150754844602144047230797300133424293892535438541795193034504114643397157637193268124413915627295467565975770890320999633512428714864885739985096174886465020940501519243856404944917647529228581690961968932203012702079698445544221472924203294819957343224006476455462191045903552332422743164284128479769181886707412473897294530993290442642257897009542478526302861857140084793091239417169600955364796449054606866056996640507842857850295233841229514026329937017286074415423274574396369681633728162845014852030480711831173568262856854872733386408638759510932834916749709029296847673852717916565395233128188407509597403420890124218272038207253545663761194915112228129634492375181777106484652282807070644808155740621357574141522939106526992431667594038086439060023499866059989291283895053728301701672712798375027847656966741407344582616088176096785184761085623274532969632191955415250529509159547269042277672132752880318773312200666131085376695536844191320770774170718018476550731646905604332193889918662169471370872871221136386150166618198453905009490076669510532648203371836434685990623659497718105093164661955941506609588602441408009117643956388042620830992760623671586469389649328248227192915868111796840928278450907118783412680210418370776906406453085227987990190666352856430397540458141381267337018313885447869942705616347968037231406647199252515158696306599285825638180992743883405200934812836781385991409267577119221643649120613368227563519526133451727826093733847276568080767620393136166452732789224256690543075383613932974277960420149200071458208522433736898910175631242228279391945269577316498229756926310246426919467901075604494890050233597521009982276795925394289410693675648111467537689217048439649347359906368826326683606945551496548650187215462617769373363878831218568411476287636590565175521916698726883092743327800704550749221170799072863407301385226734172064087516688445730878248742422721977150662458858636142415914981654205450966195772743910270178347119516353760290526069770223114542666652325548417637073747795295417708514058428576510237547821705756207811375166560399294160758670017370948192744902396218285192264624681176914947279238350432788094376718837542862795507868300063573660646650537789047353289585179217100750905885054682826436110157946301487660960388495223466836593743951764608396822682024762988616027234054818559179769209712704779453880541458800530474730010973709546834548107801214422125136746466180151553217039342201730766719731922260088470893484525161791558865570013671892211031343439571380618424759912620559719538806980042344098418673302692128464587260976531242422462544746349168461025911831338994677204065151669545621856816443421392175072769552862585826114590465873560220207184684393573978322322942141420800292904494620593272034691101392008338441082409531161564098540714252301888663951023541270059032663554088548726433728014853977205214281421835467693384304009023132265123647663968567993294618122209449429194924326856387190759129664438179097642739305598755458919038781586225214595619120974739870647668906761103206221822675140818520165709044572617082110404669835119430318757168173419490435959968087409402105221817124769043975673254548359245222397249131699105191812203798477795469111914423871293945320373100662602096152042786403298290594546967035815692232529042342245029544472349476389706564238963112027694590540393845319190134689275875674367230785049091548413635068031605316223945207807410022331072422046806668369788962319657064492062375938009584593832600658242859715247515904370407300659573568450337773930661760127080996779162990323901168990213039451436393519674878522515900393679157127090201763419870866277274835468974836429034825026456725792728808103320629198209398856096915559140863536408859547607112601992303114298730757861577279036728185965680952230691947918547475282338250286298964823670274043997264874702531689449882246335478887602993911166095234183764921510816065201638305276041499078832420744017798105383757497962434246948994584986990558224012279978871648683989798490946899756346915255216129768768364113272001168978234137789986208911087123631774092828492704941618240426705533437632076949877948572348850183183705391165746295099766764418049236608175486914547226142379796803431143400234411981315168656226919882269990768951305731312007186344405598058297089523034905819414057921627405646847980764310355356095634553858039580637432131187583732046230323077958845557657060407207998534481682548025724852998829343764445532256103952206128274516769874271739405743702882862868807733583714125936083220873826548472926507167517365621146955049785944602117155728864951591637371862437143779192393722268390250347054572639565427906739893983141858524974864868391666785932759371779593323475170291438320508572209152201579423610782090860068362744143511306140971844901644831297831394962887069650003638108628702825195153933915484704486926108269176321287275462440848755397351858118433557204285471518254683350488837646887231992528017960175348595223006735075661158136925404792782287718065967752200824368241028000237101436301015543088600556127065954480697308966583287388698654011352017192826563917378661860702829463552739155450305179686288870389432865879472143249738042381136052510621831345090218125126046658485640627081051452148793788744056576891872609288917872959847614799765714394141025351338662817584753322415133765485003478681422184311843015958768215319225976278135251713603593068641343594722734708931352538733328998090433258680554308496434557292794559472001362235875846317495297634130261851432506624530487471528222527173161589085772970542890718809796273122280998477938105235693033221406373459358362231192868406300590014062203961708900444630456148584644127977067170775235023073661472974504951782574446175546719470245652029693471827307123989507118965150249381924949159707345306410818162714240545383800439161137082558418795446437330664663809329418356987206482096369411304151443245590068540333433680033215525485864324620547733810360549223316860647082691325529678741701646568559849446305389616147510299545827826401823863652544089304885931855816034141425926932392812072993130498521266114223141762500198511810912624697938249716633014418858207964752893447334029656534738714008076421207407145475172939749404271450961183230527628784623964777346210198403238338544959102501241683931309868843031583327976685484861588336446093938214813072565420292261728860297430018464675852889162661892484954055394253661432235513770718657406894185927590156282402450259783846539462341661667553728421779796302592808039256700286870116675419461115097059334586180308475603472552830567115017951131377267377859759816960689173136994240347761933860201070133075210363777848088931745994949978998195701157604382883517540781368826393942018400998030563978367501076643874268691983537285006770654567520389250825720422436301358444649228144381802040790874428992518447596030660999519088994663721620169601415523956864421370696125889480763665276157445745137041700940073473272085021171743560231990358328010332923856739274663271773355390775741925087212602854043251883125370166776012909680419492468621079164463582468681282531276876022611077169028866727268611777029948839605824252429052090422718368536038514970530574408788592692139062482948883381051436662534248843762250983628785011758038416901460080755121147560149452966304631079503179630634916297374241606139985151977222795226854693438203596028643589383187011343921883929655215556982927092978020045519467471875424357067993030127825405318138624573388358297569823836130910484114695085959557642761760705666369382680272981253387837130207538316630023431702889743838940501357824215256485989984517683894278535035624026009620028356287518111083922480117318958166639665144710034225774914926289564997584681701971063636644801156475581409008847143636811799533180924942131269607858581533130613729517954008041146519698509137671028105316548884777431708882830945244561340172382885606421424171183247714901860000805538326991166480578172938703044540828412060255609560054761845572055685743260548494436983388291302728666804248760445918759810943525783853138150851112099684874280992374511199575762432696009896541940273820794320830700353173490172100364833945613541236629690020702175458132910536591724844701467585277584618915736223577413784148816779627101611011008337069908636488637451287513679790812377100103785038993113918278886079722385442414963755553351966472643060146077340729995459534033265506302592595203737226455320823280661484116913470917362510358271682881392916784332366298303112737749221633385684982067202758063036831993366367228974661687981622115421724540357882535418172845183536029761268756220543300250878842574828109976596079416203757772797293834608383991678638570112032111278793534377059542941960507291020421303163562547733355377573180438762955177596071249864487805025267084830655900161784477862340827664348593608773829589039596842019104777142187085566644740552173117631335072672175587458432781135398644848631606036917945508322349267905393752774650546086643693390084792596651530556923975993861842267313378211673430380329105111961184946352082009551179601109572682515467337838414156440652856713199990486337696159682387019006594482481985870254309257112540934603210149108797582336957043585041962852745511326575109244430571973023986099448123663164829783378269809192418456220048881762923915187977179338976839636542574207235766927412778272345125111543682881018287485193829609180902886920277627140341696956116200538547991337008612665617883263009823879036861746092862293256744484867674969273947902909287687101198374223276594383641282850243503819027474566881731032503760114478363480669834258951073374978359628593756500793448231266619971131775849141415850615702530166459862099763202957974746174389044342174676645951168224466703995938112873218285246192713098126293424676178791931295529255299066769449048839049847159755808568497573086850900561775325065250383776685234404519103242223702079287790802088517087866545903400420582886897761892641768971809735800321968657848762685219079933835770785927826073988569521537524155005303729272107467277913193408449445311949982783292279229755875583503692208512420313159821677796232746005119028483034372443999526000098841061055489841599108556230163774934276122150480608273164869297559738711922859573605856475978727262218909118010843468693948417360752001368886226018309363393625153134840702460360608596273618690293627084597761124669820523980972932918220522441800216740616926232754126076088050189283725956427533339015954942417663708936039232548189739644802825281098039865349911810668547277281945051678470271830895493358407411238349911734088402054897622699121905264499065573620744615096486798455110520290861410499747499906494416626765813554502876926901898949774062924868687660331501602914462875924941809836969403835721167035754224415664489044451619849683912326378816432086801587552637095860597736515256483264816853959912828328313376110808206563933494000327081131233961799207356203748192724754739566845282157337430512029016336027200317249049532478349224436284767881944769743871298543456032061796632670409957973611235989257303181327930545301847523643721255527979289070001630879605555739344678012974799602729406911632040017575308881294712723042943033050042605166892770893819468697830043253482555369409919499263811731281700959726719958570060373378322852857573777264878731813106032635956746951714852258746258235217588759249219448458354155632443493732550401031147813598619184431057722808032215362475897624063071803161935569402372703607709614630670100825521510352147174981187266693695292346284307437653419922345840677683066117819965339886643036062193203458348909445012234083478203239998795177153372122063887266320768325337028473840713605379008164560718578209670189654639975233889909282954067350902700310580998343786583859924616459669665952023522663802035197350265270006720487031974754796806686858485262182974028502644514478299794796428389256186679211769765940253679823561674162398182466497435569354265968855892971505640430571200334501012861381161191491258761628918854020777138882546026290402855224222834766786696368574604870909578570528938179619490254086318297794844434395323871542025257431603247038858476391144339096609937562356905636566579037835192557092117673712095696384826236646788405248575400577976446051708193624650838785328307709111746396206937958060604083302359678448693106606929910408951006151596233039125737329289514852554250714671035337193475787391278346107124505026622539638723586580113832143156189820568707626615219511934011210049823263437686390686819819138586881326159099855954607813987932213928583968418565246701792321427874639087974229932840338003946452205117038836672865739624431949467333092472176998475143032912783890855387827381845394476214232680516611298229610974867888808169746408622653286689653648465500200430404468387534572705418131779630520383435305914879659329754282236753790081410158635694525930015278804951621749424306592303330535536369051655039490728859282856580610888939963230176015792249271845275699197335526335651498173994252671183016981926126286307991807564320109043950532670455714171798265684765659379452581248199543341193354156746737435727848150218438590500049607091620199449244939962948231436127917644679097195053902517026417129401836025495276566251823437069088506127056064294125751618631856745953988651782942781150021566452655556015402797260827727294178851814732605254794576077120825382716773117067624565341738497454202947488465891408089771221807863553066630020293964499511182612216425632894873627482823636114067435699023985799808521077405606690391304312098203046940167404343155380727617154582120292160942483853125784714707478510292132908978664927415720778390484236007070645705496763067615264114608635553491038070350138013011204734771021367498201238287449128256618819160246491890757812877051769712953557758120589815600307724278506311011949237955204222367073066451761352469553192750233438890129840225908989989168469347518962354228260536939074071998028254644099091982065167410372893996115380806535833928159221374437184835094983067943199524755275582775158400415550817657074935384642049049297872099956035541982954407501438437281277258102039595826238011957434447663803437822492129602772934688241482214738076652261491051492579582864732117167013776827786273285187895152122064338419944825914920935252504132047763675302078290048212395673630071641373320034718059653151515471136042431800654666810869579748728469727456657239091204430631939802191692531354465691328785875575077257080494872628118605061540651143360005418659102029087192044753875253856684356104934768945033331315750904770235557104429489746543345580928759720746893389734836654035953130002279297657611605813529787552314729700536236462500161102982780456996292613552910910316995540746721316272203071449229928959874174792896352737985879920485346029438659673232158286370642540914806975600395029503292066228275630779916372183567681837033213413869182317483042356267081740335755218727409949200430645805119778866143310231139752477014309862724309943263218556750024850854647967184440667904320424614071932297285870611754895771754222312845824254442721351649487909680363746900282107544903025085350721992386283832697363354783848185241415682931619830268200139775358316897677003497823125628077414142484200198865754525150945331147999712107419270482189656452772938897978463865502488877646060187082158549798700488908452367149098147057470625561116367402086262797385719878398620214338813255751543685330489633282278873775142396387571327651835927339571602171557849835811393361340968685291460136496871755996783082639192314921938622140187424474892350669963878743309012539331736608533520813347234378046644032416819449262958012826099975847077232053491185077653687760347037832265950113668178476695980094430749017440758988101464617902176744883660566327408849858286229753186708234629719237163183841891856909110352340478713155432569934563313923473183543505557150740228833327283677131993993046170069723646978083301309243198877438624986302733837489645031139734845715790864999705149382889441286454507356564495173925202861588283985513272423708409077684699364247965167913408646247632404019268888734606975624786197977994559510214128837795355580102850275243651228467759762737719288249868527824894166772391308603845374581343948479693752701863960229345036917329697976930595233952559353307555943018914322655743574355352402326928069230850668720871584775134081738492358635453284217976768383099621473918092535308588190008292866659933701166814522347365738218670894655110242410582162777545197902470173855818863965425583109294572737909820433577404725810344220817741506421045673906442613799675501321768794898469123445898326526836521082117810223127634960916302773692700359313148906251970043642692798945137556350398661123269423483698343394704686212676496004353609772219427527652691131785219560357011304094888397716579284447467038809690155067860907058381980870867639650518041589940322725474926885622707518801673448605800436685845601882889426231177849198263679601172710004751394600569921271231764307326416775037223170526383574153563206758410447305881022831317410489754175459648887778839264750804808726822969273982629475864189825461935081920698402067615672813792167020164411670384897823982464117098066277296932149241446127945439735419411349266737348198129667756807362665629301645015267424967861296973254514538080072190985263290442612491494549349333055701621994173052687592359638033734304071177762739811840929381356397961145421081129259504972500152279370539689163699423861784478900642243541479636477080616080412250264031763769865831849165519533334612142265855950128149844540086251674252278580437985612430484083018757055681845681189693226591983461066819210022914738299551615550522215910104313897423632417019348213793016207816691018973612498719841152879111152470229089407239493721075612868500822017408983978587349404154318219411680596322441146743468899031260750327560757366260292771415344012475770627782267222146129705072050658551403108983485812601486743627594114798903086932876213253759052005436890900862245630516264207690436833430768436358100575955064116908921140731992103408724162431985457563957486461176990134900492346188538743195705883712145238214401519540860961432953537247089212305112897719920446732389229434213551133128331585558781174670031205232625659609841498585037275762346790372553318235136547032992735008861741927142596930869449203890490773527941114529345981977046411463720829968287935639827089155382163987642368476470083016841777250106001992904444177988533441667121437475373703788252769283064391023524581920135661724142171929426693583926799871790634167300846171014088490536323187811377638512661615385363051122093216405245858624099643803762451787685384021748937974616666312578769037668076963604331151796215032723841017315703180520413039145927779584905512014668064666682254433297799192305757162821208026877781147279929854916400641432466918413801483323590083125975806974823578405512726545014313289979458867673424366301338147865784082243617193472112694478671842420864783346336407831869211163748340957841436963609453020789387668039935035215618722034074108185705991060848830764980978773293738096703626684676740593792513849399249920087843539860869222456675925858688394519278730875250655335465059081210119105525189917859475066760410428406555446725574645033905424928557400917586617253569625634148225140535529921241244890235825853757154761981749847902498629587560677750512786842992362454325984826130292990503963224390789535403766319337764757810842777760858762345383049935847658033755599167198206527989426843728009715403196868932533525653026559404946394770445456902439989809176021357903465579471654320485981086382418412381137775342059647140641302853350263067164928292430580046546268237067962129559909435665891904276113225865617147946524775544913675898676014429508779510811282498506066452866716164084736872413592752828170554079773803965531307838036673648078388544789776219704768089421432678692469921122328644711504434890261497204529119508376832212131464744499858093566322682548292565912794640494142040135737264505425913281259200317662152663920993305488754775135750603555033498620653203715752225992430330086266033272205362604096893267969552398557058014459903326549705871979926046687926436327709922291685439783558911515740870488002754662972100212327369410879717012650746557583009246307286895010593914200770524867193612312912426564722828041001249990667752491670445619895149839288212438228765615989367819116029600591846436441457962559995941805978686087615604562094874102329155222032683753291812023765652833964969612338478640302678114096850350266629755975023480646141701982529084160066743137922444114005270217825058076645378101263390628575263695823729604167964288688773631078442610726379472320611057513827227634699821728485089419776935218386031118004823873406534027437908973969357191740565694194808752112940653720420273512064901049870293658247126909665657915341603132327523012010109193016728219528661978760673223062820556486253403300210522065673870760609904177944853953767055577674055274361704565596216798696132504936168897718341890968933259867136131205331467088070511705406290911148173702058858835243087563629546134619815926612893160238962561631878899527797458888885852214320352483477474436018736813047405042434137791249801595690935792791856385578544912595248080556129506810541107032156702059291599396257193293642719753522086813491613130300543552187466889499041531971885042434873020779208716206714316222967527833568393314882356812690985242704098869977314093624958438365639265043760574394147625365496346895577832239676773958411076499195133323847525661900112240761909935334840873461554034490927587236626566027872822056866682649531671150758434762262425352322335627263752291745121880334381168920802868222168399252930259440456487124668028045650371636409170528899905054501586263089752571843276263841750361115022081799612071314773721989790324423901325424840693889651572403534787771766901443915449487332332663078305620388635514890225200014056654633245937090554784136211442580261818451509560373372836353153020372910630026704815585096940771573582112206156664425964024676786274200078987083297257419976239128586863435396420729235606534706183143489185397959576501377860475245007998483913436844949478029758287169524994200515138556630200979092054613670611896059180106971750999578750874390797492042293721518233679510131446966077769747203558642350486157110138151958265169534124149907418961934213738971005745020817918117749723949617719510109618186533165806775556376287951376769756528881696130896920762068023250874720622235195941480439098064669767098092328291654930127245855047657874507513887331532790214471487737673911467237735761706483807458662860021790842965773330453275122659021723217677380049734320314444216576379896585633096996777563866267040458901137238716814920698473043429327525707111634306164227082432027913405600729277393870796492594658456869124399111570767474409741956111772476412684740530383579136291207479320291928015692098993622273091803217087155679161875519137310056270155520354582302366297295064702408709947820931396273557344480036102671361021407860908892156021243122161464848453433239803472101190689775450915965668574910249188853441880136725255574138842041570423538113176493938986540694905359973126920386942685144379110382613424169082039394103764510685358344672324104228673006425130868036163357399040127132957586354760267484471549960507302172663494759574419670483675538584059739614734919958680450361433748918708282238260395781862774863263354271964100370125436158754474922783450880981250236247109490282363402736020066212619725822950816797661745458539149875325219367660813572335785610750313346943059315646934874808054911476712423120014769964918899333656951401719471403275675413175780601921379107876531947671085360292612681505973800732713022533222514493245933425744808226151929083330576535305862366492466830280951545764753446322228997081732921550690085638383070978131624410942996902960422223516557477989498977297917883368489944749252168153574514252863379975559755382206879842375555171427363852237258193382643875453287889195066521864945797913964190881404850976623836912655550168041748131855048280620444098102075143373387606490500742791247502714538842289744984051744681960294152015616221150553753693398126122950003544117156508167906602754160549383639680830825980967311784825061984396647181976135297398067838556275835341296700775514308121115134075483664344653915824526073970492159258602545837096843975194682557016959444513819458291178051427537534097493387076742359597903879446516994095240914746750283062376753307680904499980566424950147334780769443767369015091006813821653692203494020119435798222925926835271503811874821202551336727442732593043819884980280179336715794318364408781061746946055321563767715843158318012300718453172026535210047409063018739302069982239700693213764844343283599151041152931941121178245785815843227106458391525032393577960768628455492498300486950743037494118529383427087725977597358162698344453391437496369877136254452956489713391246119487079617595111481665612878712372029579158287093796391407725180340108002642149774076245753174567507505736494773560249656481577026386059487176774664700230983516609330385539588162677880660172456736918868335808180423156452589260988586676514613062966806921845494161231311821785379044021794287887737210085267855086431777849205713779897985809000376134593805380294288436639956579304091437852329274042269784221342726907351112735890659442065056628999260320066136129425170470653555000138886815529595117355867420263655410965787788057768365172054679859762931949315024178511450859972429051010290114338456964368834093297969867926757694927986305533707825062115376759078412253808359598753475704738329870716659454409420234133536249007638644673329493213643474677289124213603720654339811935984596444693761580575348095794916659786012243531332096604984360142604169182967271537420420447718930605798693396859110522163173418897894421934802032026419151812021921629156147160113978332089471926180759414229675307789515201592951130471731710097054911327150841009657015338554426136487762217740085324268030313657439371823599953146675643232622827944656030459564659341338304450069632388457760612313286655522244662431530239954748569844348971992371647816176050653210094837870509712095567823590250062785918468571050589497634276086278307632306863565665326849155473838267179050039438399453634998427033306899780276486716580926010163435287260530218528359231197652682076712685084452160727764699440739716978638057746000969548211641958197887555149108165386426844796028499967552237419282975998487640470267668684055225735881131034146312661354461677020556193161058512668304151391354305320257488752473648321330924575737501835412812754089470634306414044728771224106864931834744634537509904928867851965899497578096784755516986811089532025100739545103739298726999907870125740559099304616826628327356474477882370293145452033143945002832853352170875053795852961294611154793405237046929372058458774620603521571245725861573432269476741033353838818096426182086618614691149730184949606782551611499601544445580360366415785178477259712952121403379321791631436117776146550843491612189398622567105730131488919274777108743111377110888140041400801763715413691573705932340680649401570664966610201484180943674514411560352910055863671136695439001893557776391625745347545409549472191891353357815235798972927925531631509713284897606751356604969527272932308457965405229150683381112489079251731318699629370165321285322256886158205827558316409772596526330630996150688880190441822893853521174008725230565778182116805041799472786637852763508252249682177843637882743087482099982727847051201633844290135400214753156283387629377248430769620483865755945238114958841643134365068528033378878760527736173747994004204189197015706819979982279909908563417344101265178700362887845265139835717517232092524829211747151486877700718934229719402918209867110969632659014546509454954303479745751429002526441507282756059997271580379141564465510748059858725281094817491731215465479701614682307419941640443680254139245468767664210561905772988683923122145221801697409053636699967136051371481602919955841378769325901196699265381513874166091126621125242319533760047431324636077064928779352125894816550303904316651828189194530577714423330161310533338658457577579885770123355117324852052953962891843788418697982923694443914413197102356018585300948086236851805364938282774129946656340929755032363245279716582012567250048378671983004254266195679016998608200504002919255356792591014548898658792796833158584192967756606893924163777868258345617069616697472112631280094531796874896969753718571363923493476180265158285736683520920885174530817340641457331992171920268502183888911770863473663356455769255754471026559433063983967158631324586211897727845314707126305544202514695413481569907160671547395621478815504594195338483881485494593011287038220660690147709328695543090306836359370542148302174213570175622281475372851626995181738781121627416627863655420054157552678795631386126926222911262741772286892218835289012255016326629909974704711241121683862786964009021676122260722745952454265715204806052996752783236612290174191639127143632290712827009307013679230526825944987973144564313891954735848040835878961037469352987716347574594600164866023977511191853882209197077625331129075261999107577414189650150642998661595779983804651065043661646336668856280958273051427279783598124207587355486238779332620879934328197868676716633363719872233080259711501159086201354316983624159115207961887029963116545428546014943245219112434348118835864106948589030045235890684359482253797433672819658483173360128149122189387879177866472157648260838567968062321095164497844076531311329715351190017255071732095309523570820049248608942317443209619974133786368421710417260457418832999217285006662284808664827612768723498553345377108577139904428367004108442394614124000195283990851226854619459728156911810101680504202293508313589080664727356926455768972399899297938625206591606361526084960810325419102802600338802875596335327930880226552773004136265214043498983995137718371801998501567356722922582054195967377985383495025871716583701469906637350560736775736674043249583619476787100037002794262818290995104947344985778741721436363317179692040421432930148754110678365861835230292988078276533573270069986571991010978449545497430490422677362725075958877731947635666327553669285239098774991370306960645333154540983932872813881992545732802222295382663423315875444456981330619337909692396847813704275028104420699563757889437401341843218227452240923694572030725519073955701355442402290991235354315638309617687260550355561644057530086814289416808685034417000044946478601016296718616761404959195666050031057736411790619530313112160665046823513478742114227055715135903151955360512192732055113682300803979528919057310810013906129658543508378512010487788884365144775350281715603714703117016962972829065800534126469649120778366268366246978391125807528394877515177464944337591969187024239063426520342830607869013064477428383812543718949214807238038594942738614493487552332520942398040366707309743182126318627732827866542497773326139306090705947752668827332106586005361875353734042809994031047947605256300057209111395209073695070828261874905965198893669174030864504835798991684493761684360455994386800034036289508454094464144943801864733784133292191808823268738921499691270516967266863120165622941871740821337234209414584799933807082524735873039961093534284585074978787447140090923160402866374142158303047551494150450301670326625532361560785156386379900886481805362873656982894365556105627913922947266560686411804679295468196640159789474845281439813749198665615902703385242413770015506078001664021677498029126429849895451843793126858618323986017431459182035286466176161763150340455743010394013660728484105687659989837660247660911956558483328073986067752674424781650341792687565101014196238014490851517954073936323598653084873356489845175806305265128536652436923379497298493579276218160133511772812668988552558188009494559481928207986145298302118140288507695378738139955839781391586438216015263323324323303802595890919918020554192297677367887458265001702753536107543151582962233850264715547774033804228160199124369317398235303674398308978352245697222318971691689956342007743282430673765817342107293522084330233956224999918417273207431604595000753130395308190937089691910308965579686117176699571104732947166001199926881309092210255494383849394129566253173430416990648750080396626847883897112363509181045494273075697087257298909440666698406391223298927050138538023888777037825199743542327148281940753169822707898011051433456313399675782035405937163912579709209466230150331691180081272597665113223623358855117009125277625348051625396481716462611300923255640744803449640261930279109376234821897354010952107108102052679387862775169591709285420061507742501406586283773991044323766210913498274371732543491385173046577193007612600643878172129644315133644062335338833809042647963745659396946444821106236917216419644941605985707881536614917047923860498888864302816299508299004573321216379700455607734761232444829643754936978743711406956575729267280291059699553288292104558251487360331997791504116853861789912734221704339052396762196501265641283450560919025123516642508019784578755457862905442480071718921509744309932057075831761885907387495293717125073979728713238251815840765773571363892759902931018016408161337257104957085237893125549902407286657369002062711486205846221928332720288923203772406466786055162214594478286490333557439391921407039889240210641532820587561081375179320327426253715351587455414669066239560783389553245736176909763465413128560240193184525116181118978235900952188991246187430613287369726490266649531851973457305694828985027798771623344328574422782762531421498344491023541944527254983252318741015647631592808931785458790065717787057595755753910805684635001334737569771528751697575785425783152104340006565870471697716015053576401650129276441740072959711939862386667842705364323324715941532705596247348565390142767325659026807610132285911279688023152420732558663647260563686673287896504658438401782229982805785564469938836769394493441480848615303853586016916931294581924202359852408123890845706283394249604367954836251910670793007173696024942951836343220723816862343939448040951556509151174547769119375025251104247003115206120220033163295675164256603626883239489716795818896770895028396863656154600966133415123792865703841163422031373027607577746739843803411427461374092119112824777446843347334488520768458662857022427217914904337242673163941850057862608486833939898502247826428785723730305209954329692850491903122627768512063600891705164819137517217064555796010629555856668801437392689411512434479750489571512797471779741825701081885715268578886353851108856968472000850382716618969386786578616329403541545896432640425718653389397612160601680097060204025064542514844909884073673525719531506970578921562877485271161204199047723163918524760686901026826499349086768118872294133993080197425051622646623042041912652062492036115719741851205340914254544289869459432045344731715209766013292961664368232104297753694524175565936701047249305811810460851757341019010172069580039935185332583564106674716464037544476873768931955208301319529204860729267949099019371499674472283267138101898878176359842606051654584073338275603064838748669084300579157451268175398904067767873045810005954744293071069630410229870152054297633457221530891755857442043405990977027973053155190546406651600948540321582143947670227280189603969142187236616805629626777102641283976060684275530488981149103483172588319109020312597626568245276752889265135904658727927965225943380319903118121655380851127680893810098617034695866899174496280060387033442931883155006984811550138199741735846331713359034150004883501436512719045807162161809158322813045853033594182659737540414460243658239258950261498623048877478180486874248839474609996891116653052350731921059635395124676908582158017161991614998347649074649580569165388228908984608809102999264700242457693978970922585938690277522047176477189356469116668509383641319299235193196734732115215251041326879184794836436820603609357790776463085924924396055134630279319723951224170504162115463789849930349709251748556270888830311932781134473659439154804453308489057678327180165506127146842492128573831041993961915363856078046453175175415236216437340286151567095634961191211550270177358362541523726196438665684656643862081109995703381888029998864930559319953178029800971471993951910760931538191284002160357539446769248321970542341834096631317278583303633257445558846487451106724144707493760325564884157849538147278695952980852975275605114442052802370573279979256545528306886136746987861069280272661135227844953464053944948926307529218838342585565986418621181490093479254503831632327527507120135207101734641551241920428095805049604053347936077708602533479732179020131775281391447994559031451199281398482691752412694095218557130578638577002055828847026584909616624852848941942146876696266865553604143772589066888168383793891767225648096035780197093282603049700539239077759536661305725304387301689634827215943276162657141884014405356565515940117222829906590227738893213699948649833399947624691472273415733604727938466745356450657806722344203160134725515588285693885440987827059533318609511014868047680640491314286488513232910151619591120970682664965348576494492641141621474810793016369769401978160451917193131169291712276895317467417090832960683243439427723239047441289845843903638136524465635304199109845622109316212352465627456006416702814520102055754807250131440097799432636060626760931084666706829257310099213841243291921825005466513239795313342161732805882346276056519078083780170041076764847544316963339487439747842706024514491197752748162273544041761495157700770365496796224607312626128089247003885745967982236410352559091793694266367891950305634625414773897271075412326769510374933664029329918743261411116227374576903319611048996428507794788358624398765421918898507999219234741864442843340843739189369269422225725865318421280231949242805771523975981134289387727920638894582711985949029307284576078382156532576242348078758368135837979464006280146431530393791586783760813882551900159989584607259920523953011801599048902301155376423210947148663794287658988599031727099687329535761635301167448037119791684583021806141960461674120278669780880744114608602323737475221250985263302900211956245469109676725027287690959176504140283296271999023119327002471947310088630343727464230035075195031352618923899275288959830440903263317730892134763418312504307246313001469431096622994494141242251606573265667222823652385041809616306709785972650993074887626546459028414792836050974877175301705997106605627505007412958798964721193321015245899171083714137010761185610067241521354028275515272463797176919162414474789911713271495977370624721541432305292756692340898929581501167962852195997875765028790925000009452495212992842628453149961034577029931511163812206805659003937310243158199899758757157966325119790903208659558459082931355411611521218298971544883604363906918100286535251730364261915127748162754373382880498180467842950486383365386242095471661086973491183230739539199691171272325820386078398535069326408842423443533565498098943687203064906319720482904577695251532932686517871354418979924964424225089568305396474020202307919226257887721761433972800677952364454889217471982877596417229888130065994038010615222108590618877849289723522410222155805868323543009508330347105007959101540710780241223912331358951275326277156071348698942252511610981312277215977202618845975932295185674793536572465888839245871258715707152133314972345104998290672116596927707846793827630530048156736733777193265837048656017398834543314151404017526573378636807726104359383510846932092416746603955617911902176978074601577511894563422995343988787250309499630490082836851154703430206152838882650093489830832641513955915100168530016988092346052062502637781407296075772012330039820915029216875114347237098855039804867377752329550034010633114106624746082175061902661778833659792372944320063484285526151252085804827493825942502729223757802980445192361430743487046941742135931875500048710509141353912898699327569623506157447761416522963497067912216348607781522762680779253870814103730629632791729263991513123665112135323825260873578798891654540686395735377096972858346190524948101374561398566563970143862506030452046146269889561671445072364725075034503236889932551781386729145228720975492499013340900627276736244981131103026273037793466406874521400115497589416319764918465027653465983802484496992714460692083309453182280663315739206688543511529922537060507871127188646923977100761465526242790603925057787459069445792481841801322432641879139690877127407844638414326980948926794302417436872214633660359520263108136729688628332580487050191578693078671383997588538759385971151089972008961168914196993631348226458186199994186226350955824722010801675501628292327094483296691057192369236715368084313825508913194715864952134756215828059471129901237423818927040680692994398938213700329576348088855086075030424558024222668947119042481123358446450166841464627785731860280290148276085500173080270967639404197764173559365603375952324496974165984822852319459055054172387214237526925810089197942066024995954761593684340370574705600456297657545481358704745915159230070275378407410533432221126762906101200663976665083344891302986687566628540906175534503401921431392819384698835990153811076657082493902613727390574325601898851095046478793496524446291785638913497123731384219318148705907491209079523432516421048610894499422486888790800486446614870287984911604881475620534321307803500979000556901283823200289342501702060350785457655002327137182068430364938120317366171135695120454422823898422238869125286984160677771001754991112409327779326082788416002328168572876020728659257719734245384045172150277814061546915993987826401966211120370820569706331050416794160115266688281093936472700525701186225884202669151193923657936139571846051580416522449869820050973999041999758021563614014838028654621752231417204398794043521156567593161548706318217737379929627536291514380050617348928363970099397262808170450267200215740053583846098183321756415881314614145763454221820206072856513290793608761134714259793713406759428986899943855149818064611494458389739762131010391503015881898187775689551127341399401286742729887236908553287552952488685435042006685743389448533168810495737145622473367795330147766401674584521767312827369583956733744446995238927181193341894939087700629990275083329773653115145906495692068459152501196204172236961536676485430673354031927351393017202866147556209820942217799157436703191015219030279107302471567089726660872635301293030982574112973768060252982198427625739678221695020704678054350658758198683092654363914699708475661377315949049269444934121999319146489698158224091228230538945188301166825429125796336037300487385431489731707540426860720916202668838748411451218136943955760310379130957329795859121718186997460660887616907854184345891650507935310086390274328500961137332836931678003664711390953562731886154706953252311931398977983250060517473018046152295459392907670405145892713032746288079314313150022566099145122019707889782046730711025274363323974838065787296490870274877697136920438651396964430390459256814895517169131336184334689071238746186206470346700974025246365467850897425009592718587487225313953151891908270947889621771739343071908387113860385774778955946374401074540714185301261811480022172033542285802853536494961076040303052215271753080189131510500385305725508615015148782888262727792253932201214332310709751472144121080423850800896067581595045983122541548197113426590782379735316921265214718747994652990214927700780578453246257884130165521631307637104317003700252695404903927763863716981398856265620926582826279387486471233573762720617649561802107592621072955771116517069004381669984679943425601892310377849939824469669724967474393344073924528879194326769676902572574989617328080449607462889494263647420296818159094389772751386611528478855577973364515291730574789980750764721466533153400410890574715848036841340184518854158318995144543294109345489543507649894589434440304369153749621994162164088047177208269035855090324713263370071230278603412282150227887814661837683384950328798965892654618168440001923710765780813371340674170349951800092068315521152523240479417598536501421206728302179191637234186725823839922587958476663500968935470383047043052525047394966509305782012735465843798947796291334895600025155363491819186572134571056559506412222023417745265762933283189907353030283812905652526202531027767138398901387763817481257012342629284757052783552910670817598637099615944229989951251431589355250101558047220466172026312904705138028999945859494448322100782526934415154011068390258677564644060112414729764992391121888668952680352809168641853659637141404210920384574695411578154511066296079466951822634095607831039731591323535980693303211792332242547893309244203358250486298666317230702070444938189747644225864957261650501728863731240077319063093315425361240233115067021540756276334787628084065979923705966442249865715257680527631381223809688061754843642964329748118938457164709238732636429781461214996452015928580704053262914294803275336325458911450705418099737486189790332155332507571459134674804877967817775810541742310693782605859789158001660996824274061970655154716736374993817630927026767473349985904925612108897498355582495463179291049692666910703392234699805306943043091783124373681652897186553253780074335890620898392788264257151824154849880171357765978201161305134080369041457146974529083028247279181622200468819248494599627294944480407843007728382985944237417267201474751909555247904019583479458707598200365813111942594476042255153252747398807583842897276834077596326446838960706384036956920711080902425740116299939664910191863785956895728960347400072324245683024379232838046580512299271655640889185101840846054046815729614624575277556244623526726326640279790317888353441495693780310770858887246728818620740091051448729393187111258854544120592581172611959323871761759553489479331819803958123787229678430117566234928061136813418944429856468458791204731626502393926887581745668860532478739077681861904277618662222820658728878938163469735692481716233519511999713844407525692120637905613271736303699043324874793481988324051059078684925978145815872771979211564201605893131500056265742883949907939963775844388238863440260674137882011438367949267993141786456894589130643212461565709885356078591753970258779620035072410459625650503402855962891996066962988809012293507527043897390201110840485658458607281192474315992518799479819753214152194886251926260466570994387633922805861312074000611428744357781668260659111347363373464679782781723521215286504522600556150013003535116076728463805266999534059082990614503366263187306888798552748877187593457363932351318155983078732001967492177832197086542183260779255628879585250839045882978140338193200995524321149448650112585033924088398816402997573035215978163114656361841123722489546734920805102882760119542075248771036507880718607524153289890213082650834793750641093997253261928298095156730800323269894366498247141050148885740857335929499828421022087229753512193756781360814657275524344740729844148667577320766577388679037217474966619486473123053575224621167139251263298798395032935157973582169694510529662419524494386263938672811824983465058405909962835410946377641780265031904357461990308624046884530067675044048293370115090653984229128858601966765631463262904593801166369471075709251581313791150480062739537720381164331711945081746882767428570124279746486491054063805232688665052353463113740973724157961440114285799302941872520456795799151431853776705302438131986440371749290136035279029945815554764831700528936045981583057143010452427332942626091404559722499428243859218532317237666846489030955865421238602562576639029497418858024248020172127628096084992201766805080336220472347430231039090460715279116756465944756155693230695777572427943105125296464233908041949931318284141969005832901807043568912673898790312363488170689293733817895827932562789172296088591723006923975797404327676208966888369067923315444762789109975435372995498498289323727604924610604140762577012151346588164739244616984343608925377196884209982671724298081260883863134521263533189599859731796666911619746236623047224311812845756263999185258428230010585938768515125136225803133897340007474561140118097826812817240962963702023461213644702880076635722084053010990996856958583454784823130773636277176054148107969745995260634174456720773012285679377234595455664011170284512185365914788397514536594468814346887360000139418051455834859859233234134564147643047648407748920255231284121274368267767246028473291031899911320967343336891107795194537294872546795232735977560161196638912140051459771521931928145859495315850165838881704094268176846160089737085114302795945824754949166615904838132604666882656487985793128411226841011466807398161927151020066485129578474150788919532614830544817979381779485968920087193711614704902829694303443146647307460637212695787787163810476508480495582563525111857442873212134814987320668215971738917229098452256901812922139966084555186300414082240021035080272107874768863506369362285999425150584252411377741862602412401042245179420570388296476957491535081147908777362465754154785745265421166148462728783721767620130881846901500219253662659470829339723219787850345673452175626310918123478720082724553418056328821312047407261855139324080278741506224290376519599167719283279557052889730056729353142744187850316739106341245123357451232262561370779106112408070863583987628931127257830368082212388087040902051135736291958501135512701874829458889294141391557685229583124356730594899937071561003387583640049450403397294079178482371093144417032939124751121699018169493127682131702980641191482646189541035165100638696314804312555346265713463838308247415348782220169480684606658038699388492141311120003479535353219392189948701232873548067251456155177255114207430773199887829706833211699773193742988165897665054728936400480886707624382033370051575392229397099116052351765878030226940988297508643263953555692731860401932404444542099000093871197953189540407109975779521702474179569539490887684905744707616280967226591121903145173228357765742845603832670464343981895519337575324012877604157986450067935885059045584484796647899996113411787309876835959666491682831698891144743428453680450127603439474205858131969220490250053822214650619428744214089586601247617832273990223674184401088253739950540651646473256518458582402571154587789492816303178646866854635298936289397356816607316418752705763327280070310080189898893650076166385019644083693949458100749019729060353422579236882483895968881697220801818309933882223536621046148670071240480569892023151109189486830413217805281266741832221415357142191024061947335754438171910538872749583483470192987457982767482224351003682564364818510601024152277082682675198691820069490411769112784017144622435834366393194344927900431949763274599225759787087428992686860266171527568316705035545221362659396154605127231969188296588746059441500123103365294507002568288659973820673795941801660491138013674182370671958755025546093523154463595128371757420601774959857977282386695442422483545254371479251114490886043171700431778615469752845990805262562123928299958811998716329747102714713421108561303477242781465688174644718209956760710699008365665988856567619008484011896907278645117072563787454038921275683835758002741273278704309980060976212220566780533411369237729734184379868804945074734012342882587839914528823563905472758041731987290455611423973584095876530447842841189636358107757522779436718659216811241102956333502080012685655376971083655924444001622972754922514944791366799233501456393498293483084091980013844981256223276717245801047390726225462972205518710753648364753205665048760870107011969832853503897218908376621077048042530329664866204345440947921460072406081671225718664335291103018396177626292825241702988086630848918659573558393341347478900062966171346500017976760975529430324957485175457199117486391317499266779829365077691805718831370481225691061508823438561812195466654455590386261618014321893187008394900202502107342403522355394199279312733156908921913104901648800803112626840592865078244595660607512545616640000001298700278704757032917986605651062895555470020210203939590286996158293932388601123013303851794996305642350599913064337698774319181320446566790551110379320010889997393456187548863602639353483701893861980462320957171946901219017793932404812665536565957781870208714190681728794288606195049040903984964534947450637617776405169409469760546361322934695073790095101950751831708363953049152309624519851902259881638321631829824068050371899038622665008381697947125833221364646720246600898914428418073011407598800805080084708115852971980587679313571287733205602386783929170502827612237610991927159696412618565160555621155817717018901301766496527712937547546844098843920647922690156420545920209553929316459267517926706891674517610610139634765571203498704322526323135468114520059661016380904254560489598565455144822157270885059887154653655679829402010601411661428788061883618686544180853173335424516731669161890799635165683908246771504261049295213168362649512254733371092298890804107171647287011867729857781721363748382768421148882934984383261859131361080876950875627988554552111774761891979490788835899116728481359043973596221670322139530705087451889432077114952953219926761669332097739160414111609196235563095864786770610494524220042700852181740144569541000752203995057924531664870712121714493587328361577221880892023067188932502581172587585582664636773139928207576650640903462310317938666081854733359684464229595648531643962694119521744663051536341596527892921867624119126334986809323261447204300462243536698706223863624482303527467173980657043382318048637071410388310293540850728052409226713153254333768321069784777804919272453154543654708390503745777323814693227084775816224143651000763398286889492965147842590949561375949715633651838124604004408541965196394578725267245894747365457195223485836435861551679075123594922047743275744690752948445982639072171704599641748380608111207822960445034333183586197633576532287550635157013272807726161807805674741880977385395969133765031234885668114585811408514340721541757821029330746305355584720812777350415610518806222718550198441989398303430043149870364965725849977089401829552319542467352130576512837344795185187592158337679260828535252443385466506311578366668843568931669306939364368469249829541078597126190255850947613260497327773723632899103136929483378026326653317408998339033733078812947938236912844822564798000013493258072520425697939650068813947912598540446476596915039342352272535301596075094915653703123168802457082099790848364610616186628345168922528389035385977602321740513211457681749934164975934693345340674850187742148026098802315592354226601296075897988859237404683716069814818139142658590842772613873059070795961571934392209153737658025464342524230838702682111392873074574065721090336683695949030499134693396947877612710640273731371308363279104721944917567484456354732862959601788923614576917061911617214780222160831749356198591088090091991274927143796184930268920994319224588901087333475617239371053656936768116376150101187508363652244634063140013653916697236075876707969525484181396191063054856497939096015405861956444457226540299368637761043570761267638714300079025403138013096837860208021761874336201729863747428494615829539606042436803512562260521865949645543928189304049116218691188719150776872705593179302278264209779673709403142645450671232226816333465843085722420018510583611699750572116941852740948535014198766569355985305847258346392679076789992810238955627831326853617897476074869295638521297309626377793190405323977700686678573645932785841640619320539323783839751262237411174768386432674789959018611045737792749499823701001338186875670583782496166921559238511064606452558090114894290237190337100759090922526626837587932681406564081495331042753297691176638607836476101549524121176014932374447858970469689131580506627335877965755021822359371842243591712568220383507833794895900771032317779136731131006748609023569862499113259513013233951027914329954661828284727959276612448587794527633716354058682259520991948873168672422207121517318197203983395354152496847864880354720466984263961437338013655797778392827216456783984943628496432293160405942577693350976944053893287906726888085953929472344042395336595095740201441175544895427710538655212623332334261636708647637291465506658734188545000392151734747899301757881791931777982011837083958814519865859426257316814375940726623942056739793963087004071968814012797601116984449581675231673734298666196850417210028202140685001851769266165108283629945520587114244018505632444011635896026373750338073553520848137332334564819212606029800618088573551369511846035636591818647232113585686629621202459392931795579732610775859952961129569843376680651393450236769220501027287584256436740099009543992463799664228005893874177035824929231085645391219684508466635496171739442557358972766898664284096360085017812369973868328840485633788840159852984722755329216269593213172244445671144569308687181725632154403877556326988308861125416878408689378199020619714354539881749585612379731188073895720433842206476804456470534889096070925959622242022982053488611888958851803591148148610156043632217045734285668597264720189538932314840852925593948437974403561147229304082948553846820100138255840789003025259330311866598860004060171506269588058608718551092275773384855842297875858544896752036222665606877346942228110910208768865604999534970420033003464217595056958056165157243473543152837439049065695552659585799046031151754469781599913529592941948614867678715204826045455879829820184680473713471563271622441680888627501987414175610221999481093470154606956925797950026301510300888796771051148110305936487840371935638896227812249924954577164399222348002502872682627587117978768535905903896074240059584198971577592349759630514094078755882209576673618444019979748851562736447083385675523666180073171205843247467244737752895491118402952563662892409219503340549952392076094566082174979653782423717432891658124397083181959050150995382851445296215239153026763712869873126699063376301030080922068942261183247516469861939273827234044277327483199951329056570927745712481037358318499147354948352466321680182322000782957677953563848259456789317340059654419602870726526345980027465556346270751639334211220091546090952960611620900062768848180807457190330211083800898174736409463370330116083364770233181189972534129529795899398917769099036291285531692533810866168034024839507666696487606979629058583462140875024101075494204106012644378644611449173917025599369867300297953934504272298240252331732495953259495526264491070327518125911775755378568857051629299612182211260330895856581916280750480646646732171153270307214702805627542012108903564077155844288247764426629985434692074040940388261761061140660250893139942034093644930782654547552498202341415901847438416690681255188014047755351620299051221279660631539562802920487749590568400984577994047889890472221492651435549017327871286302513097923448850062969502724614049395698675759743115912679662006842260139682854943020254419289471441178189732197962766313049219219492114467636411148409208057824471302195922150177297633246826409270124325424413929819503014229748346387825529446110963155955540571162103347952257504917058532488929194818042558094169643614228030513446548702832272541705425964888550917657472370835627218858840312724174508089586270959283967420073874346143501137895766050819482870919565364803435399308164383661929012145193257220507032445011125602599146603192680143587522502084593700166994103627144429042028521357069286781096632774932453573419705916900846680256952450510058837797898508346572348394237480995884600781544741355835450527192313622305125379178862552929064669717476562724683269525186839935525146503282233242710375380730457706132651490887151529139972506767121730732433872285849013350859296798855329399739684873877993424270025839731691688824597325747318360504709347080917387172507454545327372961983542478153304604546751641482364763716108045324115824251438742175777051240902381937068644520665732195394931499306490796983752454729888933882450604243035167736423257672121964377801543797376560190022605539421341116906697956282306235341135193048399302698017849924210074776241660460414220693962196506546616590364552531843071248117654087731062214004489338126263152308501623070630145686882927948550332936553713771899343209637484993095800377771723677955178738529577861003821436706307494479663808603184669534448858441879376241937957395033078061321328203456430288375066680899584441213958792381896520539999060074404228665652704593943533158521646020915740102404886213995379621573234939901531999072603554780591806749098860671445385750340458401245750747040102295391329207636753668601777907067331338107286250666520533332326289112531783514161123322615110787606124462721361685959895711286318490949358096412952224812812440410175754878815615874349023913216783506373856583832908615147218547459111975152393659127572819439642355186823314357228042012270008404188904038987307855371184362148731997088665374145224620412403330597577457047400200691819709315878933660015528630461496968091993910180803151782215196131395512188801789775241542828623056832548405325753007045919303159596181613949046607756722007503672470265016742527746495907583595028197648119069142529044048849809651468242434706931643841033800203006792043536582773006058879455004584937308908680637369676651740520929609367654012709910881353938050075180752837178048178574229477247277061749012221672550322344345238400470052044979235964245678751161163343385283818107805527565608191758119396947384304558506796626425654703716898407094781620334592581324836678458147987426085670745748298950172522956628781168847460396920691536733984954460367349124314412905162185538711164069986592601414431346159631046168773492711852698349239730319059749583014606568929171568788218600979547982274430516021879781817940023910455399741295160998892278903847709904761494368992205820343158853502003613912717403298248562640853520504054841814786478430538162199960868715189030833697692142584423196307732973266514575506077235358271961036025671564779743354618472244248614031695752600223994878949493235605982151400231589685596352115492702086214141628343690206913637618381364836959274960319996108659266897778577367477755519214228616704160862929993097224105832737557127837857872555748010238250891354395059821508291363046398161067434302854571151986519258126569241423683841795562927910594806819105667937920352623687109438369630818986741972560917823504346139848512272380817101099857385624813334506801699528728046791315461076527060193538021809584411914811193144441940923995710955851185098255766063485250214013382419835226758878159889692080919413733319429274373360915730184292388041572235558535067217716140443965318067337752484269787891315607667677072012751309533633223304701951583257393732796389656033683785119473472142842581095623810200614709703940488600119405267156200318164195712429804986974466412696726975025176815954169090564577103657022845048094290143235441223319258615437197889708628991898581718656533026976166097158092771843910729235858032347602797533563292064626059911658243604323568856248069471745884513772649908753760151719565985914621100974089048259173643288573981295407415053911330696722848746822225904096829694657020803906886853704657882671108448396637450917257149570838413677405120292689262487628437270123712904843870404839102815663590372631069577170436521492548512692836241355564698820614082249479185714682887443541519662130881405564787075865352616831327658506569582977860667032639014629606714057616366086725350583568508444651130007323001583303084437114375762919462059377894493459333101070240853389173139213430815983048251457729229638662980261587630563509365614752188042606090330433940872112402099265410160769777663860114395318378589150205063538519348120754269584574963858136537607235018423747263751927542302851197654573941204520271979854122009440845466616452768037418697525702641900518548910270994235467346697041654096822721241149149387184881916892458850513908020368515001865501481667875932876073952944704695135794379687150917151509620339324922138563415421786734885360490785790115457549759792557177091981804288944140373617674133581907920107911828673498633055976826055085711053075770248199773752794200241531928517880631760019559358833521839649366868878095871067006946008178050665369955237112576630154366408260808349521629797622459598100074695460413162754593562469499274149622286799048325755878338204370513099778319294286899490265346566335864128493654620618775013858487499009705393490261615748830456351100548984143842100592441216267321758181254793574756911012981035964050550333294206267946628120500320921406450608177740963896036197319538597985525184229370844216258556903265236326441620104121947871692378505044930639324005020468057181892719683889659062232801071327326002349324470890873400249496476394835651904173749217836074556801709825641978045274973622854525451691592646673804377640815549586536386893366266543586508155871472961107758137711378616157948417684817764949459310073190681024938707631663043549415760078393407069853838110021662609138505013518964070425412006792355747950156861597264421149573448614424379856487740663163962002843656959174979719369232881139096283752160640486710359497335938036942763358201938765948409290800132986524410289594168139515802273260456187106223850641358644989229998171221912951915237794425758833338345874512936875019129470320752515456740900611820865432283032904976008781671115039783912202363845241195825389102706097314346848189410682057656986398653183408952690925748326837880168091757872061038357434106970392705417064046632896984314507136983376923056153899451285483651944725588674683355254400234374764567277837746033513674274144370581326937749759532742806381912596039880320082721942208826790967259418801446550769951420142631952290305005169841345090511995621871361637718469322167178579703654105075061291399675514543114388303771097708948782828635925636019124615832841307549988908366997368425006368883342564139544381255845997757375201352868941511393483502125044186487767029192779409546906731768634096939542742327404616309714827123149242088677883652794718223160847182481554915542114763808524840613468540456908411265200261812677724742364800760090205264263464015474765261521675384290687570819203535101918924246642943159867434723781717584190210685496046004943061409135942851769880255157976610971092162595741108325207486573453522325369324866832821539288521308610033483686117180395432912972786231065177546373316032376185783343542141261792570511454506887880076556983848063804076611982665193485994828028551612766797296567953567607089921336817086476556398037198349813224848400424552751156687677276941836414439363540157054840486246309121511431733766999837508247739286899871037568878381965997086235880893434389434201431229404814303887626016562511594161232340398835443270068173753134328055175986575201112782640304426412302453563528660219885758490940229959093689715890744699457712947620613688303520438687650037584762274656196946780235902946689625599626799706470134151149262904469731852438378397075021353450913273372313965556273258036331125161342145646522231173426242860106939265272299538731372906883147569971264194404773649824889967754959668993439629290774671133589530786377347177522345252622952965062656145207812356583710843019747197228901410718975055185535576376024014948366455297845753796904142379372081729560151544519272326726026766483242850526737594858179647468000315103733748924684713487145270180157590885865786425218403917111867444634125451988286814285612903017304142566579006216971818535015928437545272549140506027037734347950430737129619707759099535484330858040379998580899306305379592336570008396184858893038643057395462418294426273506446785862593114713946810039142215689908128045249807722983245190760172853012319074403754703424749590576882486356702133059678512496292615336236584536878070762423344064777964677231342065385907896278315148503607009046505674650800517540791231011283385814671418119789542496113709021811176943824516448839215986645161761866233611741276412046077438063462909702166417125784327979075662582112974471884425384695086156929755939724334373416372017921434200808907445250614507423075922698206629806675403657789889671310823170201708721668902113243188981571490969677053053216409378013511823594663008322477284947625611446298350142156422202630475649474910119115405963375467290713895423453250432681076767096644133903450441766807001947929816070514366388198770983034439957038876227067122960610821590853346208591139817314269685926548792430992522205558701853514183187783075647815332109574330918697093919086264346911969706775092521045915689010238057349287219292106328051740265261388910608309342762463520294086506775555813317869799067523120377098603798940362970336298237992370367737493229451409101757772234456461708902064498250616292524930450986728824787187668931150616257655852660011573356188685917211561929402168541816521185996650216884702731602365658460201604595025301657928433302833338371734556677936788125036873073802378087840320153950184848274574037228308968919001232475169324898176677666696085106502342588676194025464586554747606408404057988089134733513158284501508908958286217805382029889965317880325493281545382454251343713073498493591170321294350961469675563668761732934317060628647160063754845003463681944486140229612219099346551312757453769544675659879281114414576625686647580904705919705043481766313485306529286353931767900857035305695437498780893262436656353758792634233450878832247169059313151013253665609589698242054235988616443798273362864024822665148583209468999668447091432663223935950031797740697024837126530522712278114352408438664406392306911828429300489006974035123450570641844215722200434467968924100743640682273377241731231111949768442780938794666003827463130149404105084473724991427566704130960925856638804077599748309235225035196858179705148824699759049393884465510884642145217851764935721950344164401581401205253554028666403118863243311566680768271298550620368343788933055012461843468788005684894351117179823749142440233186583984392675525800153843959072417352385977559520782970802123246847022488089705152487610939181096892013272254640597669457866642021234607144865325742694652169109851044960255094581158561832301329550788853322702648904698659709179991851668195046956080014985080767336269322889322070075656076094860150261681743583292755510878414034453821788465317793265911769515594056351528949655618093635447471666904085832214237561217285192637640467849258451766623556004645545549362806985128439048635451312251549213905029966300274000105526179138689828898300305258477394807418617261553619514247743770684770352756085858897033315002111476884642409876597593025138234097668420766181006997131479121023251643710733062045868311460209850194759572896416502630819238351928716825397102311405013489952053547313666047120782809098311019668497665146163732893090595463535649619638401886863444910074226488669652677829659060556943148952761656902822232131416671153607511289161716958811357842686357538173931486261984224588559884364994248909615380225907571294879051795943384584022778970425898117263703666495955761791764223253487418066668063224972600898468860919484673483344543146954464655545291779840005833930442180405285041849985329465940998429097971913228936162446734038353626920863346328263943981451735233714346283341699014523345789221485723397684483782303452452123980569656620114380918765606993086368688610182072706454173131184664239176836560079994826967055521857678004765876508031629359751630607929381025584094327222103243050865901500800777515762401819652958500820857890143510575021664491493277661292499043773960229862015816784379702927756039769881431433670386333998299629290021655166420939767486071423627281565193686445400047015028263282125783987022596040140128429307030743578177650364203280673118219772200409418448131896672975113008881986728882319647042171369617594674437042392000273406402328319174798137163811980029995582925079045212149232372604552313890314127361347965785862397946278583665399907266606422949954051795157549137423195902451155091800265137281741416190982572904835446373428259283962899486455347925382116778667830210353583368520006586401571374086241943657760592347667604023589852890099434073433524832152012077661550857288009923108216985386600357339248846422557776908500115858453912799945408479671735128565373117791067840689695194598024044422399710485850953064548413275307622242462078953041676519126476768658940480568153178003508001047675009687644426232982717275217163396184872602507228405239556930415153042746868244643116758660468081345829975976102216482467994574921991062606560446889793458444555236764919882120565633554897151738001080028759642191838292323934523409601000589729389605089032333516522891777418788657457714135278035272323202341387889747037846351823154347497550920789668719218196641191814359090624360499729983284091403929647521998978475887966368685121191911500109835528788275400029992436778727965235343338913961781770438604612979650218337960986171177188983296212695405416852939385281717315778982835131869158914251256187020612932092612790847096149832843104127664134428301741059402642361616584753145853230696328496715102596964126491853352580432888121856990176015527745440562828410394872298713911866528448256952222755253660289477622650635932660652644848229478730918324099665331548756373504931742724489859706047143754870121216172321085634292910580211168932167378320039877034670366118415996827110855769810092278005805323006134099244129725069175282293222027706901006886697294884272759926087153478021948583229429649844020537831254654751588592226436095745972925726478145393090542525948507941618746878969279940377103554458923138507285619974307007490153185451860816487433610038859353602168154273517520227371483394041356587434421465344167291370007981613758433987794757871896722923260341410237195907301092515411576963269184687084627688303658744128622382138101702186678492641803948343908636505620624925422289090010332877394982140946523023365432745361177491121297364163192420437245631717040988084897615156966151747086850324747502614865709687875317765373800238663270094904294842098711711083775096515348718804948329090099947646379018979787880287909158840508866890382782681615883388861212626290440228851548673973063819833853795643007017000216759453651117144691501819063634867773486002584512992770876281607031260977094874630331207236780788130783215442782248029366835016708426053633143752842083918459542992069242504716306848320351555812444140254357550106302797326499943513067890758087326060251023047751445664095730552214655256340674632638813352268000472797486021984295906637638340551453499476127532396492522286925140958236539382535258025503550313088321671344103953246083452460126623080581985609095072530041102865421012049805284311022512719883011823100786426791582693778909539296978075898347708920015179307063555142068040377521853156593360778808845977310219458406186364323175416522027947009344733190604058120857958312034899296241377258267253758645711108540175532633129966885427870668408589464830745890235599802664501586635822334969939661006448832201651757913540500927430477252007030912312777718725273012289536939928430295679029319282973576898194825594233951937337338525987699501176819000978445937417847231763068050128181614848447202093118822664198560542399487983977183039369919622128330563925556023980269241327365814781457268425520014214511158130613105018877339513895687410797386334869509679649653080502398469179330218749915575421404780745863896356736018065661562703792778205712115739382572331628186028436830318503673030096149983834174478134823757592328576261276370649895278254797832871939952214907020224268173574366258529024795871907923571753229614669070025393328839249396169641784932104901833635577496969949546981278030029304907555852539361644386255664357692731343989903999391373664304676298619970908546550468151695591223782303793294264777479699709514634789714898983132922828245927201316346124605534570749578993670795228169530797920584825670872566595300415066683986231451975749840435925209004087261691430167910227429265429490357519672360802895912178162184632362460627299709123096055828719678505296759689006391143962024894269765398628721126085895891538352443764505065497480936081082987269492022469599548620870432510433030313502484269868137880165164687173359500982704780438649332690487067887931958290896342492390714156291272940246430059292585058437683288704586734666730502704761046054702555588466946879046788599892594964639484055667211704329656312512896567003015427959930757702014856629919409224075093293620101735032593369644060289671064028613589379742467628978190213216900400988972368978577310535543492086211063444451236826649041105639931266151981622650859586757588644872987670050535429590227209978385102909385679586406810890295187942443795751310764436304330232704353458382411425980932514035131890009336984923840253476754697240263307166150899090689118367845731322854587747082345961842323477950891689174382568214149203636363107781459403307414079004840194997995304910424235818720601949733145108480061252861796047776632853841989117215869591340757734513282285768601922762398148028391781986878204914437668356747014992874410410159675069480828589464800028851798947613081034242930186993828523735433630191362098267055427452271745392182256209997792188949910079838008597337300704775872846275949125800910644572539600871164204286081393832386387988357469557751991398563384932462852060753202142852241276060950109517690411573676073558266338989881279091842451416728118037222854165247714898095021596473238179126508224729383823846936436093923787800224271549927775011902019642123263706571166561517705241473500535532894282511277911712388011093303454628671556212570697292029844615843859319731237900121792541112841836402547305743642997899485052270834187169463700355027063385925177480098202005027676873454104150060911826117404848870537697192475810359270118952687191775856390990460031234868976249644052573124353838560045417865457739554488868712601640649334354914828933537158223190180571469196137191074511458696221714009685735207438988789443173954120705866602178526454951811244873742200865747915505113924374170022122227373315953878993895811609238146383737216021735320512096144149636834235221735339763172563768696406725054156164601789174883089150493495647169743912640572480212119321453995934208938980940216940692504072423419238883420609655902016153239652451382256911071162485227006065497440688992980408911259194408519830132571127032154586458551441626566019009369312456600492734050356017375407197163902347015170355485230607932383223331659836596808362920489303571510480312202597374338658383110354896625608342028313431112928795405577571232115205050943548283362817965147699008141886325088429856873254911633456856054941511138873610553362383010673620476510799948081787686847901588614289739117220141097052783645766440575002071223106527758602835205062753620170829544283964229642089279235161521323676876371212574636122167745778802424861485730806684009254874001735340781297865954096322233223036236753048376540463579786251890770512448436877503360826855260864848786231992794053893631739019457375093921251353587487904677671949180770070410442104609466912321958000319668855314673711199200132509098695374085925683304780953614785574497575482931253817875917894164990342075448574840550105150824441227566607700400559791559821613992076949882432974511329647848771959182975829878160759941783817971064394435666187366746507943677691183166446335828450528472901477688843475699413126681179903453085725505162567862912950115309835218231221595650203057223046238923792982288751405596992113812111812027508323778639128879890832400507829509613417759917827409576700521973553334408701939594998175835612447057772320981181747304879602502693690840154559791574116320003485321641860709608574802894187165744825305169040357932218421529321549915690312104834725072252756793483240852054639916070811676369311899654365796762265096675143817147049568542589531976319664994792396847609534151707351569742258809762984937899865734278505958992523694879117492642917756339274394695586822042520970615114914857403840330582063299564547581076261782832961462601274808493792555991143892990239615139287320560758826511566773029517808671051961283545571575520892110636733199372007119211545111643345237871485665564566134616386955761377416555861242484535537870247756272633583286642260081797004405027549603530085580794096581419406817670651021650176181927737640543773800347144678694983847353483182260869820465857392392506772033996203905585282165184631808702497695439176422871861345865955484364179961517134462695866576434023973719978343562343823226426511348407615121848212242496658907139095349217823507498229863506833342493215663475878474132365822187513532020901485123697966661370164931517110593507748656016328850705076101309745159398375369875851569877588097028227016332385102043160431403452185575683883340480291948075882979950797973993071285650125568075260965733061249471066182701345777341968011746817301072107719807958336526158344893609927002536806908049195371019113132143282183605274775879505659847936129746340715733936514191496017236615387726740636013636911806239109358966882066684064739591124427939414116022015419339065298706483639161900652288623887898378618712121482208617587524849183011896629141422216675851969882291570595245190829147915615479075846383584390124682475211537176840402127639523616194605394393970402265710111934268799371684572877897514321252130070108226249850662088267283390862688587698253610245196127615961968921128255088355543561606235303685799589409319622256577419506339876838820190793736296958995772732127908115280158453785595761155540556199230021848005933171019249451120753837253742678880256086789450396040444156328514295849998508986598704313480887667465486266351113142121160558834013907934394711748856124022427033756382774030903561439264180784825463984011161849073293415916647093760615504501358249708973972276279723434444126307907863875441598963812023793770189673780852935426655767710475669603323227687704227545494037192991800344580063169842123711824686873647470013774357166536201141422980487348671126486161060232672868691314705044285756310066319946612141663637662027716802085867987251180842026222618320645439978037816893693301843679358460470426106439493902549560620413539339533434761322065090298214422095248232980280673388616346649017056308352173337744683657956766331641358285865705692076344055618396892620869565152517076536245620664494855861454235202494221272764068506737410276638593894577933541729685958898576345147267610654243249566042581226536587046751205192776515095926469193795571551417916829102326228062653740412863637146830397665913857764895988591376872821642884414322250079890337898723523580424008050277981083165236403159272071595172106280758822473548971865822999987761643065039446950549661878659108113100555634265305701921721058787340204493835009118122317479316310639028184336855029448658875477872165602189286170896294111682457401544742455135911939925263077102820516686082638974459943393573455012746618669802647568375812238825997193449669260800728177120853854143456104396205402339830685415708826109251537202418418943412552380197203688495764110785378436057203005297991502468949921947465116926640325434548305450867813413680691640893101331519102816856857570226826616532881216004462411996610843897011150020758221635412229245705455615596664956623253825146633527827263750493239572491658042862239848894460799143862174234526725858896237575281237534718080748724798009954272322990608629516396344552684588707080471671907047095789548924545098947943652214913112734274810701541588543424380574523476091519627906671667246548213700236841769801036862087066035532579871962997704617087502657891219394872747863701974478065358589141291142955218003790203469991738839086572336393447092974643722114434877373111659262035777768210154061234993104662545145527657619534009837277786126405601259587714415638262039695114504448171056626550511741931688898501351798175660452224554580394158383023718845967133460454622466583058538765276147085586465222657806978721030109253132041077400018487576995493383476643736405944743583052377950757612626066678418584679042573393714457992951944194930053519602305508930301710724020952926863409568023809052763314541687025379585318508344753213990222680127598611984589917292456140700835857786244465283080280339763698055566657243962740046374411295243414035632800890668823238281752940210109463086058546889775476956729903525856844157067825043734762481260778969255971383789929503841214979971995233641786015029825324985799519555290011693278950798994455189382982698814127191445826767253153181802597204819130387384865266209000587011418498738590288482915173768428923340595210964776450680585754488908115711289231556478455717290710535706886747211531958865373309500133711743660162402513399819021217198349461517280621575764775004502044256060403495824618136382398443170903340384997630113669717032005775804210077875018100325530858903402217765060829066682494136415497280427887749859288180042268080116790900479087199607267869806098646524754234303511486230811649598058340202220464570978141095449219225235934171562900212716230239107197445970803811184556003045976832439220166234134031442459073700788042351249084084220840021019014798268060213106960202415857470792340027823559373434929715787269785717524779599973852315195894154256036401033824221005788588352921633846698294129371175712323327607618806603954632966262394344746641558950233011646273389556860405968083779593572849893770110696652923689924390851589286991546311311734610800993204340411120956624573728492141822058138564717494872460686079107956346077976427141842657056279390919948689728248266940060850392026589026703112487107802605772090931417571116061223861458034144737594947844993646540617783891960974320437760099888988742220099439326527131920114430007554562489188219094945870483979168597116435489475265871282823038122602139042400004548436089696670368408854102754092081427254719040519887986348935961124230888259244403208440569780379927998835784842267377095842931064599975841638463352897932255903381114056529828362674408178187092453343324048688760151250143042624095186043595781886265701800115262304372131892050157379477669656097471402568263373958054340989459449041424550498726741442190785205794324519338789347672385107926446902850085454568980277304646200499436010871304695726546545472387833610178742482721451935639010367752974501805831301756136760879307229837715588182683875553872111366754498823567996745716059037485158067175105913103886662618665139115330750031496741380964418292047683842752939879584826046232429296104549147718347449283240903647943870401401563962520082581446189300728046002492012560708630277827851692137389241583732895124302547965034053070780977083304158588688171872206436924105046593008656036902365258989559780809799216589301844217187059799022657056935093715817795076951251451647396438805583826444003161102002993155872448271700199063477651759245690097033603615171200774599715993842221768063430239444930384119474489043198595408899346716296291783310193027919538898280077114418276338770565605945071532299097104361961764919876494272658947406391095262163366453736985767488381752319022104450605938717209805000883129764320398855892347691439449383310039098197390271614308462369658327602485205324611692773100590858627251150331903183196724876339586152389451035343171881040750077553377539647729027540965700503245247056691452029091258009660707474679274139811191040307174300395842650831699590777727166698894125104801272362902434823146308668373820710405316346193362397328019126680972578497427828985730587045241087591661565445319167865524621908944143811010058700358901737619236339891374401534742273640889495119778490159244490511306966265174867813719679242312274763209741292681558752579371458735932815663797136114261769120393833881103992237590257239451385190495568225755341052971273823100005529443256294222581408292822762897026989414849519137130107361128905512322060813510477721890258236266533902642716392849871573302271620422408972346205603269852494685704005559434611076024953645439456448378581560324608932096300811609906737331300186081639098959725270115505151948070107160757451397429711736599932756995000746057846518358359800491437861608035325766861925687658600464807242037497019211370623538034467959152312659128443967452214138209451927903850871440272036552789665140543571145078306132369129875904132123470170902754632949967984677584721498885960280368768420659479692252497192326727872076432604570280113378381367705599866833198893728787936423622364400192262397155702203677565933788346293624784643434624557317042511537509858006708098833006378544108377010425688854432346948107809342818600280455817763783564877169605477613383111578548828132809950313409318352578212986115609494919913504671576532757125349475685544754441986950492954136615931462020590131808704597803425482855001404153917013953776099015987560437881793643396662983761448833525119147259004394549331281790795883054281531433483631084624528256204417896865084904744747176430796694432126588544988384408029880184204799073100482121291379751407251857399456635738272462745955538678800512625029335446522301896503988349574973579676371250223385613274582556909733885399518917376961659352948843140188330672871085516908482577031657547036898904264236502576688616196349383789724557755714550663056363903093943014851145678752306392084387881820814854831190702137391360335318709811682307441783208419963148845692084873597260407641486288514777367065927141773696334573533440033644742032079047573968286945769152542349963708006482345797099404691842208179081814506767721259484390978095772282546633431847025015333569243126056871817566519973870462642572861181617122352734849266703912793598867800302832204283538267204177026154589408273914791049196951871258717280803789741937065901562560771780184041250632385925447032738596566434454749600155004101310331534395636983961325945529058425792983792339138648596636260272962229409834957221769083977398847936592925626803965496925839533250179329223075493012918663445482551881742022658159941003059545733396672698149725842053258117391283710124847833957003009604974478797359269082261651288006048632686992520055804054458294940309543525879647309202921097073663875612000682497330957231147102880084293401368147581724602240463683623245909676425865080526519963161009004234016287890395800162487968899450080107631449787491022951179686490134759608651736672735957035701091454055382025997510937247886118523718321915570626763759463747022417103233663875026403409056246164904962914398415998490118021755209823917548937050590066575187416563765799845740029829543994585401566280973312260722379780095474812411454723188260193759066847274082592142583483823696461204133784071815756067306351823022234745534061267926617368170499796679996196825221400140184247403547671862882585932468098656250008650313380621738828886935169236648103074934690219086771330805918028543423253206787161562656203752607496475565735258010333212243490568221659205589492926199115209129730387141882402880399016389157143708357447599384428322620841765663172726979103892539839792484913895212717821622368474291885939000671548782369189109697593822470032961530522871893232850712432842733531217271560503897990758971458612837012530449718829017490604786371036987595945423615098054283448012518765971980206584587960941470292048325100940088647870132435225028642415995139113426560186605150193998988169641828872801781793961408360158938764856449363059618414360610209406258602924966465006365073425258378168626014206088507669791850459290635679198283377985283528887776668352331097675765686061659410219808905463328742308903127480695224631219190390216232981072003981527990201879850600657978844857153596738810899984641888756076081688255241803448460560205699894197548393129050808987059467100920112019150569430050578511578012122414583040761034521506735374619356389754902802596058216829749738036151376350250822719214177654727713171279708851294960719778043951122539105990336902110795528326471358480676694279632592077707978191317727703181836601732922277002351831846254129149862671414045531675607833522879173054580475254078265236660967124909837654461333855616689811212931960820524485178908824861150924451941580077293317589882911994907969341199953011400868152815373968107970140669654318836534874537873539992456807245661398203887768566032107265074678268307017973794709030884726474761136707205721780641411283265659289370453833962210031281216997897703607274020322778622123332389881831224826581468468364558339819623739677671110456230007236829442514988780397722122594712357411500208620784299315481571851807138523032955890536558250305448483534714059894343502677683488545361351994957011805111094516739500746531058243331069682369700459692882100867755353132968817764126389245958699348642563296619492630963512492719189963730268346223173821966848164678688708776776851936491060348109408802342514654890596877783618205004361395878643390166437469241985945802072562680269456709126528356589200882964452813525113573387285916412832436550173463808558533948579946287090056368530130360163779980559941489770960291161929677905961090328567095975036327015384225246110117770363229418347338813706062114770770122604917950319271322742933065607983813734274898503100737557961055942101762004946333953814311127555742246330233244390575081479391797947357247602349276900514623774304683319471231569017377585629702861846022033975631572592918261355535927005974131503282582201108531935591617994844912706215996036373193636386699782973043004906501344978440558430607567376336626425658259467275038362519001651990079360969853649414469316365893137426432624274060151819501171519313838660305174362152822945439763091002912186343533150748960725604871075796580258382493958725888273407341079662573003259118011116540428081141705901735515715767703859087460167078581327977654804292381843672881536175671996116891363571605284605077137579781571837770269178278490630474250010298428957902191777698132650842656183886891087873610795531883236567311331472433889696475023674504074331241275113373309275734499705545474226429782022661387735747655736743297674341092092439847529425422218576705486260074769581231623212665259983616980390414806664164598969142021151676736534368944106408930236231959587201114739680982020510416019881249553154458676387473543919318565328791634777613124485800547887180688408415220156950108167230157656465661049264364094502994016385685633995382276115945086010190676076427260854842458373880987011608771369218539137337016766186581973795800989666406516662619268117383909345639811419885165694909164123898471763610597686395604758108291011500283812083178572401709445318835233828540208051156223428884695039697198727593277144711209677227389362461368547390284856632531940560604288049145875574410945744476663704927841985916204888697473854907308424704769647499934948673994078059794666297480385645775476008636579387516643726116974576659150420556785104980227072040763587228209894765059059355653726010351635933045824967091157463060587083698051880480644585553751748378920041159808337166826504646034154081896035961706277695999488117342483086236442375660342163702602968251450130561380421884147777849376877844553989995625539885011546142527538830740957997787736833000508804664503313694737167326086069323510169107477699006431895417739188597037457748785540127315244787503404526684328530795279962798650908260866950560211338537312152650502953956201356154676906836389064303973488640049172430291924725953173991462958795748635214020024512530896452103246755560221062710151085743132199499519545045370394184875992918030819640582724899661401421333568466082680531945749963250798427725879383263708091622189703892849647636419668978855164281368640850025264855707980216169100067856484918042767416569005325261044035748778974223403484213466065720223898416272637230938580253711605329316814963287982482885918896614972560005212628577011682811395973134518576167512664323324570013241550327309054130815669167690823982731894433975062417184712003128775229474971881570842369594371566244774350227205710221474267489251417930678144850694983713378820632455812084553286718448573526216350966847569078491422188102308978067288345515443635473084997227647666170764051686649290679877794787726094619816441371250265825629629694638929354729910707084355307513179586319868444518720564943710959967574517052205098045395618085977182066261506235884946206617978580408592081190777779904711523492765562163573302286208167444552730758626829726703237148559012052473279457925508161665764158080565999749530037732427439534947894599000285089785420775007813732803924831188073502799384900583494932005496357558416680671337013185220329421946458139867064976165658343668835050093369650120803575606771811997916097743557680882678627225055449358098649847761056531821049216302866115731487976556593528363993642519551443453825975585140429185509804711696099680649201705052866420024107004673430135241851598429231303318562962472403790099633331829752547335460930337984117101739321602165505484659176570385811777256714655496252997175303714045791920195914603774006710622160380437376972823445480530986106964079802073132231955215767297843124613137853677054892682120842002518351687860107572366305874887140911559890966495895316570307905463241586320637882430604180302542136715298512604966992903757989663592988126863730573706541775538017903799906373656289771180256483712993855374135171166676225497955556199739763116357483576265059609558685261629221830269297261661564273527273322827460083822763224308896156640650905998296598884773191545564636607364823618378265391210498225786924287641377352309565679401855519602521764123685814353754886285632254802284569790512931942382765892678583797627147880316314849087132497870059217225313630838207467528396372673157864305255041507658398704384003035685664031750865369173603539480582493801391277313026437442517315961477256520679047978513320280256936142824070003698706937492932301832968277401178920413862902681060676456777525400256789737499519293614058934704598434035679101256519816636464750039718299838905723505061221690772077100322327851216696431339086731021877277537842002384299773305600991024687444643266223520448775822948564057290755714603909213322429728932835027567073096275389614726629620034094967669599183641665038061985272872556292191236445824573698759915081886876364777586034264060817559900547349532483365041546001993905219669224194287917173887230917966778826493791894846091267338805002976005232189682683714629733616185302288747136870044539347662884357561234951379478688745644854587215970642554380152919399637964498010647877168563399238390395271253321507796283810851259639290582264806338524782908966556295067272505313902966134550668106230571703934189084379018776733241433384480057297929726258280012491454710398299861087085251206455964179606297690937734388509370620664893458467001570416755594996020865728153855844376811183098595379810737647005955434161361896124392151431049134936426612685482154858872632089559069230697453260259227933336998131093214332511647391066273090207292770203122588923589526563489231085613010853103677794895588242157255084998101270678770603100418998407297554865678926707189515268636620432943128996406492471175084251599102588922092239424516623720393840956143102791983963813068549628249589941210950251933523425976382525072052188699528647334546119090019696958378819432910103524326877186918163068670422094260899037471861247383518706524531281739699966594557335413736428747981297176692941041761587301543915918135083149757844529703084161319800374251586733772789676117713240948967786894434503036855681482691325896158328938257932584469961412792907603453746081697072893135902180178547845801566663869331517467025056877932163774471043727302196957051091322062224399184245904394400484077717776861585393046690933991557923237978865466131547947994441377507830176437420928207503022188955219612125423369222446233648502290155743031279648353552698201395908734183031470006723118452695419742617186866707697764322035507344326050635272458567012626045793426187610162775203901249675300201222011087057346870851021685701966702897951682113966276901708929269617350230305736285067545492930620185155102186050622063120998702385548583447830652289879827022892803963573455007580017381131183345966374569766207903235681810919709687995742781281405615172631792372901654818366531001883855667061037547809272832122407280594307109648238861656598926702708175849519715179885237183996814491638667659697308675478748670035837700875100554625125395554258286533764524350218432015388074746942504063850330490462995105824668427931636236947166362608172781924220558416808792345516586375844988820050847294561604344868404378851317179554993919022156226846335802233510707121844509804968453222273794739008234135788352729086590610633362295049601983380103324567644240158003306308201407945387409662989120395946160482006786760783397200348618453068131540551801740200210960097605289908847796587954617528526857394498445517841609496312173658940291737437599386435969984885669343711734682655508482140348612324134686732461570822063626330082992942416290399233690509953935200776974869959340031623727015450143260016331724383339652917433209412258213455786473313404607901803249941511960880266583551987181309306775400606053187791407450751584433288471281105004934780726886337937611277812380059353016260158289063048059977676554830802559515110674489440196130685180153246122784547748014423087606461423535866306504881842117452632342627945348941299991153138526748470033065035549067193512554746166374501749800007379131449846825150469782089038681114531368012183228606824537099747553201478715377594021908116244583905003174194679407669385210905266999774881625761650771431904066615828917002420524820884670042858845712031628505816933329346156259894932049831605085581734570608491426556932352288062212305240383177392446155789543821313937420018848130328429132758541138797039874306692439027843093670828630484703721452172469301117897640753972290019691328031634380672433423360713593604691910793842161809064563481864810118536775625662563180633045709164133449021469414389028834331634969563335084822124273764845212820523175811404459437164431219787325031168714235611327472625394903568438380127085504478805039130014937020041620665981015507936613017345859704143536420454955471386115356866613572818776015382763901933836551025636431335634424386820601457441060966001508571695688422184301907878755781943953780905002840829735720212626989631605816635711588391619715686769388787313212320961689143643146850538935858289253389362995349164686995995145061809185718704974046709572009305977217550795539009472983337189039788869633192235957252083915509835688166658198613896074499880181575293729380517206201584735684476233024619461504927315862931819403281171861274946353844282855175935536430853053923803533969337084028196088594858283450809554572884772977061129822326112726541058788607238383051097616675837706799817098120671836770104693267116283760275659805790648830915550881368797715780891544804964609206149268280028153738720296424259875576670534570516648064725495397564408453977358323483430555308380039738590517480593277653403666554568385787888362585569664021625085560154406005867282353895951502637983888073397867889135927441101303019696660009382590779669869683570446981680930988240417846631785318159518273567643718262634186153891639169254067982311671188094367831211705592767682083139955417934523751080814254453839424580434915355437199844669962474240858061037877062927798249553678769432379986931415174171699629884867971185377319174216934648212458771795268938324807775957159377712586359799165894366765257021473965116577009928775474706793387508179487965797187956987844604349218640496172810489038573507990743189740135419489045049091041679245516738901742200704228164458393891100147314118813233469712207710332647248579107463196999071302943290180373852070515921957123069550843808435173267900434936125059239547249265004936911023795483626077317557945376277693348457054101027084837356368925665891915000298123948639983592158322338902600539925374143132705835971649989661046042505970388730853156436958181423864071208380933042885304288561046220716033733104902368233472663230515217999058250134162464025269566712373641058046775038066143269564403434324048177557053907322177179621667653092270017194610355835121455939802879333738147763806815536435566510291478844418535843092482877097446147614142836491504704048067668282313523047894093060387318582882457817679833123612369867155158807732285487386687803442681273138166937343802938140579435292715283154087213150938624955896672276833894864107193338681801756564787265456233322930909241447692557710918528607322816611997508964706662323804077454272039989370092540507747568268895762896621757246852147098070561712407035774902966378309018787500477652466011163519755094365555316565205137573477295389328694067568714046666353815698260096981285004288508877427808307179265205128753087232036988972331963319738748521701174675095785700435271604195004144790201893893251541792312639673787514507497413211504024947241849688153555502234676344379987829385287781294768201675817673747767214603580828547889920791327233161180211506950615807063805732575329927336813481350234626715402923226846518852161017373521047045621518235817029476888771878976539335942375478691195657068945205026898444121881205769744347179580083915675556060593935565846696252124055446798272341659079358208093651342214909026113442052570223985592304680737364295933564637439775504811108389444741704294567184167612610731095002129739406617282838885262389187809518502155093651357215102884816851132383161624123502530202026926503395203072671584029858988185654580294694627934823288882037563706453008115357861570481607324537487308320060500798390145819290961517608898220304207872292735429570705350599609019038869390455158947101863740405328922798661860983171867953240397833539727021411139376923007515729118729837387506383074604494140903499237710735703689102537504090940065324508669392846590147885139259620147232947101148895865538619660851082131491985566673199334155443923026516823632700690311126369540037487939983662103120490891994288336742622834796900628724722779592858185220178947577119749145296856188906582855825786142808175794990354615759511607421127989616624682762721166732770902470179468786791980447826550359523977011841249989297206848981585723125757218196310262255091804427172972587154201013085564657551622748787002469394603369516730630547992228413276002306934104026125491633354768148561192130797783136481107011224870545257013477897235956572791513475115174647039753189432783074718605871928896972262382925818172060167480523937510593009290090712463684526823249386770091163595414236131196759990861533932332617257161888780916808675855246317631405201814652049618584417906070558542380253707160944520652027386063184995414528785625129038825854104579251467458806578124831959899534962097902500372093521411985478015575560842361396779910260361088399499061250377839650157246777032664501694891613044729229474545472169864357290670569549427607589214346356106998696067926083988765460251825603991473279093466504595198885860494593474804929822307323066925742415906000154303324066962751783731408240566835147627181937539467225382362766530132073502032742421481632323624348863384530974272323097443195794723100119722054814095492862371999849901467881991535350826918425764109227969301891976520967161519840873046377873314299740953750587544125471311076842311788620360633566376007832296808798346228839714289292517563935960783340249393055755943081259797641155625304627060163249189863876339057210074361916230864701978443224321731960953951323460348494751339935525489646196828559294401514859367287150240161881621337504584015116218106196690402518861033349425756923981984788105311799097274335986101121381971032306888425455986929350606196614825547440870369267628167610493026445866658713054314246559359527432232013473657843589427741826252724185898908058540381114299814556350442747049422706931927199379417879273027640943001289252076967939571107325166073148328094127551044446884743010866673624641661640683444332699669334730792560327432746812499565962553805403351870629082219194055498374869561526332243494047658628717297261514710882500864487355807984171325190028308542645555655840926665505151112164678426877243681655600483263263414478997676864105433318269450649976615832609821818038128833574304728062981672416767731425627864122202895008959050510189054862663108746208075814859986863944997024416494866822673460323911292414657804437272570579194596715418586605427173108684689331448930714197652391863746331772730104922017107097835705741221436341868848901319261759853314612451471551361591544459530360691690353483731781008577372776831713183884529639476211979223548664355996312996716390371500832489874585078603735155795736071312189215543592931498176375334736549653471723927493179838766923272170374476660160820447793739828576293805366600697631307106718714472315466761481857984396278114186819701915479333465825258154882046908263180024087914968236442776847233011596276609330957304668130027412988780954173505871588497076485179508849838483763214175344343409717503802203246390569999293221161615439760426146355315584674196277183128516168617669542325727860866020215108871793187624397483302303559211967302200470591913482290446788697967081023546739886902651718806822316072191023951518447715364984065496050005127947303993352280647193908161978113854129361538757647313927666861850089364883199956396829570006254223039003820520056364757885199373122497747900782425602132920962241477492040436203640541163303608158320341076457029602440191647455449707204912880471139873463235406676053544739855406511884145859247150952467916996862932717090945521981127446774180193785394913525301919779659708619547079842028773321091100356621198431248130170302739385974870182355554018798547498951040618181278488290088056803231802810519130380359849905241677641456018074007490436751564709984006508840003280611389864194957024670185221496408393462264875360679785014420051409577065877804299652952237441253425432635774302062769143265691766269661059346427528832439377993591696152523331074532855182778997870694545284598079378617489531201107668310320847912018596976303340723367510685741744758252275029978032751459628080719052297401059409417064170899657118111334691332106005876239207234101838485963485664376491310379618188682265001574593435284974110015734866118221116887898284180966309760186743457346887421434787193972561158506108182784879508710846474721675431007989609013825513607779868941179495362916431563834114728897407235662779034826768551423499649424035241764808377992765413127333467356195930730737411758605969589373768494671950169038588559281893086006315142865503659873198464249085777912436463576669063778651764898961678028484471197359755676403718109961648955538695476436616176098903932390459290719235614026009876908803951826102041872985847902069003718131642565258609773595171266739728873760042146881167593960291197747881605199665705501647546439107895491825384578470234830925611052548629379818989005947925575129379668453459482263915031226238878741277477739019514120231413746926596548385520958253192547824958802865275119105248219441573643726486801229730128316681624715337513482578741435514091530337602100671872583173900320631676954561647422942469121925981203704768923559807199332453154732890282679808755003718143665004165154885874219310161533518238198373785801440373850868149828347935799362504843088209527108582315034042222606668678066856858671224632751481765718311606659889772989266118823388568302765361243169711351689150195132119821748816342499562689633764310223883323306803555110772316976814757102213016069639733225879288626601050480409608384110377028000951889166418051548168526775172640512023245945175828238077440337709282497660166274973587903178488787221178462442700197703548930222210419582776252169736716699889567200482885581451665332285755961356740250496698395063023484844065731846776687827122297301563234516436795528190226779583129806816996688446266752683669351269893117221142728694062516805005568134532473149585146222198140146565954426419875883236497969084063800637330446423728729157460050830578613376355761478825246324073174399501633958698154577808456990528379429733156913357631433165261103520771631166627216455866585457812210798020847275030783203202074852982005251166398572156442316198431154968788452702737894377885578192672121414808695046868224377873580759553741660750771283092293957288782954798319286904859699903624251464118431390001640823400274414928053271592255120982578698057603632141649810482467862112781033704975894024518879716423003293738551544819326258442956268031894614222019358633574650868460092847353579377117209999422467714703650883612135276564828396463076351526487663064215362447421413283939115253964024266322183535343611573905129576713821921932776134080959897073552907021469464121937686541152647597962541352157910038446630416931602358737250499534714935137641096268354425502176428729787993945631628014107050246096915216324162020205412022228204057814592394058553377794102131146565986704233371660000755332945857648367004261084600156066975799008333627231370362699833740628563255963779805275494689430996003377219665437934241788372180887314817007102257741527976122999522766531993604656437881588062185201082646286651299389885906107583526672219349568902479893507234430021793306891818142263802405176628152444715705436126875637448825222320563250580165055732580578826359928749785151763329353055670073185635942543594518025753526961571091052577345673182392863487303122344162660620590594623030058128204407918554720401730274165642244770160649805962754858374903167598404273755751404929685694395086516990925766570657642636654369270560293744315110231470785674131640184542109260561880208864111733660795281895164746862930541916700694586174078637013981541165043537535876082432660945968020773701904506447722551674920704803451212501761002481483851856896550285426146385126145841996542166963462408089366670332065379851715827205484997552363772968514002520280272409483196037684942781772511756252915240940443516965902706849600199191422628763280098967045773906314404440975479301210093522113761322071598039285960397993547010148534935347860680153286442484356565661765264350188660055225927490755915564033190225913204615385323774807519030390304409115931062086812277825675018755861778938223255977444968976368588487371354642182524007924218378910923665657417951074068262210816656347051556808113595389893496519426232929967540788502679362941908333465675831101601174919728663953159215277537686335474794909944524561382997914850713289017978565982069511005856177572382015529971772905249770333472357383863818157969381647373948041077899329896989730130848165038383041045915900607324702378026482115929928520848267899621160581001533606669406811976937680099522139312544156146790066240707835131151039286164460381877311940248246607740756613301031966669165989419272834299584720718141279716571663299628946447447331276881100458631413799532192839848686039254797904007639327621674062914425709142725510603419626591415416967790392490607738330943621230071306899077422971731987025304935284581122786787083681199184643627617783206436866544503984606224145935947893500429316151168079373427799978643453148906248275231610960930128072386689498711045033111732149306496516767815025769007687466908356740227868847113945856045037545832908838609898337398386601166137793193682965552634160729025206427937901767750885553977962835136692827979589713158425628330823719629498428810705964863899293891595958978217494377414044219981150194953024471266204967049202085985719739287987689017315295484714024145384184120171935254915459280907257758438678226720063644911852961754669554165194524362945696257138682855424087493006718276424966516519685699765316102209658561482231519010072344557887040233760439638459779897711849403232728806670992047568792211258626243789898351967853817524913265141752116143766992538477357610498731690102590691069081153432535502383819242872928908269875302368150964093460671391974887795137718536500805591451717798651613125344940636583040524380191923749031809395621146309834381574530774177927795988407214876511391145921315011698298137627537161961929615129948032757894054681071760753460947122222846637006333710530092836408317080411314995215145925550442667247172824265352929849035261340414787576631573682662769143581109946990763088132707871119714631467037145064037222440709324476848620919658776776438699612765201393675252267367249958898869354736641704507706661933774137854143800367597732700138276567610901061196388559235098852612969520566336052145386891055974090593930707665479275895592096080924047097209757882637319908315157015043409787200690929353946590605129856832780715346097365508538544679561421111796382990646998440854718197142430625402099280693722802833830911673344667511025221476094580755075760180596355975376575967202698790292917136011457148773842474762571137148551691723912619462856995074054829943237178180162020015704185257354770761346871580228250369173554782210797204852800508389333049844434976193176994454586649031735588990332734673314943261700062876249519681682629944334411085752305876775295699846184080308855022731054634650526499895163473669721483517910230132755894172045915131605884570057477069102524101692221811010513997458351041510797943399092062999493815535167196848775378428184570050165109359124392766084573647032541472895661056910262948577937225680376236494785367707922825102173657931157112172637063180129259876520759363782536086201526771397970917691764636978543650274905544941616740227022979114434820184126978286298157370781809663298503628266443518559638942736263133096913722171901707826363692252877134539016081941333256651532157498725264228414756722684714347400020299519318352891789238648852540616317077971040303285308686625517272789547129399020999756060330333926861272566470460821932759013832888283594467983112851270697625354008531433485176444264586244492031969857129859601722071509404503857615960160321583606151035672565530221349677731773203743100205832555022514491890015656117153395790222366499398275702554441342649623150191426841756752528280366100494005075795090024750781004300067451179198990769006093576886357125446918651532658604889046247982058570060285453108083202817279449506939065728404222696518135580070216047791455067957569265296764261358114268918237594039521531158592457633996383731431753807335926087617840989666122387987909146646385767484597337224396822949774407070696860895073336705816556608935780493901861406164690185860744275427246582741324021549081290275982895594126735974649328261833389850598486273353216542336669871937363824320559436460575938298144090279034155730727008330587786274146413774612935856940158377122588685680429702761518163054803049410336184584666741633122363991584417987212251919073346916117263821259601806659626107509383717704887155606663470833421122024043248857117295958580567217426129433859687057115377873990185904697492060058870659280740944600972920518033621742646365032540424348876161619761730214376683253253278442652165073796413562899959097548113613840699436417952752014959058841688006636333120458292287002280049160748684737902366609384014821630937117411792270563262792541515729484154499942758972039117123227302681359971488556826841917019173565698766065087391080249561434402222224837550005204966624579589867117551692810332669333350490584629542549922855334755836803409613342973144967501450978301704034409356412296032347969954057029035641469507035160848977331212098353988886342514366754819075000072869049435859746927976149628071637677294302923232626161632464080823070022645384018781292876712349625920009367506371210801724126003689096657514118458797448981663325674329007113695782415249600042836671094700892485626776857841156354963864570384333725946430184364475129173130983768136651038690901553119230844798179392967196067065666166683549944124787698378185743173148152688605495859762439878954911539916228085653157803201058619793236392705313892019123114555462980187668402601700117044904709986938025400690214106853561456460362761218713247941821725325586348853516300385219146361338879043589059289069503001607879937544055701520766354292344067106651555054914687016711763422286177401559053108144741858749920134895583958987330672969578796326451293982858691221144330459246251668532563409048693821716046856778019998196249908703241777572997618753301917983642126176633919716676351455375378093875201544022997336519626220079414765999255710358404974715639033229102793935117948664719543875982480513274343941558922612608559120153156961751282911935383215822937991191040610271711028566879094388070713121846870997170357395794197650649063832938611516277580704696986823434884136747294119239863495392868896968389255257996083944079827771334293410842333483961685913507373454075684719018330906445651958293386116056299216735090083862222908638235077648577638006658928314362079639685406280143911969406845635367075197568186292762799702492006029508927141493711434661746920450471841577090215598506017329148252983770247724821219898712896376140070148412153771702487576258255515592145430059814127225986094740341852100625859305059793037530329384215571186259811494046623617561461906909736426437520879920050449918489031506789016135430905384348458920854234656337993075284930095401008674720798647502903612752063972922679901035284670592554715880202772493577556151791162178923218784036681826260436606256956832991151820138190297428080584762003229084533253131507324446481521426722360266021646281103593170807681759732966832645573074924738584373107527328334371205704023343826498096041725323944090526883990142240262771194641346085632387960569484094883717332852941838367849331676564455406103249762078307157229052157569311418115608276114366443115983377383883440304734364948876759523359828697656756060596799400928020337951458157659658401869101614040346529533171856664104964874485116814372107805368580136516184644448275323998278835191072473602981840135718141786861013514202280626614460783952667449581292743375695097531753807412090611596712418448256233149097864152348381764292327508834717314271438989430956069467849894977011980510880036416055423712329068238667118638451109846767964643924691099588076256680542850251904029246799755977522905781171423379295020611870130342318667211532304327504216635638306085212683683427246591027960981225176164246417701809029691290688947024224393640633023006818833267347723727283984371447443657841032649035180529766031505465941082240013398819059519142859473692152322919864848166008920324084232239083344481519067784538362767794228735023276171070118712947436414824785218429188484029588180323803199969976474643168708631759402580336784604631240909152518558965013751849338788937078027389096897928861946251394857928067932231197056249237947593540509655377391820286746068171011818165671696639221730372504148559517659100165885033480836624725970112449128246826650095547739927157382055673752686121160902267326063844890865965804117483323969887598604279474032785235155169535595473767098838056518297385871649055392438678040856326835708922396913706282650084942690978281830805132895540634890219598591689861927838839562565471065574206761909742790413556397780443587762986877340676349996267724865080331498094018507352359865357931521386083480940905892436854938663724655882778833501995325009317391729489884320104160370014171206467254286876893427777143513136988858505119869241940510625032272394996026613651493619206878507885512670499246189644700653828194398402353405168540293434941767588946026432380645743633198266577218082634591355670482602576745884691916125660503249161351954452956436288077783703110206556419131750794799050296944955193044880372816201632228433090375845097962386550390778948391433513221137865840707371698222763481014568729547817486026758513400283182648206139786624745984640388023029378039908015557400703751129679317802376284350073478169947987483606177190240982449527262556806492384740582292601567440450734826004002371391762129114898284823630794960088535634223772217794357669146496859616573977751896711338307384674437874373935047819620348950757689901526836467069585793730327272454795830331297188061585139082200393174398345716705685497441155290326321473647337035516322683306325875238477940955716453267372413566794841718026234721646788404305015796136867155000723662958577156000802629586045308340580863856026806353883120190744159170441554647610068543715202234079536069989801619012316477610193483117080548726121748858142689697674046339145135811036076168414171160514381305897643098957449812517863432601703941837114173832497306590738326044239298413055295784184043921086548914480080217482117737858584469115805902375383338272150546504806618294589600777475979688640034540442005971484700576007395135442221653461804916872849852938848126498592134425609827634601222800735521931186487918880929570648380310299399869833491815020702549275699514563554028217060021992867517589867279225388195447071152198836537364301708340302762237823430869708599584161171986138426500626713307734352269638085627990289860050038364605029381122666351922465653041259577987159860309767540977087164777164186410736999724154179370899268119383995166828532502510819599960717391400596924396250467237062076015549049112110843489230374598369831578255292514899884601178827486812698503874735790006856554956586602453126905737137735765066115798440608539880861174665883704607153325328499113841581610355831303520712788400106500008363159727493436295804322385719528454512046057482003526645150043425331022398602209998361021436882359635741617204222757870883264608472325341461818710298385660747936563397205569638019795729907522397477388174928718232486605336666043343298935987148619674037235436154387564617346953587869244078240852442650095660639691360433640821370220739741286802009561173729205875216062189670950425913034884735996221900872956573328975208263358958518345345765034862729888984581497124769632849927150923631712990639929199892255363608221669501943106092210722517914395299880677535527064643496567808492683344271915596084122983016847131020680527867337658705884564265038024030720311055331644125000439585957300734843444970998884877640510856356986490245103788210890086907903466741854814518435191853759678489087015022822800021952985739187716176452932923469732413554213824374704431058075719189032155102163030680479579900103731442224166961038614410729487906604722738655220877560916506971295306600803526712712425506234154695774326182439662397481771062467284158996735656972253358011149258609149095246625639232672823874304603799847621747779558126418374513047701118965682356976136505549561775049159578879645495965896519914086309557613135700751155555072663956348731345906878288048307191011238177002208129048106359408421451642276240283429449666330995572029233085612945764419907454200761479777647042385105274420402786981901578904857817631648896387099651052551288145489856423508245595469988499162216417879943012983947039929730867181514420716138279506875094329057920521023230318292947134260072652031686900294768468477971888709131280426083550762290506353348246256093908893303815443365503415757084955783205970980407575153271210464730959584617015171249268130900622308561125953033252138995567253923757883213562313647251849458555508068415979219134032232031474901750213788711708040236859156631257250717119781505996047918405093865895317537497466350331984971286860153491703842415802084122869980606508840748986963122137843760318882712238958881914603108791458733631043530690065472241564628682632753060414009166805154551149196213611573942489605029828356966600859819583972551466982686025616860673004495268462601631693637081277548582583064721144100671236823150194207193692902351169401615630329783029543876328798899918446228985949380182036564483872129757365545268435902012962369857172062336577120443805570607547567299970570646337391796862918049958551384159381757240579302741331407010836161223823735854843119807971978821102947914437907472351909896317587682892045975279543476264029711003747447821388470447409453491851189143929339334779376874832912538823639669931546633240974228633482335839500875164020456288401879629127752537801494955593629459246134167676491440959803499819858762540867562817964551904456012028333132861402759846831342884259732657528333358358893765167784386961792391616887894021250636168057649979949964860493686485449283377149117248976588236488813253500623620006701883123503596112672309047891046866169082421014834587369805512498033103354578856718028899988197345015395722692700583947853314832135222423879925201738485826345945562763280832293217654810033640786195118224105363879754574911272135977941539426436686782516873596617083188254817670681268845107013679207611683992826092849102217645180056811042437590116970023381757803770117332379456298777603603320622378269895719191796843215478599312728177880819631567261504231615877766846231446598014861530871433113659226470296744111764707933055596685630980275066789355713590148102137063866358380707135690839502443450167002736548060721046499211624681009994938114627177335306524280403157329722382573126162343197781433467662852279495035827422647006783220847350500513744060900599767656296864925858527163815345878544289206416361614413491002046213032979347184167420531637124993825417388778239283802488748942924537541895527992655807947787283453486178441477969436720060656959558863660827411947998548259867249755996880203248770097332860668871621191917677925540497291259059948023649600072127393222526490613516173802062728173547742321357674064741382869284026134892176932752982740322137163785966710195288795238383963514053992069910164468221784840322863902947586624920614985842243166338742860472008508489994921920703155789794462338298294629388423324336692403342165269872419078890174288692844387199078008151606734839854783967187466486820853963892335689781855449838277038361908736338503488086671323848711777763581131064384756284364329325602642006801288182270648406214650531148715595067058801008702954700709586646336182431419333713185414332995880529971492814228281026759333275495498714012913207394390494082240781114935150184044566937952475402804652062873379629834598314618582045959162133450847314244215829672359843053416220116794131614422380081529010138133355798590264114023160555812000835018540172615580742405833109906513613396257345333792107188773200642464047609555042642998930388058440810303289425721141567432559312009199858976089374421051059035222547015081629991694466553015044564606328668174523588847752869781967398402548847472961878018664885085246639227073009932278121494965321287016514509386089330696768874629403601931206721715471778928378105303580063280326907767096295507793855497263235499087047086156289871392768200937093597101744002998065180657680146468344550601813741391018376653918378535434892861894068887121388774952577428539722730663494738644996560413527094062821347043642939730520736474942684437937660831367831308605026643531734728569453991810681898460497051106927897780059787559970645379775076448038431021694656630235664476400396236285625895886445765344519234677204243112658499451945892491333094384257687465250555195764240321411034980089506931201373735002999907097936822802122776201014291933979338477561351770400772948870007556690567673330212582465106252721124238959181311754993125062133296215591185074988694689910454069549628078686046830155696678325142825918505634407293669208869928210168660778455215007913827179256990484442756580414775129872745273364432408751930248052606238493005217071113011242365415493422398990723706871808435330304125114918581972259580599007591711954926809541322708881710521056235175559740604284125534360301713017872768429608181783081832075511254278251614200236192342959662399870045038298131207318813136771546878979796475887908206724535913393060100185588319661103967463220419823223819872477578733031768982170480805880753372627441657489884486043473621361954860196132255233450552940858198904880545510044446048156636494734746513317374029626678708541736572181507418694241263750466907683688431028291432154552806574942206007982979229895972235506617206830798785086143245347645415365299006596930207315996233731814684138194867449989619131805619755356275028864319097788084973869614433274837607644943509882047532851978558919570946507357991039815096008458038121546076644544356949213559758036643847594903502643448800571509799305037669111168532010676704769637268657908807170605390126694026688226330528991845951830624036462743876244586997758613584296464842882614591154078469646336332246683760472533781033039916163365333654689131495003046542245727693056290196810683844406695810799775237663113788124201005201900161047684783797727553579900480811127140086874287884856973329097069055547913791566526838745827975795974069366049915035366711200418134133069370638220240274269581358629455508119229623575685200159908985268927914498639403856120440297949810373106992671285600944253050428991581642611864068658390707887131952500727463711979679196713480149766395961040365182721011094885473209982939029203536318414511995071746217526256836134077617847865438669853081023489150357072996708975536313087182072352478284434491131750403470393313155303915141510669370202777890158787745461912526682123312349807267269181929300861634310442003490728931690618252796122995790359564844985456363607665749760624062955560494183270826147929301347678669425232575334256500539295797576800356726411028902987266883749935112209536279287094771931156000933315586245121660030463178328557067295609983967137317280581780377698200589790227106167575035858532318224809972731487616600800684738662780683365091997306483824480326167064341304540735489398733983185678565732107576523866566526956489861294581950468281844468921516544805832720448405685277934774710900256040963957674486536868867045546533432627476403202003588582252314875553026184037138405029161824840567311531407707726719831850953221255845236608093087229216135909143977646584391633739711430694521146024540159009627077268989761626691913221333020745417518248325076227074482947732179714517244651001273267169803859234193849768742843233315912721036620288872516541506923303699307948188130269563654236639443696851057384046339273526835284371401990406245953324126717933217659541580032915460769665673037522208433676993425615246751175279458773380812158232922169905893496559034795683747277585581325461060065538297643873280463628793351600232345699531576290137678137591663644167415961319695655401757073136450910754399657863812448952293161122233916116726674506493834351789007271077212906158384527262533224362119414510878873041644603209373591710321867540937276218241703797394750473677851040184154957801251138717937845425517709023687673681350185279685429615702848099066086233413941708760902324363796400695010970705702964616716784619898615193157885366183246139794629524209006225371203630786425845217137889309256752531077107866045842212902918605680387428919116007501902999578751419048441751300809393614308232787777115542379671588455241693491545658224333180599851132477369477277659363428774867423755399367581338822597438254069163200362480509625446244211413108449285498719560571528258485932338932188923998379181898379596440744120397081119666682358328619657854397289906783741035198915168998131289724598412817619299791485602533430357698196410881964396949049505736641963914698573307074506060977432958012875961526926141353170076753838973975758547639131795427497366678744218493492632637607969223009203874635235771743727019284708452067005219267665480111933766471046653644005585537068476914222700741671136339320654227147668105255871327661136045028258725776824689444652499738459859674858662721148057810891019737573240518151852206283983596656675072125539158894988658507053615327725812171131774505168410016504157502826999718346843326208367630750519867287009445335317387131644030696695324832446061586861537524818110824941769101090073905901540071002363759590467054523178339366522778465793102924669840935470240081195426106756941035357039543124601428461876304800792643712655777458655242939739402140221669744444354447303566979733902335255474697681066948435031223931903488869728870436425440249751075853186201830469842402651122587853906971078903025560514836901206705215475324503368041086011831266103649100394918117242393546992717876407789473603718044188012080420676236010947092187537386967255941591877192660809994183564833306311768037962829641073894124110692944075333075534589309984598225379829682788026532668447466274650465797391658748127533016228538160412990649069075990605854670172809609190192149354447265404130166396754696080854352037866000242260284606514589786003089006269275306648695100326873842183129977409168213930849917859321971257211578850148886107801356526024653858833104023124801484771885068627328889991971401924459991023512124479519111742020710878853217446868139386079805398472616274189261488228097748041242101859357682054361687140477503941443998854307078709940021529373998435318838853634781101544793432234735441333671488845455589499901138310172207621416414581937501229625983888471472909783122902367913723768743139630608598286952614429834290482113813603708487671536826175936901646297489784435427986741601090524214719340479396302073660987711013191334675874493233703331400112186763520219698509461724909386499066479738514519825957689619502725536831864112473919202015505508384444153815813168430275020330205754028054657739889387258170910030897810177903532345551990729768290498653369406676872158916907853751320997756134164332838010111718594329650502012695984125664524221925382542808341143678548416973420693305357950559188887875481637441442836705309181605169412704448783227611561234447105269280010785226017431200722404658526328779587585392335544576025646840477428838451408807588035286213303400154307018549294389382821266428678326242722709803080717684924959450681015012658824069449267389530630392395523541768037194966367942412205588405311431900858411991097767156611731134781604577825182944070234858929850087850616498054412480207517522057628996117786940576021101991489837352027747788630254482317305345555733038663179910681069616277594250863800399364064546524886720438430561596514217059521113227198785130680159155564565918236472443030799931489675417745664553741272101957343148239048899456154147393106781265734955303410742371525660337046569547469852380341937564062852255691198242402796863053483194970831639615387415991042540138477005438665507572140872143395713435891124837497895759688451333877872576189360067900818664510433472713507575905248692832267407887467023018721569600111962838689840529636644015665452261676644313653332462931794603818495651529276547417422325618273050120437835538756295933785451101980772149563364050737112608578932689745784254251024259421888673159452400021054973962597817043819693733331463829511413835125423113711257240851535297781259301255690036345823980913407707111741755189275303899419316775301378007483313077554098829860796424486106843227450495527567643545252571637405964119390998330537547413018540313282352388473745505112888230529108484843704927243862170158481391127469768273826865535676305905049587934160974287941851466200379003865724870648484095521829597205141218310839375179757037369398401105185925810477284126304400990276316083495167999856780945832460241355138661176530593155020601508163035639340019587711754241816409568594676359541072506174523467217399327576790408776465769608605494258896038951201592518849457757546185993918375410919658751748814879076953467202393729646092955654761897415254283274447679512886491477587638011870542190910231830464944311965385908990401783913816525884428602315507500611363652235790157248867857169252950331269594166097378639547932224492408775154314752861163385980388789184669596154716877407372356502961073233209819217719047437909325612195660147791219918779161227041290033497806800403983882280447799861691167575874361640891505239058666126074712594363215159013355796723762084072814057048318987005665660720601442318714654640759560671270849141534995256172327084663118578995062160304685704632422276945648811261273777691065891195863121517238643697745524155172553366489396462864330843216351703106875998036927633081499935513020490384455749417736291557342758945065800270488069268520239374294122481077135287294677458180560065808956569929728583842916951544915206522685350594789223184265561634974613280501599241191968511297430831698532172576144268481048742203136155079423461025723595058963918687612263630504262212199526954249629680811463842333445602995300221665960394908599218878350332262057827802764236519095022271210165751215403364469809814281221553570135945636700185512778522557652044288027274459504672833577692162727485003847440479838341889877855384203207818487150470453317731486766017021893126447705347694407860507921963922694199720759664448978299715300069060926351396764570238864071473879063907452999229943210278070174424514272093542518691172194662144742986123513366753016552391044953908806916047961378254255753540742045284990316767479895859800886173117197651147598245667269294078821996257990952763719420715367022980853655044017409052981382234669338794178383302021146906104779691902322847802330601303344116261249569840582369782363854620395002256415869243122505411059495064505775099090054057397311271031972448583077700295640086653727040511261328695989383108981786999498854435253921377983807925293139372301665351064565171867534903032154879318087440433219546287264795637888344951836454888554359559533478640400917877966162184120538339537076816631518960835529726315873168181436964039144649967676592750466066284992614280102585893915929229572579671713509911759653038290994328501037307519066517578176007246927702765013003866350247293689197769656313977844459859307904931815090515426008148417722412967212232352710215514852449538443634637520656071482097504052831564218991645195816758578093813275533349688216800257777748230292164374561970858507719982980187901238101970876069913765437524288113114930516335687232172294059326555085439767254263263611848972520670860411855975396378750901666208396910722074330569034242198049138064485998882764857515601424927350568438937309348146513199467792840024193696843431767629359987198773297937931309635483332433005864796618203082771199551835074428810065509172350089263795493046769170996207399873993310905785285665273212838360169966280987761746816117991911576211068264953438614351940475301320478694042351884121743042008784397127492661022656568267894942241838702078970723617465297448480310607427428379961923049119333241547716766436866797939529753539220109470384403086261272191165894750570603132445950726477823791790129274718366523588547969356093403019854403320650207448309802418112053884212149499776278157493155132148723452547745458002181524789828486908514478815001470966996470483848455209504814406157190201289973763363943867751200117942712390145323558889282045538609100964469207922234069928259194784334854668357540331707642222486304964485915000396254095402702605394415403134761222572487976187916632011921871199980763755580062282527598146545790896801749111100547476732387812599588975718526928653493443879367553048009389269150914798713567498376398411518034558953110435130404116947656705688975700893835092566706572703892460379937317117403398079796935652314846546392796158154316107577937931232596156785108127784520079317051184299195038809918843597917180613821959801127453299475657020221105262438729562544101539311343719078445616739203562880002370967932632167157546138989124527902716483553874218715385115078427218836809639781654292156719581267345715925906453336557494862921400192895352285350930145762093364176928041658057889143940358848102690986560379254571995128363621351684615526278297859680561727289683637473042496877966156648228913549617574509674978444000175200368697883854569898749787405950612737353636894666236033828627838787597028324386557709516658088638785157216115029384412909125117867346227528993489451195574043024451713010123596587360052506336275518142991564225137846426474320497659194822885678590668740574827260970984848984719686084100634882226426138452071316294296193404169955518686477726648088352122832324156209542871419535586209498104775676271465565832762313104951247462850463360773224958050653731748701672820830500488325802123213028614952215195087712888266408629475545098393416747770749494288872846273554498383165580077641287182473549347982215309218210427969633040367587165054574351366120710194024135752178792572413183416099331856260341566322064845354830862225008733112322595071669670061214146311200931949618702286985185692531638209311266275086847098504227489925760901979881132634564623118335062854278600644112755104410860126812748889165795221751780388054148153174080915162505820996493752202610517684013327567173922574410693770608804038696427090706700809545229319989504080221265751730630304046064320685074920527248701786983181352116179760079847665650276851273606766428372747116968656750001569127673614703848119250394871450623155026062743142778054946562851254229753411044260560363745346566230860058156551643313541736689841117141359070047197789458172512843163177982981180095058869861339902748491802695952038798330216057807276304839720657907469125739691621511095453723318411817870851149088278206307790795789247440982529886763236968350214619135057795577527867547518113753399856162484634867186371575939628593938232449218865856120051485802858321750340498566641062659924275948733839166898878121285257877973698511252948490644971133655998213566353070628513678968114264688916503980671108488028254732488377534709245910917510813460783672926198646224694978594960272917534548082094607040162409133789295871833552748793091994274956050930194874800343782907991881800377450069699062485558063806239716651631988580231762424724948850360349233336407639263008246236746485246657689176253211012851006120149365017907451605829599432718916893655007533687884743563046859335433595803534875100938500946572100869417954954965839641568763640086232417095581187518728294865179345159740741915941255838538229346046484548188977084705077997203166603224283838196506069313092209438161784157290621570427465107377808852552835059350804748871026864820589806356680475088651346067614540725324077174921780938807934092056822949476795798764586398797225859041982178008278499763655270038652429262894247671977289164978825709341817007599976567031756682734626312467177003650361395036357429330464443192582000714408985261801073594930076901646221930676783629127533421226295137052056181771786659907098509796478036535627433701493714974174543152535531454768306043044389800466341122387691504564923677036620834553506698253552080202158197405674244549178114283944607573316342517925720056084108660638706617314852047473815347810066609952240245688124106205367345133262874285242184923812130359588115442845647069980103833677947362154567939074456482413214018024659749457730648047240083598453057124227094280329378483459319063204843512819458710229518854447470852896338558309142791680507166275066507022220117804717791434189772814810023682577571828893820575055481203709219617073237732487985186092344741129103789016342563764454429042689335863091349990795662680728394028091118588098898328171240438239813696395397373139004009392130386096746494997218791541296172459595847039051284661521591509119481090860789822581972799709474814154459087741408503592399767352256996203438125216052668280181527960540499774255701613461690640854620624474560603564683633225764158769860773039859959816327897968764115624515369880290198679257741503295222778804511772433057337620173567606292236832066082394632654120009678008943864604827991337648484256689160441762529304061141885037712714823393978462338636104694787975451319212099535967065879357259909911388417999412722806277791126572986038558854979899550423570824707325815850554449032986079045444230441655862226692796220007426516456175092942280904683191037475410629360283236370325811183883795603969107389091222288077601050573518268607382580452353487852082369236933387821864998563718072603288026198198389516736573918176516041672406154064943708063635380935479471549252652176381099903802492538471117847708622746823388868102627552425054068617758723035587075011656773028516620840114459056013161122434115950892018312094450559878525931355288702511325068101493277864036766892795583643271515172169046826455566311749806134921099139200718832481206464241316224198805845991033932161152987786088967276129206998536886744010855114364868035045033203429926370489239953550120953311060549394117681426089963815313295646936997569995821795413516999620387903890380374890716584378309052102815492252507735952483160837496176802656414236797337467319950099547618793913054703193267002729981434290950946740680870788224134867989494903091564597922162082597703469853637842845270072472981307468329500442184340240323640270865663798956947020711870050488742185156114225876042697553461706123396964991009858218960282806106568856007652957175758265742049317918160613438980324597196530108920977067386556837900368874324247212164213395009561161109479355180029529234380417457485564669125028621870108417677673240772452328819249892201659907882925479702720395975031125307266609098378922444696384895474048733639326776360031102097860674383520344157849793473363631959649144881556682931249685150472168179198119293841748504779875949286882508106238512036166819838132142357843234246146928680661144511978559555529292177069671707650629580056479426629558618161613377144415577925911298662641503889146719818259045071582651438996150364434222057807429682065061311369957099130746479999329455198321238519898598745006353335637450738638963673018982268507308870515199625963338591119040716937137626946794627500077831574008495317038160543264182493239758408204463508780867616456521669811694300968553428423468744596308630952951501846128754578621213973881347663780418224012168777972823006770017562352155237849228152860701679136419309080906911769605871715091713857395504208914660553839268044214666866113473782847956128895509138033897263054035892001608679440323542128990473631152037339879611549302932597581657687313586801531976048947785722105596449457923513521192235865916494643124956560473550641067950859807567463525496648028531146178013339202903118827694134842546736105027441264223492662232636820014804397387748119671969017408019457328364572246834527988121560329255951307888859767768075376287856505008404049718275990505797028092179300157808074391837397092713716755823423306563013882999956601851013853431246987147820194471637702641332665946867206873593720311816860620492175074613304050293450222068215504521449587583585155424876607918488219722740823043149380258380522611995159274950537256090452449766530577043041392329386480736660960677728793928945325609771025979079777615421934387714830086390239317657893238959796550555294902078823331770751685862672831510668552127005139031346672062560386942780519854209661686590845927306648597748927845508761758637736963133020409410053138723754451720933709659706830540768300628832796019630087269964376425272762016759912968830305296845375530581411248936332474717008194750440035078570963535804913589359379681457647210416646375824028752614007688990631491642640598087256847323324415403027199748149427543888568350432104114125247330083633290990616516713061575472577928989228809650778163650468016480611160350289839670230743124930352064086236346299237239487059537023392360267372219336604204919434749132704499200183895489256981714317147504754369582420690279999454705173970157199308145463012079967140762722598605186923318539595612381970965995497205627819681406124201391035536131440566946426067136656540525181742240475603116816121450685256586546794773780220949838595161537788232526975779528314381109150385664670515766240911822638187934521676037520145248052583520015340400709885427507692086964194159747394338769587244147696594949894266592264799732026085796944109483316873280019241225714651300907220849210279626150807158646470584005391545599615087538790221670621977805452842875119347016169259708329353498327052239301865359538985641044570029669190206303173200013897537281531129067475873545391016831633173283568814440547489748210345551532318277369503923857972422586807403400852012106147717442963378963235706737207612201647736507839488535073182476840286082596477956223093353335728639560016724996037765826318338246417773431711195344579104415861038949077469379765329706988125809954441350539706358799802462931898072865402636418111389993486655551679850598293482585526438064373981365299415344230269937056591003557094918911044716464231229147425188871981267012211044762915864548902077579961798561776597612326518101038507905520454722646369905909428738685333561410438347445990573955593038057786870414113561704670623560647045708182199290799766380058500772979745652322266238408936090377674555554937437490702672301480360574753339184378443022672779400633844668660062846952582295195497901932838891182843738006699111558822125502310357895601847835207438755277278900771872808002290522542326860238881403971450766869997559199423258613051811956688592371950607134423653760274887593376926261972967491996496372526065765047224587810800501564890743204118310426764034845585275980459131917115286115844013674060348095328593003684325458759834379257028402956165871564106648839162319411054395297013441348379420759341423936062815554399991894630932828161902248925749703313260020521206889128501859151227687197679106005743687004075779479856865750863395684105642726698649059278374775149211582302149045826113353735033708362503705006063291406610957210519208426065519630270538649440918809513513571125730439929566940807174619951344014576249416491796999273896697359645594930396168945259282812643519712490888358518079839885139649024712469249635643204101854004507226424849221374757151066060349842638603544403379054945107618263219578069298489081441235214963234197567351165050573420394017378417599078447848399921242666532721974738120864276794277482275606190550296872296808249889317013812411596988281220085682187761119838177292716310330417030761078505514363926798186906932525847348332124825079749167364604241243334112550817613455609543518260318944833709777756085792781443086176271125630006435903596252224961838365931776947308284407267877307388261560282688197537249977204368081552283334654777183868803536390008677523848476390668589845561394419902553405695570630827738592479259012892760854008569880459379168004335716105227799291573542325479424313729892644323150854700413855288724682219505439190863979870053693669882903952171350012786864802074983298999233652831830572631395926434306368865572857855621942320190918340989989491772695854502911494027224732426455359114173611369342812882540355419481248913502183660573361199166831607731376825430526520814904199796831745951609696749460681540261670019665022985322748054292062555734933689471678489488648559328058767819854168477372458792161286531705470075752831641418230509435301585118610889186378312317687106031519259477719377736489745315569928288488004572630484167420203628517206333962886063683019827665137980777701198743895661085240153855835128508850443590706664837805804644252012374201602527115073202060835430489403300147634647160754880919779522862655109955654510051285871327193760271703823768512231121041510226124541459709187321143386628324095468063010136496043736205116293285985564151623231619327220459551249412713967478991616004580133262142871530576946813211271905295108571995694340311524816133616157582083498655009764854049375523715864007245252819331372357310282292762420300086482027814277246280862852587167306787212486021352297964389712264006018746012882523299097867478545841157569429801140415244260693077141845070898440123661048321543068501922008108848411143936910916154131258840568434304594702161557189842709810964375515934223674585831766200273889067393264169242358478460270598549403435789506619636889982246970393269397121902405714796254372052590303720970939119679134372378383862919890318713464649387295208077062344103020315702368664878539148188499974060386723341178550698752872810305442306476401746591365659695851408140645160133993140675323368387368641213103592010317349962454439732460568135283770670869427000627386323461646646040199935841990418370422095652662759948424667945399884586080338871091307388236478760060004404174692103856186212673624614585060492260090866783978817812164899869784482800536903386598181092775051910397209198683572200563117119918651816282985236143648807611322181753397166292394231126041517909005059848147820516265494423172626806693837647002066518527362312425985336094586799620411718578561396651184265724885699056402680996538566820210550408662250933157357832655828413881506328716314265225500637381388556948045146139305528755366614785103732604183922330141496075379848546308344117289219358918855174746425116100529464212336077190572109268290993743191097338547939917128353552281372235159755761507282814106828476625378165157682563476340340324999852407817852706268882397642274794977708559898823376210271244030382587687974600994557008313427727891831391726028221430554110744453930655894928776338340275603786205187028223611827752224347588784976856959301317218411721361495384034736939146335402601662643764000373975649969293051702997622150126908448912540932341335981461441295983355464474135732264487214494918247195612538257374012152182926389429572009005685840904692350370426677595572203264852653179110944253349887900681731262599404509404677883071507940594913896935809593804121149923023788374042961851997111580882271231190587880004332424562841779586134310396883538903009075014471514732658296235191347313707648081096851339367645130691674408390141144598252629927090910100605776459024034561175733471702326829086493694303114224752834878580067652241464049175319572268949839722202028764670896036293441123417176539359046357354675517838718443786264784852600464072157817168368255229784750323146422273578561810551869006645452207946137080824006287965756641498071680535717914480056298586056126018869564825920119794695199140259543981402100946151732010545908951059644734073975032081988890787288699154793942348965822326157277090014227831797134266304595430710364156822044208867482932455594069953362863247181806715973150389767198169445110410726377861534544022468524808750228566814080769086389516590348661802243052307856606229486440634373620586429018176077530211982222209343681686868680460755131808749696368004961012672588471816773331516630639206772879039646818088541141372081389241604678734886469391070499146800249998134616744684968540787172004969616749564413875466008784884292875773568699149689779079443718422020922392718398546748659768969829806207092357975829632408185427624019471426319043119459348134631945590696041065453628403631329427072011437919966069583587850982297230655913050848273907300380324617093896712121049294468607780982490133586038475074468474446059334550116671598195493017013478682710154516305101646741285266291221315457512147309105662215151249308397947247830736108092579383608495105958632584596787312496190781379210282798814426911631457287623799619792947452350152839635793207010617764584173938635294572354051206005172909836634012417078851355800203211237679872376171144956187859731553680574440551595899503881571054462145950663440806079998018113695832796267240382606178122740176004634759883954342280184532027330915548413855867481691934672709492738862083164270605357831518810855391766565503952951492843662877027196373330669422402574793636437369625963877522323794036476440305503919447367040347888642715888981062103793714866432424593842258498082976748872962151943788401867846270075274822933729545189531304535970784785816054356007404697096294046687454423394220277063336422120967516648129786177656632636438225581652526885837851253649799369167127054678496650510243672188915896495313837209767450355442383947721129576655770434714902882826666748430464619116888497779053256279033443061277034982520610183021580691660805461686112491357743773760910643833707379001102618977576786462715601081960903099514197278221170667424800880525048726236839156158945123602889508650324690474062826984594412872692359336653682538030763704076327371277346602426690159765236002290369404788018130160381772103799870558856141520191487312649990497279312464202866845144973619427069720527764302713646569317943281877056313515969636764554160177766789082315307266902989805472951360560223967107693576831098239165329616418335741261546751294939868007895364589654847888322935313654130613682106909721142740098914340791516489193882763886158833438097427851686617430932672906114012432161477230619211317414586645632878625316097410702600247345071582628018128965744521962879177162165966587961206907875473148749791441215416749630148781490383364656934976872640005983061176224670695194370871598536200598878573911556517128441101935777034188631453605705051506863664793726390071977980671309853986892162218270188041320741372520227548159795283902389352002134585606785818569597466902424382836683656682987895751122827142441247150392693242812493966857678568206781661179141446074676363392631775999595469115445564467100447141150731877222527640116261369033399608277156048148448474096769616686218385200647177524494898574343533810370570165499342482242499061416852996659007188696039074135838884289432241069953516691857910425042375362933139789692661514957285008834880606803785032491059246713499296659357285502153282013517431859225152182892870772111096140378561863307820694799768249661584006912837907685277344976244620507136449161494837691437375804089719679913695129155083470453124532890497806474915888135893370820247532620594354258319014485156179099080061999116672538119307616707701131402658262979395314754377242976038810947652061907931023164658787836384784709047186404361161353391857009547566613660572807437528818192023039371593223438610400312773226933883703765590978158612610200427740752517730194724013350302489804595908286713083095052895066222173220593498099287112913276241200468002699135180548288327220555872998104471613610616361639983407576386633395627515445020221288641507816130043533803648891468977306659603110141829102245254181248829758298742111477497539452350697999418341598916625126103337261321139115135429498233551244678663316331167427747701583960041756089484808458623749802762848795516935922755962743997309628337990494152366687410537990890760868698717265061490981660764807468332371768267719805333197572662860628278892820718193017464725033824299386791547667610033871696713391907728998275319936206508745012038093416433238300922567294949648064182630706946418705704443427989951871456944264857402386811025531116364201396896801308822848641960801720865421557806897731029996324022689526187852113271215722221654663035363285727073898295930105112802872909872264580622974107179588747461761228618197937488533366201330752192476758869235399507555413165727990452694047370992786269351991049300196305660683393915207867074266888222234836169494075393247384084417120168258719036662679449400748744154409135130799596326732013345311826342010162378381322469637869086208991761114448850667070656406677608112094057292256996251077339760857398993135011969719458854648922682799953060760778740765569977838407148603709498556462256542831852021422802412712433688803946835923168251820436633386657975912463704985682242294731887008091707777974468331140049605110934611012143960998938544661686860675531334398076625743343934474767616760954975450178396021467186334909001364216562919524279618476278850651767127429797105771361890294740486453895980509843990665236327588311771093146275203909958359959531446265425683376253279026643076991888890800723919370573456391817231861045024323383183955669507594842694552357773501459196694865710477371249535171654372879968693434588741087222541489503838175465573245133828697959206737358601012209944950146718764701640458610964736773677691796264476233382139343330006839208861282986311282678654511827153051012220014448529750112222079518304340755834184304388045756856995909233205349928429931523068358444131833515214582909965802073541269946071073935579121117452998658114158117716643462241086875468835189338454573251149496548464378618022496993398585609666962034344846369051205553480032036152182184487918986079375933530181717504667325089737938081260290630671231501369348001819605983167623198536235409532399255179948292061686107259190434591367333116279094402530275999692526717919627211179295483493204931453960364347276135145167664251625306051052844199201135361216760085474082459542550294415208534469103224866475196512576402717759486049841382053601477678187148241054256374009729701466821775572755459871988120995121948858089918507522916279195413289877882606106336636172969230243755914482131513961356762099339965532565271405392048769174897082246576918940162486716298957630047579216056475400121324815358814735031160990397076702206309415522447460281296889810308767400519626093707885855983901496924799522345272072188636329091001772144622536071067629507755686500007924381667776529738129142119540555243415447914789444943193487275157471685979243119567570096086036362378961934039195427544014802190281827119639934663587688118251790460402295627815600790220360235426459952958980594140550820603989607328614196682422858704060066752511447511087099737341545700522232790540600948568261622465067798185798608570400290570591163767621025135855719910513691214678182480637844618961294234417272691668787371299313850641602827930041590536782877832262585409972646039536685647476124383636717139169789937279868296392138652948121797544485702190717485420473965650976636305756560871715542141719497146483913043850045128599936044170348085787767463978999137288628055395398379148965304091685227034259095911029088114295354657891326256111857929473987885586469943212430674402022947328674949703127796473271605220469373450966441182313378723307731493530093758206401586159716119455566891315461551002997817936287714977253968092116227024538483767060653735747542231345073300486724892238628152213413709248055001565784584946968382988492541787238882735336844089498609515413539389018946179656091605330444393687376043471789345027760558727670493380871498925270107782166643187626270295179433587462344950017629086453557876195350223289919176403251335600029139165325868862244569423998134396166493968405729949563480674864843723621285428728650275094998119198285448310792112848264408166022950806683678707029333280842723551308802168703308019429923800876569133134830109626264118894413766885358574323750984484241809046392842767516420961136554203176474026594230025375602487810211331879451429145217966600013840180453482256591028552924032508727676904547359472846052128155830952511451946426386693158746843438843741062231586718148809479335910595697813257789888295103439223050671953122077410082872789250379109015026295077561238808944952177312727118884746324785367235867813397533045996791895306597954258229474385836940550109194731383202539234168817572583853593838552977858508024899484659088108639920291527947334023268397225156591082572334013937331222672619254064805860766987772874334018343094379745116769653987816551812517707714886097477110985641221366974161312616205169904730056311308488863609652325944966685824537850483430617035884877240956330004058115288521553467851397315080567200623485977145683022074512453679112892199280746445638372291641970204426845630529791942956601873032078587979847576657801448700387806886497467477127602033386658561130806438229849039282226752022881625270695056618192011803891827346829667628222614132260686586050340844706336006258488925893890729652288402393587754475462719166373435965087581368278627361597768529181190965404485350820822842360324572562157786038632764983915962470382579197236200023305940438614863384749433855949397812140712167844450882978441977944580354711887037934465078428337841776289416398504417752248914385222245095423725399091574725643758904953665895637916604058145440210455903927710064424102466720395109120829134587712617299717925738403847278309325481854825650325240627832171425342427563651170316721004260460513104218671474454359134815524304695045361666658299375555068388736677648620509004323862411064565816190466999715480063507446826183631169901986328050371273141640292966607073866627990781987958655429014941226426176726961376964166685771987601739401934535435908524874969296418168578928433029159041103725205037130086442805073573246489884427097732118698352110196835556525631958475740571300389012537132829744773175218172374357521835594489073609068224163913906594773231344262684707673114631372635257137195002384213710567744819707292007323444536878886211674238802176143686908112916322661245904302946737943423277660830515098873267069313641454483224940011307775003871951114123260140286184466608224637983531095737578720044509808819334257287332176239604271415018955148276169032755807999340778283430524149271555505100915462140999462636317067941842089101522542848687992993735665673969353211775275076549460341454115945484008170636155280112211844789641583744477646636559068374497101256830796365392845362919804947327050274016740502022423285266369029348064223104405868093554686798375869516683006856715481817658456121272160010703870455696745658417297274269735210689409128103445621097937516061279190246330943166530337216167338197958543977581029020177217231915643749995991139030880288393817541060438046570570315949271408129986952991964000111298667244311560666008035711016606701271343414965177832033037538222413395677655202884862000899096804670138632431297599955436673419957620263712424881926903163331712715985715887953443290293957473798915818222610046936580829596219794355063954734904404839154400388528374005317314124197542731676052777652996230713015219916173322957650553150528886620981740494805535882658224007106791770670075859304510602385415900479989874715983229546937751880051713961129973904722242810962569619109887985957519112871145621127119805550337864534670107036951443181686172487042417648830635477652125876707825053381019578879232513152521385954517722977144226117379503233627658514700457354661740576029082800274534955802981065947605431154930936175165509069289239039094684706759749211418527534742964939320023657191278387460176325880458681505789585011981022902410945344815280317573264040939832200310488712581789841967714428894237614460309110373929105119929233309299428987228811416244928103443670050622739904259247488746177443191525583607069108763697474899534725191477697375491426101747990202679210328665587261901263341986207170237164198256136357917379637251143244987714121358683716704076590735289438710714985669642389784485453654440336175682627628912757366034263661074370614292264301968401550789577780179236058394348398573730157067507267702935929737582364676938905592408362380086203250237168891205404825529793185811204981190378065299656912694578540701356877583209434746887538480811128284933010548015418195697795594024469991221638879652448648264852715763831755006976863849994404765015054881155643046167948517223808248761852849734003624350002526449029535838517159754840126829998586195087488504349653348412449644387760103251667037470189701545518651184857067621150001324076727323816831151408765337848374681564579270948348332304318917290259404903920584365111185920879039804333788444962599706342452011452819006893159944808147096415655301117977667994347913630274453069968775658598112100903899575799861082225506564942806098797158517452022635213433529685268155798481951101054779982623977998885747598825420871282443643215966648119990749278449556971064513595856102814300412469662399178006091295865160418006653646927553368468234027625941176648638821991711485171372201666703874463764621932524953552189951734345073296999243032991667694452893201538835643876280084404421269405179592716587353211701185296651215714164088383775866738433490095177223695527418098032648113038726924424997117026433783770297032244969092312486085513178701883547309017352703299402796975798722857389635732785222859949205861770525281607892474853964183912826480188331449695432110095867008928790294655047418121686601606207794666900562808614734559760705802410919176334780200040087916500411464046047578475499332797390138215736260473998260036720308131995473069412619726060546312718662642111432475956981093177242527897935847886053063087296754681841016204416763389959668671349967820188395756087247140399370539068096697988557071934383128756532079477772045643499505851744265010509808377182333753433109689522481731533428232120293959879484982318342832227360022339526247718085062542480128183792814130929419520448152516723916509149020638703697103668807170452858419183595179575277185748555005686018457554023740436083869791631473621898188882078019278760524621512220578077249038399113262308609477448200368583088617965918587825290850561528858128911052921793356937938344531379494117025652431406488603184812648311321614251917064524992395203860497008387191560762225334640267895643659024016709641817867118805019924935671744005687236518683416544276367583134783176909361338232401763141170437251667195694423226967281577029861204630177856691516066833573963147466917045862749292243583188644580530513670845920284582151299368492161968321986095158441205375911711021768969153764975668803488750195265535462853372078168156414505642726822150423830356950014761216209891417891807649390166826294829780199037767782983267951045681569590988666858180677706980703513014487235583756221851634516435807465912957072426361247668321397914807325595390769885043983057262083872039783339904703712350801575694473966997454955316893348178284979590311910456614158575754052942194234050112623412995298949458926563316964767406122846586115764711370139891458906262906500411283669207086383849986237883065402887970013679531585087772163976393929904318126551998539198675573600725171394303522784764274310939609325938847370371262304473161601254866275686494017868322466596815271308106375960877936607902243083308927659899685716250366663853142027949644958062690166329496570116587270692732948202579414120018633703467963015814911568351986264104359225730023605082379767448599977949339288222367509675829191378152356330743542369979085551950602127515001751060358930761090183448423293769079973661952249398176603572084066148990386504998218250906264177128612410479933088684653081919502868951515223796251217375552477704317421174099956319893115525488794814929405611987775985403248338244023228429226875066850494786786861908258854209461492749886093256549046700329247676307059962153266274902934023123393367304425116976680736791067710884945051864382620713448830785467252819540941245110300170041803353192141050423142091880547498276224786384379601854546247616823745046701225700697488629554330127601524038066517844187462160820362266675648047322110844070482339187209670118272229267018449730357661164768593453196510783651511338134333217592326020535608672235201010335224562992183824650744196201258371312209017838916214612536116159930617146855081371678293963617090959487936507209358918882189186428769709844580448629178440341426056011327635424415536964746200094687504952571960452166803858638522711718998945627727857004568747377934193949319718768984593083440366270189217585135607765561315803302555353925773003648148877076544097898755309011712713411544042061893930921678466782911457764889197217697217142122788075290236088091063596618507489640666697983619331292665906187624000139712661875941839205178567685595590970354658223949659603718537867456362582898791601485162353255744172005216126614496399874080696853004602829166533061607984652942060663720007218706902364028871339745714164193439449469303983056737255745580984202741111790059469264585161733592428768007822838817531574646175339457207550325245415854785081571932151244788215660765916598231319268091921547144541765488252005236421656716412895891957466808567569125212785245200291578278346745718184253108950183517465300517698908281564067686731466039493556391762953599185038483969764033253976923734602357364430814277321434910473201728918813873282703698430868018377409993010648161849853235835059367579497056457777317963779184053792049620028802072802967557394455180051003034292563821011027983485188511861311879404679736830546636575151362704317987965840004438509127855295506641466315414673630388288648919193301648298501847354414810238528093509777443604867904068277908219678265369428645115842685791510448496029883793967426751679038424433603661996779955558977424925082424690392547226860988314753121092500458360376820966609527105992353323672671518073860699545488969119554179969552588956330113515359694205793363878207862590502010130650577367935617308913090475457340609174534121965374835200114386931605323686678261619931625432498097324629122594802378873358741806610339432545015154274015042834232257340491262071754995062175943249940774394582514181481848359313341947957881659384778525577831768933430185492932910855216673925070909073962065618497661854814944420208141824859853565864230573516730712684518580173804077083859152348551992169486755719502643501413476206547887680684210230206813711555575839213211843805498484780035282557883035581401946830099508529918615505496513764099974858315066115143577703728791669671154038523412097595901063338807315261734133265456038098681848942394163539296792219814605742153570772300861894790271678743861312835766041070969119142497097666103039853945795179647593636190179177151083307170297388790652611936614539896725584055666638979802228258048567776047011170960607150383587436152997007635396485931217978746205687053214245416828564027891807590010549914001534635468059551057228800561325032495773066684376937530067043129391486614954151025259536173798391796718380815657059523400867773736215569644897843673803707491166230298638755211217596773233912873075148853163021864411424297858031537111361671072713725167743666743179908079397682399521571545600054189074082250248020916247003189446063185446338426129178330712218892680889901215376710376412117638195271677759120237136762804409733406721448943485110300825209463996848108632366136102251066440180888530267115942482286668149263338030257144671691477550499223352436226726302786387598690087372986694229688553322868898903019780876932531198523373963202272183256898115461392093200438130677062617632796216802541584046700231745397826568954681234342147387731693809854903804319388046163411308279141833678160731832378376992733689263227842159264713576075203274588739354820504901184544470391055102988411300344720620134933047029580583221899531872703329145756792051168002737461729225723528353240910176927681774056811641880371996133446523337437383953920813927944183008837887007746723472259464893640420704977601139785701406563351204407308023378775851825423564507381799817479421495799590749310811322138620984884134569672976148557735487747676432028047784517702842625346071301798853343851571895106265652500967503218818340536387890353382864435984597117043508698019355837908564287542180691983802163077179279225841654587268656309336426501397290654451935930771938504257458711899331903803054045389206734272927585645111721331927027549841736241280434741073101680174710093177326141323539025933458051386761844482014914657621531293605247849464799601189376772190316707812382617122597445772278032990593237383910005914578230282158102799368409741847231813017120871456007754427306484991895180832678133008970948736461018252324331982317351386328933046823939869490179488107778678265603084640992137694766612014014207327729951619308657858124789486298300423145541537575583647156388298811345689514577217601987774045572397891609702707005689307470741466865599443152907371137286368526930778626429196528772214859899266723138373608980761724139004819478562025744388639912779272763343114282648029088560903446139398328561675659247800928389979829786276327948076312808623618329217292284727786186589431369277334409332977211110257632226080965109102645065398067276558235394694195429633415306361429589560286888369472434920365099223877016579186075449194014318065970013050358455590290780973783595074872340954394170538523328584507530793283120271060772625834838899369669529627265946304117621140602612502620705540730063886878015571455724744797181461000764677145820250571541900115133422877228307147238290489121787979436421833609021428955311928455780100784736946600486166070725425047763858611320168969830064971637138236495380541976744302623837293589945643917793294101476072645698478841784682800508554671259758028051219916782149122441524722054406111801697694002807878600838782367463328804046921124372687548808230966980160741081550155191504446146906614834970609262520541841651362846659900330538734264479810801084123066859373660458720866902094812662959995264374755852638325025345289600812444743177095141761474624824105179750466319386316942374164671002687262673587956169118430933843137582569881564493117722377146389815222244388232681212215863954335093638575790516388748736910711305541423255408830998184587983799165734101200111240267400898394249242182636424476898897579411219408159128026584917989529382680927315713268642839162095693823782049871068736909503160763156381304640372084122377740216318005575625801258520459486070763323087181825796893043523048794134497543239552692012827283181928386817898200488710177950630055572785437880988064632400897391624045291244565453658003288354521152753476567373991100571306503509252190566464562063910921504214877319623588376349605902679891438023380924607457912123459866418117207298257899108299431508726138409024260708267849012494935805157674749191618200924357485183492134719592245031423707724944448676213428543490489316930497976635307803107704239600179946679002271991941768449912478797657955396399987185295067299531327373533453310815103532724377301575581212869738785427139332909001600034469979341541050019550501948764244606327669335819272402677521764288839051317577913075644698847039640463505801200874761928029259024662087828903950662817331694473942909920779201510964963291510191702462287875332964303816075426490534153910681206741258226911195198750257343498068180673121980248169799741606808535763211900815992533870910173095611249033552714229251573020153343066595728691499280387684555365891412416536907792586218444451074029937707758936201079658689172121733605017206830072839521423577424263964599118894546024242770288665357302919090264867110636998743063177570808818730292020005265367858208757376326942308423019561080436816009176216053552072585283244091669431655353186930944018050348167930275462334669688187769795828412877612292023474094816611924593391718903909812079956177385345614048749165416347659158837491231509747770651365449747343596083989128735369852718226576979687688860044923060073331793961207972247423703586766304218341644623007976114809258131153033991464211743832398410037006171339108338742437546234249316876913846026416244007332878080600510872656458298259911311808636248361936684245098391861167238086662433106512411842245705200738855937953134832178865911836132893047009567344342172855576879264171797704191799763060942883988145443392499423554620171824918464541018950557515502501572290772795663609880657697296455213786024209445595851534058777613527597174506817177620130096470160206908555058222011234272673975238254384831520921505691709449905042223065541966285462378397559950547020757265748318058499504381464826965574040219727254108110049504652197133689723952933780228444601629025506140440408674824572564250345375352935662818447982119992350088341585984731296045958879297838860556351694635544202608523735781471451577388894036771375117160780989216495802487331223224717959872809400256082920904039233641737270484091047295137369808884509674278715028909101486998695550775181865599501768514044684115517800365559631486043741475681097629418564599142224507248370590940212981884438573204644514852746914896480594747813306237013255519277275396509695794033125088252787375896501128222795001352941980290575804406593098372045983951711990466057599067338515694319628431201055793309791937919631814894612519045351019833363473994076706279212732139493741212718064606918649395135590336347611771720379877992455458088571314593293475132088372885935043849006820959116002921136720037777306794543058896610741888716026295400269176434471421871181440684769484476154078244188500330476650651943870930207495487876082669444912892586281523202171309539235709239422538427560848543773701899511339092547423966494224866525980226658879862006243062877541113445208696530860740417352501817040618035644676718459985182168278986384317119246934377980107141288181171514778635395134088632577629019485695448658830566497258401068131545704711906646143928788856418969639667324442590251857185296218014471294547493401317506772579374178474998778373269195592650207493194217949190314146344319333986779490249711825924206726926381699765953288856740948277414012023513570103770186206279681374423355217877881082073275007906369737055019975062935122764103109380504786041761255237028163373154960578531456703389898208892974282316306986177987166974310128383862792047045863970016358001329965910927907685081752076452635047332387369506974191030383082827604734033262917177625423974700021751658393257454450200228524168366999718667380115255299596546985173703001892431656294118873584934010983955233385782790361642959052135349495144657809432717726320624959732742802802636804210597927551385284614767001141729815745985435085100318561088782761528220693023953034263717048627018260331277770940025643519519732258356796166870022579605123210622475831127070897022925763791905637195685053558965489022867842248470690715162346280452913565456594188334717637642602897689955868369677880302246827293512468129000450235263929479504689192392027512240882072150784196589544311287382683721548934322185262822735554176529838978035047731923682386691778911457142221770644104059127767697316066229748079932726687972790693146972268143606044480875621452038349516253498856458401111362587697499716220531003243645036247886792438203547126870823754553778316631426015189696440695394388951250249829716483133079290426318834635088213361760998512079886412019142321362183421979730410168620649974668749239219103247245163321713986045179955681398028391785328476514671641018972057136204821221290033479477724684444338265568025326643550412738532409363453903590628286113634989944217517002603350754346428838301124888708011136411314018110198970088045123042027334118792818003012706928364689728098605795096554250198783584876261043743007383085596189304773843984700997194136763359562464138158333214422505715682014346896128127739625701555747481818148497664244072676283070612239332879546692979199263812607557683142431272164449293616363285525886723747092424803952218304563756417744732880416003925383373312982911996070765222556062039063523448443229686910898820874870969500778537784637094219981849687805362188099757040390009879693837663992281317066787823911410013104986608636888883981066282622732931207375900181468061262001143483527526048914660249781531098062715029119055944410212878530660063636418795479201770349115599197998039609745475584406675251191639529077450659127031586904410949260258571202289390983720759899580348317349262215440330596389102078878618839726342505674981285768962399982444589403952983973492646555107176617247072188153688932020268186691587406358137175119328074901646499526876576906010263384428727782229266926192280220023025945762907318541716667670116491744088616157222491903173274274348954780850399830075823080267223949674990168196349899641057577765246688914417723387282644431884361779044292368589001000523427553914192435649676550364725359188705555463510080005212148117937889387210438142290323521728106564398714978357070072973884851889058710462028777083550035100514566434293711391469051020901695752063476090015942390908815468760273349113498418267274583438275755366837387258750803795646518390146652279844795095828814504759237533685632657697183742039744053709639033267378470063186841129917969825167252728498113401458387711018316996260371401417505668270602513512367693894871515074639815685680088791802482757953193956122634958730048600292294676426951605912636342420351146999641706949690622298829130354345634046121388632419272715461688895795473846413753293750592509451725340383078836506872382174073536106267454589105515515643958656434451127629472186537207084250228885868894450195555827153717681871573174074048627807682911213630574583977419040563938281869757064460132507225564817735093797259804886207151698088832645846750902170602838179476545971724362623390699254329580824637694930461866860733915013340981949486228324213353797470517273413973551159616620028431810593135081010503664754098420183906392530060191831203219868607564007835767808366535213906338257026071510690675070524070106657948350640923886264732742643132975201164078482863447238587692674653234263734446043399531103666002866094305849397483435326916966476452295188052717789215841739036211630618301991339561538189524015431954988317970885593699048484336312207455162526760506229638740138113558296906645526457473913623311942006473210920802707425611904272367499356509993266400880228179237652295905337691160432738822477320241152629559709206824886794707640607606788002911672346424678593166110096575686582447074588767246675213671297680341063604773235594786866777971645066641660099863706294386574496896584873821517849225948754505949434852454898273356283508938783772630620514692438092935055221445138263187897324585164328154683745593302325932975183398199942851000652483574532844115238179775775329435586220317393774564091649902065152339268925115850505954487051662526609405365352804655820789654640133158736731153862461384410411094458023510420098002754432323676533697577621112275386730127449826848233103757603904160925341776311974588183559794143987623846736346428326674343659047142437358488922537411630833420351271031924739380090064138862095846698831410842413743911872051473658026357448159413366068666977912280908191235275991761277450070208870669707592798101086064484113917655425469217797486584386536193319784301729806690926147853128888077652301766775974870079580732056889627137972371069591469457382750769137870032664796971349610904716778822189986567031180370864580494653371988447613214076881605014594131242245796138932940846367728070301771623638191792566433185068588027758106589108174965333155522112341190324853785711521480013965779867338671858388097462462537444962424654901526841024213873813107503040281512907848017346116634993182174284614173772146925054833142561966098672925674956392965614755149572986565265540997153230510291642194162350981306698534254750749654050619972458922729921476474162241403246306452167210068233967153955703724146509858946224274508138898658738151568217020564129601405700715422639794607918822088093574851117679079421600774101602868683138148676629329239590696342968729609871874666662790236529335663445159052804766608400451866698856233611336006282123151447193241156488203625590508334199066005531658824596086269524352786820019134233876788418980171192925597355326388068679484004903341435145897618449862126955992126789989772852456970206751413038265583509846713874516308424270986305873657087967814611900573128944756353763753263339235264680365410312107352295502142563428741823443838815321206505003262163602956260807162297076379888452275524851373311448418428597229508115572868639876652869299947786014771250786168408239687927533143556194873361727886140077184742778992083691144367640113636505749944409071041564466654882634559358971078793977400123718414932493795385126747143937380184364755152979969823649137040022409355239971815782082248303378741695691198871036073764147649076262423111623038444345174143301331375502848486374140594261607747555598019653536317894470940495361452441174607016953214319777560214090645336353525258742079131373284092077252270041986128643930636593263998882000788149830029533647310993997000666355707892131346644451346397580146080224591028130265511860100915624205135844835953034144387040147494958553468125636700822281843707788381475933957056791833157042085753809176376910270723859201825737718306090891197271870861520588729981277934467255262753764401411517129830172447197402653363864977017289130357260966066173564094131235894870171185791235975237253400051763755095662278369131615967289663817125344312093490359599224837329852124640385232707853724067049744498675770755291912280366562312319578221382264385596688696817964878684991913977358362352454460159932057265121850399876583973945277691117452018426612605104824192186843800445103697450102400966773277358390719717320388368166858927675154782932154443157233428355705956420234756814928663572611622411738197031706208912936951775326243659713979007345591964721111623433721712419625391217644381742627806058603509322804342927702478469021127208975298698076475285977717268833344372597121533744363341740407444319968868747227477042154543231780809481541069616995519625199552819024290612707458480074651767734360693287950276721747763399203488263227311016200754786744220165635590211531241049019841207956475890625654383749011467624546130231611212305504950531171389739397237196765803582770084142508628418083656309188649461504807375870192661892545027007657376682218200446539569985238197742855934325374783559385085648751223650655118242417190184182401002706015466607827354350633774839972112848382040877830568519919565817127908926603890554196656951550344831549832928898793893733823685503077984739779947262700206581260714899323919363204182701367613747274537040290770288676054753614128071499716682615614127196813525886766372587965754661873701625498818206978772887337387345134916782449183046186150935931692435267336575759065306215570967682602296205934614748778219354948285842403986865079810900544884813901309224962242505335168486479489013741197094917035976297532564221613172089865610092605475980657598632070726052825996357258929597337730648553426286863503943727836976110924102451758831351799838897590236206550401123344179032748181581152813151592129124587913975879300148979366499096639999082820514309679214586965580431061748729069645925433307479707027178897123416826801094665331159680083749726317544771680891074664202873453327593041601228544690033576842980923412339468168030729372734750816676102784568451099181166406622046023761347377316200833883178409743204526603147203335926072370975365444401299951921531176824196604758613519566013024735489827456773211758838032717033485937602321654827365089737587758088186188092749416499370689007811781888576790545781297068864107204659961611051459164489303698996480379313556528462893173944753326869035522282819496878230646381708268535170303816170500096488821636390870432619321970607449452941092620260701586541127040280450297877824581044894555227609577249300898510530826064484463282246182093938105968766431101711427477970956280069367288949301738942401883666686602923803219004014772539103523464051719483136173740326420438679801692452602750479616476777526899963494970129021338043658576207233627915653078545784450929912380988234359145070849104068908718944554882456999857957636932412625282151116529151732850672726688052071989825828449533493014197019746611235852425943782597207246286410149026541499523097133443072349078207907386017346278430840516525097683417183086985781466195508055822737940862916050861935375452990843256966361322521125371866992002718734249124962330324252090379393986061128724114990501263979874418017282025177612688455929148719332751841916448688982663491991605060963645679792624967467528629925144882671285152580524260206074170591099465099926005026901081845224023194511860971734051036403482959569760229579287662643856839286357015742164884003975014041634440067863366417777050040177095002306551686036339319400482544800554481687527470037380373553283806997189590481320026999920427483484678482871134242623484703908484676690112811993774227735518166321205899844280948599798831196830082079275845625440010342794980211735976611007240996082499832268903280443977681255257880218872632204469210408966066999281612251227965983745226347883004202073974085322742110362165358133882038561621056680145635396925136786869608254877698178007065204999389396349330945365334895183754062088573534450408834600252771095022857209410154985098352259954604386647198665191631913435701621198896577136645722412405305513493242792463108675747479326363773618605484487749543806471656451528345028851591587828369194198627407391267583830068813888477511811822543523426852190581827555761258793392433641922713282358015011003270829452820428499668800124691282684918472083817151931453801770209229494845398187499013272384767443983663844631533091460731218959133198033117851423141495839105730612297470846039527386632296739935866833969489531098963702499606621118371381851727326660376614037190242860718590118492119246227664824629192727940854198471034832633103745340561471265917066743806027607553431537063186874858378130752037118303773337495726845122021361944509545867920867574069848434804325050909987126376464025305699460700974151938862918817141131988616264616405911533645158247229271810351410985306408088113269264200076035284880940359697122738430501987177756710755297501185753630476221275306412409530552384081493403104983079513078714824156290972262257995114606766006484830771692472330775380510685558109754571853032124015388501341243337054793248730146927059212311462739359793861216930338675701968728943237429421404702802601672394881169037913797170668559830958178950924985332771420548102404300139354924236995973174586098068901002443426527571837424520651972567930303356193989965822091047582154923454210688262108728730396029644263323107243785643245829849607620270285760134307332190988730153364367110620948343860211623747573847535274873493015552738237411935999805843133331321334537349592678240376607858819486109004988931760037452950264563317823885166738484656582471940185502993782769023061547114155088046035362967834591139748232734253883544211414420862943181065092752950252197527256913150039384647748938656728714647462968417724280008705304635796514987538853613698218711127591530422877364890964178356582131782125975994324224644045715838665297279835568417107023210809503242451043643074854383951234479570167710504888163192453263025877306503751428446305250936622161633481811809339064932245934005108984362548066350992347108869425258719816952431143675477999403480480444904065185676588646871893510560111893115070889506855013789930141611325169536668382410674693743965376323977836473819083051446446124112977232747435323365164482332886219882389588785714266052834505746110805645100706363922382852233480955641343095017450458315169605121864976424242732094786632638320457898248702423346966255791654282799794441367472521131766607128047328488512613571178970640240170265487089442345016853184057089866250713284643843229943328595202232499385433053382373416557314271028789483160939905828907992404216841625559511045846174000639484197740918753623919169026581582298400296134016049568417610316504986086371845969903768460948960319204879741404914547109555358750286993311616871245737371947978156852698285494458769262637494219825900607288467912445416249367898935435290296065302737273445960266277871525589579854615867118117437318573139583105914674065590631574093396000019041277782075665847946378553561608590436173351418181366163739555403093003606753591986685898201776766279641063755680644025579285519294109593577461109982426140497326610525758632513899488936852906825404279763086265836281241679077843173777017100098757837387376502012962467128940025775614531768188603716402157902882964715682499267057785310481991410465852516482039607299548177134112639661581005844537917565962475917678862369202233960458002160847868733196062292527377140660408871356660647065898154619648288334946673715849145529311154231268565778555822987198301754153404714182782992303750320745863213724667442152402729457013928684215298060410854566199189857119770166294027627870966635729910002030250109180891477001212617357646903094827838336627133723605033025683438810355461512485888660816367422901033735693640448630957422258025779066299422158220965953328123946609732099380552490435468355685020035175144040624358837996638582840408971531732680673659798038395327605222113304934734523063322777563661789083552693383194473367425510244084445579870561787831659105548714688535519424574168813714159363951367997011758372536036018332876572288159194307519016759527113532734559070313880691388222429838191595428186257111127173227206666184972379005822596851265110994066041686099738421453409684509504042358631365722410312847418048247395668995565911032349329465059466399177742370565805757627188971150913224415551509790542931213601262930194092143612331776821313194102771581686430091414854690385954716017952746955800399799433703750741241547830499641262549271933956532209912706807582436403080933300970231309051774976879398244839945793149108439687089153425798277081975024161304101281197987296641074570769817401876537540818290115902212130903313704257627784399119430761716979819026940216339543455878361196616826989783785404636367362234876421949403839105765166582255307849184659680800601232676015419619042715219439268027082752343236462770569835463915209857915937948792090801535477679763888094655486100062794274286135666947110110015269181824323902665852300930931529741141475297492669517376886015194538443529680794130939967146811115704418621145792953281399531676977868504559653962953187834313081026393778433372462373448236627207243288116092514755929356081209657511366402133416093412715788502437598328004793380992981708670897137574474097661514333552580610307956726397507432490903915230926517450991229913335522928818184203419631876172736686799185496723962876987293661140027089131977546595164770061064277543686289674620805360041466913061529606457588671170510421730741287124018268500380019903247339987282915659969894019319530217283762838444258720894125897376496037911354615079754856382657373317024224693969177740034121581846047211178271194972240850607672928424566572793755264141621639361447887800968645404071010082284755051426674042589755072562696573054200919659724771699731045637874209205934486979317639667342201906119386345969429471928757241108120977119318685572388801314848208049935429361930102038371139334173613790319508705869675763419226777369930120882359710812057905235548862987383984682856679160962686261482572326013731659832069603324833471866011333868728319925797200860237672654538427515056634949816733464652960951535137659771963028547180197117176008002053862022521535880538315794401550604613443004251860911395800563698584605417291600920419123696640702772172617797948331799722564121103010565159274306257791636193587767222714022176682461626415741319875460492559829212774559337992842986061190902791817705047671851993329345468088671970132554032685455955484076248314302807317991419690634309730415304525025724212678142825455721643477485974633047605756730159769186461049715501599060177469320750222108877826534903493489169719721220033348191052728934625840691871489924518513511593515825729221716000426662460105722000837732944114278343344941773546490183238573477462291498306033414924297445711398631974613128759623447001913280820453474069821945174046432065005058696630598909558300567402576240745052220572388655697824539143539821250677381259671818135384461657823868163883110032983363608394117607758763119852408526509577199814235097889395539259573637211379338902596600231295724414738308310400783839853201019276981161206217025054113949991401378959512470744126753875346754601784512934115801231351508435422834017860568380315638919052301955160419976783398556539444772161507420228889459792626989439348625811387716401675086427058335714826394583395828057059258608765574681348497954306170787193672706254684373415117311254150889205163361322464609231124130342357907160530102464472384289991015750891046215955594957593769680908606635521784228794083488814055169137599609019897168438052481660783962715551910899851977772237398678174810832032233045780309550148222248376756273498497240176106903150682655469870877579119502699720652372263716317513264391625088195829976687080178744651277278383313137095281582284273641134620629781728976088262583295858323443098227348250262365943767388724874572128233396151850269449479813178542367187975026935278470708464347050734315416359389026694486989005369687387824157232822458783877319188168197128880063514157899752357579056617183084479089119322940361982800267915588796709550130772534385726360938122818446708426634291468234493261444583501489722230667721685890428433315178499754447941632765287164357329703972212294636208694592822499111346041162659206028462473128337081544724053571568816458133635811062045203472035756410859462253028680224525440708659742205617580276648189603371304156383246578866023935376074449957105560544344477167077552032907151199451310648779191574122242666003006225578458782199966758303273835295099072828809479939556641812115743739594033382505743091098283351790521818662522943239495349538215968184107220953990494212267191857997815205905735649413113599025896138375601620466128089052419915765181182625728214682289345474433021877878346863546055954141175248484277238813725517787078009930781472050012374042591336846198936344130312894417910874243252676948801768668388099801487346996158397592037728193759996156103140738260234133199462049910576500394223118053534512220502720818383890547886842379026429454503167418321453278599116739604174842033649666551952579775203678219924805423729049561691168205565461520409125716601533370876906721294886170643569475438253946852452489265037460869797457570585850704633415689448393224284754736616559302494341328540595422230980979152939219763287443385633990516079964461884661893425128021523489009475200802825331753388945160726685752168199748796832597500200454769828856489607234560375310033430645974445347679281956260389001044814810260907683306325054248788257741689269679131655369031142003782131647484947420824737456503454708990852029848409092919296301668433390364649244329436190302646115882109421617118383957200626054167640166647574676718939819474710161228190918867355957989698578600925188190600648382036696632458806768095756675916754808944919522533819416059259493074175985384262130236741213302399012212539515369941366343387211729317852481534585898396808164039416847243565826379013659823380025074405593038941057610760223158436490495749313610916768881745851944665358184330925932598881536104437957173539423274815184268660281083686522148450544192648865129804032538952840567782833312696076619469207009270853877565557645091259279514265936838801547335351084691441143712611882508344972497409779678202039102501064380563257519840217881463974286450434653363207104555219591231384719033029055910669616758445984177764937193743606890119131694794867382302727356407676836327755680020721581396836908765207444646919220162896649818598087819216778824522678796647288385103371199207181860317202285863871997726774468591708271251095237843790411500576609940600749927090912434760465532852474979377748282207818821482241028706558575629838330404536589011448504802486724064161762028630781951166057284390057553085013598858908606990681859294599502756285578850980956664399105090163134066224164135859006693120074972080230336069736865784506975850231996464480975086237407886751453985312266485583814881195000454398262114783387686819622826119380135333960985592296980325017547534666360165387455227286923748239332136218506151949500825418947751076434684350945198466739187563506152279551703324915760892057471809895555326240341464796938001952413327468582255394223020304101508914463884465915431938610514990643258301330380688021888696186106886417993517663642978797253676829876574012888719437967687519023854414654043586397735275500638062692260306412641992420891860473805631539912342178326175109335317825679606804727106724161493734089078652555328074995841370694725585528809526058920430177017241860754970757843712522000859143351762791938989668256078231431241009974886339861387236759739451957485246126019104933230172224756730293961636173544157102992539425328975586516838346587969045972347064102722727808747499039785727327331634325108584102405677731294363249620845376744145091160106605660609000250053757582446654761493091479736368453784643355428023721560090466114706241213153213956300139537133548554703378148987449305213995083960755197113991574551168050563227864414842350383491836779985395474942589026439689132888348835760236268792577776564423759002537186487006780179969244423833413024040194990467581818103682508096281565248716577459707937272177660252451545796696991831992677552350178425051040052729022646923321083983790011312417128311684850705305021059314597947980567024770894691226490579097538670174151162709483752778670456233739942284413425180722009244229670261906952266230659329996639953231172196830314239482493611570184015047342229623884475777584715114637459437973336246368144180780113881464768971156089067942489391283182659821957248071041074805936562507098967141284644435659966504971912942455444563249306505389923780795648224534760312914919390698985143021423224950490655776364247399059836175344029306418501145574841989377206392207203108212819844877230162835929033050402857087546422314028594269827122763363120133712190387620248516959292866327227458276596149445397339036975069565337908633800212938307715319709911348640558671985548233586139135254911691302146716137337031848148897793277963320349390639127275896763873368720942366246904618612682028530609050758392184450564984332016740375606108647086436091609628014463470427154021371273067243920429099473925763599016967872008112677251202881695967079336223208273033302316673860793327465419652870486245390130248387011615755524243282221827985218617687397323836975981388293275112475381977718434046867386324925768030904212086076021984225141148621168688013744117741026025525707952103941959671456939383169087843688865371915278859902305958144118729389947799593137653562418375984110409595095838004437011029045252049407823925369846746004366042866484864890329453993467103689638121776559086836056171574884474062006057998604865000837351615313474827000273514108923315228507135650025969552733715009340236225514994098410222817831348635171585126363643299289566863494977198156069538582771383208441849048320732662109930521563981111291070813126021457349196695465361834637444224446658030149652726494842723497195927658273783992157997020486424739916650648906380273583226706147408758620154242141720606582866876633157569434154440163247905321060478634552550972397097318112623517259585332059552759176556843869731657733901358205845478853529415170168060264538285635355827937500845844492117496772945497486744033217977708307905850402254129030696258967120050924977658968835510092382243512016322695272048832072540428408166292692820420348388415244307225887588469189227420407192575589619212257350161990273269412227491093160457785172312573129616403180789966638732155083953686633037736998955705935354744999105360560876142578712777512085982929436185514811724653263549688807453049709218664606651011808503497185018747812552503159717796742805491426231651133638731782791645655273230480580706643836944519938731105749100756427112779783093410166735354231374750870895024204620286766994627279475137540672685307244802669206318911965874684118700280399060764073051979658475133227957797764536257002580044697843558501909238859216200992083798110216968968003466575166192054509809576059536357318425485529982289714394510696351127612992682515556961204833805994341923370227605728535338794905525201984481692656010890527731997446284165031525000715548779239142889823970730908604604299275804084532005004780989986444837639965356082188202448872184986407367946125413859957065312148475571936730102137338943782818177824228728051191831261213070478783954329496054278192101919477488824291173348826242804804744554138028243109537844275464495047098180620500861813435298516609906454255627189335934691355038328136566421172657890351220115383367223096116278907643574380349490168042625228563584913301120596842116215396704791760434128635828836265154021591215574071545059406109967430481539689356852077707131959722853213326391526464666416204710734658241687739473060103691774717773640622854912999302524513424994019231716119953886282678406130256639945207941549251284155555850112971296123206771885948931116531220328632870190414811482432684400283167597779429313183993097923259563968057145891689672470366835547574554740160710384291650769023899024347151221060129449148389069599325868441003961089734015755189173917141191536843839893770797663309059374203179457490161782171046654040068771876736041258685633369896768537148978799394604443562987816369969983611032130116459777600182934621482331874517595096969879134273237451842022776674774038056502243107448487137782607530994577517619731854527230200698621059991998347759198638983647733812101764203658068977115007376822478501400550253429060792046824023387328172410632402934950894967104290968615783511322142297381770972002114291096084217249652226065698163148302011262864844681829196640203525355799166860634105550656159124610034429449757990480366359842647689646371670645144180103921833300650010152270506318290725925011138890157191458171385571316334377030502257358806614741249979118739822311778195527928703322627098704142740052351026490592386718381080557483936824884178290387243511338946750949207108072129500692055282884071190238476208816168847140217995488348820516587400801740345716010382726643751968997353501288606533483759791305525426698610192280423133335383914674319219024736864791706858745450074885663264719998974521165331648656305121156202835240509716529680009487134769813104631110628032578125381784373640312176981123731226881968312489643527749457352849893269950392102287059582641323921865297581127311942722986153071964366152093003261261389157791836902198777651184998329481459757463661898821060515069382337694943626682833728936036683828260887720176788124542175761568370061748603772525881432140498106950832965066568340869859387661709731274133292256706549936158384559624988732643490348180002250496612237140838271681127834299438910663294762232248215634397483998725532701795540628822449999744391758223751922042521289140711061712708712728601922721905943690998837501907004677498620098205939620414729589732685070593246027508573973361741206051273709448397594451012512077502236381128604325946614882957691155311960602039203177117730325570470647189821381825918069171977707173370999231790861603648746758708910594934173938935664857219356576093284110306548646205668986802770655067379987546013165660689689019319953284529203738236631264667960563653558150958992222005693535284939574376700990105591785382903853217188001437912617367691026732256298168457055990363790451099141792942731200330566535718604955468455030156895926902773233106858657245567279596063757222814897819244454264773880749818790885013668704102101868153412509643437367048983556168795451824961579214043970771571051170432758558856088234354699661632489016674273487647115887150983889182285952566177724043420720470008758434287053541904063841167341368184090189656224486162866024027517365614268853325400701310412166313693023291275554607008474677113625383877002921315508646011043160016546619734041468048885350807570704421742074685541488024376635805055361774475718349250830311940730336505803818607645395042296553447398941845705437332978421547873542508500689828694550570418231077181296767021388709119390713878736508516218232940882258055902174687713739189889213876571640043171433194264962761834559030330277784026381467557856555856860545397406195885503700665059329306048474643438553245527658847048438951558309484646960711689840471977445138318837531220982998317530093267025664465316553905858757594700451896632272111008926612180387050736864701071483805070244936652041642598927107864905755996719840243168974386595045607119620572005045144769489012385704477412395067250913406803875350262151220034091712488789121091065524146689412783977769336173541406487527933142697002497511227278395970714847775051093776351610419749301063493911315162869321572705112075203524590617091684713394123379776194879027529578909530903601106278134852927579884469980027020899360678807099736316068754193490307722043809987759086691295261787271878485499410176683208053445859069785807731908068524956162671325808750067587518465389348731138884384931158549853881706995621096996168981591663576213314268977264365480138199932173435473962463061767703339381446326355594307448685094896946213708549335435491560766765979519854921782376146786921198352261989977343780005572244405182484036082011071356489752258020438883681647292699074449320471907280923430693739579527037719982343929895107034307578586217773968080873585899451947744294000178855226153169333703294199062239679062512437903526975565454968661040293270811900633181084810349641361932042331325852259633240987968237823226037633261604506311969373186817608628151558869412144047940397600498800747894881024962882005660032161503914376963895398022167519916076501855535739193204000947714582975398301289362021511317825131692715455675958945857723769306209157872970731404513962695192218402112911689940918524924709540492834205696783790870705290495120941234040092299309013997384570463879358148147908580629980810568791184600569135023957109224711968128820290999859523762005092624973463009569184952736976226291760361946720593052349407744896444142247669985890191036736322637200618407950487170785710235127513878001512408561378205019993003354699123159350325128881553730159474596298185464705076798835264979673851068020125131446386748453909625884051613770464445384086937477669005954682855099205116764660100073272894020527078047992749696205928589271993592208830787835506320261504420687731032694367825229700769676891917444877731762393851963342864854617858014856907697957605273679835222441538029047383733876554062167747117663703992472728560774671720068739884285899971766589185368468769657652057955381828460005678227159474653686868509800121437258009552574261996107856230413202602774292394654805106341928210535556503467029872535324959957488399647271604139252597644244370817842512035954835045717884274207533241543237254036099894915811328747068983187856206562679833247511418535531044108213945672846296860331095791532013932888015865729906611123312877523895759662613387723833841500456025520019869968119438882106273437533215651829657550883756140199044996994907972301298225793441484302745285563549654818158677757938961687750955734980821006053903226796281558532947674581961859350857998780869326313438016871575172060272617579872821371280879083955558614695441280384409228935584737896931245642177730839555815745529401846509792956783246231050980023493040262079585363670834645169555955250045819405887068840962307912567811806635973000535760018033812279860693579732207104885886108949861789379346521492489800418809198099332189770276188970326608213202496400194259708110300636933064365315027662039553267392698352859779330827936652380926562104157352737089505520418845585690500122144504525831909222981475343814642549926844528720377539194688037530201687867033639711868486171669116989008900013324214281424170086751508395362993375575815960473024562676848725111423824928896674705851371631974669858431717533764894159092467519340385466349279829570759509124293600741115419780171960551660066680816034011341572838400077693038487882748610765006012251492517531668875294380989696679312824703257871340658174703353588085347261818634331924738097894553669356622058071933160151738171581404598231547752152658653438827606392182399668288927250013421870395019009153582119193933262099498324348060911841365697846998199410624392978572796373525663333742634395386367903625623343331023874942697775068074167927034371095954832149883628871910065330430817380114617637466609079735422166704656823176702063383369189217178398330372412894275223079396276595750830654143719551727546212796543466740311986935475372700117772898184518458364085871438973965373286929751316399676663785743510636883313482388649740862471373693370764919335684511369638248818273605131342056249480026060021235420570488762394617739118269937888413762954259784406411553150573852644188653582450746236408008475744263566771381276387499986133679094901205885781327006932625115491771363826499165518337863613389912398970834648700480157973051796879268159953291459383310546539512521057192776913426337535668595929970477714606487257735414782992127661218696219057847980670302866025890062820419059128057143098319071590884507454749564787182202889494979530553067027711107757612198760680685955905096149394246977820272738718473062524909979402017921025878016534849671784075531242368114992891187354677180656511933695100869617022479229720751061147074462747567424597715660649955702687837675828497046795525384765065992618590635285281662878487394030921134003375879682406271278148954750728390069940105070043517379492867930980801013078236995792606859796325032370451570613704922720603768976660201069999239130101725883578642497470479999287770897473628998601240916038328535264465961296304129360360648348693657167758955356923563320433751314149271912987739686660208007619576752922186269328700849222073300376682379751910714014884101340616789316292918801100695567124044160504767144531603824098318785860291769226840662895571528196104871279218927414761178980218297752978117197131552776648294920540051263109351736522013569204764273199659385431961809635316501992608223341464675030830133571323678389121894912815217707436752481447508861950693011346462692628443424942732485286837316640277280219881045838992956490910775378367827347267584494123548689145633243230503798827283046672000859159088928068362364146494695088517250073837803392722391063975621710833081789790951101649602641741302490617124592930185130796213774393164960286909491676015017551973204120769463329036339704972016346686678021984335424384740358501210563893786851366523134272392340430414073495550378352082515559939966613008607500196215427890751878164808327399752173756163687419064283237798940292391685074521018339954252804578980863753759809362795208384230020580900450759954596769757363208256914464471353689465937896576173095058505918582643560142191648985522223591412644705958975577197041015136772770345047848429511402194279983847798366017267277936929614341597663698043030357884566260954061646115202083472774253541089345123691020749375926766807425360334538018929964066162814971623628810900965070241010837102584415238554446770857510210394812207010360291607274590197311742871482131353063711697817815302438895129703956899513271231392044808079411901401201948860983325731100598279361053636125707918770238191199548024167724804831801315320901484740574700357322632315774197097735701436410470931436668971464927723324542865379319611829733291537311851485166517967324289985429440315443843469010091418343878403581913736793853453812743708913743667169545394528419871200714916490752317286504891546125867687118102171602061254919917302714297805100581785742341055986783975317694548234267314947789996309399763794411382114403781220806755429511692862130146116699616340814209861673501983244720752285220155946183328537326139879800597672106057147912626531472223366885300760103878852705124371377097259440877937073931401827764852350158960153154889895683661081126248606855243676860692884677535629934281409130726617176665673886773123020525358164931175673242551327016498807664994267915391181936943633734709141154260994833784867698740886334641205280799373165701363411351496825679834910557463012656421409570403703891418324735230891294650220519377910074356995772285859894914616071514653811143447028046731816458199701152515803518233288653713421962027418555594200807528983343396191557052692975308508807920587983153275919346852988239570689129084227031111252535954215424578573996251777330091966143768942451809793855224053827609056068444076816283240638378585199430754950430852004518027559489816404358221517807245210833500125365126391633498263945961553240267401483067073697430552198233648813388156193999002990230495738782479321946997205142051526827921071972252155344797054156918891155596576876743885599134469137667608422195139325342565128412021938046216570680682802713467728088876554048143144603918431759073177588543331341587497634821664324681354233056626186635326976754883852013248665113328675242312349095685155169239582491610115515621934416241420816357759051957796246753161092936367873898088581908171070357018726389077362091236969412472984837359181498614302910159953336090540157401550747568237936129799384047945894540397685511029371445270361589430488279245334535689796317585803291660550030045931521278423495693567771913184384435445944567345220767280124837369087245353361450391950637273955459386941324510525407268766751601481753411345902742632625882973769380816678354614376248972437143641930611741134729976854065315736031921051592576958468759289984243894572177481773139930409562208418974141684865380858822154324879936366548929371858426501412347714313449632332425164704336312152177146732167545993148695834434602271770527691488971337708905063283320377858275048926769224086874216811742778111442554376171460802565164441206565481057009175397382212018695547268470316512330431162492452685112697056799289749556566437779519003128548718429670695285249827267870760216493450441329123865948478719789197587636890751459209710423919523074123296978630463580492453073811445924662543593003652405416692887604783491664434093263746717887627972255103080693876895352430182517391829687720929476156620091456726376111096172656205969909868199960456178598978272386558174819533841003167981572181049040325846517194794225185783783728755560762859040207803718033955364395427730195534739373674204924510341132207608237041056139979233083809547614381435325897442574024583614640457321778030722832168751726194216620143882240632894304138098661793821301263998902367337654251189878367850405369483213307372197772792312126837120858185439434334652435925468595129635843934854572308281778031610920683207975445375612834631716468370760235895516062664722898143168383531720224063612282935043581877122280471483900459546721804132916337626196682372119007666909552608278894651335245502892624663745725688369704768282012919375860945596048435590109507515805817539091908509279724485683342050908885353925357958915282807471286230242675913937319369984810190696593373937142555552517405108866069746823769427496949284687539744451932729645974521045900531442939189754825669640391994281430103201421984082333747960988909016830061219342416011639289339239446904361532066049474784814208956107547554008196526999621977886432345036130903928653438050953560858187675278371667659903212442874268994487684494449874360074674265506477074167964795546116542171663713696321237848746574666467441931802231883337333041661515316365814396883454882660483244592029010461579911823560485967977919663426020749770956152964409425361550779175092440277527743172519643297814328097781234482722142078107385787383162249371576132969778218327676108057079250786012130716848895071188086025698301480271954363974749527627655291843236431142630797372524535378183279858970519762583070425388663865208799003979649399891687630273834223868481163671627901233818373089185062971166917454530451256520510787364039386814012771310483076545546269968635051745149970473045666384848073294146167414998249542054668105733796448367437884327505409444354544744347503487526072974936617524554925818690659240577929891682692009900769776681036660478080514760525763642969522389151485101721302214037789834821907052193080599178991228298087226098875507244535914985398917700689631159334183976307650609811689985843439095631923521881586236717163377008305657129530548685363705851970762942474191576065919200734851746675856760387974290689064586929923850589441103667442677943126800701154901195695656073978708039311949976087224042986107122327706493982622294764828440358910271876490878515852141985536915831062771583855435584079940290150391163787563220536669468932873417119399890140297684986223082541136724237060489215743851949238813289038935564081807926959850808886062357954411919225061061627225428557514119329080440709389629329403670724065080858193370136394967851912278901934001547748093636167773352307786950619169989995926253529107931320776169362552017858596316408839639581013259128856970272832486063100185443312831551053751453816170798957107797584124118980774730408771747683639307066742792685442429742098416163173926537602112118065829742419014448318559171414227513885815264664352305116255402662810459117472142985909119211623302368849731085799795397510734333393865203749829525712584683561014173407789731178269796761443766973075777183500300838495756541198673998917012741315661624561571282582706047374240235284809500693418083852615758784936418925003131174264666426037277311262367400895264729019375109454154492357146872806695910713435377454103028115707004663450391244628089812405311719409754288400326874939926328486870628322328057186585465356820258924683760103495087988393977609459214034794606258367527533019269234048525651467586352510628057963605351151791853717768885927701805027509248505335814591727028604102662842405691399070560047056896684269425754091469551588102635456365558322735969945761055978099149365540772013995642967623408732862703697111149549782313465514296124072651323257846273547685465735214145038201560056383173165438067158083447142376036874705468845353277533788049480991598968737208218600141354086739993641606186084737961391472157284750643159525399446966866297347474795480994296774621250980572188839029239764540074779472495374996648780769991445217836416327788916078319872267189524833163141585302039530616966785717231942512203561010550128928469832340310977127752609781261746549522699843347119792639451154032580598825792741949564226380393686140287339478798166806397058184030522961913932746184805330672417910634732940727363363387141770843934182940121909114282445893536393241043044650412398303075728370979129660096982362900736170663832157079415283888110924234866123325493502531451764872303269257746342643392902388691902302908393738056247592298226481122169763938597053553814572648121340998469767102712205724703225527224908139629965852177095088367347694773313361525389041281236946908910448297266630047469160466763757812072638965276695074573188238498338986062884572628955557230022655024565635361839715123840108923774160710708939410921748403468906214869835895392877843765723194231219927718669961229268208819168831995563162236165263818390610197625171040708294874513435888961322536249720617408254425283345773969934568517602576364652633126955983771097441564633798022934609783771261852927533400114173760981597023528858690299696712350277250251405112527381088357645582387256514446076396219850221742202448150713532675496038853391713511504774831719219267286084547515017183105460465105871454672429461464111130052798322460028335935776074371507624165096756511607778762729330213614617152894677596702763152951626932657414677487843108201898699879781400971479457266431532083372319026117206011357712966533955765654632659227312604116388264979471897687472249508096116524664584805179779733809572806446539650320555482139765565177061737525554672112435340299787820690932433221070977867779080657385194811981566189813188327063842332391287624004158049299016895150197080579415553217287043847122867509300366313728418501409471383534150425124130083589077775225413655168588892423696948180006516555133208125690098780280273450319944347295012142628422681559579393692960824965227987594554083900929257454536542000981891766292651623797343881386680137509151304324104869483678751152709805007255750802274177811853562804144317675163460785808368392006765796337271253918371048694122295210618823143059544328758423275388903392303012547757817627114362508258359547249453516221259129612704261614056626327707876094093467584549746934331975132051113176667437298602272569055279740867305767966658726800250815465476932698272348486501820662917152401444588455455540708949270183115585848881333100559689374638715417077140133214641518086322857048183264180889931556440704057256526719779606269870950488925568674059878101683413943856095386144581395188282718735389381968096802659075563627789753416864446590323362566941980545017005343161517334248945608828051077802041211383634838040517895803351786365694363569936706698840007262020695030898816060685857061318212703983752552692406311179666848729121459298639388407002550102552537387392952359777931360615150366283189868137042736557076559046030176455328801551038413427727284115207724364524664883486072236836945718529506527398974877330258804735859428777997005269115695572945341699151804389496289553245082944372776205069804259223912311481829003441053703589769420039956416089116634727630558606594618899144193770470880531970804137462959329477229205192923131676137655216698446181525366976898168651202973359134526029236906927374572542511962963682258292227513646896683720560797410568073876945620959797210742631537237145630795798214566572428623954364352161146231480018973735489037946344536508572441933264380867794522522556460883506635322876754628181360574843437510951800329068674533637608573898686260249844773083371733439130826622032886006820461348360087746792106611683118284027748565793032931591642724310125420976817857884561519132168275133679876070139301121861613528275353998844929949651114352566989549529721017881843054916219374827758258546143214696367053938929709718501877636878413954089471806072557902880828807970987292847354017890821859989142859454797617078182751345493453183179238560753978319081657899332372518712764397965512406265848374105456500792928667294727474550956933498153232739816676502447233150678643911313399365721921547463373931554923440799550569538144363915216597132823491385169787550773486844008714160481204851848299526923571223213257243856154244667635422616053846386811537701081314410533238082535969413314159984962507596884916833619540865213967576719236102138922801466375102503114666655846614101515897290499575049733011725751443449708337210144269075712043237172310256329670466495304222075063614165533826037015900452461498167674738004932990398193528298757385423446412051007166361849054912500476662439234024396051033009490139635656613213904176565837999154633323182959178341797225543714071191819232284251200672944532396389057168979156283535569483049142404303652558334245828984540332917574983461317136757286829854829317734791411511097282682498134464567064794723787339744082863010387866929596536909130100703868111314955852487139110290130570825209862191414671317054339324775162996642422508853397038661499248001827138876427235217295971027584888284111380613776520825128575640244278606439793456985651703620091997512276122754104499855516674783615232157940953173628694621358691112133125037353928691573317172420558761324036847977381890586292820435248204730602399575348988216898856742082204318358538580455638916751511642680004914381739502160998813762074331701142434018628212213794510329051443428731053904370781035266912705594654806291411091904793486609818614083971699740508897222359609740248433431291109186687375763590614187640252617367060656139065635554700516218358001849357904036187531435388670564233447133825723213241862959151545550878236761062859543389796100628639307643748863595891704096851317904792920966143611775174710946036043181022755024157903142441272651069844194650700687245462355417466647363033489032479609344682976903765881584550532960713779976241178609145766990426310759902898645891963648627219139533093638180962183101234838936326446021323483232176998324163135728989392906337427941134828285006574995633276533202096798578525965110733540641738273776846502004468528608410549969194257820956415436744114993773289787632305116021151617084330081877685942508208515305067203707089935406024464223680103997838696279900631435211559288250013285276838991799253827802621824837374649093519316308681958634089543498766031973048984926471685899809627260534347253865896870265927966083769428932897897163288347260406144201698652925328615789478160938613014851420460611735451081425107119236705601446861806821349323082400142037074936134344666743099180157514859082479446208766453665315560298620118044620006206590744315801448814790722991651055215568336415940352569084785053898875722775914897844652812392155362960474055958272162199481778771919183619700737820564847089357506125857782098724063930839683527161636915206992402405349153800661499035261052885151936359116719129128719427653646744719386207034673897700099250021984218053464830392173384888262817733610669374545910738435027316887027774779668766911773744402772056828889966620031003113652015077939841687920112192506017405120105726294588206376612419439059817461992223484419893676899489200321486457935754831673369492777668178082354427749888895921857643955887052183393355107865266659193760255688653167334688809460959466918105674315079051117299784451162140534951928234632120646070237508413902074524046429763359491727148932856333850411471682737204441042820176870615845585047646632191290003992068867079159498215814237336822694781069064527357788813515922808903729016357623179486010073018459872486524449911924506466122229488129271067939711526281189841599683839701630618043118869409862981986741983963202134873779838919812682091887372194024529552992015764879156987451541170772976211969329279379544746499269375597941699090545000834054156713634783988517405370315638772414940112281171206317620110171850448028687879021174225410379960200802794395213873565839871802174735162300911503644205003164063920804432961805890511572218893967401414149014006210548702083107069812234854447692581574892816938548162913384479269943891779369148496058619335680596552266919136760368756702419282856317203693214936597143976418302403604802033224877700074806688819558348455373929055561986287525513366868994326243351786229524697284363432092039666361269190033114153789750367015732775952418282980719777491159056995451972766266791792398647685088255857249641734391764690072121535700433869989554465100115750658581458891612109746015478911425621511855901481741181719090650080338970853132614754863817123161970136590169465995729609540798802205227664751144224972650305005845069464645344622585716197456391485669080931634604250145447205495117352505252009054221456970777354575473656115753743469810550931547531096453002913178519928697376774735265793266017900669506531043398824464910229309802126131132137521647532402769828476406375498675752123344965107521192427995763395375234881962258663119237436695070941489416117566751817597070943141332382994926294788231443420207143563338628024727401665883589627454048831134200778010527525595442135530700762880428874382463726041843763182906953605879732423488341235765724674069339462907278603021275750890460252746157790549303671097090040061016331669629647378671787333113790193303932654397517929232976747449837559045037097915476206434503022877089796161284281599452001002327807721705028660962487490389119486910964104582349758671458581321243397166506279049348294840336241709512681246084201226829719065051402601366954306649375945536397783942238996143018383329377263698528247345316419210446048568096408662868731537907484484363520045029171097165683052503696635133657028901487027267182432982918012829622391911479746763888523204169039499056733030676220712324005156057111743400194201200727208304483235045395886900265629755936608860634148728509237423416741940162948241983014663971951931421025904929872039662507301101237984275055866540717773310659085792284412298090435898685660294017477953822621917357482850743849927799484405484060970474959817960475956556082917237198974619377649135819327987747435234481644281588956905512764870102600264908159215657687757055819769712929067759596152485934106429099825470965797908471429378383399438600563737580769960174880807164260010973896613728129703444178472187118308396311261900904814152101258822715808789234396989167539174534456642384167637291578005390761766489256364982878012435844986460730021797319927030360832296357675294915688660963815923528755879181525050562208993001239154521300429961973942899604077473853041675888478665111001525245632171289283994733085937950214652070262732662787995578266910902124038523593050806198359485195862358086993227885512563364759153981682278267922723575699395409236179083109920280640545996239758572510454615915259085482240171614049458696588929253782388036529571200480528451681022254875409703064364462537830158544186328482534450606383795477171036708628627070133996478064892203939336352542519160358620028723675079358037824375969627680375270393429769699622837459642721295377722013536226112953231594892815594149047852669057186171008186247985992971580957458885908465199938281618335012692848479609240354889819860580690561164663895334682366024366609898163988876669878006963745217352673681927068481249468339937313229022294273473651219641041025085901977086033946112368147033411808235193614382345038310844695184237522937457670980135352771859611021402102411066993529921000064198276044977743235382691213484910583793361746737060536635829588010202509971678037143589498590019337745844139233861720511478362262805318638778496520257182377833563694623222308477909897206821716963584878145390855918197637774284019412474389883329052186554855147973166229940964362075594399740449433411757052153315697059861876295464673066160374983853444774944829294356076428954617584747062241427589863799700793693324879348470652834756843570685451546499248062508066892810984095193924435713398368277700321483209193714813746242630988724821524715499207405508847742593496337758499881860228276364309580674415908388047171325964460712897931497134819941008488100520138682406417925337334072665114380211222858666173104260704963941517072536383847428691626238416949908914706483624119287293729501756690067200090258900549853384361711405540649320345603244371752200005228401364812225010146079663862812897339992760823698252706943892064891049476300887869782639895418888955997401127950576759364009520602965030979354148643761862546443662854648780568261781407025784059567213332228430348540648408893718311677282754326655924129344480105160143990307292808076658675479055537363957086257897631410632722302583046926768623400002264342050309054709221750599964008361469075235555101803473196416224455013630417318183504025032759395145413219361071281130155428667328837218944939571349147231826554505511741271528186631457289550479890405252181518011696012056013003955821905816968601200198140225637871516843241587718116292597994540994233628056126008640143568194283893705010217947062396825220138497493981761943751311198277328517820558702212771048614809723311867871748989157537603290253170709168740780269591831534499486692453314834533835789630104474198330538504397831621240700192148151119705880215116683012174469430978603716973597976939156896241315659165652860640614126070176278868299449823696591870874273527640150944308093584095226913544767092740347499247802441737210629064184315191050058654001750597837061532890410893155760021624792955491721258482552702854344079363287731495141064085569001465757081149635666212461421430703669865126782820495909674409224200803318527354597640860831605794581987899292726806446005171327304435670086357620899913010199115367030219428329261804285940699711465995013924388958071853387111198261611167751844457624536089808367250552889380085250879922654454048986902864660105825774494738689041746920998600928783905378015175040110719171274823926753586175143366812386780735808365898691177899640593325214816032548807099614290624770772675551402849498942620019232208370995022990747142184995459393845140318032858956278897118491187846514778340257847156174831954741455487994394649337230272971631522836168853430420560133239866308008073184837821723679043208007188849363670067688219778109274326557664504516441184338949492034806625868278698032132419489927306218075113836917789194513545312812081634886170210525916496964951452353415770055678199765753211488960987323652075121922862520571118852570457861159980594335001632027531478244251516973173306225919293082802270516300385333585584592384447850455439583569722310413879549958580842763416750165411752968774852260074533201689581016420751979022538263185746268024996603912754792135454269695963945861490210705040370573769956900341738817593020022629665482548317577554362208536214216873126959604470097201626915318738297333505845816047798615414921306475518086273907613183077598239848170495789378787481656130152507448639037077441357289950564803537240450762128013611993060080792642778584282868052782905289851871455800548727279406294550351060842073740721469031189886005117041378376060880184660037540465536500204985052042878786081758502158627687129812081792155831598404086386965127691490316726826709700462929606248630152445958236122712632294144282262950048407493872548744063554602805349259210099921540922780127437437192629489379026663693907921818289316724698542816729205183651522195467718791220344466537831820445485456643222918040791250084629159851771281592660999164078364366138143772859165285120980732814082326216922281771741332501872293823275352890108639492383464169641174291883732360860566066896941207562957934439296025995635194628588270461171732737969049542256998511572563220433282455978819628943807722891286557846319879406424874340263566508637636735236907417801454378048028013023332491869372288151877446808449845117798420589647249164786608980507343522333588577187992282610311107312189409220227587349516441141919109857828450515424119594455642840291029218035746537705521052647752859377687900094150882342957843308948274542667767090637896669007824730269067986801354681305574558974602337554651474133560653587400715995761732287477106836596208507066384630932427732047078442155867011476436048952531781522425899712741750116532839608986858194176869652659621564439840723624833289721273815003425944621446863285363135653855425263374190698134821031042195803250010375410465398898530136782543038769031584742968363023592377106344882238279736729712480296037841114464932837832714780472288636837320934134877086087394688254584523982125463107764564856102043505184439838025535487047607257618620813811787633815350647500991984101158782516906099992783968496073327262636814844169070111673926749052300033205126749107167753338707234392945224957966918503797820626574648390268292146694732932389206010846798749012268065975659402456631170114409949305846677815390379776082632851725655188682294618476554047779725560479583117588488729179663584798909906723385748936953155493405251214346641707792291623599247697993117837194115720230834856896285199799038449160801527858933683672167847790346877744156523606451421648061109906644036191122787338999350350231679049252115311041133195086665402116185182860335342571396918264376109515799360406923306894344559290876189224018400539798840600680510363573994169552487880193730063260555590493281526254271469925994900150020149630677636695681659101010493387717334958006469625193662284148178698051299501135034840418337729557212434491211468203557253279358582679884882670319758321535189438950075282183769093756994886730948075039217029923613907045299075903477812781190931207201075601712459241935090951229027659689900807368533241830754723546833877270739753010865486450340007432884297217417700456898323044974513507557692982839306116613026138822658941380370136458486742003080987636118933762387632642309070501312372281406135342111870198621501745115414331711042270400530272465674287666443534927913460635050542847992254442042143347796597473032773771350233736658852215092076884877040542646242724115045150812816993178206618584891630827186265897822887848651216430149518711751821199177734047417132036939643352504318736425651375187586569678115873497079362213802187334541386865774341564876080016810735049367780647902998878254062401737630230992921435039525230316088527274003003302841270902747485852569785917183469461584134915423508270750593749019242491955755322575562812003828188456614772169870541122159671479614906289097854624088424376506041615932820312693246083111339238674238149606123009175981676997064463219192825453252923704079804618956508019936022133388107867119598833980372170323967203586573739096106307980574050519216157600459591855283591789375209291474395094763689204632880834441053969606221856558090865653887543375088664704797801195489987541259480894654268174309967153459775216287932361240472243318548688088326234868019508105067562630452667598945850890689735996937198726856948314789441330468216029442091881685847850083777429286937492229938396944227405373461459277987681520861285830863307059801642968156233497469388484302185002861104195141271170310678831816705781130647174573517038256069415092639277356562487571557415559445975354492497267417503409995913851172691392518918469965132104421720376107858907014534602695048052050623740858384933475324788599283925485515635100804953685701489773447344517119165811856918052504650665689045964986635274117619103274754427332317419803672177050906037613250704431088146037287505647727716295695456041633437755950987524569086314177170073891345836231597301162165456370965382394710161142949115146184506936434347585317170823025427333175045012571452877940987659500086982165113261581787084674442877120190983836804151830985875488077725085230503610226828856184668131636552532434063139864105180672165462118753172200465464309379994575024959250654359969474353387821851567852088024906507434837657427682554995668787347732121527966028504356237640257524082090525589608227768751320519861367608522582630130356111056816234921979755617545334793265190513400772472924566561225300915985768253134067338709154056084706867991482432950286561116861380887378360705486636485772334837703684540557049081850512084090841151117162185878882018244491010907855299202466487187122626028179040610823724091166473983249475393874365310115579058263166665881544031960278758745630377970615399496420529298088519832382019952715795215655732739113665768096323896271882505199298392696501459358213091167098739830067005570432116066164983942746192464892330073236939919084416725385983453923130518513637789098467602485464050102465541398440472135270272980063420888754059690569346436211904908809081754371069106857638009517563158172825242527955088551345053197556536409661571471886566378560909105119604989316078466668427918667481521705101845927540912571844097436197170560109454565363963533808794230138593953921217798673521614541490020401477757480521457531604542615881408950438949495863710118210364042495162487224583531588433650731351328316510293528548441244684112707640838213903462683347352748715970884764067797188176466013593602300761137049668944015667788277292139592201955715855485784468941040119853832942415662564960899485806396885052961483418743368572258354900626333440714457689613667350951488163231408362602759664844704252477199608707023152929612992034804142076392296076986767255926219477725947792987981887752893411918632397779741865613397961358387816128557556686365470659400961833811015562203554699274452283004023767809102606480407759717444302997447355264477715471235081421840414011932472231583469121870646969324149300498701085267866598758010863538467023190084303520276546209712879906706322388127735234976436714363739880769825595617389611938113817937823583413695766750238132345537542262707815270075856253908948501673863529468343332565088257969969494430771841529330712605160610533993935312005172030212059344003570844529695983051764911966754187049490764615881658450993471607725568358736300094726290772723305689002410969707028496044129539477330422162168957017409546505678347027435735992463489629584284203038495491508716440065719554764692118525405071691755129203901921812900324433663877534777398752355554629130241439970578321712172716253631620784452044255822786813768493013617609156082593145741538022929851635356546573222659457758412212802023313392731625686138593380933130119062168984356735306698281520141225928596827128104420674287244152792928043378547571503886988256562882855429132048587134669409430089861697551000678335913216726222219990842780272377669432852817541440108299491594083429827990627935910472737861889168770000608309763093116966513310493734066949058617788059902180188007369556102621497823569487861090190644179800461482407775975430432312173527463354143258747229662099924053981530506578732359359799178294546838090049378161071846386796537528864476863047646183535491910017209710478431247429456891722338693839634643528162881246419995284732485253081783915377339451872113445645290564861738856307884601806836592234996995627137142271952709108127723884758470818506972740839960254193695178514214804962153864335351697854887007474500345418868652283356763800090892544839385283477926550077176540023682241929268893630580436508442749073134757604888946555335907511008250293269526531094190264809422759176506390113195157540715074992095416530219449476829753718581857077820281484715981326894241804978367415903583191616741934984841324606105734363773187640661164761272215563669247575168573377482312743966327982062736398065290963265120916097851347634839868284123775119423057925705490338937561610234599258629023241415417500376018174029347658291231813856701155168969493516584184651214937674170542247480562545288680223821292527598481682989536574827495608251326122678211232979833547080651522493999831734389031276578614764321546356201280784997333251410463298806197292468068906348508468753112467509593524847231767978634126319104823711334713184688225652881735511383430690942546210968479726680297483143317569369644457727516720140920021637476995423156978467127695960315958972974238891975317240525871462520509904279676671866663442557038509286832381363259570922186569123876407161151580569932097272223259299732188138062624518396794666303762884553319002614564893168765925534710708205893283852478817344998226262408789595629140068495904870947248432315658568577014710154019524684221174232494398195621186329239063823272832609403161618787746984262506909381177040200891076658279818877369921595959222863223095004169755087948529464050297639051253870650909250668557139869428160844124648121291546869913920721540165649218189125020314398370022515810904448197539579027846854187717110193582953621421049903658970960938312623038651715626538656318223214642488015879124904412669492296373698049262151187305851294613803694556816602895073221352292697114995227557439771854054392440373607126013365618606680239747774618086461680362387205190248770252636960073401893571209666927258830457504477747252633535646423025640644521886577767816904765160155236773014645377952801386472309773130946256100555650817245363291400933513630180803707223046336236732593146510340061376852082670741405899594418573224808746044616476516599240072136338532626286979856825286700642203194686985828947696312082098106053793543546319010146479533569142987042008889764160980208352725652962207670977809057839011822625309278040211863283933697440726065751525532719476582037085147529669375091320281332717584515496231337467476993760738250230372030095714369256273867254654996360804796291142949674131293845097149612500838469217403875212519284129146357804530716764652568227029927417545466915098978309320799854497020364097649723119741988103777763381488264018887648286748601614492252523488066609007942545867826480903835468843013498452673393023281330202357988152846526454780023203130934258753716055924284152904613434067064783715139112975754600187797517384385397065921275906257470389100462914695027058281169812329283248651078586056754807772707571511979169230761659148694442121881562566976333196380914037368511421037299986586403026965992576887878738129567533767758832549330962075327635126388377016733522871997349201192699130052558406129375192082098256803423017833437377974386608137407375758826632294826550497684149408411659472858186631653324123321465281984743689288571968076927084630732854628536975774557887468467123088144419011636263192637324744986239149746375954634093304239706997944575964955167369327810067886825877311219733206157859762309578633201637250989538392285542707704855904996334766004331342606943660088334675273719150663266240722074424703569151471100664926023181350215598097771187137002014118485701844508328859427827482522376604343376365851743181335640813743513719953147015274410550628868095850462856894543498446856806417221443159560817597591212662600568285661495129065097728324985288382358736987469612824718339240230795652981270729730843360724973308427678641111882477706082489194134464567449189463805875921137374371532887862828164149048037144141747778088682827467301600927790933161738170379157038878101393458412368365728757797016840328904154168317772021139529929924281566744850741073019934535868693882827141659070012931677595653470116698318578169668181351166187032194283415841818683449788316606293723473744419832785895624744927404054064985236402498624715277529291391464846481396859778367870489659373014635670005951781247614735658535722328271219888953911631490778327302140876148718483006056363608362177288348643923005829285139396966310364500287139167484112892317696448296331209828747454420900262457123761930443865416202635979816380760196015386258828608470570369880119938103340396776339625142000689304030107387881019879249686151607069702924678979405469707667923411612970561999183963113910639169883674715501239877278963412564679704281332580272347282763716399497780468063251691537477908713763264694756365094147482277625253322074677007411943336653523308817302653801799894808954035810586656076784967872293553552289182541878027135509004609516278692983661146514917395526326537803781894972576835429739419179490242952980882568414801453761631246744519244521562958291823115103982915694110311457830285018782567510689115807463351973729996904556649104416846517095210559678372227159052348277862338252190808418568532778715305203447276758926220091321244739079462951305880403513207490405464888420725541761111657902007875702374922334801412467297485181563905866645120253845684597242492991282052315797819668485700964278294621313910592271744060983979769686757316988014236632802491929315583221940922555594128319252079500059844591686218658452444227505160552722839816782684284700592255660215534459200646605514943355593468678458821822061637575317502425366924589245273589068573909598402144956087848056006441760475122735217233453395062996310812894345005901426615596971108747528796803953723421141388883760955983843696894744751471538945653716437469784043759941643203723380030786760961731271454607668345117214522216373084279190460342106953193348802361482921574787208792845254800236612767179069593326360431965362022693279602595793831045732070354264992957408251129966536444085335541950198868691824981774043800624646834097010619759871010016500080998935050988447003495048397260456811620244737252153270223545096880291975847592582519703730008665008685317685719860344382010690436450343579034395022719883721889152984323031419124939704599036003392917029597977115435918068165785079182328070029496503896315174922355961839555451161657802299763515910705860237013905273032245651493597582059920598803450196221427342656208957762546674284246944747111978984986232236533109024726907507605296467940414319221717229221390508184961396732850558651382158276037545128390207302643078033235354584949529661591575461593421155012074073387695169016532838236690134633829334595894326121665411489108902760445138215349442713401654537308094015880744943493343169468713412843145543683232563683678497731079580825617391407744632347002605872620500567763612284449244319072502585150834614697469556770210720646781106649342119558555932970151218312290485627795497448469310849777421569047113729707257950417878105991340280992375738645161484875220273863534139587569883643160484171807998885650523499431904808142076236785147580334844231546154508001615563872427220839872915786297402255637369696386965094170183397302681508087667435284655115194313530592015165366276848456893872114180760969709771314393495525310912455832518057367870875638280875077388913918984662033309269235413560564905592210489378485785865474076448837361909820104648196537215435233781432775492088692288851578240201786378695517433513919204770358349723742636572849193908977080429887893799551910445075153803203457444735995939128215793030755643418675983375420105988041013460871561912133220386742486411804353801683438277000591224751182647858139401206741331169093451442540705281584367511505013650473348975397291526916073338049842369364745322643843423726856776535637054273273513332966674722956205126651547480412800070855554987212428637124220242510776082738145817540042085274506689711702215417886119937486115348287210122106382412027087992151332383795454009126968990117823548358928263793718935980457951961422290782841161980560504893350618774278122921029895184332261599639682996089937756508803112025670447106288529433877826799463151488609233197269781556964290570716249185714182379877143088670771223568229753087245601559293978055413580982620308387933339784989840713129502000804299559838726707900067742423389240007352665399907626020990207583009555509928298422318059812754357007656975804363974789694426551993323852562049248771192748691597871573775073001707653251332496482866410292107720843216568020667925064398463591282810014890543673087985907394088022146571493918501092933429930222202304591803656485649325916527238599497619229666219481909711510797416918042871603069451916815615736546252344926183681741691949392223835860964729431682510354426119337145987800585617833275525086583533941650808604141206538418077255062607221773260869149580516255907851130645609603433074931402937229969311282899743205619591515354074557065695617658619656548709304605188407014020896907937894876764890546087515152198707530394382846769327156592968872909784170693986574165810880666999868634211380004879164102703649746241365997556429664680769609651204082716495167930164671951069804167272840943806462845897086661478410313702080612439694988190804067672209226898060657731003263978540372800021849500358985313952556454185091965392757771472833730014450014930231298436729515708819766532008026165803936280770190142041886892994341113781710117765062133358583948026213313997136155162566110903450985400202841809973478991911562899061598168179115204673855951540824898342810817568200101410883933126808718917059172769902823579858493773821000118185908178252004663453701124654554766426361837975437304821504107398303935802677841899939811117355656074458181990459668855669019903217029038474311208680631494295635643285069686062091849246583417499312179978688352808533599948941196160765868731707360127134764412585086146046801797867312817268897015707538277248136925916253475009401540355505519070400664925048189861589994210983055516763535414627094168004818194838460442316564205194465566660502729339798508495381696342996333946641336969150145663517150008278086989295867817548103418830260198589069013099544552868987483117677811191471992219319971577858192452047934831436291279060648321344232336756625369387805330405363593872004989887495763405177973948122906097406152540695243724255642394027158217827519684137367674797628953077649842017773752660221016468265474851217001831826674984907134952127966619649743331165195688247513812627301343313198361757662067144234083270227550855566052102968297228799604064461444915528280315846488762039255951114563072650303184700565221070345534877019431698611648002228795198503536927714377036980867932355249872628161466191042204725880355802236988841784325282359215663803498322919767039990463407545557563333629296129541194277335904542908310488699393235606948084406467733449564094586660213529085407267160218381224032380898432200736782558551112795226430214213072799705745383296240471369410928070657022693537151462139448935935876816539242996260262955020477915931846838002230117240206356855839054364322739518339299284766215647868808372662488315695898207156089673975577614369504933749417060451308264690526261992238464621627300524252309542718335440685963672221984024776867292805966920405367491253456383808063970251899055966623284056753272910859977658105258353035536075015520555001009704641523274423280708674738633177361524250223877353171712070886129027176366192052506127027809172956477372740457362671038226092726165835536965271352684916164773185282421952914399925548008117524245724647089302444135527773302792052993542349287163178552006356363482283998820387635634954814640160035027436246876037953329201889297321752686489101094700891771881675382331429059840910677066418886829826334911170629283136929593444557427283403004485873526362615842365118272647283768537175563169829358284783194417847298709969782534873809086964886595009677132141320447711490874058354269263943099187230383699722327867334976323850226359605005554202103260861132461245999135015118883098545869840595301548749272634899050435321140994023646206381818481401333470957874008731814650539012323058314332422646738385325070082314761403285175893419773238546902811276810503457164305532723168441465571317271309465349173190449534691205884637502275872539420411797598471295314979965354393596812397450199553660569876447752153825033220609605647497733625954595611421120351186851948913714276921506384543112836629240075990882543578848083213915775216535751676235014899341934186009511988322478592206502831292051327615885016885724807126499588822650073711932351223882184782534782514265135087704326939339330956423176908279050102145708990350929909770364356395341278313132920588138799767269759844459492951887267992023972810755166832256649974835147239952989578407395485175415038154814292155656398036398229709393685516758072180683716044834679291487637892227251965416694367226748130863534003900606400503952887179288096884311483585137476512462320204244684495562398573273288852745373798105179835563480895153219629096519079601347897335252452085291059370561999649872210903535847810328677030493559329548021075262181959893830599240070206803570888476871961552307582773525405061871930086679793752481303118214044641148096738958280775743461012463164515378610607628045808684475843614219619038597859753957094584255237219537410843411288543361310482584213166772003637922556745437057861136930962470484014916565739270988340451836048092392273973576350503888893145597553483581405662141014345514205299793462000334672201329258266121402328304600450092543393941697444956976182352566195344671317411540851451071303387934708713448558546668624392431690353352974468529026371213727005961851391919929454236777078951322663466048434029346136827343311295856740164289146918284237803358934654374720080732941286775056636033999238663956088719231033632770655660126650341610439539146617858813435302369484411053155468865604316846840821448227206667024413997928340132648243454849417407040567779108041772150610260890903992452722982216142470767536679830574017508931642587094168471309587190599879755405011602468759495720535141963390031812839565294930469590306760079165503047709923137934165880163181780597162210440901347887431415891558423709335330020222919423088156271244985892389681983371389314054737556788786980124712676411315428542208169977867507745429844653223328616687365145203315859179854020643131653951377592340775428675250176294015888826472993206297313317614906940865747687417986232040430799701680376512606278540433724651815754153319554565757069285088520650586575390002841750990715988706312436986358159760580796983605661331441145399683939991596619028426446291127510156278100657843270019909472976734609181773786404709041746387062599006666898362745824647582779866946246593532775412869209135632732225526675015340044695553911850322280325403643914765637167426652940055807011425090276560761346234280852034896222217141401160474026533161371259081278901500515456779311039410817416482864713066211492089358035840385907081759207849401925301306857900245750209233328050266806710991737743506641235696570018348436708279297053474641710416824694544308530775916829085701467540538885857007948307525778157491336004289169292266786484971278951249346973360224101405584868748520478942549148014348576604240057089130865561349740133558970851135856128407330855123496934833971321869244061813779219670342601420525312318696135389236772064462068606403960517902463435494356402122411422076853396915148190395194517524187051724603469674339313925119921998508616734123611233540167530938302548489111795253359136064240632504115076192801826989771949866130005047669283200211207348635628918109660167795134634134825907504623520499615545574008980437173617152542967010958806917068189176691894799206306626403686967931084281325688987350120455323228510603173728007275506067225314659091393554585608713373581871934204923634369112859738036331059361764233123388784821148172067675315545133122349826257791115022239443945470216752429597022499467273896051686059661190553726932122070675129237899937594861802767410209460348455959003413282137598309474381019456352313198571955263305072148286693976158717502821739158226125899728497756996380067082400048075634509684727491000496602761067792280360388931319550870652859818081066750918663265606390173081569053367035366904376133125566998583114441984064089576843155674344700213037370338140615329207138837854839588437161636657772421936721324887020583351377101004535775397103585308212904913016448103537967923874613700114115097021994103041323257600892433928955715159579983548714977067088390503402154679945926934002193293417194516947552871669023914698022220281483116291679594789425903921221959999533456619321613761548238757010343661760691491502870677123876548466451393532470106001135549111943090420011405901873565821971837714541858487911106308743123730426866894330211919623471662265937448328127645212748700341522938133105344816605149110282939571717957985683631931886508071910664550919857192265260137688014815520013205493033019760923698427353056103136108265114807841463620216257251166445252346339989105250618037854398739896795890104708922062175286996917081289737769730314902738772194282684652163132905757110267523765292611862159967678005280993966833552249337620487587215790895338428067078114527093034511683953977911682901986108349455827926070833189810622980899347117426654699717747644480997483052750335135654209109730731144188491798063371449772489053920980230599896112772837807362422335011566204562130467760991173197571443960797106634176641993548195921346074452318977240497218004966849916800604865934964421760437954270046896157932138170055320980804130064325248583710002237994587077880200288156275187710041446340698764845157658677201117181909384450204764012951318966869380775302169612716014855264540712274046732913955217370482772502468638228217074031455386787698820197815845090932956954245849115750915277583849672063529625725962437466810635671065358424896744618240586588254074387137495127351218341595937931419151913977674028728605454065006475719458105360725283177898958729708005213041058754980787919954804838522626018136924057779369543296295380158650378856585718283417371935975135816449439950246263493898505380407609472607085376984184674887328001421065027121519230068502979101906318110053354809435423698524029423743411911283232472628729195237946892486733989451980657496299539014696860917121885154773435154333027014563834288842828846371403743945242457105261161708832208644716661016869784284462360415103618315172097908921983559957262153188781015589145530615694375204776847465119235850767951918958160850484913232201048364459752773711029284625853999548210801768259265727343168628523884837347730605174164242449949954305902362734612839648983343335553177839439038065623869635564414201072669879654940900220479701690292001780772821999250925186389210721079402339625464010107511869206431351537312308253814839948575151584061417539719892871283604748476234821875136818001226870031097818587204137009845962512660427211802909483535589663529086308014829549500786153429561825056574893517050577167865978153022503213828535238760940326310340404557082437490140169521938018405499915756512581397017170343691221265309581977106126976062905110358111284628671850776474595044767213032109830293049849146048059584888303310253506980537886649998774328602249926075895061189443643553289354166342353697237100441575133884638052217009046027655964542035966381646685999758622967758335329023015994431553282571242148015734324397796522207278491425490374835334054236593034831961567147497755468550760908189162004304736074999139392058826122275192021576522216601987353518797709233829925577616335970851916262838339277981693166295164616963397875210961673477903557211949858812506673281197393955182766681558928523075593260618379063848156422165218941128451642221569534240196842045903912594174339327818398552399907415622682729162788223887840317287259226114737990973007265422895792123423433340128592074905552645745182707263911895898913883458604561675531279812561298005869883701514234232157367489507632621508083053824262418643151790763070878583620045995520892280643520346097958544250768420200639242325587334843035995065107133046585749066778911842531261296109993942066945334761952222718391277803803809406777150473242588237407829204312605328602912104043871383048182011896079757395493393157352097214651393112821396771968713326446312583174877346433925300843553936117440174702444863224568053797414854053267668703644116303694321148697613062376311518523185154962776582472163684336470085179214085233836273396491114801597514062423224528445650672233157522257040978984635268720486663319249547692562024330579779640287835165437680682301785419296677687350746688572337826729840229061574970052812478988382112308103162472837127120651416662710800690932048821044206136294672008430736987578365137600669755156094679637023017038857725767702791550723563109352475365075688657147697215022349848100866245861678866220068642198563840702705732963269432253204681214586711265020109607334460012087016305667140570632296965475020948977681481996497799843712530149402121405882563840714366119513530438340084741068520663585630164045481244095257689810704869034222632780953084488178459319921530017301487878318155109856365499312891261317526062095054679844068801577033352736649124003132178661089948646464757294583626167228275833137448198393275104312060001382308992444236161549900423099628058268269765608042550520444975255103371005348006590522961293241048669308555195937167849805400905263298876088561533254231481144734978507369673284425675324258543871487625199220554961075875483502389307324875717441325676534852274740381564735542260637675896725654116360712079153926034727101580622217377384472010790222080505948653883556827545566941004750873725924029909473936179303875593812717520046909889486640200975037521055765737953930978408737754834617628158668324067554829451092960468060125411236930222149681703608334613334166214318009276109912105915830260548598317368235613965202544237364793639129781978865312104667258433646806110270556745268888904098281185235810593783347622889775484944332517703157801951926189615810259567196503476752344681364095550938066768440073718995700657546113145510036778853869001541006230065593401082033189733438619875449355606152783327380075654885844651310358675335454696921231837165915736498805508588836778920743955729719587039585234730598441527585329452719190874683000525564767812528535437242286314233053371340346696133280138555047561373448547413849081028496060126819169316122402133102936779203817291473570940689089094081268065491362325939627497008651411004357140619908904487904054006742900549177763247364522302647173479687910215157906754258362178662311832021630123586548143440268420301959402452415821408302087304997586547885413772752764627202449828346460658141870622354283506731838987985083204950675368354404555318945790735067572331866300387658650682860182902794943025716935436825692221131245770450672351511592381706485090664140652259800220476113965621962368058558353281439780594961902423334775336640988216435127507916861185545842692871184205729334098156516668717217882377682954215850940794979582474150876641218746418764150655265973984221372035523073899256017098068923109332158788622797672787110480285270038343190570249997404952475644556131280543964277021237461992511292662108908726875484705564112072251414027592982504425917017515650192017450162636903235859770393928967855512756109943222668440935547692086629940297341310103837209859517509640620228039715593641864263323150957990992396496610383290363269963047630793220161660179525664975865841409496275927200897269600404778716760543481388906091178996974593053614365512340148775507587888673022688723777810994290831283139002069742361291725373778919374333786629392690165746374325497575227730782919071767682014485305110059988934021033705378367476337656041216062320417399298196624739065485036511052237498293137127518374940575801971893025222992424798139023947552324464498643113206021821632584908506503573969219258215314973664539660170682304865519841864484568621432773570537599872919680142040499218625207872054597894373746579114001217704311942970597033090074334134423122783687875813122240450398602730917336193626305088526374543314311703658063295333606707159699505008401387379136530142817940185556174822440267021363807177943179118071323480894799948395924370486616382093183408009156868317301317070889134782342559227367372351494542771520880323320401000407781799497789569918753601684823140148880435341776263554601178457486036986198277333545126235759583568528456291231880218429401971269961865245550229130332416042159222572905450188005439091305346821861709652091301450782974622664909941613291255798152116444642976833281982464482395778303595865173916609070132153200900544179344979669713098211110272432526126419526193526543766019234414874864802754129437710088407157046675574268159638486557934731072458265962853216148340518120082169703257022585417022151793290018038844496965735322218407410368285471207618121381471480465442067417188368673709094735597640324222632347103357757776569845907754129406227319081263655287991804114875916355618400231908979155772853421873964171227742690288072824984400397546083942278704804541723688928600717176276864951879936095080156744208790636038093952868825191187278518302288183263014088544048643272558002320022429856068146088185307305722303682365466385641385121737654430106102317175465665419796113602298046144260289089362117335211390512535100822602192502380516384990034031029882175450117792619974597494241508443285000936593803422764993663273077091164305221143671817910127094481428497308109727641021369421223125686220807941984320526143839035169829024360833167594854365150734691052722558375924455890564901451535400137955194428363238892790215746037298371898604776804563024082466022971477700309529495764763606908547601117452577711279457288739512410653473724796327808491749782455916361873180849177944493028978843882858731586047763510159107183424372193897416164716476135380922498127809098168216141718159590722361747393459442399793963596580165513397961410225392704880200510954008887061181559843983769625533482422695669580262422714720237909851410117149321177213800698872776514701936991765273594628191132499068734458821546544802228002167168187576226900003523454256803018344313736075979179890504974277572423559470179217131841543546562659272562536783915349501424532242324345586938491731764882751678148131531077884335951655158019249160163517829781541460583213449156319419587185180558179970564372558527485457764537841978397838243750539856954199479603568601219460962509247432745304451458105650887297119458374133193148286664897261993114185257200638351040828813652317018076517773606376540392252391630734678969942498140101878676009847469129239393957066695078007525446856384663452086924944870079069786903782780534406492035496295090724594767196867169853047401864266137374657689104688802604480942105260917215377634596830389872373056493254916984663686831909300768207095929434009608063742585873314490915419861697097451152873319246819678222044451589073159893502428677504807907936541022375368528788201277474125621005795232945910779405489415595564307945121777778575861701011745036815271924570507960110167409109188080685278491693873448646773785579356854246398957056946617894953278402932945660374340814515392114173089498863348094679140695279777472712198668157633096654641018237823064352874242358267561138121001268972997716324275924147597009888296622664435413013530808567419118578986594372127347258441646418094988618678332021307026032157536852454544506639230388303777859581877710176693448116805255991266031147748827612666615868439666556778031332196593551678176805915852200153359236987653439805167887642036571155028928531873819378768997407443696240560153966758978699758447817019859001124179361032106996699391455334855818467090722713434784057051053569964897544628652776759260443237424079975366256751004507278287093748235911071238303051033922507069463738304501672023566667923787891360199100512982919861017159740935957494990056154353387812778826805159253222155102976154919225343878705210441158602722953660862987504042989996066245216829417789883449949339028671762547244451603306707985563357665637572678544864348672765422875154601552261637862724318591525948518090356956141776248976257145001903045466493277610124954819552622469519095229251959240914004606619110815791420905842036945080636871505335544561847929448588318194166517839019674074148789711439520494015040527685385561437039322094825897960075944119259749678713043847685884651028867065852231302887699342014183911248740132505695221339419204672603066315816305330630579516445948119109861393409125665199753789777385950646183341712993879161668123528411237578308362718631448629703678379249803350928641171371909938847845147944887880799589553122391398374854055614052152126301239342857110709708712770565832000656186969761855617315089013456748655058904832513966584696331089875496693786736589373592903757732907977245675398310384747774663870406483184704256706754939771553593069003580255727996566809497259889937671118927546801105885019259834767600770884173207491381455988422870002106454937707740945829920678053836121719357474055138448099733228271638429922606510365181351837985676050256322325208158468225187156801986058921076708960270187785757271400870142088706223487533162156797745255911934844271733792473406819211891853568102892492117230226793330083129022320995366773840760562657683781547572785893442119597115779562464770658701130488287620188564026328971733698044693632221650050928052444923292106826202335871366730968597076051512795443243936983069209601031674282500374142097993457144400425947116905688433584978823131615181499562642053384019533530003034085494946551373782255955073746205494876733603289866601790367241083696742000451180113998152059885135141271943301506849611448229310626997616915283560968150823729121857713666025746899141469341671378858907620469836937489458211201754991975163374266049285711236139226997701112848998325344694207062543461504382413889400973041910712472416179340058590973283015485771867943365662690183208837850592210962251130169507225701268323421422783984111255581465459271985329471274860219813528182201899224433206003043123223018216287588534962381171775459326545385388750811595966442515304552284943541932947023833039939847403558627509115132212730276678565765401796929375293557737197771843582901241053537768587035920642956047423247952758419688885145540386482032971484642840172352887598118910009310796194153442186580388559693234313661251769581053487194686731310953679810651464069027347727021984522853188805648858394698277773996208928235158929515459810979763090927342048652158341491460722082182412331502431380358579672279711213625201595935600051930240303078136535904964182525328935758325181934708439080277705812601447979276523049811204964458102583387509313527630639643687937314038288622210120163798482840341641860846054160793958915595963110393621775973317936587743454676363537052773822954671607132893736032113719411290000187181627296482695369380314358304947457382269256931996649817258621906792714211612335111066161376088520966020936238744172690314655377426257337170648243815809376535730380312363077647067877648490211381179203044877738912782123904946125312601574206127065133457415141479696970226315666555898750387397850264311165153300881412853884007106248385088348800949450366626769075553591473897275082171343635967662338141784820227405238342340423163533756733618991755174264696497296864981534694108657882013436411726013312453385874894879534127250949062779004481127636611122753347113357801247288123010172245861695115377129056842551193172176426501832814165126146346582354738243686016019587533698862646944864692774058813834813932948195474473222832640698005132133071810263605384232408494727446216083775392065139650121746336665268773104977814459486033096591953790213113511674993379205948116605747209455384249370832109020140587373451539296091250948352982668517072954513023155409925521566783193974972770019577507473953466829146622399635933255669426680811348807878487938848130073618787285718082384095972121008726324838668004572840695694402204270600132698429197901516411820459843841742456341776789756738760378480335118119860415176006899524889387812789124445328219733343096945661757365426677882389500594311662029691774246031525816921721597011566376857612488742781304290521163354075198570897753290512846384657864797904696928222710830224682972222453938442448580465540721798002381480830371931106382235270002150936633684407493147158697887013294716051623313819500796796303005075292667713053911551107870262190035477375662502787199004804954798423333402493670996645255508221317213605185563542814429817982879346420061012193760812173979708000161652207454660112426739759005372170574425049318079489132203887478088866527323640678193962546863217465575003817678710535602125123108157280571365294878500383786592304220906151631354273584667647902325269144335684642116529403510940037108165701617685994911175227615375958706304359656296040490861416930356673185858293897507984323939913598289475053698599670769668389373599120512552976698442776721240922221438669444206714814312591044459705062646689872170427036118669589294563497124853696714975967149481370385289259968793172699348717705781477674994149905815732483884285355848341486231841432239868857526749403373180815563181371264339834561778859170753151823868492726627340683447148452363343717308912596843238860488978721585994398770736905204022815788457375297474706685613311076644632041521603404112074007632250977890702129959418850184201293256169356355515542672632125236385054519089547565424921437786062357958539530237045738742351741223515894474374691030041937543673063451691318988994654575450249243343076789179317752107005752056406331237133559186745820602486920680987855394985518034510245053038767700713474708253572868041779111946731046002808582861424129929000731480189635407590406448264110321706288344409662892110829668265743502158612440655161209637269664310019966324036459072224520879464333465783329619967912313571760694721501678991634123648979752445199149348592236846633511079254010739859198077208900036213742622018082501856564251563219525767086067538806630115229470135337391578901726421871966982306990149154157042133017964255053047530361842649278239284054192116813032178166007785123563107972535257812464868779986939040168208122771393512779339606876036936633439082116680195212937781066634705162720235578598678619150688963895681733271649863134535465121100043211288469664801707604697267036709187396578275011333029571509793508278544027777882483247524805546592024213680746193688174468588385892403584122201669968783345189881423442238835261661904141754408029277575438308260009536620776022184661642318588944011588858559970232920711833475157009594924768049685199828971492341528398463943782855863622348238247338265411777408964089000597846364737106313083567506704290889350790975715199877189986418775006041732030427876225630792595119707927987526975059411090688796308862770861429657428068491305183821546900562170400982483264964121534983194831449548705707015573410747781158606970702695437135833344182058777111418563926367581437015289913994794285115531924198378316062406268856974828392005422174394164450279683910387068297100591693146448526401783423645100411615515376363277981909440532842548860266938947216753796768778756516646812293744742425131669264806657949602610652451991726139359792959272739898839635626123240949487402840978481326852160789993715095182307922537987781515850805027201190818585695560161776631721017714752401249140630024677588956316038081785428304860554148617454815043453426174949794800571493459364525462719104125174558486715792723072750642610364196090256792679491189703730048089847675565703935671402418239817530053218601583154755005548278890198156951657331355662441356685465066493272468930355987024548665056989641674441619792139278779697046426132502937328441377325145739229169191099502776297707359070831085234689070580626533234721354490038119983686721974799932638223623910289138106393735478987802290994169414255968233944064873399660716272967811385399125110483781990213449826204298203188969252351429494644313985133100337209569386289185512691618896987349930101794748424157264836430162514105808801232035181943116494459272707129005525794106501925566335342620881115906116482225332191755538566592076520672690063705743556009084939449880422850217017744061282767482201705514632941901432060707269836292660840534571224004988785990635683283561690423119616949112337088995704432527252024435493216857135747590445298930579197546103082319424291738119384560573627799409812274916226389508043724731568144150302075049220591129324269644433096543147566245258491642980258775284161079265887241208423823456035202965778411435580624219823684421675008523320026446168688001725305930087668223652487247268711675443019666430170216597808988762356607373589586858212746283471574164783548785960920328699524437632666787289763826384406992706368082878590553814206334156979636320625210438051090300164239674249654596234447128063960887260411541884503474402935895728548008956772628168823591691378245521929349817168672054744454293706812545431889012969530110694969829912829575679161412242695176477950209545534833063144302911097527899823747738873000180025758045271598993926409224373284573610856494894516642365739287011613643107284002798104385854335345348377050773868318073589294911819676524221552338145651419088032844861615316699910604544303907988383806446147523467588126357001925193208102145636551621657199261867280732649402520291920146745468584859733223262415259519872227406623271970155975486423320549364284490853756179496692653019980247189855375193952783959665346200383370981903270781177841347047269445323543761632846556615478744115648940625158662690368688245245658101874744061976027312165037972917963313482434481091327549684841283150368527662097167538513274024440306861639599342458550979253135927197669300699668615495362798255643054289083703850015529818222835437439778594511625345073938817372940308171674155467659468256378036707043457221478516106197152992689416036915594196314699781004267340698835042956531566292331216801220350739218613117793522371896630169065596647101238544964714323000286844466674234464526180316294792644513307870861661074085790307250707440863771633976388253467365445759420816009782149725713304880498208667029755059940660709367166889487752825744844720679489672533639613932117563514171573277027551436039495462240568639344723597384165299223584440169810259814482344863318252476320322089966751191911140569917254602892283647178027600196088040256317486828556703968612100145292356617412919613391341923718630315622058373349934629374880822895324094828468145728578793871896892865333174844222808874870501731507776134675294524578354836940018061404910166040641140050645507859884389409182562850820465768297819925222498365633019740179069993457881574074534360423704396041292299417614206361146661556244959416021499805176698106856899285191960426038540441371647439490845609384364751239912775925472077815468600121723797810891603765158334250459628642688030267040163707524344015808083089318083290611024243208408497009005206595335684757669245190499921859083287308041157878903426312674091687827518949259846909806640004443346473826564995130733208185312676434138494458601703942484198646685000058465109157856466184930358350980022845247397223976015690723290669208823727789074758794573546681619646060653397142966461215492944128124633594168163557058287957425829452966716281014434388001515116445440631061838530035832552800010788507422334166992379439774618365106577224859580643176752951965643040626408638802754734785610048787524820626574475104892570008871801876669492449189508395938436813989411276085910273482835148830303942068442681846444246952357012190232306677514125084230578846531922186820061706510227295753213735551570888867994556865075152246766244098657395675891789783491538080211471073026586005764895609078194890551249722868621697995061971976741745006643553067116532352434812964002522443988024429827182819480569305588539561910635530473383223998488490223764103790844541321939621186340482874821839456159959995585219346565927677913622323465046715630333653231643747466602433590975206410296340654953431630555023920671597711216025047330719541734864575535957752142930810303429683562357259917383463011477784378110422408148891183399036900002053489310196118643860479476389139755068382795015097730396944232580621680515091908179803995414487063398182156234624583279281439951338799146194746388963726386546163055123981185890858534094835710272219545643717708351102509850635160944762675679632231507863317332923936346833589445470187877626344254909415790458177554536045311801709871966444877374999567193168906569125814176951443452450560617210437456600663550830716381540258778692415098020394406516980078541830735690256238190402260264820211262442858502730408683425020060566847965105288425700353887280355311170278034728296842312722363332886176170027230756131407905549244754471571778964058640020578181221255211619452946630738861624425740876614529450176382288766303253782442337248329917221778583005685050121025561237138203566968554200205961795200930801126125855894716630127877871828191821939089706098696238964691466281089124161149522512417643202814559545908223178422745294128819316914724412323837645755177927616045882466327936618374540864695554624099102769358175689437137237915369313793655359390665833844515349666509192030349097011827294658188083124903326537613676489796758273742798218098345994076236785698070976022000141739950488841845644794442767363344573052548550424295978551733515036589271800041990498175793932115225981552064715442262417521040025941917543168312698956902139970962621772301626672206057461745365711384455387098517204443591509499754181990678608715552733949123856964877079155360827876192307134280832105382866398582554588128005097891358596518539377145903602311164381352541422124859884648664129770070823747161044142782593547520949105222662766156851171709049012287551225428000497516422166205134741656548534952344033754246701249821235547066399582006725063973318773392061273597851596630431923015620529438433985382613186062833904188555121203061779339979508350982875838848136269905499691435932116277592143077860422389551011806494594108945624712982889989623905903457881931573779674012391887187675093864023773442184370114002049297208629419771224781666770235584686152281166888436539425150293173221204940098951559582965059730021546105783050576395474416204117021811439624878341390600600346285901692069540355550241518085197676076511046863863180937992484658377813547170084233741430454383651012264587425540364301887677315238086767149249646770245834667697311796883482216716214452237017845043938588946856083550015950270755995294302496315662843395182072510931502462525154034530791728801351607357713132035306454214798920233186863930855093130815570743849567398027258523423276771962257781195874771271897444932273916173555827709802237308403479487209221117412495646390974272733542381969153041250739127718116899422999347347782952416501912534932231657473710869324047667422068878671303614455084426488839166024251950367281061100837705691845378204785587530544609754823004545559020822346251794667711110993990586402000826279076097423228648982346254932105094952204620779096616618481985358758768083685018786632554360937761988756380434442418298451660355251713565751398885781935225930905095826700641278793059676457946649928037458424845176562979254940375098360104557187392244361938213241688221313349220116328303934820188761443451888376130040802860509745670335053249148084707972318986100564646531978613033280526635573501414372312954496342874174944658411566701188415837409435384187401349517877165239324778228928313069704913471880232367176096546060609062885676421744750802487589617896305288986982289759410783434848781664113749470841503565506032999499914769508810283378816170512575774372303097700677377358500899186714566723503044086167010451732200623434005918513214737752366350971497487129150523158936271315249178510457988885584864532185267077648797692221890277859761349612786556236294121595614772354475443615304844847251330131354781958394226135626238593444687723405059869328813306762563064461091470173886933593167252878499465779087612436729475555496601937572780377937621589831841899410310903666469755635085724861580112968094763254850089917233348405982063054253997822941747256873468206532587117867146484087808753915066653266218063817349097897556328438462380669230847695614078841796443696645500767423724084797888305311555937218358104134809563703722831933487789439650017512750399936793034820302718352627813768670270996980713210276275825883636542804975604878772100716903068750743799790642883105271037177708998977820764465307719270886184509955721390744278401361826595758308475980076098621358755594027367969996565561048043443505670938363691062807030726405570179260051168266849096664137823773573496258047333100660268293022516879578684509303832780318813872762264605376184735264405622721785750418517507430738733878222787580219406473763209316200292827376025165234927848164302039240347369653738996947045568709417321189454445523967529472487863244194118068795099879143396317839352185776424713381282811548360804071860316868018684528354408177947445721637723433370273249826495010936292197048402328206363186032760714499309168427241086667979051944971043510718482465198192264782728645249780854985333429616629211959918401061915595096967998785934249911172631472586176593781014870703463662756764044053155988527333417402673237898806350945706738443133555265547471085446907006432679690530335699436140679323982336750498193230487071270411232407197710137451859724114153069435173646677541767183403704415478668128525498167443733618513256447772255131552165765054847114384886489553137289205369330416249645832037525034560004120077814815206570649350231298653006479801517624400679333999972489548634851918222676427880337443142469955862672312888155739667540683861587755303889491379801726072684897438812980498029397250788227368279178231111810750823307521026808050278561287026668305955815906118306461170209342348568996608663576440653895508123388393295942159171970265036207679185670881108401907314273852740772846525586168539495380952755285687254107983482615922569154041877889774005034402837760619188445394019654324145302958456863843652444251049398257538899168650880616542804745724853579284753722733366708375773574747615199183202457362930681958268882971965629304675796412853879044516387437089113987951393959869642833043146805144020739544425796288796898108809495721472905746155464602845285581173814726652908304948412835192811377620162349666595957267304090909009015353156833324495742417238663952116489760820283213732707241078507182663286627256884988319979116652848073061461575020585131979620948911075434857330191125763340885825588171312589494994808938624252318946753605865759498859587376703176011156214962551533464422430151222801049738098296914881887211788994387523297932089535892786342398991031310573480500082424594920649891378656807391913077781220800576531823777796992905070062057307512758467880607852911172620125292574382234110358353005871294330849533550686804918385915411441524063312443946429477666945538722029308827782611278762770362860763124914541397633129430465121580392780393023996449229301117165212895837442291619244845163024834707222553956958969209662644930355525172490874398884517398613131872582166835263511768818855002916272334325980470098928449066229656586700906828909069483296572029522734551310203931657788141440858113755419458367048553950171802884227753873259198001574404427478313710624490825582953163768819333577697768375839835163758256970850949531610792925731841513719832042702142573195268903508577460772969297023017303255943705732264723289908221722435517247256757945009776851165243971860253433190397747032064549956334598134966798340479775395088550817560800898192763358505170601787066937053722729190294359906587520428009769835510437643277206187879446965709665542909923091446012760676260968838636889482569843645097943053961276775037098627299860261774162190923724102118801508387990792453070536685071876163696092428437763676031928688075915248281710849201029876599759186121883159480918548499289737410877064208951763397771406153810289994214799923232164976572580970531108546923309327975238624855881362836524750216960290690955333953518985874048623672077102678982487022049776104278771228970131851215442417941335681969281106741096072801467240918377608020557489801895999594401836535423762629186574301226761063200176049048246095729303429163486098524700269567631435938836718421750714582168319911315234560868343485395170332597369146886945347249370197869071972749620526088087031350918720699633399302886665151288797371313809221018382340316983502062926115196026007146239394973310283246368016116102748516620516396127236737143044743369391400035318564319746924866111608914840359391353416856526822471357961147148955659725130332125642649791016451751700035886992322763216449676028274414654588977283237054311302166385733339140274489861338117713212948172041946684267321842994662852625394703899744006946391021084771070837145912107005686049305938506124973995177585377155864694926454396594930005617092212437912869213277619979451586385077181889004881118152331928361728564430759842379729470723135472379399555394658476106794381855869964965693055670061625425499421460032171618836996150776865405318034100638903469698599322642428591467874793928039017060108483978580798381137842772332783997122928680011956060044940337428446087746605263669689646709469133302589370030719586931480516239757576277680213786981081128632820940599625144775907023473372530829436821257764132804350781851323439799777115982851420888805496482742459933209077972353397845523777344435832691196615210180559612260490565707929327021028297583120960892008160547425024838168030247038716066064976543453284549929763450635734808667528508962857233986007774580682041682122652637418424236096669982925009980819639413786228354805920470783582769666250904389795949673718855900220606119185015350765296027753395710803556618563439654825666408894638416512566122743503653982894783299269674981361989572699151452773595880866048839625974890660885680978803296002646081480346030583059542189760104806352683221174781558797692993510324934947679340011183529516401847303053205343333830311214273496089917536073695785401111271351539604120067357565629590704949445734479371118867769461483665213238491629827406763554883455590204327926605235168522075962207595453031924792633604557073010185751877201220977543108746720090901756139356248722625157813275643996171120033180011628418966782142487544324503189460642344972365204793000365528550009423301329887075794524103344114678372963091255061509906667895911870603815376800214594853776076563189429817952109930493204145711698620387106594764670547788941545643286040319451117936470955249804729527697004978721837661132231102297205241622210759750545960371500544374158855291582792997588495460138303701429672492082664235012625084166046167540870313429935266351011063532930938910062939379559156989024147871894568521398960375915298657415737934302298210928130100676582798040763544669828830027652136521987938146604117676405951103338288608745628395962054537313025845777553099991936140882727516437473747973529763143884624310972334141301853927433253188728119034530841429550081385698930540462717529915951311298591125167658272895590803866527617310773653560009802374914990603924526646676331110586401693181921461729819390726313197009594254102941194637125934240080304789622866823694253858265385038158171039253852534438989537478981841414159508856602725958471523728717986189060714776034789223686749683658704474481763637542123626039642290927173055694425796014593270098897664369783880295120463035316357105638228214462279082920817893656681198508838968807130183796997752483606950642618687822579120555290212094974447553109036430111858120209446083257293298354009235996166764738180593837911845147218619428619681077788124357895079094145297428936083036208946299872817675955459263634067016382669519200697221592458343303302857291632739051715244380747552741073081469974113502014757563093884208255785291850594167520144254921256929015101957124412011389974649631042470001165564868838687849481798433228031113920444346270104544381414569447072429343085469981018224513396540003924205619712299156127306191834082011295990556487447305025626225495555295024663318674510991234843354669541969593776451870080805136747751619689477482195872485982721181417676108477833812317211464382684400135157415377310708944840562208684748911618148600365046066175696200329497189507154168613758818537369431692808130690129799268362902818710871846470647757331981937296913310828253474889600633592146868123707306834355372737402208096868854737769059567894359894600936378767974161224776299359139736745217565282344835163661624710276365784739584801935479011208859661072547048709088652293246683860502132289803226353895467007143732103713526380759872812678268032481869567489302625715334715970527119266343652992237094684299898831516790881351718537997816405406455029235837027653354737696897622594866143558322674633859429006016782966256355461745256801039926930734855279930846019387434877532557329984309122018005379276101930724007212795468812508999824643332162474163314408852465959827954107925229171339882809440646996014517258966234326548974852500788757384827726170077850884459975596539275591289453419861514983688071992408090029582342823639222089865916029945304359937424383118378164777423959326674881405566006783660640690511150521314381264907405835082534911337413294999754787166255304388752849697294136312837261740971107642674710285905911414497219886278767278644663451743141567678774393024861577649307383542616138562648467719580954463085255051408456467130909627263395310637848187403932189977151193794863895547398201775855972948930781894077787370456888655198751824001433552962155125707634853084611546604697709819989946463567231586598709363463109089171068666976757132249260523522667273655946205904569556855943699312682999281447071767348027960649427057362134256669803191959439276838861134477692970474362171487863903037283258646271434723443860344607008735496010535329522368332115642714109627521380579850033370585956893019272944197551257621568682524926510267075615144462510604748045886873410413440009329536968778274074220560430069689483609710260469840437786092848505888704868517635047831653228387459197623047648454920637369642969975783270564774654624732240550537539641427936026910641417565080461767172490066579360226972785981234284093267211880005776055074914029051199770935962392689071485387501216150015792320947815508266665342702926437373992030147047783963405866809502508696404951929615613150216292526382979939350896333082402141056948816995756477218778501308978021205655746217137184486271486302398010870826198430424029115152383327145242411021022163915350683529104180376119484125642247511961866963624815827107387454355462701848969829060816609240234802128441566351276003420723516161368173919631654245632615023070888947211526780086554004600355751610133561778244803858552441550800651704193656080117425360607110022805730553926420141490128091456349355057230378958115926197483239847316194022574575466695770025320357889909822546050260170187946897790048951553099189059525920002255730324909256985297904309620757477381043307325755659906889203356463006623329648814489014589221346684178255059885566210279689511578900088256490539779280816715535436255679510042635502595605439154901156590099024689966773885550314209463133480880310162919889066740003576704267291841514241201135279166705377210189983541509456085482639968977878136793321631341374116188571349971769599245911278433858244220138225642665564166899781324617628476271073888956786839103412972783612758491648153728924996063332302997018992430275608349583671700721298602306240733593503416527301687126913979152141958764000416800512096834799775211920370035188595104500634226847985980479268861636983338675276324047972865353710886980091978046204646304585979452571258717768498945416573105886537174756462405332940210391212268324926405363772018351478779732153762398360059501694878620696756685694810786561973127081404828661162086579047761222813915443942998048608768370933517971060152382572074575638785792175369082135623054214887190484340461209645646328456497453868447262115340789705299651601673333718062412017476204059532092696109029606791546838925137296554069868556376098260489078286353851341106049953220271935889824363199663195793575644499868202695507194618398674884931428341706262377593906760723823748354713814867389271131565920366949128742953741315115921558853112180524884155943171638232687979262811215782207332615900950866320320737926511842598448499974177995660100804712710337835998369772356779009918590832259932073263787637433586257491138658810027321082170103075543557503129867217495896073930492199351360051048828742588178980627557761946674182341132624222709173594137513814052081716446857676945058161864046678021605967061976281790916712943551110216036405306632208468426907938791617490944107452758996114568626972440781413370968278241598803532575243696991420663527585648805558594683083274784940570505822795177097141277183932727864262446159786204986269061713542471906578115900606173095434920496720273355548806022221576009986560469961198738616360900215542200925171236822196648842804472092288397174154855766176062553412794411520390574598883221030421056282963641290628660012640225512541444339470248436686295343599588593126397233754229292329720266794633747347169305556540840063875020895063005797703016441226014890687301235602670803576777317991355611141667865591406598113797498726088060792990589515579117970472073016987867110961320909788728713596312563951584886743651692765626480538528903636789548319183978432904697282729945092898719312136677055655774640337299260636002928865461996552554909988574752195881255055512302483655763536393819146251210070430200702248622785582738409799626026342301258700934804048574142565008179369802235110431715126377502872249302984975309808032000918002476216368604234656734809358650332744135116173741201735627640297977804917219424808353524992086527756734970229550835349600917176368496632240509936051166502967918355240416400571242480547919586881179103873363914463658038817362989258456681140822467605260693971585020631582084999272517284473674351693942900269557092582663892073342168917567711607353813055133251989707930475363327143899725983865284596766659500321446343862139372338677159810249265744080223551282780435619553126271411478883302008664717845799831476346851060671370244402002546496143411018317320380993610258156536621620703909082177164303315703701134065965085240423912668786026350483829619976860611486824271272364235430965483201325223168159745900541054328166679366874770214635753321350625830515245971847342598418518843119874688838867794993068209359342480854055081772728189296939887317045125773520085006892652491467695535356929756215413279469420673374793575490683847916020179968458535203181200547627893080709189049445145960834634985480839497979697122436710897666766687699049447555535968938175254434990025293366152100994299735947477209369265872242687911580828529649696033191490817263162480156997515565297778258528999735846170049892120757477778244078376547128390195008947301080911875002254666998251839494969844949030230140921748208199469688609905429229832100430468178792287557263767800849188168288892963701645980015898726562292331837983502267780302979905768642469203376642524857719534283339694076414562382270502887069560636827196767608000595312541815378971324256649947142044407411486833523187681508089788640983240943748120616926650098464206657188236912646441421684499450344922171743912667689918841940747226112082311191657851694599222969120190585865980539697600700329738563806146918928766106209331566585272144496256924568058668227038363305731133263855917323350646960361265892210220089055320765358153240208691904194671288123549380724868647901375787330520534994533398501270445124256229892206447531122697061823673576700980044974634607900047068321583238158186658047256711012600784876475043224625222072673423574450911209182140975259270642162895416227407665657244866707656565126472343913573109497599277143397242473400794236627512516700630583638897019740485322151134457780494850123773801069790259655988078631873168369775483994554617460822460121928684959030402364489858839366031381933276027694944989359950228565579797684181507725702742648502684043707857952662435986881964046103197355644340226799115335381606018839951046160083362409567131944638547024736217100881237788174241379184310156606991026256332829424766243140170874579743058649600163218354140794748943999040995139940236122287516784577967928429572818756544931910070796766272737874743244951402322444469172445774155816985710877914318953066822015803493595573413126241341133479701461950470304963058127035278252536782958408073295882620151313317578039897006289145674125295388164692284026341050385458705863766121019251348535611500861026644660596039251394543114778273483836062615988747073738477059494259011075172309401784809563137615172313558673995581585689816566601822272063518595625331860582413445887078569058161832360916476790063342943397741199189175742283315317405620542915829990775392836519547465912018576473015278815604262887885613204181427111180548890276374080116934310306064342421759901793781703713767256552961903370460092753131357362244299144854803591357609254207344581756565885327835170726931473886732696284568730684563777204772078828090503442993901957752805054356898490659653460855693546159904671397932875240304898894228357526504486347094788270495620010778889118261220182095037792876961621396047332296617453505226458130822188078411298695439662787300277342319362797774210248869985380563986032562644656408427422988647015965382185108638499953664420018678247000055229310755208155210951196566263490301139532225895086687589774762640894135215450430933878821581219880510031005531903487973697969393156949055705526738294087463696747300761500218998736842458930203516102759153494514554869027431090994835819771970677985875753930905595050773452967009520869535310097941498904996718611420695398953809049648746303785327077213123464482287262219415082492064109946601146655645026888231660957054970672477115329176870740010517567174451208335221221139104268145883764595754360281156965310626387293502224525388395979229365661443880580873016659725390051901054681981542100755744074928408455328416734695986380130784301377741647552214380409565101546634361143604657950250491868122239475088347513271930928197457634405653013546320231274019844485150981718421517831767173035006446701034872777019858665497335658999689173534796633932597290122072067730866520186246476858122832518314729566192557203947699695945516231141598613562567471805141675963394604002223454962961387460880506874782676774887701308105867299693007451257961562837728813257113286781794065113137084670279545519162001486298478408414921339197680172456894696244586624998380267787845426997747605553154133919164797043717726245686247389903111405305496812059880505024293182090529194616633653427360731867767637457633040855877189075110469558126278556932061033389353124367962201682674354579486675214433867698298964143417443932324751366966997082800332655278283514366255033483575423467937637110104406387755714672014453349189589479423760252758079200067269197428821917842613258177309223202223207824710056486217431513117630045132021616920260674239667351136802627545394298278477411375408955639579592955277884158045587969556680470952747610457575863717464129969122063861999882154513053546091807329322483417813202277336141863246493699188222342727263614308750227909839510966039062263056868512620477230589289420932465984312377276742202380258595146463488355411048873339722355795725269391928304250393370347254169780882400024670480701592019216301463472200279982411277834824562972123852649166561846570544437684301622048176035116277158081595012456194365295883805782503119449635392662608484266319219703443433799601757221118578857148411728920227336490057558777180395399156997960223332074081050618160867797534958405381014156522667198916511332588353940655653812655592581282913955027294161928795267161215728939938690373314732950795869093543569155325019112315505846288461505190428980726774877319290739166207309024529118129833353815322551676992705311586541316016265797967124734116258456941820377293229939879098993242488610999185716370642194128145652983750262214075396574820715809269744966395508270980376842210823601113819070158291473126430603999457284308257084614935184270117080787471752938897960458179489958616386768852563447601610434172294734766151991491656371912672334560838054695318497730690558701722190845822166531679693717290155076619085790203937910525230749226728722808850015025278312293042358167006909673232365837527448871323642335483427725735289986953786398685210944189501847226401894806517884109215903435545697794407403582771887363576820167368033751045121176514083087501771376486880107805481279819385273871595619460808764342040112336895880305896987160858589622858504717626491775753154790490737820051640631505332481942757980487699162255023669395023551467552927034061927438141831925840620548322139069777281722001520533846356710032542971911573867218599862590944492939901777780177424244873445140679070724549552913672211014540482152126935890025404158728542469333138206744089374215420494156243051506752294162748418465833495503758338011817276731824988969654884313726337488345023872666823520515535065974545607647151308017737170771563976302329720946173307400201216722546176932200963980608847135150146268826452598548870516822298335585368576817231349476969918098415727423653540487184674148835244518045552612623958579011082589833583796183451482253599428359824524773978023809669091093046210740127307072304199364931379860027673793085660935970030888417569442123258110451304157642705146288846607997168542952014097483718952730625406270660186822716772223120553974514603405674273138721008666950529845826157293943819378405686075472652447798782635367828130499260455885136291736217830486340113720820320824062922961287662981513107739902853684728429147900534050025462024916676011878068650145730746743941763587852466145080867801846382329247432307997191569022603122801982624222291157309379294969733216653663794182440097898934006934631653892206420701830458863525802269776105983832453964033584058900985899342202090704881252040132726971831440864528353385979659878124973806486880174405458253615544947088276096139869510534408678714743597380613176637149299700668753000943062839143223446300621932231055256465174498801198670465141803714199513609332825378347799378606208112482817739736096209951398186893186565525742893970154716089810421096133456448161481519163466164730497665268404063627989705092448899702110589278662507334339215292960536454971717937568834588270519373120507541348282991390887774868132180713637868000925439794402250686610111195479384483544580854429555546839254691796218315943640584159276990733191871763334206634053563666931148776603881900921490270308833461005742418399073452611154490919678627984812784889682317563865862562823616696917146032026731244074319056524439856940823462752983305181471552741295635509707785814844223659711272862566635093501627966734021124425295596975485159572319809040251972590355456519982609331624468789159064652776461606110401374087970753199516034982525194266684434625892101265623880908060955238895958979812662756236012194409598983022179025539921503725750240607095372843371262504180413967030458660061716349344012646830890556211181877999689427054095732377235003460332535317274323680947095990350613843947057176706269170738733019026237927827026112668516684711117462490388324520865565651913765574058024694920934333448226972024100742127881420420003807283871197017325481483947229175730121526730348027451538528889562241297779693426922884535456336433809475177224507768679746110576422752704253539245983799160858733345369706823878272278458074676269147948611018051217162525022346138538045142275570444440052859589327291996148305099969415218866119779748146956241438347899468055106655802347430875875491130652871892424774551390863489477728106332773423746165382000627638485103803380239821495556799074872160553027722680381179182988336663206937714464414086259533664890176934663810956259860735327544382680487447131026071276611808492070174611281263050890285552471640789885562029586576926336038052064072806320611138972627562736744045253955555676348568785778446605359379054271508147933920760418601592090001767950286196287105132313641571423471855425736728067152631849413424120999233262326140891188234868633630506750406302226134217086309938842430759994114962540019794827053031641495113708497942021100675983187851485269189956543626694838732323012307796677836859216707069050111765583906389459870953743613074427118672726443355972053011965863272821614752517949991365872552109946019082233456343769973216380168190454115270677206585777806846962450032921301603876417917564674632641606797285830652881021786553084317315964616760913571119463657417852611398003610224136397498522983349505605399188151647667698569104352088916963942743069716398139257750092804581358001047078816999350342403466824351502318893078735427806338912404469521456749033068908897342875755531095077129962733585658789747707542618227099268550504704869630121947646914202823286722995557890899884716675472851172648445043827084624991116877185089573478986029625813958907458612964697114629624343071165009167770898401324628633863096487328114202003015786627045575487589693511500392471156936558635871815112199685079079286382472215664322336701003566780378384829625784574520893283388709356901064502177352513041122804499152760638114328090966941912028814339122140960660453510685263858779314947058577227262396637761972533010116112437580523213738923820027784885279245685801702642706611270951205823799530621630682572079483974783741640554435951174667664754292817881745280569932165812351435978303566816587188961310890974597441078366331323890537712806726483241801457277629013731181430659966577454611444274800561463666232543721947634893191791665550002485847986759626293704854103257675284037047622760682237759679528159643625206495323380637244454052922353916507508627618344184199309348000293555676846999928065577276275503223769966865837054233119747759877313362264938458250147418112343608694079934826783255709354188837846428581128594938126534286351499088963476803225028449139679005330515710038557973356793058507168822076095905050939064219991525025826133981433065121432477738542131808991898487165028030346747492910714535111861778120984677732752318987587799424785400001561596502805931800716017724068663656371397398985333230137303488305698539546569056498578148937217984091288276793765110246638690413872038331403453762552912447783018806259777004003440697308404070904706074954575821098425454358598892713489920643932431702220989851943095788018738937306297492166272077843554153659963679795548594382803418086501522573215127023302002652944885417603102464230937866464081907300544908279144324487756429575620856788407392996409091264208614525006206947006567154931202853460642864383993490631626815042758863385551435358422793656008395689478469941641848293674892806308005667779300621803463242269478051184626817926532009010173340354369187738875318304767574179374030664348225458122892815077783518055976580826898346178338602003637815584619238465439294699873856863291762502864449121777395287139417010781179747424397219282932701159778055684620380456183334729066889177479124799210380107558280795328242534365464079368358035910718095842306186511537926965350583588103696190139183040301260236066628200919801807590058367608317690470518663965395951971684022663613545174227580266871754258876655226115969641936523431202078909520790167846903829171841929885322754480003606352094006229702814815963418187198249260214239146304946860353650122787748600018152358210909974794386104209354038256217551510604011851901970798197480700756720128577315659026726385352400991444714617035638417113812762441589169918299510105193012994220321203899655992949771116909370973670530812665086602083087547727684009582607166053664929931215433955350722004524542308520580613277563584935842611900446030935163392113869060310686780752862967949061123877833339783538694183432590889355627265921914362434773858510470788676974281641758482724687667345622393999192507350541303274026059267149420663769370594757490375829882320631189246138443314712521442883682521583541400486268435225230665476875484812089643863736054797636125726793364755710300363153984979617163437025050846126068487764372651672344217663981065261625200256420251090310006142512656181591196016245032059773118868411036475170554064953671074346441039720220501042651887758974684406195758325036032779751385680536658793825170488267816547926961392120034932692056840323744596700606023529493063176904743042216374791759432512089777414900503620198962221393310339517998512104997089449795746789589517111961367435738471092911696041060160633465891257294438012629031037720542969782252037045798504189928962032179775323430344934360154529715902201902541783679509341416985704283526460027902498380433640055026805836175518419599581628770991384722120168909711257252972591777336123740989094071258674911887633842395881385882401435623478994073232195770606369792351829606851082050802094374924784844278526604922896835118625811555999348724063900145324922719746702389315641118591839547855634062450105321364040575093467000708380247444658563988093554313383477004855919111673366012209337156925344157243785919949062496128612063594922467931605406871104859875514629809206619552601138476202032623086882814767028734098413638044476708481029821866945253434187734265755468342453237069561454371223277946130511136258306967558503750607664006847719222026206224531919415779971000755053793609328849808607611886114240258377047092621971436176877139897967121080846254802081820077781245725500204687390804297547915550011565626264175012601814681729763108054259411387079545684522555478013532886888706629426851220583937274067195931279693080596885099147063505468677237195710583362448055764644985396520531124073171595856290179546260114366257927670772980449613107893725092162269795160398784672678938773796701110928631499161204243213400426791789774590933028043429378458371826256271487081209399854931282588881400222581868972314872202839372662334155045532499304809605049141477370675080368962439550579772426508643943303749257185084414043906814950887767134680163666682282128553808817974442140624353520096930933317847752213016898396108329437460590700548620287391906287978886141127314275691767669500992698600039156001101157447706973073089383645623585605998033484423389441015924636762046792134778228967831017646176723137473495070105439013592629266731397147941663682945249364276842032288985426188228015986435944517939981201304948669951112466807740865362841537446698922543493177813913247543835967703878076447271480367391603848689225002249971087731113246356584521577096297410191666628202187290690241479094220511778600746646799985998275795424598333891684831750694648998226049223717460885753856986011085790600350710654895272127331693887938310416740905682765793165910628774773190338312829445376492530430166910317912514985824162650265776411000050585849167401414685240956978191168802110002249574687565221302025521851838266637475294720408104781392589723006667868290705715473363246091873320220449011073093849098862431686499058611504786106217791311472096773521610938194807738134287513533518302793700902680338404584302737811892066008111030952099419422623598309548497131865946833825263830145237122491595177115130300449464163740637190938603556413267981454636494438871064351156674124649282946276900063397237676268421740399695234584842042971822477467160727825831774112971630521293626132734756263108569573890601800603602299776420695417147682126951850211635232109076836092502966751130534228604726158344464075235627811814311848504065874772863239456144087544867167437625037347770140351811025089415786046017191967331578259234400936049105446572582927530315402649485923875601362788274711101026151979398003438396537988395756900759485993293245605267484163118015668763327974942598416780886131952487488413631525105856736824182972933040177925711976570485985507243154140095799986500336823654263153410850022975638848782328785948556392499257857022790288753334799111513655509806325658524600400638099151653323207178144841871879440359184631929961303662868586893750287530582280465359945530248064291884445626702572392489716131888387957734882120696158108506692850342819379998476167351566214778455069286820282959385074241198107718278338919522988866302471415823866548407314809728356075860122357469437419542532309564928327909276246230435735000397278576020942406886182034843544663398665418755068024402269738881555317424386953286196146877603592621524276489341203135710719716328481605539631929389967492448003929950254716836899122123617562188829881752531821409130314301722906640935034383243262175540974469672406772019346937643211345017271987928846811732486472671368350325593320745010154097319659638552040133992251965975605298852659941499394065213845122335284886002280328219609700657214456884307460476798981372396199004968644829674768175948103720745644383946268191606742602647294830402412465023605230925636338559825554045299141280400758260519675915090100705275310870164220620860208129467473324720879700650926416219887430040848387848930418390077959271163745736938112340412682909348143014944879275756156263975355059359583156309498406557823518224119208135443633807569755015480982384308408689393916157736545046183382155268557409152834281665590872789948625152776607024900121290239585216802746059609296812021181991927701664008585689966067520310349348829134298643022194875595456430744711094843504817074079253908663583871536436133117077419570353907362825336893476531319878203441927834646261383607461729034914545287320108974248569990901876729640449719441619632544629192143519923772623063725209712044456947425900045991986186064144371194914428056913350224975970048573679387876579819981366596524253021485272955311435235569103935516047864117807629615686580215425929901305699321623494996393769460951728020334841291330636284708683673423745747682804011325763959093631989663546647308278495830003174550003464412305499505388734732437865684861772954112293040283760658375169999868814759870613721972416722241720833358158749042629045634112498620949305077794115691442586838524302155469408184367163237883171360711505571514006840896399265479021532953842758778008946843396657042221382020950744432956419533949558021836018920549187255172455461737467139740397179409965544631620428794025522125147437733630468457342510437877208993372047637360764870906002521911358346154413135811424381265828646665382476506431371201112044915835950821893552910502697544476911005404821748896008611026541085852994272196222525333205298994993170587459048080423113340749375988601994029641761676047804928500622135940746559245476930676307906621963370918004112113436618995871490045058702113783479189174668184888353011518664978153601538422717015178539089690286065258571384366746191008929229182206581760969926243120919269183643237052110314841140164817180966147792948239126738386531287525751932121789757468718566147517161541628596280271558558233957630522919077492208780222898827657144584364004405877042311919973465171394751520295461198320315388514057742543798182587745814410716159453862614065061775112136839091078529399262267097306615957884810716020344269421602158337095843253962873854579412942733242637389678613900004629317912676371470771015524946800128877742718237810176164830183969956918416219479465796456225136883246192239738777595067928937039529699148279487254609195122153828938089791254247066714990927998383354887375459857066544549470655782868745989174085423470568148666513426630517618708697589048234621676212623790376344667159547154539031106626912883400335010774277964780998425737754337581228289669263842719529484116115407733053961013962229051366734260225040725381059447701330651922315503718185101949827315316225243860996757267849191619985696058270240331065457900567510391554852127064252660352000336265585986154908899669927603888228881607323840784434923826501388415480952921387119022264512407127807987448426182057131944989220628205606984835621372317519752095308712976091380946592095817594507221305441142739752629302135531876019621053963583238972001417431628054732283983696190328533732006071557959529364008371667014706300128783654392047513566530947083959620613458392682934323983619035509661344732250234669253067700259887119819246090992351371569225712921099441147722372895891481513267915572844013048428391505826995930210446470321303969174074797201089375627687015866751567462916988555901458591172922824774590300725346815213519977265382301088851161514420839514586888685155696432896395052633715777382693298331362445188791858612534550662715008915043237594300008589928137738394648013129574110295171771737008412403321293486135250221379290882879611608364907537035158741881576692068571253745687887724802110047459601567876618044241467939168013827984506361353648519605772900785530383376247788187295104032931982164545072860785967614123794270680016630503557574840298085881292659555968650476724518491113146146779646836015377882615693080880238258602102204425071838843507687211728712100081206532884820469776372092961423046419855594124401470767586520568262117926646526738129257925461692112515234974920863321429451477414522384449567197510457174111605391521802770146571780570290032135419421459317154061399457152158650770473009739378894891517445868253681071410959664241190963436108023615264147928204870540797772712806887093402857097002153694229535688900930775503752978934301234685198892702483334254425859602122657364494350166615897067911005408070036143847372640639913324918769382608838621635293701213150409423934639967192032098947598004724632487938323771296897766472686762449055726586540262712732476250937082391450111622460356478968525473258328708328991832612544426620334498415422917797206719035724328141813575388754609075270245518459886769631605556372237435184838524365232176126964528421528511724047319554543415192290966051496768194483924928201107661125692998149821643725012443778447621646761784501784526703850227365310741380646525649535869346716779401601307903953638167953205455654627873997330366067698196898442611600551269975671110188850016269538224056460411457733962729551095483549961262626276029742987333362134384103243444890499824343125002776356142546050168623353956362667670661147958990101839890993757428292728307622026698240385533230378481305075315253079336865617522277996921050594970095094719318366785062484886014828725108357083367577548950386930590170118225802585713242713440316765771902442924482386770310230809686667620438880763748400195719684654595173809311991365666624512281028740494558615779626069101840465806331611520985967428255501060330317585127339267670309783108325773775480084601147884619256360285795789012027292547767314997413323816987688700720106540505510413857304515978956531627680964162384744675882951676766746361157323824577952559429546713533685260079940020467719819625932258880748244107543791949371626827700535257825784233086356482147936888776486489572482170055874475090631765993929139408400639318279054236319237039780216266817801886691389968115575200448387024352619804472772774628019425217735025589302542536098730024735239394043844815779101763659591864364187984849291654093851624435877386085595039908691867426597672756981840530528988355084932510466821247621453691182503799816355215770573848226539471005532896272115985695256106360220986499722658717947564475312346065055234134208380402665154598734661104030318155851258812209391523729381852473466223400519366114867675653604388378121690188157718077226715796488775709413089689122749973442654636748539377273212303763817335864218443285896000086283416710477931222518227724904661847508526346492465178094521517836790803083595170999507724010363800167038060749757784025058975894394252270646438442523792477929914531236969708729082197570205110926190986312288994262387087842689573252533759205739031533050481936238660020267899874958034003650391347671318927965023760833266437804973932110862558999525538346443926860033526194469012450149240655533507703285061020856267425981205601499795792271687817641796070297644398310460071044957066169014855601708541218141525042848468065549596700270061145133875423901878399614309519585500383366036887663547598153755562611291752755213035590049407515324615986122780739605451034749317718053099566287121937848252828666457117553143924837469487217009597420636904738944519412004177955232357619745489269872472173598640111807856467515963709399308421939025636409219698604721479757631777750465008655431247481192862288733957152081321034365161178490729729912807031532502131324983458034785965176555410780296134536367364332693047065006210993721676909313571003785978562861351202709233192506490766490310028789398056778052701970750714903002595668487504477921350603103798859116431798074480525401802712755819892496266762254032949294058261437534927749467294140456354980970344363939766793581019881944216518410855039773750111693076802926931576263601476893414241436073354025301371516357057273588453146142907898631804955033072446250655917706436352367305256163452857447342385387327245758436831492653605556298570468443512887798755700357805867174179717878795434118201724609756646734787597354957967269061975166894215390951549902789913043111581686057284018834169523478149529282807230838155469318572686034258297634207877689233166195598986105428980100358508648530762302905184382292491360509738041990197434786457081378480008813552138751986320753434369059979501188405564776538525810337370610149587251989402336493959901769062340258635124619959536746817344340372177089967762369344478959697766357258684613150286817223606767285848063827721390287674330017827469164443717660741591185067655734917524850452566675823733136948966229382054386246432118852586779471096731439397835162386656491714394878167835839044004719483740489660032729025428451584385800768197950390319864941704432538242000992902161227151033872925019532397910827869229217541788399575100099453479330875659048475706490245237932659980613177288174810448535087555950478789411085135795305094297817742864072658999083219112434078574495225332983186892933110042868948636656897617131738333735296144196256827204984833141905782599521964033911437436613137845658807802478816510771256302258919610880331174096331469608223070070136692828558982352941727849420512313632234436033447458663635758268324073416795662935088173252035321004735511743271860922329891745337927955954169845078104929914582107591880313902198071641867449655187676677722096207911222613033944390649274693897263024484267081483320407317336462034333017079683157381493273208768086513948485293416513126146160559218619224155311245694107479656577557567179509372500242820314011488518614720284594248557658140162227389874658953063409788445045833924529598001829852221235932989692456137402970830364711683690959761775270857019726103869372545043140420160366560897302029862241328479923664876072406209684870973630753731927534495500285041733640250710343425338314234135322132774509588706315054585364801167896189332281591203618420037915431051010319599076312844300822368064534404301500683887830128927322481888047139065996349095886250938763400482848220086172775358879955620532218631961466901168821279395359525048469592562630754598148608109084486952332353954107350335435159187016276021858303475820113375937667950334207873716662257061727153441825051381623608061871220099492842811119316244062756718788855279715668699972665366606580426436619127510745926025527682135948297624897117887775585696887280080017603367873126874480912643677009325809500955908280961922012367829657034190208099048012588855269124800781258864544235307360158449063781734040356801567790000086483287326334664722408742493723673482862733640486169228061195599265069999027482914351394230117080407292536077348226501036106943602457345063441058777219060997720714512626861173638900244686808657287507101235543628319881895056842074024442656769358388622745026239823635434592918220534281210234137158913144282999071272906703654357025467629791271997253389707109922233042610602101292817521418553348011587498724300291016032272635016785095679934878310534427488668849110157969692960524146519503078358362623123658987697224850619030472811141444061181524876465166978483340562583753595710779740722519337711889252375992286183898983758364939268526234060983631517358773062861321373108192603168734082534334448631538067857661537829295378573337594208608978406607696274338130334383282971751419709943678026565885371149329426024870709470450976821971255471402995525158329863142801542617577978076212278518864861398601513974388037107857424936841489568378377371130362661642216197292594827733569332414757509633903857961667594773300850453839660261801911246590884328950133469888532417705913957776811800580799761738116429499829973530237457334500179479499913301059059569482223565057620667139994656623538171577193285634961053344460709870682634404655262717891911094964291477757097796221504407257691746355865666676833902363897017524134809336337057072971402271979015754896355757274133829961297606675398143481965417589106989760065048414062571480409614352728961730665664811402637073398935172490677645620092942407492145869673117735647521682364487337250142466786536247035141426670418211755745891224221741908041130044995080585634125354772757177365973726958773779027209671815829236911371468908409978371732328886674218018406710858189945694834747127862363164994029926845530449970998380612477600180852602382907958428624599545187009814656511210452827411044223604209703352559026655835796906409607687200635426084271499579605531953977891411544532426853623885523345382901421697175238566783285384274995030375094970831927132306606054968619639266454025271661949404090685777337083227091414126726058695597115043874968761787767139179632759194853349217500316619150777631642811657897490554105242841164064606189288878798615767836880372927274387449988612084860607551129282547458995493865070133450667896380724335525991232833016437766286512386415899394136137063108575398014179068850630110248178142172386046634434637362112979638970481460451095423434336772159415326702859965482821132796753351887920448505166511690655992695749001970295323309330102014340267832417216366363682439161086595101019088555576176679449987804732754720499517593265405201895194801421116754249025408853702264909552711509445737437786536395893300252507337940046139209247471810912695187168666328647950483997518461311415845270280887261058459164504099264078842425552384318036164487271531353743511268730833786232491580040459156355492895487667794407822152340490700015382775676426696030008285188636154792434246453780613636164726367728554804794643145934140689869790967559068530487676552716653886412661334302402165476383981694979606583011893900281742089134556777005273158685786655543297190399668184201120655264806407850803814845525885330282300306093409820064548976283424298045346301399196233745338137942507298113833072785014365621132926552909505311720730110977458271848715616646275712353140535572685420783232597448685498282632194572790661722726349518258958188326696405572512738411605195298779960385476958883000435771109598578223711158150638619110011084523192491130266820666129870412840982589705790455563088603443795573065027298268048856231206893677616707210935880366093398097324864885965044162123589788752519517144101603120049944683462194823787745651058871763480704756425418501929900609979413341203732147602231947555175152557171348021855344727650813570316968159085192659427139842908392312626594864187703799994887752670165688498784051841538779760908674825526975607602293256258518272860711243841824985060729683664169413176280893566872034940472134758771487592390398275173570248497690818056913725527462262248825056848700180179772687537767436471121529490788836544885494081674170878350146785901248373800517149337844764256862090077427035949664138433618960516259610852699125533929903175406465257434972990892095588917741129087755814597698201394148503241540756723788104273567834627485487782088559872054474697569416418894896473826407025391760084598483831411463701877534553487230591864843335887669941525741379712645460468921541567368940156973955622994309732669982107034779881303932520433942046764452594993497401449117108259365206634464783776649935523795159506526748667532034893274037261847418451022233513772221240456277797553358240891491210274497536908236481507225970183969551861397424714994405223815358736312345726567139766786858880277185860984227591537629032503265161834227242670362591689859173980277322092610644023018853148400182251246445745425628032453904675215832434043264502700103893626156143826452364992253392296848769524536398421051124383531803168313858272098038396768652726395005586360288796396246333465909347576725189975088346577514328552004722323420652097707335784895839907656971765384563990693148877801339844223984747555094764576281122091292731463441299077659118718487399109888557514197470286199141991256176836164111120421897811335156797409066805099564950366607050431042850957560898452433041425582045314521993578023395148698810525318177447252605232394066504453218604542263054730007757995604790759095072889166043320537175834052755175542472984291615065361947005152966910713498726166687656772939522696007993110272306601728018798559645922969543997317072606976188095196630113751076052220852382231617934344685007592377978622734957237886212264819648052213714249082256537994442695324371020037087083379432518205949421504726650740287537789009121309828223683244519717232987471275735649225084969805442570726009725423519882659774973266012650021338253505193658555742773373364929046519590355120355696968950859743581758471355691495503710200832260868312851073770452096249591065835009937055038577271483610289423676673893322678473060330850053868226867836163992354635839769955573798403311557945141620052097772075443833810775015546874900538144446856963193224960250373478538431135345929060746598748202269006619571706633335016743187563221845955048281856363497901135965915534506242128039074236124227953935491469512244195289607220552664206616787957535680096494038393767755526344981436677452408674637546964859154353296826673398822709734071863198353575871493914752633580639089545862648750063992445003251714166338283928194631808485478925580732315877400225418947231652055302992063606176524682294705002371748915743459392551173370350153847438487300041611736506002791235280933382903111217812257775682210757192335781079481502177563135057818471682906769033998229855763425156872985757704652336034634459734417212433722355414628442299013287011145067578563188196206970720273305366929006719302574036890152474535701876790640664866384606574983986353759331340342324739920964389789436500193758204904363593591085122946457435137871497328887723353635602769004464231806505240415823753359107772316890197417375384302032205705987679922399722019246976988783494351424350902497174727921048476171428218505352459647123131995204325258344028104370316075598992711460737496349054287505115763890151508026825165092904763627584736735048470814062946716644538149377846598953369768841477858450317693394160227454530691944603024717095856011365877870993304610665988192423842062569150166902727940958507202419457466781040286680659672777506553736281002891980190080727386969328781975660013237533998372013996198060367242838699179202954156737308868056608508108903009408594155117853777351770844785259933578579833729748775680003259299035464236445190448436127583734639889571513327419944090612536371846098192339727446145589901924799049879968114181665290998095704927406717083784041157368673820496709628380781525694372485194857492788947737658502688430823615838303685625312531196743044050073728141994798223347990047348594542342969421390149447041987797845765681987462407617880836323794826408122666721611940173352126544364999309069609820115351185675808800212275417475336162434778430270282370112388507742721048310679935995281187048546475155369828810408950360956290054386696425621410019722607098117701542881596485386724351361492150823061893040858310508176060037556878992930526287155020006799586913193166623154679430800588270269513490121641677556902020695153485935629845909501321376436220937463643700124540735770908524357945731021023636715806060730261724245983996318929232926466047217392708970514493782259183796828600529269839550771717803708013425840904785678734195000489692346913183109662575099125899104699873242126245906560120084112051951075447284655759340580287792468413921559749675010198350213692557864877396844208858404541972271199439905074881299586307196141823630320351159280632437221862699791942198170554724167472351811824828080998334300594753838842947195376700454517126646590868962417069079296884351476889017505141063020834628406100492964978138880807795832649275129524121898340864609730253561716916405155424671588999028533953616485876910374177973754389934576612497851236089532250286130348809940345868621326901729855780887870083928521283735610481295148130425830649028243070979235631837430044002684066040683623580082577307542681184724495120801752963503441317699160433152381425350184779778281451461483413704746538433108528691248532395752321445532887637813177036573721375055007941275538534399517315841820015961032341134454515153294752879477645135861529591037900577987058897804780879683283653228164588179973222969722274971059713903153527433574852505857974495077366505060328887379142926752665211518726042798016963675128425744560724888703629816808030704402479861819379159276778021955918395501983425557278587454602070315827766525056542329314773037200343843502864373941981335874810925197963160272411417101358172039983939448872208570948939108510605005004094161948051085225136297789175229231448327524692123714558350559563702317219902369369193939771852552390747696017229490141982796825332929054121579054387983859532842477442710056970499985243548755551124716189638037349990596920250976537556450683874977125907859597225327341172188972140683703429263537071186545716610318030727935396256665044361098098372522961879479005178886392454902299381078037238811851652666250301911422182172224319689264689779476094423463253231731616632496994568539673133107850018995558938880444173802815648442728218717327006374774223906767080658141790210743738313684598914011483281276688749445450711921022814248224773344088516408672187456142391029821303172872084232355198273838788472716176567048775545282624065521608413609237295099353777057347334032573313339274511364378699699439603155956877012147098418584755819426662162841063699284770026264880547742354473333895612541730645573573238659795783149117231707943229819427718085157736883364551655521546365641663700022749357494016620294791498855319038235176352723908744201289000080922334067252923842263667515914169847113923324894531105007136912695520058009425907263987006579346955339404549920615101518666420829493468196846375309437366958051935954083856557780954133603200332173023059445710182058398720901329044742967044963843841295676834643295793137370867173420076110748515903040712321562226356692125340941234716287854135130961646162516378395936497905294642667346969988982714654594663216117616105100712880529200712254616760728129792463146911613178746392255495402181371237772126071324725874604122100492140043073286818582285021687962803655943237852113146248519554932835971246063719777741545587239386006642538307865747160925108061931545764067355347120532363909073940438564570759865580826611141320995909788616275847880450402750321457634414327591868049565382836277889202192484102306697558769135975313464008028411345111606876675553632576514746192286012461559222349497597284306715276138947867765629428880649134957420725485584007507748752259358639498198895088882263772551788735603390600052434472995126333867560445493022963499285628061213143260594094429668394860982348664693829573299121554856653409756818842858976001470437270065674708341718250328733758648598917199152671009785197905547430261195831464532788433607771567880038838529678087084308277608913773572909388586634358549827430333487336885711596031114630732551990104103902773368778971114121753688933434158676615356467262741552442127065890505296865517382582898280582574375345383470465837675669538230250904294024791483058195260914478585852949709283058287269275351387928226313867069552560798010951615794325458999326944046527191250831432649833551674924535309675018462459030502940405858116881242813019558881752578980317915429700622248596046231338818718037893843150950906541469790826243081074860572675198045277804985660369404584945543694727123890610547708825338398809603993213960651118767646818292344756337955676681121978151033349248541123875635917128245698978440796341694816823305859867301057713192547108188927026498281128064511917461700779986096350956259719716932370237789691763759943434225080726098643705856328988712569116257918931847037369761751831798841415360743457811574620271674724726161143593349672190900279118001979597405384925295697782286132635704222825407012128357410602044789004483058203533842188846621825000997112017921623965347255050951687915109817676304361500236464539626412447528084191797710147375192996139391600334112672371334149590859526133623772495489520827806747985848412420586372558104631737219387303932915108728389162805853451590027559188845944062484750238463704474550663235062077328596988594614311680842269899926688831844216908474303834059250124429612866171364919542324662139942612150836092499439792680670682160309907123163781462894352388902446114685878061423980033861829910417023499603357040424373535102993259004416941145927804127306988286633131547127861797174268973282383070956045433572970359559990501117965297750500557657813028497754945084998830605065916270054053219502973725526604910392538099861289945762876004446954356705345829544254820651307732455571775510047812835774932371041543456171808671578512094421760347617489227058105861923800907287077463487559277510742013317407350407393636244798934290294937333175737651689401400987722263217712222145862525009763573099820405363787947401134323459513826242095575026468140246751664083438705617509148270251828068816955812131136208026748389722376662805743760442162004228503426884903582335751302378854481530675389975924759051602901500099706719490113435309457523645113708207543094139547654585492346039280281008002436427734009193943437511253651639031646249325081531582249733805384969168059819564691737728497655853502108284986878513122057573717144639802389057572074334391298656897593516766046845057353157284098218536891237055284396749192762994718597854932585805316369265954586457683471917304288784685807647854594273632867426956466240190122958289249206429488273376192866378746636578660996104816607563439757910747872697103487259160157587790557542086524431526459787266064262791644975952850409550134749231623175212977880063241951628888482405539730418195828103660553812199191095129151782313412271814755579489768994727781891865423342982956908187123391251124941630544373747155026538568451553753733622912072514556807453455811372312708105066622163565191744676291152320222308898506821742325526409666084306369156226214643211678672136405112180251236728789098307246243517181404912022485924526367072092920003782980855162861318702475217679118583435256086057777613562508843265185262448071140627668060883527351959169580247206035476366489116652168007708862290725165516723712869665137749974656579116068165311770288192637616142810852608407484524577808807959901698337765552257831134773230798227678023538021304376343153262486561978667755258287984795807586081116490478438605030688063957030029854380359236136950108915159311426379678286509599298642215982507609338218488746256303771777636626558697547255792561437924990516092086263327032886178211380930616419777188822248330546199618843261659214196282100902935853650971322577352416217876578043144715661667123387069242731600434994048930246822089654940722043582773190409765852035497634553396824621062687609554474583193605674923980905368921669166264886592934554507637821561171376610369404234697558641680802245325686599428090298914598634538195948208378008588357940544210278262385284063016970802198469182752619500241229945361270866041151905281388963836385477830233338721542687271659183004849076177426052473651672219127199284181950644892106876854111827778294761094377939725900244116196164012202434980464393394754469482767108685384369664687301474389278938722893811466279694319183571764511682508437013292906148270258629295614046105504345438304130980303971076615755568165541656760841999078666603484903503062511741194642790974789780163665993299087825929750550805198730188706530850223021821265874841334420844203656842948407454057054570138119586604728380049421475198893107098448329307095297370867556081283778315299863351586115423640230603593196010932236224668222502660445696809511594148007415043672156239127521638131021828104243983277619432578257580744796801546748606923594140302097114798075420876590841223409678090600730100866737602613336177702959808420827505336117629388092911871061132277340238969627875928615045625872497195145900409969127148915669331584671165902894019925267100613836482340683487028595933472205730892536126040550039876733955320746782607105300878742280698735965793365185214716778227087552976659059825740071549863637421489518481206589062952342561835966819313712608092933966641573812433061297675121121310598914779495261014753259551341274578208377857896849351647098970817665022469874323327513383181050405378010544554144842931123862530945065058668115917994011882533999839023360443892280034311423142002264331052864852732504979414795756137298689330899872207374186549642936615324286922431270665471317188606757697624668297520064837404835068782429550611802159572312023290278816076986159128441574526182670390701207770382436127813568194089847422587535976185781694869032426401138672036092553532000028103411599312896531026040634088869440473880148417037394267992276985544928616742309211771036786078103352270342908188241889652296860979403148667108949884344588470941743202783568202781100823361359704043105418926562649320907848738158536496799636114363581630977977402728416035475940291048561635392566083654639697015888344298482281087152316172194150660554985946058069502962302287914070689818732000619093200515893630617483894538771442908035698878564346669515284432406846218282016455535622206832251011835314523094389499610790906041004404292448939751655779437624316129428101333708832689332420076823132485905885580411112904775944999303486549560359197529635009729712421635591595411532330456395588829312339067170693835220961583110335146765157585052167112841093367125315220730749428207369091661853551379965798749720021542517408584821154099611577069710347007385965686883811776304433271055931848522705124504767995681143494746043672441347845323938841204846286263542201334779335640843579118228448306969099598133913686613877092628872354295007390239610229047013968173344023025628732027716805409777780899411519789377920125600646522703299286096150351210293607329727709918439885652330730865139539888851815952827411762193633808233113259050572289051475108810676619411652218441167413531036573884941911604286467045873387497504960830387339542772325412090703407098256946952404229883948606299517621091217320916173737774342923842684936419796421866040346839929597400046333237520523907151450252870042505658600245556116261062198936522311695088685039682509566255024042213818050997215724165857754704227868057884749543268306649129763210247242829168093152200497106260747302259285091022987968187340475271209888514041812201082635454805616606508946253183873737091339958642907872603558554538871432350668666070559996845244407248612526656932054323020137377838254342037337279996902536880965850261213567748217131312837514661576400026211139453432928659031112932715013838423671586913440012076552792724673039565658520111620461938432156139799410545000011902743283827986519688290363097805761250431248530725536316890367194568934092328757197587614065614685304379204694554786295220348768132463279609487427261787476501664732674253794029034494343891447676446125825876573438303410363606475898125684979790024060746670849759845675419145716397835431995545885392242045058143066462528737967281544818246376836444079189739751982170576361256383401096862364355358682027580222949732203737215148615094670425864523442319719789250100054706658994011921305177372582371295594450959313763135148291864027570521126158118196941878612047233441777384421205795140054334824077383563639740799972424989553686301363549895939343533205235622498530499339790980149627859137742771114745272954114585164242897634848467883731910374120633551580850417502129679237116156515806433955078532598179445921000755697108226745729429948962587930281536113769927781503725450386646132335860196970351615515243819650529332446441385418347918493862789866778367101958499124392876783040666309121507062392485535798199124373914806953020501967120698804166290940119332523997397725920934736016141706429303773030677578762949561764564716806964484591892088737382561438729875093696532494403819352540700353547630450654237098635474532833484686439359982040468304741517796721740132315848669112205759764007250684982003713560025145630012229900920709504843400138421612286865607345589254081514340446618334178676332414133629527760872877689750615460064508518208517905817770743737349986971657966132631282499067732824821716565988846328620295661869821581582654988662718889486130387188142856487209527912893741926519232943293368598394912022297831418562836090311724381626240656575844313533810817972523005943685932816936978461075621835150076479150741546099089420010230955397484006239473375832195776860385218113327350930743891028713986484099141038330571276018382557169718429688924146285835489156444211094404980938442989424853644410746607464470329628284859637044837937503405152640272640008274225409383447591241798829151620509028707185215427642279691555178479106363087887768250387519202257927854139943794730300531783063897391589241904767214280636827782050143260780723723908080705765451362366719853536328136425180637172411704708586194983070618334173752331967238750480431327772350113754956215077270496894730297883297325187914197635929265544484870389598181576803490512281843314440071906890863080647777484245553552755901955489492681824271692876310869109994408187118580552269598059098001700988997727271964592280189327375425738608590713258498978777029358005703245566659924804727529266303137366448244917071684650938426256855818681007644194690453675511179384694531927972138244686903871649981337732593220265407799722207040611843684987374594870420438988102422070479639968307152778798467609147337235513645287796910334213569252048062593610834359350474665396375193145880056878899442768445892446345930496742180421534071760055920087268892691929570139689742604922158960225554581604722111089558478036895630250396228096051117270873471597491635601678031303257702587659131956516256884694762627115290067894301385328870241766753978968065384938345013310000313432580265283365899045063223462709324147775814022725390882005758370809510737932801508437413003876296587420410464121508660396809711042602946613184645384004463676649088603056267209008787531602945455674788563704514341485249110767774643371826100569002218737593378486888754617741753813978173558184609165378435169395174084198818109440565749639059091488343161983120290391975667667417896527324210026559017367978154840361269287287397436096279567078042319648862993522295091807984939255808181996129633672622343331998771850081237931771122333578828275309749100042909726639108355856046362666622944204532500572669154919766051424900506528937003687912305726581534821474986759520935914966706418357645444250475984072448104983999978561809401377161239167046123446768872710575406165809463025487829110500115339745337111855524241164260635458514425841714415235935626084959805603404982934713924817702348436294368245318773173489802151169463860167232304349832738541165093117360475765559851045165371331345288277625127657739853157865664413281688182281163084422740691150590715914191090327474929576824208614961477228860054571456471599467242334784702900407707638711166856860414389599997178272995705866636746915455326586675479246529516420912288819586722791802575351254516964514223274210261152098224751070584253311021586978418364064702997380459950910376449842859891738611908304441539496033246006634457842851548069738217797050975468728757313540882789492024962919886620219091894732839054421127220699402528036137991089336815246763121227339647830062053603199925032551718513509426438355796060024400807074864517662627307272022177350771607571291776938120592734406536359228597830443918517008973014699060710749047486518850382644778051571386778401243329640639702832935962022475326505291133140532361728227524893502542386075597659295216037925778910414214982642317615654889700249025361318564711218421300113662102257998284477663553124385739857935370839190298840084621427861809915082514594217909319562640633038777659669753812902932075586568655969515234292547114061195002081622408791356299112545158968593805955818335571218386269890000839882617551761257932173232792379786386291915364506237239260724124884520100364991226174907700130894148320618825813451662498412576740240098677907208668821358746808715808110662689946973228422465447477547061720319078044000382815039266551174466091744581379481226550344588553862921739973302766184272488223041734949117891407483830238990034778486895701407618341012246673481957027966203531415313725196941514863865223980214580151424108857287086505002620771376664431781680194832529002250895353195543410171069601303635616917340780453811538994285878503621549825272735763529084650835020067084298507289738436318992589646578600595649731167291668967504746490419560872775251191413026625057604141539922516098994046351107280723693260031020932759027361084346399098224640257378544145364271752093215050438803221594788727439124273434937493790221736439469577939371424767496802370969709139239665871152287336831201037320288765944544035310928362013081076590337595500089053308180763638744317952618429835731864334286562584935160125105967190595667213666417349067014885197016067207159387490516956312312425389332545083873317406679195669978836548183504874632523419249126012849735982747392025198002184436825119702876838641820675816339232579924693008126092099232319301543541880125965737525720084655988217631201296099491122445199193114316657599779404861620937986850571820853698607809855124134820560708853632607874930759468488777471947237275303349589780666126791790438291051039333294769363157036934266421192034628364153396306592625525855497414688124674013768640247422915464570385306268375710184183509080624574512682415700748293963631199925606222416466956154567847908628806871062084166459565940863584215382421227539433010456790588307896251637313223824191119716215598107754737686648525408013678024965228432965743264398995469415112904015711087968767856155634192812625399287765436089738407334011455114174736755967324321683368192754354802560042499883185422672752536735006809113281276541240377556685931206124203829464456472599070009091147463123920668057690703063458433093640985009578963119185184734380995005685084799213612049161038885146635497798431943200623381642833115327434604173057590520883615361114633747095627225050857706353611594229167662989802665277231315232830219448400801955968313411787121712484017469312648428969134696841157624201122186093716791243854208568618811150654330598937172879213551742441712103289954366724456922888365131710467582349182666470100679048066119794753626764146224509796611506391362708668065825613558353332003737214649402748895939443805071884105972017473569461985642810782909052506504039609458654280154660709254539215985779301987508960076244118666273921597247375304830626929580531113729652973604500788859087739689821259843261056682630973827079187967082423181497854144453678498501915115075692471123579238687572451496176536921060337891013007620011004275504582505142242837721278815169765500963632946754852293170776787389975150438529483768617146538313189630251431845775132080575322763077655749165104735006816161361701178789402671934102231910325652439598701528829994435352071777709256286919452550969361072487296360494609589560431017240026344273771906156916602134804823912557798208154146049286753241486261146975346865344989948088777884701179614790611427321562003526161748943490922243197867186298524654199997645069458219267745716249935261056831545122822357870280804129182478773105077749076592765713894233299526240516739273052159916761833164615312427597764504747825194718961906293617608907414501407076667280696924241146871754870234200070139140881562662850351000312153552417920732838588923095279764046762227962487507868435597752257862199993481031543450824079029410786633409155921083196380966527498591475351890660021021373998084868586299192298838646104976258532943519044516562626240505377444323673429618770358444041775842144132499464754223317319772732029010389556010174059443155575074388662426505700057716024166168363549333679814876243978153989541326365205587091138644596663794180473426152215950717052666106948282201663026830060717546801644212118592470995450068277148295802160260619049629694166553821239526604216014130584150114277758034697313541489119423236318794234511890051457903205108893993677102498875149554200629725540170930706191855725714813922637736457506595122854647820817953870652302865026762746069359183160505980634137959219213853123218576226604161633713136279843190149050567226688464476203501587643507084439525047470773141828828772948989060781292075243639518623452748297712297045744893319893268985017932665934516615044008818683557783060244803695686196383906255404051340038801687581892324698881265884038652560191221527214819473776093589924593748429201262771715452384055962386428345640504951844053138510383889485587679384581161424266135344573704377814712820334133956288856247363709951350885432976547303550350087491077244018045749817887160591806983211006832823873529447571904234176816859130574681336911240754130218569104778263888059173019157142838045929462250177597663225533850895282271028059009609742603513403686656704393408074733648521361611767846382434583350803857281074041666285777790544252977776402710042597857059531363286504948325846342229678539972592757751042403533042164575147600803366150286841515994030275143297171713860531087510215629297096927432637250324332008208740489615458890060706114531838687330252892558739433362417799815328297000068487048798247915269454632116132618064308525187052159067205123304840278567866447503601289878981622545105309136656752001623625219961490796964457660165666103580716603741978462796777560429481125348846411343875424969892073253252552087171701045565308560914493157069692352757064435004102109941330282970238408783330146138502125735934019948095087158287143078856097697467260532805277273270103095130005137755527274148049859456567346492863249862364611940012041967615222323500422129048383828737249103363223967184339776302367600181409293811029867696853217866231000973801263630229619254545210924010839764465471484329962258792310534449651026471751277278616803949543795971001528718498845897993543428206049786971282958132364075139786246180569936554356887757314076695556196787278413939916383009067484315041326362489670512070079428556847895300154076917831725179020988993254905622970489344593440791998987189825761613615950057901539785502611949165096372270250205271094356510624456352062398470087756822283283257820459773038663859988264790474513535750773841049126547866809670030543373879888515762546195160210528573845103531764520145142341531595145856626114220940047616375467666764351687449962457147258470125661428107548373270035146477523834699141393811966735788791427160750710001653580553628022092409620200015438699813273532693424151592870558279506344885992964395196458690148849601820816002059192391517549140894815796692201472143227245371529942919712760350133256899197630968692774195155803007619934952251943147069342366399717321938503958868469802069284022285305626635378433432490837329530807983138448932650470212151780796354371839932864582412574283925922199332286960499851066723514934477261563114587589721409056374035891653455951273640019598898802216089872610107470876046602108362692151904059119873773735869791357524627768886984547882700648720744713829815634696339883365001569263196626137124466845060579259169563114408754466915842526438860647339925227044780522024398546640632843062280323254378405685279249416348941216915449494636420296207435941154192731526196883106019401948635301765658454367167286898235300626675596419752825990554158712565119800909647539726193450329990540880635932573938341017568001130376397153912463661126543015444615760338423504146646605345398238920854222544189578672973888748352937973957676487152064808886578519779129477752563257091953416287550374815914259103792253351467987693130903918076608726691295008932011489573444979195996176452862014266014214767988985276114216895788169400292260712982555774342653126717186852844353641346100362622748522414600272905450054422419452328904397867236668344472615497217102066061501396843452798141470180366265536488219329167591007196629423102382441050665200856480488891012770708827729448173385937343833250955949368583344501519350629539591904699291074431053525054624637530208903475581893183251397397790419521639396982962824481415171998028984568237060781741649969102359329323551300824794837113031585174305378067946035352009080748101484450152761922835801007960560275687630201526427793883056133068415144657374495977921168484293397075037629146171031076680022654052000944964175938106072986623951232948323157683333229793975905986247458694212329394791906653939011387459901099724010905310768170323506217871312756785752218024120925588441856819764993582466558709941748815862799394679115284664954123462849730907572617359694935456633363992941596943272434569000081338117855801658834755341240051270952888003138037541412370773026160426055004629687369174664285365251994594452103666065996008832932061188374161743795970545787779356136535560990724097424687082949814149590253176493294646383402479732988212795090542081624043936084761639843256888458940982762750364331640835765500942461214742693712697798056749857021687986293339015907032096894530835639514823035618889115159825510048459545533257801907558265488627263898579479964203639856566654928133811435477627398549537450761314981074927703175618019007750201815038816423006671486440741873482570678326633785500893068636938366452872903635388719230681759262506620390363841550267074909104161003880358698595306687039309664215129257769289076430827436317514323746761301194394070598418351689801971168067427795496750046002870767376626273172161005901976922662258976165992427403579112316563913845011347493903547000238458393433338214596913636609018437032995500264623856461314323012191294211080266308145803258579369527620465475577886943188421889283585991770092597249084770462351711745038788232198931853923985427109929218643093768572146142326486858862570307444238572932851567688267305883787340547421125562612675893819600613532381587035725187270484309690902295570356964909700957413159839353025520688863250210436865069674120799317744248330754553357022717099472598347479200542986797439699193637187672718357279106681348211453203474355680135898639137997037830860280054920138896231331261339763763653978695956451693352462016075399837725685160623335072282748266823774305209393558322845180311311687039753281274085670073532018476947091949109731636357755552398399254387793779869911056997621874770537270529074743561656742005473259755247013185278374727326513292755834396903578338258487601959049362276082265900553921424791234621019126423139958296249800314389965168340662651992794562457267123940322894240324175328685339668662987768093020283522106024498436718762605633468157723318809862666757375898822412824099943749274242193088129744109167956121899520280285339942953321341270465313548348104178292739402505896005782520099560333919716502771583745379290323483739988327587990784496763888722069053997583205899501053755660240423951477446874807793668134092127531940971551215866177442174842067917031760540922301256200087529316890304735909930008473256336932856004420275997825828682105515351042466514581717900014727026706375074489221227544325908281006310853113149350745928450266564883106970074228172115450876904939310181996649957687316891246910860139541284005598343904778516633360482477533735586987115017816095288989182428295468938463979979212822408511733439383581737384128597275881250850381464074112038016292841566349425886156351387222925260161246153992519811154308868627366063068763065903366152486926884854673231698794248542821234134385623698153641524372543808578606990337377338313109205360397843419217756023640648129784984349653091441673098419230610838889234443962987073843340485356737943546820768186535122357171723812407860622859139213022139001948429225348170796102732202056783604421979784378298824317754796980296264509600247936517544982555810729674444292933764760445815688850700133536210628155364901755616198581964454864983044808534672961408738886597815443980047713181391354423791785207520652099155127487620267687504210364213349453432201742691183406160791229172968093503117248099959788842758487487262713471611911665771731770554928456516142124870898107555695617659083459387048339253116831737306867183611931476053725131809780351424109443855965828572910399895053599438558428356853314835896468841576028714604856542829484943329728807017850070829789168332141420260627553526052431908490657260445176038868504808296723505000709843532648945244500506076521794309946975985117289704230360367511714218960932354380471021005758895950248496569260713263317789529493698498499192180782364977163900256939852345392727809212924481260193688728237707125835453472214445594190550637954187864798941733760925560496539622782817659250611514519411624609399722936725518834553950106860676642729794288042034747734641199992672589561096260563045173287619655888957041340831052119251492457490331188269859150474614781628843862377558886098770041608246770966433024972417123009965356446885301340519508776061422177308744654976157104349109753443723777543856058467074213626142338303019265177655493740355206965271622693614012491292418699699268198612708778142527661808955296089342602990278694706170779082641466038445856999839409729932613885644494980293952102259240472650359065430008775964299381310827888579961221334624267872314818644867676953955877719703306469578516426466568533953563237717241246888963523153789872980184135737790199790012892156950578052565245665525366725999017654486254676436879978631558029068434100075200334204455726281694532808783776166579690096354295247150068726988759069352063653975995209557706327666978637824460416334626018035884898195745010387521573081563462179145149166702236163268844036904914836913254857548855596471709644378215704537640795886405619244881757864768106532866278022857872631232229012144568669323348064056749213105341449049122602264925541122027714131845856789790851712965296207029571582600785066165653814847790448167439052538637139908482425128154474623322522120432108051153359186628980891766502546025139050917034675797683356168068507466843920478967786518304196336410916815429074402138665694074748098939240254667007194246719376221853905448950462072923992685635476159953654222907100197202043167660267190511711765271906767660718479542950708017504741914335023475653725246099496326708617842866431069278302355913235589898946220550819638691434187406640700089376192318204843733737155326571909108856552242701440363995344918600475036757436049169081560437063485351515675104311451224379867403829024704156877629712834779593245795698366254246786833915666714561357561934928735785253543024194557121291931000936144440654772578094117287075554776777161422893392376205429595591608689934772296856550394352824456275508565233805285177002712299131494149514845264900084701748918204439915141704592992423817578692774877017502842004254528996928027344107988057650863310737262698477391864640091817121640223275222941702304093195663865485265847301178560065859832240624626716520148161824590084927022552245656694249314816458989080533537001884561660342993877913735974049149795363686517510626760075231603625779220678270098225747753702744248701517439254098845539705286033570158288841216317267241103985684266644036536599075873216099976216960210818025200337784369602911363389699403391015322726119200538878395976423852656402969761285625575010420390731455209048104789123755186886741389210652152478300293244581154772521767711277587878458541515660740299799518114236616563044197492296817503586627155240129974209817476240884241442295924792079967232478350593037206925761971343017806199803637597118984117355414336491544872997302314192086926522670230218420590547649001188268875757249613178441081153303725700333177991803371163215434536991892590213470595661446906816597697181081689882004696756630935508339950633554096914117527202623197426292129012901205313437456306036592637500427833713589819955566231647967224798935526982913545510805691807810536017484070485698864436100081403780325541020559270898003745374115493845673557708958754598642962346296610621618367740100886739954715065947626890674977172167867631979697942654264627025471518065150506585208888581514888081423110707378066181412768892005200868439757305450555399703889025964027790745012314507075147917891285076198476430254764496842910567286826621450740890795178158423068700618349446524953756655704580361563909719186493803705055032436181392820999422249113685029995226840939511370398444663963128199440331212760091941553451342219864428673760641700497633582774153692365219372191405646880668825600269063861201320478972871364189296441793902771384455550009773609108687889209574514644752285412107390066219535005970995309064449866095974220766323176301024645073736390446700397932675632814901107960917801162537359626804287301370041136268721755940309970873292706056084104802950036027684093040677525271407251566297577316684680182662916546538229104741726784089908370611805741092676661058929450537482747232900499680123358217000395126332054551037135779218658910285068817085827441770584103595867629920427469394579900537009529613380935431883751207985221770242117155821423731609076608755070980536328908158827285425266651547991899341225251968982132833326565145410279602814873745071155672286074475050877429005473407238914751915366919818277733200457171256463457932315383131003002806538438650385956128902898661615370861231114580129598599247966755295438273860377192272014631689002342306317999440757991513630503004951331511611344710026999936569899674496323145203551036379510885204523387665584726117640615818256774149917698779097537049785863948306493903554187899054489829170835680400113555258308291515084108221187597704458508452215666953382084905770917476396472485650503701477439592614779836015945186900411397997609099099088203616484096312541586077309960923056782324909919781895164629950420307144988300630833071586078816996091776034578680184526081679189378305420441433346339910135793999519096396399181550487779843244630270700519334068255130849588763291923873015592845897221950525161703232882735923207910882907162406357894945821691607637908028801478443326020006942281039216496555478767803493648825281164686069565081689165281964259880550583187183342615721649611636662627661113237166338922337480956201187649346209796590314283083536207465341055584593644236423090508358823690571792028303486207060404809774438661433132549238470894336478057846437211062218158889751063902650551744879477767434712781323622915330427760722755362843568070278406972434417014947055492983298339840014442373544199617521243880955732440545672625257453678166722363835666941581100928050448881699050750332027737184093187245239772101301828137715986688896934860120212114317837193860583575556529963282493947158049297062476813019297826240276185808600509701864980424331880803650026493841483698009121706941592192541348325259216136781657424703896240197122420772713868532787694537306316442305953583931615174102398309341007495809556247175249075865892874938398420707137267625724240022960212383179131963177753989667618946863127476920161310457471355077067974249091466264033717252772551921777490209767579829412918421350617040073863453227896630771419481884493730932009689335254817781009066270704279339771973710150743075560482955050652604836699126438545237451671521497406839671338554099571911451316495899336853493255406769695581059010245808487332106414997536263888773264238680112603449835904878642218190314131123432422002678356303640886661496422381633988932099514293940141149299109515305197176485165611020875380315273155211726567084104132878914451896867824181236792360779459972925259521527545024645744896053565160741787900665799662805246050353683942965190776679001751293216465509797220511014268980301955586186010217035104886126650782154944421825329025751218829566703693722684979067174053110183766966712805906926237138403988384910236574939495392951909313987475408896727927289819597866944876499602647639666885714818220317493709034563075343034758923049182532220673603715531013722779642118831380495819404670296002321040903271181188586411584016389410559449558308668027897799180204967760256281998814816213483935547779136750437460548514274478395427670747136303758849561212099526666079755773947682891757669893437292912985238146077264492850184329976194101970175242417661416679645020113544427487997269992233243762604589962334693517086631930955453943380709198760502647482624668811414231683407473207439511603787056073756931347484699599817574588828048967247495304413855502054591319156708733861475011467571935694010678893985284392433975801721885476354987130023608220258113019452105487842742113697421543354859124699625278917658749728272611142007561745358352562710956071058782772415147156528686620803454769411158324314351474868284544741712405990933122669428884894592457158103551655228806521878099156539789762509444046974005562605081663101972004859494960168646091935357765797971794648619496709900573372803324230229573627171995066043724788192819036514064121639910951067894315668989091013926948089776797471250008152599113576614381414042460237076461232400188286917354720790618137219984971505098660930182265602447524743441061902730838718858403781151939776746525013569852274237069593954860190372878353175390581013209914015783963095764093818127430824186397474670706244433001387042200959513698363957108532289292483724942723400207228833691962626894583448604253933116552403220027751219808057290476615043594038436490294669322064693674951219536544988614754968127314344410427186227959792365869843341592034512558499068413067305704273598514028096238131404945305074886739299639743660964006054460125904211910017595121972485113524440179487557749974054081696532270130021110878841983817964403532779158153338435096340896220725803677973688279479749134748193016404174688607203361562809191373864965606709661866791985668764440403203919055068703604483675335241653160328788152511698482910874389282597978103365943601275417146258853988531062678983138263715053361602861967380659367594263291889773542436226577463387231369827752277263197366160838147528372498695185607324508992245078592559845716891422530404106100649429199147710291640823644328218182072785223004134803463921881470514176773291386426533665335699034864939988737193942419612772877494707876085512846602977120291325809154495932206191003478230299807302893105561257624379045342586606207849942171205490301321989159360000885686299987774890993907553699131345783398193414370459410466487610560243941872291152561959744725250535808631564903075052956407346540909005918505900111644396376160675322001102248754424946812863111015105156257656630275872308483882642326177620695108583343964274702807969759368342752233154661748974891288989942038992842805218185644999166349317832614953818676602826653759702860806698601696182450803162704829482833403255100925433746497154432184611882739618058417509641474241091305335442257022343123124037352773895969289613246101498781119893527703269935906004879179818262100762183004635458563121551552678960828502559462979277118768994272720790772035283030231251721339963794904199399188151637977858963386964848483340588674272485007636004291835254220664348573915977640613764423646374682117108197672571641106939298712123326345889531255876173898576568011723490499304188678380692387904294838583578833357435818578277028279552543766781075886015454297150663317149001837025477427245926520747657307150935677320173931948722652951348357759632326692894424190457505453433293908650787043136971324213624386720830451561611282819738732887935293711728456855891496481930822915300538444456229622308795747748098548551915225125181793581832919844737803531495725832405305293493138857711848281498969768283883597142299120502442331229802058828590251430170145079336979233525647140737602328984733859573758343703020756449628882402097017804328264249852999290680849333758671675565875005036713580764824179307094100521766125073348854825073945849368247517955420060586302319921971651585063398997296211380659080710914769415436049210670522696472353901178675087515148054138938056032812547768158983283572069886821277815098414627877904637287687149529510637670514047655851964650271938529959055241076847439876449190537735526477367863068365811654349431024370816224261864481648731620798257347210185786123001146087220468083700878530768956139006616014194652074086839214018566457981870497024918700270335431686247595940674290944346630128806517313160703689218134570584242370520046219623988592617846124635196754291071637497407849833175480780536484488718141715665586273632879603704523658359569217951322473065522716531773726138280136657580638945725838020625907274973880826185186132350031215657445168606228125535311640368723397944290437919769674658268989327706236014697923736270201363344600315952937886144252819373869085611418347390533944372863809727857706660826527103377683716225995043079438646221659397410114884429842399046739980776484910244036909919113909352002160818137350589982054905142524440633341962320106472510469419153060211492305153936139451309120002034785092700402165735666731823682763621300257471422082746141025121143251294493148850326343228890952403855830156960522276163899570281905478791303813634453591901162906279451365033315302870704973778112187694633977763563436717928452640519915640379871824586777100946484507270994285370333995557368457471430716829754975724527791469630754854507721769911994753559007209202978051067476416998170111561131497546320701438139145751575828410910431331681251612118432011846104010802825326629200454130801240414881848219375178453235772144266387483080025457588524032969868509518714310637857484428505812215268969265554840714795570250991493944833813547242340926447601238516865219226397115803523016261104746611877215539908098840619421702638970090705151496031058424589606530223291355190454789738188603981624965376875870714392958880323259088188496790137735414711997062645430896971519560514404959943796241362054424436082842274473601513882258021367950865838356741247476044200613854572452791492494628173256532928878750166543309418709753606777707422814894858610844071673151949767489626918028699615800497628911683746657009585590936010012977076314768830154557471406158850678961884060480277393185432484686871620442003455978309204955673994166173832249221404311777036084138761126562718916888397394169937686198068470226857310795770997233171536156976683152633829182549227289830677384306505644911937785126170598594748882586312896277365508604187637377232074824492177678463012024278573147160069389749808377366435383280071386578070474968757557823272969053395198847137203664422841719477562930274473367948770103828279538624457200513134038204566709225903018017532685713873583443385348902220755776218909562149848992595363908715122043780971677940474610004012919477597215759019383161044973138209988509692870990372743751790595917031520454300661017550634007767054984624601598364381451110249564807984337213839704978154355011666818382840731637409886377165038015840911371780322813640682948362285388577640611099962723306941256970228631714683655364731969435511954607177085262782328300291060387700038766139902868937680256521366718658034512541866516901507778442941104557576335911801091161136760335963459994108947948831203375101784045976110396076779599338714241645760219333985997809616658105539003095817387081742273843758174650807036890827728366729269605009985993560362808496066114130732714401487369553438878178262123871756000297547142385813507799146298464289218982629298521412683415284479251114491008663881514624595829161206150620148791914816518109827508428766891634329787009897375625861688821019514835598040047316940397468808051899716028229152862333912455696167766605321079747463138139235138315808438243982836321403611515548726857907872650972036896494322588314898103774504883719184584575964808771018587522044154013412039388084501826377275474252730577137563905552155176341566181603636836163337242306815370752289897012323936677997411746652642266070918680975439904256643563147473522926478303716572879019858045147340529437906523637935508911529839002958393385830158882787441468872724343950868884522431634598090869822734684372920202563447737629788733979985692683132649630781874331056314010397298360802260262434319714598000245005088336375430368187997274141502709028018314042750393631338815494350679586223159526559678504198519539481487920427580401120627727671092617251434792127584826557792091520813927990329607192585996022059249363534990170200076325432097125436251725145383545579795329699631355534844902895844810950322446897176786952050696092332315319166479766055060175989664977750839125011806730856283082080836142393774460064835229157946015457811551389582792955963288429859875182312993682394148383451074142235042736895724011474736758289206716640172583758840913519060828122631274813613593680775269135187805962524564394187690337941302287756817396879377375365954142237037030075128973651746435680659904658342293176035611911696373587799806941678952868457927246222149702937871856737127840154919018228765256842414979317308091971936727023510895190383362512279337053575002376849610897343633656281589159067730931412803735395646371174061130880208437430830327581805387635646794731186261975293493738642970275306397992477451312111721319456608208340038478375022707015618375927614410914890219025415647579819320476156506310931341011858708372203278394217734624544871353065435242018426158784571781017122951801208336549099203424223166616030494012579396072516791633537004473178488347829616152302185109141834119714224506170702900410251531092219154527210848867395985776086580790405886786851427412466322244789725946746467557098222446757571379124201548467614621919055564014796578887558739807273803155497805220952117494706034857900052437989645616528210111530147285515961108284010753729810677275790346495854352661377603562198906135634246491536773173351059518949506208961166411663629802056000719277201733781512405994955279579153741355004743858675224362897163388495604749949499310903483559660145739840549533340193928914666752638916515538267182468909077099985929592956202304343102748421335876640617416585989533426648471810185112738510001253070885151429373876350271495028800577948852826312876257873017214123919242198984598400419810228925920915718240541510767028199351884784150508417001675964617125635006246915539717735445229422613964786424143263650362747532401448589772888469120361601343223215885630063877150586676612923926331260256182665264233503299617964313736056748137242240611806445958704985592687191213468514283702569612347611581492160485297739693747007812086335323310005640107147457570783247043078361291930916489540764675857670266654696227040924112563424430807381061805786570198997973551005423275197647686592706792326743317881453957056556936560389309489547218222402736159930711406089204498256273322682556448016501339254014138754728660208909734808120782216106948946549296481585016182150417621100016219319799512282609221172892419269828865905800504379494351784922192632842747877436326468826459603553748912498562088662531497027721292099147064246672761637344498050623258639249520087286834300964649483652240285640797484631162248624972490777553483107648992397583415549871749567933080942170882157541690456853604254576067975613069920354709633128549657290286048603765393700789086467833958302871360771125666300241805074727183242363023506230578104445785636409792589715815321234052649332271555954771379440948451130580530193481940533515222589548934112514713761303843037974878103425728737745371290002646332479204584709287659277009577411642056180758727447583974060796361262718713066044740161768758569011131041738596232068777495884079757070292632552767132013521917432744323753811235728471045218849090970770092515100531648827420640157567162770831348271420780418316437519767918343763385768436264644871874301176189096789908170043207233109241415672409054124613788123744818061303499496493383911079848927587181462159543287547542149108764789659801479532958337586915746354195869511018922289708346576474462695126142777049961283948494258681563140272691627003779204439866481027975907245625709240907268903103787330710072126586928299315283432202055672175685764190136973466522499018318458770875069404221723556380578354999131537521973517049767914080320351864958559765270422168960971816129539907586368273867081659782168657246996360716557007032496594343375802956685637872199019087263999344918182213621837142907980525428387412728627699078477431365071065055887279176356751689588718349375880870317611254652993205412094564815404457581831842771494206599603596250786859781576021159323158520733155484291402971534698740414956914137139538694693746468913532309119391892541511902233459707925637700461880959468284607887254399227690510774372270753614644405647782519587229674242513863804853791788136132629317070070356890570871437819321851409927617174398802315893248545125064403893516806660330868998926163641723015194541855195754526630764318219765962581970819274587019304278764818678966327194282868836534675238534013071284855686235534371312971900813802078381611264514279455775954693292206962711737677136691472920301203075308990651975649970876970191568588435700065667111156087078452865306715263096263742643230337521554058956376558213511113580989928860642184335425509257602216513325642319434540257043661029688095892144503783049277208391817933183551018019323145654640185652500857881998617432628157752145569456793891977336969366649040702835717181011547089870813340129921548372943805939099651705775907188393385193847645061964041018177968453098554356413215840731270162227613837490612973732642920504117734016720384667380874851435168412739413356532801106757192253036367184055504464061723338276120841703756857828275854747280345899669720900686228669194568808540880179629060330534194460931380045440208620343335474916273521391676640620158168051590964643262892557530772887466591157143402994859308672761429609872350053334232527378788449638118975738653377788133962345488511816503540910757718503005801739619628704568791667181939755977348340626206410990540415688073316013149007012889298011974057889738919229782010538722432919158890176998735239399258693993376039841358171041670704340626655373008108064762828815272883003306932661559804823217056429743926454433726008037177937384968738597725324093370588602275981209007627139761070492866249651117924244951574724782435951534670412918719026567574033822482743759296240059322502735757105551423593965550985976516584060956806227870038463148603544305654688135006093898168704827969204689174795710719908165355885608611845976234183057250294186369669040094325970803635741348305889435618196336718536969155504995788797814962455658679783370565545473764669978491851812449660729791810420470816574992117280689846358099456406703772679492830589197593185633204416878920214081645535305393957298981752725286173937122696166213977967726194296409208851818880869244177891705169842860149826464414788341208676810063165284165292369334757461112760267470302503102974341243351736865319574172080657875156400274131039547709576860310949683135232466701753850071065157022112105085140324774456596574631937669597093928529855282369110546013832912301723443794796328516061596374767832699591273994007126351150071987708870429787726551736023556854195451009176475542192075462201734251270466012964043901496508445482370646312680043232498902648102683727908350436656098819535345771275032109629714477937932798498560401712130556474760869846169183752979991679145481201576122841500620107417599244917586348870131023050716316042943265478332662991234519806006199546454852432446767365114185892339687273567690649635098014596734928135771649123685312970648811655539622931409794282980500764465779680130860081497457684310218136254013643093499388702203967696122572978784815745308668546877932347575309536277454277406051014011821209035005185246470261997553559970061917626186785279948827494017428665114231038516864142263804321205170035172118921131610517028896861011985046705058135159943362645546426804672433889274007940474726931075295428214034745758409967414612405112213432067550482045833510063982408047169336893668185189316084209166811806578555484909358952918496413278752020338939093712137242257515647233783954124924653553351764262023711054061528117974983489764962040927259484112158835603383217411419883249447975864346001278082463103152335101953483529813668219179475163299505031303838268144192545128645775002312063207329940218256929940956602736815341229520241636444625599078193223053487450593038069329692977463072079966922491479980675294462259369672274294247638242416660824599534000265055202712459711735518553618129976012809826575140788321554240765185984106631060589498528520399747462564833573227024016191714142352236223975256054074351054266363794518295601350914568886793123767448324384065464530186773402546903722946783902691346471449602709248074548808996229992497023455173524456374473429651115608005822642804714998282835198371413053145388227267101769705149384015462116820186168039484169430784195600749242726446997375627863321967931101762946117462007880971488247665341745185072919311277414159794038567417073476719872774755513144942188198382099433220659834794826810399264064689823984063106560344848185087324128366226436785515537269572156494789345406707718456971722676682287543904325993236452124935080979783589430636118057536974159165869339315699034228456764762100207976266918688097238284131280007894894521930450421146657252274381105903032549239916729020145354519513488684977067038437630646469401807967463748958326404092676222181749451433107494240484081431147707047335722360569267111720311634203703781738748741111974106910768664469836699094698843626497412608328350985148071025580607580884120836948172388774703888908271923847773307854430880394105199545164608939230923256846776824037388867366524631770743066540110366750035929729985001652906897289701302992192309686207578672585559147256423670738523357206566109007952719778913168680071188999064653261577867149571677673422019140567454836936671225232307764712932245345948095677881782881059355366410816540006260749809326784999044825736885852851210023065993086975981090670903066497138455937133882018011763026008245816681498032146786851686075457394123328595794527484700458762502222622032246259501779732368434014075611456214904743545535245059828889182900689802886256695109924324813084577157966712618114247772519532906623134200321453127584160145293372395748384172142507792389543700024334948610387507892566681697659093205798286189139351381483230692499152841848370053282576638914353813153217325564122194642941716780669079973191487528542098025630716131570785321549305632670354609336887288548256324659114925868498452612767853168079021174717185627926110204631051078894556710722648356717439570521880785223098036614076880830679195693013236847273828760480702460225754671106660304986074730337054850124069298360117563638116967072966370113899004162129988408791461185850086163398354623489650548457647049527801270730042041575743008110651762739826881264414274233566042866548969126092802862498527728667656579803729372560108311185834219728768190827030574915860627988050326949360188461546886694268974076396491026303779687687185522256651910767155131553204505151700025155945498009371154574724782311866319277307576762072061012486169768983939119862177558393588271185518268433608322786812000689688660906957644325737529382042446437975122380250095981898347965330082895238742620084119141177118372378542610514062280585410452787302042179970068399568884157868637926318878386848264658960656436598708231907321111879458996290867233003853837856817233460128813088154512291076652833227862036204401732136808487914733505203530682800061100636756450145322021096159290592634733761442371146216819803084254947854978156332151085167119238885483903535732880112783885822559391954085437311594640088130765999884565082391734488381929357033064712013606310130770652040656065226156973168095586760622267634733008306200849791634403665938308035545546716188920313120282215033736845960785102422374125098128809341137803051721080352422482236383736523755599105227090890930567468598400166682320782511495404972306034307569106864795397888056085792263834885444672870471102709360347192173984283980387901172319981638920042967145585589932456567817356479812977278135569256227847185150031529248422034000574760389078871245004766216391926247037869693953215478749724579719543538820627546659615669184996060058998380733324598346145313657701983159736781998029563750396965280737012619609743116675191990286915554208656853396271694844372143339119643870098719947467812466417586400588045934956131760613980983138636907031680601537132194932379023876008565214949432875872597331145662575090632411400919783741089932274600926211230961766449221291666785969045649821692416950935773592985949170084544251629817618241642763791200732243690150810815748519243987119983636847144869763718351131553426871218579516497982389196071585506147327195049500104238286661178499378217271416428712070477620028176119776132765109811818993914935258870166731685966116435418361298525453967932628325767461996206366691608372829357521575703601302657899063024196364300247381147151834778857709051795323975072954238698538431771332432243320325095347841552021499263751766911417104147440800183662140227298760290085154014989422765840224823636069680186411611199261757112754516011810262173743225444116157081934626955574726374681016503339644386412417081592871423971597658941706868300601073740431532754902850043080413645949692319896268844777503936871108097775545769865348334604815268877691442164482071419567635182443285676394263708923610836441284193174281433324097023970273624081976844264984032973650220976846513749579159867951334887332632311547784835398090311505468395034097057479222829596996696875851796336759941323451499548146187814067104156991093084369590609944553758457080550183114928105656238136817410399187674126135695795487076504501873398022612941898189776288953434999126536459343130989411431935953985397312687631002132691210476755685682131503591711353989043892593712179563507766691291687675249135644992629017137509398170303172592373499360183803648014113040119573229646999097865907089985979612396610938665537970723148610842069702634774620883719936197573091996827658472373012066178145674846041384485553244569521141148350007464367116698069796508468476379687862468821286829636909811004521144528233478833455594402794081505930825830608602010590019785618704194455122253810352373231190884159862768623708337412835808746288927631863526327604213224621393471263810084301252637790337578611591015498119423967706245370167340543103785584593787007598549830017943057044691055731796712600697162196348157656146428760967974555613380906207235897451779896158063006813985912269889279258818712615946478003423029247174179553213083453141856350957457693223550814968479282760245848769008822286819442068532030400953112922745496976620410652610099813199631052559516499019298584078473147497175135616328257883389850983717655791173439510949455645580683012728907857543797900306751291856956514042984866116304963409861855680930677243860589409125261767750535725960363884186523607205854306267348731507557928068016579869995737138618200188409360072613835431477641822010171618278861532061188321669705213463957532590837666182648635934419744831275268440403338577424082086622404023073810937787474666099735475499146613734694353982391748951110995662485685310039747655031836946400315474860309907387563967561699894585264524134408321592159343169190125704802132039126484129508884580330388744857633039141048063299697227389933721714916678951535951617837885040648874655420688658414040915621296798639112761101099273100919858289136845402002886649835802814251204178185335111034819771343337262766687075212370308323905320883143661039845690039587578993070752237867537183375219323010031260083210749834611113267191226758696304693380446664655804347759498709748344694227357256042019791555089143621048706857007179064676162767892739352361214533336432827241791331115681913960582514128948177731914367186117725529005155466604638975817994940817731719321572171691406434896773217150888406202385474706191090734361235318661345584564924426919045966007405854323617377055606776904203723776672504838259960444031018420444992796137485394471302663205401568354979056461176740174528556460779338849396919091459356924378247360925611956565199482027242199840547430219446678832966487985748117409173675480795443444262466507348014515473577955600013319556998723313760729706411752356691996181499949524350473042757526927832933435037225508002698647084337918012711088348667119841689751146232675016281321023941294579875064293653863017807627785343729799581960145296163841531523862558450294342619919748842235168069146906918430642606869895542825346258825968285364554884114818873910976418588105856329512339555997167556145520648497462293400917358938569189521529155063788763818030535626642210862359277705013165184744666024710233310859482230964507600775152342876454501485868184608182209056997168177663149966455870162178515451817126422539575195678050966584734167435800301471602297708159268687524158166565838792087755868986856646234290810049055719718317445929793028833145403842509273692157011639059733186576751771018994493531439828975275783265432469975710824550788278800324715243064914468059481145938427448652699128534608727749225295282085431038439080664306769409226384138256699953279184353660929243822558879040302971398217304058415568755600869371451098108171143698282364162563134602882074351165202353246493499130928800137095588772403551616863378901930006901121408644044579416490353450892031799310825764033080125113337427077717220832486767527968202290476661402357605442571184855091482378360877723652100908252219611306463016191697301603885376810512124610979302679694301068006692704511146293353787384138347365522780491067256791161920185034785023868491136422815429812973914586014821299870832350383723264373556835815247265540498894447354585488309882359384894250774655991651385903272851268468758014419062527772572754200874601540173393903141156071162745897752935281533957343144697869747334651766806111850809384779584770620373622167014980739010475807206351773741106926318695131956370006257066257540866461758464781550904910872376824052389657700485619315660375273390098609175258440966097424721466833008518519458146304025967693946507579638933231749896809622192980858862038915649255624576997616958563280727041768881472480760036536433586205719490105819285845164453055172836568616388737469662364489792884135343678862141319265513491224972519267948424455843592922106965023388064317384808470483951638353205750221125730110770027690565653857358837998659487208659882175592798858967977563788575862607905863309176757558412746620099777746300157722704748949461850005988090643184021795967593583948631077526083529360071374405257446623235094836335985891703260960125251853672104153691296647104471470892243826564171083855173093648819840154163251815801907128911625933652387446646955850041506644141295407962208418485274971288167256233803566880320508544001596707225743395963934609959402621212828788259207644556096615369782511990257957026085026569692156818341549875016093204741752900157654922814618365506150617121536905719849636781736376378396030554289388032963379369524718428525419858157036572584372143885432708205163518180300644828846715157189243400705303357550975423079824352724941350197326152709647870897955750049685742362512767602613648226176319843304714530222530415779140633258685148615237864276843690685458010112485914772045248487336554103790175557143933727221186395796578428899746624283538479310312741412945230545834953881182727883793317476527291203356544088639911689459771007168670144037726436517529086493479345870272098132379902210972812038566514901700700570443582307141875608233990871000807480083470567613412369517246933827241148456687072866551372174954494432279657774150332314729706208751474608570879461870557911888035196208288434962540911417576796510351708450764523096075835537282551457717808371265372944001394660242377936880581345785022247008489877011351222382846245315181994050416188029718573744249143873753778391045260539618014950931534371488356580439466780728233316480863295997866951427493466006139536277761683935936258230249853714549302897902617723810296841950981806655590162504098706920450950254171208861924576094051083262823664690580208256343263218444440752692976654988933702976897460561148908028182339579695199792720171618771069921735478922431021104391417693117755783592196406298997047025560910662957729360993144658717812796191783922183824486695785172955652898608273747042010099658506005766920344999052787417120558351512044340907936977204363646639723902557294664553226448482708118106417695265949185679207636786109488065577757252430237154873524068520615227236010348101149960427030010666123699210849894024120682276649936166744992316763752077211178704011744885796460348694521995430429486343829322716891077081848032776027620286172283150823478813002109712716247267980731373973128217110134857791595692242607113352491669593121330314484340833980598038550910807169360884918521517667397663355140255503451358432983348832845418877905134381709201870795046945512994762842419682040972041578704810127925582482142594990988626392013960205920545155014125987847131246248025798671729191649434935759664536679235446911333864344321121986202185006807582997175268986532792169396601652148916246496279301613905143365407860390596356133517708641596942238516076346257084758582088090589519222383296409109492707539520034232563910981549659815449291997957006066527145412661077461076834089329317116596067330457677693782367962825433656956735045704823733186451445277130591488831609452600696309022091130682137089907823671803136877321780009903168208389617118764151684425036806034377166866621479389673256858940816903007139391897129259349547090780907823963120768369827751262443007021023676998394356421054100363148840254815851871399269141910016925703257056953371161726869973808844145413486488801491096319660299939378211216979525434006480802492511337971484273590983668190644541890662234088215054141218841868971196451162647159866672611248511837197204700627694807931564824542878599577954232818837383221821083312884260545695626194457487027884796186231903737898083848083346643368699611846832475119607512533368456415413797207248102058647033214899390155214560700114162060047370105172189485266788948464696303991333495011845985595847484615894868138050567512974250739903451885368950811047942267543736424117990798541390732522157934273503004634393370413000941236231143315993326263038648757368236403711912249814290961665510081586361685581952939916764314594555947952031061100042915952269055433543027844628695020642961170903353197502181363694937642459448110517084630138444118037015426871433803218584504422902532119328019608689232478151923328178540516294806411078197955935710474006498622544236452620488247710948281644896038861535533907896238055724154583025084342734060559939208348609428754702657308433358016424398039433144707832303416831178473244112383199358159044099442430055007718751758245650155342907350001532830252758428242323953170963240017061152310718005297184337714339417103056378457542580834309864564381057607648105714843064095014006273696616136718418078010979854021947777120910254138448063174483777567507438769308908690320508218269543081649705201686976474045044902919601874083492750245829237832024687059760116653146230692836097080318940056060207650679171522005256058054930907914389248333475989678960536214910788210465604496805046321148480197878576073985986912616607795638115183101289998902751229184255937239303703138131153022884626245329163147243639857020852092948766621762428846088040482622233803410199946698706499867909579651498963599197821952800542428092089024460226883544174410629555146464091845588052519747470382486254770387634599226123162107672478156875899151948725748640246087823797471606408392738934834492765346807977455956020287240828494590798841449998935011276384896721278543984773513833300972030419926573822880821476631574311366417865749225010150363489388649667918958106684044774356718800734567122496615242301026498620596698441761954455488278888615382611121911802945331114790031056319714548046875768538765932650294605971472321962738673239567838598052910514272837276259456763904116067209294319163939239790490781107063323920004737646561158500755178235960468403433695169410265687069073077606661056322338045739864967481610221445161411665452290549795586505811477258457587262683118901004854571792497948038721530821235075619798591574958958297295111116669286795774998209404648895160939112272126787864932203796964518039338031446601807132530140669005487380749065159064250513477637103825191742417814611950408057500936549586428228329288070952248478654664519128652097961418239661297160688813989704091604767134155016353640243311066324011134470170174799722853054227716871079117854701490234993912353930380576520554250432193817053137548614712477118557007956556821594053056797201406937724587536944830075879748777048948725745710914682533097439343717453652912610812418981677115544849736709989129117704635765011126714899445740991272799504116227827783235239498268388523451765148298451450985121063333982157006767078461600591611579526426296109789937548941641344823215501201767340160301448489723715846921578390517059561684197756194070155396067936724185309334207427782170025248838021360130630064366854644772561252790409712455600167259014032759290128664588678304026709752233003888015931575948287289226617525108310549056691797643056612742174147788687021113050163918571732971688549428911731743550043339819725031110526851638323945129365971329759266738177298311605508826685979289277495049073318455624058315394378154279011307290099656920963765813550268050607810725562282909927680545456920493683291412751207227865901108588883120151146987949365925816010663762467675794781409967698590131101467891472059553740484618771203272887543068836511089452201708171266737148797419924578865728754892792095647774288924081826600626524393357001028915077247416249658263067859423988383306052023469736835726611905147514901884569149148073311262783436304675073907996440768160857534097068860905956309196027340803314743293125533575141486168378766289138966808015916366105275040866814117448852585797858704847579745629003598724489796864395680131263548896990172395810013662056879788917623905815472337911510962432822054552249806333365055799027326978483760442435346915639819679949577127404880338770630686854977994086907536169614981976011347597662107355299243115212589364015831300074487593030698998948485820002691566248190429792138862709738802462831539345328660100698901058425016189068429214639018072996956991110444070464646689565968934077996505194097000304585622858538585861781162543312645773744008096553635620196701435801722108387972055535149941669599084357423167942856736920900565797992460339107802418273622661015612446455345634196370279038660875584075650632623214687801938187843224901450734845237876883999402767817068913128682118670454945439882469852602114037482489311020205632840178517594087019476630871574441435460834276064742227743496468361850611841745766012594170787936274381557475016215007081411701388456850169891159798421244902057587559944015111881235762391453099204238365679943162913629718985614241109653064877069494385918399738041873573187023533882012220563715265470410718770644004510155328943934033694117082451813545984756298860079226200332822251868981687607673294077909672940067663115448382557249178637013998626705756978991222248555086084142355736941324449528901122262405750029586633585152172986871344717428688940243203537334619432472852495875529213520370623214295990748801845612526028167047672040578785113864683717730217346316604190295242337724772529550005773956567019491997805389484069755186561975128202467811030362860683092041514263904813774668247855506680280464999312246023651046998155446464136797350177873124706399021930965429762975686023938359018725696494613111584868743474195963612333797388099034153465650632361358157168686131610034025730499141108721197607074664164606288991651834898241478337174867211245300425127558186938185490786726062730014618194456867853866186025522106002943425810360996269710984173346881303911498074950453808652942008964078467951811331073463496408933365468183894949471359359077870377794127988714991413297917674861679587029988055256863107880280514037182409383895723120085971108204789535883900132683314743494227741165759905997849788596816109707063667539859672154714712225696335655632893125832593056176421031884873404917837378014470479684694292507785173366195924807139301326211928444200099759870882767353218157416491718297135770732346964400180220100899854424371241647953465069049819944228315423880185752162159233257947269181907181879069977183999787610165398557493620737230432629092368706289630889180806224239318384043039552102013621412241446940135561559780059837002699966587928234077775601497858439274714010916884448968012319399683598330525339824957192316582325198732111266216248878068494744632702525894146792277062777333773682909252281023445319298670195854958260693918516084318343197634539315858581752759756867995996507801572987093571802061123392255519580904326750898237834085088882493424308243317626052433392402840005360826562644842766178512304284457869188345326914785192760902658512216098433316826898690891137867589742143024194223016385231164794766015502645241424656685327038109919460759445854104072924365552012841004438232843736771947997267153105965678324190401453244423099630570395354306008635274792487484048943815224431798534172742034031005892478719584972626241504546800619434822426495923410523690189664668050884060844627573226620184575049231965723328053378287387682544076567743520639318940692408255177305043276570669849568555493243601797769934107487245688263065279232199117315888132543421729767725130390297074588508653608774693326302843726835437345735634869459365635470327440877861901428204064497178359499300450218491842359016333349534854592883252327125231879162127413644752505462877973918748768834791929435805211164021083327341594416997849852455167285152838988216029026284708987694487772788631080114576426844171318410777845369321183547920869458881343887190415026338862466202848589483775442510384908470721965029610575081700327107840650270435665822880989365636484077552523300696041349340397938749532017387138179605338830174860789738472095096092639160871179317485641487777662673749334954265193635929518965477450802651753212382248793944985989497376153873132774677168449034747258961177887519621289929877163773005902214491246477331341964831754887370535105712689717888896000944638175592001764821386477415181152020764283061562027295466617789993184087538809524725555723290398142152041411747519956257679521323602524543489085804513706455878225560789734842580389586853553602561073476233308716364414782303737400706611341924867828721068732487148651128236005149403072750984694193131761951382638960042757674912180764379406015896172134691486628561779463908450981187664769669249534491947824217650449042732086544487187606653090609582264517924934978350843699768569960837139691712030217661261841951699303078211694274305304664765366711643301642456833275406493957230294136055082432403475365901722370912818723379737675394614859847834491089948416648954184586484187149055009517569160062844405429403835886831921174321309637319573280588472775137654477817437247424823776743997883251168533048224367468698320126000732573578771423744577637004878996722234481214174019490953912438787690351831193124064650142144369992450392557421746760343364805506102288285744320887040574269973827223661017784782011104399078363789690839964969725848363607428150920777540693090076233704868604161148446266688328743091465630085402431206699884258405416039471417536541048651500620062955982205614412661343066318180276500599587604380424277952017651830038347346516347407550145185786620547627006613858198379320072449345945632624079348297823443202256198964764802730894129411904813056044289343847389037766396060722178898125235517570825713571351019484370844577969497628273456693202174497535284288367433406043090244472221017213510807778638379121695066015938664424713080645363588932017976995183746714888518812117055551108191467386438430572770652842249768481654624450720451092886825773796208276440430757524029187010105316928528914728953275571427351961400505228247504577591216638197076600761920928444095648100574293286474413254699174744236902790922747887031477462920125190089551870273696816932767467201706415415708701142594358511401614817369452525112992029109509511907581790740634009917836926242780087740774967480259138333330403277305556062936998885282730539963430221732133245401568677499412537277797795739663024100387439063158013225063508576383098378463351811186850248228810675865801288718907372177350380952779873306477675632710704684920885189311439043815946627164255428702189715827377608787446352330309201547399053580044688647439956958140295012830108233886651111613453777929394786003834988370623876510596236404059420939886430795465447049519716534765572294688242712403474825360499416029316579257234789663230555536465508753527113413557289327594646288974454912421819892492835994469908519942283738804785098123975928047068785559732804255656901012434894997742127427074038880356499381062499688834732707411596646194559498252883537474775016614109975441730408064242112832367291941308137903327143143961038510860931532559450099530648077026128417539279082359497893925559805851529190813988691747729887083083504584188719836564924427509933899685795674886319937059661300749460405419220767555006675341724358938033443527568587385047598332325148853528748987164149311343315105603596080914738860260557850549657310405742942381062191517692943634968346940889217396622418601448985595529620373975361891692250537016973040066551207987871223721288746736953440166893258395027619817812791511408812352674943903905794095230028911910823746131803199342282254952418578862141473745624255492457280732949777471740951637976842182043935778533616201538041698972268425073519778333317965037543769201680660712146047465689692630628191700967457711679929211469038087444091990640513475172193464514302992027860546006155886443086316138428729341472859757950303014668018543328715984028418129460665237914877788537521899415721855563361452685957785453260983264444174283088316925434066881204159504998688731015884214909240195238809135251815808723611608624447842606541784356079867240344820590996324744253727772631969480667959595934671488722573314454059553725805880487399578187099928210194278748804804379112731109783987315539315604680912423420156836009195800743607714631572736342690572041637931917943563503415380675446195023987052412078411239784198412746000630300354347357747027748947569555198703715593592383534701366886403915853184711288498177411301283988362362083005360408129010646865554923061076027708482654908202308187229034980704701526155170787897435444932325868028084863236450094375087791353528910978085606688366049039495351589575977883030313417424073938970473572328201105354257558840854318320992434058964776517924615808241162400453443313354187695798531833880820774357583232533391986397278084354556858772335873703134341838924973124639714058775224378968148444226786113904980366497224604720324549835527227593420590673860237926778740463635339510953469238300954931971709243931007117118412116471788405897287351391923093528044832275427964066721449115451076812661416778653862322190771262864657149312041819117010014424421207127177035650112154675133113853780309559787620137248549636331481949903561401025229746826589372612458895835561227576171532133148143138192569598449551746307949562371926945855311993270033236035691741903032474098825999398463496377803904587099830416398272393796256037099376737737343041592705838501146741895448014907889115433898748280001786068748286245287706889430307544009030576525322191024370955986037271913233533223191724608444565626355001952518558777512965792164802118796520592534581614705516538653986845628788091699510887524628584674108067769235638978455799591794864148142981154808916252260724664648515092519632828694125545126797672717807537654741326699178781645876597698176806507318351769028988146336884689901354198686386434186636204268613332310228666516422664241659747909940780211722573900996514441851171945411693366167490244830243149190242060417339831714462615770173734890877077516082263336499073556780200291153117712382726468347801221883364941481367690491897237329488805256291446268003835729686554180668780085891539353371720222910170325131391529880761393873141706796997547758600111715019640711542879368063667437120901633935520869795323008043735223068647939539463274132902695190475393552115076975701769643421491043011995977847147250673968938436742930270740974603275701670901275578665230689218259803771341440123406511611074031621992683146217271415596064960282053185372034742786493820061000754173430541461825959215456695840761389282927845095334122950265161086236395455588214565884450279008246481030646620148822885060121015025833023950543996488782626076587589648430020230812841862083256756364581732818979168754385694038586849852243173162006926618292928080615065317722857592647873850655150627443197596311146440165103539715915236598843149978023601999425808898734110679459945488501749477059684760433593172551928357963528279258923761225250597891863051879546412783778262176680704911913567608250871321920850123864191789890482152961267994189353682769254951020650692217420544291259123285182867554790451396866189422060243547888668376419069119002311438217754994389635761813243090040251246557431836492905519266953193002876445199201977586414101618581811568345993196487246248996956802313879270195716084257357142292261088466560777499875699700449728301285986591282986111147840243625707247654689166642606344641226013560459191811688042532313094557180849863974108108296396238728441161366555076818283053949341608157697515006380321145280431986108718342635317319338874325821571783535726999622507791879886289341396267141288135527554702004226370614277637271355991645278111491941544739768040614573663458086925430594135797465505569915504608774660946215791506488664290212214359445136159129689918155564836260884868317839730210120557917726311214592696248708406980632332411470572408785612881772522484562242523226306513142457017329486432787572768446131325739700422121824016019358282812100083977549348833244142826106587719944068834426326861867386375210459429982319733132568828670556804376261731473086660072565352938987089499340660628153806739420727763075962721892036591518926688251298643137804646790875470762855466312803674752110322436868635826011664477274662870820412929992198201816239939677501963143353740932873354086888427270285818747636086199500015058817036564805733216789410232475741524158057505293161034281130225030660643215613873837946256315955951802303831408826942234040279489345413263190910344849697470908140177332425303888481340416968219936801476254142563452663889931675569487499131056109736485371233945913333325474934953987357970080921783650059659782004103248390004897346610855512153048603409014907051178216908799071660508003892531552568653391873304467236249220987296863472712664508493986624497548310802216471317348949537938625611200559090030067511502731751295155702167813421956697692729770252384781601759595704471614641752608696782508789947878556260196371355591825238862972941192454224977395199853181838328814284312844181300327554014838405471701646286098826174097077168632687668866692995047433156266721414766921960797402377938495674135142182921944551114623491672391835955089402411605605257616081570325768440259756767144301463941570192565394843068041112534460139472543510796863573032462614163551872438804576698692870048182701356239130317728866873046609225313995454686770117054297271202727912828169050530578650468313601581215292376851686557697022326003415645125388961023545894656979109453943233953030488870265896481688030275843176121231813700969083881446020471980252324364495973779718607757668258347382895026104474946570227125417339974436624480605573917577995464371091374314691403121544720621253140189196741030227220477712407871640742187744746573980843370707078669889179833148024569096881975898893509170410985589589931233138910548948744463098507598293768506444618089344767374324738347152558204172762167831883731415367961391392880452770895095601375321925556589102403453928031002664116891642283631926946322869410165177647565787678909296549628195538068492498645954042525236352147158888269567699665383044288912413976457854467323681255103803046533528350848017923697812100430956823692669627654818247193251898790164612637867640944443937458839814617856797786484771789243993260583398840701064008355427696627099887917480572989217337315850183780422249081362333136590492024890764610849357283260728190136127201163503638747320011710255114076163930218642360982216617998157761602649044339872879505948017555328131089063488338918279538572217851341877250543361562546253681410760788149578814665268719533395582721426587336342385039973183320371478810373415742653848989929418051170136376759405302462090625259150230148718987703646159072930339467164838391689032629570555764672531041561735195808970735330004027912601574684269549778156117544799162475484106075506894118003291592317939362363041676101218639620973792179147760032619958363595834982467827879473118730712077498979882529141044907764060991170958417016903310174404951101707307372680093630163622266881335314531402348620077647865261722379500208896637970915085165631572989287538404231379567990599933988479704619203140388698266167156902506391701224365232505340794807906247009104494080038318083288840889710032582009735882754108384993417974992375145318984487984219606698047650870260717410853910880445396783698975769763542661098219566764688270450324187181097379015833279294439764341791661881172602132425323208645835652991877402072137730069898192737273721187634060652269542869287169591642746845931902923424189632261609464683102591571318145546406187299643652198319231970859163881288030768952454942362813226616355326813063333610128648361733230129797409092820074967778917818798891741344847569148900254631857428268116425466162730785459541394530547148847302180697677358187913860285416516584299278994997859346206821422214235304711905018567307061440243011818278680928671074392953215633622547966708481493623181692168758348706494728309125838135881743383529724499827112341648512018145792857303785605927578607058728283876961441601641417706767976499217888853761027529780414634547286918774118308565056262045761843693177944158457287497519842684283994762215424253654032290187773877568518585517387747963229269591153519668024656132345232841991039244727817203607730656997163806333179191521481643678990232326903569350030002963008086801542258925560211285227662264376734385572439457926927508637086331282472739567389031577705546522675888130989704230415813108123212893715683400325701045360934375886924504773499214177609487162008642589816976688573960507339286101615268672124927229314386222154591252978967893560634226178789451825717742682979362031300093846784705470546325939426071545063510453398135592867505429518090439355828546623310176065291927205579526632649734119692817450856009567190120108531764523321477906240803433958052012090472741838407611557210014063349540333657424766334720764810602675116809909807262092556482915502746908541960469140302080755368065277759724569815271165953886333804514333743687631634986037453728067175205522707474662944582133759949431767285188566163047786824391213411762907628090666699361993108506812949614312353744095470484142371411741448290385787921191564960156543603147991474278645060064606485486092001980632080825148513291177439150103384607687390712629993954518475834956280953528873721189431956412905023184904969215094305545772569252157889494397632408166350415512536649941336021620866184096813700168741238676095600173491825394618845493289405978361876927453925697023217377188430923438580624795050633078800918681707643632531707245379259543001979194362604520992557897379318251371428138671498917903095578594436074456530231174272285530588212992048537888691191875511279980259820069175120321422255292468987437355741044046371613515148227582643017513698844355676296616209347534616572517188830018605016146850716117302292446963430447904816392355656517988221982178412301128436266728992072492693233275302490183429419761710983630016603611751853700912372897528781998156471457042998327608740742943548828511839830839159162113222119403010872668936439718939251844517873128130417567162113340882351291481467781037478202029586076229975129603444158970667585805234668847840329436995191323936664651291824150719985768966083129262427984388270922990492587655919373090021075708524670328680468032356446225108359072585384550125397428479645233464233712020316665429165734205172428825130777897902557328161170617079674055023745267675294321297930650144329739167791559964374649116089345300123606947653975459833302787911337392785106502572188080502222910687141501925886540991741987586761368691158477713973801583233628766592011014950435392902166953181764439863327191514328245891783244648223237638451327980489521561638061062173300641912553420401281335856016175485154767590052514240229618626231996190635261800622589959307837426255509806367873332834360996800930570774311645968155270847820317319907369281267932512350345908974366673989862035135202977734682043873120648900898748896748161050960011707235091855997796208850080337385485978379474930996399961231072733495836290948466481826534465642377625192659881822295020840386648105532551222305515008910322571586241949379787242839234864846639588385067351073535699254935973940326997675068090192509269102196515205007773866877913586677489676759702220268095311037610027460351680624782661931468686461923173905381063934188929601512439030419482760632824851292321174712211879906457764626993022169738073067128467101770701150905019409376096948790856283840945087769751117654332559832686183489790041529303772308030860536185830172816203877614459809148992298953397025355197184717414506230431350213675966321869521284401127038329716137490257011997577874316495416283305778696846306831233453253817926206253008405069538426390678916997729657869741307568362523693260416305625628566615461147535267834960095707647282803322309235964666923809300596706518376043336577359372841266130492596815316712425221324624046398794102119976154669624340863838566063326256007120217923947918056794339519823522185361197848296248055350163824470438348198671097105080148021787758715066701488496924213590311780955025175457080559650746020291745984543093069138319441989109820474317052911455663705684430534372523856376458812602167278687739817976618831538011894600988070688483594774006232148875522919747215813989548826000859227753045266316756727764840548872392581379991847763264389589717799792125621974760803474742057115543760675200948273234413137703523053317011287113959359100586654182731294981758260107620179000603113158042868879638085821902148356103772883462939716358105998478822241332553899280844435655764454099305077358794699669593983482245052236454583867788696166189126987491061082868442569423736540650849776986209990936351324549970011596126750711471303512115583838926327468044982944387341558675365116013055761787433658015618861681703639844740348799221646238459965545432026196682964298474385875638292096247516619861063213363401496908033162180903390695290775740750920802596923307683956159093185187562938886615125066282785100630912000120841348441036474493626237897764248415932810437789678712619763230667893864362928200961277084831494650987922214365868520252878315142767357876492461535941186893915250992724224569225108287553616305272299318384569243198032311335389852217236882053765014707358040648107013425029329414246724887764900580355676401046252429467183494486795956598960838968810962830707896559884936756047065759155773963908193826554653098376306503105291269556459075762148389376466662532985034046423126666669185394956328080755942862160261569254250561371552913383400250599265409521005955041897981488434939345303197242989685977605563260687915833601392137013329160130965012298654829682498376043345232940393637005756271267807461219313988800197377052062434788313909737209119112863658940332838386370697969051308204209874406503537877329946645476374328383304913038731937852207342489761120021529308339488438764979357792965310141041570327596589848733633971130933918819514592149483164216016834618950601216877405499278142682579308769330026861827199650888199113497660920732123639667786893231937232992002631848446832653861982739804962137084060639966451717717928836951303560484582913418568006988931185610513127147324318503428720933412871570704163955147311213936359853526569063991129303479147244088134551345802177736393502162983141856205181392570010054448828300731909791033902298139010189966787334371894184194262568763707646294340699628037385352296770931201404873827465943204672331800420333285619124479604597367127013983783792869264289226496871943849791129737757519409978123792270667150996953403900999175955962579239513853497828196517981406071336557594076601551380493676160314824772920706958479946195001651466958461339066615684685097817670450471260750697777152679151551883667634984620431666389181986713746833010016248780393863312182239733475849503987194877214543949688319270657273144572096098845870702893246361380917478333931965696585241210851070604998351988920707069852183140463054375177214497296931502453553861300361027155405192368533396868547209164534887644895148436014592550716037893936258714793185466998140383475042782597051642036511259028474100492393425181108994980675829184329925960113431388835030502224864195811246947393521481181536733191455284066691022537696393920478513731094805918507385768347624743655458694731086489094399846540513644398672680840451050924525608717656365059563732078237966989203426607601082183140789228577974637468017673953661512970413669120774908192903338644104578632448270269148859605136625213744959172931916757727597899288838232103379036491912992017208871447110379885723095564272846522517852130361726586290428695752548683774376401421649064620474030089813198755798703661066545642477535475622100161184571288782923858543841079389545202617415559511493977015713617290463859744269815810246190816010334329817498890466833162496617180689196166966576828278826510826161168640659531325003463582966478076087815723195946745258087302628054260063981822598839280260246858164099165370998673715227055824694654909305611406135609011357898874100920495090896670002570983213159524007119932435297527112992854995890965875466368879591726296579109692275474991532989034412909835505757024442730360193765960355288224370500876930230879663951373210621829363305640135654060436237460574201942808110296234079736771257964341919886225433222302920006183332553365461647641540728975705669241878302430211561212014827618333773522557288354607287274473027199400672603368210995485501207932916139668430313560106057529048450904054865065357466714551683599288557503945340314212425746790047559666788750204918272655687840704672927243068782472885195905495951009679114036835877377164278167800385396440693973453553244596531383042372457990524734424276990309854487771560185640098422222201720559397764187363333398730623037334887484031414944309284192431517849309896506089084299463070336380205535372656561146481048913109308032558492968785781822265129535779743907850692708193978370892192712776295907485580947710910232637724265256111319780317349935756804449305077192241531038478472814261252001551853080468957812553689392686041880456467580821035393341483369800662804849151738603020873800295844263587116052919481884934827742871278428519078365101177575913494594336881464502307429491990372606414613924582757891376936838956979051483821216944211773015586551459423090791054184409231241526429090720791506748321124786943305802168847893802555337177425167657366432483116360988441654245420063804485346316576742681275652387956026372413873232113144583322114858298831946729282469377664678932985300728357748017526135683169155160606397055429638110084756166604172823466791239166772523934761198760509311489576845100573656759402709109604250520222944623246673334463881029691200396079982434964435611122307890389989087978997392810613855044103281413535603167594402934229499399659499068995463985840662558820145126275813720969936756349586166265490093684414893985240932039488604117260498511694327916213459408318484859040184494732514523383412120345868159053319384439541522218687890207979206010005351958545245263457444505388288083399416151787088983904508854865276561822925541261247367602985169851450352447472944342740563331598972682333738633768910846251191187959963314663911851078871228611068907656733669795142809905470475348748906149506898091883472676421328820778941969075551747771836322163128314843645036695831410576143177604533698185620625344009278554160292547068802281888662653636223724065339386846655788591892692125339946158045300124425784078636923113933172424193318489052097904931061003310729378139671071839781901328611075501021025308098953957609707118032005501161752243564053932904372434270713380727524059266176417665618421259442344027700143697265389317829016591967065987796818059713471413731909090286304550004775278776163121954810119340202118070811284473384557694106623243650989796707372972351168466827082369099761710887371223825158325557330129388974836029927718306739496113701498846135665371432765238025483769664451456200959268785582549073285319258811295098280160746169187889247416796930117094444682587113221931484210534797903531357902849398758456402639832449499032311556642725168801573794267620085329233609902883942284606869639015487680004521295892752436010986781119810998111701273744864765086102158517951795925457965548849555371705391549286775064925991031129814607229993687020524574516658189291270306946459732678106329375705622250332272391171628586016916932407109131789509310417413065533296184791993145314889397404579814377176268052678221774720532702063780403530837979907818393081613680838690251095436447333244913528366026144336325628535022334776436014825100990272161902492712532440629568712306896282224708550536359430560866647799492350449062262777943089432397399752767079212063462045073122366820728841919009003896046229692872027399914328240320776858466579257614114423178748049654414886584862545633355827687670074933126964585063494775469170863689772724105458677851593036981094871752559456547128830188252814263771259935041789918606325327890282531705178866902654513066701286256583048522990382798103320416183692263925824655791183066363201367885892177032875559785459466338878039699010341086607198875261241262805726983587763577096399587136472428090919066606915418860056106277204411826616425403208504695721175739863348400947308827510316356480298863666406003903770509366300871216481851164682336474384572928232471466356008132785656185564077808748849721246571372472481947067890055758335105928946192956947759216177739812249551020262834463265648807061239167233699696813782526107434404746332590532163698424554537076546162147433352539859843914928237931614667004002288472753650161894417856698263460871295925578641289505318219716792688552466141880932966410380103790220779159557578458012843370484555296730827519692607769727644677950556260954156795791161421917472040009112425927486761046236474247982475730229335690537188560912258609367208105890753627481271075904657760489360539028215755444078733571609739843411131915096135215249191996505555433933105969037627020849356442510136917930979883943607189942068016185571419812004314787496766628351166862293475261017114089342763728314442185065825772249982444144921322387430680318107193511226983756192592181237645762339833866526624220150284340339927208608192814290599267898794275786119305221411517282614331059831360501835548773402901062132686415611683157914790228307295847815646970693338364048585251331891668134297017315281032309981956725791452447323031054348490022428878178614843878290139000495621896719279895750132305177636224739418750880057636799694999941429415763800998721096853287697616334027105372021197038805025094231497498042179958473252246232693999499061031615525539645983515941434178274677807449754101417579443883814467833992099899101810344964864194191084634295997940638946261932019998588902203696308368781242206258866544101957036373973566875814495299951806956925078142592001295574982605330693810105673812670846850482223990832394411053391228431159126151747032541449532002897838839211601354941249771186281626183007842859906316704442607816503029434874194689659037412277958173764826992276395110082579058444559666335772840698895269199162013725376633603990681213050831848468182207478213607341216273177692524695985855382822867106141065490668231442985876823004339639012511217758362834126798250085313384851418134190035496473264574517223530790481548421650284022154975056211846688879368410073156179347372437724784479798520997233237567248763000970958421024779376973255002961267029889143692454671104914221840129219790591958993843667987123302056038991857209237244377560782274988867891353941700753501354285757215386229141973144970686502287748623910705088304188004297215255872319089522118736677688683389013318211891941162911261029180965770629343670619240444885198436049550948753492048478840282029839087914102010746996209688506606681396602538096740089279576709629788802983191733768323489618506730082699958916954501521513846202143958967331350171263719694737285621344244420359768362996502913769482981717428938953787120517107489859373740412146973998136600250735229106841432643263431104906698771586831658809870474015432993673406249633640955751592559152598435016934944556585649516564165146322657364793935845880724488248202343024575448447773453014254060218728698659926680953911263475823132190945744375419463884288502033056873306865441362802297776504932168673794575457828533210193178685847071362011595721740255389775365381211374731647046793434888719564779218073926469907848276639287660308411122152836684765290437006319814058503226468175029019986455281976429808180390888847094268819442510833842437569512833003348623577810093398999428439394777278682061806527368235937263931581548942623267729514683389076582920674700111101735311948302323762527264646616087956075528471745793822487271784456887690297327968015918909296585923618573550551518819587242197002851566426505971816332384506298931804169703833781613982938759484659411620372245702654249078138782170383765521068358094999877181033240683839868630362831528454730520822599571321446843605735132555547690261270239490116934313550577410953337261971561318571331299185681521401136805533047180639879953007692708175512949451847649838286610869832418322517845797125601363996183529107402009962618685211354506821157302351421078519700798360246692662552171229956904137027010882221989007895769227935391995363323523526978555230327993995193815248821451743864885229496605468587609073227989516504626705618170499980356469865959025403378085303301403801371366115249638010610245724539759602185175060453923919407767454704529076411842407042390423007745212964028914773751510943500912085330753640842776859126211046881345677257190310680214972866407349063647611399614793600614665930269686136112466418534210123862414476445937949185756473562610992765395884629832457325845679331089544370464835090544840784000845314072185336405818014534437145132239288801926523568222281113414973302262120033511805680897087241381919096972156000252086892981436006436775423919508129436044533578762119666556512718866609803469500301007875023825975792038448407627972842681721345310529792113016133339708333729825595141461778130828765809690046551570623144678364029642492495671798806890020561013892448074001316439177846257779570541254867966193835238655355453346372345183647529779249158623839651719864166071928004264455722526052653456467683354839199951303108389952365806597672239032574875385083485188721636139440505065900254073025057117503746259262312343881315345892151554834911522862041673595509146202256880463158079671717323564797516845620761717881194473634513900792415385857848933368731573778705663415888425726859735782179354639330054250728248145229057923688666468125836471803036691408232220592976401316864702479269515254950342338216884554664890073478035214471581616151390427456048961857952698470654262946912355860568476123117436502334548253034948945435231179408917228723434220783192682944880687439080520728213981670912684678938335281479031756573169719554388224685872357289051568614796031152838174781673122170883172409808903316282784876726605643718170854175357001109642849938635711989302861773133557711051626089523755075811777743512638619587704938762740959718598126602586641510989366858083572432820043739232019932532349197611035573761656340785506633653116452265265573986090975335428466496603908429151012178094719020904134676429923410473970002770670910527192797400107061431514937051463874185031976242527785602606975839425910056925424486893511855992256751892300939812175034122859035166578595058000926567819577849235364289606125096145620651903756690448661115003792857649391308665253676253593814188363129199567535443511363361811967351814752807755288179771526002044555935847764250763730967321947857900592282778694669753273153407399741813660868693261962582343801007575658108126814413192424020169445019501851109600290835108779603669288826383726554567725389579740663225492757968371140778941309305011757606183699735177562154434337264476503839399975580708014147343378374529998785696977324725137347646096050436144899572492982938662620222763329660332355464664935004598713397274147818328981103427581122774604931331710418013086956202346513228667463954370175084356358440804401972111540243388234290531240795040121107790826970164426739346355460850369839706061678010613544942268558883385674520147913286394588506400419163265520484674692755245869630682183499719615763161122610436981515033085698075629033843280087671155341915240460502074010442810591473185792972961288103596254943749918812410274969109834393054722000889187966208833367655593477687838640249603290170572130728576245970717590916826746892528688841905763897615211722206685179622364354009120236161004065493865668874328066409083754085056178633824200998939030658434733623280126165549726375862067734214305066408235093968465213915453971188698555516288200739376529069786165152570390287223914474691535593549690144830836322569570879897973566495810197686529109842186037231019837488641094006180257329467982531807672598161056870171810212003331720073250435612228648322040725753159922210248146604957206024425249534473124019997666899103918385234490456678051411476956353610789992348474941176736936085833869673343496042985504855711803059393947653397559738612763261654073844140436223128835849047520897477964809832652020171867163473889443617688480580017164882595774347041726429025933636375955592922466260412224750349253886882578588922662337147454130590478062258392333143981816250547787128041090792142724372711964402857928208788369164937046087289105134488785299453299767801138562437797053814409631948233375032200904354597499441502562888567092322340351249892093796920472833316866160411921644433784339540227963785794412067326174781466723431444399759873991759053397427394717963069959462951960787247130024862496589531422300736297673317604996346242012064117734588746814067265597814500935604004467092895044178992885959187724148917517166924991284495702279303075377511094307899093841296044083758940491751783702800029822425173675466501337526947070054012545583030877076289671537325169900579926084216816493811696728903675497574157208902281267775615255068093967083628239409344427491354750168143440585446275459916358728069812390148526195707603739933141457181012926575682188210660736476791044689210673225381415148711236943820235115242617843647733778299877353359046487181878959675777173286252957443409236811079035861943035859793857821680074586651797652807664274866710727127875755641457705601544214600539299528120811135707317595374806018269185564260556221678122445168876647914087111968635527504895860370547881491312003603016107214997378440317898910105258900259148493806700884879045199661355739378731747772684609576566655285609169766412153072623163784095314863437324604868459182879891893887515772161303098257789512086569621245012426248479453494904649586531641437813859664393361701596474587366447583820782434785855587231884857579029066229755507473529564532602050213853904484150384802621590782302770394851474729889787640019219824266606650805070469318868079243307501409459121773185425036037888937536795441689597991064958853755304807774351079798329760028416967196260420255964389910894365696657640870907258821022002377824780669139108365452355184233268530364015774223762077142917737836206594597065050610238035047836673464160909993850055209491081017145934246693080485632933875659203261922253019306011169861068525141320902713008421745064994617461291550083303801180295637092179062063426192148866936130627219638011832328877068359282610210167032500481522063175885947786148227053686678742360830876252968302832809226993226204336045630328053622104998188706836762489202302718558595960571487133262084800291206287607618286651660229281607928553195539778919395373269641559103427627176939311000189846564893932784156020638499256059098805124529081753937008048299443078948007153956543611648117747228761779911123555680671826226311154167995622897190300135778700674934779435041369518841923033589062958394938226450786980105939979484634111936667202582892625967456060905794852657528214767406593698617387971972104036240515953705242055054152070277425312420738862410009834741485852454859134596901845974416696440752708489601839924528445671023506425285582235456192160581310313801507031961702924332266099274192721861264512099944615396664004284331197727637377019772142529331734334956257328692027661951776882316659631338211094071159765034861842720507379762138255283592698251444409609661632817744966099520362698106373491279104622279254608974540915576359986853171544532823863838241382067868960573576048263831865068841436169019001362898769961114204978170160366309188573440453034915677548904536437031488399453250665439097098355216068242293195251830589611818020224219068225459242206148955041599195022724482779887887205555782682480236766013445682742114184475899966343059805017708940172942511997685258595451227868657293981599867277975299625081820463218211019420621984492122038004507984241314319687017193648576632519786836980707203343069049049379147355556418715079973310474721976442306996332058203942865373084608100882767430777269085650973091134107349328135177535746896543439687398459046594378111990632568554629147166497969624890594797231196210201677235999699282262750930194360861005879708079995430636204333859966608889458573165501834359618941216240621665407643215614383745710962828198110406753402745598331509626703007706391036091475420885444343449852091713644842959698811018705674959871579984157732993396286674621643870262578957390760929645010062814687400507499885208891884617666187023476415631301755912595529215832029803055230098328237713075390329688767839636563578179381373941500889469914504287770569851239119536825227546749748864385589610590024530823604807012557602372123827072756588608693897148568399707695094953700397049390441404717077406939948087162539117222755411411812904628623505953397404714901539360354923433446472224180275653968958542595541395232516730998763884687461496119550419022045490646435482616999247408484184741316140639580893867255442568336983264894256594068784314449114619248814566109877142105411514327838522094763192335796854708976873907287872542407475204112507391715713376929353968790696258274467054221921532015412077652032826797587308659047481132087211570359412618295829873648297479381202994570004839110383465628992409780379327834140735707327456657943747921953232030892879285391619263044946321014463321904271825680774010320206398928456675338085174318467048709012920795480643350206584578972460236924826438452328980804549648121504515028347557348741323628849419705702177075018753215277687602579752787390965701766807811772853940374751351437418452330452258479296408402479243379289250809124275418978506092519937258906894972173587970255741259119806608788764764327888350071128903737139023967955626844055559801915734743021766231679502793972517351179553267811369384297436337894686564975257968265186802348523126943658408073219770688219073805498855231752571447495837309383261082024425122797625319394579249923712914732854289265836808458921897132587378844894241320972306953014242343724759025371834490619790874170552279919603899154101756046580259957886361418279814807287021677078575889398220655542768977295619376281708170871019616385351324166610005431329581348849792279362841022264702119463186482327803376844525803892466894108434225842353885416336004806275978087534641008729874550303111876809984170322212082361331109538130395621233985078868749098716657902534540796550112119280037129416392573110112401361925469252519275270315906073455147798564636712762649463426047057328815471359179795026869864971103155116037050655439048538062094614155421348360755942627870257079177655563773600961645205074574792108129731355307416573710603885508171997525895873046268518438687850123737023770223415974065204434794558112469023735944358417801109067801007830410868254471589376124518161101665208537497237457956580568173528280637994724389223698084685945023357700136807667924943168142980303088632506436204683661934881366541416555510966280213853961122320252869763675273027952712785008077362108361640250917298094040939004667190365884271087716903352720862499249723497556483331608756433135406167260012015502308106918298535919600022024909757320563881431586092261131680659645193826838971673181674434126221633863733044995875759787367994514800903961468835326579447122057795111605183689407719071717818704591662677331979457030960339538946584251323369306615296113837508628898761472919375339337432239837908563162253786858568843926156625958914608998698434164627048396056528698624257088544784529061661599950332666263799358726908674898910618993463493217460873166623723240265267649691092990277379092387234708402041825408656721977625617223273620745220382310156319542351701282948839054879357264219650903556428852373887642856891322116206696122516361083772516710812162578630941892862133489504865210717452409042748232775536702702920921107012819516251576734250018347327069945716684462553934780558261267728580930503011783120353135693293126862651806543810353260402775833514122965589950523227726129695485761394588157469038491284542582240438217575952973316083717551823778804734702329249152366317824703029038107641370007684928656960148010106388732141070221796922039414176705357820600947226047169917055711396087197458399759325926972578545721643990939272836038587767564043963655960811394930225619234739779997862775067456900855677659030653705592080049313978504123208760277704436135378555018421018921378174632349856783342892675071471105366309916515459574833803582518885963936927320596793115139959331104876718210634904444386067326118061756343035470351131817025875843169675027471585598813702447603941973124283568066992796615914432340588644513264272322597284342377741189395512560822195746034624302309679232575151425990360343254345233680852487046060032744598302427767896477403908162697177353041861975110873736922619112692901883455946619191770628461716481367496811613071389556333872831176593726263387519889469745324557214187930580575675540958591128774845958480747416492664164219896671745380279327895782857956249596573530758508140536814190789867724258203775615883753033582233482169109773038132376014887642633009834989140726283363370199024880026824591279373502344833437166547522376972145895463137727254010049081099346360266315137921527908008837254192118644270398662096768817132924026354167390976287998043963904654927142760558256765172673829576669281327804573527731012116257355707306951164129811812946258002017677505753660214283223758031968327966690165048674975990561076775474271917907794759753737248730964031004345797142382044589566324015137868014251745957363800951854324405587255568902169321708462046340371008330243131912641078992098443483638005428342033728655504998871805864675732437712802071391143019963520297775576177838071955106635774477647353460614473706803048916136456579472361144574192633629266674941633703449601929943337746039672984928346818173826010134676738903488933422466292757369951767566700537757631735320249701706445721353056000126467570147184476482525070546184264085809871327753171555512996211464065183732200327473009058437542709423500374399567100500155386626936223788387577087449634869395499422785195906109496226665287055053430657070863885377910066723270994910274008900050770175332105855080336861469786829655628316948322445264700950677334833847353103292793893567367214840769829470112916696242201399400731196297285804558601814811362043529249436315622364792803775471695342171168518603373505270708365916394986589822531532544719998870133544919810290792672941711650635778088277123208335866404247656224291701000009549311327647451282583639859538680332739922176268859277208163956436885458378899482804466538984339244786323366044107567123130363694435133091373634979833471185888458121043100138360654542670747105923597262668842128796615430149623183907888643164109368810603069304722419540810081368959553179548797172088141827290972843924321774788872019666961639128181883663526726485603732930630849565470393226682612155969788913647317402683356766723437525716733973415350126138355437491089006633846651413074043204560994038996917716606739850787249221912816931043415445768990583621558804939697383465067764783628281423788301776884313442098989369664712546465376987979554699635480936327584162761754807641761710369925378748414528431400739410803742718952659663407544206809869965235358769435061039740291859717601482024682752632776579247904771773400124675863492168802539937565315893408924213945074617580400132264992501047440633616048890239647383456142303481801824279947755281027589472837863913291895429848360847455615709966677238431046863924172687124096178173714279671706818723804208610571960377827668236541447166223379796624607603964940517820342169976013310034330193765853845918155265454581793051751879770200908340115746385401523343931448998066986007494248910263197593540821057120799790760820883891654681488134406133306826704335672577923059891688694930551941685972116141790735336753653362762220902126710311682750298551051830907402380558643720254714563992161996619043069781940729944685455416646125529325973026849484116330768241900246274757018912283312893768089441675243332950268016150402032603163754574878706994907463989707632948664228001369593317820080306939757450753230378282877490630699944750161196897173481282793473494934331174412010549146750541204602469339540758034613228500401283633764602218553656530281571854506862886170834265185356500014084775770302722255353620299324916668738065904888795094640377461613278788130415382587096283780482039708863529753343574078090664951758311620575755020836619991941762338711835307265092027647509757381283671456832215482983612007761275497146125497388833958056373921564843791733862026079590240436140190667276404528532019044725213917143291316740638997490863518254389820372676750156977783505132586007117906666382459911622787227630676087139747048558127188634644848428975223119132096615287735699381715077329057550605300351831916600977043484115437858366478269917129999746842881585443360535678073103823053891559028892329952548865555021600827829882129357011241989688700007596450158182151603768907829822132783508678889279332057879205222733209515088145845339832421739361338703621216835352340407568405074755108861003729979483368710063755922627658532139153650654210778643845923374267387111242405006851556074585163335804665878677620451666158364361090873597976861922998044921717045556494677697941245445439355545819702475724186123017653533705835284434146027778363781158155325025108220508368111823222208144492141962910717276718088556793860243770907697068137309339755148965362770676724595252271854778621523432964651317474361835271491011442378318484402708857771977136357812595246445946508754804680857666256925564247416096642857086118358189886134065791353763720770780440582972834216568657832381783049272732314724792545281297897082721793471807127202473845588811695244491320527127203130672182265862893252763023018485094845758760015844681596032019287422892567214869350481443658270667352807112317087971612656910454905772807890642237495789972066991114481611003271407685304641303714874142975301105945705639782857195597297275989611376247688705114946465212412240730621446196849461160944573493230986901412586906105445983375521031345398985418996692226589950275928736203150334338386318953789534887936669682108128622402022173195999966665984504645963814200944262651747642575117944925386707220795551938361195811555931093423770043652721597674030939869290724188716966558407637512605467880254128395745034896293453992066029107179257363367208105365855600090700931156578887215351742180781763634223376866058932795658079072796574367533056226252412678537001971079301663215535453283391274868343617470406378633730386056937313449065349794079400499125323017209107011630977168445420137113971079799868954307463851638603567941140179898323427599742802100094714603188090737543932864820939053800723742891149130259891538517423006906577414736650841175922655684383445469247554909404430842270809909341142855662290296608799945174587968256520380813877453095881775181021142324537833006693043194184670255130231960400961993722684421259399160726314935318996305184343371139007458211508120296063142403355259003179097857794707189391624909128412995707666748466602877889066615214349705013518255445713142541213325605426287097613523763852027506717002753635075398314137236407551770808535797206723081861308241389957693166691157307588688830738915702688047772236621725656130944850985230974381269620301748153036860476841828389663171646723375193739375786130151342327715904628871924112271553210444807967750472692215630453848776678924984923126613849669992848614158517295014486292517212359153373590637993273634466387496989110409824250635673282031411715822742619080852275472124387640165489181523348425255483117371468141064276073425484237669567663373154997899092415023250375496943508861993583248641274864893032186245111360065460315687177240240688006066239360929165318140341574172385563832416799139039531528329248511767126121621707181450972786207214875487893386261533214510746832204016029384535089045829235223515992488691723186201021854362070531715772967457561549982198834716254290798242461151386193483567112477471269886789908435203193009422291310206774394272852594604138436076058233565688603847799439561190350851683973344297216188741762479305107166866033533326044530763617204468789162868036049309871675846432427025403852389032631960538524507918336477937675919383599689343033607541042495575524420362293833904918314716686586437758067818537382189081853710589868864282633781701359345424017094393509276185712342435742781537975297002922013194772952902680153115465506699868655683308461217374532249360456175824149291970997086391648453003026664863321546321837222693447602943231586490663041540303482493504483668792300763975810750948466972084789786959438664318373036667275703872638772959407166492072429096309452123791597475727479430417352666159060606268761415469591612096235175022571759966232552000570764996246764435706829537104708710956963682887196538058220065496643391205531707904000940950406893519649089255631931419985316057549789039592613076543299690943838148406587396074801586838258813249124985363090925244494905858135376487034041408630190665132543967401197410652969507784769587338052909527661116719880323790732774090440081442593565332639827967621805710618494224852424076761802789390014368666506597667646669375779996396745953329222996528656186151335428286120496504911056462574439460231832193655296665620673056435100574972283797311210697663912600967565882948173494825880235915363109062943920372115444948055175276650798273667486129277928156524863081977184414258470504736955553714151508298630847961945223299698355051974909459587614853402678717877457035641667907855961877147362545864490922743856591773082145914055072686851021077580204663830784182721438581742208328310968495899309757086259676428215167913331684496781521250537824206336861905889715802383711348733148698383767066564934249015218768757153006316090755532721905390694897498268880924746121691487957492221024621842963829975745849587022107323537742779430206093530585306198184933039303766844500729690137960245182112700074676547489560453382779814609271024628679552698374929790382530772312421210713634741525756502384091212296570492683042199591791983653722356155678928957586289707590478361217630204396089547419980988599921369633806187566423517597556149896489884585560342539100661392992990603734547760154454316942643864567641304699371400520235474100586417202712663128755084562147533226394212485262733248992956717793357024256716726085180052891468578763655208159468460075727369717632617097924327810831362411260059823763679109663675769186199694247468565711634570965537453178857479635033543055412575678528002569127143555984688713015311847445702147023625161918667551856540313377259958455500328606175264693119928519568016000294066411069036006672674732067748481874901371414268622347051100061293772379083902077813146163491889982956270777002056007493304033128627648492270382593811863507709359036114178247554339354808410413712746311620227577682644791640656885272621818697696076596265403864756138615009000865578546620392638042677251654023504951459237613476326907327888270019124810205653169718348127417540703815172432828997312176487448011427199211710027568872096978326173969940489170374745024936349171973512224779424580572775172134862449427088900792382323940440561598425478691978136066593314041570161675396045997475530579033344593144205432782075689626287930104040685268130297512871964266050296490123527398333781973707740046429044047137225665621599620297299908055683743677550144920679836953977347290726823937281412451314520824907223128479105056348282969262556527869244593292528794102320650801637858076191327697852626392576765954048529123443482293033233140566141419127141155272854719628620416067499941680503968146008275136040689051496148956415056816592663154241093427164441325918291622748852321063735372993483714053545122822276756673185908499944040606893065164987270198443898213625422177651963327719004938192824848852945593994686756602936963107516836355823295991629098562992024042787325903057982845018912185935610888284071329733926387151344081237910885594851847550148583350484217102136174410082877487298338290710556323915104013803694215603388069900545820489515622397957312397922183500935922120547275350470940440062923274011433983066565589161691786964004806378507478147159677342027229359772187178680507371174934444187696542477171368609344890159546442279922763979912552804368661013669839983073434528112542437422838496030557385011410061086977736005133895142712977125324218512002264020486829725142222765692716278834244032488612142220565455235328266659386500669007400711619414675143068453949195560095543349823018381055123073845896922830066855737305500375191062081716266679196041277613736253331913759279187591477729736080498888574618919373231902536684076908572117435965152442210042917352959464625121283511386559415611904194294021182218345471167113909095747300413517574934513009159835297271285635326769273775708479192421123118611690610920340585365419044771103588215669041664335439672561779680745417943170102606212467461280131651977593249626029342667471642125238575645868646330140143844666950638284321872257490084348645219081751566521774274318023400776645727154776323531495020796099178810321958027427812762852910604269865630291393499700032040002008518614985449599937821770332208356224406261939133972945004855924286396566109316794875961746962155190410654936062063076072579989660816152689988105069226890126325323576187473640353271326528511249483622429292285047974906209158034189087742759504558028045452652040492490977318902240427784081109363109030138943205160403137247028896963551067112780607084735247451062217805030813225983715915256999815968618439895639985250867430545747278203589260493245374110107593755670080071375238914874019143773083332282667027569922213531618620253734681847525278867562431590651492299949075898418928544949575735145430132577606603978669430695350722322276494674087637513428405087218217450780892870599859015074434452156137448460182343697146405362954524712150918286012703846010703052920739324223318459650192800618965838955042504738619108275723225507625510770646591808234601958016338873582947387595249003076595833172306913444802508256970552340524004763509772377896711279174153978081876376953474480179132537957073018421302454581900453606270408823560109525813901733941635814840414702600237634585204626349635786237712325932332612770788861087085308142328004643539466158044698472900783995459615912910406395581887136774639009246536896431212615428652098023046028393072964622067065733135558669031234215011400340183448549498125474523307819230350676173772268098555103813677652069454584057503946435478256736282891670646527698200725564058028749059020424706218104245512238287731871820078409002843927688820735204601835960350080788233123585163314851124869285377193881229990612303098361873043392694767960018271224012438927185173394044207281566947277365396518998834088938449013641558416387820481509007546267649204094692503333322878524866568127848564823053100666360752682909825629321960068006923327326865200554325595397671036782205856871149073173580713419490293666943315618975765776682998470220803164206483504645310705311098474145092750041549155560562382321260750681041819868927428042439391187475154431860044240665117535927169279802457249403460396918807714691769922825011115453924538510398523898043503039374224518474244017435379402530651186445981064825259905646725275308318324309320167402719777460888836091837460991944710401301932988648110159459589774792608153591216067747463905857044725795392776587770206617560486882565241344920214727765165578268851022395876725207416927120029772861021531010158299158666101135130391113461750607590861306409683099735134748198399479909785993960597069339698390785580170115514367842489450500195240184460358264403691727466346969229497097986082743662103001638997351448136245862946031911286999098611325496758943323064451823186277307064140893794917517726985702796844150805183358773206963788772050439512690468337751183504855394625867482382590840349149564625104840511266634884438193322916678723966930316404888994235863502451240704873421461894564410094308428051069704114834467740365164891257637750844524475984125407975396395404432017889053346200164679705284249943656827095689563883776298563814724528211189118488946543850380878654125163339791601564573226709079616456238235475857687291706805534282044731368919483847967552955492364603185350230394473951550185416770331703453280293225664861255612190858701609569124462369915074934311344837070384925004001139453000607036210282224401994536538570570420109074531003902438726316355678909023122760146686447854540611231892809584832429401991898193935202309374559884649008849151444271932650728932734517503121490151002127293669348773581964009412923746064999711818403063622959316914585088941309076505676853802165884770844912076795678299885866476812245114384241433829778027442036686822905445476314182016675642638116958443628829275528786248737668129602930473502752642641767302641856054813087650349659163103700156531584441181435267347541461598729503358676093534728064316907912981594801345997723155640131835235126970475329159568599816818284662152505452408584015949013755978675991137956894569600002555972586785398788044742096486262465187100409406907404297361443952908495851506822610821165658756038823666589112090836004209643548826905878074942892433375822401452368452117788176394688876511025164461298912672820844417096981038592041819420281810008644420917231478884264509768546902237780739367154784513251837235197313145778279821509050149180845525610365715774468432215044184516451440133078765328386700046979514375569338369050992075678090467058745780577190844379138809132742268300315710260404474357287881810307043645925009006155426114996080346696528262462538705080981597498445194288802683012569389717247520634588877039099575724806985341076138592062195417357813849364498738412850587068452509076492423074151254217219011182913840778591565953252984440724809922048120073107780993884709095809835506293080664028618542337290322936743049061539822978407443595877811235290423212255158465742678619162561046648726846530443200573096162619647958006322367068253321555826386957835372209883503723920315000388062120749118251641800541761439082673072183034967794010294751634780792135896420130726658224657126782154312703352283558154060315094648731442877344087752089464563214157976127606243210374060629232165365408369922864509995686341721343417878033634488870781966222364041171073579024557852317601112882641393289171525471395730588449122905758654172844789489280596919850691188638422467154331409642724078764069696996287193370901153001204934532105348677714147525401826864129590644932584936631415816200990185511639688851083947942250983380058993285563290532124229380075194176728584443128580036900521366655296307815792212222681300240452677283995462069434922243628830804854237139666839007475814445249275926366009721749410479698600965489974688153399690873226115939571386470383878520163550839024239327923629180000990258516276986407259615939905200336803822636499189587460410299946560052280221451597209477057214189779597698250506189489951774507594238316276408920821850978465525157566880020889013490029779509781433274757323156341056553038422343848216589523313345138320495665220400375432305348324299015785198892242349379465021007935804183860171525050791941790072321141197395832450969361874746388031299842477246941454940023303712695863788021310869568224995705150929504040796407773549558490640394051288658592282332242436459054542387915095430284718022158337379184858836075036741717889914687163430132133827807190180489937364625378650033382469521624899763378392722253229355259800042200938442372024648355491485022467066224874550296391456378282011006435072912689900727081715434335605505530143881410022864316763213649683149348464507568411094442218359191943613459610574606111260126183898803232646261478494710063053566265309215028532745001259559620493519342292214473069660600059595584396817878449902913595400546032820116427237204477095268969646103901533736835933797342894090099054816059583814101811841613372516015440016109753585927105004856901188288436382459474508203589216452586828285841692489151598836788626956526985029390506075585173136587645404323775580338173307472651236521392330506393247534165953660934096126799538078094555985447549096381169001822700007131780224892100059947796152895635644586836612874815135861624176728172909325492600707256922616827278301323674803067226227584789538664042754128103290563804061910579410059591990041516342402604379619831570487462403092748966727179553744828312319087146487285676021823185760383590387316713344473899485396460020258702816755571635812623628878934775355594884389319076992175648696961542775112932960297795625703171434679647496991691192670863375711185993816119761457827313267470474630143847730007468260389665708019053438276773324695930013525099304140600197975857754423491685141914802209001564674430224312714879502362962103460696881344346661356325802290621438702891632493519912299321769644214265144714086326062410931703032462214672113383154204964872182831594177430845297277681414004743587989116131095610003697548012544201622630075667076482704454195756693198994787169835469788207987043347617684518251413265849879764069781100613784983768305219295429461326156627733486952099152853914426089553233866038355410432784432560191691305638108121676962701063850426304862138451710411787681093127120932611189820748471689767281222871667689209860162347563100110122167011775037459627408461008520124855527268796523925754829102429582414481845030675947425622093902601642058764295300049881997389468913109240015999146066215868266125427860132813072015783356732160352100649547585954143037403934516459119510156667366657479012928421183488380784700927138573584721989212459102811751493805710614957276555551321068948857867184688764609905611694401086297365739995521797895481413546494834774065992123599918703532148264813635091630543471528523820407246085432076623450072719285305810533523486035117523834153451452530662284013938388155534089131553938637552054623568609019296803786041233660760703263889097870470193935730577225164380364926023345083425183742269849387188648432507206083738247080294825578407077802678484474047332214714794363426565225852640782061374624125446825513209942358285915783868104581478274123434163036426390970347007961613272061407310267240890931223921854505610523596625335101436861790520508717711269558016709325650798570734213690155353351897107188596504522383779731322965767027497971082644816696812037802665573945155367521856887774664518643723989718064973691097711747867200094041389747540680248038383778910816680556020892551204495523863183455594311343874049591424600789385260500814212780731532674730028796113365452279865390756832949288994691213250961283916411037346202735032690658409385256132747687067427163832018248834046026029634807330474645793502205601247225317351754201450540631902688852802951649180954288166370987135454116201441221250450029388159042031057117769971190124676105607715821657020857566919071538826002160489223596465776295949050793812880033396853765048878092519783162600005540204635323939195532411229713235314501642113670945474910564158710895870933127452357563888061422847348293497291845203842261047280773915338635379507843918378011519205228179233293274359038462022377950163731375384169233582953369639831383106195495203573764496215524557568244826873604906105014686353877633972000396018675011603125318031627210621212583209480933898931497806932102099528335538296577828915425875036196026736403361877842513585063391245986071850819395715218549119445212347047028735278275598460713072713617989991824462637063815029837354500919841282493925661146897869178895962495439131626149755847585252811012711233298395246442138396722501376278414498939526320984471919764496471603018039020192552610338630415044124292957143913835447374713721673621824250401538764444914934745447873692794746985505674913365774025198161739157259393186786146305604708674987147812626599365633272242208339763522821366321009760279403891799264721588242605696592576576414780300413720011070447160819623879373130391443835502840893711830488200411475234076337429529138382684015316520095189339166554185501020512609266018768823272136362761566238305152815152428994795115226424778697235149782564578958254749645267256367600965265644800143318639791492480434000614940121964836824715665537249157710262172340196955430832768093663573534717708680521774488853627803289094171573612206367288758587370786867551195789355006796592625916673949955873210153389275717560926685158284774454914034437586369795466273551424024851048045336641167686507967794979705834470172136795883480680074981211146586964377756078103222947508566476086738930089169439450783579187908223415979596230054943270990419514970122392995181169795011405587697117808628610833246793545353047590850130881435679515395895942438812293621139362339099003988962919778983855183948185715891178803402108083386903515713527760946657255683173470659461434414939065807033054341344104014764337431254337146965240250398692069241010658162621294320206094528013544751767002478218922532457451874306341518426798698476168882234692567897306192596499176071209945107766966745098111269754126159645474076853418488537630626437922663885638560768383552963525621630377291090701808391399840574117783194396279586582126389103607250734755094346067687338843482268309684638478583948913835202804623750999863442022879102350816416869222186219984677903722465797146708657822466204649527073443467711880184453780831773450151642168742858822005883944962808224620312426271220228337697151680424461324060567467690571946768284676421270466956147679163633536201719939022147342888415434218619177020993915131262366565885539900867609137311517480368205085279317417782719462791970771780149509144489752940192978484163049715470441950828617437946437454258128603974097194411181732268469314951205420272514262431131434496974011927190988523396484717897038111247528840676371015000054358688354956561895896805926312593750733113331915401993363852028378967730456160760405312091577523437795985288808473757804483423502883635368205620372192552963945684463859096608347658331727064756234382971384037806157359431844747697000073113663305572574091614764463268272354049768237642142947928048156974520886123109502591476255206587278868612916936668333285328764558942241218322038630407105456666491550205609946120092937509959207565278392618108352787662523859563977062891571078069408328772778408240548339764848425996551476200072258838115891093572110008024342368803804756354418175465102810301237432693390527218272862786857583207156996627921855813782285610384465204095835154091968148831850619257843995291533033084508815935106070114392121204599452959673474401028319695582045199526642136843046277986357854586266165153476476400552908120536098423514547293167282724814959635114688045185378446240112456153208533607192891282771991478319097072272023029905200527771199225441839495712002550216610725395815370929787757105839069189481394876861922781692761463409145879326616212280293310446325247807183477663779961892388713111910343253658313419790284231455914502436657048178151255817635986396403896582942934391642692604583466130734037333093170194866844154544243767896997039318803851580016986969539990726001095691741635016032884226103770498190837819438497979628906754235142258798177058329847210987499920788715440841699911513422604815425374288909995058326559802224291473840408183813216108470161105878478133574453186568519814099361201955680344344992376848331911442927701727892228741470201049397078519929326210932432692842316623354565636370146506891150753741374802711856823937154978325350739098727883804345577623973964119228968017234079091880078350479747089797162920093659156280619558857499771447269377899648268155558144481503121454407881075016095628224708361737833928416595965960105620855860622292352727867240737679254339653785577622154870118618089428875197840619287970100607065986993659167749962092360040495265926699769198025423566542754077954197180528570374683732528969300170534286164931658258817461756282971518598158676873167763173431105728109845315195610973408053476680817819684403838088832896658565344327186411441382951250878219547787682999785173411726519209251018627355740883083596488190502353202905792837031446173001988248302831774790465202926327974131726385223992929986704149112931965389027712732492915343488992864082662499756611204169143134114673669289261781873456835451826397304224744638603484908204287743622121483819734749103758191055198337684367068009801032306602113739577748546334140013365997948728702457036236227394309114971045726394472105143466386723879942726988821670186816815959388526877388124536883670076753390729015438907344459018631234611464075368350610911791242376408925818092708476408795511552007179314306367866880634207216327999284401885531942035408024276434048350684355646126593630149641547657911724786558746267807017227747909262635883882017579018019173942252415327061362013247288851636213622484906157770824283057364357465862352447158786789873216644778845227761323912224086878040940987779191205487727240990672664463825867658715703746055567118472365186298217180383581070141220317976992589110288227859936058796678316426689662113522527537254881865602481015057809436944692423658860378311869161991231170407703039510762692386776558701497815910717951530107175068657267341505891838696098388570761006293200665279231053170652914981403594923058618225771557193598083408255328167763977346247082984595145453079080187351692407687205447613459648551801815688138359715098919696707991708110569176708649758054027944735022670723393726614807847770546379382550687267958465250917921328745048465171362166411030430773159625521952359867244356314458067036523214366029523308099307334725163540355740805417543619270718039301760020983141683118118126536019358196571158467010012371497098515534404043539315775529580242028466335307223504622113163194921823097822064087749002470717500904572349346025477149281814406524432523073707915874451126273309627848373942788534634460154872305352274274887796295224616410963093199110451211716278034259977440481211057236428807325831582971833314568584262354224478324699570347602563187488141842312686558252586581972936369803011258088813642512337817535504844568497312241729635571611516242710157324714721131606229777790112965364714446474779263336007909768110354700761039610534446157830161225609135276085025187193703006642428611431468692540408893635045983669515278242492517403763624591581501918855929087563218809625748343342684191051208861560033399308382693539306338198020384826589483510671730033999574621247996814565014472366441784094943217788047691853309699103152927809749687212357128566385327654665628664330585771622841593656478850154890894224957541789461425672954264836090355873881248512580733757518123987817474280975363570414035039278080042777660599372648683989910719930796237690195218304709185059943902046209284369868763709967242796514946124168376671422127639578761628957204248902914214217481672313033463851244098225399496542917143312304815057485821132604733457580754628982732091016223446838451058823415936582491408303864043861272590558330176432248768509013846829495090958697622999197607943841950229646737445515140657745802531430154274336601520505826003866919005547611798299102284615118329397124834659503320601900923988934689266721928239139029813591059213244990225384922346342029117455650349776034736947788046677067413597449741620292705228913963854900919508057348494205505262535678430509235182228958268924311240180875426181004504134227591646256332967530557901146137771545031346240759215930042114669682302429333601357634350034892619345650470183626908840143179203099333501678706350708826058274371436392136329890509024471671392436513172848366030202212153261581892577055950219695534309121215481206840804572746274283109736172455631669685582283505703395605867464616945761075073874079263070734150432018543692310696029494626871653594246296271624878142897028176750917029680741086165438440222257342883132994177914034201798074732259960392818015929749907023244431028268049879304162027049051088888058801791069133445601211064776821692053098709793398135075731467098394864857493409878597664437016065533833300978344191643334789457664745902533148518127276207278759891823958771778314004943276615629287996969663647174216696155334586705832320001748052863755603365103983390451645095956003355243360112917833636773485055117883564393926406865795561240848379302088826952694907019344020088591474295863110674407076145952837759337378013320492337449847861592972366757066245928980691818140450731461002758574726254291468250335261279367074235705000859932497708331956640302013023239641811914042625089482278718846851233444751454780429123914348206715563862628597447424986466916645688174668903439755372970725816167930055150657058783196894859923439279779380897736052219963783911012573522127720566105907897482515618867545263573372481064532816042184688016788457247058037237648745893226221875383313792973998066891013970318718673514554105574009791762491602070783123516972048263855480417588150986996332924218008334153915284648654932837476104322374923029989403539734135420354299429121480658816756768913948442054895709051537934435789976071714209854389708564560079090844214926779675327821206680344769759819653780802625237482230329527706076916357958331565533045575744367036443949829676360015901313731309621008620226278708237401995657978266414741649661050884369082547134019820906096699695912464998979257144794324069986165545325020787492794112197887913209267501419388538114845011052334981706304939397482833170765272219138230492685459060239879631887787474651519068245254786963595140639576529859451258888596742358826676606475763063355454641539118111907259127549066349603510993935486193964022768240168301288155311398271236957356148483914021864127350988507146465398559033873431456529573312937986783169389308042905477883406156642174368640855256189486183958849328130717772796164499910655088572525293197709412683216828687966117599591830379931137514506377408856880713760546283146461336201301967400311737387153829616231093507285697809338084514381815209845624293597242671782829191500847048662883855118228606007283782637802166903580778210939928125185050298059996154216321494130574813461904707671019824304850538870890173005830182642879769118080852330482017024274262228882808080813563441078653089354634500762912199110425853840551874724651657883366989654720548945359569809368566712390284170965965105094075300797651979099310226849993433735567879329267073857580235876272830544942531098255099054673801908462714538124306201519076572054192782154995202739938642062468091708442264703346060806636692818388148570669565884983409448052334531905275964491590060305218871786032807481071337013911734993173837538424773176129501722106645872240396082556181502418572259684829144965447193825159981431416730882695164753014423049094447200565145204122055955013056698020973854270964703847491944739727598824742636587517794258666012884157950759192777032855675902175360161381203552002931772669178741946916650751936572371200256076905346510268226067975143928753237672027827958806581388037295263933850291158380665640623418831675456208475947354049911687578360380929857568264670934100663753166057309707254685026565021027130325045035085051161669134401041003283101445050582718533421661800084427458455939602757619517022770722136418859010217161569643021398766761913791765719649471816976126780116829106192105986853298178303237948743466153944132256606158209357234953133779032358368716846222729076257292794159075182323521891734922436026992523217768873431049143043215708407981304693528944709447997831349535747236925278936600602935411245489415984433836628068773275769448032986364941208104164000895030962061182922749491052293337220684396087943070705465555138315858919787973036234911944705477670228306347948892422427288035551860488171200400873498918541432225082933443275670966568171736447117484578471544128555389190152191357078062734916401215434113342369692915963631311997577442261269180604279312057529133025775671373038069013500494758317173418429370022721621648509211517211824615486982229748924949068378300813676594401404722633349727275316821005608550661104045921959966615144923699244698430864454508646976363750986247769437314572345088832317521782171600779605837819965596835824944929533814845617256695844684717235201544886899796361239785372604536463976694800747152495935193752845122518425300062087130064424223285252546007242634311094601145830857258022621090509792580585603903934679690544907083795737386741892664124825394768702939966572564839266432356159211822642723309033829367732308835808750111119447573904372729723217640551407247791528052406212001821481262073900313370750216703357643845718724014627161922981519645864507772691381404300927133572131908143301219704001876192574591927371302433697524588918468277108836130489384057014378201465499602188774990820601035039134507534353079589855593629200407360860773482628501556765415102449595048925338110395132926898989975143785446981397472768524676307032347181446367400818325020486611294341560675173091835707094568806398632899974767634065082600887722922008538834126573564808266134486704211112245140638397299110315675775015234703006247806338456440755227113697055571254115414563356229445261873271440464780142587469293618549313828070275320361683849920422127925696550282272676754248251246536335280451367514416062983524693540877896368976369491860121682047761491950466743343326158937155139651643780058545339040144683265855586596616386742506927317108590846965382680686146630719483283281608732439587160088486212078570737369884228808628787188611796541317182342409555585449466468518127828525638937223875825759488827312349499201755604668085613693142569499892196767502766196569447171927485697436254159141356193010690577016556099258464136882671310273220160444977920736023370610114332903874596163991084816303614538891688146166785228932145933483783849969216364727877230467072432990769831065024328706950454068078484789753399589886312188565659582212625544301917681089629484841971848573707290130764558359044978529292030157115943628034635224495451106795468384244063797565164967281634685744608763100029677400844829976282341540531346874029780212780242381246195657179234588704139374790952689889033641536982914578293281129150432379177297236142639730060947361125282706355185211559535106803483827504965797657449643254007127290383420865528255599093063824649380739837032108569619190773987414645196635949411820356153545644137944526759964620377655198497647694521185499193030175238299317343437351237531115739547281907859125191591041334098909935269274954009922224520188529149691619636125061050528699143905073506215269227070273560656286027747010857946351711148586997051098012968126664787562294605513994029072047837693742479101781834728235090742838541228854100138882062787782715746131790523340763740101043722257671035859647781759104059419952368718315609914810311593746902825325338813398545104186159943505935342260162117104301015222443398049402682436070370111746558232807017398998767375625749511780299241682967007490771101708979103858185288454208320528019701757917130139684480899397141519552895529096119454333036745512713222155592439043663687414454974554159648518182925387759986211822225122846896414097563053255547683893126806074457818209964579517096945602134816619388052516010641517701524971207894424667321104487786548670840218889774527254972729351798605534006259971300913284043691484811843304498116636003550996235031567808855141401457976386586378558252814320110143766681613093797450654638867560301070139457466852408732444353038766631572682323421747117600091961144362058657544829361452814629980307050685965542288824953633599687711420209504318693271843120706417925074499451211825432959712746570730649438276972530561516843782387325295541206534549072128537139047556013101094691798718520933005915523286936388672603890145368496148446711219177324526498750359024917184983643901378335249930471474610695445955545904126504072368770036037159882341797510178621903274015592775114352996939931299655174299238276178570153974285601460002784675927427739514039171118534598385636595890446589866026718253463822257053576528039472065070937691500610684760034180466747350339050265545755031375862046493572921679643184061207013544329733202411436577830018283445862971927192340673755920582817764953142656504647995705220515660492269774869672823022257930034157016482595443717687101433344217700382964493193277276266902286106416851786315904941585694426135301176806113157413685986485379128714165732172871732009193135951826118960436541246184286026652986436070872185322410711806268327163426944965790298332320781199044333465391070087158530694413236494397857342662871835240927902789547585076631547305754646774255045433487619659804977911384604140231964890999729771097841338230710186748248153006687297332786756102828551803314508644365811127253218442370365573117659275318445524773633149902714975134350290280193578358732345012106260797270552177592255657179872296693353641037722409381500757479626301921042848823048160455453462609180424330181449267114281463586334987435158827222000274397735593993429519597525941612942137186609932048961229058240058879445845280084374060022419079742707598299655578708334620092858483043141489902448269502279708642911457930175972991051678413262048981764774642812500541846547933789542887838463606149585369677923849204986637485090265807237169193035363896548923221754580597357906685517672718171482322159561676716135340248100258748920751088172007298179643665062893028785683762198726977764418154826913085450588052583917131947307715274039586604758053464507584401292438087976422610223100941338163002563438265745195325114438599663598735269624104793669026056924096392483922000690099174454242298579787231246875407119032869866832778142023407714923338463990114327694559270768677374192979384429354088172990038290128856658894496042241404226573282283727299366527235956704401774879958066387918408331849243933483124478128714227329343986299819165899463340497545996870109081954603538750904824594205315343271713416320245140974901938028570507314214525948673072544595953207716402216932467886289933988338758306645909286135475673287048693714782345336986552145665259156531879665779893246434585605240692179193086552605590595638227517175865983043967571124406084350284277749543826639937802546452272046138922490577279598391063072431784625960416391398594847010421879191347004452812775652387957552845098011820465727691875818611499838579820264183047059859404997493133614630501942722540348046010126529585902732980496659992295899583451976124777107062256210931980985279492514655885575518452641675894032146733184535130547185006584954367229563132745367646714292807422438454322924543922138816091954621311787215204685959510646475614990213628418265060841969304203665480917605166571744973040710990648443606624107133202594435649345449556686006170221876628088383408206417795380449831900026358808980517571201098521817201127012733922409611332509513430633702253253766960473862180454093082883570149550386561777819510712376510724220261990460025530430549587942591448444979019103299577198022169119936600398307869449573670491378112307172103426648737723026865140611694766332252133443515620419447605643423407943798206655484037339871539555581010558225762754503393931600482638938964608126311432084426500885077302160358515845056139648344752027203499737563155561121488992051025458268954737703734925038978767705607010548302846282466979829749436860679471374992604243465147848737494068262739973396441065971313618073743238244986521711344359841489683847207429615905025658422446993967080266727913636641989740193835364349268082351780579532312971309845005765114259579996287668181286666649947274991206306646844492880053681076944764635910656821200146090887254044454792266138181489184656873137383900066662056155518360802972361624024509008959507435124850573409813725749434877417601310012492233113342246699756465655155458333568026536710646289040637357976056017733123228144307622404517314372897948940523853531490975437059139714400942814048503292385026951039584782637608527585390078112823546479501189521222989253882022873842767027767568136209126336739597787862755524037330043044437658633566810787633683401392812087488925453475401166785231151059251848601963395829084774657875976477725621733175375607468164271041799748564214745742890883879082676716551103177173828604675578167161399617214933029708754089003587534372944286500934227393636147686149222273709816075568985991512721338656260252132791520731194656180983659705302599126823422582454344530796982290929890929758139334892499065347112615404325237831102511039652673733853676418027110442561724629427619515400292556647914640657331730234726839749299562775230793947863633250891007051604776422764824997890715691681577966135963043975136316035488875508839074844634259055507595611456398068572354235550702229657197484067098475621396696029137670433506105717154697152029097217302513543663650265751192795079826594747121425702807047318428343538229838317088746816960737300837617194741177019386359306571550147544448828616361443726125335723128613416330987134677196466427934668969544486092596260698778982272987515980751777418422519064531905184871608166399066878398626159434444354069738736134076121809951495344320729319264715988803519136995980642165113334926461150749830414404234760790432448883740625400156795098538334371855807962977424282811135516666848519160423928680461289278163645505659484845270304128465552565416533407629292883409968296856751504350538068495453821249372684344661510251945299582701427966397712532871631487555988168346150052272258591373758764881984443648337819710969075831663795110963581453005399847084163605879670531863868153600277642409827378147982657557573087852630702028358118361284351322067870048702028198125881960647717697825294805597055948568477400062992766481613377058147100278302196111411044267088532924264299555427083646297728370226653338508339675873380782469120633281085916352196422408176579917366278768900465545399140498853951020743318863199023447813553666803569896793076328347136950260035354476922957146342109468966174683752187190913447495048747706620995630842440441173844289674467113232031888671753834608672446316596717385210675597687615903973559894527250878228157424403201528376460463126214606927517149810570889837701333339973016062485007353463772844865867014309023388177287357095852321198300505839546985916669915681960746253701326967302334543867660911049197361379081548489489093753928485994243783218899310885091523942755624811416128031091662369586714886620051149827655390601284844456085122760407058497399073766453475068053785793738289826702872773737074578946108182034590604377027555615014740606160637043412457068539905505352724046902318353445948311823356131027651119229645763311491786309685053406035567365223048946848339828348612433445097458422054933127722873643010425764619366862854245176134792699253285892809559860752865201131689242984621825338046737304911091012485400451675762262596186795765905705365958618863149860224117582092700716056240782876977845595835733853338869177025433404170574771809940038179079108177603310629964752729070460826305790883443530537181063231122655478177889205483669445805644735049201658665022874293098532578251174378392987163086607779478265125171498099682676327326386274370389655528237446415938914697225915949305832409879547584535068843742544582592860265509355356027162315517753925180632475390374964163957133897167759255515175926028947684411799378602959360004800076813181071428686085443914822313040072498513634695559828765656544513320864327500962770986800600619645799211503568970677474352070205635630683671768493084299704856193117577438725739892396824952563337071039709061521754384058457246844941646072387950238210980979088798229080930262006855611507664480185770948800003224673055189191836755626017777203412321057449215141043887597905650394837325638706108081586191944780341435183727329327695006349013618157227894675125019390144208353562226692512377351634471508588956837521876833389590206648877109766138188819301303984233782765275001319950913760534844726910508079373648706472137472244420688906369321361930535718241142479059987740216269018642460045742313035530677356634136401373740077438016810173253719907110169079698469329275094609640894616040842803772606266704438033661924917024246112843303020447353794697556170030592567570098123011589938201908783922700096253355118049421539806702062746998551340611627567184531197848865633989802732680685585159233251791461199613263180549024968384221481726591133156447255679621149687630076547040374973472139155581577965032537004305031829800516912429837876017591968860714434138320567008996469224840640755068022937615629609803876596216048131878137333031156466498851058355990412260091092429638225812992215051370105292802881172069921583890987132279146382663403469680017341988439780710330910779833360462414230789031229837723402943031248583200320265542400087330139722166351977931410717865320273162754553816963704406810157011014586175080827018425214168214393865716081618819658139271811212129769423449584391353161831516566982913316265075180173150523378862898041787660257181842393201901355185559709852797433649928582930804634611877741262701958975215480393055161548457173443715190974398305134909314762060749798694119128868348507270015615359440320980951785756285265142679106270927338757117809661035790865519670070440928410079106158737557512941924029074846005575644872343354969726476829935176538025394645077528190932940949684912138498115694545953487166600978660626245705066932443071691612789265864814305609167762424356542230708134088227387332135592779261048921481541966737337693110400305943029217720892185181081564107807501712294102749919851713480374642240512974062181723636348813515212922753058950762423672313676569929106387688342028263463183263104287849649667567816855068610945118037677139850927432433534967621474144147324539656111767786243622706482417545637715266146280916137037519571894483116357252814547261269404034832260693033439405468485372135831352563346173558745787598463124883398926854188316051733544269587224255496440642779423974041391914912984578643154069076127372942683124353000011132835543289415169919849878555303631642448259076236403636620965264077877332069455713972665833912063068761177219090489967709753922461124652264227829777678949202935935838572345656596819524209978612405068975753817225671554112569122504431336546369937778739389372771331276804003117852962995237471036515600335324870025523131501662989138970461352133613686556535588197032854888208093713155238935995011526085916374293053821068380764675289034476893795434024292032208164273287826315865714738877587902165509743543257723941489872871269354479115343395562353976056265279516001612664863044260916450402980724666202617701301677632648971202867436245933941730086038274022546514493956871622624132572027103180030540392984822934843294057325229344064314438113728017345058503881722314485294338039522276122776963726867892935083029954561494003941873275404367370030889853297430732179444310279392626061065619282585458401852965772278187105285839371139856139780352173986681442734672660786185087007117490220819830722624359490845705227533572316268830543777650049386604666704892578727907824136542259667292426403042451173762646171466269876990283325270377025629194135804507819615834569484477985550223383160600577030660067450487752574661830825685490107212787466067897332499794483187227191104775533152050616656589467617966648281002685219706366934874753540900464920616553576354254134812028755565320963305190980465144441496535985178607562807416070296962831152071178407605930013208501208530178251317727462544941757585683758072366834684802361464499119993036629260244972148054736804307657007646327390841165175128104671629883350698482955306413105889309927818895436737975876713415359408097904659757935826550349209889202160339274333767734311490737976815474438975966537860921656017822432559719182761158140627417773839578473350476035588042704747816624594649364983196252581275194120598503704455613631264116633093321990148808365534039766653340497709487574454709224192171753501911068564600217046634056934676040970985868188819869702042947644282024449940710912476064984377504267409534341069680825647035021805270421341235776639924590087210613953404375305560422084083231313607988837883547481046038729157212303922409211601980160668696429327622541021282742939433029179436123903937406713813691848057211689769437365364110608797253321437403017423559705654744984325830750879615503209608756169773139566741059215435635725661831807935585968058588974704324364243756614763860703509351539315572645491062244438693364425761823946404999125197900301718333048072068392780780705716518435242013046218745260248339515109612043810483760541927409574373180323502745682270280318432585071416989101600210048277387132108539415637056293139887638960066766991608889787749089729533497485632020334820437463287535631882252363149224734303636958937901251353523958303175012204229729460852980747586970115082338503648310276507364001547460008193448627922026065937158729330302268009151714490339304166326979950407995913412964296743538361458949591272517193635905334945705178824218618774738938129452917133982344774184266952237110926994581436905735246451489169469279746643973618735652281339630433818955334407343655812051740921038159685555825250749912533516528478073259426001323328397754460975223820719937863541312159883757205572337514854612058495860241118746508056774820474888526123872099690004296317309853077840623940611567348923582758386937615076970509792166660055500141821108370116026871604984710073340730481837547573372466365095469692544406559404139865158746652741986081934684213375270349909591507004766715236500609826949086140761857077072508300640667880519949698465695960080107507304131231323008265895710791054195679756794971840524187219300133846049954006686988082495112909469948999709399042153802566982585507680366410742703994949464154887008530259357511280708144936271950256916972125371023659037561672726024759869399490761194096925997907338419393558728335337233100828957678665796402638802304519009144629155529607874143329161429146518646712036104385710007919966841765725806713832379017987929102250204460251086957055421437086208908619030541501241254629362537842210370484592664218384238342011910687183615274366608968173789365612338706080102425273865481906290999948985804406292421570387833413414049640594108039049794557201914314798304346787176155171856072160593552070970179313490495422197135244055076950493414241586452279751158734034438286563982483869559815366754937965942979683421570131034873461034331889279528739668012457966310959506315341705705663658135014874457687084649834977162948510370657199128160664818466147755707077207737716519143988510412838535281194587116660424025143710566011958222788925261672577623473632665572388405857253093103749762729042525981300185095322645168341254483061491690241589035874303803577708635129589926625290618866743410939734811471405513639078872473812744474709551283286262721469183152215096801470218141652809921554769605221814362387695685021965173634169938009456179163039175690075728428697280498281239589003287062995022954501829499614759184409267891976995743859742348546274294448256919574379383170669093316498814946883853355011825264943741009912533819880053852446523748807073469947843944158963410765393314038368373019714394655672060477232674590056322320255554122536554730141739360087995460286336053587634958497035006236135050102986654238002228529720347945762813327000813878401327954873938871492100824199833106701234760084581586282146811924892464436134707335738268420812628859534530880209839616237033640243493435495067606553343980939854374700701415754435967089429501834985374624568089935690451811340053629084793762828457397375100664847418197406342375519547116086707278898472983641767207539082758982606921397057581745640710177568945541377493670959577461609379571673240361320250375514388980242626363065632586627225104814920522094131458938474844875505295985127409154110575553649810910127098531893886478451372982515260905773268880783610840210718144751592300708666091474390037679622283970614577677978926387880207692668043661670667417424661915887914015543158295442192919882410794805733866717139718619271382058683282434286809957486576351275681285669439453654717792496364978555012227220298955887152356000765680592269764724242820104957460984712432500087427338719262970992835254628157355726286513742350249528102224538445832565150260144836442503653597953034354733114652998392727241901976293097132645546303775154112186777628019062275610244370233687934134342292097287341131695778136046813815830807770824481123245897423413538370392769700455824977406567759636015482587043795194133892073310645457903397167273759635021409969298676753711398769130025649684778107312755443375154291760378137843923549036765775968408192578236278172496299118723407430432714195252872083395228368400776554960206557447672774838658793898739587730605866590285289198250275618789986051463185307454308403190133405921985130713769296411513818907652988770622543229033014557976216840705979264103431064255414400329861169089620049317959170947166972842492820569857216654803761240071531259225530609624756399713960550740490345709979400958190507688647269304518713381030163299178749488799824299641791689240920999921416912900081005083817396918629357434137175390172896837193398327538316691165025281601588020109146232834484762911089842037381224789032360313776530400209182237113785414448226684536869591906708212954137185160247411114746168750665248646941436996131358723652311860758665841649565391260293193691464780066954137679838775276395253953881032479620214647402184084196213659653414068716704374838390296277649521395897383820980712197877693303554401027109272121062981212553277841820562856585260253192722033312222361522696710524006349933172567114788310654705424336947032001091768055203454059168047903704249209164039094432582146220809004717227407820413443643740657344438020965426843669238965758257607919183456742992701919759116763536895472266741432157200963242814669960946050291721657106225408249432112634058571632715215357819358409045486706079905955791112392607169404416666718648522904572525026876387319064823685783695511216382167373265969210872207503449278357134527684014913086523663872276691192688309698593998411152319597906200428975248315436939104846575926087811472830824212459945063356652300217637619462379877678036551893986147267827010756149800051602933520216558563715226306584556714846765683202811123714841995815116888845269807415041828516176035859097411411500315043812507802683795302492323819254600256908441148188059316921932760484310938282725234673803999103651112422503038079913454743028467439115584474067481150651979784014087027366340045698084442569900119381935475596589889107398704858943570783446898345853552646957109511407469915761546855626303019807561449616099964287756901442957945421498735826353924910106551758714612895900917412578004898140109970070305162018792002157765888372427102024076037610289820449219235919176095901650886032751484975649510922431883692756052730172370464809882284549392182481627956427406542538971183873152495468209650989258476331014784344913425107239155558981276691931117431266409029470613157488602195540815748361555980680951012219398399345450186851010411468914221348117930080204644023651879359719378196013490489273252591398961581581558932203234595449324060594762854659302830179721562384001348461934366609100152005985298687801668164385477192733936630218657881632511992077323772476844442182024777409030298832531195257268414360048141125560299671105568546637452146800936284677747531875141333123278963952742147589319800265044106148358075502038597164238163956434929096593847639117724842817706048949415511158648153339014919486863870129186052554936923955593993960025230558934876380614946424838027711638230703207691515400883024838269946857782015095744849090021341215663251238989451209841979602477147325754037552439579691197903538128788659525701926030053250616404473389268299998935755355537731755162423793773772827467511674771163940951266691802333844994711762733494239855498624390555078665100231752061961096211574371739718275359832418197259589150190177773370927127738298005115116575998987569725981156148081795992893287633812622250775458630565193155011051197275221784131799660033836881293491447182776070384671789422057145238719702571658281597240203263138413181718967034555424289743549966382826603309943232654415327323979558759019785096437728276288877539816040528730428160984173623661086786811120383198264257992114475679196767678885742026089166674388028122935415762495311026853307507584485895464939340522116163108343190012843837389651412370717334461641115842647107315873229804816096115746928438535872003274000798390081448025418048047097993058130862140673105423574896683160826403068913801408934700078539034276146382160887400364315497674390708941793263455170220675903748784519086331635897572447923824866098915026735490760939694817752443312809724064762375834870055868950698503258879006973056318097611780327408296096326628435984014597264679908237340470579371419347035946752059706272442542931717371796181196693851370890860687541975009505251692819457546462969712821855050390524773285995492555964194542395930625364674939498284749428297125398531892215277761003561551214714031407399094913033903975247682008416255577206846093825947828049179634100522907500528431293135720835965232464569722789767405003740969342281715425249688293261950993559816567105523282860504678541385400739577376366644854806939648015873166750985291183528749527391776953113091951883149747592380989973753242631870510619286996797993206537942542771018032938969998100523122625117885081461365413215999232868400796484152318668453867260408152170980765869830635293086598080631493219992211672364449024372731726545837439813832989132312719004523206984770832131931565619697675903496989087072967346390076200092856523918356959110851656090804321929086109300928950710698885720171908323417755728326157908672647083479118630368068496720661962439270371490729433000456315989952257914622154432882927057805615893194311590350828665439740260048888312324211102118240698142992141488710858932536995308635697330767577545355987926670585967499656547154868306759639752839626550740944227088863360820236120609773084182516515482422777996027203810643611128010429740990012988247870185078277381946670276823374245616293186961530384739169236344392331530906693140442844036718622175173204668114087042182008860483089998210110453800953784845040855070056745047760150002477976682433525214955418124554600215997393043755988863874127660679124760437663050567392272779582310872863770815443493050820010887636500223789049652787069975491740272744303408055805858168776140046842822501592100356080988218505288981699338313055721410095012607771317950201119852606963684274825832550893351044312908487692357887152276399322718926328300165470528565615521313195904073177896151142805415872836640304954586157969372084271085255748970982838652317431492059295244879603784582505838283105710589625770017786958349597275288049312624376136047575253773213442391730650332674667662381144734800574162099041036648571398289023013989414618337927153647693583016031493060235989012698523377681205305243747209617439574370000387822579522081263112382868905008957789619468069592251341824950819832953895608053640835645851546857048318512172598276947645225835713676438684980693171369629939973543306966768332534572008359614987026442836755045590724411147325987618619246401385879136311300214360391357217308351306844240366766005306377830018363405488545404996131447767663693584023586097675607662113722952417796153548863664375764887768779562231330064343621974738487230339659069635137444146405106296627167629379219085249275601497033450980390259270618089270916805999292038071028499103309525525482701469270627901120534752257940339574981636995204975912717865610020890849743696726159417588497859703872791743217792668030488136621583120501872702774386639049561348417397051624692816611066458935537569243643791441478722204408682649668427750927505757706447720849080450054399449287882423202833421165667593193859763132386250284998200842920483875408607385563689940749604851984759494618040060642776341869867908601648926413314246258993402704427109285143366962963654383363029458504240873563389296599314236155801625674291361122707869610074490124399023720487153862462808734176610851502429418583914296160227286269817016104148294661640480270255003150689860284034857503010632966626244443563418046832243128760435276923131173685943832945252153248649566313247861683580907619841173358456000390488665271870455429999713461593941274325740187784081439463150574726934023253579537516277385080249805161771420391387129974709574612871093087398486315634255342194974224760237006076694390999324676703012407262629610211424394170393396651477619356225710961882824195301694848884727259570553438865939509267398091696001018119865816699623930149996873668749712021296505377475735326351304681219597407409334085410469390431547613837065281727441774173709647566105567908119201936247263271769946500846444728098090398775986997211442172862882386525859646088345849838876385128324894042200952788525055546392646675326578955845243875725127827850995342015588429743406386532264107945829536091356380965985613875052077220851062235523969386081488424586148347009643477058034802340175080995979760574121411435765357292258971331538003782105501027299442760776075990152397887427284415921926481126830037874186597970505771951228667947811293857692442197562054232789792536929731514915648249880576325914344916805126929369306889810439329066468434964615382342653276207796335940596950769266931215956849563593366033606781283882106326739890106631168493730972070644687620700003431266370944741666493146529433779188115058748196087377335311794095767252428534836195029134280676167955287324379321615258418272250198145170206779403403713121520160494174477987934876989610368656250717275255942506474207587921532706348829380686166667423913931053812726644442183110045449454148085700246989576168007728955080810069056635642499935628275620025751843400138941702114789173569503947766499566171952672981977756373449942531371497709424237162666532931598808966827921711489760205451221587502993420301523197325714533316292790699468126090942307612065923832358351304308483988580563849651692849517338013888977064885990987241728907969567195626175903790816429815097079667185605525348636746030911106066507174695002963779283161990696148763729414551448041811377189517532735091355517624443489481504366851166903964450529182518789015722352748580816968037842272071640556887979510516979057730477980391203740179159071013610900588892946697319414025319856647135704586805842031905356141749980807591222877067887847093841651237821554320524644776999119342020354269663422915485646112500745367622690169094675143316690023021637300369136717396757625265267964601880955681878294116547660549524936045503726072955489479126797765716459560211607479324685447190544525274511600128159952871909260998061139467791248208471128062165020927257804379170004906018460109145954827848246156336418415077075813705748957700110310525839760780693872475201407702415964051788720919005586834698481037790638644472013160897606789020436587393363610444887078683518740489503738333128797947683614702127975655071711839491065766244234432333628023180108620594672101158296478757947096173636124263446536205207876111771192626891459712938415327025418073979634621206698692176476987736998652512403487722778128433797364077206300721041486381351501569833731359594814199701924662521809026260309718186729133752206204977896122237229630810131536006165952070571914530525737154160891286197238793530474993069285974951161941081189219938601021534639929576207485808233906422716493802844883320709462944446297955361363144938921156285832057933836153027539322293847284270597769524861358543095669886612710626883163318359003995832070938754064057734478424469299929832748629200979537789664272227407315855472848668425146185308141422374793344190474327277777940401545790045069199234005916174588506568437234917131952818962951370122831699529844213845596136478980184820617755992930260746363523718655916009265858795529409315723182405551589538766483330646228745055755526409327535578056080707336351755903866174136521533989588548156943437812801880861419299800714577906293427043785024953959435340906439690726698853725557652334946237694427177317208761035799122627124009627583932818288092032790339005035208629605403536927081549727342487165180149741490408556227421881901634776123005919602845788978113836517869991051323873758668419041541232303473487750417612888206165257902615981011580801839839743662966131666779396471904151468167865910597516461618177442129977712698650221012621737160766152544670723470519979533379146748840139470758639578080996894023741624897110200425669497038935072463621206042489842835649234651772510155138449807830902743471588469515284034942845628816734766284415729845437791412969281782262121619479746117204704949379999014331496454460627346387268535860898460132450574671191977096419598247781007359138346194740384944508192416234418940643074928797354692522632276088758364384649908737275275037103606298843786074204235503822524987932575681418265831199790107502139117252119017685556878952608452112401277334724698026969661795502702109871138610815255562238980284467171625422224127728817272712662150119408213082539533210945100543794271715101608714696703296634086880400176776678354549104024734510492300808452753208240422852711836868488313700135683857399576598703150473926021245997938414154359506491824591171020878706906777022460975769729171793757568545487504964342846988853606000624452537306795107708135528970089888349309682146025692421321454610727980183923999650369950390879016516582090131537748010406901523607778815621970273615963860370305047969601072319181684277451853702820098265729325988725064713514463415608510834341493689809985208939060813587140904961636798397116207812518951409263129246143492121899039905278176863656195492889138182386791686355655360267774750759965779216059936759256854623324628972872258314860206425344958954175046105257840958811332330646919159338793533157417870322973851406354766988697635516707136745044626090744480373058592945600739736287796656128696016878537528345121918643115972716302648286649268513160136778043018429157814100768363187197964221239244518342423590851707372405677810335660343911722692410397572548164200985237214307346917590142163512953722836224885294347137211798826589045725523150598287385148411198149537213895541819145833176896765446293911169143261093209797571420236672119234734197007218877422244390469501511077142791714863111350869942615026010335062651884542611559041187500627737853081571168906558332776111287018576148069249725185773900345539334131458849785717316331400253669599669257449453193213066665444395837163315555420243911537919685305790854319305549476407029865208090863572557427836494901605971604844677053655940686858665410702256154171377906925882154843260880716859025933778527709412337808389875201621085007859667003282735218800995470587745627315164452401334752844267872245547436320998987428012936499748510494963750501917028286918802834821342711200526585262844428772946275599115608412845152498363806338428460978183967504739619108664434827006567974513589006126441319915609787982821520142614892240929051278288271196457005652530992613020135792570134124429623386835855275987169557463432002915753723362329845204081676021754875916142351750494629777718919939137173421257144548847392294260409151785943844420531474894318801858832314649372960982405761660618065993249382760730572831441784657650794107471376539162012025963727460481103993658708814318374330222104787985705924919571140056961158556810862961632795416445264542521749676523667946304777794959191087318721741312233093642298092741457307682897582771570151730793606073617591264888200188987281460345573816903889527433405825062239981052929570333297286543417548053298622799054559257130235405836359058314317370290458115570838271330132128548106613347905957891204605889151217164651184136820463741327287749348376297009128119736687762326492739844568209900912572995718890692503617667187072417582266241822950098502630658694382821393487574694481947267137116552047077771972956675352857513690240393912869332074680580168962811526900867599594839103376872137032676885839609456851808207909850124555539426788902228667734481025133858520938467438023581962437019731157638673605335685300959327085076021437368600262444371509253214175784088776688709165707021453286910973947139819173787047368106297669529030563853183023601678680736479480363583904989539697779993081631617835668428015570111514522640178689356919619064500298418667103120606914578046180562558801359429285893274476172375831921459338380991644703007678272378587365685839153202304480541944855386890339880360808846192798986451420355032192670181591386582321407029713906100494891606301985145727771231881335189200108284090669262091818990009054579894533645776385790941252429401746767658206661388319856130307422463926401340966950953823039620968655238844573598272811269798817048145586037208122101806688498187187413999356244345687956998597130153677532702545093857758033390866054959642235985180236770459163233221924163824399654375447769370244408952240324577918123197776314909256405975909500475138077217919247172434796482004049703963251997868040605938532964678550996747840018746867193219171077911545276146522761651419158136326356936658020988559349980581661168223609436639612918257884348562304482632839927459452769214329734879473404296650867697454059803239492377843229870799200896725260454413208679799614001614989536379249679052449702549464049533723997234126757739601477744835902232826562500046671040485020938360614822908665740817459119871536382942596900930914908278857020938297448864287260095491775314452400888843531154195813375437550188680105988288458087317552830699537844078665495477750905291840928130347630441652886527074377278532981245943977352779980834386261837586871256733392445231657400799451559135675515409592697914545595403093693629489677599760445345792439645247396320651519743576134224401374659190984052232084508364674669290906129292618994510740434099639145383832657386686080640463552423209372881134139868971395070383209234556006764647743286318876938980335615363736163927658779561847010520212009323731931380150749897760131111575296774957970641538207850408158070314252444329204175338651181037680193856300336100800939796998278741807385297732691346277208929141209349738462802162126878311622036297317937955024280071610321720642318212209479574830255819105858275397755107005646349017179593756236756391601397324056526266372305279619257334951524964216744621200032518072079185518624457248717762872795126275962709471110265200534782863969309588034846606811720890206828549427493818690114873334646443320841981404885819444769949440067166170677161418668780756446956651675389696881057732589190076277210592113068443544860300402351765968851046844892282468727100899040679783315840557573516113505150577636750803237236154779269326217320897961049574988958879678425930324030739165705588798410374376766614337922627941401582565663809570818397024003584063818126682057925043084351148643957553449559377670266140766482835717780684861390875535047375952287983798398076869745079187578210288600896257676659208060164233117034735277488767116855213606045360336001805067311369972865714756112529000694945439288590956015294549346320186484285433214486825877019873100303503863774018020904192874258735681445228177980214188339982562532236250496760881440825996482742881553527597852821244012698511498532899504159362719843796401454839041254811668095381925479386042598399051844169279857441702742089247220310711606333339907454522224145235925138803719949192692021070761488521074396461422331938520345779142776697391554519329348366957401105217167524936613789833747567961340662191040628364783948154809553746617110754808113923942427220127630224976200310980136139476187074883869665286759069073804425055235993537750597814766359838782651668394600625234220693109920704890510566251586625574597734444118933606342999601704019821878428064864242882624097918560390892737562199284870446688818414224819959295553955720715987342306933221978658073672996728388742522623357393306035010621169445657984723943008660606451693966863481879293417910405020102863127402825796883926957633794495569296365160304018863412885840432460706465537379949639778787207626025728068195271021253491794143132140610510356702495720723537824778949145465796483342396835574837389865381935747564062804973577418829811804427153868742762959160321666668322288851413595201432708793888825389791549702343802917308401996867214291061375583324584869012362334614375039562120380809295439995071852887691268725518173613053668524780283373636139492616184155328272455863865190070940072941484297559787679751287619390627175831504956482078177699182894360718913214792230637311075152778086512011942144785551886807006906383491991069748692735053782769522959309886886082096943559331175753541323997929341440327160722431486389205341692949139093086744237818018362438112704691301983986419891893393358688894666008920687272359711724749749845491278253888600452075836304866499133558920843798839071591827498242710956914631818293986208056051802580451479136793020102887222050341036346502030501926763888015353916002262998491456255721215542452299195135745728671554792393512208663094474784520092796263869040442904907247516082370473003812746494819918904093393865852102522822214969365890457563350592548305473843087339563971830994636323043026389048761745226290476783428460394306486211790645896881856941094680046572088339329826102078838189977632207159635593831141840952866040287022832017960471169464455874041937677844307720326574475906085340911731391511955392436390570848496333492649498255207845164041592622905008517604720789286864124952879345732683668581769286300968717018742563039959657458603975043688557684679553693620369418184786946853341242880403046345887833248391453153469505620011565508575254936057120567384689750959475037126631331460543867424548337441615646698100642298599164695600716022499866250349300432109565930845204662964825541235707025661646029390017360512259637243041904931898891401714644604139764765601341046512661930670361932395301516264717444132818809550367787990493538888382126050874476095154159104459929318063080493785981511038663006272946409936040964254999530362670594411765735537939899463900970613614262843978977930128432713381926410886957359574576234420238427583775263786296527382098561458312552310645085216581954802034813420341127710396141840588681179549130644165886452322972555818401270144543999223436696522010290777007110502542670172417912218645577560300946448480945778846045813158736155548115598378394646831802423966899311769775651507310867506320504647983221460530081360594272044205419762623245054953493792548914259508951059912841288064290078541664199249865569630283533942131277619852470760878464632286971400588461424519114695421874314851801812940956964999337914592980050480582388584492588229483016084820143326520857254863418665351591168977526972453917510625409419318752249270322769273426228399948820276796693993500257199962488976605678875130891367303979818274464045015212949827131105852974463913115256412066893861869654368923809751337111006497979274448947981874956291408523690809407951520970760012771541989560480746630504150409165979651009613854642813763923799807398369905618600270843022118663543823623037549381374132080507476838033268506194864261786914899981804998371904337879518579600933274416166593269788214881953999906985209452342655491803332425794818415542094451203432608009577459871106583050816943600365836873230006963073324387499200269770876755210086376433324881192925354701841137139669743969169457430205650927552598995942126637403088825383237900249725733494666280741433586554606511208522293672398860484666882057977475579386073319088461022661947024272078911418646843747019572736017221983334464321633652635417312945757959725144153058606417038036734851801108845867532812604152490354274060619072101512720741049624944424686614124412888554864584249130600864380705740257682796069616462599915902381184833184222918313499312634111620698925514152871439433500166976942893595384096034866913180506753012066083377278687686164155684413298337667763151722751046906411739801497934521201645513190081698387150149768456086174664882151822253566996376242123380515817382937737851390757649182057576906131748207856283743801900869174479918558948034729372373594072858604266093486542123378334926089942025633113866205036722288575418081163559809093130177208873977319683426589566286737431089730308840347601807443855087526210135301423564181990016791542963245490583515862945687778486453153569093064092905502628624058138941647900027830254035261826964813076970368457364355462328723531017745368910004865261956033908954003152538746362894281621750052803916075904602729832890494960288045664870076438016620855376211294020553672823255694089947415114497646432018062913475383002977370386174241476997000184829082093907058279068645186306783078396780109314864738143095862465242760121034690089984728762994262432827897088915794215297736108727384785895357670521839356026453637225983470584737665628352506904804160564137957041970875491295138515413221061787685179406825259502861745214391314799409680583260734110820201987281955759967065711273993964600133954967585110125220704720344758415804326653576522777020495250686236928997952279988515471151058814168392848368239045451157197549917392717842768088365569054882269818078969456683631158833306471347914913679387962174525941006993490670901714253866663597175979920009074716961965107242540582861554204000902221984912392332879677544261815266801660526398598184774481250958445704938281284900340216933326164386570361792056006881050611826171992211373936593855195567146630354239482082867349656851637749645880860496801878148954775470429089052972943635345444570601958585969464567450826218648033220790663643405129017535867414563876470949782617176580366120737160282060874816123628114855997980081890812077189346374493458092007566627466181847215917737377045268224871101566394177784911605510261791612237281451836819281065108160452160937692143121424382986888316591446376788396841040563157065654421110209648540435243961713178140512136559984245133728506874462030295140175067994290569259825612249521752377372027408228638752159386019277812874178781011254556747660813930515015518566750093949117321220278586527218622742604129096027389086778106812787066745605529216486805589659989024060153822256869061158324434589558021263847534996505266047420490900657392295078232266539172840691239020799972028307681916406469781182310949904749864070717688016086728207279503753320671179236144488627793656086016015986992208143782948612237118733438987381353463272943862308076453941461338861435813635070865530103064085049496954099407112548961031358361344832530855934518052860102901381574317527554549539323813164382698826997320829475310807142657729921616487494807712704641003577959231714917641368085489059915418052054624991886409983698859862286699034663112148201040098380419888315728192858792098145702931041866985859640672103895194873810016439574824571311552369457995882893062672848980445518732302981775783937074736714545357434971497528493067011480771171644425186461883646056798707247247380998202183753475627991074111045105527364648701845384946619947401672188706489917479226966714386100851584856623310898090192003395586929113144750266930539476122904119586516905928029123016686947460034884978107203063895236264055068853544411862668516460179725531581148163046701392532466124385326274947712642526391394070571883075024795346626451911815191523286077344915813821891600809499260084428967450685726705735761832418231964869036328401579363147921497141764209572202111196167561454663830053466834892035629164103790623523293551631360909295103206204964959889947104189386337094155685858182008727924596542713579535836401995733675058931490741244175889610531128073241674726398610583722396349392647741756153345146258029854301081986369766533102938109095752502873321492458413428803671103503433128412821162734500750763016025917409672852924473626359430717498832872099344704284420772387264562488955360672284814292449499414670720553916345576617866058898640617615209780217209910401477372734859897787737766380832963365599888291133902177847604241078000603226705219340010883854250692466559258467223074367553343107199970351650727776782845786137831947923158384279142243697233864636753780532852656150707873841151733715014295165738908259064193314141138665400962683015140905627680358367813146888136226297480303397822008578633624635705044302895192585988867217665000655230258093334435640100037570454214927453978513622158648570524410026449659885445919870627666888126359385837313154289063052672438746267696754554814900249228107377168027371844605713571180819889131975756777701855868597689550739842635036940808470162434210234307986345680597392000604652565188642422332081578594622680655467936009247763600677629294583151656305411800180372108617677632155030039775085384800112359730709715611357584061933958033387077461258645940593845236757888747333319511890503091325081323056891129060768809023341207635552604222285132459274566062686473339013372707539897694261684389451282745807469423699738084350741608912185323582209986696978348883554423055387093911423606619593747724040268582534121702494651958151877713256753111237367558293291232624192343327125713991581112364929326428869702044514811378396005234866122841369499148438032457442161967443496702576187357702084042043912846534368799699755107338195290764710606419787290293011771579351579340570768675685141952247666799144676707551002991550495454922142662551359427643039636682106705133376608860687185747695230725983359185228163673157740334860196991539526474727111256156249032051299102557724827595829854151421880717646047648357329308570495777656266297563435482974651421005680213710458436979485578522722550511225604097060917803560046582404604360159475790165831819260942714369199345602964513909131205881166624786828894120906481640204822096451355008679534661883540122833330609389615666955849464576189853891931648755859231553588725478047401531144874956007560092035373733008156460250636035776588264701364305214981392568654529751319585817438835405731135463544759915965171794777292153966013025816847243155677550010019515601637284386446805924915456254105726231178891652501032802668615745600305857352990280064918483686940356513755185080687368003579981483117767832394327347687116466870152831319276442116829596129573826656283469394100739842468318648989785215241179850883802607218274501527571848376904275585434714143373906551773528827450162971465339203182793715897852272632667079831000948766630890773732152712544805772792602580219151497844140954473899194652335248666826491706650933630148255267588589735714497142072199206260491184400717515056554187472278023864306277321245223873883929190641182910953259463215164317190846663911155056930318617286545808838000855231815976603021275898883855514945046228372196960670100760591723051525332548904798819464683249012909259497936232985591781140617737913520189927351861219508373256793340148713498917372980110551696760028907887644644315455685444868104908413278898311451267161167691167307187954450563195351464045851960786445940213915736461141456989776804276958618859130663030973562734958325677853666414979920456826570871544336695452363784269229726266903081387340868029015115538119705209199405191652896286084030888690092429409122832205395242811906774243384077111211084047397387150034034990693605713216660673158144528775684017232939092909525602172451996797989072586769400298233029103875478818184613838778721736589513520275860705529453848036236831512297560836935542821933421864711257402510642767579123456815804547400995315799963239214661300546917629154657891953881387831082152128062772954991592499717166480853412250633467563480270792454487470507171148652636739790093854502843307104279242153408489617442345644414352361658099476153085165595566563730871029044128354377921100923368715546565825360671262421184859374319025605013615325812826696434641576405980567202374114594336818184430855660293362521097889902812780919086659712160078206445133585163665554164848295416586306598112474541649197637736994783260869113604548823194292667422862512120860331695521954916988432937677941913996208094622982245367376005790326183606909654941193731489062315901023921422982209197295372908758942145409882512575912659820854045387358900184194303132989590274207053889800036848392779141623098305408139072177337680628803843001588844394116847875045534096043163940296380527035258926500132258675691491750396847576141494472111303380541689275345076934383031171301780229355858659599925694705494437841355064151836064155302577552165885808143942413838379002850278112416272704617224562142347382900197998400162172202858591296548080917869574948289346077222851242124859295583994811283571440483382251686156334175135304965089367115997961577259311126645993242211843426414009778175023240410195923981233501737811669273954196130002655879271713269328463920766776987282747678271652313066254153569929535448640484686785215909832683463195436843714447204752147718239390768280530236667561416517762145669809096869449376872757655282661511730513120781630764050755897678925135233781969889626643656802568985042159700970192940941065222592271586664692378346681000505343098237576907312855982566701622667433922044326298600653808560073492419954483598787724827664148489271501426777452287634388788697409449420752817680963316782299907948363807915426497275288299717649059158436302611753826693334737157028306465972131674689420139478936515870965750006498630189073476210243560678883534877114100114469323696149704063420259293849236726108148830474681582632250261180902324586605606310081165796172147203401594360133407704905476042096483180465681383769941130390575094919616477932150192995936185698532715665641921018434401703845877820931266204553285947427800995588268815389122096117927957467527203215526325137875123844612770594854061441814022544482133115260053953185009601908052591690415276838924203299414906828217353280352949042642541606295652741210383219094831312290350526016278742259314893108686835632425151658418485193350368723049765743499985893475571799664314585150671730352929890735573220737831578374117489022788928950636232453097201245685874817773189109719225106001232813087613002193887296040403050390549068313843122611417171465058325915104977268294281995626749577331732973686562235056847418033277709177859841774594035626680679777224568879763009003850181821387966392711994925904989136252048581961732237767796549462994408295978540655817671646799635664516520850241251835894870496694935511506227858178553145121343502654254726697352977788996776304392017862950354136281614599393575330995622337722988234960765830476203419792533813629143077212664630467941564445534972108267605834475295267388762675040880599366494500631831012069627084379165399399650091376012537819120067514611941152517694047032218686300329334210144267888445155189721121783588848193082853316183462074037724283640062097091419554738540493168410699650586733294249261616583858644001672441388306930931091765193740408606402260760527292117884217312026008950682629525504309176690433211382657510914711018386434256445463280438845528577852086288787377624800214784283427025615797763386980031718495647445636818452733309735553465706319922001008317062188293323865884191610762789073765761175630174727408067157071803137491237973531703895070015471399806403168383470842230451731039049551189702716356212440888713499224752358516156015983292087236231018053965910539732914032059981970590523520677160190157269797455617791627817301333216680681394688528307088382067529489106956467918499421534890453784218141076883010620571433980815985006808893539028984689331307377789670103008823154728069180113215530363393359064045076762948781254869500874321656882543089741758554193516316334136896075920334067845247456249017812316108858107892286932372755736550852710795854367663198275874375006923385230218927058057906992558321726882906007583312072593982673583089495212029843383355372551558881589180749764592186388255192995077968044390309190166774572919521652671635449370318345837005772577674499812083802230602242644169530783764329773219753932788921073107742077736564731092999319430517998701702987060285928897534965720572324863535157437604922829475796481819298051906396943264138705952876494548690876515428316213251840834995982781723693243497229087024272845956026980577597244811528321016540904686891589058880178188185535244400095975850728748709140108791184276781049231711380303582246580248908363459685598461650179392461524494828486792149770373187804007753310167585818379033598272093159361975686796508902529064005260513365674437301028870707390751798116303860606497215179986619225651859231831235750898832033970633322689984477285983973207917363540337322199072991067826648729481808535286477827870402355328737353590060715699033616518269383864508032661430662052910487469338485426015369231025183560049192191091826783534869383718083142008261574569307401060129452450435007390285273577363368520483717778496833823054787160635820295298327967637172076605601275418285990134631656615693280646338437518765775325374782217254264726043400464165193472529584590078635955442774726698647766641220398548356623808493706991719098665193559829936464267058976742575370582647273708953558557200983229047512849628597917701563934488434775325269987064587376408302185412907555840485716465958066981688080134770076899335484236249937326693571819546442357241340844960662531454260183783966416757080660158008445455222071868741782999263949380994704217028077664894605078765534711702976014060263352363149733036292918441362477499735099024131575736809897997818661858421976896079885476818177207364719827938833845142530580407207656505195206474870864424220823896757464771878183690482087493449048773431761727254829727304464756470938012365267620423214800077543424047501947918821507474547687362327846860266085303304180989937016895015639717563027892847323270245550223345204233698594664063810324250307306852489966888790462835539566812353144952805168371037794111187958244254625493452276220274011684036382188256357490625236265874919371634899941480874733900598303413600560872733669963429673440638989664974941214131271352244879579079337562284804055926323673255601910017882864942329510237787880212120583692758353894792061164971460424514598370060170771519292471973159503314552906543808616906773375460097380022058304328547006736090814647604746619071067322538496779216929405204979123710036057246831750099220998799232040664527052361156869083825278692230197135578273954575704238675019185081325826631511292005546479568076512133220645443492893136696352052568113407596838538193001719322540291218027126835115814629390238742452770257369904405601928840351956790716656835734257643120171250263477069728341299059632661886747404239706487985696078791351110422004688708461166931272607188846419609513268757384571626927744653924149362602792906918190426985706858109696835089164433424312942996812046594437782671178370141788831210345879339340115138347297027136913030184447218515655383421768307483666616558744963462130189797190093426740082087465372577295601207119153354012821726155292588934811302407754195369140259926427783008162955661493991315863357786114165290039598213661469384071503812238511266573159471782895003675901347070858755273362987151176196999413277623391786189338249926318249519860993534231036307665635568859642513534778976827334009750851388140173898559191560696297037180594302714846010914383982217643521421588683454630572892414895086492080441859465331958843048799542713179410935745488199875191123919865595313301745564415149535686648219071982612306469453934491623585816015526804946551443962603438509902541751575317690314661827925572880471847548071382701486672965968999290588826447315887488764781453562907806318782764821165410337747840321093221620762265211976597018287746385910203426407521195515875940285927387144970190320238872530094285463367647366408025808546559580872589278033259762465687141813963383432889917135540083976152497010515293957802512841106711165325449256206252281078939322573912842618506848258253385620876293896572667958757925819917772056588744596528042270222031214959649522079514350371206518511206559470413485557266052808168677872922904812118953306459336977616347472772430455659237323422192262402701875556273542330497665407013359298455434757064556183631732412928135405689424664937238565240905827357991401247754896454445393289231284250490124388824277877502623636001994844903472430922967396310718948222884666518108232428037599930998556756667556241905522610427001277197271277473866200842005481862516299292448864666628197750645070586792289822173421845320161268735545931831744390018073424527696223605152970415471431899431677266111979456169517337669172797633468668437775270336524300932073096340531909029970432484391487092481885774484615075456449939255967850546789105802374434808056181103547347147650847187706634480091739660024487469075179655395579554023885895370985816940776173974040754562168276396946294042301465014160588765421368323316336922887230575139066970221796099554174085626568285586484909416924908601474376291364182923040821959789958287786614228958102526666705714910910647968299064298373972608058437604521933852624515774281594212979118543388886537272030202337808964207659867724036792479163769212700946887291193540253376133349578820977083044274433521740245202566595595367295936334120445370032742720812496761174091609290637129114388608521274203880421364940675016625400859001327822866599395543305546514464813610609433991384930553440902050268150883171202412863894306039680500341340121501050659963021603545826100539333032606030476276446945467524709157291306671398768961561551054923501363800270045501535131202654186443468346972839875263335043284320258415364704803372282902273702731139596291279724888942811949535150357258218261875527453553128784461901022903211607738304687724694888473151197073497112931123009655808067547200279900842064258543547778198249836004841883434726634603848843001617451330771736451335890616290484937856894807421234424746915826432976882428280587966166871541225458465237944706918851922691452194124187595810110005569899510991663402037338200418968580233400003445865814104415327049871725033622389927876988041350110591857084986550249840559303758849786253456985271176595666570673145669245844248644246244302478950568794887476223956716204184457108199837055485384134962535105414310330571205838690869455334093810653367276732820861511691999918943687950918039121317026291786330382350800584405596408956356691437640465959842703218573995563217165918887487399582194552318703035174651363764101465465466946798093585123998749285736547125437620263694725659512832409243315128355404107341979772597989478383289465233804550338880213747543681788938882545414760766432083571534604358944070243459247176751083870209174237595426394584679650885560256621213200621729169645313395007243168125819899703793550313801404209646051153873401903439919254146457634944115101665623543043043111375378977107423090328231932748602742613828409109752929732405031659499176988669206096248848417021551152570522761043418281469095537398864261189470470679588098184606893089569309096501010756797049500331722243303110586681370444508887805186257240213710750102655672122039810213199868799479566940949772970611962069877993764066775811180988330116693681415210214598811172744802938286396150830430214534158827610647100112543070387568781457848067608182513980377947024476171547319053937929821555451291062494337442104851691813392902609456781209652679565039049865138035735140339490196341662342112367157484124512128811559689375709527146437830546794953896769067266939159410892890168529653554649517160374987522990134475175621396633001140314278180075896805614637788897560824298027874327107243813966193519061401159957630838367471098830352636853496307590220943968365723660666914289008985692233137093575472098458592661041034446669840421797321332934863510275257732581796959400467543958553742830140112045049939066684830519506909176463330010478828704689315011803583268019681955670647804002211453504489245983844035501605622745301231216796681546078347634612479929732412351877076204404306909066859475454011464592361482029894901274169738498561504202330666530621250611847702685023138259024239399691136560860642500991253537779894359325613946000908502723039500353348576480381308201487821756586813129892646005379433090101097809897657471315735775730003673034335093898478766510170977106614797415256962661779630329757358616218730526415278737290237149892241606615632517824428359610133467495595174215055687477287384335875683025978502960329845145229440481354634245415789558902542100246348133072932383461111356644844601793247532232856070802474483018239952019019942045562187351259449158213318676149033720271443632322377799354207937988377927674622996187072260622607942034236137890377693796454116002219578318910666476177775316769315728664579188813820271346505862067433422110357522573683953405564321931836787598150047999148145636006743962982705354595729162955731839739377799434829684826713163086966739332470382854655839830247530937554346817018792988499228291761183380466011997283670831814819681286382468772503632513397259278659153184091352229039585668387179869091503972042634067316441442982673657332858431633540242344305275909118911341624171567842145043184182267386190247922900064516958402259355936216583952198559818530483305733176238176504378360684773095504636692143695992307035471275939886299574068245304077429303454207053449765910215553649419517793579865491908538195912790826209998014859598146307702814865463891593325842146841019500873839542364822732133143612205521076160320673906551997165609046693340571862646020091931809896532654841374359969232512915774591150416406861854688898532768183620703183082190291037403473372383289987711575637763255470502430935294840746167788736770249030381947230303985748555413321283667915384259316174957205024630111811380275608096421833696400681513541726633389785999601640144440137493290383130676188078418888964117561259766962824585543816144257464770358708808586365134769169173798894394267735003111091518501352722863843222722272744489214264905640105729353295481322656725610049134003421838119992911949630962609231317138331450182927080127245717587801764090129442272704585913427199314998166238278940336739635952378983857381924531979241034528294339763243385638341216773244526221111056726936702914762853736871466599290562435297612136058821917883637684388698479546788175187410522656047262589357221738423878539986442502236355619811161017495675842722485068402144841234928940842592902329875241842665115238068157408714885247798689644011565881357544876552830345330040986866290917909240075876766649645625175335372148057726017152542135123388573530463716842448678710843832869079250750570437573507926217272969555614259939960204884323435346958186458371988693867309175669660187600116841058647773830256958886675308637302215530793735450759664856951707325818397583227949029470234764949891864272189145953836187977604166669367206674197770080032153665283958077762269640282472212837747334979812855632212356167687461447935648631770676198856246308078777224288283652413287974147726918432087327073811951382314944513466911474030765915451000832467675052223652440595089025911299161675824924738145674504077889155621109728878329350423556379778444349693588306830958907818630302278311342250079175069839356254506685774587075668093257396623362858855859040333486074546978986412337505710153597969711910266092525278128142631436950313497148886512928737518261686026123008566895838662306212798523227922696736827254277878645530642229938904610068965686069249773102439008583857682663835939628105703221845844692291771438077888312602292703872009888354630801921353426113545939522551900767606919783324869520001922490730925061333157348878046948363255297968573287865688540682197011621773895495584412778242069155047232924459069928594023196787690117980687053000399982320586727707315361760866233669950641549371774679368016671425034200639796083580843478018761211681378924432632525913807770019454528916738649182146410627506988827569900199461108428172131765141344473471169016012355021986734158374873292201339642018148391938456221883417181072506633762046811302953005776250754120076054414172548892132764253360152866318952922106677674649137145647258927684900996883302616741241212554881577996940068051299694827214628374525252410570135719259299334114800657773087677072345501305875276823375672551891800556750789810895010655472927314540501580470175504755119799347163082481180009530802587935630704221523191308658667857101019706372539802384938248633825859578008027678177429994335430069419167551026429860012201364056956639152995325460358773086705798623647017589843394279900715256880450355456677047687153104304075432843383562771829325616089179485086111101878441411895642629049332419450001259317035498357499805926365316111493800967891050662597935365314490478724512916918987512601312388444310312317551418011673849892240083040739171091651967277932429891872446428659480638537581745664799098380314115314516274321006831207747011612000532048814164688208895476167517970843609159023288434668088891635473348878376442973386554243874172997245189251447140500594880448710235138667364405457660183782813344428556984802942443221730508550652771933652222180766740761089417951796952034634674089035734746719342732109717976351978531738473191289752019530641852822239975074296829041273893264100190299812725420846820117472499830480463264664510992595807048594383669140352662402660004009820433520374623066389458623516362571691412607366181382598037520719473528426162953238913725081678518702307996261152028365120484540317647320566891436920169220238965315121477196322996806352394619452843832477501638683608723276186291507963126693919566094737248116942431631566425180619993475105642336979885998969600878695204758611035465412430943307657279364085899626140017988088647453684894109713832076368175793134674052897499648960568393206437384287061552904659000262344949600328317138083064287660157230357488293996050367474160756468826497401046615456800678313528390000043430551560205406491908937047935508389844898820949004730943385750438848580835771943223009144056425019568758070492023775155860359646074845477723784536452401787779436301236548170546570940688985012019219087269352528953504755229990836086676831759749556816203252000937257679860799514925383531165311978715630245174790016517072437546628989215161579107612157157015670645581105412979245432028729560250780895362887252668830754547988662146541085689960890445096570127210588440448010913753014397373702179059333708238258710443270552416250584851881977426462452763071008216669758148524934231842543855689785202830985231496807207193494914104038462347647845684133467595328669664013000348572980186902134594876172142114366141806050736776535434840716329228442695860743277626754618006677332589008236897862618196240279697457656288957706702954062050854519223950681590972583890520546145327830702508720839647962504757692550068812211520414828614212460283654237501367728718422257646437073528784766728039960488348972470385357249860417670017609387480251171181385149419413324720711039685767540908502254126705933960168184498226435090770682147187951756927465684912808593251008885134063331477059944276124511926017355721577523555799937095556297209465976279423161883857195642707632045791098001148891064153247015641090635539775026514128008224510838270798751813416139831821038869345253988305528163871687854812756432929236089640889850272837179124773820524663384724451145448190796998668369850995221449823325210565186947871204166434585113513733224416689062399023440091570563110958015141326267335835450692212856522137422092451944766756968333369903736216618190218469423730781980261118287745084980216450930957257952428926222079176190241321408775844299942575958458099711856068063573864222338576938921110951763674682370200380291506580850684318024741536528815665569083261147842057060124042949042676463447360506025314105233467117502607691818521243138774915444452533575825513565757687062708051193572058737702128363346719358580849251220111230825163084020096444823276694406555195672898967214976277144433295219047449310683478855214814994456030982921845417769809972380349955246302938041790555522936213872188930638344722300595359841713040766850714601731360112075555971114180639458931281629785601823076618130886655964535795231262124178158589588253108266693293106231037663336287226230059272682405001364181525707329401499938499513113817080292994205554290076040820029322906196449579694417761692519831692074957208764123701600636088825972356413506330380293010178175461476236565302845241376186640487213023838868539028241214655231834973502106177885841231730543939383957557382077928920162668116494571330042933324245067774724750689470265005683606501004403484661526533598458782931522894108352959122960432741973668805743289260872189187357354214908424240644344221733409278851627010706308184467615377859947852836695843342182500822965711486224873576387872419216320120172838500004063018530367435494092269573124120289719732008767296157901248496928588856309696719003401718423058148982335449088217569698932325070011897312496583021884769324650425952939174192757215612978724287580202515355801358419444661125464334372252317842910655380395122296522472158462620020826990995314373860117042433444235639360082936150474761418866131522455467852112775933157552442230698113591563418150439717732651134373356459445884375074206193715313212975489174458226239895717970174966340871872466716272995500456914850200221279179510262762087676604734408546414336350200202938788033676094502453197175719924344280414741385980884482537953687378448308883784200270244478314151073067181258792606037266234326048639534115660410829079959606497558943621376493750329964164682644860559971809602764729033458497567838552052808086311126581680444023286744671566350812940858502276159995220069311807029261005083050298609310610403303189175057619261435959510857198358106851421236949189966751736428463890159925153759733358970846660043744098667871664192540162920717405202245468149647339816935544220516605991356632149950246582063096537294894947492435916071678586572210970992729381197920019821311368634152404281751918556779802921908292379524190970071344169551257817693444465075291527245617551051347064864109965199479488557241953281977955277048855441834015882006349169015544008056822375432869428202447302021174767504387136763984604452590987684738860942090722354592017532182354350792487701256492648884820411620788737549647874748165679384253983973030301856599103608501164298574930452200832519402998170511291560112118029412315667177762261062394851625423630195926892256348007517826386797520205107608329294091129399187841817386177745404587397663983686009105767043047565513359749635887278458368868911135665050254506271125273651493193118673151369582423455644570761788701868488021558834606403604999145206249268264891251055821892164987380434420313821848923004407650572738988476139880769221265297838617733128355653890605266711678229791427389278516491501399645618369445784299296475041922592294667899009496225638941673657942774932114196782682408471078788588831652187345024513753878332621126751168836080442941757339216427045036382472749555248051437965123592271233524606449217246085215414881950842470336820339694219162556773796169272810688205797311673934120931012471254437852898004882457805989655614209636220837349912059820506031577067112585878863437813496460414651432204491528028611642372235345106561983507738120807525701815085476599040299049513908075140908297454746281929078932984940234912389331760708220238394999491115128609444305653337108894681435213393489867084401498680630865918968911310723687102603737401961658504223226610910335785191439133494565486902252341719293765304305863071657192466296192949273254348096826520312437252181925681713442454281905949586794560954979962212249551755203864816259947835977299864348862424010372526639511352760424392056871916540545937588827260300609537854878360636342090570624733308460221132773389892078658100047114477612719454905546001334701080801616031834359324725318240654851883941804975345242947739704596526111590751650237537884433898979128169792929617106094354317787257318235289680237915299061666171078071815011460444945596351086139759678337380580113003957053924847713113969651163308132400690902760513909819752397164979139037407838629150716317675823598708256590973945348024753188077197167695902437845038669966691097889657040930262701841274119602905389463828799281747141747625959794904883480344294481511327754299776489855054806939716001812850921338868957957924333184826075615119961550688800667872152478993170831221205914554554346324614662963184844859559683723341577514774543838060778595405358640178190802463982103272001079728262434838254162172401541824472050945953836929746834654914201894167016304620722943307658765395660380404041943058282314972388437594167753690358756926893315975091798726249556239247148777934570757184250334615836507426989654419349787522966420158019239006899577969781530673431032141047245870982647615790846840117082603743846482279683610667403820328154089949665030776483753540467354080230404246994453709607143243417512038710290018149746908156070420608907054422692513891310638112347741406350608382572489961849125683673667206992500074047067225715384903360732225659855865008211418513633850452635594858703723393523201377398886388640780818065843938329480300553349711777189710501210046330366278731972757403911945372847736532007528869582109123371993040844120474912009711230079015229485367491474804513342853290524835749273976518428883604054041091947431654333051782430730683296614513517185747021744466384699253926501046428485274364295935542827111797818851217158650701830667649317009193077544101631108403944707846223430397054240840808410092052591973677164096569969314525335506652238112795027785109480688792042716451855597145131793512102894331431758075374633810043846039115417818278178750736128421688499134709444886456779218599775474155049868481949334888648449543592884047568102265499125652287980657367753121057251930150076006383392573075688533141635750343027352040169328962908056920925297398880333655068886541853302836722296380553816889519072406453047939440483904209691286071848897245894218304894770275116929912642117925099066533065853643694803208418202255893056251283077920604175789379406925969863630732866195136144192387233210230167037444201373800369061686525928646112197086680346298394947585630517357867769714740862573792074960119840680108322269841334134154468191047173663311012411330469691780377160671410199261329452479188010319988145839636975360622558986734466399897344863606722187437262603508217898484187529925818072586684385266337563699050879056132389999892167551358002022462221003876562197001674549324937081567663721450453988785382179489746501194062190673311805113114635907990242733779160224087198586871744344968011439598664612613294220887273490354889326367169892098896436515559982959629546790092334048601585488522815582345863844715962613167973671124577585063548326744662218751798000630791752311313976296643862052265266249302825491772665490210225589862241062474057519061168626459336745857805424774087575748306782635266391349076550211533145858921436004657971142772967830585460828708207107756437012544139433925135456352292893695745395472985647626418647415462571087157746208623556937413856179279913885582620612924166979191526391275285460934356316719076102437924188250215191210732489474723077137700550703895359280132199391711486949051114266742627293076585928845653150998680009400671277445243546301874944250147736596177353771019434235904114634785166323595452358611857887835106537921078735075224446589242770021533730054494212868660515104555259862737805535448881096766167115214388828882313186735773429138138977640185359179048033115077150748462731414142453646199997299995522658072823290380726410514118545231896818335407163592141979475223607227104578425641616687190550282111337543482972684436316184264876208985662340472839420718818283301790308414547889426416802493047508238566275587860711317733770673948939198348366672754312908851974541082274715310453605184825263116569098201691926196598535291948610509274906650591959192104477102562225482081010249184621427198225440581591217998855872710443534076402278679530297814503820304691671789888781288928373865991508005724622799645023483478781395468942830848154989480923219692992709828736769878665102845199387738312866804609643105489643557073854655933360915653083188208791670412734364612509412440348848902062299714514993781146212195367088349045337719335748689693111973193239802378989690619504762946257469359995348779967225752231812615412149911696470968383995230881252638342045759897454410170722039510527093529717151078246634898133314704178943306223832790941530776960296373492674636426877386502145965614795306786183893193594458632008718301903348152004902573675572276194775079150257405862758203373696411164773824934304093864600221076684704493008441775608975182772442400397330547433323738161891232578763100656120127214895048666215885595046136291783239711669903264053215665319347830520870830848245998084714302256982198354583729377419336938736922149148143800245293106298733853001523298134546427007123310292564100265082861282748803608185849804604045190015293175363190728194853965755275684829494879659098777282479516060862377785282137721171149239623218570262421840294902512106922443508373791868905602582531772839194179031865104807022890159792701978029882021313583124599309753871181352085175392597917340075624780838192708104714466736670396212823992229725762402043501542743400281300553153567930975027404104154641756717563652570886809402677866878761733866743291676502746520958984884608992233050381238814500630535529842206871105308767630489294840132353810344031671290502336089138811179249213187112570295488568514851827431495577902190602711290637644372995355786201231206866423950201757050819465451851265329489850409810742663091783127784903089747712225737521683185534825417246607502151558040607216097842471991493768215197869613856975116119466673834871848893118690108684327668731388736465959238199280494755617595399468045776578228629937819530102485680351619874486552093833843806923031839098128811836049163965640374686094434731888009471275266495098865569266377986904576013464844547946537611666532242785838900287893694354884676400841663407314638876440322540032337898180802718351135100399719477482055650123096718012100330872243705447654591650867861432577753099969468650578795248353953907703319937530000833411283567876170068366422734323567309183472404481679622043835173568037911424607564800022662278636900893649615037653687688489195762435855458637482457606687280619119673601000523439053443515605976607545930846067579568795085810135511841188485015041281293848080376468963862911448472560937819971317281488512449527267237584914855531138785267152451173312010581664699909003128570877097849231681599431182969885066471723679314850253813800103010082744232902989041426096801148953344003900069399328532485503640307331347570382468574781617050216079519114093574194686623264670331013299203879755469541885558686626076336141784131275117744484730692259670603610703333995663330889295670420232709897556613228467311922669731517546201613298874799764420790547598260899006839259368098967585584039440204864469324107165899472525887222233253971497738118698929600198434787800101037079126699179620329134513684112684745208162520699221044988354139224613816975852836537075604941037297600020307847256465490987394261921687035072081393166012661167465702578521684690407175075051600519145429034708204743121671199667537123639543121893204368282155534140950638666046378549242627990136275378908167131678739825731748504263949585644787601905978816974766079075879538209795961495458782746701300560247626056646570229809086848590982277278461611933925592259777424085231080490481763064937008529655211887605606027644605499079835104657446775292232796328171282458992726301716065070065781172637249384945656919133457779467218609566365532860032662417686310008911614962409543617795234837835405802492292094560570424606889599214138087001023575964072326467197722803967204878013670586601457370788302947144031212521376989995939355543583475386039164763762361588416888156175437773525517718142236075614102190795116279506465134896941283720670376746130974153265701057182271724700417483420189148245292504488336380017818100775707193943532335275415008949190280071047560836816906183201439021092608430529892142161727057080408756875218084069530361918985054302928925183045947539187758758186077152128794040161323325112094331786593270998240359853156908636027887829295005141740654341498291109177106471949191317871185638485446528430225854975170892876624762326519313357729098390255132309190652372405777492126589655255074375145828267649935681755281857417016423181275449887157684018172627987557431939781038177240176290111327738421127952138125574149075525657851100256339336556420275496080021761928799762908398200398898437900117652828601961294150745146007844247807475711838500881268190197192475880295968637518699103192014281385311521894015038978160239399874373932783758078936061862231602352079093914241390547380318603929187666177513056149014216915023653798553060918539004452818665499625341435637886000559459281193805803692006398008748702560828542150562023906653770253042503179770547028651853521502413780454742323659765456169226770904723541541578371153240968058856498539794202650571430370133853678728526129222255760774684584854790123416807364852584727302264425270771512405352675146989250845754116743160163690655872211190287088933553651065101780184526708090545818834641955373171140299515339559370104777552148243216758508888876872745282545137270202862065250774505188650809274409813277176801519205415627293208457274818647229211833494120611205112525841279654896669373590318821323607143338021421984589940719238909782145997018358404074808795671548986705716895504313128955712000910943958239314319624401256648682432397944392762990745569538220990100100699359386502072266530268856935818443363621636067776800979576623773152961947788024414629969017146725250747473790770919471551068740882228330887478776101217657745501239175737382898556919575012882261476071718412191009014739014229308425609077484466288863756529392941236126933346270782463107472591071824116746078941327708324267478426502357034210098271920084028722444702977619645904649815227624111804336383398343730257385907209821967150854750629298138299842700928473226139128773669434113683046921079615561881145182719812258237203073487758186797617738973626881585022075067911404411123218197195622446932171906057056286241077080075802584652585153826276487271649158235681389023610137091054758300772966134377042623023043378355012110037875923869087709452825989733049527697403360038968162095370343756660955675331570464959396579440223111792254877755642580910258298921975224131970831583468589425740846370350177158141578853639833098756839003461758081848372007765552643782569079661512458612131013249791801559844678340022173539654436579625581722118817264254748264599285665728480368573138710251275190800452808468472168358610774321589860056482984579062489984638274792164647623551208791967362443209346129870839075686882528324015366092414399162944501287783540921315649374368779535436530722847326521216416409102773719151730524677302344907396358620498471166850530365588643686330769394793858530496943858002442225641227061000066573502319440063485902804949043450126963248937251810827520274581119089816953176068515544118019176174207106255594183848904300695997341821214419399560032813105824225039311240580028466443729648422250733506552692651525618338927294587347997549720610250778564935004796942607976680649200583488744397121283357671102132232600354952328037327143826944571865878115071830337935233462179361818417486791052363254791153352960394065806347866588085802213417625535699438538014509470265003503016536519130772676091543129541418667142441537671644247347640839803798945152049290327970403827421347285182671755836118835691644522189909323776169637535492191693620117138302396471692514106908357782892544132837743716812981080273801158624415933651152942963671038196415960742042526126072145494091533315644163359253519991604139032951868692313263637809808836025156407130839102800771416408448046951352928522356574427180252491320209819343865846140163780604117437597481521117993871623048165289569519815783161046658043216704951561324401205332455357518278703549095278739930333846679460843931706685870690461250458646783606657485549959149320879755710216004440807634871121282479262096488396090007306322367440593563551860883475700337703884445818215793813726523483414957113751082046209194923587076518582851493829659212067058291608497557220632118779524794517000386273707197025560112638008096842145239689844441339257090377057858537813895849072683450648822484444759961664398635221756332560309513277705858070581683543507585507434013597636994120136194689552461224148612516243725168099026796647310394360687506242251582415494420446112045159755285489851197588883475888231661179514105330422189228702921615579229767385781413544631626247278907211704272039909430278124032995724443391061301949499553397406200576836233896555619929042045481272675662539209421827021190027619772564381665868954268619357604975490191114432099908543662804435954689417855866461057808470126310219889179884322909647891052334528409592976372957707714618664266350219381862535596703375537781494578121835364858030015326850644566299606154952414176188384706123478804165600459345570821276862441814640018990043073580327144613028372560674604034490182143238486986000874888607099512904750008824129355893431715357543229272866368295603816488780523376039489267584478748822765442307252408665611091151169355541328765848296740116860525775333030632183339836514820229705738573523039730689218778111259986121386882682106108145928878874392010844304986226514021006547259939933388638323629221285081851974830919948676430670825335334997917273094263575170455896387431091237279043124785060475080585899528640745786440492503462957254365991318901765917755927037971166057993098389873734375436871641731250128599617766764341700655759542344666284858210480954654130945253892926189522289256853481550131834989141282241839063742072687961434133956392903405726102531643355110174816333331279708256035882033216906122194552022357947056790844189684958935283542542579886245282021745057712425571522327423664183158765380509024104351001598233749517452445421347967502267598970359871327352511280496203164987151741996768867498106930980355496995143578591483416105722728896146747173077406513697676025353710984803538425167387160783801928993237793242788144908719705496389650100566028292168795040899084994412794710546779158341074955800470192476567612787951828280541661210750223924631020082784538915982659639494695209913520852904480798195662083391751906049528185865687114132731060881151265291727016845210250933086205274078467446231166663191770571666797555749924009131988102326857411089373662502704724389639470133776473273041653051896342945423726294876209934447752252625699953892746465066755187720842019399245343492019258298166032064711907389131823140475640854160685333387671098867061796015065778124855573290608344857986185451950910717860166304759327134503128168089522929706308108483591944054945087629745088111236465655219026820870085569957740118013585496075243742247004853801246231026493041952580502134207476560847767896535827388224426808387903251938603284060315141057850743135438888116298115691755166667899923931542741722115812846700584012059787281480301378618324930313075797665258480540173601678279457605880074016329288923026483144194124409056951738546289890813202126785364670056797887040668279693340939296683821267842384069315248643399593351297480106543274050278272144204928040733073955345136053286737105581207482444097202177945757788026236854026365365669399170844869565380091875826324515919226610315168259892369546651363062704485119132437651778597559893816628192597913107485186547970760125171639959612873088052387460486375501592756994755417696611655000027907460953151697407720903219880287282203379201478214869044066657653506934075921062941379833739013252790029241867441667429790473840523922878691312944282581887087441455153979995217356677445272539160341941965942985562004351794898792728129962612106760577200602326058400868110176842781630306954960670302173896064919412887495298804003185644029037607717718086386855778146130010965747600279227656496862405835636514577083119091896340050054702286075660428514755460433098555388970092234619178147429835856267919682959779631793187768206113904109388382319964885278944972456924883248386731372420092201691077451966258147338652692776188026311920345041604728225178885141584801411484435955065939345953907351958210407043950461509433958523581336967768339019986491161880386996179187397916338956681159441427315359151465955158374563769003271021764521919250054455233272937852220247719574986686769891245249043872512910657667891389066733075933510843012079024542249948966612122435834869813939520067199948711174004746736496415790653065379927336222084591550885252669482748627267534047678033466491553966370480769377110298437049179185979976335487719664662872688761041947771613120226878696456053999860115205806426415634099624904596484744206144193961335483400090109816746560889423281639439007258231909115114792855787106558267485503478826399218137727989510697001912472826102753223475396039395534916244762270142556070744315044834356692959116291793748016733221178378384693401603386497941645256726093320851219245748875001477232028175134248317663182554802294686623848523495731752181630186352046394103454489060771208143545477815112222686512715138819269665381927802786460138488873085137564167582034590494319318327243158010081198325541105815255208385610066860316671384375963852420138181243232235479838302782924861775339280706022136454003099389233121540835450203423522947993946078728736829271729021677489621874998283806069797048791343143355806521077860261508566782309244937281604149824626458475457438354886395605759395809096511066131929383462991797796485474105646288064911544038529143652553930599711957411595882500024143575725132257886125623386243969640120268617197226176902659078058687344995210991716146951686730481877501227902762612939035417515136199308577685504556941553159746150429598162812537204190046901715029982133429186285459003186808216412063185313150778383355173908959518517792196316066632252386505101408950909396714319772556013309621684652729864809966143909618406432962277588872979177842363315823136322259483549889365178894109344666060354816349016737794763702818682033707920072161312441136964422042788671247698751598682473311748779456083980676929017676684628081878329364700894729453968040077980333540223021933155691029487102855327406111067404596127616384896175903739256665933930553585533880056068399477504995304096507763434977214304963681840582811335258586678131220959406329366434707043032679233745549082233339798637117009091234060207145213529684985377164543751905548591639051731049357322111821322706761067148550219720188777554614258022613134732910044219353016150877241867098819280366524997554207802379808044027813082245696030071500205128594095074719889831832482626816789371496519727700671518114167753196778884327694173813765828503892780040561667988945446503852984324055309551231929104806933532502349124282712703362203835528290553706110507447479450832010244465512974080625738012134065152744383025294837112680332356679393845789038334435513952570168786230445312254474290112748675992220737125267042929183953504175551417173626697494793046939463111293993598572897371264348358352133494014539766894997735068770252731846101756471305826096370470376350577270400969964595528914122530094552460981530452726687277736460522053627456688644112790675903488523778498137820236971319701730874679695666435356504411133042819749608036757638869928869127934031632834727344744127654049286494645185337089941369518700648785901667506651697616102368760582103587744359969004757233468933434721186588311615347450694585010392023175243142405966556546631743144889523961311451889267708594848050278678813783491141980671117946537955365958553791639865169081527653395014630950099327107731239222950581039574328990227718682326448097073052665487717338055310385216360075213495593655504909453842376961111586795705323625290520081274158053466837685186643724441232497352041372040830114657096675003619744118453581199876735075115637576682734655560659088624248224382122600763721606334480858392305760542288106195071239080373024073574964248505758028922890585706744169557640149663745013329190858056122115897247979060944334343715469850449374892941630382598977130166831950422071985171012454611043990303028685355958013630181163750314314332276818429756019990710365387100005134842773611586871119891134735101863110014510706178525562932262544464182908624773147443126992250975178304424138325470499913169700462207465750968036221898674908636342359331816312478312762740363039401678949247937034157550036746082332934997854593108669690009450401054471844582801896566667499744289686825125802694936024585486017256549193047908073125056084374317937267888034600226802969880459218084363323177930026217049311505397462030883049971357900150090188462069266874340688591990060126285409756569230800577678360527869170843488642232863325688478142631037084619265014192837406129394610355023929919854139850519232686047978661679717303560611403644220641045645869993986707327078342916007845127072998937560106192298577800108104337591316117311784825320577770093918793066693779388195156903079538154867547987230753172149155067494352174189736747856691238647247287123988194036522087772975568564005636479858955324318505272246033292888873353182702085068737733534535576580382304562973125663304552540377466916438241908920588482431264625112638354040905586636004872405768928418615954242192087025960410736955149113988592613691119348550853544177113524363640129890813091876665716682682295145297670912196758719036554982673449704494729997154549102072324710486039396461347525535269740416573176057342523713686238665431564880966936970015149117147507062694281178814161021308648238870136754877314603311640687556835643288142374276711108225657441611409958973186788305681857607982842966958910675003834070595797242847409280058702721656839258672898023528460396673545758920971624006966013944665689231530457863409047505640310612649742626775619275491148121061303424021960242595905771789593022694840982952051168252903061828589295466287696392919891737782437337679436398238349499608168292965036770486558498578461382499013621935370728005148564650592091617337014666078610566389586383454871536886385604247749988843956034494687946528856575602784677739473312472710128247255506089527181685307917409385834299129453312997969747567355934635888785354012558150585140529779771190712362077382919447993286826783392434723495854129529038517188050545169030674366971238869326730710588625370816036429969767904988186180078655476168769613880981700881167366617447339787600636230510351294197251393437951887413827137992668441026256477091744390699115197430427614849435150024171044656115486825560724370078516250016036959458600024053399097657148869453121170730087757514323352448329441665840863889694776357055574617574688504279659381885160275120829061766703960200041545030073459248543246646475901980608228945133978317541207723114583566821935882001168889366751278493492019963626583312993061566189806042036331133021754442870718470301455445172715187281683424546640134027728861565049459143297962975867188491247037317528458965220108476967068689677474578163614395456232774048807312502649865759833501161853091578052363001573750740226215953465917399739646907885718039551442267593428651810977027194277709359699787258866078575871442970775863877847458168717908380917136369004383707170667159255403424144247081261776259227593888675451183591209096273728461858894093991210857719258632065608479787648196124292522873697235474784124631124743481769859393879642118362204303569920187085623433939810387669351990114820672239271542717727312370877107697828839918980490520479712307083789361211922068547702436230680118386138419329319354176875499486066400955690393407320983612952455401766205165113593882347401382963707062526868158371861334912331785964776956552326283533858538147250907407978771206000070877086677193594414510550175038049739632441271862636923955430221726551575663986812632499516305968839490000428719857054747499413793763746505490805735727931190906613001250175935157343896216342282267244781106878573288984881724064677664736602551946480549525056210340514416905753793027862839755627320023426997160267830988323227386335004414579767274376167307401398706731788186500358011767758107425094364298796776493702689358291040880623522269174032477867046281332893607257762707064953735025693199656269144602851524004300876826357127494486549125837175360708401000244453671424688992075081373217690051653766688491385277918057212815093107301653612811074000155620539333207043808785458680056741673537890410931225806165441752774181780350081719181462406988248141435172802281074190907888249556603903647545855576275534252506329320212307611430559132026007634195442495490099182943600723380899178607743912793551522227280929232377307989122102285413099705054426498735281207192374696778460451076228835250918721779847693450235303433870257535775107674440996955264321358474748045520510325939530425466264194005418205770411465215705826202826412407736665754272963597137810324973882249998021532786173061137651520449481348976527460355152100081490512043372666893510194729803619032481817806433246219822326295103721304571542680800502304063711542812298042793251742452755147860387223770756982961145883628782477829050079740564883100199062227118303762518497903821080502898522522584338428159758311094871292910903626016103732071533142124024583838361373925898713360954257883790139467597280727196387157835509537973888272170899744295788595138809348143548915170940255820375926847199251706528724856494658182119631389803021125968307109567991797180521641762638787895129837322274297800212927556030604311062506927769660815170890389862862059832414838371940126570562684963245586532063035000819954529455921982657710665581614383601453444909993395089690678033156162331611862596527150303281213492364632843487615041935835509079151991354445283914493233408592695032855546259502907812162632869113917351895140650324784884240396353620777607658703814636677163457324635214913561446164200969049247796849686898364844312731022555750309279363312993496366351682581285826178321628625141850115937328579970992100453507851379526474322984730311110737057299230971121485874734170705991993801747466401973893187181327538213687934032339026756257045944075785617567488762527091681776752388645079171087191872491001999107556170528986215818125483776596932472165941396677834969132785806868141319541247496681291842801960627794188007093721322595225287225286534402759948550119934671347065671913144678328613134713914111938607361015084620172131016835387005647829987504019679435710378839798221400998986347232379994667424723503596422687638029779501887129454112538926212868615217679553270658237907102039873765524269427005612711438799084704348485293565891897917886087587614015835653148801526844380758948555181332034763266896885815137546498664819854874679166480149106068715290278747223414650708393389092938662407708676807161568255046011207569016337842382783372485974556347791350477579517134482937579535111772275337997886900137224435143647508753416445332906360211446897271865259597343278378930807361904976285631129904136700053256850306805179240350308942764801631123255831259770650024025727538083902004245727555310502776383894325607293438812908383809757016449666645292702370540780198160141055880646103489566066420997010162149679864743658175042650084507771653373639538097886532033456413580983967785796499934209056818605592387452647139732628474861279062729744686819007597693414396954596665716471276699948208305755454185486073417110371489218129333147832870059259602703161239073717978723587140086296887194048563573135862186131976687155197310648354216802134063413219196375240263106376742586823354353780699539227401462959782705525081734528838645148151017327660817610450377459664638583859515446862541053723333405263472577103733559530282654269115900620450909907715941997995814731666941837159864348115328980324068230877034764774248603449940816741466943800169745701608465523174270388118728971811799725922855440259408024768972131500839858972795437653132434689668334890761863457446819224903652886904273560791305074990705407105192317474296179469846292605039369114715487621889215037054648707455366073761230822745449099500380326127358733552998235960476641980785795657663759562327788506141053043901237044415043464608184448431802491311372707219578260700804269541670113434197874188841365373696267869485276533181755814284355927189200852647952686902767184383109428236470572269979292915455067173754631787814731714505923332917395894719391865554333295183506555042488902801125241198224742438659928477355043224751166976045711402302566783805724815437773844004917571589163999475990797835965640377444056484647489899105343525191560883042291609162951382368203901588920719167349135863655650978088969886976828656823175148928549785454156127264092683406083365977975944781885457625019354273616014847490358878800432365691414255836575533921646784939819353590860312701127356517761133218009951872237247846024904236039628101936268166614430502138414513835393413516272624549811245492964512336492857704221584954742752867817005302951825188027416030631664872310505952225996835681354461631738238052810629965057161134114832951387279269600012134630719862117007029871725827854431951133071138638629994081559974083425288683171739708713467142433862161614563150399916633884300198874270509418807432110528539132572250073323271333261428310325319512748286252290440441097488386400552617603574544736418180175723843442022795252236247642797497822494466469217844233770793232682635314964858815624752737950512792754029620821567034339513595717986070282803682009395492496090172831412756816539609630885039877522351725645361551012431530242346332801128479340071898624789517696373421279465416769077589990107229800175256187498969203968481489653870587287372094410810105020530076142016505008210819972207333245647904245989336019589805273629253296151955788864403492185247326076283049540784207059505312761244269096908990690837163869634501562098995685670034901648913625923453444622110410186442419286120931578615706051135912391319058581992929202585797952973010119962619204600366704784658452960841969026600861530847851460783105728856797987909662682301135955019832254469960511736180357933647271669818506300110763184664732658596209548500466100280135660412602508703423978657039817023816375317840441488267377431186619664961365022921595498694690667648693493026583953478265929682239678273684937440561474583749292572120093198881023888074947593166884273076043596978572845936800734137845038832597622906583715729343331746236381148672546611291187747832534028958938276463262584116841033264891002926141106285943608656953183100349136560560095278718348687652286543192358872206837397408584182276146088007574219568746090229587064997754165264734404360569838273346359959048974428343207160861746749619446559518951126131835001936484597991328858378944637560027145483975325818495148179797545376065837534315004637474861992132921764774639933810588712109386616623852877970986478908393450406531190598590175277556239142593176406178032216844440622091724648723464942883632725417578297376793134754908890353223006422922738104201075866505064874641718926319100758812182099323791124612420239756023588582202010770977633592346581297491974867264938411635088934355208692105419032582558608263738355936584710337199499090942550648048715231783002585982158374577477540092594290281526536195780296510617315745285965162626287507210076068537594553946645191132406756916179748666165787935560809424607184221202874476478879696691544698934455169346386885813207701540462641699829555560209222832267468304857899790202378234427907616764468202332919979074436444508877168938854160480958854513019345424048131203046155489329328095599834852920156375078341827804361576226721460708646280186665686054429895062167857971761342850940602398560194868924222888392375326050351303989198320304816576355606741738772936957962197539044618486766124411049766888915837189374477800845195210724996923181325704861982289010599420990925713968323328890573381946897201029574020136125997240743669620581878988511735568885271573350361747491626834341672751387892423729071723914882263905793771302051905082047077444169769027676556960243426560008046540557123985824574316593677578421315012466941855679450609048759832379239248198860036952556652542745081080348703771026170881225250814084319877803825795219692012885829450050023553515886318980771109287980630521982231723600890102502568781461294329898678214312722785923832200045211685062876108043530618337843236029110462639318880188894638626828532297798441113007155340277784351148272443095851250782709231144858436148512039684344914517559921401281135804269344650358593322551136326865445341583574743277447192032186266455028485871835140436109057205004889245239221841433927282804250855678820386221313203178613426254732361416136476375981058042536483241297616334681332428876569500848770912422111487979105113675309243058612630300742415309974215146740290484881869066758166285027128131715175355847415935567777708555476846009831353909211995500392290258669569236606666967998431801004137606700501420376315320451695419516784429498394350044756326731073420794892943420576039251051039858141000124649917419837583367562359323692020047751811339445366551450553492008518597402280599639057489840734052730019237987358421133051115597215118720935249792475670910776517534108705414988845821571793859608461979195168703480903924470054138789063960822707694751648150833172409857149093341609930379521204073248277488638675378259013262984363721272488228745853397679323232269632910861923677187260357411058544219521876704412115906177664117470790341215711434088707622629539351758849830511002081558668846693921063743530926573823771369912996994979278248506098850451231319240193772739477310316970960707781785525930415905067545570415039890601999233945359162165434737103547882588204731104883302045035945395164633583430170354345436364961643609726156301334227497060821115335841089686200858080082971008685737247769175725308103569470867160390784059555035856099614566467575635454167720325737769856875770887274490311728610017603923052382536766493395266929658117704958375834770856920604489017140238520282448068980557433901908522595425892896914234549104889893876584253817242622483991311483249586804316135867620579953578270218801048764697880667217800870506615738842893491237277466324492606193967033163643118689062312570768930549253450154528908192759112587510855122235153691521565398351249993547035098275751444378485275469269613208997306263820252614949683552378952506190609439981564438382077640622431309559043430366374256484454733533214957314443440593242408842158691783913163267874192739718339397841921314631402788193373163871303812834619086294316915618713017860237241517685666026407753899812446586915586734827643047272189142987527006671515720068575842037293873567210168267752825158886239602004967148239485427357075459801765804039016340010712639217018330604370522355547786999051919188119829077932144479783753294354484429280431874899478336451539145201422804583458492067702410143433151476819067663985344276405071806477666169129058202525865999885936050729303267900502720264489296389278036044625358080261805229363069800816490241401229676412915121205123912202881583441511087513320381462986676141838677351214273128727802580757502009134365468461058571948725553568287499905338219763196069973876325355163960037765464119157477243308552492047019798051127305152668545338993047529112256581529098792346495712892879350870826558836766328722249188330109071632461546295033462666621549293286822360069935272947538976378612246877721729631024642393955339358543973220569328457778560156742290584472228326312099848880120816474678775009992977187783480595984508893201432858659346940915174338011995121210262480569768168414827370255283658677881995761384943341386331534469205141646612590301426881202903342819894324414565936566353947996003718733648407416001187735267301516489465311613804218052081583994645370844909497112153572220613265291501737797385118086763764074298309707691834323471708603093980662960032856555532125209306959989717198609327769263597870936165202226059583704467649229489354579889809620071249363146146535720115838307149544098428818100582727149242357552971190122582684665731524281493406421907066052447438038805359402822558365360737106499087035988484759600580471179708450586215703151034622954592080715274673678688963626112767362549865812772823405518253414450314251173934162408240199969665625373762943757025396665452745402045608767415879718788802051103131817971721332321446265915373543373813920070075690027522114560272452245124750658317814551069586515360190688975170011883427033226768730397619460136299705731266613002067301396191539065087869276920820460435946005033484783821729500186642490778378347328967565126007664825496548820001097460933166995686887821119436350253992337955997912608579322005399209639251054252757967915923779827291002251903244133444116832685084809300843208146363727678859035910227457016295092402134623100492165515024637352343838668401756340427824629142857132647146066343434200577205626662112930415723237550955618077483758251422830750585835180290967873849987815246287873445660351602072100106125473967552432773496706604420330751544099210418205974136144794183507302339682073215838138823341296017021397124486501577167379552812150015977291495226811352731720913073414093098955366183271097017138012791282635247626046661756875610684246537522709770031392436232507254105680916696488843355302991928269406303419322051521918351301117004988436474792515325850582459066171014478864055681441819679392261467724133735702615392470229118954825030072765931027766927593608539744274316332030400017556893540363229007289007367690261468570949919189916841409415375162883197299933780679197841622247985367132725501516113692081850693207023568700107689066518312065860292704250011685874282280228717648178117767134149956864940962575558100580891796498788743334557227002842973506546095672087509495304075390626379458007799633546847338451059972587033528417984959083005259112928206345304661818269735189236704403108209380267966139762857106370820679559505522152724798384434421762658038424458441681924181392847203264663921857808762284435959969516107706188094835421505004064505912109946156554200303215651053787656419366622895448229392315019061884700090333462626297247214378062952849773102322363555945044282105860756731057751877216395401772449265728426651023183748385831431142021825951888883448957362213882612237829997545549085911729849014133936868525922184210201972802483765557726555414932957627307104995074497596426158524121128240917164041805725481446574539758979876689862719662464335070714603867582635861086710067692325681988346133282445342402324473612540743686964557416177882815143119114166327471505922367473683612436315818451729978775144672495890819502794952032371942699781994891103092980101093687941334289472395418768694161918475835740380806233523983877409662908355636532447066431877033574857647168418104802667677208867372336248522732512975977863792022302905885551113712060968323827558755738762849655778387614636172317960219995338822309481896213461257898996515241559835107770465848813860650246936262126920924700130037038358039636350819543558686817173280875304334945229146675694383283463253354918407461863947899455955602530749225016164866665171244706129346904338497096162567186650806545313660698764047326861336208128790137133141372501447072294932013028351930129732449645568056268696080046822783790737557996299573237027447098004560723410079042210295975026986112151552129723176374661380999938996509531564057437505078433129378333940074797328440482534067751784082499801528448080920113415758177086263697850971675998878826690957218195216122502684774666812863853399271956571773222773285040847181800365683366783129905072888128924092645114604605866387696773135975397563771280155907215492370428273703370079604808355863691243057357695124836309808332409594086666467857607889787913531280249494537997935222775208780660614154871385782476475551903486489225199745846916010339720219871438280278635359332917943721368684238232173888446757604738517600832657123924772227021489473968412683583469720989094543579521611289692260438191412204626275435780596976884775306682363324403002071908010779971555567061048624434386388476678838174765533592743125361424511257209307638324960876789537990072572988929707565151138728919912722604000439731833274277487352752016910303028039409492679511002469009847651174704235733117094852308710414139474578756626089341110319693630687905114747255635840259822410662300638881148196737640871738916616722856381306408544276735725084734775338050365534457135437833973628661864325828501284921401817112571970187880405983518475054431273067299780119556513549124656643462418426346941453515031806155615987288944428336814675733081497769657841179803960911517364344655879439741330698471803014807934055039536804255519693490717111096336375134560525165323409592540212845853213206605123382149599270069156697410614688073340107940600580779000998105508057148641588118644796392883006027462174233331343990537672223164640480220310964337210067427662740641022132209680884187687903064202502207613083096357406202152848484313414258145768729736991170246379846558964815078880490408708938102925620648328025213078515556565945536023834565800824061473328384165361802442875637957020356463974453442871125213408321524179390871589348142642088380260492917637905912046046308190916785799784429276292664642824310199791208942543186689244714098924803729786441309818926871375191287846452145135748215765873059986619526989218138750338429564535209021972245069739717388778794446989920435050653811843144995260633357196034894911475459113654525731685542394109269107396045969498385152983923764779094901035941482502234717180439952256990783668389439056582143014447030158396241782441432767634733824333780120139556181382633926867090235561612390840323527150576125762917911638030442401688291609189282271942135884514133849534922189841416235141517035040828191188042593124760747937182617394306518109540109574893265746141031849072579407495759217993192626100552938374137102433385852380479778250638758818772097177751373968461278523497335191682965560608120489746426676370117632525510466113907971198779292274205456690806026780529126696830524576769540998835591125951274832984018878650862309544111881984750690263479156027567784386529987047403556236843514059048376745515729022654732135572983680913547366706159326076272070205304908687379319629233841436795725628813575481742458889797995639256794286291730926119553813378882847742534470022505920188953525738554093278997910139743257748863516694951541425796972873225314625793957149690939289843266633495771047827714406276725223525952786215313599696184609259432536325258656914246458436548373771132959600827499285775854350669714173872552031387742372824386751992556715258810372006207460795809034853634079519954647752371760415207957289401985144894824597785838390957772597373009924949604903845358980848079132929843893673797618528459865385227520702101264397887124810577261835287535734138065897500632472334817344676726299786534837298558058769736256475402472005642474886638246492183587933604187144032524467397122266500625252043378343668238978797348744520303595585644436782347759666241002329818763353451137642172652481255959859068095518546194870631508097467567144720502761624318291420115725651240539203747088170523941515032931092341223058750343923178807603661686628595636406728598487580943522841938081704220142805412595955537738774880819672257743670905982303141726407658984509943762615528247483783097671615650177466352962990670567051948067908175848960388024115385318863947928033473969107584449401372451030767407484804911218553485589143239900585380411580431220338994095363591753172868513837243254306465485228002737504039749041283834375280895932512216999842783320946148264076914460549269453373069625049701485019343888462876039154885889166594762910241733019984809445449510702369481993899507020203213356155034873186939617487003714350150686558823310100204270635124243751411105786704830410607860354469257050752259885101698692422221380136053707376418291441084187239254294688250851646274066560483498976259702189104055788403429432566183898674348614318853806279468804027289665323615250071349038908840232028861967659893902973437794788229490342228012645653171389471786267453374032509894855220101983604101731105074291136514378532682867083045863266363848121340631083132223104616591891865527771446874222017780844996869691755583254399621886035195822517616614637776676997621148559714434174713352981756315229412319396990660675064363704679202450894527483515963944980862420124523750823497268061217131654813719253714360703345408641318962136417614041479186119742085956547164092200079889224740426326314264404776831506640356238497765695880359968896646680353165406870136814447639810876452283603106651721404650923930777915147103699445130921510645470099843590438946300256904834681176617636257911910262740127828080709426428943184717224949286750932094691343885930602303372492889353811430462515936704619703035476418973634156933453974698898754250855352184863801010949517494581843746014047031429410569419046568516712481827608816208707265156853046446652166851944031719085058829588018344499202732159834491057040426041177740877241501520645674046175790446642358055503984937475128050021856492795182857399663652606407472650402080379453974847326810829408192205928235720962687227049687113679689432367163016515811781917751019520283018006184280455469879635209029039272505679249652070919604442326218042541066113132894216173535743494385422131787122219911613310777250027276537663574557721348091549146005886017002731174136488108037308035741152566082266645912009886794316001260591442323244434626644216666742075419160542455703236160727602062434086474610919488330553138704058132835086180898161706177451161047740213513052500734740308132126303379940614784795009690443503695021448117672241301677410545564306891319668044111068359427490038891524992002688943854013348960457416620782394424737949110862899220163695238085402840777437623189779891315825371646268539905048010118668266798185949272626234052536772663410612798644133895384675046170756284767692769071120922879181235933753919435747770600553023688202217314069668554394843471803393071629945065565244295569007090208728913936590529883268226202337994815895551476260198664263511877650194494407100282723345104067978246732254743643226393732029270207729579240990587079582169457605295573134672089104439442724612989770896645362307269399884867118641220365711250874120488853547974136547779029852752176020090854971024232508252575849022117507713783141496060294644921590032006120011170535635058843580131267795597900531785008874854870815902377042166084245605637680347239748070343694255360903542955900488160287982425835272142918795045620659253539181432015584576048616138393968592051298857971075192205085743008918975233859038406999283386476924346500889739402359791870798367454395637073375079139165916722391148323179114215327381194798186660068238447318845664006960505511093724378540128884759659442581547936143972204367971697010261891070179653379743862787998512465737672066820517634174529656734005315052373821260372403175003936634965239917575123157061983897663535520309262956749239756329467524093500385352426741768813148421737342266735819050615454655796566934693080585050822590917054820613521772946896365136786485636292475824668041438274284762664329726764111471630016864010847165835263046279030561321480191478383960179866592581644656216137221674041582743664348436192168163028020324712863743410114107456051019534653263435104383281721992009039801766630061505761142191353413272917315683415516947517841070186476253263469238953393361832052950796432600236233223394170904945530133525784670844147974179789601857054046869835491618898750087788249431182474956531325001019304582634493746244999074138163487783076728072041124415297416290366133549104124551436596194465932996434295765146021010964873421390595408363448898310923579858963713749384238782882346850738791745487294064456710051528400543011884471170564768098692488274416434142636565374649475212495789115687133007328588004929954736065658092374973887576814572742288633408534696125760889885697023793431995604275425126800030510538316406239175190666730635435673271782350770432475462483963976181778082967591359995760657139585496275964978732148220876494272919797697879787237831955641536127161380881538470834187174755457609243069029878570456265298625529667422538606357268783703699459336789988360544045870137268913948136983211623400228952462640394819539128149071972305149059911654962890866855145906855452489342661076031156787959506669047634182511857020855988489276805366314744343894279690138924512374692089559188089243863916304088101819071632808399760953291647342064627028542936883587065661358345239964784523342811229431702592999522032164197613789282125096340144718444462793590502550782624413449705895626842551963029628484042537623633732585776832584451919183335040611930655666858949005427722306161082304309037751752399587158322513476694478640191797955423641927114795733863640209985115765598948593616669679907080772982331424027761656043609800080787175219418453392300629774076622535007210677707185775403027849120341619893920903095499109503997307325421770710835144183258505734434307062234821086302972737671467949818734948982964449917955169828326494916772548847955793953426314809953642456820582417736690605540357545823074018837528303374367479024066299169347908586282525770522496734445858765809149472779195200770212720789499975124217613492118464407978507067264309340990501200707946291914546180454760934158264657032868671171126357761654518966447854325094036174536056535674664511758494246098608657287508168655634544181169706992673220491091236727915843027334978539992084586273471504169378237224049011456982618595368725811433596501528631595554363628925560172822882935572098001065200261036746692091027885889997748390958418586295567994031492262890586085913184637812282690659028309537138305072367858830563488221269741617431950550897586315901697085078917824634458038246284107243151173316743768944218296615678153928391743908171037243175830204582825040731220476099052942831420321530907125574043304039849903125173748434028099113124335139022963453859209479230388941639436516171442371811531822161962601772144867500406479392761762636259940933801764917469675352640664515741524970213263598922114298871277047086645523200352824884129997446853527337375178329007256748586729667122975850530458635257798650506969344970732906680252418938087567759347132649949369232764653464047281214728726746583890244866543512873206973381520656604762006481490968253517601221307676822054610023062428897910774064272876993390967690918142119993835558324996994090287176989597201073434644353961389593037758052851923077380042935081613113630449660457029652898718035705815954370176410150691085693851344944800427296884696204999877651753456382463370134315227200202830851608784622657094475522090464540877792558053510141802893072795556659540642955843771319946558335124498247313219079442223731832187244553107207465149521617706928419734834793403781688210568300357105750332474007457366564093780721788743115325657695578782672147133927716227183061400248805446535103505978416742754774821133133553522007120366481332618442485301175328913507207488080063739245624153323831930786765717734443106277546066060786316185708820015700262322877954386050705090884941745698298791253572787936677768713360965970311836057721797675875110990771071872950458063207115241696437100203951006101441077586245378200305194263844275479823947170592498407517211037667718908515463852763709007496484916699884356217725373292965924218334759951646525483761509670250229672312570470620695461230629828829914968090226775211105656142381552216428958742173912532609545960420936075581311240661100703539715923284366888817662825688039364655054006243294478989105901960451451526925674325910674782301498185394283239584976653989263260796053734454788073325732028451341428358461777449962016467879149949604688722032959682032414479451451271743074259055118580021721942843999184524058037094797198613460688111472489462667010632711342026752010538934858409197962935477991692339988501683391159169268262887441587424708741933692048602052657369624255414788213979818054226138727464025180625122881787436905133260706036776614208172090226018830495265944908232521148987199719051879182569695556754159919344629322978405709082745471404573491117538114112248685424207355287377241050792891206403545706531194966087121988852820067745045135269388119395607961183518102743361724717224443242515079597204453455084274726734099701236262702014895519489008419305497826858119295702683023059633366320786517241604975257340384345809055104072198413560618214068657735990157873968290303028349692905929867757076715102043617201209978433993315704104407177303983383102033495131853083405370883824162704188467934889617344604266122579728269679314183212623583193883437845805633655549437922245668758664654966821668250357329280127970997684154520233002656601498081943220526834227619930338328186443312943915227010860530929650515873977075880546706256271433776965999790046801741412743016879498358248862584832752415637774582784123691121966948394080050121605399913350604531112469643062736287763166824388709235936056576837902705103830966801552374584391986702342141105275326376251689979327114650946117403923996974282037522155277124305503682551058733533546895602190160395161779526981265706052634912405161493656170986165758938223905702646522771637447882635641397081464990322422464672851162603943563632101035512015174443242126597636096951104988038546713716607478213475327585000864310502136016598216643296394852350627316499197551628829361509023537627278561901531415508844951042206554678127567258886922976553302307193073201783617292764767142172109386994583702387284629782738406391649133875637587348972229052136725417355694933459070759358410671436181639189547734183636481975719269681839644178938109141002260698299886834301348631150405449668726050413078584639230530676351231657505980750605518071913995323131090550642320027468986351203134639687569242135790652238935808835294898749316169083799797643700438559239875515815991448090191923809697473958731414487409086060740637596242669595655322561342260042929402858295911634537524794633812657750830199636424945595077671361609275392464631481372377963178203991245697230037514627053869252726140158067560504586141081768591173861164521574682257690513860679730312916036414563410343088954563241723476861471079070603447826907249509574648847828889899615454314032511046091253824300353703888878826790161755434146367712259056089960488048268255036406824298793404675294811105838693435811990384072553063205377019231568632924253495936254341212800181201830216612652437795650147382672569613183772231521280115953667192924894002488963304853955351891312021520208854119663063466131786993749578748659825285771903364203638038441982195520749086650204249693887543238577689165880198621593665555099629831533390165382644884096281314351447189094219277596741179618262051855819520875563564019967387997815184445927128862946362001633732770575065245698880975659221655842154997537338152811785946061329004538426625722262189277223071609392011259531260736529994895393669506980977194756210382355859940804073150377629568915282486451691494335526626475910422257168557145823867776021261500540152807977163639475096740562062074842572295999426611119381064431806153765583644343289058674295457038091510072778471994223581003481007861101013164446499443481164475399787029709286244415928872059202398954777942987676776647036091136305471993311165181961253533988595875877834229693339560103605570801162119772391632236751101523488597391509826004698607023306396268178175358919290385851027728434889919334239701249902044670336016197468521401899504557973776155376987481418276198406238302732665587570977022575447549479457821625072894602719490341975904782465689472294163387015939260232994776081725297263093985263116904254847913625419811687465810328905370781140768948322671903997700255501597024167041172120763805318429393413792700513672949834207331547511709628157387263362946546088751543906855695202824192491009616032653700646645635766240916547123545340799125094433205386722060831507187648987775382448856438645524697631150610386858351303958313136864581865246315540525064581425561426829667226719920992201952709875634016919959474123993282006026600773635698239554652706983782993099071354293492353953813102473395467757942990362607199838796733756579920146476898970090727307754995828928411918795921219373002627573728563784915359145392077618053723895897288873043168744958164651459777543500918881865261400895951478900052731854032423542964235032898515297373391151523508029555054823865296528169030401511837094826108848325857964758322346048144876358468081687134440958443173934382208888235354018210454079153547907882019685387129659555764130402055461534575321264918579629949628594129535967873746738772741548635085195729363302652530637215982912383220341404212751573006508245430542055683455329529775556476314729717122050284461406843179780297379216759062519524535326624069009026223981775325647727003541473228390207244476238381613957432543913692297450243186933049822254513990692625520344536110012517746756120986488275319918682507431776394112683526751676096261039987230868637775495077745979392038684002111431259026826422459204383333666903974608077127393112025221546977371667770329373422862650001781133817661585623956668595317899926991721841883124589675006332760424838249938173355966560327981174920803617927204416909508185630575300758870706665494351366128224581771678985576877305458233277414499368839997509313333753358068904600915174779436246625088332739474154621549975484092264308883100989868737099432836215589272460666179660696298067099253065818527803085249885809828177692507153389863716913154183805322732483003922554719243414195354401198255499125426796538693412124850224168869439371140670477793150000501387381553681423146742292640075988707038303686005438173596291503046330211210422877041711011576669382189641559891437323626176365680914944577324013722680785882610895735609563563911348189325176762419706620627332027692621002861643528518553739939713123685651362672450398605173070265775457069672116396930277502627328735984142628572519957309797812816762050426040297766296231344321968292650962046356199007149104863342962397308721699629536464895000378255244489137564779502284999571484049369797292647459721304534165677706993078408588088590088857589146563802646426215625876025474292512958389454993126514238724435885783896901402878216884173639499006897625651902729446520529004135800463780300697172876255119405145385496632719659465063321279244290357687489458614873997551939672244385622337128140783064726116073421289717917655983091371731614481652560735658069223143549708140428893124510911692581734182899927882830034205674356403938813216430129468776788202484165490332765983642842731259204701954890613520099098493656178290818065869687052359115137158828682823020368884112676716013283613258002218815634772159767984269980401305099061387767389034812486897970796703346203897042163793194490864926349292301653271051177244721582173760146381103955102136950008820553017945132139082951820831779206563229702799619556516016224342730180891524298770528836876726117396039538862768319230547419833626513926369892118899074750569448200271783239308585358546896002000675618392926163583205350054087395826855178044985051736491605776435434754772013183314852459435541794152426393007665140338738549002026955055159833385451203421560448525101382628455914476063749121966399975665963373077014289007599107414612512326888223453971774417053295780624415293784578173318783862733225700758176253476345100481632431256551585581095803064705469941829812043548820922686790052178164716724365338306180908817560934279235924113804601624525845271716521506138352795704957032839351959340236329038956888974757540670672800661549745174187201172008679338375607475099726069058275271750335134423157027578421008295362213709870792361617646696010091992178023434636659136427304205164957245317691319582836469329288729128179520226268193096254778240717737056708404206813400757082783623003244218311914135773814971330441280678982040821851530897699523614635233401732456567106058260319848255650434194825911413689248377307526131563404127049202067573260237365059345482018419963583920855240497191507094210768471183474407402872287730270666166428564500377153333864204556519179110105798290859407971589802895316336005219827750761773295472072576814287594761588958275113447358054302579195730731108909129616298180709939393025537593865347399440603538564946474635820701139362724285405435083734958852713996064852985924844078249560699537809956448297347667344394717944783572372127185709842771939813556076097014313419676213524617446424913948461570954641604235369987205270473040750219234436039535806649903482420807080851489743439686031980543818354922344347233270428379720721657652741064902131187288677786303009489549221567466690333868122151159934806706288248452741440602068052403485816325435882237187948357076813037797917889852898061569872977898664343650712368109106023534690862101536678186045641015980566725704787978158105578222949386304480071293239559299644600237177597247618013289486402584025104287587524309717824628811405781328991485778594131055824787162542990432774149728669822527847477404196378205316585095946618358037801550634720990918143523059264707993628447872413572481278724019686947987201688730890598602588507077460877157848365068217599251082820136759636615347188807246764858639819718085637484695506016105955361015877074155368806130969505927722215770344011616767274280710252586998916296311022497707902509300354543118684237034095287613220093962780535996173607149893537050370674858402845620576978684889402094486764819785144508174722784791219609013311616088384838228215167479465965540182735639408595915976295835990619705569588891689487190251089697966067139341737776505717790499846532171732179248528425084297736220105458190959131567813242596157412741625851053376930900894869391134963937278072289815887112792337314267275094166024571733209216243133476198036668689527068847543059649617657057022046653893220536631508257613142326498233755967133749381994388931621317121967281844021450921865145688667942877640395912421733977788504992193359301131754604051156843839801859235126014227605238774058146056856326764899147023216117940628270717260960862953206067253537241340048741418216116940284160082118354229276223775321010893588514819026370731710178033302251085534076516273671214142390651645654953083882058150991605561390313663075961890357370882205883795944386415211843458127056323750302291634767039071046719969514658090008039082294442287234647874610065497515794279507319135877710957713552738564826372870665407514188318344159753126150223479410227116276091911568921548475931713957545619358571827774961274428501009326390138015134353157027395653485817828978953436028494918282753342755204758803217113787785315029230799966120373296063046010194522800010108799088108418264675154538401624913193838861627633805576165802565356809074070953937548086599326061159018747277749305600744932073401597698596191094065345719710176709069004948925541827539267192230921675932849890069632189000961448888687338560944260594730418917643199269025280774001024189677066533688370100438854829052234026903548309998489390908029398620252417229972978340428174877876912997361331018462305767124802195037131413903724275831717507657287491812413737103553861986811308462968303579035787208387954512936236767341763129515769310187293715933497840926001880275666412108716980779968979383680208805603383578734565993158787620044621742181576446305114735391624621266644828330107991628169568876878581471416984324490801753666738134549778779761539401134986528582604551788821656335963861298956941748495116873612696496175927710393615459627660117988783689110326582994021408163697662452776310118757794587900571045151650868932600838914084673560227256916460886148239930344555877872207233229416276126615892691376118047203395193838744574509965961045571716956590103633700232724608666780563610181190768843033241168449756262527535265180061042178199498913915016457832181078231173964201358816544134182046584245916038295749588667752711983325205237875181280697275679197986735794073463832889957023010876571987092531003690788906625437903194265108986981609186128570976776186607739453860391677138961127873490037156790325885545282658826735415557170693391424068280894996651086282573779916144115149866461677496627372026627661391065296232398390053553938837809745200879302398361573019750268738002577181332275029413556361970765002331188181255595049735601229882000726145651040285797811198460805906523568805450733128079230207230175464767867432468662803329411398056173878823049534724962732723466046913264884129286183941082834638331429147003725173665404171237721764830810646805582925287909545349362927968342504302412521316796404330286944809677632526535556458025183809046639566884245921873569671450684324814074314518128432925168281206054255164861130311714669030440721931451541802238751958929890729042750505258656482105650887897032419688435758333554697482123192309737177215924510298755197650429566457644070056814375312329597280395566135281465224329712040660194720496847959480595833863698273480757547539450713822886034873610807734862253564721903261963190739511095225440230486527153536013176497487048155443185429624519522898735572146327460135502608254744750001865717523266508233998563775725421505806391229387850812886239346349922575619645660404905284646525010092171104907229127020657934481994023757186329201975540509858429929302739620610563438445076574773420286953481062033377730437862383564722777529993786294957271161476501651058298141135430632973751176205692669092886845857952748166213331712631538079617455778436870999580680541013602082123407427620724782045409615193452583897897590707104102093948904823475115508578891672074247358895248418946247642195680881798513785295787107047927344954742589593179493752333236075683084777902863338258056101278435034529311274184667461233387242027616294888574556146823001591807506970873777594777395837771516290806491285619835932989213421899799068250301290970476896249815955677400995981882626098925886141823146329770315452688417643421404078286160831789821282609383788219946446577526834633112232421511612325805520650846477257794887360798238869514825493927016334062604917790624952393185893240710213162516846082405596809466263590976845742574912010838988295845111021452660117190906721293596511074673477721603817230420791023420453448467621789803935281054069200713013748630335385919051874487364383804784544477780651835474988858800683967056643931849894702730065073417413083626361288907865184331076043559194239847343480718288529448227042607451345938049388983036734460726500997051602603711942596271818826433672113546268564062031840662341921219731762589249796081592502632250230083902056580044375013507255984835893213143933255801867571202914942746401510647116709419486305049627655188816111930566590608539511493599927222073446844812938658587401099618296006681525516034892920277734301533281428536509624131330482997898440035867455550296882542013197145414409376477076517886851944916971452226096254620760575515989070150014477064103871449862883989361191269582972556526368040445920034449015222038112740876109678569955535664962677856577031291057998388414670960526053036335531567570867823132726898505575115828655399675046504501063100492918511838686988432254113990844655516503714745805050795455728386331849280368823259655660454772432090976532182269779638621459228416376683597458718545104987843086586462734941948015726688749221413165315073087825581195773860169154294877829935219667441209895560323819391258533516933556097567587346165880015452063445854160430351674631303906019546375273132017529830455484064794606386283628213245908117929802409214330577043111907063714899960712082302413939652293024510400685324471371099919806591856995464268313541821962205817698006477902481523871647438637679500532195166448048226452296629379686127531961685470081573364451343712059925968288837428500654116297444679690704950171184067018724107040778157932956616419662424991448123805871914228990620733936999676116305025071407382233703601895680824762897991075868768828144514898408870595116177112091188405737287852921934012916275870279120476650852958972320062387947311561814651209732581340936797153814519282093053657446047138913339792267763083263821792273822744043867752938548818464096912838616577629904780300494803878847318851852380784350130315528669074802166963554577737820772257496899321956273931298759089215837154778271913908142838986286747814315843392037603563710159696186712090883856749084041457263115474344764471035619326947145384066061691212239766342210958020546036770436565647540944976424671677458191803592630332491653755262450033940148296865715435352797325863660968632023460647137152526530253115132447403890093542890308605378201352285526732241096067504017472071165483755768244510665093217277105811118914059375919200495138035257171184821774466670682272121076826106601704010551015308905599011970866410422385189996350052130627361415583956277781570942190976538160500706152912088319290537854492135352715371759065861531797753623026362861099368871875844225025498915038790713761125702379766880929563913294216814130304036529398627820616092532066013278686357216133673697296674153642317300556173653266717958637396882890171285598481400565988634003991202830529804755264000907193045841762944862265438807845665991295179658090873421109015657039368322210893352721337539961352201533622293534160445883422105756343802298789279809883580668585042460392202423822009079197305703530645631705791631062956180937652835765983788158225694152955809912858807565856730887190893795177141388255933373842292278198610659309287872060799827900398392672952725363054335766763054247064434814121885638752086921236989077645772016469677464553896918461490868592216098342598756719510602926818962151578611231330022529654428818183811864017232459132941055784814444143319986247213566069685340161974377929327660051405511181808628073418239727415362282763081775655124331861251314298229209228444759982138960138347005857302511762814940640249552789512892047440031698060292805996372013350895891153960632548869205100913874560413697765198046265455104995373628017112833318027054995818502413649186399058816183318327168195995403790306002642504858081103127772813530248559735923207300790547061557156106108958434460740820862017465881800451966925990172621163914676529605305011904831632305171935843854390289060031251037229167176041899868450604301533373725569314294647664078247362411278568572264089641301866711400143526258699667383642842250505476213490798959378068469410742593579624523848053403969349381425049793678847079505231521312913273027930250421705142828871909548112837278064306296798133218582101822693310672489306447980950750728926309491554601441568901611816536689024660097429043065829331314572767846755366301217121363859227646918734226903191330628819015217144986741657411879679552296333579314339703073738097639497923415396545401571151995171825039484808531892104508944236523452106235349408079843191184687527447019581905688041509072140205979172588294362970094890156470818467676378920162890411522719709107709220285275350058747505704011472203628034804691783253431410819487542887586585552226584767337001050785815184179291089383984752834206398969096683967081540430766463802319968671685347842579214279110371758584277717060410488323690887763415724784282544817746297223532112866499387475420179975938465749109175979012319011597524987991701981967016046642175926360641803504458614831921962888630161046225965340040539524597693448682276561591382390553056674392180571149264844193907350156567010679665584199980479290168966316443311716264024263253810389596173605476210868596395003394716715466244105092434459324067978538162773913317602836601315167297752061866368049372181088207824342220202466185701228623825195162105336447852429467908034203424697230260732931266548763262230936589785982928842979883833979235296347787964568396364696610038409818359980568731068224045959170508549563306034315332069065367296328241236853706844101742830383597714339213054016284028404387225493226507545559066865404350254301446315814226790292854208681568986162432608827390256623559863356825758831633019571309256874283765671905187203812790951529089553582212366956643237344383328974784785802173900282112198409483805639314778599063497075825137304768851876146600255465408385081309267724369448077880787542589361587024697379971704293821200541707171200725885730804628000513055486250356919158559473395937489317601848051047866248713190127526545624152336330020788129944402709467060701273748684149643695445382590521256459252217192840986751527673923010711265129633362270011810796124537308837728364797597685629854885961894080349136773912028626649222267792819823569523485248941428908971123204670152073855468326215351576185605075309682459602973671312909667669492945899762942093141901021584336235658860695689861066070038474721991310490715696406009018456399002037751406500097834183836121595812851277666265291789823875754063782941106532180761659462523916834556860628455112574550701716323001598426342392895411258914680139914962610973519334620616841306305826824654417728024078158158934713407357132211000414075127557006606337108347702432404479216242754762976959969730099964099080982044191142601680163272763153201617279343490760060081559951294684205758190826833531807952594171412286748404791696370514795972155341295191749253431336763637961659798467303498656458341972290211284021827346775873514413274111705714829980404911953171015197033894670253974837934005890835488827275473068920409822264594139252262601158462232937247452473710498107200343591712186698346204688039584636624225341723023743678745786422939351162240549691039095056053442035172603465824478216900129003816244739852461335104242285005810970435134742204466090738438779954487455995317045576191521853548285470228670424483885405662224796930810707974711230801017849191252693139994826387760321390677042619050776512111351765860796788436426997447744358379158311174752915588653840374684945457202125724446591389833701269066405839598493140002223515587671962493494937617166766433263557474745518658812868528024319674015014663277101322870671150110840568588069952543925862460288219871714275714783332787676834232500056586152200928344783890806179865893167932933893835690443356327859317803424960651031751602791836984496704481155161114342320690437325871004089113517259702143618032535341864832478552372567952745729298677266459592903717944456884026605152958274346930191895191678362304457264770336113692104200466707863888103610699197063963367378972319331569418739201553898099012777895495930510402373925818867974449618619739800562207091075778775833889472482975840551465015304438143808835484880266656861880066026735181669547894861280520512640148719636851431207200210865900785767316137540585777715660484548596303526099602054838921087615300637374443463529707338687130220498321434179550911964230188068153435185165659436035036501866807422121619067066294981878553656323281470004660157184388335769730367518244746238820442971124233774774295547566288547835138511163293851099839937988459423205966023590416085950264981004615426038956327965112914604676841416752271723633116581248289909580768852939486598007849542823009427990931365411004350109133433326344525402354610171883377230687806599415596591407761913669767156186211542341879626770075756882486880024256127017116856713078582241975466327893372433492790349931642021893993561418597969254239658676489816438497550979261337019505878323909634946312782320744914903011810379089326210678871117724445136562884826951547009224510797855494027829143286725175803890522472312633223629871237038377787376053396527732406531022132273390617064369338025253481081919268225731119594143103193856183527631926261348772733738659761573323861002172180641186223806077226634450956557007267594238146692462431626804488595724351046820476853290627354142070782623745971769689792395142538989072489713530364195450101546135792862425918079543965593447823772293721970365561082621928097751358699854689750649333801998397696609950676254608002601249963579708631017981155493412960915892495308854017934629808290484562836045754268343638272873543084879127872807083794655085244698242326618430702826042605434210037698649158118924386558720124251349662401199662938594746878667473153098100009367062988982940499317645075917768135836411609073915280092122130891858291796989937702922483319090155004446321182594520567457002067171364091974122719206507795835985500842531629098651125878287583682002836778117908869904298220592797902297901190888703640716282685887434437901605411887544663687767817991268210229644287182088703453875628714243450152830952694488125711588641123553454316697309026434194263965437023440703246021006725136899829004128235489858156085352563264658408638792612648220340710209649523979761086119881873477522413721079514280937643298962961881396657806225549008243773457297303423603048130682179660299866176366172656900879310580857466580006091638010264021743578131130082888864415871740639136802253986261806362075887479628052161862997584056520702539461584796349875042985465214991600077372940903391324799282255067443193356052402730012019699270785540533458654537118254456569963334286428168058826253072407039363070799572983577994993394732937080985831610903277322801868703138759863480886588139104117244370170370038300286581346983017157597405092184797892841347122462379329071558896556461641220862810163770851597575917851350987195240274362079855253973353075219269803191840471473634848097577213935663151277247604214271012884736290587542424850015430063736159852788580164957632485511817286616205146068037532261701765827750755011507013956382939744618137210576534323108797670146430281479396816464737782058976709283715660762166023552051474736261956299355393888542021945879903964989422386687530712157340606156028222869308468755586790146505975293281860640125893804564606466823507735584329169120277518581947930448590025149716597424088809534119764998852134922806727568129597122793926893883922209429867173918312681562975434045902710845717327963015083899711862190815878707712059504142264038006944434611814444105135369003740015501461441652702911943851001864752926766351080208709227581883445618121421233003933080204673406122076017399343574025547962927457548053397434187438676343101166197258651631049376961455555443536794521392291422703955757479564129570540101665478152162916232623110644852967629689697237940291123091479937235439201484927000490628488118777317319899400380191489568003221803620094877908681828206289964034302070363160102683783727725579636406850264183759623955901952626013929699731511512354037473338203152369609539121729085110750688646087334204981685447449371596102564317192000064044302176874333117258906404029182201794428747655850254895956541203669904004871212571606387679911556367393889585241283971166348321373920647708054758299672068238887799515924362479943074768745717995717916615144893649345981824503909742364546051873902297024228985260815499853729643522933358488945413977363566010841620927137267648042025554867520378723916348461371872413345598883079841399494378273673450975015320983769892649365891178638974100280747951940679883031399159068837955225167481292106886914563518357755376725538706598826587246081489423372197262009340931593559355070929273745446887279268309028603513613102314430657310327881913593891963622403484506480078778311573670828013773344588950870168170158460122320324939982741256029339558543265490749663920286249922189106610700587522265694679528210935753972937003114159199170733017695648106447116481799214571281441998775075262162643477570324881060574022769739534798847619042381175902452770386233841671772080011540846548777054492526956084293804476890765193492605051291965122142200718995142218636537995776211215269375999131845539060583249465585902653302153824853828136661641996374662934849981459644456679720432885406061372261721231994935489870425532166739641830060552572795304565324793754996297208590838359942584006435533161079521125564357104580349295033322241541096145406550351091045561309228170590871000509416940605330476898181296970425839311879617650863801953987239306629079757397044590773494402757320203374053145970394011030907587489219919881704132346150296825228389618373547676512657023322055793181792518465869598140564275636990688573462847550265593614695862815949139111807921078730723629660795279384462560522319741503796870664838024391689946936912272901264782858776768053827404397243510472332379741759028438353014575349242506874029717901320144811934624949844830801572692805697499660249944334689807656616322219269163117985238355789191916445476858455326312442900399980543278128912552569279754308015170358159859916594762267245495104713991451908635440526074351077473888693812658594169466442812983050624213174908306785609058013401288860606749484445827738852179438201326259398907654527404321109336826966751489896204666922374795505887515650841273291619989821587634635957951143278951099112607573082611383284219185224951706816864120401685898421451717098467007356794763237192129257740813030932392361991320926127681048679084260817805631506849271215232401890188573655524331791366190863706768824740555974838236154395795092532693973199467635336168811980070160327941438907251858107045498829601071972252453464799982909515840878929877852772755139639286371371303062017472629958730997057511552920666707908017422459466402171240131706624059091713872397586564848753523292977409272895019732945740922391055475603304137202558656962121814631447962738308063421745595621562299957794214444652487495028657587123709531662355134725921718989097946820638027401954532464776921979691842426015663727163211044912033906022725007480444688976569182151214918697318092876777608012646865849298712889246351006793147728640249533942473535546264704826618751862858432990681615945483918035637363574243319391647854568869757374087440598541408200959535572199004794983942184139145169358764657143102862195148686731209572991277508804630564718682913031797234969601417670951451866267365075697579512285277366700044380326691726701298851314208475833490268331608751027780442438645681781647398069985960362907024603061981446058354306470088699127498874133668478774867524958464284403162092226450045221216484509931796144787977906101625191472053467664468430519481683569072047198102183807020938687286771316742681333699273151410669919347519870296627125300626223464910483130895529028680692569972551703217234688120195711051289396477412823050264022143327834265285441340965602337530640459800049267933445746885065604620050637234235057683993691697901140298108318269603627710534191186469604173484474593612930511405940387086897143673533255226797009323644733391842084959284658363783129346073720273713003529937265628968210352603121304657362850184517401906692158530954533008611661795434699582338991652061855112209217034736521100489226656777047719050010591807481332252503547716601579018080938175837173267940559486446449272994360982192185476712665138888927305708732088224478520209728794293110556703663778304778119669260257127986265675486386973061462522733646796381286834318263674531277470985981392965913287283588642717056498803515456637896931720966040603694381803325226922439682964925115870990115317605661070153762031027596521641671902307323257146712755668548295091083650411743912525576228761294239010043799843186799534332625596552332780147630962194807419395631724021947415254904621115837175168063516542141723513115712331715940718116274730737720768988042278160975696339731563441542743599747914939128161072471337169308115529531114188928519669801126922048806442075044136554907468877614319520851890405236258206881659185142275216833864713864636833420290460986058788166724510571645373975871075769508923080744287834122096789662036508322306934807920739270190657653687672603681143420197749588025255434179331938193449206610311077791741542631146586406848048042983507601244492611044047158863842472123208229691489457268788005359494012537443470973390583893118415663829688255784672988944557141703416257700250651737810575847724645167869189964384938112763825835925653097851126267104818349546810681537864293024227614384893075321281272689487430593280536489793657689699759950775136545329913644316596431759335863895313514746212485995999819328966957740093570227026994894779452559191472702555814224467158217216287117008333270648890436920933160165118581504102309998056288044541722945103846569614997083252227937596628141877183741322574718776007537545939662616201195838052138469968294129981152365827915051110661254141079564661884145246621861909254414150898822685840279702294960451834095143055098915476524609279469443384323109784907308340365044201272852052904406467218511888659672721585358109646449400724172108088445602950017091778341878412004889512126261555357319321320520672712982753862348252108561200091379468787498731463964281194397832343055131965054860884714394469263002614301034338182039896259337529752141460774343725042909689232334765547337873702671689881471158648686301918944214133720705754262355216893500033001733893868396153783972697404591659954409444068776997662960635342307398693965905163697193617010654055736497147147600113669522788841488657856287591708507255724794767985766417962028359517197326232002291010725173674021735384893142114378252053479934691942578849072946890492136131576222021923119301718840947476330441408245406812538310173226179641352181624705937060221853206102592659255683523527028436700925481061009526072845769308489546983269688144711167525075650478595675467590689068188899011027859420919314034402437105720590659637660046937723014951984667292847834290269050411458306417698588115331281694289430763537444157290925308465113953837437501107083118399564655725026761392675270170973497426022927830677666686613634388936131229149277792202333040582238689107327341343944107875698731359781701733124990249475985275875910380961782597825455342405757047571475253334037018936703359916000923821652717156770954568592835925239575704838633543688002205393753129967053272980092076489271720658664426850704340765965066596194423649701615523751060146049440326567647072793504115864595548201942393271715042676001070353118724210242946237123910132514005140789046705856383184579815641730055388485764642728855612441276249615434423340755745711364310565923992957039466899384156600852590404209461851297279434240712198051270841633331217261272867433875681816652681365130908131696555254707264305358118763949096507306334305621931944768169399808010484947444957099615574469994197908723742411105447222069336736836149748019291497797809802056670922164263259928162330025519547048796407532926577328556847699558927130108783144523158502666385927822242865411545094337107120310631281367168106886174211290149240792511739103284181856178950488192697613162793984366706115301077955188592130002905651908838280054359855496990243501651255536845380590578408132540495289245399981141347509527735544787535913684140344807967433445934487881972408982116416236389177012997408662465669990722993623682122248578645874387719460508897539536424251588631967136302447497674367543866017952807393458886327781455680998604300128735500121114487118465325140668647726606504975507359718324228499681425844273443347998134972523965196001241818024222708199436746052403822338427932890874169026865230001822499816795102350051288287271883039386273023311055534165643082783313496122058815369633168494833087251229936068302519967882944347603332358488956825165644393064906692252041261455890397661530875786097157404059087321229862076240813096991315464295596654426123236903682283485153443120062101475786928056767327518598711335122076712079566963659929771634784482379128149257311669305424269308867335372734264663371778093673181297372510092195324895474743103881760660705364733924781464557946570173176223613013113962071244290608311912775127751259510198659633091485005240133709852983765583420531761208595128491500182980825191578286105499947003869666498636173446326443873843505721770730590145997433028808078906990880154605737208661636679770585299712690857542620359845159240673954225672679257465396633708913122104300647752283986986841529900974772041944173432524653534756258716032956832860257134936474270529821143483039855935980307529091438791235384424984056316652643099528743687734287082178664296539845837173436271000159131776684843499996294018320121705976118504274658320749833986437736776138340053335274303695670103983434204445141189318913166333947283089658535651622758658589367779352757918433501819820125197102168373825269535356383718998377379531598540923703951182981239693732710427067170211219352234570803071473813381949807054492642760638545412687710845182889008944704868448279604693494065327469268248067124887091847670866330670484579764877346859298623420679294907002561486360564909181417254537087592592155284047457834087435251749293791864451940640063797308972014630419327381113286517827401780575950049391702130548986721458776395438079086573425405123487947843089175011110177742015341937678491997029379416628614619617157614509075864624665633590975648862459378300201910017151605486332869914520810936537105598029629483322033752779684513397918829290482427196004703770046578442309163568310893305012440778474467072555910145008086048833998732901227064120757136837379127145068574413111015723082521372859030283985365606437606543347125351879591838515442889544280062225471177168219083545132272246701344468196329871915550321933106687496733368890625686550119707554217730873355124138556768334754909483252101991629104381456890166347014318484818751940715570788615048026271990626322110156705468037672643627048857127194739899077286780285444419145713689495219646223169326841530742409246776219968378054142595830859445360250829223088377996875675745969124153421574286859195947389811741957467154148424588225595492210587359659104359453555288090757422432853192624372358919093987754409980616684119291925583041246571602708642117453168792763564941580003671442170838281336716337293203659185484869013112973536552469471971750590964850217862788847508579283432991492991609255627026242291909540642530444695657790624351359424882947421413672874292520284008119407145382540372160375770705052708244612407584150244932238081534206356819432989112180244158925885663769478539238707421621896758111861341518277442270800188836752168574223893102425678270283074406093451805090651473160515346136930782849863126485244277335193988026402486881603707012933480400565196052581087216973086774081244169058419282650022899961119549966648136347752753256111873265760245066069359159402289636093673817020676984496458991086546175684601547537429002830854095545398845956884015629180479123304479138038966458055411632541310621584785024916107022714673768520283502284353357233280728398053877148665028994070190682924425409608574795723660677838542005668545047093398761651982706135412998196145315770504330993158013258187322707655735485463109575794544518546972005119446630215868195278774958745976956206382056381854166217786312480942406878919540036754985778257863457821995374527069173586331190957645492596138007847064004310519165090600970266897311306444846098810700962352854517494997315833540726442696665255925875850860316324314078589492079192145725816587096811781614703325901698326319472405541079449509924943489278764868273952970031554423252342051510564091234734018702971324443265100179659601623558109500572695910684105194130224578531103911674260902021268417668487331624547767522412909975069368135323797389797611082986365400453567198104268002031510549566822568359748841024068142180727830620396241983969378832636294751167210676309683466914413785450410395443369686035330814002524143279166057580705196245148130281777991587029594701833766714044375721549235009423341371851255125334880303488188806993896534979411494900925093547173388548822460053349315591486815346486462583965748971824688534789631722325866357873537673736935677513805115505833945731404267698257447070291414293498875813694292133293703446363418248867969689359567382135617420343797952959309967302531757621727214257667645369814167576100036198806523505981343022724886783263397236209311425123378014239755511609602922919159239501521395245669597156861574298941833363801297116467627667751074686623708732720098609223412116002170991752975489575352369000406779836648754851232813084074685383212020419453053918450098451493790675664596578408063547196139487169199942887224498224007794105870760903773220054897534983597130790463769500978001104927153670693745458959293667892520649372190272539708669574150838570138870790318027707515983783304148130756227819739904512483100002345473987222531976630402595428216813708070795142857553759923638449903052828209953311720086722719526428161695950511798286954826986603853275974487995337774684211038028512739787712390202657134584237743486100745882004209681862617888636473390390154253293350126939158136836497488191379691019738385954139216856497602572948750622866679602203562776933137210163703794532820498047948550089041857038205519542970158014255605728249583450389723117271302854905015864091515241268581768859462241050596391854701010946200794076954203170113258494944697992295927355612646857304289724445167747839004480998126658334660934058637183787926236359719771172026027249677508338454012861383214328201731895111601479591763193559020108351479820128701093847212983159599638664392367499787177637920802418219942379877793397429786091442098291758080966147881515083113661009659065943026979761534070079321342234270672758201227065116138098459251050315241400957923542802952480883794464447250258038333270428990202871207109771834752594290492498951733085346918868425405727051235726678781867205083751095197974665224028586752658273605241029901210439514302969165234776534623803488500430186038176386934597940618009955568867680244520133946559624500296638504520931324503295744138585632393548321382357899845479793940686820473880099468568626087046073991574050048333526154825339389135736044193385877132218818181961909833598296089583683733048012365058139540767760900300726779007478758930647443452862313266369286817835465864025912242924035490765779164526412324564647879964268780105480425330341648194006629906776363446288466156036836884455558859414021522234464283974826366469328825654448961036507771731442733452557941515366442625798340076437394399559014407524661975419329587734846862546080680302942896282822740323799088704314046341922903241189699801134258722845557750102026237038433643585208993510385078119838166008371015431201279273119201565297044876271602117453434442794390915805143896740115179044095497720807384826435424635457105317671678810872775165100862468737005398487562111769548725772630827819833262783294173491911772235587341719129421725116691873401051507537047615087006536945900269243176707755350288594127522609991651880839445583822289892884057174903224551118936510303162858653947658499246100616658500905001496703761573210708204803386390943115494070837426699810924036948803964876745822974992005636740122175508159791023256247633766435501369428919982889581406707124699368045586945543383297406425811243695190550903808627740304860027772929824863541549884231635919395295084468466507692860445819655961441105222369569825462887159938012902881657950181518857181357519149616695944634021780602997072645040232175671490261702716401920424525232770845362198914726592944677547594078115680992669002393645592507914436835886266314364004974054124037515794649533170781136918819134027801864566367232837918938347237880705929795922377659086191062584249466248259882851912956973406327119475041697479446052741328621879906947120123698324214917541699226732405446498359276087679024377926926934807495153099880424334051360672262382666203886288234237138887162543775385316523890072983561660367047769190924406670162240479318228780200900732630122255768021903552727039006891787085691695735867158937616900235574102684926533076796856975411948857501408900198515021435326449662920525280634266306038142024748431469137369631270811123212354525738114152686341846968767490166004151479276286408134973540972984968896852685093386766805150498214619186932041030507151159021138596924705896149592164243510165358610723408369580522616390150969529017033633133776219483712618551336890737626805601698226791605808114618685586945169808045341370100006883384316636980917990104382141108264227722674894236406821411456843053610748509551780409590628377751579355608027164830979799317968506762521511383989944378248778405815549629188245886434423530811635045296144097812749937878322112988247892141095943546132650919417360724282872924035789307608996426623367409211673291809389051859026776410024106150168184379814504533690920617448924560981700425546381003282678113941400515323859668543815336273327820843626197159977949324433200280469135123350370931063230596402876821412533077885268036113235300927390234388133911945045637534202373493253497205047071541393049703456632092298256849852245887887287323311235729848210789044479571833040458770199868396247264869377852969437876508278664938420275869808306826943804815768753340494782583063756866165162027657363753550687242258655555455691668731069824336994758393959860034140157839534397496036594643085860785026119845639465964923076735435568546701344431522381469479507106964222771587426622126133144427569194643846362546317986371647076888791868450097026189003958307478399820730126915485977569688251186024942374888021330612963948286478053698205109822656583982454394818846335428553445584452025803480775421996096241355713651527173559768030734034974567217836536245994239219352768507270214641487691532008574591985670464425602908327173567704768364828167591218886837210708341425492665658245650447728484018721053661575284408014896396266361745250866847929365207852300000747541583420864054348111891927906718245834661442529743199707078337149506461938871906448749175196787624253894773295836344985070072756206460450150377014690295422745255531255350968332754666257418143888476102158529986939087694300936913499768332696794582960549877368885261231530984038725930327307810074021292139032362551581525813080298147990078882492457837683637713595288565294788445241041939360344347693760789410672399769762105136868253416417490545295183443668411693461239152117439457778855732696894946486656325540493182135294940234156325805203238227175154906323509173842864226768779151716925468215668959130537009549269734815371549877780053595199785585613815283183276237985098086986091467911974883313114976521617608176189557457441222791008775979525862499958060501290447951103782976393552227095399466288158420128401884951344053955343706590490729315548149709250580079911231645406067550277305053208846139085247768264500289387294927727955472894120987697301992437619479741260227565702438040973006986410287093562831392544520326692010935723453536065040654801854729572615561181424547108941328532276020662207076688931609999113891551253724852332386211962965025071540321967142888317286404079830681989025055982922612992053503169683908839745209244431220595202265795901566042989433532763622574671861965650681045197267690632285300574778915099191338226698657962182612137811453183150045944626670465813462214688488880548475284895402016678899760983317217222783858953769978819538313342555628457632501589451972475403239648701788445919205348157050230738355835578376957686528542165768509182017186631003822769574594758377524813726203894790122775153951097302620399789777336719911481725018879082216291378475721373460402156774513182349139060049331832789160522900756963464018987903296690418481467281263451528741374525677346067932920279891035143961013891696721649612013447023057440637002553979968145340254687523902576002320153038917107939509711019395141737721746943805946381993103600086319018823616997300567236334579324844460445294421816026655113905099985999277195504062829667023685409853623935590123002566765278813025253239501716220748044139371004892882673268916695009082048234677525364861822060067948972200749691942489972986656740060540785210759170797268237085952236390985610330318888207721246004667798687638773135373275777325401613365046244361375625575304052223481365356438942621921540175117765029527049155881844594698533679496743995189673016487221848132124912893453125300371107758506287216292475878817707651125661414978800679704694950009190401457794273628266092477962695850140413128719119202174674151450134259714778324199036784579713149688527808167971620877446505182046118774313724663155748638846408979586704795004344026939085016286145838339034725961469766081857925647366296051195157679561913228687331045685258733030130919433404658754226239478306254532354457085135591097807426644338280736136514529233125235433082706848401655660891707125949580782190822886731852810060220671302760191208548859486685508780228228774528381221637806079287649523641248431652991529521080643147616835382008000089729133834934534800917347885867700821575444260395959830575137604792141620880104687682866060872472744423291326431279509324737880046965930447347523557743283560786263499595666693489534236088281992759679878947183992913262507891554688919400109094550742873866276659488956524871344690760801222290219829677945478830394771583333452495430668047151011387079661662027132122285749754659475936144589510323601766545615207721463235488853316818715889803131269848930939061739571929924176871677847022845493368711622418070145708966768920113815817809374790547385557452154226482752841095828158987918904368709222880817302136454541412431310184831484069705944067798978494014635085556492552756152087534130351228978496019329594158438546724407253633071065519689811857802587628458563426110651529957279122781818391366424228652817486361983453738914781811815644756696309884730915629166998340573714748825213106115595464908356829798433439654110091724688062975061825565689807825444100061394465958863245951143636583544373164218856069568115935091289904525202980274389496977031062987231550126063789627407128611955347520609392632237456632065282456100469095843300835927841416586518320603513052933016214901479815996514101228167052163601380751743800919316818038958259661290213198073380768282203888596324057517473359893901578838639241722168238916517237307019011221868826063114002047586591306835063624967041848064119071117353525124156756290723786225531388815935512127179648575277658969700427234872660880420221375730375260965921504917829528594154716392780172369655162303221759842620083286188143385304786441123849032858141990035346366838813012670589143230347251948455223095619033915301379636320537826486808538671797358573157300972888794088104778300871192236067673245549739042296096202655736958447496659843451072966630224113269295511755856318698594455615306363250473025929158392404395672974950180714075313132569049270239084792556217260093492192743446280110146028140611316516565100122022389601332947635410899422164534195521615656542819977084837916588184863706438732549729607419925249508493261188819720955588538312881118027750505668772939367773577443601154622860150371776393146014078033147176969948162973479405063647706043436956996612224450536810208938323540659401428103737663862424288151422878339180113295479092262080110556504236812163034497586091079344801864055043166431074813074376799741759339833576088129490986791625758205550138713838281636066013947780668903725321081010348934659723580363143816858878043589556729670229521406406366378932831357529483081279806817164981061112612763879564301221898483308601050484082703485732566359858379181736285805903770795936393068201102288752586708164625478570032193789450418155483331418807520902691560045347067828336064835173653355704120926133424763816460022217610590587961357053057969752867062793686844682257124955287575207231181250551729318305171850243929786116464502159963749211420902202687897159531055712391041312971406525085119971274244055349485868961070716027007327391225336878441550343821337713035693147258574257033078357254095876485058759693365047399110102095128125610479763134287313443931494627238397013675608256290786876777339989374846586747173806631399622525858047380952323732132677495097499996751170251327116965506359383314425476920403016612124222871527452176014291988421416664381156914876452398922088414324086686141351441194388573430074463201776159110624480593242844352093394319278526711217159786491035325972109204353816516957171921649783440998772837196490210574922490032399739920928584048942212954832066737384442859431724397335471987772082301619038345757553882148792398110680441853741925381654318988800741606688535833445905350138495607076828004441091688055933250852117250727790795223876723593289956366967883894906528062451012746919405367520108717162580553182700179456326434903436257452106589399767182660556134067609058758619645654958598370345582336752873156439965033717613471091345153493678242442280431942265164411901355343949382788191442953162714888389592126603083492802441284627498129763299365665388966142299885543680356209865206785011759218464899778595675140819030445096936171673230088054205351408617743601743752464664453600824667862215561823144382608571456850077584999320714737955076305976549430405082619956438661882301215042422264272858574978801995441683206861099772786704258500456340671972833588328842933926846658642775897238205129892086556567126179198783351617254729735761899795398525634649727093835037322434258246300439124499229068170203750975529598765377869104760285572590688691235280818667928452555318921293680774058703739563220630658292750757329506207317969338579462122813966761043624496219188042892854961218480796604280846313124311721044182598058672455796330589000809575912610828865419665138101535991178704699943377716700813811262881342864099083554311900837111164203320096202968396246928835996134951390372954664403517602271563413309077437863549787825819816125135446652909889878571867920264048853743452393850464923566962744814154559978695314167079107235422935290648182452319583757294859267538816296146369416150985592286969932954081744017496972866125000492908635452948082339253994422220324530625114615806220085942329763198085896610433511742855882935187447190998758073714218881580914390824323513143317061598050755144396884320270280712035036855871422777488894186578069861667522959775137222145553787959163439618264280892219705420660914697137859012929820407142430887796589355706898632000842453831544379778980371369116736616412422888866533687822948931907792414423119807045176798571963471473884269563873331045657527724482945535887003719232143811241457156195696288178458552844123641975624987006466114985681741520137466258700690733659001915912015115332143491112758665711902449204346628836490566616139343678371638992751804571896547260397234533320718568290418269371401875994787201458723974245250581320838269839627226006313162909729731632898796824061229250053779439482377155768039469195828722442948045365171802030434392521988872878633366352145006323060174422788480562938751531773196965252415945545943350956984158216061479986056853768072677263698846518792007938308941446264776561293131338898523438339002169044822673874107992528632530552579128385712490731291074718687820786565828330390565157732836466109616568585810886476476515748456677275167785310122826401118713598025876902243913339316859842017318490404479210872261491089893098080727869345572274469947906804841486581098578046766537160000969306954301773844023504690456104122472580199132162334281924071422475846505494065939516277305570091643727159985861451407279987307163572888638799693631599879593809459489869260552135158406865627509476753825559454575361241727455625647179317304528818281780333399848237976054950685169690311232095188218966682728613931314884332711394864790155378333810406202126937525004088590616746428222874611236745421248475139136099105296844540117578119086423452228079896110368559080146416548528957976564571372486313069755161630716335211450496371514244077454989750718869882473541208150771092643306027748195461705818828427076673914091682739075673821839262504581418386751216201809918041431205920456841899764123989815507130393361144104124178021030242524074291756666677235793264873930652463915191953073486090448165759064692887470155402251246168514634799966207252871741295394659961903526609206611637009457260775927974291470113782370667548169800293542714564954803978501697975937668389443514716401569443651373815531500251757504089053825233941771794696408765914491675489206727340758426219806837845051921337097018079980092618157018081294978674457953561648419707737091977663847765698847047977840436260848229051345263995334027546631921197055618195435119324290712761645574970040592200135744155710188175390392145741346752267005223426457809990075910832098712751617775561113503417136599527313655705535022898312980099298774109715965613305282620401252540673539333930697350224982784737470164490175899456804493304639356540587172779989859495157867040324732581686231349219283488109568696762939011955573787486166294325861341167661996068072540217713998618011514776773955995020891374112723944729088108894168868005636512718603788312341073727104359240287097992055432193303406250174910609122457230058015247775755777177007139210973528889344675633777820000552759940071203314281753593586092183067806881722057394457892503434181947284683839894105794999890700940944231582797896511967967244849574107776548584228882721336249679438639426353296644182850026778729286169325674066962430624623252590067956322256237028571529666583773011594015054892825173048413847350847302749637275952712083251879594407079803509751941722743860554592505953878285159015804004700067960647504003318207715250020458054634125336884218205141915289799786660179689454913196881795372839575197732670084683072584353360597593106646702175929862689530850923127017150908104397471495846661451814721311524702207253337293138874960232765330985568794650247415587958865215693302585346923933328714944004442602376636531459391092728911037646978006213687876235888940469098620331570695465908053916938670994539545321761162254971690190989516736884011469148288156479676952003856631134872859714618289048423419230277661249346749592381414410307300521322020407543957829979662048141887783318570324154250136526691768494219656015112571264542659290078715838442165332975075439332028265378050655536733786263954838342140969885056872939881393391086459318424552695408851748922897136492664816325918792578048428054996329802234494827817371348694153444991457177897767247565019362499001913287055725741092732105753216835755946201410773182863496952621167435591084415385753920974454625453134215352129423874109147485585804690333370459990075143652375374513144232301227408209796188318631285672072207861853805224429037513780283005292957519786917573040183655028687925551563898820270958110376727371277711232357919293316361485756959574386591026288185177901481882521649333741138975288031606952556130710694471690258563095695338254419049530123400111966134040014595763186664003970030797318269506627770409657844974125898563148468368980211646895966546016586280663727069862688612903942607067067724111471805758409767197349997948768285805540734048713445409360703597884365343211945855151352397313748157870537640284122165044595365524550836669769734976672339807176057244864108926748418080993846249503256063522490218796361885522905800869039294998721417838307124752496680285401698647422153992421520878082390849200656304960849272641405360647865895973945096709583795920320704205344896114621142249222489143030007472792459801362090054293848442234046439190166789095190917751386442163077247930949403844250256391463002572841187292918857544857941107651453525293063846473726985158075204690383101621142704170974481789536102159039407311168959865845635003134556114816311755994896841360625673938196146469290289859081969200530447038145215508092090883719171049410530594461754476421379940921963499315987955578357425454973059103557092608497109210402303065258412323182253436868739333209699351484822384223387645264801324466830166846428363786818991812439169725748803868646107404261190136769322597095328191790702767892825375247902407812169264479334116247661919382068550268325772445935723419087818612752320341289474715700305138356447441530479422608703420850577344688070451110059450764459339444426295925694258669455648081225360345320357394517716433730548143773450762962172190913623265737396056215562054590697863024906633363632949295753269442833517973138796820068027969441293828482020749297625796530132068551914595208632719750760964948718008626954572028253968375969108881359651519501751303102709475054496765630763026202613494929796615459934986832584899681711385775525498336375674122309219572672061888330061780405231277529816332817134421621418600190203904157644182963737209485183447514268949110779994619986703855838743864076723335492467452763692848573691512436716905912893493545376281805928886963457669997236656854925940837639752541872870041692880915976236872955562518475058419865207906240157295408475025920703474416110114523923488668828108043904588510042089550198128162661443120935423790345973789926151409820654981904991837828668292664228308035233152731167606403093473380237517789872939540884219971276563474952421313340355482427093068109930182342473345246789299174178954072548201767794294975857145462334046770916092225130340981117595967670187613855277235657630568583904284371589559532940224743503106339286610997583766172487894475479211182278072464418709062700432247331674804262331330690657411356788967161164544068347067160329543541589657239471805079963679866192298541125903687105970761922654591073063501863050063899560666332980381650599623822446136544035477720621640244810327337631776626048934951099397509693337665281330932009027555494162422672934360056637933441435453829523944570481386073964462376590278041643389067442899088676792515418496113018850954504803819560061072420590711359892486744972884924463554147337507862363438047513110560495381103386288321223585758073951773822765139537914263839113192196294612203754158647834002428997723895368227106203839877142647207948029123953860517908981782027329260264332509686785791853345287154694510698324212288965794722739298118333463657484357987309263124287908330060580796945324195274895430285549504083013013662854990061945513581477751118088585485375323388288655678966728131666774487936708951323780634910668151216015654604994992961433990781922773958839867768679164663188021427721074635128880678887496299527175051926523193796898532706383728762748980294264640223319087910234476673777379139185195067177447430340352473747508572469739774489271572170574290120641308769771458681919824995872056447171094540419831457158922480622211372060863463219352592291090354554127278912403063658500787217519291198632099568028686060937210868536202286506838493521850388176878553008655890605981375177014337128240488633851106991277451157557626416242785940983976431409963321680359077764163259662705132780311693050787799382198391664553801681396180946427439289092846613710512505119185394854793504342404482425377089995322690723212981442872958680011035658115335225844877287693852579603442887833675262375029818151098695775059102215168582573285439142152759262136132727065891714246652297264205003760634951685974776399238732328225279751767003125770574523856556098036459653532426796189294868991001592316303593033430426351063800066392781128220144130863844638350006606642969552539794664104550325771808635273266714670002502855010979721426664398483143491271816678647264180450567621553502805982557271651769769312187609326122234848150258998422372191190925662657308853713275840628134931411302528457627746844687005423692117778606998707445391424272080966579284441988427491066677327626835705086891843627781893763415848872745223355934693667634177003968772269556851651991542849336970118583038990025604826581484331951603826726835641258772036763057279409339309013582954835065359523250801489614668258325894644317636298951436300320972418262944957349577318003755635911424643276534269721290930745858146856411721582202700518118138895105150485517398650183680365607146265076239697126282922282097680989459639324528437566152284824928447162091629885979786751803104446987410156812271713899320940829450991111057746643518103629626647242887153190760691329499646668204864647595926230179887282005760209180378951785660402347040198474851834391780984590126411529102608828816666196062502889564473631258292709249562630156119865410328800918791607494016090436883362471533817714688990154279343714701715472881907676101287153697906911921352986646898979601959078676109451551682820944288600630367593823032139499151775145974140967525690318019153204647589407288091690386938244952386002200804436653966165541799147706316315447409300442155915588637157248424041371474206346240379591127514926141695807613416775644427292029092128287651653938379153048756780477790403856301765810522692294135439304248906509198168006344104651734039486527695630512117269808388828151390937766552039578812142469154226280958159689049029605006552989196760944063579662100227923645849973542012958029709468062252454058473841697429932864906571259196276241595184430754882214477472269446174797470157616030294869705390827287788322613231193561600393668259236119771926403843455539852667504796558923982184006821961288823986744961771926356055668145819564868614630650459351548712815986056734056249688243187651871622507587501221699789405214761761704862410834382025324736892840371844663401488009269241818343226281884396610813002354254775474696538650607571489473865372733710999004038091502084031921522583119556611890828574139453879987272893837074186667815616933807585901029462317972247944386643099412872304095637530737808809365608453644517422297340821283399244608269711603288616836368543086137110176875495063055592912314536293190677940169214422374336986500114039601194477971185770163535185987896336769407097711275300527253687901843052039544531564835469283478871549476674878045990468282975469661723100470270899443560445985141248847548122443795701489316219297178939021496975069431268799940737997704801695834139505595926893865546928857406024865860747013473091862338360601118943046443663511303980245550723725530868128590883261109599165490468325074853729897185091493554872421318280807083361083025027763408452353335770105887075974578698626586275945514262679702122368162342614984313188393901146212610841938580015081461367753455816571877763007815836061869662469867207703579513013799833090456739465487907422917665685505799117214769709685513904691255123531469837147245552660636586461324957090152030469924602526204174920119377647319717540026073410151591148407203087337419087747026150428763587081877687559875638636896830497878021311212445817884904068937380354581763067897498251603939181709193454493495764056826177704962313173874084107043669641910485113567762041157335221088246393773565607707479243521594079251030826132135563372063889439103097784802555779564415423572510584593814664261434896242283737354337838739857879299617316524319494927576150333311666317935274687608923626394216680521314544696274580467422558869376522859157846148815195274474895349622667853133744178786680772094626591725967193018882439866107375602170447444159065598929448792830459277131418342420504799105926370023097525583996606533276472924081928336643262399157169788131346591564294654046272885808749721734389316965827327517408097344141850888263897833636373351409747675559584191366156996790464606194093221311238306920130332123446607012551377025730170876307646859362518419526678717566469994535381869923359172433619325335513435565151944187854008629561575775065489700308256106893507281240373665623628738950102517274734531930611957738381992112794971512784737198094458193306627812722159812563526882514616964548894911730641062720539006525949652881834247095037106184769087368007968760781174703158849225438822847284919352868770513397530772641987774171442207755191872699638573358850407823791290606691257269478319303013395558535341334922671014036278111562196385699622163278192825137554696421826561947995307953908602541691484053943062972847855145273294198817516033071609284118414941670268004308572429710172610719728560937109333089892188919422218816311658577158601255232066281849206748111898744572696919010197770677529907178629248185378578922006998690427883039540374952071677555290637661346072001387807062479222380339352010691061981242036348756748051343543914348739893282847846038948406912403551612239086810363213309147739760410018245854029127239477945396246070990755037053085078012800949306580269264941811635768587940946766617560345411515846058760271841522277291541657727041489928184704750842964854021214251137084378141984765133708925589578399993597271487605893656634115596507955023371530522890166057566468775263426457609684823318598021036256696424200410797428400495187725773713932207250538816525097191500464540329353171024166222869360439336509785076390471109037887365540000572825677115455130817714062286574781917247984758033341374795939836652795561607202087922546402617670136874543357520164684030039166210401635764901764634988464283075012902155266894193914220786188071721267178412057423611534361010761021808112578845701624954413562534226753472410732000873738198547781942360459934869558104905098318919183151771333588177623917796163485814110210644091868310345943282048677147844522320574091118004037272947128358700374827355704810614155324307691265460592741063954987213305000157776070247768328466152844629701688915440198646578467390586111260035589502537238307320901384560760032041455095034232998838428034145189083582186164212166499623996664810094165231415908100009991858378990784792827100763196787877836942876499055001256479099767834394832686426741197908758262715564103184363228768374995993288374910868897752530520921302556065207759007937355545581768948607734986893891304959984066551710192483093646391883951116145800919912172085930583559339270148269640287764389145742751432060677290140111433830696993975893766403465726351531511673246069668751650939548140148391597230630344689499199217336479446589176434925594378290469138304633665787569741334968250199836152834210387511930616389801004080192751064676308511054036730623369407886453181997478639063602950410562445927269207878998089698992437370741881139931332365301565918595750919706020423412104717102514012188617718685366520153800520525539399095758416248722436185117563352460315934836559123582200103650334178911221289611527363285526132133942048786766343673934566325088801587901905374896774203180549096308262045992467877548648320727948347608574656285883031015566860444971945568899575260239188158236980473642287205374357088331204583864501180121225738314427208067937841226242341035959850933968106451866051271285958962957253821460326112319853909850582640942067651474703032273694864144950170585171710137364615370201416357078516027096593983783178598457577754835266979192035436116849455068599235118937838038852073565251968800051569256807069757683523067895502930443367907414997561456804547912269355376679320712792010282064202437529193252497456171582305995197212019132797172777476421561777605284793542944442006211747465020219874198509176802331088460724208842946905633085928511544588770201038912371670915357412278878918279032438654418351396514270311474008754563915940109988310109246389733003338836609194745238071338336394120466934414551849522088926436396180431214981279328879189754393269459969763151047873506324199504026465268880787463394984645428056366187399379977964631743040712690881520935496864011160670866954424438903792235865524097151783097839795238800475423527391108761019365961533236138358325026590291106548553300013047107191695186406029909682605455909588876154807627416708874334646784338822753278903972180639618285603860924394521210166722760261401825081776151939378366667527270599016440130447736494604925228669101354244087444460673010741769401023128931056696729057273209303786450743566360320192966980002025077111334762573034656915796058298179323216984281360376722324445049406457739182492477946393251522828591756146032598192473767140518161188269599611792352949603550289317392697343265887822077680688227514045910862271091649535120358638354175525245274806548499275392469334430451710328430497184262130819262680953996841362602509690970564276955067392290118970856447949677389909507549884518935904092178841816955911872020849748211516886021952235764932283056217486295653864278915545658757096982162049325638884813456784972311228066223123790573132908645008900290587717875348238730561122975367926587614841531891200202821703889124566724788672331529847251512325713822590948658556891760941769993686754489393624965049714375170729862601602902611487071633956438766472494348443256021153630181348035232161433199540555007174953021771715484422300414750263991945599791067739287943681454611125458098195919162356570740491240661760203559111839800031678975896629027615829601137548926419088650684168682030583055605922404622382857979698277753415575625533625083374469189065062360219295242144259563385593094891341121048591273263695516051245710639509629798558161333503589112267624817383857083747918194258778362635607545539017637923733403605986549382808283362900498163172404116314911534269531921212331876676797959171719015761102143325436122662897739611429962064784529387355331057901692021854060670862422177018556170103269972005465350807333016704009114039878146236820886567211281769326006124718104575162961021937597880201369961624358525005839247476704222148860793154881215559962422373872742589261494355964197880751806092106662344810961380770892164255051170011084209938500624559001353064848805538858776834750032891809525515164453838339044064937988961189566782453955951566233039815603910327723549443829727217635256249119349331058725058634629580115274264039363774796519080795246696900984567745361459018182056319904207720811205981914208168976981166882928342464213901041828152914580559752672058737474490128108552453192423435847483736252335851131779211400333705440712579275743105480383399377689233973244386996074835799411288631206826105783739563301202935106263769773023639630165049213183579173947746982812252375212756453841626604888007299361732129636800034185028418567699160280676254838079087715450254367950451035750536968847530476893217370575075667569196510586406864302553632286559361769200077638663685714787976669261694364560590204501030493791064259166515763041528674595212251955593353276978766019408815947196907162036757565883256213597428096311795338867935565865648011754590485305771503013926756409260130939217642356944398922686940751809632600312093444591875840083933211894639093455432690347210596172146816791590777991550192119138007144513116823063369510522752080682294590116219926272017902008514855452703228067628561309413721933481853019624734928641025933718956114117070939174651401182882055130995687109719761148018394233168753393764004386379855231416205351270802340655810477136008674732081755972120693867171910835083239597578570321495400083078519210967782208967600831909694666528736732590866501749846867351900932302236484580057186317249243994966967128680111659785016409947956609306401626109877701479064214492415779345861638671776650821628189513350720679911345626899561778657880565988170236520544055903615889354802057041923117593273814655284841415655620694530748969469470224561615430958842572262091839662844013283391812032282257030522255370129453323843962556190286691345803900277455455650395143064979975131917823371506219515900254756575154791221179601678900206138534661299912040897654075579669294616073778964549351029334431490841584183304402335677210688645276742312837405865468084824247040792133027700989317726378056716340919299249628778056686627419773627108753196093857775502435455641681455576303578947892364842651015696226429497430615594288105723752183051426804150554151147355602563190993921898394620404805154360069315384874860068087475262183994852649135658308412625395485871152884534817431806563090036301975514197242944652455624018050047349305370940694816474302599468719693834147547961262268889647427790648578409846319548483095161299379893944500613557317845488671506912641661740091476109586230298909518783443653321149303509857624060611407926936458240136212320521341940845164202788021250603247654062678738564020244283432345699473238161645941972313189235173609359955367345773662600099337514368890796598876555643906898576819286170632086190616082888608667086151699337343329907966740385538149529986125415881617713373103598195144482350210584334528528484225674578316741547780710734766914851117526372956707805212842087510455262282304440612011920496944435458366008088282091716732309923376288890507064925700488136731662374161607032609506227016291138702126520376191873147195877092985317253073628257705030645910403017415183840551606503504547234124363477279443545431598983005872689574217749779271366460778366758419022737000031915781601311754044049457817287500739650154569663622856313506249530350511831909537255896325000585517700582107844348176630314606540226445127524555773124831905858367291486247072216682172507278785565952085604883630786966469050932035798854285118729905855832410378514839163053688617979400977835536447187713546991408470447901380498590677471857275857966271248919024267440074428490562804561153292066923194196106433595171511070869060124045552655651408457357052424027009670367663826520423231197480299256911331202122876315035243700269459738289729669158479612597340512127705194166338686841457227230596746338152896636210276801263206418360144034758018999837878502050785666860875216817188922403499970938237547867857045522310573833313673116991515302859362692842596075382472927843420949267120615456224021751575564004337749673078461557699899161193944667404311241438995747950515132754009485387450102275830032901664925920164445270900638777056435746629173195064216589219363589061144593456076702184198897474572778672519888516554199827111304294288215057941701159092353590052657706848963034682848785777210126966567271974511659354546570137259484008153199163695683162382674928446772885411063588802583362109648417739551553240688986837757673505165070293916446593366490061031227414332416658466395021915228546348369875592961377116338477309169649821458239931945685374434997971174907246547330959307212877156215191702586601757028224636222111117075682138696052280772098807347796585637414804237113121033690883237585159600490541903974228795370498889689519732330301083529175190737197051872866849813956927243779637704716938933677979925473471470963492028732007542961184515039160639534100623195182888865061238562174651044760099069217216537629839342042996005302595731368682530717955778687806040918713744925988618918414645308937989218632784390741223680006086343444356229182825115133722861946716345002495233635257217520785150975340927654519853019459157776924503980662061486958463983902492826317614515105476270083176141158715183050818084825188515100155371901307507698074056705084639583245250359316302135678099240241784130940570041893972409139111235429332118717576221973147634438987412728236119014631688627791347712106041711396093704661025806369254034169021802999762952139219515281043297439182386511342654180373886752479320184489564269889905533958540508380309435183007771482867634403165947428681724673183362871665774437195113783051253724421408204708298664355254423735919385940136713166253829039272448939561536189412163301400141025535880130724099221081087409756431720433576648741988123160865809278379193370467521750366092787897515046081827714721052005577800052018090366101527432645159239987667081790935761556850525123973622998025808563280139272165569250882699135357378297856191805184895092666299949221565479084306966107607639307557259229764596390032211942855617470194164589928077939843832205770940391761757490729582189045984567759216475041801241095922442133132408071145334703626965795334056011077272951427276986338416488002376116501979222469926958913481848904904381298846106404237137220113098799184879954381979188105892368344918042078673726160045053663761117496638060525405965229215404146951288261205048791956965095922222644423199877322859381398508501856421801150612292144230651034472490367245601134811105048753660008224892315123476763122913064372525078961613879510624757877857387023140296649289742524687878197636962016531895798423415642377068140462335002714226722200525025428270776297673386573316134422072859996079338759678090984157411249924774848644737004981324971903139075496268614831111750547349552293785951313432402336648964699805753912015679957007117231680988948196621666033824993902725991726528817872415360575524299964361934495729244166978812904450997409918467399547115815074576825471069387354253357233793254248927947663143924134410838782121127897730762118211512949606938362729184623649982603124682043296552982425392872240515161912110635980168678363352740684397916958951381707010220578656261877481595518443691061724006449529509112578772751240096147496726694783990869813167978070319019739173669992832857819160354181869551002222952614712558935404153594778148300860180857993795269656821832571289899023878386416773567092374770047080003873531722137740130048125932686186432082050811053625586717574791429112853287283654138908210362273033507025708783556801597315932301074256182978404338750277630789856102248549453911504282684969974119190988971445737370157119417693978224383902325564601029449476174907427697151860502203666228332581881868252232662013605768516025151332277651644184461235996801278778918030224771488556390443463616096518672001959107149765794550598616523602727237801224474697002297867235663222348526952838923354895982503891186005859083119066568839146722930452140256480801475387870820198524677096930411192549953843695322650459774966250063092152739140046146647223626055490255893384633392706007031899177362059989932948921016903395404784380268253274010305969707856304814416165571224322019235562150862540197490427049816695596075122491826516706786695013110373668559075340995133339678205282083349207368672879772232136252161297589509329183234600134160868204599073131310317141987443771662541888241169711545193660593381048266201513568321399312757966588791560476034177208940348739767613722980920297369666497343029570875218938898984534688232934836547436368413514121917704673445177123281364663259752689292283718702540471237786481049160681870848159801961005289396924215608272198483893545974462886096410114060249895861344389722082618535662360862237888447281075234071985088803573821050218992742004109783152305971536313723240638183039205158543039219243563043221776732145246679071696594392056489315402644911728164468925353993625905410084383055807866491313440176944580260102549991511523700361971055822472226561712046277603170687166394462519908924296628189978418031751093166788141975864359668801306017771595856256760642477285093485686034851416753209709675907921688904795849944650704095013567105344978378235546909786955951689869552083385623554361246849086900111527661480174859096985055996386597612494731795566245340210231774369503891123599641454748580279285836539658821417435389185375160632391474261919396947338300542022052152794286221082878634672645734694437837647121303835631032374866289298964979838685013260479824189279121554734917850410787110204560936684448540380330486619867198857251444329093187939056798079720466352931802349785576687748233858650738605151429194057246151372820664967543014891595241379533816126123701632896886781671299151035101751058412144431629313794054255794087906904075566113035590706634072533589872160624703311680390471752362874980667153121333445870781071337824172354414813395803621535401957346531379542790420627621726235747004431100826107367072664099084314860855128996819020945965648738807880877146517977808232014587753710738152454516095115379631029060968758293460522577063878542171442006723442611203356853003103935219958610306515628837063637585971807759227520239259776040473078231376679689956824336512562214497018057756419131214482531948886864213709804913516049872970992102706761966111612320545205971557176324583203048496174101819008012160839942052557905912069814843892783546080457170453134182531333494339072123086850425722987300411043641728004562266560419080137651086619470849615229237665106958760205804906024434304832843931544439498982498203363058016935151044784489817594138586790879865554536324840806147689564137938340799662977171617044396239223743071329696738899149174849352757994185624776443539956382432767732974774889333452208790765023277914701363757483071279284849316997173237657145652891617275432986025496082789830598035945069763450038058690410336059057626716488615586212895353787997028675321119196610776482270509152373371238187061617583906361040366764257573702670033712954355914850901214404818286817157694918114343489258105752471258322330963668017374782193939565934075392349539228784788287198528721789092956100309694471372234874260019466704281522485935722490443420987596587828322725045135131764321615285383506915325571104320743517853347827277075226871761488034923084695875851471395319045447525804999579016731406259548178337032687266132387008540993741981007790086002654525402856220322951465972417756865663839416817375936429686765679448852693302837358901868078140230182005444356166441223349407176435199756663922837485038771398456146132941071611447768552327261142063533971363328652140610162902434586645108204809661329410082539061913740003738141224353074023580682760353587117706848086539385229983571349593541873061079076399148494057907404827969665365311457245082315218479215103793019435034600482665831285593610536730801866643424589698689271114030898410107619224853913642159344458960456791601424319799275526179952645220941194214932180106354095950861891098048429946952114953401468525208450313793304083366404433036148997723013872925999369803134234010227895560423500008369317362652641505386703151944725964821701665663712683346242672716506367227758410301289800425386434233090800018923989866759483672093858528350883709696517172839834359793441809324411523514407906692810017341832793090419665050698332381966929428956384536633157565937842225162242896996463838702670121945886467788125333584711492926081887273276046737106464837203597461040608090760985829034898567484170160863474421151050743747046028311388819940951828242865492390173163763141619697427298581456426089460840234037170437834370362706582145627105013070218816087496182066598964434098463340342583064627437200228185035705443090251122671219211517622549022252538835918032353966398801367583816778907340977201209108977394571210320079620475655933279093598288209944094085418474080082578311424603281829924429879923926850410623746704980877746571362857019597105858268733044839067672670591466453195616504362612949004676411947559315041979112713731722469475448412132845811618656276271465495700947801972162301141967122712975806002847576795970235101788285297827486701157000213302246679851063027762075203992565846982930387723024116917147141489757095373317118572735754340806671724987870025116082655129169807076696472407852736509609115498102549445151938936929978873336096079068601363800688444347053529586592067676836652534589021190717056392598719804424215915728011386916770039762637907196587046836162806279103489993420937317429938434508260044065806864252715806944200107501927163398856689949582363199776856649302289166018461879738731978958045617092809630150103770843063349629070546618815656419635574041035344199329484861090093509394603755479162463912935020048083126132455989508438399717143320292523480585252564834281727360970415915354737376352922020431546066736348507014085954522393825655853221451957784289201212253600914234517361470813782580124316953874737117600277888285895384287728770452631847318399744327241308558438441692201186475028363163835901976561758647444638854855249778274300528292757109058446672711575815299125096887411206897880248403143943108068647680352669167062688710881976612750228322552078990690305176498815335551664214165810852956307569248992470450692175865627470180909591582219703308599275165405666006672232056471344754302796916533545411037599385763266145924334481393424347501947056184307535566751837113836161573476635550099708153598287064170433831012121978186706462223220600271521376173937642080765944413246544345003096954286539366749191666038242827735038241259263031584320021617797153617809646334264186369950763864907726041549809400446913532553902767151513867990771743271247623322146305643313043078793918931818856546821848546577807843648262270717321937158489887297338323791394824860272510978226414704459001643052195806715226127088124239973645496344851438046606061688625705138366639443335494191845537242392266946797265195060712838390996416057020921320739916834637291140346146611020782888803141615677535268797793629000381887702731043574563434500648521240818318534187165568683165818060658078404929205820874754800639603160062469901972559910250601714785085332182131009950730903439969029232804964945156071086628774722423650394337462464881379844335903961429125949562221578274970959972533049450249259245058877440488339912278214729440482523167687480768318312464869037579388698031742723155469609414699751817697003877830773091866839717853128910713865741063496849915594352813668862773014454034178747007029934005724162001565595586766549612679566207145769194198531294484744930976427471249316485902822321347761240166601497011175368322768852799473080308578766432025065433550832080526657676454907142678197428628761167534144743483772842648210296327677845140766758680227925313549656705015022170517901237021096112765375386720318178439911647716918724976836128649577838231978666309581120654705286844351112924176758087931247787185868614190142462449770216305529676519380694607635909283806331743741509983819247489374876495275876165897868689101104260314395164520234786740279736823430849878120647259307438813533085102985593101567810306303319205301458783637928290198518240239354363135465463267631104780081690693873547117962737267260450352501229534753082240375789367241009321258938289406615553750721709858021288442671960745674356641720749101468695664913203948623603501343933362890370897211128282419617558754076862988765428166920760186825148250293379644550920114400374053758506691860461124067540381749811848867484005844817088565875403999696243025360017900892148098462259008066046460014199634179473357310007301509143511824566539243208090034111957885423868649432429483806008116269493745565829468332322187817428388569046302447390795393879413826877990146057684983508144778245796216220699845455821972151054079757439943687601357269782000958141354939083840603989163518768419422604120135350300482576890392297199592901754084060084011149895081822957175137900110714939657384227947728982338155580799259447820844067382234953838860363034180784300141967859777126263185853146925221488126491011561917659928486408402417899019092822918122820787802823336652975053818556713745084437520036809205125497550415847871422073697527693160424274925319224715758858101745064108146680618162625396298965978837864802490306863548826715487573745649333359297266193227593106571007842965187868454116617368587227947932589408098027811043186296535800101198369324167262100093802552526645551323518973717025838532123728343095286953714280786428284882882388731092767633501651569506566547223166735640324158731776410420921055917575195632992809780252353314869074372857032559825898886414377760513076376609670720845221557204556822122129476236184576702408138656508089878424701466653599426581166390797872221281547415749743918868627443438814862975498243744210808284080699619547205665559591382485285050438739306246376093928405090622565928034128484505117069709842402342986418079711619958795112781681962863245470369581915268818016026789503059876845193810515748490527884901211594206205993076860896563361729313906642093316663188525982922954748076649094752056434879608530079204088195671222276917813784410339689189869403103418717368017829877907052967814827414800588517474502546606585493214162626906230114925412719577357370462226782164088809268441257569460390984883819911196390225881462430685024438230784338382286891789639826565418074901536664093873731807608862782160056101391403272155382823126600005093573544251048002769254675696054582782891367056123204083816656770851710842818553217741122601534261721240596818611992983805698026927521919436000592059542205125541385450136481040286492191971697364959988742326168431073515814078391313420034670685828117829136218287329645207946515295428447159188970910392432192664008744763912563445038761896485304154472500114986466926825630517087520605684574197140119876872704363725890633288827037199148678214578075494422215472301503186625451813507931004780846030747752390376145931395320106233321170440706672397203528297790024359428090149941319862805462205131186785271096493132742588198197808615166943116230524011260846793751520065870272613514904938527436999833996304474048316744425256034502055003990261160515796004038547582698250181925898300910905838167281887499613749842567498251474616592385725881194031847823540607249435352113994664221342837356417217379158780990225578222210689373561400345217883400193595812432199405815608125641370266598962001864660850259557855202789826028654241166625061564818218140211070249374987731522917275331725283005002595358677514008619916211864964793899619576894526958110891448547727608698095253475925568291486939598831662948690200696982807819899854193434292748913014248879394977345671649721516311196197996172413365741197529331343772747566532391918349056528079503223274937776497566804421340038214517400054410141070047653268818939970522683488214060302180484073191872716149487876120002049761662185851451800470824496345812896787987528829599013300834618734291366093235340097231405030953774095225824789803087909500421761002030457099017824145618388044860273922187731606941409381340498439636074464841558159577484523535453050548934012472006692316810037346501388273107387111934072253416558671730670532447032755737250510304117911888920531425684010726195774769071273860186387292054963294458683723031026465468077157436177219816043672040716951974143998761850119955876539475633087883127827760717770259623063665146811119582777075782967680553575417689620428032666816502825540749738406262914256482584117839398976699688964238214931796774412644497791724387619738397460059201182522676028423475059782174184000211715507597941163891327980394799685742152371976397728803827979713980930967178326770093976228447290405279006634132633094396932218539530892265202195348799885110634838922545418639368560949271073290766876194076889582984232958561593599111538338244805540728106690993539788990862806462670007924799014232447191602359667224969512139862785872980022623398231631694729177234085874195583176046871051096717123638420884941626058077900158188584824443349551926776185435238546476023359460766304740583126024591038960794961174511364061845363424384801132493232040312392237665547089764971020262967531437730276818714657324649429681417167419996039806827212232800678779694194252494960859550758718277702336714763214382843059442385189848963595937288241611366845363062859481347468289270249150458142832530447822879196244227191227653006198681005925993574481500158979715255050843285203661978627228550164218003888440916300261446292768867032548241451798478561726479315674186751022660580928640830764338541074574961168932802927477409538448612498439328179643952626040385107410545342319478973871369571379942498087340414504989347082171321269576612060359808789701667504736638151221129179140790375867894675719270186152696546324013310533126108247804752217969799791098424622171787039643838071912574159178126641500749084385084526065018531900383862086079147804712504236210956239783425108695412558684796069260330522828175415088396784683799635234864086193168550895593931044042694845433542942602493867872795557208843976736536916873502614676890410504011433945350650952536790412936175605728976911032466249219732854529585613002285638903257854833494829886449122983406969053230586002462500732826254409261005614250969251548440805621694006041426372564030297290596395858813460692711393498303916721813939956433681957804175729967613675580167772945920151197262021087355044462468951030916273315202279569239256512439620788295991562388616317834053864576132010884591112850191749812163140375573038887400626538957301127685561162562692565106872585740775435489129829204483806312463916481997073195545606337996740732051896844791557514748784906643261016808729418278857795331764640097449341887943599411180861945968387401950132969430217615783284242578852972490825357081202836681729626078034582706017205091217624002632220662218229501289820898614192696391475129300143759890896983715016890479016470373317071223861133014765211337976096070314920781010947501465932423533740234052899336032972566684088838626861719765574637032821647981494842301226452116527050925291722459775365895811538324553255924673947004362467828368648123727555805258636458608729830982925971325043636560076177854981773128257419134172859383738638769114032071493442020326036626024467174255767955191676697120303373421493265546581225724211333566669929387925713196818815132789989164812326236131546162486290349719671132276985878115760504981728620250951780110931836844754600970457207173726394549561623159289544656316571422437965537698937364285624290376333623514654455750349274069457619049407030569893435250222662058451701697921685042340421532975312222596700385894330295894352998302042512939231433480517774006323298625557389233472259074430019822062940612774886577806331437380766486065429726939643122179171165409943418755338389596534299814567112931304169228207967262289033403301818449127070814687106614621933230304513694018170548501565002145041535173674076636408040702736164418902066372251826631393408712273896935973468918997532757570622902129631902370020080859390808087797901045330501729310114727617481652650483011498815947124475282519961717495746393413816657480728977748564543606676047395853133466362901758657596751627072885586093233090454305359043616445985991534571844054106214363393955917022265190657875157857292754434272827781809843518689820314604728203000388924040424661072865976499218183310138662734078838497998146861822892734746165950899877276368439445028064196679646722708579735317496529434197238182395388036459683632910600188101228333562016831828699691208809134387907104239569463903423871271263934914869655013378166949022690595700195229187143370809903415073843984110707903138053225971233515311525968778563018337507881616799607851955791705871729901922941909456904618587948572809084417646825120834608675495054861879970067279756091789824712743317146283656420506356401549528465934289631517952201373516154594031102399270715567866135685838014855669981537618400695492455819894617949142256817966272804750401391319343550487419308358717823562715416047015925624091483652514258021243425714913569445691840913049938734604415044971128202494325347281853365403606670916015075399925333047286350870649224455517099370690333644248133861231394797012933995799145331424773865012616603398250475996408272748355889322665949316770613631308057356209053568402224652217649217865782159774164223344145226477249276110419580288119122275046800660334460847427131564999348742403772855009158741597169902475580196724264350987049553394201955677345837449050711654853237948636659117906043726414042132558465257340631199469196755729410892013716474690711142977589220309343265885984483444418578756302714829187146107010385656425443042695486058919647638511916541745668217109457747521728563039978219860606858385137028129311534508183203807384095720230009097070903127090185473199378985974497880772508854870288562781672561132808463663657985693586798768381188194594471631352397275154878675751132335056388631202356905656309314455953886241577416950964948033102464924803791264522261129478705759473855713211962495789166711349236605497319670491790568239302154642823432104707703829643969324553029372921488252409220378506258150856580129290810953625077270291396144382651710972904695708515846632777196158880852637540326654945451548303092409087558421969952238490250634567549093493659514210956050834623492230980966402597567701616817770455344546455073598483709222126461075729911119663207868170402078545352575721062458795778238424694951234688218327173694214667786446350280160880254136749262817831611732967991693296855265027963023966179865163526284005686781624575105982016866876572369090722889346597992462367542659213601518290234335100229076918567352373469915220829908412098093705777986037094561189031632161729665228100042835604610255968705280321467729472234373288817477806253856131726462374347408143023459997598644668084651761280502117499533826038406744051008465885343892227124102080359557576585998844158375167825304790319794921357612100189933198588035049053024328230744323085641297313798923693155210143737448748874667525355185873935183101863144520013116055666994769578975178933590767965262343914283995729648412343331864775922069833718867352646307880419566193988246082016793679645769165863893235182484573499567917454140613217184017065439683335876586200210687340302937267792314794935602195664124080573648259343433699937167333622317536564802828722856618773575110024350070804950261798090570383428474057610534246778065188789150115755749356951675799187092394278729628406910954782261197935375178406006916118468621372191998157932806763139148823987246509087880694425665886975362273311123543012867134246391982938870908389001827796227040593733003811881572126207545625109761268997415513855906241145248562763592256237811922004343420742340802054062661415723784931323687904142709830697329681493424883012255740526853606035418144643494463959053200736632436833166317363210964601769099447781960558854601434354791812562068123260162046326793496089745321226313800504033703109629655148690383908784994977396854187842908137525508315781372127206473358197086569657985972988468010640404404348277626838426359398538675420326129185447964632876163996664720360780833185864784324601473911531486924235099954403586496723113543606275172188122450250669994363263570429367209032658021357635396485092730729863086694587335576092288471921521015873026558467016309146033214731797676641539358752857257351792312363319464340015850595434904537542998331948176347389693599305634552007905374472461100901682311394238014498246436562049935136816032183950945190748418421442119523466412772853198150052050468551244346637658129891047096053424378102921014082022907836023997321525624315949436950239575036415857170100349856715016747106751535424827058392832574950379480327562965635638303971336066894919688755394825898820087465437900298709767245382041349168266460971052772503670586193074104047926847943829515445826344409888323381041996927327971645560295262605261368953501843303391196043228451978297554202393235892338150473369593260230913836729614604179846560588891451515045155658559926359086898590398121388607184588141527868777041000374132202331350758551770546927712917901009193298878272267650058161919605874581639919591349861175612418494802172790965880804290138864332464861454972601875797573402703811626118936454508564917688856912052853105073263657571845336796680075481092348183657525731668124922102030607853361599394952523964000622402263950605080427440791359619316149185895587872736036244644344819555280064704049993880577938314902356059198313720619668325280495563134985403642395657213941211002984246931661817516925759239647186101365897837553006256250441360264687110555134835794010809891698014221156983957482826857576784765268922716676669727869858182646553225974982846726960298290949412814989728534312956728421365301337746493480697361254916887686120160889816552593938022860251841750532066077193303436614001009354274497046917345687864824140197708397125409884927281071398600067994956405836828549835330117294490920831748952784568214273071095360503969747963458126559677028400080726999697613882884422092202163957495885106620245410664915899817476392880875233343339790371131700408468677818864235521115254961169498304532509405184780562361640499317332864881669143328299355081810067589916536325422549643948310078642757708715285554724692194742800343704878052625607284965461883213927872093734864052935845685232276733890710307299602385087769641771018205488814041429094373464927716283767300614913267043407456365172196152734272131510654704601709430064790593063752344767537512716659805716844056122187304123722305647482753381116921406523862215512296587861405920933778392307733816787590313012024804119088810721003553439131147550923969838489229862736968803746866093733678528372677814420705149116203493635836923450163134698202124508916675622903314676053527270502278660909980968699360227495355601107237811511736868318062101120507031502706506068859262959787316949772792199773566735066956686945649595941146990517690900140836239583609772512526168728645566488570347768166729928564453368958969895643756696025002185102041266403603289438727604779919488139495879340346312414075669745612523904526965178756634412167419806392723943326103019561282285627898547864653917215086065717373646188083687405036066210933093770982693147186149769015305211617156467464234040581196376697556343048976953520206345473109111627742539821448437772841863529531537397102293341025688585107648153226016833331914674005851796079861229631282969486448691730818512860587485045027816524421380837368439348242780255902713255164397871063317919132258806888408420378926531990719918868737651111175363246353737496420689926685126786368494274074919354440675146165685994648814024410970496280657000231812727327512025265163553892009053970395821697816956248282447244112261848399712236700097041953245260055483896368183418009580061268183823134856871079277924591571226226100583880016724625864145933345476110826720874197603519886679439894992565513770015542712926533063209838416613322518971819633461368543300494060788693878509285091237138596929959369226965884560695008958500410185288168032290009316518078232107138566365641947747417342975069811237860044427370088045983958844972839318948239861216130968131131511603664247245036193415527577362158645221827209738649317642205811475757846616546065812951644501139511709941272428705474268942553767343160533833053798876644508133959239391327757638441960316742764841603978211778061926462181476244281332811028585694389088565113393198682269083049527573469646245200871789004082493837458578847441009343597226127061537498621909218199279698674228545063788402793123272055425318920140686159753785859041840351268808050557433649038018401214066906348648716692591750068592007535341977294200440263373152489013977451710405700763539339227529026691747859923725361188521134903105332979627966849795700549016434838741916156516860593717773377870016979002977468115995883021087247477383844452473158366752310278004167256876352711382287596863292707567575617033748636502209276596786821996105160059810183603869664976575149526263778414779773484552592489840429158326204199478299737152648629829222832430263222032302772506367820617791850295644866305106009080528991448419908223376914884022794302794646671968554799282404030078187261688076013848906961319648011273348194911629151509653398290373432814570463412861758824807885371068683956870120542446905019111877172022334521965926649030081606078741736871365648836117634163090537941674266759143351410963930656184099856730367668623777270247529306715431788979887446125139058252342510476023249689055549396950167108313374795409061885764463706557556984972083654440057815129554422052796515579185281359788721160110185387641939139973844544261689540527880345205851197457799744127888374859370614974887496713639974185860102519060103320681764880179541127980231133526643036517747124296605078205861806102971859201509506677043494201954342598882929221721180680190372722582820090554927907335941796051542345122822822031911314355700489371275941547835876475151520609896746874940025542162481678589373622178578560986750353185111604740809571850952575718058846437076115004030718484801718285855560702193232907572074102808606215217354088220414385272426300372246099941233732319288609462173358557903802460988817033932754377695093813017515890047995538982387492147698813998372714568078374533859401524880347302845499964048427543312295114265895197113463953587586719022042141428389240287151479685674448593161907342945312722693208437377230321133775545139747196524911119965389355707423309563770516866759098080292095702522002181077956633949122997795864223405666042625220762717576225131026125982012515484068600184443571747711148885703253798658019138090568338789705177746297528553725534021684424374283039145040772823777418258436678070456186810008041053095961976657154418309433276614588608073912091236820768253464309208176034411795134621051439479311660587967130002548958108844249119010122343976726473641958125502244024291368002692941416710673765070554094163837608401477035448723792613827242484788971623785355093643005029976299351228188395710284781902135896865205288364737930832302071169228610055253717736843290340519291469538694659124320491258915257606455771424508298984082398033453707543242241226461767040539983413019848133635539254169952626793987650440099522740581805287761792042094081865533565971402282708044850268346652339604406469882380899322548520031604821861800233895472241402841416284665109081966836776929018899596024160196087060667087648104126764617593286883276589134236391948363636768997459737801430520032719052731541073164189646145466561328807929174171171819033974970310358727248898409773139238330666966234776481293700311366865934669733444191109985683785770937903775998853552207070674090319664284776890271036637332922555565906358180860263131661526801467350593008264568936808011723782636981219554073057393582299994483249856558410595306607895300373040070982658306127435673155032334390858929458162243163127508195738067069906166152469218852482819468630412446258404307798035420212620057087621276194072626294420160256883035628444415613882469595374452553042771485409072662494265621937786298247284273230916263347915790030157086684711418600069587870611677222001108919356212781844713512488385126556506269847180298041792771022336374434686680186785087904109121360786508163749707683768128019391922841090421459656495900307543231663938449313791835159371295749476025462863310189400139513673858317735264373355206052115967430002640165384683895674737301797960129675807816226199066671578870024436983973646576539283019456349050406935512638914918657007483293284361752998628495911889407731926748292808033783118008701803457245817484336109995155000233240369915455662364232081435972892677267709512051528059519033627584607701103854619811724655549111723398079880203751037041204112144577755136732575084703497963007194306181970789703428328078151125147156582723317273918317871159888745524918208558451400358619695002814529432353915949113148985357187881642024092070234370305009835440835704868454356987587744331503661026649522770273035477933517024170143499484592070159297286184500456564177062702254374315164053527281721390907782930368013275389957024956352412188886447880771908608394105625098268474707009552460626266847952976557388054822665217629879935058827946932920125040225737358072938484464826362117523013599119820584653236570240801713405852588204886413623689885742839098115992588748155310000021063009267230304648789104222703697486584092664384148522420723004669092458488235551778666345011560286576953020079999204357272123571682802060330659997185064282053032568289125085826677125234513435980803835565910046938427639422732519392038616588686813584934951760149927468691255235827855297212795503305334559325601032534075378081141839953013076375514997840150073581333898737266673344646128498565136442054528609854251420325667969930626107651598519357125253844494722840454655142495174592849500318838949479467294586275383285792031875434097388297959406451609310278442498385601744793720541223676882150291819696202041103743399842374345633128136900145150461343434219464401983363091353905372212638477530191175287682606120415776153932106309912938554663660735709876251409638028895038103599045590944944105002170143813301787418830734933943581566344682855501237561134435868097676063861304161268399531863321730216723867589715394397708262746242635300065107933594235318794920546472572051774001689806713646987666269747027398919821138812619504512962058716777208760281539904632380690545722273187334440980882616362276564065635275566986309696397824128245055823927268831815670421892608932337603764560635469302908101987413261883111540050346420054935468220899374440796175659022345484506173585273199743724685397536519907201565901829680915562023930187201776960933694641819936441033509374386177059429247004250108519684262784904789723001994312325569620706346636603155841418569026762001079588283525787092947686297043885731980776383237227957290064785835463000953482207194462456369149562293666037888793793311544121881269512307552986833988404849768741993922610156346201372970601337134847636870094975599093405581537556505685390519239836510198451937046479662259810066138635640008038980467641263424602567290906401559498439421544971722636582233980638383415794143330766680857321245274978700678042785394203421494312999749920259359417116601642707379632681814219320883349037693576974137416964310226781718121131679984829457825629409775099136771773173912580849089526285963942111984393711149220444546860413189211560573319041718754283562881177163068518599073216099403774962120612188563640521034129969662357668033061430797375712658053051858851815828473608809741604632493325687805736418491514565498628302289016311588410848069091549198719242660729777293853621074231311189550643629828480022851457719726722692422769491884408090944559116834003775204720671269414187238679511378934941119091078202076214043179490005470355563040217701689615768438959082996051612506210778322595158151578256460717230949668320572555729344943404272610105339231717064119383202388779712064724780247463859389008213602042357761003414095148874773474412084133688563163017136864341375565488253788945048893213824468790134340279144094456266807348505651227757437397924969759152772265522689041620021772903974543734202365749188944546108968075145627932540143888624422242534333192994623760522625974171256380251603717765599165377047750200329735771109062312871368567977033696726909052394184903396633960387583601055042685108578242965875829684090717239160831011281733625530231832691217772943071449498810625837863073796704724895839423990020019183813566268806137495512126687628602306718072246493237269236482206805126430895724421973128923853338797176308666152076714951664141091568053607271643209551341946692409611676134953497417417846988015572567833268652148762401262812818137530495728531116504016472994285565468340885727731433601016668508642621613385712126649162126087698215888761250991774502524832462039359566610801275467997300922584162492168578370483470269864190231632102035278251296678545311975412953815753949611947268314979542263142938822191287015072177018380095931373820218100795470140684873383078956127269561998554753471442693369410863578931200296374875036026784310417971619477712794588076110087702300572906947941440334295385032771849453072838310598488738698603421831649478964354883658883069240861254970271585831436285176835090071265256149563090267086339665543146742799990973282230797859194896446565960338492000684421375451288799135113813305131176495297606078912431880425954568938711085743998625024435401721316638587602896564494854973394052564452212436663100991106816585277456218965853610786165505080648338482589020814314699008349368016768616262707799987197790791996530775989514454637475407635424112330559667493328115910566809655685646377191928347087219862683736223572902192442918588327947613157758431730479252396367191764076461495816492375136772043909464162346993766312032334702409083040030942451045083382722805981767503275747927876805734537326760958723321352231693189738262754260515428397857062721584741984895641908214067921180582535606644442774489760156086711195353267302716264451079618123167977608666627469848216334516701415487967210594496344373499310286839768219326216345684945003100264208371938994229001586443841148952132585447589914293484453046229380532371901780186310976245165875351585409400225222599841212852729212833291268376867079715690268572823277275388447265893409672595476830108323159439145283664405332540524610400569907806167637066295012245216281127083714888389871191449713720256160278623860267868895226261316401018583033574469604725160602931237703897229071004346236820514583040032617982624095008850155928980060136355290389038823313308149613574493998027858045630915300259644660861629576658536325145618265887195371640544914853711079490194615847583693016106691276047327969036930325568753584375258531015535027598807232901185225106736338245622907763545642147640177126150490520298345284470595919000779982597609877848535726572113446668181676240779479053878634238489162482882683508308768373643244258041564993070163249197613771426909030648755160947323471487730397749059309425584693710134337199639317878304789890646821668638542124114882910882786808991404024817916985264349018123465467232114258810888197357176209024021825810054172513111915753844991922635946321779781684437986066416237477433587672494367272228504781555156593338412076580077590856517349689393147907401434951580356691698898586677742718795978652880593250043782029100289029215521316334471928739348045388794046762851765146734379172420883902572222944477164258524102415736871787548839213650383933796857953058532987606415370128956013421058329958232188931510506671589588224126321109486088669632421121351505878088268232239309176527692268904303474461925129302564034425731839443245167216321799760643603056565289314000475277922912374768209796677730432072269729883420136578933591982748088094274784825409191159767579379334415526683038475927264898857522395340691066960019315522386783355549510741475733866952655065471137607590013964876027467422476089211984937886389549127503144205397624039954429544421247712556837156940854258799880022915402610829075443613997770225222544508296463849924060981123168615605478057464636637468056067076072963762152068710845344411701962814949256289986018206053142005299881638770024370230940982849694803162342202925913667177092582822654988744902549300066583140799425131408073380134053232508238700669309047297094740911197052983659306005111773832243707141730703314870176961549948584484150519466224151876100556641095243376345691931677653214325666518538955778109275158865835410952148861349792270457758027238772750401950447043997479049634654956551615196569424567727465175852433211562929661229065158943539311104878416004484649883659728030826054033850650542570826144688106184908070924645260645287217043769561853505894438185921104891348287001183671745739997914359415066083288288458035284336616956115150715061081705084950672019937608279888506054632375021229128825593810066113486418447709628272328274939480854798133005992124115295820336094939272281558748662717021113776747488480013758876275191387747580276157339565893756904754581795581817030219591137233906231907107237425003224211322718301109461794636685100652432637377426341291550107028202084376410742611589788180366635275747786547686520650066447122949078936808744661204455808066179666178897473629456376981735725766000944177067609935525949374026568066833375513033783082189023853247390960394811714648870422056334239358948921513399147410362413029087999526554005873577163352779323211071192476729803543160867485676013028711081597333048073742505746210764807492054713029304709587636573521543320055883213509153063780506121288522858673581199138335305351720308935153569865322390473607844046023884279084586860289985247551309660635693675980218202315042740395756701595328291545697482493771681380024246287603969870182625028818373378670937975853451220433448352156541884728413304104846840140135342630857554763007909347389976739724722194541730129887561104517888798491188627823070898280140396885215677238325606698884834220960467032666963450968642901173138916718676421384448924701947172752246905270919705896560907755064876080756336191109390783021325167650462422147105232433247476958531749777700471102689597345641196765270163032280878900242941248221117708574144837492089457707425674861170820984119925535226572703165942298427956384957771050016367847006127947028995023890864554945209717333455613940619876408095635526061021166155440948012775737417028487455659039419840874120287078702561109105665645317422604695823096136056841143818687826483256792795506782598976646493999944429665863971907367038661707860533583167757232014739383665781096003149299875211197487463512536406062719628817031379835172846409637315837107026629272341921915902289136141999911578222930426095834903594512812878696414608523988690307783949455014567771907536736594275957858134227184220187161068504820545632007841336587339146649644051053909171654962693199242007836163164561780288390896875556491968522183713676589015512249988959705381354463549961245589136551997796213071631712229266728504234506727634029409679351468535954005820100705323682582121859273456420968276467622546718520776607313346471017223495154876675485784049971903795412934621005385862856384310526230143130405062815278267459508468562991883631750884454833249590744639805151047294431715554240257045511312459344937155095669324107408972662940690348450158504913089874322748912958856843731320550409339205736007351935975826350562262987373647524667026788253757908635956043960700590490359364198459210874856387312933529326172663743476406298064842128638305368838780089020240279559510949551987881791715365158739015130270427001832316284394049141563471815478971994707935999946957364479590522555930383279537499276962176317190050098232410446796682555460074659751012153434564501828417938651957229526751174555790819261886079426207781329548070565333256447273079080364959331872435181750378317419534986148291298544941314571729632474269072764379276364343773107977069736448041661525351755704321032330589316479390258839639531467058904023822503999874383225642721451326554845290592444501288715943066469840281730504832238208176527193590377470830841405321657883221459862342827709852387365059800167225574734085314942813754682414587820943901355433004922756931964228903068215998209051716066915376264802086212481516789688937282891147474861844408338504303264476866941198390855972269512997753247844433694106439954477090143353914157496645424866711056705114118223827655998614492625823279652786880612324531021991475264234799041776180075835556981594259195637777542024474870263680197062696887248182595993177209647028132348893498994603250834883999481588175195725192769187220512411394046329319652399687932880982013270960049042590321739996542833975230082834861355844750414479012652951951913734322193246516735589165060609105325755157199162926235995171637832917426385378710535674064353588986172180391082837706602717472351502447344706500723483446833376403204661212579102459643340923058697083744998367820636067731733737783121312164601896427561806399661649714752843461485004701719273753020755832694389773943261067456991891460366505968109363178196793870999940796534658810073493134808442428260528685700250809204877640188071885347736798311668480570786030031920036280997200237838250767157222108878095964026474047071079338701732566222776031126955805447132024969090911853966701839375276689267985525176008281019497946558121658418644411295588229514513196497776488900839880288973730786937971883970535011007108440427186410723951272576055776950722269678715144211768232314987106997514231879967560665425741206809319549246340812502776371522507785273783126888359460146966828799060656151740531717526787819098248762117339455333898940031635480710240911346608841528249238309974199120370082921252827699288367115692611987593803227423062701668987274465030773950614546144204662448150149807990262612170454862553074633007396378807349087174749175778455625525571015466137639847206994869416788692959178478668036438849142696424212269860799231652178186340111789710969083666923732033482367454010055954353786378568849835633588578653673853074426067813834639071226545733627630944014883545709917297025421516366248576177473987670817703405389397493136747924850299616182692384471706180757148179905538328776200771501780071923174086303977420991642842995426493251535044105042601795886781176316468856452065846195809579901359065152215404995723606508710352983880977398584672196397248627359937763110695088471168447163418704480783376866323820814184559229970459010367666329524197482196676899387448849626868915317019523232069260408022087125407498425811012555003525501612171194136261163396111716948247496403862677721960738397603083092791144567604550950742289999687583328218826779106537934780124857346867254987491552259993612465074600672505305918330140678219370524475800804225134089300682192399351304678920028268682859004043687456339324766322932251089451036523911830727430543047230438863978927691627887242616667879524426813590129813966895410172699600986332702867658964534126052753894891968994713979473829051088912957898542695350440464575854565039393654302885825007068465033358643506992265100108945716949654009436813182286759395031453082336142231401300319764081292489929699829774535269804032401176088587856777592035158074502642676290140970450319249448235682693560011472588343650024823451656116902403097003414154554352684701951795705971225317342526242870478896061761525313578853167069630851371119973185926604568247283238608414580416222538679533470556310004990060458935783349819389972027436399756875327323002371999198297343675276148267720028745031320742648255954240152552210936632468209013394699313984254074037594406566213797895865705495332654530967281958249628387544529333513005497685809903429298088514923145930414070132292539831333679049023491686436186164104037118285738701624353433550048486299140153105757907079075507505150489853177636811211678925608269163284104795997815899243994538314261604258105315207900500154373592487808042890806621975965824230228136516042670676156673961393564511996715624926226298012543637008121055793260677520599303769039661444747633040316933455619830613925842432766201243191677223106634914398488808464271348792787509520271257036712883360309696385302628425877489768449452850351402046202062841637111755402409941650100992875063507522861939494798284222860543606354196958035745738607583693651173750443561127867975879426320117434839458278091972585757350584026028005239161046334982167166865112072518619199304124642968028967033711072872842250471652585165681245662867313424147202901114954194558028256556825579463002380924731415964063007297570188426611353928356272123001490036818388593149253202306442522552728498299374412124462119305625736683425328431091214052871698872710845401091059569609281974072198531817846368967720560779127198555784032849285745029820813161663376242576549794184963443392862140087498400821616123267386781299240346642856318879067265096907410159143948366071219385759269639132763789362856582538085449433827527165764274800902081626773267615291364283168785244266520883026799303427644392339686259937253490515647526763386852132196552242517980000679424803676292497870433756580835789184608793849227440088137823143779926534021095792365389216313858223626106427181267514532861261765121877414308473422967637378826604201399887863761109047636096104707691504750954218781114618935866501735184476705930910784822587195849798205739683606989245143055637060298745740123360087393383397551741872501683845097923951263128161177035267459674646402804435585430275419280812571066699680501127152135919339695560016301283554180235943596969480864833509654680707710003396459667389467226214151393851071627734624532719596607610431896809934439618839196771293607026804549083363630014254042344067225164856582957598539207975210852214269125062556283693029542496473422359831563042474244941317399393175561655940354460667383832830325421090441131385686228118955912282629278180330100433333509996602488257900530674061432766330715842725625468523328576137482400020604603271367202878402442379375081575816615596808597740707086691844579385888629160051351776217173914440740363175518464463306930864388436638477748644149553804091710057549168575367826946783653317260866032835713099242432221731757472373660811202680866974890355031924261809127868205493204056245120519474336534177626152697128496792136143359501927276450316806140488728846940413725883969717699717638626739423885125698853454980231868852244402953840629217747069209259931656530718881123756611681650592929121434424524360177788778333332617802756792385102567303803355043583467133979164778607469199066617421874669157952657435831365354995784855817724125888050535161355869250966357015940333523210189852850234846518954911852182664604523805848105497009186069917421926138487597830700364722866144348834777211712289611085055701290790593985654972862729055776395857514350491526166322847785230365326957110386495613945686867105864991685683475672660366940735314553168719653692153779376014689331361441638517399329967627791891900178149736217626941828815895139294561202850108113063033304056295593830051488728805670879369278637630229960414884229027681058087130414327955925993398910633254354045522884895512263903718571707449061676883573677585487311971741681153905097484621445609426333771987017948646034607505252320662462230019536133672997382793024215917090728143314649880590327226673206661562155956735584449197383685085117005304516074002063088821822816476908623258581129924084240336986081416110407748779607171634078633726815658203963357555061358309769904829049911255737929295289998889261693828731509451937849896551161847456949001145990403625627490157736099665727615465123567801056608223121778402532183779723102305577945293507813600414133157496892068302162452299174303155310777803842992588975240158658799577982952694444182858235937932184331727842819245888350384037027031830125935164320092231944060023834496174771904433273556240419689819747723135765397200788725131386516462376940202211743007809225201078343175264232465958123219411902882921699637807997516785463899313658573163044928294301670987687531480562023627620025230722928172704046095136588337620094873919457003177248867645258287621469237004427151096073721437046531818300587742323546253822832556647297496910348741706737946062729766385185559506306859459829184861669920220017931107059382116371186548593684536916337875985640690898966155834870503245250362810985689925219718603404549444223253580164252652570319449010365928558176207541174508413400687790985498755213247584616875282950812468406731120422796782199837606400833781020579469547550886858185730479119691009553105123296944901453473130890153231390474287460705072246545240789515813940015788944611874079216608874587452794846522498339160136735919419764821432402930260600858904178208181007787221976267287190409740427109832980216620683508098025527468102127144884761087201941767238839239762728531640437840556692053602987890933156351482237902109451786293248908036254204359895427378581063052836863964319459710734448738401702384387064976660126694047682169501265896051717507995522966868078456108604803410581700114175408152538170329578079998365454662654224214453995307592886686669805403261186382645313671173380473305973304894901419977479287748364808606818547005410938780667784803193252534964198032485719802644500861019600664380239274468542385417761327610697203541417292815101822767682247732738326745971121976605424665755813108956876234727041213231652438236569581954165940161291713838838306984377492051597409890673411811229996624592777673214636042764693829832762507464892576046297626014251130865680594330527586010106834190970150339988037299847406207623241537112321624852454593402565872193131292599359758587837973764232446283974892424667885182251838326270688552093362621082066477889505434933054726591280972694686428299781040956015770189729865279202249273664840714022351098364547277112264749628341350715157672751911626710664582557859871614822638229317871315939008989075898643266500909928803264027915243669475357677921875952429109774656878913428360385731148399048427511670138388031802721902217679289939730129060550487418313105694929262947583354155450009847031988644749739680916699608873890167162406388311256091094505630715839134502288430748676101159802231177640922733060793595082632580745914379502703319449210493911605268033723439997672820326801724273236145814373298692157486935717439961888227710146586707451531043012201240225545190093609440491862856944626907706719146606288094992756888592580156574217253084114017820593412004850927903431205056218937223428971915819304759716780131588124153048892112568952374540306880200373307264447689335518246009101170440709433376625525233939526994499658276062666900843467401428076517143801405456311696275775785059990912366164757303822628588693294567357852733328300296231075173128371086650392157893314215014418416546251663250166814433668869388612766066808293890331685418840178617715426865046697377636607298462956001968901376164607741629143487244223650038487114334163417054835208555443865270754909919448208288483739489134444181736726902680711606971940046642594061142560409342267363417328929024904037478997328636043160683435061774029023423705701045251566241597788314912523915807524158712704874562067908933517665723250143779003382105780673939861042508858514856035666245876872393283186897437868537195728530083274384360572902240180030928825314268930662049845401871879521652209025561166678235882099660278470008964000789670551029726002235359694108746061050367374734185940612581849648271224050594121859516466744569736137871648083125716673224726821951788768200475848159753723826600567442906081295608123832902721380028631551229398474606794099429139717395167569051380242387034096844914790371422862333387071292525357491800483624006642936740632410979109876429176564009174553807698418943471307196540233070859353702908508127197399377845926481926179848641848835146426473980677800072946133764394584454740593977350865959456656170748046858558225416077514623242390720461802646133016488570712049668560483665721267980889077565954896684355990475605880482934224660379700092372375400071391275069516455757744345553007498271437641316702418199226834379543993090917962677902844510851510113212582790835008885814220396677710911353109208160680048278508036248387543194447180995752223945105168094266315179431090992839230247981115115784031547672294921301902993101007836780622059688301007728647017094633403493859483780594946601377602124695372594586098072782625591121388109225031712724661942927817371721739812663663759954364782583510065037839610018355935347690044035149988180057612652344959876495091264063844623567854020617061733319256701020447932732645676332711493684036402568520907697786406867452652007620012210287869127597152918465204245939741373586063355117862713659490969379051259089087487278562056264932222046706848077237050039863947618281778944920982210970159297440242501535862112128594959881673729670138203005880178526909579621051956055662085763546582227440692076899038851617320413626685322678352751734768523720469171618459177216442343055714462475896878796268157086738677684240506460777764646759582730244093035824151735148607978952368656461735420249072261509341529455542567161282194922729074209158881322549064434089744220282483545953685255658548592572956698004426898646510312884741766672160989351926169295925600482490101878025938940700350386085362666567029273945744491617806378494733809543094540393240610560457035991765937280609976744193000893192692480214581952152410913471289804151438896323757105668895503827986856290321038368456462884950444116238552089665891026128714945474059436784822792512677635652906794740673796984602470309130139066783888771225819690144528300195605908643929210310960473170951218137557798323620319496345718335890187024344812454815290857143670798861523195512208978964090890637454434307574746549716271266072414372775076172482976346578204923056375042354626288182871321286836306396341648393281728677286581573512778181075567677245600774094858960089076458234534407359083105701196735518399534050096232777297058319499700739259439409216335601037318802152732266452266289125503563067622025828790464051549948640850790074998363475587373479226544256132709848810953395029301115050062555035978492717764573154747082823856644851327193880571884073778619425017808255173750398881361885535692923267520579936396474197465695424850397020934209870309349985379818860662868986182068399031437353239068406746448775515693770268438218559033437728914230625465673229972402865856344388119551838012809187857706571272976665310259679398756636094125037111573909835090565861047012774723814424356492437384417157544717142936064850437470341167253035383070567937138349136774662425169017968462966367581310511013493595043416310837922111737816987734958143399471211116323439487320248292696715801170741072782708082514920783881089270721736517785385194419046197477211555338157745591860597898194713873085690969665780589478575068824494945151811941813630630959205352531845939877706721313741439592225281657728846226127400312547307030619161803279067693824429642411763247026813623128220560519608696065618705008070046143678839689623824843558583869360477327683423991507490410824021418324597797895955363243727463884298920116808556171033798725644905230161041369339087304412759708407061993415333895779542001691512022470152127359930032249291698008769951017223457777791976931097625163352931180915821607597980747508473517157623326114019384840627085574941933229304527638042175637167071685773111323403079816324927100563455546135063447406268224410758994907453012499593211002667088402433310767223671747329441696601299594689660946602880592891214379370152779925708233355287752673220221402001916574993831998917305558515976672500601769671276479140649970237703431744885739934436129396813857385807307672827786873632008932175675899597597768715084945129760950223085881045228087757641275808137006134050041217767558352772850631370352716747819806214870478622850177156345911707812195048512455922432379714131423312080155595017576325592613065745175968791444013205772694110108498639739025647524752559605667439680248164475416023258112520409296125065009227617191802240339871770620653721287751353448767416435267311411189544753731119822455424232743153211133316062112896753660102048459906265632084824816220592681428522251488837483666204336327620990957541711560456020872269329460966959507636961562295166886710751269154148176958590599214344490875549286432287849806476311044274240739465060834316480278026037999496612417089531760505266029967396214384064141923896271033959292431040439852611592653309333845767505358271434730220558227514877929658809197599064807272596988537215344877677530204901055221765333108167380351148790903664515413902282618551852009255963389398535320382358418764442993042464146940792464871531280911606047053314456557982367588295547586276275250478291162963031650076277251168860098840111665123649854712506142743463811123754165811749478796851415586523962842810169928805697874423898807739877565503530149292595210287330820693715757595875270005903293524302481878100353116407965850456552614582855603285604908561632691323293029002591409407420719308535676458716058171335041541566661542213750692339958060960827085263290493850249660070407116122005241969390532033393109472669532137406789427859753285306089730870246710909828200775529462749109955307815039759585867163108747625295749445785624957852107165126232967685379953190161270606824061899287651943664169967313857941925940964269098449380485480896053730237877180655674973549969247887123771816036713452283121742835615736785127077804812739697149365683501279875161631238189008478289267951038522689866787754524284495861598123734443997325057410415377571068281622739461381615316207602856817009362320601508989108632505206478867672963392225827194117916635824735074654024656437869582535001712483104877373679860445902585058263203372695242074652416126489527133094239490211951521468223209129617750340307414938652137225233871237969816325898902881348065930358020045881804787804367875741356091491517979294654229311839464341438367743218186293994611592132027513334483975259132276523285893064564483366229229082626226389181188359840923344344978512725536273705582143933621505345305554888533423524857728267586705030544148746573945157758424385866854352708976046623968868327888091139598729359647475152394011667528639823333479537552128660726601839151521477539791286838238920790265304440244947227483805288180893721478377586894435133238842224274649237050279506786818639748812917180663411347419141253909904117435426815595553461889522342079511241608133994147414488306782471157321534191538163333053737785628784168645350711840099519675611668872426655426588707774920863764614444051862149845930906825762061737006093783819513093688338795714099484337614289287022355229617878849125091571748854978469620886350756824252504317764675299961696253287101421194983214321801852445633509896357539021237515677959626521441081427155171975334182692883931988258227622787764929371538740029849557869693824226301862642983744168513274008435570967173137651901284389577071344095408415799517559338313950454767311826599568537549114438986699677940760148761892821522729802087426080760626980655468696947906726579917281995453010182780204998299745246183654807568470605657867523312686004958118357858636447957636639107482008585861837929551835114833388636061771611337460355903159052704015425261403631230616632108683951590644023635502996541610263738940552094631120859515760627125201952710464402156879517991478056007236928510183881660105611457193949459609948074029925446919509487258978903188265661702261381680702367881104661492749922191585035543558171028966538528431082009652210373198186805702133412745606102781199005924327086881173545002657796720372523972101350534114886008631781734836474283664586178851387331014733950817606049540045625281073427130828176027764271614244806655715390982521211551652465612143988386161359708373311025014847668638325083647836778194859690723844112868282233842126618983893452846726265498855973278099693981376127996289897630245217108344314467539106251270125051491536211586536058675541043586510709605282854104850323055832717606279422621744989389358950657416806720465066362221459077532973770934985779812731070063927141936824589552081876691399146740393699299360442504616256483770045622779000415132497153258627051458301875453794407238466677586102648468364858154977701670116140588796026946356830955429073824670244539478579128821401494728839499298015533552560917522965320398908481185261033587108592143129216217010812836665159390297374214154970154548164822832580579855032488377112941047925385587176711849958748515840101719649836750187167267277606204369433644874583857493472215704435874485945645429326142079780936428036405767365905243048238338802093233377391137976184166268738257355951317496004221462893682674344003827992499825165522723244383905097691069368708062941758344488691770535402404092443547493297299620108306217945115563761384359084730714527949410445390204477933471268736054212330247045101452508029806507166268954255881378841612273163230913313857481942945206039182004538380754095052960603523790304081050264365826263604192381420630604855271875094553560815887021080303017908977947216788703112833044463543726512489395602415871961667725530357878263895048145884413058477974228169195646862700539228871833925138460657087685078005373482065697418134693215985048754189093746879577778128013692182022272023356222990238999948986097082965244644886636999604743427736256181036581247025399819166498668721907393976243804167487550282873387212364386686573103215629265260402602359113301525806506206669185672269942578430224361041996847936599166378377888339067558660229095087290284599322753383764538668376626493805035825994778571137891333665999065748746506543346810376271252462878387628457743854048715046516340946549176704329120582642127073777711251542865509365470874482833226809694650497000456907858992989220072232006529832281492308636721367749214484982364519525006272450682782545794503667124353288921749418057909951973965703784523772472476602517548057254634303308008406233335583215722620073268529193763164087144522824022120477894584166319721477275457775922547419073551034262444150236276542600159479795743628633993633758413485107437893813544850031083436646743829551639885069575796535003254068564566337595218659518255881484405446500029716915460888632699583866268351719376913791882254340211133878199919418433242240743763174353639417527778885952267046544224133730856747617904323419683023100594921297366456116000657605217928675277618402094231374221455791104398153836231707273165433876246672722408298252549405937984332362488174561652199132221384843960346082163114873080817893719020604127963471947616808608225036695138771958530092061924606896383527126326503571055098261832033834906116005043093477379596156361206579939531654667217486961011357425041623602729564160543831056970925515907079313881465813551467792141952886394761920040793848226684787106971472807233116888657745749940378573477292817719822671167559356854724531751178299138963918689883665283170536491637566019214646488610748632195648864203590954302786473151821032199629043912100115919495053082169067421887010932969670721614467733181659100433477204635578859258410182753139064836684505235566319133273810121244672676924510965390056568853941605997879568872471220497531079796726741093945271127679408585745231344006643564644074958245568730116376554803694992693653814557815312691181614227326539892810263671189051667487452754095826522427764569564762118631409039349730596381464436462215602236324764939861653094776118757267182819130699060972025110407838471936861588395052941745904555470923150597524366572648510933253523672264621540605019971354227014721863581755153658003812334163282758891388359405161646169556515906519276431338748529707013797363936551620093283313366485460539473335148242533888223054441996890081558718603771958066347531537507611585071723077710114623117601149487983307290507266394579916096388023309866932783832877796025475045666366566665301033285951399934656310434709457042960006940137792040510565432031305810914483373791421412420992688783003709922047652117167517111477999002173443647726786473315019307379426090679070072756112408731011230107488144646493183318686403702480108460339157572942292953732889115427095302834575259786201710064196543060223237126981289583733652218850149656911285348403268399558459432393111299565922173193064743619904215185055592096409199921132178677785145191015549739968433208858004269974077909919122121192013644454087141274227752131175092993148617202403609241008974241313539240438010432264631387131003067822379650475707523521113488219940352630696189141683532532890829245956009860006982888501331271786018782247983061746513571893370488323130738492719425643077899108803607648742776767691023554152467524637627098486916813660062350967049884954762651843035917520596052474345264131846221628614404103671711829303737636008135033931981626672659416501169426835622888695953997397480291888014332748477522354676781933718321118494686421224955874047009875009402972299610126912934777331092084037823898967094079167995991775120442064703499709055295661447118156959093976457054832757995566737141948791318460617780189373651493256349463222798210228426013362447968786712170573145472405072918243410010810905824216261552973137761500408739472727219871378517215990231403360870365021598182844500836145933720519283378118002048247834198615771741847340460232405083203538628044336311116396027356671639370053750075303287625334997384215428006722464525031334217028603093893784654584453378349347483576948219122984335546733924519466191774891779689362871140095537007577550263795800869488310977508562319955484278451944001460870395110296110666111932470863769218465102723964757702369422844374746853775891370354638817189176600193017819221676519498192292802492946385548846770454080978293972645571892070714562016234512768231457103422000043689625118101257052229410730560780546632655523694409644683024288841915108830691154718819329468410598865339943551128874866801901877612490626326961382427583110721254897279240587762073191200247906981404437701653424522797146097066368056326153455847026086590473602109595766124324377079256613789826587789367135642954078837080034279632513549665870491329356439928224112190951026666210477974603214112537434637551000175557272450200991788317421447497554876096078056804955135682844014306360343154275892186198739321510131686037950398475170508225147751243863594267094377440180381319185209327964173651644429943262786161971690049714815631268827178473513556853626173357999264087405584195588879439800627497483532717692305800165240429271385884755631426950903727479034499274074385741296845812366552820546995266695928653672458390453712741182413810426017679006269290120356751570702526018544891983925898203373047916878695155928641942011424831894050920910571299625676419359292326832657620254424382789078263372543526465148574810707170318503328195184781152686053192336840179025685143050904800577424482841734831497814482628387225730386628076273217820396081328833220069690291958073725073457260211107353158025340573567455100674981179475922253901634404795993137732142590818388878649290194686052465218667248032728043884658785030754875922086715049147392888810333463153747709817738078718825624375441936930101207079725721251608451604264323592075998316143402444662238834059480885978899221676046957707335491051674618258353846942774632215820059820167882228481347695007617617318244254580327005839305544727838004726092999254702819949960089928058271735768107594079757747466542944700975016396374436129497514938433309299861032348321052829371782420787482610236352949501367188705481701910135667234219838533738692614813167072034398116996041537960217696216832713608983009683558328990818719052276516894330277184532720934915142747748791410680270097668130876968180110090758598712401074828705036869046138366813927534500857679093706730683862393514961383827167822403290862692636187949408995510608933608205583027287315409236050637589924280096206732398193719262222552111496998843065711419645960231726207842597072436883922209083700354815684997399508123164635139790786955843996139813527649232058719623648885986593684018200230788579169756489356143583059067711451049163586731765349191679396061481449106588971733580824579998765762206875891763882843415226676353545383859472574075336115537602666083894783107950330611099808023179653167723425508332022486399856838828200723447951842792587355857350045867051557224489997686329916984198532768924501098487113846261466044154191244703509892359851745938604718955767325496966455397362238504600898474566148462996924378631205945403244492999099317362868754424986545606412667684480375427219374107896960467509002478182838420879280784917283586725877887418487504849807979010630344765698766496436420476449109533183447676848553306891048683259877708356349102193183627383560010420313165806857873933274022709634140611348421674942114992994448356425912142374423164375104866675592055240274321135108302940546842530134114146542613725553416354667369798939048160181728177015511191257842860692651866426710657022873865467641214532286900655367258552724723099113518769492843152940220004221885121679051107622339099702964274536871682759834914265014132610296276721719395013824108039612152155846277099792531093266155746861301684756967865375892807508698520728662989888184133374638891135309392888202907632857252188355116520453957467020435298736954214528648141163409311887230318203200304462372046015346915069642711840232870009261325496022393583378176071727112317849702420721128384805232744163341563679968651402493523028805804887623012310822194050734370811044509779577499210744257754590006336170785461038125565780326108081593571409814266693071423445904985475055415079870807366082198923964280434629612796726698870272307259223970623601645306272055435449809111911925489959933324802781972893815059638683576977524906623472927107438226222756493430642200289721684358021033591827339337511903104172158715152654324181928682414280315495552512590250548336214486747845208254826357517745101581699248279491827909096612474021160807895535926732061562724600404176527460448289038578657513806932548742949147763314797071992454469476076545807653919940112375720992697461173177842711968836570378265866776883472617634565573706916158356188424762634458921606628153175559318536828521561372941970928725414090126544277041581021525687281132517583188311761814275388336055200082616936992712510269985124933221205822451241096075611177254323928470680054089767706392788558714557520879822376426776397109561538019951630620636974032228290357541277136966173909825678642903248238215796530412438289521233021562801056406445103051502563429221525348149478134644713326597979145254350613670833455925537339130865175905390754709653603199080354491565772116145122116596593838742420496403227932322533767489657142423574252174181579209164265877673573009419576761653137125702909298098701783176536423998593859226101828209917270868813101920617679848735646739864785525546582622872887029386470998191793213503804425747991795376919237258764320638065335784812863852437976408544096700375867500748083570368174128981391007345464353774586308849429756403833448388376938308812754870815191997938220092325917560118934582386076309315569777149536020842410822485681695100203811956296237423610786106960396919735192758928584803236943497345891940313922179955535479218984643596820379463111476241025347807872785048864765373995205893127993158482747345918963467227105021916095126574227775492826586105397800475471455742373010276040716423908366793968751450971034387675310432416184800921786365489559993557327174893572874252546239818784999838920484071863260349632276323938863940518619665291255176616853028276448703702606845718556931208557220405409729694701104361572840101625723006912810463505482105588697215527187695350611928664997428845097116988207295685602583448164927660097682216607820983201803178213246196582512508832103773748099281580215274371782988839171245429698194402811233718938097468011626999281077648926837086869287847252650166127328277036539482587486915506120268693332669780266294467431526278540787524788393372010749903142635025112313161915027992908257840303460802058462377162486287407982535600444427613364359423925076430022910108046009107349808377485905602392945751066802347155013672753772495361857844037979055866864663991783067450204181336671038408079970727149135313089715720498628331562426587785267922816014861131040254039989406989113099237798218267265991674349728804353348679632986675861803450909380764244332510908416922476677834722519314555501834890438405245017690201046688263683566670308716975226901344837014867341777930222918341466790862607373656453472838721585209267515382513838693451240651198843113398589384621962876885704088394144580445605303820782686473502409631501394087437121089222272783887794743874029230554877740737890441959993823154801854164742115580725894739695817269180965623976547551598493340542016860825441374789524478692276605759009261076670276977320206260765596782647451151364230462083966126677122126397094792339416631863677235956909376513181971303248358912052812866868460196038963031992621876964079178319594210077677114976852051951838585020809889941089503582659726883922741642061366029111485579233725567386923373774510848717785634563639794570935931855883240977843576982891440817170914057086338149054010366731675635314594006306245806273907823250742647890170939958113997225435525251144705347959984462864030064377510638699058919526793155157268406350721454092756463872693337466528816744771324256833839840548078664060541251969470624598484220921553637362902989868018893732034865311537281324297870780173009449324748231801303843097678775187862735453659639851923833505746207337517309856919611234335720540869301967870501469028541722336236640783841172212425472706985397552097489883220477250479206836581746424263444981658245294685345157744808936712633852506813400396010197432551060821178622658409129584331982365757239907846701799665771184476357593840815233841799725971574473718989687583682937720871117657103476417366475768409811233977867735494549308709119707464912566743318250270596832431477564852382815783399514677179708424130038869207186684981203526932239819056776810067176138289232094939304799723016325920913274439183695046107004755619285586620430120006987664590233389198891089291731810688851521704145529360343951940851808165330059754021916096546765790822056885120980867998546453592367354065062609985000848206452341609561496854928934983835674382562078778656436281198421980368733602292766464515704201242012317191311739518450806306510973028824599923021903233916067190271050107884552957774674228986174566664712808064359481961655336061802345761873863115287436003567428565509928688653397762131895847608528002218677212126064671761075323650073494287181434679943884065386182516009994646230452999617132514289177176478692104014103225296128822163474472289477050259156537510007955312063289382036609988223702390472417145927302017277387015592220571390292532934875605207365672467617117957722665513234232308141172912631970762915061271712432314715342703487633140068964707600320420182674970095187252863584476153492413228287146436528225675184592016788586171838282648149197174330087024220991531069041725156871460613961276554918023217905376664183836141570077674007854157379013049470323820703731720010619497091393059379855480615811034205268761277886734080994485902468163701259102523080655530793543030680046667047714425815964326100291248064926823832594443337557970741476078875950167382664243592814433555569060300563642953801020619997645486430723853303670606161889378019494038314216369427948739711177339864771607867588147439622152685305595066096208176229755718568334809998747701498101795679798352162325375681011305590280102270883505841896078975077821749601381016060614058796432747557861975118703396947769730931297237685146323455289322294179536767211000103256206724431795918638214256181570783017474448995188031725601384892133845170182359876952060147178819000292581553351640235154881319456619406946032190891231418094384391821434600847917712053965637545004620232657054738900094633080838689288578397017544225181805830695472742504762750781075848397355618638643393855372951407962233140942636972477003242705066270268956753572391080601841349206464919007507095275022876864630174282666915180274025061960184507313879950612119759199585719988177340516201968702226667032083353592270927423223337811382499018276040925180622247712361033864394538618378550582720202346527811732011463068249291745694979634524999381280293795023325533311197300149295177291120019450139332349949933197531775672628344153986379928713770067059932838209340891577336034441588646052809013880542901062214205788722925688242712342142510412443857366326858290943262878565089532119104204176245997287452937136001763818191166608417536004557561248390605093260113064363785207926328322484451842709814678810125914121536445329371785152890355400501488435813567240229874991869322807217890585876826467618942416603444924007826667315069622701617337465660903790471246863172589421761969157666772036694677952188816857420891591926716948420185350720806559107804060396462498728390853661448469198896781910353387133176472167622721477421695130396607662737351469890127675376034360023583242100662472575922444020987467132675326592450583322134903040207137910080083959266998368048635996062677383106753260936556579234257216179208592152582912516156493000905068520774791994831047016389000094909679640180019031139611493324495849188895838656253606909638179457174339312392162349271235848572828422592129963252827875185264454713143509404319213400965277235236741300254331106875780879832642463260437204353804006672493751228376329215935856013117446679946003493726003283500071319492175714818706729327586510356096911795410251361798159636940310362242791594218070209043885760879091612281119777946256061290229262942070885187257581649704603883810206777348695789082789117252207286596754266341265182758842578763617672281194578607174003210230608667469315793454768194546946326788880038815184954549822949554924892853809430485798159906970344598927977124364803224934760799509533028057976315420764010530923964579151691279548206732154650073560361942481228166375815640496882727397775226127069468695287471457270881948449996377459280487931515970957077589032831077436477756754144890875300406644172635836600126620219953694966986685393283645733374384075100071702766716623138998003726416721129621056979332391818134593619943730281013783968333665997604709286825882901994099467044513304024891089812838855013686422875676413606378607058127834737443382888528294239584776425133112098022137961985376515556394881413403376962271235383880108730621987026580839126665997292938934224167250204377303416954875529867390798425738455651520192272526364241801224808992108179778981790446520271531964682624886433901441277651870579425707319228598824477034739230746710036765898786664591676881349655236808505494954744837072199554867771130932371219138852107814071041096342171955567157515345616941299888327612031709693457657152064459598600899231648534164755740548170220061434527115250117430019572005566328721506460688052442086018770946075590898790451638803612725194874571681802883941322228110888254749596086528234473759627593836387262331479726152308153779299078525705578990566595969867787052375579333986245815020414232992702057771495772747251551114386125476610449604295726325284172856591868637190218020291650477938488657841390422630994074676539930539370961520863988418038253859459605891796142610542663769599347749289406506098217612105093018329178830732661030975937798155726374457460153210049538431655777606515501350692787206506952131531929500371391620395871657810148900636873668945374487411034540031235551010373931447156532138372725408122732864798850684087617379404926289948951880340834427780133251303404015646289854913891229165372881396759495849894513529594813773449668850227636946030114486186248997538198218483221763794386807839598557008746443370382897895251125759406259887863926666227967219550437531612316458282350643584889226291297523878694295543113284993545137219107484793940346288939623779191686740461705115683476363337523212202566701751753437727145799814990172230564156631208300654635717358649696087497836198359783897868071956002438298121955697230847689463565652120849901286877844393979926620988421428826360146826980143180080375879874740595607909625519879310128816275807790414557983881976782930288678859697366874814373891285549581262106989677425834237366053574401019907290216695950779532684448624828897339586230664173853560883876583664362534828754831703892188093640486135408939655118744397964457609203050864944746152038717415942700194688725395672217136860929884746276969725844942839732823325740386124374005396973594666904622170109217042680820312031704480912644509233875518565959385771879179401101502856092964997603581882452957538669691324826391757520602866463650205712948203898337363945647875434626652453477772349108243637192102246936474520729166815222818768147881032340994089554444266286664371886242394509822109999078107766495855805732907178443472250235938447625181080620879566496085817322792508107620827796793762563214536491275114894276422283641971890786508078955636239135951974039487069781877779890874910188616954145354021289722608707739516546012662003170054597782176544797862709107259187514983608535533963014603874408715527826454834895156636637890167487454194000406252054419953857356664571900912377222401930097539922148491985949104500884170785848860940646301620870072800053743820240066959375047171677743670043886930468627254326437015809780273427628636140388588762884648574682142840371584529394173797499237962306602080067864497725979415067774482288670664473680251198057739732599357810673777519193432922194200636779599732865598804592884326776315155191277062305880025426524945142045081629192378618031224690598578249903498278965127017458877847759957788846494398072215111436633971543729251614186694123935319561101049852432847847493954037687606085882488886558950199107674020923722341667793527904838811396607786422145340096397851268119755406068061727446591884897965353120168305395901896790977227000927163096910881778644544160970805580846448386209545397317599889202129807781897349923482582239504363968843146158130195449855923766660593912026269381128265341340255952557812054243542027195881876653821777607820110356070105721871817642309562373647943495588288294661295934741489558147959109809954114519374139391695892917160904815819556840335975611192790323853176804886963876412036479742074685955776399653364800353561853983460452292442611031511206816046534868762095443382170480381190518233512095307288413798648805933689165773947316844670182035434403871066924061422119164492834833883448975066499629897234858146042684876534760480984252538833764559687536603171825898331226914940866731517042867674314400707263009068151048013796022774996063173976779818343523831349955048313113053835151157463865814944305013052385695375373718475745649964965418842200708938737014233387413060203508004149113412614695284251377951854058683827060265837758319417802703122496379191609956208463060787349354065828955346836364501791264279608486206295002849811437041531574739039486295997228184736697994370431361710975088837023034289115721118103482891943941785299936387196012623944565686995448884272021895298573961964922885930159944291723523865389923274547016556934335763586211277640154936665464289120612988284087319237741282305755771750603801752618352013976539883231662886078205280674928227163971324652439802115187554707945250222329492869167813659092496360350221491408326220727683489487265811537362903899713185984621154134771016440509964453278075682581762173274661282251567916075513407235378047931352352875109057323172202686128905061590463431727558207291178173684794076314736699463345622635498619811922440311347266255623098092500833671506688223277663657111266571992781393660549685221087813115642401333326868202826891629780222308967698820103697824201578816358534796575823229070817003794527009227223340479282258896088118867820106723049455347194775062341192127249217358876187616747297304465560748138904157624256566746601477965205428014140759538142594775955500079913038657896551058295251338032816388946317031677999472746269516830004829674368587484182795789309946991410562197919236805282736306238095401023311190840843546157886668765292813619961875108578855442089615246157555461973041976111070291318210545838819697683425807278061475107418718358972170041811978723026435261721336473216724369276422061955563776406296317067928061160404885355170423169504826478199743757455433994819267101875679530386351437537338081303375872752273574126081591219648556008602175544406929445926771704449957695264962058405919061311875356965633897510773843459049666465466282825057493112581976908230409504513963684089423275770891338090382100063334546737790975614292872051664442119560486465400854378800548901575221985368665298373206450771034267363627958800496844719600234544735525937079495783706562260356831057170981141392785983104056261905829677963077383789006796975491402517246908601977344986528509020762038662617495955175354616411542441607144763529176233265298160459332873035855028724805324566909389506527114214198911571105436214623087162777814444784441755160638470609161016671663549445717871381253970810239133051096389361602045258931961965883267373216001183930549366958107838269819674497386466327297864194921726214819609580695758208632607560705490082873788078337609133499247757362106197888138756006606799429610395896021648841443014711357397403571392701733686535659076150841615528003706422228829969801311171293441328212081248630483476579249375006819292748596697580777874902091033971452103171185549224985186818250849821568709553569363812716764249292799254296734840359744352948372916326472315186992576345343554169641161075902745639888641577526044821822584593406605102467580905894069805465538910319281773777433164805689854516556088109259563274230918949150896143284423798464599683224326286551847073419594246971597298085332566710517766703207078868144224496295364708888644478320600112034901910057826682133911048439314628182653164816855458316293573969053727652973401990707961737205402375803459459907557045772970637975619182900544457913566601766215169077864637697776163930941826868185956721346198063139712603506916489543533278087241633783585900081179077888752060579620253632353233734025307253959637861188420107537735834522124523014012429307163972261573412170324122684360776067616628581488683353435147017225488213963479529447960750820359369026262496694433496353942448808791163859710461638403540298648418764555908837756850429568442581720884897369810810357590464582548150108140812870605095385758443671702097062804458812381371174006844447582938566034742733160629522860516553042279308454809724892831102693148111593332104047653330613415243685137582402220378068249270493277674306281768438859359707138977123526017125833571940684304915837071869687093414629477212110246585124139383633242104110232239507875953963611065514485619795607754986748096091804646500069755695212055316645620515786307512845255010444611048666825819325502208222089253906805163493226202759014131438548134739211162800988627181366197979481509718549896853857084809146577472116891382869991738440953443665546807446162013802034441664512435613518103112472599166721226702072686158062492645538978145359960311587497006705431427554115483084597486721839774088025171197858045763950873726206442355656529955601841103907836665265925023834254228767021808545212093686719737703049191351804068367943542493737232926846053308111514747014379226504529262271134923899972922427022404347304117495775786177696607297233213802455149461203934706888320446151592131044447275282451453720177230247657680653442761148920073264044506450310458013743773186631737431626625840220672044557594872164324185508915747554509672430143457833757359351873515387941669402476490931114688887003555668341425217156263402181501294483512330324950932239027819357794177924753983600056286300296349004255232420705238976554755161462753694628025188854959846743863882973613489258773748852103283798874898931597731418559441137701231875073512188508706575601873244989529882574269897705863676746526324550747016832293864850445436140083731910366123796544722525046162341201912911553188657702313240129246970412266103207503960680654860537583516898512770554092011483429775126404200274995193023924630295378923916036231991497738200014370772898213075708364189415455346206029085109505363577473543343231826335590281479072438408025298610987594223267112467210319123659898744430273655064955058283700304578636574896373208870754687403693428781531372782569782469251534570014789415193323763325179167606236299844679873762107470281963903355552188608134954243456977733601928131548435758178269241751192232780172216678330518604917030980442147519579132024073437047826151269768992570365417773162556660213469469746994244852163441627973766837585413479482235922774560136290303672419350035879436919759237261097574294181384972318924926951356047369799704572359703633809859526069063506187938235114396526550027276712361612216449448625340759345452123389887087123067790501843907259994819190875252318867275774321350658788185400617095213558070960006602598781536746120212518728431476432103535239705483128244034903629485654950504972314387987979435790618134362333919660226710164144114894609899259518990702269033661498130969289343069294550759949293768884808785696352502342714410188904615534424357671092535004151104691797757831828896683579351514930621905140966596335982987676894398839952838469833285125574775605029072373596450928409124231887175779367344523104605069645184106471876692030109392514021490563020899162801199319837687697881732766303785097913527896796445947770323572456065412233515307145194117812585853948426977076330813822531466676231086571047673103246710206391067309388197600106085530075895887737305556505540961279014362182078284415696378718054108516572569572423672449303445020189775206995906695739618855214397836439220409832185614348717240573784393724759909599124863689453099158076474655413774870092939199590168669591077108804928909141056603695924940174514132928696025601793034713814260608272431858023278147647036459690720383450991001922265449078367745666480995484768778141159876316637243890093182204203230796254817188232341445609174060865722785702772511314260194216117080380177709692627959093847753307590775395826107217693307277324620925452021020967172545948341393100012575030781493489187397396356237432497372210778215900227068336546041339300321640429450159556079916746789406998903622914742053307165835802903082086328134704529800466213395534105448703246622564635576044608276968036894808082233841832336540918643846889204205335646002926195169407763811866269662574978221879230753425086821509430427090266607448559248391933858739426519589648332193914792937567491997018766383503013415026299772678271292402913838276215503867771448556932907291002713979016514665272483220997947643525182654701844592167678614207454482811360602734422528779947998736044939998523780928900445256687400599728598397545730767810098899850681882428789625825140846781680717616697134301617643418952717382368788536677639440204640397383574914556372809883350062229311250281025989876608251919651184144744688074746612767433130360917303588734832391693094019465665115824081364859099759778247565312918798481611126240832341368919987458928343025707124859666162259543448581759681403874513573879807107760738112229839461928501463189792657648324245554197021986611179151597251680448792212407541430300082022715821662470736979269370048636830567140557056356855784834640085878223140971047774438533185118804525786804111762364744185189826320492515048147848056461125904794782718633762044350587344813893347975399284131516553732443783286804589192323282893819370866952046706005814180941041945923761256024231437117942270428211256979460572176863883173567205626187674441548440161829046663075052984903352291686034058688678317826480728679580021680387283263620951329533453671864623167949270256243498697707882602561639271860050216832883702111200368052743045074240525214379767591746261436670082782670730236519421580000590724297542766653480423329569076114304794684260238204172923522753845865043746555728915860547723241433840700153011955107539536112975444990775963978474317195736058658743401289731262853859123209535267045475286503875003666376561703733324495600124133579669943405641068817125621117374387985837117574560975567264264485055001611623342398554674155993726988945817147441555585453539251780545740122682663524092190421085721559170170495336445338076144338628392858713279391528854103141238918355148726820776764365377191780073912740032011945008023076185776032474305518562185705545089900479425879374730554717885157158387939041667834337908133886723051333920540840140522653885277272085710006241433431807744821934144390509127167622394326963537689125547493391936567301867450776633826216892856563505157477038087857509640965466829338002985134251275292791816609771414387981243332371667566367903795053557653526148650852806231633102497613129468193064866297937183865230347686996786273034800932270176945295045851743941756855220783779864394082922271008096680242546674402139566093065077937775049814009941778388949776205183362099592800298748289681807351678415745643982405060732851030150362324343914397843844717235623283498818475532678136788979335437051918961752077491495484933883778613441445043446764989799255227712361858780582912682161520558250195142860879160467104105117872582660818755652663431978483017133677843533756829844638405091356668691800597304734204834482666014910096930899236539734066283420142646654476636246211067761710729964409617633210381933709334648356432556689786487633711509750425045131992281288391204415413743405164504301416091737805645366689143638595333499544091460648364818557219477795624119187050774515988117019004050052620209071424496053364784473461800279802648605168629395934990288283433213925288882921940706421257566027036740776169139168781134558241560363340345180705349045017597399019911915611100791317946836893347501395125326642112900040124362753176996562027486665720222300536139092415054360239048383808010579865979358875579851379264042377123517348354397704026090949421484236331292873620722582766147910036647428667284461625445042277308722123600742278991345184317538669219280222142962015368727073932032253813167413363614556065483609095941786070225242754044884457650431504207953619670808216000451407698360396199503551556865959920041719343471140472191973867319141708876268341495095271132631447784783118956492165007218993148652419137444762974524414947315708489826002654527757838285536913901966911521645554714350058428471294070445631178640374867723569560068838276394201168377751175870552711505913628730077950040392206637636281313635057515818855302139026322213895205177036154844975576962363502173186666630214038765773698225789482076602686509572916788652577753722730752832154803987443098732169566601612267443715932411666867143629935064439769688031813359692959141481375780659970681604453051669571422966072969503257339368533567106796833917566101872679654190371533536799705236822352777593299071176638630918992593917797291022588115519423760219938184943665667864807811620733715204246675763315950514940192013753617325684260640206147125073075399703787106678393108558995974164943194779336116473365507088276336944051809587045839816224979701792105025842029584189091658233875442233940075104312968059871245931236333613367278447574659732160808455737247352035694395708674607318800603593284506970109123335687152981639274121174419364768584530672360619077224906608810005437351477408685415666960029890117516211949654500574792322449956364014752276117651104248355882235393879974740458088542995752727828423816088522874088113040919375080956902715318170710219746588632229779023112190159117148356016627702523844583963512542566154288185526305968638368079288496718773828376353280658543267900713799764978781886835285543553615841091758874710196371449333748776075875507032739379155267681156207255763543116940817933075284031842670926327983564858552734066700415022509707295676177618279907863969067298812714792912688639439975160462188976774376252393658031667242580474494496417542486451398968670059120260579114071151034152292873280885870680508687948700422139033169141926061477827348163576776788337395163016728161468401609317933113952865719854866990780968840906134794720219054278886717788585933044163287971135572063829506457432799652375508842582408628980644117696102443842502720416802963497262352243157444091919699285793898473849272007498660354777307494606061105731349135836358867575578772386625698488250405075267840489233443126020176350696489534092086448235113156345435161348169164636259770271006822586965585702152881023729230598079750040539526619029366280491779589341334928376252230167781935562241045087485873777962446114786977659368398579827293854858079197013679714922296204569093537399745983442228015552944938425164327559227851607115340939674697398914410961243259599533059777028359525583907493787688091018596708367966196605343637372103719871925382758363127386192395118985438507775661264149862799227500158440516079965527742636063619062814050488853925163886260164159534461289182665018395592587991016266135696414222486371009989729876355701416766677704092120450896073971451120638871687409590145031464070358881322698259304475906115763723507531702270120458709550034950525143766326232751165168724793709108989558076690800640952337435217832624705279104397676240739596179728558032143391797029772928605060307621433065012995126754087947343627095401468180329908993366656459526922535177355403417634945166533060526983353928634045944709839735379358524845104980259765832588057777271132735879880455685897203043566234115840687718512873062628032280671831441615021525271339635404454168757944340335274680126281007566011292613467881465349608724783868162409494837172483822469895641413670501042882263595403950598377589954182324023726529928665214735649800360182142736668073449847219512065936430297533437202624905485971596665375590799365378284257414663408783420220309554953185882311690010149265340973462370702240976190320510068638007826850283001987951029908522512544030592805958337525844657089310285310352990404988745536400442025750127881861210654632318301042068472578381613550766071134944204152801333889338008458290896357745855180555119908300458916878414404995296514549793581292800382624688584854533408403742479618829168337239138197620184857639512767675160229214094588164824128860816241691218039132692916656536796777068617133618458250306871742479354040992644394394467519548421900286686938544099345003051129986731233383564858489268621362780496578698299566762011514995413386851908278665825553086871974677972379327792116987373280113332960484675910289410997266851920161944756306304616864114264342419819728030809972656058184005267960039484120404524251207240818444745379180867696375503293147374858929153174868882944538083610325537278780727248808490456880883198288635699461273632865564760832249717866267052385016835980079190673889782269272460619928269217254756433493113956643554227801678448454443886487371606528864968702651524248258710788028975346777829782706487398241833537341293462124026219907590660695568429636736235785309364139115739699293961578716722676951448425344116641549935528485453338704098325809837021119006554458761057053758494146106401825802738860337541972155618021823458363584652268603572967261145444216425690318719606976290110049250887196950755542005651896312334370395246580103040202565147794910061594873954627052286209833497421298492970809337459264540010283124741986278425339865326849291863092006506065763608301609165379413741478737623815824707883558216006864716728863467627176434998477071519570528360618258392540428293820288739819394494693050908843226667225720200422485214159772950316800758850381548039922724103804476022107006213800995223238469948765485505356084385111438666203963013863252243889258026438481175745975703522112262268038680150682613196097919167758847820765895941143121990919509823965529223581411890956640303492908510738063651363146863306019896539182347964867878479746336706112919266723560673664255356109770282205484176247889876178499257177656229175375216120349413577293852735228486078128642945351886124071656167928355581982505512141699930937336488386672782396588209148503848409352810382451092920308277671005365786630080133523194263213626146001426379001954633926946403191812366616525553140540898432204902200955963258173634931230462814379536362666709438372144414635939189288285184266531312434768157238197901554955247816782984636813179445542311842065597571181799024632241478826863573952803354672049480589133883790248861548852842538963378372538394476033646614944106326847181941741954212666631712899984529467080503278164709317452879501218433979983473802446063330739297916832658246268216940770338385565685745431828876873825278375586883574313351290857648101826685549667451771376260360433817601176783627630791755276263987848803874427100494606484534375420520066222423352956665235506078726249305241270822941057456072095691755330531778407358227099165039505204853587045333632221120684011708209197909467915587875932849830986954427453851836169046539270766651892656449439911495276984884218149953431004610163187148641770173000522390787828730429897603259953129686477193344249276505263701867817193855854425457813302396566745152652685207846487450792639677322943802210401321498198958814301508930828682071517533586454928447236442268971871234147097336095266527194200812778239645584203796926774128360573188441720433714326467717860384828250617719541997168127927386331394333512099148502340896773372677761830201497692606857633264383293397870288543287615834735377722708920559865972038253313310324922442456731764135776333202925495739941745462636731187541893206636823343974146464761087320652058713024947395361718059766602509215369418220577737725333293805019516108433088102051058336128920221334736167156103420523198749304310769435692089583892357349213137571009821033930493673250637172065384528627952889439232755961276863963209679717950122959945126259231676209593155492513951407786840919911120574818581491689560705631001947733471226263924293367728192357624050768435792723609526119852515874568539208296381258151151143283071404262634434977941256571353611664765437299406670890531219817703382427578200445249699838293330138657854213849012663881071081706638594827128530690286299902318354807178743775673184102727123041646304655946416482606638266983933065366562395741602053525586725282458916457503399201794574751054475641723534952329537531656716910271576586185914121967054127867830959146728835444772985355235816713861250969794142305718282283190900376900575845490201354894232173619988417358692264443058181156086758554157173185858927418653339058985386711033888621152358066964879728484098355872569622651183014744840560767325970931025300915403788462442270148428675700500551429703729439700861325676292066475766253961394670048982417861931255743836482141707309620867382427436227731497954199519227968687661544312727128602757957346273446829839916858770267488958926349256761534078247762768196399693473922097629051369167033283792850405606819481445831696943603266873227369291423458774005026667653689481876362118516806500794379898581302819703729761554418835399848001177713768110609710541455306199839733308929987351217435681198727043615169069084861458159052197082630418412108174862411720267115475706481993704042877995884134597522492281529336915408219548172171898841600914799960418690715658270874368624755439338651018846598300626634360268874563342698071884519424987445703699338473511385589302702552962228815523845252417625091318395163182798927095641332088472162349269106170112011216981893576670261627461759230107503625321639670015262650686495973236575953810428792014313874202240606382682493078994589280373406305473402629731949524590604000172502484401358323623630302063839898251007705671271537589450427106338415348188610561363839773841849108768235885078141579297777847203536000580044801092590775587951273457597247354259417356324577711020334504533656475324236468539915074805182690924778743783224965254298922455602133167837173379640236099961834334034430219519283337619529281660308619402897294903647873917611123153814365366291445326697984722306365179145388350104871379864706561479856465248306189721797278631943043859209953787117579766588655838418713621052422958085592785548626024808626011372575521687662108513494895370677601816704932358972048062458160298170847728395395755021859919391520933242876390540077800339989449620000387399197003727072566168631813000401799611699141396680263419352697882851020557178231952371264151684436403106185328480364126664891680647684312695249124782281607017006402854475102016816767811258366512506466511698930269072653197283264086000339056445039999893159110079075072844208628300494875530728885117101712091753528584876685258255532654998729587873107853011720086403640016472854074980669399348772905555586560981311912239218058478348567431201021935535063008443601604671497478613437603237712614618736594564152567963084948339742211311795857404367777676152752845399868927056055771296809974701144575194215152487187395355550345466807861406087910712266687267928481214106695029752191210697345577231788386322918746680358795992330208688969683475194656596265953891321373509230099227193621341214256353605697870429719893687019128226590288869378582754104059846855554055760607825929413525445350682800497910118077509461273350136886422067632218799063684769015915444033541279130926224762676697191284325274169815326547203532520327249641745660729823435241234386190748198216367447220949729584150289067644766048644244524651469357629075319310487112551294291355796889623618757275456393472312245567729988018687651784581627831183385729487711770216461559210934226178553569910507543865797818888738252517709774570563056638057355794053598370516591155795663264756432452463110864462075310159864827863393795396232933146796086844085405399453022793018260938073031583341749085804622208481302993638998889440246266327112559657003756951890276596652573834889765135411586331531697405662818089811451617224454738264302204117197604704527865728165401139303089155259378358515081152417386117145822394012176855128664611133880455902689547243300742117006693529503805932116518881265813356700819365453768421426014683782314997482349234176779659968090272950772473753575723914356005118021498102079538547842885900254297646995782002445959902439813812995751896539408736642500525301591794886619059840749613153468018007456545302279973623329702948256722819411932705710092391727155828982791250073024009356300732304883860606345329471002092335141535797876974417286505061151147667498214991351706469138860922100999680925896980825474083347591561090149627532351653279453951807021273914478399037696456394015423151080132264542150462797933640828149294060521843364817688677346483760443945407228316246300926628573746763089110508840348976604656087641288064104368936179053016236889810191326480174859287401980336873438041772691465836425994998154667220949644463078691988203712470910222270622699160210640923643324421347381222456385469588325495157568660044536800408102377784929912576342890292314326189407547299477949677872323273435701386345305744137181806495600492774276703595662065879365947601989500128102341480362222645121467344747078633336447114957251050656030173535570769076275717404928796470967558988039842855985942199251883422745677746294530936555393228094027627508918326079336296091157296127172823501595102465822524967879368783541921042700671496937341961468228665830041013300654550847276378984409391470243390481923756324687730145833262693516687182415410785827577179646180523921911486665910071429225556295658575106070983280998774874699853795758875200245943664969842682148794426379744452706509050286373544892877752701135005028465005315458428447056993927607204815441264784476206133134747535680286825113443527442474257484169673906971051927993080324284031860116220739999383331741995734314294353584683927836015233400207480155816211841426466223900708489549073285523429085611153098730400279915739236893704862505871748894182440704455789663107138558411328293173288673542077629036222559957236368155512159486949065719209763224831012543516436498627750481015177834850500730590915691582267213173576707942466509935358844484286755389028782503723674176204713682826552314394076499245320195426218442986496555151555708084074902579577526465624492330584162249516545916725997717339790810408279460559029561213512228944438316356579794363320072878531136738248766832701646976837295220870687654395493305339316265207179517821867988129810404605583417256461830218435782213600572334877452397446672637458145419812639257000775393586457258714368433920082763960678511474721057668581400639827185328404840691871193234272388335463802866229793445573786689882999760383341756704010307981930028469206346251932626755397027766878110928273670899471057021283117499613698998034780935261073966091499509792060432615651452648365950379420869912927704521505759880913594634343191292703477201160433202269036940927635404411575209133179827497364940652084686665181460179536970849849622236541221125478874442760291927869453012497889029571425072343275875369993356775897500320044765832102932401323918314239732308637285096646528207668600664871240862437686077868506719565548314399270073362156906242501660013680794430520371324389439454120595279614616902107706772956564254945384610542289948475213367992505731528630495156342724324911202664866416719960603258456645222134135617629130911923569924835389555721499907309354110462818511432572587160308429553163226023673079946777475324800703945150708196265318203739098799171996265975193551779105537126628735576096478705675616101259737490080266053139477070023455130876333154788693444919254172088631326958766254328120225849527000105705845747161964184068237125024792660764165323296659005707153572673041325509869476720875690496264870755316708918824015410591875296951849706801101109274219089652775080046653028991328664017340629854537414278370946835599929022914527520086183406322951213594721030537909167207000269387967638893311255702970518404288871871424363749941911362195985867670980881320762181064745090997910143254773067515197405494483957346492513864835084337673110029587921049802862415664589696712065108781051442257685816403945489401187898365555533288127067784594266155472464894910545024197714131016876916975256626957085702033150773095982388980361306763613711383341252771972464637937324074905702846205857003304660471443519099692700630402816168110161938790142777774724656656517165868259233754160816887887059450072431746498860199261330503819592946249573419741642299965978050998911368911640684051260602919019531792483653172452517278862347752933290628854861158554575011552698338459064501794427932700152624482076896923744320197438373075127184324580423399364216928393054126568595761014805240087168415091187179225149648638619373785613905957456593852084268292305426482145232399265989883008783068452565929624299174744852082040426561327606274795341485091441509668678436533900578908740494346073399348020750040468738220541063102683669863789648610543821505230216132378619421973921016271392115521733983523312931417254220292508985651985975766924139397812928786154891452710872064323394482767013395565432690946749133849713358032799276984575808123084593286997061340428820872211104121906968012797499654714051631788770618983075383447254111918656710486083689039439761692553390431684181210023465834747564969725453232351317284047824377081336160785712051514981246018479912555255741245060334677891926094024871225734752420005574709030619130598829119312863943847628880319729131948915489224031437478236903648483406820882891217736589413685620960978975633669233932076776476945775789128732840471452777709908825362665539949608345816778126806502681766933202998770671394895295919464179239321013786898012301969504092456181659311354346424080598671097120869101871842758591371402364248313784211096261929230793436027457694837234534782942805447336793416061366094073175966537017032391528006654707470193140556819739857883225894497486225569310109226241509601247355261506354183610592353896375667451678193937173437692900316915248493426330399779639230794851469277255692705959851640125645345747532133693006193962772073487120217959023707569894190873825495660683288928693888827099122656875647694730435451013717982782470860471974029807105710760688712932668860734860707398534671392819489424620613226838738479470988145628719758174585582605265538891680055141147601386909296647302974820989419745612032063842964585301938961556247933372759795594980554567049001741110063459135566912053300900823289482850230515519879271673619901720909702769913340529208934107297162402500888888882890026504524063412582811533131999690321091717164117653772440875194705866900331513243833747116024656946167634250650850188124915497726088197341375619660159525688550852282281304336517624733641555811563474797284379339947052448976926489431684821630296040724616820383142856460924872499261266109647065593539525561120034463463934070950460371225872408900092865757891802521071981654759892853528051053006456879150212343646890818025261681829964731011377097016625263686129026297805422641997695567457485021162744879174670357674149798957148807684848605091804875901964149314248919284385771928780344797152579749532791122837539905447271016516454870356023702552824593419164300199319619838169222531144400777390879331307466163579008933500761796692297802698728763445990195589058528937300507757485636900090269255792607299938697615731582144823949439454229583750446487591442368912133242946667262419132869359768193118782753390884109238038887728526559010800908585803794113963093342444767833240958776453349538228382287068679061984218091098218828435508635500948670754524697873501342648076621330323463420976269176827563112187567364545392083113563734847950239848035032529826208935130264576415186862540889875565552437914172359844945770349804226132603849506011628042738296900587683785769262869687903482002636898630979675781345210607295357830854317891088675642965902421490701224909001641423799948857309005730275070765523285361100439928413011598593558769508381511703053392759872432693427056782103801391125896864590385133212369050714559241160992250087498844139730773350687833185681277500102694362095073483940343767730901407532656940780706574563050580842049997161773968256691605365923526605166014096923197355197342661699924267573817970481046099562401693899511305651304927071330945144044475826002218695191144233350414665874077603094498005661400240823591057242192561471009417770302835156778485455336255133624498900796934436516220789569971702002952250067820687560913768802413922449096626153495292933419736056513943523862329084715773069013031093842137534269132446308836057806933094798204846943694248989846312951491473215744464708356078635101938863943583579959313234556732339509094695873532694066743073240956220342576317050887934312183836282362229664420415378641218464851174768788092639725389599971113695834668293917733003823374924297696654775630250558223665162799900791338645424341986878649816845551051823842845456271370805478685373670874566539950668041532055181725316135337351617681235296678956613149159900547628206807076120343594159642893286865506237111084843916580354017804754721688452780616262972231366196028151357102735833605269310328402308605786973730804551769998278818222651992928389330582899511289953984428170377813869874129421400718228399738402470642551657540104026636168381307363822674764009848524156430986841128244609816875926941139716252093649188749698807317909993690125417273905520868806944296993561651385813319066119222239294537173828276037457386013529564121097376223733331639317797923205245022174476569248002339081463718517891225998538432350403726025951293593216143634112858725737927572450118100558996384783836241930901137163187542288909999926212034382231772718894518744155335006622339496068945536832947059267128048083183559939365828388868405528008797915279919425764597827145698038934119520290379397641432525837882902141433469944627448487307190726570738253190269199503801765664797500230788881741467335478680455955207534396183635092414849667076021950060260246739647386580676710175503144333990520068359651075719100157277338864103085988858668319443915090754140333966605027653222100096412539311729891800069184114486570279003653952776500843148590269901371264372626475871008575057120361898264529321196637192221668279411201511511136572565493025463233932063338037088962329594112766190482368944328464933287405362013168583573858583138964381783925364134698161091341615881733894576487251163358381074237045850057249767814035961551382436426794040012206034514342728682701577410852088331249349361216201587296584920033425699363611335886847569140103946440432677000040545030176726859282589758880941219470566886412468925968171069786026020024707867742695631115252211269967673143365621145080661629912231421056596813462334002346845158393058962190487362279138819925982364423908295754837192706371644189476151897419231684626958630342090812442218424637228377564730927465259609286170075255114228623503174052217453429690754270083462962306297229984681345421823827204895821247151410693745948554696007415169807352981336346185275036581366500135333448146524962528370886591337200972214164512723400748328955869814406918578471979336752346927155916822417055592976489783328936790429905110869103297691945465452057123893505294264733347437637536296414448979080787598980034581118810060624832555887161983567236610643875436910170754256288647569071360928242640555591687701715279189306589328162017748987556495094678349611317383137502312602705899203081852576922217848728820441385085074805740585243796786689776390457292321358530741579714516020647197310171216867642762792654757916935144513262184346042817305411645275083245614475277079143500120764479406762214916321652990404264664851609074915268212286682996582808745375845683717938879685004949089621078977283782695277768674737241791020182778505683804919324052910848891139897167325678959059028031880271300508346720236806235588198979054094433246310167477349760551541654574290345882811627975664624190568352713948739764847091088975627330427403033752548896271632516019957732153194955295783964118811132124312699362527353858850054628082032423480777658033649467167183562138895613805651600908332845504949960612941614741200169726991416652916060327178321028790865630649468985184092123558156950294030568058944272328402331123866909986343394540807159011360906251309643896817124460560200797360471088150011259460091249421157749190944724073646767090084376337401224923710579954758877338055180957859605046047731655492551070805592741765160902328565784225077357707083417276766054906392360811149275253572673384497425834030577286286915311101646306975631474630597718030569047105699568202484075295250080606008634430987823493431844360343826454963581485862382490153488862800743695270663652690128749275073584995335879776916312915892586951448156607186557549562115255834409206100067300177485448032850804969608838984110137389280758457205674055024802970040496530174597285034584357555996458356674828794119798141402896562563475152280690437709643958138028973581437607296536169455210877621187043787292557685710489443314221248945957691565920096114610314627287592977890872334091257535908144026772230219915347663638036468474467255140242224238752809362390620780374802811586559776158524001196707217398433381055920644472513411399201950171935855212223530692389761437513996332936891059748626352250873696456455123370400466884992892041913910465628830012954425226557991573667641841237048161868667775788995955599461488960241892937425090916324221747289773311291772691042108623453778088503332793564716921891153148462181968395905968279005456768658889615055037485110265091449926194393034292346173542184584616951735114608988398348068156625837124135882846448807806113017653840416699378564901555301713156752291657590807991817607722454387971593211196772033142178026326705582534467285486116668326420918041652054728720472753251628746435587352699854007408976050958414537627398008797951506100734586174613493077294879573643177835203500309929916513111838190318348857738006055835032399185321291683811735237369657462238373578070292155539340322222395339712041623606375043079919716184937459216578485293391548691328744003092802754587515890492121348356898934812177555040584300690084691855679230505056355916561956736492444829707212632510376029902333290217848752453444248979872927276443206570662616777141226145658262605867542647709351819852254944044017943279608879232837230841462408417828894063308614436138945928378123674078854176897972206014934959646908464315953542947186693352663241241090422737811770638882054812436404043519181715216320078774744495286376377570831987596272895038920590411902995054989695859919097802163645309188238009245161850595585819565522219173664291012570568537706855143660261405305002471776033400085531548536392828391747715198537351656513342107058345267064628388596065584211095954758587136694287951124013980928523035938470027160199239997984450996824534295838530928539616307472892844073614227192873670236130294721632628547977350098960160371236645116621207050952920345937217284051498417462597613390996442707275328974003638687332977784581248221745526074659939712060386947577242320263079803976876861425771235800781951681778814811075572579939392081724104980469210811349179939138218105315103919753134505629337838505387610408634749734317405348244578845703820887990272592038120254380071535710639128205450809449632903515691154829138462624828871369766096690814835550217640272374013906251613567951142566567722348027539271042079289294111534483007077061931313510410975599509747348871196311724658137548557404992902255451721561037436922260035382843560703663546688937506335932147565662738104663932167944486925596548092445442671307569798941062312151877195102696640399884203261061262162788743225089916927958867733297799974859550079029252459586326415020633296246849239330550624230035303246939678741012088045534969762356297817965025949992124509315891430417558122663169181042995055231871152718424776850757710774754360772050131727758931958584323290177674361918892554889809778671455367057537671437221924338545848929767685486558983680667892030220438746254399781779448675243555119158349275603497303707387344822192872123271567670203398378894044160836433994549918569106837509392386589815995883790806975771122178650792649034123535685607403068391973945678046321903499264609987695754796017733134982610155953697822888513518251595949566338241215491989113871213763488703136056959535009982029843294306121883746177432393714362857837681978275906353993898837919371343659556457113441309902253284580415564488123632330265712832890428223112931183998019047343485115791452762822325514106931825534447677646359322920984456450124489817851300522000162035268280518511561909280555354928954461646414680804374694673438828260363203313143478743884220513420024622837610779298873618006509046379330854577440086648712933323992179074040555454770969775334837512285897148822771141069111784929177021809915022886200247156749894690281447903207497465813303695593126918511759032703182202043455793235588435780955798776275484967592925526634902694972304073324272667846177425878650494438662747756924460379527445228281896675702390903174436819297190332211686171234547778208962340343896207372268033394839925774177299201564885080315609389396903041889335194866310699308839720160753532216845631357434964077095450980978309694095492098407504915390898117335736740981868596319744213910145797645795963348237456242134809530632404951925346596761163692396972667158489062798592428611734220046831131753390219091496404354949497024916422505397539800708380560889474004590794810909420907472484698166328124040727923906454233277780205939472876690679045934769015311981928640456755737616383385564506014678506329419707552661471387338786103528908489870297919133555121603272318352106106965252284423739035119599328403889670978338577739185903864244937602473591342773579673962780048932452531946194242250676377289540999360213374166493099854959282493249408490517724352708351626382396368840768982312157141708971145514592981061411007136470215238426193473394662512189763023090440892415573552571063091495109944529543688392226060845157905330626913196531975340571699925704641924941792395982492254421230031979626285656760145207382323638707105752399400642378812599462500517107950976730303331012173521240140446703608943480161114778521266868995289318663094389663151996533266340989345750113162827571771022050585297631483550331025455462487661235163244485790556507417969887582962118263733547335939322260186170977353695559584654102197041559596401807117661126484058260417047056165589641018801822591265180549727373697161961789549090784630053252409546892494898269523798818734980021691769312192064394976480457507474660764421952839599446521614721189543168207394790623833783880749529354329315470887370083124449212435738882593539254313034117940771833474421000553285775857569221995481886840252885232280980052570322365226191872561379103656903049493623235739327387953562411688778511374681212921754814781118684491773704631600365939800754163032133985742448937727409670942770108791554541819975920446819768361955584335248167831307449105286036687948053306183180590280810483206216967420594280724394496601391896485538207275331042455172230339906821083389601624402518938236735480588994862750140362698086246543648764006869095736216920123225732706492295040384541303159899687696271840214743155696872821088516443601736095741053274287115589186734630833431763658778555546511763921924991699265848617182113632046191574189531531657900299157189359701467116846887871588862889414830530928019962219915052656876789363588024267914536181823346801257821486616010596418170760503063454924378804433303984413714887870410416655767158320509571685163559094086459406674024612634049786436646648204581149987946377819415205036568798408054525327043963948333673157022716130044925234080838676489740860358541858275839406983874082958498893707181972792916029257973848669561701373686631040359690653581479093822239111732327302210603893074444092309100450679338083641934774055003182792230859120886457684802603217736473432913439292972202616553516364144075260248204233399743748187253591845853865964423114631909254811437769563079551762390220641871897528052502652100800956044636917195717400549361976803504485263429876063714725150859797568348529435900482866890273549759320232230326749334322053598612082356959796510744273869871353935483501205738240035580983478881244524082658587901636965442394549982101229103337259603088656298245646624970594548939758668376769491438157769391224118209743481247457457937891575554854322207219281581435199745719848471856480023099126352858639947114731542994873956941333568002014335133471898110936455598331755915623650033089096513780418527774344832607432777766075715525051411126243752505198538127308180567686734655275278211559898622287980216847520327690344465180117232279486619546255296125042485994137138515256318310030730034337884483923325243375304272584072483814869664709182172086713135142909158591735589257034484359938317109015459627831288684352151528168300444217654644817013522104457168614839330771793861289322482850989416350356015011287844943790699312770582321155561794827558334895052308991884416605973688244790545419190959568249573846816220845380736673730981408490528205782828864396570207740853862370649865282967864491018227146945341231425083140794296008021874727753934314166403217471553414880779414563298807059151849456794792291718093890490687027530989293222770786520027339674421810290783538220701904768468621701499794044729268791546384152616188955882331167153777491605524681970292746570071276437769966992525302851901507090833896943080029973596199584515672411730601828704873000146200059762484978715728241736488615406383755783933610094941342257777635631658844632802461698571691252824319663571374409913096456477548151649588382306421681200156815628252754097459327332876953852596260369401224768306983472897679985005520549131412172661778600736118932173807933168500294848854429057944952248661488987119893918094674834340650754625143231199471499708693252630379552967737742187633681626288121809671852800064272352893567102825471969301809762250760636589494441956051856026644046362331402691727437151499041422642178156985828011744844402547346468367915040600294766106693939188846388617168097784620056601683589035466090032135635389881919589971052343567702081545922974887755541520427438631331280806282789734809426476486736409780715971075042732095836887339072461243248289493440737360149121618556870352120124738580437696629908922758617750730179549429434888709840038799953527590293871038148924406042238521948025459386942269679125306200217238939671079262731763768947738281818358257957962956070149537504403541603633136125415109039330529288627534577167084711546193445666218188283446623384595924490685350005858254057301630723793644027199431171318496123875533154009649029284145958889359379458350393778932946864893882870039865320714673102329191111867230300641913231082066329201878234714328799457486975364221830986010259793234138862087196979918799767494247175324604297877800587345693997117662677126457314580735509199239322786510028644972364014552895388222739532918309569230932536791068529610189116694310104077978280581410488768032657596483005013575623584988164435022254392286679187856882395526517332262252895908909426129004621338112252783777797507335274245497251566613199957148954434304089160629535853638117838034677544709854859498147554659680031072947104404017339303528137059880405922733382881665529204604456909115593268513582857251959749678087667348149351315390292839383822154110605646331893646951469259324593042684894586561392867476492801558405693647595848039137400669494583268948361459364527687762843076710729863334606444470578800278860861654721606989874742843512736494839489457107426857931876577474339846601851158619900161910160489024517963232345057387861724101874114845765398904780277990563488697204253668630069174476257252348277723081760237688658787512709773653477923965470796438162984466769063917732021448217953642037306868263768409421993546024512012435926237280621006014902768146679071119684617114279273396978797558421944379426870917076946811598080074248328881776943809450417493550935013095620481579804199225150703741920723441204718615030506488476791710289332360678138385453728148899619399161065162006230558806278917546116739858745446874954284764788587052937190090139044003123131064139467782570745513046370204928514117279282239130247790272706166573518404394464330534413084017449733197846520425744500478920188905015250946947346726683567620326675485103455395901672793136207741634227580444142114837904496845734593321411988030239119046194684287189388693368488384509104886976978207832811131917087397563784737434446314952944035899141889611961900953354793499434764307533915064205020944169084406176075486794334421997008606579169746842096682933400332857238650292145767159745130446464306734162165813948387280585969454859008373750069722774032310688853825339054277810266610211851801816410625400052637543438039158461534453662437082439246880823852143877933879939338029024481226111539715196905611013201427355855667783038276446683354885051922669541845805720650798777584109934057828749676189954019060422439915780214892262554121892865410702617780226007374521766280481066531899263594532316892172060394040007744217720187419003363937433509544086815814564415778700882350074005345115979008076443472154208047907144561307367931113473152262459939900738711258489309564117453557512384363567377712091060002058212980140480642182127303250201059869138680321741004422799655226661642213540550611835619086101768117224522091949994789547377810726284221015231135093875042596017103726285473062263128787986399679924858695050269066672354177554192594374236186480910142495355674956047986678831584060535537630949995410519354439730676467450952927883611131654788600474843186739137175910720220897972093176526663805399660699736136193472600014861502034826122133563048571510206275436762783941267803784373208249751103755092621298881498052426713351369142622734723471483230722166346576522436227770129019699434857055335412474442570750335126402138423867639183004788404622319195714939293040412494078139308439024707980794781683292488136149910374384693989622797203079339965238341781160753155871916038793461336736117020999554814442027748240328679704828791142376572571680686420708036422853260410392778202962179164522144821998663716446294371161039476362724835147648130174322783132879129350794876198246588882090980702393560476726272209776595857551728228254574992998514597620093342791268592346412213925544723097644749410672269212565223059068821761119101154856715846158308342700585589653478023250364369521295773228466492389101972328599056092043061759917838062053767341065541282220347468344901889161204747837765725493020166996702176166828201958253869447830810149560807944171773153935271734123626967942696597068604674694907428312982232743924170753727705661714628281854500206810747219672033188772171611434525459664641895201953434153028848745384718670585427607745041942395806154973234548077344820671049819427554689875262091284640441448751901208411981745144079013216768000240064894368467864718285110064821137918519844083385128820180273117327196177581241126970999321385042037945215255627988613609582923202424104994236212270993457018193194655827072037609295403267924092638200271255292939661938872917263756160191161973599077437300125079452538288403585444884143740728502516850852035275610040655751616642128950927506893746347222043753544902641256595800860067417894289699969080110635889305029364499847575262718750910204574776766604673306267524201416601033526459787311010249235026900402523289789140902821195387408115921164585214387191838467304742499576740228371231674833376656080767279101686108107649101194740185712721391397869418976422722190457161438601997900140070702254268183606438109088973109964298455366406080122153940902537548948785063211212220193966881109266824901524736935633643790148955283747735903442624379106494591104315229657170264337776136510540824217576144736613126591128810051354223841900549281725259201578880012382189018344554366357073244971919243021179131512806737486187097588892237014195581296904918641538219547958808688970287047566824340145227778106444651334092788929938912098109805560107435776390599112568212220404096877315335267254062661624651803607927159266227343420067137691353186345639414788247158235968875286070381228352090882104745357220417329474045111665594486186198227668155357188939471016687967578015017123478900371884255656177292101739298862977789592019798281839858943194164533465735883388827684916202335959394142825095610648554414377521625021122062625927370471570357416390496021305848516006387918715443463741501699320453951791976218406971178366804739843228144053141414810028551418626820594336248710691676068898637754856701306373638837965406874364177299056913444421487164557001164556671793824329759641717880283728853717942571985526262398273235990042871988414208708663999895977151230694131580177719153422933033515814609481233821696297269410335715735743105089208901435448895717769889630085336069484441118260814791213548211715751698825182994948239489726780388144397524812721084300086755773686500571242771050765227703809839670519891970613381299537882239564056704396374676078413241430572797097372909959217986795675806036794825041098318571186415450274059939494819069184095987390847040511168605601997296597744538636243840542886886462009001723639332225292418131784743234735471899892337877756631347128455550325550409598758424599689843478753545084411858537711772088454340475565819415287072977953712230870658433168641722731600163929579457200609747592022036250917472210929119012327148468597650542379980488266607331057008828881396046779170294435086701164255799679028357452654636266488475781630525827721561851945020363773808122902530089418833914794841769935661615268399893042045056256174755754436166761292257675218252814957948788661495168878893665866686242224230232872473339682054366566875566352922016416858121027303324277647416274642760232745099601253585489800794421836171488657825144960578724676770501268895769535088764223291525871933928030160824924282256970938079778012377863525035905458856614982445507572687147549101495193865632177885576297033804316648930537748595111944383566492065364809813980260448352151927074031112743260303946440727185495990381072484987020884261092987259418739493912407751992686060247671105341588007802816732465066395395101563918343267109750618990614419415560322020057581686784834257012076661511339318875010514098603576663150288771107418854659516034052092146173424820403772098580733819506436149839165946832336258462249711861366698489560555797744212846879184004959199704496281256997827615486277072499536402147560252955575973246013530947608142247797333362348265779004833386478438643169871588477388581130226517952135253892974576188489072787888131020376581350186190143717414794846390050827077966965952161618110525144043954288919412506281641110739976682198127157454277588868043357635345991851864978140354724732820470942188056282572764573566925116905802484258883825322822857927004519148948209238482137969588007107501463316345045131580136870477928007172105340402775478322628995207819800811540424281620460940169255358031155985653172479586026860874061919462035127445632721288435329750888779959302091831497538944269312333493251341766394805120316815013936589218642994893023323203040864522837631771003205624411913651139642968301229892833262782044081176062834601050183811319585507863370125568943963687155557579124841840597848477394907334857723032338888574055364959324420197412246441634828260687668622502524493852780304614246252386494804847093513726205670557411932247333027155569586786530602501392157818229916134852857959777245985580192027874466130362400708375837119513007013852045736994623939600212020485480990271340632352127997949245628373848550947944518773728023856751426242904949011884789720766608315836744849776832110259053225543005285339117488430982303688897318484305755126722285776835432613631565263856918557501206377231973803520565083774264337105362117787938553632620624239913180987825685272269990625647366703778586847608476686977588162382462277679174012308988676198360154877343049817492811408498266845510827583246570926747522586174498570609986018738447088744109666033938748153742800222512905398814906859303361645722905628918736622337836220639420258843400364899552137783398858973837425385140279078519799029972129992790060723749432525084159862816368304474646207514396695404874098591891775799398294242518058327432886940690958004474847163768454181140776658758992747763619801131689432508929724415738447943970438188692325113368848002657233710118435058906473109144601236486213624068140986070379970338103799179680785209878995809010723583537469361487079126318431338560024105936119344097991030323049380616205712134167853664022733661341478099360091326832243227245460343570099738017204848845892948995461166664829569844260282345885271889005645503119870955764083725576581370727400819495859706438447505840728594271729473541781099475879610189841008478374833819162111603553696256297717462841562857313426892239556992079357232050308066396092600213744770681302844327802192504189153660951132257226878048201184541597833006920415281266677814783376979947681855659079406428284113009616290066042896853984607391326469624052673221493190850924160471198465534122550108796928383129577853993664125636584056047302489441780260252800927002542293994875413108461380860651694556866077295749104410351119786561814663892239399581894484345321109526828039617013608242298588437146589294395189703475984634159459316358030058629777907490950040531260634331405753816759305632348041794543161812507203757025440629185834919669680319589833054851060899450676232162222159526632798956145972763227209609654945806981796236463594204231689292768215711968999197479758978967031417117577144668842487265878485897304990200969161020071153696695578377996676386412725624466980443868594561524657601508726244965951199302305880557793725051557406882952387409543151056096269873387019123958566864667489270277212375133444506664193819962983297446977977122204872819289762342839017067535669676839211570878245107598744761186993724001861737525558908638649144573240207627780710782684380978182149136374484681406555188638780841082330653859268455644167666095825026716643326121156690856700901666762545706965569515544987935991895249397924575931344897518984704650392509577867859472736008832488792118482112213612775174611613066211678391281846962253034278662427736941697084287750100636997549780455505116119215440201808582265915029443872690614097897487341795975846201339864891399921789824880717697771579866920279509103682126675042169882539294357890897080296735088853238083584586500925686193297955666523222698765381519746244600464620098265034377608047378458812452681545345847476629226061285506061310326814588761343110838664147568698059150015992004756448073691925931040999230477557353363901893152088433652265327075638390547416322165031917446010383866019323513616745412647601362279037163476793778366393031929479933693049202551390362134711903673204442136859354830027500770389862654173983710926262372926568597542032438971342691630675960563592907485045310279585006392872147350217638407109573107222077378717571905927934352476169915263940652142422985656874461505680604235197212285474041008703739989119350185939237696287528141307712403214591900177661320574934858090273208455808120203034219260209000872752147961363116650312204785341989824469919582573021637809507741866210813824896518390644164291282247268739978229904003452637702229308398022311150149711281068543928371530577545935528886180460937024465643814733135136286516074349130096705746714936440948614321273627195702398534923002732418467467417867497218959908085615546231180626571381854859515528187687178000674111063354468395947981006843426847205935825022298473010482763136933794016965651795997287218704879708088187913338947874511505434152879933403517115394048219522150475228211801902238363603488353980759228873949655173426355080656156389691169049009419019669287913741344275604163245421055462692471953875565994255997930935231208601222183786457328436790473812330099283256590044341795568164379201785353779029741830791000897306931647026845308056765514014433959097644333819088125866935768664398008768844301137550248809524908793516009556083174796551859269323025841992079065146991049890727054156714703957943258877833886058521602852782245595393632815396395804449456481870809634261400994552185439199597597984099891558615345016248499930016271547487788345603838396858141033933937580009855129455865599141289548936324496500979367843138228325853195249092798081280447698151144182987996735951593738106901824649201402458192358225718408147290106694527953857174634160929921882054082840128182758645908142807655664402898592015054037214615326725932807037491032910257261730267897642502383284777500606120946248956112528103551807126904345525638824359642691175589881842766382711958622912158284031562902345409415478779792929288979684136768374405795238066776214963368628703723212803169286699917403002576034428933900256230468954765029351530890998033327048445665188006454575584133413842949684078348936461761048444243225106605152382014446187494668496820508630671046481741042841525521594004244259464046989182290974692518764661609579134469968875283278864967279421005977538538834343037493988351127644886997866569790669345848372469174163789995544889863570366742456644611406506847298337286531532048671942992417855389048964347983231529955985233862071001781536795963196104707714108290066730543149779378988484204706485417709284938963481383975821133438518784735566183898665968093483712994105946684583691161622356842732883383041596728297164315445367944590074565841579905199838253441126279009040756834661222200569313739294277100953829739679151545163950756700695115627747500588694028080356114991572700392171235805639516248069096229449212002568159908314382759630220177285055012585504027595879680449071611278007595366160072248601753006729928388343878221217497691625323045833166063280261186853738422938212200988508864069297367874542714327490252782988430325989088428942990070872236864719013936320600578426284746790014355176225894721851808246394344712440835985837130796703269591708315236228784626830976739011086148062712150789466324123884934757378669915291869425301007413532857558310865010694514322237219649563889540621954573918856034300485025051501151237713796366363318667184638685816725209769350674484373202049456511890684144508489267292952366133443937336939841170862956880208856241365059141332926880473962830425513582321631711564292735416018385752939793634704556586390605079249120101279316838185176338291606569966796500983391823230612533750416348682636936859341455529264141097949032400386207035457148264346019102527793864064387761062253398302724630961243650246962047682005400406237637109288440905910999428393975276990337161367614591510195448278197724882414566811790196594286528385900383428182547011639843465850044912378404713831861050209842632528539356105795497891436631712412907896693999638047558340398697374398205555287731065286491717583777144850961591800106959824526139766246293226861867395451843023063400492298629643652777181299152978282174056200376365946456232920147899806956203257193272162468694658798476286283321714557939561512193626293614832840417902770038526124347807862203385605202646636401628701092192255625649895242171156222403788852342807759289193281484644988148235014593043626577966071633798860111358984501671682710174039066087863678498501683167250578493010562061097857475402910894147635776477712389313133305797208698019401910236703397514647046816367330067754197794978469437549022108117754551936814732675966864153381434838749865896005995067015187506155324478849340998990484889350896644779141419115441743024615860539356980700448910385505934437486412353897100629690608772466894472367832740877049260896707002295090322883635734956752583412163808268556460543514305829794024431408523926596283745187579473547868437354013379808429665563255291691416773840023425331818944118030955995613457993353495386125866176631904626031833994319705265549744237716466693165592795928593731795058898385742049037213077033446508967246153300190932889641086001930343862801915589369204051751764261829681509021774501367890983415180946218985663689796975330889411472186993814884461438156895843031881382165311386145029531229763025376781002498289457467351713525269490709968298221836402767060901191221824280578419179712201462626708621339892828277367284818782375861258619017804976688832670086828653934692344983950637410401507413998876003133466039389936501642205238878802933949943509791540193588609744091450566849910057854217349957741360950372774619794481572523492831944676058231799593056443394970616173988696469166680530182416534643711516040613883753370620735935485652459035730090799328500628572918388137005775351640102164474977962781766595373271291102502743680015498916740312187869398363854441307707897017694332893833830163521065947987863581863083742383523543836396826428865426304352048479893930280677920292570618975314616054402998692453277431413460581369707664425566011188132378243547173072276353351069632560829458023762973965521244008218012879799811741314834259433417301884854506370870665228716085950828609249912940659832750828936175989509557923167443056897538297222893367347478420554715767247396827164953237867149821519998587771350258001467758590505390125044369735528895024981771440367074232690976938856186010920284550543546361697506782316543918618686083050326052851536023082858463760453668058572052767396292856132922794615829122294913880956191791821175614534833641196460098730592633609816635603118523465516231358267090223765800580244383132767610862704086254370226749543730581444540274053213377717339684312778312952051447026321428231782443204070786701755237437670841423916612061615638931754708729301951367395385818548733456398513398787080144092490148999139916003684061586328139287988354599950705154688515117218347936528690708161746489866902892048849553394833410109650200738188300693236365430466892901822130056573790714232707719403168754229760172337202278465000341352448218400228859036147260162774609426338088740660652943796250071456125430617045306436624087383538100328002722435601502265481671283248863797789133443169132592878114227892429885097248736591982334845250038162845122433382936844011311716678243095679595063534835421420813521003634810976986656976588435988709282713160215815589869129225424065909045747348807846723462059883507053198292625348608833697207089476777748326651521284854555548315874173239882476143899800649261462992587699659061201988148024758574691890619867189519174469313687311414414400963489605104405995504441344824222497457897621943755050679296855986594710562748068449110126656629614291271940751476984934437848770369181132322956055251444979892661961843672842705430539361574335266789911817212619624730271666193970184296179763443670877483007852600671878763662294498895660999152289684562637889549579986535176541953852380857811956223786854228061276891594429693173230374324181807746334627063133418658425306886013904726943216464012906212283680351065727338529448003468173460791415576544869302191870933665824756546250595354473461821531056402639368023203978159838365841950602629985172155076073204368507684574440799707371851513792200330571082367638961067816777046079894157049050665495640298962466130394419403527705175317331371880492986874252576274569898867557353102150084479465428734145012380711462988356951487435964817393503037624728111250682473197412344940378039612820049223660530386790187934229651659655737544633427801591587438182577520159523049035647460843251347895741572251868173053436109520055173558163461179480353943687869156530093775363701093778888292067570372993765126361117327419539848460232992334597398849156508884301737938461433249286442221472337270382986257076343873345895177439207476737449229432394804057224263761370233479906834928363961655384535090250094464366267937058018057771870580351584100793753517642653340354411006606686501974669398902979518873468677646478673868822810469549717844447074091323127533608026584581709758696823268855371654101595177595488779524346064439779153256943395313512746806980507835072287558818439700595500043216831544368362771499151535130454328757502712450441945110539558396540363230611487205276079622677375512703586951827353153392744167886636181764187635055195074059005287461464784917851247951579223808258151409864810048446038169644789081595892799932977871210071105301475674285048481666381623187901167010261101251016383093544901689379215279569870388007056306902380601635770355461948332538478909714408662434737594835341834405279599198583997079359384818510379160669816772210294246682242744599846314654395747443698118397972455225727340285773096569280515896172288493940382845868691730793179706032433718154435683384798304930319608639228340288302955861390248968175026613826799662015042431220040357565414690152324312240614652656355282332059771376564129249852822292371540619734570779050420237614398079419247296115618306733087989791391546813002769689016498547894570701662201216272921361997168396434290666111872833081939084293288749963028959370036277494064723304350127670151598119656386034751627381152877927898428514888751914524945688770077215932000693693358057788034722939660660454239444360861159734827024724501930597267574266752067041644138375828499058686256140697483068709795420871722716627288128758278320844241751136197605600323955046344818823450294095146357836842431926616940783736849831970069171541488500574581118430457015520884287955031135784991080658254503447677877991137756636288881296756354266382714424396759037236874138885218049972363580779238118867369758417470878481961519971280133522639100793390471678401026256630413924932533733075207217986317892107387152883178727932077628060438470470112375327759647766316460590351418226202205781007272837818222870396079122980638576771798359416575357479122217958198371476028422755039948103968931466658989380264793122373846359602393463843923983622206679880957851769045310319945795677989145483264380016499746305223449578089619192463194580968864353094757558660266589131396353500466481933258617596771180223414733318384017594197742361654027458345617144275167708870571936890557157904757736699857056570732233605548158232089509397432908617036242082864969282031297081229592117802683572804921905082056900171603738818311156974241429379648498586980368595102099731015725118044507604248254195080816485694202674501667345579644195161494612187625355151907523794191586289795667371976520794705543432182480782210536970395109248375708442101487126177984038832328308607966801060296428284843739686064160469847288014183280112428808390415635973311018049047694789563275471415546079381788519289074610049357844626212994311463053134392886116419243793375981652991683621131894402816266208839651988758209131781724254081260017801949731522977752562050371011799419098207222450034129510446729942553270401184520156895251308189261569539754141384583544725292207867409301514942257179340077024837962310990175590816374991521513181839318445159911710744540702194408743235358679338849232048898814678692319371565379451181202307537925902126377643772150557846361254603698779678278104142771023287212900024497141331019292899133738096742828607977146294911246028544548544826325312616697959858381113724444880019309425974748162556226839507230577788221824010652086113803419566906227390211523261938884329967683310536778623326528750117563474124068002952753851066017527428502805032152209977316887880980507862179724049347783542053839118508392259545547793802018185406648381020292369137006653027658079433851810865791317463552388756329633383977410667620508861539148597911064168265109499420126137258842057385931429895325800064430264646387586952662058890899008110947686684418598450984695188700344755875814279080154095094264889347920781224248524034349816327825136090889340629622824485160017618418195475183069813537062468567346437798347374120595331348629252457633823335559525826829909752335739554010788693960273889452088211405241461423621367123343441350854029526629064483556069743957676047629155230845624918080887348992867174570002969461706095470382924942986306269925034464308275470832083708526132474049253283393216031737815770579343629276176260372243692437548711453666665517264880977159724270775372120352663163998264972734442205877506996148832669464153867368490632340767387042227349416127371943964420094517868531145314792028970662143972871036907996418210493516237111294737706476179979842981313586912133971595288385445403030900052475458142588641024671562620280902344704247366252480348357525639245081056730503318076016636703353230041160938029816762449768212025820589541385746076755968641892712569490291101911444383297681010642845845078773216693388494160277776386009913625318251353176234202490840497679882130788155003822662856299619532155528139210516085594936189017994899356272454047956970701900892450999349749077598253037340134267304892164581388525876364386820137776462123785292902876096895250601887065409985855387629509261594741270107465920968531180136779428897701447357860270115334975565896399034051801092663453519891204245559212381961451378000523606143154430034755515817209480071046399485246555674326421352446215872728925478058102481829807008854618769605180141622086092023957958470996868285625398883353318365824926464769242911621143316641212197452950650270082742782828311885298401191335802150265075011160075530210932738364831119382586313121364265871169374528358455997596482878646700946590099499437526826026807011171867171769708297229798662049423298127445651267596008568410600929588957835959449526567430824000831906688904123471109695609932913347626316039205982656896814869619397690200247634710696507701283172406418560559465505459899279511581284740834685494820156388389777923748185651187703835881232935599783632001652383909061453535008558510163816664156492054192403934403733967654896878439988106701171476430249775623802214812958876651247581191697097581432624587307530645098304505382634598103264627053844132228139724236460804081737286634524580289067808788009808994490257074362568764915012382115661556882345528039071916585533134585154677305218609910284778301133672326677008067155686238074658632806349527039372022986792396296214504604698290038275572134789970459541145808068511793625982921007551245347931253628110011072606063362134712207894787485219554469037345278289293845394556931739160684602386476584865941536120382306074835430779490054781897448920246877549051803015840406451920328427876727498527774619045990495565784882575225195256559633152600464050040113254363047474871754997982563681539766977335574781789937471999572585572320141957092122761774362931137257289084123472132925079657225282252958264474735914478425969177996255339362920300926669306016261239099839753120269531137865609170998114307991111965994151132760062864778188971069649044005819244211159622210401088437463395845498990189563554510922821894907056524535024668630063803200142629190426358675930297203999430237599573635516505341792313888686119878372749328242913660016139890664728230221924325581639995907423430194853367332077305980504106642183881023541672206030457577242285826614082404097692386031885605048941901924442917098262907046943523411618303508026258369622081684909671577598318349557689513487404152462293143315128850246980267577142213092741860036050897952303556344656319554084015541842648610674427989569673000785806784677009657082982121463263669795188879957913407000986605748578824730691892681793808513313971457176389241332631632739917387852566066060223150032830082526882823636026282649828763423449117015435209491411888731927456380849578477165683758355817191603233472442711849655837684453055631038323251670032285658186614235591379312460447909441583659914740552213589103721229525247948082546562239483657976458792196104872240317925311121981780154816823270714921918796491645799040994633638063529645294143341045319872286300304985071223871189573127043710247321521230758255207189478826932545755790068560654980548746937522346551632108747161360548147623152146402286187578637885147192236009496475971310114212841859336948617459312879564111664593998330200154525749013887551358464244377744802678840673575712481712473755761324861103885756715401733850643649412370989445035880451114521234449906398917346101773351850727003089988647256308094781059738901356338204296592466866324426152306574606920537773102216544073735711160894330539175527418206238976289833726761520814640173026123465720429360653035874435812828875858177371800759326427516276034781025738949379405044637816901275602364269966172378544456807606184351047961076503228448391092174380994007822389655265425899516104670210497505729881206517118632175337561990871027637184429919358504057410420113687566862926790980500620051548808896833987661289237637942617232180153031210411177209266240188339820423159588666628466267862839845491604856836946788089843462724183214944028624052139551339278240775081402132773314963776966707588339147193983678138860087668166465127889223101325903898905354267891607663198145551282786658276419360637829138165911676282608252587971217654581470887039785300704470735154103441099497762151543575571761437532594622909920181278662244659694150541520156920755983684630150352954456718082228067523306828932459602101554983774161477229544491333263044240730646023107523437729071391963299431499589027386741014462224598165137899535153103606554323527463328629757778605678239211994890449230553437812642954766766377275558708304667521875736876050734783298144616234305614313131419827429028874312453568991277399915670651950585185952091087281048269679622999307794733090643099042813063683075885651082898774306488896963417967527133567177434498765709461378696502345873936339120283418874951830113587984109915505086853991297902657117439843517311684368590350231548285764890463345070443390627211990360322244101550637211807593623590648655989563238639857027919761246879487879111248835091302776201404614705871381809746962732574700012771439627677102735315808185101882976005208832877998852754418051624163520365983627835105950328672917221068619439743603553916213060868168956384191368117024360779834726835467291812138840540938921922489939008556693081753466452035027946473236847026691739640444236865968125558900428751376902951805967356634728191932881173361607501729371514324885391677388783138083632859689988214183270141629142553525522955375826866448380520520714561121220348916589320479732079741443655775298301447921476015636043450698325820007481059646283454796493393959014694954678765637395877092980756057776790236757284775615780702664039878418805171584903591736967429008702857539538331200996231721625364244219125917599536752999952606001533467856785741445639087139672225723602605795999348545288156839031625949327116167522713112587524192074578828729613873793264399501017285800934709267217247031408294627828132609616419726508471787938256484725180479201617634565505714691937177395296621292004500888035140722101533715289277398501857369272978260350720091937285166436005526126408380983540479779719530434347091384595797109827809257258770885287768825640666228348596740894837481313396709557857177425268302149293356173164736544654303552892156344654367669763256051793098748554713456657282376717958588077762051000701527992293639288849235426677111241538289722621471563911283626176552458365489698007680035114405313552666785949227136592626207578141002518666282060296460131522886613214805117904994227904067123882434744144807430937115667140692335322279729858411584261532471540119992806713236437908616927389195396825713122147360643722908606722516354956081486881379805984015346836515641729668470702558938026607617001741436727929316004483159522351083772564250473698748244781925469476453674695174393032375576017393003839538629084343396485272902985356134985067919805042894666768550598680465724677996111461332495314063567496181101102552787057840410313195316500911936616345552208579961501565114611451894459117420967355072393445480027716266919173753693131096872925299466579521309889769134077519930292392280343872672508164434783521759150829675091111364442869484830426608662117121312032481361522033553860102830411951929977976008161087101524882742196238469321323242667592451042290862798504179115206725905294534103444446462070826698888540377854605654620596612081102254444446264295122689458535103491647074201070965095758082230362599920123451541253356159814942911253599544622166768564760943063843511200822812028944087749064149967491823857653365854521691967635809792558354001490358685714611580665101311983646957198569638953057436140093008853320783713900524996912999338937317217253959952416409979036615998873171313606345020721584953449838912494132449040512562402713910543395605372334200671480126840234839187574735363449997848955968076488645679984725799721886137719758651706839959562071909551235842402167969507653346635717751763675924782562263233307811108547240424946811906577694228523253681663225137296457182158896128920507258064581335376875879736854994612160186973139309737149686789888769765757237541527310011834425366356257239534263853471066278018948786249178559368682585131493004786376345181401841309693179875025594442048481100915410007454802602525787726456857876753987523714182904271573726147516333516651717445013062370253385449334719214027796788897342241142836623142226195487868657301239463876698334813535372044381144609615727065502790498545815260278542010485988538814774341152586473198906238675824393295213572449922549471927705568466569939748979337232560027470917973120604288360719451787684205617848303294301697708522086663993455884263815395457635369404603696517737151546693373966384815047335275591414818044857540165935200719011771655609272287175296548922063096718533770644261313799606988114387021518449028781745647140119144048785767766074513073145586601638348003261334152616125685341302018082432078960030939183687216957378150408784180564973073178228757468243911285176675833471265631616814107774762309944170002889815700258295872398513071444661701125870723161971597118768064507733164827355393891677674043711279466527345279756674634761488074309641530094568038022043883804814720560058882615494489206307139886739552617229155040313047254529798343992118515844967381308672036669979134066700433544301635371684883614988198744870993397218182691863078854682871320500297155433391784221382948573080571330680273298418193336322392171389866054364692845226257110348602048396955284454227963189033943030606724166621525513967366386908040084537261222780796284602322919758382214835858551111964050315867968029108992479627498670136264798813413291947372136703921181067151129605988242944910825305546944554663502361749390235015606465162274624400767208837285294729331392132935284568865533892044541728135756377173855576780303314342612302090449844952350950745547873777602031990407878180652519688561853371265449175251236871782093399917627045613461535603195061348714981595206535143846642441915619403199575834533370759708928838416234441112110929236326221520120020550448866980555167079580498374482280230521833983842365376122416927654028345109991452556017040850435258163656087371744689329097483547253354513649269250306140168929258861036562820137539001451087269388369806201835975225499143947237469245829536818375880667108764828660179555916655456367229728740706893364095109451788740811578964233184577792212624194235161758164265696518511023850278629601313566382531498833065254789676897029924563893918692518452489469999490177676652034069210807355779785593480879566452286409896257270179384660344718805079921534473488591837707104061937267365008193200311213871523403745582742964719051645919390224621006826621485180751918712922278858609642118302746309753277850419782271293305662522104035878284505328191915798394930277165834246566562064786822181972272574874037861542130740952354414134405754155517847036770222254021982264191974926076349692608578074259049903864528121464933393359055825052926426927885633932256362036970313549901948811425469191883990634473981496901264050049349140411589263686478549162217926345893029176805490475133636838500956422603003937571747512761135772373825521131965723401210236860897018650430123028654709487574240234863389462845023484285407770871170262877325402978810369983646736117575035682151658366488787049187997597617277870436496907618926962311469932481322105825705786740107078198894987717650821868818564514425511228699324231100732093342396145285918212465698301698142708917806054092250073435621955173340844994818821248737238387308640429345511004277781017447780373320559260734164787314688298020776177284998914726726291919294757500644296263795915074615074015313243740230130084178620811392504931747332661446374166689674888195409554602483078314599104897961601409365974610845132099999019333454355869882684333917744754832459993887901869697816868851831553066682091171909863673858757547367515529325747290117820749109781895460505890790277760144407641829246731900374476367711719795244230981676870407574667597184641774161553154726482056977044833217103272235937591043256125660911152817141332535219676038354420343882863982475474505922037216437024423184248569433927858253863365157560283512411039926318182121963148951515957646377677648710933206754241815318131963210686482657122363342932977639412126548718992190142309353287324685564392579258980779167587469806762954328395505538826260014707544571423844341389308248846622570210218039837803375515068012915439798458950137719156373991374158290216445898357821360036078366851227853637344311100068273254657751880128363773671017508793213454454540970898226271225438219311863629292854086156767327451624808352269261801106919987966781648312732841778604328429473808759808170986560978685764742493977850699588277820853799989727001069249587100095417955019975083056676262063377543578252846271477943155465628485750106223100507220490631426197923374933158542555553797053966117145224226650841933659015009121753985575934869507289978736949481834797866536586682585619436783587465714551554388080050165599227656678536500724318966573734023716594152281419069173516796683661496211953692136875377545509695899152811671978165942376837792132107121505087553196873497273154377274818016428064810535391277838103937566862082242946803610400930018399286569996931955958219107529244574766693152545397099203977535339769418320903553674304182865301440111826120405813189410589247387641673012809595913643230948696198553268614998298493088107021688195146384438480021941069113890659549324315790900799445350694515202613979824121010298155978576129502885208430100491570390503099271393136651179740327229709534874395180172824039127157155645510156392771508222617166918515578390522055116310621149303239228509243764045387479827137542670834908098748356145045259911144003740369982012448886412716782970756844433283291072762847195428581887796443956864105745246500111548618562664314081926635043858336328830330069271809868442115892738321725006064427772510358822833178992894569997312876565723221016187673723073066351753413887337285545400196947688954934226004456205271116011211465641916970629861241384127425703935033210403326514033873997319083143145344121060566579017292085981521532186221524717456076071803065651732330521296214237246448804023565834223805922057852070104497833572080808726719729546095618367173040347772313388821606024387105440296380838595587652950038779966472535802876919704563400155927158877294452790741192835099878171051481123598731901660757020536101497173451807570037483006625477889320454808281605821619977859126680586902453797592703975338671344559264014705126474566978256518346414845966419857041478547278736198335224717632210579035376323480703970158459612076189018589459570917976390426232668739160466658019983078461141806836034712346277980793686113591289729817607120882632996047135494370861187474164312375190308071900898696455748392185666165594980184359053922484485464025715606007864336231431700278239009455656109068918461437515614002391233081643951226631394135789843547347485019915818332359379101364754977884389831292329719406025216622102957522602781698658060315143671878647319438416109253917556832326644768891451523714470566054258012711848174912886831438943534638979213825079946157776742663360029032950266041997809564933661899551462578749427843441752330784727147920617340838275709510160124708832439363248383916191131710273934669661225960814376246792907667360683117006559739133437841581796305554208463371392322184628797810842209273493435364025558582985153164409691145134909284425090552484999979011416231715944571398955773224955982318907345428751274123008777246237981111201981197221057795314175523795938530859257131014728734168022290101300489915199615918258033253907996711320201972201110962402815742441178152258495778504212211116991850431149428364660457285966976463193690741027791373686514054896038877357519698470302086287149434355543351248065738564762345256440216120777139571595206983206794316074608410446374889882395263097684386288306623632693782432718912242203848510812220429088609801721987373311641103859800051114966366021575588384132459145716597720955649004581984130621481143647451188146991703173387419890030328089607279925712577080055968121854583275767504328620572768416626785367589437339813005969917024906106956294066565357514618790081785010725733543239258913101629132209187085022242700151947841802196725454251685002814954259524442934488669372779989903363086655953874588285063441921169843132883198506101762221243823418528177266635754921943616657071014624798787041299798629751609791962347598970353230757119489113802495130515346472337993477548533954789250106157171304582659928415734851549331649746018519300167979414160067375142958534889962397127133029934136033712593296681146699574552122877064663816528576932797235363126806349555554309397956279714673036899439267478539754975459956409200753341195666419882715623483892754812707998626237405779214419645063590209923145578379674763922917955274035206857766519096644934389897440385426041011461812338052510151488686127043608589579648583038142526155069850123804082727540091281368971536450487881181711108962837226757494136051515433093414259277028657403690911689262587715170250516003506893866099789472561781816426788625060755258046348103145038873288811726125673761144064410302206768108063472301010749057056701928856696027460178247287544851822196849616925339605973434173998564940290903340667820337180831509940195566537195976411139973377428554541760450308527466295503763303395423518651368471745586471815153324254111666228929220824056781532903594946173996072006354496836234679254728363437349230897026501942298966465651046809716318985923192362822506845778419663843547157772064585637817000943388070984339604932532879872418118492359035939175572747762614098976571456172485766584872578482293956108849250954940541930539972842151255140713348566170747497110116035030023335291400718110540001097138385078042116763601377958672274661838263168890828511386311175079779168391591328804923629807303205295809983833570967664848531381264000343958251352677049254171699946634374054572949554319940496697804880412523892387522076670637271179205429314727456190008329215617671741543440999666924951590475477150211861417810191706739700169249939426070375420443915169347143386007385511802126184486062562199169426083091157814247644788552276131968909109636096150947590117219962987172466328609398812941614887100501205828158507994759825367016754027091417530226107769290317629892910978411907286585077826536073708361333638472166016164686007870776385815487748178950965043368947717969665713939732176153331878199601548801538742163421704092989628455099368866457509863804150489937562149600465766197420729501029924170708623057476465183371528501848942296894056694434998913709083918212917392246818450677697912164558563772187670472256326465169646436669877654344733422571121796453373705274378357837043304558717386424579816257770081032979889039888324604071468021415601426698800293928442166534788448678728326528080842194497533666429486558147472392981040564046623697387733516035698425000344756337245379490920024536330036227245330266098626593966343380325563059392174594330851731174663525359772533312805494527033165362563412234284586388687885095607484094081756551996081133345983667938014291444270725340911665175460374152738413341678464332527101873589518278292555946628934783241659666392482662879149955033273156618463768262571799984099551054140066234045824435540710559214376879312550367082310648701991416725114706850272506016617993429602346072304725965853511198978657157817224300775406090015705265530083692739761273663163262676366037445588509927687276684166187117919267999362454714027736591903568325750044879734737546887939602709791658918465192849902651785894681017547685906296842965926612905969020244933603037585470872017933478230021929592656733579344060656895169422549852241665186311870751934909622037459582229604141974383555951998086617938551433478637055910207104495792063642019634973544936031723629463781825113040846387175142685172287533407673260714921618559477632931681214160980472019519183571954304824047317367858482943904004834997667713878923587489253104008632535356989707581585233074806557893890359169923795873082554422663781881594749916433859005988776868367012013496795850152736426738752527786116926637188394783346648603332938282128974383758011989940191952483185222081379639698683982739563607039022713714107021114932450155851054546728283767960131505599809483105422931086701261022098851820565482599740460734698804740470221614014224736075909514120585701428337063032348418249730205754410471978106378478994362716068610062082923986690495411068014570701140421086630085447827185203261335745572010731563170979378769439778775039373659475741295620987909529261259187701150917676668912973136664412790144109444757021255562710492251816859705335561697959218981468690115942714878798354980309875746800227003952858516569272169739665685070290829063744308876502625994309978234939455417954475595571050541974651310879926717889716494102046189005074436526416223032919672351658553315765899441098707159280400738840615393537189948440835965714940178984610174687527197615438375203364429694824722533245048690849321443170049429951005373987798953312950866342571165473475586290956937120472312389419864686914429717397298530545176847996586078720935900424057237248944476334929099685039089949516500466870762207175358063104151761526967512990767756744338877241321599446480959455775549285405054204601572193780516022820319769813257480960523836171858418404721295452734854173359772705477095434241834745792942531424291920409834511744324852629110756130047553461242979541628205526618472069169830551704479155474078622930469603152107379645634600329413817298129822524307019541926687985208666984240559401219616891573444887989317434359266904386807527450993869703941433432750353736291551903074908478321688515540788900604556905676453227026727613690045477027299296678767319179309360718252604749898463705993622055005483898561904267329636125343448965906030000078755633482796547696768730057068376651726717472814078783564083082268044828949589857271718638288851234360520994250496078763672556401763215371704470058003510574819902649726884451593901811344806054536704424083137296268389702650762407944101955894766565514689896353347108322293651210822072369102263221184659201999576197902000991328537007171518629867256004420092520119917208245729175735162854056676888276144460789007134130462158367736312707152957130273028495100569102971757377338081458473786204937033348733880764122566346635492546279524255507400139701587390900711942817655426106176273544475251101826828016623958892021037841150181971185243864854251087955019705937418999515085091244605279554324968598514820685249910271509991804818199228959499879937069057412325918070410818847457068341846116459668271969491664242554547921505935428812906795717285485696519517323249034273177933630572696653435597958498614910349389415469926441958507674283120089674201291583181350167482353918431027443755948112676812695368894433462599096181979279980998600454039332804513964769581922377171593526143025133409229079677647036464047489599016767717343453448736145291975171930001318573139158044959412161976567340765514789301458940066604645739700141635567724939525139772234526117953095010635806369404142785355167696531810680478002793393856437275949430246916955047448402187435134686514015468958118575055585166145355569652669760985940896498593873143395284122128241126542978256104268433559528706980132403785419334371171208721178909317992336913584887337264366983601771030318887899188176345654368818271550798898730364108608528652235464768623934031977613067281048777172677133119974578616795394370370433763898767920400800864753065159969512552426911632354614197876129108891401106737586075408662179030683003946315689058426897190685607367117287728315658535211227521853116244378786100618411847094862501159987045201952189839386651746107995857606027152082585028487296424183538202785903420928511243038982930345389358458257333469324192869594875443606481831712966106454626037603217860065799072890833753964889172167109131360243834532900802391536424769332976528752058622433428569546841679956546878607643522462680718028310178407297228802402904102939032763052831758454827853939972720997207211306541770226008715547203251962499739573671855462418214016983324225870296541048841423864323405052141910760489528693582420933129578912842512088657242295072491849183578020256143833033329470978975719562009022261269546804842254496181825286619932322369063069268048526011845843102412328398304507004746714767880707199145510826880282525652858951003696151022413717497202069131217029999543566814430499016738145652859741428680582071819930617300156931920993429196453154753901123690415564032851777004649677450101402281338399070481579409980450143513509096157028184884482196132403244500583921268105603878380375553215111207076852148439416970187439071646355685367441622749256355827719669396254184338064883883356012864072481675446910398803249729705753424770703641301671670514574064477296868874452858695859330898876953930453493073033477299845233895191028006115869148434020336533781871950158319210748271932284511248781798427652440983499333230041137677496246906969041459988269977980792051934565299197447115246635227560159819308150835510373120741122342994480091144022170522156198292219944799292210538036101445373266546718395707231449769219537795078411765830562138766468442251417930699245811920756259702122564478107651576094883430516872935690836097180210953312191248256899039395027618063265846706622655216929204066270985860595989129333248813762044367168124539944289524831092429516581704936283228538533309068041416793029916572455085024749226256697829677636226778861787721683300593518158519592635086080434479804012977167051379541543479669573313581872344518506226193267233142562212598142963697906219284094910203068249455223040292687133492744550705788576078493554641080823582650591832914787481110718937718460155582718745278772035714361969727724432533309493301592314444032794660874172967113844085965414951926857909599882050893767219495931907520110554409860047050846459943856647845444111198010805603972408707285920897942571818881524182787117895629801118323445031548648010450826314260837622543900157730467393212272367140384656915044949548447457916212340360677157336281693431668855401107029932656995542641686144248035333442568637813491737058408649050414304302637630244234556837836008366393216707070627548859980348041639306961588448875101892033942803735838354006615891356843616774294409843784422485777149274401104782651142968527501122265596399540427183748617949071939072931190216999005422804202362177788225582839224555893631087225217256491535829764477911605071424435368813111910550345283521819083584935232506212156488027564155544582974121623830954564396726856968655419981081859273764323072417097276595442948673171572124436897977950972962583521834617817081438527960379475867983770452147440482434999699149631582211822228184423169147177218028787500584183873291958398798765380003051425387300638200480437386864554528889632744442338963796787936151641402523557648193609636554211669121822403388258960548698284701880260153562253358769151471915720617130498739228117129516075757915283398544768308009655551160195199557842716815224685041537033639945556767675120068678435213069187629578151866185023514470400142117813284511637004371124143253999481852768377355604099306136488459571783634276714615300375561735492183985035250123356489113869436418997117021373819282068907580017587969659354083054721533963535443161638269068152363090625440149516347977214453007956868192431749316066572211875761298489845405391975422574792030922907373516391186640087991621086926308860168128829882271840124940854467659546496234929410162572250128938376244061575087263501171641887407203843389652024002389221003048701972036075593552697954403635058330339223835606846335449555281875510874045617696620741344551698421836463698089410032157043630465326071103824180051805954151715238106304833812620131900830290807079549542844230500186221367414515166793404490616018165743872935685194986499019869101734333513665878674451656865966158111455463074413008826636102217393110564965667081990105598495962156419510339695985807047006096771558709873432336126470604705745347463615550394373599840574487911137573022430017793988826213314770375880506146082436236921433650094026032189120072517061078829864132219655093269109727127610752431510867911790902782175193153040966436645099830969123470150687931634168198658398273395545566719133640332055661301318294949450144106723185856673364142547379479534356584771622222124794588287069107932554505567298840605474130458631063317948660473389165124263510269490426336304777026218817453114662790272066936281133665634844262762945847402715340393210168754454232612131001606395421883718189849093199605848461142488028778748126805745437464329189476711883032754785105960855322979490606068589888023393541404937569379866732286727858093732643830856346399683128864162623270416154616325029107086591110067768550410381183786854802867010210511827348555279546933499292667725182047475307876414473976281634114948139447330073606156967288723011221660568077747720508216512328440978024924321409350970814488600117151471553643103734970817663198011918441710557609002311574816518857737482117053759909442854246272478737003163530851467816069360413107426995624094513224954257333847130238762614699812208335358027684842439844013532899870643687037129321071726526681618163510700567292662152322865049331919658388252263390776799365428104837399585761506926078736605400645855158482557164433074513320960603228871550801301526992505692936169873921667054570606553000388639507866870547310816844811299290252642552069322310887329371104752495963404266920655138580400007785403181979493482597722698688440733949132416673224202834197207941789663107810249228914335875641400416809683685170561243693907803869606810733907092930259506781007376852861245341087324191416624353239657611013469683291516364070090682145432283964881749337954296629693711949039493509803773464895674271438127528447880587918661296558954349069780690846581821001423815275054443123231193272820214876270108494268503077750953486631191114221817651170630642329445003706791067831714588362797821605426079363430571976109357813051717888887435071873579100307560673625072403731227179230942572438585087816705202451862705540363559393149257684179686735452406794090974132026632025023364206785971437129784910303905772627265943763808687096201269947835826691902428484073385090225597196224767378228471724285848915535274857542047319612276937558570912076831671630688058627447959851166791966387958583568689397027391575221655668904418452208277638975225900619387302564248620271758581754905760642113967510388841112480159061952226096512391534889480053621383146952424041040698905069971070123905202193137119775229267075526553183755089659549814780560728988812838738815071340508250356439423366544676495193182275144034022623207458695301754454311060187994112648177815371498644770875493571510096595188194421518642095458917606279748640668408099489502013471635340428032299227170649220990680170495935999304576828530236127671275915727382390754450007441920114006260761211560310891935332819561828883580403947560264177877489481804446242071924904258746096530304032180358212033382246844366189733408111799146629020361222500238879874863685230867593213837619682491392647068180290181363615963119559074356098382128131216603223048958324853850401755902276997766872367379085266064820850159040775886104040988232662527162636278032258649451065283969216226983939509010916219764192042189956905154505343963086560466704173485614093984889370482750549764911518001545744416572485648843926617722080085727126038562755916295013864430401899960764686961200031987759483905096376649044508020478878591930399414566004568778051051491333981268908411582272569777612762030962057498297757349362058335335619464026747061499514270907995815779292216639839903180476248103883357697288513230604166581121613860888993959456960074230934590451866201966030881660968863160310397629086851494377130010894373533090676372093296282659883974815483625668977338047664892931049786368446253474755762622455759171764461196295413864301986135663653322042515522728023626576956921642820710888449233149199413650000702496746203404084574710363545085695984200966444906459787183280304054249945146484495636105220606477407794737898282253188146545355134900784661918046487726328962040835016600126494034494769086112957130504579843603735962763780294506089581201252682658992855474617813755837319357091596781975475918554195738883498643396226138519078768228035968843680371509829952541433133850565259853170378424747627051084274009092412676796753149595837795626677579467669287798269052564257307938263466677324949310134564119623825312267355023741327657291913015564916413621702027265511967782715575764953863266327128785597456168396085643046975985511877823886978722913254727767995066180927282120879166515197715480545858081771816229001619585830389613182050486959385743008908578867857526815190259774876991743086169134104669314411595352310360689545948842037852464304830905299790204646363061050955767490237495732392048551579030919417684282936325383741698437580500735564396844172457021586686404390950114743017960538127636202511640397429180006940663486431618837539391437702489801155148646604200015130811241146990797635742129905184691349682029778211673770090701684923354862423551435377610862099119457951209250701566244013689667629423096384402644213282998185733335406558303858521158267421873736694952600995653009618339037475412062560457281371348586135548428709205941757403380742328108807121112838432084041528216634270713842802169944153842162664190157218581598966797692121790148788858334701515770004658110948723605232756085718610453902615363554461952901602448096251303994863811351353951950118003136605988352458170013577029992718463549252920083060102850286204888162855649675017195110671669055786586101668460307710164203404513314302673383643644513265965464862431759347962930929741615794992351266734974003814580745595537434708274953580140231955789369858781678866206301214359281177074307400036763748991406556108493386363043843113945563203674673918473890743533029794948042368268479699193306600424464439229532922915446745076722167640397100499297511004201043745956122035678755265876097163581821872020886590274807010759962514033213657911171615291656095551015963752305748245925739828985776636337064845233794463729598923673622130756624634269685713784841669272374439795146190562706798864356170731925433376955656247036650721109639205405916128759131074104737041742111700032352439197010092008662765355116646868962317868603261779593481834289845549823965918259206631366614217450585722510934908369248397844292813598508810129227440893480010037813730872393306766444209144504454811342468175506546626986070471192108382925775687775726544183328258993229488122491765829958270223522112117102113432709485746554319606421272908095508295518030731813088289327418116547522746766341100027225018860992592106716582115560202032738114899633976682316988633042481550798225655151009309515138178174328959015921587060236764779249976262121301098229755763997575247427520541163996839642306109667025901416488752688435823781204900096741737622921375588521481358480905656497251494906776912454908417708953668755262867328584806426662082244495721838664339376695760938187526683213081186369715629190822036533239350416701576358520023352133107717195397617419664640758302848994037718360538583940713136387633375603753303016906735211812258932585282655656344879879850046309236876988235514961242022701118032573527217774591629133363328039950189201984628270058252901528487273590508628457402884968099919454569916849741664861710979647689490400238044328405462377104202854863648053344194876902211290864044280547255578165352938114586383085696615690678550094346911600716356507991580779054448128952371656975952203206540232576291260881942102714452458968716523782126655121223052208872992679884166767452082194790084673461740937601808796361168235310987991157439382378033678073527388303611084587070409440516885257218892355852570260947720312943428100486815020864873429136847627006749644851597810252585370524775182748002882353420321782376170274504188072899532390591973236513531947191305871802702139686972433365161058608406449763087249444645363328987847458341808404063674902788441662564213935440132968361170956000361360448193673281373352347008809293138712875066545108510813987763311687435106975494210335513201516224337466264189346699362679000182875184387310068218841309466907553547346994254514711257945897391604124560231021512028882093922746375451802912045264787449170825528539530735690730156692602006141911610166036435901741105555611837796709294625308383376172835305098726672710445844943657868281826761684494678631315306627430506316772592097236271845225576037133136514051801845024859679274415840879293324142817307131986471118756006809931282679118090808686389123572965974794219433663346492545881001969492482529889389199006638766569687579232774451560243584718005025494829432717228638055046274051262149622367467058394453991050004273742595281355235233808299458106553144484656222458561973348272472865476621298079094458847197657244765273775943163796485161924836965415471706562602463082818874679335984913807895595014850177333102045049912188395282653815304095102972573213930953676284108256247464998850752456359284675140247059833026545896723018084504704987984138575918744288542445911244953189502190861132629009938936665369789379025814289995882971784877888657096757922476349956521456375204625099633979749677013305650606215395520466550285266802942419813677380517072678868039943648823005972465643699580873078895717281790958142363098814963116871412532545054168676183199061885340840785071287714545709091954103647168943474684570463859258794771985394519800389516130146419549245456637732938361193461011850753703479012120997934396129567244367962547716498028038296622320508570018104274118932861573385114174747449848074232235802603227003087401283850783374783101060715975293948678721791056319622874149460095874710739438085673139893453791723774855842258973085661492404808439185121713579707530722432339835127757147266588300075588127462736006184467055433309116118235259397443941860740497521776878321231176925249534645070175710114728228332186362215367868643675128281261654976366897785160928596820891160820026249415472762597024025265941056824582416454538657256667846081809123256459824817498111745935029462420679175921733400811077213165681666225925780619241128912470133659569289836200170433145010814531517363079391570278526571883094835826535990573950374596030031061593418807608605989125741575570116750607662266276403625758301684964009775832087875222299717480066835611814073567958911668227626094110708531853226616109972230082685925082561596913763231484144120942608279661669166290733929287728821086397364017795174474414748583369013478619165382355114343650952422621661125677748198262064249093018816215935407269217814512345858498698661147306231468932803341264347741781291556066533557003183429832244078577341800835593964977005502006787528527785389853742530898038590287737147919328151426024811546778923672445240766255838367946649121036389823153183604640762795634404553461593314935330742167283602607030719420981160901786844444083068124403448001998042676258701393239224442782837620983910797162499075941912446472761776642614011699607871217269117852994631994539068324849165186637021351237209570944213040600545682889556160884125095090103312871190975926256149013106867559409716003990260863069388256052938840297831324336299697944165209291038995779684652530159538793747257292337716536888549758262839358771426938088494050875466140802353336653434430955611059289753625538238550515811891386500189336710191816755491827302510421134865198436328208308574524963618111521150621926656401759674304533380786352026796675049147703851274427778894567039534978377338898931092861114572353860507575815990497632259208538550975435065538798284798703336410924870488431556239867693390805750390353440596590350514920279050134856780941864756669529798252154602713952968227098137628557959057565120464809495448389101155368593605919687115735333340494964313904404923935168711750065023113865002676565892846978024105786072265998251961829383973773450440205158641702703837409114860383852951779113185126824995486887842559138364725722383002684236139938882283639967961094598922765045808157726098971076945576480980262941328230289187508517549972846491981567243772312316645458123144322535444132761331003289129939638847836911469073591626507764147303914137512533452702183104953396440014024179822212316568273778690752572717502355981081716796031793332439344347619048775902290389788308623255805901217494054030515893462755656139639561584948797287059487591836296289071587564583406235345815095810013963157974234024627270513506218318376812539004520302878296689858268869333466498135712558177351805066171360388265782404782428943133514183758650874585638526341648588092339615506728914659483697761776664592610911409298958125411497014525342139021399589827118610160683069422527966859162867615092091431447255462539722289217366608371292258981744616818543939538569617221616136171669319507803383606658065974501012860350901474504906546819374935126892598925024683686418959023529321078111344441951945278345176056440471987580095347316354735170949153049599333483922494811047488871632652522935815697381601254524286521798258725530930333421854212336010307987763861874586327768355565302018559189122640554175888249590353118426230783533446487297022255286125188551192972162682208083769694546743079985268383071146002901420629304886288854016553042465672111046011614352226403811544668579639468665034665416989440884814048079845895924665204002600846001653298253506413476752199763102706051442993818950580735392244074309210171729672889555269896352742783011018282322327627871950273724466699347794397271982610329424002242668689528570045288087358499225943644446890424278333181646512673246893713843321802674243806103008755977568737320187270263237971692511488335697173701486222704718066369930972795304528152202641393782073884423482092646840487611502348597681815052058340551610327314840051811453975997698925246919324282344138749343398204711424455918089754273378604173297945016167112418275607286954265363898679144253821572680170126841836260166863291993461283292931345439748047118756161272271930104771724760631007577397735561671470965230399798628204254985044183233961878132998612534116812719330952496345806544601474549898342800767952945734958066023373507017470140805059588682445647848746243622537981822251484417486359792972541985974484230273999478904721249800830700470444725951120907820714227515325421214474588572469403849690521897272805352803380383649459467612379049532906254979580594120344284193429723613161717710164007136336314147727452909531036257543507894973562025542560709957574333058572096222055265879955201614744779047961630112240086983281829248373992968100932201391741117193124476118486691160245667573711990023622812743432065752301788716346465274707387824161591398897458417597723471746076432706744781507502023874018807607240435013153566021916861013078614698381405137363414634051388733037193405196916589456477760350457965232733292329932528369573877504912607173521670554709999814351453675844258274588479158771065991898359360229721856296337705084558508665241384993011490796911512509840334102990840396146443582033388065146662461133106102999132785205799732574591912556075869230486743708639597550731779410021611000796162574010261849824197049297239265563965236897299667290894213306968210788507292188371764776409520174282962841683385855373734744852345966383946391593079544505297155840193962136802571762700395117902445587379300401557614227979839910646851096552820076804793102578462361993229263635906026094067776553685417110133530904206616013640086433767874447147143929161445397423377227172892317570517305426347379652558495285250410898239753471685267494945953185341716901230956382894985291570802837921146783282311630549628414045491564788198249218423357594404946069603436953385343164534722339181414347701322902651115816899116210710748062910679254231852275713348988435920863607478117302959846065101592392641205074288371587894327903369438632236353464152740248200375813273247946287595258764014092589785384134302564268411900504337961249390425745353095358696726600252690438011358306198217449429396815187995430575649528730647120505897095468429062350490485622252390630312695584727528408003382636679884082175461067771676654217110931171939279521145761509040913927814793452686020297907016448964665873788312654403997626098533717945539293698873634179847779241266894181675338561668781345791173759214534467769303379724668882160657333884381316363627179453960833276207645248571268808048062611535276361873441170706730470869264930140404553547983473202575539398130649392762577725687731866815466818784325090592853504803715562215696415344514716079263741654639774060648547483154252894038388929412727025391541626820955801314598551913053469368902013344868837008162374227182020077351163166468287029211326765246664736597961033947400347224603560858177674825586465687982307203059781180159941198157173111993302211771092719957617241788427443868602223872830544514141914061366602175528740574642590233183223250583204867773261901660902820848775070758647778631670944282845254700721885162154689257154888144719601253760043981336836399328316652992587819117438364618111463008995085516024802089015172787040281858012226162327314897414600885941665885149311407829094569445199325812299442746329998600087007764695544665702192839246890498523530023703370450111587731533259929830068958843491233184701168440004820876251672178082344939302533073481504723563427151307956637519092470306390901718820172315573618544293255392658334557838784702629938516711414459604181009129282222871667040828058570935556570715929052117845987010351155355830303246550018840170605431950934261117493192920403930640902632111064690207771888670494224166123276076325591488717808811859721851805193017271347946306564195030773744211147762024058880650983509541626306763874012155348782958142434756869925631654281218614438656942834956477758073264743683568570460822269135830384082426719073808100360354173540469686608232784908767100349685432527894667027092530993457562626194535328422357715107900078967138776478216257632580286960385588154416206872485668365314734965167052605065448459571212593528570696477584632904461437136637989995276381012503953008762443820067682269949057257485476992650426229531240199212230488022219158468810609330275729202359992231942022625200918018310685821771061262419750733594809784432083986643056457666266226721462399148207095534053856736874018492679779517462253043045402368723825304780785002878034535259501229025700090758255694285167592762962946703512568791472103784137005742907028801172184846273899077430271346696791720607380851714437858053000337141113252152060972921828545182102767562548044333620658117896382210143553123017820947042934174453181956905647980537573139229742651261510403327662696536383817028440690280131766739280153272223985918992446435862809608125146349419803784112378428258482974486889454376162297987673435954015552686373001078427823778083041589432495792845332501319202511850597931318140620865615260269632412605702022009868745932718542272555933224131013797253107092632101888698206745178246215464914945732962002287833400422793644274149502131632633002990987162582410533659029274584173766787148500351651716749459060918878704959944475309356569228560701385081144433052360982296040340352589212495701467698477605068349304119662424698603004277715548951441774086105758925003445417002182279514010298138699080665871370731818126621435155009846648256409834303394675192738765968715754854647692405425516337831831049068123708653044969150091426765135862257344254631849432261096295130031880821122092743325466870642745751117235443121380448488507058002880577089395216646070413031054393094375889927623344595599348126670369333486279854465515215630596599187959486361259223024915330920637438403189395620319968347830382544072434922120685105411680802919957549693172278004406729164016924102529551332051741520836046168816384321452387513332080341421688753255399760808985606164459775847468780806204111301538529316248050329409838253992815614903197413350015604720638833264726781871784068319207374943651872293202083904036504551590267088343786582808470342338351819625665067847151767872213585338011238481487314211800040332526119240642745174841844692266697029549942067952869183458380146103873997717222265103762662233807977307286073964537300048196779120883532921855909033193766571389837450446910399191196116889267863206709687660176151611555678288409216903576036299969958675373359814508209805737127688405261425261215448157193763105699928627374183443567679833463862330726854302396533781343148164515390188550025248353108783742511981629913134572132780245308138252809372279645017852931410059342853793548834343092424836802727393070943211794343291393964381988022077061755012531995435862346878368744479233423543251749193524050673716584832653638846000036629171438404318281567632278292879746035278906629748455988978439782252505463976802750430768102971724011002381408145411432425824869942301132028864621477682351459493601900485074959422597572638720866358293584098971497707288100739671493402648139022844570754511530429041504929086245689788046396963426820533969843355745871776069332863520088107284676131427788052660485909614212868147680548445512820529033140245970166686914125191668462087307652834343007622219543434172381853363187669781424636814917345462422096471834871986444312603679914885389744937444763987179972292418322435385003089697712491195318667699043018435490293694514255191452413178985237771286354796755214171762414737184544403535487672823416908755170277975001188205748772596872815447016997206610357661244251067036250554842751772642050571656399576088030434784618336201322078067904006157519537255227802121107330668460159905087104313903477056044157645407728401211714612835493004604796855657330497160318840617420566022122254082190364637896796000334640512332495617278494044552241431045332443364612216844338371626742941108312025193782780722745682535635732052711838513872487293147966262384706133443836575233775704557105284238846884353015198919477517329183217622215643591166210155836544149395475572870894394556502245632204529346686344450387512295015780096487462806084337792273817123238308452184966948149838594613190701394975886962144033765724396902737257344202126504853725161827054902762394351133103797322674401584728680703006520080062334893746161490319566040229593804840777662660396862823893346322305722195336805970765558528142228482391861720086158620101820984059730136008289297631779418577378024774776125473888118029015846637659431320547958264339305106729744106044961385940353678537208015033861918649260492103522621003088889225201763780048916472331654137112377846872793427582901437106830005577740810404829185256035613012826298650252020837013227306194615119272882520244824976132244196051988629813265979978900188236223373343658575841412450210191402837079218972973172379706014941336276335233729023061140168169140721342602518049416985671959166628204348043788639271378714502682844116778503700512165673390498894423475960480451094243609613843722193262873118415630776366082617954036114347729042279406352601756512683509826372222043963115806710157693857064289990969205760538611917990887023583294993632216981248809130202106255088046473375113243329888515346812161293198843372802780171657662492523273571483749618665702520242777269069123374970651479103137467559897301347641183523663055039470998882218027997228795418698889957717356390375620575479605214449998600810577523181058984649592643602226756182085613485836672504634320231082453252411518621261820964931464673470380791602058899044924116560183576926317893608611692312301613510671679791333917004600114360786196732188070081038860273177129764157109069864336425200399285218676090388299083143714491397430230441003847436663384463710892559095847001419552185375031392387451202880236426789807974302876877480302792518105304749149904619457441405694174060363483196379956728865184260418645473546062615895688462461437642459699641751610069376189209925087184270795406919582344522722570270914456858682252267050482813084859493434722927396777577378627173737677711144452078182525912484593137091965363526680291128976607457331486029178142365180679227008856986432182318031345562690080936482169282016019032133648581038151362101820355020171236334935462338342126304483503872865097435901244522758949425260500344912720586629120643466235530346084395157372203472951337522060706773928532536948927889323065353647009747253902531074902980206378079351992062410194017076034618021496137795391299929280645393769729160904459462717047097332490744607964141679923576473466486069305008501636758132232157322636897880672446106998376856043828087713674219279745416630284594389668968015755006216511478115621449258828574971070531184150207131708397832709717817892846579920345132627846533748482599470665779091907471475954852375143725038026124726932800980756476916696978963310066643547700947548181148349404994860468095722865385297647907129781165792690487484068516698911944341458826711108074122484502054225570690326762968375560974187739022747427207562636217846911088784822266841084506851844116101002031970904174553104192498595080149003247493926608143625612662508412764710998887419732802982683077266481058768318606987988245720220785047347203125441744998900706024386529679103419483174568495052873110590472300285113290161093441362742730399151420076336006726218387254486977276509037901818738278283202265393076720985767942550563904570008098238809095651274773126648076291679286470541512120718541834695679703118537720196844162944721878480884064730231025465388325112244952349319852647689391845227042883157740681216737343778352584677626096987345408304250259624834833269009072294905740991549996621494736975312221990210977455110669453340793746609053387807672355842854177222801903350732089835146022504072328575195270004009000662031967048522691135303866342293822305928590724155316321200631337309581450286141809397959402861429809877575948666684798942999038461566361428833136264139801755639913288973715236192165558253250561346617512976737630066267030333517644131230871285243007155706267337402794643529487701466168012476852921983181792962729920607675125714006500326772487013807839836654078710686146126099951190092366973425673918358383532545054390528434357275373630579149991309086896666691552786215274928927873419705883019431247369955766250302799537062082987611449011666729579997015687012559838521407261845413846701008049430285267795574003766909325894866041240473220438132494475850792857372194246220809212149231208904174752862615768936177328124602720826368436453377732806244609731196856038967388402701963276452689172751942446383064897159170375835627327917624941509273679981208091748001735574311328891525833756896395389308873529411098209549120206693589001144692250445126910753613959020410213259490119199808525747369162276623899917636410121775845138913673499471727057580857598635981552909044749969513844924552939958249098170696165275126268270644998651366116025527013905036758436682456033009556726023431317134364150228076749445534963134344501855818318342925355074195627903809292471205190245825642815121012898711511695466035149536518570771556785127738597952504070240636214095147765447737139303528103246050775200028585712014159195972123244563766025317300806776844124530664767375981620922356184797789599703232730155392687934581210782855034923965264832000274911674095997982552227152707025623439630875352355990291107735628832335718970373114055872640477170049974604449038920357216722971789488764249538348773865502939737474826347861031691211870928420238222332794380351996881039625939649555555971364377361709707951769213188098929879054806618940486950630761009778936727537611332227619405656649977544980113256116050105998337343688566810404196297020034479277961535159982041684895993982175043901554781644864752129160999659223705817882493783098576689907151998898491166949247780095858970696777320720531323532970614197660859177796404816783049971667362352668136407658116780266150958296573005328270640466162037377092685910169221743444702034345023383537807074224904222594549480988759489449816701320417932031389149697680231768502456245018500895518892795302410176189435706572845968280787997044515901009874391702679921677416823209930117800286844682430626886908997427298299194385961739391637879528425164634313494458113533806093897247909178119389103951341632045945046721990408014598885953545450938752804653984493992376602927059750376981254443905289021230387546307832669771385082475601724922124570657954021533668856346334934760312956457064389796817376247363240334975473109963717633546134708848323802715411051830255029999802258037217237139047394719865605518045738978222035123729771247851503058216883110455438999666964845859814238757490039257183703994260031901418266429655751611822848180328094794079181544266087568212000691285849118414975341990239148946379160904747928715168781222077690899149325879955756679278501484759751258893364562190750144693512078325143822259088082160660244417495276553765546094660012174055624602401443766784038133391940388315954954460416033567634613245981883280093372771015814924560124542143564606506749425501347680551557444150049684816389970509099282824647197176402731977965181922072303804373067525577978469750944146100271687265271564339666885610668789910281837549847462934660958454552527063408027668687770499571994384078656217479909003697091068181286526292228993695148540805513966188650758537567065775199661510266573915808725270999716445863972641604730069068873359595333588659794212721233742177414780992065517343050106743068948265180465640270211522086866186289086288318228010198573448478959437546248133289887038596403123750630733395551118275249832585343458337792813293025528509765780532122642166938241001063369568481827946069988268904481125724343189532542084288047221832760032736451189183389675148429423961377317613927548582672160948814254343597582073110652789225642451464755515863270901032225679985139496811578137685200186659022480120870389670439278488106435806908477744560213852479803560265129451034148117434406818715955082343462688146093230263649520504749802032446504737337684188312972663656586592869506887928111168458993093964058164971707413228047354718513944420500965281929177253992215419948374333811968040825871946185721509001709045496599099240258564428405435200387563689881155489245030671789808907043492793549335939553400563287942594639540538272078980656949480243679886721897825747667156321923614470612838500321765972845952456285700760933139065406151328635600009879933297324120957051910073713907374734310822907899452272570349683915995411160068365259906383846117597706994740714905222438366045007605607880048289099637097199157343864550805246870335215994585575731455784194030969399299239346570122328871746147601022112893477416974245168027998371890909762990346510209487372989829335563219803179486302182881903373009226898466951560857062054118812703026364873740656243959129135101636967872340049339808651425559862993619395951221134308846531678837133127212870577115386571599116342180599100519040075021039958750188318766009325078718015502525282985456484358051433706741103679422749820728655768780297758678961591462725719752547336255344783871806433226341286191851721602559944460959715142725167859322633069966791211348960255057268922318037634277751966292636418451679254901292821591548227456898824272041063429546495512082002741085761770409745670347524240929183181193962250916614930824215241409055793775668716165300609359742720052675964154160920008783871756495061667759442472271732650220296772120697513250471225410650766023043144899797699049273462378543154834079610302907939887407793340918004798998172665088120967145150533673126577201188590444178857936795593021395056036776159011748529700538097716195246849439048338116750806252189703942826853491592949017392233221488747440549338087056064652432860366468757610110809072176053520809484593522692724273561589337801664388945391106147667101752205491316887189790293368914775265282829866033384468875980451846783115240854159380784331783616527413102380785208422278578117265890508155332218576889518208686752741232831213871872833669359593178822159549881867179903460417744905409024720389614550525551416231004791599403523882946852805317982892833237745932991246907433761142405831404144545893955281612970726746753802304956709058900938757636657369454403134180256749470469401523664538525298623331866089694018524215890352091287599649773895983750387305634446053958960736218233009910784912572897655819459163098914971769351858508342589210653129461656139714679010998686024325648834050300812843404898598626438209317078651215535068823158194698613107735619823012496790672166526434077113421398091854995282009143261027132767690516364761785169401513628296715409870848667878537223294481370867049649417905818693752595683529654476460167366261053886569945615743034246537378440401807698436582710645617284273871560515766904010912760351381764142651540760309754326677801777834411895076110084923930283786524106350005631208434645435906286264659102452504459732415741503121455604632469584749786600216553021318502298798527423854972613821837213783624557522307090044471772591055157788005286876861621791063131978634121562626367397520977936518139262214060754032604899764139265960993372380518969669127622776587311282131947675853591583299061078937226806285552849830729920117142768099710306151764495687880154387570097534439809245826962974608585335692895836771038541799096998333916095138113068714179724001556399437269528219779842325309233876434447849095768095345640303673904736267536715015802540451976510155377135178488979682966070968296738217865909441960942050701588689861890193410718777591395316054496982039807766139172822483974795046226072949335667431723228069019840389783061899873044682559566603011246072512406640210498852352706442160783477309632174718997953736902025001467414667893648441379097277071508267252930815380799332863547808581718178047438207301045896534847049561490652548671449047004787529069059266526271552112188214755492297133520952746529486373774120542301365914150977567652186027525310648328490728646609764923911846355452776073546167341956864562215149051358583133908218412350606397819764235288502341227623863132847440292440633044693054175873484117074285808406331672885891549540572579582264893637792554586437113809082431958479529833459967030818654437447245512522494980221710128556036918345392015471010173312967265804014473218836244993325180133824512176081795053840120779586674040312909773839940752957206636561207973127877190066886366456402862551526206674429288820392254995973474481514828727901721458587983790137733870989877460011335721546302319393049714993386384510593618409034561230714169063871723126816359665508253033603105995692985899267326910382054854100162222881000035160311505575694624933572949780490830073181094914983942193296246315703462026305879943024128356007826786652861177200402488136886330608446953974786843727905711140886097207962415626940944585675076163184116320493793033541614488921630284664191443993065760855822198425009400546512594822541762679001636323623095879611683973343392277708657189683495809283609909191009937022751427307847111887140523572186530801333634673126255097642089625093256850823581796322895207233877595482922281955079811495336080194033885636559180516735435127998626294171305781984696777095032725567179027771395245144666801498537767753144827770248667096565833911252020737836231404803167116319122283951319260535941495136592082300064660545032112413380583244554890419759257100448835306918770614236471593670477203969333387219806614455619014350806021243918060925252119376051706140970459878276613425863500201103140464708737779390003674181121103416887529573027409213513228538770152793524310244344098850752504085104178551632531676643666443012794191031282558045349764909813554108567756393722714759425794143423820488990595128344314826765273833652589640720462831224944471571114126293150370335973415924066217301905550230158588399463667408627514920724261457380878932260155548803295858002962046226869218784137161793474995886316885083357298085367326622721850928529258899433282668847043015307196903194191634382648676960210410330294404744308783101508748586358452373980051513687602841400320620504147623445925963947857189485707854212601108247017220301412693526804949403104908108821070770546038882197601444707908800288940764461234710303212720766306056403707729713208953960637390238387930072209644986551004194145864138688455174288541598607514296569202556431688639545393108329060767614380420919772361283487817491673827097998255446315983655069363503257698841169242046970159325455493298520508503695541824668852709701019891873014129418997555571287354779724568771493405389337151847979622450988952366905999734548008665612436612359138754311329273361196610654067040270989511641478675526725843528713198819385366131559767175244193627374421475052623264056972571906311786648980544635291760673879371953972380992190764883046735540577495989049457863985731900984402311097931600912859746496049440605701798899902654501901825125355715983043486764793348482395731999811903259350280015004710937776456525187431829192321480697484248997871914586045638288084124906582601707207410072727368144943383446471352759595408854021315800443845210898708711423181399962989015078331123403081531001870644441278606632349037337975781808006001959784703333742373926373247133376935708631960794438269894780767753578532676670516684788971164878856233957803837697382834386840478840825276835101696712138842846064338776405118016222377466055822443113763757819193349286074749353495359321524825792268063096445121394100321427178825972559042168364022790932925862442906883796170564125972988517030265665569283145443621966679162479424122522871524407764819676153868632430587378557594852961166479239576150573388408186399043270959787601368270805887914408925333595308028198705679230587479985631803973079448371227371899012125219118440494031558646576460651841323120810082784908628683330412514560045704789385792285569952960980911451389854173318387422389763796015538144553983846208404394231875502371806014465423054666132737827974347447540197875363628516083811759942023135924328474017077974911061186395167868656733872949432139122853564429151856890068261392587299271106826278346879134511741628729392252402597848817631491180625871382457134520819217112097792372884710748005336829641947337243212731256064591093613941992554002902100932449579876403771861136807604013458377972893293842034574177140573418165576015179663406578730208541362413678577689365733079293825493992947749621551289390757018652322417360984645884883654998164457019804215765615889372757679183711603307522356267649628548730025754857995948140759412815235297021249638780026207363099427083175254730927852974465742586813198503896996880844628110609201995269031504162244970330105771488321766830299453187000297454110390537674659356645616003614112906439382292590931106005466709601451675979543884462938779911591791797812913609511472702088436380505592567949073106625417431281777015123932945921285074681201798030163015379795213639182338144083589658051289844296129289665637763205689519250689179721681418960777609903842086411466870533366904791181939097248045631086597545860091072411010890633845514189957256494503282155008027453618801093357616893324124733094435576064882053719896581407007262490056427115016283057549583730293857095712694411714633225452004198103641818042111672099839030947739344480762897655834108194347717602317965618152058177226605403956493276251702353629555116160374352654223964275913576293888833020674126993469440991919074142618967409835888370673841250461800464911089674788805245063480751252979801961666557499523442935476178332457094504506620978959271706547000424280325243169071321601576251057193454023997762711338820196389956946510845058985715625026953271531743970249627846760622930946088691952357136870864606807845722428481655358144476011699882890965861513846867761836159049777804310549369162266876674575893474531322663928979805338248141371192295287040304426575552761801963539075856711812215383365486649124814785774248422121228032967902304242491503194837072808555183682234793661959584691823643534738643141329319183371270245266924263173409559859861849740210276404072483865612896018192112358881460494227077749353298759700837383632686136822518826245288758464803165619187272035207642393686532619744615174243164447467087365054372336998398288488071564888950857995861587179661474508202824688543049446860827122990206721097604902864061208951637534695460162371319361251852237465564250630583057371960259168126916078724202273493637024877894944780219051713824185869431646221845181846274655553208488661571288017779038084502247403490327618044086501345802064188486363247025894121231211804801068662914381449548386144780389244133135903600361181417636454914378546456071726362197668810107864716851485075438785735026146955017816450776863543849949300526034930449390936043246441769532388021953337026825661974679903891961209007148419608491641950649346935151599972615166736395858950464154398149069037443393426998004192766171296840174555817500564283365237428784452629833353369766636022798195965367975067549328989529683309694855579577016054272620122854460213243161933616161590927911788715975920423117763383698802799226272927346214137530393045557825591412907408944630638308506524651221412371144221992985724501149064054855231494199539983951774228772530573406783086688667438014878917235662892154014523839999501001200944241653981453616680736016338467331272986428439965728002057782778695531367404670966893306683388763870202327397874654794975372840371076714232974388246124483346180433298305159714665453245921484971566882684835675065585532211597221796027173747141593034449749836906551063955501874080922213983184160163495729395085957449548088514123251683543162953223614486256014209578482333521618810643366629600164744667514359858512109408255200259201929876015722978955742803843546747311877225853275544579851767141591768235487639408076799230767987788045599218334151120003593672535916144285833961628003076867171811117008858274498830834105699615137159618397505132763360343058783205615977550770992802342987757321609329259041229670402126937196899636720937824129676887002390483946450619715936030768923905170312977766235844461675613415424312047562242720973715243376144313789014481193379728917216770058160798796642886873642542927863177462353151285717417647079695148645749355611209168706385186404540246173279916840464359435317977765334826275597020518874230992670644481329274035970836540832224566745460936771720658771278989853454191912856612102565074198433636499418800928336915182252421777718099254285204033605770126411710066207653542739225309847418559600810428872954998261343072596927087903669641231783898380043652820402669144728748049314473590456291900347385669901504441548530398427473671095542551799325080251265066804383148904708185248635308538852087522662282392055063366039446588568407934868015600014884710132648163979503766993359090955147917353080860935685716133924726822062472489427727608981929118959722605353229452223147156914973629763156386979675560159112579096605053485939983710621991768014452625797865794865000704469325779384057661692502539526613673472501453708912880858968033614755782508156043088611742068532164887347746100678879449507538354673513913952120970785697062795733199747904271436101665259850476257877688803769529686545324622346566161631370542045783722989981818587110169195774694221567398596250026895042872522872248524666426114395758221459476306723684391032548488949713692306596596768763637159421079692733069138805843429111581826744038333011020320458478247240386782063414397953051030489543567790549511611196883610715772472020561398421700572401567898227185454658910943786787869902804892181915687662092722997727357434831078243614856617977802258668248352808138969516167427736799045689183393408882702726892924623629872025618640433735122984313614265600743728154347435647935198118048437438797494447400294549309167346051480759292472964147512059165986617122391367165918774252420114627976477073093797193316117059444359127531365602992004652045252470943331066116476935127452163460435842133516721676709111727412751100309846776277334486932834853551087474815361168581253220272817376618213549142972104309594928551059211465869860454760226842525734904258823428222014781117103152926606352093584103998174299432060962903445083022844637678175265096093936152926324560534644354479265174941183756459307392897361334823501069621672057159292209083760635093384970031170842717149556767752779077872381860667620487893058925819972364053197455345173465475601120171382754794701937988385444225250656022407283597264362730638594770332652777157188463661623719747634437696457095456887982933575127342745732388711523622560855624209851657829489252959298788354990281631406523583310983838837382336051457032165373029723741342826628349533195182952610185583972840847219807532222991143972589121462282269315321392306263351773517347490487644844426768095045632904176287408568541557566388484715707577508549358321050795538859568355007173945210183663704265808319886862466767598900621865596460155360412862584371820077879027239002313472048631768266517195453043060839223514283540602137115056824295731997680291147610225298187544216062067286729993511623278773932390921023361233065799923701488489289922047228192884139370153326458342796371823451916076984642961133513095446803694579755695035170601243566803929066566468316918021970011542335532694589613642241835840773316425772963987688730732009507521468274514705549392090655095312571835873887526804483018854597424503528423173801056546147981385231047140297086566102782627502757214260107056115964720158493277857372427959529175573386842564069445941473636833559134998743677530707820998334785412888497259017669928811370347379004442959572503779114492551928545622325576083059863954237199214294309137226061965873243432476042174760911027298197705144646806948560877956900997628586333903786317574700503170173686393394468295424357730293404351852037164321925597712283858021166086282646712894817767017862025846587358076202519329511164544829816191003142303538309531864525526778002641532900058012057725986855745155724149934218617126087991649417645019187814225926630130955894844941197668875180366525492181034238207875408897648237328046033271028040644150246831818053648508531425251162147892643663584388604618815875216162344802939360842473783804463274740395641008643516096463992967298823573948898983677408987367176992978962272141047371095519117290767789662022653684164812331190311826943215445107886857866261673068638065954633581668176374829449667911488744771143391412351244134116306233361544592842126273501668701130908695672058385418493714980184342518747796882707011785427820182022603489322569134894327741828173356849871192909274578758696408401468506575439217392838681453813466226712568290142271991473149655609842986439678245030937057731329199742978511542437105387131345160208498666283596934842069947398209182231683960093024453393634728572942110045517342372249156991307980514395373624924571924716309361863466077960499083594432522099165593602818804898244795942838402448184686159469340944119846132874387441340967890618916280887686715134362363547434562845941645705654193843097455858575342343611479866676641019427445107407331255673268791832290421193528870974673254598644704792999062194260567257126450199249880875858317269782551458256903452732996753993702867169370343415040333028607368798743643106231931963276984553835233069269128965657826276269986466816770466979095609591810497016048165824468990327710092729315870641598062479590949901385894428648494363426840971083997076311638794605036211458274260451141121718568370074678064382686986381400391914947336047163513801559781726572842921585950410476791639748048524919209489271550173045975106181854060476237048229786682756770385873728411685081767497360453062154166093641010159511034468297884194071892602791049082356686357950482164318983695648484042129256831814574285136156447995697689488954797027332081017429472216712121479549611998241432800779188516099339303222018681870245393131700999717402320522851972891534602158751380825554526081801506680749493530289038383636674608927679021820766832761871766909988061109592053674325902183549945465966471092150699474063056569561419725406246427013503713017040144386935764240839094426698399273398367139400286999316179205977344147438113296541646038983277149778524167050736834632699916908260019977084285103229020349933398042497745138165365975516021516604971448714963816271198010188810688508458493076815850329438834444470172132044468812768360637830220247650140520170096230747554148810698735200261769282955147494298710358022762599923503778521157605308237348105702437715396296903815011206458258889224157988428305718229667656426739128405618893250147016579679926422677719875765737934212888413943436356510981513460846957872039270606885269909572646768762285822635786151093136791049211680317190249721863859277288643306987565915186478952247556378944299763406940287869766320342951154376711966230731679560871137071225984868488621152984689608859664348306754537201861714610449663498669132470205408270581196343366741454457054073458369117641400883955051096706545478084607298053747278157047738693518833301815747943792643406626081253212828507883263119608272402416510679293078085637606612211982214719393168366730345819180744157130883689143636316535306794660753908945150031320662396827549517242533228449598166404909466474817121997775036640419232414801753390736931480705961696237696465725283295761104115330789180339678423294935429591442541720503891924101844602733560043608060239207884509692916276175525777811796615847168414268278413946600788777557061211446650002890890585318480561550725916721198128519604597092843273200652623045862176785833660360866641905691414730190544186238475501976111754057218278648732412265787071799266087383438234998870698819249707969820838721304516100043632352573662680599045334317605709932650021710007155934006019204872314280892160415708223756873153935904809969617162186569096942095520503577116437319981090955743810786876523431086775014443468063034230734348368865726138969340824629869587008606402977150463962022841308123063785117470110420886820432074275931767813797746027495310730993301249201347117634402851332060380244435471954642885786489346545119013563914929526058517297959749152717297604868175761206839833894300464387706586335521396474970219523316066407374024659276476793873928839480264229265842937096993357278608334269549542208986666249374543547481164416256851849784692467177797021063493129194913726583143406862879339993146741942547297366844735280479890917838993416054771822579161647153254076611991890367624366730429291011764241929600509739431148726432917654912432621279289185469100854567288865379414275747054886543172743004746534242078512702072217840058625211239252712989498117755062789146962896838253389164816653646094962102761314918577928982357091729100571531784588094836488748795785398325520681174382824849912988031990868249567134145174101911553991386893183109643584228443063604787033606109399070064120662190131399637382904195276583998749451576325609798322575419243148000129872964372281947026068252215467307067412240537479432187198718070252731870641513991869762852343383003851400033678512754525404161458083198803534395643255365558706309944759873117681575876897834524007037557438479675074796205498141136831575197314621422328209233704228887264622636837848894342366119089522336160632462268607448663376794670483158472648889718441920054758405162647578758888761823793340394835226103018435035816247162273191805651391669007517424658267359197999435747205882735264491197148601172264456327976375269395912464399643034819645308456286693461247092486379015020418489158499622756451075908177330547108219179660937229294035086379691680051139983012198139767454564513771293600955396994253680528670581991348169608136771773809184664855230436248364499321520552584118925743126530771365643738009799408313571303393510316345276887230687261755598880110304251703743858519983754207476457909530814731006983886970353858133596746196800706495903117695707435190282120012773568425174429904151927437173954565394768339926532411079791368052188333559571784742509597806049426086861962944810479135456455852062426489468119893591892774038463042073689087984753563974073491101343170457606772812388485259863245166819327954811183527996237699887729286049832316017240346781800161790998308241869379472600155120541712538190270888901234198656516833762323328063432969435774438986588593329780792880499689874226682503453880583426731546784967992987596772706086809160611390384708731948097242416780631511685466331454461826584999524120325270255161136467302290751966954454286574493115395969235598742727534524947172253563406108101737791444168639703776394298664069929524242311568969507367849320687799080938656128816124224211198369533093752793451306784102174183051818829403673631970170226530746658231454511358664609059120845214851680420974771826692002365470055827495380868526753307466806246699785849341389763906595618436191725609574860311699775098830611438273475150786048356569737338990990504939341933943598048815753531090360315173947875845621183026081537247569281176615456622899773278741992807094308162152730584414154871142474097104311888288854635710936586014727145303712375753218187552132361737946770682928391529516683089433730437132867705500782240595697787480331738818879317509735668375878099327760181882247319495697040805410616942992819522408321806605733464631011429953127842218580114325244634826726380073025317329855138844846438764233079057370971504598460396517200969421529667082617000607168480038268071640040017515323348647910353241172749109036823603854493261645569087452172249264638650076254686018849101684805386917794376458657853437674832918800072018861274877584615612781669361535660909475628268758733291304682598033927919483030130892048680005963901340683267118763251916942593569215313989252139704355054198607886305616010496688617253730726519233106634539445801709626522105471331402685764385301758601190232295588482584102607578854165991515170809063604050288183908106981843262176759023376944331329265419223984773884450678650072537911884076826881933270075852493360287295377638937628383211228929906382542005984699411051748397125500269343799768386174352441324013103072641637164664868450115260686244726257555297250978689285831999494379549743977464796268662575552473121502341118211345869185959706519948452080129950678035698500007741727510936874285116278170095129963911897152960982258374624758410446815828728902609471836896904081537494030040643150590109765824185902639207094106878151724260929316185182123583466158396888655219077837601154513994198894835139987693743851300263130505457235114436673516542860067268072129782663462616297589003138286278819784342997400513161699256308716924130964633188725283997803808648903630940588669215290113444011953309391452613543656343014276867801273236158088958554220202612086100542224124685528090200116220494751953686032380395526779900893385255777740314947910477251464969036062876653046420671853827494312148958835676788781375981448276831393057063370991560535423078011058050329148686433027731003981388931592658154319733657351769551546460180796270680881527060858331384061058129206725711428356446948172979918436505547483339860760209463815528275267132470431686684299270190308833819739573497763438812636667899436926368874345100983500133487245893421346470969207433450205210266676215383843422058118030509918398246735556960012940406392832559341729565023084560074344562336405583338591049595234760764317721643632106865713291191341915558182310148596803492079533230364917539639748356409792781682781036813776049746647213805871087564476509822180097989995414007879323476647488738808597718701228201973391266300909818629915413678997372881422905927735504800174138993753685212602743274057625226811558593119725379201011544350140244046145451873928917094662325368758568973248637529973720007811180221325203358841238905467378548825001948711413844324748997542372411714159555749335878567054960492404550291835580083472855556984381090944738334610605099835906949032082213949421190111870926757990607509326349488308789656017515700881051178385839871206647292744379764226780775933485178958730843364669741781844005192169980587140154625849746126144106576742779447435077983956037267557548671056078852508342436811634304040013580551579442251447728957991687490974904925366804238512986859282320372052731686869188957524520802046771796974532306493344634397581520486211740890272865605425520096834615286835765920835200490308184778334993854200842882902877442081454394706605981463436744671208578442454694145329855592070093189085479165861872418542849515897610301179391350095201348675112333462668086269598470648981815515540472393792756249090662443281443357505167644479226794265807123729669377637955460212370586348430246639226050815033730728748413394388632552422784456515057049168222407663303084143627062219579879365125121206116541817203185274434841912531447907362943372332875711870190847069667596244758030011049435803021341513722296965261455888765080552639322242268957354254849188368113300611047636923041587660791598123158485235254347878851846702645549151696330748936161670957150792281389544924983398443830340732594137895120358998613731702639510404909972076816612848862722304808060838978756917230917009058050541085422849481780676555901853993085538411623536563583023501338049851621016319803042672479490865229391957199315120369878282392987851982776829640598386402857824887765886387128907185932379806945760442755119102367284787072050175490362261197346654517751330724406732644749715668267217770007943535673350608598127175587006152529439594868295718311464985789901499209423854076673881160435106082480167861132858342379145257314895043458365498703394508391794465794937249311046354914989883495685341360503841454746625843572446270918811206502452577736705796700660215857662026849610594662082242881558660103729546970490246495617352346874823794565552204835441642020641545180101977544814514306580533962442292263232093036572906884946206975229433817637785375312704407661571561349556758257537456099321039937343049388005979615885546849397724595848875476304953467111442805600796748540387840525171401252793309612800187194035023155564204308126697082911073412142381988056599050187090298805110143347406911403687362372219160822475244236878242874895500721717619753549995158981987194249414623190157778673693060637891256531487017539285844024550131354924486276405843208834491604209770905300382787433407187639390141868528943544210459230793019741499942379124813909389638730461858525919585276813975204984723078649467882250213722625586291194171231911439883312045371295930633548399739735923902796381873905915202982085364780123586805583320563536004787957259447409213508276036399545120696644103421224475005538053500389148628695037131229172411807336787269178717267827643772538277833201843637499830061299267288205899504141030740827718168389813462630189140728959126893439386938764899231224850857528042489619879539337954713222804943838645704876539663700709862578228403495897869488493553921478604667177700613501798156608208493592887981189213927035371719357815095443471529232247358831002824569445531936153824556347191362371629603604004927567561117016145741624509449401672122061958780138321412622280724067578421418189639386495097210236149803229471387342033092065365286020584265311013754095769240462429285869003751668548142055633662661122559626015456083843546116670486432816493524294943003632028645429740525417213821014522074641512007033768328917324815426579328372376926549197625235374034464484531576490123853494008845738596534350302737818760562774483721352889058273418413784161312945995763282599480809407423443612351225349404999541747508004012881776154920665974362884754528415205433617681977484137147789513900126863545871491181291257112455762622184298633658298797191831461028869494719681509519520642560839200766046990860647738013185427441543233364811445407805326364540896496955653118320737632430005358556606770472096916268089177552991415333299982684281050537146833382214034150730864011423046936592997885883096235481075186986704372448209139210251761630193757118753581248416184748794769752171650155371649620298451205074316784667967734522317948503526194555041859907499416335810815625368173245701625660312085740255414722234647772010124798455056414530707728497025860241955600550964450806881246578327971971382291460589116425156956477223564779587440896940717388603434414752978936671768555435904265335374889129165436859043451429811574443111942921555816068705884463452297477395517242830700133482868000828249606297913331358745345635267282913695820058502187721485063600306237425537015242346260381595416626416517427215063753728483609272565194537370183300076268303222864577580366396041704296801032290150593125189468168061594595698116464815743581538106233296324980245135776098432443652910495887011624854173531024871213603421411480742375890739455780820937978309827330978818173677278529110776637303727419311084047815203687328252952393379303333488354996680937742480193416383431661255871651439610014367318892257680882636318859189239771338230299237119371636351934024826587094264201078287876611376215742735227292891828484522198200745554568409338541527428399550917891083087634548746977705738509167600023226955750418335559726013823441735364428834909608171571068235275108372110540404440993036553441472859996943680968517570169905850464070599289839160105241940180492299506245559646033730456656359011867326605351817336126307091001118013275755999143917081666735776313836901408836324239400165347261362554942950437530121681093320948897999778786529673805477470615735142348512153473941734484440837509754311616502419201197358088859470103947416090248864227645079651155171894424383453094377640856373537075744969455349489321798295671038054417652955757412032126231504613951842336322481198529139322127593565161015265957175909891241651698054242610177017176363191186322766718279672372632110753699981316334683256624759923971632199644954507473483939099362466539617433379409085458371424646417460494005862823116635706794343385048116500976583025617579196373420405543266708581243401709513355526013314750901836022640736901675643721536706513571821472953715077184385311715460225781217324584086825693136382332903760879559898454894977608297079423838530013162332198669208866128052737328279983960406027562026286393281820246253331634169437511157975183449713080770180147736861789672087969382870301003739475070242729154587768912969361025223010744474733427454531454720683464441825979300617539714603471231290432538062145913292158208687702216522721744454939228637261600494294313566062847588247789201620218937765243062842884296121051408633164152068633865983124000302933200831146016380662900126499666187364552285911641876201048817512583567165753117086926552568476457969282621692734742664205800125585721492389639446862706921297448020219457825670994850179037411628185303739977887252665505427927524025438852296879876257197796745507342530497989414804549436527988674690638009148399268621567540277021955552655994680713418315437127248405983287730335032844579769839633915063568035320026986708433373735470323772018459784009028970349430647416985972159615092094850435152803119047708014477845819374918353306203181490266897442906641126326403892977063069793888513955372925557900487065116079502686113098716666089722687712777513047191057380344578982400045855697609856585410059766327585826109526094768737395769652225839313318173795859420726464215813691899018391063220082628786617535743261195235366525396314735081151705134450612114741358895296358224746884733906350616637565920685839221186957641082752326812132354597926836350288609378671391006005204513645339294125535875342612373071912313469845459918083995944132664243486003947337126011844017851052940335069383968033623103885681592258608664627788191813850413439709853833706919786403321888298636498492220743914562431137352802991923445644252205545614096323170172929186116596575676966711086629120269564844655794087991647020963419662670336858470479801017302153987365259236732497675675314435778037030354194957527678025863622933557379462880659885382822647122946390273047351309261105290675698060220499305206490082777464562244018226717545898897199374510092921999554587852279877213273497335713098660277629277992906716849500410562476889129519626209546531989210583822618234081254306988004618749261914461719173899399383923384393385964085693509363783888945277120986759708091787729277131304007001516898990717330125875268300485619737173627609726828213578593841298432370498220235839491266641272517995052424241194123543081141432799921725468279055700894013388799322836402444814234892517041268902113495376340306840105313936278156501514097146790877671954288204311784192643408429993385787675883333167024439185917505516956437772748826973812016772185504466676843852989335841372705116624962121614870183841289081531456200518856152343698644401399094171358096089189833038360713310963129004415835704214033656987559062260458379602168923440311517121752508264500121559407002176810019221698867057111885390712925941257451430810056157701180183816577882807277085439831644591526074551502881482220612758357500445826350026003495802127214281017259273309194637824215554435713409148050883182732850792737626108843643229962644803408762592072725064486297586509492398360808671225474402414528564174514321832739461014109962709152964304738392857920097511942467495575115867247246290769796776119607732756025160272428062759099704932335746319149175560257621967130121364772853988395141058155878712609941158576634240442752829669797181399301560940291136543534995695924357216109768598125793378497773153111164648893323630237904433063759648677776298305524307885233030397094958823581669348635942507442348806149329978275263490298509045949508590428162226323133069745252068519126912813432138729104738630756786803756271444584445462406514260396003672948446264193030292336865199511992946760239279421725752661274030179370862745078600996643902560561215016174590173701572151491763659485631070262795685699744551306058650480550162491033410998836777803729943290531677059726801906960902676614625251467657627367385804560112933446445073358579175972929056573962915751187528595637955169206592817143861645052925002236059703324535812843063944846897971012334720214402565184838667340919239689503507456318739410641349090514280662319458162708735767515093802127093484705310434210432224415971705621560985158643970156826718823340101877086664726130116311140918826366448741062507277800281659082677447194280458726712164236399223985868975154011499546415587480307355349369834385144564476870646882764083832638230871908168922631517180390168017444966212433716937882957348418414814870043560479151534369529147008961699624710092428366881235776777895605292484612622129412343049603843455737926661065093467351891461652246311961024554121705562095917685184318333186516319495117338412263718627453842259712548636983240505901377090957306428650144867453968254067370962077919592171430464071108827478768761954827229987398749232394838242620227533574513603676087859519228595353212988370120034089133582043345830783149535527357331269373506274629983009898044035422419308686759676887192069308853460238807071557300704495920792158078390672822149248296507977044442983256698954524423270463206399618438295216463026030302444062767501537928246231586338937121442616927949339615205816179627841439182875912630877105994503829728552804157824580124691247210075774482459639395441724724288467871975845742115546046541453938244916273704993921619371345867253278375836021577205355252239513084571685850546711076230328900787069656529361245447125824707828249282527115072996275221303609359453726500207728504310691432391215919775398307923997265543952032151137175503628132913498323804470339263303617323547256421340378237042935367182916267595111214329534593990293638123421320579747518842577772039802118742840078603674047330448970393424357413791867876839296749425838870823894293507415117610938232521024485358409356547114911944824447695660480558556760609853755582059562418867140360594547058961023434786751023172960192155193633293096735419384327807394771877071078273925859213278090162488520584036388649092235761815219810662188110860104833764409353698102814728951220577960571680184217550158475878934669785096029654125769550786480022420518571058520154203726583146631980871143372354630946985384876539864775069000531235092845935300793812218824844893094813215414317548895092866063279057010655035801682242457106425592185819465787355386891034993683567387308582189997934880617207440850696654036590786560862493408254224358901816823385645605898690898138667316966362876917013985741117767045136535954509332397606172963622614616874231166369776113326855697487182916749025729973852120252956376537366884788137661104174715458504100369438283920129849281722109129726988277471176392583852471090693826498191057277544032828893080198155648216091967696521057485862547185470679103160505760283739084292939975861819506996822269273558048576822290003777595181437648871494833743707890085119207959435660563792947328580199889234519543058318491472582186584711637728258230863682974836716799307349398816875157908127500524378724646993548325601290783176025600093399010355471428751831205506038389917560005775297236123307022053658581441100429076175666879302913592842019072563603272927549037385021691119527308523765388398408327576329769018547181984109188545792688125698967846995269908293592458484782521439659052469773078477842213621667992177683687722403326896228381624077198603939071078809132014961537381180179277787796390560778086391099687094895944331253939678441333706501027626986591677852767269640579998247638880163871582024363949442099643876651110581343867401174776010255662620832104749486245507669326035196498331473189721934782885519579792254007266509790059607311702817452016039478515985897302781287379798535044520251853948583920075762744363703791762604143646520301248239343661576394676599040448251074646605448939853247723292730955464140301768180558447975305013280037470369055527171048688926337234452142956195115693246237681219077939606626594258431998339728349764531003941319773855603881396897570767299972293759792955802791723311549840679896511130459808110566094257198010475906299200859653566634566154808580509851016974031507948444824399475815488627709770943205246588056273243625452327179937222647797198042815087309812086190525417455686278982913196081798693897100202269225201554033302923804694687064402128156230710339155284623219445010163669438740945643150123011096829399913719472576471068282225046978614811671763443140132670665188406141359926610376650733998313487377157616206293938115713985678554331328250978929938620903630146099429040803815638342555337643333541214914601090470342944523249149899005158606376327921991955996139044287534229943696127973395978857374737601380394391355423004177690152472320315258342696672895717059008342101627338525760482861390683240883555250546076109811564951382331504264512304912740995965996411117202164872327497608061265740432318312112652352053892217507952014933125941391020081075128524195958254913384444958391431877982407217534747195871573276375039314414508523576226948613672592995590218468308972043081740270026619131183435617542865223333486384381570622602620426765501530024785376071330382482691905791457667795463227910301051800658324584251832732171310875610922203568729326714071232647205341992039606959868125626276161978057671484487462446828101785477770250614593471527347946182357355108607258419804440388720643530041775815885385386246594266369238988817179278430998695132779765289600870626802793564703685091106842699948523173830722936019274288685299795020009207825343652790563008345167020545411491075861848507190861157221200969778260137504456459089779056516492646231675409832632864579857545507836889362843049994594901009367720229975411511924383810431483554659298751031033988587098932073281465166153897109935182283148547474993717465722738843694474627615903976263800515655044958563070892509840357837560614433257786184893916215589632433102696144273743463475032384168873744018536523486417534631768525260747624747094376608239824150075871383920518475668781632619346302319075318088413067673265934680454021454092473498857042643176034961606058741093412881288128242805584554182889023628668957243923645220010670677679070156264351193371154109125370395461965791725342805391397869443407628410780200068362468547192627654641407222077080475159985585178254214408642758907772348264366294687981913277978187525876191005478786829922652176641538004049187978617849555513583826350550308462781636693159067578142840761550699904611281593105181403801733654133516419976705819506385765774750401687427783023676358286532521395507056531326036020615909989621181126326237705463629631314221874815394027268773244108386076272196234298735319007346257482540823019213705714380041574630525531826644251417555990935555999682821614199207563696500912502555189482996358414654009744458063775119693269842080424759050475006514373011877920097326727484881481366218355272525463012711714166325793219573591531382688218300634290013527845881690849077872620093397088600756192591875515035201837022465389213383631687597671059510271520690662521684203767381781446921875097222439345459726676373161478229686517679678122080735151663007489266980590939153480005825735089650893698874906369097727330464171961552484293849610783551399889950169250917250446824951547830605731013815216042604693919600660294253067022580842368464021418626631564554145586222551150113582670627167478007711299479388319830520042223039141213140929290694323372859100434539071907578154649157087311068338690509120834025254993435182462856632755057439827856723557467761482646519547336265624099533747997469154498775232480834334990312328415496588066456500896231515184787495714297834357539097387754392097055839144808308411722182065700166185422622627333692405484950143013666960661582637973930049488288670016994961723382587400209127264514169273959500867615109034069993676223147237160864675833164352453100250387687667409260677895172963751358556079235671480686787353301050901357600993196042912960784686990993279083261828231899978589324788362443929210873815456730680660689397453587206989773979887875698641640464665724188350735072366209118506831950754928728184016665371127424796829515488553233053032459729262790560866355419651670498895924593503454667899198192487213532627236905846992061542015725302956450092705783975472668499195984223822385818378672287687355671464453098899968773647464688102765411103860251020127765331371129414827333963956200743424118274386624426882844302531582119563320776755792973468296021583743706940296740811332553159752991079370914644586802416629479952100100751458275128180979390294094155235634546104859867301969142880514888161264847491434037612660152234250006622912136011568038922609994045433971955970177268369115747406503949743010748381831861777720230084940688474829553700154725308420994231690995514255496819180423441052719773214332569237841704412860990029768194857894713693023344851945907545855834375430851464485829311179951370786797921934695510260188102344255851019711873828928265399693076734985060607194738000104643707158273122408610614523700598217747767696133973622617488334065886190420373704468757283752466466794592609287697181617193621444646338482532653928279574531886127976105968682089818233859040176100989004751980795697409948282234501793865542483660434685753102036324303439855935331841252419558389908347300431601290126291099457004960031014672605143000544310874161831352889955303812858452074953227659217338345275473728298099666716249955714654828163872194495152053877822101456561712042291188008884367610164486789235233950179151232750451445067724498248544389225598815431130284622514488348954890351392731265692121001026914208686284900664267994543200755889182486194032868932201200466522622855823399222705045998262579848730769783131268053734150354476942339282818633658801029833500972860416761451293763249042563888689825171786358385931743405825472911700505319599297148007159830834915893496887486015149206401813456956147616184818790115747344567521621795971295217018578585051966348539918436838471273499745388381543444763451847748912734467746252653476529937131571109428384618425219736089178946092811101334904089139202489987386777253694926371411265323086400636011787133935699391379219493697870846208673581233016677334625590488397659742722392666970439487831987491828216218342806857845056618470445758118289238371944576242417593340707160563014915629279039898017306455267467491505314064272576877807962035457829245080408823911690267437845862457923005989134031461147273467225578265630636921244025057249064050617594065187036638886141804578144721247774364043655151905464033496749121876106069095486571728664674903806119912348680515158229972582970376253044389292152206501458111441153272512838976811215519071807976161416290061808010777781808026138841462590279771287298212610327918374809595982619649213321365176770111452045072709463162626571354885149014732924341759460583905000906638476614357337903878552219016066889785660467969181259650622049041234274078837409149261000727148549609816320081675646043814200101313088240810081696274815816795647664337908884172931692875545636875893289621168976872748699113391718195393438379610280317408716479612200158427438359279122962751345497963080986177282331730160182476822784288499746858193666684017646486941570043908058504939154962272248157872374435103979376097583211024431222143925065665466450345179626506339506890322422517611715663410521612806287922811225795905997395515133312521343908196022835450050635775761785946153707472456959185295552542860420703397943628127745500709713564562274748535350267086577377072949100643553798063066125897785743115264472569334939659494520013978642708998326760250709181957952510625628292432255092780910560105405751306383832814840143246411860244310457582118749954506254885708786248208441506982084526989156260504353497556115594114708726726885105054936760278559260651287116011146756373611428417531062981520604134631191965712121992175242734321697813822760579733248130961482861852047587193603878558700183760951906606011986748643848263575398541962935071819179957606638915239383083555496992141336649868676083127239633625976636823200652046583024135589686066923657912321915732147159324069466986100733250396774772571581202654188661757088734576970406444336933709758764235233043178296121943609869148792744175395702678921437023965931995914885732043467503183711139157686782577300938185086690837370381750112926955386336258673360868711262584799806867650265560085196055505830439563062280912066209877128204724430295097591970473894533000686283827300022939047904347049980329604565837698083947839105907254272571242500435588074815230102602714370157499782268860082019961743774894040091950847870699716669307440897273852489292155671489002784375245384822775123868581275741935491286652027845195596527610341366499446197277453708211205183523011335066578306765266031713721490302261356547617383530089497674304757381968709479801034388149758388701168041251748554233226601232462115029141531717592941389463091182026162405756304934003030436638056118133194991526330114495348432406358026061478911068690502033465274795726620244313764660094009692046622681899607804942707892531372103152587037446242648367729172415774116802133336053954581112716711647251206815985507003050852118165427489612018209230746879060527119388183163317669748799156916618911690146195370183969468521903911786127398389106145583737817881384559417880017464738088201844760856053051312598676787385829852634785069104551867112747586190624899130090239079106062741352626612492426734510558151371718706500924246012527302442862804576609020011454333530674306419345113643050334879613622255810128899059359715644506169988930324865955574725101244917684107121172432138018027094674103360875842376385364670505411989281860354667492599276717246201122572460202882591811960499139417394419373851541269982021740486206051531771339624861680536227292165123947783519841629001472421366032397691987199287314898964521167500404154294242663236687968920111013862224127869592809184272150168072788206141695217704426196036713020110236728609514690727286385170557641441648712666841502559822562434522224182367454368108477968170877935979667806297727734555183246972301028829131685198235977728083063994824403254997718598939296431190000671362470216732357363713382522114834308563465267806419096704884774721995798300833816015823495441086393719870917646329013421016390580098092154044726216677206663192115862873172081079326147160770053898826140643140052304031742877626704185420504539031655448149557141759568706527776744160010922105181596583621092185605990102509630980804065573929897868850180452783259689151361667786545866173314097757990322968104430719000027618383623007729583148715804536566694545648072679457366715441210747123995132929665684098503513034474574237794788155422406559658458110001433197123306002031189902053937246220510609193750348947230621924829245408212312348157225232771668164615499691252052853559535399894827640284218491136834295874579624022610356497915295465572799394746615411049115958258763148115870365413575220096545800201548565927166730734115941222254306944034297179832757271298316756893535729010291278058914387450485279133349351257666845836641888631118625296695167003968304215834984272245223092928401399271476466236515013727176057980475190125389561001615954817009416891617227769710407175579139092173925852467416364651069529137619829005884369415767768121066749504964848033718578847350454320555878271637279134499862406060658910673238956118561394066821254627616848751172483280801215358940548185800671650225823656127557932131881252903599953687090619556887170879144697401403921456091542018532577942161741508563346218933016277010787815768956987632028510766515263098536028680285105787473766529567153864244432708066116919703415423723008100537265547878567352244582535469636043651891977252710220042051149564143679072835996588555267126612046625923812330084296956180262366118247998035654972803506198823272948850933239116384571123935439430698061925472038915760030413944920496588546692427138275200804814488063651189044739923033039810258383928676335798142761080987220783137762846340485105283368287311001530664554903999078626913685842458202552294767573846203132387168080841751482944784988587615765229840877505198946520968779050701122369524696377628325367196237460677536790145841276741767332814212164755725132829203576436036249816981896281971920692865636602096802649095370754520223758190268995736633226739052515439846739803518565375256366869841832640499260807830184450018672910416933454103547516187508227349055719666235037054983831484508560546113844065130865919134052243495278540277238503296108602174489337789157096886708279914159667704373077580024426395885148180513507180166014326680709941887155203458922407257377579304279966762377774294980566550264550583546601465026708367581945706127162765437259074990813271248845364234033041737671114311130222125752246706504744724556930160511515321706137482368479419177299741539225837322422387669327732224748672448706923018910297926214397295399018425321752938125675318499979722369784298967822553318666500303251412916497470338452855589558917863049557760928370682638033413135398591082105925511886952683757287826661700143097705715549794957211571629563119247478566412412040912653248927230840946987689740778078721416549289308512562126414699007033893111316549922632716890212790457350596385355124553237822922022573979009308577511204811454375493350102401374694430012344507565391694730467798056403350159554796652508467726705755446159201170638242181502463378804147858392258891087712501437743926208232768663874934306371248976495617627885486420726096676589889483601575518592340217439498366448731157165584650220411915804278555236081588777087092952676759312416651956096046125297784272498654692048783989776174099423396444757483181802411090216646028316476618597154735441759329967628574510259156499675994682971051686719359791555804945076834976763825849591385085990022808924758818775881493561948219741762464901334554542675571957012320906691838138958494822768118801767844069915204749742154937805646243256403227223118204797654998103710986811451292922122720748693549047659916047198209439041173382070294234679014246722835419970789884711286500436341487809441409752583852856155369356736027927728489605203600405704996534664109450761631706768608970276289783446079500907186587685833151581132747224321668699368826641942839869811843331166119359270097656352830910264333304663454763128679278869922583239384510372286301043327394716830672197622986822077720223674200060546646742737075834191101863379438781289857601779013288869676546582382872853152063420723960742353030739163948767651444842797069409561576879405832317936184606237081008940371008234187128249966583807723601178489423350203502574560908500676237270172298154139764258596245354977571288005617852315288904776056599002385968371461362924166952959486896247942054303034774920360095500314950614342384125299946625074552553224904003522586423374511856667492503569104481579042787447949580674261728400691932948882652282435247802235111375169743835576962183994880598441622445898361504030484566769723120761554990796207490294875430300112094753644840822337341296790133189103154111263537602419749015088356774995709437727206372385673534109361084705259392153452728630513139802956747381256806320218618295882440152919535411311284549196530332683355263185023685988589433090198519088767169711441201013406540781714501612989545421106019640021995214114617334831894300723656967010570597211804682663707908605896192899280902545970782789111859663467556995794539188119090826237508316552814896938482181756373491973453508391100981255774360006403824853388577042482388026693991276864057116959277515572744604836246547649239216607018653056941539667915813912026570424093072592886919061083248322586608165447151838400487993025504668845929530495807790782316764427712253064330631932248513264201866409510409280801392506932159799313731361200430008587699864067013957996245503121795487322450630725395406471790760183772864735764575664862534241821228062037484975772898316569433457321053964931384987878064918160882846186975967297467518176985346280952639518608705129952769527178281784197999421034202569564708636848558904421539455543226521978031918486371750256901310627464287519131226100998811720617118488598719252603755011778114533747578107039861176750442088965079644530952615539475350745694223058216424142136286391558973875275469304269846796988725856454070753602088985184029859869495900543134730764990004828474562855172345176079168080888845307750979839699216168299439549485163931348949880241647790394797026327517033531664853285075711279523957126870155035243008906567802959939996739043791086013183561848056698422454170668310978864167522437632520082702692921667279143548973675684909973736199179249214191918452302021948779484376272830113578569482898903322967078295156632623765327400450304685309799994873158549493864064162032106822506211221032056289684092270467771308447904864481918873498453424074558142710409013161345993939851649551004964486739668846982431249777080436912121657152157968534680760860974718647915880456111344952064033784344201583303682405366422491593489674516885548027772635268390654977478114255449556923085807701331203411384363644590316004554084763330425283067654915685052097758234129648355394102805502078906544131638435390676385021868135899658915297329332840623914651169921150270674649108754149913807684909238882627307752947388604004994890096463974431365612139351428206204028281954927132152131033903751634279892191275533871593675230407103489574526264816332269256778115194084475559006746780051640054748640600109410806139481506074293498041394652716138429978094119940353414933472625444440051404268778147329209453353999978158835866527988177125971652496156206476093665448055017719229819423806191206910119193332281379857160024165769786355874466067047148011975322582518034726112959594612327741876476324838306272821740367695831185714036908596552822424617450812465235262834024408830717239688761394419750820580423394670176718028384058687343286702669536803737424051981591622454701101417855032360233823741931792348710656592900628346738581718211230281441054643986830950873538074744383876024595707856959938713373956026877903355716966460492446952360100384346007200726898708294751825135912355052836955672466811406649441343241856259631286220549860270215360880861878805747780390355613221219945109786492732574047233726644666967754188230911434356756181582596237692816263900266350270780215534047676952749772915044928751207050885236091242607724025714286179581620010653016265787419194454822351193148193658657009281978398681311224464498547147923108161079020098427134924621492587031478528433126002371388503915918016164582347650614238418235418278662886944242835876061799495098483842393799248409555499161312200596114699194200923075867928706605898960724780951720132269081470312357046464332490426138807897517828614515913002432249856310358719940654075885947735035527629117288905053308518828971752039718655422912369600617223811985210528471270676341637765203297379701421850682106467592974412627311845678570906617596943754279680978814506836380101447428310481952086367617961552531282856704014511490344107068012266443974612550673451599617353370972441478455289494921394483228536249111697308937321450767318479273101657106005292203780503934576642016525113207830810414791141047828159586886279593417968621311754299311388525272320495696495035113191534055596335084592904218918068413750557637162535468516698635130285441292913765299822499969021440932589857124491499852828115412578372914701857256517057572727704944547831449314900014493017795904281638903371717877100081392032050308795296271321571162309932497982305324185030563319369061322913294092774907067447766606756662210227702831473986074456831239423543882355876794088997802932274214942005957908627931600168857901404732918874820771382828345197471419423828342123145757051318745846720468915933046146278990932056353331252598456679428407833606629140426485488713463980727209379965770001126185040706325994877113387637692247923243897736392371507917974845163797201130000690193683424071439253865026028637856818447472397472209247452803779301786691711931140458926269438359711367740986361002359128239655812518575657357081227402011592003062768421924247436957466239959275738194377854058400196258552663983237774663801940890752489467465516971077796742435726595626803767499606322727730546228081206245826662273782392113109759381289681499519557410011070515403643455349441366456979270007081058922821124992855193320094243245372130963209260957592080080827208781017387390589049901033890978884166023528554497648608301645619132221209523138325994187048034983303910924951889959815210279170402197354263976669769307006391009854343499192827582004225475151075799624656175949674882776816179764344603244039455480141734103475022405790384865080934706075096518285975942916887160150837134598409154469238004453882732300927111777114433380052395104345259663652557868118860654088702161916993905780049100260298150479507986395601878266649150702055439455269381740816596230380317452408491434036561405764292585750257962589403111169330221127982702514272608484302174802260442893999896811636077569951044361071425259183353198432274947939873429755883147497719139179188605310571282993958665279080482377459141743654059014118362899460298037217107062614960262003555905907992350010820419635132350370686436329909707640254415358137638078758884060476564078191724641710450576475901245984141741944503073213172636180333781007694282726654817318342889155453429227885517455053195751877332028479824388966886057206377388391025063096648228804236656699332767213631866600908606282245117469031620536288924880645334763581798373743155550129150584483508755203188804970556017360968202883505501545414310345233595113649368249327485025970627817948480528188908787701353306852033229245973507232674935763397475782911269654083220976643400981626448609761254325879788080979236528814984145826639799548171178312996061814200436202456733460213192702820003319099166386983861570736400556241032371509492550198249698386350516716343303334548721703270918032330079530610534107001182326410842881033051271826964019700853146743385424915449295695780842869280748431190763482781984543901787733372845623956196707295358515025127018835827773954345452472075056621988700794064298765498128132836022300252840627611627612497381264279156153214585651435088510742321481259374838154414114651264185084227490908629860592489696096367698634470118715457282017288370819779675279980952753082092294884493658912990088996362841193356593183328485440096516927348204180609686337652734231108558706357889122321318293187103345119811303388267152728171258499254926169240321380323275795223030847162715219133944306368727258366262315407154006124419248646496911940842282945030973759892972941721009497101748031721502848593710794317698292663625710244406627351493255362211066166041269483463334207244920425455094490605110205735537394307788313350234713318766781960004299330574976053898106194946248214018014695034233361073675621531951094044480306445475675078397483347473394712772649370323524384746226790012025643346113037039148123661876042822107180969783775346081369073017079166726187379432884684737163016629561342095230055344549702293626438636887472359034822847630044318212262151921272558539345983137625612068447740899810230981286056488745836117901345155314824874504655034405802583608344984011661956905992205792292164149935812605151611432267224262242942929457452483053724398442121918389857057655500374307258337495558349219911154708411368589508375676831197161406377786642884295228372653973474782215692082891205087210888810112639813635607474392524821432764086996507088298252008636783553024540630949668872704710574630814738758167685146894467759316147350489798505985599280374570290391947975271653588761899537476143027578410433779262682177388086229487686030177439831405755573226001811116696464327339920012827016167327115313255969310971934668408635396907012269258270602413165225776010124854162807735948470159044595680090786598608756840125068093134225733475676788245255694454671833895943127286306832830299688426899880626493910356755537778566956093193325655784920299698426266372680913739407635148769516692724950720555978710136630538758879658445860676939402664604371135211131099225015427927494892700446467591100940999040473851749561057909931956425723608599154011676216206034156832518301178602900172864723230559042302542476345513529711702436929964600168684808906698596035212500594572086320724262412230427843231722918129434673674324027289269252922246022291243524411349463374822097130947018710799923546864048066724710105876467491410155525248056958805033509581668535684177356062500089281848624006306865897747423083564540073511651406941643936811753489651990152937973327564806931734632147056405196664354993951433638123427875073572656512280541654545302895822661395143145211861685126817583618999391459743233615943952945918375818271041331785113161652177036956502922648848605437475845740421918054894792061577477413574738148753501921596997007048665587659916955384579402581446500260638925591470794426305434496359684143990092614448602452276380702683518880955062974222140750695163064744385123100151558077985650419903225988019461790641653964508489631995766303641740359361889279284837544054879549249422278572556099423747187624327253002466219056071444379292183780695759694579447901020317974005630446545959644174462746387555184038876406066905293534276125830446679073177890580381740824451430958252361134021760422889146336777441528764575695651504410254233575801556945703292615308660394929060830581910955222087696683787835519696652204758663555266776349808203580314259614719096729084529761348572856746622028408288587138596126156446350125468879566290087224251669648229432480007278567974612517406086954490337290285227225822238382256684215240907838126511134794591187695749827892278395092803845162453540766619231973456963730337403642087516958082730665919600631307821477803336755494455403766659651764343863560411324326797123214302676658443071382834576383072982434641192842659931896140626661696010248339675372582292787307323955907023972788718952617333089955880037479759327947370931928756553084347681801451176913766329154124074707677978136621138507160270686386040581609292480900791531540246077384034413013356325855787042933837754833027986588721511451501278001212159556839799662716708928047287823671913824007689427324813027353851875657768854913975935386178271395886879116541802626162004525663146365708721382621206255667519911003769899856588643678691847932180083309657136779837360042348589899648111870497256233132423288062794000619956872142133960515837071186095589661565439255028844578011042633183964437126012751476684281679762552708525117104607329873851515547401953928896160054070742751736831948893584669154529319621502532709610623150331405029198145427248137532907391196757509858655145658476201654759026589883757275317824775320138257462336451067649269188950893361035519168470257950949438298771004610344320227083605748732403693623736442274608195907041731440149003742276601095310555304159149234095449085359384697232795682028609657016340268349046554318336198115120589285248894961198009176785826139326524657647642127968795624486388937198223694179265955901735146800527768015331333758560127151943112524301133031009453574170261845500052028053270317436192898511158329855913492405691871445985170786431916338372518944689171064870660566586591832476178276912144698125489765200757374684533847245107271433323400455284816951447090012821990101667306956553234752410384817891472998798159963438333681922770800904611832327337457238652947426000618005265636071072981334685786948983681944408038726557784623524420650152755339104865676533175118219206499416967307196468485665527895227279603177846317210702528483925133024993996657531408557336726932569792591609987027297179686228229381760632112176590275376101103770131352143085854326964529034249221124099137442734203006133987364543180913117407205606527446916707813593354114386995804306903001909137337460967952655467772585082188160693974509530522682089750198587433117023932702192804212485721585162625518944528949336463822921082242956745961087016347601166002674961423677521308181310179568441225308257108664019943909661463600949174807246234644583370316984735672481995749655121739708222969028377507915207912923475429852284914025479231377475323980621485902106281262440982148919552772259767659095462707839939199832276879255308775843585378369881622862237022430172559493731592929954732670370907191892600446717205503388812611531254434781175163108091309445134053252051968452400401031704404998937144566803221617955086143181139153238160173830234698225746975196861955206881418663096809890009924202726511217910797045214336142614807174031978455950589559345997681250184905039590160676177515516310437091845077150104739138046461339760279071452225419995174095589539311121934174135591891188201313164999758634604796303897759221033206020045078083563679745469047045088958026803022758808594932441277318675322551499755507195785946480967979335255269204938322640311281057851158973997765702232389226953589956526753242209333128538353592784253655771622169435979870655578119666786174985006087513605024799317355275224353859641270617647919278611278297574436524436624714584671481961245222083186225702431972854127330958364589731776707271922807585784341952562800743544308298861375623560343041519039030233784609681176672807631620470289179129639351629041302511870443494037291294776831835932436461022020977526924556281045134005333714601012471116098340953235002035435695656878404985418589889054272734619482821619104493955694198364372395273920674417928233227388108972034079154837254254718552833440772197786466061779188024988603762546799670098821396221304861457125034850881180369132441662186506869623023670485360073070786146425796759758992875296871668409753441525142073600903514916588289839823837221300442424105789103246506080614611565953306519295895636232354369944100033314501267268760103280807466905766267859049293194134990693540255280691575378859301243038356916869765856098837623182872129317599280214788342298884997773312009816845955831215979218700845695424872486620790403159750943787325702979941139310186849935742915195268469281244741408142519504618628427307005122409364275807255886542283572147524113654093316559227606561469765377711990848890447204819617769246632488474133248549239492121719693498913540805510478542349981641811991247835221324597453564301924419315435630014423405105737269626025087510513511722601522082265969910387664700043199839156377718993347211004519195448738993287050495826229722086058061328229525590600250048841068553030871536485596450702096355404807873770280909922850424853893941962286833558538054260698698356160726123922270257952539393878068748047312605298613145771405401221840111744246470747760528471661817051537995575800680522852133750957689392077376848322607241707970057279295759874335422443236340990724379027685392588742808924487581994874377691248773368481597114527458029613935975112394780045081055524492039060420339918469802322621328098880249466544292151731557504162894465683541318949052023145681868414965825600060901649518258921779883688955331203619060151632764444385278006658442373027902133730251499129553782671483532516986729752505017505769139970754559362302835786486099337289128597316659404382154492914643308872435493260111344379229393159895587360877632399946356142657143463410316203466309724831515315853505677200268851752285647742335256395424164908502079884039411227486788555058892291225987734412762725345626605711148521692354312143034644133173159299312195567650691521159654472151810517452423665061224074115912644994896319169562500085213436895866093287969739107209439174629154671777611521123848751508655880878856639160854917424742558031591931434919152968701216748764829115700861411805311583480806761990215348688496860509740637821699548740354622665892968606318728583191897456308123546939462283936034332850646455716128330727801830563288806597630476361858124680181251958672104279200497017242003331039795532014958478367352644201709088952981847386420598169752259002996782297910970547806747214825151175019573682167842060841887716962094101534406683632343192696426891252882930823347419411833317717261923822542933832266974452181774583007198046563526540784333459133823089816953518788051960752730782828374286640086541614889099161429773477579716979502290179689388258544056081386073172464017385639143725570795265314670861000932906194001648564312171013034106945551940184897407810079190612376873667545544068765907191785437422743110193917610181924900001937475465916391813897863754299935735653938923289805591535998274185700262887679449110063889672773610097015349060500879254730766845738556724928750116671556871093240843614429637525972039438044523435698632521989125724341291135161384075625837773785873382667098773021134466844388762086969926623733627059078552682108964631646407113934896229371379779643305673889697042954308933088871242706987059359063527329010918337030469636640672935970884243679242460394290530556103342070583266924989624776271738391312633938937374220759998685895434592024285452885162960982124100014715477777465764842652269554321125437600417359490944970395861628802556137302826275604918342405936482604580494877704697515880556421261374113569009771428018670808146062707091003704290045010099163027877749943105268708557567432544699418989677011690014351481117629540566059836198469425564332861969846356061877175090291512477626659708364739538299342902107494908617719850816351379177833222899992891969273963639985712538562105001345588570940271053554283471282816406728634529524865944012305192211323813881671852268013911520119795373738679244836815627730435372564621568700155946093659526822995519056243561494008966569941528153342704804248458927982984367665608490138032971012879502090385191663509964868229822389814290938880605230271389350158441652899825759959774783376888466408411576085128658319693439808997129499510367166640814574326183383668190303704704099774658906730929871038621616636972101338477565200410804573622749611077672913138084736798287439334230413139008082558571647249909934092584709762038222170505224232417105131831583491934167115057942246175734093898036510956019573065105795120775312560439101701631951290955058283784887033396318417940266960249487616783533850888148961621169144627387224336658004116891374135699110375689546164861761208125274552887915018813259051169828025532672304720544577384325443601186191103237027228186615433454030510840897943408967789095380244282542587257921862327672719007555640154263830121365124996142867324206052698735232221099270161805086711838530996546489881686358545584202262014225538639311667937756022931993930463471805659958399733376030306996888619711433999535657794461887402952958430093874716505594206139366313733870192718852655969072391424553186245688349269238906661258366511342994137261037057132524101905641906204535958641034771246307574636815271357185612231229068200829182588567573668749571143601036036998063994564593440837761370148270374767897342063648757461289445523909834190994514898399043594471343776246119109035479972376904128034855569732695636774632821253949060396010375008677531545487677475044896093889708281133253113305066730342898488450561735972247744777531811937577365808862905787095105628728579325506807014593537498126623116681741004438535895308622404661730421501021427329343818629338982077208430210692761844141488430333462537235717756100922077813221716017927401777571553834198610171967520333200941425337316101636394236450161851445292975911308440898279065380062743704074201191091204806680276454393270456674282997166691401129466350107905893502308784328408454153009084378213272700352909301700791279889477026066080798498466180287127297717932502731322845740253645584851471438378192550832012859306600757569810843372580592930308750202688925722400160437381534485962305112752856283815187293920801102903530892461106008329767270408715475857946432732262604502005793317769337944328735014573773407466396742775734540945380117167823366881024530349763271699222117001436100825449685520930279558397752206489362571017302038382883419038526319296701966623249566377602633306476568574518512812688626716893314482488075418473741669427597744735473516593463800272725683975648990244430188440214363459848742802189468936107641578669946494916399518918611293458847804105882951010448047705677636710550728473764859031223501274837199993794781045626873167139617469851173464177384656379454526485703657418708931155422010654793971234104587722487619037765967379552083435101494443423866877404824165643012651563520383373844119591300717110567298523398280067719209154971660705921690125245694725846968643811508504849547842833374673805029862772171937893245064554622832795074382107255040997319746967067557951784627087683350839155120790580287304778457111523265097598162627927683779200308705204503728585841261549621991275911782838080958274511649808173889411145718760158675262799579670174330473965058019368354092994481091643273146814901011532941790366375673861268420528856719072661857633310607738896612299555363194095858224436494355963940461064830015513523420300107975591029115089383850108727363083293165958576086786510474030422107819565803412547699687981290914463507618485368746076562441197906138863917924737631842262971364173499447948311731959896463213429778371286989883810089646997017129937480980484824246008874967807044520949297444640916779881652653733398708018168640397912786388168030822826797427946158706841392520683177785163498926191087022688034860299554572852985211350239413630700308922794123132690283376181820597342422690862460449895550161223498658361324399493004111574030936116318387372257487335107807583558709214921864243708766926593617816496082106594525348683496065637716303329458075571576304784886089163516543322568294492753904557792491764792806553725826470097599613314237582042436504351718768835253717232635195674254075473113469806655639453985804888683402306963267406900678572685057805638739305697998497362678760322893388394315771065823460012211163052480580760350832822178017279106488045367029185030318684373138708542241234570845750842030225646648612795169108280387427485904925848141433823433560017587817875284231022657581746240402105719865008859373722087831308028535713843419648880331354306351894103373556311996023805646361291208527586035580981763056488458762484228184058615426395533985066472885306701913665450398412995834708217384679218069070693620336495930035002298662147046384695968543898893047319518578241189105091481393774245273561111250539923653743287015740318549098861286137666118523038536176332003129346091078421096030080925628315016479190900577556165145556519043294537465901287186703641623047637374218095958804999090466712353434889958318430845583048241212542855227865828796487260399341172641688115806421923274862557476567133192152837133805276631514179767769524935145204214252225799091054905486905891551208410132829076799999334862877499787411655613579051370225256079467614971881330068834084963206135201242072751677667468506404736736550263296026187083153368681811019040206222147312455547039957023533342640887218851567222040820076562191857874252394457151853440653779166605570090302165470226928075451836042750302109594243558338314506590560838685918388179818074835503205313219752462797992946311873495664297705981454357948497072608348906716616768928430099013890522153469689499136997712739784540116017454265916099675900860462842039145844802150176120456826140287349168419343010122231673631427067421370384844209122951621343677951640008842194843022224910162907990740933554661670685968175897103174548887717447619956122092345950615394943687853352914004807181285117631908031491326129995833899461657690609878588594521980867762096079548818675733290132038803056842368135111624403574293842210529935945602132148292265644468265133973905522849552839695549107623459441923955868404807132717617289530966307413132409754789712180884472391297275353057310102799499777779727810870967766070197318781099519972217693299716352703202211289178089523260896457941643877733884504314490014657521154250297791140846029191422287910858138345082393476137283159967375503865736921731852438001956102650220136576857640132011645105880783711723967909330298058385064039860068026645598193238945870318262755992642887126505275010114678801226756158033309398314491348509027171532887538504167407787530852176752522457898090835670068630893711599566681383529425147530932152503955050282760465373605876706461560495507414279954432239032181838112044131428428035099284990646701935888328650720302349884819092978569132701441740460496091698788999434396897246059801567845767709753495464526648790507028111833855840539411400752051424803893000255218821429601636707586665247758830574456391868184074108627735676661267703179512758852006171789601702653303783056758136128015635879365105089791140293529727670976043062469124330939945677400336613628828722498608734199539563162674218364850501290093926605954068036916824383973464865221737662502026128890435914308696937434824682958653359599127030940113533834956318759262559478120177791990753387257065204099698700957471614857661034496450669983464167529692395127399995684416973029606284516233109293102683355335561901107372186268395102772504341384382577231354220548772496251895620221863405180372161321974322386413042427636112565724406294130610516947040412215694203122332400096773913113492347410407280879856185191994937167771176923117131133721127999624747128281670631327178120079824204951657761578454098466619184999993936816995452849711689325100077988543510438751321896640220251857603421400152028711232055293139116897098686124747207281347133379388305461033276980794664994956013546236912092307180659646337527158640658101687724547517992515858673405231300828310775136585938639448954063887180353873930770134618451355652520115294149464064553474007886777407547671353629646231945174208238073789210038978987956981781353611760668903074764921135200374543188585824824957806296494027681170133771431368740829781672653225984965094309036035751407375266021246550879413529019489088237616818084840086231951801039367343100680499956788557976847427139374046467584764715432359500307509137381243531923869115062731725199761358969329205651482279019980929958288100176621061239066410660014401500779000826247098791725905335603259947937871315901298409446898651699195055967833517572045508084035180463259605080238109115103070704325396791119009267977356452556415690140733831834977037500002706720096727143353913461887162744234071021099558479428032862239206408303602863512162486386334827219635649285622720581162941391937359340110306874325913452955370814008958463966508459712959221673834101000575284396100373751921346598599522773358068002405377810736052351977645766393283745808921690807562485597394462289871392975476435817077713702301196175359392135889092333646229798540438629118560434033701841447051745122542023156923724032229877178344852366553408771351287015900133826797772461640435977088809761501130949031245220729188931039538530153843579144252494621732879813225082401463416306552805525674577115314476651423758942212657495321472083508787911114365736907807169072061425108003790135246577819860374188709224342581772570915852595106797436604647550687367060497405191430924527833491634994959880441822362059898222092775894608812469142411436987295627386007043701796071066884888102755526767675822794011576473377580547960520195257694129816388347772790700585368280597691188677851968362239371883898764783812372001065214692352800778120776067563114793332527686477160515069800613099258412052746713117517735183636183791121727162772952327035295855028479916249225619820812891105288499204673598474115438238084488584193430787053610262585897673560737396667279225610504109064836953904776268360803599058566526924962294773922263794989899854084896065924601022160952164293294586289276800558625003847564559687784099408172111728261811921189291752869748040515759917882510709710296772169744878680748102274545570862688162548222865068242519598201108598773248638832494787638898010250471264701689552749936553502680287516050719154694609432221650392571639787155999455913396212173263210003597702618174545151174057444566928267673989024794398189333773463414436630544565007700929793268021632409486001293459029318261756414999146646875587040624690470735601003588185683874868110128095613263257995622272763964967199331018360306125890792935825983148401576186425908356872576214411282170056651935707314090272652799959604548757058650452480560551653700125615429409201954981635909552181657377646418692023962538420892013706248634012665280086523499176233893289134205868339278930665470212761129139192005606064086913001024602077168693214497315613780392689528313629991168465612573701739919010314046948039205508346359537332932550342811571707318474819328230190957766062780183822450513726254900891191967017222866927771545828403069974551707526056678035758266412585986735961555728328926012269002556366202811662354117744213490337861176732285490748005409572618492893541418598897659943127363614655868379153261047384724582019981702977979153799695554326763532917487166795413082357763522623495556337348022024350020713718511434588143253204626106877106929926784932292468544390905755643434376110291579184423568969028028014355958770708110679987960256131919919196091883370602940279840588178632999822354930009561436068407523635932161720779071519154147302586321861463567785922927431858826258844411574146622936710027334893547554661022482653112918198361447486988015195910481547678716586522985410309027479351194153253697222594062437378345550951732122662093330323848307155906676183187380390777936401242850723213872686854754156601389677711322849015047102324908727481759182940627225910374469800572743788164076192233570723864407707683192010285471769318895904309885025501763460939018683624279722721500907410216110137651269876699353745112948376417889217008189334642861232553179706296000584959591628441337235175530458363564413226304352783591094657736473073326532945233876856673333407975365808512743168808454087035636772309440649969932417419393119935606102071744126807591131933128089651914207394263536853121966121072746528414773364098507770035112036407153158141826044857914965177572361430363118451662372828146304855447123529700885248120386739361371479873482495288170457008477493790298891356445427870898953106796109068444548112663443840055467632794180377564514236154618560272262835199914775388661006746311728410043697022326300847962590526402685761405416864588434065459068127964700267445559887468025633812713894052924796512292399648651065921482260338639996107524053673938073271613429287007773337099155205968481708852254795012530935805781968650969103779606320542525331471633055449921465533862065697005512710901292396440096532588304652517675614508222378466945487152738351608989261516436979739735786188962294071436661698180048844823265703022773980481416626439206172506152794415142197664349176624731970443851179836936151095059476555059921445537255530611905934623518590812268182632018747991362209900946143529346990078789350254138414875768251415769425021982029690731587372992806789693457835139159843797413043891467021043905610805031719698011289884628590420900758170825827947163402730654019533795926752059424998295840756374801483546627760967569484844750663853276193623209181730876109648050619723586966045180616079179351450000615855438296448924939213495146973280677090906463028491785883093939960876621398757251091452775563819779007519185191604487124557958238853648676708208953704553186194537887217237306427365613322905509931750732429788930811734684845124597012572628951016243056758913003598130928366761513107908064721756479931023426680751263945898558704749588761585890209252153410696864278554298946932780838822821774633743273482528850375359488180042234796372501194994977811377854509601798209107648559297628051912026857911201955330672986396121324837613696509318645468015954614662651387763377300038988509521459566808304828510222236709781853890520996068708217618076202490390696093070539617559040522479729697374213353339064293039489907386201288530948788409968347947576858584271481391123430088272582813856454869439937441858203506278776552485008673532395072410997389872773225958207283229975271171969965892979108838800999230080895067866441450078614989199869302648027794454566240064676923201235990939038150836081691612975076894322137299572552734529673540462228571499940308250603647317695502098723719988333160727942305591534726320702951604389803229517068981795858622251293633313995139147638229421307102375171050018564316747862144836167637710108723808469370177730200338386278434917840655616653362368831402018654529625986777655959067842141674542047990218397641085670612985742712123400208712340418539478678818325389856141315630634770374998503353200352546453388607001793338142813298838793312009769722007913732593103710213796010127734911306994473263797493697595891026618189182280452059571959085481238007995666407894050056828387454695336688107425416357562670065655175910286936835860824802461466468779797318512851205028160012964664893756303969789004179285135375197505781913906216119610325551742222563739750133504617575473659743548932725047454369328419899792210139389011638269688517804570010672323129383077288429746040110841809170325633466919923672458712632641564215367234866834075907739797662832830544538259324897500557951235783299366867103611656264897045875212151015000929113485966657887916082595123564147833304696825536313662272009526111971993873366287700738733880965054961230582608898596022369746674530753154789858746690607206602813535218655267227994500975686611598630816986580512684272450398115585550428302367536426018417774389256397854459713810391615720330365962088585368940998941103648509684491567080347441986182392815791979678019814954944449558944248225549384493912104474349101189233724754450547925742817728387179695069892691870835202649532071416913996608821742430956248630600260454388052840303523622448745322307778214019913680576448227194050834790687454779903035337480756375356894573853397982692540701005048694675868325366632641492862118259773669212223103913495204757468214645158257873344942047088139289415676768359665527700447421239152090880897544588868939369718390826172746914495334857275380400841898587978431434041192624311869156833300225854777607278920098505507758454895737518377356663874525380889937565049362249794841803475504744502390263078721297068390089776742233352157328939718805262480721124025689518107882044208070935836457405490718417169398618193399312632769969051565422576850038860471535647668445870135973833245005030808468232177824396900613282332337339248247342583137337913099644929349425019544644572588666535527222224673209153026176176075242415756525860015415784420171593767629633579647572237598802125237073087940231992528903939709051306630900893019940011793861153978499764047677548695141205096748674977820887690600422795680447683554570668943348399171821663785924762200672167567349092856177843349395298789985272920104015774125552380885435810342101895695984311881505063825637277741032990365646947275320866597729153907682559808841035945845629049822212804168160275720320210098416273639373977572475220161334763383180346084657335142749239151756420509337452832505696260376651417423354310448147116777204075131731158623874678391988198772005963011311030098252653225865412268661099881189555766230290135928099210161725680577939260248435198092394916364831032119747968980170771613967002570586797604949539515248815506925728849351193117897962712777298920356148039888680857939994673907300354912425203118543889126459471613675063859199859675945395064515886832815019199733701639880735087748871818202150937693915054432255810638236959621323464113228894854424779330771590616451987214412435253342786942944171560526871548811588133100023590071766809543169461543768074262130636201264776814546379538126726027865166969140456221860697032698467060457319903358414063926618779732168323002120064032946805553512168782251906059230058919700485758544608894962226738176069960561224962925652005372309860221655073367241062086064036937913366008502242156571777067236316501538956150878631590103925255803110608263677230624644005223716242555769692553218797980302113418008629744288453710538954270872377509040618924230474499696987894582705052946972993132098818331114949282892740276450944892922282555567262559760910811200192025666948735943015729554934264947360239494705804277114700254702111445116226863392506988547262336485732035541611435063503146847267416886221114327054281351803148107015181175412895894106767758332230427541671501455247397818871820331856838968817839848836364981174665001996709305414454828713495620302694528961746467249487421438128554231563511414200616453189310233922093762239474095865713429593529402915195191923267501911054832671485923703901298856410593080229534796483220458440616046827340422718398407851913065907903113874121621967546033089121388372830880656797333170356605457362592713361047751992406736142862705620683238758347700193106924683480604658707929139781415856304606088681866154280762215559954951463779481361481451178168031593480336628983909337100231404118143654233820288774723573897439303027126332214756713063829479574592892165692258025554796688407417652327298092064241460972701177483549146328605251805900601386029733293779697755964653648901055731895300040159992439887604533614474954442865666637243080239807199537653709608819859929895228819400878487053505439044060406525793548119831535460054343123397152021366546958148760915855453075998466951959122668117736556873882808819001742617909697056890191718329344782696431673024723929496700199861755009668067495173674853570944326305585970862326105258071881786392282259085620358392180965752987114431221186919132699709899075026608062825692540852089721915831457132154736049516817650901215435364484907556137335747647005543960914956585284604621679870398884938141703967983956721208821244796784828007743766990627097236722669569280324846674855977293620307669911603956611519305503189812617028986064160295160757107546960969083293191348727207793748202497191019988335053450236121551974231742262232743307774405810224641074141355097997378976554614616246663462794401811815290736077634692019414705173015129764923590477190732737211408211952047771525424617420622898521030154814615732853568145694685556194523755002451093286440152673355986611227470715701881793322248532375449315634401957828447032024670507856047619668010492302763940995909682202688009862038514091234252395727858122338588165856021148040758203635344433303159030645316282567588518819178583625021955877328061929797004809215993757355307934283078846907848943471008727931766288408141789703181276195913486694015721385625511767810513539335675048927867715908907775033650268835402672293960899682005645906074178599606274386518936962448006070302384431009430628859749349302613104619870607622948750385924972487974742800520130293973824105323268789576048994095900796437144100587946376709366064764302221669890472636903485113797424481956841022163337457261570402770641321704917175008406275104357056284482885716125733725055392236024385999941151771971677547743278678647716643284511340969021070887934580911887900698677160407220176734738029220866681028319718653727794594190049288665566173860086602402413946793962343022540362118107542220514729089984289682256720845957869571933013862596210007557990031935252703563559548514623569240732542564474828045220715026277236106380796647614166123131568589502359563786864615918736069573290555054039047629685489568406405364961409558193916105584283829904229150447569993448193546226769609954955283354737865146978984169589766080470656204856645208836198440821299723795368717863920909861054606060875739342133629680550193879483754359445256211060343908930576995062049075029745997960599043421634325076783188352473808196005482050056457063162122051657933765021201854729239009487167431690387105857006724461964764432813690403058972740540002762581740675570667846921717889234549440306721386949610470893547893986202454628431669524175194519545076594027363866012512608989078118414356436820302722309886193619475828453372953062577631127209175137440638845470836062758591035426726695093775327792028621887190605967192824090606486492680251676291673608580968807606967643887813511350117892232343151298835884194490799758196081133624138268720977449938291460004435620872330464372320411938146435296516559579213725588901717414108989321852355183435560065342490747363193460497620400973133997907467653342378845494718642696277128919582433292511094128465570838610772467109754700633006821431220742682991803419894545528579031095646630124807895308784385130441100075529294863699111209193465554402278226883005798257436700522301395768214587999766694177295891456464575185727823574596261100265460180486208720633215635210845880327275634920815848730909370804232531957134042236926376764907312176384773430826023037031375868093459585384146026673615375694114192446585715806166955717772511942007595041062189694569965990334426800898074608914122580391592610237619002504018437697417353548193681956690183149550777143627210054429041922271635564223514540917376953972317288317922442005983872840004061011924042419942759304969773758095113115184096248313141397955866683234483047886983329247308626189862435649067819656545072140887061479269245662156111194968035765518476216524506281959565311737295917637419270730846562686201266162205498250348800449911574607041369756222059394933978303007155885420635428330202817171053899993544396279153855253930646414959484225675759065566769056721052425152094149301219422686778648739116569073469857942860139298270465632460563514616048914357364495499841606837600527559445787331523525185275069732528608471390608732727223503258331517490340759793436789630730980093196936723100815301738081021045510774181939883443369163912175868386392720540151411657707537080064638673456936200457463771527539147802440837726339521720811420667134586263348480276928978183538164326530441522888435152551114444381068277997862388660021109435838254276747196849550489175488493577014146159501492525325999088716949091285082371023484609263936144543241708789462952857812155837979165088672025623729281422083544165536559797665891988125439942065598240040766541786481309171941202727143957673945745057554390356268041642296166482278787723171461536213984890831471078495499756396607725671609601825660930072089111988173927247536452652633110936334499231334183362510034250408734185793923846670900555172139322809445425806387181824332350683668262544277906529764601426219994047861884302056816255192967778049433685136878435569027444975953650974369350969824670540460478552721764986136795963889602775104500328229643453119749454733987110022360976400614054093608820806471354527031285471627599175144630106592188988099167337092870971713447254331647995286261202510469077555696187870956893945360467024060088325012950479377928544670902178081147258764110203656381613902049976022543570721176678898109327918597906083895892912485003371480137446691154841640620875763424287194693997176450337176094163744865605799531010234118667494825246076958917684019177665711005095591145444869411033841707614791524683777234444454022052939362503321919221751764802998708418623225732356567089258617470440740093037910531133206807345426479786541997380773955158058473972435739631350559509300265974013173807245533538014902191676313133646235773523628390919552295457048427731044319850318399909260420082162256633430571212345120781598272608219927097648591445178355105565260668933000918444420740164377599016736246808369072273288149415939627647471640820183045350471891415313716316065567477117824241927226559706832919387799333156336910076446756496188344253183167231007023088460509313694070580614720398519387392149918409748981249951858147702869282379790755165925724098250312368336374706078495692520662609847534733359802602312846055932041514821670838445040021024612843197340801444576064131481534594126225602979292162361502066813213407825287648712402124551877912630445851790232428307445735338283121643181511606436451416363593934029063165406261580952078843176469221305055750247252714250634383657611526329738571171787453355990829147364348887477002915280374612548845206615386692699172051646832078341307747229623885548826491011685545082918624916546102577718381290215671252774538192121957790420682275413912290371760605355939629122116492140295113603705304807446665755895229456432835688861496456246788507530753513126049593582419256477067983200101510751840615052633383434850630801003306173423117085358995488273625308313509041402627396700729526654448935442392650450904463881340654028063771806775641754699773140375397213065237626649877535517596131034017718867698985608874561047168343281863407731182364439423309736257041023874001236541827596700981171439911042398905463644576298465927480503563010398224581214103289440667802268172272449692822157672919740809979986014828500348816715432713303902126431841477431541883090957228600508009266928235106586164965068267830226742961524992494389930524363681615852571656207135697795896694286295970101048003201536639675682796779927019031932147614559706563065923406164368031115719640431270472916570395104979616137058844630790294053021644552592986121692196282403971744164259841176552217642199503202864233437997629183774784960923503127541248404201045657384028726429575389260008369616614497325211779756517791149940558993450512059061701374603865079222102734525260381732425589378808342680581288404994903068161961180105857655878618763368685334298114702777304993223080859789124094188027588909249866190662233355665023993122193193501929460422716901517557403735508638650864641546790000402286399604044928166487268837597542039719695442634890229131648995122097756215923459018169336383573197596101021215757727682063673737547832112547034959925197599318463024963581076558942255053198735816896105967253486709354865074530676337135473549107932575504350480885102406627269399872687315919080071640835947281448843137518176996607207013640832160327582742126511083338496742470313605835836425920827157716685202631260050789337666208168466452063499394799514224659620475916366607760704256976104836622721264179521083546932146411659042656378091800541835787792016104645134496615182717697279914736812500167570265557637439095613390143648999339836892010150698002362712708945028308658392321405497699037082396053132768300004323458368715263895168644633478745123215974281645783627308747931926265756613638491136217713750079222646284315091625624516690770856490173909428731255413349166675988465146565660427520633882650590401680109464713874467936854320318084115145746991599107783935116836567238024250818204701788689784560389056217399578975967515174728911424113823993114949796364382510494732328750295685921330495756430868875089371534551294364066689672081447499466716191736137044851233282675633826329375489589471725730158984117355490261490593635946230616639361427073123525984697742839626847955578291961673926305069468162637922251651387083123086165640313311663080982979060035847021525759833602269972846028114757040896498680750426942504285146332389228317277303337069024911611134989849919156904501563474779847541505223439932634888150429400142006834984692089166293379922397936167141528720394031429612274459622313162203153564155224082787540192892667697876311111548216333921685912150163614683640708939262329257550287770944534679923190009496683024383735656349711739183115016047836340546750499429899279899978846580741359253754455348342738873675294489849476467386700600787813819088190872723486231160134966143147094287125101872153536007322834327282902041637241889241369088733576623652839042007584132010874562969524037542223382462190672496901685778611698837934208324903071503052971005875442308711494584543486784775571669488827376664562411687914212699715704531916875358934875263339874779706863254394431478348148798151729311647248578830928844223132761186029929178930890673094402903949373001025071717591266804669051361294039171985370658739167527244965359434958591984272423089816768332172346490788954821320858606759996364142902385787004476416191674120174711733950280664024354196545079809509353061605636872716640384698533871920094840385723591227887668326277530361937775248884558424943203137609028473205886261150286228221678125531914135157268421422112225385093224404853655883358479417001068357915253453851911682545235063956872452436793080956037675091180291776967485191815875605377415395645762332044638991639377325556328960122509196221731467688011172611565542805172986549307712573384732272094062533188217364863458100562803997952643280996953021770489882446551469318170856888889772564553167562933964355914012022705015835054458558784465183882693359402008699458332900809542601830106757681733278390514552443196503533918740860493548345293784865398639375905589855537918615688659536264916445200815216854680927903857174501321965864165655611497883871284373480173329453708067472194471207539700745394959341231374922747236305079115232851555262150400004845392140401367940266876151036081351572677272343371650073865338629386700784050928960785534032798300544739835055429225847201517445380716679555110790488844266694153426822144885497138140823482528057457706407905648809277687292251586781252114508484047974914285692168608127866625505380841026272682435881296147173179355546113547825930162789225379067315925792354502130654692467863157139997756018958086301319183305008988119023211130249280580092277508140540579188913512133124255098582012797064706194926977187126623982075849577379238392718994432968235120871623385783072534242904354998962857948052250304543963419229939309010699440041648014832095560593162272706616959160610609657456960789010042580168142805636292207432850685893843043893739511081517545503727519369019070181829311869223794775165948292760811344870495659789614020683926708051318955772754340221131178219790252244815888705751437884402590598645578535587941226768595904476961272401617176141178707869367949730071239046032858197767255849894474246234257066626017544112033638421051233468367434461432161049658694619702240473379078883656587653071821392531961144137192040201370182007309157905483540840644431407834056601173965524126125132533447837870643997866062103507296246138148685045316689356813676552855266901036381673415158569068718587209948461338538371755889890870074060336855525789090504867985795557747436298618672526661928621060207150097107966946580153730646734293203914080001495830756697817476935289541628369312505245316006202645795897881391867356873758520643742745360235393425133853024065013105408450882899884445800411009754663886101941789526088937940198979021112130671346464829305285396891684924771945972974161027476046124844194864096019481664946860673529951482478955762685957970754171392517730381528658650268473531469679338691519205104792951074336767230089174495366030224178190134198656124042373755026861064461865684056266261308556318381909111605885994589872720572620020874114812723156214813284741137412013152573234197808745873722908297786437995418025265879978324699224895723242302329332911415516928627859476328775076244914232550962200358883511546948027300759759586104534576878836480894339526267246930049702698437404545672582906624626663150829301663948380927979068770721484739987873028771967355778293213516472720081660722262823109417006618132595180796868971857034150996534099374969381430453621373410327179790715756000870876753438145649655082811189288326627757240550466080894400698196972818203420009056914291471403663302851638624665029926403468546179412622055725183136496912797996971301353227088166597451712961396706462461464681192982533706990381489229727398646848500758558042687877678191007311978540173056371039854646586203570981406826393139371984166953468518962402193334091285192288181913693815801838605395287323990796711266776230018351144955106912706941942692526484863919077435201714568755295741500278834242808139456019237915014281616441239339318044079985436195431692673219734163336090066599784591293756594301249929788928889421408451675607618683891923340621165887756866464197430595827545626160494535427740337355128355887005412768127718023903962549825041899255667712087597994287044640751294560070862233634881516957982622408835460827921965789493577229656930156253192449281701988802719142008307677898349011955864925713698066028761143172936769296638330972065951797441611230767460971330711798910389846086534940640356961396007930645643433693445530384978932005680346703738894177475113931227337825286085928934109059027460864853250150568690228862149175633590398165814557940617938961814044558684036397636766523899577536053022309407481061493121634906576931790861713323472280231279420631893204897359637856286072712234049184120222948004122704405402201925076695804647459324864728282489417652475161497074247042349029493435816182489580891363682908654674222299170218272023820202307209476672643491203719123087066501096616928138954380630161304773881229632823151050987972986524446636318739851096572003295473362062676732398659772488323505740567276449816302964008759400246732784868059520356892343220274158018974541746053250005870115668092255184493232705863880727353675950048887951533908977754703314996141880352940178688860246406459489863662448929861720961791418128710511713144179991347328839443956294421527747092609096591814158264302862529355111954484627532513077109030885163081573112357265849012498275928684617614315157055845872842517012254798798831126372750228508404177224434632772746738243793909503606320441719161047088716311605419906897678917408087758285320212931921211778830290653130748236990596783605458310543557228268955347748049483193021614533791476882926823095080052150621066596450772586968020439585881131706896927000274991954048036708460694025624522949272435583569520076604530059740726157659297593808270785714585620187299686891239003340988709753899054216295164370956748534224710141680760321527210916569307267191491251363019917698577886094205201770378026373998028984546698331276016937145683395675295384168596399947928000338601848123457322030601571015568046162527942629527043861317113853581203131264168081150326014440194262727840827018965741095251172148768356503103503971370836656785913909587905341373657295606986601102214318917884735429398500575134553220630233590182162043354434007995210755477596211386482704926165493819208873201895385233506605542346901921635248251740584592005198643794622284491858836820008093744010906102865437534153774825759052827043063971915632754691761867159940707126382337136674253062074835649813086719735098608841985732732136364516862637046535593284744484321618049916659173278733233669916736356499388244084945251279486682810029210872628017926813107735980402963848519558020355270146087691844779982230349302956992750882111342575028268465371579076543712092509456876065218321850694786297865815559371537750098724393047768503724489714300996402817506458290784818015946862842378631929986433769963202023211330771673551808834157689808903850822440910558541091368485878873003304117523713519429175441025878426222736825557025104070145899758759503692334175592517187004015044257778120956822086860001312435979755616291061968443319160165618078862815796681897915322645199524594949947571514986875836151254556474033987086354968906373162754025429560487598033789620508816632246080409126740530406524759079301844860626277029408448683256546450222691053307749863503330029406701700455055801070499387349651681694101277577438015200448962646968731396790619888887678493172633815638524933124954766829876709802516313267429889966605254810927852637942999637145343521949924485752109856061789258614916750691085636417030784249938591618557111616559339835352485246981595606331466349971184347340724952024712789926327097044786102128443406764574712845147201910755407135388009751773113581670324124302668398934569234359976950541241844231747448103350231128847691169639990700323210691277102263457087464453321815972093469287542821343988185986323601833446823934650280765517275656654481422291610107002119307613132499743365715092245661355515097903024602669136334403464423281082379393643470067232458848602639621308561539646235176026842819546767992368161223968483295224598472942468002051582275024792468797887601727293534286638440258265257166121746060538595228576492157817906087427310269093591254737304078439853375055425790566587476682899730898723700205659085006029090623710133935930137344892340337369493094923029430804996155828626971869758690622262655758515960488989400768075544683195392947640562401567889854292921616353994227602557079195265946330222684955024769256263055934276502687032302913477113252146659057905677348443467661068289787645909660910681589661279772765805166227114170339974243743370352881530393410801409649032444460346285074202911651852315463257369559835175920838769582087420659213748646053167146906653858573494643341103119493182065106448142713086420943669158647873846105642304396140614849453575201457887479388072957102547334061195098223986391514890812961188863272515336707842307823391027163346681514090782618767691049117235683082596984387550276633521371318494796985982901627891402575125372658763557265944429079905950133856280919066258586547263145607998918950119685521297262462889472485677222544961158626788438566421244190047827421590423033395077474371468924315007840057647684266785819984007837938737181803942982056636735267338452492688144585078733754780125794206781224540206235863430991831519384119868872468344503031920636422475893988261108903187548168324855035594355232099495840097253460366730394652683279451243177540943816973411131550925338431045388772471621643275712099596509322253651493118492212122429701016495905788629485843698868569469855559801180902095067954812399971809035057595973426482262548302164369893501525876940428938009203211597386275416209775063698091005180496751008863985345010129285281040602283847561152197601032407433866185424602117416513090388155575876402885400107629837150370324708934739376854026030722989377567129998172030557595379049999224164006617826248228090126441692860956615181966429679777777828082493494701611183307772630014616325029566648616578618988519749713464521642330578501321336272590235032158028771153589457586056688437536045144912392656761363979561022298844625217789033749109733177931850715384831788460987605794672817504338971833374908575801761298816735328050993474431759532936383319223438026725397505363818027803774207492390490476041990790161386477387962123284375475004439010048610697473565280514736006808219093125881899124398837850786078399832972552394689354921448916120475369642693516101346304793073625686238352669579197149211608989759296802809700041265137082004568474051610493915133271068122346086389577443797933503012590733648909831136925583493187490334991498818557597791564435639829539169911603430341643024146916820344162339011177859337477844112479081320920370977200812012546105519016172140493519682065742704200185673010453332447964230313044268782560308638309903613223695726077300234836126883849744901528148611179875164579935283348138376679609820878448139692064437257211280615523958025216129136277432081060182515195709677489599064201502549817507062139448260937112377813961305077700816876421994912823440011339735963548350764267363897261867972367801615009319361743970012960823653309587036783850651183058679597514836895668120643600819889095085603429391502263682621199422907087602406256931470995164838660182832260541199297539388803648832173265154652153526647469647314933137831873908741597401910503341925295751767901687973718238293083430033918978874360560047202525174008370231225375776281325986096435386530250328691128423032707815143047095619601311900331760397937122024885692951332843051075461389612760713873870769018765539525727669549568925617476201513022209749144819130750057974171180838749951360419809914595979214491733372988423141210553914277297514002166821556792315829520087066225002580643041415265641802943433492569377817503308227632739012628675036029706060748572256112805773443147754273314988471019703251134115970927032509313223586105669227705889159069544186163174466274181390072331502986155481976499317879935200978286967222019601108942595746925101176431247015945402451906866968761933980348168115576123674995719474892025589129683108996436649675705614112153209084428199804776758645539260265007191582240411125276443690485384549037918405922967115676227421902056503518035953144909875738099512787546195324463291386412047206953359071355438080280063921574534197616701305804328483097290513854410663334562712978134914430533749431629566629784569957928982797047589933477345467010191985469927526360148684486227591472632805568422591130744567178197682137388662645458270492216507782668819021469837332331750476846533157983191104352136216723605550559730483434152577504119698673344412692921995888399964736280377649601881033091390973325777982311157273101058353660005629182925643684749710074111648627624047220657030201440058649675834812238744448024966359309646688186879474347203876361691878239475860915838792851626073472420543418593664839576192869983285054757816834085495042219094371290390822341485318318210721038461061603956058569662442608778777331077342198486013099265615915344813311857606113326050011180418308681176926763940823765092289026386720999123656362665927301530826675113317331970056909240005264125945811844332434536425777024331952164839693450827666517002595827263377140263126581803884890586589868987238188085127543510214511832326606082346095235179901349053821574214196427445168542834962837645955080619329311518894910053152135692519959354617200988738588905597708803863657973914811265865549525074252720630838973733381998073668883188620925532802070531999330182558928819805070743079626020052746383409215620376173163794526137425784396188214718404344877366510532336917635673864550497977444772857097594438879646114671013654194453935281614593511799549572878082890847277221849973534722331684139725923863669082170076959791759868713512257987741587446381555016799432152823553826428150844196390462256461491314731529948113079516668415663516306369075861040455664014543598282581193977425943812206391831560873319367489881690177730220303520157409211005313268260310875113349110110084790107846621134045471775692099194065163608139343104188871866033582476661159195173907113396919320119989390966083731153513751667667346311531746334249664864658731395777895366098217153707070605892514742080684732004920002108345298942613232176566845590467076415511776793178026512085867021260967750794827193089010983761456765875184196236827488918258044868672814206778575692033900667598566004165364791991496299791876991042121274278138722842992657618978982783985624193459593020040608077734597429124233751845854317423678490222953567515048548696502200535701094260371092583949758202899451628628659565813471924793466019790121659254968868799792478111782905892409987820369377753379624688662827535339915064510114742397034164156112107307565754322952361111273462928293480362517971439754205819686111166508931111397333843766629392295754173224873273005425171860349518057562395988333221899154286303784738420399561073510306377149171910360791498466397224653436689040815245583613361637802281088868976354176315883287848582651359315318165280072281377923325508369049928236029104424266385812014671990122108136038352651099418621550895555914518666267997590451086761550887038151745822142918439061771718695542716994318340590577537955235461427845960904736369641259792345573867651327844305363416357058621974981411085889377266717675124493748767099347084421076262297779064995593050130487625470634391288970115570763410821182809747922035370537321080210045741044958983901678971487987072409936892867122622007182075924738150472622456098372829309157799967932052317734613796474188516953589546810020587277257035486047142457540198911346632037337850910100042500793545995555649763583682057691279478140345453960173413288506628601262557770486207410919812274066807279321744450236382109542756766931162155766624856654373599837978981481411492256109992423517113366851842656926719560768422619376088143204884697883656462666989691673093860779183493731356402855247039273874954175600040327546465511391239278515385507629770655025313042177888496444397303482416820441012799427106979729042798424564662244731329873229652966106921287892992516749255693215530960085000109671910462872294122163332071507570056646308077052350632761871681901953636982958712529077202990042806938829983030316376556526737730499945704274205414134372480411893514466757375171796037234406781848346784791552367776893388479487771638859378250839388720114123562023101969152040554000861134912969604872788748402936634078469392481341705490790963898157532962484613044880688943580145159973289586555880505753284328230922886439115655404578377860633425523529147712524246409807429639660497029712208701840884665818447955441846726298577132014706887507105103047592986248099211047093555335133056040028850679748429055602090239819603988543678455578184702407933924834689874908543959217736924124718902035264676963198103661879654392863252157369724899365280117778241080068145077549448370259705910204754680574950273184228473965890002296165750722860742909546499733439733881855048309170567152354309825072866304356173661589571189857431367722079110691830466055408680945561993776478752159349307148654136358579755624724445471209903092186785633568623193765378747384912840369593521566017276911607748257074735344086296581360418531778234632589869227038310963103388514252744020068589711103015116303795690662784656929047308469739905209775887679400483774032421746641411995100888967607573544555206232880599594020259952821862876847591161205093911117669949965943488486730854765192085581486904753755342840448507184848472038947195475628025817700621087560764545878513763935991360622477117590826969833258482745946015814809365060566515310903754242572696830204359304380196514212872530749489812221410881615422594931523918064089614339739667056220237408576726397068192062499719589782722756761674389634019302019931317987383251573465221609413270528458182373557348983255199593306419840471439788224634954060516424739317102211982772851857506323850508077481615794039887116484771250240036824010744456545506684964825634009779912573819369960932533496477041612070720182436139722823728619207040162320093931115944475129352378647798576540745002915410965913418631651446849311768118306626182758870118507491988330452489733757482380511380014971462418708137472194425306906234995377205217134491544847566019084361276685368234005240085964516965518531328023300146154882415384622581467916205735427697612821253668432625984933092368553488586519616975927147674985891021364577597191622704467007185257033956479904483509392882279288173156297010903445531898756037872711514362718912548201723269896102325445772265020236067440247996711645216147003170270610454841135852055712572094102445948800481418995100701953690448067309124359942807509574783819243626669114855921170288982497874070461894441592072651580118693606941582137018308233976985478902658245283567986915589180161712387685086735132385053594773964491347124741650929401760816966143790428571488870826362018708072671011381078783806886576020064488815019598646499233982222483698958042014292475068565721232779414340789875161666061837333814388342498261161576990276127113498140807561251278319750101857222301230540867000799989011334187721678837379052502223001600150329775620817925780273806739534231568636814286902495341907898947193900852765850425028755607367719052290098757551228044126245589010058206991721910128270734033793901704740658581720920168044026540175105230211661427829264383110255208353989992374717748678825215583204667342918219474355586113665588256094879948358357657708692753918369008860215341846359332791525462436966081811897917936454401144690336839855617166455820717050196035067517119846499970486492777725016016873802510454701875405782843631246354977280607714411810734744761967057588089840480817006478972453208782520672650212725382963590737978846279539796719628432388241788565943798913912211476230717147997647614743202142623690389360509797453210803574874905393837440484892258308278846686489000324948871491856014284963303804669750099850103949379655674993868051357959114348535053558679892733125696631274224983887949561933685111537208687276974246219676056006193429987933496746080029607176710296471241411081207610859059336424934869137509729830391774643272530274163096432318139725753668884326475332362508724182969494850713918403577918499818882130759712722726221119148577253448383524735945555295878728250171776201992552012306259293508338671057656681654390121349438092974642226765541999522241727730327681274120691361681056785869943824730184755032690855524183718104780124055323334831553142903539699595118609289856140381850746786825391342428753019248973202140343860852098479726986926253936637534535613719930399612958967695598647460204754231045845753372896820511290037291462180623365554529697048454678164741767499200401758985054181187512162618452470095126456614568383004147272152278193165561811346451148514880352945377594765097171131223021206389279321262626959478047628172527153355680848477600072246056848775871248575813735857818701480477992221195435124106568008104910541226978087206806446312739792108358048602812631883271485641444660441184102128676688228689900953093028458763361823699192426298978640787737515111171942410240151169664294118533024601217213223897701756815991944206657608745321890885547068954377268050001983053227524233904312701655896127540183917203005147699450403496204282684371988060062224991330469728105570685001973994584787436542130278652102712028844401203951245992516510163352140017024743815533689757533655379895517760387158725535997364406802330616584991958313921744586480636318668171760582533653225662315764748045486711561890285840043028853346882598591587063857821099488712704403473951680102024431626444571492260124044366226063246749116819166386667824731116618921404079788217462659808403827551561981564467833218601019998370404669383208573089114564547579674018863245433141778538556487019032940475442451570066957530223387683626075885365819446316878171290176131407576126868823476721605851396890543752994517047249673603622104673482619350601432128457877657799374484288597750737549824617405648004932552343254460385794948889389827988284113962106361045372649151540477231708005379351522629586574267398561601220182826628279657434948564341887130529433521218155418417405380034890337064768634476268758122446915224761506033888848189741411251082704686837393053869160976166128660973730776277892596744990810495930134481210511188529121728991564791520554132065141485085818452752191820646743701493351135161449913180503410239798610214689760356034884430712206607444224676600092013731170704528415437821984321108643247182366271261274168699272220713196524214199005547333951513729793754461221514609952849514762575118439194552352339820498549344271830523442500708848138919292231859341427679064653868363130104972140089214805541889716837724606091301368925395651379137377686944827313904527609311135513414448288840104542297992722940456326469712795097147671824127585829398956607870567181701191111032520748714783769335896881959461432082492628163859191197623358212901232768726250616497826020336222741235467255344630328538118112107657193140326188701863523313117038855710773840183763788912898128898782210509148186617882746947584810390474240332977928755806639422568825608711219318070475796555827047283631643613008634242045522592897993697268838804831102624376080121582155710700688708378173114622793778705950801629175559768742696507328275454335943130323657592370178948280652692132231286511698964506544843873386102038525797726912748648907704970448792755998410196060763371947373260385227349857582647345910279422957992041236525519792279843638941307088048731378341270702360148752073701657759068746735954429714559279348285016017422153119982087818326089741178880582678008630000197391273427288583143182266280236728434753464228875802111469283236270982505164611627033243829523152963949876501058360952462930303012554290044301926021562673208863757183081884215491510207741092791292234693662607603545701418859382696814570465538328839709353147532443969641691919502333649368015776552158505797149600600790662971494985071488935889008247390732313288389716887514014617512318615437091119659655480584036316477161824102668598168640959744832279069229540862567374272388350761632177918169485609240015238833068598438639877109723773590871375665777593413540059145202197669331034378652325188373456424785758661468872006463516905715700424439525930913165414362969956948462830664303726837279057550763162497666545358342216660482112454430771985553305652167378006825271485293206093014979399946736981200601656538562897811694125816448765124308446626665506352808364984842172590796134637189851573449533587936307426815647619218979757651743448348064126772620031914267483060305074544044242393008097562924760823772287615833007487512082603665926637405205028453956345133452703918483272457146435982040235516791659780845423704633754563585804718600879710047232370430440829932566770493297447813910339144618616947116810618894661834463006231600506312750339882625676258057841939652004242650672565554136482415360317760950007179250301799026413868876874940532096671512669095987431168616576095769882791605067931779233829473505632613266178792917051793660079026525254849223973995930670733118413167644864749322274608720535188860240742540679687022352122568175095894778783138633649562294214980527584467589293091173828247595237944321294813286801548056147957579058402748506969582723972497675027385994138410951942397170441829681106369257707325801846046224389475290560336607206356871979048361983440495137728624375395552449047121285880200338477851330790330810285515806613192819456147318699516771925066782637396418774138635454532285104980502314673957794812188257439220676688444160251684003872395534311872462459943495308067771484742570084026437970783657637167625118418238009092697278962344081798449549820585109825319954361298279396702502427850513394652487105164664207183525760084670069446521664001970438403225775541977923187108618874273935592671588593905153980563590128912166360520213139368276778459487042455925173616431751282628303879743239671237468213539975387216446474904847832815376977489548805111280486986030472874261658929019213479697802244095026493066841520480917694824352778993174946067125070192823051979381737226905552120095036675740216501703596383667304221441438558377155463466778219831719021420010154094971355573457399991425079131960275730042101838769604302030210041908055235086487982273226587509942679447929916990942050870243138475502433364588508882549736520743680955831068230342582982135232521020601636580832349172570355991360875219421952167935170578489099083929522328648382643743519239732820299585038953136335901153433146988019002227159630977345762469580968561031387183416975015054741907108790805495399642830123762203702773229125222486304815351514239882300856693184073555291244165457817206253817651595091780482431400848247786474302353765218978159015042880647333260429913149397683583006389820591559714578512300301766118295130747023636970017327489655128022433303846122092927562690868692123554483911840458424388612450941779464729142503858904653026154450958600021827942727148390310463062771289699865525841898756623392846640120028075706313771225845382568433168236778379309063344627905719634029907891365917105381337118419137349818757540698197725297879674390805962126318642656568656401797851279251640049093205828878278816997897936179326415217110500793749123282089114811261055567882191233236664916936748679736407467863276460666195477024667710988690693101589069349692777512387375012915953057514557805332186970840920704030561923193040401539195135866363238286301607524838164603017963687382046548056914911814203868453144408330631329778055056114165043545557577625295194911344902445423070511262359748659445973290844830440223237163284786402193448658003033321822035396377128356107746569043271494218487412125722745711880164876911449890099306878275088071784884149963393825601927870693431986934773592063866996872021724611580345946847633189751808229414027414766818046720930729484483401737560887966002752146057104843514578695612186567382664763077978959769675653752413559453957132893342858424775102346190840486857358930115610438488595920366809691541156786807941723513800636621239825244015818690596407468797567320663760507633164837762027255800791091703497096160592585924669961899581434921532048181058478155165355601396465545855500249497175087264837160388442747613822133577002821230544553911114689063564402365285350606850114284179299647350767357383973696936659560424113171268146429140700490393291688265069411196707539034389109939517999435250516077507941203070264945054255541054615919332520997840229006684521072107792103175022855949586445853193424784069344441566321814491144787350247747510120094021011765960216318076642652225108700623740621207405427440433093685709651335470867036172436252879671414409723549838813774262689256435919219727262194691878436203992613964631020368910357497408577173620019308122095495736643544907118225138281571062521269512495322818782542721469104894956921500289092315874918750892824862195414510411432723094738026684182198957217751285915823107926847884783439586202744693922870569857970668837114805805190126465205103809288351910233311441979617907004756069127832288479636571801513836368702507127607366843033973299865884088731092773323887199239382628444914018546698851821049226529552746076725932247094845404416254775656639260478757098050267467516184384460751497190574243025877580164186077106594244170034969811298622547847909052369365999724236468242438204043978274409169894957968232531876605593966744021828008458349022852769900752155317107582158320571057262107742091908881915339025383530335993960177576126535549806788843209473468192431880549603740955099943625244616957157537400659572968445981198333886028783931076755242186975958756051685085398797789458658670760003291026261885425977108111218454485887458243767657079595161067821830809117320146290702576080963296850497587366249020617045586356316746079667199434430250366350912969662430988438319739557312621110479591309330139644704292874862435909352608662265087501225703660345384797781341527887280369019983611578515945704526888398884972049061228330243032482198993361442595525965301264910397333908468851491720254427610795190398236082219587231474713238378640215519131311719803387209528543307380386205330936328468628969084929959256176009712396685237666547042345135103380439815152360850497909592159940652094026866253297738092948697053142417089511457474603763996311926410227401645222736525596611880076559341979966817759306077689917893758017548763348326581144660983866909724654111621414262310400718740144994714630585302633448622677397792505701424270859442524736446715466124611287096503666700109375135106814918547890683879871431749057611655912823387802109052816536747312990919729040846946473138552973203899391352430329789245939807135766746597125671422917005763393355329374061072438546885723846084131252764193899199768623698126308300488139783519863887977022626039716865612746870368244991239093550766351138465991308362569681487887053597103477661828507565760315179463315386444349636788161940473772989252507714759832617963143896525772963002049120697787665614846776553162847111667038862412030636993153358941736024142190253979450567307511353442563814163957789062808502846813250048425973763542021050742414174838238887792839824458595112586926212387217152566771180067092591272631774111883868354077612958864860843386764767833274289107487082941705306639919585601612089685405670410320729848803574648688691236894890048102074200866408702615325592560616123044053917089819804277160929355894202560685917653019553719028568441553578968340453254690854400768603623999729583164950977849963836209897793353680846204280610623981717045786266309874151266347093512169558913249210365914132288935845201773209100296305812280182633093143465585265130581580094313466288530602598457303879547052657294566876657922500165410526899576228880430271621195104810169046187529213995628455542495804722319713879342084335357557295206866141077748003831150967018084473504879921155161904409264643110880025182473589253355244483121676867245727916498641805479883882031153020484919211669715797016430825318988128802885929789541021583535640711932255050449105174323912926838201599003721634699823660908542100072741702705165102697444213432679056946887394229288700804873636201682781291745402747744826275550999215461753231832839769174121097148699290375875264916419622971276277099148462437574764601975777265187524739833041748279972032759185067757866734413554850264708019691456907725284846692109854129336335273801553180274681045680198551327971913492347053977971970585969076912224871406968460797613978153034910236272771053958902000668349739595649122693791419567997808179172863722265491245397115573602286542959087362071934991104415421991892854473305487769655291338826646098417750996673708810507488294318840233215958958098303243159595143271739041012017568881328277816678727737074852506758493526270297942649284545649111685889634878329890470507716473385970781821464089166221765284075030946836275131095299802651118189783215998528628223169648440677844897078964924812682041379056636786314565533778961226148577150445276413785036155386243650966336227037544715612308298119979623242484504457230129082566383271414918242609694409450638500970854436651442674540147667777942959056037924656959765256008245737098497420461685415012722961157732025038161276950460273820753636090489815330186129372481030000962492272308664935771098059209746059088125008272156514049688779481213994507912260652684749277214240869936934779931835663804684608709563230739281745558362385538766115446656184164202574756193894386341661703146055766778667209156423957562328005497335295133879115652139962096892574227614050052658386520542052058170766326831116064071545936021877634486482217677599930731599916678296679562469628733587728759859699947004308937392237412810411626657875849104018275682737452978318659686241473850812625248087061639543456029868902146387939158656393222342022906606704849903080029318032912815459808019025794456881336685237204847834826099955843736705420093711039342898742464680576636273413937977247740229472047069831098026172942052336724152517049615983237667158444466017824657861896100923126217750680668469619362179722696880433120037941156456578585451059722003773505760444121989817603796093234073077435295828503790582855617379657934248904859298051996928561670547132846105960506876615670426554676762478398695984317777436898012323023871739746505447754245362078384686485884502870256641864115743760718187595822734088704016037594089896817792759143996035650979650157992431708657645805515027570407069096649135578467757234805077189136203056899183694411799844283125595540690258002489935219576619095439420711192806276527859741961208233010770300000601418216638495765243164930596485830369732453024113740434652497366526105356559778718010569416756041230964212001829291360733056611125791079681860880378695793466706947408063607963866097180274355852442239624380563762017819530071408315233188727537175114043240252099142423514074072469406927454273576193508626188946983669862894357757331658885537381542360567703203780176439080272395913079778368662630614286726071083441657633459068013095896154374385995947259188485314219874907738551764116287824364056027580073778688764778628194578253401264649422590988946085740954954316681010458146394931753314707192890325799739613449752567731754195596488720064414276645549788395646839786756099740119756496396876934718432800421031995388728474805936992304317728586420120037163219698388457599912021609277670900613580557999688553862285642527493531613634473658297696077178002624065173925563274374273301515451487452136478987770651600908519350860859615894527522152891949139679773402848554303914445816311443060082574760609270478940646812315131855970360368799244652370347083220205184244404650540733756498151091770494722414490792973405144155841864654890570870666921169594776062961123207110765851531997785216813862229334946168208043340785991633385689417710911603941104567161754561935974563564953839164584520913520690387841335400706089975795588549689917743294037459626358658888799105088353085954971734137278226398524918795189199567266820477132224737903392776003490958272751126857125046701990704551881552237550305604320089010118165859138251591580952373602058064160391816836549821471072028398592545667754944128218140301278157659741319893633794940336689983759890272955297793091144599857741396437612546417340829098012501895560186320519825287860701017425301981678612083764965070462399410101989522233694321087141818628872524678352940043385406403660387351522494083459336585995417517970544419868844533350485388473230098884067560066493076359926769001608673582985893301785493004000656305495622087126242142931744526052088844145595915217916254622973249187607609404038758048056601277067189693232815598674777519273380311352663507479691248865025023643748267921890149299164568713937781702523517039074515347075890964632397609985857840269550047663728266103652003522817579270278371017005337493094948515062816000490809688992140498235243357304316246063850807255308228880969334533588606741572012423407447816542401598749041349818405420577733634654142735103030620622250026207336696142318840998685116094150376027910963301554143111214152295959820984073660939834243203453676959378668046964102541563129672692260034159800217570190798188802469263178308215855805538330275966964835588097506624347418761933225881977188130817916830044840362113877651345651251527654432235428513102570103573445344784530372439490218385068647935549255218114112929180658171320591044474445755139289261811069003770298891277229381352043568686146263359119522202224678607867715281545488198044845790723156417669885028848689556224618239794799835730876588191720075088018144204894057789242513786591964263575425998971958202840076158026338671402568776725762055717303628639370007503403975980576553762996392547725068307021128567758565638828559852907332376932625619210083681169109047761235615749920261814289724268817917116092265124666727630943597345989932458956221852126807561802025924928292415919538094528047725401120334950342211209291555432346414680675279731751384075170889355764826160861578232456491563829819956480131731519491325773845388060073612919312583837731731596036502628759012233980642131347799843396053554140838826737385258549461410298248793782766788441490595212259616252790370275805375541159579194304456775957951545481703976508714241029670201239836285488461373222307320337392232617586957999860637679673991136339124254909980409707899646869707044747895545993176592955616293535177265293453438651271475213935304242931898185576850089602949676660151550916700089614814800418309668257216127339670573617258241057377817839054870760729455020728670344050087032112747687596869050903731187074188670377022496278830854413756183703844738026156393658814984283375509164109143109034620784419742939660752548085709508061667776808708881467401426916300407237806046633418680763564957284891891654892439870869486727523647145784022588429810670928605846971340521206009533712918853031364276270469694694494399936675662398175641998144176078734766491639274279274905308185975563986279604626172247769454461353064548028137180223364227043433961812372696423219630254801673821391486916588776776433402350276969698961917006000265717623531337136583559108639673352730788227264793764194974194106369866690964203414362261887654800421805832376027985680159300003016596179169385285008304438920953697992151198768906833528650209910453248246082899003410409893256295143760999225243329807844678341114429048657275079652351582810878136492844380534798876693309177366982299129640255923268629609312574854227064132352529112380127186394303603134125076951024391352086547430801174973866872565659469051383209775888037911281829439414170899933711904847907899269655793867913073368478800852939596679913153060020626895759262685224681291900463060659625715915413175412394435726941267683584654724599327589340537846368454370870989353699939992420634814486406185146904653810855803671138515686439801194556591464191304290514708484578212915619569156695621111428516017431078255257087128196606305234281203243034075103361312163236015439462590746400282849831008990929556236407793971730497225442484759281279423420064478965097657997425407513091182311638012366572826843660880805886906604302567570912187563283213664642102865874849497210527469522353072930231576388381385726501956893634568483152707132887345734088409232767811091039372028850127132750205025295117243945231251517389047785698274751919691657271791523781076597413497492119806040130425418643008860078670238955212841655895263685758285857230558108583038974518784968433487123477009760807934897135326548725770772876805096084238469683673398096524044487244489593480060547452381958111504848084822203100210853397351870874838062871638068386937941555789659544953665694982276451164399193543281559838756748610612632643889133267558906209752418579606576207228023721550847801857922759804052352731748743588131137402630017908140343216344100270222963983890612390638475174976748595469030810481040297188155817041486008186789019923317565582223963153686054768561731564350034320619256249341829337570758039455442484278901083472942691182026141685163566258574501339985487215308655240383828194763556731191026100429962709526208275872165316217354795566394586063331060623759969128193080006083883470424760913424075211522094753541101576408172479193800705661813591732096873135046387039669468407870257999067680334339133044774962892381186625446219027357451316920883195624955086717080796500076964957548396741191413201355331320588460786838789850212173484244212779321773565247521652352554807040257596155386174108934231516218702367525348642903846295142857269648051335619447605289335458264674101607261872897526920978867357684794723562799648938997954773060097135045138288702208198538136953019418913645949593407585707267542457597591194148286616608048563001443378988511759586362812131726575198332965143342694843492243687759918666770270226032809876535016451664561773259812756082735207556202684087087644543970273232970390174021491136944461989408149565636457568520102578916799410073338345746018143845527643312979182817495999161744807573899741917803843015443391834170348459895432685336518814948582808306805095172487932226501998332068200747883304707182291277795961089207659623696858045139157381844759204305457890978081231871792392920507857234534386645808764664803650088119728567527803107069737029181722150035321608547063133126208798733841105527480371760920083303856587780009414758567708311757497523923707156007439302336673335443423024985241026333354049605895651292145339748823487618610802045586046381326542727652228620382636786894864681736426734286547277062640108793142931642994239027381918584962532769974122980391959062705936684411523728191466882111367091060192236363113050791475035414818777581410060627390871887547012748155849019926830813434490685130704441501436128813220977244189518274421310382903308183092411730310153902116740407747723097887108450263189312974405254370155222616967880085632776272373963441003643051521372310598649046020660835161647287093087337621683100141127613738156096646674151144945798382153900196848266202949088075626092944386466923172632929818692798560586850440844254285365999138100325367580358545784251594089410944866091576637907517240003688899129924585024882113613452630115459391479111376727634818372474400951658973735909446383637713634138276454101533526994142628458624926634931500716428146773804037111229540255660668508496675095772182498863869983411255843256444696670417455269917049641325024350467956852944379875404134138609279087809230124225155702704227638081911757547682055844663482037358731098470885297798960237368508514070271164036954923601403533431321863501327398062904144930873346760612105829553651798484922081391599013836591127745096480757009629970059714449804858498867062672541351476642564783982404497150345754686510425497808821766469671949380278943861341529971392210111692583841154054006519497348259169216714917450817385863424443173290616629435540016954377391729329488546864699281041448832977860265713457494262142455351695743740227689951911902489954482695621636362540451223679481483582348296281499594934750172665371000724791112424561390973874079636474454370138049430200741925408703513456416566451142609269671443000438954369509057939750385489749497603488311982361892303784613652143583802231836398091421990018489152887673125798074481838241532320767873193158707522920355761501522862222003476612922332817005132835705292951956615823902888648737874607147340619935696997689405451966105067583307894393441818487198372601263539000472556336921196104500780431150726180570108209380322989973054944893467108620070395176049349239851294323778138057378285438098361259245806088933738615118312424031389118667159383086534222759730037575245999448433306548521160638684406381205940785700883985391714143162509599761085580983771034579627464536656684578164539723447997523215874842481091307324025681017299582600854569401868004133642467649288429057616619382317263818338641145718398505746932398473529707740089654353880980370946909326000073334192616142047730329215795610898058584876481010078050454973137142533486100593673825464217678032425226179962029819164402614968471413354863957162333440336978357675424450591313146467964371026219167479376908487843090409518065678114124356364466440983934758476117131773846648042672224214652257181172074259078331377508388607872270850839520956962873243726889375161462268321305445818777833930775179567192957749712473226981983390938821685973329237462531618231920736080252572875791481746600333368994135374137263606836246875887765518643544663504529593479820435271958151481358872693660081160190349159901337403314429973026579649573408027585779757314749180813250162243798331529247506925492780956483523213563903756587153691265963178288135603901595497534244509063824212955029815693376757329411159300752341788448414846117862242080005049994902815517352483864858079378068118183691219828889967866808038754353040493139113440379932413202480826450846680609131990856974118602112587007352773364968321230584928136530947266466823666191747550323525915326555705627092187730120333117418926185683270538758731238897121198764560512248418249011766871529858286590275512140847889268901322311034094161154489290038831189721607281962902516622376896002851927363497368670978648346565792732360911733888572050194485214507293289287930736982126423113618693231051555246903815130127646861814069347377459534065227971466993190369641768277283976939513404558227422349268894373479301066408506702673736275024409474281915561273812319354609649840768227164060546826428088568028547293016180161683325082251630960821564056057660323401702563505670740943311461997164057538388236501651093882668647691801061240735345098403152129513447339564287906175538343675964127108133067121824401176765352917133810572710248697715092495139900912388434356535577209075947407686930438121192115795287778860188754364549089403202488104860663121300913383091220286344322475112923429769502244196871013354808595823079556804485771048165844150585104607023827110057419775898188205642912299494368706708722870933534544655275651450822694648344082787508826706043246415124553869798974409974660786625986697050262414794104614933435803036162219150701241675977640132435954250734507451921345735607093191582808906271892365588459565231980994845610349089521559808470449654609415674530721421602039519021653810804690297631745047419667942983935757500415446020518784523456188982845479988019612028464098413598499536849523295215561114495428406971769020604544719415916271031103879254283659296826628049109647457829495491310464254674057076665415533507367287893614983856589811042686140097587416323778255179010686290211043583545506903665476736681913241909018082470645675187024702651720648318627260553557292551928969492970731746610134020343398055579114292705157466286700369759113780409397449649050290366815305715848624002314091712043780998036239838300802837431327751856053232709832190848152393410569400192839038121922154178641894815190222788541716143312255049220047512209096517546913774694393457728859518293918427700800581940030880113075002761481107809446997908633720980228469180101839578601060483889569787783182740405474693028551194561291139693611930983815016926865844159900299264857247174999908043250197195490171108763059194474089619747746554841323251932605657542643691843901611140772276016623378106956971999271856772587074666170728995292734087865006064007500652616517235356624481947818834281631166641795215396384122908581816464453615823074844932201345868635739754633068421763968156607251786046217903398078566787628952386420295045769812408258308512690067216301198931685701692630716336497787995614259429908543842721114030228783515640340195025179931112728731330758582523913807108383946250830712844021856570008076363100107483485288928216422588995323719562255054495392671827258080524752906401877830623097036336094550500089241970183359288804267944245553153241385264091692682516363409331372148716427353319458690335784462174234766782629628970067849289886278517491378472648468881348719446040958731940235830230654882311673051565300293846729999703421185886232088783723888114102270446402346255519957598516811122465458671854529589709710993689783476966245463117663772708768622875197688592809511111760603814308962763574382215505220827515760272021170956120513745995225744276480100015736463894726001584493872718183576930821589274219851228926723785900418089332221068552844099509562521907112883827008422771751214410025822213440055246680940693063971025233261619940998040076131833087447171353535877424488882502396619380776213407805074542438293674690399977568729710045601608438063399440562609301333302042680767973564861314659516055919614722511116117627059805950549066276643494073229531515481088706383610892085254997726226382173825744206314799331844523054188687439158769113538741274013133323372564620211017414101269136862487053242716062636507387897267922899907646930318444855204222116521961995483523115628584620156821974020458676536883762827858858322243004178674627646629925054947315989496388437749082865299623077648363439535622444362029303660842616802346724104671538972240883474538063341246505449110634813488284091608430420019603360740867682020357777557050498819684711035142375008494093800953166400690608310995225425186750292806185155559829034190390286742394270224169095636415046912716415722852631484614781889089227540531636380911948851686826168655853443222870344439785651758861406500496342744894930080272796238995278823151483194115489552270247698100268651662681876074825405969567012774605163175769455506917904524688556089616766112591927305798287164617418926166579986021084457276305274273480698400089005254587377740906570620952452647532476568079666670233030998774077399740027347791777434778858062493305178032033643837741110023976336060615471446203005456300361891552927345894910634645163405433279710338705134675639713310326591861925111619395165279396141374532255450955236803937610846168980647091467697250580630647671399461670481037551987411321995271296572186655326621671857815786728677159093683422917348456149556779779874629106173731528824121561366224939603058802027069366186556431179537853161441899372148341927728315434121617315338027919197931279022887317951939358853160226455214619832835846947952770450781447601181582046324948190363929327573570514452229773917389088444296068076448771068360445122108119496107226346271949320864574613591454827962370929801102392264991182842106438824504132646937211072168896939605129324703417351282200167727133432328918104460394539536544866653452484338113527799168453213830494954982513845093082287388640768189573540044247503501113061096324661012533036179774427999123149785131604356534479622444702459962712267474084128717940949198241002118485036271069885039167717396093835239690751211623676060229192885615812269443660833647555369835566422889558435122714245903846891648491560299310054556059065460312225624095512329495325961468593118139601702877438182013679596645583847069144571915469667907451494618898420418275751780742764210997336387341710695439480644346103917387966422776874283514287766505315231076415476087286008531805647144068395491486850840926092590406169189328548473880858077052959729395351360098244723031995233852664692687270683256516831972501376781762294254563665210535488010700281122960974372213239427742152470760093402079868220340675427187007913385972920131131045435494852061348400308709204138060986573355606972055250535087898997043476202587393569290324370469602565926627410055219231287300176189584057705326748924485135658250513079749845958665717024556626755088739674945834693450570259779547591802480200392370100081818991390543270023927326934311904616502028459351464524213581255508539609995480515759321540791951476253695060932361822570314483926887079950257159442069206166432596346763966477086211403968138102138462660505912768308838685514088053705058764619065247552568349304492319195960969663357266630525767250192541613352992090889594617992506612926776095774017783771983999314272468923969131450920471376829482191401907972393798399836437418230388465908671447266640497078798001119767846941934584862727862004477727411554511153927603291281764531830545387144711394904554277353762201826499132066852398253419412028534195791291989312439164209539729629236577387850855119260567251938882248358719095502569670468430120397564777149710496012137020699361476238273188860485019146144484619681735641334597136512505585066497405641195696555065721116953336088041283645682342327635041741228978969069024559786223216609753061858629464720890774555824285032357427763424219525149731053815839112052935416560247898543635852140085009415857077007855709711309195229336502350456618464221053560116164402959387882770733094977774329378654818128377210309704656507817034685167102182523639068176515419927072333886155654752546087819692126793740442365863244326489082657050295497711170500599653591008831729513048952443165067096718113175829670805078875262801509213476482198305239379815874790700310448849197955682517699907871415255849321268345379105153686920916157656280000572232154703070040753517843348631159963336499140294864966076566043912004074192062792503063285025574632792277248185815714322400086286144189970661005165633738754366521462186595973099793583473202322743243067480379736539996818492478620951969913137425711915650257208884485796053914227264723957701221751525888606425496121175047015120459723720640880371557339441318010324414731738109021269181241028159107290798408377212527506716980030645287076502426152786294392928369559328158837038548615940953357919128629387678843156646883957814743613404110130755860541358053897819276789163290440475562799423736561183084841717738066045627764468493012127856210503025736385419288139819965630529281499446778127142296593698108936182456579714039117028445583376602164993555222893878024999894044271878874115847008159634143947553789721342632082665822265118975954382727782360486035928351619749908360134973514039360840103960517323375362261873604106850732093499405987102191639286560397651433557001713297481488131699315338648819322989343325948984735327975781859541915590747703696285967933895498581319590756198452000796513448746698354431643709285146914671272082150315084425665323409523959237767821659673486772759136857933113494903959143746322719292373182073348127705717065926377598387793476460914401670829166392253835817389565099018061997699108172748502506504161742462721103703466252587663068968872411030159385608823181850378412707462558233858718499956470449452144229017006377829376045539155781503231297106251326460092862935985463471594362889399821332098379439447296062163000297614089188359602211359007185526626495292783232864881889444514933720709865115907042140613017053438244233790603215475279376576335816013840070121672816782718552163885840284601728286685355221055166878915940177766017874343637994481808016454134426718360630301954526012416582092572440030707274375630721816691594204735051851092603278475471106140018205985025355396692518952828058195073636039975438653885934685544141413404649249406121341355576382107746993509639227632357553976913806506772570290434008716575803135108633637107367827848722531062357222936280217879506704663213756246403875277596734190399204395440474656250393806753613340256856086089062691913019431285489203473495730748983329069555145511063971705314273165663853935303854881225508643250985394331207843222709058674380097276345936409001905315897732453816842193876751183758264702177179059001997392378277168618178657222188088000671291723025740958024492692019676453562031804908988575125217056006748735999456552319699757054547210624938817730757226511321054447411043491084522501228175874644079990981842227415124179169580140411127137222565757598978363092181692237628061098738631183261652610947466701275083198100826461801317435209675643275765304996465179372631913541928900930530288284035513358035294646145140331940832696815054082189246971750941063147170838692783882197393116702279514375112687669716365502152756330385894739822111567705665267609636109463263687304340285130732290326032833739492595999986022335512804986471765953569464960120138159486605369835065004554570906093737510594655902193909217235050408454613991048549049885901853940030946477122144740931039809880443913370722364340207177251943130408800076820591191566688299749243236244588604753721088813323212032008171027125583048006548873297932942987404571138512988911743128026910871133452973560718817113890294295749136901727393292546743823485549006623674274007134162192287173352336013431858629837668967161559677004152071947742831247535027319972551947084695143803632117427219953537686292518776913688703100535399201801986776378811222341200227018790135545266884158025753565147830595007199759724662444844891533774932283089366434157694507393427178761677786708789929764866812988163938348438707698962911509449854407894688388743684471925422596634890966030108681421799356803947863348622039486788747188962396746658105924296872727025288192445804419351612273801104612418537404673095576318563129411186547427627861194215529524219903416908453880162186665906599439927652039380029028756860071061705811376323210711163752160365971163506442695239614825211768257142316751421145115743426308056464642334205997279124145934711163513081580914104168840184502710325566700967378893765663873685650632421881701046556607504421771019531475397564840175613110263143623519962547451832884103298463783028378439604470877259402777647619932856926984320235347730121279283870142003835412008428901955134400308381451798257575469928681065886968521660615202953411701618220557530447635886200827616672171947379035515245094537464669294410767725875181343633804063022259513107942853093290288379966745123355914801377041747525442461404134140368461155877865525930144217213995848356194677374204460269593034864286048551708602748514014455072373707775529442030656230707679434021674509778746118115891325537631314228293258753372890797950409316484366857923181131689496086226580649564073474458793741482844789957955466692763112918598683844552101139400592690846248219310664515622631225922544629078869533695140490487770124839578437476125407079241337514172293138089325791343132604899295597158458357908488346978454919443246888084456493652449859286444458771557634123365772798492201633095178784992704799202341596312329380492377235447762454298643240844224778844157046886030448099408875418293223007080477893122379398031388187484881893787404153848739211213097633025441561977332502207501719930967543230221685177613708062180764099981247033639104743441530612374100915451403689792253566604644552117742469120754076889311944868761500812149522078228795262619359219121131400597466394585548754275172799922694058054171220833215546756571444847756909026001102531614217141768610333979327545299860823564072938685843077886037329128627019622966879181119995766879581996019555716511636528813702524606747197929369246356391624785267596898795373238662921604819943918208965151360024184637346904958910690570017607669546311390389473530047812115987992524826506983479525837960209496027820834487041836499769924301234347137972443676583586658146091445472866161310790847826135268009091900694937232672103717277066076531142541009736398507283381415031681981154803737024044535741772043780191438510539446151122710564466186255885004234991509711383921892140968797247180015035157885312385947221269371457158712255211190546657026205715880178869895972700933468239153767720263861536505068490659986820975729640997992210566217640722789272652357800479117394519815239283494801016391122316176000558861634823028220169077896462105388828855145912012226515635736536394989569709217275761233426576336053743130563930636782417929555192581199646146075494851966760291034222015780930618316094744729870495976595110442718072908694933838895991415572471224102367830400309474762523105664533791535901096925570101586086887437063561163794709151490230992530567583303130236939511693760663287111849060929272215142431969155484055505810209410095455609740529142729362902182083334848792273338847833935701981961864410588311371423170561294042946042397514096040741545329669212377543074878865209355907026576793059292220482708952648744419672292385270994583684115054439635383736235730004699122667136434625879070089157926496539045071207994974188797861007128246012464312432006536541795222141646632102553178130298377121065820125825692377569248052257126753936825862020096287244804268834685880691691326396758666401072610681495837199294707758314732596033193403192406004103823620178499281612196889101779732740953042401446089698069776888512192064811264839440993545649573609813703595428810463651847675418429443014132180017012874413769671924666510267607459264777373590465387327653960343801730967353453644330289744044397965510730088058172933949290664594420519991586230584131041417065044914815926239346588676144177035136881138393785268205805643004309971947410475915904400049212765753104571487377925092722952776624482412422725177674094594433687099003802578568287341021333452618932452276185086939840451848201665001862451378711371847659091266024678492256479097754551271366132475129257755378390326231019573740273619660884527023211290282515966318676117582113305437134062885560934910381856749651742204571438455964984073381867191636979668636491674846165507206952142044682247553566446200192384312439472224552719796070317059420964215095230810200727620585282687106622651704309233067806687041211841078996012461525343229389174829567709052782132421374473813288769693936342191845056239280977586135201537699806988896120442265811223287970683783545197896374573770821952122449541075887178047348013268244436288544416277493276133054725714998598609322961215884959378009030362185817525222053278066135623119390794702961819643242882510397782327017287493279676623404468157510397792447891918629146621866322084439606876404895338911793305834147606941857705533248256627489224165757510998075686215585234366654932727402640797625651633913219671632102308760739512171254503269630232235211236332518654712083288204050573899638322346276202095741672762255532940269617612631842879771308447108736846722370346715686467323034323421834355684244207099168709562288970866938299467319034704548757592814899619533676005480093562649702491346491763176539180701044301384799861723362619167110231487032352619087059539291499034092899205276364692344441418214156324280944434850041871327296043299812087079505573088810076417462717950972844197567494931674403033545016947025360838709506935312818371297517387999163166855440329409941554179300002961748017007738545092597164628297300967452905978854828308759256867359405226682413918829384452471827936889814675583848501678806081758233245978933405181081605234098569186133182183482787604638132790303803754124071508306761068415678034323896278850293985079137736557127010915507330108035892182909473577521513124897131222951553591315616345736827618820253062344366075328916987998315455331020125125203295516237272192186635309310964898338021115598360012720104422064979057406482245753433771955724977283728916179984570106381510472746784966836457278543639866455101077158585241053531832826845750938769888157338410423538915289067882092521742112290036214195311180787380950293498891529888538496707533983685145065330750374799464149125102108638844905850432979615792610214920287982523634704659668131293928810615427632850426485112698580778139101030593277801628246499714813840715078305046367209837903258845388293166759038966026355456174647152813482342729705678510168243837854094337072721843946992910399637582751671961273864776165237126921493359489974290152431911346044888741797541943653203637507857229736674153575687276682404665523679439296608253648203910067447105490841872270611084199845643985243841597883076323049002016593154003300831083331699700777243085062264922945419635316053269471441214523557542692487994012199894430771666139723157108947317375295982305223913433634943722564797341532234566682700568715378754130659645001788174677526486979789629195364917024931635343895761809547163754621370089821394733951963175556426173383461929554210131277255615628735221856375038802748086201060898809625438052766477800015242885089075557927701873497929194990831037625831966429570777551145605929369227942288788420666513611012058678137169566959146650897560955824048312750715029888781120288944721740989120967421458106174265147381432570043580247654260765484836024538131312511784210835632397390095649290486297546408981315978298395092846114954550751994151060870327843218619777811602354404136954630191775776253529192988093711440966872148292220780736568631112378270508254908037535883947300984541803639788449108115043127857832628670465302363240202900373293433604712365560490281263683250859750091051586554738526703439978899449228629738005490162937107647086278559801460756438646451413526077083510890112632023941431369262448429422907959051011477803321521771333690391955036293241026982320417140403951014299472489919900810419161042550360734340491430998622788067198777608198889327406848899203332634157580262987795918733451570300650752477053285725772452514029096861874622884064771358372285323073816012593868669039603552735631380304633643471571624627612863608757041034391940841700446975407007766342340248110381638382090753521224777875208077496856187033456331157826524009329892350941859978197912599201600260195040403377590954764110326626027352234829089671318604792117848227520433801779563794018053982037692748452978030829498610487916865349022860640005355848329051753959563235373251882671578599096697242458218501871628380766895194612984884042848768971745369684265175631297811614386950792420174986331698299574107781742119496796866625931151220083327347502426508788961899952391071649985826438876877245848367569227251793553735770995838828942909109812877197555557822544092104745144239506502346594192360860322802168114189402756721872241240397318536094371027472709638796679604685424550496228608208679785721338694332177928275858359760213502346053587258461076688272398361974562761751039766518934688606855690811865114461904000511512995035429606236676256171617645779942817053981390214429182290849818125423163678317596968758012393221567657835533711507941423774398996622381449307968577815595280337812361858955901852498710064672503975668459910994695901685314142393338021059762813818891690756305214037454247929520000647010037800335342874024545169693758118853504714025604047471670066077944061358065422839795570577338077498254227869211466745355649510289860117782173339140765159355033333748194431255977127450578306285055377276851480220971397266254009514422531818563992888224760888033027290911533016975094307344505892018367297191305129905350365403245362552497328229664889869479132671930222323744862511985667266107794713531700594600143922906306633174504335664825596442155856758056818628224412249607413321623600551100401754115440425052444313123415645244157982308166367439763775243289085864198456276465678344294920295185745641790533907865629042940229082912763587152583463744748018656886219224985576285002760203238858545559351340941884908474500648458732441259713760488885669646634776373642413043196785772448794332026140560879134179400900742905164154258263935418836663296892304378650863508274588258712573403777163663720078340811330732347828732791440838839100502375726381489418087377896995924911842495792427326271429478204397520689256003563310494242856794693497201564532759600939907310955933224362129757956548305421143837386133185046157158002336143239627307031272210814818067525603152302323318180845849507342585031058631457134508071835096021070358051911666050730900504374543820513080602680424242427952393370806246567801711292775748195764952954832687148427885944696630836131744628304477439750614901438513747914696977888244080339871964509430920693795814817391137418834017913856244948069958870177217963327020314104829222595136114874363050814931015462805333577350372927653575654657289429597103484049953754411040586358201740756043622537091768844629350354577945112579400703900025044985644303425144378782932775618437638704857457887196502423263659495878070471036107622486164267542900092107647652199797702116335354060824560358381590946676754496229752582474324473268947704832608916427690217304827962926127420767308812241417727173937685726898470951595343746052921916958155031056177526137600268164331097990792622534347332454699009133081766850626922001494201519423946588155853898539758360005049894572962348924706269664025376984155129067517803520894463502954334887125570315378625712443051473216581803592060132317597748403135477542851979595436869920095986735613687536002114766104405946431973446147341579455722861550871423824339144135242424208460646662489978050627725555300815671652790835982328173167133969961990963560598584028238776252309664806541609695797509735707839338606018584518042336557834512066832214472921957949792404104442024491756799847477500286761452492390286550285717032592552901757812429646778737052710861284949611863836101050595096719796557080706982555552336315577344978689527294199639511839718274916578494681275415359556173173341883425109266360178734709265060469031410954654993574240887172447890572606146309195812338415039851275604652143473178978447293673755997492033321997414817787776822403430142314145962129969520756316139377452903429949756948902141811310132683485515964235722959084709803117996867687649948807930122150613997449724953206858060921944628905127197210406199677091359822698041168703155507105434625635170953816707302909438058290898931645444641262828762216034000221594568111186008039050780546180146052487214289445231811838888877595314214590043223934070750842503621177609520307288722429641881765796992597972546637216300843532589700098142724973423601239885464014985108342489879525902455080213946739289765058883806813096141611686770571996138927002211511235383151675611358007278611835589588945299428565665916118358896099694338802287315676393968473161378770943599097321124112190752870959982355778868161675747420449642711534053853550540368419760666799872989737609767827200625496436057132965783839512669620201848412339582415915028943490781643235172040410711397493612574349620757468987487388573906146850654262050191369417976088455428748427097288141274640752052677814519610819596529657482325994199408394718838560657516108670139426794332953242298418306566325786234694016309676208715972863485001154156967548656684487512446908822033251831470881272684720568666908910879456870842968122872927659345888135064350146012078026501409821769561092749689233381420996243070385128994289625115035156845369935280622441108735697021868195029517315287881416580675921749671845951217657435260467445915146799406562919032848285263657681177689452996066273798982063122902181895447616071551042647581508490223711704291704887673984667194206181911140613519480680141340374522690714126278756252307296819936556315900203606978978443819581382327754925937849143500683685670163936343097210283311320801662202582255432422053070740623433977801594526821353982623297289964372498701626111974322453720411997115690030954871530871266810458206555688769553574092111752730365657084042687153063628972856031600429298346761167567829044168882660832654515239751649536506975857300314680260875730275507398299758606121003558137385331762568150728401952704216387757040532547704564074978837512566850804106149475466851370139156627930415868552507561911968695342155917059763856418081041470245760204768449348204815332186631523373866361168542894153316326913699181139389336277691815020308803468066762894402591330237614253497219299116311991534087372211744137981622019737614170942288055287046421929749865308637993970658535538891391856397818642279725279350468077122121522863292974039799325570149310285299646460320362841212360947270127150398659857714321271559040064952381818168799881063010962716980021854653271389144797016509774268922661195651147454764377216328533405638979289731235840786824302020930407714399619457278860813085662225885149768883086611159181971180737059097876681249471826029349058265252339538267083735055823073634927013897179503827696675329701294830185010919125113741668638114375410814929411288665221627090467316743637005896406815310079852577162089476647421284861358191338339621832122531949046487864141116879097794727256533160280765525670037600270576713080720949253784119223756774117901581953128625361271948914807744887576326552098863569601130212701049665787424137772788960212900042830671022889177712727644710028176574705946433271370363972566773632238500884235481437435397538620331352152435661964920206767037310868655577817295686366678122215671684581833456508213640214762113296436271346853400859074410588765832473737970136541413126292655139588904255709372766973882742101053413383051521820802627636923996551261214611653496342679535073788806693627328991565368664894074320812548668002546748611031761922115287211492008146475270237856309809715014824042167141568982408022227775079982855421067321169308260653920941970012231965308560661176209829515727485438307885439432250128353171549710587095332115581568206257337150817302938237055889404016302499714339985689419681593272095335372716773204770239901306202915074179134810068638722842045087279533475320820977155736617317381526670786075605824542131550571745912897553539810806147064773521132274377885010099562608746771915038116094144888746750460310740990249940685831984281137882822386619056905982580695998941333972767350564846805558625123920042149099614894399700717723272863919238739908438511953530684359184931874067182772842672437142970155749754665428763352497140515318863434877425178714629039604533887606343911469729087497333566016158510981802376238888581609526196018968855534616573671610786705610177657907629610742808015456302080928153296137421898459203104192210648197591891638305472674205688546682959683683756185076134088636140906245018867467955285992495621445266766290972640592822630549804026594116849401008782281591493285918293781061720764973717869420962798080433294211768821565350763023163358552562779466527445280514934372042031528986606295175902005003339565782605563184595860671791649211304034422572199393787654979590981402878024127679239540818300339697649766465080822282540386862154174043090986701976763233760244832087668784877315600024977377459486024707929228174743618812576966970811258187913701285492848439692079710292728253236885308710161118736207099176327868483689389022419122127924432908159603406383226402321320467492741445843088626707151098576533100001961988515682892818540210253503360657912352903994408308190688378880577907563304946418376633106135314065922936457286305300416510563383945833107763148221872077937419750592152362527708496063198041563567585719207845227853841658379552158671011360870596573402920723828422154926746883911639884673260157253549500911968641896468343462759205113624397929550825446437947168704091240462111417122160590527394390682262762486019410798338603526273555922225831230989500496379795753143098155471045192086784320208096341574268679740857926472979333898851912145189818820127536035125957702732351588346247776521138480878750877872516068708390346180385162616116964334562381627245449505032413932361817484986896783262886690176657345582288098556158886468548584393852239070720215056010947394093463095367961559794860621139256988733693671259148092693618674976874616949403669056622762617676439865157991796029210862535277598559574110783047376616213013858610068536914125732529495925821315820732657929934415803532487523018181720046901989601837549505493156526412016339304719991915131412393066599036365097100440978750500959902062297524436237995792152236907778063216345920447099422772343273752911292044491339976880701701860547593078635027537880450489671886168834957427178856082552794921688616549659887694577339748917548724640668532358500114969590667525816788806210938295881312656875921767407103835432242117265945390216610945460280349934132156222638024682656472319003436134679333666020601717772584567836421279527611130567107254552083746617596282833125940989965687579213041434615990528071213076256891872317673260649325284825999804060605340444817965166548308889749457569372375018275304175416414851966753464079385900045895121570505519649098153505283451706903151138667614972959471910636588595049841101935921198678108324930584110979785256129529568890332890337167988661572029512508317914472601454847613618655384915266726821090197810514229340271276444681439016078808465421479650347409662437390321514207219145467645948257269107942635147997356909599727647027350488114659159991465018629117318022349172507500723766368987734750026199971729067699928908992588005240485038995837206086361195805412680019001590127243412894319514488534937444571943140007081692751776384297520505697061366724271262587943328332435023930972683695081432278933944241227818993259732163340717203935868850895208005469913375752974360380943480821838168116065734341916569419359485022195458646894456524370691524787032337601002162746716950769731517153139733881568595284712848289789149180186690956896587787727380867685665706653893974469870810628693388817661278828414225620252692865851974205308968892190132511565239705002147233904890909204437968453881601188423986577983039019444036986718330259692245753698649760180900393344925396771989000486424557715281638433700473172647212924542330011750107218257528990264715731054954043298142614263672250378649798071619404165007602265712828894437840469840298858029448620784987113224773800836289162656787210574641923515600316456487570003856456659550704354763547507964729808413281202469450805824281384769374724220950137252059738899397470900050682699022254660025179524191894180566045106572387862466668204738260392780284070164905068288694195072290110500464576365005518348918033245165887158922548232029198891111324303075718911400387333717340170943057873390848023238572945747035016146445548534052156850742466796488368973260459648151919590932218959575986546121549003407180131383959113287977069099490380691845779897914556909999293114487661044540132473958588853557046294631228251904588237915689312035938304226461298747474715443138509730584536725557801784259640750203541552928786861927885473258754859566725553869396742165759342052961709521598637050193891225529102358161772600511215516185538163846096560078773207578545098271404229685832535222689187888371233174988516597395939273236329447029650069350894266175493539702652017667409168519580738991067343276062117717758626625907127233558852627179036197971810565436887725612238417319083714845754181840356354543865264284780984007184396214271143790038166790566305864986123721124016600300933872640905906160744805468377691497695260797642568885867550657804362926711906635583610343767020058098054305663824627402429078704044881475329685120257977139240019623963604284262644466953188181064888526292751403281393903792579165022367340048717691302301108934979842749879106255269037086417937967693408735067373590250611797611779388537867391135817159172567064165426645840842571905802434589436243163130453537018855765412733010634512093459625340325351663263542647142728058092497368294247439503051196491318614197078958904054608596855252107013156114799485203532148236957569096925294374594115884861015874978230691599371413790368545733392432029422128840499527758399055858452478897855450136334277475328691436670855436006492654558940769796196189221548905464521304060354045536778172448233964390369546420365351360024760147644693262895984525671415598355049564520375507409513327113990522010539135777415068469874546158335641849514954367913018682073341875915484537946601158921044794250241599630667386779918205097905931249616931919273726317661145669362065122990518988175061189770002250917252643589870551660645684495253962742948979425629200561602996287073059730388114409173281408578124727583370943327101925270750653829006875236186825186818012020238149451500026674319511422731274212533094234984246159504910474880848781624850141608956759573204699802149109053919530453940106099559339355854802892175978490748977740682615029321580218907136795781363075174633500038993294543963797833480150711439443382986428548133075784868317389950980988686229470429776144180975776628351916204483009330934153526234956118573255732193903391180348203518276454959672494438522885937917785322575270473204139510345806185792239540450471679667917511211096371051421382999280173745449642096220877874136413973679156902900050809034185715970378373335800729387449712696739764706514005493477679119585680324599736388700284529584647457464113946843894090753686920311788061664784485464866729756043603456894352722832724063759619157810169148221325719767716645996140907324945595010201571460136743971477710274041672462773527191176218604263922023898401424477667516226715984103761361411912334288418763348250345290374151116338840876124255430878098116450790918602700498105795115237054014931075941135109099528751972242026419952324027487023875587522157948095333287103577944459982761576397722070447174448539932607165917052750121442694387082249757626713850738652876453182984835217717694419155986179100542328380498777496324246115425026863577889271050914407180402766570292271969791417282549587497293456580368932916450342549459374750438502119808842698410826191451082867658821658575987079634489537895796022624546611389290518898515129495410955151900942336099357773704950279045390046419542625516286049666660253767700314554420660046818817755568604855726444401719011853456522681386039646343941042033666480785978862212116640096097115070680663686169850469702619108049017072496527901451890317930647933277183511104412189005498910522780900197141770286075876995201922724857175326441820494760604301186875815210314557694484409534715401940919602313028854940512508830457997048505297291715368187679897790048427941431330716660993698162040311856748763865545851971313198927261742316984385202974577008023395654903625922239888413523468128407151414926161671816165590554964304416497393163858405178491028878266707141580546052061039779913403229887558568561650368734692787329486518502449469633419925271767377479483574788486186552084391768962178793958240864721924665031479619385146078219652551266090881475930838482304723773829317870656882750294394373511994230156717816646521287715211672253978029621191168033507671243485254812793888884145875083818864810608984869332619630233615263925636824341482439163795124489241880122035912258098863365398952226718885878259525814740847416799710593290441158015562073602967113543703209220195707940199484798428312976025736259452581052231418856096865405067929915277887005583276925114823866822168108887479226071378992125039332257808344446003360126827358153251820435504373547122380035337507796716926004973849058003801209044473669188830832610110697857231199655535099844137470536929889753906533619005653272039082460854417345977761739030883494049594931159009182398198516966236834567333371350663511549961231356156744180196688735875227410051285864630129295171879731642511104306785298454276652967492525859585270392690810052736888838633073980595468172109689222430447157865158595282597773908829777631053127264776484359751089371749264804799018653700780892284434398295897815078642596417239338240083312549793826740752512194425161459432758665135249282421851324334417270049474270153646382821578700912261558435503940050776619321586145470156637986150944211326260233787650229926480350857477006018692042097237725563823939257262168157399610516004648464955110989071921241149701579673118983676715474291588610284700999992053439967560399217415569480066857532747271062648160874545043002230752730944219578626661193410315795594840461942015730601129043638269625089190278063240050881780992758153477231006269023285755699797462303458485486927474024758163570885556600812786223305975226850208804319317398704625293277644258790066381840620308801913025830978631676280646670952682458224111224001612491676782801760605099488897719613180120594968131920972706994822629359817019313874532433460061251546341750926099856165344730424673243886167250089211289958698994204742719397874972525730465132964947080561953371089783190600045322628679700182289509795151780630935636614073043763880687415046146696303004150276157932687912869599790224145683948886023451601784875183756648195098764765990120123214450901721777407076766561684045240598639151688038275673181842243519798512455776023680992302278144430797409749716464503464476414292419837014833408204543398893144827906565058810574981232839657955451745470222501595209846130476410221088865007631258373319678512903394176181269340554622689024132539021523471647872345073741465516453807772044652252691289204954461708787170053288438012472751502649332079701518481617308354737187552366714454977962956242398903527579666288298008967272866294428533456124709240460940195598621780063130875433067553525769253012692967528417976791287318088302075816151657936869226663269597780358826755449193866976753568927618812433966557692003930924314894749077189273176425481725462033469260119474665397630064111469851913041976946785082886093234330000572840599429758022432592520550817348688630038691691853671820401211535120192564538969226973379711329003649211170032993408406932378728617158691645801302137965609822118920544877659929425729479686722243649876059544637329516409941565480469502879810823848520096233976599209776243292706379263095117683136977795360529452722100327655114246816622036939167116549028537419633971541683844412345481165669328142323180351075771233264510850020616385180982677803773540667011648707744800098350411202352595635441265864557686791029307421484287486206325867727790720439459054887233378918507596311627183150314130505459940154673172925718171697143656879707607773288348539954171651861977639237802330181322084172942513426183558641864264779878679897421817642946057033583221547991565943579998842732084565631605111001038547283102282153405724127703829276735700553371029019185721429189317802088289856144029784142784299070927870885026051478587815738906676361500033206917258615897091440842432363591420083283789478469956227007108278210769696046237346502028885639133940672766504464597659363608286158889076874558375385174875780659546053824412928153893206445399553345120048827942126712834344483204760003089380001125058255866700430167569213238167562072259806625849894883940241031087584997483029525063652073241591230067662032247164360087344057163148294821918293315295458131721035908004498162969328114071843181436133175329955763934069010598543692051627870820298347564615273198270099429972599579475099670542499169135873746571091042303297585729300453475663346834995038159459790874911609281447482237147581388339354985841468499353813273361528193757728670074082430889595684566107905382963250430178982462756416612304483970159229836724132300629225078647344749920688746155295411884351360857541194715488901834327861562090637633034039124750941543795071055303501688162833532842364937829945295480498941640093959475070124495045160365687190216456198481902931787946402524925000333030221918698280135010746813611351383933065634928874674054405047532803675397717923594356596520128170075760762951014424803403601820585681832259360843227466674479966062259409066053814775566667524804939608728637498628716200826711663074052007225565254428112529859323287673050332492434151425347719826755886967983090398313614092841702162545065544947450398087257804192719763976116750283564293663706230601664623085686710370882737128287188863444938264060229053137437185161691555845118560084024194695643467442378415213684584428446607817361579530228754651886871561888472485178945532844749020534764794001405342809126760318353234405060985467441343974307741864638353341975869470909527499734269477380533651122398921253314536308922759871998934668012303468085319307157843576141393652963540789528846587410654319687779594352336767287859251586891947250715699822021349093775267857195706002731438222821413601271360799295284417091879860527085599156643755569939352011681521346363936213218844146710075028028489605197938815412543753435688379805173361981915995965784722681713890026973584011734113514799210288497198717533640319413837910645142461861682851614723890288480283952392852281292075621917464757699480837437110540201029121062753238804980859924431940949508993809528463421866162018773544832202524646990779470621137144218258118745899459413443330765664498766113735928729294117886351504579120849673168317284455084852462182091100044626908801478820466350142236345191674540739479785668352192605804734115691218229347248751189867590026198459611465231314691015601650001183421616760454767545903136648316991005975317386577707906181913475428118791196182404370269468872732873478744638518939203017816024804770340601413208089728982585298989829064084032673173199074330373250138083684950571842356961078956492184902059281335443352276335469220904737369714394880340664331961739723591969406560211985680540897266543629392347122773622245054841556227804873540484694624914839548561911718570386474518502914128016950669319381987523753702973786134785772583617870038373841544269578330378990611874644753817185705857190234746126085778529602827750441503816120855387472044752852663479594928104303475329503847044475532281093178105363566780654632055384742414766496128179790378801247107092684248898936296767714741589088622549235502340605109221460259564283142878379630787650305373445300811082494098508646563688856682876732233143573003229906285536451806805264863535195095076248666850926863127704494838603622664259279558953636599912660847771061558186998590488709728749308968060409659811983762346113272493195589183997786189304657642807024741254096888854961246393058837738841702601660397353012211346774205798516707313865724070688122408339842436951366496035593324588231714810469740000910752642696164456159861615252157597071627416471954170888722113477332697710616128016933147681193624957547101054530934848159203103289255502097294199702751954175651813545395446003109569191708370157976489045835989408348814847570251998768373270606076491873117278317853294942171439204854518157473933234863939489428555395771228216798533732359619025052459986664941688884224238823520856687200420702108382665299122280681928954579293716640882613446662887397356236212139096810758340510528705464979693825302076285255087461775174695543670663820463622371847824565957655233564745304478267794573636839674881607554275422182288319574931339916807769192501447886004037721131882699837540710780262528689511853744715107055947754226286760954087814097222773207179233621993111982137708231181302828408562617806035551163415614323877824896146078242257892859342308450132224504280480336470138941723412087063983375953470545237004369697090078901074846392137648171926051231894660868765050329287677006936548405551805632487280065971351065170153869484058641049390014575900936490097762392097421475706731813708328023491896505411174766382482563473370960222778863173949513483124239445210349347679892206755389164839278316098544879534528932408294897278971114644329344508643018720585336746619320656745137022550918906409259528805788675847728686769030767450724727343665185425674958336572547284449861340042951714533313105908342893928045117595067365503743355104222666959638625433534857421112500431465084158051842037399830076716569724993134775733196445178605421508113099983684391075954753122532646147744466392028358102417862778985037157024112369180533986996437576521216637131374343768595190012878822619259056473096219106690502989610288085046773456097392696431220701932726644088966714139264115974290772679556212481077777049130528779798348681300207073700692864431048251543275868476151584167551897857535388828292900289404927908581854062582539613461988223250229617296800584855811024429837491676836910781828306110471569185984647108839785197845904561350539729336459474432764436023398896497923894023081431977062263084940965892545258613315330068445408097712831136536777519401026994888318296558558440584373262508428712428409167319715485317028932198920758548164773857956767660456759956861324339448690010801163384736773145190509780719963085393865615765159848326930286187493950251295371870202272789142191334032018322680363434475336039753055473396128023666500494723068472310513525538384869630107576377499526776356174265138664207550968436089449990429692128944317695961282200800148729641382395314794265656922829476951359477228902309270302285482615390617749669852961322491065186007657861165655286697480943908154067623830299126046540279256948673536048041012605611935121324801596652102722155047280155236242046306215539698061102759986459278593356250382399240588526049191821854986329659058672430784317707563496369683359155675643494385488506570310237124734790016244668604825640471837208704092369740547066717089696745528924347051612818761686846362747516234242756337386429668947199967744620500480201564050954337103123328033708216510250655735330886342240338817919739199652355918248453255443657766735007402638592289036110679401842252180022898362727725123190030405593949577392538868242299418490038747088439314750812903241679475364497895229839389918642666996830612343218042653374128158274042230793970559605965509570968239616776695040409249208018913968046883737140782327752112023811712275142597212713274687926255614447450328548672970805657595134858770800583670378566399627688172281485158001919804625624662376441434320277051775299784564523108561141565085492900759993155472006048987319503860066458455907387493439173491031270364807867829776170523316357297085188857204452746402199287019721301008942360112265624806722039311597226825979938049032482678737256462842054591283490275921010729366005280526170471815438219911913219236687972350359627112114595161116501584946574825983829968572203015104538727623214210778708043374135847963815634237080552758227222678126389013938889547023687274140560732187970202264638577088377407963011203394897314321450198128793720759415494770430091583082509822608718566526976282379622428696654973115420922040637566740887161143165990641009148826978485431722987978647973811178294719639309705270114406498681406133917295189822937176430941085934875561414038778712845527661290028060523547710720321572916333340048641084073319996562983911489017385649240876472649010989839367396701308136075681049967941875601470449801706252016127517404463200225157051790536555175883958384096481675502813302771231909759889968658794592640240646465512373515793702922001128621783568570674955430805782937908540165259492558078469358493926722113723928003605931350053794731503464306077362404332608520706267495176649099185452375191952930557614852117499415549862412960823957932904760086697409340147730619092134496769895664202724887842401044355428036906756527148123018259440663426225919420608830101462056824280393947662627426089716935307040596532292956605450111621170679349214917573817934556396963671388404378113525673237025942420044231662022512139790144808946128889801906093283015646297577031278158902274367801613102790551593599538747661000370597247492312581472776291908441827543583056957279495434812648190547102380511190432842210749941374525901147607089221435152103416547389402112587971957631315598177645670398135999631846692352596953557637410945386937757137961273715005433821938398939369625680715401129477155700920259501161246725607105535838478711649260105649734286244192373402368210578948487017773389249012192716053187820394999330212339916167420780814922177881607124774831857657099247870069870982289072844064101780963114897129868478655586159892199745426380170991053762190420812517053899915248450023828496795428389765080166069209429599889917826280850668151321314429222439060401440069316624106612679270011329090678352798101429663897576934565826786397596350052172744526635378647865087457888316011390765100992405974743816250340780177005873775993073348249946035265407605885099001620654029986496220613761728123063587952477488135781964620835948568094513851234642572257769688453738314933481581934746855026445335243655923437258168681029402393074282624291343261203466200465597427570501328025224201284610506323452850430013757829816515272192387962840556327066308177560654651228127684144234314938597106478898871037907951199382328391303089256193615402299766069628511284832319170535317969441463250839658998770934453123890575192700415261368395481366351442459321709439337063834975165607935246013545503169987732591790294472632404644930832855119807868389833258507879848499553564441061616645367670813747167937402728398313046969577871263327624985910646957962922788871733801764360890415498019543215935369211780588251912966859172203257255482898010416176054072538573180622798994480819043186012601561147895238894839354604774717560851007230213074191037977907953830087854302731400240564695455108494767008297464575574512888288839791417190116504289486388481269067505762038872296548309495391109478007661038268536938996616073415443932941959523487361532367781620387022044174190708566231447444102513453081206562461316343574054781739302289597454880580882166524074296855776949090681041885501430368934628467882736817493604377251756572276782303875567606194056972352094630211300711037902025172553233909499713946806946134693445052254233306253100528017280628700184950385082422069391385018263942313192143753989875898484115321760661819318510395229478325294644935477175122478430294992734626518162250834187041914185198185875444468617655575395643674524692379806089911542633011126591227732879978716101119483307768638422878238785594483437166794670667437802918997305231713635753129826664908678948737607080840534982553444315973523171109200411831186460796663660121693892466409316860883354308108779611609931287125704533387690525852921395928158391334149388964957482836407766458446916228795395246816080023396114129503684592897855722627457492435529882814061708953902536218372635874299732904946484110842996676149757597743876153587830572055473685539703381545404483112876572583108815416334570358729472763701760516132574580816541121846663897648404250595580708250577389753307287786368575715940751055955594701128778204888685359136909783801275080133373029557320536334759457171167357523600626979516822776489240465202726087408762483353892325229137269065862111416377054366058638602733064609334556419187465880399916311266103020975594592066552614601103979765355144756513015277484321469522706225390388132143727655049247284765763366694406516086989691126714216148497800775852791963512253639518136511586270834068045725160994610120092273840879800541234815956486160830881869565469409215618940716752392444258419118028063855955064977596264000627827751201261108329131551681555932902201478703088123872244596964504950324781966424248541245031414048079189584195461199356461667904893659867402184746242305916007314854932824790540050640968057419122096667322616124304233203556309920585354391823327221374810404389632292975485431220639742605427319930332169333901922723331817811056726514975181686792011717769394288998476950527476708136324091882600302449497863760855883721767824362712710359811960840140268535393713212672463805030248711214794217811245915674800886164451790024970620660094553554111722244985884425831995942350056271052937341793698769972477499884155715836429842195859146814345931903679286027121733205099459812137461943666021885809930001145509660525548148348530638907655805406474856831225356842375220206595153825557133707350899452034709928899831118289738083505871575153136429657254682047476930443005426090057886320564302443159572918087697902695088041878393364888668224480233554000031304483927685775261310211881133932597711225432676475135114430316438106251284791045701629046256323119036572640747939029887781115874443733071196799527168579956342772023045910630068769510611716491645737127255326893321971029853275874393989884329696872798793676617804669535313893237845899250292715208596609513809935620189333721324735743963087588201344472177085765950485995999683990923618195811648177973949554999882470961258178048249431080536097699368011087255126984044803920520610153702883633007754575004446016012360574294572611220643177885677317732714054231409021088289988437124304289810703591665797532742971316923151748644562414313843179263731454338804019138945932719633894874701897179071175081702560033288252012371349241480152779054931811962975109089350753031389529856112604083437933585796956684795665022077728650354300641871852317207512206549599754638333036624377303721648586624064309080123726531230527516351055053861324194393063534093121592726524263721683339864084719328814712059237881408115655770357129338432053442063397022081111287255129804711822761012055045767128824532873486402715517320595528146263827545796545882986323446126127955169236564137297806960291166653596088539100509760063875068031133940342762978367267702462504346870695657624598349533787406896568729934595926127285252714602725299037823600309845841144663528387450075989408360355979751255755819429955502288828214712731889536618291326411857989355078191630685449237246327481033645253950672020624759194097828158801944269867616201149468895330187431440200441853027177580247146497948077399396267945881726513080784777952305757171305326966059239024218583735270273574302592138097935093803480680763791598509107695408798235231375833862903923985604368184861527872977648802455124656955042361737100352488668378799656045685626848634903738325220747207803204828950152463668358006255612466720533291234450429032717939553027381846708025641214196150704434296214064805988452605502361164538845674372762983937587639412445564771431848995228771568847129723765659867249923979678537367592577128758000689526356709741712647634903517173620210215551420585618340881966745159046843211324917739068630947791587209617685562661964361667247144201551789918415040675141837899081992234996557056738379497201062019043545726129881885918663352593539927322817026080703765428252611427192309840373032522481204866343708363533936261793745527397332500794410949933529979664609281639008287332453548792775736450046691679766338729084719763901761446350063928444062820843480714386450653491004680752879067222603954407484452916855900312511043659601777182968141723468218446056691704940999729865090872905691672187342659948986751246533459175386854998198869615195437458730967547626873535940697453317103536067193256963375135980506489257979483901128058327391656682634799385160570189449283656238152097474282686235353624831214571358277122291496003291119825577417402638087906384500762123849110433109480896802126580221165330742317616106405742186339758388158539641305162964994583672552644709024973051227108242795148801877984712163725632382658183575983638987834973690860247535177746293874117896540602872492022141927548754568782115560751673422008285680961603420101776874226331303419841780763228897688820138987419560651182056808887385280252762976478689640186077313538832859247637349174605712493327289948618234427675717868179271524260782756528363655538708078556643500529501654168285824482419109530703841684019481130068152405995120989178801667544677527717295035343897628389121951366154199309125115003146434722268199801499822719988179464540139530677407959708546862013462815015412167109149762102894071617620818103314207922950084941379499813946294237900853871986246069196843015327151686704626173659912918645797143898697205138665347277764075252375425085429814145634145689263756206544220969278987747055079381748857117919350891903136593401137104423895826684832805160087499439778789338460060038234003838309551244730627677253892821850025384016174635451482055814627453285416999658943642606600725664862516585962162486674896663978728841368094736336879783333746584659323298786452637044009467969963370522287432747339336912817385040426657124693024325925302546517221999470189379833837064216768570541874228357233815005492882448074619000536129658342817885399885753633617716597589650944344843842834835085466939779267685280744244661355423308382881962977282938236523295067506893130848030470104139514843989200462398240571468813613689808166027228162540525521749113270112639439053832740747456226400134368507427579988990210273458228359084091156035944756397961493230808839186837511510476673405494328021609918701212233058016139004947573727895923784832416019321298878165536084121469599891298867549608993064033236338012056352682168873639037460581916479025754192887484559694553141665104049167618927410864949771724255522981532974528883238063315033276048418792174786708368123967048720490823442062360859700851739843992162147920453592101990745864609979073817473380883339704337013624998864990725400403480689826626062872263279204245512059283691567824452634992168706504609126662091245002492196023342848880603898487114271679467164948256292750906291387764264148268902149563856876472835372747071865550880677740165217849364609151655716881643719253297724729631282820982755847078935514177219284702148573826389187900577727079549033422933703807019327395095437692140572621724805390282908860746809624807535148751879201261112846706769663269064717012498391250323501867790353720344070867274179938451852480837678965540590051890149422105971043906440660401854988650332024010309823989639360193639100269909933600389083165214203008960339579931742495066356452046103233850193265910879512833778143675564480824645214474554038736022500916837326021030777336601595505711483070802799303058902613955241606418643256014913417348412043192874003303595397995508339468339411889159549301093125989467636687652474718369551057435982249965482510096757234837329099720044587491669778189539881461579641209448214409447586155331876855692695553487968706697653646748454792259576104141748234565647527332154410142906587470680866022317819091127747462576032897875908865117569995626274740751921344900836707565646809166784733821269360361700476831826732342919631710083421721285053034752734279908148986990158063722521646843309809036710860994351019555250046348154172360603699552562587787208378748941859905523235673461546094342443932515592787301938107938615152486493147080125977856373797005843521609545426988905277177537235214266467937588378047304427480099182460452180814204410240019593341759962208095658184351626836291173671957207536334269103572606751415048774949171444221139857745565326191635526524198183168410931776321395757812266734190178134746600489922100036619136575533932564030666723326703573961181983109633144471392307473757966477551889509135121543262055013740672201013022501114136370506964815788450031450274059554080945274919969661174425289380665305938662354403724592908187934548901952794413998718661738718203903839720033466820248841577205221990601826764519071791196446202970683922282981740743793045467888086505805410177502720368128869867912272013731926317299172630795622343262562570126648950301302157813547465708144683315051974905504012413539857700304165381859304412975973253141445322187966339396588632632325074488272728035414217296383071977775728729852635440747664218875920358930580149561545644462917254503220028436840635996636121619164142677585741412814265407859754799435915126162819550735982183647324469779157588262073276316175405445821431412888533102047485034753246416926506314170963572972635819213187992917449999739277069917632588125071288575607887368870934944667526866651620780513975809940939803041635617460131010937950044608459800325456108278932822042049136922360568284161069200460407866448234701901247026094033932213922585958072673747088085146059796801528414654162165890219509012054057656780769929817084439543297748303851949461693114524895992273960348580306054057740895749601796142440658005922647822926235021384579353454815435119865500790161144748198143267313357646780951331820783321605343639627834699299674370749327704556000356732529317099661482863169539482199823955491404958112831550850897436023042222882216912934976260371700807076938423255327279598247448206392601492445765920751123521771156970997503965160645385877068268973830923510868981407723464629114682544251140955762931998109952532876516006756585451081267533592224598859948065058548088896139334203700603343411961469509522892417924035499960756046716106199570242269460729198773222486465492550584241751421320657739862588962116973072013090613616576542333962071431729939498336042442525391485109088444240808791790552439192362910348346263687824837099208943241582932722678072791211275904721809302644645824984718844420292892735425069604771650711391707172518325895720011871694336000753459536938384236002278663256550065847400849779881371671406020711284815488376918221992041584355195410151271663733118527246084386053640232535379982547521306184843105956970140969307803066056340174651379705119499389780455925865969888826038597656043003957575992366974992431395587590366055986803959180290453849429619595722998571788935935670157268042150355313688855203271526241223105911034375545962013059612533687156038983665737596085667022345900676596989535762951117309854303573159470056639916094739270219925235082315691621437460772492989103313690541185140674196746224207723060756015231382029068395525781852498149525120417064821506070125074743429523338678315385474125773150535818844774169175806700777783434348868941017895565030876234245911906668069006448386375167241499618206065963899010975435999345934097221100410239177630635717113321427069828059743378114606986532886951581418726121107204515748459655793660608236620271885723934968031393976277380584581878781996656747283856773455150582430060184118041095422852817632705926180459148674036619662646676234027139032089570670219380420425673243845596740641273010303694448875836571829999000638724000536660893171850626331268192942819737291247968937086848043485305621907778296673880953921617456876415384309866815603698359447827652046356811376280366072051819222966828315508710463971781034772201156497022947385662219470129360318978287028368857050075799015826758067446382142779963629963194450626391276568076489746124011781034364086584409712965663508787453127428304979363142378796751477155016032985001107404439818032390792744332725980999566185206524342660334243654207806143845212755304638426278018758192051829805922951075378414036652373032168175309304888560143852374707885644064311901625747010852833965908234267906330052470348927374738985453737709418415558357030017671996207636286368827801146867926006017682190919702590970215192056698452120331797607387009220530314677305639930610007378661491040787915888179491114912227953680323288206871648700746094778278123950768378881216933457834484130818155474944733382807221225037541899853038461536628679685435518197829494060048298478344671376991539582426965437569414484592985801540976085181027027075818147774834936620833848328573184594933222937619118874399249074061277038515605709218357684466757867701362364451356313670506259087654365122701118689702547559465061448915157384320745410727643051313886982874085816347066214813552979141075962313570190903775014472216244183658664997130801914172866403926163764930540116758314963398454372122418482711112235355780814088126688648686587005682052499916305244450909298696498950542671623442522422526185773438762933018370479905654077966823014904498936287980878305335405477210762411875872189142153849285276241706607518401794165588782212464350101413559747925232959696655878592876464734357828011537459466241530847810997663590604032901779509888707428163996987945343370009857155975632248685597386683019971825349786753180007974948427793657147533704873022555689613267876507339616943292025781455423635816584219475628389733986250828131685443824141237155109903028505624989886587212784762962163600971587205648044929788653913334950548868188675747186364626969805821328456291754349368417977847931374724646676789098546620344738295701941802342500875912656282188389763577765776227234430043886312771598167474537767644152166318186682471356712014692738831315365442635249669848582708480518093081372033595569197954720643683237114153386529838039294038805896895594757670527423558305975065922983313101823024473040925027713888064412616301500256904091503781379803594528451832597868368075944050273349978670473532505736648385394950062774328179781564915945973695520087681136593169337857504246939271340769605580525968144838208847320391021403805296932067404305324196164618856938778370423782219006957308607187371248548672338798827501069006998271290279112063463394713997910344418179900473207558340389911700148435408970875324103117551663064508623919168832848909928889868054711987242400194987751072286646194645163307833289621479467642194255899204745591545236870504405692900460585761967678751276833116029727118983479863692494802534681089321361101691061651297578820427496296967261841587300590808946848890791576712706221286276059548655402512385616308723475057907794636143277406806504558578899356130362531831540637005796173859245022026180203225450193878803558165172607355479922341176485369689350692810979927016829889830343852472338680496427870308344826524700712657517342183345138707066609502742899745593900656247324900996705541892907045531332515488844215100451445273921472073219530313929036644666070462755148756153923188443810137635122210751451781323659608485676170832765565719998715780025396275199592036078939447429054747813411160732440689947585505170086803431068803070651343520255570958820333148470417226734357310178125907561770075989034727983166944921617851128331258608237335366356566549643758717480904069730943795147390067555960199713326835832899893077659076781576873479894445804044397739131920762159806052322208752832168976066705057298898647433062659199833599725270438784328994636800083566334872678371054203926733292400754971086348755418979564079590910849130040488095056240427869211643484060380699413135451939092618309236902845710596521137290307414780540450668851565045443689381926853502053368398414162931633639936953085807462931353860460927999158977562488482858507676429080411741416332725806242843450120699904192426556584652289698486150235957670832705810661010426333479657008217529513077638680649623095944035547524909239913737860500757726129270977453414576394147528670639366592273655344968283133618173466401977588962366765633424385615629572352116133789481157074739721759118989586714765595738382921770994013719600488975010519787567970313400674623632383919915567681362216078070665944467197517034648604916777032720006233345832212981133695091534358734998860822412541860966386884588389106541836580179547906335597790541600323266740487878939574478131284486773529817843873852147299834684587807435596174861253724690661243638704445656095918148644159353674146693402235418321205503985684479089082449552248178534353121112947934596804203428109874291011072593455043038750650656730496948208102329819398995327975239789958740854415624813075760499608579523221930988325163644658299468459617898730248326687591804673988774942067468955509110660337699903173977664807395126909113087182053162153064663788334890108118653942186976119751703524096980455633421123235633334032488777200445306586164425031695347158161041242068131919619736156215172829800924605400519032048128313161614675295277159378032685088001974152386233280366867437816249659283768438640473487965183330683094196572250930856581450073782625328882493375369464224802852534328248914542785231129715244604618963059435362105489376519082170957663223852072320618202320289928989547635089232553717363374196336181946318557392392312278591764903373820741341110734859715070456521914050563959303378645683938266004771106517769877816873111744628891015596518438166354873677523220148280429599556938404503965759527612890545152904536965108360397773159832147129883512708408685302391476396827011131930332478468474558469837187733287984019599550439358128155007729541885936229288069759922619804312318770087771212242278451920232567178066551838080373324401630364596383425376907530515977468717741139751360933100696789092228107472553867619646160676441811613261689746214575711247873024020542943091816582796070918648033996360601353485866859605651592584771367074670661266273218372949108236839355807048488295260307876703868843568724563874498868431264579070026312431841987268155347044216704585068274972444171882744579846521236836858409587385396033389957139249459952408783660230142000116254659479915019117919363803842311157245122932696060234493675428355146853217276955520758655776262610603530111231601515724115336358155981835938876540039766284943976518784296554628391783586742626935738993947727288876211248479989903361151177667294047198581457934471029093284793721660376251608891234129750254493136152080739756311361830826415007741044416628231013405109550343161590788968585270818790161646805179013199381918501897656535086008253693992850120270109693870969375460443107626160818049381612822805562433427568299785840265663677677435668586946830613342775794478350413612337307873267805575145207533273997444435557428223420857449376483223619357808933123591621918277844015403161928264867815968656000946891311034125387528486306634320826064509336264427535206548347801150287194700255344225790800735103298007358595082614519209039991194429718863628780392297539361106788385820391597507145027200336740375017846509539334989290054845418468655399800181701710531726778885846434260082905298311576482411431594515150115906003020768683875733843369380594309343701945702306857917607383670202698474930439040836496124259240599386132172431579320827692618003730807495645549202893488252243972924765819556480224732296309141800713574763049774273925333616791213408896893674754310148276881397768699356784521652822280021543909318312202731278391523275417123148030887513924772990448620493767509612940984573800861001163765722179411114559797974721321221332184748822926534898192720980991868307008382739168530479642186459350038234679099362442466073747444858350449665165362178215500934954159193413293257782719504721571173328904294128911651619390150675401342510141629257773664469516325080314517200970446535082546292675691985538395995752500201245798900084238620537950352721814083822634367020013663210375330529446756628217962526657461558996563552356157667395953740929910128228830577192649705859391043999143553200740132698917800332381091374872092055177979014834155538075540564301546047038504894190525161419462897915660238372868968339566899213383757481074746631009683071833388539649345106179803056258185146507261074894068577476890780543539738563088313361671122392050264027889496189392464519277224566856452148354311758628294128992269597588515327174165538801258079198342859235196827774261843121459045364147702584060717969650476249072030472003159086855147046359433325953105337904745771230848011426892937098865281388396229208574802694086219455750594312948952222244133102756093262153919532865092251862593270974859920614405126633943591566334238458345830400529029926080352958826780672149607255509012969349361323662238324554239347046396137579088224624021367050950712268240508287600601326898972771788156134433950923867484765659817865006549973052896699899883490309001047610412911175274086014840304257801572328098230824128877348509470191843114520875636541472812267640608777428078212343589636464885242851882405013060192060570200708278181398777335560371884454172428032660304583419936378020785680468708927566149038849362628079020890017954348248740117658660807254334262591881154898468144387886780754587769784840652431309817135415283943218986865789665793018806449586724814158674800484655498556094051872867978476126986267413062726064960648026167021699040633118768108932449171742697943688916178618321586399571143016413712411311197575937595889337951784373313114645153679866527934338681758933444788898131245832875576825082184227396325719335083283098374976194194073751778755432934982928691889395199764609466593948826476111801823700440888161983675059578837904921288387357253867451202303479936127596449658248345535466892220722899655415556291319583963380526140752601540425480437047485966000850278576306541833920419344119145920987000606973532632132991039109339673725361365536137068732223955436825509590176502671880936309903373445011396510403953865722351764193579653820751671919153392131286832887166572267757818241083916330320617105217024530929446562845049636511514367768774757674736699563580403091001427133721817233451399472658497332747252423047382536996118665146445397472846483848292756551979422947868572768222929246025367401746762458266665767839044917343179296471061844573087864572079974650515119747776545488272951709330471899195547256661832365864741881971680378192026731780661952196080377322814281565446924431176536122599106523703738505789522460762637413489546099642902135681885643238303706459660683883069290622708789822787011495431971288442695318848926091343065895591152363913109211539752527237125817340525909035148930271979215008481585007373650466597046130939947046377140221650839041710638805709458103261101145225832780853438173778967170019562402299767412210918818145272419790214236685836497219293350833489874630924120260805047105541031838119742072663688629314835446227755929084068867984172640933067523472140944153124971027624385514963144357464000772236492733005227275984657630874253849999003893171285074497135348310228359800969785902787856024914481117433219862788367822294924572650898180706167590621451323192778093855002823671386132639988752716845859172681925597941808333482983670299941638899697969275872463041811564110147480773279902598341469486895511245789097898256986082598307771047864141116850953069386130896366578763702748213013407357596924286096305321845689258072092500045818735413795625240419880319482211177657752894821965034697493356569937797521907604371097319723837460649253862093251827590441170447574714522946564842387247920038469970119903194317773648932841853614732066910324382150475469630557144788576359836086330579452787996025984413101576736374092193282081829930645351851202442520853910296967556981372619207071881222520904412508912685818656867010692188591146040932750119085518709087069187945371238498818825586788669910449958585545066954453560582596986567383032889049053108515772023796983118473306174056521296770716100616652711703711674238991492281964498766626063260370599371451538618668528267156275034309626337807856194417594191346693791652600997741122922205753110828651227758364471133786330297112426973195072109832550054511417716503096305669752090622265440948352872047135030913630425142347742216445362761639910514264254204075440586750888422226194095856492469591767899749814252710991053254859976444182509447810988133898475815392368115699893296929609352241607887061916468151642452909960405050782043726102961201848349992868361093084919602183032301822374146506163581938090658121306535201611698057418450365542864256531098855505089911327437592948080394017951420297078188235022947392237685808597231998520894819620677738988886175562751401795546376408913873665241542856223830077515530931733612180347655538879997646508663277474006805346470596134876594968113447231276993216052306642276416390260064343950108533309701923157017574001475980225118596850327379183245224342051319784021964083832060856448273545813622876009036185448180898119918426656558772659912418687027932634718349743981279455804764311596338815263371018283266708870254166060986391116793648198780325764100770908489610320555744279099816159912197966321377117237437308807737251918823681409527175815301682757838724791420450090716145158499127326213784175513031577400220730837522001257957264586921903936687988957840762358013686490590708699099105092757759737880852977688119597774646453819766174984874660060758431180293726638064843663763735471393552158985662908088873542482624487777574302607928361357872967102173101796677923369358886062761208225234251819647304891191519872832359511680636358844335554185493585888509636525014205007872360576472300285565942139901558934357984110212228479293791261024221156924692257988776375488355831128823167597846936223670037847854624299014324044013790633691871600927210467165395800493219869810862742953812751532969682372031915565822986731292811704576376475978934544724178146294807546818659550924203163903874927204251797590442781076577219223522190656937023310998024880030550582933196415781884614733430638367904023070628730700088692220433798680501049575625606900189647817169922870250002637114280296506897716851607297230782241609053587889831736072258293448496842283728011073535207208458081731031558435168521967672259500962410536921059802787972626979544311863463023867293279225454685031390580732382883542202833979425845310623141746201772306095334811908731431713267098166320251579196467176700613501549516234190780403277286517379275633743789708461978307856726730614571611158891227390846328234261180329296823398681553069972392657182503937738827502137984089441004999690215343409580685203267549146188513792601213537066767588204900197037452595979770957297861125157911667612850942968008367384540596208723888725671617668926266218424973932335669529556500749246463900643500059997001626917411608514615325047494980813862656131969163418803590198419129761390984408120807754918454634944754973078445436650497706801947481057234197871540851470395106286183794093692353714542044399065255650701494912137961974695594751138308735843080209482491828788921432729311343147496509428909147068750477354821297652468641891978000859951046709400955006554067978082155325915160198967681274458400932758041080645511083713149397888970521962514460641600855981429801415301772865726551726892769551034515772632161775944531402398992521090751214336847273099126790983490438046384986463274646641879217595431484759584364482773911901748219251296397803234635255349776807904358651957577447346998782755695816052399290411093210092052784782796744624655299998595064770902568198343896581727429916182692366184152389394554979779616558259784452933263778527940837735320190092496441100299789608517156256685546309671038017269615076970501580019669228479688420478409218980271772777501409581759002697968482043264435694709942778605285974066442602866136022890340661069448065886313838671187428690353352432444558808366887804853392718204763284403347788351334087240595333746784164953721866185060857432272488728804969019453667388924385057906804325370222500509401920844897414546007013020205771272289943575033828951652236730396195379579966849411059279645476012056629837074932059346261391425094291947390317826449409148378673011509034135911189428665561370280635741050017703930603517290222269677423172915892089863292222031053738940050255151239452397795551524437327176703394694056743004916526536082216172096112155407622967847142961626089340785963050847303663731585313490367657897220429447411981321441754526513325268586190141091775467013959696670080408459812395980522152010974348222145671089798957468292095256752824407759974258365524632628606219946011832533661435557191646675662972656163616228318468840428162058431431452815863412315012684425324512145242156995712596735322665894351570485088310615444205485589775671135859365448487795621567121369124725070445536238790871626262393991871461019252938721439842006065145352722739110783126348093163419160333811173018191824629348586179303868193467237975063168861697785884047871649584617167144953989762813996129823408400296712329392326789454198654216128251346447283884865988050945108126739081921675029710383531584932787269490646323148422089507437002922775172871097539883025776229500790708663737253824428737577471077115269782500411135525910323090780080603863147767617612988151858048793251451353714065743852436335875223391499050323772351794635807744212606839375794215671177056685870556494354615912638444539938245692962034459413552115412249917278633692224950712734552402730069127869634469874232710883179924858096494807407346614870743035602242192546885577222466261963435937730135513849944102583845926189697002555242058193969674749971905396994256168510236182697922365048396980513902014639719239124238358775617313012208904003900883236334227441506829208474360288787526421802106610057956991479152560265876706744796836953492879066413389035293602242088025382499909593752347132556161869925151632206248267968626850649336385935351669084658821016283862855203890653224685540026577382057264692188184573912774517117687587607758661387444823168515565158382886366250162934708226498722579279875399377857993744638688461402175425555779441376646887767040285780958097947554298182575902796738228848782649309049796967457918972578665138850348251016606039479266900027509232256639404397622590271056246737613164820717590849922506690593504159452799424068308538318035483052428195425547594946752194057176452059355682181041688603626148946044921049016334419546868139542738935070266225858255009801342579399265280686921259090010236632093667193353654029666891910108275973299512831566096193344459058039988920920456436708699924125030582299187267592426375624463680392993498649362954839424534659990745608166654846125766105004120735130551518045475601203787503544774340698258858984087196851205733091149713010616477895083214552957966581635092227626012356735672752792454603049869362566553604345045896746867216769592140096920990616507471841186203261453296537285027309122893708679104072193042331535856972802794380801385284312043998013568484867945136401163925588427895005466577463772797855335038931515695321576710497060495861330300687986959163344295646121443926578788459280728853319784747100118977549853978540996200035076700133228315354912121723291888975774086440564941916714814178008182104808468341027381063169982361912007942333122827268859437993209374264443600795326408132523013838545943814042098266112517344565962147872821068715958796866644418222366490542090951073400585572985856848758360636614942568373990558653258703904438414246483436524348135829448011484827260087967212146890774963364390363501098095319247366081187335692528303474832062224604761190389134334801809766155125938095619685017480617896929381290884575489930036240463339800484007742050387393346005261801786914233899613419232504764261579405869945448302649934006645570479191813334079479480597484110178485893693069583467366844462214691946710488085663924831001836956779247267740030945178849402319529073537015386542238572427549228199439365209425467166539182097605718871771345378229009771983537446238914412474210233682879502861079007884911869109983998710864333186891553012348352491450633031315207739613827042788917550163992307805386192000553365624761794997301906283620006655321704098648755124264119351993910846343470048677586298224090905891217821048354732150843464704464980932482334299027431191327311737334573510952289205216875180733887323904574440625740046001351811719812979663802402226960184415218875239878748367095443647859109594961091929517870547075975022249875164251499982479264811093891838097267541571509252417890390071728058531411233667722579877280319238966504754595549106766036503120250200889560309643523469270493621205814411701073531850330923444544783842903092917404881878411513993597764284262190591586723984549425221144951913927613482582152877486449244231049988858822734882696949680064992689753404503272731827622243827112843088152560482657395495311879031825474075601371229982369612175818476237087627536185530961868203755052808213949627886904577030184966425284009930133504776062936977386291469356202885768685048482341086778673290242143233451003389924589730044564886491295676451717204505673967549905687180053303265127930036426627310803860191438437165202661238156017475140790034771089045661967158902214031326296101092953559977278478774981627079323880487604191851914250896228832683237319799985864663896821696767813878207778689415493145258285025928853383844799784348935722214521337023998098052564836537288747776086860087991761635974456990218879507270924092816635254084859732999154073488847938284124615670546646893574821917814900632216147031994357473043861723527337576338841523102688154387407736758586456412497611782900950389227144052801652449282639788842006172298540134445122634222713758578102061356599189675179933947179187973413528341445765966647454623920809654771560746719131560173851848005138784517041448244938860300777774957150348391993210461468339033474245072588033694025394258506360716300515803480929557908030590760644266208672100366741005109786400062832436269855485482409477425961587774377279547764254615242392890702613598999419107610511200368522579039300515998878238601747446022036034178572013524105380882263704267726889262727663511296449549569107347053093324978422376755138960534551381438394945259771413228193487979161420885469038069135702527644685447430750581975787637849042430579278669876812429730365011879818218936195691807682709764290665481941445845486989701911726944643239298257143846454484704198488667269304299393005187919694810663142700226286434141218771816543964610184674051473832434066403826270385801219065777385305038789562750719371112688329506786196844576838200559560657509635549665970680501369980421050117078035724257202831038174882310858998476835874184195654600771971666139833762453824907780208581718977080405768437407312514284342560924966944635359841586613706494760281934470729021722597114203627603025318913631902404562869747141206563311530599298727912181777193621481292089122865269702542530500952171830847055418085642220677520263564598951866697107783114032053195357912729277336885440729115553721472516158441220815563807236498109136130944496876498094554990295316678304632176286949532725416967518799352166194443020999060013322450948524310297505751940682543207630566583135508278282791315967802840212876739805917644642707019814474781671207200983861072028217276036293194558889353726317263410382436899096549164966535180572199025864671942904623437235412829631958802523736267191129718983131077642053050520491574050169553736901012679532201109725820726517685342790615707494767410382857426231131610785789121487370712060112657590179487230841144320444590647436491199718901569719122529438675090631802679682995013140090074084329827333262573418623496124123230228274451381696958249397740195638663204525019977741086735132564165256143780276291566128547840262868601278495782128828956223442528729827039561382675280585911425428236827338686194017017951906232666962008189562687552731054354903577056769824955922317461992349524599090411881589937500659028176509301933680256593911089019823197206101335857573127423933634617021433560975499824351745783628311624502396404441342146218644314140547503875962307700468616174809063894114207154971946477501307765598519893670861909639435457388127499071742581486856946543275705913815884576757795272221734730311810187488961806678214246299640301919893208614863692716365695745061905709247737378413019750648339789151049348756044985047277823581203075027508429703226548671994923566679195270976756529604816859161803180091194939224423854895450286784424661871399968914772810974585486497095958613370541926724340125882942947068778752173543413066722336697407806079574921963818954031144692488071931845829898241547014578674794565466858931733262082916629024211978994199413775520849969596391004365826601033744663570100404662513867989830060408121988081363845069697622814279115801317442982001826477729094313685786353972391581446454722919438454772004451824080473291520518674970793270406784882418266294148672383297401400081193184101307118479831676434776981487924546112996010324377731021813620662953529910304620020029999651411206510259774543225396870430523761900641616327552605291540176094001137719512507531732686050926999718310890075335217241290711351186996965989471847810315269674069633019101052550252617860834287947646362477526827009097323534945802786477391054941911493868690154614060292678030740298530493952009368465029788737378547667298876591321407201882488746509251893467194140727835228189652300939521324730896900391282973955104201492466289135940493225336424395942347955622434750577808293169074464151581624959750871140010667341780495170700209328591690136845019499460576775547544347751828070727524555968662099980319589973781919255406773915620498617735653808989580728982693276117206592764000940711462233991290538965512364013393979523456711988933144372718917186045079281662501683853965433863798564729092810810653444591154415966616207472558016946938197288130486787265658983914372674064046634212032315558930332205073797396287217523593521876528590419363294807629760955508059487425602710757088442208507768392728100097506753542948262459575915990157742575254917972145885903391524357637374375154551919031592578884199660779148076185489775542259346302557177947251926909343909427356518205126930204208142955416311081766599499828263145109425052840475923624629982800857778221960410531510441398429616669619072452977335794121239103236901985604253875431016497873519519245994400400040416457345521488608854563452478200965091932061333460433541570911648425908353012743860279964548829569548810872609076834586733531854671521211541353163173322375289199357439696902102347950984256935198802455304007005078226930923257174899017245519262412024984322482895926708304095831384675536115868001586874853741774848859693120231503987747148388357670547935408510056625960185839977644676481378723367448960852195464331698659664556761334412821198174410797344949433024924240768673588163015491944240512992637135703357048676390621524184158645111828459205904055590061686381246518935076921466269644612080845567551435834287082677565553039287156668106777685563906083518474027485786454276359557361364556273207624361439495340740073343942045065386593774570176476627818456777243310321719389572764143544211109217549233731815655558244185067763195851602008514486736234981881592358754404142716049583352945138966470488886587365726148038707772277996336749556298495500772258092894680161506560072618550057607675803151291081523019914744084051575113849411607831451513653434449595392663574558082202064937334484807388271345602944563562360010620248465016687499202541286982729428591814121153478979647061052783015519789274523503187461326156787766720684802331706063815602193950311484432833018651521493293864825463850418655898508864335946255037968555731870184596416823511472854779625264436390385940535280051107814443469842387696301773511315996906823971499297629352118664080990273430565732308570136807631966463644726338294498818281991534228688550533275894797965898905940655078734492875813301680158131225464323942069387473411750631351426224975098421132343492790798110842066330463249393374748550325389955008219376230135850162818226735772305848666009916265979012719593294729901269503284591288718034613237154069717044541158597514736674114740397480292477002516598692785384631763122220838476107505181306902548535624164031780157137322953957857283879164333344316269650190697406717732455166443604083935062366530587259426977380350792000965093776775369455670481881456961482570218328865744624806419647921060457074371515967025155609214713868010084709781720660084730051063802410650526690576773202298550063134052446272089519213491171221885416173416383179432914740745992004342143564194416330748463519150212206476373062850124941790399391602267055844830689072317643959670678778711679144644287454016909626722622430393047530915201910191366709878872846890645762443055063868681726408165319982801186345751840339001306395114163624697086654278872913820784429811512343841639821565674733315628902313231531179784512761262308381095772262680221718976684116181007950745860831196086706742475086492272249522063647598887263589562183654236543424014493547181156893739518036205472515818978514906321470340023843797919869861100151304091429300079025176135864829915541175439254146620262182113453886467131681270326663499376899984906406604554434462562086880315918883076583306571052432227824878559065385545686492393563306858476764357974239055925535999660996394161835206870977185075953698661739044106715919126097313532020913921437654475087164090424582745761153188897033793327881506781540190027642212774462926264130316177661363468893997311138276433212011140537470889049146794350193298093724079889250511642895697048717073161576706083783024771783100584281330512321427195540656640798921584288256380234151700144021294580153573774973720000391520616191088860995892950699680383195631049080164203634884965356147180086492529982991413231183548133565740597854840808545099465061118977894609027235276264792700338243418443076739213366758021712426919948729643087596318890069932468014293528912151906782232698356365142870082899662884180417117045874519928136845645594315765771083446652603945854584233726924975793579414606991607423056432015676456866884805432009426395289920001907960836837401748765258837030462108302884699275693745231138723905054604329680014223438026897873720781954429685193725958868720979008917549544243650494170350986573303215112629163891545490867082039599220883383743100094417945685417608279193220914996490641053978100812813273762844288542279438337929264416933819935174427573133702238646917332373237287131139511491071794081808042940068108231210876771814771908285117196082406535530551789590773899493272816801531987889362116980631722397880863439604245821859054119166168191999471799721999202082523731509239386519773430641714106641142825026449450654629491371025218917519568794213838333151865198390674655462367260914380911350160470835932089447203652482030557239361551484574248063347880976460331221570956430326862717358374791353636180253126559459718104563809595439675117952917543955128875359363149229493203626196630483006091779991378306090120465437012267200367181465763539801388565047187065260125600565680574227076498919980166705197016221295615602610502572012585294282653143163272053504862321952408879936508535894407199228557953641031990254544889410756986629733983120122124447590575920797306018373690838055692432611156936280871064869317131549818276607328509804755351539131167425091901051429346934651885803413184052145959970262546365037620966908567582948149528093168669094830981785471440878071306700978539313646166783974885929635083784453968419155121415071024507274695295426379184325366327138769557425332897660801901721358696185264994647997197485631979876212813160375451726555677926651207293393521745071573407468675584671034977255334149629013706650761137145332513532099593597982136533884936383815129066594432508297763858907449476913538334038585442967976090626710863209719263439617017626088732651356820053116430019334669678322331003239502505757152191783793347184834707620895809664660420456907382627663823040715977623161726943165528537298731933687646105429152203603766726891308001411992159903661351516134795248149278048958798021322047347747637865299432189434104130170392877987496046500020643120504357227482008838627635888612545124346417741759737482929133968992898607488477400253737353197189382962135260674408438008150142869607920953447640137883262054616949317807490514885629545701968292217291950275200516652298346299586397919278802377523454504860553905898476607309794580474812920904910577634503436676942849726792255272207277832024298282932489982420380874754570986942054517623480863173965347238535239292139933404522864094498748932613958617960020824980733358626223021324055294621068263507791878071254028338478110462907838860243788248743492102913772378243501389435128542324166257769639945887579592891213661070698565166558579342944913496805605620504099408100632543800070929846610915904923450856761850650459671535316313201385337510762100332787895722621567339455542716186146827747954486853862722751617329618513311919276581795200069357361794289036830445527877282600924619236900865011268639862796360142102895547457449768990264001100692891872683320950312847362247365639199652346913128336284340152030667224138963407021661792741241232367449428146222150069906178964253730150875559579189691232617816922609884876777722418518442888977207120150225456207820350347229183719368246023789413721786219520719952529330057930513263287690155157195800486674482301408574574682335934515779968296118986464217693399327154780564900616614006717562296723577790723246299122699212666309872257586290555871042434846729785471016288205598387181196367258269978119523931727362239902779625776130860809067860962147421297641412585602565180888332829237718565737527623259251954053090918622246072270032186976565471494357433469544315529355129032680960678794167254433312493512534259212738924948953540952329265738584613395574583665531189954149145729055273439452844304832104084239558632746870211275302621665347109248439207849172876158243447905909578855386163149375702617666749297333842799574793164621352394391224029731199216998353023492841633507654581973493764764248958980380824584243848620466222974316909029660103751437126811198061198523059466625269388362316772426612447967613204652653588333089291652886610832402366169052098092363383322538208098570857283731015412500023353343625374981186039553211246207966040990172470667093619546263858473797851809342355866061265379669503930749038154460060465472332353574756389474418661076181684844210199955417113934433798105923288268384835334418418584831700100757400516812477457518486539518931007243592851299352766232337600519941730459763719439641815450540856047098070848672889641494975639315184136955674823632553769477655687492868494455760198014012487360364136757612496214715137384688971924684429205566636953109561955572024901427589526101403185833928727514883288451369265053336906547502270825388509996263426535015165860711452360386934702844202657405947212939600757520352866756875785937262670562543430921663665595688021375530362027334544476087309846226860947182243551417677921707568991492613082401536919732801834283588753390384829287442713370965980336694282464209877798432216224716280455937437106280619350370267167018316302345928862823645864793906459056827579390370396143745012903053160514108407766959361906433754690833319190710925606710915555837350301326893950135004909589273302235554746731906625404110004359997804831080975965397185565591065894293455233109249538171265621067519184858968317628607345679914637919304454257966703391743551853689943977006460047315833157840262164928950963592872250860547495965253625896674925314684183251627824303386331199534970641380223590701059876978166123202787717415882337012789744631872007557814458966448321026228191003695184621187834246343490036386991335739379880727547101698832534893575686052627018926900413684644490232404329228020063414660078731546719760506899079349740709696554508942319168921782758673521081736988559594980301571281226896963973022337431090295020714262673841797067402086981824625923534965170429010611852239211304190807062081996199849610309831171193949028859350373098852786313522600347724712593844193319457736921474399008560232080772487952773378302189433083312443960332803790655769593944379686326451840042516165518915219179813023709125842958136740729456538418989187615418511123284725897583406560131966237131599576324424290803352482355871160792666608544211840628626242719595358277978200613721262568838958061697706297283045225576132378263312114712477598938888933823815813718034219656058254327220232592637852512920747659362963696573947357048296407839024633242551483872485322365700727449289029620368263221330261740102989187207652265674008357563000677878133148806351763409855804972227675123043071030657599338213954905393217956547982179848103317727766329025664880329878540338785730537733603942869891630039098768219183637174486771069589490011205739780758912222938086218565795509525324633164452737869862869010162773506443286649437250265459326461762859197533638195567310747433563042811544327709538513020503684963493874450508386350779531443410796856220210441351507924778914337507129778177969961962735457748431479880605481094818901263462774002716942781413570252424202816108964011736154589028086178186170398175859083820350536535260412796110346520118253397394600629685758109202821767355382377951973297125817952680206964169791756351378046941939698094316314545788166572754633816901138274151302058644038938763293390025712498779436379158680176115912091842312962323146189219692376348585107672800836666144500752466397114751616274805653912315353991985872614134425014244523534690425281127382966463749619496966660326198514863415460958808358208294146579455653215080913775328382200479219715975673609804783705082475290288937841351353532802759728316676865935192015190155970111432341562210432738906096659408771842320387459102890684981139368135314561864153022536186597700681422366299610722062357114340415540211755146117829205758640227965533232486186704370654015181442911936463233460340428381783955224531569592969078932631492081680920653486265616612217914886796963808541486144173538960446171529051416491944710547048000789546932369276018000488171080348850099040632975471763756668566930858076181258546733387664287109263060958177854214983667599953076397074281798746715198259094001698322038586181432120846865273281875368492641515454172426254398082181341638890382631431871930209878880706798003477479087772869738326778195130520214157379169483467692076957505691750566097316740397529291106258960088252264162928181491439219159808176371671336607595243223945706879272866053681805664909679273348517135069503285634738430154174087580322581814489906047880149161896691067483547872162039392045986175767246460670437043841633143197885418270884935668002625542053940696239086299544368799234481000963142016733248180355187961518518150096742447075760770388669671255178615693349690018294248898969094005573210875842383056636676534162065811508937935093498080796770201348744826230401777778413201322978241473053538826615550712310352973847970512823322617200542282635994637097135418487099367607515936328698217465544682247990401604467708680358844247544027417548951312388485815365151875646552845857242448265900717123137816213479927379738386220576953264562278570528942857150930952714600245564066120380674463818699539851942170082677761354517352474603896132664172923886142977533251439860562516335928355894386448426440072389474977897589685966998623780901496346728252696429100200257020999933145653093407364179352438760728500055743946179899746406597185504800194893781299924140135542123243456192224355830593115415904400875392724508632870112043601582274241052933609745998480608960060550675067505129220873400564407469949924382030682582108266689898345207909113121382078625126908729638704702802068009250427709286614919911951620447605326983808818049129547999270944433821418526099353501734445409050315234456610226641370946741114352038875452778295710605156921170816304263343388854588830429242934595318495881914648625373750797973803197701807497493148413910693067490488667302314324025793389693615824393377300243336483221918352189000589192370104314721525835765302890451667518703582810818813604916821146296032662777431710405030055738863816570344679432525697058863512872084254097534254833295300039452999394602640060830955056201180632998088837104891534688339515288109556553674236712383632618982170353365494936605160893493032138989549483071852860657536039343458592015323250824119454964639898094047198310072621795835208686169502461932577811832637777783101474521988633785935821666949685539389016231382494247501338416723730631726656626443452447880715421881853883633845583850649395292994684320370812831574663141092769681289646723056137909696670207959683163724595963284038887324998972553580254843089382721800652049740421518294040979429285024175063321596573939279436660323162933574216323929871499493558320553928254562554664573611815611465884118549745359373595751440089327356889939911187776260072132949485394751495479588346322404355896061591765751218352203647975320417219779255805012329119329497610471673798087990342086266876655848031662011126262796049137511392126212185585749057940001241661114027582744545737066985353732678847216102726896780406139732352997780672223544364976487329043158574850467721501760846024510111446931882084420906320904302238895946976727857383996109321350565019926911582635168873102603095743993321146364617478958853454850422337330272693234055935516357589941911482054594670756754175467489071645784071827775565718897084967795281255543454020538141115713239610739098593655327660604292330869887556509458869685428049128487864187428006855764174946518904576072295400223535847368569639958793860277054253064959437151689442281345377792179509213814095172428481461151053886141734180989561058274785331802669762724397991307166047735266207363990350750560595140884799787942499394792762833336011042854386243048787880638402555653277127905372841698798933954103029915047941541124119878904745019339865938453068743896360541533051998738239056352728044332973679568724041401296295220622511120123089429435359001489511677881476467660400071107491983897188452314408397629587738859049802044721727456008522848181385514492845716665466838802462962695357495104136904281530150394285631455788063414904756898765129043778676250471390259199633770661783073873943758798586995034968991354946613339381414296986684499109018155914585155393922993752761104713728106372140480891784447896506160500242804967532089136841883696620309228657259858012548344089700170912444767924673470806617727740946506800074311996595309940134731857356926463648294266026941504095087487598223347254869651129421388537604351016903841416927522538329379619730678501809269232936734490714693273150948138860766808836039532973617118405791881263870465642058410935197844298391720573447590978873293398631979264078405768901852891495018948166367506215684877658787985438958855369921721061072929025177858103098486011955475773805224928301738643877953524509976742044043150487122304362022482250994681608096459426864941705547632582807978241118231148092077523728686344191372181122688107116917226371279496253873873941789378581161501759558362750748602743978950975258875297704825040417175664316473603839096074908457812012627211177247599326709394449314153354999976584861094524909584903030173890465751994401177954543681743716378994358241279894111515538772556357156601545934277556092899959367819261999582347454280733056522348372754991106028409022492758956745194742812911427178850810674004417819811597154674492857728135360742533863885671053369754013492645472412907217685888882116350392297308771396249429060087103662381807275627112260023419509937203448592436301925404974605945279309853535213040018181306696981589017031152275731327916860167603567591052410732772535941815578220145851534600141615746129022749445797317693556621771708315400384951240430583956559353598982128873798068718998386618338539364516849667753697168726528704109343362465999992807476136039642782455137279372148382646327382543809399385854742078411429917070417825446819340840558085211523688533659196393426131327563153767732284874371499503195263930523991391059792378212075374816086866663499109017453089024603273637356805397011826773965713962175224045723395858763962656226149364550076469654602959800429999792094818363382231050403392387141252525975988424883903213967059513450660405932106668431037151574868188877478677777086309745359205072791002007630295235131326176297413130680634379733759190029652897605288931669692430489849165878895424189497678561388665485802155700211689487948407784668599069879196244535588329975075184511975276080133456968285909009022701328240152446803537383137915710842443745800642556906470589128155321125608061650766175132014546582230456237964102587391671830353009996972299050690678414946549020528784143191564280499368105715002276540156263371624451509804348820165903725211409377269586910780650585061898467247802415557504867537648017309537719786399172382651745437428598830399037128645247140586654247519775869934938736068922636432374452582628797912211770172633260978857692853901126718348336360213946363747980643951763445529508692031152568404109182805107717250056045532535821054776250054098222121585867998632939580454722942236592244763756890816780948586031494270011604680905538236430201806227990077075197626785723100441706927354486239706539555542941921184364308868742157664892297750977490448926872095319915586684358862956757766902939029382511441416316355413598957407922668562220943547325622581958851054675761746713029503236958989907195708324649014167857417556990672601159328687620381496037119160660611156359515762115272307438792312604465885185829946558729465287861766294735612894648603088522089150407884975700326852210103938858906741630513116182337085784683432087285804300005693085682025362668774701727396825393752815060449693576406346488850454088713374674180113752366996410256511123788567364919632061816844645183376186382889557918966123554147327980225140800123799740369021292387862364579547485426006792986411767532022409662447292269824280689721047854589788659661089102078449499860440789556120550466199454786698653881310919621697871682862277462872902300556802095663948823108726406733807504048112893577937456638172914275114160664741673267885609399711320841635967425042770161996560109976708090481858806759897004377308831640372991613911933787068848226375401826549486111540073378516297048472139403702058655654246911770786806632906541146313161940172010613539877211948026102131966882741074901965743614688173857329165548202108934239275308106132456755321875518760703032348156768795465236527118176414660839824781945809677180196332475054726273912233359582049846471642952078811947192811377646856579983288343159969978626188207480465155435160677756209642646928912106817675294949730827778989262756991987240502381781380078344799482480229727624065713654913489090961699817861637445721513238064829442420073121265506446661162727519885286050786462636292969668106800270126253463740197063162769221517610629931983828555703120930740641642149059308786154213701101401359292921768528895854672196425236039448946799265366362260993538199794940341776101140442791575897490066855210643937356554030989412286874798287898571413667556148682956407688583733727302819807491228823554406651263001084900877952555539886228841933211577817417549447483436250251158502465508011003139167515566962356755995039289324157168184420020951356046897179807011058101357007076710238644260597199601308401038096155161108430294623022734110453618111572840268934015655391651649719461901063972937868008309786858118565745647233522255143230710886134033401390555631992807923514368111904216054809876955128584326909228760157953548620532989883331961578344068111250439630239510295977870809005077960205949772101218452602146470199495965502367958706502105999246885220559164130180734502671159192891556088752256826656067490452968115898160400068211069259227508786642106569484389738426102815250024799012863317081428778172729510813199714449712758613371494922886184671970794318039291749571761631158442803691274426804751264406101666361256754808720034694042516314019815030378801855183063260178046237312376277535649844016894939907161742243065732484528963168439978777431676643346503826111333616182819634355807128086317667912561700629750594845348148954800074572166456260754148548091044753459831091728770287746788079903921215174596313064580793603642924324179003072850732801628845973589440009795201406656898239781259693656151517077583710872940932886665249795311993697608735883111987835499266870210325660151537152697803877476933645290327929510425350187965910161548819481219047708237607299446691478289051266473198506120921516573842569350053697987460633332253017034458085717583697563429668700236992834740879801545104792206374200872097003843221210178234200562978554611116065630466104873258541962243639208478777026490905455832677274766586997496730804433733450663613190002956154964938358668530959950958265167117807836788035113350257395447111731428451057284024217377878060991319881526148265249513645057643210519983180928037064892875822649834312134664771095646256094757838201004744938734689591805919320400615656068864671358768551058647385140774657943212176497955361826842715153089106747975123235666557111717118930896160002332100917536572892893404962456040630949361301106390835590908579396824002031542500491291551291264469749513183083149295430837639642610540390900714627279555732304686387007565292818149650495660071581485797693480928142051924384065675864366215664301168491026379788407674319681247514262118396907291711713207026696627876617750739972520672523935470559674066959111379499404828778766768397006020965501488536599072412024034600955259870024519239068831103566788826631836009638425719942368700893829326865379460346011195202811357926520719963260406448389362411153466730615293869117660076499396324282000336873822245822658992221737452485248736947624007194181782158474498357889559666437937846184509425705645161181418569603935693217712483854277528432803827100549903183218912146702190871263062335140131287625412947625548619760488288005203524301783027306717340515398183716571857808401544382036834871125804494730081562479680358867904882268673820395470387004077120420124606121221363983306582821597161888655197046178673891099219733971918979529623779116229693266164207098740341284987513860214449504739592540116437857822322951325110558031185931934532816307604791204082128849319373953699459574523400401177892429267933264044015125919748526465447067934216678169789251629620534161668532614680987246774720469368791742659206608871109940825928463449609855620780449207378569007314064392314483059617317493769483543085175729553256313959037517905450547229547497917328403405275044703618705330053105501201911907751827377435668878932145940042454701880980246962048653098113880937539889120473560838739489222546060714300870471748714920815929417338060312098322422257130433513496639511960463609441706635433967640058085382253122466301626975620482575136075277781019959375415195548433101729227018191946905285433957053674664990020115488968996369147362949733930942311239302279542843522573242198798434568093792810952767393081489546310196267534950215159714413374163870247746480833232803676431037136373132265215768999997808448282573866781111918586171526172841717557433932717761713973086112867153901324621576078191925924447683461429724285287585711264726295434582765428055707713956843283033510614531523548539206748025708980519005815555080406595373826544672742856316215696287674857653956465927178738778558761811307205518261452198055737297067710364080091667311402264385895468277350984898191818802143960627207627306827456925745463903996565929374892331188192987504425910217305053716165680093844725427810261144528349099751023165015269266858755893690956485835266095590426666787339618746396898306027496239080034777294716634090143895697434462991301811667519451633832635497062840658223625425447040778966360964017036712759406964220185862500114948521767996338095497978151398064818384723721644778137509090770801709897983844056841950105235645583949545377934706535364981429711465638959692024707232362413918825528210455662598023052474057907492545362130493597525117666355527719587037681436452221623344204989730422496753727769337413783541961956231698094393461252318351353341979908832727325709906008324827157453961178719965433411460775884446660977015291857194348527471664385568620611252209595065923508499411950623665349669364879622719824650134914221799917835820256811264160649698058627638892826858636670077627021510169879356837683000930475677937753460682168519132164120475870674171038433723383027834738917673502183373735992875082358710179042503364664419178107314621562798302474274838360270410304497866745009752188711352467110753566489248486984672365486877723997432555365609133129439227382704885915499985555212565529045166511432560445834411163253610362760512852482516431045197348772708464909851345394436038053499156166662882431578266298842774042922117047420855496282777449052727423712871830329886680144350624208451452090015449644045367417978270155848454538364078774060634878149652179858457924953872875713502173751351039627228897009577035927619581848978311115402747154808044082955791327804923814536482012506401016325214184073543705637204731304764203486470060005051288138954399840733169968003740105614012922362240653005888060815192985097280168900473779458854384493004261445008441028869107109317807058541881672059276780055318713987748578460095824804825927684788021549918086688911879936582270392033266954877054355262750404970165477232102675251271153606916141281290578524709770986535304352076588197592773683874498822577946468095320313543207960466313066388878438332647944824445893212481616843621264997579205004984619907576581227002866283684326339987384381296959588515568793702843156569153135073420479443646330329441942813337210080829467486152606303112768267036046990271058341863071292540783476632760119519007921721739433835004514448516993669928905693485006592574438760470157891562308235661681729326241398396113638561349707157503241260490384534201200704764142170954740912002773145664277265075706590938254926682674960729682786029180487316789563077512537555085973645595534156975430683761672933060613146180359457900697772923980550674872043230743718708392979949372232866529105378794412005092414830872751728380008192830753878522089552994759343807066317322312441082067189271559366687135216076896146894282493836484457872837798772096070649831287405808026581216270777186662952506371154618173318092002104411819558058846608161412946491550893429136714017041073509490700608118994631783055200252157001401563928969215774841256989991886326036769957939158309712030805097110851351214962890219142037063525545120714955888616297998191438686562774216637920683548786177329764159007181983125769228519822875477874237812629295884575972121827059355163264953011130346810690371872764379103735342920846110822431858434923396601059163960965128179755381072708632146278472411349458870722109074776549125597317921917557267123200265244106749387754659489345242459491867519079775002059123932613698254032586173792727812541908310861470239471945972833291268568945594921721693933821776263709344789449246410356330758058006351415066593838247022541406251266469609900610315704247312619999574532983896320487254122747415744502140395045359028779827173616886648218081470819242166912027112352390097187751559988958942099924442118816732862652868524341486492111701050291537566008853095941460929432226696120301511518483021082492110354784320225024752904606630144551568655117091952978182688572911088434262355063464969209371491558571523076181827070053753953647861331439345776099011504872800219821195352815244978390921440939794053532161543255208588332566949730222814360534085696881449115921836131572077213559198288994719299411877041512309567034705537354989775241554874206032775767222261597301435567513328403961443187894457571287120555465857874227212942509148219465733037797846554499159947826034265925139323390998910100724627813597418257106961427812199727935648346219799822078869950800195319772837171397802658313534060429923328974477605795777019483289873164077823274416395455119683546357599330373278705132575923563216116568105377369622747407763018804637137227050110166596181402702211020094491785443839317180020398642785655087602923290742192634364346222768677493209119937757214901703165808850541005343698364205022723817672628014438495065594962582854073189633353011808393272232699544303314677665086581690779497244088028159930253422087219604639352880095703182646203366915190372266748459955234443880464083771627603429327321157274207945430617225072995449593296866080719819203023121800308337061856557180126288940970869876256971206926321854794057325320838821449522370417877721948686829624555160263351836488090917881178384813035525500254911397514546070221930210159038441144520633005180494166336209980579099607021271444236534843714991961543006872357478896761254308979254962773160260078782378375185242724383782441092897971657701613960614516959928829102139785863130675083384121794415532455070375058708641076422215754529583136824080424196742877372663273321839880083012651080336901683224084243999206163677319648041940145165924473538708998943002032344827716937291172752071499920138144687314579865006129390497654141887783971041073817958769212553331076841885786884084403212323168983495781606565646525795792784942640610541480455720904679826516662505316865440218500584303306235422396648311720934850340084072790101369455954378606730655682985392571760644810553617727870279442504867165222024837875459734402608338334329276692823527805407257689969463775084737555915948881024777686924342308267747888534642797801213241834012270334068440582436296613586926057876696911369987754476037349159943557705082852873437146372003477310573127110447813731445407277468989881093444367443560234681468514137444621219880678513606968109720414852542204403838026808981730952457054861305696571397647228176867435659257418875075162446394051973817596314203708815895249724079408891609110006121266939996444164605916270738662430343674249461436557903633773148366559776055772964778952206347232037454504915235491002006583649347965587193706186898328757840670646050951103923979851743553452122247849352860973189180154596412940811582821584923740387745173265156376995298674900659738207722776371625025659275877638284386756073555680396340275232624683503069984942560453106444750058326895030766677689623230362030278947888078602882268396026410515675453880688937321778652022138151244418597867337353266453366927113294045367897819064219653291528106615260036111718283991634118464461341778129184588624664342804480928246141601935036416684542781774990797195096493499855735960821440800843092293747611947192885811186082713899172552209565982573611623912568770429630010870731423647265790624502727067816270865386504310639633149514706631676306329515433057593157689470559181167542502054222279361587024004031609867688235885280939817905771499332658525226147388228075701205648194908555563352663407515309074491369469013433261656673904435154503424066052342998329119368631577749667760518634711484924964105631874137312447968590047897211330707748699766350528143256932647440444568214255777823308386189089482723009618652019317682651780819866562486340871874506986106011056689270386170803686834438166366901683473059950097008948008532738589644140816533165090460963246416289877716726412634968914924255587863903205713315100213445197913057327290391685327166838234292445709246207352804955159802613634893768361146133948661634274381289722655779297409609506925324478191610402314427232644883026279749884513982055631534669041648904832906823434930002668991766517566560318154130865589999544166397663297656790012517505453984207394054976680993102156771107408656601365709202884851255657240719983269952434629354693566994176394527339632423964216629769293949565082514667641440025837577225962157991789026023248197609675583991808317260571246679433563907439962274305743881646812716432791368697541847610634816582518235002311084080745983505991824161818159093943374853699077001084639675162513805538267559357213530259525171275555453363943253552815367945875374558377424847584327508163283366004443459579215354453045543228835498362023073106036530795825908651391354235604439967648453388801979464576797299691248624620618732244913133978258197435313477089784332221020587167618471727782339132964615852189509934314502024550032149010572479017858174444130714803464610406223226351042866257821918909997336983953368514370188923605223424344272775773784084902064593076705654496260793403782100762918998923467769187730326373031610749876787895724276586992801053274560100827901708771432340449295781338618119651627825226343380207756287252079049844433008292897245620218418737687656387239875882940498686408163228213190846107728876353821167541191123609524796702338139868068956833613178397641731820500246451539541810992987840502467424830391616640807626806996542735198012044458638935279994401033631935317139507438152029302951257447496909125185044341774713075923948528906752051588977596531861821144871495747170879939301289161449093910016255822929555087897740318427374917244702295427431035948180177855201328591829150082151413124511904055784862773452226259601929355737177328466483501381471892887918436265086383161327461554602585569368418713012464785729342681307473318175101565359844720042097569340147271531916581423348016609607683151955912439068306433387229513782445867613993782371751936365157957698541751142923830046031206286052746782606492280327332584095305122166313006662147485583440675874984294422158329450756141251961133170856422335111424696165157713523000144289159869599109184497422560273056753578285173628836657451197379429145933604453965236023363305931666756042151762239903649085184662892014219261555391983493624513497553029235128486954806238637483135984755146720248468799732040363415763164712747833275874837017906391723717342969754296838442126755742645519571517608589670175056276834350795506079917563524392773493880521847865469021951236039202610722599859427103835512529802359726293404692762158559208078218956080882000363541935785356256651703677151226699936454881685622979868234130745725734151146688413681518030614443978857686035109854733443734424051488786275721228549300161282136792262851153663283496959801030095104496992676769724250402101114557260402973398742530550469769481673667142315302166161080108927639456020776875912684647304727554147315652446283647193572536601654480532402450060218512680644695611872761390409813121413451575416182591167533182696365579751811599302917167487680381907037900884592813086423060173863934097736274183912693010183554979808482387918928536484448177485218224190452680796942151278983180855209964112035301068362487248768475767199703921335150662516933828860114895378024965116553732295222202881412108295474702441387533407896600103907480809612917767114408239021081803393200662445166347089350333793294562496144969473041519267961661812169465846640599951987093768353222102326913713608550132346859999085654477121204919405951584315555132321671357716244063011711442906359138514820365359746768284084483322906264911239155661869450434340497703272222580395769706527911530580749560807049782051657580897835038389562333321923773532740696687538252131680563392568745670458143945434173624844621465483104431290924367881904089905156641789775987799483369032271353764448598876643506489938742652418924513460633002281431595169119764591896434037976991206962931981052791564501591463025792779933295172250705679134628650673405472080743662528181534309371016124456051968542279537389103175827668077653909638426110269763316574794789526298420217875311688998678691021056208407330429026229293558858033652566151506886060017958613106392223709889048074350522004842276549986847108137330708946151799133877571627913107664010229262963218236744107333537565476298107236731040344710096101692022478408125375340502920232182029680578459308519376067500089199018642833336682643281542334141856633312210291368579161427297828018827201277404602761946819454738475215623988397307710028373235848590153707316042133056434149057608109778838601213976029397421377132991250762734671210506202337728227935137247323801835661199511833516065923720439088734793741528469745680348961503275200082806622768974627129767978366952184897193912333764152603077667143825494087618750274737171203532842287118467127731407653645574580323666896691377379541926512981633926530371697785499963210557362803335025636083465654434539905555921406115021690828488687963232681039740138409393366946878540991735109890757328186360069564747172337079245762865794322398972880896147110514256046932331934969692793257849842395714269995480990166649144132078877955629652089056542419395774387416895641462107814233094341434625726176397057181091064521992876776891613708805427230171769774209885897667146109525837267384967737804926961630284742290447856571488022890205328258459499282850214871630730700773536214456685090263142163023836431228974294458095471587318630454050677720075428483025261256384690376001461681725272741950755623985240743339456367160561454435439769086002201700403565606986756363798761200090604877977118039047454345128060136189418685978534569862959965086052996507542319123874691795293905377253044640294532565297710805944004239809268700288407255959332409942789471141332451170182512916539193597728066455916359272408098814711271977338732269794138798843100945827131739699657834739664730748019360249031760947476834825481202072291128552257194052221562039877929025379667627756756850050886167007922928824921185103970246784994268604304561270864825533180573989601447842266319133840052217478102928094980988294136053595117677177019759020986468513117758636930633017827633886504091748176640988220498623169555734978960872389109958916285660027446618385111799617984818360816620542844418342991023203512814212058635921507417227421909367883712334379289466310292807389442602128051760851054238560930702342017932154814520721134884468138050040397271285606447554650717214479944524441133497563203900070233652045208738948476346971726075951947851531303889896073628619766555716028174829945684028993101359330799257854543490340314172557327381173015283381352549033208016946252946289204324571096983043768167235834613836054311102679362869270839277727744096663254081059308043873658885906054564958250506279026389768144901544604217381213035601595061484099070622926153198909303789619040275301037313269044447250494099851648421215371884116197446309227407835783255051008971261100784808646674524254554237174797019795870672107770186057544791195984894531326629523655698290768135269106752706081789046330850493983321024818797115424948659725965284230009812521064935213308003776175697443129750498217122954525386064753511521421781274584458341905725024932902393186138069460128583287662382891484759049527175851806634873983361523659797042501079777575561312211229666483595959928629470981405631197113144147183489109450710757413215509969855377470857699329815878735409145709869138568141943453236599055373981098564694264926243692486364584457173792723089149781433312975094484796652706351563313903159697513867343295349509622678698648030350866404126267970505814815609268492215029584956318452857195449441549858309966349601061252540282862913651892381607271832779194923344294884681106807892454674884383084032863325476797433237649009675249249989156651095156899362715004949718082204454865566540406619524246240219317904492844351798656520344485390784385400816652706246967135620022889622917833314265470938387104610560184609443109791585697291442671290755313277951311434964460544433104987764363173450894823379796498299981858220779592410107644056871657687855015870685893565647209895806056696546965448637240865697002675163354008807512105946266090607145524744262266531789043161039856317037842124145260883071720031939159767769166925863371742676027201426230937096895656244082366117936276561751207609314000927700309902795583438798303738215560297197984485174943014187419091977339287895549553811524232939406924631459008101600862111006050169442367592970789882590120188084654384921894444626248904139933593339611880700636575609949714057839504997707587642434997410096761062200640014541025078678647455795245130753286417446434293227067066179802240453706209612657768179123672205835915504318762963616221835379558927210781630641028946436738311500942987836929454839874505047081096252912428234799779500836506393031010564592614936672139395611410587531107295298620987403236716629454200869261137794907211365037327365420558274119095196748961256582567417840363588352888969307546067206755225302363181132838763102172195126144001427479926283305027802800424520148437043291601021922151968838098942744259072510269555411065400165498506773407915909426671890125052518258303427003812305693104292479162957902643240541719081828810059333927888718504388962841102730577912770282457371020016728109735544878234562437238870260713164084932004491824113053899091228857795521862944410241313377494192832076357164296993251082258400771061036218068051023602704167779806195001688725612972261413232517734874136094667625528374988557963109696367096666056965249941175429987914096687635092797828379705785985786590449088936376544103919202152712185943631771050276639860654675323038125954178129512393738424532248222502199634479871741541889782653030881634697403942808851899874269440091115282912926074131785504634175630086772112072129815827290414981286487473562589735385765326612940132201077337988288182296249235652626068222036278607766367034246123070522380340373953589572054341220105359115148639039590972154154158195859555144354783120989460368573311917136434685584163220295369896495920983625939253210800410913882691559522387286620421952287922440436230302089978609608590880722301133462621039489052652110716992318940032527325878778911783003904912720036638842676956000855560114822648808146014836343973098840295863369120585838239866364276670254193519867089763971547215347572322467231210691755279682977566468627300835000230554930003799533043912630126759294851548187115912634963716921498684282402785651638144613561535690656126736508077031237251165371116779714450084661539819582200886506938538785162484063331580892473596310883976974265249222570563091431377969867928316401030158677037986897048503530002588564270312033837302757996661064126995110118469630128602813781517452601187617296600628097077630473173785388441790909044611700403230337277403873331287907142369182646691349028339527292214634452863133528939648105455336045760952926018725481041122292774571372892217249027205063775881981430688442071807573453346871596735696061339084448846596721014869061856640742052844815821304924534312271213748794333261938683289129285942630639520232995773064502709131311105233260624696689204879068499536279719410102268439510169435987594847285844166822052114534068882151256570422453651206406257813627531518536530639442262437749523534026803746703450478370087709657085025086575010156260912563782085105185601018808699918724642433349158879902934122832985433551707716966928739545427279021628531420788280686757356159108260127167722034428117730145499771218364522124534871989101739249863728949005973884585806832194437215045824580546071844326807365000549173239341027713648965130592409259658262401151463798531093883705821140191979475286306895559549432453618690816828927551657401471630160854120234553889432494966757722015797680901261166194211636578924254752000764329577285984916954580997387808589497044200343312033997701040956328651593482416542421743736154111061849570025938513725879181305906068520161131563233558695459383992713263636924978439896969229173080891550614389705308350813738689575694849128991248605424153268292047637787387398759530403739150329239443148806523118208509810609821688857210970257113062992537055151392342314118792344177685390832899094239251139142756206653790108975976391983169113233600952072592967875110160995215531824098025679292522357442118844046941483311015685546116760030189871922614056448633178553439308866820033116210488278892565840732951988055794567231544727628435144694117953301774222008138954847176323765336116176583061025348446309727368232983053899120994784017738456974314613741920243233556332102304845819237166147740994733606841405381978989022426403333579993228316261688321043173730465586475606024381337655288301721542395592799246341331779550307780288000761997259990001408433710656265066346077871215015595154012337944394329095954150368817439936129091341873272370268051999079577613711541255947168426095989740299172659052628430679566389921277398364446646142791384466850290802557899635567920795801753134166753039258931992317401020886920086177290949359721290897153912281451933056443339299237421336025584153824563684914221759630641127645586192709620283731460011790814293504270745209227423875333889753462550085981446682290372379728870307462765886498108854553556541152235018743573989381292311221612550379980514771486971816607229022320423006998485351864951141960664819857326602105952072364743466332201624964869517075359487117144802835857024448865197072831695203058742259378523706191974579984566068193405879711595086316259895403686442486944254402195422997970929817977239825140283480774233884426450220608539523986774487495415167269753839270058673643784840623971113197757408027388667545395908872303769075268869472643407011052230940117599572808103422642193190206761408638562945015924441211437237862141476585121991025540118073837671910131466400356077763590604061939231980913251924378686740953989712306033060027264758387660128475269401851805174352633010029422048474950961999187521616501239996125176356569327540664649931908217810970107461608713147147705816363736607577921405728078280437458133975512678615164795491538710957811753772363474614154127111262102482798317737180584382452737936412284246685052946099849641693108457581582510208383543117237181770286851285391614088534727831752265037780388704091393610239480700137931923199740691048064955485620881897444443429438973686168997155234413971392241735525679001731999868181058202304099161811622128655137637489238310856138956668784713226863549002438806455739350381886770364627923280188254792679371500535730535292142723942181873071642747547876218716220174152908484986044010907235818503919510792293290468299993082710379616006427748200207606270591340700694012748714227497004036337664063888307138440394422512985895835775873415998355859772668117484790665032687911494164818547461444781102526106244670420643501537957562941720878869374189530477658807223157980923122483869760272617939722615995805818013923983215020899956578878326206547143117803300251750603026264578808346043346381008778109241608345951146708511671269571381270392856014321674434685786947700239558985750524743202042761468458439651066520270370883169592130177914981288304048274695374252054159970015425131985867250188226023074907878114176069799389152088757380550499560426040776177737325174404813636361138615412308691308074660933336600839450834518301515518000876420176954679036729588541327181556293224629723277264675410503401500654706695182827009222436643826144425868127689615092868062560835169634227376617339974437702428890026993148867478402056705825105575273785612260121791919423787872559752587678880219476103917690801669216538556052258215766352982766176945121060878564057173585771356730447719761925807003441390032088481479756895557530026496565508303867052022211141047953729860057945910901282042387036470051734143148774993321260331438481432817724689926919370440911446174479215803123865489117823155009733960172439064416057540527546236491425188105634078121909458494860434935834357462319606621465593157435834334950223298223242934817795521136453488589202166065376689077336371955921468381454554913436996897081454610050466286673574793128482399630517711195806435435838935494490726909768934283570409802711714482705494424194188086101462366670422825839437749455391455432911209925148005743086882746612703049986789599789880013478132709352365039208487937436981708024173124207017220090563954160894602677779073680802736228629421718817275746987058080319909951946235204790663055321397459721462972549136441393655916368678913263460450529106237650155896008114271575535513868284148163425055288376860691263770726763618118686265347388525701678084301551577864609078773865417764990474047651010799139151052429456015971243920439950001737265680642267509312655726456969169487466206866503694254614088062729932276623905685404299583151662222831768525114876373547618169524405681798470812696449899328124282396187470865782850932960441667978659021394724393620911969175218255977869543162315479006453638655472278959945985370190483402254003764606713356596973229483180643625954841001138679361179980318113272776322024078496173531254482353658886340319137101016473165468474122157185951086002125487081658968142543835525167666952984475307676026887674490261021695915688020875365936301999512644164771851500522236421942346768673885124631947856079969709115721978060971820934607746092973674637565043763901317822324578302475411239180141963439550375330513251892769245598720691342944420522395293311392683460023951342964193396316067434743227710330098698221761828860139728778289652597416134216671488470868258858093567974008054142611865151068104399257865367868785899836063900999949705964892563377187748701178657833711871278610324044037259545232351280470441249337241324934522377517026892823869589771417735820999358529846699138279101171354413424100624069001283868320189854140694550155294461893920937727991653269090140267013201881772277421433216773300675596055194856964556865257765952247070178956950149795537883798487013821011372209189315424359252208590937938967118752580432488450004020333224916738995895713989150287168755719325401132927650591720549917655129397028906745676655852060147802145235473847693853896018498763921601441617721333383272879279757983290859066756239009211591051167846354663576171621087325829782271740547110345693063707236480514548787631495866254518128069538350751746309965224191706845731368029811250628237652732763350602189763962615108327691045976908078634600767958277686105850957380775915766957675042023577674236069216432003335608340401060473755105075323655786003245203155332383759914552990292983867301019647961776439235190670515614860721327059027719617210965370529484917533175281649672206814484657397683617364919875779269442257696373757303184294937443523735845073658100636042117520037397997940424023825903071577630657359677806074535488494415772795479073885956071240280168611916190816821571708596068335906516390508219316108318268374536227069264729003681826509926833693419590362084900741912327377208610773424959103815821723470209879629823130153827884820146380681228164458959773998144487043645890358231173858892106669350800614471543359416242542903159664166518844939797052755729049425471285113890271530875219345063519503224039119158640016447515129494286664576415359097500354067475109646151327409373527138845959993183832933850929612210057501051667398400448674567713586257321841431047629344063388991681073135827542263976278945013496105105495099046845411858460103766992044737234619923726274823657121170743592196178874394881558890759013491092704279191110396411065674404421423687372258516407216234346979851031520621194051375371053860327137099720846650016166576911993967257619272493120030005534762307061842351224653929834934262431989524102615829302076850346315033236512456166534419864162453556668109168882489207898501463356631986786571668119948314033445707141840890088765754360877772345520754109143609610289571580503441240961301285262044176617185506124458621017158239469232546150395869910415087637467826097022992888687418862968787290864498952509931269988098706410034523957015149875801000525854522182953707406765834589878822873131623516469850904565280677356363704018525601395873048061106531343758548480943575742014691696804624955089865611038982993508058933569557073420839198442003103249749397725087390916784262614690198713253439199342633826962792916839801869520876894366016629035843320941849065726653414999333093183040994750734734014287512203257571423132651072899412728779532624388499213676619176408180043083509678835322961488525649574971053862724120598976718770362864213950562334294844834338314387651891560664174077584776470126178458513982566001855727603293808438521025885896777746469901590173961855848436795295456141723682940792291186145458500315898392423667478630956276682900185559203109492282505055187996614713339482300329465538044591521153084809698568669992725350344728489474222899067383163500388141539413019000119896247941821083068927143033403356340245214601858061005389509890532240496212871618965871845283655227165123552896669066957266716396160020279360244449525827531714300531262312553610580729892036821221431061294720363655005786715263542431713932982023447870743810369126238404251228766988150784988676662177394000814335176285394100510024158767583001900363118985819976825976460128663707792892343207325295134401839551126505488011267186048583925605640353791535339713323525017616970835766651478252452618495630201731841729051113610312413464062255526028605711560335210342911013133150180581784091154421873702846438068235277790643644477429224531866282102358037461539593673932963774619609149818954385338485869893359216585529994298241206525654171371923246928896698427245550735848412510390582071361646048072236953949786437488059078327274597306418427048342194945767886377293644722927843458720262883665679952428955662865926591248765764047147394267334321265088180251683109671500767864066602484351913677025637200690501936429221066194175463825659267330507076841808059726114013928116299583318953698563093448606608348593799120434713202086872065489777090260138092054729326053744392641022485841682233855358316737135203097624693774265741747438506655121635641415852855178287436315073119575112870260924175048200127430433445823767034492173019435417687462806727267314050073044126385125006696779800899916450852304125186597253502571723127079525205661852671536865250246088940535811665331570449022581465008696398441277248646838140969276099756243492040706932756755285645238529709514149553153860704789731124849533694244281882559284464490431922958313311125257900827084522247263169823599351768358835567518771588872333955946474867652377541994014710722792141528197496701457924299034142438094106402290073995506067828827743837079309474112460556150971004646941887051123779784033024578428625832402483872425014177014212827435451139152861009640109834035900701244852091074441026437439896399288627007738337894866270025234185912449676470244966715195519992582677381940846430618445639915306310743956647274465669955298280028455674763461438996530043763637105737262405333501121100478972035532519669925111583998565098001639539131346793038499043303874948367888775759353517367321061609765875116745409392317282349636763010260785675746583797346422601617084979343430632526632428626841071043221582418199340199204754271639668513901017596228288593081027436774137952054488862853861275365126529542328264057293382829280589681621380190027681736751326565182521518252962754604752175263810085750557923257769782089238312164234318756799463932075811064945360375422650777427330364035436519749679028008695841650663168290467439990913556186779794845621949499863493006777519139690122128097486304436338568341207456874703083096423650781046800603409959991875089717023833422875106632141627733627295045735597336976966650442349622302516591944106374508879093873067445249784319213338885670303557856425298313781801571561052010283266696780392212612305564633084945020108077873668848720578146623740560188863901132240163241464599452080659336735446215186536914738410348957079499003932622830485850800576357206485179271942276056781920033319522295456176995435603019085237925129086107121183437162668701195496263884969055020007052960747883527682041457050993987276703691502972631702975000691144063122253668997298100405675044217494221355261886833646674225821372699804098624734976552169785878178173610473369559312457235627455562241919497945506200174761990891265994464065872582998442665278873627503231818573994855206077909749062549376048894484287173015404374038437203193841587223279100709298179345041271796978044772186159902414591194210487710823468330823454884101997140404564372366089209643927357381997572236263545580366376666654795365587115921873632723214882874170901363463630299649273891856778598302633183379885983605518880892936905724111684712567651107776211358814438441585628850479041407191047936674883450529911442053977408309480663256247941219458942842367564300061055415843767078979363197177393641497148757158258932818297208321760761250682148330240815552690550337773158644178794176520777542614396250064638003686530642927596326249355703647553695650034712487536178841242643804603874753023026749690972999452123778437883829028978899639012650856156535410675123243802058516231752042272248021281856298703770142795786100666866488156524986055302086884245567279217747949992158696921108442043315797276916315498880777777279202956725052882363547198886263142886547116961734477606791786974998103005849435913926324171880649533093763017187702814045467780315408904674178692833876799172767577165202916195909006495432232106912081173537138335120425972730450479729386366971854373449842005675670277706371960450489931165045347376627109613494822332019320754656852595230681764136446937252443677861778338130297661863303817755134989681932434246403227273392446255842675529490671004443581013286443796433561449508259433286950350449413904355539698966124617166727548261911344859308127321409281208619861860159346234617753318482029723201371486924472683843157648502912112405529930534525250748524081818710639717881100614244798691060170726257679874573432282698518264398355122412089400511891207016541123330565295734360060743717897007626845120289170544881968611804605397323178312243468141742196665725394787589358728843313987478606098297783448215414296966874612695387615971198818999467159450595560801611780062482667228430927142591768463079252689266946053794853880157159968774215348233544967778234095510517960639526478533946059825691992185013374441490289310834624249371158753136839912600104164493353647131422578338705392345874159055842170521689366868510007732714363289839806189638574935452682674060329336870555167201829017117925099822890797682101629168775827735213798299629723896096897557757905573822126332788143628404405036455845299119931093062019609519956391649121551510948021075143313260582708454386664697168124902596358728926801606718152746701718167253070376617381967407282889833035340216662785217604329269342549190656368628777303848961940058111353977962287987875889350051179896569094594335074373296837004386998329531170933514469371160648969368801441933251132606296943717361268635220817434398002152015947843906531810535689473327408641658280253681977056904271218155384599333997373511540033017207512306588014172415042933385037478828116059181907120655972893760615069932909794085241572758188411279646420559177883212956644294201082239486769427886494038379629930432165342326293826204700535045045968802401926971085705895865273847003879610730617111982571685079109389379981640672944130962046130299397595581890363532433525684968932717025669358787814083876577408760713478858752868847069750189960356442311372089689611789442035033470879691034594466779999466925762615965077486626820962693802950074516466536439009076258315046227243605267292187125995283044221006492201841943879210893633902828235654757745398172476888276973160382274868517330473173639997810492342562095123378471180789518365322663315338938265896838321942405816577651853396770036961948025491280191715614503511492977925048414263649533292981931009636324828356128701176378142865319121818184991366872698422099730884743329236629378424001852120460680471746671723327326821743335055149222961864644107152258361188569305966077883196355881005135334547182621760996224906777332051613176312353253072193589039965878544176122240546337079097855610564275631484602040465983767339880257135399726726419976071651848637126404829782252335340227131839828447785578049404352997690276323284778560408215577404558614738086049808774109930994242439779365131999288308215401019714208001784061093263269610735767507031030268627859878623187153607259225166291758683278493306975669710537260004995520959669931142098896110818684825691950478033324323671315804782835059203549854762013106829157011122166017072535372586635100181687613399801640198643419548736024170603932488823279108315107867446639604183381629493021186079649316384133510769992416148277357566411032891641564118401152901493387308369335790318470706310734350933202062152400431474995073160222125590502291879813299691274109768568510288379402453037867696006663240664470277709631449774271525664448302822859075541388036429390171832492556688977310738524584172679865118195522725767456068553470919595702257006934645962192092865804781307813886569839959868002564517440163263971383515496338678322205856909200633280436422177112338573635102010205290418407624659595773109912906975114956979628751125763142653314065173416171736094534217964205701584496322618517825131734189757202055585022245916089628477005183386817631933037703248482909457565743806266381814842840780500689322455776643361202980356323615284282186020725759058601003046506160050668499770684490814070961305003770420883788990893241978076688253548790007878346792632010377113549193200703378009552055148389712433003389191166313269280651806755250166807917116641001422394530061075127793826820553681796776045776072538247104155265675486783189278909421457510955561079809343074214212141905341732751388380396614380102708002425149227417224131341085172063734872360475405122562904017550291763553692394554200388289114468026356781045070871296178623571716510511782371477028011396739954730007233783612297585046419879385178611155710820229579613706339345756482044750994660412075073538520009166041145705374176842211137167847959414362894012175303706726998072348805378470107657702575070975694778308591309881266367624891046597246469785478428141426430673209180653279594334701523402654031859994485678495766076811542928704482357834761153614724829527975955440420340588297509570203802955901356653443911780235500642566307279973751026128329874125640268218082733841960140795572214865140563912757286835445613586074640558968600725812252020698841336533531204821551281596872054833554872622365668113880144497865033587952097117998822037982139845100593542529638054513838143319242828186939548270793646843624907361946172978178477671654287013395054092434838656337772418826158396714037299225690911370752579039601751051572971417228641173907843237447140643846959863793794843427896173089811247279110145181977884066189842754164969719568877262710319369811319164235229333958333378774186693154240136371238018061151669378240418540692481626071485892829391909406287058083117167969158827527157278684810616094974858271077929960902443094952212466685963798148294770262287489543412128229782556216610667911076963842378056719495604707659810315236816014799205384089087098808727460617262643271729266137810929327419617980648335642133845258190091274110955693649804915386871624779257264946614634301483733007713348634039196823149847284156226522068575512007331825705407758140279042082926925041674174970708923187469910230233326546669948366628295294826253145549463813499821945341361768902824878373395117457757178263041218830915162390378368176449768616213367880751936591126532860002691083720018556199883079457398666598100835194363544172830037573505285642818945323838838871316213962017658219123706803735148487678063070082393766893073165445223147621592489785839410160003545512581360837931689099707262753797370650765122644656686516724878345371411293891862912740212287514341839325036758002440485414433336263893345918208341533258392809577846220790193245748417562570334775187091773672304977290658945706790824029599375894976085107045704671969833890894396476003890517232473164219400441959341453237435700185214450823986638930699330779026422850483291997366524117392585766352064477335409845183288655796601092489166203874115621393816365555945278253580890137689360296415330347830525886309148965585863525233599046231105177945986200607078234752249800494330141666910730869644643680872809189276235400820438584542833640731933685324943272103488932689256697848081388834480396325386308569208482743940636320865976269754858367676778388926265631232356587806698963949831748943638367860869185532226088626287649261459663771887853400216507934681513141833798761902527149697353111288505390990490301364086953573890734822685060348869081196234107256927626511225532265415958247315312519521631197463388160598054539820565754550247577876872441315785071422004554970345249201238434463837545905342248110980019955197509973762148610285691367062950323568437347237576828147638096156980305528019089290822470253542552219053696337401659163370371460694581073777974249748008368128386594051941656939651282375519867392008739433656795858235778125701613181793901338679874167377748603222138921244132866009590313488481798870469919583377796562633669428424252966220630449844298947382052296865972993194131874288898470572749563207788923186065676669974953468994598202435544807340616948626118371621306934504324888464742159176896191408645920718710148289660885851309695274661863598612287209182851117913326863473613861686955079502041240349179537175694712692268840429942946435228969459076427367532343542189661157974435270866705528108801582258540093720385002525294836859095652977100474713138532395216192285053924100001159246491377849108837470857318114904456879428640812623868573287621680826130986692813209564632842908949771795666395942917294599070387008701611496626031956183564144044298281034682155256192202971601025144693862520164659975641422455385553402638390290706392700215824961088878435465296981530321763734233013415568754599000971623396663093164574665558613058877333580984840903472769764904244987517924653306586551212879891491577698053898403129914484091939567224602473778688846609663415689197410136610071686409109498264459393785659377255921463378810944604217590866903984379366082892793050798551215973903047898303463900386548459096135162485575675906373184379024275916218202388530386746574183255787346020023643163922402163821384052094155923995465266537026685646461378352962022509042098700653967756726774463038382489736974315972119197729647891552609433850635860718503826131012014458495197081692442833998885859245836851668646424633353489622017814318535849674167126712688323891095548015067043633518667329688052158782594902832717042874472693125756584800775410951397959731477174547074142710358411333211187453635066497322343377859541839874130625071667771899252491722240408726847429891282206479445851901330088349316760023764844485561234264577029233350480157510804958633336214972892089503879469819747564094148110990647718276694772872868513944417874629709386143806616254296989666983839722828324047368381236098189870102617889099301642272231956942402490753327994656833447313387189763848802347041471074731134674959868782111145122012952888563014511821335655056782296505958480640437264000298717276268187323518263684475296162181766709440953731380416383374546222214513646086798263153074705091355777181513707801901540807862648981686780521985809693742247328752601788156666411619292207816484127265867944856161420511806370314318103564388142850231779102060037732894527061490350717322117537374403431754715870005268957554107560165026500419089315734604089873896762340447040016170746926323940015493311405381985435613614586208909733368919190414611536288809341001238810497411471293159821904989290965746368115145878050702366396740949556892581425998382558300259997151725418743407133097780109784694345416500585639751506962624526914305872719540260907956815341566324977928778860962372869313573149899811529262596389723501081772903253116517900080501488810803388224321875322630494077908667746254286542102891174636162845919122799241255912073805736413479683598197036464801752400188988179594972803124986028114424549571748764720287171606036379678985977031022677302362254297687789248565968470191537882056908475355323165772312890641342949439533037654013496415301906780346527098252968502709070563043300144815843837230299493810421439676803762671210852006297057874450637715913270203492660382963772246304401149505852983324423921107880920381688256007044477680764042503375861319285135011718939638476124787467622733726370400352884776037927694640335987503483783182405095714293892127828016129875140168909781213007752610282597776204536407028634252712215262487589709173937805333127048529835253822220186610348015501831444975876732080123256413180481064048334155876150486214277016579066845580687623962402212153115354008477348394855419803134437876247615362034033643381852006696018883672083327541080894096742361825381091096612059031951909727995784760489687674917537092201044731580717264765532392978527354928901441466335182936912179969292059288776855776246125765860035002383663433691930571971938770593849343837439860254284502654193747308092472515464170859272057667910463613539870701036587321114473157568400880590783263797447430335819370868099102977643257647419199821653663866252954922742783513263447808752145662409633988921662893287006577783006020661950665033357528359430647384675643791415460638191101194745690161323301706956593092619596034782117388900449480431922692067103506391495692251746602588888983104300822962853050909357002220603272572676974503151282670840519515330484703741128891956416844466029597601708083934252721193970552469304750564309006261031173615084241868627455436905456424838084081068603973266330778379874022137088577064460091210405887825955606619896388623826988825391524981644567258837405525105275574407680680576304057297675244942306960566831361020914637564564595092817123914264013727846518707978771346471317191979884226858052079038040497098883141385276156323276597031043469273310246240502861135213528456321639025351820548385038246617946867866278668584439757662426582768742705211763918076202567841469392639445209990700162240470614713675845587212067128331880808782487948257573414574633637493145068715748542917884344943210388772385304272166200037567665061628435382672540114530837943002486707470177228450812283471188251680287033975686721995679524946090214217949585891816253552123934024533488008055898827590610555285282688037061908513493118067665558904056543788323226597375507203731814756483521441050062793124341307872349561769820279042523819791435011873232886652253391793347749095669504577668874654917940297787028851976862381440591158091635385970607135728451195109423231579036462293580933974775629739162823627011616150701848573616770242002398276043121923885394952516571291285810631240407728905927963541219818907828251133519840316355274312565802529701109670917548844505625572857494980468954239489248468174945254513107579581766472759512856347647438725369845197070497244609921830305007715033321666662611681267192886220513346256682236538000938418971619870384852402433588445024374692173624353157236667671453975950084188981187097018524819794088343911539199136944181183813754254119009816389971609534636620249015902137597248975939008797517287468967409191136623531946470809993292630956091255489190907418189487175650562200157928828675469429692910961995415194112875117939329716972405671735332354685443441522778275727727340899485020924819033809672095281249224312878999236132081953363078904204545562346112929353262714299313281040811160901668958256936702043489742707247725451951503236868029584623866859750692433328699512282355634881831030658565034045190169398776668685019864996987598767809720954727107493628835854908383529439562448982448213257747566647186966865190477686650060300600748411302639931445953271702221584448356947321656516134445052774911758738870606378068925368641121391858559287525103463951476448968687809840507853881421720498701162399671645542776389570299357756015489272276184010851263057914152267889367560148037601383508922487544800535344651823386162982895020287669526745707781052759245102508934016649604045713901880144734190461481954334156618983558336878489951209731594426463726012463964685795097453681667724116931789743698153415187562842190242154543336002821953840554919030968401783211029351917813714669862459991749739320416556059044882691403110133273080864844798685972193975057745636862140117631439999283326809396908249921063889025514695588576567754744757827867799784630369194451868055195662666410132937431780048034271661187405496751276357621139692410582047563587093635031968639754257018199144873949402322192897555312536471088136586884216886868757446198346814023265527284941506473601205450555307095732863200012066212606140412071897381688319464174474500423621665848526807993681488529174369728890335474120042741739223013511863946864150801356484755738234261410122517867462028602025964168898643983523414722752892145519082744734674186977350611709434364357655452170990796432977707301673447042635682599282419222038005524896804932416498775616375049908028742592437293129130150337511165061939542574574214228212398046947719036927089664051555944726842565118073214914271312838467410168088825700501048314467256119995829467152432928518260762044198453684157650225676392783308187694014770219482364773614687453954617080429302071319942246413385946603378300219866946179862931848018149009166723812199741512286056389293324933716330651293911394964210265228499070370845622518640002304245513095221251327893853957671037885699785368215191415992099903342377444480822944605443263544201712645147958863228513195080352564831877802844974688695733890576328298405620256729380526030329079224430837438448164042408127165382716830411317249741134641403498281574790199853838627869065070233967773059034344870576045690670879659360275794110727014870958866496086891505970225655239111839066936238056116467033495053170213013598450679786856066322117137400866411701384569732308802652410213070783358300728177488807817544777304658458224507633229417646172495551785185123153650998654157949722026470905874636975367518885773427281223567762705653793610078315472878284188837171255089904817983775179086581656155756869685098478378531575383608979780765901090708256893847179911987661295885299826972651194001943260246354478281768080151020985455605803509084067527668270265819294620791219691021965291053109136917843596285499290519353448651722480671053373668958091294339070798737084587737225150010823085998760591295175096116822377368287019583872378655811682378070577752450976888963700498347214404439158812890353380510402945913147799251951866949675201052786207468094681732596005917555451676823948590693521859414278715787616808891340910138393830921571339293557420925082908362872292222731113981908318093255374107217494583373417792807127432201126622121040818574610929805112403377902249033504506393450972214679826540990561837973527828585911393039411589729521426583208732103930159787382878740575719287656009078271755779031357419102547078524924812063183725651635049340602252505877234871251762987554625429957024719287458300468893569292019440921282418895183833186269852170920027631703997216745917747664152974642727131741800537029059936791038038936461995494595964938245904868397961980537432089854917971599116783974241756643910528093125096822956689337976190855611721296130864501673516007246637057321594399960414099517160244132115334911930676049264277671597049061870897592935690527946755341313540465711625193974974934923671367988096816613370288194874341506028910715170071982969385960685228066250048912148598896585269485269126968033397146940472264295942056613815986281056183077433845678346244403004229186623621368929942355858088910220949188426223435409944631952759276986341719377452060883178055950892851586106713798578256230359554949916180954770167946251594926402339877022814671220876867972880813085830702716116424122057456656872090888148984194959332632251141919126723701860704941598477275376749509389082882390841486196522862273337305682353437719733566288803712968951071307095874482878365369460499484004249917867185025293667217419434351897339173920671423272000865980032987969966578017406217483777073776262577039653069710152454105370937899919443438050888011728278407675916384883651027042671215251192883212184119269847403688646165041732319099142415268714240805669021365888474186330317662079048340015443387890640999218121284181583150759877284502525170522532230179766019620698817890621154428724662528997923441578814450651055746963340290557527987382287490900819319938985898512886528077711373584061207073744706490282197614678808295565371541385326514350053542970222756068974414649819154204443949363393942879801056595441478547673096346983719630234369595442124379977448840054745038482632381389361417773440815467406611880300455487837540960460597858170470004658394748317989053428549464641880975150794247693578248422716471131860841564296774627497481756034234950028843545329868014296209002154719987533198115392936935850922103799553004955510098240356428470466752244568370322161329169939715374173958761663121124807208671185748559432779667383403621737909133504703025391979656925401825747600611621255851919109044550441029505789884470046536008726465442071429552635107252995386859028263735523817406113165350373745221402493390860213747065158693401956309950346538946820430686728436129259821431938853188262832448707061202341874898321285722768661685428591811779143643453749203265206682720212521636220066217218374105799850368110554546172441906867105749402569645553002013336302217381039512299752123120007515933254222611794720491300361909894556059571815981235429898765082331909006933041403813939788573224418785442850762615503342128444322366562342906543990972930704693397526433835990889868927058926121898124239933989776390363530165782568959124755393726901840468330740046259676041537709554114340706325851884655575867825207136641068967316951206959557664149082946401357073629403385706468685637902139929057842063203673390645483972257731903568179982737161355241582901865300853440560400159152627812409613312754158785274299855676784525192589599404511041847418899094619122548846032756140161052132155670267153590792198850312725359031696975578849438662154945632829164908612849963505208559996197965694295198666993979428655986307686237077811194131755799133159306486198577833563929417347638298872943609462175413940232058324744473561680695971791686244884004764127448134616708629606125637518591155985069947568893221432468135394208214943680357688053013564529793481250880110450672954165500798069849725538759139369086623365697849964280642912592747569362055783201027288360063214448343560213067846041806675899386835935527368214588136755031919206639460097051405258860703537411986451313828012943373638982483054354435143433026961422624490585072675492241419815652907249438963581497758494709945817595699653208526706233359126902459924813835451693513694122523252138187941217059137287763840278162064231917195900079933867696703535995919636324533458562498452389154267856125818428749833622322235728752966894052797833595427889846394387496956706849744873553049048886445549368988005644286175482029938750935920570951700840705153509874990616085697107423446393745465231222068160752635753510252949947337762557270145783269581339231075924207011618381392387751008252490672488755758343839113460993502457535938472516794231858898682588368684434328564937043981184748581309924580581564913920949308856959186462684839244956461364019721771581504953655633371191818094654859534715205190372039282241558598683188659402427522132821821089305958095210257300004334393149362759793587440257763010236783663813810611243464824913027747036846840494471767495392390225203924191811272801943061890662092890104387613202140276051041106638395681103655757497517494161695303916380545925393928231969269372017393945484009013614737650830733615409908627286573126003206411447339515069320053968364336237343264848325354782944771408931605607645770860093552015930442095002729629159723711849436599446546856730261898480388225465613097614637596703636076455990991060983228817304378300025491795554609453790054656198446521539047695409457908985159875165485055873270237752893885371004350920355217740510285043992458852618950224545253075691617757574447647267705032461113987662052647686859359283539360388567745177156456535504644522413321077917883596677145226600133651002378026413458831486447596645834928189764945120614719294307300686192110838306945413262661118990648697181877392625282442956026869356388580521868766912908596539069776731597732163433980304395726636204319440075962605747986668308488923290859621131467675101994568914689420458732686487416868039124761929263290618444299053778234596594006240600098818445735813567796024668366616495579363019639917771065662159155066161726969622845528133082413942972690649222277954041162303683089227972106999651673604687573689535445691325408159677122738599153237112331678749021242894460570769754867928427232302928237195618021977174042487886502963109900176845461180473428658577600973264250516148436091455318979191644704049195608007179689954013177203667100815453688463282344929452467686037219858765256742024341677059622882814397873107952746785936127740563129172348520559092057211208245919495588360826798156380481751233317296478636922051769358603857851284973405588407303039585129178300935972235881286272498291804954339503989351737935884734405198920072350587992444705212211330488185272906879426306762257545819454920163459243923082416357602651481078280207037769420020211526671623086654586239487129427347323061951275438269781417771652725868392227136083036856363547402061023680299342172712180236593686693918077617234500095209318169583385615814337439574584334099744871344917958518829197395184229059002182710046136253519765772511071419131726406376377050630913090427585216108348468420421147748944230218255291385206172645972146399092242753015468785446726265821267653820368806022362473312564489892279486791796403392214492942407044328823118627832450887691013968437132390502089851051450043023112077525247230355484284451110504863380042423592838905252680147674816915582066939242697501891694771617395343272355908482468614780728458497022280715465422623033004286461406388620591140886850314227124198638381544328698892344173841333404743673437740521406731721820622428688465079754986953827911574006813964328978725257055987607118679723918561363137200458510693792762581192420221215985250095160044196242453238242464250400091140042828081993048500961748505390053156496266543420282487587989619095387150874183559589161975453216828056958610189747923998897431905604276905114396100202927278334904045947523361927532449201190489584730200800798637103535959309323086826877126629207232180839903629469997543915355248553135258606997156974311462792521834203576726272719417851255317196007160813277795613603084618961116277337682613871412789274787421608440759390332206628081616791712886587669607242703237312198645714990358329872873708881493987272593066040617575847636819540219866434253743910678002129204669985658745777079613885246153395764133232051548929118896614181292783642513068641747367884176943605286541809728263830645354200668535206132854624266764240816349548144182014164524859965587947546415763739514628831381042148281487456283145086413931194399286661388848015952632535492232548640545450941176046745460372055997353949669245517625751506542375852196463739271408079055056577806710654423593067908332187104142172094791488350589685445677692248791818392529393251909577338805547944813665502011174590004951614172281477191538935628325773121426251590402242869588413892035489807352235496487093725161538954086120808401371681232756778886589026369761920216652872412711364115655522268792685143863150734453159739422371048043649415309437159439824994429977553661404760331969225458606774009705940881020071940434676185498136908232402170380841552371105531376405982761411613107617252314165589126977222166743617031733697942697190002468794870993506763491003440028054398945853940334798119703241121735064747262076850689349474897098662664094999183691849705701825507187024781713657443698304877682172345931264457999097126001368099847185548923591461966114186706949908525625456297473428366420954615868586747610763593146851352032190458572686664172036030874628574675547830643294306064865464972424686235975433128432835902191238674338201335985273760026637614889285357093307172722694334974164667208564928553932208370835161410383342442632557897153678132143049484022540952304995778886916778706717405687936065533978910575422176275218862356701537942070130003818821463492728084836795042457021005577407434344130257073006908031364519232101458594681410174355635924592281133658012729724707631976283407034562504533396610075969648806208650758870351058443782617759248335119088503029375065196739316567663320655879230865715159307540421040964287008100381678320596768615723158218231196329828163279380926794036767988726967181798820774450502928988716530478132459277876476617064645927964272595224060822440394950538936939881707759683722965395979069937102869576426029920437209654851554344380368545719323220958517885290267207030726770467330210101362785123928964581680226575097039176903891065733851620592484845096892736058209081833248702115367047437532305182616973140303371067251678391580806412720532644237397670582126035004435951785233874472262792166089372424154850507148367443642601507280036185985792298997573597749118327761190972661461092026397154142137135116270172268362862675230162361535392614018136127006818848225541021840100218732452794185701719084344833122978570399404094736477340060717102623050220638824786618273870032652042576403598677323836798004506974436510281948480938851929429636029925449550900378363883847129860411901458202863537363577795943649675256194028573406875951074068289341607817705370323796598382747526431308128745758681301606897824147500079010029561065394756379930332816414365296188130352659657882461090167721930474000542543574106629587657359972998852470696670268807921029981512947720902058019802352203265785570272491845683741745414531017534402127007362652136721165285400211697730079065195732829250422642138568312862843791590762524156309013419102133984765784295244003925347905241181331292657679549973683058009011317883414742300555438918890952071201677139229413197915171300627541752822326850254206290365360193521506313849896318307733634147654258125546141750386149736142586851490793255117668925578937362618601891371662078741473836942444016966782808445985803777924412955033091217295807537991381191163467508969784517021515770700291021606664990313869457045576435686606348083351389330731978921333763067145041807031251299193047042409490200406680655047424402791223089212878123949943174042651786292152803993284721211850966261176656191057547649536975315592248573790842282571076541628706324201854957421654221759797823863236174560472845372584557061448114896309152152089570487344211725522671528214892674360851671844162747427006438449524531666201437853283814118759555134684676833345772950816065704379721843335191103753835032804395606423066050212482307369334461895633533191890412295641074202918206967597350112141940118653076830501045519209431586722083927793473777865770979704917610872254851381511461310810452050312059529264452375034992985937147270301232141371370240132130172233945464316180203356758613100503952004577603333310989868887001703051197552349850726019206032294885587222086847129321381116757357546967507472276843809502510079369051553394301237129063927796000584398648995635781437631137613491195010520706582148606979209250571280500130645216358037567800130744525105326808358988872746609291396545787743084939715533761886453503030120753029755766751253599012640989196706046627408149690415025919664963414397407128345584031470812630641438082116549366909852197216900380942042667240665274202039720085767509381802755523449527083170573293020390720918371706141970429889597327842558193762543207256153136608482023281994426792354422979054652256873721418386552531936011729411927298724772501301456195694888095309089288674939075916498871903263753115390603319611037788889522252403029574303339527902835014199352815039764569815809496808428335100669831139751896125235339443690979938279062613041732909309820835439765606509737126500863788903915454348417437326658853996436811215816959844533294949224550464509606550973825107829304280473826597240850745848817804325447935951685173893875896660597204963054459109723832513118064415916023012410746709115871786323843881196338329336509161936629705564278489909646816341715992736288184083739948404751426595347261708052004638315890352656004004786813295076800648793987156871597446562256490104227475178419193487524451820016011334159011406470525427269550423744342775263340090606979189976634108932509545391288438093189837216963255515136829041747859417500378537241794996827831188219961063272335306431307709546548540299953885629576172676151132337084217234167997981318206006000291281168357887799408433002743942202869833529754811971439375481795335618129674611636405868018405257193388609488238131426790286210801292117788596105460948809728437638295879581433306983491117981244082411945570554857815738315013395063267865547659678570848231969355793461955757759160304006310813127308942146296730889703011590317078925307090461634603597791747930787475500586040124747041658741736362291514334938152165640118021517677199260500134157154931205884189893622429817756413021008866545055373419023087040701032184240031786417965884912621572941601273454902590880320310535566080990470868285277301446935417662785817608636996161983294530948174562077925071638559778724451875746185321936210424915346904415038670058482799505937626216690779540450772282145064796563851950175484732079182897157692337163600915284817803786472945029924884152412998472316265749208985580997859950170364245360176278142570832696500423796950505002628621826546953224839221102508186787675609289090452907776023434729661302403974921717098809089305889416122213147627570259271333902072536329842449572394653717634144742465943942892368979488051569170064295616376484804572782177012678409460473345787541416691164527051558242998161804410142287991264395734839004775020506848811864157939435767399870341589194849829322457025180213441112380210247411075840943710734862250119739069258056292167362211069831240113479399231738811668608665866519658397738064137448703872556903803429888197162020093379947879283439729717769177842361738276500938390356922031427493665908340585585905376734524644926853884976087944394981522415815028450973200692703760197112592389829416934188181673581248359420695578853197414493697429281840692926091014878832134646034358030560445460741114502122225287314756096656089857666446868032160969396468050812046144167896298907209465580195591035140706083642041156548781432001709287556220929801447578436536125071694515642443026763312116360510760162780062641608494557921292617275969007221858006381941035005421711752131686372340690171246169678918601281142527659829305606255220485085563813505450602382510848338825478961425271112162544003569616147797673720054704900335222611013223658999490590922814808728364735017841377807149325368001915306702248167193256543013611448976226120546949083290943941771934775324000561601251489823473074013784274996787445580969316667561917498015372542152264976591887679362488317987009639937404813673685826797803749424759269495619100286522220108684595877355329625723575777761736684070176077332930227074380461320175382489690299197651009230422320380180866862864724639660598058047135029272140185839083932908010182711593165599415096864649624645387266207034881768290097836695278986462664886951359414355137575587646947672775685957974356574012172504314866546649900372623434558944745024482344477899787689508715048801545350307002098120482104325681592400636842449606290908837047145898676622518942704747708813412661847540707636802865193157064420172629787663706757335507302217979522283182842295239976759062390453922820986464905271968717221582654813180357414503854807985376744997772512572411515097076064498684779129999827400225201402819245377782277701561299243883503690603608887069200389554841203763079600258045449997960528491295693332564459079095865858052060377854433417845362246712839310066455055772287076424488396011906372470593982363227913318370657136778239862765591021626680493814455009057398523426149437280897530587334441514456378797579855196098406492854855589931134407663576706373546554650980089022450523022165675417588837839372471256444691228382073715907036496569763472366482933643077472415160657082928768213141073311162657887402946654444785835463540788085216610380601409964894293492620801665454341208270506604208267284824023512757387724622535020054211451890689874818906108031798801508339076983185904076979537405780814100228596738364551278833654887819771211025318933332397157513953000193674309442668523955527671044620593648553661681097078417109985622710647836070324832802900692160451328234748821601317702921717964166008931068559914961631829645019088934940955079137743232786287803165625363888377802820585380760888973013984080963950996764592208160406661368639115585826757761201401891145754807361876226883664179264370436039144606022930331101523075723002313657028153796871801155471470826155323747624615282824373761790086667498750756620392100260586699246843848480112355696714902034586738062353535110502284049223005203223484761079542875804528879080213746437703455702707181598568146191555894914874190763176395510599428177039348163354137295811480160749222546359275021009235010076220772588124651272779305194387605827643841062768530058649873809886597656119498559074478081249378077789872007619265102903567504258060344051459358255901904085657034922177793174462090643945587680441954500185110650068477297773326250224688105727258099833223654738893383074955147207735526287912678156754680192586874312801839270250317733912520873141334661250751014809830280259886957661864071809891482853441403045089370626052307841566239825677211090839801438614313370344698961670931494702906583017766273082959608357044306616539835065497012856343402942288367033044153466899024325745027842916695757822069173435849031589720926406236449371851306817664607018088175742498573729780670138892775981513993014043792138697987460239787168089262233308666445189561754243242971463369288232467796611384859460751841704690564594023733937774036391001724105328918709269891314989844290946412001459642648311680921197595646463934278363102888758955788404203179486563949862297932584924041635567168734791225005341624642372993314420718699274162294861080179215184724709024781996167160271672545207285346857524654278512627766807330125572314797009706625002957652980749323322285488860060537290812248614824923502261547481985397331566104607235901420928523995645274947754893207764269335597617103100559865300868151156802870983194013753141940844487725052342794428435968778198593856950221302833287674262592521769398256995542008765727407057712520064685024344685679098087266113640011703063114620127857720630971497183945517926615266339842635217872086560256608484084416164776035664818157543810138527426698147720916243479479554639127513421569982736163788934329071949556516988782215501626530399213670556616144076503921839618582859968588454178341758131328193325590832047475952374966878048054734002373177931664904928798759846584068938796609271562797655227103022662510745187513798434485812367735149413281841604868213526984371127158586852796833705890219876680530688003811430326687973533339688444668082351013220449447360116920507098994384340935356195562892132655541141241260854257453719344633313507199797696194966635910756745775768572253728588498471111470617554964957586181679814037804823179872181792715746280980038070237655516253975522497068990530717213843295736661747677478881896184541024404554675004169292930546134395464027086438689330823240873252131512276768715444352876090359172697399752081018134589980059675414114906390854767609314766353860852392063325693293297427096844501884631844133150915599173928711980444163198982628840573122275085565025029776878409036151200667904456013450092082504943287747120987153728938284191257104809220043126416201473347698293290270792374372380052494872256532118165941321917381828655232377237508367029587115592651958181758657582066043659120508234259788065332530385259306568336256076957858147081308337697937104490220237386018643742779031817264875879429247553733240136722906913912552105428195325651165953523279579640066481522004999927414547998140558571773141403792552509456242274081292729639070700931598919550456610438410747546727224805390861051794043014213540459746806491800764651783548206710096430949154860574463795644354566510002665250170698913143173664873889091526440372118550494717325506903077392247885815175939741898281701890157352588007167862625910228596881228815322300271845103827733532871444301758071406945736743484792631364157491051923968087356508325162890598407943400120169565855565604892762006304492141721545427821133116243641214100750383149176175586243517169700828387751027537572413139278116995509243225718493197851736868617116885460594589817693574414812529960272512597035269620760709019428872746760507038081145630553258685469381278358300535650830995094482696209533529056524555639018527952157003141053803863586140887481785829899128189557049965368358085801134703578923686120799253824079768951425859198704905675762383958627228946763171613030294656146376648968327294245303168599465743876218922137640639238035083851050018670125915987378584963363414071485807762071745305259040254527457493729041394996065223710627989794975586051382856051031152681644363809124585982023577816558589108596446475688023246944768175550667949000453317735889637513810854223390283617056541034631493639809898974612793874976494081126986753372037727947239752352625223563774526001167093838743002183048096293002714864311385861233667639384968419425318065832055749739279981093988889309000882236427073794623320235034999383795000617898746152835361435354325167627078378536227833998141949990882284287947942647147057425165609271417238764242370584123811498568618251971270218062134747577413564792794424152377802691810743161476141459676823139291250992806245621836914356494545434876740329204785715637668291147603519020622362132268872775244078349199106659294144258098036753794029796082925752125541286274113110215933603000254342663889363907317778167989725856379633494281530847264405681269482946367832634169803116623731319064455462617377630858781157257978238803899842855795549342632285248735119761360709081390671446491560340997350801898076694662356827248853616879222617379985781163816720793638025063550612237848114732869029180528438696801964256656692153309152510442830465599930804972788560021349353585720892853514768952762778838524301117392033633807388042801935077837189524812447519000994514269336941905117277201006154179176653524349286439066253754524581086140225076979544833099858250261070765074825928215599219067981341172366911316326741355159965919246612272173876985242837007066992541026809349517181804645335698096663157351431271603361882140140167452605036816315627983737262225840063263909367889259409256754008264137048335484182022771943514160874487954011037202039377384177184700008969394191913918769185251697881885926906509398244655331797277243889963241111093398472853330060626626384292679183762164891110611158526007707502330153590222495775903519740761913910994863442285937820948085112118674446056233170052972507578741541639560908040845471859648183771852311166542025596890881938452805794694920749618965311404555437596248063197875662908609137226679470535724072858651095474532676900724588298938693541048218684901665686982543024500772166883248495618651610462070316416068084504221492995671556279286011359205004171459800738573975584030676136975613282256876444073572283497904024209962561935862451160216143576640807862907262818830888768670625969517651242369202551155736088213603820337558401236673825178487690897908353571623316597706331981224947039393886763219680748363192723301981863649997444353801826437040220886916694736764895562445215491841692382328552590751151446881025045736568178606215585936016016382681389651965269026820657124681427431193037977783433681918320248660560836676681903641629000433307482414230229454470649960200370797434431155499596082529738707278264854826170995191113046530877998443778752878627923285131602411848820965770125386541270175680092933917862390936042171738368377364906101276408677908265671045482539791719679149365619670662992628965459895889785495653870642553609659818119095616975504237191991825564839168554813918904862303702817582003222058951476199545085266689527609922230079430513066050026803059967862862928196904027113521891078530552165534629408240505773070144696274766946430703468309878901388896758924151220534236063356743375263683218180233867476322090950129793076612426135451332706641719275171888466761460778375537002190856341740032759401540187390732283845374515256429331959952517599066324182460161100344419238393292203252595315658515019393209139563806608835553143470850471430040793220840045672872474947346386370889827531805819116002952763372333290883226928208518007456001963947028785307258018442184875125358920326456277440744036443905272065880920101458289349519044505679897330405840557288535373677725867604733373831350297228657531761309061841989992342717861030818885104376021510922623984035624785992337174467018982260924554971057112775304895260913447461535927274661890449828039014276849611696247178518598868387457733334913607709415538868454818213576812302825273015874143167064398062954286426931928281248935051636287698346888018307805267790864625514953288645292733336934187411593759118371515110191073850740005274960885558641666749843626694163060176552631838198192368915289772040734060663630963424949209474487486960828761385763509680144644886811080858685471911091101336058558801658303227753744201422607458716090570842011830195847705718198865545170603683907716482495439984337400364059176239342953207938335535988045375621942922967361539016366505364489583121892848818203673854568541596544227308617710116830984138582139412271184871399077448787119117019102526624247125361720272668466666486132993924522029227407806036593256383731809965178634951913427202197660768715366365927305695841200827856787806719449708592458662272863376634920214494145864216849022350014734058967841892972759056007841356857822630954398340883231983681610020484669886407610250035583985260405133326731890785619672215447213979738062715905007098172048022344284376377182753581543308856430667843224132510437140169040868980396456985755166851870209708168945731034295752593941982729181272419559742747460465184239037992595140560350371044831025891969705067073069952210816299986637571632617930178825131600567247677763251257935337909653027963397182341810739999855326725332736395430319674191974288812500164233347053070247750380928571461556548256560485199525929790946705418705234261583246943544111358607293382820148300600008179652228300435353048946302112911867992251851431315866069541426181506663200172740842731455104537464303134089842740840487850797691513106047038122072996175918199411195126083306075491290765253190035007661770922398955008608709277372532536716251185020449496453289624525416921022171761180602722290680425036747478262554742852467677263817886611519614714135705164001755622112300264832496610706651924413926952414272928675972554811854448882864151259604213457327921146431938224625488112802932073614814178937527387465989596873510496076582990062294850510878461411349375183552407042904434274194089701413742691331722170701998707723324814104950614120792823773017514290064857052247438003411225796175505516086708742958057398095383295607724381120367360693858043430303068949149436886822189560960393380152863332039495305787401237603430819549710725036191934329548337632416151236400122888541959234335675574867558667442552706259206558822387574132111268132748612719919916502520857276845781562123184498097323151779013694918314870014882205530081276020972518222330968524823901492922099973278437634761786041393251393003878240817788467196210856830056600312177461621746001664558136315120674037044379360144858546581712281864515089862970816983566607772985842447009232928227329038657616883831995216513937923390634890312324921738007881626025820938067391193247247728963443088367335962117550110202611242542530894439406569730881794942382705520921383035256436742801283643299836336325847693440127462685175257138788523468092427219913388498492540382732319675731395588626190375090673703351729826845814620979363081465203209170724290897276662805658858548664503617821141870836508580668426723915335038140134130196417826006098097025623013568710982001988895158271634055293055003452921236153680810042456649032218120701349293065922633127871801491796433931283798644251954193232117514250839668104270583657455385679081506595475523336422123091567109631517730099756751601871413657804566696097460941367994577653417038448781856515978599541862875087906711632178940083528895403392107435670391049074604513529202318706404549626040866155621939277480144800990006400853796609470311156630754632336688105287682732004396775370904447191422657986618879753944243890974337480997428254067844120679590359928425558616702161486136239849516687846430168052456969453031116082455810099331748976876937524148027263344951124913326358671496703830966602992713009939262846465654214579887615966184765707810834147315205280179437307500110986095862119227045341881867949185438696199011795704410274797945508417863282516976296548136127063773032255531010521978101840704695929943354054750037953212712592033370929764596020922845361635646514093238581876546998260892625667193541134170148590451512683472178107093960112464186111305858781909800364552545220885328454830383159485831207168428602273747627979290930085767047357921048157742952060634270968797998195375411764134039330334345466266868586367480346500644367938619274425548373593762137144899733599386793864160912415994094830103897966991850772443563641917807483270213582870620166466478922040983788087607938960988485457027126280859519859575014826000798658922674164150569459138142215715313960237556058240065987837343074124053852543991733076448113877649246079917541855660559736801664790293184736646660179560890205928271394078040727176701499025414794927800466540666575444800639119386886408270191249381508212541079539965416978411365347208079208881517545810754702201162097817278350265638847730766073209774958639211813208863112381805571162120322774109457735180606612864626056323570195059963365235455649650659176388963542210099056276585704669225265251989646273771953254019084013380741198183728425739348307883405082013748663545986565746267025327423523776537495007374658732640119876221535911886879538087597997271940583483736437379308065140058033131310459382872947913275301793266727868136844570058568949991282157259725362875559528446005674488366247069943971197561376777873421598104741063945273021339359804336636670671094526510009749462917283677770288456258296120312765229714931167783827730348432994810096953038410870669519592823531563875890406978696354515540208650905878710807520301792202666732270949492247882361321795990468639477352281723379057598388012597657445870173616319124308742388411565037980485852359538282688836620711038999943155758348300077523290764753223712475022092888607119620624889245541741847981813278531652547609489964721162960447238354131233989614923557491817450438201444807879420890036359608065442490102246505004388338990925545683306048985346027795043188631390610695311379575555119558170391415054481949585377540019504279816027122191802769522210078544932171870415172632990658073556077472794585205552125351968258494356411480453684638535080485316201458152653262670379161102333005250986740554868542842459374993475245054068947742085628141178054974758737183361796752562204881803466573635547631730606825734209138401841683229626010427248737092455359027663023632359747675445807413684300012481715493482849110057002189051282256502102665610090057601939924195178649578311102910108777233494099680907940891973683127454473073741718004500932533939096001151463185494542801353844118135081027896186274220089655947521649997548891523309752258450996978125902510098197656146573279345468448984449770142607548287727832749415024259619871376692062628658393561756245896679406743138392603031828526026489208808227285230350479903766554370613510815883919232655073370581393959272900114386770882752487428187524984095109101588378568313679445632623425743279586137794659064210798600817908232454051608476972184459270230973389603387488199305188415351109817406808991851525141470027192450328200243545843703082761004678817227600393109218782779485289966490308236337373815224524501919176718280540050419102280344438879479917773838256063627649339325005975999396871016927634421295690637311436588181050326130061392643513339137596924366910255967715373038734905865619098173243217720206956375459241029342516477133560481349876172399344343217358555350543918190845316940154082589043024805923691470936065429059801471939112501772814126872232232131060600504213855905795576539039994777961643543789149284644665741402944260075597307333669547633668514155197170972573881621828724450422156280036226957532153654316528485493668096952641728445490394939049385766561762642168327233745831407355209878422122969362307309704374258796346646833890279893117443985452990549839049574185539429977411322759884796356657241505850832961087251568218382660733686097709862281932507254544037150595515944299534185512039645617535158138206896674543505568499300861939448124165739007581966906327443563902267565860287281935269199716705064196212280471921228170795551260213700347138112761973157007796213292438143778243124539908407195712316019510456449191788420775611887749254842893140752956513738666589474503354451400084545451375928959706824164385223253898159761163749079654805683364724765591660751907017243745435375513167129446213479194253506340677582254652232543295927731442670882557373877194195310820613792062472896697100691739744224111304685727860982769235338838646017409063204505618780744924537855996695772058839022109351007490995830973628189776792139454254428663069903072985492392974530129594729363430641901999604815277355286182990617392732832926557561716110676606103128595263522761028571488360860244973584371243255039421376172905981549091839178626147613157186873290461959890226780484811076488947523954411594048296511692191482162645814776352625014738343197030764489254527734494952096518379018812302760262864541715154474217473288684659337847221623363322209596411420329302540105843738127085475053134732344305774408797207823009389251854022400774751773726720345841985473177585009089708036281365689158023068690191512980202177992208853488710920967511075373903324059771321950313225841976263844343455621576129265954635996319457423982216661257607883605864808763997070952997017127581313464877780477457712665877670432685798288376392439078661899772060720170537596473756827240125011824795378233495898300871934551714120734815838525171385007644112652454341253247689402098983775974598927285665948147511057718885603446293560079461358119770480770493772663915549561857820693604186975179954620882001897809392272823444866333240332788637168515052415017298371012409669113662976752097179507271390955940089794112388517368933183015889309276477388536003880133655169714352876039278826628428718255346067065727748879429799566047996981100672995534682839115414326190110063250030331060867736437476688508581688084572758452212965791392310230601872828128251311687506365289550567810218574383329860873047839789943951809310639409732824351542500970527850362675056962233728933354317062098146927152687517330863038247248165347601962208263302505935795897712219622155270629019353931565596346935572681438420129028689730104386544821034738987202209608474297795693311849388660646293093610563448054253046226625295968349755293661060911451275426625730496732657167573988958819795180880947356481585086377577704238664531505394337703127177698389248664025655242223246273908630206652445396218977119589494668557946253237111700909411167547472775282311938134747203319764030751895691979564417143891334547418190501589355146019965346724135598855825710502029805727259436541548360758012580644556461066362770676374004007424047792935743343271402818244750343639698380687577648395352408068726715010273838863520718492055796368741206075216362558286383804017855633854491930596866330248248231115300124565319491037611095721738630310899323857554287830409040336172323893716763042176016926750605867349683488482391530135106105954199721173976719396795182333171405730676788171624260121682620371626157223030438263520832019291649656410765692624080451554927633265949062458640553231528806630915388906102951730564989840355746776974952027869886407956388753449436972777381508852164337526166812510819671075927163962372244576351433277963073710607556291208972720620858603535769135118389614940022558169768403647086060887740189277289549954804551902938467176389559751667321911380348465289470296407390686450432231594860599251509790236376880995937371092933443843883578403773095251734683302150304799794114939342416249748779981052232356041422477097278922579841694786272430597690187536371127009118656636475759161831396875260199128268886576540636875231252242610429239038899822303649343944098872305225759429984962666797667764109569797078103396751530207723205334920119880523373401146331612361580143353869945831771500357889963861372723142126303227252853729490665940400188780886946918616823988230944462924945047126684456474017115007906418800470238243086472838137467623752880268433674404446538837646667105974389350578661371064450403835817080573492458903600069544716934669666831903571833701911082931487254730022767222737842119007090342503577744896439342200405493885916830273759295455117974080515739026551339677140410367111542399519735587763621886206057213169364101423223824485978654444223521334188138323186335296972446808419044869079898665534779911357865418709669388557461756304804741523788994414701452912133467522484907294625336401666029896351852990424818179232984602378665878692306789337116204036957298991057241831338071280287434922482001579018473816882616826215236741264338016338935717952694152297014406402461851846479615079170614819157394213198063753239819173033415195353369374200920534086945667638630610489049071877266225877046200927488446479706168712830378930309610319268758032376178733220417574643288806775756319339981427474563306711168403378632483109957672365740622332206801216523538973300469349564805807699631729860628838937556751275812844528873264287789389626287471625944009558570774016657945389295071129496322713169042819407739040879193865819431448446143562098278254847552054677109291024730844782999549917969551208015533682958211562073126178580885124327658013602845480037346526946126319523906957797342849632625150552177342255850715973032195400041887609984231615475337995429582129542838363451356860209449811331241381628788177474736184322850378217260070304633049834540861433043073891031726411278937340631808272855675466770192467598669994389854758116782738168289097098564274205776960999794448239078556722186175725016537227609954572830640579829572291231975121945837194965147399207670827357312608423734710080455699982213350048675983364742909186063907239634046528247059659735379712938689915283566615156741897291750530384268688524210597636844066199834290187115399953741075669252589492285690248262697462193836687526715562229177024026188001480157451054920586830713529917038369182696002561156722440481673587417288764306100489810545747753894465304160036735501200552578075236063084651711127678467141851594511368039710521897702647451786929320201278621615862720583169029289449670686874130514303816328662605566045259524692084532787440536023632563197038569265406802865756309634726320328840056479421361865509476533119682707799702010693372631341726814031098469035911953447281761748718641936690098086407048208872502449871334468225068647864123777120954877521326721367997329576405497685227075532442290133354531762440238485147105150869924226789077826891593768047359153469981783763729233578920013227306574535885947218703087482435900480386349134464635870328095630353961061066028608840729768288827047300323170059585055454535261277956172496201887728741486692985261575373706385827728712935017784141257108185125849320791563702879153178474704242442563015527604436773206441632057200270123002219519322652419901241153088635051644499593466547952681066924605296068399743488460102361430552541937714321146746952238760538258966097225617786862898666850408485359876390236059008809604212030181714829162556868638553431895970541364829089713826726064206999887705836333435789461010201865452055829667488477899058311827268718197008710316238390485603742208616977648225311695817422172655023137500262670738365596681746985822586097594910900212633228843752403513889052625028896753351423428391905925981307452291645598603466524010178873590919696186496403964178542015415583584364894994268270586823936032658402932928307845546476040063121548824584670504095227574358999835324169834238630246158367280283109789860847933316599894988090669218525832462494411799993909674872235937077560262661211931020022653667143006092897463500571901863387590966369363562881760685798564782969478274386964896566693202660205280426212266862434620043696771990746113167118201049234093235529251258223357224231763520579401116740605693092967895766951302890068126865985330500708097760860542745645389358880483599148596870317098359405125703889153352860190843890644537730139924956286291361884046753090643953603366553739808033106054949406243728525878540732319486072070628839496243227617969779997255601364202217119840195012061023271636765761889172177098880481983668458956491074967681887151937694742679097919634488876087581505392880922850644103235158946101926776221647974192687044411789475679954641320668418944516891948097501823482410031998161310090517669461656625445100144989944696860138610055355133086656142776942623931605511618586262816642305100181548038692419400764475064520381223976162714225225783622177355908043464773664030831473122051741711927056956957027911122180519536464221189756629491960027314434871427573743314542512057171102866353595853553051951781606722301592300408398308598147112910655206566116959254942858748682335416495955201675771792660060141988358637047597913220683851206492228821738596482310565696836887051337216083075691638286385767379377983339277502113080828304808071426571950033070697526204176839215425459926397948113395217399049681081085260733241195935003241580552642911070416453902170149470551992120906367481420432639084215392467483832702665788159018347229574587241929385017805116009878505843877501429377462615661321404017069963162585696945845791752401346564620782428821600811915619699161787506092041688793371412066468782417014033943557372225625370620300694539087193761614329384165269489768693836727338332429404997199658046499826579103904063109770066201612541765990616032880531650150130087921178124300288852890148587114586881368985113641013101956723713282430148556684938231677219690606922272478907923679278493568590035687366335059583617556748958078388609861792967269962777410918748108395413514918152225357942814403803080899495548831351244891289281723272673392610019183036100187986830535045702834689263751014793087263758450834039578798405589754320878129576914982324844731220506364487760167901978338254432439148780091412838535323188777067686471116865734280043940366621794572236413989853839192284777445433742128769628945775494642336657481198839808666025314496732212868836480944036109893309692201044910192028559555515183976271639496386045766005144559573826871332059479420379771079318166106443141486488686338721297093718104131894276061864129245212642500948873445373442054077042120012087382637328713130874777670275468349266531449477527454858776384688190595902425642609371528845580205157876489419945868798881024724649081303248753006778540639503376020109431880131207262164954440312429148117609771867298860936018808668467011804443857547226531072818675193431070226426556557376296873004603674030218721845162920883673718126666496533969593574632466786934921808722953342243289402663719630586918333441122596184172934474864806580798242745816397361613728346153986411616617556221010631216940658051390235285276572543302018961813905911287644328519497287948214395260417621982719305886965051161973276415961399061070029615184914540113540147058586077618349712588487309372174336456803114969646398854836190492354735955902039418239672206212842358575722566155551406656496076831853501334713952805208334553432923669797668879039391833349614268418311094013362212134672664343536237660518447447049468210160145080512256988862704274338708479413488847281570735363879010200434197348959941991030809012280637724949916876283088856727513154903740151816268558159981421284777375165363234007195875639047391294229499667874305908465557243227670369821613568065660075609103128023893465314166374364567264407352565862004194363934810277090402851077386581095897353882882749971760506373618239777669767311770409088854745830297720679620007353039200017023242390735973400162715093120147051098675708344619108194566584584479983101778802516762431801868908163811747767403149921671859001413720793971404275080392421648756147012302643164685314554528794013610350985873023755917247330297910749493258092571182963235384589492047776861823035026156135131367042086739212909250375793698946441179018664508507141407133180436378566516912301682054826245350793566688510826021804720198457920592434415701176349732976404055896601154080518542521277553663116830127519832199433232489787581991658959346576982397891581226746541589257843959407580849335171681962550408780308237794550714824213777067030737186632321448706194448573347376720463006372852771019116790699972025811701154647918532212219050054955618924000177716479128219261358814689156393194821359469049083902274735247569986049560213737314801560286700214934406755045338938727390621240002475883357655369379872190762120478399934290606349713034799478426413030340261601843870385241387791018986002461942321723693593210067268331899538616980863921993392587228110461255715431347925162258692594447497090419139423971882494458436586225031631907178198004367172570364160294771431654033502562033361843130273654151709853752170686155051719216610030587641706928886360335642894027724418311647943312735715218061255403116602767693523256004147078194610100567631866725368478153487784804951973703553926578069413108355569945484107239265429728958015006910911768312321021198466285358749094437016929175248926618389441749363008953205362986452630127361270482458210538284125356604398742643182685727368770475971191268826763876389028056916112330144387698548953305032814587187150026493493812479144174490347972203118340919723555869888102990015148602315861192505586654886724962808257683698769707792401975401814533885280730071592473329557119902776933209059761017234955016590596888145764149292085539710963350831200636193990854783598761606499967180519725888881537110039362063346622956522292623211354706029507367381661364522099639403644908659174999216684325965627413451854393945764941583738555151147315675246475053579071931224955005507021328910820981229277444632579855844604764426131583440987821471181612102821941171293541870156655587047430068786575495083646121418207287287980189606027513550268666601084151214657487790364285827256589646662838860050504796027473860437050879574261486020824215467586351125281599274917062045244089361822500483670297158294499055014599966987241438978803665993753173613687829733570918638899073311339390338313863836524635207192141507028429632926785274125235929304785961637606413646417677665321321949776390063488464974877241091688806888530689277479156732232388942102863419006231113198609567270696591141498381003279299299922484158657880369151622821884622764290011550430693771286028961810210110458289413008158290572434064490879963713354526815150500906077960510951276864364651266552642580489397194892519012901836587272549897058038357245110286297994688709285123204975194025188480210800767576389056874913722386941181932023041762965088242488511532458202395572441760073731493673030725565231302638102881037526547993321459752651189970614044055168751174259986216883635590360374818207121869349710142851151607683232470891627645680179810247553899770875960231150428461754477525020888275364174930173456377199247696533199933173346352726276903625551586544601213950465594504355579202214606736625085342250192846286329051951383018113084617095466105300469419474217957195902014143425080661495028647307313170026718137273946647295436152498975221169144944134148163481149002229587340151348280956400244058744396330057844082460462577942228722239835378694677528594675503594959236785796531236885041702327602314962852153422458019579100899716525569649453521698625136302683455717070454376946254513541639655674006062617175040897318098113644927230055172185223215701093977683518274336795949351842777288013884964240318351833264687496059438989304385346377226552343456206577748966296892253106580940523917929384712949046552320698346262805955781970264785749606402833067477863960021267820189037387788949057587322045789637277825819946011001780264010769766308017079810358279538476028118883448907304240612012102087824615615740970940176083765793479805026590975149273445999874361764534758032086179488785362217932722238411465141073430217079198090672394498234371508939834422503135771908198224388456967740205237094311817311024565262220012028932415411620988152335216525530273926467565579059397132335533411211450038552583417288555853461086548034571816438080580983882829607528697814480001937020443956158487999125226039796878834462336957167402750643714073159933714740007425831329854432114727526692596886720177891053924890421752678076469719144484015641627194875451475766376735461445982077886732019141625877067341712760109838571554451758141302204198030548166703849811385521622320767522172620408457188788672095533059796946129151613444423702606197254705995174662864007925290569976881056352372821954114145142976870064436948850538707115969986443010081984171488974570692619426332365179371523986622844707666405800066555598665954246419816628889028319695955539649835680929224333477587726189311083985994478920627538433447619433603423846379585466654931447763211356728415876423383368779394944382048749262231071645578083085862867752532881639315806420349541471850318183567716579786689137724129712917271826328011915353246414320158846784506380753681181106101148453195855568245920718397624305692616576830401445054407270247955866430683920555198193273514794340523478057898299982088709271646417416077300804430306325113233596208885161213235034759834279715157644302783049593872375564564992371511964178384785298653413430965658645029179225170408766448539213392187011559394665961261701812026001504586765240188532128204668140085165809352962973826984406368146829043977650748294790287792853191088989760926080665116460992393746780005058162062540723012025498357865475771440030940657986772579887629537667285601759975929187520601931374184654088151505845439544308632297628670607637847669666930392475037241395869987753788126565318508440967024525955397175711894996143251267491521315523755766425527747191540915878170131657228729021079034270578624858707579567963206430166611351897974492719687715841722073525690104666537059049045339893253041241638550086248471743438970551452834148792952386146146456429755877353943833735794651265213248190318144020594850184843109063265519038217894264043779852820542970674827408267907866943914575384267584240157311894951018353348087171090337806508536141810620510577503180424649994990333628261119393674920472583606432196241676024311159856184491207774313180919581175863669449539116686680818229252819396489965173381189928137753619802852908677861644017181996426537491279853643257681170126632530547089563849632905969125888138359369378667580159880553338276599020322146344917337038896033722382077854999916884487547340096982123611763719171495474087424019798004647888275146613159245659049210708394118292760711681935574343923809387002915556369979684590425979786706967697150881437277375327965922986408452822077687486851617060484622118542094406006057843900784736112986691777920644378605561505965144881030081689345796513037924635680012679949412066871465714746368712511428026720775875957697583434647459527803704967123899627018675660714405627484656390326319113409787893037066541613961057550580683093199348052011437722489535175703626229603904150902066568162388093835160517248970357921528872432474501565333619211881224332799233988244335464819020523037580035392778126342459171826721989288657981518198633165035248704198756334823070791637801389391065081829861884238631033807191166959434164762266404717019450040696047110640061670413671418107571608067399986482621608159091166772525528510763958616052414637099654605180403560645808924106805658499316703525287939220926378205364398603617266386481175666654125077324647099551810485232818824977735647960570984677568296860840983170233477572770244921128851699979561369509290845490434204104019522866002554535856361957612256658338770116934035669896277865348735489018777872814096558239604240490766366696045148222186344893740471407215175580316912786194391178134990667747779276388200554484994638458704574354628377427891456373057516479158051938748921505297116605564828027440310794069424279478956219647899714436452653335888587751062213905299582008851593652189263929981361856200683633138709495834151519901463200121136547329646013220586162530060083162891010376938340882371856902915836751814744323082244473604666561133820617363849337083727471644268493710045586286538733979001671026207726455079240419422425476598626023930814193934355348222722659985347884083997702825273432730342095138374363996538905859415590383316270023701372774153706276334944285542707286200076589807021000149199334942846833999987635432847679390339845037259252690712265590492862180497021017394456770288163238573076615610791957069939135141733126193643490308149973000745192091160169353000728389683114016486897248745074952055351192756283649431607499177945876956443564275533412175971099595635021394764147975641909712331132737783299732968054760351497214396728835667154646599491717480526289147892381967753852221044024905607038607283904114384297253856785325137858705033980536755937518430340028608594997496573454528152558781772426317902859728162786835102696428460543564647330782675252938825399806206380688645849387556756563299687447161270678639063440252373061217516844640577132335451308099148935018082039071909224166866233787738007367832351021238595564489110760925536355326454913063421523615721021929519558202788536494699414430445768845507338710537501705801401996860742997728353288834598018308086759313663037236353166283951141153405924000101883445831493745569185380746008838988698050867519666359519928946290752463262348664022858133339334276954749621079751605565413529459943119514324040100591620364778240540423181815712563780743666311027579309977479775248408332308695502957723710810572737680584233375180674150696256174073559713112377561926313311236225056812508034250728912744502642880931711794593086163153951050535769175131840825642640590138200046871409376454573812909399826870824563760996646915844417161152825954202596796104129339110513263588718981091235936500594334283167338308361385105027347084994873937306912751761631743784632157113704163228813624434060803665137074583474774349024579440221498083825048810307463504030106268854991967360386520455707207977270888025142315378411683274783280571997618493628626947667294609333186635581625908271268856202334580048759655355469373805331014282438762400787338120223810865077398930506628447418153349310042367695012533649781834923337036290569967318421237732853142855733692362523416862671322457152564913117885609297318401198566142151402331729565835070127829293740931745632650480903052964183823129979981440717032002297883033817120657023621840022492440470778614308076188753980996791174060788818383083545921051353636200656985109782138671776042352666894665841948935381816960694258802762120419056331094369686294752727613714830743138714120296119785597476510915772444228614236216883475834716306108574594816356768404887707917691299791987555629484494021610012264107916270348175146252939258518743041979189323699278242763689979830308447666540135181438133776975053557537192388697258821598384505892997966206150280770060223697914505764377033168345894612527123983410298034502654982074243113366061359109212667838622399305246360251804914914309588046087484876734209033776071573450303638534757995212508916652687435466840317719932372717729369352824327446735105775646981616694608085564134826543050561376921705937274313179513352431590653239449152672976330725483526131487131499731084431280308963588436934710418824058599714276312391120813548151964569340647074146608955003269594415187767567876021224842353257618162004859908296302241640749732412384336014712904145433014870756730098892807092462827105362071729006077389214914895372777899728800851832290971339728671880073157212940491725712252541705735716363203654560425477495373903720205344369130937324811669850229199409942184819659316918226705487998669602543500444794083096920834088076366805776923557303595585960936477634131510275567559498743938938095420591804070043005842097700020262894271415117675461776382365659366266883429266563237510160401636099412628729756821520132956283984338427514442628493660189662752876277521652850026321145018502086520956889259449045334957620522213545396756919659278356856671281718741472287401016060103173644868431548835812341721751247217242125459838428281953011795674719010659331369914974097427767176682101540821502352141252560351152365168639798050463164190378167805954300421135995117924239371578570135259714029498290095847082736113054926979190407340903812984439550610540048237997795556495530316871410379692299728201619391066786010671347413658101074907845474094453139085752617661025713363474394003361086065020178745519019607783794074359270563859889875394764327674608695646572588932079492505459111844174264602140467030939361621480265903415005106756095674025766379512472517809738185141841299682297665759241064361583179747338434929279544607197778084783420632325526094213993570760246537538698126009391838767199165127474045756539511845784216882157302250789049675676639592610759596825234372862146324517705304485810546363642735066393006426305286970535460415649505351840692457419959647019385534772458189575918510921648065180787222396792855448857877891528594292625130284368507629816594343990454541013611525805555990314489648996496375294989270397186931067071442286882511350446268449823540840127995948434877460191213061105390208449723483256867447408727929531492348406575346999773115618786717366931518891127673228076338179339926074983047869935545181297127537009334111511270990798085835440010188739756502467359477325882196761172499912527889133550068168260885457468777811777835840072116472661929689218692622759485615970353892781065714589575019964643752055814039765670594461965708594304754952112670504778133242676121466316122293584246732837925871808787066220020128811641819819287747545470022930479285111745833406487503762078854012094394813952208446813331917176307582539814941805063391465234324946194712705528973922227738121889666935817815365702714584932328268709010272681925053627322514718334398838272118136508811810738231719637145387900094763933773877319893308076547920715969553341896298814699430671248203463936187202003816245330439756278591628083984462093408318570033412763566027963883781370580603527382791529873205971952241476601451645129176664850895276089623251046067247960714305483347950909196016808387681121246131261474440163147188554405227258342009250575300963751167904855549469777590878311392482405339690291560192490650483464844259011256356290773788857010607717292094008101526353900862661585376049008207189836463557207452451320357000627661157185980781422841705584164170738497357642374224953389719091923944167543418841863011886141557620089625129875099262903574770852479525414421243125722993368581282360025556815636306511553855515911798786713713201738755981872163924799252623793513090651474120552064525577627384753100230814202137634173386538778062316220930045314540072043110263559923119829354839331294277687978972827180600496146942168543082956082021342958538210330755531960169573546722592661849915569834010275510538088293620500865443010024254040990936949852573804404257712394187595215934950770642103607300964737461406141692072916208586361219154382846364569157137653608849181856068604428410837982256530813245319847595875287089837331486441428150360068227643903682335117638228053417546786762066783585005737831055404434659201266197721218445477366584427864150632343108703168977322191049800760731367033891770754101142730509426236183904098568930518956581362409661548315920859034299237911757642051082042721210974029518966181308545302779646376523433118301377355256437006873918670796045751745203983590884592582543912054573907213500461831881419539226062451614733707347992432402000494761809663687808900631755748608889671299133979687207000192387904772890599157844729266284285221174917836427687409462084103994681308813381274308658660837096293009859301254426182303722935505409951099272628704019922429843214718758116910026550798852114187202182259187609987301348636909775104458942111430025885846198777314090753717616977163369046135407728184228376142561437094632031465033948439969323211672338297547512974877651578964744702786436711325894052602063284896142615961469113081917575829570962867865626153461862265753071841464773119858874194283365555061102944035620755435882225137830697817994596673323061939051419692554958244754211316446545524275722261513546240860775340546035229880171395278620465392958718948196130745117451136160202718959289867233207920429885649863531528852536277433224203113884891328877211542149083097996647512111386386676326798512441278292294486706284061898570000481455992145400046149459814161987823188838187717381997695086917942971358009666220147300023439464841682552196097995056619000313986630279228412577440518320620481865863247760333284969123602669074731933526350753320193332119482798813353395356795487857108437138616809394892127191481343171998672964606697279026640419863468316184588244346776527779695645962617992078743486153038976029763872417726290512176747660311486189005683884691195835352862657217870932450976499611973170899935743944637946902640673462918197244756046461095259876050240372421640463997754586944214166599194646805119073468865604053050021709511634541749257953594557955706107236790894660971577519702818411898673862605258725052179500133146996309769776080623948792029756242330767606496289666624265162068755346951667671162921334086383918118189653089337208629451394555731378069136700291241888112852410500301070204049364174524386347789131833819386759635229522000251370704466771438689962268908005517948792613132391990878897763645392146756767398002643123516238423410417865169909421252706917458857725945146252138136612964111471261208183362349568640834670338137298147739986295292981080520152607069161351803659826734461494563312553264938501338405355292193736956458406149885111089519493500579049415429033439417710984890971582379662543929256255304489063483085228970054206903265393974529925809740647532458263049567237131351876625458714340459745101839429120152211747077025826047252929034588983781851010245453982394310019462195174430583307343938747135778620907997091563910827971647171708627557186159238576898616761386318406245815872671417625979152795285998831543807838989150148281366106250331228817082192560162281987036163740534072417814005862929032675618590507076362830559580937350348895929238558828624322461799480605102900609252439610208728621953733628657194255630266740583283896637329167460285810612677514997801008408339372463959758884792449515098909195337133026828594118657129393829046398394160851020329391744332593775146095982577518919678625067147619840518827792409433079028456654780819332443686273806748872836550585506197267254175579863452358173926637049627123850350734434191831292465130231871921998293078359747076775417769789086605331652460536732120930120499538970736149017910736112100827776909350803023707410967730246692439611014943014460854295304407992397681492689847078820043512136215660946161067735868029143753655240069350665173527966296289132991314802975825346794863362039215650730725757682940160386427260726439775458773884828852511531372181865889677144976896998095682523058808314944946798623319737932195614665181144938877242299148314722109120395311612221787874852617951132488970736594268625195891162964555421139293594484710287976088467405429821944598582671161021802019914603256544925206436344323125057313227933982430194852480039897618160381404830988535982385981372599189942062219464499718815125417217579873087542924419972351966743875302099348134844753725691554611315215889342853982364578442688586147590458709986311827063913636976103424579580484129160019962839579001647882073498667138307422082001782699735718568896743395033188639006378166962931060504004344033409010360316257716576443823342182448964462959313413758992350933167844849951675130310868690788591225869529954235887377264156689307309933407406489051830290125908514903405791225795367458647519922696297102733681617493450876825183885524370707400942489535311158413103091443396927160412859897209469603502787122812036058143226103037465097425124311414690302825409365134659797525385366746112764249031756341289597533616662155517050868256623788757393179911278006610289687059745196006668719426876223905433180411532031858046637451273496979734760409784775792138189048396142838680979763938662420592016259130730250327266046113916944881046654284903258593747245424778700851445143049862773772191610099917741663893261346767031520840692508465268968477657156816671529799581570057435493914646076810152117166400612815791823664554576842683221073403843969890573627518376454647065185762390152039053142586783464731367248060483167121036864205361200114830645900231218395897977427920189639205432927891896254345957472046228049656223146219765886843323635898847601326657400039547782204763451424590641922847501879016289164796469358247097149331287812641598958268768393231661427448389307894751925521013751372572288951919432293166013299464317884145126084071264543524106725275696099684922189515565087142384723489271306969842849928232434393265863614735456846861311867847442163788069156075464804394064346218861938937120343176509845554625015312370535696837720992436749008321069480261182203994784682390109387431297192282820353773691217592080522925839231196657730835569717238567431328388305351118727553909063971832445031472345469908053717305628316175193220372788356423883510830812202515016389951488384868969749087225826975217772810920900240632245661136815293607740612022474438206095344951236512737273732598526665388504350098019425102124021556355656762857119859404174609254898812713074099428647480463728013123045951211945323108577657188900335960762578661425918947423606822123005005982416020355297294592269662572733237320373542139131843356989417691575260473739755977035128302277003877198946542680258848545674002790059042582431117097717766240199523998536522858635535434683358078092805481927977395837097003936191789708407481039964719135400421541597384766741662385010678848636514923916934017742594419960658237953146911945580764482915521322881001711838707148548300094586420137769677083963508053222429226864723800652689895575501794301708055356192429024621488022723299362355600809720417084457249801731449187870418740414766732020200898431772973156479735292394384574141313507074538129121554096846255286855592060248677153119530098929088674502369869105991548785284668081309146497492776663284003466477953203788797036677994573528447524235392053247200522170752232319906364838259980716776440605901207192727625026047180357124329592047777436925362761594152292996994010964812215572146773718160674024049208609951611954360667896705913128693695480831995744344204238687042556815182776319076576976777577888021186501857383268008991082993196042524762788667482744716625633339902668709532327092428209382206090318093278396576188344718513150215121021763753061648185255227739165594644235731818082729850623006110239553806465211563922021474445942345932432259553633389915992461204171929990681749379854838717011290291744465967469564154987253313897350932154262027374049394428061731698517286099122174571184816768936279783095023218517951446218349156013106155026087712865861072982728176061226053347024104138547033772428785777278407297239037980227236914753827323272447237221163946791482143292076982226102959631587119550373835809424947688031840783887711471754240216126301491416535744880978377942736447825475876117715720728702831832573769316316147564429091625293591939154018832395922977389824734330731140490823993478468053738727575621472717669234125896353911344359643328410312593016893849287728436527942421892217396086309688047451462960651428757340771181276837084222402373757611251983663312606919335952943882318686448523575930251896303820037801802988468392363351233561108147700028888082345704008048715118633807885148774223046535798911683333617018293198080088844931262785344057510863484586981925405862089127233510954360611731716654056552341904134971396531549463822833165274755979088209735146219166237011071937652913094190023563500513170517137690041654650429965368951283288844456013024062921813109267866043203097873014338508012208337699800873372098142333550038200492513244689630594576931639416293217072114296143535177173147665551358030297738005167065865062755981748526227484910621519155733734812927359357758569811772335003561740825908426498305871148244707694095050132675277588189181083062642658685724202439701296764875258815577006941497155207482321002866986260769344816679718334566019413210211266547213415426335321667030088958363821338100997584749897855711803989310269993898527603315380261612889574834448780703701538981012143587539523132424424157920843696890835174756318294544357324440963513184306314473496720630318580001394106964866042672546486745660094162344240465616681794304949412753257089681800735884031968430848681546851858110410501243021469715920587690165969672870441176847115296397886107589453875616550279291524299447068851614228033606631883330844431625732852925662646069944116401770840092286599286828284015305233619015076895459787943906508312302760675492027671915139019036653673349346212472019701889376421461948971708989989101591798012082961339290756397408959501572698079738648150046652241777461851156375154393168688568718677103946372488465654060701379511770920224106959092763334673150188643948010508971208228307664948805531074762658493510342623103331313545856937220224252825595561002899902964202014190379813713340448976790890723799358794352632601109174312307211993318037460575082311550034642807483977794428798506942634224106398554453899759406874345792469440577328190148150545953486005777788838573414398518797514072220812915118499058719899209919687777391166593604159652256639290400984322301222060100205495824987760521074667131177136022087013864773677113987921400697242805282603900550581699980422381028469324379935408412527180443159186049486913670933985648328690731685257700943659694411264699687794026041454164841792895123121283436072996259544869408225072121559092939343862258151421134154814607390971679103987601677677845922429953833972308408805058125777197609928685113009025556964811889857590662265316816333509842867236420734739707371355914220292992192342731042796631085329644603405198553182153623603311269969712851882227547070787151046231782691379726813896007988117957789647731218083138452066147070846358860845546423231456900426624533225641806170804892020367555244980686279909220444157444495927045751756676793361707438628838134046598111121463486771976023806047895938401951196406541003226768149886396316194529290078275056831407188419566204412473280291674991197968144524771206329171607749296219347282916007957998839043171000751748849482840177798147875700370864971569817944547297896719466235591306516371780437161409629476244293505248171670670561240591073291571990129846960153960625032878616879944218401471286116189907817170636914299466262499083231336698655902852827943134876843260983720703090093860741816793473932651157396002693015570284843923898464365418176953135581573383271898052541684629249132543893441311529071382477511214410619678769028133229914533491190594387708236514288572768584725558746602731265501427565843087253297473897741599473578633834843919705729022124413026891408390571717604841859961137384183496853138754714217036164005536629721359872593520709799149496564890915403513793407871204544581969043624544017761112294590402955461984727771225381698539250355161443424759727570209548303328029284513930937611987465553756579210721302739928706755988673224675205967424548732597846586776059399182947259689324460885230125532791615000049177027215206807447262570616016956122719253800971265537345318735802835143772451608584610712205162796907332724557648852384834259400570847439220361011444263742507568333005485540959435675236952100434509681594452082979657715055805366209174227899148575880333441450049695874739728494827207796942322007241663924711030806204222786998359927853178395734317285773839400113359557956937231426070348808906126878868188857185820002551296549877190791696173858126600162954304256464016702590385083488144617156861170613678216630366691242986588615052247153935977703271621390525201507856532256986758341825275522360192725309693614555075938895851156212786212581110441460587396517308726351630439773859338771464156579616033008547478326379136200304201954669232556766505645204791047893500983148118572768279980522302846151460381060750079511462700368610693776420515330763553705031835424152519483925427537290580833441940891725277887600569915653984857569187799139730558612925484668657124777676684499813823694570303875194539794500129402144701914578669010297177887325120318099774902020109796977327915213969664176701747067949226166645487030947665306786165505151133140724564179202480559260818060714579951695574374805833817529006743594003049129164457844037719201635616686695834341058220274231398654848716653006144541066624199270924201397666581625680358214883116943042573827993414758057245358940830986674505536923042437859284484355766377984710768338969611533463938096973560475384725194696867738546551002009812183767972558905341722646927000826103990334510113777727214441704086365011210229698671125671141683535155070518430559023621830686883182081020368025631968188027262134384670558725571331402215911098137202918491108125529694871253147429242433087822935534450296810838733841662404217953693686757956245471272079992462033799814895151733734296799097449970288626503870000812630393481024106458050299370448059697001342412837143966292270095211049465058624966381481595075153217604126929555018022573961815073405068495301585305953241665377024203789074060633220912422729481114276150457040164637232488634567865564062047167690765494677361786137495655491680259452008616108119714088821129689945103042143694268740402466288545807767568047724807231605891624506879659611584202490877426454745527652955898021309555134303273914657450503832859400989656130366788554096810919678117563316808148641100411576690181810533143527148358516891937572404118729787347557285155742069409661368788288521869812897706592817626711996937827381913196900845872186118422118175445201209803336344833741731153026437995240786205380890670453218367897893986046273464177743742416382327027016025915315942664845486728686038601572377313073258121254931552323574759770357206874202828130206481790807084145794805340705221155762501526261154127483254698121585426113579910028653096353278717972748194290044515880720935535140858234067185005026914844172505405183059631905773601978519751000264846555258473229871696050299695602855907522953183079776593513300148315826415781159493744009196701567943154072429584610770574341022078727361078471830185190527971012702189504369418772687070096795700860584044209894670659181810523708671789800701736237155040992089848229706109962302110163308465673454669954281766781325495254979446345259940940657066174480079010494442081908157469543015430424522977450202714896619609964247425816843763166085524728076321252966347838480530904152972164946448190515960238123619092025552170760165117836413874885733994641519562374817345895784920479741045602722877915610992870992322129720820207499407448166486733103462103774054927665036642272291034978422462214153101489026375889379577061934731153412968049783563861415644944495736700902509268007100903816796888260876787604810688951132213996597282974121671562592475987195805015755452181005788536837320743727356544798424284798087729108396136247444729553931028157515277935464073922101471354243523183255972694418664982792449802534784130154778515430034523565578509918029018256955996167204273483122618522060468101221702808450592819216687380388641748102101685769637514108678792933342087200560144355570664195708367110723257489522912551409662813321569128523923856864057390675524652460972467375631982072506468075482157409601093243391865122962558172867882165418150897982914544550291068421468604750124801343503047848660530748792748317608120243298051302113166739002260174888087780623217933867549507675669841127311700067092737747175426188975133871680686920616641302363919538525845229039225588799545331925864145041003867660179486529861090171193297246598873299424276290657753392842914119085097680927559301043445759915298232949818034718228110372966064382859229477302517849389600385464608261215424988661353679081805008077277782365336708855396883933480147991950388989716569820056854027748006067115039047399870854340928351229220425746953003640080469032300462377695701056918903461419850035946632698112041907592360724167714905923673752846523905205576904130544268151418815721272937226039228910810973993590888266414708467488668728371279970744137021017410082350745486310309181615840388138794053827739552481050292096456847948776137390556404694423559769472992217414764990856955258258383407505473685255935563144789405775199147597749414969396838937023280512441324286530884226686413120156383380085536826765569830987108572018141152569165267126850911600193439714821556045154258672053116734124077984507661083621507282426011783248263760349173364830456192396839467689939358895742085972694460760028830142767309076058030506046204031702824223856954481466860219573482005022638640572839693006955014983696164071231158150709705469556408330680098941602665970704594937315303577121515403089234479023526969057085164731765458498341292122678061709671246346912417996800720365286560417398118712825121789863527140843195564522196000794881646724700443537443397363023741056352630977027399208671866416113595718052481180878332431562237395811903165452111595721282420020738688178440693973250311582784804804281438681898001486892958493820535501220461796426103212678191334948210288990101128341957203238602114215058384808976970856181850378309967412824863877067650082693327003836044944099711771874992857948193100621996724582477899743448121809098561180330956849584377098798949506395730400677719283645638371488982327397528881796635360895938478008897285780348638584174980264015414912894762738664347005416549748079429614254009681482603283431526667360321667510729825889572896122344184907347053530979684270495993403995649650497211710688762579709051243615348654638884029770940054679611389032443472393777600307725986521450384838599927072481806076531520342629477342663069133973989949433169250806263017454284452309527388634724739009678597457123367710386513192599094170645095695505874762889218713945893933571209426778475353939157096918774837897769629448540918714819465686198895644029447099820703777507943192513244209017948631829888280192309923211254151968722237463070991826105785952651598682438872376498306791147562934344813325942995370850996210042860040504492836440834568337506947426653001220722941524759061352884126046437638236115549898688179278363542393558549707373759971567197907219546658835720201956811006925053571538518929564948082928286511164592080601073590382885309486052014635337928362235824346141011269122804565006449804783663947859892846428295183256852062195511799452249487095729548571116315750630429737902781390159111109850114061055725685206741046187143361155433196419657528297818261248593974703202127676243261580223803497306168558507190096304369673989051388623546171235005433667020791278494365249298514280965342762905239972337091605223060769402917647740979839693467352587623701028421307542271483720626774077447983009404517791649802020205929730372460427545278345555107853306148187623392929571446839120637324550808575559139851589898565755918418568676645131631671148213229908811180638103135817483429722971064071458225809094915591207293223897275516646627560162131488450267890908362582328319514718914542238954590214285589483516175411112387958836792510888599179087145714772340586693658866971391638969928242481374942150460809225914745330134085483911770521437966178675702488357630939515068925486391146769671437051037986172310865378452965019048776761631822250288987653808739932124016597639525381406164174323526298900652235950153846098441067840490380239529701518763780102220488792415190163540149684654321634122955627339489917043865874958666058721564417048751848148439383246438346752641667886188588814927357236657769720661929190718681069811166377907673438858550488536853516490874887702852398277559415391785876938768721684731595396692064698485616631644590579752708288548286541087216532051229918096020768269736532644033347854653684283839062631102137020885938641052267584642780604900224637410825135318533753249047858517755455496671222934558339396827607621699981383559269494654889941020236655928082070297274803018687923656084032340515621504922535379504298297156587746830958104051599277254118372408713186722860548246310797048863854923336177691613173278639731452346695225213189046625475340080843545656141448598262726975253008688850884001385506295047851742852212793469628609825063494920063228702642941069069632483363746100308066038977996980427954884205569209927234600752950092614308093899895058003922731323246192700800253050030682847375049486832519489527460191285754613622338333227919673491855256379742178624659563460605483227974195212215465519198495498884069405647609256642452145994762564393637068711713820622355935870703059399410767114863974031304476810432367593463055216464950905714143780519661248500276769785450307831435946995913677036534725764172402420881213589555618518260413502152352384992851624853037171453247416299974977963259123418751158055666525706413597893191007713842919087631231415244271771761958104523949667227325917191459628820839890710362278851052106034486622066631647284667992991456074646573099903002321866834539616331033160674565965876102993263822616019634881162040726776661794853767197595282633038921831511385329114580652736833870505510219808851505425391006939449625710898135165372095067340596139119074195580303406549817191440842914177623644222029115979709171497210336339332783164416972572901830993088975081093297285436066963274199842454574158919642882888197270759185504580058357453481719553331280784497407497166419627348599819350664125099022668719136326710502163114078646452025798982808870774047075595931704153561560353445103048127318056189011402729128376905491150642809456885262053214638288800014416692521837828794865908698459307498396280490003642959140102328871398849922039436104070340153014406838644421412115466394322390542127463332539098414238520045672699009737640401389746459304187034908752857466352305542240720137920389798249434978766595851429255709555869455567668813394375536421649459237815498256880663002829331408353837945520062850659414972251712277161632590252547822632883357619574546296038317951222647781586719514236388328526985640282227851700478210304894078708261686823881414538430042940385387911187593423353044957611953327269391719669215479868978467945060760839624144778166270448642019664255551224157068406518562351523003322124417788802597539177974376943424004451142096146075995600370768181876976482003399404667778190303287580061905768671263525663579014941373384722590651097557883020190310654396870347505046833049225575655022150281961347198237517054406913448341837489226355001525770954597017781030700001676097765675792807626980164705223265006613277463617936530491985825172592095926793959083510019099261040486317592367382356612311635605607733409510267466004479495720030398244237279687599079401133803714860248301572468730352726924175196460871769520958843284779678369248784148789247071183325706409008459509987614593678859900328518132365361077163716703708361617448814841225474872885768367552928140603329486163595726324553371215718635252413358290340936163823138641824193268382537105571514777302094273023898498798984377617098852549791603433597163667071675948343443878829839112833926066292370784070963614823345359520384576839244897581146386833766526570893236286631691863245741318741356446398514512042076194979029786653438692588961545562046368086928571932968139040017079974175256040678156745058587049001230264966582343083324923751768715675864064854193663017062635468214768336063117443630711645310494938493938020244902536014240414915990127619590807872424513348719695234822202666025861754701839191097176137296926659160613552772844813768638740419242803990069777833817681327528145090241375319603354414335479421887805738176155137987713192002243737381928520790918030293474282963106141332869301534651426073922313165805924707148471009995120310628326159096707825846329127458796804409984647652291873594432950474228285967453552516991494786627668393930076676451339638231021868537370340380425298669630448813598750760173416453590616508154198554435743766704707823067651637967558876229597970624642103166483427256970949313997023314571129963108623736509370501831112292210753699432587082583553358878116439264040404880812201878556118653142096310978784369503009538511893405103750087160187284482535197824073620278111221271133134902873091696548421441757649292242835464368196350305345688154549828331122449679274307010744611580482963077029245342428740719794824121446200971594232411770910244009212374531503732339350638287844538789934519387344901381814373456719101817215135371562284761770179159565359544142949303212526834315912920394864190943540811185705949741920760075619901758118511032051046142650327220395593089388568780518443360221793114163907505269964784496793229503711571603785263634714125717703016270025288929527854467483050326905855875132531976258663036274738478766533684434694704468590850023027633592343826607604598479509352006138608533914005093563930760891581499009655237707497540752957370277303633286889620623072720455625006860457588559637015750819569856871430858983134513875451525881101060170292670420336245612413855088234619847045582028948265643484055431208730754383615873978829052004956490508040021337305917162028908753985703283586400081493328221044059878455009287048202510305074333727708655825878821219638200265320258874854112637095849124290258958564231501359022116344023707131637271337845282947111132513469863314691387221343291329789369110392207601800071740605444044955518851937590750566445932544098787659000197816054980679267768882699363899344931359860202901360564499000235145539200217641345032748732240023553409572099104498427273969185955215756758937028842931164687088170192785636324928096009737084114575711293657703521855123171898322563332072772027976966922938765106132336381606611743557679224275967998702255512531681799509739053704135856352682842500043415218591747990337688673405333121059243306074441943481890035657603084509172482765846281420604709852481215609401688695297557409698650908149477661026017408726809247869101563454413262897016401452202433953890234607330720232329883492437505438720536638234861393689853301066900525705814654031999158026712532299645979914794750211371632456962183064912827591301037911703662594735656847392491314167760458231543550125890163367056273772984667850863816514024980762065637666790413999613344592469132416431213275664882099543922347452100725535066699781768045948863888228709663518689281182629437833504812418043185172487405810354621342309493872505582525532612174170453597177217635602568876405231657273836500597390162543620420133395468129586669917361095636118217581712974907576531831134219188871915145215089153469801496753383733777475830273633152705574397767034837257937791597593821701862210272375409371775719250368260407634424325621131061836771180886432955139660286575179127156810464850596266819057643538863469900516074909532286936886053984484763895494101759657669011483923102044952635069553010142649315805342573402466030200734246212410193029739882729104652078047133841515285698017122438342462345020280817668525226833878531333560537553676240870162592539895747108019457730760559153895882027723630535897005216884440961382560283581384368788073275014081359010172224946985105602466928448944519941180246795384492653881589911669212133813692272907375120431368933447120341450333472962216933214165510938040582957702652333247651229572466762146151092792483098764652749556194123814974091578676096536150326645567166794463423325773600727723620332872801608120570188394481208482309341032448103946271171118976799413698281060876438882068283090231458871316691133690571144912369279485600202584267200859952604807613627754572426789994538336792136355446848122541608829199890705274590526269660018784861865324834691295188524902687253483278958377238363720922024229247620305448386527541914340074354528981616253243933476508459578162023799792809890150585889566944399535043625403285572964745530473126879266981299813472418271864800264755199411095857553366952792871661095893678376844473338467430250482798189782331219020393159286066720549150706858180022553809490662965581194157489172505420900756238822409775786070684559743079077362475299224576434281376309706296493392755090223500537130301940582778643372907266004404361457351177869406698842522545285162423251136104663690185674595440445901441086242120130031907014008685658352926911309087036150990523456506483634131679985870763975053734044963464232087818886083487095448982471423323181701553220504325670618976743473123310799162473179635535363273749730570995251844696349121299661380575431697854305348214704301577570751506031959454472602456891734801716026309801312176146908661104581346193432427907444115535086674168109330163254133929439646348049827679416857595278239874744741064885936481834851598390772898244486022367662262310822708428259876106286074981897625397130082218957267077693256561297836290456642196625116341079893570255145963900472846036205587267906423128949595666816555257860130929585662874092656559834658533591495287799746240130355390947457268654298809688368512749819790153553878269873872990761551504198056575748005252003021874575450366875617007838660061862347982142815750392731602532262630258980872852771671666861636089605161048013127985075247207474335927237815981927452438994913959270473701964172964526610026281412869675196336759328229977936787575229956431317747901717630046069640913320565204091895535455367182930438480418350639799771760200459602935085430758299743530956524398614267758300141698877906298075910555316390130314919087999223918285274454879869359280079210357626885547758919773324634938661431340274049231186802054017257240178430098841745996433686588315872361229527187833233641070538394167989170933683591430728984877965675082183684638355466790265362105625913597427879893195400404948638626331042153985185982528801280149031845175263314890175969319794003327496726508870124934389063471554600340426904113111821824453149648081855746542183412672988839277011402619882365277197435986218772082283680572270780370327072718398876847621390667778395401183779125458690884068796202387311188728999434414788866317431449719332869007121102632450761515238044061168724259814270319359836378345430496611598794914790566461249481160396526277939655910692481245179001344005287755610030116632095830508039532849319213760200596541908883437620227302961858355224256665653858929021452141683295948045495520471693035646822100170567612172819574198595954303605914846796504961130695916599640615368914497699704850535960968790321579760324960368797483303805063383758000726408195265484237854013982762481289341268984616308203668179255129617730554885725460492804577336931076559200084769388332179192583326179888953863584472361479996256677844232995778412524898782248540919069920137904292938421532357972351488972531240034860901956757324938876847502511831295911199711388009456266870857151736848040167151069589008857849132914596921587461459812966204778941056313188364847602540201828558311506695501355616724118347344905777469177656237241947986377181748007638614693664513586560192741127864834745388148236791012602847531346108541377519620822602368238475163767863195988175068548049006011772524541558788825087105547820244080743392132649742313762589954361994135324219623364298240385249051333369104249134938599055470373323845096207279587464192424930134624045225824190968477888450300649704213212472943133245431508612844210320093303970846483709660624225879655909896457409330597235911356253978483454057059937101230576414526927333643745264319824907325597300813876524888112778690381044451649522569371108006040315064067595160767807016569125979118370420131655486464254776794594784978278054158960346962415765289232467123296531511286466172913870869268901828460252805996408949147125711687861715167405098473880941844782928932772253668319050614585511082907384000314781848913888698535789948495298953592938314393964122590849280620888666758259902095318181971330855178634871313431173857874572600959277153105083305523300102459583195879721650345232728174106201930885670210628297306791874128587539689029763502605093385307263819094163806222070253718907704096822701750383180174244865739775476360899577309462510128179701143922924839020398065361020811853127222301986067406993724043558288742408357129679897033807306843694715917303971060012129742255664368742506636085872802548007438953845259697992691675953796622027093480308577825784310502780485232605868534729572625574998625473284044540104141322351813376775334872090715532541061094827931094112162313088504600421236189905001881798640538442409809406990543323544523229568280907264638521133616799540796629447186452681614270725840947004318283701075547124602488229233136727022516874742788243371979766747749122029176425203545357385849154379616807119125832477195257018224717018279028771207237919071463858750699419938170513271744957076239005813846791922676140202750888711860735328954922646388505690641843511224225088155080990746844527103931055094511566810420295297297754883220675019412527591620660056548331457535334408092103034734244244617717112021818567831831540217507986336399857978363168794953029163837436548529151416715662887843391229275978045331965940322779479107174693405821052448253491931611739140649799306930350244441837925383371404259206010035398644029498648846445458817293427286702202021867942639650541504789692262577910134619679808538060063348630298250698630990161475122682878546947121994421515594951542938847000769968295001149541487106036923654233337013513196078533522612918619667967455652447909467518360235234845426859952692400681158677849069155396191406909794607141904480395770688680009533720785695107656605528330774932431146216369167700571205970658341789815306022629100910793222244713095763991613770892554318415432833211299383158746001645741967209995686117811231662695914553784048807124001741157925688207135893197541426136549743301230184869561781633162317566155457230652859859589548018424423216249748841091311362186808078133387204004398180275679781621455020044415238694015009642999071546519180103240194050825024154957733520141790444651389914568987059837660206402485015027808784829529678073736503551182339620198296671864870774967531908177872151438588284305502831650387345279211143621299340849821078310202484793682435796900142938165428116948890741049201283986091833881810614721704133888995204873036026389392323251854078120123302123088552064157571056980874690586186028750241599649785530627132150361526910205602577475962563133396542456476785686954341875994032834940433048775246037682110391937399356153437502486836206645633791279908434790211998025227163040449282429057154372789470495970462694585675906865025287494452755482696878500391600336405700440327497693074079429424216392472839869761092961264096009588489523565138953942099148463926770004768269125927110575217157751673711414334669178146715268880817055726612067749913481370233338631901327950015814076187222787128153325654064392627818132470823688447218477360622969267880642122790329215846942535126671306801852663043502914231809431978937590756776358933918010394709408205383641744772349738386636760499445927857454170774623334116989263899865353816708135442889317340471308049886540815042469765285671242932931515378538136990686559722434466424991953811515366713147395373604800454949447787934425918952918002579702423450926233807123127379727379570443453456651904405212221108717142114865875278260438282691114742446043494890501643818856972615394173247500384074498581657660421096748997439006610186405387123192463461114769064826087995405155900166436001208465300467291232489103368953976432447170221904263493447076720820800153227698534334349468918983507975873611069523202934396847650118680491244865313909325562762399948371812020042858382055349223754750680311184104265502854185361628769843726796281606155131284896641119382967837357864939227083110397489515350382540165969773863590647654185841079780007097648025881303694932502148354841004483331964780737104127018413837843420362441720348129402949994770564219053736179521819337636654476374978149884026923566702121856443214923946839231103740836618310808948287077701050908194410988616673815004812864583624672788393642705806210839155971972941766346007410344650315984888626892880217529340119534723175386109661118030192565121742921397853034467803969395647453622968378912211274097248175654738148181767795689965656918222489572855744362585753755001756722131737198016509933039366997083228479090657112473075642408745537253217544917493163472140043658926357777289388166791976356914443327201608849863238789037761846564317941538022632587740778424728242051185458579061846594012059774359297880249469260394948316313636818015474160789856241382111359222281471722327347359964484938085048976411885221511454063682863870095004061122421399501614549102508848300690548051343998714865195090587046531595980806915380305189688893999622486585652562484158089019194226922719706680760276789524225440537363031697833252851904371521731450267038472683173861182417956692920815115922621340305421941920565583446906762383606866199334139381520929313205527466943514565075933855526230319910291254466460271406664306358887262110436023589823223450061778107856962206430067709116760472558833418638468621170338648525223569754984073927742290966221412894390646250496105733821455076425530731995149129625866298139802336389563906342765941828842533164633760549676536060591133542747016903021380098381684975210902510933550727091485736193836550380007826481727798870932001891179467465874105614982667014709955952143192877110857351084408574682546175448526982207178649784062593286736037073757802046519421018535579840710008706692804154577991162943180492198735069118728259034311184255656301387137207598465782621127516215517338974047355107226436376958419031361050531615466671555098974159780468870228826016004603596431992555258579733778363740318897430795138667859237395982110128180831406503163352104777759772682188965007197363853595974064848385911206799923699994786536587394703805937266861555848588085687425524783580013398365756841851056763273948977423605527099893934101905226537623905869664122171550994206209653711847654756355239499852363705589427108486635243056911813262848472444152070817842726945641364494560421352494784551748984893676985466158792890452360068410937965131999976176856895352083128023409802368822138199154504761558923357754964300249094809216730870994258557227150552967894912607928992231241922455460460832536113001875758487927075707210424072896366726762369159964423892536249817235824569116392969112800925452488774030513766875967279626663075283434886625879443060571728331399366886607503096047376105521614755045184430833914299489473177508984526362842909079314408211553262722600276298692585999352117716168875077542397273882720273952574671104558324192008756318068292935108323018820735836520186188451280234036193172210671204313202100086210602816043769518760428183096351144360759595976565970246090964467845055937785679264816332498246030254552350853721233976427374743076105326277757704873220797712176190730640171348644631080780551527486467204323647002639043754432780961200723657923031152314708402789885363564459185631404012777276980452710718458864574354401695256579402908882698773255435819499425548140636843767706520387832723903999657661846868741294963974049382338280294978652678684564794517769856794750124878801030946711773538837394586939861541984686486340943930574177782743424257885134131129223220097379506977365973872275047775651328990713502824421310541009556097955839793561261433256629192629451169370241288412935640692013858515512229352911072640157300330484943694672022056748173193852527703659150866795940887887426822386071395478381614269148212273249824807473085090744844567582299331327991393775765910048858008393163743183448092947869501274433049618761184964131850931692479499154418600695462783664531461326801292951146137256136355409983069822957447405293847570825779920325519189686624820688987181251358539127148577574153181637858657357288952021561039441361363993902869219169180630603598367615256943512784573853462736766550043365800832396075696820545204319909893539686232575283826008666160644227347157388259719116513902050666306851514691509698033323130322866432790987707796149265053291206272227830666598389614666494161658340994716531692016615076865181682992411882001801124027286998666203258777999420456079577431866693865750565232583242435264992477532742357167778645694601419350246965172031395767207916548049970415985149700086532300769946836029287101943888332175903927790227404250488047511063046962295500347812382978142279836700473818181327153259015554698816210746418587384599202865373113425884867644936768979240178713988589565887972173737869257845824360027702599632909403322611143924419692378502064740972340015519472168605244906003388662662311350485649212815896593814327471058162331921141096893422383888859493414819384018552936013387067496227829250707605112833615896046959880112965178871902998318864225759199033310922305248285297178959766068763234568000260379246298484747772105028822454509298410202965357398121656111616646988604158280548599510307789999847441023506351788340048485947742826388039347909619316282291248119054051545946967346557448792435243726246884518643086536018084948278407910333427842077922579712897757162494135857169586754928145490605193694263060483495882596721049521399353195054143008390721761983213804393337063825631296800766719725376013122365115861269898512951359406507494384189469982244809036570519417654346786497780330974093980355573187017493885064232235000778898753593142957137337525980797844235524379427556710631981147738881634652415636042190848283142603797200647687726394954939733040413251902667913919187526890069971767161863434914198571268768592264673307140402324175252259497175372474376257871029058904658668774186556457908661077919865981969842070695619165029478610461134014618114816958876673925003486039393843762054956561246109573528909603885093627249122903995868049742156835988208555983715328823691968568447935150257693289606440491157641029713986549134177911515800962680791798956248021998435529359725799656461564589820442115575453553861290508730506310468072981657418316122043747010843855487794805427398688657071681862279249634979829397250421766237039836421311586759489625451635693593057312425752991357965517612504942381307817620328137887795139928900184517340112728902962704155568544492645127806804582903583118812244755108554056008710032129024759276387738597680621578710727599372904417066147247976077538237356761585195883348274296292585856784589571839398714591757825748291764183761379930905821449807819600393354872911719887323448121584395582136246188025323344984220471178696916671812568748430071037862665509362234840691244415382498386912317994129412447550620895055642290502424884097250298195779073409988358813439708307052397087537802997370069281942243132984936905211590476258654384809563451247369818000405568369983507883799297817809720636041586215709477824611820698969891279183167878999941427174842458787706945126999121098777512292463139886990291804671647721552960615315065305036222234480330568435668288459856953663409128335632319199917206909174810863092478141980113898775153859320442143736808382105265219711091919591116070024109280055701253052640669641851183591459761439618328525591901895355557317005852220497641780602246429217639411665428616840803347140898370656748807736884688564245492099268606660960831427894224754622102654309809749040000670414677549103985661488865209902634460272229320026536588676664421563956518530517704914300574193629796332214980839681343510116828599878484848594371170021556067777446681094891769426757072695792399451299901036602329976429396468951287358737886601644141217819678164443721878997438144819019724292738331280435916895112533606412715917388485548888310862850525607513238131984316356887081011226085643891978447223691455988695021199476246489058769667088385085859725410426008851805287092254750764323919246400639202545281636546837810888892417736522273946809491397929918988818556539900275109956772487169317323917875578851498464186779076537358895005175969145629924526676811211542346947828046588928068498007681763069029743606348586790078989294554379531903657430615820781566237682234488013872159104358562280805322574791383298171807340433009216134039579297941524916293899592592424833504636117862661090252888786046899777554567621798604184583023072383908246061109588434216875513419160488341195869988286024569378126469976114170229569299510140461259674739881892536178178207084762657660359303634100117791190895142763832790580756381353271437790362558328340130659206740497058843928875191837331898899744988183784393041902936839513352165743544447348414629399925127362499381355685448048621187934060382780164458533778652948914602370196790285455686518614537556018788080329053963722323796734278426142419804357316284460833281545608166703137678003545589571870683283673046936396134434929840109076643911377025075843147100737926705363631486734204870846701810971212098979100923887896683286053382510533182756342534233812682973092609081642756307940930234934931778979100419474147594557128673857123592222508700718746404609963739245717393650059672640758549702793062097741339953285165646408511738972217337170897238023357115902340321807745807848492927898723128917608674439817717256926897300860499026459076195149252493949300853559007817585416565071082362974231004045731692546964642525870670579081610905920993080507550026576779901575870134350827216928843576477290002393399919076057005360239786199460586907999600398837084396555578273432996753065101724181280457378203722351831070163822786304718868654983644014460080769032877922437277209548331118818996229004838871573616583405680173407197624257729479039693678995809488565698680847988897522900697757661834895142714333242737853165344457765242569840621628368055067489593068249547122661013745058698949773567933378439235348001886380714031107215342318158806282505607429374361225838346607017043817005590440570999385702161074075348667150374663612355755285772136308336409307144822896166703807178095244271061041460427368432373396719195305502864452999904918303841189952738325068626288671938347350520984905776008397058588647015188087003543394027136999938300357327266979511786288349741861643052328532177389745550665113887036996226527723640373153764014886022212237956806320508709982341505412762479992658845730544291738967027220370037465562825220196806182320525155027721609593277192201766299455641496597488353128241631448215396533381709192640893073184527173803910099194104097405842600278987051044581646875724278783394865753000743270043669058994285773420722477751512913199263866141286586359386880374164310288292486764487443887231350808751279428067360545717340215996254078845382683099980276769572783884120898959783588028059519520964239324711239724505076776977319764332131528224884397859227877476777644768559917590053535208500490964336544664456532891161740948185902404883164399872454105696970452021669901139691756263282348132609279810807999426027906834918993096795207005100314725954270747196628143697752332386036905981426666358103100326367978859976937195087613600122895267566001733979616799859611693441904685839511294737915292982786046990991249865453905664896121754499761097448270156911971766931474560237087962688344520160495536911293297196202569619317267093948919306345232571551478083992638570820975068041241938226350881489101314244294994452786633773974383680244111413778260354624395971973916662348301388093131256046051686280235840892519413722362849941991339963154127195582336416034205241225909138910928058663585758886417524471304100172744623407826313595519997449169900136514757034245662226394332646215722087731729123699331535107491254261321308581964857637561145356270589440743714816012936252848343436262983020385436333308128057077505523942016105335330862450790074552123165985996623481015907884227959644611328382745655963640651724145031924883934036385521195585628842848595654259807435352982458127338748240127581284812153281698643351347382975992225813524165645769201491486654813585328415518568383502041929504859154937258137449317760999332643089115281994031022987026194020388215118075486686445123315217076947491233088670029736692208555606893484307218996220159416803088793717569548257703401815948276504261411551915171024295542692654942854183922149297518569942785888615123911312487029868018963699075309105093207429332847210207401910993179352836194748532229309157341038851834679907066570101646649045733937096726770388559745095234194093163626018723601336828306694048502755474466910498475640215575219790173574060670457906883540668619256375961764778828494140979005001983876354363987880785463380409947405134371334731529200711955225725166487911697485958743988388438310504682581529679829995914054343032169940549206920451171195238346670936564183191915706737595571333852230773454609078322914718609391226371282290073067293056021660537049010967087703813917460215844336646550281985221047566558456576160915151381994261680499330012915604335853986699550610000146096865906522164356995094138502877179099745184746381391703801803799425312612172077956720074785309784034665464276813668083809036341113464879004889828439281718093676696724656150626454921224655105444978220546667841345586636505904965935257046393501250986965115325283420191497538147617814897777976779644890384832503279109993842401314395187339106383567633681417861995982946650284188152572851914630805352226614940489550938214535005825228942052102087562002319948775023254824226534890689105757709590868317116059054343048483333863798501894029786863264386630738894765862146897113837752262706982333409076998911633979417594961955263567828476477240933114850834990095471594950090594931455940423465838314342645196380913394543505183997245211953381705689906046085763892489786366928322654353953344657811463613973993476412697386017990136375345489715792548097801495698395231382457165480170281974499067533350933969466730925837734875249994376946680943237758237169030425757100395984282204202878482756307487528855324603529353915015194626969677204702106447610186390962239660470938628491771053212587419255831010271848311408604544690325203204637081317532131365872682735838129240665337260102141008443849806720875639963188773728241585506491356110229005274323103436932945371967429941846693520809148056915726914376945598875157733192957177646741933569885415237090325545891353007611370175017648351597804741826891685538804622019228450040504610068176997358193641704464100132611470903111130507974698301822369349722568202413553275236093473626750980734696993547479164844054749436784564197834433753885497877356875515094761029173830276925795313659066604032380389483591110817341631341680176311794930717821198075571066288043220526976439481732738796360451427892397048199480717348903041264036118169463982410726480356654188577409159894403315128406672703036036996429953431267767894984427513608403901061508713446087397527301917763629738546908260491563854034905110590996975263558306925192290363671239282488574109243272662107971175218295518878847396659063221247933866276512477732820511893195719547237822862577001202934494800086642734939533342136619073623988773785790799755357729464731315584721010125876933992982929192712791329765417423971092419087901344400228013446130058869093917123001235929705184373455349367094549561070609253611411383446163545630032991508149649884683477830500552293340551907513428312567690947636040191905818555843455694649931657605197107304111692290602153918168462463291547420866433281478626906403618444805804969858044224028566209613111176491949561017226790319565078564471122136041581028596699197424311975699653360594346022166902743540962099022390927967408074157099026798353813666684654034397595597225321845091808457940075341784783364952162296108889081011285754066850836398722229534659180415210280796898126302210729519392480048519468867902928925187435316697946368342972331862259359333054092789782957481206189098639286088471801489140998156728529379028128915698457106990185683368199120064190918772462033138133338117733029451982577246606661736784846178214546225099468959898981249115632298295256904176130070453923842952338974028217987172290820207029333567585810225566804663400385423309367123481437424938440971082597485627960864870386799780327876646691769983447319838703926669181596226349377500521474534754190564763707764661215313023215418431721634052818130034990219131256597309564406390017280876913284099022665774449806123805181067295339262089541408613898666355864863322016189600154650029550132547368339233542918829389159018184590886376597953703394856527724578317520012692478337118278765570106599934499116331838332058925086204024649646488327775010414814507667918646110873322737965333236966088874441269556100496488772460507619079114876121066088760911515689668476726091972460671308333170945415331092693889682327545271898177545527879774625292179841675373259025313147204657393874883339261869289120818868417242562450150816961874581837105242649296352382854314120434855839662184042684719433737049171823794378855930335168093610270080706376996806302171553617746977685422068648556416891634967640172586727655418906426482062448954754497853113662751311842081191381439982222870506430765910976528095662069474415630271382965243117960556281361149121766806266104531618645035334730899508976157621554320533262461818647375356558468062342127937914457603760140771750202235874052100882324474802581018474111441796277878157514897014080949009160932899715349174392438041976668188065062167835951511999736535170129361131205600950926750716123323737267982842504104633836172155981551319871871888755139716197739464808102996895968452130603410377452839293992753546952304353044592123428382669715771989650749063627952390611590333098020862455581371293836859642175373070417698961816461898885165749804048843594561464186080976985573581084526687216225045420489022648616264990934824186735869834913559482812341026580128830853841665683774950031868854236417778151115421550713702911461318643849252780673058573755192663449068680047377611752999216532424020917020661213852643627285746813494089017131641687849527813897559031603515750379905196991778262172452018083348453601221362542924128499248662891181564032583873746704288081908914335386808380699522955840138056110768169372483509644275162911865699518334317650573492555465594865026228482700406951930866891954638911932129984684781784657597347182493210940745845999765060464966908762840757936876401097051883349409389389486997910082647203723648880007899017336951471426901985302352946637306431825205037210342513630817584351288043198053890604810322844633119638849531651539325728444862085442331771883313155559707400160901674394435568566869658421297216625460712859406891008369557018367123643686408087796021006289257194167226090400235454365324619616016837322002172047008925209678055371922647281039798013586828560276546751309194752455652475681435352491584489296060924726476294939236874717293329396972723248004157038073582043720680568391767816796524984765364714565118015175759235361324795355548534128177628198030470338059999195782931469467029372705599896912023384477859094677992308566918977995936809585955712618075821070834169787337673856898989877942258932523597906609071516351008819257445353659437236547144260771249723897429825481326580618584236622335940998222800385532065742751042345510765190925191028501091610822921592706835104111144790500263884713950889442360159403437848001624528505678538880861955286170496275793079049229873743314158945463174139541092807967443232612528935342122537158457200124312748514632480981974327893978844195291928557348215179936299204285154828393050414650433804705381402285447632608651972788069581771500793359449697874640506758874561729326932676636036641774018763651386182109471871224588473107311581122854744016434836672632419802846948290955676559276144613668219163912965547600959503018428149056955475705175815032940176475189674442970058153077845885712953229580846212143413838553065764299751688540446247967718804634352190735445135646494435592711613596692078033535630551145110490369004307466260733083477707243925417211984433743350082760935706658231870482367110032787876587715677561650159065925849078112762581771407396577600791319526649652436831919169438375565357594300001545516064918610940913978546609108648521689605175398135042985473957913584199301110439604010336543870971368706119107206537138287100887105107934903757782584017023178821451624592314445646530356276649363458164232418055834396709222786503840606546508943124782685112829814245621209349204912744419556679992365244099384006734554023619451123221772087361744741600520347969386710060827604060108885174810846162389587090493897146840450713409455319142423508337982430887995985077074274359275823982867612350723131080668044074994453535508083437555021164547470809984755744941312290206742535897345231992281802616550552739202416224204953621931177572882033666877312326678069263430289335675150024108523870302392671856332851699985164910183511117139819740383387990728489996213227999440218577550639698263066137399544791385100177795584634458872733404017085261896639886802797237705111684596936784379167066801338712835571743316587658131819653188646767542511580930907189497594368095274796053178532479230931689951601629474414008625085634014587097737539549158304114747326534060469090188457977411621792504144383073849115162996722580476363114591085749699164282149872734926548167070127094978065164856616846470264266797393332629465126651057268998150010166808402239140165883708288917073614685069338625115291215929438011984360485963286509084843318969627132394497789292652805923066920999005740464080213426526955039575166940706570174157721162845288489079545980467173665598817151821773893831811360755353900274113272863965385923348706607247004475857097784437679439517205465309958347858091134446392650674542443668756650598436632970408642876118083748476132527606064079368314147941079227365559298238905247397595334282710758719077252163010101496602961174744022863764315072951621263594058616005024495777087576661560906922456587745123546831500205902575056389130288973802205731609077769433714729338417612920723689881654376082876811546989510773342118203755525651090899975350358968660717606251753450279068272228853735961360557884867341026955907238521216764926650848771790206332005732720737297636564291013762065650289619773642901990113092110937874607940213137568828716009967113122418440131577905619878547971672883020959595398713060654488361777022762756525608264386355225667482714161489284801462466016017241714201482863039052274700870864462815154223019512911370887474368126486780622780334493036611416142818357651450510386261867790221155572118511073433629434492089616443809586242724063577227505688914181874302920824677618919613645331921764978028327431031265120383661412325738397081920355547795287848095031767156990167239597166240824406264408722383834193733927352991060529155595121238152248446578671097519000081380745550120770949308562083325851429992658771382070463717750920183604152713306993264865755769467356291827035196160015535204118870941474118852478314594373575286859607003019849876555068215528057885324002341065582905734019329373251393490450946148867973498781250779191297354688992084536027119710062903346900333807855432331249817733719639362689746894896773342439157616083352526926289802482402687286788121410045415169224895949108885439761536355218166707526879813438949466823691143291296971813834653004340950638752436211218749483677987925514010791174179761270256242718831765701864930164524766219931243572245913740064662083421496175114635073120454234910428438345848100915447169611581874122429796650480292521870130330160686853321194609701500042963859922765335557592573126956929652479784019281198254762481541623597982952305290101317185054635193321596874164607023558714190395455190436362631584340129265035794375088694082883431205969828131126198111826312021758827407388586590924239585392332762724755705138725067464060835279947180569394189259128217373944647546863128542120573379343317617599088616805149762095663638338196593589102712756492743954856005268512725829603561224050288600420950677705607995854583396598237768076056323764467934819589834722977051227811283793031501603958570855596578535598919788198117613304938382772624405347482866405766687007177076176204506116051714835831058321558217972979357696071286068822231200971218434325614367207505852831742666244428295824780904551115006938695519573772553015460596846892972638575686737368903773240435420857097141654347794274187339993898071103883769506428768957317834967023981243975715107433740383992182573727504169156959811376090554898313690595232756861927027132759785500783530555947022734543321304385229828222390123088202772502289561947362587090544045592465386809594519340041566476217728128876816387172739576059783879088843980631914021131323432751979714080689287481101088450009983913405044528990985075237414913317976008194580931370395625810636496651737080081120362188616768393643922409304918100676960921463439868485533159336708944792019953918869415172285492055264848907607924530493778888208289326385230186491275858570446720955684096638743045697079565382407591155620917865154419105982215780833600785369703891713159723970775191195329710717696208663587590453964314619050325953204672506768339544844336009602742995648819137264068700211341129911123149127290158376978218475532450121194882362152155634341156814232011214626731061839779440109935656216018795742559830368675738995435219627698366271727557776270176732348272779339673438739499931174353135629410740005507430764061440739779884309046498169073095980251323542359231536745781040652567586738221660516082764661697568137322622057994650134035545321680322965294497497661988541111454729411643022758562311474310935428623255593110205989722667135901911475719628370394739760169258026057954078432923841422123814908313629622158991104566131309719234965348524538060652373715819066993530416717719765557257061613312827560763734691112484097352928903177864185107911764440493976972059447302068238579661950288176726566864409680098482995595515599595196047899626505024186002759642160955329036253894674276979295890689465670626847259515913700125748993315039721233723724399253511963534911362146675037523448609366016578725471192281675322556714419810282921665383695133076779374426894057772761822624580158110897798666701965208776663470055031232490995659576908730067972667170132223995381768152326532844307991335583377841062837725223702718179873891549639047927048389416978073836609901298307984032821431219050967661270464972370176010859072967871840337380125048730978979191386263221334701527436658579879937844346935554061798698535434327369539827799095857743338950383610466898201602545501054822326371843644193368683325343421438892055484413773752479370161876768396756185381479512489631727205960796826163806341152591231619497263524310533216358484213878029290082433277234081295052344132613694944356971151983111613723798725690189363789218802024376788074565379159914415659831430977792195695070992997361657406888980419552812481798284924929488869241699225971733978569342721572489432549435437118979975736262152895561939052276156032613934143104971992863939560431916545592098982918832161799427130309779157416752441576606820105006698500139311471689163079673265617200385243490004808497629086240489704840189692385354374340007450460455021513700982553443271592517364985090563617452783281645674679718194834329762694414535476682949197377368932552270980472453252783254510203618946286203603637532251066036110824926138580528675620370060746998814255641492977060119874609327279281435678739210402931779860073863522035238330992769534136018529761816647578929570353589491148780361205729090292331355076546865909909541952930485418538992392019887263615841200399171383126849625070337403646098139833836175040502631259382320097988383572565168470205079040986111187325294543416918760921716688092199380528537837796014420084422651958529356044938851453954711989624180801337114899454767475338639532593329085782463747357126133362987459382126482595733345194574624516549962564937399960659607709018718958576592431185125760111598105372167115350091651176325030573481900431619976853649433680412341712681771792794354717312894353614278071778833551411966175893588016269921716252751943686189197936234631473695441126574218556800330210867823128665268850790372843145894334216589191366971495871556301618375729407739380245061932300307944279013069941771193366545983764572246115693261640219019659285548619186844317243569382903143292141399202049472515167937515357331139642007706409035810143870959597570736291631966816769166397083636758592949626366935454576713232186986744393928497897107774667570240763470317719710167112638581621503357484755155851084757889127061685158897263149205743230753824016720758533653192651967821736233455505676891598926458693317832275862530508397644925918536310250276545195761512964135306712148316014262719545084938705917253809859247328282208417522868827533235577540630914749050278031765159794493676244918090525369701144845024340169851918737718581528247982902753368819843142296381982117089756180748958719796158568110830984402532911746075109231156948718367034215687204696094586802712574163968950499903704281297533389822192191323391546554873168254663290464611435476325007738227311589464697806143576850952660260459333563621802427725842706786946837736260312969565245564217514419908739448825690826149480955187422199259806190002874873119307035047164698170371797941742615508696479196501938922574969192207280685927706155079801593943031212970595332836165592813718666506746309393507520549468272715124451592613001540171215344331475724451117509165220403586183978300658191058551482227263945119253236526799056546045395794207549238607091814416643695040836578272912575897551484898528621185408380010284663028856448719854395123669298036223305735778214262449157704868891155294862294319752917062839118324622201562668414889250855693227624401504138155184806372163504435490050056949453507889479961318364066818433063663549438346959139982544315621276179205016618572296745047971046207378955136521956620903121923965189345873728711785170900878671894305728060797284646289362199448638293559440946728298656871246010620815801470359376148043380904960246968399243666038795340359453359477471016505251769544537498669491910935142537920858771041481417252498045210947934881243270954710584541865934830992932520911495967467567357806707532644025370053851595095851201232399570367334929456156183663928997951857167765568863249904196809060998280127242539637211421892193198767639790543544228360442958393541281502107103580196915526502871105774242197433934958000818220021191624315737828212271734583803254395971429893968424567451084806351240088007525814422335792560412804642144832330934856541261205545991187944902651241584689798079157731061077661824544282530906032282429585516823916595638783388367328899862572995477886684761440591671823195521741547000074819186489406955498060807286017993017786811344787027587968093275020232408689235070039083271063500917652582006651398931837519987408707452823145576923733867525094183207659614584574293498014492693229575433855373074058524629684190871267333915613454605080291004235263913243722639853384083998752699559174425678607667451716887880916885314692306259436526097405067205897460597380639470092410544698817712679882692757097867501508729575099811671158271694208672373549702494963450428558152272237092465399588139361605266514969131502019941741534734035423501602753564602712952172653071423268998104496565162245360148075531120128346901156089799524629211643964751455859871229241307076576630570344932415919868253649196299740952491821743886157386906232988636311657844086241032312806468901965109510351906436332801022616809503760906250926693583266312632369449388425076982023369848542633232641372734554604506211854213677211771133441878363057819042550566331466326312885974154817656913679567564975510112433457467609150063605922440481563125182838004631831533922152383804684628484163810646589256702765533361471303166892791747053065423284448285718925188852287178391657439749731079040654748876535214596336973874460176035894267381435876337580868695208799521452883916545988942963047303346861448333925507306345450430762317317320480300436317051198078022921803871690951099684794737086780865079702177765661262805742064799288696855782972133244421122634697207350857284905688195335969894057826117043154231562349221722513560148884619092003346126037594143837890473680456121513801531768611188286179429353404413236840313751568959925764037404281622115107220239734214858987206471966542164337437012432119901813682781347377733502412587684506802255406421734135681480703583603788600703810348992378228049153250747348661396386501912341451186797570583088668829426360176848168816794640112438647102011379969750833287376410723587950738035448822143199142772256832101641076366267261880653406369355815091098825945293689148837219351165139808358974918569539560411966207959982330057618763444562162492559965854415396987356775099298267221693658480837661781902282775463890440447064251413939588061365992913022421210902172251998229227458701644955895851850226888753349865327357703606718344875061578810826862771107466107418536589360445436678640871728415354872893803776019245570872918661848060911720116876854283451444848786294954851118409675723635150850613177337422452032406446835254652618239729265753250216753369954991236811963584063826960314788883555936953064698107203879943226471963931083681482070644549638300598808066870197073077937314857953675130716304017082273118661501450841840533502173201702422951049541942467618920499406523070621516384947590965354087908109256525235968121973966796723616210266950079120520662074152956685945962840257081230986398501181739120147125816358105975642028072775055637094613871459409952373542173243347060709093019945775839234911536708703149637401903003938236168837661468650015006240725591739071668318431179115753386313939620018828822829918590554462044264461960720461470161894147262805365516424146898056252979436765987142863834305621254320154789341830278020715436616894069884157137928188613002044680816437368078984739092450949957468214492795743100988950717413202118594793945565864245485674024693500472291666121001938840953544752606477093387247634754033425609142434553610273695758854938605979388879820741786775548050514468860730244468591489733180569610825806738107955696717365416517433754486555200723953692048329966426245063513346861133872080053067549289143019634189921009448421640217524286060716721474378568085189564066511276090002747918916035383972257002596957678864279649540866825966976524383674122821183449269997049672772369849438544578624332824654063654614021647786848776801639992305991353138642001314674004615247801571007098597511246064774101229825126710982508296843296293557318726745664245159301423509252315481904851435846017076801657380049488783662802174700814534058635837376009616999716285497050016388042910169720290787893078434536781433006352530414267976555323698500385459700032707621031628620061862750549987675605201429932098764424169137889356543445665265422909658180703674233329070312236681960515808924553803357170733362953858089256992802433110189736336405410147410809166468502103807091533498069400922637691739566898336477258220943691294907210242765140612239432789485044114554806545002375685984807204612279356320055683122590469723692203685542302419539669429504083828605366388376510072463750870607192800957855284808117894817692275774054172146384045735383965118709651783121221710143485718053099325502593838169771198997592500991286329154609465883169567624075048107596621026873931495487362929708236007998384640676142688153806681027266945867686308928365437448154575648464510396933550880812114021274715064505231756978326106688489632537450376180645085701542105157798554296362632833632226556989753486241888251706652182297712435691406467148662723700399385855755893088195504007232760779010060815584852291223481487523384655399101563985917909904456944516468547244955185517016675092303433445020346544391880357796915998785512115320868877121971662685650644433402864615543742722317520069251958328654776065580770010711514067018195142633161752273999830533283962068035378836257860004918000684291533863471752636161431330583293091530329526632583890293460418040332103337543875206932491059660022113845482585724354033932586162782746199071687099759841766771676795481626409772883321208944793171956019883598553142631138461040342239572250156427999612985479486316549095106248684213268535460569618029911555423583106982577370550751228993496104935449050219733904966544993023141334588138604753304856269086555168954975506363300868210004973985310695917988487940734198229757378538141850087777630498047710336657900601375927739844232217564962673221634885259274727021550015792242074809064682604619891484000800431895423740670505476130746141886596889926294996361314231188426928143696318253655990014518259985880732574516845142753688423947682003152719982383952465747320490891598145782803222966440739315866095827720379756253904532955976579993626322461768375589524257487430085148673709513444861720458940717581596322037090958473332455544944434506933707832894952728216349328737081686295106098617719859688827459578415009787978460326092244070269992317261180797891890184240687743676769920492289016486411213925672211794932055203075543987952602753121833127509081077496978435951353392600588958465173301088455086220822286251750598784818953970050806768434953819119041135414603239234436244469161493731094444847032244491726656063510384085525260339453406379264919795940085315716873671505167437899768428655619026655576126491532576176554496147522307132564225798283846501558877174928706535653371541667838502256700555537489555549086119852890407785763825037659670989198289095898993853765037591474546891747140449105223600010263953504266437514085472604729346944660786102255458671119474447707815524989997562444917218006879147658226201725502789603422201965968279509332646222184561797427908204279929680950346677827040371159692360808898529912715582584563436746362476876856655591601500612007366740759507105578018766943777088885008107236104241510750362107388674337433315235338416442852293990473136358855905763110128695475549687089074638702802880737328785575246374956156115760256795259566820371138156474274625428419626823442447635137617797711883341719769561520496972268673224442868643319113988311605938688831844649747173224430155901365708780086274824627330174719593103046668159498308275890990783700162413612765433864535597463673954670774519639157780569227468039820627034309419349042225677355551941926660724532421632421011309821740660516694497873554983923016138767999632816216869953695025142846348861089538937751300397583817665162827197419110465454115008403300531280609172877226450148395083150687257853085899180416795273905494783766498980485067591259097488593660244481166195680709565559149885656419379686247302442014294743736047836440581534010732875346013769811727980827295697980869383847836366265587643197199371974636382816851289737698732751443127206278806237072727377921114806698037106343766094697043450218887607933604175142703967472455475309513975326179297951364446679707506482282023206228241427227845807925717004846663715868857050825035138086396489627299277651233451451203392772901682800466144395172984961133795440262159867427496791478070931098523931885223337189525636879354006159727735525378393775431454152552251974453908256164334995210709346208445966820250295555977784008811727648485695009018527937933906069402039672243450618420524141800909460537725005430020588481406187856202440305703285468670424490143838407546932455648239906146159242800311939547006269398492137618776292347160871454369075975535592087693260227187965522496207394300872256364174216960738478278170363813779666508277727033931257550720291508850777046723774350872553144084279390993633854421860027617002202987307729859618403233395215077865131049985543831634093238121917024932353387183318985705636263558178162060607000930829292297683434171111152496379383700492145286261245263462658091685346816749304447092818305813176195564204755184106261502721812435497642701740964884850576249678493248228931246919838279809487359358562696811586664960882389850002687296512719593702687051431533604558964944235328504841152060339282307118794261717771540262630789634159145340938301060443967040830742721468403401710809114720327974028171507765706846444577819459108078435313078326458130661994207500135771948577724329823871554344977945561592934429535717136121968439639669066756854263405758210174492094273836465807819220206904950108172217538801553544050804012216441912630986991920187933694851630462161437566282384667335836807608001494451309934317690964812292922570960931259464398638804682628447832505112604851499955351906359742062924577430314385210820013348113826100479615859324285925847639619512451626974390004247823672995302137555638078479950941403752136410728209172117556642661100954922382018840403400960725607169952130038310517443040466379480421795090186824819274758559153537255206092560005859024542823004302013672371413801538336033200010539755229053225638269353850376591320005256006175749866935614667120672437272477319179085140022572448257758855081615223772837817453321587174946724011891297183085136101660598257468812913852073442671513254437335841123119153420317382224578513463018182714812819585029653459016136681852690260142277660080212389891356336175158449415386735480277667132867038365054311080659083007476058002238769413623025668984935559252801866602288784912713979133148698595721562187572989378319093713283878056758851631989950446105847577541949277010031454792669792746941564332719638284814187827364287008809039258182453652893582308206857552351682377089381956997747971209331974942823799269554317065495681716396875280925271576779337297823704762639849538056368129770151943516637172709197068367469519054273135010785058698930733889072166325923669753021536122076828423667520993678284212681663294665680714527279877966670530961581699116063184295630848094992349841785100950714306218270144797259161587313024147664436698943549863920260465264614730713574077279318698187962397316370299505518588371605042532942177834592288272906298545067479922615467005231090857060399603759270986708570352520037609629684320214852657899373682427652205543632998978549276696494281595776054797631221378551577064237509918644562141781258144823992816968010741477256799135806554229113747856925506542726625183736430275311766659684545762263215437048818154923258517807787405942750640606867151451727873571641719787348021948639452097903506416489770261800589451566772538353877367927372790275904331049294082093048809667371701245162399532105462315738409806857073045404553471675996788781558083276483509041759242966482003007600814019884195580287091360498634283910160952702057727295223118724585934581529819131990583581720120787735453272750051278921187328807904822104303927385204315391024792972664281660808265046585388403716252352836278532100831391003307708731846818284176070938834388064209797602150008991863312340380841779395585128610840876623902545485812863999308079506994472409018733312761726899255284465538638727287356317147199949585604434865844484296723178882874795847390647235676829443241832059214334559248430012008756494694229963245403359169461435088521444696247736121751925250975126177524789547638577453580869169413065791779447542241684808472806697225768814177866934448122155890031228280622394120647395799122751275206618360075358399584073251711055566114454347076183360495529281934714534941101782730574628948123089991873809582666668734692053691196585236701797728619430027203765023844368053953499466371784207388075041576187199468423130544712795281875902712731104774581432921758352138648586371650249934700602425921929815010205303574901710731920631495259799499312935591755484690821391011219992003403449589580613520741412059890285933529227337303355071605585312790582179406981614985998924531746675341013177949513786482505565488006585848313828245947340029066501745492362734977872870599332961844464601524191656762558049115033337758497817699133983898369828792264421667524700538648211711190837860738105017359370732788536270563727074965199978484802154505187148050287112587035581412091245640484381393704763272629056363378644467117109555266438988528817224337422740946741112845609694813484000709070353653858008315065784459547950477547712217707365032916424583632464529487569894774540148018174944899992448227122865996293786555383044330168726720047312817136623876138161872693356914589972785382086908818470151578268742470284326997891364481000763149878815292834722534588122104528836605346813355062930225537846874074654015014208923846830428583547614919253481793843798324763824222403159318254280080124689722489502641072484438181902676501847250665714364974111991715944830077440428869314764839633402330758471079545760162139714449169465076126289422837739520033065865040973763815906004911164659873627156307036088050365217122194197381433773122371148605809786563455810886633025434114062327228373092092344381152450740064607425522692121244843879384075845352650846971491222980621848034283547661959151911042642446159203383302793556025119831544517513939386627467585948567982659459046265921378483808982875050458318995950289393349317328685666723990740244726414981973437422211453239196807055288401014201597950473029594596956170728197203328758582934447386036666578380217709327647838436762339868966956760483057855625947036825420065133003521954413614121068728541559132257522836042876755498043203202299027541796688705885574782292154978197762252863003320414286631395474330207610250945227755087086559136006106633380975417195756191051748383211658471437663627477889090612359718499992189489749671984920828328864745202991876363684268366911834024852348598097385202875461205977902686342511824516338325309357719072585470556960444016578566900035443624476767306642529620064376027689334139931632813393529940907482297548715110663260898651594382433110247274896399863554247926607578003491721536088298457188420240856916828816424480035826178370615605271544901647197733486166612206698403636123821347202756414934710678819697459988012921649914642017906094941373953630146905775529966040418456527573207722008316768464343970030634468118414129456211808729133510957368024332165865463734226512241470851081728495123086639127870552102407048568612149450896772346316190094120165790366388821716187559492296557449826029881247547526700997531812505138224565240740962257290145576838872586298605936665752095163747145925945316847328501868581219041997134537017058580667391676115222533762470495075892616222024560815664076172724764723698251841497570328526358625472999364392403118460875845981009287510596211873327020409202111504210382362142770897193595017436487094909148125806548476994852638022232304913131631922074366523942719934940161911336579415859170269149049473454525985095213440327592804123678154856746180026312171132524326292002046791497716347833327049286821162584814623487410764511811856763762384768403453868822046667784710632132796437222472981268673168799273783999817587990949374958167875860285642055526920094515543653510024909776038201898960523035607747357511715854465407012068324328816366051190035950750701310381857917836236901017533180584513390119981959343389092954187846884223914729774460457637780831762203780032677981247956309367145501645121163223938545882493034069621799946773800749988196001025869450293181587691107130766395640484555540892760899851766466819357015465952235898761137821321905750071225351273040997771456769578500516485179085757375731802330827772931000733875917900890087105638394786254808880614582615378936845796642026724592013628884689522915942053097268123602702261842280463502920619908254707121783368389528195809063766731511006243306352289065602251837728975697305710910577710316897578841133767879911323339910018721094242507162956069643014750814004239593989101163612053102994685719476793074770841078589913089914305454451726268996415301414802227124257403647975552656962737685141217475789486609490079149493504017388605539404572565916620301174657657669268332062376620659150987272279580520709608548942266906955588977415911065537001079118731874091025037294092673933411860840522543177957252461353124199210058608799477544574546248053181279825255647286927968693996130695202634332703484492722266543642401391891254638929933885077228209251354187731956594929976051354168281744672425325909400942853935774873661692400164255409754983800985994249009481933353231062278319187722704526572527969834342698883327712886679542517160297168550455038819302427320937407132850978142408692576844814102973855282573400031980696673441768992787663631553033547961436091316336375293372081063607450596131144665252499321086434464307973933976008519386085922109416279605708730832295237636967097947005285602728881844651218026548016279836083867159251248306557639365584549083156182927521602565734426916879563174776931897078146311526540733923042765240718839528356015438216894707878557279120896119481437053675674282207475454768195885750792090737316035836740673383872998439566395235958258084285901150725053585359320947857000403490960570765272959746839195627965715850772003379809776481291795581271976901856637858006871444255147820441585915301364184640893438349234434002188199748850819832580393264779582567110344700457047926063455434941141162157248921533374377763749108911153511374485998417011448947767317926354503170748102416846138709558926499368327539292169656975726169728944037986490375057070724805116663677540709335782792176876427859870971278892524468606633414883707174712759105911192894818803869215011202882215145672693538103969236766290095343673823700289314626487636853916062837761974138143712511093833258374783256142107970797610952824684888724442040666450331533610536159025197391205320947742504903482685776984387760290058597358424098291502109573069467334712743107047635090157611284832769263503334202572658520512713520502424079723678998115993873337064909323547947777667266660296245780259471161567642878530188937870775541864524206716716859411285683669700698259180121290409941244923795308614509021627482885270446701668561715263855978281170893046358240263683565645722652307284033762611766299715011124270388713493917845581831130627285167055311760404175658630634046462559303883718398834247106147661308602918881428240709645525930055794367264346841006599477658955165658509812842203280049119377256304469865833776449790794505694350523377781085191180809981773209135181905212742037690139638527500069103615760503594910015204111349519568644340095819115711780221325860032182890048033126537240469424358584435903502483165871887731494663093058901298146422146628864270089950476877582792895963801583034837333294503747270378691848735954825571888086434635066916879656296965468113546950592574815163947346351104680688631643299035742607489379318195202045648514815574360425179667373771089006198832868719894299608126460151636358325528988889244211002045876778375264038467469649069557082160193333417238305188885887049093706733539990190470333526446358575593505920403401166937854952771066665806500979090983994178391105427125638408484569390513242412479473087308314892986034968046870830893024613189953271527445579661527264779359363893339034428268487796066954886677563917902087141341733856168204979403451219979865584842933160684276054789682564770672725325908283729348083803539744466489698414136111786339042819558636599544715121687639231372173827616458092706377082644618360819151114174581042590167544341253963972712342402211879280386989226745731485109397853837898319754235661123364069244426213460844433348979290724865426371376048531786787197718511944113802946021158785523677255823651271904173070916917905414072379717890424768894744887655624114111253795845701020962880032092105252320946926779638342047560673886613027261436278502608088517695906028445180287654220535695114649849126667854205689877833343201626567681611341882519108110811769885665574183115927152770917510626198636556346139698634475945878492243991215255213106977406837070130286244068488840168455383672694077798370708860482623536951642292381876352055273895546993194746917615822029647971421144741820805928681784020293292410515075947681564819175686684781889765242528270824506927288567742562490774130198500164999578950164938673257625843669571026460318273941824247586347143959080876447298119028241241183713044499422480129593101091028363473379720715733880514232055825947911675920933690361949225816510465583546603603385153149716988022438320577815636419699479929928466666596933052930509314539826737634879833166846052087646045577213535318117097097764364611389987567352325154472051990366760185523868834387232691615453715007427173201499285117536594667634144796366102921803195804969687236916073216257330072205359831069199833758394149398828986286169137775428444283382017451010480803540641296565607525029555491240243185769765377197391605853510428520114949456275369582501316212423934848092859537926315196174210348365742054013513601760324227441765054348652004534737527969459778404252496399603946116335517143844228539646367609890079302461185407122993876476849062015918851734168296032186192759091283742835494403428762990691064996474787832735468090645393224472677368327225346629344732182884143147705957708539911781200368505274138571099450804185286821916986650614976949860355976315865017380573067151608627577630891368012465993674382054993698383958141607637231352495672133698726558143298509095267333784355199836433620041178196462687374059114619103793030619668648633187086628248317604197951243224130376553068039417191823923394263640610305326235022873049790659491489111295409043596342624745476257976776048459427971563301708231814001148367352253424155731404976713444529540714573473476988595236996724521714181633787102809413882430619992130425851560960535874703133886961843560728302766871804903219328734798954766387483524347522324804655002772902138140510253517784840368916687747738457220867782822926362908183516171753531914900055415416879369157371668493698570145668934694978935328390459208616413586332635657677959052467255978461251706776093750187465134253846073641313503880007122801056530872207392119887389063050527010547221592433483644618763574297787143729642277186558510112071171148562709135169996742167323126350942516017391423366220192685557052006826869734638281168093481052895576650631139993675494698139725366764214343437329184532507999028425568615427417693532631577310611929012779192886201314821689458664311262696520791974113084388695987088067035693258150083158650757467632675933897803036967865152770651372708920590552009804908132718180510685926562214985328769362482062181956450215698900497188367468962622587607089458654861063382063275496376523138948145715542378477205852815865658791116616030706048211007209472411590033838876014498542039787346922640157090596828492320530475862569408943801037468825910085801096917132321685983029662478405332656407364598070071267863544639513098466236844078403850565582623248586478095368720778126459691417029153825698666249008637966349621589195151110948986432491896578278342798956414560961599990753455977471351616130275100100201625062405312757792303359082341113657629804896976050597466605358056654606741947851860606141736344244189062034473866298081408256796842347000176482341189428401157485845965177277427863335828678351957597126274328936572683676364835964724180549023829475428075007850278186821160937749192892104742065970153070184548509021230478253829701389867416393992285264818894959306711775508031807179822149030777291827018435596558512964768655622787541040194445815609209421036727960448875714391190180545399520258068037077787335884612538742327958105845062954730728057921895605391986673259990954821075193204214708000596681621476259250771587974758919437378379141913334604159425433572324131105726392978964080723800286120682110543221355553601486022442196693202775414015966845374650471802269579626452448591852451360425372492541443068098796710553828200746679488183419149094667233950564097005521067350109658268585511094333698493681085109788233474385443861678855050008964650567760298027136878213739913695298615771119038479965884577480859175412107628621797649027809483933771277765989814137125310658978938124853966130457202749629032298391475842568777565708783877358308442617799302153843743936034539173574864997161331868615117704535316107033215430871725796903504176970449167273434218998734692199027002861133597767738193481544661188195439099872938768607204637675636204728252657551764198601223402170423432518150097484958253892185600459766423696404772816996684499471105113798983641975527308105273541926655063568684449580199104192281132158298022430084056589355071197025689376522288363991331772240817200905365400606992494602335579265889551353665258243753716513101759485004060777297069776836552771352408638406724832448122472275110166780858247687575765639769531810116621306591772835887917359745776276026460146723921904101798810021894841424994043894862216323863880077838246961059831102949788848600633414890866647831141227077251394743110799888421057583207610872224380283146221163218009164604961308240385588282948881671320117979055782362557851831715966799614117586427444778842304681399181693354625810190351979298267642994211837703431229328464548784755226900358990684540313082296730246507825585792265478197007796932406768043312716910624325230850467527736515767553313595341459955336668410921189467953397944721718369691831388013617054465759615716674820330164898092103622714126137031148677330162046723064224917265797449065351730339960617883471030010487655651404833992332618835755353098588298363383401519886852751537850758136825104438541818124530877672018085590999212978367321792833097163187171289188000121935239682792092279701581105171785195049979821189238905018698349235151657896522941796124377900975246482581752257163451241690255145718522602897517328634001435780997258720532895637689393948608141427449761297519861767729775315017919258126382583305592482918103320417089171414640363330202931468003739310452997508031097403799414526034375650009343932348833458535168567982282802433926009074152697557624849964793165947158208204014702257019214242760487469587541348771071048621260850336868864429024671952860724199485648885459810631947329834423340999737593554714199602472969492124689388664814879297262366969655744132638970066529974613996476262158079089352067635107599324638961688862859692281703938764853658862354746773883926992664831178036315041369787677168169554417055167996011711514175498200726411277557142938600887301111451681571343739742651085822142195874178332299145418067900485572601954288988758810045060498106615065923494420607076766554538859132491091365770740304884214525568083470069009744364207897908960482285026424567726421761052905046735039246624897463832209008480242106687316827819510796639374253015048527113088371255933715553564516118102052088160729551399897185370159792446481771446893605748457107739656102271517739573052809300960911781027319804937399743021916029491232618154712354219681221550032169646914639998026816219411446440498236004648925262794524580386106445441762690638699246532359830341979836441279474355119227263523054042127019465572577017213889711228613756383751760167484559039978548373277256615294276221348648609948965416536452983517466741931247934272289987727880497379615933626197539318267997731250202988524832278157263734473127644623193790618928121931899425260047206029030031211427816094847359337981439622822647803822858025742728874777445868969381188669240112665363795266441013015045520729549075218480388501551327642134391496142434814226411192275202509049332856308906697663917049760167652480740706545447047471601883602014791406740699893416370340192588059383634457301298377622742729443331701991396695622804434495765420880784413867244580474443078910722082503624908213807843242556410654063797178794875759376219304001081887345871685318383235772731681127411169084956603464065539851800361941484029886175429333446287150466096378574805687856165520227286654020646307623018737658377336386648834526843605356944519950054693395550640617091522854092527719236992469280301778129787530287010325115785438761112899055784083329351524880538501903887202794032877193151177956710067991143202101320142156805530856266575691297667888426489074506627550810675909200278859892499824055109261025914941212825573813384985781156283184529380308924461860588143149367047983107303750778172800289234162504696230670630857889701773612651232029652271520809794631926407576289873558871050246856117043948746713686518104327228185367855199601826375125630250266756607941898580125067644378191382487997659382836833157016912274189303128352788835596945910410199079139183016362097101291733623990404991405852944978428007307313863796067725511981156932433774237358754657277339114411069449900693813896349936736445739293413026207681507102612342370516604534478685454644848018040543801901710933625441553372430043434297652833711894475974016752083554688646425709255603204544433737035800659415304441411554193584356222947121149965907703525103438568435852573987862359911432017548615162239654757180941609818806391043610799883194428391280860807534489587957706120630111572049339806665421881972778045421551463355151093452243113580103990339589939310242108268014272584534255853752152720787505293491836329661364468450252131006125327098114466173892129029490751021375715120369056175248196533783206818179158425385413081152141806162906415963020359627108383302858548334391165841536596308586644472224209477555129849271566656711535264837670940584293756514068966590155218782819924926841364715659591574908553560099589346580812454283293042603032206690536936776577011848401397004815610231345074063906459098957604418172230530621453795885552914374468447170682008004689218367570268245069524752175277950051794582249442155033070373923690429156488879969460307345684261408949456829676281835252192719762381305193173499660840175809334467505353907713321723423116223527292134379888376528721887928190188066789215942015936854303379187200683829983478853272155529767403256052223868025416190094584634275024323093140459609068877483137974636473535226971133463179630839006952786892688209093024895799171441031791846113984058383613551572795541677932411837158565385288115534549053829322958410599834088287583719583044420217136960395595834119369784424240169263990321834767514399988520647699709583948314633736356599808810351920482353855661814512713590999571439063104714832165637059832624787979212475571130679963508772641272118091475714695958259754410459645017041601743909674660928147796766726810753086039051733028979879958537072030748825498640417662389814968922854506087784867444532626233623372240036036685490714160043176114371184391779353993897727122004841341943413808855729916401248573110276970444358441913681090696884382470378575726525933759759261059921281083811974057119211761375011769223435241461383424292574456785500713779425514840074704595801868521952565517551505244797336491341789480326507794509651179158914309721240658946526959310551307850745763278424070130580961833605670546247041722447510100119204748056655269571685010617666607586721197567476444904502522193540990463171897397718109333600017505805780737426100141425805972844694063666047573687132625218155084967973603529874358916380873877913559456813301591865401730231324797542122904411753276890908023448037617659602964540546541877987355190463502763702317314833132662447418088617814707512709623774148531961590942476548065358185693974492642358138413537194478043418264046468874349828762649878989896475764075338035189691521766720561467402671828089893451523963694264943111289118347055217213893275787262943521667956864850701346570284019046271235026843501229100546770088640567256542927624855153868744953068044970373756374905394339078101527204614882872669394266018896571984760871092638910935423632744658994765116195140948117826582171665836269987959469117230606751075990245426296305618093875253938403732937722867078816971371375875098335769235546531890931947634583754962657793112867017085400580194039805953717374471829003827962075031153607875829560283054989651907311740884127530939692254478470529288815293352449408616018235326892449891104822964771093049381024938871779416922341680694591686058191974761737189491859350215656813673115245744983598719811525981989983519590618907910560818825622563393485996377431706949830477154178107292135554643609768889455681302802556622557515187218913232371442114661213510366702395378776625827657600857903782946705258244553164937187924075962146398129327803597428533307013204937677858740129032309327515103320893099084452090991218815558260187688238028401842695332353777227347444528848010562597077003967548545520473166276809517499858373348877241761031058077243715991425919086224380390191809866454140178786673540058291509872897723483430504976962048401624752857161950434938930019821101138497726058664481043085569871136410684551830155266285145328552534588851231629446917387784116231692610062680958952716922948093948903804928203356666372015228125291843519475874798105030481022885106996747760423367371019452285629488921339047597330718614404959587514004368550991431561245076500989809724841599965278248131814546934527609588458341226926350888484623775287835589531424341835129201542621383512521172395690809634865501546333207680570429529627795666929287703871751789928037409180852641838629718525104723038158137129291301890808192533630486423796919804437667535968027863276597488239363125575059360470650825216487246330530419253643078371478993642511708997875845960593822795371674033360526876389315884573550793192935259604626747037319953622660928888767878560437912346960244044100073897708266701168172341528350823195566494272245969178116552018267163894568214090883992633122215900568029558781060070498707703913169582486552696863630489163929072366642527226117877530983594347513797081838132533048975995330438659706111553702321504022480418360151732422548256301020659017225042244389202930230520697773894310325761341374973404537771559792358378280944242761012217483813219511973567186695387430668125957432110333618179024129272650512901367190223191399600007081657432098242142577225526500226174110352047554242142553362831240620602202780246674439256793461767815487250164754606830944686608882651596292951261937906940205902588786366682537323587903139638779691332201704480624271471964335426557762617984076021411875909619517378467299428968329592594547603933381222721762421084196200649908116298484507867501291057987817218843939670974326582593448180908541436056282919398207261188604675398977118515720901927549685484723372339945408295463038440974799971641181496087470631848199533455529092783668916686686831971795487485955495397141814795587286229440489052672738265649405826273820154849180119787488449435159440161035110191586912083678648035056915486308544700084650875641056799413267354927139077050850014514051857277241629030234645239261280158060244586508442809309970121826981673684514478036532305248933834136950407962994467365450229321694284490498831767262763688817865078029173054140552521184023665620094603310914620680407023051683012629321076331815749228996784321749537056539960749587798495028199104768595884474429905336971555162201775771990766825336449709373950589016498092334304628966858315485454816317731594117144071252383540364886584744194590508019767157679371347960375463781628663484644460307659222404780989023562294799119073535367957705918503963407461826853279667845415185524348436650042383349802071349443064431820090949927391587628421482886868660309864540065374148819601922734694726949780652561163547158071965772182876237251501130108863986785683167930656576839267586062079162278065117985325255256162147604652644044116284431953475581960675460479171267383364823961884258336461471167561085376234501736175477553582156392395282431815196004701057939803047602337719866839246662388116195311624749946989458824842618587832061631174947888139645083839286473884511972837385468342936420515382369473261015136544686842192535363267732208415546628677551779443869479052754950353413957250343829473303137135436533665459382402131821114717407131715561686976258278720355778331995207939037676896535358822334935297095243819559335047916910178163722483461740205285405595583624482171586804851373080244638742851253378058952624126813153746543700224232312928737627501872195275003794747472482494219289456722645803446034718652746525045821382767527199519243165580169101899808979362578751648134925023326993815203593521713323066944520740568599334831519411399420998484643931201030448127518944712395551357629820787739544933414165341046375423949398820557027241849030614222368568513126650937541106569834467177020542578058864469558020715425845923499145817075113631192355520397512946117522049389399977275695033906419129637387460545639641095598283405376508565211138772523886704841878785786656372855078151927143282601597259299609983451863990870378448207260073736595199173942056359540831960191515367185076809359934680170294860348161485408899967175763791578005449847050316607960834567528437875830309130842795539474854521665544097401911768394418623637053923668760871007922642401856609815329674087066715074553444704527274069522610446218056674723346321016675671085391023263354206833553903645900076442872486393603180251588298573784416451130808983675103526981026491265154891704009123172282431647815452440349666298730265245873499090013379131529169909763649853909830144114229001605884277621797344891860668603273572174297483192633928799698527629787194302414625022859167031050414789421613780619597964898494503805418763804686759824930185461290604278948668284461021400045773785574417854335527029463388261698975326478228628190890771877572989031983068086232968784895183368485378837990084467497828189126471838419335927884012536955778320426930424207666340126079850391026301812709080160641796625914347023580610435927618396587993111693266156258055882780601410920974764394533648708735692166682178594419894903122065105073752044376006979234723241039942127814937834387889964504052314906968326471198605321559708088581785373916914241524132959436796081361672253355562056567676144851645375285226892811291917611421996170956140465289070883753943755545744584989504601521241074104547102408605674624813763199679612431470343743351826777896862686086697522146064633418961381903739809875212242694191877713193321701762510052390144454517015779680051202827974004319215988348251054046502565268052813012158479845966160782262638950255415901078446775155844617820785937487948162723089848476003568349309243592667122058859775162606841822268391541756853454216080102841721257088353095911665848319110882663957584427725345076130904011119156490325765481529413519654760235333638515317703518386235876763094581854306331325540683220213802191810701275561415313206282945831926845751759055264820859609052838337616583502988143721059049998865555468259369946386566527688871893594332454599463612931696414668070474607002470370394213932320622574336394189756098766212550374374778148946744930708465508914053584138766448088310025447105619440324622153105498141727478564430540867781991891251170972330172198604370324188917359834389098646404495392277556390503918993857931136670888996128071498431822510246098608682911806507163619458446174967118203997077825233038975874603957577498186095580248769096568675468528169067920052999569145071403965535150988556423140530992212379402528275879736072446986383358617144496329049899717361499534992276866640922213212647790481699977394183929456673003582375997387647236874392398538670444394095383593760697930353220114445329448258582637074028090328724610557869762012889388376567178526408362407277314598685839668146471782398204656062809761039970410526828384155198384384060498143684772500514669701351992237769443416515186137988295978204907643156375473150990754896074655214075019271130195568383932179108947527058323632825154476513702606450053767385428332622992410722877445291117304370390576750628429604776120914160991614305728761242030670223104687796016632251365085600771716124630294236845557943859890638532277321115562382271855821940153322670316547058159335138692620641697254570473036971097151111056282764825436458485555284006612013673229642465169641711948325072304824938092200277138691540730798641124220470673077266510742972328377011239928214362685752595714406261585980920743035595952040931321340832063806736196348639507909202988857596236001624286384775948029476768206787268630503330993576768900774789732748226357607335211416012826944653071983727288185637443092617132110188577152608620551232646303904120945804094147842646696755261265227696537767592842883689771504331426574198942101074205759742339655041800269651053138001108172575372246006242459889193098690142244488742155794078169296091589232080161342502139774444227565541256700075743662091955953778622615853146185935357157857719357870064746749049149660677761465722909957016312398529571429924524337045979344407379171930461186604146801928765957064251458453096331199556791820324482390999589150812386338012529551719103407566862389947986175124940951181328406414470364128429412295308532459770113725901621922060150411266329234792833504759140982121966430612051963923296588760549239293369841534878279174750548080428605914544850076034391099530252616849206391019234984989417727093987073649878680931398819421462061287317847015526887850949357395530150381473412809351710380052223497714740383986693156556585824694785147910454641030840784251575485054037992894274036443076125194913724454808816545923255475391934558418771509941280432898671745124861849254833338451146193448011213706557095935238882170261948719852043701644978804617242475516957349107367731129702041303262530707181644291613463476711906320723285767678271695795354169506503139425536619997939746686412285960382130671354417779318081993416771213320486053901304048711251202431752080314577640047278698858523467411239702048310156087502978794619667863193615520035960067999878247712201546712737530833098385842353329325683912088262819201539819264157163293953515629013526569774348750709694797697576960003461385595555759879204782824133893334230213308831688580343600421044597258255074037917127813095026289789604061252236329335112092240375909444824933154802887243596582390605876892068526086484239332023011218133666934192048184228353929258641487003975758272096842053319690836040940844984320392659768326303263272785523201964138414484217863206724776176228460534653691054539581308096675696518671223645470969083784594727831216895012779442342864495147481711976109445427865381994870869964732245107280803725756474551341606973294844132944639125286970892873449484668081750210769643627964597988290734808903438461497934731724756597805754436635660371757756635433457909669525006948284016373784714830324749188719196251409506089739807064822030720666105267411954222548864434370738432955859262897981323734991665944763615201029111565703611781426090317490949328458660912218365243195496980036161799252559114837853320442959853480004067041673871160502829909382832234513712989183301124447558415920971109152093645405047361108178127171739867054066748394858733793446197495988386665559056541595135737841337742564542028831966844561348879085783264589357586427144329542101988334435383101889560679046008173656456402576949264799795403690409054479416583505372918632397545785368528940999850716883216831253045920058237048239170239757711020908521555260433971354394782606251543289976006299126916880675765087048285995661555345508392450740073714438028468748019444294321076965272231809722080097087759100353379951633817477747790498314926252908784541344765180146596903828044841252016940529087307420814400197592102068576531215266023529728959925226695532079118010101132856678615100074607014956743184839840405674728664755354365022069678784919799463717149233716049319390514524774452991251012714193638319985162115284967726965655033380196416180484468247929228053658630660182840724814880867594637815507218861819891072244157270699754537223102171451856905321540247904251886277131336151213380450729092433594093853446821724009408430079382682555450656229849139587956834831211969227180165461660602846101598712708256399236249688562355336507042739568924140333737657641719045447078575213296087158208139653911332622907567700890670018591880156271364557644834100186247103767045101744679968667170666561533600236981313481900414265493486554504248458099670148810980234749792614165555722206340431217495568147012854352889781975250193711222897852209868950643131517132920170849534389935451054816725931972202789525335740224394436965671496535887641707541774398058986796321679897892515752743424384086847403930705197039972746967103183162057787089672272682945852953096010154925852102519540643221483007653865243092240659359707565214556442084387588318643589212088775476932470407425467935863319461030325200088163540108332595125424536828487138614923446462056286120821929009069233178498605151260378017767907980721757226253758439562447801186768425659486455721962499042962209906390956119172946193877024868041126243502566977441215162280913018304843490521535348498523470143045059385161287801525159713267257038515313325076146419842203779960167554092114851419760842628474981678922990992902006562672245626551168180574701978629505403461406981162170545461160416053546297186958035101609351400337696802234331609741055440971633073092568284271090604190510784585389814837673688822926548753602705382967673249261662353351535259875936126510097133637901184382792432117088446452080163613581029354360789383895434540913145084355893755430639527584358050545686153104126860908286436577365833229086908689334820796200168171184337357846714587017197217791899371603193751039613693046604115743796714995429534693936932867243427283345215944707460297188848935538012515075997672974493356458226122718518395958618886795845932431880332636776709964052972765659961268705382430530829920935364747830023655389961663686306863614778579984584932738445466989477252182407542876009804855615114947327157145282738457416965693637639173472863945237368999502607291660848504550883170688866550273096518739383277089859989291815327915857356548264379446888457965892159369698723338816179355186502051593516778874366409996752143722798980901464094458962808400695066610729040816500181978598119829411294918695607988367422494580741009906003476165174156437704598315193269638106352148377425345633358779576789819619164721064547839381748199449100468967052477204143233482680953740078415358008856119703331985157949897525086954315749937795353949814207524915197872119341256585809035028193982560022416529528525586486408125035492649501483484213979693152056796584518493271006079000835705667780300161506422505734740190252002779820698106447067843193506548009641240570035957378359321954190227932664951005968699119431812414779179467847022979399236481389105069792502150761358139465020187939592914169570429099633972268984897577952694989390681446293813247708307712278033480511204711122738903002424036050156120293685309665022220474681465008905936766501316869863979790839749230034356178381691948936826549529361197862695441592148900702065595815057861530877195803572145321050733397491299176192145797928833991802754029399921351695020095239255942689387044305514824954154676371225724215407899000935079354238194417698901314200519306465441053292628490403986115904850347733177202672749891453443762819845225682109566346343815142584144896615334196052882913549967847338954551490609146448615259241946535256044655355550177263353156935952525216004470968406180151039273004663683173679826601335976771640271459093145552334435607034781251801777404226297003109756340520698036519877074438362757518001355204835460990120298334658588589390345996034512107927166972578527521853278784030600413211823918228473328534062215578584696170886549036300440957104458591377250578051021699085768332114950871612806143354792274480790721110047979596806906956401179147978541619555296407230148510510311699790343825993837812972772454994222931072287131986745640277312869092705729956769155454611772758945271355191449439118703776333197730571294762889034564938592912497486974024399829276176860727679522488996860411172004379434283348730028379347358753900742910272315629600247047628305644090066794862265122077621054398247250961656821422723141927719564038900287198288660419918582706219252530659280683996534721118913666204424634512827742677709973133086244170336478885502237149178661827836073660164287082347391651261102724884335056900115984008789830134944879375013012208539051528271090755471226287297141512564580882638010568860202407329798680296620640544812255662987331893009403187333481877422642699618946430791579803353080372916229476227854988224800470399258728043880997198778460729930668320675839075152044709777719819632220905731413783885131286860088038074697117545358122955683853286063148116920183213161233244822011951741092229308346281070694703414915537520446930221414819467629887175165203011856453756891901420145155226408707125547438571474721463652939390410315524353754452284707986294753086411971897635818870418516211643986709073559591838551371837818016893144471010147177804182901173983198577422672032581058104567914632446950834503905053541035170796414088607867625833152175154600259641286493765830850987609170744130190341419032825332636826456223551841663121553816389133442620648229955858309985539294885378220591634331876544905897414318740768831092684803612623078511691322660354330283024495923695935288900126614853060279168241299768384294045190957622751781032916764767975822477325005163028929377904632594645963253396102611412770780360432336180453923789378939072725140607973391451400914362447453093976100810552751858088086404278760925657469023914866284539777355912862642671345778095348093062234241165956571746597344452771692393077490617970150754489923147931579864613573663025715656594732533873290033855747733174100651630638085112846718606643205056876789919911622305331962509568971059872766810649401017428251425206017476352793359189350454758807675648830257078664103135995757128043588200597775772714744505195321046339062601575424789988964650018583728521628705961329459946287888205640309730982342722277716547220958320858554533257225366836127217519246602471976734104258697594585433573813427929642498222263348103009184326995931145343389148606647417502405263813425302298735649090627873914191892229866194048590133025064320038266591391243423381989777523989874175645645061036330239500113679665904409972933059849146172204692921122262969835746367916070542483105968294942115246573450158352082299956656870274864175592405579709100346771643994113287300025305744714370057209685248781185204627584353675279306430374280054920367640433395486891517398715175072351911914799697477443905751884003716897047777608093342414997434224357054542244442394733343119941010157861131971878744944366133994718149872321672060735494321952500752921675549447022025508163064265758220511278928008975238831909732953667971622612790561126135853422241606461103299636442447643375044594718143320174864957861449929875375326646838124605915239871828291240820691389402085234558792049471325487600530575582199970877750276459061815926421947887539113931670520264674472221609389501096356827704611499649787175069345457536822831103569052907897927592553588818573247721684842111457684837179351623189132286450208981014674841891935607720875373152056554774286404670831058961246881338714379873082910739762451074322756982858479350916592990783480378504969990611760170294914122019080144400503020918838722128309397790002973720583673460755861773188386239432830413114243513178600624118697242475573610023479321533387329703773849056082780118887439411388832819627813805367742360110921223832380166903422382840609436573666199473693545181584955901945315577601994609919071225988199992351823239818884862011002562398459842152403072778566136503539593595318377806175634628075963807417651348835608442056586852865307161466165277159385554309899780235807474586376340518886329634954412749707705951736414388489944220156329660617878863134546443309002521348136012406490332144556687036455322188212878194346283481886021923945843326051170576776765124958133466049730908477178355804486080078702131422771373395458242741894097741090045710126447914318180706082263658301517000786734945071049169926318353916134171073923316340969266764106382572442029275893150362167743019352341171006354438737201915185043659087798361380358757395110187250673230731710021319946414271228180481945565821431397694546079586623010406181152694059507103027901005355267003290858857570769688548396819274271155284008322311716456521700742302990601573383343761248813791898833180147941869922644285952028161471047664822457033435870237158454632491057845054024394800865350588955165375082590963519744304955737137074377846481610488881805785999674390029085518503905343042352414853867164785142484879070670613544038653877385154685234570295822253943627045991482159477857790664765472474964026549816991526708551538767510781307779027046394087205564158089117222608216328034423517611459579402029389957952411184189124393091483676045867785703407302787344747291115952348858371727437240300109639757252855595397269323800340199065396179350040447180015494462574036980990502831569090338000642954948883855466703390035871326882921811928535794476909182711129383799078005052292536932129444093728561993190973205884494301176687911647544010207991795720056795749115833035441868914459276680041868151542836835184549410126614921075851895633170952149838068234248268921820000265952762327076248337094112268299302909477945231715563092102714922843988584322183253697314501831435043020274351274454219509801621239680338992853366470107239977331649054193656561317758763916151466250811188905867952248569700491477268818100531485013969265535787324334703659385877810071200518646458948987202453404170810350622870284664740229503041564926409930427978202875284783018041714525215797535611880585350283242216165676625057091568255976212217999060193800295066623576049561817270435711395241519305940116354101535443436488070207520498022881377407441099939988134443788094119032854868591220149830976491773259318931722243639493821951577449799194801855011166595137641368997971351095591817490587711386477042443217751069357604329075560228821999962495841296980120980362126637628107951468804542238887125433232015461587125072035988677494711978576438539629039503559149008332112533399032526174772284937060568233566282456862582987800116141423541419317529131845200884554072951346885707378655135694907441827460814094244065980962501688000316494240527169376974830659106560086958179737136175848773428143713033832598363751950634509671109303804799270530981234355737063470117727646263280828482881885818880498884104957145161636499648688809029671424480425831020049041634607500141663674420366935769965192639397288642191355329615023884778149516325463639361378840296850579155933409931375044304934944478368208938362736609223697082043151855730455706888365022394977656923919598931549271195263393312979956133818355543207254136819048167758538415780589567126298757073073845298591826532375181378960348432108619846054940340679471350542469600883307061765758143356744230416448556239408417841545619348259502401496842044320084130084173411776724115054310519032219567066430265637912394682396333552297084068443379709686076394188623695183445143919907030349926003976993037973818055546530747769866632756366612203708634318837526109384431894480999289473251571177247035721958927308648354898760789047655275310777186626007323980152433447862354880129971194764860373650519312645730279014810344716938145608702313074976724476279262957435794857244908454862088064142057892373278456341196160078654887697634196120957476267743752736176970759339096591882616762043938141067556286486092562235449421389232217797775979681357261493935953423560202170812450593771951316564684485730989603391918462749210325427754915748961731290918536847514934646544184992190285889025730935938262079603140286366397016873350210926852137503161679226268805353771688309272427194169351925148547979033643156033515262938188565855728254485557645702069140698859446355095035143383265904570965612938885089535061347403497184731693225958653170917961553529588458148671909654461292645655170775349044473047213918275787177668891565593948548865719806704953986785565019056568018734791998124853653735592092955517359324195673483337637018526687783754725404130220970345381621580801977984750069361117708074070018157867486440204822932563799523113063654601532888498406022296727365727717372690779791644938873418869096413356521510316294592443718855474535234806382074255094141201702337316799687282240626828305221320994605084288255300747900100131340102835760415672468396737733123708380385741788993890436293633583529520607744390160044537198309787860635092144837578623458879797348731811815759836642993202533490898996927173349029452695428350063159779525969742715056938001635460817147497235495409097630506950512631248070161243503131476886086019757576383059713352338643642758030632152795399649540106383981271298188362429382206285152858013772229826575754316906346992726771463596380607262314295365608396373653853151784194851166192082546832489337211450050316074617822386663836918400367914230429137486715950802684252598159662771654461544088589144844538398793037465126244115116458633906081180868049373965485131886550386255731888674667008002933301093825640599166898831664293685828928011529542742212977611966279940466610286070952615904198344258467315060534619451784685185905323070262607621753849572025685338443151217720859939260367768285897111406560360638042077104348126140047279677335017172133040445647089246807370408378678037282841256633042720986057175412291544080666563144403454527262601634431073119616092118662106914307254066556001443558727212964426889190034099534929553710544632788216651330493018015267821220049459537119145004699337027568908608236166821210647768576920867683014359288417695514769573296044636981864643267364504994236600830176996661506687180782345553106568181079235884153428803374121595026799467533735611287387712727139919272051063098276313904295235908410666933320402628188912054055600172084812860950558904885740412352765568030588190872300192723409582299292263406125422182832647456937562152100334493467016414948649329442290123297535306120682443539194232815567208692689891078593794449052003336846250251384919804419927289875296236634524532610196038256396586510522638898571477686983200128918327556449682694024407136351294970821293671229165633842592156160711469953342035386729290996306819649305406615269170825229602918387101096773877560823817338029465897816215375600266539938398303784238859457557874419811428623400968222952548419761874112026716635418825077741974952071482469271486694272882870028832371682870549675017155962688411732780270896701309857637209430395314851816779143959142953470960404656201230230539129064663900316270641521024275011844212880519452537480846129023065545164268214108412753000456070810765488257404490894001920010794378386357104830081823825983887851529732172405534916464830526218819300613871129457129507673713194968935944100148862540641717064853424983656115651862760593562740824553931421557189321938160040020744395137304988909162242360878090190749345281818561605802347685514442167374952035416923701661808658565667411576013099301442755586192753969439777789400298322888846444097063360232369195230012077182532733074025181715833094669349259445414027639914805334047670203858202070100163787496868980118577836824939549451176590396484203680720713801136286940807966388504565888482823691264980948312694655470092588714045753622775260512394325159281657636693869309080473679162122021478354100995119030111059889393621969852515252506984610738733899281351566721531474811070645259916573684657425001646255452836582910550609646024573682896960881146902218468844243778850804630705526990662868983260238624388060856526898535590114493665903867375642679047387326469695097627964562573007668201578514102699299024861725093857438964469524470968473993054829530543649546073469012326736631620077161798215445405740054121170305810040834132122954678485589671709189662271423087290534361105876587472650510190915517279084960089411345467153531430048307308036228929467126609328718120671143618993025798370591305985972162374916016134092169048806421989608373153723933842816048895531326025808130607768031141593504641267131409175769205456096606867518532003075708881580258770660748662078610830201889464446326385119107021377235412027009613820970395975971724159504121408170299027254619142818904311362224504869732444776572307886298135974109680115502377873964208118849978657211239265232976803500354433199132052075394617099098167212169512088115911640569155585288001486621870566751053117617163473260055901146943400056544602288360478165532871610241802914044187260147988791066018523948821630693471824660968582544815712469270368940317721747732789108519283662014359734225450188151579493912153864917206939910543832273993192977565676709033339466577637540332650130029596519217559990693411687053249426941829276370206769667468308633142373907505228723719160169068689780066915725500612444538582842181088756796269260421152645190828945648173502193568857165346711399561834821528347741767471520543809521297038321558252605773567173173352965807707708959341658568126580578709683049940985173064907194878710703068679427410417935563742215416414470139766947580914377242963304643883307750191160347215020130698273444347172679113162692236222516633557873148474658714418191459746864457477891303757068706260335151501533983033007577220283120289207823282178765917405996876428054974198171340090112428849332092672325450955074808488015626274521105111490054239491580649932117288617742222546198127182988852385393691199449557828717521052765029823793262854958487208952111294416485070869996297178197444038513426595471961576195048716499626892557414344375906791566615020608492488120578740622808831880635760984099952143164738126493997779227624611218561207798810089831391790577780257005630442348353137307140682179384597330201798944430391121220686403720390745568037689745450354156423377682685915847749422014553241526105352984201751903932761898628407269234103323776635875213793567590735809293992135300957873033160433800324145700248206686305023791993382903840906388505043251604486120383128569238534969096690826482337067282065325658515544536125596923032051247080595016413937602982588470226429941081474042779837094487176298599074600170877158433890745161387714881604169125422642226947294882049442301813464142239427200600025633852452657065385012362484001516610925514244932282656924105179301108342371091155106203350356767132868190758552868011621872545422631943014591559182350484667084745080693325647193180009205916050062706890233129029318861566687330164360217933029356590668402857593379676883826644804171572518464056924054861630846938868829159771764778254326414117321357649581778419637891191910183077743842187704271896778791987526591540250919365957426021682207022042748627663987205557404292878141823179739830395549952636996641363185131829783547855267606659521497506524931948384197404541091937874199974314676171910465252386850383954350642258526295087110884720251764721708562348999625976403976448406825154822024786218770144771961315206334573666142186210312577097436613381372258686767657004212277495474463968945022149478986149368007343342370367898523878214751733507807837112970728479268792958352563794482677136209319158885453005299263637955996872306803939386298252730224995165006698299044611806162396282696351399079536005539052684989052278148617580760043195838237712632519804249841419324985065489695547215959580331590900223225760413871222222244789624293534968503611501354854917171795623613319807961784224808817835273638859136151356868572577772152069897624930965791536732826511820402425922795798924178390850131675207169559312609541992732340737132078688626552578361338780297834591641306864612461450646607571854550262068526722494918071209651212678370473161333223691616042054223429936670924770491059093812064498131190639568997272437931443024680679572359002820035357091811795914281432261184385179235034236271109065559537873966455609498990758179106189304129429182105027027213269876558052724420809089015456688046887418313437340163253912023540475437786180798541325134681505294591692728319518219716482564201912947854354370616114085659295473236147419450113250799081132650373598902888624039251327625117728427643230576816140162208496527676192102270676905200341661588058211244126624125532940218113284123390542286317983303213920260684464389738328972388914702948329952344514511729270740877489059141818906728768798170474026486429980017504837303480427110156568262984016436423226558566433245289585207478181646247550001985205994214009512122442211462168667478954898096490809205713689393266378736536324948117074323191669210873285029488555638453790641335466210496190120727318923658962933116305566992927303537780490126998273329664259262303801651264148297143926000040855251434383246159323440266678203255495304222279977320230400019692626867706811506110654779945857068197172559090390615908428897246472904890288956065849263922225860717189107595602051585924202801518992955962075235289159356871006263468378795734614539166278081927117232066472969497679623353851303159570670029953565325702064610390912274095708759019593727532398417064001203815654755748356850184708736150076407034726091405295955172155895091803832304574710718610559134496464169234277393592208016551665813448934999534203336027141102386544368439541413734762040095535221026256285540059510539741017565521281916471343842521039647629185874396802395807929815087774115350359538072578601539618085951538220717378423319123727483940658321478701410448757362902171114492527622956992874621613702671478377174757320493863543571766747986256000261146606591687293098728313450573673984367584221882503442017991004207902315016216240959800597476935802946730037207346504357516509362327284603827249101164173439860860871471200831364534985274446453912639358165176125281764839723057101430924294896438164519780827617245122083351175125352755304366046155018884902503313898408357853229221721666869368381765127965026456435739750020029257701924260778655951607881365064532493164006160379937217379695649963478129785408471315329300108982180753398074460235536042842772323193498561013890823696967106068203992518224856023791608987569607184470565719614994450932352258696276868183498170953395644344864248911764122270639698424681945476023823924735097818330436371053218416919779753153115763495177447697438727242715385834273958056985525468255961648919155712697205771517108823076080775102360567725525968853990117354302217441849779173724770271326880181902936515525434477117851809972391865637215162600112346354853895365846644852129182865980359472858570477822435449251801025063104680089614624639002993799465617387095551628144174440404554257786563982154565625728737635954420839109344423790357991628922325274603304240148154603891305897875665887962509989778741336422685311564038969421575242129864379449483637381026461361744857829524551136314492328363808550101161037381937393848095832592993673711545778211016816292644711113972851340111215820572364631244658344667916199757342379860525896377497493997160449097194285469422807630748176877675919489688009461273333817020263538132371104696346904269072799382597029440492062831646078960565108968793988015141849763443593385230462619676554840660396566942075458101276650248851133089889589453768365369938637465504728714633174990319009612818542303018288846225954351043037240975140763602838999585066819400576678405158515225328894177389715007516734336429235583789607453322605687791055459576326931063536898231574031359995178819077291072244964834251632429450902265149014536721466608705873175336717142942033076646252918500632396951348706316321493527235677203275891431869503272976432677845998622838607225489904606996342602506285924425169211838531674163407355417262999424225384267017514536648574753972173080330204653667427347985777108720637888499495727788170564189787291818764600988561487759809004535836457463811241037053268394316781324152810420346991946126541005548484143412395747913198103613011052909677563425139399174200621055844937578568177743581802270748466280932049318754846575461675485809515573133271564256966124970025164102577155077471254314722963718124286992971679994744784254949799136126645647613259658026860295497592677752520060651670996746782476084219482792215266146867683869827816762154838648820794771241469305839031516506304389679645511629012687468135586962739329257439871795262248099381236791925660736742595574590984034798598483239703299847677268843176479719729630975454221355705603579313600680941283348386795614788726417703586796938030642369839510258024436481155538420812312126424698822931773326521790928865638356947190449869162285916318681170423708113344863679556351530857021324062210668049942381613539512956856453136016773232673498784988590618563236183876489729638371518861873746792350067214432254285257020637893490441382983194537633069787748259875841466555333466168472283840806375943368472043640557295378599813261890462427503197722635574642160031473257011207283511270774849914645313105700737394743043530263179913815986658049836446127828875110414250753028659733782595095415462976176595108515434417401299582969032725392463382027435585730728507688370744808241635723555703556577541582107538259255201627393546523018245539164404241668750345795015035343646144244208557752943280380534104303210550286490891952889910325635977412562419363909259558778599746354628686090923044837333089842919023153273028393832223301683714711867582828640186953799198271782911526826141487158694268483259486623994629225574693890083924165698883662824815024125580106584444964392141370710905132685533477221738972358273586162988007456640022640266599896126941266932216827702234732801859585079593001277650844043116942707122587682367849119018781415572195497708137883547828709762982029814793904116656672782633978806349073524693953058688166217224855957264797623790830872722032731310525665429186507664180235318055673026059118165002794247845461277576959128606657915698972763907967336052664459827962905688689221308615567706558924335920500355766325886498101416280913731423541906103469234579260023910951855893566320414391043383396898501588752554218381527048497476342908302896708957865383645660763423124701876452344093987757759029903046698633819544036539306795070886654701881201242632463434425211469075116707696591736016852055505079134758493813779017355347132579678295481189832577619309140338907042033058660060903179487457811306000461160286438576495888078174189423041489916194303819304240967570327518736149439061545962788397903558992533159352048433997143530921376997149668667673245149516801449941965501653387854520977774110425654768467748478936559070408124721837065799485213011674215315065401553791919164957200568401379048803976842202111238032989021424216902066776978114402682544591253713891405246203626978721168373923440165828378856949996508147010210350901346313970491121233705409205648906616288818439934885207862791222725198981826328567467888501580049455373049545977701678748416323442049444613679082015208768352174646376364713607197688742418353924361836514440321366788256902700959951236049367465537085434239643960440837071064702349426597918441321052620903162349147309122114782829721095365678072578857147691874804823151249634842809970395668904968835416439524075299020901715294415847150628200638291883612148145139401427601106314830693928211800204490595530901446498295451253124712773785814038175305844282708509056577088865467422532657041193926933763255584093499479736714313070240635075575100074497955154364195703786386015425498098464919092461593070530668602970318788300677718468828942780614103021351139839927765605686430708072197840854528066417694832891862268558386990131990606045380795941382562236007968596385698517696459837846800140961874500238115582012367428261746328059550537356900431323818979434517100478728485972414149623537081813348943739561089392297768965160318672237511715996762490641374480610531223733512638966344570673653999018098200931687526989687303621678712658640658728850936222125365344638776127277669033454733529010169871069203992104692550285482723192566038497607028028566017649933746697891971356818485357522500223752661007805567917900604219738458197134150930898643742206565821815440660700218445426758899654747266927553409375470978796862369235589224214946721248169857988925663724332099686101808842017871498158488090145939684490758718028001709421536266262948981600822405653164441663471375428019657091620323857038123061552296560434683955823640962140953292579744589569277353283221087402545490170791341945751468950127787278378066487376121432114782749935292478136841043491431681455728931584707944618188357119489727456333546034573242140427927807165137764811844132909965688674915680072924064209406721061794131405061785490820905782365115786243933102082344616274020471553959554773421818994997588520169612997104600028963283309396037851333236372413721555010498301226696411387206661993903442169305741338215947889342304011863358232496987824328494326009793102874738050870407118864649338606538399201774683764238950412784959419847296876002044658311444287191788740791967948185861344341773845132806914340690791632108959753723482684084378710633558578916457092078456979939802760870368635099291019428277143367769395787735230331893980430571314710475396391093651910233047230776539643573558947879376159460349462770766568741987799021552784858170595751707296885740862948750853938028250312741822351225935680518910426109736330040305460717319897465076412925872064156101299735407475101724864773277738773264653641613698005649165470421621914539435504281791464313573024145216153872801360344053253890673255105130345047266348574401724267304217098062473812583558541502621455567848303726098452442461724038672972713636981918810202922225374294727070694292247153318924602709890386582462994655430310850601042477230077555010509051891204576980729175976044724633851322793304977632461659656863369594766275926416616248187066723574261258584869965011842609874772674167967307345920347745773588860294989534096690827778521934313742192646023681099504780253715333063468343007734737328885722368811636272080758866930336791421152955711213766643242573599397430406638666537378278749128249158856363949395671948829341225906118051467682763291273469671600338582489452269577702797723527695844241058499997736182336112627092515248804991648121856865834581093542949645736580154066797221335338594291839701072613414374518205413770511885185831531404340227794175256667848575612355239668450316410727835153070957142714932919721654494002821389063733575671257797945380323548097836758513198319355825132856829508359192752878032337599257172297494426197646763849594499052277743847764883313192829638649327049977927068127057363282413804627124371666856059009449361471119339707694652528951018221847807495512149320132833873977394144255333978104362765094907931901862127298512298794825585995066326792770739309785356013182190964481699596022533351272776955637418050600911593360894039853366102172376159813207733631424365152708317911033920599298345282939449707633774563779931412451398689454897821594061215038027046852336734551777149161468166035728080526349053944831676977170712366286460549401805250984626946864531079585639179164115111550989145037952288443733001329750270478028153730366795580653233421703581628443203066659313697210707628761878598215137955892549812079026229484986607448180988794870303874570111264633922457767165531038167570175280970722721191668532589159363723593900314978064949474204239067209592293771281556489968903790743123854772485970663007542211529159140704388938518198665433891028102042044827787593694126645546110570846434967377751466845953106346658770060130501373524816004950258533120019636331294124469321525136483960342284303201275088604671592628281638910346802471196160779463415965286179562963629313629142828686401608181861117594409676533684883026575437687618987732732195611278644724626019509882780243305515065853159702440967595185030498913535727973734658523734055803482675671644428622216918420474549676581832406571954478298543628937064900357330813294752396564816546883922666009091227893585797192796753089153378930148998621061572784448795909977322764883343916104420020206714613802588513264019557950131277841871723720898132943938169607706374136873353833081071954864344274380438647194820928408689495558531882799860297525822453900713371570734074165126292005605318631755328263299083388001521090333927873350867553127473701212387199888278979207434807229508107711138727324222007697059209557584286671480168377423018618685976817651793531365076813192751637964448258979091896025308304635626902913654185821523788861355755040908498559796559667034402268185384696258112667449299448952099323534346716709904997504249512856672964471990805889209391216975910491196343350604297290630965216663684726038905788873994062406780267054076191051376812130670832989001931874331135953664116032628835424696856313197079235337699994736111899568801924092032597410502172077600346004536821308738790931670334890251252427397603542152525931785630560181585381490916649524423623527049614088465515101416866858157344551131398132208197560015777409991823717678664743118679500090840156853277074854826584846895267496681721721655311648022894910621877552913026563804306801996106630025810823094271512537219749567696549057098310490365856622739742494296871271931344029904911570976423274262632603425449250171083650708831508098504421312629424307359366241916959490828699337480073077227947106143635659202737614187107638717307513387706547322914803895227930937136171519092854058369142603237194256135057776835564483620477746247298362303193807130555151700744702313393527031301480299171462538799344662589897741041688238216777776148583816756060377560364001678447766776793235406228248195652271704138390009428032497886106256244072162117106273438824534946180663871101576492313752682002103000890205849594316173355499766867487308848384006958186617624707513071979654007567868146808203854218778533493827634425556238812497199076826004870285296596482649117159217399628500130749356244937179310708798431614048807200468960804533402184199409927129845197496207509875503329554016729647429873801401126862813555955116058658856469394481421955522621023911781598181614158093975373728143075577315462123650506094079130094765170816674837117537050908259009324784129542234745142872568136103054890463113057785094858189081501228117531825682652871465984347629674353284458526184064641421233974025308907154872358536873209093879276617868833229301573954270093365705245038119831889661018795032232194738007038246988641008950704191226480114154827287662527871495793124673999408571893944981300521294325269767508947669860096949721832562387627323922989395657045887943816268236475550916570772016332020624704305476028700282586115770204819524039683451306830409042428508199573952480289264532277795186117448949729190690864630886269404484190843947567328593433387366763932268307062344071623013759797181029050023625867923002675151082155678717634969530237336941612300732228774775759339827453370676476879475435440497593524517151809353682050107052933568324460629661183227748882408403468767704344225867121805440732450536166623283802356569285079759690586557188684060404625728018402752656220867616439478184338467374854778407068776452328325045412129951423928324159550079816145976122680625185226624188477258675690524274302645451016163605030075858550171937568290923123887725604972418105288566542249347877286638628271767261237367336650619255632060989631276432135054144175345259069471931406393613620273952894712520937183289213294854137996994313769367678557530445688785315273238323584116071406932336606299464854792484993790035921709842468361495119169124945484037038339505551582035376252380915812893676303100705735400822623017689130302979944513352392417101284491283494664407623093471842499147495992193478015636833707156011935688930452012087753169747904200065610146610903495561898927417851729687512352882849336973432512885899839366620594871173100809905777049212084854410205868084910661621760551519808443714756479584397477472964861878187120556785411266064812359256670080032350897178959680372374651620993370145189050214602113206457125678823146729301721387837365816792717318740967582794776968624727820592327871155638661964187581370797646639269305592221690360124659977588217617642024290651726028351413592218747784193519057252326762478673283455528824133816862414665940610094302333907694108577255003736770805474754409915786284900741264219657211873767414250340953511836953461780757526323028908094462851880489099216670527536646248001208510722417934381615059350021680814714488628870403596842887917349768458271574972109951360373085128134735870108536037020129734893708392305339209657402624701408922421154904625396334986811890670742372500796900497826412657228195932605365961075809491464646219096581104618617294399672490797157110147478308140636939929261589513143557921671963665609736018149450194428372765066902602941622477194402490380500583473740661730637178920393976280716684993465777827350290554019144090935602316859047918168323487849647995225261002609163295242618315293653795006797848213591803210023886596022148270320447997048934209848474228532153113218158899187404153371807861583894713591454667940912518393222903081522208069148464399584189916911514653557818694341588052803894805124826809763984997336092495006123746360286001488399733898460857673958478728282391984379169898904301165091389675293399928799409930143830835845962385180214092496968273473960098233037578723129313567026943589973591599318953602177807320183477592306426405845983599298749472037602223577804159432770256837739706996173251338922777347903917365822355139282926600149674275725291396936614207218005871821981409422868705432378746550362108799996427772188791439224823798119911131514160377638746650361209703186768406492082160513850242256824682632962730996087747648754141962279454961106471735724264555403145565472384825081253405648654998711819251739884946375667487938016002482873234773240889999209241411478130514633413837339218078842989517057715950320994025410662421333660125491380841921581672189036967246616635531722984901615527672386018546308758349231575548868416192888724531128418168752374702344659374376934635176356517581010039144582113846819523216038131232866528722183704149965103327011898657617580855440986962227010473714762167257647849254531860948274658841788236038093721741083718170868628308990194591559334409175905404779914669539851276655281239452941701015403590413200237615418930085580859797296034902867247593791186155770719074988916273427164877513127773765947107878302043652995845035184215959075113536814525127459830722527900917183139985013112112539370424901059655066985687145421890867573344332327795379472505551750241379290412747259582669320675043797169142942882181774946804394537210183287186341217995773920072580708612019471844992537776824782223481677911384671512800729992146330155778841278368513152215140708462449495477041173955532910126642321549065459362578293042075466908066395878196567560322524850723705879983249935336987403087936343849742678030892473048702102289992568046935973049900531721378762914096382098450554758890713502032974748984451661004188373638093727844127954262819928339397503482758904144480214944418948323302233091289482059024257579921065663124339566726266058642950266965230799577751093584003473994331918072456787718930167856142268238343239830787904649806900334579125435589394842082325109364220029216035542566965677814215353765617140732025880620286516814737569483736833970753298876128780264832649594885797491242874563984617293383479756214838477959829150670805987029068338801686941852625841568592833484273979802448268177639101242711789945867670196177432647691391422614388455987755864785352605809749929927595442571187258613768425536657163432045473516401230126872960004618131537421996677480156471773144952695282305358021350550739254591906822633407821917606590856514919371125985538167279099823291305560192943235499048732178254742558973582443331507449607456131145691720712991434909722473450499543653225974496955924997810767002541723958763102508121704745462067067977003187736483802586928358590534491073030124739532923855849245333264984036201609449665716412732481279850730448301008180765514904097982714182643342752400222376936836952740954122336046043678505353125489108832040412652617127805386052210252697347143024282457891235891749709590257032766229423851820818763066525902843896859965910855966119396383971556372116376749098888550685997367407206499155794689809835157048923813853342669362798389644500411752308704308478427025787368536807980213969430253453625375691109140566846265785009724997897551164822876431695000144579181710566076840139078634881471988923495423884649559261681153082955142250246858555731135622417652392895804933154549419996762008676617548300638599221578948211398961313764804922961328500772491566754206074707819164522156913720729749650028837018001829454934828922060267894961510911058156240282700718868844065286203478050268050711149701524952094118121207967893130239051203643951142904770304020233284389208220895719814087662531865051105357827895669787818566460512604293613332366958633994835477787799131024072861435726093223960563910509704530111349527460924057706850508112850110648900573633624180270277417295260985345274093933696303988434310116637906058231421771494249537756613860541375734418452635276468245483501705355898421758889782921867425713970221527515292599528887480441518407605104858901626968495158512184415362507081503775848148593642147783618990754394127866996166927058437863483562668951117344995366142907116418003403604689506494844784459964335133642095455461720782509655895802948550961275931445167782586510876965937805792533725195511837466107332240432029349973930067176037314430209672373426271068678280883800918290720956885201504502777751455461622615207068215150628423456647079739417461619163032048596877721080143283227889308464930789940868495726904636250727914890480029915566676846647274795576414245659922803601368374968581872058594988201696905221390917413949373000401547931133955148909590216617768517348684641540597577373185712576908647833326620778992931672736206213622956678113711948572599586315473418556417224320811248924217355237576427118989337162392044031280368485672305138892852319596622529562084317960406431310075092056009942970167649296288643001962551006118029485309200649136892449545810052015190088845807265254283859327653630552704051482036201326692141559681048017942202542430527483642723559358006920334354452828891910660036903508015739695132024795253338390184497861759987644723324804572334917705923937268338310497962555255016610538915323318677196496114312708021462122515331745629792331659068238280259132120285469151063536339886896788448485695807480785894484318605928578789484709911032313811114010558035821840284110944484886646754786514370134386008090788740049518533023435221247383465222238127956737218622456745872440716375043102288998089329895701802991184654269650522892569405604372483893392865811494226225905026451584741593654651971595123553761105652881820362469929640628809358859906889133328902775520622826069719179323005594756105993328330901062342671602315580635856854106662643034154677081884628377015706410645379534662998994883971133288305303065327714826475016548249079286098540397028663886895730335573860282118854603315566769402259932302808180972427166636483905536596068884296634629325768480876092957628179899970175989301531581321018562920131551571208434227712252288604453650254700208388805535992659329225752404208527678787646588232895650626339598285039388887994314979119643622663231847618877526248600697440584342158938252940127941149218104423994112208325975340590259466090463935110393811731221821635480592287901982679477505100653683045876393271060336180570089777707180043215522515535678427905834580140733753822965475613251811056482860784708023848807297678574909910181320493129084869995615341593310908748341412616462903725041494807097556048749267063462460059458034768661430015516990049531142555890060745245239247961300564175244466312152671418014530157022188313975542474740887092641294953003650980405269273940034919565758598742396924447522155261701976690123708779772826752969310312320746149647286836745439709198677729943677437085399339461582494213787811553385096113292340943161708631412660134257329052202189740976800272441434155565827015431258882224706624620204896425008756830536496007273925585341486532795159205880206948969398481794521311941005100802693128567416299088760720125094286579158709083827996244632811040718810314044694651330781211504123225636620767371023983880964015502883124862244268135991983438698470065226796012682561925266486991772440404650512583475187998214380820545750372160284331879048180110494311382370176464806726199484469952512314593999521954923069989815503871622224185781883358209630614652983810555347454834507155676507711831193253961564566469034647445140724677418669483753127845648119126869446583917438921669890569898565845913106760955950027313269690673196343321325873181886904177064043562706859820964317355418027645745922846135138657389556064989670293859718202933314503342699899706145869563295197998759989709474103005372113291801508541997069809060030296506499513677858329344596220847589034598906733470351377986967908982672800074135879265006670679472066309668787119276073103887999272501367952845820676991294219498043922177346302669764431167653828195386330170896201242184525495339311167976088845141817001972464203911047507750304846534699329287875570456957606778418056919787553378253143608512413976560844702688481009617576962666051835417011721256486517746279444512046847315818567207954788658185402471579030811934418916188628454159822191591038482733208632099157597589257484049669254158822165799650762206386806458004371609968715429717370341417248534569424747412323961218630118099589377433517201596476407585371968892564945227058152768356093667384471163700148827046051906278188112871378834908470752669245735647267620175768011179554310015859915347014434329795590362133955953895226430571662698482334234219988604329068849918523383015935469436936986282185444489155620155340518357246282716851755809564515838804698791485895629737470193989412051047023901774445317364220633205441972343988429339410379086130798793018778707721119131686554053141182086913907889260604065198967928298544570010598268712748864196279207537316942924767748803848978131647008087981225943446748023405876616638302391895303346515090487607409924062345078428712886239517982785430369192662597233172034435701860115797685695759045708352928614689632389696136489552526124178758568443718075153028775727755233331595147990632830193679363452040905609180555405220246028665256464657172078929924187576677586246833720088585243920171470807301618925376688921663342489487008971614896749903142607813430849639138166495419676973587626374055062400209933491205438730725441486237882168025203777167870259026686373250543843976688804965879325255886344584190246596835464799609782311600727101923106337389661360520718169895470918955349345056104359095904355208479116209987850495108836735629379227274329671948754340703866414988746840134473024072416551668378050368200273950275030498702198958731195726149606943151468457274210048558197505389684524902395554867190645355220139503234774973690815217334109887326301471920700821255458329806604216789668481807565521089308328495648544267348583095626779670740685770355275317533270562096094612238067338102650106543018895842591357574881385107724445515335582798069883949781904281516727837228368331700785924578470585224106590971334178994875703708425676079321296783113257832692699018604425839235995059599607184983540589890171806348638387139848363541793578635188422381167320420924377251115472596859933168094033196626563503896251215686170022361240238867935278757175878959214508219947276650972424589460917013371863221916517554358908542986476461937732297181416199524875021275984519248943075508201779929434154591883041678464876023173743011980947215830091028737138437722179665880373553972528481127235911517574765779670301037002136059087557738085463290300164747567790664767396054736310919927982505455675669644676902592659809143768942906890313277010825427878815618515849587228865341568721796340236720919735179996831856325277033976616303241645712584460022474148938878008789282532614504202723311261704409455956352009924705967340448235540530394678047950520428032912258954104464830087292645429682803168454904656353647665504148333976491025625492808397623624671353751838489460663296297653239282331029589789325787443817450347000337510204688324830420025920422376932252534267568880009261336501923269250462424472583696459720946089075420234964735703169923262778096968156556599023298004334246984363559994204076337693709122052695771869317764138619471831876879463206219095200025550371151446406875778937084319051456578434253374295504400981110845758406366483628480316140446445051955190703682037451057002535342171274347254495393711315846696300604222478155680545111837092913797814052313686102355299775118212554471054715566055616461099255694361601100503037093307374237037265862957024888081749907182455433682003618694109831463710569329965136184974221352258246780651976672941901709469945931927944182472225440771147966879670367276060775151769945928374425761784706074884167334751348146905909892613931786045666185259439573776730244440429069506664402590853924106014836063298816208606213362171311109303299519740114309366511947991450436578249608289699956252038534469343180232732231613832903627539359892222727417730969645634053299743874148499043717190054608507289694485554728400715826468557967231242692672489748032334337764246665525447315814971912171246503674023274078576680281619159613197135378358274382591444405479306783434201915318095391052091168770595954796681046667263498371386749913657353446127266181185817957281493042768328419943947141950262253139754477583570751931780457666503821565738399046723279163758215647143899925418345441429068202989141667557876040013571936268803658366863200075193800036794259606097710517138308104081690385458181913746673008179085124275269232901897518664264880646409578016710149389560519812941651213608216724014201678131743635581844763716031625217016578033592223744806152700703886191008825769254122416711477225670706016321157645424063356779897299749157638060132948610343170113933774109432301303230504968564710244713841394026424418718840725384698266878977311715486965533908459340461288687293900505730249299258106040045761436459653567405606994360771922586587071088250561238797724352453629534411071769445261933887346179654926311377269726514748913731710390229452960657534026640541323060110624831932616905639734834304795069925952294156118556433850559915768843120128811691968683527681523447901638533832408646197049871090319008865396260134207292300544722719217664641602043523529055960012633448372630896895873111747511849323914677040530181404061773674868623294816130585337097236588688770549341314306640945044449798461011193722619838982389575340627175300620186976264775367602112430236135295658386259946332747904459272265926084045297988483571746268365621996721208207244212320767981429270820358366237711822699219006528433392833067892363388084701950734863371006274677439557623466318314365157541408049471956334610012340315085274740944800475101730805692322234406021762755136535671223634611138562169530632078009397035323555508488258531089515900740494590947274081505538442785225334596295304948236701408798287100249274894842237722031388804110271857743839717940330858849679721281796535261412251154225801450488251647373452324953904788841612784570063539694644506341094545266596746967415467314963187530956197368480726863208961383264362001500942409091867936229043786726559087311280136633848873931574772225938742221344635848448336829882556653097947015948952942811489853933018940405395047896257555619617189263079655868940031171609384955212546421365484814818112998798791006361492418165884225429411297492424220125140064654670898167684490581331958925394815124116711245666587130830467963395046938724855411114457026871554851222655357392766659075009946315315507684281679462427577093536549281966381184587663310842193899124160927657364971346007362876100982888799379310882195397763951197570465826387211715536995796047831233996389865133073839941632116674363837945587151443252572442548987625518668414819963529609558930378820049612560459117417564162693797173351214788582522493816360990141211842951433310180470887297553371948589377954231498913182280362435676289555941727115171976263362556717879412262694816591230562292669953497930555486391053281427577281518214173474207099675315866907281215390148110633164759348409130605216157621879240584241917521967170200977635100713146060898958395492927197323161780381962545349444566214435865820417492200156832470505232559122194105063216037988946223919200531491453111962737553995737191167777817517195681734867489901632435374978582701369583603809557000447241094703310108294238148961927184640755758287449029211109298008033490555534172348887794294555538318352859980806828704795790389761708302552268005310374066626074481906464412037209124805004069069484986773656227992565593043218724209675880811786716949386656749198865099237499835780822096984140325810825089266338741497596391892185643926153806861240007359933625544229647793046350199439717936588529667019503538718889469594806699955702256362357628487467995684419461993298999482048936049612981539740510036266024859257564608735108347198606930733286030247274801621694310635596313715257502752482527509926676324712555418668146058466948424102232745753681512794022495942487620497321202731013193654446134909987360655339689566252428524955706259620200849285435484594477445211654447878653058845064256015107583624271149983104293783323994876535464392164971986467439628330806801739820257080492645466207935175158224387725102388232585242368235513862074735841627949573593824274705159867934191718038352921391278453413387326873606052804815555995317508220104114017728039126654206795010108739383263809568979661187970977382588523226733054420425323302609139310290893543056244514249320822616337201487388463152256497210337852457326538759797249556619067593648027405794297798723382454539514917975741012700415522089613338130081202715774873645343029868069413926125749090195512561643693914760419313914682475294362586944258493197119345705462267782818736971943547917329781000109402589053574556787203202675510198349258897778833220424279946009277433541964301408144733187097610786476268162066909294216392977135429255632808748885176931676078282461346987200196826378743084667125436115586615327899433206750389071452222262766531504615677541535384587518926384502047302263874880367968884900046722048159648685144323963671858367566849745029306475156049071479655191954067496278114378127159031022832002701706692778183440806749899475245484352138553214736312477482156811285951356042205206126207763209395103394880303809892242910517865880784764616090973515179358587810717035826211924685817939892034914890176234331522815544983992374388185258312293444348741749966471690213733786001084192948720207203542496385210127273072037214918037169229006136276734570961911519068449569174729111947268998463323443320079153103994998916001604383417216486821267496970629384217754754724156931258782217820870918021294499953759507727361127503679501129941195553221013865298644907431454524809424024249743044825218779657104085632929898662890681646241339665544348080841482027329272993854391932671170507500028611143792621065376690612943026488962553251382894520090476392795290684156234400939100543994278919289848733601993292681479529856869146445707285457902717762464856065746657306022415876125607305987248555396676399074034892474832361424880340944278319179179861266209651723399576272274664166714389696049013173540225250850030752126957081493800418392778626088751966756107314145218380050200445581670318303069324131114620195534207125907014818756973787599943980886806314466522522648789773318603833292885935157619836467416794897763195351162249754271411324397488682009089677141957654663245389372262891292616237117597793328722175977696810868994211838393117777582283100874587725350769521865047007106084354944182587229766699488698770966872215597401219628599785695668403143404801308061384459692457695917575703208423230234550239379418337505725380052729712224501348439793393494364323062457469539291742086231920999577477882493735484779394748994309058819542087758096470446637540269069517860000428813328758853605077069565897214601577022714023917498751136813640939354248102390555503530238208929964270986326561239452166510334373899888502229337375543473929084239092733241489385227485261811234137875371572159125905137199291232736392260431349161818939698998821998871505064190564762855430712062715120693023701616267056539934689101572003900032260097292954134824493794031116864286411816850731627859901018357467856890306660937760234175209445998047488965956490756790262806202434244951463084431402567166049762720207832843084967563185277179749581896571779393754953082920579188439932855132912556515924554955961614359073044604645271443792974907661234754750045279222061242129309377783207265510600681923343887517228327906538971436827093871771074824197180599855131254777156540656658479128062517859356424352019546488994519482520820442866189043190709685461901785032440863948311211430660944506271015919296994920218751716472648574572604999960103472864446098336199414932822441471389459552129809384591543288895197194663701789358399715579886106294321131645589038469842366773751025617493446588946517054776021604253166413756039063312445338022907540131410586274028998477166325946718457777143465391603849952790605436661011335854560635183537714294506271817379434057997767013585466142983315941658891335734231585329522371559064604499633689575871231674175793858348781001866518228897581382964585945463659216499555203057883382971869588778586295840281109470741099670677611851752394216676234518256491904849268466470553649917795211674010102913100074277263538855915413298373220967018376177961871944026317650311995943748989642008391587957683858295303727719926639505690238935854752572560610533711831484655970387511832101639108067502309954998346997445582813299749468240829213315213314998905061911345683680186707677877604818946367885573919183812290110220141869864098147204789435775946664482027309786272449708446145768280759295848487238665258411134396639040548732832358970427124506394441386062517937462178657727812501947653219217146788215119320224036727497830637734384849766823146610791454785514522632260946630795087360370877661558732976966711364163322958427205541603523038842509176032853994585652044552323718751369865277233679917162084247733231959079445913247031326437260424154010757377375143687250180022078467430330571463646371189787096276067458250669077079789134590864124422221411647886084158910316522981607757223621889661365380608217975289083640669047235330086347406527961173286101314158752683134636673190774198677947888204599526234083156427090756172541450097115332888850085251163324722548294286327681559681742178212140978200678811224923812693137320950099984866887700623754171543407499072199748718319240326743435794358778320838913731657000479392867010152153349758060584915904156615226552469330545317514754544173941041270384956973772209666423713821788615446214700003308674267232728891157583149870500320578654774737356690670264830283010252121383286536509164974220178584098486965928154092888596835591096477594779647094410629956538913657702287111828112813180883450863807915064002543534786084756974536440855075692071048970002812242914707770517063282252896222633871672724310707973848714208442211246239581263700765762157397440394462873204877187095878688699723545608053085453192129855091940126911380965602398596738475395762728946661563680917932180675135817467173194589227098997152536868796910107718571882250686177788103259997189650373315229180178236182439837086405004368924114577279711025112767397646042597150277941602272640882829910713306642408996994509641705034412714929609928022036531071529778178902768236355160984378292349941823817600137652999497273469447576938618830190836986566913156228923869494131471523362483073351707739259139470498387173132881399253542708342643676061901455839115524022613273312813066057788223818470948762692800553079019871699919792011170135553501209610728051212424886407074833592386980095009228824369413908943560657279038210218915054026868487307533657328725732943263906768604607075720242208721638569674188193516583693675727533791507487786968182299009918034456042746812138211213338227656748917797332152238505848049719134151722754922318815751207997342080946454777972427290439648243337493264864510113834461752148795446274636432627699169160451481618236230261431114171126348723694025697330621681360502637086907476511331655164606958009466824419112232294705068282853568152932367396487567407741688762664723820657070187782326337313647945341824094543248225940617723769910459612238526157041817632698923270766267875197842801491210972236079386952328232226170742519636676486311742835416511155844387680245978211339820577943164771028741424966115687721906483902861858499355377553216008893697274707904645381699067164844626900087095201355333623203637945059041561018946710478077045535314128486763834853148717779270369457319997002137772277754427413224825991746384063716562018292847922690671965633866743353534438177593888218681584815234747492457158970780419114793310243529514796210151185202808843604900444880699962856941269290456620024347913817509862537677043435167706809812343056488092658502777328014452547574820291650388381561942091874328773168514354401658019753597233925898115216820213097950827615702340838222883739003183221634864349337658313228520958214708798203564765476233478183325669266316264127787470564663766177590926192837353251582161978521843490431455424214667537109633639937838803420494842628310937353667273612977645644019651131884885179106595361970801920967857262579042036474595240346754401421047664943922980342800647627599379315904929835443436775895612457310901887944547220804653795079962662524301646627791737531084390817217649084399265050657461357839093399574221365057427725418548445061871342903164170906654233915457396900979748114878995980954531542654064213190772576653124253447497716460710229171562315788324509257529067284497869593677896711790708041824517493168772557854083904515486215887154046478827521341091953308356194835324661795308621515436174039932206507934422313782201025365306809188423375749602649520242105268138931155383543617346545953059199478630267765705443634481113494569694948556491308844684007808635964038935546349063637658002570385237106968514974105209824546767626430334748688735910703795262894140379022204451376946765346468058294273867356966243068979238647980080862068253286808108481264420577544646772586987354302285003743326181335947335587367236776647968239922903620272563391690921177063418533846129990299143652360843956972977543308842675862082825420953700673630147691154175224812413701722953215523744069610914728849341332923756486605197373714220056286208422966461726210487662486084821818737426219696344410742106763958015596377866475081103022066649622525994431117747788339217552648048625289718339776722723468327079882431357289702657376916324010463028770778793070618425132878340334980274780036041414883033900429767348255056415375039800193146211764549518408259695565967955566804924521083477735103022173694998372665537893578935478583926422307066225800228121482574829556382615823192942642799613637659689363635866484215722473979288251564777268692313310999373593898093371341596568685726322229297504895843585135344308560101821231929320747942581301661740454339128991891192320085350885530739200319780105486635838977343384959625347006729370488897289290549202696806405990342761369213695618909651483343710176622547223542148756453149492212769303005592442616925216887918453325290167856290346364176982034387610267961804295726401087143023545025731686179148233457024218065732382942884103775513949903300743472688083639577251518556506282968990772011267454357581424463482010384579749169067875042193418850053330419019454023503321201828032877044058148765363822170603285844014449985220427008093061589156799122452311143621055075419414597662105815952267725878149259323734525555448764302420255731628877093167717419367038843248368048604388014186925891728442685491177284228498517522591879171173499081317714455991200774388336589223836167458821568419756970328638150389223900435029706616091019616541841949274777676083525629758363641064652987492696839880232588573745233118477616755674429511325034376110630452598574443375955583052162572603134507243686749886987451188632725230366266857473544662168123757247153978116646553558849131089536513035466828091469518674978821212959936207062301499727669327306979095983003655098677507581267887305859958877390378754975144175708378063178538864142000481206608391637799692181158530652381621375694839612589454918060726355620518499691743920712409629033507219630941345319869120316002427239652980202486526374674953855560977263956440295247885398192680224351593724655870310068474521320141568427963304803180596842786164433675946841038591122444999974837327747487888479992779642368590477676719511544123588664983680614994748792852158819264541833379410220883084854696193355142007948373755043194655445569626710642655256023858579207674404036805957626588181650408152370059806828434438639452636462053528853979930096174794272840551743327529739589296893017472294677951406350576925610087153446250332868124174432377213679181586889121288877405196395499502407326522988454656564626839671156035508889171942961530913555590832593671043335640944113598204640426294618044058089967615186482131011964068090788260490805295305957858960879911293738533465609264018285974865216046519849468549052853325195035930756159939376227235662036636794358340446085438027939845885711900103237471049891499905753959855112076899958751558305428478671467756450628146893664424112795689762673471251794383345110211285057581591768650246834196649287627263168976983900919185076629451190624523805108756262677906315455461198700857188425755303766596094116824462382146600078457779719673729836449971868303092388167481639568317644087189799580059309727095386337370664382838415719580500839256222746202628383415764663497056822628763265455665754142291504256865316879122987935302304732412620918845422065544129731101625607580470602181391519211276819972123915653789216921192997247802593994161712840040098000618527687573104466286770057975980968243167931592416059504971707590727091400107873662157951826193760740740134841619729137957862912792275911975425552359644446081432681538267643785740063183759923046049181674458183543427636469227247761585491462149769699523759386203364080960070717307042149391523743330934506915558918753317958214947627649074045308878532254847139528335605396999843458101494956163679176981612906960594239923702089765284155106486629194517750208864125698721166994178031028066247000571956801145299846115677156944555658750042467266311571883177195042655860065209584885138752424865621255278305491431563592867353159733145583106424993415618853238550799771442681989870725720229509942209736549646498490629859310600970283673283832735727611955211815839180553837421556282503556215696470442040239183623372180545549969748633729828229823916546911349900229258294584149449950461627542359637335880790196968324461383807686671163309664183994437504068194276418033898772458312627482147258890898484808513871433392394903008555020930606516182410845166119791261186708049291540268590425300073842225300577448501456316984993331108337187177369549862959097988599570794068318266458145037187902085703603725657281507282382959515352098857143479862788486691882795445395810033748139458501402183170898786028448241349242430130488836097995708026617215726322127389726632299255301089719288388283477284855036873717433708268778926456527592533626386092405856045422772286729765070716077856045304979901705182008611540582285800665925526034203376161846873107417659039508624373383479676268106886266407802340098788752917494601902296309997895688088987587655004019213329191004017303041167971050908779780525736528091666178257969683895706524319876067262431107277729958876393899909201940631527586790442128217940184001680039683292732531680493339434557352134121306376721592469502445698961369176315536056741888693945273391020735085877622972293139801773983229264309517128610122215175191077578100735862626337167669604954643395647109257200947402174464697136006573063936741249217179793753521576118151287376533145839390188372716569417002946121994030424903478121256254501115256854105131607639706142999676203148506275572161749269191732441282116478799319024055339534084706371888597040008844661735767027364283462062027784950648704301998855148058117141459107358286150250322316466539234616729475596310485288066479053097643736373090325562633732885213263321365207483771888316848329921039379140258626653809534130336638852435403985253949516578607480900337354712376947251509833509757461308094057562361068178963971885400915352842928865230884561618984201849400377430196670516972376083270625604592132690187284138821091482808232433555252198782022144498966288026621378312661642666536319537677541173510583427598136059871014996355212117465883101808358564253140166294332888083073216594460590360320941417028528314833647859295585978976833006898226778975211270367741361380477001494007628813463906995804642371275725925092023850133213312582257519563847339640310391812784315271282695532011586685130937168397773506062958910402510401365560016179565623717091789482931583781067506417693508438376861436958438346556528749789027640130383072187626805413624346185499795602255101473963994976373073963853471163617414183927647399882003742542412570526130200933881387199162698763841829878401273970080769537912746077307911579476660186017349225881346618704692960193588021501372677795771711993581756374293537580750612497109275228620452416757137906061520089218232117387771251947485156786633087324826568318743208378365906651516273525090712902053846039639705517549641581892408626242376538928267519135423242256147290761208566540750948365719844338515368874551120876509006073779756330777806998855407289683472940582257676665589845811016889337646827893352389913855284470353207065088952088379016961843015372654768639363516148559617116207097636537344907503886935017476115926638394997431984499518476634049739777109572148966917243372051738851142831382286539755212099052442166169056382969027386220019055427412429500747973912260265058057602882411813802201321448112033306016737488335783008663312089625163626214655095658304128263568825875144963684819240020184944659845018082013988060428581403942631701522644819560142348889223631096189687855262889647720293349890273945223929597956782280844315891337066918526436237612570278033907715224782255292379555183282197897580208056697625107123841819699051114268076043309277186306656492283503047141344805319839268596236981109031432420292264295307323352630883506448794410429013749678885496717227717906741221017181675596303832644489193376776664162709313380529236060958508232547686436472892053926173007347070133688352963601652311848374600462139138297109641513855554596699074359270959264876064370753769724019668721632648538862091741169019733543781621243193689262774432750749640807445378627805059151977460296823468541877733188116984217332070084285387443168472559100399151784268374886087663853751891863282471214944289465531669063297254299151460716455697475652122356114952217635709572866915435450609040720895669046872279174540886805258678106957686006622535726640087996973707808748199383075846639882585664137767483003046711997884527350013329354393734053011552105592662151229871861794544334055817008205760678696636056779398317614691955579911346503559689736013442312440488785035121421468673845619107586837898440835039307585636255271197946086009570003844190109120588730900439301196443594893993666303456924160336131762919796622745801747975170434610103028976706364813954732990780369980971822216539542845756981081613692286489218234404857972219032625469405802169148212981814613568008877907005844326777949070029405048742348441324528223152710674197116508499168535027811131772996939146251099948267675305532830741237562376243258926334434359128617909318700666309738240615117560415596728422364217700902910418269746173730979300732069130008190741597222825026567563532155316150999058877295025213167347094756415471445343534046954840650461562597171302886922709072997699161737856571265956925826168760969389643590825602655154376526446977705512304260895695680020261106145770231349389914054801858836356746434427659409742248678563333675417013307214897276311766384586864649684114312617009005614711190271736867962603944715086552594147104235536527747593799432774577216509943339843753524023129931493758255391804877130693542373640096955543441287950616643057810657730200743998150997733566423485157340644501009119800697507332991315337052059175590323224450330339208985799687483923683267297177662818646384346051277386816465500005806787784643832848494618314866117225654626012546218518135576189155534877661396423905080297803078604343101482482377480982687308375220835278046018017259041256395183807772989062103023586024794342413588573930107816851735426418451778620033700479375710074342343958339211849267361863516278550467665484823270279441209479415880155297705537348686719623601348318591429198406916865781684939302168192366742665249894072153602822740554101036305261750862121880377741106376319092550738782295884762847885798719650719259767844397458772175277064200387904608438874781493690427464387065382900684985414719305843935427113646912923969374589136405023907355632971971824282542925350897968458028884741612400385324235212013090364382808968951044603406097020625756503673300544978936450298670690932629693211721528782143315682104633776663851786558413917348827159961585185686243198968139755922621551314352522960341593951267214516261487058098547328089328660035236492549501187786512545910083176248709572074764417744669073806917438593082608201164607046158535179354030996768499543417822200228393435047090624432358213893888437146198721989785726917886715573656923067823008152669664802900898778880064258699232869831096438126528061543512589169191884506005678023676542464910857081383675068556004290220156446348317070182332240459402219526295309795609222175579102272911806052302375264812166825089631592394347690910488776582095575294700165565728588467118571200946859465286421252326965450399246144313798289849379484421766943329743509252623394684078807657064826251750307665700186809647161515519984952564298934480218502090376071725798956885686137804596546088975390125904060626337801276753246332888088600706551106290799379552569783346864433585651227652083687223500417512785237508221361589539137844309906549716501690890357551675680717838139971981922305203777819676016722651431163996099583836822633285364902239465011470299916169037866074638656009816796392758578008003270557402525751589302053010091041706743702244270059475357519072499098982756145944808482039724357025762053587693345670300494877538282312331481082930283491969549257807257021076394718647433180760387478917848034270544990077590092849462687734358111251815127704312134358573216837938577435725212522450960004734904968726907313354007745763814754206587800581970002064241552057020660685567913932715288151469468580908067863935152054787103810155701876930994509372477106382013374052165541559965965067394628224894890845902446948728321712012175956351253905956614252752073943420640571033365481062798820389902386573009041340188083569514480522192447113955175795645185149352585764569709855599616280139211330091187558563516198303742756045193670632102400243997529120860403018452794771061902894217033327458722405068856455641905908211876589641835311372828133233222632820540306150147734147099178842667089605595683266199608218810154157717505937150079010519797963549165224710581098808622325201929642958029337463459513328849611533242696122698007056442796918577569832117865466603190421232570951395708754257942953161600189841977416038261070552648012671063227626238018103688232536266247536949653192028234372167769303462904289924204940327516482745586285956693015006303939141971932683772969066871967051319593542391220364091651664479932325784139844760346565792905684184217381771266009675568064928500303136306502424927088671631083939226087249521229062941579918362139081437758665715743492524628777959136680370535819211691051626471061540481246456252351029611268759826675838324955973190524800963076693255163564441408421113962271772585920520863768268757556359407759122645937867558480887646585746393205924751994569063578952681582792923862976260896832105468916511057101778149960060763897441943400304554194882134375096851505395401771807299251231140760985927650220277896659799529636755011472282242703757622599357741172224305330465673624421658168473895340205969037398295338635780331921828600549888008566216157767296060138933235486982165216491757927752243612209765124688765176648773256298640168804448998030238723557479143470208431820698420755404411299639184033519185180023354841847738644693121354745257215987769266277075092186520024285182209159071252550142578239306645508810032163460799937743526417319458359313438804061015543329899384193626682966086912947301825566424478496530856431740353620916739987565884634454801162899693381641018073715896980531536625181764160238321809748276391628927300164527853403810394512051817439677405453385113828756431870475804482676113744763404666809508720483704119748309283444821853790762080150375595264029602888453574123580310074683920947262953523316528138360376342169392970431894655920829991189235612187659332439299791282113552684054003526125908806724116571415298130218500365735180305059139758201412613893058300497644385932602044110557850220882733231988722346477391523545860725675686529946790715769038504028814731819128614996023154622323231537749785712598941812836738231465520307968457908104553708068118911161768353250653614423232128665693194540912309880132968821807787819660065639797590171103952504307207862172197326502730754175442847927372543092234355839504539600341744183366222721366247198598047221207288218176171184128940598009351594273704856056865990621050935922633817139036960928572799145875996643085227545810601548439884241145801963841251491859394723227026297919996485757935800034535323731924636769593115983230228390623892936462306262522476110831239709337510238162346310994382085868230519660575218259569693731898278857143469394418649946761631028350976018716679728961397325228239842543840596037324495823892705100413477931657043329897259985102718863763384585065381063856427530135048664189468791232152220090568394685282826344037837121585753449010754307114168191276033126223685353201406440803812268101015678167290758549425057224440314491762033254699445899759787454536054744969058112239510867844690199717663607686614975955495616683666119276708098108177877330352544309384603328633934584407170774812501971758346220395255982615969817380231130995191098679670618972834819543581161301684211041640583212234614674787034438392741493329588164067049406527456669324709557258188325141870293077083009475847344155494920095583721216041789408343607793646363937136455794674460029197937411832346850070687938770085305785768494021829048302608148158315670178846286017983230370820266019645675224419030172090657483765215273052265395532540826707440847216688229230386284785484169548454917561226128978949474893205616886321612094043792258560623185610169115798348915518874998416807975478865728168723542708895510839981064122762830620980017864796848727902341719726545475587253368014184723481679487988627876275222389460538649711957185532218191595821268252196621759909599902837416122351834787431294315102046289222923774531071800253171231141914410590521981019024075077427191787046206321875791760004703140119916930135036076512417907490675519414146326631421920590351863692787153414255426449385093934476809024605022319247686729223315950666711715973480388563684235891575696684133096173928500715590862035059478468131579712312370374313203677303719164389340962800243364825917792678460331715974773836541604825896835292920591003624954165016905910065054692987565215623559430367545486265808860188647298972860843141504385673734261317470247873571885243192860095027763524330587892372099736051863599111470620316894410683023970406568708300140247244506312416902516431571904017817565811018679528970323943506690827023393419690660306111237248037160386477391173904978208228131732407670838482296320040055330268591985171408226661980223917372751680578775714593137924898538035850543026086743777643712736902050092996167642515331653007918551536073435851128720259919583340967328586701652482699242736545352004278911460233826458794300441496911655104364807781561408380632922477394948436981011199542625764105830219414355766042755213666200641805007143211086372380502896937149357967700419815494320240397905392562633091098416340852245724939202099439784959714764401992097924334814439282030866842022311799123567662912971499910618570474339836637408247244572783299889545556577838871672246479232352805428316958200250126003834861552517061624506085915589755864672442451325343067411727206401471797000491711515008658730434467039937880443879570180524211286822754090551970074248548317404334074813311790707307196406798158859501422773826115896613907934533197000351979674653516857075624440155703080039614233136928422515255644238026982490474842249316684714192011240940308989122386297099145210722357858597885954502721637802572855514230472493362558908616891749108757087696183137148113578970246035337212133767468241394608208149363364010057389035114374784257936232694246676370503041328843929335869888039527542482615938319432915824612791076800669504765906235749849303864487004464102519887743485418664837112448454790283534937887634584865049249183093676128255480395945132792746589319712022009873044833377599107422303258297993259053009952683073125814748182142915285806585725778055746194382908995274889862818257820850619385019702038928407322232070047373395075623538136943752843193951538497896870070708072992402805639171850675460910886741926869520053780823692955335675661796028853876225792395280741090027627584566851756515418520110952642865300331180425790011697888582995355176492690458970660229120967976215207451647876345159267337938089491161480609711299213035925855399811051118462835306310943826216903417260809592083170677331075385249400413999537680389306624430165299188781933544588706779969812970823600183626799544904089630522985379571723313083947451331516085807724869034719130450713763848156721255132181642809921641853771692553535490153497054179959363484349807935453674629684795734399448985107220709921240940380271791980447489337489148756110066112632275610408304345056564069522620562235720998196981202153438785373177003287534858502909372386592383635611023313257898002798994899748417505265631562701620338933230082625977988362846371770760268445039708424346192574400982402999063954103575449680957271523476116056564728644420100971185735579330861630086258729462194919222258598136670501018414621204538244511578369615667897896888660039776396588340463710025263088023665767759493127770918326711662899675510690398640935356646093691654946223386636680588330530950607043240308396779832581667198169368709389100996884254196682901617284786158219839659483158519605754324465037819130150001827042459557923642541237272035439179018434471997320821682005978684397292838624703485780040823248737988161257844104853867664724092792842465026716674831902145208341357282691029488763770627671805744921135080259083714572537269757702709079692459906901694064018462818721121888966532988034167085790061900319845337518005412465972519431544974198999051481073947827498305038703540734773247191770570982610840799281353915126710862625699439729075418088562782761294961798200803614452373985004714248867417296183746726629231341343805826821691525476011262251354949055907950180685427487923108355634000584925111828839608885446649789416697045630423035994829955251620829589690735062118359028636792229456242345965213794757166320092439336953573358404462792584526204496835363391180955862405139337151272687316245574654887076565181323671583488818301375646643472104689447933247460613056710683832365735371716760830916323591931829069194342446923136215594208161003232887671040787525828992732293102759453886276994609283924457564430817578763723501213477522367957302086142715798653023463829634228867619854924406326299356311726976675783477120194066465692549821022484770013603377397664618698396977244165425710109384539526510025034791238876198297355059935888877827531591871124410776059584246018969132009747771064570503470738621448921574933648225639182816942995703683807850503974250742007730277389764252764930377270175620020241925226508202907101806016744757185178491323709664262775576369493854729846046615864800289723711624924739849208276187623121888546198211290058181750766408803338812337239987623084683787390513280959874882734347797765884394397485853570998546392892172869259253942143123808769091073262015548718158644683883335002414650218426562083308095487396034905136323435693226414613648476108013538031753804610437030743712089345771517784444262995092897218273359067882215366039715456701855972697294635072693218001545750825007833605647944327348020390731006691435167014085149702833735707950119811436712071297283239333867088599407961883055687754139646562889051080062608734755821663577924228972511668747973960564088186170855772262583583649232499147277888936843555193885600577848239656125544599183283599664849530209474639566027817086687900703345684330234019936749832008346683765733724980468477173208402384381639217090958579752598696154847694030779396133425378678641030289746715170383330157714451336021510623230704790200205404830005461342402433570534441212917682908803073814304361272600170611777814410452561297320294609621855952612370283015063786716278433910027280823723171759228744919279906278889943037918288205798581342429146535788651728731468210280952623472862375106968880204918132765155832268011648966671906133663997270101339683004000644481366995809142796103143848784013867211498997261528374514392360094973393874699383192312962946175396773863353566939461474336568089916006986696836808313788130991867981853615366195632812782838053933068487185409222364615851142978434467323027303312963261317892056185686641901818045630503224109033198235356378779339230603243378074658584891458511167550989005301684997702877116359398286793570487711297317365760067366505531852006136504103382137481416891943168322117596139562621644887386625477432880907442458341638895414217859076980100961727618670207642380834384361040421996514945314354285367674303328735826755432705175646136263450251026839966819753103265728383310854028339340410812385910434462622508831701859043925935271803443293979570361293904186202195169919745673555288609639457460203353821301407811426988881798773575210977125177537115328826466976147445483380115483205391869256738703489692864102950056036108551490180462064073752476168413577663884912690789439470602006910691994497159292670681687269559934872052634530618669161951345734538288326157118871056478535402448783048090999796616435360553826144889659869760020710480233586362020068156632245089248178865185305868980204406869810130919964088418128056757256728639448846487338844802623861879104106695762220147577150422262163284371160980292568834818310482789828677939849533992613922941815843633419049032001992214405157740806779838496129924785633941594746084401110807220358194886317155327355833534836548421045789985548751498304091240621894162217935001083487755436266277800873834141905022428513121959093319238111224011942090397121741608117700447760206978650913310769959956826637833597549617921976542960096581365183561590063708299463620315745675683485417060082736701037585061259536361025215552985901735534772870094088652971544471283363008941827703369643848530587148035147709420845010441187621685247556821175888999845492455760712573769669180861973250452788771064103533751192738624577960841825986848414588800796037200863883317418405345235162752296677468299957788806845384361671873630949136922171324222730076752737261424088340794548795889708460068615122240859235280533576993594196779044211810535478452526536011066836187605543680763490101272212032999140828188410621624396026207512090538729900323283130309233506277558787887806784610819995017908094665582716850290652728391727221758915205451543405124741317834850520214280963673673292797494303026829208163987473307492359486248154015541149152167692443624104539075061839726500632596614982032484728271338351080604761388614263622018833859217284843827286557496277191177399705897310448476274733168463950990480557015018321144909191407822887984929297783450645375679199278410583932238689667622392067486564097086436021150811899971614811417501932810933345221026067385844094027445339806524151310235865947647436058719958145447845076158251709409725294914420899622557964301163557985944926224792617389486379513970336505504231434115057082012929700650283293603482678269864001247971896649173161040473020288619617538333207873548805762070908910922777263246144874923069641545086538930003607924918546942991736271128226516867079147574190222189007531892065227221729906790671394810907462918634891886281293735544177151936526222275494083142461296744241704532456074139118088269644795842259888577312170273327140719959707704296899993523375599048617989980073336473822907078623925718571421886294356512239543025668713978318321975600164195981592127396422333504717458795613827074196723633313441895428829507731183143581599123840546076153372995043250628992886198268595473541843647453099095027393165212724608523869990861263443798537150656915030231699350712890995938471944621763834622605929864528454248573866664383563666527823803397294168441628075397085926031382866516401566056908113152481234011092255555442231224534976439629207748612210755712787800680343685852882202858634975791719804019557585832115479696757083466011770783728783171979318202834767937964543826255643172747141911523641177621505254883763331464107429620268676870642763154970396587348202285985796624389809307463805940233545890138797017746704654796611268301554552786997521306661516085492804454876051694772368224893044916692100970782256924538877434111070477864982298020341496521256595318185353156854214556347125813117116293511532767447876587942840361182479571730479368752694841885113735643736122960423736051532055980378584518128864397828491055859355038000432261114915420559615944805037403230964290121554487982157018207701433248962403927090025723391148571637759637981507387978864835139696774847309573574782746301103074469500283009132508047137490732437908920995377198665362969461820306046274226404739827334496307916091010937267770548187947591876099158450950920751056296218462595650114580090712104112220838111904590168336894203129330739116239744663374224968195890673765790185762858972168600812668104900804980516467719794960035940732590299017059987452368130155886117942826609980266749105098228257940868821938153411252121289093768343520401110692331319086150896508748448914200234184853725334177218433462527898770878897561137999112651802478720123925229588578365642228145737672001748019490927337381296596961948689885127222003365906243529998499348326440022123047683064251249054710826646003295044877521954065790929890927452653941666037053072974737294625186486905636773679914316927809788423951160051216197203997015312708888099961187162525206487993574366239692799769862227904792268943831289967905936369868154383197745128075581506876811595626182088260835634578183464760164939546779630043438508854851089046443268212515538182193066692618101646577240309904618937993571911057620654039090370890330210930574613285570048154845537703370145279908183244484343193455654693732571573694111842084708845760418185924647925861494733334425659207595441577563208346224865790270783618248225942917106226613618502732691193109960252869004411733933731867440321175189301468215621475633366403408558908791474378338402608460980121570430132832622557441297970235140853634272979798245603358131603083346060318288067584136429277359296262296229098197779051939140879382296220522082085273958011505554506770254215290130060043256315214933072875718137026896729940136788502436587759916087072704868731975311129327301322760829421870360048722201541296247577569640222794839288203937997370162793169728038536594742628935600053173943584064747362206560700037526163153916452780711175177661833847806468222154956196337568484718880071902116235177592387223300792637097371881307229466054591052520646390875964715223503003244412937221149238105142997521003770994634289819573524363025130179098184889441848266327405912914182179544562646366547061954960517398337717083464567472990439249362699178413791218957203339271924963193509659290877724808608039357210682099942832881175470590501347065608366947469617557295431099528768643222358417751898405195723606292912620960587122862321393522624273665964298732518381932377287265159400425992987843219838666070945211462379331395200702430952225371794915388443833235630305357772958825755330678692165267023636526535487289041276101546329178020056968571378510110897371514660723712790587854769482529321709955087240668276693588699262955669342844496834004026762730908710279125219748110580945296358082462331846121913929345392766453935938458911577057995881311670969529315703149720843867657166780381402365838625136696367398065588885830147175608811985953069936127845254606996839766700407471357654094427936361411489775918733851509381934305435018661697647355615006389533825397043035798426021190106940743309740106919474478765731038413442717876085093074062012948879389650448660310475963774066230002093204866904888220223875831903779607250820020348123589053432851338765071324106753292296787224224959474914191655106635338628702199777623582384173099357448134812293262939627503976561710924607278579367904189547934529280310165191899875328585467801862708024032904246579936991530443733234818006504938702531653023349061386182809341678004349131584932933091635954272040969564748887325525528993785757266695674659576000154860650693477470929704387287873632630504395803562525348875766478020902787571999013352325813930103868899958605762072329759949598395712406074496157181263214517366350910489397524424518654494426305291392644354966488022500379039781004572120317850160822496573132600221491008039825617077159497118746776526776164224863645302431622968120357341855313492812425565800742515845393990414070397430743227033003175085028510434406766094340478381990254504612448816190620177746542769454756702838890433895087616478356320580842352526369962087748083994777901043331375787628778773510851390619591616436503638074300606582428863038507326955380703360845539967559282392452347558758334114182748803146732508145426750647586771567529385135901783197948259454271479006018296206425902312706262234614899874530476591782257667018711844467996812100891785314162218647186208506546902699428138164226246533572865723469116301902134420680938165027420168799721926055377949535013058159153526989801165285978792138674155580623896289208838749504073431219923390553598098297151628689483344554150812651650910779237847878143324560089910596151000954583158129466640237554274142939318364805300694490164217820546678239565767072068521965170426849098095049312417447882001646591349295604757615920420242241794787487220864055067499408063960197703230534812990066719793721298864396932158101847820501248004179629671184558074265421491569042119444358880423557256469091055485073912050788105407221455752071909265327110527054815913258334060081562969139148095807210771525815215934704034814999968352073039348778586599129498845012230173494065186866896916191292061492192246616346619581652410427274005797943834256201906337552550475344809598455481864830125948911377797324018631545348551460647972382199063123479529579204525360789341629585916756950520693620919741601163327333690060628298578659080712436448665300694971504935394536481957664866854414965968063912361827831381912431127587015011547755574098715236992569498686421117219539555324349622871769733533294924505194017076684190571726152329177318147100435102712507014105857450497958769805720261024623376072049597960490921845910133291912300049253150180361178224131045267170271847434599297114451854975090685378434737682205241097420793548485793964051091637531450853151630213290033620733947229696985875881790012944909191521744907039355252600845464011001474249808744256543737635057892155881966190925446862925191890215412488005091432461825906791404891555551026552015999405462394783427936058125118726228544729906024675999394405502835468058980134512913780051260210292218793875949690695876505175486164885443390701110475745825965372369618412718945880699127899001429650007501786364234769359317741464631087781291338453414321206043501471723318659452253073643335143720236412680281273332007454404573657198443839903003628303964850575756555109633628160877509139400791391497150179179055542282506200459819954981128080815030261994320032997965187617073387984963019708173287686192575534602786896962592914496285720981063122298012415569352362222258694797780117918030092225851906978511127778126624910855825841317400538703337291734986601914408754516934051865916786268027958284164806748410483474176268082468372319461560179383905199575575645981110665172749379465641184794996445931127295405718950257643599386657158675794969982809583562094519561775088738992650403447375934630166317820078575761147175175285925657852633761956830076518000145598960776854072566241025205789362545951875670612089195443294812417646796204292878319064267313686187134722065926620741119817765307211735231863932743982155340316758538171367834124745994519102299472035042503050176493875291827952159020449067437447772825849915717793099111606376049349674139952046337413013231449864683988700220773513914919810177658610893291955838198737616581735150188156213246225158026837578783547410737973841406959926950629035351482716957317620422627067238912171141430154741543001905581778120934331731147125394887474536106317078026189228019380305103771617383506670457508394972919119967525230827973217732829644436368363052908751366896569806132210364957228906089627385485583365881236507912386528726285303550645277726768086635993964034441171271855165161215497042535194517876690444899352179383727254872715917257495500167437090276644987240548470515288395445248429407299924096864151486981249662292850013114179482675442883007749181492812273766373679340045361034253308993934248603209038451358849517717446952710162470553269862477109476726183839724721147676185434960961729071897268033286523797858137292710708578836385349981235923646450116297861590364141952553912339452809914317878310877654185063172846546810884835759893759606643177575361226062130879837068194061355748920487564317571022251697414746258241145040497111852355285660938276107022521883305273225377690477957252760479913641532765646230017371931422356268226138645590824064964890172277068410388075390322392140254790210230854260188764933467307974404948663250484118418424348123135066722930666097944166461283751970104319186072134852190918452348620287684540081334548341133065940664614949517103343251651909494260503182247153104437343960440342030754976801393329963354156378379729026009601518720336713345548991062290437311295976361747176313229743473751202059499557408474498697147952540851355582967517599127184903425549555838754389204376773907773535576588731777029406451046160515177403853120901492269243646609828374721978976453529408812936061880031565102122759815701078264292130614050129916486857606154486842278690485926999729933720986384265400408992937748157055463626820310337664530108802662177217835187957586036136030336466297488800303188248446526827933563941423922659567154556219606015025920531686131160805465218831569830390579486385269949391934241567960083293545232637186802422313506786160106269559823023878426613070033570728363642222851999577233206223380722183654488491388115101383655620223041708632619228181465275406501238801538151933962807267113761290086222948934011138628090628552685123656055497080287251728299301655351901343484361770383055332080194379058878723777162555675537350161910576145622751840987037633413803078411234156378651938014283133752145497775734575339867188932742977384491527001191117528663498846414471705314905739879072229528388701843132429264181562539307811713180475674052969913156627530982490037291181597976659423025427336168546645706822252001067757844779627540867407564417156671544236530847617066165141866135488662311806190527091526780257415945241747853394225313997220308355235475058612863900607682279269020976163088293948136471791329212399131984995386713161518176413826511215511749354289730016133074438343019789605770937236148324637125956811991139525952836985141290496485117167642508391936145443709565310415014388940199974620527783781404505441648957862048583059388735062347302184603022098462196136513556618019760925911895710975727564425211319056416927456179255067558120586285101356977901141985928212745770200087154173483910122606728333831330323363007424685505765061008621666871815741926861774326474367187862778049874915514570144849151270299005920220623526717800627901550369649727533531214757355562782453985572916588333883475248122174738106281192258094978536095385834114937997386839831826801365761051550783135672143755167167378854773745437839797911999704916588470051841687871981996675129870370152463660669785900748219486469122816725053759855560173346169885716828572199646679246234075082330965412537153151945784755831520910239759869617709867345952560056146979284845985194629253032262529148291270439240987785152695991442943622623143008431724517320689174763733155306497525075325713502549421663440549244920941091035129719205713315299451895437594016432748331389122925074932917685517704329756452962440843512348806773246003709850086127696484011518674634436309610896883098891370051089750234811852355481547469730363444868947905900829595630993935400870319386961330449188118515546736643623153050796767136740073186459012564551666420273630721566653429283425111046192450303747324453526924666574898580986574083748565340684407211719828761506866151461553683526575137285042547717858572619597465364816765859679509780968571988885876538024926625151257484332231818532982988008436400799004561733005896882989470120674787766438753198949494529158526577258429233175067386708301367302495666605854762989913453667812568931221081331827329700956544550891105606737655163492738742501095216999435710254750278078076717041901926451105472337455270130227768200343363687114037767678074939774597162914228122008245428966073040178356414159213494049863496438177522825942375461833708489201076753098358128695444376189605863396805537494932474279579918362238606008950309712475674932236505659473974250445433812805103843880677517464945849151085760671222877341937514611107880533992376139583261469826503547598594665889787087081189036463427062540281799649565989237585397313297832929694285984913562740565400757954848736843821988739998064621397741238429578189199630053339360919614969587980308967969960110443551015668161006613507380217055897652367454557317367935498650539302327024754600979142429434055483714307932546884183377751380653544419891798393342099979166126015747773420513216879462451912204442283607239957798180158443141255797276746712361734143652940367278817051712041451075508333766095144526296897130666222267639668268374359767516560913285841146857942950551411921093255944208355910123941271368541851819446995014044430095504993438638803161862665714152011980768911563272247475466092002945320272841595592694747223862674152144872972932965293823336645522765558987345375066840105423127340815088805379446293210437775370174619677909230756218983381607793191463516973063644743346465417506918817960749576350267577199934403173165062335634041112184899203537404411037554296283856666148055302467103208970608099181529145241254540142536228812446121808186997493058019522452289374499501153619476643623979048207922426121024697886984563980507246785856659999969290037035259387004482945245440062508597210233459902826816097975379497574356488715861786036317783880210567465974314646505567698032563838215042109613215073612785126429969234891580797525962666016149796453991048775823750178683548817009489843912181899360642377546051078392768200459658081445848781472844950352122679058432335626104693523277643690684452721572035660410001811929934279601242327337274181492978017316790588025682880448651843787836154445196699550503633952038319911756277894906063478388115180466919025088079965061781788321240702985553485907004355562584963538108313416222123125640505199092816103462949081581537081743909350375408994013031061955856806155597451750209046484837540603011265930066910420215456916798923457331281782006939169696989550005871210217593122563314201081599854466637799752662295470329741051701986703834345747372670258625507502016097449263566443484277654131537118235690789549099376370038310317497321248888643366509759722597378065057462348078618733502283498450735864733111380681730443630821766887790668110545173228853438008225593944515664277653437152247012035346810033690522590683491351696200611042155082216992827689422950000114086656516227519293756488370385558088430072161275566342028375335291182857185766928518037626712197961944918637941895885286928253928808043599922994422450226099824838017386866177558521255374656320914883407206542792793964671484727098879087130611157522696810845891406397710713291523658945950931419459816692023713226585791983925991198238828236426239265407824924336273205019163668776416101390496690947406604914448468988357577767030618430890888514808294120894839943576484472827765148591221153423610740871412873656921762799315777395611623023263035677376851158176662111286938506283815658163462005105460502546863106362980388312808585957667029607870117082479708224228131717887273105215191872545972609643920804172610382158671407077226768133927814739728713526945190919366934966112113579371056938457389974244465911416623636807356524290899383948926000926092098705401137871349720777042485860110595357706422701908319963971215277239807046110555719290770580413268726354814396084038044741409097229056308756645064056472384702444452797539016168458705187425187391818541597839878164337544029792686216777830766808900734726371940047646449224003182507136448469482626238279594451239707129719504268870718821275333798123844137997166773321353148667014996895951728801393428601208608800969066959576215722793157210173425951313048662059281146756493869043136994425063127744849621980112975816658522219822556081712711758632537147305356486465420256133665837684089648081900705936727620691451998245706816581230212781496350049839169742893264910019617508451202897576872919025932410973299510601373438398611631877622193038473446627058039626040344016957330445676011225986708832644195929357417521778177069273645060326537181075071634304365602369182507625340284352412491107817614569593461077234293674951451355449734756313648707965676312351862349120055524723132621129144639237041257911763037768263864029687439078219687630694120129433102542789689736133131858971851957771610834407395031572132244635563606751467085515689142910517975790312634151204954875196015162812601055176882867153177865834631375996820031226875048075584917950486941402595605237695410374633398273343162455227875901228149139671405379944150065157088346573611179712477498763665411157995384340416447704201966703232167523072193456528025845348028322738476306891099658545541404919910963854578092211474022820074900296957194299093161543512116410233457186998024319033171561079775588181627450331919906319660160284951338962984750714525960055001504696562940715686152046944449100681472008051087198482677024307941863395268444979441523575896991303944966546448837908056734665515635366982134824889103402090465018335415709017646319321633710904877604642140085581796633071397140885653464585471216343867188900580405565754421219188592468135288097007258249818994445038806579507150532022561347466543717891327148146343363429573256665740122862304538885832747931819793042258622000236038756526673296972679116144953448368101125664782509499862704191454555992675331835170361780270159132024861077867330021983402956297946479379256647104796930424484059812207283373387550409809125622989936393904095675031561588521466731501690477487968281605452927885790594710540785379754170032576716702633257955405373023498761823866300329408210298762993814395650417488632419486648501086465599919320407944230153172831546810085277023859525224264347922685576396781440549625181955161197970962363019496276078673107319615979339662103005938352604394213159702244648043929960575355013157277309524326215525880255928504422937275687554365170252499903738335810232144368213096697588342715292647639347663323857134135311290922109313837162057739421451349257066152216487775610556213335773421149123773310008415519590046862686465794635434784256194534924480829119338210796289550249126417861493486640928769474219639258509081707986449100260890924819027460164499343407605411866025337802817044909519195791858448139873812400778939128013545719069437698433728228333018366843773575519808859421681974419161153582040759490783682079630685012254031177947936064437354231532892925577788096481976559836153100744674374841768595736620291847645427320684762900204420973041473693547491746956584165426608596359883945143761746496072745533001198174822685939717583247203214401796319950206649417642459597256282978957376893444633173704674227128075826614954030395800857924984624732006576754682441371243137231667726216713434894184069709560422593725218929405250086291959736082184338384577806907281590816889537056206579018910368804540809559696214309611094770450814536474315072318848503919397541683321007367502944122966353262967220345482623200881345780438829215332684243601479906255547935709414227184630109516403653766637273063434291324124453394509430512025171362470054669176424666930304706557056810046942748641724988807739413609352394989472126712554996015437472914524731866597156778447379696892715839779760022305616245022458720858409806392416944180925087572153104147870774566543189142695637671205144732019164144092176675044899126915602363323834829363633824770868775461463060810838602572886642938342399813559652278306326638139108039664354676357675664742340914847341032604337158061309332298460983663511862348316276510034335167729700340085743681933702067444118113373566572619273752849636922605517098998369494747901480901290673807679381751866197880766575613327238497006197365628550380019242379504020148812006053393745833118662315106395912576895102608634408130555834146734052242134741790944677449995917315560461638293804138147722951438294007650727241303632537160979570152672622149209066964228918091997060530894411865920004759986971447593574581893203573291857402137937069645292975339440971731946611312810446193623088788662078169346600640834141369628611335579863234397247296230027149757401252190648752087413898133391701651246749659960912325992010558624350767709574621852156082933861997362616102108611462524756191266225720403480943153520024306377472957461543870223780094575133709102146954496543361645184910805293852016530127223734129382659180737706606658642512749243990311930670577599668493771685180072217722715950293089947646776719240771954359210145871755103607513581499041810295405169855118075786252518037977517082850463324384271864065115757707601855318796552144380759254233892991880431357347908536233168916980618444977128374964966960265324798518470287315634555417144154995756649048768280974399234187927957102048603104283222148632409735844151988664547965334197339191387152773020497594220973291805771232463899200341364230717943868689559234859998639864210624343344039143007957673498277994456724435490172878016125562715453174331899396210489771067854720243453698690750020695384509366306149860819143315760687484616011639532940518198323765425640701000798798587318406091641477056865633197755182123298262931203557958075211295555067858052215562972083886791570427301053858421776501294957210235454541972377004918030208617581020286716038297474490514125544162482560804241172406755296088759370246394715648597261154324478660443042548867571106518518526996613829473557174342689597766399484862989326869931463894126296601264455606149216519340988028338330307521783006341076079072302544745833160835542017674147302053697097788884568637487598323224492027892751826134448593368222394605917789901685051912936096627227893714892933593177695458169406545575016646063750147922398006805127610388351774161569120018977785680585620399558206053025247044498538172911436813302884695355066754054701827064851236491146028803329768085102061793693431739459061450739622907678286610935672411988807131278298330575548214924023691728880069051461490882645526940785855911694310198750621540915711048857945978677033769553554458114445353149342235529035539197244180277481476217110259237982040384243145427978815492063235798368034944588637562769044289902577894085765536629342963421998865819755194201690782702404972006578440325731938159392737010168081499639444100657184694834679981463079988380369184464108708047521550739540220426978323096818166850144439504230256613054674220261789229362307398628249917741821352103481230337670961023052582686128200715550864311425020936670312229186743272137658126488230633187302976222153271632458790333963386699793560711603340955955350130496442884389005864850181877032393207135447299237055973738274148517216788501975981116691608655448121004852410147166320620659283043069108291595029690834420092132630834440491203680099275672591862345590081476680267225159451301016652763701421842065082863195068312487662469565425198708202703672949778255948400132540661422425194509394408891981739623337688315356992194537997209611767901228477498397932257326382780743719623028066342629694672467301584291084099265659363275634955943432373826543976540671633812154218714354758083457712672264004168454952816878584556007009970111882857436718985624523881819146308687741704045580063401995326136663194140175700698724273458914889567470649841832886444269696301925182193657780286786979157669603688265654582067880595101949493703602150616810646259797015961877352831093558572522401572015926583841435840961907499092936223604812241684398195819333603023207517902929806865977389110408197366179712176985644898716708010339089207874230846907239054265066944992716671153444306758414793210497087508715966013232951440462543836773497253872380734666117242035514230032849594929675442204903685340258909382681746598813315312284381383977274451936856713642934932603788824686867332040319588164718050275269171125354332454531898155291405895774465067007495842900451864395955974319548390016654335831604101110329295273818621528781351510929578825129221469925848526351978636856542918780736321106672685508283744805676479670462863938062002043291020632666355651996545226720005201645251325048000181970563885954335321577769682185012435434887406612662099163822805985746756817844350767527861785345055172413579201080371779811255370905638750674030202185193691087153410327263579248196173409972937810043760984663741474185195109638431390781025485219576380228610557417859242165094003430624612345559764106530981952669936283696765744300637672113022550912192891685012498588531567891620280784481021342284778431999340604448265004488484273665104406414222116433646098858822152750602716232224383911584750089812442059539340830703312745735649511861494900342649639289563069503502720874247649991573043304819967887364709957519846186367270209001921044867398380384915915666560049160823579290444517763356276388364802581290180156519006697325373946384961942892414206660840999476141801601012280735082278676503590763566976367804505440999049911557917621822963845693008780821164538525441775783625299408078643865691533276922162638496255462561567760516683777032781901742123355004712555863505192184753581754340480227849961098387847125020635294027535787381527253118637657710782334606692672945318130605985250259685091765961607702524498635575836091755396864261566438885969141133174151855859086999708302227629338297636004121625339071649134464474145939393692540722036090863568555745789074077159397754752731942899276568665283151234956944582730505344395930359890731227179030422679353220178993996353024087250807659965258916520942479944325835173181841818354460210683567437836998440601171409944423586052506567825189863099582587719672832548376202599605571328177966044206319571541550434851455905444606654771862039884801184711438393022474012346424864170494731539989744391630235877779231212308658315420754443080496164316301911476702022305941772607685976436144727453960558963615174376096718410235291859059056410926834320333622682976488944696297325729819421808782366818506756369386304708909721958316305791436653446472552648871974644405237060953617250944696643062882230315640797141047082324898516240747730756638636001096145539515390169819612691350708792254536527439542640663303180918275256952949305498288155514471667596521060746868990967507458177475230415327599936227869589846643670552907572612902712931371029314332132892701500006778614501582844898796400262399902872640813764273074260363248482162992117073996593416988757318563090339584762534325081971119363111045117322980068984219181856501028898392202972956793798376533631919601352847184718197385299422592213373836365579684531357504209218506742057430243854431183297496125253751589736318001647870040085485242421382890472109026726453419054313872969772668458630128506283573020636942505387674182193246326194208433844851865409028504470244374032668241675312060157527197479101018104315982541869470955814568878619262229072175241668699513405218482693133872784207489856266377075948301074274777834308069239262266198431742525984024758481531947140370908164308462028615825370810469075415783106693419118056183642364302720179333060772335446028364546737024318815820146351127315367689122384857718765516809244623047139632935625275114826990319611773280099468314121939494598192450468931721143130117889763364522880577675241083216732277937767124946140197021994762909311232679887365977274640786504885204399520169522928130941856765297765824253537770283605917739525700743861402751029909828935898555768992435043086861095246720282316273025394377668067422593440953527793192232216163404303550841777214665271573358193568686368371722237381847643826790436440843872188405011384886894000264570983680570218686516257488377748969544407095655168046629861782913634134407546662006470846772951454803246480332576440519461138797654782588246997794754726576761591046365024187684479110477768543892272320087786341014756037326027601954485107371370133771800061248544133078602117171716170860020266443518377861578330416282395922968719391551793277424999123091190786748619186877628989716799596002795926881373269535221068169294633256860429569268287390155986200353327596124538834916498242937046524846589957895936859232046516643567496976471523624871049859530331959290213047418581026382542473772927727991123854069895377016008241990504754670036919510410792695550276232893758639702807187261601270509229310496466083650979726070097153054746630339194168923878676553841111241765293740349095999765910601553421938979717525471357377558228068842143881885537453973753855310500249073725603427929690913358845828694970520835530015883917783237746262772561598587442232999126200743596784140136364720517770251994131274535267881521744195954129788812329766013063488333072271173338688307594107138117798249031553799949046001776711706343420470351425694489323904261729129993072018665758455981402628910098341503572972015253652497648269252221272506223430771305471997165324908910637932695251151268369860642835595889600442835147901005106794881909302554521897780774416515886687825354514047051862134175524911243581890445791824654450417306897568989707587498123254359320616015169303109487166649120987162566897298548885531448089064674743392013180078136326124246035153957241831972071740765540261410241122231257421149922564756189840320574138822247583832291510589652494394930873622745183885727219927988939796414174896443221250999241861597663324846605209073918716443236428101626990463732502885799849022300998428647294776013303679931544190929541691586140710584161183506508519233287235013850364911154560938653418258582084368899284712725931028881227559053704872039424037725163127976333781167421611798598025692694875124324002467785747463571672872676118745845180756408380872670816512221404703098759463946086961565652374874542063771989545209493694526199640481768100308023549509278668679114763949648223602025383029659935837944327519625930283937746343883421488421292747930187763534803644269478917201867414567815841842981617635651243483406226464491390135793502472736439308976767449529852637686100113716900861393852910250498086092690084983153576381521504777185406410812083139991945390733184412640083388941346540038799709563767209141626323565347103290421943521883871787743655755362584075437194941580579048651889831660495866050535871808502951733543940504523392903457602600989490291576662594294180406537896312654311566435605344135596112542368521485165979297854472979512876420624650153508060923787166068639558930973623972900784653209963716054679734134261045340060292063430866895861902806502501853748831888347366802132207778233952494715467724235156769068195862727115087766466509801508554702275460182037719726464568695773459810247851360659995641378491001370219418415515247685036607914426762956620908604972261457628885424476097490007422429916543534320203458921136813543142226366251095335865243925735540948081514738749937692454078840883136419607123076257075776818790867192445466092392653451104617639450232058821767637864510467443438533225641587022298110742667520810824670468334906373653130929729901514024409546319858422753380406759789331726290010510092462040231565791888601763129703228148935977560394107140052924515885823322631804896105530918522841829578069380164062203207370649328924995340931671159865731916094383466732390205319858236754263531606074343516540670068066224540050884221095026456556233111984185340273537784437529990313066214698162726667651499622162859967632357866419333186712391872205647070383917186250390188429715101489279434520039290451152728397928761249621718922210384820282223668266787150326335772581128761254907895229478597550277479343823033077266635865907889282635261738279525972610903892551496898173969405953831069375142142805038823481489035462702420691071226418506778183531510808301056967822325086145926793651932612607139646030609874457440238775547286534145679283399101981236098748697879637046111858506261742021833672564129798552372165711211069414674316253712541494724527714166746085969436656905123256425617134553894882781608732969594266860071752148928677823769036330772486377779541310069238811387286720481146923339320471804850927402836102387741719148480042931512230828794166870373836610539178030683663938910738512599500660285294887605183668939352096870173088170818156089388971586735452798431725686684776219173519306087470830305811367224722297586924557039298618056657370828260371871421212681028009994081147320354389738519200996645014463651896087267019169284189607150735821962421846374500196027605604013473897800614258651572856626458784818118060722413727335660048185465784899844387395169237056779165932412371958025809976970403146818725981596347387932376935299402570668326083785299708163472197492331721223669079117280913599416802694748054962552946113408063845170687508465563246011067217337199840823307291547871557086219138867280645022006920729900582872470915452077400322211158737401287084330930410699748334132659968185895587144066340155722893806017185688063949153655792587035342877460138960642371776914239782144182593427239957539184609090875802569672220792423870730888183523425858930402374347875366818994367666228521301643925096018043642004950201770841978978550685186042308930697492007670153490995738862782685962790522331862314513549659088889167428993120024087426674316904049045219519100753520891681662700626912974636273005508903172614967310917236995653638147247254716830195364440911043886520556379238706183280750959477048321551672554325103050031785644172498009815925255018707347490818050309549643679424470472192348714372583722717325753041398956211862263870989126271217923732239180100680305585649486934710475209233095008252135354535843098201732410283396419586687281614880664403325016855985196059102947106442700755293089457531176993312421375435393185672152569001001832004315462817160742533431850736778960838493466427947828740749760167978832702753037608403397218957289765117559165638128314992709982952838476619384476081901419153498574836398958233833625504480978930351233284234299964328638526703842214119611389659092415104900382389512536361076441628781255208888126756130260034147351748673233129771353909694699009731546033323680598085283482254608264555440870982343085151119605879348221274755736267476228567975394787799145072668093005002545291242298727609352991060332082235209872773838885571524826632615504539278111235509312977325084068684998610637310154896340633377768681163937847661998492266660348069397245101237904790390612135399754046875505256716902156706623186618446556260684563036434109312810498892051895681854683837205556264542481422687689554067450600646516216194572386491599282673171658431948581826823013126786297142625529450577520071925115006326986334443109770934714208532267702173293778457738410263337749400765193870214618861129213259271744100702167258648335105131364971002177531570956638850373515852930403101020224878877338644444241930161785633571153142969007746377913821778180712978558056730807083859472770443189668912412257784116824561872308851846987441201895386243393587672595263718681121082252667069650897122117066644105551874372572466313638303397237328600898286052847995959309872908677674457788028431043592449723381471520619435359549554983042743937622398948678455760555117289862045576945334607880842251273255444746130003215753831588844600570925976932291467688462888226645705684275559978075984632308307700201102994928856634901411890262598254888317111889713650716987331351725897445682212300492689031456698962348344571481997459886955704197681844196846747957725172115604214788810249436423312664821361901505640786726005268911847440672735063912217691363336625798533946090271056733971916047649443732744280357483060377394870675477818923327443419177524473704086681982075009392876110944654624377381342082693392044868913785629646143151194967435179668349956064435575399777134320347617533062168300398231996634395791787411837626043285854217437507501649696755445617713832114609390257457110209293507300385174212579869117311057367292242309291102585121122098560503743704238445180754732240667429386392866377838360449246500227076866217342787615714413893857928892207800508990419839747560076611426550243838018083652220698730198142018305999666706490894681869202667786598175212898159459911095406981252223671031178735847508168007423175662342218652736626025180298435630525920927072698876711444921579687994629859591619344712049069108252904176689075412734001555312706976151875974022363024520879715457415117596154951667865068534575568499907817887007910075415788085696689631457974349677439480771326144534090357055016560893052043630798016916476603069936917287155073866438851860271511295557263410921662226944084233360617660892572964300142181337146188360900828268820869212461742009804491752042102224023130152632683420140042500695969841857494264075359172395528578215449632822072419239119884440074079476604550239398935954522437276791799808817628296948776800912948224681058492200727942104053049991438690470079007781537323476287939707667579373629658273386228160699141865718338500461742126127734015531377540496051791743996027432521553463258668504552716358665276378828898119741726399726503814040338019009477955152143026808721069275660531940518117134100695358370562986938666414859179728037071119069710365129599248324430351408679507389761348997763153904039571493695701012662170702727102304203968550660238507446833389237299013585641904654728669365108955853680801814475016359767712320448459742940258595782170873182344989507204717285344954233061170597786354183419571783520156383488278709120818308743229686284356749121521559315913706824964712274469686326793533296038484216153493939332798617115632530489707269412971697919225066971855229665607483888707268056521101372704690528237483789994513739612289771234517644760393363556130339552833453250699844687579964848817479683482225540436104154547496715009932120211933686247131198229723676634566518887015388712257671437096081687157342716648682872863575036191692686023608731971837347351105275596178572277066823424941079996672635982715968974169243610368617391581847718577676539478941388328821648940639187868564481672459287539262923728106928206419699807298270326678609307344980375134773288691619629530827421980304820589250821812388822453509788943388940070338919989689799029909088660970448056205245081265291365603439728024730312287404676750744494890531382445042936169196499326054973482776155106026158617309975885797264754291244801423566725793998678275826580047435880009112610429580238958683493644178071646926024850624977748528505727809646860599498207336658747840701551581911579642383354715041869901067751630638622637088568593946697116847276742259735575247564974926567522237602632256873168391610973858156239953444521035348784203374099344802456465988649365461972188507708582551329428520974963193934525008632391871884198763617094995247629451181522157699821010753978809568532563771719938143939670454031558401117256271048635000276230966598457130832326481665748302709673648156076171672722780734948315019578345862585558202414212667784068546211637830925053136481071522186662790612379780184553011545116167858018254971490673299388947529706474172957045860942884215345700432644185682496800588542091006634217667134566194607250610831087271796873212236775407557967683359015332433970868151403635191847662346074270084726619396275129957151050618615464621277669846652884996598420292714364879573613919309784626165968128426793393331058197888260685177767518057225091313191553142261407437641154711189913270835074425675154285181207164769811772651427137692350073217051907257017401639630010390721276665684931718479783327855282971251548529698271194130717025154744112096654983464240973414431677360484250591652388990295911385792719551119471607114625882909361198735819664012299034043460561375409568313229217915317449122785411177932227598045837678068026520308485159265226613942839811218722754756360677525337820055747624472491898354686707738977369821056255333180023808802938640961309106951589826069867591144374109169365909454922936017091866935548854776122247263792301847737412419984342689823222118999461979217850011595887708176975987725274421013269587516300788045078976744975161687684027451233268764912021760342168389604118651326620016214502001314454967297390880104603637424129377503641476976796430450540684428732192847340535488692866748981417569691756734980328810608348163729392194009267053091111268188024629481557267502922578874375131386265180790347424587518896851884936704051891179008372935596109707600635111053636235837064431294968454105373002830650440005372030657966229873829473092773212493374673940237126911455925547572305001410677009438341032042451901234169049875663576219163309029390900104353698482485008582377078956760145406391825435611077269709986926596325872262562911106834116498046649896045406352682402616358765944950458759458992647904918423116675733075762796433338968334188885291591675490804289543741384805974799188806423102991877703536688540061495299495958044845076329735679450702615145120974586417927173827306489594391152584982258860125355958102339989102902717075986845157561914230479032967874556328244539106505564546077514384336217081558194466397687573229013799350445145466037241276092277141326352810591793904656224228154238223376085791493357096663766389597342753775770180128888894139970188725547831840352331381566359967806447126667416229209602018344974767187347143977807565223547285971744091495008951472400033891192436786546893839766964430047104612276654054440766747119268311535528522173903927226700611904794448627706007861963149954321024510669345103948037620418563884208611748585869308131029033855175922945197610260375434069578112706392970054957302782411951484457091070760490684752690386519577361217980004207866363244947118906379085727387953058280706968932525175351967171117582960599705071721717929593383675820682264548153976679475831137456961477228280739071710908351130994944085533461096236398238439048108228180747845432731193905052418573480007341768996265333346318416629319436384710382307752968174493179329311605195585022130934660151903319493511712378217722581815931018670247976461639978940028069923617717780327112480033626320636979552084961308331427582299778802550367597840176602137930953741845569494280145509756960255858681219530162206613048242526533321530418160503372657268791262385040896149187499128387380277187768924473838648824004524837313869982749659779768733290276133104426073090638690201644139203246953633381960641768068428830637238974000142237487067153945822585600665239545677475094399794151046725848980503071027844919007470273748605265496645108380426538674082050862928367414295262675448813603064334240552789493315214485735331939878304207834051492909962854228309172410619365839373666634890749527472707007015247126132109079821779984960196177163302012813150745975628877710590037123775709262249454948527391926802881329536556782807356651747789180660536412870036207711686315672668259106442881031099552973544888735377069678730036595093163004145203134683535827455637931603199482752771881441448812136832814382695095915048956456719124584309362851913149423363143995460720056892115428581273881655475319597310630187860525554004394657257415302853009471965139749860085184675065606004677820769595713981956349161175345517506822698899715710089104940460252445617798842315056209702532932785655338124307014125109731604762811462211989960646426862298966801424208875843997512881127580393844173930938353379908050419564834202303710085463029430845200750190102423842842372252193515739962156568359475996729374780340966086614562542910968512453571461022987644668071793681532746435909835639594825395286684161035659590895533310516075764153871388460254754442220329670254497901000355250284556446684989655010449030098231641246947726043288147665228932347213908243001628311122058229840808857329351416922070083923741622751316434060086311595748848545459813618863420874308954819743719405839439565805933166858750293425590847779339939110449767634774884018296728746441694119317398616028486549474108202110003424591413095780844528463702637415688655646773670738478728714928653983433490755371904806958024812010693435763546753242134209646705286690537187485562744409682074165691545195355151440588613516987803270255247318056398106779875949672593638032595091970022007572606219320767105920845351210908672350649827946072759709359766540920525664269647152190923665574366132694999955026470391537274616902544357126311555008519319615300297817986677801394070798454056151998155270053667991443699764608076943747178372379605520543244062412477716355193592102376341502488584615328356760375922689529244079492131149365853389442405631293277443692986119658104560782460185385334850617677933426377170952544084277365051351472283984413334634251581509470125263619288894240956998635639151430298515179526832832739057138406605016472272667944437020343367049899068822788600671741981564294375740515441352906577318705004995613176592854157486614427891561292899206983042072035153939940949368270883745061915363141481362383261955160725825159033958297265926348960507408950566092085535665911651096410459217476467963677850610282586267114954184359597577214551862650674404373657088288767679646551961298837950550236858316564238612986981677806012940151112181193034315756535391417311136839677697611377857507575241077617467817095178827901471600331134909631675168586128793255088958823159828746802932234696497019971078592196548659729346007372547968114248816370062101463126270556867649327991509816347890557447349389765262122646829172032689896255023899283716185865522358758075723945943289122185440099610168437571818322729543982339238420297979999459712711137646048059850320935102856754524975023343917348509284709931881872206556323492747202801848336435710533287414852425744641755682301976752614255040366242760412235762616040416361717195239407159978943346364402631812882605076585072478883521087838712005108762466451219206956532560634640561210051716119092749678297233534948051195537852120989808344484200822970603680842363612402887810280530401087434087828581577804635932645479948838338616470640247755531312803200854807090988390889073590621090750368263178742256687244272246287340989462186331804599661130533560705872833905348253635522296218108953594958126581902027952064004547077096304607168500684135131375600897050363766228066178561148927798139308266799464129968377351853853090701808597382207811655619322613984576054101756158340691207200573412793340682696002826928584717144180849585537165762579876811154812249544144180195738403358470006651953387555236031416342103731396565437968415007670818182408479682494035485342257747594723786645432547935259676374191087134393991140199224396771435748942175727246543391293927446628039140852737256079753763832086570017015617737305011843308095807217502652301585198069583401679249476229782023292303773440694143512819867581919697394757275739000167934499078999386639406163614234379381323051363517681217233228419370126057585761081294982851743937961190764512590996968902601541356418810425290524392439736831240475078704220964854488170262206355691397643470967845443083445172623959889473146794710058825187906171486251398703237898078954969551774025894397801002405849130840739257736864969861199034734204072029818247590372550110355096934840803775136539026798041559254562671021289325674696094622712250360236522959763387392699147528062574496379501092355293733671518079030090271118156881800063571942620382729194399870112681836592776885284747861755725564131967119771852556778547499908225722035379193008853869891152762636314342498413474710884842164233117445441472074396549406289699019803630849855114157897379788353273491346535497887847863355529784805838406462815423739067665778428803400641114439745171312854312937863105374103882879319930638851483086193605885082108604380853399202005540829303751050190155441627058706739758099178782534098212249387979826840724894170838833195961886512369378021519877715123808461931080902945233343653474299444644133929474641476118746609243556746239576449658059037586960242528362304329673756729362793473242434236692225439382632112382490416627597822199262661048748835208765156435613934824513545215006169986101696071621877046527520754978159661365383388901566546797351112123004783403494523402491073704038290326876320813220198878983971765550545361169808546074521457021129190431407818816930045613222258293353734958504831949164102250203683271557567709578244480650810628884372486349231314934787567022273150604598083396230785627655656487839855089359996986977111945836413684902338579160231147880025224751933525693063535956038364869235889061818059822484332804164738533504024872973705396765692108383082798839093097306830682785369595707022034193451365574553277784563188494700767717495013432444293827384912233788320623964259091342535827007058792550421684322097254869699864402874721715219655577129424094555195568120092842271200464573934887057926229270278308881599011374223125231356958780204382584922944803643117960347027796031862869178590317146574080575188028057191283683187126320565205769212654175912762237359630919045504345026274655865419000964737631578759147849393295115058856588637088974633232962660741050449440600454446646823455823141491798964582699462452206673358700022123536358974061783188310803193932431494437545314893168416988300097690427337512056355364787694808768814250333882133386056910985783042348944041098125572449304293929391772201838810423101605596336419917634890539033310458410750137248897483701528755362805515229138390058402949040588247430889551507520290420215884208102118502734705495422076419568923124093643289393055482686216100713029732045960195542631327202535331128537639490634940247499914872230971719592851240940184051593986785533722420964448294902863005576911166729637759483202318595269283931957324923436450629637163536989266554466832180995592999793982291089540531797222565113459742781606104759579090121781228047442347359342910554365897781830294878362686284489122892734746297885525611960828494882341765956497733803955066240408440038176757110773627333236268067310296276887062511571338736835977291700381928365550813256019143787016837530195261177641438546481853949627335410692672048277999479804953139415369441530598863576023157777467333979102152787763683212916218987736364567172449487411013579576699649388621611463563337244911086812948705248546960296684959964082172118503724659508314082408402107186258337326977901568063984614536866077317971282452874670758244679073801280969823666601553355767708063841195301457064265767958200120980515450177985063167838021089282647342081785149437861208715315807951349294480084370830457485686215899424357701289970577675885100863337722731612360382059767042578464385090916895336209153492683697589515531432243669747125967279712546431569289997983813256574361156290026656105882768048745996896675433549982050474609588333538899936534956512805367393327099762297302728768072587135031734094920169949316554772248268926684942735238062883169371057782391695818424164995910742445312622941631498023913619392268302089313995509461451626770263951850417693417743049227761220011774283576156492535768556227065085002327551549795639555932466627262721451130655573847982915979958785826665504875987248023001869418550749646104119355258067170385111561877667838117124163762154473480134143535702886708989332429413146952648451600778858244224213461849123985442872059131713639413211188492172918210591911593808667260435022334823638921922198232526478345479163441114380945383217265997881989701498954085655810584067658135307432870280702140015563311899898627751435012916656759642915301875561510582544055607418744155751199565035924117489448966408255428237670729841317188955414485638083281304816152366382129787804721199547674438668902752867605798294416264694333242502565261657798199040746862954953431181898723690862122201374670437460094511858437589916297258800781157556128118627303740453096744207292062088735289643375162213407498485981792339996846838963429005715795689096534363173408676243834846065671388668405821175041993423382842893007201024667014910635945344845192567783506951815751651176449463506791276932472508463748933910631104179326254836929846227366517839439174409865573743953495560142447285780028222939953791313845345825822404237612594680438713833881309992509605151542891539098024970639767108373977086673723594854687466436603164781698863736040594730164261130725681104280586003935701171342642972627358157207816904815654494519800448547991141080971470104075329738965265301658712390574713994893154217311079041612190175023580930151611202049481689079762659205731224311802743943527164198001767959187000415418964982446747457664561287209149849639617309414626982451554852306537057745610083347973224812221528145116655375677456730523767618709295340001013689912769931072802661772748828916162759154227875549628712827606834490962515396796456043053707807130299618280835703415517075094997207822379564364520616692709862783490749972764765163780605507987076187753582637665042419892565566023165661009007780317009734600746497579814350675786455776726656196061963680089855396029271631722847255495920066757651888749943824902430837984290560919588641157458355544681679369890080585126862497480155826860772555976462484502679467906958994942562539563369989903037675542361223071906318286209152436132207547617709698903682267151627133440747089745928690587534003683111540289777779172317080749023795308013903168927962086816621914200376049406805743138259195910774636109812700964227929356869631353228757695206528776795431264005283451898673754072556949783756946171184865271647786168084453691530782123203554559607873976354081729657260768910897333112884215601855280124627162747668380788750061275481645614540661519771034548910338952987439528289938059308902931420332487430040297829049984351814793134197271922465097511763516719335552651276388913327840970205321583489101119830150000486180955732144971663854517141917398408128902502057469380059012404503422500126512326303680839889018577057221459294683987072740670001674166710980185747671602795476547847634920772123987659363610165851455386901366366967451146386408085685991599973271076900184261075316703151470676764276480120384859018774605071828335939188929331325339855179780264654277785186987886952914301001751208586572077147139500147592133404517853940641001164915537660064938522526371400137671172538449869004421465709641648407362345410308038946470151189734731612342671874134768673385696567528583810169101276540094788414569409990144140011317308646593763024198976158511202008784062893741510597403638452387036769450960865417298882585678016246418395617174595984820832378065582262346482634654893275988114244465468337997513262681244727516935176488413794963289733816197042585706078281487232763012028541794969501414583704351857278061102473204257574965385913836798239209649979443934695673201988842019143799449168788031175282578777173463886442662663359232301655554406958327574502742136653676798114934961771251387041548832456080556378297222797489919694547525979517247010637738870078508340611100775837193259919193069612586170162153300821012152292722217408669548183286874245589386053270022449907981968505147858572286176548751113615490910826271478345115830330718230268489132970463251031758519946228296429338550892070802409113417586132440875492773088632757802124520176615751310853391851136238270549807637829287886605252401924738734239447113791223045040016352290281597140078197574681221750085691395083608999277520988532701088907860848937275427443838327218100428510814593519496026604756562953280278558383359911378624096164126587380191874686048509087529845743416083254588106153989738845667463512826038006553426826741435441633630925260914004474696018543811111775803339328766515393700521631876054042585460241211846125795887854424227591432829294817444524978739073455587470306894163610215247958462758869241416183181092370721656997459107113795276561567363527153923151368596419852885306756464311289857019439311611702377032390333877117845236853599011655511308803283610332443050912778785030602108503265926069276970452805852649637870892523367855394618532607377103959996953128491910564058113241693064590052893406097129668562989163897129576948200880474740057347440788524072410914315250190875075149194790500140701338867479208361903973752740849948209109215834017361505675799611499106807067876227984559339640169578426524645899245719928743391115672960780616111673666372512788143979249022084289599817948888349342670618676582933603165361484427091128592915041069668869993034744083321250845621959214687544268926644303134009762054974382795648560161201988652815998152276208153991805001626603682484892092924185471818867507051496768327757645759454445218762145075625965806623746591430611707956472727880342758134385292784742377462525473465908047831247363422529053935753515681663636162921910433360415254700356640883915953510977056505938705297465039477878635521215061441926986221439939559106490437273868920802090827371967729318295519681654189923060963528038651879019952699405386323399421329150773411865164778401810816983555423415380285977727630186385273271696392614704078133433603107838264247663796844826135498637005675176431731932859185824418912303789621105118816079922441540495476531908739727872262074596905940401126072287600984520054184641561479649226983899409420744007879638233755028409630381067720539164039853566638012126388248748798160660666242858959064760368906679310170683140778912627482156853120279207626891873080107740793063532620624422752211646406005076062770557002893854536897124548928846971468019945807526774356041415654896196778793157292077998992014633902293718123735473663043214415109434807131385216348296464890941008552076043628584687386676059783791254898613667792231959441848588393309192641509267953084320217899343563754306592908891910456609669268993890800835469986188225300135986867792458867497515673112448777767274506502372079714093237693426933908738173066286500124945796471114834136818141258405621805633156770834261175640672527922345404971722263594268839092363805709964846932540337202342687856750932537314327906448412434445471182787554868654388702104588112390274041284545024812464815128311042838318332731472094335438886322903848745358911650046412539657711687640509913386773296266707378798231250305495315828714534502772490415545502434956608937408773884267186561246647521945971724766589988640991440759745638279942586484258905923101754605492337565723959140597353634912145655239858832448336400483468584353097852556272823411119562558454178388480461161910386570955042842580347175153660145608905154545271467257014019511574758243929919154619577073136381714176220900603796769077228276180486900042674760871149826880982607018747362722656475050684217456412081567014492377598505125023365786188152353438266077320718061715302847459464208752690444491638300557962446400911611693997128305057271211046729852210940431266067207842878667382387188937620869978811189785114246742502533048962979174855930439036803754738654565003539194486609777367010402620030961219947092704127472739019292441606060924139343080017105196364182061678182974169056201362808262515566864977389628199867891773523989745402239684698550646101083560676578192836654311835911194188747721827838156672016951366174492581582065481500489027928044677272792169349049380507104347994126939001491302724065663376066139256338018964471910893415999604354938075427308873002454840059808141789647065999881744572961310578864599675042181674999118249877148601657116880566477423560496043215302568686352871605926490778696388475246030839971569775605142449446995896550280571616735838154376655654865494556336624420006421137318010584882042486347528763852589205769103155256288703769778547930747325434628673878821627877458279939625779335162313913716388011128432647797277023862011356305810286506142135761137367229461898579613176662159950785178670576805833215588178523997598585535699140089112037259071122793150595576970663298683481955993733045986667564978862866803303058474013428586838747153075018812624327854767940460276751888042710711352688769631180022723672423348641338702986298393259154540481618910901308502093741224690275900086633763642504473983365297476336417545960106276006791210150328219921380023541871689149170563241633975190508284931127285894631473206255042552813067872574999819696755292843864229959985350305567260866586445870958891134475398253516214511820305795677673315938119848792312011289249291009284618231398595392393224853610462822606814711225856705481747963234902668711803867415325523321896766269380112370338597227743408976948055239178214176209811491944423471891339632026033986234917466197195845755861117003735857245708545186521572694337202530673035745981052352611213352510815671270073931420967830655130890574456652992638867649118468194965280120736315956737706736451480751201798101484851097374850310438050078398153597294605118944569986856559073207974603308661112636146321679456831961388203720105689288604066847510688682858009047403702862288787660651117341603607930422232495282260670780456861619554408083696658775239583195324168073212017374927661313867184235103840614911411146894840276992071663731115174004889131888418981306547367399596292109908703969021223225458151332702409775210701251076384942929701283407178923714275077291293339230909243455911271835798070901639012996641996450244344801474876674913181560389683201209059199258378986447379403583644810541225791355641332018637726184582745412564987875306211070654793159568882214499853596297186523942499943426984974657532165864418107509932970190211043501057330212925785190672203875853328554621787191808906218812126468618351340695333571186688276940592861641876221482784106153374806575435197325660552699244927368857844503647772254913161866902808210337791578681665542224196439752450401135335281325580821648940569512568289868086344350324137071850203189743378267451333190595849882622123890030758752426236236597817329055988707224449274040593008531832674418867009968715381625464700415770100446453624207588409928095444189398679286741241442267149555064460660586981564880919578400411546270659605159707258946222992099143636072793851337768540752378032332862708237010684089099255201450180811987251619683918547571215859622205870841710687382726572001820321881384055424891298487701893584544448277616431188439721379867884239925743891443679561569913333986327526550768343746974142279828861107467425129167230548412135952913996629422671705518025226137241207282056577837954206801875135033964418514551558253058002867965311540019539817189840671952176791306417172832292346541477655898384761373867959354905202491825401808661309199099061548978418143806265904039512155575281869860868145836831215467214171336827895506066315974617038388091442992401578269889660480740038908228766000830048949628473085228271932902278467537613232891035171395073751291162014115441364464609824162452022273854764644081663491290283986328248990326099033648714131165555191923783298660541485786838160721683982946465879777547466624431370273446413213839482842689443837136514664920059027265024162496048891829580469245583122946209640170697836744301074351882861248705795284901162461246626461849063091853659423620416519249288569598361015584367441533203555518118064826991106292012960491422647501017979997730086531231307771356130457322534807184514718183541550692240293044817050518025890317961118112578404480508467035980322598585226925824827893764678735046399697493514875291137757978990237224755572911541281938401181135207074384685089313225952489341110786916891253041421206668406448688731743202479075717468602526448432527532528109512947602860363456620564766941462180233243939148070657510583783143944606155850330656295919716928936672554819513526588115920818449285333656882189814795444969644994267714455216535048503529772823631835222560990373073249145038833760768503119077080557855270079296905188157578056122789615654472362255280305130347487985827417319695187467043847628892626935772256734576966196217398084901225155864856151155466033328164010058916096391327615126590733499143999987904643365903433103327716281625669173112434264570370931488371615765396706927417508210441330768594705410394414049194311566611733038809385336633095717303001524728111070665535384599972700628551796943949853629001035255828719747608984723682507942514472670947129117638403829360666632048020919892210295700484095642990950948670925281485556921834309413178230476153491781366792570160734998604372361492838522593335495651575474744026363624119899052969386726062088158678127342781823750093123110534286995403063978529061691719825969067546335999914610050593607715196541067672953122314222936702732738024843568623392101274942792034460036513636633791342025150587847432885669386018738561536554196258611233913713732504092459985970750706788074214596237114532991944361354516431614918115253454088389449860929040875101097883549137547015925714547784612872771986697887455919631809824679943416359226810952000914934271983617720146896194673657874982091550848702055611895844758740197807775307405755646993422969067011693398955448525510047066747249844286645963164151774121989013338482381797054728173316205513675515291495803242244143055215400158612393953497857642106763984885637200386711189000804707469071183082903444589019515273562532858633188059501806033637291062997904219929534598336406457789369080598682488645882009304582135308670939352633788270978208469116370004647849456341603164489127296660309224577883758490914316496891516663502727866458655770144823420694410261640659873107677930234482220348884359242938600179447700122635092785221292368637664917441069058980942091208221901257060137718812496229512593658236852440008594656436160609367194210180535226178396819693922205632990322312745446296305721397941204656557314743698193283480604763247455511085164158418681291502495651982206882966308532682110879915087927457963096817976717200182629401339579103323224696287119764693915872556025815733841624139630635004558830193255230324810313542405558209887690890925587501259332030512559639172471285886983928852829808142471259136926342673557508869071506515011281311263527550119009223284107757770429250637546676764441453086402738810729446486621160939192274108230215757828826601322601553895540876377193765988691864262758322136027822843868140617984349836413866951729539179180763594678753584625915743448735815932199829057520900735374037322978960750972031808873345161761454510295713278494950170159402387746339840446783262132856427083012255972416596966996609850850618432394367066622482311849677735358070729663139118027005675772567713912192910880757436069820558409474923744946247775397280021253525071977915061410885096353448200457139965208885635476483432293572461419172027256196317019093613000053934610056007376610409171413416863391776360930154181666664757375178540230298779119714293181720889444767302181898314877112883547524207035794624526418329154662152112862666292882123597729848338407820311982933786448144773493489846322181225692040976922630464715524784710605500684894582445519450172173813688043949071507037913226711835147058894667394132426142585420244320254182148967958681299993910481578617854042157172500160332708767103323915366562936357254927021628894252631809464011340883389418616826390128625104834013456143004688646483495580061340030798054570592210222761937463325110645002924872313304453622892963098861717907416936814233277776556704091148999318060635397076160679117746534239286379955454280803127757873864798596742182847360606297610105198797489030911515092836160218236133127293345868497642792634049916878805747839824629650746943795788298549499962875975963642458897626085078315954221624900772720618849205137973564794274068529468170970585040168132105345878812647491525131014799925930256280415171620081112064572246629855917018063050347335566861238985503861010320588219749673658907786072542390491752966719488697147717365029221615223268135047023759322330219605959075058979974739228385935584070961475754586083814636235062233270312142259205094395716650091129397377925449423244758517728406132063159257495057743759800329527861023407585584644808777885581833079522682919950141371340953317775794864810990742365322931584330559068382399771921929762573353169316070487493526810072641419003896504227077725901195443338543335304856694382642315352051569207447148631292506448603661266350651034507942793789631834077211043064067891764904996825361657974878426842174943624178084815158424240570654479304691990165750552874498745852027180004498498770426107307118019098033062811749592890782829552726225389998250272374708943399715858453896290881299361405089947359152355668295735022439862078564057614577387279391188069844186543720880161155405477049611921850993872830748175990043400887360655671189673703253954325825484781938350228638882817159120617166388097424539227494999679912695651160748256996370675036599103908525545503470518009958752764586672615984482554324352626013867692461674752129820119097805779059292067808408252829530154911587615229721294221701295738226781364436013549663155539568966803115852271049541842483239203203205824884280782409849776646874358425970711756985741403068742673811846592712268888725690683616691225442657710019444474397322801417723353286599801825943998776907221009933216989151642927751217326502296649688553137165756170625280859425903693006553379471130777727412447429844947078144517409534078925410798545021041057900032063899648738207929066462390785808303030574048095353795726270125814282850122802970170096225543282806442789940890585585710561331770611335810434940380559798396785194802852537272638138638890628381223822703476376560096876698445623808914200851509618257012272107170261742815139368315317887107464604260773950155506906771523371838771393390538933542653566486622277092080780665975692638065601782924765349408717891970005004255647456165851063557792167920392230390051488350845900781085376313732937402678043386917108953729564388407972021188219235385993400949546191140818868361342356630668729222268209772327271249885871300713778667558570651134194553052042543219342517352492631867758977690400481840119248230258842804051075365415645728922081039036179390541806571165660219123307272524357331030650781771028361335075843404998143004983903098035133235294749753654896460673331807671592549656112500669112888989991173685789336173027990690048378572782218624746054756305330932988475989024538793342819145013738206009599136624314216143358887402293581969209719556743913484134514807170571328822545584368628913768035077908528013924446296299303721952682135041856408344067228170869811335519791622283042739927183861133361095310086480492563948328382825696802433416730754850665416697756488257004120085312872056154128192707179732313108660928097401990019971236178222093999861403683529139775580066060209962059862399715864908106012233051361504585598532092225755081618679014767169222113880794488417985878525832126508023004547823143501095158272678602192164839027828940138047981897313592996720468244129392579038872250077605850798736929526485491125351011989448644883534566659975933059761580556684098918031442109268365567039111437281606563204688593366595564280065033345528818813100415383732870488853350921360858508029131805181859788930929532372816074222049684650898629553108898059995994188237282788923097577589057927245183763876369117366546746689562827224143584035113732869149300574471965701212180681673382027135787644669222311298113286446857827221210895023938760940841339868396098761388911677709132704719014137425560734462578595262784380164585228761140569152111370386227297591898302626447027951581360399948696380104227325944503451245056416238412175519211534845387259631027260264369491595668220386959167227833728885266381974796813917275041133331316729435642230357562019168505851889892298281800864359380142382807144074501052285272276597807982564980524274078603358536873785217231754484385656757502916586249625775490974306960924195923960057833372065798376786824107604206893206956366778982104894120342865389646792515873933867824335752673336444214817397795329895923555656220606428224939200886339804617576870350690396095842474928958865372468732522869254967381072742391497152856584862580354036360450301552926114190013845870325129423119021225609805745208143309474630414461078745437609078097260734181210222271745047834298742464209345571372224971274664131975531558210252380750256235732942732797613784498315107513215615480710120332816125729402748220177745637203638563915042955088770104756440378045873060843242994162138720827937451191107166930333811146614683912798337870788632330050523503439161161099913528262018781358094524894999636953678981634345087912579965160785423333944474843050996455672289488450144597252046741944854466225001202929469305253762065308109252744089429782003166019402700465841982987564345975974191684091589672092272689606118762613231325265894901834213333358128564516471263715477874481392525738288907927515463090155691387553182158053842715992947201578616635359153354003111862920413472125706345974876095978799715463545496678345509702466904517272393163297446640991303615439679632436025595939533686040933268437824796778527904375955315095646073921207908933031513987141472420621012949743662272391231061164489243597666948380924178655585771364115704756954354843758184003376910436876116383041611978394306494417566818878505824543702440994481766266820492260683585438979962732933473893460216293966209247404337875724081554290259179450912103485673504233759145617222268665987695423697438916635385519088316050667719550604732235551506824975464927765292014217500980655010343213754854191636222289635497165046771547683309875254600100835591082988865426767101792962923832256432151781576342562629105383109496461296430007110345056632144695208428206794397663327105638369473993897502334727959909085113425454312671588838186845894587895190851482198792411734130032235339470000592888945428356608778519569332588671703506133528762012405619746261583116012619917799924511513567389234885911231434781782126323466254847987129778023471101647005853125655698589156156779697893672182047541932485140062343247349553841919678027273125308560662661326784646069384261076372197212030471966765147597293798227248558153750418359468843872165076831224158894952615694331565504046067807932077818791597856575378413728375582513685191140527515355256581285360310227064610599250209299040890942347211243822923562996534139193693962595413553581197749718992916821349981355173568401174189810447078456333724188210701478832887602458774230498531657552913696340293647766261572744618214593828645294468056746873046837206735534386633416685257555057242499596077577587008155732993570453017465823175707208756272302183349257623855153168632431142522516529409244153755527684898052929666224865376338250993901331092685570895887186457130411572494749703985713356332470129148828560192243648605403539342298008786280789215936877306998770764025748190602354225177213723355165801014310303504148462521692272706860156511436024284769628893841209599090121567644390909051120081515362268023790459276216294508447391054075574426857937978312893161683978911244795666381248609203471790473050459835622525774493630260927296883461199897480011544352612840128490518904892095865871713407483833126253441413383605134823331142430307250514735226020999725234906651758354405479374421871069753980095072036351271647162557427357005584470895022907564897379037184099225422066195393869319563081550454757101872126307394418028452206767621263152675874763020270161745606397155921763592470532972695121513136100297833044022585543833870447626367508439781296300077206119197231143125438888040995973487153612881996914518186056033365587593063589028097840116980405401913114178163823800807087095106076078123544160492915285191506326246123122067055419173516272150645661594947841824273207049621906749205153084686803217768802714726999785879485254423420068673616790794383100074438314191799619293384549186984991796896010603623786642446851748130879553364513148193425184039943497085120419491398840964667742072608345333268903166608166885539509516018717795967786395480455721852863362583592328869149084063665852004326515539785215819526145964044805573487290808819318597544136061132613745195404959339839916545009553828635425139279555538381303040646415887476442448159889780225461083053188557515080307196703265777829195223210269631434181414560109420686180732757447889696158534864740700019862507450194159313018234015677715618749722843865078173619068618180146798855999849248098872112823710145328561920553783028822657150750557121149712595666632774701777202824166055420874096334048765774549536513254218814534152509805246556558048148070646221765366978431185759677926768057594391243805556405624998873023684342933168161271670808157285365766901281485284835100520589782011440576400008970824565971857690153322547781378493715443293741205140895847403258416660473689356859850482462325935367750719616021395470850657170669412310546800988942466261510249383560351758771997747561931507069875496680526836113322853017796412678110286731685533987569753853091107036505508202939895469475685252987938728494180834717551387268475355488953123647126187608245872575638521243759856937433359803355971564494103596342267036951171348740957107500973769027455951870248883145464931602118446450649040893567914399058317403692488572583343894318653545293324233466692022458178482966232621643201220850257860563889041920367871225429566049454226937585576305647737176556152031003939841542075133134891632624729998491790600876549807184501552416378631221676906133287804519652182762227390932514799614672041145433300397090917091173625483832963901433172138826816639474703091966511568413704147219272275040990146069812692819098931301759721590149774828504625085195392951708498701123688747394710829525386414499121828091489520951250799410078273934881764464616301867185243072623633852784221866060420052564038324602731083170773584537127669191730711317160604433960875421433554020002308870769644574007157662502636708537585613379860417350518356854312126698690496907971216476507912918766208151783022350989720113861607144365338261179382113400329015687226058516696659278635682908017795802295037461431407115069031068373470951232435589459661324064199966793911971827852793987761899376843493521826334939113513885493251206032607286467320514998535324933324856394970203860832563335956440662182801133587296671840058933155947938847901436604370455929685231211170469188812915054128417496703544762754103047023045370903722399566539941137796850436585859723115939001378940438690991557926621712613936818970104385082659664390041515649202927252841944004813219421921816295023636442802945301848371084812232154302730628150881669180922426567908540059070886070906146694890606675105994914387574130396585711411470282470641616352959538002335874377181639400464653819304045592061864819928690623600336704240289866777365561764489709431420363581996722874781528317819604173652241914569507057812574545834254134118519603550256026669453173184026041010934317172933269157759351412226859031750158463614561243688789443698138046072226882906085900654325403626147098252212406465080006403792219500256154735951858559250312666013904965214455968149321379214802288989280593109493322308091447634100937793208554155752974240992689674849628799718644229680806048925523085079274207809307254349005684015137058379538169276992468532308809387752649504021430127644781444638910857239347513374606120214522332997194617107329995052543313471728867053155308146246153977236507501506751571305399799330151864869287719183664445365930778481302432426319845511765331365283362028048072183829271261335330847820590918581331987235186253980210465801481541762428041064875889281242926796718819610634078383905408724081579946283407697036160006656333746965503108793485150101019895879410626442911381847357854895557341387198949004669326067166130294443175844632804743128120017750921870477047770070489130745873501709346865232476465964643825622838070267859310923014958091746231106979697894656455602822579480337088058490728817007343931068939571014861807496617858648088703742932066738039404680149580864444620785810216501597645376286012925126213443555336483419584568425315061776128271557061648201145240891637612988546641086796646918561910924481938589614947626493993023366092948508841425191960563010749816783939950776104229430385531791554871185652184971866972248720208801331412435887543800906926651777969531237260520176010724418665258106862815818120769356038599115521952914800762351957293157677149783483658416541703715591959528627345295279732900320125143280487820209174635481074272509488082125973456065431378446036181595178235589435621195559206704648030627798742150683934511512419820207913418620892896697807915571562849774168648117802029666086115856649431938397989655597347062860462519654144852001822187196648194256812209407330580617530992175629191698659935903708110997492758276563246368544334533452219801819086784660981610555615539196985592117618974350128883364052953199177488951296733202199613761937584138996781768078716989192258059477201483747715914326880832369854543663071638597984512678079705114681202453212092284460646733163780014292034280819093336243062437853498261139099554664860206424450832527205606794830509808568558985743072635023929967445479134966880108751493419799501272304879989855251689136989149064030906383036757068228819272187718113970651692482560016398796641141429597330341742878955607077123539258119808979170751383409883740497000415748753760087435530698726670074396790996531684613050074610302465123517009043428682288322149793550747340029725342745317061880949134290909467269632620442579587215778393426624435367098567553238315924688402159640967180312183582959428542486877302126203892126715262413807637809176671841093084624048154770967719866876251936501408750958689516594237915343650127242176488326393662778888656411410833392622756631179629288071381819147239802253746468116039871484833412351606711557839010916624611876817709130213090356871969420442385350966184227420687599110516131259011845948323923778669888760017284738636631685356584856212767158321176215198071597525585537097136743988550388281787508378601826927101869016382888261889528720204337412559594932336587342339943816293705072480988229201545134565518691783591351002705378445419291421958040437928811157983997103737911287542613127466193838084995386732907036544729720263683998119964725352924045576847889760913817322540492517192653722938540101982688404124489961986228807047948033057027543256201377227272072397358685351730843997640734293021648301825646359731821177544542233520979728860702294147762853535261061158785114577087166888777075040444118171675607882647400601995806884232687566311732298344400464774446185702196796108627633136679240154298006207977863678556413957613330184628960620418570562883787600481079802712769218187820092972963051895698252986162293785519334949665049581619529719064168895957666177189607595428710908838743449520341436124531096445983866772416599700653763009235145116719839486111494162383089726718816844534521581881674185315798937648693491407449106055869532695540795608322942296184424594131941397088518994804801138401453208269596029283423775064005594474837913393653114678987255606388712587022875989953043359071746056104288869562224176912420610880626316738492253439663536500491643131654273708892593597504622536949274377706362266242934863540828625083954557621834069070048679482266108743481876352654815101267322872087197450240650679341988754193757414387892013169803562027808274954720996657124644691740323117687318223648543017887728832298954478161361643742638732019785090825984278235987006274570439307247219508995493566702836483142858968698211666530768833107536748321292692959522009250729612382393684474812549567919893422768973570897110352726336307981305374025020114894022069864583928496524152890376094961292051837023500123377628702612686006789605017398778176461163204450146325338207487194310671284443190310402217809335994867511491482580139795507860286445341331886888972315075001331208233785949345739877549067811564191838553204412603372697061795718529483766635675985613542504856734720733658099106095665449655538910225523441250384881817060132818240534549464650897241165301347644222673924737822631369015337910585669105525628115767284577932097435759495162656512442357329048391301716652841935225155413297871086769534299698883914202875295728334588258864279825082778191979034615900218866003018320028808543973446801088112523048707591988364102956101334535812782022490024507115273160354885864644551814949066017573646015903631845093759558895238303691195681013036069207579856955041458951189178535125129063323734050475595647210080142587020359986266881514329196837616039384660302225629106492986129889641136383168280246348106711340595119411789236872182875844625625713970421547690287235222358350812014585794751126473771173366589426252274575357800755240176378934225184353360688278907494930407126679975058465951107059358802033127213974634986859156022548504741622615203677252209514590622320398459944581559087631553780265671888525701028481047709552205889695160313654443630812297786669862049454930509138443078351570541660144678202833309115455576460895116872936233040604201513176192827516914321202941869787885229218072972570567008228590309255700987283303003736555975304068105711198298152538629826627821425028582846059364061209434526061886241283856504468137520192871385118585257463945887374782855434620331620407292715119196998851647177933698092103918236880179702455984033585000241432520541526705264580803068911254935092320136147057847731805397151201818796196148902341153271805032545363805776194397973392581993932419477009659903989448492866439056089326357619648549341828122744003928707062028340749305060458038375855417818688887128594459597773919487438959220935122097066044793209475598863093497752711134372592012384164133617030370388565479554082733224316391424453716570599644518414155721801624275164435932642682883626779873983699861458283580060655913994181665403803862963508051733668125808700397246623582613848087491657689063958774360017389749070491490420479563215746806342056629678599717657994818382050139493887198764844729682271457004694581062127554090306577700101040649463632781711432067240075907712765354224326460492399004513175642139642061987653005123757609691430121432003278364378349359317075564050492869043820104348956468384263000678586190659003356408909782141723491713582298277093980422589694485607575494268746607686212143255259229496114689052800336505392388474392279701599787626982676922779122834101931114434466790223946096589739782738869665103001161715562613263070082547501529126101650980261371353411386373286419274930601500038042090735013679318417503129347397224254149425985098875331583133100182212986349820089121081990698855892044458390566371906346958197851758906825041050719585007724248592484805210207891124123738639408264531418135285507655238870204102456986121055671163743261967752826939989598576537079613770041236500545398194346933728073880485715705357792357510688073173888960256152908123829480937028203311742493345852891882406827295204948633468768916024135201904254994625669198294831197389567159278858130254722954035246447350221050846478599523208131352873865688946525750420383361447216831407886360855619534015248400858215385887358652920221065780199020397590247473969965788101115729449574456063135305423233076578995133829448955968806924287934842494602040861337004016872217444922686640986206546931928824648224684612001231889437291179923977766988971293533458802749348588260217078075450218390076680306626324469322867410070602622247101455145449033541054699558746459204433970903362068169233985875313219660112050326545802139821394639680527597128694937381040487330411912901292447095383784576105680871314765576544460258208329192362066651780613231467144450663517939758230973674792897545756377635858793266379602809743725422084192432460194641041765264667645474691007572399253103335475842554873174411904465727814489322336443230995898816140232200942959020050708459687477286319170834642940830053786087325807179101404091050478578160557212939706684391480084353876846115694775633559473480040631175899737251925203741631374255264713623869992781819187145141417248140175267218948602203166871037628991059628374266208429203056095685932945092905575241779140442332603445464728285571555870529086605014273774072889468749974509363723998588312214689762090714354040069676646103768822501343376840732640686468059579548251978021492996173444201482220592027405301016834389960320645149613247785224099016543685848446909031118730431332729262770200582094190479495746780254586894577569668903297606587055087217863680851053937833282137789134629333193085722433117963930956052010162815232614544951489929174484033827080650950830548223922543281070771823250253245785616797194351544071752575667945875567411401917996922302533182048257358361665788228255790178387972317068891364554912009595562962621536207687025103771097949937932722383076082304875785747602804549969371943323034465103854613695090219236296949995278440373493181743881088354500359330974173112745305646350903437404615770688567411860039757413416103751634874542265199210270212515980240222233759389400642250705154636982526732338477777041354327267861673519367897462163662622873156408167670454981197637346604948432895069215715996658950276865466644532525601613048419827868223064694632110871812011174166083633122732325776505484955865477076909103348609523039436323039348666322158301118168943833354953854988585993449730227863107115376031643565525111818232768364097314250034334586898765810471891403190047657324624808968240709384850764193344818583738488918903499942586670487447061779428498609614203701506477858511666675145124347013822484948093850921899004267666527730132377146226221546569516383709466164868210109515887772667844016842141479573081633756586093375871582540541620398148230159250988883894838823034022798157477545567735959342023705932663096211452563524060794302652557250478490653101797253727303039720129503635063870343807726229341632822734709889511896590719499195547620562052166746607500498519535754611873360893706117339530050389543463912126750703687167696610692924416430244349227119190007974789561226020724519599616090494895269357383764452057352442881826272637216668097885205561483284407204728813120036892601528978761807346149502217136082240792691990053102138372499836133252973744523190171399400271646741790075005954599678204509744250094437522454800161969464401237137075880921872955174409059616084413892858091562933645576160451459979107603236594805951745622241060830867302088633535219471367508633458074168913801172652655483983004237284892905286881319575842820850895944854472980249220742676615856771606960850904726778443468596572252753917580665893151558220610799973525159500363512749364812424736066682243359575994038130327411583848312222708087781925136804388752488352472521070526480318081057844603783890589135434300611312022445288671930023290259246819346459178474907484739818969650112633112860572194190161510704526423105496799230470496269408386702381693986446538739275382093010640001283746017768351253596384595758826438773668642404378069200387481652370931893647167865656223360823081621686267068486631283477642050360171371997160425482551056473011124557708324968613171029155640111220503139579600067807739747373622630953628797399199577171307481390231897790177418607588207683488170894808237799429707550540287152766439304174000753382132127916352643095790924498909460506213506820551199482808143688800926559116158538330296551441449342066734954454301249133870377975048182348556255175689199830282920420258133721638801626548097949191021861666127638710044670627355588260375573701605915206750413537475563968654411529994780921160233910323346697533011429412978248496356900330644209545121941716993171613095676328422310669486971649331234036118832056846826827635694686895224452983151035286490293678311728833065660877527670611110057739631736216786454331030341710001884252468182034584149058098172001021475272695385166567099720099551744877832282936949160759204061312350378937156706073969363825290222648848896172778251732694227622154490379048157720833775077226157536930804320167144739490398320420844988198045158613426226596049851153197233554707043201984051591564684779170597327583762589548987002131592333368419541350517191583110688029608492084698489095067513233604612479711393402157257250284986043446679716076274581162780659193287378411660762919570323888475248870659225384870975220926595368907843184079770580213032129046196389288399921700261795499444056379029082876597794780882429514445814170209122879513474051965000925968735461384027901660973254960923851283465700324682995744133101819158337720158306481446291185722460066980685937164421792169517135477640114664141694720143821055111469675118440887235530347046897211259422108787928012767650459984083333291425122358249578344649310501323088225566668708663198894709847043543393701377522395927075430013651226878720225128152750382085872258323381076428685654745350600836577355926598876894365003805957371673777659582424515583417557630812350701743583540814659707442139719758224536695701315612588997586361719800693072548424390193240020620234325559485276665439992671928470760107088928949617359146550592728883909665962439699585323261211739531131784400986801259245643259913273715967531896140864056388512450036665734277729932159466097061806638756798011908856891105276103023674986978262777438737386943132570346878871909424546544644478953217000488645278041697092506809631674578716485689882758447338047547918096018910005705558532787869949261395396392024116776230899653699081700198323952789674359429018948920145778641261714760943602792270871447971912813751502640009842164949958229762689736202641524256110194175886691104213150632764780658165791324068443762796374838416100983798778089291592176959901212765774150205687235250414008842984235758795986670146804623051957799329820879045025107555772377480980479820485970373948943046038666230133505558855725617665082035068279194670098000804774555417026587130213987890543959917097489250550995362466491232118811801978962987473162629112201809443089885518506269022723597907839858470827162454080271913531714417023048156040049465067405575580640641108742381921740549205243281570816677914448742479876184947807678340447065216737525423241310324543805056467992835929223316376488009282532297989799361960219474726421340916831751844302410476565232733238956727232948021034775531350261245369976356806239174880723854002998779858205320190482179215964696595071365730212422683548530351211209760326263074867532337905745220272357510216702820601329711239507566761607433413871082145711037308750660349740226226213589072648892130464334083203697822542888559779153170500808759615182474114368636640023245163462835833861159313967464447175349232287852795866603619333488888861550805585861756801339067116552649170009764368103986338454524968904289660941242532999062608936212146574537990289676026707445009187031089283438259086674165453089425345987368569836702951094541735171351190335629377930044788715285221823881081402750169409010953525293951717862479855090314381306481136862190046092512147119960227722122322351131640466644312989952318638606931220375142490583788435674890987724621757496756608875268811077896597923374111768821407758127213213239835720939918838616255300841333219190874229453283004740075600624706053957001163944023926516429901747512452347717331162490880073155429716302429148629656278710088909743026162273829351887698180068880910606751062012433196577165463060650916812939266050488045675590964505480408495727637595670648988464601701263792947248368089008555095370859539299770400088512400864445095203150182013356610779511120341235578553878013560056374090741563962405984441366118075690470641273267798719138093257508692590490465405550539476897533172878876933799176032703601031951708034778011405810556411997939659801127750180143960393894923289530239852594721390883528736284787809041150421349649567243434284169512740678455464105223479575152801604762656797560993787988034268840210381378460551169122318845662486666366459085314579781376038092898003441108660532930603700982339769256352744399939887938937259801413328083691962824100035493442355143869755407424857658564154619529170038364204236291888242316485700463672863128702769278580375385881526692438196366179383088365116005510755706075777175711098983797586507851158789821246574259380109975120367984374173496023554110759458701233893867569050891160516366339325794130945411937488565325088061074885271305726616314959118552353615361741615824681024494925694214145965401241918512200727831161096283965056993085635562182237037851715175805965472889578266768695668567788916130422676214982484743943457985886765943719818191743905932228428923657766397992090716323573700315298611807682994764607234728107845164521408243876956924274660562166293757239562241896846764301193908193323959166879672702709646183190165456613025663213935562878436736407493516013313726490613978544182701110950869221722160929427347922181472348975367173001765583967748992971110842522918236274725345817288993160695082036780297447890327081114176049887532516429340791898314677385688315090179583125703823090873387412377889124826095250170622980018455525316849838353821649478584311355768399739298563799726263238875682726650384061394591992057793607719362562990609299705369138710310595969279085602943248520593911035215687069867300471405742751889327666079534117149691437886576065557513806731065686851314844620416434396922983140562061184531397018191112974763996436081745271127059925266813646796102994792659721855610173872250186498293810679465094900706993766019616407863290069318320741764634271975403594681738402616827205286902728859749447971183255763415870327575228985792480713876814713872354908304821391412759381976529788792730072221354099527598448072361839260895484528714149023827396241522645127696852863162759446509241869131011912115178436315498036764527087690621614222054534351571948830065171809168909806620652221831744888930734779202701608642477982895232245575482301097532067646810407321629209597484512620348465219352455342085262887372747331346933439282852726671303979311673209431777923692093775426944297373843133665024702014132864792972851407025843223429978555237900185281972670931998760705957424212900797614530367447932564413058438950583199625852714531830184653261391264127043632905541999058911652428699820799401700929006112986942099305761158486819248166396549340919798766261427819138937754212175609328932327830939393357954225354483273894924914451360049218193006735345232773117324919856135605112283924667989783232763309460520443213840821199949803784860166122613035925843290101859035464258287295475100360496541667588891475067102972579309989675538767186887519305891254501773214137696272252085796464294213539727888119468419852609021789389976735784053097484728501918256972031754248404894048961272149906937820686834505558787929788612811956469852577466167013965630699741033823790381512485615275981286226020587620045523866601080885305399455247025715954088615021406036378337106357386278953160276706105510476458480073917552345313092636483216819313376084320688235258637419402685493078013516128261446310295910929345951308716881528976455446356618770998766774406564204698875607906467493154324354948952447551188129054650408022970553564261334323703189533154992271069648698875112196942031761800149282336244924842135699394733958350854212906311300233840102594206197668028504625589981545898558695349719384300962250517571360727725693271545768866078407725719114460730044626684468531899850743360639669790617931568720052987952509121839966971700635850621020658897356201102612553431477445488151875402247490265139284226113892647769769369081693423729808843479788779275343003117194972357658950424822755723865589418280331936264156253079928284185655498479609888852613236772951899449658461352910696819031901841833701921983069942662023816381652014845383888888655255655732637530098177839114288375252063604330395507012119353468777728855552877962919933023266802533940922900579594770603537013715010571620960530987579120799796046998266624244143297714096179221908776337073718286989964212095638356793548783081740261958373796100846788002476847573204621860288353902411110736503117591168929541064686436146858537467553774845741734081226889978429700523391258230258645151091696763021675618049559904316174365071560133950960542403085615235164957111403209650941012127682963737222243215097420103799197679234608276452185642573301169684809419478136783953339120600508825735395167434260722018479272664782072442562808995461563281975485911307866204385108200556514249575966392229340723961705616023067893036304891695839617563993700797702015636803944392604514015416500903935821535010018024501706195373459709983558459554449361115396288476075617138566080990146821696412956061018305443599455729786944426049787775900115372107601972233916754834311395990883833919808351627083683905905178469227274379623509684846991147092147600882720740552046426294412744682774121079285125020642235192528825865931140472805907356651316632977091481768427711577429289970993566780099436122981957832697421462572316869046207500105460868582092974905879629652499742235964741248649008217375372556350612442435508775614783817210398087061821472846447749819014920803467939463619007425553762508326182767079643289829691751196216480194891707594142092962636490170278024909314955411177677903160740913909065751135815204509496867011374108521979274498784731332031693777208539511159446740117377883023460725034720721787957776390335116001499125959826326933046340811560475464882836776560001154500551330268266402548477025069491662130842845362577026631439585010281820399618368213562530664629679911843841474511985772005843717868421516758981234742139375094854936965317225993476955687217996164735399431849194496989838430994933437391876200247239700545589653814036873107489090680046230940938792744874506165176407827589415431802682162248659819637930971272492372113315343138441514717446820984157301863211681838550139471751653097040270672785074470143608522087270802958763473732755451776619652206784122120530818841848072305952838253615863784272499272941610074206601728379769476152819967212125481790174653168412252246195522691322064982698855207539160568056956283893193303226998915014162639637006702925857152691363462162848328484733376419446276479896086934455151515118522772324228510065253596825754553691120084101002669937151240530238653637483752138985676495262707915091224713554097454751576181938602757277828062967888032270725787093681439272459319550302547046022462737500958528369071325501228512765402935087023745951747115855267065250812533266879598430979355149559924305651061165766547066162770513417484623651410286728910547600519190239798926909377526825379807806341253134928562852474235545675481998446217553129431291536788242579391475690006448429882540005141594877553840725217673937375485982540394027150543487048824055992822537434032034139354574984371179905108195917860753729963755308511609886419531139359136009830994022577880543852076199023173469463762753436972995668217341886577775992238252165006953752279122491008407412116577501088002561220498077178393900651529572556807872534041881227251371554095577879758683289188866993138582491842947574107274686881369648733031023633709404909940963007210962568377641469590634636467524481507157622412093314749116223205307797174706381485662222042229247045256556969047133774281461503270775485665118111704377282570976209712716945122393987991688175910541255879797759229652930437802023758121299142648090203768797668759596654956529466963625637395160090601049269138431397637850886433827445079931831816254446484125613790919112945421665540333869876763434354205816267370316337993349157788687323254188894409770035494206373510881576536014444138897805245971162629823123460746557747213477318667913574350461307139353190694286080462498423696342309960293630202111818975412313113351633446980676389961224928468171719944930931862431587261511226499841332171788595444963195448488642840179178425047996203613053489511966616596664499207175023569214469273852893593984988248032739160574814736363537683596916390465485519063324677748671312364262915845118825274601669221653267499993663531805016300663582620264976809654408976386563393379919476792694041418072921902193156538116226388770813549428424841818598234358287254731216671117636128301262463459163418385375657919065598231068506982639902097640280196190592550755495950439734721087344764152065775592941600649336850047092049353922959247081135429039517605212288376898346450403388420595722676588559898443540637116221145709807504556959285678649646887053385933886546849495844588123990301341480883419220486338752090331254500524778904122006799209324736131750591643483585465308890911834372552174606253841309697653086052744477717266502942358789981677726708820859903473878258028089329430571548738828891491312189449095329680305712902687164624882199913355708784687754100172318734678188235043489181479149803360158880315493655842856740870675924635486357968757555353188973321663673293203084715274849301583876887678389793680612886203638833092767341860769478429796110122076329875732905138758016122353243428600396102067347144000944631178426933702582507719233815916852339463329362957829894925317763897332909777931271504844777491297463510527124289228765117438448858461071721343163175189091506817453951886240950979379319671768463905457555316963420976078135936829432829477027674654567751073655341053514352839022911694506928497882295359804355059751790668372748461607496985323202233488712025137320913160980171587436923695223249453333874697140644423691248105717561400036533667155005105738309995805428721392956677013366037969134261398392239758620506604012595945926903822461048197425066278323489003898023111093763274443041570265529720834666852271695440796268864304363174397758079131764836985240009570834780685516329538321094580014531670254120156985174205988623542049674969629069188162153304792511785111745860887295164729595239511497344443970486428369584670155072912227766249852508668115634633630792504382429917797185272047860596725217926763904760441050291234227572243868337909339953822038704611359669783098014427359202497384161462906463249507054858594903414799434367721162331990869645543995519913923429620890481021311414847678496452171715673837117475792857572101445890061123470456449211638541677893008926257679733545571090886569177492445255829673413774332314716305710626676784005023033466972491741290256177255992215552780161172130966911147313826993893959069854354274775966920942882806395510277968135231424666225681654802038215243472007355116691265245375957391745678770695043602970913659199985183579673830457936570013601789444355357763431572479500472140442290175112992472857320533282938469351304966941993408421471445922294278396543717210000656163194392325218079844046540506871980361477902135585781069674953617814177721374889421906156342509346121417224407155051311501324232669007745828310089874289526329319964516129281851538309764537845148857464117297214732315953371164541126267831853029480003902152390323932829134525898227693339850217244360160777919623114395875884859685501908794075006798262715962353863186097310298294419800120374250347108691813216300681946266804316813807409816529140808169989425662440031825443301937432224457394904134841426641840393529549592565607453303117684951009775157898664799285518837507771651198996434949994010618911844844913291512830676300536548051772350828762232360220793308950929504972686860811164597227677822398473265901777916744710041280292612483432550197638886232152180824632138449891452864811702736998615713798460674773216946306762198751623853723285085416692374726774446242513471327457896711602098122557627719721386975537011559730515891631962056745651610932684961884577346973622697900447925042073523122000019987612765382242628310718215996317015057410887569034177501739947487622281136203791940074303380922511813130889071107904191063483446575090195598217800684921212610014160199041794803610533127791086456660421380487733595579782835193981084054147838135238614877067591657584880671384854989295813809457226344031129940517326544996587370047139231495360052534523968053393692845000840153615914025521548497549777537546354019953115450561894134266427575962452358335519316399446957983472562454490560044676763775817283797310511521485175666891929191932956627566012254323749190601688703002542025289970544507981786405130799061130028345808086883469072914108481255236737187404117673401084342006251286262471217998231320576902442171575656436002802040770860247217035182273489121993645723128111073728806498172579146638817069292880746466417973067217439008265181505144690056797970785696235844341723215042275785900727371812585195180665448078484669437891384109241968267066968476900512927953218841839621229620277240768540799900161272209102197296180276548581072221608495112328279921216232623412803083641325083679896835882876529731631319270708941812726692061523151781379883602448779417915300620496158004054350678860408452673194580879902681971585582953784759159212212989349681151479766286042990766209473794374604072651929179571665836952437500115570880145432861125139786921684044175989668821762999873409141543727853071605440587955398837407628488847242157283456193110919207528698953787647613491662833127611113855142319453104694900451427874194987834137862688171942361891983562724179983096915774215773783160404553794890009554764026267583251400125904960129654961771706094626703546226364731349441279151302238114586242845942109490348563680968042668760802823423570232649132500908064564662965716036937793892894848631237992910985040836511118652953234367581359412708483745267618217533495237186147501411204946732670641212486887196069639620857656564960545790337712621715231961222516024611532191524496011337153201961884510920135759855861259118820285654315864963477489928466568687152850016510132464554014863747714948330301695237715347434965230421603184980944859021490492134364505734459140569881158500716284079799775924703699744381991479649455200401373564055776047600494873964223794637127892140937608376574516828390965602972361008800647679883006777243059877008067766843312336540695932951856104895097886458823452696281706440176906496268491964679953593506539480403390969896467680089394641417206581262597429629719974662659882331559435241281863717676309360007405016878451176263154808083769510046276864493755515373547208138920069217667347579863918879550061718440134350739383079502226810201011256314031051353641045206125827045065676197608526092015715726119331592310635652123402088588463650084165210677253501620520755070606117197748420036984962741893108338701816825204333500287566992015835070452947531384845603704763697993070589147973904641542855563999770706362141649961546708083972572450276260049209635324282591589861448676492331236317183650887500440028015940279538781907898028817294440211119408274122067480073018557800098781213784510819254167883807654132885296560042929882358873799957100100248700827056807301413600378940737715192644867821870394164589240733605057720998677340307228747272944039203241149734874822638994382380161054083161483507349017188891962284339198423530988373753586514584011799842702975727718257539479080398612655615047909981843466015591305073306583821264262547437833406544138954990964424779505616661687294596372417524577309217429439576445608332953018538633491629482594364076164160021056474600381908207179605806593783423477425377431166981429566714824299038032007018272759876808601616679443953303482813916153479363882440797480057553979915506383185504204363080835639352788624053700369143719621365771950397022144832348164639847927552946108202406617861672939015090579694165940236529850571141502778913968965726622044970982759715959529820544852746199241294226675353546420559070789017493893262847138679156317713849906504090590110488474896876428038214754467506128188569402554558595214511538668993718964129008901511324572623364112943093825964661613753255513526914741819736352797376602383783871973176547439773839891330793592149162024005542030407710291657140294802571894774454391088869612850444352504055277231916114578478989373603777193535070128580018258641776818437159462591598472198529611848080728995114924189098702245644748831756769233801082365958546974619618466491649221424119416023004425992736925246744400379037813379584175245681593554040085595462415371923805860283900377910465764269161366447934449715316164889949409835238693424029905690520774759293829383131728492847559011478341331184670365548215946055625031425963809839332424797234118572954465233515060302229959572048837514731625828782020939099990339715240160473914033791137109033968149025485843809472680637363390484829118728059416790284109408642979562258083659397071574362618144600983714512420642267677712491348667440652846899685009803631775704304783798567895446778753674043904658429597628409609889964550854590956538527373694266546727054730398584669855440674546748978911844006698309928537087627573345910945847549920192027209715533954817434249289966479340381785443145254624702968434230618886527636851629999331440112561001755400958052507842173942876790904991860222652846436891402291048163344181826967393872772036688186833155584715922277454972988162040957001036465317259702211781206093644335649085461142099423679542379445957141828540639969301159396870006131771692186374869500295397875391779505709966562064101391603623132289127207945051695846363710769740222824565686358822898789298446141334801330851222928480792210654903135237984655742097079623119072708356729963311607353335455938011011871617856289480502060471674068597012274145073742951962184922424593490708337982054107997272888704356377581623967372713490279562690166774595757796436791633782557648637880940922699780964750266374430903396518139746706973161740530503478060460371781889643280778866853111611336203730758367116245830579987627514800508371150439989176394865262528975064309532805519841944734932007875778724513175674877832149511696038935140490783653916305267485985007373860455021952663532645206569637650967393571425103197965759359467290944493259140079860270836157997452530199073886846924975909130516514096088854562066900542129734006574466511631660308792358935536173672046452544233764828073442519561508307111475738554374885272098116805962724465283461189384676051567608277002171896740871185998330036377650809930497252824921255167174837530604596350916786565626048071447744248000342780853563047494586909305948657380344981843180611186686745615409788032761670241438686225372966663683529818514410214984268481219961659406684288670474702081337003593611052962934591144672624198963729143009200372913300698305424743559845282357804582544403316588404738305854559337709780264623246918069667446703359417009555099270147413410283496325277990948996569792976408563181282689253289171573918585943258110328759306987784952304771427539029045157481823825566005194353256647396556714912975341315607503668306057276610735825527098225340517285602077968140262657355930444942993045811046473981099711536775413156056101265325138428274473072014893092168559344167844378684879352690815728467920544420905397460391074784225634155867566573291046208799936966366244244952392021473303673383135191575608880133506954956692622098508118472553080649531035610098559307806046256303421150947062838982356142252271832739849850522617721325207711379353165268372997160989620502640531482638226561092659012523831687514708451268933168469236267515770496680628564060440368662523713679605241182923265457498665899254824472066424221557004432672463080448756248626841632638236731012609264464298027000375928152729067850564419184839459408286585002847344007104311808445575269693723957269987965858931696989531409672086606356983213006204634483199811135142697952481700429761168883693745046602195435900309996927594549200056231666442249925861640657463051346730119431792744817260894730063068380026878562902358032808524922752783129504718698113536047032655560887584317367796516241066221145912109660034258851285101398625822820324746755635773623816393966080595679310001799642311797026243319961016510692172132630402747600976774549025164907939685959489802732100395987029690421785245460373099192034430041309501882750103405290147837622015530965964856788711107610844577152900689670619212708056127580962366119139597866348757471277354546172686878978929663040846114744408815518096260078186237473120103965073864215579201092129377376093437429081331095120427852494341598642111758927761990878294163210755133963031948271518631267338203385743266132648070598830684522971317540769507770636057837304440762029236078503807523025403990775682644969569128574477672625170568559457685257026158795701212237372303970989575177446465850282381132416594415834573953931137588499846766588774186694918754237851837071575439031259511898435024809360037437510722021385867428943888767858337108937576547322991442148856055500453066711901694239013937387163328886771066166512394081962641862168235352314145015073433899636870440313877777112702539930869986263743327005532375078003942432932002787069584736764089435650213379238124869513046644995874986894553516697177881947269632263749453425044181817672432729119614486748299154288887502924528416365443737596614364434986483894395404855950712610737172978234922106365550475698505541022695217725357622613064599514232438634620253464876512047089233220970185316385663676836131465143888483415097972098413846805020432212242813020873654051407182250280703885971911363049787988576036891092710089764587672306812323302289349276837188381504910203958964869677514678596867307369937448741198817777844746182583183811577904457384917117079468270978026600080724845481577176113851406467105725295222074685107271290851802196811530349336548417416061726522245357315617999871915600168940025068746047071479223520404716411619812521495802316779525977143024246616311461296926285913525613263687549421051577025130507729143209692532938948401809620696985000672782450742645167617872109585444873972613740775836484336580082616181649843961516845271240087100929228526945939975813720869281476225047740128751073111077325390448008862894605915991073287440046344328254778039555877740261627226894230753735649880491324128791322012900188090157081240955503186306830006803582365789171316596161430702394127046293036590196543828646768567535563108505120868374598223896495701421076049111215685783055528048024418488728796197037184378345655096274991736418235489768832651669501577921485893732395783210915253516427095281909692344889328747763691470046896585925049532975354114611565138803856308385654782085116971717965247708588690254852225233071620955808755417991950264080807606595039352609667332812158383936824622535062232283865013571403250519135571449206080097155403384394351290319185822758219641772927627810386677488557197934969952337421116174846931869882415692325701607907203899693698967956619360301197522667362757327909891578918612161346583006137820784217061617617554306455246351462855351362619117914662755744593380785258312542908873332849603928978057157473190226994603344782555941111018680390839962248984291397879403818888732866515315608689319494214917925388603459361023702118882643547545011958017045565852953621512737446010629808677324050582860092448711807546677185810201632808706684141914999112116664312586043692847149992454725131845142063284720706849425349645258056542771478243294776163699957549749956643120493087736521462865536257689111625852312231434091848659033016261026537709176382923875000979430674881708511665984477956248379606597909121201876086194617637884107907387014307071624952400962244011416882921624649802103461174976018965649555702791217178250984030819180644188829789692371636600788280957219868248245623845345393364804580420473349831043387514449340272260160302083892342032335780719233355828659624921086163997015454949930732062303888461587491763167837527778264509177935691540028766166487131471459580692331051213894244750512169145696330033230213527298067885050755172330119156451905824306113873543932032577245224547494060083215467779445216511898713587460368767137083003494526375730627151430121352719814046747930711739680919844606441411071023245408873457639385160693990287602573080517237553900053540127122088729472414717190294629613138795213470208474853513488197075358601850479150111978471048672306130833011556849093049673334164683968151034479585611909785665449303836951545576112451057881588384551146271061369001150790642411971407298071828756833768482879855286631418971892728235757091642017017885427071702260696844396530128016954791282500096938183062371870066405582077953774190633971470727668827859837336636863947608455958514714147833736829831257529113422876575707379883978802315038537245529743825003634785407830566853327141345836294466447957096122302669167067879301998157354279620131548609273597005979749084489474503757893322033805167755801220816461716030375918215103257276670416339653550895067763980320395458476118750271591313724872109467355615540032365204253980867806615688353589938472234617385827730605173461732550524045666988420606771916303441923611151412664895088985978199069724554079443758961727589252662193791008069268080411140206934382496005823915733970521553219771334445782187042721361729973341107084624806914241444010242324923670602658386394673375757393091892089176283280872925584149203243138567890655524273605594319780846901117469478970093488413085513651103063220691377944928802197880064983172327266852336748446877813864071516009613791757455975005046857058163864220532767858410936070247955552839670797536824770987442711040882895777371724838446383611117834130139090583716188020045311255555034674691197165396794170664461922683021846633967627026306501332732335532005263007999061577526516671925379322677675625476299689066048925982545070224913130447222041905984566083543776411387568599034114715768175274235082780561736056176221632741898660035401716484885132038870556917311790248036868047139684770467889678448383234971543760483679256416935948694453120144219097656364479179876849963373425651452010310538955459807023491434272624075466386380166324740197892638628017480503159361224827065933792273950085791509619291049409700885153964517157075219080781440048908033217902724439122390648636339096065879634344047875607290557780307738442273545265414116155379111397627084776222292307471907053466664189672258025108909605759493243974744339870732619161387878537811354566047640506376636230815408113144768320138270781400048893082635921530159773974550871065237630815705654575501153655955472505799143209753528312892252076604576093348274835533440147993402804062090959431335113286614939985228269907580155648594223740313823312417850042225248104856947693116598758408914000798200013111213338062003826137823134109627582053944705655407597603689846304213459449823307842210285597738422946883697458560460974868974969529244079019103857241095711831860255378765156689734568114104135336349391737597100812507008044166009939306181889751253990985852259000995376231138184691307058384239726126791141980711218986704098272597748247978095871427372800589745217199710871851702639830646272179547579103673588806837658948777508239035338043038917911926177869754551137082419831636901737174837846180265810959462898438940225681378540632863676475913442505686610135209058018799093652266374800997718845460772651087268261368828927998610055380740011403620178266913603269022910877243031049731392972156423705566198830508382737083289531307715824765080011331916916709055715957877522598275625804600171386266252152434822309989540928968071431807219766650378552282157473836930492450148424620254928813904309766856672908542363861561154855061061045870228106238026790932634238639440830756816515933837915084928777480390815611636749122352232778686468428052543790430060375373704810823785060597090472564296574999101250994463458173945101250034223885664451223196378560015122981878233882812209841350978687128193950635519503155995066520837339004771822258268183294851113663735957740821358606644375524724492870449278132748391037095690997301324858421021519487479705152883540144439135272757343581965223911149533600822637570256370169453706034814042325871196990545634529423876206598310367494640696518015258334819783435478658709866394553588009926427833888686351392892409337918397644971944033176145508236419607464672217086846292269540807178126921034023133556963788104391317821232049222152730121352656524283603945203034896920295053152713200800275106326367078581728395989813890067604920625438412536517561814831491179162288272295776017717703487107466766312185920335013636389804808505583651059311987688272370232064648603894719266567960084454602114052126149331175714594386709911436012846182996077833951449533878019053477964022684082776277441069935439309043193386718960447381471988825018665638370864290754688995852847182979450031905131183248015115185219168944225333616268340457722943605800174204134964157503188033682611722899937285844922749843811812824570809421668037285026516863415471875645523162310640671016733126708549204355666070451638913180696702498713476332825937682342966525463872441794771758189550568241280079184091637778186048424082135195466749727490515272306481219134817081626081556575933454989523149288748168356238538962470765808336202602941046249238637686923216726024076600404575825968694138705557896563250656463324038127729202235320159735348407637464054112899058990125467474724631071765754395199128897086510171252676531962999353058442924571616552198700532593205037503619607512519090545745401139275657404081547962823777168950222376415539949897360485282476584173402239296572987981676971688469899347501964573136414677690451596969512689811823815560452126464082697481105370737246467042740432130820735468244568559989364269979499230146226518826037228207055978906949561020706789143237706837032490592819356114194800046836546281833769692251692985198578238565111516858949497401844476072599306471040658928324687873362588477011376434747231210883470017398603712541874804334289782662950496251961480618989687474681584747806976427932798325937043115715773348682154466037313787916805929613087984066543575522038507428016211246606311766317687384025744974501237763720180934503773970408293001904305817001929037782352083465842539506761486962945264757151526322649258176377096784211936974803202403680022717471865564298158503599531886847382281588464742422250417277130165280070414787432404433530139785537349292240951608338796438484884945203226000501236793799112751902067756421441715580853450253347560261936340887149376414581974797560483513944689981557085309604229276677107797850606716923388403239917638195088903700851059807963706804253319880414547727325863967932177981553115627244953487033034009183561301666390650399221341457272831243352175036803936653183207648633363575191576081597448745684314353969670350199315182329833797669507518807938191630614924470518266213043944699164812185780862617068177906755295233014233052419551412016459256738699891759292718343470542957380011360798937931189092116397610782994747363679501947413720538281531555228725935656743038986752599831089916390331989752594729833655005210565176473822417926557058983971202992471881231393505799074547661446270322213701650521501530913319734181645436504688388794770756453187960720071179186998932483442273933180580946290179205064893193018582599195192591240926136465737486076113881145305183308489511742339054678681226526921834557011241852244027270384818832478563324902600919823054588157532776759648700168832772239365988304443338111535486378512359934241198910735325915683628046651134402959205632179389487048761794023999528551602496836291801585485060336696881516485040966146843816974700898549571057094517953876586527200672589287302087146235390578032671084028038415945570228751965190122672057295049919010326796399618028787987644546537142624846510376084845114221583116626153905626096777489879986430936296113054204713737506711388699319799939179318597796203700043849463690952758744928703902514910455290052409221623073594266672446278497871799548235996385100080051217437298695600711480896947598066897622775692484124656762083410448773713707994092957711430341444960040419125703247093435799125219965276432741211792810828937036432353007237668686424451516313467320747720766094004833337585862222609589157351645226861962343649728464991346327402238416535507076408824982650899808134160545814781572743143781910895603596801420653269195125593066021316147938336390461898457058839002891441097117514395915274258893094853184980110165864067651278657580399194110973356263508961914072541268182014968062900261492518405079678652002015909577479656952816048687506145147434824043291755962177396880024043481073173081631338927645625423003471856721508322075394984477895916360569936038112450394972100334574930819216307008258463484944414904784694163147368017746929710603470180870839447260509803230559567882305244341153900610016082813070096123202954786317169006770320619738116691278595258230767054939491007916317649203799913216970005805166883635670232519661914690559378071537240935618754477674261991475189662732327145893967206214864611192292101373009854869898569617662281531122912871795637626361622867142505981129654315665537718423745989629373930772272063700219711347570875714871118134511178565406422995650898832303407666365668784724657926943883242665246166211440219368160968983797590938375957303964662716103908350579134016003277989587289840529685994287355344597727423740927361109379293998406232582392611423628131712742022856333874935822067374119818374304067133090024351100478722557310574453489374634690462995379547763939058671970981647755832020484809068516513979881905013022226627978090151233208735345211400118351334328785539014899264959696652928101944733275940807508682234977057060709700909795186365624108467970797820193761359554483497376933456112088837983925077661172433136439036401531216122244093644886236673073922108390539352107483407610202043275808057961270441585094417397159870549665152819322170634831325018880329830977928464188745683948054467800886856055099409911130002448545904233689618971218452536059335202536588587429622253666716622169380087549502879640728808656742618969896561422705495227395343339416774583294632009335896712623476986583826428817161388043150550298226954654728061039576780399499354755082176931026596233900524334768805103588630693010554117139301098890006152131176059677802442803172958987676678385916137833248779075179844648672843947678231457042975471955538495594595531423455203910077789450909451816472613260623992912094706198410423794070481242456400054679480619953295665548799835300958986773703190804654311778051915260106156377134408498724618628337396151635945338593300116761635411747644521011790290015550998985947809765992258874322711738142821624310887728869767377748273895465300230034448075445505117873383826596824722174342051367303926023961820667858722231818847601626091777501794086823392983470697863045684112527149574625788747850862665812796278979569115410689313263461927348730405200351316292714023679138094974081151114561166177890405531097414581026154722300076482497796317576860920290502081811994691635222204944267239018960853339824867399050820754957700608516241036768009055578740022527504568020924153054426950748545780067776951272148155213872692220060924476867797840586836348028652355565988468848016956883116683313184347891269905544538067605054377474970975271011195013816669695064881773343735430757997108696556886538643746027366551634727254958561286734515438766060013789868389847118803464532159328417112775459134062532894775919320713241097545208266494995947723125601441167576100239413750653612468385228564973635422455896213504603023315385414947232770179363688039345249999735935054711255127025182639982345513634403201893249072273742451432359454188483721154744173222877605462426691072024331678370851983113229252773978731296950141885704659014236009753661615106257740129136766177159327055868366985207237260529710922092453519923749277068110506390772611551178932546097612593268029713421371859925664953406506040226873530683394052928497768663123742311140124592297912324519195976855061089120900384484749656178179460665691322431090360507148079944131107416530790785854268121367127293257130285092452910311178616309297314577695814644444094242715474925825979943953467435817349630531364343175669834690816298956110904333963900709267915802875909501211663633050585261225772182244465232467906997546464654625362832536919758452197358650105434958712942196947120106220499290946472772660099321185822746080233415150423400951572318617051246212196092696911265516639683615879649263596583260334577670533111512526083942649990693523012710250109787332278738303465703807783969159934718208302088937637280881848996281043104105602753405441229927102644554400271213836755115042658094435372105363713284955292929593320871679447809805191788478263383820169067281026120266486002469707953048611707307782010992470159233657571268438360448351880547267016492936619456472960768695107680625231920820336671086802161368584347390012299501693084852879860094673662953420148623550789061183243789706708809520517305208726809609604735285263562637668628238605056943135599347163362712235109476097646372999112892383028705458342453709819914650986636031396340423359180344444339528011833620882492802582961430928780467758365184384822754307929908123796395054035292766484349844741174877343116033150730519733934718557623904821131490518143246914811418244669103129768648963940859566179288035895263373937045525946208526903280983110137608409092439447540420783058024784419397731782650526809150605858327755021572510552614369489152577342307513560255599134014899316364768491742120508186143843356170191343822850794711301550447312676854499009177490326081195341903376614425330918803222702844267999259645364839274186777917493747950201010112939715637214853813306242506311704760729708082423992616829586354941566025530632725972418224718409915944983477856059596129458559433693238734422916666710756079173456349977341813960241303093237415149445764215536998736997799527342248977480653324697931661879824250520983435129253534930822446945280320193632373726358192590724272592727782893448227675767372522823123525214035494445632706013231168424950761762019162106931364446131729555979697259971143770558242106985726407554421600840608493495295693377877329846379860256892265553186920546431472489501270158368590886731048050756798531963290667642569173115273223247118230419351547246472374182624211834933837255712601285025626559059762678628396258667486801392354575077447039972316840693023903421956146775876014958216427565045291194583057448568514818416618872257479896061592717711365838736208687805457234455773874718962778985238331356303817123683950078666826632449566116604452064699982955565967594834192461796251976760933886861956353171151460952707846847238883163301888694061430277312825572104332348977572809228124781389418447026942655955607329702112526051243872627285778385089434775618460400530872456695961729761174464528716261651481592845777290575509917419689832458329929432624771303440857660667649077647088111697633266707380492382799709308975095338928935569302900179581228344519002379047849718440685148027578215110082584468093510853812934396516674632180112723534254841313094019183976409253094457637547249296802102029468094617611415200038305784862587092212596019233079829378599030950681713875760425624694188991474785668835773767330484503228990397197180518944089872653463615066183383156883364022853823463016818928363911845939572388762073105893550508231993946487626147480178092870682902904147528218651347547768929804971794543120975466271251975053951135824467709881794979018006656613900479208497543491577482872303233289302024959408437707721247461776664429794650656187376945420178393111381682306372479768446924215816081359482266030588581597659110258009608464545793360667373274189817160013744186987940627257233498302564811722051693674013000794613657087478769896422896486550137702160776677528641992913654896935511417102562763947151289901864197930793462402677508988469246215891454738831923400493988249913327907709225690814909847187272484518492109589481021456152684030957915269452010496628288069525206576598670297750945160933543417057623339468587161724712653602301377029009260003495949545825213516765011441254830859828215669383900597744414552669333336028892179941903321441859704537213529155790081149741667728529740075552277632801207996793940597706119424161215824840524175365708424975190920619662926166224373695932526131771228132467568616275898818876730820178635527400398349813138006015086118039497753372039690440401811322470132946201039890004841260197234059777159877813042344212234771069327548832690089516224537723501556283414252072342873160583485591855256154735824822867967141456621404747364432029829576708833358444203586367141956382950445559282986094969758677122341895587250371732180728829654941730017435280636307222842932581248756874532105043930940607883624689002301757932677386503681234070813917023874258069525502631062354863455962700894649373411214068127989207737398453792788591925449617182047327593051807914206733399914216982165646796547967997340763019490117501412380118420877765680081979108034384479684605020423401215048762764503157184322226846201035332026208500470161471173112471270632966535764396084940009201906236138599890000764273343111203523802778144181731890393332997043456812732805470508637967202138170434500778351700904214636789607051534329861174150769477586284200458494889657514313746837568444179325270293056121666408495840337432394249659399852852625171525677716908964621243200761711678355017989195656050536124936904130305373823242413191815530003515363764343128249964886196544219514016668196395649974446304512269262456574601007226357354645353495357594120127614489295786926639809063670819749145015417368961692815229905896024544104940466852527923835080706795351727256972112087688002461219416044644984191233630620604454730395661080435811755621186440955716075530022410665041374522931957937010405020870291822249439785356208528619921648903687434728309504588103003738468743423606652582517146627133784389626082285938612126485042098321634930737853380119329088923871022995135134001869933186446461900462154456843386604666959110932946378476956914383372036124102175389901844253674802702354160196968290053452108069419682035343269629908239142264966119419112723787723353508579112149582630233446304621174647668682265298322158956517565807405650486192029108041299251639341134793471985222511103834201652919312319171299687431952109601766755824337404627803475834375562231230845434555676147931152480468055891384557427720058153313858991735126109989570822011564039843431299306902018564317951164765197515482284094193201200944987729128386102469548079587088748459942305126554756570897705952416269431232847739552173984114601735339393803858042636388061924341956485518308141370161455961175039759638736885611894069661881201461803456773595059479954877988046689276958554444619148411647926047709524797463455915891847206754205549738151162760248209446678845986122273820247575811549412441439589201541412774518869358007441516250830057732081654467705803066634031991257755216799867737186245192461631980634970693576782092391115640751827468033851180399189853025259461535283112759875138369002623586757401493060277574407694329537962362389531724608063207451362248347600182393057989737778204868917113673253353612016790942391422628821967940864805010713979976514030560359589993737365764614931253146688499190281879416548532378677230642937713982793084481311115543609278993128502736195434762689059967265518649136008140708580009869276056555220783765356998884980085596245657595600222513600040149308937585253798986090007488219878371856653617397481758089650006007201566935407446339370750462450146948298630689323506209805296655873937265243199958121287131818959186313488145052291291012108504642445902429901340775655821601662078035070433516434394266421700217283050701230151908007885162379681565853701419946750265552607643923128123058246942362086303095154389747238200298656351559252269349323138352289888461855943834447452083679542730124648491463963055962745039268464835807303987836302618147393801754741150989842728213813767415148886943258958574529500753205519708816108496951659279982125190654849077824227185839817507101504337934666199821367073473705119541088508930822819124400820923444330692172474452607458142914737319898061019029331098938417266869688261147953364812151429646558227292625456726934838879310565675294575747934978723666052972149758532758098963862242110486464062474266653501968886524015553795980504733008501557649331283955145168176873305896946935024617811486225327688814543242966966491185430887103520316607138765963788613250011042921462965049169250375645973948689488701466128510316815018068178078539683721794928165616099353285159917604145924810705756492457115546637038123004595403744789326227846170651591734790542751799535678561686939258603061803793511340626036521613253777403552780724405767998029719398228039433873505951609593786531752480086256271956335294195348733646364013600362913903478248083458134759515049062573324365121546879488386448852585808984772414413285062958571144924245990992830381242890972781751374735528496626463162260036174668455341986868364082953715560896402576954643847121018777577702082694676541649953942835746055521559269312963710285786664796293288230986173840337569789158957225244946179520412896793580048243321868826720326951149591805875084701394910229960020216470374932461358202018201392057158057731038011737101713882115850794860248363364657126771061234730882839853469453489006551037796828886266681747121112769272713024970537160998442137153727863977945309910754952312245401473056414605239993338382689983861291997469715355479055707117123405953246718482291175495547239465996414850714676410760240259843041824657156254903799153626929613762957533268354813096677943000157947770817303107629295685398231713410920524987467645454668701969383663294389051938395173063023615547314375311344541797766721037432926358840732123977564299935424133755781916553869473204129325173382934552282936164597376013237706706655426979852238815762436654216410817254939283997870715797335544455925639173496800919157962320491166921176960859523368956992313278677624942110181829682356147586847396396793771439128934748813440109807820961355037770398408467051932513596276257287561969533183321288314681166237694370173907096548869396046916245496525264862246724380719704226041932825837543687797761692287321840814819163590118129803327400340023415572977227575270439468459784666980599766491998147251704314415162447925795255643402464856945605389406289871376979719186477558526955058945564479223329484026851652194737643547781777735694602575042917057747909581554551034309993890421285390130432384918454536487296821752172017996216592748988160578324027134817138262141454598203943533848889673461754354213018745339349437545541555524447928873561888315619676848371156568051419732243114211055626270963859803063816711630735258522860509832132402199797033130648644968404211783874858479442978531067140480769498261390433266364760312004717070776499591966309813706426348201987477927959571533864448792192439808583943709379661495342394999766643677660325228540439545890766462818897111750828211233363027448533313233947782739043636060444133285643926461044050383354854371904063056126851782579478547997815198381468487504379291290315030360206336892393108266262567888572207322170541205388395357875299614473268577145129198259419965017573819209312991486907869224400230932078677887662915329020382406027374483255524217304195100039482692485918640422400640824562866719408328570840589563409314659710208554077701242349344265624480598539375439081064934503387253196234037231266183793550306305078586103617771810697513229219269521280336188441619536894992256037133047725905861794664352703394445338306926204863916643080430757495851967830564797234164030931363897183922498729725757937156584665271145451964175631322419440454013015188664001041783601349709748312797583077271535179289751016538243406030472714476236238542953999330828420856672961672870091133866025388367881475051079856517422968428245453419496206163611280152796833971386613362606166408486429820981209055124418401156906489494531229830072678945297340728306358297782066899294081133138609923817739857709411663300565756850976486258515460778136311680980731176197552875609299258867218890341360124152817137223772379495599214050915076075763259814972569066443898912708655589885156077713146252700180686048877371389091421395620750095046214662901567582350743301566841811327826089511091975313037910152140672869791349623121421384402745187290903945007171489371522867254062569577025181752317233702329225297756572792316584898384808404046212844569430832381732953419013855323722720519968393309409527185733984846186166343314300510934430735932269995602937235505053040200243606573521099324917135404678221480753976567193746878769449134511064330299503384513928007613555648801929074603926995703700790893614106938391030372498900022670712147215651253401876113871954006614650710846438021814100444334232447497484318495565294101315949246524314587594035604586734115030317520704626545450618228245071412321279894894136724665582144724500609218199964215700863142104000597483017571432363202689661748474360030065993880325584072629435545573672966540916533968704621048402239538686298423716792507811275232083087376852286733743028570400750966259670866635477690662080033122093039534656180968479319107597675717178904121208758418570861554125099395461612778950388323645018487426142609189013525065681032585822594592479334721416023583266100349832494615813450084314629079973046949092186065547062938284826273729162305252768047756923888869425920112585070096499679140835950942026718524455483832841488937425756476408062957190825205156669838633434416436870121229460129883628702299400810245300469520066017940642523744275758155843175832287798808847523420217687019053490251763715543961897806854654168526275657102144562709301240236749772192067991804263037237682336979010661740692207534982140854584813797582040729294457190814132760753415557256056756935863392087904697356017529674640154108445713743242632536253610314119978676669921128904373823489414791181517446373454501460453589744063186787137209129836717518299590677982724767670416101201982591782237471006297685920265530140616067025043292131440589433056800824366247124665654335195484525719916605054998111508191938810508826415311684734200320747080548083916812457659490645858154669894942454409377306823438062840290417683229143843656999071526163253683497715623099087377304199840048537172884079425033861233110878029235886242458165004555701347911925754151251246810769947212917447924716453683179976692304535455594685438737069378285945723993238794335664718127187660300198276438022066513436123602325137160858121497859461953324300468077342451900771261231745233839138839110023330928161336878319643604238126393550824894904984015666999014607059370526425309974739733193135882920117779004374537215402807887885642871664230420321404860456333386357119392079477014304378996344328944146605259899833158906640060082292996013247556889087543935381859276418395568058174635793120819447556221246237840742690296624886580803170506061081671931165992726529668583526585861992214396259486375535412136860643776361499210873448468506936151857647603127139778340538452810002785921424674427974834343201950966449484346504733462470416943229676797323533068842177774565358883126533837240715641548168336361411922225056775290232994479483251218293783592165970213043202557687491517318655640611226674093689846597710939458752634606444452755057585455041697354269879622118242021930034799802057809608501707822050486153293031024114451958412355239511042197724458060576011538579319457750079757560652695482584291639488764446615262088049194100735563021755731631864584475226008103570491195079076394350214674897180516082534677026135522029336661029421065249129291332171114381370128382621162336183255648040103052938801528202441948899796269086638773311697917414593577353606358075743799240965029501021732353437882191226095480422997944985737143150687752705598403035816191601208107443769147658562362719106189598085766940736470056431980312906907818988393917212691032326167291464779422189099844393471229982764170823819625493754787230202254238050660317470669021203784002207950220694069985571198497786481756145817179787550676750236608065807295133070944206142272410761912811728946330848463978293675033300611829502041199753629359204269723901328689052545719682343883622083963897908196126753722063414984987206570514579378562803556904046427794867285994010109542032058767877420478912952024374427743269558851385934285231159778415972425163690984854868577023726079803657133750465691715076265638219182767492530765744984464092958669105180510765259696419714068249266968554346724865779122794285133482564713521794899731345805512152762950998555383870577273889642140842180340009878022286204251417352307443633261501571066512297291135587696204149187359599449235688018683295984076775032071676065446158852421661501265192533099916799122748130858624348390822265872685928991030096894380748387086261467733627518144364377963938865637430286412491447658675697595904878191468577276290824638761272566343230933027494284265595791551444397299819779247641870655380051116414169786966447120667664397615130848014441193491350011267389633831781134114263834280087856222682314887454362952785218900358413422229525405122794797956318632496249014744660677311553213213318538895320946700574564518846571071366282112334001902273767546889852677099522313152674830415592475572549823636229623950679898316895965671631937545837505567468150040959990326471687456939897405704837584223414952154523185208778953787431944062696487252705436280506563100937905320163242783086107617239859158770074238831347396882269990881585223432571653345502247721753840975692894675438359116341806831074811825926227692148340334493012366007403304712881891697102976722168366518761856586880447439750593316675495856782855323298144076334830368941355951004219597539967575462558696117915112118847103676875431963158001509381975449070068503020657326882669195881783411543426306834654773477828966604239518780020080891970415696188034341933843677817348387828839321245426869169840790517450167763588159309929229717265992187982649755883199055880628417122825877410717616842038630793023869076438437053158590659254968695356712773851245227783930356449940781779413549634286020222933158046972581111137431534114440593443732917212351675533530302524755859903127776380218634557871127861471225963470020980798953531951918245462616469739137121779509002314672746800380913853443122231052953294008629179184754668329365427956222251831831603232723388299668128504558695601510091476941246895104053381956568424889243102627321776595006502709649046646490081569721804178966280838471644477188764660910768587935860008207312857322720310023763115932662508310760470309262641370955878712006760198503252590205003186666847076333266404093390459218431855909090678653776223140022239486803266713823940645422576076789297015720853778617275547093578503677606049221308093738138801468014073639028785589744242594922466401724820113392191760069695170558881023319489442380159239426339690766792981554074483042012698632492797710602893777799039629331953415873649031562823067453891507899590831204006390121867836584135516151753110142647152165230698508935338486674790283498494614161959432261852600069893175637500769429186574298447994967399670667994381809038847435982211256085262846070289664673098804657281887520198976963267099909982326261376999491539132099302518960453779754485013690570399150496774783087061765603774167767974540970807735067400838748405615511130209883570595247022667843256911087020708548894907814116979005730678317709193480733052022731904838268912826008096070928790664461905492916512740514242771084988711465996325322381327423686170770492689389562117668842012676760030662950715972682465307962073300898151424929805712750546308759099199792107556543970744968114263686592087243216111089154474911410143506941858531663831246781164252359527975532995887574004155104656902052537791600904802540731289072598596128474962138028551672411932680376052524497631343000752237346000328673966049810031532614502129714014469879401253603626798002233417479656013411121952387800160362623982040970189791618398650310632501180072134227829952950835038814881385905124337470654696243031748463786006465286768598129339692098719308314255359537597899752976669695562041945737396908185855065345983348402911842884059505472359360958126941029875854610541091799160258946548134304654542720135668090590264156924651897395542968158403989395451078046338781929829326349964141155277699318257378421507108833280096689204476514000689136741699847863252222531729467203972811844267678603689575769757861247145971362293061734571272628527511905560860733058968983854775802549125992071426718784807883216153849790746926602248286138816293684546332054303011272804190629149836677586782744335622359676024222971683545085856169992569615946628758993644407005353362620041393387017553599087195138523091901694741755597086145630932242919250698704448437729645822558691905385923609752981915915853527235635257146999323889289470848377093236264320979616260729481573642446078996923708580763294317529119663368044711558485764415202569505525566821228484687266206609625976376928617925323580013157353904583873866075366794315596366078760548318788519907649897930307170740224197182439903091494807834924236694511305630445374909439296601277933084267474275036691343756310412365479477561223715065615119247032931755608423030049590102190551098432241668281635142509112386711761033500139367469304189531837304223184552778538024931840143302637916462927703592941772450410575424626418720131494937803451792667394541524658963696317457455302201919747861647331409522138946808268273161840563223018784732852619507144624683455313319375493069336271928687068587948226878527492805055245357124743795724844226600059313319487556963130536534284673495203192729515087792917282438658743714957188636951523990949166724811749454168922138744262847710028681146017145223643805386134760192173745062659781577705129245614964871617165704967497444399091357908085416142544650236820671520125614956058326376595086091315634474059552735872284570715283095652455353146697609624423414826663184197558056939325173410225380301228209324026036762209795563452127408100896725335806339896624681658029515517786169768552831753802667273206666722161990496675746459112168076733667530052793728906203247816890386451019392365785503640167708280826349308471870863353715942939018215856598119809761789789877552790631879818538122796857221914103884384337702339358339743088732407773678080269779660922265550071255079469634340681235921598259786603756563289355592656072229333405609978965929785199288393390210816335986983877789912187131424387146406784326783524862414613658213567046312225102848815171762047748058659269686907984700289205923800869487929678243829695491564850711656938636765324812881601312830690027814258065555149157097755805375454839072772524019522840789663994319321227849815815883319921001103690490485063334185067462791827250194406828982958066657484413656988552381765224764458833902283204771011911227662685681161489333454977556931282723702738563400052283578400871917789499382201190670127999772625419977207034313898853363475270294196467590242882403663433802615188826495769963088700127059296455810866406560208924574009739282801267868979340200899030760595514778485137003717183611550439878019412711195436623472726761352177613923581946161812749456692713655390525114152997028646959141638670620950774436415561971737928553657880425397225575950471252234294436479579109238600271672427703819944555965970824662791883622055176118041596540093315538127811276485938437539865628045898723352085481564578627519179939093355829476481201167361384439081765470079655019948586642218757800827286738520327371367286643997338022280761588642923783084669206593822238285862392350041918888379991362399325678626209975332876528381452501356151806896071416388485804808712522947199078745775163178158755073017706679979201039218442888106482668411768315613202818044878987369463754658063003976201018484173253597469353228396102107048837274947206298036932556914431372477799129797115387170004826726075371196685007919622977856964825354061671173996340014916330742041002459595042172220866616266764734564949621317087012025028084112951281698663879349177362596558662049591196157911598974620605726392817063042435165692303501440645466638797540298633424471158655399896157091875118234112758910880246779332397704946926888307046952386598453142527287329135535636919030737720380462640354115425808776426641209275692936898138842457493272830230278197402963471370476976563778784844253078787555610323729597868596095549519302657958791581171067683044332800152164376439331096862543235002401346215767226437671501873183129053055241518702677069420910649251080634540351202083659691265147695665179859331778958509460590956924690848469830954221134865054183872871566799436288316628934742359736703299964888959928943012931373002904752993624070071996322553356031861461017009849948645216627715194449766768918903710991889770484113547860907114821458808452154820925210268742533960371803622714672191270661046599797055913373254175027196134748752893638439236522357699268535225022691954161231526982658703517835593348260557558820233991787237990431755344749953273283105965594553804425949289976943877145653705911969017555338768771087322488566128358155235200044561334182508826484192543991963137943065658445748172718563021459115599068092705062872153100042368847515157622047796804062274950346682536029191922805598093256564359909406549040817865130680106532373104208405273524312705584429070275236596655393678032043185596874360314490681009022887723926887219799804933851487020149512782596275622008208189673319874343721792587893209876731941740473074037861718273067509485831601197540498863499345718006327028876831729287541591952461576989857613989659706328091511297628161961887387769080693174999964692637989548569027634691578150452313755401201029300059582938743632529099218109286330249214729819648632230995808947785620336453151722064475048282432776327861554939591309356138770357683403166269246606866689619343515897875591081859713035103157103548667754160775195707758673859792650283065711894920395524881217226831629541671516214073483237793553448714566106824204141534627323841428793966054780767807830015641952073963000305977495000337656175962849410856394468469427216249618940268955612574439903778979082356640823087459229884939607844768607745726759969848146032356265084209335007444669230819806038416781449333948892044926054974532515614328775705426450186872674721517654826740539060760101193092933056931196360783739214111813405772244680948031361907570221728252183347672019302732109293998588525367716077746858075940805376001304903520178141818186267009819568958886188974570082106712875122580682066932540437615363593057663351129194365167060604769194817164781308412098536147851721486986463381234542994685325814449650304906815814281431307919152073978879453741432693710458389447601776854134038253677896426892057501580288098835704841223622289820623334754278261776058419625951044517857799060777513373370777465915654846331711232712440159495698314602178582862395274342901512358542488072526998517649005669284297084932206414902501192506994555895669653886254890860755426537710373319942577874547101922828380048780447248533101015251783587468957238497567286352623675908735984607339307577352040188018402071228131133776518644543911730928841838614797351539992108288317013080026785239269559864911143085120377207872516991857520381608406625634725182568897192736355929640356875982205689009169834712143523131809362485085846510794841874086165187175690002894814243057948028339671783575323824439710061403432582663412397423762939427732689284676318535517733726305016054680774992464502040503355797723288662125491709419791355989660800586076323307548675478411453069590006394573821743745877841542154270292116074878789894963823606484676383614997824034219104205245313514640785703842520216010581973265438749461359172781475596579913639453034723958401386382076425507677094812115310334162649699191041060434934720715184546019331489305367380541019355714405657604142623440866670420874907139839913288379260129476103787376773822752504715225197371069946100783530450199570370275592746446669163347388224036313244085917439654638555992839513864748357359303296557150657130735895364082406444868107845876800251288474277713138846236761841449742588520701807023400856950869503768336308658763236769677154195313767300284516490310316882383895081164240237442718011176163010394546007886986113003030747248037773425590343782363230638802965405711603731843627159536914632909437483756600929153142544930467090678552380106476399934965768790144270263547491563140163815278432293971956519773503804486092354175999397587562784675824283745207725974630881578095628922009344829436442211545709862900696535847610789456269317214235846606843149115743994700393962749030365551720828580044947504286348658054020822828440238565390354509148834772627459179675429616922927673308133616530879002887757571721644113979675542828379533540974615135628337899752764366672572040195431802506379781123899289109398381602736611363339724112978763717322931943617571572576554106609843870016228101920912021628146914712163334684189938096329115860865851806349244256091059384154326808637331685386234961477398254258621900883738734891708158807332949536617530897483800963428424072542785927488553583642300948198792502163950962055201193207582742405819502002546660028617626268808857839505271674975019511887751762240981550188767139207051053825874008504186549252824002025493666422192389179592205558365664342690536290188702605143777448642706427734032420854373900800928308998584799866640207252709142088999697832123066531232174381522258647348764719442390894299496516688938005739536535582221872431879286817218591811087918522709082933372417878217984574367767191000461373736960043359557302442340015467538639657911841294957069074817791177027389514330013327977184467205347825876695500291800724412486708708956172737863165782890933884611132023107037708136951748858110167462683185289792517774124660170331892428469939554981753730137264241002666414150590959561201206845567676563834884595213579659812499303290691492932412950361267289683556897703622149727248736445889390738407872356556690439299150045700654035882309840006741338121631506939283832197063203278654186148327178771700575973620536519024501749964877759036902765847728584575526129380972215609045752002365331960858349430219983014655516671544145499588613461180558575111751572094406825146391024991078009788327411273570695011900146511906018636724916169039654849481646287486760079313351711694031690868619556240385664790399696322996888894741349775944544934120294322921128492184732101561554824167873516660088502872771273928247878773370108496786877961067606532030597849827647719023377171783246038022034497803526064887502973088934701978509535792121631539117976005454071180115720540626501522515558882480298432205028633123851204004975688739336529643365162787174298443364830363742793166117910986551975295671548567718371800058993125083522778525385952482503312480985141152797082602051068549581788452585706434928268625180693709466384320188335658592761212282581263525470742873565016070476357965863561313857273158276811389356429041000146720864154546330937066973940258655813955897883242909643090995959993159228255805845939370890474556325271269410230616535840940688028814750072027265004438741063421470030035444650095163345041679577355192398976789500127148508353336757342694360428556382365230926355948036265013647364044553844991038646874452520899492915708402446510822497836792136987127676892040333265089834958942603363223406656152518783563804302830039499511175998110217806170696868632624236157853410451228400465161687599041877352337100443522032294794853468921183007497650273687856987479032064111881665518267846900423271675358173113738572604546258427706489658845313116645644353534188094644474234556460293605599397626408269236579684221766292601138878233770551747286132829478522628100328023927914592698792134415651856178839931960524313438701333837320755307555558660249953893012157505420032450675133359590671025499382703209414331620786857762333565035836705707309200264693487624926438603914086184395685740700153733239140879073673266155095542871721243195428116678047942123418194523491652616882477377719148629551148618929654861060437664732206655854671924222896144511620968604860202395754774147800657107621372545609975712873387716716426919084288921470634470876920667992770682762765184383367650507514311064676728304276556991490239009064270217708536031000710376294556216726153802518883153804011069312755084586615187627568496682135417382261293364845959565703875012060594338846847707068275897707465175122383228325188029624637515673133226863901191328605681797640579977008607966327873406841954176292193343804543114786748169339528822215592925597096641642968544464839514964521293536937424176022619066900974885377909230381485676837720569040293230009758604835950421317844983043215639552579778601368796248034367058883854917258206048758734528065018243172672925513468196086418075474936534656140876945044028777724532968884091981438844097869555229063702421204788525563704570574854868698308276432223884718534981360488378837059267759040721757401239169861875334146395581543163388148133958815889722886767444103446240950719315274713159668012083050010511759153834325240644205343689904806717136710542576032729706700730074824906389331613861529005591534517339475029441377803981479979328054204315991610163253325266240492284409058730607743402750415688564101523567436932225948991400962474824820314903953371931161848494773406703547145254243943449651453232373578005279606456344720667486136507788119879943618069991240891796317460909270927552104271127276145493061346268793012878904833163843237346226420463210730555585192076861487709975222356312409444558375671194501198252079941970706913563200031594361307538363665947077072295302069823841154740998548580083934415209718705854219732677165923884373374476155539445211084530213161278410099486753915967886067795523786163100654540812651490408902047084301370418555192258880010741068357790568028695880161429530353988150835420313074519639038856008558345896127867930743685777626114060712199781579308847754763238657986762041878150500508264457142156205972568337696111759108634628635307306735714358986886332929242379029136397387774901868176246622170271756242102049297983452223616241657000790822149736566116375750706222800148623609404556039884462484752563313372333818922939280729688875614935558120095925941732661160527585497249841354801762744270149896478291189967032386501617632660306208184058479797438535574501608079629419044653327464550384305656843929057246164636734272121443399612855817232417809078872983722298462104609607039486983103274241089189093957840182113566900307716301015621864686030853371934120757966475988735614161969687586547785001545644535498064986805156694073599749653826254423273892870894823424015648407903305279131720042937927322949076632315346208360137458213197484671439165883917991274558328321927652015485446258086211857394690642288632545620180819403532468850669742829137788099011556894882145157695057459968553407404071083592861898472846638293095519252045333532800818203956414417928377581420138838855590910855542128294873791508882922734468378598255171029471080973662485332528205766663878943426730219751908201441117795604129889208219305257465158100847361634068570564645074221209675820326824397940921283075618400886663458697253323830967220812268202150973452794919982358460739570899597999759252581028223188015017605591087721328350416966002345969359069602778771816182886130123150608543761885905698138361739952364078866199265774087438053431483549813931911465986782669540689657658636411812668156833128531673441978477349088370069929164386638072560094459013141651334253294023995795227929440444386890183235728024302178429133446225385066321101466485519936638897821422935966886740364330831524007896454247589483670795795833851039122267628988423551035129667039980035160105429671180248059825333329647018578965686574627724623046051850892199152845691849478520933150082924545753064633058730961411705820088479246460821542663619132684245306412730105164670588271032994077760113263417241357575568296770949500788140654377014664601514718978832927091060743723616916669524428269157699515147928635832264868649905266285014860359684358371824290823621946753483841695484956904798724372216599425932196782548878662049121285232253305037514399069888655308115790539822848830196302696763349255779856409134342936180440339593042653513407959062355847798400113908823563256000600337815165627089680557528788844532072069024750917875416275617810753266200169626636776809896232902384205223359094690806743423965302321454363139023814210711421281216518954853240957202267684222817901722987977161693321403898586492409491103462210487038745870964827412419105489575798022919840053817217353812181654484584618626551423355180376099951452871003170571309112758269061288951423175935226496975518013878003283653320998334777051986407616674190157661973331752313549415324374508895140068503307458852145864044526974016095609848384566471696405754585816919228070271642833816658784417386144304988643140276004030167035865549480334484481119531623504199386678313449615552146748518736291762655797803978529991048522180873511166165186024181841754305250515877803904909930866921997622959201543473450842107270733354329332337186213322473734379644108166125402253524497164155071390704734226938151030777481553428588577838396020996734426293918036042066526560617870604295304937787710084483466444123540461632355756218066635578291251252167977704017818182488449304525334981055761602824083252468986628021481181125319689829315093026782847749277009836811974955524338628515957089037291030873470754600622749860987268796696356683494680325988098648640521257533335588087814390867247902186094751861381530448588802083878141081170455318519641364263965555650408403462150750277489266631060259597886216260286765984455330040371720486939419333240797101740196318408667430658416105531432505491928014886680073287483705671938267053674923409161595685992751042278177936844558164236770290840587445503771807772526575845216762308672006588031428551113462892478909358803873273009003152565954747741459393406111252023782132986559858339313739476381596566765381692457440780361163475675748633069113105024762959880265296395536582753047584273636829383048811667677611278297088810925166963798799216184661902647385477882399416488091630464088714553762968102683956546654629610179235179035438105573333585812726467770298201563462229763647399182918233264416425116400489641695289956789168943163754597208539941404705301919546998612343486943353183181050705850715163093574664881254185990705191554825767927674489716376023209646722978865301515183174610856542825631286012052826828637633084801410627348102055064207471860295255589549195140160044552219920445099467921694927228130335136490732108435051630071035271578359695621757246065478265390127277551657727771480514785828779485216951105008525075950141697506378265509660809933810596215304681503756095442095616868541299226086008313353065702128303816461647123491206958691089195409572033502346806607429377928246684763821148005912064970679636414095329917968332651373762711248129863587012022638209678452657005780163409290602509627678890150877175484620596135023125204993067643234783155084987347550872505237957207483460577775051143533823550000115543553220373696299891079883445421637376120317587125592411570408943494435527843679930357329316682755843864724559687204898063369302265847972710236936847431865748259150436996679736990532477651623316068366808807047306902458620214360648032656481279882246351032157193745129272075260308704377443529816426066868837342147750617835532701448729736988909672596791829582864757743141984748807769633741478070340582949477169480835075542518385947900177906178922920044609892657616780769427230983121943011811510939526765289323217797197651190940525342478503385750875073876483043056132792273750063155124292013362163597535552284661169528460141116493814855346768915805849434825219759441879927129479480028137137190294829324897681935493769844479500221603961108022497574327373325994457049942734384079288036266177659436938321561503500876706980791970663024923462640285186744655788339621968168771222098889602169228356363792514218579566169675385345180620685538933319045299596851373223740001090915317945080315812451779206041666797446581885081350914340258006851502890861397317301831834780513800846375782631452070129750879790618951848593826970329678221548614456625087894510266724730662500043353167198620816728681113423409436350980286519342123009731490235899848793205958896684098084909964239199508193894890546900766626677009344158339580775193373593822620106118328857078775256399660670291232040214051358407145300818259048873233223715922675924110198624383629997321821766364281228703482836396216505417803827423732365519828292432710153196417532563033077983781610068598240357608570136366998666543881506388370892186377781111483174952073353008238191702813352347180907334178451842936635082826425187199824589545387126673236339365088581260384750412555978322823972677981927899640950728800332718213752216026952218889721102225701375558503845966300456610955960575328275977175049519587004080020135777607912651859011030074020079965907798245689664504374478801275198172432985658162343031026966235707721039068503827713329042294228107615803499736653317082863350898799760661849734906970169053348756392765943339982136933645565878395578809412241607495722781049905303429620734940498601408004586385153090954407002984916456168724452294317528563667226580718330852357283384913484442680193885536979709362868265296872814889902510761512455586530081521224395867053370526731447436982223744213433913161300051220236685399540671878444627874928058247921395639150946450803405594145850824629155483102414790270214322563464372446964329356324981211990406806874972171503802726122043788310768854989468295517789151381166429527036204803115857800254114125239337860910293520592860152041459634249919336050229908731202779544331611393772077591121247233010610846043608178145772544432171786037953561456871858192301693208754914360484231027333607655314747671596541159126496847174873257263169592768502311740240854630173048232075581467474544309378753456051323090812994700021187916324546198630176639349320308047833814370453936525783342562533480184660419310766467609176501528856344243734404473533027235066884506278743961091166158637983117569549528041436180531329008845607721828541983740337780032695906447329853152850670084276270527240967741063311603737580115327415823206424353764774381212185697107777942552429816716626397688257081700461640026271307389600318727786240343648246291936491740874435277611630869283291537711234260502966997914044793678305819282494078984770405452843852811639558826842278510864328270668371767038778327106874519129239665780064559682180699062116411223839295932774696643250614622269577407318349257027765793882612181224768451517097925111979714631802529062550142908801429355169172664903724475908180869870323452881472044985236941357709286429056620122686194026348244391782745454396567068443653812833594943749619150119413584975800317515759118311001258246014257245678914570627445999442686319627324010274150088324065638215972879219331474541802615049961561055164956095918521063688576547181066734341676301444868042771742684573789789806937551835061766979910529778945243113609063060634103442183553604327328624766232973045760598526541615190203711942808574266163525222007835668075712604868777765227613646774535269155579525228711662220191479703671773079338493191289597634560213716844585757406011431764639478556643085652815348439554503604083179260067959081566479822148141315338262832658638755272231813356475664442609985740030758619192891087785048738952126429894785918592656210493198834157760541695255105963345398104611433702569017107340485664403595015242510659268299145458963924762174209629501711037514699619658375859814854637373492087001428379668942837987017280091875504101741778537706431552705848678480512494405878680356399910551160964815147017090317093770039059636190799117635407508407286222659419549299991784102397235379743008033379466841703296342811497931637475655803511840297887583272026410813064880455245743995668887519303425729293669318407138617652287512608008650283959885495273424515934097732732247401736908100430569682814898938951827689730925992293460393592447385195821073375083101179099819161815457222743111268574140584810533886477439749394924197039136973740720547314932344759965549795170738394532992548014507880406496724023934126837159566881933781018276192112162201030754761544559856449397255677417796529626069531923736943624034367334445797477525708196545826007720411991388519279242549945453077305964473376907043463531615002243089111287625915774674993758739498073184479503854946885079181674558712726880097301479420280407600479458474925457017314378703154997964945741886228541605229801436184354420641977721927339606257619992968023670259410430120951479252897823679606158114599226544302193784091368993675184174559573780398191740119013271312124407550486698088317358498321263760366833202611822327492204524823759953531716709966502154090875482233676341792331670893629328402652076604948862699685164268729186259811162532949460206245556087870756889314731967040359140473980576740493459895429839501101287168371600543521713804051778336713564136908229180070514678097137189902660004688168981931856668877983851631133686910787437630107430980647529166730741828857706850161539401578303013969858569003626743655887655261863767277472252650268296402033132034051876523638434357443495004796678756524592848019298869938832732081713403630955077297451281984690216520097943204435890428616631315260420927227182101384314597863985310582073434213528804464146904901190106624661477196179151971476024383440983405838890276094089450435168743327191658228096876020999651179320479907532394295973162219060367352425443102105551257051586145360152075644151923118471257766600666762139478924332700003815280930600281414312200997145089596632500016191984296634659603467029392028030392110734377063622115871605291761449697438841792355928295030771400205845466265871651416066565866966912378271297972861255399433560321491157922635970962838765360667392166902526366145355654102915222789726363091132431025449609865355330012145810945137593813611852795003393457273204361494762881206726483749495042085282637752252056750446286267467322702210521100997837810859413075484912846518665206311046522385078375875003018525187077189441934958039993184732979437202016117502261020353983014142725646983014315942803700445886806755114259233131420764863919273784297313264961598398775241115230296290886616408609588688653912854643139980344753786653468409468306628671937018085759810839541077301481310761956422086225846353466209529118441716244443187790793256713444712722447890320967076930294352164571163219910604687204746001448642302901323412002361601727271986959737778869847484754223058908175300766784840293214589921629426046864097121499615228401601762108008535623476645938129488904075528726568599796764522668946858889271936692936144711904002701911665461111500372889930588830857799898785520035586634021069279947724898903103179894507422171471455377614990745058276881149434801602818577308198236729922228808321555562810198078987456818107769332320016783076322101907888000770125662855396811890312294746116569786181888731753525611849652192097000070186923152389348562174519722499244287787682689700390907910549811107101256196186439070440067129079136408256091019295326390798420860406169752127147596068718237781189986173760156528781854726352211812475857241463123369910892942873369199095260153352699445732025210192729257250096753581471434782954371148871897024139391831388493445628980446374559434639875435664611483229757713543428896527611552645289953051177728035854388669370670454135267837163862886539483068720503315385375148074797403249907436971258529271147192413891657159157910000490550928046329215776776237855219505661612418625268532329938930542428616686975320283837262340149145035173650343082977206707019755221372790392520248212128480489756769393430664236749797830693495721484779812280863869888839096152270464428317416490672050720750300792086202910728537184472392047686722788526931925535209706147342394572986166706678956702210684185237564725184059330815456243509041118118416769948158230820334777745176660147338642238813245733578121916222024699156310851031637562716627292110081747463705201641608159658952430122381413153243212032370997019776342186322601268644906110926026870187107230195017910694273091950355490488889634692909127792074764318966115387523037556421348481363256248828897833651347771861464754947198919443490522439506920168069000448777453196671297228598236584298769965207077981531310295164516695313056043223791771794468691676307202993399931583744919446202043721933880963039250637609790615459792313542345939439124794549543480242868988954938235022039911253422816998522586338934691604809540935007392394169700225432423395750972768025513919973597360348618562845261996505330522632951284917398068721418585649596682635194327559741642122384240303035538698973120175796178537686220746902382893338730675936657718668040138360891835767951901814747114273384450397876761145649675891334402687548329830456911863784845514580597063130401373892441962461373736095466683769078853675511922551625692396531091587026005339126288379313447512650876873528812257998782591221592476654221611607926267913440317541339556544584266922129337533590066761814190503532015648252806479319026514991059990448342615040941673410864698350093591009313906578619496716711584854549653996374377085333850879351119932524644594841210410495539584999988478198983951401217986569497185346593255669759008938420652005830421174295851285127998960459103310597725936440384474295449223832904806234857440860363352570550177573122093773377364094781034958867998019493707928803494648414909036648039878506394566482184818953306112448444365823489062784262194703963541729789025909216816273655706351388754506407546978682908373444207749486321975175027515986568261376688072850178768873185432238760143805423856766687533824657537743136389380429005251442638511580753911163995428024709006084529933172394307822493288544484799466497616250212979113728475381843315594576973859568970286390688776176788951285129276731946310080086962449699158744477866163858249200574009386634664412222806687809385725507923988720538641422046094372276270312697815289874097156828240127138367250677889096395466842754677990657035667071258208937968086711730019417637818050483533927209266390887218554201568957921810081083449010161172480415322515617354368801476500660576822166807077024275845232157139425464836950317187702842235217460758313021094022834021742921097647264269759634467784148177636028876200365134507882958245175247974245746944192196609272869098592991956140369226682514200194938504360023629296042873222137986517933066361536881954377196404679727976256396248481991645214140574501202832903144849197692517714848467520279059287952829273276843945452360106076386627296742882523348370434579296506885218038205433004744799644531776673790498189085771194688970452799330739409731246738676524784561482014578004321279251799228787041484002085333857407651048659833161801151609009001662001924061384844005117942154893492012516807844405368308194457330418395304915509769040345374032693791677139661504198622458246126534888800318624701114656153330104384476176693963013185871162069720589018624645613294413971833004423056488082284988335827737002126645739342369198534790405782799788189931491200149015249106494828693421557658190407407608575094410763591686982635938225878557152988206981647952000597547721664620294656057034131321811102720168117941807882851467071003130784708759305051726112721134733894941315074663769734881598583807429403708725045870364911205562439621869283439414494665520716113313500251304743903077610057198149486547118694482027234966884093244356730616741858879117860815435803620775635386743385504088874009293222500585816966470142120414684905598893656883711777755721539617688187687627805424235439741870537538665870103840173742627234849089318545899993020574142440710695164674579031576376119518496841102507583245343137271541542138739397248437254122106118519958913341346480411792968155699522578757291958877851993016143605535858971473334233702331706160699271016487993279979961387566934283880192342045892773648933327681281655348288101299339521098288961136335021556252743219510676328252581141989672052392713286922949069812517899810002471127563584956408294381607911006535377830075105114706152436102895557787130620676145385193895871791629713222474586521194021816551490640101685050600364575506520473338265742684243489576236373494531619857221623872424111311587176466095449966839611038714994943459017553050170611205178687566111444690936653732994509906951671611158677130662135852937229896374510826395663881195982728629188505980163007719877667213178950509840435642199842421175815545759279158692661308405710592822705563456797373693240995573064296592573916273490459975497343502988805973816849039472797335323939997828550172783117540736920332180283032298361764549760653647864794807919483613271537472492054347163044108470053439501660007701397862133775287678008894366027696069374014534706752105751196940810415637427705495092662627288048807358179602094529872915007147734639474456755495458252311796639417411232515957361410445057374948694950650278874984415105659628820026287954224879795196878500035529223201059769668172875657002900461799382142840240009596218546146188994958001803682667184981664230834318666603512917501581264666919985787564323059043333175559539215146181688352917816998795339144407128602523199793599148842671854087911831370814486228002725078482054945017334053009710007364895104259976445307081404292418134604815274135435072594366691942180906546859170078239370300750376879674595441515301762665954375573440395912376568743790098398951332197021425752904590196291396707735848593082170922161935857654233494468041217062180028102362427738877057433561046113238056848654334275641778914735372882752963197544147913095434225789984969950737341477063578829773165518830253071175100953048708232425558816642119370223388015491920721996913199052809923678074178633390168006266827409106680644986723185455100814543646167185001588607361807434581388136860460543421074822753742668239783485626200803130531012450427919053771604327072730664915708895888369316615062982427535738042780668370482602798452690319913970177128736147646665661122392486319792713248892345549092860075295939978552688383884135817870194517173237053987720217614617758805875608925602814516594166214597640247925173894613651791905060476317633370272103058085658952660968477450338722144352490209528346772034786775055693332222121846830448344285707717975264951783777802075471119100683117541184993588027864693279704777035044053349285437264947139698295336101526987582483346376511272957233102171803398991702505529470010162984408609197790732819756398130299668276383213424859428051268218038805207648913527804820379662664749117150724041626777829081984081499836814110586459216999992990405254193596962223458481759560952264229334915578430694473922017415971223081951540841798207433079032699468412035182432260444658953482055781375233565789751161888351516127117420850351816024334081974307419539897533857953143327592885080694727616662393299029481436804664951491417613994458391989171929899140052279616105157151310667404772953063925306695653208148023381743816193411918906191198216103044131053279764661847801651055912699851410789235959972603264465699941803155097816697992421424125792866710318557550817620951742381196673586980510974396492912534138671411359877848179044800926878330327180822230869192776986906942884359178227910848123886371924187069715002798404499977652989923132289303491950202213057317958345551316152005938390909540368818390713437505553452913314694484437274773981662428920884413006182866577943369327082413433080867285853357983928212810151414653185886723467824379727006618152627647312997407363508381886603911113538096018537709626904216551634884595069720670511864257563632856929314160343581297856162463987287780677032092763382708183295765424589134119059902420593954026597458743500265844911276597589340190352155799304848301853373873727654455773441669894404857465078434395222011622161445690866917035415761052735987393018598665797876119842318287685296825958645806606142968071545438996754415708803681618868427893883767772785339859029094030659781541617799207613983479040649505251417010627437090150013675380562551589862561413802620705981363392661151646102500198275815928426553864966807427301625147349718341725137791848254546208821707881253297497029067204099014746650061260633988512154406443086012067903242841119377074649878355870688719566504348943270614876442443886367365806167604976625280959052281032811934281341725603273089115426914681070218389061726288553906198020405911561081562015344086515064928388929804866740681345579456049988644391941539998573883867954992730352252583582997417382107558191614333765210166766635722112431167808841026196009562690936635347418616474926747681136156241008545173847195246160962440071740911293983375647003375035097063989975395725342712059809137287895727806098781119654645680443941818934759250472866431162753822676517490081074830138333894662003412339518547686034105624070103871939969789733485817325110162946349365806377702494066078064373577911812451781074670555602844824737115381921977003753856030278910690428662054448725692483744366346244291743744426036705431755521824709121046312054300130180267900756881505116940636355792572316560634940642902205570694115185837152376047288643307895221861872452412037776604042783303896994360121622145908441417659044453628993151269969736006585471636985079996394190627756439256942928746315189294518294900771246517439919591606352892612551710268865950094421464772475737280193991375212183780905196217460005277034025364193314942456267072988512650087511585578069643638472141727998331033321800164756240427939552669471107693640688054265952102386155017933681791991790909124453531701802146706650138664448988378883679248968166051807171912908979273520446144504823124193712552247640106838409140694226679824746632470704378289947205347271672072915131976797920183087240773526958952028490327896511083057268000331745357370411314689400567170540215667644968759344338568564036764903513009041591563612348665932294612305199628425684028485126475762518327117290229655321138597154659373313041214869797990791242409394722292845388443567672505540150772937656128924442359654493862633726456184451214532845720526959993571825946318651200265774634780404484560964493632105079852877907156505957617322104875036768340568096277857363286692869636476546014762512184037451034413439303675946553972737036187501403191676669422142739722979323738678783674054296644282839701946965931531135433994550126564694888149465952195731969103719843933689882743131270075457744199053107660179955561315742811098961976006024883802760733269661251900046367464344377175633930252022831221195757332533032764093185524625449085052848075207482850161314511929305992148865055030949162054145177480288465221370238838375530113081390734595083797270245878238567460367739554209687893892266658525601909085456979984411470497178897338359676209144824652569058613176802889810957743501711098212247196688596659842297076889604220725048432468123585130087039412844483332361683542539016161704454216399220166806506971912637853596169326895733832889202222310569845155296240360160027950323315802280850044976533979784888921564098423292681939864320026859574515714081390116204460456210199352359760191978804469676449616412862023100888595675572434207663162091841279100537982066523675308148201658347091784742039462185047658579065338493292010261379646454243674863248091624010084486352927445434106648465869931227916261440053990361438745069810782116771476813750217683267858775073394715739911571394045539451881649214652254303235829017651327657278213176147249490504226173452775049499758775248835020572211406792317528482049853965357659847497860892983798640511028710231072715239716248986738493634205434827610136211004119026943437076929898575019381084347910578289054824969717522415604224563920457701196463964938657762686895280598309746119281527090273738628229702718014984794376755503109105816716539354741165537901691488504516417860695259464268746261521541549284141147088962805403426530155046290845145734600337552720419256023188028700851459752348871387177207107269471402958763960803129205378579708411287846940551714331673703868526131501118052878047474738705421825874269497161897435413168594771334928909194400548043735409335902543903234565138553500206202653258814707913394082117709023878831684864554710313168784684438631566540349348966012060972933753718139406607202759330543996252747574037779105187795440250858230304672290010534411026922353372175152128146313788125752239675669931836081700202447209247780869654382462569810643587312473746980838405010845734882544381010244714097994751322500385404897194428278840479025525658039815581257170934707537309618926315834936900020878209903096070601136624025557876387859052625105335970046513795783968141771934983816946706592669975337519092664923004896985387190317097519019716588904056778257251006886011490830947980750667245198882487715783144501098856619967619390499635611860851088608809866122717143619481201174035520183102097621528636676011731143478870321356916232048437886341248700856094466961905419349686130544843837530778061096381816859799540243256762195519300601547764716258249379825589562913041184068169514449642941645633489967156433510579216735418396458274509938741289338560199470143065010319237561691164459562405498519007510179025514627951312743908587281644793207053045466377042319025954729235814531237471333824841309738086705631896036245553126613232599632695873201252210385811936343318486749291878632304909382499789404453161915797778812011739899629967998459885255691385830156828699667722520215682534330603263940885213441513163133390513958719592822134237928332815833462677620003888080884684116460498278842172508501411440192171367155429252073092910695330703851340765543302633650167481160038005169745310037359984527880672797896739128182641592583082722724358103570435427219686847480814550369401307550043297719661711445756792212655996412197041567951987716474048625133980329933314606005877139130550739039699756248392707711698686291414497211190986005928359191099623417365586720045812193387542863655162387650408696428429397405569845254723063070996146011499569151757989317008167461901257409029376316144455816888761134396206680469078832199569500730952109149889821053256227860373396501221577409166851871597783431288293663578151942202881607952058401296619234968609665206973536391898312503521558911687357062255721520958752517296676176656793145740335362765236806216934424511886150416538883873250931428949868225844440237361872447508516676909428326191926134656939321299120680267484767261509360807375721383820771829299622958565526317560033107246068867256046880107376205281126349053254003680433771083308167909570842079292014946884631509874801751001437058346361679747663016849389181357904633405127417906703600743746840679237272216667127134862706988013389459022610572002755684401514294353146949881834844302823935304881444135341183440368210467212285856220999569727296418084788652197479566077760611744558317765705910164678651211579816072609857840086936160373676503812021235401762702598325249984121534025199351043813165183391586311245842368661093406873133776696951552417346112603572591636777610610498141441272291181369666483651878473338851772816700131402787802832558463315899370209811544279182900552733379152500729434968659397492223388595539885228202700344069048801173355513920803501061640025303203491484281968992253483298282717385470980379949177424373010660132616220018918291281505448910987792028458537576606386026159587238978135103947437364191325198415921007791053894880753490935835370019383417012768274278272011550245738762375394298972856617152412767791027212733796530058082706793602611169857676913316238591592705066643787066633068298334654744062708610776423197781902304180190423926656986771605832904808964603035034913339388890515098955651243083838435333609783973905288096090823415571782787199124624634313247043567965876145726205510772948221888653782651253723796441083455279147868238192830591873147305073796517606596535416009053106117751031841386544764469579731620950057917957581369899886527961807673541800623126871426738242347443033866858525104085950981483658636530283511811786021965539860255380608700341460711739508384856608978675471490090573266280782102307423206033394125768499114507627184680246574113045282769459885983687694476608157387799305064781478433663531937437332565808999950973082424437816303950682637531212902045348241508775384372418780428694695672674117892187014339451910776282077959881897903908765381804226014626270694559898521005909817451618004041957409939017308793206195009446312275491581637522247176918808669333586455275053094835676893840153672239060235839492839875090604498151369108063155100317328865106803085100701703721612019412804844424095588780239643972044139617762726392313739463801492031630214543216048718605151017514087763194876198773642158593458420814864986686754363686996006085428809443090980932523010303751343009361641328322114733715032836225119339301959833669438784980526083570333194260593241874244273415573722919656518058231043446994395407695775300925671992479255126761487215622412528333261605624689714304118610950229048478083690869780275258833519219281536071908495674780322431526591823051712746540696869018633838042224977780553623547863966546676925150422930312929239702760949153847404951079215252123695785458575160402259264811872544873914361537977343265339171030436740734244340465949530793330592479215582581027392910003174710677732968351468564413339952908818664611650032468502216006606239487030575895528512582303233310098289361722577563459935792799607570131877769504281406380354131037724841762087972838131079180112528491985673515168123516780875532907236642212408684060332501783973770223824356631816280915104791574429396434450937004558385478326318764858621026033331658319951478460059046277443407190675652162817164745806373213234158694337164932868475643886265814847778970792182768586240036945910422239935561044939642089503873859136211352394326484751133424927753430864673910644492382226287932550049109343838867376976610369098074188228910057071161284273579540009439967453020894235643689153173927933073119810001028837145773049697090237304201666906054678550828525590641981158689691413575600782892679455139080793889860505665669006672096703836900066966089458614011133453959180546189284355121011140934465106613359065168560772256524017772113631319146475162368180417681397275210178268251560300448894038989006502177693534455429871877025199782838159276553025252154963920381495387911973466608760656625387138936705051742854952357975541494927987279369183793110214035171257927944401111338974585646479761274852554089714062068565742282131528935848507764105499478897168120277820062493814909001716763154127348212533510981134237465098094029385737516279373421671488921712887546709287431903597591075028487312772415363221442440163418873840337976669006766209772442569808115733374902852691098653474161528695747307410037873708526285485971764737266923387406233988358864979492935558006796993369871914702131136303686661293452071713459069546625887839775782008962175585158213114040113398394675786405973788132186326737415710778209195311410847025578244051274027875649289150175505542831024220080281931118191481329228712021977840997876268914576079583321320589342357517425224214363406258659645032035063124093646258972992843503766138935313892698820470645433534310029657438791443107931759433258422982154449221796942957371820322889896323765728868500834555533872543953072115359090038603531779001367844498264443346857741381135704290563447842890838990460993635032041902169063933949597319252429446699691669010731078519118334848703329100576304455396046136512646689121220850853035768100424702547921698904682554624762995462845802291667219470320351716323206914169856057900556275015712909533630291089749829642848014406835198778119621027911333181698252792839171520593772640902920110527675564868278444689993961499052205758579450848201789495221770184977999411533306221076459103390460753493117116748730463276016696533032465183532034756163089778428203040076760213825113380610426467516005258700772380095265811298484418906966268598947487707861521284873398717418396300623422639494492361745538138210181957502244476477380978854302003822294624240547860947135842445570259490975824263984781106615338429661115000313056797444189117454560640365961954816557287424749389123084950586194120149899104858587769310840246630090898035172683213995925351261108865997531881701497271736791010113614590858373945685162148707092860575490448666940401625767018861257413001468552360089552386780031329889671525481996708506157428130283126445159475345398554021511922096254258899574510784717866479736826676225123320782192376876681482662422799763686615833060143348117672502780581253202208631263412733422225896186587564278456559731132438348120175837205038090972447025779256227278902563073292600896925685888391180644601494735950016607300281683620876174133021568251143191336297701853428196135297550106082631946104201945888236460985095809481179213896793554659658710585113026600536748398800305533486318361250122152331327088228267703793923872242412049345467793685292363517798631934948581657407648745030512909753131342489429181841705858908484377179248327914779403599268607307727333782515153604638093520917812968092580564300657927562985915866244687354092423333918500498856614633587764886632731079200208781247927973566790639291634017831393707355491501038180736844138612306340325003591674374589649929010510753947252075119933986367571845139248460448432866704637847190904688305302293655198281806337155245128119128052405751202194688883814374920131484445604133888521538092664941529841845485283395863284620266426586346226467876490957853330729282562775209288200893075901902808730051272552566068336098671091902333146072534506666961677947085967994364364784823998028760288132957272060313450816452321645529025980706054805073723082110957424723746446974327252840922397612793575993547572242502106300498309560043991925625863526374610030576057972555667849820865881259206916809696271258836123510988510119467543346395072161278376531122109698278676230729728713211760317573529409366556448567756426947185590898525838961245062644186803765065728218596145413902368204995929556192729354201544677135879267384218866311847466165284820466939160866109755355697780152312159623349817286386628148325455822411815449958162730986437358805773929268207185398732717066221183285033558544021247946234765284715446034572156836757628534105037623939820605872921439058634983505325071802577697564948793473354529558609675377285866788775745664217000142183965007556038275524501679979356088071021594768457802088418041009669838652053350857861906093089808280278423288034665741577689580946952776596784925354483191374336621273343142802301787997678388877679919624417507771984747981176106451944806554146078115400287782125397974151025949287133936519116059567866343644480849356138574858168411697561874792828871320167380367874699744831377535844529249607903207363345423977897027004552738537143695707720022378833229872014478922444117196517320764416697549199392547595074648634393604907605553755771362578993970251212370690350887663689778269049423192970158601588764397939170717338463432987605344283616486949423031780473056779944455718872736076201341141947001364090959077754886302141030574085319958099258922426915992244604091167140230944716361217681558799569847883586363837986382071722797926617112720849333790914483987156176247178287369439978369153391149306717793467166734797031093686056399828040235411776374089744728809056377478279151021069382276599162506338061529791449792425916028215714749869769802003315538719452589527960417495559616448413862586761327513172947455524178985359186342273386282695719157338793414671092178640291907079666076876151777942832650050858307000407667611936985623587893389175887659065207470099575651550732872869348385152862947123475230682445204414065661155590692957231284351574904295460345403154017387775381011821756388508774699571239984796343462608101675785959239080641453823433529990826506749968636926750569673053698377482224343025878937227785506476308046227148170797543848636112105288866579484096326453445911522964817510231008201486014433997063306423808248866583275657543983058671884158562493617156010567271336718581302281933168698837685063726562852860968025895511978935587093618501375482580422992011054384392102380651679211061498073502531145454180337999362555077959781116840002530557029325813173732109320590802999695026267703351905897408682054340122728532657036051408244324938271534515393918715006195603734649665901151172602921760360702924404497550879178310272780389620895264635470747489146462803082978018647387033670222512750604053802637590823992428655121808865638706273722444064127611137624069285826767097490843511502678609959969322147616036751492439201859610627827982099550390076589595519825705863577060042806612010212312711861619511965670843074084821066797949357182315443751530304180779897269849181150769256738233325331984868018794114482283062379622395059385829817485213454398297036714227054634371950232470748547303609546287149522732899694805563716126050658042570076142159707107945640523472985582970638497943276430593176807242045352677031833135960125424646084258236993872129382934297885465392442527689516071596891643716003474580272504184711215616416524469624900375435632471064403960144312305299645344527618231818917607256978090970767167953973775131539395694332032936831558600315034971198262673788075552305169229366223661192058940832827066249499954064415749456033988798463048764345107923816698334981732267848591874077347427168751220553889379421694083182086250355387737176486089361467739385319850507158422099848581758042554496633451259917985382534846996211856756783225253749783055997363164773049401151188378733992582276848384674774875556865901374971050519762836725199793138240924728460084588075229496035920467609958561269781355209411963282326042249057241937084542758068165881179048650254649218827648121340122034794225700221413031429208875821799704834643604118901479967928997693368331907528198107748167929109834314784788980641532891944021319163817551408587521784948741782992175942893178983709517873196240305328075339579565795468547765868167437165407625145844654840370756375327049294656593305759767134681895207489783664962933261501179357261960033199837215463195156055291251223529854023145538393050972239863200615924798768339400570656809083481530184467924684464882760448537328138627549663712943218375202840976148509535622482780718175497602763214332711229446940742871512517658531113669055806067156166527501488798099581098608730107891074807732692437684717717982887300167217688691182211789957479719852524428032523195601318631677754143773108938475161607393226973382152161106668086682169765171450561171545876918760992694709866064146683744558746727922842595457322186668756500837354328450526283147438771753416680858867824752881240689422224721273063737809754396178374965024710661109940195867200442276089650149501173018874096368226932139762853004764468346095842391291410705464420532319945584068003498777148972684729530135754223654946950923671523807205453740052842387265161605991002450668213452244194409712536615150926394354874993244721695332921471911481803400827912307295149428029591093654549887357665806176515048710129621198416718346326184122218098528716124186384510178004063732623493788379724376841068432237452082134443269970259243940322783366971400664091746086512383231103201205456453808434809895634158090998510652734244934337635206184401959783621571843432608174942797977946567679966290159441436820476429446579153550942615614798086819124727292900769005728858596142317370080116621865429859920968204418415378600586325263533129762031031336652125591613790151720111032421326031920423098168605066848595960737911392887976883137746114114737957643270097462374909646715698972744508732383831521199369194370343758625680733561306289368186879371442904345828801767874159267793854103999147415465296004331602017371244966087110217832022031000037092572691111204914714237558427358343169165419064498823757933555954862067156905373574984058247167128304464421236012751641307637953930514348513719135100400207795473484305544738430961159145295485089732502071229281503459435817856698010199171664258548524578465650789974690423120342333138187199205720192640025518216674764078538894636895089311789083358077773906622709993674167670129072330689235258425414344722611298505561082278484502686839756931625672726299912703384611235146231274354373812689045570041740631863425265391297024971862530758419674691738185513220835685768851868886482805719257324631096628391994387792047388724834032177651727087563594811291476245828743287967739216968177729546228866978816122225984189796938754133123948241165199437619399485177926170647477168158360263893375473013929255882096219014827527604952466292774801236083542230180774239294045876677916467095219183919021967772603417883177708625052297549698600457055486512611431924227569337013446522859177880063318956895211645645204631762455848846701887008122057268077451238601121299609947282341701321919070555554258735609500305232071594059258268987756857902095911115032503460230705145306115639924011548521207930153105257951053423483684142546602918440888360012401840143719522159239235784317493469195860450858540074115107405364347950415900641726448126573622814825639197196728147910176328717863651927981674753290938867531480366489007607800028576809655226217486340354729886602381385126923166029141146113282281507045442086302020959025386217589823704503166135856070842619408201945612726455745517310011796011460247544462298296095965828636665555148814357818850910105426691485001129423223495676863789346348759511692135429693218291506322705101421856588714589492146104170731212733935079388643096928819093341992331251448642068597102148951279307410537837823391020017601807619605307967621781154672971960928965218856065425331754937753852080143084909804027629425557343685784131369026982721756997501824223495147232039232960039409229561218214880637226934173333223107924608641024579146172155271152106841275172658790722532662952427863618641400271599430650322826688594750203619724629565991953810409463629558082023738119827495889784774896790236953804108266294990191516978316949209208609829575451456796298974764849820060641045910241363005430624467078755459427672905570962564493319112534818136971968141149348747043706409739116502225996231336050349236615754367030206781449317680881314165189846730359413127887703160300246791608171935150300637070306998808005654050841060462620802271377064541227298311160633107106976091902595396878591097721399396334892350037279007179887249586057166942004121567105676749397069152908944296764527446953710494058974786100950631812620720211606892153596657405835752355294018147228413320593355117013347730469839692645640876922586457760790808968308787426381999744453984841242226732612941270833568277328428684607772874289642118958731851649356534067682667978280174437207981154295844580510424514193380299224356332867387600152032275191511319043367890373239023348852751471961595812228896811341842173430230143485616952427029159538085698195665709680383525798392403971367814533571350340986919659678387531820525767878002900096624682031843591337042607304699589838976779153575352843201775743394618951859750690270132890893828669786865828393680424393735829080230953976946539602600564176066573012576041047489190647612130910688457694185062144481981047929242745553417805120245309243212475022085428787291934248302528821894827110384011722165391068493833518114073560547924336244656630939186865570633999709799545831095046464869812336060290585142274623035873238889994634563057860881011377062869489443046396341283108875616176895095193080661790322201848162366616827097714652429639156052686476499774312238166285575694132936990913283515968090986175123013783036209736552528692689339876207950984558380995973355833774691676029455560678584104160509354288316507180494481283441758507731141875422776874761630752144450715021144088398867567704427421410124216844542903414778157672944529641714569389173084473098949336216307196964058111025080053194354192476497550790096854919770401153246290720821086185687751858491355374715171129674867927413898261361087180565587792690974968108097037763259853729622571940532413415940264866995989575323060852390432736139468991507127871183394206062649819220737902467456784425179362950634326595108462166541821528609223314736300187884408668391758991793805131451009488160189973147775100495889217219284604396163300547713209419016054427076031144160737247214021310347994749389133274732880849996449643914533859191392789096552833932649340992551596341055041303076604966565249739092456403365958754939976117231291121630899598596311625965507191802854074759267997200231286723300712449448899624579882915934192569835535459298906831744148378789316596678201975187446460095173844780173157366381214443151865403891134828117941391511627192806020382907549493607700718394564904739378940875914433558634733041523031036905672173408634513517419900521161012693462348234387839648767000013723053872045975562865001862274720956589485989203022734537831297472787005226793968585200410015673210832172080141167380212262487707540847427587711955489922873039047287675521174276105257380947849505864579829462417490016036347020215825952238963193265872553020958965298992500033110965865986807876337217182690552490069713418799609776635945481722791309241522931452379616274892874685250589464887452510161527281979739925415337927474079909995903595448406899459045586473606020511703944909500624560398745858234558269034627776184479011355432321732100968042759423845599192661894404089793166067899846666543619671772946622306647310825255327824907945565515179062367434278136913450896178544457603291778554410775054383772698761372491504699182148190565879370500541999512269178328661865414464712257457364589393810087840804759831867158241828745038935956072117885943213640352615449014300335098453455618579985428205721629779228986885983909482533657393783521202693139442296888405259228559304539577949307244127276611098201464622527693638451764884519203406749564656396435465493161760172393652626228033439512957974300185598094992582603934277878074537369980607266210703710612398045247000508255317718997050024345406542459458771730144112167011976682432217298974984034447287850535886430949315332930996907944679219517186619837774251390692752320617095202434766272901740538688075794018520360142450287680657025191946379999589224065364170244178767277038414567394268842213728684896795689571403307689070482999904090988067521799287295796695139938098548847690036541583843056452409960348439292630619206048038408925035626432307832774936696327170845324992315482666529692626256309903609345059373387320714358546191880702912219668921318489027277953453962031197975456633502611868459162111311277240699107086569908789379122262534751378406396171804392011985243815304045059633819417812131198096010601310216957957898479326513922446570101822139798623892737520553731265377102426933200230703640920373640902876206581234509592616361139915387324867096395626408407886168467871664196839830350646514925452001830671556143686847414177780418963366023621664994424927997598434626324588761776733090327458659353658110264488127292163491072863240507946905016575117804852495890732333513908876482584214720391893970715189348516657465780120703456656754979142187930156036488797052334302029383007312989747701868223809223737778157964107255471409533845308919784913331580341817851862832374654170024619859026322614833899275740355595628011473790016477440588561364169000412633289977927429284437171121444439546707439874020464593681321737910180963449213778035219134244607449331653538789045619856533093556178619649415456899483066323430260432728971412757759275344434093429580960735047685646856621309159832741894064725723465574649514356025465263184058517327064733152394094406536363421803402559950240760481130200065448353299453606308558250319783131482078762333533508735873754256409357826615934129124855670070348783743787665127735094537636139416336584907012964675377725403664880866122173269924796344170863823760335194910528620689137320819900034685651045828670245928981206110817663006785122550373024106925924525445061983757661696876956630118232666616578053378753337403707152704337093814344269303290003899304811152825539687858898868992090137842480750834360791199254437170625191287397662824769041006147587049209127998933795257841715779582999600638382346403879897071740953554505208981304205222605139391473680746315493825145560507845852924545246994887963348826116602784389672295502405526351544430194787964363827820112094283314794938310651263197170167133708079794410318039207110064257907780568880931771015355854021107923439199207947149673281692195627283672632535223525131306844989776830635570928443775628341516811113633832692916837051240755106207603115742247331355986924853008103642818847785789510648566526464403531148751808852371144516817093298213890307464640525201423767024992248313548244258952934217208953374116382520568598590675629355412786634307113281868709613306091326230747285216162071197012806497515927709766745575710209412313649664558867012918926319447885403569443981252768445254838361638639766116891180031870725136701489878015655008113312150474029935637613452521982875722139856041721835691206072872657968246483002983898170284811583462906875926896460769052237397029934242618282003852288388076860004708301580569293079571571842043462277525221777786434975122567593278687789610449447442053281805277346654469188566565434006380003062333908146924794574697913327721861498996654773695406304157398321791484527297053360365365560043540406087210955836623929384543471884627735962050510460815777320077633063043936553530279241075717731994014511520400181764936152835639055913967829167512929404334838684954060323042476707905904349295280234308164149199166598866530080890543564175774129172562811611993429012965027828481510721710822276016240034198049662502177331843285731566600380483138093513603598663718508112475989669758458783694916829451586819644235141004589219218508013510321018901328562092640212489997774510466704925715118828859380552405762737164675236577287913408556087194935863212035067707821098033364318091014665470474000157306200428019134182289638542703580142856099158133261911449142895194615248982946825837840764134053350887470189955269342058540268055109275485727076348704882746489846990436457465616284366288550884729371483910766631899285989128155851692898658550668648947206265553860014393123605428898369111593326548440105201693639468181549984653992915056777218898268191366685678062023503489234340896821075091157751010789002864016559262459376421048683597684309751393292828089360671204182511415857378040997664444016621420141356602131141188652875924186492279238204116104707711550915045527748016533605255591592245562686402885319824191339930683594994885908627626854630062435673659108318657379059476193850096948505809605017427855448198804981303944735083942206681303615544204681160499763299407535847939422378120067374856002124467480497444639353128145949430162650311739334267093621164429912450487941124816627538723903273760243605226539002659024811520815108778801320951792298264112866170479165676990041486740356317427722400168467543194564150012326394189604904808523502778022396723915139795620209875839812084892256722794032152816275925580795012261678046053011729562454710387997043916756566642149476079403281623741835294972837035761489819803079900350389654493185290376908106216556063747768395826983111468536919275923160067723575409395543014573200313988077921080292783836276795062773068045650993037328283240767058382951583740545816740262432912730783473771571489444841992715347667397916700162927681944754293692752828601219778445089449877002104618447624960933907047760963909481302830855001164129210280065542034448471052557097838191697205070847450232624365809003512690936375971478555375784766571778029224682618379520196277278143451170346641643681996589927115655912568673967842495372308316283066797440803544993024424780354564378443387277090771466346379075495983373870838293488692515904302277390098086552014667617239300130741323052874098717526726220229559879600406422833285358065534984412231714195002506301109462829481359791085164560680447261682174262553534332191541090378491849033598849706270012281259692735466267253994216733049314839072129924770248870906993010610216730677630647612103076199239295644639785858677288767527273481402414575684074230989427106904994984469347167844150239325219475789806246405187392078677986736349486845347930038900356903985858288656456138959623856146649520044961192067010539237229072615553703299700635178138298115056012976327891989029492745971520382806812527380523689727953412000861973547337938624025081990173563335227758478108586004873924914004725003778671022853792245374942866764673215164293586753438538301341220253390370629110142860050657571376254184976730199512703173548779409676896756368020455686955429115442098583221101063176314068048913566754086673572781973061627163230233452008707269436254956744360581609912461109672023775337740143766774482774873709843183965843658033777372124767930333196484966656609647629357224888149179193534174101113622397007693559666138456059493202745359672176054161572761984750942545993259947092476893937745293715243781289482255885881887207271511513929998524021078165989940404456025681634645836690644816143475813202988501849984895372136597548506691961610074734979890553647855218655650613041933487272625762101770019257803529494859084259473557285223237369972804597072044595881435195279354040499422563234476206824497239998949590407616320983386130179777961070539010971875407783149734263383078036446671365391691323781241586255861382868072515799240235555689801080009879880400490283636797164207907723593032106626849515388452221011571446736677935946909560207562341635991824316890854377832604054581689770757804219885087693702376548700090042029836535605479725828834046511132876873225621318278076190356627944080783530391072050674347670835510462625642303526356436567115522145131208049980557897488310257540598936109182121241978486802910310046170875371547516940138269200626500918594962395329773701301888264450308328720343358497165153875096050543889964383690647216561911389967500100414405761720976227406864752537793348626189843382951290630336420665315242850649031520181305772617466444468620898469054527292993756535217008816070030659280079785020222181378246407584017982738377227698582575748459514787944368586124020967917801523449534823001119900400120556657277662172774640333797440455560797957732575825307297860000896782437301683582087333212277271940909198884534607370475034594620070845536453612122252180743842203917167856235243299962970600645042504001323297058056053782572046825656801025908730970582321371633987803910551450642301795100395004194259168822871942418059616440514919912281971460555094034787744517242953459748297694036089913607662804153625225947555863495159054867950386941684370216682652614888866942633430005757284791307046439606889659756387026136755848536473189364525162852841038678671144807906100276857703215986318656716493073477232557526442958557729819911064226671498300646775766846160603046553963115911587293323026937728973311277468815611836832460336792557230166358605888298868279126917887522057637186619862072124714588505583405423896283915778395020436304184349695056892093380365394684224953848176890854651787768956226786174372858219212027037665748783542670561112848666739040754750426994851392344595401087608021911623314553449940589647482729778096829245087993471653342691748916107970716672436650527929621885052273150369326627574848446874201981658978124325572293397366910391830716716324439178709299230262367928426380298848555583952137070921025581669727430502378373914122790233186786960384765706667275236344299749032351122880133387996086120910989530638378774863790255023725485894426263196280412268613228784387616134633578375114281196916751891284412282842149053544424591915084308038098085512372463470847413817280950896310307672115850579559535295343523821167567855659073882922072929578019115048210109046270128124704440759225401041554775661593316987310982220284886447422751242811412558599206497973478796987753977923426206694423975364936969926557625485588978741340071621204815650190014232242149320960184134537227776945885172660716985765740396436102093631821114595755926074196765339268493129828090598042919022910732504192211109170714267513230069459254444499779874365177186191695798877189385111285457628574349042180701603167708644829085635914321257684289319214032676061803583766648594198922930869864396069340070988175385863910164568378382776855242060380967999646825776484279150013006557941658167554703617522444322111342730722414469200903418101493115534463101612347017281876710530333286170034162617387583481297837650453676318520884909028153220924356384560136231876370333108740432493226685954404828656531935897155475327003124671789019331818208750690187547973616246891380161101696296101495103135392339325701475746258117518675755575905218600309126540607885613220208159889857399116124406774073037721080592498154383560579195212382798621505480467575018634750368487479198222856736830410975513096571811951381696212622252876776794638020773273561956055176633335915510207140780051604253210395530272647217029530372384028520895211390478240890584294761032741995774851289562222334855264898419772757737571439783454084768768603315719466158244777562407441651202613743323751880227061480514456949260921909594850380067830791308285516167223886695957659213821558630769095580683040155390930921604405126663875707080827507266531676392314369913705499791078309769577620089982971838184194604869283940251552177761019999618220056676868550564879044843235814207880069124838666004222325085075005052473494147484761145181737824188862667859903899379061811710464964553609685442598399142056516209230783081390913406364479088866599373653472382223415354289041262183745666373976660364369784002343783815816162976833582141906592832583298261728345391510732602817105532996304064177511169352560983294133662847066288792732566914554040673934757731277490896110563459953387521443014926252584938180407226958418067485256540501591811821233256673587588736866251811220403806542769989759563566734092732067954647039756189723964055775266901966129521324349344948668528240809002078125543455755995294168091690329496063668883382980823244359305467833782247394321956519532962409702431508231236268075638177752222208326721562253343565885240748483900644245349800061922646745210790355307381087440037337278415821925848852023437090621276236778475895284604786246364521783966305035346316490451346673353353844505658876581691737243675567221622607067949894507249098771401476699496504255726897971759819851397159463384563767213357287823223833873094368921930357773955457586546013361774801306795584279937998185805495403949535667067134285466159540363738344492847167935886669015197250349885188632550274619617326949988073866255082053372268305182220572112578790614055196932815073052791054074084332699838870520987726798636050210330765246559869659909452190300226424175476348762344602920494477569676828152963964861912177731485292376274873661333727113119907269174724891952110922471152086996125936735917153522574264328204007721356226767437835303635624353986220281089936437137134698055767498509133831775558422597352951801434634491695115108884024587157635952294834790673280023305790735290245734917391600947613781615919909430143665042072551293805081827852481030937269367390461600287251458121312121208599750152429514107061643932774739555628921534571823315784048310178012239681321209041147986576856462480110332067373296133979775434665031131931831535963331597523136332429268279560536041651396891995634409348134054308272530034746989600359328053630001004010897711402946702121001005691289498253754919827257138352651144494089267887601574784561818931811646440488082529532659638832240212149090911459243129726535898340730389134479370170775035419174163307477832099178743042636873949887064388936845565595370166799367565607730706885866535609581688139254269567046956544863109856968377229432718168344265756318227106665538806277891480386317852376946464302450679213954270747093774580909227683739708420399281030255889204318249063470603827045605934819373073352963672820976292322795755036593808536183706678693108550241681160808679021641338353768570868128912479100617250956168072943968612218197647895400312761500881668932628022478243791428968882528872417871665946112505491836034649721543409196715609613345880442837923051610483950981592268616853207297103703576980168075297339588016021481392545821911634359850044063269250111658573389646654451692703678758733015422017385200328253665127287727766948627175610320427442101332549819139010808750377913188368209471910774644988848251195576303969643483897085216175866137605550840965416537596856485660760616624125523238562990795647005190079899000962519449631877335360340700152282913699436711475445968810013267805001963409030547216409327394886232502052097252996518309875047558822687507350389632632716964299158040741471301602562998827880500424649318206339322459288047182521271626241777558004032972045706208862704450597716212959782006613523155775407406500516870500873625157285769268451198869396468553854304254531408377021783336435893959674134641454483539664189675437986196540060529102151170980161479139985228493579120969152058733676249459792245566971231262031235831548144824095777241909547892468595475889016383782482783025972968706919372482190151829488306426170598921553029556345381766755949207669054629219280365906227041201663110549170042986265869279617645922659686134734183283914033440549555907631309195068548998744829135684962791421830009485862940219145117985862146692139545146966756662790200669201215521565223533669590993265112768045553030882646413190973416150695632434409569978141397864528328043121548417398600665563596866127422699898934257092154890597748709255860117726032504593958031814368193726075517470488703138828105163945881121861899406233261731267343268341948440426610927396396712796113130168262859764885252014903349307526791885211658938924765669719765816184825452161877044960598160328690867982269087486629366625898600824048255887289198606243594290324494652789315223609656734157446112887486029743223347555150669962590036876055365656801446147643154852180981911936461817622554743882356939649160593333452432380190739331397829189716746052000309481996196863620444102514245274078111350532611503241262607055147195523929575096142148231036875308476920072225856997961561902051279756707028542201177023927321626114902368872047793689996338642451739905401494627968335557986848807283187999559816913610077680805766671808489881743610028234409386145692422890735729862822772785597444696075539261698972010331922679639730787764844291395269815082363155941392131661847669935636183563194893863536772282299469555747112525434484047787897510510489024345085022264072916909453354794710953648202223388863393540194965437338109340516476556171093410650138689010563606268630793542080364756925217121651189294467714099537146686407285425222516977830628470801468102442897504901757628903196674081412914113403486534484945680666922286737832626754167536129242811490610994832746428776651919695803139575046377635568715804146830330942082414543031551655214408428660617846237836913022143991786907650841689258009254884027198354495668583759856058722825390247069666128675926276989143948444915110524096459741686237121220344042623069470866166981397862618886834604287403517257247996174348911056985969817907628230888681487383047783152618417763674357358637309839197972324069406156955961998566064683704988324266571320632302343234888240114259967980179358131668320229701253042101548246240730872608843690058610776783636325287495457006180199391601102596373982512798488978585741628177307341533225829217635993558452780769943220535571453992423319553073685825109165055117012138730928625977607625008285231851219638999141718130227983774151391766068690619412007255236331019726087046980883316698203356958410667262283797344598075077131528797338823122958114413718019048397148815101821226937461373713954989092983596036315207781238352901610439685527877926181547582767429400297352529373278487370435428880150809887598917921414608071599459830323039463319206606197152983299758956834708150728198999544520885519596929209574618853904755385822227185929578310918338571890292406604437387158354697024689548624346031145665593506483379081349678086075543162707796875122319697585371386108595531865099365019415744206866729266445181365098202133852269755069129607671268477391122605745808770278793561182145965496890777699929247745344584698946876332088754641110226345963792197414670680324062214803031121382813542896259491871484392348192495806080673885168101564533490155406411064625360490409927846141867372574200514496885744383337991509009706077679570664388128609775690590235735666542448932588908604853007098572350476382463553918380377051593576718543874017141101869468491743822828972649572365516880372028670922190099079062248965617281458905673086279413308899026206684752152588501902999605401344183599708011868612279330821502294706923472737703295510083129914155105271142379209371798988922724046933226088261429157889724585594884264485729066140973000854668822145157625668462637371214143749458556953731988933681469556656730408897672725970586491848258434625074003120394820947196332510257206325433575031741263780217659670723519291966097895725461726217056981076872820213572265996819032387493673733494429335394678425517416879583055280342173474425728564208983742559922960289267700503394022403985669835595706649283297886689350515937648286103870150618970746155968203322992678872768235047346252975293670384215065782540048729446114581842978002183294776715979922275584326570133315455029357884221017641848263098475376715792586409945663798323969985645915383480459004005140523626680297200881788136582290157908180070292661786430258341703368987926784178277051196085932158732686728915581659325658133494593375162176308179041484919080381647643081267930132582162107629297970520411823419364975356225351050459291795769256449691117318371775346652894866613963703867905246684612158636928445293615508113883223996908899826218158766221001561540694968251717740966028222540870688291079981527155856073613971305598450621150166464289088193471797032696223289919180413257498390767935663138764692742414348496589161202847119861561384491479277631686226689490829424400243683465469356653185660859340335998296185105403048204546290693856036294868327272601897015173362179560675932784486304914333120548494173944777267950972785037235496833177861209609627811818787831590939563280522867151045214016904534650018911495003408593594112148072677232252191748403454673327448187460502686293945725856026869489792381451765925781714442973066626720296849166467078812105796405882070866010042443858687533470224426761398307659443936322061173429999025872812274435338765503972667865316863148422515756681637562755095063604752402670157494171660898926017009360742610158694607008399369442373190069681256317726515789985765991821814936335968122819157515722930584727119694881746986163451110421148089471933198648015648422207405221003068830584467628467510636699134781923782858948155279289899609580391261062430810351454282395108269253081396186776134111610567698528449819373415785542488587368551518017214761223724889412557146130918331010691234800726745890936686085490874747078295629738982041256934976031229341800660734890880751904973106788942730781581561808824043604453452453924284558435637003600186052357795606708340377999520905913929591668080654852437026024795815880508661448740072040953716449289332573508415512349653804192272098683606156104304035635079153580037462327512592019388601598078571125234953719078707267538466311214901772490982360590695380381615304422014294782638236307332816263376002385445399389683371016659884458387107230172000617077276900166335389941502039279469857011021037193692076673718558773630930050344758067188575775509821854220694347230706249547479140864558063475578295144934087161885498404749106433001218879354833018577563518835202812069138811138211928750012613463673112686124950563631470347199562816705093373088591861023955839154610251919483831840331722328034526665014535376068098084721691771699629210535982864949975859640450933052344744896694452711669810849776109862025176235507111958145964937042570950556656288795797412072198179696395173039113620260807614048795308230436485933711797212218132987565239336192000918089003986846747644534449686638483989631650733120740495419088224373764391416361074554275173799640278258628053036737282149712887536940275558671552873589456596583685336721492207752121031408497158846096184314025521891390945257886840081376167168398801924123532901898303975772065574677205401876527629947894920545318993167350170378561634046106672980060082309896442612948720295156159518256424521370446589068901434555269628762755852030457148258701004077682410503417654843172337887656171510830177212192894259955953128484098072385573706267170780957092378775915217017506968281242461791594992490299305608037441588461593746304849830794320881264701578454570956762434669565291542246414342359309069835804991229951965489468758341494851593711977466175186934157325775146224242887805360669540478003070945627890622461067243952977127500536513918745045768030216399745146139382193322753635831318603785963803852978811566255854262458186761509818575735254827598052401670241367021245285512827206803613172398625842009130025742760577001852905117607979060524449809642953898476592711464378078419139184891005682980267684724757823615026899980099613253679253080982487877092408927110802222365802250530573626154882433404994331975802754121734638078318101496210558636378888568767079271399299892999553419500060196610228935218075077319588616459946831343003645973333136524852685101253201486326705076039261296594904026315171505920142003851034578446297863357985272473134727456453705128985107928765172413783358889391931887861309858421661627881485035275084033554773865349056658035529806216330944013899712219264387293854035584515409186299249813871405632046830168842704175796499653968213046427089889171574740938811875971853458019558906420855150540215788625799943009504165761051800848513886712652186906548915710775898262620238272158274165289625018327781868965755238815410323195651111864621765383176813794734266081675245393286306256828318532928193780886361810402656962434399003192462393274519572585324399254601293554398676005171010415385458523566646253847957021285265030777640822563528055439058415096038147019680394295934899438938203739442719065235714182532429369333794270475086060767459610568303675171729673437802432802274281449238346889631850276101735090428564990011049975332759255530976478174359016346567074005326084054839263754850976846233420012192060849373958655381697141760585744488784811966831188009254442148240254804990669314145119171041733110004613495360679197972763179676551329618462147756550640172240327360101070326103830619927487033852272996636246167384299110058952344920869403533735919844061708611004197209608455014911857652376406805649091298973459995612085092756977922894326075180707812755573027356187349234766410003138473665132153445547537610915582893305791196164186617612993024218270062544991766360440584779415877748416061277496236871328909025529694790983321402659713877297813303409102511098881839396390760067344950273796122136199174541087487844400416589849052890620812479833369825596631389594149391813046598810369455199985189772702174198982781569128918822569316144678442486806875143790777090723529622825318271034132483146056014648747854495287534891132837551096945390964583339702288879464907635262001381994319963782382535205615802358809863970007072378818525349979390126791661462258072425718682967616815253039154417200452572013283094910306269566362223488561191000617209728401118934464268432045215406368465541482798252901427895987334741402689481519921275686067254906999213943202548017815290775891729656441982497474870068984193627420109226473519926797464653254462051725577301911338325506168473032058731431125431631262264357007986818329812304558270640709513983729097284647385938111085488243558103598912558998505686695254244692246049805255256286305654672708731267711517567264785525405345209741953193090267692266412579462310109721717140063754180278207219913264443594997354120728606308477954110808010238131333344833267024801953246492006276106011773465398252043826511553063111059093732037217560458973580042936678051438176270754506878282850342456947674448874931040033087301378887603586121417220921925519374200536315202471102986655410698006566137374081853412916544656750700090603509443010159600314682103728105079647233792403885605989153721575521929883290676746533891808755814699796725004373881550192055484103141307707252344426802826700880274295326204597188177204755535268325288517295269474091478589325552093696995293113938793173430080332805484821331675629454590256077244729574384669111635616889369119179428905060265066887318717591509245225297068887747072127273459792517692644195394542349357693466142881737978637106619533005406604951620228305292576215696289929458217292917626246308602191524687564263907512601784884361945506738812484898101818698234039964255088115356419264073626639537871085956751241744915459009605775913624203698607009356692384258428948651622127447928383938648715649028851837491761581756762571650393690109060149956450953286893100636212345951982766170333563264728774082343442087013933399298254787644919181687524795623450032534241943787757616449886863029058966738166219868484392399039345832853047711985614881052515864438809109827750568696183689999021073488724598165679513044079583095665858170724766357832328478242523682104235836055308596107922832840530499941460377855835572899170264564313177001289786461582046619886112980277758922434691703330699564089328898899419890251583016564855578474556957650631564254406742592201306652467532784935794944694270907924192244663246988018132825068721808896448059647551008874412520213533023971504498883207953851805225292112082561451391031635778798316455497541082316065342387874443714654099024502839535750335027491551221542695623725739856229637171630721052053330277680229872387573131776278020643212336388095948475882206935541285965314787377171338225177726179887003898488809689011313768043250791328282808692961003374139485907587158818142322638971125752854231331827910301878245811517196598634501363511733695252184721074656221171028872789096591231210633387140322189611469666667905078008830560476901886669935248551652456572851349935944369479457548581705487963129660326398302749649038521125796815617947938157751269239170442670844498725980429932927648334027222783136711790670326512972715855928107543138894628943045349339403375947300224905856093201269032405765558620906836755182520038915569889181832931587441820687070584698424297986556673607658710324376681857616507485619480838505795042961860881486636646609906709861276403442126712521654162622976395712205820830453602906235464288566271984956786358505676836686256512593437919650957567044779793341610375176707904360322224026453313118719833091410582562863414415516009498793084975166566249970303706913220683203112431641355132372561336067948377802116788618430968115509606109893444872517550569449267976403477683269003265120237323934772042444688228964368013019060125914752671803113352982564528415470842653425038759771246751796726348943460993773126382816764565284202812635006182268653443813600804704224568470618644281714556321055232548591611246522210853665820551759865590417439811342355651708190795764954640957812153292432139545629098035497812993346962032422431685481165784992498176792073634767676107894465729128393299701923534671392334538583948140022112465215959678282396708725511141133063269725590980353256848415240949457824877092257837985681970902982913775234731502681304773759111930856389893771472616390410792948121908206654544992205290217883594979322934849978714039010451589439767172446154454725130345976533241605977689660214231517472689968743097779297334501841612178396338489017987537401987065032944399104998220513042021378393969075599801427050237030818793669954401876550661822056036224659287930223612147066954983419466364183105960831547181919951186003402315262686291158738028441110923731251898725739406785593483830814225430089842031200589807391536852158851439542570591658289564672466635944329986637575476330425965830533638664386793319554385966759557857873063974783420501388551374641386827872322054052519506466600449089366052509632297017050548574647879633396735257027773470758714207787692647867163873593964975224186247572547359969412573695370927878178504669856596717686043081237610258461651831603729708683352611904572835935096533383411533198891423774168078926159631796397429854433482036567064564040562264489164903916247496929490664406407876876492359965669173421230332361625774043280327802497918854754225700735825051976024765214794134488684499883885091160494209003312900272044315565441364785654445632864661299070773490224686067279492733056374698324301323873727571130281353560709056348994575851065184393735090702127576441449926269847969090026639511143186169812201971547757110301281674969948545241091159546297990325680737429375754927645864622390921373138002743159005256521326899076939742133299447902061200472074561332637999255518016863492867357961418859287129853720279063616576515415766528761941512462754734580104302632530250224454536731584766351025044994857867874783144986958112033709453078350187855951138138065606432591080144516118818865938456661279969518567127692302708324892617912924631439211134008310229541197455732717791893743413580628450779138617759658565000336134242660580151302973370718903990205178102266628085837963436154405011493444778693739936240088754763844599040914042549684914481462889908277955611245122993983641037848239389776282464386568265783259359338688163273630853083711981131807862250932915266897729861918420519569835184655904028798381164891687973415629166345329507138606223861032476387942093954683514424302479264428723024825347891961966647363206522502084640323899306164639550834078592544574216000990550245931321216653314195221977390484943246160316170825422408826612024793113612178234257613194371599510497053274578934442293037103532292939922501977457436134302638771781425310669086694290826660253596706511297695881979157259619498684859233870067447953095085533798094161485734507995526899494909747911204268497388815342381497189563525645950432174319535162991028837664602870739756317560767815867485225288948864090166318974225217974965273933940025544675889809136809904701006676013921979699900781967148636207264986091456306030554883408352624843224957266205154253424750759547545339572796275582003056814910496840109164725013596195920201113093290829206627188226530272803575910877019364794768536136927082315599585618546341969195099376689301657184601314821266258319101218719481352134557051553720096763218574858990091773432121506506202959042077369615626026903739261298906463698765319865961680921364400649033105846237944207492330107504125280058918721310639721181526005404271264896857781184712944304573141510368957394217802727156482972961428234174168815793660297914942935793619163162135694564433658644605930007951869632532030780312612910494904623824742720471210319067657564462703747886297347810179191480318981518628756939580670156397906575833213298125119837589549700426936610594611819576308023988691347771967421906876033865546961114064009536929471674458531793376041577607912018753930991912225068927984350473881288471255060881977294177486880622274923831682324601332510620379628178880306133409355724697260318396133871957731408923566896993120293168498250558769124613064734850810564374580878918974214846279926449508848815256952957302973674555158203155341640727704929862521444183353036225819364660628035091950700591222067846282094126033951192306060206090735374824628549590328264786454309645243295603678133612532752281096529062249990301315471956427696618538342196490090946490081437954290056789784482602042615770571173501377067111321087196073749925407435607775323383837418273233574400623687119755217149780038967153497614198326297311445695132927943228299931877477418156228755717819517423826223301979119097866923990282556128329481391937146447798895580402943962110382489179494043553453001480441506314791957585044850674303486447143190601556231725537048250413868554942792914359675862084512217710982336186684500755197889173690904516762538733957475186040546909657059076537600545982926400057916545139383282176503696550739311669708284358774465009530359935209745688590305411403347189511096577040072324768872160132598746965483267310733953247497826425859625097286429345593601312144476408198229857664064441427643897740634592474527408993742528775811920945948014422904565643570773108978425942723064308408019350842883598045578945212523561680929117701625402908638030502999771707242189752850544022146472106100640994194257555182927688038598749266450744439914081201688373791994205616495218322738184336462864423480080292082145233584808853529702669406428681732241207532777768616975166815027227505453488611531741030922658571403188415290656352850918062891005787581253264827668598805930443460102688694775606922335677261853844549578235764832765601608143945896896842288606489493754752609662148970419620808074116181056327590444443416584582582525039278219010946833798584383438448119346403985689687481218030390204479057689129444331314535626059268042204920015542388747677928891293097566555794500875354013908046756360946244707521360347534084228640659409576268458563259485242693917220513831606045832626085238506678541200178725436934439952492561074019517459512471759162053596990596315533128722792112613710850558870559956958204490115559114042270578566198900730793142578523724249852747472368775107822376487666397412847677978077796623018675978802669335386198390227503747813102504539827433024461682995355594274232686949360978806910279186195004486287873298670068068591516208902651323736237539757572886495661088792370510810991566835318606376049131603140515316780591879753802338464500459027333439773194682896385163274439865863517298696275367402861100965931255459407308337667720068242795720059570914733870778262482429265741297703754099362756691843065793423877303812311675050596366876316669139970408051175845811248180920225659687656830225978927689447524084947525934849935267653638940430919166589244798570082697706185246300213282017503363151319797737248845097384950367943747608931259932258762330981211247469712302868410704445487416779292120363759666366366062460916617855112720718405151946157254560723732275245083014001681140787903352348857311715373191368214184365913273722510878584251393811902119249893378720436875355291338035687101984635875280245545151626787054979499931322412611201252277545895278748053375345924302148787134099188008660666695149510196148879183029493847684312179387360113906684172441328829347680321163565154165862822006542089105296263247174737193647815196159774938192784087032921725345982618937286352252271164260047110000032496334880974085191910050272893011466761980199556293846022569173177853337672470124492743465057304760474835426452014104242121627865555357865909423030360008235920334485493068418542341161332416786545871043324369290758701401441977270091271622408695842294056350714771942369789457201155048457790093828043584631613229525543795391584366226612474363625083553997850664954976994886235967618197471692053367073069360007833090044556982356730406873755685361591269483349969164998273747849018865486899929237839481004878254491306283711960493066838428767435603994460546258323430193831620426222888945137360915447361376277242081201012952700563910702601615497390044377519137866211215046330994847524177541467139268913713313296656527663829842462736849274088189159324205890378567109953865929545226074392372099361573905137427710240136404662789276706320305422016076352588916978365450279624598862034214764118685260828203955626587302186117705999295470118311029167121340667499845503683454310961862541082134661645812663301480483205325544457394310755334930004586126191534685316020294843518282697546589697378634064804438111405940602050690950598394086615233627701006060471537799841825054382098352999801806357172560110300001993301790366170821310614159869150931081030539667166623266605120221905382323137049101597551657457197226750963177442623311136052554048015987474748773474997861685374785485764049596781465613159938365228725847845575955056616347672761942357740306116651564435262156045653945350624788158197084840443805731994699779254929682716217892978154591665555290285226554802496951336303760511803008141410987737680269578791531452871369675203638071151939834364409641000153703084142243822667404017096834513939750968216743820918313388840833070227200397843324368060307168405715925453677714605923859782363520025775839412214413557865904920871747996703195236003409567168036357039413728276248592002737583608420742455016073920792104376522096845358853560093448092320341748087031045587230348306608322170500738821229915543582715931261845995630971778995810798965769776322634406869177337597242655536051311143946736976722338302036824581635704517716125829318230586981282293813564125112010302807399991495236447826680841711943970469745759270194560257876957869563195940101218237584246893258677203630353081017431080153175639132897965428920551153850569048651333072140093091944795059845495551003503912942269472487553774086615477926200526175320084020726208011596488070666375257562554006258094765505583009766079839190330002672227055651910980825197095677518141928484716177099729449178178760982332115983311614623832698569539760528246704879441100991642766609936116486332996352133869390587018395330597310370271241449877011575345676795005205763049468611278721772595784797619285116880260335728298917440882731253877523201319916205677247231854678767620920190545540159792039894137205432915426801926049175261703140121468592315705256956578039754330911728962627697013775842652112374519183640758341739484400511082156500104351291015016675343755534985069086263675574342618124961625152042648413593079334503121444653183178434270935910666141207839255343201620251549337054079061046265256169601037677909444870133809117156668278382734472400231578730896172141691552790047890288631552822227253356290031446675157447732100963231055413464397163363581450566308454014751788617597163068543401211042682033389648656879734595748791125653979883156458793524962862140724112354458473524423955353010343675887398516856337321058589346890585912514303435115946161679656305318226943074802703714995749613879886437492804206206087360082607400230910979585709839707893661445439495577038990602568221678929062552391388408174091838395222043883392665163738619022771696283171699562190434561662248756319351684739240444042075898156316683504324993400139352708490070821403501385989871322141555915193159804701611966195493161852187741670712731120152138619452168726584105673597011016480544550829682317322670058764209308234767060994910659520920084581557463498850611579608629205073904693561946485616906987281902461096127845358058694867784609481257215926902897737716610920103501082853307038621386187619762826498259295064216991837409659973865632245030381978501537947114935064203606490258614593270003782648215371214669733932533318389691409549386760043817657102468396992186330504489984816507248665593152348769370320245026997791159586466554034074538217639091057402788430910370788371819154132344080697032063744557781186149224730385070497734009100527301073808322755219640408461439813243241780825028524412172356459352207050629969344832718555754464292614903351044868692794512630008415029986492254065981161064164667210418141062297046986410007774557007910884778471050672084444311336123971087345993246855392101085970644178076805113606823800582051823336511341816709197458157239510172402731665229071468327457353697487734841951473317951598427140135460925269385798154616619567788751759423145255874811320322253709533630328425757624378620002768631904798364857978547206992941691392511398091132794895838088988171235616589836904370504364315640773777379439045081194337165935070265252977420356990279379608185635463938433253448051201309230144397904860725505573123527026925166580097122552094965634722494309014588112066474681728044907721952193140844140134339759146467205694628268670706826965347973803253199205965040902350110288853956400435659430336781832921766365639946117097462215091650200018754903194216085924330476177982809237440438226233759547487116715473424729835861048906578414005120196053284446211743464322829974493345140093686734746594452843733874528713132087582680551703167669628648102165425545363438299149265972073588348921537696829995996164691682211231785246334414584956044039344089369803763070385936427706320889252546797874852789888505140667674895881660462640472499639879322340836293406241732993738174820660803408724299272941687942572832359830437113585232238558271960642431137258315390172708680980181704338732370435020046772334875048069987657341155175219558409712570516145060791648981742012612640460607798199160885873072879727272331266204334724163442434322569813868638607773498014488965489856449061879175247486644728729672044849645113998605990911393284336927039332474970122171347152115630933415122564479763414116973238109076984984103396313624947295139691451990046268613068217436874698284712095103270431015108147822225893505185759876972541205816333949077387957695346908548791384624531079765035910670900420331233160793764964669229865841969560719023396370473845286750115575435627812414495513995080766253061186338483548058291971409171771364332410955726772577843522668860523455897987281675856865147173587925960058686513293808510499113138087844649034073224570789864470577946806164819409665136964260303564526585771788930640028348351943798027166021224860574279652954439422007675817514841580873486536513309808459159410452020785782761139982407667077175854893287552626761853566377625233911752441756773581880580764617987347917250271045045656591882921211740037535853897512807377732870995786817450921472654781168575633574261545460810785408490495682134929459787730782132742960549202933748042861741673438221404876166652979346723658833912894997290017840214277112618066431239412424268422141267933893667053329541738788931959348562764815691344770750573486752185143773334093115657371319432497057543927833952452717758944886378749665264934189668530946705279411554857064781231315003248572987492987980081494299038540294244383902418887330589460449270338246745963857917696993686775997150062706836227290026123533305321367091194171549382990155764923704510823484804624669616663333314706221285105591582961879997616975957296520591944250129940649790115876474654328850371157515719320989081684296905544304653766043173283930929356898515905388407977243768165381190905733006993330314752802552901788404301144279972393273046504935408421293450905695956887970568807562334165936931466368607837158425947125298013653861799936611384850097495042418893159573434512531401558471255188170657174856107779163858267488121845233772660402712741590614348458077857832545656816560246085881924966188999413419856507169521924910647644475456365185242444449781373682788716289603045927370022936839532253884172585261562658902018391234418485972964180922692369493261630157744712879889547797850868364353397916605559007333831994311716969137095222273213528826774848051133213580076125324792777773315729880917713562055732847068006007078637663892436265511247412941468315563781164997218523674505602762374577337796294044605039146552959911460045270333972117851704118192274251968569900877888969025211183367051073165767167300497866457919706080603622797910976814798653528616269449400309802841961048242528691365710760430423678778425758713473983106054693394708030442413369809124142426460518746829346810401300967081085777976150151636555572159037182374601300899407855194409280069541074741552810007532920424596734297811217215389506639285642597268660288116559653029973757172888145299929310711717694125732940186192809537604930139169177481572906977883604547723090930763228246603780127216035093077042818639911576785965031412573989690859196278917431301196248378741314936288096403320448550663278239904695160436340871329807837365910775499280333574145418851043808739972699318747717424742089661249792626832405982895360062957862059373627275228392298662993217242856553879609214704741587379055965313122547040631932732176507678498285914900091124232963554687949844194714811397871944916395186823162187803376359332221812886482831237390399029045077799798266459345525194299252729387542598147885499338617976944917998661918310159318375799500878343059168281066557825198900316111845747564260160177984130501733741098689202987449904809610055682457319573724819714325423004154616287298589077116123958674579783633487983744519007851051948911302752963157395160743818640644556865171648112230930017481173818240359546361371956222898111801123523785700695659484665877632620117291949890488866705828293660651313557091711156794428822343492130291538621733173224758891659758243311810614574842597785255508305917093005749779304987261977896276495903189881083399065659729253718265879035870557538543922650836651148023401053750443076237358547672586108180017925353010592893729110742855053308776399986475076685229897319381275756605985896358625369430340116347569890900750039379033728931935263059456223577542016674997524761280621403241812327916501136362971560513803475453229814620449427712957994313650984945283445787694982021077323752270116763489457652398320848232666274905996455832698252807226339106192449004226909134183254425062936584756061855152353716152090732942227434763762679859642873696138191586861508440460508358855819936119317772865065748313352685569032624323233456084632182029610085729280995047630293798556961036230970150213323924592064595796102141267217887484715098603666601258840050068504342777656169878803915359589631044166519405572156964113718993767834278721683962384851736677746878580930028100058040077655107502726421200438472627500788556810788902208341260096576654933659918682215413286572978642655552957423136596983644533815019850623071285619231081390345685747662516118470872766627658493200437315089995138154914304728499152065356968600481481663645998469963788267827182800775164893093816960956833808808020093769019357682155644557812645842883493671721279696506600381177215764895457292740547143639889202698208899875388704227208400205649748374100600969299843320132118530863872939267049083985334872973935733812130960037007261965342298676426842217981118401990485311046024427858429874479138533931994960606493251685524599351401345960109157543603025033670833376348056590427906099742122585419656324169141284282962158395925825236113744333901360460094025713700160494073896979649132965730165101037850744087993450724369958279090480834886445963956948427684661414662256009021113519232398400773414508287773404930476285900750290835993162621718412679083703323466061927579095104540337195262796339269760031757589331969493182045018220822319021605246362912205709438857291881559593786261582473345318106184917414326333777327848960598147912969994917415673090030434245661121245138290529922693063617578522495715872607495755951622291492305072850343813355069824274039219052748173925336840508160059081734496626037567683538170257376165554195888231005470571066003175571040717598783265704369831544688963946996123797439184879171014645112509155218352033099216542051980340412706796518282232179336011462819789476916873104478096893437665480736787679304265995292575167468124700648061654383065167013665753871667326534638331587610069312152168258199280968195309354199666325495516577587142534431095155841756866120013539500672530464390062108993964977155260037868039486630675436126956080044992269007275649298672851514296538711134832828225496259408476313883536058184832079791159937893892448812147028604171927032944415729709662404306220227875191390321134189791711092355039310403859446172454903866368109606077085143196541803233451492749088808766408784438836570876570112599952203841059217466532304617323371973407499933544070644982359161249093399124886934679181653671495786436682322343938698202684782940096489801037247162234056805494116361755330479520062202076240103515059021684924036658462224580760855349805772674238545131687966572247620496729584316829575251385260300283298189811049566030829343884951571452696871073455431892799236916138896230994029409820058434677267465512507408002755748623693816300987448332348594671748820189503359893744871735032134212358938024845368984296453513256648422189717493973628725805948097497428770723336418344635355454556814151112308015651748212689328109019206678874018698205526449995216794673546038147023955099349481269825372917078823063823087157569949550879188244010680713188711557627453890584176736538348491812841258498895417038690410902949183033804944663405716376361673224479567492211211573515293644058054556466664136097994637263390883344449934989438240152787218409391339064816275494391840836880497013623066707125620731714273203964824954045117429783032606006912632052593671204380473701239731902505314909567871860872935604001763571461472959932816367990614704422273700043890586278720730988026023401603269367472335879094246580609955833175768261819862605645177632763348167618858106657264468075692650442397765405877032930368732259295004983571763022562607972483759642231610616386494834513242420228385229936500171043682384027172036183315626605000952117663307974862378627848407728934199715648255056735859944896531547506884069955894410758864299808351640409363231024483789085799384858067528355638649754563091497959251834381941759440354686000433681653044404677840223166861115777989169871608490797914773438581389921143742118731964603300358092832329840471588309427838703909115468206471335740628883683662273331251009419840764515153043898941650565787045193676419958219142381689025787489788105185562977551517873143806849788693749448627400651342400544698142041871416733125336058130936300079379025867592319672584973026022258655780989785884759294564691146078496805434352045324610858748489822652501589474655954491130128548798181351445008867248071678174232279191167279713620427998441564575917233821607095972518563481406736141347483145093439587526011816458638593577815409397431556785793455879956786950615662814208390717379015344509096412839319102877326747579871068926974180930700460146253281617834643970121286239973411402476116018789463411678704443604176201812057727564827773834649533230960596181006913074423918505302229265444922330609893962720483285967790812375831688590227052201486976686544429587647763149354603794940728001567459310795663545047565922306816233399464460647733184426764587475572858012971386568513594208347122344406948794274481401225227033231072320560288290260141983411541341941684728304165255274659644636596528852741169466647645520719907405425061181691794337686274274531742204565164829627463121986398065774403229380654419253030957783892229913916806748409932000701306679466557152780217643901846897694089351277108486696186746372562939015251111756912353836296207989738159746717714390244388080230340310191141941359774090120063969243254109333399844834420444142659908883609183370901215032866114214154334240249755522178664185584797667902122877978852820399403768198772219693168718435095457398988066219088915285489118667122619853126196511839656760973901124583737139510020439011675700676543720470644214101158173449125203674104707868304066229476369396740466979242872104704828455299572243044377099828602811972763608723856953625048036016501614976947170394307419121865888204746295533081755846287730967717932891852953560675417893812082876736080393369832212331135184369613280767582238037998137175348870274998692765629174232258494978417125859157157264440998525348390513044949049847008047551109179519696025250026345779285514470798609403040976371265587958191882838341905500858768652135712183071749379104095933677824587300696983364128776629558626607869971458113565006541724405512506565866912110679760308415838361227654722547823161820555279035428020430246504306917195645150554730208840205755664862522446945757145717049270129573013280549252493366173579949169973841175233183080173862181600388767028195922428697106784945618971988620717645331021212807772124296007914124270928749370643623574304175240574136400115451244818900689507124743018062108415294212270148761266162198948152947693200544523030462197945105882940184956440766859590319025506262286252897979185681919107073485613507278325852921319778389493730304539657510158051115002212309137636830209939833566952041303981041736272545871483230773504827044097613515199608095122312902287410852659486390446865844552998640242009678858990407641575362497235853940892521447597379271504191026569066069126011654414689711718634014348837477096062279150042064999567581118368092646187768770971247861420155657068128060801929972757142368391863425730679171575945738695430895670904711300674239469035401463098242056925070400096768395149805047514382228390343319126758873438452285982222399949544040249818424808720911014978654447499872175047568428945440162583170593200136733298704925961626409581587947868953275686627382847951996713027671569864874798091705312529384564172161474088337647708618225694972590112074272798011048732871883913912847542001202321471591428419085962138772044847141184229179272361197915443062404496194122000087681840440103038380324121142529931296388517701437507782118479749107830269568678292242550062902096788535270039590153778493038824748463887486077653613321539200308551457223457879680630690514676218806004536644991339837086794349390210618960971373655930433109231212985019759536859577456082586627879687176861450004246948590366113032052111068393785260055243927708301945575651631520708419795981091278585639234462563481267438317973739620330141010670543768285167793081530257414757416912451688621832493487919181003483851421585368911024187509114613390161435170387347541746405341112619834796483102724100858269266249582746765241129869191804029354910297775755185411528587371323417446207702756580937217558022898695006349581864030416463189704053316877861495612204563663192415276281483433375867229439156581098629110129647859169981218431818047992034040687740355780151610649111517782814886506247762732244854369750751335390890542182217140947239685588580665140842644904543915147781668627295465020495034467427822804775050039002835103902028665311325063379415922828949306379288611300075094213317724861623891744085295614855875616584777423341865977178163369558242012218269997536323561741828794635854954927900288080337401443894879835441959459281167229875499378758887621164357848794910582667638617531436877877567161365726784408515303735506184293745450513046530668022961710546244936658630590582727794640629656841226683900447813430917603550049470238757298285615866388666497949026299681892851458560126645743653001504463807556220549502824111364778493992271755146186843817014863916724796399429809562137342328102987904848475966454913545317135878576027325109285928946110198880221445707001610384889667955797367846447415326501406407079777037092943771585092224040626131382696552986850888429947159967147672091949188214277691963479088012436948085193777700729751850594868556974941724514234171158559326658590553455809244864295858346861549251757429314064029896341553200459776949132370218721847288023591517149064350608457787529126689658837770635039466612101582122709619179582071203058629551903190324654583325102373246421014352865635635852453841636615179291451904391629668835633422385754201872954851869077219887287960905951042366508613718299736221299180102336360823359345142396437999063495197362789701012514989423745324010273607785818234098776209337714461843378423357496333134030712517495410625080279530641378952674884262430866294278803847771473160481748456041001951567293670915683128090743361992457903929431361422094193215389634513847974269391333955186768521534032212161748751261410288968149331471050797296667940257142856157520056781043299492864780659899819264719381288120913967087570511464058213329357038815788690950403040079485596309141409460646607403715759756050311484230706573821663943203071331266014422069319839008533460908746810646081887947986047519820637031831231389662350010961039249430691896696872794948067558761273899464788762419339221750056897849639101608397862325137479834112808988310674190258577710615459861505603563727957063150360145071211588270122832614838759116839635416505826638653886178897598845581169140224578716242670575082998953332300014986117779578862911013048085136314353916877326856656250538688380048710269460391923598142491936616083087422412523082307127839618319227395533976034005051963873383044050330438692725040750056462595099563943686100485536619965531140485288118316500770142509104588422717460375670757569945800191870446269521455644024425283128753152168029995631298863894802627951679470578091409811313156165880369369562153814613024959247075641476441639400744658359137753675540139635638084746750247632307544874174582089155605080888900308636675948408073177735748436992844274154772746635209246342618515015209467614920266901091221272578980851096044977726736121036253505781357828444399421096749359642016819248057627909293668357735192529768166526613153578347354932953131889298935276235424945436544153866320283252126340976892179244816270436297363882472267156699843904900108605317476023985628302890594605868860116831685404823791969219071420834694510848530028970103624520245245840541563237666087223431743007951016691374902334976808046157604502371268860131436099536244299887786582710019951474731691113591299804015086195196363985779214908740502367430902782365200728682472272485644678774560583798626607765726561995271840279604230074207255288901644292304289184723003671741360673954796057726737715211999862918772702952552784911143676317775081958978390615053561424739756598043388835229570378524300952982615496616800135603599301666479650212375016821016590629542731659427918180498009401754797072037053435478957118561677978371548733183719491697317942743202013554339464381159079438023560331322254449933306338540394945317807487445215494880960262698951830455456426715135558177864585793922002355555288957521528570466064543296664260580975960392439495404573597552209185097402666612977378839833618027624526952669127533758205125027740524365459169395018758402874023478383709196952366861271969582516263197346780944985446403341599742127526136589737226180208713936208840375690131105289597833157077341477337490722406940019789572418265410580935378633616621111733594805310410245984096542396478358657618083560035974120382995306133897763736780639778172255861769840670620616709960262477812003952757471635661054842684237482706910820688098517798776167953404150608172581301488779288564916151798414672154997443318189585668466776413670491491511304720901255871782366531985957529016316740433754359667350674563800866116207817831203763241815811310854520353208960399996638269329491981950921784958712029640968013024483006155817901749213206705378534700799068435577876301773959666495062055389031255896737815720658978392448147393402818087431322946327191361050616372593106835774632531973694693838594298391764643290713541447722595703868352384308242971454231403146167952048119469931366628697505319551049284157832279014218698665883168274747311766827318038640012515455724416298739808296148096291461385396867206409244390231105298050089211405406789282736929748162290748161950524663150374849369050640365131250662045466260131925064197418352915513796482508170462801223629088485308268327654260212761556154195456465559469557212932221427559730018226240526142204051067071674052259007335944415349810903530729407366329326616237270149080315141612076950619396183392976505386505695739171421319592514982324131277308339260318586288526235556791307090854199165318497032946267732976950152187421952210105963012190921619827778916285661271829830870925465154822641035114668450561725437475698208369015496343530986570696154319665131872672372422476840288826125902845802779956197578829867326841085826546394905003013031133308708465583107714230556312149438320692844738676356499512801828655837926858998164972122417293645042305119668871852887654952379090364904237450662216910861620454952063696926601423170605646795850483807394138038851428354434665797323208568263764128282411239542647395248736272267388194917752072088760415546967742398077225254522961360999793877712384194077095804309561659324408566695560760594576659167744999672403152488184503289407782795016085922134195439443309574784142817669113954958067037737541725417506833087570053541633878819281242299815616130447938323271111473821247312859709563170686152851386943621400772078893122819682874719663392003641486698601137067257677821889984116192063852715258850195872137007370066668493730757256322796484534028873021675311981484990971831501519462999846129418633309771429031923904042189817482084507813597157674574175820744489028261636799078790597127101615784209435928070876856225691834968367805084123232060446249053466352094371963430738588047369786413563502266948527713089801561059047800911251349638028040250115566633763930727024168448398001009505032914174653683055921568142856641769527657272825357812472377983961619464880475893546761717346387718129488605142783000030173768898549630481884681101209891000490933549443139171621170093650131243522147037685890036819296283881437741649230570277514727012229259118036332289150801811994112516528213024119447124870406236518384830733997568920564140877308936445740647971625697647152106008841591503673549715907959279071995032625586464145358688764718083882155894940959379899767833006188006575649209374627121825493147781448113029750485919302342047984567892583804871151044141689398249551006851884272198274065452386342717111703660678178470455180907773979717576611209300104161163603572356681009347993555313881032076042518829389012273431399677499117740718206527563450529726042027771190300264867211074724557879498584086924940604082869593208589842606647523750261309825007732746894634822887863910997676125889004301114247603453960941816627830681664236749230347679959926661186218926134306562922688123465219076857176103074645159581758832855132436141327847747063527843553794330994851960201418629888752117579812112241133415021934864615330585424786077259844798630072195117362166277042962270108490514730139096856070648172033535765073216942978252046755556115028646513075270980865359019630003478875828068545828448772058111390585108799788076505159249473257250735804986786777379830855214367921551176195458137675091372184482539309236024657386358378493721338289236391440903145173530349807579962483376239567587000459980726773506304920331065159838916671807037605015538601101102757773836347947620420922024762899629685786129738376433195272569550018884353255060478738808121931047306303996895387003114084184018016794374550877295219040428741781908129275361138903552472920587247722821098967889057353134813824059639397923535718645333327375810773532501081614812000897028454197932971569711541574623498978546913472394932697806675148744309856793342517658463502013281375151140027426825855052151901644838965172993128488166587785129224041633402794763390419347247077353968988632813875962383940655501217672896735921704829803006326148780302705412175790971289495419246201307752632076136055516259674919290054169573362558937476373993342310491630451137401498393478273640442258914238378900853549749779347122397758863978425034554869561759797969662294374892056937800432374301915176679064285833519347813857114493855139351912137653670750392509885190078178251017530961440832983792325811306246158023837135724182226560553015886860446434291417446670636203286995426158805809618425975858958534485674323894797967321610540130381349116317321888710628260959019588579036004964177188886719850306366509197114101152592565301323479397050874882963178231073860233684412186698657130773583099337395522419587678608968426493816455507838969632385459873745487828374413324904419020946045183440037940788119516459381206489983773264668813631854180721680406404824447364541446274078015510694679735090398537308408507261501331443293791123475423247623518520314153860562335435549648385625166053920002604228361832256815663386698640087976055247373735349050877798411773880979576426569913323024247165857987718121262012654776960395503840200052812341652667240771405859161028781189983204137943291225110095379927767912471584557893769563776245824151033746968588520582570094813136768384842286264952340497279399062402367966281905825918018070434116516453338326634682314386750475330318074434369564469667889272221329155999191301545253421898367404200778932562041174706464494647649989252792724560706101159792369399209593727951108290438469827926963438927993665936550874205589528040179842439096601494635033695338256481278496708449053047695632211477404416597605255530662725057176309355408836791977320078308542236083970264965698750249797369417140582334128249305076779899205743434962480723836944588119912824102658515779516302912993747445913186363100236559399370295186745879517210157050417840280407142098835565800490838850312138954953788337026973261305792108094390287536774140726625932039226441734880444500638842050711272083229988611860701352200950133336765950744526693667353891791575784700025612699252580247307132529127111333095822100980866671006270833372506859041197391102510823523643290735220746561287197928333329189749006344258210941539583056296912536291928837831821919903852304896743271738478862316530456783909950067105569935704824350199249596606576130146063384660420729318813751249274138585799526091852970834510201273287215633562653524615220272040434177886671433161132721764459717743215944492626063837499730684515130899528040576309487944882748588487332338373930143749119732240650462797669673546665649445403904613434771426985100957189267449316114271489350616434225922240902924565172025481930555916826438493891783274991613120408012717788900970580803860452899564272101787924301082808849340147861434095394570143725414378689851230582125227798988813759537973120845052708850193427025283028135048693825077548483647422376420470102245540279224824945524998630520675503002566767809572349784135994830182694451889472773361285407941548147470155395647361005141007247409092975744628838456670251582024962997044015974790624090264930719776475112692676339061489900695182022044754536927240146535154070248947398287408961918894094197749987156398693282194016063789341445193488436561608015556059719520839714288902931726131184661373233344536756701494550061077498487024105673638710442219928532226293325351844182057126810689718312752357662845331985530308927053584204991269999827895948358633048724561714265448907097001041419648399193114025650603726167915296240031799685649567008949641905176240585564718861140727794988453825534139473856219742519692132311309121064740150361071984732338397148483547280233602653374566462526552151603865591294637645473200035386160340445894407695856021159925571835885349568776085949981573053496469882695274912642440703612620086519086302689768392147269462684617585813098286358316584371935993312333014439825769077589587152172229163250522823504657580761650020457072548505020520807732296700002617652493796020694705757646082966520956373130451752446450518217143652066977891856077949455795246334881229968265221757387986669158768455974189423028492824643885312794459600451716040868264837536257098195099685788997597858829196941137348390785136299683466005987622186017773937489762318376143631251768197058229264850810090203861927428060473158614395563564450030161244199432051334589342856459596537884048740172498974454412868306524233183812889894516968700059397438889887932469009675769580039284284702898729941883073048783125827647990402575997072536073479843707462033825011801896771962362283216678523875036629821618133984355677047408719149807248357247632931352997538408484693398937131955596106466453922449468484682302822710957611221979529018949045806244817648451771145955274843553040482715919291444321087670260750442492561995142151150494284973147831244356167762619176667059649636604722387967118600978702462611266087164715057504292943672327574421265963832394621573136567195013234712795587058672125074339326144511235662026923943386317503148875077318890232126871321415562259445748157458083618282943422589907746292877149867423232314684605188213228604761754260232319270934408251945160734365938525300835921445661504951441986641300769873557404194038878242954976023509563680101999546164489622768327011232850832779482221773112103710847535936173187560599893312408675325797669404173837486968804400044913669750091441568785475929755107434054379934582545606936495321576147344730924305261004940599260717591545220164538619224253584331219779988348700724530546871915204522851331470454491730544879137054754641555140676262320934097985386184580460622388418341731404163367251526349872750550352113764330138178247861332873216365159429969304463252663421395670056496169404086821232926621169896977466858229227817006565160577991345370531351963058554496536532199356438865801712969605033456709212895021293041312849935929086709476941173842186068283501562291627264676581535630283047875412198160209052847735260472929034681896297996330726692717405757497487459692825058817342249029187136999074747005545670420456159522076462759499322238661600735462996950767250483139475095471833268339154218211670231049348473821056573975014198526772873288789124882427642083892934391311523090547350274538617663508926471948952717826693396715122952430634386048013211971419343123688709961749247419817447136315426476459193489321289274800120922615527915180251630401818049359398050123237119769511812028751434897082654370901220412735560606116027999737215713267811388852947460423687865412244394828695677575987838318259340894170932551888857226125249624002643098654221749597516000267260130071037431474281855643305296361313594811551321583025692655158074484313178325804799979936565153023296040081334709883287774203098683892648052846222580962813491448236937786527602496449786447928015767091104458561786156181320310266573219557963964156957543811068436183094884408071115912324754620148755252479063955720918000395304064388095970988795785675390671884813365061631582702566127408520010098860203761389670892730515771927572571656259202839942342817371785167432043324975733681087047532953258794391409073429489428297737203145320326842545549773657969746525833283104604953266881269990985182487662852484826988770339091641977374440977455062959405379833520670695587797597972334444292424163083752913759511803337587238875462553840945670975773651824245394713088944570366905536786934496902440136389707093370389106870097555092653236516019106546764280912172897687846475207079215510196257595326751247176080872293867330073224534853628622511390208575056991712670936920542338308600359769168255680586650695252115270908192257062662989146497864115742328739631558177810167088303095929292603269573711820322412783317700881194016290743515227577683730286038819622862148947164615746982655291872364503151425012322696053685820634977703606546008034328202858993303103635963378243275849948138733331371244615286853827162524118954702685287180078771868836099693064624959613257693925560300563399703645776950259171596980624818560851232384627533268717303943226396044757634321048886864668998081600797263520959057238356891480494676648462168580584933590108841786994214554763089382640004071924842065981435552204989225620548872891724745604951534521605959784148089864698230244411990975959690827716150343290132179231903151988096673175544200437286135687004359306000294774311706758631926723797038877042675914711513087487513603423909722086835471573532263575326706892877370930360609400634377935260617860589429862874125011885217781222010904463112380565665255578162896169247775109555301723339187133524660792789352593787456522988707371144062829022390438124867822171456731003707968418973725802088903549935738114352499339219230153948997337076942040087988930057314286640229199235911275585024073762700780107858183817741808464866040960978740080020248160954291759669070984573491850069508648160912994718509240446938379477147432364733824390447774111378280266998886983400099585759979844485451177455682921296886183271744242022398439451159560987562059082062554007885667392376592562435720989355908323930035590419768931010944209630484115459131336790998650828974802273635867581664383936187149551423378910970738454230792887874513891204437166687716644782462494554351148707159905141841498265532873202368357338849163031024889448912474949203441161762974919948913653725842903963100929580152565158736538179748636697303932998277900275794876057544403861162184263475266910981045108871998563434455859973960523725730581153593280185654336967697785188340837986046405966548125664567643495208794468437817871716955016992857518893541250670923238045103902490063841639320632108812997456792864271129472490345584234528544441618218136172692678606494060150875270998043462941172616601143025439607715247131322692702236634628196449194669620158058353775203112078751960106576647581499031363888902200081309822493064857208667193228144799414067216894325845032711166431104661057505793840626076478702266823540140811676596243712577829456758914774333287591009837680809364316749288464937142275465359200492336749073310213635453301940894435346095929849135216290570444834390787514297227901183318289737366579248849349377196460664078248574703261197945644610319948650853877782769598459059949751621750602925376025853614171307235056157660962740044492499054595624554449550304793970683134206951826090231082961832510199735181035052471263317942943912177402599537464454193744737155725131407666089115639081516751765318347883281626551166141436701119373261819859139234506005761587459229271842938693019229174062571007549471137121324480190823639999138442401425404201369677691892987692123423063190170488328089096842945892181723440649567032915137024708718908278815600524888383781470928892716708292660841950545055470334691578037868981994398432867444760876671460689169874611173635143826268632742004361245647774570779696974518880874690032225106469931964754042427721891498895109738064790345478964800334882753516062013766165578351295994815109155503772995924714739857390465209861956136748555765124469491616533064411246205582002880554240016581032348995677026188328790277856477158097236078149847822432097213658129517820210128233668909746018251274850702852565518485477819351533336390165098179948993179337691971238705981285907439847457749442992147391340111335673049391950600136141955917714174898646400212007530706491440352919859156102056453583453815465148002898590082474575897103328794287491389238350918245638381349643572245607906765354096286890786756181367711553030215575111157881660402432542522025250731960280737516836985124515592998946122378678404852760712499091272111659992811391235869659608461439799724900970578594952665039404237023708870788236310942680943914077457146542822592520156813029325563636609986899212437693498129574083758069744206562716685791919412244498380717393848009959911837678897874781087777488628037950265875947902428255699139369231145442801140695494505126395586671466299709937710444900696088985749305355829044578100637337497805598875596671603281343790522452215836335333470351522679412929212807981709481009843476206870292906230716988624101219399105725203306111763248014893969924449408928002939398052019586775575861147763010745847376898546095371788797570999275782636541143061394066539359804510176217735952960934337940391975433850893543100320569694874102663192323837043039887535550220598443491633404078562414172293945173718002037364207622931689062903513348632757912240980368946189854747511297392001249519208508839118850035908847898402735920664009987592426889338729272193273735685537024331912859445852488765051708105845966235420588771186235454788120196246528179982206307683945420674254050878329254825833536484806997800314761484679982730409813523023277251970064982756159273992199455376549950241979065421492075215593477481773698539230096541953760691223206479660745659507053349113098306477904377365463459410796979133591008801223506030142223967116123997253156700907457146428173011402405938011626050605164245773083594333765073637169002673164826862713452940280312374431031268253888384482269104745975882157884230119875573226087896094314155064931302455853899085953113069868184297752164169437102942749719453168467667717897669293991914097420811167985514339486790700782508708925057962962733123281248578997840944090312147573602938425099298040609067498101440224910065573771631085216710303675711436900552163604795101579300259378974802521702086848212245190466495769004796872275974536693441680529784348544342237623450184429309183242386524246913605696770861689885640157844779775256747763163324003468907181081667323792112504223164698033634335425585458190800837294425359628342872682032981954960146571114851538317999024071970759142318172971848431805327373006984861520277273516246099559640117841415558847784108314433587933981798486601503219680133585497609487761933794021968516080013670198184388883033441056035314368037646339803383025865803063613326071364003985132499090371655672522486440571047031765498169279315033627984802264085091678626962893281479176399075038391733979889736904615185675838400239774570528608499572991132255163747389241958180611616108299605010031994883887774582278176892842286446717448377845777902818335184666064947874722695814612778397214407935242095148627191179088953479584453055559852054153582746189337416173773639306758906385542972128028728375656088457575043416388550744985246037481713251806226907331517992366269169630977550676533548720158309344119866707347638677745787332488291201513060159655523720497416105266450899452775187776061358364996310398424525447843200753553036240256730408751183799043692030765229334711076619386801452488386369732948226811464422900838997444755519737177341930274675257132016874358380093731461343816312590618522665910789511288783431305538078844130967500321650181470623579110813686001616717960227449219940414837857079344156114281810218707323244778858379590536904604481113099236694876841286475756062473698005318080443041307139245576683180554783064261966776257294437176710787603984581563486556299955752903331459557517942392856950307627268496418411038749394903233953816000830338137127766474316732952005745040948841702871532686706727792256284459694622235417264182135748303842747431950882942621638547645410265992938532672014140445663835668231563724668473307857801874115422262854570216897074755369955912824693859285939736337290416340145534190142522105198189210854106132698505076290275572981301581740960810779433851238655389021501172041587040877931364345039234635658392093477421982116500710625598114539892800662487491783541600559908514080160165956895670957630647056642065169581492136526884905033467172971211625325793864329910785845068938200313825859216391744198605676510370631581543451657586963003167875213393917673155462227639628726424398507658146146285408769724411853087536455623930821863136999545647484821036841192477432261757850376397352603700870004705987069599923386276286828848365991227048636412194497478659517456240173590238384360794213815988506683499414406795175154142840834882088748616600759956857452964015151817725489743736862381911500106511539028281712804496163786668884889476937597041913100670620557859296273275979799038560375637997153308363571742166930197254540145187317020479738896101084729483471000364722418471455108998147601210489784286727213367523680129062167303551452337924416885483511112610374197836587685240126733315519707223367720591511660786717902746785706921660062312123711699853438096814079208305451009528793242149147277407449053955632122683883714042717450109028146939057073395064190471238640178146969794738233750691538128244267451556916411987767094942154344615222736641696789290480350364851319374203628544702703828049995359593427440900706918291184351366569553848219637980940864255699606460263200459002727826282750248606405887559097800679689054780361867441718501179003808972094686707803397725338486970191777159832013774421604455243409639406566224130009679415276286122369097157900006842313760919035563406636152595893644801819299271992891150156168752994479977551478482008514658672059762820806321601379440183972441490578924370885612004079559170218154231225767961664872432351007915314752207653810065546447432289863471846261985802812173435455522465438867478127249864829492045807372574265160103888038425295024877799936917204099033594292577008131485252902779527954238591751141629643112159098073292574304116728746202092468619450828710671659602308278009763751058768659617743407594103979705046550793020555430712718046921680783800022184940665938927270010970714643701651664310677679844999325524150816052202622146251693682576282163181789051301032809484903389802009577223647032623666582749699975997034830367791302752819797349219783994453662200541618449876947860585997890978822164794849498990548142365751196024353092134200199451896876283902085079066774736145127869854611697182145286681096728365443901897432800950343154622905578151314042115954088080830883468944089479308232275617755568172874933311357327447771418259275331910021293119503399077946400667431785134632179583154317406553841817477441634772591936358442894203745255695311383503971794603021273942719955527316584598997077934510484749427552168940449724944486360790474890099244431382556599080944347070900484371869780094402653380686448152258364214926189510241352216378286786339103162839667477341315391641696580919875529032518384712425620583347331131627263025086413046898509460875052264776110122884906613725032647286290377099889410267920501204109989968642966384963385303886640042061237167272377604530119510323190114746935059816789812056629540750977613676757180778267264560376798241802955352656868953586354953640390027645667312051826637021237592372973708794569118101906172575348841973076359664871592740058037866705393474316784906893085903079517860786275222582100408298050290590700697528742142340880192004158247012259519797011814557373444480010601773265864058399368139892737253911678439833292039267804906441700315787878914268529117777525484720624433546825282724093359068707000968257715397681193567505609972290184150009721979229537832126110149266727627848256230786018719472924073381060689443899498462311658344122047785421651815448485873253420322199795971639372879761625205188515578175363672698768023542319308186772918021628338097448448188268369409775105671956470985328475304477675707281743207601616400131666816007041880077105699812425418694317388230178058985568839149908377139644154756801835990105197070034545705191162750219088418148432537062893303209515077132653416198687449848090352734701078601962969759034694547107523682630171520343851257819851838184496395994580027889922117098828938911734366185026334449702416485295389362052338505341359903934045601801039663934570096994188200676075116821445453268225408256906090703115362009602797079022871181842158961674496799407311105122875491868856130320657368643648237048082793863941954714645689665306700143693704608902606113887305099357380508146399183924756501559425400666131419977609682705830671627870326199377524774176813365908533402782601504445054582252980252754666401042090087787311531108609840143947501831854419293557368112244361868656525881381474527099629841247104803573006497519128455026923644979195772003186030147563416333700293143297167984111751980634166470390145831101640084957331091790439408364963295354789731295651848490619579906057267758440932347691395928877990337289640699952868893607514898491325841175818536617613250339109406109023911768163877576533681442872197532444401969318538198021752191285272873431974323861036075872323142164963239290394381387871551372019345721709034758493673326448517911145049700521650209354531666997002779661869328247942975063506429985608365208237621029749750218170245749398559992776586357372627032903890102112769135080586648383128639163749792478295101723512610142032035539346412721191837385048846079514809193488127300068608677620706186857040169657601178664612283095131078512549510097525758931302714992380734719915777491876058823518218026158307199013085497768781385008360555304817066216996888380826343396895771351105369246751997065070768136324588277758550667394501219400315139347500683816939034320574565782630598052192894735320247056550574331553200937411647350437425836092782350101164969894746016185732415980557462387220405106801234433669950356579029993748484771826273550561775686747983382583121763968475475974590999436226215752709963573761391159049032988808950305305877742699215811329661245870238794948590462556397297919952638655369027227906597069546317233688277675155112196315211685965375688726025252573293901316830725780572554151526098259453030034310046868623299763528299134619712606959256490430709584576914991986482004329852347539985129086993346352188535814241373605359644416977552283978140606672102248414615443808699636815109836182122731790063616835811144141931458232024912668197939136030749072511460884803391724936007214742537925851833535188922752140759911556636754673834432620837690722909757506028408819243334233462597104887808374946052441685551089201006849646665793551553828725950498988402866438791449261237442446924136419804547372576494216792302041056362339879259621592603950015657074909107988757208360550328368370287405301241837547227164008222575792247214271832080997056898726811084892250788690245273385510242994669990621484579145637557566250005097728351590364622420122369637625046717337337646172776154877320847638053285049028488226386699491178926821120035925998882553121460906870276791055710679378769031767804770974949237866331884959982255532320435899708183924025418618172965889507236371870069705555481843136640743395850696703182488244936773100990157555371050441430738956663391253837525413225557966190292395665088302352904752427988827163229307023579943496847323672646270474855695230928906889607515600313276599257172873559862317672853818025847900136384402234781191697623277125806460786565033504712727379709248850097703792598708717117685181801089762895248138876154278045509888327725892597085970891160837937387448603256312690697601119225287055539186619623306992019648580010109993442235169344733721090137031687708126534498617716260319616306221376557314246968232174450889449113450035005476522455753084567941031972834418435029755418579056211480521234719082366285433034365175594971477592924172875992840532497289152061630765266638267488629308416647643726047738515070260689149413734743814884366671989100371328682664112596864188004474619099006880889546121398267048205032562496987525509074291614652583483618644186976505111748921703847107651039812688465972731844297090425558430652262400631275663299956066428831284314152481014395258017914802767445694102761630408971001639162572477548665869875003664936554318685933648232339569085837603843760605510785091528956147718459753656171955083565477504710092684430140156583533143809439879970787515479008244533501553481594883513016583689812959980717883196953886126599620160338514222072645554952431387065378745862088786111814949037272735095375822632286317857110093656487558242526753450263511873992636218964271797539005701328194167591740226026206074918697076657931901613122817990711351351780949024496641971362103888076950280455893274120626642454593052302922571141541747561139604197042485586772402384452396514944656031887210863380195734486571961673591394827719311201620729560189013862307387344495662491042040096425127760612609508043282329759860859131820692261399755645041280438743363044355336839905359354106512146674755458213811281549745256750076105340957787234899015157604309642320900343871607131759941413026822951536128941984162546087860161028882625930288513796391871367489327276913813700988544583783174857920931671203626030383505437387875643134127415739872394218799202507396592951465646843424256350797206353705910876242915612105831182432760611005401948904773343499531092459493760183035585845301477868093972459882854763840797368724393271979818186583922247459339903575149048427835235886421912013016779578668604332582856256958783165323616866550554641248936836625675809736989422609688553940982729649312152957659313458844521499197546421987577692697796473250313681199797913665226254765471970470785146165589952273913274106321600259345192416951537050409388407464801885586642523884868740201585558347784753604287628154026066578907510709872379797195587024771214515469576130049311217888312930564756921815228387925882016798084616485751701814622044782169506563869870244077781972799928205041400711540478185903006232794305455888695669536379725599253208341976669198523173452848282543444381425235867549141543239211555510196885270986621126959568960858143814822502475838552521623238964868787433208040663140408828252648477413439754256406473491620840007339411590636894720757634369180191083591867165796020180223609489653705335848676468042405174914711290111255861130180033948092820820326869259770798806329494768200078157857086209480630211426633594723654170477897795322838571692099509091680278445398178603170981266809258339551934880449112075945041776758837572936053501648582170406735705029217864816367601381020334926808220872129198200417230576130981105869572933408605773656836542244619339842985386813609822764664592767486594020314645632195298380308401886125833234431164874841319705151690428786799545082334225303507299465550553362350337296655148854857195169764558158625650362220379358668347261755433065640789910462903824968477845018082686952347862944274680606464658336802434626967701345254437820112252582693737042701526454844871396182122454211017086071796856358323030026459987682009467769905809768990952809985115191281982066412473137431768255210714259470058662441701523852332452482814161820103692137363023813956026832422400690519790526879953375760875528167856849958061204192858889890574744011916968412626804107836395682638654634013553492801777741442208448591991447200457142723372177288001887018883153179553038343432828207066360452469522243953018790491773785105981642342427141839008180867969873874636729210892339199796259389791298001484494514015413628974416604956280215973543967152045262027421299368317073915355061359850159304410360145633352194054562307719560620829538320723385146157082788864609147677037322559098383981427188464211329653392699662032030100637006484148965582640723097967184754473853440384911998634362342188970674058556243215916654800752686726986786830209923243085086651424742654702059835879675024718511896531644395603228900055751731529471377802772404510711943359735261089350806384330875630220948623190739794932290895765210740651220342191232582192594618878036140804598881998264648307391071505893841159006693750119332807402392171557940965996617794526306525660162028262726744394769798975289516962053561490075700524073572432712316101140216172315214684095941777040244156010651974836530608633606648279257760099244489104210293216243365185329474603244245683298647777751573698689349137761572299006853103201221799739660129555636260950697326571270298159787069671227370338968370317799394029671760558035915672542250068770832494331439494635156271343588481317915687613508517099615996530733123559010900532820468930553505431855067697852195526603655481201605916141281529608997122566213393060672454976968709956809826743676061161297654295378662735043351619647524044363217952054377595496515041583130715695411031213635539387128027075257736034708715360218700900086054723874197431485542557622555658197440736123626524859699276296558043258743174714776943239508274389992456274743668729919307621670880296518545180310599669774817116188511890126021098395968476964855588042912644743476043150882540889301614690149145574384738604633192783649057007551571431501401425642294757761379767524714402679290485767806072293377204749151457735502044234411579486254385961917728251398293619102609658804898646253549993192494743388192948698211377394016588618046573507588152779047562226692716679285506120677769164815414889148831083296543378719218717702461583940751653791187704389978059019028480028413157870563519962718647829948181516888082941928337079423227317326893566303330080916962809980453972765364946555714706699962266301983762668664604207765848797888576649214558356423701459626638877558678273535649470124893136640020068830767685859257504768496068848459186746453890527694928115881723545121917456329182030924872101578293563049322767865635836990455233197939153186466384126760947775897427593808672465556162998459115665218812623361224736318710199816513365138305506420273445757007842784035435367749150713097438745917865351583141516253302570526832583741695447225040420616501126465517686652591617190344824369424826243876729443584360701170897806600635467954852215943419903159860820628539612874124888516243431402116377173343323564704613513930081652658106648136640095401463366033161136252542820269937490625680074894207997175034544772302464417468990529346904732567126107316676564476197637045861703088540660979078630257134269280071726990928149936558792839413561965428084028704175025900605144543542189324814936016495175994788268458801909974880011090656000773800229924124678503517233040009726679426672906772196431181084203283727950253555041398443491950107554241034968156550466444204464049223743893631997646570490849286443570473200502873711924888739925755592161697496976277987361467233233298568165494209977084712568580324073718428041327625547320043448771273259582136832782000183327267049413088856127480105869332222977231883190949929015050735310017827270345503322204643283540512055396623107038061974550502987389210114606129355607683440373901898783155996517632774524879993818477934202611042089235415286237161844852491281446325134875634778378158881355322592501902135304344423363999188351569886189818300839603260361386930695396371736925321415399232531046389330975825073920125371819132204867995055556325660710273299406244103611012525767557446837896716016761312694451548734296586146682164845416538428761108179434198717833077513436321367119009116187602441502019405999212329007661995923988805262686299558798273817704124123660657819651082105125955756107171192084023342713573010537494060859691932967673885853005248396303638062477002166513952741092043070464586915920662295576340269550913450510839802365448242257610462725412813818363586250135732077420755502070019906634892709188320909938155064462955150629132628087550775741944121574629930557583896960339659885955582531512333725694595723510491956964063831489386524361671969421884183867848011226543882172908486745018966286217772559380484701460723337836413271860722936743189456435826071798622775289228078342621560999492873145535628477645105695799320975425320170543650808507198657418759969240216239482423203891378726770966807560782456321439661877450154072127091235444878937487689985204584377728241943801086180182499416041262958583263551278943840258673338447854718868879942274598021268834422580647193165262959208032377668950432083566297431152710836297991399606202380019190770871570365544169648563966968162250107411928259854744657013855665012886538029639136029619299976153304464516203655675585017731134742933571560405117149784243440304758028157731634258706617430904856956289454392144052687493322085714191104408427668961659273118672223468270274456339722432555227374105455126705089004120060764387438242218590605011687842313288061106953862592347833801512975521724133164232570452974906443318925456017649480605205991139273850165518718993249460739307105209061748470191512886007854295184401509985244091744051739981534477647118283486454357611332831114409027608413293232545169096076846474271331168701958589318525594223753645936655074847476907554661842907909647705927224937610543841573728191194292352764837326681979872441439327987079838006518806456024968447217772868226209363915126503747050040146040795466716515622896992478115027690195148471510038255009477972689595104018450297504469577735419153037510800455932990166997002992690474952594931439847140695716700292226577228632466382355683356191071705012575540619126589489668985652841661529933108884646719057983709166060300416488673605770044740086953307108001193205993219778563710895906568995097422276641081263432708380715480516573769379592716950312064035977320388880527013793341443481173631216442038538581034494679246421649449490181268893244493789089782778663906350634908113184078378624479717973358654548747881834655267730260272843302172558492314403833296586888472776216849005168224839167453290488409562785724284376967397969358507771040673918580008874477074727280762501351031735388273396272630281116718758552184335058497070922143160126022800311144635691674092543682171032322546631307453090505798417745191839641832031852916622223506873539304050656919061283392349204872874077660820254405340776802130862921141714976846140393955406024366350321633023360453604075787146691757294831932558042783831438553337726039335030755379589557937601751652193709749991374219578200488324412126861151022046311016375687555838228241594054775970541812519675285459911221098841802023350227123654642698031005892443468048058815716867142881754610884424953507341720364768647959525384594257715765824326142744249284948222526256797307769998923828760572176285712563256988144545358142777366827877124110200639593885037161053817421352624502372400103522297629476995514413319268724430890787611720912057685568077636466708907193839460531923050903813938439731582443559906789530093404754837475575039631807406725721971388701253507202201560071331595562443679161263184504838672150070117139195692040080294949766666335232148919707475853600641163708333904667801660351596949133953235758802591946488266311073432327292718190409375205322746342444614918025457889910684954210334172306319315380627922885223791253547435731069349859037872181844927208265828303862644715609565225757712539403359882716631679375539694234529526550826157446249795677810714485682160910767115229300344531219810690380174340142846819796695713970728784790774756253442776320221602982515441061264216632849069635899382790234214479749642588167101397034334352152336228376757208933051563434782555976170158860501494134177789480295636990107179918219239135842344318031674743859405359147928466516325752573362226878545426646678098918360763188842524106399513745168620712553463656244060020088026669458463522528201310135158302426838854538592102208959898808510253477137997232029697428977119840622318005721202755642087202202366645154280858507758355132336793090324340110036850360533918539910483631262013225156956209271745696471603581122717264523688689618853360845217896839909858276817369196111695990816470211572852440869511236118081954339090598670761325768581739957204087414701847648676333041139118947216484393773409268264525548012064867569385086031692442868398043254522936233450940213534151723537141562246138893278220361631553104376296712413298795028678207997439259465398128738372335661081356638165426657560694459586420092584486054342816081452442423369960742972217926400987807690351316474499127390780696777375684777450514922553746841832869595933180168988890704341459233559831007530073587502196577441390477187463942312141316861517581408367467704984427748211177575808604689035079478980152811366471152177823355730710087189190524831225442657162981010228069801618718104680606807083128714088872212352268871437955180567409240146812774112613576447338467900303173656855093293571941945914092000862211591516546359317346677284338454147202062685452832050035597508399283643039756877619665610355048608581292297129347102486687870307438983961479591564475573011888212439400094535766721085036345670855876496266652856427078128397671556434243735481139427727088878055087931440539877842091113830681659774686362839950638462781175925848585564565223415723570574021411656693190405682813367694646855702497885878943729991771571741747020965156706403922875782121922179106043300616475857368779599263258669481915567278767475835454580530186180855782781567859408747096586440304888572658799905512026946485708686807528238229329123591477613931885106889377846266213219510262707665595324697775362972271069798005822579507706581453987696534031025432634713425706888626306502036508094002127590945384847864413277492163455235340604821076701499811227749630339676792688733303720667844425243416447828689547816409437962282982807221660794563343079801463074511685568793560841986379475976960670626940250473939584762293716466076954644684761805870384831011125623848009553534947013888522866188434877788739180572436805807303281657071923343375087992444807903587739608579791074765901725858101293470257277273382511126076791801438509991564301189854941370733976188479090607357182492085714715234905908609107509820185237178074560116403416986347731481920301434988064971542131988189370248020411275277381651378250895161727176213361207839091800204893955858463459543466794168827112495677705227777359240604676620949671011905841228850396188922418182475738254387443107881171520474650072210977133096287726380972236534663890583407772232202631142637668447995468329090576262294999838861221557540484282053645673389932543514216283511424707264428948930061956444459888471240509485178727151310645305410030792321658575376110154628855714828844064237688696421057612610392587335327676080077538251563825290366543636879246319622417340607773833532455893510386176754595118938215047833053021695280738425709365318060445163084409700279460764320793369508939771161682684096574067289058028582421997165170628596190148077256351045181000322174427350931531990163458181442183798214419975288343768285234779670026037995102749405915163243189738522370994334940092856766119768099586528827913517072389718700403538185991202004462063882142923961910118242815045407759287033003160374640962108676305583734799065137889523870572056730468865651138872274828822484107101146555077373764678158241898884751302767828840585533502136448509391154804368023363445793410265386065689607818373551508740650972160387747804632461813320934531417995063267269656434625269402071341290638219568954078403378080272526776855341231588111992519952292295516087738004330170812536915418572634074164998343730259453376801930977918176147314553343733605104407182943167704672915413356742101024537040089873281085153979600926203181119857973702678061682191346770209964858060299318506580403500989267376460582506641837220962810152216284613156311054819171777011022142501699379345467127768829389043899606740820554377431619431913365116698094136865842141974352460739403533729700379441168968130182961122312401429254358582170143309891889949634750738951822520918257517327103866049178594309685932395236159128012508014390085442037843943333964833183761443389499880352659128067742257802014135456842857453235491307757463315444874924726231911699644664388426505357909853848460610878907107703686511890539936517440975478090327933005034911210581204517841055902211273660462129274126810506444382742748476148295574240441918595663903844131616765106869671308080519895280367860661172409620366328762713144032279224892193802254254647099502118317059693981834261209416901934938007438405096307365090362672364098717871453716086460692520638324233650142473764964835672619255686251433139949718210978979586037001824442521501784572005671669963247033394403340767667326089992479641399325608509222291293913022928277307888241461665563089364861811192677501740905574027311566023513462429231200165534277624308177922632179560082856057323474660223276375888822628772196985891213618392362743925989048346709206140067074850207660312204448320586599308871256102860336265815937780292301712486064566079691732780179663958605352320677041839192758263459052721155137055516417226347784077549400657636873513912797095976471349500190453789510367519275324109723358038369229224282722840160328584491841809192386324638533681396024380681846587347949479688169781588381685290596120829939427492061329241029461970627780350389789927802299879706037402990364084933277542902465845348447702840314317955269914377271442768995947759740249525516044332392997397933818225625242543023576542624580968437715048260765533928852320480964008160756114490987558396192757890033757346585544474384487804394423123214329374457066889019154020188509798112000192030750154329509056002908327327975603264535870197079917682841078978922477505521211703454213092677019690614837520550875780579949154732759731970171442668689938266770255305525399424102601140283522324126480156545183683541304279299665418870709582492768481885228416829459798550187509212140435421995551876902001234245536642001235200939100968578491205762003303114977926152265408065374157444580348777448338228344302163062767594802287247348795804636709715286658798602655197806081462300476017918776140881638016605044787724236954595623767597673132770290144407238248715163945841691476275396701687861670731410606678886927436059937917206777044154855472370270392115978903449066663908190639675328029764110300939528990583587600884123285855687983638816616884287078549340987928461351491169901099463726860919284428765486311071824032421498137233795353923572688801933412509668739626649312803059800600257784406831145564752255231448747369005299423618406645788856996102406269600820622086398912888026767374659315138702223764981621018344950781092720886493011358267764665310406036093577884518924228866143815197757675930335638586779341960385065579424943640965255396850473137947731567288852222476404121352705490024081687041064908343660200392094189522857567900977256202669673032046796541310065258377290944884028282290240749061834236063999010979787619477825783807251728684479837443431366621807991676900884730651290217926016367897613461274038573901184635774578073240059977564441914743975857456967445574046320030068721569816123418723551153674040381576295022158416011363729720939235718288309351261448873278351443718511671179376556654442134380171802011622897650134505948992515034134728316461657494507098882607424304064181245264581436704990231308203379219084759023122219341313576462337553403370939159720245012542168472839322499976559308532240806302451329936201375636071397953714122668421051780427433599992400491586505838600844819352614698580953597870505583971642649971202910766322701954590602383988431439122344718000507992842300167971809726133787546966619389280836762253426911130020835131735027041863610079344775036644476501284589459468009463855587489138423039813219074223842327209515876994360504894750239346296673603348075100811700037564332533411908126719715144332049653699146776595256863094442725649242257872840879537482397871473461389324129152634782781977454348936314864941141620579217579779763820179075569695409178893972823275794164100571554121525037275728036507070409159341237715825034197419175817392535736184365642017966412391901194366190136520585355928301976142145716928468111686737215390443156451878339469121155974536145753227958236152720403414411475349015345262393306618761987794200661923546023019685941998466787986528940192292080177032136335634363990371635585200419152284256203601461015507688753435911250277091267701311164008349615008854531185172865111457757087406955151232637442629845364034700094395192644567491231137440010500527886257358988413913412780754359688370876857353304821488857874741274497719981074114023459917953627350781962975362695805364088109929350511315493750714174867680444577070226450750598760555396868763551497436222623600972219325738906351486773261766979375996361917880050471269324886078241817942299400107906513187353715700647248825653897235521719685381512957964959925127399742465488217707194971830575597375286071359756426273889428918351341749561391041867058941127814284893552021324144575823949068124223225982277281746698100915656864593079679995657683820644962429340812327876643786323942014950680456835226120768670116967959888155083683398654383326617471477829467905421581433538258312235520934370538863959408195120801705172335256514208554830458675280319132993875071180330773164109955238947689000300474688778169181156841384837816623881476980499266075677682034401743199381706414566797900424842122927511800235472267871491441048174190174403603277407412613664702807180227744400591691222151012169458987388221770593352735535093294221555906332738553171943197868031727593432039116313680656659860219370097026890748925153530465325740586311594809429635352091594045455755435123718357310075310541228796371447060643840069248119141922705422622038836067287519322727647682442941516171122757373359895186032403586219513512232748934048648890534203628690640501723797233872665052874144037202387904514454939717148383658067881086472686877721064310829596604311624454534953899726587252966626780535142902399039046346285665984017476957800959661777578552825177316473640238909153627679491781163627469866442456720268516929261704898852428583865986636629040689392710948144882907311680300738298532451345845655139266094118334341010705646927123652798715101554155063634402776322395040092989161662515391677220914505316914346507546866125521453501490177069662150480348419617550732539001167617107824563396702882588842430396777114626530310979753596973368288258572538680524346108665343292607566248876884871716946927669349557238442497114462481897910668924769184309648665292381838334149698041263265871924688727305999583481621734682873694864830023502775111902405304755449583571401135016421431138329710932230997351468853636996355057701039775780440040456722649676216569201470443796493142532540049498507799842209561493509734863064981323120446204139260328989971962946210213882161483408907373585077073982141115596665044370290334152274652674337470537878007650287101893396933112597520743609480487528394609560122204520217409902877572505820334017376139640820522326030535861425535938223417945197340998992181087345542116635095933209285441057459012918494650212050461848070126710038759980461034126382393748513244742980589581815015320434984516635553770594084611845267744920221863278641647326840335368347280935823879492124345499379629626268428937589237213918288203971739402566003018176457350411230978714365346275443971915887756689216928705162547061454054143325790192726052935675170249237056201259116849366152197570463672557538773547158112681749700848211311572627228129553138874944021845198049749697360767754349553024128837364666949832502971819841223786672379114564059939064032729273461609939295691050493831887359362094716257461821516634550836866326195857166400583329731817208833417486485461820179349231313118398313435910773931912694778011777364819105576364284465416315092724678674731307961384324621094260031186125736400553662274624014335421990094811312876431098106363858219995008726928444643728370261089725297009797005021948019398051030338934397881905361586118632986457632503099071602360895030261428179734378526555065865583035621522662330170273984534969863881271478590063869556942687308278249744557000125763427317459530336971715683654591135899661745723196294601668429487259024810765979991206695541445134088678368174437124548885804165109603286740462553832105001063472262205243022557890102501079419346982690534104651919239529896873860933692127410993822227906441019493896499900434472315299161328912128309922902582529482488588532907568331843298643135813667423363881973107117901201988840804474392268636521077755361582148209066067926280669289169881677335026570177588319378210912894060278011676943609144171307448961282668700555467576882371078812485264831799878050504159970464519947915340927280822868776868916490980509020705361847499046374286323033320451747002394131648527714982469648137278859616119015763493268352810762694476903539394412307959939390302045413792104003611790822137341716243933470892005675028855681833041317855798415261904668266712417704645882189773761130879846754198714505984015786372643993066909260109771850990937487419761919477556409423090538284639508821769704549703449026178668259566387408765077468131920981030517454628640384395879395229309599180823972169094591600184462156394505895241458979581446295083798063063797757103837681769065536404085883369337335969435357366533438261934352671210354712220867224105076126633997273059315066801381015624853529440710019841254498311304886275658333318918727179140243953132659435947022026458196819833778493343463494659764855347575174900774763452467629484772477662437359129348557824523763215312923358561809585672324983300182485531194741007235813195006803989251920788603946844820217994315284389622355584335934922459831439031543403460889353314696983857601983286764521875115724790889631085024788206274897719547467726139077658576769141972809908949827081578718460081978305867505589517150373923267410101107325906473916407191075520266103430190134708922138600437446742225599124373051184837522464025461200305178059619686009561432787871223757129694519511823951602903948843522100494025489606514932742657037700235099828839505095854440514601660688924457156238174777368148474138331838889624621186054940417961089649626978037608463786766279529209851167369499342640172411985551937447662512159294656992531907873602729590143684196254999441829266326275663479652267997830713405882461590034793703955330372801080198627026793144559586396031651086915985849995927282128842516639423941805235329502198509614871357411432131817033091934443277778205009193679434166280299845069325710916542756740894585775031688200724621488266989673103787565295593228991365117531309783103907906481640781118259634396980534480571184111262762207844371696041195329845998613746855521249693117040092781807626447774571141668915774817703422477856266622884870896740896338769774426505605516936513147151510031838714007969982619600508020907418545949063867897062574841919150696479954659855238261339587024942363880527692334587000539847008814013066506005916133337423742941159963927059611252808387146860825530002212773939526479064611435008411840474868060331160086369427910027518909949393319149082887745256922106320981417756237014806053073873735536222401793069236831691544169762856195188222522674126725756280110416341307674261401379435417319837623463633000084125156724881622632722316323615610143609740262134852226340075720088684100430110127275640518383979134009302192451749903703083635675533845493946430085626235810561181097795087983508182499508218834552534482481232005937517820208721542581799813702901374548613592423458646433312847281911014717593966921740944304136937271656921393509333642501573351887538319224788535000925402108163261014111085783421787561465246874681972690649626156293370542037082737334668071212986086961441147883576491489493356222707229575550896995642956326578074588059095505896644088657479567034211638829574378966608890909466923121272522937268261904055532878700114682134704251218020201666127564876859326280963944551071138794010328084645414588090307309300766795466096572076187750521905227903480638480614772592139099111126193591297934855616298048540130182466324352235358292747421658868512198622009640311114587902782376022349130256512137849145002613771889717599252399778841203553362548579170718698486668161137685635585653968580141701133224066270589094502229188973800342146163096134407622712672810011677491398959547394228075737232761922552063741383945642585829769899828701736871309496347425101114314390689933371429279595324625211580552962331678542895951308667869049279193333487424468561552604746449770417144321180671075025377463360425506077891868214573509035230540307697125401239945356972033583388108853116045172537176287319043410447329955652193078385592308828861994880832665481833246197820681961037226704735023821257942241855345441134575780828087926957142627438597164104336947661393616689890293081853220780865278884856935285682242775920192734531358650141636519053951887668561619418966994473180043748774633420020562658386598458561551412150151436203617492938085070023746001446940591410881086350088330637551601954537004258555593407782907911155398657882384546193484063857790858760042973240977523013943405867878696106624685005821800430198230863521108806900627127097841337556714772371889251071810403853370101006884625810443663640326665014571787546770502272427966942467076129889226870324290512084005193074555766024518639363596174051081809194464020388489907079572370410559471656471943246391700255577680039282051134582954750091157815130045967123825808649263273445668140987468037118552153754642338475651140668749605193600680033938806800020215266604044051981258874943827934225895516635164818476738175397809689085631755261355156269923372437146682793968261323964197571440138995774182569027891337136896180247400449496672239112443635497288586280223979285625640934824316884879100382603043778748105749085857133075057596453067245960342088294428273475130012784747012824669498677988824977869303019815249755668936349420212626878253303692488060102952633591957128812120421055480731226769908504790239081742770783786966234430677159976744259187384154186207703456758961436984565216832151241150701262456720144471960477494754893703474009062624831486405527798037217236436342747177503212188085037682419823531445792183182734578986441490360662278734055476082529309049652117612886109647925125230577578281738386058469270000927549399540750087288833604038610182539029587581080536817819869671807984315079026060454192453665179328191053879282258734770278473352745073493550564985227996686031466231059365836460027321076976352692243095106827826179419001228561201180931693750372805385907477933280684280758047180310283187879550046883934069041607738105287363603078128349949601207806937182958367669276947898368369665101249508247864248606056485666162966315026765408372055090242968914826314816811340643140941794507308162238998241003194559861662104573357929585479095826353799587577164319787613861822910122035800045662311135825051682269640441738866778001093110378619302060841030649853239157656824536323715008966714394528405929309469674494370301167637521185125215630399055014027611997090780286936474448435398935554097922672307802264709408836657771505115544753239100590417830607402382922677106461585989245707273093699350927810383846623631840165988810756295320457109601587927728031517384455319940734084615694946472497106755760773316819807603946858849941648722899729861024917339596386084532978228441588498944424811414702418006996249733898517605347038083366167310653020056049637018136266432136100726516514090420663557435369726241579249023845290107907635449505196350628433680934754686860799005323192237789027064048406245720346275059726761608407618675663415055351902441379693183062338700120399090306702256006128874572460479482992269278709154671580203060535699490257354588661194783737912024474538682925622726977709547077225345101903875445654189032570917502959126479088230964627014699473255172973296948896234060204634497074118988159130328493973464800615996127820449847790418902588408138658626124581028332108057783355388392953310107555237924474169704036462566737890536834902055763127822303616780900907845490412481015104443512933892515623406797124089377197905772174496205541548314039795455125166862874031550528656714201809748013102418022844936979752413474174896999910362738389169138693247450855504871630468350672295886925221417572833548042297647660435787579701893282504588875575965525896686783065532680336317820690080960167908646468127365597674822635850917171490677893859528022566137918001442868542830390372513007306766584021174625153181672179180037517504602394560548211478165748011470820845424972132536520898704905735386376035166639574735745687292133331199552561322849131767495844605119497373879753858281709420055971254128046331489747225957490497397266989203793291572413412507884749633146726496256020328723891361730003921349019172885275895459759944624523665159295974987029532618347893389788319543266028412807508488872785170078098607720389624606222475418064787687991320082214291992073062694908824451758002064153447691993852891018166843346659801951813399620782179189301991944180588485931503622822999331067074964797444911154985770161601213448336760300398356178202915098136635087598353387854605110859471860551271544690139351528839409440261419698849125542281009063858074835739626115962539127848675819729154091127725503449521092161486500224795282199827893204113543035771506381737287983159496034185808544581375270734212424940583572282139174960706734406929398156710020523599779031712032424521412947538425865735666679087303383860631585782092244241454768905909879348489439639983892244847218651677488905853559870182494035324376084187267716280948468118399377068631937081334189365601737311259989569907114642979976273893193093661066947163035750394828482207010606233759037290806711545490499039776399173256715859475051835077224126815168751663894101637889700758475991218425546539922088326553814701205477288851389228223494362062106804080110401614971760758160075554993780715375039633250807038937025477306451580946957730977820467235592610628856500180056577021069160504575390651637353234530050853322808703824321388049706720734985594208540157758473587882096274839276516593741787855529723293756090215743293511283069603775618423113989353584473407804399109223417869010062577674655163370699553258992494170546542719886089260316380461691857666363592988423014265348680799343075083296541010022572676846935848017642463665946375099161013117066015035937201023406710969751899332417432759407491422689349867267392570297139231579602327933786667013770565307039081642917208289594981126785138837291149926738150768282165741843619059195509942223781418991422617807870575336065156344839259155123341190352453230034034218829762315157875865184541821487248858502315050084654640096111508029831949649038158251380397692917934513705100336393493289117820383296107279232941544449871371775795709819477292499120195217850875182197314730600630953473524819625278324838783667039671938463072543326093705324534222578467444791104471365202113551414467267053933941639356951687701668813522082916949950140952898536823112459557499777647862449938783074652153878429096933854387655792926175674105669528276987369655319766143302433556994398534450144255069145353436780535629674542871816527012781575243736670827650298248638100784238337518185443771822487879068305450334488776894284738760091075516207410707885816594759234249972817120428054096547928786093807789804324180793017171970212817694208258679602724865540217142600675481650295151114877255040121940179801968090726644776117201670440269544307716593300988091445939820633676347881410485046703233316035053781947119237909269164919886340183859149652950292396684437377508699627271416180340924447483567094081555625631840369270070955428790191803086613524739060847298219469674059799763757618042290872901408053448346429053802344385447831106378425899370952101337106043696569861468455525461254329955639300693593861513379399400048493126514926104919685627844845060181038883586988779513820877493577179601923339325406539403804389792470470173208593167378150177523573348567382552953222004348234842850879150827252141801642479632353045665416373958948944919573145832362120043779351840715566343876178150249594539028754537831508396150079388309937799922932978968675735114326670765743193874670512594202229900410386984088265616596182970950657699126734526799574438091601112331489297039407131498626123155641432188238700925518657221024650178347249653585875340528000765008562583349099762504647632404025388138429221857562582959432797208370549125274031244187877850101067841327759369853729374788352332049021052216655116738416534712860894536549038312544140177012763272661522962927353477817387895767171702645712012439022598273937288286255146194585912664053110018653338687881605249467248351494021884582045848737702126211571883546970108681606201818947779087791459510804684295496371891188396011338003566916670791616799482621904208305799727435439494909358235909111149142527481930487552066303368071334991253935719624513566056474794366190327451841248387890622687870624298442552384802167647254880958003088573266157537441536399259331180333388335399262904143122751126732605834092984025174522239468979457748953721958294671918594390764170644392354305676149660695737839672601334862582217553071832659002286393534369423106305977709800813934912186451975394514769976182600788959350892088897150247419396268690972533782135685348598412456144576474574445722038815247736958865222205222240793333227307644800249642189268436175667824433008817136276817030374223553586222514691195589864507686813159251059903520022674469449624688764592485810154258659877093477339599271425942848905327315159815579506168120002108334465612370444356106347587125103018838253818310728468737109600012237602807289234350897083691947603232882433440060000426455528198645726433361812265503678473571532625992283614887666088686366340993340334093652631948065521981233499044447135066990979472792455287617079509314117960499002094098982829290813119320542619493750478081363358022266590612185961235184756236233686696488394116920921961256093617482567318647237470633709493568819273302103849318500183677386365806392411084029897061060424895844054732197508449241017385763617629149350940026056669094597217092725920627275914361610030762807455930355299814062409137993801325924512630296920965893189659893212792840205769353694345303307706290410509279153095350100284055687175783133142259945483511775134840690711955884999066209538146724101555720523775833869069252357135361458067845232770377423041617587988157455885784985395599415504916290276794332371196570933732428140733573512515685026072362743346426383578580142117277213430957243842280883520929881450876582564979103242463971341976857564249331957728167610586695547484494706586785088454608924010239342647801162277263368319816557842080553092905299321304042637117148185537098333115864166101199321961404160586298013768181688316430695842694330579457650589533534570581669310369914668949877887386512779622824807412790135380730793933104959988125863358628092347867844434442975020599556509442312330087204111606626584726466662888906573418793559579355796312003166627127072991201999534136414066958469373986264314354450184316111919210473365491886079542868131431748472499474354717141600830850817069002221532628427190576784360136479773072996069983828762293101084644712926736071984318247143202869485235858978034616055144410644620414833918283704360656340062062317551945279044643770645716896315012782220664533755718048149169965744355825088348798607145704668559350304320718110281966751819633569232806316434998316275170682931263062581960060654376908337962699759935654760457619448765582682431747310619865887163335981702693008643012855748324067745046977345900959502787973536518005484680962511208696302405437709593830007484664861353548927087751627001357331403856037283687272172971866967309634423864601734665668295540090146268212951253284312480164034150032364256891716043051175281545835610368172423739140324300226028368322884897837957522016921453243358221243741629613450190852866805566063456061183434953235416143076253010966891528059043448649658131670581447900830001014818071832522451905626573599593444729081309845676403911142291074231693377266355826063541528048668094492062277424775710112864198090704244123086519111027540810103745575239573286746463656152718871720915306030079618657733953178592963634681334619327673129404255458232278716327026317469770994799338716016001400160911189315520781344339430700105381383285033973240383927462003483477230382468379614565281237956699820140962771355244862535719852044232449902974266709290099192558951871754920913317250559337807110304649439256950498476705891524010905220881177640591273639604267549330459845823872753839719196749361863733098411617103811417122820989572122860048095355085946556752854531351082299397232495185030849466700579444276443114665010801352706425529817063415285959659313698691901564291927631203087443601947633686017910103667143965169900025627227328381398730493915822372808300526615021444063584523865934764411558635934406211124525235817103924694012233855519849758004573887795702606048906560129276304662542877468190703398158142815915180207867561867373610606366580814008875679653568401687830525072751431262002917717674098373972272511801806100064523832760401827845408699779843431215607083160847678596913610420742878108413856245652371899905843671419059588747156238647604512253976764483429523750837611188247926789408971548729115769516519196742984838439483088911946378354638134265634340373293701216394713917384933922263916712922389660287527309396911006123351590565565560130191923603879758815493422861623802681114107248392678124702068128855077894493434286153147705749754422603251894950506453247687059811253089710490317269056789162995004249409969854701871930192162359589821117675739979155785279474427510585060315995294937938169156870011575038975283961783100474211772686314830986307309185932016464963234100138895923076829085836060798487689286709349044673611015605533703727709135660831822335112817174467913623097577107678214415978715191139155456938521985915498155312314371849219261805955079462119634737885477950476162128176977380353997781755467331218945159489246372250313361803223842055072660949800637642783007954845202649260252588092131825899641674219208275430365224390947253177363903191590255737585053983466483298536610123622745302576555930247302227452272631619890394918675964078691667022664176606539620810362250419321504593165511846768526829753416195269578490530571505645974261813290294747973008314487725258574907996399224966825212286674343989822155019250236503176897702475157533480457169067385249703962266199701346684435791349245761957795562154255794293665193715903224440720539897782139156712559926075707939505903030308515141758138976300547731201930199325408984071084000569587866876784911310307232052179866977358976012807886484584984132485460135808573361190088140164942054459905687676662288392546370552551796294982747098204984967364710773344797541049990804435963177351469777855489599568453542440504883289318194293474797256329053904387872233234121578870851613005033052978777118454723329184413482391665823341502047550342582841461053565328679154154358898249912358116316083238946459890879863214802201561106936331905078067440811962058905703507469625156026500144743030934554013822552089119208665892896826353860165452105150169667479018581406615651962737695632157071312497592712131509945941479921959579092840248237081417564814684351809004713324325579273532970556693672724259967520608137234054776475403795624161330403741757218473511911361852375071512665186509339074989445275888409178151685689482452044943997013996848655842225940866446627208389419321860964342809843603928439098608619929949102655060443470117389297233661453673032601357669531018696949848992237642097132060481463388562661666349210034269158113150762079888788580662746869830752884678340229130486846869637627757998076123405745521113474781923340238844946008998945966498366523680266143069013185728333167729062483430540396390746330096213446774146476911551211174856470012140264435814017310026020612774668581221741857515836339580893744453769286826326446474180983249443237771289671082066130521330929505376988123608783235163488834846361080556364562529293787970760656041976815728113871054158070266976438844132306899623621771587674675857536881732601226775806828153097566909647672991391096744208991506860249926390821464797146350792620319861235933350196344101507996629218197279649508864532394668014825296061192621570284534806688062023179642925662907677409075751936735753972026918183269063457986745582373660418245800247653773866039406874510295455939362954816272658844439459199113726994383972359424002547265138931946987344622931740523747856719600840329213256942556954910303814828824718487753170318360318260544381900729804856436059735728520549404010117643022622351907146937998268441073151609597839376661104120102514713866859718195477638734132685224437275255270821915032312538560135385252278158840908891315445688490262541762594112808082826407137735925393938991892975815584885404030268238684708134400648067382777836731440877332396123567405233639953725072122688857078894945404722789007504659959835657406894270861158275365165702878645678106793648936486658098401384156093580936766322464813379493006831611215588309436545244761972293889514158075859215356870422182426101016045985022780341681635803522837723760435398515162767239111388495010208631821174812967555353330786457500790335072740900359303081827206416191572819497974853081378404778277106888260222896661988217118599324026033443445303106903639155480623790685107226444916453330828326404092845682030986721376008092463280605459111724780400113075552122536678433105250812568378439908462863461039990521756196730431778465614842694896231459381801664369626809112557215296018727788234883738914737918250981350638537720402712235686657878473922690817398396874056563870785627696277777839992959443593586060357062401595043278224275780122982715280715614644741510282362678978938288332087108265612871942733122795351282294833445417492705938778389794884532901816819433831396422105873724959638529136796737443601575798213712310890655640783968844269650464702999706520641384066413398197981468970304600447183101225845362377362525654845736312504847481194314356089829307571142809763835374806030107481668089456659229375997668451004669064859418709370919403154686436089761150492443950808831751247092628114813799704974831969394988069453983982777304945752037081954139482115897744825271824811899323458270906772300929461316690388098712939495078913137453702451470837087819705492444354392611764429398131518079366834790712987264245409107427305811956573611750199215353794682325446372529538559201640628329929038248822654241457971026383538563608381146304367418497271147573213839955295363295447389713993977966474524595986868385131933335848992474137604464953239882126916781176429539429051675716310504178479398487040409462732899018995746157147942345382592580619628078364969988355561155741813618500387045687579311267850430231506149085181120905892458378979433309171341172751698198528025202414790990241797612978016291641124921984397681739676690544440667896201753739103024729941795468842923659372175280560054857333056116543992630219917343893873116525297576186177222980203665367207821457439867909789705453442499425482550214754432785853626622383986808578417324976152673876403274693600748753890692730273132770531932474053977785975056285502627972576705361434590321197524504436861940750592613096925441433279971110215837500096787295699905741484406061269561995511595412488589598369601864479859383280201124732637679966418294431214239843806312236687745260819067595919115855377079439182521946601621268979767864337726179050551735091095702066966290558333206622108110738021741287216150749788177418022482581995426909968985552022016039705135300532373086690568547512165881887276309949066149307980780099456772602251369147670357513304041284488926899199483829709139395993268661151238305861774049243190679612727726932770823369716599857277958103800764433563737758529560208239337715183184121642243457819603396145731475298195422504716966866320084794445236811126816445895266378798759574429592141012207912014464834854405624726705725810964093035828449851711515833666113473384333834519198299788413570688422867430455385029640999576188681091221535390301293809121304785108230610479240617244938019775664311220701602791440919232699112545237038660011049735742927875523301176609251652371965700929579129057975941213039223502619625231612974574701571332524183585488086512551264620919674188171802747839036226864381204830550692378339276478664291340009295877267549924219173598898497096239914604041772791927233245392935509096529105098720030692783917976193638174942533614641151054033651846174248286711876242532467176074731587361325059721237894472958778888343788963361062918416925168685639760451244304228602949195344137000398275212239089462168810440714262933392938156036224084646193434767490804433804504062143710970862114882744765637521240033738211921199395658469099505491391465114462803101693430231290194410332679802418824221203716419476793186954181423406603823619911735714977726755495479416585488758972771855228914136302530161565802986805995933461321482575545405800129651687443062926997699367689633453462728808326396521872913534029740334985221864514278483672496507591634492699045136920105623142457339141450894280099158109074957486752457068003508908819633724111854817686910818128988042131124931499476360397819897386022210057015762319845884964801740841176762703740340792956517893002706674497456042011216856513427250641561712507949160913555261952124197318343985069513218989831029933398246568826951671658675745661042414608499812958400819163367741097334120052402825999805447664161225817953466853680116014983072108608980867459477774385272325996835690920424121380021542770100716465292614252766341598581569763011681323053760312899058965708082136630531428826772456802849976600419787281768966219952738806762027877646813708745715661408431322279595058944925078057692166072852077914782524528462333483116734207177408152682341913421131423122545759654479939234562367769432853690095102928029961663519124044852654863776954361348563745749051834513519261594400166609919390208795315908372581670468814980668878681884319498862652756751830687790055891013016196671443401110838290613212494596799712660253483731928346378799951478740621472197610354169576561935006426570775560825737493205090453996930334401716880972347298743105364562219668730679754332564303309922621518913261782466943773346256515808806548850580775398155177052566839312501009281343704489735214176049764379424149321418007912959429936462702684293169644170225473830778309916467709130470959931068036341592885169285774832069640001328007183196313711016570205453543376608488215882767642892870631116460494386920204197506630852184836482603429722529110274833940655877179698235418707331340001303858207216989467212603638585488350943246528052738382570101442547527029499454296723126617314112561746285495702933221160224198359404962096892722382074766841888440828006076809079665286229076432760768772845447764165895710739696179847031853352897442462696432752654333755979997938661386289717875284421492915237386256159094043170783911372730136014918675917053185549454382013296589070062058366247445970684001951825288191925299606073497718680407211864159331841460509809728193485371606453786728944640488569591979503197154318976883105538738314017426832931265393038157151001426548946429501752819500236635918882088282356541246617373247911863141220580958157279322300915167132975372046439733272537042587490114758997614638407889098494571573066944702622850528463832765449944195344647914334855630994736628936561940425355227555277319805013306521057062105820918053855091924435553489663224587660817316219399119169191313986460997524384736602401330509155394322719999414671040870226319346749624172257980575531190934834221275445417479848193176343767862005845475585685795194884227976499823138776710847707383697551942670225350550530248861385102547070685703551659257652910720301720870088826415242082230417517250847817796814580316947304452734027110605904367287737051372263827957676530098301958783571898337773660617415515067372281212631383339565846394598178759115136226695931596683268841303540056531244864729142792446818349356752446198780863147862039288862153424569101288779057935682653079525650961164430894578022815911210479279371988172333008670724597753749862457686470938875786805336453575335034287195734252200864088301623920611435692445906785253118443247556370202875637335308993109089129427573925810749874272280980595733832762841319563006722669372347832171809513216269206260653153596405088870041165665034885593556679456103740279760714630769827036128658267533040207802060656756848092648748693061070336745387329878445444424923672522130379531248582718213929930257286444524922842894583121446902621865473479876558029229241235780618297139178653332225180826214129816612809194509835103305354327966316024529406749007903022258168055353278337502780011052425472876878249147318050286162927099527114343883897303029446876721713624082283024450748606743281490598179515756176531095451821675560324849246091519898307068033050312089263641238784267793596779330597489775348186605485804644429508993044312950758482778663281728053528724015227419676835711565902026301266343024198305667709007451247497111178216168384603888256813273074615955722859964284207303392068089786620034673984503359853968728170281164849883696149082546924636670264200455455019569890273637429809458776179431829745402568792695758158861712288269242351962762018651164800942526431120657041654294575156239141484086453946782315548440970621314907518779046762247847573688405625331887727296272983915549521966851844446094048219980268190149592797196136049379666578974654143650445462368920210032067832502810861298042126399157344385638949561497153908565935972567206221596138097173819774612798467235739747700686022982770538865097183600425787946724005764854948067614562909822096009196157347075810952426881601870511064694890296185602447958216776125527552345131822302860697761564493043431103087243667127159211096667501764731483023082900169093078262738183629111424678650747202352381025882279857139120598545913595570224134306761068583794024250153395532677293282782529843551958004323258656952779900972343070415848240136336002114041669149493743131433618220501717294439803349021580710209552361491160671581671742910185191158073682836625644315010624831498527122918149812371074152906295126405124749789176961324516636445436893564659168533340729566351817329196831560344706902838145519336601855290113354124664135170533037194362879782026725465620554631611759387927842074113109105216259989646362998351303828639857029289302778701652567845769318305986193196523289668986166484157918433373279191173533361638459230013170945825346422025115945265273057749869905901275148239040366380510561727499220691130729024087228111048626241198906607925243553896082823133907995506018821047747073818518168143716437395984288622140565237806484980526964728428240035194576464562077435175846796124144569501296680947708529615531175159459296394255621522005520785646856232682374250564420317606964089440617190934314956302627620557416341402055640834745781410297593850589288349888984575306759972777565492430287633057520815411533826101002817018808195319380464085234776573470420275432845399561507264138299090342627085920957676305600603340123569586879811868167717783048238206880108423258113320661947844228622366019850885887412463954119778302384676616488718278004809260990199348014767823831978783011418081458715327310662131247933569726757185446998816695962805771907814567488988170649395874777284498819012558001682322692276988241628490088572032023192578120907074320507885700089806695005286277631561759741504303670059564163772451207684908776160304360132880509089770294713154033311996321140914499385599689690598533274342142250108828983101442448788431667343986990658002538251743830999776698262086541506422606286900410819854598899364458557826401918156335360030992382337052311454755084855163843925682855063548574599163856176870291415567962127819206576730823032084974024280844174956790856432585891411925832510450328722677129634226100155349789379955128710279831976193453660354308407006480168418542696338129244337405098289816575798725476203795487132895682615286570086589324525651143775929570396738952056643840561104606289684386181711935969363199694588354824719817362360444689770340647456038573136382569710916027031190484823670609148404624009951262921180983514745919631781557896564367436620523774212109105179395136701186979644834998572640593045652324758662208732087152129081336492951062114085671469520881769316227851604902235884651505067976591772838264402823610000306632132712629820727323985727941830991275209098898145043825084128061127736109351255101367415638300720474407025392169696504715227222558531878258218501265714626977709570266443267949792118395202002784678502372753350057851297289088244934565939440868309874311927490179516457402366221884988678355830762718890757552099159847199261529105578617903341920627271331524717636835320106401083727648690132917279973061075062337823549015565876862701079028420337530970467216546422273757741080971565080564166228111903663692955352120189486323015075722647507925346564684043560331118698694792725781921923217081828999905050861781139387584104098358611999848844519463011369489322364335017461122515050148611858833734770382095200152075970499118000725651540209144925253032718651624868957496665185216532083161789921704372526857032218388147909111610901012820870820417046500281502857843928837060980949098571506444939968551950908852503519796009961799846606006695334261252510659271766020964553676076099061454550851048570099924776360277650321327496631896390838951067906072019887526625604541763358214389294108816230847368194154283667100538767976285187702077674259155457713771818459212272986720557404676790349561498181096135426022567421890487233942744502581545679463671154589611385143902158644387360656167729703517709747345221230640451907283962546440971809833755559424433451922135164494763902280267331188697532317964517754856343084288914955062219345154332104785215610674585584629443267362287024740077105078357474895121922341017590568175136751340300744506542009773843497303694861816255057601353907459471836498555642427057720307408776644069766303492715949609500936833803403657769486711072174485649383322571962644892738766700364223076954063117013972409011299790084608413821320160695611870060634727212299285412995426275960567362255234964640986759579084877733655501575105351759902032537723089304612497515440465142137125488701853588399586705799306063766175062769163570891733165461623359847015598939183116510609951886559648106421129630218413009606981643617013007638989910235736870886083716718329609879480069902240931591487642245971472711838368028918287291949023482655124343435658963062676131858671291168926752965974823157113267503124703683237936532992193061053920101070569017953128623530677366178202079182482690325412318436219367008989613469960240529929836700523830273498382111778687661059600414734961687798508802195628057921783137024375103234459774457080370081363269387698397712219722652355527160087642358672879999063764219192114034096164176362263240889911336156881600974679049771804699374483160631901639050404120453575231751899968229063572847893938330051077471010867765297213456844195735887125566536358224732732240856904862800072376956297465764974686917002783941480754283839364362047744849844307154210100477844808645113838839260429497065434943656948334815998283280646995012828226210937227648267217463105543391032692017935906119897625486308219445574237935430727862922242409842851889765562466240279630050673722633223163942738302524243996898989825138405826897007392150193904999909370401290032297036668465101406185315511082419967733819654419308502576862377970176576664954499334102141952918603271281659408766663512617474146032797662613618009922902795470451457911247416741299417277665610650903724016542128260786823229318341918289472162609889001096041152405274617195644892465886850649247922440625580875773841149550868603087833863615183202315053024307791396000144353522114310449082937455148825643380801782269457102459744927143738997712125224925884820493518295733460129831205040165841646741113320577817496085977590685002553266367424387412132912374758580617078659586680016769662230180816615017892504177780959635683959534031853625633913118468383902523215431681146170768634235063543309781147633341625143651761485688594470100283640286294549531172420101643998031458389284523371164483003213247890880392050809991074348691715963809299994167983661483973600120407190308775920539649930186939196934895179379751494355149522866442109777298649105173724841499189595158022484903377053922408882326755361157337895092470624007780239596722069879306677116697419487812674826831352722709618906730536263284338143592444663173318414175737788122092053190194331974511876332940289350141276186852093992549359695570316173321335046920612777218070127828897663230551224030657516596255216388084638337425046013202667935059237923941520999629813235423663646463907697658997852035896823334346668631860462911878896115207939968506615942298731385861332416810388193571487077238082317676709966646139377623661320259265571612804774901841263439681095197797750797559721774367448288172955661502298860393923587080079764963453635791616477343028083425433531330409770657451063234410508024002790242259075928353800087289444607357683776623598675554454928146866282926274340406171816758021979134376921625616996174838287643386239911333174085298589960791945555627112177807338611957989603450105184610664316111894643716548766086922520434829955397453168319313955188739528332767152032463254923006468193506777353160589116950085560693057833953300384530174433427372675158949094012851532036860174719948458139980779651294319607397783101167427615726273144855337165710909168036907101446856908140918145161221724178811684896820741125594941882846789419362298053436033129027424455237643422702214508209925427658460360168744604087113796003953376370542223456717194388789040817289662459334928192036127838129287884474514615433887827715441066201539289226324364584111424609745745428184601066110397875301099371354227586310397833337704817081104909639565272063900996448199239178377806259990938169090997976066650471961924176667906672876817631515534303957691726998542810500492380344627702467884211180885858161234289396525461855064115921481113467222489356506609187068622182738144714096876708583321042534388504584480832772429897931084288516751969419916510631764156795707023908313190668159364726150450950015940516481629674294302559537646269830834429926097566990546854144176761764205545964710746927839463683157213702930717713156929208821782461457145448971234839980869192656327467786041840289362324324539528190495698790170975928875245646869007015879024757774025024920099346250489265269576748304979207636776863295202938476671282734809325852309479538315215326305060736913310210905846869349822658282196844939884887870314074907752623371438621535312500736558084911054132247206864598698010297540244714770968224535101996888215262899214410471447742247366460724222281917370922495573938449731934522733509580784840286733469017445596546084119974154214318046913714984417753937638361779099911760171098062306155103890034886074903346896995238643314147431461212535836798485714798973637678544532567440221213513882307698458636749728543548142675201745826803099952023413713262412069248914744550962920189879843588920977924961224633403970073262859146731345650739321021312631181469954525357776595579725288992262296038998800368559299706933784796914292361654823494950818775408534354148217488546558848890878454103219884474064379566687889506351784778444413155743993514575766517727015701050740052716892960726874126916718515072078861687605494422600093930007563339392160807070049129167815896065824192976287432488550273968846497023809320890524524784197655735208488110097897703600733617305752680761490976489568918686905361733749665118509614031941704177234181454804134652064815546488545228020659241426733666935109264449973400280697041634038126613379811240463199799755523163471823591990639848896171333313992252013872766761397979881519742966109630004232916168783713122850557085848145096006673643584856183947301355635477190268223215113168571340910640230177597690878687575956738849506385863707588472851506247565243902580738969419570782873197145249825250203141858308999153879313185716967863980448733904604815612200808620843914855746341953787218961833765996455865273300602083107379132160538642361308250845521711624059012714577795949866472844984643050619390440912215681305607071152151656301874622913875194206555411047819523833037973993494452947653609461001461261713493937141973842846600795575839895556191280294798894388138187534291776237350997153682583217618417099400633683002366249393780148957048845496661016353391524708357470884884606285291654400135841298982805508577418477727730530776617330640391624825849875257598704285639109223055616628790610706233679920195592410046761243836708562228310195588776267035959443452361063809203170698032627730117094328992100828483573462862290376555487105195483558614959443220482962607796681837529672768311068011951008789467877437756414104416744825914596185677956479203317744502112078776280111551552583302039013906826191298131250726952997536885490968834504084883586134244255852645637108784494560016330321589462782120486035871256589139287272233679769841949479612298892052406750527781612579709759163395495839919394116176750785519044346588115373042468018013354428510847731913164552237597781010329423136604627756696064212462195800603260855582408162303312328190865850123392087993285582284008426415244799038380031937090838657601526947313269498460371110946324016205920545090104902878191411380888057099464036129748592955367894005772656186264501932137510791660251162320019317866299087595671278515835416386737329206476445693129527501987422200577830148035355548373605348595375607090861181962449386505740624350634371290950854872814404723328023819705069539127155580755949697155827086570616287327753971915375797321590886715305527096772479850489567173114300078019753919279316539239090936321454262612355054699683279004058804807202369783552751446192402652459860565481726780886035840677170629718507138346882182057888225168207737218853810701326775687875652209151072936191225062497534012339541699238312861756348916366518956413415781029891722694215981266014939790177341002857529646709932140491953806130252375515694215154969693881995641892285805464415508534621931293304952301621940906278747382570320314549771519409942197088711365085191539693781074522521962946980811049247655104281586210678596498547303169720826036059758067547257862637179685186976884800937060754228347231471167478706569575060084082798056001959843500122459112960505800216291645574274911386030413122664887481392214658648550592028444145892432396711666791371129458573127188522073750156094681766937880749485830891621295264708588697163260463836852656923135123113192828077970827537911097859204262173522926494195637497102442772674308141327633074940908518962851272353058865124599553955295003683859529484423201759721456885631765553052958435388771093794288193732985585419951272844687079771248339975196173844351211987017377028482301938501310981620052490366920002786152392084342722835787632865323216598954514462405748206789502301809463594688558319876041897176409187261664822504707978138374299906990837616435930387172231235340151532535923979522970127801352538930620539059672402438542941413315751713482491447109617073307184141276253372300512601355000305715699421418307865210522467120539766618615150205712620663975000739433145585728797229917626825595650295527560434385703469216486945883793006465980813819909124843853880671759378996486012338646955865980253957149591642707289091223521121206537575974068330656685162288431491744325583696303039620330765980119507322772988995183206230078560914661752160221788595650174071158111192684550042089490594226673345345881043822880446614574831110238210906315107372633995960597559394227445882856993042607445907379632474883251058860552617355648663551293737725909611401284730683471407501379343425075335776166243621344206782945615825012629927691901360161741790009619088663307106039700608378753171895832815212013198183454448634124954037299984713295062431120864529299916921423912131166746228870307385704397356173534920752461023770592766320879324010303079950090035930425001173673545622144138911375093299661637051422240806649285062742791738836251771839612753682308795139932608670894089638403954950360943049025167191922050366290920765583617311692418857290375938794522625858853440412701374926496375683826896113750585262307068756646119960669221164036150313361876098738397379406466367774058294946327558940160764159747738328225643940752778180936523803613620511003555426102029229748033386763644592851868294526024722943313185253441793176764021527826038987769473425893636287715489595264147309035358892366556278499600214072745935689024218161292563418228104380218046462983295419521292677652394225342546889411042337457150783956088855209108459616714071021722717441693520592943863732281300570952277346798504372555666877687390336406266549063598769835091320774879835938863746036667701849753229569366862644218657303128249413135276246388026210097281133950249268980376320582413021878359918005151307826041061034483833579008490330090453519292652228442786005157458122048469658918834475891218412354125208298504023281725768664582208972026787809656458361887618471153735483709323009586795461388186941186982916659783244182276379930029467029342025878878175640217220357147729833611462658399960864999913418612480821545106607711873741863404734810448427495441837945487193561632831251148384188887844193251610189013969748452642533894935018944676589839509013996298152707390886143532274670569699626052949501547422730816174636733646663161757132241780252685502249622725797958209133582697897550091817755447204952852963722689058719048965512103567857118084880688514302459454352169515520778499738755624186326982655737620171340650788645139010169545988861800014843002911859922090173937364477594332657926441418464659347913966401403713077727087087579949396787266359885625549985670833235823043191704320776117917943472098076939401922034983931030880359840789936007254726038059926848904419758345144935303775295130843905307494482340305593635671553209231542919298881410962099321009587469037293242104436640162816974969451950509273479750935968936239999558940098201821613834231945791727841241691989545904219183174316667603398966403755901891306019505620673303541744794883872507487206575236515353802197959538764322542171809436088588539452878523323069404739521180477577631796098065327411452951512161056860148234700851242329586484250867223838428952679080965572225155547168565402123176033462254501651800305532294413221260548368540085713403333111057084012317462696209316995796838528352755158329136378835533228285822646325833922780263989121648752380891756604110075846021302380524311344597826014965875983771738943156456806853506542223309292252300889036619671934162277215461119024064751551047557340379368478051116446793804808130478677037074096336449631519608792540903659855350872246969431860006141162040841321131122640986592752231658558195732504716465154197527804572385149529008605109528638089058221293036045568577304984620571006738193302654649609538972964800077012144631570076901862727392850095049142968253771361831982581821989254717573196888700340503892999978514137482546962522578086340914056331160496457389434284745505537253388151706768138092941061240212187495937796683592255711139541687555947933499640094124753223477754974666016527805397717165569817574434455337035974094634101278046857941152160759691530713900540176409843554399209459503166048355813451240145612860259342180140856476604888308307070462831133383593244243674711670553007339509983853443911145149866586641934108824897217426788770247789870941198982897990769501823254217662627691649427640625750333172532667357009087904738724890011572718683224415095212408189588736835376692440457928838528380329128939535472726098817953713919057153366537183359712093348532540791835987218073150440504228490050994495067497778281079097336284397988519507322763457431184647758081864530189441042371014285851893284877857193330127699683992687602739607611219985588589253113923496559520324186293034551462201564475342811209929404758005553408261998576274179347700159111829907536428354333897237769787709577602604639086792870795692710771025279642487502087952292784902330822377794450098535672014686679442489575042211536845589023050486384947450351881019633254202940884305834191985230029042140393343413735124329779308822524839832717571197409600038709506355100915397142681327222239903531528766192158227225174019174810958858348292706414353804506600092630923536141753486262751110608841335118059744835008345342460590265367694099273018693500269847310186850705087516929243403738012914543765718160658133488273136098628586652524683252331960734138617293688820582015830079305593291751350970385199722939199673684739717098912561739158183815877724259462926009984958008429179393147239385723748245572809165659142261015454830745070385580830260585760411551399672297793097894059437540954152545985203947788130525436121629783061844326630179491206616499313299137016921874963817170177937259082574875822839831152519369986656909814774783824330434090454136533181625034888413680919471730655347467064038728999467332971238593432329747682853615072757540986424063128347176374669499198895026091347699063388631883495211384156275084452329053696438533229526992409556494215121622878850427279047260171888633294235567658269010725225667816553311362862485667996150955646133624964047565539160174243585413778363963177254132230899905690107487634339316963751694247215080642180164531642391423011979488067424472934017697950917263488149835396798704584613440005184935404259951552674406684348705435763364715186574338071447156400166575935826651829021290314716289745089262159423190227408235371381661493619760767189964799700402831376496608516202631808757746790857779463366983290892049285119137712763537468785856454687318974605983522422829440436037862567921298449113757543866118095737395858248612411179362993301377074441629949301323934406653351587030065208907362698171652469724979140766961541641823707787833811121456903048135669565329570730880275177594404308103442201308851061807048287572278442494913814721517432186340254859448932748880558121232566410300458442487722634687752802493365146911416427707946354415240790695754872604945644370361708810160737877603294283432420948170347873418132707784521363126667070151791101920853433955531880630891878147671967842873442793875323563281101481671109269848288070884329058843168439814889377363625048460174139854845392089192545871639823950721212025811492248107983559105867227400277150838309886977272454639754006424837441423767423829986831010259488146171683570902164735054560320731607747858778784248707846739789240437361836329977165355422881967443811591892406387936086184436586677211174319396451725733203774047573780173387708533968752728135850146146346901934534236286975998234476542510807275446426465993036841942016842508792978566611918995162171017311199820444752181365628049424480485225452390693972885705152080265761592747009131831738633515692726475152255154381099699935567511609172955911438056435544502962037936962861490496665175539829663458269610403056117051273118201666160514280464159801049881163471264532151656168175155926657745933096795961094632355204893903752530589631854608709862470471705283895564873657135009171458430682713398411755048557852406406817078632555756675141886158378158898086424539672177305681336979101555767172744219670292876027070434630300000791413097465901781823238376457211451083607069118210287529271557057350315149461636608072693025101451516382484772940522411027451256004392198141883904454531849618170290258679854498581165772353829755071737498273568389888508902866917052158128007720350065343969837472938183005747193363384199056325692065748281472320307122549127220261766443855567017823956978412511026033032170020071523137330962383647512973689431706536878300368916574443507605397539303733111378767401757640447633297409031714847023782110084800332796773942721876760363338589648750516249722466835127994410943793597709547232367181512045659905548822938226711429490089909130605690387102287048387019958951875628697659245960383676048404349840784729914216447732352975870800543842773720719318036531515558332888852793598799405298111839445918736209591130845808122393079952191937444221485784821150511627442675643199391360595988179916392361815111789764741987258834547150426496010735665891798713784172228063519070578239879118604964762341671759168101016363780573344345528727788863934082508672288476909749461372550242831037302603556830785921392341126233408233735610619333465516987654908362794375804455076368378806460750434909750098140462687677704597843966265051557495826697691511992262374370168334867997678922144715435985493642058969402746616922251652008577481351134643130738269769706251294323848984095274139181649956360420724203256604194412922411652361110850457645569895560507798586318320928166802934161896850876453252571110078624509866941211885335635197190012617466173150810475131256956940286992733553678145898912715955233850208042228152187371932341416574543713350593963013126233161345232858467134864612607648375553566190466025553394003050303287505877667977095270700196680399862661384403702429752230424663857356203778299077741935345221692354859444030609715492361675708488289948536898945383752234685344113830816065474411846653007770287629449334454897752500170395883441168552775972310030787249689860725639853938232875414498287280240536380104468116672623035517575268274638121806817465011416855979904132240237591549833810617399995576085898845052717138170663371081176139493687721178222473678925890832746517173484269368962809653165294240302580193152518415790866049784169112305368472635123077622291901571665798883860253450743481184024774299550651472934325337960142518377636297106081482753515754029724120332704949972293080315142554693587011426900049210841537725199493454739344511557278782673654331787788687719882422234528057645224578226251807035966456608219126588837175383967429344331157463600401325206645931569949614546449627281440994706458178303677264970797088968835482805230413685899918116073430704107390782224996230359898007809583403973503657165959457695819428466802467909889039084485936110984824388036296632890467977916180003763472147270091181800173780342410490458062319350922665322602476782226461778184566717157014652422118465100460222263850465020098903749482952419620903371662260570025598336307934334231803896303947473240883072849362968110327839450959321063756834439067783148857962929332033095139256145881574081953647906801187118494133382029413691495419174243043658926038551626520670426284728694159822064091548430768714756120812046079840880784306423885058292752305634728316088280648506259020511408226320110811918546181097695730025053631652292371836497757219141365373191890466674268905643504031190234658202741047807650045501969258235205419127618908036549430340541123498534989873474485158749054004226753820927213300118863232419000754587412247283833033630068566629391086498026922111946291845489802694456311619615532741059185782606003209888315517987153292724647232108924350462082718082026895248289971302886220996458661319791723538264576400081067968327885839497481720882165895323148624356720843279787149677766596045020411449715628327275465400524995639589537744730376069469065668360580825441375277382617954584567551508763924277513271321872611124348447982685252772353653772718030679505633728059701175588461685570651492435105199893627819997032281399731396900640799995395277451761323622973934752650248937382888980224923741227280528018021338522797282469709668580689332252100985955820479265327299023793462158081951123469626762526999011959374750325079760638026948363667418725396875109693499798869708533031493644309936143166412961325789645160982025519194220433508451172203748864425655340240653230406283431690058046859848439176348917675717460588482984865991985663533732408367308735683663889833438366419402033704132954034415543116872578011295751520147778323992638660635347186240560114901941279378108367573430552461658982633976842097198832098008705860448783760008868638483838110372542917303615320286304034126442663422203718311446593322902562468596192192730586412405076555311791073578332640254780199386614776635531856123160657524415446104294776616506377442074531109749934978629883541750945595667583662721711454530201852144354457136613747674937322466367320152384504480549097996101364045658542352507153122312457143945482649920576315158225831716931980151146435315518111432691582590687178208198315736324207794339503158849959351156322329253760404019744884919171848243275596849603522890131495652390706125111727490554465939954430925528459496984627348628564843553326141841734688569716970223267576920058517702810236915413020166572686056780376502922979822408860464388911098388009845561293739412344610304699163353008102480718076977757004472402921642727836239820654629954779615031524532839228242897792545430301220812987097930378314855009090493877946951314254390939410607917639278752626675931481668894020412950404477080101721875463616107879488221337196571878321330501779920737918605396658561360239666593932652205120995897367107550428574595993329159709688228832165128167637394919321900567345508573469698853191942019523102704050516286233705641672283787433406120363250304265567114548157366123998169155377694928583993161677526260266355104358477353774147220005334268194928684130018947377096551415001186642687798392328247234820886677447460019499034211646518498726662493475821861307774870921764975231470770653893425512690482068639527062139272589211458923162046032584612220581665803615767622319689824189907443125798069554146060671469093231755479562971000915800889606708531366253511591296069087007897855921748275426199528343084484407588454400591816482175413867582124293120075528964939938017712492493426951881479091354327868211943630018906379557797378084150834304748591783071033365162612039686074714428144602205316888615142362041635724795702500529258099907475535753395052226250072793416870650220960164710263193982905798288527091887701267784610271504857997799941102508052246214589064394543212412756547117725506701237948916158604857249449390572633792243326542190627517252088971159888865842773977033636726091373360295079598942105242240014120637155021275357063424977250417246310243828241943898701870233928857126403416536670946843942195761739450934911277994071457745164251307137352807295250731911370155042191946506448350936534233379475980134258020625139279598399581307671670576777080763938833933169067259210443875210958287161685432753436841618778569315915029412126547756438618736531655923231192949793301683013712034673154772682868634712351482985055206189549416019451593786381886487077581289099835995644809962347476595436831612503504914045734121183832949305698503764737988473682684394007343138821089011386741093168087804003321548844505619631839344551491165980537333557253455354221043459298203747445007487029018140455018961673126789028309360267800888276563963615841346754046639343515617555963991096622610936627984021819411585517886759036310986487606961495293453398766523461434094803987625580789976854124735419427296981363410332720740631020405726751388296672996240647022609439328598566302896437563117583981048952715165233170047259963682639741746226782836533819546106102724549594619057256217629805948220778305494281969935264696836728743676695030926920863889316998961755284945313727892998384651262888735864417353645615236245756332126950343910288414326826680099432852181303756273949244654281467111284356293598030402726747906455679775528881608809233467941171836126540486900933710711778598614305291440193354405530641249811874061955734624382701253448953081951436136823103379432214710519119319868278311101392709495903193944528537327334628641757369975506040502363349106787718211510973321575333204026989550571743854654638288011483457907004781803201437244725396596095282312625362786985666039304866496550069607842021057926088663931475267271163951232207412158267457611404735039198894708959687325984957070088584260619286857543856472342577148985168743331077626704924191815319874809894597734850116381803030328605768558135192610771070676320737291969577068194075525937981204279946725613487528523172396560455067700097672018476614393469439452053781917333904221641842497743840625658281018241397257471515384377966179975295700021783215992410536675079369572972735646695778096448050086300183555236690207441250905991954970939780080281605518554903725376021803068361504606789717385042698741767044304813897109075191874107922184436215808881544179322128621611357111725490733312025877878699360052144515901138393378703889705502786151996529007633062971546893381315912657642184754508557996023760769639833518992703500613118408710742599389632501653103300044480895488804452028039050295169492200920934738048694839250445418364963643510066708951273260524409636672497807570121847906802420882925103332084974724202879010024112990093679430650892462638273923663913776227367508824800549598605249464742812613886829824924553371786682557959282811802446938338199167538595081940277380652570464196037759682322874680577959882889634187319413456848698612423942818337486324543521125187598390516257870147182367039091910990385282382490889089327193405449342836625013976001584663847154906789843716634948218246595945895756049311736502166069507091331753357419822811464264661205164506687778472664304106317142002252642562859377050602760232673701536155761662477232504115975784699036918745472511683943273221177698604887412115798080899117593686434721315292487248833060004995516627552943961173501236935136968511632144843033181628811124615607838639705478763700982297305042797946915049263753927308223327741868298257800871207028267443122950803485395056365434671121832390366890318902653437270127527695844534107373218308433652051156317092621236179976075587955967137298607118941537817571572531579017332804222840392283626900129350523904524698440049792037572954435353302801862293355715392967566121443907779432367491542387461167205448947847661625317908430974856421290533377889734577887476940682898738479712077890907646676555253573267074501981860446701269480871116930073650998805274533109738686873512519432029022667306084983348964588489495415842413000470142988761576567162235645480687166136404601649244562068242450676534166697000959646147674026727529700023046366252499376330312931217053057049699821900070099641633898105371509403258824254388907418009855854415877948106305903139250917218561863368497643189018436379486817985207478627952455266776472324620435966864074740262767821127051339349241279391498749472066551158500570015405725975982866108200157219269883616986159840368684177735356520331701223868151394846124903190813774046367408886727196275693434961049801494429098512099197593002467916952984874751800079035045501818535101955259454627347898387835971913816477308710066250090468024754467879369831407440779519169243924535621168726542129772394863760120061313094225363055669181556034585675876169962301522219565498014544605120741024187166415597149802318283296720519728047796525307933012040750213829205461519613391245642017515549998999462358058953778260317490732161589485528821907855736236370728013016927457011594752005667662052915838268102199556463814972481679652343584968317470688809409900563173955443110221276130144937090054848100018626754217262553385213086480481437780977739285820478329168603844805342756332055958550299848666400167891689410818093765019649322750626853884863440627164126779807737731489240746326289061428464861624404478288804059223505039221919110991811469009601987195966465059392873944392591810299545175919752601949875601934050585826218643014924496465307083487432415847050029656669579116794410569512632068787901410976385100116019006543626385206291261175575458344282269501553835308192870295705915296495105569866262876925257937946960357578391106615114636161189224525929741473399367944793291752279942999734964000869449446964814368958636914808321151306485066262180617435578060163693160301666730330820267685851190014068002056594909980277234497290878018186606204425349651221892308396772444591015790277358312715790124819417920814703954398191776731006651508574660933241420513134525351289415492728239230220679300492183354276228977474643989552120705691480446975225999767128325897923736937197268424042114225482131179090960524373899026570692987185320361060109017176227048331195565843606228707376336643260029798593300678567670047206215989868453938428197135176960331188993619777770556919096071619724214153830481060448943956962293269013250117663437894120661083011556652869324056708111410022672684779483699362180397523552133130112920182822014516244787902230709676935182619256890654672399532770917324910190955428781704406378129857724374484897692229307816670253076963905939146661816231208195650871810024548374449889116430827971130865577753973878984892398039374728337772850410100258433460498571622420251847653682406800953493720952115828415957479614461020255986990745532851371064201559628714724847034325825238151406335343724562005380449120825986562397021007129143824480978155862213279159942506991107258991358685666270978672166837774018775116026038848721939313713469202898254980904197704195944126898520368438391013980154714534773513250376966469042360902117961500181136708210178737930442713364236721239152268706554124142536321579442669838580502846066011498552381459045724337213968325166373276879707232243532920559123121365688808366167426611703059225728368917346327627371565256653123251534453274969491929514520251691683440677289209258775390332097566891500787793708658015255445872235785330412979720854118001351132711305987123643240762706439968047363644649491909609576053058822538233843141866284313482635226044343612323434472434996613899528978184272325901307475148889796039035415179724266307876894540780714391263136785441351627646022410895181166174399753645680197188270834227343102817949343554977911215193324791489599122658187342271427810141988481441423568393949003048544373340028248304499434734603512624170829623235676897889263559542456610614056622174708554048776760496198987735779734248982048303527901468139954295045919205111063251384758211256887016419078299142207937682674602778897856802008110492930311270389118425357309686821861095383600120117710316306143655330234379150415347692134856185004726054282677195078450201726318230519545702971742568492171845613173206061085594588717215523384102201081603320212821792382803846412839266033150493029594649612849279835432949223325943637538674761499038515178457329925139132346609866138152454332827088003194608971244773612327943886208625311999531295444247263795669544894271188979435358667018796757489507285663723366162677349391104000702280354400706977940035263090326648795065956257561766726698415322234330565275248472153035649863954961451998757454968459115528404483267571244793928600823774695018778006069173183683258066857216720018531214455524203399061192410608634029223114737478355418392811228489127489403490794504498749647839444775701705266499141986739194390637007162356354270792030425607070964904576367936269375956704479913129356330435982589414547235223441911261993578515307691479381186502849779260872170205155253195641346847715179640229949911790087190189181071155554321318144414341044172759667190481520527745725428684187485946397738772479385048721800460321411732433862373672339828293809496365822957663932575542968682214449672528549777961542478303490580584309525484917591542632662609387426610677415976047460258263984837264907375211583005562923566971549965610879573160781851475187517372512832066275865066898413187501785123257295068753518935424076249144912104176445962758914301889534965918907108869413959166486485359633376855777299909960661616199274956342361245018966683267029961257566840429349784204292529815399554874196462152411887275917879022723088567490079247584061016438909111622931434432941095780781754429825287131619848532294418444858912927936858495642777820501933876349457570398520526526528427982039741177392073809046838600612934475294387961107869010926755181457353129287700380711682181949519098430916409299287789360633684562292501359091341099126315765223730669584047472471172855422204324230323722069997775430889024472915168158593524689631136658554381636725359326503044421556551912438418773485219359807250033673371528458469140509864261023156242191857566285012368394793331223972020448044075842995476812674113532998420503368138920668117653413012379733513489294207977462726655594258905615294192458791383473134923831607112466024194173480810406510035492624802446890803853019154151329369693462983187325493240442922896462541144815088547885401847055800535931897174484571662131550793388709280733810218821591257811568221702853113927037605569021890965410056298382609502896707205053834202325189087589286581709403480410650611282693926807355469817668095390225990518567733562662678689782689720641534456058092910310197881795653288380906734295597448070972071793046896534201093369070696777468381039737491043465593054779397682506217085392595983968564151417752157081798515552606362225538524130810371615827329827057495147832804473446018044638069630957490893024001158925169795905144869313652581016107316395828285898287843947585384232055129976616073866545708199762849525156204128896888922147093862178891769467046800051971209487278686032384860234165336518287913904185096028515630060888132988737787658161007522416932005035230960166762107793170615654858669918342298017632444514615934952424637168583385547344484861036849343037123585616137667246666040575522855549615049701128251890163954311509891898267726124130089939566783286115691887499928895112387480111598744006982841376056071715738904832114737038446780427214098595296478124082250449329117956024572228196867547244749025576117221491200208832137445084742883729452270650155246847134763233551543117312642782134089112487243837782562984752493152540217743824881561491846932991935540882656740793888625421002017734851073299970258527949119989308684041236877911880417457200489720269062207246489141742271479318443607391702494757252439990639387481784804093892331759316262958852576658700950925008414578010560982859524631902748579131156478556717436045635217804988455264743307311886031701658796815918706130525734318967220920748407103011288914710851212671682732610117611679318564324585824548949597773312333290295050072729371248753292467957695143798592808105520098800824595977064004094483092081607083496583184994429594386522847336046547788267993314966487790311568247749633231034561416684322102930595536919262424863788352964437827826230643111282169439010093194624078056610387991417019816715813238131601768531925455222091201343279862102614537001593580243043331310725445542967245660944536449747652135500764148071471615961525561844705611682700336239884770856816438760038460205692495248248647083827221400324067400339272414942922114078212003982921259688660371171647363261356808507623437287981470842151661662802960231256492259370546372334456767409119574633463487576664165090750052933973632143892606088944420661996592974884554236404266888962335634852333967188987529249020794496572453000982455338882534472804288212605920033675178526426720770221814938423283344229371226818612521551679350157657837596580159254744471935299211837967740542471876169569951728239751238961907193737215302661215896764868024754215116188671008361926922748517436874736366022792357878035828970196808036420665904470064211635102968057839967850492258794281641118515496895011658966568991545245754180225605079545432647466475862116375649388929825860803598713311741013489057543765693003225121955401868050773834676233508740838718198537385768039487797824210627629457826944165334975774491580101767304461993598098314167122160998078992602122248001804221474082096912592853942853323845218762548587062112825986415611071959710262530722323235997488152932408863001565449285636084863882863529023400453061997588993752326066641478819559624663583502422239781458616975044665337974014547334318303838380263936619864118077925042306212352690231910162049824039529158334102444709904939018945821492727714743641429248401480749598045826675913720148595145049374047709999672024087813707988663073152943869547609696759058128409677704415578414508269859299382448996814127625752803803077946086184406922260503121761276709019060152749066451174227372550011751221693913063647788061748351876836113876482142544531930036605701373826950087438109118391337013145985007562783425170396687770261501375171922037171406615186349916210901772030902910662487744821274037682729906379630480191270264334820095759081087326023670805735632696491344885718081065432316127752458012993311751056808722230860730519383555770966342558867243302665415357092338501860946465329986396607573034385365008980913687837210242142764631010469323048215645695655031504542903811363941644604144592977922463459113530649657764572557610041398909576649147419357105278335679481954018988724613967617484609413650365320871010745899906484164524643682555372102755306514784952997321856178389417396325041953852626032614426720934362589710906360257612283982235722175467790126724078558396474502024067081380270957944989372547407177563316148345019956927763119885963699113197757764060632639475285938396638746738786814507975857803865205922224936914386817652343185944949056808829545848795028305223852558894896461336985590065650460862729009861306252556026378760831181737449135458278828727479007434149633503164702597875430960256798905470657491029649738819285295808915701651352387170354674484623936027262499771752126385173084618010778009860602066956806841206822470450629000626144914667683440437489913707807213206610346299373430003494445923220743110688655039696545118539382576367885229015141335957873959688268162370511444135208671288389822969292397014251755704364276812678071748902928642414472359824613940902605189424380139899790984727794988828348382457819914866322074437258554421499520942632432815849110486666449713917583403175086168751234190512515084180449866813055642809164885144590513671705762384480444617613371370072848460512316772407187026552506538034727437512468464578439937890996586353227321799050829489497940489930759737960416672614331007528030979565031173737492122056622271520786391797149830617403430474584571161115864191097158282822394327899064329374317086189720381427172303971078215370265289043972542738048135148478667615264425861308531564914139091556920185422447474547540209688646061412570340006460128745403848297487304891409401017503688791218176333953752906588933127385295902757903871700494890019949951168483463943889002912564764638794599690220896968764527701585959046682882321221522135803377181243328262713410945702381618411606182287442420469079562168222530342048003430351286606480993190964037463027239825614024881652150082560289695557691310115513924578882022038700312691414636353057298393234797733910119599354824057505636581397500939678084750435951316697964312151866252021154201326974806534375553534286244127231307558314644906679001218829969347152314238898992572015568819428505180307602471664804855158807467407877131240338055649070511345855715973502998634502290296938029591190017184281263205835760546800127452666400118552248013409686738145204874586939456883023843104009648343238679124913955573546625606814221613989497599541851762538833592560308661218951734168587830554533197818913145954312501074320332799169490304737870993865458733280126443312080625217100993190213641427199409928508652672477174401296272184276975671796914920145323872012791441125015821339253432245824263636276288377886700391305424179799535176251267178688751940669064773681278022911614886427514417240287969530790603341037902428846585356691062472320330763544805622672495407859484662852644075105034144312022101091499676449962661363619203087212151207936157488199348502632425710056285782657510738309232912996035748907566908646869798713062049879921079353336918174021444482774556656493041730312881192602457493708844835799909109506749998654734989620747299031440737122027008500825425459041011552638499899699585075587494495052402427211495689719576058659729812156535435496382183196471620287937769050955201781866600988538374186510857341855580609983964397196817427174493765405903033952297464852781847125841979046195933094014392933374050157625877592627394111978552594973223214290920688828726848219750178030646650595514317738570720302546954704562030979129469469067763835144055046627860237267678579558197434863955267264962980252989648681318778203615684381847152256431739560314440462991919698431572551057643579446477429493647473110711247534163418980164162039264084348131537541394683060451221540909345214196570537381694932628234169577247095998660210685646546741212401795296868833751692858677615002817439058991624464989320376499533700853476056959921082493856723857596873407209869323432625781392990755772911249489041057706177082299330523959179689610425183051744440332127579813896180105972411616126766783037302324273431187007113324064247067051720676390095151113916640573290556818772735262926909064981031016095007858185052952503081777448614050208744867166211408343892182454179875108177787796503753491230218074347154905657541943038575258635916072426597162671963426658022156323189269560825149734677753711483126600365052545881855691384305815974604215468708111741925942793855027246638268083024861032412134639713515357113611084819199106179833177004847774687461764239302888488631704756577916563436626427710412506004641215099677491695210729406814528114148501000471459163381209811759919901935702803911815942246054886194736793723158291630852702361373924103871734692685925893820987738633343338711920642995244380726852247863594115027985412545448251449199849027768512233452948460361571159041430804428361008482657754991220370598929473246511784414078126756185366000534317227494772890638873404282477691533386355181781570822358667655773686153037323167880657959325712787519916361741592131737625182570770263903226856101978765529139883622715037843893783383035669844637758459806043554787259425987012328002705828250116511152799652327008515421372773958753656970150857212581019755664356979387202507829198199475793397811864825519727134119242276723129245266516157831428875921463822900939716625222121641642205806643916433922907252272752431220200094853085582514902109050993877480976378050484230398496469840105458231347825500234582923452757776277288173587304219555841803456789023016599802476332609923755694467536172191319676029310517844723658520677244505493675215521711896107981215112740279314436329476162613016755417821745653386749449211620955746032330044429150186967977215528213391490883861875533138192481276932379428749664379603780765108168921105611921277308120766131002875718881762344370480155663478785195515049941370120171480186280302622229715345926327251369277698207420081904043289474330980882233691383340599552104699798716074965466664420963374083125816872016775623676211923790705706940301336744181151572854584591720562119936390866851722305194810622033076748208052700058692092866530208360172039922619954559330901583200684551076395171051185645047915181075250182709767935449666162107822449317516064089384579339461910982798355346563676146675242685572993132922734361320618021509732461330494357393954781232256978750141071424202061279350798306063544332950625203916087712795492807450352402776479831480728707671758970583391856816925132895072804890250980711944441838763023499823521557331182582532312809417857750604174727582717873206782849244085761059257047567702569953482744924777517215286398453960991662516078981969650408612003238651862073870673841398798079179800962587803067492900987642359324997283287840381352084792894435922677743413801185863977018944228041530424761948318613032986268438855996563486464194528174503630287389965806304969963317591196748959069685823490071083425123795265481428613223287054894993342938076955101981509104859985557911607245824347699264524728457667724467405156673122994256073690540359048694873115220088037506982974956849322201346450321533333738328445438076341363202832870168571166621484302584109845437947206506406668936839402782802980300894705793240624803821272182063504765563504943283334977506451452837043954358155999620667200565045830487888216709048840191395038348103192172746212170282832140930743184258977104752551730110561284904419291805540128951051620681542578544538927411459462316678277702912190978680158733938501090940329288229575179383421774041643607525216464276199748546017116683530443630049439350209584020625322265851493514279300406571889733304002566496638757500965474522555570655517877078299225546014028541466900168750568197654061721139641688005690423026015114362818003335658195510881583704937497490827485101659906566038636140769453768437398361440141603633324548588390585290985704203008368050940097542794408913226382434112008659814992834624157313219986006486390010064125721754713861357730808495546996611643022638604502945347688327700361044288010496846293287562180055892878592920432843757664612585658108057227080315766963515398312922608448977144194064262484996496019064372745915753320981411986709715735644243134291607880047473174544585054990047721446448364792931387555241757245983016143582860005892812965981394844461169971868489788965931670044470697934034200156274298143477059511982402046564034544055829764288513984190080526736060299120281253890378317092623885334339863245559066895877593369438784909738884941625831410136752738529140413597616232124426239575936743461292299424585799927664954996926297617262175147564027994525181089902585706660711874109256599451491116639597581190889296929248384672236052335256870939607136948054359239507345907873187920320409156037955126217285550235766096728691456352427845588083427121068330566578266023262978171923374809935371137703760404556256621569942698706533685081290787423468627892737710193843805401994173364206346831549977499427444830540645675086415046437307765454803603409918752609709957705401176887656505857976979121001486953922105086910735609322458760160434873276249184666872995462032551481344194763338419436685431641046190239946720052308129905072833074528217279277162042040879809565230849629601407071974924654244734882934811239584792136802293473287910987703865574916325912988218386417149277332877605065879476092484823535547898732358359493285195500362180213277469604415033984698323757274283180367984441257617943475712918654971050376581372482037487835850434611349424100796338805879938265930238076637561754285624006422929601542812056292432044115407257478185144957574006308079101362861131570569421102941678320861216126088666504705418760719451698174763550050910332855566838695137223589002986062976563598012846384646939367442825859440210418233720039396141035031490737105346542398514174750213876279166970608833833982236804643157533247303306086645443598202023847392170839614546806661417807459018313392646966721726981471920887155598382627826236158915381340560827063674424316184287357566919666313882655180143927962982384312802207937492978812926069886790831332203262973266904657031649261154108177330933158958679824963530318945542997228345720245592730873105357898286663868864261246925939201253161637001854098484397932352935686705397452741243588893721259936302808489179044059279041330292000820506645562802489532136780967797766417557805356436399274725910694684648769385086639922544335625796061082382285416241321225231583979214011974918568685839992281886715747446763257151304774503806444565318962303804828253266347882770478575845045750868609058706112808047764808428339629144178370296629226003381946954872031620686207922499527705371091276726706852705202004640515520732327518993929474262390385949247661653936332862238632525417850472814963142807061188606032662533784976553715156337969228797682786181080755760491307785315640622272619428343911398926997100559501968860945244843875695960025460136005766206817129621892547297953191763996017399377496344274046951198524430267481360857375126316185289494085701200006893245824209723348389736200934810427842017401741985471027652186245779568107889614637848539492973104719864148471639288199034674919819492995358915099451457414671879040136828174954970175859911468413751446391604850446152507434466644610069417023036938791911427305652673973343885248637581299680720291684895104950959832997851551743059184407125642925561069173680805174975069569434439407985641124845000311202245676567128256262126068290139863626516429830697018757289783050542307093477944396160190398939359491887566541777129026067086098774375328048301745595976241443183086997696850491499623658958464742345450201036400622936496211215658060996188720675047062441131359522021182998104115647463259230827053583998952345393213036979339094085636692775872552817511887863318021835430009472527769963175218868541249407040972840643090587860517448006281060325473001308979220851515710587413983155798599113556587006513326613689097321994440966266660348265807167216610578400836541734094576811775988994854429081527028799963523166523814088759111231500856587524570606958739501678196360687473141025189159257465340740367485024959349638861987833600901366401117527432388040211767377928838305697645775703149401372913593441737855026162083508117795367603027559089286150012539537460685556574001304810276403691724357241857698046388514460690110994079893603681265833871512173192095694312318080601243810472828037969802843423854913087016583319516124738650594601481944912174685678097680794454878148916612185016812925947979061635891082602242361721422520055480383476349212380108813841083474062856773944044284611027022286141471196333841376726617498292830549896170342818124219818961137998059668323053649579921344542440159515022765731210694877874416665392571451983077871936246932253517047139259475869593798051602019647777036519323860751027149872972340106612942322328316066118225704593958381808925149353904345012159254901555304126614903483224289464154715615350705927939717012950756473995275779588899865483161395575834649746658201949787376557547512134799307648220350779034416687320604662681730818511665777240310737321756096300247577034602948376391900263450782042206352353639779046400442000775956704903966349594151354287897536067548486734321563822374990899998510701121100646112316725681279324466431257666836765521528485900559922566102971587100977878360637631894697513643133757575497856963436839161771553056841434526188653938594872409777086643210236246934173245622325487940066606815411129212176470475022737020319982113877559214968363310324052210729882472962066846825783687240045440063954678234992418752333971506619291676933401064335996446207936280893446494279841586203082246932349357092267239453148284003976250161644667413991118577723430782249893452489311639900059046190845333585865006474108105326935061704719966005381437042863187667645051326948790559217171960298085740206674362837855336562906524584436748555978119352198597216793165443515363941863527159198432657123816315488582181440457384539188840936222129723032419427916816731936409891681033900660432437387146680112419801886417999185155336991166744754282746830783833875930469997923652210384224917975532436295750408358578770308109094347492916816902696741410503830702319834189131798115417772735395574005461895581542231385306696563982702806798136479254442411832226694949354235065089270898504223080473427363335383942098571925918833471553787257698778790405186435148048982661092517012181211316093464108870561970045973252278429053105505560475863490681427519740235687121680906618291639893200912474820707539135219553577110723035487867687315032083917921403506092768438940566996923120952704427848345892284328266259524565716765798992388704553815133628747057698732469545435369869055335156060161826118534553656285665044809911363205750911820015465163518676868587502477446903671047079384028696453843645515404719892999738485677041679746016437694539503902686346363266765912657383058157255262843191917022516999097113722445965623563390920188557023576415178369511516938550977004718620525839504617415899886141380210570628779415194982179276105125339862173810300881628478207406162919056572816059015319631816471343925065592364971693374201222707725742424344296622978480511306667297184729967897725444615398060002236911972053148998312560321339133370273616004820812202349144154624138237344173868543558285601178287218795633680489806442707946276552910585128210177241355265484048000678214617073653778881508818353734210526316693058361184268772437324202171007401564987748317301303526863795201181841407440647145974847975732962363136111013109000791585979529672374275142620863827461652979146062059689297087782271337664770072418969205792552856608943689590765649399408407703120179170729939818441041340492590491709285824852947759042943374843844876148904487476194897933125916032546243921386091079482131109954935593610341885554011640074920888252280553591348655145325104012554365472681059395792524124176126286910538103003750364098368510717687942921183582202621694583353151669902430255329677572175126236470286377245526242173305589537850479941679333415808610264521717899752336084650829130653963629156074874495354006504354793588529761726994741138027758440202702054637307219615316572026090441149855809151918025427197598627312208661755969084680839693570726997775396493870839380870060110049076525726910942539488474514665961402793897407000003609047578500557925658221343381847647540098777561554825614023741728616288320350905248551297612108660773210818429691275496659639082183867219921099630046654739926904456402111966170800492681828418390186375585459084598535572144736568660842157154787161077754450473681286115683846308140332142284700320675004072705213759308798586759634038213303446588180147530558101726046366376360839709635203777980551031196790375483570045401736170017963731122746231911478411401246040819965717220768624346308910742600599895078626971843701807233249057549716093337740108618547586427453465477261563791608631175819154716605995389358946802333524432930374932980928282669203466671995177113898584203469385445138212041117839586846627811471657493181953072202274510992548637913133376189918351066949056313273499046778755200146488117075246061640649437704733249099448688974517097210887048884408537738436701011479007768702998712083373003946330803017965195708784789549089399755046192781364090450869638431776201389138071467891678166356374660147748217289048099838374397281794167805804985592059502430761853497821416964259212812823219905845594184473515617988460435060592405694648451204324260235310324451239574630647118318420752689098325243238748069788944300170832987356427293470549282692239783005105259240444871318002342653124207847046210929339778747161393248082898725593947610742466946292463250080314104294977942600228111676183608909883068966017440874682517908650476318097383041510845130200042481149497727726641346787558939371486552327245830920429082885846498276524629176261075984091333520394732985368569902567009512349596849485929553915061034417240874933194858551823906924821049265197938682344190237656464051477801000490865545418553171351766426639568936740673413047519281669613556482025732808623650356591802642555633921447318037734375407796800641172617851745243866330007916432566745954411638512525358002091817480364699140566039050146493315119800999968819332465366989275292503747804566837703949482232764323577800986359853678096509092626680150140010299141706060318071346838575599155335522800258849978358251242412605569637234326720436484598252269073723141435890900244511430235852679975916451061660258905785326821854601164270404284825215586813352210432998734514052223875177620509064229615382592849031661688349810578902425444026590064685215499215541998550534412160980796518302256206803432707690891206823712031244951153734289501285695510815672178113088500383408708622760354338234335914066013437426671979007963314756079841522471903333841223598250693958325081234704148726465604152457040860768849893162939100812885666557511100094382425228496200184908870526794565576111249745489769093276423774587754665396101444999202819627616407516180795200776604285138426532290229587791238233765232016216090207003319674183138412053054651726930980526893858785991464989427571961588615139521213363194952922535908329411951899419791446632811425694975971700733339064820033448749866300949935990122451293499061825843713023850992364445766287722302017188081729804789025020544658246048483942340598073592020608531525286484454164185351224733285537902952352935681101577515629207316573508778791463181957623515108001661909342399481183475724313172916223203603189564948427521079496509208690151705797491108962359659289912032704475449535753656501421576072576942570802840748425056641568834402932411127615614549876597830966109857753515780694381738663013509434770977806822952603671963935590573967987451010627558816695503893780386051960773784102236687358085732816643710148672550944802332797420109392818066898403216783003166603319093356561874113625663014501120829990910741817431577064518037719957882703059417471776528714098514110698976496503000899150988442571847175401243830842511738096755469346603252555810847969485774540000425949670858650513352023945578302301332872339950393467777552272157019146979198526927940341508949698870275506357995474589150193061409463685360736174061546521415464876763241369455371294137966861880677810137479078976638940147700839301201879590425717543793408362166303424689035201189204372801860076659448668517309507312182819461143693791937699008862021641572202058965713105139717814339818395866684195269399224099827237085016136299550027699226712429342714811642719956319500774720726651201722350945683613145895977407443439359086990236874023341165586042977237724973373399410552563447885485607651396158031896131565165332995181563631214598235303479089355666443067598570290262465811956346150760757916577132410314077562065686167790811076676007348722369222193012611321653648478062714094744749754788954609274725465927289043927093179036864144983873800611235946091370162169350414246531722288002247247443338444048096470014407505161447145439627528441817472309132785533375335327053788134225360890057735919086385082878527870672747690972018025430317597994085833996510293744296270072744827800968747118652001707925115170725344166262028262831976523351908700901248555969177677268988335334559041139815103489231291616190396781571734491116979818331484981045838667408879508591390263314438668284842435554126713926378339237739277345876391556591759894986854782540731121228355157960562500246328720540440242573882298513502807794938844891200186077109660695056420832940317827947480596991964725420948595905475156095471554956828962589213970765663664507614510525710983978886587406926171844789477501515316591056389522538462782052177626023738153002429771467861505773152550692796665024233804298413791056389314586009199518392586361182931648893060700841239486443751208190044742624055300920560300164972896730755132220179974141363701884212460696613314570034406254249738440972115230487416718353392201127182521467458564776360866453054476622820612960357913518821700489565188266401997898293650935112499682564316389550365382386577166794539784825842135383778612687220805262115722434561229609926632357987985542558869716594501627331183110073917474831833412492216341717839621563498597445644325355417384182731293375780273925676330588443399770584562961461248410448865980412856593283774249118626448368062411144583908083559158631762101262320985881646988601892009626699684877093389547589680191943100373810593020012163681459161481463265229630711604997662622270947579215598883295745744375012524517486384482312637188645697685023830017073840793214896019056990809916722801934852439542366535767561292206391756590624172167527125239526578382541957660215932255223617256358949892156395636012289451155810940947766643258074356192760140417333932703159131153302001993202013649398744851903722649473431109575878124188951517499120663879167863057216245527524936158131083593581846616281116457780618476467175744260047671706170628058969313828609316203874394738611838691146714708621440811068065375059764077107922471602747118444758047505018566295172845840222363044843823377724955484048395067159162117445716079651285430554615836348123508479663613633543536439659032305158622085036823562312430210097184334053806919413606328015857198166985741742542910222229548347794270115862364950641533116360751024010330154920267566755082635655989934687067948683076365244747797681539932109742607042400351730378413339043076042053104288831902234932057061422083781539734266851509546478875939449838558184925318252594570510811212668666456542160275413682418169082910851505073639802048980761949710279409048533910725009644307916547462799956304278642850376646652163764910852498109087559673639068855571997149453382810583844921391835057322627939944962598839030995118365397652415148677843384356351294225915969759769807009195770028212714029542220860109386947747600880124731304618071415920194527175885384780997381335529315411476954452039453336483027881613648817498458981043614033551205285315966642262313261860532392761997390877167157824975592728686663288542212338480531651905697282771284634803837674586189225358654271111961868265413886592114485728520889155823915626302490214434724778606027652608061404489997494956913421203809492833186483475669982502580267768660907932106212934761223869147011407144931984512449822272858463046102443805689282765378584836469756721122990361231972551071373576930332017782952497353964971977667927699345583980146785561664923502602168584734302617770719993117924180768096054602049829601947548073575986331235945664089947082863442471143428070934474735580102881067547723444068853999534559379634465334164485699685849535959321434376299360002199940374713738763717318135257594378433984623451067555666004176430069552331821043534688410206360678023394198626140516676829463331175090654819418177794730743129650157003601102350424562218828886540334842690027413809475320671441176433044109764627648187840708999827563301485747232854041371383722706524110648003695067978606592207802780812865548416959683434710054396639934091582501964209864197001547352297203883853970634636890251478706397357772504028391791133385829649608719541885397194500864081404093805680592283581587080031106007400544091110087299082178679498058608350368802665355362743975695021386942967715862509831691395624242097989872466429346477058939791697792644206945541368795059815567485160738471978146326847280749421988725807987182538303606174566512341712613610328819949696429131706788626243064429257003479781567213533283130472195243937281260897094045195632164836404806308950436928851719656544711530995229456577429898613391441228515189804849946328586617044189399112915174071961686305521311058731154118154743944478930827933448999137069033767043261812757112328187898586491149649263239770575573372491514609913962300397538178325412819250082394985770128210064706291971404056823494025518979900077722095044678955984476954211563851730489022127129703567545216087917029457297586976161163666002876481404356006111783984026651325686302881545702366676558039891255533552378940526681325328377083568290120977882047959902048855118035327427107030586082356472326033405705890795867710997581642725117460580122679582460251823897647558880707346311861286231798478307692214818328020035527134337613148725788969509520856523315767955232306279068863026179121172986734970821800241271191041554293553624673334068152231138663083541225253186530466584750221322765598277001318030065773724485933825584098295024547260582423983195782790248748694742121560210108782367351062876843321018498868169801011234647296999497265640982303584856631552604618367431980361300959043165013184447309840411579671497807713215924518975971728824650139113634504451893857752493870707894536534580025924918899410381026470203921590859824688214371788397581340131568056947019008226020802579953108398966310932180247763969325702548404745120701113727872374849541176191397693918150007859349558992029124663579253453919969804386468473479823435389156045510930606581494215545928786104707023875147247566617659449747385898774465231894382786998985511435465221025087469108581960587094169647166015567083019081171548453029726676080204501621897165633406181155092416280036194393448668154765044680273290831168367573483720916293220537363784396750028326090008746409522775858334109176288545040968222143809963666157164714993692552691030746746095384972812468437489522240099016653596672886624958216935007578394328836872477677835475566623709894330615113629525074111445791724606250888533764517345795715515913209684966722088217206363416788379328988822880544129030880991280657207110212669516672660985462274220919816668192655838709909545635619991912602671836047036022365819673803328790192132874967399427384804714320230386288536979228327392589032177733999459571045131828978003082421255882796256922887771517474914532884109325805028374073195609674845570027882580667682691209808960162320958044698053460111404935621354230688705055060276035328747732449664434103705315359360018574234505778087031033906809591737524004657609141180083587792844238897502769411264756682219477820535746448712183059973051455649711276789193451300033608259051770689632912612966368410213397223719846180465288301410471340104728899471260851693738834969693589992167923238586420527469262861732407378742463491312416687454114307826319262243206571197582804824794657360143701457461390060690287128687008914006027500421794037132373251426895273650010752378242036461644632326538204824496390108865183742153684766453533750158486348953103494561329164785042125948643364497109570214032687042847341992496942549963446597177490059264080379626834995283880138128720939356932320922934167819404012567126980906333821843972245132292769670199121309737386945399617061691242212602041249254986914439251758467070454527017078110415540913078712718111567719863410345170946581396229288296725708694976251053808847832784559716101989058585152333459364853781487150177094035272577056162232607626413671183775271701305967490938612873239642784241444869177599196694940167988598909111820716411455903868305137116667584708464082565760593554741520763285693279486968466647145605068000719178224081611065059024820709321992012959424836313449245944766457159521675743389180437524482314789507241202064458946279412610744968095365042487815425837059277440788287207539466820467687929606010427052889599686407149562919050167266138055754211642760622281834774472232520012997018177016104843995999616168169244737264258183561192006227149946996304876482070794853456479960123069032953931899573952590049977358453613179866582736694532404595289250018865025063620970409260622001322626787020642665228181719630337140694508584903133829104637076588776108105146987770715001622912888469393801049237502655333827997766655462604950904880823903104227072162826285448815920804739579744217668048472179145178239631374493957143435369896568961200268660595439664744393672363981360045426839015736845242243037966082682849153722156645515202611895366396766722434188612245337253012630176386076332541956816823347114281990627401862643371854004520543289429939321454319796537654835932021443253113482432479599376746565034011988239183055375354439143323894507135785177381136764216910613664327374698489375699748374101876596184110974037376348248919028196994759869754666669473007909800898236970041136583185394858447561078359930234729755612644676512376185083439124960837453684613766655940119249100006709914883032719987659819227242651857171023825816227259753360125501811220284909327091119299530302460875316152921041628633749228245324650630441395231777834206665089721659166545198809390813807285313796662857644191557587762321932638569339793300384734683228893690455662243814248726838868424011497414857334736727294330425626150726731254230547323997958322645660119741972887138080872468138984314555434899831082271219982070029961344963014656656650312179350680906014157564959447857343427325723593448081360999002524255436095746682081025302433828805114778642965798172013594261055370727236525878781327410538967831969420448411082428344023197465259006957803056381249554816395650600378295209885261513765428145186512132599088227827741297344038630158156916136308562534530196667650786171991114061618963152805031365805252202362813399539257365072871938670019752070862037993525273847320633535164605121171668270660304212966560930590229612295288314978400024448663864282194174212800925827909073116125222146989362275535545461163104389539724005425731840215751918336666554449655296495284776524690671915700240182848076466738303458847125806440682070048452552499405988985072310584615615140412334698567213269640766478376308268593685436343677913135630657826029709167498684410903679505521492008937445522184159807612579739875957067404517246690456699628700459827496259060155475504704939140800106897157847462832028960241321534162371550866591995609105139654505829198567071594976253814874889878307865403195684827017795995685962625331946169468849365709024728953833770292303689127648679956662281083689195814703654001320682193708226233654509274227123208046794006051461731199036573031806786165976761944144476554562458860954539025164588700356769514235973761912447207344231128612038577885329905910651215162487691243820675332405120920156441735205688263042477609156592963450024935094670739552053846695105447604191001607919913806502716260586099415698048208439117112804353997469392901760343227109953989839755798500954890234303858238534200425973450903268179269666706683919819798157897074930253653656615480508384734199341370723229815916206229421972390825682646819774078910084778664109232402724342739258129330466817090511506691233893073860696597028540079372142583078196569163664415704569271634527348425213778842447478742024299839847320586897259289926723833429124263371924852266894952078981947716999464508630831802129399804013277911225725146867678751443660197064320152493403943813615691330686247875941452809167712661668333525344986070119153181553069816996108363688345808397779856775686728580557607601726521580189906160974124032754006103330555696719813943831797270820922514390347954442216890286670463336540090704255467030586449642277099110989019888066073229184207446596827138621074296274058024823573841444366440827683203501867155588858778347600965622343158071334619406120607499366521917155372911625993434418181619542472684400335808478795024712848798232790802104582700494908542551759189026889327987594513903755960063108893956212368443674060320783308177535441080789378062745629320462556204157871409611521111537489820604178321989064326523712277179722562441392947494124263753741648202179051056381758792293357756200886056392500128586300417538628324962872396617392896960489208602773177606745988822146032323445979236864195873693023074315891325642575292672675432944900986685726982273529287035757162105807737641386722645046688502228616883608323600928204254882708551457993599664199939042001108364510100854669374161685950410743848206749777152036139971115616791547669376273374233783741853240239187913924087692470503406193883820103088530940752901297185793597451299152693239794917581332239264674086364711663985636579811589827102080920077276940923230015403053514352582902701440491442552704586924443278920068554089538112926230155312910427661921430088877592886504882783026451114904314879389980418674661812790301755626819262308394223898469874101858198744915152254074822354737836660473766163508729955877369995186105022745538160124379624134719976553003433656219098475684306882356391712336112518217496770152451614966033679719797604258147828777191791582238018732618487577284716093075332322947162581846040607507547128141411553467675960016938132447209010922995566465870454560973754086181451691453060756623262089102372175559815071753393361068094806576884903660795359586140462018339345400257342405704089583848498385936058392102734347067008822450561215938989249696684421093462832429686963769171541867088203033929079565318290882923890192260296397125824208239321913579953051586347284802473147801715137572388706212036192192341486052675161227472732626769403006580928190852888420570888594858580472763510963356542679444820891595467296035058784808346374096679632537244542110900002158490662983367225342271165012132232810410476701783194013289941332281541945128898791389427190450781300324408315470694478751496988319068811424618790600796175972704452662048120536885048051713668112147171095674326376380314336597451693938391905132431670925772533226408308727014902786623509682041093597222850577730312595079478522382595308488463499232026841212721758339420893030423867614450613276939438575098597246459841916169174233333012558450702556829249352570105623789978856977682913400155059232175896057410854541597384931873834225373420793819634700141002236194496579407368990265381185605261153164186966644032370465725570616008481706040467402363979041815817569919473204575424020833266338451099579941271273566729758396801780548785399555530870665074987237102301584720377227856962489935385601912758387103679561340175994952028071139835126116896859162512907489433738708003764191113784529072294863920069985679181981417905952292998638928393124519616274829187559447437135459888896576858428706347287998851202404119391341655147074262337233330029354169918938780723074442325341906913520249690617553920601228292204794990954554709541550145219926311670286022829486474890547873641454055640050659021680806123776063085047803791982130339231033655830406085383645839235812920706213643542372767084667410423574767950689236468977225609686684940572916483861473825020654543962294297768977923510574145884350447962744425196911804830684746721610332978045725885722974465839953609817013936271831796563422167092427736976566738944050905418501636733965221338005106817094491382500072679694663969604211330367573839208658103616166773842203912397649094274035332293417766879974494978467852864394616677345861742035260716128511133804031915717352283609849186750980588550353353359842551422715051449628683727612120645410910373206233131280421773191081133658072421202589981877335759897837567865398766616483868219753072085527030547272773338451786639074028267736409214371266744465985833600557983819484877687874588321127100618394553227443222429447204015873084803570047084581540893991487005774998095539012814206433139722689539718970689365672596206148438734344969156940398520709434570497248123121870481119183447182174719753222183812703005202694992320718257198090545490081574180504839193133726041984662159320537829146404825301662381730665008649426023832406205300064549463276508913850628395665175681029454370498330024151626965678453007021371880774978878764253960750266012320374964869251673962254370224808120530726853627465183640026132627408565870659371838763378461601712252511907623026982964390258034506291608074858793522710732006849887537929998083265648451869091518360338622190361947886704056796191933033290653069843222486989837725083764660185957767337966410624233287380669916094893108612257609584064411685819416032606007599383195514467505681084481154169035744987207950337727477190175423201112000548602176777928844269545500528087776942084388386213876707274957266007341334003263872061818369113197219016599089591874978910075258952759147116696737713251330695836125710553864545043899253725034270857179834684358437963557407969392496855287120551500889936487953610417250528888265713538507346175000815096572098449823521932366495465681624293529588807619279944219835200030196449284166657538509298091503076263658821794087696129614834598395846457847280162685861188989631112727958874402895683374957097029325713169651861405635382575356069768594315952488093148917418190623677164261084871950261782680659263475529055698095057438513317333766697322910282513879909228017725251653464952309976517420541026021279839447044561839531630512018753000000949715809610155218419296825596619602660643109696576766614504148866461490410917630227207284836958048460472378633133330031421973862737908573858030298681279563005968868885442251891864837704374980547874884070380563521671666717555515702870659301619662513350316994560973571144497201905412819104102204369046535579233802269032186629002173327919457191594583011750179492602828740417806100260194285419084910368919026604655793568338035122330573959988668138527643277259398372891265446628600494852860642560959643722504166999552456884556439739365109925742710581940596182692454881577803759164925471904277856977406836397248242231188186503904086479829312109632785176482398649395831492225584843934544890365080381092540684446090571974796603731394865735960306587277540365399807841535913361166410316600277623514557714355450045891143105301453556906402976699362402422726245241770340202259482391573587921277451427201475907846471161420923184203007845308365662914202657094368356859094396801735101060763983707897476928551441212740712628917033736079774412654313652768289473860973660416408101105294816941486795261143482475539218116891538556097857303799014202655843418284034919217266032055052145037950796391254049105687406925921650919801932632059575505995803487226690267591071339088446324810429665951710411068502680735253915299119612665401178236743298462492209885187394969471249111590298944294972181391665687625571978262496616607924391625625122541064294167009182881649675666310608216597509682308975687048184346880810220488273324082390009343922389607155851434693367490497167191162342729504954562770599946881988280923950924194375172820279529344485307828539470561167799414268633589963871735286116997258838401894231913623977898512802747315447707070795394982026287746075284517742917024214953607598460048251624721125705711496716515493780927094926054547007587443417984561284451159087924127065190693480274573195740103524014665109347042372242713011105719709182054451779802402462846686764469250149143348904619186205577284083168440125783460988803983040041224427536418105276563834000589352806888086810792887684185449864823817616743264974857661381302990319425915030570794054418719283487254893765660702606925507366995120962742907177451851184194651246733452327164183681313329668361289385459082655844357479761157904517462420954782336370650734217258798547477628134408160508461136275629518598763365643776704999982315014601538847533842177312363815078015230535520042281710566634093332018928426380470529547382595497231453447296510401499122580694989542118123211336510298242265881957116481272976938161305573475829137036922478497758272526064239764275727428934753530324141047683284707925314656571253120297741593144301989029932039631370847708977039592735908095485294682546178971293942839831478403909251765211127402242476034971517847162063520326527973264203654157726882020982306865717545398717790487982497566225791960451649395682379618807770812770990518097848403800517037556850214374201363494820613296328606248849556617276927203365032050402956417258834457757513468614850630105507231678835156590002973849530323337196233765769005100269051596653438743496744531074153787967970546102239253626295283800185371015163061282412273233605341438759715080908738734155680792415751682179107214837780870324112215038759077051388909351749248293393362340491804735722314686064776172211931570344995687397995094201078328287708381436696509036683179430710526143459671090214343111613165470572378718463056679058409525180145435622776104084389626189614271557290547198657428046770872292085286271942070457377457115667774205397424941335177633576221921307988864690319454253931759502466725322068491868212996448137581092412120231914081704535018821962912540543910395295017422214061688856180744756997751086942485371314265813367341099492523859201777911544945732542251996646533819408416733855813248430380784353051987575603556766969676652576456546790492786365676717477471780311039265393930692692536479278058289447120380700437080621875724111624008566730603660136830369732502391040058193290259436520972522349152241186595270439406965553768648077044852019322745475039117180833070434482486709657402815289868579181180093506413128408685836210659682635019906980033907613668926886998017385672766907120360275649665955703446648690104412933894537342913081105252159621728596252290337006074187792508424641833252026083371351118544070220029302177585002051020209693388751912604836788792938103180211038572772385692367047686797663726488600636343056416639340371434178057922913149988242895801589869246134182456626580549636830635972055911646906449667906893183536479920304580495927062449495318383914502859024850390696160511962492839591354241521359605030873704901280771764176696394746819894875346335578285037958018315071630796246593994450602736736782709227776962811960193705696353977840832244503074525756801046418480104952708225956654031076650887207654364395456488043446217086613360333458305249822568915497870445769642174029814624248808557718563938315288131981059879746891814906848653571361734165383606250248695203157446081316780890466944859818883408220681751564606188709525669855931552015910594531922630465221319230447968644827037104000399349468085940709845420709186801869870189957310065376486875818027486099194799652700261962162979842814476907937151040884554479343175102106443461863936299786031733658158526697505787737288831390312587096948125202521607494672107358664031654892817981859814032048032308456695214396828674371646972343111933118235478217418856241932608954057762614657348992415514994973649183925202933565663169761674688573572705465512100867260586792782873834894393448879858282631425288969597041239913264530143176940417038293768894062341388459358283029363521241505514415944606800465778988389696997976488329598103545486291782086372566675399342884750446001573378508395687533584520119846781365918642712926050137722501422940570738748657192572478291080061064465266784766821339448781750380277018526057348547969282620838547271158592123106924445415137271962169068886753773616242768108526860770668680624918085499515448594316753399184207959854645545966178294946367667365464215461437299267981024640482351764313894783898979779790310639293403120518612845317843885961218721330627892870884034586834634306288959600800016654694934094312969906843523989474487363292107549121405051842273804672951139931426558185217263105154266440292198116153484743281403738089764537942580117592373169332843668291570161231893192085910501783594947197568632480210220676159914630695045373947110865483276716183706810772480489025822650574148923253338077778984358062143359339876116386538466840410248445986069205829334800540468857763742877098268621321936452190092292677833733015120935661210435096881252674245731590940291777904058204838709258927634384726709177369743747388517276540134794966523219288368494673707715750545444977430618829102741786722448977569136245746506892260784594305122377956765964875494661525630812392627570431797542774633649692435634600619995100828388051607773737320566663579058317184914953364791366795988119035944499870228041927885427291552336916470403645750737374790343508727959870011948013633068603709803524745114873237831585913184632606342153621466764432975785336212485422011385562526026325785280689010175682877871854100932133979433824468566274446149622931542987075215641549808157694415496495836215706702831882504236525450713745190840527177881950274314820359065788948941186678392389506015603659287645205650478635469725744709844745917694671242200088257847664196023761483502535919934628106836956177904576850733165953639537009625564931483800813939064205452784056562906924263138262854190713016429597834400863396500661411318264844626478688247976493603463020869082314844568422795206211121414790551441687374650437350593878898811077956890704923037541843779265689114183766943654549620301704238676617234006973400439161395495425820813849034567083927522956524533017680505015317486453689078007964186108088388834823334807268536796004658076764980883875852002899824252845120398192058270253689339006212824076709352360091292494403244674102362652748242585454512683487802206094929624512210433415801868669103432336563299246200631836449040231796487743241129830997887280583624904973227440010938857750268615132521350476955985266160275343847954458182783680606946301261440414584695811645957626919904634162015065511092158908654753555035112426631906716817519869752403038954547579309136428828698855887050283347445435352589414277455745659403659672949701844091615409329051239729798605249649508881995745466181681760278836788014617209367797363025213099548465831311765130268322119458747255183857259036792958653467520722050422999186667875557252931784703667995768719449373563566287569838181785448537316315165236078299435419894286628367425099657299186420520191212493822747656041806942778649917263918820574313016175936364278095657912197156544333514576078812258367411688254308806308233253979104799886146141795573024110378532888744758882450639545832931629315061316624936934069855261520251189619208932095645825112226914002488349608433975216392559334105894506580321065212082750683215434769350600315258685769738168281620712241918181531304600953684737825856558752496902935086041061117373078492171093156525620734458572198664445485182180584412121541859608128664108864046863470840179683802074117250606892308104464401994967208063201461576008395983010949244271881337985760249232603064118908749101368343818741756595708639306328663323647997230083026586168443908563028165090965306046669936823093031201641067283691179528760091341340054750501411574445396983067001719361338758313831546214194802522988262427213992766311083367221926704644926386350310589548388226584879096563716189619999639352122506676215560002071464820976255721415245203705175585562009342149268303087015884387900901580645974529958538266511048292540094214191655251748434105590988978409957921053177460420354638269435515123440297643556595184351870654766017195129597265278798021618042803357562336796920562210700207869194897292557770985225563467998856850485162303205754601219903992359568763292738046597879944849316440072739695566747771334350270584365690357705585707748952391034489810209808020400584371638095162887215551877586685496516621254441320486207529735072129499453034356769376976806195913461335745982751422474427416686155205954895426314262000785349000566994394633081266895709738466695766480190747554905598619092650674467205936119345031471648494568760610154638766669965822606536999066957798295691847286543929950637252534021807349762809634909845621632745738289323427402691530943470362437238016084008021574184417936024858378551901582184109925813378265562271480144077504681852848923799135174352476935411274024175405898399572696118288609219488629937599757300270116476738773173319775441815565142625599368407271010148527189169137126436575419687637653591453060810313448238245115137826700680174173397730879399894023429615188424159227554988564759190655530013057065741456557151297957532971441936537253054730906123494318566181194227559006056734532413608154725306414664975590811965866540636310888252046702850415755413501629293825817250675745044356310060615075343733230578697945627443197981955983982101789923120112442674413562411517752862814356665481320346075855451565379074026154284535697492872482896629467683957629944082928855715229704524690631874831713761015528477151093180198899267918209460449317178499492549499255540491089085553788765306876395001526593425929416551123397768130980721540684114325541024049880639022706363760078650551514623070941817310672255546993638361970434889933957658489437467506980372333852022695285563336898466696431030678516319817061689085617527569094865842689194172776852750139504119311577867133461664736764376894276367527338301181869646112211896039283085558450194614162098932854665531175027379641721716338209446962526571548167718089787524703482618837847562964598554973448038663740411168357416055088054484795723713578981332514564052240780786604288957976602159687335088469871059878421087875733196781326054658487032628047958247888465122483853133875928775206900500651109991966858865886185355218119751942986032728369816528189669298653839705011031029707972260684884436580520939965270662220966108480301471955551788930648509650132622781002060581945371127445311694317607296851592624637842651324432225548330357492365952278079832232818113818815773003262992961006193458103282120120701221802305932679133002355324790110334664432261206151023405649323750368149398933975442048494252987323627799461172769162299011043980266095004598946391345743138042211667397603471947417950385779610492732516881421997459043591639751747094475338717301034676502520933966433259933511964623176140848850301665532897346382735542153303775508551988442363278969466722635806233190600297932777404557243512223417427766176935664158833690976508833749775340726853421807213263149892949492407313648800500709378734427188427514645679769585337717323049640642219106023833955614581852292126537894280330106129752197023306066377698294761737827093070976273182040582767793181695713943325901066798479877161392858617679928773117587569176911028977006630901171248005876106143699284260612640154900303987899763684958019522070234937565023329374855681618918268608606236344603063353492667859882194399571949133765218297163299302444084283068571284446885898142347977909748404716483839705060722435308454063407232185952993641872875411970485875769161443259461537742695581679945674444656940178713071553453641589775528477675478644045868083717728480832978031087715376302035916107365891651973709134191141769949425270221005801708481462447665347260128377600380394369661973606379889364404272576752798842539052967841486625778546293648595078034106389925965428235528817379704166899031527122027684435459371066071872313540861829372175232893217486371953939687627760255806066579307790409667946082536527423908509450402645713107023006178668714602853488726402382254434298129728618402153023443460248145589463863464488629699153901848188428425962590564533976255348522558555158357717079446254266128631045773442249714731904321015806450572487466005181047482415070013868675831951180682680772393176921570564467146489539327734137864463090305981336771995975606139016593944505680322846582508579384806961208933895854470999089104088471293412538556343276464231202373306899086314569973290456349533621047993379430660878430492040332182877966969687235331611916939093285980986116613009424676834556225397643319491127005141730843795099545366285270116978384190401131531388737705713817122094905077313117184555614120655052933103864228682395954045697816868160716742642720860320099975829807989446781442439283224393767561389668602114871328397714429641316675654936533024212454448992703979197368263958073125872370574536382091712943552618063675086533201306535748450177900956713668812458607066553333049770587497653960126814780330270426677643804143238953696309126077337328171230586420252607768990916021540043002924555098354607847774908292296613504534945066462187457044196678886655212493552455684000124857872191501319166553489367234949847948003996562809359332589278071887051841490944391278065100322561154094350131020271974116099864881484583150773477954534379443031977389263718454463535590807357524883442748495425358458773905568733659980212122233937170927468894731974340137960387987171067766141020967305613430735113400167327724388894468383037036834573962324111448857622277390632874783986766805994685286588402051045168473901087270238630136532298669127569975837867173081419593256224230187198373818513517070780352211686544611853497387274879380624125545761527747766992257331624278393879201382737836070836688050649765959770690786107464910897162129643258070497891133076147301445399918946107701293017159170784613471994090201843711043542690524545841090210412117689706293590665326173382391965373085233902775610018342471433493824777936009751377322870719263243559116399594508173174374755278005515507773107806695467118638728089371157855762859041455279046266760236265061549847906256192475930072417078262412216191465374145817611109921907453057780769714586235878636818579010660305846638085897041919682079187099521842289081153016696520291269138458147795367536336166178904545777600200018835320677132953734759430773356885300518114006410215485042241145482275271930753612243350731038754127179346065463558980730565547349838534967367970734881271915663909992396875713928581331538118553523931196047326772921767593944541866661381990189157917837631520606939130626067960003846370441188033863161304193941052034919601340582211200993148606464800258164282227386983471848274587641449826086327608703733655950860147035838881817346063520905105551569166472094642360700305353539125687121571412800233897801902394195451737334950166948872781205704253349847586393453659257773772129843081830503550583648232097879754910647060255645162123873690588921907664386812192314969904668990787592038347910325851911464986268973710808238528210345658273122718688953222344845596449518094334495555692278583464655967241161427851081261589934090008989198427175687818909381125901797574093320797470837135824695018959137110456548228799174106243801078715540050035693059539903129107526441877312297464700723069361442793082941113059954760549163092864302162207427071521663883099085538598106789365375652560291540875053915042147107305355541230093340511948100773496771846207060962178320863440122344695852863328601927034843665688772301563089366476692416494655553361251465681729631644909704952188907655573572524061379611074172058745799676607867089676528626030969275158184615892553706189386260440446214067775483048400889517660872514623153795825625376683551153276406466745953223792493580138585711612514466797292788023929312199621435956057372597851288017717702214268829307650863308906146486895383423038961030524714583639789367047387469663710638386921166843107112162399350090032371665263639593778871461249886627426617882672348845616052192390742035635174432369190335403884952220282658174976127643760077883200822718856979894793316953933038432129246834810955499245429643502792216204390101582919221914896530780449737494273675341651834800814998830501517467473732887335025378872560564273210012581759663318470747428469596822824353788791484609651754730250420611902972441780627324228552760756645337212277213669720410282722495764815901118933641947505818119635146056372123031163853016607084231803694307295048749205566819818203871469004040256205345724640938395157581049019289254133882603187830586590846048944178792161639349998698072195804897881960932423062692996315570009399821112812306523539458685123623237554877949663281046331785326434967945477853187219456962308835360816103019188998447166902624186723463361198845862043139756707307949708998340458088350345504405681610083425992309399227708399062866259691305982362696524334203063223749223680767166435420468676807064039318855822441233605463053433108620594870972574715307972785235560659493229237895502682733538411599483889840285048468298609739788788676693930896157592656150503304618922682608720495744178466120720400239413818279582947551101957588067349362198310644696810148737211873423500914002242940347373622217757469359057092460259255835623523311120911114536508162477707157778794643417029292820621408660475411817016676871472139016297044950701149766978918641197563777551538178491972941959020314367281042439916484610285124463132518685146050649671404965673501980074867339674485400480103202152274002452627886649547826239285631124701466442659628231793902062303117685519282274718317134183986726959646281130136420678669929409641575359156724530042971759204151049577063140668256836841496152550837283198802819393765504277428267471825820916040839184439769945056800052801855447724149589002752577721651945277907615494495577484397838361695281448920419525497073386847348423358722176094941685621483963944786079709810542786175185662213083474584006479435923523264962119074142344964231278744017778906847075414765090873836730962101222814925852034905763232448294392164150696293484404559615912762393237493631234911255623419971754805482484807067237843955870301761488952936325501317455485055541165236111373799063491762456251901888033496637370327354796616053239823673956764313671731956257676776243892883840706974403701422331041320214600285748157556948745571057142635349045742790869810140458043863482479467187636407213209142140643399280211267365782087018901096357102702807032938226340017177468719959832517281332938626219428542065825384977111152793027023621094595714851901014057396066913617149241407384483629770417157512917481454626903790018220032727619447204189632415868894062883091421376889157785738160286819517068078120221547741232865592039789997809096858642589974950406633282276742001343858671470530723723462977042806293562097184104384892319860145054068706005599848103202475136910559408802750670321349532928902200720878948471060040080779440732089147057622098438851245295847265852725095657036341773301896972272361653687074013181383056199483142662055898115486319697943030025144255398017526615117606804994762770263387654592620738896457014158422748714154790375083279761284719607805983269832431032025697794881541884912861402453514015393383398093970235718840844819087630711014801845177096267868292485374380862981262759415023371416773249963642720272531491550382285181931839243381291057446045848548622697739831078684826955006962960592374554364361886537196906671409342916099684974492647405973445140070937339868481495925733524962556362787791715368813405127885414682273679238883756451808109103833224502360832950231007260258589223143789687419967387081809103048353818176784826608701570976247436533855487665339581883879633422748725624143606299376027084415615209403770630883772911374389104599934385450164787475425985513881151374834843601237168883089615444152683506549559571348287648235928607592759798386482636937562621159867783897883165680772790744694913942757433120957791452114731016542579031356772862478801861829919817935822760297701234031565630553496083932524144266432068365224417706355637197708497596059943968771763354375808828202384753017252678313637226104186018934267377785291303833462209722603112097131636451776670525272696947116056767876907193733962230926964277448565048138869723136790342521120420557626113310877622615705727879955679506753838120434847692883981317980082710129029411515019042422027703802456250664237042470599906097349091475084322907304581100454556267965417770471581740225955473921872987060801596656295484996941952813762651986956023098089087446180481236890147274505119438447984146703708345492252185754215461573830750556829525204152491990911789169412241624894113940948558876082327075519452693010752683696565906732587737946908617994599114734655882735798492524555813272586472278784680792129617307388462779470571337826755063784007967629091714732742451429945538590819171230209461611485425466906965815637976686674424174411942091611575204658543897607455358577167877846825141786063555983289032669693665502015954210753686115003817754394470683792168514989312947660804752307083523342895905116448466441007501716662542495265596931508639387060057680400798870641724465499416691015581789755476427305873849768355425333494545126532449435019811586292238878128564518269464311825759732833984846397899202330084645485229986271718278077313605849721640679764384493485785137442203909338224483599730445741709887998328800324589426235486227762442640213152288284054100273819377316701927571813892097872821184830118036838885676128366017959869118619987365793801078732475795412858299061108418977259451874852925566246075843115484427942213289320884231145519564568841631152843691309507620353499790065637717753344611830007645245133586489677480806753322300176819389721014531379201584215151544731704933940110098042992868107172300278267807682939959915909133377315798187775421025893576224376203864338713634492531704104385509404548631844403725720001883086215238448068645720004825151571638150582399671992724529755034291666654682970894631568209662905646860087639666347897716658682178478137626244467991497694434084800108820351694358748349207005507590824747632535005675674225843544919410740284879341803784338874735969824121999058536455583887337456961406134645206036788965043278456094288904825949833452864931891888223685751330193494004214137986933626982028082166146609599615349281749363441160503973063511835522629049577623268939779263940398189754943796034925399300413873006960422660731621277598318981900748223385584489720005403315022719604604539279919537238306310129493072576826874976460720842913850285523165613602228879223030907112029936733263980521901873757243916922170103554521664540177677256553656081076003255047626767909166161783852390201909239732427460868742873413214928782668442485792273678467707345854206953099574659636167382825353149275750402464849661978499707327495271294153153793642939880689924315044971983947701363054882629908658512778812136482325973927697356858607805330208269061810579350550787739747271690846693422682213844105230961705122095921399339261781793093605562151351483927472649119582216756651269715013185992507026485297384029746638913267784015070247809590551550501255756239867149181683467158761921233580013563833533832706193384227908097568333786362742464850214093064411585214322589817552304995644387744698987435784639206115299328188391798230060919925040289095904826873405270489741397429201692356460398019164144974172661683304704383123293596400168595927974963981718341455691375220712598926015981061241522020226746607363421808315866072844522241958265123805294015505734325709543608970786971090741641292454614341445434743031650344103839642152714095215111400597668051365452180772834448733713951285151974511020527722050622586154685961773980649684139036929824888064004167296029567405919008510989698022675003362420330658612171296674595634430950861737178197550522968912687336961755414896638150683091105927540930784246666104815466804904998110387754582920385503136215678702571904711154925392054841405392435956690160082815004651556176880518349522938869268049803857212945557428957757181274078188534180641434222436634713394377623084057266800675306314887527643783080731223633192289432754228097251587163641323640415108300040553332104766906703622102615284213139170566189984426621460603569032319509853170227128772544398781056929169916523553786871864136708973321951439266585819374446639062027491019084203298858164457301182655738945363027319704802666609162355703713555592920161160936425928958624950140984276800358605914501274905793270088380123280092777652599520936180066016574774674602962492300338576770065294558891246938627869045248741356162327236472948340100473818505865657271658945178869444108970793727277169888615589807342652408954654642028249683336265218544841844943039620567418642066664694801485039474224663104946775868270546220009273859464975685847995182230692229255194837197703461841048295494125133934854190913589486688572934491579995263836429310222069315919196695008756612840086855276906296555711576406852682289987458411758644035993636720810706559223223596074395012482074967269876248301909610427249974087444322544370289724862492095993060972324555449606492260585536217562975365989898256165662209741744243770072281891113677589526964709591048027137638974561534745910262543942131610348847254777613573743119215970481140140973523690367953904061297856158204417449315103168806994141514221869067389721484116625897866974165625824390940619387492385531384759980475148099744138594254577609782722873114591156218575428560505819687533665782524324614918219139177428321870320037909669411212056315984510489253498524992028050433774506652934711550656150897365381018363762596355456029137912788580341857442240427464997992473027167686073571487477073289056695047791596814276021166499180812570261793535377715381095534856694563375720840199293732486403207268817164461425900015419016840730647486881329628081330520728306602220017444855207912893583527567640132523932645045140016558742894902446056645573708279870644292364356337863413774932696962681043381416192005622092367625144384952215744613423102253957201945492911516410947949366653368973218244417837208629626467773311587032545565225597363320185518573145052516107270416145809508971640765391939922943079577823912152836806829928625478741904943608563518854250502474838180492252842966936940379292515927158642984394992808516060331522857479442683123680969586158545404696439757861728544161109353510016706526590690362140505485871993890623777989639893342741749278164113739909064822104048607604700881314994837562771327855217805824805240709403049586144507946635961530041241336758388876153873671353493812324407961195521929443129214325245093907075033939613755154503653458431232669668133143200373496531634119239308657626959326408897852852248955476210077538300983881970897081722256851370384401817394738430246094446529991707055723250397612875383070759933663351990242330199714491843144868909706021655770119076518652197439468670934262238902122394643071762989143332380781929932852785553365574139301057455485770635060316619719390786161729412816256080041695832330333306513803225246241298103542174681324787312157099351124868315875491014563235188235088083353307979904909638698547797129443416634187496451633162668962096763973112920757113006578885981613005759812972739423428026968224924715240711121184400666570313713831661676551781416762205092762454873392996672233822675908911998049005879113549576315649195185945221735873400523488032855664732214195491622610125814836992926919911862452447200806667042492085871055050412640387004078209150136071214159290385099493512976208398400270793941669713244165706073017994723956340040176606660600905764677609649273209378680699761262004420162574943184707282647983249497166221915048378509138437216166773524344677778645253056098058363152637836889959805730283659667912311792591803631636729523998801112457429541700670518679909073054293347222875711859278629370234860034530472787814843971407416839410748620697404929444628885148765472501545542204743092692888539435671623375225558383156955781930028250875416495335102341022416028747939623101851165655646669786706886941747285626621887767685490625507579918972264275821554730672192208536938357568038016220786507514606428459228556923592357878088892097040228018425901817614403433515093549570054459680883920026674814980567391306162839735432744772925279923945458728640317424371754629301522089771382934918014932322494646899847226927446711437348198517336467238912402583535714685554962887976226244877607865224910420041152778762114292624683858130917160151189329808011474148248426468919851459181653217320577338592696433415925626547520744212054778246191299036056017366845300692509001853217406407446345969367387932224471424157806860025962002393322246170105905589120599418307101520483485172662871096029646001814530836874339971734569397761672144766897889939582980547065564510322566297709469088161326378647650724957367152751219222477982488630481541641830759745553784495272655305601785297464304179618387878632817845182119669701173908049307738109393836286238759457129609801891849248672152864224569026032434860606043519413152950254209155898427812464867643367721469439163655963535230210956020271822436429353148061452123115302316443300966692373138512833344930201065114665533283668562715251950869589323671989612695823225851418477295528826265588036942165106860309768309196871508750909582853077194245544205804856455107187229923113010853000544229047601960514638680908403955374921583425840017707476156263758212721692408782616903252123659985846209345556985801926954056456976272824985715437727303074025500635956098963218302124841627943002644199001350582289259099528546359103344349215931739645410425703278236816938367894222162016409737329552170460830781188240476383344037012759448265714772676799966420796599612166833191567284955091043037528894960844930223090984316200398354418059369414665637762256044908568464664895737415041297695559213488932668654098995725282542511062138342653293498536253973754767369173661956056001345731776473469765037386880973575851168288891841630928260201007403911121456683182248303292441844356131649304500836783518122989521378810861303698814290358174864639171818587328613478956545329587379619974093102342003772529770255466133021586885679172579929687281403347373922056555207222817998961539965581462863008129609241751959019955725720465873322360145344470842317742027640188161890031079915027555737182973803607519746190111456684610302015288970289428612384887822489194458264382326114968369176628922296233482759625040735159285299719152184837731671410164688320765414027289178834336721062215131446443728149163494957884991623771720196383465388568419808838447903331094272928918218719547663949706790934236056914104997882572198918501977576498620764431406174368834564131315397029909959158800835995772321231785228073240957019217695506156519830563694957357062382607724269918386562446725844809423313632262546870378396674309115547875279265476554587945727976129340880204239647211754583614512046192985850853183432367938066616285807242097984035729226567453921994462386164147513329339815722393039753160830296714965825451272081933915583628784521419541227231733331406020188006401588137281332495679048813247132612334720465668056843442174482381544407790258225126242638155534720785541125168222722353283250184397164047845498355078469588269018398301520577327978428625422132934690105762461719352977087132838074308201400697849210633166862998338841873398755804157579837903486151344214004916118842509530887859536612424690028268803110529422426308311023558797856049959141217397321226911039459437321754753513043924980367366301631846817048534347935157645787386216574204115426512701277757172801014303709448335029763545279110791177994531719979571688072952297637622191767160024644909679259807600372273626350650767965628594807245077534673185689536319757369280630820600168694445058670860145529809409814318630937148874547156359028279740379789118166956031682519672306023071693965646952847682394779977852685269682867198490393409017512963688447659385650840051031904219246558133519897760379400088121923151232092347688888715422964922783967544277015360486917081467079794747722452285002269380074395396752576833631431243742963515898536674164382668491674506078950105894723302979989529019072423981004258059291200923786414137496217050763860019793992454111923199365694806625969833178246701311045869521932500718164607719722386871877682380674654198462045748804049142658498719015730693611978342596057683036923248300276569075471546928653057769281659232430703168923538654344108684687965394701920706825147889345273878165621570992548151185372399477059928660036453588418971176704090875114655966573444064703702448253384826424867464002140086260211278476855859655933375404658544675488871068986449800253881551073306252134791956519683152268842853702279569760346136995704053988715606794456614848338658361392799302250121769250344826349989330699152274792829798796401600453870038274055702056534265775882756005751476794442695957232103588665616812695613904811917886092857856627608674501823912329179411801436673999097407071198058155125576206281364377264649170300073108453150373947248938015549478486439968564510730946930440384215915482865871349206479522394993370397806469465153891780430785699178179667912485859182826173361412034591586072191917712099270394331461776252698531774776409377015523428859898202026662456868569480714261486406359857957400275968430386478984854309039590423119052196330320457342402762845406749720083394545827158721356326273895724297782728645821068471557673773337458506869121869052283852339858167827603279462102177021400485572622229723343513348295120874161786993327053083361259996533568865245369982137871912942953613268681783653744680608772244129380147538734535918935447260838412763094109440519527400357728378356733233710111281578261133378342838728111234036585293270814590417924916020231182867621814289168392797379824177092996524202659425429716992329312027550871498724455410801377143476540757244637909486558963614954680984775297988379971506944087865982464059327381301018872586007379820127459268947001080147997497687297675977795901199546692143438404943529242102326524680429094821406749643292913614898700444900110398793390282092747105932634604912997169073875096911569397286759525908889795570505025207948563272737103445349011530687984204029398292544770650729808372669789468936469646292737379709639191424391566871189968193686151506561985015874420268688892767605857850559853993208672330990820378735308342216326743107790537813290029631687457107671382230813545473104196606636428366128333566370272922248690584594886435668849542183117667963330232760616610892160456375462755324474007679892315202890543953333114084440335385493025424005023295371070970332177624869295206462844397032988036684301115552831197072213202025804566927021029538478638065880786357638522561130203428129701673885248909455536101353280349766754036166303648311889848337575116114508649698755654307043158847983815298589537087206573809286108041305755078202772828873473024418981426241075200478049631135918386746898385958877314470883117811979749776252393875257252187646050564723465233990383285587328138560702931027313661765525523462408100149452102212296187813622707439896817959378686636833320864163128816133573923030660256001652074928995695988978699297960147122520522206061731637652143707274625136970384223532276920102461959705885622639982582127479777682658383829801383682728906305364656063959298759316053851997598966486104059334742374334149722458406191015864479544510284431961790506931501961934716278407888124550439238713506175083687150917188617755738592988260217562156485745329632679229870220265892734876228112036569377246762501117293022521324491232791645716687055589984034081283011471285199835463067041793247644855161069575492782780190610388208404216291804404291329514081602116600312967950877033016347084977762256761031204878626148206087574153460859358924899540256802497138351001591327248567915335665041532278686792685467556761740112886317406366273384178282318318154391111483911848198588124604047378668747786883267768383166480603889574156020511706955748009040334117382487758394417411085911895352670823511601112763049694788410726152007719920334020318559511571486165250137251575976634064428523228538538606658383554610945120441359034300551048477082733139648189420834972490399920883277603667247935157748515374457283340589810303535548454941854193706489766646110231495187923092237165213485521396315054080677802645609053408640554549849142717603662675747233388420281491255581220035987013109734515207040664622818439561413809146860445812222043272363611783074093781579726925093305897497506811508947212827329620632804762274161435741576370019852484782384222475948583523529343227315236437553925440277762146731349195634997750058666161486989415444803426205390194218939284076118188636610471948763573918128431026665618196165525092406408893312252770662076078713161673862030018709905600767525777453810143139017357307312563819271299769709940962750765833144306020565409156008903832627309959472434633763191337258532803473488893497542920636824298110459581377970505742828191703461219102914419342068004530666447463429478130429829354042860516692382891967111930776207332104803576291774221223157219980219522301191063896276075252264855639872596250038739717735600379849217807428055188811890681786693936675840147350341043475649209226998272114803079731454041255224762713949252535878661996530107051729052699015478668581321338000242380859303783015430633008205961738015794081281044920216557996570558277444680969417246568402695628741452908333750095845874373228153467769497112565948502196395238940115387697401981008924937755263921769248775437596357316877510496444272482582282067355270507800299193294622114792721245829592504561358121381557338681433833987949023553041220903946511675954073336714372469587829587514541253409604536935460261354615400312585937078525280616019360636234690825910491594025948377104677239687838517018918797270898011215669990469407988551107833570918064638193659400463306251030894582534871167568882464790785676433663606521518720281775663716362253393619546688056329754694479483538980950711611836247884673632939649177666263920818685216499618304570091630885345499054370985611403260913276841498651920639400893029902165974994611375506613064436457908361214427271458699692035749831472710861217849798903989496892054486876340520458791449656545930198080824718384920683345869280296211827623679518185009229034891379409778062582223459603662425771143059779582545563744398647813285276635562612727910337723895638422206462075690161396174068892818976609498807884892123811443826175415509589426940172635399074381955070509641857447281422404858562416306793697803833693644822556707645319383390607976506696435820240647506342945105952213830618210878428513995132250253311304487866003226265839021244016402529587020209329054032567549882797631419015988185930610076328416427200370943292672806752685918898017350725727471538734977652084250740584805691274078154365583948127752667919161750433019752905653945363978118264704074314501238104409973877043991986063179261614598332123270947293049552172031981046625247613108002114160331734411341492095182728294614981430954145573896318234969970396252305039918697442149325918644919191030128941163335528662731062025350512862435869109135494351776344375701699750909670868010208887489644099812102350784710405564200838602008069421033618560902500350260993882023919330451928775835288125207035306783104199888244831821732885567355852469635003924260100491162934482342093169382050612110064062733733430926425936221982120458247815383751020290948067100462211753800417942504074681760032405083561399440480737695482478064243152615344157432695788566523085825550162465750346038547169541364220462598166600181882673400786277546880818026103661766780322443180866767503715802503770163168958564797163180446705741147799188127002706437059164575745131152428823421518136225079756129989181025050763244895982463317219381392927878732557203520017491746354432707866850434212307250791967010136206418159732276814361944342954133049378537210103179756974991704704546557209854222455787037172658990828813782226038584122814483164668248664920320386058231940706319255159940719217075196223734242710505541266469429644502829266143158692034583925354252024886891143633638500197588375523473366035701091427091627122790687633340979358550149685184594858015384623417500391727765324974593346038242114313432152724552888048373546532667026126577518752955280602178783295937641012210844323808117214673486052845728945492637343920402095477265893279884480896165191712449005131655267081475031601943477080651961035000534638739821349646990018946772947939266257868366337002604068308896971209636082729150113792095541812859974888181560166876416399837001718601692696692689038798112448413811023193161203814030197940568270852780534881080760982586401043606426369600789036429897389586191939147484229130295189727075154187366707443509749929488289364703518500389132796040742362762531587709901515401034232736550725463298358510984374532885238778327618580965278112527638206621431915224821466236684187622676796324627101946186863834068416678358490780685655649965325036366135015024407121147428221891883445219655221420306586908854201061062326561747153857244029042301812534325817312118696327504956618986128860363742196029592731519763256269837602732115442423071711554733591400453780505798652735464452679384128317004184433969824673004490071476382639388281221374193973836904759076451195088121179678985559499982815975824966048341324142340440875155115952312263077472677420260403060135800270955078466309921364533160240298170225707001687931996606152724681217777901735748718972251700989938765736026259158839117281285652753915983481288519141774366645837546440595788933759394436375678049634936711824311928141570910138631601422177153243143014723901934578660013164682285247599160291615538805747050586646899922574257340498553005308681287103970254734021379311260754963505006021895472237811613072654836540182357645225871409415028875740419571411866653802594480984963427890126786346030976211740766912298232852696568025209080648567271094951636770327244986412546462799047056017068890528006699524218294456781753743184943261632803481063303108389837136481811851701028020283673451373890383208931874877541315376214222703640683316969410887797652170576467125972517108050927564423792174368901851284661202349494985177154240708776204316228230428497843863871670920652643444098469696481068581173231049650004461935547814542414609540935187241377493955467699450766037713119297464069081508864850241610436097255657147653438562474238301295739664874215137128672194570695511026092219514022479757442281286216555869844476371883174317459390940757057239817697684080332584381818927493884910932197887758344176890463054924848689338433663632558724852797289787497138354915561154045564654938043527648460005195441456140111156804557022353017816530947461310487283198552110692764294937595967458340430935051959487215933275337839516671127192381681496699299860919767735670254685595328440811828243352047100532192590889874626663459545388907260240065243393679815317083373861152843272359211029905931948930366319587092833481718316271601325997073476121644350479451262475938506622117105461418989408960212179359316912539385023631876490422045871647829969561863874541216186447095837933969729744976851387723573007853514793546068325997481592580007567075306064331173213459861778652147759924332610395844704749909887377380195014491961199072122530374288058447019996678895604671030384447040981747645693149694508326836992968274914343112078018883969104751191678302714674860678440153353635494896720001562980472509402999530050057220372440596524090803111353017958987025432888639379265030686629165943224528691447316894628897527645429559143393607963937812501407146956178438635954596072118244778466660208098276099454375039570580985746222924797311174019072940363224840718321512831140471206336268999348460994103336090305478269966641056976104361348992533047650254908758395931324164527722836162362583945814576671396725236951213815246136924491725633235006669599246731068492810853347653777448552956804856534898072975765163131535228951798229561452500013615977076744402177919730287520235591116674350751188231859183400422121945632984480962964683539684052938898809676654753248297454791439910922247984219845462409499772859519208486287995384633187247010359033338619077606008181999783213388148154438240185532857846909634965863998102066947210108229094284584936899273174677900105150957401726634564394910656705679873766321159174084078213327126826521243220829340482974101517540121502294607127276241045028633470266726451074118135280079373242782007301791904025350870699057136004775971423361082862325650246754658859411568815438038775651323701241860939606520154078097584051702143697912870854224073999261213820611483156618375864130667523452528119684102106435887506255584006896602834406333790865622727597545604073801722102553803240548000761831282776069542615519008968772336695480231316736110044092028371320256589540663537600023415499474297663191502662680646025609186700192363611508686418305581735716518068238677871194568169142431456710743954728066336564922574147195877342489308106249312430974877032598033903323254439490438477924744048822155138171550001572628525561393162395529843362940071054152497074098910322985688318270367228913535335658342952633077256490155009739049607769779899035291473338476000097193839029755818790098957119780181220234066149937065633497540030658089690345266869117856671096080054742335306969783433659660445783569737253375835582954003168288716731390481836935622218274206837259030768129403712840677502404209317797205264643341424516090665443789463684970317859685251912544595109389646690078570616377694362781035796710152998025751497869006705874498110952304262474894979699420556592703164012104167140610307201788218501024632884223264107476734393446540091360601504198192690340327247702480913322364041920588377418062292214768872253990877524590472336339754287437471232369804339693407860238539021276452356010558468575406622667827027985767265254875603825822129299230662567099074515429974430789083578488289814263236162969080137462238119883807406785160250772330295231309789268156360355780334470111017173617925402644943096005822653676558709025487568173304580919893714739480736869026024036024633205434711044057733568422551640026489775335106755957738963734368536321999966265374791303811372843262398104635169087213031457530076411897456505284910574665373007289660008234001343553308299922737591707909197515752808276394017941837010749877480030113435731855212106866858855993051499413466298821460348397657483050778680198670391434900060322771435179029597826684201890989099372579065321507536761524008285738286045964307185910797712949345632168628983211320389511454584250360756804005266996411788805205276829739307887727389691817127868904732809334884775715740920415457533888655614485168424521738678498095635647930351770370946055353525420143336207757140603321787653828652426025786461022853437586513081543456459450923808991472708451991640854622347399682071223715008728689543915719454465501140362733942490751090697145579324150472783420013507315942417257217043056078406248722819127039006160997481670475241273647031638569828442218996457904337601418752026893601173708412106377090323754235885670607243853513002020318984513842546491217895443966389000909270288948103327519600453594968742909080012072034842047914654759584280137779348851104882619550362199473158041103892196450353967395688203154923077010869838964212553564966960895789134724307070829929821336842001611393821127379433623530010264743006738135475523154639412655964743670600537749851636607998076692496393185436974552427255621614806531141104256327636875089055127185299118345818498469968445957701679041660952299666036625109646404771788069083250290879630125732286517432441556328141210092760184542117528231023958172464368667897031827929878476829040870986625797001982387847464386190246489972775569923912911742550881686527247709098714045552154681494798223937604643875390280737432612912094584699384617975541609247363280094167791784337269065337231476178486927765770573287975945892252728410930617925210433665669360064727481090725307756306478304488423624038572386393123197769901413872294146074906982789778862881050522679819034766524190548392883121127216115468358367891596661259255599656749501487246689208704762717426150074582868201045933735900511417035813049655912160853843393514067060486894538823629465170356752065612525038109348650561118699067274617500283479026639286333818291567182352953331270359210819170023161420592771262189969418170228601710816798190678805242449180943553010405052318967005451565543146011280383491994404541692490116949012283769948214239909747667166409082810353080419048778402651077443307299065586994294481129291555132156809422197179183477012471150724958880494734840528367739541928826794900450935550113694007060976456864678297371575190535034099599812730608818141300223238559170728103674341995813193141484340272005788062042633855299666589543867081724083165955177102174167195804324272424531207127342555507935890115796811867451513454898547994023139815320776386537267367073955996720206007423983465180160509607464024355253081171419003814564149600489570076609768108063227082105829253655410774699956346838233397211072017098268299740145176315561244622941400700530791793470452554416995115508397830127018624259525760460361593460215842223680656039451883552264826664200455126814297306400418790764349031067040981319065875202217190794547457869010738284388143446472190906552144852811673076791749015540139121626735227186943643549956290610644291485426460090305174278419799521564190829283238802424114820163497601285604756701024615998307927046860394456243554531884894402308406581746950364716182454221458322646441365368200968156727112041818902583069526787780089692074204001785983520449300916939106648324960654061322413361225499187871544401734524914682995650922689948155089889074434108769658474072119090024080125796143708009000374753342206250559266798845807725704361751323835965714865601808009525307362523649203700214898045704255133219634540272906567847886140699536259810188152699534721937911834739971062050649913217350414166470966575084230320382719320631880821435534720173015506848463121580879473452862581876490919612675489105951857701490576950419538332036319200535356852923172667434223099068257381442447916217651260660614602984047867318682097964018309314964834101636541727286540410792694679934707448214402918148399604478374699102264723374311847679902562661613736403899375593582860174534848696018396904046024697637685079128879029655439013978167535864427277952665821562035038717477451603589449810757393941805522662371685217939645443544459672504616174430159903530368065464862635078259935749162244069996920403404526217388559094793417267048003223628036066473708917785226055122860669539097411375333043779516472515620084135980617442884396759357770652124072193398755745613818776476796573334704818834200244583978985875433538002564570144149646804790521151784789230782577305143463723927593921156166300502472378223259100346691864044205451376291125122826973615497462828554608686398444558107825474287181319764104592272995087345275642468832185368182358218702656613305358288400677429136908266895777520788486832411352830383545955563376612937563338603809907143393253477296640711476245688069329551503282984680229567620571440596771975843613954175733537748516916728123960785969512045424426353218616724749792137452853045366389775904797376103080478478943244510920198835883592568483370079883448927974067795074392770903342249895401712164614065942475383542782857422721549157160271168287913135526582076228263356743775436020518919583329855302588067736996101362071978787959956800013474121796841982024326006986205449131218645061642412813830612452254890549082239346568540967914925284130636124661847645323535627397672446841950674203087714095290005211503955585683549333153799071509847793749353386655602660630215744176584862804344133297234311371808079559763274775982386317469545165682553336801744406405576757466360396022664696411431176232225816358632678318757403858484818056116010005111090195041372255358105368488097784365166524316571567834337448721990275123765891215612584975989578307613777907861789004689644012152096091749539013453943282711420113411877531287588877112805075396088081962908356951746366807036753450722144257155261609789156841086625384688542144165187057943900656288186788908967178172215994164689990483153844415893643607484135903824375481701991498974810304727018467365024924068314628603714359192914799036749770480298276266781232995464100297100131401287013879066544738227542994570771435075648281415286946916913940742869091385971171735635234427297435950050741269802909036493082848707083994654332933262567765448067229684395897059298615174913513683330011774246466119046118448078398075873236055284774064717857837758165450277837594726413519478252395033429596966681952658020133095758530755195407334612452664745105279857101781113213275530600734305918249533209542915739147696009513547726910130669464786411396455462700509588451406789141004138851430111237922090622994671544193664492419741129997337459344831192714414548082395277254384378856453755145338036130952399682771772040670490720300857369923730576665034528690561392013134363609320995811496814512818281785082711051499842976712758316002367469570528743246850661121136532232876683733898416473487816822342908627846182487605758794619637231159887707139471979783142107138847802339062711465368781027553419274406093287649580955438806874660999549013773448596915110759353537953707105234398011299222984481540627568965510619046871958059550044329032465070531752343693084241015778146432124919379523132102210596115146514721564322310439492255123804599528249238894125720024918065702636734534086429886364948779621092112817242243889483778590903728641300814737239006389859615575539332193423209864309971062424349535623842946804325971734150311875181936646621087593470211613329237076700187749284231064933361003659268693903472641305429609633901110691502745413417071855744073876034204626100698080778116109326541221817691354197623456546128620786538183115829604880901796669407039873406213943957638149457424334590876408910050866025077467533392717409124613472770922119587524826434105451028579644104990019706268656107392518004720619460789853242991637178573437249178171180906938790443868571530683328418212807763059365196441720128593182687725649353926315838088991513537720114705837892756851831718361131348275625028404624226085229305856350669388337860837483158546237005194873499630486651061612146067311062439642187670510233079447897434909713643922784836794420795539254896432049894517868966677755790760916129764235625807192494378594664707291722846284773742463190426284543829139642203991943556622422012299667996898383858847716672920847068760254581535218357173491660390605478408264761444115684695567293131623624689093930315227878376767714337335439487697541179716567362011966949232608951055148243591384048795443212547698518761456974176831673875255863202601708481213673723376173468302552013805858299754448719990268699963157028466887076843385376460104004300773954824902162539191853246294736553390656971528108546930631611645184385668737850268300176362007058618826978093132690257251943248322459096543798424479319878437365138186198911558425599410732353018309918868208253879580893875487212553838926437387502194263821678949568405361597357624746062751322189750154129234052802472635697684929676195565539481249690794474783810307516755758099558530949788820592632741420727625112809103965021801597192687855463070187389305067643351563123013655461474529996944000174641818960702619146121619247440268585669704100634461545005362735468214305110750967789604799345060483663654981064268760152149028647564200202301830221059217529511426301664287386305923900753154911108081298806408623236673558367943243015377919132092968578854910725737863921243051908846842721750802719764427200678533995425975042233908140585432591958700164915449311914279743349064341407911275883443565109011644543696806912660657674455285592009019670025836106546121903213436310652155934947097065637734919131424872598847924461867772819884803481719455361030382504253890299170313391583468543494558803054353788456025215937609517153368735442613942764520653204563991136900365838258577484221368888944161670840008128936336385336810932470764093310080853646726051954502132677959762420795409426030324881440173663185338343435116992183534887828182492325960730079559930949912118608950214699081644481261747781617675316413896624396890456906229423399506779957715340381352713426205807385241903670142748261756490707162482856477514405022860871679600092698623344180076339083369588938425854619696247033354520811505466121345930917491575801816679520167743633966087124145770120266670723047662047247949876431492632388546135104253695489923181066637588570045861341999947887965046542375716075349958312213091356284721922414047850942872950211547049275186251908301348023854370226357375106226220225496833478820192832660111949346037526439692246015948145003434806702973689250436475608919931793619336126521586232831508835719290463549733686386607245282890766988000381415598249537204306066159777379745721351585601125211675353469224211083479481122091660470661898033343359916367668987713302094853904633520444323199120503909794886723178296421013625164766495579487204255592285241133803740774245739622115209795506949186597591630300838322109324883555059359960807068998412557865909813115008963985268994107065251425517939171957133407312061201847125464622014635863504809659355074506937415609116702646922882711666035907966567759749379692904769916843341880827693149569013862606535180354842860759231470014255712446624298927550124521277001950322085776810880805931299877539835388954097565243334137549734198877501293993539856619778997909131626062677177222447976591635625445855719348064023573608169153698893620686960672114178114820094472659863256160587822940381025276350614534703278771605736140305493572578958543558875860546976075381825130489704826044644095237330439089306483415957560631073814870889547000479296324210734057123479052663506259230490497145916044495176370321200440912357352378821264452292644473213671743002668645277809812535734384648693174210358870520593457343177225731134266441961997299340289612422576216255503098203975587605780137429382893804717184146354143758502804692810297536131950374062563505607141325008524584965439945108804585594113993913405394462771744849205629291573380357933981185302711226468737223352232887442496742310411853091394300410846459336753980121571857127920766491905036672200151949841756210317135790675860164319039522374577466046845334511005000446988711677754241085256178763712913196045255182373299693522998843664042637998662099203930413765264182405650664650027711818877879067588468675376169439641764301203513864904823045193859877431281827929600081542640715020522451838379244421060512638068791533959264243141108435085668718893970340566038923655312882662996766828351077551276793144501647133237082105278276066556819244336867945177262920401171372334788776185524308302842112944761949739207121333281910044688753353609490989321949395271569353448245211944216890211536132734834456957058466921969366860222869039872190259546406582645115613780940951680494153360347271607024968844679084910376650827072967591302585969738569193771400075205720332995379264382045552925030525932082344423739549545534653222630369834568375589392540986073894221253563840669603586347936169184894654598094321399357595267400682310492028268469716896977961616569156266017316417227730666906870948350683910369369704367770277203600943929100150174322354079149394064910043723378930928104802681097547894591257559076703044082741711913904760872307992770440812352512090900449184017809860884359022952491334827642760233752745426215584878024745892068261266606830586613374305484038895576837751697011973879224258211104458347857988268955750889746440889196491235722976229268312520344934596734283823545540256790076539904778718521385017909712547736302330399655391443663682277648955375881945522860580987513612727345772698355842526951007743491481710703523576253276950071776142771007488847284727747884606065914390589876498448821951758435988480820822667130652564463838969918544081077991979761719939144353078907056529833948814223129853097219474492474549746275019439700895144292043833826584340844064529125373482669918574421449856818463595973291652253795758764445505114586213874602451874583687613371222362801483979461761310926222881954655509380726859482078412516346442335476714780986085028534471310031038900105105067130408120530682663149005821537503461684408100671932125626392593402574321350815660712200194659769146842477759678833834659839653273597765448919745227223595032560798984995487455602949176935897791723180004994349635692154338804195650291363233880672465639157663242373096405203632384145635253106477151370037877269465689863144547645336555839420901103463782770041177972031627211105648014148096735371284215351356663712782256966648366460861679331803448213594623616684285295183662565233340945461895955287759686247361814759907840022629813294621139168701373193532981948534217179016494212507430447737733379354628828348491073413709763529896375573389236511841770103979217927063787721233499607116453971284959370758886518145229897732923654780912662887974561348798324577949722481743355601387918285443339261936143023824621795583296421878243719843948833158881701659889962675240510837693305406471995811002344622664614394707291292478312817406660649384581463393693653589441018081820281906380969957892093746966632657870618250681979580030986127599431472249155187013447165976595245873763946866312528476187738536826786101391688544180273552378438406726518358264736136588408750262049697469853974418971519678906484769250069146973665755288270070472827625283899206851093478691774702868521163640326380278497517468584196744853910606890546165318597597072093376600604878967011040027633168837139987840860476258015516025444456783827302325043836936367475918238543876136407237035530620989787305243880418332582188135817474994892518142228171299718073160368758813122141745667645031273552421350591925341019244080863077969164611777273485182586676174083922893314681415044758434011955230400938548053303612997440760102900948926187500782596069356261689363747208531875640512450552415719883716370330808278157194696245719598712816612683181342537668223228525209117210803365364911483305729025624835615043132606113729163628132156147739591202907798256557103216372090445951413328969150088204580548140601930568299888294256956869585105247541915382675987446361570681871356564923752153526570386696472270771977908383733091754912205266977830236407694021047747396872146473131104907907656000593212807373572237589175816076847823651777242271630295520459302686711638967699653288700135194247271438487825126712385906252528117703741433247215642175605779069290255142849863177814652065789376546860961486203075948579313283112119717597802668961065692120499324065305359153461150061489968738733917527465460092547845591939830613682888806284823656827343747885481132084216671774953293612237293681605065977713100917132503615605854356930121528942334515202511145155422050664953922344102751858607147944646839867444119044292796761870455304004146469218537895304478265940256178890040463230250081598495470892069871042899512182488670958725392130190069524376607772618601229136783622530849667534049367183550761681182426478779149669815263972646401277035298306913551011270207912189299081443104184288679354037497993939876210725355467549144190962589348191750646631134246527259500652331824191330836834490455433921008156882591287097645264858150757110276182934495186127764543311968819886172652064007560547272704897007659591840875944184957144845982228831837421496054811731592415475640341362155556334755933905540981569319674650537872927683846700948375593242652762397046233141692877660043783196203934174052112376900096718751481251212903975980967302568507456054188101384614759147953184294716769285902460550181420733291178295141190453298633828040291326583694468183164073854628550509707021895919452754733798279254755144756126677582195647864130491433382668253943841538971209564706119252176555020447958354540580449568376596872312511185410349652051051546342823898801892385415431508731360557650183587306897999505541008730560428887552419678066763442626129557321393942839025248874088610813828402263710550533845902568589661130254443613942665772007423771007386566485296241127054265638797563682452058469321913326441349481967466923222497423845851976100083373853341892084602439820182998515119555513672023668107067965014267772009416705345588784765034051846433205299094047871660921174913797229882779774402001615739794782887757391405468339356518118273913335390806528817802119540749065696429504927313494906832968349581901358008617904303726278682307804784434944980401247688760687349893925561892165712995337723149616273591957509898155329340066081111113674229360788929295173349973238868236720717927086553889914413995716440650535006085826394334026998904344975791171653455501600087065333036959945090886792425901201923733289023581220962676268255407152255012239338135566791208682739189911255149352893165666027376689610540934584518635891445975464205492503076120936019546671388808087002119494201994345521399707097105861606218752876875662088372941002381049188913441535052128825291768478153796286474162370428005398076367539441361142336515531699784000956477720533265655240018177689149733849281168471621678714474503477938675154239344932976455865403906211438164918869548323144564776136858420809327344734050271129558568934945901013973720196765488016071955131803997503482210964268531693597642220937296728957247294816864717224169444579487173976652643077648106928574806568137922559144076881654977198720150348034707121814628372780740996251176260484661516643184012997434924323965981883585559002958159562104356043209425700626982943578260699363568182661940704554370454128541901730782996053212549326057201835811258273384864404506688275372147132823024786930254687079718933754452248985775951476492432123741603022262427501701628060075215810672935262640930546597624171290870655622551286663611541943808904858693831927617017311074036244070963608934780314110212689808455322440943969792159176043275093631129591910419383503872298061753524497718353231058936612417340318624927565986689015268983465503361450775562095314618747238528053327505396924587464335296663997200462191526586170065896764292779569807964015926895445854782262571198833565878475975913632847345897533863077034884561656795269072300857435740020811025257736173361634134096622005615990015705831627416600989790646677552394966289762837401248688898537744963811142490489782689169240669261725851306299372510549160838382273706922689797764583592259951798815405160892197687134195428551474617679315872310772046081091281952360539369656455534980516446468086805286068579668147464986859077714460144850658126413302049636620110859090000509811949317179167477874940926828070286258836039181344714665065719782650673645016983240913276553364292403012998310475439639726927652899263976925433504582280940696733817824657627388990609493384343996284467505318706253995853707639900595778717102367968998310178969851599491706615269322787260294220902619577095299274484292495513379334530200124320823679579276090124050952615174325571525274960489172059433918388370997777564844387515559139368065095114206555959277688158132238362004627193272034083391403004611038082151052628237526862389908353798557301906355710559526677101196935937587156085158054673341441526781967240332881020260222748560321145589193949731648981183148560225232942986692365006242376100576971418753030409115438464156296923968148619409369859934265494346847348503477292161836175891226989460870424400675830796006818896946005207405750620050345225678590830009431467425415467750497807116832729204837619880191136118324346122175360927307962286150502965285940904345253261528423106325842617482969283444029282410888811184242036979176911394026414594163300598338846088988545596092374327856008738978609896573220455540106761040807568113913235347402511976488375287535646523289678127476500718404657579570027785537007667798675122081829689768114606419450195099147017861327509759207616442616053617069864472611749194842232247524032934417649700235601982539264195922025125189773824624839156116011389703522267390983096421087501365671817812811365043890981110867578174081407068406079189292320263973790003057070351026176913953670450371886878313657750312809566007443163637013535329211034898066633465952879192693201734498797507011884154572179067969691932527165371082437927473619902961428747739979131851281483431755501891285326265937919190279191275428319571587568912296712047327126128238687775700512502790479757428816460659133045220579359292142194193727076187398012793928484279823000828745935135477011042165577599287810142533864010047258896389532210795895394913740546080470258068552938168057542585760117281099617758256054954568894082654065532445384872851135448731321900269821313232520990858844037181469324661911186163937310996902971107375982509337467148090485909641515184366696849083849063643159029757422255402537863134089960788190625521354585094443375247311012422262711956470363010375805709286506079961019569519019618366400250084651248014395559228646253636353226997300457237045554571615642584766213161126459526193004217882200522839930820797876737248262383614986300429066467053715481361177778353150396897895426993444118568596109170657603803406712588623116923527098056178905889098877280930434280273656501808488761007229251897571503271645856650269131276253987094842815971769974734280477876515837198018866364446607981034803207813170389005517036688063164100698425942240971074005582136596045287626047767500870075960584503063135343118816411249506471146442867854830474718052495133322691328846247945711489606615324244757736126949807539534064715895889650436854679399749636142236237644725816919049337882916157733542801667890720245619679747442773872246054495502870260644812970195574553413436766553032403786223769650330637442406919083494473776279672853058504549178845295040782586171082339529671101657039334088885573515613931421173411959295866224266550562380285554124590302788804260301010533695376594673245065520714792882151943343889795951110419687437324201881197901644314643207538779891095012821754959989280921359854485447232506813107808248230858663473484393840309775242218233219064375694605633578463028778481789233382563817902847206211237278721638597161757896708475258985104409967691052746449880912876175813632023242897062148677181231950578209304077210299151078892261972116908002778819646465233326719170003950092275049561247938340556385833828243626716246938005189374899414470763092775402770419029432832862402354399616731237296955753826358785168705365433570254627752809456523747215603701336157972653364062050679742295893750985131372074311428375986142014674612399843806552227196993712067732292025397738697736442933666976871025945894214949426172471044700141547778262302140889765857678759389380322397038805643389729678029930389832874758636149474635875519981454904227615235629783638453272107044759487996380300604031177189253768057263797995575917390927804978000568169409717165884823305860003647040119632206179731154451660024459099089516479531669892223036653363906994010995059588647747992312733102097798636032940866597470969180458376530990746685767210645202120115676634634254243775839757252134712085361595104329793037356568915580350442400485453160637812287023889908509641391741078545673004462125908916612963731883843701265130498045571993655285554285153831537494833778589767352674174512667131633294296448671659736014116882503067447729886279745709734118620806432415897117931629050636330059615901239309720950588539321910175986128624672993666257257755164668563650283201781359133618795719999664081908008464060223786829959830554323324455433457692691264476892589637085521265353566851590872643196832207816330857036307980141872216382202236951940770171442665457360971707865753541890387413639643379782732158552558242179053948771599505932528350498841182990523567775987034709878359457748224809912031165188614489524849933349422785200423507140358349290458520647106069849499459005547703028254896006757787066211508216763644294443595489964517375449594715282602334323439267987135651966636434783055169220414592819418464890165307215396104611015578012172490935295118197148449782181271281835218885313935141575216776489244938292658094980566896317824478988999712028876973973173748650135521243627811039847522590903083108833335921615932204724186274646417213173397099911187264560888227201019595490577095478075193818122276683310616600943258307459509633819080024879663128546918202768357969941935867759513152989513368328264915734641331159667835502402364271115398107382020663110107431392159257577228794844170599179804676644693913301955238611912587301129411036867705055391006378170959382522362081102871382692591076776663431560289033358051511806361610839330308090667933873669087954280574328686092044304768375865249552897448059655304614627900015770887208795432426032603266062036161866065193193909958548276255528341842884334509446427802415555940715659241308944493935332505268951116030982440556512434727875702000324018958165023329243185788124549266732861889768977316848340815020607381508732230165557073561607161333849587730244557658724371498718814213414279896229038924026883649712244267517997710932367118905346022250755475668887772817916900226269729337799500283880220425640264867652460043851219721253598350732436645031225773822216557545332788185890399704602919229130829529106410786166972060158145538433190821739440610554353927765346182026287003002317040866398712542429261805440402229176799631119976636605630528217780535638248942817089347592853668850947438361041542270799341922575615280221623690729332931229825701620505820027770112108418211866821946010013719212939873011958635500431341134514423645393956108419461046803663592401782637386717623619784279559126501924063535523891274586500034151316967357885606750163569425925557949531549422290745314477563461594429481278383361793012277188158525532822263487102147957033456627666299690099850596811323897497107042051886413627263144307967607748047953689821685235132427404339400125014056577534546728570752641619358585233763961948183648917281392612262192569272568189274890847242375398397481008047787475076746388306428024079568779868107991479433014336585670974355651986933141174553545208582687234833376670026321643384086374572661111478720141110345464998350526660202952010167596293580460397422492147204987354883137721238465938949439907601736488218552627851013845343595385874621088479636559330381053793559679046761762097209515305265245371594514353871797824047200578199313859645554265495935125235712744380253306821550043612866853273664061596596115879015959496078008342688841723829140469529880831261032296260143440474076877340433993624187800546438500392916691725957221271858933454160237000547450466297381987742889920101257237135718984618977965717877241274869275419876129383976888648478630917325301056233965209352808430730322777201310611887191156307918388657484134000311772026374122589561537124808553759042840816472177016840878347981670487082208096950016026695206147777122906783591566925033813647226518368842428173980277256657976994799790641226252469302385997060908660396885315986114483205516899187525458892257209141915089036398148720927653847819582216875080129496437149074133795166625140859688365499796168777043483661639891463800437965659190857776463111384321822029042383887113942436362420046742497735507683338314100348278351598116951844285875747123088970782903940539128550723067748629540615426062426628750294088731022170455335732571121918777367859323822749800060459670264082763210632165270075947792377502497107205896074691617502090384079030569524587581571420733909713055041695799883670303199312460360167964292377610515719060672281805864830444894110903806819152638494623687028136511646650079306009395750194439059859857505554109397426099264164899347675366180428475404945586489747057514914726768305559752826877826595296409487258028950433499346516505784722480334400368745828956200182597797878300725025373840119511609561428960732147484409340288334468781982450760508263470380678098173179474617608601981591976242513357523086201751293180830245057879460094519551753047326103907910370668975117221079238361152442554486104652337336460230893709371351785909994704750998786648521850224406425402342572696265585030282132910696348677364077679633350862799698837852808770322733060955404628744333448583319471485542616516585370825189102763277570382104753274385555497034364421885112619962364713634451524190875927072623324192779526484088609821174009687243011582853726203598431090141845760469347999939097596987532233094427467429874465371628217684511699931215522920374755576305407334280820870595977815275228112888976199901933288211013159879469142534066963384069902173557024298231005360117592687795222702750626529759695582945934693746052060503565666898093250731586160543891816047986127863158599676596542732633457387989817402235134936660840552647325715910956115931121659169754151296840681649615145201230750387063979659999713771427089850852943302910122141650805214298940482223053373936351151145422669015832468139450475105219824958374447903353313700078734417588850458455382862376270245777739646540774564933940612268812078460763525655801057810026579969250878779706663388297678857457076838440072426053524718716804821768924482572070947372646915096719266176469649761773240140120150026995696775880584486027622488905778086388184071460765273225089400506376874218241761842349088380740970946651292321831357859597365967860735985810250622640514263827628811266280405537007146616948464366986301813528792655444722615620268287310432458969662436763587249489444275216661216008114481809018187090725963992196261742680359659985942414441157971860540785399316457461330651277668343656098244082646214971622832672340427481205526097172223913809944703965197555537372114544009822819020359058463651185809524428740428139564485368482889991547506937548270119606062475418834895296417248035397583078746128369122765427425710749930126579372706338458012162451005267271115869890888005482417785492116600193863598509498963062722515529389178718856128022062216384330224870150472140905063197415647884596779250520909125300025844755517593460879381304632311934820964671321558283425581579218361726487733369213646706083450819905590955295153648300119667959774760311288931768251437952318012345344377920489285300304356258818865460614755957704251017840136537828651390364869660704133022608770501654434916442324389566616869981093332674314117962238137077623468542144866714588726981886464404678654718015230549665519271163144994999467296764729711087475959915301173834557426868352106383638764921290782347488350402503349468303830493788054586417956946163567901460453238430918045157792287025416297420699009837350288416402651733425833232379194128701886070616434009569130118389379518074643071455691654139631421839299632443270215331541323845229765221356373706743177856686472425786847109191820206407966259941880278023140579573691249799176325812431346656125653635267807495036403215185484703231701189049224560689161005623284696540129601245913045373965429645819179820474002951729939168095413630366680203779392492682501083558651438209019335878165104313755805786669185150409389746824147652384159876396012217982249112659879446960787829397950149222995269467217413673288615776413192381953047019580665563619138451357325252155142609866984344655603014664614722004305085065013333466099165644809259195484093270003512457430787104814409504426050168723335926994421382911596265722593802360905690866126725632771509461405029104414716917777831655318677433679795819074308765626810680191811291238165201595896540215164763106997151208036516146142984366752128114660683696336273192869477789319027742721818687424979250338939755660801696525565433806845473523832774068333840819023898140949704380876197612391452581304075844414161174289667656899362917819996500354330671258669987657785185730389297183649278337709581904141884222394313966309090488264280174061070903134477593335335653874515330998792967188869969728311488296113667622953376972075377672516835923306081767700924298609690998889689410707033052718964510444386629682511453312744640055846260902516434691891392130104083945761555726596114803745159751093713585736292784625442474701635615796391673509648004404279508317748132604230351741125874104503683634728750397426270136902225803040668227369169125442451156892018819564128877820377098273996272411090009170126568735860162103796151982424920482977328353762129087924563177511803894331910995668042384798297238114231502697680853024838835670842018098225286608176527660709107045113012158626975790618155993269157899635065137734092617530093140865776807279704056734029755089240891382339064865148224213745189350154612925907213146317139335837340947997265913475570200550151264158900599435326991832491416651634126855861694583374482298009846378052097930198951065273857376456537530642437546845447097093730131476705772969770771975731986418256810434547541392805233633521748032533932006647572381975140561634755476359405374705924141984669081796617407216015755815631509058749051520327187291563309742051524996727577809780936595629287403158094728983591160242727757889896729942564517118696178711481802517416754100594716483773768321655637475881610397920139282716873064836549237153836241608481621858442820237421797277803314267448222009737063179514255603316905567739012920712790920063373170816451324432771039157389198223004164078363487710619200454319179585414809670815457924885203007124938236442749395918019160793999730854250752334655753797590916129388466327184200783331825907215475634451969751862149372845500033276341871874973728758512095030371169586713921267963033469399957718851187698892208959419693686288133604417042097025417216731685319486241064925789596036250947026220574164008709913052090960145348262205534780430908796054593544138888840412497018903121249338447430336808392367019849859032165783378613821211737984406205298820691666874068048019868140614242714844439734224642212568383499093353836970848066907247519144191081218067044108784140271544385434430605520092016789658847983322238519467318394768822271978773768739109990194588058719425424303222187449278931994546870455805894867692572067316562144700140035209631730550449003740470986725020676493699302686053164058282725988990387445795340618273091018610791999253700090107859803652939598750205340488168020188534587978112170402240874831877156751897857482409180968294857365730738790532026000274611878847242829921514683100241278493653153049740356787661888895394723932995894954729561225056825011657664968371428078942685176624176152133708278193080545994115829801887843099930535295645459934137274961276920298545641058949657108012236482420303085989416798394076609483972041079904463951041851440726104551168667382122526651227384128572534618065119604889853303324800611964927089356714802768957227611804693580598104943821292784861189161591486428998021776524157981131319931828191164636164760793021205889261137521028176311647871515800632536859469753098471849144998948260844141558471114075841230409995801739927148721335244022364275205640663558368775803001343579766509106308681245189726577774832711419846169831369615046930594075245238135793912608708173227799691872550553759207753112324820240349632705657103890383470310578140014323292875115637684460337004645287403157447158788609117268751988464131676139956956945339417610022918099824688681751819098573072991611773256791439978335970564109717197526217389259257233133475991623423054137083332395745250331840671941640311685792925314263339762149185513342230860010707825355803747740313192870138792340299499778082029726100656411382699577426387913077085661392085344069589516346723314206667333089336571400502752147873950604259846434514152624072892199532939971828637130062914185132101034338965679790855752774031615463032006031920339804114620525054715348998010102625883660145152532618064121998827731510441851292782291970701307187007589429692613079978032323213761104829980394440999522781398420975790156828622419013238858043227577470338040051728331140502902036183636260004328670659303901872838477694452557357235712478714103084772234488228449455286084946998234740439529888025155359927327432450306573754463444715377661887193006164242232886796638487534496931343378337708803723867095897485811561744706780637540075136443730582316946317935510991514607285140931717197089319052819596236758205029440001810371624746701113925542387945636142687075358611909329521851964456824282892132838729570744748280971310269570637074302309722132088075093951950802460181055922694873077457159287271999090082565299427126269269627725910082298208581693347797303840596937607971285175090763838324111415698557887607407022251255895359308250542523560295668210634780473160968561635632227817274890935814827232527214559638359730756688742293765393806732923572992125372400272846525413513719666889960506171668885810600033144680797811199022163872122963295927338638374556000150420595103843593709441605356511478467227359195396922625795671993781368148995634068414317057325027187217747534552062649774497145487743732209045639859797962819943045522034889966002671986062350436704054528251008986341761233171430972140907737101711453974614898075882235847598787228722247724165828466299230876765915496383811611234663662706025038322445833117760788177691946166414517294748677083592120683406625910021443052498269737994561897912320602133099778503687291040873154397517753466588526830208584695536687649016145054027102813045504634831870797924962470497350677535737517387032517704818677249797266057312809521112279279278249225984151244867779028323481975840603770939313505187272632683131765728806110698175917411181513377914679350593145885569739987980416216053585125365348009974421109687851254454165965201348112087473673189214301887891272807080524131733725123896630326211108691071553555777594003896413634140918260002600874896384508524686841250933973844846291776693852014206992015510553335961007731467778686088295523494009695921076414385821358904606790400758817201996604604020762263026882985173092445143312336393775803968905785416106098270457217268494897331443966796948407858324451180136569388107304982122035893627085848367610577089952891441558729278870193383008227182188644405239628918595263739094036529556051883046624073084819802515143838203222158184747185031780137343166913550306756426766077927629132482407281983207027044909215320287656869688175078267735164506522433686512022827862602631709626547738215184324730757059189889125973771528841921447369675736332077130801722097499155945183398017841929486531371115844989716364065074225067553336147234193462355956501748044815118076166861792115774461699329708849436426175766593082621932813018585442622639520300677715783680129120533933500422875060178099934706655390711994528503151204801232468652839854131630234469548780491954767038423146050196951474109238160590446822476115615267880041123201244158888264905522768309597317093550755626482793743674669701855480104274615132668877109248235751195488220456230499639628596162888342797964950280788702006544336188297113722364501584696395799320961386415580526295800012169818489018016119904639045210054332338841924475401614946925180502243861590130780224294129091018914999061005290193514585422159267183906851846272643023391966167109649203977162515579328529891998639120715376775837631557829572787713701528408272592758890057014456329581868488748789154572775679149566009604540462850964219900056710699793781560654674293162992676927924333005580719101060839173789607744833569333127560493620887227881456352378315476130363925823495309044414264230949820643247757766512190390951913481159234116917197961438160521882255977635295072212471271029429161882701157863723753310801755773290453993842281481840071383119609601605846723593723485064918134399364856198710642354683412766201207508621769994188145683017114626423757545342845040338437142945938186747490027079997611885187199341783607544767605685772232016303227366356855842033759266331614601084887972182396806008454045843532883242584898571851484731371779350408433712606701237935212542363216209199826195476672316905639008949642040000400407567460761157455248342805359990688238213113698756634651212152937246663519819363948744796099815573709888934004252962419150208217030480691596648755412142018408936843295273211573602815402998308536438565662666893311639989424805248170866556435318392623102358593943817958998445605661256796106700990379201203816554941793785670396460991947203251001695574351504369733771151995326438315797524624943409608567052524938897497878945033671145387249435882902988928316669539405987036385211136566358333407614709301806991736468706854199012937230776811983827791904829928161979281722443880332644042451422088068505315281192263781076512844314442302869625712921936091761185556018444471466971556470705800284870616567416129617714571473373530478930019882426743009923868436327267799608975656395168901510591121004746153896845709946931025021649981696169095226810852919180422907454239177053548990945671379697367182059535113334708239290308535012792810418850610590943487498802093495028949975154672257152303265702506149941685488372080019035445780206124493125183492574227990401811965591658282372768277451556125900605449382985744271733345083816173108989315985140120050513579473762384301955301945578040803426177019950418235492490667181684050173834193296841496070961400553553755448276304315285136532647445634010378678534426517584705067218355047505547169728125153597407509993049950381039217656992805374797127121933516447356048244704362595623091481292335305375037318201915700687993800985431582631002505380442939252265545463331181656524460483245316907413698187879930480333686444916077807205284808747732847771285579245479935817864385662102836545124736262133083785995451851625041248294721555354615443115315218677793447512034870840619661557967968230724456238594603511595513229075785900311170672015114422431746363436603165620761132264809678573338348777603486207855017467901184001714983863074267657186607153420123138609716360105869204744802203833364414775192034047661276854725560647364753382036734523994707649860881600240447945937873758471020388064829167449378342841935504860658489745109560005967249374820091795063928796714148658950758246455197760522501619985725115262616574191791049919888203676525513857632880584841481374727958493682377124364933209183259314290732729221836629078041698308401878681249450056591456803351477932948380627049548087626656098125274676052544882998675066645518557422940548992659989108394473858339554646464250712351938896811772160220933092084885443899143457381367973321390216848641241078961094044343560921470830844603059556357920411577324043115662667926385839721326762815969233241603503104218156043783058782350349739491662291331606486368123316360514752040115632072963235757872490259641420649435920689386293203810511726279815136616576214956849057765674228607252394749917107577548511942008528284995144030881579740097066620508561641703999379330437177553215675387506362148078311336149728414484432913575223363412668664551707967878424070834558458608978248756569683129856332971059310116608839238849569243504359028868968143315596229861876266384285804218392690463299928014098044514580521796861243966199546798571686310699322302922840057272687423262245962792396929254383956966557609375086911756126523089696157960144007953440205801317040346967251268727658851798873666996824877386371998301756133495065479707641815435079964722596174987229802263631659767493810024278593459900321219972524988098651730103273718881459670924784290621285581458698896727634157486722026628642613221314281072307346894409925928975008474256199298687113330677853206576951462120167832694080167035278684675529815092322359437907088135410991582943628266714752621399572226067772079332515926993276210376779202780588744607277088837158795531179087733142464158628113332936905598964556030996027053160856694710548360354220349226112625702337513925853917640713941047395180234155522797625714552695932528050572754259912326169754379205463719300776151939521060362011247155305139065318898775766913791993553563840270781115857535698968566764961082832253949681113890848919654958122786004637029588913761598340703155101707313417420781969314468408433651816514518101703181576200213306434804740768794890157068886527973470665570736037652810825162278816783341587573811559873571577534519932840083759326703217946736515172575488228482290823246934784857505517384740407755729900405300705940036783633268501250996391174727535191233342013528524501187873520686495783976437763834719979644527405909690954445483836399893262945142614256519108376555799851307817023507391187771135176360110995405681815283614691443174974420518928725171970012698819779540063990029119465241909499696358919943370137642522387092987923948787047387886968632354630559256140757001316439890620295707926819281548006103111827568420865845923741785641857288688645813521711103490069922247559274130652495404597059501346518218047715468417763228326700688133587308851853068322805501843521905667667833122838710441171267386195662951235665525769029849502768575958992259951545779204283644607942743759716735969394102584998774479172850204941245398474035472131079349426571914307705925869325346554934810591449293203734225984721907993885834509251641713473915148129117204368592558847245320647132263092206291526318399859882173682266194437279062870069581441063225928241210435623009367091373646672482442504054267145634048165766606207779510364833611436738716990242476878807062131315427677047073510775587609726337136634833562421746235601527944331881476530600707487183390493038082603155548619779237832278501655604430026694247621076445025680507066442432289546870928926493792500059374941449378891795023240916407221955794366677892052358323140300472127766011852789518262212178363745988089337368336537246664989206405886332153520114620945386674989347363900535252401856672627946334857930174801279150373598073691996812497041100977616062013174467005141799545283041063846980152131183297797178421240161477342067186977682922676363035478495691435916988050101927755234044515558362367369794607797646404973908579312200566433355867174918385390688221960813967688317438420083718062106813713488220050446982438897712880723319281891726011175665897236258302301801767878421483762354070272793459226460371550886583591553028575486361813822428814279029929170674955153248581874181713494840800490048880575784249167680387353638812539356210083100618848163937903962783897233874416880593279637001408854435801530380350914622303610704351573724111223178808620017853661810942487331645500580902402010054479184109511691341059540804643274956742316194218160200105430705912193906682809765675936363802231197139267297239418013746558215317147255110908495246794540265877559051922308646940361255079296504861311452654902468621016585895581973871105321832663313682437745159708401098757375611177113661408125837383272149941238996374410162714529758711178222263183870501634379391874652119699950168008757648206237151813430117981059845897717965070489057845757210545326249655831908800575235727815700321962967577097755050688252478039920471413299669476594554952232801981366380691080066101188712713245064683770341222512576917195996938685480574631333322892119763871712268838705353482583768551783042386987610179148587324715355235025379127186991922991945589257310788427975234743756932992667764376056036912732069622445589632190602376687556207065169807481296265294810433395951042940545029965242236186388895701953354550427870549449462080353633192797436496037908799929262712494192829715534019016211445824873712100486185820041280231424520990758417831062912503416511292313112860347189627958921686970717148510495411650615863390965841112437238091855875352865727819844748872505730041962806862141427113840069740277151600693963262839669776054176669482452209529717689440831651962273232885264008443849508929783175026367263062941284951264340412942778127211454648339836298409272479628309664975178292379311304332145282196155337034253523556400451906616019871334178071383510898897258871519031914106719653352386474660715851665273216806309379929784036227345501660224679217913758158048342665284725573230012166996916358958491444544578555718456027187887972975392264128690849720896721897998892491262892839663035088438909971428317345626486079772157555763396990243250712491696052530391846094800003421871090844177929824556179129879013427769434838082637415571180838392797146074347427791737407893606434254710115653693814712612949572633518002365100418014831286751293650137436097054645159220388366697137430646277055200306710833960010556984353529000847139075816040999470455498426813537692860441702581399613430691366458724153304133341956744635302881141990258859795841097005468087346038706350976636145833183176142707918404845073339105268925623362108635613278953987298664997891749047625968873528048532740296341401256505422011764855770497594037326905661687479739721633394034954550765644119577741017930930953771585033346531863460356083448559230677791412545846759976281378699795308134239241788068375791938048211842985191019530479159105285944184298388114112389880508906422132975361423765246774631618316218573404942044227479799359920798908161524554171662681558833144405126719833001166753706117950089187267944561477296090540909227546253030172679790799936010887625555835790555582170165017423424486881943906551908930177625685770274384382065122772467856583617453527407864208312615876696369525009418576965647954410264859091491685504561022214147763340558242851132269017743966159976456745669738426549923290839630279342299789072796003746690837032701290986367119316528497348037213887972931280660904995943979749454947560911533860726062699404020502787608046052620235316927217995560795369291563557334130251292766691507876032918340832683128596617560158450178349578204711361434706224183170107971046138253392706638503664915070647207381990578019508036769679029172665950241802851844819767361180551954348675733727271519739701183899489070106065523047801293393290208466923874280761980758931136091831670031998913926832448183806121295752682590581417151769609144730286259525193708895791274779604829957876558309298070128655916446474559163667936396140200483979496947289146581861562127356066032030591025560806538149316425352800026312361236666924800884988900990323564867506477068825762290182457792978340980579922381965121819203331206327057544828859409511180904770842287473494202687574578345800117835245319534825717235771746213271820235859805751994800261392778767925528891076726792489157364613985783392981613897780480548251435295215155749510993816636887747774858137983060268968911349384379120458513488131947220671721173570755074836494909243803949687554332971081639890937044201499278752574383887178879060046810550918134842990330836718034969860104828077623939897499472298288667789873950290324364648105708628619337201827823960123897918672790979471376210714256084863428435798225294036372182405669818879103152782551299505571448558041455419547902238566278368692919595310206231041272610538961701323492876629523389678420145675795643146965897996572511304635855786431074040863325940382284849386602225434921715100234542542958931136489615334526677111763946924491807510582503931133655579771481636664528826788667895661677516834851953794555427495713434295879611519238746227380775170642268252956335836130249797067203011310987454559397459848654246756907018363483108815087532715397539841055773747269680896872025271183500203433001970270433452928392029044901425509287745903317737458112019651213757821675566989370359549926426005280378799957010536204721554203149751743262627495003556085704555544016704359651359828979363984538009961454781092066404865239974870473400765517900797421818275270956620796524718671077040866880610468755236018170715050088883911409141420643261904953134536148291792340379613175455684568251880297456407153481719788297652748271912433332382897864442506604856596917665182028918450532874833152594663972913811731882099921018451333686408144622399346520606821263797711957172426399067576888378173874663910491947430217554637069294000075532170440258564068048327416030165402677473547089656959020290789105560487337780890183353632078563040290152445593233692626180903132218912134086070086870572427694941920634726605308900086873588946850307924155872929595300578954540291447267443451906609646487428277642143664279264574203944764869786676205143355241034915832748317715012124945430653033026568978828086223244392701250435549337681231412194702749502290231356916438625765190758898817917810470104690395926380301119916881834785258562091568846135379642130624994897481018416204540560321304901591198124278437637280691938258503219485506868023125793438697890549632688242768314132140470880897283066501509843554539949915981807614595600767248865400467960372634576232684137541945361860127001826970029573782117655902280257524977814882399969070259211381734939381225380405038950121440085595033213205394706755497760494342959352963277524903964406820042023221092906526498280867464754454004949667863346085658339782031328934551331788297620763614530845767968016152330818182728790292470210820155866043056148600558480888754550633853526703026507225869717137261677545433871096124204240285647793230099967243350526748804139715208379097831548542752268283782435138667844676603031845021523092626305473729057958085466940337603117922333640214576737294435142654148099536899642721522012438606640871549954532500895095177275085041933052648426662197153090620271921350833269876671368576248805432060643786626010571107549969932958356929998629667610774457653546822760423074464555342215499736315050964542378018261451336459838591016141624061991626713516920485851956649573815804537568556404613557272025397808416260713026649363352096310908906330156273472064015973214465883538811185554170498606064846033594661528975374076000661386478847663321757868645763739795941352774149534748570240276715393928708641818568862333904509150126405845994200416417094076216973185336881887411933305750043004859125723115538979897248344266960741975687833765895486471341447954346967893748389250050239166998425430878513969078297293975534238663613701689973636002507686394077822612329924647987556128914389090514257289326695194590420331709210015830640021942731733484756117411029465180739690093580854909108364780033038453805216315086272526654890939665037141418213540718307564091557748392350739074321257622167451224123782960330272137345160900702151677651582416678802992375775250334630803741498735757418107397373085413705536540015293517906321800179479056921657369477025756486520426921302355761589367873689563375518897822353883049576503642595483152534168346613785036746563255902470477979265957104114155937788283303603230778260762947300395501141528621549740913310640501560394762694499291801799785110355443487537906008873398737571704246182208122757432631712917090780932717712541931446811407413096624731788504948178832421533325932429859231206757999982704735623656633215040692197001086232056199656804600006886357529609567595128565503139941137671623184928972976079971021815890710408913342614956411004210583794322058903658334371848955011861914127436165045374256490788401015419688726086780692099770726774066666179739650698575994453230560411333128325218713888573754913084993291642089126169577634714442184704335800778587298422952350496323234208872536627289525810397639530116719346831466081526956309419136493209523034338880309095246778944236987920078309717086674944323693250770939988989406165340813976457123763976731826534466428370329970962422450094859842369026907155003408798356555196218054319385148022074916622741910724968249110748439155316648293729623835601381555989248183056946504074367864601845622846959036060605138375461850018615916371866615184946486679567223707883161863701956134823547173296369254002255445836432993032903298627239752959226305420153083871638133388822860092197848063795093020991056881048456134165856609583992549463025053578021273415997848419145888834574722004464162970448501015860853857883835392472976981465835586000368802355597555989741788453153354336899423845472284915871785605293011975199647733061879115833711876815994731820061547301027353797705179597560210786960303926045828317168731730538712993044296433594496250754008914704064933514649023829052272719390637911705490928851677531320582420280980291144848118009573152765580136182991251255455050842706212362899807821617029592976651186055177847414869174281612814154893973125257342277709959850780649016241085903969329574467127290366449394705320705343212870842779106525552337746622987921813840702771400451027763087049933202554829380044855923239509259080984607715854192789909646461538548357315220246974238238289309324611941673920816878148293639815095161532429976090932171394999055738096804928792880382929574525469958536318614155698634810518656744235623873837223135187534332453131663526610857832416716765929636438268256468654009938433169937193048437805489779667383290780799792855545322742831796485761364656175239941994105061383798871171210234665456973105311870735352928349833694046258374248495397066796642782291483606865439320234581053113864652859778404548356575782816411518243985895328346739474276124474044173220644565789565458258931422722656381698814151206061191205527024027230362930823881511090329190121206298251904175109652910842145157882252347526451167231784619700456897591577716100647134731450074061791640611200574356185811353329710725383189181036088556241330431769155673593340568418443007044024242660915417945778968911504489118470090867324761800840873864845136925297131372796158384907328764518788259688119204348148800127125096171354616204196551314966958135816977898687989069225423717601088642507226271903088153089210920715738503112695010027482909338982662583818610133945491142121914456312331177943508664247132970546657144182789166494961248528864538223027716046811588542724972575560843265843943654947613863829216446468804047957018159547001523628077662458418671596312755200830730538083915843890780893798369102896859351872079662812829856334245540707645896872193246886838309969873913861083329067539166494112281555752955007451584549168767072978043665301385123245530680545314056664851477295732991513060765222671454936143288955487334370160409145877312036802149688858490264475188492447186636857719485688293416853159855488696227596564360486959414664592596983282602827474298482838576300015478573844797170993721780082020116908294774255267408756714464370626110211114405419444057366996261434547045304939692555683287517502802607506111695012976250635515454334624343865027954164475786078206455943862637920488199443974193804673056751943718759560134117695768760855684004328724780309924111746951597665086970136928716808706022901825780529292046014283189398164365795275753493687975871303461574240726442431588283976456158975682781130864857983661829929755558969291416100678572362783392930277292304766679583232427913234935765065535053178134460224770172661281970640305427374357487493841446082370102772765388567691584142892797757983731625396070983267466927786137147698474032955354016100875869459569116218755178645266923206960019196618341016699661182291445184527161033546311814023215774171568079483490511787545859220568290958255476484879779458681912552899649580966088718783948195068599235737114891034301514713273268386340908252657709256371189477853037552466257805426879967653905391053009009333056251669930475312981591919832105647965678379773949071007063872880663887304302749758677383183108382654644744584075623397226095657302895642329362498445293389140728760966993848537609761374118420310223197548686313428415508439267032848291627371139676186673790435747891763877427579089831548251166207047540004044904042347533959528938894333692876473647736247333535238046853239631636824497162178080841445358087114911415055154510802009310684861863788717923352460314763857667136895532760455123273224192789209672130992118287139492827551616875454666723550555316313732603598832169983841859372636262748664331920191981320137223120526278235532946597632987328999617889706586973906653171779134827219262030062717938479939846735510664872819567100289171022489461333385872047639243796043427280649582665138494630764541451862762280349684005878765262575324815940392334752935966125308260978605864032305723905277388713469320513869239777504914024178213703424084677338375639260649298950566605346318006854817369601014454814076288997198295357835251440334666084597396114632513247697444929360358519477180048143777576464637141170006654652148417890587045360427794354181138186463274405268290839678251751787693596344162421712603780304852941732448253658634385033265544514583362775925316605802699530947056207849678522351626597576551895567130328785701295324798639261282767500659124917494465141064305836824914984007926090019412104563800785382671266127047618585704616237707741650180980888114642288029191944197255554035357919130503193432767237948111639445339107484894743617649718426365459591080348905890953904184380017947660208384270025474711564234888363268023561984168324891433278412253948316948994935632491621309269331824674317140060933804051740133747696355278674354000589158961834831545709165781255053131501355787315249773386003908954436702100113265443092757411928251883849615127157199229978373457835949528370196692015504304903744749010254184867824047819649258293312306232697044124764551638970619008952553529109213817087531408603512782091500946892495688287819965750651884861470654038475041788000303626754411282687306156241209641196981954351948673209362313115274484645438798346348350232323505147823272393100121153085544237119784020340780377557102291435667909242226521653670104859932137721398823587264247101753013344295074848725661492314520829930031386021332631224711186428840481789374365758717717903560929221774103449610774067682974037995644146782436316690703317095122601029961063342902519689137548882689491944578036500887455190627256111735102250097528436336225248716675239583539505355296528094497995788492632623485717971059022700085825515262120524159981372986815220570411918814948288229444965850742792425192706652752044226059689321574794152731244201401154483768736002609920419452590368903534329595760811088949562216386224885924001807646520282494067419936742000895469005655188093247406919255372730901212704604040584048584767643072832457839098650079129128855700473590308873453991307760490502541443227703032107835569895012707021313265993832189108664267977196267693384215296106851481781335997321331370329958551220138968808353019609683913414621986243168723877521927144851762223924817713217190497637685202346009916364998016659361041992813818301215310307921006416430770967023830624687737968258920077957764178276561167920790899941649435947575519903395537389278432136708460550746106910284758385818015832672970803404914462140882461699555072163058648327271248459383634384546485545455790860626211686718393529806283118081931924308611634592944042075566015976800278176207303782177159116002894060089220917630778868805896159684360926917423774156974669685463272200398691272904699505585813782988135276129632315400840114746903176187596649107609292155326170253919631959854146265194815249796148963138347286296209785646898918262210379584477439923643516028176305558421137790681708269434454414036657054077624342150342276089799563248385531648151176638729846374596690820111637229325228919899191965111895143891229847867524447959843652583001023051138342124049467657571323221546888961069750556042010193818800679054447489271238717321287817229873996349541548274322910376656057270347119994325428536650574689882807617126579997767845540546167578958918373754585472826860115602950782152232927966967213680296466620414816866621467789682369633924130517854792917343846179331204730267340233223169181769646035163645264995009972477805346256994833615168459962426133607943157464541900389754541126721645525066300782169888714670130599607552279841341228688583133953315324298216827219922173235471288793222812900708251264470796299325743427858619533244203184366995748585504122390292995194390596116960036295881013352715910335232189450556554823437816482738025367351224343914310434153092189393043464757012069664605956318189676010264733892325680435244569009328790112594304002503074981052532001431221628817633172035424309426610997671930972557504933447194410318696370067209646065568585995879518384508933713401388462108256776090287157060777845192570533263923235542111883064728621989970379810440223008295393440582247016048144182875985433931971603467241160726348835890294929039365779258722823271624358010684806656328437667745713020896213098444380780003660155088172079014975284045328500234521438392906343467541317938287989527211628690141915126475874158254231773110104907025635453542688791280497523925668184994768231799992052725043120840616468180664498178946045221192434600467811546314771965765981817463943244712956199647132159106224985560773422534777094167706710205284256975935981164355878183883982504333126123247867664206361183429116726320374004831879988539930149341486356565385828076574248511001696457260621315466349643817144875012158728428150530091595095503104101208034154077307639189899254427378566873372660602254119556206072292277153658327269947426644784111604018271034964952946053331096779997592811461049766179463567032183421554923005780475122813881323879054458367942406824850009168547871082603872954572949377550895399936171020835088022409299843987272570982830272626519540147595540593297746789195758502854980036031342891911212342089128012647436023238567345261160158853749093188388746226723021088689381002551807290161804235951513744148126051196254849839547582153229594680730385479451534115513646955860061141487993618271214760501582148103210345030136004374501427859802061845320388189640027106799815462021625017021382836117813847156840244017146580615051975055121152065011572739330295886407983690462614116542964099245813898376582475005608512597141907737104553285658515125023306219874977857259227188762694782271012562464344079049942780896228782744993745463129127851053783332501059580966045641223187923685372143027291991978130816800933253516987047147843460363642142002818932002771261767542659389253310224602341289849772422367155133415236123357941762486702651054241864726183761344293068504608129174061086129723962858232858631341247468440198708550322694395520209692295948666201836665135735580152243346047021711595342711799007606442866788965751765485224469918947170868614711104581105080868164511248735457965876126938202038698595409937162502537201845387209277668447845450467514411369297509151130547568903496418105030446703777585400067713627462214415471495037464718585933829939815918193094832846799767450175898414467583707592669858631980184368956558007710742033901192539364227663184207863217070418378345997266327348467568286366829129158452150665541861292740312114293338438692728197018026053250259947199398790461388720774649250671823671742462062922259833542975704268223760740946201977804024971417183025684139776334259306194992559188158019035902881542575318629113377175232652094781235438262840670862813126353554896916948543563716070211300396612154577300345741087494023491816475747243476437448199542670123930304973148079424631271196220810092392876636655779107658161117669459714193779621859110875987367878666442994039366639223410568404946354583076934320362833798393875961478521248349947800565574841983241991914601103814148983266751913182765608089307693921030243371253195033824362785342631215324948343342745821918976684409620183653128392687563267642340872179694270407307743981073126435266967642659941967633764755998253348425723020153075495017100164187987140053416551808453483695641682780332529026018443452546735779697777975941780143271431264643588189232448551220309281645616497764558388544266949435349864471493596061035451672975539803442276638489033436486727021973036072479710778741603504334725832190797617547135083353396498597990972938960329654517987956085470307945331659246532515888690252202318533865318537814555311654976852769068922184036621720857578423263338989877854232580869229654199612609936541659242409483553466520416101112320503270595459557986183655638263976035639865665870314218460226433199487992276566816768990150741528934489843084063793852585988628642142224164479138828599943313337369530389491176580926651455733317271316377574985782868408402462335294967231699722374318168044808847853807893081369399866436794666879651716329014120100043545418661457385219830940097223152585996914046391115362729138164944218180613409774781388362171621804986108985696595461011192257627061390434821033004682748982131729579758811931873882632738879206060566411473280692374663261934129843407725925590765051673046779731884117537602318730212300802967179243295917183061690281803212546719133256020778008059848708657527021340967760322734738475583767732143287913524349255186366106751063409631006098349359071623490284875058554757948779836316345583258029860289586115707708266039387576463095153152779180691063086442132310044463394913710289495160676419915412582229563401170729233987126216895396331394738437033481291628019950804536586666256232347170267879623242101477381609101143327912597023441538017616231818048948433544885762248024496280108921006429132258842916548482041296673783490917435899989729488618947273531625977471163157507165783028526045931594518901179198468772673503057194910492985145327279090880403406279982307830171920498284209477974138929441786883735635712475477138255474880185949687874061632002589256088479107316721601969691974913309847021529596141090939305510369475827467869909124240044596699280625238871225293372628147362391494000423728682931757773781559477344322867418858333844324762556135490010734473511774910722011981367838669995988659889075301741112938945469859598831398196664028384052686014456293756846503911487967619489904567941410140725793204709152897534396385648748820617890770477057173059934738810143797705226151667870246650463347878996579862110924240499741294856877806922799853212410756649946661179486455992515437350816756790059692308356286132434426416993617136004750453295292925797861703050566799544473909539661747039469770843692170834549100007512647066809387390872428776223795357066598653554887689138224186080736713085909359532302441140361266206108985762523093136811626444061851879269944299984274211835768903586141595452156313087102910752713549020466125652604601236930758073332294896928659307209276998546766033312484311120287108810370870602066247239167760993399208690878047510429024262018869872629746610613487775590464383070621854910741625645382615084923348410151625082678670539795994129325332933152867687163820938202928721265626506846634883227771483740188804732634189169905053776247872819693430435749920951559454554787392613780354718087032523950473350786502303607901654841469190416402912252257365094979659595712574318177423420423092128924212127871359826137485363743948117843825537739376190204353741338500574113046391683323694260231147201174095191910884288261017684539288684768979290063129106760639766582672518276221464522558856148742248914822193391317807116349633134427587697995373151740402330302571416020880093151048052832040703750726002249562468912067064503508655590880030445718028687323916169260343515075763572797251598913265913306210657000821699819630398670183377982558845844738311207785815403407900771220129718093286624253032954398165464023105564379756182387821077926237337862804381210848174803544762011605786035810087072209440065380109162287269667999621157812774177667388783717980555752434745041703188866105354217991639865859341829333102633832425147020057524749283885691188120676411412565977777798907935217009545672183066315484741327161540381518889181665082177750154962642322672917872091524925562805068250192668000927730409128168750985591474436436132226899435925074300129536573638301617703330757047219829115507989011506031572342891193046738042373261467879281037182129097372171353293481076785763669511415419922090614265039141582871422244504318560923414059928773362063447632714142008070246792427024151244516385302899675673396801292462306057118121065815568260071124057883675064533472335217078830410034754085848361170891049110979942923313104750088709947571274592998454948377123878043386824618072307643445752304997242410239953154736342148979553830230428562604428430830782934803982553377506712753104122152746652444428955270759734875842957694943316447848179924352475670102019019894747741244612464488565984189075325720840937436583393392457501763130132514389651416364012079874818162208975341736577170708658933885751468727492713916810113322222879855011597933147747634589848158584154350683619995336438402952115646128566645316151869659358037000593202358789177188495011916826520890040917390710117382455957282523424166620769201755397455511692869895878369787178399759878928999759211979698654004145510767569164774321623821274567389780145055714349681270307342020897685200113820987382583236423250849783075609719625619097273385740506155390662724076760691102237876190069650075377647305478780572825076837502009210137641578782816010286765695805698658408662629966713600619920238268049893716335758336682110166724124254646018634536586692645181566056830182376420725411045592155007769560874545319656554635548779879021047371556070086741040465780509051908334302820462326706096466133753006968369049856954108096438509861588669502276642407500593143460643191398983914465206305450818503182823417100866356890232379228080613518582143602205761685478872274971968759466606031489270666334988640581146281896076384433629756403940963575707205321157171541979357431950412200382319866749650233228760609990337229989508615230301173210283116608183177372404533451250189454751745239899461448355199252588887470057980155400836884503674966150263223366704005829830619936737662296072081793063956079380145041226498467628289826968551101483933845733305782616294655430578466177488535419378513016443376962029109969984795709457701680151300482406675990584689899594234692898088465177001440208185219679208730212335228556902473352907113977809515602624373777376307793938863982024259832094849501031457707043288780503260181547388522787297748114556179548714216916650865792042260443020411245705845236504166707087372204087083616071976154982026175841478377896228489768659770972407986480719274070486012486134284032959442829311218134382794469274366649121703458319465975266243494207451967991279792394960874287910413641988293488035233389464590946369239691983374287923769078072962686030053392258298229822812866919663417462740907951295533084919635083116553630785843495727715108468315703502739524476184712701071236577171909295356079779640397284836128820431486057216265241242291877382366474229629677313041879710377142271682419721629712802004831538472654018674432949067277646049761845354831943016786979374856460557329762362423915178238110991573887816730345638163850745487753129500778097206092979587665622050569357694773550267750813580336638065611590069164837605661393113764299096707633651301668544826694547149573895237728696359136198611633154017893134988366366979972208457072550221033092953314504071724328401316597092675350187196460558037845020445325321278752915684575977095136900873195066080764039085783040209906737699749073434872011738994976938189352572939735323015487639461051779431423687021484727369394379255234545302707306323948089670914207063573058149900999146488103785327377408255639237268194250303971115017224181137839461269207148019951763517429617006060694729241230252047027682124354873639237091629913483202566444942729613390837347055026292176379394371735413555035161023601229312427437970818442676051159025285170449514272533498058998353171051885471097213556098050430125775781111653362443703789674020200615736972734416828223505179545522968880151993664108999622465163128702987489241221301212602180194241515306452667611611365700656647007187572692407978617293027146231080499181349787858606205207870535674159522296605242509759676798291800991659197116591174385944509185855577273933413103023591239960348635508329584798409296056545402141951353691560108242252978811491092189405347543079849078803739317302553756052766000598747306776912072494746527770385169277855268434950582021125009511010063405395350282686341633873132461174883476630777733677294927335394802340292336320196351716202148353137421356230643026153241030090978367187926815080134404270886426136547070465640885550772070691201569796176208588856015078122928020088231383120619164354892888223017339767559099597110588109302489763296850454960842175843346842187459643285655756301291272633670101171479778588876282562024440717945806752971058314171541552397885839034435398155675160795868376695011615951016378113784067397092741316933110102821389061758264161810223653771678655660137699244581769466825522347012720849850367471475196298540103231651853161398038565496305055090379464751929641277881295039771814658271509918899990323831343426231561144277040618027668609297781362538479484414294868210113578671286014861855182107710289013861518801279338589746409604279934398608004049567505705672111997572148359432036969960707976520306659289136248687505039062857953223625428247802448883785375092438029250270845882513656436725871175765769348390004613714507661995364039773698534501061903138920966724626521931669249513329446203710243504490427078172233655230425906016067558504272781529845454089774861149643095833351781912515727718609391827779182773501805722068889102438241316210073554359151466936893947209161213928177011243856469417125293880739395841963106221360959798614867585048483355473469408557919816210695007833714420962908342920897170017794509167287885942894271147351406983424983286253869760989422472781943212868029531171382717287116239308305203412809427567721581148363435171466084360694762542713172113013638127019871360579419776333569788470274339797456869762154528109145121565628080549661983328029668737625840882553359858507338954346888632600598891750788591827278146402250197946977205763905803199093366659229439062480646133164993704110492627156425154866874392597955381553186061055520637506204014410964643944880616184493139912348394989389380384289093582326485654982348984476049284073458880179816057325294736058262793887018894370815244171251216917306702180537331112473324220633908272342020212738022131503693319651480981008885112935127665191121912299637884210549145352975285729496475595504354888595866808749874418112280091483342897734756430455689263611360948170675787048686889354079113664563518380720966757552053149064313853586219717909452763506221579857011551438621494648392949540553815773055950915152324435385021769541115429898289851861170538585541693415675668148243188036307086063518181190112602798228850131351453063256050510346882403709032490611242555905093358618271082620852241914407051200768756061885685959990131214999164454243433454218832822017876654236875137323969624875437568440085318954023368677251359912434460132212376381195016745804527179978619150417052258794395803867150645580849462580564332172732362556091447785962182535004146612694304959105393281192027273096609105191231544724421753797193873810361424049663979653744385404871288779433908602713973910785647933764999899877066843991062374271306652805226110090252820894152659581473335246501246082205543798712636486291769897570919586420728161894881574288651460954290983122502605536685637183078809943431524958202066757138526810905677197844417240666434347462988710745591691632663082927103825557422419886197841603769909504399371266701296125718011362850574519504079897207003316700208978452324650679093631835127675903835892050650204087721222185029192333758046615695336581371216725648189278647466775978692992051884237548171560770386098543703666118057611489473554747241120146965249757680513957849508986628882298160106699780515378685277631045018336687363272753888867495361023038943972967760461648634692579557461858642691350483236252881730729317361683882998323364904286230330764333984402960126321044628412380202697322791424277035039308213911338681335550660816786208831398379201582429792060901866799988328794248906197173144566880797700508831313439821577982805515204090221209664820681475483081602078218529969110587790579844517627687312412512051481162424936121312605132241429504107339357726620903993743687110050901356983975727204159365369158016998595247964868543945888914651117215499353175442386706529787081172558665657788944698700117800467783704296745607689006200226922420627406280287325224577104502444149751095685732033615153674833150150088590341322877995247760995312082100131449749207125254953841571374512885813994818793475565379454047305910969454080510432001738727096190868624719222036815761128624152624751633124205854283066505681502560260119065374623839267056599680668535734455965424386534534750190871470931249740673137050788422898539197138934714971482807337448824681384511294411858650236355212017115107268464082293311087064291593038441055007851298004728594964946127172576854471528150379877738528241546995579168411948726222325174611081377328646153434230757892586729908450153514863800705072106081224482426815333199503305320243930742705971298174232141855004155640169865497817286370661418007400071068081432510141891402678230375996585852807628129697970652585399765770092190125805373476411595048961041397015180338841320893754126596435308880766930912553401119723798763400365577789259883982737210658006125010369061248208610271579847515626992066508116601156906564493669496550986312437403660782414567762610365001150957826366523226206764110558268070828519828179956021831744360916125029562308321977773920137309389052094967718534909697003527111991054024135114397887560136138120945712814354842134225386781928816776462539111232801233828358763660020190031244660286072805807472232424022710537847994294796608084133017171623598451572233595944555213793774276025203545590099706962223107414181014360351395081816815345048304666281686920957480529547271469535764672158233898967262942281891055418615649526359277262805456724266105684285118488132448936861956733684352858289320245759905347308971008969215907785155771876475318011884189134585131996033918431383337538558803050340096841335279045245175470264995928895805257147189673936359794065891672458227069728380662476627201392837554794318075923040608337409455929954459146121111047157793564151880683763888750309839111277020781740231025465716249000245999108916943705427748389310079079877218092682038158336070030251675982798895977337646283852247886090859360845297704973358892090966594619632468078816876518290444338486171490480759298319473233786441732175272547964063089434482935430010763327209814245586412247887244309505765765345886524595272195890267756041868791696846749002248152693166097615809468959470582103964019022825833921276533889123068247237656214976711877515374379115131639392074910273033156656245444160311918216584550454709083058436780470558724906182746925672194032243602470063987857469720028302108489468547897549415983719282941198479740131190198943896944701604157404900445703910846131209400982228990590923578135521051801299949208990785768217083043372610432678334124637150495292421234293742084552333373583419843706971475218113888806357941420428543345922042634417616593088861490552910906358231523535895251712103494737301952337912925523315771005727342861811766797618415922853515418952625682263749205544885039949410153608980937623241842378266308132670775068370441339181154784888247028106962988355597069864594727281392591234674212650238727785836382524136810937280245814535226400583684544624333322629983068496633989710134364725360614367574073483907434410905774022136730524673239056350308644865923395719369742405126808000176897354204804290491414758022154345199780719011106736560103476453823624122364629135582152101461683927985124145083573147002261502300079374109018159316647006047671106963057891795068094337632399119438893325682161331952069349580518590809324601923786134641546720154521460259341833023827704982052732577261534921229496549177833244931277224748922369972385012455867624708010076890149266686992082186612164628707319109400938544953452061375800288739558879709482995575933222777035891266333744068905055087309707547959300475512485495559118928476039179554944454474611354574776079182120825805958533809102733179571584269506130525899386981751477042381131044835138677368201600251032630425284694099115553379507885897103157904407063290043805359993277919312797923957598093453442674189835323393976935887206537861949239292404106468370886460247647309635783663669473483450532709699135464620717913529351513948493405065605656990332683844540553511196869476467206474310032374043341836423124966755919622369981820900769617575488619902727529744366109397433279099816513042096598503059976308021237760396394383027556156866189248954179123993231584519266890031019773950897454350403917850738251824864411687470451201672405238253854925836314795914850796489748487256897180981670723213239129610078735535966983938426864429748427242744745606897380744207290899791264088365712122659308126454864885349913119972968663089042413448146379525718135685905706702769116128558946285790952426447451080916805123505377362019052949530978554180053816318783772603147073755432576730799876168283179679753223578939016349189967625237206750303043526459892309999364989348689385593245403368746433249341462487227222337805318548833650897000432916915198883924781928326578314034954171463647001167707800172220653788716032218402615655562911381378399656258044473070237436129992345702144212464840712025469206233988416404954018619366893574470507020159187864961486825767800277791092556286610191841103809972757120183578667259380959563213217382589685023727867244298537037244205381664059068910376946497709050382422539946184273001242550755673785487441483720742706255347268247882255933065542199402083616756360338324939495866867910731031097389120117918163344513437301195309129969919033052184895955263968041713921817122845275150317159818542927291682517084901422872950837550578698246538408616411295658517632601916277850550713523892606024313165733018081762141385479668492545985829981267206706440193829797751373110663266742490673891776203285788081229151078918021462172522467462145368194514523733417833943400041715692837429991886136201965936442668901036230468275915929660971458680591713265613097238349904264148885327727503077105686828064145585091005500784015162608612175743365701175165923654041748811021146105741382772905027156013948145328049119166740565045424000832901356019327532028065321985859798787250583587808498910051016533356063420480850431736257129904213884462597497737661981033244034619676742160498676002504765258962941723746778000659166630011840751663052210422662091096100852314128964069830048868989857205169366331873548052261455456651799515964383420380493547028277242167588910684760773137701224191812118076507136370012055191930964766399320354630371092880025375317227383122662723880404508810219709495251830478610008507708018823766565332494186717691911637018794599475762768782804899104627084430204952914677168020999044570947716002156900143730760831927697619159868803693153079356582565653620454474151429132884307809240240029343007158682298807192828228598951706080694533066710026578007965117188545686080657828189868778279380700768383762319637488627360311424742778582133199965840448367686185045596599731246715319719068016960276171609774044347810837308766805312083845434913051983658172937412690820223707111488112270861558229911152311349032244828139994300379091639352747080476644551386731111464405679221256265427611743606823451742360450957373558508277813336126223721006271731623053473917494774540393291513823710346454715782474023900177867753741232085831025795568082967489575168058287441093598420492664402276753707798082611205174403666154115117822299358174524892783194628841019895782192108519975561455386623912576829506141261696935093092800008270780492711288610776121819009818860225740692804964345730755180852051548184050879126003847591744704281459050763759068628541300748000722881954317796397144659658875028970382815082345447463073709940313960904808307357714534972468530719027618106040363369134395598033941841157837287640118556506113419370111560370706767698256650035376114081627642993598252115582278565242175570335532541178316993539427682709240682112981008960499719136519604445280054868456312201672330892955396419545371049765489410868587743448465048208216425450251780112590621286491307060021129832215924498940817252526492343459806209017059668125129459030766734987024374902609920495781380230563774065448090275836408733474378689505354632645285064243094453532496544496850667224541218621676309703234853510888203737343528747819814115972842523224624962524368230147399945433407092802990890310992960853337204307747358334355166700599625328252472696302927293220200847878911643477674130707052606842276805551956517202924298494430116695796599956776645924664655575958588882345820213864695658846628428795660867683428058923047407648087395056654288228910306957034015904873891964928792843019130029379805063483557058663119532248260370546148197353551129385945620167899543824026318787654973925177277499112595673936171616142368189016178782917062508963403004193560104007454417488155165717785851825592497731455300825210103529769644725685459333418546385833916061386690818053498638482182462012075207645175207317114616242373128978587330565213420933955814419037159637424489798629837304183223521677056643134911483427964664159061780689360368857100932115128595318819986477751011607720434479785518202830196907946616512291410954706563358311834654077185145317082585659698274368505020173361772393835580181331692682776664148987260418321469182337162403151536127142869920047419964676133182936924652628090897449868612853535811900349491295110209268523289116922294234118835335371627315554066931682208052745841141735125960489405272268937829391583000706177859375972490936337015318764334775608721803230102748082652242061176003559747825139436140946494824091780671980809224199068577987217904854253522422296179448332019499232326604349121459071081064269993709124697633287304982350941092489022279908263475179717635866058455183331986036788951586138372905397009872026321411170944516570357327519230574336564409771229721012652006941711316004545646844242432110609316673636179715468976801363158203561608805386745204078345509019380929711816697097034420733673610350938600494576494155685982714386710049433365639491521089024446822400576484675403359582128314845064069786010584771856415206847193506191065719081020039320236885421432141806130610165048681982969606983636374655016672145899139327385847767273797712835506141851865910100899591283069069816818208474023411103082843043882840079593132673481066675998047176719101797720475068993788155214890966482172754022702372218058055911007295573083789393562613976001871165329405947536961588083739060564674334663108975847904127202083657324249197274862681407989390949520147199708374703701244023962570542153930380028050889443252037857676892615900110817496117752659388135661224958179939204123859418132190788593939822591541118521119840038761709877228911010906517433049504027749424287640692759214585937042670719678564419336109577475545285025459885668542506126545091228603322518252055043265650711888615719034234438342196592223439861556070223201702346396524130819917085343176383577780720315141793706348604913082608967428533471600228403278257455041583880600228191268079076698203984210001692319541857155938633331619165145677520002840103530344689676069788616507537780079423971579607478369588081137798185497080847656312886323703545469279967716334708204707729506935659510447189686711244793136175397703935941162299559398699424788064463211338462784606292872816060661696169000025963605303753066518392389884920737431256198259598631646604987428602905274658382385101001246949702660354018626781445251183264650790332399165000102872499470747300175543098187320107597946842655218789964858132744584384618362946120935771817323419991641823244740904641079245979345325385036771251177663124700562033385255610990339126907196754144165060978257538928544217392659517725288662512385857255087956518716956879345234877519922157710001694316388771078220486474221564638865715664431714710245954543355649556680759022954739460639341608064066708160882275360600743595009782423547398847205104574393710681898984908919547049740258760111349400759569394966947302716746828428566927832017336498824977482927313407422942190820379810424251809765761768414836367790162291745767605668727109915904301917908584677835780823479458814564981751994677291364684273634950323390939877576981834005764194100433514182662152093838809023971404437728252997682209827080530343819524716642837033167071606294406771455011230641396213150161086816890208670941616906826453606658453197679548117318396813030445526299121220944287351128546474559638156843978304810166309475603360998958999157539033248606409780251659686761225437748452569276031436803931298441165995154773282646902157868624929691061517044828331931764113178263759932480422698845705630948949160067592499498702106936745674706688757497927999762709068880888611268093036905732883844587806635251066554273747733266174565402265231394423959048863623164061798458888372687562713505926294685175256093576832845960176636802088531896655774779615963278874191254141794599986776903364008161495615591904382936015726347070458996614465223147129228757190007159237413783677510305207271211368626983675181460461749837221514460580903739952381941035126786384768835559208583773781137329122298357583739477960526044746758554195155213648946028313629560618690074232505627687113893024674698911515393799858070445453665732361367104500409797489381142533536348105291924230174353043848164799498457955509498245137532067279709215872203246015437673060876907690010497647730345905149962766226812438240153118635889179788829260069693829067608187100604165643113791751836475779497140696251148989585319464381657592489631600454542243780655670803450600684983922700204445383073311995176469682839381579617029960667058924790218658707810910544386337820222285585039060824408528301627075036693927817528625686320147433898124889625770163133541254923098096721226162175810994023873844383054326443264052259638781552534547349388901518352758520675178727539063138577547385702236855570694600549553814475920251653358093904495461852237212718041044871402131670310168934371131482079066022437584742066530353332134066077478807812353039230551785251769170405502414527583403160975408004437029998135783639202553392971303516835595510164114511415186033159786112064969950033211278187776474344405262598940196173296503170388672958783514902798314162487526199803070825764445969983375884682923058915322241882486377667292459503041237268622258400382471645496747640712404018258819824899204438225290196785320433455938407379605298268186082312229628703935370020114083844426873881595517907054158895570685177762010922448020720389505691232566480052884401360326719441995597583984621665059004448012547224426566764264791049036823909502105163770319258674368594121043247166513133205864258629117822853136455771656589972980217675114430839305621351158083439043868811909119565743267417230509451534516903278375832819626403979891017731502438479835063524812400180428758509940652426603382261809306030128251115639926128064334731213564401686952079450112988865933141729281567535587177303448031929593524562805628471998738003036973811844682624944024494005039757747708928190273447983086884870700882539291619040314549772067947638739682558147697396527974614718163844581009911180758885009048079510584928898706977494428737703823915563218014360095797660559514756859214237108069709948072949872267697063271925430972998825426741196513928881057244782668324017795757703194225727166344434441662966808422513792672951579240821404039515980645970019850764791075342292334352975670530808577432550179259396424066105059377671429085035454402977094551315810124689102221218796268926077302683541367538348385209860482477767217619987273488886879291466086088464409185387350549957896709108052315207073044532907340440457260553010456335773119489783299831826368741559102927062879663544102666269590568537877525381777507858485604941123456078712614744293485320290457185473098777908887641625837822854739256245149847098699644857373282236122032573697793227514597195583737282980263835849331158356288026333512040790039559923435740115551702509914907658881327362775899491990846794945911786774852018756136849003022328547543984596214397128703786049723496345356710775361567306541706594880777856612695141955307088723759116569696672418453536076008862903960846803379474668029920850590649658241152582357609293501040670785420445933842931112176436218254102635001004740596422972318516367449157734399139863100288265845351436387307636178210315274809298464939241748722967567693682388089419232686629849011806370585705171794456135540107288246003825019873673225138115851525706886805810136344443953520123027255354471285256138286974451855159529655435041422835918448864439950873079485223768286993419212567734284116893090105296862977809307447726006250330162380963567714102324557654429168315479500057038476764483631270033330040557022953260759668180520622996711376982396628894384713931976848511665726125963544913895881324402165002913252407197468994891016529782027590456769719231132308051935803886634589937912945670523628222572710954238122990361441245630542422265263984649068884782394267274715004424731874767002428346648968393793850644737282956070418770530862556642232307027142240362015957299817391013425991398932106858456372373052623360643198364154268726540866800364218708362531965572187345558136837193380022052704427965898066894574473471034217226616295783644620376682586048793676813261998371610085564081509292325766770667987090159699036633936557849520943627444407814470136871995642869343439562530576985644668663033507819094843532050424070689081530528359582631377757058039087010736953414889226219695876401180527837900922355274557352012036612131303107745753787704291226000580142091885196701356018592073300381842890319604366777746869308137989760139138583940443067409955978134207799841650259083142830820840135381602404941265056227124847352960992293679267215277293119848668968168902073526377426540104108444976713606686685754961117732658439658859062685605807660246743587056125243519257579651870403771474374345394879572430225580183230728823561367830204396494610375674495530733209693770086335480492820309239258914534493504668235184584492101301173084740103770863887069954234230267167332239392307913186041678074132570740059169668182808881458526488350844557347101939511432332159483850938609505605413178415085942108906909467048594377348235903658129317302268348339995342585039047028945751535140605233923113918220762026725721699346111161024561279121541274458039995756446515897039176376946122292439529299668884108875878871172744497938191859655233239280043234923687761254891584965321896683358892532544697879485067260488093574850103137474367967647977539527074302839927026190662204868413077192991632588461603166612279155006060646016836960370281568133670572276974284013336960802564438626957346300529187696139358112022109063516124930550685937411976370414783585009356104413752997379381322850614460428352041899462442252444113613717811690533006248675770819212759543843025360953833969230543856980199543189381717692403828208831753269525820889225905311321379203982249492716001684812810676444942657268904365386414558425860416602851867116469557276065692871614780535855813886403105520270014071800749345133701866324298436049826775853341974727153273635766699918675723307579792463607736131537746178321740704455375872967301079080493573039606095672008330098862259187814837170997857692957536780989005863484104632372477146977355571268070836298339279921629756342243219896597935421655176711130075279635398543432480690959390801138614475771189277567701621910362941238900803988753796838913200459281729066822261483493894884491166264641916210871133739249263256282141860649407283484212837897259751535859449581444319004990310070189419623744309114380146471653076311168116513836775070117422853143021337339042227322066009437240469329270461569481356992883989938312530591480148596562346428575062604074456966706912794486067192298242815903525175783096921849556273908789960136542045745003957614650342984158365812176841168396943814341055835505938605499842017802655403558130264251561170242678659292964993010600227097579576777217311999305623859622866099002495029748452184891227694434823523585838667295231573324863736172307297065515391237146093845977598506357952022726337517543838044119524787921444831496070699036646374822888758854118524663929813211611579931550672892204000998121163531376384496242078236553108513762471490285648042597719545989769276840066417920818639022421223853582848320562339622160429801655166279148423997807354508161731172535485725189761035424250029149826901374194002258993210112057579637822796564892183483488239715668435173654750876056677924875559826072751029170611951125247925475257501413235171307234559737825553153441149716683345469188531367378162205930850321592945178953285932906413076711110906235143393507107924167990812097230216514108763821279171713676606082588090054624236705881243611553519182717854334573373928663793533267994276987649431019418358560882732386971212233470867444093723554623721952864511774867838257051315091016387574219914737579075415302744021628076433446481467832068288272233031503456769260558924647259787420699498287609568349832185621530634809145274560430017733386310234396324696463473428882546102289567833835000646406159502106266490917415420174307147197896015163819055986425898928490408616219677492193716083974826358043886298446484921084038165739673224345013003674079114029839953572475452794407125440379708603486341609421427418979165959739327488581803067604469933851946115106585550352844284074658806890276922972906385674858356267945987752601544265866265168252506805667491046871681129019264776112779773892968568138883389025676318090062951602011837392868915753927094865839288104021976324930913631306356690582061787568815913771497581785231279439787348422717448444404775434264266665293413490941734844992236081288125235132028036501581441793349091762661015017010381906486142949642716147872410305749086283154334824759290855591683518351846648651697102975151203552380312451250787514364411440634189496859838902124629584460808198821257069428999962095496437667680746288303920168060081018174077267274493924559711278615384510202795646954252481235815324267365898128834943051728315829910321384966758160980172409466390066404981349489375918141620185336725379441807483140587508951417225973669149767873957192390244493839431133860695819808599007341099745871937301651480410860737943596530433385335295004567469547937030330598887808513454724467164610053426060299433034975013923159876548544641736229619004685479774298411236672946778075575055790750092211074596106123519518945711799823059303253181023626157077129427281705534485370712855074478467231570518036460644856567184752408049807695823670582011436509172102129922007880374855537547451344583783607637834671630357605706276243418129751990878045630675676742327971904712087078731245764110470867210194609966681074374505856675415242037103990347656244158499552783288974384939269464262202539445527550021345446872847313588700613724948087657478808560122023216388217844904899783911326225597872886798884634441130280583206657008561200625543149201547430421752577441156975160037988027976330454397894051991111841082739356920337989385213400638183393955378070989512993436793544623698529309513707653876483526406389818922425104326077632537530612104485221337687060645818369038195346342142152580474011917710475829935427376476670838173529871773381661887132473393758567237723513582315483412930309180268659397369305304865844616199981215766150170564339110135705941969382855108013180225625794057863634376122594376053246809631839914935992686316485996074334083587210747591064506791251526433002047549290198960882222193190683245384846831909625129553486827609692578756871670640546783402367241298381446570088873932849157535373854083866859841359394264104277623370096894715150040514426963594678377726839206166601296583957129206990487112190913877112972135181407963038945504217448117452330712073200767493963973881487463002647848886451901089368357450484141401757873933288172031741241662196383931890983845609414208506637656783999779099942483502396604001773499881492110625574690151397373212777417190334729277403351023480597012398458577432546613976023651490610386395765384024791464987832601430012451762588395342124494524359540690477503924635899047858791226785236682403654129639119911506449763818359852538774839406174917056277818465521092417321345239027983657459727285226994407304987667029751812261634790362273377844582372099125227692462948591636205997939367691040647557262724586423715888258796427165502766815516071782163593222403247191626383874592449079671251081645667819895792999460774273768610070418611025741077268275258793959432947183402945023482405464991678978004572420681757480603120599557033662133003604428106976248680065292712243745368608084014440711656811337451820636681652073554736151806176983195691513543246863087547092303643315432458332709012134497840496735520786310488187948917114509025571143046904391053921985569542371964656270636157593171027348548620432002593743045587048330743515535199046749613205469435977770746309852919974831424925689505669265838571123014411538537761189664692427759550232713728221632454602181649037312685515834384720512909002366845909439325995747042606141776050586637887592080503967783652618000426669313495420617190606192209461244216220586707522377233151795716243032397465490340439617523963754310184726234271246075052450932475786082003151142751581245907518899138346748241154581289605471314890204007611972571816318577147833383673598541933596113568622805097859791200355051009762017074778057222524819315956379936432196899860863206296104298547165077870754567072452913172746527161739942201625021288903945945014692550195801726963297310230155208761005400632711517965627321274070369791513785616911472732752047764972504268453061126206451177655574568676184930711236787934463304925734072445856816045826524424065282718039337387275407573913334433790320720278340093107823498138178153544317419367306457885483151935393313581001634000167947481936401694735638746105429072837305326005652137828097504693477365142115708553594621210489674521375013340873909993353622579617623017181025073694642012938181665740414913168320613265883366034104465229689977790573502471067066294640690155255193196452899463783241073668396423301969400623656869314072655888703124596350008547724173531807470910346457712975571262029953344339602372528960785311076322959217950320468107550199125130198561503089934675876477320854378206861946960241241823983198807924634983496540744788914715242237556138678414742873238815954203530900300336609929089702065707574696759865963112603130522804051466658523176325014834531420759039177925235380696962754508960999346169708320538062859050975675453051444957914153646930328038381630446672210455079681116995660611451516443125555104263632348165050070959631417625138738080513832282106548278076690621711298994686869773686495310834453835176452380339900311831451467509609534581337683714243853067667032750229696299144864642413523283457727462449257296909545074580544184637574297786652371486926046773066371183642210390037451657955670298329028469990893129463150272499395155695535594875924844574112643314458579164804538968667704547040313980088945187766876719395900336700756198037406406990802091137110570047858353658294937674477131949214533177426956386205226749271500584640082254908733559801062856449162091030519937441912399822841205310752928572077185855732493925023397973845200612052119075206286216497584870289855644910329646931601337909414835058193437730805050344266423214909426901905144487325635603430102389978977702817182218144784813121506311436652861475511890904298295430913658183828790148656391232100467898737375762641761427568221185274824135996584171458040302143437254041300375657540862353483973395542773686010503842305719605630202305871000563982391286963323916843414318459776500806255785488333701355096681684584668148789314766278276057772842941177964489517877877137091948573429760796736604709218898433549709641498415671581270964646977857790365570439442783672743278993492541546082815159527569381799660649917583266676051113932474725700658773369263997526163254533383757018644470459458290882467261189017636466892818040272264673971200005445848121905849012777178325673503593921992905586301047067425543404233223137716070933224282914290054798236992217637427929359493996053732045201419844320831199213290462625775874717627032307833146526740122284658942075014742710203960335504250598303980313797595262188244456494566675601558506649422121418478587649296946906598889899262668083054518808116804570866687849688201729858244409261552081858751558400464408063654337696628856140995469282918920158130762718438247255448317304103289714722412783384898379216789425099291174573420526712769001327085774061546192174908872067028501460258219458933910629418469175693549030391459712505060111911672349202161229036762226028276739863576992477230622956624647926505152596289084820500488403227083404438846443847484029722283104304880035165898719306884384046382625023180528339394457973709403311653788841218990157337969856246451078509620654539567628891376674701006376867937429319145554085832634448540493110179591655221222650725850678855047896322409863307135281647047744263769243747738730454209462572953616271333390218241247290395320846144275073711378976938911629581783102177670305909953831512223187355974850946695107122320714818378945302362476064035038439077563159096274495169594666514921234245776810412715036340109034805398166712053131006528564810207166728893646903874187502471822471685930538783309804113281233768463319356945846829216040769306802642351713424286338128395265559038748147493883982264830494936544699615770519750079850241499888991125693183115801581624731882667375707993609943520958127299909891362608715034509172689185555072728767440832953789829896122891137016681768257830706404610336920405936741967144117108072665658072709517746318616975328448107887989508706511434659608997079994564642455614786828285370945186395279269595479972217207459689604306468664738690422240455254728274116321028328931711432947884903671453356262486434060374732327893835830330488346597580882525017537554154409597434375805270606468069610530039948895994148087092114418381437423491222938502467488778721846820538429099059659886810933954847197460716561000663150581999137001709092948146535534428982094076128224930463884182685103002541842264800178408428498105832562215668049727501741218007935405027511046755706956509518224944496197359638227387956106499325071956298197755963202102096715961845732599100478402799959949982760837422293590998970290500412422076180880593027222560213681882957460788574352989914798961178565080027820990089705980307449388183434299097006967591148336276579127475458599645382616530337634952391677776590399213192039631158683782611326543339298305713480620220770371217129651277248709929496915443769749691871060404099409815211269240771877961282111746228867754630716257288175620362933934386751040642983737044157337940375989595186050605837298099917093359747497719341526154984269573203024162797460745070378326517964085580478314744231900866020332655153134221514947077152157165137866570006978284908974872324612638859772263722826357421005385338871149357971477451898609111678904921137491906011487755986801016563779990328851890471014809986520864481543684876230659410480032384560180776745240765663433832922010548637881986906153691480213233357516618814319860676968836927016768392985717089231589671878471981848071167918725846421067504431633538574260227933910994517150455734355100762578586504918409090052770291016155538214876490040719072149130479342863921585670724694030227707951623385649964165000136430675636900485525269150184821373020703229753832225131415888600476040349103798984048263558489546317215507547351079534818552467095563293834473304773082609337055051072854321887193990038310670034097329877727106159945789787120421283447277681425316692305721625860885762907903059684820710364589283700720015370067740488516640397223399703324892151391751323096551890555142204127700793701036158785106233640612092687492148579066730109982074487249747645268498756522676417503996047672935935654643832082210336007761218729430207207539940229895998912143757154139333454042104599496165668407826531241904800309659591897918321365678474727074826571417566435279702135125548002516158376578281978254920723502421109915011826819808554110661666827082627418988037842749935040237526499953800042501438380245536244369355496262912955619034863410350134741700795602836842386405680734487888782972397191167053605466107739192005750541222128352319136361633735212925518864892267519372789708158816855811858053552558610618224446383236518732505764452529255094600705136280756272178558652138813149543222132881581552553089994072506772946963718366060503170221408908967370839799091290095107939715025644586991403429152005973759108343909005786322217805725189728182640519793077679227299862007996974558623511036958464693158150193048382057701841242539901107359400564125512845609783950005525293619210926261067319693643940258619098539024861467856165273061929418127808219342858157259946620580208684117060846538470619106699739038637637965256453578713575340915023391372886674581452501844554735710518092144237662946524246218517214551680554959607578818977174455955466452786636995648446001295579670979060647071366066368200421698965278695427536689423559609226880419775947533393131062587821431261490605208522076938141178534052295239057886702379656742538363542879080096810640209665803422196348292849637703614114412527659152897155186697450806072982948810240178174491864481303759216587870464844506044145842738698226901605146011046612119390858467824157952282168512098363140422560803631884963189065994670622528223880244585738337434509273494515782957720663053448157358780358428548715043053538704842708876226815124674352941308404216523712947873687366915081829791049001449303661010091562415038501633282159707802491550042107156754019213128198405216083471518226439462377231296161815060360948997275450830588427106810617152824021835082416121331259996119171569574925300021489416851325810290608731716185405025246957959176574386993610188365496178401618143883545635307054724561877421315214337112892793893113179343937997085405962179541885943227347786266253224541750497360985979861559445474655964681389071370251614190405982145064306331773776868133501815105861786367349400389322250488875382337432843033258841581762285516311435164493549622262248802123826180847187205147917269763491553987481599374778166815182244266664873116093012075986559710651270619925963298954542400722217998247471028771607746234736367277704465641927238171845106656279809820697311186553968549486398895540209956596178903917795704778398184069863523522450829366812532736120517375312397770933505828794211747011441969271936508243522976490618420763543431765306807778464630084058310216829789350715514362681361735141876119646247012242160478260490311083820478845140856666455710814726713251799656172862702245673244575772303656297636188763228124052498574567852711102384176383819245257581571261437298504015321152522954384208045098279195640236929015317453563686186879872602245998334467389828665121016220276351644478102255307841262530062823985856197268433208381201302450226584336574874757818683982999929075449825721330769951031175064518471894306923282557072496729988852726492704395728375492584831304691582910051729579496330129234093308101132113810987124453094774457361940662726622066343783904575527994699233697837054080254365156428680062510746715849147371695321885593185580019888530943672030149064104041315209074496415840623382981799740354467986721894668769006785153287946634499201928023522244613869691045723450818395896630721673523725600619965121671014994351990710117582052034341597723335579351557888164101507113716579399042936948985919473607948980588294877215982689228965468376018029947908808102066609286109451356721563593250543262169215415946742293033847996063145883516117651685552317945305361489081969517177274949251797481115553258768489528521561155300215007212085769374357626722217994812846287899634214619029321407697823256363078967125885167341608918530780607154076466872533933957694583562373020325748633418278493721839466835012688978209607548679898204901912015649218810021820559133219393067873749975597772857914486411899777266212725522635003533678421188999036182950912107455844907972563753352683381702718972945524612995931743497964873116937949656847335892752038700483665791302215278586600930991684011109074429361931635830852107261737875668314915098890811318587572357437960873400417406915161304087994655236719850719630440083908916253441226280011805249726141794039540646847333623155500164083214318068125523994641666092238297779210823853035972314647675797489250463567762295496452800590779181718477429801253616680952759170932095319572165181817808194397592365195235248782476327995962114355955044792387072485437436237379428243481027557004467437065614050458841157636825571519470629572818239619633743001219491152310602392722771934019657938030669077065099606179167578268693798103175850379573086530071644372273312172616632810591891433746466361463201263287133711418728909426444315946139968442546879869338486618764961533731827591368652256549791826199785495474355722223418002488733008865139872883439281896942092781364343721926436912544595505114453381249526264594160156957065810073234684473707579352420742154369290047373665142364805496267372443316705436802666924746748252573246273223885168453718432602366097764762357625474269128441356800371727394357571753311649330161208714096293587555726649092924765321868810642168998001277352180597635228991645222884652030827644147906305837758051261522644758367593338119263604711732427557324967705917978332046617702012220671829208323927537574341709288544436900767424989397453243825999945185229581910490192163826959029386203726328452671122624616770358307647351853679749011643696972354708476363453353270535351884973705978241704212733155289684522093313141234182284979749705084463276940027395693725494274612195791636083629260083030799180555882876962256178377002272933015270152307522462142100954173369678293955652700226983699622536066072060651525812955285686406911189539546744999557332684193316144999937941752379756182531381774865464098784996338940935799318262322707913759671284688778106552208044825827707266879116925982872909526225716037709899320642852512431657272224583540697310847898732843525251611153760892810722356812510363458627456242412609661160591924206403697956686895876198527973552497866671705486396928011088542259970803969497363011682874083019355343725574775736099599620840138533948002270943467204246593667340019201446791905047232082679285597377082065469019302342821698721180038422830600616320591001648146793807124890195468547364844699398916031512118178578879125898566673522430067844988913034542154632882106917789162441943152671079325829323925132075139056422196434188399342549519577491744666287625337049927026341403537271992062443566752650183476728707010569822057181724184048074694909231524386037124707380937707416079354281901832762780478645435509647149472516180962982929715848388464981218797797407019526994170653289267754359204713717463394355872171170315305818625595256204608560529962574950110682479126253619247539138793467030381309149958374186237839715602002663298511358405998231425110300543928470502054645246906917580554778412818994844158288961875433542177788021669525597232058479369994026048765592383144503395961109373530428092794041279971577797407389148494714170132805966609167879408378475636205167163762959517572250588035599325844422090082179992313249320893024445646186895541804667309395980344690815946534164529587628280747488348431435683894579651158332646410029439295850459390098530890131078517877126806265999204707819894743596802924516725758277336005371632556717765570835288756556603220141025225222830490463026345907410547614155606576550647555232531118247213346141851418602323378005453533066231073480766287482669184423631212690850065359265944335811337865579216621468573219146764911686606919676151614613479298466270238406105648128589705100202709779517302040127234170921116550857893221695196235560554433839876882881677726272227530566173273248128765006257222239089502403677321239850305654884810504136415157500817353263576332801226013970860923957712690350399813555626285379160164009496897073221042081380126409462158983419354399307684675338454853973106936363687275797811058889142054468398197621609979300278555156643232677124838418757386936311706030144597418911376913247192920561308140521387925661109533066564980372101530956013376194969341617340466985966111104830231599979156244393404081680280442997143599887430787790428169527530872201216576980234571517846489727046087754422290383215728604181642080944758100679699283512285080700668884132160829091065199512422312480798888563576829783013421656004861005221860199225072826033491051104588568985426845931720620518508967905801097239188033982491927491326702212093847676224382608575175137262628940477012656014861717370110716136208347233665754553777574148396256070992615383979987754104158658640376091847419390874485908401607608433723349605878624387490932735598266416295692856395360387683974652223366376908804221268809577972274855771468939933624598752489331240188973456546281753310170724842485390516622333249761208777345638950533008576828725885060374855702814050479898245660302629985437650631722532077732092062033461690405421719604671396131668117201607686707316741656929981182943330963587977828352552649776456642350858651355811165039456572382777406239001436858269039021187076416423255943540609589058386327474297350829261429617786609594056565302676431072643335765932108097411239749213544445786662794792890449396508496796952379229944762935484860888222055471007191882161957159532551983699904301540826483151080694180158336644353625998569304250774409604265572537774283623432836180562346942544800575602027442712176803938952839942834949241167129374261627059056758521403424620570775947457921691772881959911762199066027854109499534938579818441414325783959478163588487494303267298228093921528128079166611046642355952609439617405174217061037753759294839686210477578791193533413670059688190922022790697257141071776813151266855865239265732699279951036055283264001453245904280722112117831333535012205300051853507728312979682097483495806283950761424324985506047174256366409777807093874817543260991955394646052537238057772629121521820651252204049060231741426365546160118178574208387873105428348463684634151233276342830384952314758633706121658894274397223894476708027576020506088163605930712049333555291632390182444328257679890326487425607978794615898492145165112097594783377401921982223557762361139972477000657504726501592938149596959776654090853085334616306363924126426444112347094600271151152108025722027861421847130388326610093826699105373779550381403759051155954865960014178620170212467202375160199353223052870437976936269796692241923613777655142724797601923428840398568122743149621321898623529085548969912989405792126846529505482411474211318905257070407625587611151621649854026117570552334275905958446163243970910153146037078379120186160558658410212826602331334662379281963798624222255599935431872829301852055257945521904470328823956191959414354857977423555763732542651067063630066771491779754585615221617420018842012440492835932640675320025540862321363664867766793722402054132016858513782902527266295119747754134847934200291967813391379314546165640485494053516753680295808384515756660716838959322153709166541193584816426143511740745807075740856085439004412123109162409790617351538092517853223761441304595097540434448653378572586463747335178148351677704434086123923804348074509416050596905892504170225078800872927498534709385653953965460076106152791722341543010092405900275023408307864655861485779932340426587320678680538522115916579631973632203685460560851533628713581254176282220319500806304138809615316821993714303195933977570134335912639882360814665904324787379191807452006769249197395333454679255032923826015646609678070820993427085443220162996448405984574591333299769696834974375796114926953712704397715252950390440130751683735323807915278603233981040441919110884931949138935820023417390787275044729423135429503740972213788731289778903762218432082540111208332467093157748725940766504951494966568575845944252567969768329013292998754734501749370915709890037785579124699532792880594760847440560965252234321243720601148644342499525058628969862617912680507301146710191662526355449984653526911574570381386874306962493644574984915664684044519970329388411557057429593970176973781437711424169072586566813543715932504203188219531497380953904649637967552558815561374812958348123152579033922097005600458534711491844229017327418880161484615719095047181147701038223780839821709523005531001060734963685451109873444247429483233646551525281030122823260025033895592377989935424180416729425101642622605563332614894780164226320588694331343281137502582960236148532213993177718714710997562433531675954686683138637476988902188110656144175489403978757449830605321931843642662954884963985006093806841254136769723808847791041340583775034832635787998688630805118931743088841094547449656908535265005368533939040229320358622144477561488189003620801723993034954330215887510578314394026285303800754975638204410528012754637833917504215028703914117141449401339466923063012568599076741020757861219099400993247822204036487920273926825223195629601372571717982039708611775388171399896538312044903509851255565997009882534055406031067872410314666166764883348592617753758062312790676223506648866655351864078329026264733342492934004758982926976415908055041441433993212086870917299462689551930350483751718778559254254146786192209890062921687036802627285228188887660341793763931787372636092667686562005682183673797269745784166236198573853945211551337369647500825919674706653809974286724415516893183286009349653856303548154933948849809970715016033361862910846660280761660962374158913019462955038579088687723323039335069068142584907083755417304285007246240896434341591049027848369833121893571062400076409578927943299536188245101811205197781423670348845136299042948643484148524636188282399024643866062773878713455086692737230293974474181593947435307827487302053197429509603999156916677916569688805056286710859792815130223938115011181685586001965769693704415659366413882326728026882256441192489963915784132448891608602969252389575935859335013653869311363417522938625928632685353268945170810753830190043866206507192416890351572763228340587140533353295103733521504750953439026308496046457523019662359934921702261955935808300684915284909883190507952608520635667055717942598688907251450787970880606928818313164945238822640850421349955780931577100099492416689880415107240212755951587507648085010681630174693846730755571287025733056141746332892338363048816696367888596372398286708091946795183893380569787603956069101983343892273632327118344217885761476653911596868856386092025250050316950368667284160360765937276357402426991366092625396282301558032174896783517853970009379410196709576954888806491011425030095934134678293967909163886707144714665277906534293263520813150722006368777560569070910389098300846385494147125960823889967305126011336967943418829148954065870447343734117030241636729906663534696125060233825851345853608199283613294020739835844169190408033622097138156044495973832002670924709029900466709439485732296048761470938109057074345457716232785072747858114527635038738414397086250681008174231755317402860441643143202658114160629504716655552504101571477426351010314425443870504259965049434706489293100024543751632770239142856344918078824011231140322703367309986503375174974191960952065498558532747543068160160604430556252148730641717634239516979274205811760204585625397202253141845521833674957780248604886883304193798041816243527443192556648523630687479115631054411708841629179630283357919095443707836868000089328027794633654866954829156439197439350168328514426511659611367777856461470448386021197301154823614187105174726997907458948277626278027687057515721623016572444238805210070031929540420734510295253160856977571227284931504640228739796811920373331698482455371951912698787148859289705521889612333302752893507199856220078384796329996056329161140636756143712183770868509995249734987642845363253755867065670018411525827409861193695178069926243316498691060329076028748540309208852800568285508920590420539009864143185112568312161256666652604662500457151078711500374853829325715620371982605246290797255419868655077160025618615445933730143549213648490593586776321290438418601055526744758762159556300713007512587625863573500370098109051880800907393270469102742492316189683175052316422630981406813575185320587958743829507478903818108148935202728929689542749436833931395554912960564394935524020797638259874590816395438787953296773572527417611110812321734637333403344337492170240774244839516313949399620050679765327123677986236552099962628454406296474933951028859082341536773947836728492476299538386305654697017158113288867776280858880674155605165141241068929487913857211074285038157770975659300679129887900216907031086385252390884975051813435421063406621966545843251288939631888187781417867096820798892609050409355378192262196951600617626208636699193924231301447510689575563757629595513468424372818938389192841165859206380977413785373998001583823031700750922902424035702019943529653412523543454799250749928916300909505770207405702299405823621326104538179506714214135966775113493627150992669641481522990877659515559667769922916186864129217907114411352915441287596583246941186486303583300400616761520671082615089256476792601901299746669752944127748716301105235372244863057722143585388897589059484666602287041996499143355607707551416265826976300225931035572781061040168091343906546114786684916293518376867504599853531190154395947735438395301137409698003278475891848981734998020041604629282820057480440773493395792584633306939295792853024228513524954148556517093305284894971802041331550799321615336210667919088660891082718200428342358055233076977948022749441770133832800643678753154333563783974112546855313178916534061096915015735409862528859170715527990429377815918721376304967365383928755308627376000260416793968498124508024466958539797623652924002651589844846092016482003690661099122325543287677925121055679645326661009747098680279935005625701365312870558614109395738725786651778716605071845735163986740159971541779265792078819367456546712146744397629668680264362554908881411795746781839899900592651919197372816049926208235073183921450756201316078611548295983183788446539112037642583250080110902911841998559322332344157233164143548268192515894435382802289018666694417820659843750418745057449162919440515317774808268336310250149337673840722693415479221029209725685798186857011331658251951613997112089156749096606389044994094000877405295684498558088922329640154151447546504309827784360939847817288141667208456324172310810172597843670223202237237056116876741976125517301891900013271391309120465705199210618719392197327309861536868008772400463175140985794139948555877644633657714866368130970646723956919282018146852180196644410891809618172068506108651981165977240024390055604248660777263649123953700526604598683656157543232407591069152614423839500813194528355492245191322032594934661148795535152383978961740357500551657083863134733129255557253554901881844333365312926100368019254697643488781032582621526621037248921878621016776116021166139194548002811892284334253637561027522489747573906702996345284382319960721284561208585150673620855155416714303166027830623054514382857790570231851343909848674721834547554025519183475177551043432100343871799721907335468278962615844470555948170259602383716153130405147677184079058240468162058323322145380734225152036872970367747711614394044068418079893618894241851820576331765189258067423563297948522178740531012354706680961192020871841986313970662046454194728486615072849971475462834133591064208947549846437492439633153138731318563615710120872182213484317486559907605656246850307746233678705583126976810325895082234317786610642360739101734571631224422669132220181278376476014190578149425545621182383180167828996561999607029804171472837279060244154276271648625553915686039105036672928645269056368038743875083647056845124484796524878929696610841601588052328052116035280671497798979624586064764304951996646288679658006648899270949986488050820874558725716227101216888800299362156422994827816042099181059094350901813776521263796760903509852713362778551127066533180597091732671744109116871245601291814330794632086232270396511438283861747211287912977918643947633007530792429278013337834129240794975582514338799551749141408510193039482940591915012681164529622152550918047683249010257691060189430038139673272509186150281945603127094794786942724416833289535889198391392164930009256989050946909425605052403812609497263411975353529875369545993528339922375994524419396155025560274452073783118683581492104372276730695291429467614488620270262698674812679090237887977845196610521375285005725032879125045781844908168473780174498479985692477340727108859812935283720830207466922182348570753308367793123067118358484325560195534751291833906205839754032029510917627641818333175864506301610624683191144255397752223624377905879001855254026441229110741630231883528829069436380787161055361848251222428750118570344153441779134991013679048361050004695808919299660698366462618520826364217638730102850364187180566446886552815059322749539368472781240644213225168501693117434522037722457243013740614841674200712117203187165311688155189652445595115217033426934185103682314333239401219594104639170667370516568709269031558646781814822686486592536406339739215942861644100056429660153536116738902771226611563692181820855516580994976776412145615178085495783119586067821983387897728727905229527917973978826189966788224530603576009918129821393613748737201586464591173771159019350451946748310635083903853415909432321927402540234774375912101881286365207905748273333331789772800538419565887379269567633322548029011550328284042265761267649495258613130767719901892989339484377672939200120435955962061049782389006315775036647381844009607214729110436354253785255646387959647525147098969262659888604001377668276493744143641646501832557281412768585753749500409151600886671259258554619952778070798731748163368436974571860608850674192717560923554837859629412926287175488796967160471803804039112356108731864575063009396338941138083288140643381770999887655266156877518352655296243101368925344774208909787878778761332880921245600260732942998872061393617757833856275610816908365963136499538773264752996769884804766528463083524724786000483861904232085164809821377502912548839614991987744737456347681290747377811152543633461628286132672104964258286543045542986647469013805929207861224764739485911540399898196245702844754019295858482803442511153566134994568362470357333841414983661801304603459515117838112547939073954633963651692251079306400113324759519499318795408268336382115644790280951696988621724617214590948166101840719443031523564519014882869053302771182537278404419224009881520479592657197094431392339278886654300817303219407446073816078047291462857410256376761273414888420980247799489628833688509879543808908561733442437083613576343941761297031643854291449355203364684328172393931477088961494976132685548348031608174682376490782465858449940493566740028079557854098616194253850497433842490410391115538510246831982428542130838433651097348590061615184369276997008872752356537776183162232966007986821329500666080592057795706059874296857417630630982862690610204517962420374880271058158986848470982143910381999581972489716822319428227542999716263923426626918581769457638633509380353535261491470816192933654266623671556915391866133590591785027041358809326893739725219159312364409785521774082708732074952724333999250393723721320532771839569379466262670759937637339378573084435437946048392352087295408605230711271741013434162554202616852185654728032222492770224441874696874011361780518665468706776209465970973233387967522694299174191505290226293555948214140805078492290773606950669034008865798945071400076833576354989424950369817583434874993503498307858892126602655283781646094529161523353648446547268863757800730741976068178443047177764618720328745999696008664021269983947430577917233569525432723216941294250307440056338142506648481248057438675942615390443032844257926553129314098677665001944848911772409652969022241715921727681333979038278892786429318012901562630464186157594373813243233446288773765811584526782710087700624434225199931327911429098846723477732380784994400893914885765981002896271630422517963374757446628148686467146936147968605319705610058854609900024235664112260741527957942023587285343157273230137847777236680165504109985134714891409431266952414198900984212119738841339889342584992996872717154078297931340447496794673129893869225864124948860477345061627641511420373424672919342819392331454747715889620862551263966794323892448812977402884501041577943505865399157092980333880516843441887037495151356019906879651123475208883996376436558259520132273675531443287215249699728460528527116394530043816121871191948413148355401129920237797932657962193388545561747395228223608369206900287788010732315432584453250229151297413710307873074214084887461170634996380209013536110463094785960583746672672160423706580757979509546740012347222967701299271951045010003702912768245405800212235647155813794093777851104382941406662361326470169790159983292450197395612303043630317762683504663090383927292978750643934373798455185998541470757289915820493813072927239323813811054205072634349994590679781056830454492165026496425488462318807372492177154777049796677611087366376154031093427798972286193512746470179427306080167870273588145390715090065660164590868222478537957277117699116758801801181938027190191979878315438509510817716328544796463206958420988607767931424055936805097446302225857043525505840672578768515797335824811817015620117200826010066755331930492039091504313330900168769190313768179197166338615328965185916218589704309448245955614858206996017905177830093740474008813032612187613067947046184699192432653478533430787467051752483529669786629347089853741446409842932919329311632829761904720545661554422483824107062527025183904273619785879532323131328458609097629071193651173278329654101056460650977135412817799138241440570897422873863481711561219168758218506396282128293835192913699805438817842889385159922436191181006483575111674098858560653651656011827049723484187930404178943015154950263657265179367881935863961134605815210641926863295427214750413398547550791346876340258811119937868359582014454869917175485084291434759021802721715343956088156250136889242140788064828749375116135544280088637326067456745941412145270658352491246211768759593543823384818479622158831377796251643335879342976481908654529377445356977212702669705465803440048205498660837873827015607659117494636748046978066455793161188796593992162135858057614204147077064303266391975283332032150912362470553053707360721026676690060709955906236240895115622243528910924426743213925524156209490026427934565766594983617002011346068257841339147578261480656822064618422175921396170651179089070287888182198226195282739091110772399070150478320477048678047370214950879754571748636336808871620770786137669410139564789591048134056609625794670440232569437623077173715805042580615519983607307308248986206650970018368530077922542656832649329209777956996289255618413556307771205162470320985362440758495612551060153813815616197305991824136574414994984144104208259259931447338723425791307216596183893655314768466956299563996704399909656088920558709255741575925885367434770286521162848587598988431465283199367133181999373018379560907021268598347974309781119446109784834700044742545794791574248755761000883406583328431593160460359812094238766351116962488933709475613904283366270051375866031549309492641666777258828781343682928266433162445526428752594644471095527740743393901460037516103234993850167698950442126888977011901002083773026397344378477504604245776263255511396470249419006363425871524073281423139760145403243432357855100583980936901451215390146190174130864655840610831034088871806002851105090319263172497644944059734454060295679594477610255925395913418792713718466321861392929686144948411679154606165537059036085234764751798686362135608588023259989949720439888324380883390536765559936162041026578623985313064663683282485242538491195249087528261412635276553279625810818351659964495605977658934978039521901795015914901185179489587488296962726945815114351756951273847415930919283937568346199095424820376453988259291955875177017551073568945839426497317462254178140345211443819912729595907004675118496187520169965727226904073846550931569185051752033728037979611659195994741221202001368307368510280271315637548421876206081767046602489450271441291893425494206851560334085566267530400394009457236542327240343179704110510002081634752464222547540582590497689491774685309709541075504717835094026105111562424409146239960263640821458256306260369878759764463349495278129970282875644254277799525589105775763585808156760379412584441959962408145535377761856998895766851822156829374953196302690030369589622313322004525598479140233844390674086841588924446034120490431242405304776828513146297868446927626167327164622309446938618782375821306883825501062734815596728575685049009094685181607062635804320694356653466802316246355653386981729859537432100061395173959490829256682369259189279215670612129572423857445843640642337996458459602288242444648268685901895019919137704081729905278931535312556654700690829679787863998491410426971975712033887494235686140414459861243908368795003847353604945477414262124989930401692314173415949046924790295489356507808126041808717436538363992499212517478517057707312587090673656104354244701731882975626301633204564841164996992193804983385782236068869526920907849514020266939494361345345686839129243348449954911334407992652332982754737567972816615205640064879563987272122066806667706196886060071051724128978840855319215164477731924620868283446906262276964979847452388643360377457134563235929891597289602022282223040778022487217639959607428400263805684666292919445389342569743094061234954375940964039601651547995868744788669838395154510028389779788718745263841820081516895421853827708251203243788922240041268626770391822250834419341472081546734834990178741889247074673004198195057676287401308166672368080078418801967337513211139044170026679082290374021964200788211279702810768544731279579677730120919287181021689100153675449011329980345707071616522712950534042752909723023348532958770306589562151533519367257065233415528076957287720064639906055950121264096075617610264576154899503084044031158818625254869675327259576044438195168008662410529853979889631286836878464722294179648889999373015295451200060833601235454687288206305662091007217738425397629961877508942051933921422868476554461058054067376395756609642958306880406795132617651462577170208355189032045622420982922252872703398480790887674315561301102635143920161661266533792595946071979823178502529882464304362275477566727416006358744232260844824711926832347328108243628310951402819859431511106514019261616189353981877839179549441263349209871505399124819473142212422042562245015314201781034806846535237201502684685306921462624523851133419832582895913331024215939528446528565767832412531469431551608036999720326989640026362873982084817053660872399656743862751049464991631454371220914485075094609602378585890802666811262363822675560361855682811626404355074518568459107182796028551321818804003696950641347133039467760717620199010703204604387021525731662097150710562717207132799088737997007297286009338030787192261200612906531727360568445835998463599102873116738212123268604300840757966205116520829560656482069934819056502491173887529224163174960851655183975585076503473826881042420148515287403063112272135737680037036612156846786798272844819949035423886868139718648609384420279134889771406513594434653368520964709400575783041218578567125167476501374897913741139736847367370368358979740763110183488228574618367197468785463951382291797482218511997714655376746798751896105355689482830000578092567699769081127191244982030389345319808231615642194408150113302695623638176180671293059227153490923468669926764360346097741765182133033140545160784892702754555595126852997693779150190068156403910095585800367105097888723791914160020063678837585450695585750449799216178295426922971116218905530036976329238113363320493892272100687796672974181429746849358447167341882483998335495758892909418981700153043980267165593097565049792838558844286050452676514089783520817578043364726701558992129914612684955440925844673140846558515901371263310086722098188020972133357231663299798488974374109290019808006994183247087367907861294268210637365477873489831122544670519718176225477638502056654660555045079341929258089077883952077028320447312456934433769684984500748298720661130634138517151564364488292257631947032634378415167450805946056920148205917049062522389513682583108656880978791175515168105420234868978262171127772389790351804291385260435455388513675618860143646669986875861009570456681953901700015413816265613472854005647505949260303331012170089689478698115266056427352830101672663253161501000608934886047180988450324101532403054362854777649286852492901083384145390383858076904840015147778722149851056878160049227824598967336371022949510725650723201944321496236834366131209909256662955412332874797773124223895202771600495761052527135862184099513360215816683166815252642468751616205965050234221606094206156361739029451033996305690424269664568597756428945145311491388170901456539090895068076796622926589004244906133726102811263115680327503295113631013006978824429916664370816026863455707193018383373810333672178830068777100803874320344341766450715602617762865632810766800635532600132066050178903911641918945225013333134606638430415688238761946166029525031725749263151659839550204838524722861386504256063799508544492690591019414272652163687761595351807176052362789221858000482280809711081977000014480200553760702460758720113898786336989647178142579422309779873823183271306581121792416405433200902058523717131719122872346585605090463112086841016939355393712523103447941486870747976825111523187894817075165964546286515872206433093483092783580976677218649792007593823546313624059244522397448092345119083791497345339915120820798161482169630306761161844568750267958930436931778937628305846694789708742347832290559645832602354364654417660043598103266644814108408002605511011300624527567357406170863608757660052123798442008964132691795037234720648300987148159544938715219042336081897122165521438058741623285638356535831258982162922934318109089066484275534756879865228568445943361272728291258091162184191267214625507325149524499242421379810491955252911405077432320101031185390548477309910045309867960913867496665454890503494273156192301218177610289448843809967414874198471688190535636294660411114183716712501066943749465359028947715223034925684130306410207000874146007556732520437702169870389783009606537768766543160260859683557274740692903189971005428918461569890521806655961834424842112145351077785499013290879550871340156763374322206863158374899874336210807449394101136136564682782698832786220839278855234090565956693182175796119821997093811531992005084644764710988811380797823027058675821285550534952116502693711980570027435688343332244278567448390975228669793743960846589627597015405578228335706315690447117370076577906072652660959175692391055543201252166954866013242447380267301659745345278863681538602989098439926556906882135718479914478167361719595910280927187887814069891216948894710217859359468915598131887879380745160533010104717110483113830685911264600740213925867293668987590605732199976869775475934535580129810111133369635063563590872792503350299723194096989846003323350725796415725019805448979717528711165633423831536280928342223385835668742972187470590870832187015311018603615077287682197113693438744470814961521722189445228203639137691795515332920102820608303350618442217539011819316940761772157907681638198473404395472514472292932438824504813190064367000625552197976569755639782091277727161913608941853406784830451009787048741165838280730282645689300388151449527095527588834365854962918386448614653857963722383103096495474184805000008160529755462667883228690740394798660874027086951140511959840704870604860223301262100736697010964107865050845141253350495474675129909831118996317534507445390971727046857101292010700404628597392562656739054541784082642103648676294765034555988271054313819919333496815757697963583172417499994089497865797465418364771846011799879006671992976642432888384665891433439575013917417314563248080464083534552549813692841952531824398241642443368395654335722791128107774363294190404544635775201617471023354745437903862516096655847801992705164128157807294232686367262282241489730419523240656368364558641149107344701291030336012883624694659847706320130644922950744306733144354909211150752386381116499520808293436506533348272485708747945947774461043179253036944619463170892502462044072532147660382557696804493688979220366281011172368571266069677227325380610089277668517935334310091669911193136753045925181845335867867427559251244823707831790258149257021668576216826788159531668202187358479008572347634339427729638015924874477122307367093758001370683467222925142381684422793681561957132627608513527161197212212585939380147147274765110935380366104784470450357829667652232991470737733720354901672629157580358763246714513766312288119874699344281735551109729763640915181470794863328306305293672099944729779711829232909301151218563819866676033613859678137316237792254343656891332916568832646538400690750104969875387514244948014493240843712001939449786667230893987424393969652371858359071531384360120156810477876642470174909716221741828621610738542729713112389013220596260171483841166421326109807818913221227143197656906131738255325985489378971990869070102927421115426947777362909148414620673264554778795816039674227678306797139510887494598403510520100612070084886217879885386912800185862484058888483207419756838460709214173759903446939183383025718780440271169967138660585085801614796120958116657806961464925561241233897044461529651483252862803339186594266147795349250470867981039446113659096484034045636668884403293963893872782721238307780670243655841584119636083544055785508656023520143588158657477321214326734500212014454975549937527222114781760173113700049277463966585618974976223819879539181646342753647421177144881903069095922053830711206210353714085610000787516403780262643249802033589682406190950589204805535187476026609548097218253268647748327692447737532033730439275266174462207816757417528748813298474505245837891305225934049334705440191529933192388216093689251247840984780863109423875476972672451346285447001326936013530566747570659220172478995391618351992172792129569570731292254705412791659282480207510401586188343413801234454285539500326417980450937373373306046196682644794986104606408154503579187921627145697450308820981395309799575858530080445971299872133206686509772099802628657426587857382847124963919413277813700403657406679143338162019349947603928616104018046977510868464593382288536140505660267051893446994429423052088459743230321806277167605774875727450641235203568716448998681815401848342195616825474905539516653087855415936654734664516361288774274804257168898949669808086333515520306528628246381812061580118538552457609590964311893285758992809293919145380090981129984826086380012428813243176162562175056835143625023135716716782127950753256027754986863373074031850872758745347022417384580911974403556396230764608520261847320201992387276503837074900515195245024800933224669804606096805766204440221106295063885746386945905931267719421316953233241857928226792178115847849258444956112277684813311878587765997990474658872369980446912854824027368065286647195845540783575866914370153735626965452648144102309428189086309541499837255241113232600991763765464669035731239832987800253999346508558342304399373220926962618213227350132498611434106216971724299331075768334088006548228339405627147666887257839659982244949753786869917528276489609035645798911952171538887870309739311737496761617705093018715732406101969092428274587044466839205897436949176637358124849722130831162350720377595535849885591506372518142245737722669181610132110582259428233199714097562781220300137594184646102515500958444949047170665634232878434553014494572844154474877609196473400103439001319684398937897600123672249529353082817005712567767183197158035437028558520179639185372570094801474054385769238609353601602457864404646184915956222039732004620542734593494205927076296367706258606566880542464943613574047627145839605551724463175688154516548788715482217869700002014924846694544476646135912894876270812590668486270898172294054677888742457067679674645892856578150305118283693733843658683102975481273190677680798649873788431050355054217541732069815632677510585308537334220924924843753767328207404763110774875398001214113530891494427098666555407032258258749135776919367031139610836992278502911345344501406819317804238177946022261805292662031606796254764808154894304748136685820525231774119285685497165465086789177218709860506584038286916552998157408060765778738216553651819697208735790469611325684537868373113616424191601836031739897477978099920107404069770149071066075171135176542008916788559582454391180118863014579226859372161390399246778652108604560810617107582537341339823984101555647254925058558837946890480991441796689035577168130225000400668635478013385082132022058778026869095057664448751784541249698627562132232371851814514610576476682112546635505913432855088717986331577606345101067435852572664625917461988903410548328430872930857291201912989134811389954376846147063242211976086742144147505415084634485807609014704812407274830026586583926824574119137090306935898011096589297824988762897672748444095730341569433921530173559496827091691143550650503562421975694808836363824256857489189233861229523073185098365667365848375588795045401619420829508418203420904675431868970280965161677748634670754355360198449051740695476859433146084886335089011702401553205649973058788952322553310499182882852211260198118782420896521346998475388767224265536809675623787770990026589992800254601254152762232201529873920416365724922800889693137519218064949936722335853226630716158826381939516240651111708657386785106840063082314270597227661473030137791228480230969252323368592378108837657585911780478827033844604969633436210894870645495419876898464596280131771478745673987066961227707004872029558878388514292437549202914400580056890590337831949317155178318958098437325840597317761465993747820914742821550651044590350243278904190126938792359883401946889292339985266465165157264493823409746488617166682450240796768355775588844620625890482680064642105008866690766546876584069628563202173067916870566456918701153775139046798413112815776125283265404192757102268609867928847274911286158269580836695909975427048331288983714139091056078350727865803972549157973091032361720306670118777797275032018348319341480441290930483352524672593212082027124393791960806701397516805395466532176274965217677555518422141442892284618344852802052005054202555755679959414224100942626431165737118010242190952237883646331278872255394427651964798418252956025293076057774325643728725837276313954410844668229384195575512816591332411904804263207779601337079480920290101487198508124899053551717004200220214776685118224493038711793673449554832561183000301676060103412704296680579505453398590588158569597200896764791698808648978666555548106201590090229096869167972438384845187876124666618265521566237739991401815314940104140925458943591186695358553102335450943516501597295869207187274385383934843292586469396839898006779456260206398965711596688589903658230629557725834053282885339008783865801660093876125075374364749206670617736212961195692727822342904044896403671372773832974581028793744310558727827785707064405705473365060459569364888667790855576347039620809492272427788049658018582743490433562771073831007739669798953571703235313682423983518813322473646873478173832992177094759048789257801936974501626770136810584845349150313905260735781193902651963676125814747464433562746219015472167975836593881252630791652711623598897124690233681402203097369918956179789499275594443451269268366963725459074031946990100210490499261079040536401115981070207901796498819638969845541729664447912692439180340211873596830765584550691631793124431012542156765156197810355885448074547609822880263213469504357519615386498752442645594969532864709423472184541236185610255145662203432618655037984576331004176387101784838847435050017412182834082339475330839999485967408897841376811634188819496694857121684663398924554433182080348041331167198164857256680644652897823527151252704031461477611450379077766154814111802367075400675575417600540292394538418519017782005747460926096772969275120738083119690334785909281423514305854185509956579640193445184528236698824748672760646643021776170518705012192810698446870077462767059690806612260191366049605498875170241843519322705948644310797371192029553996463445536327430593469238065222232956982788716130865410334273996521310561431528757598539040367466208444085914688325528340798254567241981696056305351576574223053107920904592244332196935630786120599319846720193155851414157817057738429724218104321289231958199791031433415873097877801847409277397646392438541426438213655496871397382814496194237452767928650999723135816376164971124236022104831263212461062793395302265085997043924320479047209447713723300059627207999902222834573233388993210257844234845288569143458440457078454869328040229454668422892840410221673952377587689743117412318278845462841779590657291848712848508531012050863005978878241520336835614201004889678371705215672425952027441430087891291540105128643610461541977828367020064058179331986958219669599166947417092515413297096633263201774384551815318393298725184636698508372557366111861680652771275070866636617731928102252348158404578550180467115547991064621350356381070478610157165795593157177248999803525147392824216853841592603089466386453472600438861322938015926816507686460290894276691037005736071575966855504994059873371937325770924643436033034559402683905948415363331078765600102077295757787222961930026901028453553746590711409548342815434277389951447921936122285410381170812359262699778867601605782236649535321916790339346307480905663471562016418238012460465218260008727165351534017803960051038577822519151360420889995299639931862924252720659144780820302836621332903921812869388805433739159571188544858422734500328410673229872559505699772006489734055905103056927517914634867992838720054002574975129961673226984408598180887579107092804352762801849296994695988998316818886955100958776503126981688876599205804307712216702400619142775123846955456126605700988514272281599900448404700999953425807655998980676737603569268872623984323323407317722906508932464708349009852049477690651040215994452100984641780283042385953751128844211567662226520888623133246296141935651890025846923865975722422143750477284095124006626934925142077450920020926622878113839477332961455402925262585893809524043083298934277222406506684729389275593743628775203045786618873804898190326156150467227258717644712898595379963079292785439366752228557441391338000311317123395400513543005128594811540157032770369259436434941095631057864151901748964270741074523607896672411028486481147385513898221036980026502337440040861515511765969973835292531953298012906197139165675571645752663547902450072645584898058331280993302543518515678224803727839601359091006144998949980525803361406982917422817546111197081420715068247724057989409763880999428521411375957024249299263645047850994624266851837133052935926060984784990362089158306806019331641828804237861828168919896407024998089024891240342324605705718869805120205659627256052983519218695035150018661608629251028445258881280409496638419852423331120618836794592215642359288922908765305523361804842902590527367077681889865737658357202155476813778811790852133928950754898934211242656734975038378336767838572633171784843719413175548543327890868598840078314469146931648951667072659222452773121727447073006555027240404057541661732710948890573501677441432638395406677348595924879169247635982046774251527849766009802843818752336100003037387627427561468798591537830965475783269408656705906474763050999247723149904611453729181779583188541145160488429374398128504511472462311287881764569101060915807753771819367475846178708143472316776431653226193825505519662272996456630798448684289607921043588238101915288134170662021808840388037575707731194031118515084819236521291812245520689732590053109604116108382352457971063004800563629820687803802336074472399841357338453831147400833055623765061055424618594328415892432492879298347406649318374755077364431684942446786067684312691851273661676347975127512703234118102458842088728168370009924852083970201999316304368146587691138550899533706355630844562267752085926559488502445463021255319881529034435527742335056710960943060560839515565496675800931713023943975030980690728588440519686026417050216716785568626177945370026154492758950835320635017470643214740272463409659889566186881034898046654480487131685127548622280407970207698366396787370368138587313132650421793558967819150572963575266777812018103591484303619194699759810932513609743077888688237599930887116361270710818463086496145830785683762803780272600727351457920931087914130409244055206164357991034781117985179914793140816785294866396843214596034347440509378043766642690539123670068911745612642647909387676099171355642202468760584101093081424359027867235318388390171458029505447657198597002990453518627639368825285707931872375937546722778499781784879657741564365089154724955235845315735288766281795680041282042868346354466839509024409584963670171730798622973192022443139382383704144979734030557816837177304797660103503662558116314311055293947670789059050886709479081844044958474504884106193503967703274088243043109587672741202289755706031703896529214748715212868284213056671833554182776495848565320676063621323450146482507284264241273782044562271478833647154454087871789352932828075914524754623646679133769418490130622406260736350187467409944278910582684696442046591640685297547926795181737969555925619999486714692549426763924350584993968474341300490335468119686462384529460023624084611014031336249927818735212514627958783534882025206049667392301792987407531544434507248084793475922297375980033062329261196334724605680438707909226449703928694633861558846558703099315102958760468373824329156279842726412895689043635049729871900034464319687503083322581733513618353678496628189646055530159564882965405823145083969870123939829711378793908035268523588035177717984752159862042481199603250435056036666571375676401217027209189790799339163331933525217539236412768329945293198145533607167668863057456873478199725057017082206910829797916446810711955360281718399429737035585728238140876711504686226774124457575347765053992419344590547557386494264515038912839801840014558539704936824427392852657900371003953502481209610617106934504766743836126498923760172446496349391901801110113007307088657029617426688734446356286467142642576576799030618815586289846035633480407521135939899895648462128605659623823385014201432116752973025346529584688375065884828054225840898407106038932271174972117675422729447893544311645981787953292688270125107570793418088802252771200191529391510240123765608820053998016299694620800400117320488652522217712077151027143368801260660713063871614573233926192692881884685360055565326771181974879529573011016635263217076732550599328592912645770332723116670135795821164065723895950391549010792438110359832590749128701318990380260562309246361086921500336497918908819373284617108535196388498683224394100602134984613795125728083020224877497310758343565487731320878704991368142620483271754474710331733233598021473784759795545135001068418657289095472061436668061440245636090505187857701663158534128503361351024703867911034509767518345242501451060403368254092127797132871713330736429305199445574587986899868274529567059549639540148327648366922517590719828665214550893235047493618166605645405924494437777694139365047324181660132831829054496386057020521813701163717312315399758300405098647320541637080782954356044931510239108361761834041782418973521136426781551809064510645297038599868793301927046455024759982576311409564622907018385350467354452743780853493591357828037726255088786238711587435202221638762194728214507477758978863110930119859936477829819568139737091686839166684096512161178515179358534169695475732920014778975606621542844715575446654293838306175558599683939847485747956294319364947935612643228290664661789865956549316512623446958599031850528849904741967389200048509807051580252477140667528475319770242325089867873800206471727217948877079450573631793318379186160008576246040093580317909346205873771802265030896291401695575366264894019564433734178178910814343250073908906893468336224101650788668064945505522196863945135165188711523941199413498958700490697758748939644583930773804404898265574323481000031946945767896506754623415307851108447303571582639295393347415205086801170231762233229085227495164083171329590521652992711943661860810605350228085777176840241861319899513479605364189329691544718873671989954055617257107829803221411461212013293724740046874261653172010370418057820185633672987095581616894853600251862412857081170363802144552707722054154907647449230297515032684352686311227859071207090229020165422837515304686216161594887342216454812167058391519919965476420374450049027635448250300334513039718418442684430044180849551685259725181017757244146465500487630843700120761659297683096201929093467513028058742511495604227271398804208868375775047204421396909711564277751995236128227843015521446953081768182272915005517513015007638223175940268122085359883063457388979869106378469143733606356086366615084656410279320277839682279359442648308712409956566439413493667476913473925880177245314076749591779492995407425881224035049381075750694445465750934311747645915404010781673602153913302665664790350588649525800515778509278802394805293584665055349629036688975086917962906156587486121970222526323189423771505877293301209185782384615026458394911521108297960996349645455223751365067885474882211193656748561447664392256192138546557694375025688969481553145691871120404110168913189836173785051415198881950376839551018574654741878616672713704748823527683901811136168998207333423877750373602743723367780010787401066538584755745451916853107723048790901363763010667861695786828775676471678619991079105566178897702887217758249955855196165872549022085615201298118793208532987849925017049482274360007978175044152155038679705390558259763779460760749335897353209317620904706173366930980023133567761080703784191719263899841400624401828418632685554513182124215531241832510205432399175207642383648526092496063589980341041984169063967700518735805448778232049504336421723283693246215006973062841176629604789303220807681620294198177134428997977566899705066771450422831054531542668382821061013960884418857176010120903283447064157194878917539840430776216198837928592266068956388920286246207562452739504950822481495994607175930469200640660259363353775611649709983026306129926301890271731173677967378524849235894449065983685942539960218845583201077402341462736622543130867965715720251714313731942377729065200863898260646375891033066035957034384648657501304276404651203771410739157334429153932019003466414439866345336812919767270074946021519353950134353299598716581756530632623537231080120834107914580716667942968901447254235858161512917583007203155318269486482629101694204690340040165236656291886324339016599876662016966896214946417816806510956405287807816026878559982202959786786749893406978299274041815262502348287680149159595429800104460222660828609802098199527209812458711466204492986307604779124903958273222773886621171321162208117043756201630985383863036308060753931027469141693940720777270971357625099816038182912220660547856609894478829953626681811912431638494000858906591660456443879045592857400647361118322651272843842775991156659701771325626480867366883968630207873123003530996835982628538119159198190644141101662857622055109309186231894562224500450745126204691126138452170423984659866270325730442001547563432052165779743648338244290287061531380086533531248885149414112767051605663978727201890290154218375251646842699956684279448132868126773024819764848101041740826329601971149213723380468686166305432379771250219488272089945609750082854470812197569446693120684239791411013662304157110415291313087993427274103064282584438780857446438593510630668522551704343064733261429154019309302306494577889619391353771403331387059922406131063695391282538339171058946567989264008642812772788904594004060588536311965978425178123210887583642963361904877842987876852582688701786235808986071281771321473713609551145320258721717743498918652909278309350543510736644654218074784460358836319076259487767512384905701314920571780218275593875969691020710224381015189537809115863412360732469627815386086396811514194688955435456422479184244080872652336465275274275474545979117696728931614054566007214427730644909660539942432439123572086550345434278663266500119089183752215852048203092801187878034779373206691448953676257659531041008810579608043386597480212250786588589904592327238124952708321942282718025424997050101627272530690429525507867975001860505634707830171049091845838248215912096170195211813593362809508091979965781317823032827425382008545679227887472571273181122078998849607242059955149870424782305386307311596106522399984380778683613532140682326525147390544201889885330482074553972837295735523398171423186908720975891800993504791205612246949136638958843035432426133573328470088124676662377623107308465653444616254478201410996358367641487337876888046981890250151955396193775136703343805070291652884364158672535511500447550147125679063808210183735503875263465075256144500367979314298828136921364714100954923585188504282634087968513096240685458663135854074412158623952132489471844995168888862786875323394590955237878049454316885249057064875342980284124605230326305773115636392041029454178650058571476061126230632984390506488962893162022957093875045251642068443999530888833747569461514920273307384632188629338355009676367698019541353556564180227519630790469644242933498183146946664274650243124909287493048345900916375411767172950007764928465570483094694235339654490941439797057139955420892815347823664306212710115618934688685036454748532647901565808300832778803177166824632011659688274705678009745105232257354119954385486686504756260192784845769126179558123671019633351167885949114441821810592649936559671117094071259476908261704344591165148484358607057463597078747632995930962475160413229707177514233356575174164100174855532775237021521947405445874938427487538221578831762247466854057524931266539644815832473615126343347088761222121862446933471837667066453594863278609598470520303361334172146865103469771675694845326203146202610646896346535711093978997161682879388610121979179170150078059340584061266379476067222077169614293904138495384439637924628530809238114823230183786956093914959738651637968711459677334778882103430918004258445366278416501371430263093342538499747944684037023818751981483087861366835885446414150421515236176643385230506466236384312253187662106719364647582334934632337784394729902725407408889080724162378581210828957000609721717955294013693020317933588513989431982065569750170919378239574267837847542107490954281016959367176920685740910921734129280749616222840172443440073716891836676699346789959805363370418906960464231675618542327363216416805410818339940915911317605880861437176991725850731096961719510009407273722250607875358273009954305894136710509558806593549421623307202785339940054727477330840455052907998083173744486625187926206370158185666427675560655500496768916640895525260815914630574219917520776415575532613975542304172139053942757023142903445170827915352865404473099297901594279914855242319474720267545824324525861683523266814918513966469122192608422118847963084796727230032843697790739119163857070433594277421780889735843665871196741363091073407045496004232934247077920967183880670400219518068684413268670887413304528403210717180805046250012340679625900273649858574740740632420641364707004196113354012108584354849885854426797028797640612545992892633681570035938346086599528421027516199335942008283097791559927363586545497917425952659897517329084738618339641486930426487243491453413827150412896637868868900981638923423877891325047554969717340504739293868243806153150958578991688100877260355970244596403330068184090951891384175668859143816299850503272711520793344659587900063902623690735835397312794394867262516951637526734159246929543567493927614042283141071095017472842816199366663269732168057510836463282954560854546376664206432209321699738306694687386350316494958555020139394421932621048831880482553446691307358539068237201575914695725875495491419143424982866830606772615271328972970092617997596815817064889098793526362916549140572451458023973868064330809986648667428610943116346022893897854299459172322566550894944794576587545639427471606866084587196027273437889730252972641181016082578815874012672894236774843045852818493316982660137559992449498875450047352667312436224813318369290524193140292760950226884883472420448937615090630547057121208893891154762030821440622109274702893203684686315801716857300365084162537416396020688505400642797116569439239325374299382728415085853923737432770679405893411107645391712209251539657919990746351152410404283846946572796976175797648177765495176861590333386911061803956682621447869973338890468708275291114474987822398044879489897170696985260614396360432550594632192749380487990696649691943567388792007205431426855135685571333492638028206194724839375424316833168122463037094073555891546561162421391453767779625646113425602986760428728438736907895778940230801380899032420817972197312766130670189838973479270974489639302484040363709715272165451754636414176226945505055677845612565733704701303576380775722392532276303158721723050190329857861190356773247440620794849708322623865738251876526917851498335656227819082807447182671029139219177787285612419613244449088100017876188769654812959110999583274967570000353169978041349438211768937969639977727842836940661409043132003804637374922197602839920091283811548037469610879604304325720770732524160254495500118155408237371948088214423379259937569340941966871841786550929136863412313827747174924281674841270870093515099546650420730989612684199538936930609432095865750890689329909851045615770086669201023114852862301735459276519378401740957893227182643634903336950127085814562841103552448054487991152518398333115609496437860172025893251354506074656056014981659718517337956396164797606855636474811403716302655989981623373312637191786947434047564494509757122473171998464691565797297391917993144183495030226427936745284244279371412275738319966857207700735678001595205588379481626687110366867064893130055532242703605562141020408899456882585526017193357264849992357214846512591929346004211530684273537703810029696402165013743158525222696680393267130282596901915386807200566898427179755190501568186634918216031269412073691677466438144384005507774175625506903213240556636613860521359528222881963067035421768593966758454363395030136688501675956197647252822185258216948901350982311104272021624480394831299388219281224309461544999615579664934110435233898273623411372578706167029774809398466272684216859231636637979165931717155798998133372020126757345913498149107661073757210924981013083323206490463028341993781392442251510662266065870507489507078939237011365737232760322832491493233694783482492736957159170155794314855886428245265872924735608333807376815516223401576228758214594430696099728245852239518594792339873371977033412662170863921764640188716320987361671698692918377968269240939777647578656646414123135513522965931663881017270728720447757236241851688634320448462523033162679997972988477639680891232761121453233247788214410706358472751533235247362866627725270889877487752419682518028429948996297967443708235049200739858180762231148445451980621922862734293481957122334418971400292741630092511187342612525734619663922946016050990490914215059225611901750723927335776521538580499018840279770129735839582829390175372124946491916148776317286525999351896362518361929093935609144744571170032634073122080790192707401195730226782151022729999829614162195759266787529051621405099414516400641636261766727205175406064846161838479719812872607741510027049330945639726643197207535380749887028493441687791128424229115347981994093121695512497598451502603038564573712173074034613571523298775200203909544025888743536542659053612758743778050677460238474380199670178396595440698316162961069799811533014051959064397449167969131442263109294544765480189071077402525777534552915984137319501092007935733040895033571544881038996797486565359005448103237717406213722369048777106475556937188337428907178175456014819235982927172711944863509365193641308736891741572880732819761295060563487412614477176161847638022165883869213747606584550939108127703188018537344599842647797200205669116584675825413439143054733693411391372344245164780784906173734005681875577445191097708525964494044281467690232311894871712893425911768682943344400822187785918952053800657271411578020212217569312643864573821714828925433588903513711616031377451213991876998256404410717963102369517294781525390699821807048140206605723655966857821920084190460530156433684490712849428237455895575650216980755087459209722231998782958633022196103708157691824394747302987904313983028392792035431608440375641187484239034095614791891455052372771456359966878124601260318020691530051037047773213885591260746776592844265076372542609648301666064310669346493723818059838939291413290388527794517763667090014043473515325796102915520554923778048336345777226502355830469422888104424374618397478182208516969097745827609527835470136300964304871686747634496864267045558453920544854056090878073122825142835282945494923168828570341148528967551820560142817364364244730730377006641843637328209103533533479761538721760837964960613019415234927485597342135346240522326860112179382722982921361489354082624520598682075971192999266300688726519923137326850325100869386624784529687204610537235433066122398088808087667440081830807020441811008821248790397631186628668840545023257213674354104889647944860098527098243483548291836609312927160220340192919537013738983397692116478335130336373422360016843884778735869871029400007977920088035492750801542321462684743463127003551359138274309426967915174097846454369610163339851334979654956972463133788670364412619762866701433349755346835006545515703114760877025359025503204755505245611185847820475940692439127452373004349484263902853403525191591075376292547909574412308392712191086923276077545332004303158478271746822303177440787512565511428195918829421450902685001309912157378795548235291603121596476701873658182981625322289841060705073113250971834466452544699696125314109470537058788023317632368771620928649599938835727726466538460390697781892915544816222936481941547068645812773135711549680873645970365199517772369605687158884689048864168812427529678722874284901944708210473877943788242309552237057464382020161109170831387003947450220752138359663397666390073243436587230804508096015396957713406377438697137831243045272514348088826006367768630297545893732563752158009345503199158067477238028639484893758793115380125387735053276619983120502079231616109390548664585230762335673334986560920534279703799416991952124376819811513512356257954264000308380693655369540076995049218679948701108287361337647714029637677409167176946305734079188868628476189005243926569038685717390531496150615871611154671248585865593623618974383616668534432166356756190977911283024926536517151768939024090676373179588357931841905707555105615187674942633160477120596477813639225729254849426538882101751288809933323486788660744951514510777949995854208543544308365879677097637924993459295439102288340848992750557976063502234328980501322707365561601817581045928587499355518123321068251924643959183520538588655590692534316847568166978049460601312612591665214798721240890746218597614242470780885863506526771115666705357173374302375276998884202644964288670082637230138131670750608161974972187771521447633006730021222866781197218712304913462667238032684693168593711989104667097915465877102002795736121481978971491159945010909742430207723789665483217861686615945257638880600826592502268741820714899034558517843217448987495914413293572258703556431026585417314103730816267499018328668417880508367065935074191036768408794083087129093124424172742466352390218180444707764768096187970002969168959953537387885697922674930355524409974125906827968823418897267148037084164051428712597283478723268772890379279717088592213182979842795454102951014038966968931607150757245337038833447774239589607995316853252704805339069165229039577736174580050220953104855880064021638381519871793155313165556397201501022682626627170221130172416375487429912565249557798317565822738835466089535153417322477787766997316112070256521835960664152006732795510705409465795634945558621228391566587641450104588619452297493962831586528259765486273319862950188666966253794569689235952766118071111803022832853863099606002044790837706197476673328747444698523549060916526929551914757431759532166422450343860618302799155879134924101295385640731769750377833949964890241451554423901976958274726669499181870448395271063579675204120069406296924538980470016219757787958107156278161083247793749403076248547133390137753094555524815527646875051154388835581300090392076527379106555823322310547084382788426894734756333621784730278590617770296252474790698825965396107635459565765211144493477241768566743381626936597306840426356406953893071999067062905313593509462189167129526049869480905330463454337644803912868156809862485950488165735154207259573308397518261833815854481412113740770505439053835416670638683751982616603566847454192555238083677173160813980261582440773871489736822543961938213144015487120316364166221021568969704203869785356873499287847068355384472034050129555601612220676690460506030984858959248245168374950182148053044867378645039442967088778680153921582641359726442513628647462438274579518940889825782566250592764372513212655124286959477725785290527868130988318871797065965711781263061460772724159104363409336146042235800123149919133068419821325213143375586588021046532281019785979048536892064789550714070311968358497392654099261884213374871770417896237795130810247803544385513899089240238129956784227523557486725636904380423121120608680062166407472764690048011817606467566425443220697722869446132756442248372822299848952450732262544176768163704795202535676044477125395265878567339462764776897147154616359336480247376186653854753316721512951958126107237234154151503920943343255558964131050407633325822755142458425371353115852521883211235129389545544877416655734206980728572412223923465654239172254382585569106738063440264394684761171764087530797509184055315683171585743036788966469865905488422353431938642214038425550557084832048354068533266214689463887466138427131799026047717416808872362266867496827491946340813798557381193180125597819644523503662399551684672396922239773041390168493046012301229384131235227906825356894258524087542129739856681977888290189493170646070989269941969687291218767702988255619833241319704452979591370251639374321430623155344422994078551350356470774718801413373218367883571401560653742310205261295449268356762924406903515619256843372329063671054583240912467965205606165557436574117342373074375338760080236909184792757023487776896441264853404522652139063157744903101653475524396196143932803616080988290955734739752507912250588608411387571048440365681524759826891350829736150118196336377844240442597629339371268387966528951680174407349199966588020067790233211513100448426034886305181051313578081741160632093959552421174433830507247417896429792085103800400018225403738359651553371863342902162364561972877177593755587599630093694871216749865974770521447059816502350477329752990025606738978984419119157032697685221365258149258017612767415606858744236012690194975898792774216043764100372881381150714060151395218641640770952196971342422531469854840782234937730013875671065414497924256899623168796734046551048236425729275666723190284029363120959316921482389012533003519265187128290143274112075967872494965056409592847487880637258919401697257874349756042520371550774387218985180352972901304526754749861037351734054053099187466616223150012787652635100338870309263623782964929447241004496545537633462327802034491902501499648912871933109533888805424661009438209089083240074526949833610403475137969078744826132361470355097223902840787944855464071749851767737846276269952983569749869947495637908619831152958629927594310773020938357861895862760948958639400845991382716638582659000900486745256047848252781869957772470594305454466092040283652326192558969772038106921773572858212909838471821725892784808543931759491698355664730668719049537598830365370429951683319014424200163508516377741782949575187356683746947607074600894485800883051678198921852285164950130559743153527174789471929265740424276724507027458877314817005094894004395233997321298346414493547602225973482365691751599491503848787897642316778086093049788789007539756564779152708698496111064295676213632738384560196983464592428740247462781577160856990776521983593768605900843839779610544508306615463296245956008689151411532692215420578139520447464944589545297098392558223365653757505982356721375696951018308729833407413483357450607905463878836690809022085034670800850692253926636677127590140523327965354784197019161192764213350725948439084972552501791547028254829462583794200686048113015393779060719655265384141960415455884420063692490825615214693659933332536300189260835795649789473453906725214170175546341065312303986080424925867551002540900267130853531534572354608151436182572615561465095571222666741758365591091956113203639204442415937516133646100137379685629426098966190959848460075992373890969359732259517461433567607186102336055663317200574032055731139292987569252237140386574703858927227564315231462090991241026624148613657091265946398831725767170443754745554875690826302716817606892153465302482141136347147234920348875678373054900298350063174331808066378851452320921342346404552411222117172819299368587715162629772176084060997767841511265679557206908343172865667815131128692914566230130820324578776860758678356234344458326446497262472017435523957001517526651931202022207605594528603336549097493233608515248535737792983313878185673194390943399291481986840469705286039184691741738279374123319217481660750947036621663100970390061733920441130212712328090555274639740179434015546042667335134391118005727729910067417051879256583080751546521826687836888284525945344790865147780495832139959974567880232596247885909162837762831594933769976560824622719547685183906832773045664368557753930554856329371370970417678524971198134329982148910665240984129652987955017480568635611967835548256285944117945016948013006384645259948966102840622624638209456360410125638397009052691786400817795693575393942554603818346955077709905539634449098113124433999931759790954936569298871482617165465815031113563368911997187803759480902547519473903320073693688011179921965746845625427552073703963125249147301883224558221000914601646380613539788303711481252428467990406609547408842942177073979959366431067945632701374872612696820781677708891194436143923997439944460700489906698968188386361925923386351414602691829671850055651933543080233470362594162920358563822070379624773047116890580393360789715802313539066519210745580164848077768616397301745025174567808325410990186660132294548956158179420182001960620135247207622282802918355929694966357440707008026744287365225672076188193826394809823424011445897005021028636159253468717759997482993720787312076454938546552956183257737664656344478810213957096056421857874098876743493360954673565383371436915446431325678240000917997670703641797777102862543004332776715989020871552273535227901429335561683308471319059553786668145634485035045450692978906955401428333432711495450884724933272952644495571818643153377285657720694038594428645451307067813295389225560464734398852290350067131226540394459201575104749732236516310763855039271595290431094955226728671670766984846655918191247450525247380527088152224887528966814502374299824188457194778969765137046742891507439468205335557325570219060392053760197963574342466375889561390048619339748112899981272243430040702994088396941633153529201578810283528572399647113996893597975572762687099649081346426824380103901515259927240033804166586884397878653773363257674473559771626567386861340546968512773820216490450470058634709619129039976755977608378522368054457662400150376338239431135338252839801171917197039178528906825475718075522107475717393112139449183784871826570476844581900466196680203971823263110187968829008195873984554294824763242039137480129258492126087197126315312137604618131588416142200003421850770203239973176418863026010485741268741514459898261442869861115726104408946812497405926885735980536480965221205329304470339611201355485139530258536333831239900428686084324621143242333764694517014649761148613676434054475831275574624188995912320020782538438322355119794486424563781260212854163873134712643852541413897555927714440549522613505693181368451152180177901895053655541437714580863809233488777281435851363247426900736345745241842338872994321175145688133745541944719304695572791462715091843220825609132884151927544484230687507035394770108593574697588093188964835947010811111320348442731395473175205363065414349638452207309291807136920759797857207377302939482028372462680658494060111488424264177019022128907881892100270597392021761729054403073818281853059224324272714643516666757999421392735178305149317097970581212819905152276488168942908536444026219783083108187359380758741013059078242099826287141979994287561062872920447618185660547619568950459722925293400798693632175132913173263066360554880311377064465142541844781691003340099269448234083233146512970494693649141916508108718428891397543025135678438589981073899768527159662035055845773019442466411056663068602677999779045781691195056916772877262160577654254230100720556581604696490934699586802918507285270341685969518490870780243394568515417935395161527993295886305329015376917317368296094717783104501537992725585346601748989718640367825192148442951037566911269464069447304421468561462749110161441543168040279837735773762140069914130013055296795594675435069489982892995428435173352539871395970696563825781873995110325558688932915526608984420521162736988987876885442554964380307542343987846171972293797207816770051130017747208116953598110733942042656432787120109126499373358941332303321137348046470174639925023499436073923312631591523768460981330051224900505239959934621036338746600764902005802671241891529149354103324406488909468764548586091694322641044584776897417878104813332572663797667699533128990959811364414414327291521378589771292243347061277972209751019218106872705205621442874663765635372893677820848392807903070237301075209982627074139114023582972484165561198591808778394425909380827360671263888410106200442010634678812734199492885957754853735440002417921468936027333006466059413411565340524064082749619426118646058081625729246008295997944953413289282205278674450840303919420632060929027401589969282312289076961393825894617993400509780296281649690969920128680991496319209336115063218055975174216291855484173361222440233140596549185680437629159032322183676711597644073411923601803252931749298799137541057796464419145598983092100806747200227678958064520255014507836283340076563579088285612835055559171780307723769228045999781024824396651824326793711271337775074061680467552146507493174121550151754767852499519342972523722433204916921462862986252251771354040103299911865624680166531494007325245081580051753624888792008867031950605584228929892003043908230139475041889643854522736956522997839580365436991311983145685861615212190421363904957561793812882293066123244339698554393684298754694145801265314401480902670450414188547729284828894045470169885621906844726154050279934257309565782422476132547877454371022337752659911330379482992020913162448801720537787567830719589959972013105599812099414890391260282023220430294367043464903278290663320509245967895573124582947874296277956546300388745866413100900321995671528003123014490122150240103450028796946032748318851030998304409487854088769269758951450046475559254245975258493489403959216595350811413154741257638884791947159586830190604546836852620075412529863937592191732210192382031595254335807206552830623587725760259965828542510306580968777347301968189532756835855241926510861369083835061103676476665544662449096320908269248516717559038782984024069267137102753689552980392788481019578219542512510451264865962542385656380576240124209116727450636523593257816945745133354755533087820964658622108558718407977210870001679353165341386106660706448352354385209287650375454729779171499262393394266849102609041492792472657263372758689808012088766715137796955339069449347879447373736497836739551985078314737537093036418442660792247569229433432280097132785910164999274295208870472377508012907644256581329987992699487658470421576695358185042673014329156108985667693701659175366440902410319931607544322016720117143818793809374158185945527021846778794725256665125877536014735240366567617158370177989231721361183470750148014558396877157385189134596842648608551292027401098813073705596513004807599209728345219573201102370863129384745549250672263537778519780310005475992556274964416902025538041519968099944094222401929390511734235954767950350849113574484981206607806064180596351147334346253776448955389940570363296332178480408540817904963163270474755770944013338532697042205185657912505430211499984728184591645057577038788259805280838291713840000456118273316354858386028894777239259849738050162647401067516848098123469309318397960473965618586954906580618577404188422922475452032120607170501785657920679443664356815321574195092149554055408578282242093739648348390713866801969793043136065391546153811285018779824557038810739851579143289554151790115513819509011972293899930001803039821253952808232601838449461629735661816398378745915192619505422780563623036970642278812089983812828209221870566247167358702251940395899454309621567884559267899273118900625010892167218400686318853476897869162927608764897963818527925513757835027041340014178504286744152553736984898618229350404186831312010220897164662596918011423438181475088658159305616760825735521043483421210628399406498707593944798590239191737325987376475661330871694948151070094066838203660555450008477925795320680565412664743567724852043941840269160913380251071866807338790353276133631108204287083716604877348416857935679946676649619013627922382582218757130552602797325917533103170768001933465196947143194565438430608738063858928787777080640737897739492392409856672546696174878872592704257115083303972278683523987273084963262595764212773683036234227131859776647726299983584225414985742145900180192058219560257189316894897302805018207749355060672943300217766096930703197012018485943230232240321174694245510237333212107393953100931864768116818565463070862948840027389049884094860548205544018174154803230656308215318509743108591665834366718651201276921522141327031776218804179496364530649160575107523800357337912113473862532309594061715352526711301018510466651836461345653819023943696798961478332833453555984175376679978237068103190871393207871681601216574007513051108797628291196326618910209428712383757835863913731803882657420360993818115550552637168321630930812883092974801294007310634008828620345219729873342949216289963730744793715215633421017813209987447036543502275151866842607956299759040140504922321576250784207746498812250357904299724345223889807142229391416316893160648464204773736991173037591713388440238693506636217775741753625286688247028738381323586245808889155794139423546140859492917867369326660642781251582395249144625961065989492966246580061773445079789860769155404792701046747642706291019743192722084666277347360774498550370413773179113811663377619308202213799364469857176735266884804417303666838431056025258539498204078596882343900219031022574179949408498814711088912598966283431325446966638912599604105649538126992796357719118366407579646760227434468833242248028635470585647869843873604570582204012608750026978741564618545334691174311306551258121080041361223317803139687137682378777732885009798617655771164578971257985112883599861280174885946516433424477614725496213492453702047038963288714370798673347625591325723962976391547022347952268955854651312941259831760890443448855664186621370339000651564475387684646608750145480799628763778291553523789999240758645213688977190959718432747347749750018875273435722380428269589686493154163131435382345659608093418323811832599477453628668928517695387426346468348067679765656338010853942962931728775569995546660746038227762826538539576392604519450338227936645773684888289683551910025103455410327023486880384818540851286519831536204466734808227855508345119620643022121005575713821850903210408678064002819666493184275352661863451897295729918233531016945782079936434028085832759268051896560309481857100388287215561930230602198609243376563479902998776216639421595595249462875204439832347915500207196687969336185877065891204611237699798521418436987543639683612171569814229852749147215423129012896600392254462064951615837724333563244317536943048175714751025848326833419761607909973964010909542261305375978228321506370880596475923747683351654614685926836141118436906713388283383250245428841014794196036258413489408244957541027184165750732122523578737563212266287365062637746663844482152509303665210538948783458930505447126473686915398264611177538708996604707208145717443070594173217049418680545141597771795824150191889582935045996653942285843540899796285284196757424126955277334019513878411713955523777494384499788148471386117809940797749675540269924321776247487123605473161388661845989458975804359882985787495967553583146217499181249280171547889279917065616746568903713155489480094289072974424803281786696270010728890551654768541078465374423561432137952985632474923283069133564413416199348697804000247884583457399636293887746124991404720363431731181756668822598941461537485749769809286848040546354384613129782822939792057861755553735595251472403199206222082993596795282915826039099879165383722187417024944955765815657233393589047370997499761109515873763943419563790432701899928343819435297827709644104535857501920917333420996022707932514095899754423882328401942593865531060737872302666204392174369495667726229102544775256386162722219720968309151536975546561602970430512878119552107156739770855127448884889159606752222879308786352816745294427942601123155658032322325371722851571953643958189560724507864366204452396854255429094276031038977272261664833689041731784092249798623981291609037455659960391162477198127056485159126187446368732299886363503334971234509619235789374530326769420564768452541150507924262715526741283574870289724128530520093431978988131254050891833992225269261190783268059920606308726000118363825573923991985063395564950107535346173431124572990473801951141323075563403227284907644669176143608841190030331836659021530157578033170548570543674651688506594081561992150448086882171855215230486007124655083084112928371714802689240481374465644150493074917419521661998382032534654561185545126002202210756498941325395476561072654378093022944706393139259123878844328305325277049895518501406812464346508480585701801353493541353134744605829729131859609735257874962063676612903773519391897639412514176549910087922924211416851960591644228389652382475869881018937182162202373620022165469898795987921319846311055085505519172535309071003430321654470210097504260153415645900253023744531896358013165115863683796221454850950720217886032158989583306731804576003590745324853745606872605921499443998070326601997665302298786633750032484947940130367203837884999023237581158964767563099639555142791148253021435617604909979922884748581320434651902878801832775466284252373299202492107354624110983652342397629288874461591045967644455675637288063199506702939393324070375585282465310922290294867198712888104220744867366296959204324930253079551607916304370067809253074492273992173963955163181557677826597035759739889179151196957563284205785558059896397836849394701164045583001643944688371204930229907034255071886948237448022745311970412906346017301263564814160730295391688957447233722843295102837521041246969519587821335114487335672975071870370841276524961750459354226247495706090454318354755080615926785657603888304665814194805953359412650272197030060930374398485443510589902992811602559505393278931823809188535903746843488287212909256977717733795131259442620581833450517729550496899466393916811557200530333190323964341667629006475146260669708744757711506621522133654473939979103774631950592659440546007274776711827112401880107367923786594384195609115373906639173235659626581303779681787516592469518454158120037686209809545923287018824222966535656606731818601954172777573303734317270363475620500544621201736993657104449651368342531920232966533950943593450520759520179806586295565156080998988333975582367691258969832816560375490557303603389951502864340164527966750417251422817259766966961678528982704834956178252880696934067213506374085759063711308764299162125772437848293485388068340152168899412871562463563797348711023337180574471697848116222073678366417555587260346401359820763342008933441389959299239941802488084861895563288951895029935277982112082424975665134167270907315016121130823809742201268184463902377162328948321963366333669693761123542047128994735140047048792910636551805707751317834787074493965740423075403809241196043712045099576784986071389241881602551948850686833679296372527604541504620308401977812976146923350100939396488029180867882032223981666644435099514987516779417354707115364462715445764913198894068922066861053267384743150770446432635070879437758202143798269849371746546557917763351183169596065822871430348909162945014038758116053556317171119065523306202916227995571050517830202596557995378896805769691452133857597885821240391966724885480337215613270601021739160353364739179442909492695697519254778252152098238850756727092680325691238257393354528534535095006469755287053788219457059641081044605988079126827543798239705272534375406745150801059967414162100401909484450784864066550935307043734775234977245975983124127222059072441223729453182018417077338763634255246385637724152980321749714308463246621822681908847076529518546163616340447788849323839383072837895788005703139635766057031299111556936161976227152726125772672011271986897114640767896269210545247253078610551691929527096856864626666014245171421069337403448686492482129078306266265536349909491700143304463706525877065584365779164374273958102689674471982984999136318243719351492112483140014764061931566156353913582976175745942121706580473477737572317518161036131578703423009348051449591039666935599796006128714380861688039154115471984945724660603018989656171097114189923034080607189182085108883637405420703554801052039016054395576386246970975911216672521983106453463261172526906366954046957560441098378383964953331507525835325563783332663546755337323165533375017702811763459232656608001507005045071629541749681171133199280564936746118589148697015359511151907416684307596510127390366433880361392849372743400059964421561942197624267080003243141964276337746121744227240011891864914460543800538726985888862829218360214936924126528704832176513353685171395634737236197486930829677521742668191275325087714088185686849928894175097528628827468899357908646678673429079842933046703003526994316081191886233030285868543912898659194949976731336685394330607560331835341623121817572374268588535964692158861799531725317546202298020237677102282015528019079039181022457213391867260602357960856880629835204110896108865150443319886478412034278725167574040790206691385569614404672850186564363214087530575561796876397075077104724822004828153760930963784403841541454002650134825639373210759867826428947175571424315811472147903238185933306875308264435887018093635795144631951585760484798746506134106247497043353614647479430936883579515959443163810926978008064249440885441660690328099493131104380744368290125605836026959683729303230093126394211395445024561104490447252861941335392988462976460339147841996987724697468786517340158232220598795549961524576435214674074416038547312962433845550909341793374000611623680277442271478522039367938081854663776687362387994287425344640383016120045984328490255778062557125686565588271236513420466264128174598471832765481606060959268029473733166134569623781569675967810481964261633883046495843217327591536357237812412050052128442017971436718502075318690458396618575833635595417914783806667701997040671341562591906464222435275651743360139953373631812447090418729593183728124327619199725871227712686876327439064343399789984191653981038766884354265180505121310364653960471316937282717232602050217078642418021960971099249080629866638702581321485551762620511578227606346992857692004492768298432713576133339920078986492720496421182138521773547774257973262392603284632599119209125022128410576576961852721561800826758957884681059451795382883536333373894387294488413154623398655621939734674193524017317882862823208115512257296867155316560592285858683212775809460792879999608683482978861620440433148904695363191253657602015759645351640029866750450815623973950573128915447112685421832245038578056115141365835357119853781237409113464216097890221873259707802402824322972496277556382906597407074959209272262610314967997453620203778041556422183815476609835219209250006437293645768015333374801299973865230397350587097333233972950670088288174261896516411650081920509668572406461123289492224044299179921611158906928328156622561066220930441386750314234582126602368233127009394277556684955392126868083161040703022354737451851543278709870218002333195453591926117917663133728272189107917817276296588768128830327983504160750562813832004721648356067318275907378247779896899130548072557609149700853373070512440526781624886978592520877755838570491468043800217011806978842502504098686748073391272220386608757983236523848733058015043249103733501115284041413339760450024149284773430063289478334565868522681662585957179125362540359261124165714379115661085022903613895265963033909022129603134525389257873899780816308231319016614674220418145833743817067570891332046451491032852096024615254720642259415248635061405624043115457876655882377068158882710437071561281781353174687884223791817834535103873426759467532682989070728755784078609755144245440092641116560768808694597717856568601665039195339078205325559859907505317350115572129029477196902896980592788533665372713580111321173603748682705067619480011406975119372224740810759106439134884876766555938152441461623450008059363818559249803130791117032879123478501536298952361355045403324235968703449956557342593653710175447760522922300298057361013071538631699352236718430086229397359516372792719634827362669075790896790419868276861869693923142368295209165244979388679456203962148382781106187875117644523684821406939118063868475111817518429394490006693170849201661755507860431214434528511505971064428797722990625188766962607321408337718882182648594573113934660250888524440345986132556864770567925903943848605296552616000904321374072945173169496211331033876778716186664352625440007609156744261360195549532526690201245989671795710819334368509859382268536358691131662371926097815601250087509319118584491112008702496844783476184343117303652745968622906650718660875803295451582781339185176960250837805851018128837821553686874639183860038018240858036647122397043444760354183625780727185744651503405141377493481846743534061675241696598684603728028939544879415759780496540892577392998289189579018463563959832554495390417726184038877333753942627835883545499280151040203256593156165379845071484275034738201608974287949515733251756275787747767377497626827915571745211712988684986167892665345015162184862203978287167189416439427331306740310532197375103362373239928170531057366888003125668399750725674228564337342913258668518684076774900240642632612490987911411796918568251772772162078507109315601490374368280627682332906529527966329131488905302679584181959231814481159646017757262029357342538413408422587722324736282756319155778188057036556924285397784797114708830303756910653583697337592305923351782315000027533724511853988578626501037388953960000457172968536077464367071208529016864943433450386816974877580104511384856672345916221902606235250650323055713220515328506290026950734045621278116314095198135627017055594553822931753307763588518727602930595392721003072074114051715024879322773241972444409717302903653256399241354416086487097679870193088782173110066188493113573868689532500138176182607936461057268984864446600226661308744928521030407201373618665068065455432674471526026910326366520566065310823191523271493941781956340129163600130676041586336233052514569921144767112929921565372649388486736310338584444925564590884608772029000549423376666472654609900071989374603096578262610396908040178158535305854585570481402443355507674791199214404181776030081043331882757770864936148024315247258612762265691633845770994618012306111006640572190311207441824953348175711856112364028174001510544030070698114161652766515513214040569639348770230690108851989967486385272407853873356193545015126005337489320049113975319352602818034983179988305458334480068695046335449658461353508549869393203555690958936539682771436154810973521675994729255872425089027769995034599667862397502370830655941769860263810710537414223918406535018946274440647181221861938751999796153111541506671950934603666114093457602915579179982552607177251054206202188250905098007325255281802143151921025135071737164189384783362673937075952842174238272926138988089652170155120664036588184493099438687577531257778132818837159079691958781287922356028743179359087142469750528108945188634835840301936344669917103355233670971764649798202025158087060280271152087677466213179951874376937733690023558092216614150358075214408532857227364489668012130311336358372199617641923633039781974686083397155141093453719988207880919194627723605552881027281526225160808883999556724616213109897549655324026084555312027885896610590132303904122672704449320424422860988791847363083211913211504524996764986852140868918138816282401342426082399365395776797709620042512691920251834616502388368311272903638725366254383063213384931761227633399510725883114072518661815482996849320883182699264530780433628210643665714767722265760958940280661513625205218809964439414359935265324533682076133875868043629500784716926604199283328458503764701726297296970088097454001737228553605594134061396720876034647040035989990502789957684492103610368718029920804572005400065952162648160235079368509757671728382009120514514367208438045745735614630885974429917358522169405647089048268483793646493284991441687121920030796291068229520446592417394994923547075028049739451583058925815293642763309510552765514243633574588695255951303209043925898254107902057527676866680875230701034431062368277604958022868048630509046624559612768950062810457417798368802814929576744550116505561428582776120885961746489940089998933672555891265586431304061877248643622429422272596610479442150963658070535630750009717782015600191864711091031873987044441600559295063603502087680085997621575762324736590305442092013762309227132267034729692490881310565283851490003160228560455615632351507499775747103230840562210419504558779368740069453269348149261917519903428428798762671362287956696963095326592675891601724687124054756312647333978681200464150355178806919792577565157305726285880784120728207905816989204377695288717792664821170192265059370100961117440994374705641766005288805914758935418148824985222736521177060324428430127328830269468759212147004692984794151292173866766117149274224025566707073192422626129059958551119645028250654061503331411887602753380562448127712335038734658549584703567107723518346459901656469086059128335904170558459920212650354975507731917616579187532719753389298556823105473165045810168747282833346491948370755800662924452592179258869851942532837758961541675583498478564508617224945202953192927248807541693442902485217935950146063536343726813490661328894458669371038068992029645883033840596385405800063225494560132197179106444401424713802192268557790120765162029045650248064965540475507354350585376383121188098042898134041595209929068819561382882508467744365107816528893208778917211984057073366299007727398281302703457663346743372746885362214847990315431003353717948004205528473911941917608995706586275161692116152453657117916055921531813550385560885281722071027655257868625280898925292332195424344511231595236038443264313729668752068698530009108188596900672577240110205294388923011224548881939726885773913098469062531520381817668781970291295750148671643540440688031389306957243350725514625327680546233387522842213645230070182682628572797686226129317688855213938674244016318226562409331829736514461278564765069264323486053788362404118323319944812611420780059034650242003654509282831022207444817775238054551648222152638463406403351091242894494609554817681327087602259309045046022607657541266678124976087785706739303025487051969263412875847012547066047112091521348458123023178178867273856717829129417785233800479272906243533307363083800638772567416992293708219248515479723733440542568528943239246207517811562095429912067726800202232865693310009242787458102430043972363174777354672449858864458368591880872884920658890041609462520439767294789686417704275315243691868893018552607164687232277933235897431895928492492417440902802394040131001951262020658434923550654765244915012915064041930018726411503813998055764715280476182054834719429158076541823800183349272094685234983602411158531756807637007859828743943408529948463413700795232403212340011901000669438215398293152505020481918620786320941728247083585356993506394062574231336569251780831864591861870264296115217417361751954557072479503994610209387622716566991562457561922739180473205586204283149483924086752945989773201958981725085150863711697559195633673037538732582766863437152042094797425508878555637138242014934072550338896463208789842308797374630754851529852760208072095580332066704383794651198945379723402011390475842264421861741999340051920106535327182269677609566550749703218921365247456721139425075265271391861415221947823968869464638982275077781247777381416690936179947905447210575804878304111719075240068178489228909805215928110111448750840555998274660526828340691182866377729147760798312021330185526664085585072810115749361126992604130603652753576631628296157555032689295592221071587900778672982658729374440341813695314272828473326517187820574665228220338165649396936410146676549541529213423126373879596049511526951762451178944957053524924628537936748682959581472447786064037487647047296942818721323625869545764421993518232328669136837951575187688179533018285058342535966316935640325862386289054160028207540845107308704706486250535013865056046716689926406879912114896913156388321713309313032937596976967519925677674897918899345475862041910786134348837599635437586554444203683640285477683324369783147206281409135143241065481637222106993000870632432024487644157116791221278414222598318507607232438079838521406658571478397208250570371623748336018651381121982979603334095126309822484088753274277944808714500548253773123104938487098429148561568873325967276608648570356888007445330337260635306399990757563372936342902666739769212975832498247645660820464295705709744377317985336235260582258161466117111362615043524483883294069499123044032290705910627723978207990438033086437160862887381168735037204438665401290548418644707575096128027176519038908443665605919730209914169658592560635225580297917570053323901934050107582051833332674674662383402841652301927323575371375274864396183734076348864291648332809897078326600468842776813915522042830401399562669619266873615079846482477061275688852870194366383562378400092300768954767199400807613462888469253935374991484684324243086326791845379007820833999934612357054144313806325503191144469493695783221898991296755822328721643143045964848276384215029098084927340321580110300824531109214499148624869057930160517110885909039299277998294301263533083360696501695035433386678622162547469891495017621332291469070155458451368668077017959947314520099658114434971726479861849065459781642190316152633070421887983602811653437583960807617302983744848784006308012088730088610518583588599954915691138167767997968108731745815083743938770042906466032315141250820930150234582198982517595031397397138724730797945294982014253963444984265427888998450238396531460777288880301379907998149163176942444389642522149684300598043773890198586863779666903261279379463380197102554843552627180903725685741882931893524057994890622216456036345468544928597236294178817743726817198367995781706595485135932247539687119560279403245796646010370897865623476800941287906781233834041487881088596388731251785205086986343613388426984993224402828789396194045650371511334499545204542927992129784648653349464517005210335651349610009914002108492105091835249077898876534703505380095246772221713406251336639768658973218649502880154061845661089485199712835208018190934390779395115715703001743262932280282661613565023303492812493700673714696332929343685023294131949746782179328950354148304863285710323992713128818458580444789619112612547813025132956152556223046326908297757742013659541267159809059125683538822534077331018772114112526371983678706249343914340841416037478025895508118215349623164398118151861751744860373227538288537026077295366911251005396955766286728809054138486818408778425049942433625851836337356532628466377883393986529461922431343627933891153800753851631786513474938574803675651122032590825151957098212464970047152977223280856808757040562858888832975673441469901608749971552771309329689519635652198795122973712053259075744184343147548473222135526860301282018955875772508657226968876759684204719949006760513307507517187087156400071090353249736408697362938604698757733627951937942053401427376432784441081891999212195131333950789239089438417786772851855344613580930124149958585483520476253139448583713451645007875134311042539332025854543806773651443928401849817053335465796557773285735119291781598052920590216256110259536736515287635999577065739720894252892501725766053169334991421631262387272998422143250334018342055924139037274621641668296436721837686052402327238479536904278123162765069415097952089593817165010038076552356485619737682795076849635741418048467496443266923381987794487999872436898983376404976051476069825922482262488960985148909654811818160573937000268445012164326383646955771567402537312864139830539120108624863032158292109017756076996641280977719620673196283357371446715506312884173667787920704672417088821337449202905466854244531740758302521422345187731213997462489327526070077982222233431847275681900804262378696613048014949148787069014090702723786091771008382175375305018636536649420125948172244997150433611305464968745355361213179656065266666213137239057285647130005079420602668057788391273035199241471492859782846880165665777789396048130521069130687884773772834304586643620603896409165268301966669719816389870828513373431026409771207750580701261336462800572055099923070184052621174038913446669799740788239887814971447607408003140233565659067731503663951530250166797533938916390600282941530379719476826998607556322128332567677316667255384692657567619624146236090763482875429061428812794436260259328306893723727379262960532043161799570913453920119349668195727879022966102116799036629592875678393476043352216358529056492096519976700988271013153479952586448374540343403501790296505634717499803281896689969880286147478212344383347446922485179652252456115009316399079917788995229371033064912818369912443645598221288987337127441702430057694828220606775524360973740484211309658212139351437040994770619339477833685627161352913208347716627699080851378573049853654566332669055335215395786361844213857206457471420195555047102613868863587586656640901826340910826833359016760599651133586626143492521809641559699256290510015151306494746750819343806635280870915679412794755203255686106065979052468505474427446581013991040466398696632505948487291029287167664848762782690936782376203446536999778393662147196777310110271521132804514256848946675847317896411679203138737230968930133453849288565235470294621146101098450883041865848675315720074617432080682568144662458714730250008518824273086147010328634620222962739477853995288810616263610454896002267129693431947115455054736318021678574669192189830337364114494811043654559202080262603004189049900423544199858839539010848936831607053958631327687747527760712388539661005615215151355828728048732990290630869078676055905695214547291012579633827664437676048965218105530301537720631766002177030839474988100880824112584504502552626841122503758906986171162662301367973273716449440437041871509151827334206939822633925136749815829276540131457034413275600144095305679090733543195175675294236467927632467719157330066985822595272918476641046213491259702226067809888671826050623270541067681180333462453924058842138220956089994657090267871072626540022199409428728059286684110519903293372703178145812532313489760582123515817734278929551414405682094031573963980240458699103427131856378755319927188145488183119133340456836290799320057679265151932677164388035290140768095699814361520746470264386999037682279589922757780713732840539914699004388532205085119276708389035858873466451383590694634559278853321850792606103931522327409728972364449785997028769240117391900576886398462768606763369045906852281313497252582177894320996163807398976828586003871708280926861747834970052555773911321294771186613709380581572066307498535815070087984911176487596184577692441369248381971279204804208178015687854872632735650733250296826423324935451283047318998277665749764981488228682633757892995115755124091415611818268893193702350401895043085042461482729444965568131479471630570330764705263276823896172051270963591600222319464933115085702862779117901805584028801620973373726193551045106353541345510816002676472035357203778505481247353833988385725900593519479030631018606312422451135271695397325428869392513676943410700332722220375366215231228966704709860214430222995858492064348134173140584850591780584334716766574267384522979794033929172922292693733818217187007958499807252403151448098522670164578936199856329262199371017357578784167319432763790022924107469767252622694685226465632991247092708145354149649020896605983155753595053108193873623849044377036418957161044154482455059632095874482158319139320593420091835260072306578047689222947566254126286830520158846628944927848945891731892990166228207233101831107942509360612724960934882008266766497997511664980093496405251371886142110064659353207745526816303966095196610900821160427159639788661823795038700071331378100200683522356308993049907028990385991825274029129609749966412363173645673440449184439887701343448218870549015788634116316181020390301612402759167119272687886103133190516781628353329609302139976602208872708376158746240101897379340222647001472419092255390053440128523478135790991693689129875373070759380507531275371444683263555156663797734763350620737383214280012354021870246014164191929087484873223788157118397174770514350505922303326142434843255376985049305022931254179460017493214909067558695388720381538907581069206856427089145500986210952226537601568529465385379630139113081183334114172154178135181432023965177065321983766965836472395219464299062355985001358565017198542775288835436432473354582701317798465580752101344982498773123698941274425005287135196050441942999917924661407143434085250201927282353706981486415369697116012310871672772820215334680276939862106585517626422206837121026854834399617920207461803036537492223015624059649453096618075990661428889382463571014749326586204943151263333778051609930311755232508025293228809143337743518811830220135136939121828089597168312282079902142358117881858081673923137556056126471839475940482312766562374616565080698765997828115241027637552430799586441250352921642978399443840399669056027683274439580079324242800998828227305110570786935907863623240651366047564462359847125480796123270817339235548231506929472449156129205090577113372246228327067808056549507547911869024102175949762545188396022277755943207850876799444332209994954475224972932218537047123367381902621164189245749711034422068913735890326832348506165793742638868754317316155369995478870782630096115117894811664836515697060968691249303936539242103600804848686067022710541096441451034022846317733650947039411126095498925115389550672573107829810845309735109846223669049825166075902639051363114593074829273431849340007418521496679516164005480912646350323701328658995635477478488317321436842443751693029368019067686501517844407113675658350540712823009475916258834188861178740045450256284935078985588112052174558006333269995538635481974726703761519010501029856491854165573132109402551564838709697670719574556351762637116834011114689284185725910001546356108473442428293927741745558485677785220891977022938591082586281715189526697575938932599777362313290132337452233694544730524056883741741787632930763653894393432827800233513182955820472685342433288047704336656188977481015908218993680245482191370400364922043910723647839267198448649210076233570356131555703292094027140844806511876446147856210303704879641471984093009107601707459300610126948468650968704655924683184547681597678548639739706161646346195177796096325145681137913105972792783002614198572410079866569672777769405065610947316851268096303392850537562872302488921042974774779305688463518751114698488869108100235095003937507090310992219753205589602796801168813669533287248446559370630809817405599459653760255556980841336369725085646828387500602682110875695567496843565749530558814119150690897881366006945717453380489594800120547192809908372704012123247981291938007140790308805075968775339071877616945634427193337604888257984869114105814108043000993859952613295688582960135142888367591873106807626491491120497227857790857013088741716096899846407739154920610037493120136342604552400829172084460979136317339945563213415717553594369718269252960281390108553450250787041693822458813527508041840216981204837265170485329501366304161101137550711718180724279633333412333184317110982963975194458644607524885606619421477155933363105708384594085856934460228555557702611987347550186888531824769754699522126227273225858238336608304407660708627889809696603561580996809263994983243638890333646597880247843060204113729121649357157660435517746391215627715920711345988491895596775252577248681303375713211602212056914082956544140063343910367289811787348016741212366539407490975815771939889983389406806966874150700890052638985426125000314831741927981600216645940570616908823235165874884642880499947973208589858322606440970918210867564197156724360419652097184907154851021306534270287648350504924602324207523909553000950175581404455630667997132003524606178992272099045151979181921987795303345182262043102413815985616962726984340205947447220040149165318409799284541156481141397926957051094659268684554101992547932362296826126666632708159891629072081387117759912235080769196757277948770791276883238497526699627135565507798379471959943057147331822867393454988941835468253671127390462442302309022677488253647150508074765655650934621315459031879962287457702187325972261273702215324022835078674712588685580882897347419438993648192924062811627323795511755527802352106023927208313350673801268305021258789565041038014999677567321218436394820711375503119981252753030539075110490841251068429675443286076251233448761286314976506386229420542696242793582364121889904821594147059147506946268453153068746851496832152616549536765876269035343059189447888351828063742216735352626474123675133775786155963179371032584405725816485578426240266461989145390712664587283869662596635318376640397400814107481261437622832080642872109430099526061703703162995211058275908374503863980948985390001713096989622496731275137508325489880445367214409971827392882109566761960896083784725886749573525156410251028257431764383667761847221583169882950070267354526884822330280148917578151758079775995618610588944680773792710444621329577795043991376067600256000354095531685212731839379187764763335168155372127354965149082758785619123839021917367651795158185796745928510556970246684101308266701162303404087795037296076319259724624653835677231396849160818787696186352479157942487005932523201435434691135955129250852917345727862132184275438555409163551279428622507312085760589473725907258116889275361969420252837781917463924397315399240096483072888813222531956427016880936465970022138777020789461610301924395973648546478314370289334409707240464715572334807704697593691379817371562888398123604797916133695797105356367041024465043144119790177383829609348799884947172608171782177349796254070672820394966734064750483947216972835144523599865733243929474036087942598840837609963327918833552093477332515323575422414061391226819799845393987193913848544395827333498346588711895287600512145417670133888523251321191674859922590096920493389698095745002869925108176236132401171506609528203995259409312299634470736137473650634796735290266566980586995543980400894863932898946535026035107706401995106491347765444172872256648595554065558882938047827298056788227886985551908031063803045042310769826393428211218432734027642217333678649481531380089964051473968020635654472006489610980574148403301512930540254184466066793475678774782820682175559450084480774223059619691230302296401097196654813427537239303815348748815004983913216900805636200619893859643013077004459466244342628185833999880255096738634748570086641458220725800970647184009813717467930671731274410358013809547412566788635779885533059686924691534589899757798504939138462250518280602673574195811591473896296947397599988833280716804136208971320239485702921459309787424849103308445501083267630190411937920382218896268286813580373309200063386760791206285146706227169299083368597690691216464119379273150345835933835541015382591578481727812194624142548191476469634325702438736081404193910345226422601794276496795618091265936534995123569761002778401512211051443948251773162606099122730865542513950696732741918692415109526492408780442860166106393034897240330295637992390751528109644320432032902376650442652315793902939602959209698984771520425015302563717705605488796853049594440330427887190154225900367042217499978602994245058968965674088353765757533318093663038133727755870438960123119803427321888052553261927433287934589793613771813063685624179278305531622022124891729086265588912498269327524824327334995074811412186427269338835950361453367881182098765206821445306847287215283781522280741609765828510442437876949224091782116183407753570853825892187607726954378277034382854808172051115976462374100632364783779506700784243589465892784121953667711542163166046131618868544316382044201440680765605045501349007007279523234516972916147827554747598753154861557258597199717098024171476218924228229928896666558178114629877649644137236687943355122250251029689145613141517108180253461529255748582191733474523620392167375960581621232570068481324933613253472870109410482229015883632735512032425794801735865923876164109135935742234708472825290720177939189108186958483245429393177001123738714726289735172871715813976939213558043553564602467625310362606073789316244977743072145559987887660537374117094218357176130925296750306862872796009600028215788010988830284097073537451490677209684051737553910658119185353595204666862535490237288239142463315762490710603049691574266473156809918072168767227728204536212186490356445131667176883621430844595833447278438247151197323918833277443065449794371076533123125803234130813242817376614148204199515545714954056606915442455833778027168663970741498040418968185438423865759668589322168158973654046338830957724809686465515786197240532573073073275375322749236246674302869460518151267065318690900190096958428566881745025197310916524580538826352760334105807289963969774636212527630041081361708506523356262094291411035313954958538202949348913686512769484929984734455740283956479280799567525150192296913303751696118306431870501396575879586000886722393088627620528452958707082623022576332168792683831716785771146966955020638855308892953922653870367477650681749533161551377028387308682813662341832704892062864479017799043448927957861288397894850789756482839511168872358701610791236393880729875820945873971445967562940686871879862819016916348406199144878271400378128661948376948896371586418615305352516873245389860127448088698245595346193765802844890695127292100716700496259359951841082788651178881961662831193794190759318803837419342495094670142248652351858132699579622248016983575188994786574728484391736775816597690217939467441499773174057117133705643975738475087014509222749930571496230794152920037411362992076788046796527470657226744827086585859402702494009031412166106157813748667941003438638851078509600302846206073679244144633130334442337210782086635099468025591617348425594532355012211670929994836170365558981769543858457307623746918271325042549049972966821439813239827371062507906572632879164216088667809753866457596336837448108320497072611229841940229306082252464409775067473466116166853726754585183880405980880538224947637982586632451239029855146360246633567635464861407220897877716893450254435217313771657523254024563989349708699701636431530630406647102410729050732762159600948638173333347827693725250485756380176892357505273621653626365743226622238612434272391582033238825372189324496960486223237756409835099931530968182460957675078988838616384049590733296312466610954895475586761989121076707032244231684405721096719568267746747119142087461605364673658268014638240800527401976435580275030986368455440766807547625150121748875015354971948076651435099100423782381765537786391702652239232267346907215495356064272951205184248619188630195832881966035848907434127440492851236682943311089274631407316038243595809717460086848984273359998494701967579211379897429377948147126469063134823798236761687673363865607655587230868050846483681486482192877836902115170675920169380620217846468361504692575302407271839411849838628972293567863778951285854982646406388257895078537300315021557082461037392537446199096793052764716506686612184597640207492019243038326771240133715326449208478785915112128178602438967752514917300739043343832563290651192560691065065526751028787474475412389083534763204874052364430667743329177466653999946551196674827352039124317228151619320891944534380569707368523740178319510082630896385337910588633388987118935540329541727240918511100179734762740198652848575004829214822046907908366391562979858145506563456669731528012491142300535418159327898025683087432507859079057541378212583110022124009126715108809788291591506171182458374987696057553616327341345351945914099648495768566648010773399388638258201304112264160834906568679128276871132257186819393426732170989068771688937295967385924313416225693488491450225816167778623006894336436990736191373998313350531000427393362615398621282122351912194587702594773693318100393544872341603267417419748911379157595751344412423561418508826360289089013895767534074195919208421856928085814841006473003833114044806472108211656146385816172779455880658965858716363105394131158665681541622322301854495092932858081272902204305699074567285709693725975510270145159381438236111144223700560137466443408520460097439387284721294043010361821298868331615242859594347623591877615804823358220503079922359742561055221274677987454765587859416398991257393422161345207202837608633059252509455782784731132784078910898114034403302568992299397429875389589730327099098614443339688768080523280814773130426882255879986325761412923059594696960247223428412840669494573771247605776578071538563443674571641918505665164279582296618506992894817638893108018693112140135480057297521263280315658658331304236720688231196959647800254690681266153241352079503942306606860025999268539034733595675349846575622222717212778579768064767409730983862325768639317205029567270666928188187867702289018491002371002289703619197548261852138927529615847056167278786222708484287598301149219040113971614513664022730297599229871089654338210539031106885703770658005959170128562595389629763601949059844503935519699725644285879311035878250939656042486031464452257216413747813179476820107858239768141172322834362828346612134735275083891908128892696616772746106461272088071442774788162779527707660680619091027558420593217450012589597696860064987874957014708914782855758153344851875808435474631276350053099450799011538798950724465181892269100075001419360476847568896881167702039629665646418643681947511641443734895519190726331735413864603757127028089363602232004677324891520680945359940905086310446275101206579688351254845044551597964590753791727365316488007598037938204567819840675708068836049434240657541767116536219321504962344706162416097137564424589865086319613456391368567973926266511355436721988836504130268131230757182497775934320285986056150191195551600328420373327560695854609426817439291081227333439468695481880054592909224199388662571450622873965821832961645759635539686711378001067498051163867947852643923337917460051142538862091838174216247663579574072973044974308485338106594234747596542670027025665730178909648414977791318685055240736724707178423966984723086722747373584823754264142586946350393248747928993727414402734280244788620613046880780366443933008710529901910297209436479425946728053144173195801617018229618874317262909713272077833063869947866670087253912871223507591616301671827506468294198131390143773040424058801321600539137451040110503307463150539419539993851112564761798259619487413287179290317701719083235771547180492784582362008256052825838009933339834416099934889991890106358520506536280222343211953729478306147913113797330421103825191721615613786216788573366702769809189796466087838456690052926489597701001611081116473134532163346275979936128032230449342436004259674167993114881587693987918692078836398601888477090115041565632187151337780763449167537897431357460195225966929525536102306560360644143120970080992963389000978814520847473477067374728646959096219384217389398195737297053488747742840072036678216120986850114114104456718000737832735372782353827080464809478137453311767113452425557305589901585696049907155188856722464277655344193222729659398395593641693382149874911974275027982607468675012285851476972916532679577579939152285985136669205100795491659674685817440144209844174849228969664975748422972988030603017807762355043365582978334412302965878424221360640055234591480010070616519104604909151013814761552982563896592668539111580407138399602013268047244482027789347853552299085804816205540249419544380140142971007108614462679139589766442794599475318049613279541699696817907058048583511793801412137427956979236597195340115952502715453298017116844124167472356226407736372232945718594685350365688756341712870440620004743254656530921571421794638348670247679536892403611888738791735593687192703356371609075994045994210681427499489668522349010555536033637267451573486533016848360368449797757232553392887535439106473340426158373979924075426522532970974503793964125018404558631533399459347321019648386422930695824734939801091291458554545260936757417291139149032406019072357136436300276337992323070155347561131422292650197568155871617766093571825730874709681006232436331613726798707636092267125337003294844887267061870726212893130568400945971928422004742176687632409926259741129921231549720752804072334397260507057981354924569059424593972132781248269404997387143983340192958356983784553636457191112385399359412638157834585927522954192112422177582963824076151039837352996038814385305339790053461081693473289581905299314359689435545611618278189330474529294818721995914409862758629482785803343991953258196300909808792213305169967293869627939843738270676226474623849661662266216544310668350271772075927853042444003037079915661913613741253584339172937415384309987904699022428387561172942003475453127324186199920376852969928960252994903542718417783565401160382821199680307612665718638432714856250843542076294834670934289165001885367181995844347035133226653907893042108951788127217526033942479442819000209755327911584164803096583487443809208256330182967015765420807120891779334283248444311374059488849694275852715759628150662584399190264548503368207427866470879257772714226122344527763773731217739840139633737008076024695842817220800417614372555251750348617853032414821302681748988835046973987637021220060546859777261270840442767625161385625759868879595397860759687266369740573330149792665174577498736598545476771939584945841113015308824092849231482800171532397921112994320369762505417981142475274442942921001552022670944180909972318014859001412324125471599132811131166377850691062637301692653349254208680670395181795359759232428852339816235993025180839961339994518293159602928909175549001372703473851381703295410934689470566236749146252456506726096408656478018900076172169114500786421620161809213953314084924370396419158699247177599737920712321598152526490016349103416572780493484554056252552152835628717841796091383825021153030037780321475866171765119009141799010646673395676734311659323172362191492396753761843178928963639498492204850577089727766849601606171728194306903627530178395657606580620796762749791065337341420905867938495815977947654454567117682695578654025571611345062450902208638144577995936538384109944059444682358695985685398444207425668096021080889238533405182200802892792552805341408022654071436853718845669855676336587993327391492984720945119966050695736014871850857348945819621837292173112906619418006473632936513361953287000648829508901379374414687795387663888045421753797552660017705421826617620180737438111986148801834577665812174724598845558654141782279035256203610554729271924754007053505181206399259783276157206120156069687271980344679581772023667371071149399475821493797929649068518845698400898310504238003124741787913462853241708581050513429849522654338201201621266831203904818392800726006124805339126926463310322227799364957950220093218442992605413649077625553650321478692981866971122959428505834995147749796597437774679817802810151925437105677959188868047704760453112278014103477590152486801988857209211547625950603687324046801156789525573945242164144235099067019625059321279317213630554613050235931496604749179183108714378918607012961638700030581044210804819515288594009699372271998071021343427202415607777156421782618934096620782783379834974060853505969120176600924802128540966068750298210356252161145451369444598216012625909829738284274841102318591887090644156319705253739345477451322401955995318458350687806351899860618430303859969516948287417923465645116904284419657580367274479470642117774025810332747778636362341153738900782164521323442650520871517016637260715912987237361149099969387107416371077648869641095852838942364177036583660120045183066677399518882582579918580719699012817649843376817495775087018649150614418684721519488524921636236355031345300561904492373163079606970595082676046481660753513874187360395524724011374354155694636289019020605559566120973217152944400516055985465916340192950867004863030467996010398927609503476272624034129744451566041144892989562703681286066233698670336271676292661308423494028188638153338843253499748145805907975619907466102132972902745419853450943547160915133791096970452225555015650134654619965811928450909255788288535368324130630399525441507506548197700208193670686500806880120627959572573361291180547334932350595488558124831651844792200970950993874483851405354387561706575159418558668593140801421470287494426521100568711874501092928631812690055130906645819146397202317632443392674128651683391200211544713174061850542176315847776484914779884547251784786877736990232547523916967099116203878960279717234559722769097041289139053770404897104765789190094390317473491841626810338505418214937735742341097605008224331064952993939666949057823204565676516595876304054942143121542091793155132474902539875774240775048722401275031885363542489194945695682522030594510958337195210143776329857071171246777061410368144591097064392788687895790857003039533019361805408072344108365291440109184957542590029117579340263220797866682540466658335563245202305367864106883841978558716257521497986326207064053058741027050656858759904869683517133493558202947751863530466681883173123618027586768660287172651724301278791245340141794916505340993009886916469197613497523199818293384998820515776934270258051192848430592947015022790767922526597008580314503742885781629028286517946050967794640112084337081009415402051480973243253036479572745716990191846710690401186994253838569602608478409409876541374201501296770557008676025031110825486870455182212313041861210353645372617809090714174757606130144377726364360122437234965385100324543214419588469149224739077791330653677394835754489322057745779491844888775373241253532722382398742598420566640902893993194363734518594650621807936170051990247094116636706350978553988648359384728223048817834232522482035760354566694663394504231832660479143675973425359201637782105254942475144315847260250512181956784857848556208098555656369867248361559799294040072066229021122556016306327655567932624488093600151400736169187285960923393028848823349002279959333038965942908218921104921713376044998861693857256654649670006614889241279043988402017755106246015741905103185395939388167296901623266071272059001799903049067261837984698413901982694646688324738987094336589253380835265199713623565207336723287153728550756153256388596454818906637239499008006544245258939072179368943589160940618124945428109667726754139257018133786764906632681792941957651553280925274734863274617102020064687148833747689782591600734523603241915979961178147730299009522397137565445220958893290302357802394317322132648897553937710867785808135865023612470744430762785723589417775218616478329634635825485766610655246856515434007107128709197712462382895707913906356130132496485575525192860731165316650739195703018559957680513124791573565297586406685188495820847604919055606842353398424217891613085630200682465666949943104410353127058813784733199857481806454423211102536012379736054310647214145303390885184709007753427832961110541387016901064241464944868888726533026847366402403907433503235917771674741336705443371212053985447730713428913923938640409414838427311530229212957119553891816358949991067291586149229122123120406579398727940929356883853586007049764014307610948515459570856055529101603485915267782759757352005470221805795262992891155496858672073966480369209268788651798740628462125473242984863328201616536282621859602774063376775964726791001519739553311174916008877428525381229449165043581697648425503209432876356584997047367639888967460364335727686972913847144324831135154661571326148637427996618283055192631924534840242614206525247699655652346474768645712221166870993433350689932694757139547515777316121258699756619144207924395928179673511466360917500397125162876556863367802042132264808104393161499929921561957354838729310246268630754850257512555556374706070661299722788532683732950937673842811892027642669952458788560915693735386979187234515916283060506850663361001287290379033860498205430030392348017509290805043478010127986767813315680187309888130878684437015404777903789082776981587400977633248193503859842191275194810693090240430637708142533596782252398912587787622878739671801966293451530976298353236503109688596198429328800172094779120074088912318114033811252149291257927702737896007779700997628479222437225712191182822650799000885304772259097736163472444158624047059541267354293975591600621395067693631441306663636297154422660744506022736772258959617624858963789552119140796071199413304989415799468594942807311607302766603118379739808458239237003792550596799884806866561143612887492932905971126067388245838169785692966868281142534522959514505849017484035732759962190778726606224287583610904238316838633037986523373295779418607612728445592788434929526049404148849307852563377730662323014019756437472897195873769908253789881911215166382556618813020809017866655152437430834230692488875476436682190232038205218719567636735698664351541155469965697058081525381437227130117029099014862137243376615773962239210708272086770640067955402655863834696789410942872568399353712815813066079315308839297873826625824993609334757219818648652102305133789778727351116141554026030855739527491021829804828979704010151431876190591051672397786061364492116743918788719214489903437070467186364822349078790956593664781767368118733199682827466472693934284980000302087164463770628961837655313632883806292731296783411004678158260771828205423433643885668978632413694380307393995102699299735556079007577648365045564087291282451799745217567860183151934889363139732496428670912230277336856820986315018854044895221342003394439491882742068975180797307014680308859528638483851984670207254559648642600747151238890214373773093635207638252599702562263479230978551698582361288396261122824777189803495637157981956408451011193074242306919999539745393305072162795281996341620134889265818308961689505033273622462084818796107284644171696412097918025956782179993574850847472291067867222283688191932108484376357316776599562922014670588171257433736270510432160914953002741540910786684802187286105353043614115145938741485430090498701482550185173683187787362101917088825559387245260828085026518838766640359980129359225732368570520538339740967190219541799852943160435322396631521412288477288128262898742787207206683171492141825821721938747562883136364343312801687348033034656304045790329478643780638778613975947535762068514688908151658348795390575421223887798003815418020537839081863565580172525332920363465414805950542990813060396210804821185400541085454554783495476469425514587963092166485763182493815012751776562755356016135474946230153942317866947657287684785088819571969017806607978334487377842089459111479519711184053158026730902577879793960870273635295338212884437132263442667632756651727052082422551530379790384652814767343851389306562652852969025970120792458060854336895558386233784566626527747300930392082121744636233055399462111246360616046575411351353248368887453882541696451761904883820405014797910544304157871459560782393822428397422921735175292068515098276584704732192383087819400647541135856257060735264015253578420005046689033133789251137183615965873306863074799945933440108085053645274812290197392038866380479395617672512875046370316452508741025863155203572289729813458579005932241618375702610596185057948785189042821633298535250558700060276580264177070254918330249278642551912313024752135711992163930651241582442488489548742899447127377927946700547709698770333855520363309896146312682381399427995905326648963213010884200205925806408537862959293222920258113235949562794995077785736982429005776503445654139685180361078382518413225703967633767822315004739779123047320047605322582618183751907653945442879978536808923030762799019318428148907817700817936620112115069868225900715536896491113674061034581019185615346383553607543900587479252198155726578230549156658070657820156254404291985941457582490398356802161241740900038837391188379487519228430652327694084821190403552247009515888324000565683785909205713559350976752218826906210730261344411995082856773865196636747934895795949711432842738062137703357180141397134641889010139227721817998523132157087156724094184290053629266273926529682182214342605639127585123308136565575762128861611487587264204019762765625273708614952151457798869733445558306637205491558488749355346843659623957039036201336446491868525063191413169714339795110408113504845471471511490475395197162324948143429788072989253656409969096630762588788411645720567818499903739258293437021090215900173026178983435751440146901760906426101442801162926733050529701203825341437199557761788959228224458625242450942366263370623063811729821553264909259286055099053237574332508800723352206947823598171751247287582637583602346314132889432091045186111107370396483958405980248509184675957846298753370720874981985362320981835085108238516292544480791868919620433386552555390437114653918945461585593171559702528184545497180498006596089089646015044353721573446220697380505785077778133880285315715205470486000899544200185720356206702365927829281626483789307328519014233172480899565516268430490590394567417584480653755470567902966203731467432829178402313544570035027817443591533159108936149717548209846868287982946345324283907202153670807505110991778354229791373319369798201670145109290603383166280577235837706812312687244951625603434520791899555741474353621330685897419084313680746795067803877078387882300255990862872015345287816199233665268517938787820811766334863283089518045190106284825756661278486983020732060185699580504878077699503532727345733571727446403159358534737254814754792031151082513546002548602115097532967096750499916326943454283445616527731776963120166555857232520201133340319772841622191715448518263605249915043837151162305069844591632700877885991464507079786760313153657428848454225713895352731641518317409218303257172191380401698906704949015865020216801949644574257744506503982295253227301277413842253936304348876152108394643078682831473974636469218588985089943310057207515122626171248855600737998668569431137148103026544437844252018259434302057655121567142537677504923992208150117881727945752868372837216802676235699116113177173403452210897768800207378876873760990475618688126600326435904719903702615373993547819338755665376418820485698703401434368415715812472219110664462364835483567590185852708566377126528342806316944177701734737120845104838933159440087029366312927323644643550289974288414193630569799041290419582009520291989627867091687630773807560199750397038790468912142821351153708913429066506858869396286868310565021133850824245308830389348893428453250443724721125126318361840997714153147948622125194996583411590879763980449266953828016932900921019638630344536162780401832218708299068177474084341334551738960789318506924619676762527696591264313568595883597621254938186232241885349658269647611656292794881359270301235898120105738781553837491175435344114929754051039411077717135111814991020509827442606999899137635519296657256770536074814406343624073838949322137385080650820052091551197437391079409148578155408496454351585627403639451903324935281437806801360720263703186481242836456387270802485747145586954555959087467455438526535651879626931555197960445505813357805138857577566543180887971781558842151070728081999295426456779071349177122631786793499178645435193347280491324997178840230090546352492547019741227769085539501584092374426211445701442382009214890487380593014070047639403666369699414259165590452542721718034265811434447888659497089286306236923517534280507203527067433110665516617558378622573953460706836906609953519449747316028805716065255923153176276723680590545127271159654302898230070172216242764563904963788843635681449335656693969362614782894165198630152500097038653457056428952509771952740231987481529320607193593226712669159968846071860549536315390803347745005536584393745953964487860118266516324630269344464754569193611503703623630109302823852637178481920752663101614113822509709724240143860703886241033764473286134881669238494011343739491793675213739679752001842456643750143930941682536778244044184496463394163737337355063731861026972301661846554337847985399888289550090491813050159029463383408538545954341656806471099761413748018912505226270076235167996341183813375609274161269663673163946992961064010697218428557854841929938017369261744533591756723797657083612705862262384614236418319756299673800533182475086931673515472880048664340203975495278882871017179851950684998237888300452274868381358133443025073286417445626136139178335060065025927237493997810087897211470302496874619449782542882810430330646396199595712735795801191085351603575611958558758353474910135080243706392046939189377722444940274951531799438818344959654969365923294468465505389555621557826165430739116222545553861845452407002495280486700851855159668728376665967803182096730756139599443871241616483569317490221738008218534301299603560825117516236892967303844073542636068440270019514381219515899592702777221262846636213095105917507227228267894319629517186810675077901056070708994348211609379907507244147807519544399701326546549993014137909307078630183595647568616667591149769789027363906876063656237768770124135622928185623246658001574587150841088784659455483410084922276961768361916712623600456589030132676763076450900840259373035461865820310566619070006534252269286837829102763568850780697222857129799166162113559630495198493704730605472910919227353123094750465206298002942964157102999350161138513889127127480610657709627149862924968905401792191335501520417251419697181508535106057726613648368819137810066487991009796819303835430803828534790600857251399529478442929265921419449732133213738519679052890133280153712510486793143144591090424523086039166610065765972256588138960505241752074396186364950300249333922421160032856127795959346750624149775924178843611996254035350351408799585992335534969806178028253872546177148695887968906999588515326014193845169930784947330042145099195381287878006193049681472963388536967433522503180988251542667552635116356252252737779271040676519419234547976843830702093498544443330722984062366539066209900362977669444597750972171192101089835495722574451453838697385980294213112099401226224651265927641207259427232008429659991484671884157991976632546236224650493548363789167268525456222007603650327010429773471436003640708636988088187597419947362206786209253083569982806463406668433791907575274796375256172998157861065713539338986628302111430460461899824308851166326760600718351913220590592872094054236204967851168348700042460829262363249882863767574142167395673582488478115053027769228210579858618629115652938207869699141109316627276307183308829168844740073509967308516203935442790559259837475673433602762967732473098428467962300013640087005209218366921482161862772297373838956783351609863173691541734578890153700273723062687133318282521810156057855179782495486475448030384448028073916632372915588072697655273961901361566255635631611722776469753452204323209743448060573973981826159494650163202614602861329968810067313403974223552689525288096152898806619696535430331335263555111783292610533573144662670969509548354587230664463696205701307153669145866361911457002993779555894763104539327442959820188116171142711346639263227127466612889532419585792382079271323197571770173231400732699913250356179466855835879983394399620499481024822792932337436543032354997113964561333437989356198049351257628968584180863140836683057553982025748369851833513417930064626407597154921087513600365065537568168940152912728181406577995019651630092279263220390226265522361979605823106177112368764429739426931493509691384550943173956231965599374215268033554593327524470358862854584642252832608384214665434397286195110585784152018827168165305988028128447128961222467173369222640008384189181828306534635663765487065994306520256497608044648322051560803800679860729652039755725639661242817827103063205561939320146933260954432403126861488203502487955283076943306929305110652100880676411824485499672839684322723579934895330254393271186730201255437975495702085577587672579483968578115079907473167829860429701821652238105922415618129266517677046715053237844766804088557363948500116246712224365110274692440117226239390396197084685064367659852992522583501932072667740842844083254034928817897280322035260881331660834149935702976310296218979890824692089999404902790894515052567984711677586489729475518035201527262252740252585676975283835844651809759051659940398384863014187577282119884294574259933259568551516440030023729527919072776678522590081922116919225325960108802784966339052155151363846081170340562173732100030747518352261019660868933900618376288018437099784356986395775539294711049242622697606882784911631383345398051430373967735092502939617937786646515248779425321659014074937293709568318593650353861483335458827898882950421303901287917875362109582359589871542813597199297948633876364140980309397077311584448271679851569812151131157075908876769811120902312929614762844974112966239139009629677158257704325911574079773116543978162270845052963282310584966957473123797782376510513206976707767385270462994490469790191499359725697107948102473820850256092320634317481170483558759549225187308729401847666912624803327942207624884466437977212820397006147168618976548418144430032814393904251039986714328146837713115306431747817992881912840920485683282239577660311430667050817971575396346073527956826480055188977711905726000236791785737838250784622218987484882847321742077737866425936585491938064160606152351110758473026121588779964665441649108218012523503620759874449705264369234042529672203729101899800019195180779043982855107040250299607175642797836938975043899802133216669378383989923317011845459715513569657186796846777858135788378907832361105958522082824461378605536989480104567286737530032806309702292771819083559228327826137160951198706694799453757410326285455470459588051758519692089361369067760235668288759130213397261291905706125618479750026918268275755839579431704601244527731729402960456515548401406333562127981720679197336007904357480510483812225786701279848953715575630754725603258197282820184433894727104374885942021190813843276713085416383671090147264975853470479395121740584082447178161899638199998248561236428418212773567777006943059404152893860184714151953985153731775877803028602169535647448445872341461415927582360482239326659368590248305625283485349544214043245788652350414183444969596037622035117027929727147524940526581026252712273315469283305807775731034790534429964133955023130369590512744911932638296013005649086117510605950505327679102351052805107489400497201642197554350578639466960083134232995357799548630897646678898371602889251185268302689707110665298294878243246836477094128104044627094147862313204070870603287216663986523592725122856943675657503423603465831785535991849208989292620951971479489027539887660472913967830442401649619469782301185679140519191086771366230965770053101727530197926581478902103953035422239823819975432250089050257367647518818185285199588830382139990639530554744721574773219100621123727524682787558559638883824719625315614259054881703086770157406052461541931078683029531736433325831595894206686560873860080521455135812223814354786767061477957498468703224773649966461119607151915247770307555355482290103587816753874647477367010085454079239889987346328080186033721669891679600874219080321685952760687765477091649054066755184301959681143128079198862263982554187996452138022127649462278932054025588441983867737183740778239003837973480163291976101656559324398103389293133434496171987086142584171876119823407347161023419295792520113655713048375004721587540614116689275801508075571036830002054075352265455579618778598263567567819818133030371969450546078198383714428681782123504112739501066162235788594909364677280534154613965074246657093392291334335975055714135509145726956156050159959682791247790759712399748438992901605165064575528361125705224486640899113407354810065005732789606316320654714967697983790470421827543864922002352313264465743962963625712272456489104193887379290094310298356707140957146316528577876377415088037637409314802829111007364049134576312540742068370914712027497380814090100202873667437871865425599319854219346271720399627733739303466014663412653436526963407942123165366194338193399151632516725423710824711896423420083493213106402155078930123584088877461818961286024587900209907451151225138413659585717977893321491466854887073811203656181111840043351463372560380518171189107391241549377459490154888866063428678800338056183274074007846243573156914219383477887364977743545104330895638885736088631454140744652160264641672876280051744620829449254801703347195287893979832491012735760259257762615845293250550414239581692495684432907959752784823927114896412978620692096631238587743341144786689190859986531803989321121985784690545251438201520196267430339392040930107931869059756415595433769318790229155114620711503927965500444428591878401648678576172851193240969382959281422943499352546356789983434298130582303195385052796845420325550755892810857980000484775366415343138311392397856842845516265159035389544357281587061983957756689239724902627961235489315135560466777119630819390337197582012709377008551317727312321792511654712670878903667722936916747475636902377959377771661837349835560208077388747156818767993034850864385190458609923884715674588719529290909454430280290458336879552171706871131472589923753465302369896922261740350260908314857138068178492648261814176592636320056849336793489948775427472663350526406467384618990989774575804029162187693335533530624953211928186494692450194859670768168554266331749130865844718039302993071569632077616708442615071756161162496479246514192249161782909060644640906994096318315419239497090233438791300764611319959495785067634604927993038854415367711915863498683913578273013521690370989683212952558245270645629131564176834789748788922140724255904369291393429272240241120628937777777537680994120103290459340341042711821284502773398977847686960813998334632243524357205357667379475339426487644395217861676100170121330096787835557643714930611023906966318012152869863749585418999053271075473920570254270797861234296831009253710168694853048041180532230481970447560463237584821551422454280919107328855734473333042918425006548511379287504943329385642418566161316297862738516045739433985272719346202382234279069158450299233224926517918837296658829444640009225451063515297976520536708296469170954849945513654383730118420228910911468049415859842626855757388822150629285372427159996814544788009937989563831954454847222106451176591088040157468446440392947140338227635654316826662862587054179846172394200732152689856165535524701576758850918697564773864531215269660875539897015319681883426100022896440057101572676275424091913034395510685820835508550454526764865716621530125172153363542070257537355994350876227756203497757322089618802643985272118199938786162580590722956331003389069854880389017769019999063957645728613500844603531511775647118415046223493956887429788980050644197610265300030976138632056928827738238661195239950136727363983757520744164790113204119090813750913096471138846467965774375904250292242607010410252860746785559639157982550201195034844879842947155523245820198101783601429310950159113445310230382598944534722502953332857188929330638551059882890169113298380196312611373985764058482651750784609252839958353204984560763256352800731986104319296106543128214520763012732163238126485841835644060885683533100545901608844021897818185167059859329337241316229675914596901005756291637536538093751249578709490283112759115629435515927994769956884138003832274398838066598258094600040143234611901501459534831762257198460715795017458659669413887233493235256840275201519282342717428138964521138155053005342937921291481631649927485948374410492791798612739627342170732912786906911896633415950144785456270771076079437117816322825121375820238114049294349490598233625500304586949426110578061498714015463147617790920523546257329509251109185355563094265754774506164039846751685138586712637678443722415235756644400116826490897403996702950271605023587766049407602395425775146891392940272236646663815687873468237743360623627748117290649112797267629236356602047777181788011885629982028970041556494642405688287543182545261937503964391911430625272755808978373606678376755085580589865813250533453481100633550878059980381583240044043578875571659514537215415125176625682284439517243738932435944828893293724280710962533290259192248207548535495618028786592258850023193804645062762658002844927050390238296588082714570978191955641222387614789279952259385579494984790053796364877419679559175294728787677827910913477139681608481886965028160293181160702726134765057077886905647653730352659410989640168950340714556972848977132284616406106636693417364616462844762255338705897267988011800926781239557459061699974594871517741872706898564652968985776766885681410772643853106657989395023217235676765709485434454430578335091267526895257065779542618054127321707927613776202938010599350986473757304452307432245338815976727936956149283763588920730906970001135964793713993586146004393217880331643421878758433181192433301786584195165435875824353499243847031126732449848518793271495832585020295683687567452701245676625523318742410547321643333291766958984260208517613968673602154008656785848396846136964723792476881264385621785452787048140868032007068160014406109561469323858992356460606434017439670052687500790539347029236735061858731025629991008802049672940746279481938993767242319610042400008270785367925465732727772235285964991989707560445522913821034498714268518446230947911028103243170921917485699030157048043095014045318445766496727609403155696117817846923370382476787308885602960613452654854029138829963462782746826133866440945842052494940552078545716578953176011902719706801291163137645757033359515738692209073995470372558438397878394960128534562171679819530018561571318685911224417220788615038246820263500231053131964061011699340941630464480369882926066745153490860834845621614353108240952565829403235047112033196634825885624649934025389225348523677529142242310187314816464714932339451750296226689875673711025738324416587560638114097488711695518596867987023059537942008456114496434098738994730135370198731146460451474793672724180299296490272264908612968054098091863340028746984884451507925527966071795868186163392609870167898452169818882727349372047977900034051373103534127122504951274777345970794952054835363345011868532793842694836866538403618159828730332020748448874588947924615054612121684692873942675344204314178166457458742504804455618831359937583891504538387078730082625415783057771253030686909291898785917573166356818573245265922931729151058079541414029687571456437235687176362137399356065841454356106795915452190529172083476194776768332492997404750317458224858684322329803723205235684436347123761531215614307618126853640243399491114216047090289707066429448166079211082478042802923011818080275499870905788129341891750012594069886246834446840472118097208740856513547706632504815042288547072737304025566765489693450795249191567682122338381751438340184650404768570272457621569028934033438565621952471672064211390858598962273417693160091727220229158526399529910507325336823252443773039567085531720366593923519564525046980598677927927146941866232280409989004779306955450715809532860679168004677699292477371514630160413009514322706600256401265388281404569288160690008666636714786886318982359903448317192729711502858964975155022610416204305173455128635598892331983899982713117914188361066825707280503041751906267762593712002872626580298458952632345140497810558563409428841133828460658751790502254089703105626166969163271824378676007873033232495764807219029778716206381782477681559612379766514325317654804744696700447098298704260658154432278455278161990785276554433458120077788624064742759107891791762814690745596166188623406850118744896115461949940345194967297234261857773410816475166330837036768315768305642101104972675349419338071849612078145648828577791247959467677639406964872399479504047345604275225139894546427268376111909072246251460041867651440381099549959041303108155061970371926996344418865687555994337942407821973136387053330654006621493169875979484711903903846135592880140206150849010065736253125252209550277854370250263384591974975868095390679172651314366787580454369590951996822028887041325816744020861885326686419757378530720747693119084625952842648880298187992935704087155398450298261546103450386897061398700044141356008819208703808678397593629481789308877809924473422026094853012679360164909799698733533743878410651944370897044032683469745492377365456484082632305952337949885816434754499499718667554799043160009546085303303483023325595252795500043251548867424422738688720928842926233712405004373950250782042471806222011096150609951297194273748624482193060209250724682840653969949303807836951621664658404626640342471186826733813873274322926142426226144506943828514160515606032183284850812619285104833063366170158263406557204148170867014316676945314751777277394612690696756197450274598118740206355952596222972093169358633734138044851731401145056118050099450009888749312322219993741490199059576740042917628394976340934548101470779475221047342551285928837608549347303850146856012600554684178682782572542630241750293416637008570313579740868582439092838596835907450589164786043449422941668998767038218641008385810803525232701710675260194580540127261354953227338488880978228552811106870527608199079918841271618157846914877670367399163914537722315777888858389415361496601488872142029747913720912807990623119390913178622047444467484464471865437350125974030890569702744528428635529904655316297778085367552020730139204360343742617502498413826018628074232936532016664727544525650956892448454007727549646345729920299984843666617650484570010106386535987666878511062555010693048241815630033823573808898072657774060182482245288737970138134203073399580013362066601388567985925029381575087432064264549557037323878566287508340623304445975052273683622341321949826055162609185238999344687427724040526233632770722811736365495307829097531854653504390222975389681349015579201755536782513836198618458624596242000424806379149470606293905584902844150056251770133998160848057598972133906951031746790673553720322336721227743071687880754434257244141632247002574100062700035927714605044617432985712373218997248478717196804707177075741140236669618528822870880961827621470645198687914319927727673030834660283936033559219757606888888663339760526950256295289544064596561296304309314033554254167598043698963144935041773572323212319648137897674442199650565637814637937875853563580374536063445482382861804088399654999485219224857790827791937617893644416718132114119367859729788053526294490100590299036592453955180578445436176593968290506954205687894824346035508555104658861243053378929556980751229908584615026794708651906369273588432860037126379768281877199511320014309619853503291259086785426170000093162618136622317538516968179175997019222473248761543629019933568003101282794917482858239587017114536063240925272537693477566958210566085877455548710727158830953714375285600620247926490062610646518066332822121525937728704183171376486865508460689508939662469318328124968122323570128236795489223015622646932490412722053531313739420262087080267162682980502878012338243774880275110730601216112775787247662353640557157107534151897971584866181626589626243787409898665326999379116402802178860192117105196315210105869253480162683476927506858421533107554362575518639881085379380995220153525447546167347098167472171799068839668195448629121259985946413788204242455767800238974560326969023900387215079857474718691805521489358803967959554577095373080166863920074463290939809028718663493169898872455235659154740340620979692802603087282594687971418447910207360127989493393679459231713426212542512155692633724359972486439918392668967855892343981337360963571857065043109139491989610920645807777446610357847407589400777804946178140971359931749603585821377473269099577332287066627621222090419993983078064767133414428904949772831416094912917404078742038631446037837327891515606996219291374306923034821693479865158562404022203946275737105879197993644157049613231705205604894891540489986778590715372969722349152167116985293796896755322825461430889721783888220445737895502393625091532796382622366042636449011172457128354933291383977193854835586745180395364702040141968592093502951573194280976789076435525844445980933854356759336028394587035316134720880295495264863665636159156442798768473233905977894041507235031996101114262230720393005207445143547463343099639794028094775422707883954147411455462335744836937666027545645611607399696208996089352033139064532833518626898122604812322880911764421615087442632018937018607337913791719952615925890418087280684420960593902754333073418174962680090463398014394438335385902631624380576960251495798517889110826782248156004323832857132746065861184878282712737177215826368345329553041467404078309363458244660247626371196265373099460746765087696321161123901880092857627935110843254819217760495301959825195205005873793614961162817266256142314766819601246059164782973880237180314609803184546994196692847363760235618439214219213670733269102703915279426462500455572662213612522497480429187505196882387398767347617878396825424538613315383491599769605568844609150102264834388769689699535504319537025140492690070370197073821176143404698912707847557474320100756940136106895478940589403717139214128539187914015396856156718021893201146106875116936439676959422850936778885323626224128450892075991239237847834110091398484867278189865886635844630420351826813914946634362777041726693285053943013419323300928892699768838251107309961791739663960964237770930238819239980258443946849347085556122770956764217286256591009995732128481573955313755952202834975775966093315233027768558982052057654991548271223417898121547852493574260555612334710632978472113781287072976084013559386216603696623929349985751599860295896772638449024282207430396001880743714010366501219401887561953844669631817810319317903205698705928090185997573691735271893172973074909393418419021977121679460190440954350187047020479382814433215183036212814915863905335687309455799590640384183948815843318526029777620038837741354048876831274081605248205465103758234008594678043580717857423768006769155398964414056342492116300391468311338566664752421029464552564492828628148519061381583643242032467914148843965727689628243458453464566498487425527957034405592686145932073525355956957348541573918397946259338387928421188237382113552428122870669974185313682903720754233502231907428395690289274654798688422192087370705201035509007526642521505294718078996697100495553531276736262185347038375165772066704350546990534126927400766966364401005973229435741869764267958716479416906163679882977712021051445356817410156937514156825895537822683014194463045797419622929922440364074781790341136913527909973169155623794537665496800751704555295147943873060690860320881930051634011574236751377468259333719954307753015635941503184816495341969465730943466048600377227616385796050404691918941903243361172598872575281254972482262259552384491196596704343007882804917102183187765220570270439957438953889298268842058448567610606415785318733640631564944311166414181420235625404317086585519143522910533772883402858424248110793096067645138612650942359522869841058563378799190589175065910587142637677582576169156109576858845029299553305962828107906183864991034085624756685704749209956781257166063672552328654115658590565097657430081425540236083432032479903827439081835253809886776273512222812300490267597652945628658080239375212873950335887943564379396240638921954985460220937293456524974462316325307396977529503085886866445401543143532071312039980474750074990553892476582525718728070114938620745711132409789387466015425227561688025722947018211443054850811957080789576330728615546988694230458962652908940447267852481079942901882326136912562508866536066486618795451662620457894706167646383132973281727719840095585987664469702783821305206946664700683548471717968217710202652183850384360156553348519472484646724740847871909338016972665976040107354692616113485797168553866975502091820362477351728429983072795019798413533242727903196581820569732392921218486409642276099226163278066358443781517970625685899496449220215373874469225556381798541175140697965496385070188099641941683614850715603027722574548771662929392423204338390778052434368347935797635931931503908051313834981520156710629679406258843994468736833364227852464944347837772170809540007970169768178688060749472679306875604553706595716800946554692040805058172191973357740561042961847899001567455926687096287618772594259079268688284768393748408839319334652908569614550803412128767455002697212327701176718007056038213998452051995383186538364105440825723299820616741875770873607172904483743708281128849082344328923973645816077956706335728406716109328843409201585475502664450951471360829859697226423225590352721434101931478500153204947852514237044677863967445570235717920515508710229741339941186232071291646978592858201354630893699594508029642958018635643213023800387138025155719201135325856701928311169321317178551583281797348487933320812214860453655093872330151023400088503783806925126183139823404586818692598458805476254728343346726569198255481216444149763780686383257902173632723224005473155412345093316135621462983261625949625358372580481749226084367142319118310467305664718912238477199715114084616905834192611715374512117660036679045886150072286601777808627805636652710879120460057724721091391448640913827540003014006321819421157502943958607582214156337177734144573665375666269803075603219828159690090741347462718361532322361579338798433304272439011154686120917357448907864984295935601764137828194411559562601562219027468561635594125811041957616625031479634356261081027925885468026939628753811400036215504211980081886717350019261169072804148289243706545259284164981670998054640919768821899499685078696000910956136087611579217445655924271226715164716564920765515353271861380394313827141141489921912205499038408342129906234262562528075787848718333899193490881688437563808644913204420770919257159132056042859756476996010259240263012374210486140520258357003272201490235186649076082136890675067874489971056478299839859256283268179478298948993355572232663150882555326172940156786365508859456594067555847290758527617380562626542781448634611548790928403552945306929873122618168982519250206807701345102004723804680621790643590168040908783808646858413657288137217429659638394064406235401160107973610885677034957592947124139329513925793205187078281028857896474203621927869854700461167199947161074602571607961924009776865029162814007022544234635951340742729091487339563350762491024177708194536761122892553979888920120299739861714395706872044443755382583838382068002311442315603703747324000813725438715387337788525120849791843647923806683575366388629413035154079794567939555964030690018625659118892933029439376763546871205692044750132194907966320044643781369785225986425098272879658768029438188267568346642652309728598686218905859666640774025351525063785442066473004892283812505368355899666874456783560731643069476154944508368728187523179372860202306134380626234096276384185263922673335717380797270042967444203954757876462868733857896682877303328781419823778918397602399680681006334206924674955064709757812925917900016731978197998800439696464895377318794899762814912930410268785527035847766630921008512987829690569636049618915369618133383865247471310568794447275106851344122328462538268979777965290300681545954072865884109926166112016614128447155271461721570665130807255248366019965803066645318386404370780548897091054151636256314222500687723872505018248302137513751604873697859648276556966532373848853719050692503133249721027347528767738692121018814291064183467238889168436808343884297318154807300187582073591339431438339695640074654865398507990641191764207039335550407219353667128469025908999936222667064413437184166519486042657290389714470429286384886680337923529419872479604482928042487113307318738914132691449069204086325550963149645380897555762103621699742133599552115976777119765376312222395327738005407240876043537980552382577426112011971566061796119464687385073878663490624793041237513018043461025228140887647323519582737613315152272604031026777048313082870338273376544610319498659238422166013316319344859697149186904859040361387383293114852269834472320978091847475366828816459498701148496348904537726750578283194455085244875980908888027580111714062263490869262717866706159300710426095835844372273673361997266203708682086751580645695971695270985260499404630438255745060285367343821095419189962827602346248329900270023976400884748643739886604630505271994597537651552169398397886689192439606784991936999956869253950697464531012171594018321294943653245511649228587437682137130930800620861612389548911849268566686885389148417872953956369246856249304499264766425840760925720196229484186220852518243417093054981431178411104919911379797946947565482579270406693891549530479859731522884661329469778382351425670177107926333417797758007350493396857536634852443730162918880245159692841965850710193921815636334331750068157162738574635346581376489718641924248922981216669699339118759816610757595621157717208185981805999842788789982849958565219880053343466744745371741347596288161091460320749241396447468599317320862043503707624174818183756318915466395070163873329118629764606614973267377308081139399774357483203644282508816103715984755889584514445844671006010279272949881887876560356537289649411620270579850236620774841441247146714073395226920121507822419739585118240291024742793274087201241389186895902094147309868852479100105259663374011948436430326321438258282018771466067245443605290420929921194330924721901495258988295747379975970238795987954522014593771091238129764043663987630676105085256299901662749243433046641575054374073524587465566815809935039176414839771599405641161217170118689977882486513198545751230935871193878688064186402598781076692246127262254301917171607798919235615061287125346977762622234383244481968872205585259446889791045862802045653144320302476761686230159204579866201240587912827192498379759020314932238778646562110224717311195279030239792181322041974658612962776958639277696690780335500838201365895679985196278998750273406661387282289163583024337643983172194631062762562937642576918661115884905519131393268553476013322687019048643343018087478143295288134009728426197042957721276856310725744824521701774632152275244801558421148476907899374506026305202213783020724847112744998438949179087330541880142074581972245721984403801351632510481405241198098657510736101768840403013000598701490161088179901465669654458656406614798413737443188267004931168704035743633746464928320057870978089983667697931056605305027876830440634954393222342822852887507074337778768138761159434266363983147898771230598784490671815014713972658248925791107434491074708422684388398275340949638944701573891756895660689481920226489720039636624432970285861263965206402198712039793349436317012255439650434718973119131141879609250839577919044217139831213817032369321726400249534598675168833623696553280154132958214364524202756567059073623517477052903029913530858061607287434918931739048590339973987616688712730895663741680329378894359213504490099739563814963730644911140229197624501261837134196918478847600692549488697313747102285239844921686786610952448181059342571802463639298247846193685768299859087861187344746695477900572254318746197728428780523930489048842244239225656665162539332949892475683501481909285856152173468270418560163217707299767831807595999972711348040213384193360953311484256171961529787142390132620419153103301402490195572331209953293112445756404372745482292339797092430853369275408696975407951378136076439381072102210169972112523730458784044136227968079095304221165926242981826562976566687701717653685685973912347609422114398044758634063221626382250537381385093701413230351925462044292919590279098322903103919960723400471672513813052587071425461108538115006167916818545743591404811596786813595782339326129895706454330177465129202403746907978901381882590190963980060494348203349071678916917760260929724433696361227467543330996886750074206975141086775545804066306935154810830859802932843073468431108479655643299983358172265480305455929401094017330568102421887471057570263976923821902504301933410408314601436865735320808787867208204374452526778811575585418977474329896869328933185561285010816881466603438237046031177880575404029049266755823776652193012434007665706900921280912805219835349247285452913210830974816470022391222898507704613246331001298766937989001827242821228177765797579777120520120307345959591955048546666380966923344145672409811340419953020731142187516704654024059623923526507266180713484114574651991954925043061236175120787637526563849542798022204957081770954542214337429216967475893971714091564406050438221699360999648442382999163702217408420107226140691141963658766688283368660933214364419688275716322178298142526214956073494233121481573072064069116277706843795801193690405105335429756567530902843504140153505449940543393376816802841439152355061870946358988876208676307236880875162366973209340986450944299729506240906179975723859125737738667079947251550567397788770114288176921545414836233753918144452401732772893161300760910516310404085441255878610974023990871044439313281879793974683566466069486029693113872686612575919777930569245751045139838273277665969787079347388496303465548279772290163375431172535185192823867273727976834628385355104156050241091885472205249368401000922396858992745205106460578820115827634685243530789805754202741438524344738795106239739147734756293779435057259054001119227860224542463619222903659078471796980220970518431798164157351401902004250319546581759730792387518482742264276362890315780609530066804621247987079759273264279379916252911996266005362706526507708386655041012899636888495277159942969121537243940232781019835905681689595000361382939572693708292804978429772315144461082183760669144834141086639008165598939804789758372113871661125185205348267298984484692567664694673464021015750306309214422442422769449923194105622939573599147946975454867032572248786968487383410367136580414782660416782949801747325946506013742160984015345942686639134260986748112881157752225249753856842194332348648672978251534206104552541121324963146441601046235667472750169358087256814595982271755176167217678176997550712266971248517098435469538872362151128437715121119758129150255802239282180973972439673144397662434266499955774395994695600764341443787070058574628261319064953748542068248624516912657502830512370961027849738501562047639008840832941223848756711846487026177097155271647734044545979643945299895948415524720207997484083921707282387647096066626842866435691724775257430935474514376420267056192667746451365777220177782604520478547862220771046483264654706843996935096452109087094388817776869498691098522797953672678009539428670959400207213191276456429860703662255629735715982452616116851773028546780964447519474995455040246623440062502767873489818046267155614706985642832169765057605442029458209184248547730205874560000620861848331865589898830508625944137418934847086865511894094212107715148722413899562671848112664220711478967969651782044085179527649219856810179593116680453715405230271519103294335924179055833116609574090791246693995447752861569615448768537329256151309813651645671449542287719531156078227730292300362185173180937597370666577230991317223337131483195792605470805777820321458484184771324496933508616621147289982048257861314306356596674727005593630837348020072858230493567988281573062210869780022316081133139615209839102240211771277301535223006080632407806783968554150296372309705482738014324312832341584206325834459228155201452530318452732821054241184313065689389803407942308441254309483954653914299670957569413174498710787785576820394364158429331639517799748946880837307095663094784511097027431157948038943985564128997574408354069005961699822171419849570458740552729785418718125112483032137200754796142183154768991997411805160330734808483242073640507598465213751689078306687163047802559489904087561704498384768401625878987092593792866456260270057015179944297394784995182016718399146041811038524488234745067463319656806565857682358531071968290973462852415229508847437941059490209927703612395641380106364238622067317536177545891909812241084072578409500548475067138785889798037817296705613154242822900031530975773228542543203854517772796711897351231861045119046840330338610346987831283253531820386456343173394813787918190479470642731126889943527166393213196415853847172354855271096036440122679286328414513095750543509164351923533865912410127458591380235575278223621673509638727701172593621159994971472605031401299010124132416834893920040994656779228002522952998252621621492900110432653072559830631933586339521306122260234393995765787752530843300255640116540860971835745846680684918441304759077414036421344818727086362560763215125678974925763287587525946876734397011222043661748933445836925534017754476043034823846825971414156419901298959714892989335918346095768643216321632903101278168037621402025091880400975434969547334388408310188874273120557080390024884803736069466290907475430211556271377353193998897893085868655596273201314710645380067553099773606334832431531412429368944887926565083681409664212706249433186061364375995179441049740084123626282758094682216030137573266877926955563573022715252381689218269990661312703499639812293947691999123275505031026806063600592045491148866227054654877947375974652137047411937023462518905306250406462953461268815809546709874716813919330958852374980957599039291321201658406699544247273405509374951337215773696039523548834412174226490000409606191064950137268995347936323532086718714968683420610319275019432129907841557505935307451931637561204681039895845291136575268920896692837963477828251502109473574677240222773430204614727665291556242343897959936018324530388974912281522153222146390465082000161033583849164733496641647505036644890123999800400041547736181686761466250605727903953137783126931077158559011462259355518174957836825920450125260644752153301208095473412315796628005369676378697325496549606026701755167105895663022395038243388828692292092669548113899812450625738725311056438089324334640952910496173020276467358659610847031551989594874030706042100199881646041350285751320006599675660411731909929005799816360004540128387911734476300444255556153747157322209408403821259196553340470194500252390729856515477168225151228472225569905870968507819571415028859996554871565498062443628822600509519074187007980605898216080987131673042934011529992481676966196334132288854761594762022824700727587480382350971393433781033316400834179429372512134648016483389416140087247972843294374991330502509524235726824571770428968414478617272833072197979695415936347805832141785505176018590420553888754172088942530977471462253118083312299469348639680380994888484292262521525087549976165278530542123890391406574249878714478336078673692602709978622234041632746496665130395962750230066591604668770125784171956695971083008691954784408412961627365157273155707091660420895418339205608424030992864068631738090156973905314393632292280862021305992819624395526765175453522788014272592010927337346760163689782940553533868306669484744663020701398244449165247294847415428307421038525907705429178497906115950289090687609845661405830489337051151017892029934526459014508669069384062760978739415026280416355392160015984956976173887958564906911122278567607902426203985334936862985979133678343041973796886331541212413017067631144257787862719803422480421478920755277447482461984539404759507100684583443113754733844946699052750395064860404301805056000228110165113102552876885385559816933730249593509237632013264706769007001066468087401362578565669296402483507713918501947865350430416713892991730998112929804152664250662625221057191149236924361004800216496927286714458692531130820207461536337011030207555765952009931366525937215170129607596293744518489015275114739948990777296117519813860435823748469715947689643233184672201674811508880676392023479876231191907527295754570196107740460992119233939439124930080214354442785826382696280826236126521459895518344790244540927615239405281607396229627096961118214741933866837462656711231031402085161598348624502539459181015920558571276758522125941784856282890138366438218906787389503277747870428800798345954356279301831676327869930474841244535802074865904462533428574687013341207546482120771708518393749298786502137510598859405809809275817179478912855323354762180856857055830659265248713989819854399193242800779617329177773209718261866177132383955862665308331500989963607495858469422421923497474857479418352588043501900674653041613885408322576274815441858283760240616917021319992264815766251531233300320448875867874580748949103845703088116198262369450909640000574190830026666291661216794121765463567426723703239862182374417824029640414643844001103214764472306839329733238062766944395612764561775927284308296444259844649951543943191754737204241063428416711737975187390654890613055038183531547186671220079280875101823186714085052676684732583058459475052695602742030334746415245351116662099774026812257409123327516735557355886513644862715282803575133382892807668523156467914662945742680757390793418287118308643758808621473443923413279983085942349782709121757878574750804796364831007930759170886006466885927727644413341521560834549094694287982918660269770791559704909457224835108613127884518471387176378628611186830689800720635960152130614337469609181374280732449388760361942971437034654155058591785629986021208345501054211422530378480223589666965446038361067484826301045607883559472163042464346736879948839221897649102921180574825507884580683209306272808892623998982077490810851328245085452453456693489111098492934403404905519038787077796119282399015295918937654439424409661512724909194446857843302595215366177738496263656733123982461013865632806239719909694730389023024082717721668599024480458604391595109145014038265876190562775798197659672389972788792300813032416131980323916985485638680258886238909108257522392130989370945528848462242061050225049336841025121780811514919197441257319121723135041218025470289772143698919671913201578498396005348520754825963487145762965528306739231985101659613643761756036074365601220641509417893205094755958390395941386570844903349687686368940730955067806794334288605506412230721316555256476924202214263786545983895371381422107591181407565431157227968211413504442449853142532816212426174139603605098268276680373776964857341378211193020660001390346066576033862550438625796680056973094562298453554438969701701152213139919430053640350121675302286704213831628281553909790291357632211209923019581863795948265792918300090736377521738101369493409361765175043846629120700033935364604089954272493549620382642353533186159321954388606495171909411273273791041971374331162489752725978443371951240270838250962226359323936288709717833125325212699755613975852661545046434054640572004880541226489915883065939944733099945322303679998984544171202109641797821365460271291582708797131769713628338082024109453120212531465476522517438848508467459618114548882403438053467101293226365514833597394674023689593792916914902892134484546540934960248639134371129938757764839917382106761682472026593713955405950040625061080975568690892819565859685872679571799919571688571842254882791842633770013637038834324887154649092588332057218769498675493561588297637694329305662290243562526021970654863621804977049816667166063114333380218341535019519283229665909029006535845198755281980126950068131240175182526861249128124319819097061136402826931598093365794348915416697646290167615058548132773986978634812881801391573079413713531859878050815631810488819871660621157904329191716086804128080668086387757177072227349944195954838053818419193972865450908184947081641064871257452573315710512990117494761500956953777144752393470989471234509086023024491497398039709149634636501780286658060968319276688548768085894251629493059458206437227360835427783550781167969218440703387119469412963890854798946067827713733260044076401215557915440399225325469581775085543543470997035142061890058375583738105141469583542682845014876350683459249507369954021439236501047729760363442782814731536035669394307091966887953179641376058575084745037633219480770895422392291102414407606170911650371798895561264232814648362595955467365441253069763590775999752727502105276104573945336922006678933863500369984250999368875447837800803968824656598608913518833101115205059933921534959239444138387406080760841891591401185278713549430916074914824180719679785188323313516491374656642319386917465940852176322128628098742226491666449718536133637602746622746196225749753615729862477696847085350746181284719905749658860410353422293929863217786135673486162385393114397550265656511329712530072722551773412981798796249295463871269520644496993790488504856986572610743718614743762076748348895811028676288732716605043938239460200300100191492888950935793574324027785734409606022143970353935013245821905371396806224260625529059656428949071350313424041591920480970428988755846956426676806436423026324695156976463241555648856259213739307660122614334668494185668655196528601557913139301986448964354701944953067251496699724541177383688142160853009362402331913702151189251436182355517103260591105994122510196629003583898035234229416660435222665067198237521252778900065284969738552794070674451869401291181975699558023182639136276897149503034063221889554721993611366523707507276194651024918455941338846745034732884376981145763394117303990467529729471663015792387608094754805730229783741159041289869542682846271966785117218719333115859669581143547204752888643734483944862958003398734279313915294870708182049201583925725733148503627589907349694600863358648044362358113421817803676357502570564677980345910231604891795628591426922759783901429509801550458200345925769422757870671880261916188225132850298781312275634931085635716581954349801323058057970432677418077209393546279058773623665511158229161492569571286105285419181227182551773259931107594502684553939786841396737040330273301130574765669782259911502143650379533809072396372330884161521462988842594990414961099655396983651145833234950498876510368677899281615115669327326265131112764153836157624442992784778988782921577159149224804469109209079745324330092891475671544383720672343770644800644760223246810695306026447664579001060527929358615651650640013992317190991327716060888029315130958761280255649829868503841361661365146346376754325924325452601154761429965746321466093531850712606922277362171650450876495110174508450119514205488178857984513304516061059140222931053974077114798012947142030056271831560733197211402584330349464576098320648702829160169446465266671779584449840672640959736917664524853036408009680729517139770112279978426964163363812240241157531677272712103823549123592832074616778748434354770733269776173486768412514630855838466922038571263664556170216876850296464511265367828926740918775737479741829964075418914892416739910661893700434670280347202453976616428499729020800953917347783124788130792801535664489600289091816057597531084038313950341777544002557952995685236121366035885356884281296399662226433028823537484235051415887645916680920569754330568611571123280452024202414476940618171006596269718700620633856273405829898569034829430303946139780108314198390598341802405411834490616378284239861146443931667722994289265094227843809756176856737689055125448309369393906938296469544560391708005461725189804947139506755951047885164484228787277750077681673198234058706676016624871091542080825949669248201541100336528053504948542441093484980079725969327579227147386663275457054403437055118945355355858251915184368263167318304518209785848609839620931063364659878272231806380580748829559286027736230028931077517171092804825503305604677772379363179122579315725824675301932853994574991254333501080474305020418955597856005986800581825565679667940754805958143199676251360014415837068976310510523177316392122748031779389356158340431966805414316951694182003798043350275559609277387939837348371803638831689150209377723087189026547673878281465441220505210058809106394071673584640310323998228271733676911641653880997141401171986656243890668169417718585940210751764828581754617111232226475840190935635088500190547480509601821193585429404063228887163077155928761712128430745053387346247186214249220417362519647376546702083045831745301458896183398106280680891976939441000372039528324125044036138099165868818761112278775360776405206680198556892453006840304542522585067831082766640709961802254091107147242581969998077587624906849194306379301219989658516904112042302352167120929467195527729522619670414031040943922448288492185020185326115674391443950598604958566412322671307440627101566106000534194813620361270125168893693237160848796928749759681429407925483945016845988755715711956506853300530822100357890830820110405000049554883653526149484226686774036780143413312514353482857389954390997159959790429000990983502132091726555850394760133640972421717131898401514472928601582288884269435198420500056759440593591323858018998092759369797115778635760852964472925397738750690437161936730343377182033364607886890778013411865921881238016866356751885035425116226071758727978684325959867356790777628951470285383818936963447818914698055563001416927961959792454527420801000168123946670656426641506644143972725399873818288919580823438591340535268558302544372160134132101331258019743748429563338543454125804343128752460280403585102560853210779077357838188897121569115357187043613367348239249190712079050448391680537563673714695285525752924472029482093421149959228256388586983728788338376270580960093584571148523913926577282463102534345791425975542605186902031536163725326997472471469073918720824103046964637187504373799324018377771499056275719136040881564371447925096018060547236518957657367688833265942634510387006120521075465950837375294785351474650087592667697900485745790489714552933946568683072611965271314477625613891821793357488226895549029029901229592968409431961536631611967650853254206230489849036216299526755208183629915289681884885251305986141127626129544141813946032412360169454552753292302293620723067614004954681564470854668086375753301857494863908245533845862193407728774458321755847615558685837788061713813502436921867130977432427652863562404958388703476926591016155519250957966727242964110065482117006788592804667284048737974739211152382173858099434753582359401473400142040971325655022218054661741827778697414418789896443793511610605724219583445611293960923011476160518413731349499231805688385752038372485565799048854666104094018334314489595618749842588184650533415171502994551256630796953646486855437314284543186892492565646856856633169751121745486034623223633131010267424203020886557993459118769074911428640970203107796640857854584868177594366313781293511769433237887798935220626141817393030046500428327906494567601037145583297841698736712726655207465518929111512363558994341960567637453147179850541678206307736593829016483154241027058732769821791837059377070190289096000783988631478310119180168372609733935125581612660923726022478898333156987246434405705257274210500046428793016172907829813086152098701260013522607539621729682739450395900427149414963852417837119802653885716539906296821270285035469185323399613441343886181485644521707283809125330953067904893141534791432506297324678618710750222111533114022244385507295841855222727575379321189821745743273310299331834942068064621110398373530777034244808028163517580978324415574650406760617158311956880700373691932528146632225770906213050071052501652484625537839999262250886134803993116164109317404737234559979213379470399608092322457141053993783315888312909328379162925992147204136891298020892007886135285398523856852064318185486807080108408715058186549552969060713790676032856335726693339181025434795747514383025351952941275156650865777545777227392940452644913697768530491566018499970252726500936490701403759379131966668648113905839578171275897653674950313462217792464310088574675745600593590795516591707126624997680725089462511723927583502504556603350288295966562478245372178810776043099815109577521879790971187566488453647116211049533349795498461342038884908571126254709865808503177873089593982227433210715368538600371303668704766475960150654195802228803733800488798077027846180535212053034111975413405775286104163242557054981363275699158361205234156266869769477304845357503102763832854757554039282419690739484522811890431093133871400640664511981883887279813395871617212908900060715651873258901026308801276117622715205942853266654223008156467923087487799174348180887718718809711967283480169712102357023014294167429702374048957663170622736207996437854661551050077079964220636435392959167563828628982720741756333085127015152676101511133246896266589284682137056256127302487034705595751106846457327320522105619045762545109690000837976699328005440707517189075229096489283509340330660367344601800135463773486271711738869108755899761430386609622974953909671088777486319438880838256348817443656054419003879104844183808486168061427901758785419208601565989790283627401281444091099998889703569389664817805325486770319311411743067153092669528669133122459591814489283819613108146226184032512071126357609247574008809851522688332599070382491178845715855213406931480855168560221345800093604093272297539114671592152920996762268010647361231009558320482770892130677147057192414948537146109706179362648408666958147249518044060583056392030408415437159788323371807899363325870998785620297002267331626603821352128752119432306722783375918263622984682040633190282054993379194561200906968689399803169873255696006829847046947889729467910053980300566307635258074487689449864524543309465476973605602247583495366082164156522141876942468950015111250027670560915499934876556084175249759142059439007381076731968527057263599048881161792059145291941544758632097369995966147857659679702367888673337192259934020525786105955292600282579500528885989648912961309245656172808525595636605197997436258194351224022052403820984987989297927498501181108717399269102890921194948008280362517217619785658188720084090007546676745261000747974334623823454511905035483251767905966419608767379961718277311316515706831729658191210146699815836916278222243421517674593233892863730979325150560524138867963888834540751034241911940626213887269704119328303882029112111372767720611321023141233255385199570037805686896225727787948711321071766942941378309337859967450560062957469580698091078975601945074438162700057651339068426446677441123454959244848766393580182837925152188081030342397600158970436404468298601737340090809354622577298670549622613299278168047088048448432804195817879577649733925105327288013932894862734900937223767423455796372012526528446233183958410700498452408838176208533885188667205858454915112626998147939209820687556447873211029833555071512285570983007877437523353780044009246387742998406652919769317580330458351902371182839302294156963142278633011593760495026807857031355284294491595587136701638884889027544767436159122227659635947427152532688140960092212450275398238608537407811968509248256737973841145053593018086467284029787832164149028772557567651693909682546571023647755167064607600199101403899580222540031865918320056707555120268245199975729486924149815873385023201656826437214938821916126833898628334183449776958388871483999936928007067780534938298968556570725605332077446998060727892747430158715873975593728257697755662475597210455065773283794223113474520584738599411414723481704627926553255460324200388845105535774003756024546491096911550204631891888800685414361000854840544863867878817704979358712341641845890968451247610188938815779568341370155492842330277327407942467622536184283363983108948185891703779841809282161863217489526755862287276737748714941031626943382196352175281991531955439787762531529734458873285468199208769686004140293803099789060688726778478678290318226911518381327404625762855897427846975370848663047745386638489327004950488310802239550393958784999963443720637747879305495672871125499163240172746001582530022829156381570951167599316039281747662973942264805359832666105510408051242329801545758410820279655739244781010118781041129484957184968080377253255556015999736314218430642412076235446374889626178328821494105750534966747561418518202973031405519417905558300375305882512605276100858340538044493995986949505870814275696025065942839234497200839434888622981934051859197258828462926309143381877231419841003780648148587494871140582933582673109910370338853677611115362643618107496564462329517007832133280928388697674991277254284245328271235792580059936496884359309797821941685149401576894169858481203417524709357891124174069862390279013690089591159586133726437964009928973535384875687910758870535307720421616192723044208755928819699316756441647561951619712329470813668964698804328126682035585992014983216106410128234614626610359652676150997578952326138504607207482436996130162876447916076419081342697750561296655067887836012508136126258374877724707383708003211626912227878124559089331343842939183676937030844815733647614394970290824415021237695486579505379441730746147418453151550284580655795506189097835337547379862830213862358572345362792077801153386489893908497040155981466847644874372199724779870971067692334370826380929645956231997414645594245696510099786447912501830932202263893643344728285810283609709713936665923876883292813490225534139920487660132754446193102546836865778504906942502437864286667971809487973549178598750825052480328066907397097941003219278470621335820998082479023985631246783293022228490019889755506509623759406474656576900929697414931199198365550941220795275003637894138788223827569646462350126938928939908810704370532520429994657247810637100169024378989431315473520697605255814217708863278419623685762073536453658840605118236547616040613214172244145076282351475823481488851928722975622199059643868243257533876967769921020546114466692202226274728762631114236702344665694520407299291269258106638182262204505497565323568147018226358175136374395206100739869399931631932362753406871076733946057667741643093389165814302332952848655977059400011366989689374243903246899417765269426901235443978596592478466494698262035444376636162367788698030411486917219631737254072098603330350339404844406937380661389289305806807142807408097957263571380837701220367649710043546123788239348559541163468301821479377024944119666741031743228428455966978171614525673905697213997995512277194431598041184172526032283655254224979979291387978432016603561753160317281692857781335193157219709034341064746135874031505569166629812489153401436460512512480860616804768831992804687162847374236915563779487992625763923376802833911770646686309040204068101251624663804272961320054066699143207891992249160395089760242885558871838530094953700104449468689504757513428587016537787313639524174165378785248271288728322528410151234625300031200917179698186241396106330797556434526686173368556108078237404972201863522665136677226591482628184543506082296440624394790761752316755547522741805324715025737692835375688467494565305832270674664115839202769482050697820783361305509471506600086795437660785112386342084208777439809479721791387195668525125051254706252253882548165934940657285257024019951538968542730250351425587937400942786679594552031346676239744555168299294459376299699081052430387823250851266346239413272060649732376942939577735362585898931762956501201645244197920828145676818825373662377272751528218795742385245852851634465846154654332520219688925543651164682462610978197009413260765883798522117760281791054243784743080322035443336940115309358614209317147820360026715114261791885348446184135195992199430246222242871180024885375924548879541968270824276411588517364445762556145409140107390184598512604237665858647349714548783417410659800640940063344697931084096146413719049948941148812320947707938068599544768244795559680078756269968702668255628976364439595197810242538164146916715426227124950901187972405001474981870956064304644083347034134896202509419787658370107865819770307930925781101841150109334969343311664750122660096502847737977932015883090956979009658633134324451043050375244285442750622797378101873728289413550230330014209542034723870246634524725791038435438748741971323485608004400039469401368382473288019918493153048409932500504640283961539258506926424560289388570052549230300767506948056079590770099641839362097512622938410587880177275552951877944789749582381604296744128517780070490901784902973126752133219706250253779358724122056752091049788434551021643641270965610411422864462455850338454269899970209893329435745366061413121710692994309962575863903951299402347744319130744328661248704347731683834970442545959536521873481118824000609871095246967632111039036754002172168646385310264135463066953294884611362358339147725177430323011967465187541064624363613552759307615003360582768676375250861644040160848992989961405069709549130843908042887642631849204095201331057537505290589741108113552029392340797021637845293288377803431361818872590785121476543912923400236685089364512813872578091994781740679734775536653279182987693849462837425498518067674160397260446646061060358820101843895165628641501692897511257161218194085881149594010608026408486868453417419356186389728705671577299702904340335731883111831473118979512672087031530433800635878693121208571919979529958703187624521499450928784535184817157928861085137826302379331440637183812554087900122505721044001135662622488407887363764119968699037533690420447969546620286248564317275825643344454481474826038063886463627458048371001112253962150110628756768315490555145831760890384726791704906320983945920695205156868125541667817603050315792379656107260388596534703003305032286548245603513805126507405022521644760217142787418663313923336120774712066112707607313161758743623142629899239746811408273830690544696974108201387801544236708328995634646394629223243278635684955147177004088448113700569848424765089946816959109657286009003738572018198349775662097002816849130757898967891724122512125322582807090913159880610020250655810363362946458755830469940786048088663334992845270379049076466472932818866501105513883288630441358729946872703182820568424452539485933065097057786364940108440320192576173652433897767847772997964703872583667128808777938340283442517770928144948168683227366254543612190456997833139418188430796945541968786532646998134597448384200266800704214215756775106704619761347570444685907477818957322440894951508642327625608483071013488418455291075378437137358346660401097739232504771738407085335360977846067597647534389542785479461288067779540335547906661413381441808490990706273737206437727988252677653555864482517226170509366823884458345622422081873200582595339707784738589745202865680289044076101237441051109287276987010919660943848957268153159022103965787377030148529832232573765699167120546152270847967459395854944235302591381861374619172233671812231762394466478463245014960180169486887737726813551237220526843289046053466708781663471826528997644966160831875989703842040554916323144209435734505375778898006368880811270723100523349883693663171016809585560442984479972330307049401065039378017021850658275196373452196763015209986104795689187499519034739685246324773373286687737594495165368583542279313946723446154270757719819947356950587899688991115542339300917154581258440805285060864758830887471310141109938060768933901178869845281986350242580542623384683202604406604969770482812877973439759054610700091807334822979893044936160231613276635069204702277644156319524698714249318268674366469933050918597901479382467200537676175877553987491697370151027780658548415380241834366936002604764907875587717704133560030774247319236870479409997810805543535657354485065370289348365638935711486870030815970809558981175844468316682936116315881692791979406202059694669292655858293450990468454587065647374145343321984741215908622355693238192310894612659267292581619176672481363473911285879028118839997300503239173044614740636631124096977722733426408812998634157164578760627756594050012465944329551641451059403573719673886849216205422234797046602260734046860735392224173520069454983396166146951359429424539514766879003196514189809434165859140635141316147872658989716226987224283660342305856843983445566344441559272018301155117957675208425492778951627414468239226893009842455059904012982339986648107533053782256591143108160491965322212529495847754914132280813912591334810477715234923606856617323736362530845506908416541996271846422844051155509735173411605985433170478266106812526540739588550656326268420281582892608626205096509210902359828311737848890222126380346647344430444320360766617644659164886426432540234694482271733092886218697354414202642582664987641685175293519345314739360127469552112902022638138253581829881335528219986254214270799452478536508455718753634598266453090997159312411001069877775643728510008751712251650570689302857860395008838199828384900959678769104898070866702545798302934300842622132724914202224741170870842622089672143032184299827119443420150665624784021308588733180548945030977117905788177346603734521196310855479892954266457317265084987409515455993876717035089500959518885266057187312399182901308996321006849928036060161192665031349200781280913886799587213732155794634353803726007786934602005077019013957008762067665548728015728019750893975923941352104574691574555987989671108695566417291040734114606304151822492197740456944516907086843361868088658595494289716874066753477936247222891682396478986666199551990374190349368444268282899161320210857302884936212724053934971286424038660246094517355980407942980156259752418079027428560537779285638836850326997122959130501725168807654700055465699568157156576428937355543985212928749907886732983338764009459871603112422847630960488721876657478190508779597992388428937887252742600859989311141075095555188375311702537164606352922132523322836882829930776351028228267276334652372886879266205640140693978228731185950737040319798037709293853985563675629838099807287212932030343254230885290746086814715354901418562635354721291492653110059871368369899438276645101261898149334403547335830468048342464238563888244577373936705189799541969799452004840223799011188138606964322535385103405700229888728980163154065715163114967254546845261906606792706943254211899950897494467386278818160180033643155402764199282553476310259265410541736411451673292444135557096033476787833957984001703349405907321616316440570514345725658806866565673436135094289907175959070913411277058444340827490500984238752540211232753064480886895481966468835509482988977844369003888167269862349609759991508047325715713087390135587866647249827050887525541961571967230515652091363733268223479708888258936430790130338457053557657079997584817098756287797232801857825965567199059766724242926639352208794451967983657862840968178829220652883184382127336251730272192147894367410426448837934568136753053963411705490751807320494953962106528778855759825476994853693828856027592554101139279538096844419042735167847429710133508770963546443426949021468361398596979634950025014250335949640062177782937997481498773538562218477292043675072309382654663676783096867256164251530360603807460708404768408152372955028271816224490270463528811540846236205913138629514360834499305743404929711181051865811202315246552647052698684992342486418785463375718929292227158242247040159099005999645573993270898399779493795399375191691042834910470757366222524614413548064486542729955643842387086832562914595730784190561221962784117576896319771099931234254456417207026630383117580555953048312500215565521899421779281533013191208439850232761544384371519738668522990521269833393830854244212750505767084157868765576462209515099879033263993180027815249534792381910202546203208696624588251711164561225309422657189520339644284889622958295764543276696615518532928702713831432892199595406514478542341699622095751680383764754793805695738916597260090452964661053615769167276312777567649943696557501290690394747662615734366719703739251686789394350725904287176811936968758825661257770544233105716515716489650403460079348741278202201792948051746148963709486102433027980207873275658570994845952528917885041241750064084015337507886901282870151790978949057943503048930788428836254935000386104481677738661530334790217365182417304198437186137298106712759658397942208784703244356015639472322833430962920141289755933884479206596191285087165433922277867325020912886454481430192552980760513052832057087144448730202454652009855801835816248390780856382420535511342508223725783566745864093722483952201743659170787645959332229812543703489278782155089719850525318035755704456064730137089505646067226163315545027307043333421425049286834896773455302121231676822853785410355787387166856454760916141073983276729325692754048368573643003384430261076254863156264333679997778971311874824351674045807838393741906315809099908050183974218612842062369147222665751130290482060384701760009677074906290222739482866976252098844644812415330741542975131297291291935401335232778512624071467975808264989056213186651482378327213331646190415933148873887774757839713194746416515252486490509283551109238460875197218138840309060100792401762283135414929187202637194321505243004240595983361193627382272781903529100120685491425962231186458887011762308114031703422925946865264365480118135639161037537129495029373644109448445348734615620063229400156553674471740937678403858877646383984364147272166674642267690472523516396497347356136887749681731955178753309485783084801367488348324816438542453257309101908791086217535473599705486890645808217389414332759907692935789150635162765491435219905888677254912027202783279689510346370363273311953673962087368659414843356931418244427604466430165977114958372574211355131882623311116989831604933751082377204946692925358246463214878352823676727134194677022006877610484669753307792208647439883060342859880438759141504020002491156987259479734317580825100644560289762247409369431319490585249242242308296169110530036449998128264101080563286168946562048756197655711012818102131773211466246872544876912162413756977461842985884614771741266296370878709403457548253109220136799304949998861503289749865232799192203932452115967175405959844745007388295630552588926367077166572662782090128868470099660400357039524740261941579429640204777011784039839945198974971955156251639870240752262873429273656295599155357757701107063508339675206061612893797095400939115674123211809578082692648910454168402421738623859701922453572332644421890111702623742884830332576437059593996501016524499433325821733135763845326184832813786642468123925107968980980535567073778866808311447233266959545548180658356738168184380420596947037699045311594569523041834775910287690291378287306277514899935846756974346006883426521378501335140799294536952120731380265518033193717741234141959423957157612548885075833524988175090217904342824921219767014106607971494779922420679241519059635087815658511937515802065882469572608354721615759156328991528663045090950260701469225346497556822645750425270899780931561221382118352607044729035579015431453458387265973572228723947068426576811070499077587596170766101180246931051302843826664299445378873208329610368455861062272448268317503918769789191116692465395993474478084834582847684769091007122583942284388627825108084841614598212578038416194624654756926576861926321237473618145162757179509412127584237349830934047835219510049791152864149314520032069191404813429466932650199276502655213374420248373103984652569955832177477074256911258804539952998172128164800125722693568745653831837198964671272972106023438623793883574978145172256687308069584692908179732381512228333572810384070990949751347964574978316999717941725544476419132287776325154566971809261530184355044917179432906786535994357423919665891354581986721275342808805894868016784730910940035402643016322265041826073793807098168174037675074105278299317835188671535382279881837134623567651907888650546647088062731163841543740591864689565594129616147234200429156639974776837300873806796397625199967295105958639745199069498907891273384034136572369182494501349972941219522076907390108811134022015615843828628240488191654732593155765323200188494795065265068295872956430937316996521872440516655454802606552636545270328349549306876819607130099352480729157428249293495937118324085093670523492032993520748920931362087723475964609664136480518014896761152821153821969529029907231574699704609563365926122229948821387731705413254706170374076276903803210042280898161102813883861919420774253659128411564870860980812959219607082187361021569538822441568483936686940690783768512426919555740860108485445821327609281552140039090309303069826209312453545818933399826063641611953582106448520718554978556823053900457661522036652458344231942600933327045447286236630186368606939952247358850549466095829606833005621652685448205741840640484413400143961450820649310155306694179264758018467892223357160484309105054057143800132765208959570842373712562019026864154256388780931831186135873126597343230073956125209448851442530435795253894950304832777073450718546533243998996748783599383791947176888336239069141045362194152618537619135620999170129531253223372583427102898125185828979327545839312638869876558357570058814034104770241786309690792447301718256008200699905663604164540261060519946306788506848719851193150479046066348957555426178105803789066279623619578392713427679332415748577619916653409717043147272535311474003225977827480515451112901258994937410680573898977553808516830368017360038538033020039687259948992916480537209237009224210081466592891727735861624219987348570289904424382592172330410013791410396573715252723203722158630373146671179467704072553470877588744071646034270891652759579110691742444650903840415811526032422933321946760533481008241647711444579430627029133040824544580156655253947216120526803574909342256262945428651977885323124735014901442296144373012365600637698981055911295646726450219666742408400793343195713115412781518725967236370630403676165342806925983062076779976151757278946805577488403923215069148139937914139026576577061571703846772190546447233885436287605139323188745658720972256572588541945294734669483202587674127539634667691563233743377933987044003956088960022988928137930865529723276152507710670007317824226188270016089722396331207613811498962557297766445145870040865591389507339010687176086336424598626289862334098166464026371171155242113058319178935842567337262727566256510663464419097313232228164701729454699164984683067236107576148993776700555994888049168014832299861366173654348117404074217289195030774345735487959561732744749903840909706138470139469733019296567667247407577775811387883466382503621747899163640053720646264799000047840856975728111707326634959018774386000711601024603738960671610567115425321219150818017307623956139228184869984762575654824926096171160227783597068013370897241650385835233922982908863058362565488701791964157910470670901233828089680107122088675193089774346647519466853526928838608034865244995377570491148832551227934012590047978514526903583843973125914454789490699243791463810259195454786536923480264016224034730885000156428152664332269853192239443615493325670030819939078605911660391594697918989091304002525792178082430695384661910440938893479625276918040935772910137574222011473994217336364718625122481117902326478910046046095171829938134783551114489906867441737288262921788000845594297145529863060353567572842876512968982420915729682768526355339356390304504496870862236644411153778344075060561446690883744067044781132879787292800945342426055896583907113388581710006331325115817683060682249611492394504254827015007331031401808157475428575267255804952351987901870040567697184738287791759593858888152765334743750360511081853324301699067125486887462593950188754975441027955800694595326267212930144061975600389704558836028241482341424375297414223214172205779818684518876019534991736416938485391891645009969393245875547160576303298604920100770168401330545075258120524778861152359730512735462958513612696456972454949838955876610542378704263981088059663220032412180279507351819994075749118912010892022489304371858496788981029119860734577926809812733748838667221182647360372686083493500544690306967641170422509205128443279512753196665406732292731551701749478652131503529446036455343470141487602365646376761623996259607001552876405414758634750146253306629568656168541042361146351368758169714875827489998147294172474472038445381020568299908755923338735328465735681588510441800615557922521015589944295172563272914458875289092320267440049901915664995406088636448541898112822882741861574748524688942250766764475825289843241023077407495968453396759546997069837835907964134056303047648624747359231706925933703467238633964560706933712126031331649225282379794625847212537195656064148236752187631112914470145531649648796058486459928797107238649855953281499751048991286856590113218769848804420269568222665692977699695411540663220622667946242053267912096871051908646210577260209456500737674982412041045214913213620703903805704000893089741046195460793473706808705121519506164679570504171572020512402439646505939291120135568022701924886327981331489559845667690568731240073361861799630981092496143380339331187332856730895566339244111048680806154258248625528356233297197986108377208404231840049421215136425274645782934859991616300929269302584374335203722000399759469387896857285355939902976836847501170752558684369323315509253085461712968320703988068533477485311952481300906384904936031192028527706824003650723568315569650174511265576093152720157350577392088429334825260889236015209001457648132817225645404731090930483221183772861928934775674153217937325350406456153925049443807197596542908595691491752719982137623725952738333750018344634729076238884160676349928961602197326087070455379037402949421860910219273984723299003101151126877683809387420946807076300143063267096143207949630615131877856161729526536911489971111103260368199140520428134290072042798436038123995996623625019996850800890460338609738740503660165430799314021330744380638468449211413533951727050527720229271027635239141074323436107265411208683970480018457901300507703875742303849007820704594741850259281434910286325775589213508522406504298945397205957170520247546481121084611392911937543338608101648539088506321072363118478368956358568402567213701635821854975322758766339281873869016050826917909754103411580232606694782769425343598934759738538628981605118045041112598523085137345174235879597038934881218654127667153284878078232970611442757081074526375511164253069020549176388718292176596047285224028238302500613974608285423431115172120907983339640023068685566393772291154013032635820692423975554941044745012761321501065304828601897536157608012604239768660493793774713897459483084060335955816054505634078809149061541027850175138089899690302303456731579992650154882671543935908198899640096492940606750068061061375011605899271079876667590324134973415975198348896174062665914358908430629509691508794361089132140332703174423671679073032112574479666057303403153327748779358028498681588925676679355357383705956298126977762014084441765201240859277629898758356844640498388840539525343250873936405852933466052242429594247338407443886399144194993681285996854137698553725069067441463579788249573404243595321933125903313914294537827979171250775897525253943796773817585892439576875261866163010952434644831231391696808315282486984907454419482411038070579528558297495519946580579488567573576421758599636136383181808590597564823686719664041439867508571642784979602861119233041431809472582190039826607225663614434126447722434970842597958193654741619837917974344249681397521599277061847838287053661366861684558155647678820092651542316011393813881927379323745249159570087404732184052810279528271423612001014698947470524952648275577391509720902452842885116944034450988439927912759625262889520730660078429015342061732083413493730837390840384896210963375501626336299945913108345505281135998596259576349214468517600281018415353523742350102365469146094383690070183028999847857854342982585826696653070860078875034071210529589151087078588031709404798007579985152416170643372684008304000141534261474327993037788194899869916194781979336179081159203001744393750982771260916877498498805796175406701873086802860795867849473348323216171942397628575499428813023562185046801560418155329116448853381142038284051145540768050140890421305546146291370504753558897470865332649681431185869338329311584974818155735346873856607717563833889317988077458642650131527272337625213733844119734598854363925564374274066094353568370732948645630763905525946641693662925606308698458723338952290439247185040199657782608195540700012244012835049814409246781204765509393259982759677252889001705621454161258195641985497431031295531942992070889008297960693489627481301532260999869897851657964336062658106887940327092857756741913092735270733590138354592365663947252389599591487702523495580476057373729693788959143390389848152983443811704051081609238619432805711307979015134040740239978580403442359886279930917004586693632834261316624994591771452381119954636570802132048824722401843031013857132908547555100830879416446893091851518404531851582454386540532091387469937425017342402782386620907588773300046305797719518279942791607348742909007049361454067848705387070881259387104832637886438966267420544797498437733130786628818623880070087002312099350463537848605492120545916969065923916834635428684259434438504375588531590473407618398749172376700116189084377346808304759760824611669982024925279713049607103960164060279695791537057713464259283358193241585152109675456418337047123154681384861324922979318528511163622838367254634359164210800660570386680801606131270289357537102867874444736701549649004855025014639700563270802149650588010937056967568195473493183430646089984733892082604577390978848628414348998260862960486063303456818187133892913080976027180163532147525246573447950521197179459120459978091372660465606023895259419578353538337019733796421777725384477167393642352813707688201856887004860572023488909775001016493324354805882556500743807091824152757058222603284893772880199446351730658815227337654418796654412310917938800782622288573902655937623290191127934275156536528577806681091951909640798641732520516606999505124174005399882246928726024316067534922645545932445575043442625391013250317442379487275713051664755797261605539796524818037430657227337193926362043220387422438460677382664270700738549596494286095434354801166469724124635894042032906304309786810511419189385066027488804707447596978858820707976214371119099690293292746720253543063945772287273581255617691976893065961408962366376273818649192788876091173793365446254408148835995438809815138114443199236413166502164799670142525491651872934475392139086627829152915408395331205584357084374490834924779080961260745712173076489407409808098099516469607573756838528635830173721678310394424989359256098407292848070453654086729154925994932988980962424032909767929535229789653312312776811007297126814711475108981212235712660697615918388687024785447290988174345616211371123452283890901734933739944969774238339366176602251363005077311460842997795752552680158673035585293638382598662337891980941451991223313947647525060628674490188431810437984016913128447292097122845515050664939137822267146492705175757026217256412108103101246570557640317577159355887691500260388264558133933987978406511060906702084853532781969389193653034852856310924645566224125144422452168981492537593542177354923703552812436182055489438994932194536482456179557932181850899441445196772264621480344574847870368830120573118157271303713793762934597980682156176342193949797712003106353216808688629846572028536867254949096509913729436176370512636880455527585430555949577586812243679213707075301010712905008389020340568010860420956036977027242182800051916484726064681631690376786073442555534669054752030423707348214270363936400636372685519209730914656755287482054058109462890325506517016936014534617308694377337208064659988964253380536984303443021361086583221785951024156307486978167059663074428074121181736887590194629690353596373337611822638971397659832196818255923498833950322004582542195401519144916387141144236032477308741806830737119210933424555228181952933971497122854829559600471319225604122436403176411722492112919361004196451171420919320502813820372518799676437031826712014217699221780922785021189789631948957106892342221108851505401485794642578535525913624836321220526517747496540380141841616289026449559074628397004362073718700633545565025718624760434781783470749987846126327635005665349901839484348662076705262644675797175730912287051677935024542990129653718179137914044661308057410245219243621126236928849495984124959550430905628937939808150772524361506959955012914752655642833965016527743451533583211054610839042558509063920280229560957770469355468995747472404884692168564217858003620640797365892251549839573608770321714704236892081294719662618644011940021280790437768520928711417376907328472670198498200440989610805698814371686164982832494223693075005760465470992267394522367954191061453616275741661599040791185839345185891485529276115700547765862072144807108065579981869837589769089946664420759575740309295695240968809822192768330806291700577999587716852614297370982764629597657950209188435357562256483667468198691975937425730914843539783222767777036176265898411460400596360806235060290920595929456830859375518723016743046965431701914562397878932967410252556960055793392953957491134006008243024875925668191862489497331778510589893475671841414816702712842446566140065523531574746899558204073450216378191893730801621079446127296802848702930178404928659917721805044068166794650276984713104109833544220273501978280084800427867853785819254657490891256815153935389479180999911926845884611110495192595209222436876664341457990688971817645200008274320287202578412884258859158527323292570594910945699262413292452927578744787942368694644491353551373990492315409372837822326417839707351764668752930411922903177196631322745653137524844400547058924541873521567402216363412155058738045796078105718691379996064341487259731625855530784066824494775782026335612270260220217802822045111621177415150191520717503398876972124958282810840489668487744385557196881200997627543618715588633645538338512964455800929089371860538789866783274563394008080942577489113798279594040812604404286185379547697110953568855755091286434903029003437958928531456531722866362550119916913717622557730318017903800540975229897406834609240524283542474044202404885027297755537651856965433986902680705505328061461427759794554233968504672043712569163760878071760086734415872990745883491439271266475015687599804823717552814877195850427625457336071308432541892400458803957678142724807625144096730491474125667823253590815993841078338964528894656186109801340956358047899343048773171360335804147684759371277650020182141480236640011222932652680463418709572561104802206585853349959232929975599244109756412205687764798882835624948966374307671161741199262525379978919122982854507844761062678247682236409845864764501793139188651318753856584360556575276558032244059994459982047212934069198345363339874410668301440374882671053052951201900578590924766296602370272090935992798367460993513315219226332395692312238584689828114958991532314006647757331492582172101809781913682707822170354957414578444148942991435784775463479938361288379588617412352009953434089993505400333865948591001981611164241243635205800781796271190864965872746122857967911296556295767614939363321133126668020791756671585462924952610663631964359904244564963080066327887394581085221135007972759959830797484957894010880300242816885673054901626403815030462660168430223546756077933253017839937140784391434666727996231898905474165275381532232585660656498883722059811096049118579294058039277337616084101122031156782798138788246496950100360376256073798579545622268289475154398404131548482457331278043075768415044608542800304449599201010408219426066633065795848750335703165434400080110012160325825478356429019094436473571791695062572552984149275921915030663941575944258581097907297650991484559454767902911121637708320159475351924467749858392100076779637445247371776825331423625727981645639710993826454470382182484443757679053480232761622473419321610650959578020581664821984267394946868599835936070159963954603331617479017975159028051580000825021848799295439436254769897260878338596919199661685394894489624595814984246454539633711263102645242517472420174285639279380781313107356149012183393058958307906510079495350856814360385658667782320931453992464530896352561108188288151248467045761967766953606759821396940105274780098506597430988631645107738869425096853879968015912076495007802820070107170226655328729147017506610829824613067710680965260093383119334331564136188450281604548867627372797602675777796744103914105690638713517391393683010271899402233967752043516357958446600196608840627809890160588773898747632548832060343118599354388111627332647869868514095133679860744501991638472293622160285310105519698293008643872673948663352620141960264227806871734863110125995206378198361060200492324134244148884786991011845606870567060800024615541471832530573380623276659755869049710673052579315074716330169346441780753584306665108760062352396386669904222699047626114025630085402523066114968821907627996863279676856848562196114602918026318110670948917701687134283258932882119961768911410926104309945498157256130458711063283493148429892699272090294197476699288008126312048778632529623952682099213260006397510760068797092037824871628480071618775958010087503664648533164026998323564679540151759211543530829937000659309773432118804696241935503612881988437364113698383959734401399694103513759977590882351106019136363581762818747392925805161682798635161899094471886542630174618973151862734083644959145733760639474614827848902722414610332038603422515113191265827442849209703936267846949952351058225116178005660593509140429308155834114774701712672168530900996470198168896959166227519399534913244402791101822102124209474771154869244024895971448197911418178349906986825602590844931002899458595777761280688337073014695665731543120262304224907425724439963371387193602262825571211498037230686922735493306112648369363554751777863275448347793687257701486657110825082333412538694489066122861213842403155838456164835406515001329145834758501482392654970263965281637827575788814989878221806836862259930249364835107985376911537459891637641414722437017073720977437516351171995056218544797286182984061253456139890569021843968071993772280848474737052708803394371225028131174248233473514492688522818902378289154383630117976024443952786338227445520188635648355321670420175139916621055913846661783806647896217561230784202144729407580546994890628224052411342072252984305281730759949004402882382120318812863424610278739322280889014355511657716692739975369613034642886671036518185309395193177773722301162706259568317871806885592144394740800644838193787530327081446237968189593659457945001575835157931907624205225048110460349915763721967164375383721317993278902689790133930359997784647677485780555025808206496465734968149225062263245059800218679279419279192920925299271112101216054356142521743617548916159019805472808094947401245282247548696070909734666239969988886530549725110920535119489377198909350009632226993074790559636216516759666523903308048823050476794858181012272156240435733942918224650005092698948022027172623210846988930632117838278815946236819336819450599702243589040813607759281480505761252397858169810955710083404124950230178237056597000972906905856991738596314810764729220060090734759451162007640635234177130581808802767584221903487676826834814096555559357720726254822005359319832979851143673121697053620868135764542864176820050406546279635370394990936319485223831965646660147111941617080626075774423836671999365141431065974167766146553280588593165984231406812860655860917511286706715615154514365789605293186868093633993357323218369081613542780073610089460342062486548094974513138421811460892906616489345265597297516033079179765557074948545532674779229164411118387152426919879119501478860917913097283859094420801552224643473701514078822019477103697768492627753948810495661802974656224211057508029321714302991488325611252613504124784725304559146226154512791490104020592523951106425478673422889919251359880679792301975396698313171658108682865536668589994125164940415476264662748973339745521450437850868199883425213970172472200973361277364183368524771744252276279841574246690361100974890034160030855812334148715216363884497454642927000867449580043146745324511044862662458137987036369018340417254463858518404341854518621048397482665670522309042948894477299678494252978063271123407959696093038178759374149814928712062257646193802320049603158274844668246287435186832680184902186141086931491200796981869311141773123042739314581517862669759979803218528646344834074535338467196096004142954747617553708734399525452078459512837185356561320302214208569890235141756096902853516041796278301399297319640819646042407603518488577565975615910178728797111117779582098842205544115963001537889392031542547963093467695642630670811568695343483249908239943654784948961448707814343046390620771479809167181013413513245069366771861204790158816819362165239934407442383108830048373416973769163999315847460586317760220824154952093503884521715803394457454999650629495422425256910585635311960799512297944281157146374606726569056927956567265943363049615688358112592187328532642341954223462549397076759313350573862474960606011583395970404401536727071853712871489552611186641222139297113942968565009029999311131585946007587754039711022041912358094489669543751722271766617985335888088916146593149534794952582812371293049207674771915275911869882482902817413902766869485731013113700482527213465073600104674131741415273935631135166295033154948905370684049520009977863307310468234138805981695250105390518127082846872610904248377820887977754242898624096570404222907401907532449309494329901959144397867808458301536746838552101316521443515592326283534450286164257415298023857835831988498848918208773623831887051112604430535502937158063166407524902767462878635556773061399415546315356896801690421455291089141709043576178870746239589458012908433707097245528705880634302602513118665164399060546404448426423856702314274160089662791293360150686693308888295623761273567256366513076042124451998724139771076611079380118593611563395526004570230235212740689052847312726229126144629180801230359908661791327486527718758891283998714171379014355157425588379106030089580782320920454713697355435491858494361463073169488859688831030212721532822855053866343143642666280020889343554802383031555302958278977320421793487024209604673481379450899141499245090463553774442285820431253805944509381771479575905471127917070268110563942832403625794787344475414143059335817306032251530273056331245008467189681043810102568752659289227053056188690322245804082539480753599575951714053995657047242958689274958531271609925472401110036983230462462697559964266479765771417152651855202906223483033701861477474431665432360261488016389429712062267311816012960687058993721374473540007507588694124375305677394657146972457118441094475632752426084337682743093653931647994012515548527274610541372162692954025351852976611182005571978483630205481734909164616597597187998632597125544884151389955558999567400608825208387343378815161888015721684065249704895848286359379914089824016976264936283318899387502016948960930550261470520361220286531323048482632155329527830248975182020104126741339349583623012057196528331742023220994702162744061875513000152370495057516233441485033294206944310491597078366421718118713825059720493686395327123202679741245058415267872069751831732253366771755252268950843754263783245712547366860393033986011496640995919870809849872960668832896852716705373836740660352779773987446609801915274265562077107349818264828638323197263580882037208823510508169065742791617854800456148785923432652635252228961642082112404455712404965015156454917097514309736801958493958832500376320493974670638081616282976052603688662392895895482633115281305039758105699189413898623526345432733532325957953083609734307961047320326704585505889298075581237581002613711291473782986565436332179793087320532181516185560692589096092662699653556375477279018799141214077340485263381003694020714452110405357547182090630166406138348164098230057829630711888770957036927585906363529319368268250856837190351758970225014694759407135557060177531940017163449688892951055436946767717684528981540407548223988118475693432916694469069965233416502561365563962146194466989281774017204588902336334731538497365822001285002145508434479767470318283622580490595806999101420159945530399969896235575935040878848998574114972880938996076037469294877965302503274619783330300563302392480667271891038556176490948473935449923276523693263815336439669041153752581238941791908430925145452344491833330829161011378739719492736901029062242076118948040874852831275765733790039369551521053038390163875112391585975670544478602595690166439301667756021321149655885800711487644179494859182776587583179964330002203667162542852355035410514009484956579285256427556599270529653239381674988273019856198076636214736082064422468952249679373996281859293426967135259176437639184584200073556633754410504351834825885041190125335072060675893879837303506664862694479558566051727905417141472492504180401597466716490008594555769619845310543445663637319066661282078562188918940239733293345881592610270826260651616983217090171549022775995062648918589030558454260612006232413429141010630772120556258891645635913057814650294418091532770763784647023932678987081161767291418526577283552038647136007883215227547350728644789934619175061890549764291127817678052691206298937279011281038159721294465719815204979849946350589910668036819568829826599996117309354479531245862146921493482319479808878093041340375261059040825806412426941767175194136980429648744354410798804817783958789355378170642924576766254161773639536444411087618543185497996216360189652930090683682869553600749729417842743189706511913249397001163545338775423832014623735308948918442179650514512714882844416977123585245449111324839254387150914057996129114193271968344502106304353652824761524278251652333217323389828455284767669469094360988231256310644512494283036734399426487007534075731548843219340542186729510442646528901357235922075538652330399452945363454699374934247638720204539691313055074436259680851045450720890816873043778717036294165588465257076571170446975531048676378809575675858171464044810167968574872629855309095838974205724017791153151300846296108483399152942794598441203979509713333566161273374720710136274472707166345324842601697485639104161155595707225252919188681173098997644528187040426942446466895061603639758054002063123354482819619823900537140369474955640378518231543323478796285738772955328350024076669184243516018580880457203288303952051858454961664644675678462713769549274568166133204143529540886927335299456318229450851039165967526200558310880198878515169372107144707167586285275263191300904247913234768856008251433580826615038444761647697363555091913336710263238379290022303147054801316249940664525130315490458186682000209502889456214685455333615123941134937555061939096702052033008719225025968805803300996423189414068678301904629051885166876978164856143840470587899334766585652554246393022578885134654166465472460772789451698773581514234507418361858241904944187424285117026931981521489795538479855932271083311413740652194705643663271709108148480668640513135037094181159395220579818267760561653070770136298042276898372835859007136567808690691723090165235106412977626958566788492803966225464865925399950606777441952543058789468999529804054078333340721416056746781713175768248398326126900344992054651026102605508758735359284738342760681415653947898591646000944040339729923980364730340151786980094420479012632261439519995763388230752448729934496596435667751230882878291484844434648418232120441735824460385800969892485813537209557483746705214287155767610770265926122081406376302146913881274592022701329271717577950084756418987164782738646459129794935950643069455185774746347042419828457523419432426577171062333487190741518738450978122382867621570760760388455222118876530716128460177849680481672514839554286637767747389748824883414723218689656391252143476722626739993538424494548113380478146514132324633519680851796684898532946829053250161812606274608721326831684620605325306542824700324756362659142312888037009553840748365111112983815669643731416475582491738873225680598906089304247064908408809731586132075856604596208169819675448408767832735473084243501899882597461878084212950549124459554743793723316354790188617436110298582024324288090668262359014316235016466208775633367993418069646455567333758888035910841033799018508255687609187293889152573819061748074120073474146009011952575353236346266906210673682138232540622677761382077017500732797415013147579626555509982416258083342260868988165021869644735378616565473744627496294619079911861712116618449653026686685413255692435273629680991846347173815777557434429946094130933405379855253614642641950507828444731127942203639997253401314822288923014806918506617611593697108727693456601851450664368052896647625186366478706707162347027434564791918772899058160885286371794786635958528996477455576651235985408499623507666780335784667053041053840118837428420797049032362728491574372514287491869972138275156607045518370853814271979703971703941608205379308125117376908715709232076421783841763857448737334871130906437026410465815454701492525680889520294039720836047419943037666690298853384728286379950472107296175895156930087682385211674900360838432469178416773077163481385969960979747566351599124855784620867274660102257458944550542392006811678894642369697520079414889687160524185251096823871212664945586850997759412686413488181816836434127909986525020276032395094256794015530008645407680739983466110309546667447470630796376441065221850158088293427124885811561389710410892902142391906041867782398931947348209474186933286568955243065311756651312210981455657810169600729898488218958847036754707839332997520259154627922851415210589407566345424259556850809214407750928330361594117493620259050539038315539582822457884229680795371766780620514976705591783705621459194153465829137552863766947392006703976725525085170098781365123342474998496252562753409087066216569310965208074866807651247119099763920366094939402509445706348797477459050897647935948439784422894029092665694001019277227820853888835824437384283491128245336744604024821562529021013070446905444053907537867994538533482892356290551158741095853480583794024111604578420743387743992891136142870083926854043120994438795449607483985060554404390209847645325283288757319507544689196553521422358778285664088585811925929183175800167167088423684024612742696094032680882005856006520388798641998956778340524994506532017740359074694545081779172939925554769369677127152370982391824048479548754376053302837233245061114174562033635228542867430278733583740119426807197710868730806950655579215834565604382378296279222001580758463632932488019934219446005390234167519374436244000144620828249499394136081680474344509552868896144324353526022521247188421253588425691677042440938907329658460012984357168018703778691026073402276951478608759307550142362460423715391528791239574832891104200503531840867152334954519893701811697957682420632056434439809347095322919559972475071722137645628602502844312538172767440123878977216456538458566409445530002985175683952553611152316647613235052456720880788050745781363374089214718075438499187239742613579405443785540881289658133116872483633039362714402931571551302553984333457896098994764409984230914830937824445380971602091131037352758662621063291276786726796569840114325714264459930732890253409762075028023159868514694429408540972302778664693744211023724862443540716890361002088174296339407121100303142702926988261422004870923198439212989118184738811531984056287063361384024377767040648898701669211304994274419616707916669154401408220127415084702390992153251562033523425040171788603953955818768480193036313586243171422956875352606033999836166129813154479016445087213865971951916168582738466628085103161166825078388669263055555812153357152667720826584981265158262498308711964935334298543930922712782029428530714792981898269830394437536582525015479501751592655017961358186987482474063998909281283070204085947321998911460090734732512763678042114658121202720253596844916293167633589483553583733325482212412924605550042889740401835184114925402841896269492960270824276134336463261200118580529952275565247796973199935450148174094194448617697304652889178669825893976219633418845323740695753780274358047606996645781029265552504114440160811399457963403825265744684467304241311543944049947249745010646907411424447536982040657114632237660543920325614611544654839777243048315445684599286976962739625503777951263804778678994916326456866149322100510418933953734469743972980817791443066241576897369470154933414879107326814527522261560726731581350932612913421684881460256427502375131702404077970182814444818820467323128271304105828568181534753780754801710586770721759069375240066164384063803549503349805176014270958775280398508619769533136509386278170854434037899606254021435216469532969856447213138588842999649385641745836607576712705120448217761952039612888754859408183339082118166829627175737209992334818101932711742823194441058265006765425399992191637864792660242678048047808878520636221114851078226900289740917555190981010410721892614419105577925243427558358328726251938026590054350009335688885065616038128174853017099013219183479838403239600427084435514453165322959278104098112909377444283174746653991002182840965495090761269269874969098229425431100276484311830298531055032921968925014751362168744651669391236255819711047695063193382654933588290925396191910733283503523506201394680314732175149761384514903130776235700904845118631783335540841743482214914055704174018539066078060156364007207566977015289149516370150901326082053591517700268294941414270336971362074710735439731558914834038570519777058178209407691569042345569578513539106885599793974180843833073698757955635813403998678674883643767785022566379383173216447671501943308182449444463477508550634031799005671663617505953010671939332032785962472940518419303049924409560392241941598266179003175713985899327045732964983529950389053687635346420771803042279956722163057955374833297200674999556123190951886220138709823811788134534125100006293128443000734702906921089772706087469241117346130205225507978173569580721750267599048831448639072949254266763918789428860622722924472382431779233872305003024865816189029221025679542996420913253895663222847730664231264482830480870993555934930461018191063142626428884050797284715501956530412591503409035843217859726686981384486639082783388090791455854374749350920583090868813542694760387574465956082761168496451317414315501411851177615029601248504485554592538234772920427000918756353138971085931960071158654180264023388133328325872400083651656156858319204581647652220451209991902499712508253387376238055745485007966402646609198061675415709617426710818926788691266273629793524851789766179101569357227846102082087301048502469826486694824420892491716806301521779096092331450389488454283897280717108077081481599637795569347135080000558881676856765299466177419767604335972235682715384570007813890848922374596471257011229499031397733339230056342766954668350602510957439358730051406822796768700594516138259015634851554104900155839336330133685711552046964822123969752960756796145591315880308338014492654848243432588618597785202528546909178869966036194279249567119708635555663392399389736595640512075054728296727650454546665956036198878124610910858486373675555264218342068364002057431195056335546298092890259878839753098492256813698714763177285254106927419936291418502650910766980198984547299052274970275738590401937478016617594899051777276390671895220079447285616466583931736595543645240727663705347855233948599366151635765472364848582597606868780963062642385828934629912467261398091804425014799381758809997951298288596420686782286134755139911708020928240179296109332780234069407007193843533475189429624444546293058536373798068573006650357861493478586558339171297826008809936920480500804211854064846607511063788827241689425527928399827864671378274242326110585207051020924261962939916841657076231001473294026979562584587336434843960129739652494089687891945117082683951518919162907010216541020663884636605305528697629354185188055235753746214607829022825293433236391597146521124860839638816616324806085517132587954888561599459673583150633298891767238040527925617142192697388415524951134905799214888325876605054454522547242331299114861959394196615094965261885236899490131784223390779268028042784784505731592212316055587237523042359390830210224075353738587827517513204090476267719531720792090913482623942072113824621724878980456796260670562133457888907506300032426128595905349061019584723278460805763817278468752262253106651721586834600191132955862228718864655920597510027834298375905869515043035090544513036481278871923066376717855541244244240274085540502395862957533696734942590820657920125352911858293328745713117915192166422321960056638233162233002335505406462765172367818172786368904473917664890605279327542496739603435087718289177916275114950270510213387679636450896834108855762926545154300611235801923508637253192632403422538892040018998466436819798095815107698358912907809179177139640819918923148381607738624179857818873672007624931411627331696115049333476110092022127174707555873916778447819463692899547307709308874849661327632849674311728067243505326949329767099433754280268791940109985287283907904028351957034729955557950734949339870794451024877906729795791122172172627526754111994278087347383759739512255373681092668385339423856324500071253333415927573703520981292174165911852635266287930608387591313987381244719094438029084232111073154406188507292266214379174872654157911606850672738787732852417133986181756348735696670678440903410234839486426164188053249046813710696861276153525870000967248240209086104116610680243976449868666722517335898073603863813889077909318951024522481640644850835234250163882114770118298378427844518233341338705757388123758165190463276622666150236371894043594687585398280318183300257433631316072657522587971783320910758920882816072627211303794948858815230371327193703247133861349676941631029663825797050151975665888236003349483995406997537468049652179116971149581254559191793632906550861416959445389269967517949709635026499735408378208386787065392066462679047190697248072719813663299904673523069690208850054592154518633340846278219537179094568031152755635982884076405170757658084130902010152892544696563577582487655909611847913382017479521705315020181139695443530258520232756067029777715872843735054493606314559656044744641131437159113218274161618942595903399333589786114471929620814122683847577528823285046611337671696349540357023321574747045628983400887551382679820872131613545130621097163202928434459345717808634286963924268212745666353847744174007892825120096953761771113129569013496178202327279365965757246550146809004846236062407910603081611976917871442185997962851920038981932838109374179368071289072093554207619937774972555789421146466694445866050824979445521386266606290506489376187482033808337971782518822310904675451155473033788601343112612550962696351232965112174092219057436503590295104905051755725265465018282345683613647317561146555587169983736864395029082673987360708291501031203705664416160934709243825714889831014707455506169720196758239720974255158638464407011291455750462619134826877235932459784975066541586519875553030956882080359735306963416117943261839625388689585238781876456318131833898805238370401640827014995769173300809890760827410946497503664896981496302881587061111653402642376044420347381074079827033689507546779113113368706046313274725056543076154379415984773328987019766772259067454785234033479482721960204459595090839015834359767069669108163286999830947249332568136120484922644217853562690697853049082960651092929664869119280663831752929013283906720122372401336552891488618530236832754027462125611154216255336494375241607941995507158348159724038815667345826292887058722290672323248564422681784786637493614972576161030783110837808249464510514082037192397318378620687790124517276739275939580853215553476010081000570152732605762191187033304759923535708045198114959080852914922573001101058213065510515486513690108043917769973643884207512745141788190836852830696278451312067997178052828011499204719283048885066322207466738297400219821573946805421206049923306635863361619777304155398076061654535120875828819967163419966999516266800053923984209397137280898258689744331123543245456757364349658150919248431334367701833174965155986867613864130599035420352482440474169681913298124726754436169731204768942539828482583323571657674637606844351001874266827904031814146608255736942696751545253217992442884478597597222306150579461106421088408948220793535041344887689626812530129489504210358248705922103192951211685488734578186740666881393767219278572957088384972829304515472095414167456542307373993081132114641268780587714044309188004501701188644245971333909535010074748993821683693359741700516169964993216773379622569548070643567154415628488660831563204217402836766065758019881379913056006634400028152316917830795348484049098548056990521348432498701685645812962182332403641878870308423497094095948839481781365003432083203167297850050322688964729253565739640398339807564688598704410481037272808594315497917953830101318643602843321603285918123095410545484779028739369642639303450235813634214486750785646463517183049408045717559095430452795385188942528373651754553164146605290442025353418561013601169665894902523246343275533838312021313536111022713466881262980829249657988088221099302493927827576707762992945950014029622744277681446011817279981230158470338115190035936231453627374299400300204499979848630248849717790239721878301978201488339771779237287215363481812181213267595576574460711594185371570593966313352641516634655561286311358475727246528898421420442675599757538231415377376521374045148930660330595801333220891301395713918543266837721919662081671662083151750017940288451660329164300220540536426233338107642187394851333489778095424794154293413369290811615591265803525927014496312744673759402284390811764400699176044808451874715204452303874586828911299645373434613886842799713819341195374874563304608214505929050456908487565163037644183601416398011303349819134139536894172473968395819455054417101818557540246083677930207945408029931990765157006984209041683537051602106043511800207443672950111904683117423359074476488049080859323115261138763876503268474062462766260502875603056396935829684789251889864848638785334050268965578051564338112449033122501530914843579123240650014337061291203586321075993431915256442539476781078622703935843330194579180273580840983432093560402453340463554918316413617177226117196007251355561908442084353078679071830306946002532422915526440184114034610137602254952226629150277608862787977350235510428799091409550684578697433552515152712200691119962766158492963237199791855611011988565401015726336759186097392658651072200424153272876228383947563889261936859281068658107242187396200652060556703741398926265614311921751540393708300074619171705027274877070183403146443930740196627870625990165413651729259452728465325187138273210689187091998428531215886652322101184368013359300298752790775449389905840807273922677161564623649189466813592433941748123157664770673520889181723782297914337585406443963370392763741440489178473062496117039482557832327993645789291761758715741399014828913827878549364666777633251985608320267204797749721411133393108633572262721225870934216394384148651528741789145042330416320419086411045124703544290161210102040782375100468521858681643796161823244786169433644245139518364164794125128612212761195873940936780302407212573692127554001754363727650420281568767233527363514597465124657052855620009245526208361005435706321004438216421251419616686765496962145413924149626956696224071499408701234286461816416525700095144745994893140602560968175419348970321227352649949727975508684115713036897583387063657398028829693955469688029516512071145010186969071259634226645527358651850876756918755754068914412957058554011571201004505066211762246893832449994236039179645089441101712690058469854583677050885814799407504900550003285025296488789294131619565234678470906613874976666666469425367571128311323537840041197852854770639412179510136981514824010158617352407123639917180318261099515596183279485180589859076213672877364898888893640788154076082008998732987608076566835201074441225651751662261671174947069083370373251984571281590740266871830346532975890379795995089093120168449571485838035433225163769590929501423353620085327548938000571689126455543717251495994294460727788852893364654625297048759528007629765539518765894291248379504404449737606581036007189233160239165022679974128816012709557596516929665962446946238269585000001712660166238378102052137032075257693450586221156312927759557926239039557437469536878654799596454096060185620261215133517057128361291442125845548373485234115948706930161060656957170142666310571051616540031574751327027342497866056810717144907466109031595989618432827920209311300638777765182069067920998029116763492148929365389297577636363933056135122023271850997203077939228682642670088373963135128131773498896808679388237324218105869241258356676145565634906352100324071055207359772824128243670559912748742751084396800173029829615196776188697926251733899945248491834522685070686929770084492014026262737290871060030399321254355445203710977549086659180095420215341101106827344712992153584013956631754967894962913004739706763478550634238709947552468859039635710667100771436813832804399880982450673960307443898314934840789039773734932013286223544612982018987732801382781209144533927365767864499244290086402432546487437975152317522002248955011420836265279218237428486998598250219848426194108385421990018396793351635956216709551709695623943812711153625575493569299334388309862455602375473175946284058172021391057668088094108610771176565961673574245433538900071383017106465332456713376454869911484745419645424900159731434182369955929859336118834334243988597262682349425641059404586777066457712799955843789392382660374420287553648348021338224925699631258422757530628981302258615829805203649265499891136589088644860515303518222779831006051310378050742333279244438734101829667067462844352218019078736479809359158142275756435928156722855855454297868931100259809444683896803388694477872551306050616950280387048371587160849422471981205671007066308334416335548441127533071360012040755912846212813452111168905175048329840211027400504241511030015155469719908673141430198304525337028794024134669962204553290304677017806694900048135225482171473809729258281551691020339521629260916403384858486204287969932368324157955494289435387375228078051111972745336936488983192543481544835934045499911273847170545054390742472306553750587359274002782682143352499438729139511061543653164362690381200994458212228798440001387209830962741046415736859775967389226564090591323498278917619028474935039351018909032909150019453986434584929091214663433599555734039160724170520838461175841915424549459844235850769607126185342725601520294364484652889693875574352564251472137302018585628309780893149226697873927753286969292984994681632563325986287077051504658968066431535878188068114157271990597521317659061393736367028840431631480901322555141415221129573757925088622790125717230624702680024506192768893334538597206334265221204600735835399808154266421033399146232571543871101739380348068464684583272644427443486517418509988577257806957888598325204451330192721547115167227590657870955070605982256821643523770557752334712797279055254733843877465063107754703982459365348098687212601266220856410622304274815125108264548600430111842867703256867886020966720421633474931616735306087972595702526825129638067047385907299464670447802219663115656037573600818508685211043716183530180920335886048128611067650436485806645340544071676422661840619730671102708024785199056581243862846977629893303708774143285518700591172872116559153511029952723062511662399608000807552826238388485374120585020681201242793663666172495581031632719763809403343152599758891944037687200816342500697281361985176428916051724919738343678736186626743116565942038135731342211949127709562266213525270777834235193684308002970285382958957525642526376877661612897941064308484971309327596663107109015243823235744251835765594084966323039595715117089363385327830317738873026986083050448102943753220918120984211772219898613677695369329727604759532388469602651669646376766063768995186602958649329033020775477168502196565376720474707761207061712934484675000492529221191170404777026700720720380030964304120984741345263782504096816036166169613458191586831640935083672413327834376831778645743273822352297238550816363973282845053084847824084769621758993180852250841548132221988653184809168029051769474039066620724563146379938845616819097792042984038333309839582702095587635261854540886042285158173451278094949690571446148015665165951091821059930742578886980319494927379137348768874575919479348319212295956593103400429489047715961898311239118275514376689306436674913621036687214100929126194720998587935170851082971855059154832777068819167839971776015394632183687523344939869589013221741545943079329385048352266009813732461033134821621531398118521690946800991758491034962566479821535705523846452363351962231207760538623576568159064063514072828669594345210939498673757922216073495632408283723885100959336392960137641671555805515217663520096994764937189711184134636030240187106977998435909282541819943730972005494793136352284710201925821468842556213915243578624171964163069441617084921265389844277860726560090412587527944845368331676271975265787357337351120610915237992207407838755666603607848194176901059333312945556368673927532961846441480305706764899212269882363918994760110066710294031727962084129860807259514979074250262174011257611586048478841094449853225755056059088763118440052382424127483629563939500144699926380371127954340630353509398067091703676080766339876147258982638043822505056032666988793899131989070793578866283665004072793360136898251572799881766998319966334631285289421365608455430329084148051003611716234075558516500174120042821841787374287015864447641227481561433628094882074505891925169035303598719771707098453453611246185781095516372311926294078584299113513267860714737197329887868130087197212892262610100928196216120187537970299019038070183430749278030822753701864183294366242669084648074808777819580058492879642242080762457773776926715820526897375263961699482506405864476037139731102257795595199768748973708149774243749989634117562601699917240428183754948792498718842889414873646040728510243208712083155016100235229712878742134062469338355121867604323002445190490916595591861371102968249943867442751145804169223599829892756882537816920417242077646131905529224655201842487382357339372492960378085216101300567809925880652459461983165385585480459183065118365125680005703650976256510514557022309989266982835866123076571601192000545234519524497886402461686902141699214037695309116538107014735880601931339859602004613180468591536471682615662980328638180287331969211096157041673036192732027882430958995246082845323122245157210682112337399017647409584165790836746416873154807840454548013462341100967912556490471892913611582353285179644597832114210006983814344524126029265738112110898921017350333709130050625883637697843854972553271242333345757771305780118411358544246865898577693912166016116871392288184774007290432213865578162368702911609107837262556464723001039383785705989014610796362480500541776431130923038816602153133165467215223351075128063162753648989580837090453030497605682753387539628448927578254624355775795361712606194122161113089504721754960086485863560815944232508034754382055148881179908474535406472018663380259928950927195280056508690907455442720304004140186048845325374051747967829114721203162036641408516513992861771890021547577338193356414473531346551270569040422817858921937580928670456925387260091706174335555452727948599431852687025881886441642688495382777212087328540239768452440418103177477055926557001043439336060649572046273750222799570783186359140633889382636485180788084021903377074649051308488826981351770546491407562318073301837217271270863028279196158028765572708627503725528079097344782007255555007168011940472306033794151786708397096512600712219425296796346902512314720666759691273223225289940091297303219060514697115617619056835239743305826925337136088714830477315189869069469004646753267073549696922352396413827803715138245444930485275938656340745185743486890593561184427224245006990135208005060020173401354045205734240348946008185436678320323060292646189168447176740146238462238335627891962250256273093555879247754032847614324500707529654215540850977973976053722230124075604351292473958085508688576728851062887858768901132839713855605255891074038584430175285638552418146799998843557711202790826669506159412130445310050649323686277606218390052311510430161819264764275637237252393720097106802739569763950671271985965030271665872201640631325979805011544808644230463414834292325512042822980400792134914559874400830379932201482224854617274569260605630918850765665547216216174046828092802549590179034436323019094247201744916483420543666554676028565155505895102187925146499484946254228361576157471687981627413297525341463708756326727075887161088807626361219079945050415543731128300708716066976856877226827039950496941685037165345208299501733553516770239632548686872957372546477252639023755790011861420224002422770372404587405268877241935314628179866059303304929124196713853013980802915840342896736554279217203213893864207962025121756191878357986260349735834083753747787934098907172017968996106100286821578980835034303164124874832074605718609378882698328582777652382927140804571892906972960062480468474216559568619273302436115580868644094296199656452805321137151423327244951002762328223847461479512412941356120165070324282694317375192409623985373187520364704216412741190069226203070063959879062969386213204045800492545667094501912500848333181531899865915235072869024575591297473340933055009998819246855389192692594357638251009713781365454370137379105426323135005271314787412503957181793078311663148876231186441804124136436689585306110607044731965834518765372526120206441952727812877932401511807214359616505498346289345580282456123908793482110440591193136004161689173535703555256534347585530962010637220302210470017803324505264631086206751015516163638021558734599713907304233398887751387485757037667948214230442261487571543633568286229570635070980381846420751758214472597934383369173342399310300722540949626002879489140702925566434729936723571703460046491442529064391792125904032913200548370744144168288311642714258465828264718434790652903403957119932044863353258768311498054510150628106832073015227275927273611146175265531941331078278982700854850832737166784143633971366182196838017186506362898646205771288350717891993859866714414190357529885007862116369812131377044393376008450446417747752371681018880097898842592313476440080950090961008257169449961060975223102998730003327278394731037567778043387139297201040983696202949439956093862003887235533189053846093950812649572979329471909820168802939677223819208101092281022067789965349324617949559881643547099202201569622304606774430191827302115995877636060707092165931426107903660643687949725317256697173293406603251412960772540473065126781646836106692840475927382466377455533383835941013093907590758274707574544368230262923010765262255749939314057850652271624656876261798462600698457627418162249069738875131031906397407587522657595801203150701871578004432272564960503209340318613766944494840524679473840657418685434743534274405383487814742213175585573546556412217277308286493773463074856370236019000040122238360096448523549426858010979172267370574946313408361532174854453977034994982857345485060128255761593466855139394127434216272925963113470018034577946504426479326033497425694796622267521285237191175659800659227118644470111551655852374402587652202414676800198453326285741501155334510354562176044300741395407929672207238027257260284897243306682841823417422558406550338952917711709900936130136868218359369849602711625233819678444024856575991798736837221932438819125281236808118481582919239823075590229452608555143934230226353756495989287598819142199228621129328970029536843437051244367396774672622555144770698586606867419743304110044285847473692669577315862371901188864359531566308238776362125958836180346813176653674032118487156029966708869123350465489978198760770265276211735921315780295374797638153267450827931289688495902470564986870753056852845961741299783300479747914406870699017060643782493086695298213919947102680466421628331180720304149918519503690601564771803526109167278205989443885073439394606425103945711548144574856967292490879475818346204134206166216542058000418214140392611241172568558842585629114501390104368487839531966693770831233803600305176920341352248744488280761393704058368277430546976872375793817348651379813073292633634834688411831009690004786713162756994087597755745201425565112893088419518501347143842306520667715514804794288439636795609366591296607810349305599569687477780635551164645482763691278014153913457551306488587498879174455289226983290826795086823504677257188991986722701241180498772305200438578096305462771716141543001312886244198886757144811468492864114147543114688813072365016128491973559361913414838261204095954677425406117068983349886365113611710921864991043011196332450631639840912045492880655396205186444816811751186822148459474301966841362271984303152620875021922252377556532437949085159172619521521884768762504630327263612770126656806929532421170712812536234643884326789874153067033735054293056652440447536940015533938297462510505321594490990291917848313807748692899810135412320469305839042767430113345377686465474604843095852443242369594994059339846779989029660887444819025334756483557564212244429799396252752787462535691285924405978399401769636689951932771703061143846493304421526845000127422919715469680164987688635099631525534833619912637143750626005090307443189863336335763124022581597199682025562810546076134241139717754445533079644146494673486725529697968045967433346674547893709739502273661369528642453079242183003985591107890603790151781481542276518058294348064288828352835974160725588329170903820017976334621610062258892331720272449944649539792655791295190502132372296415222578006154883287885327780128737377918581413775781329052942199727606876275334575709280621277017994680492883399411021755596412927840178480880661326285835477494110161748603571576639574188033389040843714694328640255625542424015805526791813814621639372520087613122785428158517424841738074551625725228970628641895338208792796575443348997227171626939077281244159778848392981685043232847130910058613552579587826595496657879283452187848045062639208037568942629501143968370880508498446862990421205309539619682098076209798696430426154117398067002399598630837404378418131767969867622745264858425378053606509210763955592553101741992584753164842315742890814334127692349715090713256145795264493361767336130251776120705614729372270205231734368890047048565313889864379839255506171205644659867150571617904885193272145787697011564239323677687024725289418237058603756150898956883458695219364753808864514994609641638325647175146500678432931981823945216561682051985297929270331477887324291616778689945097181154445539384837700505210470646870276040240036861014070281311233130279528369117543510503916886367584063613501273951153760875542316872027284511408189727379938993595915540687632539319235459273831344646109442431445910477655607726921137804107233162912128571216018161974899910838574794380658426974949121010080960537884013794895805000868806648849513837488661511976163229391081164896038174573025138746437009514854220144941662582059581839928202860694674544375172189511181789398651246069122197984248270659521483656780109252772573823060630916671960228080093923631930965481136098554334953790640035927873803626269038189153418726851549437065221626103325281155042736025356880768442911699439010378078429133030130886573502181141116098480158564469332124426189626198306230632628117930574838692663601901671676775439131350486501664688488354548858350831141879932626575285465333694158935489100442468256864459382574359972309403907993849152102010044110602226122203109475854085310029227067088833830121274289804037946387283583073939053113835549683241074766744052715661529394216699661498449820685744475612016638669094208634591512100821357447857060425850868109809403140585397697857702470411343938245366699715217980962132119355591138637477441435666855271848034976150878897958351126324347492039807434440558479001457389711000138252970226531969363639865122444748053932971850536521268154632828436741751413184047468339540981858207387221248655390329184966760845613233007504217133561195781360911317580025825188057990386725820566520452457053820038111224765677634644517073607760659105532485426151058010931144664787669925641056040657130224578032589391782481110237972044503773603956945632251536642075044663912756063375943789975078307395464956936027632970363711951091394967136044495943898987240433329885139370827173687517518008288221683185370903147276298426130367163726084392388585068271997893618085703324434277968189694507008981148570163479347769681262113259572232902255271292113061480586661803679135935374531343478520627875640303310096811097980944194333045986797505872914154677742099641811043886627241784686027120291896971686008309703007967363580466651988720718928723606870765033550656797657599874342326874312249534516916693513025028780721216360708882523278345383401008778285698574298375469609824585770512081043205286001237916776657448662396514176192875128648288905540991165400247549312573232584154034814475740180354383534483827442228736816487825257461217715370669635061074834600911428606084942255215574029677472916373727726419435606949594332732848074580044831578411220258262082867203323697938935986982908650941867821865814973728991484729727055149101049109069906278980889355857384454081609307222044955113393665943535104613715023138009887364752721066973633156060008641785000043016921349230273819695560268776478665733517138340139756312106780625426584007192267821136570077150757078748912497228528855410280202862368351990544053790251706897931401387725145654586782758684240364769545468058291290433391672022880335805935737892380665359933991699865047065032167977962288562679720383053611406004055152770900671054895001911773085391581969041864104483322562746171932927081596811390356096487938601619208898065590463002717501518843134935758406234546180605393173683687128033487990079195776742652530962070359203100949015457972262186643424421081126407186378849128106822427205465346021888021090897745266925338773514907448071016446416413194462214121943547092041926678942532557451539245074888693015449744808773516997014006945886145416302207242932885853617785864747190530797432314416271510964443902968350693867538789196303671903608024945740475683249120425646021384943893404957693963721907729863505050156835723299885965091254842203081672396468949625969242994357031898318396103159620824290019515972930021179959889136084788207669766792949639084919911558772926052393630260490487664893276015461188580573025162123123599278108870624406699183947420177838115363136542547345443898397569880003838946411431497746131191060819799480887387118377190038921820258699076464336982189759368254400639474279368990838930254568189643346905390118654409264151241832919186009737799307689808317589498404420220892829833116624583579551110461677260023389357828519761189348797102965727946824016334514546714038503456638894246684496101156021532460071879553596080152904975983707613347102607035075749755730310887396439147422027854189809392046970919431554514538118257623020042526190479441218874558949653397512610355331022553590884475595579426768671397438284463567676810070719488536873676527970291615842140324639690378052081527113414377986148848641949910251608524680966427054656210572093119665390595401966530393660624770031069442399553217129833013238768501283943622432382323216951072698521721374211331438339819805239594147710884068870469425990087675376057936662914814851465828517545485533196761287263311145501007066192734064039140625399244849508799427807522550516983191423898782688145719641446332770529775021728102041556002819220919321008040158508770784142010027475893657360885068743762981669104211606580983131924152560044729846985902985210463011676354952979494330632061998209749578501656786425067483141158173652560599671933759297249676854409900526417456271188683511917389921043983698394112185515843757225182595847890642289414904396331950788300943656244798589757850331904522307692839013211291296959520696733382077286178058525192849721824098677982672984468341837444676009687489190443192851192673782995184308537912481473109314708718434390353685604879804616702755692996418690929358827102247883720240296615100305108688797368298657859519341770372550868935725883958880077170596904812195247451206463412558529586134047982246191770444486438934389550094265270387328404696665228684418614858123994424949513316991321846856115102093492292520531775476210996120174227904171538737341084040986133793755787023379048451260896191909291188347002637845828352712847304561543088656959027276716244190214579698407958270439703627816196838069064425681294453265190982682238165533383160974818284262065950183462753639309235045158985953021215002343404935579647838896110448196445645111843674285672487251546766321096191252443107599783616770416129664853546746688595944399414377627956245179408789215739464925059138525285534369854891889829498550595995838689657362097042967294416256310446319895004580520066886282061482797765953109605818109290434545458289898532365055001556765857457799317456193849214393550049054390305628021904756884790220642067401153544883562569904666470672844202719662742619070015890406576477630722989878525267283106809199063943451324452990492846600128087725214746359970656784130798284448463478023763617036371133299019154544658750122111608743898569814704471364811205745400450371175790194715695920932053987606842876429696249433803865870907297450993021252457000647109071433369894912619384736031017437971821134526578888848222408480850878714618505407224903585562520287259756049819244837351696027804888230587379746721022372918980678524633665841819161505520193207991462070463991499786350390473503752538186109595115075931214777771887655087139016397264428540979273173741595583866974911655954338057727896168433386678818799739807013203170869844453468893046022453200365567909534230576111386799270930294484082081154096565640979574322510608580213679034526019742012383626674032771812774493475205619298453653124342975557602664103446809843686492128207091364563567442088808645960428413878662181832507045396181013382955498005388270104629159223240122272346908920663226112935968658747943697895215026023292689496460962462150008906253926165691476831014961158777472161828775209728988678309388729946064288008209900994483955076405894157312816247565454234427912905578997622820343510179642194263262908413522816514958877783393651134831643986343403956587654818579687940691874817785895889048010513138400529139355044032439923443080999171591987161482666003274422148955018790304325204840044790594897605899537127204082212828384449384014959550463372691626278073713768771643015717036537256322371811829283116189618083295620773520149439487160085892278342770904401065167578487686389357054707706795164496560573010476634137610971100813306166598241570545254809645462441532975312758560450603923836565761176961496869194332830924887353410910049035308865889989331051007549312741839908548573244859910902136955219942070174443701898382147122114497398667877446008517910894718266634118796712724843842630478621817611770429134458392556749529213354242546267285404259546922254210522169921474070302722360536342764158127821582476657741627867108157882538821506415776484869988184932091611194432985915095317720012284241583698763105328888270634704226841125071069520715874783381444481402554720159164743063494979413740343169403288152421508506641503163561262409405946191578091763680897057261380010721783772289895813027975950336803073315465209965225782483506671255688928415756668087988718478334877071087821828286522629654590286378179987389530793075030946026415666783504633805216371309849419500239128913360413943394755040298126051087731686020903004105483181739557464497987137003474230895631901921239123762157292811159979679232382441740485013949173908158005751172587944324740398029624578009154243226895372172846221310306314907865583423367771461901985888518838387679443590841739670624315109854585246974834559261914967603942758895745954186841385725232679804839898822863001274616985959311663398760660693350933187520539439678368993290263669304856964280691840839489216648600857277419955839480687326257336277525350730561197251518703019906284035955869750254587371458058264832274797751325287334880237504291917473536858720673336012222484768894166065633666351254795537622337243661612304922636334593903384141283814354801049537528960662846467611909320702015515785261575018226818146117015970614671735028573051776076879156334221624682997478583256943943850758185986452736043883239167779110186840706267507401828175877227631660740547763496297238975504863163111374395052638719661445104828307027619028418600307004977014790622146943599963954773950193420732476555801607071977244841442790317059008755441346067500254302455380791300854463505428537497999301495589462956390153094705030843404749786915256621523297901304048246673355024954093093527116237778449292821139276563038860748524341318305329318843114045358638626363335642013927818406041050306101468053716757962405491146736821299991162081012226096200085204665678542181594032326597065236970086678453773612963219527258834057035201162174104052722407563891836803963785071376897652515154863910237572326602121751193105586510343701349409638023901868916665879577982377605320447836496689379543537693342596170063027984249024958687386226406579869786587146231050009003311434107935492726678128630016150934598375638622426540967907434510365366602490661602184567947115776760093846084841456512135161834487144558142890344060833120171359623975199798916539685621975342275571792715705061184035461342392568540771130251994681033773194011561283262425457535647228909855494853138589665203247628872082000109420873707929483197208442851244353336901764059270038404966011950486353826818200389103051391914987245585269419983720389699912567701825488564740225599917754343789083331504470960832339859139763232541486611201272193618469229267341602195064966533370518049161370191162849579036592395460988406301486236707494469434598366417675102713876736576143655779793206514679897277337622128806733302274026871362036215812027647674314984466917112550708674181465314458525832407974088154187272848587937206904951004971714385384923346477134008962307219178549746818074675309103446390739749677935893800263232705251868932103004293779123868849858052342837163492225383811175204204595893565642285992150099204779525628988898887240985931621518941593661884097507476849314324519160495226635602929592757410732952322109884405069759402436890374007546384773512444587145391323098711945614295665390378520743861749703214321197966390192446382264169915351823453041420376529486978783363494946123695939666112796924715786566152756547674979966775653187878066488713501759865598788105172941486797230306488931326331535734500415579954152577875497643939108154695574512934771048588536830616934754519495986473240755973760773155386185955492754556699289386252564948854933515159138897654618298020639320536971244605431596259864006584367062694944227489722763401655204250313406732083308458344993015915411714868945772539734289181589659557519436005181663658188261128349106871994313229788841741358669373355976061297118930073095902215734518029813919518205821297374628353746259543599970750283364469408029226450178831402080689060672751834712293575117574327795416719189736896435408212975613263182938869682230835975817796249912804567291771859335756357396606254044624021751324282857441327653971716535852164847323915779014616267391826782281518545600222512645729399583213397228039982474458915973451233186102426899343893876021389006728064777733315660969096750389560584685319984685317655773945408569825214935963620077552052578220559707314988192339582661422906070408967398395750510377743327921713827098364656923404175955083498099177743484823086542228908320653265167753730518596396404763379007380798670881154994721298303702958843487124038544917548979101123911766612731620900719667935805892289656932365672953135612587578412292722270751681544670815819526651361086414847139974817719839270242017136564611969764187391801013828035661324998469062315314070490181877704077705942089464048683258602897630432333773355523209028610911077674431446702451489121888532491307387315105862418497629773256772115190745481997057602607449105267803413330814980159434829207631742321554428212134315239737244748798140711659858096426509002354601737169083334651282744252431855725114789458179041450654928571570747512209373981941593220869333234384813114837873300906247774619501131145834683901939472751718217135988370466176693577358429097309635660372101122194977275635362665562872757953020675009677418838553383196453908229290340564812654607029657186791146478657776976529735696403782800574079641813245271953065538937456563973709110518876685772114859943437454144704758163018056483051593528235243873747829217689236568434901571502185942483615152111648341332994179853551765883113199196437627738719258240700213616881450507457873030024491701027750148125828404585940635405968137168161459519399111027124909340097000582780409395522250706725970527789382042242006051030508943862761943901255555638014197428237381114964662066705867358005475490039207734251588756372921541511432113263174499399889290105518099698461910084791878807784625557603758097286872782610536136137400390822427548118490071942491987068693518343868922535045741419682670323238183020656180668779572577534073132450324244299504573037441338959096348097408455816614864673010627427203229970350134071503297723985905306817039662344329222955476982897310023028493666841624038965178751683968396781005656058809984672282598938098278717171251973512673379198689654273134109713831477159976737697555906671231239784811257899984842914917854323745201374972667273434389984827604577393300836746083127289973793016100407220658816077771829274875918035100335170216975897900340027273040128232780914642819346663600646809388540626740442076124039310912015706883718008318335477088818159738778071189537312581209508920379543520783010555790627151229481703719188522995736165592414245302949377517079712186298433163460333021077059767614776402208267951843056922023678432145612919319611073720333494997666135860375352138828310166277632104464819484191946220250641169726195498880290756038358098387742921530288881957225969767854556573315336047550788934523070304026864960366151830544031636592853055913724119959240418127460253396000479590921215037766116917245815909806799864775224753609744424414545463108977557392958673511307049663151860886047142341715139531200027034304983687389573234960240573274986700517884798207778722849796266230588729748169139865595092635046408729668719956055433680129584240886361904012150021860209723519501440206322738042759375227216211062845662356539765683436106164534423553208168034495831626782835177340767065954108608315202408501098714157180543963045514089588090932032922815453057247803952215398285622167026669656934044394002102986256989037643878501586267061682770036439984277031392854188495964388693232060864805951498054351369510176160757307292258092477349498693457900785312078298586594533313492196082030182227440349371031661803204412030317379937329149177107706592593880075412099065403178795320132209792818649330933966410195088741892232780640228685705674748109936356291668828757334747225064915026550563210283441836899607842481562130379816407986687866094419884795715931690832529994520882353099185819726453358586608211456671747358483374163179647582672281525313944754149040665662512932986664197458715684633165389083442367341713390863345456868202647865259326259615964999081201197427350121876004880623024705081851118321367308157606405565034565659645127045305869376391667153575202157358535710461855095004998246089613381182443753075507313733779817083563628533719783018763669086283861908265149786141315019578807098729017325641638291906757533612009762574624002140187508674378933177744311283129751268424255262847438344962925780450311777383151750642673393617980535147347772805310908033241254715474980533334498612661446622760779213462742686067358260371260412435535651298137306085847358737581957460819880635268957045455036425035149190562901753938801811847670073968087043086066810980723738176864883086732719554981476526819573510081998380601996096012642266868101711263409738171843261243520904561477762355189150778170594726008669768477946328104378763996119686170853137740803969780722457383462895132259617614953726339232653849056236166022053252076154179088629966922857346447878000955155335406789626662049161129579834085275997542360478188602012765823305612139088433867482659186965091054732126895502847413499344682184377529703314454559311498082914866155357052068405051869323522540546808154367587500848778342047841770737817372633766644998575258571704457156524725122516821211747864768401022856995732777290719341593330388714870072656204708658816472708877996601705205458263401273658286057756955820197013981600827822960761369821188893715549130207303802168532361318348392332259075811483041909440914186453974579691254552738759891607018494165921642776300095281777524239486177259466401223158918950031735900183903508334315292978361139700647013998928571512484108206349825258594303933770844928602252978474421764521011286653925596941070671776453942394382644614189199789120090071322219258695963943603127395176750780887961249285555001560304079714903973998942777762865692220830217806630621288603746640372059971523816883548315269953564555194513679616144036542592796231987648168989787467285416696517226216884268209734552634135158907746838981345814226980992840849062600412060976358273359411149975159285825722379706865853116428288888460598629920126872772859068517539020682131088211465566060722326322089758333576966728985977497980687818972982607076429951712991114776454927141405016267907572356292755334602033114640209383705784732318664422036996175111293227438968049031973903413835094928158958563314530293399983304237018323022593445100533921215654921333216059059470775029094585577119639243260813414834150048707147203753144543300370341933411698314814391741665242330390369478494819513011602717107225045200713405436808964013757201079673375043273279049343303509751852382101129089695498065983923499065482940534145009774499513539889445227217873021224389509183557103775303438062315978060836503263602482908077609003135120615496103289192235639972358437661676675595541904292229624582582258523492643972493170456870102975791216730116763219460105097147808183342148868174563350744599494382265819826990354550283451402916445364670017552132115807243165723549633196956415832935678128529216811310949262870886792480847985063463744388360151402583553320371022779089712650828101935399328250983522163316931987139768031092712107279016689479999360660416348566581262254826476950856396359600914659276886960722073053275200522272344330766462504798007682677176579175837946625811449807750684115255685056638741481349740478011639976467615351256077925834615172424611304060053940296611959604401530477737244718660734490492161608417240622800740918511083704960408416322853364903700625513801626392150503577529914933123989715870094619921200731031935341846119201679695032647195891238931204196492843289734448967635804737274230666318557982914312372532048619986637886881530919437416196540921476555977125381631997331402767227012852598005197364368512086373835366455568135694232832592293767056435630277436554923064161563649899794809370926209202388226497009712836239242903858400036078694347691743247348614122671148415864168288842839314727635187568447704628026101996275661058963081376730022362926732119043852542657380215891575613073719976501135618856110995743154775129986441305162563961526405723646830595769969956422098027098309717555278190182540465799746311509420300404150360629933463055022553538507407903042399317827502789736735571783315927654152086365300456646924801229203775258541618449258660703493362671939408485475476833105737007708533990604037949896377339936032607061562393317163624807363188397113484107961738045882185646716069088557808555363658531691590035431002294722139234750291168330842621371769907007713325351792353164916052496302381899983044304920699627850231004268606317316624835754099647585212860016682312305224033826823751448745596224778141838430550809320185668787868223362313229595975703785787540344064051012763189041922801227765988160566090675515613913742460967468110507887711748408558259831770423083363821289367263619263753158440212130766332218423639904467076724987916591033126103619453891393980726174714743155731824826542327075559730208522809366282526975536844536030148574194285660543723789347643453608094915260704671027537172306558835361557974484772171246078489017599530180990254816912993198184610291832040374500112797192138300831659102225861269545371073208843636618278609050873530635604835975051587756782298833773026470180518004397808697149850295080085252501012210757428063238314746295262823086404335986125356740754840475127559332175573713062058707143799639985251292382198768830902944448353202199235517081424254741361547155238784303086976484704728131671616379693447297685463932636996807565136465239529346693167439919970898211413980516627741743434467271857616989167337778015172593112552333884764488942469373948522233182372474526115576120588090052376627666967261775378385513909090980391754953831044831941584330733897221759685977751095276080650727250385330243012492291847727807301521000712476031598884704823297518643690254127979878815943331155409586405875405980606145701386988207736284109657187182412613538865834242293788785098605756614835805596263501979498429763155713120104505881060349646133381039041363613949505666168160907047615666600580657653626626795573088466788486852876329508058348699378347051613819392674434260577746497728632301325489802938188948908420039083607775772537513128758455323743790275095008580561330479707335587933775706242241139917726816764802409290685975528642785724015352399058998554466147791737990489054334984333450963306595447712982624221192958889160377994233639675083948047472689348800725466872667292270039260991530450430434270063066118290652822569677766294300759977839588963752037227039835721336606051007604325571804644445453391083726537253774165944600033265691330895767215252232892894156354206209289705645357677536664578775315282004305589563589348532315151129839125617673863707884122847687466374749637598432815634374399750099656151119968422233161588877615970152039341991502142533851044622145095918189972446539833536950148155477905472047966813204670000215980585639850494655642016179823703343202924249380925007287765804524681085421377658817556531733953286320378984907572332105390780874388348413212217419174163357403902821055495879583804363308486013326646894391039065979092092610931962748796803455925524015044522798665226734212947531217529594305331445490027730027663189616085628784753391677755326536522804048131271962988077739924336257385115383400628965400596782008584740098261239153396685806328942281654155031256680560914768145978883550319892073022504023245164089965945016184256121031649003940043403530926027274578637449288646636644136143100170475997110269423371541085706802795997472671003780705808627242227969724356424803176160398790550853687983313125939353584096032987442197191849344421839706613928077532859209375932198017595736246694439644971727021224510688497830252128403356166137328986685838873954866738220265423547643836297177592515630606149550458532203750713933607682966203649340911689053707347133025392838115704544463305779289681900347038974202417835518568665753293688474890332460741605247090571741185666121068817184012135042391637439525723656616500735909015836632798764273817064325964469371751743382847769549619898732385094530132558526049760986124935872819096272600103168857972595783701307367074113265544546002565273612863508300872073082894848235343532202796476877068191293587201390454057363832717830134075439420678689678671423722146595527175905246437160509931643255660825370696365151344496574114966660844236578497117267911398652514226668047470172506950263447389068979833091013163515512756769553328916312645626682468388482453232990498583719013107625522151523658563054976327798264344502057858452339778310664026732467758416474480716328654392506278700706084972086160437142960861296123013459320345342157662719011137824291661320003989373998769380036087763652444831743980792022868199148600477320633287158826738721676586333851557490100178935509464805242562305553595915755559495966085764814274739814411948796174835304666516648414450963685346329953346661090095097503912768996129037409053505105684185440929749044287613293895712560588532519452679170496597735122784902176941964851384101334311078989639386915862795216133210180788845034046169004529584949130975614538977340411582538691824209386957372205002299221836811943433066900688086333179506481404112799783776200693621809099913531237403624256423960512962919163058867971764620049960586466917296376221978186086247879228156678440181869234493166788034354524236231798643941576619005052435582118498450505710726711875304261182248673432538010451263148770483152244018945233654797055877552766411522899169296387084787445490720629837168283309420691865437156856798562998758450466789250289922490742327079876565770618852232390729349158474503364871276043315709486616000024987996721715561465480307543410333813198757812745835536114609264757580803062674423955936772327480706397431736872792447833212372310456185041321801912374515643093954043491224671006026076842629983030568116728456235970336772677130189091468518004945100997746470246300907263052893871606535693488647869657294642312755232726486671430082138554650733613070777559103584647129171331118007520770543408967730106969947935421006492677037337833059936434164207938707812140224768669423914642379790843092406715591042025814073731431082814509419031521227412434985144684590512155994298064458345476412735042106293874375936370708044174684686899284112113218688487141892314922507934113137808211420577690422479126682815951882275157716175085592115357439189262914134502469822812262095342010287584311760190624912547842526411105066832805934517107327041601546590480243677257220154968052490353870758991945779782062872956638686738219742438296183702814923514777824606958413730368548726969952678483410354141021033538815717433541995882363655925518075059193561156567053382221746263209093647085563462151233680802481524907726088646525481571015348959196609738514760194100681590171626150177578228961879074338960770750830118913595521392950087690710760257604403388745337662309259366652886374720312258542180714263642013399821676362294802578982263587919287333016041840800427774222018968396164460400643073483596961364543199340338726680976217103406189226424172302990864802038839557686004467266613109822888940097299924454202879878929136695383663688282562919611284718823304515504852602557745696185635012652543976045603114591792878888034507319199426890167052757456036532246603424778752083390338013159926514674718604106821232268527978587876714680775347749780539350792927641536050883970306376444022289343146639137796433109069229706476274800079668392469227674470413283666180312076362904212671955674962458003359869541768047863356684142439888235814636604004570604315346024542982000688468982977272257803751125004144964751721095550765557548887221446454820438540853170373395204962382155936743672372352084114972723137446236552956354400601274341046939512892015989751369882406262817998400578030164474251616935325944067471393656422712970196044397237381809642603904194627336591618969704401025054192597693006396440135549008174287660810659696826944790999921700511632485666208150918683492196560618732541238401790928208236350713926106015476313760921060401425412175295981184371564196351760699775089744094152192466357495630276766383304207901133934973121407830769052996878152494188616464252517338086043791351656492600077222746938892792481686124247050271459707525506125061237114062802661895217575309118980094138712977105862842554200917125643503044614965387079211034028416514353975304118003416153882489360629535782579452046315677282271190968268382681793265389287786960335806855558946400152266644980425294972775779339391052371031134893464959289107181874816221548904657132676876430955775781681975423342829890593911253410233518054581973678451858352445985496603525703501484578222868890115641199631233968052948630781447686375218035412528200825287284312601475056376627606681033945049381675418586742643138410144939935097624120200461271374865205353254220864421980899603341469032349668617146264678168897770004414748000448467762778370575915993776530543563694692217361192611803849260851684197764367826503064020286910137590812972345796099847375718779756272135185660028375809276263466041437508731912795410011611532757100939121178226497089427719402419690180905772816156467155095276900967589333186965161905570442947933153076292703273683074627907650122899418356592352688961786374355486497391530790228750137361138653815500184798526167248331966146393421540200293525440139207858363347931234309020755375846028371938825484185532043696358678443444533498139379734455897434056959002541883364636126591035962488099720958974115224800621446346120880029895607619969266254756622058261661639415501865078117006700589310452107648409532811491597785523020413501670264764216609378930710572986864105362498956501317901713967112936133033945389317731886440450068078239496908215518272205999423536628776301569701431484159428740631866099747097196563596113570366672774787165794173228031976563894999637666221567817877866409064707450604828383056728785763901533521741893319099231085557744471325951282094225486779320474072797819784040092980825785719827412683652554412047381905250757747681147595919678049632476051869403813075905344528371450806030846103007202752948208188585263095713354386174071594714283756196480926443885498447091160636544741205380471320436693695193728698934855453186866160033574115207669818665750983383164162489456619756434788051609153335681212224202967447178262936983187604900544563156570820172457278863756681708030532937957581953707476634786938302792523261496634756641042834896512031032763789012631104503097575459780368609721505608587944190728665036183640419815870166372619478626946167609082738542263505228942520272621694844715441439694505935249871938058320564146771816007917977648907846318092598099306471446382915886084943011432816611661901586809847514788631574364941687237775702260245497159164067806144640240108552876440347657216940667379446161705348439875199218631458558816520565388766724515672520799197160966363101008030732787939972620877557775028105923271448960255598587130247399892072150311221198698631462753652410853852321341694972321572392523749277701613629771169742982258435640001255438848350286867466753569827564919864143685566567874604002606818777016372348207760953619524107298013274268995300010148697693721664285913375903523524769232689364991488514622993863789599651407416854608919584412103246655109756574332518425079170459642881897373426451925327779775805111382486616264959598736810936747582468731821645122105130418250040474484440466947189240715569630057719448478250372099202831082239860271999727261780993914938711103716574745835221357010738594324790113122566785660696856111190776746485401107848468015451571596642146972928683585485197712192496767451261554907656113302789741969645205095477341051417573501309890020333829959111874669599536844612055773725283813557978391418103341010600870532001552145282330579056131016446047934889949838052250193881783598302022522530121644679105494858800880477528488783939097548147752472698668148115076702666860893942810950258486018713228957341710508622514794377634710571396993456897587301346346812571303907119347566628358613039494252422099284853695816059524161338996779618172243352269903974722213116189655301888912232693069352795041826801520120492229782795049357456863341761111722675499706678683751841447254741186897107881315751838353793516211902800358120865870056951564387951161403344313827096700343784221868643543749663190562869096138866259279268978106499685768931200043891673722006939913238510937185857705855553506324873663201112568262356598378005520285005581928455035703232244927976175193125360529476788262677580036912699293505413234405386664671846644550407761244642203186995400613153278878467128708688557159157647446697098066219349771890847143539142400928656382576111201861439854410234570375722113496804243143386351377104162752319417704576469486931827685446217235935530923275826450602654918126223788420300169922118172690278656601260097167669168060178872641301701927342449540934272500436898118164879637579986107578234232903000989874926132293953689963753138595665227469249680849226775275989249158777755289889982027852051364948332450845871147476667083107211413428810444556322364769592399867150669088142076110347253338940094341735888494398788641177153165342298540712349281297222756016819606376728868266112193826027806104009534160126655066726117040424311541638977249332992876214220745478345476624932118947868693885859509425942798791096302493281720166385088038329714571872125555031256524080347631227925482006703699155855396375534661540359196580577331718340373599708205971063486108854139473635374314029184483240175010048922893509795804034569612805786686054063585741607925707557244961290520705599946132446176720958073340242695268969299004796221671931494692704682506212625052659380146544382201515404926192837546586795712514479951321374505746943313712097634105853991689612152167446053091654020080676607322477863838310636490784397415417216747380691253172220670547883411612831681966412397391965585268328405483643058100950838553549006346480317215979897648009612717595406439589469408566065696771634114054265734231769429570505978056841884895815436135620699861063005493018208169934143614978425679490296634044364454665564019753606844560071806571867853545746014856494000829818519932229416699318266445738897248713695826449610659088732307917174432892884331054086686721030760306582105387711286799834211819210649612908386712474878390116969763572204430081774937397996407359218279073948677948562288141899182672523625277128565524956197573032851919138241623073679954646833595338473903308240180540790812163480933287847735854068913432429620893643855370450717270662459609864463894815752496249231681275073758195683299766032486047304501557871656401846456982792725843932032061074046608858133029263933851167770540643525431627730312705847205908947271142049011181399997434116554071709510209092877344636076796205239310146541056192236901220526769284726775928195749125352235498233955463636290080333037068122924892617927406301340412136908494455608729045192450002329719758271546036279262163226376702014539118163686274936852856731015325840862238164455768123862362596853737173944251708377628191540358868246034907095953691886574763263637443038786254808371996926932198742840510315427849506858015292244499471682668018432464318959474303632782884443253676775709306047822565766208551740465794065699475777882702352717030990077157495970261272227888221078834727323814824889790118020238681717164454314442118052055635771713578766750006112231732771980745475240944556275609679785760931838993554014542519748595186932271964818171262385533982471880406540695406317042436221214702602464299243163422004342621888362106632171197560427352589955441677553030632611352026944220084648723871101390868646952735276636711425586250717205390361962382099763629095564773862149210034666279302774818233636031498923169665634239517072118372821329423300133998625676842547133853326712332965049330451747489693929825318332492742559709169850039847321932308486122523023151284088939053254152827411798633432189246408365588463460963517190195949706596969922068257885004515220811596850619562330298473997748313622339319645809118525373866879120457587402030723719774604655548771145557047252324592561627964302632720753149910815592665285260621611763149599272463079748286094791009037083490504473467457801295397522206164645511431262766805835626383396381849264927631362883255025223212009366706842768720860000997679027191217126525547187127637729037959520487589980390184392502612360335948071056912573928876655875941488322682166094501726289616746611189262575361600947898927483044259797991201971255477407070347033087195864556007913721502727248364126659299537804971978649043462844634160596706002371373825195360069697996169397026612497884061806664893817501033533532221846941308941796818558300662705831080849895859480066419531259208138831662150499445934234940804386367530548012962918191800604695169073492178241394701302903146857308948857586561219012592175957615518613744010074240903550831628559207767937842900310883110894046082735388651832977594154087952495595973752781427286179462554447774423174208010445623922560884991073491495257521311721634138252555839392692545178146244764946383553733820930285974088207094901081484546192627674860816253048417550869237213044149753287771555143509815743343602224314216095206802993974467968973901965727044265405582901420451521798312232659517680451189479161878902632291595314980035664901919083482371761952779580102015009353622944074146142455873359513600972398732362936727855561853456253782096503755515594328506602004112720371914969924969973801531591918083834252850217043159803908042494165951985398200995085717059976984858360380315664736902423692110024964187668883037498151261895047972079223511498012159421988539904566731285664846705329175360130061779345204640894915737753788333392702925931096810455040862023493984522687753030471939550979936871213553429678687588905886759829542136961923224378181283708231794862257235342101295666069870012975594510375094266524123417023772875482956970225901150804935404976723845860181979684344177665885456790245153356347257826622679060434923588955145068776718416588629656846893430142782036820184109801713678651725763348448527635278622392664713830478602918183157460750610708865830814072495328788006913165789447952157067094768896567312689249878556923821888330578181247813668646995041842213552348651566427660954842783841840958273592781929719813019327553533066772670219121180029609430510005009175492253022861299271533326458869091437272798309740631177995184989034483880977992646019889631759674212593728719953824964986966666481128054386334296083137961777887201285005269509294081411334021270957154712777093889629754296762327015693987944661352019543161308389859194093930972334464074854484974198559024036035631391089061484572291404721449097879122888028879331900037960862104082204023963307171540374051738099011933623704459260625221330573664120225304357920165570089005035012142591826635352671255229483545363461382544294842771801374813755193287446216446764856127620534077815379822552309250869952405956391414975822216522574381839212921635719363243993002040294100136859256133365635499011215180955575225594139122758147038305197181421800784176634924507484847591646428034205240926134964916653540363294959958100371347923109874919568277744210005700891465432398824491979367014928129464540699272306279950479787580087138115388816377778335914467358103486615692016819965018760140320791205404001456866448143124633369764106016438825360729988465960883668135600396131742417243344146034233066102971483452265041967634998588215343877562375779924920141103495484703393985423801205708261812292184364608497854689438232817657044195526200374499405406884262520491867080258645755302451920834376100540087061360221189968657179557872516091947004434047987438564979698987416019245487371204943214838797194083481935802765097653082252418151778103508921501371234281372104438671401631638676849191372493329158109872698265529699419310016013596125201012085275689263565316840716316455521085314258988758692168338237509726721694276893372287200322069368387152668542629052607382566985579793011646519343975604055455881471596844014190732761941169305403996445922474828806175371762218679908892928286705214317615839450016640268546047348852144359866937774641591559978741834389420815485137652849689553319518499090890431790866122986681995512139313928789774454266010934672625438443957076327444697318618762757622232532239591651491297437670160936648470348555681493852334486107069321736611746757402339283550563887279424182617619217582439219651580096317102281352800885820955186342865498962321703400195978239895683434086687951631638881076335944535646399548047675139200230754562450035469312101206770762103451899543963833230591050990999732827808877333607909864301651151555570860714466948649455585709263094094819299500140207910637521438797906188004059787475374317378185792194206547949595973090140797265635882896720311811150788628780124797791407070166120127479076911730125773442337498381540018893769823983288421099354069071030637253680959457476194764922523851120296933298647547876808371685285305743884599843396872055059017445887168484344406519677134015997509629456508815037024981351518858486617518260951785967472049390962241253329679715471086242294178364417213311346811636325627613034485682966679792407499364010642263440207859808326487457740758358083509758056799962644627009492672489774672837311754367741242796518551363153302696621501152943453109455088914559374370422799060204719786264195975685552456994776081229672125388000326134238833161020146367860831405280446309853860499679445542242677264259810315784023619009593590294807188560909331240658135046442679915287683910599421849433802412162261010706620158550402653223370117800220398941393573721128035559781354057870162220634791224041666282759396086350721449779380390046457398688761178754200873364238667979520541683298907302083904768794993886690591214017323742762854336232398524617010852467748306793278744662019667121290091959537315686127983709084728278576519055484923658853044921983386203395311700714141664020801873202849387023245846478780839342155396425969965738688761301292116893973634281382248169675104510818147432148671207990228464663350698089086295548176075733026884175895015603180670847790445566776590898120482971378611165419595760972123968882098900355767438429331391077931414655438571171170309514143394315779055129221674564679339185079461820682663425547064019487456448141762761182200308481387498312384335045680843614426920458504102082100120644527082650660334768705129046452741641465586843786978126759421393486223818568310356707832630054876155485668212289448987329042373572600565338943619245964647243363683760084372837781194611871163076941048510089003499361587698964688660949395957914718182378418553956698524949673260221442533591297573905633027840238981497532651387723081148794107236706136004529705141356689261611976902988994750414362989524024151354911655657772355430914305218912279532091528763449828251980031723309183514324662315035930893698473386300355728102843722753539441710277931466148266966441417082456283363068112868635036134401124288572658371374850802576783938481259055483941597824654813123980781939138016549957555242416713384021475516676146896076559694433521113086914054870673781784862320424276162007622545632622766318622137733256355210413382729884727098884798781717674085986038418285048798246151135284644699793824487204542533836182735810345322186601693315089730920285911944018391685252053424535835686080665977166215114151150309554594224931636844529722560463948476797398811718705526110768832659780306767032614096050094419990127326443739442000929878915881081907915768719909804958697609976288012353345331489139023364925752374388272026047505526186522805593145368953739949245890276070044037607327183574595385786260872116398230043984847179920858228566008367340798612863321585975250704503834150730438801175025363631659202490606777725343124602345032432503991366755156082464579261900896891699191214213149537065419825983760532819517556880987469477930425080160731295887344308729637088320343669950223893312016321785100341872226604935453805980634531729451499820458521381811960518596085007898089123480424334387764191406924721627544614125792794096909180901804957447273516946500441094413952261754848905354057394625330776229123847234932818540824365368836010630710850595053834079714540041837823897084699809205382283854733465216891935191513755703034810897877554110741402175195782371400392880655600137007203347167106523829536310429908909344351288510548102888328306903752105811062316925472327204851225713613365373421018407570583512820247890281205867300049668408041900062283766948248470730269632847581192761807649824301426171070372140709048978736098452170886725084596077830426315209816156051836400618709330090085149120679162013853463565186962590059201110864996926096540779580499436153785409264044586537904658692360911241547494240689357666782282979971131249585798380578935865181643900872921422940560126822111568351664679868800109543484569985675196509501735783727465836278031501750580473513331063641943436686567400649485486079838240797720629470162139211827633720195059797074356791783522150101731053697118912216150560732790259442451646267944986725639031662693219273509680557628383923378521661535955000727965892845658258495560233646668201220513390032448533007392992561688872107023727014587585106063950173511251556093640039528804323228063764361414827110086515806303826165946852172684314631322463996812158782105436647749222444827968238414216045847440251651833202447978682697222306910561359809347752892559757687499317246956659511760664773842973198873582114615425836780950056254877962641139828062057324505888587514713311316694933903882410613633304436547470281897176530141275358499866908849092707078084991735900467937234349145138869088612211405472630406237236598333361353476595125595166879824288963399998981922115909349319099214126254680166020890689577248496268450501406718086139656230509701589837083814431649792481173992930921276274241654451963019762454641602199440945665767588896232703702477578667784570882266910348413736751491163481817024883323635090513512415945154157167857190692650473189706927212994271273759588069937163959860554353655837109971864341650051166327689112221803452602556241111145096433524008276938220973664120351812442469872395995026995967397533207005610888357250991311270648258024579981518874161833012581779607339578894644537714684958749072604894103538306215544897894305394258782512140550987830515885225643216683534229078587694789026745103672801603777273142956255900529111270818099437745870657189258929398708925534823176139300272314910894503330603416989211288516761631556718153586344273582667395329549057467536032487729827927198835234753272861356716343975566237944204804715884208712123993502282011112930745357957991792321601008701841985429059111544945768034861117940231447834862241452431575295654011529657337761443918560427128366808597449063763264320293709104123784865688845140542683200351470873853285076651779647910166419223295622681755973345850011274951031325235174042843165084959050451499692896903695613634170199282435192107143888970904292647903983327076415082070100414448289009191600714716620921923828234269502321774007869864475050091131260024219386948163589368438660268576260587944153132612749872343072497043651554213929689896891682909441441614198668967549955213505995108355605630790905792192441274118298163491488071611536485582555741762498351476840404604480453380181267984805893559262383093337341774634861323622686757543171428766493296504412145535311018456107131542037343667812227493564549323153801778005606501945211619181628288978879255599186756532090461445150832802884275577544872336216102789593635677456964049603799809764176165215652663760933941938032395773200386871602003828472623007620771599069576289717494104624318739065548625157525800072179121536530696582400352651657553880899868768663312631898517316941379733657735302725140237437674382279196089249368409260749467099501252126549649500188281984970172778121742429294123889824252699116085605612551018941548612186893094748650327373368554760844699179302474665068180037402440624186156416691532623054276086154458466432692370524011834002135597775183523358277401417814543532239233578044268243690482403778225088209884054125217342735286707324092748732722193317123048710014900807682131965596446148060400291187166643432637533229651392514037622521484576662194703958040041666779756074812668482644038794672814940263971039114239060671292904500407343835634731552971516239813902215978568706475709674551437398395821592571416222833712904579250585829149311996935932981295299065575161445323624387609347306368924461195517458937072506508445243320759898367180485146495158960809233788186407035670155683613078558914086108179286014148331785470749335293076597182032054855370821571236113876303738505265079491967486990808298978916173610161695368398319944759578206327011332525082810384155395699314018154730654882730598319415107695041181329867824269518387054199491974582291224932008112425305378544237172097479840227306797241226185405678693142070977568876343419606420601440854207338203161735996094106083210114304312815073535019701379415716662361626272879710751145469172117992926110465393264197432497897005396055806240913216379461698080582087181633349576734753047661795334926381051641042801358094765490127360163313773505408887027869753545293532344730192660509616829054759533188658706163063543922115573251916206249939119675410293788058563921547555344805193864517544354053013191578357959796491474182865940298154848991499399689014075581491988178792458431084828881317685615919472155804202059351388601267194857292599786527862993210032269083327875727639000655748747481330815184324028530857064745105049823352399244671204279156600187647123594827235214680432219250454093550464526960564858818727521214694057046197915288768507517159206556738877673320654485273811521781089014941913152623471742953222648332648009632856312258139799016590672093926017405028107904689738118158077271377778277854282546833990032317000849462371411379057657430736285890847810903884159210217502145374632316908060258973466537017804369079535992552331646855288723439219868635570485244823612946629460708797773390651368363265615002994584293000703306939684754729608899814293258007165217545847249637398520559178615084617379934568006652401143885393964584491292972161012519754989465917533852611897690580204362217830626359495856176228012748637193900468739054478427042855613086857965197210835891387707650813210852419388107593699393722956276024024321012176681589390770578962356102219754950838798617181729068876405050897730659967982874013264582247143036376813768160501785967762765830642499553699619261602091257060073306681925694381577645070229248047428357021801448158174996424727415073146485292815060752099801357047004319072253356237291506744562967573261148380759331209656061956069491124359092512734141556008375017820478116232578336414718363405168713025555033534193192073965447814735141381521613178483593272422236975197122890914923777771276629312299265980578920427813420671991933226460616635322305797394302241966804629088950276573920708226820059388019766234544626301306397467369021391574090479324410563854932728257504099075047825667837411623867128237589571580374794220855070335347020425120870822098984320899271880262590017761904846740059775145128238231460153985349965452015933223409370353302437414180749330787672273059123422447814256663279613008494997067479016899886504192237353248566843243702471656279777613577321534290766889391014577737111200789732277409497671205704664633552611602762169464501686249953112239109111155164317387698762258757407085441790048687825691657172022864002152420491647749458997286770518698630065803582283074156296408530614551078045509785123895431344961335184922686506181408816451720428571823427944020968914826766726224576307918325002055712393299988101527129051424522759338051095716213092899547136160297121809261603554958028335570383220868560036952042170342825586022325943256188200028927280103209035414217038333625259832752643643044984088164700667220907115618574490850731823414066049944866409246072499144180690139282274090041982821497955747357231710521076575518542524664137710963289496844331243083014294851557320262507644794309674506502822850053328804801512422066265500851051419477485072316783876528848515640820381310152021694376394024162536865604991566606158474290106643601452521349094634453793290607511948444322613638136338893184171292315585698576398644710112882053082486774456413102597668072537384338109574548968000472783396487608011500789708674885529488315957997819224809209535191912729014004536468108654879088125257292075170399313664300499933631005317504924544073927648737187472314225203949217953196304359445944230792711133027134235552022564462365913995456919422849365747423156274905546507963950083460688543262453649159439986945674030273921988708079087654297426654731345163822520578207542681954858888631907587481871518585906581762544850740796466062506810582689578502767206750388775529860632362350106423236737163925920248717411204171342136227811819460236836136655702420176011046774954151559454058075861306092596962597652324045419102087922657797767318448541288497304201895356555804327269200570082295292877543146499451905041853190785336802254812416046141170010506183305720183328095606404008064946048077818121237841827520259261874107504781116324338245619631281000457650442139316436318818406454091424247185837820573025929916421980510496951935713329398121326765357938590469758661444824018697607304064286101828112133911404444117038484198426984341520919364737101212811607113290828194334481548614386563811992102108950489166077138918949576608037464259448608082121865571663279638236764069601650861402935034353991761277938142718098418765863634621312385473019417338665998810302719371543419833684415650417760665531121894121555525650345329221742525505299322760636706807955575522878803637759846250903526717090038208395983545752122899618395672190994378615212117201005339041094425778872562144564942028016671798479262543869119304695502308182676536145443652922552335728910935702814970120816440658379055594863490292808167722676388440650886593374378138070299528729909856866434208447843739672573253757244098038673141752276483934700251228478028973715006384838697694470369849000909408162837475327284583967670492955369469168902559604410226489229594661845808755965548432584431717888319391709169608450126102209150120324461704748171944783501468923389410357074220890736281297794816581882279737127770692402522237421354100489017011731426413378269264653783320463690758181793144917535325764943223804075870722673592951409492141460616690765217235499436214132744617590267900300877219857575898197035539391125149216083984276932300208473066450482469792203952206622776240614847757307058712822587978270552096888840542990926816106394844194923149364865735430217784014856955971906836722135679341725323785571468856695969558676135765399388062769851344249388959274622121972087734863549051577886373003483623164673162389813491117971580803959473192135626465623508011607050472079281910017331386149023037394403567384306684986632534954683529389233978546506506907271701811192285802113822977372735220850276341271852700048437590551885581683318357417122384342954639711352014888389719267539581649147398896788060644347366331195193416589926758708657315176015044548818486562034106331984365905933121191481971795460047506249057056478215324965826438125692423758951701749357291190434331269363827321158434740668925772425830577486745804898800462544194472810208284479176850626264460015448783487128605914806645236970449866615387594846371799834435416111952317793418228618055400834520001794670822151728860250478740665117189745471125502684431623500751762251138320536490949039048669271592947848526406070427810616998353897184534814187695354370578229590152343195934350696469109620997286008659666945773722580293534795129559566936322983908385372326722335846204083920609057949055919183773991038424195696183037778135847919777867734384843597503712638976411334238811038089864869301950097277380393882963433143725268126633088981085666087567344854902589792053719295210962551151042202940041970779150602070685679686588781557835925428913502084204014734583684472162374996121133634974853022627133170078742656539700880707339887436914496282106120191117033571521690060958239869924225964805226906153070533158197481136282372845351190843297892734303047812394496282840796725962413998264967867680922849308912222674005055552529897787185858976536951886731772446685745084419641948440473135687230186214315679546036302999018179656695530895307254493949752895297508924876894531717228024939522311715824353785295518960724658609625645501755002700550645271822923004247529007071771866013959525905597834767132483042110014992976514964310409816605504262025981918299753450045139523944201843629374049176058186670336143137353795234206422649746429357636476897113544742089122548428530852257298236623200605623530184039656738435116162206358569625847794417298304922496706882101624576114879856505229969100553555534628231332691649635455291241902229005795043991684053667221224075688594908064587645877263418815885630663642131304946030679277792047525339762716663482539931029429662362262808060097762419461254742847388415411461208878546554745551757268868100863009037117020647942158267645140765247292771948281816261180972710930898877304555406045966655056386837649964784579360499433697523659053114288618556880042698811590734393211427158065502971257999733735885278575028861485336063418205021229745022305321044270955474954637019674324788049437818809726482055982203633526115543822659683014628431710326974813590328272612485387104531436701531375152630689823401801665374168582341878106099143329644901963016217774975895823342353917749336976048569017499247182757950694874421245976802047469250496523043587413890179473787031429378713715165380951099005876482245059487523219482398893831924376506051586748824841964817962201550518763476935789999650793245645159206662017338721247657250156115952895063861587212301545071675998743422657093468422860925464364448373681651541110671304493439362685135648486356579670072306043263255894550085745781971437012129735328856346089983338604480890426433578358174020829048761125098110021789167875831870642418825113581608153501108570337048058672465697203596013071920252695017843237245995030104671007934414118241569255581406523062030825551781322658968124720024740852731484092822722513732580502635220195950163433069772415910132794768691548467045733712314307259990037663822501805179013226636252460105261995847105882199861180457992266088778508257692157830812144935184771850718203107220830920239194624895699348377093622939723172875395828378223027576465202634575321207630233751770146599359159295807804562998799292057933543907534836856138841831797861819075745489911170367339313313931277347405504809043778959141353392551307608362341014452734599235414843356708826254909474499424719237748334962590099672335061884023144065847499662723506328315731337415718246401361925592985335074861967146073675626862651746954855602926645291577105248775494198895592169619638354631267895954155573994523113231250397917038966872978241910849532629298936087236171559593145784068245140540414804002405940712443461131036975782773484495357510566961248422380913958280387210647577411662413178726476433015048750304948903461677620815985377148580983956345302490432679863054089134186635065330744505755252549610023020455102469155048530746847846213284325744540965992852036362519705767196135155209051322565968432551105666073633195393666626076193208613605677135570030053176900821422498646560370549559118519268141762379662176614900696690245361669948280447449647027941973379464456329564471945609371244816296292967028595745824996196113583351222099562190407925979160090754015406599265679802998889394448388872514513231291875872739757287753818095742989132011862454594989822405232561567417680502853982207410703751514548208221979269665444530139669579740656866982121905735647496141267062209044603936324445862039541193095259777949842128253843451542069559974414841556767017887726636421559143608670181444304305570171977271970796599270129696031411453582201496678392494130305847921080753268917756183586715040708696140294912719254967148482636588267801935396166736420054392109652496338702319046588687006305062028995102176147664238592126181678630226048786348542215729080330147298935814780666941840392915749139907570280462867971439721077748397087537172250697998654284762301337041932707954885752135378863758279515875205770382456358085250217883536557584769812909213898821322838448348066208232619929681569506551008861450525953889615900828669766491186734262788613844566354365921149147306428630221088301669703904670507583133603353410472839337655213651658541797178420580040538807303581778045391769958132729465620941781269831011437270295795116783947152167020817860122347411541865430734903877664205362869881690609535301110259562097906180931049524045299057907956144417312977632066316659803701823189103450746908634990456939530830540019483651034060625389438400298531902354910131308511483049846924699188532325795366258704330144575519391519303872837322860861307899502231263130302269460919577073389613880329573211460825016391481484063614907611706186080235157026675769817652515800559889361352457677533988894415273203834778287774388602112412643174594953000162497074063375494640253060505925663414353137340266176874221380787048017392990122666715079196461044955245382176670367656903559100971458986240142770494463371348554026253905881397410011804822714656833823487497748325355182825533352870949941395478668434939067896758448233388246326083876798966221849115852789592218562787757304563426201905265198155138233691141596080416787317628133934837940466636026872532935454986349225163401413324912519405059551989436751374442510432136625007812947697144517134931564332216273457191572450006468248809745362758547056156095032147868433462277010980608619487141776020540635274733546872813798384901732385406463616286490901681521421752628851365068192688741611464913428550998037618435546317302666860359368267864752733881711464990269872349144499481474653553567523023325066849627288607584814938173144517821756159585499353470346438200089251766416158554169387275143553731307517054914867566409175938799953052856219657724390346905733075380152563032074459306472488412194615245026790995054911836476519191779199777631196336969694295811320732751659680251084793020630852367960860946941585536509407531515399246807434321695935276940638718402145816325694762456143330212695026533341934497811100897474480365958887628845608974047767913915861861848894004728933876950736940992547935319948269534437207836213683753267599806858432791347126966727761026048331671157479818922821974918915066964142495763332663279261726692459842934467439852655472823888546106812798290812099120983440298001436925732611865714208384181379448921737757725456458665418087009856657361244985010527345212609434997313481787623597814546907477591296782465180414001004075634088499126275948097870804035948178252910885838029870047604191610219680577868462421434185267377143453552408910366061671893878759014685183390516350610989600767425019922108442523847203530853953044142309610192737440102586446453333132473966268699874513456388831728135040803635061809617705640966572846849922454108953124018960713333297186646610714070163614804610055524591144917285711645161162538709999491591530853854508002374945904684779893392150677269275222494192413878251626792586031537840413818957997902972287697964214693300979966093856990622203065730811327566189147414535411596537126694982046333094256525910208058181873558481999229020413685616823208236006261973799126770778401366658880059691612972025571368570811295208883580465484363714817012667231916098405080354730744001464299722041178243210413086050450748198162572997875919786325001549594035742207022213934759679439382765230431119534726649271573680579123012293563646030711818601322141829900328617562778958122668199869594186240956829237439819665521211105246368429074671897773507969552612245612591037405650372696956543999141799174865095749508468049099611307501280504472730784273463619010346596812626144847324654186382551233662365230526269116467830813759124586685068925131695853492329288250727889091025492440660293014609658439054547508463118096085053491755550935116193768218153277309848316368241355947014535669030748503300669902155021973880357104063226289372243391940492489871699089450114864849307704333884702837100814988838973340342466900308399351706902505597130079025983422085338855800814711526279517902232243586397587702651612635606822988095438856275591665740248867486046812341577691101631237420145109712754428822742586230757070826833942947267901691440541589238029537800348162914049198761549503983921111172881579319558667662538967304422879518063481027122217464521184732181158840379525695139247877291554936695973907126850388348611067685989852815039491783385583759041320350470398604040840590107254035884817671647758905897291502005234574166104035019434860274496187703672637841554829316275436178062133916067120996577716407100911659836183192378951592841954167888156127429128119839613285840468235964358695536251952364720397836862825051183857430800394955941153225274461429078663688586945652839248167820433400856870690846300814760267702261888567778186014357264980818567301777387167061636337994786376971125774301547610850459371626505616391887728285270267475827810456123385458242561779225563860260677370677484791077292668104731259002863735185156111552565368738027617728646811515591473694362180227608480149341656974045254276154531513516318883854367409312613990693749010853619144442546087528297285284638778351550197524171601969451832692162075020960783476945872699034878060597612761071277236389180192893500720296969490977730342997285624749267944255065315176906255131812926757877247300573462410823096197131193166735088998182676540349764939196109679292491484628785651289636345197126345156317121587648332800255525448553509899770810028686751507250684341963846324838844309113880413147303334788458381160984606383952930314628548144228164769284339023865779943667622877001102880801747217939097625731718499409591024173365311261828141050347081891773923022933780585323104198700106615736645517177119860793681350223361242493060239436717368854028727269541564129058769631989598641297865662343305419399126733463307712785585673298786873444072541136937844347853759134580587448079170376979205246117546447358834854616978966679621593406130528944906936383109614272489087774937486186713265719487740322389424192936533645432595542186900429057712806304037515198410286237295248890971348878870633203660032016321307935295709746413255814670894277042000718385442645700868548880653369831591049889387407219649644289815795753428558420246607930086299680797589315541667461032969049385887062342637662040761568092417580652564346857082075046076385579489868522505337482656498566432293189167368071792965584788986738127035557744174030362536081206135811768633862576456506328472263641286229066496382230550171567066111029971430330181990992306747849518491684679254148426052652388854089526295982444648025462346139840491067526895857889843577688684305160303190694427075209723093488842963703985873501696046284490752470118430424957737494555795020896495021571918022278925841299984252847744274726009063623460325015081916461426104371679694708680304986421032667094331226728170129352843441728718186596803319771111228891180457539650395341031765295704452663792653882644584137382399205233639471950465409349707236101891524141998425855320010159195207571638215711253855060074504169894443679772572480921102701276342939469463477688755938322455151977566624999802203606184115018623021740495206141889191905157246198951312032934529506918579031753786252383758997599559147126299715682437069277788816286645744934413125306031642385382741953890002309715727126598092598510847417382434893628926383255753024812699425484382229485621074165597487155085260510670518694510978372293165745609021223891000288424326844412584176015898260354073764790730400476270621492901272468017914184948859666462059881954306358106739663446307261924824002851428128511138705774877776865050406562774967668867794918785920874849684019511365726300006402131983948474915886262827902825803878343795594429859934006321249916811996199205784011128973708981330488112318229186246438659287734768215076004420355145658150233935746805149346482359613261395800514112536245376317084593078861470571470006460500228394096945667200974921205646786816031446559681736635827532264101562779831440011161787197012532745942872932326016168039441605393485477558865176309099724286952652747459048368571774255172965783493823638976925180886281465447854791338976634809588099911080622265833656904713828284672626533936906369837061809002730856582265515955690209088426166991344623825012358356149922322686030389997482274669955712211181741389252262566894711719400850252087668876557163627242299286749823435928824858740091030394806856929066314367977929165404319532001154442904095714480762957607114336396050059905298952447041851161314207875160675869400565885203177085968014807653495186551244345221267530527321426885004369330926088991249611973034816472894104507163812293283715236179127892521719970762467937506484141847571650569136921446840809275894956725510338623677631712817141195997893279059057514129625273370765416546892366053527883871587049367394332392379810560895250515738855851944201302513011880402645150842440378203560792725781743816320438548642298081346016642991234159505650860347033754819694265016656927731764355874869166315001578980956896768638973508396541526996063747516463416824773003085892828271226248270179300141616127800636193171429895346163601871007877970827477517597315349872322629244815592247760221043756063792698231771527972640425591715354862449079852201085897045403320609855465159704862161239606130822140980907819024790422043137916148813465414265534854890148952393494268696125143480462846708960201632335614579578641508518198069234609760340531860371843673762001050498022550773337842715048877672920150004560626515830719141843475420076281046717707845111552500911958871194843253255424380481909325527912837636682678791680049599475772704332500755379235954416115719753812793254248062435627130770845602140706799105883403255339617592498932418155366341792497543940225032712074543346436476691493979352856609882974146008681255571091998861091460686939856818193658022388230416476695368498267217103600431676232307105689815683728281683652000010440494267112724995689511551971269859232567161027195724385517072634820574051350174727419460839976747749553456778214449588897384172954969201473030919182162724676857314487575916987868766375643498569744617582273434316357216868254068686760736252910873892221547911627149856371795758030328938515211118667710523204575023756328127480194583838744321272566246611658990923560463482078739014970928568185039519359696853264226781505973401960324675052000597874377950533773857087168209719566309138513236032553745073625233097163490872366376724979752200577889625654748932605701863230781586932621939005703021691887323304682716387721969603937276537473926901617058205552558295774769590086526513125510260622294522862913631825370194462481228910076757241793012837472947025070149985144540198333070707544503335128052317099256056616811544115519903784063107082483289566654636666900607593115414317859238353387776731779783983336640323728732728698938558771083588106982133299022359742749709900416047121288245491278103735846634755507397258689079389138917237442424128888399654989151545662188538513525927512835436394389454185226259761962629607718941889130353399058360138825133591620397972289199279863918534533110509024094227816232230709294544571819009693420437168662505700013548037391385447930793910971285996554078372130717251635867774677361256886338009629997870822175011873241973419800947154870402119104027946995630238381866451532585634202488266192552423834223201631904843346782168581751734764698378378364392718559962705507948396545912028379122288787291901552911086459218951224884293678802304980240603258090547986973758511222247695534389504450477005299643414858614636783659466707476649830207482643923817119631948468636938547837006877930596792632167463577849940949073910860399249632105001950208838488814600994440650975190936392057141238431021689615324547035660179515430082305139212274990865032255719401918887079528656072036287526672730327686431518486919065907586196634202212739501012685026460361939794319352513575660476729448521838189652322852713064380327266562589397655354840371559328463583791537167403389135165418845399624063320923413038739842402292339794695504828495442770611804013708358326271220828638523863629075289596280573117742051461433166118217668294395583417168794025305649426590978961255258586266151615898382795285806771653190893781918599676626652122885853582219192226800523049295081276567449358950454305447150810661755944663589824894604227864489527703073755657646460383421702212440374234430855348512844185901100358176897075941448749846310934995583388044160979140263373588770043556682841968470099450417014229433040588076460569865502952055295194968704247804575250998603398885933992739052374442416457754703741112675601055789169437301798988254532558884003011778150755093725787462051563044017179336866993638278408882067092442915009851023470776549010728847952712275207948023978353481156649168269484034645929705668505884212666816242710366950654683127362920644040717774728211730558002476642002490276539136464740049007042811774554896880114860659693313207422585132257793653732135234583490727026262973480078634355243097499609264082391363203779058359271667433884053757889874648319196990284947068829664612145778055286522360170813181203633601092761970125708063822239701241966674903246060680945286558265339343669068945222745511719887725996605052287084635808832914392625641238278293441299526894782780713679573499818075834244357541898530542627985586018850998494660705483875127071256455722269809344788425686874763606478329261114395430521343439353093759752787660995577914088653978127899499855986036278060101227381702056406842333706251546141887494427809599506317030524942769360427464721797432178751223983797681887728994530521177675766952418017136798946468933929258356123193326019069543439705242099347451804248048450347609220162555886384286731834874814479391777533692727624635778203783050484166063477597908371222496760828182211082174937513620542150855653851775745515424410355428870735429021216883819306472634949860041561434257478848113532023823752880888885156611095218532349567003058455050408732551141791083901927326381273705695003794218184038070372195626055433430352286279183673804737120250077943645173210305942360175991221953790951418410600332698957248977018534212146443523564994766052280992659607301367466526188810554112644665342290229350779910589682153082458728330511055148990323878399485987595396938564779744088356253298030139669062398733675591153185690004884356696014015094740940823511805087458836465910281456167393532219897079027970437660979361848549098933622380965667578010163220438960164926429465703120813037218504059869935375701453481743271207168903062293367366973343952950448589404474574983531778800209487245902263087984468359586072285704373516409555053839393730211973844045423797022378050058958242869814520949958864589122076818506462419404894696338296600110196218292087795673628093444370961937279420088044315022041555163356902215063788068066367552616337192144636352509696643827933303949033693840471802188115020358780669828981374058513137158074353683894740591073403591908498769333545719562588984725734287751983237618978539111993740732568446078208695596947715868260956013186968195081541128593033058192976342151850248490550705443384375250737033314841028187052278317211039669600423067449022602433438105668404806978324001432432654726980125942728061160908827187544948483411052458895742027169493091350693322740001241967615507482765346046137998681801018640427453342981952473494597773934885283515180947417730553215948152192706491851394635230785832330667076246131001494946866293777295226019744976220082734182905348144157560890876229752112775172563445477878294551173174648487916272358788877279920371516400829836370670133395236793710368683704357251346248144861785529200348109828246944321168616717361012759816407796470395712873706605185224606773039785235545982166325179253851324400252816095773723487919679980179537331580070861977350132931410335997453398054756390844103268564361947398921321339135436216852843662680683101975153774265793709400408807791449323968802858399458911574828515273588343675918171888181711575151252278870502947729071651288368380914772793890921991806104343580713100375739351621214619008819718837891831974613417660903982778246361571171734766339232374784488895166783588624537773186384593121910933450501479773029363221027735215907998329111533408960469995406734346126984154233999976082761208538766246048527953732254921339189639963610438868088133726550544733261969620247989991311028186841964875052681329505326014026176233697256319940006040501953347015319128125869506708046527323141914162843470146587894252653623262964719405251483005546815001359004823909161036898644183590960236993942802020358100369077725659842996009711763791753718469576533970335838128303881966415701180239878927566608395447241949275760884371121213771837474175758256655089845766345381313555750752788498789539166184157869154454857306628937430641032565585315092899984685472526258794122686066530656068989605674848388320133980135917984832664038864427067006190707299996082240403091161360109322883698746316589339389566652296440473649478348059977128758587192266301039578177234357813843224473931729247263424687304475350366421222514979250566620282501442477440356317439172406160059017208287096481467604967709709936771978622059013926396643173192818697538557693589774832883987425136397345185613019686158982714112509486105239311645933418653234300062833988249980751239672936743613392310744123331774204820642041094915293541128167214923228968197455943073699930471289719926361056755566411388849462258190813879632012233818749436212450264137850266228381799025658440839997030314359508401195261725814742841952670953714740520601674822130000364889654363760168885463272325391347436507245120207261142566098250284460573000306736681850894110751146753471101274578236894659166288371887484492440661103744321772515843393322409859600678330258283340705920837388536480220621293194996195519952955063888759379681899007951359955167708803207949307259402534920864104239885054627764937802632799831228499500010487326245603970914030307196980218664541030799672684604812451204466127013315128209504700837332129613074809931221669024287575273528307682729628452945203167220565917846135922103665284247569512738803460366650428685464962985158029890020575137663634232896305521667733158961661201030561554613946093058684697125612997008578295557406672309999160918139709092648369744673714598377671785358052660768901966927691800073699809542694599362779162088343007137095711007001940176519671713535312603242814877292124548542937605269296207585932518558922666187013280298664771238365563886942186673861004777893255571924223752172926236901604072208268038445446779727574644585233017820062106095088517308549048217673698290149611841042695244919577576821660126544695272469181118115624103730333136414281766308237285082767120620335695271828190056521310027921692191209140213307024373807366750402947560761401275245681631694366178567788306208943788415697088943973806851490550825102671155221308267560173428819689462854134427396053312685912129805958820792100132354819595480748005754877791445017567541058958101603916509342726624149951545709770288926539830148828599667279129871650103210503130291126256297348529577959373267852386488012054767256380100907279091147749762145834621061846184285313254971614002628402540395738491251199099870538357244667122587461564125756357250171583809667203696184790682535356943107170187870009819911318207791631101599146443374410337822298122313565574663718201250461743173725645180015727185207508487820933389410489174045457011506594034046611529686423148926713884195542341481316980992033134346308886119675190316040440132939861046229108877105333211523979471880273738225004211767694844759853065738715994676752165231563213235040884303085953733292525181445973506692776216046320656790149518441220792992401718052441679631482511587857196549417832119094558345029549547438008297040427997187726584564719068600012265297294877479610083477826630760897668610412553136256796092930606258443409810213908595910668016965223507327557918908215924211382204209277871873074041474303617715238531529780462418855926898055036231218403393514187515335677701828665090969789651353022305190457006438222437904054100684397765982177451400073421701093805508370239957981320118232587938772923088372507162167101035231153606647592888299722059007444608173528851137695412884188692376789407373106091578546972150781934650445794070720238909483845469744956566040216248322606060650227889598171794300205279966265954937656382755715312061545118845625109105360902441237103742310503600000536226683237648940059430221836120159471277017866705885372860993839491778442938893601325384899032174601315525813706044376216917121206246775755496559842971797376970771455488751596347078816734112413202076061957294613983502605316471799906837716538234392165305843128102296192281845263677552125007137225056703079865290233808190416660339814177181890582401365869043660728342102991167996703949959997782112952327399952215321899787071951062443088535169352639525527800897933564059058261979527717570604091291435326358155722143576480280199822189312323723435973238806810339493519508212503303011502427542633477020164942258961796212579457614033486763805313987043411332178679542475617168125327025885238540804074552652234707558005674662795930430520345017679831032682346283353632563679523312733554224070392707108589943866588149000287491643089180881713022750518408957807003300656596930391807629889906276388132973486185152684831789699839671875211626724881774247723860181295798031418438560162585504459111772809447721528558484607891292922033312015780529519202796945615618189633404200951083067354653340313483246807975225588244219151466819690648404747478420564240959744218865520042884144332191714653834667132509870548642438590078691342106186437168728575088844873488476364559209864101338315021592496098924749188610369363819762560224917716544935623691931238399126632647356078885730001267442944953965664143132560527039880954331296775308261869760377412973239126908199018727326529269304367889386213498090685520546761680128366246121675056884599717508750789938585667387611593771499901854947728958928541214769301387191876269399222784633225045759821991518010496324025756333714394551408530382635048590536657976755591109391322009209467371589874558633513301081450234973656250641947993826586706013574430873913772639024125083728389942110722437367495758649570367233259702819092094789144263608443241291840952710784081053319588468716057504229276294766219361472341933898970194549325838428359832462163853731091805139864511024653398648440208935179657904850646174822021524033148454600858117334312306545333073763966328625515745501208309696056346896089032137932019211720460586080933079977526317237241205415578298286680359428037480074981880663290197803147685133964055867974641414966960708059980359526059636282429665537630243947523575645090842356457629920541237416661090248563489723392043809698805192486390401314148863704627187903581673984739034375519975752091868926187027329584850024516308122663048757509571947215368087213639170586317415436968652737112119008725076980322482100349725965899325460222227035273827190317394786006951901601623110693804880479570053478972998763832244106790036118917865044254489740684152833843243756838487701386996863419606053170447617812138474596421826796956801803835184646907042799653260387532112060526671882561847554764325727905133698514215477437030159550052401514172977330082224022413356307760899437405620595899597162995353906043967302235981407999549047110602434799474005281397157848827591796360762758502409993248204488057723841604050233676797624035981647050482676046646952950156868114499469404409462210033865849564733552759130221274755427995223007405972905344330016679544485833146569496526099306284195616170928024654870040266866283594074819642681598243259024243949486775760214667223957072194220006068755210278443501320923704505462786164546542491003264903221401811148429358070045165186983682674362558676384878964331036400755761001479021329713824257968663595584249547135563511054700344559349286210189920257305993130938277618648587589924395622552021388235650632160396818409364082706594022998695120720798739607234561025802430117831320034726189961942141808370760231156389801023324725770264953107754830009847772036666239685579938947295101182659673290472761264186996042442904945113021881953704800166247928763774710331833482798394074509054987831902505151240445269299543941914465015402504140061655406284644402548245318255246218266939106125481871755806224359918895540725702512716889212802933240363385940187034356938057158313373997682253937283899658004678694401321311548927212228507444314446873265045424729300031076798843870043468848061010036048186091074746728533854047870374888368117094458461761317468860999691252329202530142023100097614356503550008594499065973439553457560613751579965877767905421516804770671407610532540738146929771940079545941074461543232125062362694602089288272629598626201943635776473783628910908666369300718293133743692588532753003816097257689491149507532387983880716072817139786275127317577662708387256688817054760169105939798187745088491164550253496080287052157836401558460188800587989028551850294875440220064339389658435289530317440529154773085551317210424816971678507611928989670881070075289726568216850165174625095868510617336535997308381159143998407628357935068925766356945904771697045652276269896357703305899153343535692363373043982363438636063404583205289602970566588221172991316414712116986924750954272731557939384577992973427149082639010074131420652556435337594645456999062713120094526919927859397153127747002905127006374934410177205912163857518436540912964659489558288747587622644027993190468783500958171713609272174985036001561354468771435327459593632466230649585118130024409950901696317590061711772244035908433487930076351111197559592335227696845446402331012672142610168174288233005900476568712282925010314903065852268302903400047087845383126294671406894225695109155523339047201279431837784031188266780338860714843003068826860140036769656036643083562282096638624154328449141832883929562514998765388199953539275021687590229085055514182609657277776152784244939943326052198121202481994336278755818976760640750131112242173036504290727656930910174202009393750277954329033557631671767771894270878612999690939901189266203000771093588236627798933977739582863568378235748627002805177313970138196745937842871567139813614716940563889546547235060626668729416569884307915230690552852913934388620097087411075685179922720392134974030013813681166485019977329166787990117381428949542891858297448444111380127014041499197945278744480667665481846842301429661250115596484366425195545336066543528844109566402610763423462627962557955255422170115300045789364746098565838192706321322525503211259251708911518200505656063800058733805333716947077625157722876122294602539457425911726316824662657543049142722166805791544132197769978621157194611860238185523740204345316868171389532661472795298277707227387827187413695132089993552390801561015290914940170813293365511975296355232214505051678331160080292288501661190781188123482684225546198803535539016457870885182151010998993652944704909385129476092837924208802727469850859560138239044702821054090619241723586968829007746673908565033401369135050834196332060248302244161337400972077226661156606008458104378407757680264531578551343571478116258263992802440666153828077611462907831867308759918645897782534402546010579255160304010696272752182931165790954666675075929636930859358850776832759003827547860610101595076441818424816650109780304520591255511710362408553960301773729625410492781544239755916367532412188046013309050482177740443148470409721819123752003086188820596271087200124353576066049570640276353921949634694157460531208681990778520861268267142868038362517045892553107988277896130304900598133583417905931301139729874125323964063791182927739110190302575396019336082070690116677469488082887209306362300560351130813203430646826464888132107544695711726559957560328504453496743218801186382147550616356901962438335920985970555498602570113502130995702173836968946038155078958730037029550847185012514886051469060523564500205296381218759521126821617120040728375503302753895691812044098390865221155368418184605208404325296643984568970637596630893750991332715259318879772090607515969782850790736208067451106930797585714244275611361137568570132651509525596552482752951607687279847204284343323389687990035601042917241994667445327310911026186177844657423745754301392027336167821006895663341075100413387960772116039637583778789373728774494957207001177682949256920110884335157051093541998657764756641970339338243230410125229193079049951600924643330948075816886336007478041288906652106478329517669811106021600579442469250647593928420550421312335697523251548563350304182702356993297146572852870169800634386670138263112090014994825023897999985158357146620443042523438006984211407026845974354138727900259224486122167311814388628790120303606656434190190810317134608635813139353373365060804118584668981899127791383224722271922606605697864107839904093414990994216584347129524919105940759423496468671866021906524278977202998832783249501875381471388988961522542525134057219475927916067417961349584716138668669566891945079770957599015594873084172660334961982766828859560512954300890758812664297733913539541224977825454472425514641295594517298755191782316456030795054691260060394807614600864651484416038604187482334647786891771698612331001237657193208689063055999141336599529730216323642517919738938497547526377241257885786506073264916028392694129634978019703238886023308647934418407232740594440651015039093734040988888201974131325117937533159008214633902975271960336862182992123008111064802204841349450894444467067683903234099325411354005338407985898136882146018109604081102907742997890457433551591165208276525295498602366077632838432229484165155421654040311867486424760664682837324032786786314658993957780564242862052603903325616445218800461698909240644354642211454207898493314416151475490378386198987598025490206714932433330436749671602198247372770198547485003225120256219707867537195478324484195975514997929972805695384499944707013118666247104422051280085851041394566164179819599499126424127735509561025615420361297268566864674513316263695568853464311530540065175352220706756479665094006756548691239025816475319508090443723314966598691909010394659243908999396279957861572928602897350474371118673788249880614296540694823322780262777630768234579798896785403433635644247249590915719820825985165200304703447628067386242229675214836807511103387575122153343814138610053480908559050108151191463947466830852288139243484923237825999474690409150657439180966827765148029192557413063219366558282124769549720083973980436670078976843198072010578787374602820888170610321505359759262799690709321283514671691874744393228447350672313388930359570334166956272898495576667589330762719150955252493325875333432851177509906560375357101086119297446097626822642928221932174842177488235039101078643304032247094676384746065738569934982570933221812614276506801061438326168053722685312144776184916578485487490759306149850644320813429632288861054752893824619926292489830424669043217573654397610320938977266756866117795170310266490880411116395047522197793122094139444123688327997945908736287673296252159615472347232428129096640041805427448294917737956422710636965045228749946520394825493829378099680858892581659194971971616281970372702425013366063135401608853273062532827284532192233358612902936677590485664644289438708566014196466184010890358321849380779408697987274685932416649169206722202235285654653892903385171664186358507221211420771857113945301700902688145434729129824813533287583770430875217615007432182039568355611607254226071952622539611377758462363709139870574539822422031665778285190179724314451572094078517612906854522397403992388292207627865321596726423679542215342186164764912994720414642919760502539285866421961958594668739278592111168645197608082996408931635233858349665278863799145495648931001681980268668758246582013462051165621741173182301145027563014354797365715084451900140483275844611727874143462172707865306496946518351324248456358501252675903295542177558334939571707027705093505740161368829430005916568314005014999228882353682348041646157697110632984250986031383348774934073544951088042188959979557145712552870681028741398307861536131871711446097671220908368869102332825833740688564158762368565118840498137712300221401178988067781355708629332838729962064760152185784961582591810745303808142641818437866223539279518869001521542875711688927911156110286286360434294785453732019253604262553568115912753726778609832752528295444573351805172609198675784793285585289517240319194096244627655522566013520540293672380449208443688219597334598960108073086772471051728870721802498803363943012624485053208846893078573443654301681738886515251193646584971105284365323436821080619915048716310266397245592061030940170415809434916682271753892119137504574469907068010525314586052675346558880057619602602723620867138226633592012700893687678088407510101474885780790557589535504684350094067002186836663181736895943595031224223538316647687454124980816209102157293597811293564307948096020317767502906155858375710931896867384390538959057331157609179252643671133766272194217558048557889517150207118739032981193325376218947932967596368098306258895087945517454558402323718257480256731988555593402958321716761773470581542947795267822022672153591990362599585867360211009687037734668336012820204347001309434023950550647877454916527440950735109150810701140195769237379377390136964892128517959762106809689836074735634337188077367179266211282295220808498157872255567286227908584315823599515225776035690610158771170077310379388664796988249790818269122969529267082202080475429953658988963925451845589982324085741136738892320467466477306400546365278399969440277905451308396786389826157789247533508391807541990039694862529978944683745714812395640264880625709200090801416585249658643285078112521982870998598385302244467988429507396016324135656421730854205255466326514505854606321013891429015540535130485226941327358435317528115700547805661074398139847941697903343233310758079662418775626961203883826726943747043657883441701487087817711728959653240583771688385153104823584001311952267897802483224823812075714625211019105051869841058387695542972116014049502199231424488909391683838127498882611006871303458758016487820902510683041624681485949750922477664156955864802339530912208631911367902131659923932092601888018737908538194414933459658457110498322646440603930399783652931463101447020526685507422796512262268463029780863186662999014572159573029163218904479702772039083669793127730353727581410098877847776854555026978975208882206642592565717829261047604813592346580800181525555322805973467591807927991783797133757627571750174192436952152589454889866709108276462333603020243560426567239644206571768084113185263565124805343635943568125878323431974534972514401938538582179943048889623602802043467288742779985820286236350700709677425599963883011778283959505094969218684558102188760888465564636243035249093651422954513889739431722412356972547842872938429938361436706995260633044290534923083397120304366707591510036932679116987599513452469339440375179409464658879493289488525871561813889257273652185534645511683613098901201728011520209179935360294266017128295968651186431645129822185428273243641893248637618384096576128017060990477754069339381952712191613307863494994997669562210027235646646008743683736730550165195879684086105526817994754167035725188980373896971918405431522893836035570999867027288727419595865187516874387751439347798954774512397867931318510254031688903565125647649359301745538251093455340775755598933299933067396711114771478281209556006511785455506952085212658785252786571922330791047032936552646805975010797117906892413238950451687282035615882689605986148404456803315517350929235194054790614137138836819861358076069721717744430831246579548566392398653678342322223113191645800053328474523198080618196209151193254903811652889191562369426756607238956434392094545670257356724304404699647398379869030041529820583292948519317983579553408011013673906804419085242467732497525237110030918354174332532354801039321357096315662264674061693857216612923193992903424079984786698805867818355702775430678873643041567354050682904186486295055621420114230578745129249280401185921034387157155129949719543650530741606926044436253259117609054121782729277388383625303148019062418220599399816903187376133233574585562667923406095590518404031901911949179148802612427203876124738107771444588089628546588505271574729079899120216909589066784140856610160678165837807195638615301515937726073379708224024965675338781083234758764818685941709437498517234749005044813189289715816329819693107932681684195433966166024043735925578498143524323733841019484911332506498783787332919832205682856796981879031450052793084115437823586025793527217838270226426652473797032206351394523742329673392368845233261050353601983557149290607490033732896983748108466081462897745661519372369583528126774971746758126300221593954710147715315468029530854061162370234706728311376293576170912346414191610536772229205637063387817945759222224014042039287402170371942634048747320808159376175004058929281025090887899319803982999359396327873529793667853249564970268985651499729794382258598961003685754253106629430848442592189769282690830417599843813786556992807589962808721512691942548019761671041228715607976326704318828273009419358795656806057749182256624054116898560958983760469066224428157375802540219351172053334252573832740672186332569660574454086225190203065396299341232659729322980996660967821955775186461508797175325455496079837764525264428376867276307331855533019148110707474428984420851374511633512230902517698890679600830578554146375375533122470461221265039802036891601699749447866943836342450998363373682179055569300168186468207022813533906418990917501282215234520859420564116316295854604367116125756842105098884265866099527577244779642687661584768010503519185525174439636649013191979538574862594416639204996354965064256047232846351352928049771869816840750396582536734691655378720072225387984432918073685027458071644476018447204245222700422620346619786784772217380661460030185221396752487425374383609767323438813321741382899787841374545327152659736051757910660368482513852972691182941414940503965411204925104965970994785141157098526065876408309297853590552081949787051923024260781954364174236322668782055657530721800197934563872725642980575566207993495270778947534390006483401693179371869725718747007734216119252343283089752981708062558462103288087654578776406759353317472493242923210070278911702908274454529408739202720105533839315942469751516405994418760772536688052221864312102756746245729907953085954704633491818577266675023463451027544517126977137435435766513879063889160779922777299082204039550728241030014123836994300331613774097775617094383003825857793796006210235281149797902116460421178720791720714618375328940175668712227427189220903991333115237058201978214243622794134300895659913351005018360748883239995234353444869214167138890788142354595754621459371052922499148523408469412680215334935667339975133521895557780684046757613022649918168333659004747620113053885306692264580805387102038785941809543790767737741061851124420959117271766171306395030246606685337523468155226200258175133772349811837852812219463055503663831560908803336490396983635893752120492779084947763564124841653744138248669945481637488067138502650291080043844470630298500268120962013986660681069358524776789273664729234557349351752839346339577614733663447525230113988664858698493729325862763886677176165482900178332385037196553100934885608439688287422893696123574449003686800203004122290400862057402148993944488400992073641124228942445384165661646743369655159591329084483060041788857770780105673429795194855133339427031908767670808381389368173031341677626558507501668519569401123104359724535123879313026449492640051496005369133060618340428318955571761453162364565451056594334698350544955729331953412972164422841401630849615418756436551801802718813760893757658054439818657584604807150956488129120362258191322093732376058575105716901824228914407525428155033618741575960119611984725125355199261912109852493538823412091171018972389760748328986909226817317906461142107869716515917720192532879590270203835334319401508909103921630858225424197830343134184053694297490952293339042475345034147437965877232482795532340274494139409510511882475660200922029813794402251727894437624326945971968381072181971147708009684311215308580342452413779668735427697951937807306808628085723333797014415026375444570019652291904150788947380012374254546377899788592753085799979815166650771053133171193446207539948458668886475921881824846532745692709174017253032810468124240716704804764631222058887682955573273645957670384373846018600314847544272409142048838236991226275396848960499906496247800711883171517497021628495189871633887889435358193815885281284852990231865459881949532076692781958942303784014658644005192645340096652395404109028351147392767676786505864034090241246461982685882366884119586660679101949551846212772470102645651081923526771404434228034267481358235843260358163862402200744204955776589779016898881571116978682936273824566636920778538320788693481567833571183588051802285557418588140229903642558318882082337882881389947622164255484665187286244940260369143135277322315693487142650678988172798638149689354714078715419776275579237188694659287999447267331355026683388830996742738294562353593561123270877657476682297754245636137000612115059460790278954200783622464869305213327341648667930555899053903738223952047816375084586496613608735381378070482333519389245109768541176557604070704636847632418452904529968370330121850596647718720500655439806771150346625494855983760485436408774139692206122563932758396984408864492296391370586719911960766026544646273649084916218641330539430946407013423252992177925430293818123432872050006340476763616153602256410160526712983650573141903093824434506187568111972751421815921914997844899861593299496621166614856815886286082333618749325913107310419441572493621135553979926322646733841580790631507217343309776393419118682583735340207012687777637485746712893336114706416704023915183306809189943987336487811562613593736634390767157795942328995187695741276515882660784179380355218545296570679389507845034840728119968797608781709908422051313630242221802268698898877878348287214965057699864476642632338596207997170586126820530823373479014380882251412406704153730974284879752913121969482196367815474164081251943536466620338100390595761394912240524843436639893734978446109972574226567927752019690347579683763685948149646849304735150581201797170346263232367281040692170948799906085021340677720367997612267340460701435499797406949404254521237255212351001588182232886121221573136690693184902008107407805297485767720992287541546242018717556875621187088310806773220044493059230229967627812996453464929240498625756746170614492058071404415954171758359597858056782366647632213587650236227197605673928617255601698472519160219531322558868997186295223866466468047378687669420690127208061323337343835644298048491416297728092248327852349075240726513780423070116839078468289241834525466260787405471750518890662663537612124185118808214119155931480646094460892751009523338894829100902859243924845081536648355932218787280992624433037256059476648597260858533706025033295364307422915015638821080303313776008868841143718939746089059856154645666634999800690840155640515399771159087521317782797938381825949069015075869071690446535647241212401968842433843414755666153630449967222722928477633999141517587622214011620112428932681971213805480733649376671482099205304341647940669738294128156340188240792176413055070152932779066813841314224397484969988757734001018153159754060495229465824495440359754334135868722256130613704255474856310947809142184129656608379634114488524853483857650693989668520430327125704701795134340021429041010081710969631227701578328401702627415705278818064512177711684881691865215252478068327696628749709662798605808334918418435533551892120779594015245608809139816984642646292589349504763062906980715728737283727574951428661368633585829325045429488381817608710095280665432443829844641585622110582902986210078897346118368910429878285010749394075750006070265234405247269952368717435215400821228063248975122748236755677119880720024579206003639852627334006020985754517624269670989311312623353336224839369298894679660618155111135686704290056852455378759802749853040133119842158950082471144201531215249311069794018429070150922752881002183653718970250513890471245216684409174346976838877569528779637235956541303668999586859595415768771164494594990891489141114980360134091451893004844286597736232601360766810212475465476010654346054156337482418939444200112072366244505156115219412339041670299229178384173075169582168407738189500569867163400392081789582407058585792405869112200506560543299680339915336189100081992939956378728357136274311676934832752505277864988463674438379518141066453695678604093012767765154127595984364128540010242271910278069243167372623262017260575755277779092543017043482842531841488535655563548366951290559014452243440425411771044738351467147937844411661612863483110871700211277749822732662920597388001161923172333037141641805888852284411770716756970004650424398120794603610905696668863657248090302668422258648319140492661680498844056841095475982321910630362276404371251134767978181002859773668463309504825937115846294931816764349847839427082659036490491226189985041634952935197716492319769417393629213493196536921971492183658100695766361190236369703046959437959554637784576972461363552045268373088430112382211979734009043112802258206175409263526698702531897080811673828849112746718113000395743076666320469204217007789891274274539712845260129374364234667909090034905822498446555362279807108955190153201362464907104288566748162781757390584132882376437719942023577759614664368915259796570079125996940564946780334897145851036247649657606443454516011104937989817812028788470600932651599775073960929739716265387904612048017450133611181566606282124812957123525509750184804966910645755440166531143851350232221330147252414627212218389446985737128342515240522969859425911028095699617263568751118513025807762718225702763873767640062588575337352262554045223198062619599015179602583682492455710217397527556776661062369359512712209349854570519716120644240614592521204253756076533872605148567914791768581000061448321072358016106857331396542151159163908264514125979926979348338474165016873777094683407349113139576635065110583684782907186996782759605123801018273850371241021792383117671059285845323871583540237173280520644388937197464712409207879271199693050111645246421361805814903086637083372755213565874533776276710641043681320184183374393848293753535705666543298424762991218472251901498443187594134904909885634095143576545340156353873268365943204225800774293349271395641189763715981779311492237413035986147019273737839583716031617441437193915723362185704061974548589349112125464787650037080202786191040509667138439240113684931182231105164109805290273640734519604775183265001550791935839310484034505938777935031977013527257263863627179183678100474618790538527720243980208390736312249536551664834270608232969487322987885486333452284625863503158492579311071535771132773424318853815718711636949920126690370641408725569020120826817772515079867836806979123648113142194723916054166018291523456462551764968809155717549094634637815484448430753298189535167455378618402624000027884246635764378914436944514440816591358675118569628129128737772904705978928734889595885204164289779176995754163801829467352453367474797246031693399687471521812926158690310514471102932715757194682039260730397699530358399292060415210963878648176685668474390277102327623611592220435904909971844171526152680078240584423783114205623488744716225809223438897436118351353589829199548861504691559183356230851592641514751026094672122745818878825002300170692616737890903027443787049119970726518827349067436914751264028839665341668735856633562562692825264235986319154266750576330478906405666546510979140742694106490883252412175045484415415738966612626094133392292647842445757001000093321225889216409576511600978624067582031190934898721434939772206057133044890587181107194303049021654864024199876961102999516620022963827000128458977900453047456192812099095519582371913665637006502239626232326862135832050127866989068483489795487344043638714564441401777038783996593258273998441941678923351410392936715907644779494400953178170678147064895325772146520513719308333930032847456446910702277524251174353363091757628379112770292662099800762899388806486943086026225749307290844925968310723571634188769632939153676168454894258873662346250813153940169924454399227966063930917328612204486014667263646960685805177163090666850878332930719993586194614079938141179551134264376033598941968389401758243559291617548188121746284061727902582861629309862931404439419198480151543376208545705499952412549363465534841171163116374893088089769977916003372456417180640400189164346209062787763528402478627840363970194752557697298767894905252236006750270359502314729033259908857887229317529559230219494190424022448565165487431766612674572417534711192666856394272263406962117257163209902481270824986010728665438413851992576222759082881540963342138134705607397706463101623866506113379112094412261887677805170071795236949204008786473419465267344763278372595428272466151607338145151988269393451698163105303903384492761949779843334232702986761170283491974894957734952255139309201386306814877177123517389050584588030547776249535875760907012786434964609110591892402681656446973236408003771806807785474226960437493323946093822932942084137238595058468527421275842874096567802265862920661032675958400799373527124861230337532442957390169846995546627379455190242984766704296643975324632216989475114957699129579972701975768703752970582497276475005975783452323129901020944500797387460757975301541601975091700167669740104492648822336729772901885003605944670890334664522123241143866790606948398710363555643446115053332595843029791567063871681162397373891471872726699938301515111335434952010630070205480057758028267160464604001845128670512506800636394560323728647430765488215745061052123232496341277165873582650107258132244291232446882015680082005791224775374983117795630712873903622173730506748725941331344258185257424098002085572797359151450161825822454657298136923148117256884802181548746841276920813123695287549408917564694358561847290312416489497182830211225409454127428186265066110685599911744100542042945719510591168168859127786386306445212581902035378011014050557910768510319252047333001211047859353216187925611519854474745522661861221794512882230782401710067198506419498456778095396100543819335945782665638051109677082681987834672623818463647478144299214119199691822639296245345456488705721970537039457861699933110767523911158346008687511373496551053933880568578444808210661424958430605916202968954383120940849531697602508960919941341106734459384470817988106709252410133765220225192870893732620463830591553121948458492157696280447412689600378641771906197373053819121118143798593048394269357868703909370897198503452680154276654357559237659981278174386025600270612534160197311474138265109322857122057019432634752519050722598784340566838318292326856594639714838266131101911881531268938089791199581666000773693325118026085177114985905915124206759929926944575291166121806299991071323395429404142762009980524056009107798586689145979617943733412409122825023371565679358101820033875889525660614686866828383047562923336721869420439283245212133117877390328317268852765745698172647416837880005624759621683662994797523519943404030963494158940028488424810437186667124704992712560612961551744498667846823227423727082571243265614306373526484912011258908491319627760196551273641855302233361709484951981071315018600371809950100670862765951378132589906705145916319531560328906512602239636037950262834951686959909860704782541192197029039765588831856304174063813442828838613215867624915729041124983203985213534774531173777479239645209581145629063861227425640301288629338815585773770531513513723395007635185428217839189034042354990670681014291432232779701613009345884417672049880752254991244145590687333534963376824213264375259236184270082511204702103934984268669368142005723433495751330204262860223936509630316448705021884990791860041016966238038792969310018682866974581017843602089950385715512109587264538089674866269975050047496824409996564895700372816228981655283943231226083203814256407553093732173079133709341629686995388248752539643269543333129680274294306443117226913238343838124235818484007605302411053952192529481254312033457374615244732997413509163370664966767954532068281995498586498906558157774895615960070452232516026830248233074553128618801463953472421562553443158790632003657620861612283829237169601539963677702806286832003782075066381449565904985376910136503698315001588534623433823833856086856692845598742585721942796528042667417601116039774744045905617286519676426689662304786967217244033778588675482174287108201910272812525592265982031480129008496892030182027351008121764851162146701279737665225122558158644458664373373873493539111322965822897927166792338060783441686801989592331125504208558428545718507717345169103367674904600548087501908501229369542981157165433755181798842363932868001864259940208365341300281271502228346720035405488057288832781342907577400125528065511624249695247439761619533903021533461739501465873789196072657833095802042429170277356719228361578172657783725439871880579530715710642627408565066399689868834637138405876493599628979932281101007735973512413181420253336755520081621339745319024215009973139932629707031778045356378766434778181963600488297814567741136642543222872632154832860198920092011336073305921956685045003913935408777308601350725638297556844053767944849444899443428256551958908090017099572999222144634785198358790187897934944372971675473607958872842800530438625233700555411285672927559936635562978561490809812453579054039333667292681945345645927415580090414640897676005664928811336354396996056453713342113241976088125237615511700455769976363518905822006690820381453615388273216205008882665180306710402141249489442578149453261401276223900870895310471857453381144254973479972434084508848832647573360109334960025205114305708718498580077722947821793682231733590294357389968436761143845981017255887956541769928124865727744267022271234132903568586219897213020133569078951185376348800193456460171669805392111787964243910320903219613050683187944491543548348154587102758515155233614492525143028633348630060126591273396189921781279454873208684371441918063220992137699974315139972884081435885656524525527036122226485666163076348390694106327093728290802651643748868112861987513433176321588372450017262134296773375966944046754430911232421933927827036270181472137478840044463087236021766824484969582494871194281519031842423248268332586827433541915485834152937220368906090335238166961094424708886482004629292150848489869210218631199664997992944236828391112852549818071902242676163351192677362258533974637644251833137590715766082771690595265474862167273776223467049339332028338333419439616721510140981122775603644398785792204663601313361536226464131753106135399783670754255936250901000298917064346590501248171922210827917337624445904496860863129826792513552885849414457139101850174393079504389335419208990277279643441984116113768111560412306402289810790876340453670574230198965982397389252324135954952442929180157025897077753376301281101967963406774592296078483203988440501239856055848049689199872914084629289851714931995720633304172447623239194345742808617602478866039715450505246944102453831996742063503280021381106707957683355369674677053741367146990004186348912561670052681496354449190305169778864678370562551505679496968819533245570075836797908977678035793880613309049401958297037531811608207259916144251734020584558631250953412702943702062407651630158415183563556069023029418664180481670353999213823902631875492643638773078963733118767875429763327915690127677570148805090376017914479092975304316908935785152405691065192364903928182368569301380280583115098652628699545866390265331386673675866873913662921876049430593433381477578513223339187554832564673712974167689740397891531892410768166539513804631373326367189605849361028910020292712656005921802942532565280128796025252478235022571691855587537370272597847926717093438358643710103700959912513620994301287734211963545066816558293144084277611204089376221291350590222258254662452548184204013935729760386424390755302815654962729566214009000263354421674315047829073161687122168015623765502065946830406113081538982913322734851240133777715720650409003392859041908323356466014724237899688278232136459415034638491425017266244149207685876450656899487717988932487214031467536838268272970429807160537111991745881889837282495169558511081118626590668583284278941893101268715664331678991949050563886953537818029173084627653088088903474330634735142223560976419224557396872725187133213142427266121506185448502761485071342961735181196765436205033279961306177789218164934821329025263643255841610250289517891754320548087254719133246061018941089956642016540599490050568136130750402848410206758019319515154485776139715648561859861298483153340701123480168022539191005168185639489248664046336413967057309290659712699375775467329054906705245396884358554426814637092267395796857505242056610032091031866996658686067706766144836699637750366976518240645761103179751461356357161169164767326116563321339408894036723543474914032051319307380820660098371162164095605198999539927884762957877158690109379201589037619192830082621631835688047388554624580378633725963231967621879837621760292869012583049711476685517632892189725730018364221761327923585177168566385446702598099952683224395732164320308160335985581080388622687821275829751987917349854705805957088226755516059912821054817022900910340142885617219669919159360917289136171323295663417201682000754200004690339008404828143535892606676984761646739846484463651560673095065708433613563439138149043507350295413953518093430252270030206945144254152058825704654747819866638591559304909924552873220169490510413915635210813940969471186794166694260193406733536486613515633329678681083146067498108165347724008562220785520117317002552449337774025508438561824059681409119108817064089741182065669814060787880935408289782795188394187149609412607281146480509539104604531454703201243395903453273641083372995987549340683792100762355758826700078563329537805239983612868133539761021672958399803654834662382609713774841264731824103598680444720493989143327455670974166239991798589068275505627603992141485181589820189841427662716280559766147871868481657059643689084574954926671629695157668269641409705533997753048195317993885746401802733495979601811372009502496063573896795629214651512363887660476603083754602380496081139362170273152685510916106486860718106911201411263354593216428568835780796206580172606246653868943318739700653158911069809408282662977741905900289091921481711131426374226755717119599813894341524703924412178941372228602422575686645465379350261949956764720156231201980438858613248342360517002585346907139084320336229103344243176399590723988255022630397863357744209938334993693675304781853387703139878488701381831274013593758295554033092318938302158959145769072038410864974791195444136435200930976484048517126578528217002382945607120556388127950663505124625405656945365266562059742733388301829783255331451570735004075026821414721156347502868740627404235256923773922978349214749988035601180163476761567408347245039815148867689476327978853459467456070693143258181536812993942749724216206190749850345945474238196101199290572952161604723583593337907506596684125321659767836504509249051019352881612155535317798635040846611053452993372005048606463373749402505126884828245111796096608064253389558754348716914356204410694666193521520178132387933013623594723297470846927892539473404022853990647675110444381564379762885736082251005522145398961848540905065710505178732007585448108123017690614550912648196529276163801834867649011663866465885668069244248367684931797992732795786664832438339234092847135191932655620480762985284113673053926287305154606883120891157431422334596486239965676198249365507487603042434773786294746182237928441706497323636211712309867050734841576686270211338530285953284898149943566095657851219548423359795213770667328620797312491789413782554580058811734076957850441348606113754790292905921210893312449354855894323433054108618829904255843261864148573656878529625312947502323139468315311655247834936689351985215760539043461876550239977792857532188359803581935178590767036301842852272859619258323894419621868257289677084642725259446770296865811479947074274201932924614495129230993808536840453017050701282730725765715216804810568772422161306098813400058224932286795005490149510940164076189533713431240133221574203601563930206154671387525460995756936178580748323384450158272667601506794233224888316195421939319605208763463341372667996012031052367918194514781582034952969839930618001711888877492745128769608069721216138931494654407163433446119511862908375069308108713382452746186551455194766961992446412517096912744457004344831972887830458824965939068571594853645670216677692913422765759946553695371431488472993298176430408530696251548404827930522989998330354700561766997257157306183238200680186582836582056913255004556163206173042175859706679161000737009683436012192991998572039761478051637782362449392731683027419152504473933122268104559710322140413347356530594434523342387303871641961083910265979115412122333969696715835362094633287171841258514992513337260128001827536560223536177225815350657279498245970224521085212899835549602517885296460024838992912701075635513391895461553461808676819523610507350408989955891121182353565782204227418948656375460738822666828536959498846078552028954315910577214287327480482689764499659722444448627718327904120443128487997968835037425355794677667960433770953661733319287652842022453572870137441777545299813519456489495195942562419561419257708976996083997106340868613462546225000590846551718004733913220592794591862426494176304421909708737180455029476979903764859149391427260817135294211729019708719445260242966097960566700495519070846840994050448562787734351256492802867813805983442036927923217116329886316482034686368406121578936653455609276854782209037076520919675365789123132560045731088235626516300752130521601449867129517644878399813946955891406144851544311212233832713106970610827691980468123605053466708339966762807636749780196662075033148698614143338952454545220134682026182271480252271783483544309237855774388659326001618808770955538941401423940587139310688464852465619961633466057137755122388315602763964019007206320669988276110099850578583578516275850204305296175735996497025407424287130932558811898883140749511988677191219926318734161037122375621961540319069256537532382422487127234333540561722365806063720830745922671423858113282253866387953290813581764134050982772250209710081573587785104840564529839746909844576404771598444103202464653514400956032254139557650424012103805818516063175962383663369307735876919955343146805496229419042644504723428716532940152927986322613300629245715898249502335395382300856342395741031799584036264554755996621886868311838778313054996663021032574347892537175006581807304561125117970160929211260059763789772647202134080600365013096169246827314569068059835641241963057221134777972247067030499053326750901598773029251717319346829686427929680524467882910157789799589333886387398603812746381295197482697647786518449325325081564298133942075252748689339239397831146857073948671203499479088094462744186405956914426272857037482499752539031031328416279884935167337769588185219647810538326987289960976845360527119076861283354632891836484358730492773165116311525705875850595353717493532606765533136727909246620325432053424496985274153991800883382721818538916387719861377672145585959544884911051841962523703420785639424939967976554215107683962300089909544961261872715489952904146883234210676304335157045856924850513629496520411882483494218300934666898071032040356957851610816244690294459894929608635752914592731310629870460504080081766316387883080164457505690694744951455493327042381288111709705958074473687552183440668976086795395253503713711393681961604131004786916462630776247976106138314599282173983927767939435234754583609290843189420783525344142729368931758343604902895723586887555251565571366313146856679906005151920907827513257499371705405720568863827428364297299230962413947680512257208883802916714743640277628869197175920844017530274319152001680497855178815069354796338841062299026014218921223771127354110335767718836733920733677628179409758917594919216767280428916614341528112926936400637387353532270761052064655280363655847451800353907819418224372748282350626611748410212713953350731708193669585501880614926433666185795277752863101245621687231511254562042100549194599314097056800844096618763992221404223499289295798880117800216577060040505740651262591958379415555619613854184484015025946037315402893272527474528745750793323309000201774409154339422899167391590199015800288226833405035320810112033289027975783419013876740053758947436427697163909586576192745125033227796336454234100739507967073847980777524081760131493620653959619807975441360971152502496553766056450422038820541428026825401128405456613005733584778551819541326572528272556519373805947242087023024021201765833322912375756295769040509037940159370616289590785917885917271308336348703370031603240346422415124900772825897383095586811417500888299362843834100128462517014234571759257665999756441663961474781091935440989600325269445909136920415759096272236999476166353511494727279995162438251364725124420165957911968880010510943601334375037663194811352196453214879852345752729033194015839699094271252177086385061197537894628169865744942259454529635678814830978777075755628707153951171640539091414205218893198746425323259321015697177608304353104256529939768566508323314522593424825351612068987304560463438439212658785731889122573314775062758832200301192605241443993659865517051439069179016592229559331743851961592079101923529309700066354177831767759692426238893068198773023111706109237033407401820950282248801955371375611518958588923942817145448252236102032672996175021446744500735792705822079443774500700083981446923296348294994981991745957566965885539758015289074459671128661184275072489266794680964419928499231512982006324188925475742562989161170053828039950470921689534911620060348840541988720110770191470328834974123998690452073148250646159930913909729660883228707301688473433882215124374205846602748044659099746066588161176755559587047431039376153379307442574718308241749879024158749851571719265343928709806465029467667098146637976179033509520547249920039959613236619832749770861661875293300924674878604411375511375663378681003489718751216872899689840337999927625599482526695626375431342627224194246538765698572624873573744788023746842105743388093870608141865166281119485273018611010867469521961515719878824704312462519335914204816575493181995463132198992880806715163965957831051244302923489038913662525090339354417079548712458653307236663611269510597898042327313448001325811605040023272089998716787551328331851285746535851021189460109850992931789924710646226399758701745233308930223899737485276238302918669366120068883060089325632465037205729027709768545021911664462654162785332626344728654489469512191451262557061954859331110521747701712763167218078224373424657159081882762765804329637233682538045131604090631904156688448686391197798540848647951112028269869835888520691047890969170150286294492453627974769218042292997648697133211660311021287905515901177203095182610295156547949289920371539497477956172231319623324785775087211764073585875710732319620652055296769103733122422749841369557626070117356832718392922696276993137606710594403201889557817439846006023477446611080340787380065125040099232980401740542515739246986606843273448269859105332553180342736833459988822285163321939949151760416917038023861966605965853425748727214646354240817057506659097730174359686460325111305673244354910753488366019933530599087497510180764248500609464868780721563701180290275445686786280004142213341014954193809294969270837523649473483227921329005182646811554655618532483301024474652951710818362433800082004394136006618115423431002583947243792005411863923542149431812916736290800177179016411076283156359717305234969571332792649024345934611274558130644752105767285847622495781969670081632899516100523853354597416006034192054554414416341986626034782402179277312440923167538382466075819787799619918622531065706047652058141601216791659718426999510090264295136066579454965476336084181304490734051665193880714925868093969158308243638053606336947688907613109040732102738312466251780224407116563085011176707628592085835470706477366938658768946525005517567544156857358340948113861838896415300897253058869907811240894183786439554039387360207360469478357495536556597484872572597118610337540119952305456119104222965223315625034944472041631853290909540268959962279750559625438437795605991813848239345535827818481235736765180046827996933912310856704743102475015827444364957471539965435768921378014836168108928799343547680007293842336552999499962122529193443690753979699119015213591005151155863115955338145419427007024009257937387841172637821505548995966575760959388673585381189460201522901267851602871110419890152237732626801960950906126650894314644982448555704957341375917859267928071149850284398503026777680526419467421459208686034639371912899657502874729465888356953940281250246100877674232554077997378873684137431000775005128142938462175570605230647378248254538552523889184480871335609198939512734857365861737907382431319533941454801292968583963776214723722689676897792732781275657156845972518978472246488909318358442522376591563253322029795709827050257527717758980326708466289224888085126264494441384517146071025205081764560742944934991838590898162233826529782036832371766564895590677908473063443928412481782371891522453382582623367286582839276432598489016025324125237991952091428284794920142056968280301900433699441461754515339711133367253794987710112586568208738398484472107153747354427243892779964957561951481305664240124433015811770761087127944233243005898357537871873630768504812004110556984487622521076024290371388081812516881722275048259617394791587246506039269834593575666272430020955642198570272079103576150622665497530452010482844239272251423030559959490707464084308413898036597887307387974137699674243458799161701278161148567573973749002485956482089624720418019312600819829125423532009477518309411643692796210112856183220115164917325201372324140460205032828435371888195314259193841256470731155707622774225273732896473234534065176694680657758175813280456271017140527529570444983708040379086850319082971781967995083405371030523563485225552550052898553116978911148459858826654398960846065326962769565293273690442009886316146969960431583505602763010195612635339182537982295217262259257564570591641151287448540652852592829863133684908967719799431274764638715689888753342653807770889300028972580927238355268452345453743911551402131249507345396774477702137055453402863036289154826917857677910851380527076987919136499130948380983519290229591678658949829517619402863673717280450356238599942279863134173170969405293072219926314953047274955545649693649512616614433446854729763162719821482417619477412303777993688970301363809121138445196663686304430909393506370087740281314537295208303290816103158834354805264139157519032614839275800346520862428197128969132946574140381320505532908702710732100290205511721748378920484447705613464769584156680530345643477617185225650906240825441376312018126340860276745937768031315348003401622932182409129345943050392795360449939429351601737941774488664833652954717429745839765229718368994118228129580864089665555155174040319746594452179317155870793511503005272709955808986447371385051028108274853139464779924658858398310827137611141264401664199366056319631709722311511480911332505837368183419718115239532785458222236134323260585646646088561620412274880768778522249978777263826648646233942308347326641479345108688422840133096390444424721859540037118773810733423588532700773139835972462183829698450311647813583920950604405142729642253753731332679736245681064938043016245131757231399465719517184290666574043913925879853352613828578881138722412895450306155902509791249864194613298751284527474994285581467722088080854684985237014295900081877901357198442982844733993690663331072721997800065473974125690747659825324139867194103469831189909119116822415907899665805050060552378352758117612189378415745563703501541829777488861133098349890844701703005891226054294904041362652844450141018871475176152062866172679792023790366684330557405064929221640742000386145948312509440634205283025092798762757899633626458563858019272896933379409847317255898286661169197287870663684953707086685670103295657990340368445475023641067934106574427851012982474212788615171426529114162846655616194135085705787013184956894538010518712378095683956351301927213744930509392957521962722715145317499009235361711987964258176867741180805313045895507147136974114085127155208795221121910780615923850616032876564130325640594485577293264481469644175257628591752110255760675967323332495119999561504074756464274038466099929277564278744436033315363193705332911387798149759991638813979023845692725844147272763160319918823240014587199136873243364253265331794775604753747715000121104778258660899732358563143729428182032204366461140987059873946454561470582730133159107224215340162354798648928766725751634101254710229103823638019787794946425999204869104511014808180151193323787766182942238981349816616247256867406198516112148464837348288851489016640154401499881751304381405456389599956236613143389459667687676116576825649369015822201787830048372863187332327560718724270801642280264302994785937499991178711182605779150562310686968662181408051685055682846943502624556287444998570077387501667754738288130995495984646640078439003476680207811462297559445355196708272757105541285403270391622174987817366199480316457970581751329985381231909868730393245013732801391014138805142309557882146569295071165221636945007180062813187210705617922439380566808517843895502692839765935677718143690311704294475572602147659453046820404947569269819574485153147933650628610307125315477534875135651015050783141087579451368338257947932421535584371742378264482851556337837966019297832990940427805228744857816020264290268845238161652971758521836522945535549472919687130792525996052482726528094410902460350420038495254172272177161042171997037975140628455814851659974258844432045648985890037159577181763689052365156324946739211938527534204377639175860464696555951565216647066574674805135118498435118374468648448233002416078068090032458449013331661754101040193520239207967282422237238781274691414302593324321166471844515013195118544249771900486922609715045925555955768652079818164535160395133498477684620289155587206509783289421056098235270727489325709913575707338653800584185408866329644543490569032677789178916647745185726083005879302596671316589037582465652434098999693527423303535480498603066320039627767815346124447027139148645875765115767769847739758092768199962581989114753051890050866567538064160162459119913268917529746724306747895493294882424747183678959054005680653160662724272666907502122381790209391930109592361785439596695404767966186425485207519945827777580245488936519769014494919090834047116895331260495898548779105264640926540818260165425667623466296963582862920910300665322733330614612712235200128420721163722498929448484499036329343875872314956826463874585974436541626583517663072183121530202754326480552729112406035168366763616486347319988068577341988675791433227094365472978353115830257994091725573404333310307748732009365413156582934526740553042578478244125470569033372440689923717286066503296059835208478734588979584452809829127762158279293032051873410947656611979709992058919728478521903784293081106070540987610956856213206245824268212094212036457186273325071091961082576659746078107525534013739827802524665598143818422772510979361737954463030228808752527467635772509663131990633583623509109178415377166013890452198401610148149128661402135122823061458168538010962748297326511253505016861691401727130991704889540391069720652443492535633324121279714870600166087508866046810897972587263626877262126665775952982227026048880803799391916005776224509688640289973669667205905177912344846429698710213570470593833606116637833267367364580021199523629257766597386930297385528698719673040863181076757321794115430247017360381953293575174964277446325888801367653755895506075232406514546796099136935832371309683408284614332630545075016832509825388022049098615017232580610510297615873854412046941777111010993541335422893546538841042108891101850285958332075395859303514556672058619523191479693839840217154826848612389907931415642673342272192472928329278774674411616794159465243279442388592945625684273540686589074321025365510495694638176220494229215593933350923350056867546958142115043835808644069171748922990795604469832952068793058731560321663673931182379147179141368743320234087820161694245361437723904400924192996235212454000355967885156747190450021207386006626669517863737921722935519437570468962869556881865872793833136351677933371358882657709635604262528085081222583327823109948087424933811970005342444948214859729154425650334131876625646170716333568889297145169700901768548626040729323345934759586391034328116058605722582568921686342498824142503965309366439155358611217872313667425109554792417559010051305981201023186827748675985701892777180171457257698458075493497758319136943089385284831885994790548904605869458771972324983670409254934190890363963760415263448273374926221517049305016600518430978606484816377540739363653521098815908275786466645916653676190433446556627070314286471226382224646964849998804065680827422653322921072545620588680885192456220855034414062316912157669432775102142050119119919602813670444202835899022311075745362501577763765699157895938952186294775153628439361518823610979271396887938494500482604313241710858546913347349338350366212468173136740251382746590310945083472177370147366440074382267757052522088948005052480377931264476270523706707362367616522210134667820645117829662988600359822918277789262752644669857195745893043508580815828626578357151517858811263904325494879778209080167451804321211599471914543010029654109077161512605427790593235479597714764478456086705212811784063555071469243051742160469841187620589476983940701308745273815093595426764663660024143465266650036893463042849333575747367343908798188988304246701895054615844421608036419903746886159037259172535303486343622510354464696850343308741443273891017578626422421634801472826048707360481525632782759936759957650344520272188684190070997362286544949732386792153974298985577935285052720145683560895267953338896717638452814116918992390103800463843480022188895230567085134862324009303578236825566278301768136158353273073333371785760003011526541300654990805969391560152144361851867505385618621133143695396186224710260967643016070428371787097550279774082724177511437617677336251601583990441791472647518374921431113226000274177257281435389382590021884594609643163165686510774557500574371939916271711841862465427496887811917165283524059450171736318024293244989290158032967124659623082071676263835630211720785052490515015478471843526819734912488034218485674808147592814119849394015488291068461328620770650896494706522171046527699265941956555947758390300793412637353079443946067136724824343151794886121325365387584025885112373538497837352243825202263720243759426297386450551525994840590721357226413376113197278224548525652524072711991432159792791665818285404240135178765559646580952485158244400610376786473406446462411948583812456384481696497644319443998714267606504966291021710389459143074617052528168508360577878677443808629936855703551373968216755686252743791291592827200675161425290001122554658493493574846099823251897307741193877137326505399088904374553260824611206576286399859056254363914216765109706218612192498728370127938562997561940905201948606402332548671792284841725609798614178875358180084012724175911656051191732154300767848266599468127851580662304661382098500064768637189655909096920047528840084972520641591734271719522728963420013858907779827100781212141849442984754435897835861195691170691438076778043657715203950893335878422384019315506862595853027531859538014621060889681862248101165729274790851599547421590782997736042292515846938281129308140465338252030677029045367127671419164970176740562028589466372591802185938880391947677968233510557223713743227411833996587258150815565896567762707868151049906791963338396688745965070016218124713832012826575090782248409728468247970019491270405611598872515180212816619232069438323812124520024034302500569448514081496933703834261826529267179930602074862192045046864696805510810908908757642558023781145614128916658730553573918814182540958612960178799795376087855865756159434524836194701049478768143792044053696763786677823713920895858091151411045946415086879646431053497163610505942342718316689467445486861905533699681286831750538700382364517977045926324421113456124290534538960232470684344296197995490550100989606939752919799304379173203446485960468910150715271913302796865610668267863653629497880627846303577262578404315520296467359066585064217137894989789803539792487206061489438559294700899506381116011840023271505762114225962603519885087915805336980783103271814953144069505820568839335076230649521435021543271850985416435405070464049469125650309004877174248202162048657234488899098869916189093160073928828351606247365478689958411320229669436373967154145962536036349811233605177739378879702982816631099020791958824579837069547141279943016540794449223436677275869210255626464092352006153727233539153654627999694228833391406694516286489439153471605041793033942923385221504015148465262685668927791023742336893308115960830470525222513668743886114089606105958106434795230477556140580388629028098814583620276229449118798463467006248402751370754364682885267228789323857864062824074233776765259693896393761530627185577593725484804588158928981531743574872628847915459407361272533900208510867632467014269262072439551155115006254055058644077443670504808826011250965867757336270681115613869424606380682840457926423187837054891639200346819766237237172361158127606988429179159534003121689841583509470775533776122231156791927938484038314683786594622056832215862996046430907509719944595972127670523420990235784441567698009403872976163061930930777899339961372506608143135862546753468190647582292138824334802774875803473249889117951384352541507911506320283353374060747465543572237452211289044476804378768923365402492389026705393615466231007458187850160732101129441483258386646491768101299138960789757488896670554345826403222494864542006744720727756657380131365858697818051901233850788144386629399998322251950704789331037739038933043939189945379121583064611818690957790936447250017705966046181101105637067002947718978887188763073523659443987263352364761895571530027465764643608208175526571127139912026772727627991538670465570182460538445821785006523179749094938107572463648281063835993517634631130854109824770657244388499253930634356357785711863163954192319463777236346196436775602045551534243493056805644362979797174118241183555737578133312963723049845196512594363122634279896108916234458073775549913835808664231893137804156800260508946623927934727487415764400646073702244706483726284027870130938913453002930629661591951519412989494831833987056749138216461001093897340141417238301960449748215831997884131911401128742391392996849200071146093957643943007432016083342332629377264125356086597465569442194024235418950252069986271986170349824811803461738585754332992166014487299878481596139151385144344648672137905996752200939166366942720515816322445491209644404266778163543888405248017699667491316323856135383001024887228138760954115511984754447637991830569293607761933024973445913613696270630826176560758152636487425974795443108978580347082889996235896912716485293081552867467289391142526024321706957741181662550829572852167737489843142021025165538008959606750271587474008640990827204766681066867467327209745073750492841775608837004374204561848938057874031826329417331224316762228262444936960590291776126185945007767964187815382061682878219637302767017390479790774163514395158193977676417147389940216848737294143745487017811830062591725738542661454708787922805412586813872464054725714136400598015054716163446634929017985237916310664916788236188494761834994819009815835802467970604200433174490824635712350334807910012656698139938880994909085551787463265318543201921732247990480165961882066712475722788724160485190912145375711296163789209777103409777461367258252570695213027500147232327830428929989680117696029639023113605239362113694426340337578370911798798527322406387804824628988760552274133204489386080764368539583136002639397294250786381491362501496192633491662184652906123720352386375740820132346273533611205848639574903677431375716508595978721985785449126296768305716353749368812714991223651227421827240936627414636337200583680823033931512410073144775184165777977111103652483574756880827768331449200353571813255927594249316739025580136882050799542264454765314060326380489690820446473514317147145168326653210786891441989586681251173629149273991582567271479682682676514751679477320962702467427421614470250983025521142089726570580043546386413257165342945312959456457493544192964362489755794058454072256760197115222255996690305136474205965556606882620208504897232233527375402906347715245278569246579058916024554768932169849694409918544920260052358021362979760483875827458487457646750527887356349440562267766238579949243287270111360941234101454933991471578360147954590243222266024397661189851128812903088749038789920962026678097383103868187608583915736445506667013210486811915529800985271301972132112831263649047665559130203010983264020961626473715453275195498743424700795822028073116408722883840621517958081503526060559886386271268169503483118842088598371500543407424236558448398510053745168837818440520685660694283452518221609692826718190977927041694844149301618674200044834242660310690239103309092666156688013674096063920895800805874737866261176177159817888548142721829574367029661258562109645250211957468008094450877872132790848228868310768508836283925988781465137826611594889798822376131822562345299482594822044148018336352222112737150761042575083182670540829648610190301250659593805836692559052998615505446014885987848257398902635198472613582076202731493714229349558730828778817897831699455669173611440647180754346491999677573221945856260416084414825135697819285200269279368782573345592610572487183788859888359026198813189053320640772474793593620706260222357770721464623090399953424155650916166792300063795633195273637120532454119596804190973880486967555625284726478423326733955579180963060620512373675693280946960182441094106232015744515831778730980761042498123674756854698242732627573587885985490506512890909433484551264861848230974768157570845273713253852178515404846776860663064411180902361983064862719344201831975830924004750435549161823264546214809786789429232829441433968941987241596556553601723795714490550665469568380529991542252496018228117178804870046770911938017483275281865479425507349034236949515639042613390757677762138254473043176795681155751389170741146635119251917803072505221795431941652860915540336272705348359196554563199828989332413788307235417306733233006701578557469677467600219316943628991943055955199575434484821468486395453910429163536463892502275158925400202932524528611941484265614805173981282884203980298454509357800232673987490329069932209688466416909650447004282240173096834845637927077633890746882749732470694852492014441491736143914133270413690946276116916538501626749238784121018744406114328156793106359691471605368533732312062359716809157556775438763165952663940031238409048103939869967809218874086170969977822257219801483622307381698265129205614784642832681305598570512708777327658291074155726181583597499887719277474565035756931652259611059885116134953892101974537601207605078074536704870392649232079500367765723681075552565979536902536986557366990151199298955802149504657921483449424284240895878004520438710997549335323155903168603688896363238258391464615650416514271136575033034396894791027527944340494201094865881101013704098683913732601894818160404806895232751956296687505021806999124035067726608124784908823136298645072531029178837764776969564827749699487915201844598416481802960281407944777299526446092508876324343700454511171335324979840852713331655824014557021037503110245998371074897153563971752999921518322932640744441850037520551773293535046914253858752373585331919941679264974355065897716995180634776667455445406365344628597631241322352663033067130493147218168192596072615168263315577289343401307803106400096002655993537444295521949897678602035974459134859264267742817983034868715209271118336756972999992371780230382026076440978221501534257879573838429904229010280087198829859840251540583474484421229911879681792175673474911213923183575241794499129708710496481719987379798568711185549305502865850630362970717221729061393338009522558918058036902497169487156110275069732515943505508770386642307718437008059304881598744401225534545714341272449733265308439011881426354629289234293025616643233578127206133597285009127339606417161537338986213670537853896120844053701064391659806824828010846334820374907567607222133517033262977440950801509480870454061137623284972054926952382161001055665928632724094060360376398807188633250401849285095710860522197049095383042544133832526941437932421936401753869099666395921832278312711706780864194794797736852213238496972790279892534073524427684771676285006103042512250904242980420083631553402803417547446970789915764029988394577997604610111991924381749910879218910185058285866886906987865106871579138769747131031394717157693667298563523518373623886298628231213079729362659478213170906397020617242426218083204697889704452092057521982171649571143798652133651872493899391967921788836742789753687797210808592918197480069714508002682101829010957870203476348411190594298762841530908335575478015033346359417038521003597119269046259286742765566443442973186036787038822910315111205672752395637179732324453710071861089328418713985983884776591173564521589766328852916572200309321866945972565299555817281122675657468251473241549844093043341199215563841877770001536413690033763359962570685354010521681099849403225963082950775484733955134801047652622762921223348798062683077151628402090133944620002842077864388804919369430570619603176610539039083747052182719257222750330761156708530775183427112229731369887639126996866756511168742516008196372824330766698138335932850598009631036453979364030498465211190223030606987777773030541985865236251022823763883502883040049185059708223505280416843463271662195807817436422017955050902335493240219980855068979994675066205007050321547833393692229245538396296346009579679167289043440533292398368993035319602712457230532537996482990173817288241182693309630837741280992605076474928121032038903473945047697846987309280417673892978859711118156161122403282473487607476288029067085106877823805612724906865699826495439464245137831534885336982769462086254491015042912971586602402233808448251278243490035602596630079696531791237827639480243412891215921241290035595591663831446368523464640832208902820750013857146437348547770128516007154850054105084181071103412055562200361510609773851498077589384394394610636457478021974210348582350908999803211015409856819223627562449660996731383678650419903751181807596095297351200584964296818861122335637391515988512415841763952079475464043472868587000390838720339900701195617752095243892363748901283419834075222412634052875776583834077953962562623833083715419092931708988908329284154392252352128261263953460416961704714816614231727709570416764360921607086532405019722309304805613718004998717091471346278256245998013700885587920840772827124173130400760305321406388844708141955573544072498125356161895128252658928136485217949847970094392733563386952821887814754260036751951396588423733751381269900225937437551710230840202699326596941881315623025333388392017899132407370404090703923576109773910269796969302320603200157856399218901547801675496464628633370191108310282392838301706782812090845311669995384544412616442883484003168158022354252219388524295581546924111846321352361858390768482283860505922659578874668786819597583653282203844666680397136337916428560110284850039002810267933712789711172939593204000042646021653416912798864019566222449132803883355737589097895918777758958988621467042607667176337980643511248801705487394998132897246098848653210481181876602155704918214316809076588196465779587828632104830440093269259959457393889639887360758640717467145166924532593489617959021608916393300811355005439942550316382228693893913761000448054913840750796080288321223682850656153359194001783635720599828650504609156347814207775213773979065294697445830750197645997635476662123872359809552136358552707030128281785931718994141745805004928257388995274163671797352160811826811684468282497942057436170212861369399581086406482024968477733745629197796389270847067693235215457677801197326511065655095681201952081946728653193686579558760314749264168669357459884856082705806594917336379181390503807700627266571467468033371516497997841960763786690812133878136221667972964825984019675266537850023756377765479534288102410482559179100936523967242334569261195605695293086742609010515534493345176468389416308465782714347378672571131230468209290955060899474087676179302759840913198335442042567913049423688411910713041806020749321794702979383068386188253137984860289470334730725159437921451680552501572791718073911552867535820283455269140207628150143732583626267810007468787879407870880984763530865901005709356922916743696881279431010398928958465851901182120198302733215134725587881800261072516827446473935491295345986386257055552904195127343168442699458564665273451026297374302658461094746033382715860046534306556872860466394113042228957618578144720081910905408268269653954510810325863835831771155526423598378252823779980818414827998994699622072670567398711710730460774885175567490683303892149257073909798614475926546513759430563835010674370173548532917451193519337823855711016404686786615285226545149079626065941507358200736856770580010231922170381003917961765702927343837662472330648309991083314226984890973082177990641220807022257811647703595682518407756357806072035936799640666375584613132712305489266407336071265527934656009311629115333299521955477434248406406773688919189383403443677092839615053239865463398414059959688340542824454346511007582515982582745283069406706896931104081075114666867832822470458960951629990790120712318397830642811692902148622839911215918655095297814552256812991059477891125820825808118653107353821702624270083980946690171662645847328917774761529773127217230070540396265163850325636265398281289672081092307394360125218094004437375464827708409365250694141944558949682418275632488668830642869103309031687039653126837482927216654288944095726520990975354179442408815127045743174996291484394959096081236327187257425404514521942338158139449917197006485790660105431352506533002432601523688930143979035703938668434345954693573841469216258773159258460830055499823818176276494441282617093837497824580753007945718025643630698937954883149830282927421292923088567464597532524895621160038789539474953479375910541583769451991458401862492186239502003592543921655433684676972333319823024720206552312477646141227202775901060085635618318816889368252278029157850326139491262566663888643570244115107754532480562009854376367668126754093963717960501919804221855609623165697577926504471499636532000807073465108391489956574961721947890504790485361806165237617080833266224711312278692202887657421806255019019743352172951914123836664364466953056299044567171184360896488666979960786665485784010369960772970776613824444335378193505044700537818159255046971641663079488705095763918104027904488957475868621821790298484442625830119340612531261918404334435797912983831837515406069008905935997622383624136143558700984545538837972249407431052748628848001667628040806797654632117244769685752623751336644861333767748165129609397123635278939323267166079420794477574337483664361259975946270724369819039533563797666972645041089751997430804333081270785124195241094822237133241090694224959137640086057622334021774936349556209476832860095459110162864782888919569495490309895170608567088250423918417042782863445079265212331079407806899963359186121050058834308326357119999543726026934356345342187641725982166967443464254108716037915728601754100536459502425162779320918473582750413179467056568620200126575461896614419815143695005218471309056044832190805994472363016489338894546875699565751478010747102011787668604956630072286602103092120378007450343578914741041417964657561303395542023853799315730405633965781390862199025549509535543850709444213654429786270970080110647271338413296107512592358137371044297523043312406437164354925568129628032115039827851939830824944442083912525910785066186338343025887094260502323611831458296346380769404770059017849156869754659886066814935845052462050212148645682531287718264440829447383073856518266996968430161150231268443279664429837060408188355139117744588058460959739224299523871944319258558359594284257084972617287123527251484794017813238317124343740625802388370533770160087253530105616878325444295604034254944957124317632225383065158727982208509501823416086389568969814554837424633451908025319130792431195149351064714479562111400494047712289771823461917088636841079800872816440825904753637732329114206512888311895376906496109376672535141830242971621725466942320933493502925107453397968231060325580575664904239949752097396081080797004033392360337658928515023653093246671943670190845684843411211584065174306017753645015638837217061245860924796946896386618744783871152209571063929248140678744263549626080401329469828661058340353885960976238075917572956809775916348930041188544097963292341513685410472351927881965401538887005127444213248751374831520079693450321319187257052957792183312489345010569546481182145850310728704094258004531918063596545542220519126895930086768548919570122881679879193763459286832428970717995728309601939592682168312466819474082033292058243112935099887694850324089242629124350423376244946573145884302214629199538776431419175269640407082688430217146082123902589308828997411636373669945172353220226171592531400491431391176054464227123599043476665496799223522783402401946341795041180183176092825642484777783532313526866961802953849004903473977036502271458786646091877457310233969990119807546446793015789608238248064687849991577103616427572616395981549943197398293752255416583190969738001393367314439781151399065386067888823012639509503951411331225167210123371007841421275687174672022534644572204956673555373061678804938131785937736782989107425095971171491534963059974512194146064769229499524564616698563181195471989955661957582862912276760849240219342622566129699220807264671209367719793935587440015303765305569501317803097772422789377022009160066502212686259162376034772443630745414897371607766945156395985899698545670117981965702530996925676172980126246627372698581136472721635045631039488645661492564449790741483026350241273125873637933651818055447739286191128380450055774259402732980259313822384232844567501811660825016358540945606640520490202499512257326509778437846656021336751563675926283187708081101301904162503224377077731905383297081782943541024256364254677301833647161192561130303015009759441180692509917675022997789501392051936984414601261838304341914534542967213878664601121449821956367438430694877106483357807249938413366120113579956036413430128426596688560888218789182023026100379901866471759005235641943579123988298187255115163787827794969191449014406413099819003926037629361072691630942304700915934758757513973544199174765877798729871015182676956308610776021766212727257904720807406321562202390531687585030066247127527533849767484858526866505946505438698657744419116959782328038889914938487034754767786340919940304724937722737758770879844943657318433958998248716866719356713489587123989910788554018332771672674731655161784105245525379461754313832253441529368214712787362076912878039699909277050964020760908924484709801132577607437191942864152536860823635326598241295700230940481811888812698206075107113381768415334442498353847049888183675544075049279705247339642282895437576510864898884377512196369278835674423251103279773918736175262195419493351466445126940902721378675005662729415573825271101643508658880396376227714013711017339817759653400228737864182979284552945163190845687687031525478413056106631665394859391524235919187928751540186937922942991252196477974790114911610128089683282112469082925546650821273716525883829546587893443023450146051737514569070265374474418608154674069821915705443474178936854438117995942617327389576364669508942198890504429883989357919049547253482477825372612266300545765013199288812458670053832053519510977191651737332056613874652045046918908591181320536716644321303357616220153955555227413005891982565077944113785170819476271753602974890308179344254050734897242369183999457481988203653790391479199223838410902319163500342095580130638675419355761821282848288080345937411175405609870635544003580890689906269066361530565021118625086477287800678350037748218652989308692042636772050864109606331474941740000814178341918840559925884317358873793059089147921496680022169413300759184190660904194668265691075482310742457921575700387813113091023821383921545180808886775750253561810223667865131181825278166411637545857729479496628181737316588075059808741913800449559325958598906232123622203918369489020877190405441223265891186557789175493025196879088604285670219855015322440816796204757854604565980234941138640709046673893902554806274400837908292206146587885733022266811589250572120567918260255968494223824294159596781282682124241971548873495478801436665031085772179230543436864928359866654153139522269993103194939602951220135280440335938669928532185902043365011945945663307201861673687545163384774970629107815396884512840535451157219447450661022505804258811910657833818669254685239586200563525807389831286831470974279466668163940935216399729208332534508016485638712664163701760260784426252518318015661039814378627675134409754535303357938810868175583259084202127562980299891336101146256081828927760166074856302744410562578866281660111279224254621218312305059765638596975218975679110087448906847118182494987237469644724293311111778431065011039998457155077886742971463553097665581623930617310722727295788351612413179861175335868809938181801771004273801407663320465529312209230390235463368250239141123358001936136122414343991589614215531924422416075229696150779923252405223587453509112719297563721418692227805113621579804161575625485270834554072495023435812466276744024593438858517344548199425644347258654286526612880341894718544602686532452541141628681078023304131425356638045340044455804177336023926340373660208393423533768574571762467289776143219866250966483090581563785983449710876832055269837009773362398436664285023851251384494300944259028782698225172296358937299016827713164588763116137332994358963558907858791667694527709194404247307008311683652091398847956225561659736742353107549458240847966288084766904720546694768598417324059296548374088344511174591070530778725466847194480436990470350085224199792823655633011881466146416998612155035894303977833974324876316435377917642155549946436875598491815884216563251963470980362430800824973009918259365810433549356943876333257340114353517839051184008726828389307864595634412327073653316697520917620781459972751304840809467091983458408538972029606567368782470901030484413325566278829494700890351093912607342909624328585470016780995148376767358623037055749329032869714782863355052731700930294392710253111839864170502520403267416353738658001248088488793577556011629973985371753890648075597333470001148317045347044371028406351143102254983456262695059228644973330439532617917700817630265998141715758663487641230608830554418797702359745889192179248700730809962972059060904284621517079012753112345036095286913909642082342028540271877091490277146247848553183118472775895185747506013203236434663862572137809111593404968689797801044347788292982022653124165444810235609936956039739812965495393861411967293105339740406019478920009652309057061473547566991698088353517810800307869545839588816570609939005138619683182983738768369002286274226009331396871695161572867674879818297103424421279996221558179456796836753908427323905079339887048775178792200609353851735854572306995012812311561893992036683959185189357049331699654246785588462289910627435093905491435814510749644382383513671077705457971196611071813833586821076551217377374941818271275365092164938113095819800844050054609093142774682713278114588231311498525231164660671274539014246228766904575234892762472307677445113777672349698518393344230786937900554959603457722065770598499973092293100393017270167206432785386126581279215510786997082521543628470735685244983659190462002589813884588731823521534488069012701821257240750290230194565364568367149075858274878405153600598793761197688751597919457516757217606064378240021227724479599035664209994541894162313149914759829615566468549485631313750054544042128087915941636817106619470943689618454192534171613461033654661718439540602193940603882834893049074931408273473925954838944296531743817157973417089070288840871224977921640898532875267992009352661653442706126336435491008252383661484843695880091918499766520187545854592873861921807768503845295159941005374504327010427712380373474431454385172818627192291727491477326502455234492115165532139711584176798457824460749537905899063157796812364395963735764602289670569571259573323191523076189891631933033679535224225412653152783553249723376016946148544862286515941105120057572400525124310268206360959202995367012513622949585344180743882697270695548555546716690389886762572313783296035616861124059119763308504580619099313452457238838634617807657848179666081927899860917414614809995608494400463475199896350239321506801976835785406513124120072402580352131357811440978453115138317582862268028607941395526124760430916164805508581779253668550999714903792731724436849399488286893338169149258652664173813885082309919002163862006332870780265200359856228729204686559535427822803435038772357129148586007257624263032185631337743030064702707903271780283175131355989647630739801668201107919869539633809975159120492291898549502807866222102674027888898241308834007951035099408697200606610736703673762760652424234459395461936725617608718567479487720797293867821708800605860135307924662407349069208001194580824332290458820744163254866532377757199697492350552970721318129503653234076178059587109224467971250273548465538057233427906298516355865927035632395601176464965664212784372184049143662005798670387237106875099047135909564398196543547968691316739626577485230518998768014959861533601730889842581204004666633174473049938317505350635945111984625959222647731486504881379494825094491685901369003472317912664685916708852063014679465659356284598589047072924650235223773532854249607708565401478149230029568065973480479251306327120192561863179220341042993858518743532558771491901036261017181952377362175338258378893211658510663505746894916400699740615114148091205565745863232803099251082443834977228136012615714148211146854564742638212120421288969437944003906295175423012853938594425545992299441503672815085625338413369928830300005020812414135317156474714655171224759842063232177267639059398032681775913314452389350558418854159324040708933197692547242318984467129142607166434748738176303979690395555775306199820123115977224494794960176465071376981392594454414309559363121197352304156729646231025145453857396392563531277802132309382373154796649713379156462119184954156444041000928001726761170269873348163252660600728377117237816200411783584491235387777384557369197642018196181201408551139967151787386112665709062563887744200012387883104993153163293502978490521048087648388320750344897603951788393931232558662206954359796904000391782799825058309771538972067840669512498821371824889894065141048242211633959817801152796160009631360939839905695531791926781516096235401617810227516544670711427419876761683117739100895693497172096941355350625390374790873226574953799213070629715062043781057749105593212619608239158583320061118721636261938400962790627720728801409175838400499517514683055635513180307378834088545677799190073647557654195322007664096969457827044668001093765260194019914885338836902226031986515164686226011196443816702069201211378893460035696760145240895195297138287825857222100075548309050024410342631397470442902983676339878936887466070250406201770227401159266487349774473990491391161141677408913990337066003580901766419707669994800443487881007451304977509807199926183256695147217204784456852792162922020865192824826676795077526138629962427807560346426799391901881315928618330454217256341730392249895851227811413054202659691616624522236287841441325095237188887882582955327143412586309798392929028897429246001053262572050502504935407366742125505035228644659156368623292747225577724868319591549265455799588213829142658126663496269609017209360130145167356888254867560793966444821770801201636828541507838137141384291537197824916691403240816975620051565535082016536158256655480152561588640026544597721725998001863143936519983740426549072126827341942922554529858655248360491416479253055942393230592047291384470068750767430206081399335794077548838955083232480267253374740141880836983857936560622213570746466695455542311651137389521311198135193464920926536193817583246734698016816195064013395964062275313278815388748017002780194768105328115386174094644986617141040044983441774919410638579544804036028774486964465478513924793388513955945168681819510692805447625653280311480402873261624704458377329408394603550830341370265215645938320516770217882604152293707324031982015054193766348801406713190236893394169499867320395508305606927864963685018947056696760231359771825493082110963061756978495381874981704982630960634363445210136927151575630207930598541386313250931202472131142207648802569882803599243540435987806093457286164230424391291433922194181490699721985548099228017313677702797469555318774947488200133911405579518020021246513542148100556668686558172804963876067584985539193348885120969931993401039248007620968709475273601843076954288213293438638407600590991196033423478996317694093392888937880060912902740066905483434467412132591367639434709608603953039334657443064783631588928450062216996198110575934344275676187373523177274622948141592656853446487189925518850374463593268474714285185225528679651635556838964882722364266333287960663166018045627578693449945820341991332694274463326380862449818308357318365491814690792507626130084359334884769809560633652220569973529900189298591996003505276031494199129037054833621584116574966044397728557282874295117333056342593629283197120386761923537047195798039182870094539506633378671533870494621295368623917819381302922053065918356233827741460393073441581214217015673097696443695394663674277519347229579064047548770211734934354672679275612025917948494031665882866566325591484358346292967840835421413971061740686928848295303056029695382664732873717962048277954939333567425219525003256884561296976459720585911923622941604100494133919380970422257573922350188881627226084163846261128106115968305896035066108198763708237553458885812273057947848719197118040956414952283165197643368334003964899898204055223802634584991379638126902256052578749018748776693768398271022319305861512263733535100823481270045475978029992993351793021036882067668600257424970004877364787371755813453278434649501015859247766729606311849361931370741700884372907463371697367775187813519871283868923225686190253369534739632875219799628795420505595968777987753683580332385252814981550460878384576524051995607925662285028580091078348772941888578057293941821132404641552662485356891819278257978031934624211551526094934207506181845047625845797260383544249973663518920540883782660741198629933706187828707313533426444566775043460765073425164521186408822854306587104413152326162806535429459431313266508906221286151975124444409698843557246450102279837452175911290096513876803456066237312809224437656066822267422578373317763955695313234767836961449346986712025735143961512214319933288822051631579209026246497201203746478474293774142122009121064716673705979037942866995223018867272515911186993517643076125224872175397546629665824377971944055748176934244554040716686041004712515951110123434334316718327511244405275130896382506601066042596186495841803974455923618923366431490521635909315636601144325261039673962304686281095545117903749477110496662547051891477756484699446105703480237017838663183195680457209314757974232737736692241634780360297014460004416104888222044514226620406464331772009702864792375159672865589704008272558977200060838254347849604257037841293400084248663181609963285314906146395679805722846301845742793863346116437495541679192622977216975729076378081064190741049585534782664621769943562781375710775879289282729569820339253004403834481714998455472013331203525828097432054731580977804283568297978777209887500329002019352808900570810881918943253846249247752298127697231929445841438313926661725348230024503723446234559613294490364083596447167450535177524342926304581960489195104720395949626766263561133974751383194932283465902256562771131442804905155211747649690659687814785287849841679747423227287621520391248113502528647794015922304793361094599065667388401440850238882571445494587825395593501855145518580933496884495615832144289746025882641356736482300014155016184445825051396614218042717001143167275931207439153608225072117047909357413234936895731772408083091583805469516225251351542219825956262435960990551200688214139695743123672687412585914705402535371843208229978912659017105447005312583185428128301017784698975485573757442402392237022421895102054167425328906405831641208118408883189817358995399290440974190195023613829803761361149739435077030166344000469944036917062693419051710730834596996645179401185964875731657846976849397379250337112160057643753110498383990348396280855389777615256469008076518956337951854799604953201512980127326804799165594341821297252177731549209182000603161351156421028536540578223003351246449680688317116598859777590583010679336826564040086133458466970455646086059215556555210969514128748915710589383356423934969442570917576153260565261097151238178439049436905540042568871241296247440605799234419895872672769287899396390809354350590936383856651476905018247244783972175668064574755269699962065084046225738724949281136205860145370505825166434154111959094158356663220458155726797448225610313733795992777747646278014634569343625106623438321232012057949611117099523825170421791033912052297773752637596071991590797170638059975208868941740237325766785515849138597328207410055146967463002834857349675245726638146237588470427236995636966699092967881332812416452876239659926088559881348643347944360674458129265389676155641474014609976422306672498703290006917830106214409943096879307378351270456665753545595961394194737388214257500777123478414922431682169460945728993016774439821633454912397187400496464971650279194292131295095373907582284145297008669038921319371866202268694631212638630964532954657711633152931713715510841065491357069601918439469266334604880757852566162702837613171417019212137405010824180974189779762840658871574906809656589816026126683231831358068187876047983925444452577447183080219247691505641634448856047994422366031982615156513313774621527496887823313267244328968920298856294109254724761479969436550810633295121881175116622962035738067888973849682047834162001454770217935034024794267956564654557055878284708066027332229807134752941134364839027795197680083730548539057155713104594686357791885255582901371093094277055684075771133014098775122334843423760590375653579935947472357846273292671478320119777587873624298316075407217183057392832094085667370259324693453265583947288916831376542633951328111174930297280374497732643634460903665010520763488860766437277134925606894272574641723677202444593391509324159992042406305620410906201304765249102827462841511805990022883305713164640880232581832647461241314712056517057976824575098640094892773559718199761750138122686286057838860865267335881546242879927845175726964132757921491377924185749909338684471658850615468181533043136584039059120710538281036292046342345151260491154768256510997982195051980636819962526543886457646138760790505908907395851679829102978907353998926072839549531546880392448402174252950676553984044192414751911501475250235354564693231812386587061357753082749014972543309243872837809519190013170746178969122173228901246014218209710517244582342843147598211631965909483403215489612017613663899110184889919335909187830824363794901067945197074631479684960923497700747362610880306947185711388824212073492487805701542656731035952243627960939751320252040290724131152703822807245474069392423695184646552853649595374116149534755126590573184525051267094080490318925435246491612350203124837590580569574230833939540634302062059305378842455655695284321645782544728239156431680753011931937311920554792398761754979426003290085016369842033299961655362295895601499906515437332504622628228787009813771544855435196372838624561633376475438029621426135518994597014567114564703715080190388234806180179931489225305068324132901265490915944950904625012824113263452816076758084262638811431277071061998975873467834293659360107228557254574574570890734600008291993125879314679341387009341769648687687331581188879938002688038801390146114526803028543770200691776976046187807712867425245386247554809079214848493683639897542174753630105547450699718027499852945155249606656248717145211288147872993680351276047227129279654269186667159973610691109714554031463986462250283712541751212237727014745965227320969472461884500397662229609264249243906231605142420831867846051149860459088608169481901941185793258283862650047698456401541862154014629340219390392744252616799226716623598787981126068101334953246706836575753406053320176832200516740647155512435400026570148918357967170082803443625684631357126602344842843776353231893078923641714793622483944997168145314103962739345575459790872788111193809572549128488967723533821681426538608194552561872462350959996487307694418551192100022043973394715317861759122349204840878084317184887005268116161620085610285663350066964876988829486051377538072406044021098065457616835785954791040426811950154930336111970236568894674948737782744591175060135067179810116947464379438803299437030796948862891158204538470566327967554649605598216356343579865404195587831181921200949490124458740740081861356489956657381928595147877740494687371114748611449307886265539949790043163883890386471029995308200133653872955675684411538785017248449894410045589805511984958675587758144333338949598921552415146120883962942553336551589699635642366167530434143704262683260045442096770107053868145580469254036006620288841831740876575368781303447880879231619267275841972152096224276134869826132863536013993013873984197324845413800472241170652869020343385183099010730133981885745782274212212089027182636567678386002184247426468982553333519803813686680118407238343972951972585470612803648094693995150452485870940394321221540166471970033560212076783412513579822994869409816079385089832705193741575133190751857823921675351400447481106413685473208914899333194750945746594984642041996440827216534236360396733338119505080851341314143933788423958335286290147210630535271646529265126035493090101909269976289680223526993142388222081473056746002646478996685513885223346737637945233084500675485064143759933216733423142845710482184364281141364857364575058955034630506303303072269359895343340868107056058188548358700823162829835952115128744743463604029912519725695552951667862122155116172331737481047194181455866155941475664597007163091596646644328169549245246988432882519051534492263039774356316544843920342977360046106542819562085739654935177645692569975740184767549504670179520321320427194508527737575396217787864695946597711824144141740457000791081397475353024970245488884942550621053028770316427812673424103144675333300156513108388648791210645751447720667398275417701747532217334349956217716175182325870450073928540289788489113956481730312609412882234731246585235421421030474792201979637605780765770575964316365084778653501894695841299493484127295968857713868520324870429066080047723758399324526308983545241895414007201575751477086188059444240572959864556404021914202500781562398637955537635233672687426199429667774751830270372074275696977080796962480676678515595850404936573534280704270612766927882761131055384300073654234340924666099154147947670784866305336379097723567085514654263703196409247943671809478076902166440748513694958435630830634799189987516049211186863359553787462795356547466160706429584119925276756073595359341979111612027060502918601724565116480253107124767223258698329856356167698041045059891986308758205277002084324093126538251298234976623113873007625880518537243069982392640873745647924979474196345202322383429716094300330558402120414337833228240127544956419324864216530649071506438003204829562763677299930719467516226771484478941466116011717808829162559931960004621404002860129508500792284452705280025186236249849836343172352819264384595824680347677599505071454560477410731392639136800335661743693302708856861896821920264397133060232872671375922341466042997227668985383776042798948360240127857116431572602180950815074105533983741404038090928365878937491204039672818091891113172800266409719389355479922215800181295977831534150173344892395692511496740411057504271684637422057925019012141402751464316471988072008148422205165692071426930105170032383603634306970463119844396321756875250134890561386097981743601759033092081237338266725844161106736318620397504220131982579375194540355595668124975522355735634240234632560517162808473610173977473408119374122441435707292451892322260156230125160316436883497760127493304828934404530492365706567462392805186173869067860869947628497151631187471186684690755438693402289684177957929274650078816269615411222900151636753857593753650644744779884937973375967454718313808173873741618983519608096435789937639668156903190446060234700833261906114926756464931265938002766482298386206134345538002811097610721093289088005170374984550778427441297598695989971011166889867123492094172033340037692999128421530414402816808124018617422854754383149987103539496215983069707516104039314820151677451716787914778281926485014464092587274306095404868215612563581430216195144194819539841734784262039237193354782570899779465004703525822017699864615837670608288356740400250377190075401664121902054266558176224209869413317488087581800433726753866115891902591432478418248181331229705951500111600280158733359683511618883640860577469829494261902349759390265951699911146583692644341871435017767635873218210265098940928300122560999577811646996376273394231415213054788882934430662660617238103114921176042438896866120890983708937388407809776391068549900279747466278375727638779487925511450595330839215563372251240945364944801339207455208938128254567173624089853476116708134696611834778406993547678613735641225116890949300661831032888194652343927345654647188469922595118864295007704330118678397767129191279841269749960297067988702473571079286347793190950926124994718318286790271095270711497797169454511980261056067088793625388754809558837484374736069299150743062805258214940443950478180550792955796020482079813605573763425601765075332844296495410253865191971209581708991186717537460568403827692803052111576777701080991802427590404206162525918626588346941721324258762083444939173688673843954268230705744665760747415498727352390455147139038927783505158229510406044887420570533098593906732375367489948279292856091114807059289804571884974383757809218928832117489843147450013684394756510219150091555206803163261835916313479626416480839071560254349101065075266544897147403576047689455584313452643811753423991649005556446328430686532225323525477806221680904653859269228456870407070333300059090318623244381426380239970516376113555393792457798164867520976861293238338419313917003386978038464092492597866284197108752314656431634151612141934436464617387040440112690659421979767592374924344526341013186118019535980380192896213011488990074000714467050703321567546391489161721480493746174558148546602035646110922702719454860617848070715051838671703960849087985311518486354257760911718138587529033051930366352419068904055207320632783633727930725737019676150148405428308715091570865835983094906797628107419978978421690828908747190473699954838497057958167505705619255062695298574299180085350637690372722160247632799005410293614787129696952349062865916152709264442227115840531553612197271424177347599355358983136615662015113150689535833973101128991601771334669025781307575079190310556243712696942820452097579135990199492539214877909743524856597808578678646686079757265543877753618295414471961009504761129323097345990942486416732909097931447524968558306338924490085916120838619970516219923931332995476277183920048012628887362952842331463563173775110885473921770504451192181870487614004404967683222981960508558208845464628625051370563562821699283671890359478424563063414191389234271517839966762682534708662842804270988795883780858110264909045872836000640572182177795535525587301642170028735399617011808633498836074997719984218486559739338433091404387403308453813118857702249889457645105852079926571358866627565693056449496040106172780744298358658426694617657289344697072396379227463295785045670991333646394052244158045130851907306510996787122930369500031175238549273592110905141130179075634789228940614170261664481662011674707624562020994302253123375286403586415830712158594734107676421052895473739046088666120605208164848879639620559690824341634218577782648822822306825364090620913170566712582440126495445237298515603954430516091001978201878118496996071205865702028219014868186921751404511859634831838900613203391588273156202043797593327389457424089608473886014543528602367155409434231970240250978195063295838941694370175741988869488977846098139525320447430866662387741376178221983055985735722912790020254598644844935199290212515000111714469540703346610738631832691649810391030337311064073356291485636787614643692098547554462048462037516130547673576976875576950847783870767615205093842478431532094850077480685740630721010758484043188950255664316158690450909830987837946620514864011234112486749269594682028715656964557300762737412760756326594742154295227736126408500397875075834799569771085516552347252717201337561565720432887298582284797954124526142976114598793682887657115045050979246590868464519965828627890735186640137085157057516763437347474562295090682390399003507570036415778387851843885536752320953677795075119823763348254975227567955020737813102203424537498296242844556928822517714032144260353735796492856880760021017053042246906008423183103510528488107354778204403098611768338568341023996152626720531476527324739345209263740656176483612365654009284838415848780132410571272632414732511118811285458850164755681773742578685842606435223534034694247505358002029842021334267317244656607445775027024714202998636652087632334462317559730076112422450550814579620406401454556389859666907775134366581406527328928466444178439715468176920863772259795990747253942717263470616099370006427412730207566179671314497257160428025909792086563130287296983887198846457945544548316841922140995568650517016260756808887846844896968910135301637742208312798455692065867046764311755062539930120024546074678716084401243125480402987635198918656241275997921112915058606176387415083754834532279004405375625294966652078471009251113496479055695258257390404238108893371689835605802620957891037066809462983446250272993159245994400482467655182834439873426122339406171662158035341272374075146474334513203797394969597385118630967247153918231296687229881509325387319002524210046361924966526733402789846387025177348464908971576958899218200253273285789779968844709107530305746888737021653389696064270358241641805347599823054549610129722483452363612580339259640004165223891506973579865119755037128181014842674431034398704362516893692440678743773645384967518790480123501954551435030594127939613693554258417229226696257344367838795810130364376372029525401437296012080951869255072146659604060630945742279305845529605539460879568124735817542502925337020281443907974423849443016921766963650734593391023337706178927604033612698401279535762198471430574921220627908661251439700505585009310042863514102838426696793912905548680205050428090801543356749703473507323158055654419141005479023419236018034475951240513419019696290405044293301199149274118714146963703572382172416670479417257136044685406032206549330342491929096851326120663970195257251912515901988718891338173154967344745589010923919685531746905675871814597184212059386492504836898867446476984647290511456743493375090414260772893073067799853332259368079759201350823648880564311440583335876076906933316026133009679495730101239977366767538191680585162606832183224146001338325498945960282955143718777542820746590417030072822592529029695827971087721441823183276522479124964067193163543538324503759379245729947861799807828055495755901972732563163371343735599938102199007005985843199683457507452644258838554622075891800541542120125128451420064763814695802079306010500093995305376140252954702569536474606986127213998083967112579344684096209565115030814896028140649986054117497696216167859469131479367375972697806377380316316610831605995670902065029031029062713377606066759734755191810165082018085182835436529363876464306098407048841064207529801632733898771064584738027757548455989105154234669599765073397655072094208399131428864033519726268519035951690340976078075561781087643815736116259674313970189174678418728816874309281854159098187206682727666703428784340368884465113525890240355366998302524175254136271554899874225350411857581414030524972285476843913237456538585391961683842642031779396364720898429841184575479211547880050355965306744354393163219270810407225060923657764515908274583547139755463702971206593814913032923126515214539559749396479640178975746077850388730830731020562692053492100203489174280137909942961260114403262506866762414927943522383972905343309344045405381620481737212695392920450706846204951541365211534212678895976796108477664281125235691827705499513194970956235670805673612136198411930098430935046905925737821572606447969024000095686549409843976682831601852747554241420587974713506480915878633378401370254859728382701935360060310267020571195120655415310967482560742038173224598558359236656335400353473699852085092673160245763351789016722733678546117359348916588490120195749051712851593923713272071385264373518314955094169803947172782726696194366572253867536674191858386552349251240910376861418726486475690568181360055548919569221578414214746941017955478171924157055442898998361747972021427580018717624415244648027255707810296509272987196736501391844602197637975758090202344847067627075032840130118722640495029807064312311896131829367952562748289666258055902671810437899206584530157920251398061534822206665135186152307838140038827005943293349346038578681816952377032040008846398116292466919148326660653018085776837607811649085901740648854792090951761119509793811223797635194979484455101593986043613245591022359215549918562015348768811039465836988186150869560469054497915424475128748253991517586251438525658260427266656167111919517358772498235640879703128428031472690848548250349690639527723336251345632128251148799789536496819099431872766382336599777437897155643231416982065090889563837515061127652257084971185168107201463431367833968285887952202524198868203115777863830168328303201824424978504243469825172019223138838537371816281274576708861088352285475557780598717364036943682679138472216940523107819915603684557984863429245250605249101099265785076123593044748541458588483848128204102478185289858380450408111180546432830136721397742146649406630150256002483734568296643920059054547843191158639846700135363854698842982970864396633990930091936059361385711229649394838815232338723972064429481541849602668051354727596408947801292147438950796381807543113462362717822835816556729121078934204305807845599983901790584554754340167754356597324863737823719296872671240255701978957974387106553359790204379090510218736204861431381298720900484295989688324941886467723796708374373223597985561483089265621015345804988448263089849996817265080859330832151060346593646511036009033575222004326713881633382456483165992504919967882704099190113957137019599638987604467718878782403059105407683815638914960641303044091762986187801416581146012357921024623498161465324474734222118370407990959591259585171212408230884478999627763122839473795337334562030936713249052445849486911621827970349113701063853358407306213282280682069207958480404003453234341716572449228958534397901980413817194046205486982716820061428722221126231810446592776712578344783872530251335376891417039560923584998361088466923109520073138496125525599239660006600836385944466797700813784726828330404584739202066692653464319480065716987864592163920516811046043149739326973290260720369385799904559087197360620383074658717020322778674299818922358307147382683229823713934016709857272785680830966951547270905709478925240546217647882166924438136483941416108562747326374480406917270206919539821151899208297150147726478157162840223785387007377902190804821780487665455942012763507422728002263587521452782539709461715100947703788682981285255522175752108173872406560815129916084110620381186960663832531142442779939802968803859817682537252425814731938667169275382594134763526231887163761581440131602910958560933118603832598754154454305630079303095269100720514914966825392256027341148176929855686817042639582069253988945518545077744003770045350822388941033412990443853141054869921672035257884421368289125636567097858262876914936518683480348474641531638086255186959477141349162154157936436140656769149866338404556081431052642133551678867589953533624687380386845517249444708724571477147811622867894370146682604862780172598743036122637590463516041084678332780309820963572073854340998603203731816283872717242568492901685937359150859246875778432247664107627254276621068048811528153620045301217848336231776957926241343483201809998667555533107764900062030927482896148230092953036699806819070437485003130601848931938489570946269801295374745801888013835932373115160429933008579670383304686741687715236542985574257839989529161384680046884984844153293390436573502454896948526140334384153746745031202530007683647500471003538372731309129339859702743546959586614171573625557679478473460321975871260518111502384683029799096634313645816749016339396681513989743591771821203953036567224162687435873184700184434703941376240474365796649683136393430651145275312230537875187901045696911537213914902936464570139472752978880766180445902220233220375229350637244333555736573373097022632127278139413808041518115951464092952999640813343187986160264090238981875904932175006379784922783788711740877011820811642912250065455137078285147217867919152233102984734586385360271608953010855021832793032210778659281217605904431847165355002972532949317987966693001152102430340477792791692480624736527065553362289281206832352057257241001278282241256351798591335379692503932806998626029918566846175359790334380527991575207474574808926570006210847149533400248218777925733658874456858394729941551640978405520645393779900530452749551006503672929972454675995734556637496123774096780280909246336582753009927574287626818133538021542454605786588291532577632370270351359877903446342180543308075523372203515884568803723850632880615003951637703013189524957569561941533211284264007801758175430604197029139906954741329619316270126689623917951518160509753900447831597680247249369277022909637411294566942751976102882590126721118068229244599946789516021572864057213254247315501200751803088552847051414833201206748804695124850105072495927543334677930527029586134379449169092956913088976393489582688175927969114476120281960103036091304855827041075909506892691502066995302270731043370567436717667216512222801457466195570882499041277643148320231897302752422222065167868425854479042403809603071869921700361011580125080304306004646120244329156635334868250104374809160888270976266895793537466166938452688095449456981194277814726751006783972302459066720997630891811896095401112014644377415016702130559196188845612487312202043528966019221266821539127959649490192519135262843895924836923740603474431242715818043879617831876064407536786648575928477775893599250504484926857704434517635927888072750246265536401503492106475994915543767897391489259373600081080425046264306084582163008566665784948707613225600913080444189142726342437764056554943947095508087335618067109918656493277943028029977845383719328862683895501250668788422879624293933614725286113930990618720854941759101824403438375491469084581411386041819952850627104902020900184165331430227541611537785164569806266561372104587666462326894439716018025726162780453482088950703409270995469081597420336116307960803660835450025703052919300842532339031980526068360941845327915654541340152833718195849517425813755491669588966354106996161052052369093771408333057692931673785544911707581949011136354181450785450455399359517277768167890134763197231536755122302842524956203121284163693844435799917350884833037436560027602404877860122147180993845926361253304967485671901354646391127755854083305785561425393861754886281270560509102154341430269087451173335583772993621655085762909503977673147770592716477219088494675932897151147655021090017978288679654105737777196516800693805051678075085526579995670685831564270839319340344370216936106918338418294963653981785693621392577406364166816284498797902770898831069363862267906487736080432151181521886425064549272022437719988333891937654835188046043064172755276447892138728651352768372732773590414386593865465188207256268236390923023891386284917651390171174208729972622383396968656146138583658759918240132357459986142200313883443098127948444326963874119554954429688621556207026497291459798394541597060056369917320412389066486378593487243175451635261802560946038501662832424924950123778006746007494314725627336721095325587692454614350919409774878440980890304128728956563563556787188486130042007049634623093010984167650639907508881543771271605507833984250642084270714495598709135074081263987753927133839646706886462465638702224870613857155784481890995700621106824480364063054801789022804850458349399940723741244426926632300040604494719928486515512112581144317375763602806018067406495961307487184308030335306891003904065132675895967886720881380210948402119583530377058479352686843511164976535959032004567636656284129862318460880396336706093637607520233254942876678882141619197287025047013378535452356039829424771056577999535737695182543301785206469681523240544668553637642224747132315865708780329851993852530546294489720240312804041866336761205065426687685425819309833037648545249671076031840821130789370371365871351843965663659760999084447125284684272996021317575836459566656930342726621913272298818679010099737214906341438438339106773250795808943445177865852027016874445067516389151410496850523664208429741540279243731999675156333411987840174316607795525228337282384874918044222829502426793757256300771840339380437657781125247179394707210611685549225196612321873379285695105872987283243776036980265897829380888393471769192505950551426101988972657090428654349645877412038636842767448006500503671409221790484038842072529485613686660857018031148376118003236086346015885660598760737963977138220969492518599493791906251541045257388349998180712681445783475758580642426000916211002387241986188678189194715850708775742529722990636774855089662683935923616705235110935220624285193759798249551447788662473389362484826859247149896578935542523515364501330915369450329853260706561534738326229722144404966601292971357684876519896209614273402052180294174597026421751848843954703572925427250988248474263530136889685202593353535265384572103695819429126845547588472826344953656609409201051098101600393427543701508863506603036624156752664478124013018047619863413413356153269344514795394602172675048070263833238252496576325149206187591440492158876465144354513198700404490753935908987986869600614489054219826479618650539273635812149529207211267056696257604213190970445230773961584425623802082646486524591119535817438449524493141001643658358785996409696463499543969450080988575740261527208278145505531524942490756494377654000938700992115499862932980353995572254449345765203584537182517169469471566867933879252733029963198150265429262711317094052978626306516073564208425595974608892259614973035509904313351057643197946352628872557398106146107631620593089555664956697663908329624118278265846501222219880522719669327789662683137988404372673828361868088095078508819637070062393518067904728401064222440532400987704920383486435238844547432800313172662644668494517900916951916772532238479756360694596508451347506012985912046837568735952816162549640700010640881163079701052107782698026755039098300146726638864624677299242308213944159104645641906796777135178765208322302810523853125741894483251953288019270172738415854414533808110068406047141457942983814352653154575150801246411939593144040491305523323937376425104505822365325483420883962889895793215527949610062875008602107735177943412441981504033531710211939318733884465953103053900613905623273629122923889887952637749850295255110326365075247955804534207138229402832513839544590334413274220097508376856500359646552543066888793810234026424467705551444738033837273360008902785230252070229645996045408483053116404277089715101910923167226811820922576054868360839833269316997357185296830419932963812675688253716010100238974375279390159768130074120204635221280237702823825788894224495876048504392417726627293319205670599008826334334614699406782124561937012182770328077937691920665387567619173497350234151188946071438741768643049489736300568616389276546444012180413440645644605285306481736519114327143591934299197294514519248292002462459832782682386061359593947500040202909279460955767977830682122392937325461456153198303461106444751547045868995342056043202676766124829015786115686711078119327415064165198165374251571588824354902410652497581497362209237543736504730643447492887620960061703158808653345269496664793963281891390133920618122683120433499630239061994479849164882956640200699436213680108160089758862131405643220163069189538379336362951848606190689831091274104617924149608668094265854116277634467036034039463416945502572976019842309966690347928172784672156561590683110175992484359340272990932014132458925705355383590985981618359238403327760921716697543821630929312656372638072481228056055532381859193714866266689458592702251022550164879988664390874047955088211188786045138533795070527749861408401666523291039184754178949732421520069214671461840116855544380855650471441362866839308873875072593822381001641061883704425381594550029269845472248719728383447712738033601779744675497861438093308166861727825932624158043239986249120297561879397100374426022158603974795495932127865959345150277392517365188696461208454402735061607776360200263474126773372439021925800560536843024498432192051044571127374415840346224978292719990299194819590616844444359941905461896004235184679339518006344653681228125778912841627097074876031903301047975407568536350870036568306292030356622699586522401576204086021479752902347048507561423462205322188819296456648490550691359411201595560862783104658341398462227384564048926147328842698539070733111375404140605000893605305568300472187627607975267438971525072135037279471105582505651827213467930437496388266599012858311714242456680337839942188953554413894131533668138669605005336797312010017635651326171975680363509090772773252398870448619453424661552291540366047388653236998766716986567922958814234608113379152916917834115776954725765979511568200186384391617572408685463166564050659407505163944424157477250737573656771514882667195787175305352992341277385496916254485995963248844307630162495219225558968108341411226809558591030376688401653085365109418350243841563346650403846715677973148995566951844679048197884572696791384397301658974510502162616341378210026090291767248546908496934653414121488933368906985459002640240323735487836979854024593615891255347605847236785141054594553979439043678267138178885588343163668619253662455368987244742151290412690485444771381167010032283215480371880827714289860398967012737276214856048617338371237624159835924989150140271359943690833148053296642230006137361096923381514909202821716701740770149548221967634352691427870228692369435660478880366092282785063896333787682759358818715515938061967470031913399526373264167109369906305372515596835671693633323840473650002653563586884924814214918266156432107559143148265643377018343954914710187338526383458824806330949255504012425436268240002849440664710620271732047113891227720506529047949667722394396001623845467544566160013795723185996532972462485210377239595918911335513006311053886157957514194425071475614010778676684454483419813652714051212510542563372237414248924305241968501101952995177604064598264072125629659906290325677897631621396575858822269226714221573101162296942224834123484322331510708557167664834457840298867270922707605967426158252946582471080105989914387126627470103776305934657390937874732844533278513355252645660753958918432650718463166048197565381013213927793365275558001830733974476394066945797633842815561795457647254037088141546432819876531636068516662688367905279071319706629898870446695974282296195219588272822711726680129642428005624580051182694640975158066092035272915253886583550443911114130595891139544062799978752275416996881567234282125974792316849368420079084323794910191699653986445621033158470915005423517008941543966947088674974284975027859629065742077707736792418777392696874199498385827162510905643487640816711423954307447559172730751568361359531209353689069324736522908242574583980188732400433648194045619829405392881571811966696047509777440160238417476528549875033967846528116579542294471448663264517209807854708761465937504589474629818193209989274262384776226161219529537454839921108036621895298162752161593895827953464923855352851309685629701032001011215991730951701888397373287790329906365539137575861525264666748755892848999952395870547384065694098311061030245187364465991217813570800664510414795139372695564415547405665820995993687838271300381886325636562379890882891454802801883456723870711139802587590346879983934398902755618162622615138471579943729785109676732114278518781393276807164749097328231791808513850143384990638525687187244503703429108965167400761796017577545403590597941748923858911795671358407015463549335371359358302961058322166729201544321386256899994125455054079316000893106639577758051604895574866096699999951852624920486171367470986839707418404886187852641931905628000680201861927698322696897008761764282688880339268409163766940557782752648828837377937334646486500485593450442493560922914317547517562920241857495066001837765883889872010534346908227564950265765511169882982214171253620121742914995430371187454847529843183118925034866254740415262870849452113921096782097921801515828820654643998128328598376750558191107763351627961369906158829486476589219689116564193164836013034279908456304737246844544573949781397829176149187516062463391029135313292729399835681312494165218752691239251036981761828731629558882133964047869854014030184236811041323660273352101542509390083819402225587014609641919902759915302637223436307349296771200857953211214162612951856158423581891684179492625490828204672498518328345299658329167272787769271207140110773990545137088862244026195629450407816787139227563508681100299717887946303962709626343011903604465231494060519064236938781522864443116672074826001497956531208690663182100388568378218316633965808087659270523154329275683034803094718360694278976758936445930876330060523913299257056453347214579654592791350267230933735341773528392795976937156911102431189262407376875112315398915207801840016787600436949130632786604885690436228131153590912021192152041323894590514852919513265082562723081885922898508882259004836933003251612647371245680406152837558373819310430781328513212336268059397082958051939836899380347709924663631711809097662361893108831779989565546350707960755597621457529123346012868461981540045891489323967195845399205902755906122093632380172617073090141428042236146123016723885780755667850520074167397375282559015145327851409788510258518500493349045052298298032687533778695421567872436534210110624704460146347334078863472509204214846006398890062569905966246649063451863611477084915757911072986807935703347169962522316475446712372196849791145225480657715825883982367818236348246354447186589704384148283980855857891366333465571935308880078247166261929729398507473899757309210639428993112847394516049810495802206969654663024537304461696277798771199577640796499085557343006211898869661633526042158962405101703196249754535583248223030374108848551477379748618835281997430986181480055089597872634683433782242949514450491006620531622929675951063543813902226980627109513722903721028705118735146468369289260091859115461161977216855126327054734189988437650072959045675686683870343938556002851368203473517411851449374644293210590829633622774040685369464954639453992239269608538906728321432245673343611495348117455983228414197840867934650278348270255934750782286498242639221454289384908402281086821279508170438364551619401914674474279570447163010732221834313794024591148231477711012288997776159981517322145288373833566053262410979383781517319659686625650062642082415458778883662180002439134665231873151186342210520029002706381502617974412383748568540945793434147685305154596019843111089814730673273292281731485499780122129859319498525912083446423161313548336721937794843560462106412195901492944590595432696847493137306480597526536172860466298889079312538951947261980433128295436604776256834995584648225770721419807340757505875195156244145500064711860972815442528109435713843480605311572902236700099450482597088199305824363912968339882205004579034250563793832245155004631943100931777851163543424178460573737084290952124772585787179640544394097645084787644503540982434326683980992125947291658901209485665363713238850234300500681985181795478244188091579259273390744155344609007510235186377287566079231102259999100453494653359108338767817043269200116145658201859024438530290944008678266245509255867258458882218537667009314530625963001801365686022426298034248491754694419047507521376599443297424240919037119953585714434281871170127014637108324342017495796882469195651968273016626162488249957630661583994397678472562028086026287829082689927667306261174511687002543194465703721181163831160454875673467782694809390985495147962797589484782025257756551683269223694669380109630410585300480826135655742657551134561779724243906566603796610091297995542061274701056452327775031212333123373830542445823341075023237940836328386262887224101608948279520587717659968962167439289748517204004602737410427608282477817717246536820377022733534695836708355820742568540036837742382336261835982360094541428093869002456653656419424212916740509881731578719590170587118961315832795348423191535841035550053730799391524207690382630422990320825463220072318530052208114568683273533607233649191574071345886829606028025813236715140100800229480949971339532009911892982445771514526973475963315918376973450431499310449340106040325598553101282338957057338917187819750242519702325423984300936619338941184810890017485048628081161322620965222178516934554670047316070693336904097176502224259186077263564074877320893843815348832252502817498902254466388818429254228994368825937612636914577903693362400140566563519059455753259092291474990120690620247956428633851601079020795305740766807096534319682781744846904679882319370731528900949571658519881708107875864391889435870112296119455131915082940193586948521832061148279431099676636986446452295206464375655628807864788778133732334447638413777895459259765898473084322345907885981536305039281919410602870485423225272637099125082193732899957859075632910706383442532113844661526423947815085672342109314873957223455974440967690994810607758157111172619461099226380058239363220917527342121302735604734086611022696192602396410416209987371805237813180489274799497170382729863779027553446048416698736331329739606938908272839334322398103557709546973838470240268176557825733050238895710052453226421538610225908041818044329914547838035712059952560119871440396597540149886551342464456726996985339086178535208461941635756481931842628066826252450080847432453348288338445470173584825998377403363847366459038837401024269848568209926457720367413103945631079760519868063916204652986434937468707741519618846386007294029053120858918851402663415000860852816876411478510506565001140021803575763706567168524532428381619494395463160621509314800089007597520305863162640195044671990803581529853330768628754740238534358513085127835788931939843397353868773743009512071708907130574992941817456112753806037976830758721406289668346489619133804345443603725097138827677141510025388439572541880771458843533052347942697066346358393930999152694103211233656557504021664251967554987537105840598860049679946039095436726833766864945346927850893476996772651335970620242117504747868665724620991226128788206097976639973781261680452894567864666275098191638368520414763206156696261169425758469376351658799346766846153984428242882570540591829847662809463171858118628873984936796852381826612009769647879192625763242392958029110203642171906940198164261924118261282389152149456176557289836382654460898692231535730306977487355091446366782937983690663886415618286102280373103225984655496836207501693595579866105827012594498493476264864976671293142950808040280202036015333317918104326476034269021787762455671596741958907644095017393694889360608864217950860252123576328902706517169809765690282899507118143526321249984204901046869284537055143274255534873477772244035120547534810481055412828011798344622948952716052677938783518901527760184856487176907282074755918247311228592965618693880884932964592236552887575976187871028320154924672616631892949210911290340071996086660285448444888556355955409584898744307670263565944780278646217964642219888787841362873227199614612798658092833769168493272653438828797844313152313023680224187946443617733102949697943586112863809793378265157404507524309701433630769486823566178856125455714504173585327174148353960120757121896574942396143501336132350661123286641833084493364228720256021506013339819294105306785076359889725635398142991466875205357413952258687917672651124268140416868889738566598619410373527999592603211687084188886215227059546284858335983269670858422905123718599479202030215801965343200656258867696107507034202865483150168761229409267538689210622530068527173850770668337896537224548700849217133085288246761827755841711903597497995590482765651040351700855353670868811121775599327954660131149306455353879423188117066299189729152037156829784672170977669102000666597515003609355086067919444645848312137911666937547521539531217328480784146751095325480277203715159868103889216896299778075093679982453950250124386920776350223157825954022308712136547982649124054149309263208208951887162463451606734273306039980292530714311233005309350872210851155474312279658243792750400868014025125602924181145999713982095063064094578175579828890241664567635953115239252216328838706145916274062859227529269683685853363336108443085608980012304861036417446151363228503638464021952672572332589591994417754725998388299738336397714565731832167303343650157954797727719217486578244420367877065477397196338389995848833828671337703893338880833284763319207575568264581431399841043547033439777865489656161252586953666778505159485591184324444333070504329876796914003913483056842204421187508918183748327814112384760430437752397619002461979122625571330032840408740589207315979539424255702369012462930665674503390387831556371744680460924470714595281059890510731076376365524363553922448556646034040132033521550065715750244242491571977966529403656383660287496097779059423866102937471295992780531913331732871771006833635921504117013049406177931244729865113784194224247614858583376323745204919327503793666666209997530535664941183666200225544539158007258380508593330603136496298664454929465624253397997497200078459895695616689463302441454321502568294321855791053118780845170760110585433163177702722858306737090190290361096800062904483201608191918929148848289554191747162405666981208968408895616010990994809820528706622893131915628211898105427237342067040397912961264129678555772096113995976920544448663453364700989648278563457931866273236214406092909690498260566751713598096944961591683564689731142042394514265834856552910281095567256027228201309739709048521110388670262791293743354583514930201841461567784786032164480314634506456431733128794677200958815134314173387753841353279424641698826202553836860695854765079863243753225700214873523593369724660108322457113703074824228884901404873250290501783921254204625518513914242939853081124260507951470133360796657061307607742411888930613081159456316040965785746953774584479405512884183874947480160857578981515949554677364507999623644459383883301585763865334039371120282191048915253624355699179918939050884382530675593456160482488305522276988635111445324076408751973148212334038300648320251740950271524773273618269065302847921005760109086574756685989221888104727307164341944082002265469782478142671549399133524361126634097323936875883572115716121076821827662486142862028961143217105968752368906500872920436358591756119759785339623772987802712081317816428160363619782563287070883775995086746379876346372239095308738483445737512404846054293211019858661824482381161115228008439801801681393149627252095916855509692687522759523237750325614206098868244071126813102001720218723115757255922346865786439506296272414443063442275262958308854088501909757175046344156132099366680203278019953591620515227908675180421041618336623202099334908481628263060693589650536418501185553170219323879635531515091914528908428680661543894178237702881138342409612777892839629486555946636722296824629583499248552661450557821165737005042787642676832819049449148116795083446124956722774665399624690659040842743622108467644150529144277766211200940942302762797213741552377038165104519034252786060734929349671138793125278690596918357505778712188967717816071862742319198680480557248715576022269504993756752175739403688654797165412057250310942307504493938355068489354180902328988463706888059832998699596109484933694095867467667966225998741655980461826509228496263308176368135220022800566388483313539140627535928628071598848959341296363610382706428260048241939297431490558383380617766202301594830969944399003464445623862150849148199483411311145469208896351819173556320220880443002920437888487764322135582823588210111575155669206892812351973496249471763332999675496712648601343775467945321195236436182210354918625787825332989852557076294416310941164347984217964950813106366596008416236302077768251147586751210386935567551375419811895999468343143521560930828693252107632407934262195207571795025067099421921792781330686721728525716002877633593249631230927351006822163252162670641637381209465379919900498473563413941108449762688583480643303056668034968987495977936901138471352095200731803900948260874020174431392780362266904772551927894128459230155223451634074408731577865052856419558155498015164455544527425171007908754674245829819325645343633385009632894802854539413961942049252721881916581072987528512196437916240058765144909771402393010303974417022906275042801992283992911478204124762685899227354352477701028822290515066898918511395911447998136549566673542195357624052399951983117987150310737972129917357862087116922051460612702542608376276874653609523399851805730789572923037245192177179835073573920308708773392908682354558838371530682292689866770895056324219746157888952316512492481010061341420824441738616691482084498234606163873686475636425261083616741185353957679188280536867021861715455082742506722256356579116779509243242169686492864045749450414416992980631789669333115126410593289674266428552785760210826518479111225978418214410906149507666530063596277809896001311736914780186071790983025206868899720502787276178351073951525568596240687990808751058066661535501852923027873082352437757076148651159178234772634142054669096743908348031821556436596629422902593332559999384838130794469958379338683790690911677287246097908201349450308945928429853195267357898417311014868116847939250842027407356315813947523766046603129698663906228884659303933763447671435273962816885151604353582728182518379514197653190830314269657376236843890630477085838525506413866890088555719225767958666700708959463151685885649848533331655409610326659090141982244362811324640567087195696106674537299473904339888277360113713479503083389956804679940792182575564967258427796729236491649820270247552859556746589563802909018922440850907842197429735234729648682799274255171413781765940303223544718535804159821739127947788344467025944822045142118532687393234332806231337787390376050784317069265051497549987751425622426868472296077954923845088832595107799531494138749021033336732642975014927842131011166267054848973002943584382293013755468431516085589841531951135735458534993608473724899100761723878982755599623495758281203342448001261498827901873252162269048474273602312708855925544358833759424145951711517271099566178242659311947441180442668081655294139621450165050730612457439158019637469561534539811468487145317475342947172536788163988987337437496231926640163504704365146708746766188196650228081399174972726822090472741005183337331073911491899849015260112734340321688636830551667600910178616497917124866341499410386516309768534348853796795694611550547006875409026578971142988228730553893316592182125451720072022746887801665142421251710485162885913398319839737473043334286672887700345785649715502230499030679721118141980253974401089540823111304939122850435039890331272413135112944350213500523029729170892180119586938112816503261073566089970190729617162522315334468839870857954627577161211770587751386583595626414136909556853389901824948762856892534253429366599377164380334692295050447609004048727685072821290780229580105143323854773330086624456171574755242557346631271393034055920684402772385705282258715027414309150906239577994541896134091737328288821699846625371091778237600771064020372458692338107594654248332115083679714235672655335980988613200634804443130339977573434321683658960253649078152450168768138987110158913914525553144889204852886295716547742267073856962686241273280204776292029898547544408565791522236008066474078669783832667083422934322045366416600780627746879409326252917478721641549437874514087286066313682717191854679055748294687763603930568427198583096797197351919765086123901604281624792870692731789766108089206805480738341459624284526242002416740361962687608546990421662231074615739800458446674089895355847826681158856692430905387714196894230639724098757797498532813506287619747124583400221503043192806593231179099265750647381348472638800376703437914584144283750772457172105672394076865599690694082745252832456597370914418938428310540220789125224679516005689204303842899513125399569331988488124363588428476576980071276653353188313415922198098627480526558596750188942439299105892409685342004095546007221721709568815419895087135901056286980090527498441402201971796502302218026656224231871113877810722240819858989127281584497477326719670517902305716364158229000303554161804507971121010463714199450813128173157543893967852544454119104849130752746569000013200758738168403125883014791189438218420558304226922235392435646244500392576831418591493074784877427207656343964377880723912836164688403084387678576168248092805256410758239705623304498478415248314573529548155783273075135146916137472959164209966692800894278611569310688215763930516329539989827367054487169138484233520511852770592546370047701617699561483305333182292050339278533835839730178168223684969627360123283363256196111777020391690948722854566669379982574642997446694542737971316207615952164638623240533427385763996754371138203958012834460285092063199693705030523359571435925227888767066494855445696277643955480388832430095876569832264625945404060057526800720255262821993289047741892849374604162242677273640945866805414810894353872794179864685126514180984484338735539278001785125380942151163313376284462033490883199392342088306575613872758959177324767393631966468713391280504610485333843433395192263449216535295905435060804565892085356594984345416181106118757144987024408033529856042232193773774926692990406093309857496548227984474353647259258150814563571817478519760191607639957428330572034578563036681098893945646585764992849065688182465066737645599929238079508572174014516900006813780450548735054802900339684285214181965046495534816541147500574219813440304185701206047729067087021741603100778455373256957518947432394896502813610409706755187085843894107069882990267962871603412904341744610759160762652770147020906250792674897581708137189608356623364203164237444028691965742413204504888656910758194139049154931775078519056595869971540275304376265060779292130533525324648352512147479082824605417070956216111757679303031662767532614231222377382277459704078219093548335983919264136440830331102647841662348251201407717623228006267955783545690184084448765310414639018479279975240034997736307726007339775183318657538475557500175149388273891769057225284253671573860066918332484333999001992767721315923954788478659732316894539937591724024838852979289790849423056396917430710679759358209335577295221284971552347768832669722862551786859509056314445395514031146000805947931029299612244448934138207279562458767954000390571386706732751771154299030302013425289519355195386581800328279982564742799558831934111636032624344582604758245245032228417123442216876214432251185123701051071149786883603392365166179027480518029604986331055973471178753522959651352800203804034286510683785968822492189454672333293796610339624373025103852277186459119836282846635758853472323368248006179318456071174616129329145059095675669667343481404014413544939977613036568772195284698530262473720113434449232992249478548224902407904369087995061622529698948454173539027666480374919554071638790463078455917821478717000408510080270642972247411396681228411818914621561827798670789757321183882281885370411264152699135892263236790030967701954026748741752759858680035830453846817094622175275636170390157732803654834431502335522321118804320957462192047320168256041527321480319302072995698715972775853353188175484283716208651616026630299128048762323311508213151065443931242571350791327515279595888395029137168887662658402417838425921608088467757026102046339203258308983265744828773027413960489421308577606941669537254861824966722636959723873088439318599760689429080838032015839524897124307749337050259233885809979384879277965021930787681438012521162078273066577903180931928699812450094718129170530106495847241122132912432507875180022955997403169277761231458462712049054810629541486689177350262739163762316044420299835745933264764215569217682319526197870913874394393558067698187595775371883461790605243923045753262413817251966772370341875600549218581314651683931271347662550365598684395735943425013662348221144271066990299675899206266376627408038657729169042760528215236852519815779133574742758311725102638184702334472253013555236726353897218484302313543489004824823234508542601141305854146679994468650213024612168584739708556563621568371646681571669655403513609733739901035479425802275500908453685774612166769524120700904937566161969913360469399661441932948925650926814837853959472609549369497895993834152267865606303765104404114683910870263518680081862625825102330272065615178266913976402524092135344665815149105330830651871015618959721998683832759324645437005579082838908769474335801170455326328086640508775024129557847416007249981011215631847381186314186796164670232130838505146079409593705746291057384436495810456792846023811044827573744938292961690313423728914453428905204679499895797852886734519746244094008300607954917398462404006893424036814752857824198821565503282466724600162220581632005241125740060191876070896200942917561639683318111217196065548326229404875870485414750888937727141421795617598656306670727070853115316674561599756831172244283792754006303903896903391923660484435700423275573033501315341034527564600205488765552570735435250616191766938800786013281616473783260977663470498201476317763676851476835799712072801196373898909499234563743694467782565985349007852283014829549275482258294040165478990348070035433081744807894732677685636283923499697923201984845848400733220189907092575883665832399388633241772777874590638507281039095418995871127876628560122264750272227603715662951992699119704657859027333464298522602455752174433167298726671471076267568929174946732750610253031122973339146618141509029895969416023692729092394885316756108412491011002280929921435740913500705706057177782408485586743143748797583347020078299788076477184730082632122906693039013880792810988545236392362500720672634512642974530161296906981301412635970569288318094567951785535756898738912277444622260561803692371478827862942127304422831433664792755228708095373047274724147478175097087210813182581635594386943784635160312402321859077004061112275062490597640194743509855992482979776783856943528386321268186305648310221638693227223925831779864016080421423887476906523358789170701831625555447618978935116888463156202367234060832972454164090056396190867783478211833469103050063645549107868536953822931201016407589266557763954894012941803243679000863466964118445894715701547803005299700757447372095543090273778920075050319699598545404502028207640796651307179904849804169486330710270035861574719550635291901798248501462189454251492803358627036075943513259810849100587140931506314348868479463106519935811260945988305087280596230514495508069797464536980093198127594468592888328035447834661076417198935752296046720775481069966350745836474523832574860415043067212971790422183106588005879094231847031286185862572253168524961460008900041151063468230116870482613156290116028641255363480242240660474808866064764314347313963095680150251976844181724008846879381401226499343606302945360762702388565871037199748410782970440226493745838010656844349994888568036405684448802689719863870182586071254721459822061619492416517317628468159431262832009228961786282882911451145307942740070566657711825740582090228871616831022012529198186689372776770443307897898825400754449296252962547090578222478787850063472372625392168674918418412072065486596970018308538213395715734208412844803749302652171318865329596713815691839208282974945689482646419599232087435413667642996607063939125632495891513759703982181906141934660481294263516927279677605818065803410410989923746807213592789874906744288001516831982451124885673016541710423968964135017762561778111133834897310240276908944466226790124452531002375001160259613009815519571303688911137430966158595654808986690956807488912131940610005306500300692293400194960561833133731258975867758946320713078676390871808358479579312153715700504131726464456805362143389261710688465501746458490600154865995127456472639733596783718327489853020029410669706370049318140705335176033040352244876004972124979307254958556209684063092967680942450588926133997193367616590081087249460738884446552423985316996008843734417344298292802149243093835888697345832141369541266533547513888235205790649921960188486019631031024773989271208756925082213634461412897686466158644619122978014467886539406004406774350483854358254842489347698059666388431255938893996563564872607083533326165483602286908305238888498407188221420118434268310365248179179104114208029752246679163880707210847958729188802977927498328599005314071151318985999442975156728590698461971522057821106603608430832994037026491287083978338472929467057559926462905943977613101716779226651483464755786558372617323680041437939896144989319873249452748482314073301324344319261337069261299801422869086527873335141653863571664670229471402759396635280457248527823176894736695151841640674560823598546207834131502538587366610931777167029714616200722782522828057065594897601127502595818282264906592002920219797997649609238031884980774794501769812999200630999693177178058805856448854694352281404947488810680227285077995065281369574591449870642916182252313300854607737832767500674623269896858889206496820667542133847263211738167306233865650663897268683322565590632039655802180498453497994716888406763075634737679329288065244396419621452063735560594991754274630948053485021092793123098478597179815044216432906388792672064435831578293739109449470431526324617322838936874765957590761228237825473501531105724359566261731098158655780004323595926066886226485338717539516509415557439529799752141280673867484775787054925463966973634689996112140962345099393669878789062982631096484701929508414443180944552263194663660456779802472363068738000924786872919374516792323397544271683781853959620544471704594750883944116139605851959052673209087150531172852940495539134371670902654385936366713841658212350348749970233549473920608250369567540272447270822984418407374124579820927136376745046545174541944209995247973125318025920258736764611942912687850226090846906248223338410023773539416198486364200696762024178133761219009211904750393331278481358499175178451908547430389368539497682860784445457224938226153023908774732597165857531221426830010099357833724305804723061967001963091371721864919886298772172817664580025313879058359514680452939052430761633987833516160960692774842478162360409264993244688345377104018454913541942555410146845232166721135796914775723374111043663971528873727092272623453087971814525241974030372263719672133029656759848420229847671602826464485492455549535704760244196239994611026167317211089712668700112945117797729929788297850294240896326398772236745336358348952657653333622118220470052922840212142128582477381062699109335699303231848546536895373808314315516074642325187746496598570821861577137079784519230799225864722979154698059554949960533385478566531215337822730556514486302798093462536928817501910370134059566764424237127427645140479836991995906223626171514712065492919589993981373415845658787187100652104542693537320410670902810038730816536727331007923916541119556421591947626640188512888295166252636242700393036450489832071050940064113595225748892157511853667902501749585938053049626922570390854893216496636881529698289623090419624289737035108261168629142742005401329046527488942302161926067744655772726549959029498377524537305289467687135438142359927150340233610160093613023570712623799201084824444182977226224054745602779353833243759329383174688810196192500565568496216362623000130015418581335418884765501568026418956147326608919495706703418619085647851405906027661807270418290203026010983936594838796681884397692195650729374017598555786490017529060475133165605244353442011143738451805242334169753138256635928811031208528334577173968872782888391076697910963630836582790285794283369204423684195663560157409181374486045780818058681491702527332431241496666851252561705265894222872539111421187359240342168421653274183198623701989822830580774295598451410886155829407714833267471167622438107817090934458706457953996384437365989266084998493373715932781828267292615850429197294842052509148773725288810744207240988394668813121987233992217603037781262533058527381699062832869219519107887895521745804594738564035730537225296989724294264889220608151444581886229907897733991199001635459878839458985473665852648209341950576724996243331031534228318518019526590073119965066974253520013899051471746468863794859033600684266803811387162364567348673796626604092683731744698555628701295770209937988269523470034880306363585645662320512237721789085221323086950318961977421341464413405028669009098582672302315781908070411632062916315303717659606792313880925718651903845068973864159733034168769466257260804998727394051478562534412197451665733065611899400510334562386617359870754813299870162301268121874993728933520155312515741329423276808817851258543630777163614213774498631403664041927892015549625065927346920573303547392616671653336664904646959508101926850675976438969469963138277939215679877427594923128765016812745182990751762268042138903369148701794765346181045049272723281331497200492717852896571349598637191641095258549830214486052330086060792160835615636110557967634826725817418334218362716632010520652417924192582118323437121829603845141641561212360608474778980681534189935438381332270337740831211702620734154597911238405976061696452310332324836647466910764893680366235339911798385070577211534537780649453329768248427556942639732362318334667998981975164333611377862139544531151245873870029297897204082894308374838001266174153164325420323043518183313536640048243086200036055087898226028324686438173153187531947942792311019757795435195714949315783982264122306475922786301478876142930633130592945041872992586705702540634163692711811024936424995422528024563356832410940011775810764829174798410132830781478613720124657583058236828495263542057895814426829228429601529132209364367566677235735175791961035778999661866984819462637620804982805651862965276174588281001534086775771659164132429258884354734527734684605832045167621950787492108101113368735428818904175465713350921372716239735997244945603939117547927032162938571927326459477266178629617184240204790232722760087493614417697225190709611044684487675798182059510959841906215434318797745631122808584353727785366593004690041542834656089781029635487666238081380649257063243716160710540612956884872770044453063443031309247929494865923211550428608882061467412256009178194751539033029034438040445978369074489652543164765579445277556872397607618897291288298990571023916486563410528775101787925156763103697864345026851167128212322747835632875914562240666885841325516371470480022991924621501590364021688664901334704560223279436432618100354263494828764793034325066085793676397940645795198072045253479747146032418456630605788953016034675839392934291908240737238696326954221558801983492787514239550254703989649960968431916348145007741113690609166930820685018950075947125321185661022987867992315658756392027272292109399924559205915274234305058970880536605679939188445092036717568211013517370831092162980986223042744638763007199626283211782829048014171403843403969366685226394077548465239715494250850603114653079822094154343855457399670004775884674780758007627740181330355071485996286564170524336815152564162143189581286353548892059209071420489472653677481424179986069132899702370707381227069693665098593159719441136874722258206660542195810662620623640457270370041284861482520500559175049962192621954960790266690749742166443862000260586527518255697283673190477704557992806279533936635485118587131667520614259422885077540963361747209033526742035778425596543254029277138186764865779833785034247585733720614004856677762316671570494311555044543891102683836183721699567687698475946282204691830688773260299632829643529424292020742203239694371929338748724840905240711385680405639423881620311363334797133656015948133226271680493212342182036337143576425871922884354614706624011946328937215897856734770112164768941838499160510965639664021640243983842057577337458333905974823043370465996258000430879580327626627349484501657461688704661154755286508739082793623669664788371320147277695547163783523506262648520802275143480232798240819328594522763774907340616040067873910952585808185303505227512304969494553512474419523813712200028129096219064663162191368463079411184795036883995542341236815812523195014891566447378750854274678920158455178513963905924923230741543025938239379952300488212801778847300144159902184559519255391842634456863003357600707292024261281532498602188164992299909320379362943654741085053582464690379844875406364046867247452843422662712270530972246088039748277057915557761568009573660274241214584681299675502570031838215466448225811541540195616103426791241218247711154617976414407893971221801302482075887213660276404708161742460784902156381050371313866392381213071729836011930784267974702453137275567033839604231495426262194443015192571780680152657805785002750054545618650963076711319462222530751236895670985397953465735129144315941518904685104170396964125272892270076939465066333710897829983284364251784390688908264102594582389263280187086956439792537176981084650122826144488194006344461734285329196564268276521777415159835516709738962352557642590863081051696480244164868557354749194796660315070465871660777180967132881430379050500911918427359671875094488765746194069209828027034922533749739963296320028176416921817763234246839840162793325400826007296640208718668038905116123810084282568294601764698483550867716253469343527547512537419840816821406309937558464003298938096194517778987263700449846705821925308439140158060663684901528353908331122310730915276661293889303979243269659228884762145732606028656417855922471043774393555700537541540068803584381365718730811542939340312482648115603196152344443930201593550608914997747635440928352429464386118341884785113810785572714555917451472520146342197356572654839433709813351248899826283818305000192827915683422899532139328596298542254718879868884958905308979909135906344798569043282659403707393485830978476436592363025189896142387704750602791031938284035855678877146721049055128318040703481035198395576957209444650336895252283132004192110202685109750931396655703812444190941371691751875603599862533090342043587688053414675498878880342933211472140734231484872022926095884172247158078832002599628896230897254435670982546225128233625852229193238127014102455413594386682147770341715330797015563886982079482303746588217103073140142771502213498426373538855637147636729791485502142964017284062416323699672952845041835047189638625112717587380637820412929679044861941322481734670947680103173352171700335293523937138303378624643311927019460616472347481495953444342052139066286740499741673310593291362678395597534298535224568419147301525453040823266523611096145426463024664454847584564807907406178110795707534991078319793151914953436727815463719362132237769811306743551061403163146294725802376926147707432863438530278120526778194524926528667979214845355215749350150453442362440358861877809791169750355057450286925915264163617263928401939340321955805223364595715709318864291008932733018411174876186287085796777995249264931149326254128667374035929533501499670554539832682170506444681304089408989676727433368940787732843080784601368085512754673356550338597763706409288587390252309786255713237031239412159111013225555362287885122435535198074676374688820826025761408980649568912190297280668743445702139195613991059899597941096524989877354250287016398714938217992739890052016317051985756523556109333374978865772127692648776472608410622953544232704516184534931199579993948544215137564202236193790665128062712189032964929310280006455569094554821925236619931800118089947962657844421523194565178956817696113394006287366698724984805296380911664973168700491589255649528821415040622008494033695784494590763201434387439762514961721213195749481978031618821503816593229919969127641908067577956998224971642291014742758081816808836394422147513890310794694939287136937424597402974764198729844995674212655277567622153378044031756918668208175518946021458599119965130289759761205635833139729575783998177442047370778058052920946306707139986734381485012820806494253713457410606864941038037359703114782274124368110565821650637947199362323376573359578659725660864041834615630376430139433317189505339172971968059670006821358335510197909574916676599807519683359317591169109467953090301599729438689737140037800573824265760187135325958078320560229123561789072151071081582171658269779666082846949894403193104189990026217922701489543505450356698206127244268062814408210762753532381419732220466156678516953675053150738736931100435871757765518048001081989270630778267885801650705946392155209815848831856644797709769079023561865489747878259254921996347577808121298429284778670093710736252657428147977196919094102545410518871077194383478387512412521536613521946359680782704034744077401921706501880871733206290028239021372115116097430368399157937107751322897829736833911380096780425241648699756753706989442845096099041214521747124265386301240660096413572609106561539493734638823965195366453634464262473173422084034351932573834423009933208201474132597484254284806972230418080448786015997706291645755008564174575815709211894153049826128539385635048177694220170161763297550118310328654743703218453320187015431683513698665085496849975140106980616081779693859650274199287832007075633394837708211280516981095362612328878801182436056534422439847197653215508348328606416373386627988839991385997557714002193327095256015041294062281633690712850684379635764286727555431157918638180915010429372116090646558346662642668033283682322699189288912820639291792502420439507008054142705719384427152456515636863619533156893830323079423758361204506612561568325911992817455585534197478399975223814667486430075720065183954855937121309598809515282131270752689067528126923275146126744596658439118503761401862381076945132650187716960875915899631716058063508091219552824021696856028449376249130049935151078463039359216466565811850971435774701161139145786880973397332003561985769276875808668212927921849032738440261282809443699608293509918261500631040612186378636680818975601941037196171326307765391670189879103017288610586811864278139844374511372933653524469172336609515293811400678831181097185043639776439368754713530485089578991229648631277233352809500047218570629295076349640084816548886484318091243864271837514898011774816467067187655203892638317700190964999326798316112566276121818956995509618499402303931712161011157636910672129024775347834959997418788398220264305198778709554424759541644079358014962022407869730303852830832622390581235139352033749445166775987110412181322566113422243823058919012906108002828058524294314113092497900302058887817166490611289764345459367387975936981892607558824701016940297088255007115064916799815607938478306050274306808906024043771168148598062318605424212825114401826343342305056028928330508865835676782674750611725586199753679065214479128344306524141340083310597007733880212872219343929995725799718838153736305068427830159602820785980361075811388752933447162390243491992363066650084963370859709575942633359750289991510750758465339974674207248878738371049756380745118956245176564590236022753137252098659949898883132579488963160645336686770234483340624977391823485103010009505514996245155936367978722169690958409777172618546938199077245289250801331428354696293842738196854237746016160523056367978966092242458338009854895730992512662477449363809426287340239732869737480621216228887274764819408691406800712382170851888888554910177753464419043911322468087622359679623178374732262840899662575345666514892427915423637127483636848486519137235352907969419356092106296331465161916507802179063915040422637496299604592725620629408447202950315262082801637241484426209225449545306474479805562446043900610304794293978325021788392273753952097644241846440919624729397556209426187854749230791876676542306092010668643660323366686793259661278890332438468364773107354270807367720705128025411045225428801663590803842357870583523092641130257977851837823801374353564512714366395810594765788948904240403941443401674581632323544831455313485369112572087463376363473035485189190824708179920927206088976617684794671639248592597686354067109316604370663966660529024272202891264196479504130267486137344180423881798898388297197817615084566145957544116152082611068640129813632759453935588135603888847723957399159389189058855348552235818668905391501914817487810335617407368109420896749853068369526566951777307151115009542655475824772121739331933404383915637156577354301943117214802104471531998297794583789099775004283696881573174284160153876776088713596002410991055152361113784210686636743121368187049353539926287660953663128431254173623665860551388967184522248448425016840742116351508809598768663507438290850922867765442457168398231555194726657080759503875565480044352284597028935619871350466726688049456459868219003771905907395826317508713360453521215101513704301515372573858487405102099420532369034153890130969911049175590793976040316394383709553598773272739877005614158197931527002449236712888651926281219720525513868998160443276031236130326620277657696999264689667850310984382951468817087144219262049588791899101076490133175605811429774439518030300540700412319268228834766979128616107293168734059365598321682397657391050382317530191257902500960195697706387918648032101689334590067808324921725883154446832825275428643816838951478858482885452092500094603454586489166953968683084189224386278787832174577361147753165235948361078502524886345076388551286212936147216322464489844983030993256859986956598371064047268087755167046213686241163744023583722768911604681238826452543040623325793993621438215925163531678877249406400738654615627373415379756292968762413298689995717933539627371402311924913959373472602589665856087625671994382034594937112603990548752409708197311178324645157859625648762845568742493440653215677250858874133598803702318949944864090696992250460080882405577861525804857999074081527923878168542090802446905329804091922738875295982427778006416858768633729980553847735112150170171748950021827165429768645981852022512288064211710316374665268951510036187591357449771234187734409774884805205280720968422888009465364436941095301047066516636044300137152202018343724486931206822837201821036054556579534304229279947675304535496532737343162944192589544927472345951485953609226003014507399105864054296327949494703523268665501013926145282976549499964744839747745261752196086715374859172120305383399096484645858950637117331525169024671132296798764504961180212944697742086089569491243611024470734632381642731668478238446441038038321790225090636385061962069489173098372432330270679432478633087569458368806006162875556104758849881654650230992139427980819191618533649423233367780750336617123032778511149344250968309584529696532426612381020893551229842912303422663642325665803044224301445756564481088267389993500161797278456203024538797962268593794946436831367381419247250455064668539882061739949948070006099247887632444565643278942855399360041059564005762571322243953893191502538567017737775583941551214459381935489709024014969000940850814461991619640924117894559292788520010148272844993199127654126856479579619459987749919978011110498881977147651362063334466584089751339028282555648989329163678400127758610541348392126634365095720515165969052677361211380096064800690495581186193165480064761023474536195345866595993025354260716844007848705892852096447070281192247699989769620125334652788238787738694667383082185261734074361089984296457119958531167416493138821927675601321472848740991173038520000568173973973949678808214111183796853688133523841422080939246440163689448242183367034854950227025382312267038191026925432408641542273934452205299107576292648005119813499342868839096368547680741477601668266415118774778401538590395516904837838732073450175635122940517417685789897997395445532466219508717633083274135338294815862029075515182545015725848006505883075376947553622646579383437560109499926287421453139466537843951461738338356072367516708751448026133370234321514646495041978189051429467093761154237444563719400445599932253805262889580792234865436770044758649135106291460606552015234499393172415549857472091338231054326370036778465259517672951190678066241915076765208228039490080777430905701987395788298327268713594121050215610384379029801208213831405987946624532953139031179260836033634562381536002427815123679686768879524711313538991934026979701499778508904724644913731531703661232586311250645152313706551072318357235717769480186993574780040406407166181340256818794562944931987648927533435533050575778669468901660437109450352101888675678802011519626507925895001545536259072729908330223840181420730223698360784003873782870256714421751857031554529649719877339697078947561654483812286436107820515160087353867591600484906349672414553331327973224995993889511178508992910312096556328861720716123176147545479243706087718600242830124309384399025519094603462148073328148391551264110080066910459514504448516198799170944069279390634831020565273668353400306836398459234033693313287872663877090634506296882472584047057901905609820162147215737220987623232175755698477088991518997416937252853365701524957409512603232953781286401606209284006289596903970488922249821973420567786657477640991846991794720606116874666635330291046851036588138706748826730989618842369523294094326797819036982173832819322500648954651454195742035477835701247832930312024856637644651953189793286694560173850161494275688032540516055177178662773371035903117072984924041228121379979200817863276349695621909155866391372524763499860824097776669578508665937600554987574612005785341532020133834208256260254150101521766739706093958435411730710690182797378628089822695171299731405911434567862648212660172745803568216646633479045658576041690106007607126893884819811106646762820793455900516459909001890761763629219508014951312940283485180693123200064394239587181601940975596125094841440226664740224647133769065434397710221923707992951872529578997076832207119588545403805407791578652360932765138921155012517478472987673074068197020936465808094476028640033139451281763410808189328546270637817112056664715504008083287027355646710123953881076550017087627281329970078601329679456068147457849097403003992076115998122120417138919407884803812738607797675603610246998871943882984919776452332612961977487789661535190679499364715982952240513663140060815544102919078364331547537574205562179001964308028608831302797996204750569130538435249230702898840312375543309941328518193077205175054665836646921016763534151211878796843275136845194271816570763158321975079908590243407137270039701415956268114281696797056851205621548071685516442614804780995692039959887579715213628159351293656764247080591074913519712120856830692385364198899387450880497785069214266772073081886402696789375988093530647553634333377714176965963584943082938685229562232460421689946303646512204715158707495546431717777076786875004344779920216499174529949844255919728375051621318472634137360540114783510957183801194295885346262124721089358682305560692396692524017680715584452258066297090242328329062364335100607119443182715319816650005684429571443652234824297642470845266380442666772137267196601465822436113871316319784156908864098049996565478322235661978472777136773848728170556265652635280707006862532360396963066528917379393422739519195802245737075774569813622164653751580447086587873083979673233564597463488783631047228870596939292165792837902783174663401781060803582040132704501195356364912678045617823659401144439828236859798015056562734154449374572692448651611019597539773477415981463451053684215056459664469103358353959826636736641514632087843804543035813564321538356169674043079708525221463855779965892053686610995871144434723483868119809764643332533841126794286282668684548254876294119920691382298098997357742896066456305510241509007552594703656774360583489530955017880713170629625898937119187971647530883270381507555282862149052861243563189857508080607410154138489616654952786507814395511251053237467601948848202676809362680746316047386290402328731112476425276424546635864065782359518810253741081543172325138544262718408404611905547279079512705638806807674664183037379953897100540180322242428381807025650066873614317434563234463620346695515533420107120448896039183407102967394682914515066760136028600235878144422609767377279401293502408130222863952905761574378737194350873745373168220282351887916114633164767132992451007789437189698738960529631041852358357781639446744351918628367783384772628560052571376885943910107252388305314118374593286964728770358318207519768930572279340038826345039918674336838956701047354117640434969204852943569036046837741271779808282092537250914173275713633504283428225159615814945647297606256375318792805732785635620029384468881317760940055100813651813210873674960800676559539865768046843202920533875286806957857918197199811593863959934703960512125504200767088385817620862790800496917975732617880114282967408505060420919134480691303101322385395494522777837044861767246083070160764242797529463838740449531519655159739014651632472856462893904437430080358460532327407512013234082855904098869379291379593413515445055760461560345954439265847379889932499279707329589538625851564641445749389753607014940989022380297840358860956909263899764148794448593520238346106540730260190234545446466382758697791686029598978221267015941299593168550697313844114019784738747773675545664925217420722601785829854237926506836587482700608826534078172957091985067591636007249519096383884581178472237933773589799778056509190557478911393636377650418066125991054936719339934119004901613377709148055364758746772561296678478733742575150429209621298468991633407959754262459752165537173819186988585624037064933138814057702830769655516715719803539182771055157398417335996669668709718477402939951262891719152203488337752167862161645774581041719157285265589175211380374457195690622411080305919151535954942939248873190100445079462724107180033520678356023431107932025088180389456904050595979483683804163305023949112158561130576478952699536647356210991835908584641798053165247982830691158806938497360763819896388487669126270128683533472507578781048619857175338082374111530149251997284919583022386692618719774399649889830787212570040473329950880416553582498070841303939330300886835096069225477594193397520366608727818986338555681629336240801821703481165567531634846876157164532776536629715300467170285832814400826632331990438175645231499608512461128522465807678726958831134090546583888682672009488007405414562675767031836369955601244153276982168954706098598282331707040177782015240992198993783685651253928746652523640678345168624410722778800924404166754107667514510776892310203276249695413248042830307012752817591979681529602364092630484942807732559016231403659165328727919434379230054841459951474171022919077639787030699681152750010312027843302164920861937142668801571428085485225842496242815836668963656715211439282526821198763700153686656588560278859455871198730493829791181140766592663145951827423867970813822845507587699280394283093869917851572692040469797897320035007658917398036769033428201084114290854639168969428362367971486778392358503561742397227685362938082671533270283447741020957319778493211662235027166346109887705153527274534270356416431524169988173045953003799186170413125669578972190587046634236689361088836813731095464335955072903241735101145447680108961289517724998765490283329364512143093802857445783722327443972119585085173931867184693920531945300750560899594737485305797356266254819920143679933780838384813151882074923888929463057930833755617455346894299039804009709263972828283068852181743281500721986207612015121250031484926014642202928246788263326942799207804571611474371513651255590303234035566556467513313257412789414403873094057136074605192302713260966771743108529478082837292020757325629639291567854141231881147300712782535191518155863985982755306215156855767481996410705832173515147036580715643907475087687231319723670858436212947383706991989804856524114644540426315282124898272905508333940977494678175772856543864444252033090355436230913873399123271651677938075650391056464131991189895056564557792714642816445978633098367040178820621035660050811620421294933048891962464867097400052579927536282272465886103712258136673755250549637878760502694446335040688563576223624684911386148709238753501230877799427858663776974053985794017182495231273634507252046308080377401676829580835390615870977674855026446366391300190487141467490541850606157283424107050791095694850592446232482720864958808715003811277145093567605662011778480921275372442223540058920292171687974084213159161113301179485398105103522881491037126639237941228751088490600379497842750659507547459505841468004027585900214770032181332513164436201604242985496181760123326866807774579248164607671293661230300466150715233675693743840246781472787791433384875366376057019774517250285593542189126205999582766180645816947807213155254179750065530846630298633368054358657536390980600640122497810389832435372698746126289324744147558488380589649243889542281390360356900447271387063932147518108064430202226375908196999205456987430871515779212421319721021494417696424207758487952625559467287237543341354737024103304874793360524753174039009205438195997811987653923494860130554565753384701571026047404806809732885449332846553259607624794944540782957662326661179251292214033137997273879480301874439032571466083593334474800449875442496474120920987105490006703268854020876917534323893411691303476659198672401335145485203847744332559492564987237126536971105142158187321015989527680355659628063723666017427326645947261278028785826212743486382805011522459021117072443230219504426262297393003829314213657757617929079849198419786782941071555145649292849453588000447528583707214714458454532151212490661651248443652688495945241838934742901502510407097217783610542642657134830057925029950419960450123485657241345399693773109975375481710324400292923635252620187943121085855276761357168812148393129192916208752849702905717602600176647017528687782613186799815504777327400017941802396786181963521030443986385024748869183087062733517613201185450431534701700971012285479953673403410724247584537619188223710072273648548544001229602708478129092694865989368979558687119441348767141267372852923973738440596221329448712903505877263153742053477300289783136204929557644193428627879764570060919523273967161089086579675225520294665356495053485302251966685457947421454689095386587138927408963800295375332062474395442021127320689530131439964880289003028212896285115532204906053578460948166025553329823047285009937352904147809602217626184463778916963426249661063032357852331835015185242276594423539938787444243362270601936176184370730555000691086707889574908915498852060994664139393902188871590617923439515774236234619638050166179811279394440580968562367619430236822491338185844426726540205543830140374580549756910118989511043297073577025533022884244074185460899654620583183556442736787777570350947936940334622778266674893336416258472405404820958447725665925789072994335953640469131457182387814960936924755818104710336523914261190163265308894772494091718236231182510561909539329426370830189246867689315808126405578987442782975468085137781958592417844139449889315404291586267304938940731569610140231581480533698962793372819932991896187786541282961429255080858301951624064613109571655966970483239393850835596112164821489649737321732419299092149999680450271610195311999589427755484544679400249809508371384237078612636844375313258064100231212549375789222355955765304873317094114697000561452733044093874069443075118598367616968790144938797399692855929003704347224411769114261269740148283776161855105269259903160497634369621886699046040004119609568410517236633200377949897402128287445919583033730285063108875728203343649571631301539181115324444215658769106746467031542866784720465450894889103218345566988841535395271675512997293707062101111260597477280477060576799886741351356975459781994766874173393344510980657836227658575859920293136986983841339127065396983868526919674709886782757129164779161843987915794767935266990468806904205067996265472150100685747149723169681129660956838485229886836756821467449932073853539418287535983455949165461142456296089954931847570049291480755085738786326444388780919817369871664172784220915780707505670956996322413215241192951771529288148011742262722505013289767678858980872258920932508856207923551075398021161914147539624764553387649127082673560005358483576566563019438532378894068781458334888891610810365492704859885092910584000528932638463141121865282714439688580357574608173671480994532736762478570007543829513915647492857557134497142937553204119210672730334660716959536641864511278944550125328830375213275031512509675705845878060883937099221965586569206231138231092506620178739802228950362135162961669341916013203069059568619433339558112809418811788473608993184287646426051486706988452372663417208468130291837139154685211048283700032451915058963659370530621225189303328314151873196343851891755296970521591652337234369321323584627738576640892325805838205562756449554974708755364859829861913379745744129667319279886473425343649565006091675685690393234200403624503435359805819571081260533524119811096812947732058931384676247865102866924595673813559923265172893777767401083674459195506295984035781260789869278988682418081732464464160606664689050178836436328162304448446541032644168784716982078638701392216133325772689431481607952851676061949844326603848186953316091028490871093682337975184230624938537983536137723485091626810539795800453810899743057304025668039259275014138345047463482985792987693143338528503616789417663638569613103255377792160625775768835143518784574830311929362782528038135603733094320252997004370699357440238610581623919340650013025775108618463554763497596526904936878357487019199465475027422056020000369308175659016029706366417697157641168953873704338367940029671524008022216532531153537052127742426044514187298899281745734860528519520665579723752255289358591670913423744117086594746308885584793048702027825372420472782424425411228681539085561799829718473592050168199448054395284191682168431003544341687925291528402335495532622405806746746448248421865598234999369004400145841658193610417201835435756060440422271245644112199227724008859485371931609924615996050255886496021348319438342965511838525859120150796414506050344536971841623068917378509968848879356784993062539972521831139000799793034688037019642746549006705258551684127952870226589726520097846118868021235301564078245327744890125988534223862982366883173087967340583944530015716086779889431104451856660443454682582949610158451518741938343890131800506479554566777447533816394374993934763715651603870829023034856431146261519593778075826664592411765838466645426185633174412434403920305783455966430501902592014154425416507053723789791451177447439094726317579241332254184090111817354844218948112350059806667220168656363110093061201745478622411971676414531779757009492980587790976240248686030744811825006435907442299707813131054997393597866350403506013322829916798575015368027647036231489355670239093965400079228993557467171563367417301714098361946857230235172097014626250132661957479407538942055071120869164787679234003326773763633747775712182123915239178283353591593560057084460916251368779332758593052543576346078013182150635026782520873159394499371320694597373489089636465815738268998510676752881509995556039248898230740510113484431257625155172392364831425336969578339983674241306689863348114359357907447974233395245000200769630206718300503083247499784272174148368029963905768745757226958285218148975963542871290248670177456086257035045412426068492295162509488471040617361854427414689798670765764923660356421194035989709104083320196407734226864127768614834201523943251407701442826788107783642288061417090971695222594170634088378601067294506890751786570276276460998045299940528973252940002211758272471181433087541624162032965087554996036547027610410939682182315866765712893162752799664412571361572846806098623625804003472147684709461018501931237103917696165735162576418709899297311327639756162403261052572388818314388905487063585596968600489137141339185876535815716886920477623743626105808076032223145464106741056862896037843092102973086294819042502936959401610117061944937573149107995837121185976066059273773769578431836750177824316297496267679780411387234930211357350871438019760486106347716121479930688323434238718227329691709137237114188542888327497846114608798953679435967715800455078573902330510034564451448900260537260804068897659787255518777048673762954398733942513295101669650235654043227607615757964133922886963864324178673891195263288111699747213883685968297379260923402222288133325028642425299858364766886600752287657065582740148444465530913203720855600523667263107569446828060002609667114848796158570984486256672836629871872147971107893699066825164929701475398732892541452949171237972738093576819062841923326041158002873779386942294854839361946377732956921148872092357320341275185665734793805429530752102340266577030066643187735177261469918973694231519570807759898383445305844062718417188284529004025267789412798354590702529024923818163252939584447792746031890695954902910495147580547830429906867945201840760153482616251729016182916842691584290977858807892083863843976399311402060040178298680058654708395676473889928756227932081333061818022629838531088546698412654505325236254274106569189032293991894346032733718042078225478792261979859294579811151690248973820649668421730147575434788988314225399987714584577814148342706311869261398607307427665299628622278570260543867243050044269065842496947051266510441545550106453534097480136922244565894461218825777924714005593160749364608103729739571893367072462130736013510221090490260837300143251762574205131958930825447947013252988919374454978866276612962950569421039699631282059990875412253596042042496270302781664900972350242522164787396800363207345254244186722235299014073662325857105469573238834945054504114001182266560491507971500582397671874616682485317336353338010700093747069628723959787478784946241150625212534898299387371778354640447812094899071949516462770160209445472058944149187522493499528902718830878037940070192397931961912098697473786583960781014789825307361380261305569580526743262497547001922194278463229278300870905635490739852158885018271506179796725967961669235041566706872194733638452305383425526319888495413991677950016510063670886342688212445896144762710277187882938056040182817426542166550938470996195060542868603156937596939319077879777158879477670853000763546397796881695834317901470510773741097861393402355967526959673685379640169080390984110587551037565430172366982627211893368115560219602478873788959555758089336765035408350437646561765572329190853972345886378240244044306402680599976219611197053794891147945445579285801256732935331702858852697603986893642977611625474448140899840457277517039166287177488294689230636735356981271957201234836813217748131365723631517080766371371219230666541799992028984683027212354894197557234151644205608482897217794579198965296010341927301106526125364128332120966691907352231736922881887395493769200831302347057335641436487678913501383660395208601673498287444370658346591948600127539727301300361429687297811341506127792373353079249388989359934820801333199263146597138057310255787729854804939089563333730570744638890175465416170539812586702442386241414193390173465846562873949039541753622362094575530133177717011288248668317368455234842542228656397036489134863458669758334048047990373015344641615323144842650749521929739086577787687029406367290048288414090876407260495167594991393334983346713429319174498634112245847572645828470880955112122486881614882158707907629537729942812040261311143621301037386345595333392431317602177881963132520424519192135231833023627894125227481680046883066260503903836457832391876159105510338300578955838879921238733526976103982530543266089247624063654298354752837934436655824942040738016812192483792436107127613056391075164446025184150840901910452594243037608970900250258107935436279377397106029160362345987768982255876831930430623789222443852810556980546187172606169477837544315324296738105197801959650225770769170273508070400675004132107903254172584713091928977332739861445084508726003375245328921878535693640293796505419032794622655801805879480422065733843965294076218808230121631885807465159714793412673823077974807739359544271077640353679690982500144973660454876385098115625561392754280371264900230453305460516457258843557235675585991912742208311951937292225506553585258994305393491876448080369448992399958596021582715221311514811680200746109140546154568336763262730336640266003953376397978921510617803285750558062877326525877426431799947573639172350364394211349231355451202015033611950197290673632044874016414320348095040263994855339123609977945217452888113504981885719231259930029296518568071364532962562201561818315595242596261406599706945437464802725433331551327355419361349115372001851194838561953047164976025775584113750082275870902609345102257706951509760575422603580496425796486420590963500700466607908115310033477007393704381650952207935966169658207123753957866358317019852281751621290443103099945389898643581931142069520157616614580901225854918438281087098042286142736308678726203796720113704750043322247020493992473479758070070632456450658764830862720361932210345997867884392420078460619894230588837367644053318581416572915230640483144178108121367008657286896118216381531829697303961549443590094699321336792254406891406448490879459575909462520624199502484245558702912928279237937935831127696067920114828013077933663294776877909218322380772463849186740174770749641465680472935976614278241992278244251822221488072981320292669537881313974491323386165778028912168115228990501815839631950276369283375466569700496089500310747564321486752930198143137166992612939017049538812466327483481724314513823705482035387464592456593351244111945989408393239570117032798224703971722335495424866502321174283053443491038373512302046375033158633329476969951196081230320784992782471284064883179848790877998373508691649292271912505264178928776955633508670077051726875477598273298032343120096559668967494888351191111331162984182595441819730532479533789165062172760337884676103761063758120344721832306209709545811568313338331611027921375517951553696743201120720988668568505543797398676664774442637905469938923368435999062133177604649698524635162360532200670414061481673696029516480532156905126286339641151078470482010034537464619107052668032560839398500731809301097625351801735086701878174228105414466477654837449394088583212147136237355464891184661853547039164744441833170488672579209138015842451570905832721053342878343632237522257086778897678424345579299539704156014743192019673647836440406588684330134254002514766983615005074770981028291651597280402714654805447039290599677132085700760983617284961218792727094704855756738406362896015385337261638853941256576601046425683765978976698586092564889978198845896983170995317229157578435730723190618622123822627212316179159084487678072830850862056994514931550497131369062607458547491789716569373984929378219182993118331601421146449952771214883933503836974138574657873929738878273960317383233543752349281431941345362730921009204976654731956014965834026177532110695055566164154988926361997901642828792022987723574330222755927260155847429433343352000063260753346984051956176414496697871408046463985940791956239639421134687191888816744670919278023794039363133232992290593071610795044584375214321906172692331902197857692549877290059655692099560987190005511733709222005095977416846996618921166998475260751720240892374350240296399338836847516975810118036389172050811518045560280322082944910172943703641063638495647084191359784384466789381996753184826982390928107032929840022563487012532330245523586482898362163477506772205900050555134807300403265657550305168144240141067794487599103015567596343914220262620992631730291122320703684523780484170888641179461445711793470967925611294072487420278055853783717840314052289362255502447244635635861106587653590552308392775713177731792616402226904372829152787657323385867035833178706617428564497676127842809977469778676930234688364742779837724016983819018988547637772195160839294940628134920751666733514257567150792806933766102982416051859618311877111078558436335565824802155863713065466796898638447477450636729811552792006736706823247420512154520517922415919776988842585445214450852978748108615576274507031115837291403663985099247822351671222535480710886227404425618423047504701390338313701352510744133667595317435368951491269048459608544171061273551399448019497545844193214646259557559476340790200714857744442036850091932000576611233215931384318674277407383974205956994181268239696690698174023245518938627661146609799390817513618245398141493111632859321536725240609699697504866255019024900309223951813204136999690126798548327324960837014917707017983481359199290941596685793021068599591109092496004364941034769802395936593917074752373803178901023942539715338127072886043861079053456914074109435524664496078091966578553451193838085889128869618934092945563153006662805233727868597147896116560482541183195902439716649645522335007070690094505628707902129309137494844235296666848681974687891230673126774850983047165743719553602260336871675879942916610745724139501161392586661248128449860140060095155276640140325626644812569516778379765005290091475772776909076842111254256161596530042806208364934224708946664848375750170497037148113067683013483423876042165250203413477400200405563765630871802193293746244494567421394704507923619876166577042115050711039297751613273986887432542152126272751103822487392509259102713259321190594944089960604300081330090864992703447000396111410893405174179598924809506783159653238635974830460591703668979025715619990080293057080500060008153599793193379450667508198566009393688982851106545069089858524794143310334095380981390008218560511409932340664175636460209893028369193344441002979965496644813361415012955175740864000019845300937967034993912365326455762524558089702738820820205058589583788848961588645672048364186353094645894154683358990752178996037328420595623931801753407980952757389020356341285247968342580630424425232085376745649927715127014373154459020241496298742419452692350890208234181941279090596451447227876899032457991145291944894457447764262803105587226971464297999251150061813284169885652962859269040108903050812440614013852564435865399772384144346954186697676283210863804256476832457120213810591781467360663964020499447054639566538014410519859674812145118564796865641531165115683671749880115260483400137402118895196930793231951187461836549339909893899935077210068793421321930344526043938142212709649286310823844174715909130796459168882269016358099486317328876239024846646712535524698531970499112303170414121408514067950182630889665721066139676770684628437767370692129808886746116131087750194899699009176228075978638659001254993028941747655308654993439142027204950439253545342330415669516225189452313773327993804292875162228519374722026318532119818586174500020003320230266002224009011133577927198886542057260350846589013576582181626727633511655056274522186490008643704536243210557527362216448391033191569928347290479066060932422659333088559008605931519825564266437888020919679413282466708970631689625117534161802721599538701878145853317190409780341753710028463400163229034902963989561745680800060600636590711253846342003145950267266111699982080673410387073427308278262272516705956081681535689841391516146078663729464102507606051314040543124402704608031459983630542528359386252722987776184936726580914560763605648292720683878898791298284255155823974954214163852885753924054182466323359934925304996692579315211231159735361526912616385271716521226198939310338824683518403184137051027336777624034729675925566823786481656319274637858937098598456717292254931626707279506327390401654816563353794758739881356505101162535893643975447829830085471236017747561822869629998665491597433336644621194128164307820153862612652123124601991681746788309250122991632557427290249284689818253009458995784231862532212723446850475086592572034530674995730983165742734591766624975577288158864988621876320658272924382866683381067051225191352658403403591674236301603124742577042620305257244080409513123851147889016462181771788381841648916834928132761587998395154217799534689967832886311059012959105134990074165915062020731186288335190994291011703581442923066854390100226334990010470041024560649774751919866561979592907726365725958205304621899258069594618909424090119994618758713947503411202008010173849698340506418061434829310248627111586018913877675565562786137234187078642102928280188115231611268558502679350733509360434423030428203206609771516140393953769233677198369229503666195078906845220693851935553096052178389858637220619132519790573964369306510199186912247485245176030473058944363183742811632243713363524841155213060395882274948414170223729831450231923983464364372491128761755466426950563002539409992083048329421509946954013250159641434737956505009283465744801791109586179741386979351051641684933633160666577663030477942292892274751069111311425677973964393672167906726533715963448356015926587651124306458524325831519600005763643420700403037146123611880315048545571641084260359567565923148486396485051853169325787482758022613175457710191768806553616511971932177598387642472769485806421401284090347491288554704518117955903148035876689938628626308461833263942454146562908750688214034281709845481724831947659249125889262428541959143714301869866682554406991960706550817597683645179019173291174481258521361099033450136435755522851118597901447864788907447346824318157229691598620478451233721517273676795284189147782907886595978163477349775269577151476121654563354220164017803649382927244078087108409449280896481680706383846173171341650849066563971951117001121652982575124355201341405753992397939645464631330033271697964157039186509480802710639200637888517785232654476075376536394322560660426510384459413639824832666466096205539751265737637244308956415125882687986781678774375624996034267966140667431125449284140603500648830836067594180276273107182171887470425485964908275647014119293598499149276873750148051332701509499250674853499232690183607201998282534514174883295879894237650024834992856528364441427043602318571241154986418394913951470625258393309526847992107590803840042108255806807782157316517560175823894078975421653961126844068212936617354934014902792206986212109903217560752698658308615575286677458501228055337888155226499884428092261808611215905755313795901712203676599927555482130973640359159106087384665438328774372662876744051350114856582378147649555838849950017619200961666829877517854586374151147566687531091040921818163878034165670324167080211447468601339563550193274566040690179636268942746008295653948127057875263949235351067625409960669977977183278825808553057416523709627115673443374522742843479061403854845514733548739462148606016272061148847194083121110163642173105123515083398807179411268266100285346296103995211967473259908215054593021549956364448303823785045940266893585808895087960493226472471579222168954611946472044807853045958742046381184909036990057059461425786879966336209587362346904938832215981247373341491729525982594097644198451078290383551928024375205461741763755531823045966328845387612277317160831065859613978752540464327302264769739255741305589138348316698133231673052434855817256555626134367667281831759902763929389282959882097924737584490589794584786229356672922212284228825851162012093231250774746513386293367819767490564388602885324543829595052173811197614209368458418015078881034197301808856940699329046462348356491039961104879722828563574338707176860168743681730621349007351089878217425342152730209490245730272421509542199054029859270385237929183220966794094628248962094117052448561909820736027142228591345047323221521045832859408646102149248034771168810214334330146150230601589740468286448204736605981159659219213249012072698078428779800952512967289475003174641955835776999884168466363768020071761033060256926571517744551251959472413634819266708177801070657705352708962503413707571286130114389518257478587689736553806058895825538959433844812496848325893110229635932035972569671994924058245807342621444582590908021728223123151862107538445603299996207595357847275830910420096178449989718699947311992418704039945920904144642654776174519632131675384926843397232764734080243467120397854453352911684476575078782546287454868447326065093383767343550307985695597572735725134935323443932521566478388408835206150931377770182751187667853009045510936834653573096219606772933222985552972377930273968900052175615770969265662270441864267771703318262029119773769619685036898132927277295616920403398588773628397836453522486140033955495819656773507967638256271994829779389642820610617560859404053681099409972538551200237313967619611543102919099603125987234818583879357877777328805023955482682840936699375743621758459840898783136322608359461300155910559589408463989471442151780661868744082151341238151657624426325503079800797869646855974756019141757734882390963515398073359022429182810941159801366257881822693171154326644150850182716473988083841560068010908263786870318519434966244230859307902468551787367572755748164810059855178749874340712579674846599852188124228839712090076149875844082360952993560436005322761626962320475066999857936061391069861342904695795930241250626842655626919139122309063410468409052451522666677763960177101247641599993525804014237245190213166655576463643319821446990736375108951647571691582097081591979463299129676311083437429541796193273287480290550219570475481228760080658475015049571028055459291049375091131255555277248053875323031342962882597860873881227169983746705192778644335374807728710140784798643228494999548935267820073029950970558629522090583098759983868543217546311827353929848524951463012260208646516459980778290357716410233993751282524935809729847910579524521891317449604561520837394114056210488367059008361225391685886346649225764790457567020159087286345103009914059225293059929263860373730785892808946410655971803334694397941363537555959904659684644639026276542724630784062291335246570748889731308427857094487522987380154667641320156675100398916337209432006322520947243176659962555472524285731883776626847623253038824885152797253722001216954338450025008524446963408713589859847312899740635054079775090728181118961142443441878213073617152292993117133459519818759184480544438257055669222290329108127844634023902642019715154296391023704517616209787856590286991088991030097593426466529086374286796168004704050659330406282735754386461563727441978425728214409018490092308641420680288993501345980764154444555540192080803099719861451878943343851436406809477150479654144064272529470401196769166280919229329950144846132957528853712124319493172877709768050275490259673656643521967031538322326795059402446079851037149233465764460042925426898339899872794755666166510050909068187895404971688859864275588524915475872721167463827836196585610985928306506744004026487510361236063368585083818871370600188761282809200202024872906432555175772244797349180688055533135506180135473816690830350251191421280506286079886928713336849701986097216162457004264469745763625003926008093840889676856440089117450784827852917739807198959693706807467149930084482221874938225868063838883281247621526376420921054880494608412527141090850145353350006116945724983944421381240395787500685717408969187088579241001913440689894625811729818654772912866132821229994336547985370614023055954853770541321845104274415451877352111788024694106838456430869080835320780786616631841706027290628512384256731389878331119753789820310415470494718219262174683969349017528773361823363681079145852267131864131789899137447842528725584302998387370296354046307784393646539794087003686050877272493403914371906339335405783344127775004272032271850344904436903455087052861805094636719100030824421929962058449417617094895682216769880836605241720289083308908134235795978809785962152882085549298470860432383773469260203966179313693696544089984911592471951791937978235963373318823874737971934506337832005160064840087715658690332335892247242913389824410411715649726114396562733966806914164597740147182182786987542951795184752762753588019448198520195100019920613856389226228069429792028076146173972867069741615194719489973041560608864234656104082667364920979232405673492701367323007271900202863232294452651351206196927979696851757426102184568299802842302483346327405024213782312438742329106489082313503185032313493997774821705504894361772686975357661842898996317296314554637572782878387182237936482506288030430144617912753625571828393110806725773675557668340097095075807996036735360534866249294522479787790651154788511694013601457653627231136039697208069551369533921718310324269790094618892860271987108822631871951474588657078382880282628932035470565964591870529731871752829973364071505513583874331648654128940782735376595144733694180972578652041844006515708668616764109258880566459441534289135543235374237757467496546742795801901298069166602483396059291555215941422488218020796505322698459985803504425005061970988077502700177000531427220008729462090524030344331161326304443712333725398233520727982119775197092330751342528851768258158978507172066989831469143031894693977485258648391005211834541835622826334977287662703369103782046738764624625794860293018072780927934908175229502566806332771603923889008705501782004377064577066701316208576355227251186198193661264217791587581345777502749890159212154509563722714512230755102702373271582217424692058865999831178421924776997530183442513644688994591480142755991596014973815443200759160736526654807223706772372972895935598614104760241673250170705222613534958323540949980667226278503960090942970253754011869127182334039986567995365454461600028029760979391354761601499697264160247142096161426408721070693464659062321685296032684805616556319276409291676064583319538799215954796605700132285316059287781100317356668273088632179662806932310130048491786355305444039320717971840560550809081759023281929003575938125458735505138591589896488869664036817445901229704014239378992271753553886450892518462678008788959990577644816507604882246844192189429043300469087269897292548994856457647690560695944357611461978979961628644433204639281660846129357952648603862459466011215255991012455996761317885378620080931627327632378635566513962424912310735440289348923288976888211267331058608259570172032433468762637391925295546071206874722206650609739756344156011275009304837925570275824569500841353084718541780500240429192080918525825882765089781718125292705068112525581624582414358974612994639547801714034766153771480572496757852277217815046620134617118108382938167186452491442047413761713035510633107073670161524960167929359427754988033457674846702792606049994083256629631292881302284452700218856416820669665914636781052689312054191561839883274729746703351959211760611516395723917067780552130618820034955138522490321673226582273228450652737614150633834024530297423236461214382915185941397646207079517095612115612647277251219430990024460918492664680261434784892906274300217097085001097686155911705170255013204929666034662276516252955723797165273921661487803034109906519062404973297271803928421953843146465183081843285641106676717878461543540048609113689801730145967235896635738203778429785895115708572798268565137782918061680477179455413952102249851790844226683233558463122513506736640218548200875370930544588503422519359902216901664904231560557400856331233513467919933755245900387940930563713394921909606448432202474400323855850833587421433681027191580072152471951818473050293076663597040308795181756202005370394042370106991769049268067225122888750825693584876128402220967950876111193753590044201582226032318997137639204077624672819453579645843639229757567558633422745231350575704299853324136460638656983178180945074318528733145786863317444020139920110318606408748080641814946392072360274680277500130074209664951393324491799129920470570291769625405968207581580007607156232140200516810160485803810377685786937624616215885821459644450746956893952114447488104919710235821363939207272205078566445243770258730339425511576051525042495277177410182554275960783639885817242180311290917585735095854525763049701536350084273950051807060717958872384241409169574636432161678473942254441856379015725030211650139124353858181296620066055202632255843267306152713591689764007935764762488622342053984857372418531033405706791938060061633182928249237336631738506775691724392116597427650584348695754385517681641634497640621937125496235442843700825141342356216160637998153016937786805428830969009524893663732199611717400742947422371389983921052734645170540073612166485477389842024366828965389041944845308756038066544553614466178037958110476473180028153623819437823796385823691802133693161458699125321751952381339857166647870888899773718170181900771605839118985440813756210658104762962416309653623181407095575789804193796837585643589374477668027201079877903239526906121560316476514104292313041773781412198753130882848543159471197493695445011790890539502533437623024140457076768560655158919841475546826806686927521468934492751605781179627376558812448290947232096708981494165716920812303778048153562040427425783623467304044283702172035694368276527651607485667117032792044706968202267492795911526732850800120975527999991145902925158747451405776381000797824908279279983483086339127672237689286592481987480761882067110518915476273736217963691300509263704000531307723628631306566339048042716911115174975535012140772853802325796123127473047688529264199761514258562632335446561017451549111679654976396233699457072658508428634272659359334497969713270946134626399770624385633119376189693926235689231024181074640507159908944666823489506446026296565250936113711011134927457961922371505430252647611060210281733592615245112831611406581475689975844843297819571967176983683948179215626517073360826948057246434865090346941731983174747073548329768465556392489906464230404359690361643724981462381116174071356824316694946299320607766190312449996697294695115653905333499728694383127407066922834104292534364362130033410491371662211776076253334494904072753311710828256192361711766019661562738503728726938283442928846623073356784926156702442914703396561220164127703175543563864422036874709887896169528560568816340351070955346333116382641655898770838348779508930368865901081258169933825003478586002038067963801249672652839609048766348676061835712908291121327033528310579422096147399395409768719120635644958361300770970303256546193539119770338158425455621062760167037477683662994015585898970571575532050885995033890305504796361212545211783340059056960281897505758261001101279439095779575619005603178775242406114594229037049613365366590721054915468995850767284400273535351371856502129616812315194153745704798431145622456209482087999846823769440721243527486390557292198121729884905293926162776597081157269038903125522858159798389945777286120879359748744706359857653205994772262224563958340690939705715723944313438098545584877833875143075439792552007752307043936163278096986342456818079871674352665234599335012398666649044536138212799937287081297506456470337651225735439310116917393165009471670277155425992556976588322268140779376314937764141275957156820816243827271863695028684520653821961670721500140379587551693320707909767471458061712544387372919914768869407471852406828888794391030225666233465430111290068493075210275510656517713058410079556757628684796391479681052180465386431760153750916598748967933266505567754179836414639278502649018570529226278800402879693111054723093573062295956032298861040843628525118097726790037681142904284930468224195740199647348346999565547319617246774135820912170553203831349963298144600187140910307758095887953862912731237701155162460792628044369795133411615899711969157339081716046354485599547547393769598978290065060088886469603528857030906005117769785025674563249543781456865704842641047547800574139377827912787324894301468528392352303622770324454844593927072703579269674161307551641237063455706324910767571668174663893498360842329732359771345975666306555163451963337266045062760812194567030887662435185121631169921088598115687750885616698276254751028846909172337554480932660748746761936436926803677494745300190672078509108157587843770643927861307316566848685705305198695861964183484654756794500085863223311347492858414416610935365500677720727120671613310216048506102029951779325365730228666684298940587101567403563987342844241245416513669371065736259910198608486018388424378987052339850409934779103051034301927532826312295155259904848155955609854284730143368007785771855909748453130346134878395128535368083299414479839701953810693082911164948409750564853173883501154801115771433232244281931859804500951696328980869345764966679954051474625299057151394265977829509958085869579223342588215968592735472400626724834963413325407925811639866029875551633550488959747966128133554068351100319487517237687323376256382121608516506873510150446764453935789839106947331060704279498041583879911199949082598661002361531382794452774628485793903305848629042666659758045174415093239522579237846338845202612891179958307970562756960215806948643339782475542550596589383129094695492043431479812287408696702565881303747784766104453449771232895660460535135651618449488966588165165873033319028432037688262573648238975909829485968511388903141234818857927253184473373538461515215314680680025176234835118539102515610926036490780280180954758423101646643656185747789256327205637207136972165469866853009219860335390115043845673686650800504500072028488429600713346807572795401957331738616056294571885106122569807233026871416288198585811362875369191953571825914039488242069397782727125883602409204835631542914752706300522651439732853461577545925495593446147258828985716777618778268585469756417158729726303318602519966204038100968938304293991424972127317554848328355311327538080162077018946065247277304792032951476051414660271965697891518558544067941191682014832670657941366680534771433713939730308856984233064175733606387097649012868844214194634255215638081326604596027669188985612393847821714227799076302510712285481100918035821778474584616863734582255081284547965778912590633594354486200175449913570684459704287329966397538785769998104980141049394748069568272789588698259842882421732810728505798437508580446488324902719699708764075114533099485708356608117470937000840273122161407090752779753445351903829321180506418738020650718622004444446877137741337515535130815577663991502929946478493510289292062163189874945451428459379643732411906027211970614874772859305660330233801201559520771290911019773828331956218431772190829784152582230390315112278699069812621643200330508506878788537521796469224690900435452849695947103855945196160106978720214043270836295896172426773809851407251395213652409294473817540895118217243840476414923123484707371168033378593443555009140362898250751702664835590914419441633644743060729208360077336741956418532773799143684722167735406260778822506963167414854230764382853679767140650045207862972088124352056429145985254627345085757542623931374406156027846206262200094658556255767243419584706619799303985741374329251208245350789362012878704631500379845521263512485560832725936422011701754401289592520616644361345537292091294915434175925548784043817625543796784612245380507703136706863827981415952407455817609213197579593643644464414124889003161711047445900721297755416628598710162568661873801196676295479531703571303385903081797422331852698474098952838531062097803804053013257074847480369187944679932056117535593522934736978715781076240788864209375031020590055097706196718689430004867963764312056715549160410948639881119633689019908483580602667567050187484437462211761121770991380193849586687284164639239956999430128274332006535412299414403657713093149605132640224047156935833439455385022440569218160563343259781130015890888768050839076895384467829800962825174146499229800611219930658350707614911652755763068389723476797811661196078729526769035616947265816932099603953818964934857870769944481255545368645674379407101185006092023904912138609278997008806503808452376014868181179022842860613950062467878968380296750011608271379096970796872298830103179703053506150901698923801649872803672206026054234458577272539771451189786834146062387630281337075349983521750378441581338878036562529337436657620017700986235210384570020656592644193315511663581129791475468516469126471041373647298513798659486997017425902979719019494763010401072802168090274941331565996331174568913118028441517320797750719372532484549182968315066203286753011137132455100677189420735373440933988504156286559657353434004805916466831629464537459126961732915418300468821759321734444762841661766752055943202488308877795684309550556774966794533203636736304219481153325572765268480815809678775294803411928403906034239459334125171895710966175175182019194132964780237729709426751607725527586460203221187551579492849275616224436412850061455684941952536469899876064168529470261927047884497802901532401861131735710836959324490676436375226887646884093386485622375230044479282272200463092236951031114125379157111146131490894077131456632293024633761754136764239609980851331749059916313179525763248712468717188131042732578700317247386679609311423104221948591373179116721699064095075786710837505014249734663321669906731621348908159510345754387554854360841630499714151205596183534562102815842061001368282788991607909890910668641736980079780389178861807542186867560976604829703812744717705961467644872770312988993669342825723615224097361704191897479488516062432101092065866416129297235155050084596131915959048299938163249754911920137147724003509405374019814324543493776621156208854622331207394382919158354510237958749184772320545849881318887082747078418064616886532707172772233118324256371113067688487522243406161487825049150757916666532419049413297661294112767109006384001781378536677374928575105443612823326767727423828087709059718330841870628599645435389630325056027367910225501697167299849315464945134449912533336600341539788606537149746732911456705469735163545662481288615245238704814426022631348924615578670408065793182801363203168435321596846607529885375677615750221420398464314659431787123664527811271218725918608254735735930378200896886374628771350461350858608445486708555499920378256510777205345278938565172062075581384766917288443639556066356699385055720987796722393963474488517833732143494489608884730109869337699867016425066421090755968099763525735493692787976665317043579511389544269343433663064157120783370632446821119603729959633153365645993144715493882629068067724718776968396875034174341557363139377581432242833463033012978247397641770324599811439776724031053388074277130943342465364516503845199318808243829413905526598482626253224334750515406294583788072393810907033339698674170554659913522048202382185233521863754596798983811018531002693119120076877835461978190977683573001294417930174109092938550560478777771635343363372100559802748632963446107109469312361947455266324981279964919193222051835763257116628215357810723822809162588315580861560812023256883668426489695886277133920402238536042721659616445167333859750282072803399112805521458802048100673502746415245145027315818115511375573023098200557328616915866430504480509998342336904307502612809867147321629238871859986260087937060940716891524172584074075521736086497221642780365919412347616043705371821245070676037418165659892371970663685584461122007066935379179688040648207639829876316030274376265543507647708010102794542874381004812324115476416562285987693623777625690924490332831993328943311963314335713054793291012467875708470712848424495595534137667772008250607475357794851284766722333655501817084221521147985476858811106525264746612303743875304813762989488229165029069634552473890094794073254331811286177290410901978203526545686356940030244094084791491432770468360303083864365553853310253207920415482673403969327909667089155169847311302897618060866940589996811020990106476516264383669442429245736993334986631309455112867322058269386488784527845019251911118444121144854217195934101479596790438344836926307949093839754686080817298031681132214627790475513474666047116882744926703220753248436853218607435933466262863050936158322411984328481571699545268538024269045348529461780432122570862850679456723071670646306623064268433760358357090660069567923565211969824132607045124183033481946515581705686984244256296544896408584551700461686299475765276008903963629807290910391779794534770490980018493500197959384281903016246107158809463463613858425039847566263351322666368685152106854207951400682431245145110219629611594564114345469972049083825839275200519626585208422039732610060455471733796192018651809854281384626674501339998525093931286854076785359105733575221942732432733106714345013542156545151929607130160314816827344576079860317088419728083649181103539858046082808851187008771772700972722499846891610971548148592729280811942198864754954293481872848787719222388187474082833094009421454804055348036590603343256163276131446123035969346511107147974411571674890586175908386887211825554168895781479199580972666505611705969668969355404014897988403561950746586805964901861664013613640792563162086757432595468786695812396730943435926704022667455154782496175710336689304161325659243336720955333771685815486908165572098327661180578089968575904106261306279237702313023472426618232709853743626512266654123221710135554679732592808824820767735020580774133773918893801805710039513491811067226738476355937458342922382717033478501626449013995170659473306758003464252517815793554586574761990838428769776476043773635017117662981490025609140251563163972994696054346333961699983818913801418484579143417447717485690292833517332042742157659709145209407161017012124990073089774895248732327554988117682551527657702866525033990730188129608254725942586337660541674576794283442602777106731482013842172128803642998681154571567115726952900959432133289132649438465114168207391255641970392212977489320047704472786187090702883873157281297888329220747671623219595383478839005014917668839396754566247954233181623889986238758541619398919565808957135919105918586362766531306919536906242702954660466454334262960203653196141843908612497074566918904231681399176698111205746871405898942803440858486409371400039166228443136686552772786545555497597274175311238449302939406731093135135405481786774455563868632852676969840498485909689252657777989904961642013048147950474992543767607915742038811556591545053036432377233271974440957927730688732499261207203976220248623500146571206401884175498287877131762893414436306844036661754492399803136679459765036911049756615154801104242567350943129324734963779500257064655602572175137066836525095589974989000430852268090729332600906736030185378972767547250647791149202504424374828314798124385679731509387736379177055649675459884005329703876266915613829512076222358502846533969221739509720998380932363003946409547843571337195868294334384524920745086241843513012339900343087330875653319536000227266054565149823895019125060540077754057483003073795153508984499957738723692340033092899440815649481831994290937252036722858171297998394034076899728134704455634689452280595054539504758919014623413516112609461069301955369782826623121800012527269198339485213416340513947802837644765064442010954015679240154021821991548008774905873679316548131303642277045354104909628752074012153532604778317252633154656574652920478679432306709137471610210164840269899369289117883644880051366806827223357339751874251573688406839262434814012192014629302844885777610548197060061847387186313389591433835660230372054083676609476466227130324316893047316292876143331449145860265053973450433567608668719817833864178116759690956398933876739122196473570192174103292403154960195196371813995021676287657536169492296697328587655466008965864499494773832114696953139288752411250777874289507065676252291738531032598643389030878607771436955083628083917340191062803298733881989330077176103311897323646271746930559636211740913939689015619987435564306740722055073510170427474639259489254817694407263654060980511733384679712748485564238918318275850892467405828501116698222118277964998006048741136149798893574581577231363669977254470182127048142787715378730978140242104528680937653965521323964996565754584422591466266001032498556744131749901965291079813714369940411656468181849297709027215961074295403380932847971832306996784052005373601603907934906540751766140727582207690718461264541767558045670032620385340550217108868418695070566843004332884805224694489402590957284152328136948404059533977344505919523763811258096469242362521261592446533578494503781935899444484363763778385931520660021628668560784303254845655372732096444759944202110838168349468188404445886273373946182501288738813140834815664024343324045240797013799107600594059658520538664562555651162933249438530645437727815826138630759164124465801483605828394492557330839909465454827279844508953127532124626239913442558474415783093522426620862512661061890908640193438650484165706149960017278531253679935013574251664708668919306314945334175750326589884910173528724396934476612040305143765031917692360303144109389115245276016835802991441228657754563273932241202466181421366433162431226750199211539196441494576899271276458663322660519991399785035256268648169472873426497841263534984924794797466920125156044019152431316495642918285538240912139538088924914798430914235254587680329437721007084899194084097541965078236510870922565717233638080661988001578218972896113091402128826573922231761104844514853165159506074459409374685389732284463437892603736629598472720507958504625388706654562506585375639365864271920752058064744382945502485236173682590201769862081288159931451304784662702915762634001881981118032619417894966988828838253687779539529814229882058250970903197901063445202586755181837454888554185716543108171448232030306583014967905785886992863988100332023884478529322913704997681534943458705249243381944475124668902567026486400874664405049079454675020564156912506830470395439971257337112264587166995076078633300930296327937878110161882097733523170093123890099091837823635198293510696255336724544311542645256410353804906161405536264081076999081750060526400056049461624888476094306644691968317015725400015359410274595707426327689408753031096206004997068110288844255672976921182991519834977568245313441851540667143379413783997658014509557204044806137972173430520430363205269130842537486732332700771235061981571067285487120394894886916983495164018924927661379514726807888402543361319804254117943701986852434849002288434279588391923556120799866657038230181447903186676956381493910865139047203026149887222902681161165037765694270892246363170930152479608570323730801656834535251990984388017277527909649241337322543328131284497817810237801354811735838976913287826669540968653331273955840234871374466387414967878456547735026292867493656286468989480446729663511485190444979321809153088480100383952487914842736693778956223638735728883060001340894568483002331265856703977353259856764368418105953020073108473261783237163036902571227977031001740121992154970626080085902740446212301812450270663351436638977689778743769854596968051914757778921742057835832096798850225268618644299891505368819044748267700374584439041874752646783691559744562237486251038107399670129403773906423896248161267858667674138480935799720593169718451255219004914558606380155559754238775678561099402591985680340337325375432178814767346078556129290735696067499997314000378083063188294329948059223944811424838403768557562966180134109948543425735256825003880643765444837537456191086829839859457397622697040564847303448940568062285711361242863234492747566867854281025420833691318423850474758339046414277352518927989835379330902375068625073199396113691367525305263404893208548776060395475979588801156826033269308578850745240994018395270747721000208975400655235047742956282667542158754898540437026132582215695872567788879300965907926715591116388221827041095996107445657128610351916412474911853387454902147008102031966021756813628439486395694952878505335552556672711616186625958496908824592794040969287250777880699857786374431659133055792073956850755588677975758338729402126409349710401634230034827499197437647067379839153993634331061829354706335456166473319401601912773743206242609124251113067700579866521123100472020081473683774965996415099519527264685733760713569066435912155871278506670432417275873890942081138915771511396564946902665008362825582399363801483833115203764114586471141678566364318357421151521505516463527317774111632914376284027794707866926251773823890499892603086736311459561182443594464212986480951981729435089624817138433950898458194795599424495937575260448301207230943141334112555635923437042208732152655961410912387081574587055679717838105999055335969090623429254149648532273635110539747443281414920427661271668108865803847887297787492657849707262685740565836691986828404632996129127459941197104141071029407201253287514416207571058235757842825976423962454154522570485477407045509657847232004009130243833966989268312462289982853789087926812371360861692361857466123132443881357412809013619465610186140083215408353519584617796439898230338774020127445294156698079575795993188494409070443890921658198376197807576122437211649446214906167220697693946525049716311253246295616980426092012062650479677119604359751065584952926910864824746962860472779328843850447087474292286407021440079098035271944503557923613248333928788602475145225850370350955449445525451935979132781695573906067169022834285551791419904503919063929630539168325396271584722964640295802276370130600520235073664620967276917825175636789500111015029532209929318840310020659436326299283027184220678511383514795327360356867256923472405795510210080004536929480883964755769974554996620344722857022645256423617056641457600379864483678019192469174217620539075701787067353216503633835604894207481722333865366155376262999375233940941050680898182727375699130607347834072808491778707320427342969404559886314270349417913187759680270713165802379802983564495745494199693231252179650084905904759919679266099343635165697451696679497629373656515581692365758746549282940730470410317444507323516131197336575869544942580434061399272305826594261880108602790575319837601626596037204717342898580038837892391739850294402803377677284119656547382623821663118701544820128252357694321486018496143789376362626668405663420057785042617819407977287347414810263714633581286513557937324361796781664160400034583609703481289325956154307494129501359793781106031591592264872783621945197023324058564576707286353588255184388563173655504432014683955933415569759008962681526881548478511283389855136636498670680140306047924824346284927594302587426892003138735808114203718254377989540756000960089918254725317647100582311000045307357442288930095501604251626308771336008408870941963937840991263166579865936610036363448293006932980310495388414722979201935957566277396659561014931681072769694196053021522879314549162553403646960887580143126535954720743933144548113537080635053051827791526476927335041526022816575477139546055454792440503610090345714700642023275178745442908247191239469207300504365012135487369529162769364526541018720890809808217002275426571745371491192085332232946622697963323275189886303194876919854638752175625150725435723720733204144232094075397342478339667131025544843545287515158517047461665944482643793375980587232838230011813182739917702731092904442945867362492877642326064727221031480691179675470901320401288552839383270328415645053762571191226034379023337987220029708172003785448951062985005517474032826722766030860423261386265178979524923891439777945601293391771215830180682683176316639747844580862868650795847964853553094990417080210892754861503780925299311806615866709248377962324335867597698330230947758936007585732774014970940336643766718050017351008402258981329087719970472553369358694179855586814509345881733257858053772529787174362535016373658686985255464713225878563879579427711506718988315066849417859539966614020075871584200807654532178556345143827615026074522722964386559158297430729275344226156531839054217852488924683082793873547244819572490033694360239077262808950398246325455120738707065023266125077415386490344804792462264631175284546526002295882259347208018540003988515259032541786432510609989668603243108524036539419513966076205928298481158385432475398788264468294013397693230918885567697908854180162120526447683109054183821631663376687573919324748523422542890175357662192452385209353749081352757152144005786452475883410058446378645855408210587108217398477701695200013664498213337462117273871130083244582495485450184975306423184264843835292475262938770505503302750944886297433147187995017652293166988458250163763912897595642970839265436575880771901427305386519214201568061654594655260989497272022752522841217128189645180046674529284280460527268479612366739987515348992189573837533953983042641282341158400031240661568071646170866973455531390831514907381174332188804542376472158138858827558988753164640269451858251666344564308386656857870596188722938594825439239604139145967612349605481842880760722590788048886411626764495186459113670586460588065457871229639433644553243001854913434966636255712526814768697213723380642836687572700804376102451529178231097350924998348570550361249423644067470787020890324527931159045908227910046105030999731006391639990571893748359056898367596287099792143138101215941685898251386999134326614811950949132596374102309641461393696173400881845861942619336827439906910817992893688160080259165578399222839777752762452987292842332907788690046506140779498817483723820062601814517491210898540107958926165058889724615561869820115031984794514652030429294686050453870370294246451918239013373182016085465321332722316186843335186913454384736043317527646093422764412349898039911379063095816941408139769372507471439020107878792961502836176875679485774910898208577239423890208137808718369832514075324583106807807795732681414334783184004788216989628508490517577620902419926430963868417632493198199737505675288272554279883109768095726273596268611852131645401154266648343393001832851116827323178622630327836260083532120402090847527669010570063277118565028925103803734591548588597320052913458971830184703799231766057590654266046995419528988600443557118434071867431241702357504511234259648305677377531403665619279190837240682182418718810813263100743522122618246179587881094982000511645346484762467516489651694011358810487737392707259757337423205896985076650412709408684337639372650158194982175711881883131637463702348341968753161246174183162728555798095133432451851278931205812996826142546156524765854386503277748743156798163926321181564010614012590315345622284150777877525658475496504556592390706439308386015576001771300907649326073779136995716084593913154896154799614177338622770265882478781594157666088252691479804185924004540548011358558040257512727879211370508110376175076892843570529506831545327963284258436894945007110667505015887877546422273566187919760961664987051765499885614091625004685512215705828955024854926097832582785197415367745472557848518627479524839477447734511929533156492775857088661288918701929547489432942647291884850493198350971323102660004106492865354051501961085836954541147876371336598736499657955940243861076088299927745461665229135311265916149382572009445653725539773210704422889410377544294246949823787501909248742962556922850459431678115176010568003675124195777408959509275283139658560807678843312911233636675486957491715000700169230408640294183799302489437845370815034705738830507305111936952617293444396043198828987123657256472082171931674036452810750898622684722372130568182343092345917811808492611082847414897832222449879374907975327697993000034412824566801692502098334167711103574898932080250446797116740014884953458718187395041568079474524243723078899741410407628316118990202287280720398978475542589514782132593089548707372672213388826174027944583985989760186918815054589608139118126229782526045003664573023369926909964292484055371844361063266874590669627973472109084337049851833522547469395861398891532426864524771938048654454655158045041434182693721604976657085515834535168757042095319425895395713695702876473682218537531782708563032903757233659316914728943669131650018953037701920739796505834081406819293732667318915301293983079587051112518874540785725759324958339092941678865938817435706297121509656073216938439483364372070955938359884706563108544167656010279945779180968863019656214164484618959614158125297215715527076322329531592722521015207222350588144162709207707946772928930208147616970866778881178042660586806011254508952825041237937956759271379626742525196409942672632639494414551055155551034226250618025486585547026896083401676879993666925704925212994275271691850312131543364552716236602283248345718676086633684654121322768087354239715651220221909597535107331060475317235035136921468671265118217127650079758476735922542924285857766435422269120695972814884395368536095871702384740308227924479080903705463478850148038731247632469624133462121768919586985857053257987243337297207316572211878852546995998542413377835560475720298375107262550527593555150922535109623350177354986041104999607485513205687308935006420642072802259831293394043108026676772261601344443137243519792211428561331903489527934339236866814334579549853926323091011366293341262563518392648291250842421668538216136397592107691772709210807826257809856650341304188163479874480747714118199456750810076529805829004454595312213351359082775383560376317157781390006894324472120030022033881660928360536585392132602602625263231428870905481244288579341547538455858967328520138735669025755109376111523995239889028295518561774405255438365710242624605856646355986775692147589928672312565577230370223090078640472639306618508219277763145836576670068829332418047701752312395833481317428424763429988468268692027673047294758347377909811285738700616237308896059415945173147938062423836190265062885288420185737396954714621357887453597919258139061802128444338628880012684808225721605961145529389430297963203975254358805123082175293028695975226402857158564021540189005412377125298655233733298858024038629080990794393818322674466678844705461743328990727995211797008312892723666822946590591643711443543588522897284227100411071953762937448547520402684651216929682641482852368508444519748611154963157968924681470940939838277652775216565813870105140244515647542870748382490776888464001261864167244565395142971416156460630347839048306596168177427361816212674738397239872275029750102765991788639688247320299018525816554779747422140097818187658511037164168674547728476568431133695892769373962583549283884752473800036636799086571886371413551085067419489612373641363636958463358941532047727983318787126983828324363823618087588589291534477379738586529299334297718749439149901201804947549199478770109673571027269645739248503867176398295117441429105549623594051455157399698894667179520047875833030806831802844271239499694198762872417805398182189631720775904970235268979607019933626689524535639787506061069247316944480191735612206554930098341922235591420648743809135465588109266372870375878414593450155614586752769073190916377487497597872887953856965662867229123651087331773213437252033556425251110144228040733899705905127800257551346754138251833108948064232574059035838623550397663206061988155455127054526881300404402395675455733922246388168981947767706653476629285244237630800973926776022980200009513711509102671149681648597868665882009342845167862413882876257938568275640662124477644795784344638354712222879853008451399109064670534570171335002476726723781509820047584296250145647700555626674468971639227531071383663892482129211798856980637859524094098662189083796993189406477626955752714836629224427999554585699190774567575611552194733470609395922168054728566005448696233566737305890701074435606484322330225304705942452966023045814718338301783683803099498404744802445515271135427226707886904845287486067389350372365106658813989090052545132903073696836545256258273734960214198949765147326773886163087299654613818290313205100617986648909792919510630277498199693278590520862139729553103191722817639664334808531915045833342310176370726798435254918901195852099304910034063809096354134329015304942631653433203615827125897852541998987077341942225090396501293595344918879756968731124355199386964553797673274324791478984315164064859994856987856319054931108486225373503259005679884248324400739073547363762148625730159960818079090400079999788138499358587458443544229830782151390979445105302937208727841558019931173318357615275077946748926596136412014460895642668833429953954823153278612685709338017776171446404242412467978432008073445580245119063810714410167249932813567036774940632730326619818372698799967044184115436052638750859213137899093064804667596882630108654334045669232771712059422676952269013729448346305454727108040537374158515457541698321357824250070177953379718418666263703684731287365058923422301203576576397920701365373487040506950854721128788552158635832218132644312733531691851200822464504735719564234652528283143844242523112701498575019399872730774738147874018666971389931757490996197826010799798541027780448466581164774462370765343626816312948981757207235848426118202980894719752527039816238880479792922804263685871172863419192349077611738575083986450426816756710184029438433323486845634051429184984985773960875795502983826856511527504036894709245629017149956924259891246400978752683239121720139531741434968092774803074286500923584779866099157199065386155085611910970846490361666082124531396717379502972857404949729193732967865926643879792405675913989180073018137864674457578072231266679759997679017604337272102645479532902078764648752208258894534152433041844772188366362141478880522258874706567953019873051583157382557159458362571486732000419555395046145405029488082848648783600313766641232985886835075351187584253797757761732082682506892375579242165818957123640285620712120276930794365142753043024274135619884660300023483153818059888388446794950436757522698705725310912346497346659337505566239378748276065028445196337630690417970709571018468279709988697027200691006755099582452418032970870935540455499942734451796361383579712194396264232807173184923540542961391550429604079954762131181742414434533001714323585915286043583364796306737814884105060039492972584183786415307774565373554505320450121629555691271475694197242609351770252784874872595736643628818580291334079779190916389854875150401705970856715946308494229671910448260858667980195409582852646125042250423521599939652291275922323501727246014351763473772565492737401098473022218444891242343109334158571771022874348129908645430251551458295120333312300662109682587254590408036393733230460280049327248292815661374534827472194505039664775288543548660358073818139643461839692771856853176816583161132457598654233110792436567212344128677697665497803801814044503604875601645724520614204248802152568821699539598000074037648691061526772592519391342576131898431741273224560704941208029595525843376790002658017157248905015271490029055399054995018774309594577719668180499240924389616890043005485422316342386814771509799501128450071278323801013018407841782580042161629312033114230208689082939213915582252813720715300148255515029170197451311062430422884428278096865326259826315560331417121771194722721222288898184108608421007591489946231240172548262193830807108336869278237681327379382763475667626804839359562112975300126213719739199657315603666266134882642156258393005481767429456820387269435902173673048599425241573920486612760609059635873096318026297045746832823115341729829231313968565414431267463465628950655201041951968423670688469804796906812451871160965191593377942544016004270611181096302700217453530564697808453627701580148622197183438801424649567063727452464776829569837105345998444413948207360828069142634509768979254275457384867179223744749412750413957830838668113377861736168524120988135089684709953007291150570591960216004475977490704792141768258932479391466894829364149347612811215457200947241389443111715523251521318513929892054098018280248981227296973182289316848447807274576600156946917070168345335948976908767121028971604214943505573484110428356466424283426003346010689196341061200905214947301806290192339935570527707737838586239399652577345521506266056224206759777181847843544440920555067148586963308867970525492148246816612511115235797273492710951119621351283432725161295551395193175893328683387925560599171445053709160712610099521499551138523157033246330165513589303949447720129355916758293875675333459972445781818710714452720489575800544489902204691077860362553465718410374368177481720435502932072567858777731514568173232489540697286604313509450145390973950558333357816302054925238488204227883903913284614193959093621830112211722652644490064676925661203836085811246246798444413589611373366146238335887484107626845340064492265707539374415061010445215460898100708750080331977114166751346397093605304980853624079533039340064256216075007114748571364170331940403907251754893266069490658857695253388227746665255795041373571729554851759500579398245252275140388259098239051912152931527258676101995841003863911524110067666279945428871028813879287828446061506512729505346959026098133533037401453533418595023324622815777772012527166888987947042732858635133371860860744208023963184326600816600323300487167550079229976487762173517841021241236951291031250104203587489679707164752631506211426273144622108820093688411470402976359624959815970061687139976029654248124057082115466963729768819267554069191852208175408576072472819894659869297080918868145239464871563258434920684254253621274143002616577693266464422992558588535152460198960893530018292189741242616127334526799318486631621283725275537207273867521821201665346428825190885615317285028238184500770940742838778047801272039637778633623962957026834992035887819892925357036078291392803577947224215202755504407336390161054142179386354921847893267992707380685346040569468567665757841982658047341116295938655583612034421838162811332720709869667569201042412278346561022566771063648919179808284621340286502188036515290719488615044607649710737977116099867723058627839820986123175569771708356414281167535614343259343005957870071767112445771769655982623677703811856893956976231811831399440812749735954866575302369604039981719949900050503110682607482836560431123389719623784169039599588423726542964198889133491165934079114463838647228292906558510006500194692101359887608247591114415740059156847878204941433889264323428007611957047607011628364771598505476678156857103684707368141303875159772658589570864679920613004977624258777111835251749302215690108138403759041044918937137618118459900496508196539062464844419965192537578044703985650612746837691351845638407399162735864345190230298306319738954737803164959527419085690107890030492696221287425993099163140456313134130251953299457763750904628958946245234826835404773386817032111031585890874552192393019431110520761542507336254755253941869906682626893994979654876092268573433217826370723382455945980720234290477879202494589348262855905612974423318152879872243212575772638921030430605265851587500601996807018875136870155758279288344509173538197255872524961446415164674965516726895476220697833927318638917900144675846327992661462693691761890191701112061722847917409844287940380074107419266527391641471496065015778440603030862297096902316963419016356528276733605447525922098307367808651791677360408375054648930399391161272297659423408050883647138311325507725250139401530403178990057313215283915472106329053752397454950001732348613012176478355583210215550596120084865938479409522761676216348153278740263896284373684446068590746608040363802810738506438788152094596847775429243072143855452975546533372049422693719611693458916498115571852412318896216028146993846846448003212845089151055111369436258944865659843503671853669361178777672900733831436238714964128474946101241932789432785066801958269206540649414181483819577709105189248503274364853066136271263039129815844970249992480848646599591034428635447332418880690979961025768754646475745231677414843904745054582675059633368405800083678695654237913650702390620436093214543660795801229482497001182913226830214258535654614411283467496570153975659525962955346445907302728316157342845878328020575968608546394366054656367156845450133394220273464058199574067180735721558023616538623476338352152858363728589228605572775839032356249040347609811030822810520062214605753664312517668474671287084978074990940851190571975167577947503231641689012750745771706973903627862290314085727566847790794836740784260821292395003841226288431367655249901049507199898901093553749691148475832112156605218538989758648261107936490624411795160827297523498677067099595123426116090864643866217509347118444756765415895259776181928453008982567481826238189479926706288531077277332212315002667177722843526153551494172341033578806084951084208077569791866725582149490836011919318898969968633915985075388017209104237809305192569511045597099671030608940384036476824555317525084612932777813034354441138358634788093175449672978630784515528200003755612421447063145088941278353932046872682784356434233662394475471944718870896916821249887115150904065844051243132806456169737128966327797343676218430481616893180271997933868107063015655702451683968881240765947731307552547992274784788823452977069388749610528819421952303439193141300989242926735744745915869823152831626519564461845635589370490860356501820751224053723842016076802937792578985577139438481467987028726612595604752379465772162840927594562433120302587651381144676895739938085879912069345154961154303503253105299851076689204002188911996967833804751944166629625595050219527575078674890974796253109191479601562573055320390451358494617256057184982132413928593554572715427002902916126238056277257203292946205756710141603665555353840622843067064753453916237292788481316207755939642813762553716529697018427669596300362939649966140461565790432954822663068196424436625915959107968802953284170544948784669021017810785518330276107427347165783295366607917963898848237042728061317957908627075013743355201662600976285074248969446139630048802413153776040932514627802860363816396915096284773561143037324619237201047279825642833636620589602472848869022662773575275070306247932670261534516170413656850470829780252799609748481103609329840428892068017920507460811035607644569771511865619230531498958349220292088082524033959459910249696580285505751079486875284562082784066951457753693922493392231501546901091226471804871628676212137774563356742064492963703538422298379623298203625693904226375087993952793621278824708366783482868437660030568196999046399160588408476506213116328988608475655029510349324858053441814099095479441638330056227220272545544830083330256181238167970780081876380145423266114191293709027258566866459957481638913714784333392230379909532384747544428479603918372209142682205420257516632897678597211503868843609385953408005502382137666511331316942094184447976606700589506180967045701618878130682091127313727113151440461317283875231039204231153193446272140526792976876365246076571446334028728833689691750385736425176910242956888272490656561608360237034973513715520082215614792738004513352877139505617889060609780639103676437577799289649936109901290163055762041592666123999545799575667051496738319151994498284437907568611871782680510870756442120175707977062550800980292833543743368549279180171408966938579058307544919277740499455650492522441638373691380422774320695797484544551760447707176625153050980812186061016289985197591948482555001258172870678295318188224112886579256473410326398236381574751682122997915780969474419389362892805887426679629289942829646406752396044752485674545322808672837678132420381336551715010114933416012795245509061748743095722147231918418012516978502249711355845395440171142153659499179996858645066219511363601456557307481021978386114101102741066644436053614498999869445599653924485764811139225977399405997992704160162967662517154518851208442534858678882114328646296337369118502164392151355875295758489579706528633932466610054749659842508407830119236878383571601352686066622912980505760168334296898767456397348996945427050653312733199837222621010827502458222386708326076661566915045197062146851987576448663626582473639386371555545480193733023753830015251147401125777124210822864875330748530632827024011416480918226646305654228000867122754301635407203440258942021950831289724511186574863883149307707501700223671388000450077272856495832855100459276589134594059912270582515354411731897967898248906028764372779113726920334892919149881223940007312444934078079378707783821793024481862615548733000452452551551979947821569658698724738912275383418196611447972195813647591498570532640840374078486642067817080379689091350828154481190891626255477012147767541650522001669400661106295053129368064221044812180144653026702331556328952875085964896779048587847186323627120062668416394295310023494872970402829127708263847095174393195987091696685406226629623374585989524860946504703427473371927099478068021337746977280860159096330182326639603921270244311085030546870295836727173126466733453095170383978627383290163588523259920259002250643498825655621276207353256366827110288334853205120710070051750514142743098528834378539883198417152745463324271918037513028553621034924471480922941074363828407244040486083071725724257126903442482350570746362310433890772142207095794558859966590204628548298934670085371747615990253109707792147392661864555094341068693942288048929568474028379464155896757662827668358097096220218100085800082128512574973379249052392835480516025625875109333732385248437311424401699274479560717337115263145136666954724784021918772824013461507897926824268669534483416487132298541433502833754443078820655111335885150803142821535778783075962344703256587000063496500725792184054265345729178834200947477298950391106867691119140387235597602043201637914138187591228973452283770446607738335709013194546302315354238721131869317351396817971348732426261177850946029293660500659563987313413018448455591291598134994137186478688984686443154358627470011322638464523382061986604408993201368985897568938191606260942938374197453445279651304138001395211655824690197656736502732511339008240976271923623140105775855408844491531927171356213970760221183921872075076071397117736134206822616455901549712379556894824856781866175720430790912399779753446821260459720395900877490022637453931042972389803839462226334313239987846010161836193997124833327533118680242198709863079817848788424860185755220496746574244695016597231671937134943479098243206895239884477431994276123482782027032225960537033353270103450931723952589196900160562867989601831985400876609140338353028186192096898169818300102427469872787277290906754735337801371393522071291343252737211640092241856203160603496181611002513323868003820650075098293850799080868104328025174012939265317326194735779101953367921660211849674019436157821752602656826353061992514789307398005008481769454218723663139166588035617421136273872177565120787270970665025377820775416209765865892871209603674581818700290300150659744722366703924580053967320966812060498968056003275304218501532577040484294745159905243618270868534295494365893078412856994597880752963345369737403803111415267076156900685409570411396430417560442936227505035746406145870812654318342871612268548909297690951015731170918785459946131879055935162418776176111106254336339140421970279948693160249109190604429170063992736494257136542179452681999916452868436568630931411144782642357041901547537068080072871132659371386420559301503703994511076124756303114018182144245326738960583393513297984721908376162236981422776052573035595865482127951956000251151768754885699694841319646476176447392858015160672532008510253801152714123857272242244758307249588323801066708354656184962424510917876687632260543592534261006542336667053826742503228324319916616539105274102524787024889556320837825509415359365434542332494392790033405878513716952196046515438546402282402230636494020703470262316002220728389455977291253986898853269719851151627025369514809221058678206558943233342559690412296610054332636907098425589926794803932620026785004624512220556838309190454024754568790018245072787920944322483882026772963198090286332375253542529523706124953272182551780070541987157618356614623652547145673570131212228418665272525241465977827770377751288657862032584063034550522471005941507080784304542229619996323803017203313322245888393130800938372466038606542384558492103797599305477760879469459369386807837944333622993677513368159546016389357558602157967382960049753877982572129012758853500800100583839174604674996528002577572469035376263348559444777171359556605088730482979434594455607324167002213034854035987015646164186987675875320291402086120701505866789532258696403196507499897064028922575677172300093203862153640718759309577405252939744500181076073268388227745277631967055003750001434081153562855946022940515024137227496133052697720786155427335735630463976373705650403110717862421139626450626222283442260738680987863067868410674941284823911269469106503385802935818862998553407336048656881623967984577790226758351351375305852674719302223610864589368859336313994660089937376861814663493197313283420338270349856499001735413736495827692633642754714067837238025070412891271029116829201328907785788278073518452903961621176283202848388517627959028399972395304563955064593085745513156285237133741264068627573027433426349746122950825249157673600463104411762525071708451991997159584602344008429742836061104135436109969448254484499521618265488836081515557223522060106410150115814593245904195928353853812072877012316200200658772335058385185806100613310687739198674636212367318570163891425081883919793074033495031313361868850829376603013532175943756110152610073884698471173966484940294414808619219385435310215912559686300305978085781902730212302114590667915424862204600711456100593181759775984618833014642494394415829336521221710676881746847558988760614631634538181387803884007407466664609624725363399109876709016094877166952460866474438851894028884459640493701546997442034941978494975501727986300914472359644545432467637768089658649767816564317619387075197148156055765389795141131270473468163251382893172439102830779755602392901012872468893216215660786612044763153756334258306184694613806312961310532023898199626539739391035102419595363236016503797127618162590276158858237029991103713769481679714720971794019630160445536340511990156543879006374922233994012536357943556606907346952068362988543844351344329482162125066573894152508323975783092287339107527637398163975120022608628066076815890949200396585292355392830470881649270901322460747100015822334981846918502448318076279806222723232051104100422647222625257118890474238404828448027514957120910255086957231187027957939165363642427422603385045013125339455645978271751128051046923644558858817322534453977446790048769768382807779559394229911612327961004484927975184795627411029212200892740826746126217301452357654880905527470397383329782755834291368753787708708268719153442980441212417663367037335034677026915023498154612882109588379298908940537444702055973810649746074193122366694538982896354689457328620665846134567273181469777535201383088942707336476825373286048161162542805710580164305140424009591792848194454578112224060790299330602386870697533468321982961721795068067405952864176585633250540424223741527619872542096347256277590050141652799567079137948693803959921614954186688094232373694816711429542265045667584010462685705807121184678524172299213598102261108245140973674531769185887099317540131789287697456249794929305619526071859771478810813778563550885024268141851142600755256602406760561696783577385405005102761174930399570452787991856301076685967242198807608246826926158126941427312340595456591497293026894043237124931188691125422801558543063558071833645951877378088730292056622069919175577709354744270359055669984799188995926092406339269273308740101298539450694563363619709857109105679673440460962997462135584972888731318237643217763673960502180789999674955478298015797604144756191773963166668561856159777200353161406876931964387720815928106831167673361137648138721682365530111756749161720003739548338237588801669899394604817953545534825337318265731688309293835631276776342150795120614526487751767982767144014966183517188298983981673196404607594491492345223944070303583070826643201941232797756439510512027880366898369473211260784128394770005600812598603145820493642820269612302388822311465750220647067253464986815177329936494718160957335801765252052486853867991060270700428614892660742410744811067193648686423707012599627785857044252465890028223614205759902664473328825257412694215378493554236764393186200517281195813212081103600942917188099083176008178057241275739242786743794731134388141911231428128390074954495548871419828327260267125624108619337385575590587549381515266369206372354570261206755490111480532784329805302031347293374424548254534979956272095227929159233937930866531768452508622418311166441490527420467154395380833926058102220793710777857230182524860537150682073585464688355880845137329630254620059377824157776885120726224115310865145604744743838559371892918288819277912971436161566196016939165641239643436792868394682237909696715187203012564748099523323240766202574299669767269787064704655830038188898865642835583877009510565140269713579374780100901788680833224418221662476955069983379835172117723375807740103482684448417895831717965815022212819598511870141697999038985350159855069031543007006359847638247963410025780111196338040384703190902997891477257338042707066495840740495686136908422526241688909635538373139331468247941649299192289565171906639975834184846687874904766037907351935118542226526654657536956036323405886214627876307116496916132693162853709647482016681206806003440902532401185493250692312683038770417593379570482523472739911362611649205950315210514952958914498517718998569721725877664184216670226292968038939985298028781450676727752010819986616498738394362241843584118280596727710038878577843407220724921126550034631222974806249731667283645883254887573029242417494427428371010352791151657237519749443142966362010720834479151296794044677685254448161775665905916395733820374927364050904666394801209231282433177243620861896661554591288381229618881101325226849228565282244162674447448226150565144823016178466684619488551773144729945331853290696945503986626886349735298767823230643950801584006957025655618044860939356485983899769848911436970973970699615976920063566036962434877488465830013738581871081197704111404653315837442890155170958820630868281375212456881333689749478198066938926049073422194640148314631547912633560745789421298500610032300801005949167652657120261697954703420510050853684859031063612380884440512747153637458546567048383049205809971576597475037690627229624846647600353928298828579223293076090871795759014641899571244282654692896868168526043071968168920482360646213581739852804204674144829451423838073457293852966827610872653474151809604591437302508760614431946902613460550405308555276150496536747941621434295924839927342396789929950663575587904218558687736924765799106055424614352666104249760945323393049568473079176685764277245235806125976558936949859121580387568288410052316585894459037285890358104207594655464211933380927833465552512504077981044220316069548830398406923269682665518232629571158024595039867609712233398407168291132928717632728668375968964307462580356090625787746616475011457482222183334856428307752368699765022965591177127069262318614529621558617840086187492029569290044890222026062242877081286492206778244378600655673651896922948782755157520446944966896839702382595069682743046415844710299499711856742540061883811122139945156984781013764912974071250621740972543236827198667226638337275479071727335092892374831489163937051306578380306966686908045737978977824758464260041725276505144445622648012612370090428179722190757818763227309386900703806736637702315132141204094629580957171082630010896171073009265293975658312022036795426932306604478732312803577829184386185018018686901801043260614162145966900236835002906242226056053141992497102361969896855341199671211579442990219430777282307637858554798456099295224720480328597284682541312529151488450129176873399904212070351209482697376247427331760555795014015622339035100526300933345618067220285063196298443082852945062351729507976435088893255803261897674691481892954053843136848344218184077476245084985252114530632609145070218554150680683724507330206889190187274050297321894613124043402982569364521211971301070657702018538340526567576185895638899380568558094087471152104902066985825911931871424375582342205999568688211932381126035843709474604662145491494045092638464123259036704932347681162188249381395282432003708561020475003388737379141838894156504842502965826322834574171980891900053985367063481771702644502626711412139140386031152119344796568363976687329391748740886878701253962724716098839245468446794605850736959162748752217187263503856195302287503710119578895572435525593140864410676891727204615283094410645934484818000824982707920510159709734258622289331483601478907044062103143093139838620070077853056554207326035751147130620495031810822969272982308732390601508135258933279421801287959565309483030032855800895941846872211699154960809423580458616401264230493594757560496864728161923328609938652239361492791792421128708554513807901719405607210368242553568207506403617310536138029732972547375621089912182639238390409806194718441482583909948576966987836765178764418916127797128166408172282006613503667531266753583591320402540922256970019063973764166950504234454576124241430111269201649064315730331430926088865708587619626683992604233001310590367399164715890095221577268818773012562731163691878140291276753268373914710067901352122390218007528480783863111817367996547592037962100252606183671598895733672691470709690588229633341943625411273719123592673996700355850497812429923187947266691833978165412578690538716403977326765812758848405512146160188744747439435527013040011913304252348428635983557526784418485693841041851652891944078637232025027212236274636215424982275256743445204033599668082028281597456555752083704039060671582482897845740269990643874892354263700700741985261476746535625740669682649042365824063870026629181341957882002745971006235117390745476261947959701752040466833205691338521033085141570380382409383945623414512501658686920362241220563207388471934185781744563443176479574522853996377236469309512589875564518528469255799080370320857936600110542262972043178157991515685758357150408131642017606299766121620838579888407725696684124932974283974866973236142941316052911049279196925384889896113635591438721472444974265069145260554764055333877634746662649610106341729188754158832068791083374791666652688735402190003245983060840173893432326728825893278767624692640223830185896764829241184468688791675053626064812952601494094695829613519836679088428820167104141240793405632327904309975370732451872725463970866970190349117615954593300615138571403475221099960027257518729824328003454567015526831997817689806665295082755160090268374737406738103297892570832585097594743787597491546857320521604467100027476082274451594733487884666269330746337388613528078511955061263043391030894898441343546304057097332960276967284921563835203558153058617854241868765617560629345388244740066385812451678292003832114514860789224916284773691036418148142834400670698167341688749401846425705041646026530316467372945006837037618374568296660369167707750570339885855229556619059002365484781312074659076375937610506022779719362794469487960001368597750897479797672791425109801662459790901661024829264006626955142812700184983591788831223394281019643032758782959129812215687995775146302307481278651280141409171046649124750984588310773778825363807079426524466639504382867536518808287142356088098841301258801320733094061659192932859450615793939915159593352395550463441026458059246506068796909580951099484378575421631274278528032657691857633423249954302434270909929302556829805088416241475078245173691962110351491802212741907093583047909701659336627410575458405083592230524878175996634859239158509339316911371825287988722412931045976336465974241158659228003445664510632531585379046308739085334093384880317610981983074000975668234193825164087467483343378343121509008404118229207785480742370277431857681661857136504376423268111387100920785632050246940840712746883322557218888958197909914626587258473860557284623542919915019741083265102680994889226745386013559442348205755989988498547724093308569417849071524769868219012440674735411356484055608033031949292441868692600246755988152569834480708473296550981953229455743107233258082080867055092845087648381150742444023639850411312108916269253920294561281237920457131970448629095826729920627648399349763797903256174009741663448589075709990836732706319571691623504545247541107831225845772639938287678646168645766039984941731695337399137001498473608687358239998878441625408604474239314708117896843645063432361524780797055285097154862617737938013500466495807802429220560511078664259137929634028639275009960859560269768273644232491096373512037911359388661038592585472049275719876759514302625338715433005422209825427465410495292971464559405882278457076031654774947082163761045671018687690214969134982703157405303363237094703280020576519034004261299000245048738336712278429425274130910779395336528066423984115746505960333241326269213907642667637207053337508256920243649852697579124032335206959192046340970965314684990102355358682717791213479435995124031640224862515383415361023181016060239496755950343727611467023047189634281482710677595592881311376590804850454095170095112404787726858289138020448564139798607687113576069949435884409917787137072694594273664459757111578402697743688305651460115444680795258347026748540886754413496897789246034698460436138999334934568248566132187217847921652973664852650389587582974384725365705667171144102613997799973089354290845588071393887337671401411080490615405465880501054945405012378826926565048600852914805612344206269512952269757039531118880790590552724206605659789627890619700082269198628873003682429738027893170111866685071363479607137116349374165130227720182908495394409091682973852995070405012593834741178498211166855467305488614422667568186763885548873231345255362426730470086993964428293042287483551708990108402718206820931789113953143455508438330296875969679482615015138240494141292313307230611614147729239747032982091253679318041182848157876118962465603513552667453468596168807258311162642594087291100187877507238890594589713560184992619904782674424801006071008192826474819408412886405521730447864472697908652895648915416731155261641974946588083482156397698369959393584446960111566137261004654916776740182518267593367158066074011518947741313595358756537319628593423184225321317673439045617083322896388732685961644241543680790660193007117909602874011280958280577902909567274398841421575109284444502387385355623955992421294079505443271308763025635906387635351374258769298425748427399783103931807254150562059664501812763628675171990486978244578011864486434169453079175839829741782357606813679628585219220607002596923067217242354898982243803506059566537736795771875844113742166238280708869793461655764898878480083304561379387484346994379243604579623330270629971001398319374375797313151352067252533718089228708411948406784851772723050773906274078990239027789584795141133341469612059805877822837492421848439332835580030274699370200092960046685179155454448394066041710049088989777826720962350189778194476284151035598184246438712386032481993856968037504142260442103395315855271851090512067678124549414652582999396561397010560556286711126584209043176237097034561559489570006503611321039203414802583738034652111355403952008757027212498032777527731696174145967176863331386631660791366921344863675359266306573423544565960773098371050478070271461485419664607863469042142331489819446539723379672835057994438602832844501124977627438173184300281495958270866646265625528047916220995729041259942568940844552553422507334387690380427799874751187341047193996778881176394523056445250739601854407562965941863451953009724770417845625513773796666229069740923048113664440909067529976769909449323176059529524280443526630317034488242755044143626077092849924737658298944234556597734450815555726439361161166227197145554462753157310910149031885068939149333918919752495796256088078726526626912618284437303398970694847410675342359490700467987740297491945424909341658194517415229829237669061354313938822003236471171483104438057040850555871126318934622612079266777850975993621751537875918512939429602848489295350526934656688856121674720065880373098829725218546112397560220965767210488413942430037798534433193821685697902896127805806353238784116200645517546065301482050412873997165256297534059557054222328944784204364439737738424102542291192580024050370151377982853674107289006099662505299859984510022806039436241932910078187518941193405476404993044932892533516997579849705723882008650381662677088953724271849978176854260221768639868854946542729053464622071931577552407241662786190618821352545056234398092666743887702453674107551366368499873035066127036226373402866320013285076194366862039908418049586069261223483773392923296304277418293269053338887787209961094696570498064327996525149947150530919425161761312893768999851083155254831355727415962447946632008780145604292588700174403693647812254594381204129672688512572553815535459059976745181707997434227507075191576114647630593939469067228918046826490236683573635964061466185558753518531212031568678955137851938878255744676007677855080835395117061988287799050804404084731656061160990104123570885872468185396695492264693078512165411333895500708586457306017502544661991128981424980840842239698795851123570309585518403619256915383258713823228269159762800913893809870365870051318963311121195900894838487591463985647398430138930567715051921770053688261972830260097173368864228688614264070089391224716932819073367478196792877156498177939143185722508025126883148468551576683018054151630209593017401716463351530701820335691653117438705866916515181661044859852300658656553326023707036620223712518212711808131373076605963879946568853288670856563520702409148690578529506683455060694931750179496292455009183299385807904288200967260167632520661424746087706717002040989823797976245416700794668450208649929483712565672263204724416669719486390885768154683631919123209013306972677346059432342322964111878196238808676517570110146981216264164360973806818848801288235114123774622108993116729245480452100401415706710768280960466873552725927967029306233127539831968643276414726963218978695806791046032164017888704727773200139105365370637412033930061062130274376352753961226087438327824614123282945177438500008819082970193229752270309573793395096033055630653112270685610742777007201544848632374379105338532736709907728532638553767208030389941846039207458002773339565429003237936510022048173240830031383032204957529790065028011909325338268698791677725197847742144905349953390743379471689311842625979414943726570821237299773502953996922576885437119804661628553304308814272446544433878717447489188764574240890284311071045380387296320001971867058114659785717032127539681659020096808417116591208401864032062241979081428000680363277579436107640183289185833633851038336285903954603836480153774261088647609854580200743974417764512869351176789715805096279779850522002847901872186786618558399559054770107736432405540143810365418527791012630664734713670138577557018752053812234783907833661809155016656090509666174768844302388386223177758426560735390232480140039433098544182782581929993051854055164587866191819606463951687064154303785118805172802741064701922457152692641265286492423865899745165184211966799311478297938571034001603120602146678504080011756479299370284502494250070005061033754846701745444639852401322266488926030901445680084410611799363868097782553293955216916338755708822891482097981535610753101471716852678096838169365098553965775246943688903599798995553135596587535756839683938549572568011681923044066203217240138871640516371177323187895369137996143293783214731999469394813193306315941501183596972064632476616792867858543000183005575488935068649152388945493011468691747753369213005896087771651813741631840970003885102881610517288817526429449226362598125131594030886702860158043148767817807940484040791521009640152873080705728319649531012575060314447788391869897701774489401072337009133360822527725997626873009150490123026268318130569796265228109839511840069177964668693736185113811588591890241308755761273801056806866430559827151072248841592633682577906838472475279575773092907780110473065903365037497627414727662700486202251325281202537919902499505382133451219630024216513235781495521628523750211828945152054445167838862244974026141189909964967055469208218624384037895114502281915596020561485491695787385963244040554575825027528862816382491451552468225584654628285257092725880473633856114990854781973156675867353689543138319287964277404872972373018640291497615520314830378651143694073511194326389166643999199005733929563915133335985846945832236456493674523293411625219708936438203388411815133002073143762151037470325595906285034478810592749896770140337279141007921330709359919425349508358916957005038830169452443442543719785838634069700729583056986167467408452195958773799500343291298479920723366387292820507067363626411874032040097387280404758026201576417471514868105473103014840266875665984504106610126536762942448355335092903672509164496620495816207335808064464362082109479061949850335888449575350627113998159536665000258832702925221527647825719499752449957031991263158942674087174490530780777379833160306347669981545191094913325920898490954135391312783413626078669560138161431470203875517592000864709715976087640472607526114334446215633567711538014620444966273564385532089410530247227645718666236829581018263602757738840981126492426558653206498463253414973083068354111784523942290467609351176959929755796783579751965114208863178353023344023231858786317658108483994765577605213326734144732776280041091227839584276137554921812370557998562693928579942876985428752188960631802312789724486017595209007803307812160175931614950378937373868625317916182134644194408567996571584370469169409079090484816745132971483013868912102393845701898008917892523182069416620774458412869640838055337627471318689666194734367961998565560777531453772285764951483152204889888675450279942467795266662807808279058844855931313591821733447090997695369262248394847387863410457356920735748413806606010672025326309228851059168860700197108157505497846317357975949943343065316033417965349817231418726121255290212412017873353293512247037887810269773335835488424608755789799447301850905443125491263637412920659460473877398247077657942185394409141307517760848503865822126701383185820056698875369734696733847902668274840844905461698504702611766520680294493380039361065032651985083248954171292934329999854260953525640183187613153154775685894354087264384297120826467156533781089924626283462018895044066252760966421256535282030618513966101923481830357693341961228355417021223379542253696311806403481003935398648061606788895887134219237290231130279377410995602875064365677232877134188518593530785849626014198854340855966524346906688947045178413203368043960544955689092050530370147643335629277016089030609645380119509825065882916605743549254353751373283012604790348044262135482196289655212147027467223371384080073966672932163604892840669855865228212023070098839343636121705030565105435775356589493199719802204189367395598607051198637078967678705577173444676839471313306532431619383081517800561653710361450430334080401964625545796354862300520241377308623839370513158211170609243865413452750661778856359617338007858041276407510893600350248966351300554705151027097199579992552568810881563041967609429930675082864674177529082607843417370933323875130906979363737583457847056037625690470667167591154572291998427596626649787987559419213092748152373597513188926928582961787178254547397401014536169185956157110291473538096523900753012471159522490163863702627291592501879958005582937190723391477358588855755892029405618130069210513448037744404969924982421840024609077748006674765402634617447049095011275275968400207229082166880475125430672358283711685160708304831476208018367044644866812623160792361015118815603228574386741134989005720848543858853897690221372364531423721178942751592053470502960507935873562330865916739191232744488814245805873744288207076990328824176064619398643817590769828842438088539722090963439361945682199213836460935444262966168428680114767029965170001969448079847055610315950476681683609353773264072856581501680699567457683361283245107109128576042242695235954738841266241654067439404023732132534525127556379846243082434245026698064732275345059735824795764844189156052297570679877091490919931442474252636750581486301466140107203198794472503849958617075998494670502115232720700977083541486401957957027632292686017504212244758095702032001985129129886578084336697330089026429340624838594748733394577847662999588721062368197966422151287551245271272257092969798226506877393549808757119601009583743558346031671534299594578392856548529006228766384030730836312761391499989226215781570825515724154640121534662299597699487427549073933748666707530450127719723789209083791925707536387691107799140160846443920393545967262084957241015407511211928418353780843677886710087493334454618505741570573347884141624253327652442048090713277103127898827706803009088978060176851070678712954855583576613599944931680830177490539355961862062718272906855682334226793393435612124933067935739790663465499486220252956194469935649487499859532888364130409365553081273643658547417476437445728937116489482627293415472035012995635812410913173152375205802216937891707752191805081382741614733477171414670992421285549239979068966290012560687945989399029755520321409690566128601730108862407163953728754043292976402835992947265760308607608260415208944823413849464275709555053985370050671508584835673888935637057892194423181987340909876045802012720985301616175521931829564015629251341840339377162239947856725800230758455569669652647694446075666269131522104085055214081934231828470556114282508823338004309867975805623454288473388761717023814386459951952261102013971764624553458251578263681562736899202515478427962877991418365683227251380293592382375208893076336234346539119471999225957089335972143809050109875542561881174375561150438694245965021712708034485477850796800954132596564782208539994785163662107110133357167636407514036518642052094440185240247321669456755068734840838482643231818289948258225581221634342231855122929362065179455837488281427970861206863798655295440960410265393142575104668588806077478423181254947137993652481591152467865304671427924786205344828753816615055675071759867205392366534623633078143766583508891357898321637126819115019402788939139660099858205893031898549025549494018575169823170803715492403000667373379991855343882644302992638540619179182449347581173574871558365620411979363709075995142809104357193042316529786953477189991143667228438657095073970530468571786796468748646741815369966921019593736790321082950565747089715707044085575279959230698725353631741143766726024649678738952409299142378171785576950993088415379489618245817346473340320548125177677752279514086673460556786596020019091983956553050025988288958589805226915228487084048154945060368038232443341211251152855394697871861201187302020334885505618902508805216746893471145054642632898238710957350670473545818915057410119374140150636514174182063718596739927676253695181963497002274777296931508094643398628404322973306343239745816758294718943740131780718817561180372136084152771438171511929149247442086981120247920824918247437050825160334654537230873689749254434787625764548169302564174735607444148658857551571542169340524759906724429161455549065390903792317586646879488366570409420704237595657126462066510746047020348057242450195954674069247679666930144579912498164669024889227595870531740488687810400267132849366547113225021397054611297462766145808976316854333318490779610234381034987527478491595578586271675893068952353726452986690026593651543133983520517590405029778852691021133823474490174580150176747038109506223281121397435453830241099814925286183385914992808305498172586042899351584024205439949616224450450021253039892619138015450759731265742017051266919388209502806808901111004479078481706746405038535921115569579093694709314775526555168369421331162507344739337754939035489947437665592165690470743123837138682200842411159287030127053325909097317264777829966288737562014943915788990713640318169158735900394285088828963329443937613911264982159792449298509349864229622094857948603067080871543749950159608263963968690543857649337434351186654251319373825225686205123142723120560606703460963220374071419207240446506750542286210387392986631385357981481827460626110894351050665100879127138282972018302366240332170139086115426601062458834787836136230681080143824395831802712918768979216577988272890381888891634705915840112980100443848004400163905415323396370719632448570272374749302256113042842482323616477835489098883334300266476247668647245806037106022758851285835144185524661791526014878315333535869257606977228117220892868214550714332322473850878356046683043346363762371270515266186373910630058796503270834078625251958460135166704329118986032504755559974081158199254481451431874519414269067318219103160302243321199810867599253792165644358501480640329935627474327260350143758828233192021031556401085770490980275111238197738952205327868188140359179352584031673404195135801942940254603597359098446588237838616896847508313532805111131068340705566799741940486968983641468433180235177717740381883988255524790785589055882593612756615606601099160851776707723072726388171530360265371121218053579100971485027769816815318221228088804449049507440292810248706694809480843316753018590913097443320865196424565442671695567697333020379773117935748164953528691497676340022134780398621691183467823672535107539000987027786094101854258395330268268745077945566014267175435939963656943428362179056369808369967749414355035997853208017245961764021876014764998240671548947663774940044517428176470693277135828875878739770149287161998107160101359379358207743831474820621368344770604123008518428126967479887138214039848008157390073526504291529722520284565692734971478494068020060972571497614737262287367858678029687278330867255263099591248707385031751546586693914638937429888443195780525126957912086866716551181722592429766168416373263774568723954337686285144967859696974149795774164036014024693162441353226684537030209521265383202050376167597767457288928516603808835447588393684666493296138373318800526842746778006659431910681856464171357605310444409284588993616592846109841916310648354875657937014810861700337851081795426574380462278420664135454269675704310180084600753282974583692055574434197613955312843351485742478688729569854101161520347450059673530409753726976365034407821063150082999888452151883341176366585560649673685225787528454621588467103737345271173906567258378589669055361125551204438900623596429858717020287097008213520759947803802797510460515423107814483726574982540195303516925961846343896411813187805081285872089796690766866962120551079196301374538727963915247771011428614643765398237274273057513210119494621615128223259478752618627518693001118163231495076429575195825671225551321314087225365789280830092050129903032701021990077235863771742328601667681478899113863362454918486518907440106224069113979679021849412075191444497302332608490691943411871398613882074106848965677630728223330740718947642068465106701534101574471999044244993973417765392091481973501943663763822559519004083938151973862925609016486128302872138302339941640688459640573527890691956435402364272019509297132796296050918954494575949624543403184884309580645272179931575083739151223271273824266940849461051863322845090789600887262870802684557505049505845197228311966492876173282864600826837620073302259038932085167325057061018595766815481751351073645836594450862579545711719793354380772086878509477035478259290120061145019290236497275889744101030171247445360925598821152419414758770872620942961004153546018433687750403354979642099569737745843502926913224369871411060719285023103295398189223127107466827709964883001297296203677786978424894215306413189647644090173416793189725400422190817249167326122637368054828631673533532699098301426096018215888144474664070741282402808386426973569090437908449392331507821135051344968048540171219398788778042983203902953773670863826261393378562686956944320252628032647769536729217444272421898695495635711096767115783573971605302071379785941206088559427036849068116337239618009677534532938864276088309651282792173427846409202506812855352722454942377097638062540608768088221780476161582481142714280750425339775267212786858766786791582265126116658236981549537456732327074148372704807027937188594927299630088508443346341611153473590734575819030354339569200240821509641459187581121175889520773254730115285028174142511782675979283939699432222506884301911559049658894531915636001875845752600516110488792968267879229322609830842428616933564030442421675409478464800518279151817257679450229215359077582178443238635593530216014398301456547878552471559316414442894947448413881540986623249122943081015451558907448689329506274514955392335661619866591730562100915847988570349293348331680613499897617719321063599055430780551960322404567160931204371674901051162415397195733156328186950541772413991558178020286444805224717000824669696121540890723728500160398547170270552027364946447011657183454058797126168643237267721806509546343572523500239296356893634889884758596023894984306548017349785439842784491677348311589377810890834907192417840555357464240880657037849929080061487523768306424661423308689355272072439503533854743723975877484082669948120732071972404801064657576661361917599205978435575174390849787092547945401607762897256872604234131770188006760058712415229604884195968945672827000163188583724375262369636141645791784272691293310921176068387478103056784699233990206322843055901299074454933939243282682553275881123159253664927430904971590621400448075890554119346405625715364162957704446301290265301376661050238582192857857358011622161916345203573606282099567972207366145079545972402765657868972254345346935290553879083682296097891145857475480277866307660890846565580696585838488818350004183369882098392656750543072945450003435024383979853692074863291392337069421928817573341096527455601390914699570353583759871363948052707851873896120177914047805828432794239013759283501223329228782241959324691640615348143381008361184158960135080736235962579953383843618365770075064379474917712576335025881091627186366031862330078860280272011668505981442516737844968182398192592831683128291463812513104420611280249257547457018727350055484999769976479287412449703378219793655731655790694457201945480848387416812316369591252070614217236327952539430097513900418130465640167847845813933693072221314192683154368911070780206629493701644802341258861327748028078430031099599708181459953727709905741808116613677165690079523919096710679778755521739863386340274468004223987703027580841922582723535447842986372536436414341028814874730221402492698880254547605837621265235257913016405381385795093447049649420035817170268470606876066007010014525380920485051502367528633480755865297949102050867653335285237028658852607082106512443951515670683461336788318673602654528460585049136792005792669878805515105384460268663532682537545969068126457787637117554218020595456806850939559688344429542017475377555734052120314529196428638172916651675123208148524218974255707593955957108052360684356335749374230138624019840436990611433782082707065908316782194934857575694871362469697782054971926742152986912117670775770631167294830587986713157041740017718289852217880550552179972633521052590346983225969184287393652432465116143250159327882706338099239155087149819885945221882159462394356923446560130404708920569260901680236724756069827602574719104448362142752148950868903648218870831256655314516750655061776522093192990220127627617860914428942102493801009323460335581995131239570856033363496043167650962964219190359750188311597735267559983073590154665681416864177225436002905163521400885604734537627278101737688098849938732860447824391838467970611650607801604287544666227644010758366653609461883641946287304972920739983468488146073746330199806540203726123246325117483215606338594490281433528379259263935370502633398361750166327727790403170536043315877688827930647964225532555369452093588653353822572863311224557786596836153738237214438054577648058721183227472380622227527979268583293281117297508376583302634555783741936544403156798889972379020467423512681309793479563816022414563190935271223415142831475557947002938856773849659731793716111301711670939609940653126060276719003156125883687174069769617894056086541767181435990491384141942830786946408767873739450501816259219350678485033542694453284464573214101076059797983883973444366112673191119994688370912294376625190242375278648086569958765698137570169952482446108493343747170064439981620506826384683162716600103549968175304136111565276643052127254166149675361345759516611533395194219721113946680471048570137267806924033690398672509361789812530633999059335649145103208959403308715591982217608043575223652776025124115840602467576273840341722912714730682619977662750707033923678292160974273495887898396613271275521061503101758265513201131938819716176547132091950705304767360396799729656235688047781062754635465322209585718318952164693725560398810988380608269981032418512288838041805241081281120957799216423715419774845726478331341879705575254575419172690487214620811860861136802442593409297913168081992600349120877175715062656449987042305798467462521536639885962775214527316737927887813668094322252392943161708960133805297018702410125975033767334985440715719229195102892581801323188580498359554028677876940658384574741792824028461749965979469375654081217249318990396087892721014667478521319290652953172992386328230311562357738779505086023433480934456669548940429356732915265315865714076583842461528361706419636669546600582460668051811943110341622137830654874064997844129011747534321294738996786003501967980619060419889445321156195034505366992633678033632703780342070726522912837651668740703581873449425235566834019107959067941157225529928192839974059381185655821498033459013787239790871213406777048152463567382963593788787827626252966504399946569821872787858427875854620618681024807241741172947179262981217162735359813409915052675603235970057800483279551571168871751564152694250807274404708915360158985920775228669740939006698656844749890634434165635021837826705225888204498011548555595668055628489290912971254411979698910176952269683598178082632411446296543451610289472485586689399226903181695778089307372946026935254432899395781488637876443901241585625536181205049705196539170347463904598325224833894494144746529365187183866730687462425422558676792702845434394559842774547129479109887287698304567205559768412118361735327514032298269156191518914247596804081739405241304105017706994598869056704832411069375870165678828726203470684856544416201574342181516954075629623162374333009164610760468276292079192345680763679840682131838904309809143003167138517297643763895452631896468594379405171072989806213411228138999388009953284993901377526504153773234034522104687647946903362426353827550101128738896378790257995159942261470326279581138560998693529540743766071173602010022222014302747633866460484823616034689681687179223649002780675125211372581492304844136589352400274745778311387825923174271623164415085818261137406044852027609431991842663108920841920202941839427103790766056583733655560900132964462696492920134023553751803824591956145629293722784601113077555747918363812814737472377739703197634948021405230977031858160710620494119589807601322436572953771985119396071782550365435853966932528560869425027526430722505324149706738839663591626836780446517855076738668446966355096320269907285008101986972540082557157655981599579809759756110096465811726120888512952143584426086058466962640070045251994382859064829678708431320796002064429022248031519066335964023673115360788111226667605519042054370705628732022635786286016297862117863942046664738978801209055966186354662021703730357215195520525660984656755605415881214437778571485638969425681066508990001049977617633169089708374147619383595107784353842477082540287013430933410590161770184956385360850677942585101813453793702593543078309872455320784587046130272161603773326424527671718336920928877388470998453020855198098561627759476838458790288275761823272209048760688961559057747125606918512561506241406505640316447574138478747972299761695444519833804687417246849935645284132458941805539529900507278134773864599201631370476948124665411538728139906422561243869098314249314063110894635062467179106765014763105752846446063174201395092254394453864078049409604109846122242494114218047718543986997473534019309759163336544957667765424535395744863805158048568839744579350913751111311301719854512078985952426640599980416127092384300681826665606585272564201551098962029043232954462757631210194275683941830978387426335610762034918555009930112268145236882908643066550298107822077373614988688635524883698445949227579814196476573063274204716640825306869118253960050961769653076684094290176656958367411701280131120410471979429906428567940426844962815935613761200055032473599356242506427219137663225576289060144736148881760423150428418036346943067044992008716059465094227352772576604150911218619002798908833904448112608966523336732025929481829521378043043389899407563701817329749039011313070328220544443739162001725346511699940941198629078679774856762109281201793777237307916201253141991812911533833157062262531875841669595984263800343850835275237499165581807779683868030030958576077843424920515228004420006478228827973543169260703659509321911321003268193933107907423824110262258240438455656593857566929130541188151634398388527745175393378520016341009422026524592815613027055029420025581266550139274168497528984776430688584030964156722791702478175247269922488271626080996930581627023739889006759856112501634300986563810313899975245027747589877914907243411650838886242909899901585026306928152714316273559213745883804471974160106878766890276846155290420300449241554880450895038079520012903932594347813303037933052981620230357188281517792044577223844766272828286190175898342717777703073965651263847012057910312505188725410746168390969251437672282734046739977961265969856758357712784306491225128026659909500832300262312173803519749667740013661127364273906981219098827900696466570736970694897066687509162450160536990863726752595384451636293893331903742495577489561151270705397658546904870726001380170053249018882111159577415020518326207610186959335480163862879896865981174476126366006836727724021981935856778879947874777730546661909166991958512932621957171045710747263211334276020323916996843898526135705348809785324083851570504792362970815600407175808083529029003707820955076053444098121271117050143495752840931671631860179981690864697709511501580855513251179037257363248317543535845494713718916111360383938611551706214403777395182778875203846946990518429569585479961201343269355323848383838213240302388002574055330221747645328241954832626327930058753371554039400726696632855865427582425615133006488437446048144067990908814228193021570777514497453287849955607901713405078040450223304637659025490055971419534777721202538251121161317576618350761517100150868948847617582690272490233384395773573518071808027898396107516981210646338603830660833200904899224086147174184537745122144720815790996599974120850063417898333840060022550727942296036865894907655242980296722333700603855880980054732171842265981360867830180110565745013566278003123455122424756753071534651247246585917449167936211380436307121528914355433370762267437414662294730722779928708618907944657237654183350467781663772525963598942756619505785270241529867637886588328567199592306460991100897727148926326837406540950016075544109977606719139055926267378973716787954502270952621934827651958146879139046971546472382158289384722849773273891344914867363723821661689126274862499913906722199526059526590898459069687594048201663982951667499024800764137880646875049009426056591023128448199238965785209451678131984613317971061985717742326296165693866100938118401350418792392882906627264693897407493879928496232021211670661579880620360592663134849543904432872207319738416698649262273167092121444837810269774658496571838707553962672138308255176793252649143209983871184840900509440323903481196679719742323058598103153597458508741478717386551069439837443382307932262816428898479335873570650324771518270111034797472750717112735819354238721059884726101683255338268377312293791952290697734709145426004471129679685387616288242367347498011021654147040371246755759523281037915463220277012314909044208230164696506511463743882353120123861477052303382787373044554638628992516362203793919641621513049557735360434787409766433961647508376214497194718901696351317285884652011237724913920588311889877180695172201615896808468575988261506270260156388985209559605346708959281079741551311780854014263743884882671938443278100850092535961803345336331753027758603716859988209135530957954108152037528116523188511615322975340638792663787438237758451176386565744944274048052832530018556054904053520915571055879456472232496012242851270585921991980193839423818856951604460102782823000852782119471461873670971930403279109193001246832809198467371224008631458798675917250257150565958746422608561472257286475239460259937917450200109050838664412760238319588784079142448705827448026781426770425609042684570899172497894093391492394783785054368219339078111490165420361810988542898792073181357636459658388106325362382850470676592869864465597776105967001759104717739649496518747621441586075766459049601068396581596213718022919058229270878542400713393883488054495676954464727574739424294845251235124589606496019607079104470100482000373683292093188676109528827559508512569630048539613666091934840488746472651678475505720671729996527353739275031125510981868130713368322274212468151326354102182524361263209952426929419937562483742802410375029011775846541813760998873531776995411745581330417772429186896612023275541645872386429983925961646041213235771174184865775824269209742222485039407471181582909527547380429648231900311296969476020792786623955710758737854640129092400602467653673877207184521069821721268952477307434901045747335984838986533733145490527009871296009381852459114154597797962279254679634807131715255119428671503821882403792668189177720733378855388581343656489957606289415584248421933946438593802577325941975941610452405698792547278142989072563304205081712873061819710158081199074899005229369358284141936796454384698198375972655492560224196388632123883165710205685507583188145353390513198763236557930094541079725168052462875277285195660497080308709622115636721377724587537020126340419955179974830607414608316731045794928509079233473088017256421063990197664703699912846689455116092048291053833880424611440278649910776407177478685073611927964683742758103946171334122427615715272368567384087926642516897301851365148711353644379902859678811087961768127861756194819864800344694447297359761072249300921383665029609470011152370832791448702201915113609736660629478108834612540201535688657966558024409123232890435315785028940158651061793769668230051646933477284780991011598636509224764328620431678445926457082180856530033409248783012105417276203111447098116049342846965985166606212628018502772521741072514215728333572423178518998802123325467276286609413641135551982093404245062434133341542298607805692982173233126923151083802799087311397387479124476800636564531127625604614464980714885116294881583281073433546343887775286173846713691567475964517908826212583464640359791926753047701728803007120325473049325971385535178671647092069537584361514478660376090398475193642355914361322077131643096456589642862668909491744599228309253001756774972988287195457981241253930179023950376707676089183577859160029033444258024373759520673330025021196949657753437797504258271770119650134775764032787727620336919418478435097508611649956772873715396592081280590880299878165439255639000515773605271515338453512698792428593648966251398432801889068824491682907319299434882309758929707847844312971722732634693141829649619945889025575283552177906718482103876853591340210279484800543970251605695997857490681949649989032188527174728133650548762684949139291598827484773381359158434657149924217695950538840625999528784988140365921514567115015195502765585183293119920259666293167699669673732850336941998947156619075612698961389339456625427636859590135332177173305136966516330006376587718335749259487895714708402564750221314870383771774304339695213168547922803575147425436252711681127386046084608116658632269315511529636930943259594522876053670767776779576164156896922258909189608343352304045912506665584451595736317490101228899225680608562231224099399780087077293605054479931294740637240914309712003754680193531729718916056603546702592430760022611366899986629400247973547921705420212080774269479007445731760139699924498411448020800447971141340838086533343518485208295732554431750874465757578717238623832804917855747170641601652795700161727112162939338776734437642971089611952485536850820990489719312373877561451993772603388129118676355402027611796226428306926797236392150047994024658982148696454401959460672806042948289686464495233850644493767983664809874246286044346208269966172932558670197721978562549909220590645780498207416899840355912624947411183392633051068152617814789036543434778507304446219603337884180547708204839215676648136048539660399316530090819446371870116415466760392350482156789382016252299793783230368278091860249587490099763503964018177953355373673354561598717085284544628509100932885733315541782274518246009513134745166480347448208289441891147550605664015348331519477675330542457167910596664385942856157440896224509393593114244478617299043222431136274738699370598201183554592309464333662817709362986783709513291105973529367870665726577726033894156901470409221738327197342238488281298637096693500574486286636449624843211504230249183141678027949917774784986668251248468094972758202111878310390212706427928683423983143181487257501925472614580159189902899567428188970893255053229841002205833103191892650230052498771176843878784285018747728332048040893862308835467094324511759824102043192400628675752647882016369918404318294301553389871676307181265364899072571469773948731366849351768904607159858952195302901565389033478095978107982119038063260961777996026728484423584392846775426243701638179010146309820641672550040452334818218747214716998712954060838063000670328146214737716782722972154328896065271831918940748732783261085738987196490949932408732569123395168920667347527379682879250933348902989767118160185825800542043714965762926387206329989930358373682546963778502425183196868940175866566006178004681720089175370528354964043653774443018742155033140269321458444897368652807340021198042767742216590005030112560684490696002363691302411407656040784261066204100378770237345060715150115791935721495712041000819296767057277644074143366425273724665044008250782201004014705928160360098715639497009446239685216001993896798056341473951551696903560069510457661838928221569441888467621443181191462367965023932900635159727398534214027783039429748693888978692772609526900946315043093542087133539566004901818486405610128636274115014925589440853789371601094918551748684365384777366793214778022135704525919726627830628717069772764905956109508685392524345849516241744273857861893522839023024256243711333234296782880728278760431239273201610947337049569477424916161405432486293538309984989753349133420615028176234068055909040508431527826450705238875931015719672146750806075264710822420227524150078656629335853191774900966724209017931197325919774584163671750343418407815142516997665307824216581243052920940086861652518162688302897573040345266965005008616501731778166043230211011220423532501159758360563882882870750071921623766558328748314452178894639149113970276280023192066479933088575370615434242088424624877615523548368963798733640108054367751866863270413454137291352875096231622354004665827107697633999631859143990405082079893018720627989583111416884326618679385027807251484462812230473839647990444011666129438070244343609838867579299980782409286501179729904075991296620797931355173295783553418925222705735112858969876804360225923744403403135036297205312877421402240404203386944888329624950593994228226469642059747046208969814148868225108875752286886911495655288705987677013411964270588562837829135301360371381445617703037788522501551254339665025255965229568756210870949688148128920500086392379432621627665251573673218042678182616740246749166537158690718359652892297468133441644524354003869497452362279061556203530051547333049238051917717793434826443357767334239650654940046239716081715355646722369147449445077987176161832307177433908216257095743483489462847929124732893979022751884019855856320085724313035529658085663833841736105437841008961467683464549102194329123598060781393054132239010455326597607316858493785551763269566628331414101697289065160366126706706406429775486003024657604713810422502214007407392364889468637389502657488360234104685507769741616821431386213176256788046479350585813168848291525939475558983372956830048909003593314278996262371060918401740021390531148272061671585841565996538886821553946533775123878052238317503581795008639713080826448473152820094311692170396289891505666989598807067363235628798653293844768697525099855121373950092479480221638856413148654142788426837584679403648411417886791701492887604382183198258983702774249455862103987087983263924188191677374927207330235176993801777776553478490356302478078954764116920340646938761618886655816744269324521430455332451446448193919142257618642161981423624563688568435166464661268306067631249157369180452401064266558481302393958165160676949370971059051316513702120683460458948009395807428924699275305199751465932067736758760984872926294132421587579504201458019141073717182105134081884134810783797205067769125418219622734387937482720593660443788206571080968813068002394650824888822221579285120403943087185072290988981143019118637508336233642873923410248046089555665150467111751856670685985551412366359572307343845921168328036000158434878060867925978667155654871539939571019233917181992547410493090929405024535499880521069377868985943704470904749433123296513437131558272401174450674488348457195437717100340783083194545565484779608791634486029900303780838705177100533266061646601017687491388471847851029456933282619423951281551912543063127237155545680068940403831671059979137205896683085486709955173793854719041628200992212676906830537765428336654620725655951686346583948647142102120493470879556768082466960571940448304964309949986429168188202925749299818275059140200080296175858536621074285770290452571341189327261745511307305168059486326877989412167411002742291895295374331636342106612975819952372466225089480369112023055688457828639694138410728192532800879034935252971263781178081576470719401819782960641054274921243536027023111441507553821860735735886744316205642621525711124720829121963831836567691239419566701609406318057388959033949155205147285140079710111967276127872874480895125748345558473592547372365977536898692859857379806266938808511208653397109148893545508656010239158860678442646680769338913416917102613017543191054297264755456170616164339237888779014237112042630076727372184202119629707594302425093045937647814867732526020845944183031485764598657856583008962423427148508324211562141572814173103947211686179391293120673692897465785286432181346022903822370305660465329011747688419489684652724891741322733297741967828703481938889027333153757260371599191710091699398659783174367136793604392189577537604865081172095591837846789402825050961935954758284397000991415541218680418217176795618717988821912466713704010043663063575539244067935892129791833699770969162670362122859238267696929820650793049198492931231798768438489545044781825731407406631472648538462133256823633650686337513271360008793297649052141931603214190533039253569826211697836343546178006808940090161503048050170020206932351068444260148745569896144161374737551421213665622013008585670045492043364134758242819895951543967018166780143220181565553001417659382032674838295392995168669986002594535363123189214183808342016735988320535745367247878693935691814671139063617153457693222639969312455026643884847944562299510893737237767892107969410576301770785472512769789098101364814026062887056150874294750617334361328595642946941331169595975683302243957486522496414392750525866506466971281009541152316971983168278474198797206552389235835521822458511043907318931115931348735046767769736218824404270295132227577224370664703931466707317857657480988425261070910821200341933255955613200778398898214267819005366383020745251111370990614499418567444759525306319996534394875555672349037873050905900928617474365177840926122840706300908825992547876121583110616896972972179126947869388735989937343515416149839446300267695903490316689153952684554745938052840725630496278816292885116887740978211275612288530387536935119796378031763540330082846474238227993173460510309163522506142172818031048088881016183849765270431517715679114782575465455334622922811675442331750889508945289205002426349826574468593076732901394955929285986255203691871529636047407472864966722686664165734517877486913359443951886162274015413842469153608841259111637402444210422874902104613536366638507964368184480348336436497655667273265517576754875950508462742534742830201841126005054077364624790128514375751073547173013679136457756071099042384899363829216633407942738149290088532176636264675725988811556348452149977693170033576877071139241770973468679622334265487542437284761453945067799195748298985904055185362013310320351618230465441928088322272174221352968407484904584817281344263192643607070289889711557229397072229222266809299365323709205093306535554473964000509184052555835486266581875527582213964787801500108982815172421992811482065967525285351854464495607777197325335262390630145764679383742154019787652985320480482658135221177975259452053398237555500218129856804825890411725442460802192671839918399935151667381552538225636581159259766222274767658807162513090113929290457962366492196035942805490341891589448775205211346139543066846774888012829192229574606948089084800553883309028733651561057910975750810951767276553283713997042770309479011299525374342914396171278888088354712190863641438238970764229467129618747770633209588076924925974500096586725500761251783249469882973276453071287215433418074295707737818526759625930792663678170775197422441072337023888566102207857193221926739808775807855146753243162509324979692381434713767320468763125184856463840746720373718574132328596055906357500822166309005502827547603791639078643975676325098177395892025142080976505238269016033244583088415073819443106288992818839938969316285294599771538856671157577376345426202194247468779070468852351351254582396529003528325105972241244041626943844789101432557980600599990686219512790511157393240069589397867637227843596589840020308027766589843623197658411912545121276784571255203450140705796455823704232228027570948995241097162300791990023321736925342760247401863488500265268207474785380067630980155378670720370245042242347782602617061293561405795038427506022785379327297805344530429548060692801029670324278136893187232248608878856967074236905219423770988276370781866764498048721671841575975501170264735535258664242772335400657900304979942929575274618588973969428748898808097954233712996102457769710286864222246408576491957089452652253731178769737520486866205413570606063962669216927181915653676893827995983591059167085062072521371462251738533781193947233487075904602947666484329177884027359970130277493429447686668923683660602084912937556358334889039847086533910046547732947667879993916208070843089382537264222206643815762274079118751433050945577804097348678315542567688846743767488140547907677217153998236795595734725646792719151035498841608733945557412675968107279447986354753367884295205005964242704557017571171324056806001591276067279566661732169883775873116839539514927181400937208386597693021457076135466360232949488904748567494175787542427982897078113558828142099183570234309421127673330846169876917313621389025157538052217506204334984365850673494451043307953935925905815769122882471265452029610042181805843571097200462264281249297000801133104812927324251445780980881135602967614628095316205542652067154753346854877001851557872588585697560204557342340739596072917324371758692598072780068742645459956319513781409399127464020126672566035057934685493890598246769772571813770216202786853154540461349349277441157462757874654148713674857798997052522192175746854108328202335697056733330198215966652806665375696753218182264721499829671077913390073012510633594417371388157412401918312644743782776877332330710158474362456808699688384245813937792159224960228297775923026805976112268827941658800778377226291790556824858875575056038293560797036894375546108798660177847642586938510361190728760824698989171105766449487496913690776319028311825532670355920182378525100591446438686152744962935073004828753962647846848222997860247974631780856585855634579143372548514104253489497359105745927125423101597898892739906004483494507324703599585027341279552498456862083104763539265347829993736648997830911972620600625241890280554393706734563766452965041261927592994985167625784674560841561617262344005775309403961553234407733930245007912991719462972107139953047140602771150401906528123026969339473171603018177980649517623030276193296992658657293589130082750198317354271870167507060494290854420867126841881875294166295563322221297667395260638913050866172525774778921258424756739876846306337922728085031027353790208040897307091676535208951611832008840413356756246408058844093467202564479108076788184889218106476644809719923823762040313706216907280015665696887156475220442949693912801471469830458168074006064545895452683843295149900738575505884905478574237909311499002694538817837066883980706319658063939261817677477796899424245148329356658412537368112461172498650879853730639211319384013166670228092733405446439975309869453929452051432805381646213843862811225616482184813920114547520838284858657432893132460228061649921167669799834024569986075259048815892372034903313154889916146549612890880935051055524793294155983269843117854286291113935014699190855690495436045299852790632431973233995126158845550202569193389622440069223377343690492497354071415716740849532538209256781282085840060394362597870488468226909816844683467070175948403399519639890306841464633365905096805890076497594012580589136252969579224925899541560297757602906064461991096638882395107309514216377250477115830898284356973083745202741196822541941232626429706861631608475673345153060871657120167165229484591425822427314102813515481370979591293507776578503253230781184778427710267594290603208646623872031585302437541741700113035111614284349663135472097415385879240258858146910733114084907520305314283350613735608953952703238974250144266406277897592559369537005631957329786249259803849872619384663744426876594821589365045531193763552719481738242073924541039730359326852505975485847059130652454576970006529617532143246113204369027484119723429915610481570268600463015236588624452488666246107749393130849514100792898123188592145716100223222414115726887292106242374432912189399052311823219551468973984576826542082123095403657346808073284574785492068468905207348022462054419034188010131019394979574823255825944443791424294262944353214662100407813447454972586747007244023460020584163994793915932902852494101244682791262960263628444907892853427066017224447932537520983930431873337836671458516965131865481895693312952891480470217078004344700318917072462777044538834916903158963661353123873694491317343162586819329334413770323935566706054614018025735952876897186207516417339211822501697677625458672607249421660406638116839157680720157693445673570226307418031975497005347005655161477102626136191662000058538257626739167096450139322146521017551966196111610134535475689462630478380041423645548646429528343200718576540015763062981228173856994448933354210540899094120704402470414381944508573885605191049123955762866456256322522099133830314457514806956196786115794000455001120482739048891805119163886541740148041686646258319208420613373885439323102583489397953555674305092204091291032169313156372487984148376812682143749202473805042040856332692991185221064059437638346416682667628330189557443230957500954852500988490743291223116390948280088209834107541582118735923705398871665083698036032289743890060429790034444652487164910149067749419004233255396848891804933442666098944797823543515766307777457694719981570142172898948343324825440557515565468982651269562641147888866894223257766452239134785881472403464132222913155667086181941150570495289985105403817264324153216218644432679857072943743195629420089666439337490860278520011253279188007553044997065062669489173191142203153537985666456497293275159177601563931946520064851021333572994961243751270844842783576288314034273297198366983006527472905293278530699769572724762665086133091007034739190864634997569264811630803500106007334697809520703285136925284066666393305165484092781157581563444260204057788962274619248631063868777504759858325860293066725090661950892987784867984521821476249110396723865439868241267446051627733658279353061172682521033778697440448884940828401611781349206802764702829361120262954233466217900803869352486361182995224738299817890218362798490679469670675226784223655142010602730851775866245838626913888474594291435619848937059905898778230365520809503183545441400748440721883746599801479408088261786820759371939041886113550556199044099905242401742446843151377931606502032242386308559389833747950354540915344231617502317879653828786559061186681450999446673498913226836920430661577026588584256206146142676577953603060054936518232176674170383229969298569004405414668647794724413808965471589278182975752792093204036002918924203248723165156542110507703924826098017712234317931805888489983340805973585986037233163856397306003472081145382064499651398428064967325043819195408603340848448126556265027224743015099351370947588575664949056045921531752496457135793917536279010979741536886459317519865629792658511639194610547106204557098690946127693137493981749008933929691011512587963042277951562480440526663514751799260167922190977067004978812412354690126324867835235134458158902512237606691825909580490448337301984597322919582101936180688202407410378628673095107505547289333842497724686805081634770573269256712109161186233740911700738991843938238298021506821985881829416261304056067935860264132940784713520638308785357088396566107398629036726426785364706188367468220250223382284359515957715105789546542679441381255282583584594103798517109831307888011823325074677022027138573809049471001324017581880828309550310576177875975010291287816066406455160870875966960249788221150745901220111908018491444177060601824686881919430927181058487836708950261518588978787572824417787196247540711587214100082178921434063250108940129652545527227011121039717349150363072174820986095578155703018674689205765798470741689502503725765145022681961166415515891318273732786181354179751278531806898970675648490856205096256209253067129489857929863033588647511698111957928082595938187315212307700635277917188164737204562767961371490569317506319838131761296395222065928255440558754942920451256866573670218017082884450330578966199031171390830894709319008108348222822326161563402258067783325410245845166793894323942118479738177633058562464191766469016913614271457686515124832211529094299856204052238158442405486938707109137116412616227503102810162763238875298878407049874400311505684706971140053622404536657067887231238002800882500126841337916919818716402883537807197494779675296690966291466776621830048459509867336198276712115940244883612264597839583504330946728540055637868938359230901624230801152569563175019663304234454681831939790681410092108350668112714572269433066086682726957019352256238586559277543170284320378593193919353489119598838173921927411024720224457678068930115975319879674487990015747043454827630742134706637995596899472227058919821513944060866261515158448897287277809755281494413673059103115110535158824809406208353870611142568970280741591543195152262582926496075197329402306313345868317841256058440090773543332898590385400938260892590393170740214905559941099752340332010636197209452022394602560895363494415678747119107472013850298654375441160166296673351973608991309301142496200453033427751466999177494104766199647909098144579014912084473670316361515241137452490953707996619891604540917275828378118889638259691938263533402740882036446489451178458262128948904981256356709654216935060330110677537749043578765774920493452975226608320969289227168676321875832559741334233622033126009518793936187080375460919349161690495859603158494029727983109901720101334519301239052947452792517394863472539727204015444887690487354990064022227022749210516605907244701040980465567930897372046243440056956016463911149190765280413661810024234609735864614761703396718371840130491756657654969828695419195113068150667878987006200153357887021444826309856899655666060518660154139241706642256515687536655583089899774868438963957632207041119223131099388268843707495077998180331950176483244345786558756047818859881309425661246689702892267729273130205584765363303377159208690542146472458295496912485648526895727954591034782000901198779728034845199012515231292032780518715388288144601366889815149753518339699165973132910456414039266927452053026694981054367984890830738231068143165303372664386856934318644587784132154987866512842909362800712142554995858095460432305589246641955931797928689656394448881257166171391915912994946530130214066186253854365674410420872830582197689177939650502700095818813115943408361014976404888341375642098441113090157321623896801363335407240693888674101433806582141489009725044087471726546000796474573571175524993940920734200282506793956071977230239246632212189045740048746726664239356927835625564912456598568051663989801996849119638498825023829606283599843578049154017210074705770977706805993382472241571184180824134487365312477191776633600177873829865093398558500239618446035158949547036971136662684859046180087157388998458059981840311721597842433667591926920946743613588348456264247127245920462445224363148775133118442947955119925766372913379597836284160759999971211748658547332962989919888459761756659711285014134435420117609568692385984580713927476128978410200345484858947487585391831390351797169538790560501058195997501295007318559221420025980865848636409699300479695974088519108364448077032925614012235617830743733793998082388219689201659885829095573058094009499459169999932020105872042039228989915222538695472471047232356172871185977583389021897092295580837220864672107041988770305830378069207644442671236578678623966835587514437417808996143477374622473194622462079750639956549795659324393607763760954854740672088040045462603947462703320481339913790730385755501912781590207747777362998891982110994577461871090706541759189398575679882001383202981780613102087091509090518680460521565543167068475782196986519693315000432029889773214889668857419057024234712382939908068713812874170116613932878157696774104915179145924692358147442876583545810702548818243551918869972668932180612483855760887817224586716695195319671544077783063845603017177794438410449105667211595725462131542526151817312898196661220548298741598641546352821203079579933648564581836337060449383000245841342789372390073098060895256567737784412230370934227955569612390283443200129742455300994877690578999237896544646414256213201104923267195519655215766896857210056016289699449960165929150711466094067705493360904427020959926491457695980080301667379735169729470754165944742205790270578458710804067418995587552502020954431504812683978857513396662009812701156372779041072642560457992310107576567094880365805069053159968357736261670339315734039658566118365181895967635450406509055514437590051940260298155573177695899369822061088015245295138644147312682817610736316438130244682755295016263024632592118682245362274614484219696878622910577375870777046440230100157234850725033865351896143682009497127711842802974310809653493294262142187515782420771278394654918257079189232522043009816744163657674368119586574291031320905424206736294320219662297361758324050255238844745143471372803637126030379039812679566646689066980619097245474696243508857984715072808795216912414904870532484021474484323592507321319460734349951584414138890227838509906787677308779483183850936453354022249862687678815727888742785094193869829732938604057366801020423680436892498111033176449787853081667544481017847189543618138448489562405797926567269072058101124698347597773683805592969851382162169548548199136796636460496443641876723210270363062108216336428956390555439676162144321147824481540508075372745238861611704884386444439198166455384941152133931220376089849540386349112513889243747159799419498282867521344094988733982346231468868264999209563944843980615865030952875460802508047613568467078296035973013262637525256110779009519904548088804511987933549809229754128655805429780927869818626121081536630437097600701833488069818811648834298091338686039489975173358926249072215683216005131902617211980899168156163083982711132700461803114506199471699021723172330972177906506776128914063533683922931399929110730461483664271976012782659029863664451036915413999695279031757283180360383219036322598775426309111465022413090564318699396033614802653477888618304046462671778265018992362269620616202696421459752163691564701758123620749560004892292041312675676142504506836990130790807820730817534402362641629279177414868312848828462435441618824370109670224957474302080328456991575735665441205223458378533652140409543720071473613121526289397852693558143801642234522821581235669082008110153609382904712342308858181511352083210755370350010595548152477670671870233167263513499963821192967408527706571924402066224018522911881050928909521429476097755700831300005926981708258244966899630474344015132138134079061335008588914502856478781400111392251078933586995549191876241925976136497938739267824328339385129977266145423556520356927171117058581691731472866918543527226295000939920549687833009944577992541171177836755598917895429103044486298413419334391643731455097487321712642060578923885269803691734171555121980034347374129848835114568465193444385704173533052614262626030603692275461997597900888889894757655694714715251898452043032798892735681805154018125086813234433615016053211371110627519888849970665879491304569730172429838622688685492424327846751474345629787959652925506415626302234588208645115162245920487218976387564328082496366040160625053027491473387678770431163040326610027838259018406416512321554805507584861065405543973422306362055089458170149676169730831435803311437474469924115763516232991106431895361181928659345210466025203246777922105057059323323190673938765167281985627218491094786777515320732589813806363350165244678819508871710244110975914189928604727457583239840417738808181955994264721087481207605277463450983757271125560503831349888850374428392962144891656501438615103362664976268179341368943529931881224030487172506509177067418311101419616728808908814410897699692900390784739688020894633442795833972410263304570825394287062349479522356782269898301564072911550647826482916356539734552961387635213609525410669198884198356682039555362674351173953906138048700585536445458088346260670979483925384976875418745827270221419250530552714620794961004434054104845312158018345013465585488202896674256838065022192354665944544405679642134711931055733371253201290874983814806131886808794162976478790510991580816899668018925999512048044004460054177825027271612957512481499462787682679389039394748899633542370345486238384342689751471773788894340167265859201041897085244967272302338535859194250946951549560511097834346580106966057406361295122585832320084436372887431450308042740956050544019488790716213273218665229767987524694188142349584574308259885561396031491174497220182202357091105044852296124267953896735044542796687562681958949161181282768034853970291983413220006655182663211934154014031829973674789141560461782822212846129493992386983022052139063830014358845084076456758519516615833022068864539569359334771319606821954611171226028373513855235535948004371790188454419805826143629507750430432726581496888037108848112908534470533920230150365243487402948946738815978355943624951763480955527781277951174371208596592216435375340631673924795474441716687710156173337374073012035707153879889359746766568746787738962080359973240193818339414447844802324596932028698104068709597570281649247135820342037544828929995390927955746351521055452983925797455097318517126763443757792497082936527956505701855360558429073983351557229123632482945797574613245503472710037321915654551879595668818002835693665855143304229276143088053048653412379335389367373034385945923345546373743951523284737501487650695789897403706927914776740473100727669394749478883899992819553507126061878783758685836632508727656976435606827498948981957206229681334704728240712993185797268019916456403964880039452452165797372798575376471237258622251480311215481923226331653387026695824547873362924424811249256866592991129137820826083812866667626986521389907139601179067052076196064743015946144160399547537513847211934457683912665150959497842481008253493119269504790637207172360208413830313811932706737785635474330534743065957893024328768433167925874184272955164018038877372991417451369231019120289294918269595876845623844746978104212777536434351207852712975078364505132535198713618341419482499592529199314685558277789482974731210271703308052500399639648491732224561208290960222643484536621196676916384143102475332879730935565636444825024101955898339880522577311533962178735323021436301916168651722958317468133661049604370484468979627619026292618258257167422951769203370536108712167839604597147891345625399488597818915603191114586178541903884306323271646193308912977455978362787350342121890557267267896498064164612231676707774500776631367762578931520858775058764131874245491278811899038897402033173447281628693005101538628634620117967706133952833037316766710282033138827135684567959573329636712423321319114508454239990409601193697498192893988049829287646162405336210154829451233805110386688019715461337771308806375948053899619145600343431149657599512529095004806413135011212217879057305041748568931205954260235214202782484198495195153012265207762970627089781039020198712201312591300264015086080856360406714577235387459879623524548723883251651376837405011061060124299308538398192868897714034323284731507365216570780689413906967163242811960231903586486188856831557009235822998399628586591975591261163696068814183425688773500302616341097228541720110606782689775722498620211060278676603044605537953339299085774570681522671742873391823194586064390870972162879761921996571018742825881373486491396217759057993426613815502205913510686492898620441756886394268385475694286914158646654334940527435785359532025964584768820553410008911911493148630652875935683321340056157959343708074167988038175988876963917416802126268804826978753792303864929792777078498044162945522323180471803575546772188198192812185954775194245705982100502432548185588026321586784946705447623606991059556831187698705316067658545635757662160459337873146447196181641479383257231003104638554217519919093640492475729440904335152113316640683112170705415462541982805489164649799609565027260589915499068680258299972949499623846455963846654674991983139344855201481789310285213468007776134666271049405821146148210209299190558292151507469164630118579370684695611988713432186801527635905044822766357773380039572368534172427130944865013244505055181435246825041676065523564564110879278031117595966210328120479877007336387980467961143971729125841819837649393079341268953739500983184329572106999228501373669179598045793946320044600578201050397932601385485208247654074239528297480820145443872308373298083048216657396850862147248904867436523695899580500740799094427832766009058243962185217927121595326911253963438920744141299330127033352052701439211859007093709047649159881213824591324376504173776587873040309170163114400055002687117276894763861052449719761652560198769633143179956943824797949834749598444162391463244331665119544553760089233988507821128288166466800604739467004639421418976288630095015918756571737879220818006824864795325516883082561799560584229648509314618348568886130840047789013710748727194018937176715661591647620360427425819463182367037884825157278145609857433176368229083506809699685982325648700895645997463432936951111224786047630829310277259395733937412715596900470470459673138211223596565817241852132198990843186632759689439864423923467019150459500394510349440916998444650961184383431250942456874978862632310515855566664074165898032972815761961955384701641599516474190793614231331322035922794084686006977649044620520776220741729824904900468361037922761117702874649143857955614814555034714335199542420454277429593033113726698516112800673607407926839215011718688775842469645799998000808508708424633508377112567074324289797561348798387987815309375169119218115439515569709635279879161485124528758890939858904970609322662402655664006665827288192046184257478665222960920428347367774461075204811012892210666825332471759818584360146026766274347326370298213788385202191131516547896950241484844595424392536801537764733849476808370614396186035634532120221587070630828481319775791904839044958706320946586834419051504682257258753917693537085062891763583624168540235267470779040460671662617006961269838675220357015418650923289702640381132308689739852777986256991240531086981581258298279720587653790901212593110432420567929478772796191205335086163697038897032955270241687890914615650397102783364458055599599835429039735081553282213391835828372676515732198875391621729326041175323162292576392763365845606536644084312548740433354656771153717122809789607821591757671118866737249807373471244031010072109948763048226113285337906337294191509151479962045869935254401422782026689717293523644704372764025412041512234721446454670160983285325767060303024639438895534631349981543692330646669738380641966411077560382447180510211416443294945359111353352674478067816802368153347434332215073331068968372971323576459797586395096108810432383120298390740870929274602857015844822915396496151098335492084797725031364964201727458754298508542015714762421588391234227933951178016947236811945380686941778151629416579274308588409122586872312708483479800672054182490749276802438900544184402783197547580117251538441709313578653405693680330396657996685675919040433205252233521983993584256096945604542349298013754579458638525006858218255453659559159210518721142256095683162038007629659810653678333515501371370670009568798778209569687052809665228520733060899900986641887547233455989119348360950849784033130015402374600485270127936965142530187909187137721820546474562043993836010068499316581541307040830043543461832908845041032471885460402678086921915946862881342429447528673151565682999618023783413161879795435542277615541563630410144245820907226657295281831358420268429767395282905140808307795332945490342591949260560659866182792942589483187238872222067329672152244714696986236914295009601427524860148623218670092514097749443992771050792789005050546915581542089590909870036240015959117557922612450418039303001586143980004153543459730324327948179882910489677119489607317791569027049369667285066886763856477389180241521737883137029635309295426375802844724359684748745339703486875600432931495615212604839014575815912442570184821113191873609582003368392920361936689088632789437806231362928096660781922872402144214830786626765236348737284905092954087454748824561453225590653652910903847295823649219572406038607026661300907708444534902636913620584050068185137621235609973104604965078238869813593887974444385663316659822032336262116632592628400450715308495992955344171964296065656684822801821606639374114118888794601493724481401585556736902476226279214139983875521037360323767318637839405181947027282446428462345468496989181411862016503087642126283403188519066264588606652911281490526648418741834012270899895207662659359561623189909085468456355609880833001829629372018494274618428105882774106932386794519763644793044180986058971808786364504075313399942577135864473304834241907544105975040898880400536313982739307568506093028450136970157447494587230523425172064658205801394147055899346216144644374516887015735317104582169925974649239040031012461189600539418730292734268365301200607875466334538108694824424920986700717964781516373286379333501953159755927799112466885612949611920940326008729669477385452934617151010471773490693603660469279854356168227694358361710783367042047046080437083741961664849412406598072626988422743956906038499972697029991037789210869842944782122722737846714429606439281436178232639353965750177187073007286105897279086537541566512048006534557530510565824497489723547450518146145302184620739443455734414882824053471886687470939134809281789638087795740567403449351325530845727880218684725795309885188502784362247109703659962105238122495433031764291011303577572861169820816427873717929854113079511823591850536314268000218420578627787632874605373979313517177127884240466708782254769287656766914121479127522428304706676869934920864205834979196339337778382233727933930208995853663568682295403322685657155890248058941014802420568896673433744712310657745058841958774347967608482833189210055252138362335226399988000832980344051356394341455857123923931080743922264567591780143843882130958024144281259800998725892400475738976742001559652369867830024700055166682312415477572028525782441371203765198374167880219511266329012041419521055717783507176468206705244417259952027735412603033827992449324107194241984895842915808511304368696287896844673287243563491294808034333211781645603930097528080088967634927296106108390871248677560189097122064267829998104484069875799193939183895557394473870682237260432038521885257814305342228640075026244814775986900166909156525579071930829490788458174323893495086504500037199972978224328515476526587194515851589805991808341631889330126233278220949533229082002281415682079171076165169862613386549464631256423996532290574379123878390776860651756758120202290344585301865336260481863384759843129957994763744608534336662838169911676649986200889121679526948849718008201799550463163063575913944544640912501718771803549506018770885554738302278969252964018809859122140308525103242126881087359626291425301643329858263147781079460072683137166660051051330151410670984134877531547188684966506363966001105188455847549304631051689049538764045129127231412223877743487960167306834490002059696614206416505441820263688890281811651991567841982055695338601409170091659627354449573016345837262321795127991420749486371679131933207553931340123184149060245490745339338996292834263913582994526321240574667125101132799937375616763833344486494565419166922395938470769956235420527887648533568989194759088969313609041615400027181171710495782030264627620440027453847826439521564664966105539726433134189418185681953982260127291295341364950841375839714690512859958409018688844217939069334286817301531779446494153417768591127953420829097920848414097968802631949180899635489876376188160336083925311156972740210443471064673601824465717294078904407763975705743504582832127456517729294829436705607782453611468814250374912170000732991938203375921911686823065975656751931392899741160428632095582250603114040056330325159636898066450898824849768841540888447749307757042864710763408711830114985759899915568132783648065896337241341878530052859693812613179662076106356703939199603650903454955639082298780280370112764306260595317762902623923423696774975998348644141330937513272435636128969234225865646403208890313233643099589558281024485827084925471718799037372623369844720370657683690108148042744107409580449289177740596770064138991222055547537031104000996330109679983948863731886136384593343685032146419684155419815299951846264507574598251630157869660118203614326791644807775472487760263723562323490575519916213399879644602622138249954980009522539011978926409615582200479194458866329834926297732374896044947164473496785740819404830131320598166988277743722911641632219684111561787338305214245114299650839878893287000687924203875608785659113639332253870531984977300446912094756862902513041651164859065369315267968689284385452555879621823542429644784361559902617827163793616880354487304242907168392607075718818658256823838461438727809606675639187398888295005928460121273892196411206552562059343127462118548848678156099565659297412122969205409480256476496699482903836236526657532533813562507276537367341022321039915385701252663321162063044751442213910867626028168440400021408298391780530276467015013706799754043694047228902526879827684872065233860805122607340085378214676726426766012657039689329134071158605289592752370984062109951539991168182019250218376198385015235394896262914459572493289918315310456543488918725868731483597347700543613625802083471804630708347047596461944470772696594824244106312555546355203511531363733202855559424949780312164536398654174911306511702373746951733741997707065228539983912837291149202389343519164715637371471429319263084778803464526286384909395622091755429646310931733534174992112213720453021355418762739238977595467114161961288035730832132405775779369899589032928021900046285574768720288850030135647639578951807343997567944408350399550745472300105751897699365841620918088666336166544599135709948648438457889289872208509477115899828698738123892792122535010547403009744837557258022906892120125832386335098516881147932869054729824147632180252516004966077795584595269064220405406353594044704561695727465191829286371854317625718463561884982531064516528485836447347907769810675211496196837542019411686496776411598772039522686776550798593923739772896145704456506271823330549924462896161504245794156194894827925138587836987390598691254714207170173440469335857372717070201990727577437725799228558738836741571990913319916495443713461506443025464826066765227776835717222929158716712141833193693905619226757917387916660407182069438205340561290975709257060015845032340297680204552506260709865129260705131473098906082746020875112397046973170799320652651140115618596759610435049598903507905363233969742597014545022418316313010514901550623297015966825380213971029122636174744208402357691303103611389220843849367044341318260484553466340830644352178840679806899530408515490020644992428488651809117432542396289744591127991202994103798606683886730530358860740599775341494897061662899849610499327132975042676267418595231914741842041707095537124178573887021188994100377741897992299191603680898315212590006546082349323003343287092678470562090907851323927911238490412686591060673266572936392653732945550989475075284897475253512374705257848179089935366207475168503816201267085169664847843075814838538809616796098651695876661371551417300710595004288796125051516410394681647077345479102739137931728359061651329928193089346519961082338692901668549809401295490797251267111174726717189499908983978660889084583072854856986074908863452631197834095903261133211545152109648785728268008286895082048625961148591253065871712462780338917683806343829665205161107220507676894110012635608468996916949834861520602138571562828032571535764890445943572958782274062359433884281731300702675040024766571328456313360635645747522870697450231764118586263550009783909211016224474118206321813431583416854285401147862990666625623925276486337830713531852425218899117715168036514655676511597744989432424741895458992111025301353801437912384368699522487355976138503078583508459518912711778534318797467833765010370683617909211374880112552276910979969043538490805777381824473096880137281441618172030049278291078447748181962124998650092367812650744577461640111133806679626830569733693807048014244481998426549151185545966969974392825584249586511644541120524752817376179272802919402727187731375585360874689549113015900974269579714979692130763010905856703356946163365296045171549664866656093771735699738823086656678522407637445293800155389876679925584706636794169363260902239583602863562475784889542788285705613354718054470831253669342736047981145040742862326475502968134029560692999486048108870261341387483753140680068998899329832273016153940703744334867685133386334478827623085964479064298419133414781601500797700151983962067794961337051934601484139442100551721939530744727171401359454480276021813088182523266290219903265183400671477680962676612605021286707369887430211804872156825436257256865494816334118554910292373097570688881249131111858341348994300021412628164423790759766922003436034592716319953352440348550752774946139549866988296666812499451561468739715265425099757258702596199452344131075611892955170364418905646762179703648191061800026902684447952882856051228518393507087775257452012905836476376254503379279311988124608429893097227600824378344230358143817797069611872132105400449209312041529915936071453985772940613787234810382362074621895375516219085133105379104214264684260049067453949214388396482039388967464975613380450498491930776189159092150115280029264585457501491805261433473462990263933813154466325452357956734867653399467648078466219634914415740863330928412146593831737448054318822902959920404670703273434386424369564230735959736502613187596843504676495882600269557284660814791708190740011617527418808798361523069972474585452946836920970370341675772171034116080131000323545692802350410026393732036695976055891575901435981066486226323496589446254994787659827611927523491595328009796208032027324712260451248230810256404951283122848838460531419746013545846193481524757274803083050429995411898680679058995075938387583525367669266643852087994094678753856909481251053613098569510662000856104640233494339239732674241507878950747535434164021991028096995268722036521537868308599879642082478730779962990840103897181670358951910749555549996251021893182481329566135244439385073804858401059960440051207020033255682492214501026226777460853693332292668324481425448896846321574746114424743410584494214883285028730066207518098464620270560167271561106213531998419804678221399901756205630169022683160114490739322313943074246935345211468805133609111289960636345695538821395103247864986491120923633625630266824295086872606799492803043230595033312708793544285358357448352171846295221286845599007462359714389142105713683621367539375441555923924468800777865025989119204895544006122634073513086575467074123922443065851549739931756749046078410932203910210589136814797747544619560626698074852984202628845673244147114582558572024568783613366102504278124613773621263477819723390812156161831642033675489195880811008158908830300282829673850540183532761033648840504867683786244316430135797656080473730622436370184551904022381045683970578040504986194465881063477551475308705605799533181617546620711140709349911127925650336715674941968227142052153196477146002722992470395490567250557134533807964454006484970854433878678590903251323285666517788622041196229653638352209529869434207828470352185137522743665248435939431415673464538826826701899253619521745814985117141814589207461565011487556446580115230736557845077112734118615301944102141829609301210036963319711985963197311913383783534894807397407524304180674049367552893716388028649610703487264800861610647123171710006901374042158917729295536799741165013608555071473338388227339523479793032974669776004875354425418752607415401463468297812519116502998725211760707042063728394127944793801333623644173529509492487329173436215014450132522509726457189036643104471051320130161637320504799316851862139010537443651355784392913471238331741246718725287740649741837691808622849269780523075799345459177498013873076239331709239564762709497966131512131386187689906574422796804919889306213230162109058937422003588883366507735457080647504287154727939902470123412226012545972866202029654958938261118604876637578579557407495116051242045840433504911973699805032842127254564448678036696203494271352019575648399039272521096756163174228237506596680469100964799155104725746560917835024046770385909459696306926541711737585995291064335481133639572140382543826102840371658605956138761016217682806357898822089192298748682328127101698227941380056310374519017398838367850748749884437492615821632645883385567039041493374876921235103270584824557299204906084320477789615515037866468131576397202485908483655186667369633096749084853711982006378417465744394989523833983522038830821770436969256627863500931623597128173657367833622786107928493113864278184214751407358598363032405753274675322995431910097843279104031415193650990279155255620503024793901892020990564132715061333982258971300950751247979853391016672703642896688704887910093235847827585672203405911321915186074104376077125188534146259844758907358211251190441044361994305947590920610098512244972163798258111192833694874880076216362191343099187264308323069383123097373119459099420524094171107559178851275727256579057629462892015563708178165159221148056252283508625484380594520425859808944886028463146289054894210825530953182458561030118122584275748452195576101803182933413681753479845557204174529844234382806786113311472040799076775915424214611245109467845408687601256334867069142307189235477477296752736545697391358686306414742891254342461684760897104499641401047021742771545393313668791856420599207552426025062460792303757427779341540276987006174517888515710966943559817308285863735902929514120378500518786569610280346548309569191931235326377671693765412601022582796238598226871412274531852288545960671872464921281764220405472429867266907654911825255378259876215819092181798924896583842399430404898343514638837996353158099774251735493646734503790334000089737212212774531885313841003321490432688549606351229581582736058007371377150329157609172618241450104373841313010595058737636838959702905768262976031216547593297912698135089277271036140079719271719370950767059451131456655224319799572362241603440485468859540846388352331361961747730730764159030975736737919728081573133233861689895619689845678279952285369838953333730464854016432885527091878879416266285632285056803102273071340778757158401836494788928147654108903219881966457523560573337394344869754281506765930623266405938110419203160586405511746980019535306946138217777938456308812943666173011202511797143556073116357895362530664728901898636505798981410381522051286638767385956510206047453887787557455787271775750542558474722872399030777882044399566157655436811262973509982770899286637356259273350865652550582588514063036271888074210208816778535556207075343846014959834506630230072646556345325323677056075126342633411236097758024263349780912493364448029395802199958024240447357332335496439021330657952726371030399928474857765437378512593051495737718280346177326304920916517889088136123822323855700397578926536899343255960288944119148864055260854850486435869838562769077205757242194281527264227883238154696384789655857954604825678378463591561680327951578631924969449370758980289653075491044422445058470597684004883193745610202238257799582849814302085514268896592800610538779368608774801356601843350144186922119626082080361768009656473893913993542924544882124904282539651607205019577024503162736210333741091079256602223095168255466129911605316378605748233332842395398533700485127795836984769040131779780570403262311344786104026330634932631892687315873651097429347074373890822538428450140519554746541358913885051055324736267915353404245028813973410836946554404000710783624821085456313599707287357959963535390116278982105371708505520133323785629081224865691898422786060887514759124244502609400657679140817305782956162933335500039583383414685197932952888920356290879211426581640051639983533548705091225915045748903265426604897954865672030675366107476622451095266991540447115314383236473488739223976006803897311950564747176699062798414335909050095740315531068667141245343540505858429043643098141964042625924202978867222256000656630870747271504912989019340817641236632561129902861341747534955428295860411283532491378915653667657669048170640485801869375532458252816915246483850843124849045277952459321454973722192116652836826702460548261511930684890926531602637318146029317499089055201661026903519028699376663361146904406731287045709106735517009464878963596689096786828972179752772101540940542631090613007751204565963939226193110949638805446899141418694130918755050717469207722353072300582999450993187015539834076352170251486596638304127994595678579158885586375001755808974866663105957129392360226298144488720857379470523081468338013829698456748169779853597223219073763979240701256525423691951185027932111935014361049152593847657108923599342564851870803157516563609989519673681755651251837588539507793122684549805553666198560409202482447357585774187569599811238687564925166940909619905730243876736001351046496234853558844830003904686524678186458514575557780855452244612683012371963890588527443801713740786599649621040761959289054708758268115699237235623593536392559238413861605359047062137769702154434696262047885448978994351136421306670727666913909040140270520464858427307665629063767352403219574703833101551402899006673484021648446356924438775700466628059508691864341735050730755061525810577982129558604727001052920513900114240524854156208364778179920935327273782934072722654488529810781526669940776248160803485459260282024947910995936170138985824271353699126062312484950914912544152170780444559506283005210618004108287404699391473909801290656946968877293817493931101558011006690639791811659622216022035259530790448184760693977631210865256113070731134035074174480705156564284777231332829370556933827933374585847847711102575680392753792508506184857210537059434107400637310467794633178267078109215172290751396634618271054509742013852495671329287794734086303087907138794871568496347882011822613353905880876979868789498492009079679115055217409477214485081814360124506582967652373102254003287329501762185023744613568023156796702511604337849872880580212056000611277171481154269897475662634511322962422334879134100648865758052426588635162151667522484300074565038186378198503096189642677237292065934824881451071867213439851939581179486258886360407703752954728793253620615306126281765581788922610444499163273701529939365905851490729242095796645039107759171678567494966416765000084828632915981889572855397480597507397238744423940926866158778045234881358979126823163633718812577254281439048238192591990486297215258817557788598144573346422782240858673336466383257842788717606008487222069761392759248899010970523325745584230012746335837138197026443191481045316921574076498923081310797235280884766450723761273243122613556352913029311764688676024931718002000253130455473962596300453427406871472386105697997982878345250649835476913561375867345941962867882027586646788444395351599070604604039904111727042066650639422149757081180504739187260900044300118309266545050276553935656858021054252896620518571932194465306876782124405845079843658225556218887443207476425197836259433137901338423083206802968202499302219046513216291086235147772869742441362461168196036026536360705412685134353846484117913144623664374453037702299005508441156485745642506606241678003319841982764301104950207164756995802460402471926355566885635733099823230175020137317817626773855092089892864916732053630032708915907247056233889407326162853345413306233358217336284530299707993784475514012710339797725296480081845519393127442677543596483868887509975589764575750779630704910523210628416997936980131492890048145322386107794370929157546416944386696289967670565851572682617674571499068398360063505074424942494744908190612415856690477182117538062431033955388227222771531401016929518520562881431928454007274832438689428182354919335125451844597809172264778103142731353088406881112935880241037602188263914833107676007448748390450261187979649900695629725986856032316203258214121016814181965334573549370337765040607713619995533497867717177445821239899521706566772616682728697181728570800029092248305874876498796554805646566106803300161059671968363155557112765171383350535018053356224478890038249047489527025651897807779451550707908443726695936825900047202085678683391896814264255925109283547168189265358267365682168015777383146986756720827940391384996023343700287181171189074003060035328982749022077409361186361727191833980473649033757243833656171006784612503094742167081510493209313620635844978923419275980461276134973246040275627405729768523998207618320577526410133175655823174376417742522187041358509382791817014817044252779023374838740102414123349046328971262229364846178957518613990288097897484859679875371853699239877097622797197517880555769761214854489864642995008842842874782163045286607539819580369477439556192924219346495936837138333449131726341897858610267764460629361652377377099793426758669271062234208972723638657891608509023494363730595038595884887184388257910289765292461971226875233718521548788331753460185236381707350414628681013242560207229831209625349022603356806658276059438570771063116078497123394466416300347081269174991514057424888054142126595276733648203619109170141722800349551524699910913203811430261988847998843862203851108844637095983711300046645726524848330696828474188421481684864002525310071249671138655073975867713631495594043969025114676724304895435101144369890383148499658973196745336234066626093212240904498651777029311178517908407291313925169524550220387167531301629695899415724512588173640552232972154837025683178577131970070939255454408775124493722924118317599855935533370388650981477844601578957524786910468037399242212909799131537122981114363475008129087904492655373687254637939107089680015516968155885079506025353275747381170901324564019440295906045269052079850813806166162898241436243546517359962020829607766751723830859453328627459629477268053914828630760457599556274760261034655348119853519298379271387415887120675316281129482699755570225288535952871957646010323618141888078470142499701931601782977311018987056687663626296862082313842016499416941100362521298033229321544064293889135362053062896810882171959855097233303643211642298427636101031676082850817586441064668601407453194298090141669002587619982103236682465004849665827102583154008065390451266198262268834260066377981178298714639409846164588486577855327088182253193484784780408751564397709727417461391932232371898605042652724284456629275401289363707453601796392303043465828348430606671835431283349709138685367682087874826423844400972386203379483253619485032747014538762541046263652822906099342521921775971307586557681789710878912442413132158768880346883332772686800472408163760880095843858694152844304751223224238127061225785177312251253655668866684097188933067205271560386956163739405924931616945383525485441865264005633526013894404789256587065917569540425449354448411988531310789073143774990784392247498098760236332057858296443954891190273846581667580699662630961609968194567726752255823787721937564935632705625639154919000756222393525932388821427791389932482984106269625751614523836902217597777066116315570692121644463775764707027252706462164478976751310711973616982150118191932525781371307729608827996555916022415197787724223429490356267685629564948257708193035097639535947375132381382183704687098306683060216629721180497824179640966857833001448469670145929044848329862734856788812631770809111745831902937212546238354282368843811440445259738824532951287592292629392428152847217330314439436787734903158522803518996554351574507156608178838295268529673044549880838168756269224411314486815308332534631047521718778680740276466364417853399453106902432304512438868078940122640998722826085199537572776608146798954857204880276267035549619521769841612795400838999047710630830848127822035061142502274224138971012505689519265815404247950189432294683622157675120096956120720743786114410155211272871189090514180959318116629233461597431479082090173994064218013819910130319315015386049885175161892105846249655409685048785740244579073485917179441773283550270451679302777547008430181131270767740384145434217440544350584159264744623154007252101965453388307742736704628536110850792742318770297622367876117309322870955038179344096083995235317853422490154326261098463020288061521304451712177533946646860965605449966825115443214155903648116602312189841316059981842724622172473958587107760243403689190311311844743804045926767123569045043959085598601455988214679900243900011503196026670331533151213627669489129905360226358184795460332337441714949132774778661146944917348299498601591354192157601011600743317896990755446070053995096272753981226160229989491641181161275423947892535237052156571628170398561542731320165202394627580965318307159960595151105934961653887083913451388380372512345795686143796517175102066154258085068753962315945030665861213702052888384369038550242357487843891213141457844548379038646937940639631815502454938229557040048427675146531364226607189117708846893365676471315852053490843395143039248804823397519991265213047199511286118936567984905482801799582187939275455507797467038600826488258267730774693065882977893905721573358330481163274395244105862950251636981644476787189920534412165603774675573646450213208162833972793941492190290361260301101225264472922187515962084391048899331570621971643108074748762759324017482484971679767356570948852825985426617064115244039319501524409097919246591798116052225445552556020306887340202373672811372275832502257550733946808017278415038908868281939859402867347645146389651421203942806951400129979304803791794548157233118505665997513547644216959321334844755339885616448704548645770650285892075852856996442606284076011381026368272674201395885483200622875338767491972743661786755432244484408705429025691259846704235790626572130821294683295875935711178071050246853138696525892892689244159987492170536165463820447161595536539698020407437713390423433222895661329036554528173042975268591202481384352842537611270555795156326292115217449958648977722002904296591038859996070377239400537376121161967338691109560617498178105965635172961035227403188585628189438973260203365870036505138295097985812710330695650847716709125772561470333037177418212068886144306252296374014551842845688891296838932489895964438064287080200704676656029633177488149800570764902075249793504183833928664892489650953881529938537749341468014351572710636661096829636725342192851222506561104458814535368813863337543999359544747945391239554937412062946958554670254753264966396583078471018634748558667141298507687343495070179062368843687813786180762471380149332627332099985478593839731262520316523969034745793556927063752550436963798207301472177663888062586575998713656229151104324754490106271456275285803510477136199427191980422536061267916655635814695755907964985706027609829914462278363847065233897734207046566226216486481155339566527377771768051783483284851345197917810938982475339441955203517665257110993029567289866062030918506564602788765994983368451289453580248376755976961171158969054252990955818642699311980209350156632274190925497329415873646839533978782028891239623794916495500431816934535236453281182934420958214512205353423111372945784209851467691744848459042411171343965313090667121779183709585871098455474292969312434946076316498032590043855133073833301906258350944050105788480413650236893471134813031177632444595704371956124800192732767661765622636300838671407067256828422814184850901539554196328268622211738195780666332909165224556921917249282377232960227340945833199638202356496386125999451794343536358672520124237451642407934154836921563855144297987657790902224814181351923289640621481872074324599292357194570040986679470543365733046639939354709483203036004281463191790690938950572403263693243446139540250528937821881769228846607499317159666665572940237288530895144680892204274060627852300374483222250523468548618109562307935563542526336951347107178080607311448845858761962074728982107523145780184742826057105257415373969256063838744832246240654576333591309962809669537268369041775598502227098169302433801843321347856730494474652511095103127169264787617248632701356330614085551316284992379298399343519104359713404459647261366394155805918871072558392657251294604039526182294862637671606663799068582701053216551250901621403334783042858966965049809759231959678349607186819276101644662799270660668570185328663970507462125391886361640668034428484604258697542069116419780097704559656611707627909632492381988868214561108322189788313004271988217057772986773285443264398668417300156780940626957463130668973171214653142103553913261468890200650582830225712016452836399856813170777583862201448896090840213479895639871881823621701359840972620584850089569317899837704735253908985426513581922653641952889093801714636498117671565007075561034886864300897733565089000395642638433157506610764110510873039660844007229570539107333270847181698134819005831411969579739704406720352752646165665711969592154494242315381805632736693386029447806482411755398278283210602303648830132478741644491697912543617826823973921952482520534420397043198306947244550368796318719306362902635416934762179430698650682149323616984406446069932086632140365152644139707629177696070424736892223386066372763855096275014700003965632563012892870101823254963782496627501367536580787576267336168011234927141461558086833877799130789753875284736089071957229148689985033355615393969217122448413837697145850641719398495364463148441036535321272489435809928308093136539655736766274625041132609942383559729210528056541464421738398045828036797920451770657366186984362731263160782544063979911046622458069887511473900511514184389949162017297667975520804533588776207967068175400713434965556749830289816707871340603973799010754093351492642009184423001851561451896515640985481973161927760387873040927118678925376328548278513232673475434213186098063611902093533342655818934517538154474465081412595191923954237023387343407655924538302096715183730527378900094149641729335464411274938701166444920536874003602734398430862025787402359860385434874125728700653256017817312296950507944111849118720083884171484797469254688581201529431316462078542156065136051603858796462845928772133639870167901757483947494698407985825551561229227354051829027691397293613516511873674741125285927978524472314282004616764892025204345373950774560095078418093593407321067811810524975800356327043602849978489985045943715184033256681166286627460581045196756085655068882523134848760649320716889857169562641770161976938694548908177273375794531454980115023458489213032420364977343386268239658386314817094788312670106666078041910206508102034138499808857350366727931447831749248958889713257134884188202634531040772319876303977285564671305729480758923505010172882719761435462808526455977605305567046959262580209707862714997294912786951814491033057867002079342287626884554098834745721361152935507044780447977826720868655220596523896394123193106882314341665239766194704037641615964687481935352097729766256367066315154738224714104051186611624928771146451382979172823509669338185387475953051335485353015499787944532720985866085396912235445728283770284011278382676040507205279904576559362260458800592099152775918129274931346929260963287613885828178527820376306661793768388554298216510623348829004613032640729497928848315047953781334162502210766699463601235978672861656735477387947888113963728733390611399486689866794504051577163241998480310978960670883499952818285408863765826710335531613996662657699450995396370634038651679190593680099394150049342459320175983152415757745382655462738079907738710345839360520386702725017792816798536401294591375554678774195921707276722265966542971252294539915999983969431817154717954346995073805079760800648506548553391709832747191032371151915742318816766846565512538482529074798954876404770501110827721086402057827703368147304389993432214605645254579224187697683016374032987166207286341355184570056093097528086226523993218450735648887253267925984602042932565538873563478181007028380139991557424395878927510253097463010623082705688838867091735716224718146269317159242960443966138189216346701513456928321133985071625579469230930307388779620687893640919147409365292167091649799131882895955394214799973826874849965877183410365671230535402215052187423893619419606913010822757128323765417028175033804128596372150580247321165881628510866709865924694926058521417791154974696983079433756294293213923863453324831807050262504182421526622930716775885081674140964017563600073866115889975973777434584378009343189231056592376313430445983626456888866254821737999446672682656779372349970984140901505198614889276354595644876952777991230581458882081721879189779938088977663382944568962993715131811272867449620404304488327255436344499521923089403750157854118621422497551412321556438501193636675015505322181235696410669993873961186877376398459375184654448168706514252204642563582850156292148621592625951411608827021280082498541384265675243835449003639926461277011539735476104581605363807714596320594329255045027406732321362371545975510096972991227466372813967346326710084996234398883889644236768759895891112668783392010893767958901804494081198271151948256725117528470024667248037287893924791667294048579712096177437351277110067498682977788299764511694268835979529867393071975565362559055244248260172819357854871080022046953911478464077255380566885759605957722767316969960863301117090619069687436979452783807844071897031130245064763413206423064921064190618846231583131975637413516409284416731141273338223589934864285160802650587121970911842672676078015198394426743598755500058912392715616972886127573309454275592128481690919745114840035500348561892426411578295021747356142743705964917389044626811101338960761763836172831303847238814552300763310927755512894600019969384830542132965903738769478735281602896998988463893063801427374002693834028670074984262346607683027023869494930184523444161495946372534185066248415132465617112183247587686965319535881378960477129653700297213613566671910256633780558328109568562074282492699814842828271888981664711229127405069187695166425164889567363120866644114849668415512971345316526468822531484748092915163061049532511102463116622811948950717298299772015279074075753280507057787273632912445064722374020539001585545290850300660793827161299142946850756839181778233049413004371213175704822527436139980285373717691170787699002108262600243905402808351999703316308191429354593070223305310108795921545083620680494334562973674543715984302263325017512710683905300649588245133987870714813695698930229612399160221441347429538682089162115397615035371930775159551208605565951105223036018626296421881191984189609708216870786309534925936913529502252196501270094071525980696877788587699206579303779042649966326631958790100312132412092042174244314542413053911445805679102603435766417550657175838332480874886047720077466645135419009655422159657971593132153045899359767870790370879146783578458923221978291724966373549518470210982336367762912986913564808094094315422751688451738204828555259123453330338323860830343588898480620463437563280435069504935917215489824106858098123965920040612375206717075899194377382779808252705174802931620636257755453020016484011502307833928168648657812115672736225543911102219996593694370307875872303015333793975843463093390066969060777927359932492021574506166489106606724018932910351498650719852528841053788109354267299704299884228031948844676261683919422825506244145425457079754175448620516886015665112562418327962844028425858451002032688427765473353205909106024457231548088634351106785363046625143357210117172408389876382271971213454254865278523391496519892817620377170790934665334498753865624761001089970456621313990927666249793250860390901114725208012052316119898536881570193618670540410942259978189767005491505879294456248815984881409148279822702069158433296566491653613976059701311826196557268316691834753188891875396109703595329846631790378898490029449120296264649462678129489055085223012028100628515084155823601963036610363054071111668812228561440454843522009372119486777255615026508906793351008572366144039565350105100665552063334543850276795004700394279669656069076323205115443272352468379373095546914133420645097815681775848278377014188076146489756591216395672872509258588711730483104998081746680091975037889667887821229184369113821636278622021742880448519448628070618589825357410912471123622496011173207143764061479840097116601664020774565271957077459529492970813204998873147880567453221449596185216917888099594039601057063175756710850870590869666513675842816583831113726228122674693779952533447447899276461338333567705503019860899694783326708025738588098881396128630817447397130061965906028075734514685467874914101316179329960033313044080070111063142223529813630867956617082082250873041912243799089363896061460601285742942548712839946206003570528075958884845240960184585496308476595907172589265599541470862385891962178988935867635981582908159797783951100274683495234963183797265172795886594631675465105643537518245392694654256243764630912125170002546086497592917458891883707111740277096103234157643667836448944541425122671102863497778508971305215187146822642629630791993381841993838385143640983715438543373560326856507642325384698148983461489631889013942815799229401527881562550175121952081459419846763805108785510303558326562941387209694604375356871038255533600544580020565710404214180788523522467266032429770812775253668529369822311993969268235419589070469646211561700116335247486618206059467937143123869305655845631253547402440568360684814194486810278507783004219362797770235295862023668823778184985283458579656519460245584214963048846847410399816017507563883336287853854778657523833051931915777193809115180755922420852457014316768425543046125566897912031060611568755586344220495534649824547576689211151627075023744851458812283514763356271533437298651297306207093948064324797348135832161469503438173827873413104786895379779900737254147292111527820697178835745903912039605685844576127279077714813205599875263291593099811928002950033377601944358595992207214463145329254794726768124057664145605557692042939908925176873130951511022220183295842998111227199625809951384365717174165287012164885852983455175534263541119174230655400745948752086062419789100499805038216801182263302975125306112366873166457417246306178213697704801757248376782846447101320224690624720428620121907847267373463752855548998316229156673750163581653300261302957954873435792821899693911467704543105638746424985659592091136010190766259434609080290130525618405755110740107543261061798973813480646095998354056795745101173350198032468448506343838163056919334410944374566394945133185250341693243612055368690723152044181286024164167268214717434643566826571141607909557996490481077681040257633810381522227569198804282772833007792098708549432970400394815911523920018662086679412737880516805846789217637226679602325767456420034032507594576362849381586811985078948045309872852099363477531183303237728021458294136234206139111105891575478190497583757922332225470298201802689951168101026929566853306589265211713930356232187967570160719417383903085319165656863441036472353434111467885991796519670591667230804350868586639222528813743094240266597590484442726830158366449045038519047236583504512418831227318800744975210876132848187007414313719888972527459631386448698197496288112299004941769654884515247375690691938640357241636889846559171463853435626817010748234617287294515582383699319896807117092028915963899128768664919658411161920212614495143966048855425551475056201640654128581748665134568220210006786528333077858584677925254458342472187129007333015298379195440460351953026803114948001693746432623595879627549331879879152194770061204997884606625091454487338714775312491439819895173132236828800958126591518250594728870611690943570485536232470154303358744005289785466895611023926115801734368190665583112480761045923311059731679345712295075348010918777741874606648657089642175591253611862027925796672794391082653095327397470893503089306226169194825426887286511042406698978288956324623744796204367837954561172246824480604657094915711554484218119282067074794598766663823644041828525016471358813945604109115971178111270752254380905543652779376835583182907030163522901409156166985626428489066164093234530802091362789024543009269685694168743067833271195821629671157008888524360392695114008189936742238530681730715157220431132458868591563597815510278958894218685586779806754975004313011853814919532233041781910246243399942190424621576345136197378965761712993081706956109212418168730072444486066517083706888076497636924056133876746368320852877219404721296613086969171896932410541813016015490866536836223135249244020868396781657818684838959531521453832053409779955508424904259096269684916625478637840895623882854010261521886386657437886294076100007059552641607380247342726986803077636408474551501416500877213020051476891183199170300331081319221285225628905872310733435291534074466085071826928034092126441040703764031957130662013853192463268351722896500880917096348312984708061240218178834865815242564231660509096188259918832855633507651863934831700647884290347547741291235544076433412315371130658984850052097407847480519851901916593117109137321208337740278480564866520106554745700510696511371164584304543221829650438003930585921108379386964280311773290133147279926464587041610105526026167297685212345598661453850633547521323929370591776481684794151548064944329259482449377986369088245872606639148202599318733145808945861427067528778412757245586476205402677684902548002781846342798117873163304115317868301464369427067747889520622478967721920943929749121627665479419198132092622827685890143506619592235844670624466709884963215531036653085887387796319427237695485429586424773246287682639176684896113927967875641118906136650467951268192469672800164824732436946495478539562979739844373385739780442648391295720794622479817506653285470364136403915931770655528814330526169302595562580872654033997212428566794762740009297385006592069526958626144493534634373093725326455037760377955206921532916768468894653740641154294755165938865951004848590078706354214011624450470016397615666785846022837409470049842375703129630052718441314735578529855208779093922529690577130777268947476883828401619910756367955401333403176465140120385434684962999449577039790530501382964571228996615189957636658874080296547849124380548480992240618167053649856823767442020701644094707086671646535326504441114051772762793623504282685386807517394963198716517458964064495525630367767305297529330775014118198664720815418694942803217939062819626541129179544389675508258462727918102390802185156163310314198140241947598065131090312784398333919692740928024927520745029394104354718821748395798336861950689543778424320947842732205970869714862337088220500591904993950654353115963954542981406138354860274559713957474492622236423096325088353158873027900511643991344789798400100571919558960788817581120237865142997940467257421873796010542720721333212030488247188197309218297933111649103409075172554999192299562052557872531573041331726803580634344340360787105688866278400572444926464202725145260595599911428784467896857299172310034086600112962280386628898328390387290814876449989738588133117013856272069877527791748500999230669454340891233299657895694470944771565571174400669769121132922087343582758357522006630118726903610730988164987595966848866608510751422787407903606737743259788629979034435636653987172195342285956465039497110482044556571618946612834856805456588697345628457443549952317895960925406486791746698408642993724737690831757160641893557538048909519968217009465449165922856406642467488390355291399659241104094315720422266145583889873626138754886859979690992130982101056301609524950221966879916822627503501742118055848476949575134253244732137370565887167476657803962576253861965661577314991521217081942630192148195264475020132165306308587113604959294229554333618179484033509693063456020801459840826410285607220330304094028082187197355409237397938377812133000957915747450180244650120070218533234281598663750352741696193745321672561228990265884621181484092591009577292545773500800418722919580449668755058040823826909042873094074783851398377903937526758015531556634636761534966480222114752176505667533318501498044265250128200041563761730461773886853393021163913187466167909471935821585245334309519233593163116100616318813604719185190225535389161628872689787019720946062392457366452670142205978024361228998286473206705515614009753131034296938666118268794197033752614168386932129503202410291982959230093823656667599366975749402052742467371432323601883261799245731360513935685779416479019023017443527482060780775730268262508239482481030159440819948197862826301264694906797818745588582767320080016539359741014214069256607226585033763656510198826385221908668612184949925275786761304457216356639794085326795044575106592179195504888507832368074946386369065036601197439057620774052510513833345943992017156357304635547900935326518619282201042134714565768605596525808278208234153755904432888453916031847585486750262589492413215483532174508191966505745240726884440911658393273073294907540766443687288223739840189886827949618432254689329732144749726816241342851981723684050042429811128096418713968785965349305246238816577759731467789247788781914287405800688280104899049912016972042035061871612367092473839895204934597757043540286562145277564174701435097084960138478442603539308368200980249772484747399084646351643845495532534803295257548465118580522793048754984781645695899433584455283466532980754221333947917254998307602455889218907597034504685793130069470119794055628880177917541312936412270836956298799225675206033101995516896612563361776331426246308027403415984956530072210116010852475728578685333466867747124804708070622098785723181058995109089980715812788153498619028998988055079466337546810775107592421518591946826419925658284660054705577488387241110543329847464761686720746919603389444380417184579257312324219990572035506683916938684305394098971304662987773459996736091823359344152666108520100913389680690405216257478321841008817071741469463461742682899867067938649158213784401077551388017473768129468718378218784285586030348651304975310571400361885085622566921583715119363238809090418723828331612891202700865565393375162708047001064080380786403356894517055292405437522035988847823089017605974631716680019483400579709147458054688456036693284357225436948419609600614460745883088118706504851596990998124063877446015851235559198191044712638637222956301050148898806277606742472913602824230249284327123338010058345142542891295133273221750530852342497504525629588555609024567010612519005360286596386934737921343710217333975842777630923664750305810360910974954800841879923310019159744145456285328646581935196864441155043986166607896809515629972430536394067614608670819747281530855604437078182191829912780510203581282587443404226615048146314536256291643074993406844595543051231838561697800598314389074314913433228851195331760411538132439123181475700241461849853737203756827147742633109986213940750124106933552963231950891974337013676509036117800482789789657400290101547111395687267183525454786157184337541708167806923697992613525422256012295508718852099001851550033684292584462540376063370958870812991176984142218873969922792170665946377448127385711431878890113879770300349012304931434112499558381787822430438823774085708064967954487102822284562945294632858768757818175984122020899575139078704344308222482539304358578841919957385978059401627268563916237522576458460902298089245916492539091372496191194863846877683119402525827079603818938583500970350144818174607521239195943286999322064970021546366020410776410937858143157986448128245195869030822070967949704105723486803866804912902869165383930344912551589152602410486009210022848236770958951176630595837355696701546738075377144947537396936450683160612224179620846511461971663200541811303090728754195532286566807823136458316969544712404640041162882123917327235386195376503970934795890885899919540219217014067581420498553367356057725101880263676436300902344577867491415098270654265405689920615859110601531527514276142802274625605697061302980587009309802304973179839550441584499552470894392645424593696959252582669193569004232828964573160124740249761339128234713722391503232463209965472897046727356610309605412399176128270073595704263638662391115107574050709531471647213178391624273959458068081815888798416668195049034490151826163513811221045538687498865987399862300673606939537065924212119959761546320479986925339683374153703889990969911527094011839682675107050665219618164639775419677951502116885672169818454328455141060380198433594466760816378373034280699133693273854896715032574586337676505221758708742547413929810106197930400560368491033264870267226559220787461724162073564874873012656932212307832575741640456880307561470810056109935859472234818937119149756418406598812625241231908563729025952373436353509121637410643036725904258736684727394562561585449964358162831121246965930500715049527806036825518712773696541596945880569287131746612587720983084423138967299992326909670959710496007980105465083907483052232374325913998048232496077415740335205604550600144476489556661065328179956196287260951368961761102127475502533474122107323537443557255013991596277005046412195830256098027845664216145711834860569600010162573212477815050389036216000041582502976120944163013959328459713282252182968282363337383269847912568797017600615481056115155447606720047232311010102299937121594814256145674460317676424902397617677642418553236933010155017771614828304689235893787566642474673917712130289923912926737458351929591861054278011187397678054691409323496971720180690272505245607651733750968302999110072025634715903970572317800881567212815567913810400439701303428317804185049251075509624772339378226066750501259617986069528292277162502804679482504158775301328053676912568591130713679186508142892784265121258309358839261815893867728817113021001036212703491015251412771574732693414624037492071899083894031195118154439405544900593903602294271546921412503469834213043749370312902314271472955369564997782257027293080818193685464504486358788934858098773334017339357408754773386802133768814461513831369438578788572965595708397000133383109546471446088539015517187749986912678157948583692578995626941033657801628429120452366260479697299181943788378118421950061931694449484580463057252904188677454023055911567728426251286730337618783309465559960194055464499204608881252637274850298485650642645184681625806196336163848795367678964350860739577245525148378689393609814606463161253473624434284133269247518928320551863242025338819277088409973596151801637120578125999267303922741981919379024490860333352788976985139039466606903672534267404595310541424833312538740268544102399081252612435949774263254683399000419249958610045589627660854581330913580394847017260239763807457440794852738427277393286852692637209218159836574689086157670252980629686911394039127553850089267687893908800408451488233333930609250998002904374096040724961150594338287562375948002289164072778588307849101971459950418514348376541698813409754489986331155061310753193280681720039883545292726623860254754515932075850925058765962387566269695122627495507962439871799549264662911962857274485877619821330337227745524811747034552707143445068967896436515478065840999063125996175878133386486090835521412294894083267588181532460036842286641294064242316791512767821092473620515465835442478662209879287148212342292213263714549283225506516729851037740901233164573402952449979929486536009025559217624234724586717323360128492075057506581269261665668561817018278393364849645248789915874050658990894324724578499534987448126052801013738676127174317300688019863641557861135373360411509221395558456859225883686114490967199871915309815211196998807786350602236328809621017947357246533758605550584895368124395399776121383290333102407264577507215038642696612853323933474289837054330337320475377557077434325386342778089502019656995471267247850591813015844821461050082376341619962540056612005060516278910029661134259514715594017750973039187810358493104744232567123753748890167143581507988879821898029060266442105552567757316421106120557330646347031134280966192487119291452722069498234066187503304795884790190065839097361174057768059646477152511829989985574546464354028645961364978769219303033517009090863273600087578894408242700467903255829623376894608123232828280192053199140352036520025081338941306655717141885112689231972994515242947555248346188830162170840177661451678991197105554898587511941541643252698399844871835748607329886349334315978870880456280697624963526715226587542228488198907399239304395014213455986900920850488670138141600095737210100763838898294200242048726417624551509136387875414847846271507973777596023602502336636870109239534086215196075014086683949254423722215248842989486499562159338687576686269206330849958202460896284129466537526960532052388214359332605305265531547865250073365374329181561725232852324909519406391977414478781269428157843569054041779622020073457399509787420805930657762524317423759649959710648932637058563659714047784668931088815742035257249227596562282187598931281953112565970929292514983497187555140651996258027230029501562848308914998826631744002863360869618879777939736483481955265649178276435940788313189324376991657223291624387607511582345565978535537481552905089092449207570945111081157577344709731226367845171206468890551231478836737389229271338609445876610164469637875894902957691078418733762155410950158556603579733298085846026578922864765609467314706347169311231926552659013235621229808223736734831808722783886033066632753143510022292085291336349745565960445593720361215620928675192831408333657461761681831233726512151019725121940957873080405243890191882343474468288886238941394870504372172576862972327221140387423474420108003131868039972664165646880824463521945712910058942844519831114439579681025403330179781761933232850858046569475308230301095544791272903753342150649151070100295172753871597317598987918980002852547932051274931463911711415070310032266401961218745043586438642161178197390725907894296471268256252771326547419623705055097070590012804803721382483337837571678013040061109690654402771663020221144970573312227816101479247068751238970581740282941203344180913977223765145823370444797386660723490300218537786785181293315572596532261045748168340279986614359430406269116755504380388533962907548380076493578559765741512934923557269165009751680334745700396014615161807039805910203348465735522909952132476973421620160889056155283367069139829148654785253436717666940442914616753954621230518752016493238965883900261234388002680158272900543582447682851205692638541751957077242290840765498831720813286238278764121263734852058936068505645955662551002018127346896742585647540375691084514723553572858427417906861598047699069717618822923179465057959157901308833959064098243117090622743728532153293213226939917863147860655571801298516867708387103467125351958543123315081537820113002169226575762407761494027500365701444225308803172218700713312408132905859576696378890778366070177292010748955693606215181198261396421871869714993018669718267971153798913973473778645381829361161947846932714660581426372014314123261147475132575431886298069815750842792437454597020586480855148972789608819539572738975813805140938006746588075659149683177051701928640865767983458103641690386048436746984920926698099784461655328316850187885234018344482468760540087287176922601046092070471830332330070000803962082511754573289940480702193449586927941751440011357483539770813549707076088361874938473275014234839556033681583021854226569554785847983587959601989189266252293609861835491888367210678647543989140454455257091299567465925509701859600776572217116708099630149566864932969518609076433046779359058889575926437013502379526343606259324697752338243563072846058652852023140568581340092986322630702119456264949921756153180679811213369452455595474932551086264160687425022734806721772519118392331827479442630859058081935960906332838523142912704372745285511171290995649120569661090230276171846008019000103228693546732379692152865240780455210657265737731346517496716200298324751567530326713775307281535364623171119172190007837258053044993278387144836671592035815408079779426288194274981282437246987355512501794321221609370654617187577719932410962738527400504952068121137091367120739375229951595483866479249951550985935046422351266225055928502719501659173566623668872806367513327436942768094161773121159225809813421479653406982691270009128970261819832888776125741022070114027859702738677668135983686092494922715961911398496913579691903697297039000128543207929952822730345354625177976397955603418773700567691633159311188056971159895660265397413562803374108348793667100913556960381025771162948127638519346924596132868669281475390460838021043203969942228009771940828843709159608425269579038500422269139070899236338893137486725428500016497046631164747122367203163845094256029079734348753545082759556587607949502669553109893650552549656888966773010969561016919347798075404561825595746767898674327074919218898399346119097156830246610728987457979618493655305986395514990921285153479798743065482220059610635578026455155217968291724613785867041961221296964118215312989105843358471567432182203492128274869023361462979478322397045959238897805880205259720449179342203770300804272854321053313871528157134333380463205218453345654004173088456297154294377871235140168350156176066891499004729406572248620263607809411736869613855449278661178929599350147199376836079895854252810350539875959312634826591772187189487257230285964420598066717663708584291401474880030020469787342956567368385824762537998139034687501353090535636254299727750441071791547754596593479268353942005359797768781629426399689517528761214101867922387459617532755608442295224128285518985091959284031132887219575218819731490842213063338787893403361018131735562303399127890285887745608470985678970601178269307600612392286648916327269021635381231885241249105958763647015271572588239426473861928016223736245447056228074422439491725756278186419283306788627577802550000446435611000748438223861072718415582488237690373663640110593397937663252333484190698037323042534791083948714296478922233701270041414813487990114866329950563349532069382128617926795012967167356244556645579610134734463225365884336200816513220980597918108969206109429783184187077213134364572457297867747138567403841429113921042424233519745307968304726803686384964967905078330118136540858811719946902797313554772306981890155218977736648672787575921142551646155281869653514062122481757119126596210351976750460950321588620121552611984383791599324864477259988295272977793635655628683443039662812436052957858617741215446776920347090050076089926299858089340758187725507338861487791066896799074711919050521015904225118260991671839796229185025427078828833099575875018564715215785293485572915786941495177223771281995360792080328241581066431277607321254860125675566593850006102173510149451879139198375580462923948283013126967718230697630162125918340832410901645458805101871160287104412605237095705393779643591432914848388337759146841327404874842910582778682700513226641411436323526953439805010244922516231599323865964735683990265893437115085048242004726648737033404341185847253078277571037138652801854813354374193258145316149561476261400691417001637567047015610644683920471409833052167230701056691911655716227660138681520632496884361040918047003676665519838544314211984312865884832785104217228188757258582625709829829657197034734773187934457954494613926866397612037630193753099622096461628485198031134077334994703869805458558778743611801510431597455715283292116263960338881069058268563094832028766004020190977582154244087141846084424622612369251473770635655634661734040590193577999606908421332517918254427980839163432024079986095184743489698538144547955959756985441429271327661926078673321558589199212172234162418098248339623173296730183755060227776321377271076084327963129389728777615381142636941449192470404118537336641559641728012134117655453745596792974998545502828737416084442616052417243246482170771954102590640615516220700613536538043943249539672223845801370280214501650399293861808783699978903210774811230069329202433553034283268817073083645808475749613605471915950796634298174545743989192807886690814172334491626527249113472278993015557231058516689827245903446481071231620949878986128626976735962597739196246665326934945920626345890153536146756238941052512597327838595728590638330958701525146561708336497004299368860757381217736833877575370861713214474202853626243228192927524954929175486772871540392428198779539994037560425855305233110285400652916571594520223199280799042232777690405360851182953364430936743160571531427975859299579704425311270359603581543466278852113465269577531863460712191025481348379034783202005076095178318996052863591865581665309808584844731764366438025298773453376326476396075483143071587816364919472207046568066610432125505226266100779027746190043934115975720221689523569712172821291517395276724342687588236356819463977929849772130893297771861111795414682462052747636750262323913645574395518446025884831156699047567160465066508154720743124378657217998106600642909410846669549803098031786236167928440824313589550656826466955341038920235628652808405693886750799933826268985252514201261300591659638214137947196780736926045987281001187187004555186371080242885582816016958523199223397792582591169901045336954748532302147554536549979319324879908264898667094769121841331255780122079518531305346979116640206055823131817488603782973345786244233007947549551023417884057195420409422880664889094013563812575309753975970107667472794936346719192258231323616151993403828380232624433208531050970828259807712485800965716963465133380347318844592057290721778020492108700791002382659436470856017894210798718048512873727856957745685831560074375675997014672169386296127400932960186057007597858510295129639110069316440535002626391310333995277345205655190987298806612136724484002302950646250426496684252862511101287515070807418657375166466524954138254157204401986644879671537804396806875440823480864271928393467718700571078225136464240411103154511602667059935198930915765607432475341956907645802780355934479741421396875534088770397648143878399437825103545817319843575996547577408279068667121984202128609890281560252927387438788773586996218095455230387919390589039377847079745110878773096220432890290441016701778837709957504171611734694486188958135729071232825064492405957819170460932460597635911611203891883535698683180866791410213270125101466095767470516041211432077238276815753836681413103136472770347967034806411183683975499886872874869763487882806260964210468838110693650655641597084266015785991447926910998319645111096693182505107319260056445220758753467705580463249596770190608580448486542240402738957640898311617068862901880202971012194857642044078217510281600635314793467152532726567890530024288418153348491343181559954647423247029410592814677134882768365745279245441660179602034005549188491596484513717632264386290329205589019432156218356645289552702104905746290044796125453537665647934956523526585826994804059729955788730893199948920264137331028499008902886371408281068524547292216297670177652711944497844367575628171936495313471667790370234117323154960531037278979570705750948671308912816678324291983028752083871714260571805817809237830515964811322068828602453133473192173078552880560826240910258445728221631996744787912117623301276411471716681252309165629980335944298607020453865569965240273870801017976618321736391083268621203930536834314716957048567663098044139307555084641709423972710618739305140771194602249110197288968870487790196663817255893524520241191494505157641184479947518590112776636385457915703545345621667855294950124721723121091609441953794779652990647595716407139658923373036549977554786219843987060424637843597564730460745280896808759551418435919497618285577487772708376397238932554672782670133078896277957834674763421758231065657301557195441189880622070265348806667820956199344852893728148037502843175782200326313217996398897427695438998220063632878853697782231854362611638072273129908734797461116029888004916124875271989266361604681385568150046620977723591103387760319966544883513814664298570676524651636467434902951944460900035907714033999501615411537277522419277578006972104221068666473885320646314923083306693104937583020185180992787276365520952769219477742642137635065708079011238253438250299425848584623887423391479984160032645665436439840722312921158104007858923556506590735475311154991789450145747594890165732629717291633468265643651627718662905219733017851674872901673834605723647369912234157801230427232687971104126140218091474676847121325893970908320509762972792190485687604434605044469438701830891346590230137367780738023151020596432703495071728833508576049109806714892276660472099325214708682213723334767589875835162887387434545333337408810698557054537740630630257073367800346907701345156743853466994477658074273791445245915315600457242310561514454202746468590994721740826179352664543770909089031799603721603407969776656423257986621984564161572249493337050636576972786734768579547110674118394445461170454125350736679369535503463755014043628345733975171782244105801525944432250351766281199517957308929228018577288484978712877119561109764377166137017595634917497599952410386509201870191175092470997213610847613549788300465251105397378459623915590995142518241775027219138139177596616650586375337279078383464387665679592373410542423308864792342714258297726424811694604522242090173324931249934261570025430760070426677445788974660232423415523254643323914988259528189259970121059076665411041040445231229299244519658794834857428831157630630133595036329673132103420468387159831973852584502903374539133390566177069638477696596460257850935217545415382579934193011981686753277421801613994896167450144086957370555341823414645234575802229629324054053946286242637852597858980032477289926190591177295092622598381065103934931026332156867183233452500582985071143287585972793902255589388259373049166998256992985520951328761479807659244091922187497907384709477412961369403529508232751863634558954802517447127482690344185567860593242435550808562459664666115750836515092803959207537214882490265623978826427093624404153889371972289376294432361924192823927528773076443425548683603038270461919377694462105082887675235327578596628817638301540390498399803024888633299040015896803320871131513082236395552260654554485278211025615643207984019140613042692852946179567534689006394614246417793088652035460044759799220678214744863696086284383457581341113297695241629985052338249852513362267224386919037727841613414940081904515123410875913130513332258351616121918282302318957281852739309114890267863627066220948027586529799498748403909420694208380139445729637668118056090770430017358663394801903992025365606173100663869063973755291352538227443189373958972299935369857080855894228551853183345712869945188958507160549496239815075794362829580185359500010349941667637304591399140482117455268171173708957319975984301141287798735400231552714638280821472823302992402378185270402840165169117422728563127404177035771193564184286611814808184448082409227069119893075726860536807652577300679334751685352387415386744746827035665608935517569585758667090220409674965362431309105141008050400319370767035119360448032404491294582685296818876977604613940015847586352559944504477128222879114182646807496076751080483878778857473225663188522101892914396501703575953308547766461608299776121364270801470988134263964218792154781072916942206133338053680725989900835242520272927030292400377697421517797348291451719412517768124833502575177353322624768585542313912310847716160867304756971625608668248571304488541059949869766970858829161132283890696959754397128805580108918473076452380945234908095679444988356959438900997755003011009197758525222404373679310649600483987869636418436948668183622486236860303101420713363969181120718126870528455086212132843525273901624093120871466686168693247130257827873968230682279479035040181637203099308166434647917764882454240649049684692249756040916968105887207868782200577430967780961380914413977177096363939619719349747370610462055087172531219917300424111340469842791358692357532202015864177194700062687985998489256578951539847916600027452199778828627806761386734169237848175418375219797003000096900960552750386041861069550042796319587279288019897280522613585698982226496873189808813520414700619505915782627537904439496452156633507408847457761447915854014759476770833966933764828837072194730818302535047618047895668777596689209695796421134087630918684894296293547920040930465891911365488474548820965127831317467463331353790264690648807296520619410866917319789564835110706059426521069372997048974269702217417358775489971847403856635545931704367674755269571917902358951963425505159843247419895951183062332751033201519195108995620204946697356717075184671658577574750982185916230062131497580910017977707087135994110146307875948208577306346917158016683095432084450857582209021344258898762161592669925695153512105546217857685807692782742787023077084170708568620665584578633814844490058709506862186159262687228851484746803436456560432364057148202915089335135931855078903328978784442710884908126429175895631363994879507131215746116983696183021085033511926113400534641792962914060382321792133734755957439104866595124394332120799781981196346062318216771019246724405400613123291524293269148859970306814300711959735965277054864652887858615817702804722214766320206584014139715173840224901105828687842889251695378045119035526213354063819454039970863458383388345370434189435516372869055298365196935389544253556687387297880794061030350334946166642626187857802742903117920850484135914246453025142053320053503942972628358008316179213178683559427610593536937906264116601391455473017744785282285249537757796140141412197018965541745850335636651311870964287592936864326478944338753763953813266340704697678217413535411496887951988189671487918512592052171540890685524037916691002966402840357955522091560366238192984043456205483395885897708428441053435026644026417100258970146098878689461479969284596634553731528582302407494685792936253863831813221699771457645663840570007028496271514269587822677358524863343802818482572219777988033711100152869593799162221284860841798346329589731577139613412476550408176694751712892620695914668013323438251813764853423879733469282648958789938112876663627890831818238569687343791673775035864917089707231678128223382501463481039859365556358771733878711773986847329395725761163657430543941039344256517444890199080768924012572694691415780535301723579011117242225511726003659537132960675996482558311231622290959502613869063395004964899564501118075875472804691343613097814970163056404936355437502435264267384131129346366128048669473307979530999400369498029546795956408865296417982451489107287451630252275537718582376085514116959706353281186325942176775578812079399830505959246372877565698062001119134453715874757539575039146717158065730469464264638799364619580303101039126346464206536819119700188049540379810002569746254793926607250815036954038026579958343697167473196847958066889535716811026399877329890842809267415352659497966099776120732585742931825429222467637627011760986683438185319708494941764277927073626042266265816947954884214871543743531408685262919810331969607296124680064118287952190427565230028272084900968292955843585530928053241077807064480497384536528710657654063379605945370758163903134786666249345165456863181101866136296249855190447688140573939278835363163140564124403787480699021230024740915803892637226226969541587860797032291757258122094563340581148555385891843836114265160809124096430205846619571689644535723479657392110455991378880757710268415833419696055188683785809244981944243688905522297882690859776822580149398521553878099903713379535398234950540225483625896087200875430790884039734179741012808026436653685944873741731860516676652239143972791655727157450146868964729152925545629784631983358790063680027573324907684202158446605952812077715062057609974068278388676981377661957347488983387352903314635477160126657066800366248325821748504990167823887813486607420647034053245802463471746339908315184913343460848464501890415183542212540670044157106037772276427051194038926107704347151723631567942467691355871515346077865650015109457671078941241836940677415740198778394022885665090823562167030751405849700788863030500273589387000939566115426409411828098942719161353067725575501758678931139416950965529456205647209081883213532183239613416381625882277626697608779836811701548634464996448531015812382861452047406722457707332114843513825135717684322883217386779555340451967532192113472614000411672110724085618839327383800834594445881725062212745575521234321810488502958452264783535737608532652616845078476115949155814079465344160296760763065953985260552117365584964573291814630988297518457363850902004372390857576804038446666469434628852216565610378999282889939310073555669456576564746465576658476220772882365731168016835262174551044894809932635221335563355627091779647785601854962070827617140315297353630963433671144492526194226022980329540680518699356821723479046427791432811411780211058839449557018841222447682776433670251313536127094293663913686521781257945612926795326099163551149049381978446842980850713790333101594743872892889917685384092005533293379390651374622526258793222046298230900564403428806423974342734721508125826888132492364195297525496764413466788546868687745230532096142506094969680420562623299361270105492508977266325208235730795120823021366592408044677094151480009611557488484214110390062073605164040270097513507763679964484636583574625998346143783561006386416026547519870481167604681950917855308974103915976054554940173631604775880703282980614630187937586735196084186374546392798219309722181595495082384154150374039539255837523397371189479886983351991153303746234171723443072908918818080013821972673468948872396150988870115802531267021942586446324279498988672172302859013676567989811908467228716097536515097734250096191149725758526753904226926243388425603639975635389430785640210243301339757451813324513282800529533899674807166281343397393519400237630003842416815240337903853110093107076008945785104212904010011505304193938200292421746645603015957515223941879364869337409142706705722481865933738471216001236379546632824631159205598004422300591993352239964332494095786836284585258594149230949653228316565311691150634577790969983961636017921544189166075198879641779722475158094720065741497683603603264695612896822556983240523171534300872251986841484646989640649061583587148159450455814738353678060342771499509668092854542329382076159080705443466964784363084395908005148282022638682495764599371332775107494267558500794562037378183748812275913097732768323156878068442379886201908942365506408191307123809715777833666611085812747827176980355866295777550924967212914069440752862376365026660209040992749568812962679158135699394187520699387496862547700272863161676702468580480361130133726757288926779369943876519357877749327534296116282602163389250558803833540416580442358544944557195445852976811564545488858634202976310995356277499984233464130654320586470941166959600960935868279290765815723508540502405162499935952506779051830891467821213614586326184655562156253529822101563614467647073805651611687698667657606622529114588063022057973916990352478506292665187403834679608167166303035325763111424380804838985393562948484333871251259479362657252339393447107176033284719001194270065987543318304596652980851929747647260589574867969093845699595084031443513005346310312006243473957213927761078224835548692977720520107207299535897896060910108839405727606960238172531351855687117799649524887716525730334564092479938661022856332706794507695293210991923730460783562229514572171051870865187663828996724713064829042644346234461065799261588190844274800108614861646385109091586926655459573610701665738974349604557233651004263863917201371944069301832261283018602947578787100144823665498811502848927445267630549238305434857540557971416396455350534072487341648487921025277050993114132377390754945149864027510173625535311809126592307915736308035325768449899077490559118209438503418715099069697372779262641489739593822065415270786722604560950673459263112695924649526108444833876721178873607575698141808155754493371967628939518421852012032497855360306034091337689172806086561241178083632526583958141429623906627128431115563496968963066107391347815019628956513839469312959464578357006035861830307883102077471101086497373736865862818806608559978242803687219760430735239961810583669977266266435595621435108956441763316934556169612945396733945770032143362953850149123636011126110219857820402444250050824431952328358945198121401043589422852994792016320514548368974220897624727054883125566228182729891574946883415067864254653300903660984911843492231496748603360422567781728183378736404119649947295529551198670250629249176286875100140170803437218242731433024344656641971741090207859670018282773728309875614657076657030457370721380329748261280596610370543109043038683143495025477398460082083545315475857805290147400215553429859847501921997960822315908100870089644158461748114002321666727055475309145254808609325303953086156790803226749879317680460498143462368178372915768794136983602428740664202722147441873668969732349623364382272291517921207789553609798344200307407406909689335970755480370404216617345693102237815497336234578676491012082910753894569971157401316853584346452654356904072687337804844254495124521287348948645345128121936396268552666069115820527441560725827510438006102638625660483442396276181574892979575249022251147003291458625519472051930836442424666772873664347451756258348832716320753255644042132238474295816741120024651142266128128097470974494553777183058587703020062409457580498233876047385234399231183723471135882304930831916930342694833677062044299284641298540862171640663343117018052544865772560318144953537971569582539202383032838854781039452369048583467371499872426975883214662786310594440609900649991841941877306193805854670786145236771983834050759775537997908901570378358199617999349927029042807311762773689572911299431362962537215557963203517015602778111209637986423762003978867435128488810819540358716608854711743649871658218948995811527029297979383351720345049714957921180618770912300221873238595342484244750814389566368216940585246942331785336440622508014436674231528031672931734289994373232952464224600822315095819433707431405207146672382147185666148915283105049472549523424427463006324225854208864219342193158210728795712754722280534920747478812257907759020916376944699393716933929784457383781148817343574656779940566180502868888046507653609072178659308226729161991962449156905413038835466920457242859400895335140686844991882676886203615004981582475637199687528528106503798944362075543789492880678025969292754585796699853898335711697483395898602035846669997794453615437987764833980350550459130312526169416946224938555285546122662974145992976702838485084756672086009926352407378994353062301009275839815789044193100286406455746701764819995227545617935747555272847612022315649159150943641730439575659202447002218162670419788411847274507015198198006218736770872837420466506193496157609751081831510253195008289136720029992285224531056905062336456837271370469274161238208124107429632187375517830624890807283820678573174345481932310870156842572537568824896476607966909351046554447760700106284630697426216752704210481172559272601621724510034714702554757242759832448774210487055986925971578981911493232578178736470900276364715733524553542379023891152761147637165905088753606169826958444422131492229039704782470189982423227930645578338092580769819652543927759420689125628740431440356304369050102365533969425857839371370478105984778338516069978048586269909140489114070287570283890016182512260003096451444544906649018793731964211966494073373648389166682945618951279822246320719444260122866364121514334972594835273405309767818383750227961718647093238990485969492715511756655790148521687760874907488298978743301229996360418446406514571636255903188976377517632140696900960700149280859650563364094115822782185226094417031261057241899763682739078986732964423906951399343711380737008296280317146183502636767050736305268656981708953329498595417147503684370658204539815772805351722099876857509031849913005999613912585102613398118355536318887458190621178612977556481699455043295219017329429412437380015497875150125606506905427091987627711070737602737656933287502050888607778064823810454693565622984235344604678149127307769039036901235866831796943985858303207135782671297214985787657767885972104079935332333437877402350163817067367349156757859100362762755624971578294475154134178338280316563946664978516506998772060190344128950642170463084743735343926180995958705071922615577976786934090755083582210652845839564664307454941208264278561352166235649707401726470684192177833599957953889480099446746265943085008450918933485009433423750649848475291016637211771289720754777673646386532567274642113196410045607504611629988066262953782054058830975892662157329526827245206639490757288397250899807793224047055150876975492945355767941382176720209233673925170171673269802624501614462343896993384118380538838612761998993231064159300973346181363361344160652077594609669689938689147449362464579484488713217947040995048425185579926272742298553973248214206221673918164937983828580065022061283578192049733476217369019765588934242996328008544156815841005417942739744300353037543350893172755570951110497384841222116000153132386895983683012428367483894826037017389157520180641883440892734221692017610878297824850253767351436368058056061988226063862447122229775696654034805479064506837789602340570073834763114733048322759849058054228760781439532525345167362618471140892176240747405022877351570876651701588820745851364201768799092821987369197730110276220848330521047895954693821124344373298187907308271271777714587556919833381053163771101365500153340373264778917800526073334028524389787749814913408035691306956463679632277744625259980599928805142576500629173960846902147819758372481182535610770964629521779946348604223430953270080285959099848714165232774138049481939621713681961763346864036023047345675313123581563315501570855735792153665652389452736580632362164073150663126929640664239906954832167650217418753309531247377512037551808397051245515285213926293530966126175812195637806954957653852448864083816790777193100312937386547580290010683618859584169683766384400494093455343017004390890089240869868694997991607187514388851893777644312153197657054657969790953899827338088354586181273242134088424777234329158444860195451219208116408799728772045314382413417948029808127492267215701418268652541169381245487100930404393037965114778180333834758575766218700065843697321234582043097364986260315954000568113146428462282857595454709967367398634887979277046642084236403501895126842198577735300588281012877315538083829659218354016498416571114664024964936243430573400757196996833051004939404444260883628441479379502474038509782057031703413758180042572778473830182901862380730265747310743950939592673241822132106499604372187327352597407054203041081353369020395856231643276938571896225131207482648067215315806573315013564365792887390519570373086596958256294681168489959412992836342175930069607692596474488718178388899095436670832331884104082225442812492377009629386815218313730565563223975601368223747512127798882699884739181558759479187520173887514887420653059959078768864331583104008439291152577359571073423039633751415615567344675683875439184210773957993684988537616983758620482742792433957687503434491621882190135514758478291620303327852808603876575147656337203670175830767236555348302949323055057982200927959720414378620632850889723952402391565312532702816886971510715806155273481707473851996247614932134704596750719950645594698198651430283384590424230931768541997793299746783889466172538723973841703339960279791145946452959409114498985668626829785564830737694467225556759935032602069273072075782167269189783766661481289510763087025613210484455622482864765050349744510049455837635558824826446668153428860239616050133011249247901108855396240982248068192704125582013328049338253553367250362201652349722093268458702526862762190748716949872789988719111755810134854256205459604670689416960008998017867945098484194291342088941614867474690910985931802102421696060650889762786769574807499416506088892401424617076081110903027412033187129266783883594720674972347566175301392338363199466373572985358952731155701160934458427856765277803509521561030549901813267180046269946829164257958193803675882247230280778870152966659159081441759319388575870158330358956459528134909458282174257006403064710836944052318849216835939484128446475850216065898721119641429150109996455621027690775884003342597101718348135345143788799331927098447632330470517402774468192529212268043287249582369425846228120261990992891554722175206024202928473695454751822588813757754564155135780494118012193004492407953150874831413561302171105014289523128936289773056289014985852441740820743436739159571932672183445576604952811765893472532737123533957745452240054014623306251065067250538920279482461360891796050802744157727631504003105059525942276631255854648450737143487211139046691958160417526662049418394179703983857701292129936667841191211249398674553648876915748377422984749951511564372273418174329159214723472647227134398055428543683359980735083898335758958899803686388530962838857910109269539219161615513672632434245112723832064060438125431253036230518391735517465158231999332237363488639369257341884733569825502302901830858783358163205340619612595201349869789295670886988902069455097432326849367456570845261412740920487008745563335610122632266082671400285624774795788718159969118815072802302619569445209283370520845364331669830934601563130273052012248683343729147758175283460846668694309221401297031078422290040219763969442708063874194439267636816093910068626117533966284809612748570450265627032348297214413902363652052184651415738705715678239854002450266148962548476270751975452721607802554331729344822402055989411967897853728397107184650754040553694295580293274458626127777556828688155126095627863385232346655640089544329857652312785123798390436083496341500166771765806305799307591766816572724106273914997508368092354828845864081438416249322001802992009234844479438751722194832526706988872721974034184992411802742194622792603605192257960009003005667795289866031552764885300624719257164748735066607928761380090064340437862099479305047892812954212407550015402050149182060971994862658176575320940157182612017787293380792428945651732578162402674692338683773968936002388743518237927188277855807601859289302006025666998003542171933488316289425316868929410710362924673680331806548155469229651488480096516996174669917463100248600998978114357403589862852407272738523734506191056191789673207293420383972674122724162484863930579469445275221226574332835720929918644807259356342180014562483689774679705904734131030746867404234934531032095529060478487533816909064484009817369073979155968870472943134313775677528972395228805746578482640486648468022985942275130060043677508923225416282686843700268036210442177001659975766067557382892500679707776692328644839790802771108591402700088923134413046695112542257083034230052214889651573625947760264952423880661334009839075059092502773131228390056516763698499492582063205241160038543318224404642452595235225241411899056693940314400549319920341966568176384583812204052990520743794570391928531445780373730873127147998557583220632091635087540929231575423280016943667125694251352534604108318593967052788719911053747235501407674067544085735813880572303073780750817436943791226272998109951065595060821004190534698242353274328420553903510589615299131266707739498461919227574329895096697035212462934511101760308557381339921884999028795025516974329172619673520848933180454544336910857363283808748005013629023582547683755065244796504009395454265282091615646277060109123001810692977100348481986574612978587716368784306557257258103489940739188727218384134260332958731465436128915044737280528346220257579295012696078120189323220591200828555267450488658012331876108345719033166433507564141782699345501196565843485712099735647577665819968168862917946577691885406069577334755821750415669426349800823878117845789049458214323732856087408052952855312505223490451756146357201098921483794056630404650304756506203304273275052063188352857744510036096756765139494141185498580987525316805544985862483368469128240015713730956307019140854717281096679562105826067054939655331965046256583337284459452009858555765400180144301584741043894402968969324411381165272085371223179301346386554437865900137842562387032287928049130429840187044431356093605755221869631771964498860522288101052040432202144811938763934527302441450943515266722711787047960785731757715687043677049652498607208429755593580819793388359136709917261138902118000251712473342070894691605427488217545881885117248803060656687416682298104884197245089850029666161838281525298935757456711058139479891830476707621088691459912665924968887327945658231863206046836184200901183100141468549275124718949793918234269888951070594193218640508509571624059123491911132320280107838406138667446423178366779485446942085085953119545107138937201920457298779114803638152714693650639800334729294784001367949789584844246091393662018443856805668880387415719553772568230454780167519777308158469184687208773835761902795930186522745033805485418340081810715498538479133116873351904951710602270563729354015566186005075886528974483709837331188475279545498554865896691868052754119265201789775869576690559453348158243453817902211739043947895858334448566492440550330428797468652451345816036078462275197998006307637782777891576563919115577378332103567541529327000927077266547414204929982991749188106444115585926553053729681204679760187713100382244545725937888686403870258723695890125800698068183775404501540651210844671118484668859673940824311321386374521482136667066744514364073309329087779925088431453347195884986133161573302453194554703014816780743938922167617414023306730910279160515775681415349648361369633555224830698673992620465620716167862525659394629098096762659810104532931707087873316398463821522808584656527454353075097324281598985779783846928861804786564591194082145867174476329370594359362079908113763950229421559085121469940553215618774279386101445044282607746497894878326806982241741782784276267112505134790673241999613956211676978294339244123500794670440730812968963830168468050491804590703481851224817733188760546046085757371238031305269669142482737495337490539473214174857905790792303679651558600424883941114350366670814996162704942572788091823548019085695888002451706072524861057620807107524348608282944066803360842482887385348397383608853403024810854388807922496127006598704845608925450304017799362607308158967090260451606198750397990960036334169646567331660215176922524010827743689948362388616676298038310836420906679265293828687749067446063835439009588089151839848522786154230823874270692756907939689108714839105470821823506552077204915493148422394719474415690684704723986079848185204480345724773865688782162732698498140899258883871140486268344378295116249123190285653985070605266288819011317632408776191281174479762187705745732547059389801153776278486625374116123622645297283737394385209297886641116233336174368683971499049686403527328231731235487611305427337460803043714229800688198043065857323566612398839493305350347211197729843757240014114267986504710813126676811910157705130356857228006107029919422141154305354675561041776577920913776990616009571654930037580342575223706766512233695189640829591381554229377441510412926883547197187729784157475537283942345556856072714045994817189154014574926414622229571523287240344404048376531440162075413684987181706508844761126164658824211486217954672938391774219812166972522647730841478271721825855856049763698859863910187731776091233694904065531573682555571499576250083332556817098119472446701021136116706254620076148757904177583914786889842387991083370894160551131814962678330110447943706116142345098278602102984158365167010721110573263866609347553024759013854721329331194386930196310576162530109987161618332624381054128575910630876021738278655366183930453115036545022711354198161086467637880837122516278500642594976063888580195202590820348306983037170690340141374409689660193589599266556203311606915036177150510716234834842888402454655525698022119450785770808575169896443147943247543696118473070031256688222523431761160104222847009782840672575069542325451502211918796027367255135216923261877244626501145364839971621080071116945506947645450872370719933834128728110823234739257538522398997051071214620603527461071250200726576102429952430771670737980382767383541200438827919455275354811673348936070317682666232716456864911356620626143596175815855143317681455783930662596200861200656292304182197929838736080652956607809314536702635474406905981869158519460158335260815354668695805183179066975925982229078327129032374290730177011533520179837194757856122724268778329682644379979468980349466024894180840152572471437771135003908989870094544244967474876808786504628974269262166428525063070545566258332655415378796845457209057718015990079104761035986615882870324195274057500960475266394803856586948316958815660900044362150476106551998780105351071635171174531633054172972203403734842399414354950947391063926547689965887591482276431670137494382604299053137910493685288278335510859867175998779345818082289439081566527088925289359836076133245101579364616627848038076381547357952090833238055843407618045173619345412315226459848407781018345942846555676605833448818082953036276520083873245711228173667566724092457540143003955913452950236794505405729351621352611944942499139710727384451700020034063799947791667997027819969099032491485611313046823097189413371606063734728259755132154790043757091899124199800553888781051940737964153079881583837990528312832593617217692154939867873218134370085111827863418435477518975445721702943412252377414396125749217651075768822061551929654699723376627334361440821148734811614886783290655305928270159251807250507231005133546949784490542675315772078069049382074527423507407940982611662998366001680730409594273258831272409106199036427137222971907008422487524702810518086410399934843090371047571123947350838481089757465184996716090361514061209221735823920323979652114520674351964724435803021936507513062138216007456533924490767696662056209242491322331061285893455146738428306868825579892881369341216987038908309492791709108716144271383430884106817880066713533523510644807945927969881681282114739439648037678026130743895847617416322772976537932683769065615642826046610913061536387580889791559086480433547313529979893684300294187775900726302718052445166024427337479758436516539522124756125411549111445353239071135052223845012051429522412401055501963046130581128828282138410712217876230103607496344132019809672305768435507566756422005444594630589021677426956057608435349443792630498127836294395504301890294167154878742522619047352687528360238608719979692699964949173757034384385413885972124467509062556906749183230134073213838369565807339023859921181554431131234962936655594093713451260218275096521731955594020781293536391024736983934059121290881341950157928921713464578323741127753347420417394786924336485779483989693641147174474052431682056310556039552471747896913906059650214467283845804221097870696747322266618439503721260618996088895078877409921708845626077530341580613688080902608011181966201939982134555992424792718102589402836428306069252681349619991102584461623834522269514256537129473566733691252671299359795581700153508380029956527331611104998553221868454821722933258083367711335594904957777581692982763862482266288494818197982501552643952348717511286645985704255377550236274862093206811870549375358324418121260324103108588530093627153856971234408652442788690505277577423233762645961390047416696088003476196284552866563952356056423216411447300195440354468002855869058107327578218727905059644285293218625485759589532233998621094273288098885530010787304856387168142545690731483284499621317508334688046395786754993853622762539307513650904043342462279376967970732346713026732832424501325058061125156839152172297391825334647839411724342152404856207101828464123559103462575692288950961833738725066890312264957043086175329367545530293097075269721906565272564470770869196678884472829971635266198650810071035782860834322986887719229249457032500189099951172431916822168880271259108942621054578207871787624241672134900613777754300049818248747605929709454053797926406621268206913418728821838778265457906757884438235082944758819536888986016806795045531518800873034447457477380460173868836218609561892416181098014336723730447372954190130771959208127832770500149185364129142133885387840130039704048535963898642998905239453572710025292113138213328444876293054155348270745963292123990155186337364028979316462663342788065277269596135339597916529855616575723191768336990168154149197177688064021863226110571132753997522820204673924427058328022668561264511007185086809608744847322361225526906191435841372411411544640660982900413465102202140470816522047444632824599803109171114289134555814726588530920576804883117300738485658189072082229954186657352874909859292253208657323831334133162064409167105289889231418813111686800119079642441443494525908804629361890540216446397388642048356735156160236227398110711610902342510081301092568450261943048921764880579120428811026024728142331866123036286028781723935170192154796529700920115815326050777507597844450695424195399156384456083863046826191103764652392942453873174914287252301057757858018439107898464880436311459928677754768405883427240355117095175968392433512845822729666633996154715413396712274597170758923855620396755785529930446685860858266034286466465943352796298012756737081141594624979066094652792383828391095614860606622648534586852899684899790103913403417360546443358670375567942629036395720245157692635906052487355181440319876089515827220189748330349849154293457398432782813800074532729544636227376708278695358802923149502287772809480721055965131112591687265316682390725827523422889150957517033263590963161024655940684881662618430955816293751841821762303685492673880239580544271998268502629621959043805645958548347512707734612804843323464113743426181160149501130433582100081486899161728435218901307818080146966471803478873400348717816577123250732522693673563935995704960693837097852071440926942284293028715828766183783152031969603803291740797246737093628795733265087990959356608122409126678333215103527876925989206286328424300852339313633377588452147873289887924306699606141931289172672675705186607207309921333411072532994209115427874429353627774962920912338577505274159928249403121482726014052749676271507757557743998065384498516499084757860833215978380725601166669416040775720758547643439856474111587316371993327597626264568833228555810861890784641797586673956537543890776458755746952226057600529360088938822673105465535273298186719567998186474765979833850644554575487070262851542359711994433350021410711249301631391701157678184576017722744022115862335890465698618690482046732127009645582762946372539912752028892864234692682376424962732442198048149670342596081027590125945479096202639831594374245129435714295140905610850623862391672829066884883796871945215777374534790652596236287120787513127898803573435138580717149636677271580512123026942159319366636721710024193506864429260760714961035336783564581618210631372287803985241967213794061766157992498530273695608747114839414552881018478938879080405611901258238051972282775185323883297410619223988685258823740691451323503006937423094440046152756087253313757998798571320503656491950095576702183839846692107455565008040047112613324110452894841656781664039676985027997375579232120869398558446294723756995740158416197732318235471298373107470886774581742419156319342879157276428083171112140490221542658730371552536820242516971015578737119690657218367809846591771263454418242526347254691785051554770998112035943312252268516589335491997852348284458438679379283255161755031439672790396873364778732169042410534760161615062103949802281037012231261113363262698105585845873265411901417861949868838405948233611115129751779121799291688807708550734844485666526464134779551709656646814081948098321852590391619371553195694495543666524336455148588380315449707724044115034230613684012162943754978341213131856682392891322385745087074278573117901523385028692795978239107203868973715082671473643627459070014060563798443234061829626267510372863690613442619139350994403906240401453213166121472806671354865844446406656517948644654166129593351314655626431620932057273217524608517090353162307311867463270710562900732829784687853469185709282467778725893012739244777375285557913473625916983654070670186953863052362265422732372599895219514679344127855037954693195847617853723503521223298128087521737453817792695900893383012772200349055092647772181555132652039163211698265665998619739694203509659933122034084028050782742051516817304255053052356945399499542623508856468739523285444674395155774897399618881436240829286041414564742738462593492929108002700938677587444815649284132880234718463833555855138124248112474786617049855752358954351145518487652786675498385176452505664329572139668047783834114722023582880618232669485297005885833123921163649870352229301149134727793486065957785126753671195312011777382840514379588563829869131119635168376902902246788021537459905848835720014105415888857846416045679166856919227585921958474153967469528410609382331875700762940403613840175511930898962771067775716060682857240205245346755336517455794404407148943788252424801855001033550323787516814434206461439911519135253878790349917891812213695516680845404170813000932819663428914897996366208806410934152708141646034617161985600182233793663068409385915669412268672793616395531905573970399929825684869125293453135162829490671328077621186991021905814808653730886685533519603758663269161048669694452609980623978783471598104980718100202491076751220906928906034335458441596628852832822524444563908442988109881035423537571632878052552092936083162622589826132577196061960916950547254792829402550916364282086499267051956374574727243557000259525216275507346417029722469350214091889604910569524985691584179292934483071037097595070633595627923032243505196928902967823865629087331123664578017655543290277318166007198248346213585878068058983730951629274167182358557735183137478614002042772371043608267632207392329011521806449669022450656278361334310019174390061978182332094952496286264784693201504106810863145119164203554353379151838689320179600996390808952966417143849030863509898712202316921739497837304691785536273487454634333844276993780310506808864587262050946128117205256124507921626714442906670622270760405830903357632555798738304540757486050084438087538609371413707511763076908783524920535971595592233862546650400450159468219315089771844788176026622317655207047195694490500007419597354508290356409153722192429985153214672269183054383776838514863491630052545160181524541516076673265580006903695274519959125236758293841703998210171439273614961321091346116788037164994670966336553185676529415001862523422155700754023586437499874942660991823579596793053713852218182655687519939943611650716785427880183759527000955521471590953754707158494792800538108538624665331754103631594348574078776045083269541150255590590003158358416966380715020757445280344885699721409333272788379812420643727033888608489804343512746394700255450407376851210429613354455653834036873291538364980760742823871341106560263533915620554810196639518512289548424566351054315862503556511071567226709460232974791944366878782970796621060552858615113512567841293712946351142829647555229840256087605409865187266224128068731427335684612360625278923179305393906461836494540074571355711867470760120618343065083684780528064794434419640967424461894459452443441931908711383578793945625456310595583408196591117270130530642667238786711931328530904677164924330664831303813544848262741294661248428869220993674761348415731370282697592774130139145811139544563794876316889348913732977999716189642603894588469196514565512785373125661499191740718489411649657271550952744446752579097440500846229042480630343235294600797900608748624716481885732225794289318300476035137028096448429447959654536185483905422766774030914847532205376325987045134939761819825109295662811279055944771093399599511158432594818997027846446356138965069553348566593199008154808657866096985072112169800618883905611352491029146561673817289992304073188959992184245644781565730817606185364961091969112692158376133177131852467566418689330509722365997884265592728909671510563708191269085997824957463824323596007047587198959917952875803206129957063862693675348331647988778866833611060646322312678391507187209192944941796781424858152326856753071776150977628128594151475219393226651368815985841871775478423169377187943004788973970487323272236499458198307564987991441606654249182038307335678287981164488397511990125644014874178371590213453357439783866956723892950725842551865655276833000236460601778010128932709284544560076074522419538074312173433530936219420818034857856348058057882519407825231653067274550615271843437754277344856549973503225586274304122227907931615765388163481479047819263707982505638549872188061802773519584114298251874007159578995904105983456087837663119576418754965958347156691175958751763686993273587259317030151634094977265173566645170864198172300817007952858245734082155369734477874319699232199540630859139697500207202685519904178898701223487435511796534277328204411957864508575852114797470056437826190594659006194239754093823151496730048749933759971165407298240075949250257099150506970596410345570337928886351673490059225632617040962642945650470744917011701150579162261866942396687598387713338745638894577595885952073984768498708080730283179113954591488331106317104442321245606238975660734818131768574820753079666143956854390740220722255258988393035953402021888690186366894459166413894299998659820593296797903957401466293631755154168498172011934466392115776089925210155226205437361945106358825194572710147926482533573996168874834128748357608164322596981167239129140087154472393787867926314625593749416215148201677839420596741358034843685536470156887463572553882412953265550582113810230229135141524483789574493168949001926500609850690159981871535299909963545307515949053881905967914360421616447364404878619982421643572696892199604283330065015228140473065606628610058602001612146550803722068061802391541368299217017219309395798301545307262873908747446805752788583746951247015097325540516682825687326309548053545758285000177742287323548665659926756288190515450882489831731318044544391976291624706791296306763672103225711194799039701577136378516248983658730836420601145908315713056469008159329519338973034055641002407612277337394062133226730432039149819609749338747337455375638340381004483853108728499723109977047709051294546789145827497268132453034072503504536898077136285051058397092961116283602944986831010850727542617974493704829139176789942010681656155860307104544095192211357472624465179331934258982655767483386546495561548457150832562472458265385003167637624469107008805969882030268540257501571158982802197850677022306674349871675341365558747838870512138642415199007963420789921195472769308964910963686695063193568633831261671110475728459395226996933514037806140610205771523733021832343074725507437769422524863721084517328521462320779012616597265121456769433396955141828720502242268227866860915331975985620406684771426988542475392592674951279569224914604307281654240728471335019647949247155802757279532686502147851469261207949945061785064619072506075454982893321277388035897006017206196611619796823918409485814240647876116751453364077131279192499889488084802257865635018372194429210906722637154015361936479618396777382813867012688061745105889560655952340775625853665251986328865830828812179722540619749540243395882452680356336811904374448522276460242436273261816547117394428332579526553347805657580870137178645830846443234198097338783912519212981683831357034571484936144494950975056274790639627235257337617216541059815031999703187037553571809693738336823711223680251478812610684140832595613543688006136212207465782167986389546194705579775041680834528710282286046146096448547204967715118865746164256029622706810972605484888262674011316151633248876785670357651584005089205007476437015827851418501296476346393486446911695923935404430076994063007668143418398865449589157436137458450196370331683153789444175163826188902782319952816859329072432415111259721422096860812822959714902224902230181721707369481062326596679576592892897065362230290390914318975354742383009996762330996191715466180896569588874577514409080500470217573467077387471839627979594339679855905481454040309170189916017058280865328809167306164186345887794547089670133074673568586403576415728573942680907564606322199119892673953130554339327517015892165869488842800784325175337519997613459549616130734750967209964128886587476596523260592345220139253148007189142962294331945332200127304526124037831368666611112817926691927978466033339427693577843155639574359965021887650474327940325680180653048047475726922670264208437635313271822485807372279313853259431218188612520383318543561607109341058140340124700260633776628988244843602442606792958761988710675230878618426296209936527304432098503657138375054321574435533427311035772483908642955731445279972479707152141533891956024163654064265090966655012445105385315612638315831595547791488560904488486642160209528217271778375493285637344960530881530955079124760022759196838060666337407649993759010979582247172692860420294249770006416334756682636473258576960103307055781702898933871672088236348411890900010415063656145031752153966009236880891041540242676322744225291291337744894011446819501213287851738829054623915564974907552617955035045101343856810850114246522263119425202466823536558079984165892992609774352164842826670170932776723411213232989960954447609398038485269739807222609722767735311322005629593622274297862706491319350383950351438828759259248107666345578065045561363689938682611360930705096244082394294405583036922179113851764690141737316893008598269143756633834770353778986445786251799023110218744262432050242631400211959662754804720480879973613891993830971882448810816713659253536753526419470427424866568428930105543560399006016883267883613237873925927860202291390890658408133495395291375744688047326883192406826146794689334657483242432262973768197614761623017847962664042111806700257214730596701592133521285438120560391073761329809214294048486441317638367644476849296791159270645400071793986549898668965414566349178003443581670597887752080981620324070283445213976908351359070103025092844879861972296147535160230734857038323684908156248398368031583359234155502205756104102669328131013602760716584355164987624807284119742670060549867537470807673571338854531035295695152152255756380551683092980719634949617112816889373029992921896895215678172070636004923233233111234270116380180979560659754596541680052343427387760607538962693540602275505701601835068201471718213332604715809261455960450453845518427897714442192543259722384291640657222812526150093870349964261460595790698013565297554184486070970305590148421198784058778038471161878388388403690268406695219347831056631375734111553148054155885966612126751526644482574425298587396841602190217092954431747602169331147484848933285591761491522777039922951520600586045840881853901457468818962637012485387841957164173177276699243415773812976562061546597452651225600851884304074494984572668847836209743415038523156044785370087660785261377679760343669627734705922325991566107660489854503954775223514786503471112317665787580121867351048113546066641899748911815037039098656114173317867437102734228917370095841931114275621059326254329163020659426921841132184665428342439147318140091943569750323052307373855267135190434458792120584572332852525745041351051513448415086678764985171649923632388614343764976169938954736437561575453857969647457817967407473042671762245031700943880639425349565381660263665546093936948182436865715376732061602963494582619440895848897094165857270442533663886503037781204449490115999411826003637150124906945384568281267923174945998694833092027085718925546161440912495980342969621632950345562176920727399964653471701113507638765323183045775587791666170564540806363525442960716558560188250736947929371759866700839856542382968193718116413872769189218727540540486884772195850612147006588885794666659851113310442098578703658459689226788261038752881258813433764525234652227057466200976511709330042688562244745491670526708272225211176853634667881061785437090975119250252516198525481632914967810602692004494553221468143961775676875816497335892696139142792916772864571949993309763414232713079159045921767627249844910471201610684955691035621785580474660873794066336408211577345607421102046155458212790280318440997638299293291971400101073877175502427371520140811866128354513518437612783883719991459665880747612613032421477645402661164769683133778098357907607236999461910723080993969648142702892066881354828520170805914005309744543475702845914421138987050221021454383834367508876688639607187306713507244592820489631215496946704779093373098529262175542112309029765316558580386297475207255073164934946285016731086184507997263226496880992507836855898803297131350462763626542505730385830998704669966819135958543932924323355983787278222945475068026032257053831114238968773779360963151302578048929916848140347421525185219364254877551105186565522903186759615027152894786334783458799658755532685724374819379274567210196867697968509193849170495129634403353346778227864653595572830406307957660921427228627426972726490806210523033242018427202351008158832774835452142514671087139474918895649653641849263707635116578244754494976464178986827377854042237602774588640116281422198409461388780248387005076645105891486913964520056382052159975396382340124749637778674622941788628970438242544052728014516804483388513603290347894197023869406374610013023579524754468823032590445175367981897905209256510949137597779651783391866705590092699040715359434122315935734663449316015842734448104628219456873742625393046458356650696720390609318046348031082837886104205751985861954241048814506598079625250225756131081784744970807495306256695232260822805933910278389720890289017679177118361218282167054084375515059290764821134381807334088457313386214084218612455567766034584397218520616829080802048891356691480121133132513460220774449514885179486098907948399602707771021797787450721579443127242897472419214131491988991033216545970042831683346499839517491372915955732346637469558161777898951845272908485381552411074870561569929615142939928566757172074383851479746228527367283967877332612205870884849227473588474792372523504002487166401822117071166963138033232044467504931589448783734209001612905887579813811961280840043834693498895111098860164895791994445812776866929863169416552146763754763936396756900655753964582078607053791925412336965378980164001802061685159839699709330475296422121407851974749451583426077892321619996176829059788164347542681794290782437249209908131311756072955372308848026909731287601963136648700541280988482517531689753956042810654322056642823603523110141117429459925744017146123887332871584162626450256984783703931583963437875423267722376047575662373942649906443489296810413710169725961273116868712677886410225326194904019178351617794556331285631055402607461660514452626539472429368611429267325729299372327258942699289614608729987285794391015128696807321795920516747814919164440158035293810507234420037808816354511680507007316999234384707199355737388129369132898969675906230533550887411635790251804377732813544558949683359840655690712382261725416304837377954019139797670543938158555410951112113507564905951843477441207202235552366892705915370147099536661573831612088458314609541937909489788917270479332658529183067662489366607822725964949298664587707696520969106865260052466840682358893048046716979111756432602329014513600413771814348949481667702117592022738070013583119490026681106367826719892249722845513232574411149822741490182519034868458803696817950727786405623866093264475610761487695231968005879773793059328613252721642466716131074149885890574656668700902714644414695056004110045009204538194556406077075607426172098523467128616982782766825412974311466220757166464590651820645521184803679813549116459087845060586488694879917853068366992767756667619489039333201638728256075432871889525982121214760025272673394578690452411835828158135457651758866728967624281697474883362575876958320510683917088889239500297819179654153202415616038398394022217288265339962114505668015199286395398950805676790922435514223395427086322592695599968150440791803917672033693718410044397545344804456248681294474626824106612369185314315439682080591564332919585461976121554573279850232701962407270805649049938146546587349637962545814838617371267596281278251976824737239048553019734115726259092841313758203966682568588017760227952470908909697957388647503970534355708504584493209363943903182575426401923526269321840746792650040713115541032901071517234401279514653577008559580549460316156402018034272274618422036575325820906339628588231925103190870848575913794883419764725657160016951284189011541305223761960724680301014227739544323275897923801238091801544976774336866744353427447619626398249521485081790561329423851327181815319205432747144618422898630108174934164737664465370721728413903845404086082142039426156998135194843268603264910049910096367617433083174582215321810358567577301235500198661013113792861721300900560472735905764693794827880379868396228330148269266714348837696376581479452710322348342673236280166758198521510946216188440264468943578713399152811359351600587302955569202870155861923405303918085795315400830559495899081122272223550553593244611319927922988517936979082845055628464108452060377774516715689850121413411885088861634916341043122840157691279246614824827179715423706074085437600168126887170961125090721320615517755919274782078608935366511848225834195883836544503446885456088575188846499964911632437297118811505334587867071301797840899931491108928190298641150218003430022597598884645457719257350225316768455149850595083763283395980941191550026736906881832534017273096047523526431474766536453536612252854604780495779534473216440646497452538553841530720693996640354336420841282557376162794142079046704339128961512423123804085235189296999539748558097011741174719133296248289199651506417226673576846746058632097773352104311903244524729193019048136331070337415648342781056858878068022416700070309715560053202751050674799720464997227918979913711830032518463385038782727952521578505010255888303656666551999220648242222922690695418620575573720460373660516312617240092542032193009636657574128881618493041905854222296793885064831436073395306371449769772162758404637963945736324155736645986088105060776197431056403261630095201239537341838503443971099334073357981153641668336206078445136063806388937601595718368695916970077143179994550943366768169959698417845818449190775667906149165898980200903241612661272096030719989241419390565185495355275675748054554053195652068432844121855330854903584915915233399559349786582359918127812518220607388690001717942570076344929667606111299847863504989146580642023200301597803301267994009939076722073041184718496237228608736621601731059195782144794567343278101965145476706591181024693905121273950924753842340783772064934305600020852994279439812745324073416113791659814646994764899663029226398074714509724600156954760564943175703018975003609199829529097439603274565066186154033290426656534561363346602625589654113953055086576538656711029172183246108648647843137888486551233124358484173076292522283402057645155136279684305519978445430486163581076958042378825975806056141367027254743334962069656561591757895080310846858005195353572939543766755936876259977645773297150646576444805331457473198120680219903758068560466733950566406285491531693379140396835290529867953870044807093759977321280371420757023497836180418410066740979112005157708836153510525493232055198825380443462338316528718607052052146836079485140092706088478259968794418366228985621409335838682167807026452765688947216186948487852770486888061939329036784005677648272814885511016689703792669537398823093460728662375865289307806472606452911051315741114981882403333524377472725822627594172741168368955960885628980039694765788236525452364704891732693069668530119051211817296595595685109237575052205204594188687183660124783845925350348927920971259938845267233350494835248373062673283424391756694501290482951728474679104702821355653911157982297262475742690515454727572162005881196567348285392009239014711955285819372074117071490452422877242297888793993745717215491029318484366909171891901717188891045976955491065480929254383601857111076988901540960417826219927878113728947078884667535211466845181297089479754160978543626616017677113818048240270704794137000722159917864235313629613729548442637044524476745061361955326137896373504752815359465580495437021365659029218393494946150281776464834311354697675227932760499594383761179431066349380209154574055575129852687624229966797438245287276849144076740454996436527130901213376805351269555381220778782598627127674615167781122884743519398916422637667597198919166625870023624557518699826020567919855553822278771323427495036850109013789151064017870883008413912921718979661554160901870416639879087630462170299667781043863622537506197506815044894705270364570620513423853518202602359289593938118034499670379357305977791069850135638240574661923909889566948561461677066309299826693498583756242128054572354235001929807258876367547335310233975079187645196665562971747598181556606161073251229731618591062385533705175667749897246228315609178344896399425687832706885093880588958072279781207273155607561574783007217974866271800584102608172601566330182221452893710532254738828806533982138508200212833908614718063546843766660673744118195884622269518446222770689814706888173090513574573916965653682195123737274709581419487350080235801226053385338031488792982669696275298243549834661995241344811224518261903229902097393730916343568309560012292848508341147420294361863464011391698157722741624123950000597432666909241212823162309018251881953679703045643572476551132969831633736603978990255115662509972708198303710821133741834699637093105143591359329511212030146643016546748503802715982348056794540404812589051177320558934681218429815716574167404799455188539704218481727869451316019680289758009228873050521669789249589588643236339862018290462006298888277595249648942331211456159962301819874967162502032271850273276766296322686527559030253013430625666753914170364147623734491750200469575807671861046580247717428585998219345271956405467035413809404524579093913427016072008647369467816261870945999863435721675029291583426759923967922346084216969974891491913262036444123693899773867608125924081535725460203146393866736094556547993776293978616875916589393715010477591508248328601114079173092574086768397054387337895663900168270842510094114726673870249752503020001655584311892305295506928656340406207999399278971022752122524773211044843124926819217514222400384148237148396594087325173793547586737901305923930628941422766036506816756156844790034288690586816798525741015965925423140034360510589504354515190810614387313686939907422205821827598240369165805469969995286117250387696759044398407920951463787168593906267057769334996308483893177854179508415121991026031052561113015355938370024534844172986053695982867618081455757455430800023987827061124580972069644021421822106351434443027084019308680836845247743896784408360810204488022636652350025138336845274253914999713751579203175739346438903482992461271894746579236233362206561413095367295698343851700628580704992622961862836612872668773805714424404727569787324519986225536082041482088877523268313652630524978623197555283349142276358250151605067580300725365903250678854674766345309271941741555062562273895918233902044297260299555411177167022947379048797072252259401378968551512666530926604831141512013031149468910437661943589786977924131192129441869467256889563740347316877043274503809621703323072760317002968412747847014558540848553905001285413456018304097197092361979083772352882113768336408422441214551462106774681746638273355194019945595332988575892756720761809506134824034610111914155990940386234890656627602121812584384496669859900542060939904634403724603217738395184200079595878801922305724635216305293811883365278390363538754666922285936856960754519771196279029301579944025691951836330135296498568119494554884051153271422527470437883717434547474191390657447416072820325873524465761995468204293538090689435112417306372358298830907566148166065286513616871070974822711338771048446367911697083932811887132508009781191780875884690606709650167118329721353435289858597297537784530222228751026085592219740468773173757433459659578127527957373514498338806440207970263585608337907245276007876348266592158112562018182933666339152897368652253002589630180685556423904747772693523020372321389122492381616320950125792198386715749467609465410186706685566371820678244118005975247600049324058549080912205615842354118507322753966098295410239631725466463719934076233292917419638903881050444084004604276278488622246315993261098275136710789825919201713833378279698709210904537598845576912537972051966773359697082084438812527181374596049717780264603202357414208803328374500997912842479925536102669026895967250776459530185355310330542246174624356059794519534643594535536968125044920225135422347292019134373085106459622496904922482876124387393167510445462472844395665336838741515209606982333370614508064249488851475547031254805412309533205240199960826410193705469719210743787334067527158729727819761224982698909981616433488178031635695136034812040721541360372491847958890810245761025280870416898371527684948419560783866891774932636000385639334774258447268659762316871899209529394494410998773946527252351325642611470204458910097957829343014284815645426702367729525528524454674497294791583956559148830847046187030658143432784896895827859864662569234145996621973523878800886486838298552392093126317173363463161872942799011699219908527673902071672326339834202488301535446151558959734459868499135881143239318688717912717286659246606327615149492783508821124082632832291071181484754694049875126361560225362804223958729658643518744297375364095712442139400453766115272573174984525619485985305712827748303019637134535742258245650543449232407886953939692215153121645765105544376802366425217053622410023117961558492708164234846057640536926591694853156085383932782374154835063506559720420080275128291292270687419066571280714049154068698497239039393287901728029169664379183335746265427770013948170908293927644085728095437180814813042163327587385183812993493507492880794849356460498434058357304360740429954939737639899154311136657100526318114441397502872175424863121686315908906334147967600066882947245134284734115754170276499616989968368502955413590341777433542750527933345510579885072379078209481216704928124957966970702792443713780081320762177256932048785214563123280377608286820379734479717645324037513413442746359740654826515204507274441338209444450339138553727159488602116357360732486176000278863946657018237128538848891164180279479898080986932444731210299066063913893500463285352065004666235528898708005360195555698915189625079997450092910104387148190640577223654397147004234008932973819555969225751185144740587996475414926634964250844591403747198249407939941516349300743268771434070285428202142799586696098658248782541284838466161177741856207503838215143040988398304625523116465035576890345486191223172178819716520538174434688693680090685492137949325484397537255124175472269699733044357477563808465177448269980158399331240163679156409363883250128565538223068169771994104193196826624538970274297346778035615271534798680094216375347188559775377472548598771851168156498689123093873751844540985856222373079313678594503791438953839392931893296937946428552983058170754012097672601594826734679940322469682164440703701555553361435095517178000062160999581491780172823194919505202151924231612043743826649103752407494786557641385583704113398348378505394660734027139173112210875944784041212579036469037480655302569283943993121573177962078493623393621393550914048227252005310695602805699707184867674015646211622263534631517014496800335933960050769553161365318659241612051812351380587173314781706753469896281114596935959854616081321604383310000520854523444514498660131065673192006435151949699666639507039601455043731437373298891429714565333260961952100911423033310437458061956829958914090934751081380958315935135894464680162422745519660409738741394203642508061925468318518947603573372564512077500910355164152756326858798373527712715237210953243821574913688044673374787155162973835099354349462255093683586049999563309027096712795138208349256538059156476200944091689491498129306717875241567780653240645502554496407451200805878111440710161287542540407086417127266973168658727583976015678411169323756095347598313844426566859470240544117501000105238285760017385065437069127594809672661367775656907802052799122390906651190425470473469706170900803744352586965147518500723792338194422157976908175005768235906922498723433189130311918831342849422987826062951729270485887968580425945453470114244970547361475482227168141944053189825298845108695743896891631994340535026686280398019924394282449315200324598662219745270061569490922902846529781113547387180896470759231445875512720737039431283989016517876531663214818402038238838830036006566997431938936046380093715786932899249605052197979933665528246389039392155779606768331823828401561807637497333015946328193632777298335832677417187392836797402486835055576206486347701755445245479939212281584125992179305765120169293345743433267442514581855650097842692225787092366379288040049835794609604680923204699452114361149631187467967418795285663644962663083702833529437981874881377082079891956147682652996324579643367227081109133594910988851905633668053538562309035528872012624236212651998510714352424619161156442653910656615924714005958810271308533954294478992868834121107574015886307170581652564020493761603783204467078778279897558267025410834029781753781527470869505976800619745359941532458258800270644878823889620951413913222316012680587197401947078267643207951569820767802365267190438259395393253869587015852748895163696736102620105833276913908668308259546290414747065890258382096167988107985522439416973702800427272701044673625159660611590901455712843622550148331395228699795068950962914806291357046338074990904080084868440816670052882531449649246236033408059798386474520131777883467180987568464411499955912312349791826887951557632995746478930868629965830782635164436263387500464923741407221811638509100038328070693488689562869361230934202962070907201435677313007095288208767124533015583497983210565223780369627753225057694514011311734296766076947234367245516094565053797098635548717927114395267915047665885949035076472791892059930528313877871689549067528609042269919394070183316326595971110184616743438450352688938040511932969724201968957452801840697533498750386721199676612426260896990150683321635622615057559589506845916973272910001204776049353671865554678977004868187302644497437840663549610143984821609416568479968171676450127603934660757036012935827653765799576397213496207191113587105684427861998583590887993749014981777388146521182354027497305014524472588161862180055814275271401447727985332114328578677798928337968872287430289241253585591990701610713190167039950658004766056651787284527741388677015260158278408617847949458122478411033145422730469869824639829633034349845296465474871031493096706387764172370522669288286563489795727023410763891842459984366727289897008276244129703893130386939965117229672840508074237442346959569952920906345852321383337288902432582524951707896403194416242104079321700076793442934124460440561164672170322016764419429684281789622758585091487856660161563484788240011396438098177055233011444473431333509121536438294396546125687227212000185185722986687033334503829644180833566766999901598466029588365137779530154686956289255718310478302680364087650801786625411930107392773972086128330437088324121902707130302021931128677684044985093393626834816123366691582939362506198394126349545470228458281429144279163362655579859296681684223939775907553181530633803311838972740012710716101215960671629817937410295304131903859203743271636432526516874435535666660440711621736364746103491222845894065595725092530612886335511309091338024306748596799325273299861985608474139095902262466306998556364194373232003472800489222457756938944787743029877309242253271632489749839068666777240965521238836596062213533075072278187941032806603343774371282704755692213310318530497002152227182629898701348196964361166268399720439692147160858336321697163047007074503267252434519223638324243693610023676996678954584848297812481460728823710784779030678054749291766470918165261013599040736160346985182960539342031480287533589138366796682937915134349853116867207504336625149192071902243224500720835207149365816871528472190558797225167121113431542791742816710118784490317337178051304923624731799764308356399668508253997399791044916333951371591002902126984194161458377331961308802396314803617950835545284727884882346587167053904625501975473858969813914343765354278373984009670737002224177989952933614077527764464403462025058240286814718605233734267455350720472988393039018348886277436127352043831612466963745774036900153032639140154503733174654096362172209971673310299543758935820842071436845098339308353623647811864989634500685826823320334577586102665321458532434826072600119401365340543202753490382045102993629711136198361436939082726928507942333336329117914315253489932931762236677414048410581859441803326685110359842016555149202768444058278691338582056621342562428150680543868660613784822157509485370660788683530918368210900003094874972292001951196700086921916415472652779671384403027514783064625638077703687203209683734408129058247384204534064759821528193990454807034166618577603481058352549933760525100942385606494704736427969139732331484494105797561373377714134330036801594041038049186016208452337183574869819869136402638155950926473125300282238426591106745545164856450950728002439634456707909355751255993476561622529673980091429205789686944148655717372877356655844668219466680338846097190800288595597733850005700252999457061648801877277431682767740067405643091050293525019109989013028452183151091189888680574517083537156090954598946448361017336495517272470329645584222600444890284864531120020594404343319411633211963438177732372975126594222524513837805944045068550344115520624191962462139755420063590180816710136759970156287610403662074786604716866660381652519827610193269977913352262459426414687380776600995006089184893029106763433301727118719118861142048447569091927299814836475523899770614176207979123037880064558711847398061574506952975113661373196096710560436693747541276187150951484124053773208526655352420255955568046246063930360197873336064829765209100647804628416044904913372020994072121499905109585311985488951783584670047115588762870120826649778056300748397182217891849640264492111035509256784125199765191897616610609819825333405708881324140986747225318144675274099452313874262954103345972155518842233027642393484117685785067040636970775469799329989644717897856526713769894108001819024356706334579791633842631589227596687493653967760084545455514103937917563899472567669010613300400125436155284529093860795535164061645225732391353963897789582169355282698095130313443015218765449664342551689770640617834024521209922672738021124912790625253275009809842476082288781239583327447022932823734532443264673041212267120015102150662475352516041490362150124140080825827203329668347845624313079126877702242461053849424009628998372194970166901687446670026433271223035402328041638018234055708880699259812281229299577882727233916370325947148672964415043665315941667212782016156272602141232336795674852186080436117035500644515893087293008542237228643404202800735830796331826437145876109744367626107517329771533409471821830450304096439502826534372122426370909122348474164040684799079739169345097868339412144320675816835173404989390000160917226402168134575550063967912480061422110221567528786722951074146463573312671871319095165766618564867042561048237645514231132900060522021612003307843032090240356010591776782311566382594480048739055557730175158825013051302823570174076134593580381816704847809587283539598968583816225985265396477886595205037860145313200953346522133425279739413305125191220260596577214787963926930898680186344201342996033734600898410889204199424670587575147657156524609404305718214793521854632732204539556560961000705067102897574235085530995172990750385770830786804111686843300363126142029776254728202433331227342261645301343858045753679036079376436377506902494885489198851539788595456345626492946876196072688025267475631553317883055995143852542958837893877502188565769826553194921754409693360975616977086614767560790826028349970649977162504537762382021192138979258705382146420336773456701745373482175178951661667323269915342264754756847127887241246582522867239644647770309330174768208696593215753093892690949605927010639450333387041833632260171634162021335331200315861245235980172055242720389808243768441864264965549756766989580950086674343660397646596523325115427804704067950732921469258063552644260457514607990484496166533076638380075422005687538217224048968727665650595128024136688716366320073134862502691199506674739782649895954796599499643208876893856746630181577618118155366593800981693186585585164246535375551595473294948675799410843099164214245457572616790506911944815994463139878503599203273423287535906606654352931820019435771853041485198934268673121100374951857681671278572225527922408654130282109070984341151847582812058782790022830857055552666603220444343753106467659272172734374720590455552849496938445182594119445105396481043006420682790686986912566651409944180478874858727405145078357377902984230146019478326088714973617328272545680297866269802348338364817957737402937705970436701518467640707670484153253725107298357769669012658563229137112071419904325000993300473968170618181952906361998481955841269157255974168866674501589420012754287705940562038311838121768741234208488024932716733955968222336161161773546354960463191883691050925752347239064425568266312716839502289839823266471725224780034322489844711081247503967793872008547321227849443966286928664762865081447456221050635233230797154675797757920049740078803560746196637450486199513295824405252485758536275491708751168547291749857975980426322504158943030347742887568955708664151159560135518561876919280256768002793445843528984615966718430905955485852838228064739834238739126709990200965720418437186374478863264206024489060376819032444086293517897378206701260158459669167988027714457515832873038242947010518892299150330471273405138113911770787156214787759782221426842708408202036249095655593537229566606104252866067842540871488221684370252589086224714297717484503563616476742076501559785751179845505934412393545773071729609517743683804607122970050468691112463290478740333705112113750415937309793050219019341843727706874791920332482364148124228111894859486694321868427617269060688203168282115348264277901007213661722873509748645049584507066661902195201828424133508946751250210448643241398718453255686841767865247373262539238683277688905950212705237258259814830440506495147263619109694677816036553549931318991834527624415150680819069708124812539672670419095875453974363129574351741729793466112471461902680001383229988046516349261007695174268474783264349012559518537939469671981901528985089938040242009461639854919789441090568844027595033861896194671342638669521153419099261233776741511541954326581093927451923788330737151656192627131623213766917487359330666704082272258668773112899238908088786965396898575170419689170968895035133391473272389870242436253205447638750366786425002690637993874449603295391207561918999373950799661616953166290945948559368427716695800797456788399474319015130229178939334483044628310273248199705888742030007968104233356824026458298284798207656162794430381149778558283901250044781333532953672172206126266738285900150825748181409082692548763445228519196876538374085560622361625802070160318364736280370205230767847143092525844134779916609394353190958173351191984600353661849729841349848536311264054431116658407808946344983893363571194614983888304067505572179550986242953882788344316357772105320271381348616349121665007942069070666648533030133677350122211665587009987291719621205543076716409460850804401560689460129398483480399236682395852005586931560359833597555312756139397650274585942446997007913348949533973148086895703536752585479113162088486956068561332817491234885827198033039668653204710750523115497548912022266120562364697429759985891527274982254674720612125104228699523697986959727755137776310660016656218290618103227516288696792603015538660297558008620314685423532742084278705951213507712721956063984194675845485017769233406397154086744870280115905957895558280263577452069959853600732095323520929862175431709412305922418066963404256877997534657447686740860420536338331850235217491380452840095654126852354042275157659821200168844770322247385080063285306194239212660913251471735824827999783273323603944451248160321197005512935640474387379059953944273048794419528772103431669515707146906390421031753599639463578771888899645524766004831122738620680464425550161224991053024361581345250629428700431497854403747865145427126215797458781007263946519156121355925009282904549913796532870400133242779821990867601619092967406278037651722436983342062671465713956184781845191966909057786197317888214996478996761675314580058841313538809054811781256401298208666892262200166730244700493967753535422322726398573598677862378542627120969645370767270952650306196227416278041719194991921340072923798705612871464796975818285843274374809565974770980629187590481359060333272262296201552314020821320419925891409399646877175313736354373020368355153550191265674399610251239208391560996851138730650396358315956146391441983128221753814357818706904949413811553037961316109316700198796129968074387920935518391202306244521737985785730674968275432210258273331539807842363161965272287032430247261022901579809745300725972976026867601631244104896992092832508460618636967533056384070234427034992882171757537227702384965162573452089705431315480746640347954983243214907072676470951190917948246524490674938123237177203931927058628406954359328084787313406523360100005979775018157232030530708740876136203167977311745351389732254595551180427566512856761497815735963712848944791706306163891919261554567404117796186740398460778848435587499256108557821101166154389694699315261281865174576829312751951150719398921687617643916174501610159296709709403676550668827461058492574797636148212275825157215036125198388505861091422268819175554008024532999130467320483351983138736646754800557975608329322908766038525046048419968567114890056729991906645768814943570157478686386231177282283927633472977595223399004798351366802664320868331401321530014550163824098023379758801475867858977025792504153914690711640769806103859645588887882309428758406927775891754062169100326691933517832818740100749380764592511174074724251902385761673109476185141464060667579797042423778741088925650206370979265790313793520194078297011797664733056607437461220501520955481152606893033124072765661182870582153279671796308121181654930417136684466449342567725777761478961539775391302012921940163950356935055476681275659093045648831740067530214304892524402085977120193134911660270433838943179849503921161063362166008052178537509315965008627402342407812926478830102943147221191808358745657418319118326534941136578547929881288497155412644402341946649420912176528313965226655443660550133313293275299884578783725174779465707020213967995356650716684801921267261359239727638068522120595420693406320597427818041929699772306365495084407019951116387939778907168619739382241684583038471050407386019737498351278472202776415941459579327289157632815959388547027252998474715290383026933494028940831838269195194494153601176312689130763933118290708947818152879831057221530248641508514462623463957118070597239577729360964200057660002982760172896313097120979771594291045080222971480691225839102207740067060998316856154881290862600801092840496099000017168137835315139435587540832953366649127850579425479285957552948878681507786208110566286803561604016204391266371943216694638655266109302025329689921997022520053335843269752476380562379115725022136965149145147922499754048147853419660219146499508493458525286545498414492279914613648873947252545822815681575014919793238757144170341898193434930581249273901613990809762813098527635972074338011484449812777156456574568618014003851139507909858200243086113903346999741577732891887394290177160041939061717047937425045003559151131141694461062532423006500522949324830516431974613905824471735114675852261178222134999382445720860262684823634332688706065748903899729271793307450512469696340744489995540862886463271641281567325410698147230939632040392980972170736748833662708145839350032289207142542020268489905023946742864357848677037500606145267540874432247421141089636091785755505134744992111673577003558832464989498429856549177410144002243946338704113631962864748076262127020293849013046227971454639295374436107414690669555815762980504393710909886345625178882919898662326768232925288169131984213143312950270786925215710126734101439047732184055035636278690344119861723838107452312164245641665647234181768056372715376359663667082330259074083593030202703933279076768398002508766114264540038440517508089317395308878352290153595068128850465594212876726340823382179511157890237258930185160545353004323982647144382359244572752051458561698775761914831063851404719733518935578913696192932327822598013268462443140744597725616015962160250002678268978429054046080209408850776199326343428697394789407286971367571561223938764481292706500398047087413376289573702103417942973496518244793407355027240032306317801648515907004483497831549551082879405596495702058759157958323699434552243151227779068036119531051158314892273118066893425638168916044313461514555814878556254338206311754357732489306916373388820967747648430531996574523547804832999975109370515008912302667687446453366708187621506507357301876072833249003292468357210548278279798310916624086075297011303183498850088584238422733039140722615136409231534093747322869645011191855722529398532923461753744016435190839356079068736852650618267702332029533640542942724845482896255504474785339428979129080858841600861648227837020839538897496821146964534868100113263393275583388874369473482454884991396227257201558229898193638774190898652654125957250910216651856361494780944745934182864678062851613691648379073375811407356521376824392652684853241291127079436861597709625643538196880676401215389587627901312488130147880172838337143539955574995704157451189420316038484438200265154372951709798452355277119225847080772092599641343744077453574720269156417461572687878555033621095556314784727530667524046422960390358416375433580637765288307965592790606853899801285504378759736345210657094172452341523735889228036677607836836323559232397110622176455284366820960047363894219110733944084053552750534853721648499949371135206574588366055192361490967500793392763883244540292083196422236107890346567843101255644971460805089876250539612426761980266739086485645922482284580912644953212101934478428899471104399778501539279847317148722904085297471068354661818857474692340075519724359083912325225941104385376532607027679678449093238513997748197301303399047309068497940598786398580064110808947104613960090067744702835431303789868404557295511418022208505501652657875111314932947417770802482521627978331224162520326240698422100156934904767049007113687828797841612058162426272451099670414895014836517357688630855904356981432749672682482834728071271667246586031113990094061398534823889429003920590107788774510671358802807017023507666235557824912426538200917885133800591986188338382412306191115853768340505547957228074049979101607574388235460389526729315987927300900301736287385910668608703074935432550939583278295344609193733338276091552703412712576950333548372200875219338670612383611380536945967640261027177187809079795833168609094397914031038840075817873377424057939410437960854531657251313006236331277883625890789027615282673230899289761073934694106695929671919978748017753391396270936825037525601212063378357204328799892028868659028338474826996858165750748102287994395643814552895987556288257969632282363618462085756148666441212910588648356775064363675024056859621433672008810636613485297071327532593894745844699015435684716632236133723013069203726265441877359663741089917721675013139122982762776249788286656514697391866748810094332421224603639389864917759222004181574573521986273425296102486735161097414331179706134328911106571268298503667112415463038772311320718960513350149935412833295227662322274908532778390853799504123321657082021469656354272125516197623652819745579709981183251661421643853872683959457170864140596037226643193756502182092127001247481598918675622915336815886677873057488037505653802718289091467357471111383557559083399147683682569498908285628093163547916817833868219718950626703653936948508472761101836339994827625884704422904991938579418977225326165042686196772705492542884935977487459395261051539766563713463460184234018111467402266777966576035804573426884596113318147034877306042050048971771254945462954217026258218709937706296031018465529122539616949781502733823411639879319890014102306280395197152301181399902034567659777790235245587611744286212417241969787499911226168632029641295499382485046072798435478653316440846677335616767989372172642041302173572718504359048747440143446848444433702545729459674993381951120103209473118407861168803466215479044255863146621019551544526263684900517304693447883854460056845935836509100874573526745798392418298859423899151511548195661379524850846454208806162214013456914923107503092635402855751795059796288878025503738669385366159557835559542761548723813050732363971634502308557156220108072299760886844192176538359536060704053985026778048113240719203342341867942038546658136629285020971007745574423016603030309024341290661124044048321544458657814365341683566738924866778845463926118113831754068148303641132523574418802598727148410758225061102273314398134688529095206714356780707223237166625464922382944177271982853804189974645119412218441623918348691453541683628907143848521709981055260941831337360667990637654804926147447376977835739044672515425193870971296995370181940307585312042596050335634483571556137609367964590361326525196540672608287597816509733860304815713891804087096393045466004049008402137419169034997665885316581829748582241912222293428187864770709552385510797138189978421167927836981372042425496996442061737519946954926842250398182284475783797883937779184821486261691025705539848753554798405699562017021545186594153410226528324887012020507008533882165772156641092802045276171796562127051866177726663676624619828448446705027266078827641977117945178936410620461295042054917722017326070675527229212217578942559240164062121217844281739954922659503860132524058643452881473204468904668346387209645172020494078274768503576884022967935813999805197465972510467413464460923531889043305329770064108843906654593975854409002229523828626959741526588669703241333762095856137200425132742256029817834217666545826352133914636628954321261768968439002478900998267989035263846908484287237423463327135252738266415038096940875127132313088617100212878748115451790367520263989170452665466852754599858481159789131066581931837616870679213734435644781136053735181317398791143277490036839967234117949619724317824497274683439880848596409461282589865839514323474056442987983214415622576819297838680489586631490132729740995031605577616056300954535989157125210165251317853761053687093356448650538814908682060644225770722317409459844034741015034979268349417283069429545024354834145954211326797128617382657924701935330793618394055009106082472978844681154081451924569950206858256226801709960998139917879594963215916755636299607048075097933419250901146400453852722329062355214447177631076512120804134999143074293705203850694208043054283474417904610588739904365271222812878241435309391438430124355843847290257290521610284570859060679215616136592663523604503762601251308154225603682910468526471905364205686479940484236664602806043353535298021559593238444293014411512195715186070383185353517622061684815400081675732019698810928228695417492875294784772152766864164496432153034606680342159518041724662107309500089266963761727218339345954298600399160440575124365697783882525727342156291569445318025808043308855189956021437558340593867630227993733876445419085308551424626071245671339028056025426053882195146435181773552518295345079703744640340649425434537939976064715342517842773653610849558888379863904538328582823820309353050184593327295308070500176844479476314314230774600304794512789155334488652348728186805995346160011579663724987074394798576777424782865590678887912170481461096981614414481725566471988815865964026459111852352315839723023755843843108271415436960186533748123719816245808597675429548614577918318101420684837486475969319753984170281674892990172634213958866628135245822613528849779103818605384418202495786002538250416384830133198805502829945803606955711157618076621456794406687700575565335464048994817286807661878357655915008132476223498135777428321003519100356062895324700016571254771294648597566060967547413604864228126659362348473574146210597904087810610587671026868002131146483666120488642856696460304506262464968498321348785866960771692464561548979654229795287623826291094975147504779934682814399938881619344740221116567506931254923563139621048898194031359882957159034774660157795268341215197086361878743496877203146003069655749346803415771981257354598107582455296729479962076932151413779072931854636958365373596812888009017102351487421612990914363122890961327934379130748808451295927804204752241193775850464088266720489228389151342632698179304489206948909065330431930374665134958202079898216940930855618266818653546682489766123455156749459182110448827759170474451331169344684950179392873348339977250342027820900660174221812254488349922385009752749261149670243889744065028137549729444798614860233912970623971782556738804924698511190607700042905974645939462299999453025769819927168096596484302034492426725567607914416461260889310167460515064379449360982547950992826593904379303601346341851767250465214358113480301269402650933141536895173294527354709130475264240416281850523928551313545484459542992352527818206717698713249229641023673380786328677813583197410999779053448618938893890747375677601876261631250038774322017393328073295727185864171336531038550406041105438582935475586478332853888660922686674337863684727081133641296224916070674480804120399233157227429503227120909475031768315010918674679330177274348800612783893386202030109792572596064012645272224347752204690197345874099373078561607090669638862593323303592091665577366870211410910734156459330867529535331829988919295641340400673389370074607102500012445622108611246345563262710430720571444886971239934478996617609359322334846642343087389427868113284302393489937563519281303595346557096146921431704197923702770549769796206522441627779175134582316810998489329892152192898252009635471632991355395478754254753226227232353491377537209262032656726313276699185625269137306455376937582131471945789870974624072678107202536989533086857805988882504860727493209101070635582008879616359263116666203657720616074081542018427255792563099109079192107039790360523765541623259366599400416297132692613375907098273973204100098460575346323886840156200975514484239717499586310552897660616199454342178167400851768936998160850500101770167732366411999311334850248546872096778783756330519768829193811978965415572176581643281255700540745595093329183236746445417417471709421675514916830139912644907160160495071050324001553186598912362291859256122522938903436344335321994689725036256719616857274198243436892242879169419414911783568269040422617148320603935777377136622690280956562482729979868251348313567024274495435862778916959645912253940350586338485202529992369243190506418593061101713234728140770132221866135026364637216451276835441952498826631113526113883094183578384244683470856043280345863502435826063409877747279250085168221694697619050164931598861335267166672785468918576792698697555392758582146939893237682793218709445048294101107666760453147790217947377367244459169590469034033503291687316379747734107025240504221540037017813108016125699283099092164253705743208416091179145775426423035306905016379662856222532425999600961202275665332441382804033442587629343191795051397291849778910183572048939495193258729516006816187543403414197572032030085783217639851754831990914318531733760947925605023290444637356651045854345770966485853995924776451153072700187164269362946332811519739917794923499132032891009020674407847097170034358154419261913861333907348013677859996523563356000400931766801738560330127884584760027535430675462657662672064251841094391865703357531881880533123360186172847541533503879389648487475452484186258681893854053397663595609288743609432274555578650417866228545703920460546207643027049798649822073990017542154918137205730905917953417761168634958537901812019979360548153586803788898218453845185122073431453299064533886999973554922264939681016943478371153666188219438544726399180795847092267513338144549609105649188813295928466850801249652979375175044732016574878530729840381742126599817151777384596405217521325050749681262405674218945001267765242457691511035540327152443174253953271206549128800763882937573483433557834988617543171526642947244962740705242725193003175402702007997752329570703282080221453128169966590111190547647037760183894940139704313080834210214368435497913668162047407107368507171762897752485047032324703042145377310674097718142140952393964229283584151945629013568321853010529233280082562906887113048901796741176696103164892855496235666954501020796047326833258688517642938303595718325103098623807695952738347453394047646225244473303499744226388529750408934904696643089045670813273930901066715169736398614472133185563665314688754447542795028928984539128767598483450208749012828192518735073268666987154538699361097705574525234369132721059784270388775068526623982971567923363812865925804423556283567376837916750887995522602649546026397171537509144531154956879033286747318742256096124277774916674410703724271828544116244256070287212979132739145110430073328414951416335217377921306872675646827766415572163327505819316184960198450859317973515436108025689996242350984108386744509298958583458733660908104215976460459750637024150727539994092409755041055653815017206388234465257333197223537366813085529582020969539788930174250014733282709037646781294730895361004565689782686458077780257881755600565482084053972666873962107187419684943588291117684996950033355071033564146496749486519946938247099682895677187339405022784632581810391934238587763912794344253898739627851338986443252830453411016930454344724148683501994037085007267166409446258503064825066097796429358775872267377840036688425357203567528228839523963482690971300368644575390089335957157839559682452856788587724198357138213143721573209842589740218782296540511958905685082458106961505511100731229243368982835982425737647742168142395417988981089875012189500652904657688077966470672898159717622614059809082046759356346627145653560043641142509057653538070420943381343829568150536372213521323228223815049424041988767996902323747620721825061378563706546964635417584460082579708721272203587287111199829599866621943369498792209872843179465986364781101147654263401661797507278938648048325419535666475669757963200397611384562569830781327061472726862111334618652372968476320109903615057608442845989470291291405159869234053392907538724272886019691627366339553254319324891912851424138526880415555354780841996899562190846180844728369533271676030572299242172200674942792074669511431669551903069071216216695833121347091798215178733130729468172615748110652414747985764267442472507426833887493351999412876383092782128833632519139740342147961625179992449363139392476759869509661774140984919727659045341282527791105948647483762737308429296270680611478319595522319915350681784106827609583489484779252608068064513473003765036130486966633588129280935394166892973584338615905401306247920322864170988380320776768997251439984605575106635471648918867574568446970605775669408965490737007267094942934215697928003543170753850711395798068873858065032174802200172447840222121452103103421064463063685097685643523977304655584263710141154217509133896681805145934635158718452184521252558726317690592398026081890579852948541468979399563127589517050651431317954358674983477079173642238572340825231587668544110887604572401321421085878945429211643021474317596714871616463836438905160522348424035417097036510241125932746979647623539608450851706603701703565252149708419420453588815886168421717792652908118375311685450815454156753323558809497983821695918614382345741815663323303692827639023802703729436841543821595100780646640625257292769280166058999696646435073305964761441402903852115813211008752447749242580891398560706335978277868249880388805063906095701621766936073048140666433785445880515037199474767117163702292378794343643738741556174699882033691999465032647017968422055355242484061223736037191839075170380384172263230766264309519157336033057042512975347286338593639081633619022186657561888583076813766785373831383682580608216025980803498610015458658525055323320177398556760106322033505032704000214829411587146462503296740550984107322962713247225941009623528104670469620793193340848627905317981519433504687451019014160122945828806108293636480118321591721648134095270496789756705015766176794543568131251921621153387529662316333367272546713345198678758212272603932535342042081954205271204157161487088926666868716344063574596375475583243764701370741379342747042708538713595359825380021533273583797157807301833455771150115611005272836579776704674151665617158116035216977845559814084686835214784576866346934081538793272032128484743587471021849672543438773249967380128972768237205284793658833228358531291587346629600739383865239287106340327463656782616437567694172184770320722357437709876071956950265877905581688262437964016460215511366748038821947532314319346020153173533022946012066651778453773871087497348652510424596909807223433176919651948107146366701494200750864682972312998594153624329914174430668481012845883360447686618707995216237478998011292939889877011329738639505178877022380159450446730313781233317808733780346172391127029079281257686786195380235580154341680853857791191813213490098453803503700126371719569515811222057738457718543947400141826216986834569138717906233393338150664817831433611597812259049985053846957985036793253660760998710030683300427460723053811819369628473022761478775763148837093190133305580386283958635018256128382268449495691280128711012261227193219800250264052567376883583754413911592983873065146410312425190919226772728823714944918703777219505172987929104703188073560419530577493383436763176626032287361309499750446143650728728413772300417362103251539071762953242277363364025982083487228812608173459072674462751195050383364760178232307719756294107799274678060019455253803570146942341708531339033496093144411585695680581644577032820340545384544254946585200870237335938774618694203934055571504331222500383409560167224529310981437617899164302601681085632341610920437392760211197689770277826815240997403842478191002757205145975047111203458497417819053555911763380616558192539128700189496696740129905407799293343924634484239350546996179858412884413488513122139366736560384141445318138720658866344311358061161914663227226912961718122677082338845173804537277644827647353030427917878653583796125489814234499632174119642712923738439429254798211636430430385451682799643107780305361845489066389430437107671116569102135090781103487066658176891423644589697232475288287947477417709443476274608511463668147240259221293164281791564436997824747936392016311167172008913970984010613438626623011200741654759129046022168425953882025743719130546765533467908319235616028363151706236747786760572765469397761076510438588836746026716413021316760462992801798340656755019816914129224696441405140820672623622757602153085743233831218104151482949583539257270989974916042254082725676484272269512775566802924137410900137729402156678943439163435512169844249093685293607278966893185822914547951976107659793038816225738304315440354125933254625654794297308332873903743694494199047856129832386254261361880052680478928002804806888849506433394136668343012703000072182393668932703185262024745461083156216261712867378509301009439924893877105078140982454679090460845216856684906270512416258107751638059786365888366139329018782078439351664988452517940093079773555947797227758729883388125619136330820142609507575292342603264117574744343407153296557423008527754860431670180348200674072786590691405389087955617348113834789201794803848534035753728844051308076569185065007762605157339971302156491019514092102242294929577211089394963648735766283680663556023833554467882656623377136072627580882759469724204003056320216547635579711747380707656048688253655935286362521640120871168285099210824054724326170737839534979459141460482126966357380871433485382956321593714858651192504927455258348379035992441270619403161046272229196202657880453225644452321517443821973813310934841098039980284445345257441021574755329446761539342224530556344638798011033072280395425997920851399609035872060158466753287757845574840880281697070456064208967097481461992921105066753650003798691955345468775274531773622569059629946026401188806262312015575935340499487009806839917127821273859651831178439904632053348316954006186493623132709545140908105475687740503539896491927598141666895079983710827431450424303499809829952909309985754695103999940262833264215913986513830454360726270938972481828021385768934279740693720792059143862254013231677090754751870339934727746055723678920591346967981507265163175225247813985222118643651858624070684498016725470954464366524776690526839033058821067193376756568544840076710537253337889862238832327059794634987461333334120499595701191230652343036595204305817199566434832735488190698571224173381764092134624809322428419471060599351719547096088843092521733399320611212831154137938331764654098094504970984176185995859837210725444425410780656665524495684105204932217148116302355605144281766200403839485768392490568123778952315134179640372059874135830453922133875274212948258517875885251289118838214612006920023129880034051664029710981757548301398858994313130178569672811289647147181035417263827146842306572522826320231534192831785674472332737756524460287899665813672719180030991255637662641929501723285005945495701577837369597326844723479920677650946390533287448494252605016395692777389901163727712333411198208132169893103766821361221858469099682143764547678177943609124665129249661522555763129439441903553458861002501763028125980631753597962059119746952929517593943214241119638141757117878175103868160705195059957236610172393838273642195079765084686280357676502410406171767686052639862274330259561599492748055013994833751680626122204075415877225674107531041169211492933347338005841283688492478927967914614535198082957085480401208724723713358933651694542810459858764953049975220518551308181535381210432669360216956874428114054434154571313927797260086676150760946511530831937488210478529812623740593530504927813179456828548805536338786647752722296330406658490638408484607739677941973606359407680940513986302476501682415479825524334057111618770773075057125918062618624838155437988112239701615393633439856683389307755758597829056203605570659477597805370815241122810171895145176362827012423262672196019492824896174096917604124285621983247022742787329402917832937807323365861955980728616119454714692647912433562786400130975206907838733654138099036743812146847665849822471188994442184198904597504550442725585132773882289751382392371203197628626225172446710254191519739787399330968328012995174825171175932017478504780674932635765431380015097404371387390818805329082861893427473479037543561017352229438577375138008378558405014375654968903215850050510031484447902227684695156291054681699194590821734228293657671029743593424508325472625873006070985412973159114200457533720589918342125917910073365188546760485458229807192618149479996285244771910259009044000553237684956270793763225609730535064505084044367467392668735902347008451977301663652573645847213189737110124433153275919428658014237404149869917925879075029138982615198682287160751442722841856883173612574824999718020205250385834668840848729149055161205774577349730619389575575315275679089707611758913550310131289319035614158428507596272705969552089872529363356929931231151022637731317562234515444445829719558600815332499731464482092784344197549651465853156288413775535404381310939763868208114670402342821533204252472966788304810945964086074596313402521667294311893739037896897548332348474068887026846412005852278633573026092556104244966726342603868425664995113847509837392141019413225761992616751714906378343011170808269465737605014511203580654224672267805646671512031236025239218706166380717500911687851712548152925643894375616635841811685834991394132782834355638354118148915830266025113393648710029018390236827407031286562718632600647114594685029995794319942456332496300817335145024666417016001366112043002934598872373324663267839273879540793118462063209105563548556059944518864673144978449141405580423502091731960640135319063250233275951741354829869204533486278867736739221912527408941759986615039856975878891142957844450029038331170776432436921519442405516222081904571993914700721901391437308228204313413523917133836383340619445216935326652490476731840149114528010418165874088769806522484286159191251098832545533586085415322918182456768822055774483089339793706779224287290487293509823839489585056736661124805582839752847462784920851997318642420291723977134740850405892987385151036452860971186985897408724916524167682984267008383346881125600324018039195073949634143684122039990313738978977669517628824525415988394829133992185341400599619029205741913518422604187144875884895982454517515627555644726149715966101383821456977314910946426079919310295600551632418305428052165084091271757561833029095547393856936289614829270847828595191934418709524419487011384357587192287886676888277839594159203975353116843249045869281088746297105241645043813119661759032352233332113919510571326708999904642963613017338733448563078192756836284062563695406219202972689387435152328018115722829267236600112040685406099635696125381433494732490423584262035389031123011859535994572044743629525094893665237246685724401732599789734965324767324962721297412835731968968992444910115908379173598290081741027977723827620504087747741922175984954905742439343971530421323633177068983143224482572634293528797233502815069607554981576882440886295765784856841835878571756520719218520379703794524038230960159967327777219734971015652690193816059871635234744191631467637459767136793735008843767004162650097478423720073035782253353872438872111726775264387799846816955096631866396451627951047958238950293352697499543791292136455383528855194237855753155098551645523071663682480496467220036153768744739061421834231869744141762937914066288947450376355666026963893208703249272460751628334341189428770922540287007417295028317057174261135365909700705402008692695626630821346333923919461056489086074386432527325938212182014240799393965284886956897622347062790591771369017220886642234216709701409594731799396115296545046100107725474490591029221718578126683180586046363909269168172556756845822119345415509260919005243750832544152174821192798471016128342993121149186782024320685618405878190172666022813239872428780499493266289772195748587893278311432146050561692925243539751967443069050748466671017972574072551312365794365447355636404973864980092245903998183345604270902746355455476920629997553039164214832682274615456115994176650171594309633374009839840314332852834303673419066740729542309955999749407768952977231289155899297463052369442911710653676878295097449003349233702289695275614446422356677151089900794926720628793160713018323423814408735927562109512727106542169593157955145686540651682056065804361867460041599968087156590592762335313600195582058232566367262879443433527714986435953668994822650667024141874710310617868363951382257759487947796533022334602722639522217776569788340637898866278083296035234188150989602619312177324278404070152554308930672936284211449874113237371430090990191922287455911093914863998494911130392431748427165301124494072026842336358002135558527571731034699294085881236750929986949772651615024135615683335945977521591981475630430302657095053015604705213891477255918090487981205592032687514860491611351002261250225304350670591330164165709784431113030667369424785669388641301576313841801458380019766268190047805788631485892831238011038556870718890165874651706692005689997415122933585112964220474992838707663257535911031813333133597699195297448985693394855881713266932187924319257368946654718521513247757592524579830467472871755468431598975501785955874694365678542791583540070499189227880396286217324233872251586393677822462441201170792323837246198269070878736303577638761175432895209025826608489119057552526294585753331392315982978769840621685978993596022111042509396436305308287534098907344593583318586430870008064230436875505964209627112705085451358395352430227863566279930233443948859597720912149911058900811351178590571549296261543031699065251492623075131353776645787848732315550645172764364764679884963576580184912177706843428291854428539620670786837630863123503992743851473067536337009006389138334781500129247990983260599207307373193027990484833330244982985397314422200430414934249242373783998034779260250006288095435583108780636360045903532315968775883285443389198569707124379522809746689182219873601956065007992341851617135072773795334612711789958046850965116249164969488851358999479936307699524912691373978687993137118706779322755932671548239464385619007212718375356387700397716890445754494515455502547363847674228236871202111061794043423498176654292452059720295844444143374895368581152110554284209259148790615822728162875775158369613384983818471013599026574725085616336216195849344354252784531327931592639025670473768379285741384983438050899481122425836793004939898561875937453981115913397891063807250093083125026352983210160693039046945237691999525680469069849929193807734233890326228431013349580639765377618545651385950454188427057638052940605659164153983995315567477578756497010160869210618526881288879120763726791424861688034300079189305002836317215541880817852552111038348928455449212500366963810564384341355245546393557825760279522256220608703990123901476188588451763424996321761804538521105027501764791578742834612783221893776299433541210962355231227775377756337027155924844502486235097599262777231197285260535442745170999074230069484476542693377759013544669178568191551048338710472203048574519484366883510263384869093048343076759787330510572117954363372031671007242648916990880294050427348837087284105510506343879982492861570402558423555774896401469726945950186167803028334098573505713541576673991218434943777967811888683279990104650002172894081481404692868821118993394337834151920100306941358939996127145528309275315056703742219287130741926966938160585680047785039250899770734440260317983021181160547071421268506288743333653191244069200827999533802667412166596484191729772353454854216980014876971791062213942195036287390698980627400572915190299508797358029122731084730298645305966150028263923090538913144981739844403730988757666137981666538053837783545558035493452844436195776382682088812492816530868777908780202435879559334331221528036721275995480907475246652996434062859793032245773551086277934685816373816497396515076023474681530352617908297731753842639258514096368900096416480918935061531309682612664735439443684042768710174934534508377827019526804562518811566493814135551654358277851306751308862776948982577406303835981347354407842685333486537193744881806178693796079642731987219558832042240029368974112901390668821955130898794328632379803908807576727072037045643356596820288736309922346729720704066543773998549068787993720344986299791344779123144268599679810048021183635163584206072384634104390330333543482758163541674154417882035475958305868772286732681832046888352929017064885980240222606249268570384558929065201511919462377180319001232472628544524944934794462147391190946385755450522395675700824726621915802853829364800933715335414232163782828956156716858189791477319691585083254039057447005362927542654131198255327469796406945849948480547325398661101947547501911991597097765586997512982554244989139082768412357899304195023690657130703921881570221107588947370226779014617098523926678462656639450958404294069955378729848862860124479151652939079774479026217518126214862201827543401531940389818578042285106088851644432660481804559765012963748403428465066552531484941330885254550083444617371165513710828134554261214091766623026007107124423502809259793675248343241802397096168396502646083770169184406761603316798379464038287341234347021312177665168880015327648840811461860426161123414178599600199557377935824982125293104147553247339454258402878672949130759176366177977608358438991744872983974939249290423683355800265942704682319970687841617611790710049943382994088288028025710657845091926412264085745452861981613791041094367371746033315941720587930391434341317235882356267307797282022171273699694699103725277640073001417862935161728052820754074114572634667304213512676388149496452592081755359663785389050725968034888562300008980325145739380914369386568573727183885296596129301018007628211777164252447077353559886309012298845883599183553175004692956833031310840432994217147574815456860445767808968778232629055034100885641844372591745371875811366599194619184116170820982113463815686212498523144345900244669110166220105836304173472079951440507037476089228026894880751686691425522683389994790131376108950026929710786821993440587510223754053636987173755459421338768255779154515568336334871049783660198705173122598635597226974075800788143562334593872642148113831072920917381551705119087129478830624716476538006639179678952077379903010372743267232079312348270195901386542085870401770239365470297139186292875618740626914385269788312678782777673813944466905424724023756151854721965854112048168344623412098829913464921080855704662736643634463187082821926060143198160734094262194182891453268901585430747687238333430766058638509992486574233617582000544713832067997439908628979190495397990307863616191418017156173736114315854964341384699491609135375203718881754113417672113311385110924376999916378675987266128292376775902291190252698366845498532886773709823699651746449094155930548251341694015332862332269797366714301337689940272413492778664941280186910327955027136930065645101809677637776929266001957400469004490522194925909341204181285780132753782638351056586724950501467413467205966967865503266986330732344201651192385271181302450639809099888353732259171324622753111548337436380920236432275660453300875027713652352490554911628639315851903323144780180453871779386617431510239674284139692398733890532318425136640221770686641090040584429196665026296296621213235918083187494116576002405354976149732964679055509888096933306671013182048362036903266482349273787271039625407577566554535072575401853297468282516232244332709701501853800537790419276554405468061721774522232446887648534911098469432014036441154879494651983459419930014956048644918438870002899468575612675779601222912287691431254344090929703103883715526307616043572938833775066072900154045662425714364415646214973854087592331530119011993733455502297465188005865041886065904105325478579632875083567170657131434769451897891490996578373438800152116673681961820996565993792522006187625162184151658817734657503706012787871980510516584412690820092353820671190103306047207854177286066683780140346869454288819601045024224288497044871056507193747167017180723527093969713697271273318151599033374181562759806809858924516404886036629013492383536418835991072469239529357183303756724058340008994900676371350819890443824073950806097183294253024250454511866645851783066775346583099857331107384272268603563228347503766035350790306905717740354189080435521888105002194834511646911065458249110098280420460676887849480030714573359205859946083525143198870684563782289541245784728143359770318651336242395653933460446861636823620148220277690099359170596299750659844102353362747525359719800024929827309022450192153882875749765145735495469850956648779087976493913018863949285620675517146387270455861535294648003656451606991917025122839920092345773493368213635394284199303787286143523871532928615177247372388686897387566768084785145887902723467273836346014608260650578795959228333137718104434820226946956798065170260849737965966833338334785083394724969990583670218673142284302841364413804981941444432680815547275668903155979409585255515800127495594322830693278374011366588281594239484102326664008002886823712181177690652855345445063975265045753827490003972322860924382275313417443344526890151846775296364453883440560802461730849164912445584390890034982584016943661221813767222350842770116614428340334209099263339856247384689883196546859963495378123614255109258819365846710154675395965765208621706473674319310207118783938817001466388421664416320207355777778381631341935106100446695167669528428321917380639168578882083363900382006986778678168010755356291079813935304639749353865852241225319816712845522039722181306047660739697896354574979926178613807369094580634281295915664958376413577396579171955835865721246166597565837621810902091567415966721335641721297862517389080022070797816135595438518582831070310345255436250969567066371265965226057148132135575161307943268819131849150704176751890442371143159378604847861287451328675907092227532896804218812851133895688860194900380545428262786013935222005677018861804657052762190655552090733308400781798160837923996379733182154018612050911995958227815471704695112117141688635680750906447086677272860713106489252779914430818360665767709923563061877208041781939733495214572147295906668894079739238542186217986289249594206988511016663353343770422847574413883147248336234402566786267013438984776324501468671131587546546075381043857596923110372158780746187451798621932652509480375695964970087223855156644677281256242278807367355460253854769943680622477598255238952953870290634977691632135016480622032095852489729128498911854913970395382501586156757147809062205979379464555256599153696935934912478505129758574542526665752742266153878058807294498199390377782135448129437378039781178702505180462874341939140983858314137667621655465679261515327264633368354879938670397458269886012796224303989039645928622591234241423359766687188076706028314439627557829923143553204189751666575994661070152358220548578128120234531723871194167928878258962320057864541261798042304644165215386982905431961516783820559074411121970886727348256918239266350722726093708583882799299345393305509095054468289773127736968263318373516441704509002007739619424283774960170360876002410120188269383280697652499318229827750648760900158926793072375403413875037262548753912299250730423572863129647391910932542236484858446838074767471900537857621301162694929565777117190460220065789406885147389758515374466790630597708668513410966685298598481973238703603412258930598185472052856855304479999246531762566749690998631393644317077514166938288976568436861663239236725008017374555935741720074849317984830940407959706322229363329918674599206409922327597808461433112527067046167024407609908906168828160679480567518885300840205938965130272167704685053923925029067605024287176060288073611914856312121048649482808082585758161620638643853444139800297880499241626044119988905029153012530846016491429247364788825565252583536661171077402932358597381148777512150100072489973988365841802828258855096324246912769408245096347345356096002824823715889267758541263845694359628504399223108389724601921875586323217227797772507760093107947417803313658172757448337757087987637746390518565831305441484803801243472001365785700571222727979305577476358860992934808614100641874444589982075923454611642191539337415955670396541978138207825790955661308809974511891487372782436717693736854949415020852255859330509609214721835605285282755501092980152973022776420038432019827728550783269916855497404279932928430680568155284958235853911215458918107968862441970892256047130989644963346929810483573468074742827600764514404350879099446403690258672024133676524345540246564271883220157072089961196141995864627916108388144086561100257056756379884831564621383783864697703358911723359942175290859245881268540875403506506372350011102984704696655757861578494481454565779675177253708507255360867724742072272395106034014482672617274870123665258508088984183516327798641388006363283658307662762029748195781787419521529113010460529023268654607192957474169728675723686641933363695739316999616866093529571616974142175398452105944136765727678969889088262766942582042047494334132881084162336873842622941610317462622041869781121361213702921260162273300068762335643602840952392017450131229458215175717161864300032871381455249832450197886714977080906949642388647976251861024736100610517191279231340094791965205917855126087828571931602795299485339629702131309352894203104622641616787486222798191988876884910697078904010525789263624789732437714401792703316356588799127706749008536255855847235419231286890128400826121689873711055320229433930847457258794342307233415974849647741052242298761112034263589652935937572467863097692675360633942164273995185272419311614798039223891308943266156384145917590112370738821819130095715472514111912765560127307761633596150905428553461602739120672226310975620942742552647207009421398915363700764791339412693048058087535381434557006506384812506197541401259424203533863569795210672961723033727692202407234197039129151031438156128978362141547201611488326160209684852624937770851138780004959116676124664597592256825090580840566305362994655773282494406118093898840643244668830509700272271778395619354648610724760369223071863857925561134755379141647178365968337607663228261044052228142422637485250599084681730938635101300230074392673687835653718742464100146407830688863946602049030628219172740099797904302277618360237448109001566646740701919212663247015699867342039956531015094597341996292659250865636172307248529396379678404453762946481895981575173865342307828958505121675825856410634184249056617332646085785896634892367946074748711134116419091560259385515870002838182192377343507628135078396428843771229686270076612343244871594656897811552404031415820628725037376460329798933079780581081446269270732480233622437717447135694993154735233592391967475886368170689889019462161013440521728322784687333333877630557319383386694410449048432253630364989490268864653134144337836299280045231322787117606691671749832820119097062673003986462165301669271972737733535086563165715988177119436280593440748598954296049655568722539834002299936630944140104577037672174693745854763773405660834520550611975100485562103097440605550414089731627910725925532223991126259074597375890261149831172702644338022072825806020989823842719269596700749352325358736949478426337394350781622943572791173329689617633699753956586579655036149297296570059193657141345495786158184322160102676403764380552703296992678419230630718322351096914647466225163195686290884112135690096994689299712798903744473980193111697992031717866507885635682401231951000877173237470614357169286003349346413248891439513741730842546123074990377638335895873537721210286701476544312292093871679113348692378999595547142340175651352185186399380797338820009868131186449921722069277831742722838022737534736629508700382058688460368145992843363994842774402693984900264875256438131281926450645291459283780110203114313463016088040194863156643116618120754177310805562022705079939154737025389077089617958604358919924429985695581436686314755436208586377043830803425177167660543165626203253462807067151230701033681707036005380804940505859634283968454796104487488069572151218610415055073674324856187196777452929516416232793114435115105134499656472609321766345937529321200543469531214355576199951843335023662749369940994495132194400029177503239578751448591021766102793324254990157033470420581789699626172459675372039280439103311775465285642543256264816615160873866677519277523303194161366489103522120391459144237936264550277077593668102558390390328841860965041217142489663120114222327804016190994513909615019780501582699910644579951159971850959846598018880940193006850826773831488875328531230669614366811880443732480547329177802792261775255574977974201365298732926580857158461239305933197215495388635457712247230992103667373612334960981645381987716752979910314375478965205964385260214339767540388012016937050551618520616979499476723124651668018431702327546070150318003291095731033079892347357455586153613881093490605648490403202380415594855806563881714166010267613129319341453840791724315802387129400160819762359878523269053212119653372680308644346554940328317911689301236976817396363683966644704083206475100044590218206359803377367099473615437156403507423591094371324141677185839390986912143364328380480566055349233504265640237077761333398497271313463929606904881820226986467925563872258127784571143487492021187809351568999183099960884676030825366538295416676926361332778630196836412424301561465044970061611888351369294463586103338384773448242131164343770394753875122465717799867067428187124138111090253990674737155668056586600928425318666400346131263647976270382550409314853029439685096561818578107831177836576751288717931078745105466344672499509647810776749585935991501644863237875385580334350301759507006224179528624713773712634203646668607815050707130960784684900133060100635066179458132785463006104232492683546208457683982676969523542539515617869089179884991569225736119189549998243157483978442293663529421779971845383673089735192243627201958471375670246665094257708288144135787061294866950770770889436289456402056439916106798094444138151537557281606091821332141872599826485323473338049332218815624247822326236425676094532918315242233299675618067493346830787103788094565623652727185931309579057640308528674526074851932041156674094381761767058248983095344359606700144980935757510739552306594317968652308631379221656670180938394293658274212164521519015420914979359177777502551230673970220973661423146740065999236006767134933786047586979482211103975122709420034026605645154442548475472568928645968789629322157356879116175026397302501321782568836779629492144436093601941246271496856875354199966346967521388018772493001521679731577305797623740187696464007078839727501646652523701428276535466059780321090891728153609614619630628543305577681323622300165066324812199158879126297871078012396170162314946644555032179501400690775792636346050833954005063603536465574226697822514397035038106943618230895558357131975630871807668198150588848479105556760245551280609451179062805920000245821689352140094114740822278678688739905118901403878606091655636272195188570753201291557330556463732903828135532851519559333755924581002153784155331203004591551747595775254573827765417540977035485077973930175934493662797349993275243927333307475856356847229934188535638733734875828207421028146364091697421533988788188165821263029240331224790486447698168952581553601644396547798435671767298284995260838244621332000182983825257384435483959157017383270293498706937943401860862514281190309717285120849496926671568775670150759702520684441107659283826323050233496956455880840478010947700475051353440395642629133240408678461873528081815847986720162982395022596001775750695622106802629814071597256703330462514823618659297914609638351702795080969623540214143230819899872199666123419207287046837010939498024466760709319528900467643611618974351499207609495881829250237337055014649625969265980280062803418837367489498972828866805384476368858887965430836654430313141467304993711416015014322977517588532789370573859560234108540478348274012248321336125951378997773715740989971198099368760762925119960315547736038315969931335842190356108154873205466463336832414204446909505414634087587698120372796275711285926903621169773471782454103501433086543349698510989756120567344561701908319216918742041828440835674163266008919916622289989175300172099578774362775733136685334491171835950305468966513664088329933925022019080366732098366391280676751543893521713152536849810773294903773675217094971230254924142524064263276005015719407953334754684321334232005447841212200563976946139732688547542978530671671198747829338793541540626171761162627896951065070772832119057397152676729605406410960861046522442685825499271654123345340491540727753554258534694900772570550717599668373460948716642577128800385084566910239259722059422267145994554383130530728717577314366962196920266732181711593309998249704787960155799123077826541863521255793294568880479101358498499376117023141263634336960615295726579306544714654215754599877928028247884013958211315479090849437698427965750165223142543716946872558907634989656234827971896043261768969168263120083183134283216901626800966077156774821403852930404724794369635234942290959183618659364189762241043144723417937924959157192436496076702123245718945935192674065523191515414231498705891511647393654376887175309127015136340003786100953520478427857230937932448063418286647837512344738045768490879735624065209963206030994725293816261566954225537311527195821813594151030638619687486779125913947815376332207336894676584381555145680317705573328687910929271559333070601173093954954345478891671131742582531789160816468841355975687939029024689727591847154969418436974716693349690301766198066678686925228874456159742415721668363254470547429007211331008883781858415046057209721490561630199470636197356126355230547238049939380328069058811442708756080945567302564644699648010338677222328339058944012211828830892962729034091073441798073550318528391917303826221087718893809355320488333096436897212416834508749521398443865100528555145312494958175618179410490053578709038445198436277616817183346821645118921279428563926836813691932084820041922582844489993731752538560103249610164298092789096254911080762638514716198416497731725936398035018691075755393733968912575673564706720547439355584551315094613635190063480747640956486669142346150889412212771907140664194075075697226295456605313448415711218904235694681943401244254368149436139253837320264547367935223102277311680912923484079454708834113722074591258557752191501440098682831741142260552668824690235125407263316600252382550136528798296277981054465463936592992501218979260275802106681188584933830311664593701023648318614048794790830790718479018961836774654213898672735798830899656402157334709652465627349416240838047050560439769754073813130031079522042759572129724907081245467698980907018058840253278476038998646619393391907542230522560663093316198841840888750416765033315981740764466985665455569856545678382624541056529181708938788536840032657017493674668279196972477206845190095923823947352891966319542199126242645506322787787758270781722748212515326261808568732459700620327307190544538391538022778567786164279615864943371862802203506554058383189296842413126481198224119244966534458661279947430726958623315875437790523431770062604163911218320167002613924095682450283358280195105481753420916392656119951175985160454071374784464797423099425421262272257373323707354129305496390122437236072183990320417217909532947536133454009814588348826616868898340802682327538531869512897871216497728645705888743693691290518636267728279143938533722908629333772621954774332351672274668559592085798610144927150023382041580582779682838904436523519874880345647469010949407475493342594685932123530123707152859424567110503062574255432697241187666552104430224324965289545825568536738540051566234455973182422000904780762039338565061268233765685029017624914006236022376527833710844445634337436526760953410263782296009049329529133877490249521640085671733808938688378986001235468300367152651455715079815227514325279556180269376718125974657366128899090762888689802698136382761158713346036437886292856504739520999276135037275396214309158038558653168395050871034928228890471294132612194496051109925147849079795491836734087663088445966573012709499944951613857467760947470055625646266509661034290948958532153343605970828942519574406411206974793650084774062624888199426356622817675526425622736346019284310647984928856378096989874519516007498197174908244421906019836577298529188254659296092933026289046048280801227860309994538147309860314179103978837398919129406059714726267926691593505698441618220720597033995761174345256033954252438866804430165867511161351683711701758120757652498467876653547036742247957628067867718665304171824012026779002450747651115006580309537409070833615305658010469757522642020872341391140010725194782693183450630958234068745830290904205406101489227240721243962427324147692610727131285079897891967565073036817596305097329017601838891434131075230932215539440679435713269884933139625858759724998811308886821359893512235429314876295441269999669330717998086510377966673843300783333454005956198979220695101330859965341918729035968962091211152856373903041161513866985045844819214854356708030875504753384800188406042005283087819181682067555228154516375563531673315022857774519714848069449363396227000063888150649632374448367347425946722470338617150472096867718580208963540091158567591678162138167696001814241955932078986323820429492983282986240276429890002729958098479233730217353193044047844236753494520992872229536736472070188436168460519905331148430965531934530422921108034469965329752338798504168924103335322509669784161688078359139641446378257609723656741495073815100541540454375612416877188049154847728141510885596003283174704100439985249335055168308716989024100911581880834126081195601307683190304280615025304935101489974680341922495588829339818336734080923188942733832901384077037922506981410257508500905877829531276354384549165847509643470382103484679596740902741373729361054871825064601125230460349647684338284840932391205028803404774596004053217635729505587098777958781244221543030856275752735379546166016338609101924600626653368347397073280671390773803612677116079703469972135931169117734786644354912577294490464157484684984353494981975050128647928285425264018500749616543201421082941005273695403197791215004007907827834166160024694748886148601338197156345252728425455561785546181544574244487461334712490820635195908081684294319197338484739711992178618602268371700382823909453991829285720774879093124576269040622532386473979554952843048222039222536339169916218480909460375206504838249710327711839938349800349272456278855073411824354120400392054835176277161328582811570838375580145511813286426411452453015215518267109538918213167867778709122945671733556533563322354040981049872840691124538927324549063551709040241632432445172396182380790351879320082750828576774254458637420306940794598088634958415669388604842550978818125184339481246101913244640708839215731910616934399219552745600069379004074467060457548978714385100996462707845943993833259105112196495660126233922844638179789527953577861049014517038307316006166715450755155788244283869088305732749937639442540537538998619686476093955572241074582188589236425902860118799645094293037644707328110355253807665998821693288724382739589783659417025771932942392422477542559135382801333907312993205479926219506608324683773078905884039200418630694023009885215367038119682244667400681766076615288453004413599997682918457407277447260755302105752543218551467289405332183072853969548397488432865300262980035232038818525124543480784199249073479265592398181934645885350431725943799277080436361454178578142489183285600776109110312617800569717266558432511565089469325914069374633522434122102882155649926478634177443201145530899098347579763209119590264969691877040858101514972864280786329995429332946952350675715020669752854492491159390780832710217869679221979140838539925875687016397752562587944869121244938007075962852538467108390916623958936592045346451785209679064780725231579178886988573987465215602052651205115175648795986048916552469788634556619219973050712229827393445719563292087216378949760020103275647196087465883479140773308020753334897320048317988582802161027463680697319086642601213970047713349551153233768217558372495848785638682048701401261248809762233526206324966267485570910360703388478777791388209147043411888463541457323093130527978684777163562120355818021239993655025025618060408229604593136651604562570338230853884441199815486030196983246029711788862483309603248436845485760980515084765121509529332633872377919783097380486706005144056257597090992756591614813566740831394332390673785001304384358392573276012971724053950804802729768019501852205345069273801743560115363693317991256421270352515460960493458731732403565149410562433634588001283641869865570176520214854298640018911994774629645750741996233403627413359032738243981936740713555117320078236847043595096671733063354964810477067889186660821821409635986415049728376125996813323447344602176063342217058434929948305546628721649177299994702208861140867615664339530746398561058217547829226752932136593501871109447745564504198716692637071431126543588807887412097271914724530132425365784771911362830088458945365932145471644485589917435861270481644243228915316268176220958974957919458942761395459939526773383398645138636038501823765500611044545818924015495247284860008909992021510640213348450634548173145522798308620590106231272575097908327846233267500955069423102284693162390030402181804358886194678835851000026435271138687175005157998025567977594473707412392812144535927588168118660679773129636571529440065917098397227754538096557758765673199608677148661190729907985859373343544394669323088884095101879367278964575411624171427123866624606927336018287343493040089929307504065448232943239555139130957810563521936187815562370691418159759471974707504499115223112464658110613815691397223626134664567704029956710100173811317611204758584518568376423656252109406398221091825925498258989736715846721423151271142737813625742459589947995909966401432496791796162714163132184088061523113177649666767812214879186070620005407178081324794854071881636768226128315840954292066270200010701762604041052616928006074309390763212239478262673189915377510065089740593335519005370973347583920743040937302063490732054175585566514231786961152447768077767196548200415601585246592660762855777224853317841605197134956223007780932832435087464598134432857121184175520899871121480472695337673848507035612937763477974653653771833919241596656807077706747285766046631268131329964449706158379695105605789191608858379545941942570414334335121887974446325843824006159558997313079871784221026482470825872424719959559598589102031831685647287051106786835885373208057629386609135495962233054423403932040015841138161562092708247113598396202888766817719850520205322592319799927610347103808404037467961706410348735551117555006306842003942631629509661070222346230021123772910985210296340310972031772619116312348353548753738070805322520858778788810382534806336637468704334210518993278779100697420366882928991424581176049169006340039421393398414145190537327128727310452102097251723252761585109019688305662543688005069318490341163728623621517831532963571363152744840025449088562378288389026169165292408623073116946651133498500005132029337044459731164304902363231336331274037741263871784395911653175012523387744675780110960163833612981805572460510508970967179988549205701807630131695447722207815636790846947077545762274880722489368749527114031315727671479763757585838975339821718922979024180893941933710026620295430093354909498829952441489485599066022526065747968522421103757616386815643347617822533576111522275471913087168185406253857745231586702426866598949244352030314887260989481237167306411124511156110252115723106336297966857077208075123558005509057508452915409554716495819015362675217271552806032076217281743186323570206955285056274927308636463243878613006171274466642679566051624477714882627253391006808954955658778143923820168668166451797215327891105501738056111553833786892218856518135177387821688919249830819641674204357398492401362376182584361850815376571298976063549579041536830428187170998485537526704408298312957277222205012212349356888210828986411736673614042887907991372450853448657195372182055307894189689594107679212271252807460207077634599349133870164337931008014223632849838329668022629033512509641421112501018990757314339149606842429111332962011058818786685441059433452094186741710524399501612890511424472338074730211015013162662983120983966733267266812860521927425284849572273588248613637664713591852810934685445476210447224703717090643139442866854710679282521927899749495482967698044920402769228293854137427735324720312166775324612312334441444156359567156640521996477496954921450182014808847188925540163670500664668368263549187016029560277973311502970132717149348708266788728554527755329100300607867309924257814712148248769540014753595202723196501566144025567401705025942381067862863192475450689855977742448875373024507944823668368824247043497085839073453787628848845603265491359502393342273987078421855804639640224563133438000169688939452309311492020317609802851032806164405465077583095779503739717661389247499878137487108464090483434858164864556555566107476070683770630210972247563234741906682737281065428864841758350176799164789258810340280674694067512735179959558967831408692448618952169524924734499680305980701264478889773811101031961579775732492507404165442913092021090620701546375079381245807616992051934583409605121263924516086395885517069812295988292114890142786886309728475944230434912869272351669571497707216805821627043186170934705553380639882451221723213894291206175087329523132962290337402613369353565463536505248165455232653514018952852372233824174995292144886087323569736696083946030407646872360906983283792285484363454702281271097639859237301718253978838152257753934670035056454246539300026680635490804248545165660009163342410754448102346060430463803133941873249473355649331199525582054623240397707794388582875497319936262427663843231921609112346664536180284186183500135207736500084204041845980423033973701702745146933358113944560371745356482351490872431754501584061410029220170840014591475815736341828075843963449072479193075487320223289073114828100140755090926767462516317201852970433357195327594444673353959427188273439007525584232316697340050820446718859480119546173115487833739697870392898960158143416099092777587517436391250057439612721611752972477071086824062998718636745994677155407680180559564024416950990578064554250583409489129750912137800160470385045485619751288929192009964728413832963571833385895982083493752843014768003293365812497388336103149899967962826389242143781760563218069114524498216877798822458406396996233979235430776314470396168941450339472032928912940952814854475914185195290811460198888200316983107338044708862333999921175498260192777920449112476034809736626819061716052683989649807650462396059189507704992379728560313259884208763317036488979919405323846110634917231366417041861413011531105850271723898262501533419209814734119049486077857794888407553978688744978774024382637600842572691700529948482013220169235469033297346280663109961661590683196198406309365377797465908378319166250834792747581635198244942827070363949509661134412639709433525869991182514560148831740759631660476009446803939631837988059330818866887962567467050497033906321347671672020737015075670905616327492619434992222146813183526547311442905643988129269103799727134579348745207812152308094122834644422293107598492773629363258588441551991750810014130412048105337495950659405849931760006340250486697149712384531904192022254568043344364370121196656068937117213714704745620172470695982745559300008381607179709734536600349171842601957777451541532833379653028782804017727745870372121575255066412408777721485661105373859527362671308409518754405852973122041963293401426164995187768726425626448812957801108625644050305699926501519828179997430600793748778516261130360147144732561527968520857170109174340354395751387521700860462648534813861004416724361947529581937772507445075224090161400353947129106097857803292565854611945600179746404291042005385535605903273632997259633172051930850006512751507572152395361097188393848394574374852150539678010980044303681923023411248756079219463792580409093956037514003330715182548505237654008951203466204812838999104464853311262498848563962973282933880409431564799379325272743834741243874859485445693853812471835503075105900161751191537578883371175636377303907298478377523332292492347468416661865427713012279640105329260274083522758408525934395083912536622111607236026202532525086148093706636167612987970978927796282410863852075440099882135046796995606093937558996265206631786309850122488593049045291439728333284332346440764013118450619932106852545197905995018302472153422317785677907838812137844889720456012292270616051048408293526224641679856984359763703916220405905882808308624747845377777091383175832373148468489810092958115845481349029308141486993732184383685835149781246944596960519786153185027881380008027108896212851457637507443211215145958526737415567549490654981950840598680686858256227387877266019879975931650813394746970407147071563476115861092720191923978351159314336682768668346335945207310429459860292373696898812143824969892620482390120831667767787453299354914577924748219112387594855392888870086617331126605347009788678568815535664285948978050424423242412676844066209348599886272377382453908291561111451911003184636485013217586683505135334284719203364150196609946694999916746523950674011802041259840447412697150938552167803934877148026977619525323457818509761077490779544991205075352191321784911712939951644876932664235911926558975789545113497578326130632586968185180151637728968842871241706039222952672607786650626113153942453675644717242942937683985704394616161855739353081855763886852471846002104056266637880766861838481091079460276316572159907888003500167207561594542027438746528721794180857807467863584888053994207455153067784838480788681011058792987123100870032997309272701142674267646320974091472194332665486743112253145087008725190751341677608300993864938544572487777423811362621456045510037573127377574287045173091928133486570246425464440911046093233428626828099551130043385884124519589063340927993394205827351962448762085407635069743753474907471123521195167656525539450240433554813963248124600293379163690497964377885453418387221876438894270367292213166778001904225155588407812422247309049649989076385038007803737276783015026975915266908278083978880791032884305251797493155556069145128554909995499607671101226656960630578039623927277374836360953029786280968649289275576294329503098855534461706776266649960684974231896317778941162892504514025561566010650138965195950165197962116514980054771331933981880507750145284172848340114624369626671707070980828864324205313739190184806297804070316436460868426704481830636634345013994922307292487936196722622102931652789389767840809241666000180469607719669121597948343437909482446801612511711081100118587439791752305576499052749014281147794018934357229239873826440092857803399403170926717448736732747346415437427575180839767189948939492627583600199324543374193931979694889033579858457299071967949558300508285013838719209520343144943788153992021648624645615018109322865508169610720668590650707887972460732769246194259702492087876987875545454214444389860207559182721075939415891886342205313277536299429125043466070497367471572292474036625905375751799745701910575259168535024347734844032468028586752127704701823575864335104610336561626402325481050028289178713685643450965293029382835322129744748990059983906567927372030299975119289021729633890102777308141799653986568675661562726558870714249333683460553681916589280228280808796135886968019341048744480458931888136299687522553788197746209439389377936855718856787978539207826988039498130719242838608338327865097384964577070621159837032786094829669507804458289182809300829801136892490736648144604782883316746404108433381372029935611291811356112286211416190536094029182181276146925657049522956023390063905832088754917850412083708498210025224057694793182613848578069462591788735874770493687694583297488935086259865784149393056899580503815102055597784143423433364610690672282077360517412717820804907039535591428674820505198042901518390099636999045666174840112805800593521295640622814243879747744123265246671839639121149515706544044576844444403726938588620583341068951724081900466510838777471846502495980932677209482830250392028834088720588283978556768540358841934790138939735127588592330687790783763099444136828690724520033630149329790368788707344851450880155252760140160852443051393917115933845817912240547127440706117175156755418744822867010789723643763039713744013733814979935146797388311005049948791596556572329729262821552020715769907080014283611371753187714501428058564131149796705938314821601210285946400795110494662423996249593592048645952636135375895571465081043175501727252744575005243674130837668891125169406416833750170713356043304853720864016462311343170192229157241497880457758701764104522985561159894152550892022695502843207146378561406778821078900430497692884456550383319055622544402954144947499434016217744123040413171346462897625587968579018293052365127985071490801175077686585151299977760146589694289509130021156933824057726389595401617106934055057432075093622489097733183350820070844472207375350549714778461421971939397587647577351161038103921804004562185312844855932508922644615332274059365980355195963447969162159882955240263941533899891352467436056909064335180734955367750350877135595908936171440309289422791985246367867359201296066683345939379238674947426009549485200767865315621094893817458498480227232066307390203138670354521962438078128081338904073323957701537586994546482638341774481553131588104568116021282102282472370320107169713870325387239380572595740077420621406186731830033323419390990621983242049099514498663713163130419700501604224070955839345740569036286008911153959756030922990672199541372144524016620274540108489043786650744217707859902589936052051416403864963535362193783852636773176441903441420787020147659112240721755437344399302498224541967066983878107697207441500429918282004202531216727356305282430421386391525358336391519951773281366625105980267307714079750000514816489251415153908931321259730106724030228301161467705683924076471938901960859736750263313545951271093899319135632988598551431687822427700775935053258944174984732315821989110234544176173332313365104720486545874530295356247756147877988888951547816223826320061374822990477215695595563588896534959079656481328642156029738467354182418003622079640093362587302643124780663683181185872394476094870208995539904067938001766909935126920394069986579716428934891445165027408649359751318422484275362943092105724114973831928957292932580788862499866922351170920303940475926528172451628772310594877555511566400373469682452127698972843594776509193376889318100793745937503105442546232830493633192551911768605291423583248908248478994913564984374697279856051119719012461683986827472818376952506278092283573337337839952110910289105950294529898671866657593899584215325976126794649925971825751187720714561960305609736593760030277199343003911114510156017263935571292066468590010530420960917868162096089562633863328193571818215735146602657306720338458200894233507291809850460814882311241863563608252587125191062272165110926634036137038722092489381717094880775698127542545264455280503591141120086155235702261550565944006386476265455737209574257771860150263520913175128563849247252484295471452153140435566295003770923039455146311219202562538303619393238619851198814618671089957365899223060775946283650565752860436985498438846488243930087300909516711258366558470150133123988880161432782006513079343790826786293419995025165815378365674545274296394036639614922373208068902743507968622005623426410505023708185139648221852220319904670263323913250608026306761992887906202157504640084862546050151481316191965669894191640151822542264328294132546517502151275696847900702230040718605396762450183814468161251206525740217759584066778958508720357285553664122081065644975893037741595639768910325095864166217076788414129563960968725539865660033359421865018208113356334060777438576571729341458509852877931909145670687911350461678869279173656312715564023353540740171611650243354843632142157684189037349173578990717042382585749933718162256907993205887296508217053127888727909013343346903368914134867371717746802350072160453809714985375290046209470350937523934089861455306823359344426385125297567631705475224385868911507583780589870155248377900917276039737214254735219969496622991759576346032234625261232810254322981910388189234549781229499908334490330179731136171177720271481993966972841383226996732268890746782880943860111794589044855563263954405840492822103657750534841539719185124900983618076751264318051759720139182206825914377029177259965534508047829611782258541762998844060975496542513106193911730912138438608882239466019888292421999904306037757572707458443198557020983287826204440107473521509947804708713602579070662651434492657916267778398593318588314238724369351736112323637033785255056321364451010470651830389702208240411329869934181537758093131218786557323303424497650274391111273714934095614256088460847343103675610903708825103018461950283422185363784993016144492507073086391750824701301283057391914195775021057969973510484108894432618441321419333383359121354716853424991429091070952377725512280727295108374746969213476137259152931383292780198238712335754608572391065161123167940775970182050023330683948434055191320989334003859146485841447666948455344505990545232577310689409526418323941594280721147775751962444116220342782650646669221788623225891922225513642025218686669805946737201200420067650049966221344375537596473634879745454940391343936625573965292724995100563443196150941279113246725237988072131116164678166383940337299590853589820264794465473132572594631695442095503689747748016146999094341908166676296695262964884984052713014418474428595119350820684149503586110226378293605259707705803325311872729986670024262844797487062013522780567865561681967636968495289422030911946473881779836263809655530454600166385263606496224395709664420277794312998288940324519825579812412069938657815314594093485085747965342649192038850760245618555272463167821216316000816632788765196358170258268375289683008636689296540115383477597132324106739322605740468571863199503106701015102172787732269519753103236800106947870582826456726914593700414707767510080537777757064522990386781128232952896690527594739280784949795269102555641887560808329119389821545784754623570964065530254262670732802161198255925899505418279786572330201048994501347837359617759353213653373738106125091730927913393644509134379534289122645633157347502312417292225171030541196954522981920579200820311982408870471614244922653832769361180526630484157155572188539403488898121180400095758599246179364065724647629631976221322692010012893926741235428656419820731168167880751048053105956110076016450058318368641753905564499976199634739332470207999072291319747679381459371608435992617762392377897783314583434295592088508720276378743703190226457348078007997569982687288325010421260131513216542874368354882457482492126776423825259796463393696785003883216575246022561392103700472853273207791680998678454778158804388552484864669938376867626801728126475526357380492251980273859176851332524635843890058455347082749165483752039578500145094403730001757026845542193387533363465208498424800296438195804222031657950614304444112163583365594240317653196570874397376504271540413736367460934385751975755680583888589316235716388118562396784649503064791972485557460160146512661172449794336145727797534176478962382711759072368562187577787143361584933623675826636055564853703556081100236786420346673489650452919798534376484682159124222402764194096614896550047321987438335808048604456841808675869632239014685214011417425809236500786304856029550306176226549642016314616502215085228455273577339994229149254700926432544813600279273681030653352439371010904441023228604469338699558721796884198199170673466571529616532258588764161042427232096503805391731724028814745536626929110577330487352463086607272253222776751306900933108719772040517279442685967118297482058355880622943862794889361591286165514923572900973437255947522247755095846624517144645955564109188228405188049977022098242649572787778086604956017416071964278888364995218357116504798383512653044529758358485194106880529168644922631267997326845118338163364319892194106750439233774068285918926547838323733262182164482996407227967487478507869495871928927202461617142414964814531209447417421857218255036453921486027236299058610518188686630126721728142579815031681069925195700986977950275664875341517680046653336908105689855936345115029393536461576257156723263973738416874574823296155746613364334953650396504002692871250330986557926933539481156724422485570652140351709116379687822733595156848204005397827228689932637558938485513281700428077102670055324609708745238346122371557814553630436926069290412742026297949228295740932057905754635091746844810617344856172822162265629900088981342760469246161192150865119318971521852556556941730791185614985829084778295041612417462735540170651473065065425102230545546242309686091413091920321384246267536332233602591792581894298881257759375886809878424744622204146339343401715410251755107485719834278302635787206648491110444182723120331655973910800339940415472195475652576830365191761101685284907650640653270193981730717320998628701162539247929216354632768432452405517776128507577863454485706214878919394234365124914434116971094802983411118186038740424261408226389718758286755631447501089976983116640908614587326127631675670110549627215596981962332094797359491716093445550301993490009310936553219290561779254399525020405925680017875134660495695182469995275416051137244784346971849882979950771322640644776671976190044696697809820702850556009540962578338569780602398510784091824680522017342542564200646311939892116773564091078641780755010416616987395211465169280626220510146332385040141589638650183925366438834019827035470748464336937024993739445872381562603554920977661299805119668105245247038327054319055097089557896324691176774462338892621456270225933637241278948132148885193313016869470584349241953824630955659687212049574886584517564017685317215050609211196528067710618004856473823590835530197464638947229078955891912019760586797938592868656306167682430316335366024537644304078276206441507008176294236462803799617567419502244859661568897810371712580628370982767147785526248385252577339046339143122380364820286365598931397605044556237497995359572786519100881228170454823835702755803680892552889975751184384209890665023646618546308430248313341130619578167648115182580721276490997639032753641187664692701282812155798287957319925839500297541471119361660141802734364214186448021947838495516662422755065106523033161160822570157067641404285805531915953552478445445684565469808965801570436535692771289880757969070971148592059759628202812894190526805827761615683393075423117434122496558680116779778526330787900233343078372047005555290664288126970460045594036330615776344680795869708362533939564415976913292094189887212442671376272670132557631996628497662503112631572062958983499412526034107850416174332828363475768039115545674545201026756041778612922013588419038076866202490560834876617698252562879215384753287981257633359209379490783254366208400159630807894198793378808708566810255166610534126057003592391871030587654686364915466529325113412929390060895963440419505223003937012842377962388017053604213907801651680533593748650045331216010711506383197324647259947747091082420194963554712654218736485004991856469032747366783464560068300744557293585915966166603574167791299842996941973377514748634157487051871702102173929126716296672395048156927234625873617770806366355741223270172231232118352984898877545160451851048469804499819808208335934426627348822269454030315105790886269514770772178285514048863130403995171040117109505279662620768464148417461947375487068240870177063335737629557435989793787110899455179578596091234541343693674313633949447379408979523548868768348302355252205757388665763109792104132144358882920861840193206691886855334577617757980124804236956388538324015618540997658384619211218438369823630563268866831897035033990950291412871726900258382823808028343264496657961388885786879219723974256576159444633385817942813322588327079490446409959362984117660020492998410053618613818117074759625746525817529962774305942282968659429475529343781526385127542062467205017374563358557367794168217178147634057388307954148954815336680917609936295148314409394901127653372655042899996986677787397510796978952023658164015084043301547319855308094586815757947135170137479257584086524852930417214810937691230432934178589635870744619395138583237780561047470781261809292451686958238900565841635192029966945431484631836152425825069499565520435366733635619260784935264532566947087904535469836850779529927486397688750253226254169818919413859450938527250356721787264753461275750561760598319582798667582184187343965500810594820110942236996069062142510012873508321914196951152370837114369665089401203971957488467735514044204893301066999634070869698816564156973989687109205867114217938458624697487509153890120513965268526815536901171065294584914885385040990831168256646886850592422396717510041212308080450564945266203847824717450550598466421206379948383023542686558120208425640136805268059944834564056238620404507427659489550865231829135509478183478677558864756188585818088246542480454580393560669659819905948695477590588307441873102177110870235943901596202594733069375064625995421355468154123615503860508965596142949705118799236723970910858645998865604826212662735861407876821641084296877027968537377258265435107975057573522604547284220844737997616495227459259263971469405181958420513857742950577997795012610461075027094132198749646159581408590161606983588930056593985148132244722947306755681696372967829111248520700705911969401429041392841354535725918463523348261344263929386447093986338896979717045550148089662767245814129199792556050594400730838319590112584318428656267766513359363687681806553093288997730003541447244745712804075358432595765414833039669092225241251947561884747451311760597491917016659629718164180558158202207276961779877436404298412494790018413998399995237133129286353656357562464426443269756166526186947579134691270710052560686977673308119607821153755936065324225997886116269379427827610088624960987052245492138323984721643357091519757238859030794187801212129027806603608834165513253039845428150871267371502961610174625799191880550106389214534936694100885153125678720269921027283363881101870886938057671774080926074851149416722117858094920041330902003199285280897278684979294475953703039880061422639366898523160960320954084972149631109744340603529719694070114643970949135138902636070953274613284383801042283205857975650420777204851477836339917922985558497329245997255501765908932196588593205526484460213578678454033379264008311556232397321958556385837554228110845158504819105374336685819121690383932888327277346521858245591609039889141854750592217269229889412480885532741935123794421319377307255964961051934968315487928531672620865111840509897376421278803678819343362427695772425914400531053947714921501726505006503332313252889689447847934983527221335176185711953180312469514191454773994840654827408688994723042460167951690081667998964616440450777008333662866646798304331346924441435686937094409206860175178542304679317783335499974244215605719234379928112522458867273050818009705417270168400406151222388746956839002375450298870375683333191687310257136768059941615994756664965244272781283952692139814645598614783851620333562430583544861167666562543727067815463788751840347865389237368288609346536615964842235918399897747470834114599369096114166902644804496774029988673192657490712902311936093915024360519977626453480105210156748101062386975066982322596046568776217761542933097373552107058059410462344363228178362206649352759062109445167090082105104433737030282532794331023349581103007030224892738357546600252142757431471875132915418972477685060764353341641261562230509210540021836776602684155372158742135616065178353917549743926716255322934569503676063939487914297541329150867835706530467863026442530139944987016036080757812695718299461622063832434574251280734261216783457014994830989335144084333510767145407609379437500373012309680736123095772942278175341419685789964206034203727987181439478332064185128789582284487969229683651349284261366119042793142235337659574532630436372457384147839185912792001180984902239363022473491890965201828724594844015756373165363004692379005072865655441338666256329888660073020150233577849177148244203862213594174396795055509311657046767451207426533423536191355845266895343206186585315833754024312411063168896194339809542864491606239748145044965672907320596395013685354964015634311018221683492929780169111647755503599789779797122852898315848498754320729678257483958057681271334917297110618847072022179036684149951030211679583221517719288535569221318689651920846113573489403698094615666820641439990769284073169214176518595887817650719615143609899419786745895620775709433302768583238178985552070643935404221367443045449038760194112352247863332952918145883590273689403631442478567903570979195197930313285891312018048130116679628490850678631177135926758189157002259741700114501438496190843087218835518657035359738893175265609922017558405146416241687676576773190557862219297172094747296095424705083534543096821737604042047023422960982460664617614143302661532322784179941957228109317406311615080957116861120988058759849930753466482651067941081557937674591629356006497580140459998294804897368226873936128039179499063346706434191701711333690272496789637245855021229701445567071436158037403168908190049677855712880732385131180539843157370944484788239734161553209693103640634633370781022529763351263963643833046732887136473146756169793188958898748564783471517892843556011667790361520241734273423717159660240267658229978048298957956194993378730071091237362001881628140955260958890871942633994097045853307962870798353659348697002631811745392457312681263369186393310528537048502733944917457725781331562281445267279151692014234775389583221758093519746380894732296717915764813701510576899588717206598637289920904059708372074837447169579381847984615336992130964212484139088305304075820679643938992837507204713956428376072681415101562438626600122438814842388739272764895106592842992076191038740160444871039319330335793978816836656243595282151242435988703213157109185969082433970200374326175439378833466386993860175000443190107759971625761848266318228588472130839829129771694539351619774319638183975776646610048330720274991568443868086828845958745015619067642656803095527831834485271296419829052229204604434766901317692253660277683449772717989526623751185080339667885972334893033799432453895079754750085082393040369147781349419755753266865088016248157008818099833625467987868714505254857631010095324802395598800963918266102781058084300879227938683454566257852880382727539545439253268843681123924008088668047327626600858096963194333756598382088637733143331795985363354759611451008366010425709883132507101829333610519898794704262788659882864877818447833324349855070207127950481572676777872772292859178558163177485923854188457532160068635655323713334537635121354175891886487392576220637659826651962220283903306235160956852592896256200933278749783490023355495623045560065395900833317794135143147134378734151712779802990854174835376962215391200266970762600159306177311634317476455384416586111267868748050455112088447394029814343933879782501439395267979838824595442392878123730421866249335719623483346847374769961592707420212515995571548333289994389372236781757915506282403878003803865269621847456061158142846629688266521057372574227738402683059138101581340687607836161245100621339912470180036713876344526862273961854518686460618711729008969627516735737483247047026194946048633867267829978632390584595641542327222583270343191228824711287013895985946002386584793207556894338710410288552941488729262160605123200953240195032061924320725569204224103770191371839296346963314793458108766818693430374822229426951495215848130922657531808359296157096502725778650612423722964455724277058798164971718435936567921508037895688771789428405602407188615085721018389304179384425713150904802913161034968056499273694438633749453173571257705501488651021318132227314078718545621983933294268620968549219170794535426541710142600513039301859722306867763415797014833443951125991594230600237048440327068355555039437648310612851916735489223470289290014662857315933790866961777102811158736554098884953657590637592629860690457079261480965121040085612974773360020843014368038793626246838051561763108080472859532670168626432496269470799596074651692089050673550191573500915092978740719223364980895561336594933734758223885654866237691415150526434066218154481801877903945557846595060781255380305483664448910356264552917075112161795359824230972559438670833260109131444776077429978906031502002477975776243092974673714977776243767886234411022960562644583249200435539145302542223626895403674624764409562569208408971955631400773705600514382482111409052260732769094913068630445983012939676165515064518323784274686220125529430428505494444105267655525339196138174582693239432710254830863087066697284291648224279834662339342095683296357629565120767734431620109889424229348340478296075955088345271191016029514174707754173509484221235437984621594090069887393720108240794010089227736087926841886346184658932470474090943816375725214085982334360754853811228338647615896442859789020469355989011431793538150132999109316156814228117124692014328544112298002032806570608730406013227415631563098786634142473774020977491619814762187165740979216441404666154178145197981184407521820322370213389675694701680246371875374146938938148354910128218262666103133822561047067582284351872574328072267278853874220027122614695806607937961525506206720800941397864637873491298619216724273442302720803964800339198477817801067834233362108466362132100831889023714944222863704744550123869239362330391029730899935802322124943280858618860814402137638767763614738829985839475833449797199495500643711899587267827086515395758871700801603895853800790809704326183021703006350783078142142290269462961806206498352721160481486442234542491014857933662912720594712842166427441528764664338421412338768505182832040801716174220375119936493590008880830563854762213531553944687732072333656454730385988694609760499429872079438824371323060549631651458683138138992917746375105416347857051497254003360311063273775898139729669770750350250969517906597159521922477332373333846821750235770659609702463899110803593772154823490164760283513775107467975134790077876815106654423603474998994997572083826509367323011846885847288556634983945145005194047617867688417637856804015103251632943947590816568187194842562247478814658174787900518550711547559615430152136246391180415768775252741203432843746653847273895872068935490757052209789135031316782257220689632001560947058767377921613645864233966024357489632148586582687976453559167438362429968824793904225573877020389138978442136761577023652013312181155132820635209754066344903628324952662079942841653722901502029017168658563015722720142039595728282979718266099511878346319745934837399555365550988392582864526245223726951101182454314842255070568504507549606293529217858000547579765489713541538976309029398391373527972962986789879517751663792397593227117475203651734551656933910703548686506031446923214957808310944424961580441178782296462245293828843406249722418177851702221472730358568252341290903439078816375777487304744075349817917495715298302935723434687356211978198690307392162127623669111853116165993247842953267266348639910222107125815448735402265435201205347938446581692810490131252367561892616909367185129563083652686316983951887424403386121071747249494170598236234591033967681969113253187255786206479205735861063647230640390130457561570642893894014032671493090310329686881114952352702737785886879210342641839917345279132235673091612350247027491471423089291480053156805324452447786873079365856394223196428293848768850471825980740891796666836027322810835302591292797584222273716612794115525563911815797471203425509100092048247323290976286957063688131363541056455235130202945950357790455582996949730892616548046867263202747742444242766306734447070512036852031525187664784043640185952420669275868167660943772019009382116711218805014368283266521185659181672767442385556624370530728950566097763762665400491176064289170293545191418828966243770453381453670313261320130848244546338465794073614629992929860106342103392823723747549040798206420162134468773670151448361526181112309209034168022492071082020436815654466793798451410008450879190202035855016458154174521763044375615162704957622723894414271132817145994288373746053948089503892146245573621773971305402133353453622216926992276645663735231222439102574884618336653265013856658654505980135406436654614933906598927996009877742167520375005514492345985754074303095369938039650963491287131913890871662917173188703867369012488856791762624395706900926275650549525220328595353380705367332128113768467315751470978592449447230394308335550712268975525285599861614895026692010631998881091716715170620270284035029130104523105227660716420491717665469429551774728527330703149199685391421536730768015355936850630143387428492713023249222333905504323050588080544158137489193199202922820078709404142088079041719051042732020821884951746937139755287354122605391970913187557259909303279331537052542718831574114095399339940025067291598904583186229270399119357918784978211427654425749887711980488774047424935699605589979908388641522166456069430906535864527274643014688090157079948111459006522820314447916248547266274800613415306621004408828525416587080205689933352356534961166404708333004050523416040110435107534160570376785278619513545720376148507591426270723391280509797516016390758757444788339790291956262891341946250399879254244023890380130663253421737389030690366569722550210862294830019461656922760416659781224548325167748622730794570999371684428401409169198024654944339367789548696751056882328128630335610458907186374945334829659632852671165311280562921539919783634405960142021248647489792352730166084011833344008853699500920524868965892820363788032743479123240652867278925411896440220004448306348821671747970219434181621290007483143169912577705171608039218965981507092461724031067170288218865978379521072052518083468449324207717589360354361952061955608257834616694850144877834272752551995670182073260357891247239571130094478457433175311166112998364513367018701755212856459937345461530496226174294057614945346352866139109303163027052526784230894233984524530071406973430634136068412855324805645321110641577067947289009209755917597293900296444023072577226030260180423973503621913940776418635908165280656518312874995326626916505920273673983014584509217010245396344507858972140924296955928637442487727443989459417281693165473914269658025653371717959320973492341481925629473415467890441942838706867499008160768572879199935499472231892902261723030807099278622481564550798192636871391670040406990763266099596398322448798521422930908759484279916123086931144435001802415121034865432343955215982769604611045360862109403900327698191417746158561597099831514406351122886271062366822426549213396747173286734824019275500981478825257419700495327969492987307772359296353061386549199125204556518313422455591642635176096951652612550631177235934287849890640922195123515802390251383374574560707713406231016276678897938881480005845934717408027982073231954442799501735051993419189415696000769707030888444528283165845216874062991225502564762025707921307687209451339689215251813602232842323133152475669955421479557646608232842095569314621300720352733226816135083059157670851659296567824345386023132838482611940624991583242319883542502692022289755187456162885547197325055494411009041473331654737661186495956246736701586150820276161138367160069368982790243441290038566597959506763922862504921736041451070428074732658910565530091426099261699368758537801034122608501766754387586526142122704417941071556640690092317367042958779743871164297772626083934644144397382221085040252815108945835082858588539564452472208017821789107005205215641991808414183571507100268780702578494148263641038646056040664584806565260000111363525405390804296822015374697813035134145998413733171413150856034595865798453219441578116113297251721812493172683578359154374808594528018541340744031088558034120529106143831596373311994208449319459842705467415056949439590362439799764147759004999037167718960382825359222539855844377848408651065965507829692785026966021503681240122746599577161964842296244454868265145246420521638811839618921967562385647866585024070829688483989164838538702016353735125314589041152693094923580502018635204643820840112804338583597343235058325247093791476897930812343298378484863789717201934514389398733133520841678191561437774556941753516342579366380823522317507141826687149337924798707214572245905106947443065909750843886300226913486618804929200155314526124525271707041956446380534936619990528046596188121924182802316675033154536580738420335197838878168656933950431886925369295330030992127533192875915062267984609054681380712639564172432910407811421078559629678332854762486784233685267779113629319533411217691336664338576132511314085596372210015394980563082359639715212439237595819354079106656824645410910698743158008516059021146124590171764469367493964925390962668332953124096047428484280050175141551473693248109231430504993612858884507547578969524412715324202698686242240131283746523630671765625272208768389309375849302095507502803528971733734366605050012562704709826492207494933339983624853101648693994501479863121111675747535212927089828286807461724846040975049102455858809862353612407234909402724389539713111248418001124494241131905223232530518463474540665463884379193390350908633059125664839619158692550604904349581180587074201394184219165495576237965532727188513681785086822941419055694984986984489989561949613291465188945327074948867037341245894921803111053110208914231472273434695905097345787354023346263366480137426116422099168544674975312595741778374973927749497107094693719975751350503294792096153169488368290412088456287509246599782216657917696438833667524569672453247498232020094550069188013404101686428272992982642129897975601729822184908374036639546275031637501980966229751368238206843470814559370117484674664389976210713902468319008977538385560647702568295122083282541386708751677756982460329071432379331568263480107804428274139615453632901095199437598176894444716172829410007909588605730177814347203093183791163048729120523387542400440194611540623532208960715631971316035861972885377254802533186675556272596898524888127427828455647169004529435817946560562318870870392062788624491269363583497444934807386465585427366060863138985994508875047190606539284426662516156076961285870271255318962232446916966483332171033343716597081294624709491645806185365239710612814740625117336486609751667721325383065109131486717561092086601137836835093905648138002982459953397888747116547215078785856831870137113285523244669073966025773314140154150127145289556183511562413759046378670209169219738388947976570386453626441688882511217851973508637958705523797401393802971218437153297318677164225346185457941079938435730792138721669114382528030994330484475395823331177284256982179369538003023051990972815201462003370861282693874957393614685874372792148937487078383021500768404490536407199299182477926259730815078964613415732701347438940967305438145000658069565502105147311800656060727908718475286025488875780639534143236289048938217463721835761736715228880153413988326497504865959961651712763528425070820247630091725937825861344460724664843664887765606564902622883151338164850369431748204567950421086143711589272501038401943862418423201186971968866025113141933816913227768442507912759236750771636420555471108672721853063731199074949899223441891857338745578202979065490562437512288640184674337975943386098690242747382514924997982505443795967889754313919502401894626506040878126057748106599463428754040553415494726227466877599868497415077940302692369758476312984662129948866378451028539419735106714572150884653610712935208396552479716848994718983524873384245653136821989502812640665488521085483469860285268134096931485898755456969137362811281544844497921479325579810678013093877577021156607846916646595650648432311995834911860272712673857468642444214753559171792590400165845560608818074937949099208882856241501390574006980522250672870773174614252803636079110819400280530360835934185112526860897903607131186900574874237497236630018081700637024209146305453745116686989999965455054305492305771920193161078964617294225100780385503601606106880328000967949120221241689175202899758107946123025095831865846884629309066394043372749926150620919704968633210304652125069523611608936417262177410662944134397207645463079045922569100655743116241622295476340432844839476539821718937045140937698149188846637828670509563802947975125702239866237483151233851265641404484966608449839893838284878086370391777959662758807198866127332635106394053543254223724223350843516487082302954446192256971806538534544185704598396494361936851710662359194272240249095613112107315652242543512249598096112506308067673593825393596481602204360452365878093382062546650240375875818391380030900673056715909827192348482072876989180519822914896929891822757522651789371542436155450544771328343190889680707221221660335946736374382499162139371758276982274724328943389335028745294078774263973171431914733467260602629921596248712424919713356282815988504725205264450810749465237953893032216642019386954212579145478448804103996660935038890410134806411275740903598643442903234184360391709238174885375078981521440176977105588697742372012693213544529835480538144350632745862017651732779251492251696956092557124278845930718116318193662232568536243688187981811134830258161256020001039548469220006682598338935340850174663183663083045237164453488515318123119094882032750462610550889373506408890314773003970982503403852276786026934703053047279726392791940973696705411325310627498764550028116287454349447683662551722364475503011256242566475982471478593840189413373037676337940436749332584081423438737085323689418712665098267750901545163491236301002229635071921471671227891709382854803100857470266585349191388332548567666278979039503078890746765278317638940919986769781618174924990263855886958179411702317158526001699951320575437295686494691904582714771866956848844157090379730720506054205440024354010585970985084509777582988495282535020648761222729090876049278739654301578714305711384355266657719923332251777725155500910603442922645539126522049660065628335979132966060131805898755010517306224665688378957335685667726381222111073863809473505480455547181822841818115955355528093822106266567271947035618183527165727604873947430748243065415042429584970671440596963813641149554113423223311318384113309316163794403045305229473168923243455633116906878644838776147125082855872352474391250997018883087273394494790358595097864263773437094730063095871911799598069738184899725855637755968730470976431841881961425079824135287309643755958637145616614136517787997279631116082955120536955446948750191586834308312841393480935757104090490722491096140264560828111203562566222094936040230566331467868156076694470725012581807637143924900237372985620043840065714693775257817646704090906578576846633753093963842738755721662037021492523388484874604680938448553780019172784044715950033871291067210686570409056178684703385881639298739057703908743134802522045130333895428801463557062666008296708328073830957544789354666317690217249454192096517752875112636731459635071524532399909896953274964986738942104429696113399287681867263512715508446504005233896222282327071544267109586120577556951613420094184404636260571463468994675889727902477345272694525944098493701042805352851095380204282654977653010004302217005897107742511063769525583231089512731026552031310520060470975835399871770194362232546152532972405365589919128188627767619263579731835525059420650207030035789154647055970407806519548765169410597629602101454950246021815026945367975795023767234892745869466682793145976510818115740129889985390819197512190207660780757959894719456784962196532401141990378895567487705510898454232324584502587687565895284821425288091449063952817280045003323271954909387828508375358665736565508285982091571202582824058618557159660180074481892257294579921191728054908081449517543046889377142709304272735741136057738945615271479745424811573153151636604735083034932850415940170856327818193048688232229040947647673636092511269477738355649670437164029881002688735611517053806610720972515898864344944340828920614660354050152029156593067205099091069590192138507223583779271155293138945957679009534153702726427211711416771151235014148772834648006211089943595648218275357016916906618822229666019220729005149164279632218709714639134512900883136530442260713794848594161337912972078871105877177722297538527504444746015374152205834062972369813021811751595170097262337020024297539943121418872237119787301858324951408297539922870436136643117829678513372617347416970955896211498999679127946948652451582713134920292475847045614969661437354294942810481959550212846654179295182080576301522230492066479271537260120270310774799913177775955569511043983149886607021588883847431728209599037784025597653189978853846067767276756108248225798273622005230848661327230317068717147418891172159966030269941702318684556170867780937842002893963821302888266588138254641767454760198304544606245174735251382351213107829336963327388984672558579137818720945043604617452341655512616577697986460566279314311752967316830053587432413617873375975148465743468294637659861415960451503660662002491938279260730397603815576845100399149170530775081159657992848114569963938135500576925526954961737458839102686492463683318086450493881901300412242837930044980585792733419655849952813463305862650424296084063509088075411051901472669841635300783410136574075954450346749154025023017774186668597123121976624575923167804238700608719755047356980443375291877749799348745729805691125277022854199221067462221848778459599573121961091672266473790305094960848655906395785315080541541926791881526001440742778405381883895264870028350943207414430057030841825361661010870713328191216125978291448589855090039852997138624108885915028502371571655430384730543664392272392547361341743638798506998641219677071426697174656002729720024771653661219346265348176097350286986384482707043401676456750553173551797774321409866706566730248062537767060840341833344441736489261666087546782789122342623903943074652719724883724034036604510069033503438173076546889513718146007126556908761853744759438009585704760891192865397484646643270051123477048187152498390526128122149838353191748982107444468716630507612734115271481711688066136018974166087988667090295556950943758227749079592382655174931760500215293723347701561955801267738054130794601699796256652460300648820735845593159756779234858020866360911440224963835346114673134156554077740377949081464592548867014531369769958661945485702077923353698807639250826096578872564509952607286444363868005845100641690881310758393237121294004202231768613627274246240706129169350785191000502524407995349798660673207647831426171337004082456765880446359397598862802433485604491588186882542700463030252460783373476592350511950169606213511729203299441119986422476664210968135670392611314088741019394585828582038573452699452516187830414587328922421337925737797912678702375085897396033722312967506165267294344830142524311255575039241940185297002939172892038713966040422012333437767500780858038584041373203746376109760700881252313227335221903844970388739764305136735845565783496331234631112919145358576271637579516408411721770825874362766996415842502218287625249697338504233155875634696925740699850266109608081152095725857812277691304363388014430984842502498147650495174423992981268277131201041299770550410436055928270651325213124199051923042884488098747386033676678940513529472587882766322703138310028176528044390841386376756990698095753654824006273680852838546984006515116675374857172237413517863936252793788882417671721761523760384756976005957364846634649568033116044999001456971580977427223019293894060805805626046339643466373912000363085780263857315121430131334383233942225129890533904047126672846762872958370939398557011958153401014011803265039965244436770470171763141037588014613681040652402389199002865348468000667724543302973735791979559107735682631700524121307272684798365964389867069243797207470141670243404143536886297325068664236270229874576318807942954820032652816239448382503389957492902034038436875312421336885041841116005541878732098305688453767764161203615588953755442968907354135696378316085187276475292133018404499986826533858543808058653469388207938931532036885409340878069351184242247161866571105769050999521985007101515846081250084855226277674263523382652810364300286377785115891103179872205686379548762915916729901538911713112650521774006046938074481101318742145917406815688626343647325298235602842467380663293125611072385141862845686621244955211843879443098142824071511211612242463542547314972254569272871295623612794885170961233918235765380779894655808620616340466765372542998825685197900721307490715658621380218643948615579842072455741794951711582354082115239945999825883376199984951919790587301017782660550735203356200558289184827614673108291343336539479471240250044533993781531708836184242153086033606956553828083827356147391513656856396268959620443516346310542333884710759940757256010531764942590800203276973020867534878306491811718560466627259318380105429224540960284084062765683700086993113842816890234110394769845053472353134447391558406338049036782768839680726364217425590458430039561211396951506668854377718676578906176294517518432209369578175898039451023829802185361308940068584646632453783134919773788497890451035945234434723185001119788408212487663996232057587158345562914189036981492480074931676882731284959356204561460639939789422291262722701073866604060756419154492196007798490527169925166837227866415748251551005690740818848291019654538734556947708182529618372100971760421685646909993885351032791823364268204555194421248226398693253824518596866161796036705611403998916953646558541194305516296734029725559132287123867663516616558761423213090726850488963441151546114455701222782092910903200258584432817750869908059383816935618354846434413293205105212788321507827339001660285637245544510745936574098016773530377698710890878754766255117085357283457673956677053286421597069570087468441504461619279738413020647062776974349651806650131947486330873694038360870273207507925283337079658661353599877222680912412512464948258248368608255415642629958492617346843285472168894614006370011455239588476547198571790222972193915006481016772931473083310198165171085602260615715814264179568413573339433436705290048721623746056821137175010824984793073198077142340859367190611499286311722698629865054301082095206644702550412233611617101249789847584424774694623232182481206954205663724342996577340243362118442314265817521043870661770962928542711098239509616277381855191995538746342025347870235627875403907085067525095585352657191518279667323754720052757160678122491608057849534407047004906065839073310053228868388201119950736083999497250141095183316334225994749191767490994399624651407992521404664820202708532350499003188041905728827003125752567256693133065756056451386434481474088856107600353671092535923682838803058839154438379453900267346359259740937322497927158057603140501044192155431742227839903338984439579027084596193882117444952452051301627292781010479845433127742213312209562368033400842990614211169713786147381107114775283661939177209139838037544265116296508394527796568513121742496801918086243134742976393092218819402504384690054856590993540615922334455606960755441248160922936817735333630017872236181733885308450804140455917917286012113317023709445554183064904629121125742118151048762817910349772268576661610184024537547875151406917213656164280919513897858224421455659524555996434703964629410581854665319615547341063242606400727255595089310296037277785254926300088253212568644143333246832111431906777182264302542253157231588046342897838038053086422382059210018076801597731351028188040112823825324338869483993272970512418552672443709223076011734461465319542161310737035742935973994906494029336229434550248533409006906994203336229254652284074650094798645256704309405264755096913114233959841212163415174998479576187658142363930859962646085472862830393635441080485421706744358675961139067308032870986324842411291516187288734228915599173008705566369186555202998204338586650043924411095727350816847248273231573376338627204533760591618615370208335915884095393039263560667053447231334825871474086839568644666672742343484491840276654751828177983872135235106249844876440979569837142530135040224228545869602107809471955598646417816714831037788293643357876891361214926790189333957830766468571170901380376775745300873063793904616248818698672741042198658661367325400161007140929105224053199799173741669157648161583563591218992824700435783201146499156128913100882638127582488395121545391259379088345161452754382799885265403193485395725682581306768644840780766422580633705578027043038306986615026761116872410102584939114190775646029014617451594780008731341246461009670301491591860146629844880833427112218058768411855370427008198709727850026145874445734775054192124975640015049236456991960767931312907137961514933926153647997482438477388646795485563243821489611840101100342514678453905443045729077387948807238153567303857850613557143660405134027085497348937878490893482470904279701738824781243669068404822797052218127769533136763527038015071077239207221484596849590087210829581403000023484818725185260796762432243330933683212894343041095527419841709114998029827761249145389591522043892398546909474846754653437385252087576595020724731745907941884637207391678560952975347179617923793247049310469998801047907009882151696121555928111811130642159796563982526937471492171471130342302109776287883764344025951358041611467039364908438619463633894892187042960044032212380534885111359073221274552935862807709027567041799164056144879535326983735049168027222488197306309416615725262067879929445973375431395705298061453076361383648739970066000062297238214595137693404599615614530812246645820204935826018735373940220432314583080620027305048297605386778443614357083338721792866854061342684095387591893913034583219557345030613039279328072303667938258857947721025166411414708828719521815720274848472210582221889378100931285361559970254375477444642958268449761800036863077795318810634535250603005442084376691509650608469694739717692620818762724594030243971877389427037564075428340730363171412512875862183319945391218817306619780264433366761962808025882931298947374059314382636661228212831065243790635647845022330379176062594828277292210574781929508875889431839427938174682945510114519259340443474254817082897475324902092641078115984480776619848528614741450044611469643236602709550900618668352429761762937648663369921113487552616445501266548827584395629056915398966409812184933893089055338444049274657476172386724555193630842170984496604623415261698811740328171452862948648643798605255261028207779113682551425193772999629346672899313427595123388579300972543268512185472788987234373973140870625877875739391187724429952688716651581906459270913262138126226408784503846832042260852820059552083336902262835070249369594747511559368731081808287980258568402786895672592974361512783669464107344792097867056291764731713915345165251306637213849838400268706696664248010331328728986306736857215056650086887692361468380959917348466611366133269426094887005711830856009025896421630316672589231900322295249819456238782145958469977563868776552499797745644996047667296026757356825605225088037865573586291080856065187794825445397377761441101893826637280446139420712087115951701297254154626316562560813703874028125818165229190277137523993669886809383512159421820461361304871991615544002904328274327418549163629320152978660144959685860527867219146944275273682581222405783448325017212748716744545740061557677657730253623792463110007665831598366061365562564131578872210389787588558651200081432012614485976762548446666622128432732350717660494787516972272853217343746329508092109959374092817206206165226311648607901812070497343869685394072548246306401273877582047089127770879225636532475207210146988188692113461804265695718505775178457051554005221287435781719692518731378552044671507129789951002198374172267747959625186879356258832008458062256576457793635127005913488414198214470838195469066055176818877855922965099476458836861922931718029972280806810310098065619263220382947983889353820167171694845067538377716756787776060611772289516004019806409378554484017225535784401001560827184035026678712360008160276740631532767185298410994551104767160498871436352632971837541921767213750887096758631361788192660990721543751408482129289466035700633149958132198302013473130410899545342605997284281465093237670018508082017600170121857112570107846035417637201923783379794613112811506031957660454763980152638454894988852750492499370880052217054538709946890340904380194923080509055814068887096818098344309629578490740715017001622270154090604415349940976021536227489182419991411347236198435205536648693210982301708303340404264153504232386330921151428326669434176954303603757716039155856460806201100907897051922529351774045494148920789446139781948954844078470454440796826794374432397397388336204569621002619139749886645081338309469711316410181790086357647653001332709907495141560007155164479519746790069663281603696465808562200622380020236078131441618550877401706306449262068837520272820165301689791415519195115265051383998041451382105721249627767324652708279303474295536470731440494188946365655887638782272763766056505828391714833867229637822832532300554086542564399201394922749598889657183050223621112669263201884215572621169741141469825143553651783695840925588366446164134096863524098913693408401952093176399885366283349336539988968104251493536174080348179197320626320402559117955674030535290449780402886634593491672820764426954425730053824715685821726862431425459606765335285045448434422178221540115162973363974099868026637796710515690073858320759840303319489795270115470566865451506535044862138815939182102431556478694343400833695135605706722162586845878292735839878762313645233095244454666108810546012752186318338329187134641800224011209067358843053801096644517393146665457429332478556036646326405008169413729124013718326068116743130987092781061086997534083669162526556991838355973518903196277252735007580913724492685530586375359844080706541159565745212562660414727001022892672776293026378570023401048418871251412285650385960022004410778165768807621775277299419467884462040940989650140472741516095113707982743495321186998558112854329568894303655953252563121254344439691454551708413198116128994893912514998779749347963135140401887576768084172144917683876297946247580610867374960865614358339820831637052114397598979925278318822707009466588766098328395082953959837536874808903661409778977817468861951739387463593415582841633206347027678984386524489374046162195145327598857716712253497561510853396286049381857470826800682412487757294486792187282201436490176908105732084946717512865201065276118746862219328712810866316636252489425798732946454909331946850066686599085271817381932333721896500958282139743538690505561345326274319331865181879389717605076846795937366719143510149896873985494784663456889440338775385970639790264594299320693689375177838342061246347655564636197553974483361213356580047788522809276260646851772164641169395457429711748518306978988750366101239675077137618147023263172367314531305455553043664204934259700812026320164475271842961072756572282282611844492232975844045815152692815593843461142036874079871368203285774243546938154267291354609767062366952729353024578172068760999249441788798284791507521782717689019511572561706216603568944610485854882568143530498552862260820296652064899131034465699841334889700477704782976247024986264361025855077277156438266889796712691096738797963034696576560991600122326873593884554186597109007113022880714788890665828712823818407342308480197785550140626742439234807542073947255074692644887711691033188187650621161759016608281517407914989282408571852110183646140296839942579379572610025363448125749737119188535036524157549032387678026960813253377883849011242274830479050108132113581525040924578377163874084919638046442736707695662564851730479681054213651480166612795694337160941099389977334945524756155380273263741161847223423716679453573900344978850037478016317427971545460358140901080888427280084765513628923216570371634415329454843797068941213230982180810698255828472122328709358181913020537798723910483971089817341484568557973223895900183975064276517472399628539549005888362805530919566722317496234501070718781376527935379917610706014878326141612155602145896383905507261298529130390534908605813491464727401611483173592163135241009747173845983582585632666807945830672453072022022204066185060376015845390379884632764457101524830971582728937485252067591778085074079901314873788177243863727988799401547832977597274888619968938001443102927120060113793565596864769279519948422701904398011351720384378186819466047334435145049572730288156471727414973590535780071579502243418445793877186291788476301972074670920205231338963708810774959151223929781075618364715001004886155582148213540615281408153889833412087591110934837934055494802834650659536445526506234900999831753397140923001684428853763030966271372015230930480981624042453341444667448069303036378009799992634149851980351821839863485585574028170485299702857521490840789205864018099875226750118969034779644582862220112218725673679907893539258053309148525982637732183919551313888966897244727114829642235149284793021965847515392296959267132965896643017558069824830017973250289678757717044461253110083918191146203266773243297519565513533099939476037082891980892936089886424820355283713538813592032906855304735903730035160540297142982559097930755360310319891247227877276104772820934382271344621041087829190564342836221906014094569491510994134187780820632765182172822005592167385921964376910512426397407514885504472424511157761084894327244992600159797827407208098964929271695031749927072354203977546087897994167188683677127101236428710474616266516803305682766191551020093090160982464209801651379562089993611745186240621506767506683192625175927164825348581398686629014479494704439340294986403980048375844357007421628421881969271182995064231396598949873201405034910425941023007573508310954181721103445708253766882964397662170922490348955941477761943776337115503842286927960037967771891996973130894982574615433701163345030561603188984321390300088984300654367284034065567572151200822878922389939297147603948767972972734443673634147223511374557727403460399596646345691959285834485848482950344042385669752915141318870357804711367374238072605890574551677892891355777877294803082533396004900134944429493290278423418805467507394308233440547776511899553851839152384898506559925392454626322895503954164265570627424084742750143479261458131625524360080095300780227312543520899824188955762105756987182114665171102070302053916943709086289177751480723532232652695224902073655632208957973134480919127456634095071268102646514696190215180463444387565157405711275529780944949940058735538153644031556819813114647431410370419932227435336351082714551340846176572203867446172340467348218054366747591300358532505816267477851922678600676228230183361828272368599384870796907023354981974288017818946427269246600809462831517092363609194687835080819704177165524483557749688845565036376253760467603903611326356347081581718632483569798837393530293818889597241855815012760716964730662125754711470627301580182496910500041658833999827848883595972774570492370821064805476610046933467644579042193642005654104726474919626402204962188267161294846104670966257305825562851053210545631605547171198987844365903879318677925078036138409129505952858139347960575419709851243026294334358142328004101314839992298400739186891837886049642613882862474356066212322796607528027971681799013239910205838770434802514017618357821382242217172713516830735371599489443222825122612912284077512169481704157353538987625772016235900714061007047075817721383937333120847418560960233750965639455924960252890494386223352931278777767623175827041118631828987788676985548159070150661731534828962121242560856335827360612335189733772074035057798777613448401548692254301741670443599324356852242191319748742439608472899414567504289258697630309341539330009259258858749802064229046558808561919284174567264990648335518897215252925766829721731832530730573339550620672616296574257472638977507976125374771989760613032591983076305320762142997444355165376277209919086417760018245264870129922562714405124079767691244345516320753160719396041485334462507914733061035373284101750176829305465661063734805211170711218598754175699188955971766596758779038188132709433408716250432068446096027836785202226020321521050426432036541041341817273947717868545998767748511878360942786019300462589831005042031027994846126265737541791820541481256947551536965355893052631026510868035744193014509744953943170264811193021342301129433666262609145296341440446984629465551946914019561909724124102161153581634412963410880527096559093419369042419430951004786903686939852244010214438028945637700386104177603254246185012460368723400793105384158408594370728300650633051496975428422899828849507131293187889554637413363728193212514795449069759989142886511036650753665916102444047857056510093440996175776560414217992761751371605046737249116279728587994625903006051588630194005099478300892904131887255740492991809495644354226351440731274019021012275390203681807333165589329631929886205010682563096846410422161877053117693921555213986243994930067060302398600909389726680743960311351171415988756864550881387346991067960212120429468328547700442090966847003060186131515729623910375462770014582785548908776588368552773149402237345469746148779325815487049914229199675843984269272946452522681133016067245606847360094407937149885456842370629411205207274183560104614249747300393818552660220302378256743924702316319792483076655569170124026329601320042663385411897194074200802646527035174004666277806686207674495867731244494087630529369490642611102485482206863279913220772753916211015138694766674269238139282175262737376476280229521549563262543776489430123574103752830909341546787478366258017975583916560376882499779791993668654388662052067593630565212719672753199958497164116723577064130888611805597808552665283082585218902290601768097852045315526572250050007120757726825523404315105221558609985686442797301602128932228068634828421854292083254594008380692524818048036393526404165345000686545192131023119662354837598738960279010233953697565201563523299098231860138463760514518668250974645189473564430748888782166685651927590566581476347417506031534163741730507817453424242136148093243393948704047450690886990728976962465868918453447776010015838904808798669051128343855101922347189823119485325859176964612068298277877927841178370281460013872407019978780711862350312998897360530829747551577241469424813302398937746570107047833980753021230007127600662889394175956589273427242717990416545983307339385901431104908737579737185509085294682967601420737346789825990822035979072186484812054285251523627740381195746437413513723380390301551921253896890686472667929106440892546859389859953246687397745086035584938134798667272895403180236755056175375127208007566027087118109575329197252303819536859460345194200812439026487917512743751692104682281198064061497052202906110502015348388424936993653910187778424811598498947072356974313295686658452644040697241971365011334302955143762478790636880285899633924071259066315305042433939748844056095460333202446813133000419838889731929654042597092825965382625974636790599138086962010771867908254345153629684235277252642040336883381266975365487302169385507475879162633676711592393798261234250733526405020997411646899519597953730075261615319375341618396987492014137124769553317871571860145129290004839741914483864101940924180660594437159190569117265096393902131522790911260858416610496916215332007731280895169851831673460560444350317831514811423344974653611536004363579101525962189046960288551172333195338458293029271915478386549264898002511995355564232991513009950701809336656247272708095107961630317068540896640677043501326347623669203263419123362324986910355596422257190337608263651951862940227593304867648913569682451720712305619365046470445159700293966623720467524027370061118987082107961394349650118541327377049796186473586379773874992782332208799959065086950669831184344973909186008853382258504976018753341162290596689965245231343974907000547907763402272960579364280002380071970761442471661614994600315174968226688972369402632541843730556016385334283920787642808406282542287233684017735500227688284990422271245119739653607780960962492083244869828410499150303323694319426800324538521792462558672998999100045892599638661577875965500030860479199788451079013893564716511714400071325593085722531959160665313284305447528401254965650878023602768331662154200736902802979174213962463283581727403494003451180627567319000765709858167533935245796977019437830793153863598300126705811089994268076389223187479221716352494051957779603429068055489747180139921249688048529087901580370713133569239282194050025655775072230096079556676707084472817298979047827072733420776241684011203040390616073083793655799966445344203095081251693141058183497374784618779793360132758342513296024085778467160350321767114517168269760497043459271765994557689106820018139254624393300207772917531524362088265475795754666416341998448802907081319533995470256307139795734421631630820160742061413538108607176715175043450498896046630470096542475603563894496361429343838424979297496655488187837994663722481195003275670988547579550634853046417138948079634257967933412693231815573684451461091083754444664154473991966384443574182804403050647173306235604146098322107172555256575116484161226221825082158041157584280780029018750557124739664071864984444888443131946061113444010978934210905070814405995583820350658591673087011968321018673689659121737612398244771280702360371054952344341089943290075039317357019063802647247376003495951043308248674748051289176412413043675382741887645665780009659739001872494368378872573093598023125761407409451236003143857441671908568087795432641208483592106078001619836013931821051067901933162373651259531632225589202278292046954263245718288763753956235892283635274388169650491657016362438469745521369951530091789798431955445418116895118005215496876568039692776406531729726038351790527687874438976752116640734117172006288525504396459620455668345051188300721992399651137214124590755302107455536296507796166131207968941901913849359059826197014026673176408711349588786536844315344838054259189672106396371513559695882421266231493522342573175020406859902614051446315607831567808271301340707998423054687662065383435742648971188671406935532686462074072572358687449001726431657504159324234227454372277788706490334697107614459943281585483492537564471440932474293131447882997040489832815255929180070714654817305421731258533668357296331658392977622103670398879349970939976959943536358420400320514840475755549109279308424351218696944938086236489010980047426320719969457297310689973407886869064672481623010842106782387960638442255700083901820948398521760458778221736553490152236877340018478513373102334062644741576396988593442875588163036044046487066075520734899286242242549753713903972901510057734960072212960631525933498380449677509615219267076197082749684090018792536780029103563540145622678640074531371270600347908426683307572814416950096551692338616761440892631702858193353162976508030617891258042613309904019231170131969235836457236929956611861143836148215768400043777549572363275529688236288923079326731932358670911967456761701737745903434968608870377858310570661340813232177896449314666534234119504966067112380721304398572758466365138699959240671837621973090365669721724704070824204904596211317609673410723251484226652046846270406930769916564349748861308058850787291674992153817497530480790640745026221821259514757190391817918465961838293575455364181655880798354200310883235664218307778595132505965843274819402556774815515315311065375771222873291577561944305003839709836573420932550152532514742764423248205067307437427973532875550732423602423651217065766797725602940260225394986373493016213354866493413514518698530530401644658717569251165430471031188380337037428477626911634509847871386645055661054436139836749119273231796092356908801082368156989005482344682615375676162720830658648614486563900639737287232757107675497470049594799036583606055647606795463009628418732374584629008486758813769236020312117082974898857139937628979141656405734211847094213090514434865238989100042421567040095366514895098694946258112174716126394227886826839379724172966553248191503353129434959495770443010128701878657785977484892022075774212453356654131700179842762066311093046046024172514655558033516183507547217275181923904470985166251202128717119061559933947125463678362100975987142024257050620158108971162090947289223677747185253603781277516304153068328026517179012072242546650833229596742772468564195158082457514713292169447311019820403384297159993289689580669841950607423160242808093918920920957709928571333459225548971605202137666502301261117395295366905683336866754550404685691890280077881423761399112985484873154254910032274282298462289840184167612136055524384392853039326726268692758915996838581812915005946996931992140439279936565325744891706681165852555006831135287982333219854292793139359085294133665257813435031928449335735781404143768613516174937508273339774270358470891006951086805423956575022967014996148107028835404203707595557244167750776605459230520791234098818123891981000496659805839068989473021380100323253550241527817397026017140384384642678380908000556055661429964841817366710772802424950870111602081315850046440344212074323734864520321755626137244453483386514974182324018950341181915256209577646800512534567897100113971237504902544118843373717089794719395768775694535852342244220747522106880284223770942723260720936414632724413641032943485598828820065092597301626570673992094496389414069608977811107609394775361230153512682404739766201893389767350998214949875119996730070133167501917529230645901263511275459048929370536962382500155745449717906792319248444652882256782433508078592989157469700331044167516443232375134863444260352615376131772354534411471537430249913481317121909723524808394649700880521122964851852952958280533574665441165201512691881426008939486623167007315329582809148438598886380544685037222293161838990398048569910505038319208297285128848312281959292844758527133380033349659469974791605684248999782211361359843683675534277536941635112482562305332844063486157037808968674420654118408813504984419125899970484281099299861610824388284066791394713134494521204219967860843339353998855495903884796985131429239036435206617721486781316465341574761428057892367842256232304936348972120155043785702912378145528515188195426380587334807436563454164407773812226316944915696571464523840684911673186559465738828058334319039567529586880997027022547352339787586097531652647440932156240160944535228046405279760101103306685583484129335594382984384975902948317214054163141330452117456575053866676769863996622468559025178581705159650160337154368466219804303167603619272722824946839919380145896536758299253881944980277916491434556640038930014332485375762672737279417175926174996575155014964148577889126097409820528587001906780719985897416786406183714806874791189120000314714348383631196658344461778831205191735306893546192186624404578375424492614484209302699993673727200129140501317129378998113131446421548110808897787329245229450209858013608343037019218650519707376511825421248543999575608203712742285194545425043715421331061853399612505724544037828814328648635548725481477840453143451543908355074285464664749577555453473714730954657492094754868410111574415487285070432011513988466644536864188063609552731634406703842983123490816856925874689690719929363933103920029514485152406654640862610585756743490246185238071456663305651210787272994922375269606999876464414584914494495017091894009737200531629056213850309743057620201620054141692466469827119240409469089372691561618257943135151498840174151872449031547994127418674981211310302558592545835240255256670253180244795821274379391046682449090201078206545935350258639462433140847532456002850861593469316262484959104981448906851325483891083834934396436049726805998607765980914201282441282424048393096679704936495876440219551755730909082518251248637651625517600314105658563876476015012644943040123696252155089512751456295785982705310555831063107473446430965060149578821116098907560161294583405419346783200217725391196103663619497695099990000097904740893525373848460745406661855750922480961940365426332315837462564363420908303773997514354589035725793846545461736293855396676087466679444979248226202098030237546997509894992396356068511054778479344601443415805131042947516887539395005451220689204461619997494897409799011764316862938359746796460944396645070246910139848217550429862620038049703932384722009979757412045768024157226393416887702774641453845377233987182149186483390921914923267242043017314709116021927703715278110596380886073145089837405664122679107052720464928858864255774008309026950773298198779693451188346558450173475384914683911943082874038988208119823929721076792619922539833961117820751837955312183986816568828312880442666482953001064868325622985911058053821511180683856212006152607085963869299235530992598744366574459842291427341609468121837248468994623365612610285329881492686120076217943457161023698984739023519310657490544395449091467174579127606512846776069841751506006193786134834189384062257532303597141994329153240032330198436786758906553307749011941558152980083686749564738674551280976616677045437473630234308467644201870656246390561330975276405983563940381654074833028311972818976832213213384441853283319516660808405197102504677701365025675172493916090543959149582933889254982333456197295211907933125345473572901451502013998912747836722210699301586429985136764620724244997947759017481864556416585712310462793377992572151514957556214880610381836146723495120399299130653353618436412445183051416789053604153658958799061271205583577630769421614778870532396946516778819865915695452611340051003030075326238114359533653543908357466922774787445716515841757729010706732992321184282768970380243134775514283333848511878884282871388250652268042633877008059928637902327866291365778453562629007248252775802109237075400605427018260455268929381453946404770383816737231544664244883187063100731222964876207493817467304104214095494603080733469258642998309235958653025411069077272885904850835613500297703319091734152294197583253389681021375865973971322497741335226165459091954642141916350566567589594025122528471655315924733774974430324021350609436502636965123020133131565893711957639085847864002003096926436011744932750033427775823416447990834676761143110592808233405534366432041980878811581462349902227414818405272592945795508513047018608214854894527448003384218018182679405306853380786281259497086752798045916431319010433724466379577937070417377128695232600401590857136488166248485356167276382126210769887111687526160397098688405878566759872444780015305702427033293467206088998451728683262330371425790453405392573551981028957927813733787585068362963312738107799607176576970552504143043493715563774315916419005587084944851374257974819013942702722267430419238529219817659089544244500152287373487719869070684797279198366442450448085685983197906230184546353390821117705590100408224704096419839023146969640742980965418659746919104816298153164713315693731093615898200691961094667543732934880124736952575531694711114426199505225189918985171788970745780137823527815327456831608488063555648123017920388322107670879537351967915733789890252853618653984831497907048148364788363797863472404359291416468067221019641225418917247665266477877167387574780084412476208543813436692837250323218671071249290621395245838541134887702885771529095419626205242121807958208967399394759497575786244629258346822180512542369268696004228448814499714126688448263555030232843323455843470294015867367597379115395095832022274869049805984968201980258855278191299862192922108375592565508620202118716826697350074834536993935300901781360855156150153561290606474043554870994664709620191776103921126354429699619477557393854625649685854178309275468789303999724445312668544065486235008839606896880754266303956968471550017201157116334403739298880629656939009557072113018523444410194571975590113255609385026444251530588051238372546371095684947302950660519161583393773572127694102664510190595001662918003550656182957407345837859274706804389449547591927176026367082798307762043782333908031473253786707191829444527952301730326316382640129796293866419789378836436094053189159326645574293305227548150324076446008401035634052459981333398182067880967414398322148559476884228537238919815013538857550206091512277849774500814384597068073247775749841774855616791970130955085757115147806743270625189780349506053165774951427541065850332507215799455287738224493975834099345832494419031641409015148151962704159747226170232184629650343034465216852567593897336019654147081770259060304418725186797812407231627018966897211629847845900705702557907491969823790141189202345278120088177267241390049701492081357939694961610401617130350980641521256579611967940003674916475786161014783995155007509224013879586968119764007806493908878825830343495065374704529492494445561898191555038740676944884615415422454383434939812292139422676019943319224877439494724293477110110740785533499427883360900814561146630076002988631057627975642522877411560211941972409512136131918148770277086043215905720835117084642080468060337869616328882817508124327236384102127964514508829441901161482433127709315334517154443388713809027301169166438072561617413721849794559931859863042262083128393687513856366042811042559124438079626518250026710847193068520956408063440890965205509167722801421167867021917170029768308985893854772658331755031439361050167974369824714688823468671001906277325491214357689285317888947563731554907036046129870018680946961963193936231450870526374876413274851060578019516384913162315916486306858087388156830697372917978881668384407809901366616877282426871412534586808756465946277462436040186227651344953307317921307145534547513883235306666280902482603533451278259308856143960679073653769564175582257809170224244353999575156824293585932087082183541304515484464743892018960146935598917791475022674478683897825449899504430096380973378684080522756085544879858338512134764835591639039784432119286479059145930996954602326050892523784889074341311274776175004734355203063566986776475834463173154484758548973299173866924689291559277421927743752419125958757698528918232139050768428121698754808592344963228188084471344871571701817720766867474368494800315536180225072831718380108110838259671245048315319679851811288446012881301828621174230078486863549558045911475082484358494142111036845600973336702501438678913475949648194080833987828389620098081398973734443876168554227288596465262794194440569779757428739195772061042605033814776177011682079296474488027419965308188314657580525872783346715141597375468618002203363043341607248150609739070709197141731534538190365674015784734795977259628056505621073489567871633485654128577752736567012528054917002597979572801784216157222129433414294409269274177245700175235226566827018837695058628947771427609034709396344869215845199597417838053083098634033199901295288702663240781282536283123080490560844100009370319657734529152070575181540970323480117933900737655472152707505030670379231698403008559097393855452596456544509976874133375799217127023554117669674377364138891201055024938956218376617489350457644282074163619915450922441771491389535718714628538623459875393629618743670137513656677084819673811095600028882138091203141135432503441513771959199423172802635739801036683300420393457521793802117945714163609472434867435110275612404372318981224518539764579338174176857696323810337342290396932927571437403097586564394897103103494500095833029985821411295832596088597368862669142907662628149246646093123235342858292052708876112281274274242321052357336345660201258906725015365443021159841588142091180032847470891641936429751475062072908272734061110241360783027881458481594297090980976255500516293107548507201852429221494165221148202295681018787307257851451447764801030075143145504638975639819229564924996017493479970715792376369232444221870384000980112849514457519189316709588733304134372984779235399016753731225394853589289447166342234482923677303039902291885485627197443610620606781977245860647436287359940438476397468457979723902354390597010745672182064953941717243695468706877901862552704627831099021060370684079059471027521827288906622717581293032938519391060734729303774958298104021161379515133265131292879795065393086776947297123319505687143901441773039714023336310108366289854189947307138423627214790410165512307058330617457685665828718524550255219635935242612936066043771863833426170962344635224875232578170713082261120945905345477761938313664575223808973999587464983081099525621103794910308553792769662727054030775002640532163365753188881645962342769069025082417563169680080446952134213374716364379554680449041824775117906273951928906879532773219270305315202194129080473233042388512024438295827241222926355133443783559124457376085722909394839186615884645029579860273043558101750197032085849667239631011319021659176494398727790368740735940052049901918848163543232173378602204616314338788533243668154639373560699285795451999345457065578236321662819696083167358772256868154700348609746719835370452165361628138802637244415242394159662269487444504840195824720817139188247996039746409451340787168883693511165972675032320137340305904255723250963845760773797690798181193843152766274558362612926391520547030015087782034720793922084392222457586440913629605616493323526067087771178775432385283577339321319899364074876056816375798072927316464405769395794381629235552273875295361563164435076676820909669427540126251050298574302427566322819822866602406473862808249356099734063864899778482673932534350048436071780972641302595623409793819311301401577583595038531945102509349275884887447990660063600988846009880557654504176248363023015135596452129858722959963259395989517852523551795877754592409293581929529057654366504065885659838968011200344879328054104820344998593204647894033172294907397633842139878763325135466819782080144350224067209687843094103799741850423021833588320775170729503558889695448005707264719991935073557861315503508537244047743914254995356399596447131839067878186162324492578163010214803392319880695560032226912293310002007683079279170046345763501341311592796896227450997682366499319404191617114213334899656728748556839444600386485070279199069854530862999130991070041559294780797139782087686986362530581501667575796521761093189696039684921272254634632154181337112705360569974725376394098931984346769543704552261994132861100557841017803196888318543672771406305165127711376963761529170262300538433532194692291643329341774901264564124753355672689580071145531248714018450026196112548271643076025724394126411575449724063781908303569143126408422547027186875719158366222234742755481037843572324927923806709693450268422441802463760256719217185609677495278582010043156763625605323923319040466911683318685738162263441132045224685847815137344938868845158156510834652980459812915480506635580352086689834428950232163031921026843387370533858677349893368646436500525768214845239135183558865295767204487519542341822742476748360039402255621342155108045998472954479376952860633354339561362789234197469403570222590300296580030600487288828491162928263777202807575921791769611848452719908817264577255409935648160724030757160793971214754520265704668503932973694096129792468906680377230521194086344989002676994017750761982012850941074772587574255449128996966660077276700164376537505918504902952060282509186992240716020703039024437369311273892459263034701599391937843767693026081489098238356913719049680414041581567167186499923988227654157898960568760952731362069042364720544661771026278498532111705473187025404328114244992643920148429531237688348888509720228927658079497031168580574026683133481090414725005190824303366080637608130955913691388901035579840420992972775165356350009322962478439569739595711800008668539760205874856801898184449115023240056023621491424874444842941830097304977083633730419645601878612650002971859301386049283855405282657156398882497423596081948104840846155148395770830393534837953041392915526050576211140598104199558248012621599306182858075853827676023397098995727741481533662880617439590432462548724797541162834965205362439983081033562315390201627330967459152452898962505085976352079451033151298255328129702659111065659202890693955866287431665460739063227145476732579842525849975364077702537961254553415466669974301140618762868796145688068556430443843675280389144197233771965648152403068175649993920663357034967900393204174745053567783829304087672286179296113353764110326310009192833221083423613753307488632651504514237602972349593122637340722486680148367800683646598123201970980094294687415160083637579411551326961863224659421341091253547747856688742152177389102959740444805634912387066758555018443618225857511142549682898594455904028520577145354127322848752551795407927723358076762339367046373093251073956368976384934308239904832177829444926350255010623061261899326663511040498288455785408097646130221268752692215447872643998260540249770074195988640946345617501294452252855685250185150783980540018509528265406649798867042098683536493614851095324564787967308255073353954557916214802440444336717397068934148461688519126748951729823702736114862589901185560766130168505543873221687562815814485090314083649059316158131142897883743368419031326904414378824271722345921630113626923398675630191215905953117724615986388646084153760070447403929320774272277303502100861265257134850880218172172278831694799931472578666281155682046577392587599595859267059610233197333732740346434994755397127020342122352281534079185409289082001947743024623116872360377643308609801186464137621674594895939446938631945296281010472293108037713766498734140768123497626885927036395866759706579442531745901985262292842760843200539378287826769925149415902410167853632920204537404296325515923705826253643003954370046783826876699935559517158832051140723534077571789941741664706603771026192694828161269671752625057790460061501115701748699768552012813429325017289280897618054656703736891625641920049112253479925339186691209251025989963990126356238437078084579297232445920004031156942201644951235125745142223016148827902567118394032357230719585689284578907511833539936195944815079305146473966567473011209903171581449607250709045991261616066550321470426108573751843802792350196907638411066753385039146939330246699077146580307459333894830986739313826458216148944568857475856595719156337224779387429126910126258346985909220849673539429345999805146872963896251621803490865284889428790828716998360877840632184775573866396178367182668571710716874289395380280639029473287864756465542411485393236115857855139133549795123187664066117521755688435135325675707233249640587183416091399928381975013437323856524583111224457240987650343509461827046291147372002251776634913218378077167932581487906617368021831627843384696163151225502257072779805473204586274985769974692786532929014814049680473720136776388550049507910517941951277436963423420710701919265302799665643473045702285583895130872458640557810919510188600835422372414066784461843092461585887742419882127403977328429186956028081399677801344841680200299803049822106115647418585564549281331013441142039894614789273230860233032734350972412614516609020823926443653744380532396510971610551555947773512375180239425047568234432644916293648734470259551015279977767092276482045015114465890178823593265791017162922020562355748935690609180659176109663258158337984230973624583641858595694276196841908823890442429755946139721912090137277410194298898246764585964662066069358196824548105534148865363746964501559486191942355831975251541377643732828736697880740772028494983170694566325685631684647707521314868153481439456559909680498542273742326049339960570428820816174591520170356236881274584713535254129653556939360309963825837360884496228910862768798274367426323919717923067389532737383660371778903721563733540500346238931289593495816962725166914541499195499378135985096185122278165072296130686170712579678520282126133858106072448139102899217511271425723871511608714155449545146660484190057745647578496309481418729507319480152423640956700768405793006630021508597695485203079578906037514388513325699133498583335655798872888346051987456440035250863139021180940892540263773258429440646321470617663665325082932804222831204668253552444895357987465145499047779612037701828849334135218004197981806174334230594289340406514210139722381728213661934631542138435779779696522460337812855220465949590714412837707682999836262383928901964126416859795966713233231817687128642167617006286825248942539483509289667672932938148807945219196597227885235939750020245196259800405322612730785526208020879351902856400014267412290206573153253137972140739585867286240275357968902026141329301701966297323115103176392591101299723399434401452853626685798287219582995263672126279606397850738147134905257204517144236924916881447847071558947323548219314984818026723800051500577130637893193945490603271534189535025094061200109145551519857907581274361321284467429620011921304390930366156040552199745568119234149426219784724871620625233145128200397015371526882817175821360804184869221038968115003747747153394928407667272257222214832590137421622380691285072990099979748494156958143881671465682066721526564982937829452147544749702199304934135177575876629105026470690355390930252867417557791306197272389358326896592519969217676515154546533134432964384015267314790451190611336199679571316928166917694381648208018548364852675900868113293671320167666207819267032134995307656866105717180438193936024384084183383505461131116759416650677283554439051994684615462976784178294417322566164046658541502947296446436212629299653113234088716693544700311861759481607349271740629497755712038626108837306257184283683570759681997564534112319713019181160934857159875201896956574275187960008944943654776445925548727398929637114577307838494914970772707238507648952648025821711533449060315168109784802164202036738037075155068347775195715036045913546997122330435574276151019248554464030092306075760315495576290080214346619798589594257740115333976832316586008505020253137539879060995087349614827415361193173323641913861957985910326244232547927933920397928558306799008959484166410924596087570308309137257939594562366894188355029945360822451103642263858063972640026452248523364691932373142658988628343081383388312883560291751515018800505104012986688909424712916107767307954999433171033517904974252239124456887473552064542215805587796012426417467696212749239531148863986449301705202142780182976670271515432727773323214349503855562316282568909468313335933673761436097628487071056764208095184318822509995491800739534691260165831781355996718368212312893225832111576827642077918538257024126273791622813401357840074243152220360914455114558598979447074932053852228386659193751569825632432130644578361726310692302084736996801228353578834201552927671059728481559182789202329039310655751277851815332490732096927568333849505511052227683790388048553934848539454805786315040839923701660012529652725921961288848591478196769777522982782776948257845165887212726103420497738525270996880642508470181885686953174401032388820792956867720001130785178725642521814469657124965819097961353209037160394273479962869137652762148528678581814952326543840774469744403502567313532411955361933714481128927452873276656447278457048264291652894683184484775403476306227148654873590019227418173270115518994988392066341268271195767827975158818528160088245134950585880640867858600455448650058383725562839993252138524806734219365078364517804668001544159572327299415525631232271852202422282998627866371372853198330444516779711716320208464869914782098019205822585264217704047896286075019247978886073035592223837160234990190184230665166024809606932522659846539527921516090603730066952629158633949137530363119725812954061740170203998223421744674737727779225723756169779638271645136909764590740966253062457447736913239820338491196393826542534586308670933160689135692030563285807127985631876992970635774296994856541030078092818365582127182712717209062559376195836696480104535588674550755355691845224399123772295905421395835140172092689206128171218211453641571185058817427484903104828378196871713005926897760162717246122813238296419210185813865213207580965085357070075630041166422481018658384844133218601349499092871925916916710386582389227480374905621580135309466270300574538533431459991752892443279911703304813894487350112502644634811702875357319933358759947013528665725938847301113878489997934211233599154386988138181199975688258905648736556154444556797060269440178736292968142057486059095639411745771373684318408744269766215683373793523656201934856976046971516181030676321290307480724438990455755394500440807713141650529966463975216648071858586337023060879500054324678868319175483990877022407771460931327155501253449764956247723803233693869024624642418017018293466398205882445563676641279395271047504192593594705412893232181614396083433522533425782987852379047938316574443686323782671581051066800717049395281457051703319462109333939923712114131461532359710527950543889146733579538687364782807307052036682743260700034441308455739006804766473531777451483146256184575679933109164092437719140742557395120985374711732402499446878121841054215753306087363119885383234417206643094339162920213770673230931332869901216792580789711549072432368689520894148365504896429898309229056826340668394807636657013240139647917509748293873898607310076970562838911246737859051102801150575266525664289358504198283865758433853795870654087114623877906011163198286809233662317380575301564787902743557492522551322583255904011248958929188327253363123258426115697150870961495520104588851924120266274315846975698190302920500065454771777097783501567769964703239344837938382732156368935066636687720479807669541171316230489819364110410091960718329211165582385717538409998805229859245956665681983395433283467435616189650139858563367990986541122114556913996133560113996202251507802519471011319932500919662782328584716097933935436436720533912563448190428092658742693229495254857278417327393827681641490584263621953019377880841843450824995974948963136652171527044198633725533996889649339067652214294300691154322252170310320065545687029046396974825448494545230148076577365210606243640801290342333553107528463899663031952206503764998423672452264729122094574005239008323446507556216492702467458664964765378368434091020774267239397662322069960695562273566188268258038811759652706381046725314558703197086424407602350755088007592927000475146323822488587176774284025821732340831824159685835421110708760995585965179629376409257079601305905043935981456469797496411071290339832385333763989308552858981437974100733558277068953090214300799701046782762068392159750606004280917212941321324657760571269964642644588854559074066315066673818105871768400266395462595329694881627764636058800356255493805852323838293482192747419495366295349949977330177170927434148584787582827284151607481280250358075475644430413227174117281000413297894806745610947796189394319160933969510110078936717332677264161701033041584049494101473945329792882583212510913442570672764227970390804677060177602244999990598321884892918894213767772787293444034237308569641029378526653971583636543823803149535735691989137610364479972631084084280187783478260500804617436657133258164310998646274648995123485815585252721451199950878152329998214382943738109502951585933746358381243789359639518363711017962775816336875865380246404726218726375745046885299910579611402170478985041088718365544092848156105105369886984889795656069502284756054338793224629079303512026775989625562225716392926265891224882361793764062327766317193419132364867610485667607124419251582617131100634460596088941819293763407132000034769987062784535813236415443999868803822219774247461380721511104536378320653806549498911572641521674754239925413551284468198184179223794343864902702503129837763832477484580413814754469951454022765074597693103445042754723273560370690908710903436169608541471752450552533468514225478839440891516840995008163721590976135922243734739578691313358094668980255384893335945496145951065333939203366554447550145557132626623812393316151332367567371357695605729458838773378016820062425896098300803216290504379159498864947776954439421144345996398973874388913693257809687982706117564921040084358287127122556640305258144150033518263896946616895016684972059131059930438907987020774209905000976104835972975802346026177886408864008394783751309983540758584543095001645616371505473059453279347395994824846081973809786338496961707083599630124647131996499083656782593133702223321579928210814779379842638042790123150063447177690503670792989446197524646530823053309107357560854600974994884835678316342130085748358572412146866592570734648302559298843680727762055676395787582028678258519303691566542608905970172178410449842840951867159770618784406173810830160722303084811108183318871478449941659719368095511745697004147290993528798288943563111458592209387758590971430497076060924676927746926850841395198941140742610841975251395903179520512030260986557953851166833371976154567567033917360417612902693289384638254331129399262576038390587988296852228516486634247057210073645906203901568561918996229097585034849696569467075675340759547475110536411510711259575412887719138805911236198961794611041574901104549323140820401614356344889823448926361422013651118680669643244875821219112590813799709377801081432389835235769615889300125267060203044173875772307625868892534167188596705605181468917994112446691090985328831733491094046507645707612301983293167372328593147225282911972510426029117971917962378046356416259169409609849939588019576045423490554150733465936307893868941701757085959137652114572438340341359048001588137415087105169920352305758422151185433063183462647598567613511858567983281036218074632458487918883765403290696371692723495459983527579890196696183224838825327704765276608091773493358403491187508617716383398377826547875915911163394825323389531292632215352398184343405709854227990871303850797580812384568347177464162425421234675929478606361847509796156264175133953981719001211036421717661624469820599677277691724628764362024121018954360594862914163993660156295375754821483841480285190768828779542166923902592159212944809115783981899011871853559268795361464563382969822815465987911276869910507287137612897678185907465597876679488697866067680395874431800813228912274823711691956808330785128788562314609231746323875784819735254531966597017915502585889742059014997521736032217211630651517982616832541420719886275772761221373668274086482188381344537783653422390609913861573233837248398425968983911540591639747330745329377715514774855667138399588739132462053828416326832201656097416178896999751881325787693334128476753062927974521586592820310212514350410420254139768890736542030479497923589566195021513705620302801342208868746107421209753753661617837734303298510345584772292108238758189627008377305785299621734580266471390019649527911554004980555853348424944621663009489156878674303305556493706147177969496388897235390297939482243915484685835017195328839709536779798707369120589360111605817192303506611627530251597455441269136363583398944636203596206368628302871376441250020220942974523653724275798221734058162284726798318512198527364648042500033677572183531329739667654180793525691046706608256775574348577486536293600485579331458123132793081986418035540680289361915626599714375017348903176407629183328535081088695599817396460589130848594079234865469908053992053919206696984991855213383638134137866048434166279869843719018336389257157092738328930459383270062394101628215554391058808609906599501487013930132911666799623399377341560478820893708731928392716074438393565641322461310684074833551854427135924253701056561058832329073124321443319600173971787487814262189533623075593685780885171359195009878084472299880489115067116340944721183899468048496987424581206207250935441568827655213480656734301205696887840674196757805788055169662956963653646795639992323945882008460121027980933414941287534400575563463947262797997053937340626128346334472277432006770652807751356811126515073144344516643344115965975525913536758386636663135053284334751195643269343385818140616386824666799949215365578278985198023484556700400981689121456643102641826313894150587245831739865506349930986844290229999537955936946901225853338268914939611816049051530123283365260076591592605940552496477023660500858540466140802103520866635088315749948077868195407348110631607081947384024409667320599845939020563493230528765771436711135392245219031056090507298949520573517070642384927335209805770723463519132360279166132752605287133671553718226325854885916351936558826140796795923183484585058137918176368280573139044922881445545495397599889498846249027748327543443337327937422831072095385198317586141501369958842971761484225392393941737517034750898154983561972879973515090044746657013469260630590223010731071726799888583091602094855518901028106020877493922516788838152024988624569164222809217052002529498873295144411858374014550613649544049396707464252717317533973026614269876875138092903792570636834796847710046172060500894349499755429353822636653740852954707050574824140368568068846757718190032831621833705974547245466733409766768620877864227248607256837769032488360533236861396398956369207307181434226042979456116186769995025928203068785347759385897653376337171524285467245084471312157676445079250831146340585149192167739017285007191366932042074598112634247743616128498700548092801934413899487879882034416327720744046514901254479617489245288519195405903421222092540397669752905739606158868999742101664064971270265870173950413282517948983385569729620793201682253030545472824607895562574360467109445198972997573414868023618628486473160980232725032002665824313903080767597905046195995922652253658942100461495246090150925481830692931720857760615486236800630201581873554994445706051641328214639372780815564072267001784619403794629874370828300202593929343228018960908472442402741072404630998260530839337904477950311969267791074281278577853408817363868303847003469323225885564391198049961114174338287317701039572287670481370264686762934337310851342836831965709513831938980083788356229770243359230494075996484571367737495525066953073598063018507997551146698417814511464873988559737940756134439988087434910339398608786034273887674814819422695393075308004605141607046247561941289378260408990763463459384577431891898767566390356767591089795662906774425943467714228450188569673451905736071416233983625122674153967011735543852290098469928654903945118716494608768402068466549749152228277167465901272412730207876131776215799126391772858586862226489377596077470275600634733401969825863760721017425339304097998497334302723689117807421082056873364246194025529553677316502951645942738381626100963247205250980043549603497579796659390452219408027926114476506379766248463979056836824888973861919554092283279409959143065639054934453113377667289861877018424297442890986343562691802323136418345098173839721143556639437394776692111579455271870653262991718954810217636474686436018591454971779095654473854928110055374571412315504719479032844559676803980479168309223053568555564202611196871319234640753370322882437998461253595493151806543957494324299927370900561949121430341894126710324522058350628891364398486865699554421834082116993758208718278770283280012051050357106722939873516727443144460497522631967741026380426344613118127159490242246415835559971482153038140070620073873022256939138181564443479681196178796395247389155664629780394072459792775086759196491187793424658155929596482775980950695486646265768717219281285067050214635705971375797103606316869134302411329633884213310283037804570407000236355691758679330499170841658964057444599679163091635360785733573097504022698868083577390785611654602296075287698311217860565251424284859974977427823565595088736068360654465841785044822323195860628402090470278562613247329615061782132040569565908114861277717647832062276980793076728817475736637262038089823735544395039239423624261810961218705739115652352848962400572545785676691368008119894409627873861893863266476824829352499602314641348192410212629904656751523340511711682446518934344160053274695102488788799837816661624370626352219518455911011482611803042582334553384130233103540425890283865420041234634387707543468188011075374349011411234084880844983695255746029191720434729710727505338617738868235265544827733139216919995375503538067699830921801204629123714001694975999659795992777364687098225103039919553872834976084874770047364447664350042031475665396386214951845891854617428776339414012732979112886588102199394036550513860351040154159451169624751193813491637099544222274278486040948142868352217544554055014918713334730116547267054419822586658473412706713012542595171021251357731678684570331051817483030346421084443135567818491942267226766285158523266825369424798971840486247472385641579716227807833609365898113311386546375342169321247541774426542525807738740877989564737931130296697226617419871591328886077077462175121509850488214012303437585057690232110259198546337035952683361794085596414586951333456755614776388530975505527897297825661877596181680386363929085677302999877483899989394100763547729715212933417546769763008817375069555109767679758777107374702834047773744144785186808723785409522708180214813900401384441759257206836867852252166365027791663392097956663081185011268080274220379651238898256625669366015305793698274742938927294900966255737554358035284209005488057416842903996031595025639421826164887513414300439935028624536083558454895999312811179330383436730925119409487497972263564711585776816406356042206692531447216548207647800895693727655031635760211399030094189728645059333524504067030025479390813502235928898852577754974491458149464436880455995699942006580498491257353856358263951273589224989787263018600290598415891827099541607264827073818924217466362552933473472757179245899875066210743223771673720779221526797743277292874336001573354065505963295643682341614425742051313838174822744522853984588293250210217805881985941053013280146226536630003955305415854278539308036209400481633175688547083524066088091406159236070594110543417578933988912045154010933251513564969062714000074413103410469411319562112255230798868383175560872048989236301934935792509331103480075461163154350404397441149700995472788128924595889367665197612347951334521606068070778698000656664178464929466858886341765515553723444425892289551903902530574207129940583373491502830316790388654061538062265836908399057416997022771233837214915233982268570487751611732508650718814861931229532718619543974969010000413405081072799419852555506872551920050296271671860781791604115482175744806717165892582204203800170501922477631050701696339930673510857963414772298195199264117374203077491916245652056499038525795154503710759149073198586195294357562513572853073661905472963168179123626291176316012760928196452491128846911794168838608806551766432990226163849276255468696889676627776395490249188398450451109474112407349903472667803031354641822615581477928876406649766874424220093092300939191876258194135686044764962408822236704078640415991451007846659198576312025647437262008335657361722604211117065321494687674703278519618680139653255653474303412524879702453735833635623307736491095323603116879916805956876565187866984880463767124786900450177137859115152401544472243486809410379660378668139262332611906724110353638322053015254087794013857426229369075493841238848575452553245301993440440546078807557150684142687037810213437612535066732409097344508299690836077587720626421210074726562023073517087585450968058339445558334755701385469472917273899422807839628570829880959983941786717519257156867918428839269343073346493024143141423021802553174917601827066871647004044211709790172489816485833413990914513859441193391363146441989256449317686295358327213415129085250931948682988771807988938765467914871400109352859747591576715751396687019910083846802172774816849804716344665385424087321667148587193214054286187548349154354011719805598107302772958282467116494745742819213087935978417400572650250061406552527963940035526064936263664653778910275902021069824455674886613432102844073673836299764000200411548036541481757036210576584195435733424981154004680355985660957977375315023429401981580161798311198539406463607409367315491440851435224662103544210293334137912343126414803431173198748113983789406330198323731348059841656210314863898115762799832003330487387643392187084318009906804697340721753910766345111434910677082376804639507538074103923640607056298309916384851452253962475307427250316265404977121631427201945598608181637659575867365879021800898095104591120283240001046342610746424717308171954168532317398420655947987690786962256580692156878246559890105048336876984541293730667712316197391836771704335481829828817722564666684012036201862323924816513063722270687889690004218423617014109965625582995051713207265355377108235627988786501239240184326342422908270703715905910548468279694407248591279247513740104261707217413657622006199302567491725746607133873983668969875556834906432511939529131123181439741177550245506790343286299222355727929225232840984816853656531016073311957326918206734857558293267792568752036614252835163398916737854304559307165981734500364056995758192454498264657645717221127106623796529566694742666564852311995224660496736178731375319484185930937963817300208955765933703422190636645284804338573706339040921502805787338659332129827615220294832191341307831470835267706550610103995557470401578040901980976910974215458006671924885955934197423737501633988450165805231403284813381405515841161233917910571241140617711965563835276485830409519918330256274830793667770667920162768467098197638080184020330390712702400234385014900037664923881475197653771874290572515437396623693293907424724734121622833346100428850683519721168512708787552478593766913099739778127475505038212489714354618919870395787071594418150252182484578590810001740943404670446890271887960567152615704565804455151360246736069277875574664993350556903433774552402336264991192885538029419428839495448094113369167701733411000719330951506513781569876026902606402784909158068620891101211396868383297326114899079282274290643308548138495019199936314102940978323092125194226275867346842924808091170485962076477887837708565750957867234329031915719103684099696506113723566380446239280405536404633376382320494924681827573726357553021661091821228483522918283138272179044217742868274626396793232791136606895071175748892355541573176597593355695618539305240223866964011445830317619547677366319506386957894400510016474993087375865758396152882598851553145851836034835876300921041342388136329820589937250806037108774970162368129844809983979234270978856586762361794561487017837084767961645824594383295962860440050460755638276582578553919217122999697791598911716009771571528548662249526374403529591254110016082626833202685418765472203282663649887729963402139882125776147353485525015128276846493628794124189891287908720050616811083008964493670541706162328987306617806549791609368784676127362453402466646712141758334798515589540361848705794760706692505940733905145506876289842658454772586067730739730581546048737973880710333381599344442172308620269164620119812025070940991306370306444655888373697334373553005560018350105283836689373371684179324800247492255510971000030006464757562244513020650434850015115255457374301484376399951839018192640915299606562754559552358544135903109869502134015609919540725267301221353650452032861716329844423828049280118505022914401988607565648418735100766893718317797609103762768455332543882736806135083461118591223213697735526372381579255782157976301358781765454712328102640082968673792498201124395406479229251480334750701395073029019921046137965282396350608115245028677736847768534216967416753062108309811809984722601111401680077287590957247333371624826812331735832627710900551990001958568452379850914348827231692308463651511832394111046836838504411097618442785251188737007806632399567357686224241143335793334923933304597634874505525919045676981704170806551913506341924181214374781883447032192965094961008996353835780916460621076675376789876402685958595755631281238069875214404739207161849425876587144098673352060334516262325990331810165859298018542700604826977717636089666622408168548177969356390968627004405509175282202973485602624823059398221938266306202336384754915990028928003802615221901530637482460344990315943465820067340018197180064562978931383480360163050748996236116736826393583639972478797949214151665665754545208028672915817362622066938447480327568099194642310529908585512102001873188228309740766280068560548724317451055372702221713219607057020785618727647237093097683679577702747968974547693622299778731636410019511470581153198804814867823588307772628220523932543232999004416520995138348704189844464048108138697023045275834392483402795821945435288815468055763328401939372928998265200776371004413752263741198267871529686255063266777950850206604694909346200370444478696300527511825181288791253403023496924716691655144470799879223671982330656145864871504363686067678741182097332147123489053320976768295364671618823841524467307788367107067492016108121963020426511846794643801624607568760994437218860986664158826524003364654200396070571845023853458329594674078641065459363035046680075327638585969638950133757840630338232666647800211410316548887648323787647770918830873310350431393606894055662158632573646286604828687816672861902972693102360687212374760471585760885318663258866131119182577246747284382445850571969062974414172896088907686423891851819818441172997497263671578693077269148534234435233039988392435083226184700941840715297964346856074745637318365700863253401294543509848583216434319190495195234629168610801417648477234804660932801994162718887137880060242516669386854760336903354702125633286052168534957794933632350258717725567910762394519825122513950854343832744750946690789007050665071743650074113523528989450431158381548158136032448770955671744305084403203404476525657299354349855075758548345116412068276111884763206211591971621765182487565102890720376143715287677433183290099587645951839961509487039157016481517823981305775331126522465349891854656220541758196101183521281631402140551508654792058870916261981254586117940961305448217797043107594470549781887903933023537565939115733567344085547042498683362962951906750931381867843372000229139215828243529914195656135739036399802415449188657518783210446288472645523893036718339605206799613028530718103920694688737289497715081554078105511359756090628529969300326298888607941729730144149373632603653603262411963557638798031010715931204115297376008316453232628708195345807130210992325593522192885152121827849943948567679308730718580123450744899822661704481220729442714226137465608037679044883833072369675808036811716568754687517215189233270449516038539858647843885072506309935536303766324007744679996742938912090806969121340639408179035009207025499579048454610300561172617264195698836854830171358535826073034729459531721168419313994291838298192387415397241093311183628969296619425004180731064180898953236958321420921267198386524932200738641027623082798985165966452402888978393040829957204145965987007711024155482775807087284573232304291567160429617274470506523220428470104215699610524462800212802947068859245480714709768005387686312055825100254905818423997700616291358712668907300677885278169844161581856648031289325408692863215947026459344208041646831975455444339313643199514813947231587954177348441744731641020488239153251218616573025817844960550929083900333065242966420476470260128549012735960911048025914577486900162212304188230464766893075682022334864472683379509670915601249656902558503870109657883439409726341474901159168254759266071590907736089299055801585328618486490767260756996808983164863395008920748864788801493978321322907398220580109660089408189343061185822771629690442580158216561936641303285153826591651304644292880634509516127552734718364568941800369335201591799458131926387852458220972844487342041310514580779277730177391511437312185540307492625647500473247725271181936571364959111502874010786459710144661034147605703894170298831406901271582561624201360681033489723370894919964873116420695768247468735215160828641057633128721349639537129119003858276672156958560091448654449168029865098031796110985564859372315668419171480719753275613224710013898261010986579200108657958734811689867983617258540309337628898489788996309201428350947066048018132963728496293919379035774788807817547381430914060869186275725356195522075496454915643919203453290595852666849021073391868379311264701158440551502700652917762179146229328865843071653096632773148363056178604147380402402079539029106101600620787756170048546634498661881933210430957645432762310291304186368126637879805952156973158901952581601000622756177353344097695795321945471531166640003236978524385605575005222076499178146514569832903582525383203040776309179595820383764732047635168196181478153506567779249066595865376313223813341798549584700176919167133811571007154225884102516946797255821680357871598417115540987073781839071726779630885413997103861696344194992443364153145631877996475182084907718461532392287442920613003117872786457648248142684504688064945277886462431172397023453211124912247769340028826619268016603572541941471218134352592061805086139616932321188457529322677251528107671350864636533316432953513309699198288214947876243553273732013948518783613550286727646021294086243451327162963980043305531400270381848455268073278034400845545618031754723180487470891601472629530388901911885905137809111035838770475114239980617584992928183649473128780461238020221074270407897152335512398534972839504805936245671106731442594971795056812499065020055811823964459556376914492942371762313068558108276103252046700615867977336057915485490188798475367433643782289200090472151266857990529551958760491916698113463065908313669037525621568194210886217521551652025370361564691259943873449604469514602576118854560027588468800690893898133851878245583456763514923959984648887705121467583319400548491200481328455775820160321543582593912076336643798323777315803515471620395955226212886683434834932067455844638596724987145758855887354075739640031490334860172680873064513233251349633411289678408592636871753123245173880571492464010739588279848737001212687523548846413690381931780052982377152270860132399821384285735764378016587442502797519060182439180558180000076590439620319406023203436165075117947980263112388244104536229241145396905218618189078719079939484926789464003580198012495519590968328092588526082854689311431180991360817698757626810187022080475626355428047579900744517351049629985028830388555965972194506767214110105686963941419425408981956274445501506013967671627116129865117381211821292935361829530088186722735156169967863158080793847259214378944882759377808720675319959328569387899189039184164078157295281022876547317996853040407201839889256582209452166836638851196616953353184151597163484360688071328020236093483900172639024752603413972113642176642170392412798030814168628188714965852966510766896744240394332816858467990665064577750851036530794805925435238284328605077390633201416293434809079640139763371501204061541151691856374790320706873800767321523619174658933094304717758269438936541272051347015490574812846982772667115282039942511385298921250476328637778032278950381884461399124621785926048365209898124985495580831580300538353353895866666313798138272253677231146229943358126804817935459908904672830115706374449677049159617386931763031364797414375006032938645790983818682579551877943093367618189206984570394910532967942565225520501544114143599750817944519532782133483394388175653510567983091884018681782741042470370380375774368371664703297277874598053742594604050460764239128268769777606246625030845869861235864923532492203144909947898234130016949818552931878256344137364909473805766663817843804840829852391962911527014165319336881899313346391199697208305575480634779144202427133248268493144668535397678149058025509799323961961745121905800139841296306611246851597033690005902628947677626293170278346744287019237866529374078177238110774302538505799567416959931954609015554940773513061740302050808497849612874355975332969636408503330953857524061925924783834703800445906322550895240041856940391385492358489866941463922079103367829424273641433783319416475084061627927297311910805559882658144525094624856692951514868917102892900824618189485473998023820897886102576392154829076542831552925699254661435554846272338385981617527821225058796345397881939879896280320254938302994755750513919869833045073383401288144170714646220986544376495783817203033323828239248098062121880979554098674833837890740529697638943854370439048133103786871384903601145164919726457417833069450677625829832390788579271922574866782398128776109664736723896124934053877958820117116332207182509050029673780245616787226968371895720666153537472959514666204427047821829427141288590446706204731488923208995294334282321882693015034686434546389967530764037223173259932283280603891730144530171642973047571434005961232666932458991037270861020476959644163563092284384842995508096377077285502347610683562099166133280467649996634165792950045458171124439992938265897583434734559602931977063652068639375272729904546924817167312378980048701142393898662992161173987327941617342917347437063898744464035164706889376350361241978935092187934368813314149287606204971024427197403054791481338945732993484476545172731339178171470440851045667940636202238343383297466654796389085049366362419906995857764084799162908848063315290561061769347632319906366128004471137097735351251014196859349132311086297376690779184368322425240808140875721532287168038286546466535458359269248755275772163961254719844565199121641874315362121626606996916516879600680899273114363453168769338159925308771331579572556894623503273251472345362701182140888688407830486103199440347696248074985117104261144728697537754241332012730393951082659421738775684520715328009461788958738787612444703086942699755583731185659640722189200255764394472991211812925732676325608476592719657465514320193833620010695267663308309020909040543898530736599721806682302302481269027710878811363566735533168391082022730287333631007595099668709694084620482444778347918566988005329481130032179879220056812148938441793766036006241975098019352717866311001127492593040292311322017899732932900846700921790053644499195909650845533629613902430230449187350311109374003549319883637864912614804271885893730135523667097202378669347383325517949152767106005775111507901881453674156709318659166737820496585317546287717457735205392871002692744578846863857198313683987979409584973986230535792861338253183597167166927407964011788941687534766360549857586745404323999609581452545861923549530142373097652891184155264287103813165658984021506243377414984288699844878322204926442287491938434856034314394408310568869502767902817700932278434004958820677760150418650161309907090832661532098715899085752799287663683211928795917274951668306922258319269062854421862199782822140697675393859992331439207374464355226993255766601586555382348018608641002096816326697454081954086722983083602974803274915151864623588486257522521096963606776095983481488097937117716187772669173732264167682343832237178637668130925730039932396670485889625731600554101972060353146449857861501049302723814886942069262371605912825558191951707920821378427829803319265504641581710777365862441876048582980591095325675505218756938740673756518398738242223298222586589805355507616493846482483590747418658798416863143140017390669108236735338428082315742891027669944566785043793355017167277303483544827915426967677198161644542062276703353746047097814636051633699454271146640358403494630194947131480122725097967084041493506326186087375411166749293619241175221235447713284830316130272521027999992302095557074926107437387186466589497263871729441343385637227479809075760374363059495523733448665763923511670406540394420172500405589613768802547668335067697134084344683270562997595746559800154489302943611671318827092909820009921642962423115350279930410040619076505726901680790517298652258329480099470343080220784801267253554977594751466827392663538941528531018110791764745729108208877455769587557718997737847990643524369974610028488662229586080176469820911418140412269759789250315717827087266498706750527194763523065370236904613239318949501845575652822034139287076589811399114240582811469253875494489117319327278353572825765764865266823069290579962178255520444331046969568650626969774835625075996455505584257145323483879573103579489674767398316961790416715151091430841869173916956133318679075607035241521784088271872314000463340705449003410406868409793099315111657097679791897133497633574528178266478617728157353403779617809932825680446993948696345249263931048897288441050564133658055349272831087644125094257635256395780064372989596427632921681978185175403211630072862095553752365767692414429866048441202864441239211529209270535224856531497223081476161668610366347950029285273772413201570857058093468918064303042345620225711528321145775771167147564078409038599382857119839763263626510676794547285758590495457991902195748357206614730790417891450497697186927107697609494095566435315184579376410361542800250148245086445780267023873247306593507712416889340510617068690600732233026885462700649671203161504089037269558310641837028079604499188412395025320858511384615916284689237156984385112560626034736647316423846987506589956243416376930370905975413436686480653839948487653811068753498257505004350307774275086054294949510819875335095282721105664673899923210365658760946259726959528562951140115741275248842354851563965765672407281033208447310051020422345107514253028462711044448986644310662611689772477405004103336728898660826472580408202731278966243064363949018812567414255775562539633952444986401991173732836386614487283072677258158582197280707651959234816907539826733647342300394674373955975126958235131663600803785982537880073875332481468760228408050604909287526446563525588775311810231375846217506501811358175244129861296855750011874268472477472755323051821454548393059364832736287666120110219815858133210219245872168602764812302036881440977278846793444599406197268912785317879529225967185401802877680798295244243086756630948144093108270724765372329467275556597880383872966043804754379421251251165373640500247018816742661457228943868496193351053695126231377097509372091520072244165472928525575058019086588810332622270463874464898001433945236556723047393936695183549640266817128965881367761956326716669343807892424192237839303810773304923031210674419642161403758718399732876440529840248306918712927931566128253587234037357963102983680255269638505727492529732750843007800481040434944536025478925580256116454998017148761306340785634792712809539925416717911175061734573711885094364337658928784143988488120862352616458815969508593121642272112219168362466208033857869751899397313270514308260687005514629439758336400129947736707670343094527502918415774194126317363648724187097696244165963090312250781629705746495005248819568508187106800256211050135888382839047526251191749447763733634497591419443300132123962928165193265186046026036089468482431244554058478001916674987163473238538287622182285389685604640455235498039410910404620714436582778923396389714836090897926922756098722893166352032723688240755729555058504889541946448071569596457208463707097628022935828840895019118363537848400032760880325814288248484194106382925516692364196412737520068097623381992770648090295089992209233242163349139867339354924121433956618093100883935487150813352991935959323522577796182287477382487425319609221652196358775086143055382332759908678731329158392280989106208410213410377816740691614824952815116526843393561387825133969377474791162472980645188499354325338419070953240844379436861608044661345219183180335994603785654761991620073782410602031301426795227911710445183017329704527128705102553229350947803864462031485817949940954642711451167603099942672811157527528660571577478562950465053009623934625594725588875512905522356506267218235988969546904651924913953851722462877651425607485417802658642842287116469487096272243360056552689071802842196449556834701861063769423711058759779479470978298190943113631942395193996823787191049965524150512764913107210004187554576824621109208164011201478959212784078352463411683744863651480557734673900516253418071918855403187206299916801578456671956893802988768575475269236746984550882414079590525420134835908482779666911974971051905550848215715449302532599565460718446925726825280297369500857325758769763736870723947139457487931069282014625758354709990937274895714466306357404830604696231219564847083615543745980557297478050856188563452532043045433833313435851351191974225975662064596703067169456976340162756016579271781932892141928709711867890597351571620510496750716657227340563284850363557951331253821525247689676213911524443146843027072533822330205033770134880920520637720468072157062370297889915185255788337927348987075711172835506352523267618666332082884289380258473737172793174299941151601185705236614729515593520200321696715635745364130775964135902153557273729471565961477349422479917996350860020596701593408553936630279789692976756466102998769839145251938235572592740646893287864358347834954417394797562865660390510285057174216640372551511515168272238663789124262280850754988986662339076828939906811006977982302610189106201778354812697760521117152007894778643985280633590531646246421859075326011718863483562610880596529546026270712562869791967469343871803004962026901519739344210334580600162274484606858844597774521200529066623053839929443205400696692739795767595683277493258489028557392253573393748628430082489194029999744880577014622382237641759958612262342330804128809220749556110714846330671687077000175699959541689175408134621547485185445519192410728407068624216768543034909259295702131245260377192253712775073666460233659840209763604458595823612221550109895507545741179693196420306457537154245113628542360922145183734259383344518072865489501407105200058444072284487791858377134353056443855775568273375876946833058581367713323696367679713083440709402803113139169171436467508925518914404089369831579976056847388009288647061981092495538378565862463798735477289880476219249597444873825375912911275205814947148085836384199439033769263710037559702593355328703799470224385952948460386705410273398132657599814857034594948214448204216062162653899962933548418015754283390763743046049768293298389701232002239050549790919240213127452438314759354130952931195265755107275709483431913209737105690289500795111181720993747070266191832280020911838247555627520591420931782177969423683011261067202066332803563484419200511925698557219861678780860877761944206116564152324457731524578725534813315912445518355777996078921329634697267206184471566866136319578505053593515287103855227467178719309388674141262285170487519812373776278553191337338866018078292597637232271729955742607377450332590699014691335830051367482457000292130850293874594015802402093046666229764765515210215337599709822663930280229671293835844771373162956073893785889463069590843859428500589652747711208405154541594644324457634253315775994574010209839236302058657353572977418425088085493425639258253951485403926247558621525002421141193314319236316928944354571743943975686210345153784903578429066742749457305406669155675187095219822893768526340277165183774469312706085301596231118887861060302202847659222109933429771720854918295597552112194467308958126157343387929556345403213444877139657680373157781308664655951055406333161171469899843781864891913121308460280790229625645789193201669656922917324751276519222748349689835669708168788221031872596559640835165604220371751995848244442857586812574674125446643893268566960942333508740688071471910484061337611771895061383486549008400635949454622542026078913442044202435083969381220410438284830218686264911977033667418314968005596654447584799840431326338982490322787657810321250459939300822545289305502587838529151575605522083932823891259634029088691647604388456914888899515727924386763527279793522913929503383787601506815521017839050032255123277999491105068093528454540460728476890288091153208022925301278293554984224269761772366696871888439127416665516218405491226342013752247674901230871897879010764924768426052058239228377265747684614563081373814851275552937631693156904149246660804660835775704531797869979804593667640781239859476777095165713038826273160043251616046897494735735548022087405771682739672470762721426358444245421822480242676029339024705379460446684617072083525999901124631312019063828020317193357985903165320782416855743036041340506959949292894293846347942693371361580859262260696403863404369929737128049258083174264127681958292752836261503554125037658187069159163854063870129326981920548884104591150597175710777740341032916579668739084017807468465128439323954184748671701489947807516332372905639732244186717531103790057350816771203706504168635558065865649204524303195559929422590645953814638070154170126673203117553113638692654258818754683649130743247009466417735961780287616563790977897842765287579192217917309560150940310328153932149601367428944084571906729741124950158555383075540429829867040628094027861457164257188059818189670121496059887107745018084691136160623460040293434539854124261582762769530408679812983939714665940920990378927162642878336892613792706943075325888181542410287507368056025556045296499584726972030510408594466305721145048938698369051392732875922084066661451690541277185464873278864432354253685052914405745543363138564293680696018290791129867026896599233654014200631198868361837134891100590040635500014803549240315808518847936469548367961660720616014290021003004143486009967540105967254996631042242418568475939321520574893381060880036443645223656559541019505661784234529660881995789335003126053832715822801070155971669703076837452374783638592695026689672376316407132015450872432402266988705724310337552626541100236988867835133749391075299065707799570109569743537556597291283176294285325911521129621007230342197792694993647301201423690174143975380332515862653924967805872502504452813814546421894432978855498564744768593570872351413844987695996169520016408679086690649281606292770689698052627736057775397877323676182851558039128281629200485299341226246946964701660724644970683115640873170042586847435810152757599906878498785035405846819793922639976161983263327233513290982800569380918083945185719220588272452659647623803461151951141662564247354852510557258092145089040705308176614147672021775908386969773354487591681568118179208040876831768822278356467721609292766477402864259447430742528498934152696402378872054992441589478628017920405944051429850485757942236409532222365755817551632275787081357307656937778979029334266356228655300225661326057043026314866341935445662256687458767008519696798825044540981945722162932807317283670516721712557716425272037786321835611987492959072319722104356509147397998549446177781039625677633742466035916706355466577077633754811347530494505627570147893483576463534844451013013529302038124488615076766555499346941576046914090600837893719904547884559839164619203660250013398965568602344747079097659833876859323740359750633449919475053240762973796620988561963644838136329872429458160138501839635762037340196025525153197334362116674593342243542548048533216771109078780291064047176553254014210602758331900772529533423955411642420043515362928455597941007700898210217543995299742184729292619622975764835683028844511387305014806236116599147927433213637531920603142083830178605367239372390608206001796041291056738870978965707720741365024315850616352951383424829237643916899147635836956245566152015836072830813819962999361474064438418210318403118324968819196845672090098245191784258651348062447989990954173491313042407420000158729011470289449803800083802587141333757915209641406514913549137892868865946829293530694647299334137952796626325925256772629761828667455179244347875236787322120499161537176572122849715379677239191005262635039338564829870951934963872512275391739961529688576530422779219970327042575999696822146170626193644334495561141247388760035744764546208996236212009293265445311069812546424672620520391010283387371819598430214027352664963209057114205825120128641696572219567903817521247279733476712099936856284786747474662245613217603003237352995765941208867391601907220492556515158043932836962639465437852525915005397935195931788571152986704120275123884287679749924198179391116896167838816569626310624062657301782182248511862564516002516842665763438607746943614777708425472673035416361699868187136298986644423175344765904625669054440471089587654121627425123158736590553532445831781140588210491161444816950845469759129358200077883590051671528380235457218808904634337745696500895849857958577678027809769986236291234997313440564135705760784775173353635706844374597049072138253860432327087410750275346933865975684861637060667533360946454329213972341428771765789825108978093421293907804874789725402114274631869188054238620117419388422537579537055073184378992633580837143155886060175831771755716103563520812924237761992085246772788850047196200130313545613394368442552448449464795970355220423528335075253925832480011488519664352635825243919142024314407254025352479028926129218177687170831852370521484140794898121421686209378870689211818865180508259277587155735195181242104514927966931257061432407593114292550993144164752821079917390880922712470964011491874327003491716784055561549227803525246499268787269848059816556413355934328859241900912697418561234662265140738445587064282700641052721107030891180586471630547729009017487665354247210695226662211556618708657156551080295883076852129617189500789933879738291628765488765694172262506204895032759467381077905516589347862102283100984615302424953796869256068128477538622949230348421097346712244618493115031056707703960149817140371222665670545409480883059899158286589557257487820776865105592439804521940410354790908989204305602064648751139678165872603277431061415646728643553340586806729643741838677910153037670812646263636121012505710875863483364655382527724572904859449292960390713252006187020680357872474129425096802389267539186313057823272260086897026480693919771127078887292557108241302855229931934795671288352505739175834694104752682254539881346866703596334916243821578529634240447514570929029422345600993810050065759267656670081187817993010497660461574191584241531623579393654158823475288658809654406819443069981470345705193617746326416558468148787489013275653947722279689221017127461842388976323616437743450895595020156332546794347192513584203737108775343483467753000849292803768732136207177421317091463141752981090021946630069315323351891339071931728542936172443472997199439039533837381774677004864171072284867512944483572400722345926341770193148444716098433696365548398093902505725064025852232651934251197003640409911306565465651039344893923320573307104426376918954068596626509826187553926860404877447789157987367932160862686539287065342432963031935910584744330125479480858412911241098817729060616106941306444219088836888769206260867897241409990361611104805511584043038685824962311970714600198802257220951798971394655439937595340505217766716275924173400637887506798213174989530892807195812763400942167396424769485050311272708598034167468380369721557102488320865640935255541838463316599016828615966579573591265824360586355985162696332860085707242336086919659276166195905586057730344713921640217972050862211067696987633979766171085147374125947214279463883776543326497773967827407322713465409178461369222139822938642335490300347434882552337019312120483285925458999537742253016924382340967151347887126855253801351408135406912367885965727618949341735119537728209067805278684498758108144904391139058706858377885040643429470226463261056698638891506086575538838343629505631650263363295375407040997678606116080201110205549017474669937175552869872969515791140128438611405020308648174680323486025665772590850365250140031955589036255112303123891107520743762254250915088336562013997219264994930704467542243515638778518892273926256208116994129658150099665542067535740678041214284285759899263383838149747259412287273460272335445638372261132189616346526598285623069372672882366884562968387489031320465292340783963305321303790403758918701392447200125495847695894392040691418078640451943048444586922365107618307077803976558787911303549137368438151164453982902960888716067231778556671469592220403273294634777150089045305091379065023536330439997611516384373281974700830351149003898940737439584991220721573595648231799267220920429107359839551119473927801510485101626049090001000473394830336082607333812552548373971957972470972608468542285636094572596533303089038614459935442361004699620095395150420069871255506698167103381759751049926338625506110765653687847348624223543053734221741870620595908092504839251467053504086445425123029732390763009985602626696587641796945405484146123881584045284007066413224754356876814055841819612999003900726090573474412572400726480670852635095670211375038923782524551726812536561172414223030015655220572248880777402846410702802456388168237030988560972673737871053604162517310090413974684900169599221021030204260576577441137272522047801228333571448536800855801630292569832085463380691219769021368855923707038009845568053658220526960751248267414748910629258212712864567340996352321605988399391468349076211135940262038177050891388224893779473594425278228232687596855460821215522263574711425088373387132935145625337631900319468816400065369283955319362784027847873456737651284169981285386677400857924112155127067138944423528455167669327100918821370577264790107588926650096175006923239759923954670123147217270568825805006464284819797952154786568497499458292822250252438107823931635055037943781351225242522559241729935299629743605986577889545735200922745259662215962328891759459552677086591485877587063353600199825438088625545820900743912511440373575800301212427488713428305116220593116810845542817203689104899588325330821541550144841383529558162456252481575816126997598069037381511392379709145824108311864340924428959040900053388443487043566418014528755633096712226979680631843693629136922491957882170844093380051055878827893980839522420761756145309853958010430064679867136527495003244420199658994007769501917604972709838063698368304945694128431583680363007302805868199006133445137917216881144341727876940753790975139618817850404524137323171807225881404337170358800943240403751996449256491516531957381297139452523066502122352227898889753439874162466580541266416587257398193600095829666789820077570310961732312476488821456197807777769521153820068080152479423909043498501284264640173641295288014983720918618573539286913863186929772676398792300896296502168117603154322580765310747492814445102003935190650632763140549553933116138018089501345936216119751939383362070591298670140228216344619486854711204649930770079299314610130224658018578059160817152267503054867759375308447997694036182023719826130375377543181383185829132922503810082343728443136459107980935795596401619697886238286147869514111370315744905087132496349931388356007523648452281335389777760565452383518273914359920370509771125954792829342720373588011518989779676270305169879806392070800621126521836703045501393909844167811855040553288788144762394163502608167723173544270582561751913062207625743821777908433712294894536785533817864276890908782944339340311303544732953331191716437670232036556681980273015533367303807451910301022962386962601849324037267502123818545232684991144462904602684519196570956634928849201036075995671322435726533477699068946990523707099090730034783785561071578371875700168071068519980152524704180315530066959584294662284622064252413672607543648896920422973901206223933168256451133512534725047755605494911281994439867465248346951041596222124570706227622216575948416322451673634608878424738079830408077727181024227868076835304455631899932837917000197735333237474104973752099451371457832228373413085105254171298481985720412649011683675000161315300597821570479770322022060835420296486277010121456489165273342520555059431311978440111792240159355521780742370357765680716455784715647285035343904573548415461797419500298578084448271341974501708768557047763013311515161819625595897140434001327990520831303135261527599385798346203537003150280874565123063363167585893537730731024686802064622242402077633581108002914691801600425322793217420453938042142349895075693849700541632928854675974056647936625197093873638739843962417388277614668603644540377240222734394239435495636027536342685909216824458728648461578341819739226723826368408698093903842397903055997688768791884228330097092375171902065387285970922229017793942425722422558541765448231422891523297891309776537248811182120307384182248801798988754707035120490011400984036946791995732135996192883272284749136114448548165470847698094684045891458585104956301875871609137618199723718469453906753940328741356438289237804964030498557962561690652525940798627259434323004718137388315480822959739863448486149276462862099495429676404988432993917451115035774922621706389483930862921064552195271388721252542900389208716859604220613897189444046101766313293278960539995347687984683027488080135756416024970204524158279679976420985109231043472665571317087779349943724825862747073567510522142614935232044545330099048670126006233029312551786450756714267361319250708706259448345899810470211773458326149614712275234717443716353533269342830797120554519710339318456609295310526882730180563922784662432967046933930856761581979549808670525047761629710332564675636586428599820167138072860563820298531348120516711613312082768979456020347198974738583734096538810233662440837750879621968469501110264386158799947622911031151990519033922012856643385434360534878263853401913096962937725426288435640996066987002861726731304060828599668814113286316154166162179291901119408367785683295061184454244152349221907998554516265835224513843538735357034971373061333816009664132053922671841244335879890632186769911459702885871989023136607387519529186006435906454738179932661591254570844380304853412013898379222931619020810152937060632151459626319859500871356237537898385366843170780884145406801613553782337415932040636103500200709556756797556278202260367789699980948023157304851187420244505349445554867209060493177506387005868284380920971472377978068141246866431853568359280034927230782818148919971406976251677477800681036728340611623508290807145647816222498439330679397505516302324338539692996378657367649981259068489547649490528924005571338631886716340008792189891159514710186290034146254160573752268806184641330838317040755804154894310541063646820741032074264373042987385362779210874338508709483317370204998208060534599981613087068597478516389897205329145315641331538864591810998207524880028124681581088978337631543765885287832390361880930755929172187195745985390279608488788815455995732358973382435064438531477924750577029200303944564282391756562885609366770031769006367591013059155389064461879525898941302662212404925864030420276630486370529619980932508325563480251700687242837233119105739244610831861146076496514415590662787932713984094615822836220510598077145321005291568002013188805687938074715328333514425207525195068972070050955527328125622518540387472927998051285410887040976304590515727317842476727197003903286713418196069784879805004880200869668371450587360008205461035451996650590767358131323611262454817165619376444450871483706562413707104647570679784368488386876843690137720578104349907466465325184932547472365715495296049962053421669506116089004405578447904463850041117833662859056916935966102883973043816538496180433689641838411110763279999545993841749017210337145270150733510619779555845934034647890092134040986381396163023299713942481952710609109442391807453528917079189568927738388737804092654136734442473258414787414840110712472356502845155729598646540951654341063535075474645904106814663865740398690238484701889756513368546981533225206285684133178486870564490045127435723744959383575343153266280186355207890763469466012345223790928844819903715361443637140912797510699764317448196968680981259248264338364601340506903911189751499046566377119817483100816225717604927977861502552311483097062011768858774337003267306442680099375315667652004188731729562183334395802291890247636661100429665423422104897146851899642520276450436139308895946381493114684149988596105173756832672121864463742492174970597055182872261856360787111006200858788288604867426705344004781170728742477893480420981885142593741127296204766336676378204533777036375230224861598884607363465580785390825384026131486729297110344857310015461557121508800660904616972083033855000111505914204623051148731035983482939653713286549992514406046989801112029530408087635820164817440334276994979917449442314434040593552141317740327107247619310422974792587431106826010547073089328612042912420913638504937650709214984218616706361072372097832212607005940048688074773266547919126117948134174289084186037122014759648155539113401324569720468932725311014019132640259860641007206784731381523122208224330649197283802556739236409532072795480600095901320743825576811147983133790468928340894947224251948913810992471386007982521424270100883368469419754545482699111636622715303786777046715144473258467452213952739488422872122428011846359872219187938261496678770630757719632273933166176559478648601499966145413383271426960264079672121247794406410913624217890351426756010686422525857151579028013542781536936386362643662630622417033282515504140647482972384825076306938367789349211880802841113030175177702070118810823218782403772393177086654309988370588476630569097304418218396412013598792475514261813078603227140421989618490477265308439165601734260570779755350528086140862486716718694847724277429785675990918755303485545145805292100583857559235990902602371641777604130278813632711309751040407559934942488869583372769656161198818999366673740781869607172869339948440317117012697608694139033192644531611500456062692672461387195978983157996942545250540404200867312646051989465564099578217908877239090315272400821306694744723406626281820628118130570018212977822212009354651768504412313866566009795575564002744333700684115924562175346842973915276765360702549591661629876645303844301251486247400196883032327288817850640830063267112389759977291163461524701075029945323753222506769595322384890949013122573179563052300485831824273860866558330902634881294537248268122343792429988676217443565014738986502899175975213370201936918121913951685548410526499473472552210572621173872674553560822379282095168963541706763014019480497215617476657706356769801006927662610227581242394292553050641675133683299217694127174828083264983741444219087514853501777087828613094281171192151457711431123557059817275399301354643543650113123078277910497200440772141051223847531131471317584404380238036088909222801387648606595154313290681734320578284526162232310853281179471045313075747155494362985734350497992772818302451894409577792778115975294179287382971753409606380539466509332312967386475798829620653110024614212270849242185472975029282744729796811080848356055288199819411112406156194506403928656460327014426818165277348334998391641889409794739518294936328838289609569660383000953972833630107797046354761077114346145695708255198450876805755751132254504011264784903636936411445682308483713490175820351457163014728897406762880010213294943114674358599973948748089324130106101497710574342664636912285178597940994293563411574685931477564940713233485365261617013390728465853498800319812840726992698767156327196065156340146763795234354224049429321427268666776164030492920800145273512895116830604033806649865818308752767744526785789950213876728407619071151216641319153813712707594170939212604427129090582523553270971847223345907250562106961513557212152061636361236374934771348070072780400143153904118275035628961829416107450584998024227446578966412027899171657238932393023009795070581570935654795726715440552964837341396200437688244710453742647685744298623780312835804228865009479070747763222304999865154574921079772934185110321805555489179930055855027750511750217192386115907486828196895911120921945801777324964541892158083502967089054744018802050746040466946777885305565351480107862272947272389425978466356047288294027809049261000757070905614004968729829460456539927771475832183212437950762997545793771685618430158424253604240228574458776971253161329848664753556020841183463314457447975481664534463464241540941818100366509804926616949983291052273964888206807890129287991563141295532845797946229123470695870801743296437239951707361820644048745055380207074219820998713510586023532640981938083017771094751997670348729555184298413471048885394098760760603210251157476343847376823863298555669660185175952005739431863432715923611810706584846717370973018525834460747913595422328693088723972614435154308921103109441313070925138209603205790117947094937611898558654712831062214046574729461017519877592671412286178507729938857871951197833666501723115768344716412572662935856738403085449123312254110029441697221052594334424617620732892149422102754568868172122142104029262691993508156936946736869790434810412174553709121997376612576799432245533763375044819681187686083777945033147174007824587675704142185217746390877141803743563279918290989712145590139558544310914971414303176588074049680495954893898746767555143071447666255672155265712613151248614401817474900513177334710161197821741012393350484814874422824819795739462714859262271016485083363643132163653456821218528322078698561171413268651769954832959974308879460260790491744301655727309599702814107737786792590955368588066776026009237972826856608460543891412605303956098854786627718807263579641513732554180040211766033243565283594889444483874766289729899729427830692790543951316991275006178607622072591140257242769493405106167977223308358998845601960091334488987467969954809814491450560737606958879583326327209999116727424840518929235970320049643641538138966423954109083175166078761880935121003290579870324438478160920676305900191972618387824821960474651431054460125841939910771216823174933354529437645857301621458425799416167856077004509816243011148303309374555090844473912913160426609729432441448111053226542108286852766214567136549443050740046828000014553080428965029610640361759953574175161269561533498842613697009864322889381425462164261065665020599357704156104557269771295491785903000852131980077079457638269054071057955225775276052837433308360017806903899003504398811920306177583377293816144556743931767895549343366414905206179158562560895467887411567598694500586354476299241942268045843177513518600690086441687916532995684850576944586511135072440600419557992715003180243283615684612150576143237132336111783837479552878965660571647120653833663652448962909203171043601675710520559284644570521715318463499201784634862811032801198727962855427347957076005174554892510178380408700992928976498380438408113600773230157159329455643757832849857997489822908302756603774526881950880799525891948990982577726031149471592729069334337196624039937156637730689490111533981965669018519213706344019983309686772063604579927931832284769343975929169023421341421367434727165037550264398776857535895025001330826038682016702300829812222534799637453509059303981380696224202278384168296223405019088359033806958210274662006622118217234991757247574693985865722842462159320895127001891778830882795767832652053756586001430209374348755702049583561991975479832250028556169408649840612094842032037045452471643784968118195639692860963358696872457912135578441312130682136728130750501711989751037725938288869719431426252364439232613494671614750115356876098198964036539501415512534900509017616508627494862244980432670339683752036467952339973511048795065799638571564993591449594051980527188562068454758466241005224953350171826805451723957388609928916536986832906649760360756793173776869340298371326053342326561845962537801137899249108373616116961772424427527918113009949133761716555862778808021426180452570997224054707380629506583017752990549318595482834775234640932801646059020637372004003776916833806896359611495331343392539713885572825564185797849105525440687117758494944133663938948157384949253833513150621899410051823129849434972976577900928184321188627515263456290170659297589327625369111070025526497700168350902943762603844551214326585280801337277648740291884851625592118323975172869616764557384275696412346634752275820725434625660920023870080995236556009836275746406091421762463472223178407561055503193341837237891066675793169901002446652461767339882931476346435793356548572962430454580195494203415448225921341027230321880020108323116217563004591796241014516201353046888905082267342603487107903848105310384386227987285454749117199020537795970447034382755347541032579269356750713628351973559681694361410627713989414828788860611636651352402484940965394483107971363706083569804343954547007578259154538400272503277174668905127353804574702176930151725278303180821933530997484186755412285839592858332155660261309680431463689485186910867689679316728871041199665033138149546590963384694954370531553750391953365385854172736919221398185366470474826068694021364053866429025980632800386029889425654711105034148188902623473244697315301258219456977649666751981744172927707082814885629614571486111660309469599353484096515943487906925664072764828866807274431315501688981404068922800836770969240451164528119080565785647753967288540703663131916124234113551752895569930883401627875558727369064181387570658891273587568097083695542071810283200333574041613408294219723073929357913848382016554845316686622310454571736332449777577983938332833800713168659874596020254333425217068322006635583818426251339074447073876610011374621096263788901164775415383344300891242010934850874755469429096112895748278362550682380030003635627966366392326131911492323281557191153915943837614907633610834446469811772287529574577893876816421684001279304271824783016920412489230062823779329639926135871367855187892082940946764571552843690534268860649742966930147383500732521591471174440105787945646512230478047851225406064420514329653238001762421505474467681571632608697659546814941609388663596594139957814959691527722219690186312034702876675699688308638773472175552728394913873981096530872299132287871091435381346456484988018177328253698573852158126649734475504418322915830729954373767131158406327355086224595782586531247700458537462723569075998555288479323937334661791967370885275757291248773277927086084475595305531198071538434652000534076525702442113722333819256212876069743009371826045980906169051498953639666783391176409497963559944834891135772965775759225212175533777572756489903325019421446742530882824425995696960735746650596823619051701012179225358983742084015495123650690121313351360375763519979439089566318999851790773802866780953410379088084562324507890580510078216863512220802956438995906638371037865774647252454747008300109901218770452082788535276389051781027091920113554442168532436843217198435466110319418321486482458430898423432824062445931608533153047444144148930368960600993437684542817518166340856583969424798962081130234510436753461951534462212018680667949892118811267172672460868987163695786102686377093023249085972120589134951322787629817751858765493538376314620334181262338512422433305532515697138565162238887568379915874498518301304475688874251464142571778433126287058294388512814212789870149043936194877416975146926385428838782634861133335016431237516275503324285777935320563025187542177390979470142378105929678353314095634300127405893852733967354876241602900599827718102695589815085696995170188440563026943508072530713163567517270207959510707665476627654339690576482493833005049288960099617202056233638349157482137999868089122128051198284636617097448633744241352263970360148613117642618072604252286315991953692035471757792220983489163565994337663369031283417519934502741345685466609646258910976068728170995268243155925030449132699637215529201807502623621460788122493996583812724093412867025950022110111082691558538280857036197806399946711230670949459239137705378909352166097773651745378750056059439297555580246970280123272777611400306774733842131022637305767186832378307659760798819226323730694027053952319402937513115584249070310927694998817051711667685994541608881703158410353617948915171344008645490784241317435622841859994125826172757163465340121399663950084328258205561027155563284821423439773076414354150069541965863475316626022091927950484322123705680181468051078658706207133788144084742404581447959260759984847266557512730493242888493322402685747743962277601779246800829264815783354246945926796352419909278755898373786820991960030314110654612997537498955294044317745988967617360195882212757127077412009917339075898761500511032463059060619163909349748006176984813359645129835554014717715090543735877512406709923770813821508719955735399182151776158304424305945403150308557246460752494740248347145262317931213614544934903846426252528238048084451248602216995724194672930378717264618651915904787807392636738475623540826370875154964782611811746434425230364666027148121097095972456596570102507812128695471082353106784216432645701768862834537430979306980735327222705631054462756985882101638890336546409041278272630374151185491826409473026326926540749228103661158992166273110360564991794754093292350683270339813207824426649309622632430074373753713366740510746890614366534087845827078980711220356593377690880507479500410384214885434008171492018794421540906548365622809118610148434503145398134958200985730265567338746120717262428871562498680029694947890338542329993987451265383009260845318274469595425329618295183347128392852678848359556402952152518572825961250267065107987857611882007165335441656902458555368836503009363688877266992474277207938022265376224534996015841047053387433205234416339066825861570692913328419871285660897572958533392741349461517633268267001899124197502114183461594831938438939064150198200088669543949665730772891706936630025848280182182329868140259052473857792066711856036317496635101757982861298930784206719473409668669400717421823274837345060344794740403481322453004501681277678962756520904035725798781197649560354692302819176365136765378515315602252073011482924952120743339241764529692588520387183461697731107882711991043312755375089313560456067294138766444657346839159717822588287024399341349191209358686434685395218935825092848016166430134621435385758937332352434254366697032709607358185000823176380877800318016773380685730604192532821219985543438226801953951403402751522966167747214115411742562191098163796791797515190569700764846965384074620769088224782869289851058911856158951303688580350383068735670812534641078582214061604670080342493462720230280443335120615178615951230580609158500730941366152382781037590032624782203637493557452126608262927694541240256386617385644092181462360179597378172273183315141547331524523481992442754478486536358944711305551939560776247579744018507179119466661462189587537259844491625870298319751379434697847314288888870791933466667312824053874266782178155936391694688858229952534644418357582681201808790724466893197517723757870009642506867120453533881109186947464712558278138075624094624533117462344305173069479479053802293107899274861754562199948720861665866779891845531334789105919630451726445890840793059376730416589158453823763558196281476303922749727382761312584075327153246473509091589239371604461255670047463276304348778463649034496609113757338722545343309854316376048416764389671553535272704905035543623443391773548983270745688099343764223264966058202058652504351527151038750896145375415236719986199406951570053789090909085072311616479073773825773969002987546867639786928497802352850377144776216816445406890577796783815408075816770940962999966259285122383020903660342954512417990082233380234340148964961597858410907365404593725558856275465785770620893932524572677299643529173060246736020235806185394657998806611520606587555972821226374052575077893358562258150501555729416669496022896546668689608356951555494677019562207946433681869978863754375830952572683180454001199066960255991356709031782155020660744796602193658552232435812157089626694631443493062332255688737694793431863680268954653688568362260842838451742979854080696468136915639982475649718405825931102871589779554959457399587814831977819656029117520266658556266419258046477124000423197258499723113599598119582869300712737397365581982773080773942949029973166947143752054321389647774197449624199806080923540089652946910865842252940253091579437268458155311570866044064730998326546209297609469873558892074225301918690659471358186649892753198372199654678359669815661312453514887206452651534818814141828395272810829327942915487404992288365343192431223590515018197717523942566883054312710287771548935081050258986869084402878890757238470114849266215967414903818553007638653630179566210166633251536962432454644459614920212969348020010733324958511510083053074065759384016123796746759731335506954205379574526446451989441851246784145654139788474749225821278998697143427762958620313655817637061501526133419756356241748070470361163640236766722167651869832727654028858715982819119407808804256181342428451057373694819586255483427789221975659192795848097823374266603430588684969232336145510820067162865402477471385918731025123697085426521289081435004515582704392650544448766911810018042817278088729982389566061995557758352443115801597630782725159207852665888237853375840637127274600166037027141030983662372800132616447856203872905590169932345625560359215630330750305568783326217667060013329260314214604120450466261089091622257540708988508514166847145253552711987072185720439171625260749862101959519280349557210089269665158866732712259058131819131258628331616101799209378348380328083721337354804024513936766200795388589950595164505475190549000078408595567080777312178953682722278605581742457985602032831427464717948672441704816148088559639746831040238668844024229936158159029656919299057496265567745404911864790483192623559129252716931632088785581045850683008009424679455255824671857753038490937914745840368975750290028943091825267660417040593953166904065148864087151404359478777719554181532017204284238971338417817594744685347301373658920520657309973845415303506113539400627372082264477460381501949902233132299153694407116287959812167335394693540278716485961419826913961199202488035557586316678094107269381322037958375716527025263333921345771520808051708661738857947012221843612102929335690164773201972321275933900681519647073260412161034128310699059037408327944096920159191863934191892202301860353583113313187412633719343270119427964846608532876463351119805554046753099136972407329063007309714721112432260804339492277601015862806426056496306537722370314410545754858918751138966899044810338348977031779896788804021746268586261907436065699922781998124953274244034820392546901388995281747547804785890647504036690230038147920545738232053214230327864794625325688711606648681211006234719648840286656887615163379417692694363465130773782188405310623196075307720244906767525488986534433238185778909362546642438377686103961501528172741791417911156839889966580409158851289510608590422115441897773674145798752504384727603701177136225955268265397341634076743468136285186720689157979905126718394773517403722698776079408345602596703810302918708370130781103556771290962148098546101375947713827976699004067143614415836188615875708446364966382105327874729249309713747015640000351472126620631782010218030146455299169801265076630868429081979355592604609497793696684454204003600300182994423014534427988471039410893582551569473187994777135655326671807346953826515984550668450514650153063798078718066007631056693236224395856333774224122710073947068192668444540222165360335219901559688436063679157985885169899334524432900179453108280395101250422850285623234036011360862082135782217803563952530220791309862547204059302438717478333256755192697499739735427948226382081219085416251588780301165494728271034916776985755046006207692891723189134893463867910838476060949913635292019077498411255316636816558425305444671366372328478226075083828033484616955543293974915766932005265364519899872198201274240045301053463910448676273017985418732315398008738482364170857976092615127577017573879924402911992176806291092020935923280504125196919886461729193271860928082400999802014580225951325302441493080798734065093952179886748552794593946319971828411046718213563765447214363006407424033053731935464712437378026414615264839488958010883436682910414597890985168062126823820898169530499985058790038766394721293096250201793260591727065112973751145024322948733279356788366971172135022150817068030192596270008796942077165549765416496801706658154393130769596747496954995270423780437438922942273298661507967469481444135863952376840289793314795457674416477449029229713193238358026193717976982885281914128469183447743726192602102307772437393059920207846411046422815393942259443105922471954839130739512622372181548285983418612749416431847320910865776477850131546078474824911106484884616296757063473325802573892294657639277400487514190151892555433228671706316141948150369473625323874010813696587123219074797870307754915092765003370396701603131337125640968735612826750896217570726456473849432876581416073384729906377485009347696869364803399088250797674286682879250696949454435181896451708416543500742804816382463117049442516311791287037583684846635372612657653748666921275036823304835412968916996060148935459718816921099109701449246157124193477562260769802306952660374603674800138812688499378324570140191691692593742132272530728293660199233753505795890098389970330227234079929946351039126055900301525380223567921903987629276935256575055707349949728759264853105806995806579375433628873718358703962467938632647496689400074498885664002815995771306415814523966527539663828171539322684512209688954533603043733531182737456887310990323190067186225534581676622246095964892408623964487628049681416140747741948671492802615982913902945665951136844237472703531600345402432311702530306788981102824009090150771076574145846326062460370315441840082542171853907378132744254125333985201440103368984065549646304817508350290890458962511375328623254989903466210439803211529332988987039308881726837699938360795008131524396569306344798389916662898032765332217456095731660043803010269804883939664690293238545222819975876041177733836641521796420670000879443109948482792476340498014992522734563369122119864993265566326029158253841970105346904578814310749162562529015243586799834306685458795973439310367855665268183899473159364227630172384508793113543311731448962346497995671710722721182493838487250557709196516643090518065443346708653104565143009085067462845501223716619962289125677100748824037569254159444077234513876640074831017651484205369591854588365465899252126759347733961430558333522987673117344809438730615354872621244481482769100326784823637777250179115965678118686724277027074937464114383751060329907718153494039071608336057578726238311747381233965889466062511628441792623499052331471746135864701617836444685927990527227779162215707774113987776400112734715391003991226771393079419915240880204448429037207291320411774191305891024736628155851895338271252294171759048652774124265986246593867994167620408869474583578169189992830003428235847992632192541117895052185634353970192530652833295809268372301484442305255327779654240720727887747583929284169562343923146156711203654572743602294914521834232475380230970649562449500828034287000138786844398265664076414705200808190206668256052072852203884081990073179088550408098767655403977444641628489269240857767019904108867021790611387293976156277042473044663992336466505089385102756152922629847849737432315282328047284876987705678983062769984841593044377405496677311471420941640293720396611542795386809389107581735474333642079848066110816947524567956655007084533069534898234641836690999626526108353861852667524323643127367594818022050216737889903914692208146533033432815420796502544513866608583689328655581140423440828368149170671865138882400480255313676607769514052081400015935774273611824414459006938850125572714644149281467780827686003497705986678765516449520627834904089434904464647128656891588486370686461277730659059131235161499295942050539487867392413276192139290530442325209420636967096989677299876661142482968004600672942849599600114317995110918378445519436225238881390245079371901844043612312280180932674427244280175989789917171547798130261549833740728418633206414888374905411772802646417037014775762116530537219707885054445496364159116311234974776617385511129035714061167627707911187689491141146337450800224845692533452564300774022312376787737575067513967387503744541547793833256516683122426338076256890395203346191873861079304437617439953820948377663579122999460476868556915652720509305139970655524709081092195749485799415376452574795956460049542331124409763542661682287009898410188615877231903996749084961289008807389333055208545858356711799359703198302313463463581383580352295784248280203839661842522599194434775599063441761226394272496323254864365932213885601776873260614041875741585402348013370065031491508197839928134718318018862693763965996692558866235586988253414311448149185302983312121020615605544637961809902941995428583151319877375638864570705318628323610887752026637323567131983088003481382403687669603376937640117943268315316295732924969846215864398388195310537274029961646644306330470924656930928672059114440923776971277927137201098638926482264748347981024601011000814460841479776451190644604468671880300565827362963967654457552516896037465402536369754526612363957806069405726080059084543751870079923224483759324339718219106508049250732401090645890146394861508846246607900122090768685372524775253885780291977301507649311504045446611633917831953795175112904369838726131784627089497785399623919826347080503955486313671074513791406960632337997963006249340761983917318318849704788916819592156943551392775689710473965550035579531104430529883697104954600740555440966374332066596820107789119579389190788739780326419568474281019339384771970496300180639160060666079714128244479890078594966548621675694637515413988455253337287908139297919773760964974318370759818390772346943988231838762200735487208003751347054989277177116665746751313778690480920828489031617488206846746886715096718461011068175178233458499955918861656275188959038400985968810521683893147160514975346540097392728241659203096979217523752725049776141730571808566632540904923705159740671181341272145264350513769866976058221839805542608904753540840707623980392571877918295077556000431203381125713509188099376575599633476542025826747952934500922442989538977655080113671437417843127699543479860385750681303239070040926630974720812881411976083703478303392013271194792235789416724928443933899104576511146393832775902066914865405806881489384635355855111987018069714012330822826082814763875646201661119761864254134361601561900983089198598378346414861797794109491198122238973026244424562111727218290297199792846486369306759167840923137504844280791021639630501539329443901619959655494605973972285779265883446528317638219693212110436646036385942775922523217095479072911769617291568049487018847545976156024291921602205051896947325691717666514742874057583988237876963449597088180926939027888379085073671959763970929703654286952265967763107435135099185404303264918131486477218367025547262135296491988285305573891633041307101244023875446486856106855317825765821445811825474004588704388770525459776123227994307238567452431243727736007600344367023177742998765287756838466734846215934012760394632264073133135220975693679738126255356782282136758769153737295093113874729714351426954762649123037736954178139180964358973194704528594266314174242725000348941781676382031237058489512574793348201059477357889795887290912353379821158773288625260298379876781533708087418608551494985609030106151920077797613813805783256299988052970530045412312122007787459983343191281030542376462418727363606583345758091476650503766822321572453666418560979846001748161087907319460390847194356088940634345567753041894416371589766147838798846718182120405495031021165167698794940584416805686073196984908853580507409039486723534612191185739326247659449978190996240197248375278695200498561896895942108601616992008326841459038385072014179121983284966705376634906027157359011389638154731811157798391638661179760273869670630746586938443418803274549193452095519183763255144731721001143850810899796613968599613688822137121581239676083792796134242213253980799061282892102835028633398413864466579790062878390101697255117977303738970636862401627344380054245994444483954600433996169831173494309771209201615355058519724874495291861181974413538762158288142668646272130129826807217658156913048190664734657736328845093231599709658967859772626697015564723744903493106460809423124270625429082600059052895182233301711166283249216299673034601172572433153938273117993026099640821991026194206610179749193676394364975502928481078549192949124243537429548794025267127534955983752737964408610425286077351432775546808184441207016800540957638814631669612604185140655240346570960916144395504500566346433953312186292808812475710163604050344424641070436015998825511321904321952099452975959675949290964602615188816446513316821679542617007020636981562232115628627171188592217139908111753688190518040352726579104606861134206680921029767054871987094296809243148740533389738494481418756619271404969474266596586112528260135553275551395239362630908508782193308776107176307461553216483382818185639258636052707469023322326192209107702896629363625178665219275241864162311122963183649048719855933797006295527841316139060183527648422036800170401934757285678653513910753921687478404055723405124023906444849900824393652649237081415552442171911173840449393578654272617803471080005058972882139382168052375409313909043828462772498465718562628279022689839255254414466622350772166752728039596762454245114238891094364595499931855734651599021901154548858999541455529005784302105166715787435742813921154662654876822226679244764519683374583977568283136913391847285383533280931912090360637107246904963609169317237738797747672780555206022001754261834687066051632565581009197281312097822012423738249522090842534990361799036001169193878118272991913152508665309543213468098036530374922057141381275300093917784703396878673412302763020656979984726048127186214088353299474763768052352001374706735909654738267734856258315091280914973986152940825298884673021910878802666961796968987429328560833803647969567301458535488593135670285680442306565982528041901034267671449589751665131356856979822694322395399283104937866854573280400605463404445522239177821496694133003047227500202688685184929496434600594581790430503535978701018814743851630545444017307728516222235113331725097673204672528561829185447750817508867202706942969824543330254141288818034124691431161295435927955602210981020263276411540357223085656031450684991993752555514908971501838488678517388506327616815930071196427229918374017696122507402404271843552941838968989746061205899238146549067870763220148169105499851534930954107073427990829128241959496413641727628913249289350849394281857029176451548556116574096125603136898788609994683259571921641849239058031724476280860468975222636451071675702944829521833291263308231470267951774102873090672771443128362407541073681453195701711087566309551278777534313129405992189248154125346014434943989667035381313808400064425696804331508128577288159160324088759132243826828286305481307302760884259545355556168728096481771024193226057032775817616359870384027870094729681709667796001964587011576767765862062339098194626982506815130771307210064505235347955065700103427384809272765849405078472768822699468192158144469526328628750304495142613728721786670072386876228042517150889183084357888913227224878472043013738861326903501628345266680195674670092195486714274775470605474472793822525934443852560676949660893195156562054499711639626632047131115711318373768750224058279545955344675271664817913715975114961605206796124009905928273998894139949278212448402336262574184765561788923741528298346905270962714122846795926684565469539127892382724564163083905707093638513726612527563672928735635925619823090584436494736222355468305678493995121894223228242450874241750686991780357579103609294956165277625511309277233852301557906034167465689219874182091682345431066740613126743856280843235020765973888134445243420990209006828788024557863122034956581952103032738091676020955072530889983605450448705247111972460816633494130590311516549837215623005094193100922986193474003665822868799234027267792595057017630684838169194745906867442042317486647294206353192909217677588372072550791935706885802777688557973227760569186728212647123470462931847532525484147292266693434781434111963047304004087398258196334348792177079839118461397823679933017430363469023697658924099310082463530149852608306929975941031388313173328860536108690440489726183393416773910755029681860531436256751307433400339534097746349879731571799983216529173203114419453535122420474604739651446246273947394794715105730118471466300946749021466505592756572873810610408719466748537715747347469733268005190490452349920414169964755977035488241113473320819370561626575960086643931866953117259516737139399900698614349100814533073245076552397903703044470510918758286910513862084032792154581890421069994513471108483473306262852501512698858503929436621304370714428301207496069801480549279815344807166823111307786575299110136584890680794646545230928787386619392876069357391574066404334803342937407562242817951462546203433318832987419199957150289755905990074989699773590824308936777526212037163813507944677412176159215394841724812657607144656262967744651345427398947951851036302862581785164780634735500587646444723631458361182879079833842717589288344916018277058457578734459986966798975195291962076557443497401298387842488135218618242619208966620218651729808172268506382934478610494552899357501478666704852193854422647040506176477865698174755199800862203312840132282630905024935669236071872397830516492611667006511390057874276252616936661105567262643690654630509821602018838819348227125018830236115871254489180945463882912687628333682146744281745552391357091994948901821753565836542623186193723770937642577747245878675805470727425512850571173040436912446583507332772338907397521507573448325104257454418161810454477803675784032901090900042817704895142724359829715552844411139131963010544687202184104668471092107149211859836352030332974751390243573457079006491550209187235666842086161024191390892849583332485165107045053093511569099137715101083319288157499793470384543330219662315320459022720849050621892356966670515841988409316030155896222140073345384379429430440583708785049546945596922012969717038984823033170089859397706497589825598269040535310743821656894710413825459343874142779962314291110700289474421507742354603238111925775667551140407716449489909538625648673281859736503568298830220349885220988364114609562732909366618432962707740447286984284645717632014619277115941516184165904779267142757378345928078965061483058831040356849051172524264297663874017192306474964722970638485951391677909130829698927186355718561853648793767545379279509315895051794304807848235834081751906400148664272099507232348516627908180355255019762507054526752591490210127339479417931749214016646475671692173974479279215425281796540738763720814237565959941143411227331152452325198759214883233476938300988414179959952770135366793966782723164660704457565767786038805810683730990669047167381080575804131080181957811033887559596588084789852170122732125902579654142754921971388014215187349292909481316525535130537506045653394463500981856337547531797172218816257788566431457435163797122721310822988575471135837590383262679580979635813747989445333211212884845087276729043045791556190867051754089425448941168540410284506241955985809983214822744766647289742708107843288335089526626391890144574071426353836312669636975520689734883440324507035749716680892316202157752102162551934874002266040910607710956578558986962153118390290735928612842970017525889709051546090857179450824238528474094749060453591014246178755516088995431239691739798744140190945148382757275351894366634885842271725778471825619755257493471784865639597457975779696481337186165285075789126956648582050954136545319259580660213072106136600764704704992390166351543719919906646041072385827693843910273992038399981907863133899344174139278178785444960679468219145670429839833678648384635152920873993428472499434057303757580811825989766380742656761963371848101357464247167993583432264776356529668295187613181458364952288618145527835956139141692807292484086995795258028913703898057013459677290903856902851603601201442837082735643555720568922276694751793054619643141778876276324188089958880330051461248251988593937757032600639708225515368964978914215554065203126075939184682906422783674825142656360184527284116344935392432064516111606050812659308570463766091800408950169157040267696492861254139170407887741460849661779362539933310690348390655468820656528354456079969522200794048610412611350369758423149523673058831627907594515216285578606539818092164865129692881547990539730910724052691300907626229056966729022569822076223691458663330458001141742781226109407861824343076465019454429913385801211268487941106422291509940370571943483420765741688256898373637867081284491309916995068947233264451823334817236472289357984835787287017383468665448435061142287433888482196581364429712626123850213226680641013364709736376465679530851155630839113697712637356113334905225025536870251937359995363211197336149572429539660567792011329473924465633185657289633033625515051917229790618261351520605026503184913576489915651626514680010729653853187568758444209104467826953346962581983902934544578443935544418971417283699975775837823334976476015061332619206726033032044765316588471754242756973741283545339754290814121706589732440627532777998182252139673184137665604483597752624148214027924504684781564595898468124616267251715289563820803277650772498395367121176394865748925432245691594409121806068165623989757608354966559337656417527880465464184716989323501833745908173052867905670991833214293536784089533751986130457535208382082748160607976960669780363886195338797613328106913171366087320553178167888696011858455798259986618104781324463839217787293725668602268122488520316984130252372655034318535592209827350132819525010726562849694589050068157875756520194928767425286112898946640331934511648958224731215749862184728064905478185753157431089923001932556329100805464752780395526782094078721986553632722608006421771604188064350717794867388573262122063281131945136162915555820581700655404225437190185489842618546064006325819022787459460810887828851150911181908651089403532439533659168662083457826183494673443992199480312379128920185714451307775713165582055598558782338035936700823084333494027234672056189574074107333209752796343562262749223503996974574918292188413931907403467041082834974114148262502408372538871429733837393197324460236880431288309590294295429704000070097322687250507021819054281959576983070375291779400870026418784426169355025546174540380321948079898289811958774881945713189287161473005543892826864509815471241417911807699887010561532062224348746359840826433370193752268712624993613395016580603834908918468825043688435534987755923376557365894756602613362668206371464130793122478155888990855833291148201551548940604313157050811986240132141426604067155859522484693221231732980889401074841050005838587648012503666419086969722634820177882176540376383560781787169798264009469829776642675639666793463776236819843638689781550540269718058780496094693623918655706325412059150914688138012717340197528771374301547051710782438870532444253468107884645364386303902404204386323323758069893298242745724128388279958424909396269244225074505465751557589655104320108779595283034383747820893090077578042233775582443628704193364353449933889919072202910923955514710481216727233325348585600209500602525226229078687431969173461623551386769280405598506367859093834052363138401140772940303753384329373125749614012720790931855499727077712636966487924991560120239854447959924943102773836075058709666858457771561503397863363519978143375051362647408383492957400754924274642622566002139661410879182040092040682600353913184473829484528639549017188863726705333693871545623531512634775065606333578609689254222258713325766446822864365338508111441467102224125273861557458968527418691375097432968190720144778812062974858017629608570174681850510001280306781035818512973803570392009499103203916601446356349325799894776751658703200126417298031546527815068973677098613929727180269731974726528407816421779294461999372337264374014611568807194992304065706928900655695413672486715680694955595988970497232519666522200510622728819774846612642917943270219796816266062589263117452624142104012039226439823027167231554488689477662822683269362464054360025083499352920139416285806337443921584457722905564797603692546848166327821909652312580978478734144876235156641330783610729869394823180180838818039477396352820940364688053322116613312882110812182959203286364216105358712914290090944354796923091152563031713936455221770105218308639367588698417177185996462226273327297130361420075400124257426908599387097243155841688903718425387170921130996640226497503015060718701093435601274716681640655257125728589297060196283017437687294063265056588548123452902466819738189746537151365342915141998857178143220630931175457727882185327436272492594530800449673669694564309061000080226814630175789949939961567406417025768995129584075714709788039798642992176204307427777674502027118636087403374560958220793020517643740412090340073872939825100897939830390372015823047206316756778915170211416118410111060777677979441803084687640380159244220390124847371090367311097485969446707274047136267692382651371593389857407809724133012992105665208746212372887529316404765433689846032585773485445098526637737721212296386277715509967716675232950544165843122470842368531072251975318174101412638552448524529528870875128515785896933171989050289894228467530518038595171904714269839708789923678693212336418189836842877600064490448138929793776903445758260562778629284955999579572617881648659947435349271810685048127537958201949067996684252570485109572853259646072177552514442304824498801172106412099258473872076628308759968971520124837725126159936813316391565723018135726782427270548600468782327059600319825350501815736582745037485784969946866817629921265089703773019684077865882405526633649229396262385408188708125552525277990917108666078180852684530438689036830123879548598184122350805070871226712063942268939178558870000085704538460517583106377374546880996039007795945056541250063281565460461084193392719120207430482876055234677319884349944715135043228834722324862952867448276439056122381063315385378861515437760941798023622236850377610962358062258851254789770536441427589604738564429714109417448271126608638429585775134365103659131476809888245439053715690502112412357869963767157503573848131441258941473170031014337856406657428986991683365112439673940607153041128572271068692053702612107866578323382220202490270848160016918706628777732200818299995654285523464488794482240746179907773964617565989242209711621257285497408803146377300794259466152534283363204881288280431137746592354552432456068483578223336973387850921132072989678812544396796061819241220961915964651185485169304050005938223261961922720387425298165925558052939599803154605137508415481190701020151501941216601389917891142504172291522870870556513838955966656081331501531705516049454711475937839889246348984646240540960786785420417722852418939877285858364982949327789866012059376433525495858421236304769419004542107301805287653181101325304132424942067262236175921041500358681994480952605854322171561682195775968449872923370421639669295019291546892388860582329226702176402305881493486190046741119581790876580832927072732300201279124623262306849448431221359087155270274250658628419728330844841834728098066804558528937828087289211355687824193714441390720966841076466804988600367979372949487008531713279079289525745023145894192047092102845449548630968189969250420328866895389922860777807311052818589406637759939897470794127253952074149820137640063138083799359042088941981912496059320842547464368376524768789091141347905470271841591436958484881857173932009416139267835741650814000370316289882561301315670941641640342689574664525710751946177878011853942583126883751418455739359842748459431906101514521104568511649298561812607493539264362625676009643965849690053022403185596646528943020225108539409810020034956565046612845947587753406607105324737338854889191327309414846815777306782532205316051224344847168112582219762307765318166582782521441284988240847285930959113068666080361386116309363263778685257139911210620808440157130261586677923803817674338730354984563785129256493037363681728590849262429150018643006388796506990525382359346616895514798951584073450506075315689372970658288017290415363442510353396049305573509921004976970459200022042068480113528188246482369319631896275860320790495205650161886073970860750637185975442960641345964601185742681377857462134337455913372986485036283555639107745967612172801621052947721134280984736919573295419591555790799222712628057228685685062353560545836225792827739344877611855349568668512935708154791005071933963327740846323133271912347843920560750898355544058197298239888560277325608525467432134725068290239991517239668550161323064462103418004591228254783802590173352311950823978061235154307663280679448433861054330610679167421851599687677984769362382705909255805265730406338407350288688183259894017354602981879680165357174437379708871700201293108389701432713072703392011154541131817550155020065637436405232019150689723858959076218281773825058064906880735828542704931244510988788854066709006082559773846633299939892433950908508394934377027502390876817279367572419374426640856393814580187781282222834867524115473661721450160621254325700083171076001742918940571815827622065259733513892534011326533655223878639811383986432539899822328831502363744834269539831931311272679904448870118057215289876754039653677490656201777654475391340113060163136391153351704600547699724539654963555353763074106561925126654103662234741502626582130019829672643258433075347288135224774594837658275948967596434486589239672002783141538753590876880094372707614677153342601996435484483493095893031445966874101178852476206307800153633100078102755661682460328163150805711427473835649413747016922504405176151948386065442346408424683490532393992622387467497024102996754837555024096096436720634505316690639079101760443930339324322600754123556551805119843055392495493889357127496117204019320050396334004947166419202086167787697542532020821805809953410078027103658041328079836379198124640665261085467981183483207966186377407857223130759367668699799274674548084283403264346826513551991401469010978721086545722150437721571695864821782815919785929984595995978311866540538754433102404582979232601639292969696263439113471909533914709929722861116607688972064732407536245338354162989968389742274406832751845840877845865505047412792495175812409936001243700981519005014191643679619156299750930047031711150880888727467876068272683843252476004970536182052254229815095174975784328315020208842985469857013922078986993681977590510981228890603626536690557992312980757066580462780608999981965802110003761624914954158143363546284603378803040859374945886195712281528744274203474063430105963916719799417996786601494067236430029464761980162701070833345896829097287962888866772643806403763609765850590038964695042440678313823052611612421428409906762985084727788313546489138778470933807017727344901937511370317680293013358852452216977820312537323424065791431912791754058453577909043407091591793536032257747429681441963243355648297236471033060946497858273449067635254661020759244008895977979655266869139226068978715364334486431446960703299589356946671477106300257415974573053098145133169433515307488089392968525622762146515830541456637226773765634035010767454985610476361674565982670512155249180944558446326689448736616524797833140759211903156406525739950033183383354387540370571630334264639027988780188412998255978728094867168894940455131999460427775197975774023297877770993773127922374541677059244965938133824856825642181517766770417663955657811362760712314045628080011868779328172491737067563666824638984118012569868275216438308074902225348878542835197227611474113949481277941617194751747162275063155396423386980998982997268196118109928746008928103412177564203490329741561445546951164499114252707793087171487979113962728970518401856092715201470724751884818102638936117139717167582364583995744175324288299047010032126744533028474082366469711144779318378563754493223347652124463798007193227923277463944654060152965580866859174885897929451073971911884552321715925313523874431198364341370457410651162088098248349433898963519828629663225049710696345964360876573476613638734265921166235826221372635837002480009808329698015421095681035077438510258779493169755269849888730335160713644428055212682526548898543865630074530062921390116319880115410099762728709261986138998480733448954324617049716745552180759739655172050893042208570172001764313003453138694482350888717379757337242227874102415564638253664776078216569776649217244031326050662124229220252253988762832966644710396241973568766735152500953127942270063877007633225235761125810715573758060926486714410097623488445959077373824289768171237654717477006988647498236964308919743836096607192001560439920897678215911807712662734534311996807545130309510509815093473718375405104081741321541688494997450555258596774449853100330159382377155438251281238801551742164758197766570475617850567073324220053853339838647461110609886331911324361560434419949254910156127145853690094854889544563199185160091320854133793198442259499085337053296456421946321813329309950907407445212600339095033383137762549296704932416995917807213165075247855114519335298495497073516966400404171694545236900136151270661422532646413319945301225275652052882106622299192653952042256559415735669026870169472982395913328665592652686654184140936923465987179892945264713421558372117283226841082157333294467446379080269731494654025496817998390214009089983252776204367288477825361141235278773040113021875532560239489529395539950564808161236163438030717279645345909865122999604217784299149861660838309663248607503478596505722279705354727938757514718821308758225067179020438455510361361377054549627827604585622757688921154053486849181941632022945445003825898666969284770969150876171950268547554816646829745225348035293992741344296299287887773824703630454735562890332105079504900922209920876247618301154092831123741339516857452082184558572065959204790540246592327198030064168384847106631633288851754780472762684331690599449124044912070947357346298357053811465439378128285539314218689883303372435093274374314773042756150343005016391509603561697634434882116436083297949744977385352756343508052077839699126012096789645760000059745051384201651623820049551430019978582586242659445501738623455139392634301662595197237705919323433446564792117351327567242915789208711208423645245909265994673395468207417247928665256632275801014966057523823514776309384268067813526839859941325291386614856401617589196228766197175163012441602581453699197301964604321035270336591717361485003286159003662377798723558584439751225909633877003936400577969487696323098327640179904626649918706693659599193220148662633880887485575603533769977146046374816379459692374931718294987529408592701179879587201500607582520576619302311191826117811501788459305479080742045558323990849031396171941176376288756596306518959804048715487703096731667889737110933102863942453650107625193752306570710986044721095664568958532793712613119873763923404815259048584581241257699663376829068419918709835797021526638442657744713417070130698696120365130533166748887489511380779661488112217683730777477498870299465702812560262535492929926102973975098505650553238331772150537185536578159739037093942291443147028895016973267231298432976849738649708250675969326679720555847711699010203597028872651922650969053904302064170273116687183878035777040802851314437804170541193814360506938145386632683623859037832809713642681138583012585957392065759764439720950613074788731243214848522111809326641329275529345553755339801690173744411786859645375295567109554487113662971073266673020177675625517346177236734266727486560712199276361122665128403140237754532977539061815905188063012470789165060136422478301881658645530202492999889976959768286434663118614890157990871240556448767377996049684283652089312766345371289511651458678507898015930396320886017701661216064487909263358762341028827259896365958015555533175231511498562236353198561068065099488384844361701561477758983667322067672294827329494601461216135155239102291559756756839270891246774798491946624234684108485416704329950715365406545352463009381014073510357241762853436627493570166786108212956852890421419722341220999380113926279639081074256817767148917865764490930081482648750610380625035439526267559334985269149628496903672918840573653160871956174943856083954999036293570631760910442900487990195373633420152541530338073256438475705719735866856479891259321627381840413173714863959021503298388892871605395559297839021726258668409991318131623821605175818919157318135105545854011277688087932508818560737860819757814146639460608909688019709361367580447661187314770349402086054714243932670912713595430843130378090378684530302601102313718598675168643220712229400181122362651515080812009540920053377210960984051628373751480544400424774336694435284142927090454520347610986870528083484875806983696696396107323771287241870140257282454021618434975651447413411027631573396103817297199294294664926986717880011085260838324881423766591210264272471080390979574084984049698342085617928719530228785732912503025880068044839583721344001806224185871007171043545818197232672000045727677393014111833628768664775766808080193778012981983623431748085419673182202330151909034367552963559663238041840919768555243726160935602645536959491177016149547455550563088976828469696866561960856307383003073434387461653787739594130784429404251259000074636964199435688992062266663117705003306235331369352233360657527347450414516802905179606766510699095468329527191036093140359692003948881349485011062101383179148680188656868279811659568589225862177581241278085869680996250224560691105201522002257423099871795102656317279223670680172444602753167518323192926749131518656196820044587419050244732060492560178168123472488249750036733218147476609951369494499827927986724607317121436897343544693354772453188330243177773178929037819560193430935388794501682045271780018438110003765600381453176087874140583851004331852173622946808137452357001088507794047077555421084500673870892881166233861965428249001648322705788702302732690575065353371020360298325062928708047841668382722595992610224496216954139905251229206299351258847713975816300882894434701982117748050162398179434311883523275117074697465195294206488438216846630712183186365050927182111124779595198583541500015829034820986407899232438635038864248692397518404840983141885727141863675671207761097145818224720019361253690286478443437159726088135624259424389757256856736358656203099221997633205115284577689988006146354570310797034055159126162993462761739128869202713258341700495121671281576301221302649204527281086815143758465446367949364553392962814209163593126529701507152768160297837246838563633478254170605600882796852094854660473479420354222887976572406898935650732320842715368595668320424229506193339311278724491036368315070169097357532542169896996536163772377522570215033014821396708563145060213256637293383934963796528436223925034955068128721869135920520652377882714446152822158631646430661046891071310296265363316887643316820985868520105002602123050610625419261838051049871716440342220633706498134068740711846854431413384234175207381666873283703517921998724841661833318406507824314021115181207129155196786652082156858595572530297615299189130703852907061117807141343261606833322821146520434550151069868334163453660356579310837378983990329220353243401473540484837975214465401168815659298066996355534850490141268638773497373560380717537099827903219033499473772174278119493030118937457884540206114269472382721988620137574328694026758944868431940077499400320620201811923006730240028014560988350796502101713280173008605133159407667486125887482602614073697073304470055218352718866459837381005896556392112559428797900954416238614359031075649828316691107406407575609106964902599431518238324998619121358727124055220139718294403535664733891843173394510637376387303114880008460302100417634598123701210282607058995476718930626358699902362829830267008827192960513229379224327072995405922977371277638873781284434012382941230738354108170438827339026387182374546975745702376385971968310821474091679319440384618916426664848145325297827156989184743195166752809664341569877418044148503403696247030788092467176254484705042683902061415172531919834257553001207872365708401555202551829980878239444436836971266520115688705547304127078072297441135405999662912178932003317835167888113127981006059058307528517196319593333426944142174556994979847713033584588053937719072413102947637189845402223907128636520164910835126036070040347922306310776585167298802002094665250865961448968803174630398504996694823488951119991218208678642145534565868846198606197925070794768122802149434187512718119022707549308965169234232821545798396021694695715891117608300925790222733673107615771731603834468322978109801643296044226756471440373328873237944633446436967940364918311973124316094099652317201298564041247853578256832360518106693152943848443335556143165520036019515822753033249015669200388634454628284774377914786428263663131544198829919717320952188815579717742079697553748879816299281934594503969318827327761978974608823916248423056273478200015944033460765183745975961742659524440301617568196080405045157777526551642807545968292044438877597879658777768468044420853102093538465218466320513374094466223576891190506910229678595877066675774153776417436218058101872691282490529494468707741722498567702858542369923784889658658795016868515405306233728826044763567341504294894279884639694082758796333794143475405359561747759654768585408904332081291240387054012111595891836800229096468487453812086824474312105959416322706381409515117218131619402698023283383266957157422041297550665906638036876371042164528562659952773842614152172399434274331655028802448025984014319989691445649836138762742158578413319823228866786472804007172178937281286917131300577488135826037282780640944148485187264966439144041890557411708284669087766277295223902718280815156028834470750818664644459648944385069203053705973272612509997270363894520319547836095231922181489700366848205699868437495995473546513849400322558854827136981209479638096897344429178686898996670216750565867270065702718311225471075207393773855687183184080942564520236870511747373097364839540415176249166869293900271610085986612926258197190709899739414897414448721439716413746422645293800308509119364610876425036663385258616082912064939893608970968567068405585711635689439259873713686835807852469055238526082431302385891118457980101446084597111098771389139166844738206148104087424708543440339214332590468742479402509516629770862980285488514290982010759811555982996349279173214539726329016488955771083712075555688154315973927405646699056605369457109531473292174799156235852507931372572766666748175812461710554642667177700133507558959106893785162369079579206190278317657843767554946278946112670677943768878447299941039442126327630650003955202933412425892104591435620563661653155674133382290479924821310059433655930519965829620631712829422508520478286420350024996790395303701982469593502237998170296542780682367924287968087728829918465666000820500840222431556931815059212636684385248736807570535146932859606372671009543918012885137721478723451294045049703154091424998275636150063488722568609747697439697699567770504891645186633582424726419588109605145954803566997252041740716633148767161234305878404845026920004478505285152733250478372984651462500039384900072839212953023955552128841312658727609822212957605331393860600143174371863902791413701441182184591211897395612743982322140242185210895633372150312605672601450511808894499453208052046583110961119562440280328931137715295657358102697866913924753410648586361981032943797553367860400977839032176372693852916646321478609132857693252760040109522481670213515785504060713899984678650855653614456065392029420528904537846822153063135862594642778123933352965253375250342315277479101339185093746447792176173838348374148833295107019631963691384125230550247316488402876351219758894374677573443945387006853815597216231035367922383196019642757126193241695319757383297666026601088575801552222212131578384217966671907074181981025144387318397282743216109220912651660529571361449090408768295695912324278733307379382976263943037830642161463010411120081746557620746947175853378735638381173551523656022646293947702516961736736105108919576725647977809055204274775861339953983423364667491321957350515796346228092425592537236682423101212167133604045085750487451549510603787286268370563541555031900863640504893305066213537733072674736805055513902056299230267986963906684296063096092197494594902042780827891189486794966906240989310877171194616766309000854548081888016195489674871936380565514189899175399008363196966704224310616293425949985121337275981930615744357259547629713951627225395734867824680319680022882948725158551067028852278670395574944314023641482389564212640152138188494267326152773399647277656046108973812105064197439283088129985253325918217226608832061299762894200414462334925564948109361267333671749086419177004852297408711491136240189273674498929079787707560949683967531556731428733362340684414682539034532767789420525742116095570169438233742379262347765257660099895578484462728928959823220388861142501117224959578258627860942935404402161593536750509654971953443229622693618686681757937926564917646397566260328179822824131402598938442820808743078885416580079962310010379584022280396261659031018910997953089665880055210872920363029514706931166767410059273790102311010941553561389172527226712659856901058764742580499532931954413949327198825624969685841882303979515252350594262309490769766406882431535436206462128873512446422820707496158858776325770275458284371269856564117052180152424558239417055233812425080469818651260406387616898945997930262757722907840915324801274799303569675569454819556154441681428748273174012670760022276105996660287040127047232634708493669431585827452883674583009439898655391946035977881859263748977211771241903197484591540465001491664338910606733096401752758496973867749087218554603163463946918304374753727768837229457771149123429764262420532483534974084102107638608734353417415826521407454175686438923614173689841005156840082646750390621805276349246079848561396787875724543730430622149993921527713411694320726516506208009826435938952265337963415359115748304172396740776975703457949509428929146950381122259895390338868011292794456267120410496763820606826161251404759100290808242915035722283514749256243246629239730364429297459889053154097728865671060764085250856560689592928601602096456195391599163938267338696148707904004129764592718691428733954114766019422726028837934531033782536252502767755779791006404749105442645551086472356104783807666598791705374359820177625579174667876155131946469174990621352060773788994188626281804845623143560224613199461940987428380037121363265055348560805383801708003274073643240210313165921548619076181039528899971043682615608409371732022128513409762884221520302833849702143174253989113333424436292075628483177610901678266186963734603927974190294982148176822940351232896160227741996504688938694796303736119423730182550989695195908433508955286097872886639016653796284043874942617153560896710842133973648326129960881782892153295476980935848069403428794813811868920951411171514183346248435788534513584079923921136958342452629189730768987871189459095614078228426006499290858651017100427704741391963120326972830078071839718261012614853590117021507225131223902610787810773714853043549165041921330931902488767430190898132046401163782700816880736124951784800341285198484099707529444433584887129512528787546106766216111131635230254165744991014695160712013848659262330770014471608960233753228604895065093008757564006341695307102771245359783340567253742062474409330031938922013791470997995954306988844924076929018351080726588921312170343134939032287018741397297578665498375068022541034807161624466972136121461976407223979554447938986649096168135612466245035565014642653648354458141025308890780950420329461287354699615209016451055003432307485761950612632085518732235583385870954682909719495834320906299466653953911975025593424843679199069806324351875386748213541285791213621055404386690943633583318618979324400814673191906091269260738715944796661662680617215421640121938699367722176373094465435047525265723324648142362633978196978798438955569371016390024884439404569293732091674010845276132746138671066385024443823052134502717409022034549956650796177878736721299975270562787679717988913281593434480734237303561477226839941384221451933088993915787005835252190798696994476147618886164638857218166691320690712779329509448321104529908490834720106371252269280375750927959460092890882643295393392696245988901241694686851101307294001992506601298268434979642658021874432977059042331000070104488574505640234964167287995218786449090211848613631298111601964840205145974111968644458322180804848049548149930913973009607406751436069934273566303558293786912777628297628636213471975920665656556003688213932671753368734377957734494961260921067840543474290504237712315317651261978369737361367346016645820620487695779912327656204098778341793546281468638266829036339456219782931858657283897544946301975535712358242314855811492812315565884190616989686314715375398273185718894745086098001655544404545145092283050729365986603219515687405974857831962641437642338682109250171644513994279659028958967156880901238633835921695211178857784928448705548990775157367012752421547664486208420524933025745008453023018103321605644169255389833877236636599733746685646708919698143031223558128736921924778790327806423929052253449014911479780413759752327758275230846549060009002463101156035375630456349186905388156827841587243246955125832722558850843824020627300737395569443460389945324959964712901856429872213420581012570549668515708436274256355945140973291896022860812591624602146869141258365872074374698478367618105047848735629694729315793103637824670922639378485644446042277492140740041196112179751714893560366283711352943085535451638779168926723913696289930801947171207576362377188837670727759143628646080635282651145833030698591767079508064511910383678371568612666497089026833070367623341961370779271884669614518517059346228973859576265179116149930379892040856412364477210965590650608599907171635355974361813425192844475362138690932484337302613574572198715672660844941150297219466187143165859297794581649929215573922719162021052335232572946324777681136684172572542778436352629735877217288879415129832737302651475845290968708537869746080041169205779757587562140008805392205120101623470386332028024688446136249962964255556903714784950397927929266208797009899331165939306667257836977414389517607201802499181743050486193563820333412537289139871733682179063275949303837843539364874130063856020315099821137780047844097822643021260707489332037230817253521374367998560576437975015891256123131035920946474796996830252836945304632890399177637944058356648792828299360275337842023452990574429522579139069449527057896901757180072470128430029985669518354489779916103108289493955103774447952849955626983251835574213721830016555752947270499615724988500536030081085001649681756561322328401093801915271544685614008568025743725301853224969517142730367314279817645193772852542551471118555133730811964768686703674558231743969578875739824867945361440800860086263886604946924481239429441307210505651134779169292949324298394485676891965124886523257911353795029725656755108160160696642209996967713690894799968962034028438898407188504615045303795175094293690027322606135001027557929614365621761916385188307734853820028091908866712947897083901967201924620634430742909816908668596196570847493431785108785052232813656478103623538601555758311021369168245034177182269134441490049305318249776471331867110152993427495895169405771697705469792746676611417750817069471544667957868512282531226919429736687743698312344050153001143379027951544453761840871693703943474115323667128873076424349917174859607303246909304759773713645137362534766583695339502153248595110286917110884707714938209819655650412467361625745503544498450131294659086214776721951184031528518566460692351287683511409288652643646950178305192255279257318571399307039325524095426800378842798381134357765765105723109766309374709260424164725021026174420527721571290218321297130450539361794770810934281765300435685426005756170235960141137814669051931513970585903595212587357027566031290989297953196676625588949044986463016531102930102978681070071892844554584479347344299742047843383976339492505963478753525061135852333248454890450116635053446563911722072606620540070876834087600274374314467043277584656009248741613449611396847210095992829913737565727750534456883479159666024053419733533599148958873726805953984253827273132289641140986003210512053012600123012686124111786739968331797543984847975961497734133422380445987072206767275160135383111584936240557170121100825262052001120124936989046429002256673455993604450209648118216940858811086868148436452317469007556345265081768049568469619530091440176325496209252615103051785630923014401080978321045191920455563118901135574270732386172238723209060545991760096989793457709489289592747038186165224895291708623669524709185495720447507733905229107806826915382090401394415120421678626606128588646342636450463117865570259283126761837792728810574901549520131086402301364650264555871804785455702217247338400501172585061740353971657136403407169277694431769621038896950985957696785227765049107455496196947710784046341899873604070500754342017708123062346595622871908512728800460750706717064440794529427948115268997902810161392352022613364145645623194324741535734468536603219890689441218425267986928599660551284737757059264406447109767616931993419576886250987557317283292998270443145102361967494567551380652428788174309724988430913246954354693703415057421927842096429997858779807934466516258746297763895783636160055759060706724004709795996787330143242408045841868322899465320589810670505093105478230724953026829492102343198881462205018578673381731591714581365206032382385149753634940664203877328030401466223252972050029176322776008632928289960981545518479742334845363819913747605076176583253866306221602123507786747832245570318877845470885130166253485639462930769976296959978112569683625062825146193799642718834465358902273669881677903443598560875745115941934676860765614217564664556700969373209268244946331874015995697813833995695759572486348595670351776387234127878608843710740371296168907165557669961890538348716417099792461968306621879363579899332679320802145047831786224285655045332354170984481490600135187062397985877135058696753547727188660046046809227995508328480275604942087552813988369045613194544082682723462107585384687011913296490199179788247380803464899190655805179083341017106163107250617949281158076501318354892446166991311564323675812737829915039451224996672487284695001792705894961253912638663112336853227861527166335857021133898965211784878138831903970051561092927446334132122698373439946995845569379842580855257997247356182113810749115420688986556449493496786376628773631268551914128679075357019934739776633976139790117976291503510922002921829180747697432622924086575959155212701372690185049217267651496909076516592357810996445462373667002613507985535624152101038095946812121343023328000867999721764128676512570006518682807573267204788914673867284755996545482171485539472774040226226655402611675701149840487382670142460038361120617627386252775704489075522433101754255442591307038946089663943811932108426423879764618639785254804014310120202525046507597655024457948342671520023134391828834118420022259815791421807051655571054818061618035364838610006072292372760817774908000208458315743012988499320122765232998286124724908538095497836481154024176642335884051291008838987017159134490923086269252976658226798304925049421282653855973744060873370895646641589644102839820919784845943351410798615426477318524526214884689662899593378466193793248795943785168230935806987219657874158324774058176674957867451312103981081464616016726718845175104626380769265889674285939717805135074077448940830276771131498061459979938603648799843281618294691426580916301856650729319838150488270035181040529089644473804274087851331941869175360374277411251988263701227914735575877108074402119887214742815636365008408007608045468041484468863010603979138746038321512948792113286188673116376189606330399033290014228617465847477329714899191243949873930977553721418127898969166520744364841783614292688069794498999034247457272785782460312976062581608516285836115106549268284223600344323674009656094884950440149057564861525909102116830781341681515790686311524417481640926056832999469965313719805401869318679407827246206450969203176397357673767985775416320315898546275022451249095878007355899676520472694360817315664669953999644916279144237342778865626525786181098746286950160743688621290622260689457184803149328189502021130855429776654186125509337864198854756946389709717177929001173279222712531586224124500268499016046507391839009495406122825801792934527522289665557233706519038755055304194393141152805356761125780252231756291645035517767434976255637764606727497122278149315233503394846180794649649544351034538080823423696490689967076874323554917903441866822485451664179359367227600971672856556271835878764101263814489428038842503717275992094252893861766024139195641985201529875448733279334841928552810580825157966357438400957877944367480647762722792462589931069384308767714151096436779054311730063274492917289971661226374243046640544525306704182151274682159387444584453173448115296777620258129380789906909419703020723117953393514093357774711857252133093480182270052967438109915764181121131667337680977694109600706926298827775146787737033831137590158159733102144828148558242602516464074327443361457550538686260094605939589079742536880305294149624481771363229517786919299857090515136928899832904361086417442986822147892638491726636317109666390488074503391435894605791342605528093583164295262295129122349825063250524370007550907795135330259396891086484550584439379926199815519322752007868895344848160517478006143386797538432742730465843503991223729595512244741561714498833879532599057894137926053173513151566751512172768541104926401523442679490167373680554774101469766860557247311462945223809729533116257934437184873372584547722623501153753869890038317799489682844825134725288998718198920952452302200577267677867414370625979435669282904355948341200308182019595659698587602761258482296636144214586329704388072067869161386443840657152320947036051194622576685239300039814816604096375581561585530176938718723324042132122863017970235039662568386618061808587592589244574476205302282551038663614114183087588841282474407810618099034153872923374524569914192159832500456417883325965107876002076276224758532721735982273783596143158989905246090566262938097337354102353310779464529945376025781527784017836755362030668027591686716744284481395385770891090224438677820265405815380099791375887011869509035799797967428832838515442419892877819101566345381718701859432657156629444770759157736429065724198009116965196616637330238970886732289204664355036386714296912137494231103325100233804984659710884707052183183488116168081207785962369021481020180128435954636353880879716379832945276773031923740483131994324629709432573952786797586439446528544095067404610779804212180940725482240418381815233203216496788065160717223045964835804300131606299436050066470063021585892807350362689260709472622876240713301123292997353294198078494344570678108612198462146712989623196722545911350370484516774764534052886336902749878305118027018877125736142025408653939598696838272068411266084095002111981553345176358737725857170322687930848117980041010039047069179362775009484601378546601235734407486552620172823254729122949481659536000745029797280654157555535699819737465417434287242504934091802769807423098366334456567265320685490282747306915960766277717504399437679814816253647430973174370715829323143080398117739681705319797305907067661369130175403899909796475797300708754660162582583650052892584270448949598949878546122091623510593852511086602272091111582431419594469626414499264077448647373716579281774500092829067850982440700756454742510962430656918918881967714277662920065701032641685187153568966765083781187607109930987265980828662474327218302370573929116186988463411426733034739595189861328999661316853575501448966168243364890467739298127244130654239658053212173032294272460403708998176741054300914530239482626203089686808458051892043149644246098077220158726615216581554361190654464588696662298029761692604969412054299300768235311532436851232363770106849149083440884251847697351319569772278281374456809526072031770775184900164173042142659431740758931049513067936095941566297336589120784938248663046374031747545127988431716642039584259538167192209308001778768664215642518038818445977825448366149431626786095192616465704172897031016783453070694864694089796118197504596011732980904898524563207370105660143206666944066466917686119574471231134523460182261310866223336887167177070308255374011002556601612038361279457834379639161598040329410908944876837097882770565434000250269526014543145665424726034762420846162003211797682966059802710337287077752449278929123120079362431628501535780208114647105810806798187380262344260558093179703815303502247251105596880166743579644307321174397379706171505031400197781733919534876559345604613773725514261919527279526846359644152331006462930919115747815466064908040979381455111145368388944497186107531353696712413170407908366372962075529396233968450371494786374176217962671765909820227950517820080437632516728357564514237399217396799436372263240427710038813038516632583924392053331098300590090220153048021244400465967955911245624433650674392605517723686861171619767092725833659372026285726179039574816923915727027256232051657555648660783917383658157320207300077342120230064074146142989422694077178839599673789951823688803656270213778331571776939459806919375340023709145446959262795631795440097269725330960375779499776389628935448079062981626936675500030482557984556663287268734675739294503266170219114114078553294834025148830709455775405481106646071100860898687071186380390607259859121369200633438588032695359560281654744390173075217165683351797825541326975364491019122207449931868804158065961869301593224558568302996028918995992710353963561244372111276816434652358324664958615841395895211544616981566548006314674689527478574965767155705420372823680409769619422215900387345709642979715765695298937421416440058282365115276588668305563371904805602611434798548160796727380360342061118297971468172792021432632714110955476111255336532418194490181561620682534427196336236260258756740390875553522018591569381803184390343277909976404237131081672805793953594981929585976661101607022031240479066003133398055559621013718491108153083410449224114006622627430301804788170430030446342320370217012160074735647387456557275848713812957885365939992893696182248010143302050067431887050302621887429667201624815243696368740251679873020743143486984052905789999260905284709606007447269485032402413591213520560877541307644448766737855501197859702142570696787827799909116392463558171104096838857348509326036166736669742512502094296845677344524908927940879590026602354426045066604977688374472140192362327437156111968769268023481118816820458855792881172734884409768537846592877545675301011321092454473026790044736229107879584447392055825055332883598394300995599714008718167107422691900596044573690078268828740360187732198563622451099606463846025466337051686887229376062901505880844452966857200764683448430246903047303996724481564103381896610496463352141200762371183848725731071430847262576732904194391010556686447619434396761783779565524843073726350946837956014263038203880358766886283397173807572544340926261378708591810811346105713923824134788985160874485116514583737808001937730936884024154472540512637704978710044471811954598783623537032674832208735299440912682733508804259430576607421842842644226792754612522789026189776241546191942490581516917325828149449095118550458106303835171439202027405904478943540216455388479405175683775312731425517694164701944547486003214817358044434566253473305467703557154696580358044432639595004155128604732873285972655990004939109870918405029179369575690780713363804006656918899013109789248658434665141223703091542396059945875912406804320443966929535588932311482007657863917468718900301951837247115579916280234643522557321244806760176820798358551957226519171910092382158844578742546713157505097212465395004724224782128495943530981768352551701847095355303623336073680415719143170390792354485702419626867888868702789081134824144694813425185677371668365113240755784565969024749271739278444439457375243100290546700300638232314877795685626048435016307605800864982199254526276625468444637297562826533131798377033075802376806344279517632772153572297141062310892938109082553595145627698554116107272921089425204476979762077568229525547381278142716487501417512924535953277416133753170941501867871777165824765153230930796017600421516643930813335582271761381441832602565221817752824884786073263333571262613132382100926596881185059103897416807546722212944708239125752139517788768126929442806123093650021153223308647862782757281931923629273195653100712497997003146398990410237646274347033905471761081790045539041923441422151927413301455883907283164295165403334085698786856544761312867543097136852378631809413648832807345117240579768284812032838156089636330008814161016582553085449999609533301273074308248876607008346595020080574441483360930321106167486907844561708600409395502833799992108040327847472786765207874148665188625384394043711465429629940432025106814265292036001086055536546699210079709973637025407674814270927587841050034372065246422959014675770140393726028356293397312112182470704029014894467157136019584629318327247317707329747090545887310443936087733257930679645541927675667635016964249313131778584063422434550335590208442143610584683344425121551543967244622619631409138895000373565137480507668513636301013210915602352408205628372053206847762366779319562026712675671473966781243406306092116901542847597279529513251576167779315323087194654661849755179534743385624859398323615341113082785722091597574837066403284048678700041592569214321338107355234083476914842171433997794346967891888209248123565230252861746403083140442048036394687549588031215927267070254354291249407652328561029556533906724569580156364004754936152264295775326104349881239749504660614816447571755846138702270149585064380912657058511129975655048590331176541039169484547504715256172229613526360742671564467323742695900340532497574556354187341091868009459001232951969928294164867016958154021267929093465713542278926609479177492759579549019694354741946421268616980666946050333306001543551829701569747513330303118852207461648061449493804888890091336920555500750260104532113027806456675902475994047371853274328375157455603054160755484909381802497255655188893463718706092628851926926695341483110676908835039572782509880761096663485401541102737395146208690409435097418647686854059382336386076484401336589796084210563884070632886729455670689525581378035626666087085423378263524803722720764335927445938303551193839145008006835379981161231106796096980068020731665360218924699386339310055257392045836978477440762254193994786187494991142983356399696115651347027242894445688730798612009857544563105597965359209944491694956250456990909496236407976691591536477908532537574413388604957953878169025800741219720601194716234996970085034455770422613477488546550612254778636118033201126941894797450254811827008023462249861217355127317953671810244485180549418773615246051836997681353642293240523412956000268980632013930093725360031799504173694008220412070114839242091903155226340873572715503603259701156231970895846547435106309411483335877407746600662362657106576708430657469968345721241524655924891126946020203567266437278326544169138615448489384083403571843559850630468929610178575676172321875711348417999629896751474657312691180528692910543596125441663599331676014016739027168888044871963451240486591961206330379506289966415324112044263305630658426509205035423145530886062548342388638162416582403515472556578429338101431004692415865749852913648497398594064365360095702327523205126194099527249852228566955898102357784038331267681026568672027855301546149219312567600551076365319996805251663829446273547288629009272794805236501838426425571734920128628151427725508118276023941132408090738944763956532099712583232825018324066063296669132887400448591788263564669096002876800389694074248600539918349139369218082581300949496547043526730609553320286883427861192465860807512916808543110366674479898029031625144973522469660640097050892361793159230867493071893292142334751441921462443544134365805394780049935460393022168992721061320349573479874744606346401768247193395504983625365605015635715073208017798954498042042706337359567926021577053035457107949287957613766988403960518834514806028925271503489412133347391714380071823927599223488716080759160532073499139441491433612743865855319500110425134204188607629893845092794318033629423469925832571909225033150370523303184872079692615147416416914273721088604447952002204931738213587116566199696300215961876926051510079598334488548824349749493538646179472835504716202279257135840213153326208273020074715375484052212681271762964401313573872060825862683128499992663931214384397380156970898535738164374184578459203882965728680482027973675943284826741559219416972456500517195444755689276101951195090947357153600160870092116802961233196960639783965607372059335504118786958280325418421453270227594410094490193883880168549569216434147876400484036962166456127840921686783737941433945704348609593564350439963854126869663054214729445571757638441118053682867084098368634275617036997766410462556845891746635702838813689225063487592436143576025906503389950805313204462271192709572535820838057614113909660906285588193625783556669101597801948663614534235969968549177484536398288951337898835674167839290866295565858927633096420018892036276623446911134648951472977715701194213791084495034968700153020407125998259672752812225597971756932619466163045999748704499564872670387288330935204921695839359625402970496808878063981755421362495954259535306555065063270878739563431788540390760474482548644219708722923393683306851774597753194935997202269849994240233833677808482730731074076380710704682964388057400845035120643657690679117655148620149162285063802562085530347561766036351428329861190178464619373443234848476067488858824076432965306919853645131261420595852897745865775809135685349981322524725250282525707301486648963759964060309995902044521517362233922190507882337218076475691257638277690328423046781078265487576571243382334887787967757221230885589827827538664776004394058065179177495264969341371152328884724616118063319320537077553298738284764637996638345575598888713942611044336816142401765044808050631818802677514971147799869027628587495273987478191695020747546665377614904999218302301498584156835110864244227612055284832072229088922252437573845564988204279190419014868800254892559726853873561118866418216521916508885627289857451874200946035317706509790240871660908395165865617406832551324349030035111505224725942862207670838407087916553689188071534669825139063516858045517146553608831801844740721304025707366061601535057848095641724182423400128444954148749585105504224087512519265133824427431985898172199656092630835549615603346924311465187180365620280304059908985188820546922641725445673828462275159156621999163120512797154755622077500184462855476974448083573243044194556351143545176802763911451526124297132223635010723942247177253233968123721154420948740086369043508488795835331226736143941931779742780226056938882711348949336297547465823161436496244484834801237130496735746967032034827728597288156609099743865202568132198442613177797814197329689529455145399032682244434903634723935949902064334325539807255448801711706196179017130732563113812952649976605243808492521762315532845107970816883522031108031765855042033210260947313142682561048285360902819559857146690662056465658680813982223445010487382026904717237875608872317953155478876571521103251719313679905793584153598012424912756127404842605268040930675568036683102459005981561392824150170010234673701479967798847942104676038780438147761918788072074237996604853126963074315022976319182910294829282908348382854777541772595049946506015670013503053115014470342852163555981663714892731502909848754890968127256307981697302778999226361175386028367437259840060045627873137390907451153596490226869367105702240068290246490345858069821055271438286653505964495085664594711903041486775681255281042525109131072929432592998093891737766196152213719213541829293115554033141428250070809490598571675496571236359142741464095054642998284944389797652633891303591298092462253449037349584508140984960371441952460875774328857768526801732226135313607739355347204591048006421067158990947706886822735066324476704055659708793060159916257738638121978203170440647041303013837299416921608875306703815945884299946267165116641746548769471616561704571851682076278396008957741293962590935874553758442344397151997311821860754377110375941131495510688171131939871431062826007417779320555430060151572492588575844069648473170440559089575185719366296030566675878944304522192082242137551087497587359156883865551397782958021727563924088033258277664763346751072827664233159679962840654764649291278673261233041563564861775435476490596837807188945509171817434075366212695283324858892561941633430960733582981384160090778326709915010141050612622005982610134992323803827247852242422624510845628210664081636135302376721625402205657285682132563459895521630970401481829345443588228407036077901951476519587718574251903692166417491489391635975532305079175810614555104129859758863968563454431975218849077741352721142730812264480473751375425188409996652200432084158624862796440004265031206045215918041051173291738341513182812940001569115643115056312289266187202868598426844821627022590514898835132898471402268636642674562772258889214585702234024486989788766948077632936295611947218613044857609869724743947384646785421291990252634451303586594459853865937661104809631388099925086353467809144959266189764379370820935122121182573241587615497397841938604969619853391737807188657314120437830731232312293421375065456325853345355219971677123738118739592701926317080356516934014586361460672321354982478840541782831506368267784093025096399150824966299266094055749983521353425706905379570295771451319266712014527712745645932533552121146923979070965838234543191860137531155561662909787150860398710340204553554545179545695239375425056527331548892050050733287697635961279911062150960563446474159659600919476823457475080696405532312070090301617542593697875441459133323756223065188103573024183960603563058288485130318657294169385017962569537139613869794544433028490492427720029189232403931532921420452965398877303622809164229131334819856563616689816784315452002689946408971743553173073084608690022555362947583766262857573106389838491981424122508282723303517326609021735723971665300340470027545819555560374477309705388690984437785425340158007381078436657249058263019251265991867613960443897350978618188458923230076026454731961600175399514418861777873826341496776743376056454255592988139423639077431596483341345804163597883644771557285828700065853798318720529004728259808031171622502724850209652245852808357832503743289064031769595110764999741017658026061116353511225064012522643601252864929242705149103887700746574119896998727474746961300248176462474919195712835849850167373097750815893607118025944388437819861664595675938994631430852694637211724346645193229494793749404053232442406944768496489541866514109064060693049965737060108766269215208727747499826225490502827194623612029528668109232367002093477044998465752507869841610503758699990940044980812364608871791302580562492986541648234277300206114083256725872220377832383037816851492650240990638653923929415687361109653186886586745044307554065257698367642373006219913687423841002109297066257400098647740369308754418159666575392376544610305851084778995988032944558748740810117760283675146566589766379289665597758497921396201335170187661505442261028995315103764702522132209415069816225738912925330135726817972236460032358387527976601001030824654787907242071585224433679728192539222648375036906149862529612341407619490855778549021781384350015986606708595837833325067997292616550155940015470716361887995549654336418145674779176816556986798122819122981813835591688765347276691749291307720271731087812309766505638887656637110564929959736774439533497747442227668270996914198993163305873486064273583055765463727562294164305698917852329971439380701471751848783885211112363528962630194326475727753276580835338655595239967275701632236855521834961511689365417256779534343808189318226823281912206742636397111875909396188345083700430588275364166818304306243685054201206949371776439871797602746112757030006848381308900775642891245506131867565102736300108576610230345922239279799778736728472112988659539888316570341129160125781631646994310033083688141774459905206501232193549404864708172712162233298675981362431204637182003857179003002083940268216474027799291545369267319632685063365881176343110928292579745464708328927335789059865227833688992066284935238234421616282936927960851093047987137454903454521515996310429725957510264251883579135938725976431393623483675121584218165776620604245002662706674568543840144957203485691453160386263222067104684743734272172281267316602772518031178059137813197230291586462421662786292407654520877219160104338775987662016211385384525922210315138150462755351468908442506363615962699050658654789259410096909702529137902061048029321092321101193093108980879501197398046929718136199320396733539923035725836134421019674438450317499373984650662178082950999111568570323773114779074945450650929085931334235975373827856523120840891209821349947543082549861645531570667140369958628449888344527698200045600874933955489502875022355215193900553535245697792597755021741149454747337815611952986278382767145014068881669526386433540105404672500131034757963019698959650333550399837056586328918898698953838689638770066595412215577532779034236563742173982433206005762960559387653586099361150974926755021503496158073405118108333934919787164638797722124470081627421477141100523728628178103509448752894079882683938525960892560389961244245226624445375861716620446319902912270709143487838204915554752416766178803293290621469178974278395781623456801727522612640541997506713786801750598421405705537856457321884496807462108554685612716486002983721916200793681809789091459793348764952535195941186061631501485655388994154105556589509837567471691459914138566922779937932905954688830340763947933704513182936547948521482228231896582676520921758884469184529701187740349319517642642692602507133491785360581079585785703512545999267993477510965738528518445829403610567294046131507800890148564983980721949730586924301923740428670685650405747920983152959384982891886791702458600763101823795017078174810120026597316214981227500255878754281854706423396446216648549854815759980884096188705545571562737673569726062116755174062515519866765744632434320233722994904031931089493371372717518821345079714908168730179970647604027585372932551258565839868384034774739307734853476028402324775031725737791452665967774472881899948723588100297427033689985518015501290163203205586059068660014220132688046496392912929138046915772535681046678727087029843397814946513377270756076528896177727761226522830695752646032551821507650604228682737045640205268608957848149504527986980044240555006791060436154116272726772027029743602293325592220275386785022833594820795733621213287024383385396932849656389316370453721858459298602033288746180899931810461985200989408456026702479445292537918648408703501931237358936622203733960192986388317457145505086741283820527539696239685593633013082335838412837602810465670353085328326412959033649669336836371662767522319883133401265895551047033465145655268945003583437458092869100201487583831154102481638516104236940255134125947185535892590709840672647929828776671223104282582407537585410761621575110404438770440502923688016837265604347032393891036275728418691589071003156209950081812131102056750423379281387985760467889979292002972002956520734520392365139532797507443988660230071796047399662265302532188839121745091841303917683017210963099142273095743655042911528443356548061802330202276675755059447126256773439215663477515424663827569727057381347001998856753404725131781544884879901430134701296327876823165379995477051473963254332433233529779014211414337106998454653284545780165767156854952075598165677920205010096407909993775555800431906775558541504515386371847240296241578455314286478595193058783411474066191599848335433980632115651366917672235277965218530352554279622317235934475363809760046025767165072357121503180116074098141655201855459212124956752250563807766489056986933305788504561927344607357837411783120036979453870162634139500359644940828109069482811726564197645421170579575129224301708102779258968728770911418287402208912683007697307859209787371234550231662614665195671980841512354752163010006431850366388344587935297701450159164050885548381940150959678504309927612896568685986660038716347668600339464066563885280295408024846195800654775669081613093912085303722780920658524139189566469637167000125949220957210611148760965327083355937018432731530780219008301056723522999696254967236877196344543243443412189400306564678035900803501553820972541649349885959365778001696345059496964305022362110920645010581438041304407594430164122879000087574863451581543080240859218309733205227616605551272991231970008613119680352643804688135918772189198627772152749349206018789320690086986286034897329004354826630536592083595184654682478060481307818415121826866112841731619306414785894599703440098997404027358153721392266987250584272917843282809635897249575187781327828312286664797157662582948644783698497841590131834424312220177012538069551726003217125533326021785145650857628105940301443221611226425746793465943249717800773145055838727482367195125231074103087709559458167500211868937904792165131211032338358485124255855153772200042292915910808204536981075874088436408023724377310513873005052347237365481202634139568095381959233045867354429843139775808491344475401240533286858800489378626068413559209962692359807387914288429282348957795777892335875955608770218461854717456520955166318027190972805719141143568991113697660357415766047364765037539526298588119568998190283210520215024841898736410137444238505546631065577853113564464699247673399104648370511522908821058815216940238068337909621296746254778207287105326471824695765644694041770107505018327038046921586174187520540084925842284608887209984090137265774770806051230123513014940723392432365822645593548674817253263023628932572072533336319478700176895670974531317092922004068111521466469034792876100008260111343352164232181241027092235873061201791622405373120781167011121176660881284498381630539374704714867735983598834555258240828302526409439508512927740564556482758348095197301963643486470747959082600860644026875481738813177264445376161087336776204606916092000285518330220191294727471669946679759187004857414117437970233284248752189177213846451092267943224223157267147351765845843007505014100452377117458206287144112664784101161294542381966925543476134376475806176503396717958749438291993546865429135527997420024464622754533845247275784205988883944334447533446207286161623310608427806188267923206140507946728605046772915170050087384561274469061792582191668052408080426846535103332769123379350285430596881410484728040469281272108511124356541208360597499138682939559485894547453288904198275940580251321925357551082611399680261655780787009510857012066673600928771378371589305904157605153028632222523312979452666348639109407809290416245702701035874215209893704158240688385395489162057612809049781900630947708426630230099612455550663422539744128506007981478646394564160669183145189887338016443143717912034599238182819798409303082975706022710093388208574715633061537718737135812492401118642292357138418242576083259206017778143756807588830108265060457603412302179730507911752328359431910161636818252638327841506005854314069417238297549271147548588115364389969092639961165784200695622399824736789531747744808729763603399603466212994645165898319366442565221435691374293661142921308551245349478717446702491642584784820279043000745430040870791466625706255997374372058032372553484014701085209378899711513370388682019634165595420667877196083071774620345069423279500719577688207870109877227918165686104128478119160423221908890267796816456722299410564331566195401182852298125975343978832124259166269234544639026294213054453650924433980504287133259033547419751593678597511359500990623304995477976420267291885626173551188128003141289694623949070239075117949430717411420680702709872246404134302958901068025049195750900559897599507591263851330130231964893966636229439045068842720768966356851325980612491135808340625811576961811675143962533194355459027047964232483437777836802669720101709597665288140719663997504757406745275938067407425103767294475952000175343491618269717989354009698458010929099978168295961822148290555262249800766848595450312662144772157049641571151284238933902840825554153642048328865562572686393164894859852421524826340339280153033352138752964452973158527858613243928061774453907617673393028891444306107132989336374092183965162642046677137818884007282819732282541257777955452209452707197491553544119181584670154736560898127043811538338771376173512742878236318779093564033651311133275648986179672359281481897473744923030397402227913509699798380382730970038017464529384617415204211647167899835689984601655292907128050001067281432122602510448380246647259922813544901068793482856446001525925870093311736424987317649608217375554333836126112889416795376593412910888116525425353527526615515431633862580876023117196821424639656921826775561517429379973335114844188716137159447773386792249352603433234411552486244672068512645705155718617437927697962551756424411327120123406854335457338792520655352579412005235773832329180322356327152940146690877949977035674396731342834139255021293402749511522635193810005213238606275143840574645566316062083464152026507380063810240983489537723927548382733666796968654212625077829222234641254180166182165845080032210656225245687732007350241586365011475684533373369968489040129341838048305349819938426228759280723317935062903288939110450852556957198391067234799701972116525109550372055294933534910606353274632189052024200710208786467335279978402821560913208201125970863079870582062846756435979560040717991825459319159327151611284362628262528813528417064598296603036660602809284870978507594120457352010830538948972298088501071732112792955312762131868968955127167347042573204547500970882856721317315466730369513280455697478590303667611190618336948252198488921614548649907165661178560132647112879910418152597856565218427186836990181553968649683393353089539220862490528210045667293623521918822616914991054656369512605426966185556044575374570514487426950326688513146084531588779290514593711175161141868351889876349628924031584613361859361454994520688152237644258818124117475351810574524451809863641990906960165789589364915885993921881970490899477855611241400535080207381416348846658889156775083976027831389572080811257948882522276840414294694846259311233061534678877933229764885077753373779892193843070094010054016574820298619516027687219487148848956338685897642677137690658118941962164755754546385982625714224923096086840461936798376261375659059986344482003941770035029651841778626092461177056721615805600126038312399681205378795186489404646408702583021601281698528644260342617590815594082489124449013638414197046427241639201328626651692317329391795769030550436976558840402650166053613497904821938229737711585231922130888057174984652115109300630572264694863344422406301161511651932247140239493987904839874342327230092510816796168758433835963519816344152247269620194992216450911821405323216527184110248017511935244692664264964903420407379366686952875195511178116167050119650577621280879915818735027679758400161845545797993496384850973565631345813855668157366331734055259352535508931126906767834652250804316106046975969426551678048306852128883897424000525475992262085513755135769004202030221456042557725166795066895625965476007895007023634967266329781921092615535532545873508589903663262394265091881017318759459510083899667669388189365853569940397047149152023815012731098821948103626009294161318293057547235619948645673067448803642711238561472458300500062372879266729683190000163743476290347839372134583443883361996430166308130269856387328178389420656137838170342988102488892334743636408210017417195255911079266751602683649090426600936484824455233326199019704376448248014285804541906281032601492256670330052888982182015360069677100344731576376835589301233357914803121132400742544449330975854099725635571723766194427348755083263103520144303121295869847672882254421973514952752353351178388029560996475949466398511844450834760760433692607665408119686556948165111446904327474775390033299456679479587436595857834073779820094332749473954310082209674443905982389625835283474411342466974266281173664488465639478550198935005314839716631603778753085052193479122415856964890336334867660063227116737268791899935446029477921721892522989741336651849494514063767224212659252243393431396234635046983992594322684262553176768860731340493755952555232009457378712514896905708184349689265633878545232291190445787829043395520912693629401016180246273592809037006544970853136091009211544117908402176363384898958869425284754950494242622132609574428296681732741871963950787982456142276337618736529019945491165816283691022392176186822414873765957769430876187699399016881089351463358093654786043499668627004551207720370274381255410207261764304455917759654423230146468312404497058603019368323713711792676754488523291102955075608755364677262760246094471629301331259085402401122525726422131662008730678858279387325875132971851459623925316410806215668708860634991011177475256847650664584491400891119868657144397707805376793023208874129146377134046251067208808760499574735966556509564572448054273481311041296724247874591466377317231404160741458489315469813557557286399802104778164996322611737513756663106346650062773488260056426437501568659963971584562753970957487086249419849034158087460373137822693728303459231819566306055337115959663063103455083289272833925235750182888246055743386521609716323131115958891561422176499097288005932778742537732494103397405244366728931993002757162610671198264157512221553474184522838049313288128533241830069887360797197531097614649970716666020483476806595404852567932833198886083304315991546367711718699782229523000737896155477641529242658197658922939751256320397564031641242926704414693579711091458857223242383425186949698062825255479606109026420886021776580325062899963956854415457178154629822061997376897153482318319616613170484915388843739726365798633802333820741037390243506132381967170901755678273278786595263491094272787961695836099186597151179871909454344539771610243737881541670234346297049710548980373284138100427242941875572002656041580732694567820958641794100408895811049303131579898757734783879480604529416235588540431417769370476125077495108299297445345473550786747608905406744634996628417110051154311696598283497060945761377392011418488790840542252049980816087831881676761433573365617302475635930994793010988773235653781909418780392312440806474167079413864668424428816557792945355344385668620632527599155327983235989773785662476725768962469258077788078890819848446066308553154009228370183546583158794873985284358956651467050593748979515268945956452396229528564726545383051252904877241547384881012594028517050602861373171481278855013021252132672322196557055156665251889741067557277071004050798684920409334511613879397570406656549928970374083615618070203960200932056929254803565403828749046091339676279792494749805275649361987266647511214553113208900542088835250005646400893650572435999517224305264937554954705029782848251423824488935601300720562826263318229508937920410280849428144649704709026859460775810005162218825964018121845184595496707170210833938295407385408883576070109070840891576908638350454945925257401865927049843259512541736164964669561337011783457838549114091188415426344095421058985851104392112847220872527993501537702325836449383254448550974693300930003707115780284151458785995121928022871628611292211112583289549425216451748701514416658379069926731488709583339771342452950029889965030099070825093087765910087687237077358692623333647556181181175429645123602900493884225305643571544800051538708174464929725628964646655866989597403629149337140222359034750167892865008738836213703968335528579859904816661763581496194019190452892003677340620134764600340943564831276273931586309302297688427054582440315267067884133716458579882527538215943300579347250934007523232700716874222442593080045312113425572462351675061640278575074886895300143503077774171599827552103618774950229616111473942936941295019385063524066029147673541490219384712327094338412385290433225163853663485056728638387843793001513211340772101383960991660311079776821352398027188417752723885579330422013725313730507966382933987911930779618119599932336099510956818083512042911086075852777665785388755485824686059826693231089871769304304420879775413397530819836058291861107876283380212761293919366119346625205085290991424051867819745927495686512148795157952057078652494627575594279441755922929072622118566839073019496054098846925062701571030495572322906759845184316655888041320889295244446930533155388168374529937114151461900005018625998389623632415946308804267060822841640822188864682287872864889744113343756309277074398953186553997222953522958786421700352250120772204515139456057662450231189961096017641023216087300352880491572216466941301105949461749934875054259649533395520643785582216075298240599448966479180901877506047635824849345962891915602867827081105018624655990119869190524883029808968572744401870325915886240546668862444845295447673177406796555174494283999505864981570901526367097464795765755929176151392347546831296603272343314217890524335753037030281539280893424338217489801241676398136317558385330767649773737682095234436066579007970555799696683161844859226633213565925712038310325517685058584335569911982239494832780128779644906735833297002290600664965526122447051722711703811815155677388196393336839619893666345460837707842865764946531236257695939489482588410376212120465681798904053682704163316270800454605796872953878027110055861919664591307004930736397580267143936795033181798740360763378968761158723862574636920459165544041167840249362733345137019197943839564091596681508740176085837226736666607849315851067290731696952219971437939430381901187482585538002535570707836094173767648144273652461270636900474161467470576650482409981542332929179442706214427248431483717789839396056873778217121721365951918993927771722531382564108282046069979455047588031294163332619765902812581194602242986061448869081324242716345580173679119536551198495839922441106260435976419047848360313710954382803354699931383084292342932658721652263776374049563319068032981219042340468001598699554977776382732588605374804011804417999635180867218718199922830936928944861718685062672833158266140464939643359439879090288296222690906763497746604384862243917685346300036420754816894701446929114474480477466820601495461016131344510032777579240833352942814011436502365260093624032955750925230219640960943590132384837085494119984467143199714188644640223047847180856422964498215615042596651310916334927395587488137645805709461871577327522514548664388589299085053209241814998841355013543930734135112772815512315234121656163756704576473224945737259720769046294618982274588767918196452266478884678422012022143718081909721350813979814327593355098572742967262151673141434531516509449093240383969875924491723113614923379760541449722366709759705956126119727819807736893952999624187417999368821326973653295052607327535271842488253266506171464180913306838325453653469510123083647208725284602119892426951147417367830091816657612135356863933345535962338368882356033831479634007866966193807192838140294528582925831614496184246307665731138075553652081012656011436759335742413236852748394530113607378934333931409277234571853345182745512207219081288753429778315039651474797698041119101617766781485781671586939737836647183810289860787234319369777552144874930866303950025666920347232497328104815511264879139687462787941145072470597257503237326941396750023470971446994046618004521274377822914440218473912900951640317823912755263483382451073483429951373429100410287812353404166417147680496829351786889876121468354851287838836790586811026607996141169751367484391921680036640246807245339346162915775800405271500197172634518862926634383147810540606225615473788512638513184117158507017151234215499950207386848593062107745962784528147406839599794108062908763579789496767887073181623212427975919027053659059274140434538181256794100757299174598305526367024186166558281251370531871644323816604581120237838998572344553703752557462900669612449334912424577125234616538851205579695099479981395220430948261857746366008373835299647659185131007042726479268279687823896822803776506791883264933887670036931525049885385289156702317768591174741567527053803299477028285299435355058507435776867000933502751634604137163066124071776528106703906986331589679495407059734024294370309470139024909527952635866255586238792333648688048141935767869818938353018488937251442289345693871418650098079501351297947842061948888493180506391263272338140218664996334882706751008271695526260957012621575852362576880279691578985153849206284763833762266455635304868274659278511688242504306465797377473108234924266287486530532145932349188251755421185124431422711173657851894945633990861983765253126872204520995690158915025924981979884423461081060912756197699726242280233179042172452134589010303157280118659891932701517148282943959982004641961299411039833204695733499893821063273149689757084747571114362213602470241306716646929747028433183619307406376822405070502197866835220345488073348999142807572297316796167675393658105856447213813640993218055612312934194209434512058286871283528294450307224257425552324154394091289772052445212625039403900759113797771578739317301295158299927727485786925046730229928499222199807724514360891385002038824040604347751088884534471067806356777814945892062899850249012848594496614180642953372290724862445344624176102602521993713845578113799695639340744328671090827299496926592084745988020941414596734571682977948811511733071022907894053721681439605218567499844011292294131973840501514925087320407551045673378276298886848577998500690052510074109948483554330369888291568355956077086508279849145501928577195768049588692642036043259087342900297099436448689223185093475168390469463238506865973049058709017156732995020155972527681087272370144298424617334448093391462602621675088402402371412521773769784792032946281192646017625586336563788380789001014113040315967809469433871766470579908598027949933278014487936688557689925692031514172461899831109356786479517634224106488442189274380661911999045143273986676718706715188570151607259825644717470162149895297104201771268345928976547567865892276860019322540639664693556269308953292210231915786078469761755358565268953014064387632359566932137196617991214039970824511845965928567032272340762320642319548543162167989835764572454503829095406748534253438275104388141356661925633325384951078688050002088895565824614426914788892949702411930145075683793448703819758155390720062366090691602784762566170792572184152920055051399342043866026375878768561717638862725313430444374858149712141445628043175819627713596152932603303482831782930554450193609734354212445814203014636989654107931379383174763200002278580922587501910354813518125059594867308880630918902409883118950391767878859524942712297319822944629258393474825960555970889793131727551132595369006359539582323207587683921115205756982425705290941769862748617573914327605108713199480186135470276226480627458898924951236885932428497875899662261677269550651904564613459981473308936188919146038385482374385220076467257178545703625471079808378540217144760968489028417419239091327942146130368693869320683791608546665373720437663153260814715689524248619168484745819814821876913682733231276652193040212486493395357385126388983334987189322867007801542542102890309398989239538814015438857935052922008804637368387368942536927137385394095650238011412538754424310329861270790070037528202141519328471452027425706202669405252991536385624929348591386888452113564831111254748401358563944039200915634825985988914601427054447174862496691496833783564644039516405114381258470309968413316025709387771409400375125715375885429948126726519431262645912346323624840423220209341537259258911657381374349303016167269420610930848949723744253655168578796388076772531463947914406894096575526259571866836166816836155276716502465135601804393664211266724429402745821430837996175495768109988611189555741442946999677033081274686464083130478013138017150984988897003344412875086872777559276428045157630633251233666882335044432430746448074387178566140598326801845550739499081251766890176098954917966172528569371276100305631877042922872736129126702270322834755121336821365449080860661405017883716415824757121075828435265809985669863517882868273160057252958609432871755516232924228205037614331961000507925194496657716678659548046979350036359382112035100117534976560207317143187052772620036616151435800386684729589983517591974173835730251308842797054148938192748685963272691596961127350007651600376092723720783051517704444211757365046578503087022277510168019101737255899860786552731867540219822428242397883268672703102313580825736996493536771651677539718353045917728908029807078631563920595643618951270051875979127654849610235389271273714629065146995282453748353490316436547060436326346288348318686069588893745563930897637445235661351882337202722281716419004683652544884492250949074797987177350777866452855800066881237792445323064239589623028418440714723920146312642776653363810376952185218030434674581051711021006559962600268018732453583098953906008810795181845513937740341131799780477008482220908630640575378196799273330446321468966187485065536741456291555351710434110919146817243263846703844122891959424832509732773191836799664998647022910577332569229241039516221605762249625836619093949018350684107408944745828385033088960828024928619697300091322954386399269627064936363674321206094874045997802059016713783568840747479436889728118998453405785368101729761113692614249557767269362327852084977602468167154700997609086419764467376321744724442308400398883856654197821756019924999970613272113858221547917562551888051826611326643635368260003980914397770569536559549077195984050956607316169109854889779673794306657506465779635940908482046585676912329876132030566502797107022898339982471211559168534357797796682295471667028534803099492611867258322270861592476149995806038805895726174810486809152304389803766226871963155676984507780548351885473974593487856726076808256417671062331263704614482384029784904617574705039142280860905197456634627784569793869151504765274690020379341255606678529880720209403583843381391576339896845310672515939228500094283805434266774601903194408139714737573446030935886064710449140616704322989951245677528574850331878973437475951291818522554526088983178629101243984739225487291658909360712350191781145226527853370225834514680224293388993561546824792234509054123286400292128654592166827470304505836008675892045565308405073086963336454230086698214633848033604488252219092560302751405153614392355942635024888477604833848268237109791176039689509638045864065914892949382382684983187559338265546100785195532640080342513518513410604638249581932683077716586948246169144191354663185872072218205896921394758894821587008957521971155772703612489004040443056298983687342351785133240579280446480078294391443043271742800196431096123867436076754042965329375659819952604780995533413862909460612904749757611792174171603865046816201838168817308564392619654793807611393655276790819441947775286616176402705232103555667030553212490498737184401725338713630616175581429178534352875355660323302949468737039583456048491409835285610385368815063356641755288846652715853068134529044272642295145574317238821208718620303055694491660014274209333927856800991481555940423634305913647971843889636569031177877800176208161136971617071448760482192626919964589181998269976292947479180844863401653034926694127762064310370337974956620417762190726404834194565696121933785673675372977160939932737998408104665614953040934599073485714077501005747974798031908341787173677153442022179377073495738987038810471213703379577594650591187537544937503047848388159176932314398369458692719728322643606077135564242181218333086992678296002586556917878129640729087760413828806386629114873528797917198387221870155183027056834080895228011192824146817800214814038524558167197108497283249859565355766069229594628140995559072096623787678645323158788687858951647453248403273604718251393036450751495632691731123515083120465058782238430315007912337438276950965499799234995366877393254173262606493202535885468764987683038938697204226861663702055356977255360651527380845583571985780856052855535930847542499385213827752944944202097097420939959165780250833282805807634587898732090872931692995937739924147251528227838064213296390432770758482942761127483512993144580757059930834305465760633451506256411175768290426410568418932662744491361862449959586731442201105210612810395382574376198129427756719144144704998596512872088998176542271473922675866095543698896034545917906385598980909451028256853014474182689536816664469833968633071683706614210313201185204946909749841552353491549545794869690591506575173014166688162094549675522518655234857481335105166925965789813050685969938104702189735076957962130310281931737025287039368965452445472544051165729419675832414736693500211036440197033522006278638829874440571625947942443601452678286797393858447060590194893010980861964553359277427260815741105402106959064708588775881782387747812632843578809405574480972645348203152852044245827292530328131906536822504683245029517785826369637891510556502817169655868211353040567125023285159062286413972815141247628984504046846488895362430186460408246096120966570256576690199044574305003492742732155020485284570292661119264205803890893706385668444553268925288171583894869777539813774304230282349234008852747076139163781303110372925977317849032621597561729682561871354960367338185488874582139707406568072356507668014622851248509573440059955562451255751144297853095251615242254461502888516279499032587118425920506297989739461613042596635430147310241265134241244442698615709120549836310744617979959416805447195153718726058909891908079565159401948865942582607429913862474134452045639264905392292748891580103183967370858443232753686463875503546852508638352443569134891036033853902194663433538500111914695175002444152921735554463931942877735679377275147485557592632929917015782206911312978082720136487814940175152521552667418755433917001347372427068849905738867473684982805206094604332515462904413985705258427287830600958577995092379548398399951457619255003278889349354667755951855052686000105945967739596725106498009124412038186494597189949217241986261859377250734968200149007816816166838996061335972604343905502895989320559945413026086835817483698445255960518026421503938971590641627502377539971334393981056572085278468822150410653477920657834231018133897601600296406732500105162096885106813256159269323777726931622847095854988407164432744029515060586586251376614529288385423356090574607753285054658513726515538135117238196096238928929558305832310863817595775073584057176512304694081618024563219159321053654646556225223448451991592516641047951651224425469226475999194732406081274341774577318168622114241215121015831094080856202253982641336955529058211630326786276348194305784965899331779313868084221294875568537765062202830550263629523387727940097562968415060203100449599204796156007595345136507117116004001889976389763661479296994109766383906197313854196118749684642002566086995200518069161044919977237542848131968835002053591201214328340670701295696592840314506701624601012352674849433327399110780790420340474603424595898131943504285607169488464489977291837123148128710064554043208129776763185542407125316446498137112459113146204777086886355711867713912899435805851138937955637041902108558098729738975138950901456730307737194501647205099205835224298800104747415356024733384114364319799252368973670012676810065886357505982054364413411949252959411105218888805194532294533678350400194461075643111436574675733069496663459163797272595529933700997479206540208859360167488208715931268224952831879063490718107781404958955953249872417100650797841918591044736297898313306755713879845998259350479554988932957241265537972060983915944689978985862187381111747059330696363357526109096127158021906356319299098533291397816361755968998069987274383513722475806003365206723132152459829881861743842050981061240763959905343308452994737195559078245959776469514385385624442772092296990904747885040003719408664210018925746140505520615299087009792690127875249468721137458000148698627977521935635504844748756160701687617704638023475282343508174391560596356006968711432414116222614428233826926868638561412527070790282686841214624441666383519911190133695334368731431481074249067340827003986857550468017411900788664679397272829829567768377283692460086091950801647648089351370123979766425977874955014600415956665837429487113989604015170346434061519100261555287392030542357822841614543274335813598634444920180983555921596836243911475217170381285127917440701853750269061609212013937555188756279515524355375184281077260593565534819517121941081643194046935496492981144032155090543504534834328637029093770029777609913210081924789536284958111575076456835726974279870789046164668591131860130112292503145097103057813570797210484770371624212370901053338076213811387279552473839356017455036233320630770446004488804815635152882675111217925245488931169817072759625544926277968236348062900660339413185477330434064686422702900108604861066396979720551494634917784311329944398238687983045492884244119491105154939115147633545932546833298494854895276499678909769265964327283787810116890039153024045016804908427679870734900279671622966237875325135451633614870697004656718510702714542980590420271236116466916848342797798046676892156575697034837213788798230834639472124692008322898298921827424965705683418243094544037239853049014370443969112192361662121933442880357628725690751156430284728410666105002793192428430863168504528089294232493529797293751370380500641908173194614414119335266770913084044796729030481839970061518196990608035587182006398653907382417809289792495273696881238400221882937981047699491898008717140541074038947034373273163875556993387822551055566099163527385880183376261379732685577419524019887991879710048051975671088216122155470025778032239028018734740222933905503179021948769970433945778737656138583546626648265737990671122049526790745478312625567623438711804928509866023776801952875218789210966270223600792157017642266839953334678062225863450622861853384008871968713142510385336506698545275691265682582350819484342112447744559886734195736708737213540670097332716420561038126526757680964436521324341637709583339191512542678712373109997700373466839603699199700556100952383729253012578138366550938487856200339709377417667042975580926290038728553149579014089478276304927776487181175647993025599363508166655239569097439984352317498578935881014899686925546837575421065662867701115862664391763286570904184182777058054207538725794670331752877728659802833806005933324040562274035150424462186277927372954430022482968526628581913757923008227635766823158168248432084167504146725147299905546573381465388551554550020290306852562677955689483540889140654393940963039004834883541504715799835733210054506167193680977148832835648381287529590452874781178400773941175351989791658941902103936233236261715330078733592872445774400326565852022700968181585017803536559809648293857410490684429853152137657150721190399256324905326317460235424208250449065108906836460755302632584330478795840393856745297317214810520244260540248327362289414619761153707769620819972809206226951943839469841979101130677227046282253759308314973898786909843593352661384638374450655821506684120981173108814797821328114443166239013896853834639404736548027467528582507677171863107764162900223615550713496040158992811084724977433682683457133706696804809081868426117378216045324002715545348789836456193571061323800808485109816909466248653469657064797954119817120177969991003246374341214669322716067552890015249607469337826487821631517107575785008879511296328861498260839926828945736984502513113236824426223254264718542006575827559144367188587183545598451401165168639619517147496556412512222819768345823763276622104654691501560446079930566980222279836100454056621701886409475426319802595147748574782957348245593635390483063351515044183472185890191305491142704404517864197860851669501953765564268959627580862139782186391146213384637470415124538212692156129404298782931529902129912080138566912047624115008050798761392951300698981541752586355836537564419675388836173799492292727299741696697255194800042824102482435203268527040431576849824207804958804309939804797233224313394347843267387337016346475320714560008665839508468187593191225345609289828057944862917955167168623861141293774840407356007359242205898709235407822918883929861606606533839545349810664658818297428533906101401399451559840695444927230886124254532879127041184513517310340551128580435697775564314794130221800522412039222808678578570546656932675542379976342934121402280184406462703871833471394999259173035498107298714606661098114173319019280369554464074822408028077863717872933851729631443061089132311950998697200546797869568179175391035643768817857796128663753317096070706482882152351843528096377211268571492786299634951962702899259487257823773954102617222287135019528477867772347028555000115713563764089312342296625068336826642413065118298223423980332197843652803431101229065381012136906910475073744782330095088607990482682371423167533019391038593141851823172513638551357749520104432623679380765182105317983796241509308542998358964403760132220110625257167710446973326704816797702286424240032538692790916216275063763289231363373711357333301743686494881491868456044071073522728428404198636712894280983649027461684060170022626581977642175026311924057192184179560061463429187149817925001756220095689181548960243033866944453237725744726626255203087223720371074540616974088936196967155630084205751663201168817825101309465809302728856485501508771788627010323760581227605587619951096509112469811176824997811199886947739305482823400846207819897207798161753289175752004576347575600629492979495218870229480112794627958145098594003802302356747261061615080301394921618746314688462455429685681328159770416172991335295539620808100404089248347465983538072057778334464677287028844916516836954897181745818022710166556934000483808961072837363733573608517146094010341598328911964922960532311041064047553404747350033552896143674262559355406966626391199402958413848860627529058871449968519341974827649152539287500604836097143588413228018819958969071848995522048592562008236350895709298390338071055241430069837061694206776925692925448965769780415548531296448592596489625950691929559818364319064416111436526580854027856809769781365403997706177181138587867365421950602605939961719043067446395554189240620510883623954160603061197225744095671485929334488640646401157808110767269178996560559592425831803546010618160206401719893455905380265473626322788031073768261691555943729131979385852669831710413940567709805401411633917661225986351344681798577382714114473870683274575602434490565023867688772183274935389180035136575220680556409624436096713907691582401668536478976754860683927744673571926136161307131831177902162665209748986473374708504746403868042189877980635645240752303811688617106657435527122385917022166124593661196011192236138772447659935853516592684719034288328726624034307258224412790859763892614465527314638176825390075835446592317730590447027814709910795539445810863558807572838653050337500457267002462801491836292169464922232280529793066189237958555427254003188672757010076007760983974017017557293968532483341169214000897541681131327055683174040962242463335061709187878042847608797584107234358953981159926960658882103541914686625772023012889689729511165723455721146434117641624411487924888733299818335596884130971696422809948636718376906000891118554495292658929385964751793777432837505931776951781199970514351556830154015765102363919726747557337772718716981407168330486248342732798076140520939284049599782081121482356374761582158851627609225080181746422478120074777591267017665340506701875987020322491741878417709439212103952227607920730207630752601809505592417699389014580540557159058453821164049211224352042021842614720290533791167480917464894787517565687049379542150670076469255701779272181057038055955003397242237092995653001487773808629064019655314265625973943606669979177094299724602146141909037469234470484989370671061117329684264967009631430187826242611753524444526427711956163671677950174903373744051519429561661656646042286613440004389389850796861974093029131692314802696661862392826132358781408232753930536400173098405939816949154412972042048326070095929248545122062034777710651530391181557807532399379903945189313503906986660791149095240516014438407440732181324278630475690060098219602616965862779108282033024282794918412831886798868012452674261628857192116414987168440577825128482106923140971891036964295715055246963524025103778324153931659755628747831099901512782687629951450203803235803890661396548189253742151786561615491749130615483100805532493252164082595723401834170121215533612566583828088970641725190170340634575711303164712281040320191142404214772993554782999319202407545797648275695745930733045697507876534846643654029486764023536536161002578859054259048720984387131093445058809364736644442283027917916711300269176872676566776484187586538350883085344384962706905215836383718305662993346710545538723337049054613650337556788703422013503524596580525384607895713805627708175393130241937589690826277090554991302815663383648336996061297836362630425516205935298068632268290680542611755516831382740922815308898710946266183951144260531982204596430445329965418176692313684821251832164899714609117901062954496005471441098307344118238895055404986506247728260272616204856685082957694893179039685530228502374187797777112425315933794256522744311534797992448623383978358654844073097908181411921421948311458837424747373161500928329449216074138387020459523246817401834641101400891502118756072234802456341585639595426497941669158631241478188644346071410680061062219654831441863342688864948699957251638831854956456939768941899547628947375952726299750386151091927054652532943302237341607434923132661197993667392403954123854330358403568489753438551965933161705440678660389628606299564412908370730235917176267739672348537578307913632350413603445163499213170890141914923306615836072633384767901465276871818185941814740893860675736909141643970928844273943843325349844292374367982562774467190298386173013341015044695033977421560351566440439522691670685339940451814779094894566901347466264914480925968322147476738118707671511486474122139155675894144471811767404987357175981860227010187821659592644487164232981709282782834501438125619303668221932773505559478860937443460865756977130340355059349216615356822008499228019817501171602008146860686091681498952794007060381356718875822044790546472249721660585796842953817355640728527739426208046397746977325904144607350516638036667418709691218170867596152459886921199400590241587493749288392406338578456397006803783571822203394500937957647964111877050421847370047328968916927535375740124827767502215138269170705121091579536626212461388552546197962165665790324202683120931108382846614603914791044731375206839853517511186015074027386362626323877317387929505324282567513346341778930679327119396900303566406132884533292668589672313819175450540490563701842266292244704385152087553417827825419450701307189050204072649402958794643068744909558434647962233793829300220744531389304265572365852205341970264906540325168062942603379671439787932020766539112044332512556105829687647996481343236906464312917941381463757256169997804756434633241011639182073229758803125343556976400180667955521264982276942819100728754516886932374971254775939601118021906521780876697410848963399038543014207851198108398954762772468255857900082458163922893033679373309852328694648913366304808673641161442033344415146178641638950036861918384545324380008329628350385620777231616055416041155549271532892592906135125289514877390970089902144788590992562899335347173530287020182334276115845224023362363918937862791194896324958464524773544621741445131343293154168276501689621410404627812536345656256703751888689571758640744228437741459661309728794201327950293336055296804441123860094308307413738260805761470122392901591617105456734552693373431707089655646044640948478091343156237220216301203896029254119422835495122708913663678057043473365343523390373400032636067404308311822258249853169148702415125668620355846037755139902090775354157896615073296695763506749553395390202993755548573816564767862951926437898105675026854170197411700757257676682714263332282106777627285548903110057342356441425134712372609269478336758088593412955979861714450830591841778585047625384339539257600179696650301553121086807413044741442586828783062547791434728705031879341478402243073248353541307632908880811988171295257781015311027144620016921323990143333033247300657410560278851895875448876510540653985927117544053618638201058726286425196776888346379341232236184409814817615152534702621047919669324213227180584885984097071232540908231389479977353655516320482609712325599796774541022496446287601145714315872463215930564985881420785317514128888549446938168655987347716868933503681863936931150943969455281433215353769562367808519656087236616498337918426829635803216405101289061580819023955813294578422778526002339237970033620405251655973322211745665442235889362222576889450213595632949568301087556844821661108502270617655779122565680100874150979208197414830025403012052565198274263001263219966132274066734580905091050650291648558144122555659457792014807501414270899058862232640601693625577101494954631201332415682314058412964682625955469808156804180698699991000147137841030273821931853145431653827158115352536822730417759414746611348574686817297045556264455081412272650171081773442854279911229908040265924733988576937164149270029981135908458975433189185047696949627531228218357673308773142764593823882130493128602464544110058817609440310949619425795076325318394634944984750414020538520981336970723388974837873745908991181799850401079699156822405900958763644311477098882380246382342713396579667025157770421807466343568776207609727711851008497823343449942149409922373517153548780256439372345343979577063457503623309451434426786476302618642899039965720496001156134644283881647537625792707205590552389516774167983300346544184997137837207257342889633744845639600587558082919704603623118562442839756011540231773000533519513833162562376484245871701389438876448163130457591676025460850192519073473844259344628710783595247102092504189045001840767701555741993542591398235750408190771724092789458542056769229528316069695629339176294841499316325525008706872409577901591599097216435489678420858231361359101862738589965926593694656329886829925253189228487342939612428114124545664612803307079269656068576544509105157443484924113317024443087604542468932420259927577583729666074254968728185922999466305994690575300640434164430905276861444107951048336761667799916432014211424462331782917235590488648621225261216209578898620895151259648669923305761470094948367932053762533260726323492588215928998059559993349951559598171891592916187509902829987847425220312547167543289178816220884753598677499337303947035619081141478169962085970518457452379067525468449611095302007901568376641167197796298676853720173480962027193857065330600136862749532929858264262611487529047475023680190125954258112763209384277819596135416751833432921427788731565165174680572083632315196927009904905689503375759447008741964796469867299052851129334690581237692122200597984350020965469525677428561252201363147637967600016029529998922175753021707812417622438086394150146522179535589652574807685959634899068760111773832585512032270236888135071743740330283844613484308917657692393935944952222624651346935995214951369714545835050488457748228182499913778464857216490577086852205397452817308861324441392240944040218263970767255968204597989873534699466366380074173312643848230898538647600534757898306009676473629114764645933086428215500086194128648334019902635616757630907081709730796130237780002657381979386462955132193757049284073567310556461291978065740345481726838374345418178273643926675026194017200798723966358734059954378318206196445458022001495400823526282373621672953783821210341617160819436614046681673605537163468607758237607394602802771806864791911570902499802538262611279942918347797042095670018985064341095305395649825635541681636331479797102747891294470883881321675452774119849564925702788845900841861732646114792337256014048781923737495936688869564590218318562414715013489210931843771477117485472791022826502327895500720159214384909498128478809345763709502199591696348701315276250862869489716783789276899955155872902072657352538495482026018002985333780045616745825123828123942230141798448821542161408211680966141297594398128543278719086436083646218856933546371046818058567203994479043360165133645800949037167685512750149712688185833572622762165352651052333655985226984484250806429914415263185557992758658227397988928763454727988246498854473502119863734753860885483860671785619096900410823248865013094271719859609793756715512695941225343085626597233564822483835286244320558605511935302297839294645215589478752551869113534628702982646206809288660359588209575070122406181559959641098547570958266539983652624728083235501010793428585212491682367464839824153998123982644228829525298099418712234583900720247721725576674791358382003477183242765115239175668287559254171607485183577682812800422664775091676264135194992547536237880027107816702372211671850382970587286641204605325314967511455412880769644708051809976168454831281584206398135108488308703003998178838771256760745762759195324505192291522289027804079745946631590435241347908482554509287330825313326327820076733540624103995179030047882425299716328175832917785752218454618031013739790137552335959795747740341094710989208815039683190778984753790347538739295243249259694709647073067529915987043135070946072720967312210693905841324240735672978843110751785261526211894598549937830838982640921954125609991380172115187528993003864608107851785072679180862116975774238536948845091610165673612110736451734384074766542218374769212859187835060862588757204228207749951193681161372809769726664767195219263801000230913346201792971249957218409982641759428032175106522301034713429690250994699064231925550392709262761102136594063136015834810775112638571464878377719080575881656635593909471577241972632815657499995017994885324119441108226404687499815835602236735817401778462575575185001334411110240527769310291308850295496930496941279070859520536552454128386531710768372721378615414693564209443820603532999183155655096124529575225929222162734282602511171824342817855421275956604406570356162229241082587894445233500675853241475182940966910083750169779234857981200307664844433428165590433491579832662595295741324884825579588148959879800633764818119899725939518758142450117048118862618659452822978975862060740502649773428123610461671699279763159775698645575443778392775221446928378189071974611656289555232688767300447399677123026802594230834038756855047664686377713964425049650635751433295674857247113986001725584899806725604270514896973362524770197155092108703868750295849491366574626999579929585557689980556321279464951275125020592965054906787311850449239475439397180393219031271826168614163350382969145841109834703463969306501659590894804570878465581114961872810209045141752106869464181620773089990705282898391825456217054035862212510627601514827721508730313492549605756665686548073678191344908110163109463334606199963493096041881837185158833102849622539961108449045125666614025201688110133208495209841019331813962306712218709790021198301342181036580527857678117213476252217069004312027675913508445284978328572150320181799307254705858317810123711199702616851935018313361997861861442576919720286887574284312630018948113816919377212181869411691551542969461209023196423470737215660070743891472687168741855937733109300454857708641306252549380135551620485605337394568425805119115656351307210837638310722761333547488207940287102304001138280485863406405693964923670378862756820283277423212016576711535301362447401670002195890328643557315807398725514482621942655272011856054181767050640497577168551932993614548777548567495036075177444270531760682342809578720687431587541675113358849962502004624625730164533480581619518766089991785940210476633620473038962685532325820641143709689286431919625004293635670135070738454391731428134571783403235654655857352281104066096549387479320119205617796605910963180390842633775037967883078534794644122205923517766501950331451684440780461078792271880397292592782406880940314363393487878433971437920097163142293003520940704714654895643206311293012726696246746783660071756444611756945925418680428501803768178710712156720837137274454439658161399051659802893235153178398325702954835674926819361752274580754102662133906516003018229771318825757561475642485402640890667799091344676043909816147371277365637483595983938948058516666971919139930323022043053050254881208597115640939485443796877439527060028957390766107514623720869979406309982208649557273230854158128763981829609177385514900854012338681089580728585013242907845371440918301364891334822744027676841978030406850441425630768699254050590905262098443877723329065089663280862345745281196726325459902228261679940233549357879388270997823881590532625996497104200863257172972207764855550392122541023316084841497545444277816895744931341728372696776104153984148465801758242450555130296667427519565822622059954480401848893579118745790911504349311204451474273833741386514829781071276086663088755651579413360459650705715937034808632893438891190254591979960703918898797117210976780353927383878059886891158596480947458015125873020614527035657878669278294690970423674807988965860216225272229618343701557499917869578622433858412124986737786308535399434927980152312982113168156853444619906217861491200383701303234174760851008543263349410069101983786690728956534233175049076916143403356019015912698518652580179773061537088945489065201588991126194231176473754234967630606579162511937963026217889547854904369576997436514403492838395727620251255037747501316780231282104721289696247968134838195471900239791172130345517692315431171540664067130885546056130004198106036504333568599910932559849613092258167731361714138071387490692348149228093088510132917013263779310987343336452685428454224111356002533766952095096428457850462128039727044252894243096452426982699629957806781707640707032862303686035416619457975183436871331377086945657642672500745322476550894220055018984530855749604026270475909908390199335004317968302720580578497755062816241983085145119960860254955267177368241140728531329800522168814617960233251195522757082444571391250146545007024447484476225758270810073576236619427366071931493935366051340973685653619010399197070481266137800189592534964179822623324048895221423403798117759191347117425735365878743791503731909399435480412839625697000654289814174253839189341487517833884686707584159884686560639280368285689475226607020283276305226035686326081898600284229495794764924266047285677760977413313173380476057183430455937299111051213229174217218447420141220960616904104016500592278056778818924607305232960126593739590644408865491369751484206186599661631058551114757314043737488496459119267974324030825244805386285699494063417742104620493237513946305921858434798119509386952282276458235195262247709044306210101170510793116208507274658484219650980576390569449132206380321980265052109398144910559801677460801770884737720247633282406280677062928701052105868370946904613667966788382529845332683038764539996313971659127096919443137929852079887741493158316178218321611516283454494057213019971072079978959835479922324453107255016035923263042430379688174047521781022915286211680212023370818333642747663634055450557554678106502375047953793187003308296976762647920475089614835340688295740260633496398889535255213508238821076599856884905749002680211828236072204519808005939430839133831794414649622759013145230049554026493327745609200478841233483275953298435741339568219574947999422060049437513243525804155386721780099057880431722240637188780775999293867805091891075351549405039333063989046708868193783349555390128862041395200732681688544645092945178263216520637129805870585403646622733749918111931196026260113628622097193373311807118293215973046407486623901624709348833052124493057143721773177814760376769526441812378670285417181027435781443926576519835050749520490143035090327618691622752736966369349677199248731994048027725597926221725805474108040592109446110406497473670721581472159662473297111800923960007748220907496713379419149098369314012072822710786107623799771720724339076800319242003815106031050331846859015887289332667193667722660941217363159856892222286787011824221310977565400491272102735005355154640783336403691370496960625975437112317096394509541398683139164097695327135499455881855428657879569290056124594316903292553289886869070878353012023404253093624489380217244871257486290456885284596248757582661184678268070871482122222268148842125535378640931545409860905031664054895919514460304788552917595259094169010142497101805742823858313168473579478482672239554887787565640581922558654266482537423837499301060538119497208743077945801621891320820662727872381314161414992656224427578053541678154212680780117065198695916717232251833404313882742625920553760205760639818865556197826492869057543505395799305256717999782678013320326738761877604984399859303590347817901751355354797154916152152689070694518736566755394559291719960215322222954231714505760850254933107216141345901194724965924008743924266151615448295291638110154003827368450367762911569236975765633068792694681890152370499131013611761205475459570859164286284952470712043354621016006649925448793313694252953179879026496852121182267930575453271436668534877480709631743454395507151272203067979893581591162642286022063140123730141215673466906347035632258252000559088031794715164668374824624709778837979307945176285573861450325159207404434388742835765857663432280162663207292617166815591488271961683057942227113524735352111172789314848357450173146482236063962681653200995637749957156930401655202814637434079888206154586685571197325799789814000990203076046301894861311662078348915388234409172198634231514711685966684442057121095563068636589463305164007382819120158572998869600659341879728059522064383823701317100231715496410585126906620134862307592413790578925769809518579977579209133276433159178700811630298617146850708736997407355692928408932000050325106361557835033121507658436689038832895153085960848953861174692453039651340772847683952806503004792249026920075461676503604412734419040489411807254183283929520665505634797741307727483148031147971353121315140375581946267233718895007184088267475635015723113941335951627198185763813835931614899444232466613189972122295782176695569988662563953090842331535746824727483840734805558384431237151626072936460064728762214207533052076803805584647912150387777566267186493425822437254772691618682038959154011021839599654034202705768235237770979115210216996860110902565407034841629730752019675491435540229501477125031304084543077599231999261263075013899102008775404313343719471354181316552416905606646136356110595450049371189808385709604656012880629855109627216743384341488831024022117623200394312027259020721357677158128818576796204304828563197329194145074155651564651687324635309204518098332849547372470572526558331212463143473598867635224803352474253156017817614252070857563510107208013857155494402167284287157862519496715963306960348685614829280109930522792727759926198102904081515817752293143393852484601605813697516532120359506234983844783856728060065415063301695360903536880746914460744388262177181706499548552322236224068667159849128310007026016260899090187873403008727017772035596816824773307378034609450386887629225725681058805718006050124995701209140439922726372787180055532608682556349246275139492139202393639908853888848356034136686530911115756803940854104355707654342217628713151218006687156297192513404211245428118769546573249751336157608132774486245038640781310725614584779417767290909187780716667118405396404169956674591692130117641817801555899186586555871238431826484125484091909818576771983191301816190405260269733648517318513990179328837685647877273914795898887906090978249820542815361325957636785713107559271885449638266633477519153248861774959977699074907947068063702651528946228046374264768234513533296541850025708660723365882668706800425700969226632499932469487054025141583758819279307987362997848119531936970629422157736712329663475653635696616388466282380978215708170377445919147990352805672698645546796357725448006507871610051589068203963219043741844163079884472324196876078020960202482555902308933349478939529408957280567001399040016413878022964508002958789913875164236433753066108235432402445372848164664132474010789779491692588029527036000352016619778026938728805869696609668193946880132906551647913920735359125038346895135872055759628518395566371019545004492735025753662852949245354263535794754551599137411008107973422299494946677667324026516314169504299501807456341845285719071869271072754372027847652180329387537626661642110689856612955754256770096214455045918341521066975060541491917626895577864938937674194438695018090602982954135909928205469884393367485303772557621801108915667596978080272344755199564424281546436271587462794965701494660344817163682829319010752472599611281533811545099572331753605404745679395681900816266702832964464718604447374212184358470793389163018413300722777450960358507412930955541918207589432994260186036992373924381448813566556707558090805352810148673611010723045098732083059152846901890567680549414541322550164226220651381468464402826687840280489934035985038670533848920677938915734706063238070908245334692879590820520879936085912732727351999049493881670492725247333140879980842057521287475098042241375339015813488713590829680653200661656898223340622797285110067659334091447244264029040159412088214550592696324090834395357147363767081516436044155749623404246784928253058304343789623649038393492442801704835128593220016498079100219148211524290947840687996520062968536086205655059670961112897439303370755780923253450886685768211869480253471406689173816279774131296724416303730224205552153900710701718465369500874800968501964251666489683771006264857933091663001017182530230592874932335645429123531730278017879361602215081133097727923120687430960918492245236352091366355225242706250274151690691049826812990605212095544931007091746319009257040509543045569411206144344548310951524576590083613650096227682694375107327224770908096597291247033298645684083915746917993070941375255115377181708572551946828672699103171739604049547659376944973552718757071972571622496097416914292680564391542375191340189338195472068313206872308284049313263244439854367110278705372638026638787721575477540850223369878893868369005113796147473322662339017929822347346047018009802051994263547498859289101538927064823316222797819362790572829680045630109719204536776271888028638338582253182587432637587401148511525805902251378599774621517352118040910526742510932832508819614828346057904651513547018348732367338267378467454493806898105345477651659828377040511902683766700677628828311212945918125674555736178444030929183697444290845975945340375711872139468875036105434475911276576949146464807023245742579386933823646264485258412693194983154533670326314167275279572739323060934238072873813808050626301620286300346950853818235174735380054223814521914715097091039745030579862031261668950267778811963458296520515980945211762620471017277106263507626504027589050079153262461630002874113800416412427287324266324061296120335593217648266833719827493728979195363238452924666348956809431646553595797418805689369006892703809292329906435000982220787241629680782320743842379283339147637229252436672420363801319345009620783342119386692903490868356028255688996768757456816774791483392866376325314302879094552404225903089283527454524469069481476523222797058149005967703878016354206821664114354369045755352671184845578034752573824176815411466238386114045715125329327805628055223568507666970863267534359612036045740427796559963575792529579943386544933664492748132860557766489067559484520003511091495226362470770806702463522720764814953364126971256696868515641070786464493219120368291031173347412450999035168343235099253036828969934625613911611247971733900813461447198718941008389962514739113395809294092155370360341504877507763464610081856486615984493202397935643551608846163571149103903284542753997678128632698968888446530938711928200964591650749669879558680415469960162734817229383765342790853851303955296208665052939154686714955934356990731666950049974700233998084327754945086265176393470150691577054012526377147997517913680845620745412962105017007771155266420903343917737208303097658686060716644119486375938099717535010338125859675184215285975032098058391178775999572228287858553248244695618223500733322831593306641333820499513648510205476547278452457011333900990772705163889719859001921145580220962612624939755103893389834054649267126289244844497413670593537451493310037231741232895244174869535135206333776313420329189136203067994901371467331913305390432227100224610560182642106236440545052474834292802157091320953641403213008169888510763005074308103000749047199962111839161650612945357989275922997640003890380383285020626292828600566592687852453888465260446163425635317487264833165666409172714960987307274150730828714011731669518653900868968558166222327669526174110659319909032593816264598940655579576716565946375028100614132345275103493154737235707068367082464500942727672788693664934444113219983900802490884179215035197709141504945085750072581217290122305667454721639112498956241860881095658515967958850640655364121441266893809995934547437689208440592259508256942944946208980123684837983905041326585211003481805509890291772448950306185807348752211973604713576208720940582858289861781438602409656702595009416134111806769724913321477060927348797176890043177146026007156986510877697202178319764654554630267273191564494165073139324476651882059803866682631885346246500442678484882036102968614973736527650245765608490769478248198235732891259040104380031380404825031269692535302335495191963332362510620879347349424000962893941644162105206617847330146003098449688830534029369592520212838530521302265616031301342569661115583211747176932220992777053621595244772128253309191620671693093752850477541464712142318937053275550634730948183847487689751645707950864014749302251198467104039626302361651591777324223578480853115819642819496150936067165699014631915827747107555333526289292752444797105811646015426361298940436781762526651188643643683202820700687268284963043811632239110989350624110401385728126008177350492407854198158277126370158946652657063101911184795638602096669808441582465447496576602221528677539020065853697272718683654313153427469703390567547365226523517847736054432192850959498648795826265044716956779156844981585983212657163784791058819591763313275140691144111886728901027387022429792883683440448671215766024775860670019898213963392262355791996160085653152808470217648650262426656719362905408973758890069764066121879421538458714975301879343839168054685965803330493566147072381884375916126729302195264374255369886910432823488217413868404668744290956844290381968005716307788977093652300453691342745172782853411743463819417234283233018854765155277438374848295563633515944076252908065007618819898042807462637121117562231041949407176561278943835358254018764961190951341120728608045250424267627470714706216010683584897123110152296295126613760651758896773229391443827839541646550895001216631801977378021361564363561692501988875569199252630172809425200338624454404987073366447387967733108859512051217752169009260368212998580618579552472200862272577529151438534001672005762185335330418861795160557570424229273240453101995290199519703238949734864902913551965252389233769073077893190900969381650194157635926566293303568618190216243312157425077485541367502375952831418819666026621751649749896300223268512379245455869054914845085554267132024504484676792808535972713601172715719009141691541865033093835938313730832761784742235440937049028541406609251505990153506838648915687724455198987889081227522213993418404870648310218228782623526570436341208235308470708223105268205782733057620919878317460607184482776063415146361578547738600676277697013249335668318097636107968631668577386674861444988781030469559790991806207229721606508002654963418645683077797298261854459040325211935787868422517603659198846207536578618265544646183993175014279904971628116435875503744288045107071101455168177237211074741588544860121032723703101740247937329477330900195206298958176676752835469575982567968061973274570923685838489177621331966309927890795978580660712232797033658739479815862423267041349938771706500787216126743742676681285286962202109359154132461412697040108112142454007256150505898111368506944474249686988279435240692019533074412058878140174263872944322380142370882969851689972998579896960853045075026801305084526021381026478974869850989010552129664815461797365929587273690295313563717691103573403752923876784604837802693139488970175174353127779991627131313243454447246109833915971185872203707674087031552552045204970866400391887040148515653244831182966672694643347452732450438420192125422880923709593893322985851886936842634937296264234696084266921458982667999100716280481019048219293195407236687209421485061176050701790782340174589872218906502639545719242819250771228274547519326823674717922886685357883349184870202467627814572439048345782073552622412458624652843345970036428283944502373612124187992640158622117023580547101057584941130299318837737737377635290517873190484276771882542602640242979104060769045299219950299786703233075090096034803619676307147702771949457569391782388861799150220676277133044448715144040488349733744142903628373558967617813407385138996838057029012437660406591262667726455602679930427641230630456548840450277914885282551234116626238145831633953667231849492543406410786938864872472397055072863530190184024706147927355754244123797239225265631985238810828563066888863215436498281673598297702208509529651575904610554775579920388300524656695558334086725569413130537414999592294057270886795653264942668475666981796948566535108850147624441352528198636109778963775740332912438196740998319291991645072766696602506039164821558917200493837326984487128040298083259335400215793807220039848243267645819434769791450532748942129922524816063602984334800675204013092313457265959086514865381856701344141076263412171191208881031298491683008881349292737005739133448162558317368498131980768134717482696949816520258787964577503605222449833370029407566678033569185156108076407120632322112533036017266392599689276255534271153988246227077624624471610165773405907343868730134659791462087491479980135009795059080460906509062115477739253570589773726539315594165861770227538582089169341113936786936781692785324913402056217547548285528705423173398015597760539108972584410989780702188334004836867726012045672516178184270793716516990321287870622661939937982028551659302268771456641928389265491976698391327147904506669578483799346395712040971158251980998524016643595002410419134629692204971085037626664497658517463149919654667223886352922076953951890991013961339716997871661989014868520514241517629972123725845709047293422744327324095944975876083652229668071906288356521750114396699831305832934269467196645768432659704401389026876587460568131966387756687768883663125668375607843749093283953771859919202221533682323089568414148307628993070133317150954259446821660609663900216316927301725575792284324204517655266576741345479873205937553720900294369429080878746907403358828272000302830225647185615615428469876478863120230282774565716629577130293700565256080486340227547622062516171251493522801451003160011086864912749282420624050546585104177689420176114013547050552109341220165511534446748449243661865205023508000437173746805835270881540171126607732627861179792385352832321668892366729023820559235736851022834438827685765864604060337343892715876305879513680131896955796819165383051985615667310625874947243937635858029915961462494782183249939537390166394323018729842368555954760495359361942449612155618262258166687839672651181840783933404959908177145960640958381858654617954303957246793689869719738485291117292058335702489279665181166517089519003768445492034892819411416133267700354549258746135204181164840025709355400003676476153149111873910327374715865043728189421393449791963991630398802647484882157521266593340614550560283132402437117901570024449906768131762688499947962176044150377474731755649497835891157753302488715003260378466798481515617715471680021772741443665771929144522172165026222409836876118586584598343440518759636806432128666323078318352342898163669862804810904224558065662163062343207552860128269762372353760051251410465145157758593249031653331411373095026728175681693085172197542151546890776129214956989277986871717692170102941780505083447281679345026465408473490977732049924913471975730732229822300550611674747531482343954513365916580689848594127634922765970690852956196270398868956032658100153222178623074644887089995379029322410538648050982948291673777464149508928154014563483874567029863941868596926193249840316050248467315553056488964279719868066769106423242265181039303907251958160351193996839690933013018953346288064157850585270679977390163189796820093289949241148243104141777717654933277443499329546748728813374442800986034119081039920382284331957029942139252214913908844941840600562270875653713920382360399331204113609498785792781711566171045471627627908004345218545811743766569595418864965339636080151415974262625262016364869028516055929675294977454582825305309371522531351991008306757749740333631930703813051913434808387934252042603753801859516068031639432394312271926660443104867324457731067980928662539939814001377080928681195692667584571836935660476209104314841022048756842016149351575760318311322593873422801384766997515871839094178820863796364109033479645656591435104482252394359950315353566256879818332854346745552701032334500978728312838491396814517560916930953084064380514157993448606041791298027129419618640360292081766641750928265749703504085266249379250881366245988259329488984540363325335814729697635673710525025966047784705685053716633927942621203592611469631742353485187792364595467598307314670575602506669532001984798761105041570662291258206369208163914343084243756195391063978019145016824920322487345204194973138401685019571046558537396896180768485926431862905266468917365287476567856464435663320657080328427635674363828232201537191312808652007055393400102157191230457498706236358336993622107517997720879149749517595810943730362360831449701815562824182425118240786713098786767736743768576603179728847258113892506718370371393940431218488110789315126778949412285014288378604935869435621916519868975559494766331366556454104387505445121083858909062202007152572026060288479050919263388646687775567889752849618932072752132024994086568020880125071652114831496533691166199934157464242124848580267113185129947250719291918114776253210194733443624392190604328873408614526206666279339320509309561606763825282399497043454272947314905749600000601320852165826593079234220528581342527060886795272215120566965669923441283082660171990960156889866891067471185222150582631787816606893374165529464395977716453044810392994609418968964568884399086921323112714973138439458162490350714415032938727545906017940595770463987286306927366900885173726228538713234878736560150116581742176846685037952642627607298007710327062594656648976301480864319180051108855250476279125629762530993393217239233892210346947763171883874586943305972874714533550047612838739551490558217950818618560537545076484980289838347956850378299703304507030777263901404567613435312405906602984619850338692869644372035145100758669869276569755591993591897347987511946417712423993903350376266591763500950700872712471542046799049353784240722637540268679185664809966216755182919416042496028439575839444863205180816970062603380169043328937941933059760580907585750344321571063678640966674600261478245194293007283043042700549662093420302734011705814808793908856357176615342414380760170906358604828111827006030193569579664241887217389492882806323235755406873825013267822120111919315186813978423232554936238940713093687425140575851817506311920792380071988028658348185143480785951049594396812709630066535733213181081535308236676338065664533775448031591405371537653505365504109210042260603707299697631261837094345212113286296986484364259263205534261155480170404246205531709939586565183226584692569504684705880432157423713341445838934180799377748000101740437239347367410661259878194997268902773405659967337329237624947072149497757266741688918290387859543763096206063548953955102955357405134769255549491442558743754305700212931491801129029655744064524909287559978909436100749590505134339567323192043642133173026522507536964493512483116087006970403545020168889822231542262092480724694609658812349601077125034670896649664451678774448710422803027490857412305476800956061808607272108939991440787511424391777272482688456205944576574266728028856512531075024107937262258778622856405503398166982768112136126242993202348228723747417991724684102668882311442762529053365919824918931632747646892299648944944005392268809745093774455103961196665447842158636042980473155302102749404768636708730243167292441054071457732671029784307798331547731090079698874476763099385392791366441152770789530759800679068747054655338800185202864029209746255316679274869254429257137166090433092157673949272988590077702519452040398748009468529172334038702255086300763810124334934996432263007908904444657380572469241009902046625788803180354748883054828928081669559214630581909087956329232717255432993454539025930720967388989396822658755549489220439417666516675641604780302890207804799863812727723060876129477956474856432909055665797168931568296416760211003437888452826115555583445712555039749088885285398336641770716399987143705595860639680087087333519086463938638257196766531043645012134353813370433614428351048207202095643680591346893530712108894273015238153148665776852586953731418989411129912671556829288176626954093263022925145946785527196565400170086771625566301779271586491150700719168454741591583671680656153872112607731195059779144432156078423842161335218539071702227639280861573645833652008647676070503738991519470978933106542512421387954305024302554244732925256794547198742224280439556845013494494502864887596724018793107371075210160132499208945072573158184713839485069691512272902107402148570154654352912951517972457358667321981624395669890874123499519394251607642773524331517943693752742462125578155712859081788568718484382650120953318021122430282718809938264113691497366684844861897195626588410094953929048168999573840528042258409133205612011088156899400337226212977831984812742511384708362923280239752111732547190980753166598726609250696063907321890655816823051148565804751997929146465201887667247253869900852413487537343405333292134307572133963068835323790165650346436845592342038110315126178130847171936191080719842536017533355059113950302539192254556997262482582816760599976099612525693641165518743603741602129699375729562691249770258344407852824168040394633073438918538612297450798657533717360284417634963652344411442502757667830553727676015878354719129545423884795074152436363758569160570183935966151517808379641672093480093954369117304273940186012989827384501235533487658860150719396316277005016167009363273714350240157746291987231525307845762840061286351901974511495136474073720036122708657609060914615559156851454351793099965513574575503072529420108099778534935527476818892905481438756582683298038937401430886413727162024980237893082958173659528603120265705464385184359486283916389119168643918824040775259547271170371142749157065920772616339989344494506035963171732951122681125893992118162194253819762237988509521980496229483813824750007855397766304549279315128966927642881412926971527743816626188823323471884121658951395798143135619324471090424322932869785845475569688114967775377650304540109479890185375981992384606255584589935411384638953593221596730295474060052239249033350729747813597821724324488136843511122347508567519209683476464197755382262323041065704618147729329661570217713925627421690724305197219678314116621320428893923160684333653851087428459281301749994972089958409074091650255038053481051527375750265683222171883785995519547879143266325033923096822783774050786653184805455594283946603811039433203025499585724612379373659176054309927099590803249146577727607182875060375933080886464153939167114277195513565533942909489350466382915185414152702453155677141265210994261132429150873777412228619916179554157876487322672756894148891653409688060423224905155788321152026675346329194693291069290353029125034662444033860123564681543097170230912224958892715331109480135202440097324630691103890087650595661510529467945282776184923451656384685634224284361747594517168778098032200120230742663358131689314774200165370196091043339267418582315431658912104247450722794490792764849746653552983510252592546786347268632794233407447984968005225284481985422425878152690641488489913744742581640205803225450149252764524559560863021281403703234889699793244025530808555929438875103131673255672439319946392766432474229832723391156257369720103942767985686831997486094531511911732291015736387071381666779454697166729119791423983421557853714334508510095919120498448500003901008990165822447617993727029114552645810077900920766066358339248774523693215495377694845396818293407950902283969040710743833114014249108706886487981102422418208302252855656173538976836455007629016741959525540099650758888966514770412875858556520452873950048181442610614556287273114093668447711542845159885183189270565806799806530943438701311352367607130925693535210861636093795086976651604907498018870323051884442129040816890799651284262693769636195338081867975556862825997873749683437580068400065207313418701359848703658862940256440889661108242543899307008565786313714350722072881397758586355988729857220284327643284806124243985459554722043544815491422360728631246825079156923625986817413036736684338911613065695417185616821503762926094081528781564086445720270138808745187263676478893382297966817566371812204985005551575222121764842683202721895101262389638609298020267900720164249741356280367352515180510506633880222078691197151291215106086882834986941831056876708046279094361838967099971778842950668620962728894283103625460633230125385796776206675467647506038859151994685459085899296784636651986746430245433819085055511355148541140471702345980493717037181603980929077405660634849692526051342118105725602343116455174863205209327875856429067184955753628774960554085026940429623165878725577189269172101177099710318969597433142950183260692640262608748253923423915805612371606586375708105637980919620571086273943084420917782677826509524982373595468022029636811773080643397304445500215566048044032408854599456911371659240450545964770501986539067841161127401744070157511818514558749540411384913957515145491069337467255941479226265454022932276960257828018144877648565984760384967504479796574223849632054685873259363533684540672743157619477363719009336015980341857519144012565339668438547583221971275681860771858727929861093917514688267804922323058104960203721373661049306205031579713949940883185790073002757351183847653573040837741882327746705910454150608416191404900335048150146977851852912603422942487963430620296869888825254423262404117113493731505939022846980364922849669977823638905606217569559436546690754485474991963230584165514523387349783054498322468849894373212073131126150918138308010485769545798114162175172308820662107396479065166536993977015817668352537780381912027098979581567541193670514629352091679071906182464904572326787037685588674961897281202311524023339412567631082248141317419576843322662461268846056544090777138109118752054728455077791754745970666055346640937285847387685998634179789093941045478009386345524170554782201256382304087746667742567910119799110829913445377559303150347145492928522198042013271652806679581589189895651998583298583318493555363094735677271754274097748297775971133087606097414211775286014245066101979821209339977059683565927209116009931711867560201704102758177819893676623220893278538824993445385277276389436371612059778167634831727960283922037214997730110854529081844101569218456039761576832699195341089771674706542574200304235020636197139900941578345930712094144928767919629234106855708251512521152177291421040454769805916629489756476853422909861599247459452914311074014964586298812338502587490642339440233962970290785011384239275174138886714528796206817262805146599171593583412465516420069225940353918944248300043318389141212838239053314233814742219139462805157302037145203701708530394450034474909159395735442318670036420643582585160974965650362423024544233974730502009825686883607630704224735765540867455361521985373298447660958759864980708350037712907638069513584242224381658214151203385390301910313469052018972967257157622691650424977914906491402185958953370539522496625941809780546980687581252114882890980971450244593992122148912861367172643481933930510286336855810993526350669554844720410955404437073358231193604131706227489081739473424170667830216439148337744819331429450937745977301974301597176844092199232988038781690270142206017675202325076805158736794537047867323526320471743975545392058087044996205994199065452543789285109149863769763526402306525200229599163124420842376952582503976256039770028244563991339839571455502881596743205947932270382469859299834952617537657116276965918738798181345859804878658593402633698955283638597079486954785632077722333687922220420948253367862409542943564981524368985866980359724339173348949690470324024203448580291743643006661420889655970674725282245265621639289591252352618622851708258253815305807384754146885446171178538656827528428813734937883875737571096442949603263943983317066025520881975421577169558208488488727766453270604259265221052426440640770645115308391114436176547305872165040554392137438638890282721813847238345361246160548637537475935057137573931964579668132626103815632152681117757422306941619406107623391142680490613481727085717625793944672114133909429724825155148731106394040285291231915237503463153430183155202730590916930754597674526213572361470854429897868566901826935718935453128620954079802654397049857923984403856477435217718521413461208886981074692492890328990993687184881723867316320617928672586676293482650404167609591841948544132845356781200038220626414563324016995456716455103807604575704277857409766273718511038402172613763785202339394335802007988446459626958202899731245411957469319815360621917953838846102764602979569452487490708056273849840395047688098738903744741868189556535951072072688711621268320873730652070142318449078947969289198959595543545669485159585198130737479635919041671781535806724535105371331972705078683147403939095674217178637850576991653149074168780758156272767572974482384395026386018716888599063558661278399378139768105431852066879028116070448646578471803005401314162761442722901011545611743498249182107777313591021705802403384939068532218188480152902631783543837899158569321704466943513338152278452086218065825139661019039105835381823594743760521646882954884488767170426515301994886771417070511656660433944644681701475090110567297889108361420535883744459620523661644030437524923957850151948639163465077521726497902138619359081415557661366116251402048981807542936782581456289641006920467875348399151637248548524049052049550714837295090659048502953962963141921541710791376816693672507706963260718738061474268453331561490333703048193845256985057496531707526375658070604734221000209939535410118903222051445067908207372394703089913254184575680568830664963452910781750297011025773299057176284825828003750607779466382645357723647405779744172905777346944436175553149248496634302624894557210968539923019324320467524279769075091373824307535215094735430025037751846848216168460723268076464246798116335070708811288999257880155259700854606111090173717907365154083178701165916568717077125880146129283394606088890774777847383674063401789028849415585695444035915911749663298323704049585963287553990174138930233020983617745352285079937656999038877167477673315667000170223451536167311582338671333036483924378628190907098431236257197161535219860738424325598572657047683489865545307897801501750245172330622113304199575538322412831095873311095760672752828884848984842092721103753384606999452605244791699491886653889465359317773410334580556108195800297046045593259295278184354117255171117322718666222241043546973235317853521769335488729306879055938759281514856119895819104250089657565219718071983064226756779804021610439867310318372047527448828762077160306764231768325446214559851496977536472451916951930447549947009455679150464768934324066061816690014425940097498954126463670922467078343316372145069990875953851877313578875877980108630183129400155284352452762163960137031798279571900963621011172733709904651250592455181387498792485778402123798179527471123288621836913928637174690352031340185896281747234796426149513814826237435593969185545940634786359960447057219820766881997221115237650416688329799832839258074536177139044687295836434366093178125650723629680595967351940591318239663308836380432145040939444489250201909452866498611384122835602828778799973165875829008954751118901098247895836111238914994584998627781615607681316900276537781608641780804672013938222750979508776300047478006608976450488788607881035743543362230736548280996867087175427734269102212756316342870779439412640816342077517454762791179790879711984812344491587419591527418417932146853157621827569935114935957989222800051237142886550788502972231773618990187894711257909922966953783896517739570287514487003758343114480483082918849751667059394015937604934153100353055402665043631445926455808877772317819497463080891365691236601416923751053903862208610110172603296051081222239165307689493912288126871125493032780039738294579000136773143813249723709199744981786654900502944142000087647448664812645851497527656826619757058030556932429047391651763691023661824247283704276631339368374946044106980218476946864723815639525787898840702597267933274386766200931261992877557926476294903156791228496385899992910732669767828739374460372933254970265142631411105993410283790001809480396150538252149260160989191308853144006436441979293498966777990389611240895998120422542843993966523972642299304524910118067214680195283783574995439834564861484607717251699225375703549853194144603212232245429659759629847769196099426130600065383032362733856471174149028349170412765114997455001055803017333159785461390326209573835680213079540322453833214592780719973297072411744205307320354277324448401722215782395065767775407542284398636243643787344828342638148488636053642893485893791122327043678171591857560837272805467136645708404186291391364141627255091069295275905755967384447865594890820838939502907017398991340738950010633570081995628386018922922749119505125176670256779747190714625652651253905398753065531861083509530471650950226670228580965597775511331134297991884573750746027752936495332007473765260112556082465018746301990122515103511193814151821542882606013101681588168412185711456263535473634198635366185374308874819143795966293282304341090703678447096172275827226608143308037933979669307496086213903263711978503563834830764382645680670400839413134088275241052848164111443929305717103317613285677028672445698402056599991943645991881107445509901496970579517205942453414932032576645500204049697509289173114660473551698463105697676070665255220884854017109588835796928700663082076562203259202370426491981321963947727618000330619067072794774671656999593497762690719431030372032192788891950243279338515117929607547506976508837163078417491389930904432473023551241812799310731582608994915320240814442812451064668584817099081226665750672132494952553222522785938770338112755744895427011334301636160940637598879767014652310009480126736859171307695635164261891963572578932527461608061218944880681629426767337519370949946092309445077204018883045022710626473450183554108945608043165412218004931059162183374640031430651475291042674752851939366363366468539769289665195486046302817450483861027910769576350685932111882274422235156406248086815256109508656574213447339261623355748845347810377598656216677245401631266858750342663867281207686577346094052260260824358631992942576550680510446276996063675732987926925419569342899160536552861684627061364383216577761839601475433998058891991630522592820197469414487434360726230821856540779235815798244179727183099120022596583481194555526587422611177318136517706853903423414202413979737345902664699615714269750957578199048988188964981794498610702384182154095393367429151003364875122472863805328596805751045072694620388964780318303914538040029098592969723006336969903888697524366074368803759975963660465751878309273707393660304160543833225142132678675396609874727477490553556749344985838344328381067418838198611348900981634313193248935060236819352429949582664626392529929386163789560532682601474429500492857210371504134850113774295118898920238535902002764381325214672065349436019333322282985629769709222059848028395434251764635616337503092218602556721074147391006370155734612591307486773503744760727330218352046217679017941553540761460869696697025277391117140360920867775985050201652526991762803299923749242576879312601857181895567463095784027727011617923804295338190497413449627916700368809611702182049052315352475343612002885540876416120125248994280837228572542461245051713207660684949654908097211902636326391152832474647440591129374274544340130543554744392784854304800808792553787520916124272226067441835438715809523468286489968955260016314379850860560681519960274681613535979035581111814633880929125857699611701863201940814466598240436510858964515558974104754783966645472501708608962429858720033010517813854128547678438501715238228432095747083962154944752821964309254819910098511336162130917071019657170426657109926751647324945558588693665644562225032694134496158471630944300579301282398774677898652999332948412092448735086708643107306049274362484009568696684063394410553714396666953297342149866733803041601080207206565737598151224576799593157105580455794375658516189781553485150122357079129145523423327490875418730804427082921714714609124919332259336328742562728438873623641474128293370581110063409532620447092856737876953046357422365496752517199778069680282416467372110925408678940744888984516656391287173742179998672725493301005199389858295605414168752064699661733215967261105339747573606494002998046745303718907253534957242730728711671738552578538248541574781165835499399087663218394779586872105044830795903162752018804735998392168869185419617205868747346206190250993874811690081447214106039929974219573959054289686824272642556792444013755339105435213349322348428589382604274012470658391248184862716188687476539174483560341901720552493706665269762813013909209302670184214723401300032470319195742875477303362848367892809808190535266687844520071795862753514631611385840864471702203670481121171771014825243549576400880085231786496628043638985966013199262771251065680987202428828636400819304922930051441426387062917274103527905559494217542183275110057931789110331804448608009124777841670207113168416324289083234755687954197164270423663174006881607078338241499381845345183276638550490879979789411707315285819295962564156902193554758225372392037657131234653020153311151888050032579668146112688154006386503284571238199215616272167675368602680443686681987040127723550912995414699398425126370687986278885473872804586257886012411027175815002933001587391017876039662285295711150389275164557453626165426512889307826549682172791705157268768426073743994442937499372449293948615639612339766103888060570855832786681509305327163036308322572186866990157943885563649469245129526719992215403675740287990632901046655306996885698045005252290628795545311333054663772398236602057721741212946969228315336975284959156736694728570925997584706073231668419847228077724636532239823859796798575238295319463950884824825981303028862972094381097018217251398757764122252147611244061515170507591940530875904093134485627554786851513842702350292691955921033265016064104113713213051856777883452251982868025018441832867263900653970095611281684357696372256713390190379995315771519107806969537707772327281702988371436458786759289019113215088872904857747428915887879747074440804852367432656493463566366863858466924782675042175791721145807139186413451136214541833443030226651506134362197613775331512642211594087969321034061590765168226700221388847956625385454517653322673655879763020000928503051853893150100538481729614562345912680612947995074898581535694183400154506598762331048753869760894701636809854077345085831122134628090027480773200223839535514738576656788743202344676291031854721159126460287850651937110607406578419574981419860746745236673598271515037672763515220051682966099062835247758897354813728507431389962951584072411961338304854152506671929113428589533363892887839624732546649852284297474027277846552431189108524202522942188012327450066115634554503625920184174987729359169382507100748398288632099118913724294807201192669860944410370304698921733267890759181233751829201859896787462721038266378490636532696659795577405381179832492798623551015596429688455062545151245939636362225975681188175915107491003257770446560812594836746625031015421548091537801240948207595665544062485823972715828233777793560019343833651956852383965212169157062653470994389749929189531484686178561084071937870294119063637729853324841037311635266295635738579812326807514003221509670756499906749188627440758807065575658579891434422586108117417817070124089702213223978268078417762867617163124237655996412690157760730208806648189147586117535752198113277408331747032587230235904678684755145734807950245121726824661885928071186903187830760347161992160344726682943338016746497571599616260162946782896041779563090888711823130444481028131165286359892528962444753760446201264764879728461401139748230058412382678500083287778577395461644248416597936522193717528130252589718211267575970315064780889463052060959810571843448842411452748184533771325505837889559088349850438683547476799398337023700654536916671255946772073561745523373761954701556644191609104298987069213859330762406615905367097038932879067782596402864063643031953837423971087330952959015800439982286317983306843021740966687680019589501754417898986729959870238380429351675216417796599913650312341273193395396785162633809067219745364571297898734661578589896107778973258065193498791462896094335329305467248065574895119098593306732826009002589601585299830744325517745249817750182662120758313430181757068860845487153793077536059468351687819935876048807537546251147663369420622579275167365881999575628951111766781813470923879197994170528315146525454637873138321352508377467354515662876954150811705174255605163316282501235732129855946054767461555096354246858339923271610834863956651138700294377796858163387389408210616389725837341884813451366572368179848034255690670793911520032053087292989472482297231852809388940694430726928111243183383602042849240725169301167616692114007767255598142935962475464590674690666072690205747588444481110124255808871112333014068829233214502333027380588345164844157167383197803701472039632028407975271257417869263048522804491616697404324655959793518693289342333293796915929930562118537312790916892765084689795633130132094970563495282762047363649449761442753012131703394854965757653061458908569406986267666991311206436556595235323821779411818926316130737362208935830992669402926576010764776026189914682842648705333401401876280296511807997350518143412014954380784193584489943807437480591758708868065205092062211989259967618302985058306159863017138195677270833665373221420995334249714372674384806767320853353520900844775615074302806371430857700553602802479641301368128312455953043702099540640447117793322886910969227556842580918473185116689264084254945464638428990212614610456968224267825638918624068399903548697188459926347546313535644505107557392047661543723985092451627297765690771143075913658422145286069994893006407731707565553612015650693457069980988815185152919418014141590129718496518467297733254259722280139261421992522732659375034917713720275758643752069281002414847441085519276166528159443467519340594273685355901449232867751624301168105132008419359936843415635222058162417072814303573659851322654142229422727385806637056684009140063898879431337181483969948117269147523453943969195480916530708474863182475947894521722257979318654459059347373964928086065161349422181560469524923789641215791831421316250739330352795290918600024901577297758704408227534867269587007215194511950756877838695255900969565339715907649874493824532144957721206490588646130070337816996408869281007287275649558493873811001150526692090165807356193500876771711817451623899682617881730094802875593917812641153106562643232792352238757624624943996530003915185111644696449631213699474251792022556568736116260081137117434873676014748437696297543619898778525812932596554851602856606832487684132453436966085850913832882705660336500720955251572115148597542494300084098632402444187177603233626114029628138289537861476604975171211932425416472843517498691646838948640081768280519598658784259744584581039677162537151886471544645211768216287993674688935301639027281865840331278693173679996099217186351092008903316834539337354869288689508033943784308505165851626621878110609762453757367206310209629962426738581686964711721864041651725658519530683240394687284600190215294968396876396259975384050080419294947234623255244962132188679968885669111877365042448548685437961787721727752578027462422631345874404681539581375235791101294390610495782105908292988631352216022301432230321753220346440219227765611925628384307265222079611725464213642018013874395436717002026418193695406611563424323760530774230055256037499214292382472527305369035881664475258378196449541875089278442084209443613447158323462339145378967601009770470456623300951600686510263866256233927921553356001105977133285018575982125467297525842567545382440354518622323206918877448493065178954382739015742165251363148333466773029007062123661145555147717624400641024086849288439519597646712217482353051447266754890782756412003017580553348608733818729269284044987008768339508382942072303598492008139284851429493702838498709916064534104305298392140683291345868845396671538168272525523821825330412345585714539112762121390942224652863852735798744547551656736918433858516142407089344714907649743049960154582104616534626918166925995177550837493539468648701990095449133841633843003827079777739344131843486319194438132536525006481776055463014647290759845103287848904203217753410489354113520522499446538668809288646780536271526266412237811198598540668407332346062061157658230015984821975166669207694048559871981284695031480649037101975927400672971485117270641734364530328664347432523688732277065946826656758210067684948688982529667270227838625716063797709060369445904625738191345282404477351384600343154754224201844058095250774963777154196076000899821131135984242773415481430248899023034063895273570927786691311332258401919491937629776758573376954719897433445166602207856115770950614131849498874071210970938543062994440658098783962566071337313395359870699667558035060031602012508604091846457854634000407029801045545204198102555174835689794927263534662897507454335046746396304609115107932348443617002590966356980744765736804093259561251985546804715197654126413767114417379097378405412833454476730015495399457809196272800356962177134929857081686977512354077483792274567698428458561204846679270434818399640383862506035992010641213254818311696809380940378721492871092773427980007823994714242649935059763606461121952029591942421109824743516280210577267690679315127445782582742900944980101663367595305095587949009213207133768220765622190833932160902208054305017449343413680567384276652411548136313847446319203745988349211494974042478858097583044013098526824282834737623874334483421554990622679744633062298874569372052548490509703504039523717558436668071411397676959550634994022378356402996622809228736436137663993794907042063993314240156966767398594960285018869677925815204106904745532610121751226092262414201584968383934405976160244443020368373794482211907308510053563624787534006500761540711481297615550906233065737110243087285134908811345949146420966968639507139490558721480157312476118998341497095949201036971534120005080970328399841414357670629496366236204677355680627003331758666161725187096464073168518442089975833408120431337338142831706943105530473296183021491321445492119260149663907476965730557112408299890422855771483419373527644820811096143307264985099322258175478331127751295867521449173083972599238253266158948537006135762573796083059321443777066729120583672171792999452652248807556154379705391688604334313065340375997145641873731645847699310174020425258189701583846153593834893654442486325284790847516708819896590165049902426339930661950879854524358675662449838783939365369493273685120589978569923694160885811278741477112643152215381856921956186327538693080893785267302139668835559245214208465695379588771687868545983402551318693467514386392395975067103761137516615749370720798727710053064444185658098415919593328906590327505045384613238523464725349573793369904540762699629460620128848260240027179009269477151234985793137278154207601240371244629422689407353460038248129320153473906833277177276760251050398291918836419862070325460613798388883383765328305901402093445318393144692467342918993831999434136582534441709491140783029437735308160624840762538982075977287743819180414239364158986067883721413154666370180887981178684865616214658018207956998720023319622644714738165808314942626722888646762270934493538220379938462901823385515543157494467910501519719677140165233644342532646313944417657432872047750314054667822819264723015292382287493345779257694159412041243405575449811441969530967465203229660213962797814947408714554802234585273998698290656247787007944860612409991500122151203747765858975946777030992164298964528326586758256774071705370988561337281934495217501134488160004712254078836225542550097712392249109724371097573419772994306494141766752483401677565789436635042187993686462531081469921828759164875123414110064991517317487480326905876163686834362257088395447630086815139066273935763381791095091872512290332391876424826149982300848279895555973908111001148339119386595839311727822522468027385948904955309769609629752899574380317379499849306970934466660429701290391786300403203753477550131716377453232845731818865606699505030616964674304962872448404767798688492843032965725992616175904563091662411924975478043533281619823525267452456319650759964866011612359981870986266509150739238816652552202231402493130434004448353273756556197810757936332061589968676989171112861739498762488595015995896624855837488611050663643392307950294440739358946543731460449516876374418191867593520204135181180737249493213295905009503458429887523320926807126459799469970468725782596954485773878016104950404531413348757744930090087009895993604055114956582150193950195942335024163688125633805458221576302334444025965302616204725681082669222585141174419032403938778551775638769835771599178085382176677142717698322882139205907394866531422105975276412365934895423116768737561029235017000308282352134994850188202883096104632578041823663998016462610421140064117386566108923034881676652329601392378509565647744694787153720447786236039111333005046736646394644645567716700729100422545149829957293022657753777747114726653946942274141151742333590345277341849336209295852458958388444892562103818926270608781290848067279383660615633258885769754378341778593998607149960992593213139727695765134297291260507459154413845472274143249820182896193563089733778068925290336175574026364968868424532520996038309092576085174738759401592626321009408153120907880809179069258961044647167408918426802846573467618338558542992027403476391837564324681903521860898477902168985491493177195623786908703447351932212558120038901966563531021657796724945214186799800378864368929722597566224475942744502784364493521698753515865278943400605392644639696884865419683181388558944269658003007320962671073315538040017351827518805415674949275991918476938470952759261102968589987423493868521787093768656690567866682643912443860857133523445441317712867230854012915818430194988425898313135632642747335886054176271971383398237121149048833738119758910835676113301248488872458563489282448405485925335518802560875691937780528272858859498547495988481829040983428048464634757701196554167358147379284773128530812774367090865708644899415912548141696889124414503863038695689656026515910909278854222810957347929732449146953190531590679595406858568519473009070587219112462609733062088463249296769841058949793003939397931175994630967016139185687541590116111965669484361253079222215602403905375994581851650821189043643843574844842944137104894861487533174375223787017588578516665210284614016807742663834362733307249310458953142314435970553677123930342436150315517132626288588077215568754146260190463988091708838999738128458347416795302082941374320691722217112523579517925523203633600765525063429727624041388670961733773463581517153455225909419876142970451408273509705381381544694856795283715238934479304709391769188619857717038617131813603085867319254619782668657710823639181627726374146471944094327798572001537813552840193216514783003171937387346153653708088987269152069475736315940167323852322612146032753258491915904132868794243250111882936698421764112319042146745307874035613961594041954162374983952965835124914981262725470277525707496563076378492008440550969316962018818721018725766605310008658901300256215473544499215723929225180435590269419133905983686206713603893894362810190257654101921726379832779254925777074561273628705993171277012278703122653508429225942868566493949198616610811818914863950590283017755674453644280426557761789718380788833640943652557130682790169763711545052641047068564626813557973028902286640474491440753907827061215972092445834528069750042040571874424060177543431433953754911542783275259565460973973509415306115453306515372079783982271354636313399710196433923200708101842600370091655835585047372385533464256125798351828419612881295175144445436703906502715404357939387378672717210391910283774391175166154170265254076431336156140913161464188682868255830830789278064740424145494535040473710272176953899235588138885733956408183060709573050264085745105185040076000175711039998822761855218290109447929229462612342875323658691389833896301023531673281570116525145864227903034822826031225690936149078310873338984487188655687417968940239849936027048010036925441385638110177675593350210729302316547070764744396688312891678576201613587432484841284641956360535941092262276075749561894943245677002402914317561868434240298589865906781875480600299409563989963907601098921644006650193437483024882155290489755743673278302598217190843924704320389411119914815099137540284116632680339542463502770720937591473948671853224735672389980815353745408927969336531218511933823594914412280602373091522329092434970426555260295824633100301725022361439939724905291971710856449403167470371712390481744361933795272355110370589186478345891245908581154196376384465599113287961807895807147718012046232285346158470879931091888338895263027111981021800560680006591815298712885318345552463239998961415694187473552904309780609611755908006089807078827132051838547161723842262735926321624992613314795847462138062461706614094751608851921601746347025601805806085304388496786236386425446648974224006993415629690773496192021851298154096198235507898999667502689494168450485813720207687458676954465866243292370378196252050773926721367994931607514853847207181553228099376375728830426259390003048139098780373642624558882437336910403558291042240733107120879431593298210593977646869469810562764635856754333708977534219597466836587563094075285614002733583227638976185402113263357077402856631992882875460002876802547093783702407570238570940965822747340391196177028151867107029627822300190016082619932901892086054650476846431052370897595496881122715887840292724175109829658792894342785168967170124090086010092224864460693535812507546184093503389792150955626589861823065809535891844193136494908878753970290633703418068846688449572901516112400388572543179681068766068699123576016876914219395474637018911062971134502204943961171836674925848235324719152487021692246826995867965602054207033300211056609647072796383112287169188961704807279844457667812506911086218305510666079251163778780571279024388760472013611673675673710532830506018354866021105626809371506616674820630639692888365361354351187538856219601369214727807552248976808806660249155808578332809730924357626480280617103822236267015512270360085767052834484641853705257208287048008290322253516829564728592941439218169717664348038619494964587911774349779346787012715774443407142796370549256404927635276406951777312697774800688917329449385027919744237250343856245983785162049306941128890923274086764825862476783118388830580207502308314008768182625994149846310369547226939100904041265585383785688284650764546378966073400309850557511310272630314175420012546834596996795642318698643155391413291567743284159482171666450501830816011615681577530392184388842451844586692193240620532475502547504775950577363400362025308537820629280849094467018779192705493644202279163588651993304425928480088891225915274618750732233237688926442482361901820969866763354849816406378776480168342465881152684799025433473039574971084423342643246048181344849097489143663667157135571043071216413251646521049043535924933793906386505030971694508920626710070982538630074708569136506113515031365696376010435174294363187369552528687506163322898113757608537227023996129605285420849817717232987199286217578694309866419171237558082256072230397000759100276356227759967987157168034599183126373931016935385772011192934976569066351563041265821864400152088725668466249394950312374998662825940457828162393606968640788190457447480906467386768335603138861781376337557892352813279179471215110674064211797663935633390158070328695506434969821136349135263520078036051828516060154550032198214168697005101316396475712797675226423146387991590587361761699538130635484701843672293891534055638984719176713812867279469660224815392186208382727902976767830794203524506597708607167715673647399430617900774798542394261791220160608875993723563795235056456360825896418485141154879197327365452898217775621293476292873704777126696661923759658428498791913054008218933729463140419647285754120445750921045922370878044082789694741067813149489506793107389897121309089671584493679450778083871362985108785681137827098248824456239988623643469668485387087971089520370612130119703139562388287297479656763619277863314443289292302460670985666600589356582279192285219488295275514368720604566676283624138139541319627742931439547641106032076463176269056978523839935219323516175912044413319946408785573772713432596453500293045144319446698790555676806915109674866836607866365219951485391490885960826877522022516499885427596131097468290303461251280848692954984594571289527967792681839045665487791588963481886968461121300127274391413160565415766223952852961855607832744659075462411496347959998040151269233606874663248626339050275024126718208180687416059546601963119105965950175465751020179887080344362402531836592207611499214802166406758985757955806978515611159788948886643036276300393957784566312694191003967661427204746324766722125587285792402807709351388667983474475108823402092734712152892155557760091950263914429001971689689366176281849448114279496585820585089253118091414668882927412830142507462949162169295960051877327067157323375446168374685525712773850170014760926043720954778711998112003981421274744612437464943614194654805938939332132752546538853926139088905810588307853193417029705731026661185312248422986590705335722460376425182559468687317561074314953436483035558169507456663651349398738428586570132498160732263953012730388492750677805321533496905741007453089266186535587565875680011197966417437273267999353065444282620177451796311519900873031608463078228364102390828485837610047134922131970515850854043940578136960330346125686499403332139371058023664355709771479993155034540837206389133412651447668842711424279973518300663023882370825847815609247875270141098005733470858998972764360357540137000297064645294393567610904682657359830912503453763830631954673048330204319571983224116472131465181616312832934159973647055555419717615907576242133751622902665822859402629368940726083423883930234929442934335246096880305193287556415539722592801650207852087905557439547384744891349748777195273777172074641165599465702020771766975542698378933980362380033733692179970953067250790926824732899636736572129360237172271859186701957272342754109339360560957693663808862012587870009626026584638380782448686082172910120066609503884464075926119139215442837660757015227801156791483300282725100559097631958954569285076837652265745906634909885163979129786557422705425146155535888714938374296882737372517899270834537643748259970198625970766084093296899571671264670177364265322824919944536932399398707076253091343162320048342398072182414642333864310298323522783431206142444151031447421859001807893111685711382238971145813431290951887624349967133979221598621640353075521020237073263070427138806908687232261457931409500987918045819649444267541242093640036893929772301347933023074776445410079717403038756409635212235149813041542253421023604975441029242881220855362337109329301063872926804952222839023641028049666537957760548218253260568817843843122455477952682280750935684042207484497476679917949250271440835372060817690586943857544880203435223478704049849152626600568369276191347784651610897989329348504289242152272418421623883582191965281207271959584470068549377459909811116968386427612559834820363706974331178143675975811177946364461019637136133188003609016851604189400682182750862584273128856700952831685357255499410620447318354563108750203146883358425281679587888841435569007859510729995586604508412650796594138550013416144728637900470124403621560289322611334916149942619811643172774687030397622670047681221570397457375082837167950590482619107438763046079568028782352115405987435734506745438378600587000037903197277710261642905698810768509174889657990287799201205305722967889149490728206031754379982312245254303562883897041951344782005013145247124709562746984455154844740814745485749126086679564989309740465318719770310675399957312244956697369009861116771284172080988281944453493342201762469595245966007397444007021716108873477480510563239544233517846199694813918211615514131364194136257775276267525443200597291387855798481019730846994362396203348427988676637379477470768730191547726129142145872075373815157948505425201823132925784064164719988830629223686620550536618818477268870580520213514847262853511429029671213526302343325530534561635831037970782469816101488462069432667966371966956527286404668952289988498481014808554160451524280455379755492483701089761057097972616412552497808596853252799010363599112946706114794080680768396451291388325191026957678371692836045426093772039338029165572219839662870111442844928642170128273273754161561450478374235463374354724973468309745357480272371686306372388165867635364492287193210127746527316158313983216133352556801259765758634431553247146337092214524531005517302075016800829075691806444813103307271366949806358049615205458629094884320698566011889424258161394349226291681106110713249355036998817615577808324541001802472169717399035655505590952328817278555537204161808860538624930123255542180425261683813166504985168273420014349708937749437207258233124467882872358025082712908191573186219419115644112822775716487588967893445377382792447180279457407737145151078470286317351420281578378943284324560721805324106259937221152946365662725584990714333132406871714515922125710706626066323878447637305090745855404176645834133714932272264101501708896661534461745721718687799645266547400022758237701280731631565103798798615680571585848682722293783562831042486451555816612257624593170331941122926917631378712628082297719352286575536009576177662613689242641017591468532380601747778659751959893511878718294914079107833044034254726924621567029498826093493577489844386349236840245033136043727432090958420115948435047338946184901809812922159203925292653997777999539046869477457823510374183425848207307315178878538369725917723509906110876793761463907751267453379810181027614148368429782475661716822392549065361630520038619821380019520806543435364136652726026461758502334103681174749992865270066017632430031490028996978281295523772524142498387925625820692838903748572329124515362601468384220167393374855288942739497230878090245054797803849393741369453180417106565262487184676483327432425865173889282822314419489015833561482853448556967740434157874610932639999349529328910201674114949288805556637977869814386036230360393627084520972148804755190739230321913743716157444924450543819145276955840409565695182431537127441301409788639229862865885068085767555234055603861867698367188611495700456744500714240677059837062710180184245319646679598902663233167264939759714054477666196656742914826738143310583598698972467440674477762464865773352280324185272877677701940389718789591889582511374671159498044066803797979890846965671899782905617118670882202918020433198760035867831809991071505127555168790638280036303362290979576909149544035117624707660010583237585971421302774835138634296221615979825448182351890288240386486291174979789514427029033361241972288140124667557512735002524506366039546436123737095269545290469176967826981245479614431166871810339355799931252794236674077097479668001823462627999830397164846579636267187525920232137693140947955386003185936429369073268341382639227017860620281867281852884163874114389759518618147654082443533535938248758211151378278411965046668776779253344608843625920918496528760736274755187518075424523044329810467140630187157076984155305000692390631720893746001869309870899495859451553085882842382273522870029870619386679270612035063260477171083450133293139132462079092066037660229849318841833529190694093364450038069256148869748934438546783785252098175294159134404436371319882467166611224103385661800200564403132044003900392459158657042700025616688551950380394362445266347056987247662779430876624863915791144479257540154262722469341232275192348678038257406604945871643742140724876498333699662123610736578202072234127563526750322592811868445391517098458817092563604582922712114667298711166351704508335100257821692101140182957633938944998333046092423415087004158844520977454259120710622900689875100658793460255557910008304056483878525493979337780746302702139937240637766622506037420199637192386283464315119341988130487828370128957745548526557439499545606634670857685198256609900271665329740047442536285278964239138673646784734094078419045719736854452082732468894670852149080830008942375603810868987994327991809201902520155142547419847197083392467243560741640262957904056172321010945706931606938772462450746138270206987051865463244535676471553072240411292923964958715624231834028697529929657729216339797799408790923293562989253691140161283042938675746407537623413043412938004900528533852633246306940341645719022402981669646526713941238748392873423918803901984078203149060821499682578775193493290449443414378180204436840315895012361788365723407304197543742816355288598214568954772869633501720745882588852858553428673819214439649477538312754238645763753236782213053497089974092105944548532417531150328369228695072749132074832734298899632107048225943501731567293373986260658457187964280296773056192215538105391813407810251553042587938977478085691760837433877323615873488009095355285237843122630717014658979178726848851475065214048676956961863380652446378368953209478767918565466895069742240747885974999758782484715214515917795590792649626497456458811650250125031136227083899347359428906731509496778881071021598814005290826573762051285320794411977389660050518556772718546872389881333577298565059635191644010385671693220429871609406490115625015571952042116513186216573655324115733414343859236952039311582244189711669503539658991874669892902480012621945388545840887196800234749220116537562597720926949077250498951618347992007440296453761447009033150988808450013917916359239082176890920981611933305377788799155486570401444882821302715501180982354938344284498877242871224197068539005858535460753905406497527492572862957247750917204596223403408288087710992534430614698006055403285459619636633549274270408105045934784996249633788886385730771291670578519054227940843061713671027471747191020070622591007338874481613520471142741481966675593530831328112424759236711627573089946563469455582060221123460430174845160317167909088185845590427795866898299272076260872953466308439746000213481664348913221016648298317863017711188010555119577508502436852213050504406795623615577574455122512012635128940192432773244916939155138938441817414947709685184617104534019955798317608614104869444214475895701862363923303286917499129328967396024122206769345411428805933428318322109257230597087908435510902575515932557068185808882623797070709512731565135833010354470023515350834676167462432301905807539548601437714006299811035938565561920347841265325730076022822516126221224510005303735278276417720481223837354478976092474283505946477911234021456877740940252197189609643727627765646385468265287721238240730597549390112156022953595246289146680145514069233652877411035218886866565409706225421356963778954051433008938112842742577043130357963404862870007984148695536302485879205044707141059251672378794820495531889388060511886875000842889680397210966968771068035784638583808574319020576141774365265239630985605657708655471258395998428123918010599655597474315500691618915145369482607415384890376466009548028921567747255487730784135858729020630955061937798972533390387903655523506299837104443080215709447821954295620656798967315758410374185493992602936118625671502421817047969360062369312287111279143300805829014582868599263783733827884327746554090932259603187292029846150917998191836790246190197845267276457690710063847311557038525182271976266061032720425427032487594141557514008360371345073633373197470810027108540232254915135924462179348107272207255800218539649420115048438919658016386389795765643704240759387397522953035556364932700794512231282250714193956450932381298023912409026023276200023538189288942010115963964489928998811529722754802203026610255039805513482014173461530945511566989557171442587291310830920096671674994882523563938907447808250497230464205399890632906510055391740710415089776465357935550183771778695067504251828663317168655808909633715604580567915587153351836135164144831364808477666451439716935352951626777465635907509741022866810305079558234103030764024476514122886914097671190955783930764985466003544881093984370244005693050142157617115292954907257281038116937878260938187310340021535760475757222556755922035297620664991850952359219553354150856282805215458379160839602638196049508690770300592582271882095815360772767166331845832468981359013208138054523806176191538253579118966071942509656839173528287084466963962820259320148845636252409416904965371012533981858277283076430400328824105048001162338538613803304649169825672619394234522314088429217516786568392160035919445174962863280646803614335204586586006111600321947359315491959751738060810829124354760323303698835686020134034558630353039466153344290616933987229516623699727738647326882078534518146455986903503268887074600964927384268487394735501115348418607771243659993982775027960479023855918746246353747039025435767857348455526966715184805077876413068466760806703994762246012638726650818950301403803394811274700111787650065994548628920118996999816146511327487248488007627232749009227374243122434179166737195252708039561585491434972338082845732397310869329526560332134890306641887330846552816042754200214508895278927687010490789026368583903434308571965148923558523906615629895563914619079364623722212773036564038851727224761715837010161108939293365771209379135113921340896048126362695376533562624096370375059612860532502683970990964515491837755566906941431109960567034275747403523296882481398473897549266558701263634010459630829576386315949800190140555570027475586939364328649129587911807406668699172435101443734186100517689147737114965308111347762606657137141622909350061474899590217676146804671374929884678410375159996568706527471588501264362992736823913781219938996564614577141765980551976250155348680378968457895061411142927910401847811502089200233792090221987779465453296034581489784018309764770304711369072135806490132423086284619583339643173375540529462262699757131962917021028404605247001856022200752642743060231475708074612561059491776639768349554317902134934886137160118783246601572535860213440029295324403273576876859017692834087405104403444216900961554306522886551458810707166288993075811305330174477072159584603081284787963093492131274965535407128636095096700608775801359855669430555642195313011814381336194023950334605912015440810396205960880559473575868608103600408626737952822743519092183275211558279514244884206086038945748556022620024095489272845830104642482275788833031712084126866468341326439180314019659744700296536984749661109031932919078864180165880741181543250205518581311354784276203171831423245886872059713367574370683469438808268243001199602682949988113691281263263759866960302901615457547496834918957118144718219350329647514250747601710745144659565068913356477864449463640324654137637740848525432982925156361831087492693421610489736393105442695669283298224043104573619872898317697956420123961929152046766031555525711513489979318251061165822702369366849362874891990697911758928022373531724400494630603643731008619647395529567756055142384225319010306793481047164268214212973845573699080674306806760280810044367213045811630221612300036244006847040243462686568974865562676543401030880951945126689956257201138014332112681275650416711521086834321182673936274827732904017330857338430444403834339524198885994715132483419168113444037404022626048133557642100507068421967023853251139193467404015178766017399153614786026808802896852709628389376113419178380347707432817003680597042607701869696518708446379597748350482048315206919044209839436975411901854348827627480114424418607665987591489738600596803878363746678869577443933586162396017038069659721514629383621960484038317041468715570585961225287210873496220227439732113833794574445795560230242107016283785581323083399209219890752112572895761261664332931789410316969985790985782769889645207380339914122524351582741393222566959711684898119962803484814203974639254722913002899534529820568613688806528661652693281751102287531862494291591577919569373418318113536317049010886499192676333138094083049774726826818851839447959930164042381122684797848604083893283751262629677221182039135240615884094512807500994623115916158249360661261145351002781743681207645270535550743449214629628447137880230936795129620204294755633560303492494329560350506564344037351627675154990902992114736293783633050503659921502520528071643746700437858456896265575330402035004398086851733127351645938473084200982088362263020190432515532174188189666692719519712521294757969399372819563076092565949731819300418420362324068130697481140380683252272040065438432367978263808309727870448832632807432616576320491116916887685698579037289147781355769972415543338792482032050469479422135533839462444820904593016453051343276677723952970953965128544301918191913118003131339644167187089772953124145061558679875199496945927948803511939903598399173474480355142676358703673858837000693921992355999008038318114162039111391293482189885598924256449108864136055619459935228077930412721116523010886833910545303630266092959656665933118851814842388642235535491826892419070503422020558042402686919689670984123686865582477593777932237901015157078319089455212841824650585215681160193958330501322818864337289220643262796155120206984083038362670253134123744055053333535905084447257225936258261310886703186945221686386434892206937305193747390136970709245241471946343427713828615775563836958141405801470849001731258324543935851943818175780356223421871887768295361439979775345612403854743223086431890941328191534297536751317595869784689230207789819815727546269966210078231871422663161256617663141338108731263531805452624503693409371993768169276470801767270671326416261867359733514753238864409172559552712287658934712602248952682624139293293978518626794607179241648934339290831246239328628154852276252860184311677238006031025389058656409457464094465872882786190037036739852525609507115991525563464074781462077384472559360950035447163281262777585386661850700816638883932929795558253756577094279556148753832107453777420334330484155574394468554858628845413821691075509933871186718042769230419054077080988554069551949792197359853522112518946966770338821487654799855692633850814682775424597216060908444135684962714798716577229005995904124961874527289952096326151735738038438441621519129795050431406957559882456414396262415516961909770019997672933208920531670984916223516851206409807537221278342996046167597167794173392817041760544948705559803850643054353169486242022234358080229093789977071100270269766240424493925414070883096448055512554148535912467310351354061192609783811636266376653235020705044336650259698801978458652480168690975004021883844298077925289364191146146017775442737988732890659865595166940862435114273832891963851718333030499931932634567908591981945924840819874532864147622901361634114807226712963468511205103712723101914172845709709394271716605295702252737129483546352787179625910275459644260364811303883338412548557989801885759496233858672574716018695701600271166258243911244015654746597142248478199631689819075865209823768511230502061388153121994115093123805702008001574771609649573981928932376362083506378128449365266910217883136971869326575645676043183564342697109791418074143048316213946802529383541167873240678102522657802579634144096133188981205215444197384386941368425048936105929244401662986057981001128678926690895769750875845067342848093203258717735264916524476064630918165275839614401303690318585910191576096092469305271269269995158220062085672622246790586847645681514586109987941182596061146777140531870253755798075577754520004196074097184359484432176144233454642327966910071817427757358201676288366516681370915456793721167119173621167409699088466510798170708721855400546187934460039142498241211578555567607527970823270400272120752863122897630155823350560320688853447527656301855255519646089177472831910060869854202128439285993946762319974283266196596219371060908686464320426631813038248471920361631489205672235421136427991274431565264615941663197688850304358856856816704867048545208557312446377956175615057468485013451079310525236004045241493324636854376462890017928549063779861182090270078034123197769627842836013997494077216357591865491079186672057630999650354244398812814864757754591583774136164815024265064720454555016095337209110138940998966997188262826518422393221264026168357625695168199897451954889679889167351294885772219229249262094926074028505761606752142592531710555826484597838207882191966426637147392208509729640108606863878603171440492552913821187288167583500549648421043059492971292909979513639069915689026166926994224848803332022565595329177927383238815665022908389758207561497270991565851809768502811491629916104580118028862764026433824846130299533854970982984027971490091727725777945276959653151446331982478603869024188170890327390980492954665998941239455354207347009495203589006831518292835022301791846921618027536198725370749977122110682773265620919010588588179182934297955359175102194949490483158887813107542140097645047354191281189625450195203128825681273238684819322729353412500022104485450065359720134277203455606243245945590004395498556807047594445690200271569734209132511382708617455774392639685640221937905963361918486957411322154460389335337669390959696693702701200125380758637298729547920935810962664076551376939594271501924340514750991656436236627109554760230380196080176882486016367858281673384828849487129136404296201562232490416185770200808916542096636297225711071026021223022525475696898684011289843723131390070539677921815853270868465979498637454460142454252556406610797642238893842870752829682296267562105127898182178100118159129908150723053964886843471643575689100684185953651664178551123531849168383160949942162311206685892764810477745175571329603633192703166605582242012839188244333861717714744602546815683986533727977741161543544079571859964856767438973744730905135372488427931034749384934654193516726096891818729305206568341781487791906776744273988995562326945465035326069271664713257204177558141836610977662151906493726557371738789734241324485464805279241021757857021075505926576389670862308276091621162900453155230396622632755779448328474465087555909529488727237888990688204900854528081098481254384829636203781568000363571419076796039692225324949718358213520509338312929257224848547114172855887360413005906670693869881958853418399831545297294587275278135267380638059607664540310174502482263829433115469422521039724252491302035355997963477122064332089379834356303538955106147517538102856278733017574450084305624283995388415012874780802829548392968322877777612145801658889947473578173945850803263845304820760023766008980070079061850848164430183820646582379475344064204553445917216528613354066955598094077741683519254075907726086499157727782481084713298343068690864351738338369107364289599274377941928194510377861998751388391652881475170797821514518315104740928660832266042308966401733009567506582381733298753570848389366237069300066389650776445292941631436191774597989987828384120100099311770916337334731248644562070748446517090228764225212075549864294961687164114681468948949113606352567238973572927632244294435223977304470260816663199232950130605623264885365175627670471734974897240703727554913403852561900598943974430580919133165389921784918936715023152099605420081076186560181946887856700050152092127838466020787366074144225548534793725175315251343405703972403168623071497576611514366152762838234107531878879771653893480833013650141178282039968104575639538374207273668430125200019396526371195715129351022936691383421802137320453043349827239269770417591436876512617824144691730970628859133059440980533828008600679813345858354678960424985464129821831373524083494826240239730755445779116037197525358507471007724924395525594254268990028946030260836262158145381769729196852619560699599766359446623235297338115776115041807263614694151942423399921563558547112078330583866877278575432241666313879331140724808738461791191245234765343178520873197943519019974098730568388739491240042637842514203650997439189633140975120932294636902736401831898898154052279495147802345850950690066096418473910230960770957105913394174289970475472094523027744892175086232252640100381252123693052030526177719440617482029967923513379096051672431210718388632560404215467423473817876698084762517466110126989165408358154970418306689336321389165044483568815937002977519014551989573449797104695504292100149194319807315934810125742096361435201749053198004404253178620074837716373413348261939877543809829502966491384841229227808308653943631550600413423192117867161432975193106700492639634478927389893740035894810867773202698515383825688993731269914746431672717328605027795212218613743816888337070540118513930731310072501012337883449442255594833744944142350019250188998021539101804925277223201086135743208064059236563922592020148080529450309323936892444668894914169492788366515940532336460615545111063680710210709420335295849870281467562316511623084786160173481381134371487833630735630011203672827303750154375669850571345114705086892568012570750441724127505610282485643111403198263146738842089500362710200207501961088203009430980934649790987657937437227452518948188063157180072570199120874514705358909934074126266820694416368293257038566890393989899064288947591649654224802551267842325550080380883692844754487841291729651606918147058827282365196681908660382368431553071312223474503551361435904864778383907214793915352226299384433367757296998431201593818206479993546219727804315951498807377530423308235943853233026714557735660437034564465920636777646224077097584527417715335764309165003354325078849632692759723248341551497666201551875517931015750767657586727922049080906436723179294138262804657426626816888932547468021568634128636728163976516058152552044433835874069188982202049124802294827659467773980149789572984685613778307580131623616426590363604949738297978803577714488529768603752394772655321448234641508050274807618296545122353910922239211196444204795447832630378626852701557962347887077555838852109729149706569249625805918467229970928084821271204165480060564151398009024524457355881293853547394614143274506346149103034600931021030013659697629645178413658105928072179305801573958773974112041451514906098378552254457134674591267874781092991794283934655882622939649972123845649837315123909350043275952240143698185765638696273162951409786928762834962292142795291097384084315712663088364319027191022555086717292105763726737618279187053665669995228103643774101750270710879399758420989197890775732602757922099450129502062211577940407845697351781686975558018368080424931472297735334050030435951145420867538616835221141279950560303247662214395581892573819868093534696223445862455975308947085237619258025320666759251383127255406878503835211531530707711394468533267411921700530516364263137860285730326707515513511083961876561658665269720716939681076189749467173272698054869437110718838392254952843743536544368829858866490985630667793922489837820894412151476888105839749097321006069380184189143444165346074144366765529242616565205885271397343204042853680327084450320915028015070188633562481561061462502560333424666841509745151725860006167017199971600191314622578538571931711426840124142201343933441254772024955456087502121199889941950405583088748882852151341265900225473849853954698627271497955200467557355100461808414286284422362235136076216528077418718395549581029548864271412809390822658549136498641838009494773914470452430044143644307673537227928291117863455488077982216538628044768004035517202565867930015317670567490870107823087005809336302887864802497832596598272167619051338825752075720734264391576161150527792580686869911759729837024006371479985423575806380510634155338665558800140981623856617513784238173305607490899235126954191164891525028603812964033986100076291985252272361835273859665750208257978291362791524184095952513440693606767636380738613625337594660807803887862282119614504589982256427849040584266043909445161080737694632829745683033690265789717820417789045832744906254768730766200931552194426238473558699430902756026601619498329826934750873705454051366370917780621511215505623095521015265513656591538317236512015395258926253483012927615051194321442772374898565559989971033107020370710208755890611884774579469289906486019273212162922525105287940873811363401117167170348943858721623068017648439741197857648086195838082521464154564081827277366294548827117568475989621914428674291038095095637938445594412321135506133278253850271822954777560515620328097684048231934210302441821644014351028804983283769289198825306531948930027421567854761736527156220747640913484129457340201645157864413733629169471282564111343608437020435982942398591890545100237880786263404992443418159123813196632128551995813467741962741888161644955988276176541026372252321892595832739899039702560977340415021457930180550701457228345900871321050332305171183712620178365298658231446651237012779756118669188761024867387230087429859776154299362123953415564353943549574818302226626876456026348535589468895308395808043989558027715132535974703239988629987291118058495120260332889275648285208165553836926511483856624223635477651121297074805845938370353171783205758094244208763578314403334066519150684543508768589498952317088487089883811578448337375833729424705206623910379862544793072641192266772556366343070391075438771475252317338645216374508958073797301071770619469138964453287531464609445242664910035558819617644452862435948876464152124012191100114651716792466074459609938074987305257893684465234439810159414880358879054541524083958178117649475745713959166113003617772965954774702860491441255163422843230021739515421891502254546216576468997033400768071160133309185703508464846955633245788627606801930000244870380808008505900493284798759513903997266795251983190341934586228319795676500665781207239442030676667800324854057009098664489780817483048297779986810124109137048952707240233201130788312959415978868001159061893767483749058203371611974257157220100137812111802224459823540045989766906503902380933419377298827479509831093928410935974323170400556225940264098263972969753041744247304099844841672654853484353637224278602271715568316026901404819542886738926724644473733272021444835273595082730838457852809133583418787017102059440434118727685619987733275680183349495549620304748284051500617996383586368796487508750257827678109378166801263236248705728196597926909824654678263802790220617476269347424844662196715157541680300473891327594865849177931420455566487582140380944163972632024817104446486338279183135704267973240700988795605873441676921673725040787354111512298647491256931605779632474581561968371181882837752822918816448239470194450816867605731734964473183930242291894299152713176026045149414884316156717286193483836676139948103079302479032963178153208141912654027884403251550171161940428662210974241164458401961051558710353715283162497813073628321389155344408157457964963080409966052106225989206464860146592817390229589169687343437117604341865029248606573089842997821572386174104706471770792613350445417271783204778355879116454453350555625374783780571089335648842024422227141554084403451507527747226813056243259547656791394249406084152464244310147903316599051229952253196634171282980923318294144173120302841834360872381443129693778376222858429397766752638877366939134874506507939855348692254393382557551542894878531870883121095907402846247920419447327103847807324944049853901687038237724480386377775998961980633071252852476306562459050228601690464272280994816974043278041890007531360383881613627137698468583442185306227604654290087667240640492859954800272248067730532365371766520780852726268718771678471394185313028489624210384318545675121236635863623975056404888066695400974262213242377269623766749579339739129429330758711318772651383961466062824703035549977725372577647688678596422732973488633300246148915560950841669482858015864913172575625075340700215682651677248461231550436521142341528552565272661177164069923740046646694417917204838402649017857210176773893977545093798034770157442368610659120879098125574152348106156423369187793728734901503328568218554517254950101921094247521395557538855748573075626992875126323808611892837477490977277399297581659819760644997005406281484679010791911497116097788092818731194386906590481344944648977535927917890058970965286114495904846173344589508651657336412279046865286699312932867184752352339554792879875291463456192721378436462379694128096037453212644312681312365060117280827292299765164821811333752611897713316352692907162205584545578840215639464179428696957749056015648178213401329957401798183411098139977761335096952972726470497489672548514059033537993616599726594780662920161724649762480756424674469957920334794872906552550120672961658691876019742673904195245590001749231534160001834189331089475353325494217414145493437139152405007685596319049233953444352157182168012683736824188098500410912744918233247389880325210728153034257835217321499706076402967962985040788129468872327881894804961141418493919273876828561049913062954876982023197488296428940551828701726872932797076585636707867547788153605059186954351857484211931672133327236723245636135266693332465995546173296291292885060196241817552307265788467428172568223426935788319858553960381269379924278334493532258944254102789413691971673027929997193335613175198594053745716611908605234403367955912487064720421979295315419152538903758570177681108657613310576514804658648800305703475142856075381109130839934788532390735738524913181488387098099259956004814726504138200938986194845881092639192683150419801143661643906562670947044926927426747876579019444138708280990581375404975791307663232778203109849613908027440839717291888760476685526618078834642986854868497765370081676282477392928938979468010366900679781052837603355901034966514209321561481762890627568040042561603607505430253631620577428162137958636103940653384809893369437382858931188545583238288330391273817223343651598714858297228424702295854886628343260821296681243029335320935499157520950050977658191509828457222758603236777214752585215692682864085611915199409216404441765006641284270093310694465650582715297277527209245742768165539317662495636724142758821810689165813019632918842210670458802456818229816927512339496746567788532120751011673695373173352165187533777302466109111328494740476535446023584038638074864124618882180955353861627317083046480809892864790677828326079679749272477252823481187816890245703271277373260360675678813221285934825554989413920184717116967148614090270560918087832572778480691035062553632838874839265853999736586907521223054487763873298396624854529438736564650798603457757230620717587360954781600830800433210688467344566326282762643145719354145444531059121146701576787903343826449213889238042228526317856792414535652766313190463971766911819436908665688840626066077560071704047718175415639611717905818239213934991746304233521072156891737122558573820415246745666393137940874179913221486615463621032384858545095363156780562930600100392302769188522793530349809048389708637855063589231511066101090210445136668652473634387509322123922863322742377857639022269525646297615871075363671046712238719902246903456178902629405939220938750543991666171271163388970496732326268064498363109239316317733882208355098934048682273630369102236167479663158334718472666123944897871280815070267443033006443019935828053162650486196025374003199724148127783679711896767255419823617478876247806508756170263181970219209822982726563952668275012406742588772379472770281962726101685140322449800547280847509541629364519676443571207267105374336938714253608160918028649516428664434148799979838882032538107335217943080445823556088377150184933769701651228539857584079199763257565417512864386394526944411561142956260820787779054966428933957685626443808357899764065853527488527242902681758223479923537803336884826260212768941761496185106241389454157657080127108166429401923677027361750096167571547234819658796202308889688444311769825331166023002719779670991153604846944102834676232311878324802960037636670904588903166488450058768516373701813028733843275289964350375197986437173944240655796751341517107437237901915657408778431200087784328474741592305386997759623056082995124297555055326562782140142359909386934850729615652643212774657851315745699516873417215683001845428715185627800309993796552051607855613668482248155039580771903681107844096268591139425582795045202697789409973240952209735328345078762160247892486728393403236410112771936028412766462733971529436612802158488059833647461285640086693171553169822314303335674728389996036511582828181544537207617713996447505058429876965285093063608698008501851087755761684982405988933481591918533238421774031413612179876421466071310274778955610736789640978304225562898278104450442567748683358854483125337280104015451430054870533032757010353689855839197791877940394654717410636977695760835657373295971419612556982846945461469111747727881634601413432200835541660986873958456700341378960568802339368087832305140097131784133821471813106278082438140966926778288102817639629999674623616499102692535006109554630558982101266243774119053658594127334948209225996281566555152852465396646805471279016661565024328545809652007039762162576520169094800947470363902411744828686310251569880391022079161207491558268101353881400774980098073681694966607851542594930817778105508628301311544347552972235336784084622371377680220291223061985995603752618419132876935005632177486094044324300710339397948324446015244954925775027929266522604217935079058025962986408644859265190357887215662495361167214311105884872581115445482392560311998514949616621155484706110927309583922311398002423282229797708175051096421650441022051359262791728091325472662214296639726347581481932740738459807379454897241031947745471981833694222614770598165546673663898383301538743061903515584693294834894468859322436694960841563346646466110126697549447722879626758792475333764597559581793976468293781769862741309651226683339995252778780269175371803988663234588383663950057555055147057982955670244587123876499046559250674923699617035760470506894131276420653782789648618696222723415263279477865024735351206205729187419940689754390218788382299811955522108700249495208550134878359325184801513991947033599121126890364062483134457721446218781888977800790837737270296050646706665647356291371747630215790902745535067549151692888908101773624080839460135880277341390398259150093773763212309545814173689850610620100393503539474688874761234677650869953399489287708595845895785492548863224216528489930041685610363980765235799843283317653666001399938999154461862511027366565729170121232990769517586499618710520631632663385289075631692889626902864210847780786831189112605122156182300427619625203135491721050148780596390694292287178983219947185396638708136126379774731999307495194893796462024551245173785884057272790511264326401318940626579395406643355785826916637831463767778117481753198408170952530106289806977005258918931035193675163801163479160610934793625901965702465644620351153377240951867375468130463200720478879725673061267113212312227996744436144307303984769845043929065824853939808498309739704335150506853961774591771277450522555530493878064446394345404095341919244073370545721552696404244802134294556858229311765258550504501656918945670081217560082358575683522373680841273638324129032036743914221853681342094559557275996420904799311988474602109381315694543103780972992595960832446744692729444206236284285577221282298461094247735414789728886554273559509063400543695381380631622006786558690801305561529856347998649266779994656131333352304805642003685330083710313757012030055282557811102118826938925421712115032143876857504279810475890606007109011352694612316527967374026035475218763915570614053086820069623120662775881742667233237032173745199877464062139133351183254251977062043573248844879977555898303495193516931208307886832115916592914673800590259258043771010321493995669400643308137702838327638290752003911767345964963858954524520869207540375440294682913472773019988376649674272141033535981426966910716869525333960191917854370640392489717663998122628569830495322284029182720446222922388291547844791081739214574120186319006448405189901388756363140834002545964556380032626753133214500317818858701556187390481262313620238475487591674619964933798898754249603508959078198436275026574748891882455167887851329773968054933356366063366545421544353810315501638736362769476351741815493255211136283982102344007021659554731459823828264421113267982904755252023364387512318780967057551138861187877633132260871725141851231653321273802709029621954947741494072671399173547678070118559470947285489034721482388969645648082120124218823756778382926616440249378496544313799907623387431790185932999632631205408637233874470870330400303718696277830134109205698579483739809799965181998662903868753548171328981958131715472806791139807006069755969537582178252283632417822800511003368102573812452312475621184577369735793780429748469355248962544023315080935381874325804003709518621814065315392416282108903691241114399612579145353494772119386234327519428965571698448296629377832820560848485955048506660316106323684981957698308253562753979397110018760124780809889240253137140608347464729356304886269363275546149555711373379287845392625891451291184544665684461558928774762014263666985494095132766391007713669994029839502848893961049463394648803946347092186492105090691662806643802097771016199367067155615472892549646967292950060018746628266658564873313852503649976583222096015899087156027355940381505961378151878889585498636586261303552660936409103064870433766256498522615338907644152145138447158839359184022663097467861808991176697373180402920682431039030321412800074974261247616162505878943427558942396579075062286413821772124841614969189279922035505648511932984691492473942684823984685877258729273364001669444307285174435298546419492241568024193382314661045403359395108607298147297193435657169375695990521841184417108638304492876835352717406532460766202611905327327192332688454435868430113009798124859531948831389004506208826117924372561143774535327470590648006297480778876028654642431941799920991186028602306758210043224998854017627404670157476699123462071585168846978572865630133156471281450159325970251726631731789544232377644030748800028205886265679191318155310937203670059150606629321264053835192565216836884120231379011093516754034530871378489961620039372498070492686500143647322930178347883610040210730680680037782284228174192705198019032194782095330329747293355560724670550446773212688864149473794177839466219021553815187907316463854966865706113490923048883242189109234016436936283919785675529011263327204656668569865213846634158770797898832815441299813239070794226957619317191469392662059067961901758192623126118418475071168385467072947336713968533468657816067007744343702569857719230815781159002724883449042743616164512713015736366852844745373745271046584266114275806138177380552989461404537147508218258199483293343813930916235031900854187873588406851194845205552384013388674534696270147172442612252222789232518645979850780105557392254246775251391864771189840881390816011896431576254744888573957708684813836808048024612309277746537892879932854402106046295451332693322342623027914585968362075508881449857249003324437995081859326655153488279025023932994849234841144680664318838360381005494634600332230934933463576440752211852095526380569276786105912434605276603414116867493494227624785061942992975581429585206540484489531193987649801299892095036632915655619934483948574486401479787358855810983190564932702928629024453077070937140849188477116120881550807149219082294936711800143458959076602086401110605355568156236769657092214884427412955419158320455477528636902342934476042029768952411133218150235972311934332181315757509205565625565476682264295041476588283766033134973846594318770367420009714060583571444611371937044233731846632125134256583491493750825981476423499634384356016639254360550660771951051416220659642017643915366222831538344593982487309414898937268774734306036256264761133288102619163738968689155474613455941341871624469893715311184900615624434909796512530660253110854076315689967208784931368090546815663623180356164418460548665606582843678082010171475822388556570879387395027109907831023337904370426305899229590118231654001375324503236476607115745328426018082952366972606655137111868832602305732300835111343887818019836590540256977776305592766480256905459742359578173763084967520635599516132217785249838400285561311627702209841948698106253309396465132435505474849099113308459171186439096290163136548966657164893307163432780099706415478685448796457504000910744260549405974463173390183807690456140397757353376811857923221384475877093951701727489316157124169179268400610148264524388004825629094172317890006793924017846946528004538443401477257845309060693909139511854200389597891810627828061928627723859434874693294549283659995959450169109620171207187908717192597569302447542171404553454326482172933984266762460108669251354314737599460122712350937485493600744593684122491638051421482438705263824487445177366494130680411330921238873186380183794050930444372320594328978890921912649950300646201140357140937767074682872204237912471818369395490697189957681588429401749125740670574860810771729452971203081543858223017268231374967918343007358951997616069940112344965181999798778982502629955173589590540111424424940370182844102304258582107577354932447976058958636866941420291467555835392167420370017758001818667887439332954539608261058283045787350643277371420472525417735558330534070676906561197673978622021857774087371217750239003245757972916791300160395052340033980488098847823730924635328355677811099131868386448628858432613593867809678767394488557260455503756006925248428237237833950402069156361869106119114092547854352449515965247079267420265697892176818742807736309811230251972338883195492510495408674923130843893978299251280596172286968880418310755143109470965214328030895178271949000512726274200942112590408033592079618465660503472741458272522923993622961067630418026992475280278300333530916818894909820407572070186211306800589940002016228499421286012533600192328293018458151085273952531204225452007272035471241510012897794808254302952979551986338802692867600092740507235831660814729893576346270935404882859552626342212493537462939552460453722917748805052638343016726565657756985819451967824075805037899659125534669521354288022198611692754552065165637229872071018930943847356332320133686147771784972302222591481868229685245571797372109464846448943953419794235130292950641188231869654365346139078053701972926510738485485757871417957560947952362497956877894452805125632975514178516764390566176118664130472247686916364373247862098836577560456695234356592473906726880287497376666743506335219074883470421628576238229873185212216898927419355674697581230283026510484452493779735258642220470757972986093946930206913270886270854715116496234785225356627069894727971436064310809736294608167846982772176121130407222221548559131089826963943925933636166386612635371668906884863355534763159722606967287321584174259609280370728580125997251587955042883833970391011696102898075761096424744738528507809517797202549969115945377049033672276913938854182673014713563059982218040183767047289497645584935796201965808038593727421701399640899483720108447805768109766074943975196758400002805546239772581272334810215181565438459017764935993049826001670943183258493175994184146628243001347999254137133557097629442130872620553609505897034793470894355965668563540230565576898908130638475708742122486856709757149356826279692961955861469287336893485203861546727813255087429536804879987791800485096181307220922039006643326635540747839459556637081348199872713070571306734047495809243591591528385581040632463062622170048628091100272340024375941974097807828941325085422624209541296623432615095921037399670306163789361874502754570798875535305934256825434223394725991521812489186968317262593339186087797272585078889495837409034823794309034788605887239772406732621050583861513133618453910204644314288725006675311503119836902552431298528433418878878832365568934381842710178410613389534065426653091935122473308466890796181228398218005186136958329922320644991533288857714111054993964910253141410925696974571214563521857452060098308365282920956056487971206740280181707210404875060129975218803416744903603484599916536570774149784272876688246190779464625829863973066822995122771806188184566083107853695233499728113859788679381019165218961734858029134474474957533667674704357435704427325408663753996688621709506545205075977096226793356085681941114079899105832498378783873143732200525529111180725168471226510461679801477797736330785511503998000755152804516271959058292407144034386912347193313006013676145055094071822249248149006539735193657638735935419300457794316652474607096775413643836884217141221380669701131756214800832976347750059069059276251222126892659919424721461670074719832895087128745576487895647070313806372655418228000148787140819065163838484365875700622341152562148265184447042721915210831882765585809639837474610738162492537021110702648539233916223581985639143744780987613580451141727144714308107620714492593793919205277000876547846388195903864820872524763958547624304644087062344656556514810989365013120483021220956103081807803175148170084915277427664912634712756621068545070300646649820846750027866579864328145058917949676269418605393279272341646720050016728543087321352113073803099559670278122871970897744923605577032765203227485725922893312383396465945100828855201220134014973596884626604382905654850092588304066933295062796809956846456337476957420997009182103862900666761158696093214911454412580882025642665863697604333954393394778555076522003275900151223497821981244291817372910661030173366736264248001077769994823165300647908709602058855887825741400754518345290148437570895234862807735325980940509952407402404039246924435414753437629775205298335310182650430825272677243198559961514100244448169493818207465980794257396050548119444254858546102663738052324242345043055658826073068155456696782109423884905110130602538229882930954053519013563824424136269235548202843469202940986467230260858570309969677686212218269705118179328653279525893679535124949446278653156458425202252511606110811474964790103310393810293987008738740392674775743436553890353402629382029607081016472650398891610804775783410752005097557677410846504415026254640431081052932278017698027307555869863254331360841368563797914444283191087776256855220749561979462338396662863100297519838139084822144879907337629988745509571175824469600278781595917510926031061528613542833817510420723305884774019629315852330017430473371133800169493231173524412293127788565918958323366368966063791946004426640389416180055847446052193890607673591046681049338572373798851001532230589125299047250031782431040847295403381805696266028676105832056448507416574469007653410775111535933382034658501268354941079616436919472220117118325953572514326375975090353974796394467240093828428812114648101801803802143737409978712948793829226006850404465413025612113331423542311634851274376628011484457662109052781121508700151194028138184574658492948722911172239409697974307636025954193796271541784526234545602012521750502681920584330294673568738820240121056383915455535583649375632997971299462617633257046878786687304800036441026448656500803505137310393971770690830570326897783975110546619091880618561342995661612205326226229308416401434007715978719018823374612496238430025735002373918961686263294814235626925816662645531232774935173488487022698654509369372622575271091901319926467694790975290099040568952889808662883005074800877681784844439928670220151451407040685068453268642898271246822060540434871467353617317051306207481543549157531338072704949308746927605753046504551455205518990704393923585207299261030885803462400331256520480220610016211302175229719934350477559204223878850785793707747705428140470208238436208309482137952240488369656857028458297656376820538821956244811547070821631212109113890131619663171461800665591854699365164207079843457933331148221305545846232879584257464918000906827462402059837916562818390369386614140117995945938546928735928553172620673579580648763340476761994594064990853452001934619251214714554521418717825495684744297550362813510937279968411942997610677117557124521878826819066361879436316386186460299837777158904945470634657303631314083773218649692152361037458953502489859588028211142342226585080011274525490870290552926630497429482792231170902894923151007812878772246481545863385008447483720514869152305760587203835227853289008526934330283629009350882073998485989702463583757002921365461725984790435895592843584863178837441247373357175201484907203420925929047114453257891960334478450464248231915170399995876450988576240494555630169359000245320909994198271915350872424885925486681906914697191216880067109602392408842363474852610252740081336661822857538668646282566415080108479606164977126641951710784592223958709938019554852483438901103670332789501069857474589840588705009428542163284907441926365264742972493662400931487725046705613293654197838234428715194120494876188701408984012462319881269188817786066169454917847179366726498667623123242059747244653552656630971728444151113105732486479856591732302489451648282537616573991576021963585455134397582554407295587218030873641983235261819172288794019049949147731836008627418240356489604243170478813633648335347332767509297181333521974780306999728165779318863935770637524401120714973895615942871110937677031113297277359776166628939705886437677886611575684138741564674339594514732626615745009702520686971066224253838363169145850301172241999237512752927214314130031662827166098590423827809640107636394970025930965945187026171367326350361355379792059738088335534503963578877751170110658244984736068870091222846890921919870448817294944386026450880811944974882108596795979753419848286099983956695981595567691718605950542406684239214876616809068355587860576075840337869539445631669424222985912649309037089354964255393921999125964669480607518963678325224415682587900860402429131082428557865852173396768214503828917771363973557247098774846351702248641175663931053044010614801207904783500341563548418860634769714988945440706400478732852792329507997334698871589122231701966125115253589834561909350750120858862875956384309616198227218693617874819117443217872003337318093907943408099463434186328475247978507378309960321231926915142144018045578802246429870268835912216496304615442732328392666790696483681237169196737462916673643679058182782556680947839707086368765025735551702823976613706908824666080830835027784836619636255736811813581243977955773324048923062018375063093797051776727906022617394885823496990752527655762660064019716103384239858370635091189051073841561722455784693051158916325828494004831892576258622108438450264683873027545171173584978506817749840541999986404705755432436410788964169000134142946910804947083750519253808616212427202574717842315823156344236292016494318687922407387995649799669648577457250041694955241072231646653583938848457779959404581470029953186122705213432798315139130341206090277324310920002290765891366375775873138546015861453219121588861694297019501425472852528880280226989664518887443565004396292742838677694391707174536733758868279217524309716476187047612580554875129824565336270247850032410786631801201989829852672686061608245172442977177588222447413104463122390450118446401270420574556249429661236625496342675438784094005618357443835911236251838246682542335343745226850600989358028088574333694074809508428658470584873882444482267490578388127231867503460044104395305908822644166998914281437768096954244443761636270433464146753262289950093643894990092779122839702638086757204341051975495759491379453378438677664695833263176746146499923270988355787079232467382490667354440111951858245721706576533650297898213920002199443909456254222425088789912883899916871375705072469156546080533334217596737821238200947728797724262412828364986779434548364437231018729936058203059845142891815680558937856263065538011538810094833962895749907391985439411224237466543840492527321963585704120507108250207958287797218759584800859938743243366084307336952948161927263408303612188946153720906502453703562969434687288280455913204685148433917314733133918166207071195907902992014471934652027014515947355852946983612243556438460977005030796463201707593027989009183557937553957525636760449838378380997150102309495909229087553413672867257511006529438364476168790412023371164858327369433473277711052292053147713878275457573588921058689559832268395860137227576049124170502029708021589892175323886727596813050435599122200137414290716219250391629357090501815434376386853520972175174757683066194922351623985635540385995661054322672254927554848749007452810595458373361977929612350599103156978010020345829507574291200910853986528916753756435073586617212371866590130849153814082384560959599190614210232897282052169068553931813737346354447693189653407821840953018418039734902534061706147761378842419380142016210608714693280002894234166998828307719440312724938553729385837329900352541590613509162269953362818193051643232547059418898526889691554897119796066210637078390985347613109233009824908767342154560068501878995263286836623432253716280144162928612408743567516898332848051129132661191601075550098286689674423436432805538204297309919752743149878966125957884204873494573858858295541239198536460387488779243963094867246392265264919926643587120671658442743329448767260735944434859706474227514043058861747521124914757131889067218399946124389742768384101785191891112650867598808143804006109454802206934464962152038634739129605041667907617347108195821680673953101633016963171996778695629972269625571100008382543364017191991904428796512028499960526655408234408172743871754474234760696347268889871493272652149073820492826671783381496482711200196377205638823971516318847825496473103362620140410587894571223203499964262922158712609219436810064533557625583601887017098933040321625143610574531699611773929842942763062874054281926484227285100839200414403021153041337295034191222069925129183812564385142890512855365437768002422210692253880079662154495013207769523897674374426056820625013814290803218538318269490720166746933770704278879075048152332280193457920468693450297036306029102572472129473541017845051853109449197650937367280321429419370237712422104827448721443299576891212951994147146104813892597603629440357395456696444124924900115812680521590462134612007375645669106445951904189405821740790641529415036943421367023380156637034868630457731863731695073531624064626770984056724035228953754780848275932072321753432032272256982439172037585894378959410522593943185793686601990717608723920579506829707950722795214975427684368379723603111836179352096279128376167602100979241367379561607370311943935773809410797475529703755411900961192241750201329524610509961309431596410437665568963979758292589238050209831668576534014563248252931792021696475906292601855975376711934450836059926896802742574931168327533362461241712695483930031824976511202031791436688086263555572475076608669362493007158962620852343435683887617080111889076412712288224387129968791051557978972154044348903635145350622651674554999774204776876871317416235169316004359736818599450517038927519893648747392825396766272179384883970688194893897133629049128675383178284700552581874694573100089437178650505773841968006022958321450583791099626387321156199490886146127485257545598322165019881464470039177147463547363722021298445519124745269831468352674463139979617421475040033770008788566272211703383456061457456778168088174735644350506524070974517478909398462546566277423194086174781203930650524905695069280745269246847936194790515080921568325311115908610641427027687394886639552038789045792085065930251158690109639395731832820629582481217628034308362445874927781018057353952280920650434915186546140970939895760699295418431118039638212440316715824980495239198244161675754425177798546756046918066402352502444314366172354622182252325771312054651363689311001913238083006190285384002988590219664231946960135857676739714499182598263184432762899141383334261854755767080809502912928022344831614100995218941635580219831388634109016819015410381278310191788681087857099798905756338120648401784747450341481567953488775670923603799460936915679651474138893562580009956831620143991982109397428350215011368279805422600870876348956754362243288099167426565834244551848210659047375403714984316724912747663235455309403995309815857601260170091273568203451257084835165537405723003042105919877260322086620150808192172769607253541426676100035432366780331144626389166108261533872144107852396450231905343770015967685778482773516025470830010157533773184234571838052662676576201705051989530192710248732194196383728745797263726554915438313417811173228608500698348575027620014390186513017490172631588860720881263057655887085695902357056481995062776710309522656493862953889421376783497888800157495711227309788808417117520241981078082837198450688453800321994743655676455907488365734832967376195907914150862262557346480862254746895862790912985764959802811892003159180125709500469078751398113898519172900816789201988810149579785069415955599117111772290132238257559720797677674525943813024089654724675475753101569293129574522577356942491170913655863904735028891641783185805309278447074248345231223825282658832795233516679481264189465998505549554422943160363826729154497178958480809424041671813112232301746388760842520553256697979105638072320022120737841000520696370423986860078993152284151037555104340174333719335023898326440204433650625188058277139069766076936793535478633982206703630019318271034616254681607793842243028667685196020964402010819042154111655209684538586898898422973510043999995155462997825285578907338277627490612428080908590607003826025384577203712149568111175085397045141923408049695840548176580358693011901645425728637097830626054894904986247027904397528375449508346892957226139906845757145554784935040431459618579623046709003936150103116989216724552453963533258291668255114745796332008018336617957401830266377831873803960571644162629129246524653119878464257628648652089297881909716681181879208980036968442747539250728541859910773524884197114833637235130490829305413243404186122123573240762464515518524845671078091324633969943834488978846415856023711039608658066317800182537631981854053363203439847754917600610143994607108225324273369085322519645552485370196209909798810913884230432738376052201245999901214518983008745863784513819815320874981353952025668120733056283410922642930674146719463883511870572980578457717104033548767729598084646218568384142088184836374785371846216858684305973979713366267759295572586956765860641280694577991573070621824429642878567033024495455411333515756149312325718332259376092394667249448267771136265818149762894176294663602933144376837510880054623723356157799437661988090168032300600193489208640928202294438878072673237901229846666715373710225633006331400597233868003178312636800475534888416209187903251084206285245648262196953735549260047244149396626253991705029719864834872598473546565634551364917916265208608881330627366469417710065472661999112861717644479426518193398706586231717103669699306959693810572312158328877797904631479754275448043880443767243115647346901414387384220964391525541999142472868260952738116046514514825835609722901661786387805845057607615120074218323641487647612871869179507377259245773977855765608849636257095612253234678373711849759897994267296278613305244538049291612424339467981096980316802209099857588694303655568027017887058252090412296259511499073652310674830781980117493823861824009231929716379032247831730916369162302337501727007771046100079416187645356976491600711778341849103935911036944770679319937194827080560934018613602930177636000222318481316557922321600973303980452222876493845880968536173408940672583083425544308875308214385060915532539955849602086123783316854065281243837766186316222202994141229245149217951663441408838084554792551607109951499231242077723456552687156242087212295612926648607353185214887194075931819268099562967025511220239077233621880692620885903982123286416757606725661686762553922409312499830969029294329826175721139630269372175703580331393990829618922416783006727017011883206750385191256574519124303810895587603854097033145137716830782492268758698011092511070156806633653314091873203226339625283185753588069300686725442336516507244962054400787364051672323807000680462725503183341729605508386188891778916931111031949941277541617338331668101628702770603265848747913433375814980166181575690311550213818217035278111450705162949348673122711211601649693828670908962046424567442016390712233439325405640113687225528659972367411470397574835377263084435339318791584866584284264423677341198205052950472461199721545920901936419796444916361415161151749346942790257015023594703397800146176625091334276361590437203425970762739358037101281434498037025815447570750467245148231548635671694508755553602333133751144245865667670014319869257750896548126343597179357238701781150801325557505358290744211816753812278265824308151925437359942862879252175896011467107863127252323347833762061994649628237986248442054112388009690389445404096934106508450585579822068034062851743456078596207838134438572420445476633074924262564490011764074265871084407099977585046907608370549207023679804681821456363809221383002180832284438125353588967465406442212558600609693679183731160671106547892975071821316385228177201712624203178212652076048571632465901843766616757326330161041492794429426760996137082233340355603434128792866238605066409396548940754956925079509023527292654943812304540512778705743577075754014158720200615527908523332541224754251539604168928756154933433312156739868488969488817319210104611645470998779168615230667579456727656057324092548237335662707228853415638534469778585574805769671767688866156150695224162976512259225354375884667484971884228059024531422539074095270295477931244243700942569730576952855040928647320760678399559958870917927105046608211652352427183096540042941607383510717774392577912838770850881827363250607378910066756295854231806498567180423342361558559337827456815409046126067878946264941837711347652785104838418369490060805301674057301833830010553512721056628876728988614919092578206680776114793803179394386231806405936278303989895620832168195239662912641229775745565758990789199494014634662409637538616891767922046408708178159504521903165977893843491070504222132630325962974339859655792236510159558670223269914784568266084098659698029292995144329843542475939488776191663198500968710165923831080164964120507778483276324212424830457909783193645127539565001060379517805962890700476167900007178989382052695235019623789458378206147206289074781104275737195981155301444750606754550691434901617170346575226715399530567108096865099733215144109029777132461621210537825954582568151897034104970943203571770652866192995561382164313347586011032252662684102451030144221964079771327312048955181557181331818674055166484696390720576752102203303211660567222448498519212370731137772115152898192478072020592006169966983755984166836612870052804769830007812587238464290354826224953628782392593355558453974653848026802656830503190471476255562438278734752275199299436889045525868877908972179808734318999988510497363990555023987638333260376607265390708191748564651519482891743971872637436578406043774233062017661732877194416621175787105706102170977361251201814961037191183609907475900557103923949726551425371178214084433565349108129869193779056141595287932116494317830585670846702871615614022194561044062104199354552834719828302219334019346734715048620684590996377747503738798820909519167783257394401355682023831374941814256537899598702794004118251062301722616804503507415539604382796874017898867854262959172342593734971714515841265931147547265536003503699090458213762453158761688149532647006688489908049981164409237515372919408256861765562308716179616184626531919892154586068284843819162969909618388883883569778194688522063963671774747934662756762713770298600350277136441322128404325063507523818601115495282615959511979538900117448323969509734373630867844613370907332013839352165431337911388955056583745507438542648262731673703505931802116247552995915530218174289445765554320461499669585916452239400507272653569249184594088036579397412204680244016058400527766133919237076707658961426268952677352675139861623206770500274335359158183116520705871248250646609037365372029099576468777973697789474631223832008588254103387847381306904024441887740915894431226814935990919669352358414170088017968631676476225588177022669937755048596062282360083327410088659363692446410843178376857587781488124681825299991734855193844458476720740000230513904625055697036940907577419060564519902251473460324214015399350811935595952974649350774882365959761754908409577395082200204418307368538950678160455128370557251016473268288535648168759183271345529781314114640808235432198145957963580062334317721714598046591947525297835170739346216448306518579989205869058176511254366957567182593124190181730248722579944555522291870634921589137102662918561193265557149054585706258934729677728977450337959961459465460876707931176060135409643111926944010113305684271929809674283060794601771756423474955202280954869014046532680033105453694051089546303912004930887701802386324943209508482447582655218734863830928406066551296067824508392444736048033262831490233546711501985648011347393084561664090597360964046865424018861969498537559365537625252460490582634523692052885331259132743737683071007969615677330078746109068012263084502106845510192651887551862832189067469619950539405170854279696841534688106818931508182786308593049375963758409750644499458384753798986998682786020326914759415950711705418270384289294116929707250188988745160328083977393731252096617748929841979182214954032135739696999539844654833053300105700161376985607514335464344308634400100018619359255788612155578272909279698542283388598727103199964196421033107717934726446649982294276103644989864354656762568389114019933834461352776484354871591201860012124381047619129111429834203484485930572573792318957511743023511267268907790805064852469820295322630263976639690878940488528942701194863262261221336957788355642808650345070039365782126938077149750097478029223987977160900357206739323098115826929415735884708091554245363644798792183082627906782879885056255528917532028484351128722788761685378210614596980966176741443031495808468451088534742120427196741561202254253795187260578046940729483199554797941109378608396364678370122605550374611262999403845025546208972196438430018022115829877875771826991836904001398623064505895698079242420805491460248211422797374649800950556119329557213447918328127537496661646120323108604700102902382793374753490438395141601228165241307261362471409693919019840843431230485568512531371125558876293202457594382442743829963862374344367676989065191126789714936855914600367526510843318785629277292843570367319774447884604998668758732620008849086707273222663796897894063950879029024516495698916236847826038862901517082600795681022556812085097080659131141091310423504652056577259778878086098605577719302919405706709797164904085103167795733439627896211256672012755782570776175940215577975088286900136723849776947760869802789469690745515193326836441793573756294170213838518657559608892412623570812559715811039362611816896511742062038323827050870685899643637399360978095285798402660967445984604683704923277826681861777186473946313242595950446455796283188383120179465936300079836786300354582792030467405728230734501994044357731507614061927818779967256158245481068379430314941716193310245670002202445209681659910473814311175586512142877762647214930774689239352014571120399683066442690438796063268344966200884967795548242635435519235482812472218926994989801902646757247172253374485855566713489977816916895486847285828432338305356770799437172639392465610743980216772258957698901081061046129487127763261223512834155419205570385853043233285012598795344344462083854737718711658418157315385836621711313850736094943371062852827932840274108027425116875542638047431481525992183994161479986084613974523661511579238838113548802762682337852781904442843678397207896899259716770786119482542497453019881194288765268478684490826661404352553456728527095486366027198595988150081135037696928065489284088313336911195092477655000118684854327434020662425120386946712418864045619434972339049334279633331996007198298627025880860106960952586941531892112727499585129494669068081556457563692835867622641234635270451760171689574016478759184368816347553381851279873408363777282475404170980776437950238254599425426003985630338657558603003460797863663420582549124232160692964661635393067470366050397459217965796662984556733951386794440216193838580214718589189685079738582095482553876597400392696769876900996751893518530862512797334663068627852988327328276461588986674523176859874772982499713201063658274119763708083223280756076722522041272924628125044718032713082808666956018298176121044631607721995272143909610195988843087848656268652409643040594193490609510850897622453950135766909008740116138303635756687922652797134835949123194269434432279768520505098941588382671752030718643420140646998863903655333976015489008391432759483258932413076131025892448878575290455067419738926632903574228229689323280707788384402672686848287888586477886836659954754279331042885550241450741604716176443327316363547696913944643025657518828753540136040041516563621691876065753409564801104628413190150027716070770968235803315838258720148273507165782293425272186854811638452653506893030168674712041062969336737875734369804197421439778640877364968379350933097600131757284636138583722701150844952860250643609913984667942518017879284771631097155986619412571008808746577583114250734910613532959183064399585196430577652346969616280306670862918435447836864635465113161637080805860962319925544865427726491075538459586359978498477267669600499100709373588985008326238616523897754218735916593732902888906388721634646024517154100874431759765601052344407493310581876787345256263326200908709703837060665239210240437531412974849682584468717861806471941190829002325564158818925504603901824042150041851219463176494696494065906543727174127928524602966145542689405990832687652986663705822464774917275883300560776242691471933019790259778819908982193083991899974684086601616751707169274681499812952590334330614897403811641031063470650032517663418747585757282619388369996054359247227611008255716133196300005327684542146874299237660495852341152058444333369629547001904238237347181794341679863317115738046393130407098062570077742953797078063923930352057135482068356735193998088232661209394460570589572417461732796508867762088359139875275811070738525514957461498881939335072230989779754141960667187317451771266889530859999608733639718705477381523348879666576369780290017304208961799767386245229864738990233497181927667589433732356581000315264224257452113218750673663487348905999931286419939108382532185433960315389939946647395419772869034149673849491821374042600559849198421023946564104085112641761824786732205873951056323652386686540333364146276709389585482911353891989187006699871796498701701287966758388660328109459201481642460858995016202557335777966941590809833846930652488832377818662558319985173982007649653302692536967751109248008512911971011037291098390510270164266756018105628264359184446598605075445994139434053814346811257013081138911335270502016081615216902058751392636108360419838607020268555116398478954427750589211778901080255538688050859246702875930727369657891952992351222967662324126778463363609687565216138614519228572098971066797801172562944476590495906501043669031187928337201171427650785703017105811690266881226015234296347408760424850660629066943540792114327057943233872060006029757709604920223651306994904760688844378607517602424992801716843713204814331083927480867166995817165342136715193390063178707139114071078312830783535901755999630193600704763768177263104143346303978022053774907451840548722443867648874140271006425925471646071732963177690367564082083473110433322348779673827235736530082608832558832210446656619246522377614718422547633061980662008977409832464242484718765823727420821515626904473053239704232984619714728106276574192257574100570460090317011307523414727314136057193817217176348164380472925368889016163661292151619035291528626425052400608410996252741029644604874680369126080403284992437547658583034849263981567729957961847441521636204422846179998272592997400702494009447667393375344716102751784221983650786812244917186703167636712384893930591529384931867853286865375690904153018803658697037293787423676373388734003865088738062783955424191944529753218484605535406400661481871987773315087025138702426547755183848146939929452252771660280727402583316815043539434635567819440963865338679732531995872653045478347524346196757152823839532902745452067383751970684818029580240259477176332469770031100699703080240899676524482620822664657641642580947795616674406829124767561817589721662954049801659245631203858456539320350939325304580945719833124019885916924502426641113924998396241346789959587011760895684635533679739153957125229495932503906999348993516214946290702710339172218643328096446296125898041316402648798399000739174632423295368148516375159298492994396338856848037347236776281698932795568765386902862795753549430063220191185155703331138458944178518178453528939078626924383336252678551850959352948506031442668953034440254881442296572098457043002648171200780843132985484319844175146425963374350454173254558483588574902139393056833355880639786040592091922610256812483530280267880494317190276981794941664868914298867470797580944028689583007556953254091654152916161694578434031660297621173677718180014074134412654871003432913450451429516969944466079193166050856158769593092191550566169174625499677925646801376530032615245571494561528032613722319327454938621660447416907800955238133161378717778557887774661743921584308909428609024799489482776695031016699130577802502292042912043470839885060157746678953457784166137921170162419705471074253622460834259590825191227526373301003562467466133757058485107205143850524542625426649569483127032386096278160170973453629349307252714307380203081721437811576225343149283593553993349658346157408080991377868735048452778011871146714386501955019850289128291914132452278496842229541120388696708465555243297839673737546657864259095963068005490375925600838589938410880136008603583834622623818028330461772598200950359338946361685982539427472233171146776300947629350714321843093960109626933326109518256209875084657869397531544772437237702962381277184093445817121885224882467950581821176910645967040191767185330140998964862832071534070826279940950673407507451061497364242394369057316350949678245217215653392512498310464020609057525075979447050938774587441253334756203881432941548010673915327857670568263626512276588779766149711703984421019279161692322123744154143265779651749735309357227922268676436059805592423620147030640060526252911300316851531120735665303628099755802626354360590165698332556204555003256925978364406664730637749915913981181671781423287045978765894953135721484426933243631860625042058693435152650931203726155985214877722649231972444233256480899062413641203059110983724347476169404305161817099555560485969023508713171238172116376844468476348188553490121339686982740860957237450135550052233016595727700860233462412757156648005065529691894911825244896398481643730736953389683607700933686727108964211349009904253890445103161794982208561717393553065497669791755317693375763620142036162290618991355519255509453451601141921375963488409250157132974670836487671706891168065158498492434001794891358636469903554564607326457206593022830407846269200421781125512676191997384708769552987945141252078224665186740893077436404627878137679475175994424320201305107643784209651115656994516769524195763320464266681459623774281617903200139259305665339693771006320543924450267661406952970180234642753188440677574028494253165681531285256706901374330767649202836563253074519997738706497073887489702816908298114060765733801977040923363233239092182888497558007890078324823633842786809896145815867431675943319546028992420134956118407514863043321007823455807937321983359014577539144183693990374397640710937557826917254135594849779755818084090426337401331363511092385542910631200637355650351170333590949335379483318210253961262404004110856068109816545710391854185751649961649671070683845943365628000871644173660375645586913640793020106281314476016941025209338039238227006819270154935619092602186002519062151026087006885406744080299819614271573558331168915387694608213246303783596187170531632982544161610659117974111139374273777834917549237754325321228615395409053470054325407211004613348017827956956858254191326550603217846375628294916571800187408714791492582229119566430354540818678525481864894219852342076910961252887822664173316281824787508510245038276043999357957313698601556678268667349599865376840793045893989967375967776225584022091558547828036946556827603687346628062804897396801314841747766015662671600614921144283169443570086451085518692682016743312954084978703210211326654145733059423319510085894849905909793837054326642009311976259113811495674023516674615290867422355648236220922786891321734734691403078200282334579139545933659983441845097332352112943466071545445493087528390484003245064304195060524373281973312983820533048573705535265460199200390583415515393483296446322434084353619228418530629148167657774730231664951707713476285927897934453773469918395603570841203851454798250475984519310416168897927478328346871760179269692857319882712021064276595732257733989215700258610363872318631356986884119811858754501349455757678428437010184928782243382822402330799903763982280882363982132843921032168345202788563927397858179700263597874384327876544577078409791184542417112872532546343799320530997070863503566150888979004466056486624627474789404730158578830187798906923766511908321410104959074707054821475020887833720987321313052141691850210119349219338595147011120792567054110101124950741523730503210469034809297762355731913513445522142688773189939460844984114193597068424264948303234564984148504300521508298486005079641873027043424802630554984800318967030349639983285837339718928702880824419412728317566609300268389738684461758845179972855007196939011202976921925416114005933328999723479937676643495924694895096806880019335179368414979557651611118213742598909563036607575549505213969014626963177051223433334006665202257576827982627790573440593533387448855724259689827311788214747399363360489342933627277068693145135636284866052224882285174905134279441150630459133846559873571322521746596046709260506971725222063898922149782152080669690309199412604891036289601116115694954569244742604998009771910583503761817392249942200677871446840883407517428075343207404005730188779602226321507616919212124608749761808035317922195854884317765951748958557289271666132526233157481867346765505639346244270423720849675308114205899715641694128544356147569975477663951412077306720627687466037688034036833218399599923592279329403446421576520555824316811106416719441345660917978868252860244663302412666837224881457683978489947561951716558129003756857604783406560213231118038112068887983364280602967697448917165551336761053146391979868050581230729843747526054869482259305818281573273016308810599841002310898061135296143482396059524990651139991323702804110584035786845730644874617678361473550812167228253717755527505687175524253388319009552206063484099047088846820415666379618681700668200461851387585217034611891225024144509424900676453945449782562412040259166838024381343455594922747790042151212593063910527127317697813847399848136682196196905463075067560914930836816512044060743795330158888186487149247410774612772545058304932496038566506097522788508895130958042766827066206146186585925954492978303018787653023935129224658789977830620425020889793801476674298860935816844279481333853743558131351752616717009225177892392651458686991468832703298408702705119793841121264243295587002121495017340089235243919317358264960769470168195461817863200235027281235158148889480575633318225633484481995469245386344932396689910314002543441041337160749811152335443427086905084386972955938154809238522003662106274810900729300210289466212695774746438014605966289062083617023541863340050835512382176969883230447405934287285197790368405590528239714429788278474804138574937101816334233628507799570557394004468909109992053853711066528667877727946083248112055548619766186961393379568048924590549420736851730031843216199821690718274306842104100967719473435229433247789812085051383518743925461905677481967542818099383938341474161560362998682764147241292163292113633641904395930284357184587946613540631685906102896872428283569856355219252945346860585753142470013881509192398030686410476314267872060497130248116295712931635035607893713327038124296112198332881503277555964722505867868061236077938407186220721109513048672135037198163068901251414490102050036896094804698422180842430846512993900948707925873370640925264311063455087377343729273781913821512027899901526645128464441445275255124613701187457765367525488470798607582407084076162324876087055313017680982349689805487734768968906641450275278264364615958470205404551787174662012373837839298880515245703116400788066490924498608481842259839371564657276049881929333615073992822316523657007023795507469349019763060577167353615200761626636466336137174480008086917813839167209417943963074606855732564149361079912935779048830089433986055445146904264783515307070657151738163974392944382453398094690841004741198047136722148242886248721367719657713318416097805292158314442355301936817322296248810033690582040025488797538204399159239198978545317221221645182875767713717760176326034479032621831080367725226051758223198969141653708161507244886128690332821214752179777755508148094280062022188195410531932933838253184942658803938851278736730752478514921203676356096668497903963270540033732238721606483171692076464001429379054221976063628593878840264118236967829766788371933388738182193835631444772592357435379839895991368101707843335176627088115789624781564807696357504052492278250389308805150067533406022335759984517399767014210101772230676624468054390429154273134498754869166090414779399870365400487095591311662391862901276375192769849668971071469296335870988748884370888474463671402015153335181440996817537844947818549909261634425173933193572495688008673813762020856854996875406728484731060355576823017246831055122964667891511298022942472949607094396537766136981242088282297061440913180662013987063752452482118609666804549884781464753249766963060372839973447688680611182397856841023444704531258753450393706525367603229462280904933327078744898430421274162265229571277126481989186424371562852831072347139390072860558854335465199089997261453950872098408886697679341209095095714459196771915288828573332033756939067975142997241646161984451416783180633628691785835172543851755740632576119692823125730474054085212724867871839801455019520004654858730767467502242810716813446345656355939519460723753475081300708325378276833300617319039619154258590542818792779694318156735073879385497094812576549063032402193236388344977834689017557582902095505211488534860514094342029315892160665718817636822853705691175168586418637244859665924757737378979989626273763088035962180480938512461175134441705023931064400626786191254521027449401779299430429054225032856270510013811533992716261053392253281521467993438694782007557430904193665757119862427884775334391505379783694581465764360581735895883157069272336839228487452632769574707872610086098137894409030818743941975233593833725403144840994158358207798253698100352488361107342784402497196229254393306296236108133951036626561351369006406638302840732971425628487678094823087726328108959009265343145697350577774698091326002116318980101980346114517337764491512449887908060580933296776532591512059899800485923769715915067442020897563873952447437804415626734391114505948369314067373174913221711974726116718458537323056836848846792707954754529056723813211598412388843859947903034917016621403010807726987353851726816685993979252476631567106856761987606814848253548493690518619193474290579794931792242555505290329582111377677301703394783283757799336456635563086434457917506619480867524097092273996799855717527753567543718197879590275712599026520714378932997931998842677819619881655402271383057503558811035628272460522099308768074660498373313528968391168134222678591556044526168523094875721366343518284622329511532472329909521782442149679412085788927719078928365805731612917366722084048118644085562856158149104725192076466133464783813540840024588161685455498054632976533743693987125772812599134023755169294168961966209344094052668917742389640404954860485515489775799882912238925516335939398054546854358468217723553399109851342830157628776553797862946342957767622954185927276960349250674031821710841536508925749994492927893754441145939287922823005903167393489810527708903956197125021693964969859700787137031425792412560497152742087474669912463462571571142271732948118387983546777606374325947344153127494446160579053455556757558666461839509159713146281625044488377080639034184330525039447703759583957159915487682422935893044560092821839575994141705763396915183549368323897908780807852844174943469019271301733870505902258390125334527525513285388231303642851284249877110116416583459296185898600160471278147596160501007464295663140637943060073398250134590075516244150968001221613548851928335950731183182090052196719785943194433069444986361209446865559280725725175124637235649823621584061560983756495910044942528203644408059064025144771790087062542705824118281626124778801306600804561509400412432833782579822152758805236218434076067107723070884888486594008987011318898660884416520384102340179018166049036686330812441795049531071701313783068438249411837830812102284399008591426122414583259029798696561098910879704050379078422930649960061236570769506366390228107347444789381895450741061836593921985979162654383458699884980818885868087410110167629375927826708919904854195458154963155394962232443509915781429070067159631786348513224041547953799482675941035901047368870657973309704866933830266288314235548404304781322927531366381450093153339540113125128395044127674058822602382494319739717424427610621886799047326719000897505952909443559874982511898244211966607921292043415739918454486592425563339015495447459025219720014008552989841012962800356231481587494722253484014283573377889521242800406486854085959711424625898207135893065016863584834740965759700413856078758783936751285929881863232497601211486713265783705348447829144159036595931758751770941728679690858360787420160250871181123801419418536382051388506838010641968502055337155730769704900826023823365088760160467323577319795064991922794464589854004676547827297561715845255916026048177136247218049349606966583350753243133364344945131217640725604478722745208627374297854525388720174739231049851201749516480139043371752934797301623591318841887943066132024119139202145223185083549147261333931409549699685085663881026148707086612816373933071871481105149994736992754665526664693841960800215963772562308534676416262977611472336093952068159584064043091908645183273188797749046211034022232825188118272792441741837662851726823523354643329656909546964250854997069103869568202126256201261412729553792364165796615743759729165875570854949587694349792807381552480919765319759527938116759058209182836878163995182213384441179713043918829930495367437094774997647741634585202187536962598644297900497779658548857112847333645437914310260816208027982412267444827076965329697907730022919858982768809575342641297248000956482296315551609580785599887912536380361192220127683465744360371500802605033712906804805892596152910881706429094105232728927492847093039371658798901271739491731852654731607995321408371125226533420689446320757821168770934158579864075825544454574980340438089471893527706679174521323111538037894830738613036956474115245036416469712827497061992870058609368245434666614347230299160363253647805432897112256952913784212427522948313976503156014972122143104152705236138488169918638016507202332034143186076102485282072358540777329011296537945180680181911962858764385704866174763960582973541220462994291604015716697802150071392441531102438614444318075983661166627286474554896987399438466422690411036613048423820300160385100028450279907755017897193100549165021208927305053606278183340046372985725284680481223362441405160743755631167982988033715508773410089722449666006617492241611661454752661790436106886598016212597918551387683769401235456161185750775661040350221249829705204273477493034559223499863879443537203721269360120925566289967165449140954169301335409919166082380331189485639989559834116822260586805237614856069465284276033702795916763319417334358703854023609236656091014752804942815919536430247147570269226999448278518806514912414041677412472616683225975081040403644848161784996437961445753186065607010695279136878897896082491152023658889563074645325176890507793179681623531017114778783583131306926851993946366739267850884031477551523005162908814776766125882915365881370647194861428388520225952398670749735930736410260557759161095864733969537087622799048390967932082544884627812777485190631535215027794538736315285509291725635780687007681914032362136495237452153855633524113529511757458697114987223254678712891806938614566453575601418721464300135080186497792923102999815908415764883947099297655922846153086667999407635672528966758201934059961543080797779852563204170102376689188676074326502677394944238874153372982084236643567174463955125971257834570669775562657327316611039660657707758160959523757772026238154544089643800237414980221607695142987678268648894777441296172140512552452467601917045033056526405769031881427761881055271426547805263433884068232779806270855430671972836200219258823033781685369637767703395679498416197317673056795084804150686007691599745815619507844986600446496656378401871122001599171083935676849867192378720325723071030441545665380691150461566122136824545748822497517190676088277579807914425829717265565744995953256593047742909835044053219374510097244048007827243613386104043578413715777503105271470205573587610248975205619945647744545167567869005473290515013109816082572392492847929845612416188276767739087141411079696934714860638640883774989409490435160127016653038137660293380812362621778987210705801614793972865162203558806490755452128529738854775616355020598667689703082022449829126590065206172753209745566719283416431650405957653479629169071971613887506093860992034976650209324979172687796299762146403953303764110876821981786401329288578994408887067855317144268961592508940250564245457451883533498006109489001988632241662895611811579261450800130843008858541625427503663102540399427906539708821642683905671477804309903718601900130771568594367933020481228494115368285489388690261982721813757390569535578663447295916753286544710479231087475923808012438009326559149058799459403415952769695192974949552006506459005714639982201390453694066541577037582463759218869548696942057245203913514570625572922646942935714590788950384456443136364514972149576944505299950152724555868604492334629600932093535267722454104068808809801631228932957882234925268435145445960572232085035622457349726952009196946981163718625158990402469075639428535513658769935609577709017518512781323553704674964839906507141442637092156807600201834152907818475633244747256357194000905814513125507216457146785686519502441406149534451172761734180328853196019078245892955506649199904787203216125990087573808254328425658998239234380107130572923636079691255688118681392743950653550055813533875805601698335040449611320293653750032989724258910233311156697131987579719056710995481431291192637639413969466001437785341824331773711647537524678328882280844695096859968001090959825098436520257168696569582398151388322037452044490762878973310302278566491542150333515331432666405029399915987336008508580146116833783340754388000446091034770793212698894541803755966205691975886160979883430318503553496124083190492676892701501180813425771933393485180467285000309076626417658901058151448754859404866326903007052519992879016307524605437999904576057227691491607383952053403090829787409878080806213703990281986610912137899476844151814364923605924367403025084526320604508676450046123622376808032722799871611767593650420324811238952694692821670745009555870698483059938666437000526789029128811897829299447890116469465870565212738893800848569141268360170032557492599774489428271243068079148027290567965162682601104920179391904804833637014093132651316746365223215978464166936821922517795025362076586303120371995622108980691417740777875995279738191136333265516081844620327106908605914967993725314268065955362367129828237259949010725498810551712122481310507999780685500981280069712227342692699567392421068298983926946793914121717901568164313680929118330152205901211407533121979166632957763309656786873165751118191009828203609069970179440209826748841654002513582666076208840786129084390871952531090972810511846870120984307810949724981172008132579598571910840409671221718412470288918476996850471679082183916484737095804872306533776418201534167727932931752014070033457056582319413024899423481500460002914367294829173764532005902386617489548285559562888177064599966127441389136175025342667602788446643422878797199765248182980658872281476720732248114793204394851936990691082009028774804810116126557362442177245325526221411438714872152271509477284285671092343611076880918692392453297179334637018750546393727552956514967866117903313996914540513817659030258245835471748158411612368742736767899257280165062635396585098695518660384356636327242254812719216611433096207280635947344590692017925125750552911398988523354929542139860264546320045059758525561007295643895919041731002554148612623505862485636962102601271790272700594390988351711152041074090642931837209275618406912793863254581410913311168706587440724378780444242109297530281397329498052410133206571471190010609560921595665068571971211822152337675560845972058957409280617552607221055515779435348001556665268163602146477847762513753767774644657666980267415749912219847375855598618744721229640130775808452497492500980841160806768868371811427048684394133091703535724640949422999845186302667327927700282394487598178537359186042230150692381040969171056656227605366107870624583103698445926020356305409829325569136920052039520625793786648492181388294847057961666582342566801401200050985816855403954186149563505679689202588295021560294025295526912124397731453373356514599943924447504969738623412264840306884856575875557784941446082186137382597767699538986056257267317144853885965034582641263617469460635780922226030293967360836325975672731223264429252584236412617162562337984144416047282327668487692620713883453307933377392157800300037065496646906935129753053028095365255346811184954273506125650574226223355102280356561783194269452815410442156515503858574030206348265865240675674139506475108346751553326549170135202531205076703809796837171280296136072717014019755213439191033117466370290999441854161300789715475777964302400665237785039667218420831509015490605404925214993228742479030689075881887371331452353447813021985548023825529440890466926683560188973210654845261400143550243100637152137324236845748603266545755953813728456554015579902241028992777306706415519241135845296922409060675652641269629777333410181956953746596919745119617763853548692769567753879155006656207949810191996669120011824233187876008935782805692039101943332971724059047270166927324823947536428808427494093527925615641740205230716304378487494110226696935277776997119724965922736437824212894627833777375858067376054705447862070118129517896732604281989068729803198614219863425433471566863532343675720814892509698807195895185133538515563838785353323908153273512910128188828375827286339827737011465294817233801859082819255608979654574625404066349546853516808888787189723815297125402761934379774279270708392116063087737620404273442819078303864475667369417174282495216166166864188261129061378118244151895542108392133850689258892600487401412033562782520599550162671963413845182395208663215174910176429015383886112419987716197435950867633494652549734881951733895147099664490778055320909176107993890237915333379155056628930291617858995311693946764572659933099395267174993927802459936316364690203829913655582923152878829719109240727580725356388720546684678072309322496371078487032369196236108815807077496989128255991964650959873985994444243848342561239613330860362313244864360295171421688788983717269249555841441755707147170202288284222103366311758843092776676113593864512152943651461369034785328386711711067813191133964355929246885672309115674182813310052364452955137658651805003385033069814552852177114409208306223842186616153567383219791155692752522734660490946013449107476739553297793865338750414678327362164197584957237595801169398689148540197913895471756470291979150572730778935128270242888113724262426045085120795801203748030912150722618773639709057510775125097694322475509083201673029508290569781386800786485201607743934786974870048411655950012809267277894423495036521353821594029380459721789857571401964177959416370949758033455317040818530352169755412150333411716438603758679603983829174477997965350237959517834674189821875796970049866919453632043641923754329552716787885380526204714769902735007676771061449594702995909282164199214174220253712049962862809519596715345657452338926177689984326980611827244057023888116610390760195651373055335261650456377569203940255391556607775733560117262216868729351680743863716489350651613247909352103745872395985813464441174058530767723468485945710470628614139803824701112340375743088695071804360041938868904022339661701231434788914764519522315741637577535566856133576923485375664709572514814100961407211577221851990563616283258846018301672413835596374234081067223284825353985917537797317021190078598522876592788436310874339698469323036729259659872101782538965892069247359300396153386726230259883065358539722486192756150057924627565033074698954570484465774333947491102148328448338143478593328227030384555793947929093139084341821589859048778746803225332936498172853991068627547244614117024362801723414095605059042917406772654282324025902358169949634756324843137270664979017695276201601632931926704991252830052532949225359605195246310075096420434395366658013232940509240403903713484920599328287132026173923204745342770282953482572973148072992948312517703488211459500773131754860217688515246027023118987637046904296976544887415741708547760555557573293871843229136204310678979847079598117366392359068503504109130729384513957894872340875972857654263603736814035490477488713429818361328946567909176226184127624498892006188875733118220877694851472772340192097064486292529043977666037251526369099807262018780268758847235095469979460816170745568123255809229113940642378676542404849117321504690381016274196910753776475876210459124480833076914874841346971550329193012367282038066479114744388482729478802130671940875824659987734111871161814848911234745865006369596341467504357798125630653894695617343156178383119989390764941716498586937593285140328986247956628221770276084195920565247305240199112764216949907174472354654735605373997899053582296913801568695150594740830849827105175032833282519808362099518569552926842988046939900220152014937899804165484822761096459458308199579005741234222631072371661510863231383045263395726973269754192600114665222036170841615104841886275885079851648323997326032797555586933122275087753024619243380945469017841221589817740502139685354062994817917852525598823565124520274264850412145689588535594669046617775236526644067466551164607444950512050460849542797489490482710244886960657440748011540493260183654845185974103021947830449673917365765526405806225626771899560707620269971723820355063478158217211036448293097114764158653149471071114268824998552521287109060351679802310960879250595599139536833317981831750152624299075556056098501523500401764270635445518719374216468986072123412863333593954793781656848295940414945928134445003800127390865804543052973063514344954978250577733325374819149230841823475308036841473955533274190270609997948142556882785445018596273446355797343805750130822697139538794434917555676814429635375728302637907206555174599763616504651542987302912864611059546178917944295815855079085766922429933065356816577996096792551185558495638230942016684243714303993704699372463521608576715091496104643100248255503997938626530463334708556000964689276149079841818958319640845762045888071306558754574675213247298891427429285324438993278996698548762246858324100416511000937806294750143900652657487440936554218735516561754729976507413396888920263879654010309400163129248587155217164719147052551569465839832749513996613577817849688156518030952617711001186286778197660679886699780241201775880900579736714102823268037457172725577869963822199979811745741214557499498169804517386694057140378979579552569857257288290038054779369780677559865460795837156423812706447221506833550595299827776363305474751139891412185658674585902430459125198073800814813470036086412540641641661616868375124486074290185452054735784937770773654259766397839863194568187939132141842639078951805029310784019569320725828856532441560771587942219346004860389177430349353488822398026727180285262925161368159107084057057614483832129958097570446980277757679110445473795286216954723641948418958813846596623808890999041482984083741801421923079073055715540648077525057606091833746537565995453501765736383571609413011028046381470388954029071043570183346580877416678014431094062552785282053733107888122124693693300220281462086064605074905252883935314983256529746932793820360951973356764540933558464831226625267530284488155329689113149854365331195218552659337934037855695784988626289242718152365269201923486153468026454966424318558600464692437058857300116451358685305112037437846501078080648447851571280782909286544123910047690250841771933920544191957214683913387075551022898445466275066732123892495578791757589882632300780056085460839022569069731440565053625226898049429649116391634202905234349527407833346060602658288091569489219010031569748664663024637135596144748003007961806204878958766965375852158446353457452937054393608467984702261550185226570330287284396336625348411577248875562575375967569779902149282973147529639025735052639914044947063070409787440756751539876464336318135749072623569803245374946849248410571485954773380716110209607418663652572418854700653532075697959403290289242522515073316498006212001765763041234624226368217438114544648353722759667161161055616436833593695973780893647948123544192595387420070527836076740625819485397888207260706586523070288308356887292105632495194790748655554666958767583680654190896631705985958793929864914481605903817031017635788519458506517665522333521863705775935194132361582810433724985947470298940185808685702064072915185948049443614556993382709606703957209602487178523807001327024892371869983324941538965718427042918218923373413968405778567421963079363775882868019009280945388810402899600905103159290384906354648795516820466638024327402801156773393275618771762526920415766860130634594815906753585251577464327545423960486086469841534087254519608882825513040159754425583181293929884649796291351340506634258007163910044363082945780818862787113126731999096715728070572513681225351921889792041602063548723499152463835802650625969005183397166868369706887719467240402391287764619674597447560125287294226497597783375175480370995899081312411720629663759769603707456943060706866666249768684594069262410225754951896845339414170407474872408244977425066520483306328969839326304876065243059752084390490137274395991601001757534486310467127421111758344995119406945527313555053503670157931382991405723381620723937362019383416571014993083030893848649270527378090902124955778705843523021634723345522740088690179941790744674359250844529701092826898604160211705005071870215252166006514706348428605731073828593746147177375673784320783242179035584781795386116256413902685772076216721363428835898026890275631695576327676402128808141676019780634521822772136490736405067871651147932604147482799391764807452537545924828719595805896203455282523809965598843728257033730491377246291503995524038217917918844868516347332978969045599656516066066353524711176288643377496243515226934087381283252527700825215038505875749124867970536154207954261373541148727165769925308182541704859544158127667547921316522931052294455636071828950306440657287168215662603447759766584996077976817719850050627295951153554384409906807987224120826748369200372778522061777857074466633188010857835027621108090415914503532784837945756540690042971430363706479763238748863400707348385599794935365873902484555415515195913710550771252658957922032670982788429684186871959924354059014871937282664298601391278277304072511714709624834533492573681666324041557658154631081948328946360378850912427440024374808497324378389483816312330596915563671429595764548615878190845755174011313104931173661312045061168039752956569350630086447808807483212629515215376890775154801102450636214561317811653873467493589033867067323202292187936916202172054233355540040361129791798552521250296424795374138039305724463701723144010465029965990453775887719864489371167701487399378612247626491520265051525615105896844546389951107803525945615431677383936907030841456155960128908508733191067640424855742161480769333053364403496495732295925400216762837102001249681771364440898503495508295273260162525427904444181793291798108136555243821781435335066675885774446269603852448541992215192301086504504994107885861385527305953087252868345772658110850968224837569971762067861036445754962600122781842439793289925147608790110215183687574676061893328743006141526169243463201392060626288702679844464307151541968045092697286595227032830831313451632262368175379625102496506685850330980550681227872919752973642042661220410495382679493216384877951872788300482546821416307323986279122209983720957346325476258797738600965076404654426006944056484574181169358890318350201487774413043141554564767399803691508317616952224252912067349354546933431860853988901083816261822544079001157403580182061366723300778125412345673394717158196227426783148190118675935823541307907304115858902955814797408750520736089362696615639131430270583905622201176865635180939183634327194900030491519669214371796915706227827107443372043702975964710022718612989842221483658935328241909038576248784834353680920487513926171107622751895877487008401332840211100124679358353661220181862613248444010743621217638095229322813462507569513887099992664353005614815028642331150296890952887639069094738331295628513973647178255776955313242825883087917637371208934086053488527542607612031747419511265099899474631467186761425112891376343910955256524653837904873569892236301017136645155220041844685072383778196346106076405980931172687688340847285893832325098357378005679636490557302833835276989771455237285359387557833682984680105366583259371686437654606502259862969080717400215006383270667695270904973417187468376044805059425417079522534263112575831556869509063881772885340584590871097329719773826507121074075994815053307347555262712801459192604643394633100559317255950028459879969344277576266191427022502404697199484522534626099112259618641487281796762843895090488323348324050376655198690739776151019320370773033018115229309482849899441516739045771413750992851803706129515630122138737382236544962973789054410774596838342571092612772437112265799847153664217844982302738652026150955149303732337032992850223148359691417734920420167048900786359222330152257334129776295174509727036347283173710336957129580636351600695756938788533639522248871299202528769544115610864214745184358541115059974329245580704953046719600652960146831756790576987353827683131902538641107398527926904388553434330838593786235018523110171142041344608376784391018516811808166030500436034976679897993097948873227724081368332820231101835961790320755690394121735842423569839180676424918279711036100017022736615433248478535995275187203978847110468551520696290424821248409239008522792734992132885983394617137964497163843361274422296424987232924407183355160236703470994101373459665041926446839551945117973613268960030985806889968650032787426731560869800284504529058979910535721294248589536168851193285543068216991820178308347637433877069947759149058605591561508492470504035299448207098722110924176855340866177394997990022616029748941286874273822994118526057895337996990193296361647694493573416885295580927910720715597077489947371696407420854118184370616518897372498847749898802336490724336895464006716940700138837299575388232263247402443901589090928035132629125314354357810996028602869288631296611068650357164801423327078165153399738746103750256839265022257591515714662408717713055157011942383490946155962723426288355348491412224288690433025213783534654224847192788437943208421164200834899843102469002462261324488707671139209218916157857555842469594303291733201041358543631027717325233852763359031490034596148550354804729514747365301968570952837067654692056086222133134154235663637558569723752217548580259937807190566466440499041194437924659826963243298170710997502336782030122212762135678372736937122568072651981763127286117788217903795118653841856971836520286865937535366909179275062728701364121600883429489634258634859483581365896825071782094798375813131552495548254618495253966370036456748535648429955135309395576624008788028362323622907274322170270451499861937198462432474516353677053264287260427347557518448216637854652108621901039536702841002343237986175726749349814252802411979159622234058216454278046795408175425695179420834964960532806798709051589314263456955871472410981373995751021796777155182989701551445285199018401333761613602011186447745833757277357486989778919491514597232171714879603263293410631426261290381613864169979089077497995484917712359927151430024374032670891360548949229914412677383595383375155325739453967201452667436705348268431217795457305843099493442408661882302735794481768883636768320887366710925168952191244608625631589475592071725587330889642459506995614997251412467057429710082312673787685664764291797614325402604051735987053058627743263945069542112351226001021730906792166749383991717266441989838200385203591384668662356185770976638290247782104681030446485161268370856698531414066965616039926780130502996967453455780145827122490418154972037863772914693332449624352143676479531092908665822274515644427116221159961066442311655527441233188351374753396212456028131995804530921806806308918962898993981530910932361310894446192890337666823566168703040322239269492929634130871176891572390658927129340110647404494343999023680118403158240852489462497522775842427148346521268043253391754997443971078678749032438597472566957534549010841828301660312775969200495815068390658001824211849636955566344345256502691379440331757670504505396432205943221207970512068892282313263206332953665277205565289535818191975187544824263636954125909901053826915882452622951584093353884233864563937356180336925907565152508891749227001909547814092773636986292404261582801430399559767419160862450498715674512884805324855920246302830241345427903309410049540009105809232614122717326269435078643096707120808072367877614977374295577158505617820609951937412888279356961813983909031915436543158402573313461444510567548343868684159865883114716386585658984884897684109473759101414379361731260170036331820416762086217707963963671677481702520617824313816810406426736125185354312636046836745244879333785607006821523098523007380477943861649869165108157008493878349172448714174398287191986142537609952357841108798428368179768172182660626272773081968207129677362023990441256857736510708594055152353582353281975548658400793956081660761852657237195325687585234381638022292035150794349771640360851136754565170814567793664297183887440903188680759693156822937669522162142605411267885034451145517208705275678316969031480587280818239500592312015749877049414118561060656115772459973669445160325887771404016754041121710420731169606284196173389762783675086622718416273978994294890262542248416766530218721235660112734622102853544741056880113279389389457810275987098677653659128310742834630379826085557537857880987646409235346389146345514257917401748172908960365552767807890809747002024407426516001044750534918702915595965276414999942893760515980220865245246112580716202392561481093114540373862724780582369384202356601655042764479731419934755756776780939259456006410140812032742888180580376957568576708491104715976017264415086575210844515800421991156507293444733232182857445488787124212792557276335282315435874804806627603124111865071791155960889960067837563289500196703821327652456928275338432155578279985597634796366112998618579417078980830728520379460446974218696646332179773519537655162428089190716909207462532729411334805204606826587130399540574489914949907887688205231475435555128756869335825313071122583444984959088237756766463052489780646094361087547008870784257158818946091182299625518674621258643871754196334149121255592364102504888232089056125520551035463385031596032347215762002766035525921956915474905658264984868595652820873092664068486126743534823676247992311257081621508165038553728605195025108758057336187356884462597028075981464393048962574232339797429761429244127157574254195958835938941755520796052370331887863206854135681714198211606364005106376390823040487010816735138767738363572581261319563099813609993087647446383130281992064814636267313203129241321640411627706589528062490437345878123004218151025203302669814809763662635580099992305176096462152670015228870833032091481210398340099081066916122619832839010155088252673240470598359029705919561694051539113992598603637574622564304576704531383215682597375522234794578763399876694001462830837397181889203730151969418060890380633070966869490554322719902985587421780354128001350104152742421498271431693012812142143593908405120715392374920841542735395024883143903410073204507318286942390977646873496192945624291970013598211077612119791220696585933164437443959267821597446854684309265529917040055813463260268075660560241417683860042808580954487199686189646433462061170053969192953906347654767414034954737642796599228027584063041214454177277722000638487323996028770654464359974543469080703619217035050336715626557946375585990868012985381572175549166169641372562330757761772255882796986819256369441092802182672736826188369758341985881500253716505229420441126772290780921480346218365434825814952221958266867527871678599818744378365895764247709721135948471303682019096443795319558659359199031509814378780099439902864750997255077813287339817350566705874897203798749376305629768972067387486092445156812730528928664596865074272926395374440178290534742433438527268467970859569142056190678554330555191051707072680005217328909679915637775960845362177093739389544166114443657154898905378410258784139154082131192589708271744515421252913181683191478164900166856193492768558717376747935359023862532958273554103686627328848666509629770589354633943150356851280078075490092801309755741022485448863700948989658199620858911246488708105737830384101201775110605881437554456839274181456111642386335603295375180530839809118291407478013218599052601121873877256611081908139060108696953725096891189208889851957417388911611505958507322911246638727595359955806018480366102695676049923329247631462968975309304020991379270098807284189348885183642998268134357111705241850690646482942764806583504095594796165884546743202350964337117605349721452821064565946436926200642906310394487404333544400492086127228318764967713579733693766427236261177662700703262667083649354364735585659404129901850167763536600516434603681522221259500934934251896827978812968933391235543068128860198273387661299412460684631536720054539137489183305464060125058783790735762708757624277161476327531708619411673193029106598642960048812233960378714937588038088594665253836782259949022797525181247677453325216291777870026076019756595228271988637840526468349008844294246143592453933814751066439520377157367082262962150325578311247533279184152618449452078214261759800352293281499203878038242594060870266215254125515413766385111119461802460460626415307782142287050307719959554639807020902600124299100548897748873067917224844802881727115271250754795392800336599790050124245276046789564686904983827608457269128830513702369133262106852434773265727585202956730012814245987833448258472297713175052012414874773840400733763787262255448341196460640880198225083828293992355979792375608347438171768493862929157864468648505931448977194367931263217828714877460253841376773580655799754409581658321999695048018517169581645931915133999408069504333970246344095656619428743740222116975886270705240755088825269698907933482718959863383560897606063598955567768767992429017231984612557037981873574340352134736438287781773737111286057268632534002928897972568787325882384713266525587449483811546243970345081310147181770423628120388687370724399422222540668685120643837434835594809988797459827476166733171833376926469638504320296099202551413411916211388409789194767267098643072074825024220973909548766095974175528334038903105774110309029165168237416243766557465615291154244288805742518390835401448128075127171431801059170933172543287611315784071662004361242235694374296889679867583733125226609506730634642750514699185257628299174125313460545399105513997848296056889930798932927721661295141364060623233986574240289942201743555200156686334377408855856175001906827228409553118336704342524991585441552896341735414522597284441053697072542421621913392198982358657787279089034464591505175246190345681769393910899927776181746409816161019219675171459379720187975663976942895592160520105552007140879337477737449504145119718762016527905987400279721109364236550084768980694903200147438750216125447607231867303768205546784259033606398689840060872786174448469739320356604027508372638324247641784337486030639440686698695842164255465250851418708239168276021940127963724506959943896069975206796027131471081846512968683813031068928761296725831807892667012756804067615961694269702895631238199017851124501004966524075012034367662663030155646620195096970369429591853358048645429630140861322517990303140277376058334301928503807119946449111440010196428675725623532912509658186097200213851669693098333486646727000244279916064848214190835108035917098929900579006282408417965030901204894533912674452474800047102628864757067623362604510047453881268863929947930061105151435763901030626347162621891333244718952000646756699660462533325501634964441789072179558907281343054983060888000042841781305343887818434826774006279443583205409530849425142303696580903364022847494844923898800570902263108725615115314887623890034892224743149443673169990526581981258114012784049968151424533120928126424032685965882465375702253777180294441464012838773984557735434474732383004375363380932949670881834076201338170960883573420828096422544434120617464562549663872918967643673139816691190093045407742986839287923633045708592710291821670853277827651425793773264639340997514370824046192601303934431734516000276807931875259521662004075440746773311744847745782545996760544466803058639341492163883890754209407494527878174606201922499494057688556352894359080379393685227845891313498583456143795546369728568103830192796239732029918265569468116946680789004128672552682126329499484948533089150527319437784341307047759256590307806185070881012629476991181774552646172130635543304756191564641230831566259857138913425069008602836975930907294237121737417156516860587792598339134831003352439831229360572551604508206667607375303787909665873996405276523722569934297633774468693445475352451475119736792195301998449036236614241644487161503861111161766653943847849620256763885366120491459974485498082534324709062102596719484751572101607977420125493620701736266618748034400351454819977012017503419267278418416546366710072346379479929181896264907441174362738536393588223951088338975551219697444172533236607958874608079861665592142247250005817788178139141269614936323974479642473013373048140753921711697280696288466348212378607133591369100708068398254620370274910831923662788948014646470381117319579898252638004935192273534142240190282907539212392551427942799155098165612974983704346771722295801708928701431581228323326063078782831924242477330051873628833615511308751635837068046186320740184362486094529984305755510421802051511364769958763011107595342131926828330015409081254749125924329395993606002824242463838131596587249897995182080171807974558498624931335698187050860810019011285285719363069338269590116597278341912760321227874567767102191309177015392443212047183753100768311705267559229207252839373427619599822609573329385924554685409302532043535964993053547601527441472008472884922364366650890691891612927635303016290044023473638079973163154463651221125466695682824879676887643710279805098091221274214135853947362742330284914049192643026264197682440575481869548515701478207477697224919574479497322005016118213293506632481961753418804013925606320412503240877265544485366799523472002175982060735419350884968838475275777248524687764825691462089303018960591534685107343001926739929919130976209992770418673470391237531195573150018023362300110777480147109636727477408028056166802582023092179972929519863519272177733604944873773817913717859118898266566730988080424026903091159100123809115677546476633529333634563902609366379822786733318920086054982704933783386361205352621746657421380010879141015564782751953763654620189873678323189085064687081945129447485954768177905095749460379863526983898954159152032912315634804178815225799097318442832654733991139746003065680587991738451687911758491114987208938660985310401480626847417225738775620382293288187871037903067005179872267363933697810593486915809917122598847300255065185592361868084487117695605664805161999553501979906966833932183993157587875262140492994746358481533127082413945441419720815951436086277672361149419708904488835314467452529535921169937158713630063322821835988385581643181353311441912383892708969853937931426761765418317596350270280881558781219929879633580124003943116628470206316460899819735937194517779447436600727579065983009124293857931592299542284516840130956034406530527249254728189523557256165588206522787193247288197686874164926318273230380257706207544680454642584042545838898086654145247203527669192558000510580788153746270158874085458484124605631762076611525489811605524003147618413218690488119261097147238494684169279822908305584946621218238619621291599966431158419347145549213594227128793219092754331514365986635781621780481714342932592692924603679746786774037654924520696411985747477270191753114868130716478222625067951777639952398468262888444529393514726559892696182645361170544091727386913980740293996368197502794443843407620639701283541330269056730223102865013140422214747922814738086795084779898548131630586380634107644438672181074189100733077772538565266134437097743923907507745862234503604418141462281264299285159691183312701623128745449294336539223641043777487290157023755713332094549374343391642406890825044856763747522161466408192810611862627027327408849875381290626619748520504094531512684282770973141904254704786880419459883029868692324148323258674139038505078615444905048727141805782774866289762859531576859116476121800437787964230274105603079188165128299097413190381912266172334529358500691551814414980953541295148189547831452084342618678362486572533658849070565984575075230302881468173036341046841858625859711460717595783138056382883310881149642227393288583029207923923194066612169098937677425767136622560002805194568300317939858595081174872241674963496792061729973450046484668885387105457129763043482557310478718118542726220881025250046569316043679267250564712629333810026440518623060034952347473756685891861867909236022297877776384029873163456443050827143443770042576135418260711910857632627266091722810018824241854930205793656918369426681054800393616529852746742954918765687589720801609082018666994446031195173022575027517812305441335535915356551799103842325117658183322152773459364085341135052568944273285809278380184655271153086404866117515073222746217339950837291813488408282972854063889009873476427126728473991290630004707064619520254429747830706972235649547110811548551752490317047990878619309969630491318230870867386966349247550669384477444663815723757539299692658137168740532273362745496702775461577837447586694910434264777680533033895978154728602681778018261644936341315325931338079788929608114956089022385060202810123839086215858402990355938603635205324836459050474541339359978567451475953192222399755436846464318098521984009118654850321707981371314059894590929401260317100795036887982198252984550486914391544963836733628684620154477441389179919887515491354037277228377875971380283167676271242191441867250018816929902585348457765099030176595516680211791286832966960911325970333609000907238767924650580854480371455368823729552937970717535937826052585670416569931112411655565556418141253321431982819848346687969463402867438987488580046471179087798460994652338896740168733748151317389973097024995332388115696777074342404174251816439264969795766981001951176853635675141498979304323737776246649515112319424453096608782502914397331778892467789243157153136983693891340887451874359338397613856139826851632286824061002449199903500910294640984519521875131701365841557944649822959789699909364366215410484327042768919157989293639423192161558771123922316995011395329331950969727395680882506792859632942301453008668009157824912966193664779271840645089661230834920293446828717323830578518340903048572617562478955456123863718220519048692163661702027923401805051798870707025046384643608480816867318900639157477002110128005010697667841177172217450332790514503880176888141422417080819386954903727051498615371115661841460767264752769323867135599416073992667180782949629186914376639544985993183337826928311802731566921850392542918823100986621100115169806067587708354088504282035579927384998924452933845543561299144214030220899662816570827176029893175249559200473553953996850933972240316629144997802253564426694152118909602096308737364460670654136205009304360985975921243506596357692320532418610103231641583917397311408249775806773453075164120358610846677315986236981854219421615593528635368741481356404017499786362092011027173682689752335326691621614589456262870784427762078446313523079933652331996086430438564733437171677302049991782889447907501352218370448097602170505093808986814671575822612076824812667206745479633536171796355741837474226251028949653441156890597688919633995784889672378733250803584701992037027610469814238753921696933980997051860960708100944213127814955552294946601269819221935198440308741852286935847350142957390827653545109644588699083385975113832933481194891083508155176098133948180482403222900001627292128269305104963321833035818886703429861247653314555618262301752577416718417315000822754674634576679705864515571913784544303619840640093547444184520041153247996024267277025189632247760460977961221635499512654481428992453482812561228875696690349501736855198772337020094792547173148680711573658638237489020056034315885174767067978841378631004139513176163393083697949744894303924771901738296036956348982266207236135905833999664442821264555032297952843711425268491927891867049709219209560957284779003494125639992110003266981097383831668586710945678560987869545444969465934574885040878972180364596573374607221505802883159214304410517469504182688921272908671886761566258111144686554494981872637918093708617097317327751740268760027524672735796334390105728281813559927353476332158978141814938362231205584748990480644251925237126674950851366466283091741982837353401406688339971935230367549351732051407607944000058790999793404065198371632650350945743204659729947690791061547075024299134532984206998728879661460100770552231045169534428702752574514126621966253061472949226463323647961926347086344660635360240991761741514345979507800649604938009112627551418715472132897486311267365490515764400590300593600822549786526844971477033513036496698346828906155811970153400784809268577593738652487752068377847060037396374548512802541067079269909757441462722792863371509118442333970708182976912365091789137091442029275155002663382406818590433311789147270495608835225032718953934907603009727862739698762211832052228866399735747943673411371173504187118950551803997855478612698866941848613820371778058791544615144885326512271291548533101377032462142448557257704584798905404761653954712442295596844798886534441761935746486278907443808624671863337449483517540233849446026137245981689825854383072706277553137201617776522007742899121060604874957000735008396485008608721138469713292128056267023737315439041213925677527532524132035422170661181390452747021336751548958431511795820288872803009101784785215414269594301217149487647831676494300760162379454959629115042020081437015026151027026366426467108285440358284401775105679077512780208372514200801943897556529183871609365080199044060038727038818068973075876728024777386340043985017115071402387614947744190428349207586265901724745837658361870229083252434227716864444243934251260988423565248693833227573220829904738935984716041732844875502044582114348483933357182568710774768885144473638046922288034513514193841944306758725759210721277223222436216586332707710178618461145704330260532418269111918799524104219740177827687260447393204337029228455420419886396028271232364291946599725158795611171657763382956557153992397944292765517038605783331810196263206149456355139737052618562167244778235238739548853402373835200050844965024151377135802714654257504041492564961650584368983280376151808886707478674363358022098064151606936067355349037504932016617588080774451292546866547963820925207322675430278609281422439048080565801308817073573426766587716493885026522526431987777745632639181259310115869935456225359319522551832160751710174526984110458494614059048134070668688772003068140159475350089356838123435179260086686016860434251802149965114806973176407738311487413923321453354939441886327941600808962611552108749469157443156445727901471325927918268159539197852402999284005292542827836874171001286708047530186602988837462409202817925076933170095290534616187344803625496831562082252875327955824641863593681566003928931567368556320607290089786110625656582666141540723589303223451955237949943226608125084541320490899173619298942435938457833276368852226112745778665048004811762688871204065883494346284770107848352365462929380385765949230065446478315969934863468752373598319804019892553225493072752318932433642374693407415627969694410599158143296556365638588286235729333125719596184135201408685173204630207477620177417456976407129961566107517710349620982766447285547292904631307764114914064266360332842432553585081822376310856194605921809714314490369532947844780330710019401518904132678779724956712852055807852613515587711192216805883914465818678222733474239650248838350038549057660247502564697425347967836620727836556970783605275279948944775297942309650750106228702357688448718967604985522504292651101962420876370752608361770922247065702263801926220649484311066245057740808717817438579608434215803102121798092718898534764584437769314737789976319488928367141655638767189023023708244915907030751536894874894594854704431715627989852426265252131648114446298647288350198439058484277259977018475896805696703513267750779697624357938927947265194659302790422660031375837886375902555448108249318768820035221280625395316087352945157352939526127187957355023675598293511241975254852003587569779095836430402575700189971790153941964646534381946171246787698814477231400013501106714809217108926012524051810265711926635571489429327629641448559791952212715167661436522693220868934488287143423191388689929985480590377641960564903819857888368136907087225519992234139829259074764616499341752904183199355165343384002157215922054414476895799242628653445024008923543476968526469960175517379756017233300676822772937492342021717840082734751185073589754858228298449968585366096572453709694253975856402829633358125848734951503398090404193796786534686124948325200184331586316716449459360321017293454509196735088188411660751814179846212074598041024289397510037826347833908148047255687804472857824792284149633929888443582975054053320367546932134520947638136080323747946689437342443192496047341052406857094993078920274348935050699313064986287705693781702917659316337752636863759709143028481976840261552414869576145660903814343729658398370246456928710662923647275957955215255609608256728258644638416621604299942849699858298581480727696659083537191422062074723418358939567648893213209167916358597397517023195382878792030085043914384260725484514342745286939349333493007936290584415043054311243463924974935541049663235795159682940155800085964368593560287770863987286532728211830357094062735634758035782432254264570862093920320144044116933537564604770224593334844032756645239943145411587681957021647158775228170149926977575373288883404099360189287037281821069219040705326248966542982944233730753072571732481465938738490279775461842313774374079740263556925355922422728823644943537414527191686976263553399009457898721746006129075387463232526250798532047427586332074062925806477425608232757023711256151096472302396904076271145846350392078044491572228418787811060750967297219545406681829326317595400524963205175926601294531073295968425158842510162039633971149754023922217116892272868638326237492061683332336193734823130030905746318797515430803107831768024322431640821341601979163156798132098294839476574157230749166055888499499893712676836860328033684990761430359583002134693459374635343112012338286581915754497871177768160367217226227926385275560796316203444445579908510829209489937041684748297921927144916373544851690359787644869045128934503972421014528223927390891423270920815874298741838363406756253296099423734998918225342625694407970473941246580841613055698233945685815059016567700669682525233852461757228493286778230477863763868708443598007360778452031152112007840080054170953655287178357069900558101438960044903029443490787148840697858749226659851510635268361302034744542162652572670784297614329360390284563028784727852645871666342964876282082630227334692495706431587468626196205742654160698616306484033774875120459323480196708424320530171533629750952206426709405543981392731362285075597216660097914774027289383478809660150837764460725956191694978194954214823144372387563626292369398169903419187795775929009962843505086946700104330209112413070777512158392645145635500655018901438061003323411717624661783122549876303662680856557779432081502280544216954211110730448098136907964151265562654379133460803175346496178103227523904140365341690880552281137360685711002332337961739388435153105034739490939393024185251418018116698776896212262670944360663868140660109711362087292274516817166713950996481994731364519201787935748809390113874097025143696907648781056726385036805567970505165462038639820312620749743002291475953275720455851872391698779906548903393509452765309822449341487875835668944170986389766497640120669853730257160165817479370616762351612802744638214706174084492027764512258491992866581994125586265436486478515746535486011444828783294358478137055165632226746446230427264768373489493596474239733561670180897707661985887988260544779040871398278644119944498527647366947834620981251059857650317653101732556109314233230894942798177982853297370335330980205290703780661005695791386974004081098796549469091113543224243166963173935614051988295235820432217724826766274822130149434304763217805326796562458469985454087583239543027970699664195402439783379260470220245692535455801108391980339565201547142307445108323226759663703296657916029967471168223176032145127786562460524243587174400899446544828952723012931078974403494773923789116012752759789196032136709823202978921368301566109656780224674512773124380030534081935365709259832751600376059263572821527814438498474470794646659678105418258339265627324269240114986755452453865472517244534681491838995978150666679809537248770248697473708726940071779722716434677396255790864882072314218204439494284416657813737322353857851551136175756826353295789614909511018636974219369711576707286037785058698228559913929185752067511193820797726188664207358790682650839078991114016523149171009955833039796146799206203308350189300491955432851829428628530520500985326934659652301142169554786557471322708642672680246253432046489394265109384237600430218586029325316835100726121355600803466547862846672961035153356122213488792768719052846971643314108614723587528501033508426185645559263768572054557327620057132705479969011543645982166352821005415265589331391510497060250942582701612631448943787972221823590562112722286199602689464204784338363246972494342348076778419315152231766654529057761986151537522272235760091099670580979951729366747959501896789849895988629761673214866958413783971223752083408776842092248970315060531832785207133619674452779382855047123662832250073280415999785544978228381525416702741837818742391819690274995337100355982742702223961547967025719878076249814864870881912256195288678593436512851465237214505029139060066359994063001508748828417290467534340314782408239274768291173823631383255911940770110617315664712390372972934371424863112289782840740051093897770846668242886223235947680615582757201942070006925524719485368639986102745840545137656676957055374252315903421501116008948989765659070364192886682448732107396148580339913321100020881297862552258494312766136354341830832607377531906469481978506358661535374198048517286620278685721950053817099683859898263877887531606425991216065765849476167916377453138622293946873471812275876260178668161655530956195919192701907800177730946352076146519087216714547476239360881822688967690536221594483702686743094387430655909666252363386679490419524375053929187245779859473318251273269605449664654572915379632494776225317215192585449441891609349897504605304445179642033299182099945534208934575340163568413332572550260395657633671290181048784639937753633168407793044078612348286588615736918717180621082189240166557645615219337791430490753523582579163194159946534144202200031473155773427331022624896961944127533817313929844727556031603551826455175473827223610383783612511361739447113920926220420553592529417135647998434038986216135203965220394363506598362422428319791963290262423700946951549215899096376699889299504482644795051555435596742241458622666369807347683486765994327747498269132434909920532210481062255633243548173381208983864433076982848724621532559290847251920640889723992176171815371994417206558555950284632049728090038038647027481126312937223230559425034094815473103912985387126270821586921457969958943987751346885306822508738318081740085238743091545285048633835848040145293370336044933487904446999569421982643192581852940748109791068454907753147323850845070186091234767005034743588470858737910034939598598152895409214882107875809587816101542930345349144368438502792671023484751160816243686729511345760528447458679443136481795321161920039539544081536000235970005180982575057559621032531147559395027165420879232552188097832554850814585890622300916196974763434506282908904033080556133199253543439962235671301347670146864378900249528974716593637516541662617735917361731033732063500399543963104532991950222488906999142107040819688715203565995025398643252884898660984947526081706028766054580211332031673816576699245778727087047599590817787986540865967557475687265971755827929432347997184995579154653317925018968123464169012085064885679501123031280743588445223965601682733189937345768559704323513305877797224820907794950690344529767628589729001791424392312983394698813325586551022114206612668428951213935381090355794322799323218032094621194328190208488839838771732446910540040048671835461560060638480145058941445982557182959684560498443626641905543350447522769910660885822167277944289026611288796629304049519865904907284565546843555992143207355752449381851384186605620948562402362605329256919255593351751134603979915890162488018983492621539388491354744044993653112364447382458907559512273995609522963245053052055274608693366462575474305544167957966497354380865687917757617294831980495208783496682935680184541211416771335993762248623792420022337472511951915195955241207476647461155381901377977169658907715009018925207753142895272978380310490088141012233414798904174646174474617322750168547617233232361549735047138851704061115928081024579617429576336945036637819855488735921326437326870694515213879598854393803658350610314689469352738627600203378990061306980260794241835190234661281953770488800708437873019958289022334765008955217475631208813889991428251484846414727387162444355775976431827558047624195059463999283380092847720815916698358808527900545551637663930579974793563789791588674737775236050092995596136989861128576207475080699201739732804880563081493335148009610764707961824458551775552472177929593229839795186078937888161168767910345379993593773705510373614947734121650114992444369724405274112577161631504504014827020933788784312719576076167182687264067566170727342708084350223691471891102576604842148875961635555915666172675329321720188455805324989581306607185398820728353804508468372132815854453010012130746971252428616428517912952100625070231171051633450716867875039758744507803983304059241591717157171583675904221064118968282085058068432086392044333954778116486285211483296952246874661435019580321832563755591883428903940764346892610909130851616450663691727662929223696754547422976166180372469192489709512077003867745626867939487077570368211169046495892851381650362564198581611641780513231805213625209693353600051197057691222655172970546460570271171968139999182465296935298272694140529959452575669406992053238512982574788450171727411756791754858635281495100155291839262616471943036959587442164384938151867762388156135722801091661594681748805358704435384827024901834654626415747011821923851583385388963517611962250553227119244975682211683842215446872357004504672932611709013090811727808692653299973487399531332875231153454198038551315442996102623493308623878657902314527691034222557956605393204571552911881502013085415103668342451931715908053560968826980263299909178875199151503521904653096850973382284728087106812120874119458259110416150196539699111590892555126567703756926937103163329740841636636418235458632357292495768964875716773730544514857027049464510947929875421934923460221071341091771746935168550299509356379453770144078343465231588110195316565716319713172261415622653553342121613920283321632242705691267831445127005734396259089042645917824160635122593397953840383116214681035333589501710884788219246147528692030510598532481595587066839490710056195275283174736317510125432540619136022791734917210589350628848257175891072102423972779890655492210621474056837149208506823372470614692767154440831953776204897563292215342103584265383473511256189196793500379096608526727168673522437923581578085239665258498331504805253979943403133540854703044030437892982514413177749951703718198467580545300672331550718578837461827182744891520430321624714423503360996514328013756956040594810171847967056790090955175330197960515001017763305073015737226472714215040010545813300512287484874479223861749246865466389074810886463666042830803715018013409988767944261758291465319799334267266169513990884333655688709230531706541170941871897897866613684508690419534492527539420920502744066039275419466134106862509175937770875890210016664905856825965304783578392520949360020906891598633971487920924434770102884642422880244445419727596270014908445070795662800399348240314262500674985896912249812453131932990679361506508205179978433678607432493930262825577964834123201571603713631309383387171222695697836884685230087818420993138302354076896100486524238013792075396500414600058614668344566832171616935124289478985374163588915334603191365646121074507373482198120792020625445825575782997584476175076274615423743508634265728818276201423182535041450875341740669656686551731354909155792417642496639873059908165260367485795377693600862356995900669660450322939885425761358018053493718091897386162304390543100390561931977973939489529882437561166671900973920070158282773465865909467969160027852704505195521811135051216258435231137347332657615449279661534814890062239266243237334488146346329526659417230056375983143984672781821553985570527879951401051889917401120744322538837386822654748091848236899971541556319140279657021176647223412997720543794803956671177578822107303169263252290415510592017359651949370252086504280207172845887338192577097322987113532325641070474793403543592624494463482812555587675863373200199257256184901167922057650456062062149802412619221666269193014353701599890006741213971696330428060794185387993943727857011462940042129826908827156671437791179035671882757795861256184547596323604360322193945484500618993118902843511415181241776343251326540923866778262721722625377941919600743007135354201967582645053408348648186173175434673384153502887888138186316864647342272479619551234709906650906321828109111958253015598746842288073817908386294155478389566476789548694107569062271280111753663325303643335207262139891046752903563477601348372115021907938308612262218282496452356174739442135126290238191698526014948221518039399289797370894910835688495865989211878268536861633997745782641152049589764511706766328124818735907207500219620227400741763593414437135105102343961698263408433202454162970922811172154254769176904778543270905938482298805393781187642925164756621986929381800639616068984335632953717958969858113986573383610472624324930503955967635070263654656671753531061454740219347026188363241184616769992905763172111437533902521457134993101551097051479194437941576186696062254702667944486492896183393167739414029016445791943957031413768909385197241203615094579080868993566086363482153824315189404410066593104694398510476454536569881213319126671121163050526822357141880778838292800693586419674270912630406283995392459278816851240775899054264928673811944278297104107350836063512395441728279699437725521029166699746325246807120313738921808330390691928771772988309981782985050053390105802856832803791696897530502318261597446177530249127330522432559162647915042055375599960028022240343485123022210938067089668835580314853069775215663066754892224256995127789680812201888659817367512690236903329999298856322464515156062275891774964112128011170164429750041496848871719883259996950900155041478582028546754349047066855087506834193208423324341212691520984415549320792632111833689545991660592109538074075802039069879325419746059547999877193424701631720586802864283763190442607181388812870682230264064947231026260747872085139003011115952447641797493122306095542591126952001389038937652464091037567925383781618378313994627031955057699160491900811153087026107951870404767602189563966552722251243306876904706675917244061295317216400057754905383666705348817846583160192197626164757658622564652678090134139416600457892758233299249962757515508788691389481055458159703164324555081073653857895740667132277019475369313730789875509974858471060731564969362357398211751079869061345336487157405091537474951993845369587845589428609683443601550145435226727846886537090035253833443773498220923678916365608563119058821631266665413296991629907187101867111758453889346965861663080120061067151640284410392636241295555947225848840121792516084431453500667198349726956106698981375368912206692893061680400961487816576420497887475324083780339004676234116971236158638277788082148033261189579185742217743658791056333948354619801111556451484360211383249405803334438811065591272696792042423634080821227559959364687374489303447319583795476673194556865029141595236761208214245285232266726648891363850972626620497682233907694591890158084833706611276452069217159410867974158810969608927360144262753072260461319138675190603797133934674858198625196998264041235498282338353999944360735443699758101532643203222764129801568459580097212979569859018910300390182568891595645750322006441696240323873919096729448018814881493959728700391015041076735840117370658472450160781677826571855096144026280007279160784662492961125071546715636762150255509537734682301989723469286152494698016814733901622968197225647013817943389467936502468928019437286410876670551977941868076691770750445273155235481485086825081542947626081743300985168174065321106739296909223428421381137665050807649950251456055440899827895758315909130325773306913292899063944152458758474845197758359255393519566561978945422304643552993921412344004365635753336625283138554497990316043841116072779117687572219678182668191662232175811573675433295861033728471742535463182844077315991333463843641983444726600202787675215455048053074474797220934117492641858917930300932376645440567531938700520115303874592367314301438178459264795209135069591661115300026737634132960969435776503441451746917238746813383504232431298455607493924957818934656002210249833927140689844201160364972712210721545437398397232797820234868468512162129984127952582628039589690359495835402657990444784065913941012549150530552292565127397572015479285994172443291567534687434178589226134824901124282005774056947343148638108798957769879761812042594588784180477682026391466800500853882706021801739327245302189468204851210074093517703949357244907887977575808509463192902519552410476229340792270664265991543852834021197286691187392260205429091521938399593375414421502803770069972160402121167655138830534753689658899912948857239454725205248514375595195729770233311445167173467040358497680253527962610118131774783771047787528183667644710933192282465592881373473778767955106037227406761158908419387002954792670052299287044571401700753129755568114873942404891821654638801410145538720911425989357046683721707227798368250983069207024049916416381317028810343696617039933903066427874593859565736581384278472386166689477602032370877635119737927429089190447382825122615824897117599337441005195898761597680514069969617443213229896353416694001287169570438946200597216224754545404144964362131220645285221169568926447860258045707438290766292199292062142156657395537917631743610549783352848563738932133691955050391241520226669126679210468731744708381362491746608335970228472717530295674729947134703028525562249574386423089348226973371207549891883027412255866012831116924624203472908344432131176202397879770644523457868584676607694607157286705133469980762179646445651505521690696667489216881664710061630207826272847265993761812052245230268745705588641243316984542717413221649988989940383797147554081031451493333997235829648256873194736182274106960005759354767246776294332309528342075352961063269152007294355603237757069604853701817372895268526005958106032265115511086946485658632225417002960322391354843608629837668812397225471008806585746272154388974791195754326020755727036623861793759537512798214858038989823847316917739775463833996423992787917432790336930010847947297616617540118073617925136117331266942580017994962895031673094577696666448279561747705520934089533289395948700744141511627339031300037621268377145809994201360391612637801996556654142471080392863578789450105661767238380301147322985667536100737873154810216971710972201313811811151160397184315150923317122729905668517396476002760422080066205549869598814755393122182808616533175466363515698007430184955240626597322783891205142589895607444680167031987780810254665455358484743599099984490437958492557716996776477015875632368597044412629847017123426237314227246363774316021667852360761394351000698205168388901058049410805224377412257327039115404760498522048274918859238091980554914773630461543423192099410407117009357520187480638088303339433099545280261067455209564531662478769733283413711542166459508237894458270618577456700580150491197312264650131929661442725016025405551104988063468089620965722559697309524812677752260153741891748962549392610291229012378170885487509979989490716078656862907426502725301040936687978522933273033882162655820606382690743445417030397349732311666877948260062856601660684127678627813005129242973116558147416813836918934042314080777745967673346871122765108526674289245665561258460136657803414110285992099552324756855531128790897831778846930019807573445380321248353538151384268794545264818405976060637169480217391698637565517892102876473246835985489734579615803062494724080965010535295135393029257942564882513186862146425087482252491787439524037090645830857550838863456149576716203326516898157546731809534169049323491320049625865753430612933582575539616589204116324652646312448708519353426400214891907501313641282701161676359844848870737040883996468886530156880908203220380082556493649633119103976612136251153979274182617748849222371137407146455881996376999693721260408495800070844200949333882468972930072757441528151140194877826866710331815580949312374421269920296015991033868909464737416637954107519782006257339229023312067544830785433775740170611984836035032546875668229344690626472844342195372573580965557825522115125166830703280547694505931016465898502364088714402163394993296398558767426794202646038361744246677005481636444200808254225697331438934263293504998394322407519444551311388424322212733790681713602793026446835565949380827112122438028267980978266742376794503482464079831568614719155571798855604485670506909751409899896172515303018058918742466468355130733688427569179696015968555064195524605292767735928824750576829741733334928526548525125398667271949888753882110363231930205954599201671716457686050635555816369506672093931388088472760333581875486390084862244264797563058230653952292321421659339169541656442249415604543740569668671549200765929953887333025016195763271680480727966918001674305671634723768855884425402012042467657984771080407898899409956767158642765851735568902811299939746803988655834879644439748631945974110098193707143212047112216513973372707825110517300553993340291542876003744593553882321036991876861257667323851908008619401343244007412450871245628232593288953314048752210787403619595560505669677082392267438037844882284919456747798303492134904765796808648418658264321942619768837133862551411839457580517902018961293703063079131834065810112559917634277324885379863002588335867458376322269460182600040822172528529488699384693446344611303950297091590000329873124160572327279830168543190724318725058724050879898715031567027827899330487145985829629172825400553539940658111148315288770309617480343633164943684001190364620438674327546797987298041849866534517984011598330953581460426689144819147943407092750156996456351932169371855945876691160284160779605324852903641639260421533261148363488864512420250870742786983384229010632796370667017303381231861610128046091829576901921106202905822960774658028320340619521068770827581047037677011502329069733987081993917225096783651660060184833793626380427659663995598107710168505291156419543310817398293198813622186951411454393703678551427946879746110677778553025057560575578127073911733914376633191228001439746415556269995871601223344954013014747851433843357290790336256049774820046041610687605432821663420349668175319141837262958817761453761140923786636352579872194210235171550755913863623270779565723448223160841025218983109242468915454372728576785286424725825932787960870031931780551246869762146359537640966884711513300136222385615008489183354738506812828117618362686341291211067642144331807684665847644817958724732982430979786886739634224116540795184296009753371815744905827385519619041378782497338183175405358354135965038736180142630448411513915054786263192613540550976479481324378161623719942893821343918536256676801644708994419562226739870065170894523868816165093162266039957259718840340737744351622635419768585648109440222825933176787524684073633751078792454577535835148468986605780475268629807553089263586339922623849409254744073434254946350314574144165434284362926944640224378782780523113264295902141621889761432815039137580394897418558017354705685757754054188632311609492433153422143842825085532484062616922643729835263248628574371113658276966951308083731764676488345995199351309752535389975161497973522933825323469259617252664175950117589309593218179518596829042784648408261275614925433347207154728938554468530277079210577217850948273636289105352379858025895627532359091729958061413065687886510374727060984640489783522703845747438599782137649350358244402627301334767690628869747262409725291711457391582859367086134847305515913085254430218157051338390953825602029088791538416578623781682862675469723779211458022265969127148397943295027872593588060082150368266215920944433866764041107883456869501692304256975400098393085044496672529857906510506187916103515246062378875001541764383076702505208547738173264105999272131667037660402750180861880576604881907404932106410615574670057131315947167745107323276847416732916116891007920510533413167707289496712268185891193080363413883239476758580076098788633710321661472188009185850718421741760806810293635997752354314051668268352846094729774733850097829164311525355652260843970925352838957820095592618150474278923829113574556616447082951393808832337286612567239452505310982552019524972933953375513899621968088405530533308895931726330606093991757963414343004171541916055551184955511718103673767120821682732732572606458964698302009043612452380877076684676435056062815917406363753500814700214028537729240108708962971759126804625631704351510844047043812976116264183363718312797257381122546544153656166103206766152460915896934120288531291727821976659124175791651265844877606557603018055744392061065638656485848767462909899692762129295018494141706891220386758639108462606393728556089771851234013919406956018290761693571183930464291049426239595779337137559009584350572409103995408520967853586974195517429736545859292023787070553490336826544961586615134185422998768789339033846334618178706961074352024619846055350882486766896551400379656661946870888627083434445886565218506029214018058378022480989183111419122361343624464001929431021406007945085319850704886525063396650046732454480373809380986425489294065148132798243296279599004031645281594821545172751459673647443286642051415065585075733016530430558726365258046743136366867803098878942775950594922476815861058933237788382229492813384648497690976815221814451319245060283693086441652376064621948134950126639848422437443615210306169944636754746803752606428583831553959241200579296499777972248381851750297400863509044606807920095113123516847320214061734225347770374553419209162289934563432412084701808959716136127066966605370540514849250985140634120761189007912689673374788498391394007901193299166882324383217500678687168413950867261639418949741143737912555447939304461688144020780075230928805637463896591211333060571550180279235085151205726737772674340135795496161584379008230180592029465571367523544482958947465453351012540793370966774877815429371955279235332383289756704967720619207869776105796058737213077857899579877284252144196032944576113978938991940023508855120571412031188466219312621102430211167169331710555233543290097449855668697797778889939643950541975126552882195828531090675511873532690207207056684223235140372553294980852891312781501107204000244115192151004139708363273127881136139496487113085763382266492156081986240787394612707222753803897930167604679705881667386710962785797434698950410491680614242390369736193377523589568318190061787991873893335793431023204193006860830528817228376153557688300172647043462707808877280661817191742211449212756242148132475937802882387512827087398146168780378095700746641842231327843275486012743062094176687408112543279819338383537244538443314637992324205533097580734723368840231999958523757898187948987773576440998714402678447713352969114034057485903960703622505476585405285429671137267819725357173689297852401089279934085303972922780284250792385082854134095035520934350624213013506629468004872804035190495505916604372286820710995474759691024548233012991106558606722677103555407751401261042330985548415542766787326354823360891381814945988347192155788350734883034867789140975878041773125197243382341143005079480764133148947394568254724225304417433329167687488608325147740470452113953862657975037404137852529088737875833302220744238632246500771592390509857339007759525357025773653251458336032218881671168130425948671180469860391365125161259285518548632411418754965726861511873178385405810824675995982965711186101760850796370191963976467723913181682933628826365355381617591626431004365080821077852973840363942898563738398908554820086774157860419032114340772357390789541482636002165352860208607329096855270069528961897367286357157630291018668662048710647039551151956500874401412398612776824039503464036400802341465363088844470149602680848384515617894673245517960891391065517397760722774081008519258684311104735660060951339326343560557133178646659779242600442060871018346206934150717062158304426636676455177824373255836586641068824380347060993684715390269389100747532541765315689579769650477036470992810280753790854188177550131690177631404774218848005254498589296775083663593699012403665178968877286528304922964693989307349466249879263488717685015970366885584787565168821497360733481870575691186623438718783664252780478324582815108669383972339740920831819691791500460050090279612262092262230583444042580525967529417983495436057919196835033831240180652714706004108915910139166441878524981647643019038133641694348576013614752302319338795495451921725650570170683688093545039194414067892911226176121951923030343891522782157746421701250321796454130124302471141861988259137634039012414325350031830711060787053132802654720268416604942138279359580493237845646514053547283888578909493427750782338404707904372337770047437517054910673000592437529819515608053591369004849172387922856504739968023439471653202853108456482336281223898038008480815220593433929917011147101487985236952893352595211975127396605039548302032154180559898243419737148312431497921787151063271589020094063311321665181277378013206877079433628310258075144213727657398673802579366069432681534886902948812605113842164191026358574614102599165183244625343835352565706936192303305564604235903727109221228586172941357142802987051311137998076912397412306470607011539103972320628362195112319959986278514465502009301991276881457565122087121042771763877348303197586139030718777877732504269297867921819599777628206426855107858762859519536960327865356145026167810828243263719682820605253763739147073850864439979654411787632384156519157369487982657268558303231565412870327962422515409517386786806813951783618058282842927279321830917067013848419583069454851825791000081091846425001608461310633409454880750172490566241145207407717948233912143920759654961395700024861091820279287440059179951585825508485512913256551938502766241245852409109307476909453432122862051271939937760272685721246134201100830578825237607233021137069499137474385339287559541130242280410848581997338238599394563126595727530126020918014736923220279477517087313562223021086167349604254946299195540074425590885784943989370967902272330952126320956811451794364545045489870943266476778547186021472135047518619259935973962715741646731026912593701353188822571719572867814664590569187792070880229908057613243565358813227634214051364109720114089854817706942447381031639792704309861154680533303660369906908165939395510379698911046015734983715154353269062476814447942177416336435983128910082100033184985375953642160094346791871569021179880605940397889594113772329698673003893004969307669038853962035155665115132372130107453596189256076454692950617588062988653868881476626329274551930862503379837544831616624991255737766161270148712417103849866473366154659420378609903849812287966776012651550545597380163324778539470101727594488137762293421323694081376170263252978720635095935053147986345256108286933667239373494305286765830735279458488915306131564815925628549993354794213474386640068662977710979451610789641465725714486961782232330096650210547745588300966139027827549480182849764103090491442891810328241652822387081794005903950999738564580101914188106742646456914277339958698841633344151924182561524287557089094636294193800055317082555220902762027053058788909232700573610344270229835579387184816980159016761294562231937132673679169897734267219180103283851447708751398648568288188188442272624497827231242353204310015175633287274228501454326781356989789000075222056141195071402073695949125344513369809796827969755018537939769774141395654341539820363451175289769235360999073129267210580517492872124964078044834334104218634114528033448579195439226432556421386382692517975528568548803424403720780217936365262670050720441448866159955186379841839492522289632483164518834106170787797322858642253659841012685815973851681689634928491593241693328212724920854609289630899767946487355293292718980136885005162872393318246971127184732189422210911124730642494717927457028989840262278115905036689327298914371233939670636643647955834197900144482611385460805285965820501136415431250479338354389858344981892756025489960895933846184569751852025650247552761793927631642170669858242950228726166037866813334520048878486901634797456590789816306783481745704252539053429879883251486348330043331564555204365153412074013419376706004003205944311773493282625951172350206425557747256602001760269966574826973333225926315330236025493082032878730226874345360061878813754433530631716112652620262029042031897152255645300106271532490258845488977977298981319630757163386623710031844991383567963176950947565726090133599673813368734593848709474149610217117238795197202671138879777811027110257224708740126448590123667498789325885348042595690435643457890072815606048694115628653080948897360456062068124119349550409553799103154121964993604760249252698304306916223041580700406086212233108571933173654682453108573518625451961998456392841112184133772571206885727562676123534475289234532221683496045666554713870178869164495827324253457715562088330876544997687263159651454507350387940721082264866677016735887167053787942717881779026242916260464792347382446984718808942053422387020483615298369670357567838502315877963362626046233164319010988593779666491186571724840216751610114400493690423525208216336817418325403747651947144368846728647454167157955588502049108362095467619610497033886698858381081625130051232419175472223414750611283077421766701850198268081110839486303015002541051151272466330851167717079314955904264626111088296219898781383566488216561691653728822897411192530141680460373241947179799691537981829581945963816463842238913301627628791889774022235362513258497773797490634678306257121159301685865419790105159639990129306719272374066944048228869363463851638934469190861007398403360273534151583717813733425551702407814076418621901991240122017749481159844463699010258889584149952811208361424463041275528862007642357565385584128298023013694617468802096619527255050409425224924158137060702509178815613357575999630375278203663701977427017029529869829851693171685828205517259663143880859852707971663562098890310176856638212555330973167212761448315224962322489695687578878137428126254923964543829534605113360549893112114212160315034350482397035160364754318762335687229579439689098034523519259622626678764354462876706810196334912403562607410295821780498596577354089675153043279499543661408297159219870209842850033016926938195292363119002622905607312099099919726348027203156512263589452527070744349926860012037786143371698805847063583277987994729744297226838233535690849337870368135839263019379907225057314225007046846104131945584227064311110528558796226106743687351578208826379702538326171070250288105579107619054528138162857841648282683581713059327533005609954406305582167592633944747329203643907921052694380489084287395617239533895452438655810190879498333073705838806652051394039291100257192188046522644436267726700612229866952380092050677486718978975951398690958150144234010757054431301041258629773614101875217767560982279192753989824429247942659300333699055464930617102645822158255021527764918191440777909438415293666501107281420311126752287315651868379487505427280260404251539239722770087108858200738233310163087096676020816679023293582302145852230177688401186024874170024597249796962008820070537791437444956800277571770710235887382367715009414178462990892760463183757351941138169756405677694724270358975170907962228391956509769043802862706563118968156732434535835604129136184961713605418471199205886326185915596844432570604849519835091835581085683519721889601493402067882698406470436594171176629554609311219374805227361548256023072962354903770920809479688213072669305930664420062872295995419297141054691346869537660516581628876481635443229083898761385126923487458825321163857698353176273000026023690637141968247081859430471022908448071664535782249258483629632057494570286449282095633915691879473487758886563197166782955150466961629099756753294220868670495337300607861843274845447177892057012488116152374882066932373490443729648223401290986625367136206604786701024684004273544931776533031448128575622381597183834772068107466058774173587740325088819735349433163002870824622829440153465802566207859624817106326403929644088579725643697473525145532213816791639007835408018966798102623586927137751559014863716814925150797294346037669180989461749930780293229321919747489269961798896577731237578623348781557779442699717963249729559953148059951908000645741527454937361541213404719450806713865811682992000862312581223607697268920073959044033348696629106743995961944982227170538258358663530273080694158967900198924979060528356695747040074158465758619195875169413846495047853951341955489057860402848496075663599539444217171327578194215782111733103268388221302642848763943845417538309439478309028546500408824852868841481002237765481811529190139121709634745532447213072920945577570486870168147312712268261891025596367480714000959865214212732058904212516124655830563628337296223698962574739917512530713271142123000216185905580264183890415667605459930186773228056111064200895797448565773204435545601430385313991976070140274246886646135530700559295540066375336223183397878384617808399991283526414712216440047688141976720596468571228036749290371321404224306342784320690713101599281547318624624115316344357805001802947767563901082843367757626842290801229656956594443983389148742903044336757929056959223411221408864745931092503375146446094269589168784307409028306283406651292216390831215577463240557399763273043572789919179582401127313481750065949047421694780281199682564784791106801039194912358174988088876678876715438298059748182327142514843896387467611412360760129539012371801255357184431966060481967074000711493017198161196115528150090253604123951501757892989781177418958716563024049605885040988458333351291778962670422962217879086178116925457411278391359892074343818146604983012404848305532081942984938815829823731282802163623175616561536952017852082893914246233235033355301864677053781248599268053218634550987400275711962764745837695876738743554512543375330512917169397909368069141335451366577371827508774515999084684509908409475313885599689418389957900543861314882175637185129976049934850531041852635293424370111195989654253943650048793224460350175807627108686444525106593509721296255035193769633420517532748517691174000148635973226013013323354490219259930172954163428588036090123017499098400137144155832850752273606072905341117541617627720745067032720495862165165262665951179906097853103983497295047830142151987454648222587643668782195849583686897982427035763707725258484365001654200000343096859225851114154807071964390126540241536067860013786107774948906182783513750284274370986022170719803958154997527073558207375714589102276088152536903274347965773520299625303408805531918461936054913732374700696063674978340064348874877949259370593713993360110402409470666298184588150924263067389762641063672411633751089452317971565135149470414699211183983927886159594855600265116871199099637691414058998615128629808274793810081228055917495908318514847630153521886813147084996893774399764132013109536096203138482945482949720885768510832719889459426844899471490828619348468987031343848105903349728718591563287891097455271868717214325491422942801015223175805912431071779050730842761570529589334188489511444421062108352911993327541389295224787993359238102359262335982862416911981575351521684304242068568520643490054409273823304504586870410634817852317698773874490424021054040639228722959698607434542587027007466914736895298782089573835477744298428900242048846484742536014367203448970924360208088279895669710334881527258255485647336747505050605046511661861043939537577757840095146696840935620999131508822666972698100042551111545813275868815320489528183596258733538017597093658196381098764333524690941037448133055439103245252580466102568749993170109337437420291514347109270295792290215874504188050710191948031486067334562578095653303699936531903616275836070111420253215218359173116046301962813242973583240925020236346740901300297203381139733749274763806003266333007130051130480831946832028533327524451408554491049971535524950827497152690338041035042968550884527277318797476608618571822000674807863784326798938785125312745686394320083020015442455331921862855183057969336861791497035149257808294430496999738181170358171399463198522566335037780891085479093177266844370483338666794917987065645758926096271237905801388923863411255023807106256736253320813778834186120751406694902205649216402705123041159564092866942253565061294728686839313987535760810955342315508935144043786591050631722329927740793068386647656216857777126830644263722733459534381377640410401539242279932435464112468604964148187933887991536333075370902753252356755650311801131957923808592188463492607960565198703162175730265864186472768057916825838976446227716446502941047192682584404472439913189216428995159622852421042370651113897577652334752956790321652529972253436962274834201700357147686896361396099203775804289320056345360905850473081103406050859485301609390886871245101009546390734223747165710724384680461804618749460123504929933439464976087840033570616840163768366662953145408138414210219046743722524712454834115562007352270931760150680508193327880397905035845471665434883014541552525911070090628519834565524112695969948486520449336956605145839039005432437904399933226060240858288440302393639162852171662587995805948621428181648053735024926699468627349584706073654939269551242469555510241184756597996407887246763258843358092995360135265555896015551113020950675224750018728677664290433794427716195752313343083278836609503245776143120402375099535407096670720219730534381499241860117946433584117350654600584074791014412091831268438601138438103847975043326522293291433407711502266984891686656081686787447808955070267641182445619172536654976548120288560258928366679836145147866334487291228605624177641166807278520067418332718126492376990307590975005788583626852703065129706703995073690611032314172176710215515304360989260687621390566837606226540878585361579966717573009319562919388388093910026067158967617572086480714906107078030218118968481787324632149416599674429174735541776639653705398182197522341219853126148568254074362271867317665194683366420290254708055164937511877269255835902803890185327163677540813816486004216483072829193071204934162060675777973104743447425990877792480474661649234925501125355337637482020105273264365020495803727936255993885591177352174027402840073352718255079854115188464479111729239339903356636611498215162176759498027809073586729313689676142388767079404488531005008901476304123921544711842592268846622451801061352133868388665779603693933361352850237060041019070403247556587134681353453020255750187083635452104568880800833463943133850670399948158761596853036359094299979620509348164740786396562558374540942320376786422650293312241364418992160612183628897192862757169841157635097968504000162377478982100373632659814104424977064719267742639747464830531408087030714240532225854470962282365039986383915835539966449086620558480962856703227024116956036493256934852312668215813916766363314437704804388307787392755025865196130487194011164145851834025871548271127190366237108650870500051191847196671272947756428693549969945781655815912616062801348587379581739749186836162783776721062804177483151155932230008813491344419114340667364032086845990701401856009713592057686797813612997425628027985802539317567899668655511234256506799351703898618072493153697328771876613816305755449644142700939386620982233330415903064387332126608988978581043045058032543157652560171241809043678039247554966221270928142543874715972640866247190091284326652392321808013787641376373739334424206349524680290609856447626431268914065551080499549278924523560675203487655593701658911717697222909069232374410471816699735227605439681370657774921885154588277317754262897891186272005074640015876501748412225934567847230719905990028529996768916525025655246137937985339858624435051193549817806513613890928476122493799707226073764796075657372570512029102020665201219900330486880275347375363557665934331195938728554072600686811046485588312293123201687674491237917462843678689867862696617444960040722430434322687745480311184234109383734324610069969310390755672204420310105574979544670929564301854498404242860704031839358628922519635456657928415456315324985316094987351323956197485808251226225869411672827881043079236279882200174529346172707375162927633143517542408896037285561029742531397676503264089203818809018601662719295038688294405149571705440508237167031202762950659867069986130424971012278921719030180417506504316404000772116541743162950916700651971009348889626649243881876002612509452755671518357823380544598136169974878494894412586726723402450074061509133314656320824272888539513343416499649140455035714495421337704200106771384721730867734585140480725395820707018235759602973635822950125252189921215391390112161284285231764220405615874497678056685059724296365556400783129750901793346427837874196611610835742523119103501130512721024301038485335155620327799317937001691574185319673213758907625377005878911762234403403400860569643625140343092924227314341666439997449179264419724732993450670262721090613659043294106954088595391329305179526730528312392043540908697903096458775099305249585931419807231782890033029352046437034932317978588191040224029868922683083990951914992635514163797038451720128785011494431683044153255869620018510529691918877684006808337777519420694421285654784936021689422298504057450484989349825075197243649702414612117776806100450406361421822061436603834140380156233678711330109722709823733647731015936295844304423321595075410873923591004349721265970098608064257131005588671746932653001826908304551324252634148217108736177670420345636277296862648402933940605463772929423301454752467965843761637738715369504594397945602362601243258292133149245401689546809352943540561423451434387123279652925283072306897571999923633590151073043492254812857863968508640826871998542417924157281589136474266876398441202631650272062782266928099738012592816825245357956551159514686754571412464324867335187146516690047328250075823083658868460754742630498345518519906232387834548695036075195106126861110252922223133558921285197276235010355466879245823983142434310161961723985342208873521866539669459955577323499698368489615210556824205625165172361758918324613004095184936064046617886039638560301516116853959515319797767755731438256682573620954162800897312088953390507624991904631841432198981119006458433279623218433286085200645375894282464889586563615856681636185595458323271913477618892055150022350418334386637424664523445666209245973733247710155939570794280068876003773592205599270587101412393205107884212930861856413244837772798810810797002230029731128188116885992050073504637076003716301177767318316212207507214244308342898181183178218900520835507517228081414334539454896122200349627193267939671311169112047821815664328597119885426119651872571863380295827606909014641601501593766806687286056640766124052126159090850557128303052783888492543479383513491615256351689860245436107092229345801813858175585933827329729878526716335606507547085790632533602912325420187367087027217312218673308526830895393401173597762094458446796175877269858404280594367275190848274469645474355203932104835608525355957988480591283856889904080658419750352112486785951166017752717950794048605979064606538745028633579787336403509550910016929148760876664679986476050011346603261377638847165874513872497720553184363902880372413017278222502852205217480606884424621795834981827803938560497073381573327683094561666739424123259466741467486999929316310629292610844877584397878800711410902081992926315387861670622798847026024480470374313422451682944108543403814631309629172189682426377589379521696013969902384316855970573410447377196660264020312799157687269997247282563832049129415206659599203159124610159502722314745212792047718895998600036834972231489326245739297624814034852225435315317400112254965450025854598300910467736381265287572063254194746978992537909956249179226170563002533132981760385791692226711107213292396476202552252043583642342640774985925996717689600650995747295234400333056005708122894918305274231489763983188822464042518382090156652416247711089771122756330900853728931530788442937784693063019137010944535332730650331546279023688045504294201246767959388537703850698065037228669173173747299764093095370997063180403900398554892525733264672143186415319343985282277052645701172894895878441279742089448366800049254712175263724633702150430872196554946469811215980789599433040924149461755602443152225585675168342502518906706946543136033442360556629313977656922395604518704555700007413120989937415555727437732680597384673623003828573907723523666966816361691986259664239800554264284314174083769741088763204631619220136347206375829619647670675431186844922537934151835962372298556896604663415669302484889594426719077021294060733594320471749098264003262055987437553973741148645250409767383922451259194003502754438540874533279461217119252414223708969035803457639263877627385920438893235653760295307873003168634853347844734404499498529110108702857171361127179718742113063895808339034071208103251048182570605759000880808412117086633523154656791635096781857617989680808909346866263667072821822232132891872656120956005498790200901619199204862597368037460116165186981281958373511888157634809769431502070324642980653938899871769426101964636547937983530517118429999220940575907745303754267880626580909664207790877377692018251502491854297403503330817516849863020839294913558905424769125388572897079237172914717414187119517519563474660066239218340783933812977164833688512682896882056232050687686548706147748933013406640924000774336074353705309643421808681126648701160862741479897248300282840950177567347423195408811501448320870472023177523247642012636058445905052291197596349650258138434543373635744284202679878175457676971864672285010078053625520999741143992003536934350821601951458507490608749161102332446100684117156680607908202511298839201425667388716743402773388907348997081523415442441241040436604599793130197110653136933735756473979190177197749222973096901881718466452072007036241781576352501976476206677311625454183413901591183552370409716985259645669979223258040534403478819319023516331564051919035508721137809431821350990923828245068112681844345577699259718383559856104266217263430254421686770197656626078575206698174676526530894369133265733616167920379129112061354633010924934548387467728631978185462372274321282784063522151514115027315574158787568301313954137316998356983994080693203367185261846087435925219420511433354944770735546023134651000232544246700748295110413019501738130836179853048273565656463163929160061299452967875505059867609412952680986381625123435602991668797248800517199360963241746696631285758871568679307707365102632222222410137468979359279299856956176519605547797795640401095419650948453201365632520868857194482451569116482410749219312843843421318787832778164362578701908611096200076123035267958960868662090990769060732151338786498666519826671634702012936255190794546866772846951222917881419855216337032776743837895723001930594402910935501353364747676686200185949412835976272287915480423297352259991893170628766765799076440782286073040524494052223323165864358365798787899780546747306912619143321256739775663837475120977566819092614735765322611794516968305755728887962007775355230239577111106509807706503551004139602033477681795390313493395629635683695323552298024830796312419735897588687384190092225467119307467865766940715094038725136887422928177601823920561451556733441560213586886042132194547422990481196009557604192946405660186434547005798662347074488034044610103716494578520823419773731274966412350601516008016759130330109535586202022308727017945717371488831612870999917653839234067444259110162935109287846010795915024888895562696831153252807292689230637385987636958312794741261738237923874276543816176433986023411890391052444506110904960436346643413915776066624164780832790094519038426113524019386122858222321609844905824309188952755048463738757940325085705566931713720039278421135263339750287022499819780764096371999109141882788761209195144124519689902905992984017854051557505776638537829589584367915702741387332313181861320021991267419068968766237099451182645167288558211156794169264057694295673172633183508722034572181001957671915108322722746324513284736089217118870018565007456502625309699501828145586854815600764284064034858705226517773942944959096033390549379337614721967390282171774237949133469595924920194206196725874587374036404208299634963932103849597012190335155393642454017777801282748874320055538524565151899310810265279395640918011720524118318381351472763228007591597027872769272765911608014253652178420870811039807138922326384618860511321976501712443309798010441720124466360896378178943884795496404774985706068830063201120408373181250545884478219646282415753097224917710708664192650132526863005309240776122967113152769789210987848885207795880705050537054741276697032281933382442623040254042351086911680806226285810087828098809521744103485031841737499231249005186199208579539187294900602443834969026559324465312818101470310151335229935696001590855085182044108994741358782539504796158800395310615620787720144084998903773587877868812543604353186588224305776403767310616654823806154158238015145173518204564101323031548453663805980139565661551459844059429943539395874562091251921004251728327501573413771528842398660781178899798499485416884864949806823479726401001175159515831015511163123894457546230028954096266866300105241459152851203159578536341654106421633553229617539879307255369519671696065298001121005192890214298347473275212469001955261693431335620226760349302166636707263483440087988577683250092976449167727864004137209934041850676389577622569642365231201804738039222757597337837960039567190536803802822614518324613391363115337232304935790571664439974882478461216301207807897059072504598054072516465938156387385054012205556981241624763105120580309935304900235479891542253495377421315193040071250851899754150387628512585150778572872199123140061962764941168499284760406109952810808316791928754065020584962906631248237646400641386724412068605118030980498007900192228116452654357649922876128575080194894151289768646698837858336828259251405730212165383819536434030397555028573195747216151330234428352758869770674555100977339896757386451583025431025947529824294156097389572569566665565249695084742675702945598434493137514477832444709792388412112321608251183230192039915942488837102595129395712799503065370794298658092399623490598368300406974235975016646672797059791183124912790676888707797964394535112626486730931200680111698490957196887286769337532571258844159065620843391287539689218751384349512609405893950278457915930362997209549456091262945103732646089978082020417814108274742321341530620962973676121026940235124572304229088267954321537778999004193475258252442886335548936387793252755663784217688659338143090216353263045853900884158736063257725448246146328352431020270240878098047355036575970612863457915898244615161355029197093332161047950614801370756937994032080746950084129072612105606047664606109688999851133430989426346698347357536096746579787652625052919615629838642876600480753264446020438347027607749540442426541329569789940227917062842700242195268076349635153305352328750183367094378484675989744524597821856237814208336757306763696908479522876450700696768066626820616828665179792457688350144976226193796639984045844111431679391978125774066435758821373568507382938132563195377121299150486254438418473142582138684806624223182907937846130123277489349639919392609821953780421285802630916047872349178269168514044137078052702184008974717796279377393059922683157117099948761888202520938516554679233636327220996281269357630164495475902903107675430273860102587522556572509562761518150716919797174209078302402608416209757787276395439708859646186617949188178039086737229605876781107193370247367377810572593337843951321957235789191784293822884633502549582920145616274943549017773648089311079726398878609998024238645461552985605547034565445968526850036344362808456244002251240313618954275296784190053426365186142645618837684957212024883679192644558016136467605669205054742333210042413418797061227392062125105916262141088498512771460521494686541827903462449082090231458152422953244817683137479563705366213129681877653136130296624941328694507127949114089813261621910692796876798550215463248338263490860170882090134922294627409673665601200573582195794762468681302537666779858301589839143495010405343979050219283375463248833812429088272929100370295226976923872014496201713334760780816832442054546796446276707393696378321954863839977853580783736663387221353266664907554964050832862131819460537097364903696404236640420511090702923484542524068410168162897954279060198500084487357792473763504541852804480318376865472119748793978664712390763004414993911273784703934699502908221777157120635073613647473258285011050547767278533248515761121409177634332647665538127034744436664638226654967059853486169620712487898141913470372078731485328939523273469696559149198657575128656748820948125413169823365321182125729156901048985570961936502466393002398167521583563238269410343553156565327414662815258750852080719113757204250587309396447856541651478420060398503567776372127718059669197417247742708312440986266922010778759523899709694298996702015116475808037334101438229005093392826604955532697231376771155614937300401600072045540107252546056810814891214766128142777193437888533346317968092023947294209172831060597411536485736688723045460843179691256888843953912110021111621727089087312764427234931028541005299107790632906975580240501775592710563002326665817753383282397754507449837592934043994700013428479282329041853972634384907829341611269504873705885351986114586189952745909962893074859990931389004299733934300740078651229282571136260202013579744824390174148777110504064598185997000075405549772078205155499233017230646794252866027403269427401841202579069738621625970390742394763806419676318274145836054100419092745304498244071345912907563203187338626732284370895921378025027356365974648262969699501807215130010719961578983679572084514562813248203441682416078511197380079694921964673048300388575077733626098938529478842060611996488159307725742473255862845214190631074126430370877391052726107197950349840754879011900182716875005388006187558448974060535235258712580840961630114152288420595557784663332806010921907850883456172967284970383261335684113800197283829339328472183615304356462354830803066287003139954798062120860074224787340222639449288619453584869475644212243640446467625033471077663127748723974329211743856661732001296753345579213807624229234946072545625162281337281815872968753364771116813219691585904105853226941986497853418827781492200417888991085367820996540617554379754308773286890696612643179982633825959466055317475197831944474590786973346921498109047884645082218038666322316703512722007521750150283063905757235166800084657094030226843371329777281162458927190850633183602949875568912169665160090354102709538730805069900122138226772951013512507682055494002361188401371359377727755481501573367814460678146381982341993568988386699578808691557279349546542826236750659636441234518886766504112613623281160260248925159174318167778290165214449069417326504956076513519772009636592957889725788347791358850016180133644663430495372329656933797225371079857067552790708931053413164911766908054433689630469972613690357189342273564151503328720705414051477949357815143555255756396040704668981713202697638926744696554950740464489749789873145278514783477493770421697141373133365178418306774272350149484687409410187503299340586057167886869150775783366667015209958389593462184588588724050579348422042454087211839415596865829581290677550387753669905532943615288728276330892087018072004930446364065326325821845065587578221143178944873732209219011670001605754601520361829550667840177743568220355814499893347112061382378313804063854350638271890372753093138009603296300168048201103600728329339132994221027124379505318633821011079777963410875259626751462477284207195636616995780042175147283133029178713363310075094706936592836770412337694602260125837044704215010116259817864995686867062390637660072587653621331938226575511561639318364108253281576581603926311696829154897968315289661856466756773806488120090899553199832275076884798150109181302843158281721102996392405523949547131232266544078140380849087473412729778758988307493736642380057910842844447706690205657946635207205718372640624617254502516938818595565552561376910448138920690875744616642724452289568616278782014113909983869148364989744540788379166697720506932383948144675623633186495149106851054629068491533955923804087651032603938536490194710766153935883976640525077704456198317787166346138152641958480371182728642792126236089091885363999524311546293077103957706069522017898915382999292569822905113875545622330355381065143746961675924659736186288410300245803018353576873492271406137876466025957040137283807771865161678184143725063196699620014327976556625096717045480643598633149212262720290888285271759444228499775624178206983629785851352758861632823983921767023920691069729377812764155412859901842447173176246500576684932926688042889909041916182249827938721699267720906194921583895153100820715307306705144137515710065081456251022116061895993005681138080363500432827533918271077517868166892382226893465212326663058787416126914460048162635268653467223140585838589486458168477459989761175871976732596745477703089517654031266470946598834029976078087192993756221526998844612785107315345449598426538572236927112139549426192008583876133019818342218364878365455006479484714807794792304249984449166072918380513413130902523034352268864560688816294491849126112666536250339756025401655214395743399599048872984760313505731388765187521476354872637506896290333102689599208775053410440111082309530231233908432612423047494782822608601277390345829409972926210138421283860708546163769599314219911806115876733593361971895047311581656259272054102396263637400325398076949487623158766534822062716975159336961767873647874209727789701781863316631294687637894911436981881926514070861343683982568048693521803515179818578105516090240489336766028502344310679240242813578488829512736901417648276065740617373515930523935758899587474846755782213110822232187647999072524990682413899465001605928951043849714021862844407356232963222795332015805921777710157438130682193195128017571658822518321278352527957142291189351991831429274969233757144746083195133410266823994416737217405848457463555092801266832575325639653211673185141916577841309514380597955093968317413591721519020520767308318625379514441564660016965701285478393880312755134943388688691528982757376745694940794731627746383930866060707257948983061709840961576797587772229573802545124405153148564443759172514611156619547079436011747665241728014699666499775683227506312381074158288452302855541295271297221064624044959378612041085106785599298929075132254461318928105832714926147725285811179993664731564374826599959530300823594980041202512393497894415914832611496585874811547778200203680671770010720162065998986193322530238665656248307872914567461709085867526246696527241699694827319506191849850272795180378826822740581046134072478735253471418202254945522050384523064624633945338363163220769957115410771977115334362116643284913091939491181980703254700993968083882179037407585020977840814391536124191231422957241316402809322385843964195545428257516777333129448793152606955479224091578841764620747175125338276853163207713782945403499531152477357717594329009629950912819679852730932648647836288001898729783221232428535475110284442072998978198247247898445779180642750513721335176515123765455306643523323693905974996953900096863181151027067001664641574399565916116977949963862473864104693619768183148226500880000641223606042137790518896534963827118805249617036824721838296010337711398637696627634019942977444730397547652430374550367491485353737299979819757482237137531647308087079538808493286804894696959215022298039839977433313180914351344712222612020343061051312210797877515800879890483930957931236002348238168266690210408796682415095437064191595594868884161424003482437359572120713127346164144123526764990069552618188533778409298256065267815238592418463828287769624998164203452292919835314693613366904660097943102856374113223320168900771524589279653189758363933925980925688631124159884762006962262434943625055794182580085995513274010671069598529947861784059571892290815772973364719809329274349882448488528652674958653444251150417529813257381770443786977491603540057352102734177249004106789736879330557408581658690738723661276169803940525703976677003062187880134221554056442258518545846872684241764033813272500857032808869327413277428512339212613082038127012772379799061901721001529327451266223017758913453633452519868819415691798444710666574148181990856022941564937825620576978018517752620614860358584992972975979145248869964219105324018363556141556420224319577312031730078091751552410826174839133624417385969497731939701118838617584330946944967966640514488794804462654954996127590547015550781070367458175872785112841077154098033970293203552490409562186033122870243573907838286934299665748639142610271041403528866684442553526899534583236831508842561076254781350500017442151220243816188300452088826137856597116026455958654556274202671106852183597948238901592408986384973872886872052267570032735970753606033759543255308523994673807520549617148787406426498958651751473600072080176671070472921471953511566079233674310019408675293797060856328639774592488871906824545466610043380317018428007014203608443685140015059557970449596878507193140327631615994974057728824847604281671038566663494719240295650675823604483258186344515797579547285584199761698302791589474393816179343426473115510283001785804212016990547533524916570678007262194480812712520439661325421800731557226144360038528936174492461090288497181118159036683376654521911616065476234892357608341062905359840577794352066951153157910008268689045806670717785345313829823772001291396048747829920251902802808288578978291870002939679135231802009348278063792355572316132680485375120826215311892695119696298848019828136145564444820190974307160778577380725946394724073336622199284441478202267278830188326211589823058551001017952848237013164458871304808654073558508779873577442293185017907367470342911730915026130232779221807553899288313367419208146839906910552236297915961973473838854827236513825803639046723156576985718728579786803383287495203138908530624045634825057349659568260298066890081141330578128403448059487479418420120524813970620354508908988030535460369289378002736015337997622375935152500240277640559326278186056367149444164948810315842319317700996285394488549909643254226751472962262138296067634421898838804496596250335900758055155066864090217428845672761919162054181984475438786102214777745293567327553085087774360660246506352741353277426871697411270479554741825066398443614403538287820083265337896305981320378813744938090345690926925852885861430400536661349373481210942807517180139619425505820590914881017019145411325333583917285207971159348765090637236947713901512839057566295822089166368309752049446810341416213778737414341995220657103513024760458917096347279082596753068189801973905422144818914066237402645218415555627111481765809630498617431791963847546905240406001340366294609761555529039717963181403182256922277426870629278874560771077710984614446538024365527960448833987657150474366123407125160637542174374554708276618999877609715767029060344958346860674696772429710891058372498948387466743444895716296671161968124158235687742293172830094231847565185466441444067290669340021148912199073040014328821729184757403232227878699066013796717355355780071992922423494152822409965415375959740536248708625724657418003538651497898433056122326400859278107024049524962465623976891802199065277679193792468171977080611461798236979915418942215210111445617978383951523781347836057214310470126986485209293572971237169468066343636707770793684338252493589785313133277434638426877332646468011326989360202933202206261562969207359495703539264752967115222312377933191125575966609043904112811447212995513026875905982385193867985519856700045451662703723290843336930687337410485981218326275553353344597689592789053818291091152704873508677683439363177143288542335190800726360402791774349469526390797190909157138995903592433021975128228233651021787155132518532035318773644099635118188641020479451372376014673466463573051644815320817730355203303876765931178308501169311091699542137549309890646703691964787343255834761426612432169697625491744281019391233887825849791299123617789305430190274458298260558940948144031824378043588790084265697220931736200463982189582362050821177786997016750698840477651759300104474125510632830216577620612598010843557337679815363342427065872751695359914153719684984639991934076058017038001123002001510873232500771894615315822520111001901224200660003301851570234828275241904393339909404414452922603763518052937531761007835167015756510306596568703051978315655037104212410781100521269909151850896400386384010877192493809974185931089423722718940064986264742826306250277039296373841803938156759902191865560224766449030475802237703612976925503510271393890881061744762692672919724590833061278709172041773498914547463843433369550451747797525843296335226895789555207888427052066331681596755567175302736858165136884168444660985938478150121291790651078632868218268825134615724316469043350597176325439882704542113728508171178849121370217087276175011296257895527234613766218843049832818678177670063376591037019407138938572129638688962266833369264052733152734841624777741809433977209438543773603230561345203138385555273851083271218444273840431754503218817530052835669736474705254190327090542267178314929460161378807836996226241135856378549324420902353005432115209364834767092753892161599244257038619683338656929408112349468415362176984253568698362409548658258723849573530202017764759298302825019379478951055998285821911215824634204732266544670339158237559525364055636504783988228429278602366570563417118549348430945746220481336026179728947949906840759505978228754604351907073960058694075474499857299778001366976577343334641903167171388793660730366425964951448797233429171387354866287007050693533468949158117135622676851055280191080166192313018217272557809648852842847228953670874438490925541350500258684559227422171642827971817807198888376201239974859748437586428085959028751054688897228214644140636138946638204882523768358136742743854686493828951489258388572156942301003517955122044203612258664648344082427390566825561805920884599810355544981362068908516790006555560590078958382122806169152864856755638942957007978472791601188028724514350603242322386546927165241940438665681205616044615853375981194369653437825390965070921713168806793166643654458209473361522387537349774353873672094596199344038779009956839339528146603556044199598189893953763057336499357245266521158577180741895920703780161328851499552245852408568296068415261341298988204865973978341698505013363621111283883487222560869806651441349806667038659948897524322381961964560840547362846681857639701282741911867116396322175551867328029135752897075795541011772173416882466794366713483469841741499168286194936214151398045037290742594631042346543425551211149518622337117601092918953032769599584126827240619308862690123685106022790738671645052837746637783341145328856942328760948244219342627958130855236854847725602015126749383487911184265675812164216089517123843211238874556024527902165366925508455206408859610559940983475057219280218215129158162646329012246070450592541447478002412211379414866542112577102220034021609552178719727176417013681194599929233970394852664029662625173606453248760848423719023480873329722981857638046821444632569667826572939910488472764129741234281397936256525110985820684862757063976013428465147277090875472954762616795215053407042732351760014921516382394155821037551369742250400865177848628380546532853114848931941000546879528717138942574876703203005072836688392667219668947443455122013543141003871708696462229001054288729960270014662136986611406275310894595853227642175486260596095178910742029062982566508647526690967479201670380735337225492669284453368669777481063936939856865935361145915120003087716967366971210080734878092638154185701163287753182034305853343360661849493148488074780400080224061760424129857211659112158801104419515158830211423599046527888033004273657663350590393273632983462016675433225221480147702907833379659556198521138255380103913913521278790304819392101128724310570027779044827348963073940113009543465653617068873355379551072373102158412726011926585706632896201562447898840127305191583446143923845424525236372445854142917312683672807184674239726918675217999155639035755883799150536927368498434647784088274342961229253184297477026964918488499592599158456439789032081156717830788030726273086164851972842548944061342842273098634010305591580313728654686590447831725883547606078627559005672531648336058799646596256589745952119791106153316010456833250239856129840819669390949428705140081097134664110615833558932162252866752670628999525352221028112136158717692321866860837238306545887420853711142659319527260731320293912810303521651159250199720504540457205314791231656162215719765929673884345120679971829686225258001872413489855155268078791055749858026008227028494176425741973415696022950979934743796022546561189990765842912424381263500694224527804966208971566765830269066212633212164721476135438755309256900599126978276565694968686684778456486621511879429662950333588644328463512592790717313537562407897290696700663303402206676536384900890343668338143206076487246651946637180244886213365927637825227973684247310385812976081193690759691061295540514425307122077766848493337984404301517585453043966638804650220206852220221215678336635670676249614987661212450103986692458452177493734519782053668736813653612894471412042603823059159452154290172296509888119171447218573688573044801990828683365677429759330049924018759951184271354914453660954066241096936738290523363029117455538497012959420285043004874730499677590711713622784290411019232794217524493510621649217887985612645937601872024373985026961505497465610550471860962365725015277997015639594367248930001149045363449687439533193663959520831865845258006732665656047687639884265817560912701944383454034550851595119280046686551362748393815537436906324995766870722809290374013272401210402653404018490867539873030667054640560788373262659557678554304949390015504353607495890250738862037165674653207617671309301837609515388221102722570330703969329903204248367037730751095795925488051589221677656876946236130607467757753041047660567218675949248958514965954356964012750675626233314212652353509175631370058228428573704053276837981526880190370344814326187927065113509236448119594601399952016201106528263396831672664860766206187659188229888123530392767330944240277751506349106579620062409034704875924974752405721834796460482285878984780840560926599085039915163574112872585419463966368481886489610723087277125297582542688019151977991652174425496854494384942453163913434020684184280377632662760340944542789460056428258607358588043232380560431985597198194698049917911336355975094909192515904313980505046894340597427210165771433869384753902287915573178725381304710074687249200789948288765869245146218937779701501847757266776884510943593194203102162612021133357634649734544317545544745420942059275707959787799139697405417602630560868639658815297157763731639997695317699530690793483622728777140201268824243669944062821396219663686473781956908395237414734864867720662036385687670807137741655742003696769945992896470521141185306338236324553065807581826021728502774814120368859516314477260205128281518171325612485460521549199822356249520937662046639530399528853960677507588440792189138742090549075862296816086614335912868813266891842136040738215070471930360511689193767475329441911222480449643084934210361015573033766811411177640572577875299309995254119552269047333799641165525126425018801560056071150577749615805840137680118522514034836072478380049395951281429802169229816461449023272635765161285391819395548348242599852143217670857306941721731134761419253808900403552023392151607256203447404706853041777180805307344387832897166760333739731195231922913157160383719446721327822772654538595747413659897903739274882501648151638508021344424517142630357087099543225457811528747700550257653000005444323705161591925787042701318892890869032263543486209219706725685443482298087276027360813385813239191528159141751880362761809944090933809650102606680119814557020359648377858798823570143105991370035082775197295601642199594464625980109495130317697981179065902339409161451652627565074883065997334483955718001310205444761192538288350199344172012056258339805776629548207035041588832145724781343533802674357491972217437439284627752615869141650698129228031346736152669234104591888977696623394673118228633165153797873448375295817058326402799522325849752476650098678801589289944033560863314727892491218691673401715142436136840998610543805124089909224335219721947868838296928413614977873349768712927790984542975051693610025886693298272968071620687152725795565388762783296255062974966128590803703364099177453689329088968255274901934299179898779080240089021741441901551913407894631687512742739105087195809453053252742491507043797653356279434990521767111811468682160873505841077346673608855134715263809014114406239737588395263411903963045283746662451638147428008519789616190866554193720555534050063371217719507631795894564643748365231903147175320495169017759298791599045422437024572988632557852522097097359488980082834595555931614197900723398486356843000859461987998418260733151014783614780622767318006022913437040000195487376419035830126568399186742629062716902872312593964194504245130342702546122627054856742550063295110052467165027468281952707604944584332813912929119262950105580788951205633385818859366417287524193096467604263460297515832633415344350899496668087785123272284506840691308046960248876714814570814986313032451801225766671703282753414988341607024418888124951152259267955486609230055799001320017564525514692809136536490763540274711634170020927741307530662901544077404235274709237666730353216538325545588328653266185897386059535341342088376580647641917269122426089604902749594828356240253116216088557720615244694691945760418560683971626111069343998934075708176829476468226722270631906848888953767091460911506403827771408805636132183148701248668692963307175082739213176342063456182398857974258566008550018918182134411749593919560530457365425498051734278214095162809413651810802918164347667613867896991551194947980810010983577756943490296261789065505882988197607959643243440580082579379721388592166495619306622513294374467340997748081447656766914612529706408994875260801571416201404585668132085581796172421195220787938053278598910876886241688993629953753540928983408813168883843894878485461635441840107872062800366295061905460255051152749517576718103695980741475016245316677868242004529812886875074544683795811706859934283240070186832314926538592572104945274450257404021801228242193139523797792060197997800559942073813835412113223030952772817829955980263138540236140442147408426244240925382779439608329459968313088660407053041745888613229283623663651930220176424219370537553430355052484446781644876088539365330055689724183959585410443293821531111795901462970395167134050101585360068409956476315767741839057930149452406146157577908886937149953787820519362428752626863197269047616809869399524095437452681358573658981039162020333436682895553989562222390639725673978249236696465491204958209956468622798812208341327802633432153855044424412813986416639981947488035573104760392202307615764456945404351206494929181583111983156211105881662973933061820742254844182573253672682846746618425191677770069114991438393907939701288358476435823336945686973575530670177751696273970895803047803853160762715718192714134403594679167002056920582495342818290503306896254545234654609972387530300562249214559866094018540268554018890108804796192392675395953149071687865514174411854078800889553844800702295066121335240341958821684888854043042344149120271946771857036780368216103484768124815703336547390486816466272363058520377555546922540959949679758649576051833293001500711283568688069391973801031908291394835731560889121564555709258288894437961281150207577885325597292792319183942894203781736511010182035618650142143131440468644911642862931819605873581848634722982585923283451104152076509679902267041474255206896979919014681194955619543153016226750183868284491749967534927786492987160632123849006345918754189927633371534381083252716993021452362005336839436896058328653105441353195533148753587538462648345069918855210583205463875812539484533320306985335178113520035347730580863004166127835844780702809132136343051550784390983860400059969384394664913467858672174847345966758451846238787666905074712625579965620781222982487437236986536249477228453941008566896240600686071180898608022162131888440345927176705381256972578324223345296916345690142373062625993117832216436296181829704016685609377053792544308775340329420329878268556974770613006491854936245870707829528622617068857486215988372086584274537211250960814320629580526920911103934600501804774472894595522561264588415008487134966313618903628683114600184974643294245855285648416984533894124672724765190043111700678393778870875992608217139392850116235450500261887305696937959035437076222311564737920196520654378130277799976497519809563830530543139679834666051563687625673339242646125994398446514319676639635142432027311368416367380265782557558096314535508756281141956396675964648967943116905204738841300457677621733480845091654231792475904248285134785024057523402360994971345194755634703480116528692173756771693971232711576300835747248034051753269451452244037146950446275815033503002318457098196182609987340195139000771333807890278604147930793884182215496169874235854071777389452326333911407444505922692715489428365511719932236126809517933946800998447559511973531512483294469528497745836023515834423603712717220450467974877012464654430351685637580289558267847778554800138737369489737589778258408308302534698900267956315144767589788305086645498063043765941140945510671329256916080835909766351706217744519739576379761600694144852041785619194617233537518928261161760472077920552582748760777575488964192033111506100462219909274458709691749123675464247237111461305626953848058381270359100572619996478717967300543853778410432845903456315901461765633964451682870755518191454095263121685779062743465089931190909801032906314117219268782740986716252761832122090195623951287322468338322134786737583395148920792407408426878804638795036494918184744913542758689790067230090923807011599778834060770263027784987685635023374492242327357584124396463381430983154022072082908737296677104725932629030624842706747745967065020668495536107980863633700013865403790272086043911336575538373666059146341238668249624542217271868390642220479532246423704804207534465035703558021369161026697497212519225375687372622735454255241362415597703068289203502880727315368677955654538265470237209517967183943212102665493202884825938188784674048394236196359215166334794027384593507942116864107919555065648164487343184053125615328463001851189983281481183795842396017225324319134857580679974793467765944717585330295397445629584995408079338429463165221793548411249313292900100897994146068484028792968333231818951862470572149027434614698038510458306098173029496707436962533052493086749957130225567131146402224343162325314958279151949022656495498666223279755041412198075134772336106251147729720729307166116107106165042316181219672389889316310850716659580144355318943996700694713751400370146215613485581835612145676437775218641361869822930905909306446322100669499938924821797787405421327496638346773880149632153627696889691586129512536690015468265233511441972284854311085679149395301993574054699246307529895369834097695464623320837744694119169677464560170216104638291176287296286966569510782630837979516085041057703124775699766912586190852597841976749300437135664614806486605340228095452116762399845282194258630203598674306245377174856322834372924431696682668916375355501447403113932103067048809878123020304358051975573548517086881042629677974847003948857768664968957016666923504648354027011930421984793592928810947091841825632975581450155888316008781722945488930987655657093957344110169073409255966890041940977773108285053463267562716218356254791076042448725087416301138291200607548454856994415847723026358241106500141689819597690977818315840330839953917446769299694259846565531183977466747069583778689083970030938023666702190540956912001597986309758632498235736357429319849914051406502535971527730186475184716025615286270195643210567851475760551347470292733460141563141072943002117910378866064779665240802604949542425210259617918851143636590620294408661035899018240315215271825973649645423153597017418508155534975556553901406666772016580992829721296756973079149305054450192097120629899615287292261736533636642947197414938094347155018758905733746822457410268860541850209580964990035283181430906602089317241808663471058240297282028108532660150011222990248528652192434243418326465890595274833724826392864830309512802025497807146581462449534377827310500063098238544090929391229544751782564229529654635520616529568816583681570926115370953023765770519769358802274398581751138141871986531111330085330122971649135094760663400204365827568005155751760914146251111794886125789888849312450544163982202368496157629712291349313231356826928263944559477291196423286998519204896966311685048355210328678649816690767013993289073385874214718790973933635090619684989552089544277734519280149146800984464243963399282851092107601356129312512585112292642794859595013628367839190089465196630028356257329020714117374318926743580615937143188969158443673128902686819861981529330928883757915673697364382364325973001998587043141557880079576649226350011725478015361511193294362624540556023069972252125878725194059044451645016737421585037584857440491558628053783107053330338336664458462120236321599504848122312903312201891189487868126897202657823765742048115346921961097361018637755326140908499649865285579174416654671688415559673101585347141338784325692325741163489656239752826281233479882312784510100821520125367947922124944614110190557418327645827883350191482241706776745107666603620835439397887298755836022087390279844430626156124323880916137463188948306805172414294782562649537968866544818885056125144048871845351572944652063321197365067361565702871958579631088123114596535409006204764378051290968059998562208780789828871181954297237626173088389979109006977508672302845940191100993640129424078155927347181453766323388333822863018244371765434654088238645481738452020269829540948955577110450838329479720025889625880556921508691545719392851783436855120674617249521865935447740943835368930316431615645256793576676313820528753001455210540915605877208284564785302219829511356859383163271086088666685640783270629888777463144261044094903024713283260426164742670510553862230869656783907379694847636144321737877493701511967222520928592260136180510937009999739397607797397314621021325653127414881211311286213572645354012777296926882055799028009762963219820637100077165784157901843265331511453150377235286008041427941276456291022942505633326554668266566532745869444338781047168159742098513256192001646690803708416508063487535693017689181955313279544580393380034438285806869984464644402891414992255257732409115008885282933437694941671386601730611712462838164885675757749870714086771423841614496859065807155538126800026747566601698083218854224201158620797573262215598866108491850785470950715520193596195038428655154760185486141734297094364188917457062318465837810676976033849843384921287880839463022264067312808871396905360542802795537778741637225842519727876089945664427146895432355677101392578756903764189658996459225372301546619518432521007531019654706290451801593243130880299610492248269318748913964848518832666503218586845197401345854331057453251449009017804315474629513852357723369282627142526507028839713003768960476018055069455949172971163633503070295316115732664567681875421279027300689339940789246381915438837589001523291617023723304903350013073920236706601923268312457385592135943282190048967344180483796115445498733463540944540366682073217931744685719606211970986610716680329288188890370317069840399943595586543329938120019768197653593249438254601890584387945561179490679768990308309186793983412555330157149216655737797624960864013625276025291937882809582951965739136735447408439500377389723694608071752360170509951437372429571489432231875688112285141559299992421817463313284240993944662018877363861614508775487744495630938913243803176470484533758362284843809007360169241376478294670823896076414570437087052843822233710786009220915178340784840940933653224798949464481320809187824867527415589204055448998145744243329786997825144558453143674323831356756046155827028827022386119977171370142899279393259088385352705041462341018676311881825355810144906379280666847582858467436752065182400178335921822448677549965773701926066729912581472005709229101974897350924871497977543950041763352588629265804383895959110846329629168943004661576416821496869313775041501890460318566029733361761029148660465294949317618607273651958147148415021383352542164910800797273523350237171089851865568710050551157888077624792217751986665219639061809902994418780784899159608420011498787707628019539902870942258137714824538755665890838589245996498626124480385672033975880610112476853658260030104292923263271439909122312670263455483083224144765780343372416990863904629741620091537036910160447238330941739397577287335621815612496231263319607550865266772685367802396356938299723942504107249636757506589096658555321049041586113199121824195923363492296648408082580724853725615075071520372217884424792365595278558475228686672741605551839924148665094803715942535336775266257833030917998618792152821889837595795045620414544795952742202885660487011099921261995233275133940035001834103307646884273517871833365490677597497067368925334331876753308611088999322428797850440688229465536226567862225445378136942472547959203792916866991227365551641981194626519435626426561094971978912797377864694571830333149728497121213523266203274834023172081940984117224946523789024775748800071641995886218583863795254803336650612112138678879359715289526500995522138834267480846030030568781209874394186187102185088733436677315869873043239874796694074627123842345821952307614074488142937291848855479174817565204868619838173721207198395923910645177272553177293099835877526183617127421300790703302628787567149577919437018303529487184728748673999114768991154521070780881308762851897519700280170123247610604478755027038469728891706738207101179683245365000843444986849384093626581565874470389184321845203987254122074401793663510001641748404501582262889710171499694380542670055664975609999455366663957167719154648133448934431560747519470413835187390841574734815784194640122928857360510808618276120990884732181361121266664596912882280624363362283389152939813547926009543364889387100103475497632763726688420124284552691982436409686276097658369468072118567999198818691331834855084796406244834913701554267316684835788607132117432236360973867765391117165294292416596293543653526537392569186845515313955430964176168797156125862975982774530580257692982803144671029204517309263648964304561167202588812234347138326784088623905265769438302831182665362859633618401385077070924390318129879586294680277973249507048355744617976325314204913864395970179528017800219883417524555249965170531503531758168770117100502127412584615165856973247572364670555151781438284419591976587473427025056226004673341236513345508543196945439276828550544978641180779922654137862215541041745594166129261028715104389042241463944125914446148821959308053035819526006365327357092646163553916122524394226477484992436530074661632871497165950337422874925144512838544278228282281019622841169619585798372125749883196461500727976360723195990774165711447456866309517454038632205177324164812479508017745285254874457465078274596253405362688509742829128032035259225368412189434777812829413108193698276030602034489293676620902083388764435630791300783781730438984698720620056201950195408973751657339031573409961341542210258313953422830426427404063715609687531571615990118668939126404441414692813695089833558398080431265056844563974232509882226156120509291623747685204948420627014468584057010440341604713514299917574986537809788169488538823519575643580532426719604513207247605252701204468799773271574078032442296437183603054528147453619804946065740147122957857326283792879471949247640383682008547651413989283961838204942333524302012715691466709579506696006381306339176449304245571653994010750260618622877149546825475999345203069550654274758561061382812978053688688654578073661168039930677757559080551912355175354787393072627039660763731851865510720591687307157290415535210631510673641971355846860546359316566867269334695183561301778453607093453760491802817219116364318044951709023994359838028474826457398809927274111654863893586715275790590339036444870887285370548144903125911298084579625982890394370875045463367301946015693959744574570398086632918954794119958531575754139137505200543181280685763061090086368955666171950183995089252436773618811754805760675016321376134638402905801160407837340666791898698222536881763953180549143447024713795895035717940552484976339307010113534479124300346081709892273578723218915455617986881197881349370316972524618695237532451457174223199830815297528275825697274893605013821510463861071671941743296347609075444012246928722209874873570333858875691099739937719304250669735297023534989441490475361153659031881717457993983251344551927232479248943114635922344402251019635050221650492871232393153473182386125667204816491045875007638945583413856495148998378306466160851722572167006154868898455131234393900568882438496160474945754676792695960735457782985741003382335896201010381468885625349396808821456568381456691154816876445671384347747073745406824203373413342759310324981492630529793339584807832327651204763004037075186300595579590847539905479878792342592417473941365343649260101375447392935134073185581278247977086844005941732292467410106884600095404942948150085782000501609415906041097673558297143078847764156176588944866824397058087441530337828678368425384333634390701970110390496970151678576109863590003793185127095106406804818782325107015038043867757583727878182110411711309835180278503473887509810631864251937271070164646516253976768782511056784146668658061235468461894257644405269579645941539745560235517162070115347319112759959261576080192481649683141069497327465960286500593768111247026342935693080863576317196382454468606496064160811855964168434016616362919414925006705382086351688626925385328822756174933664885648265189569876192368833658208491547718043959224026920468925715321195358685039165682342950953143726425238225823515701148304740241784152546387817025929602124325886808592816684617642850090910428090354289687926986934872803758091626968967968562272439559324942256053675463572521535935233741205279069801070802219021180077501250389736661639091825944610742829539014413906106267291922505096507125141811192796175464245041256369743559865352631885703696005606770421589564062351814960041756221539946292974232929833439299240924078365008729129431052292343222889287348091711672848164193299660580584546731133221291080026967936310362275896570496910748158251860381040637985332318926323847625865917817594501979373711455182499577596760487133395861329423776801838744305201078494863347362952765403214623149755602934706849973420388561478493358252609376456450860216633142331003836620027882539742807030414278515670720725454393581407314770946995298013802113116102474840290507758448917800875484787194149727819328191641670984831281734886051700629939547545253804309707258599689643726187067077918728105019062469121496770522237002943073393445390508912520857250077738614970202090882617005420542047915187085942928214794885708212879607921436643944999398234755326058145031243566865387551404483601295270352552129846442463515351331513402915774307722859553070012625137175184751637366947158289913503132966315003586653993675926752992639308568782440093040398859010082333920727916688486334360856103973630692557725683048191354591625052062792513881612615439346074346874013365049855364639061814733945313722289514354642838644822586820202488152730302533091768236102043252384389508411940744052519489813707020103351713069304456303181447706484427762722672868782497573771694028111197615641613169991398400602901633015205338270285957635248897601936650686783891306255437875333400096406863293905027676280052886423384346795737539057716422284347386977839730836559436030273862683034323760124951610596387792389606140949043292363962466363043690460805609568561790961306181522237049628232562872948781937033403560475023106138881656154565903491752335397563587467626545458276891357648297591578731427089545413341912776803696983926383870724849835265837674785253549084256526097496008791553714128582738454548268303835391715254696655256104083167479491416235231179351850460143827818276973528779583217344073151240593173158474206747809345253663822403196773524916298538697306664295976703658109989076204189189508019727560616932664065394737828774433187704374744634732794825689908242415235573356851936996807473222244814758987389245046592272533816443906255672490229282297520276771039010516815740118139321328646501568240224531632774070815355204711457944064124092562602132328520436692561192605343968139373941968474501139082794573018327969801830135278387385223959629219154696514430594349130884222437213192843939392129988426035537361703196104690248732827456034166682128501989359450222502711211051787987504259525265799209393921833182288835460845809011487040424671606009916697763391041363469608814412314443156718869044879952789403467869104182321466509212283459799692686640310144206675112570177580580704687264731300116996727760186791651187687207952377525722741662836712087532502171653999674032806631082041495134445335230436659967079900920761848901100866032042406643517003039403521947821666073919595387790620400803766759327743355410989700397975642615113795488060733543160051603076812918844212271478334484509162663573842187633053302946927496523846900851872028810562618343858961068293564769510776711544598482867350298248148354871476889078485955520525990191919829158484148639707684998812369169266484723032669652853397595922155077831740618074946587516669631480107866918382013661984492552166757607574172636659876021878208699073387845918055615684105220766280484334371725708501752925603770013899207053538355526238160875381074720850538894595127032927078422269741370359788442913733018467146698806387667519396638614189542536015186096224579109020752151083990864820255341033318194999329281843902446078524263029273252763597608325450609309791750273721885964434011367268863247013406368709324910729820583520624897078206866613761882533784275045968146551469567976554045623834981895225088807754153295392382274807524519223473024333637639522910876155068274281493473454499558246978198798812515709918312203835808588527297199810279657098805405709888696192052323285064175177722240139453554148059592468392565705912625513187639635149636109856297638975792330465995271646998915401275194032863385330550687555199305501214193080749739784427629889987295569530568684825117290784991370393256227079097151042486110575701009683614907840480533209054356330210680545416450772427550952954545348896415726823266862070370951267422608748766894746376403483066000591596201892349654720938673826948177094353721127797520093241071422563805573210377867031742417214536110759756440788581040956505163517315441977858683470099475315951894080525058393746241711471846409906368331143975175089951713864294052513347836798442276653333902495548153441684185173409996983959222009335291672362564094254329576594456932055338959185168603525185427998266944540158390736420672194745860530717519760400838192972403033570314412481871703845937017681310969106480819209117551490991240649557960731820153688084904869407515088902089538102095681465671394122604669796298488235105988320868345174529451875616895913877693279307765352434447311778113190975603019157284983718376405844513431902101866133803825687557861318484546224793276701815559415424053350606716021166826289773887915133748657578851397108457885532651975766742641482324050563987950805103752281263064898659287694098849841144279827321483357588529390005287309684026931075267699329525711543318027792511689884461154578691238495715816941083700519524271386116295075894068511063553833116046283519987038312623961814069376625990155587961946043660968519758141802038765079191690148104605379551659749918822455452529491941452803133816073601971173689341196984652514955060971564888461823711379792553723018165185873158985093170320805008433627475563095845688925681908468293088989194253746015385915287923388457327039889536301196063527055878526828728371977605208841076713535996308391551087246922561928408680249261725650548077964505408775792959733847269642301531792228600886587630496643661140133049818223314712517888942469414237989572412667662759952347524996251801422107962786502248221138004336326071713598148754289902147349682078430159036141672660541765990433356653013019487046164579799620165824580156418390900253253749981136988428974836702794835692999667524009890778713699716745150268271081468963923453310871489246902107496366795308899135153094872127239882555222431820990002830666297240371304963912801332918330439817008452023189897399361606740373361304912091591488625561098891754656999624175919679060866016345381495408355487906723023075736588576124736544017575191188448225910208859736396116484563682569705206178263747926008335122143025830562248024531096586307139939686972185826107188439749922416876977564383473458928936546515568884376405123122102035173208682004956753318270606255101030424059087770490892976223135407432835201116482304412883563116462430151410386231764286366553058473616463540951697195130411929671250254081442351414838153129759510790920496623047879385843723562757091473468268187361313536246047152431925865027665127343545466319810646110397204671416787539233117057207206322412362620464885962374009475988072615181974665753346499604497167809411654311049623250153178013605336921844810093112354548969159359378585883163751162572534165652173862347127465539472555130345900246226194612992401876013541930251586714427466485129080493208550535709245470224750800741070150013265806706786716006777399060489669882991854932168515038101038524896940985594253241004811776171515412677800984995757375220407663953873322349995330127706454095470559697629516908151175524627578376148767471609304820863702505192690213226625041552401488252622552541160530168136696048463141393295205053126059355086158819776070956727649611890674618378567251635092789376455993029409447803332939745164783435780992642895797236510471835564438163998760659583125346280370967015074410867529882884001519807336836179746826516266335867735361740822746413944917590854886247687487625177059240390931709024008267843405393237785763318113938510130447504845241142872315611720341424485961142001481471336072062149101367747199550331952728769637811406908825593512029960076566174434463688516930549493838068972123092251749374086643920721843454138407980849770784489446873088720091560583734613468434096144099930617347627338404049810501550879260402279748692805147002418205898273478085620314295618832433566237338193031355714956655445487645116017660260547922282149551755278738131122571343468337211908888761835327239452060536644252516576895384736760489378708383195954432853517540658110476634908297554998671146944563112011704455034543486289970375692033324164847080270845955060940087689751036640671352898720823521785146452908990050147294775589931769082002897499991565664077582752023381000325029693849769344324909434478113509010290223582002558999298533986517446758980246993155190142924249063371700951928598835414499862492909469318836058544683477960737325601956929877113463475621065670121081878083899148996848587783707903996158606563180859584566287259900459265938179761025640347563954946863068338836906433860292165748988330443301677348305977653521063152068414586859624584740263598517087105773375062249411115786917428024644832619085902030669545109425475584881650666435278873284708038404820566176680363715138677997024468496784086136112062050297123160279215798214082827976597984221525559258822927319574782554047537150246284617833826125528610014636822110252412927435248596032844125348087869479695985923108490751466917216065644603280082460290723162697897783872148740592795715276629973664388997141023922141324204481644703922132393628506392245255385274590718335987722531162184600143506408960967369322501981984078272691960138284352311564752459432881354752261878641783089014271806190631474998583116238783815957927649624822378351476508714804953169256952216202559504184134610171681156839237892675170271257877376755919450171626555996288279396632983918926541453969763409814274923734495772214813958738883714977259263904864635478401500483031745680155409276780089996677619265529946013629860768768494758935640204193948092204339996164201250084235524911943179615035285418777856828678935712984387808678541058763585028031487937281456362212785023376985677998279608259277242947721429796672604921635850951078625794427815415629634632427975557788544765298978605237125337421508892420071547732939515097049890759373241775039274668239958630675084894419132610603448646176471130238177361085387024971684611173703447839550646455168517549359010897223501838899843298732021931050708096074449171282973706025841720380415542101603360440413766641067301993765776737933509318992220668728492897877450839168729088405781509231605895855874648503831680332530503111944454610618155742384571111505800289175681108234031608506046304459568748650061777313395538679814139381335471666857604512992015725512968748332170522509978090477802301066039609386433722270693856656806684943625480623022184531732393386746268533695778307624005691768042098298421864547954132275403300495060602040629135435591311473252869213472547855426913888178507583187072650838720608878112434157100042504029954645490915505767316864530989880827516391349201185498464015067234930490692549221295683238164009821724225246710957388087205354251698083181415118857665578329233682335578043649606776319918870473860839963238437874404679077752532192381562004276758224698394173425241147370736665122191951979516867497668682021497373133709795825242665281219928298671094269900628798107188972213162027079720176358022567631418994268973347904671116280330099570802625306341232751937200248275713086513078361567536769570854022338185882679286487172991764755582772227101213195014834263247283614773995107160181617259221075751424185099776308092760762653302546115638547164307868630702741049860221359881622868159154183334808021915349216115882062733311171703300654110582404091548009931244246737906123854421081881689627401858947885491896741782809390424304158339645670789353661525403813072532783007480905951708959281480930964439370781780003528664030895285427257621646453806529068133195534118259796119013519950699139635515151466549834018819610368731691435446477020670508652028353025465047293018033302744981014907435437290041384800324873318499641060068485390220800267022117026344199205616780979787892601253366266801011194727147759460296482333158383485674257653522653565600938610996818124551548315768691317146519117414558590146315663040103799594831682709680999830628233939123272487200538123069147525005850296984386286540613029169472624688942740893043102442006756988461882590506107409093784425598559185377041306343440201596934761662680849609439295861122556299068050799062646352649350060688549468940971578670307591728291221206211909297359170269590610281151746286726822618985991964882817678601433620888951299258181191833449949637134584124684185300988370781394752927115370026403922576944064831697168973066576192141529161023487607600431502311352480252278920378005419068469807117605813432900406098941760595931618202327373033713653772027692115052269060476761543434017163721284234120769621294073981773993374400597844095674295369507228444082431684243361535642213835792025484085536740489743537495628167050095820708286569652430749037513383934656119198357810497930446375160660725275683187102631836605611496512320111185015532222576490508104788674037713131351542988975300608185613699789823939501477304552475374073366832363808986547297521157019530534006125619185399062087038496146645317750076254067258391247059083471069252545770510723720092744440119450434009652746412917495126678407489449684791206964370058765612659217924394138016643281565331587739216498001733132304950673252227120397900078515001360838409436277339371200391487948785328081236544355596993399838857477882079544755555459076766557586021818792009562609787631422580480532401899793379478503130745143353415472851324216505608787880846343628417503618255487151593457933765640016132908422379473215783783796154358919582705380597640200392835458108974543946484109213153128872924228224356106896940021964216613054304946043732990385614087587672672530577639885490677393328130762813505655128256940235199343235055442062414739770120816730623184232871618859380548735368958751522298931065977363454131383622213001493812706160492531271390105433439235170994754203578164522127065243229500664982879554250337994519483491398768841666887872447959882707986001183418520337768344511706419792363686411537716028472407618248291483095211550167236281107709773355333128107721693547807304701169223199941879458441429042443908565049805193754388590390115456451119328026907036193763031920527005128289336352851442722646037920210432714326553578497722488732359272506570152601419951535286308358346127265185972093552421572567367781375871003547134279046391107454558627225830416503614625092053390961688923589741836220702207507418485646597032212787120407196483503590840345968855523052469371815903860853106151854830464524113696928708915399944891070759251965249433685763838800953298297176147105918383804203472350579108358096604232636127178757807720827560361031770067294424341933623177755397809927670594593112733197838954958871318069329415387573918763957656091241481364479255596567594918478172285853542709811874688825598318905564948165127119432275376183183054025262912994362189048019453587523724765465965313627950009730456806293175617377696299808224050938975882472804047440525798001813545760881460070830847437776713717433772169989990533916411487277723488144425349892324809652323922642258869919051508399323261681283985008966186063596620103415037590225917272723740521911828808137424894806153789162335489953293390223143375548798321552902452045674483643033582706910515012283327222681743390107297963718296401729635753456677315452471729995168364600166203955194509536897994648000118755440991624514214041334963287636851280730924358566139123208498479366545667316018500109107931622042832828524852234645952056284800633510155319992846001620980427348486887055136687334931937627199693142997882071927815307652657203309627491769518424523859833855508202729141791969563674795668861868073575452816745432604893180834818933747910060049323910622691493746211567860856753902787992496534592903180635480531301864705131018315821886870970875882693289731136954863459962092702975247508693166763487542632966737742944648235815860473369309366359821367907337065598842825134479348907573379516388942193970285490911348167499483629557547424747058762702456934737363954234393792581833357993349416599648415518221176742104330918472222623326648828101924709967065342113404450893864005230321070606017070919206008741429618873882339503571000168378633744928086705413753968138543527309153941309831224555988222021229825953119531570937850864046954512468863051776881787384260169344233150533453267731183641114680235118246370340604006951014216443998504162652479011697802727380014041195684300376253896023352036424791352377278401595163571618690882002146312612236242176295373558584544799693948614506659567122940794069980733174713224597998275896986324504884341375185583865411854181555987426374895432800080727493973802945615304459047467223282999963476311542521887728787772015642133498709995534344587686965584073328945560325129636654289359141978527082819006265824594596503376148696812241873476917754398333062222908675129993534861005286055314876563419037383700147251379168303278504818607368635440727294141127141918320584115264985057177196163310695905910940440456562632204626198960953603433434899383160664181277599455623022474335742338946667324307179928335232559863801239054126766537429288831852633489249277565563904174164516695854863172887252358390237445540044547400930476708828215797199787750540619339520158491566589199916982766983482405781153866506157210026958921819769123875892837067880140080270454532058018786690048112391935976170863732193743883925729260287691044776095695734769227905293081616386490996263181129512528561114455846222738717840031540038234744639830342696280151441996263012806309809114477232347824186467460845308675398570072865872587826047688355946099668992721999673093810150481871367341694444345918560769386792000794890967020210680209534225194157122358137024706064990878617447684589804069305008117204574462275440746830115055503089029994109090668983178761140757935767497410494339076122052419600524719515324995610782332159719633168080912777507219885286322298416608209476572111878140072510584445468464325857477419895840017885154100659533134744166384674444824901183754752420799395948860540001804273101705358322363895123766881893646237618196098864442033517599722341104502026515751576905981515347897491375493360202180911491607367953203813272565895864086804133618921550969364289085849025996713971259619707334122122842753358322135531533330400470131262178580337885903118949365991628070057027237700295880551005190361866227356544488471731361992524556695468463842667494243977463811845872708154114560095170366193196038762430425758018039631765248114521040689496422175235046744256403791993442864557139104525016889788888900215159930159239179977254577595497939016322941950652717138172897888028372215421143231724289887884469500217965236625623751909799326433709662336483105667926638450560025800984395841686979981591206763254599655681951323895112841247275125562075422939708572325859212372768848957700110419241816578956306272368449262009706032341017212970036758895995322287990469000719314933338332479706522332642683352132930739758838682310274569624289325599441765734149447864524900279641750998270037494305428986929084425605106934133218910774610079923957088150353858022534640813887374700775671908766584143223492364149265097392397264972630458170874819358633944919544156637438415608738684263559583175218494676152564914920166778356977200698137414928379788626322618205320088425658599410234052745950543437927192143447954037088640300445330556664385122825854011099533369832087035985766938947889997380928367886055077040619297793257464279279343180536534538385251576440368418983309839468120152528005910666692759704406838967880580553725198035279705328765509447465862561181504259447414174481859551891978759771448282172193137889120321376751789463048285582909664300180694937249020298195052623914585046984653562493717435273772541797854651807165188065994313582505958926669903186195660724616088630076074881935527823611373767284627288637889964394462227926541510451381826621958446450181124623468171089670471142596381784140180211782144400215243552491841955211594241447583814050624001985341219017838152277126969410043022346511285990293725790266417408059359786841115257987371771904951735752687159875040051434917680390269987339245556289844765004202308909058006329797246031641783237966747829053541328486512495372795400970136861526291057430192958556852983022047286605328194673766616861267665542760580111291685256367576409576962738177577766227006169214307231028007946290363017481537086397481916119447172797194753273235673620552280966296621078227687470846579294132506763081737914541115284024452801719412948873709021261654741507684006290837445485131178174797034343046324725805995636560882098255014677023718519712860722639330787810480170024127057987390652911412175615500703975649314624838569328397721470893586364523483448906239050443595798988867977223614083081337154854020616070099314899222019907845399172648044632546807087813593909210458850285178819112130683550074008968987320665637295340571476841218243076341070035064729340482124627107115312090322035892320345115952631059791782235049043992642325472686103871996493773040896281574525981749068671405180113340507920547616961483950500348603931403574363390522104375578250097281384349670474533707570445285376300032770079700063449298114057080065635355478851380279368333009558142019824047907626335555342506225900156306916654192921341413226779577774558482263665188760406001812571570260208392806792023933229902165001063684230958007371969029067906077275244239195883199464843502875052345900661097934353519335196887383042916060036172732020389953327298551958416554333493206843181448515250246019516949013836370197248506614278866934599423142794271243730510696931735052692432476723810210275928082386324198361512728458140766003644864496367035739923821716822071766487334077166530521100633557605419559959376130331153546556746606264107801358289434569807882632018268387048090432967092349179281446703284871759104850098092759653228722544456355060847539906894313967329214641548502499482017541275776171070977684733714759174762192102888824734416520557675426429613880585123651185049847882897981861803190337117577352338988264019112775663095760468430576246139457163022128690073508906386375770227466401066951544888790253152996430222557218257972065333757702003312695936472298339874595646521249253141145982651139159360272130984472208248617939644298490478866240366274770700041431109174825823203278218162389202780658462785841027287100145513212971797100153903969800759531301044385769166044046425892915519896126179716390701552190877922963486849549347020158419083990116797625068601492775600315934581259969850430080800645828146708605969537290543841128484306866846247462077177536908764720567655438815771798156637294040564695484078560058991716549692861041665002590633582882367675221317836763814118022928695998716661035775590160313002378168826128315757357231117213391532566219119113970752709941444859775729941718457717223744960840821213276588013658993059808314368226197033472203684882758350963453256572400414896045090279565893794737485583677154175251657529466710310400081494026447921584689184941712894410992991911187407010738151472754955690009725131354518706461747598538699031095249126605160288634867289265166898645668223946712574453391291979866697011311286332089555607011435131789826596680687358214920651101548265158324648596283252003776632042231299764312487077809013134049340811196461464689318170451188270482967110464477419023747956355414589044994623813659237337503275334626345756646150682158943762019808521203300631557297417536322197068669422538457618842052150230135852208206495850545288809858706278188346343772814702523527380205719248433622947349054128086247342831340395599932084066919357235721896693224093233611126336922127332308694446382305992171496927371585204509160863691448730322626126553807359876505543793478517292414035110836690265637305341900375781201473707998899939205694183523123243412664720755093594707091284566346964309397902386997428581394366975427811354365422985907195001066865025178566004373514580325519358611919140404721400985639244685216504797684319799438276345807071664174631715636411652555610588838729606165840964529530800518290533729754689938314312905395671832484275506556991888784990312087269488911004241012739680476504646523402685357052494643225060904165401295854722021113778627940384695488351634498053790362250946380981023548857364677208996469796652644576919715551342123011127939981026054774364607516646761070980128333178194190416409549429351783393827345057233877659828709197192860447193495084422825915499786851087223523517667501881129391207726646507122869115068863673309302148321436259198263336599711322698206192869296214639893037933378424976438259109201808537311735585133748805076736781379994488053003731556192936731152516314211920966962975080814667579155569263255691553595313137366375713164404918173417045199618487399786641258261786470471382838565259828789536430077477861563616419000473393487020804378979667860374686009883575406364487480158664455206497354104930788721905459041831517171160628464721522764141355597381781635907118255575367979246197570879608120715053532693892548940507739948255296960354393020001726738466638853048624203028707907546146671808356042730834924611520635152533067073089276746899219142404278104047669766051460259114213888165874971099416779119943936662304529526609925268877778945573385093304617924118790788287049920231934877635570877507687394215695088076524007132075692347401007908204922952782401448707536849679581224088716265767709609686589909229226210662487662340800901910472754518709106586035439671552376746349952043434350788994970440503693311996340236707780442804502968726635565076829287471693608319834832720032005134962021880203599590791694205906881877651395350549115954773132321113662064164321165377567182013998001465300490995431894575025380314868728003985968645866873996064097611468208534364982183907586346719756406243818381158276493222531673630739094416119017900525295258120111035648353614872003953048970204026825794730213905984534238780013249457882724226047871082027381095185813410269999541954612776435695531252152221823358990848244183287679571717833255797517482605144672249962421276346281103033223797487169487870212538015853070311673242182667941062585652623315705183280922326297268524347930168190476723155941506353917646831501468622727950296517541037219529357106782759862178276453085563934198120038883392047965662677349206446187083975626602503583741108158787051679695384002000969985789281987303442860630297019409177474634332106442244668718690895951970068151002049166129834995235758358859035230012527318696674987892325992321134345304890672159865703973187308836599444700628978453775158764116130015095804327670269232860723693196945779212529394415917897271072934188646284744819778560661950528452247963833294860939715732344521616193308920595244733251778895990936494089110824205058617770259210924483099048522266704614332375281687229397151595462966888819341782804468817014634729318674387586377062666786864606758892999086301355985306248058751158696482038535433781251785132737382396945817142517963115345396664403808545460181165415752109984952395446949277766604571042522658512434208725757368891925236701902130858529694266165200393278736166943794629034655673035844150123424313154878396931855205832443791777012416366905579900736358119695704299702722491615119523443272240747428360716638554191343995368203695368909453782762867754521780010117517453011074103743679971895906639021268161868748143371586270245392527404140916754321640273145969924238602799941873104687841368329842537352080898207562580960298355547498235826594295655250096042300523020742310063445461542087285089144756203883915186872671650010926389990875859357160337571963257133355913455734200706746512431991918824862917767694143916979172821602281396023560351001562026179443492245133279644427718314255591902264486172239829545459053104703571945650215697454988344297746262425852049373753150912519811954363760233565370303580469654700606444100998981754465757024434924270972929568353869013593309988407305420994307927548740450035202253508702979589165055137608245642226564996262747770046999269102545731641339730996639044742478758362333267760558605342473367453216479884571126548051580060333993671832956646705893074412354076643788728223678081827143911133326183114825221433302836038973922446449362410990080132567121113482134891248121397868451595910454921800481753782632355137357593910597554962540169900278686496443566658036140060333689091538191778891576630285874492192567495000647322892965351397481101283024293467425510471519463008265375620125464624521857587638212790756510550025437368138509872424671541913909279546011306415517938724949643824738678670011191685332883914616759468021334744004128659990097210932963162406232475450102375885631487214791590967689873857271504702261196618215279920900397341602528006724925605180589222810463848300562822579354742985648708994410291472096625184768805018741840105109775408979755497176901689653002684805314546623784197750253164729316333866268098871943230846446726499737357470997351798457321636747003600998710667895959830217668198853000370573343207919981101856102727254795064708762156373361102355679589440037263817648664006685125141007945398899279588782431765704297268861871313536504643512027277064264930208055422818601961521690712348976786293444089133389156999977104318413900155246510321399222001468817296995492868583479741076781518593691269689091780707756131233312737089926953743532993071998839001263341414232254377681978767190321812522300201859353331941130995793830067794912087469750964440050112659712139137539990187768651010128291015945408944935653097566190037907349242487011731543757068229558614148005432162047059625526164145530356853543965322144867959483963167448016153977494671169953080174102066204503704714377178238712392315410105180417258293303446529494838802603632480963908106504566403819034773470274703463228767628746222664032267225530394269157190146208169072991650069140497228928863820791510011286486334886060376438186820888952265077536538941712996883932084081159979594631015902739746074105605545507471215905244926144721849168790041168607339097170199742910234742367583631648320493681498027171830284913410687183616035799516076773128139008794561695262140959104709870195052750944784509761465654700004932525459089029225851516636193505762601122717443790386109206824525812977136667132171939055665508930060191699868159739118702993287071791639250690646144396193131131261128073420700447076569226391502795978610618344542304831918600016294782574658029607092598173060639559119223144724692964953164919120541724477557532028574290874577343396789876403115785814223030811722469255108032064327824342398467369307390579756236971640646793216794984143984887779079645966076971586397560465952321188571224644820341802488789450801535335031832047325829006776875221865192235911599057659348592554920433745652176734715923863593813996657547750237874655542208522273623696631776757856814135533127045956471420073327772538089255141072395904868789571571586256569175614516890317237663144901033681219349293282136659911668138202849284189329730587250420653604899426871965531340999951471156735027821910393814811307582493273076759413341680379524366744959590234089394208858475176621714973815546512633932326349173910154226337306180910945974240307228319938277473581773450771121196335471679237500673369374905806869231333763162111387172894067678470002675123214709019097983469471553581699621581366943879932288264558489296698300276214252948920967250091412280682769750998901511754897205579714175278388342035124751209649216678703703322807822946409000900973793063611069168272655740611448142178888453407592133185487181484305111378176192483737777363554653021167762411662645821491946807098460547435637459388610861970355976015519450452172480846335019408054260966697552711465740824157773122048664710980945979024486850661542549102850483733549416896301482801820716841056537111674081484994055871407199455137866110379950551062385241010099508607446129034459945054114529293008008161948329327547784684413464427720541907283723828704722722802212761388649726065422650651046311751782712143237655046079249678790133777506674829614499505183164029535136805308911821381094019694426702516353568899097808572911174440385877900768890260279642841756136752756766254900037348202970885442477016150959848727241511181214428904801195190481234604893266358569498781537924328565876302251690392647470042091396689201054278468978620008773366559962440267119312817499593958408855803978182151329791370367053055156843541669280000150286167291570749262342142233491642165520034124750207853808527608584559635999317582984583052972990929896233008747198260091191513035465752565708119955089607908001055307569028990978354606226907032958408720861886664285135195971048300959212728595580645678734068149310585550033383280256618638778056037344032928465116566324749812880331575752263445518528145870541424032668731016093267669848186437943365233895040208006879062394339620513961768167968205271176922408174022959366577705705988549484587527791657318305048382842615247225866023421926899698791492341365350397447879066371853456663211302827399663202012013176865145657718249357671372249431653600180053936661564829917518863583671612787045687257163655964719362113057608937044691323386749495471237958732304915678055240007137780702463235824067766106041288444426964499016094615563827195653538049766532012442666314506183298568494192276069874165852074499862791860313411863730898853042704022888667161688710435195260997707399503625241735138850994109293499697035961614717425443879937330079362679287356536776751312366488231044456070759651773286192287799291400909920894844880822838203077256557773123612565769018088752898853109656395857140797085753074961310455867938651098382684200911762048738731885091903065367372153317310676830739641068651711026274964949421589372684110466287334947986482173833207066639588906661909810600030484638051234293091176698012130999366420979101998689598693837699544993643084872739593143388719579674726541233120137848664702011140838242988978116861545835465656827733007750276493492710778893066985627560826792630375085848697504523791584594328418813203444461514153444762968496633112223524716672891007277127839435823693355457397987712758928587790832945915306542708060590263699617350521332246180692353290706322775021336729733637140159427002076708230137309425064923421253026753457644124636090225260853361878449455668556249377347333454888868004043496458728597225132965219654095528758103680850736687072510158785568607931563719887648363577325679757656668325055127543094408853446911806246042829422491825711030688952522767020924682443439724460193356212384992113698475283963819295628793328691511574064210786528042423657652446413779189397316094619937185219818062922568274513766281336789905341481240574140452188913658208558249522857386866648129148137991429544576520789055521402821560159662393420827272030699779398482211096578098019008365203163822921347019965734914960271369844216501370981899182447040297056006086096621312846264164875982312500385100998708647062336419922928345628670770725667066957970781173705419086208646245385136731793257894776295626398813517535864582175213149290656283136785805173407095198073113781016753497084068679908396794650989438903394791696307562043116411706002477798890455241462407627081115443016970512949949696941780453321194699452032727559082324254992530482648550605389814991274270648257395709409263689401741710612049240410413532066173404734260637369943766563079116723484970300943359443200947511955072025909106506485750815053856708562420919933854693433443719369928378893257970291593501605477180345648703948179546577444369015230402991121712262861414979559888233002083093332985164533132872300808632700852907343189557253033793224802737875206464359739223312217404822060547051866924887586501037552864617990186088708163200200934733973712177188565084800981488935877601557104564365580647618212687427913084622339208662028937513994164873459765488802840069361271768514753358132122520409280598828453303113912307090603857328950718331704090339686921633683729312915865595440453483546567043822585877596225665794195244560831829176602212559856861539613834339748286972202137964233218915735389286522203367790942592945639070807931826321022720140035066938606280021523747947576830322117461021873169169274626419966990803705339170576242912208825194716731686101045927528285482524707524384392726218712765752337509931355033689449399613513083916571136866165421604633830592561894958889804171740258195843442156313695350475692659626377386907069928990213808400565015097060442621034401901292248379940113392233283118420439518660642908789489676699411739828718527515122062227963295285003537480250533155131245399759193852191544951957125997847982252756502225163966507129741370326771487325348361710062694168645702566185272415108356783492139199335534891248893448588318024994606736246376774194862688666471871328042955486957558069752414099663329720779793788936586498724841658601538686798488756440407012498269571805595264688124544337958040623393594677859565451398035434456311402646517042858767040848429145523651636779949385280320426100348563949870305690399296501899876164121681456935119268041313861192421499121009102407068733674030384272433038874576700612383495331356640750713646707348913853762861266221836735424621135516827848990867844920331939343998510991637156186231244177141835920477034096826828370826530108328390449834530263474948299782942912239939906442805909839888963120706561725604289286217160359569856891059255587058038168865494115879142602555611963010167515068629471047122558459689986026564072673053340017659615184644653554425697085568483070444078301395580922614133422421546891238761418880828064353575905166164697923912752196547733999543088359083007538078049728868230160703370429403278427481976638125062037226486918170676834991041448101615601143744635942338509854369398954879540864981663439246714885537571626869682025931960891447928137987273281847772683924892809291349789495345192042853551665350710692716148776199067810108422472739938843610775575980767844300526695111496971261790071748647708875564681128273084966850153939530793124332675705240395297111648398603984855861760882151424123417051137717181510782687033937465937604591663999653791150010073764923372338415666765213113848199013723147469065428870746617010276731313157078593749131433025756171756858326316561284125216094708224592759647958483628002679400789784629868493093893255921477027851743747373109155955623099035581086034440638641557546059099320223644856199983337395252145862637735493588052199973465489339084360073246592225300414085946693216174364227030528942570139995178772415621527203334842522542739559378987987028648964859697467923599107799958223464733800245125173707279262928805061843720713115130183751313865908318809871537792600839986643290075378344400504161223202569132526375541356392298660451520979726683486628810474859577814523159588758510186266097042090538633280075816734473380586988879071404997251566147265224602338116448047615535981632085855210457327021396244215296688358196370972297533666339056065652095110078355936851913615511911010852895204599661635662700532164362206719080920212398168682072946088371154762648947743338417805003350684864405489998996444761861365592148812541190075938417468167760583859769576943126276808443487550998084100851089206490402143848265435429665975038217281260767414018677564696380294611011096352503374367233735417126726742822139140985839979965723147876938176246985148252452791204939556040827998719339174091198908678061262286680809856343921456914876657426873946848742316197228038427036871711590051647873643647244377924730959748370500333969147068065222494246783755302180480746502769416615131341313392203003491470481506364806411799916142625476396308028683361376767237166869468686163069603274740085384848994050811983710986813670751395709777385290393854276912468143063543163252470482916889060400074690463191231599830353143566930654756365512334817512001350654776231596774505515361058540782171699948215238166868353923267759097604834127487861379480021982469850213328948894904657833239048656389391521802089867745566667872456222422828639026364291213295375692821743388587299938871964274782450524631639827168376438608457628045577568651406510013224295479691495272356815925494992469723482542277827757918033247308413710092296372835940862531321808149607864267997734768740095929719813574621584074094994638998114074681090757941317255929309621615975380791063606072589252496103435058868943698612549886903525354728476800298955921771746992658971825082116138046349414916852243529080080067371391272027017896107404615398623495949421855493352392850656578509556701648248793549544910777391935929731743354560241908098784389264978122481040100960620134569410771890231532529768502056604576346440223565973496072127060103111080563154939722755955530747048004319761628860701844801053546523189553761792616947261412563723456739040523023328105945396122402103266089405813960332113575845942223022089603010012777441488677882095968921356515049173137826058149486795517085525257502743351217059874729636254583858575598485945195061276330505329883018237747414366956435479750597162253437696674348286282541758095435622961683715880991048938659437098468936422620491420317766747736334592975535777919662089072871354803871963950895856066342189293485775916038206955788578359624089107278126199085171690418274945814896240084794818738113704287041283159725038469320914918560878954662964378999987747036278149608735245006098026715271899573146896966583528283167445202232728037702140219345631821898782782519466746609818266849564714756145935040958650722329185700273113979304180913816557503240436801944236149000079137085848440204961438341475131180685479745858053717455307365777312471718078246968067236098813787760293222558598991824414406601995242279128777488004449456065417162955683579608662857431185257041457570517526934278745638969216898774493257042206026632861826275958461308576911649279957942644587278818791954023656749492388996964714685894883384007663071384079751205853206102230027728321430303165801202934697378949967012279814034202605288975787261030819795295336545682265372978233632796815132416719391071837372406384306074485134838292859611960084799438500031888151922297981999938625307691695627327703865110450016349572203279222814329459607956432517675175038725756195303157828681857270893238076549293377936185714772047283683785176911435187012963490677218248395159189962309604140447087581215779541282707904682970776732410798081979659326812075042871477901298549045104623894853333023348502921732627797734900031005319636179506461407517616255358266589854235709898834493736940291123031394264695369707040236755496864616028093306372000432044822872782098932328041675929754832881334836937661672474631369697528203626912045700329072903132510765048711190820493874325450823732592676110959523090050298287769574585463512249023330735998002580692573783738706707635882596485221543430349129602810869150694475886710212158094268745073223435721737270228474585915874072460743353557299846422363726531553996125325707718830484879544730916789406139880685706999477168080000115292656646231143516059012890363103234193568001302287876977117163956165939592473544751174640039046677970992484454686756604507050833760293180814684479737371223182413958227014933024936772722532103956928038612425323015200043222301842962432620476467572376135506697931202340745534212087402782740946799389388155587557955258347211915268672390717694171656593804956106987305255291101111245130283434164838823511279175306833417048697177646735820440914034692266670713057423894604857433800168772854115099012302389196624179387730796024906676573910320655555951515596438671175497280990441975158998248531285675748358137922466474028124972579540807288952541027690575383255928758351459346809303738520105511471577303938490411227252283615369322977686832802245434570931549092540784931565747968806248263353352294396260274928809385291793387861667499375581587147056943214784458259420424018848174362169540223835296090423700878920710594489719207889821173972229339469586513360982975001480159345879167950959939734396481088198152652823392614199132190913797946971823060694532390829833583001453521178898318369516008183202954987937417253558486975783985606464378430665124294435929211950694004048937848025690819272468300640803911661935414643871283316447517696276921765484451389651669258479010566499606391150674480003805555825847837528795014713707584661791662442367758446302919572286306637331963925051667590860873229499006185161473086285697944822449417780204243519063965264703268566397708689886156264364814934299357914640572702670314673742847013902254586683832000738336594703148907238456008547156026893154870821322304375844370750631098503546716925308567622288524886662132437565391862013748818668346281684158497243789104966093029408726746136569498475747413558056549753228920634409027173356742098363684473610902270509090187778764830750169505654137513328130784096730582956111664948877287522285235117912293202129763522456817001656455779526033809893849007195630965365148301738348374292683329763429484908396447516899302697203881616755778745959682998887819631186548716693019000022266951615101865887112841850664771806118363952168425514085461921013684992098402335090814691451016993515399905445658862125194821180120923952613832149458229533775856312250383691306726829550050245799866555655571303061427287560144873945041904634326814989981953986924531315559569132509040023594794944014845578916656046768529937824650326655179479964060156459337694529321936334923839155117737204058892341608453938019540898028275121194230568214326930520931990047300825550000324447042438671318935318599574887076837553626133042893453768342984193946338097214062302398047849663767670058250731516339351605855726114848241355949391789253100464313857301726476058063118385079734579223457289771103527174378344939793832272783119795683886050644248129365787071142702787350255175404607929251954253064016578873641272794241543533602651024250453302527797120810447849915409778944992729366410952374489236231508884435044501962945058077845174435750171903425218496201610414711456360974353430927679396025809657567191511508061232330223662186260506539043399254217712627012695601588788655820328026312178564350032076420056022315759574692335711608433650248008169777040357038805797760193617636618625189890981546481856100214364604542050178567238331056524245197415200509140863077702079169925997712327166624923846837430397190989756907741054452783805148394940285299411141280912781205661743210859097343598759402725138536371020132179770173547222383241887419400446404929709185883059809808186665266374730105084259818160786520624640838418348629024494997481355582680482836073803753991089219273776506489507886748141285367063566668990339320677839839129450159897060876775096829192213776662742039906412414771649213645717611445391212130983959099749077728021423076173941587875023052964188652220727314437021974166141698776054847760977894999328132633005783742487752996538955012828116069940153421912891384005175440741005454280556514544057672947385079341674694135480681813555740116737265072641822836405239741273510685074642185961480043699071257069140148424373082993337803101004103852816687662717737146021271501478440406373830264862940327622676789051000317868489235039597640820779712068733175995772308584544357717398563405365816511906564323970178676798623862076313581658603145483849631019070089455008953774625232959122023849798946044057566041845268280306315552177460936874983280752483636125798265961881289993153837017956224770321622404543061062884302427363405222818470392158146809051541316615934537534348097443788252376510807983084744616483200354853961591024658757361349428538731647701467308982042811028416236558168498428948292708902851957023300597667917165123125597996615541948848920960925918016651682745623523695663988000710999520508729845448648435916707126305305318045943092825812053137282062873454332640466130830582468158337073945006897292217514095301832983229931014896005944108291432670213985488272580953249678884746284601012082993841978789509194593219975352874143732201161326687127838041280042693146737345801543163576916890355460316705750977416295080348207732053647272716812112857972083868972772723942144872796351475522067294431970171651556326505080323791533133694778902552218768141343664143877955439074088143490613014894162138596746578303632759992233662666180160730763547382142961678989595364086192108223277505826104123270633744353543416219644316451489518672090856125269895266465720390986902030559007737590335893127228058186772187660581242453277465651541493027608375597907506202874956579277843451857676037486436673596673886175972814197404228235738850903193211986408692293511078010427406232663670757915600680377896034753414807283241779163521595182452710124948382536091763923768143860105060900317691759805899050300711078492184275825204473029314577269905795760501191598043087229822488080188472405514914732825573255078112099794677017323210205462502870800632285718005537698460430518932051286871064872579643247482116212610005392617690552678342429972012746096900562996660902541745457412601919763904859110631937703334533578424201664143574691351700869919142223175197105153965249601675273564599111415175876905775109246960711932804434005251572033432739937343890491965385221832165533099429812950931541596678692681266723346802348999673973038840917103261030540009179182668597372023863381961262200004588705623753292420876554903529649253926871425741216386272173741846598517100132778400706336155828042243630016033311523264994052324654111401892134505329573936940889028557024303732408320567627896364546881674543452949344704459318314456054683795729373829994317097951355998494007930562954126729576252541684840912758685038862432229296942590034682419845016398697616690823111898924424049118615466221838069946301500385825839623984056653794737762831335817606292939383899229492282098978250467018957157717456555255885790793146845618676755040512580360781019285817486518177094644734931883024908118323863467604439569568805945760710005488532343803398335709705062955607823356263517065505906710012451154793603959989106702768335340652975036680568326361487540417767708332954154170914408092321980833051884912973060590789640481841856999108380348761883565716194162869023295505484880410609423279755528274381228887189575719965533566958619272766614663966547664647839269166061281181712163750980417200271144168445293825688146162556544600307961941704517470817161937488420570842952233278708312252356983943259238784387052707814210721634132452280198215998267541788861805819501211839173561582781754171718408376391503838502133686286156000470194298676549305219394714401361580787998120756715915668210330860267519926368568187844046096270845703998288024279141904336030882049008799399556518688290536442324201414932842993320323144869704235746847461285272966861436114133749728844708056812874696693606549400437462078139666804639685834315513155287402910747043486986495522702227754892173864398517665315806284514202269404651963916125728316380554944395876024423893515777694298823483966227595372375988392868545124701177941875308107857894907467331204359646990915459554313995132133071407526399053506248064998420440655671842105704354197391824602525443099499900731084869571696659960847401603963807748179181159289617598450307212006146369691529099926327830854763542671449060077997099737499730693771878991013283810086001143951166786068648706104824994963590594859838048943829551768856506150789049139941566589986191378241180067250994124412845103761137554285202608524592449280136614950742949730899140628772081992402222831067608029620378326287488360244076266955531288034141911466063931068538097365184402968878217583552803530234408332397180195740694714224042472848526119258318178343476359694132327314274475781472141900291040229220585731133775662341147160739926002417566746481454001209514576115267310001567513350739900637998781863170290615688986398057940395273637793500749690947952058787091623594217685227781591248698757999367598893457745218135760389640260142688415800282932236212274345590778441080389010250324474439625656563063340503006666183694915677841437420507523892817582220510983673915899116486029876855266777922094881488339189188247701538453384926428509460148619849904899670455572626509147931575780544058892248728873137418809255016142042622932022938046901359269788654217729939699474423323981510853605043017578478917140906895397828184069819919329982768649656950630221845988443959177379464578206565829705843252038327111685807360707221827644657661327487681384691014477993740054262763910982953194880908747896082387857971664096543885342717558485832216901806793254064454169300987780612064111252160727753402189369309056181618799967480537978787994890477772569143302676212540453357783220512903844221668654535178820113834299585410142730541604400287718386041440223982496083570849421219608406510234718303313762209693882789085239119907099148664958373953805512824824442487398436593287504531077057503467789144834697976197829501546181087708764132112263631778646825715225388250042421239833281981448891966015126034732039581100850744470823902301431413315697993910352191838623542387489735960982116762004559904516651992148858193879774566613366629564928243751858973953673917047241960996315919033029942968207353972157086310247175914573690623642476421797170510253646392653423682983219474430755892975916051399711560954507574598327802120207292546400023446206177618980882741624396407148567175985427512629411389982186108922516490474965292144261409888357399787835309348399048531466904204341979610790651515173893835440713162108620378760839398481763836745561410500753447528956278300381648566787538665949347702501838741297948567647211088797946544077211417938601958009813055787613463145860938712290830644157593003822372881842337643521132998133815490963834286645488502025926428446290913338989180317623199671589240066659617234974191074053330342060400538744764067229570188463650337965427069996243756195967355004895255784134872620416946724615761206556772586847797193069570433335221164602223369326073320372647337572918358539809235212662602954184450240341055622604922144413191073602066163749979030902862305405504125383518854680770379118914997003705709461537163692202313922918491423813967203705436767094382739118594066465391890266470622064695443183981582793945897048350946437368626907841716083011971143954590810771244580595403811131736479939330963671667398811923566106526451154291245992443407243400707402262830198710884909106821304807435132147783773123239259568988050094938366849870397332692867276984438120770973481844189554236254571878408220542064131135211228432658760003225010677495512719082724788065544439060331595086373005367048906279581164940036256398695422693431459907432141434863418348490931297158550291441033196729648017292656420748474348691687853201454484193544531936234992542626728053115249784667073038680138313851482775266955660114951157320324095395727874074333044572241540976973521720739464240026479647682047196297685188839133787419460987646590995249124875842661107831544799250535097641919060555830280517680113011539177340717232369178037707184046454429887199236294757187899621520955983577655857154703937718247208154330324549587208974801137184495226279863779477725996045280760536155462640951589757435897651796904962361475361372897156147976799953924271232186504091142120931394342349474829987621927240516591469410386701609682374999215417048433826925062199439975042187474250835988723128379653337501511029326792246506996135014278544034028970238782351694145842485147778448871740526706987398142076895073218422519908899484069061549227101787211952379178152555960837277481406430631120144505303945505272899700504381650613413528058031130100335162538234229852549967527659357202806757669967163472730807233819790753436282147345496585139933464149953599322788936722467212243142301465557828835734667285433058494493616777158864504056730706833045825510926534829510510581215644210246443184244938884154220474353950121276877234019779023652070239295620046724955795674781859971279091571569556725358614394565539424625358389459973062820182267078474216801798155301307373771678911170935840542552893883219952368703555818498405320309257670247745949290187765845169202259812722228815407463948576261351051354970233192774662876616519023326446135390278230696397724575395847167862296399661908912715179731781289317345882812244368325340028649931421410541133944551541178800001101202033143560611349365637501091247999537011445203554159938949870141298383448550287424011221628916062268078764380717807414028995937424413034246497786587870004369417619898689320807292024255959814638380811973411853699993519749508645674207069718185206649823907670501399643819012940081962159738547788337743908555021826742096122409140591112858277807150256190652755454923096863628480569834594972586436055968113320788349856329889071276362885198394195389542211030747112549523357897622954572459494136809446650302154795344462659777238324897647556893615677907499241533196406111556967661166085073001295736288660286867208555168933460982539027920914030720248394161148576416872401017239275759653787871837781159205838623701638206297405683118545972433692372912356403181054820560341672573682287931144617448239403024450456855241956156706660453435109204332643350334186679213353826028369736976810986454090214075342351612644175291248158839677538477540394493311228090847873686405646880221987831846011411882412016312783270776736341948328311534590549022000039344130664907587511735101513202006289130661831495928968255250258437058381219286778729931435354081880472148383001594905492689216710090693992716023645581941919087852339423350175420603315251805776794549029012734357297943574730239671817641878710269121765529679540140653822441469756996685821502102431792214600982556993677627151265185305522725666594448704785640376029056131733139416854337331828555697554044057455816766713176033065319270101990249090646190863358741617753436802885960396692496927919157952065885733653040334686821082070532660637822815429689384126343487884281737626688982000667689226984820437334484280383096793982080196296534075399629091827849745454895183410606766158670936355504332551114124621698459760101799281711144760278539649143596459789734901074447763396416296258648955932412374212321800034417541920278863333467669633386099504816079891563645033772560539432811489153652666045458654154740913051872528742054938226975191030513886308838345026807481972974247867487321272446481309153825474579705132577513940039456224788889534569533467114488790907417100206526763462567789306643703673563267722635109462334986785343088017499694833053413511220220443675906245790480453751330939107882484097408792984219789234767490769117274046482004638819350773696581433540573428155583412924390730398154109890353070127512773342036994180164649474245099937031373235564790240984727526600612213070505268292169956470190810291957130856708516811100128639546749885201630616946221979276215265541574515278481777741286153081117178610358634378486868279579981157235817598715020896191214016396782197264139926857623794179040492429441530805143481263928698520937856194456495214720145601990499721994930355187813128641833225815195898324434036055334509114234116647266175632300512332278697705870921519004371695101141973721340897123714475321959623058344731805508496550873812471173125437142563327461908754257301313070867446513052381565405864739649010103472220023220395473553516537819190455999516236945396835651430290681999731902235873298260308916661153927160485411988491518133033143301766469344188835641319563008152004212676285521876710279880108394468406871554004016811381928777778259205466070331537125394040876035333309225365327174885799302581622869321817982739577166101635000246560782774769723004676910439316633279749393455973666554999796944474919358570425788724033624708684965441613935438126200964104414923593090277716815393361182073281057981928338325825605755181772263900810236487113742713214272306831211684394032525606063273298219787905962318226213329728373006468324523549297284393427772723670146580213063533690346021695950358611992244864651286130817747133417552130236314039798673229748578040674562631741265662491410298550374375017742162231525228043584856164643147012637992362307093978091584369498242572777318288356901025345518361560547539764081510375901373167533346082777951706393774628897293108352961473246219636260496719147763898097928700475877426360618895688164363737954156133717286702044365939806337881957589223395350687427220717371573216872595525550477031800694286982381559039037231775696302274127680319996074066788153850327666326928551547271824534485769805481095751883637331781756319813831309549670116249579141825294949770866525869649122453633376012415727084721408595364928840261066065502492941892041035438490645586591590218525218994463807069407386859278572123814287836546613131570630383598749997344653961556602709182688718733931805946391808517948062763943419235529083433160492596478528586088911397230327229940191537960533636863075421592349532799359620045374503997808009400329112637471588956323977478953785212897900518202640179228243374537693696781710486106928466029183665834833761306458663544955948502667486306467321555272127404330894402873203780641642278153232704388674033280296336690063777425071924585916318641892236543047183172909696147370835205953232217386563434140261491274771293630500824083337587724091065343215310657200970722067719099308474936302562948575555892662661633798481445733189314334785043328935040967700718837322163649803873082041805014337483153857099002915525252151719641913407294764800552862971187802589057714917586491606062805203184296913221712316452017401014040132392921073748048292590893925489919494531250604506594517741065949788674333341096283657563381444318175544037736407521480447726024320802022344078876129501923235677905550674354758604529269122660024182221355014352464742600742847967412257274390145805410214247756504650724268093758765741067775747661115589534597257460070706198704243176626184947114285802391136984928513513352376403781682334454114960785175356367713199430731375055218137891580675439944695326098664774882488094032039726440695921218069864199904555290162334596607911099810829414796252511080944733783371261208410132864238770033496830738549996123698209646797112347642344652400370514068572954434605392512149296568521013157946733400351646560074086384763460538447720248403847978344531944175978963376201404459942982388887697841898062854275314992828584315563932085653684309352515072334930498975117692782865385461149145390203055145729376023732126029381297786447374672245238138478124671721114559685829194984701806246370778744312400274770651734004500919184646814919198677892015883001088812242751187073861440718865977364656480504981345870902113456255651885745912569405347098478746279642431485020262132770414781507653725009611316029787050640136607231530707529782522212912559094547970850589566527101488872837532953094696360136088962425753505791703327821718007281022032413631742056142995775813491788550503780705561133331447184078677268844763365884746509429391847070350446334507993089136342785527588228814904234266925108363016787730940555586196601418794162419168274820456468270876918513477117008348920311768318267002145026750912778834640632213558153702734484703049303695435355762504777299326485092713149768210288021275699592168268791990250473337082164554226000617260282975318526569006975410477283113063007486384658523246903300359993374497633422623881329552439913846105507490539586299450591189908899717084769971188923619029160400255466659622503478553216044883460808715760688184260882312568822641777087168101269749860447893731500050162798555602037421408809112582130451914315166202569747766285814595519677764505241684970957987753281577702609172996228984551005584593574786340820369807735511402606691345281865679480956599085924902435004483408958511158466902537618573121985326518664715734666604679288288882272075447271426567473636784446239654470840478640205391205553371914593896722910121088409885966863190426323182994144182462563634203830023031569721949375304166294721835193675325660461873766135530267609929113671067893378216052141481174833412664009298674911269331490935734444165804913954756654801987331020354705170565556550541840335433744798565323025515620776768200944181836962978497653603766421260171805998520551527101274877436725718526941013278417431075199863438726156620509434409639290334239249674170071384785025774858604959598342060682877751296190411734907512722105062967128428148989232805351246984561648118794889512695151538707156156408310105106567543417041593768407340731633380519870256675031784575382582896497086194204891404191636368936956020900888521822388535962139854215301528386240887265233637228949079221814055005364292184738024972628255048407032778300925060130804949341447272200377761218867048754383274274236502352806837793834506483945206652766874487821390461502675711755131773885661120937012469830519314167496826848277023905693874748757171147594382204907664471681646303393681235549383133226139439909636216175982538856340743642718617503781478622454032756078957121132353044678092540970110681604832109831461879372984551741135806643732052581431368032068568448214168684753412073121340134514479029844562979358942447149509488643173027790762114133128310480794519195613978016804594948191580388673410560304104363441542487101911404471219429721769359595461474518886000066065014260446852226507048126941926767124143285118570415055386554814242778412902799508145866385662159890983447057645523925345077910951238079826093348652289812485514998235089488519333636845892261521862304470028347034451406754120814246828600863993770486856224200899985280214864900515931129797964092324766002029228635875161298344443052802165283223138794550527406725514002354440716260327483221547531087302910074119220687896669748439904014687362630892310300137150804640793048991270029838057842964811359996821483938810987410878784400601661871602141219791414986305951327555172508098996716071414946733541570812301836949353497095130733588204318919765564929363599601712636032838006779314567736559617906957720366497457387823240598372506853577771006149585040042566070726478098162956963648018599237074660595208021845477776768811791413165458649190671832710680658506549227773305766794851981339303888213696643021264468190192152401019828368645976947822216421951035469245313087893201930168705424836421656056750000435800695599053315057469723484170756055386881562100609071449568327790863711189392708456141808243665884597830602980036884376540210052424644439969302976795960348001369739408921143764812795764721106401663629173084665719571680521419220135746035647972399329182893627965240363864554476302265452244660205588936993447285004319159218697708457666872111583666622243781863791686046582214232298086700599175681788017385915099552537727658401842571781954033339538916548461720948309308833127613195529568710313861260987882752523697670593974971391999013698261831843348587416582032726970318693118916712170179621865193990503136803996709704613895752870140381986937372037846132202983053823282346856954386451870266143885732965218926123935411044401628554277671075507697701642891971161695927764818269722030424020522434234600339949454165537240396703070248747305844315087091726811512790000601282897359061588373326336551861820719311613865448569853777369841148630112818956093287607222809582739601569268117208340726649600987366436384370409774427262265269947309156098008235863454106280209573099191503034745116118364095462271157489994931182186296575247904598404401580762175694692622345741258590656610752611660488910702683536242680438257924117189346198579419079781081737899353345394615710185608595488744062596014290957862123519393808502324656911384491931858883605947035607237623199765010520559967859789016598586579604773140030126035057409829725414435811982562423089884423548216178438993614286114046725161370670050517990791029944957044057632372811699038958039350555829389777744068814065955330528197301193606425231858971222105308594981824515696761458287481342358015174446462702930282927340282510835678131911235847542523678066359968044234750205708519868435152358558940861435074297389775395819288117237207173903210246612082196952281322329194488827539822277382499460484573195576461824442449413954986144068003465895827154050506759025022094101894870515365322597290530900562759770677037706344883254954950642580742295957572246599663339906257532257862581683332520206778410712075831987368111410348408931974431373692282405436161677931172863933370131233498965495241715336738242581315456432515377290894616136777743968327430474742176202123998109027186870718387222536139736757462033710057041812781229924205601692425342822660531327429577057023660947490405201278365188594612744328739209017763779310428839669576763407195732308267194125393306692477342895099122639816608317711909013290901803750139603450456010940314821664573274078529728256315947646766819134353205734294027281314214744768494954379542904437245769555748908267315376737278886650439437376256364386039834139878782033813174690654412140592478813558395627573809229534579732747500747342848701571734331458303336615830610879576114508514856489378728921944654018050844007435839955009607803873263857975880701046089060966428690638998912106964128469271903714398764159478820507371307989575758823492514095281466074011736460095827381708135945975999981399808348099855579136435293008171795858924381876161771494424972535189161481225286992284020938177033479999029306775119581842398695113369194156013661626035537127760647243812176917974229415174069457942872820009813462070806359326805808163107800949590166906070028975851888922485885180494986821363914587819528396184543923169589834681229054070550429579970441692392309524548558625994407609468805441016112970509514525437877646996970500094144556226735549464351487031703556245938538277193822006014982333004723325102942494651654190896379088634755147872588675559322694578319301078251890019055674988928344198220729541470565164663336306548286394909271232207124231390314619402964466503568121289546155809632112977057752993330514440921592255815301269901621208956230678454155511092384601286544777932801295433908499609812352412241259691359232668879432279170807518435832238240984407122306565753394083599730825865073787931580517300885010479359659502822278733330965573733716340625966403623431229994384451318918614469202527055489562758085435128359119390534157211441223931066200676283366912967605952428144782729484012678547393913009764364320632453070350737730633491282774215750976965727170940935511218211702538602327576985671079113434445554326645778932975714905749227898273180332945619886539944560342027762796551575586515808948776998998475862373971087511353584021247058813254996558321634604572822963817810840192153904892060535874419990958083216249696918250348442430989971712327554966183417320598803044050960131740790338770007144219260381715296217918121639633594920874043870428067388277762799974309180623726380313463770125697989241354201267261463720479458678776653260685438812947897749542995658144532823686203296855830473722668925463456068753635065033095979614515407854204303708618716782978100076342452437883079146153816421417067586924054423637910974380036300618963362673548089491092910467930403580125525735104544224502728841209018805239220659268460327959657918929661653391955919716538381895938095850294702996092274989084890679012397356647642443337691790608091225058160495731844600277283198090167549553451590708128252603962565650463981325288465898056236804471929085665087682170479443242465498796976448026287505154281517884883170673948816367949197051644435720768799677445144659111078872063468317228618088984192963898868253733238012260712445404082914022085483796844540010844321598238877352846410249121092019525008549743018270864889240150495979360424530935165665457472339216097538156810797121953697907705129073663864956651589688936974035215161770928027505087277824076168460023160349348247890730790471525511369505893842818238337129741211811642439028219041080499078702446217098792501701700495664882795274014651331785813562635025015923513792142440314964450386907078807135407318119975465647279757471920226332439795051391324956451023383537430570347108859807574424624913277470748135757088888718670078471881719571909277091914488720649529043288587796403617623514254558653749627645172413635424713682291083227626902859289736706152883661360210461935081048661824338750104518576894878767912042938362012540533442132156371541257851197441572484920639134294867830192980568104584909606765244548455587379314598182233097525788431798089450261692673859904775520432425488241825944121037160324987655042193773921575393137118964969528943196609134293427733168568699659166363897225417457137233681291901855843852849629624140469374845271380632195780341425508115910291579385972655098590713941416130721600145634147501080818050951739320334556383490204319868844100775511121693985048692869337024717364116039120487342300689839793939046271911438620166260394913051449743425416059932769038341071271666659296125641239018536443562156572694588164202882247710439282172244895549194357995427928534065263486294564692427730400650800602564090640028421522058301702099769402658448428435584034730395214839856475920067807674011808495225080172331221249621887291317281790751411954722791908763045376505462741132943350140752065092770808712786562029694125562991174593573667411850227479956742268214517160549219881933260979422695166621685465732056900303716685653467491359085865011832203315962067196657823838954587977041565510795812194157008184051903691319317997671291291506831998255466105746803211784853812923762768939067816104329266127046773863579282233782591992753210426500538896416838670516061362141363437176046676735377584876843954937220255268840879691436183256061754594962102340599078190706248438652432154028554904177891565833436637827513775330318481458887045937264099132656412620897784604608906106037636582868201385403777937036336644547904898766259923294409549098529060573752745532833806149217605934030398794652872264792525367223155896528838734612097801649576399909669774357656098996511501745654031265922698950633086616588062947548814911023629795428688087806222713320129274401455495344728738097760734501061433481811556914370178639282798807409520812050530976402425755817414427636454291271108435660957634401713598911603649825127832987730694693653119652200126358753304999606569722740885108700805140045372996930595958328234113688710208500899129611719868787031211013864926943292996636374158437925768480414210865501779304527266848171688802236255695294385715532602657336325842486249124981998538283746064613152778792355226535671957174649602881769598901899436459099309473637939859022386883413171264769811868158820536812402061459905650317651776590505702544304201710657630180056446053246984181318750644194490672710904865583394991854498740968931090524768733644656387563451270581440370187758335266906384380786885279624862460516755962955396179148984055059735238420362080663077096019088316455989895733816368722767920214682275687698843559291748470955043685397826606188211227407223242675007942480736434068815661061796401223930029765447696798259476122327658243205459991851232751488351342242511274926431676377812410762928146330817552427665734920521593284952447904283693931946049484106345703643848530356753631498517636228938196632250559526538159196815585096688847742747964548651171480217609071354530943472667647691007220592273128963846173396133196802831718105759260279216364538417018254187441255350885133285842006847165776522514174087607709250701869013712112486089679082113514412317056012743460818615876414968897208086466675004723565628322874510891798245166480965099437153654619927480550680401088696707668991929194571451773049297551244752907719657086767709609579838672664937723838318063323498266200545015637271969973583233902147616880637517503337629531377860209848139893392621518061250107950058014120387797388451619442485128865047354791148891596834030238469433709910331476219437901365435982082453215410757514347813859866613992762142538147812169578340351481292040965433616054514852354312910135011680899963884859770653433698928801193202443284654540862718621517341418087674247739882204653005463453024002067321947055146112567776564549565066239210953088771826262931815406299984781905340248443014168724895595188053155386550412233134706749030103865619301691954123145062429722701532665995997392984663134410427273939916354340823105554216253408964576300578636177071035427919136698461746764056912584866820124096654614956418063428637393597254812443692316031785415590015498468019144225496347081313901513754712869164411609124286001823407670700762847642140963740120100302645441199364318688204054774161621144377495770321370282151802236505752637796667403108845116342754544813970486619599614747006255038063744516486720936419769606469396961419047465046743025224411083693418695738706783755936508211118489927090434351447151021231946728774475334916236671597909651527642502937113931333142355328828167286829483779357140998495828449912535549116395360636018027607002866233917307672358124418535784559569377836107583588137608894686172762907948554867329844006637316668688357187500453863462541346283446213940987440200674662724279251962567182490299259969048652064338093811861368742156181719881009844931404814908086778631779007276026580317919558997307060315921511210802793605255656667463629831221717598000287018965413810232846187511090954266463762328699717470527041555998014222445170786603889702633587295898175363836007956390211521140961957275271750231271604764265799784064093926500950747724116766520931236196199480176351180996413352823331238831576354496362008877213505407275621991243277839978849717430401819756055751731299423818766574041911416713906456669094691317647454900018038383233053754931233939367098801207386577981723262934576892259624868369932970613891910852195123126358708957746078571737418895531375185287784316185027292005917335270510387488257390686464093723369503985059007198271552046215449692339677267326459146932927814032010657424040285275485404172252261587381135767691355553006752424578243159727462682641840259603392304297325091790807559611100677636254296223495514302922152138849686340500862674977083573143114480252275152579812617597241965869288038371341939975810235327651657358503574208914843747584778775495910512479158835570727015216829177730698453035159409021544616551033921777977218664337721476831976940566062243347862422561760716343670260644102751983207500713855651104555043338369485106273273008090525926550736648656083048078235078333556576395264743556485748327116065385122867277157057207228809619618857377144474191531030491430008679236279894327066740208112910520708277262125021560756944662171601069471517487293380250945628264025857760860340921772947360930302615632564994065060712963642573650840680564242725688490510901792000588249364543682883020334502253760977192657667718361957823918613282510918967257436725671541578765711824187518990116484817525133307591281960452354626062979408762837306203682415764701953598031287290191632426305352919739424625801811979955146023152804098531290836446431605345677245500612689768610313419160503138362124288025414805432457062454538110384400844698305558530961234647089162530430418038237473347949354763283370251713880283427617701282858419273315387818467842652614439557253328436365458744074288509839579218381709525185813026110226909862977816582229207300564881501513626806073108760354528849029545013970804587390517766602207765894806491787382544644697471846134462216337241379369136261995175143773871482907415324221168929383748664701083318064918064992843208061664505499321896087031469498454589323879048652649370786343160771319834441448955931612057403109082555415848703719869741965742002404945316049339609200749919575155864335248255267269307353643480128894191574801481628136294770691422170978232837717470484864705059703495225107398270943383782903472543786953874404334373132624176140121170403417527360531560239392303526010594291837074015769753359708389140003586651960598453059921663625925417318629908532685885451398247835597926067138870778586037364217513704113264988510398826540452436419521540834516936005049245586548364745358638803188485698642591852722286230833544278184574861238951592775722262142383989237037458376704842866088046544504928838283706673136388915354496931450171075335723938589891893343552657335319234274697780740348993250342960612385708604632282737773259320517974331731976811847892699512123640886652978513189748676537078397044765502821745708425770482664287220180014756872421975660911307680909254823400244982564141382730359271915975173772855508333856746418038510416398084562357412161867699102667472917479730756556728915188046933893161342976067221775197992386675592724182012154725530139422294566327628371653091720724421729059975150271062711321295145590851639326495358083828444810424552491665807724465713560073694385535253662352327216123592330047432260410486297379989446755221819186650305541455551144162256831131986831522021969181871731741551934198807851963794528697054383168486196595973603092064878824725155270223785726276579180986566402807530911347360874891722608913237939558522297077665694197725733005529046627467895156271009426408500815153639145068622667211588804322389974231820519353009807610142041712248571903519562384443441134234145067122984553061205160863980237989780136758111375337643406668860938491250682851602802355879267788922214430382841776108520048678350404261572838891506531368365246801392214637574744996543819511830681963237165376690888270752522515839469677175426252417897841143098534765704963314448676682444550627334709371235436238523238270861355193968547125305770113089657398378791352929694256003351784321316587527070390153920325201275697905979652818732752229344353068538313679792846253507497032753035375843113545212079540691293994243070153706705890896082513100828868732853277246876705538897477996970161525198628184850157304576839515791405312244561927246545484778391892826121248500581412927793518290647387220477752563882256955677220894677613579558872123416418401009364210774962896641585937946286244073092270348712769311208813255418313997875225107139844622217306740990383451157666436522891027798066820198743437505979479311065596719768127355538382380463770072773603430570305543128470535115787729691135454934564984099588374616296053988057469072494687435780137350834226047677447035964775848037344513182642809937568422536350148771744351374464731617923412395657182624564492585648528514747666309500626867567046367179982521960785311833576600515053182962290810155297800295463081774091936097633079588498772996565910080426769525087284973772594492769104199014064705886320657509900792933473907931385667496749082974893008578075670901243430449377710830563391041217222387729171916177638900598998464686959365407525102260216503440717778930079753983269368865888870790027231363884161009011563203720366979506857252210988765634270556691334654651946337596508674243544520624303326871284415897360752460221838522978217801022962992634311552257825211510702712692234736324435374480267719624948555312913624624935751397468817861360931157807643750745883047736301424039987400571171392498905996987357340088796836004618728229114171242534947810421948759721816895907375339110539021081477470573884163198258693930272951822879106480987330851701654343093856406901442834111360712385286644705949623338326795432962113744018599054199726064459805288137313006237096241388342275790049932922341042389649123309821020985664894458892423569874526492178553026975965584185749272579708338542115827770565246720951075588228006572482803955584151521301413840724464577028404491075651703471275442800027515251989146563218158507446298654896430405675477060302573391472242002170699117883171576595407980742888458461891521044590523069747326041607328893143825762001612745461936117342456261448361479932417140601639008926312297136012701893808157306894446807636249994744916719047835350857414010198586264767602726977455399755470237864576989266618225275796661446815512444854598813676920462496471207176067080131712225279117618684339258831011798517068039990933390899690183989479717692588488285077268695839528043348536959841625167196018026033831338258451263841026567445172431305571041890210166831054670726482609901797336113788779716503470276761910337676800017089187090031947873845566693262077276939774220226650530313786956247766914020915023189362467784001628567553078293535130168992683442494948278298993968232903813263780770389154106541803701230588073456565977147839525809299786992881962970012249428755809549636379968528244442233334103392304801568310557271717838900343756316729884900619705753772944946611289538963997680006375476205607538823145600597751337689293431219577826169783300331899185164308273917400662487509790723808015976975979106513263816594080319937212140394302623755750066387957693048643399857594178647887113798358496296988618617655236353336477857699858821347483707855626688884012280131612146838479977937995190198225925332645542398611339461614438699647702625745895603195745788863529381212488060531232766797474314855241937126396638292156692898684248240437131351710219196375771736177420547741722846152712726792415413694649615931224295367048525464562450500172817374015326898235046552071011625628575958863345734925790100526698610619739543263537897396697648191098363328518460415631190026108221659121605814879901888022766583940331135910723250975915604689485061407316232673342369338473945153796649496082826346294894313198360746035005746471014678659427798896149484992243792352827830871077039055390458456509052198783390147462319656333690054974686988323414389619735947256547251078698091051502797586477173013679868408867556834535426224212289205853866451217136579448770253865421261160405133856865230693618443549637177963983816064906264943580961538746097476404866758679920734737985942050305398216868467607514540683402422279434143777889349983476728188566699881469190224361070831920033307240058569595008823821227873139771655973782680961425192383549011887159274285816467401040709527642713967520973506251103256769454054565617763045089053102804388387209780522870458658364189825887063989414696110696114675215748673642454276110062065945294986584940388736924943089211128169748670994143606892681039236638546543973812727746810556620880649647686045333231854219937216030296445054333013125819955105361188518182585661846043961101635360899037722566330548415723170318868770779228954391230024460815025255356471558297250924896902078739571836884687976131244320774626599015110505364663269903199977101219520947276388655860035689449231736752750099382706626935346315917973035131438740693352113132814133486418182443598526771300090494086025471290448493225642081535018362747098054875584093859109959437925878724702646910729129656522858298602964960576753705517519447310383664493647834828809925797829157137356027455493951315104897473672918811733510737517282546807278493288077657239100843017739076243725089346032787489206991994619527061120183293439193576428679989113655398633722272912696256356305824311868736099526300855814221232482659079607346917067769817679476616297691571936463736384064551834312227704858977653916625078319716812568820014216996563223124598946974855933842343557040202929328039712873403249987988449794422101135015340144396534366048441619752066364037394765379835095864227539140078791010285203697446776540425063819917753289856890407004947190476376691127049832342873010029398812162831558429564019301738467462319884771085077710142847770805114538468306764163246275372166720560931020422439317981423323093699947264516036444835935487223845268879570343400702127506521072335395052918697676462488916491321644465985106788965148360141299748881316026610274958130497547908467581569769093204157033424351300675934052453737182734480416853791498769515344103063928196202978189395212610336852937785191272343642191772394542375577753613841613000562598903174616565798234014045784174739325358304190255882832234960725838914900753880496513016829940467813070914626443597892034639468385273276063008492093080630345216065069187221747886143125920373532833694592635344321469769925789923529302994454828727354056541508649610760204175394512245821498341871555587507483105722125210643882015954520218455004000436079280421133023528865718861415271739905526295715052995630345052815747035714239311005864091311059427941927884773730247371813502712259182750034443036741046538406588504151555092175358502762669811276681173871968208970353674272413219939241680504043746334437777306472685152491774177796242533598162456736277164924826507925658252270024638303987161339077158851125970297955139650112245527230293730754498157911329686828742678020004187916694135764953442847488385943965428225918604325130218184337314266578753817869350534876180197173146098431106358500139517703704588967065453150111712070603850649996415412148083048113969275932881157190005199418820075391476233245185446405263552699019391779305056873932035512628839516007454214782089895752038314732810962630374918274442971082446343712719497268614890943249450046311194740313543340097080007057464447175132906130456807790380258913578770485111627670727774143331979699329581581351302984084663567964826964359327112785925462710064153713244019961867336814953124182250060954440958765928710834222717163705872943114581905257354313991649606111064863597839505174112410290434047594969345738475253146393666425880948377729312984468109958133139411400652324198479929215819328048526500203735193099076279514086637643901791613681834373466043461430979489442368890034152423400154667594959054243165624294662819074514062651424995728397794844108605367414162800398017183921269548598754799526477224654103070573624506886350538948997194980280757346342285224401418054686926567716779526957213238813599060744538918911901836371300989229875530844963388548782105709139843315807953281344601410375272494426031544545657434022605974772451282400300989753411705496101799798588223065781635062017092216937630113888297788895161965412169499525248515305937989815768065352431705388158473738066772169080781502957816549288784004606497462934869249643753830566975490601037936861168593710039323722957459878123525263520883762221059437429638058773589712082211371686595108669361192081846993494395385403465322349196555765608103742094724164670615392980108365724880563213043689844405838376362108616747359531420293677554745926052889780531709098890794804206794142243153503804944586785166431357295285684742122079801836788026158466076393271966416057735338419626701516141885963476482255933889019451474900942902951080017666472304293105378363837868670022240967498068381297091310063842608758892995320229538430452521825558092675793044460851550761475938023444316130669297395494658731791322308617764073213817002664609831452251471554537902693671564462637054249689137523839772894555848976723702024971538550737294775536992079680529900855817891588064736297131839737902910085483946284505981804220723194937209662909507907919746728702470287225765551346282111358570832517143381969569800603342611070625000619440522640545578853735993847255054261323312606156441657457304454077289664466386363826178292182007176621257894920313031891746551331310140776001119423348864277472010465719407652858813365625018198648692758677041692697875933302816474354202465824036152247383912842245432747128876825052606773983855265989428790533720492103730209005833308176629550556271449457779195699165424818430170268569392470147450391556089234474659263586155339445622601015025895958685143158276473977316066845600382965797989141079485177520537581173916246342548261515808982452443731892264876035606589465795300352474336944333983126962619523437613798603228010533774028661297639032933138294616866515641426140178270811110313708295564284047839526936526865324380917721711580997872773448446940399815658427971955412976975936711207263956414390899629799863367801671011124931324153751024675888654730432674289471580567680753669293521916542421405996822371248632222988210728558260724382761901799733610361810613989886102054455660381892856439819704211150740009810289798822114355634956985668086639499696795567132763150076523072414549844264750471936959238022264760138331846989779777737303082008753159127433769375333660424468236917640791754282921504862482768625471083446785705925790087712526263806590015600661269732455414726737584077053197060033681435412646688790689560616221923389555618186295262796875002248814337617710060937101324528006210744422984736861767738162762684379702328485234760551586053837278806479123681723090674348084561388067977871370513759311900921355579110162244267371381511115882530928925529979887514555464931639704415319998359658468904712624409759097089345598931573372914438731698158471460589631617826736532839244650211125397023377151878170174325836847670985373854552251067296274737232970419341013710510971879024673358828699320515484867298126409510811256445100311557375654676526159486789275628204514862333452720560313113784788780247188109923849157434489776656773325017592222786932745157572992828687992716098106016812275663585265178505718963933193666325085877095134789808154395929267020456980235815654227415195225588478433991603397360787789678757651401910152005197696911341892159406648097462756205568174078911584911122763866603473986336741228252612646453367527540381247234153031946111351765948114219458852341830929462140697056987063712689244049804955194297353373482883104547353238305115581206302479894464956501697421356469490721274030366754258619253599975522013713649021557121196880175916690267078057882021577973926591702845784448745334172158720935473948318674154192693138400166703580957245758395266146853597881468084976711900505167217600976308405060199304563648334227449702063982020419099772347804771846746859726859342458234414192590667891940415555051244133324647359731778489494587188615102595040623129303162722445934746542524496671023652617205468610848831476612030362581302617888966903470014281265058603910566724797982313662426005429030315420463568527465680116678993160576779354367798639126342101498000726374090959791619932842246267640999780744661538612498891110875293630377835219142532263696371696144478174171829985902330070834514247460635670524907837366280850616956601912666373375606314504370785268765599878552173172426027910639292605940090585592802253813538612718805246430168554850528704696936846262133180128606987807129652155490062861805949843379350484739782120158135075501679333437930824705484136209648115436486748881980578567500215056662875726205058275345778841088595593890364786762618774743667875450917801242658782140978933652369601655016239368161376383442235352668047583925617646742170866911367338073968538149495204678008692256234849737752187515997366752741096182874517811283781321197698733513575476000270391302802587470349155268767779586191140816279812216746727211597295111238568954275002455368282967365351973040913045401445566339770934883420027533475113585210062078274197875007974060400724568891497588072798171931989086964380669792435739217890782076059978099393386613119425565553883662298712312819456914391879620447652884793309984677245092802459627215499076107400989806406509292437150579319511650309443857322759321648451793623845119837305860264308885510050520930186359836456089441038335665598306765525918104147445380090459015138746075869032081772327240272540543293722481592251176313042580864285509389048416890526264045867148607631831091947808537563253065813397091361273612804664795695082201451890689238388792581868088939756044220298822256180417522080088223896563955602280078654538764401381136239076738543560799498452679316589642387586319265926358079366666619396333670493196832685354216564793817211201673928273455247408462367111327742059233194641717263175106953256206909528061686766169984777722188162014240722307408871953090565772047249067521465223230376853415390812653777692766138927747668374303429805464851212839357199493694812890891644253475001903203269027665100325349600449701347488221301634476667019930153800789022474831428963121637113091824937276020407248260579950784844033572791618677881256418346312030176313971143710442623959049576319716166271457393032475419570738778951341556546951653350205206628553529785883098559988998653948076816290630805762663264326422349988486496941368243805937184685038236392253639786576977829630355999168298899418652980659354398137932968758326444493460016858582284774331514851270382591785740640182122307396964046239572354540548183583080778335331074118145078183714122537256861602174076440539093033117658719410982630700302919592190473442322780830543414853304290544790253115788785255267925852835027687700957688691217802555915866157850335626615094689508987497806706287353486892663425093680903748147219571653270662613366377679666395760884499776763054559182226943583195320490199632691248217179048706168240852018340558738724231043367124378803157101052404782603353064901975722655647432891304085295077681409660847435938041232678258615120265004537613778584765262782770890937443568372466720863867930338526306275640535000434966131333499946676696092648272038842536322843609614402952536491167256185383264312053516064164015980031517908014814846655693106412392391920843052452543956701792852279692331707576841670131519719259791369106746516445226422211381190311844168866876384082349919240502883996381213212971055354522203968361790191609219315567277746178055063288599961543477082049066711399857939979261835991779620681562364273921965228804452275266901166279101081638533955444759295029000221461531515515106501210752969116657833330831623248388323163323762712265302425075905531128869039794346789643650362840026828506190009714096378422224034717363577394215141393039465240415719201437307926589624102848269992392215868936178817105973938627801614745417895900700014896859321260224631564344914887402491645301235477800154518519850045576408901905422274431460937924293516003076824263803480985418860727389555508493817948820375781103424127191128964061350564218136199006406345001975373310928744546324145045763477321582161483564657574766122185842675557430462659920467535594528248131025075872569421308158519380666381167809171592582503366757056371953554164717650085349880608555496830533649346418045823851233852710642719123638295613786330217914620603388070832057998549680581689948964165248102668689598884811028025328732523954149205891793973133596825602290367705794286722794788407314260119882410767209686922234516503051233098558220740543086939298853652241994962654548894136226925190583225775210238254200093623745623703929949435409182011057635591618028191282219127407814018225323776441506671144681663327147307313046744395086124331843599843514663762076498310642857911595724298611478197182724515449594577123147908318001739498639907122208887701715957600325763147546933032199661917999183434881537034525442556994612387290454511692597543680011671100738392589592412624338713436295373178040667579692453340955286215320586817685988468342593806132901448820244608668319555510504465008272624908833919742283269907330659775817508535597645843550449064426516935812428888722118608058472516341498792073860612448715576387200764911185562405401268042416714320500480346568161668554739488067721834225153372235578891351974997507606363326545208125762447957952506953127335649383644523164207351153475627882482394319702825014137399909549323679283424354062995837358226431428172171146608341332207859852341706058194693695864381332006076985535519524848140354016331638284395493917426280030183422842684009822503171723872659952594210468847247594100645454472650104412890018614223552188378285127800540299146807764495169751929421261816606647698247468113833293025780410048347771639900459999775636054073194404087858704660717665724846046941169176595902992119008246971752953931931770696138472662183334008578519574768797465308367532821476508827584312207532374618732019809123696500474353005336445204435559262828002095029654070883804019062849119296751202602465938454190646936604832930583750589993913244820553409572993483342194786963532150823616831549817654841111943413468027001255491644048867267524144803885806711038536335946431180392076287053567747481973226824697055716954634445395567075384702849578040014730914326889281190835493035141670670233108067515790023821654303806282317631897336714945104631433526494155456410605721495217994378529808670411724728151616196415887147732293709001865972453841390812011673659716849427814552448133513939110692133706331371010158738973751441841674850709800295439301014259148079356524516994729189240760220656671895447407463880673440645805452480838879053962005494752762231488280047151894646335784523532167320577728959234653454661563786484195833558995775373179815200028682819151345117543380754219643750007553745094649490529960382115707857435407213504342861777781649107779089560685454001823582979186647113174207324458736286538350316102604929634919727893066122563014059962403371291405080773937417239156810490021339723540640267243892448099257887757756089126875593834633391908951307075560346825836349050184826463555218512555282329727959647912127979745517178419392559262140708789053758056866625372001397565696954313925043538162243623262618926755063360724915308110371637398642529102593828294614874241686421155527750351482221589009802405839379388552444653768685135205925576056431682588807351069606403059239836137457407059163139009441772267636357063535368344072585711415822502980410578270114486918898309063278708504387452927044407923898961986132886094990256054089723576656565295978596506630507194384262568370446921000333165414318611136379750503274203091237678462754062014054402701707210087161291417877594779749205299555758613697782539422464400086596491873780742118860031135968718491333708105017828271775449085988579572984571297609224319558712418703573940533307223763518183508573792224933273137910923102516725729727956316542643671228660368509528169127796999317606689786578262278527775461689040822290412490927998313186661037831097198489434759815923625835022194991439120704231912724103463096934745562724626138365781551069064354450556975212604480406366485413955883852456839089916138831331595651596447580717227928133996195387033571188315959444873977632587005707885493141381433023257885884051425683720546022215101126426699943532772336793323224219548988161347692899317633425633583630045196587556864489167877075060242458036721095988069747808317136514890007330008541610612874178060421856662450486128340800728195695313035215613760465318683893615719847259800607998755600347156538139192993717360768109706724687614330369853066839840400194836077358951665632887937950610874507220238143762867644947264764140306131773644131754202124900323549418827696507793238050531631195121169518799213379542344785674088942681933518501737804846506399381886378979047623824878064656351889158909188522541531596801583345133625434522100846024097280407555921267090099880470890784240082354537154597444659648543013204980859069105293418595670800317941420045569813104094273228117201367082163219816089659168687157459569585228726698109775222210300131060385206446593837611571879177944376677059609997112166914419002718886719526637883780637425955101997850291853208565302914651950628636156926602910690809613336333859857844806630581116156567443246196035540824336010876578630527168437245633371402367597133046583596996400707408711992331318093923909313764103742849657056314777919761393946179283460297486786081113236428415919557758185325994938239322550097643328411763209241624691344484770216999093177045228727906445979098617788450170354352155614018116163562761267207766018642387390841612456084185740241652519374976735053640787798787415340930619579867119322644211771790953556724017351650864383458785225293056555904589787738848211929118437716122568560540917188084323576310205367705806371851849759368707251924622083501801078304007859319091776981844548588325243226883032752989112361483132166585351654133633465888021005146365097514707920339761668701453229748667083028999633743093105594093881537530847292041761398324037775169542148682347274515966938870772422845947134108078313072202547057617779941907851491311717669814910388221299040646521059060272410760226541564060938796719521764190792268557131316467492058700155837215180697654345265481431846765064899388634181389456062786890155036956186680895360557622242950615314438705569823144608306985028937757416963353337267265855581605935938756309083298493338708956756586540239822383577379128148317471414232053356075528479335893532369116442742879673871349559360149344614477413319059494918930343874007475467019251726050160380069176034889033219164497783581155624377370124715383797093900232992189797514422094243997660977527801972611247217848081184997988419521975563345552862992401597284137553881538263312704564556306263678911945209899718722167104359918723688254364270742107491754011144647151229179521995041074157108577896854337702998168005967287006648159473062743044652157852832536678398729349852565911056265302517626800400202580876433256191174357841031889904792524526406259786101932395139616074903013457647011941857738093793971901234835714972705600479904538783437895837765575142765844423642238142017206825161855916993033997721263823006955265874427723355888568475853227308906937200224471581879122041509926030274727115207278441610071228327168171340522133736339639861923161298934199917686030785877760151372753476824612395968018940034672400146428751671436577021673700812759410428314776170203085887776010414177602722436177034223084220361961148261280368165516216835381611421470654039150677037730430026710233117593644068664370315117548295414459475537537554822746467641352002180339421660948945063640194620591064026100872072940241205098566434138810659741022561110923378650669905287574254175326216937040903599632649164679837144602732933179625665211378957559972003797122696564301724271823275655132162734638906370250493523927010915625030391397147682159373807637578130407834872096352522717761627504218627013783044059996956303356883050894331125163633617216925354386699179380415632216189030400774091610212608169499677652744758638852351283476163225301852303350666636752299902222433533509107831255513888608643283696208716758951963822303841376850313916119092673536579626610860801563014918557427193054884718018783128938501988925557199587201705520226178948314644568737187622237083798442443980343150899265627379716951547372134228177315209695406051394294731791900037863791852486693223602968742276569390330069550740478343525638331682996748687552274748500393492640678452856268865428853079926778385840535710480863018636762913986695513111285866224035612951290685785002005630960633103276542143069506223648967166483261070751286228756218703956757315767543827766914194249649518672491088113256262696231256185801866846254266694900477886336353684607774490540361558004671513780380321898840916084599803859518209281439166877127491834553780143808130620217013738670393178155191670041394615733046624181283875809330295194999578291567737544208186661696744746252382765119586027823890306218687887584959561315081231592836672293381266177696403678399626910547358636173225930452493032817313329869761795908033375673651440986400505201741538501912017633475648366262244273975597023796370159289532940849763634543926053620200621318924826166400365442805474520127882563081648964640519552899296686177580348114304514859598699129071495714395212493611235291322975812506658714249644515641524806910916182597974662230599381845442365971080942995045684730875825152258964623027114129738329353125761185976198983517514365698203782548935133559741707401351109508077271209419315021916961016162503982674954562167438979165085892341888317849700843132002247033303782812557614462719190843065193144423743689082898058037078174374747067583778784178686815935391772298456245373288825539269155453435724780812570177190841049783159401898233468972203569376852270857318582154359404783732394234873233439459188843271957284636190890802841842594106192608591247159610510409709914078967470666620700024864385526495272365266557839306426737349564866229937339613052689546092235965704710830805538081902406965970681600124948375798117690709994144108692201437813197832544945209837639774022852508319668720075231564644027365289855451862727914261243426699412655762026268617897031801746112267114116318992466691056593040398670947097736611990830252809185644260767862019467316958757181742932592302682243611437103945905621668556270628874772962165969321644219978929682162623164124305633621451623557233749938609147620279396351457743619571999589132795327405113895122128617688118277083354156450190469783495996538139261737646749561790140342199198316226045719564286549233392120341790180872367366562585905079816341271761347084742177961491047063063797016543069083982766619122278120778465958744260249000585414702286804741561596048645490688202895480800869626137596720065992120592970858873604877352870780385658717710007122160605858372902474108863335943415315717447173499771636548152078092748514626376469436911482170220548573736388676385427382396223086165594140847295852704071562793569381172647860048323616507576115572125560079408597218005791166616169830416863683275006371887972530194226251768116488290283368301891279730881286579952046101192734973551815828425553217638426020755152247203526485383486791540618668067471774163721166271901333281363782968468181013133761819159595430851592773945040035220857611147121953812169549648495364417395959210946377981299168323865357053755195917339568341856527450002337255498519863681225514031203832528847014356047237126559528574707357503953074286964697227604318981991211585158779466446792846878285657844717032898922460600381282584019684319735486357097443596954526554063668259680068294037433593717623370563437869096866357875794965890681148507092829008998274694672701618812374491392339781863741031482517199188604955033538254927983847143417441111216215848461776589899247194812938225936808428342655802320105141654394234894872803334644282004914501360013230751077121184053440291034666430743174197046855767865154260080278832985283541697605478246137522776754745205124766628789885464884105369439367395036623131842901892183795117663205880436071150528116240343208403469629271884235291660612659610642348231383285569364401001916575030755698518338563748980453496955853332968028912705795364120593603095540326991442592262274857294535406371687842550227544537203556212299530201955443426119224359923727211647882894455957261401327056200823467617797496269082866801323237907529269931778722536887462141771583031236761337453377533696344586515199360608280556787192474079330498020753260689542101333443789177236476937798596490510677915790340227140641795809467902002950799496389193000378039272364642887084425589820968176484036590211990284023928894172094800984807552126938611014286272255063710536496303525646924043802498563762790046730198514360208431568823762939449148733271909716042320861650599767781962045812113241229300891476278381655487443633660026425686860878168749800877309119611659099876260139236582326886417183392348924881844778353172852707804352400234150927237497516337054804407468847560306145418430781530000517755059533168789431664628591151157468599716376767158290954734268212847394968407311670823581477208724681018938894750170524062142530172359441274010075494427898406428455193902650765967067554133661334577672873483973643941525726794792640638878164255669134020482173237988147871325617628991320664398074259883788569085475234339957310790513599433400230673701231693825142771869877691953634407809749109299851358797424386152153852770921153435019118022368072051079858997856819629194548875435809393653895770831171686689548618795680710617461403825958900303091600186223869346743664734020844361841307062645471419348120940403663071217199240751296789487981286992142651166540890909900167651961163715068973973546174261753596108517467317844933790336037446386975700464697095790856267075467083237225288251851802201450272601337001176279976477861308755489942309592910381761071235575396930434838611241257909104715360864658947098285185213041212829795447955440064501274501047445221012653899422132678585485102260508026784604804513201652007942789269399737573668985247613513730890802692218673077576406602362176171131213490395231380128138496967247132300698777077828038420919344008666116316460131413340770240324661319304605168758639949182267568844560850603241087885407661092281305673255928405558265815264117754628147676595424923369030545872659235140277490968106260690947616985102093612368527091782098758222061100840978999080610572307765388974387935411629655047097018013900864537941270494397532274368803347373407950212313184193314970191788426247308355771864064083641046887462531006459582360835600634672965055133828400931851120463114959928496081999665593671570240230220431934595945128807881068353393298737975538860030149945698371163590258201733218447071739863100631832955937138193956177458332659813537526370885955134398918947379494804772089731536337418358869201346807730973669999667248324452180951304073295014611141252453016871490533014368366443202160640304665281752244192091719058325075531242502893940323250823543483816247148040102975170701435432566945768674714498080710644486630916650667300987481698238415492548938954837431582063469369258923636429452052426011399611710356664005988815645628170755193061869044811446904296334570176387500075020504163757825822968233026378738627271405923852755127712249417208797549963079883230454332824469601326328802712879126782295942965507477734468628087736845571196131687858299115381414019613658144899153159846236679121179334853119652869565450410610902173455617355007191094547322659045887945239739398447654362171818658151541542557447493945514621302377262921011508541529948108571905816936832592447521553853562220428235729453849410960262329680148602783606329613923012887393642311274235302557360183255234088262975409566508838760892693499904317153486704242308875723506656759870368264601402549883325223861437280092889690329745765902687983432315584957658452534360691312701472268980612553365466037099026578114893139341834357319027572677717367136001430634449602557709539627023437865367841525506562239976866697591281186298267385944941592006821304797033743615151902853218628803859209544558989270331449914991896086998607724689921466768986426587250954623579473867386348751020281292173927224701442070033632570474996155821084329779004538663714191390120252481129226556703968396353065593144922580711573697791048970238344725585627809545736340289955649455131258721673895547253476922300422395631520579297011418302868542822372220399275214557069027846297371249278725084775853464787537998768889928439426943721590636296792773364697508732888338185405699966998621367120654376582090536186580276543377447990135374932831225059082551802397359007626666950858275000009445641028127019439184016740431216438222297987176634713419732778161601123386062784233385265463720182492982672347797368931917247303442327475351450014306423394136843106526121359989946197857126481434259309770274041841442743027748095847132269373184408394279624789095656423584836401492189169871023752981815407323605497065248111222303844568308904107272230171283858536273613765843200010936106984888274881307645864718527998102031116108386673784955239879923156499757530721088893130546184589879476219446111149208676675832705914775085008535719715787390194933779974801270140056948789148256883545174475548098198549268733933711888421678428965150841718518655991778431325771981900995512955272220104942743831691701299946303311785455511191508845820367665612307684942780811762589658713791811518303521282882017386686711302086936867766776960402808228650176953174838758358534310351479334107484339002350866271219622284392642247966045510382996963828030446774346335442018272887912197808719040504109168013431489179394818874017450835460504135249311638417508385438456857806631943525416429617263048646311761689288831584201241745153462896274583263183761924549016909854301074955004757634002409998618964288649243534004838503709304954792900086457138684144709083062894386777934924100212637258797671425836994675082778782833624252385763592728484533159779621973227028853215405006836861011862756256343446917325070853373285923603906401392439176798172693878371944321154801093649314574323920332530758428112785006650859404894694454597332022088083298855400217119035756021633168530790455191314943729866775676615594965738320835574464180036388853446061152769600122123744472798599696923828264662761038570719812628541255152217790290477718746308978386586202625374875654379577664467741209207779228458060880439921384113395349944006630300178590433075640289437338428503629559186057695075116245567668553088810138625777397766730367341579150173250925506861060779374274481151681631158761774891683083015548444996338912398867500327050021657406843387795005618046711698272863264327641597454282851074801581276019543398906845365445654504028028747894560840296358117263459691773000308362952515056061880174318263488632558162715656618848789555321790019828677740278210758072005337547529192639867088811534781987019284586372579891149224975923793051496104062975502698301842544509865842187298671265133167759535048933362285480534397439744842005793527495989306420893834932953323192531508348927177126442626853327220452888705548416010100569333087452309673152190821731813280929417778763807003565367405461020300547164561160066058039903479916410769079269136992557104501578092013323750386216108906510887143129996010944346748260290317374257702654244544008770506701573688394761637862036178871632474481739734160874241348776465479085401886248259048484253088724310759923185586273620021253627903583011120414506759041323004761492934465128980448153435958304191909818586311797892061459297888317026674505080944668703497728664149197256500251123976778693852227180500656830640484024086802810061804006928999404943905857951486747302564083540985391393611381578755520703584537804335700806155096578167653204419325946268136428879657696626258222361788718115719213221160562158149586610536404779907454157149264959416463267010126694913346993690119368882744621319101755900495826587113417588494244727250105353321716727049812003452484565851298135858713560157234820286540810179736886099334986190702542202562211008031887668103324684895648894178248537007142803615089067681811428718469803857093812204057506656704646727648712091199836224149626160309548782597552164203267618961948292102441790778373874323109961575459179249157535287454872071097855630696499035392430494497500257050494146765008051115495196973695686716841490343194293900980457435862964530838083258907207983588763756486144612008998543739305645387633125476679491124405296739295165197978160948470264858941523872915100931312118142544665544308177256297459374632668532839007417038290128090028315106509955620973292093138974469243554633245077830820173602963639448869323213448199829131405774770006746543401484489634369885413981537294908267626914238964442512846132917140110866445339366170477900004185012884817541834799210889568286605823764922833322958167546632808509374744739942766383477716163420751463425647364925637550155435804407242241428435150952783395434055687245256210294567469622110055722236867852874023397316377745536439439839462517309957301800122075653333204047443841957192669448436735188915557306940217828592303035723120056121004580991003210781980266795773257779360902554375909138521158054154201048320666986919950926604002081334226319959807267847772273332233954538672211783901933669081112459005436731171557040670683862537611423459086360350269649827635059393645346112601743938374168253607817872132927430948646777286368685747893763120122137806331029301019519310023229872024859614754542438177038997278517615732180703672118657573712144559820510204910338103752754607602268690989518380728451961854141036684209514996494771947622428042369150250080312547303077114609221996105552422311761400909297200663791530797973674908139383133172067888309506207361871743296232885219724488734167362199186322737065767453596180757061668919320853319178483717798572019492325529593310944736075664535052170228124418746604332583821055817268661748110014214409875967636947866942079984897316283321032068673332695558809241237003973827955267900666245122602355895201009338063009517213784659494487006276472867663607094264171437967620712125969378173416103201159664287613001379355634528826292735681994255678759249500887841596110690704441379818386217558676261289598631232947108337507767902916324386062596856565805254576858097474484300058323414229286400294523055377811427445798456996637678827829300643202332769870236818932724722067047162596773548111158727962140462474172040168025037434735209334047911568695265201362151914821152573620276072605503473637645888451325412199613380183390660478877431563762219417354084133540123107002355471672243545005634915107680226054397669418935118545800202130525048984424648294136318522607057823998670106525402912279201883153115244470243871330298448123239725716403271387995852893106988894912431913089294985526798480288874043995864866115188798313292743418987580463130450281628748305807020297882175084468258792529122813743836805384036024015738201590584147093260369018953003320472631311738478291806637620962260936608674885598605566635436416935416539707519636799273396694742380552598973935951150003990041857095772004509596027245921445247272383415696952671296460616853472252972026237779494137834178874480285467891669747944148748132224397578331028679403836881850656469751168861944463149971628993109680981111573865191103637772863663561926369902702694441049235504866235366349952817483844388809347325743306013476942408601820161435195304639211721984871930202976757385630947993953057731984372022530937473219326881455425144795103654579225596081942132740631049805961061106140759839458758839357605927793401099855414462287850408625617067708600116948474410138328791619835413665189813239022541546709186150114862107140512339124065496379208913081332240289258535860786869624876372916433742512287931137271542729367378545371450356548630290944938575952614369232568941208252205697283069760352479362960836158161995797122615279766239590091701165282633676321685731203011720463998536958854715692765315532251609069287159041083751040850271807838945396446160487520579837953294931066010620020668156877909574037780030358103317628353696517390129307935641097845628244654197923100592154426573715958494722795882674618137692713894091497450910972899452596030627020832093867285108686704453646882335836485247348812911826791677495322023513563859416803872540533963072335992660635141524465248183000783493551714343077391494256609392240965466890263844089783534575393491557447430049924829980537697919586393425753140481849765982979796378113339002394826443690943606503963894947202285244875715481413546729522904675006686691155907050565633926394759207525040767150718284032635336573855618810461307248936253976686063238333952575556639656386731931120787645550329222258089111287086606941043914986546939060647157213107302945062565603636706303450144878910282788128258600652337036613742940445142124264816300332257318593182158205903579165787628056145895026226433642138557949784075725078926015751849120958679396913274662774444880310929296812292124771570158067546378921314372947632150845448854067212060616209632694800943020970712867229349826384888691569533836012073822532712802026720110261609057623422935749995852275019087679242965929781943516889734813160195568515655217881314905598399763418544907681845679381712683069205968345994687319810568967282137887240253704832555175283509207123337200318550195028620586328503484034001107247668633330717907705573773356773616399414133531314343005385159381496693786041045037557835188505718673629901613221358279633661915777355074732213554746970890869068733273669142947260072864518914769589324767574848598369666278621723883250495647843935844144082615159682208127054372073178555084206270252226834596092920434591602776195454268818968371970805829116772620178336448305432149249978904184830796242107493169065714208865314547332408004454116861236150403909501512393933528123902108666678882803253984122871989806622997656481388131175102902104731066893825620680837216254475784840132936757985860870445612140111252453383589827698105816287294179273393578443419491294821955491413322537613752182916011703769158597387378626079232941689873423749614188168998079078570397480318623904108979075226836245538995723377262830926999912376636195980648123167723503459760329205772625724424760817702903036429240917457442823337932908045990368052014437850103476303724077066337799161406369046895229971790518829028115877136829614430847038832786116368947289379455618010259165938500949917642608907678930619759412142642924448300115924024188167089962718644877058649842241539406410388879172289087666947455071427710320750479886277796323202839903533348848675560976024113912565093194391534272956641983257926907691631185180074217006839653167585370365149026777637347650696114188605948094571197780947304824573984808018476492451857363648660182939169161478375813510666613469947105324000090680028385015556346147142740198669873680213930106881026593979274437644973415640839750189748522649145059159759065352014438086275871250568687199032096183662359318524603125817222804509017805742703632592243482360397948790024373156907294896054800299468531484500169400700688992497779387490364314451256362021976581599104459656929955284530966748852739436418284420415153829570710094679773386247474398318293677972894021561821185446955062978429310002055739817767206794146448996859500628874707562268960993874372072599186895756146332979783825585145759997030311608882270793813236368965594161238401290978213138639807621973350291385346366530090409125112492007051554455061743229365031790996690761203401146165514112833431920932018131885125585112210744869936986545359630257165452387037446514803084370963121075766929623608049461242468206212252004635445293167877863915735009610733809202909345787206900304302720374052407039093509994722791679111307041672250505991558245990047765967264614151033002815632265079194049329374761200841635544076603933703387497148687926708279736023954483328226209433268194455591711179454388256176971656063501728834843555463013777039041260165174110452449940505148075245361424752079284208287358196308218683996976820706820502079463975237627137504805724213786747357136163590444707127607377585076193647062027834314494574816301220972395170510412105359778699136632637813197997434186021311454962208807471258253844854773026901694209015562825218104335964995212433277120892681068944645792289727578283815873916119725492864329837259671734320647579626354779285079659053360155890831593777643684852862035323206156382665134446958475815905349205644642658777909793186602534459237742645171346040119348859525685819321818505552375857754167786699914807800053470531741676426682898456902715815261369637746709048608739331898266373944128343842216708067554080436151187947248185576895395474832825109770611850278531369979198134145239283948497747029460192424898990266178564003896371916702664200810445331535725613327274246472407806300022428236185626957480345914405054812252860545704250122574313264597326830594059839092844311155497541369531829261131814942929511274750448720596519926204339024523201355853551747375096002883572550877145369572194542015609227541662978995860596982075404009705485598359299261711233753493296210810800047407302062746165322569712330282110703125637774114548751085481176382736463448008243504680158216335243929249018349354176000787795300150281721037701616425811648951856871523816791520662624516519786966684909133092877438213740190887325462420786855628124191525430374755834533397159761538717174373737520046832894868334088494896108162761586052036169611407466427851119084614278721150778965991841149903018700004626299557184763950062702383559437721211559815362509703303523367562181777027242241995811343716141568671926155761430412157754866115566186953749663357601201917951074628982435798932551127898935315531733706523677293261809472980549983203986974146168936277614158560323051372500549334330596969800155624835288617374562222724093435666764061923248197810276928637370892962318723362859873744765910762771556432998088294677212802981873262271505000619793259840360514539929501976883943364854655563041795016926397912744021434749639920600314836447020731891089939250370632773485913568550476126755231660622453701310581297808392858165929824666770331422205313361855778102289758219963420603169613586152719295754929537212557228861580055136698658424491369128428486448735210012624773115610024420971244217440278491428941475569781826794290406048409412647047984113529944997987254768793416860991766360743156725656022380092687762268286742911989167229278362984304815696798910508925849304228401995321967733527795846120507006478469615367514344851490355630964126168792924152131686938138346146063071990376645565743087481582441985957623829251967854400800338573394742816154090745416313089317150250068999473486923657904735701891822799723952997110567845261766543853954054291160579051245295079048009181047933943265412010360473120074325034359532625293442589055932360395849625796519668606710681472369979481356998679773164197305862974680175968086560094073720501552286401345552443142556500398951753037722684293357275889174692691896426755421975747388534049733952455351407642558598878942035418733326906967509296384683449708746986700245886947860236891389727086082503837769913035731062140320861233528069554430270640486042805575305392722558459623525690055297275375463936793817454373115449190960259572983744715684722877765964205822709659697389660032341375880312723649571217491023546844677150943186552919673086331984376573537820413832728341077611131453059577302306296354459734881967572293224404793271170875581815978733305699702166304547503361350013686485871910294080897253876298816585182088832400888860661642458096197096115478258423448828397498284111000990581567195579427752804019176770308644512020261309421586109432253906505765633009218993850786040828122072007755191503687149305467011034847141439524402667150435391378750395658780396278690973115324941527287857586320404646318314919962299349928353890127508391953245033422703191785279706154923701974912388367680461878203581614219511080412358922998648927671317110952696451240104972611311361487847498134910350820901612373094197077856408080651663576541278474398997128179432335880350197971390828263216048115916881773820071842100249260415034607469602202379878157054950811883971938839517032476019037148215767217851695489483585556315253464732717177885986918517919590098613093198782877591771988208097155986212780590253306848554567931294371833450524838332946436161264213919728738769126093825403826837682510191390505594302433130523221416681571916851119261132674818926670704816293120485936592922617263903503960233946321806623866172124860657656733499596643897819728985474475844830606800039055398411358404898566529087987575854483098522490263998499357976598741364483950656885670120420468823905176590093156821654994384937957495874680370613229380783537782685869875687707209249782528534091021902438837987738153675439476123322224621139351750008907646010439485210131638240133041820728380274454987079230492748796559478440844055245940750707317589822690032452726703443963673623270658475596776342647495696818839925357292836535973191889017695955916874361018215584508439315731036413232355856970008568645868764739612393316695250599261033525104576401884573511596657421406528801201140643785257647836579049991354663527370965148030815004129347536909611971256575808205746068463901562974993079109651722741143715867290608094743455797665713361383452473860268085183654261806120541189760784173194579279751535918714365912522046881637960302082583206074901554542259121763751095347020394737068644707511898526778668284424604041124868042804296886724904790908510271758520300827858548035241813857674710136900368039947688620860978220403587806412542257054042876222146394650301593117701753527615316007239729121761968401657116248066109530979823205565076841871452893413729877679364512763252479769901078014443719812828497131921375560571958647956064441469165109158165584198462145720529471502233490641429826156486334986260403586980731575663569073545730833220826056800158039591162014413768762648401409195114136014490714752929181152284229426397422610224825262321396642598537641144054709828654770684934971661549537382163860716976277644225826798440542841478291920057974340365770706381379013483671397550020701261799188050769544027912820839154128200640918162596813796498602237718760497774330995353724594040131260036265528654706225318370709635588242967862278023525439729369720890851569179847229745121745242183771988784131784332045867655263626282538969149155500427529331568833232388052599912433361607081062811332277278721523484124344205571824732189403643733595840229420575427305537141499725804246462328278490117936996853887297545798464479407130108282133100438292746046753953621467958183542000154816279280226706600628249034286844794590791175645948952171122430200765777701665572628484382115382902618303045961911754187477377360007578348273466518237975750708063585656299562806617721796917415321699277059835768676768006280001184179924693383371132329711353655939488340154641161963500717753407934408370732980743293886877152881547453577242096843025343411092113575453768069211586863115711979081685422607614758044348829978673393985008090728676236644811803426040643589089558610162017913112976318187179351296831017325057216853410848820157126388033653153896188385722049256192766813656596644187796048615572998771596221403265198996873040264213685142606915727444817443314470232900395087219334892185674965645768071413070638908344374665311414140949813201857756584361316321771177193171730763229589939633696940988220867203387038254162489572340700081060353876969167438350096350699699245686609578811560843844366244863605490057578438129742229113889833932046547009664460994365714477030858186168536855371580970647344034162295478397294150392487106479869815013483913922313264478520894494272700045106809140713681436268172391183384736134125166431387773895594158584134528724779128551360280848328999035484462559825621191901129729917173004703293354663629464524973295629785114563807434254333948336728033186017242231465908155606541680225267979385578545642913607733905038863493874341972670216523516214112853742798504050834919002391630433607546767671166547921604282024966362453807262984974894263942565872187726461449403809738288382021731990997748806932865401160644416017811934710356706755380922716188376141175485072742300236110126967849066166601180746399524666137005593895364957734127866419813522073600611711890412058578439691960790399477137185563773443874795103737582078638516605865818425639810033501398046204313594970644537426400733168931608893261263945470173658408915059319445718525150024031320881283203971422849723189867127108703999566256833191039315775467261714122503427540450163334909087780489908324142346265158024925387682877072312864145532861690476247089754862915984923376641742130078930569437460474424895178462813970452772592414788381215757859705843711514852675817125315512131324727396802842710402757415798714275289126872595605246254119287720810242904491092976491043263127312725279665089735974937646670732763547966081395499123436458938531401305939881875136718985971511288560073236777328879729937238908908490261076601297382416645301475204638673290364805124475865474937770371086384535801576864349185131752049042222823089526404548189601795863277141621746209922351087140486568376526724013666193479226805651319665412998487650223959872198833788059099267682556109029072179877163799632809777151653212130336736449158617514993926407926694752796225868877610168719954593846686142599255308750075191371005096770132461628687941501446537333202389526277741280895021973915002857824422950900540556851889813533808331010609880207916130863032976595478081962069059662843638336060654718114691035445987296357059520358348364807443984842355056932440769648696274079650749437479319155700012142115132789312081453448831314159282578841233609919110892961086456436302734672538144165281187003864140303708065713432804915786313024486098151966376018909504288461023222215831158427661711047113596869298160558089553441715958664156997622789751829784466735292248234388212570757568140166046090867285957318724742149710345486009917613210383940087207216610892543353246954144644538186625208354432711144934873681849660184702877445496375312941974388738908803609690335821215866259690975958137825960437234180839447268365618874340648539820130265546269395551551462348702547175847109853643913046461053662550330532228446226848627038704921524461059110813251805183157301062471290734191505475967117209791831456134237922221334625876187861419558513815972974923047453952903628988596637650216628517856990971871450939982172318005879983643978614477578574429884563836077921078371888542895973413058559415283915395578884765288514279774850444292125809211122133689090652267323771195358038085851336077506167637913464848421014460614569259735145188135302716892598391303649803013035586536502980340649423569930855645085413536038291176105112471694672596607496118043606070627062354296277730990287083956089205016523242347111814131793973998313941654650549691052942306335369967038284308997054054213759598145820085542354401033278841319851456997475325520696275097346302864138836175258000733377429153365576486763493210819902185256503011064233755634347453361442271615477110308594715990467694966276221071200408977581417551483699482178803667324942303340517277143250457678903481039592620093277304248124072153322890927849787725196736798088124179331948843679699091883694165536815777059531793730078168968425836807783348485158313493310062355520955523464635498028101642601133755931863518963006662390747406196169160751717361512869087714142032578440553507565318237137145148126231589243494133220737273286687808825676373460345706080732354097344138042337425830098864471286417574461010497280041910084208520933003001999651231998143377094810621551858020699514205532467061944178108910011522698631504272331187991990778310682313133831377086465972160819697492607398737685358903743708439904138971745306162706733243453839969038271055163586768919668298030697950418664882905844951725748434890929290110588480157961022602262481271200823503404537197831229820651374320178001319463030911517382317987409801809671839499822268737096371640970488764567898198664430925410734289526812922171767180571444580555218403581573886709316580185068152712939133806208027577691847892946192526628492783605752941419450162148356458238659517941350359698156426198208638441157363291515671135093775139762381190644769470251022581159921643807120505194155295233108073507524593285950593962670717003377805416250252430035647598349990547612104794623950546187128683168498601696597784845682615451561610256072236126518886062102183436465307779260219465783054652500056885963272461862695495210876873967684772504778592269458790000214154453756498554775325841053954259064055749764923237737764099659445959735318716944039344353164990491071525962876742636726225299396491297323049690628626414594035447279835791747434217177338572470113974708431727842620464060887505709288099950807910065431762024526175582701236365860583286988783436283854648636322505191836277755682527191984976902798469993425222261601514590848522716091400754727985097636784660701113700636445687336073188097097795725497187137469068999022835415911305850550997399018662437210664838516182441830074702033421640725486386245574500058062084532590661305209388091378142001172760165642456337701548045636998755345368322913136464049597796618860791623329023876137798040163287218438828592106812056462584565893576891860986706791897678114023622024000069298176417435602839127502766270053463118466780001917459124236960725355456857760807740641301051912438258958468716594619763072135008592810959306877903665957174669447283284597288009648367821479333433372352660719608383639547859709920612814264017218123332950665428934230569064440789099348886279929689972232132593886028013500346585519145741241527756163013919761449804051362455722458371637111518453341628309913121033739688500427320294331357731663349128974867105453415145009644138651386720639760645077029972301343294585437049776520231741078415896388949299924366327622648060436544868033761885648984785079208870843750460106964485930286520710553463207648998604324886792087665514762592212162407135436248395083258662966967777167666691100519644486465770029048218417420359099484978510433764336744421430996101486231406095359252897958314703098563429883646363854678940381416636757505296218944037922797416483638845829201828219001143096891472687445390082798140658902892638516794055256740824116328359479647637471183661917744773834546868436357225008569413848758081986393653293140558049147503760215308715212510750219505876356546869469473390133639807375524703025656876104874666995028493087423295391255689297720899944881540710851169818474942160180135357825563752127077026576806329714419911034006419220907809853145407812135566129323620916438839686915452227369282285122133548309167665129060089784502128534284386007284112061916683311087003390748539775903269404624682290231162762104342066439662655361474118546403351738252126157254375622340799786935158365173022940944530431835938559438440909274814659236264850364225818520900449720869797294921398850619482066225632345741256865556265306030902645035672917838928481755241536360743292699554506363576272718508750971383552041088637237565196015548795051206927292745860158127322679410857157490837634246647075569990022777421410652830424941086954601799178319507990331863435461204852310905127207101747768910734679208027294517360790281284064552243369142396678654092283170466887645648440968488894223862742805203430176348035118477503102636333919757584796612030045376469624502489846298559494018050497342457381163436264092939944839383071765822507907771966561572223422724783295561082501851345761779479225185213849068635623741094166452247287329133226911380187209058054130769478002319769592255919441799614366382786249572563159757634549208635088513321081497891969312603801946242871793943723064086516346857101181723522947420017655461893261649747175857467271960669555592692010554196898280045627946973938715100779794681157219721988126150315388168233575236101330661270141663437146102613954002164903673757691173142327510985255181079912336321372578342943280835035154463142593260901043677805537698026319777446260107043091397719967556780179937654108972561428508994507232075940053327283353116323614465562747982864964394930588279166364829805765437741569363983742524139288450850363640393608820753581282639347546244588621199618810619244111226195864844357376626274481371301352096265996512560166959744482842844471569932164153767628917258796638346046205802633896341094746422869422364143685607066872473791977295536092012989906870011097146608994619478163312516861022432000592444369105203657879588176763336104522834163697134998706094247295851671682291084863126379811935795402873807207504353024034531669957486570596174415525831715627861748793313709514771855013715222921169921773127614571732159673856615867907187167477501600715090690187713694612595383750663022358817529871905963617783000651975660153218565625768799489669084736864265365041174184403210158193950248872654947956568901636426016008386852231312063489406793452184679731956289425711894034386784312113249827969651177198197506977123791552299481648457956463082634074246320264717351358484969485377092860569763366911721579377921916353177106493415093831739312775303126719335335466092290591029989988228041297946800576755236124678787612343331247382303454072325154041690030527197761978124000028672680872331126558078222968538779035979067695911543267799699903270637613183615987039986316656472965071348781496643936554312348064552150601738906547180245999471001200046202124578785009988929207386752154664376122271513380575630390095007372661315720292912593561464624402625256508016725474928156763818766608951136889252501010972881027438068360434035421372390653524868158334011598928315106388156944003877195327225105226139065960460658528705152596376165666266750951695803881178122359540992828369171069408055705612988179567744396819171878571350247853093222836546793860243198923748956780651526420470796485027393254095713278350977669462562609334152003378791796217917478270588507372234273673917141571840112589696060524239975005956374602048127250346125782218939685067015580861611841129383118921455493781422813344149530454864201582609784771295360418791001130882579317059349027288253313274558606405207915662360235365124731707942312668424105850864879937248681035600562269667731595090379320459023298541246420404303697803735826447231812301362729591823540592966447940260405721684552958027290720693029075295140856164368411609841871125285480626800206743935821642356094169103411367015205478402268045058411118675440878522233483588185562964218127734484830666332780405030984219057241827020243375515158987600364715286788039126296208411772026281910128258508723094308060339562825380563236519192972693503036144163307979420728862021793315443839962078729663727517528302485998019894651588096031034399160851373027506456135896127008733329551428484304243651587489553825399054722144910419172989008228196925872009002769912325038701630077615634539733369598087626164880245369865690650300322435042717851767813563582499353915985997682880021405143698154740801647418296767712751196723067890432659019558240968400994667017383227336122419342917913445991384616859832631099160066654395407822475664867801188021379529754916379056407167994371195697275774143020276852704135284849843808125092752677667334472157281336855846062755191526166146628140171648617356248706739015076061715987242571992576277416348046620502057512822391026513635841711926529500349961222420192820980902297985395558480832841981090063237531326772374606091461322447452363354118053930095518399193385715158924754445840315438261202650779318991543403317887499394563399504878012661051994490982838362049147908914056661565711205692167835070813411937311567623390757178676996090559525634694073394729645806332350200798496145938532540695703643510901803345456897479715205792099978408023883088254855388485885400169542885468505115925325698044849700497663527934659380501253471706993205180626238708550111808810708395361834412883166914331362445492993226233341105682238584014151576033452462768936758083655542528872953981517303297792450167087637853325362240300968310930970292207095035100645255383947482391169929433859627805694299929711377070867797413661180112032347653795156582187929039335468460151943139073457139371956807570431096727638042833072041616440064569249193669142018429621227898990132414916705162641959027815448941441957425616242261329277612063906197332924586508017496000674597262098293989657895216590030371084413187200226868615478900640227675820211782862824804448704511332260347770319779002574007044009309837204244274375027691192847761986387506868272217621606098218997409349474270625267996099332515066177367544365633307413887528147922392282877530661488216766100430681507248419070276759810686384568856281787083543436437691549475345223666005544551043269162627152091218238543167984881121742215606027309491933040386065687392028413676927435974527850593170830346551323169586977067270783878045288065669945115798968955758407726353980430763568035928441239496263265271514206501536676989211586720240492576668186689872733571397311386895025488361067392993548193962482686920479018441602678734711731391234501551426459717181330788976245424010159652574998508010938668494790500584129550710323304309368965126449609917189036231952859667557163720969534856272147869089297972834688992285871978515852294753585049556414223387618177112586042234491645853535628329733418575537678126243675537456713118811008279872215136307839379866386513716476433296965047445459727191651572646771394949336216633980124653503754572122934112674362605381458163177765237585741677309317485329137059600677289298394001533805754925499071882941014747891397171803251850764328568262910341549721981648367934938728281806843055451286590438525525602944268461436267902952520991969474161113142289908782736375743489363836955768941784752602974038238951450779882239724178787642651469998633471778779481799605971805370003318873903780806261705978275665144145976989100398967614714640915382908195713392778136270373579645803189691977727006990281032607657109841790387376521527791920501011611792382210636041476282556889063630248757767535853408531926344293392503057487988858371194395185756992822539704765704568421147946247317167816025553570844711993388941204433940428179011850547570157725361665970217784823035220159064626944376025645161564956122067963626637596696903942927368868540515865680037025110423487020955732104315263719638397828933591991605459245349120809293166461723693231978493702228466601734753134844306606627117645056226171101892832871725399616336193904809019258519092372779651275448605412995841537019068305997608593332130929104822930895619871786791865155287586357182206137332430844442596324505831907299727163442283706979369027044126182860063704214341261187661365632504476529859820844358586192560025750545142917775539875741556553808119039828310603714083791803112614679382614005753803703212871542816461949416415505251545417803191175819667740954662824313172943970260791633054082693798011214720700267072970478112485701979296382339412905421904746870434349401184843784241786244051569858845346603499566658305675373853722876252916608875293014893431759688473092685663938891446194221762911632628232715904954872567417196665608180097977368934201887939178493607740164599532293704427314385795459697018584673079321544649022269258898041359348921088217092753068603724558422274321305237101319307594304050177753624296728232871709479989354116813313214721152092307183518975707707822742798430345157839068296095124544186806859449789844820054475978149509287705140036613885034829747647493787456930848474995306414785834278443963749964253401071209336001925400172853701337416380544264754815968952867521385588586129318420977573862389700985088250492470039645841496867172530730552447324614686926223288250408657743252924034108475198448723242244534092414209279704644185210256145236515770361945470832482500972512075169360480409469749697983635956966507301780740179613246556960223263345713130409213018294676412665986622159385277940935150371348920350319880088419213916892494155741598145835774589534356066699404256298699742919390792452031987370765648729214702733352249764656362350821591499170831119290885059401026219824551680053227815691609918916553885599434346128613943984460978612750942208770931637184847292016102356020243851286473190100494025856856713456745130164218558910214949581884172407412938688327588238248074348740864760550810450466621799726897895344612656018948653770836383154842987384547117017528179704262767970069879623658135473068010472280432392300250369870599374583714971998262184828808796916341469937093065864795727192044072321678967498288019085450703334461139689551829439607912874332831173789306314354878448621181338753744557076085196262200758899721428659786971812240206523122731419149060447870972215210688646412290391731623109392290184787196064576931365208721607331763957238872740299595811634938166031586849567079969722227220729435747399177947123169439432750328857758404292097741499953309366008681463731147169705249416898061930062325868731667695997558262892930902919385464916700806075322040757381905611304402538792659746940160033040766038299165058832152828964668840271919829203537621025615017253272934183462733482952569576602900929595284537253161771424020985102996477259148643849551407917897743688536424817148433029844747221363581049385381762933549739904382138929547036057429071485012532438649186587141987076737293994248986901647301287681514500537332511224740419741310496126299242383566925724372059796537550682158700787379650086286082306909581539681742962286723445611787765041702674586687100524508636689066898786816765810691845596603607987297168824069439938701310854427211769208757312750854331835741084445253043336238507222177843765005035293727310910608687910543458386209844188546351879617718785041053518110672420750519378853816290050440173032654030123201201310068497043095300203663124664175128979275045455170721225190343617229272688402206017238965309420467572401388985690643094328761930725234601992328808450492127004737506322007595688442677145478179197239262774606601077566267535838730782175925791306999265884088213184671927575639736054786722227743968426186942025442843056232932193558106660038641390344864744160178600239110833554165535455238637937347680358297131674447177257200150768697264406069862004367906747969660794991114151054068388774927087397195612814922846558020492166403217468106277469849094283839366302744645962883807923531616589754195023888314461829806262159930792441375695623347897297745907226582896959469375959506769697027490347265449462700160954380411953466294135329804253990698907669886833451934743147051579801458919146153348542469362847229815392819985556045263357014579977772202427402026078977405560261770955792602082729856748191963577002842389144198062585244840494600919870500995596788197672092337918177703047507078637300702362841723084967370382817615378465307193263376290527730586719311392485764753815143301922395517691521195261225325672262180086817736324944428674476394156808636491775182409827833759264216556186423709879626290816597494363091588161428093612737592120353312756283742794218402145654466677383766307185164226623897018457466814844785968691389015732594144382565105660191722086373502451117834290103459809717912323405334713110782887068023498853797401334635405250554385041749006772161113204935770641588203482515340276602017604474623736652711166074355053960507107448858455118910102049827951568456134534149107928523074729783380550508448723557693851575811763087575868905425772543223160751201264567590879444815641045202441275023696525775593457130021392289284529572071948889144557666794939761423775917717086072759991172084443579577239622772453913586217507086964409226167911651865034672704207590507037242913779680605860972104458673894636136839349026408494860483909677522696593184898724984271260233018594738701170217561179340711813329895168169859098260879525228057007295577087541668740383812137367002451073812000914109828658927552119018272755963091999699778350673579882659717893138069222957051329727024311530855420237969039813595389394490907729654310795916859620360801737470939886938512034416071474145194468455165626902470487019050938992438291452957392125958758798194474598909669310976876444339042868324401575055579918706688291916008930766772943986505895981328844798393505659757451630220365879297237773689296233511912713845367342142473796581917123975557181708590501046227674149894325182052057727272730072590257181222020521758136895459274945104505324041811130854396183008498298672645435786063490710693289643484362623713463930160342539789474462392488297355669202849343879014876647868214916973833567491364962870031972991621250681991250570811425039596443414633548269611543933017207108287859027076039708706205420415435166630589466620163967042532077396425683811750396125071729824485112784747001421535813230231926733764558288386719655076368701356985904450063712560568071340031787054242553369979754288719634558723711007053904681607327728018932740619987016193991632277048033818472732010072547585229950710272490870160230225071721958004238026043944967190286617637503236222805238282192267507892693549471430980570962706548994458671386127597720741262671450970794018989049601202545995346966269057193155744742297255097721877050051698598706711066035256190648277268948876776278474182800278093590114700730947845402418433833945262495306248608848986893346577402497104072010811700897165479297672985659152341806845175948713476940234060546439783919069469350343316670330854725916443199572007894529213556711726924800721799392466812514942439882099398459749937330199382092082804598687130952853167842382740760224414567182850332666641428482459704089162645644844231997130992537501760653305893210222784208242327184970684065144514203382013687635863505952148662141377528344911212600530741631081232310022041400582561772302586725668970247794018511667906095687418891467042035190902994404038902383123503966514534077111430604613639898970168806559420495325599691163674708973365576620388786053877318730875826372805483298681093385415948294294121507027455907464936165871856895875068161249905877272905435264805288803230235854749449143924743858939984778031038929394879411301096391482279427232595517416159908663175418179306306111453252162889060028140654787712528385722666417937926234991943931408841030358431629602019681316445211867455460401556418641220664674997929118774652576215946133189290443798308424198847300801665391127429573490571094468540476497703453838274469293506380418511842586880026768217132781433470691138406882098886943967549597917415247823428012720299869931902500077683877377280378700683719707965763842255067081269444498579825767617574165170423219380019676137779018517915263563725142009687351755672050174249566067328145079566832640835689381361712076723862566783755164446093107876778935691504365168516811778326987258895337404413166314841135575190862397555084985429771870654539211282295105807330984058195443030065420883311473591752526107101300443595984556910753249745329327916046817612083626517773972251442515471525504667816904014891781250336058802231000079813887192164205150385868414544934753930191379102169877011350058468514849840654808519215616185185046415609741140908356072885115872057899743391209304784004567547381518511162472274662894156756007668672572390036404828561716442109414099771666748322661992212933665942498675634495658032083987264048116041982627390167820900431694633543870698473973503604875236000485489670325071695508411338132477993076490877282457329210498911074894115392611210689331802969105796348669357278650208006129022152124150257337525607147274734643357128721967919998492208665544415950332802229837087502837379167977996830666749813979027447947210998438578361310409614394655259354311801234455702331765338127983456238510475573942224361927620386526085522123325953502769632587278452039546841537576158384223988321699025727865784644630925921720807192738942168933986048359465455195196459102309986907249403328382201813202651038824325648605382260736541640422302008108560502930210642157445296443122984292517993881305510908641585020064380964477675787446528377195436773866184729019414689392770724129444267803135261490206191761597704239660458622640692357501309470241838510092100851165958904365641099469348084816676780086688215794566540027967975234600278531261079485984252892550546504320940669069031632338253727070825949861672421240823198779397439730008846020479886659102068003866210443280181834071377953008139349649895645570025379740075296303822209329785529893091532914529417337127501360045824097987151020855330806317725172391276749486634267386583249315925906374482762412019809302550361630939066811593887625135290608513744955785727057532897860044753478865462957230382596613010491522523589728540263592337973406719059329644504630091513648248346827620097867972317728622690458832268546646954919726652461502020391790392764304364488239063019189542191011182814292073959904850821043380441500595926109659311101012385265034504361564276404918826195505074688169467515012984717718413068736153931235246168912034378517298602339218578876906701392334080432379991961380628945037632488166181252020181316943462899427272928041168267642494971966804442922974793031706734606711326253626475259687012578183662820356067608018413076006160057577666450246430257303444708782778633550512241424702720736085426402507014285106280367564344385026338435020846416175929316388223069474490353010881385756415420133848165160237883801889717035153549339464928520903963434811746499696222627008987137196324708063737765476801640642465738998394144303227250865477157367189232168756972920929666363778389878629317432471990343328995572894708689101214349108723080132738347278978859687569345067806749503410746876660565638175656035130597083893536148208214702881884305513401859109066644049913037533186175194019971614469958364012584621620718564525138673327649271817895409253624973555678442770750978840279072543269530302810763141416043866972002758171272063879931531854584592985821269469161468162866022521302803894211649232149278009213806969185035820877548018988400039815871683067578331816912161490331982065235066993944550472060134210046750562373876691086799178224312198514012085495541947437368883215666141965893748810861037522542656786312800500947645626612435370683775949661648900379616830754036737596743821241467449283948577941092374552089284045533196431498431185013587018156835271307277487507643614087443983022185239065887498552660056547874051698860448324635963715754228196935288239661586250121771423760447751875791074806925125642669786150182190870301424731241796412815420288605865317829422810146780830704418543044137041806575709166657641988157626960912792327862050919353366589468101328012515718534771161105111367594124229076617612486379482722931542118518715051081354317017566012111364659217601895385625553466585891971559498456668071512924128701283254896563038202265636983867988268857112307638109445065783532358807802752517541653120914440030065067564954234035267821709548128291560919434188452530677319745850207774101121479356440177868395169559482394210742374597880497132934863503378099137460109300597530867475860008876077474075147605337910266506686193042006286735499071581086545047434658554899527281920272822743540341513230746316576426404500774679463809046002676424531705413002269971758910194448184424409617207983784735234786940737067591236263808701017616386021566605659045119270831323123378791373433455884726688236535381793807310187650980457901644315497303467554267057167465154379937063225865344711935553366771543571605375677498830477774241824591598643479152461683559442203091013034775495359996046427721857809594390775100874775989797261743559910795904782772472491828450786908285839727699964375287610222716866708284010303841020155116772826468562904274238660095715225242291371389091291314295018842925943929581423567603527446932379048028855824167584660022537495348914837640744626438766859716242049593684987079042949394840292034549114763202836941253565226453139296625194732446448129056317783904637084109498416174457806475137660840985701314062309043398489631939817338574820401814473780663845290619760713248755644094758992331455989051770707399905502380936146312145009410759224923573103050615911176233009302460945567883880343235536696833260678185072264524985816565253710541205951182253491752247364442590041569414755944980490559122517337969635629959900883512980593491220729877204316723447097664325907469678699043004821617950373903012489958408518253943373210253641003590970691260528225937854236167466894609709082990750401365520831915221154218302944467738000426458753489739289298271061856270912653340492414165735751543643296461251580011326127085785073735999283632435124767368104130493153170746888702289727333161641306901101099157277105877404925310230683449358590074616527734937879281824515415041410162426938770183331720097273563404514966108957377165223556538008937423215613324343340788827959918999260017777281097282434105623151183967646798994521728314982538589237976798588215814286159625633688644165182313831093545647509076806025119954848927759377077806811144819313997986615119644969846049528815261841283434843878347641537552591873698225937258118189283501322827859946635980775381932446430772832864987525923516797517962225680411863860095394861121845948518636400723774142086543072594658447144096980219574193780011296643597872940385766009656387030657830052997330783003293124302432598473894162319195099493484208853567517110709763125732007245099898296374399993439283657918189410445451571543719949492201024126047030297736901704978758174821901325326597602218648538330042147822969361778488651313257322926727986126150733563970567112588417143521119530087211880409062211506620377422463908292843059909761586832229212996066832267692846216629210767942792058060996701966874032243735791732344227835345701703902052350545830734746588044915100829496318711304812997440991021183520281348645819220667381680670551909959199602572075019740380550548864010868226448637689883637456593142211055387187087895103449062605059603635969482371638459395488972342357311817732856849230010049937929113697328229934178143750243893599789798366872308350012747645287306863466921336666665807120800588562510522545069398479074285717714769704070669684109800391565568432785695864324435648453191305741617130851250300270908516611418436610251692010472670221977671762240342354193538486607684366845639433948036119350843336095357585776187789769622025672850529172733746990753888584019141187515657457982106646887235684312510948502478813563906309062929539361144597566858938426449922345705826298787365802760316636255128193870421401586599190517055932217313289074810156917737055189150974246381953065669735350519222926672698269907603315266020026015019183492912791147048237854988804421717612803776818429632793274275599292921149386743985782791721333196379744456028354331971448585006005703534412816449913964707109333569982786544950883335079881882163347119439852639312843493529372269783040738820991046555433507388425776796065103312532922652681394982819368659107824779502372543275266146481714563282714877883969617372492512653305644655627896673021457027469727696556666504375404099332774189965580144411723665651118535286790130435375857438914790015790220983544184754398574267703193633301587544959398640836577097362606734492950579125622725387511609378842894402618076346921539806739457256981582082448229913888633652840585852189862535889932824943823508371351043719687645672482240060179896871122707290822813870697511523760866537100710406543883679225494265375949148989144383579844445426125584656624563255202422445879491240505503445053866608066179248793182317102538255937489321911758850421489362497415386342504758932796558925765866172326268637316838044789569161460551932651092438205717804206903942238432593830567794579777993724510781543999244138679037371779071210951143389513958952102231230328867848136303902168140240152450109636917843176799058869162821592250102656707474368471265174903524600668044233757735261023388751805004134422679432016483517667029345268248532140482189321268524330335743422486925937825347868648766578098495018924281781997078992314860313502003072125679340237576805825728400991278693581012887507235041315150529255495924582048148351442917398963659009048588546179024721460433197363264640705168687574048085476669140773751124561854699195820207017725182625531668514271918903313833049147299281479643367479450718385930231318086725909865836155559239711588297505867558272700823658578950114785650597759498325031203784993316016465561919419105282016771289242956412308978522589559363508640966302501219177437964540386952344072292496689786665731954458864079671173524242987057474151448716859270554803960873613932921711410730767683851628796090131738674583718830310536003335435263372287920863548180335739391752297218014084407669520819559817720219398907812029038410081971932258312440171612808125481281396539093842455585516274073468703141504420839856862406152987264661289991823984945449731195694632196040693795098841320081380160053875947806860964176707187324992130864839732095644351608022668308847820842110970298582608864318850593179925601844707173514285305872496228043639402010303755409061758917658805471144593469716336580393955634948355833911622628838742272769288127197096936328899249458800823223672589452124881193765169821155618189265921123309852973389623456449885812815051552367934250188184984755247366665900681979362692638718257759645448800539987069085747432102497570196750734137629278767354470418431620959655886633003006844973357612206958982473308331070252035475978827183276453773159083759727288243668031702225449863886976401518414044780423261224220310362084186861806877927374109447291825838555697583093981299946153474850464427066745684255877864254103584725670772275746198349155013760241994339422206214553823082117549539670038368121882130573189178556131964849812540551752457704810726571071776233061972283983045296456698280928087693476360440847045888204961412187095670047860334485195055432287947698382633969911647631138829989622481502175834962122134734609825740551697005209643101644236215715510153687428875430725394286382950002623718092281802482002149799354559560837856380707064078505947173377608294062007994078665629991538353523716376890196698058722843898688531971298504429218105130150496642976435756853077206913369478535967854820824988344456338604670515669504459378922733736825818368345945431672868682432663017277421825489869466257613632080409245263571973976587680287731775319512945030800152149505233943011769330922205340268497221340026673005928212694233901687714672289198668879997662736662841360031122035250429395587300080114937100715105832246330025149123131458360856032139975956414314750209906501405369570372964127632209585080196091124281081486948213164235524899429996579467816618501459753005435527096887846689173700724785651020844126452921729644950398590286926024813714930570567776603951024093858907020451589423970305645372855742020745487644056893852592024878980313558434556138448807730061695312263461194843869693528009403193781330780347962280470419139561908683006235810448344036588598443789061151824975833395643636175625649189537655220810769091700801344635282126538482903488120608595835667168321015303010121830065052434891661333085442952817293267111185504233116399841357141621586912620275094343941057398323089878211619759211022158995051011399937245318593148392779816756094122493309386922796992051165664720178021289402923508987509275041328257163240966221449518171329037158383972393591285670651935772282815177692862626189371823307609623176363975701650753479335819954546154136588105453971583788825988506709368123836504050988805789254146380850215696587740565033140038711999968046546868532365426895592186646239265639102049036340304382276593206905333310867746220726941559704645578443730125033960366694879729774759364810126499406792872377967701860939470690298401474273254302442874430968225101496419873242678045593071729497979566912589797462520595209281032240361483064562703599398256012357803938162830616908964901366573188959825622818425228870285251911478671475330362183026007824846519957600950344354293778349067757836273976059342170777481680679893457913103956024528030546103308763861588418707203234070849533640902000713927774755015399297804278677305936019273983491232020197640625946863051599056347175709594759375546568203180636538254050843983820125384520520552705040228598481132247167754149217847558539792307763809538724942016914579598063457484749228942040725492963445653435724877043356522765705075258337275683317361918067223009742244447143063649291347658003677299644705514817520963980724690592356232043651838859147411755704210480308495264672262953019391098343511621388792090489904604762412891894220481939513994231554764237958689701258891654424490495944105044273217647671788537212480748020509171470930369160242646293457849592292379314353535850937010294323481570550781408329332993063983796498943870277708662801655720514636291660086057597683139652577847416356265755674121226880482235646087520957056526821212115884778652343824959395927820464959742831538326871135931723017628575504743763325216847655362604152810226135702800756551282518815229580851234067822381236220221156813974051887536383133660642378508461736152157788551720957690501002600764117427379386872716206382215343481789382392476443559383536057335073055011570062648651533855421258106507046935300492435965170290642757324067867118750738285910482873269968991478758933623453635886330472967125595526535333200375347792458339956794159674061326649168937936581687160561524663898133192920465078726536497687263045847992898243268777647408707594323356039722265255614494331503825268260009103147238075214729118778279151974380450960956869772182554945795783800047297603537424070705898706885527790947293275704513375431554286112457024296588281001011306908471132322012298025855384150673611256327891765866153583416859686271144225274019122754181568526740829010858299836918820676767795095360848027794490417108886543507878593519929051528583367295322838613114564194867113795111324853757676297314556344008652662174940479279338749967535196900891402831500762334389558694068331807199687625897307172078091336924293139196189083146494451192025717003550376556412989335838984201893113739943275877902179857426726391681232821315219351247458941376533811810313813808420149160106892733393568552739010455155541445994024359180725618363082566706480508626715379627747072793145194163286966938393907288250360037281831264759480917529738952226706681148796229569535135290027266355104601133604900818763426495974432461927319441272824683997854442613860006834840530529359358575786571996314494278612838959529878049595123945942384246780172295679168014992869314276545620415448049727387030222792608841857370854104633133920423941697410275187729981282844209018081500675050523720900999988159118774793005700228499410232197965139254892380912635566880282739496790181641588453251132904666275957425028290344077751557751888577239535589820802568743653932324393966482789148371199285433529872341194278554640607087688623715287433196854568266361080339664717468669463187178849296344019212475070232965839878278708686199993724450903072511707229479985798439316994853279441939930038774231244641265996352606753186541475317710067787716588625008569754778427322277050533395037248826025867364284066769296267069913333633984362991201770182122458219603595231268486628049105826394764857989935699078958379538563119777015768850821821622680781884067529826209425318410343126692205754111460457789616230078022788795865617588842634221947313568484202359666235847627215981535220140884094044494831623524253848125204062320679841610194657309111368316916967811650831788589661314486648352191167835282959129012532067068349322338884592693315713241306287373460510310681891128673427966326122439122644893561659413548221223206229460645702095326842463856721252160761264104659399573814506690036620223864292781462185513983332102625635545406430695476767071245336428840116063234313385984376932152309846618793806196802328172039441118547194763695563108842298217801584072005982737203927058194027156944403436872046292657055128402383337038225386345749122547396559075255954850985726304239638719088027131275866491915936244286274164839092655445659865178570182361838995555142362168605567165184944246669547188290995617166847319482786132388527924568539240929495011305797484822248548484239000609709532805501234872264260416280223127592909621074313949167846671492572294743319351363886821995116649056858082043938994651100268028782147453154560855803595808481779623203021998509523252047271850887204667999301770270161287285995334738463336180308895524354962355383134872583811249090350285090788527544588231536871741241559529416015080024416310513988531206224376062408912816179621055610753738001925670498242503801785294426746550469594265006318908721844816225879102645290482600790382591055521931757607059117921529002748808732534737809748847086292316499105376410827009353402715096552317999690402275986810409890017599801126638905874907256013645684253059571017902243252112088148140876267210723097274534394482634495592863878721308271159062120234544053564024284047821333092420309856965720414694621135751610843985159515531299725836300108639910899325305681489425151194841373291655603902636043599802595086304082002922844541024595683413575815997550424465921158105417449933037728953457378170686150626570365651276984846688425778509220038228742650988044982733833483618985346099765676514094531378840581667953530615589430997279745459910767857145519622959940200092879320446951477037964434144502171372620568659203113271290328211285668196828609447546662021224295777584803462785656312028797304752042026526793000961766718424716442481807593212804040945811913185338897753389476766762573813571240227133563794660809592903499114780464307565899458372136640977650385985139191425706816583750633949952651297179650057019460974644629981929139322052388186647398263669019017966423660333137496640830536822545490129760663875172136575506170170014647351743137276996934757836995254104926940709923181209895576642795382027281682343785004226862884460582255337865915930067035862995234204930668803726541806150902467667870497906253319026642273204463379781295440806206340627972016238641624324353054147412117850492800596246130073619783640857134367714051154753412544316205547091820233604656826061213303138490279586427109507339757876305570432161974416990471888486075007250183944687712201735254962545468322583531223384968631866827746230847854125459912493933230770222614930365999453497865683161665824349146666418488109046884699464250871939974596281023189220923403701764435982184520361532228420060850502150210534900593959055240574355463234465040884290093235987942219052630370732531010934600802787128053423600547282619059999528285523928845342555503328341890142607486614959256007555390030826785386342055329931552589557430288772418720782973532670082435670404884371250075316339562000236089128677385290715665160225126624688749371241288624666665450383130320781449066729168084189230660326647816804282795310362576509160395755323663122422985552871026975903526429666220324163819725505079299239195819598216247281329716763191251173658469161854480056308016754183050309778420328576359401871262357864002099964922231674398394261735182601594598358418147608648676587410230695788385925086271418015232178279593609245321582936132042686625532332618753032099547797343150856302250360382510382762777127709503608961642642646591734526487301987856698098352968289981813827489824774298808967694284859752672240108811734300155676600121787032118823664490539521142178561702448236627387076284770092119845405702459425423725393508200186433481174308789229473042300299807290657049474457266946502338905152151488622826636904138360994552636141068457252560157494818966692171893350691819314885291504186136627915191638927035324341083170124236194590810868502841511972798920961648807222874964741191995493527772444336709115212700449455932869574557651278629563529801741283764394067142107219325823835008854097733745087628908049435302018860485867663458341510955518033349827288911141013133864686214370190998437942664969925833127844639322714862430222619987663400880427755434907861565606964515388257938411220707295203982294568807396241422219810396490050240765889072178968510366687643078074684781447337987544566041362682866152102777096612391263778180643439593568880502640941245727457396222139029123430212233112511475962290163179989971328818914941445979294137363973482832852490133422971739054772962817472291062129952250617730010692073715305596352505059180866856215492835799847004353582065973077127350964520576770639448489016465182331616776172031382407006050281284660089508687142340251552561959365168597988365635358500009243093494167102426326595995923685364185756401069355973838772436837528535697190536094355023059883895800010857135725047578598039884307991455393417053224138502006378407590439082605784507165168166365875239795633827180779078785936789832165343511890534206874192621861211526377709621262419140089427317551956415669250185157608776818840293311292380412910811134859833544992400040026939560985162220999294528572341269957470335741752947557987742321886915773110694759854978736758226689599938017646864603505369022070416555940468094055849588964868529917772961493214246243086286794699182247061065104383111481180069347914753347363432484198283917403982365149264896173162343258783098314371470173869297777718930649985123640598082318800378464518799361331742928759118117853815792136846257832912937660492930560347478967433294747557401962941052689405540586862091714074462639480433354493143440073155103496601565166164706545717811280028055833387909109174365676345266754644155343063450003448723664068103746607327366342553058724640235662022616497484427703528855010703973285448102732637646180419519358097024938152146920944782964462004134667770829588823933066788238471135692894266009976755787151300218717426531534327365707973789165473075983437394441287516873059820811518597563838403986959952998395576328281071360791111303222912766603848342562864128137960913792063089857135427004878600168850917148204217332347326640976673691460498747291438940575885913267566219036359937430320295377228598790802419617582526524284499349091082580085650614738163299500355641336663325875012858689966588805048548669125462779274916185642970918615164417185757413920777131167843077389413790098709211988785467799222186700328539282110513699542286815656592560460949131287238399912967603124128035880686593023717194403131577814493918083207291108170849451625538019000564075528628379992157621410131529444537111968926723512400437652471093798967983131909815257735665541029564257357825874972529655415727527652513286341586095230652671019699936254093545347297828086133228873430154745616031587184403593666656014099753942204653130655680874192251657049611527280901689453033987158560641614239549905666167736405701415059550743897463050072494982786227074702280903281028958194380610458875975642290994507771509826305725861727033187046923542963576383943993190761924307113333458434360691800465598107699669034223982340564822875625731490059672304890174996589888827554041244867805052603852435144848061110329630763324654174160464788337904118727854517475725860648367386367157260002972845895041594138441784877782669119966992454161277656663683732727262743032947808365428507095822076317746145770961819467859574935387343876844383216369279235540771600459780198927735093854352545016909187019392509194239537727002526236697822434110721491418719181060896642857527975930122755775826281756817493353647369732961194493615030617858697137794519425988182921120234061940538092439194033524241029830713262270882019923258953410011070485474721136010384535810905414034384359637758871040736826630730715011995544916007881891380496892539371663629204600058949630433326575116137372235355209805968120802844968813413958713386454764244094759989035427297365903505103261994421556562604751475627074144437455622169564189380730347875969505751479193358809815565861522470141846092857467644025223908309480708872486526677883172079575603133257690001488071245449914786067916141549392045600479870541376566241540860417260961451264794051557462847559632347793626520268692517681626726910879422482091662248859501957120040466974415994353354806226285731761315860770777239441489836121649707981366964632859905743039227982551252085990593578402163962261412542306646164167411948843375086621943518471562852635210454515503877193741563270369423287177585750099338497419961206756000278615777403502149119986396287009065282215976972727206522841862411873234555315877676451262864514074502530993846123171493774557973129433268361091951327691334463601539989951355997235716132545716065751435973668457027044638852480765565395862224073425375147156063741105324004929399864873150777582486817082993646407214994638971628611468493181675375276679489341169414371240393643717491116670127269338726995718267225300027283837076219416199899223197433323167410621004194812185263809377924455063508597306192793352997299951684563539410134395360824028046222812228909194676834018793548822031293054579729020949718343482457860587791351412173369694570013630940695032290666677938466085418675433316259040522886551877933307069822741474669769543888494064779904497655246686438795529053827788770899153940462997832168998776618467567765035419763231442658385141416927005420567158716979479148392707874345239037859805523416080465226476841086187554868928963331544976699005603274903859297960340241163779519345184223898994697263004054113792547038508928509089052947086832220519092391376847994522469740596711154962501559343906364330159898051300091630386312797925071935500895180830572465917807745369141034709567898890558899550293616818374718920857618836960594273441212238256566058069401300918045149552203212370388694305533272258286833461387867939217229168960859456899580556890148183050517678710873849140628616738673979046546745804943366924029563494426311623706286696633268439333258704203253245951772992462167366081913670832882658792723981732131920133969899146524346511619843997995305864811605001811655333169606776903660210992139691253940029417941363875327494627389972356092920688205007433009066044569821227791659695876910960740693020398790634091145274977730310218382629800021636442000736575027528517427362593091651304677104712584368589048026573122366548957071527080058209556999960605998849058284541930985392097767410451055484835410994565448520345882647326544022130713287229066846088339871041512678482567197492564831631504750975706825948492550959238829048104907719000903861140089703842307767209925906275708713078413452153238183238952771997904186967258539354864230965751558122720234639023865520946672626436212688430313194189874445786616159724415321901141552791290837384229647339446755196031354756521258510272548654712032818609759514738109246646543839287862770374440980570090874027451806980394923821759929610570363520841206711887215092468764125647046237081311631490277856054768803749593961342376512253436552320134996418583260514229256189603693785096533673116220827494595410305494102066990323039304661405844235925128040025515203381741564866694373148410561699830168236975373075531543547145174288208422904097361764196433952913226221996851423771512984557107984308384286863607482560706842391553708316239979206945028646161523682048112418849901392177128775095105044706677589035684605709403353051463229517245509421506891021830482800533801439131482327344041340848660764767642921888633451025172698941406615012681220720731897295102401403062153926649306286559395900431207912428823037552609706748122861578173444564303551198694475215310834958719524803633910211086395844685732826128526503847199713057008897068254910089948122840630456976638909556640994650645249912197428163146399942574804706271044857756801020194532896019486218487482766818011797486625023758001852192492337685261717487966539595641895447789001866941033016020572144540019520321634449926071078215249320801466416021842520472001633038966699398520853656152011084334426812932573321731993347909739645920801252133366909452281340288499893776989529043304328805781402701259613899049622848907514779481371754726654464485731551391572499133956469962058330998590526767574401698010053332090860045263052309338761591469334736083868746134006388512623873206595139178551420140973907818917449026591886701581992981015582569956495963828761437313705189653939883807276887807852255162569452019420032679830670288763974890962877710284111018399637146154202973787450780751123130702336041496833863403857070282792580933950796528255423856232225389434011607186296812284774595718918446066253916430578379788381378237754378884389356111481255659794724085162120240475068063468069528482764378120679237819895028909591880824053446885302613373887692467574852591425058809712967664656925560676647523457693283203480442577362966683093830134317429085391435799228263332537649049190682363820318024944430619401128876818058544862223466950108958312764040720666009693142530094774947108141846856500606944866850230670009622792650363502204549266918005322800358552798960919510549944139872784360561376513152767021980298853717368295946084571767836016649353169073770438850742071240982661920990178806132735145593328171247503358652829156648960844982044373198267654777051835316446298294815396241500205621570274620184430258931752257537986724515983812807799224356097744524130144963277923651941360287534683886088326356864488747744978544695507980328473377902063008566079371437413131155535660806800474263797060770177310941510739103203328977773119145290662180985861988380466303638140729985885507956141798468829592769751298789384152402695924565173684829628540310622340765171161508438589819796821177446249012173477277239889605488124400631208891325476032667385059877760372730237609881056547174991040117328357026705055973284600398761115239144120641276209814792307687448200917900756090024090006159127518279258792676129434968209040658620355838888828370319908890464375301511635951579417795936505710619033223167259590526203188155538799954054847558281077083642358021230221310642536841360441712460575146849502140480976279608771238636064199350483939507833503206305403806097516874874763722990265644177536419945401160786007823053989089278143423712801798565431860381167127796560064684929245876289150910045784152977849718374062479748970852194865243107090253280029387697796947507271976770993922620941345217884343721871524244529444230143224325013633953764137123503012376142252072308271069409937234084918804609172447742188360906598070844262098236752092963917329168994696706724711386393779992647876598639200144995152178524281686915948870499402208909785499135163222739538796663728540127099216550581591101077138414111601797899046092178884495452963834991107223461811261926630673747701032610881485644208760468757850600083777741205780922930681413572238568530194517993047797230538972470507025058629443488770019794697467225874708359556305272461065457924737489393360388851270530308220697267161505165656632431324588276281700715061807342416668689120754385975238204943028788611213199055939814331351803640636793091116992830050954953636779206667317744619295927263900269442635584094793400553846109978561108234546039184343890554962682089069347191790064300664765453137936930703971693729138748270178608918223490386701491083375398095212629812821174092043485021069179196562958655896237955083393196850027825438235613501118834849597475417526286545671553293951750861392186037146094691338934751372649376807101675729959218387378682082821568060417381294272638487034352254528255216941565945499780284500060614634732434497288783710484301052156247887280559503185681091771045107436184087025827833865223472193257805255089901007083149493159234135314377872164312790755333655124081079848906952035946462434191429479205476159544312092128022500121854242264841549633061381657056215122427354259329427610338781168112264545480653066063292278805579403826837755745580857615535917670530306383855157054513197459100765173289268772221737969906841593975399829167726186015902829913514150246158085833444557926477114595820205766321078178749677016886480008013576524047154408659399848110235545628815938411433212727156179772041640816956473923046603356844704758171247272672482741456356929889451694010203811822149214181070524106212279421494484555272335473746908191448370887311915563670514304450655821246865412074558509856668075817829237679552574789404551571783030590546988245405602345409270579506732210951311804609678486164017437629744974761211097141739273714535975978942155595658344666994045613622168301068351958461567127320300461785608310583348226756895418368928754933513485645377107135164868012722010786751394698534494150253665272729564481063913705580947704616066313850502793472212565680214496182657217347908139463968538145487080764281450320306766290540121336232596699143783001360587781709385123288835175870515669174363352673458985972116508823533578226293281899372460906024053424971816597265986404417661746750899594313053382028028803291423927660363315641263599821103976721203791886898264365913402573545134130091956843300083936632619554373716571072957090398780426042551749037640293954227928304844971309883018516284690072759046475971145198659291538047370091349388095530719641724131709650799261788908036480956293814676010688124268256552111038068061061360165235308222320205079868651584453859127110987311240988796858715637297474335758920238665749709333173044916034681499648776440241175100466981864866025784258757040819059542875613045858434488166460316473320340140566042036439265186642497367584028769050295743847577277103274098610174311047155701806879842702221137822960732022610216531053860920904887539543561535597161301955026775598097116634953620824892371676773943880889986742330541349341861431013179043177736335437919650983161258173580791956435416245680537368199612039992830449569786801334779648547786716274158426574841948329134398013835375316838108388013896713912347143232819458219246708730508343904589791689304499834485684066445460354547648356547004246042593434630508238225717596839314972093571105543059898507562472596818624120679098861324099638626317286038187804225642416448111619451185119517537268862450009757992629561944437241029697689867469858095444130546618506587080436207074068605180997351940775426330838326504297435907776454507578659460148561270857401915218962668880876028019466442523309344311527456596079039250897553780829985029339516672105930774538860874347854945607710817900140141633480864470036147462504638567611412248758014798135006034345071198030944362441744166552571131540740102481135181718724175239388249121491772362811034450579035256087054085238490941975322708738505123315118661643628057372988674872838780321601342465085095021303995075620679288432845695732354238248944447331290809217491221279825277254763796100179517580608523181652312969275792062197748857305170059862024829476824436017326262295373180588249653307667521984659686546513983097320998501751563648734454896439188079062460871819800196070718927157542494112843475654289961507898984206000457667245280623057592334994901005358917539977564278114006941026862250074439693450667189312754035531871711877256917019814798035363012285759816062034267005207030382861530562437274267540521337885829869592682612823615084269324906708790989459547243586952304423458691236147363139451347901290210073563269992626424874859593739062445734844326685867533935493007360744505937302883687129478364489524947006352069778401208628205035070077164436858549285422362121343371073246318688182868816818656812738738606221729730624659839498855584464748791485879715226144327556522601550075214900543458279951471045540412002406563238251314389525867608486337165729436395427574094867553143801239399423176249981521354364093057514101331786521213376163494749102224577847846752486494587015165567125710761255204530364389596744718035812832610058463086317944510785275820029756154189609861063938452901516915631383412308058116552133301229770055076586299117248414999670824745794807345729578671963803733152434938755145692192279015492028374064263632992725792343916240819089211263429823124557420556111609999970431952662402665875313376960072877393456925541963382746936250061473783319595928383722114684219556825291185700453060832373802969720041277524543685997489854470059512707800845138364416576326336913355757086532697440120880165818882686344633214460118581978959782179649437057712891482609528801001473599509662763428018522356302314559751126666242987034673240582527665228204588573605854303532648475751437619823896008182750293534954211164699539370022835841332167431535715530588927077452519626383993006869234999300044573287533001801476393795557665124574802313463427702597462938825482705240162117478899198749237480326691249083835189564682005397626247839308119157728603373572647121620646235729002997470992069506948268484473111730897404474210734061280349034541072248781376037107955385315944371292110098033022055808637307462902311588076085267328973488093994762471589512516314258120321756016266670250433834588374458297991783888397223038220267696764362990869359468946591358609067335096813907440558826683631905016061152156291992767377800458532542852837720263338016168733982861093276531578176101162766789030761390149807869058370097234552205545341283414108068040463631035687092535279590871091881597307900315295858235272615051787977931206207291565668074882129815228704086203315993672980379939532839662959028417932122725320281582807630962802456599376915117163519982848479384807598772368726899395891837384209263533322502699025879481261645098231869359961870676162343399795317459010218889992100995890659347161472837616847114052790235064009678481971181155360605669962488648603051865573246051319386913864727141986418634577185533818712867404300451689858424120602717347252709181971630478827475728838613885820247980476049848898499174470902010976050959664583232697068288688325666101942873887296453339173015068223989484077637750456951707451873222631813074331198532868632073402934069620198967087919007320570139035315229800708869078066904602488942256137543407494495417086936093305360949876085771155345830681093149560702246894946956451885549718986701948534900911157444898604369240941319931072782123761134367282669420335009559250784863050117203800268837929684877195964931465703261215083504035577166689288063946381861954764196765961676121386746527885361723632401244271094303004564740657532188166022700726251568161561747963518224667864083369720953249006503289320270204344249415609064642451811238136584741168699673754955724848274588567616541390396420819575597791255106641574982377147682139026119806938200348555764310499198665389504591495429172625415859637493282360229430246701528410844224478483112851582890899986151132416673666240675233660567237481286032942365481426777192957955495556219966927474554041239847680072948844776805626820292567023542279709029037939654817833967082940397903032841258050364601778667831793758510957914698221569929856271069293469975981633282342548678765560969748424057495332948198010733149844145279548192170450707455201289824958942134144509087352847479309124773345948338821262369822235092715787935424707572093639177445042326664293909134389665512471029386794180219880848771710261012904664220692308711414990751376108525291943855947191079406298721879085270771299175751958664717914726294360618422785413919857499025793625040900987704289456062644934541024612630465559556613507682344714595665180863936746162690361034264995761983049294517727705884650814620076113125769925153901651370563683638009140500703672692093090757633626262412477738110574647932080178915903527786516636144347691542961821104889057251865291846159534522880203305974781605078900583435404049880218018084440842075062482761706978653021203024147605485309964666922637880015151522126128126890594831089207491267089867574461761749224112364685343437498789594131211689287432842775678322035490244964873092583941105176045002052858283061412495788045459601341080554098692564627725092056021292319943088297537821250145656206289893893130157638355666189496302512716626727882212155686904577014603223133969012747111310052489637751590519154448370476746806568313717374798685643833454718954899039349833383762771218943928479449875122088741158607486665149039086938450051575869072390165167873217874229712932877055701438574026747840981919890436147972794747496254147599296607365391297276879766848624201644819549318218558527776544619383621619725738242937763137979515566232598527149220217074894266352996874968320705881649813927143941572389187181739557994935464006660416075464521819883271660003176426094456977619496004744804276199044431702309904667640307936234384889966524935407394174491698058448773314664594065234065266111318778625919668313369399956924333826038913223488394509150674158616085887838683033110380364845136500964777655684721935369136078453163819014646000073783448333849155355539224825007402574766672968770003836194012047637349652133868860568024727866536915524278829316419266936939977290243684760762506983598974258514699322972724222436078414881694879323732378588745655756149034459294352594292526774901497042361470449039799920904047400026135883962515123579522801136302150161208152723484485499176378420267793814348350466816518566781879277410635415068969502639322112263307211175852640949823956935168790316102596420948305813729131882441394186763486309297745877353792201378000138515891051404970605581346178782252604454012220598243941281117834063369758512239313806742262232015062394596116677076107714872530468220720145364475116945989472414348772824934548358264099689386932827570966926549628422656239885808274937425198489289082047879215196260611664224171014389419640307698745714934506204594012430674936698591730195783269407871556387192268954660868757687492457387768632910054720598656211782452565636472746029717634989720874494049028037530208000958432133307669452611415871992222758280623657997172260423789264980012824664954180434514463771013303465218242106411810642474213431498494535683407842307843039581495282992965180381929774347386516972292254939360411157562246628722456216394236900559696277507059636142272157615583392380692706830129597937832567957551536156000860155101153788021786388788414466752037626877312452382165641128821925989994214623376104848020681859747928798773709931734682198661553587292892354574166590305822840441657673291959861529851151713155512317678319068494168814049422420487902116769748960679799827327137628841971137606699579448402495375799565221500523057931752553552057599433861661570478320563245326813495857418141962317979521949962157731226663693184024637058718352353645187834360703975924455990595965336955573254723734444648151857630445929681133093514462647166510709283586959673670086463043452712759448852876455712382327976747420050268073853816577408834490143939933767053501293385395468733017580709173023775099532903058057963996126172033134200325829653937053848215203629258949843236078974885861982736328674349877767437083375793480430624140694859049033442185487786954197381182118315736015726667876971143184571420872460837515304844240331048384570324538905943460159524691197788345543115865047478240502784103150051965005503028064937782486039142403076446222769564634147982344957046193101008728254018988933138335951931991777933079012070383753656548505939471631262665297414071626868400231514053103692940536411803060403786435991907990900461001558866705856526733338495576898220945634786729736499352062270278828315475411115081158659393559546088375463297079698050814314524125305006173687887238443285138251541577774328730040093739838668222597793938979577556523687620439946247297707670304585537765418768060102070102588698277543247352587624081902703977229928746743430391950394130171829267459746205160830058358101975074040397081693141613270824617911172632873142736318941633289341441630135294820601367476273917585232437034732571381705303906501214905714200305283142680336976248573308331444433637823015201790061825035775594249191275534838832203268950804997744246271225029632917209403089793704026558913178425025012196173913200506503340986388545487692031564049640651445482160832582362343367312406294051381297872583395338537371171156662956117732555969166888146416317290872762090677408569918642203082265832422608222705720612330370242813148074503678607995606390167579196504544219948609025853446108033070707807301030420484801242703542869732242009882731618908453019857860114623612398468069028128187405032872364528925607866845480707496388479179159840859999259984926895809582069483189590511741220656474438188118925001806530453282966694607079865392459536086935113719452471206755662264284367517244338677065102265329238181314419741877549386362106840458946317472137018836899414949226932008905741271161036125128102428672947257531832678206697480918845312638694538653276226357305962240869726359700618247852914570222117941883184310413416303597832974937651584032619101819426891729482969411622830934622824403877097441693638541796899932189241262220425676083387181116372124244430745094963612108997444204343617546507679366979168057911035767286028355372939150159810686267372993674133820500944330638060163202184382217485788506009526836524300710936452914307999157759306272369464114252878030277818314926502965110843141330316911357857852091609610438740600724154383971748279103765666619323216728821033829167818128815652738371204927063495015238642701050620196380965961918099980198629514934097733014354608568825029402051728889595643278676092782125120727206860349759953400806681447788133334075287588595216791014779366678356197218094783047838684835817051563192187075667573212327489816377246553458464483072889116533324465024734132871831014694412556313016072620720367703439256415784736392863638897453529087387360341761808449966410435936605746079521162141883699171640481510846313083616460305219850412545627279689844739625182948986289430372523153347723667443009327783537960507359335486208795959460839540841992360506533864438357635137665244724606875744298049386433785196953656014563815237202430082236895326267048703322822609596436121825639683761600430534701045216063268836335800727745777953766996301846625713484421635760792812198717163201999922922928315684156459438260324370832410006322307021229241919609013582701735156368990195915065025619285796955929935812748410912098039557462379634285523540901671179820963055973709806956473406414083692463810155138795984985705301080604516980848683618483307116173435151159198854186432908996428139122914613896080682286307816578538593850128272668621569491701072146508158743356164754767099165890535510765035048044774984751317221842856560366071714063889325406367766267319878560749164717445310965774886355094895288428156526623608157860757345182681406296059813214996199362847889256375447826875545396310584335721199364592316748432634111473292128036157049134277521244030381247991571103621388353966303737905569573777182573518391754892529482637781103661741826998713362416346141252483950739954418700633437617743017473198396679901593649742837192277641756699179251443411099157578767595578512827206979323788926942460780014171747020326830690175612232358447432990206168979211775248547118807660228250810628532245058879711199263433029432344105275364049501023642088035036360986862868318594077053603656244368370622169833280371462329143145526133146997432026633866930442306440408024739737249883955410200795959491129023124366894680967260533792277480683477715502508114892011700035604339027379586456053617243249430782448593582916232880227071042288814903908981028329688166850164468734266193624851666444097167499066995296820427420483799996729481563890501820669760458390401491773684232806522817994381200638735674215959546309842974514931899969490236301941074186100777181691510821158927592888199492758749124045050621334226378232338197383193845599989831192825016987301401824583363092035403620977349537724415613344621610912549257958251234220744429904933559124946321464829041713163292904316470375854970389009414586956723520193034860472478229563481333998490265602630475180628869095605913610234382665384768910956021396569873736365610191036790010825641062307012399677866796360726605911001352412726917903997798985535840705977712920098600966800107020434742101027712096555923632225072617936181278561128620384288084441806539082156528668935137032023020400578581640093416410006393709935787994948323080553019092741463220691119346479051028660515658106577322512424308522192787617877660907235791535789461747814809089639315161897082634616766254465351494633581531423517660569294764759748788810621356761339137388706106641262674596041857140639067752122167849303504764275132454905511756461564202413306440795924333687068757774276164572477392175148347192183403733167641944628906870355432951549962482605221742382103139042844570771130405364837814133265746150726347527358082923825625265178335068673534616821062124859183404849568935278740235131713057821469737011727656559609873490128806156232551596047140286261208661105233412288387075174170650931379476184692902927982776758078048880111118311815544524096515081423584635956598458882915740743355155726773947579381403095193018332360233799777609658958378554862017526036794311705775481387064250359723278817336885903493078935894009082279395024264610668241945357032033514628574093583993695908771334498044754766597288561225835401311667403738018460844444247574742137625104828354391944918215731854635465243130405440956046374208561969444082365087905710601596899496528214639547284777916554581186903567178236444795571504338463185149297185826044697323141553555249375517226642063645385915906623125851201931711137605223249495328533460714241644648116576858379039094932883805673585956621665571926522798218601858032082019283148119042515180304685282058409346534407509029905373371875555629152400064460394042206416356128102447177594525355484596412876939961973447958403464644379651106917648156322613630669817035511679827194939906573744370591772548053979889146888847754725919799015553166247518638509131830149510749521668525222848633421710399463169254495387968967143615519988100617924543418120630297171214102804547781853947758315035109733716253717553740060503668952701815089938466995257491562670297050960410047559915092051774450615762583363556202174315274911750248860709348537684534389024753682725964785840202041007098596043044702269432647825572651102994719193706085357553666418576002465847092666390595235168100239464031249741974767809378021345925132445450042339959807311802099434783852039271508022772538770753825508612600508929979121142784950152875796382559041820252593310821032292529185550430727190878767082333850409050179735760997725539848685760721889078369552013819534255519612462508460293640977884286100056115431322728003810579579638616612481188886809168863012218759112419474943975006888318162682588607962001470474942763194539678851586720616099823031719647229411999585816466546364444589290082265370845232202953512257436042664421096549186366152254258487097917888156657249750586077761383630602400977428203138792953812621713568167009290130117303732103477129786671273877677709238648093439194736934051160188920048368620045430123346241905953900104241378915192155145509205072410246509478020361148420491576987736864806384883091844702132959492474789309714715560351515543235703387748662700415106104869438114203162314196346229111197605230809963328510505592778011630307787846160479331588618313403792138887607445335519144894096354142882627625636579979173724394468750765752525554761257822507239818156142931815913950005978198344294959423390796192678102186592362725026483165446920778689880467542477214269130183836697652885831372916604175758077611342185946137671691481267821863420624166302562741125100201676573408587508757642146670471006405757398049496632784716883994340368802945818256164419463680624588381832559397982200696758987715660895531719645564128262586960516501229189540721539712781159323347340356505629090182196786532251584642349722223746070381552419569559623344015966254026278561853168243845478152766593799033613101215979858333004502259117933168135821880750717298533281988762742966501795544559991399816759293610042106141208186760739381936321951895692768244693171504039068662583285436680117782575449560981140695035942469152841730408880645901461548936621158098307297043409977620045519911212024555648046423655398665261984466610430514721195635801085124846103833094028868263081301711551089546177777834574640134330353223481277748221659153095407700332559480303679094455818918261493946485709851182029353398096476027074192334174453537756077959105539796051350763316905686519779384846849085259130135879280597475992314282464899727841156899439611165324354017673472549405089284773551069843693697623837097007139755510148135807597310189811968414690255287078415244082155745406169727442381898181504028787489796149343326049931881844742566348455283825315816894854105813613163785329217128698379198756477361692328437501601584781156147297400082286742147100278810480972233216246843234883397403161958711388307351212684558773785299611207137410147540819740874195796759207342719608971466212666225979741200266489929164935851744779536765253196906342160630261138206248614570044628953703181523331234297285428956526405824472153845599508115754282166911852736081896465280066392508689584744568766430345115690876253552122061591556763194706180979877835400988833384487974839599589673503675284456785248836299868662570168671052046937955945321616515531043362887070192757710150920020137084589988467694566978265586775546142581789473250486172087909058149154731388813304659149233249162584001056372282104844431077484844588826071461882452461372472850401846372323815831901839296690792817409031440132017850235562555371556631154858548124642449326238609017622406211400110970398028390119472691081897333057295039208347333924522395047843448942463954636534018610951770913088390876774000352246888318488592600641106328956782728714320554048683015947257853294590989622080549868378988635795079500706377262333787582869929272873563961510003385799447472558309239754391824354259802519667623968967338601877257790926185039940570531971611622239894015543672606949587847910408458076687330220226593598442571643122675120373918126957868489721014582703837325931516986657139609773439509775810224665430220649656720482880335159324044725515337813178464164487584258931844665257106203236965732439481960227114303080914746080913628727187041167358433403904136620525049031292265784420303608674724281221176770994861543452219027790263021020533158001542469790481189951029115843125552969933211618896901663883411830544461002291755482981906956616435576671470876164805130287031216850001224535281953540440211806837170094761393737349867205617540019863371007558469199853201545158063141810496277294899512924078727943078416490113942152993620291550403930477907371116859478030861940734628439601108970492461907477290918769327461527469182756203743918379949506353728071037196109958608764881823146150686931951985997222149933509649051566045866242936445673953621905660235156370377738195542452083282506489642943483598668224383442154439719054465569467957308698717270302657638685223757615776007243274896575608996700546386467500297937408779485099117674027798974978558462505643367379482825519804339884444197222570332427706506993509262671089401435016345298340440948240328679098927789530631270431293627985706923429302165044145960325588547163950055864034310994063708656293493874909436263029571096644408412947099075592976457573363430752300845386046609340867697244769564755958331171567140230368072017140099216182353876716169190243350648421129519554925536409963652718577281793207326747567813720425706477690981119399807195347342854924888962115998777924593459479678260190963990528400021824301703009744204429625406458712672683152877550782681455546360949214865677119696980548123111732417015877348670134762469710719511341372046795500961976777146761318095665644967287800337486791836497293044963632897025232819028967690393762500269478724471833496016052455782626833520120125230532779273825603567042123569792386470662853056078904727991566384234836170980047957238126621278192006057467801893025469882203411386240219531323250030710048574220159300755549721067994748916124949624758055435325640860174073007764449385871171584517790552602170278528471416525577753257912567897672895001785491089359864213067039611028104788344715004305101792650870561269630713286897533277080258778320671331392327285472193123920625712556750497454461333884998686218113416626906366847858107204425741572926700246780758583728864378515568358573443526102079752176910792438938657566649718098709126913329081876072723165940617237881082726594684772463910271199049542283790511496385992780859949826675578914590571814399940526186467148017219512009423723059646130089667278030623307153510711126998343487621800357652019697349378419794286790590702198140950356396763806294807715895337970594225067882848812084177706599473873020794918093375021175308138373910762802358856364645201255716657507616301478900716149781933554400647485534970148146972816632249233434054139968835181258176163589799817386617085103552277578624539195564664894118625632138248822766380626393654537303692803885088309146723944343062779210628614202904914519763330493883422586000695245006473416805768101095100481561616907265029009053398821146909819195393176240568405734090059959264205764854010019587213691429275711020367712694578559206280838703746422177875375571034422788283337947261917194832842243432364905247884316824584111905211492835614402490918821893350039407838364999049102139091509786767029403308282376071593353060484568767262799941054842036247896292267221473576680126379697382788239809145327255783894052906924862592034221359412779438483223348466186974767374367864537280808170186782506673931484812354360125006866139856319124834587031225085704204223260759498754590355004423313343865662154796081819013396516692134973939868702816675779056660253635730590989916120412694377258923269619318005380602365727003828425695538439286892103272369868646054403193177491988008926612918717778269369771863660633763162297972628659235701273104807178656204348620395530853202651619531369163486345223334161150103763416239543428762320251302150557944894019603021790515867739503788949767611257067202796229037270908135262912722439308035566027683943769926183068841595967027020249784945167679686295745954623426003139947166393426058949066920572935228446471430178991648470972086516576233154679581426689004252649085053678756840009123766231146684563418062017412668878563061182129578649092140064976160459499926221647609977766212041907948182034964700348234694737218920257185471352151351097749951498738007249482249227329411102562143470761683052812749585208763724404527187972974899231197120410635127395897782216306952611282662979090430223246671191792310309843725706572048666082977564207261878489070548505154293681728332867297407319558071981658333754811901332363923129495871756307325697015774947729254018437084507423665524035060698295640487216741113527636553090764984754413829610494894947067590239591762818160927741091609651096929070833269029753733577265496156990193654445002893812807862706873246832648464450666313116745317739491252871857822455581957436147624621044507540515146207975321742862114281166482821662270461310341422142242989228275567251758186833800712312990842888931196394495881587314487298455576235915696966446087091185242946187914147246107046851799677248891908709219758613639410405872654266114208131243104977487107705331880870219742309540246475549019147348199603297976099227261993295740252974773720466488232206396760440839436491084157825016115061533073199645185565693485576956705106406691749521270099806004738680075495450874929965952554602299033841155826189926279816294606889481211021098605696906856443551385540736891972522153291700413975185840150130557229237312971390099737477789148703705706286243416442518329973959346824264790515353748385174817396118079679353799761167991158724716465855320467292457051745622997078827670197847516996462714818318332256396817946474606968349037100636892094562581321210672603518190089642008916956743530880969444189905821802027807669556223987437706613613858797754486389676485287775208889771215688645803398985367138586478057117383592232581350272615066683309101958555041561205968143076381565758734198012583587063594841068009605709613038722804619805332914754196428244635808444582416875300807134027463597807643522213403425351755950655747064671732568477630017910528425857798788149815391072555405826074357950624779941389565793335766069181640846707604424236010894007242197821075280254379839434899632106732886052822762838670885973246531949089910394733788792704875033994308407822400752256759110786996456278335441688724080852506242839057933636228973842370522406578644874999485278903323781991345482509234005313444933965697164184827354216261323739249656767675570573324258836631093945565696691355231188991358416584672906908562078339479535183877544303922174333842007553597235329729407396449910288361054419002291893591137011562357626318897711235006235644921534918636734823971018302615170698574748156766306950225120661152584826836016880819040965786210267030361921518244766553601623834800894966502703074837221790308709911395828412965213414558269139468079406600089849440531043336647375586241729946297171179603742801346493891963358243537784663524868929695631376187616454531230720761318671361168490108708777636264641931571366959091980179792029143194855469811140462406533345874839463643606254555637420180934446532307331548517239273732615107684839736553164021606922232906631518103123115747049920322534673043985430005626924990393936245320913376895743644079178927174472942844943778306190501425622036477279552904610121687411572303774919440679493569578175423542172760335959621502473061698288380208498831262693227789901145461345882538057664390748410053524341990258802775358470957901188155431383875768881091526900567390784899116249650689688126979918115138161987836789144315394424114824080896421913656103412635283546503440645701793892031155771099047553735641847561220169954710448415684127394253009758260870441185305583677404390626930004204189347271368186787430416686881235563148248932745398352638246511561620508198991827295082273117386325282202649036011989052820592001069379170251425096396155641793357493265584702021912825131060509780098982025384367888636533502576579817455902343985892608356428627840682395526546391858159923335208055364695809185175725314980936452571684561155983600305995144030986224351623334983358617552683028380913088768435832196564865512171312659744014168247822366603394305766549486970819998270038233350799048198362792904153794225799604985738788417684440287093865107250514724928742602044552242225876270756763659532556043568896370875453425906474858001786936168882614370549991175955092169122604403274073230039477308647592762088770618616137948700739523010712807565305774497064879594389590902681683290774547302351217365531113576490856603297927084345647758850583371669919239374487684542206201617066193077076691733614683038014558511897893686586990218657223439698129341652026465008504937674726338061029303962543791796844185133208378381358568963030078183350457341655248365053276009452288587740855226897560271356754943269793971361418220302570699116158584940252255984858327535771881501916192611709039595271366449501599530895328543058515861603290239894194703315560439964419758231152061542693238188728861021267788763268655737085217085376602849489544625813181605488993910721164694895117488397058503052573076322724917773991922508027168253342192685522656104372443311211018008995930819584453921751225744503279791326918505003263844267900821766436619045164577253137634882995302970216649653035251962826797389108727158010396940028356403540436697171463276125953304446224052341961797104021864009661737781997901183856889877907689284739010489858770641935039563457855897342831339110066453584280465646786111347013004558479271411956796372339926404862766977004496305476533879497378614048873156611122958971116985320545484275933651075297874961747789136409873580125321604120455776103513627895608842980375274169190110545007792609561787776407999855969818600694291040525018610990253733472678700441142402873822131241042812068663781308961018317971118285022207900262618170322448840052705031791326137814078132636105947739121802806310762336434806824539629204092919799742017251324474722643557195802543672302572446512864349620818591397596765892487901604442339574102056297243489020638646154643599360793620200665583304285670823719490767913158916415120623136153163594824969714749212059606464352861361694716751141057566641888600235246031088463024369678483271982367921839360515676550527716786148000275934156426962599046167025316502416824113593401785341181877759812304377739330831107113962059390922448903480683386248302750622334762201904191815435881138118322693540634814589684298627788078168715012878401445532074202230520018162083826518892708037837359958954950355495532326413656865232735907925215062587322800616265812232127818271971660331974893220968578669077543817029537454418373496513918886594183688119264667567837415015322373037319174587586880865058755345233363980701573603272052030698492208208613914438298412815754557475004145389683691751894854363234990708417893630170850338068529127059345073354694760939952986808850645056547468776166756467804311955135074433844504728124485809874349224855952405637255622666059546546908734280167108857039092636109426304174360201599793923136668243751919614081713247331033652361057875809004113259331122373006044078123698213742511350967435195694115004772124759258945450515388619544854541612650990491228984691338820745397435895343276695304153466688306364140438884382155873846020717797264584840484856489487766160578775898257612430519668711421426709434327325190943449084328181125838759876682706640824137515381729722722534914381595841577569371788947118653041851843958952495586826306958484743238858080127459583089525530198865901294636702737221000008888493693602714712859054667765265973820491717277323994660126682522135222287299648679342202914701561259620803037468623013761502312097417669585441003923454358226541341469297842052768835319778899142519914578095964609079362367834327837191690833108781638071162187681915200501529381763146887471527918507137180526171011047587402928832981321073684629762122331940961252002142692096626631212757858650676085204037580888835730782652344609664758564820511863264267578735348358928850767142201982326181466441968649957959878279100236706213858457561351695188273763727222974313395136973528397185194123662695023870827983918849864691161849745811640075933953087958462132870610227226226346613017000680361646789054538390727333215259874472930475345202778561506274575747195438448684224387582270516545629236710992292325253330664927585946381109355231910927266064872286642001876212814917474548033116683814669735017134948678570103915961720602989199031679652876223248191396211183744887422926921370837556476390649965852430333952579951920427708162125366311650758816402652472707544983239980483528719429019244628068007084323701154109735023252947971944623811883844747634496137351247361414686133509642429762116859749533211813894745896195429409778629292386669879647418819414349123044528887785233472380994439972431009356939769119992529292290003065543096710963456532438025974838723313394256187485277132510196989066842035686921876684974480113836287777405750921620439808153652920993903487135419922487479519817437260320473578514574344375133167346882798574516117772433983625252998764061774244085133166491619836893491750487222047519309910941109705474187024866104686233458878239967113620892514074067571776892160763102251178172021740159463855149165994765361202676142484841468960317166708305267940270340040884423674574366944418256596908383126150554021991273027046455923609513079254979832466440822591917311967747835846081688412761861107455961102306807406993065918277688391332260025102436066756565367410585645368153595299112131027777153363058228982984566918315128470170573505972853320627662735620562430948376153152344361837329644918871794920901623575441918886088481993289129929598736853304062389103132821673152359022742584924222641783127648089895534416412477700413765011200147727588563716655316825176173473166480064586197681264017341599857463626945404603773120254829518529311943915251688080686117914663278959407938170267012070807102384619997770713402187531579813212029089732306209167871837124081399133193640066266390056807875455443084660698607998979276811215056948220227888201800221468628993343755331462919023990554535762778045726358358228170605132625382765365522315445999318819610522605304213874029107558690025266179894840614957081647262719676897807044869951883862694862436513310029690974315807363465332739777875556073216111765818765145862989562770202764512823533133192970908222807386015237104817202759556985833570495545345871043829172965170031829412800779645616785627173033500269727305388818757614737190898715289727648355150055363783325349167577591903452018249778263880684791416387532945175450645368701491759494792105117168315445546304772769112630198820392714230094999592661730888990372938205845945467573542878180422902608321024600686843051985823092993623472240446289273788111862625436935584193172262096205549682475424679140582175225666384482493933063530268268330384414255999552634221615054218541981827542672067938127993594128293682570919917250781619187166928690118375473925321118448168796153194943782138771415410739031099793095207850461988170323030840469804578720441599074337638555652197363413952197998393573812460019877261848999749522403146965945533475814771682204006796042030967237132368953212674600676314264143292973959588598865695583341261799961819565384824185154971173596058896977677548090083230989348442464540688746818294375562602704803544618448543698808696115079285738653619022640623960110394820824593941663653671542391771642976285285081028117495093855426755593394055642446973656053306268205536481914595269998276778452961316875292085008922968895027812592884699144165030715112326194649178071893641955513180574547738861166335274011599126082947267642628987952693650027976917765487015566308609245127321117181054210888300770125267335621548457420053009994029160580833446506351368401754766777017319572286430879182012895826402826228752487768000407922681974497153660309453749286290358987899821896823763658495728461422505956166405328702529110151043336219327940196610347865194020890218962192986350623228176526343796497101840242703188479527189433195576666107767113466781631456854013219631704949679860974711817641167225371410744286609894463339023210264037401889007408952760500039946763752426481972257156541336239273881556034726773248692913385159933977776172189962245938916342467044541660896463600924589354053640650338150719715041096188691914091733481845520380332652553244604460480319430602709489530132979977605156602065176118822891224223897587905274855604489537975227027800699433566966811735459038707026945874768562198153067303098977458897331965914150199355415337745030550903732175784817949588449666399965707525905317224827762622942035990076185919131898687327419446027848116565782892700166019886789880182928126356734173598721807930855153711386817024717953182932313453683145488164775985597588076029777559549014495805316122621578629456721298608405022410688002002033063968539054387262838841228454833640890402382985465139146480620801060285499360076756970187484795553229941178366189959784211792504252899689460679423929937265617260781273698255486841811094802518674555885010096017531582402109385159779204989100169626830379669823844345073235805235989266024569989541865849287201604668121479518631077475935884534066589066120658791103463321740627493629620342019465583309069704053101734837845662100613049280227647360106728925469875655456056625732560761049930389537709887152448278606760534679077659660257598827510006540115972328938102752080720312955762861997903778902509679158479277469226465944700363516186639540885469651207490554149315954347875505386249937103850316856598306974493086186741443228005450838794829923086697956989493657328782047479611166005048992257005704391988551595708973699120392702862171039408615514273517453492967553184056688349930747178157731726785355910102486134668392040988133609455894403776751312273657831282218490479751989931832775957045749633169311889871785177910239718455208527770848919136004818225411237528151223225156477675000873644279621799717360095083493811370265149812556108741777366493245430219971980258983696998635234273740073770563995280517841430726125991145358967938325827663736951007423784810376707391505830561346788529128100453055453100312052362424627343002564734485799481686661052351943496379959402322385379365603004385153345804663166277313348876883237582053399061220246433447452103512498211229827473291397188299831824630659102563345053933145883249005336559409384256998025646270198075798919329331202441099155018817732069439855543143939893130407397529795779698436508599800869797125505736463699196945208706448651714331573135419065755463835289369584304157110211719445824451141008758341987261211080300243759266848271362010260869749846988608680021288932979931230627714944209814658775816093822776568263209623812323567100121714285569223550129591147448258950560423352498941818666285991498122203774768419578463455174176451941952937409416544626825718795260462994770458963732123068454489282237081088714200603617245652843801826235885835913174001391859360898470179308072165399542806082326116136091922402836602287494663089217647255010677721684738178568963490621739142423394219521145563334481208823149201525164131464689252920901136474738586860139755247004834014549582098403526427181201878583095732190797988734630282594639463957608937706139930099614845229523062301292051375872117783066795340400064700900573497562827757091492982813122536189727425698018110572405803547465793233546912830521601352800497540111060159087044842644440709252173115226166922350265908151251493959389123662480786360098047057779957450343470532480903365860758622859308892509215764720948940092522086252473518435058253612555443505993863135370142803925578587588472990856467903871071458582213537141431540382198570996042355058076562428453185140922091112757232102144131877115944623717676062149793504162055411841505174227850320895123899263048527867714827220447292473970480892272077941525159960819441963904325040609362070594146957679662436257825785273253004605186627608211352055540323577442088942535072688060527182724139945532283405291461116257140529381841853288461310650862186537858014381337937965412371078908104947725928375038117154417853120257219795410533897529919759380630364080221744576460139407150181116052650403973542975702075665456331544071078878354557526265806318236144561331283797550611700265092852087931173793264850588618408971666248934880410693202189093139825580847801809157100554631143363389560659600710496361898036813976458684776063013895515774354774145455478797316831926713404580280790150241586044862005541774684852199118826412378976209030043686482619291206264912418646701218567321876518109965692622973816602482544775912190310900749537166718010437598809317278576391269415761749386332022161458462578809079739183141469475592290098761472961952876682201764148405442940393970781750729477036677832559228792037587177681591664795650211020698726035585272672276534167957247656386962954593972806796467026421089436894823962954776995055405040387859884919712351607619775912417659315221629977968955333348577856989786257294664223177770519017429063610480135447078789162266307871697907249751142732278566512627465944620322963839562142382170839534027345575698443009233755616420815745963249950874999251401592875968135208079219384449739529070290130703230946338581036470548451118934684239105919020949983189677152610473170887276727450399042575594422306208001684785762985006425042872485021248860694183705184659744400352386376393834725325365559729462757742391338545549309909592083837636862044430059850149428351415355333311341966890128918588714223228553342498061333885133191444351120840300655595131142105260656309640089553874450308839043719989925413676835637255991093579131349246178303210206376484440357632863262555545888641380156918329269899629376662845833798044525452039226174920085716733742921585743850594344339116238006922297922079041760739461536254830719664840875125708444274147411486795782501343427163952649494568149294353850307884363889930921180884772031849826922029007848625112564498249078014919397258434807360431487815017485796762605585554990972786271112828100459906206185419869612620102101155922831685941854647315869989523116587906635473261254803390313978380940743540258043364756259511614160784905376626147325812169022122678522726366235017846835019474878003771954310758892406749775341921144167783255160855856297894113469438456680765782910608722976619471128252456708527477338012074190553341382994154262287460583794040664906254304498115487423001195541673361059862331480232572952873470932026326513348415909224227087906836018527919640828928931367326812721688383842298083813359858343892800191627749193975363433106592201802542170225997594164813065660379392124625930093880886005331382763048285296980007414882071318025841406202213886788493022282157461567368076504957038638235926659951222636812954341693203872215429368599824365340721322631536125992764079554290653635132134080648956699183574912511020653254716628468719276343080906041920081249030835127835143629329140394302377784790390108100608827822827123809281378503146626793108728921007887281729150205273445949169122428069308937194108707498069928903894687164780518713211104069184601024825105773931992347259174133917771658678835726501662117333687116445151115136374068101751694350763748611122164467676230022079855854226835634098506538385855160033793887839648081420457530394820595961217961313713892421249650338794789321693731759335862929470317938962805987854899181569668138670077713690131202479797570347527658672319217402741854531103856516225649158263824124916857494317665571287316434285245892328010387847509274630909856527308921718851204302897636784167383515454632143611341474469454760896520814338899253509095716419248965381510528111354892013319408732530895179462413214278371807179001678957060937829212584381679846848865046192663511150607331935078802189344726285345472548466405284650089335610491346202403816201620666642135468385820111274843636830065817325892807138732755028442416800431033507260027120872099018903571906748290978282853297525524768010001394538075479274031142812997177295745063137815942622338988087181241056094103144168493494147615578190405712013900687805627046437675478454509267608560774690256283751458443660946880780068433969619213216372808278879011885406010497847553443642473741664775634390512675751448984045296655945895701699575295871372642846099470231984520133702855217513347475097345576590578784784547618533996235579070664128189861041464341875545709402999843318329198218553710557472463405287380642930897452844771331859536421217177431893666755877916608083663323960398121146927237166509884667627228785051786201627562978863373670782906195019048488842340043115234771083122555263297826237632042623561065103221002840547964764716287432037182384680947776777476167602182532846247614054713094685692890984780615057836386893536105284946791845454036064585443352854068881539469419766595612448260144084286597001623161429490345171910382803922340359567392812129579180932952144669760173136553121105191953872347716559185911600804765232720454534708651175750703980355549160929474576590558695195908822841308350108029661893277659136829675139227138587244494065238405457014430674629189593652675534893990973614798725677451101990130177674805100584984472524032048376671090612529158433262187841870388650456022255964950334996731605083679365590114335867178901130655301819900204358321218097484810581312296128294267412790436631160378181936198544972548209380926405289335443726263590784605813247379255805392636792634069667699082765442001342694807078034958929760712530578551967025474031584587622319839666102952156179518184282087357857680990384119806316595859111940613756610920531781845399992485959467167935708608226527666923909808633414192214483855407109302995644994567537836895731996128272915002646093599337945599975275270484798949026017126530378603664407593355959436643639535900586321572562091996147612612904507883199997219519820143512392104516589451532698326830311142612536533666216829104310263911746954942120695218939854983076451356332181250780587981253870404414967354791121213038097126378309395567541714205586182492941650516053098601539922779005478706583111684153523621820944049812068734853669850667033796918150151523820226497963080346148313544458190272846268394384545209191896799026812147762025585907978946774182499378276194649089328716865283216448258793806121133469467385055959337680317531637919172372754077579483784895521075428992904946940627877792173907108103530139609053023246945066981653622407366560987748059632629784779003257576538201145765041784738771031752560007727461177662922677903977596100250934833121252621488159481495170969548085402238480270230015315635065465714865248363632168213362609303180276677048246452942031063415771503069298377929669246155631532253682040538670387315875694674513793428626874591156979740431784461939117471654313101290277963954729957047407292655956467156984952293868171872684750291545369634363684485278622943797064534985909763782487991955083401840703771179774538763126864368983665555331436161693154750847144568751956474180799731761970732691485154188316642915582833846752999392250328646413603241561472515704417698775778559957921620501326526360264758051651618758445129639793094919549467130552584959675055711429345727521943621928321046687640772964795210096669246067412282790852554936652569788434231223438855644067979664051330251843760290215903622741817121576953777157739088425479443698738032606426895281149931817325054043016945754593282605988808093189233541805818830245910842477508898986389267921148383667387083630686961447145736916847526335066958762281647213500309701201009937046137757721117800308755292705750888948917485440643268172414095041930406626470026792805121966968221548603985434986339190161405294239226621887554746504655239456194144069956149629567944578547575821473247414863200091205237010906373129971435308379863818008203349683481484190532405716623945427248135489961904947690690547042133756158822318090513632913025896942607199651934146954226999196438930605202819469660258649842648071567050614892677549712030196898002732732085294005875137468631607910542260772689368085217986017591919500127344515504536990118047470582319740908151656068367800471268096304199550815760440041588060629509383141807001031210367099376171712028690621210760564886282559764015530194814872858282205985278471772178957156995383419727151035059028012587526385336482757361955197626774643317717461486097581267122236490534275694106414983123594464904073856960388596329881601244346427438860246834428002838562859508128331520163240189787026446998673995383973521001023223309767672350135093238440624556362728552937428970277101170252466533489281796846618060070380847970086419213008092731528765048705150662882595363447243732534830006923806150190527839462387213932440989341113791758976825480616052174376926489979805360659358464856889136702324212624331507154940541266672816961463300070230044165012243565569360586019921300856190311065840453514534353162567042281399127370759527390950914056815573188159758513150707682344589295947454529385008617526581657081590888353145819178325654849870460387976737792875904345738778542570538800911955597782825787318705532662877032986148155605119026876559838507099604064024936078957397786444454016277990479573490564902693595327521693265585315469934026943117902519980127543166545582192981546566386311016210623255714587408595189092272032355311128718757365140333407784079307989456155355627999068048345620449590247061003229626572453219422357515490768192137148880421153508050073718402321604059401799948249312162866022907143182239210794818237431449934823234220121365161097440974369176124865345902914388487302953774601540706746852195546217463134844105188403480087799994638462752676977060226743548367152574504327280912041526995437188590920973396984311534931661826328049766349658126444316077711575139043517810975064029075287588459263714504487924875315615885903034930669650331250918873371470569690587866423301695090199576639363778382248783312856334076892717307073034947825970053304200464734643277563937440024102624294682549278166692097784189737766178108986764950499279341887570162370090390308772232717226317112795301911863727120870726574080103511031090813647449478791660073057979182067227420622337837728420131182195001273090786099153129604667026623229720844765948877008314121745506243768283728522717043103622908213214497230607164579912785705636298354015447568656477562640984433895466518708307717188918066841992307284241238719643411006881243878534023692525527806976062015661113212490933617608019590886468005876144360577449356617178810680187490081209313648796202113693668223271958220549662803367295744548517925067913885173005639419777890160857040372060498747501084475071770122516758786647095753318432888796653126647342158812448381986259034979054619049431810271866379653114449365398742808930769113441376885910337685795567752519976963798908361891498267983397476745467358528892009998075785357129870421963750706025983592194989658004467198388732667889733374694614518172827511560373563681338047436449930306408928344524143042111119891522171539109045531142677371275097242135731188621811535164172370085314573426439364184873830244362804346517971804205731741685232976275236000765957163610727009488726588717007978551919006715267013814547055542295108638812509618105377166305452464224680424498416352290517945665940959011776060529574215110289145287374870658457388226687969485179305271590420471424237024560564856858902001494632387250449857080058257402018211975737365378067883500659453088869471161558628533365844203204073510112162101917591948581227005143251014442878060733006906914037661505544776690452126936134836976399161116948801479353107359374561425170506242310510634922303902653750068907499576171779443438679309316905565600640467589643418414448485341764824018000651891702991284712111550701929016652363237992654502823452778325084113953729830675687407409355373778375170304374507398273017899806030198255092516272567274185105977586135492783728179610461893575062208051554936068306218648872564461745117286754774326099589311521299874219889034266995840799480825465298175354939563875766648985999784985171430701703487874343283491250051564344903992536667135151446781676437647470094302648243104660884168512812859902604032672288549471105654582276994843469354759447026325741105010442498400457555376208721598489511472636895343940905788034377476779066051972821182543514619375610376738535852899313568435119636179906246457296046127103692156885535368825950087315806021823819453044709376515922863267201666112294230630135448943969759311452828665546486212533040764744625051815515559783973003193970459503476289154130809141157984177845544533736692429939672468832505256368915849771859155288897461137739301283868426280854878867425790048482104502584265507351455458972647933364260588255697278513752299199371600898363711317433487464806860312514464946179449130477164066082496065876560084232630513319714120260147109464324074393687565857330321702074115004350398022876515425734218918594166538842942767862415084614776307505711567206727005653691416815302093770438270231414813776472283994067686818566532497102441785171601891848278635302092801920357460188195986762969266132063198690652282100477231525565645652455387076107455846004196546237082847122501689293981393801760615798215603217104498083207300369369785993550388727808726560918862868378039926858182217437637493278364287755586982732254389610174416444774180897490353272787538337475912451938341639920314356414522816536964402836437231483679421151438971032013289385448772592147348757731714127278312555741686335656498434652748550291194528757050933908899447064730128123794150439406617684668509015262525429929743871631710539438580779907156513194749717838203876266152989821665410668494177097849022129296448243974376700874751461758358439536274406746608248775070158329165469553270417803030497297949885917271874115666914342327990622855797773535481415645441991329346405150982836338639416976188668220962551672418694790610220077116071150902919221385018727382776209772581089633140331358177165209003983167673884513332653212753933009917701248801271408800206992249194365485940662132756210897681270446174414196400423919614472395144005886931831259390652679996690192533965560229877334956235296660902082703625240036252520978107463385797692742050773115987221645171883032134240858451992127913224214596009802082080597523748427688153720179866865080204307058912468030658108977921763871222874795858119510896893039835775097797901490632021018900150637017279066243787583274360382046989691525053472029965394890871034980862573158361272221035902880171487626331813970192501205007450462195675539261172777095807754621164205694377764255093915830590566537424599367642981135740539353947831619350302937216743597183046192937002356718133791176234610873345109760124057265049457017637632622841372883569107896782702423284279308429741932611518286013827667107182076828300053210842090015167601738071782261211997719746153588938573885242546239798171273053855459239732457366526941819642513622530110261976838173599985824735640910033021744046625942316287634381491241916360249651942583097938728851380120180029159342475170668088125614342958045932849867307580506434534156115410143336061025956683347190566537013702808718570851799655770882645535381805060302800941287948303373849523023429504743972392857544000717645946892901166255532046019361666099356166460148838701636207427620889535124768434677366706018567080712559263233338021952530179983914638872800014436830764289524270780475223947934830332348951303686629750730359120450218460985503585870998178751764435485887303787782396521687662490172179292800734813011739363255992363038453232049620164247030850233426373215455386777089491976961284986916224447195582085896318163754711914311999954923581233785819896600976739097841620432086884329584382524114881354951228877248253076752794012115610910073421132890125466257937870848726567258963501457172271859375273487770851047224675887132118550777339781104864930971012347655473218692514519190273946577212174152835174483375033183883301723428277428857471455825847607983250823147469569307756214234059674248828618450273688153582902362929930838207890283437318067055270158978039844138074965195754744557921367781886456434334465197635130120100549396954109028286483105212680881423112825327413111215771617576261313349523211142560278748154333924633479652670862894755028307480564761221106594364626563026840999913656189043032974593794261252857662380728817888786343735620981626360755250448674632607513692433263090727500057995514410496833760827899344070229640852846882609031500728727971767177794848259406640145711835016640121426508817542414313711254618643761981863145080337567408733001386621177372791558363661998002975110141409612457664652522372406284753536809232980347440826025376939954824609199570770188303615309562746492153472674227055353192793374603826587662716557641119056861522010467076812550832315412776061519900289436001376099768275158354285405526292139023020667978051321297222210654983153143783487749028112774045212536366993634417729761912692515371543587557790228190225083361061280560178598575460647725524558379763081849545682719187207724185986449648648918130811312363072962739358669420081075827326203590382082595467411692985446919040581263634563698886637604311933238380308857295811437139662360076761592971203433863232950782772109801614516409744513937885616939842124663525796303655502537195278381979123952610450964811413131632015939946206472528902192084051699818337386535382389725927702376401885229372184840087180762738915645786896233894557301784219358478408897736386546243651629536546826538471340947452878324689239159576094473868441085095134033469068901354034989090792338038822710166779875521947916437999631425248139739592018168654234191875053904986099556486133585904576154963672900671343168182610903036499505942585073265618126448049408390137559525611547569358696442746846898923333169739060893413679368231765351680812804551592597731971480387754585924127553776185507653368288549217974663865117409133808594041065616644659313099241570417701218233070551678280901751595438709792929246057963381736827597303668314601823615481973898430825939500626953875524741508930802240533507260469539348853058109899241987238401492943713722255731448703043542682979650562646810735087957566814145625386906920824633604261404715222148098956612948038105917318859861502048081950845552949668801955410561723559422290890546580496057099204849063910582815757366081969007624681571802213464439946773270149958189066997031218332215613999010415020145751611902863382426253672323717333090242833328915722211187647363922369863761833016291992351238616404375641931617395930836753316443388129323875166313346691509548907605999451161537768067339534545714301597847161780455346403218690893258058376316105538563595075358315823855927524311358986909973001676953417946266263173170874444349528166449966462090133053965973124923115435896738426139255122960468911548871776343172939002881032754397650477484102766458033178535305139568021286782397104186390117933476989065401457212071240574658153190410571845067963107680965266275631250573743939095223605208190171691143107869280961230757269585524205197546512863194153967976458361119939400683537953464583159070549190493590539239894760762790748227384678005216902818742232354823334221403848211577381034082572252224985212771363476613882769486186532077839936214767260828213278028944785746076018149517283515039935966739916480485694987094671029069786583412648627043791668131764897257683674751022588837341328250230036397418208585223485567035571085247223301725832995775683654451595741127675728637254779698288615598304141829424535103297842992450230049432233600818530487403093720340067152579909957282743332955885517973555719755418038287961786930012215672575828631338308028918118985409746619991314002017583910256477474369550191043164080594461301095003706982498922623626249022262253756039584266642868574191986150019102967230979756750193951767015933549414867181007481843651743689673628945671462864580266288874459636840357502201241419465697764764273170907717784137732270540415447523346547602137051624603337473206196136289416654290675065335786381924951728740751553085064203467807752402170483626796755446934546891505765466496797593162977639384375137352108557557104075873874789259210528239173422779182085774347800127612241983352078982169446123406109488149174092743663041027735941874045084242394868700176629040703462204805178814137177426534984875813933817219180513319256628086686319384690711015418463810818049781108476944151911832514550688570224397115213496120521371775025278609565160475856519289850934688947796517334343144266462415374732480179338764737422155274480900725749022939631391535880607723885901618194464822747711419963511289649698543254154941598143856593638886660330637188720190469620730495051886331055633852633146743940457929264299467566734029307832059001791077916986339003135314577423969224453965894088568871683899659534626073186943100287429070911772184786270219776011566420560564577107084644238013577958268580264260275694136698640412599877811654568383843392655261997767286540209721947485081790391160163900753324944917650103948793453266271257508042406291170734304146591104475094835522014287126976897137866127537774936610147141132683250384243203096080058122254695950025347966468410633048773950475947640348091211224420389219297144374293933128513702484842815654438233730163452205979999353748914886808338086156193449439026319685585622363510205693988400488985255845800013540038274773635171982350416869193720416697474902992847768609273615650867516269444116213698900306695850820566020609086097318504542470895427083914509515956499408084844025955564884809421595560487739444573952560965105736841748165044360319345865876810495075955128089690883748375211271533470285109531586661142709508380665578882329634488414586392959101275984202850395293795211040953643709012628675883220890181202730441037766027011211684867472167596950842343029050144304794621282762844928585713667895187947938670403542971601573274927321381534072619957765705702272047802283541123724959072551567437280863552142852872956586096152091946498917021697610152791569101247441011427805414783284444153320419561756086254308395238143029729877764194587784294779016132899003129407376744893478016272329257343077589363186901410034247454390913779468734081789306737849161934172933610022212422506234571190805175742082702821461881156378580956012405969901989975233175151186980027867268978629779463472899727427456934322721238503479866751767354142802476768882307975496329746362897556397118167591683162839978123966880368873220057262189512432941498922137803594414350295997117570782146218582845247850792349790190839629992885903009750260962490712261114279361891421558738657766975038200949723579015448452707508346910304710783447292615590741067122791716766639221888024135699147980064706302732716500918639862744545703211887287212695754087611108159728302158151484728135403575908848311403952165438830385391716039165006498971312484814087489505226667194346289062702240108372428407291099984673321939280041217806358935407779940932890624453754084864423765373205226662063513654580331010071432605338735079969436737471051824332967808444817194407814053721115142542037354687116491428091126415460611895929152464023020466851398562611182203158045461243670216688110458465966761410364923524074216583637745186455708139104647961297624283699305417842217965395529700649557447548670998452719703047978098626070066213529828540916643627180540962951923863464082514424290810546660043156899197019970777857809777049538217970497949541824929578980856592384080533665136216109871893449934301265855759803269227010012726805355799309139980840047957634664391301927806485759371907436714730701952355856395111646945686152787451464780732829872293714397180554386192770356320833840284159908270333360867849375591828421315799962854919516725708817291858503092593225838882520677918569322190291404988003311775688119141847910297730451167287759607836590297962285976194040662919554413349624002128145145743605953028640479689172519417345244314642608397839675721744139512341064641091113245488507224104671551521874611253087280416701844601061109081834459889092269855231352010435000698994173276979100931409486300400633285442658977995571836434753791492159867192689174332174793560752539648508777433116303694612560361360731402427998127734712470696111368143044028640977278554869772787643361125432218568696432864927659150914700821578865545039089745876321680368600325202909557383197451460883923990847459584282014274104995513747250089489801519660782298775672965325099050595278953786497813745483318989114849150778248476761271413879501025904821962461757679824041930640286884469257683344875065370506535057603259665945811251498081127353230353720120487709424399308624600584222114545101694132618111475414771559489502130173513167163980524784816381916269265775429249125385718153685905307766004006100086957389327561521609966940578258578588896702954629325903012161664827989593792446090354962176236156765004766117132722701586586120675188747618204503138719871254841362699180821895779179724407837983068074307821691255883612608048875329292807805488183298289676491113950171265558160988768275825476987772834032326621459575493482164278528117191259912631992188964354390927934993028398709883720779709430791284302724839513486846252046964790769016336386599014001696444050273517068522718710931390978017487919935336489675409252515685322188962852408837364166591059073540023505356974819870647752247468378634558438388672754460438099805559845442870692690335880894384014599496469090422948954856840563623807284319776616341464590608425815967765528705877208982418947864187482964223013647826952676368884961986378214773633717172748040853636831294552552658986908020829072639022237093789699764692101744805562701278498636071116002857751512700497386594283664943945944995583732641334370508476526983298808644057631434767958989624270573330083153030399339397216035603711464301458837172037560251579252462298596164858934680551139684607098145949029776646580370491732064123041607177185489627522190003674772734444822121378798534486366127732150638613701467733935577181405603746599404191024362759600842274335326748226534423574801761528143328415598781462008946471486632157274575374834938334289294574264775605320363490612503442944960103043984866238806851049588840122962257092109820505168846846663769292136710941716890101380270852885067889743122538699199180727334640945635050740791715847784454302496027469849063151216707808708470387741870454256969228643726374625303135978518102106319066822021604430696323608803914145517352845228710448910698701040154523278535843333345637990541791256900555579380431507672585514976510596041270005549205306035462931870898964593813734104480041461350526207327149523456752347992647692782488779583996438684429628314281894794666712333991019351036529123994169281532832274362911837148048812117220896733644251739912849251077739534047811539973147687703419568100522982244787551849074731654470550777555262428783493233394060075852068829152790104101915218152638245807574754841961184235177634861029426680368131390921748520929467252147064299598301006300433226845729809142797019424572133872807148301936342375527536311168154036389955257473846929944222453809269600137654386979662299517640443908526454967303384913069417097372837339596418698848208120578424755735264465265837894268747053279769415118060641658540903900807757178002489361291483997102978691126499092288654838031698533888078146126033859268115143338178061800143684043657463824888923753549882233738821326484932539195677028166277790337230411938416739293697624955300542997734512660940775760834579209245414856787413071349461897815149245098908264601687699745630589872355124150164181118130669840410648820540925264417071915182355636746976440845076623398071727686729414206601316712792500580495597991241056749081083686128137380869830289561069988815565979861281904917666431320332201331306295993010982626247750420094440156492494080273416979789905475005769786269281607998082578678205403125843325933020212124686128223190564294081981977982933803526702831937601061936391699882631792358566447261808055883013554097488724750059901865248551535408258708354799274825485044574159323621991134593307451912423043508061285408708247784860784352496742829848441369848494529136287128286218500171300312782107583437115668695619001412751851947942133323301114028620916512163463740213799234753019997751217828718864775379519120883845222070428150667672145483042242397759838612806042890781387854654838994331399671288585711992923884212326242719255871857687609398642596139372101414758554594963835310946856895538955948483798946223680141128021349124452807254928848809443840150510765633687368039902691255225956682479401915697008739331423974812815711090109903127024544693394771882505620503091187738408494680016627371467455025966015629838224379134732235583877501803481348798122373563231889445673387485142084368271829353338128121733823224366069140014563716977521316813412152846378123436139223013983738484229773339771653842480283458646565577927982009246867819814193556350919330040156614569987718446178211764345298528595253763443324918364047819114238973629617958281717740825011486068137101193632740927453666470267035997532995833026901110814374904438287508009074764612607423585517343501156511991784359418524418147566300352771248428796530329894594300728705098631091012565311307792486377408600039438437022333229226025516368933440229134594150522955677858575332466990512568411630869239925753951284780679575940934338731366914905769350174305482817673493826215679606999977086805929414015878342885791091254629987353274554666141942063300461892827128954945861293392870280338835602152211312819296331246708547470329110961394739120174325111435531204329469176723313257919626353648637845767835860368242406279964004997990014451573266666618336000438909003725151116686684678021998473395039098578971984451860777762462164848453248178297114684100213415640500691540918247364536087342018597991113812546035232269686756183769988906514674292424750684251670245384872823682044022405988663852899526791411513247375480296407824635018149384191325915740270820337631406658934111136527749206407851391635759727333090197374685360804876280295543346607961282139230247925989304280623176493375104375563190543988713315037262324831089726234603916911397932897439172042674546171371053954337739581382732004709006822089663420986384586725047922927802643926141248315594533379774982512255851323679426350077172709868323568685687631051401152787244501131063477027485239429212028476122468396775713505000791030754970920376337620492487062309739559014918748006451049141046666543298922881862039435149209930809450954800747712200471108194899101616383240086605357443015453554394556094436110443985710319815671910004811499973075762028048551478584290102962766983202106005759737977255214844558971307519070297090849803943722066934608645435565995627073886516149990492855131476195538150229837327002515265770810957728338847300467511024508692386609678568493640407278367683256081132079873112463428459828706406203095087135187975182011022800404549121062892497633568525369192318643375149241423042618460076463595419430462439052497672174346917782105095894996083168139982008295631008961090900949459092557938839484930503323213517663970749073351408422087959615109454271379346656926352557878936411030694429491177746459997241456591840304494999523116869267903756995190561797603215274749024210452662874099316045886524381131956265033063614557457748531346802228870050056071084531071373293141748805860060841017816960938837255027915492497270623593059214473387550161668416878919078804784471319530489406031622127731990819987847810966883774625342132780111341036414275449395802867004465487984833064166989709759063938138494449407412631488960854857861827294165708077005324263433189305263034960031726590813896895827444836394078281543609435039320851286686852336793683341307962958759147809417300607141450160309283192435812760385487650101109302064071279971533892906983649205464185916285940652832108724080206433533091970229681011596794294306170672746709607725694151476666029938474957242452710100427122092025538870188023758241774503606546885478105987599512514466470852888391662481432430389682770870084367583125128108346265428441677735123137876669323793436794437244721012213644353336631214895271520181936595328314834085093921432468820566172306803103509234161494117725723284062416109724527244166652032580779382671494008479513621168706877999055534807600597059401558551107562962254682639617616657960498361749235331354698450412625912052123132145254251287129521263704659150158277689288461278131237280873219455306529007241706515803653261940336022752625433650114276773713259668917118221062347571750822359608213675740711910279997752941613433311130990328361613008561755711975094813422656519123508610138554344621267758096077001611068988386012646180268308197036764013618586649271229671989340827639504798828451577675533590921348931311671090301730773566314036736367043145734040827768269548342624131066747089864114258360234721895750488267131261611018860946996434959947503986070531085554459349901270806360807314332630542136541950699128092953899537916133064634632304213135677317036516401619383357382788048483614057534255145684311868436403628961774122522420336566535612242603674767594169806542386302872416777002474933048853771360476939813093579998384348001659134762982447695319914181613798084488764849447132295911713093293970959044258277535801026991508940143956690351509582507712975293772890806676199132491804388197748328804592561158828447861812472046800138276030142809601344597908290274136737526888457647483081230572798229026490650690058567043434954985518211042186849160535291349341419897621249869655306738082850037105992239977769036132827083528113077311570630726399372240134582257484869232161544809134440245706662268317260257549246364465062120956870879021262732839451546908461143062562064421477304748975246817432058346348654276449491894485355644099012739728621939864742976950459684178677274907484485295750849472396370256965480566849157302922064470863095428941634043257287279851247729202849163946532221746449098065090228299263548818683475541402582910137604506091327835712033591155469646455746002674642742839228461142370727567093046684468098661414196606673595496994577583587799362482726766067541088806203203693119100446481308590930201055485315787428016073129827917994104797088471409705792597519742173994843869574163992702322346689777241900174719714311213344530256520478266138560959929262700978466465082303698263441383602762229972523313544803328387407280885230584090385604201712147626148092857213990689675365649328925291387455252405668980359320749335671327116315262849407108544138955321046665511466260023948037397509329237459558889042763457682499032050007988446172055765608623833356837792517403957145842501538029563452933580538944780565041480134164802143496391280237027235694513778358939905863558372097908722626909474304240686614299130880767428653512234659311489828164358261793194152070021244685466058477079952430598906764209127577347052016916811215251258778079420343073770788219005589726894898367740463301848316323583577699483971143835281340086582040923918246779799234692213560222872122220415810860067534520552161416522754993359208330799831311478104554619983646223365215585537731200908984189200907740130548603961492406231411861945784304012937844188639120000744171009458375320572525499184711276468129747601384609959385537549830965832011082860613557200323717505541761474596432163608563935856561765776334611191056573926672214708929921838783442084434204192718860881760183999118117444142005698621798601209389741083678887611011302372786702939918388257849725764305434596240151979686175745029739770948576278284861750694278694117298724773480172237374142118245865992928198842304747822010262116371182253803575489189207370288218644033344318878757111033331642747258325901184875702976763667786648864725110290946196627984656356832289497491423760684805493187222144141390383689245808509807536845391156205142533195534570209196487520045642366461403080665144220701939674316559957225442648016737156272588004951579578012132797255686370630462362104257835345361692193411786783900147557699100462666556561493022875928083181180726523017717679691907077938345673620554293742330165312234497899137700685050367991827246438887439357568554746738023628137779110064588482038779146282717899843345664110106986038522909392527322458217094491002833852136479881656057184492310800392053531467333260553562537617158179523636384926479619481668861654558145258368864699588958661327256652352033411462827249243628620265390673858589464684300060485905773565668077666197805447799881197183324439375434205592254440620011735435519961727811186722860967150637747896799585849086630704165653936420251696015174045591457385613439033675835264386317438669537868097723436156558642611063784146540095487051295048266675889655129754167537135252469252241611295143418417654195838975652284547603435731712130843103308486409147781638074046536368891186218502172363374359391528683910550510576824255510568433323512205276671254786366694584243697318369136683860492622282276992166522201380267539876301499551427770402309659280649615286723921554154091775552456350618028102431625524350330090995782681151557738895260834958022311234690630455158481147952133937703937594642859050629494632850751041885744793708566577947769184848244772503903991020709438079453737828863090394607658074436480091877762084915519626089535367702939028105799905186570207960883662173202300797819389388080373024204966989907134067130286103945127147640250007922318387638032863042655277036222495140151374994963354071597879686510536794275816243808199583972711592974607230899546324376332263828515549866680118766913018802408670789804551484345306060370496269041168427225363218184046032852665989755552250446994215274566240252477949574126311600560988559886363228757297900863691185961662527619380317639252590493176163316573076059028579339783222594320673881592274363507381402866573378873885720914052766737111667399849487414453260229807732126593658925571386003092283274445616598429283290451972331472926085203426026071358366998040142997321128687028898937887544535537329245733475961134253662026368320716120331523476869275392579250853331789970485298381791587913315340659681342698314481505109151142931126400756682762465315799422504290240065551050032629679984845930479817772176422605175378534704314706901591066212466859584872539222512916278928657985182423097271334014523314437342359284515552687850878747906805965895503965138783428435211969140036315362587974570567144621545668217750448065855871663404231065305877081417630397605259725691500063566419137163379960802859816873814303339679702637394656143650681533783188073316439117585556462304491851606072909967273111141219141356243858215676751044965871158329789169568927231618549444239468042355089140250275411247416642486772282072050375587555848156904305671393081689004647404996569814050552105043548392387696440905687794965158200104257682165060234125707308352429857152714571549077595099916242244301513852681090771636987818648164312366798779354613584174774518161754922365048411469409794336100289513655608429654912243800438960310500947065375052698298894362939613100444315198633987073230844821039061680048426596317701938960471099029977115905984447447418338243184879559863305418676388582277628022259963763033040700838202304027804266462322319363075685315684272738998401825229324587443649627352726293856636547801819350514695240157837879337019789464072675807510430089600413524733648487174537286469587734152432530776076542758677595891561401989776584781297898772381744295409495432986188024116623046280816853126045804428134726865286175450697900184470561219528092140591470960837626444409872623583202706421500749935485312522091223361727136554709007569021080278664205580327479289864727743049719010281176598539967641915331056141902136352312072277125244603988763652538351331560599132131583149897914712659091402427936721800184295588882846201555048113295128000493034899932650400873032204074443372397488360667726945310100351699992595801112271671628894945502877338635636456975630440167851214580703313671635014803800017235956782768763232357136762304422509399430960649025425853313987932725655812098604311703585103403179923851153988781822160231796641965814789742256376575289687836509121129429758615127589313223689163000900372936009922022255975701899541836415891180520045888723284093334229169625016452381053687450114981182928659407007193321250807090523330650414345569427112033764308007805272546455414951948740764798469620365915451180854051291146368472369327710453465678773162088014733860252845892928221108054393536081467445968021631313893194662205461105501078376036152946216647038056611391713579372664262686769256532131406424260873732347218459212640995961789563698818893185726553709068143361067183448350238200129210137044461300341461933701993156975935833920423583942917908413971098681609594567089372574892202675375130404858780228122713941673417284276485130343428572310786429584164480751440002396457804176410629224883387732101666683023202529154290336127819658510022475961936444064999598785284501019585300881692189012063206409881935918078784265137993655013368883283709220819947580074789739328587669197984952876080017215754393344946423915808420211332728911222141418890818810833640217836737105880528524049662267401659091332669369184711417974705297313269432216446981090404674441614490748104267085066999582896811709045479708468117426461801813329205381548493488334186411873035828677485237736618603108006436586120954273029653722128876420002675629646898865501368863731075580786216675585081420994848824731830053908704777226493628666205559307799363822784461822573713084387716661071079041041550376331141418997944476244057214429126901528523080050528730312465011527633869789492891916407807849268237065580915360372713027440339742706794680464347227006479419044922314556359767655004228191474248196504140300948825091401133852519618362275248238700139527319608753577377687292906795496455159356841126891109597132894238155580934711142974379545804849779916364531965561763402399730938784376312579067783480092250415253467493325749602596117661412582078441510799941581274528529591879265085069596867586894267993514840614339062620748349232274528668377950185107450253281740579291825872922901862848918676304582784785508294237642338552136454044191856817920893919677521096824168231276734149658935928207337867965133177383824134807070680760345110607134464738404105281826873840622040653706532338763837230392550288785708557305790388974594189085250882813200431043803659716964815684519040223936008097860872114331879673181563555314092758128833079188706748315814692108602227564125269151495947415363728192080918136774897877749817971849884123141795491129070616341091899233110825696550349941827245875302402195552631872954757989239085139394522127733355306583384496168838166060703321112893064095987314659317983276760020373164463061237366736547645926409740711396457753875758790364337943899846462894838384872033071419983962720694136413528062582826052994617141247697534155406664162090013126964947387913121786317159137167289699097908712280428503699923216004064990926562573584562261888150159852425587900406882803892039933317087966219729317464518808823950302463157942514733317268537885164673355265484316290162127748600064893239869171667556367346233068579366417190833262253088488275467287524817200904542603096455124845843822918772215289742596127354021898558385737782197783308503047262177191069817322594876702049624780905995598737300360481590655682114022703980081763799052439445532361761593910411289317956182227727356321930395872714586203632237716316006880851491792967035565286927497301549159519005820103190096734857371589803432129145815519417230949016800660118462362309453515684676496147124295854349567283301179974350658202723243728236631108860722913601774010787712631365211430971629516281519808261284676985838246231460380891750121724767045849468694732589548308629780715564370730900413021679769171253484439377654367905127353509204301990098747005351215598685674460003781603881341001342003937290947336515292639987732914471806496464821910833638897213119007189730556369188614870922086639587213673457518589006524334722889567942994058754962381394170117812934417469931975353893099523919197495335400510363834045884886956085589740843819384155791438043187259686837079338768664107465153872284346078267181455855654757211042179534973863228538744535934891921646171508464736994274842664829248439834959504889544282105559903713030931538477929476841254405371114284584140085919344000225001613468734901925161351965011251453389407045190431966514243512608951816855005355128766257749573917418676892419036206057547159340879029167978454316584663737074679915416708101930257636082350017585200845717608982220333077788434104868499098463321427090192104807892834603286517343681322458248183721639991511095735960170092073911445379299854142514046314362740325972074827048252916339714773503723947455370648379073548153605907497058420141640868415365476603352311633700638892693759680555935197495172366327682542453563275355705357615649198542277266183715008150084883895030387739601285707521737620485296833268405378303572759501001271736913216874205390465154118118609755544686926157769647814124523865291130258668798110421089957692232872814718349089570436893700507841861551775227061902950552183634808051225231308615973111580699476709743489067026108263351131574031162889156908424507378244686990550129355614866106263606410091707632727652192130598000341396773147999362372109271804174728332000437427660624318985483251189390641258887689680620163704274735974449883898300708897019087557371402356370382045581242856349710997714956669624645199709713541131302271538675837514773273411839177623324846199658039376552487889340920346769180322710283700346012990835164467453541964495186833299311031038693282677219964940236205323476093397253897185008497930781178517510270926739842561494261982345168706868888778958072211148312285995519076350945933158729927479846288172238082777261738240639077217073564122523556192241509716161954595441625443872217451578888910066313200731355211754105515094198864389522210447807969692719986530910820016215692419900224054802577311343023381091259054785693558389896423226384910170130858021037186439676398288850802510695341241781920068268540215468389774994938962712192137402432378325329849988621143256988416363767505962403808994497759726000605477474258079965783217943342549113504924082538246887929394073647206807376275033487749834305924722326490254665608905190359840387365782686572448154830171791267691669653176308729608013949143690664415964734734705592007345357175876888621495677516005028471840871097249062402337594178322706340171898685683812165006925748581006328286883446961107413354076406759526685150322432786686371790304473266124982722112163490682361102154521302930259027975277423667430918521249826957010873115851851244308401430600365561072369581314866086438416565647928848693004226655186320213170674832518983568174957738168902731862652007919545409193291231291190771025872481966106303735653206230918625807776099031588651072289010138680765257151614794604986316216659777355320664224137881606300751875471591617743957281874633334669638208634666279151173631140369634126105901250647825861918793859108968077101296359369860264202805942977004552844106385621093087267041938983677949097050629495038713776141924760604466044828732363018337087967382679329359168190722351452751197218046857910921852468187563163432345885062498960408362038094263664080778016658561359010776100222871903551595433397619531303467030368827943359932083112457818935587564921131808894736361099606029301078635901890194487853429152396243405131974680537615002634599163151774367456385234833996791801324094974680708071751039929801836327254687092615678105119761124729736634572214919350570405593989114681297773126232450697837563507200973072739563344574778628216773131864713121475441564155967500021890279141710346511088151257332504092982897122976277283886027571051619593172231623969338103491135938471981377038631081207604555150516548620637819234863825262437857541721926743214491853325826185741329053129241250438120673569963603423363206694911698420449876972432884359614266863857755569384920691841727931374741945394269847257438415217044567478960622547481376085152387081313699058996304488322675251619140733445630528222403565303649902081575646179802568035525500304500059364586289172349504307220830425909502599736587736924441163809741099538753623569486980173638013466316440234291579017258683707167597593482523986613916069208418956675379967833879327234950807929403038812118621460302881228344980110699211429943195379270558682863694238404711843680916373270322549036621198805389367270226936013585848650290191401571453196268159402391991924034912144497459993530248394783592485468188474665688426846866003220724910013619983638983395944881978134715002465852002339483587108888604109833909306558059614911764694172803460778205821153443648538340904242107027591270336402517500958718621292085276537054918183318666727653386457850765343882215735018053425707445383730572078219881603028517815492747916033587186478949247349874479535932338025016605554242993182801417566431175106514649456261586416832759859168087151601950028499511317136327761657656703560394829580920577623073483085475925778381713182475710653478567565109585654176766864121732458783586314883467622492822778182989171405252953064499150517858699319554268186170296510668093630679868041807678470339223177483045039728569470455136374238377444762752426148932207197230395972603681868248940096262424943114277821299656601507922092345150921476118866829701379309930876570890758960967672468861264814504525264233840116214958648070410432873266511848613960900373850445958241300154201337884670118954895248360173191549847177962999362335718609408218470788070383077895102986800161054556973930122360171883189363442409296609688090513283722060179317423916865652334466599925071957344270359167300269382267503735075075137952413314246127260666376821801908592185150599326019678400861152902588466537744938038112706550568430358733752695404257777066172910272652953234280670299713063305348861852882536428587584109795073667436572245074134827330364116627035977753802519854265326836654583507444860721379616277239317517200953730732396284133736794232862478477578221745042290337353327626782117574912614229412292817943185605433189868531689178988355364217957915181726052342680758841402650311259368857010939545615780206667346895923404427596346257819684867077487451574412460644298770716670507761553367189405454061543009350053319044925815823718341187111579009665087501012119794439674506988596717735086114521816112094416311803278744313696423945302381171809744455583958773699266400052490465278566896868892437050904681534961604019098023476030531249138762295952067189763216105937692908305345526167304557516917572686104277344189465160603311584035714795150799860328826289645715272476775185638737614257492330968880757080818172766119397024380773019647079626322282562417145283827744046369695523827604282423039925500592187730272341243762325506014088227265067025690527160174233171018437910320061661347789387842805729348260208994093710112987167535514474360847710350439098797405436053326748532518516264619695327214079010043611805640239851219637426631984123935750648430063118283010578218802330489222420977963335169020081753082805786531433043278579882124674827217821188652039808923150049246353785626246895605871924429348463453298747978632036949422249496439906839271876151096300409280150025248867477987190730215311810731372713144537295303079512065555687322468770621433978659260880313713913962600875161761642124772312522158554615426483851284889985821544361281429125149230530882076304660057186274089319761737529140690397243565286628395367029142955254987968842639808889764472049938615215253549040543279586980717085629260048072788375438825103514568212853924652229253323181465906375051413390991166950643217761707343926480482637504546395904946123575514256453626946625494106495967753767493704687865183312146201048092348492648695091644654184760280297052625063635937441033268500631080669833070753639881334405418312397773898917091973668791997209985563936600294700007052652884249949082257300230935257546842473518509934253965451706969729138931810590468350522754029130702279397799770192948857213162141527215090039064202205059262314703636403104990727750712994230237867209602183620256943570244897521766513450207316852057792236983477312695576028713714187439824523486317953581943217034722510093201590202719102397895570174612835920952879062715482902018910775041730404843271054228514844162069847101607851278023308650532018721933207654502322417852209460401033749844337094241931081744403608920761996220484878157582042800678530509260586458142151535862428107100085726506079740124129281725374842398386734932467845645632129915213375221880120488466248228882412861379093296985578394429098020011560236910079654228767670763111891993258175678990112857500345279878984369582579223499258578900539865844701274806728026440911500660679762673565946360351762917668117312268521824907948769652698892735787392949834628576202874818594286838769701540594557197348207046382060906298239691753634910797041446586002158017503267901978360185210007785928514718218237464162584140754470224211866958595405798678774198115549472721147082727516361023773081699818241030760107276511311770224028525002933087015608318401079020958178099089290128690140205783110612615751017988405384562849385296709811906765363883427276123372286599082081130603984614962774719214506609844881833241967565396712285974689738138370349800709179741530500854858918032014057703629570246734507787709270236905174391578435674034560936377649708568022408402228784148910805905059889052492986577965927857536246126366546122358907473286202058390970193584239596242158809339861797643104476213065994263091450753709912589194937677615929322983964139570825713249982225425183557543305373429342146373104209254913641699519459817211141200611426989823287404901980997362798483675031141353613095488431026627179091949855046816937698307528402598254227036716745706194310430929350368777684310264851694255857176061585836566341589118682734512837819425544426267567277134491690360783772638750176723665411830784997262874224686537739139103458383017282481844732844722825023715921461954278835287989393840558954830519138147203531119220451810053797525413215713575058018073342666482900835386077126696568836410641628112339099544243054976626220206749653122282507836071206759536378052395043643935981147248964619701398582896601151101256092402724457180024583020817340548746534229289916540500195332434354760800222256283756277210981496387226820043508519020495546687205103514780784426706175992989474093173895698928024992851640541785626785326144173340086374752448779348845434077989669738128621772028126130908527468783774693072823014069527456701095658395842847370290356961968471661407945897695974159386730819807241789052853942495620209807886187028229579749031340620312959670385210150037457924304789067700598745924938614288107992756767079440443332258816154795222592086547029984181948168871732514208183998765256869944028911679915960973320280007370443390395269950691336871168163040721074673433706020643533246909381935888366048835346112929916017070789923524851013538848441008439378775825244351443539869199995039529714367242243390895146627530111607669003337481374143884785368829411561971679189351398011151677682980349867010882743280684513230628951404557278114080983782242369766475344278052655902908460499838728331153473261090413138567633082935749183325037420359017712505457363134083677126644843629003867281239852904133961401377329808055621538775768011122578014603322749156298964632072718590086377091742480096934612016781345091810135831768906448339393189196279588160233857521913044975413741675825993072312093011684205594073357655271065562477744399627720252491471179937158724596270722865380394197267229420947982579477622946618415391156141447176446157639366885339197273412595875971375832794378298474346721208647779226624165726336047590462316130568865253510959908590856071696168813433354647915202236775977139041279582463542517205003790847580299779625305038881842170803923535201832339469786021828680463407892595589994026671524546119109723857163160214311538121117809654157264601334961746157932514383111626671650581586760042033342736645427242453837390828270896228834247794182774951881164261433326629832237587241831588206491000321357251859300927517495312692631956140675239862846151838040231352260771890289046540730582478245719092922704780357603281867391686257713602721346343044173404519962142314267537997472148198919655989490675707282439243350355204577462337395389006660996961017719716405115771886000691578515338533934985423562447816148977050857112271077607014424656862414152884672130048404203832534879749677677505951548161998911751786438334815534368662866824275938908570846559975377722150240691392777195731654161635887528951153284547131521769246063923148609067473163339739672751161216563756577776837682126301209397578101348813689252027534082747589625930655687830649161343401078633935610066864955967088545639251212765344720275754745906356014992737525215774392605128597202365975606172148839386081218846386010718346483181358374730601268764172108322633841942847620072837131619951213460371524713313938242763985920618005884671089748257019492565050713323714771912844999586090143828630475494153785576816683584436367632572852740826945690625195368141143748772007326018763023680259237919984730086565928339099921461028037597973737763285350961836119791355429226039834344821773785583993725437837542616688982414178223319226040398185410364865090577868174530332691338763820820010704171963328501406293731841956136436506249375383799239081054336710136564488607623127622954809955963791451274165408189333312807177623676497049910312678582825343606034371402776001138337410582055615588939680117939314528569659762050818186858628707232530694684859330205180221725131423402128687562516747055589527379068917836580204736998237143090936190719983914120205992326215194650581728998638446889785111371912895283330954863277753028100223363182117205300272109415485907666735696056442676843807613747178687849145811883733653944922777401748040250019295860003165753774028668070546927742055733640364855975030234730984104612848069893424182858877249820923668311004927929354077498610846793526936675166053282793902270716325976767623480792356241762821316942643381847609428855696670100447549649729056643720436598522126517148438372207265293707079978993070037253880178815328257762204115256206363141998176149912331088580594392592572935466652611446031501138673878590823622465073818815382319757953553473441975127265115267444969548951257574979855672674858751391380390090537628141184581838045996190177778519101796985362316740681736464870894329946131691014433795587341271587359329399271227944986420464501573459932334005979713684817914345515711633529325758449242842538125368068913071076481824314914768464261054738601272502642154555350655684335250273033515488904678108172591515568990447231166636870422351082638975275488958953639112313437274586975685012406875365093232018818798573404361310988120140684508732621744192616516609996136723613609659977641171272181347183715337944915188256132860033078293599276235032985380772348859589818674401942014200502594999387762761573200912595499760825444979278929447041223676619616913706895259065608408888904927418856094968445098831429160752064092594713135739246718845514884133163749044867588011654618125121202657857356101010931558111534111438515853206861655983559572469010420232861617848551899145442614431554553979379826278247754577460305136842001754099644676244474019297094396270630842648432100480290580072023426230756961123341948021130631571093258817363831864740787144399541748610096676285208183977092572342814148893386148461054900133103319478164084380216332881743874941840075103635080903113723368581256818043916616240188298061657845694428832032736411768261959693834608470077255406506979276908107043432900062686649731525198326266149604963749656449100033461916221193717690527078918127706042285511899642691507507630790026559136124534684403216854965119372280403997752694799711310403647581940906869774545835750938909238817923511276734864754815342668853588153157859299798013228338011725961442100778537012882605102896322238659467390573798482459300163327401134848069950194607264096652118364312202975696099169773230864221330641715256941658705406207015713503290981307874161717760492327887463870367713695402054900775998520696501739905898025453760254154718374769035103470590792407874321032206885749821095987447275951507439327751057547841067339864702034498343998352160464027549945312044192198893828227024115146576950013524120023594404760572917404394441667392877932352509987646499643000415221386802374058084373664867293368017355358030163262448567234489814487051629940433269080107702974196376500194443770331603394378958498939899111352049169714496669355887831316477771779155560991297777914623092687137986513480095916505233160211330066019575377972019409167300608939134238206105190497469226506851276210973375353452948571427731340899550663273963982217286466555685370202093814764201090915789608885178400508006615029387475468922516937452886591240416874487786986040560654185173872128292007631397905565204937569407718912241233577246591968523163343529787660924028508301374608751667537032095325872212046959325701477228892740906589391869312358295186746201114865365161310246113748949651815561711722829955595177304826023167037651478320637203210734636780148543161177994608966754262650841126741743930326580818053834385247132513766563748205867236007866409458369445758108785606243650024007605405808880722004700237560868514819551617812032798413748913957517801962552948147092474913324374742023361459473689793413147987725440297378764928292395577922539448180288897820133205154661817424808006965731457312381945732962736442447475199894875502409928645740275455096118914455187059113686946020442826401535142824318422642803115015036895937196198859936439062455594319597070650059200174908287190130113791454951096477930971473033457025487758151778591437168337827773610060387316912374307253375965276130397632360688083430998885155849307290075772171280562136616471997706745471311143849862309937255639448418668434803352106605273888621661942980227982581115394224066179990363048667788043666960280182991721125756737339376344827838886633606155077447245270741597511891671523075903849559867030094890179101571007064360181598974697572956464136506699497118323113699790862274703683248340485271653414853859724458876471341926470886576515202967475565817128730606829856991897012239793183344906040476987244012521930703314822440324946395350945403917619627126746829463202729249006341403980321187578786033799476369882568568861487695072052016113814990015737593902447781095433998025047693934886095874304527142724670734451841214628623582411157971536120314015920915943459549820272771782866185544862566569490331922966130564187777406793542441505385129632202395041405408787568336939807462918173223310597416046806372600850150997731257572856670897759060543738729110054816460466909194981129950710989073180044759247201413372686393308693908166975658894034710432048602235336041145423012260316435315970159109104647179416798229941293598239299577906824228314705661030367678742999081918172328657630790214463877574550515645266386972245013241115521969093920012295606709566054238762816298212336678210156317452223378903341730015699352973421473742892254720836580966081558461928713219468079158806602363460985132039573106032187885774405544688581900298411600205383312487827618630304384359815419093935924053844566346694671932909992025343053795460894604323861694689529093095660271587109005548806472418113412408058904774710958968808525655294787394510938659932226735822950088533927229635030998051091738780678108194544093138155757804474431132482935933520726640311022235940800903138846024191180483276322096242163577303868509956566219051211785885974534273531173575353999209971690875562285325891101678676305487299280636956676524877745807346452170038498121151287390258059651958166962879865574834164640564417456072463680102810367087286854585933876451502720952501857157651358413633645603928357363259849070148305433911587636893861065708426753824807824435809467340177597089100220960752559009642854832172079764700162933043935755210063475319677067475743939455055275136168801299745323995689069544647750151161505518170131446550462136469003128584411047991563544784999802184538637055289685365303714923877550260024564795115100918146334262995576063874101938430296203065788845972009225472459646432110089164363206463411191828282893322772610512880017953694015829167426630878026546033177106008246271017160662025566579475625223568352046899364962210272234080873129884429722936494167621005379609163571205444387456698998825655223841959853869757526864539559072702835277260947496890378673165618332671586437451794449659508537717357334111637604843060909541525282544936270628343105970440147262904524125326760551405377293027110749012267630702311366476688169977019187997033788643907249224076739192861707147060055457274969943871607735662601122355365043299585396993578385811921121074907057210030108444102273434440844681135641339838914356262960437757888138098163876062080425345370986048702687563404218194322260785995521779292902256220107446420976518414546445372681075771826482535547001275620593896387355312786756511569814392104364063502517088328822042287327559456213169445822898903274004610652799242508361461301415576212648545386092033307560172273277329810445896673974928332143341554979562988261112166404231910569873982284812839793544033907730654129283250918869839741669674235522372687990017070341297158629842389816118828862052343309632871809333030439280398043485402597849340875122908440462435282647742754209718496289550931997415849243349133245894080230848216032678691617656969077486851723159268650756576637761485716846699667284626198248287617183621924142578634857136300712462725226188002887939003706661403748823396089519504109085362745715107891253660726008042273843932499166397082465982503487967684277430507166073243887663932067629184618630123890281729303259901922131129657884065833771399280816580903232815724351828174179229267962831951323880020483558117501450937584931075893824268582704378789127915959710406073125831084013666880025441556051940250315144846116432382179566520176199316359894218997103529573957795084077045002023426398208111945683024390948967634033949799694797149218858708236774368697028280463342496688102581560703179082972912472562311285624994104434847576320501019774848611476163264566289826366328533942951905797626487802902861207347378420360632379866189390600695207168953113285481089633617230391187387902149379029157544631008079856531276523902726025049333770563921068856217009746369970241695250024092521424295202599846834781663858705792561638773683987904581025089833765984223200096377590224558033555103945471841422646161726306298939960201547559200641090267772560821527502785540144248974114531596863335363910719229520700049346615984677994275178352985432151237509166771477316938207949969681918112227044676406107106819191996356484093691019104200478881138610640841370379955001165613309225628413114851150395725724003240335070434918607430103909078941937029764473831771526439657147638240504960408155399293751158605114473721073030728869665381364271918056218825768476725936518022789676644517773167839094986748490447359996408120414166590895998823420032416717802471644118963420011779545795270582621549343108627679492399879728472605905165469497845598339512523300349786446256820519582352562341786071537176624178883544585379314759889457795489048342601166645404663446405296907861510542004279113718459034536368281547143875303721564364999820748481610957606355564473876854625314107278156773974094605851954215993377281061711846472084068691863291903839265396356267244736748893238005185086224670636372037006347533038248153500615867016980485595640616949850143503945821789240863533009973930442531591678775187996405013877483388200138181532072059740650635674595151356908150454196845589046275550117516766216231635119868424807307498600017179910723007066136205984634223021586605455978341254172810374580094853304411508401258277045257039570012179556391197330572230022045376873773725775572260346757718749187527166710038117836100553342850199770067566488511408631174215374430003700374961598150417587903357418887699975607149010547867567949256623230141519193072208124929456424096031611935425858747008496604278800120279709283708475377569754477944158430045588478079347025457466625851662146305945607846276245692918495050916960399992194131163083728383639170226225508393741006844072454037425664625926501041877998231212781096218704385833551620320019456560875014653874482893199710098242720712841107941192819081578992250423134963633178378137647290205540682050367991952529618742267450133465477365723589125922750904768678938922063453503692976295174392783937444368514989900899466043118235765477210640190457235804994647098209742201799663685820458169334927515747013881819885982481458921380914780035965895744276881433922241097523376667049709564315347727552890010172261798898950352384422278834840294602207585220038370750538297327832986916456648845823345176780754416581199868285225462334184997474951480479139730157712238769296729842434922894762347848786631675648228325593005960206630931003581213513137670418090583324022121475536701017875273273179015193460250678615424703254523587271009105337456634836312155908018457145823514602424636739092193588545192327000813874096798730516160106481418680344820926824186002836178435682977853673640867138638282271095114115291407266745672639577827073562160302243302358273591897028618999177227183523152455807596213178419833473319883669201315669919003712417211062631854381525227228888183358764120744911302577227200512842578501108089730961051821732861944330139019686112417746044124503551148111092509966770189828194076675911030874544772438035216668774933816345227108754125946721425219036554955017912312499194542344749755501149025125099774693515049115742422536399313775115758787835283310079501863005826982192367724670609500767725321978646442254404404458995420325207776897313140248561315825207227827012145176137760155612275894349500530848802520181002892468349683603389954076707650891379628336997945709109505930229804660938690824735589415029185922600961981658137168896147501433982262773429803441257227651822242418938513198393654463639532569418414524262666877878794608065990652488849415077104364871835526867401525734935163875588843380675659927354145100918570368875196838564013693396554094472862077842665780848940122361748401567470138902673814022148049385157633968370305262283960732691610911027493274584549443425491019826970228596932754363397014462468791331738108035420406320610086806451212644909739153087189774955486861713418737311959121851962300984464821475475930914151641438898684015476458777117111527279924963347959907964491981575404997223275477900589577293842653476501586002045152813633341682265573483154554114251795958668584881902148475308799858233358251208241450735007622963789802870507860868242604697547455567354517119474259099952444996187894271755932377706523908008129926978200316138999119369865046509553100467032995174317979619749143840975177079181109286144684856996556756108884325760869659988324688004289187274147760598375704166902231246301536504460878451026564127820602749138325805814009997419594427622660692276231521663410186063744428391254883791770060692825051095102480487784449801570575558996189707014338800942033880228446577852042563272799195944355980769985917534331918720553532423102878096897824965123811684616660146894620378942782449072313808063869709189945525649505404283644781248014178653385155128562757589662956513343791420639646813123245882763104310382337811620002979466494511816826279252865516054619893811118827607361743495975175695379679211544760677880511274034059015913158640213267690731996276121474634378546258316016951293310604005772787196633583363981883281285074275225684165517612812717915813764738264155875413573713064722214601518023219186559608882074899147157655792460103678530752665769614626170977241021857139319453658295491254054021199823122628632024911196334991126710092986422625726279924793968535347235710890919184258540005248221242466655842660634485691775939183211125651425080907109066137336689638955847265290271502200423765982244467706342788418502859796809508619327611758832289734285297640300326683856494864610815468971768292212001008435702466031124871377024811910258446678424827072928374105938596237417672408036751978335866924179076312705961258622248629302010917937754359057201647375753880931161729138819585995717245004070893060032236405995294943711934210757226536122925015612525050910930792983914957614734500219837032778246797626567108031401745544149244634644660302949556042168205290342872761847094207162180646400314854812730561860670572723097230962805325309607832426446429519114741552680722693773517192671744234239289747314639475739527456387082669598758203216600255898393804369117547082860470926484333369074677557657476788968959503149797970131846366405915730496453767595535543206028216856614664992523238889189428712260243049485309066846169572185577209666717751543521992772777307984279229460898175101391330390003446845334169451157310958589151402554016677868370181506258214462054584089438916239146992560081953545783043797511943620664826961842194473128786585192807155532080032859859381372153861937519476333900774730731414182263616909233797574429801874765898163950543992407871427080623987206659530930726102834767390002478948149544807740458222326235733273205843171000552433100556626561022319327807928164660041705240442025144415083680266043165637004366092779852585097804333459867627739097704698428447904374428534824380357800831331960788001751918444864750675969435312519376740601421277956825708401590035558546426511371570975591201852632591145261199333057850849560568809927915185266321391821633513257883482065263268942682745504884213062760727511376063077110212750540234479427262559065131513947180700423311368469315160312535181947787725207556906096558951933509145541372002370905849916624230642466902959383051782104014085218636984519441969435687767744017247577900058150911430614686565682048572796041944168133273702622899875346019704362688242855856507377895719096034995086589921129806638730557650013938979452659628108153643122659907928112483164556630772864174372793065555324125765322884868834321781903303368920782747973227743386998687304646219207563486320267537621198653322274942386417312714714525279348918660436480399349180415304292207875416859626345554333013234300370793749789432185111487171918130637330759217767166642054084752038763750920992527945031670074522127133508990265893917834138266753727322675422790260605108834284815425123131873736943225448812673599436439962052510733315940484721282938738201494536064469900582886275989945307761715275702717130712997063460146878412204531918546908155061882871954692226101275674898599074888425132859698342414474534016610021381884684320876678572774306716443685689855452118181867044046706252078897442382155006003294433841713763367584696706567929632474148579740874395120502960476359109037934082470982476143320711312357222916323357734531206597341688773006741901593879449194165151403471644955334220500365251362978971051126550214741462791789133150894531839902477901169680756691747371004322192197667894113033324539786080991369360532887174956097947795587328908060524531411653531392181990109770034821821778617540599522595878527684352967167261687363104828180205340125663737375769061310364024197998489934330774515677519005312117385854785761842041390666279378426860086549912160163196249264431296268409948203236008014964041139259046648902999555812953318331547708583171513895569598298328631551390405174496336318244166465178159348377716017244138128573079385697804505692607042354869477895559953242265782340833549045460865658607263920979892173000398145790213361046169722540575550813760804986336348322471714138796294564003958480151481334784862090788304993734423183758275517964137754485466510938782564904306013012466444214108141741722749254441364979867235077127366598145585348714088945101183274704034145630679916874281198837544764798171180603119368394699639600728127663587928974933174580357373214918886741286686699483047804365165250540332363826682514076394892196009199586226145068140560348001951608947351627361808280220164448324213930334334692248453760086452442402349602219105122309174220675357973929026068547473543180906460078875571033086244181642746891972297948105915621586302929654960593687688717828728410895201204216353404974458522035704159120942467518674460693009284062453062611695924851237534453666972427319845070497683343853934375544558935879587234003416331595471507545911087207899754272545397001691089535721108417957490061466645960229400361828497152579860280955494665267918794714527229938832774307180259926247338344054662330580713143979537263103625940388857582112252130504494697780158181617983916252625032375841293976514223257486421894993277695560267139297533566858257753008268109483292803621578019088472326568405961416583584822854465116754934986548806041522508213726185182684193249491717713336182901965159482352324100023204866907976834512832455727908417416493096292557874405578994384711879763107895196396545275686834960649485914831940531668432690642332111090243161601292946922588086486705362538262105712642244190254534815174475642877823269559788131329223105111291301789427971115297602354650536500636302834879948808955750771972886794432293741441788888638406842320074356755828706895733694815434278200456955821995932623460906023942933276080614138269237188390257406657370751296653854651868614875601552429774394015418393601626807595973805556888832790245986141538481041155645234595174023214017106842846238136881828707846981487074207684845074815068808085301558189871023722875257851661657517938170353040116085465696145531270846231149780191764506592916410025563691856809717319588999166568850845444550525734278225672522536669120431889708491881765922983370699113541840691179051721195895734393950255599870236741830649441699388135897439635911415082671683852431591736930756730311800705604123297711966268917192449622301242116913362795712595372690842778965208655656246403002087248706349592139756761110050107064666447913462903496055384934220468988564126245512271348201484171979084925852178433994056164937008163743677133759351132665517143494854854209195571618128731657137420351721607546098921958287538889408250798041927089047659859690650047253786959926383394555680962667571388937436949842347989430026250800249467871377401510447613766050520051264717688641355736960683101468538159746244121641650169714512833364210260600689263332378771429898706269163218267418319798831232445247943660243468874615446998683632146218964570505876985422069055044406515898434687872511706353028672588720775589607241990712411357854633369323294392775568350667534672677802115561345669095191489138520653052363853142572780603610102234640888128676161659231212788308587819195703789594385250682914099321267824714604044130559033417803602013610701161823531141499551488884772482995178530238069661836943105626158884523132180338827932975812784034427957402124162831787061675819812376484434085604319509089484655555619300658744023545280616404229327951676046235779628918572370242336949503887098879146581610388183759730770409619287999655527552282312105992449304784363236914936340773062071132855343196213546459514363946144985913828865486849964167450187930044334193833244406430286801276516583595056853635096714015607934222897949778451456415238570600830687172313737576376130040585556690300139411939270289523875605937376214750799182533607457695833356440718066424852514266148083990100599253467147612439518123544069430883224430742993620689273600736164581887292141752556099135489838121718849797879692527605276099041798120634579595398245039038870288127444987015564862816857525280707641456099553522979178824242580643871099651329776193977283317657180199116244299803922961301942782134150644087958834819424733277516847682472156004021928111183829889657632202398102123291891909931715479949336677665813446410525374365051231632750332775060773054727730962709754931233223751057285942809926545259288931087121826678873603278470546432344945612454435799072819390355256683392257119957587868650072497116038505972614648385817844573387094893088867815888657158760566455516947584009557922201296595800510622470556302864993059219225888958034217288903945025729860268635070158591186421027096751189668571721309237413981455022507214693702066398227928958753554424111910496113587773660655473366606836470820960189410207768741102143416390920725582665651521243509083816199896695926493257267104186241789577142854243891451781715449385416331060630733175716972929129819742974395236770971085781544772376108423763017428932674504800493811497476609394682306093170945362078811852306828023920250819739642772705107846123800955088712022453362955322853702292314698727016991963879637589439041320364824291113120155538771355516294883564575263037101599556494796409786558960921606272277303140478541068173583476433791729119714246322774671623612737924589771488963267696358679997364394749284530584424661483895472085640494450608595092098745882846664447268485915047743684144507138076609481505254287983102684204359970175026329134143300235746630491971611285030117656651448740166584306448833204063322011342080873153570326596609068140080341939511181951104598842362883667794200230270448597526224017112140440479512995638057767980354548963473061273806306350142995585358015394245971357355672965937291449879382838542279493450524186675286749272401057777133611787901486540005756630196003142652134107394328889468337660049207598962170686080292025010456423290821656966985425297153611994795572890948298502683290467751433293269718641423878805208702221791678814771275137257594638899389908820106149263227008712853005370389012786135372494813673711231372272350128035131992343095014538368444424472935113301004605168199867719769153398169678552364202796037499821601678244737254127627340206859812988776423469733609018444612027277260395365234553233608086097711299781533102936173825913521456194396658986405521028228698401105339498744585192973568756975179334365089662926368774837636578644179585051587789335477157595035129577688964312521093736183927018225966432596829077377320178671552356401987559950726779037730578625827561937359479951302740218494647304062008112329515624031177329032215032217100555290818542733380203418988899774789238712977136310854332228433189429338807084909944458530982848580892980630123394794139780990062849436891540800229645218967480357130841229533558138372542168747600673788960235991411009542521346381611109154399134238381666234197217193766230542625851175277081782592469085406583259979947500469376155758349767609892068255203492403728285730085224685172646129568583916218951596537988730960954463491837020010163788924761911941968705906499251720436050058280135529490585788935865120631159726976886882417550380591755739477833773439939267743441511798530003271188252848833331256963607890221309135072224365225524354456222021067630402207201073985949680576017384404113242290929847684649781330126085334446878686660029454022854400023751073289652098799426309190636250183258692081699004833206714293729911229025443121314693084618288482533189454897980541548226900068567857392782500243254757566100934708265936022514205451214428628866642740930845340360840621286860583575894809595756158651450240641349649167449477657537176815989833572779722639362366754157113389029015026886705151903091440879485260262539804829756558908558106057804618003807596014193969970183949916480251076958237889395359333845673433879364890720317739341982175583723962032942367534351980263550376979540976323222538082064168013835532471327353204811089916539467194743786889011824441218474356311052367994049893037196648094395955986420411541928199075598830053379669428290002690014372834156181858109428160984976391779018792144021008339708744611581037199568316560637538314432284698033479214602460738429073600189261246086888313042134106558523042667310694852651412001517719444481797881345383428782125791741790175264401051855201278485198442259383232513320877455076059250049350608181741093635822743972935957843860250827469787831503029379442911786255452833052161268887372439766955009202366007964570335524554602645346707213383644069094264343986997103311373463258517426049774193409427058530563322007703562747234693340895696570251048085757066494159831578189555768421806329509176952890859688209085602967205537196202412876345918551521447295549704476051614648436928989705673595548601589703373316156316863423835699814038385818449513927818333445232674647380077494704059896303580182738994486883643351779814565254743062759480420258592653362369741040533378462435971157633725061813142060981043157174431066741490664781376446639268532213700154723187435869131707229014157663738995931050443749833989573194116262617248157535668510692367505154754057884507853552623135653723210580547514708814140184426668680715951185272513125012563290845256613667278634626666458138763036736307904874051329716381527675199111291885358607403867793732271794090910807934401674606578479687155015066438217517168322955503601775117164040718109100080887027998858099584922480533452973021763819646899370392466770939924612339353452164375707412940792380098328603984308262330574306232580809484933550094469044194619325889081306623756084765179709852911963067865609707496851012517500240415543028549147546027384490213138901068858655594185088474546418075146251776198345285091545411876496974928669534786771632701078860213440902729298847667713964763643982356725155567583223787028916962768307092166109487373196528395517458750272701793715264638941227489666850071677286195654699161170442838385882503997415199421603438142981573138728887180769378402578049241942987790245229039850750636554875595633658592248198926632963576020360267708972095431646863325069318632653020130583129038362035534659858538349286941383656963833764332858303830548662204412255568792447707450665581651620714015371939004019203240381829427305108962570174649873438494090281188589957399501709518751048582847700848192987337659760124293112528020905731752880242249056926624369964501913938271775240831188428314596224622565107346219243286529102665575742957508180584758695815475244651002061177233073358744148392707212193268069645144242628802399978356345419905711761098562817208066025247751585201382056148376924055962401883398332399993849775574061070235247019590178369264357001928763138790040968478141031412986973326315942576932096412723199722417656994389982832863512234610772448183123586077584103751441015393322980148405239589818841640905558911383973786115199383908837422412976847318060807054465526465033556402037011072857802193168399593766812256044369687745871703926910118156735610712663877027867201399324242167983929596854643860115866146769984658425100461702440058040950680001109575414245013428427954857246996173253782610014197137392716749435542841307161779823806793083631821551156222973068703205519766146635398569368194781615206760900778748762299945104207464202483187930689498399464381407861679777277890453028922543890124116019799571814002399987311914004066506734356374031061839605380314836171268221561359152279122568200091147233571654137935813099779797258600459864435682064003166224399012783845390027436262081734833800278610659863510640237264735344419627028565308153726958501073341341528799343774692417850182370083588230494240140274240261234138418537281797403131086735136395748813842569585429518454780436756706427378560927057168334938562676986463959133022613047057613719796599631784393523377745414085301606683757906819036146189972011321571189117229017359786959999118805610418172616424524879188617519115390010011597637405455203959270790736662904398573686004108523413664504763388418594610929729910921051414232624276933046481358887767134567842114922927932590062632562114106417162243561809702205090426570947658593662094602258840135026062953838917167211041686591048506449699431231709483584713646570539909687980712916270595310607367879758215097038725547687993285322382307481582116918242676694387858102353658441416987052992656922395709650308240153078506625526796696991918031444371573100159579039632154874306029911313605146914802447456503501628753768257824006368927782492945940696919616016679943416846467177953765932567262665571133811003751438105197906261413264467648960487161105465703187357766754825515097674786133013720354668481952828413709257499403022207766051512111582100978118852440943637905935767698374408629157992855693968340764893152805339983767090173178673250859213200744160058852412328382185894764372616544611067945967170285288936398568016564330268772302097028936626102180455592749099173640808601058314105146342544319774906783911048893584469942813733774431909918089668681352267800318971365262521175149412128662497903387097761240162740689898251187164417403319619928187510926283708243189700620889833871082585830950668705566510826403705091813283930314039360423898129226849400201770139727659013828366358562841141408139519113815213535245232338499168522864412582853647579500494368056115481456649836207213824161218659547226033576884992644593390312153018464029381763298864976477793125739959411069997128206336603653137461237149107421845520682755242744242614315413135100910384100683109378280790323723300802867882920250616114876331856316245269347708054343915214646853504599778531992049965505114479046375879509036736610059584460338708163610932258678000276028400449350371335332882667837728147896762425046446263603850094308409709691295420250560851012764567124821047780931342534035613691508210695374960638745116346663732024950979532037725441100799774416569539179545215149230777805512946606236361508841905826572622558779575706501818321124592122806475671246493248003408749744135123763905702023962996475253949367358353048412334049124006458594207308889982516487119690694178475160809352355862176908552292596154753885672129524083928135409341920848602240505594450948623195735219841632313303960270811036693237216684445149461247520194815680126993400764256802148705413183696701936716460930922763357258659514073266247420252911391745926040407612202696514240550000126641179167854173904142552286607205949700479675948868983964068038027945802598385272045329903681013858884805057610981610620604732880712476696639271816299238622245034337126927721224603447974464193974057498284862016967335040187988344363847461174847040063203804699615845019314701537941328674472505126896378322907197274432748942533013865216179995530844725976804159277087552120375011060160136833974588193103123671514577921052560468945506038695132472250721531282286345620032144295089834370980629945148347080563958190095846557294641009651467085369866636343021103722243051719885256509184874035463728514227018695134778048727474466475437686563286288553124547760674277104308747665579149321781169546815691794010782087547579291130477809008803865299020843180611890859023782664972229036079995152527480158384467526018409433522737470676906582790563461688298845780608587368950698211971756135658026553945989624907485933700750251075416734215857801506600953252033651977432622425910672303785681658593064200988342236257942963980429464050990218398889624800966862689494226103975060588398800237130764596023029474850134411198728561698058842222621874599375792566242463052430270177340546977949681865104721340704061597847865750176480350592429735326094943759566397928287141743868475642247041784058306815041248739025065536099925223298120166728422694676127666755463690411670518502505262042626699076460953369958443150218609193825340069324857357227232250047907723818150564479213000691730563608332468735859413388906838377981769718594315039687729692662569627123361455257219522857438866512559941352231132687043276313648414969575827277155246643070676307706210215902320113102127482095917070242122276754410213025340336846215143598990470364681598528198930529644588606045029588408043189606321342851873845935098378666843906229489219791218514361379238814978145290571326348575993608473167611858527509221733189296272852983097266943470718074518619910798387600335962516531060267299295934854163447229312031042677321494858980694983009627591646340931456017333202534637573462185938192713698309617567329940690031561963193680709688792989267376701301140484924856839195118544027168241338492633665697803616550908136485607332566849169052473479001717998558174718867873541294541749990619926191741246914610989231199983972118843887376348464488396102098169130334202218695702515159915575706526378327649857476720420750327937373499950108208082111542761723957528708351351937394461393935816163515084027328432034877958322949762154508673952833939685917936388256375544273037043318061079860392057591425200958305072531474960093183636806281334855057643964784757374080869213050710480904992031547863694575228931750725006176141461387059584715560749816943635457375743761434634254837549930907923010187641389733403985120720923014119513482424409769434235960332196739698664708707366423339380333101461893370532658168673798332481060544638405378218193202108576497952005741005544437532564124010296895260890063117163811988562069926614474434922298490714395882352699924125057896885790659487259993077430116884885955876030043502570608393130819690228996385838805402791866781454681863043244090094868959041438726400711551228380278045808104643612609607558888621871372708931168258232803931982858002956835179872818727174037824464949381680483120388214187385652499735037483760291016299835883855408598446294941276211824635113908220968078361330498312986490594359477403387792605547135980356202491128207796760616972137543958151840935696797802680881668479212354655422374527312239599789931437154091404572986703739583738834065973095897376941533578553420962371729059709066537263063508543857107419666081384946654919129040878297520688496797016594734940476749585030482774260392918025855563322063545423381334251637432609039846114707115705372265670415859598234571386574621943566155484895741773631247079344352060324277264212662513709075692941939302729489335782130641159563361162807283541149415750796307445975550808641203986640171640573203117730201214431681920564842197208516917916424470340396997374649760358823521399285268232730415763082532457730147929392273951575731943632610252190301648400368892179287052933532968602612535144289547554465306167772052237961309832592543678597202285237556747114017665711520117719975785892547823725118272696457052410575989642771096249025421776021211357386032122802022101080904689968654788843419172962777571514397704353506935226785502995870030756140422078031599917490515676980650322689028510832737419251633946645727430293733656918119939462136561065284339938248645703975408699162761403448139547184101719914835229601826625278799005006422651652769741568502064289417989309202093995549790601866626653915206506129057843133796538165247109781933793366745003405299605665641512694770264514174023629233897466137028471812553313433735795483895362950265567154835006369180366795799174451860428274049726563003393315998169780124216409144474864566841508969001627803061474619468011052939580086097595323081616849377306524693586658689363701817349407049031290827849024394795792749439517746432066782297441104340835163120705736084261665916401800193877586231302625870932217018122153620697253983729378406118176456159744332148178271281233098522966465056109532057015912517242951038944443787859078810161707537094361078254460461110198394644921917053189235859789743755156281325639158087022951386210930964176356729677377816430076515206945694209925224963498528575026250804172970564444646541925616461822051761392812080303197243565985641078551332888341475734984927156014242559434754887511937040300145287139758267182186756438117286991118956201410386317322073533690967523698677488402975022188637258107347713375665841085847555214987950019258346797366201311272140730544580634405129753334104382508632441633560140964053031167487348742692356763226505919069246860761089705509396923538199502470207100151289761787267315359762924914083101320422367732091035273369475657793496934684670309924059498109970244482544803985280334085543418753811291016370134246126356511481102585202650297796454937191908926430005898020914802184036930962862085091514752191067917133017832674026428504261694269282615930895606814373562097459123729410383419536868570804897451472502191748662386013911815165560625292295165848377861789125795444164383716546823013689500654111755461346746512176052818850711206324835447732892430496571802696257120793417839464671813257481112339319498240060559871790788536617802050833796785702695645941620289115064353748526614587029254774601736385790963655654047844157586621564899316654183931709486096188092032682615802778043691822417000803648933042270065963798494532961548408095073257261370192561219635952191239333013806227648124835910604259064914850897875121914022613037068291816819983514450688436785320530895053972497300883967349673939575810876266076501951162293020896847764692760795172915011408571095999605557124676941463116255436833852260808255481301000519366461331053810677004146708998572301596145693017055180895982543188298957481096070026682627202972998073960656804613998298399406970196376182058983095897775248531447886102170258402907285644768227509229016306856147338308226958042366968285582746982622105177228739839057309289567714659347134433297913086037955133101412669509284415561635366505912606112138621943966149067727312716034498121862455960261636973227439251213708028141921785298712417842786860482981003569526432507267468712821680836078359164918015589231758331869854312777736725635623791841576687172314353820775625926652658239031501327599303504814723945237319641946884348778397955192231822241462707080416524772641195111070537636269565123726259276995844211144270539826052136188792194089495238581389063074085483571469221039635991933805711831945878774697709457819711820578098220936033264540597211305578201320865085601826473795471919500197484529466460724695905004379036498914475860994389814610271397807055318649477160445908577882633851175395812394928542647044157527097730599524505946131122179626487315845963566860156850290908493444075096784960612356591126117969724837446349735110594636609042716323733388118263785985469917432913106585163769215348278395637319297035571077950823609017892179046092613007557643761802147787721741353905506433624552388841594646364976927253192263065402863028099304281330385995132132024449718310913269638473215268475381051076510382039609434376407890498039236324248418781628883722666014341311594517585139629052959285440452278042343389122401990938836066753675365099958905599949590064846511726768274495145107229033741538278159372298614487254759573535992304399718446453329340763688169333264947139718045390366470872106567651625677319787948599607156296224988031846638782350464141630711200610866860270909559797974604219184817017152647700535085638818458231157499355587586046640405031002021615234237035601215853157520416241771189026126336103678131566123975045988820169518262949746704619072902837233373284330990877037560014475213420982100993501035154794185712078772665109336290027819368496367731585546464208230615127669301842282534713807412276387760326783666773831486507810016967573220709508354905802058834760213792606084968110169489230705761448269501610248597835249225909766389744139979290273728664429671033444398691971131368991380634498192100662325995174780043482926974007025323010897009417851143872759150160247112375871475547875055773177390469114829358620929848647428621436841122030739706521623022329025865404276461918903135142068698118674836653025032736060289215261166762151062878485860176472788418198846593244851458728512553317004642224335952455828264865360927499481890965943427202438106241132923749111145721158709612984345222563757008385896052299532530894850612978014678400943197936558684268062330593855777598942079378500541943360533532258221451061695940675367546771011565938931067472594002833866133154875112825972715516367386233128086163130147342697239420189080794907638959725926991816175069145957599129860384799663899558153619932302956239362252483394042350812174777196661770446683533018796721393496771208292387774134191463190333015323907673028135362661094057225329740385405110259413032745565577552068755244579707003299791012808297074280785511978796461268939103175232835582790149991107160462991070511403132973637395062064823151466752615129291945403097268014659269287807182669693501136380371545979042418330727054651869118653612117963745982639259476188368763528691222784135522779837449405501134374810926513876817890946258255136308186319031538179948039022683849839710869083044701812271076440302657123127368344239364948307144125379816942488183335259263010122532611522770882729604199933117219016284902687293119563333435350963620814430738315781127233052249735499320735172910853598200649384371724381249400136580720096724714540941900952013997274161131608874437681075929233266464671124570966619736198257697881838472679879806486323710064311697747254316960424723494419644789403804743499501620109423405647341024589828748317454300686041547506831414410492657368952379946875070949403748583774459699539917508804538298799601769093092115229451863059926693349078624824760197033515314257469746035699652612599237711765338883357681400421675886451986439421718652111602385380021872914936460896594495633050087260613484875207089450159144250794490366118002902621459517173231583787276719090604897397034483213223422812589060510797384787673231503765696271898621633081217058247906509166868924093580996602791701862178618802885837111510471774044287712566538271643915796188273775783975900146695577146956148870330186808722929113440769689223590128372843962236975217036837306994301760340868490186656660354094545308981942340111817078856940094338218767493341079478978769398851010978719129768488270197997090977284574507205314620905933196079681181943076711838340731435438198799146331961705722918907701108125121534545408950957136735442052607530275277205205168809979952695162335329666000785317031487683267785825096673984663456609484821768036443142639427508606555418887277013899800634431100246565917395196135080838083262349031681579287263867670839130036758230894157916335467301891996247744735635040117988434569905300009751517217395838267887196282176031338699619964275308670911426625820179100941718936301195279189805627574414692082337360476883236711181433529524740375128624157753720948488219908597609382354246275704408368910341812377937031918418819346976678822893720993532096843863364795695326719412257064438053411752274646213375740658468597436647636986037257520360262639366432069680172108421572119094731423284006289438694687484129108397863994476237288339889308859828690039295840861084187560028366415415340133155156952099174842988639951038260079173620451872311686326628883407565532845041862086835886648775912853663672419424562798612103068827052515789999972644343726773339611134160353504013872655794136110445208362981629206531199605837495953912365967485511023922903624390925823967139921470794326518801812290618129970459526380750468551709125903105889235327177030805257899972748440473012186088002608740843935000798884778321070485780271964826747787619222271902882679887728568985523009529492274425926004630697973892262519011367530134257048859537708260688303961207658556168667812681884248963763725774623424864018803001576419243648657565869336475795386120548413302314931200040816818676317177468201111936909009231224715310574264661204315540718328272097153252429485617700926068015897795655553717624251657792946679314544246238713116988402502471372674266283860576065518225765617981624755131624256551407313155162847596030921797193140545853598686662460798374045391662834951010422331747189028712469686806805504311432093356934356890960872619016980243335655947686728539089609384414483917313087927854861975055587523869516855607599198652828719068157695813627236777037642199321759867559982650604884073092433679785715894549211763221244890387845901855815470408370390761083431589133398651729171959919833255866209425802093031519335754762720240236842423456657758537649038681106469704706014954743991385477021612812305977578618849987802816407906458180686695584114783717679542477148432876184531809836653790205904792287183073770374428572311214629819264417191593885737549409397183136734306600558473147939197338280649669346028735986793057320822435507845991146552474130731304559764157094557522083307866877955771386122011982467702945208815287664978010260808006258602156236150248989623054567691371852655399893453354028420836898681605382975722899925816592506485739038764136591405146574127055726298495709069724284688182339140494243529870829042900533842431294886925385426806072431656209302167352711749790960838952430894599453168277474160807032449386976123687531839051104941264490461555198078430964881606620213030138637813370293929890165689267904183240972540053284512852234320344241570046085698310160710733230790953386350603539062768526992925299021993955793090683034706184209501783693759756748394275299307853628882424183749334450731465313237738274893918904098732403617394642844985916043007334961654741049698114637929435761332241101055650082658865343929550877413203747816178887242970596977812807321096868745966775594737228658224182853406586955421910342996038889966102489109132729933823367668218309552914435537331028965384272007570048194855917845488742445462282623219626167096366533866910274093109787205272278200317008413869777201634330234384322037729859179284109362332327568543735637172072063780591192169035476128036936316779357156074232058861000587681572719757319405922021321418701009586321355612873832046693675669863390512384548879241202609161836353042217732451055807704213393813968547996286285235558728739808424158255993931585209354658428774520126299507348479722180776193411026922332250823685857799281648000567276896900077808825427796704588896817628015362455132482228133005521199660640501577009094690925048609758795466764156669435587163407662375525708948083437406395066731819414957310082272126328764844172783595985018523616619729013875780582801324421892272948850924707359487460502086990915977417358105711449586173905062212047801301344711761622394018794011944742049106591263034454542818454737035925491932570775621653444276154629754748663268551031424030782452080815679915220278881811317969907883269613351520794396344837419975376610296123644592079888825847439151338868222791561290270507148146335254865093438331122660015107510627575714911315035644028747716379126743355318596969418684867875424386932993183271469174721578509240284125769001442826914385841158009446772475681436015594087912088754920791366936863714567120853782443552629832667998692072060445927979030008916995098681365673622352702894399419896092504271934900562444645910761534662302182510866189791222941210810132392917834530519612842624457705017481337411244328967686101695804645106908116361714536992301972356521529417571154038736894731331995677999844399676684740962716734230112935637794172132084032926626149392213071812518566273962773064285812354530594681015505399906580996032507675465349734159321433513558169530368627556013459139525925074323803857966769097424769969296244853732924728099105314961021357830886556150512611737659123692854977651421577923533301839558147859466685107782417024345383489710395430998922740234438004519475672860625845391982954351204058268234847039472253254889040701005132465883268738502219712928976519455615231780527382583672226293395193428543357968417862893877522616392808339593913665418932745289311446964095268518316763778190784286446468827602770762295293283043071922240395488736348069483649789651065385972887269978253243174800997214106392038399524044885687047434513849655787484798350013956203211847207016198178368804791656578057507323212432199590445554740121504600516628262453311858819636747302702047264163529349878248777921623370644190516995165528359983204736889359097089591431861756737638222244177795588764199403479009520526088415453108629442180103772935274571691664426443965633562335713616078327138120871103530113439728879992702193993951868396923043120140989971974062188367145064903435589566263803100358473515545845146034993413429236845289426199727122229270044008508306898298248288179409030544825164330577672721018341112238921162445195436244717474513006593137525293619787628654670402886231661735034057036218852719985416850460489639442530654206643279292166751027024854070550578304189239076758947122930757005542980939772753847951992167696564353479790052049323384403708290345157658866158291376021913000655501908334868677940493863247634841832224084476964411157418615968825605193303091251205508263531154269668924157167280008647088119244111316897559278515100172339207981543238724664237112260896686467954461499035856067404669718618306459235685609279801330852484669113273645636227250923546772469537557262582576835794617161210383986810726220301359638011173381402474735870170203880836152195431750285200063991821766757286523931732282075887306897389645733704129424525021322847364881612090532113614032957032175927102305718129443705139957264300921558154119977826672192402322445218110512940742395536162043445115966982709889050712736984502066067160000394192721100391501435311936657846596074693702079339733052968721510219178363178294256648152148968940575429457943786763488999637644750059402703805372608537839679463561363140955951044624762848951990873739295569999706565263775672350457780065929652495729752078760322353804109439061328975550125404867823731045899913542363416848371166727168216703077345644296599632404999366568780102066957228176241287189380111342559811055945715434890622726065432297201699512294367603747485673549290776297691698959200716542080111218208630527678923931077168693779110235562700992332252347599839340816031470208328861976212867020239575958383664727819749169313581216280557352600538361693153874006856455952453091960070917279322353582250299536457572798438681588863601444179806734165141569055785135300961558657990794401745359780634450487136375786072036728128425527027974945102495297188624633886077634112140640993349949650627857121132470044024230816253477759619710545090509493709435584759660457461253302942640253357820328501783782097573839215047394388743082663609664840388779354949762765117834041724826335353749366095133067950746874697030523983623046230305661254406063598635436391348802923117262531103001092816672578404302728539086030686144967011234371781922149947832601495626539595237611620947074560280406569618061000604102566208839109892962746949866147238181604494759349870468771869525247779495936002278088683184089819974110168370236040940580049013792957319656033942212578471635020040172814663375949515591597089843470402548121123297341592964574861254628676707924864005285655588768746508953361973066441893560795019360467109224751246991280745475361929365698024017674175786609887039624159095598612290391627843492129800674447154133471342839713728243124738892948360319869526261152025523348247937093242917334263684277745039557656518806469457513841393296226316439130169919512304049516889129881120491454653005871392615603537463613419618549082052732850517177266031756345899910685596432322653917643002754888940892967860424410596150162064294797870692930898711576662646747349832463738386014437645152316761339725810384573231644943653564992179201426207091221081210698086833232278441389833943443562562967502920073087384601884988425443987647228675754643388218860136256108348989522586164588755275951887513209681108583880748841541013859034726723141634116506290681359285309865120701562832391229321772820189263139936596379043794828726744898799113849793956162548908486846172763407305111487495230101287762126422818477829417687316559401241603336105588742750250619072054934988160901861033988023909056037228247187937317249294883109532115034426144540087409820837884585924556655837110809829828726177948358788839166785460464776973809155037916419506870266778577132536633819540928510915955715493434045089527896406152945723126249380906547481462284348814471521660005254256796165416148805858083564350089382213581706318325412151374421158905089967471442489615166147927360004193453107898329709046751541703548941158516060284424883491398603106834631549593664084109995312394809139412087613959933310466268362353418566618328503312930303100189841931316650309747852687572170969421309850242437522900012480780852309046958563694644189168373611376074588097465655625241326598717444383165322283179248546585350488745361443430002849976228379272222531975255811157069089214690660357740662391103480074208250109598220066575326254828529903337612116301351316696927658907118249027290154514004015117267986661954469509146491306432488797870876169940693993976036822864090453485558356866808774989027833515297628115613719879182912557400393776989086196507721547899765131807673613596155400890766416037930241262932326942912154829271826891612205944420713265591893482968090149881562445993602137564462658020845782456083040026801067430228885481142142792233990277087159251583904654230463336639173620341604573467023027321000260040595392869460744456219511449443729489686868704788731027198296827693421338106975358936988885685374122686491585713245344083442612006582665914491319612264975677589365027415192028655847104165261649955478633799221255710481715063501670477160933406980681983588878486264453767063459832801412231299340613752943165358461949351978478253139226632421442473437285318071174531260288193811899901548334527446958001439996593209664676888879433833316663032017727861368016393829533210930490016293530875094386449914485840293795851076375878184586603884052497780395307351085604524428548604863635935525010142457324525210979778096248823831925057543308217432712209366816792931364134634318630420303579307062635941148143831364598636396829836925670844742519169990250824549528734825411223270425669335154159486522920876230731151022519068471435388524745984819943814568749665777299021520326485023598897843354359895998463992903983596885869965385625237795185192319930655385871564095531121595587839110839259230838642229512514447512315544261225307155665149599189454124606613158545605616103431963656524189008733909806308818158901049477584927627695093838556817223374927450675679697607958739864771535874023830541937218069011446261949603755526368631114698408771604839608100768542331903229525951932785713592080275178470899959604224535374352988215315435308331812962047999534319959578014905643895304668741325452683677320100867052566212880226455156000069171525916847426789107172258560551817746832976831607518349906138099352804920268049553260240790187941334473230285391005437090003486724523331488516165329143544737440658725990872780796488405275411585739727739898417234713046025608918413878957720855212099198122998872955251421003584409524867090476144061392274936460717790169493587900679827053336326675451161859307816318150277693267282989474037608658789887803070819169608875412809116993846271199231165805063740907694968400519391175290715617439325445350226797958382560365746583576809671027942655062176293347419805908988555880064831971769610800395379299936262633418465645868813854460140527751839098909919925668679475232084574874157636350063766272736506122926024320160708050064205998021841823484629421745181377085308395238660842081399547250920809125987923747880475963651528553359683843450767573988569781616520965020524550352181610401738365349758133394331470945345847949300896942557019373000899666952371492773010385962052176755097119605363955330977855386870843742927313670186345210904909976093223006361032404960110482756398100693455199125946663659675387189876615811210839911208623011974257753016077680201135414404195679046457189201506268135658040167582217126004346033744122472474197625109598728177552593888853110174234292209630457138065569412096990043759289864296909862841325601884120445200622699037956819655916345648757684534327398420564787021148715998540743159065149621597708983123710324799345622876649920118668748031234458689396577788363750437843745056344580461116362845277086731641931982734778038919088308680091780320109803606890042737551093063734794009792232858289831713863913160627479549085783360486846561134421027250828690109176830200599185888559803908573852931073526897335672260451335720826920980758017862489073842554805255572100712819218315500097222957893917556224941861970371368583684574113283967684988712634417057087636721383699282744218097776267020853022691824088773040543587904433068069582047018555068552827965077743973210945897096756518082593564818357532014980931865168410174957270605289521183476534054214578461770022596166646849846054956289242027711887550175830062643845028065927068963394546782543083478737720900508359757429863440602441879557317657183284896903835017683340025839719545699414965103145507282369779591930542516114564735081956827540399439503468141879680099223871372488859961426437182855459578413207313828859126108918965120582049439385329228162190514580583033348172610905851910202475349023491198184263866832550693050355951342125689008612982162450708588826307864219533630696335084215824195371484845221508857203641823103926523806031218394035731059152425085237864371881415600320604860880417978225700072057906317914011002533176656405864709562583844977306467049222781462429350972621137127099059555846380014768081989659552634004326783577781556295721369001299668796675786431931996745594480390221911250389684090580515588890205654593405851751242872601993087827917965366618931479690657558728888103967336537314381936329825884482111130304885469595771439742100133667527043746534453978814097442025984494333857147190238469449387595855380869132016715295175104596239745729711355996274746999513393771432929847522080968226757396523455114978582004863487535821022938821636699807831538710746359832234554508846568198194377017762581142971074141280260627292905994850793232097687670369529189492696615843552449888666228585413496147008968685136735519428997364197703182168597450323914247077921986156660841414442818470463235489855598337913820528157489289781755256033191690403495887828335756090830906243983901804394474524893378751180652025290116477204263408440294555622305287455183878100719933551796589161534427018580745329689868826971390632551860414668769619741118886837487773694795873782096802167859240368374666428519977309561145247163566272873008434009104488158873838012278242802932823887838242069778944193731800651396366394164660584361498069749264296406640271917584235894757128130161705861525772567357250794454609996833200069201261731798239808991545716223118270005251019018558980608384591458742734060889844849050776813718214134760703843761694984812808094768072282491845794470558023205915362332801442054687219634993856570245805427184823378644670345103827219324277533535000654059611871326817116155523219306589714402178416558250854199789312739150667970959020453614417627638833966677766263152189739145586784904584047941099680686636515146529033673133261745323520967584699051058066030106764746528906356731224888189769452635741167776806558587952507023328312532123186092405945440796551293721129568082299126759744005673135149571432044137994642419735718726115989691718070487566392697320639632791692364532523495684112928465169884518259319276866619521422377415326072507585514332234070460425680204420951297259056956268823033641509508221141485796842670100639337388955733363895392152519063459443550335813698296199530187854211735936098580268947759158278680354502043716424981802371715519626385147080713509918603099290247774435494066487015376174787894457533683889127108408610473700128318606635373211459695277470567519005772869977842189525839341644685745683421911147006297689894440783075777352274794357844997444284627525045523567285248661980795294739600727164594284538829545544468493249768424686106628947953055518679208916416548708634744272036953985563457954132536202065389312639980363529092471202801258807964726829924659905138452095231600539882534208806661226841265974939532167200759782683488512022567066975097361315199788905240864261759001505771786845589957903138517861908572076019428174025293846688071308425338069040947966858000511239951419656847853669742349403840375410754589637055455817898390946905068161773586937340515010855191469816717692490599628861958745664928835083480602086594454129624151785906418403951102299287195706436013627763651540686376562517713329592385978629594552918746795050157231400993991733048484671880898881927271432544644984689606890327001502367584068626908655279351601024182791041452273480299438138350663915581044170970927498473758302959404739814185993925320436137212659957366734982657771081897440086480276804726805925543466470987997005227518745234286743676871946847940555663400136805131373804060292263179401994634967508059521703965135555910324004398995340295322340508827506225655020445939476406685316620858594552016217298530345898112174095688541301896413231012662592109002330444928628265944027811503226725552638602343363546889259068203019048797367351788838699515369957140603631100079048613588026227192264225718656997864744463071916931613139117326899436541060747465228090405694010630017403800473853585121987132608375878171536076844627238649730203651503766446065933171651183533767509585722449240551631463099273023038805817925638626589661626423680437436329303172597086398887309105275293818097294765280529050046321484761781438040265838480972798180185321142226160854414159567757721826353363508581430423726870165831273845940727044457667890877029560548291795601797739332980099778863752525188934503994613762193677342580189030242389364488705665228434318581847925987927317912729431020269983411705008192938925270869184303662731471975068339176637717134448890717446792709865141209170290788590295500792138391406621967998093778348699709846125853214382805185266060727783641021370772358617122747987015115424396692223618213552065061778362083627996856592149292350567109423983332696678678916160602204178043266832664718456371696060954457799000102282014533341676650217411294756728244202615704198402786761893566147745669674734457950540834334719529877569015091970418828492889920922331368772703685257259965905734925819307660973117031647208930843493833587904602415552063115603097602083702230247036453789609994156422016551684038465143757541155991222802074127576601153296485525015838153371939293520585329860113503538286403954209080561490428971368285754564526513388297543382544055858292472736764649940232843204143189319254347773862369910214068973639188261603691632777129800699481473310191202169015705916145683721534832398775475591308063364533188693883631451608478000043009912675277471317420052264805168616527063980152377332311858432650087909525065931782675485728359554473703899190891551835771400844400862424657719138155261989389600233876593352867655667706580590785233597080185123594088187077159842140959907814415266629917381006048337701709821684276678979870995623013093877059290166169886863674072298520931700974868982535480623785370579087773345199709705312497072775672200828787236541075427816466837882584898713960693009888880079834532627815301592122801884034003244399490975642560699640463229106627776594483887432465690669862313740494579354181804458550565979292964706960477508437166325762755787188136498997318575223145373591927489813891100378181196183487069770254190194976384811685460879246731970654403027071217623533701340281017687670985139916608748079760868826997876515779258611516136986166065133229182104159873714946890891844187510344253446229053949734262687600558976564728592988505096968320110635920803020952608691935578374410543551903389202123017369650455823388578352245878360016206093050013261910462327553636297661815928496710300545740606284327792759850457747899426075343277799461504162989590565290844169587345767456444542121842354147522039418090251194629245341845371867091372168397549279814409042052931859842895499077484620338493564562341222346442868207189010507104484007388444601877441841730967415542030671572638292410066440837303842787835717040718028887016488283478303992830493777301387785078468519894091124979530359793588515031053725110528754955271627910976660140564817059642660237037920118939904919896512703405222911308034839619963061280764451715846047626470174982381715740627841787803182751802692671687953334391095015268125126234079207734061519969876453261117375696167928367747860226419758405784665479703635671590870421790104276255471399307037606049958872368720723140444737196942356822940335368740623481208275259860608549027779081315282176290603692637138087660819669373475718692373951342863354586366796532167230235931259870236367336737859750192447069229078209769961082658747391835759241617420454971217618558147408576886910759370034274021442836565931224944781776023494582769114363163324939240299188366673839325313638142732105033425631652727220849268871076262873925767389747577079192324835056460701842594561083169522101763693777455783363307177070828197004216697382063877438578857536375216384709212918444186948204245051382310619816210754726502825966600322108050694940746909682320536526723350725690020758061946969907734244973206935080611936265132158793408833764845259455837097709796802784158110163210838022524937537316821864531527743359509234185803279887388783276426900722435259391509847358687356861770115144896022125667787209460783858353272164068484977868702267060842575439276543835456378469091503851892953354083650949054604648492029224905315486041782048133792233910543115154972868893662960689849177787193919764938036393619140290377089523246627114597025610725192695156150964691641900671399286026878873701206224882980483784044609849911581668054839914927016314446796286169417707354786004888609273788954469010891334767665257006541743489978240524713321025090498904040930345507348693921025714286970422078559852622290903215592380348957585364285070411678994684116379722238893733401972847895368297764425173264134264197708538529030675404390023640564886826317441641935878976427888003674319717020372129815195621743433350027043518319952960104165452132967903968984499201325513308188207298195576345494311604667358617883325939948331882185276914301417096264469319873722723457297520236933551133799327413832049958566370567070858663111467043326082432441170971813879581875287974213872756012586969632768291839961564392929070033063039626808050387930037594374674609854946513856731159203474200836079346231781468435694929074498601672828629505461453128460819134264147802246418469597756608219798569247930646697324738740784494263457467106497591773464395351233489261830693900471071120677204939830636389406024049262038724135129492447862812164649156638824010989620340477691423360572570265260071849987642447138579440274631454576748162338974109239233282502932098561234528827848832014592999415649548908916482384551361481765775347698894818951689810058642233024093209097069876530380785559876633686429995516248827024840139417533506755171122039778855822650536227132698765771674737618311825273508158158229190220841397565519391967765759139608588232188365265471394648301548372016986302298467725045470756432978538149490705475805487912342412564417495989929388637063713789667366572257178764392837179101727845079117948847686356531799852742621187156530700813174049160316112956532380170907481274974511678259121424743806590471487928884529815226905599951071136776528467750566225997731880161323095729879657495975381171544481615731014896140505000915750022267765924049820021807255771408380718775655986569335806698203772058081688961368200231186590054692855366991176663853234505531678879695888225479713287924624215727377730766804240726470761200569437958252019629977442616099442669480480335471724690410354687212479178574815831485149993630878616358632329582159155410633840753833649328320315482771598808601807618558029172715919111991504318704396544635639584615249364279978266210885048289613120759366298770572423259948601125332985008451604910145658676151780172645278145968793768636198233878221112588126804918915208836771385152848297818085901993692369115791236939264597515839928060785113684138383010557201105642884331562268667563351635653139392738727901299965380322681631351659535073770711769914788636401651890292142102729469199854108916756546220032482881208165632174705640804376740855090105305736672310227320565645266899661937008715827536519468403317879694069392705542572961766916141923255545669779274604082125204208793031103909577966614345101305668219438295756155919578540071772470844513366309961595004968365902463501779873537063213507600509177670302092482020690871016187244300657450270841870421500756951335332149692358922278965153131520195275090393431597597570372236543625964007720843327591647277680723304050870263214684726065172456278924298181143838030862238955390463640931481340179984988855561973561886282586229690920392439360161407594629778374350064510805721168686175093931223966505539769744575672431301687565505838918762911611154796720172686066359381926428955438155119908844108286060987652491013078464439533938975886242901413349038095430186199464986213346280400201406731045126047521343263891665660840886906745853550880218287252999405337516059216672698473715294896288778621658620543296478315776879215313456165699507724421772575596565277456132612988294575624702198953667949067798808377880593225710494556781973762904597269899462990983936361760701847103747032339034387655890531190491261570803350580359113582991355838063659130634042805916362036151990950725814294977987789615904337381190062231282930460917412439618741248826789592062806763807053365206972387789444747543859201456636684664218334604552951345579980640185238541798112174131348842237189185952314659284601052152733732874175177642257619950401287397393896265412262926806936573236931040932696368268130538765363718828759606778455837463721969213305095100494148282315331810962706997110932211554929065925655681972451765416024352422046751806191171636475172875987302523658864284514102096311857259844852424860611870292030932566933409612745636159257414058474967375428335001061980356777594027978137718833561320230290577572977758083138680471934383622656103582955995010451309200575191806425654062577567500848737984808960672354893195169329697961381615649428066727137434793114418166575373877661884140377760219459506444086979402121295099966048075163465509728962469685343855256739595885262276476617450295411602343776724568109436930216704653869014331185265900028321028602859119917839521905374445149689694846241130648431298266521928580787536382033412096014893210190791966811446603243247023537808018022352142422452225712210950163236472365818060386122021604759216403509381033246249533437992168458464921440883053489980054962400568062322937041059843074855898333645193757095559526145169611573718379508611262170864366441885582467568226408227080579637087528161959056925170222208434316678405220140391777385775140318506104657285201051063313511460074837177562809560625602534188634151740779903386965195902728105769099030177145597394483736270324079496097723411411277085865033490598917766318141244574695878209214309491974066581268619578727952180257476911636069322536991460513364513669184390627903135438321026044870698377969278908896957627422876529276042434713130011677440067341715673861269400586843541355359622399507643276422039342121792576101921795956995656603930531174992463069263559893047679122269987305242933213065570121638275068502449182044234470497634067667457202318822466102618486175920551816911390429914376332859558341940133116042190722064815477424661412883742894817060493031484663130382560427707774307517326975131195613685451332948496706974706874836431513264125662839007255139095524605706039807704084907701905017355329037041912086363647344062786920780448034774248273538650860787345377418660402881305867916264447317838248900601695456704532688020977382095810687574171972931238749137929494151507486771064915655220831910262743183624194741071539038055957553315511306174421764949782672503764289947599020446179500265653612438527404463259749351680166388497465557999386682609162198254455613838581772212901501501940261243566399321493331881276933146705230526101267855082728804007130633057145082261273947767941531526154437008652446632068143757055112473165579843154669942334515596069042075022576322341626728441721983613469946439289964776725131090187405843472747668229188053403770888540213631068691708767206657440461613240280804643056858024090127530464429565275780593051134571284953615522458590517285033778622359721062301659047308390529159026932460224991241027090398157269772543152987508190782651038937663688066041282335271006376299170476951043757132096145520564743870429374567940999076345910464374487784986631650946172777792372750702564828413136340128946615435029488643793751161662608543825429078589492158465698757372094846730627193031169112800653657121042481326601684229748761535704935871549962142980301032144064630171257201970400245469375586440823196027974005183499853899582244725105292966870822051857258415031156670588200024753102639982224846820482911722757342017792494296001897435783670353176946483542527761663180060111340599817739799106318795008538767933968536948142691725105763563876810525161143305653872077280034037667628745055485939964764094223957607610454034721077174266650183872038197210068100723901407653496560801303155828195070360615902134038054867743988212959740297109774842083898750488882632510036243638910713081577110640002193564777085492616616113567330058493293928859286778304384241752338801592426820184792289565979039729489094194031992394691361689816844509494802411005369757311754996998399843461886624887777864536590632181061161044785362261713004441990986936126943323606878408883302389382763095044256934477656510529492518254351631283033759866553858711102537518775177685190317148345317658004191239886868630845540385871712084329262165820347770806157075710015675470134914931630536314663886997269963074341562071964505887402110806348538429597279803777128299051286340265234652445349719041354306125470851853154932768602782672568736686172794915106076945556450398580343176608434519600025823208616970742572894500826796174096959604136100520611336010278853201625309164979995174606910033754372028009990011741812005402475205081386076304457796042818629231785870258301459262036853258020823169061043889155292712049559301251248342761813939904329687666778771983253235334635427381464085560050071028544509632946539760037645845957249337917732604560298320408573492336450343986293433782194161564271040290116645475022367625384805285631430728860362958186307816201175123058800222618950926558469319489614427108009847962658870257600220864084141036522702410578902817179512590030471726961794059179635414243256102142501851981415947670550124690074602824090474483110717995158458693099204639191250170495381087986424097808838335815732948414432362183358235081458310806464019559681717173834608241570167582558407009310822154315205898467522268185820242570350778494012636967185579073690460654693889125843503624434755931672687778551419982106500295191860970945336576558141519385400753622837593045113742173674918768753764105795926381315142626062564210595428227689150683806135948777377090045570253551908882772936966362467585211316533384547557307656905211835336039479789941320752398356300818514889545888597129242286200320246163794989560349399694837567195651122212137956902086470581294232630153117062040363220585614022418598164268823789106263760082631097560430798570484599396619863362510603917640068338802065616168492400593017855473336696721026142387364490360802029891355410396509428692862888894819191878709536811689411985674882413945682052301191042571919951660506208310760680614294677831361532874199795177859897058511769639262782300381752623863201543600118587206162411046008564190244554027779320197668327479026764919089463082926510283507705277076413520538417675893664807326247513276314404488602365768376867302187057469192627785060502560636350799760430495202548162868149027612529467707030109783975628910449042082620610062996416614935534306665017690157701831429040526500823555852913538056307215018195967020877537676905554012091648301976876001636044479484848569208971264625743409243270708100441126742422737615077032979427504902006500511131510568461029788667314620865951794436141373776087400690652162989021804970245686191437648913101132979614603073807608206755353285914849381364984758583159847360783994465067682323172316891565841330290405574538778976162412167565594322585564625858001216030307428247458194433968740512672396779954467453852356918239355271976935465498612207870362726381422965310704126912389018172670684935400365753708168019699602867962311892746112586263902325822788425964533514901614575915081259540809734704430062357877132759563510207490684656198647037847286506643842708219718969312804836548105611882099615340068601313311142427862945282140043779794724332660034545809926418849238268569803313812555648862649309086629233541721454351528951251734113631865436483206678709682397592454530735432916685684631727122780028574932601158502720495744948026287156401494703871109686270268486910731019417111517746303350246524913713269427614520064717256912136006536146250700757036667204001732257918848541682306249401533759918353121385034260443650762586017366698784310585634300630092943528897520206074809351728773894410141324780284548859507511881147478410823494680347118957032144458383130248126736958684587382773454855079396430597097015162248890514798941802731480663743393899337123978367826958396837619848553657473439795657875445621055627309686255965463282015595183296523379038700457418157845750691534450527173995796271403535571261658756405387743605604009384277330130026308054394548587920627123839481954629381260640301446553255081854541894476577319691119374096853688844860505728653028299428952543810927518398770316210381393718115521680405426920240045703975686189245144754119743486735640635245310261612941754240322417753908432375099084404101661534989043554603765797518347777476134948468534634147635882865997707249073809500847590987843767437148996397782481946138302595168768494093772089821540097092655168306982379413259730025209332863282895669571261218902474206819718321316022467588747937199963344619007258000751959963275471987216465906427597136407731922145766236976989437179593057953944037955489123583257387043571676820283356552129976764166002946407025372753474681978961959628072553981764404094940952886088307979655201516778498100955395980793876196903454616425042384319818905051882205018695879654205460498976286864063759474244319633857952323631833475786247116987297437756086714136164247219015223111689160629625644524236494827563043804871145319845570148404327789306321897999060816244576265881929074362860418718422784814765892656757840731351643877221435279766455276761636354327715356127267367924929428916845038451512625964008150080194882210876750779595120865598590228346228877338992910318252538383067711966199840815378398798331968160380268857455566628861702412529296482284416502713129340567333154574289811745590294332332629409609578264823618145423909390753516797758330087343485563662707368208990120391247747436879848917196928311570993657297150615084670267448391616520233242644601399744161663710806301346954125795597028310963655721869817685827537890824459844384103772260732510097068186483678751776104802647739948273062853652297345636616217716611163222712074480018071846310805455241279542621721924452700521348710339759823175881830221959439837256158136812453293545778009254581753358435284093920250041761731080971923636928140860040637078204959050067135390924707659283383207936617087146225511944055810843349452663916487140590096270527975665594928865501479422764201038501348455185595208777242464629024521235061250385909001737253560170398446183090108804645154361968747418138892823543897630588719940400778318109516461719742166257938711679547759427449709486419760013499138395724793319079898090957798914262623366737374753276223999768728624615661305440912168104133783315755514405597022897315162331655950490738452380758023447057312049846406260383859994061168047373708431383890628535783109407649996998237084296769960816355239794784510705174635418355215152398462642786198716140516652269576855358955789379215317310108002290175860561497328765436956036701538523620654006735660604160553218937883795261906979233096822943351805355502524974350380425276171888245952332826342245070866929790538027837449448955659652863942860089895921679363680487979848571694405184035030987989170597457527590156739147177529062430878477639826573056632374820126839104143363211959404026075838714566955248556759356069812672503197595824018948565222686043036546542294829702090984484614113095708943358826632682034137421673736064824635338574198941856652389885910370711100881886593739401527156020123097059686766806838754686346638297327219897720700507630501140856476636724390912000845463252108193171619969626839994914029431462436587770448394105492953349333972054020092606038211788772273785944618405712007007068577756566509433383280805350045802506595725401698540284684748953160597015734000953918791588264980976097596086376061931693467982595780636623480272315731192231756483335647787870842257600696979225887154773516285423809914969428090966327981570180645030993450243155309349219498550286666152738803644993455527395698289584677050175678226495348563653578934984121981553919682300336868670423627610242302616462093543543530746493648830809809248171110111667146051010920530605527021700840403918794784659164323123150640331146491125230839505844982693721806457487297507417481376107810677271397205279783052508092044993949985391882539033386479981757230978934375658509148085384263402371045925342276909098338318858157011530268460843862622826596678263835031920239504512416655667331240238501383734713475519860606136720901985256472544548719918071653784417877934011255408281574239251908457066839110441425033093977697574424325344163100787993978835162035029238696239942500452323276569909024375434459190805118759148906896758719073118896816341956363539644214361102072921979668737573987279030691658961716189154489221844779891897749319769963127745704240813787612872879756848772966520150312471410311034545246116324505019732295229548023529572614060038653564191338536582043665896025762885562726130473220587567035166617313854488829232475184685590738942359975638373861205025643923083538694278706975861936085020490479266510320144236087196666612177201427141563135689256278690680494988654226157916601720175265663296083682941869463029097967327723056970284704750806575907619865259728224015082267141948525496207980345917434947582460895590310677137489684071359937866479857124608716517493116288981442724897220844334688450978613722108538489359252001397876555668736333093176727429301501088459914578933704832093242049339890556558028131156709585263948853098206087850997225836702026758785359627229974991519727177969715390547425562451588134085841660885732791907592994645494189111043700485541577456507643850239564217786267776450422522039551367652055466991032685210285075159644276510750811159692522193315008122504823692267277779435514646927830559165233293399307941261986197075002206528532025721411202320142000133421541261225684575283654874048047223519561784920468312886202591828101091568558044793607349952938408821782397398393847561997442266187568929499290714746543485394897249619785957856061256328712354077466895939089418211315276417057227269899957945798481061601597811466179784380067932374682897375045113824874486602465796019639475614526620761483013856179201779420771382454738743697351209736702642749149032405330051139707247358732885375317873931542116415552069666862935062296555491844188215807623396593585962678178917154473511858229437759694261140786168808642323875410890895087730224861408975969096193436607466648792142789997657041691400065188198452056930593518566561702154617778414155970939043534315145427527897892138091213207594174265389811982638784367341510463888570409845199610752933891041386252191995617312347214547071404900472779369379678012350053909513342773463457315667952247027639404677346931141226532728591716648350123865435460607328019780769679633939923110134493335396410790777194451639870188977074977748976752766389971764363753426182640918626675096199447001620500683864976535741456183062933593347326188745731571454967294113056865895344957646454365460126775264064263616412567398001834535850222587662268631903538576308761936009321267671745487799099708077374185655999738374484777798771204822497969665885941015333023718155107489086333155161980246173389900077463070388991060565171592616481171384458516648814922648233958220032893966327351221301470343990399133047336893700580375410058661307220538746308640774288465716457963901506862005553025123752193130172202243449450127946152039301019305852955666742023446097528900375447528974814666488845812359508248875033170864565269726107079397295618561978540559509798424959504705966059788144020736940698432766456989708626509644288114570426802736012977087088023631751754050543436195486751998683276959579126952035531201548731973955396488432269042834544524355131206143034862117240256038702454441675136802556989708054802499812214395662239211758553360986852538455276550797595328825709013352850195958790905626298349244077647391604084697860093400634798010453153882640992547643497361578311484975439862932651562240212399156183019284848223344538632758767873021628867100839122770544225855141200525213868886150485103547767617220691840231756344451929153412629612641568350534267347698695595162979166525453009718653360074901791440089245723075769889557207365070609631692836171987063393531236987326317616977197037896825322497217749838478713751020904689157663552436762243082604375373771791346261841293227103899298932815505892809628404798875597896830012223090610157974583003649588225898090383393262861716246243767606890312749379373898159384323507850037544440737745794804445422544891792652377890436924782439518497867832959506892940283076247899251771059362076498857962655057919088615715718189104253632121545862880765669943341972861571584538686625638088538628738537311896116968080426714233447297257665469669892322206494565201680570924765152071768869769477675178672058658071735430608494502563461617546957197219941960755307950833481367156275106548766529536835377236495812582618547904893930909190277881337990403780642270938695832544239118185122066483698836494432934524266006814639683659930765108496971209372965119798038784071312332018651660538611670719955341465699162746452698370723602200420937706763052532673159645034541917312094147200310285306957127843669841219072346223247639866183171670444605441439362182951448070091279800204091793739963649629887467920811120298090619898633693878704701843002294981232826488442466772393424297195414377467317097691537526972621414416784619242604106936053232164973481328591626285989157288758491805683325841068194217297192088116764806537592661642887649045468830167987153140766876706196510428469911072801346123832516025127349771226116484516129844897604589104285021760756685973767433688907505411410296795797267553960553928847358203559876045746437621461411084410429079310029194262640299991940017804105135891199466247169389562501476527797781101544592680388617540929988000353895077955964490931463713826411222639751432154912360975493022784176852495870295540837604858877761805967892078046467414220854557691683862338952646355929880864426901128163943201678657539584691996273626207916687140835984500731056592831226794125066361912740733334633772923054893980360914221063717599161351337460215803167190363392490252295284478127366004537542795009140698896115068733004060987803661373777099961386398985044617706120086100783601594850898978692769747126308927381867672095144598145627849394046829454337372676104749153245778248983285442881411567046875403116292381726764130625265935257068617000112843808427956588986908258733070959165429023773672628461619760440051978601234425238527367513777177822500027711660502577324963193708346088256166854660856852201582907852221441868472448955907616706877103640264070971618156261099047717163202355467393094932982994597833985918999074450972136721051422477801844604590803981370279936594387408415232724981407185762554526745667405861693250317794152830932062737727467604826637862954786313364457485591805850939987444787305670331370986466577629132555166765724294200965402961279171144733881387442163265723914068945850556391842924607892266952080946671934101431929644040898988723462271299397461715647994818892869994119743588021102779939451181418815235818122984808655383212798795786740007275516131790724070819641649247391248709245454539416432815588191683748234831202865769990543871780583844586311573019325530324858585361770685953584291782362922005476553487534804967221460989887889602339602710670257714474986678525591739349540309301021465338615164154995554408848571121904274472946512128286184862668876827113632486445501835711397464377084197022242937533882113462650275482538555061384764875261822075214765969810206002425216099724596644392380037089151661065741469315442478663203178596497818108877309760681835660401392341673744078800759359397958129080788719377025734427153285583678213992509168396319838470888055107417170987622259769905360245328849472955886419771834741329394012617979136267878672321053554946592070602951227910064231811271524372837202729854212571929614863938860672605870690437648973616604600211983850813396262554621482771271315319261783563501737231545373972039167011580864815884433423148715495794678368330704037723100547387155488044632294171639221878747887481579847685907263872240042356244218967975009330791262358358944948253526059846557618565673150202692170416763561273714842500838650282793973212706405689916104126766973406289400859293815244585155826548759179803349540355785243144106920701074833156185339245720713464136831076434272923695065725195175177595463129739904982282415473729730493198876916213165007371367796535819412175021526567580313991586691449247424138659720006859759993944744537428562309714481131423307342507199026248816770297367840392752639658261200025002417201851586193004562932739702016405704433887853893541385476610797163295146608152097651014087448736549138233245180834701972300739954498474973117201452617068882798936859154395093292706917833336650510123661851099300053537510434437236744862949558415291319723603506449662164865111958491260849032364644452360403793708435212081274865947328522380056898159763409433726573810812692398941508772085951302784258852533904728835122074653451101555039930728704860323885287782411125878041239767571150209000694811761784407209693352181569786417219385711607718516073263991969052939951399603952254490436111713774450768553035326259019410426132274646895650625687149399627434090744272672781007388017878432707899786566841857842314963712572171666381813397132465572993531176031842994598239199629037367601605422349530085518879204840529825523629173008766071676051652019475506997216739342899149840299863087983583934225703127350263808711745013636726652912155174555252809735187226087310650794035330930298123180956966707622274491476385233360886960900882385914529003472313151152753402748768731286630158278642397313303271172162530217686802976253051840919831479349421340870978907764750464843383175894480838538589055414628882666723242511725465311503889967051502901320871978922563045051117264043443278834380272407995173998298834305266103174979406101892527530874576816814369125835937677426593385100215966324862099604942676759840245582918648764872200235374144448084135874442521681835310214879409646619391597330006684617379658937261256559282963045989109393106685947956091504337672017085255443932587603671948763411347796379421617505752538449613929401090699917754621494716231346255513073386211923979164232495908662924411631510113154288425411484198541104790151374982754909554447692622781853009595744995111486086216250282251128423356088398333993767209254933789149194104716797302941849826157010016373450502427951786591761052522687389196642269927137183769418689933844962708310829754942297425027303172532336116100458113709782551274459281611251021943054662320919764323332746862090814667855741758717416655611459675906150549555143960329000375282246498830995515625110405828594950816680459542493062467542383410847083736388168522212174869952887892296333850698388682417506684159484838094824391161565512182733277906311934111152951520530194229723630174598512756650346115092180157157141618838698231943662715675321559922138359839685663624412055287672745181850549494290561301301400429841271973271046539365184660645138376524054365459639137180222212201977855703780924134194562336238933598864026232990630421776220320195161028035686110870745657631098390887469789418766405173790070055602748162121354852576245655722243628745201461938316360757711164266266332829375038191573987213236126148089393786175672492718408508472101289835807927119011378678652041924815473147580913826606822563649495099546237132319997027483234558712909734182386976084458528106894475325471203259170568157456045702900895603025420398828723881373469195840920353842949334045800369805224314826471563405862727058315225355658552891282895326954313523143320423455755310323595894895250400808439787983094413006877626201735256606276271598936203536674433377755026127421341026678104189389937382643760908999073269382401365725006165567362954332697355896563104059076989469797759037812918100562311868405228664901727415177507364892980512824101696460550335051806137855104469656059824943023853483523515768816823088848893494836710997558904401569711985001466981492007159749041290187106475295257442163720738195679468605073693034156629396661336472825492709068115589163491589194503525320262545921485299790922142200025306458645821461360108700951377845206458845636862673161946585892110760257928223191476148270121696020108233638550966106174557054123479648824858824657571707038009307721390537440968416627138132057339494300827642844197310211504888897785356600328613157331096673622861218839382521017617560682625524360240659806247164092131102374227781528742746903409225835211384906418305113452291439863797177820672725792413510512392514952065207093134344880400261268054597556150377646193760216066998492417391334420109337154180391571463138742121948844145037558241194805707569505160394598098239142999093089882979050603995066384931831383235707666934129001025453811573948914095767281817397802648782458364297145745201863389126498049584056996090451439103127297088793953081233593276957581366406063952046580650988042453674742726030893591873755690909630881660693670270659097221140996270780266087455920150538866671455739041337665475213370140238532230690406202413155748147241777900021105540045726828396792454543144325965630771931494803775793788183258299071375024965042581893147784858996304720714391021863711258155691104289770996837148182325246908523503665782530717577150935596906861882983053652346472791981222733061562682973610293764941514443459183839089025279394319306211254356002272891378156270054567170992978861584958954694020126029136291441972546744864384592637118917359039063496195811886927731079918812631762424080280770950196753344492231843773472808859692185598969846982791278924823010665350138293722573411023718404062557237221208516387123912860653473804119537476911546260339951706620739332849504998130310095525767141983150367747687725150833331959610973723704094952141047429364323093300604853547150980731949931502048363612094780497108912706601563966613126015081082688554279405267543894480538432387144860872527577453885104378079809098553169356467205044553290830054802411751106621684328067832896573463197880645431455332119301866224032671218302113105965089821434922447786306118938485425400682969057682131783457398456102308568399552163678931370448883048245763341148823812460535459976032808519958151567207325279193835967715896352367939066809095185023018757166757799041620676440086318849290636306440373747381969424465646662291109465308270979573872803254322424074424720652510541514268599609522447022370936947227238527178189317510656163901989991984538548156981529623446376995520077963966381067176938326286857558107219525549498963092787222278105126194735391615688235539892714978474404496327920514946125865655776659971791310206773938090652535640549271421346417696715157513618670705651793363907457993482697719702401624416937637047415342052856340350040533273514294249839959783018347793012828874010998694769088426183986544793219534870822315203232939987853353998665198336202024544085015167926106411592609073923292013358437646989607573627082328306668245430253360570529035559328568456194099062524745529790838307434952352297737269377182763389034555776393709034622754181034790546424335657093141101238774149685168517539990102972399772136541330594498572802729575994357086600533889901256276683422161686545106903871438186678105948942496480152616720821371067927885577265222605282030799093187030754910806306674498738776082555687640512473492266284262088057663131051536321804803843225067657705217161015364757329654063609307468013746095338001527383487187006101553391385586498597153187039627317709571083752419575353571234477230968167642279863116315377236114611684564838615106992829437043635828724869371162704559700573594684842208357532328949297051478795576668278390453050569747949499918781321463858131749325571168851178519163349790703728974584776910943474697643317415371729019125896768807222932066483525052575883675918710141061734157597744521913771120909103705684959621220913989841001443429900027655037298844059277311343335316822253645580375427121340679131872447611026661922484866839412369688493973668634966986577444955968065321529213817991937572615218138201984640003929497339587605609407818266979512097942228866090383073021746694564243909564835433596105032647818793180781440693290192680466083072305727062473506263570419760870267447610917415709293498000594163068448289208663013616192358684657209714373045884363192104707500238639847718380620612362812816933704653688907883544247337188380927614344649556775661003605315932207268186430724230952709280006045753086785506248355881299037220741880889950630798814181087876654955575968619401863859628037843375951373358714645741738328433057166779005152764656624612715789532171007591948788957068101153098992140047895242326027123273427700497973100193257546289605439065112441978895757321870615020701274910464336096522089469248504734546996578045817188471800046527687958089578314385957690518864398546606112564188503320522525220596043074023982003915899454312377088995688267654471629057312645589356219659451400131664524459307044613660401721679091649939937799617663890822924809252884087496683672416787307984753192430318731303873465264633758191440499346109861102784279293619927647117996816931416247660734118775201412190070943999376141016414367373912890768922052181511929513691818674793809460227483454188620578408993619033867438190799746720029654725445720268688531811063358393896564096769555247310411429424684583701847288548412449126788616918177688395472618653467669474938699557349503897449265426638465602321879935465633437697905718595804547612787807793975344620130728701360247139165928133642909135489892573778316032139329988272642457702939827515464772094991514258212162797011016783286833896546467023105489910842563679889751744963733544808265611654860582601734027415322617823474313686089604641706366921455108267482479426042011873341965214507054374331848781101341912095124632911799310548300461672045174972987082368329293547185073077753128064996207654436201398897041656089067292805575569643352995706207285499544565422490172832153665608485151638636988990699947661532807977737394914866772711019994142426724520990435502694607716085120836295596243461418773595820330558102230203116732266394557614926949333221023383351263011610525406805041630999406791440836763212821834364749725624008500423754237681925456932204998021870138980642047987714644737734025717786468645611858398376814940846354284347987734704923144791029961952169077980970757845755697919735204437442009862491236892936473046257045353251663315479549612237592652217867320466335691498640203090798426431171373860784083677049732853912179208094731326520603063669339127750928901392655619245096299073093371944947376704956427788449726232696490916234964099208608145298938558271300484475688469662664818254108520158047090839243423857291075452559825924977721697486190822439291941412286028748012561858367546451445816555710423169883781237522308124251746056922784455794435948290350335867657303309051178531130276703031537198437405834963276763440896806371510920484052583530852343744649676576647911319541599784618555430382629029071066609017376748652189516256347287610892747516611315585406880092216537496112114167973936643214509967784038659506912130429058841512703519453719453043706364734301639444734768687328072529911183763783427107529178622265272498866903723423724503387306503604303797815970544400425281963834046865597003516407850116493773894492997329335180521292213714864120250747363660854891715627710646388453098073459823805631057206269719448796285305449159839229476589103118677574400990223141256875571404161737637435879753521207062002234742013769854396924482727208657533790503728165275682746787922544433019810494545644221447486966363575343882624452698894915070142180531787235337900717937029532735442759259888626831067549117558530481861139053037715719318675824104116905225138958359273905285285464772852857614612123197746768652005312061930243066837335079934638548329331149290676214299897101528387782255031446991172600732636986022929462696719046690297386367401117676332377708120739470005669819723322748985848184139734013887934296278210760616806305553580544857064216293782857257259633936469111213306050972187907748212845845459148653958987635172676801572141793739584645255905371242105429882203202070641670967314922176654870755128166803615316735647871389029830017242855218950060069297266460373096218234447184909888039087727939637648765902151948923007669570452808328093565765592094629843565600156391515322493117163131320439899662610348990438037371668228955587993110498752255040825810295815318260363431857269286438991091373256542186468379436746086673660555932717261354196326211448906403526824887575971513523845914673557272319428679023306501419906610479270857614067073815388032021270165314128121436393095781835583514268291982567195957513023583097256828140896044033535982924224787376503772987906160459730518845939683759618333265998889271492209994649795878832235151783173337502371307645128540059570513650044559280333194651317840943609456813751532329153453145560668791649756010833177556135096212549005554530015558476473235135508440706475640482233256552264236764479475107879847268222694711210085963742069317753244740635361517817317468111475738970527032022546925947795969667240151520021839940782147899055075858082141236159875635385026966941392590834258945770090929737897193294711236972282857245608254598155939837732070203321223788243756081829342665272165880677006723626527204961790692622795767682234986435240656785476197221522514918192934783063964614476429581928843790816524282735376253495315470704270242084948800841253137406686499927377956638679799260346354523893820814530536821451717968517102585186080607162463222561947956223515166862915316283288126041304465151826036244181969324158060747108153984730204104091951002873903198747075688734208326235792033719532587916943182448685508211476565140814259149318053439572119237947980737154600129261511596636680247117267412751828631332137263440879924907777864242873641334452387605862210830030702207953131653139287530921063570281814061184623047005691838326263243593988389273599860548691423208942585668923834667944808250401712571321067314192620250153239986363092077997607313129562670110381737369530868616045672496275348837473282494151424218636740583929494184797094332937369696388345681009210490775445522396629827724011609524152369790097204230667305184095570967596724772427671324155343135406775314420738805262188306332742663067225130511248034239138365657207456650621432158692163529088420358859747408429746402018229940524208904922863868283883980419066219592913601996993478003936918143843311704119481794124597430049669787841819114375136837418485409961291051516712434498169829369911185610284072288497791945906246781813936341745113193020297506220154128397903063154786178419883720128510975797477448928841990787189765009259001624044101175754191286858100419483690403704094900534604462751707667467419579762087656798001754553652858039864257147299855450464296585363612075697032944887003100550691776544408175194845885625110464029482029358843574205356522842278246661895637598871983612341509784683627217029075242080298185864316048690472704850984707255227804975787465450718219998350163380473611049267161949766529352067464111192149787303366516761242347946507096397963683213168722639555467923689512346484020738623675818001538085345145582474516556947499375270281552397877152936143242835003473605492536658915842231487618753589943568809758907013276606609979783372939504229231099179178820355957939329181066428658081916617419774508307460253935482770210156383325525531525699837134496080132527776338191749962552775835312170685591905628832396648531600803147042830628630527417361891833408175703491979983453011790510738323714873327046093703028237815895806239126537541078923409323414421929922417046098000247457852021265658457099188323638156378569262568167506526754325830667830826842215046077751332426602120120838792397765309707078818546127359363470003100115644068400507190072530909141380708664267726036481341852065649457025214263819801047120322685598247430125184985210231426979148650944049388692347976718551666783211693745444150722046950478130882193336736019405921906946269133869841189940301654748767016934786524529189471748427539106344798789971357923427010117060872623561594299979205865155208359598728759134013246930394253261708404550584278391496108163266034422384378244080875126783822043079844427839841383947166564935303782896767528327249207780299214654928812828498773908081746339361873053644148370912552643654209383348077374252156134520910448467896501042484626365183137078480770133656759772528873637663567875533348359229754766115356513095198912113399702832648092095563703960896331131857767594583081472386581767569934790058072376956985033913781320802831351466448776011324703776545380122385244645502456001779254535462402458065091661172320116451177140469113671304462429710625448615929291476980440435656014285497081616855787289752908053817686523245551079350853531636531713774478970414334345023685508566911919895177677170534332544352769208324051426657494908596779294006764892806199502545689225771281943858057296774229526564440990459428551788514704396095249948461145303798846176921760065626993744832531822825994765046347782866943461841047783931958518279077799305070285244588093182593023894270600959525683349526264516607358726143121906646220094568222527454166768868469734671603376265745585329839129333528410128920120619166687475612850529574263359518078013959375184499998120551939044158301232375818728365983627493441146930414846830234293813762307470679109885491848131598943385393873139452960836796049189493934490420575402551431112561268656376097601298929788990420111633149148748017234246087285338162387752054791327388701979273949899403743279806928484429187207004917549815177026735590949007882339893293428587721548034370475517967313163704693434962809780492033519042576617450937494875788482253952648914108581572126004907060954010583060376230205168794739243593891093732677241869045491229186461452887659468546157733333060227595439362849471427706818667979466954204767322099348085575964486580313381538330523827143022088014831562932561021757797284693780615938079096002540286572271823707676455980003435988027731998525538671877428506625696574605255012711940606085487386816985859104903061302452479814778726936147626887625641025705545299827550597141337685932941815377824708427161460480159955856531801947129364500057930951783653389086773787157158375213017367521801038260115908791092510900297180498661427215817870486550562241245788368423662272356852002813828415395194934494176535560777791964173782318653817577012710810819037357671092920911707650115931438846631583508179113220759519520483939428103003792291354009443909036997583295614432066359629329466258592327154046741226061002027618397333512138060148016002173128950906281227183285126506779016838298229897758106048033842465376061422923653619561892047588780660315927419817681023687710238325738653746595779749598477306169363113040753046575468784966012644567847327841151460901630599149334775393283757862225453076244674988136944105290875767683772340984961025346255533445366263274370385209125899378335333998415172352303624288170063940414441655480523988050806431920505227251530014230456925788249279103545554106683746498534743300010532027471367237405722105650865142569278059149698794817567096654640808574522451267576790728056021023879044111950392161296414655637899544265491069532767117363700155512048455203649815718843213951659587518909219290632221601503682713476157105495921504360714228709093155591482382781920481603141685230035538038372959562029442753541700034403633770584803392185196711465346548839436825229769634415438860909479563721573318833767946093479089424048520888134357033139119735548489830000360279905826145056455165905333702673395240746829572744019861680210282694998991853825017936361978298343694264351082584155520477462186961113361083024343513203759512017604475727904338929824161412664242066806693063540948088483806254106963023290110878113489250788555919568508800082214845719168517019066866988034351357694540482012005154202977522422841446493450815728053950502708115718974192988292511358924439196421584361689535764387149435315815588178301202802247012110809425984621736985897049088187399785357267580454588505730745455549142288604937960535497782606247626358179412797884841273765386475685647263458914991120840493916829922519356882077194735446669722384794174137369280034184194962267673438296506211620443149298206487745368740115097770710151478155424644863192012182820328327185447067103435124521160794610250675213536626408974995235230702886829168882399806240327124252400897729475324676487189159877289570257425986862147306646462999703944269682840692585587789045102841218240758231261733790380058710912900506114306197961070858410968563253484673689225581907677852991138909504263279111994243423204449698086410894734968008201791516128780392988591654150050294456807416915685461480307758701063524678155653058316449678819601057127954931611524793466378519553031138047453607443161531954619256630887645981678036318320891263443695345269873045361542830106398657592369112419365966608226245855963488205213741385629279258700170837485017435999324889149676141713836406034811952523655309827168173258578626148644720504343131418433715517508580146456114066543259248333473190008257943908523008648017694368877670495784463073864886865575687924956608313737526108212689155902888648854251782895122823611474472458098609388613247707392343669443727469807541368294937081273809426815167182580866974617772787562838731549044300213618905921672054859524614591419020442936572212015566066215463149538268991226293084262026405767911055909891018490869850106358000484668716114898333113628180788877353647574605285638689753366023862788460802859334367155948492186617527280182116512193017694062429590758377013536120423172759465015679010758487102938652982026834736613511290539092687465219407024819343807513061568087441755523575731287690347967378652678693948014677634030984564311417141173377810702985521944849998315003912877267728299630509606139406547699335950971915537098215991391146292132103685972860438403247505296673821963484866178539358311661181642854754109227757692133725618172537327684738466105165453667501698929170130514726822071312416195477194161298616694527402018450831369395553224267176867474789033191435722795620744353635264201739232201313820124920254555673855807555693765270779767589281978112327738669659743330361735650734106060080605786776323297784216270043565499810944459617816348758552925238105984600628702042561339456187334580781472518705076564469728998911618568453324715203681607668709579530139622651918611208389194527229772490264158170206515810295183889221648424834413576769289441423181902955400129308521906045356349529481100107877773688222770974776781300427605095425246260903298059793274131130394873701428741097749911731778730127165393969361845604416608754558309684069560027296040841302646812454771377576733891299656199874784602977914353460023179048280757762634297848464219213740021010421080423212394001213659769113543212253470620902249864707914412981167305915620799252429531708186862111497294577354225862522023713884255129607417378582167501437613527950020877370201912012009628676342081164321233108846402912566917936807375937174047963961836810080049355033034862954674737973031332302308261698766388650420405428792161170103719068676948472638540821491873014328206681176305661611899212590990467748624665847351751885587894171192282976745381238108676213480129786844063673275430348891052457008618439736455733647809555616573426704350963300754186594852187926206873086399302040766798693224116363203680391959386474830804228312615950670911916335803143510112682877844834814541239972843854848628643333920240718209827243864222207399507089227957876843753163028634980496889030771347599287229398976767828873799550021470207146017602442257311125074072487052546423433606789598519244390775140151648488287656435580591588020233870138234032847074202206048119057183818045572039019160041553995034632600923583141550626239493254524292101590240206914823943518649448514620478942276505843371975455239326943393431821461190001196528362658252691826061985468909922929782636486628050360757266657660296186458438972496985310105508872837336649153695103903490749479692459310950206767168497935563421601038375329695903061073489191057608684973137185702352005558583079386204557578584663365960872975191080089895529741622617273297661912200585111149846744268864003397297245602056025608440400183408320745608180831675372138027983978810584990497198609023873406121915718860755287133582673484814789676521673020951162786855029379188012052877732264960317526361886715354400841936691282430158067429319106345360773378983193043398145157125574235972495810538251868694686537846953292883790876629768649842483225254026183130967819044852211722435906503881342646607136788471068904157836130495888301943972526215786334471450941425353265916672459055500153069371904247877804528909289434422101157440532867135001009786331899202791626301157154010098337676150435815425625281934342447496362458566230234222721069120927389542905877874946058255468010058806020794959661865543482491601304658577919471885938354753514555658911051047331907632861578324193764483410188039306304374168046132826575443306688741373882750209855439491343292562549694172000673528658626204414565025675454921380094900012213769294212247530457738287447720446840276331110801267464726063280668483528395067843714788332847557886938422186333346774635216542501603116624315882718603386175543363620190915530945277488068161568475717172185847399849941998069183760004115650692260861450424780554330864574053935721944810302100512267217601409289168253621737602049446879613558151006639291933324484326507602593145692299842695607759225037745777561627288457255595238805618815017312805484382200692565536126593197828250285353405921852395153282665351241991688982832507006158815388034089285643075852560042967377349607653184864710271957835422768217052420695105111750048640721947263289017029827352824981107122638872665497693982392357911604378096814592002707196101027440024559218289456432401872568892864192089847912006648462294046819530522196453529639814289918754408813846604578030735525395210045573504793391053013268916234024629861633980527156780826963670947871596934795124428084273015235881968806151367379926174620557790671946040764357185735230521404373181077210984162490334610395143903626339447597720246431765407182377711047582178004687784627971702238547645505002193348488794585664907324428216722898003158897880945804729399274478182335236502861066340157024857807038953161646323867741410087403903660078726668908707824941571923574043638846301687057053204191087064275841507086497337578021808572725641626872572974284643117122301376635539762000803491680710889553584100291230725630925935140719085423670709387233062366433473313227184815506857147320728107035656502955326387498933724519236550506852128545873416663905453233357255982785351631934138718844119490212288760039501517523451509309669043097290645748522718855903421497660593084271191836029063591270903901555005244334490126759688090777052708875087468549712271329203533930403829945107499307502143983493135011120554609614111199568167806519396566824438620053675345120428102234944304850657356604694617205160687931851157942067438937234958245900934711862196955434699168252730968163917349244867859486453674983095713271950498045391168766846426365594871418672551979655254913879146072622294157480836757389432411776577282702506273813070876880153514593006444442400966747768747891232837944625544273480274911609929644354890930952837755772879659887155445084741446620669896710674467493070413091144394056918514774379337691600308061347510314450893406928154870922254113108869283715594058312205737961972372515953859720482931329046288990891353628655559254619064239879497786918798986114016269485539095380665225121360012106665554114876296390002885422161449415805637199228308639678940036367739073657679596959659758200121815483236146772380051905007767977027038244652604377631655175782907535504015038538469539647369834802311086665063592909703915675059076674998885640677490564397830326451338103870166707374496783151534485120568782940840062797408617894401140009228359988166347264685348000959910172827633704470798442264715278208072970544834535546278891842461400509780382820149147617326728349550540212828170953510161772244773201402977502319828105534154183883922104992000183456741549304430070455431394038879939544997090202568574100147184129837660015694574299757497784111621325574156971066130714505709302049319781853475327608574733387016988228406438891588290820998102279425138067509550862497442359514143284069283132074616806138898166535941291817446531586277564268676021410911482490328891185857898289099884698213776808754370741635013522590097930358602898925346975563750017030182906077019015170934719784036217450371597345392730936579493140277770229725672019718280907804823691552431150048980954947434541424170764454145307573353971796353090025960353514322724124583789170697029141509554712254726590309286109903400870202601402557194997760271541196137224317499649737583105176629346567357232952490728220187467944201998138459955865247991764678020054058377935593632268626874970955615164398528493109112818188570529303231409978381904434300002461525935188211850000274501691027143196933115770810091242440410097651185856268735298908543620674371359945054518591020781373100901995201945851931754639602829267164037976862345787565768293768916579654553086292655079679233164794526561341471951126331494437614766824967998634572183880096794003808554793641066810549988984710148437118768364815814859369774622652207499498442528251175422977882757827985154970685727543765866281260055142577979955283942236795513283724979776805945755843653713204292462982386476662042712349645699112941033981224809787753533493642287348361785062697454957444529609175656603742802594491817109366688570755413424621462342363606551237059658305743015482324190991001937615836354418214848408009013962089428708995457478411787957337109268920375993924450379183925743461441505558791273333299673177962523793448887689094897500302425805531818803925174742825514562718346697259341412136100402821139020606437398131583451012815029681643664417557327747951860709401466909644579780979057651082302711515777442262474184422514349632062739062791872448683874915745450351612819199824100909594008529416955989290369610993284035883568213046168019548799971121683264455099130606835626996525686717624069476941447986936525226630751767540706732313986533591124848249046225159037485996399764727311514697943729424063481446945314998073205459862537627368913174940068182836346563324130262109822513108915485985742372877691286203974171250820909470722010851822975050452221317456619031127195108655740004368950561431267111579633907536518263179309024502629018368054219462453247785157679796844370430056365901063625780257814765091766392276332843193380001808804031178870601355029325207802727125819782271527574650916524324582118569876729106655963424170133906850955424827873637919164076563475050347311551502481962153751204511304537906781403021037356683603045878092114716497295244018450252672637021170646012947298667011936636776191534792308663342766186875692079522898187473836450390060564217380122438011700257757706634521227497787051705499162735009212234010309614649136817092294286274657513043586335964398509554479113490765645638424170945868388901109157631593100942876235206517194236435008721397640751139203661227457507037182417368055942492713916195441360163109365899731960559920742203787120551517015627098407441206307411975250342838280791429153817507462757674357944989502188666668313415064521253432762500082208505998945136108703903004277707410243307729214044267333066144236929752127378016623806610405147572302217255506025747996611749796616973225363683317714440964091772697324749696049463064294674487517183067751627437172240347542219335695829163994509437266955956223852350221889395963953449133919628507365105100905576597832006377495345293829644797962026915758432424669284164363335419238368685671377538885672074874739085970631697895810401893292810619592367696048539933942744265941757969572724500630784520441143832525752775696760929217593467812314043096556670830515045556429432282898089249750729447524800181684115505304914000687094841006438317839157682771470758648835838627522729115799306309970998239171646543138998306057303337458127913196051761802166838829573254914303138185814644110284868498135625360702411558199964216607468549330382448404623790084778975823329457649087657713201652508911577411586640754947173540068919362448581433248770520953710199710686749375101482209112952039786975095587543595549612654613322072697250429995034741476119804620411355760907414046404601593326614840642962897349603544307706893778389560227202155671917753747480373023171148220928177045802644072959532668481654503368761774008907362323155196441401012930560929764349350561098615991217466957418896526073856184206611086930157577790544929592572001540897921399633148472529125035487054057489605806332239314262734112021657330140893103377279939906747096708905862737124287976422618030543124222722038432937312881652223406767109763095514777998653123338819620785823695963240160278582084820898172009996368710381657973863023715404265054808018475105976712451546853898782793246214250987424457386675621419803708002563189080290784601177087685145914253926754479281275447828127283559191134241849883698073753023261329810800781273896813598087075639087624831589997243476909410542121674610877499479003429543091138607027331399620644653183291059263049672686440145085815945170884077417154678810758438206981636373435424753409547941762903360751108428761746360319303275248684099515719360751907585692445349860810772613704789426046408683657164402641735731186552499514658221396683716528283013375715426261442731750696334861999149102592515377714404408960544227936389708640972423434277390789531938227497644234437858111010930936365603897563107850685725857910545133346156421778378906627821685792033096705727353550887756670894834248328683969073180418310003925788183234916579838305056346609956251163089745487913468444924511863573777516996683526708013925464247163443535551096751723977628880364482320206083236767957866102954521589559356643731968612463189895034842008828262787269896481057216024759920777184451509237204126214918831682759629665346872973139046377699318404535468143213586192968389334411073632235609907799856276889885362811427606360292245157248740262836021530996733031848271575970772169639239049429589910715507325493289448756829427175502649947231973992365994810723022581211247812453669174709726374710119027817328888463149705754516052768413393446968176082361258519717034938328079982854146226634040769143775658739077670624032618032809277640626532101918646544591877292136606807114718599786589940811823040504287750023072308850971878430137873409113767412284091841533413198402549193558950794044400332701173607794443249503524993799474112379540749446734475510597843827039635935691880383628830252569014295326499600276759336913088233783305265065402408298159454890314197574318687971653765169802310209322246858525668270569174356465875140942945991038734077331293505155178382773509914789278005578775373267255349709163758776607003720515368427930611856532257816772444195823954088247342598033513166799354727012895963952014843228539764187015691504527407054823655007704586212937146099690165438327767541693352841024592424381998995923981506451551810631266470316463565005915472116369469642030216880831546560331979149758889219059547348754903857597032094525275442196649232114659119973862124914521964952009304362099501497698942480877370102840221680278604039001400075780799574626286447020322655895005279402496891654758441241258062848812176450414553561906659296458017986917537549978419831161083033805819271620494078298578318653456401533565786241745502296307132210658085410467966673669673960598052721629565105617815835755354504174586638743876084766575736085976686001527850655103086139409194591425284048417786352078221039537275126920665273633235444676931636200495250803311113192127289983260899957365553364777208082926667694921863021516152600715379788917943062958834944272674274826434259883841071414690504966381954747810543437032002382610823888300137500313335184985877259866246643306541673354270410582062611918564619727563846882220326530046502723453828477489543038079830641666861653940284589276633675598807873481922625019553704892208937988620082108738306834588288417815989741659921476735229453737183038808505789180878325392182236638471755181156828680919591446273858522668705845617435359876006345787802835778632110998710458284984014885223835776614994548887412433221763797410594022358023318014284377273996193111994337124240248811620036641276821400453614597358878552842349402865291275150272739891832016749783635179043646987590154180477773401793503246413890807356932180987785120647689325024884392764275268264616686311113808540303686782802270944112469011116296214012910841428703771867221377581039394716955846908838261092523856063007733459465904086169176010062422943351720220178048543535329433326358237230747335960035290236420621038195698621972940972780694426840325486532037016633619381812416284145157296172421390245696960375695512960014282271793901359461895757245268531236179508015658065275923369462493591865337082185729328437631592559572282309472040890994753500034417482371928350988128161271810651075432590262879434043674584233441891168135999539594063383835502955836474400629815319768917454665194200278287960919761809565566409439682849038913333089238095142589474404363076430425314282323372074770413846166694362631239160264100909429381513195569017236675067894222818404309626348710040829328571642328738496271180298757960688148933245547528170902672693481153175234215379913484544782771762057438413911170817234482534740061901141544472466100262644770343086536647925951521373070112841954966397727281454355344041881580064189957452822544458415024450824786855157461110610987265378953553213850909052931973059208094444372706830976682563507253958149396855585782112992285739540397371917109070031025882955240992947880690270208304878446417317415105139983341052450535584599196745999713188953840422303250524437673040384238254330337584200913100299136480895829423101712763587711846618152008978580930418600181130463284893447839577842545480748833316590451191426432524335233882200931269518682149610680656229619775975872929409013715071335177832755668529719151202890826457195888253053266785051999251184622998547830787330015063323372997173713681862377376786030504898942265228484498224894197318983623473714876150747245187694801823794797753980863589770888805923136479035316633464363338523793197440643369085033179455778978872438901039546436498076875441195730911743513525934558850922624536486542803873089484396034028471575394789535557182627261477544490077852643118651637302248340296152750337946178777644129017704605970853580759892653640560205910893490114843639203991866310069646855096824039173028156040941134376977621994162635437010033297662888148640328498572910344808549524396030574572155721326671646359112245104153531523854826520833859102693962409903480523526327760681327765726667961568682227282235619680782521436260868574261471202779606158210882803488556768705285520278745944387493346711416723690582249959283998150020385005996326104696166853262481102602864765217324747666302772069597905606857034892220421216969240894035536398832712829204221659471021883256169360298215666440901553209014130501068349762012591275582700581777602035152440765857964498449871201830426229177845916178578192571742500073452455831229371545858305502541786981064285245011453945492289023976016669113200912254294288019776326968350163921789799771477266329979740278887408934159498956464885026102025903896089245472442307285437446531802214473234718752413361601315855871288709100304110045562634733417003081156790231356478924411130772571258436028920340490527360836415576749975056939239241347868720398337703052667897851598922044425205310854549848633148797962730539195813189553202440693814741824857137062979611372366484187030500682684059529751019931747529110401792565440976944314149740806014485177558937699119603186349916003569697575250947865098324507077647578064815306238810628516814521119943152722346988167783518153347758048456317770854549932704312295372935844749354583731756094382578367999773704509130015234984976262611471835063499717512098670146817448771427103034866753819228905410965208474147138046068585575513373607661728426880689746419088771892096070882932855395532112327641577854330766280740676376070329555176141950298184476872112431284985115164080944912170612018656140891373429696272546814629567840767089190405653828349678021935828407901739380607184029948514743334398075597892524212594240805922100453486101490405071483530083867594300239733797873311009141466111512657150176265697996661227687293594783535998079285432904152982757413717107664489508588366630165760111072403282260883105335929357968185877067042921521049263090880903123254183820592773469815785550117493619980401319515085210043767936199567602854580243803256551047680792894084860335212832003544742019392326847252785687342999864292909765093624304654597610080382668040976292222653513395537581649536154953971274943440384643783124025307787031478629895979074310319581700246901073223381522987213746362775500773859862528264783252866244373014768450863399059998483033209782584332338512071517390836599554909668645306592716822650748564414834805403806354636630716053759179405080104985306260073136549691792430621143782341702017592594584526145737023726362620096444387053873757231140538803261664744565134165864788458530417335000925116886233074636390716689604607909894806862178367952676880377011757180509750235850868405298773488792214782472146101101151491101541907017213771979570714494921115489387880638497425927085376758268360301959080665604196795265064240957531899854485540226689902099782483111526486479478852052149209705087712771204623059861737625671462910883632286303834352098512886835645981825983320817501746985337888363807729489810910263472265139809352190786478053800255362289392098080374909382313730558981588041893732520282881384086998437708238809134642769469068751775081755788569526702846635159467140851975519576184215412380008014768904264053945180977114168749303699431669131521093093261443340316648255076588411204991902062527348589149940721120779840712269335996309284555034991361937610499022667271912426471169017061757819516920164997716111978635590812653457334231841468160533388690737572707930298011605715407315996069022516101147154859085934041140413979041206689810972689620666544232024507777089599988738098559988066989942578895589050931603955925688260529254777998548419371270706610097010141643419880927483363348249393987411635406099436900474608127400474488930852881536850467901900747870297975943128096785571478757266785308840374500535766327240505888687624368038325731619534820656513243040882769682184170255492440224772262709884455610220569826413944143848687865440392491303345458307819315842704179100868326747898142463275340371890852185639444069347216910728133384026995083228812773920162144819600933599115897552958356517318127250267404746852985377250563188068449477302628165984823513763394060629607406140153582187631707194566454326308600732695570193529992975334718279203191428056256805533408005546011580458518270604162033940825028085008670474529936669577756583556471960827434844722581424970730444368620859468134094230641552907477010514168822012549117079322462687700194704865532357454749180910000572999932908234514897198569529939278673522230305428731658932528303682742203867453792737153117451332102690960928415144630309494621462571697347804272210473868828609336883991654016269767116796519959807196106000363759436360598720483474251091098276470361062807671124813213944693359626986038819342239352554713603209701111732544220157101995571373279005451281245043182612479429074616256216214221400548591734182584270068500555202686107707091376283362374903416488756007819703294712254037973079466769109230794973280890013617913844657279939872080651055156422276434232741416759574532511938108078164919768618338238851831978070624653290940665414165118166866119788720577514051002907289986873605437254880587549995540541087060724973062134261461266830429287100263703540746375586968385298849027963461657342500167953447428704562395879468337101068295095216929058825691865665773084006691030641212523973005791460199184582429190712103253030957706659182400792383958803074623130493780125985128144276169226050792110678756668932715453428322836096591729830036285724375979276071955535819275035879061515093776178235832784118726551412509834255057560604489778990402111096065595271715518500388635839584731782317073519991647910875624405270090972805420715803202939504232586333051476205900667591642857791045494491905250661004451747507498083193791121983841843655407981444718819982068023297573479846620693152301180887377691127353121832417264422667663107241630857686732240589404924258081297638530978405359512383706292961296252486846407358139157711367368979847389217857269851288793556748714464632556582863478177077581011779807669496096689397124512207099869223411079097720862304776197470138067944231943593400933852415895851865252735175344496415789302705747065258059656362919117854654850735831387934224592039683506857615982313906286090557952683986900067222046167321652206814653462883111835154149810089788360318994064394826555632158807199700470732854736686727576337330700464581293619128751943825893273065275767545263352664414916006811108390531358799911874216326101420041470599402214807366551582534009734062035044938498447750363570601328168790722798632106770325265221854754542653338077267587921006210229350840745816663561830974835636567938819933582195356092294600850621956727014960518559526229919042381938988869092880675509294812766746169148791681099971908260413837564775148594679553629944152136959093421900553733105403886629063789597785788527644475019020659491854379224632708179645294305566103005857407038250725999043252805197522869401260334104271951109108042037547263861899252032310114920881979393600551413273649846956150847272168534268293096664364609973928674929785163582745497172064588749839242693220484420818408591019523010961723231745261125742014143472050996791313671949093262242762534031458072269684179704854877753009867351676540457103888567857479687336852917592356849871573351548024710029539542873052118866494783396225907831563279510555372843332819081422460266196291968459304739308838670391911073816936328537531451320957920492358130049080353764232390072559512187845791364633236880183545942538540925293735150928885989825214488926830560554292235807416456923177399220639148985003228126691904478380256279590589567874083229574009581390443556259638650241769043869151678368649511048392961092683571906292335346193843731221254316530568871875239033571068682837667892049494310761477633139059911381153590608705702008807141467129764630049300623680744319376989803590295268987885414733259398073573080970814242598432560648581678805468729024498698082680804252093119566312914327997380069933325169308293126520936988648424653240962720601426077177207518879068005120018335298242891968340549556041545480441378421614411543461540111446891052868108628174971093173886273924562726492625891269567614871974649993823933546357524106153707438561479065549229423181317774026910048159435748539803705263157747051141881688531368024518805351004190521435156383338328773663861646383566912217416505632953143605441074205464705692978335937784990756672806381481343969049003355177370988492108416357874118889763520274885176433188286864089562558690204564494094934293572860899213334991873970995077193287976679742180401337413913278853524442788641140303052011469970137711767221589371049006484870598479476089126269584788191804292787230029814154954326563910452353335727199330009880342770480317698921217065564142942273402736434635754512625829215453435977871967347998153267061337798476990614389441544912986438574709553751468360431954221028445981002180137714968580987987115826962181454608899234129156481918952360258482906096306797861683147383685815945115142374053552760920917437231645149338501927851514456751772261674453039407125959015874423051933021502265486822830505337807484413092297346133878403230614734022865107047019662490854286151784243175714473559569200541667596713008142226241411086636451033031379000622971159094394391979130418351472630417939989497524369746332802270405927632340418849177973071534166686249907196240737219178170989950874456933471522343805015447902696200179244202672680109410565976411588422758361030483177629129749349047763995333083106856987296904856015967855615762845438094210884559200562020800624523893073855608358793154746591153023424609578200789233408943561069357828252977169007622062970354973464208229863560796454291062801203851161410603937116769009169833955223134995006346008954610206434835707831216290255005433560437570972329212090797620874658808107214726839603567012198664276986053910819932636185089201176967660351748558497680391350096941963602265790863005869573333680030285335571157174451582434468301106289963119075541145943274410272796409129238426404200676345744329077698486631790025068758350116649620491217432843762893784778331426699455458553834371251686167227450858434364191422133896433740600584705986904031406000676747573077225093911333461021621828223689199212814062944636615653492691031388143562035993429103731547998171643241416705771434725516155703788229955498882859699623231670501882296024929355533101076236229020739884805839026554265444209228255878799870069449400977845649377011176596983434369524706385993720838810718834966034809607490458117736118357218207432456592184481867200036187341052996313517604672353656231821068261468647705539894559366540444748868430739385941012277390632328092418873863915135501680166046368583997146923318724253686714722669073433469389872966864432875891199523581099733958664861022401122061270714999322017898935641021605517186711317938971577351276325315518554584126275921364212633529274505214760731801871616563622787571331334210276609974404169602686258138405938960947090053572974818760349510129858622227834246787646576703521700310104727603596623390330095159844803769285430052311599691775900979672642744958813552558174638588348509081893627618621311413424847994108355471263285142216209508134263284235021769404012288253802581497897235094321653219406238397808060539223683641116755872561797161891577373877155655675648827077728935922466478389119691080170313332693056372524445498665834442836569976859028925323073388409890739046086963047012156436980356456455527618436139691222907389717805858186732895862889109468750362748483926446536520377290172724122603064923758168460408104170813500723325326431780180701732194100335786626331112307367707647612399958396533665794057943317641699705154351051187492917164123318931198967583026382376679145250679338786058854180242821369298553026543144618508708710173207356016879750883068209402710108351986413784980250557315025084135002770473600534040713656117482289314047428543067353810534529391435428849731096583307380556598840285590458421183460573999513527158965793153052739851410318049928970242811370597642890039894885262722104867605602518409163162516693718844232112587973138139414044338802369181670970168298180503820062321106192542875858259311948420190960310729962107728092447237894987793833222627266675276773745908096293296648549485298935597878177251124859170183555536041960664117765682944901031681462816303940693793923234904365896791613038433338147860130510837984044309400247022612475036992350755425284530371704329269341246320651712830216908147766530188533434336431932416384454525250893263712911787897942273500345311661908860823207082878322716188950835468462935212652902681898829281680644894588743023407267404690349377550916164534429791454854259033414158890782176164940013923439719086408423364345910311213461766682968116533057600125785260164697819583785365036279734847803281011247226102417991233697067947036946692367040583264155813749429894653941419659946227085084016501973633393446652258612513197961991745815033188811633051062653772806102529427322588988929101411913617884052253805088407354238704816525305965895384244446752772541140609947730142377188207462955479668634331527627683695283007355338245891035547160166291705318723251233047450947394710843403038677451603853253372593517465553662873921929815008065956143018744437084273286488976791015354952568101055918642348475539860400339308141553156383548533924272299280156325270576964109672607133639526288100431526137741686910093979961263506606566673103640455205031785574704749855161450677876149618584289549176612692301865779150688493237910134046772638188560163229606979630737816920793822508558257509092043297056733032507369910018544628770957663266667414170390932365732748480590633441879296814921815153966507613119389796901041956836599684854641133062004539282411863635203333941742378922604461878261578765542442231649826621739558645071575348050446311534555418922109242563438915970918717034334421462260981680533840726318882624306872613899278091072952804947943528737515608235689151889357395255640788013036656446656085228747814766410517373784813194754090353885172277960719921999651353364519390772064909320377991210571259573067165059255591588067128561867630906368361879742625422579439621464423638484101511017285338803114118721524193597441324176883767426983252054761674930351813331905482918672995666604841909234078047924272233960466165178623366405826546302679017423506656426670293489617088433848992510901404233544727337751389919422198286881907423164185124990587866151751247072988513489556249833286623166528162640458375245612572685229723236368484919617325737039298157890785833580468178150145372781291389213177009373171187091252431736060184832365299635685475200068281926632561068741831175306594744089719504018237638883342654779747471551894584518483317488812804811166462996534532136953914845081886832570775409543994052777008568936950481997716674765129185326109493794315572801691366599369112803723052340710656339695010023535311716454530370585527001997449074611204515483483113457903405059088177108027962744522054071928184683931811617728007576543011709561692419255682281197289732845999489531996819504766810491535414107169519239246836585148401115019117413783882268831125783044829618497114633023188294278578855608449851789285087211282969384222126313350992079782523859827135421576173628262685306614618651365042942072923097314614913775954584994109239359225959597883645541249775263840013842934551808417335757755350938945503334890455237077920440482178651211863879770571612879833044029871481278100916391323257142089842729056644532061429483170409617155994770858791150383186094126312067289325459588308060627484607687145462749983626458843685061440187972284086929007293045865578211077280115044969522446226583847677565213348811687032642858059080183918915164705591280060426051691065799622108616022854446380866962895363463928629246823247134918304936214052925785109112855898187994395902595904256901674515875460152632493097022962708997382546066010792724402505677698500811656746668630031339738753728988269139131494346274581460586426149390408185864270675884834114315268902695983875411604032458432154528150850400097659065818838602236701992503925521570479971022867716990963612105252805873176055822882905982660653454526847196732360594618956141345990083377634366290951856700718758055398775924373228567004103856841613557342852954595210665189916498409673083323493011683416954043485818838030904546514639147612268080266171717779300262605604705400242851803010666248269336225350480877319512809093777739874769505450417326256808196977242876779736276859090449241457158701101437930778279303237307335456858136809352920895973450291659670907779980479981610850954658705923509247920666017453856797002458543776421652679992199828041451277709332330634675646809449855701830145874613908263763430064211464520566084832466213720066427977255271729980989595518505288920408818993022305171098235244696007800038232129292818695878000665539333081751126273334138033659130978246582795806104343641091508796481716374380846091381323884610944607618020193020429152496374365822091789895781921970140080400679228804066587705902608110145691695504265667320855636897416058555605355487656554131064444953239483289345043927388661171146158592588994675510757789016059516838240797951539621759906859612958467009011276592218114680499556648960256514402580074550898882684029623242412762805260821635255837930490281885257497153183755385632779406277019583714045756664993422291436048403496695484085075639702554912496769408107723263399010064681550748629331764080228969127442732068208035172721222968733574738014531426134315362030648775347522700742056600255939636838480706910110219593357897767244381259965072611545445246444676888493806900755161061661267847878791918272977401244682569139125268747314646239182407440325908234318218812607223868155642779723520155252553885382061386233384435959947786634725301086706906341159516076371191032350446542494382833381083024213819094860891325898094377872547850986809005741893314323251540274488205798973616476974333946709574761853010757486139379551174887693878795853712623896353708028894199867956252496224773098490790535575106165665544596442181823224341145509338070595812935942420164516150065049347408032571978974239960298007768905606553287241520669648841825046761494341907498510035527877282447062573775639592440937707898893885287870737542547152438785120751843994783665546600146948527826131436462359287974446308826098552629846235486994105900391267067471679779865418052262450945502472631967439968576077951402354538953689682757644125924720029437246412347038442485034050266560865653667829032392839431191472886815255999850219644524995517247444876474560988795120191898712859521129457453836902900793803394173953016556891120687679291531155216198702391770207853710849664412570877817987716140364391024315766361838210697650372326052772951860432767097157994127661126885261252178702986772930572979852272372579647443031707604800014877827395434264889627789095732854393089959002115692021026858071754119556051350469517488382033044771577327487453503214604220677361416536199288737765238139541481058844759823704664800925610322604057220118863687541722735645381622721807425928594567211809890972671734417766549393911383064994802498316591856677500717813689193585737300638907916008481658024215597261778374368705942655014070447979189532592319419505131175869142213774233070058871576364875111854807975349894127571014401606178188512930319199300128577254614611147276559306209308784851062887029202533043244127851346935089829644422873201902775603316553106363766768062090759637694769438051993885587108756550664505462159903584077880109569449829171208819765975087175953094010558706442522607715119377861526641721074122394297776339500483512572653138328835324576457293513857282859290462878080570317204615611089792331318216756852564755015418182414871665079103985453839276720890317297280820207589664627907375500078964464364029106008837948369218426128458942385939508962280452059896944797611511473145171173095765611150313749737766327873503698581763312361507591707804228568625506404024161288780585644485065313948868663466345945099695964101802346344042112584905711429189074088876231484148033552379941212381991543228937175186889450471354586715787793874046045065676383703000097677530771225913454987264472261113034192862567860816759751702804011082688677198795725132876186533832919622299266612229019141745276241071046734739295435486672615836126353766056702317047941010258122551116264996225652931517517514511390236706167158934283858042171120125984446865683768627503929619469125706976445509769120009604748967068019939928408531413592854217649718133672499937060567002118535716111093931668862114474044998731556466787464666252201971648665321469736410495024922591562435421959039687968850179663149417714019426437417710020793536337985746780535095131652311826352222781236530872703823250507238071543987965673247440779445253573355695209853538953459594784829248662002742110331007339289404869055922574576634991757927015776552629897098258129136033887981423549400449890944462097437735139997314381174215167267136939756188507821655441844098161675535908542119953047655916568088753974545312591834898366448162408769916034654063156914434517984538645381580094782125670862105384731162882794554240904668561198294928080072881868919670787907953202597219324327272006636595323094440785265038332165992804255832125592439403717745907601158899900167512513378730013571312641941697105544199973316276679664614949772944840270249665365728898278915413208359630857787285119441020260054564782788529301841085905393283566042739613678737980973453512447758332497744789883835225542966713499411510387081326554842266316934430551444627246986504283128208577497628694832308112650730054185008715628022120669053268164027371891313650443445452927040592133845274874344756180582019075802965935697589732455311516896597687732149035128180986291805851368255999226611553655476061954815750657752869522529877490018508891600402617044921724212090195879572664382959826766622474373563984654985169233210653918045385091523791285099716041214301363730125097382037956294022628293155993980844023962529676722096923322193746462399411468220026872367639602183519201164580035671165129549008868549685200690531875294109743798542483773299937137678596082828527379038482160158735389954565528143787841188102263326608811813178274645211370736569471052703424148946282497439660267632394539810466578498997166452958637654560423099504861255299882599237033697492767919913790685819059679902510574959536103566252839758976301335210177837110042985516463441806720421300520421706085588601703701364620697657440759638563579278164898735595015831939241066337082477173782717289832279844728438016291421611945700099401899433129405145014623413765965461923324437211940561977479350243381096148955289910159424883505328548607002347250505615101556176125591247373668555359558616862959252341734204934346222360420321689704894958743783810085481758351124664786487628986256519458737720714150092390687134518452321384937088258567317918604210455770706350651990859498612905017861106410971105706775269435258516428049380015451766741081779520609283862720179203882634208430222042299900889449102225175629441010743126394564297721288398530041864949132439776176632200888426050179857982529473329974499045800703574901982873524338850940883439053289846810114216170812439855243577532752201879864447099499292208388792931116746301235801288010785489397023269492384563701212896942311195220018804154368489387006563117417597385413478561363184758118221646636872066997664723708101180740494344419889758931990098719697828668871185654633683298567289886113296936145914805118815080622083653258843434980938548618468443024705066529677038478111500191270751332380708902629626366338897914197941939174738605691735248339659842108069369734475203591214734457203035622727140858528093933092597812996748644270837855344710976024881271771080012193927733551824139183616259245923882874564700353476092877887564154306409311453840974558032344739620351075490315528432605290709537330313375230964566663836137378014497111589615148002969124451559518294641101040941205292338394796744376671959534745597518326678294725060851605995823705237255960543384688770599095345110676919627682888076137782736125250839173280977636262575707474406943499096186300238617396586011260029351485862488637631440573938776825014571493091340469835396747698127841343152305775383499215649899530797742451735649433605556079105574711056765862487516224845226703255363250137096865585983781029130168280717291512270300723206386110609564305932632078257961458885806281581297036950854150222847069818523987567677278478037059404055642005897410775081133383320570121130136274497693319111643938421124962228614135257966925698310112856726802805370516834179435119680702482125331272024010982984655675115917174787331786995976201048297464667615213254377922054731423862079413368518276283897139337256967481345445867490107718781510842173555194746648755393929340543394001577900708029919149786401933360394847944290657491228861108504699378928324860856907903336924395424897821707896899033140327310879350245327088527883463485023100641993336536697021531651775304206455424162078856243584321624511990641366822025108065566163324737726496085947166326441542719256994183410469112326069841047280227659366741714268440666598189194578339310140528158397023003505333842487291077025883940586678582781321624120496978780133234464760066087935077796229051235979719171730506886107658162566573253124074545992714010989886290808630242410172149921366992896137041132861441516746972210983178941626812248099344004874365347041571708228190623976256309723591792860668028479051817817513001055458473819221532024214298470494430214111816947147227148295786812716357672431265152553910284066618352697072156628350691951976309162938565308236544091817246671427186088268258774552677543937552929217184640637927495091631958520077965834422786509943610785467001280365034934996388293358791089453039577105218134537615419098698116222750632687529175987431037502607621669726057622168915139343182276246481951383184131097076328231770355478702264768716024902286828565691948429774427283342614553857016075725805781741913875727564670427689985994365134212919099216586443568482447709512223502473877411647948927460916407896601735711979104777722338892568803787255936059639699925037559610120697634332915742568601309963236793717794715953611722389803204675776174437238072836369819521010284969704032730182608759141245261322947787099948001585012091327054421554379853567929764238607829006376655144482493606627626386709708733856682149514556499116750245612508251864348402890193507915646438341901634732921830926910049813405274862564337856800142510822120787791010442660919873480946236320469264992153662529684286651197282106917063499217446593031756010371182683119174434336309769528682554128602008662920504336758394663227635342010731609215608141702157879964453431723964729015364198289268054102864736583338098524998550438335921546756321551724144626272625272550049888075269649223865451586560067316996958618364888257969868465968581019401971083335010140276638772576001678670790699045442352244893799329203671025053370265253716301576926350848665724651787115862412443986164464458959318324375071689017245178663286110836679674763469274401124184522592359377921990511887871500397266987386779419822049231490502057835576886319502042420381140934919196157509166948120723760927829663371084970674715772815155178179961851744507955686426847197971546182226235823054922658079635907805377944591785162163628665661851276723432906231755791326931822557274247149836413862313935832393768111513761019078858225273289500868640017744457595919594656971042939896263227635514972251710466914493249793540191228721910315700779868996533670554316885790215858453720928776532619807264666484963387087004828034705622448722495161186884533525186235554998522511240875633719381405684952109790198915940964172020233794897425150381308462570339304976280312746386424773599743228587920739697240692799787877814638986194501069721639358505430998483764157252454961377214340608594356580993908736662131894593363409364792770148832127123507399932060654633606614833793137065633481702349100341499486144594115060762201116965944540778209617851891438841109198402433952868203218660084735457222934828781958886918177294113609203676595049613525859960264978728469155087314282119046308630498643488870540646125723910262591906745645048293270799572856549537251785219264933192586539478648351920167224254574817045977211027115529451999035353727013728338062085452492249660472727950468598456785709479390057475364830377766140344866219136551222474934503404665215819417184080049999100298465266058417392549301870825695008708879221312187118557052094055308534344981429106037084571926016015368771735068747645519451090013770313433097199575922173234296704137136089665040606131591578545579265031426118527911251621494570772765772513429287606568578113889743561852924593862723300788278955405493294310415741220586545260286861143977063480112251076608898028402642664867614964066501021294371644433141539220635550103096992934572288296102685609988443808219709351797368450339037314991211660400868339973581607068497130787619061005720658702531310446716413479165971368950735034578419279853182103089351392979270499526426065061210283140594354111698110240794044290855309298446809337040805504568006808836291802880202108595939436323273273404256703797039357446575381393185055584533249709824187729155048399500013424361127295778196737676685964435950474920351750551957853043852686944608982062156960477662066020114963842071321303925652066358601348974075566711299271608940668045558032038854607316265313074517103003045333674691385334459136950647327247034874550453889456298815739240578948820338163040443536004155356091511465009224943382789483252936787575970428801560365764686631264422904126379737000074536879879401160748669998720382577997600642261866056777226111426826531072598639024588022009984649181684019770673942623127275496282869259888246216668278170302895267605883051264851279824033293706274764813406403959165284861705100089008672976114050772388367618229610858950249805236143384418645167358936173562139004793300197504942898302172011903400261991540707694976349568476463917541093745117152693497712662836020000442436005152149892307090884326147868312030775439880752065532836690402080519770302017668986947241722124875883197003082555474581624428436458323508111889984388298744762220119021039093498936728320555179473681338893237189977713630763790221402090867236210148696601761807916180275624941984815595032194667884091046314095002473760196340148533392942090647122251692219359397790965979794014076927018739603516808190287613636503838389719631092699121209397397758501786719698047009558512770568560128046316477463220676876947649695173110913175527219368057889646447296898993747959308036951627034207914116704416432160804394995105878389111541760092371367270781768619510293020694674964125643743988448122275135214448626712178283671592984120294170347060937439487809883433517105077856872459462602927281097420954469837351523966353686336339702388591069859753651346075812408921960869239958088422201591216087153358657965207723928599670683874002838010160061193078905251340096515952166666744171679137067273736404148628634725648165168395815290193535683265097863471963519580918893674776691695241439086488406418263034080534379012679054476687440462345102280582500745443860591769433127072776544418071679761339316148127950220849119879936756972019160144300371409572010236700254219572155218335877495541459932335179634657747346901848719980677266054790328332734507173241227655477179048328810210784781868231616986768998621533841694205224471504093182387880315063936726107871007141757808714165506723637575093546478341765333867443177213773833261082989299370519264632427915292651649013354261372751096063158811327913300727968402662692223632825947608711642326282573518622563897775479896826105748837743625275311015235719095293856134724931529647338643884056759003285068703537729103664139863186775464355783848439626602647304021297812691338616400330964015479896647966349499619839147636271346919549620124974279218030765926350239945350062644843462331749231585238855114072902820887365624031544261381388901725297253457838347714367903884367078902396327241194008464841575502368525085203607167829280300149568325277241123041501068413548167816275417188313235771342022257760358125540800359799749515576377414313743251250184432946345007846354536158827102735788102913778723596081103241553385241985014834125614046412904838140203854106997664146038185118385430714739138381853102169476899694326142515634305915542837859068173216967673891517667444109379117847997504784911212678566552098719548070282515932249942499391280288719542238348584050445276258619723939300384618290119913365970923138363307240483140179073666583383287460037957990963840357668482725353891613562010198954678524404209229691194542711886559413808281887752332948031061494203801166027966740720676035082762400986203742162992864292662230607650291495824552468807483062730552184343080297111126020174161797319298257762470110413114763361117400877851684151670318691965756795372062788609646874304029050286159313255099255781102377318922494244006914445481700645809989827656543035386113733881942753559109891255873198339734123333786207830547746233995765787628683340213328428369217093140194461972115865409787778187332112575494908994633466881925191377692772829824977952840229590533949267413780876759367009832063595831601412673738668551733141242320786224325153842983855098163477274587520182858930792146140003414302318902356608702471119883773646908351734016877221242072317632561604695421087248035211624875482158154906117865127351009036102764246814407348906258638687899585107513795070849843088511990205090984692695918100432685372106826164252638367959739579151396990316450861659574422524388348128396498533764231195863753750966441141021384620800467439760968845745113667398529580747644123856408307684407341759934822670519794325778382073176815597278955987701851725834027513969631766032156216455521157802261071374191810142077163586743983521281046195984123158152888492525809273676682048497836850234102844577011585435634277587019550003291461751333563182940215820976277234813666630862471319155607197634844007227855397352093201105865640919859293319775583377966779487182465024746172569854233633589591443873998643088321673888969970558985692699021839739365522333381458800809199171439719827419927028641054174749645832797445158836514517489815802582203659870967982070835605577292461620428236626668258800012411090432256999988155342089305182192211040933562089340342194340892294010322458299316290138886817633511659869446759652993629793096696682900398194672767243510537017594733550660390694545971027460723271364529944934935804195701448417861418855789395202080966287236621764280310407152712895192190592940818225728148601042608432762711472012050023608544441719993332329487134694205153115819894919590535900469852021934504876714914529952316104283131609219709839297509456607672607993838680905160011057287696766780995900968821885809127013099003922821365245471187446434895184703037727377239662282408657278263700057859942457433981670807251835574160734801589181713431727926450880132306450523122577844867278996413091613935921955661374607053740808386864336195217184530974449831777762453286146940566670610656859862847542678277160114170110794852259893117354314885451571194076822038769888117152903364599219318217043157084066738512400140007040001094107564807115403455275699172408705321948493567387010119099712331545497284561171238883393638989617554586170972611835178253370972571142896011404114141048630946453869563900128870460547705486966646793334783684299676691927518172771527563136456457808879869658601435495240758601866020671024231282603711557205684497051508241741332764827105458121110028298537566241749588167271861314561112586160026588396373598343482086273997045814312400804980676201711252533527295751347125493287085468590949846723011064635409350817749858051305068943393828505427399126071610235602548296464285693205835363439460739187500851167969980601342171679657192644867310051957470648526576116031438274629799908596508231546043569720715278293118305569441231692603103218714660289396594994440746295271243766808009349278397346442686877196021188288731787138448847272339450694482978347627422273431357577828148434356219995421130154301425144483400513574199504160527945737953422130336049613150804811156465458084869866201642044041422321340632892143462988132586697724456218481989642537607188615082829476921337543504039161569736973754114562275286491126289579226374866691165592088034298693729727088308911683713124855807249214884508802163177005439952310292005833646166883834366265822376296633123830528510054771791093679547439332802888710436841642056416724935605772811143306733941698325365617905478060524721047846391065201068225445692437927710691278273750877203376042923665188481412480274702730690814661016130238369668937624386310146873373682721604717789498962443461148084056594061544632243416461492483546492459540934687883445013189796810387955183506251143774336493279267825893772769736037111838024900508216025839612028173620812465637881252576425841675475081359845717586571472027236946106345551178060889094633485402692968342707763340237457334299986940958755980206230046204358295654601756727555462833582734452723775853551183342081357946165931526223677711058200474694113241326008924209057438692170328644558984628544172813209531970357678090442719409209183739964183334157827777231095875794959309097443492350038441715274892179404067233094374457039192541556434183932880065338828064833580506566292677448696302337782928280051267051363492410885645147934709189701217741865293273864896282813192942452731329063561233451687428002667818633721903867146278389672494444899298702283221312456861241302288054477315729434922881065152492632009766635353743556428940902121716713707116951609744097546705014493542746854704566887569033985742988924605735699620153506803757403348488537697500549053663843550350869222164653494383816239598110332112070686571643676776112498389456870854266532460599919337080076129990949012198259440068743323565699846148103517342439618324710953030141961651110762781989274064129371087714650680199837043858598476631324409971991788963213040627600619086735305257634252025743834121296444879021747925570857554472371462859058004177253759890506494587518668375236089608876262298004370816058786594920763143218004403579836926066282481873838429993892059292698515829456089366943213892785849973935355211969211541260175039829653086293166744792455203854863134668672425416174501717058949979607218031851397157728347954274118073513504552177839060614996755680854327662788164867804885749968073332346632170023512104924771245302211584515035626009819897381610319685182765498113229492082730380948079490041918433031756046504213465891890688502317868557423187742952733136162388358974861277152468264166095805152793768638593204735790001306166383832677638876004506619847409976632752397796846182897881038173504117664983755046268144888788526646080451083228314857293752081797719401397231295265716634798524803503040352362930358823981121665363778096256910851383931811376795138483134922078121355586578912093984648611966825020084765754940304379179007759967263712461253521288508531075847361760904988351457645867046077502352394227358063730665037028477803342811124174799358429649631679929994969205714234961134819564331205966992463784428784701829298095798761750313055558920228737285669502122819418433719833529824785637558445647581072959667935249771831551078980436615299236472874723884833604284794636778107595194583131627536038305812763157857310941981059769763384102086044604234509511817459961067363484878086108301265182373101490823092096992013491416032079412349267750589409326186740114110916596333904179034414995481173717484362162037874934698792747725754640771106426678378085643612425090830020871352738729666801084634714951840069491006963501804648755703000550621688016749633985843007020806289294690396331410605016035039615553105959765631311875954893549598975200230814569718830449237242496761247878550629414994040326572665817991132234463500647440057573557192639536221212595690657442221510714351345712763405959053536254832348116562013639188859568748688624993645324638159559180485323938631384515139968603250780127367413855129118775826515484536408377421305760169332096837565630570125205933541337210468288905276909353483542815501993255062881128577362213590223768935929986213099094757119295761552291054975452755745939652838156411260557466974848903438105118568394950119506962234129988732880378940041710833829207769360538590397082219670355759254694345253115638646057373507293521383780081423833370504768208196543343565724021053567536441564215283499858520074912464686585430444193925042720418164870758307511555411878836709162753150723547616345759046703647219119140902966876348565956337764331714428768697184377128389686263259231040482891896213510879637667559788996621181580994600524417126911871763735506123801600567711467877146604848273879900591380738494688066619523863292447439230280547709523984447873155286658463828377161219382172711222449391042411317852929569642887751354328730995424263778300737606885341489947184982027217313944656738078243975111760717902788435137356485568247481190209717717764753583206338576030643714979311979981091038125551164724042274705063175444936093821459617007829215310648777490435149701768428330953548258944794399097585320984054169600418623743712232352091381866800976719344348405361626237834469789963754037488632929726171774720245683660897944960654940619534933532417252748997716055926725192250644397687828850121451824314078018161515677113706907069175382916435845622518183860369083716078473398137549194237562926998597090615952945273174451759780388529443041634358998051331655469040360874297075750195911284816098770623917766092130816419300827351585528543340295606338322441516740999921536833802434222075410880953705229904155206843973756901991403909588493326227245806671977501139280532691129919215367816516544626765438815095503257681268957140019691870509583978939132501929810716138095705223958029409541423001722773500405486452220117949428128603144651694134742713264747962757652994258093824549969120876207384812495917950898587155626481284086278401164384058823103747504756832756564233749235260977917505386041090167897003410195735302751246867457976588829523965226674758202698292282846072558162870715246584588241566249953167017758348864417286111105350263286067437953463291050379648668863541467378644342804524452348488522854228691477493638501364657445561731501603421744936217236861454748906774383083958434378685415826683660394004982944780847958109023257375569223050482436452881634705661864227564895525083301829735173731919665984299724574807548812313628841376274328849789122200942462272679694775195449140342852929588683920112683100826298852378628609518617495516683964877541532046460356037026914493970670318639160274116115422674750557814800067560617745225825327962284922609116641181114009532697419517162632513757242383610483693093306354575176635570155062742857526838910960375830229394903091741562168282953343452786019786015018903040088002021108982622675299382553639910393047166600925885208639528843365694462929245103409380080170643870929912105382356898364506330130096094930816435599560437049924990813561843651931093630914824434382280287790288086941379224653266420334816762638418658503670601641684906075966834017774397765961278274925827360374335694130624053470535697199663168409291655638308964457182937966421229473059828353533455671815075290190823828605865620672989350538191177734629493723381194844561253326012872527725497758862854997202571391819926734851479189902458417422178305131466460026412937138298386865931028209174359548529041519771189326776468724865131148431969036808150936259246299983797580617900769083171490288657907360002661909430531821252574353846279352263951683194216636799189330757698481845582043122926602733410450006914688301727083619413733223827145269757900630910115177609907573166327494715660627431164736840605366674866444591272071240573735307660476055811978178563073432786126240790736245554327280914907701275677545393344632734718607152167045301135221061516238063735871616918852949136258770989333797446213771204813074855390676969416168115955248290072624055124876432381736016684565937213185157486428083740743483413915500917389137227936348420185800158704011794563972216087969591944987215340386981562821333975272937301154050743434550816041654602571104015792970183158180056446878534182970782483750571556949229628044774493251428199742128909547328611356256320335961565085395654669098029931704099680300253430870806780613498222253846312763458533223387598563091507634851504908324660373885361425992448543662880892936675671215988097393593825175503284145724030839214776669892576532663929296581053072151750273214793590432055838138722057236061893098310500368227511100367150340124391618670441145331572771045977975041329165820323188788150717272724898197333992125819715854510532825184276512404678978121942985425399446692952557737353222714892706190504964100611644009720408288691570912067572627436005797695064286600897343542246712097029705917930525540995981201972583610595013128332615322632613560508719806706634041445398841497695095313839684704290770300270294590067011779023702197679541463191902699409960060035861640149317816488983542325680878058649665281596241057478239069309045096574561975309974491898312018372149250435609257012457264386561709114072880440207913120917286354581339663948310866325808850800411661718254189268011198293622137038285015210927005894499879933481694884489278527391086378078560664635504885752190888166345317807625624940015757897783103008567369905473647786453474715390865105928124707403433234203417117935956657563456051469814948713852712418632346222681020023120826402559596333992628779609196090828083871172547731579605594709277992030735561856748805901277704011968811781076898700795900097616854631917228825022000881667066198183018232290155326484830253489096432987400485076155680543204871189813866897487018930090016507717838665178663241858261812778139702587694866724183693582111203887850722813067473877688265159600626292124566192214081391718199011707350986982675064162955716200525314391369042917103711694682824612978234965835365770605428002509605509658145347664454906803432024920099564400671250445862593400786279485699182122022266481863165963670254421281346500210060273809014061723806087265567819493996276893305488215700277616799364239304540340361592140656276415058379405758937937397691216769063883125467965277389631298489318087556856399075457992092225426483405226243117926062600862828726085685718559844773348866783857358609540422272365798204222983889536582966022224327230110771995350433744761502268776644832013029267512832420199582248710407314523150716666781321579277255684594168647062796009021661138534683159524654039298524627477456095658804152365672764927525337336692065290866515325165996656960359145309386141621250690493452254582458913403913348412422624931394149554291676107744947159952101268230310280516595610268463762382064516255134619266258785241695019305861783159667443080553432631053267077081840486743393240745237425812760618576149517735654173340977559650888470894769913397346280417761115474850549823898958379711660072921280590774489667524784701839774193821412777522755208725984041608141833458956612209664725884810181805644555634566583564248588062769706882778533436718803550645541920387939367474617824478492397831631134586209317895917961840466910812899138467833339920724499351773774614408472119947611804185443163625195582776184913662663568492905838280135536773331066117616776647079870230044159256633329842371134866311147882848528748906536744829883483846888903746630273630749018266609164629901215592848036205875905264683640809306093571853664941499198634770303778203405908275064871094725298129432554815405571234420620996296488704639017787223553203221934603689421173789805745881562617831364507002689287806988998639790740857711201344105667935819958336500498297981735650175293084106910765035738275477589653682503125430805382425373387777867983955114474307246091527060988045569072972095006060156320326026724791502762015195061185154281369330082296510158497900370444080591839063681704152823658013293384735793865440060006748205713161213524603675854291736182477803315383978787096625044806901581172035329204889702415511364878613013105110048826261706319115721276476220651263840188345665417593528006222503928260783642006390019287943669994490820840343246813816007527595323105945755310868870097501508311259354642868517611506221038125763236248999354364874296743005220835466688781915496870356666422889796408504212138849384469848644717627425389791178279269171159441854114759324026339374670198911267509917657444979733058489513896535116460118025995039263827925565834400633998567576699631185415368860951337205329684137982767452918166499450422189758320386721801497849755556362267167383079121434735879445214831715490515836672623742473235960411965781645392563598865863605290139077006264446083863047003458907099944697085456238048925889286921623989811785785641225692146870337050830960324089486783064999145536604708883692227758506622814147831764753994445724629904547763631649171030504994695500278749659533465036826038623429248778762452764968712334272922447876492693702572568636274402834789132208337549225857038048908894023413838085816559781776857438235348737913678073181589098563492020467080035808691176315679040273496898223622890579245687667890524570938845389311365610681369068961374746973692728760943547314782395918009886993868955370596528207545190404857118756731536907913993621331522387223902699476007858601550620620265342511849876178148758785320492154135783160908042432451457020435739289746564462900271476008666758474391070875336245375802352714232001532282551148151765228809941822154823880653206970330389570978487428949285232088218550768915019030481305929385593971158332149117600795038942023304693506828032171941718313664565267163247229518648952349119255184853074120504708419870515115713699105425882688917045149285965922812514677099363216217270208301402632787572038302765466961373446736510625355576094601474706321508253758684640141204379232301651333529830336702537364079639865473490488145798648156974798670614407562928087239364855115331932365371590586661152446921052229987822122915304219639039768057082162448383445021403704200871742456403748916603064262028156950304712466837994268681714014792280042832817280458382581254694397053533987243699164788976585765005306003490052954890726638322537676219373460731357127249080764700847295286403922638780973498259719746871919450596200489220138152748172356199184015953793873422858273621521002697519808844823470612376695193950916520678354285352295023737666625837714313547571419265486632889355475733903198185464362922643683245878972536048747125808915940064771349382416758633442942742138203354455345646986376348947861767611327961387924262958569284536388338927894639960756550602579312857055410983503866572062781059701220788331323153994495375852719466161767516451015878488136402430908909206856525080421866911568183938652466071610851431515176333475709976627067610857596464402149247396735169208174354057119455211235029262536925412032934895329115138259113855704732978074006598057559179068456275384869291016430225171534650867412416393915040176002837716330033227765377257924040683056798285389280669024525259546425994841725870375429389008178676491737856568208777249411292210982447786865539347436280554396167986669327816310315755391758740107045929809651345581305347631251037884404762386695052207592420764076641555204917139800549571190349098291699411322237065130963116606950452208772981101499758745427818163259081608604333187056462369052122146924383180490417600556683720368992313161314725294134680560131348077133351579293827962936638406867918219777208309460777313597077206832740663472271185872225595614053489866157099789230932475289622869572842168839419966669861616548958474455977151619937749202863591920161513472698015562065226564161188522621779937994400889038687834046140023700017704166603000130859816718424181636972083893091868513701158443047701523782674545371339027638405035441169102306306280768897788195276405389531557364921255378227472880282708822055186794808260295616770059226279604709967293956419507044227483401721962325414614540608125373702829827117656677489276823341177264754608156408953518908544789292013849567556914364069650341532363255747301619328920816881127403960579601453864444618324419316899135222980349599151535532122738173071755316017725804414523122110006724316924823572614513078155635045767869777310128586805706440761586414747259326694185904595397558112406190403434591785243729008926602829151096356077270484776462676386540406043492022527507026415132986179088658752591119861711546804535025804161232191711247384704380149690409805743610781006260329843254254242447621809477744417364235927145517039715894002511542508319011986537122286768353360099387361960130530991845679892835526873934518683218684708358265604822844008027947842684368431604350549449268699599055077487278789594828862265799321460162351465877031884725768023932237727614424469763268793863790113344768782539904282596060809835118898526447771885259867443164949896070737310844846761923242630186622497632546444567040859203749600716424416356259042583906977186484082628658301532794512144066229118255941159466488724096588422584657537476477212901651703649481149630319851043091802582244997963850487761791887246999107892830082120921481811265178152904997513141047929931842907041678721266107961721281072688053984038343044959325604769543959355861888273874034205457839219420013715692249851108907909716339035029536262072733412217966330686526947674710232601461453322760229844671047352086087283600482179916845290289334293981378157323592768729162286585105053215811534473208806550932956929237024355995736399742124909758036817043091565949745792486694457383174166197752278023273462341098563649220169507695018535561131172875467022928878019126967902308636705326028422494655928574536035923314813107288842158509138925456042960804701969758904393132124608313052512048791161629322265207886136375094099785393185057470423720156465554010858730987030912659104334034892006018683662482612463828535944738799991719609663582684578299985699786409778346382773096833912192601713451234843507798886371894742580157319950818914600581892682406835250834119067907379991472902394174242499891173214062744623024829969760475723012118078217137771560198849618763392694522274683816140746047367343696020642710542895226214156195690567641263149154084414795692872618231630063687845947922375126637661986961809740281283826393513507642843081604524709462731816065853162946477587313834137401256688018372232675496286490531150547203960379525972200200210903054877560391115665057596453261094753392026898188040794943303268744802164158441471382522536201072617532908345114207004347291480783163825510290868120136901171461918357268835232902725047104826999134676434590279076275303776127345419881954562655371375030372110358025215394756192384030722990801790899817113884336564782862646249607755241941118106919037297356959255897061547552299531642559489665015797517180746880064731909127332002520154363071061588670445183463696599901405226776673476883242950301636483524358713521999242425551534757819582359561787831096436761106957662104031043190884757868280020590797430664507803627996438359882912186281152135584030508997281714422700619587253165933237819473868290662110634063026257737430027460631421251466355645611475895035069423915270204773615902166771544259669329827073851978067807251548864368819591491700170596117676884043121980094132411596222301628016038945502485837822016253747430396857370251373136894111324600031083624514801248441586594245246222672178261738579112689628647525657259396701609037984295801383733191575462946497335014411234998594832622219111978149440884174499459964804601349062047137572208768468215093097565834030257401697623501347001943503302789462936106755194912691012900676223830064718452051662374105526131893032803412261330006379600861835831522695814289919723481489229658562499557138989671764161945092283347677675157215960720199602259155854486694918572113626155700491214409935998989264337031032133973045777471105348445119989261085179265781406276054144411659012406027620993132922059845204680344405428311587953088665627827919935205283365791148922671136148392229742668250141445929013214409598262453365013282882917144489193614152732937926856318611254742085259694922813239872918095677462247881849296830016082823156800581425022439764744121644513628316164687945440602017641276144757336335040968196524329423480790789805222027791647594997451297121031733320549455129930264361595391981102318265964568015946263058892347614790672073338982638551106052989431606328512452729942230907732720562865600719876701881372327631358191804164912264066493374124181342432271515597710465801078586781445637364087060106294770691551896423086038541895426579183829411287503581493593968067300238284552500354746987713682286885924828374180943143727837701217595375769952193051644553520062950422724534967675796466311933210898107214240432775808651338334965688914123061006256020632753596662603521254953238616720035674230112271336688994412131783542320492393563066606816555611286493394139211462236733241519560649526608074200266689636043504005215348387955886508709215425359511453841258725139841426234604610543449611977862216226548200516784597738850124086550067616070654979018197404464218750455675113235818989047958106102665940094459109710492964637167082775734849690748506528745927095416038983701237150719691327049098592124126167489319877985663425125858099011568609188236705108046985593204505057205849216511458599247712666866943654238755319538287008273011363897349802809304777636189522608777459040223930672076531727371232079412591902451457494979675183465800756003172154765414521074419385347812274500409337307154541883341018208262447440199604825765997313880676313435162348761360404538006358801913443101902450047731640839704865724942240886608046164380675800198790121118994626348550381518369798543400389758720436832662279111691539387937014197466900862775553787497489922700219898884214829085047094504350467927110553403748833026892360362920276243936314094999705935773851949247344602331251193402773448961844899173597792961990951766396987599880556172512013154371046295236748052765484882688530352406856131177326436447311415500871540986562008070962517540221682982834247609665529688376217048383185238417504191871401228764097195210134430685469704140023794838767860549473834239028543500984798579507783234856892967648750428966598840531846116989227524667848035972722389300179701900424148299574582847431886000832253080331293222715872098498665996338773904848402577687161369776619913779399721134466754728084491132730596339182094137998684423165830418944235782565608416951574125774647972154130991772457405248833048640046484069040889090314750915630728069726719358954960697364710270495283302673212065173208495538055732695443088778317593933894186853825566906370212681839230873920116960758010310711717150489808248110632532933915205791593402231324800365666034461571910013971431542866598415954704967600092313852134523196130554408536641863477371863564113988295792667311637528281006368950276804824246921302307145939321595121090969977105035718749793707874536040904359646464822979936800230486296910077152942462875268200117121799672294609431287149750070759565608573437258261383843492334665747516497257272898489810949093390740555097021476378223129388907881259721231471095086692886540778587309537751751894601072983966138411978027308443232667135567728073919120189120489064226538524839293811507834979378202476491628226583082982024495867909553662166745369236931441184011345423784163844292198856099392622699140709458192943216313010267530849067882599457581970012668419041768563139319871731633327233858443470578536971295279793198313896153704349150002992277102401376619810608884990950084254777233423096105094331377895593845948311894101342370695161387590719773139667026469460376766964878583820704919411328397242008247463844274251087568912389521028796921023058015112022145034562870655381636239840816638109062603032371130374346618007938478036189332735312330697665490845236090046277325904208812218311724606365634378625962803117538342147520776917842292908138749213070994623719323452031347527111025006716423479479301888113274456276818006253013472843990384388332652585696140880713121213135423187295805556504831432932779517540771118930173208371602105120465144675295317235163314734055107990787074463087168150488168264853261025123742929542243779364525196601660416366454443323488335140619366943576355771181038117461786997510913977229640881061188138916535402310134539524155573287309523934231152149565193358244929239267693883608780864039407711695645750517144792169693130550408114202430386624874596330166401319371025141249812310834204943864959878946611795301052216912667708006609461352302377935115553212667549116075950751108153280196535571144282780365464693881885562887084780726971834098950558768012881868377367888102263551901339872832472633640268716813750480568145233309113142053072627011040969254139289983658354162622528559455562769970649498872259127474326968088986550451900578352104291828970891194690876914547691461711391289628621762241111927487321550968675882787765222751722592643862883747267028005934053410040315732620475842718873834469844316707550246966674529009109367550079692046463983240572184631547598405807703037387017290163323104730015220590221619323080097792624182504662513649540299734551088136862274765339682579308092999348501160409951626215518471597741353942077084703776263118881826259222953615841199340033890551127655717773002069411628183790800922994817793837194697007202354939738814083218297564989940350867844002952501827187498156897220039354386681924841620162020918704255409800685072024115225295459729338544771199009996418730784890946884162718390636725581564758111294913538321589249311359785218811418058051081289406117937612683631782555543405135194972461386576832333285647649718833366124491881693962242541317122802815211921948212367421078609571659533603935060524161929256330846049257876926422845704463955536811484621550737468191932549461448722121355094037057080979886903154624969244037896797525847085586206631362867659500690409891584153760104565881536742212773590627029045478317996970973125305124482998304919304913457337816981429894098109588348104554735917708651941872622418296705569695937361350160987787448208149412478847996382390528071167761543595630007280609478128726637678112030306551988205780702777539021244555955692472164420218635224494262880016916912514690329733143328261387696951942159238954286929817381397817713882408969018298418503899256963510180511123550844606590152925332849260008399588484234108855725881243753359349479614798304151316336868527698701773930733604581745929437001949546522458290427065172278380909440657989404001901684880688427669502615564459046219143366453047028265882424968643131232792774837956896210166172962360900097952692553127191063496339992440966586280898381291802510456507635448077959169938543205432149885513385074014120984174641082949628707522014207690249039344651765328820786037999573718962775322246977399994403033130804302157845512172455402672248702458529299103494076967741879347201342745105870908533725022548797700528505595704803675464482657820209733657407625994190201136194230459250475655961204845640197673519712763295855801471288890199060503528999985474489153658391012329436755100640845582393052614847141439910683407464505315371058422320481062578103562385269705254044528756924949289882647042634493500144307951398396065751888401718482065550475131379972386930918210375388024241038587836444951550394697207021440036164370533682272941593359526767826350842573179371391300753629311360197055047174150183786865529427202574668679104252790042617114740400238088801129061941216179758772553289881188919210450982831243503583308474016142271400984116528033234424165902400501025710051557687891987932864180786934424448179786317636682527246335399815901521813466922306670460149389768086636131351174467018126581319955725385732294469844438958634642816994454139183170430552104642863486335246500698167809206686337832477106555299314353230674929646714516833982471577749302150008383813090048160635517071765221268469954276707825822068918902918945276667516153358763912596879387657727500975581898575302137946718211439532171763948357132807899801292028582098385311211440477472544532910337239500200512094788306611482985021347944551356502672253250479369579599485862568601672691826230893410744956094562288526491368145595120500509528285989498659280441139304265731530789762514975646986995846179411855544808806082934436673020870349598817317763200315407316547761779067213311823128984050061389824228395744727560786843473683200079372540245803516338216461477147579109830019601080653059196226961393189180331895636566454091056542782327162961130765348203461763321941926091487848757627836346878269429967576856407230245813514089501818514515617597643339277362295181999196807906918288647624418043445083292150763181673394486450617757094647277738178455757821850304968811963874164799007148854511760085817210103751259946804904538517440320487408964825211769907417559915264042614063809775230061783063996912896351867698160073832781451351359593568943554919131404857737976672702831218418562333762592704805771366532452102391101203179311814652427907438936144899256007613587490968024715178626111967045802616928886247763245623262149319217001304760359178483145650671408077171494535198845156160390574496907111445256988825081253873573747754964987056012159126830040801125291043639751287362054280778722310497064943181981828276811384158422623512409594381215113587124017801545618018600921433199700518021133243365679462590465977444845758071744805638001805581245015643339091729609571385077977312721178265937782227573215756092901805565768168970997120214798643366091848447823674769493183691468110118571006237772692627583556359901856497134808242920908219072627781666955493611159179011740071689093312276733030838845099640739548457983814517298982593175944186010592631631827786029909150034535306320618644415046945021472183436089334848945125065564608434351524088567600721748816923940439209394195624346722089740458857170173522229494657305827333512062934684527611201843219233450418011462599958734651573062645767320246822571875724220486263196185214968405819818952722515688436335342956713307859002797576080821558678052397278537069331405195345877982509914329207165771326629126952769941430931795375076708880790413286406693911232919159347416441715178214826056858906753556734056288543689682249757958595745821141574221598115993970256499396280581089610510573863668555369082452682349565140998235111605052556804993596118201331637397307743043540021089756575701179545921857000995464503803370724960055830887446757333372048564787842170070995621907589075920497438013660495112709545781691244148350199018887122667853873324222222330832862660205101573058442489740525110059540008135871838570885128748383882088447457006277405642569253398624191521595274618389232527092611125082823146498813699671663305315676445497364694543113482736295240596807715054124599486918110521228462266409816349775756544395911583090022971594530084555656518502220764967331278424621767069304414525378382547115614021858400316574642995066386886823627205810725192192821288969599995458462093846569425054835839275594482962816614220191523944952128020842734053637950231646477388257803788232613774630624374893761083621291217267079361731740853352130180898714365421526951839345662808635104782769499153003089772409608866222813480814469472416100822205230369177167057476474818042474515432650631884994038675460584952466011919932710539298588442870065044246551336166984602358958678300358440220350769405917679721653498779867388036411977845367595065228442402250185548151996492350606486846427619270568937260337430909960153481867129607571950733469030710388538271885762480081135791983145866693430048028239281901597757290567541174834492900067090961936995942453182349488452764749131652587329618382686250335873875670937877790519293382750568410451783754437398593696254383443177259232024138531560910892623947063590384925154324700347938800765204301709462325466634987821422181870968694383822107915447180073825378690758821387341166293154868508841365342994971824496946000146137672552689522673391706235781656141014198158675026645820331230836345489277666777198461390318346787077515503852472434449825108531316203285943483357346433477957744743424031310922820231635466309349397193089787168232432506849613546842271379359947579740043037681964744660252658607512044687424451704006735672435577354492869083308951369613610294160733539183718972278699729714871966238032863596415721899909806371091098405742369003798277608616829015722465993117176956403139831677914817227340219600321143359030301893671935561437531642388969267166845684884882919250533934565811978848567574084591245257908082138516401976930392344215576012374682872478548721590278220932768411059577335877848559996786905875707256554270504230001128398661286667208781905269233884063589520315180271398324431854589285328476433899468814197220393860115520742058224923305623220815448580082045165871995648264928765698571912865717984230673896161477407286212196061249894732808574047290693814692530399817750596786902726670174442358943234014999940937925726589225921126249226376138259126322568079437489783260863393371013485557041100187824812558733134891075823271711399128039089617695012026532417266554774239765994382286399337901997016990124011459321988270567246302901356582496936312990675279320393812736866092325237369301450196183654176874011644869449287229732068843930571485553983094696505603494876108098146668197647522619377332601052130508490028632081177463212747572698333596867510654450067464113502014433350663101209682813296090810143215616760336726158021384195730158763457157882853230891319878404850611418360577787940638511122657045260509497803926311287201529869321778568507035675768478500672820633346364808767505724345303282964432006614388550636236715632925499221924665531096464611951109238877951617037488119239353669900061467624852325348409579902752881274965157598828536474499247280059078657136781923292934331706342598760882393299714979761297627606928396880625678446932054263844103487295724597122902634559822226883238469572891329015677894666485086926981292622329851327430135427132508383967994411076335392959716770389238421977454074945458149268363953939729483151675930716365463320356110053088943187667484030463297491936464386845061260152818276836665930771068548731132094367873556795336432052581320690173893348578645081242253972350598469979209684157349847393133137648992405297477719644022470228549882572305484120183626739183729285569749547406865823917749841198132233774607010937152317667406926478936991700704297461475924079224457021146652830003537404116712881950946140864852672129848581878335789431290147358643416587732169013098483288156523927918158429952110911094533034706115386909959995400064419986011146724892996621604882569289330108232208771984866659770596647869067046288430438613519319931828011952565048472100310146025847234553726616884738863264154646594198828372158916051588489261283410265949873320919122256403544284635543963515187827649112968747730804636394967290942031078685909597285581534349127457500229854612839714937326938581049482891569336989903974442081567640501084552208474421203202121504484941415798584382723727351161271404815169685954828355710807198435181183420907010839136151381421189533618768936141430249417092915316802516844998412339282135707752131271028845915487948128002745046986678003453294713676978823847322725443365138817448022286549662960559877071176069054730149092249981759602281084042198618025685541452122495583247600729694184362246718162553512523133118577797213696552636298542835480322797613092565140728992832047065771135322049137504459973161594687599227589438453377013434748530571808854474419201677583657808283216332128868116554259077780886955010606606000727009571738649853973945565221851065300143381660015550192203571493999992023198895675241035513930877674484332876634820727398226409707166237623638275747908551639968240511225879838154655821962078913670722697162893744249517770144681529452975977679565333977806995041162733376186264222153508517321513890153469775915286470616339736080648716372951742456247711965638869400505434302587103689790233334222081251839029464302182193380695625810740889494314959092495661700310459728590906571414725986862129778505874905116531646478451828378920684852637530655947587009208301076611858366357857575218202297786083236081320105837675829604087073744628448440643009239371247698168029144765417136587010862621499012314650301466188320909136649204478683143482254918068796060977573535509849724576291687537054557197096375904673181936207819267195577237805201680877512890460140745831493603119929254886006076724997245042280283901541964912631131273414869888234399990821885507535672056102848409165047040346880903097082251406843725344499218066844090578616301738582451029324652314870319626929752133198026503599008840530898944568648902168860514902367527872327051071169309909472824880208931659344693241966376838853611003124819782482280421487664996432943350928761838797484407312361264885277203029778344282118768751056466656807470496723958698154704850931771543727473476922254403994806467107558773552396856191799531934941656920538033046733652704000160578989977969658862506160730012923266350853374101895246186768462558963048457881681296790485767108517050057812054110686064723583481551668524296794380730611667176490760167397604974266147176248221899310839625981773150648464329861686328399414838840439646890783940949267629345203526307017230831360662279634159581222607830939679309206476707198017419662338503331785039281448144050444236643189328153888308462838333539010231345254475653177626935733452414482395745592410505139493734923224568871813029397249149287457461319685152824260908373198775177512591335577538982387633792228359749968704431058509693646941375036070827219126758654524181157249663700152516611745639327548237045162393059427050338889482156236041087619378854002884218514912105116818090205633549843847688726547010226499429268875854270343812020915660061204113920920614575252227004577354939331769662824743640783670610758020888117110976423285114401506579985543607965835198644905239860652102855039523014036805393081190396111253272701586067820959113810139638369130894127575606339481864743370279120433262026188146269421068556689672110027164366502304259301498519868823729823878535694422461776343941129357718498438539282497227573043380081165926142303166282310320536997997399266383675915506248298610850515910607542437588729527291038242642390863072063521845710207660403453003854718479088989632551750681147269974286475963393282541026990923675080908131385492827149571018778072897686211856016277307662672805137662809071712499866734966456167669446892537109246114984140335423107378364776338599542069965988394728550111394268453319151877100733722047294214692808696007210983811951779584613708207756852720177609892373579391538118978960499914261098012572957015838457580037625965131220446003929201026989954679149123754058738058096474950840477672806428833873440689941391442862699725723644191426951058786887819294026310124576513898387294683416504024176582309103401272345997865252556555890649476865411156146308667954782357774505868592604653467204065312510011524006556329618979834039925633431728001235556227388031520302959800321106123527232420811267101101426581534035038205807743512557920172153509633707276711481163708583538122705241031944099416450245749865193229388528288749761084732658541998472268211105502067194885484406906972092784834640445055352812210113187010432889229354414164126496134094944966604647701046047851667649427040039449645843223914132239555504789551363023058065771750164089691851369092383035038431924092868437903058612234593553343043434061616164237848467414338512715861680060925816484495368958288174392195198827226445313275577386785450019945794410840066957847232356716050789942666414575139990047491684141331744501991302776997825527844119428671776153717424282555925463909261241326419265983136178907889703819941609534127277848338395748011605233240245923928623458041122678656174405326890481744005854132436405122087470896825254011219142707416468668495956754210775983317677647358595368781987666272144727721761700159933388114526505605460646725580937841177443820612287943106424112818554215434169828531525801482853164924163810168289838493870049048616346808809042181792690802400186159214986525848629221958808430286347604133111476308151966460624878529458151288551776286516484319461189588162439126095512446853580264449485155067864184882836908758966300695313986243356316135818748953637961304197034175157467876235456093802349992392580707231528528699162018214702700593643744119770020227198854072880596988971421475296552081888285424179264831963346725842101292204072660294633799877155358784927669404100955877074750741077962022430645444113336883321991404872733085518553161579411246079082333707301918243171586797209524323123443955514243493381016250416592385654223591041030875941476619861453816053861506804995079844441649719408982362410241786082581827035704391808894083793202975021340304708499780974009847783258753325800685700302247077850100897956176150723496513545837315931349109610969156788712406166848630631112219384380906653268804416887762983512100543990395387994379013168139197291377832719782159757954365142874221375766004425473989789653033696548582591523718327147787286965583017329596973963791348577505345486857418751735672996519025570678239874101234807690625725586236754708862052415682188357061226939555950288731227401859747439606849933436484075814822826450738648250221255375237270085171097188261627477061243252708339736663198952895708466728362306047176368557102823260374941540942916314527174742189332244052701149203798852481933988438935002602333327593598402623437348857893977441753770937501375769014396432918511521377630034601013627827564099377481148986744625675293308586777868295432379975048829565923573162344148186954333001593501582705540432208471347415904224712885846363892291582594195005884038485000775021886379002509958152610795352842571685173767876620504916723338511421323695729549677584842055947008303466216810768950270972087056440843249533855188583351968122363719903695172953762754661336012045316530315847246638423629318422905452776823164434011079795353154776696431345493539497947683818550450747038266849258681943256214980840737966037996438449049281099582154079818919636883429506426535226670814535645646907559981341706751061726289120788950433294072322986604865241115394963425832537607432658589334404789764378819897210215664099971338267058006165444860557296512052198371852173949854724034002141795744692817572889162238379174616790585709714218574124792995573473483450784036385078008526487509222202802076578009472193026225003492031256789674751433546871329602619012727154002232320109708709796218696608143225420804705449439914875482285311210904599260176549977036697095946880222648003163664514230187695927379131065213667795220531573634135587777801729476172125096803396624736425527456816138026065617988248595213267723988092739208261605673303602666017735818852601355588622306529180550324715082528062967186774946164535939228237983423958906472102749575532198577192204837399961972409577180861719476389289254171052658904024912371045072444388726864938784889423009938403261626659868329628343181813792132696661428017681337773352705850434785915988830902600665487826445434622798488609802351261543874080936423803847683936564664310470998298398063512949056361776443818210744415058022870368357779333769624648811078897818311818027368326274706243541357773445184520080198336990141949276702376175225606321523204293596705651977535777405038219891478992806738503268316386788269064381741071385704770661587345450175614684336335689662065234151942384644882783083689217875664088977963210516174285919506885818967249355697662048358123480083598989804814451272173694530293709995161751562216099732552692030486511911482842861920681757665573028112499394002104548767377021005885882271273147946753614723913596531851147182954445326311306745388921807218116699640538101354604167333118897937388945878002322851144874764568274777311451853487640021777650878288023068630707248043757731841248738191463115689650509591156358598482256579096341795143822648591893809261881399439748405369193139976666793464597652430256788885246118456586401976001378562776293851576547659375345609718808238774418591815703018351931622930420997287501545109559943272360598964945526589833848128330985012449504953644884507143482264514083196761046391516844471739297541579492205264421931684566347145175279845502645684223435127621734291333195012786583343716902831390963141303113851738689811621267932998877671694663535065767271749612631516056583742132958435882228064601456134918780601605967546677695672818258153469798416944132385158982777004377699746217850950388658894682406688533068143173358683246031970265351478783811595411786456606899007965468100174480141712775160239245607906604354035858926453793077312078998297110514877695596027986882721638839405309068018645469999042621341347098372308386751337391535966734891492181401572455977251385073890780426190330007636307129164109406174884532063734734888464325046004577244251948971214859367117307382061385309390816087681505121256771044024597498143368057992318029883507136381865856990060038266062471500839454098867139998296369414428378559349415242318263743538469153043085556997769024463716300306653351172237918829350018959360313879317100000990326469393211760678415250367885920736629751391440261158982705501674360139393901383288128844470580873831004890653368668093702151509772972043646972129974769414309322460281245294696242217183477411709033251436806814730067198215798568251302585173989427345418596085888512246342658429516277550489732164224928421265203260485600011048579556728609120798431590472697618841715518509521835644824594729383599974229215997038054645311826781082116369154237010984498406809958547325478504314156707025095475682420242410844333769239288935593801632495757455364922360446992809322470811499886792699435124228698713750027551789804562676410321634667286391604896358240562832077612587744956078752088532228807882392881114534663753295924522896907751127617973513404728785751167857276006160180297970002008641844148557810662174272327169770848073799004613573052600968606275221589062815452442512344001229971348672580165393712721838806089471895434530871551746230338569506823139516031289223591874862192671437074123199832109891665346929680692913876940190101142430242208210476185464170565456459441130925790179220280469073530455185476634824473059473235027449373649282865839188959477329266966236997026784852734061147490483059505078487997621148154851892800588408372689978480907624872640346568048353193962730987374344242510961163854909781504954709873543290741278378581571200151525023014665691038617061349909112786895527065428358158700234927457823877161439541906718780014103577213380299634410834393714764460694240121383302810796633490159941164073253323349915472810556191779182802164845905961253913429562336048881464066646897728855716989589362120283489839575612664286565577771741783656805836652537062759239506521682508485765835247448701002132297622519828471491335361321502426688991347991722335221063660261073778801634166026236110166122836992920856862916871313286671637561945993671605873652879654227595283217346355944173697636132187602560716233553608947500136200871107499648518962276954036126981107581590522484316642103415425885169321631209946138484721192865327182332986934569643050735170472538914355487860388926846188777639365358894804820397900327230235025650888985217160170321831535218305095607252159547823052371424944239890958654281729420649261261569050501423871567595850849746033793989764541456965315284782064574721166243669046828709690563452436232237052026660291858525440205270573374337010616140959446777473920722970579150554479360892484545172184830262880560929052524562418601545897426863969362600975977243742186860264640658074225702523074094050563568827844260195167390543666844101935185084589163043350052918357367977682102625009623132101465453721206296843271105832836666173153959869177551101507493619632515665177051950001422643921314046356750419999302114330174772579859010216634028453652472898082487370942840739404266758756967526040440331880189284203594557139773575480106302520337305155059700691171083892055683142027160367031376656179563980362488354792654461860582417437287735059240223170217892725649427805499560304642411441319973231484414984483845927159827623956361287851851469386026490060913378861714873737875459902218500159985502974381230356617036475128853998214569765729281229225807930465119809550699386206500264123728087782509730033186973452334123455190790348351410199033139614348712228036761374092403039495415522649791831021789586718033820686982708718372812149795936429100217302240260554584478033670299295922883075319555559850243729331819035534504649005463201652790434629063078634281107869994984710277717178336834565486489670999980067963423969871711788070077310791823710909277744348489285469878681635905992796544705137478685327496937492255274328515148010483414090557209160030780594634511289085764686774633574976312367183307275669969688728093624793840496059873182377547025064523174556750438189734649317604462260507864665142365437536962386306847834388423861340211659629168807203069230302250974519678292835405633793842566152881102908249894390583430980333754846625345644244084978487438918336458816662707738994433121581449384738068820104515183874918754790285057844135935842112007546150691926207086669166262487714645522444211466917854528047537947550381522616574653332636176972875275696960794601148835417726783273227120177850342088739733633292063295255512926592984034936506702621430129938557106264101267670173322992258107725736811899879691405950899343290314127473302761792686367536580567648083614489944528758555654413538805491933079173480944697429121714569855465391072221774212880387879761730087728608760310538821038214409157953432051639685841585486397559574467727995364470353294853876857177809920097762561442600908312829009545197188195017070200566156518797687782126084348779294118227367992926354028817848122870529054245868181474588234895957282816283663542079360629582043259990930496012942574508976670479125115605384632867080817700610833561191873727068798141710448391899758527257170742995531923448889190443493998023794265509221350123184613747533367034876215913302500367381120124636618014906363813077503988809570757970674516403759369738926167070003533952720510047173378384525489501501257881171333874083744776931919146932003074944482052377111843073256317231046284594848327126565530131755699892777248294009421133376534287649325017444074046012180169751018302642235050808313229615692443604192483633098124718182786096294022371751576287092412681309234982821094984022856670280852063269397188396211136210462993400960707650500689984007365143864449454879442397275742761744555751345550912369496791989423734564228806012590952030130698975005796501012152655499386661229302579854970905315390299542892808029348054291568607011493255811274692691303341018518399895833674243510479455144700573696031853920109520371953690820583186646978622102295389371083652523857191748201792340650955982706725126705171625215580231553384904548583402465847623788540552107654854394447030009089982750604889649032771974522698147990455203193997688262023361904133857812157990703049261669631553589209187105798169415586752761586982516715617642664300158853343551831348888421805116396765356275777581589668411917840965290865157595388601320003113565730985133139765917012184678419818785476772755367184236297380914483219882986039017854541574957188386794775216835519108170112008100024126844137937001291319454959142960262102079816144967594053688653088290182822308625667661807567610185279694779638578681759640512200529185985350130325779366790206848226718939711165478289325543141884430122616344520561711721442488091290335999994550167008321699753855943096383839099063026489997145187949399221615285416171334786329282055357379994646878930079244554696206295427981431192337055748160252786279724673457650694273998685795737695965777670857619359439660815819408806463961336159058062503308578199299900236626264857148173253362379800152176344578094530917718853680701826707362041505220196569363624983098595237278984698813644816743766683764845066210719972432239287947300555498829993432740382597438497037398830311290459621117851831875938226413547992514141029094541178582859445617390194934652418874378497477234868751750054050557095863404460245526046176308051325092559615097744328543496573773823261051491788439937459589536815174546374254308841376619414438708427988658289004533268383506679398482617620116347008071895023097033382014006973099111858491802060973989712845371470817551723521751838681635341333469982068229420032979728926984607193138517007498572217358104374915145893687785371441327534574241633336496737201306900103075135062167537896471457903669925098477220805081860434938890680402260108232149887255847416828065304727486401017289677562602676206926955369165968247367871770466562463351992102379081861533410228961477791065790223340325205187361774528502948501260482687624320208375757792495810836788779577820887123591737622036603029828697631290145942903822409579665970317738099074197912242312466871035931150154597750137919609518935633351067272614097645156194547821125315993245017967269402064108341208816938403116992826970960375232499664567187204372023794775601768527741184146518720758919835508932992664572062508095348863488656367163028647290649615520588894229377164020279767496127653141115834632450160349912040909841861936564042465996089455444607390413883375715719789334674430323601634961716379661058349313574230302834768583386241783639718085878622255091842391381696352191535437381966005557942474944614854396147860264276753144161974007408694279445622204739309494277013878063173866655686480785373751115604773765196080607158393971906334530559704186082557858263450409358996853214644504591391757172993848105976384657159877439967448531766232490557631961744372605657087897567347846154218225794275584841576802179594788599705056497478649729425274173471030844439294027185283905542752694680434777137268212563890885238122193022868448331753672595916621461768631282971144077433888851948101999447105429877893912930348294218100665204306199249514229211725894546140849251871209043305775700430359520355665284632900490704606046922821604803247874088089592964940176398712223280674269379623741563491994739864827039677465662669072530107630876050468131464504168490603532099765774853747371816334375635800427320438307261029692781818303283344769703499435263405814991731195838325108287242863828607602882345561157783914961658380128270035163960762619662661857123799279607878640557608721133243606809757205450571891505934278634964066736324528550905989660756004728580225860994679406786934841222155442506833563834706658756314576152984672507868236410331237748643458992994982097847610549964639364045730426264564816576636859168948667916596301665249066196760667924072449241147514101357419656990252267228568043432610175544269488929837629573571356385063095739998403887638149962053240901480166463469222480636747167041715670509996327826543653020256243492418331482066237084961543641102263232250050064346243801099652866124749013262162456285931897456635310040848868065475035599310456005993407805994678656791324622386192329469576964098755671169244940412977980547142542275862242460087650065634066492678057518752947175949888969054387390252040401219844824205747008931160143461702356049658247275418308924989948678491485192160069162445744908755432869206661255194532044965948863171174839524218264460463260484442458003883125442489005876733503773056569335814751205184621863099582829570226657825404174935678533933478760738044846774582821914926576783649317188781494179058541146993871773979510573688259389574922311555181498985783036548006594780633989039855768978016695106058028866185440472254117687642799033326682815883250461660851678822668758428006417951328017866924048786269421431888825109712921083373241739163920840094250677831626603707698712711333067468520572351556244007859643311734096846982679384586121771014862296386695515773254291187835983185541897801465345122969016055903562429470753781092861219782980001243138191177813791420024217645951848563222876489030480882868348208279654037333672891504282942084892471230591010392123839276852275049358617327657527458466747741210620982777038131893886745699505748045883509157271448430243846744499633423581902263873091275626508050791454812572744232904803932777898183266650756717046836685698031759959441099116750295661778868605404583776028522733451981251186800946068303478992383811772203667181247262362707016883131851131657208147310177670709819411050559758842803794267979136652804320385030331704626324990812888312485509293015068279455917794735035473913984626076073398542445676391853236812899082571931487141860629730178855348721927981793003554858248634541410511762217014814409410395947076294104360332780110946036735242096809137262966329877961761996144669512269684631500585562512379189369974167028736339569715535663043927994684007587103524096638597058863038212984917756292290568573103427634791562138370338497079578823751850285828828126666750061551189884194240440650505031961856862916006890144027361551403031799595735552814912399087006651434214198804010156864778266894834079487826004163336573327797607956473240291495397930429162899135380739740134211925053350518261950987090302289666767543622537587232623427614588742647279070787018409933402139369105088526042259135772223608622613434401901948608452499582017184135631539345021550003616399000470365538573295582487622748941404741937533802295162445619225103338136189998769491996993440784729086142059554277983805041539426972826044214746006440642598633962109901263663471558582373426218805624607839641654176528505093706936869305591159508220827859788112059611084025956378585366451139563104287496889650673788019274650643373914297469993271487680152718670368627384302699631121643798257011722140138227635766534231779918143563149949715857918032057101478585303218907355028942317429536898983939010673788947625003829733287788605964556792634631799690235031350711331990490538775856766839310397244845792627220528756521233963007032954943551950799953287402992732458589649395002506199566880879841436488471999648607808586177097258377069308411058676822595153371865498246809295791655598536956350147285685865257612308877283020034400260850487547124800699274908926835764928398567704794890972709182003605491315710366555762527151637106114792719878366004637985013911448157445297486813073775716226089259676492381494733028330160775909071025602310049942185820952469340113317336168543510374926007386492636401562479986546400200568305910477924994554829991281047974938409995800798058682358996338519862536520508823230509821839608519984141194585067391905174017907430586523893007657278184941910251947050384029173138477252146260958023401831620737211560450000183745902973311910230168977368073174163146255817037274124785236472662361106243419510749712233824845054604078328315994508768893200530543279106152515618522299335932753317038641440451087597261568502091839314336216115354233662963544670485744337010105091813393213897597136985021264767945738934538230405815982779065241306825575824139431262597511069223083835211436584190713607183757023540182059662151744632663375880200927750500894213045387426971543495675672472937452089370261678968860745382002218498639640369079439440053692927405932002898386335476359455534377826661386678261702833240019823063286522693366608270968116839813977240252857221577553063871771311060097319833111719439204156163346929347309562287216648430127757721265290013947618908753615484357628387207243008398636255264151522873064705094303621818251186442425936050462039848953346780655180794686490803738440638512200326908001595600864612962720759412031814307417602395146445471692340572045610849328999524981949091393300044550061431697176471453978205785381330742592291569462774899010249249050256540627975818525761834101986508023676003828749637981934867340645075131917839244672036781880774904027329436006956811809322342481121856804524620957561690671916958100566603322630273969474735903846375054711460809873203871670156410070530169631588075527120789411298575208663371738750650211404348283679874438888682221346384736531320110495756550671158951947723490029277209179501084270006608025033204991517537850160843497461158194238496029540155746578889928127697511950441856455538321324164124806781885725569399510461109486464071072152653399982301368392168154101327076437134296889834649081017146533876877508350974529015143312348003159148299743337695296183271931602835052670874690411526915287581995038611729646785886499270072148649178958902696384196965827400790457152159435980639551871197904559284397926316138489506494779041193766044705002375594951282162114885776742505897212533538818661843483874425870953591717847223739609243897688110424778936043907752806561194584876686770960816520378819450478838383251946522838752880678112436045679414259090050863477594651985152237670785446523841711904093251236753954800074440294464955342010646744646726658610412648427490708933549818015586362659924501297171547299015041508201108992945746805796553638647599139783813648552804031289679551325789094309551200504454361887894376958613928862568620866856842033922477471460360031720040650976689711896855631666681324194186122827545793167320977871436071041235165707811386153429991899388625066360263868851829272341485772972546034447052798887482185762034521557181839675199132550533464470973245729921146836126343696369700449766004449357327104460312956020597581716568764128169174522423944312830787520401062010040568529260072577404972602081514420430565769431034033583200277209057497015507821718240828879454650117159799835148870215228571967771097668251996634507549150413419636969277025655811433823680866059773048105726968997900948860894444386917517163775662326485908125459331865836582144767507993671680440023672404879992068128356571996160162446065573819327794506928686990485506637819633320382413394510374083879148033449559926439208852564424422564535400407391397372325945395352515425789579667562155977010122447494363006471299747006395793119293107275614251146986416795337237031622177757207505858053488704835282996051285989195728736487564697313451138886348064638435139183245713339994618158916708875325890718253910368201430525352114882461183017842256944931330218980547610766350382275616183700926829325582063789177238695011263063409491914163303387701379944781121836457612445304258501850861465609271792488496424442771388850112803351928462371272816879380256033595871559079053126785085092791840251021375191886466553491535542540745244950214952084279219696228755682029523213512927660815255905455096236898716849831009895795535443917899680356960770576674552792880422499025019092584089334796118980083476904488685836593565114689238547483919419662369606716590282701411605364269897442714315843166246595996633355823831391505572454741378456582739922631608637822021100192886306799545941692733667586548498142760054582895348403772520769552449093211662058703164369492923300907449266862392650614176003825944658221688493927218775193772347618648653898923184090277550356390860907126812119516274861886414464550058923807611236540612814920808218180946306546774805214251299260180937080666284275928641313826313683025981452999676147046124137399862691673519269913246819790056355830230352505775768068600034886144009587798731122597235834694046077154488343155797890087221571347630602288451686417796541838254339246345692762371520551353584652257314962338543815509704210078592876644527046685557025162671118519611271247937855909762096887767836959079475904238388150757259886996632086249859130018713730936353836805025063676374598789704138694803106855905573836572859582098927570885123216453888530672442096463816739654844455427808836343784197564914998924145658510746901687288857108805859769330484630120790099195609019306514439938881372781976371116328560601835638836294553076239631341336226501962509758822232162245615807258555986969004494114511305883712784783849733200232324264687616832412390646081784747190780640151301866333858540187566460137368081904749821206813340074234518289480818428513554611368890754301528117323490255447424005025544699836249002562464590846461756886256054540543672915532915926677704682213928369110663417659180394684259174562766833821088133832811090410702993775324897201817085264088746201172521460575272167841677801952931541338828132368107225516942442276746947680275879588533527455552230117312540693619485483669866585049079471814725681373385519929716641786011450243141379017327968108460353809214804863987410837675299754459092047978488080144745285682935051389365815929166833735610969875251886839854292028159621938305156312513011506645504686837384844539048852420558311357171741410769810646582379303873915527682837085666894381647549731273424940676953086282450446222824350271261312403856229963245187108019476789822994277254570048346085729351692366429763636889705645235984131082611531471011597702534852198311679027678999898378076796523237714124017586240293764119951571103649263257800658552814701486190187242289938471849360152130312281973613354156839914930860415044022018597902687315578586619606994637635423680127726376854642958607541510507504034956318320337064984862459652137618718758749707414162283049480080821528521215374638782301317485317384514110320842624043812132535217717157138885005768628913699762713189073429649393545538577752702021118531694175584856437345497273521921717176411121801616127617560698587524015799803862997772574009284906002340502452378285931393385034861591400211893799428411149217222387375160325640566559824688586091514365297523568366333247388993245433902173420015081254473537263679472744632079024237680515942140652525527184207655914764168139448948126173881985540451805310547857265577582766674146015486430894793939009473141879012781146955387129371049185543796699054446164942128168542274057167887434909191348212076827352970241024706027654162067661462061501228737975520178709667930613671315353644589010959206796262588772851313198802245350807462113984238808524163210229956663887594680830772594884911224916944534639633179737613060097480858542160381673567489397361307628018866784613166951136397440458082909021902727564784683400148739839243005582823384672726030315081590738326797568195277306310154484416684522793483787025508398249477291624383363607406014743839762320971877316465755735490523986280372801773816190942581200329540169373650547311667120615736282652561957404657681567090863620291548173009087908490940808639705553312685794580279140843940861008653756780401921973178072817333852980091253048229620940307727907643153488953200544649903739569886735704289554863602241077628256310193213789222266787714874915197647785912324348264130603100061701271866008413106820684252471066204786055397697241469862758463763587710178763252783120576971768043924937594224472114011547946200622392068530831586364849043977763206254648666584701014573875727190094511168341704308405943655320200136949884620423014135043143896241599128568016784142719870302395752156854975660550242410606815093941160807858371216361949173026366907498319711957884586021359690213183545429628655599510345077425731678527808720965825140416146704832623962942197615548631998429162214254808139795613585212230417378816165428583436803439113348826657234416566697491198615675907587838408950547935777939296505975858409230726522894884503084303234628394342528449480911284214208398793237139639081427089488997656142177683825276046043466321223623107818829991320312519160788228004881669487123641900659502861188677638767365229163672325092671532537828605886793308515416464400406236051760753047157936489275885004396647942627537246347854142945225755628627378001716217533765418282973360530017202223837349569818058982532091276091099271116192960620315585073607251168405015202317322681588822189625875803080981217817053753217502325005723951355243585513651750057966253356002936467036476897997774088513406867323521085542820967336259103988967302011850292335693995282616249786832124962620827618736390340567002304576823797349819368883734861931053868850929415583126375941914323565770346004439613752672437563838105799718984947226851507897990427953961348431175548593233464392157663649835233890607654997981706872994945542796528856025998619992859679403179619270380310044627148093171724700983836268539252674491073844916977342928862501233983052232727548407316238082621770502806367116989632171797626164673239074078565689453696324357203608571878817374137666495475749791504511318778719563128713711715532555328253592285841667623275020578999631963668562195681551590949239451199064936250620722484093806699043933836545533082341701942469351454437544810667456831031454946857399760355777780798534641771281542352076197102615146536767097528281812133741294925388225629337907192474145683984237439050894595618447209257129386247213257416960279253687236331878110116993492103355278385567133547132228607950318970771825484584824239210545632410672084293250929261905697752694728911035728866045125611467933055187299785332581793903795409553825695386658465735355198972917649430281735562444426441471381965576413339289965330651898114809577122739815830978910605234396230784801463945443270248338376417730848508756349504899924579262208594501245241641466917471473804000871317205606419898731442832506486491381164769010518464067019071451953283603321209037050740894463421959024500039793524990481380985621750094649460113950079600880732999636652478358727038414871929332648893080170422212826034730430928621409227960209177388014391721142520434364908047042157347937159048165858380536362312967327666097133663896579364021846887636361829349449800924663557736823850036969414428669145517496689889533749264919459629885452508203585047693330968755675478008334774488410308732564409084578710712974682929570391715523542099045066915978941842567327964906757314256355821652213783792247748954657679714607712020262544497531383577006597480134991266495367386159796584500658576324624291736123670958120828885695162799504905054496636127987359487695857541844228363590269413201088442639405751234907430695618462224610377892513061456548639253306122932692836943164686802551049740773328168409716349479229330630495482373279043905272463105131107393409904874438794747361743808221574007435844124513436003216057746903511329087359468378095262401920036753160178282689433626462579536148133008333216370409859156553643514595775430405150265839866080413620770594723869017350801370080124424594134109238300533734411561798863904420876991331908993609931351554653545404622513167347898355531656899241144709520332043509916697535031199889906024350679914051859770099796223558798308295133240790440470851474805712951523148639546637381679817061021012224227200140172800864683618527732518157200763502066371879567517749114648718277711568534028669437090226197281854982770159133683222071751685046718174823922970415813925033306758636673517979089720948723256019678586395117055427145937261430826153817715100737625981056413072594366913664954516119733807706139949923845854759634200071499897002941112373144074815938628103201167239412784108636297000577326019044580650162245807927654343546367257358187376684764312197849529007538917071060862423908306829693710732285542157783052567706253904443263470046200641367344100551374813824533840950827875622538900159264259984916165146528500286252675112303654280758494938218265839130062760783373192830603239444251265342265826679487161372951430355712552546091196407096847577675903187801441200695434900934401489260972870947350470861211850102747133366375444089395070977930435151195363319351412080210622092293837598440431448595654138297635100005342576445501047944721270603245954613647899570577117217803409228272053101234102729812216323955512619683106734854642071374269670431461981530365249649114824013539879929667729987073383479360381113891517639478732735546937953817949039891338061443810372726301583927827635692218648709093404057031190930778079769907737451088607063084733943181646110032068265374373952460322209975552530130163645142480330778840833496444779972991901890494945179025989656616605500039876261500699191581176313396019717172353143444579628493424465346331541376420897695712290942830229041395540368311598672246506925766444074648101387483093628518859778368449196707429419740127343257654957642247603108323091975847078038330886436252790736405368164252756557337433297392542535355767501675049644170176690743272330438679140648377281571088474210403984521786313071707827052179598941507718736415333855853287711589765966571010757459558477327336317806890456966486545542758540646222165966615626155312379648791213826550351884407190806670565709270953266876305494913377002912841676705612044450771999518298896766290320657513771708050892486011081188820969960788265642500182241443237183698222910986369300687393298106807786332064363982017442755200964356759341515709869473101114920870896276718822820552793791023281141164001726158053785250694896343956253506625283830021375767195538795922282547388179085075653188481785424401554664099840403779246442106982599005230653327960329505835664493798649710529489162221008090802934569918424646204045072244931120625415300937763929789547908241135274165855335106788355721777216500087688052673102337393072647459313163025248488106328448976475573608043463276648422917225141135426300338179615036072586564274471619694208909465731399904339247472412955993453595586524743038193527449104072379778645320293546753318176713407207767273611655874957478341185435418546655773123846697339054349842397930115332503471722116006260547267549365856453414174478994224973332263145290222608235082400068607714988915982883695539491614055103041888843057052313995369547143883283577854787494860800809865943638537144553641014627453095625221741962008005447957953938718170610940054364111708366102898740961733025356470759527552531783670729931116736113909738118753329416992875266526630508199651511529722068497398219539072269675912137477198381075363252910289666538351795120108552952912966704634248114507903739534638741059131129142919455141439007105468155966026898078978789213114022769883389942922080799483206319245820667747655709045392700759472189970629156258644103323462161355675988385169881030008270127835752432258599877399107271089969951917387294969072244544712103405583699691569740597413548023139848587041554787771569385633238970534993512253042724083810948497342775457935220708018775300507341505362827923923843469284886778227815214771232361767278981551869117438646894387608595125710874064034569811884803000230626060190792902183190674832634878765759860602512157428575839475445870182308577636411837274833343965049809015357348255645899660299326597049086906847775240194143061257467516154432048125598813790024995291177799840231305858202769055764526917419782396894986480324009256750855079571209264267365431326832842742539387445773968690131281488149730983598356570808471290772602236086492804444603481497127912151528038821070201211593074737081306269365320945847502749042244173108262117196696969061576138668817033842644911024990430604063825926295450644259134552786103633600448983061025046616613805549995128189627531536300066292910038227758086775956872456727786173226022295595257943011000195321055341861405565122677769908544519593823681738123993014162932589602725987142289195338903812621003260156852808282505863439557667390022065771402767615534855339233403018734692101752266442462347049211480039346153695291559730768596464340877399083722984005769318700233760191409409443717152820890440166480386889977292067183012435724726683304610105799231568116673983563784912813491991304921541445673690000003072493998643558908833727740955755937885925529615063455485993592573422960705927332514278666237924448844507317410299407504736668320003090726267768857260633795133289100493572750123818061871557721608708745221603086210846981269715309930837726218497223151265922591288560339944032116994184133175246122412219090953589603500276965568464413287711763531118697048354260866774756089431338653038038639958452638869593738187065111754328930013295633627455007928956792390044455447192789056645071068416470061941160738193156465724188249081645626115466408168559216865521279453101780024821184452772193983382993643583407394116552593629996992199358773727105662941881528204767848410345232926661997047510220141352860166875196340687304699802599009020741220247696202818273800262959917502540241250213580250372679998436003252127375064061387149366742886821953670335665584304757252467978233817129064980199151086510854046037241117037560531244433102329620305499429757687895715004762126027545934856429581908687042295152034867257116898135213204376130414362000555080559160408497641526042475387629934628653876705073217155595327203310349087312278742239475283631927475645721005424001512777668586480846266417356947173725070039341473577751296943663263834468323004829800195845803299543075403865272457200437011332358713864010358006317477836829454338668249672143341971628112070096693516230557604199159512138552780286354891002698877520619054545349097369846846453719352250700488737022325128807806530964528154731288667170060784703786926419193691694532040198354109053538619476532907421338652991063666867606789727168669653522066550599047556868825861287412531483387534334439951937763298421580664580472355098322001944143262984045271130580744513346076977088453389158846196763590489689691645661821438138414334102005599299013005095330419363083831202460455205472902549879322350032981121267797318075642859805915279156643777213291057270623652045160236100099688356554222244918583262959549040714382945974762785731642969575023430564971191931518984137587715667399513997761855956311231992300664359908336611251188128767155388016579346687391217960313439378583792667863542496231705654654766577829835108275477996118629098254494761175792071665697711275511200621814143303330361862533242179592479803357410307518881537109261303609503481188209538472173134038960732530681413349503576383008028644124990301132633254243031978248090926269923511221850979889026950591766999517546610184142365417786821309116599560629282825452703390311470346824550177076669136041740647062875065672282662454775759283341277760284579347367994189373264671619033713677668124376612845259163556711135128796967637123668264692369896105981223010097145846236413636695544752783131872686627098281002768769674481959600208752798030636647288828034891107825868848568778911322092203131133319246332267034443563390048409930257756270998916466601944746422148259218947308402793714577375205210251690814330725663240707594809230800370109954318264172819619955092842040771688467415434510539366092392923190094916240052737348696208506922851831931108584879599006897876347519682630922937897686692493471514541569417172057029540250171792174780074315393092680973518755162939806113510155665052576118355290412176530681954664038473039307478810366391588768199370600694536684378161517649071525203209988475598636688449400569202805321032462171247912118668137035119534875164262646998577305623110298649315088147584511847077238473296379687860652249158604489348439807818258359585430512142152159517823739306686581347571219004804823852080091985179906314220095659129456588037782011122339054482764796790817910811001231456179618899913449147958420065288846303188377503666226911745219484736813277875281931232197419585236878192452021364085944008380226605471992444921283511523142603414612947186739004075136454888313561665780307598146956545581304760874420469927387447733378836343442753757517194157568464436811883354627020389621397964510144324627075450451030100377111386616040440061310055189686504834102216395429504015901623195282168692013041847604139359407564822729717102290534376721211286946714897231639339351006819365990147247515300487456763804135281082356873376058148852834107306098021456603194440379867307802700366017950566805796320889270661692620653609720376690711809482877948797614285900793507166821333200071466295779509655791770329200090417715545230927411775507250229096172372034235914735712677644518061005412158364882390604951353097638747510394712668196113673050885683110637662947736506478132370416814330482469777067717911987476556481752655186592881357540339649556416841837152890269855893163950989593911883261306726387077595682415293047617879314895040990884293554620751264629120888579587820098441582421944237371270559414584044226070570986717852540904377369831388261796015519953476874333062574765964875199858907033633144862177204908649003095505649436993078572155643101492197258741025169826704830373963446051389668048101661015665175762787014178421182671663734939923838391234463824189477836517679806430262141483207002097111217013010363203617807788165029047082680582890596146779631428088717587411964258123730067094309000373948557885005938078450440913509538890771495893069363443004354578411852642772062506356786009511402028571702991978562209030904475077904793841204078355416654046710143679024296479044202864706716554588022014962481879729110321342289696303116593102779932205491050052436420400477845310115193339353695756110191970374014300798812703906799161550272023767756563404545335841497468633754399053395897460864356516708334578472667760155750982384527624219456191748458923707724503832371160444652133707929637145041884223905152316708500069815121870893951908825199443128815547870958444544183218058377165866429210747824040918815713640783534260921776010753434761429568457457947763693411281305185546161318314311681077788115739016974531683089616880070404585178453975565604294054532943654263736635451842725632397040157722536990961535990332530365898170767752126025152559096447360600675734702724337955199737190013498108208199991286826158250613836055442004557163369557713669076999595758343835400643981470438292575509806778054322375306785053649080900216470364698851356193118995583202279633462398159438303576555790303998854846603645137706830958786890784862360706091275411495449243396594791213549234314334041457685857588484647536770022766604699196151337232083432240790057704865483177017329335576251815992995888208023142761222569864836788651222463820809965920014488912173692416255365994463888603610774539419509936409181474495025443877819333997762139950669169429677208556249954065899001573190130252449131311982290516186234785009262247494903372550561982598640578154164311441329075407685989753440649197116677855924796484111628780675942889480036229536748116837866817844666008037651829438505777279666449396799249413522457332070146272091585401395738191616395846600405303328048918083089103975310219821551187182110385976544182645181572994861547671612361660736218796731130923488411584774479739116282878123154823355986614469819252952647047254508417170260185665196301864642999704349245552076237351562245160396177902295831519326754652247208373721816845150091455387679865413137627514425034702389451327919189624947089758515273161730605272831234087830948495185506082124702949315812054449727466968622292652572323393968367131289042013390566594893611938519256513938048309556970780308505697782396140855057873941258526353977391698364675019020851819563895812337097312231846159628510418323383259154504285652974666647245048513185385493031591503945512625705567366164556757258704170709139397221646076672087876720567329039790903543443470299290537618466199857351601906501684713131364122928386811560610039643387132493059676973144950011045429256249567963659266849110055066110575613496220287043821924371401383955264455295957380491512754010015797575403513232656430619791131465637631040707380077491529582909830308654408665618996918400994570630782989783275356148200080485009214903153948049970871250920827237212714616612520080056101429455308836317891289886256822956428288795733462178144650470166848834395611725617443711555516754139108636579636173697925539096635773100805939683156938114752488831707168570942949969144325037355223295497242922310704994725264515632843505456920770608866171008986432177189810312986496096485602000957102366798863386729286163844805609279903196879586936961911275747698701701319401365506370707556472855890260218994300973117117355005346010524597622349741846122314846661153545489291857032095780620340184359915966084403175256344946122279129058784921541472146147085883686757517905438408245042157235205206890598816190682310472534531834498507305294275565790945557007263153216926353867565580427286205970399732041528297270215547726583102231933920022448753969119186360946116274092420851855226094870777324408674531375290469498163756698853124407697429024994924655869730844252881647345141792048242470935894165386458897307360324779646591072609978166149292300956724958089866486891706608971527245800186584425527230974283717636639573784894308516308291610249959224990098081053407932503032164159867742978266184111297390150930053370644167045154851597820953367603206808435808166328468473507635077581651741780683451491250918588022816970633019724885894410839115283492097177021294001343546938827455753220362080288108054720452289623277233425294733465421679963599589828216960090278491234937158124427092343926849633270829967558599840606265708655031780116624377472865282076729312183543622003397856051917181384342303956274593335169152372807193219427306677644625478332833917560910156012605018053219435299982161880745284563803908223646362310427479178599383934082899708942499596814399283073092017673187956124160507385149795477616415908208697370299141479475241818368758695084066127627309265612306378641610073707037388452634886883435218877868016836509959534459455808145724576817988775588130014236689380574638193714899468700306890446439741196281655192933164817421651105833555521475542220224375848380476434839435651408647371292110626579569599695716256356234238614278052652916765660211184944417156306738559103235940575140286494862355844533544984127388274672299996685886436511299271531112501264336143193086609160655541612535745599909582216380718146576198917620236535057585962858327604118386608702342991589230380012903461467076891647641117400270758823973481218186805944525582883864705182983496450836233522895027050322527604399103523017017751059345079457474467446716543469295194864447595210132301693935229343272952413140394902513317830211462921984014221619290856033345252138499614026611308149318912032117557519985242785303943711964835485228620440360950388983671094356350705900440806822261120255847255939542688281242001670255621285662652110585217488333747715766067290586333150408793623358644343787252501870159996995998323846182146205224060882254510336253375889602707771320719889341677055686634040954609406148932778079128928741355234379460707763283521444272062959844171244602445147824612793017752099827199005842022272588321477651916707245010921110517530022425505138431833314220704538566895407453114101634689565988705792069653513553988039240297953207485773551872623135732410164221494006488509269194702174443222850508160074327390375754111470746867107888029290066273105554935004987100149455691631688135012576079552004345102120918967203800591702292750690010070330965203126871190754471423794576071615484787281924963463035071715448690170605867713161372041362958148531624973261839698558117724471452515317574370633722728278677932483849138057145347040020281779897192903718195732200157203243778669251821094054442233400535196280762445692249344571018624111143521361947130873151472719013283705243008356367849479721656720350228151227587798868554008187184932559875332105935927584389324740966212880831109003237547028328577681846821218846095807235078942696972408106053366287543373878433757372620541027408450141117466235980181575453076920745011716624977378251684501311163085912667824362749021225794472252173383008126516038300325991321936843580589529919303846382172871646146994620257690680310506002695823252368981134252746883119586773229607762062173904966801475146398337902570620478498664367049075714635344949701930580227742840277606896795266603213351171796896549792329353084762661263006155700240830427203052024997032664931462482486488093945602802133806919340068517769389129480506705078707899734484550521633292462670011709747352134703229436846643900219692712395277388208458735333609663535397850253811429369135107659235105465650469332613412880164731033790105497239764365516992752081253727729010253015430266269832025612875564775250156875188324427313398856642417414026728465274191217183196732202083313218001015731348293328348933914767268645962679266826741310623932830655983967126785855750459254085866388135375269964867974416282794728712691426423751158833430491689773906019056591077504516703098681893128431091232758500897137525312212905803923295055569014296912787698215772069620164945154173282019886261647089831888358600032598571131472906383931375761401289601648916231456689239279692703104944186034734278636276904399031289757187025542728406414749513099889060544445379901302343669225060975171664743257902920527582213820884526449839658501121484184618607437588754583100628941200542531250006992908463771779886561347095773619198607144913348591538546088975936803297488774418220890601822823739809111519223396542030787353354929276002845197453511416715431840687979550589930240052376886146913760089133759549241217150383624636376699501009621364657789796148184159572246079441188153219715687692747231548289987761118462053901984590682294833986982811535566469558325460251817131766594245425236526124593586988811296929618199251524738444481189977457337838388866487417202169632276823331918395012416349603575039099545136178390515319114250464613371711842314651068228254584023712560365083555305414404081578460177229555220082611284282722819468318195301210220808767327425933476272865522074700275102615912409185602541406572722274339752630507006321720890062030534697563058987452557094847335478962450601352081955279907863291385400398043716879199462678244674016098206579801689694427817200317301277943880800036410010292644234899360114375641280917692394608973254380369938965810758226946671025761281461268137085150588548829136157189969126565887280076086750836368682635533408144500834556152979736438555840400120771735960746412472569048811289639862358153448936275139160499191660216676854962913953076810171196328663108227566013644335907887358290490432818230667952217650788136216924786782600724444954837761434510240272655475664249217377625428570185737798916564493008926902634123797396568555758131217895780764011813663990925594101298432460214326049327712608584968044428195795713467685439990136516204185973072953492013672063967348158733462289255739201112273535309985693359747715481676763701197430763909113671514441559274656544321059403071592753002631454368069516663651697381252429907297637988477326668118455337485337442567406993523274377805383331696933827892078435846482862748422670264667694869186612639853596753641508043974973360845350530783036504024713471849666287098221512751641279815062846925356295344880396751609025204091963612034204755829587646339528049511884877549397210844815222274635575058912498742627906765341862600602260222882889533852878250147910262832682178918513096268604424117864003239009697265869008763313465712551306842625164001425425163786116269995798677065329313982892551525061173486841955230203339740930747972220786060093936170378964917508332210247929071568631061569467462592699830362493274669107253464682443023794876253011513975686424146548164369137782553326072140939038920310348885538781812158611636845772904596394878578024651432316766732555904756196056458081434604563867607431882191655457623991087229189079475877808631836012966723706723838231324838655351351770392434456423812721417518638721933399999319604724654016566291009080147203869790663163131403419939750170169878574522655288344845137614250743572643807503076639601860679856435148827968013952046808191913290436970565013124173198618354462553662781780067525833226328592788086833663976576962257044338899417320681849430352635795425635083433153100902896700189496482121595540802507956810205627391098241894941295443216504674999268664191935002870853351281643566399617567263620803100861077964115286713107599997693178260247732570732535766067242402103255668139103566760821636887718140756879770504690434094649366795592753819008562554352322043331042009865786261376527790752949410379724691715337467227724664358714272415569581697065312894516676402227539156720585467347159945716520976925735115158155169213406869276919144838157193300030657091417431000275145776668496133403249729247059725061591982495460479999646157499026773008049456201236739456925605447462209919961370974436685726030185207227374588618557581396881114654466443978801906954012629564527454750668891756510082339480453435219884095001787651111619307282143339045182060222718758465216281448762657983375819474656870835974994169662192297017184450962218919087084621452713873864338537015260284463101484359168071964965874338778390120433718671907650116307732152478327470120414350014004286466246948554905308089415488678939754396531363368093370682975283761770325472012736134365629816038819582563055372953115526511913060269563316088883107180756050153552106779410054104307627450843788888026842783846334687161477671890990145388378925026137578414531965490921308854238753229808442828256977683703963847548553519797367091537466905771261333684162247829672352042908648480312374813497005130685248115362370343275731476163718534011069109608690224157329342020374203006841058058833581920429459728764300475127281560126794505102812164777678655141494966326074889940208346023095719398205815954760223041140547302640062309948539609841751784502921488108316275595622756604093652439211580205325978913276446302515727938056335478058436630159023676360630618174731605435930427008583873209546557715490796783075465140670776340534977849336767048165486468411272470245658253838034106789807119744158586873061861937681982898953407495869568966245678124069510917614364153182529511688000161113213982969807290792486075655266343213002994514331439662353955266034712242752965474439428599354823643013986146623686697686190725863377816835635239281795352337937440003484256450226330239936259981575001963444108510855260744378918173601917062597001872955112282321023803337041225442076393797260299129697266452679928339509783972697196374514827697353774295536223056881377355951014051008806775474374126981943197697932511709107168217945720695481341897541851501302134160564081739841115515811483755458582378582578951266064549386496029622127101647865116718393176126242446553775308306819037324024297028433524965497302234385805156879254997723964628926001250344981377039268424532998053934498858769813762103724904213232012408584652654336608606344779522525305119606723927095052014204557128140004576724325260460842557318822572880060020440660026190645753497286990184545118785062514742161035711076892911218909058860286411780357837554012702005810174220131485687664403592049796314633950687570254663018362522723700853395202095136307047416094551568409003870279162927507351732492017799760578034054303967170852336739331035410920027382923696502899677791477803921324445043228571545839833362015576280089418189551385846262272306257047827364118758238440380551948789542497771827939947343101645088917683672637298692304793060205510701956767318556394750628299464296978732095223651696026045933090237897870764284076310664705687011896466226343440088575149608381669715141751183438548897994207044805633956082495829630775160206108092466041103677821148172929253136231735956208000976523566000618769805984100707143136262428789116647138856385111883530522098938196550535255800282191062262373881912209971931384029270748121939055907464284549555708966803259171609650208093740784527561427110762596148674051105752365992221449420091758818612199465838599784285019898449436830591841034497604402502621031805097743695663834195876005862507093515656923841806542321159313565507206557936306684882448704451234531269979710929860497680500704339763144661851286938999110575348360366227176662637636974990042016371499023270002582415044631887856627001343096857619805007323737253814700796023218792147126229171482422729156613120924358926047634182609272681574831857450019853239250670320194014214464860647676858771924144932950819879999211429308228915997414803872330964851601115727955034773921945448557962951567153909889733450154999911199538522663105842198669748390027384231486894282821847590362504589374934920576838487587131892623445877948433006924943648315012215133335514080304403148992377657935433538510256271279707961889961228113235337875260647620837319801359676078941904245365229273901634084777221419971628581541886074712987902495396436315018639878288859523047774852778773681890739200363439030438009048733540244948509825574889642833370749985575497352069537259291239651453786236538631439716851341880075101371679576513001383754471038423636114021171832259872038869700633949483283370266588955582908177646536017122066375863060861505689847515548586967369886122598756300221512828947130721804982229442782022072938889168297612810779164403035402520784789925441744679661224143943599152533189660119571281430447176665381672637067972809303541075596865680716146145947639999531078327296984326316123247080410861392744253509683144297124032176096858775896178310693856793313269119723670700017720212075009015388360908757663804268904926320283503689545079927324468895214455067166004904187240738688275155722227979633258110833019846935710846351681343702913673397131497542868867540287230347355255879721802543519180277017202844745885814550676425963880713144807457451020822546732874568946822010768124142121083110574531437341650710363286810465476672999885109132028964419741718861467161088638264011319867869803366499493919960652745145891112085591479059862950194390592607126654267933920093930701702226674516880702388911236358369052410099770033423765652596005670719591332811414431885424849231691555980084904831830056893586674597370387610772623645000738601661220268344847504128404149801214624349046546791503302292849359396045133050084916763374577389704445263600470314224597142800728034535063280153614940371663928319178044507355792472065186492504244602991176622688621235144212631593265719669361436297012257565377637453176131869056032330820426708859338714669066991112077033678073283320565231729455196906510341627262153468316665054488573606651162065577087889739928865399902896018194527343899096458495871603739160913942003841127830246786179535316452741086448553409399089479380108261634471834695934878137484132276333220231763313061050814422962502615400850633979379194360256763860219769782518684310114679918369266603712238039434138989352012097774208288508399251564167648139902508744812252528514747301445487224325134752398567126583717636186633579408413424150926550591997577418538483083090142032387062492324015894888103815385121989391698928790419061728790321562071813587240939347181160963897275549462531546413483665926587467841356780922502239153426610069289042587733156205577998208784823221407430767690959960319011851923176713814149718982315961877583356750388733761280244840622460810795023757073479328078221959502152229405572269066786005858053896198158003134086765612107240605360244121963984277560364441303252309444096903919821380264870312256473821495065579238147039379240046472682197366182871782827969039581081205438971394296238044442387314923436752447045447233592620050495337288328078148880044342155180629564548978018567750643521483438428663238942250431860131029657868012464676046723185840829334971961511541140309563540935785437520692715334271633411781551897997790275237495754573142466720975301395188072994133889092939435066752780080703928916456260109320208939317018570502427157752179801765827260613151933050619377197891780633044281907477725840102755708812141550475763872792638374301661126327078336124608215984821138629447797813176424745501795474308099867960331441007309360018691613508154263775080829488215030030067765668556619833242810577659583805688564818209707046932486849736026260663398172485646441145281670668237296078813255209262378375592837387108169423456917338272963709296334112508325167915384608585653934910643220123185350877167403820821070842749479772546688997379611321499694588131748171518372416736564382333709740925372935770241345723815432756658060141968052154136868547447846477426765814091987374538693766448384867590005991772826272915966757627311323429507115547839878919693706884714968698772666345521754442188962566297606073566677156644322060991668262279780928288211425588196308115011178986049333898632174315875645416242803221176835917056234286892591808225131378323753526864269322869593779166155701721510055591056795897803032236140740853894852020132889799230305034164371635283914438289114089225264007513514084496128863539974603472584651550838890258789796403795534427019400871230824176851993483487774777722759934494668546207009443811485976112257107148088851603024164954268469616195906100796456814086016223649525710532680085440788514251031141369938958164490762566927740221548885432690241173269361186726556097859176471891280432606220029881296488233205184025180353622842720530013703141515591456965236268378918376411024503562896810352535167202490394324664126231538465959680967850577949964923217892423385283657233980466304999184837591136675240188162588400202865112327255262398604160961973234257883018008737857721756403911652543153982614093148679258837654204674219310027050983577768331551045704721819355644899541879449254688385856512588463355642519711233065031018937523639240704381260918677816125774892459973528135290786909780405907543701350754547132798742028753932618430415066376594196896862481984014643682012986914005923301113194878497454388580056385403362185981819511427685781869828122970584313723179452670095469743565372119776917342784753981032626572267562578571641434782093247725926553984270431141827389728464689879486801549557392547462117948578501871962079492077888751570308232292877882928122652185374457861225624787520056012234825181927683884135074835045659194696071568529910993851854454422503101002826288043338025758153646152561154697406459993506842546435839088713283625190644887107678317022888453738116551503482079800195394150348904785045079803322295596804451101813595528457654529731499870040074555687206751171744849506332839759229283016454957200342237219891149304240711281183869656089286407452631719265761720101607914750386687515742180326037389769863506966608517952061940987861200518932150375179877230462529458049079560038596606150367952714739591262853755304104235449220836688375203550975980625414432396106267846665099993965398426062475008756021119920822572902904773432250508068955978576587844795991271522687358834163037296512080970310199683144139784270201666587931529062152599872795771687048158668698120298321913589216479835226095901238469037784215730332552831031331427343685702748472471809600502360684265234719615752966152164397752098976436314651126718041689053439795188626556553766614231776737485137820970116904878222955667496851766065701461550734064303212332147812323825619440287115801283284768465470511562722097619672349942735814311528971632583680003170558330782528760302845914032662309631782793472915552562078018470960537012301858373069746154600400054700988353817727184518583256850706912479098473739089086170138783611850274595630834302402289574754643291171734078242120965539455463426551916351100246844299042752415948673609961704785561289428746118897753553166149218101900178433195462244945617392235310950113631808975584562146665752649588249488017868552206688280434417722717641433913484905970139302420789221561448756489760968396374743371081617074268871439270101567791756859645349051308993168526237265600997758865888209310618602177100748841739556893964249891537326735884327404324688439669732885114660920659184653802823022473079973134472580166907905873556945738868201286906754072503637246079724361711105664900875732361594174859619779842000050838422021125235031310689443455078582992728105957230774609879579664618536574420376760588647133164174444750125320352832980344815456750316601590152738939373530060591077517648585279848101013484990350275539388282617462666724668108429833675954486082511700565983334272876118764287094025841250822681901421844658351232102951573371162106591816465569286526203482027442597863163880709349852572712679468780617611638923980434953504342248020272808213434312671909244045823787558390366999160432224999388310632275017781227530820111592560457044833352073354624054174832671104390652709028590399670732335052995501033664911353683313483006608751285799927709430712983333613778291813433749098675669066846515069169165805408497372315889384600206457575232476816465167420444963238127206237141984214849107401530412873199292048355643807383151388780682941667453352706849919144183942725790294420765754022620591301993520825247342635593018129392214539684088940762542159615447044386514443155681293619145667274667143181045586433234476205288575339480320807435704319680263903082685525571189962378387561213134425683398724664838300634368171850954370078239788380920876914984402505404151586117167600961993102114035073440710368732477146758615726063626591339343104806383798411341586668392922537639022848833664125233802832841389218434965348052982009270012581619392986962822910375528144997023841705067348598728851323781264965455663653647828502584106814099834363185069748199587232274845073346415985878407523305542827760701994268351805435727297496226453225486431004861595532402057800543012600424794616275659273917400798674067081639139023995602727654326796964199235401943552535863538098376943346537861273595081434870714101626421811111993810219926790682060812319208742486133578626718715232783563395314153835956062809744985950655361211400683336642089904461258935480651134072119348685686398387417686424415532032656668841476546088406332734246225428363215162753743388942295700295106374865137969859852636583818848375352874947675640986833546855772444464037256209364724618562219929771194138820653696530999336277420928013404042608245123963842344020180307400419958384989796013305628809414564630825040785698626691180612210305391256095727167855442126063081871532424762345527314640661675916468667349555562112254144242182534311571453176671428352143579865854960063166281806156663669906143649355314679943219237085986883422161812962877688033853063438364589146511942409570101613260987025548839634182888510222403140957779311219793181187564103108518345310940637524213939496846079521405518451223295293155297896683843963650816623364716692762567389681961780434514633659920215779842013475965519262943837303433306909661498146244712457815761811265003646882291530806787996720837789122548425063470781228710135690138185311417184720950926949725241714183863165835191638344799894699863898415610247704685317123674116573764345234048474757087709647628075820351873970153495892945932177835463416894249047289365093277694222306187929376085149782424465783206678732675404317718999095365415855111342693598481540294773957741823002187113436764074836015844730962566543476583253121812514207767851857037800939920510004384729122853379926541447358316361888275814480038432016359344767372971023216917313018457408157845456430417140708722163806435644092330583897543577617336637282580821120979659564062035027130646289996524786013329399885196416296392273235956841779952846418249860377950743265381501927960908803774396779739836179227126216052377037246788190446920220906862136799090012803749863741317446273287044927684254700566900459054411012238651724204232030841223874831994342562565821014943512416630228987855206053669756875181208649685805357402954256907857464214158020486292163687513128836304243434416069559959592318425328512286810645627274058075353574183692042089045230688026766025052641196611390790255282117021436282958447576829503037222830275496661114751124630451413151594471735231309112349279683070714022232144867456336353421664606164222209030058312936208173406628453112795389690750469176564200674217739551514692051928889902851326081762381129329811574997381450978135679547012319867952179186853394866046514403809311165812684494455343404513301259843259218385698666313908973790338854697410547294309223851676382503395319720249493980644699614132400468687694042363846896464029773382482231003489997260337426900878921717400566843927732714765264049579414522978165717518859575610030581348226168328583201346318537753612369232435811593382736026533472448203919830223423008747023023951589181047717783041163529888565848913981061975190308969446387776637944105023148413911012110361057114124113656645142818043141769074983363329995707034126389106891133125334114781467827864425734959667472400607099896766452387064005750141081630914531298523536543493624862605954360029932785443420179452207090883550354375252285332305388633332081966972102699647261349715319839390100040241162886410154639062372056979096840924157237407575007974434276170423552092755727333997824056296657821014500384760138634289432276291770522027913570911533297632949834867242861337227141924099365556491386122090275841401139181617582580747541794865918484936087645115441070972622240612288995243934199920671672162587583173196167672285882637839445450530723589511694046516877234237695548810105606257739235353063719253426105256343787494643144066056496472677560136593531584638481815272590602536456789464746797254193587730237818100638035677306729773064744042365569266344285162327895176173616722450239336759770598350524300954259844460009289039232812191604780228150543438214681763952831812851385914865067278461953576391927705802295922752927739174827748322616813329443307764205805637341161985505844181358303303969975547557578524162136126942492707696510886911418589611949253927419252442365152558882413597668038000331755968857532392701672133370403997324687630981719594762013502409548282877699056380584002201233398881106745563158688585955386031820442397498405966736530706164828121418224785680115573559893361730097314448351274529540173692932772451648725476665108980776856961477563026864190707289345368608901913036475772843647967796820360261047877100261267021051892067846734868505384815933393236923954732056639144947394446082409566940050540745417891931591511396289219870372763979491279080983933325766548427586794968395757459972603728521397233316169105229972799027553771775396991838775983801176008019978182040298499926555145649294856820091960512981631396760399813966539208148500802398596153376286236805548623962332814400785998479912298000943030338103864711769509206861898179181396985467417116096705027213442701132307855715046151139659194321765096612761939631946638649683390444225541708511236290052625643307985173590095529121882825672224016371889980671377596484575462546089923883969461122116272005469393574342395176447060882524723544907245052649309797941615496084703649300497447002265927076871821432552614767270129621106818065999691341887303954895836154194596075947406670249320733638407606584595423224811526840187039458491024063384320078938515168158909153497049594761880664191651198713611356139172357708675395865512411598290758494960805971941121099528524912098230985647949141405036311533865965458999821598823198514731494831736434201923183808982556571762820952578797243839016186802656617926527968744870143020218805970900968530890776494327721317021391535425961690796499865916024496036301368216993289789415053085345381320706382918746197330742210410421468161287035363014661156981456736111935751087373846254272249223542303313221104351322824204975385274272056064187494331138339949003990515364606310541951361706916474710635173049681774251749695023573661086786629970109756973492416775843589381346516971105166436326098701465254661817352662013400536470388045823204519930356318859752952055947087504108113532416330815959443957832202199064176563905852324453841873565539785524529771165426719688110045560549034271899556324668811381346454765810051671826763420684266014971859725809802231044498538429794023768983615434948524406093665261590981233916973193865185758117969621716050441954596045148519302415975815091716243528168733583176524591211327128427572166511135567684698790106933047298773352329633356823857956132731599674496243128510208708939418214100853559252681523451350160874918113095760042163232111489234522886038432199549888772391725849200283416131957402341825576766712987715810037208704752373067895818856855398851227191594393626607570853869789633142815098520757147881922007051760534241170723761987669089454454979352756567169117891593309898082457468645211018148504666108668444370688573493111890425105122034330178869312872678789447230757571828125756963897454496730012160600997427018444040432329425801745091805665280071694654543677577287403553866924424209537072408464378562461003390950646292941089927068698470679418322778163112271861436142619455674965549989990032783681060163857179979334205678239047526862304429715732166669246883922767152537074946419634389925732742664950628653191570124786939073500974044801059939222602140725255115580928835088420245792926089950024469735948718843793649024241691852479064918373407671272534491451725532881148640924698464588043819573286313700801225524772826405903892383516966890981494947254201738614411906811073515273853669895947393233521606837433214004432795696331831761408909459712292720423691325567696645701546747137225741552290813425709818430367642172940528673879048647922249100287209354446647385597904769299720954321897304596754881531899218781486281349654937499069662490401930989540824807559393369397911912453862265451530600677250218444635895750626664648309913463093038454954919890628141420324977698722853382175338265253112426588133405698686006749615324290333877994510282762859949255510311048011177247554851591674929973104217985387902563542205993784380905567422959535537898638622534510566833012761558812884615174789240625495217461806312764015615336474942983275922845864004469693780317191170483499329783277572780248565512834620500720324450745032075259340337544308645427151500175081804389970548114066730611915659671430663136986075238430695802148793391624185705893000686620601338485711886357477868075365091453617414913554544460131513892773670691316340895564759377446640425941769192729795977160853202265036114077605537752678767643990940993759975714965912352387526662407745184307490235176806874792450635239042929011646720549989448237091107598101648332664205957666233185933822905468413700475335466992238456246139411642276726323476607971007877076415120000685351288329562620649747751343607848735898539916984516991434082185844166536139540722353729599949536412163158750812857654748923415884802736727104405356878388408127317631491848863847456819639572695214543653884825771857687042711926272945366020806421111356733369732356309081676987519278540192606906536106456037961965654028290721401039621668995749218733876445764670982201105152537893445038090553911016614732735378001851053609801470497884460579441202078964034828145820076710915130578948408093733489787564586758504427031982722693391683035897315979482275882636215881625411996904198120297987805826249060041472525424762802647774654074428424954442210258790833712444959457710439084431102995463949121432544265527149876395934844339835714669427919151857739708839198810544012188141845209997319195762464054072090605945451714223590410160774910864977319668620655369505223414731259241663054766850798525395214672059423879883098738127433319254960545878949052586191305847383078885506725216235572900021550479902294199167263557119927534353870676937560809942625393050880703169240739212285392201050458726612485688558781831981436070676940014582365412962653165781239080047233173228540639099211824334007426607424867464577099839242854090572900704381807471156677208448750460742523870799263744016418075331944860795243319874387067089073249344612514225415024313634118646579074731341391816039436387483092448610618795849621346649795976995242316963174246249868412093691415747696587229353506175792509423537339233890331291482782691075053789893597750758863089119943499671564590663916487520262191982440425439974665863854763023416669601171875957210898705799677498915969295508063669020900289813233662345564479423742521989902912651173986711031447847668601934724105692903838766125673352769523182693217533518254728906003956649729781662481960592821451100316728344523770845039048687148772637683880340312958845909810703324341387108233940009577392895508235624515235603612574983594505886331032220912609745705284480968854058256998323486656154295434287507037049861014081712851402234669784017564485340620500712367461685625034886306058531299408467035966219751682231826791512151253784285195174885707782800748997185232798628041186549164679916060074534662844348498879875552878507345991004682176089452342604267138595332493640560679824164643388119702581476191753272880686796750850423195452071111291160943834116304999972505548726474203635287297180782385203187721855979696124219445121469689345947236606551736734717516426012153740071564584678848269646127212514948708036766145690941071892254728574222152352106459830564069507195755379764512666999080134425525426747301404751753639340596467076144338213276573951277527358500539254302779757829414405027832622628102926392670874143670553634682580401877356940449344929266384901460351404768275900471674145332867922643503464869258285037032293311415186343550207114746616492795060145495507792302490194866399617981708213435425554626039699917118499149975826425552702940078361937872323723219995711684871801960976156150875691770750721031948859796613878058753269376203110395754985655913558617919143667977438272272875257243370776692440740533346443039615445932736848937631766287096717948318534534962620162513778509690295708225940677776002274261699175475211025869800697092509953745687353965325615647472683372758925359621592364507918505393266152169195280671440730974450880134225308037432845267711313151155217985631787591466501198833153499693848281729138123909392336072414632714163490164997713673930438188293982334125680732293702969127395588005128620318832322077949823757507335941547179742043065288359561244201227055213488743189254529432845228616988058574072722039054993482655983058245131007469846063522648039240256009149808639185542875351306590802793555544527494978850058095456814398086925239155892584677038886349814547079484672890866316817375804578479082784118813654887182893343031138198097564516329793071721273927320252092798926281528269560467785429067493263080743498766113432687939522702521739748171862154285026077284846693032112828152266429118601092943190202139605330988326626519557071650280765163818932352793500146547435155823350288643495384022954867413677732189264068698801182772124956296443477602645139571249009823429601259868584677271391055548959351720759794137220296089964700542676205690270257104435356382775965893061946093575169949902090463788022952946675456561118830663872653264748858515361733984615980104332257525495975277089416758988497723545225949152361231643314427070505000621126070328381488540050151449989241947266264872066727548025589622983914578044117194975795595498655020665898599621724703577005479303096279568163152279705037821938302363513900417771975001471467927032548566858656571743543376222785046375956856840543325809852572278712035871156923547339229143449053568191031224117189638345709600689373357217705776277249315189651889364849891746036318286029850053896003565075416601288647895272652433971071928984824028540720420179122067193492545256117845455467075381949209765357016631114456964396143295779265110696895350894744232124200040242244907193915368009777946699434362875118519789007316106311485788404895054477350915820870166061059727881856805706097705341698831605625974852817622244557290644911844849511319329898736715507736743840725063728214003453812557011061373397370412530341404313013809586664708824983217995760476833162616548020763844269886636231406325962361336883526148806871729042764765234803123445143139181771543782153749544015487123611573993476447837836397204954173797409341667594244388658128601264851066789821859757350568453982911747346610418617239317434583019404081047145608915749664561582388172715239811683688581326777915567594136008234329451033325205731385980693147536064090042654058318483788137327903359858028009655512113086095212063445551105584518611845781200424338430385566592347263974393632772625159160452491265796227164024432246089829793772363794288800641736299473684700248845841102973031341878988224178148093755589248358398106236868870797299309216848076047811905021235128334944632836806207880666071269845684566628146580055703120538697924423194981155102040170666298966868950056596940105385384218614587164841966382840586435054640611960352568398089862877983987789791860125242981561667881099608648056190884232623734627632209431440627011513063096631677736976857826244310145474588891495754001841528005052196312602207138297748392056656527037395579606185594219453561882099746643356986750380412089103446369470186180970325674758569423522915181335864110589218429868441663942478959277227193759603434298351709957795988153861937452531756912249911138728476099169535806000167959688697812079195743706011573391317777748717945797673138728489040470738343699327215833260177315987751713556652716844423353256046408894814701338786224093855410978995547314884684316773334644939523700065847577780316120659565345601397526290849140280360888194977127202880074247799514903511176793163105129692623795050869858113851074844262154412594219647757507508756880836007608899373530091524261453069528628539913163343852826061522870359117681668475844927970744175107518775681114384845926973775182309344466134916116292853044546541664334134305291887728271920023665975126920223095537393275978109210057340815089661298042509843957306807786233773524096255761295807546803101057300236334225723566105152997938963280482876231082476191336237428851163396065001614060324465838083771050702697588179611620360522384636738353411457588432647806516023235748972477599918647361169635622447081870707731372560671092752445724843772998898856657926057704100889768954086346679352081741010132680125559905713875357613274268609819788723563753512715028846902956469791387979400299984085430858487466510685173035342958432043555050690398805256654606791586243652191447867090705675135819400130888035987196429223112844958086940599142788493362139693234009127299836602397802765827988949606427635385617520010027823284671859723790541975828514256128022953859982741361309610338781309107118863309781892896697587836789382463462160776670569045400104287609041193841592703942576311778502862710946134015493553158519840268039419030210395839209386225716598440919719028459934019279720955270262859349922002226412375484524201814031439962031224076093962811847431468963917835790437805660074865811960741979996379868774314076374751087349427297846963777132689134694481601034963822681872537032565241427971127355299928766954673884841287370397395896793262025548832740761671866500487542819271270058429253264243187501589543980322415758316087390461687425723616759147425796164476346573724551909059809088647210535198228297097119015737676562261582129648217453567930033467967958782512172567824243983123115569406008110951684251683957680751413626254189917186243661993218779537734417580077568516255630660779213437569704264382280753862380107759604266819914928923929662800331530796717881213460201656502130465419960424712082108621975022158065716299936631343380304696141680921192823284354350065337693929985788446108393331708280946279117421475123417093694602361449065823063103782325788515745861548359789846180902585648835452095675349013160655533076467236505845964126192135535866680008815315511856555957945242452280282842838715165363824245706934744682673769931764958900124626837426688713350805951131662062497881340561166763787167073760109806457973173591571423831909651720077138747748347450525142136794477907371535667260058331982311749172935193802711529882398264687460860757274114302669564045409160332199132211831715372498767984174364947339756161489187483956074867620605703784460977159566618949140327363131034021281171563331316042680704785834155799294283322831037650977081383420200338299359371512286127350681841601779339990168583471353170587004325263682801424909383908913058352526777531775297107830373420392197849581762708501545510877136049541576857068680501036151600220396122965047823249684178381418485677281170121639035305354092266316627127739036223421559065013445179154963764511582878178649036407051846016812928383115502036119743451142134409899236447302612266178562166040594912966968528160656372826100164297523584536556825327417018655193015947051693760430081191644632165465568089794215420157688877053555094338575134067527642168793846266122631890897853989284095110737694623967458298653914434124027023327004442354443481165777617745828960648966120799240139571972821448257330756646348522629568947580011393714870904464404961577259585263153592033869163855232923533916060422054926803903581652226059524795870309417043403078756452708031486216699790422147261727134681494433525797411505991467423011391808472695146382381328497344897288103567918554145108371055446531180376071550565292663697116831443227595339996832793545475491542064959748123124879552892472590467784143109410928510570166337415595540748612881780735661513135794634152833743907879684542339520689791057469698777563618188315358649548275702319495245674586730892230942702036501949349090917238386923503474389935941484108209927661803945680810619033413978946211414028185709055135161007940480579575926020929698172932327360112687704369134799174860602668943563223655491793631954700022372314667747833210396350022436416017246707349934010084342588254689018302993583630420103084840926760906827122459622903809078351364542671589754306745643298462275753309322147873756577778883643234669152850467860669191562694315993157269354345975826152640079470858786107706299335320826166841407283828685148958339918268317245749342279804013213451777248233723310946114493541231627406886081019950178423545167706197676196108810890880194982985497125571532373863416035696379560668727724456611781074771113576341603506587214378061520391579852420537385769253832303430242756412069044293373600219946966154365262058453217130254991366815979128615574154111279026896603316764046666346116924097768154396883332972179833173612251476021188776955523029655148981240458750854341910939323947196226024303598100466377870862906143674512805573652361210086559993521226981761033336327628497723186264783684794300906663182367018855349409442051917003767653747691737642842909462790540998881043338435013652386549851633368943773602490368715914527052516413862012192078006091616944082346878799499922371081359847323318155693274500189862334362660073916160389468050489892437439256682269974053027130824469050608779201037892155214527607415681162906671690124008001067177983138583902733030458944110943445286877458205078205604350914325992658014249901592068361049265814314933433744618643352469518646341377690629297208452777959745794695141707178571377328985755029370964110755420568385190856286514918668370254549371707077177207706921771320016426057663748877659587985851635009842082525966451474665756962799060827427847386701747091252109421194701383528954996493297302199045395324020046441306215530046325003312648902597814213028762529548342533628007353261724091839393222326983922261446173896335437836760388798180957264791874619871769021032460241219845385266041102185612221461374840759614444498234680723869026980150022035225722812751687376785795210096644850505637221167932982074860436057979045158735925640472742837533350537985397925293416932737829807636004223628865014970939807319416330825009857944584201382185488028766681046008120970621671331436616485587580855495659816769349467381979661859502622138689206859606525373687882387037826482035212345213448785220400357913744216636602430284494079084468156229569164270397132156811461044411246871207116295971026499355899830379028651995739949683511826969395308207661553378366714244407213397625876573136561048120910588543669494214344663778131544147627875754656624062003506765415016247712286275244152964758633525202285101824145822413820085907362568471646307509081241542941561309389384546008742328107438158889742406086568037808176267511563761673886538007051641243687530780040729836188026006187335082276646488407143079824156730137795528632330321984908969752798110026166608686083764792730381296661875758817919999767385009601205022996741659324993277443483684995372204403085323909807203291067078981868466810815265373787987531080160783381727946189848959565286506689544035438834566276726424209711727643423504359531481931465157483906691950686673408463835969633247822520684513025418690663625792808476375775516881806534361729533474110421550728591127904915329295393941364788646442895755160375948455172822076238940887221346233474740468002021745769657774221023382518904917848903962707291741286593946209271489530412228230337444634872390593845480477090208969434353935726170477637024891862544147444725417010807316414159686256772680761651509052216686890442397386136395819131304245061214259245813052163399791275706712222006273685875057397461859046137091599716999468838625987961806811162394850663851032485363619686723278701308474369305902660879508823986645825977572975522599978179449341903140120863874672335852604520375654417129257364120465415662230794313761688827685214045718241114579802649722369330326439533498384879505783736368217434351345768496051937246146294229445288653815792563173151198535813699642277796248309577241770819435847377861254860569040758808574987465393497755767204876741870623197260902066896267535730647259089025069633210052288882395872177202350224620682875641737001978119675771901976407540941455047489441922709377448380215625804085613762816797708190220025878346176959848859119024871782818186689399811726304568126599009775644568682520828234190330724829482499239757867181770919646482753086164598813869112466025948121075549663037154543312546789098867801387220952830144349875132254517920038544840683144318377616867113131602298914097717048511757107467896268772047096806599982221248972117254798572582167975525839330554486167454751398793818285590281379626095997485900081255225308131205275523208945590821347881463591545274791480564541243514912155878431861373489299862607980752333305515637186244292699829124993258792407715309866225803442062113157908273466455024180678791128335076095961690017707733429038693067012957436271438318478825867557739069553298796197569306511180775572669521478543718424109714959520342203971672686884084432893928072682145443966571155152302745779116830498545186015553200269490450851260957186390378562947730414811925505854883625376794536975616319475689836517848858872638102945907387262063574069408180475417201233908841517912910872258415424432959256775719032862764702801125793334828374595982923187119675857836388096430122398122147742198378886956504780786976449186205432206063495394959203921195795974725347274150988004782838683020112650608139033666695425598813854628046313266860106626276854780702729123482188211985271218719425375922609633383317281497874962677312645281478629585247116090202486106526887053069866456843216374983248702354737578350043439109777087725210665344941582905600326281775260561503371751785624485133182399182310217827359991478981623884708841916227230624628189614413032592007570100709862769391999705340022017730617881451750442803366043710080530992636422059425020382955354375150384337376233193789927889197544421056845679001929122693306905895680903350927443532547670383926648559652734501279158598322028823573907298903835295761880942685589889440510813038851225153782041273983925748735026374438356195905192446889589841220163018791447708098069171046577743422163421001352212755823448442145222320176427698472211357091674010068440003054930352730575063124348930037881012092275013394772450096506398004337774898965405430785776494335091073794703860216230252771941199733025349521445817380531292680042092126162606720782378215389595695130927064278134615242446852632809373585064324447222387670667580940237623795030574216511989739240408789309533693823991766268575036515318613629471292446705734477071729841593394400912336903704258322983866087939810111015588549647451584280133578756312787084468591910547272619108270177234795782765985251266101628074495323282321201539053248617984963789529361770297862674078241646954903275759823095039918492363378763860628311665428631233050163936551224958406489082369492703638925397639780194260322690358679499556241131920195744583823733000768317268462982296170506474666244002774930839186020387856637643567273544660031980055776143520685878870272983669677444603465329697396264363373141383261819795810973889278708175687260232611625055537927718441111492906509241948160098972866218940357224232949988966875681826100340902526388744337064754674611332327749626145450801204507623117272868060251647095930927346031235513262724832746868687537456014603118002177286043537401342158425280626644239216356888246177987178281505528952480297606171205795984115267446207167607091523902609199705034685856534351985253120128592755372119515234587542821839077582992906696322094959096739170673995110910061922319491052072482252488799508310372702514884575560964627473826147964779886061390012532737826920285320280445070048609831357799532174163389542393683932636558543357927866892501548297905724800044463857110131534993978409867215586331094578938652449811754321783126292306787029025423068588576431625241142569828692342818541415138281463094073066387150176378135298323698890838433004910393626442459043699630942685652676493570251709310390732001726472995956098220330274362752064359967134061591133210216722705968067080977331493312026553200484665283442628803707735749122641659140782867169158467032869690467005621841347574945706488190513157277665904149645972552151450870461345269198326310103285981063027782198283912189345801297104882207950169863044935635502778388221610138447446950933929993490233715211855088671955412344370915923145376469022017566789959365535631630137215883215767183210167191893325928911020470172071205410955074400784741763602854180569440660410854725836335155022976153942154245017082017687565472216565504588305781160933132747285468493640413827361874381385604492145942405460747998484237269646813573592434672244821588012667019273259583533999376216187529719622413166812426140522066265924946688702475085185432187586661758952810397850605637698808587722458386152458493423233209890148838659127954696113077275753484750022027801606396988773279586488169519830686152061209314650957723937614667782182464882582148401099714487234852157821728317072467884145211652046363840256824453805559769062509460430943466032423184004923003309991484863514640817027826362465506568155236276605553001055495590041273972118171698953680838110114825772627841822720728088451823417274422883665032528242503902568228280348459701732376464291142842716872482934928817631519941597443305091650766527810358469636203441806235650497682463645029124101427390869653932757128125461371427137264965359728896686056063603563925545080224571894670258922520640653437017714205584896943664346452043114075806643792174904924561534168315147892249688801266155037488536495324179331177422503462075554413648706373365850362137293374234969324001893748387194250452580206626380388562712888571133244378524736966507834865186628445531375977019956945391442433661709550591191524175030460283793189134311418184817234344011274765549724290291849397591197497036094378751543597215347138139315220097397245373109792870034742942819911408423862015714066005239816344769459684653520998032010325631275337894806846176856722132897653265550865280465197736499773221027742389264729891611122029773664653098395818187047501268795016785631080133940884914786436583194686273369718789971194892900979513701977734405796839014034991025127713010758423765877522668833246255406751468151498886116894143706183835407844608765386526806976441538959638967640036719592976938208864274528838270220590775964258691565387018977692276162692398792882673532073982252672536636522672943859659362658754552998781754750501667941986588489938037026441004688751953344591785651718485736119105740409754101777943954144118081987788408534813349528204816420333536888669598138517892089773277706518874663621288888713994083036228926932290028286303569023019424354699013392246720651551865734365767249215761865716087754018980196418355428234068818336359278566863236676847652357916270843287445831832701769200989254616722105837689001959602904403789774164865754681067115423679379753181639491063078637344483974601880912754729897556626040668382165299774254138940727647192724286447680420049557906516332345423521136894291390615467634170089461370191924119082487511784669562847345462332159607839267038927922351782628704893826284881331228132547493948820191861991872898994174249329962337168936712659518707685660511247990205429060770751341775566581658227215286411645971162682804020019952307973897704243028283291592301588483827755540683583643987823103162645818747368278512265718209650720659680586684577044683587373053162132491229746594382248722513763132681625699681992781397549469981981335677694705474416162496703804691857582421281165501306475485890031068919046602163393854670822575684322801739280011514137470075088682458764917483960659881954663088624033209717404442942264830311518858084928497293383554197315613939289902106275066803631393567045296090217615379684938494219884937462784638531376405995896864767865470094413402331776253907685410053922126014906217185885724251247251947948287275363323593288212330310653419663926732818131458862595332785468981612849175370043033377364174449201840323149441221718172573176454188506869482772336007373010297787256460888309922123855032874457215517383055809693771980904354002944297256508640585349061468913562924509193838900210014625723538055134848020896550197477879794075245992999989137624810607810283823232244699628332254439207232244761938452182079303024368246437797519501448387027889750852126252570425216908292432275103145844375332962195955309135121327750014031571901943742539907317891459215178737208084053180000839679232933080950392091790444428664786924135367223662015136931790293148093083986948945905331181413358395127039358106230931745097799012016355065145984340993234275840222811891318586319335011863433110563213922900754763828165357312180809237081942519483921547240368910736530476623809938020664190775834995650422701648264260947497807868913869682950094219655843198149826384369299100566938164933863924081997298519183163325375551105141995768483917626498174099570413858666824148927879912546321412488229959640266635254869568603831671960666146636528986207811956249440463467316941229279235790181250766100464798264637918128334728620893214570620069410105621078604655400688955762210045487296678675135486011826383675658940498949528860095121264079479416704212522260257822214403267513335070737199024575004687782430830245830505247244983591560599712013314210098555114983413123240257755039156220765364585501950016643855931752610958859507889284229258420811965433238505799057379012632293863464842127004819714902286045740295326682743396188558902366767365946578917744782665086312853338700537555346290200623193281436743327006839010909768413803700687592979005354370250111031941802552669778540745836619734442558941123202855482225482553732928879600908153575209044041894363981642866954057817699002305318939113633208020035693438192823511735554465155682538958663658029325279876498084778223550353334134690639846755151104204032778674178694497617648966595951902999284737393212911465826071768308199606074923962701170428050317633894027124927536596074240542410095815320862654632758493939787117916940150457221910503728834983317823825656789015096333513109014262080885814415135603971063262323741748233125875993307080440982547823520411058823253580456879626539358785017087541726165814290711473987337953662853937186290890345551178382235721444233796870176620772315110410293859069600216882166539452759324264717038786659253510026758054316135973117630200444588445126412654152895284355670101184658655369228660609652625972136325121897461720793138765974674614562149957468154056670668522642840853200545077378326742380838006909074695712700693257009203465320755169176196205230176810540679686950168791420340957360572823935132470816776206640025249853940516891069561253738609590122806362691564363048663030064519040540237791582081470485714808813425136701379094422302102369655237962451973770761527958371781824599678162307249855818495524952420898175198905862602059771714634627300429486852640217088000712842855045710279113007508431738353188321498624117212264257103772761409399898652061224738567867291321222648671163109293387096689298241661574120839117947610732890982693316643532583985337623278486704302648502566504241658098925081588076817935172521895310628154302292794174550470922300558101909974058170583272560555625499613379457646948029622616509225959566260694456384358618740749609423106787826517767486978997896871338021969569906714613508538933788398951982187967317206763048440973208237366877887938095295442873371253844954000641030677969070309986062685165783886307341089676385637197024778669340105859931094032281392689068904609052902414607852343198461918129058952708395899371244729557090739592426070607070133833436548794676100078507892274943855742409816557898563857792994294178827004293683150830463375327594917989364256070572101857041135291848639305898884781369771393242637428256750372590439780592188270301389807880519686870018948258212207495716203145480479006069678187772123795257815297591213740495360341080152004205518502255605405263880228592622979342744490271176942104500544111915417771305441383095627788490009575352980870780096853703822308514475534801760823962224332765284307087273311378614125622293485640175866222147070276454433556086651908842779691435197006831253162695593122241917129986715950719789777499378436843206730587975627684133952497425935974213185005901343228960078532660737210901867129004939613261437564454431151906327775379612603846283230775577482220528501766544658942165900688762335719556459251047238177832074351761433645334311524655969585737177617492824164910713503190843476763479141646929257384229398863333699109034477705753103604251480838571673234386589036767652938646258777235021106422646287386734945174743259654691546940654820764442222104272101783461540865341221376957575367519176979894216314523208140036680817445874509759442198727485972702119077973256055620240521416006579091492203108384142590371834848679875336471106262914004871336611352659681933229168768676577807236440333528495072910108638404690495639990248383976374036705750561221321512095331155900634390268787843232029985553923344890254246668986101036614262593875016979283671339703008361474192099288123297853476624607381272639839856928165098724512426668928094855924873270855718115632928609613451588710487289264809188469549906967835446472086159401377535131600700678420880596921789367716882051418463428913876193162639465473660636513531992318299181023207433239327658920036507201807679531037336813735256359613423952816180845016364875416450768552398023636294683971995125732335526959411559216787976347334524695848865633374357032272210055760978121028056808880580695290472568070686627371652593327065289176003410899110709934036178937327256539290324616182943730155054422125328616504204617085755133720783485517716999978437333385596655158765498411030949320045000569464293426564706989083601782373673470450738016626598085606118849828288139945251586536708994170449788096798201269464679411037206433944593755132488408289501620672313003424417525546980977352664099272799113512480409394307349386217988695256255680478733105864620623192868161505749517859742596377475596082322798537208153326423834407745857795463165206531339549202012739832671089812171775900663505122607303967508271663031014352019085313886055801801412725019395655800905983576717096017311145691003650022011903864544709832671785968836293618767070570531845443852935512069793567404168039664011561164542798650603659746732575092133044066641452906776229824779624349594429224611578274013440757675458137013227915806363739089817555882109361452192594878925585574822823839312154782879960482063399043682165105547132893356921481663964621888343985773042384167597419312292763627379335170995689840540467487609085998126098970280615419814396157847449842147469072401972757456833351225482867142891165077536907571377002334553359896869931025479286506786230409289881890601697734633555322485609395472448766705491604411226870873918545908765445368674444265666286685041451925729077807234401546127352849775310299178068338020585166814213438033839334762374584024776807184585788666711159858110913892895517574058175942135515971042471142188132924789302553127743999810449779261543585826931540550539921018181752306730679107555368867797788931595945363361618122409646595101919286518649083684992350700734681829932994018783013227083878342515747398318640898962476272540068229959780970747187203400109372788474161382347668680231357068169705079509761941463564534269272975048861118668361893738804753272887462516993729394870126952983158635152905179030199761308194364090731276907258443410368848560555164225084911574774555437251608894739183800577064764572598105161542084621445815572771526734520905967319293240568419347038803067554896854112859887713512413379372045056080051720732318904946219343439471005061449078046043839596769981739041335034818629980885796182007512034903704526729874269513830253717529719788101136576532100390412061843441125183001134966546722860158902348300296562285111085447031817298440793892242203543514620367263917717514541201777777053941957296817839361406775831013855273754834886449406468412211657921840555862719141627451210161494593596815463553247675154233168416052622202003959750438577153484910769599775548212234185477717352807650513926054391477681693698494151008879549606433687477715615045747327170818222409726603268574519562540670720350304885894040056870429066960992565043649750689666227079470424397435111503745559141282275324039822480992659629826703072204757488902815206969942760606949489898685457271758600103785598725247037031590304611939702462555334686251364935999181635281532237789725706528599043564278484095558286361801066093710751153904650663929208862754668325794702755388543752349098368999447789727083318385723788955809750013307556473192215301055955739188500703750368626638954576335861053240105028544681599379079689201871298199288172969845429003338110898268200919738616669616633535810405199194944027242745421786283836700598179645422863628793560442706782807214031049602197392927142116904304742189327518990831804497825446760476576405196055590033020917701981580660478978955245573923385402264983342829419903355758395038720982398838659742983266670337234488288421937913589524072606448062650897129637183769604669576611185245200538916302430334783165059455351962502256258378496990277129417524360704315871017270259335592820696393557004712218000116338817946934749797362382607183873637737471322716162755952672108955991289783120969944096450983299871409810115187158335375578548629919381390827952462488436891363595089887353153251062811557552089868624879802117474408953711970554122789149617650251819249843469020059632679233624938282264812515715206982464628943781717108877934246112374957332228831228008457138621645677914745574808530496604624609256026620131745991458450497356561933270773911756292916870206023877640321988226152705094780898628280229602528227905433333076487277639494537612704805472080459543914336527933692168132487833077412758712939411656215259772741440758142997417380476019250186707284720511284853866363055047322165188255076527375325834997791731686903577274910936579435983626366447933631531553705571519326008656671087528031062921994748307890826666250977680223542136700605235666273602967776524450909203429128950543750167726996189414566586722209535121272073084276421995212405874727950294219481298609823615702675542935439206027329677017968375738842795999836223143739201208335353136575638498381940642041501657713737769408571368103922673537214325405276000559921915756785808370073346162317485729520442791018358653905322883586616582983209356853672529767556408920137125645271620204336427739463817716355388602007635942793714685008324756306984254385025105993027252878993361816758900118830179735017997833625250745681080509499891670754985346933531457014507037870416889854828751145141551663777163343029226581266810711657521426263896249752625179086329235787776655100987601440159628380867819107439047851707838679293239017418395996952304215925917627166047439580537536317055195075574769431116389891765742620333837305848982757520527702126719887260251452764903842097451261170821677738795749989627269641263180155657785123682528924270210184982236047330615350630798943468266486210467316155800129745704075782553213560002028258871296770983733596848717124586348393878126003012213408394639210117264747674025611706531981541643458301591603850258123820305870575647673964352738576317745961615308155374074538556856360869546262319711228323536205652625583943970221309443838436819842670357821529444205343169677347764902466031995508467830751853814090848974710550140031763369036384318946417516107033341734800324990002077159509682391222901327582299299952394048291651451942410698927131708445973027906635594103090386744018547291480700915065075792115987951438114126064702112972645597320183998776136340872721815813173970383926609292963231746565633921461231924218812129132808583753178184014255589922399606716468686688596756604412825305797742823387470556756698316668006405030331080290394358581642541011812582741288034602142823001347119619248659443878770447993201637634404256463755885609305916658148875564454584690295940505876623380817716421652848681100627017800413357505535935326890252521017069867287942477082347389566719561796067522554028163490447427288257376193396546622234848545312919061451437657904770373392149790843698993332372791377380414272924219354688967816062935601557959476657705765900270386935928225182235167980705835004800378625655511945745004551830035922223711014558132788270145355087485065216565878365507057928991746749382116953950495443940966473728178733333610192161951514470261444501461910395482219897610012438699400243904836044272712828584929590082417854645271159049830438654746156487646771495022896068470058120025053141340579056281928344735280935540017793213843397836395633584960916456782025902550434184666473556103420029629951804491183761367878056398582408664567106793834596527428708069073794480935902624578344880646215788087821872804768256886341734279775923129694637207755286178740456369022784687399152449255997726014825086496264084047029287523142439022524891452939651180899211403160847120844414123773652205391627077183691204388840312251757027790693501523504738758062991545099006307056914056729496456499388472785769173539969756822617819124580893766046063617004540229676747850706001243913615790807723082384574547368362225302997778324823371768853167003321336012320432703227898773643043757460020759419174238288530002322055496136603168433417952003528306618201519951536378936773397077723045752384161166161981106630140892319348193492016368726918127174556443450813944400778267600796109537761913820674870135035857500611270945728333901056626848230515465300040648619858687099644000079287734872496621335622210877604219634626938473751886502086408543620343872509214068602795401373661423688153958752362860036125047556305535440910047632916136323758062286863033520570610652541206737657596005950121726658950047612750908942579755873490095042526260911519333094532585660773659249342281642955591181091327009362056347062221007631467319823404239673136787445237064514322497934203525194686100300227868709697977490836973043727417990017228997433301178222494430257960666207433317308888754732391694200429085124481097354809689671064275468818311681971162936500865767240738742784017357232559899228501457841802165637036324102697940196110014353208444296896402743054446191603918959247131072942693446232098841511859285243870380970984025486930513916960042645380169916867487761220113934162678523985589086783089078660083967632538264140682096491723412562551380879337913999364940320724228906220203738791785052673707102055488058493161366549741949059485753840831259385409327808626584062899107521792461601359271131390060554419750723330216554955225173853944362731763556491312788234389583537615410817918519898307693300859280947198252312159882241806121185637022684259863520338218831288014415354145518566164458537447775014416089932242587242832222973765769310620980232216489535188352845533259302082032944887184436829602362446942591516231835498943628411311984312878050049640892743665839553434771823152909047742510431008268278732252208877249739693359275629350652421947306635737164032418745848949610176695893395222485946007637713550134281062569344225106965654106450181892482640337497276361141410195230045551640996290885875188128198720178713152631634095796223367356254903649809756810405455285235014837959848222081048105223804763841253810102181559858372735277784437566966286723549255394411498346619625047066930726795405423145282939321190567464348031906757602967942137306607708876499420912085038416652497807635932714276624595087217633348819885258362761898615268928617296069254008780557479961360371631448686070933818748425135137005905507645497051579054262025027485460162746428203027391162568557362937952565329113760200216261833436393339300043647528096230317895539790217842466328327410158621989090771679017086302952750169156778430271354404133906974188925506423781110053268883563039698833473411206907051158286650378073053617177197578464308976807695422154670982743607819938199097664909123254984169984909581610033858488948647232444536952839679550948192266926901873774275661406730171469117784236527755630148825308647115919934108232038910818647855482279816285997262402080262843766677000770467893184721979234006568893674631851441766569671488298955841854494702982827728077493154878604734592487267586569538459462605327978869922558843749411570340372912663302916613200224335278247994136313818721871823417843327443244892074322860696152441840892900350132118438558422342277861741858243925783090462114819269487348361238019729063608974445076969237077878431624701727070053573468319220718821332964178940908809730603837728643894545748373798691107288178823118043817153223099361875613258704647605479986091510532376263310850676851438211506166183028615103465312223231740586188875265520219649067349730482650612229010604091413517110143984072448838490559817432305464465891237429470429299808171939468885839702831834095312665681298601414292681967471256485517029042640066461805474730361181634244532654394857904443162825472371626616380911158363425597464895445599138314195985273573160543426888952441686920406467364169486176570880162442458463180880220653166123241016006195309303692662944603765840224089561844173130764470376429956572778677581155572794115061218236675921552977261655738434460191056163521918180613800258216955579350860511785897968718847819025617944239366295311829013349905415177652620946296308249225409897836141069227005100116444636334490997793874896546837973498991383060420312146553026006897421467050871582378459414162506351639365483524206424050387258139976733760365641943164741067031232538788115863032919756959060192188130668006204618078489367845408487695625393344677371591693740338151703805907585451685452696373418286972358554244484722214384147251170250998514395675760921110667903040088825193769688686954664343194529996658373695501481387147347866258996761308078388235045717011090774512300947315177646704615991242690975261767615978980261848015971508982031476125148088767337145349758037452303716641025872620417882999473860685531307053178864262898097326376959158984492859273603598896986289658669151773716753256244922702286938697234548906777350575639984323732939258123589537615394400105427956385183008091545506704204705839542223183006532697416726964398169033153213425464287010403559927462020098253978881711587542497723457407469734413697386319809034457330956463697893355498557187041928064623661214050192965173559040907616785624408448931957791695873559885270122612718767132110229959782237302343442880300373349758410827570143617098071516320379040656204038660814188072217159738512038596048630452285966872701137102702290357814468434252338518597341766010158949725422339086787909400131354006906644502192340907302051611280172583498582809613244524227163588234277320859069846942746755511643599667092741521715768378118645612691931898063246560818144686527222397779617562777869265537029554488798352827889351518285579648213848651072321485470137377369714829790864507660965127566344073391071658328596705835640299426846792465987355323714787071333786096317434743777945428534789599526115274315609182010352561842544431270084534607384374216653914593039949073519686205851590414844047330654708264645039238434313299834741724428211581539257943829682668821348951931723824983652045047739952677389381199470923858017181471301759608543784028032406570901668290913730362756170209178605171129100809439453776289897354545001970732228774976602013289791665500588682634191194935673746956992772258980792293532014568879113497621732279415181719908554195808280876371475015851405426468569116629469534639303979537924016335567004598655850055059891902459955046362463029005162370050143827894925488915901702797390243534993622436303809523576570401371465531301330155903017780098276371344244110655593024811611214918551579914127778993651905698826379822402625147980629412519954829074151999429774487126498862746086169364675111333273921095042953577840866006905251157552611472154550910380714804947645336889366409142997736156931660565334213731705044024131839883588578629034264730042024078480905382882941552564417854494809483543834521863120305697119286658265940846977584873734964749910908430578532904606962289849213096447375490424140799887763273124764111079795394995316661837949364997289345292653225530107523882436859087544947785014770088578909148469032243578937230877236988836878227283717562852101665974686777461275693102989318989021599845720183547216873929867397471146529986890554625745794456976542365969738312428148443974693475740061358281593294995189468615343334584897596304495199574424403669522447258423378664757134470825368405958425862005569963287035070646829554744035508609158308064661367289013103072317644884516984937594426417051734985757653154640746450113095362576837136560554219856961307464298346055669724435629480143800747227515219008700571000364058330023913680418702494439678806658174178779432320726288761392297894525799697345521307638901168086700470705837210832423279530014371403740957243896895658752120411722549564969330137109688912941208739294482188079860588539397103323174075055597452471197254087887167158979705274388304698603344829466159597412303909480144403638946472176081384096431272334095336091710567318385791544525720268042136681841921315661476516318639251804436203926856532921156975118388537963404811864253404423725418178290940218739507304544876912660434422518285105387717717275395923286394531927134261281874351263314650835493339847122636142259762144802399662515079197347863573482415949130926804000651780247788636955706875957085303455507750137311195804594667669072983713234778778218155627108332485188117994860456319792205725183546340701253160798461980452792264510441269560501648976744948349723739962990287706873476979181241282660458708072093538327795744834996643185038295021001803079372276156823485267213052214236686755611865274849583057281795015701233759613435957362088685918200071049436016494574490264981508880263221633293767122312177001444212705356779965727491007316586517703328631704540801065221845765322185762260995517472197773299093512520864187690894665240514316136818845585088359820245761290152569426853997032773315377946530186739839309723638418452058759373130804815822769318540721554880826771124874030030329229816580972961150442456989985487302593354460730529351445948508246573029470041409861608826892708863417391617982689842273810003615203609552685052836238240472656377229795147310751751027686358214425860688171352327134116388277610011556629015101104010468497522900643045101867013748307197316746145814660886483619259088730426610962150789045065191764730512096706836168082555264602622593480669789123693971320751829672310027209839120517702583601467125550027908768808273228209621954517164168303084918277483815498736695069767754072017905986478376688082235886120082464004275475053020703400300166497229613153270400174804920820374956661832317701244905285093107089707512201789667355649481331200903093597780960882333150847444820795618883588040829145745086018706868105871856667697597022976900254886924314559270091096259995067865216943838701963250532640483482449348360726750326854445976188352110063167890139598857298231429647907348764882674822557076824096810308065117771671102775649369971271334094571740056148100905587667784237872730272805204290358021547680381063576373300504687414355707638004732389396589635536119325387433299440270863869564155237615453813332550980793332291451302954218584611843717948561086072487337928843481650789705101180491999984550811596481920365930909330496917571260756815807389843818900723074085247232272266844445897786358689386723031025614436528429010701343245805299856582938812107165812545476243510294808502352699561406370715839263724037467380544113186645222293826338257614005148420603275234690093440166515232359465245664231204581877209542967204807873619804508928871466414411984477737126899040130268153836043053647880134759031720785628246278676962213263362184194462273479382552759702478314547688946254529969895767028471678916340210566940536369473343491610081267154543708265236282236975698917845047470603909790387587819898787007739122841903056220378821981476629334429851842709051606261796308699115057985568021521999283669856527802625792652777462105001378059304668812256049893772071193408588425620380097516491006730098908417961336272206701904001104233691280658892603356093165018282338927427161155031785532984243534111589635623303985843577652966511970822471644975967599892056138170216272464908205821257886892007150751071845587117289532659423005703731575810702187322601209323075542556256484683234440347996721932239206613697909090442938577054527056562957941837824047511367668742705829378938167210327222403410522064594383574192878971340259145671091759531072936680067685372935616805118176447200252021009595204445099629684799373138800442217069115896507442297489431253408542703311015623571995240790809350552365445145997570805704821566797919002285021282975808266011044519614106391961486595151373898575590027741495457594860710322552549726628552267797563928778882060184247200403739289218085835277650585985927124647823200748383775412050776704562636612328648050752871222318720967955988981783145861093334727683692198972612997032570074388855608178158105008026424995157485516703622398705679850322883648761762730503745940392416240943842658407873007235217988425613380643726286888985746817471380506259527379007022731186898929806455167362557412217218044159016176716860802268744256392490871093026131665216127546770254352781249023311209318374294195306059218033524140770266393046176877049928194378179395553248100571314048645916001445941547761232634748620889849854080107174700137185900029973619400784059321476637276061961864739089006362624239552037140698341708880981491174494570112469116736464410919685235882317293329684701489636217726355858270781498415196444464044761948495124318274906301676704828428051794890031873152361120814071437622438251629234478709354013747970000673801262186506137523236245356549094777799686074206775478986368712122854312535984727926938789851146685104851928938865666805642223596929594887368868787218640691237362594073009977252934017815325234795653827750195324067310278193566441720115593982656867641348893519882748685546252470034433824220800573841655469908706439331213229523230467371653205015379869278950906629965762519452601365732767030929214954527108693487562385805842960994470733955878545378223663378818167820530654000432772110223972825661790291869834944473831462043580148880903553844410005760262079263144081306921492169729004657996844231336905066582034334331510179930397813373852356515987524994908648528103316306646846831801809031838014875162117436423902754936924810582722390462173297244931625288566953848768429015207569470467887996189140107393844557385857258807899971922476875811200566256192557026710792699480172112043534397170133043358270652399674411314941341145045290421384333639426902229906297562212035595043743731864893252452917051732658523555209814461851478476465358465718157865850024063567014788686335063635059215797564784041743692407065483562138949714296058205508277831654710823780128441271638973061626130606784154884991598259373511276799573543831871705974527361918847760616644122004605443657478261657708443912156613132606359518522355464566228924480349819548638778698365455125620648083518687638419710171874933129134236435446684207326384938209238203536093803398967203423695978946542115591499656763740006935961488337961896346249683060979090115462652091589842627099342421390564985637802888653732701573543232422368356541261949014763348107499800243338367047746184534645946671533932015363478280070022145114564172451471839945846312184394784554895845209422313254497089018620552786732841291347352537938218665916511828963424518640624582741087928949426691919403389709659004450839849032508648739748775602136029039121392229434638790571751720810865629949228389793202881633684273909061923756826740513036157066480571566732429936326584470213946507006349375446097570047617585808802108893746945723836013410371115338940436200604134407617881059512338583759521320091181355227725967945385084465637859762163448644755279181356197830575917747533329408025750122495679893809967478746992950428855505022437765174687546361810549932182872128639267109301017657398576486258357952854656896918630146325261087151151039795809544679145304445992699716368123512618090980767626443565462995974988442004650500069760142568652052693633623290677643376637482446132384197462111904288742835670501643302695070674828311907977155981902796224622803275700482026113738782798529532993414433683430622705827289317214731345061333872639706618938836915466193355322562778972806781411090012075270248344498198441755894866415599847127283274509852894683415535478126037973195705357163762115861917710060814274555243071982615589942903306685393311829570711458706443310022704107260755984117740107703232092893253367489806500363241103377074601654521410539952283999745349909106141746310639222069448564833078417832003692968815072009734246293252370231617599664868520346006692208826546280814629877672095921709175936577314682143387770706097324081426259302639069925128458951793330099372022842739154945110612309531749977202535115952179817526007253280610912029166398420615443495013859881172900949926708061721094249719536019023418448530713020503794210852484509670417280891975675352173588226643992133321435473025799967875819361804172143060058279834934029576868563723339214082770027827056656676858644932470278178096204868044849897507670336593519387098782913112503242387723946673031590267928863376471873231850815616953668207395678775524263150427896826974305978179682857801053077647932903618087799728916595649721537089088620496777201236538201801471286458225800778466646885862130952269568431785797362023714250384516577974846044236631883838046775278718591198101134292049256014406784958552346607206748882110874296443977304814322167339080531251298495846194392845145769022076080778691933453289071831542533090491074718994482663588815112384346531040479776460998450219536537682605640306608759484682263255778983029464112407090610114539402364036021205415680185330830095872894820768076665489635416816612545875509177234405366690622143392631021741501709004923177837064678480965036023875487431557517325765062869617000784906226240300303406033866282496225926405269772223282038690988862699591104411166286779956758996027629402366902601525622982471924540763086729982235961028746701807511348635480172921581019552116533063359685508909268862378700132240414310745969149116145415879740439028793118091870085038957125542479695030746024090361265406735308337457695247178884633634877050484675424816512468082907683969811038896136372816100488027121274725085138135037296082212367796862388872117786341763476456520627072373038427593904979543926634370857573933731549460929226485114051361047970045953726557973006670363921481831714377261533866160342665873692091551330311164308550742031318976599467969848772330480249456346994091637039005421968532893939948980588645229660581254424208859794767897843590947826301105833400818490369314036413911671060961891916554614070377202975311653435999994018913484998434585827995501645413201886245552654368460670995226653224328598084051266722504720487682925753362554973735848264199400399598662791640166984746852533220434569515562775829061845919312137753735245670948729382461656773226395682918026427502230134488538602046440924572755218747692805204687375795252187472822229515543421821065910904279790703394972916797159181234940759798414849218889136123041334998728684729105095661478776792307710417375776106461949014610183661512096801608597017583967257034745575109278773961359890560177168182972215029929066919513977644102582515149091909641059877919579683090058151795888044725394331109012239307104702517239897248637704027342209719260648751383868546428518587789530815099719446936902277560499418073613265240926932834692831127896017914362622108235420481341642921082431643976611928651549399077407196835280519461086553051765794112768282104958011444596958533089566715364112454623961199489017643139189490104641143391688573625191782059466199095269050534324302453486606240910570313935004039905001818425798538155664878883806606860920530280721084770225163728734908800768202780538286150313303445362987705202475389034218728468602652871953220993365546494917659691877723705556192036916551788746871477785044495174853317580551498275494439540094278799473653334066467020357732468572363969055756129152644122416822825219268528303187882139043227020545002453660720755147285808774766441151024657112334064831118368606767291403404918902753989140096395162558114360299895820479132099634412713764788252403412253580011957014394606003303518537137775740635562303113403586914784797528314861085448261830470425433107312798803139939578574932752121157424684743019336546506475045308132241696930713523308654091138583748989231801365860104166352533532823215628464581980128564644477308860997036237037316986529033217608813588486978274552098498416839785196512883191078823032722350844639787320164326871355142594339851397744821914931824809632975201765082509714130459401157699345157732112378341178209172153207487580539455109840621146702351517448835735098537796855709364119808003338619560046210701728060445259906204432880220754409516042653189263389912180693864170182132869192598567524605313196360824942453141686647097795940821047392711926710652321115629110729832510178040563975335928263685137299886104160447573925151272418952313212659423672499134119143194941686205885948564270767042771081601781813780457147533961787402061021597617594106642669215757030829610047162946170553390192725851062977489368509365044778175438272013503316773483151491268148332053325554066141881733848088226529870448589722316153528730212797478927510461357585774635802567192162542818097773128531770946372967746680593230624619307677813229871733672858903920246075355792557120660119512751708981317707023485814705460972925261318893153778607311970548649818754384602054503771348930183473242835930050534021997576195369286720108624449757310555528116167968656223478677683175276357369691893606563976021341087223135046641739585635916832595709558065746836853657273997274826662056077892996425195210082646580550065736440070413584339690923193277079076906673110743505667652740868426407702599396656297064240343888469046096187010657538351177687108062203457907028921096133427954508284307550707958631967852454657854865752695172819514134244621410512350705072057917661956709075708817018584485388711131834439520659651950828777454464575609423463996615104842917719797919529414901277853124698395205206545623051551030834666588013530523928086780282752981828635431410461570542141038128564773353509976631051419991704491138157318486537074619669420295148717702206257162270840651250360460278273143908357191798736592244429434308524066653380107546196224952526013204813023694174979624710031966604157360597760268975885250520132796880887582731431208354318967920797145924246273803518669082885726363499136234498457654586483980523241070977288834025739799896910274934281699421664945627115663740822552051303600123254616164534199350311187952056408026567106329617314419052763393425701621277641222833534326530846318371267892964647435470673942610248541124358235545965613938972804276377034694020424004409097103310592138534534279142661417044360399908658150185410013779413958547397675067855500294730782197529095901756988423883316402685335964722449969406818942801521100700320056493933091549333902911957086444630653010387704492394715180495469389634974590092407510537102985337413148486120023117907045237147170315758294863011764695024672523733872400442534639426955684488670622745999054187132016723305261919962659603427537976485535386674235952498012669845441452177509055615385697670059243087587254946576917041089670628947463553993705763612360443724763949766272540076186337808714815008406702654494344715140917765073269703985918530811284548113212939554472650772805697939287038897438961097263991728746472804679469847025596862583613930740984062315525929499105228247112973438544250551046529628421926961601011014033657112382640655227555070482972805109870946624976527640183563797548224931693261519017640089966059746360125759036518873297161746200485739600057764104136253413141839293708714400480177082723714899720421327860910785645555628285175236494148715208568646099235006162723750780204752762367495967292768018826059094217789205186278147979755954150037142747451201464063282392975277195994671756497155995581488275661714599485585559736048698152015217007133064297555859555323856717001240948602561790438521948532935101290537288864189325428450880260893394408122217269461964210506813822810812289723978237865032132778410534339090485374149706917471197986067506521687846058687005670101762122289591192004821624084920264770103759955219320770045865239348400444061868764586315262938641694940896478391466523941223660198090652218270681211460315498120731313698516774938303216903246315062481100385747419439032441890982569329836082967942730302110009461487273982987069620836323137394796343752761001776244345054454499994186815971830050193932360188341217357442049051574315965064897308476144609454816345765694826339250719289213985863674802613471911309742284402703870155621074763792523199506903541002741616466332872947087516331678850237702448915151764163320278065906422714202547969450361096478499128735728947848096625876264726156565815362012593633535309397606849166808498851384955300174510267921371023812007385612054016000186145017152948630486147198241254434463400261156703939646223989534159716719673630688211875714233770290935021246737197043557333840423353526088264237844205844141493619392116298389738802556802623515380033185454605691239184922032754298823843641351049633996569369525697803521910688512038657705676488489328888268066009123409498149128282120910188359566166221936559309887973409177629243564595330699036294455337766559675684439294320774682539195612068888937821935841450451663767550791767460265146994705746140665937607121873151739822100155512965353690348383804367164063536493063756654732896626706733673632570896830888674367792725458617101050208154421664111734860327357177976614718634656458255887205550181387859271820846281463506779073670798380286270931657842489584767791577074322784637321482668626534675306791139792517357963350263669460393174999436474083564451838462922642037936501455044580637809818685536886356318094276930034448740733352697155026847334886216863860973304528070922554501613635699862758359383521434709175393184819485463080712693803699059928579301635868698324286274015775432498914363682413279459174578956064984755208423802394244852504882722927294947681863537483407210553290857081054178262825400633550894313608715797529357065455106437801665519648394341246288405977365164005459345543079458703509197244670159872338825420935817072623663518818118114291817233255068137127248788933793077892756864529817421494411499780229120897861394892007708231407399215257414505468001719806406602669026223483586483437368263952875421848307049225436881697466428413742693511948986177773785257280309304050852071574753123174156320088572913679096356740851982104595826370463723054741216794271722199469206739270667113629709167366802067029813424338892071959627745371401997450278086692883980790784741790871780443657865296788439008210349180402563859509188148798883362171872622471645570891625201664566615677975823088166176158621385224484556000626510272062193733122665541192695646818364619410968578413744272952548781659506115167503667974699085363200671094408126623928601516151535172270189382890646671627583361383870521264739995624834367456904465668704485936700782596534310335612312492417318683778857968816580031442594464720244486315648348471903766266255305403243519275101406979404124389911833969674430453025486967351944213329402575934985636735634446993917989582106880407695766612761368499615422574650705679591445432518461550335773528003543893288021873731787234937052938737656851657399175522199535887986381053389391104184260460766966505960658179880666923859798653545747442587185883076833999658448410041129675408626358007103239783357877308207362709804874033360588085987495008382760533955199815981386743988305600560943807073414498776325091036102542646937177801106447178796998135829610555039133556569497046104895838802276983441468245246932009933154682002002732751455592715815508961791086025331577881095254347633857719910396301170307280999447987806034233863697069506436068079368678972858777232123844962503733904384920143693298414313383684069709192356893998755677670715940902721921878628903175090632728863518659616796382490800282720154976430183445609624210923047027179775944666348728330060951769087047118096998852268246675951177861053679882061408863660444464366329086396108327546498570291411951375315880935841032257220480097393915947856912347788410337102656343236664934397336445833286395895946929877327477419888301336082938165826890862956351013581432997698294977621642079767329321045514701734746878437914381651453727228459534291945030940631245576597341091911676146989424826516432634314666136650089498417075738224930663678410098708262729625154502794314106376416632047349631001125886645802896554471785419967042696416953117244684428204441988235543260881910836774613605760485687041602531851888529307719114763220521492094335334676206957640749389319623295430887449403381719051649838680985302630503015296931707770253821773647410363183956188128687104055084027009748126363952174541229740054254654844742418980757236932537390101690796637176833149945887908127716186840403644261640685769446198467640513474810412711116671037343176498654618175079965993164631453581255419701107350548189345872994403419121013009727605857630498526059113331992526950255052934963415863402275885865291323799259661830715584846339531261398511192849006655537334165139784325950868177554116269558434914534514140970086051701077850408862605883950146165207808298055759204727083835051397822754517168664433444064441045278611878579841762248312440913671060573326325300105395011921304067354014167617730740053553587488254148049909853564046773546477901560345198047159711077571856802943563856481712128543003729401322312029998216904161111901510388015933871005297139409355058096342026319291794818241570174801359354151311280605062088924875317438363187989313615941944392171072873207354139025750584067977183543326834660898413238819418877703378811896247093716452404444285791570604169266103416251226653521440599231361984178976050092823836163954242967121316119132163806940503326176472755041238271334703313841619697592195830727309937718780324793599416039352513564419800274625407854632315223784880337492529036441656118091055547441496293857684285236239554981264506036034656545871290929615270007124651028279386208417038363661536235402072068590576755119718805502102430310235849523576441045756128169303723396497846064503664866497335115486295194320041231665600891984902393659808913065472397702899824694784896713029542239608710204302013312231125063199427734872423744827843939719747183866492747157646576921020891216390497525184735202847295158977798952750592349941735009785966198009318839989106046802567484874147201995420464891569301664096167852408901284614111063514868850695855415522002381868294636841832296277328609016856609036711718442480824049872035823836253282820859495664519184813182293251521460422210370206522067396063907307857600282994685734094382151927930096353650675904788386482172818380277607561659494464707506888090186145464498246142230626041440162992570906972162905569898038972839839622787182837160890682686678545751259142615378042051205242279702700378900768693242262388172499636751941110837288367410515595025075769142873351400076706152936429956134169212785921994151653203940648899324204392699972152444094493021667312097425599853312201691038474613500891197417853731958338120292429601439961972427720825371265179018386653045744662684772507307711092481449772056627316338052011294950003863116303231755866765053363956194207689314607636483241651621819897485750336699451711574878357584469387013573546539182700319598683658242669906929781160687609262797075025162969636414104284179265802503302698043929948826127512323923934169383316565210683164098492968091444605856520624972022093407963689303923678129731930762887830458970260650687694029651383061487999573243997752795389764161575962745712860490924670877157823684190593232511724657211289511242163570223976801492295640139431848416909918963632265231230125797971598081366275130441861329876932502399598037383462601092280468678236939872982365787291596043004919715048844351269898206138706371730836065800720112367836374754905545356432334130673614967150672282198429057623209520406615821518083956530196004070737558257100275714742576889199187243150581805342678239836095759343273616316775969266527499970300530989697736092418747089599708789169456998252182876147257838376162042394696724529281018260870562990164955850714494931630495649205616247992767358657761401382614521230269830338142247581141588194540335313819548739577846569225320455072343647834326503409761462944366949004984108281504104723194829206351254019371706651108943445311660761710330451339791909482875493131173696949830424630390029118951136150366994200386876594045780680269740138022428204252899627688978295120438454378849606125470275538853605426848519317000335813486622005319531654750693400535940310463762417358722351849351477389822756254120900121330584023576650581805840476531507025109084916963035051114293164610576696738468746113128261840781109839948340441796186858141662108408501425413300162612961942338096736048073240030104736527729325367424564043164930387436668947565386926534663382605043619297837619105158941773848730951509057310579578456868906130323561669725678880900359895573818225630979330878941555163904515361128296936208009865939463255596394675259327196048549118935872141217137540988821301545083561943174229547677812911633549151585481404785648013268195110994224653018758369020502631615910191850373455507971830787643259877792159924136805935618503371455349520264515484752546017574035713362735386853109575178784311480700615556279661812636928978217264422566608275126688261461280543860011278142225614012725648941401918938313881418333324146412902365603773393780061132183737857230465435832329622242660047329115244787833621943720766490061655256885532988337353481923166974360459101756017358884299486952956721621686686809048661576496630935020968645465761390687602199651887238305317228411151710111922906299165133089119388995295656261238998091588642813879822079518291235209796185116457116533616000870452281206042740989654930200141658908497296732057147400634287275513697648597427675104754658033517349169389178474995703454961722571901053207801649855889973679784910029871863678358711709652028981373623201732848201010188634778562560200317193109950603163926923928390209887349583610305793329379007570085556752295940985715757990790406387058875096152612167060157595294570173461958964026398275261420297644521061728515921637495126333419766071311121219968567910762387962052937776769086732373835637600920833725573124837900923721932188480357104945635822640831740470926061963779124396885090830315106563519785390636741530851320512000324076033928959458690802903791088909548446077265262243025709997788034594898301483188606457265631755074721117500196698298686713019532414337064561573318386558932729530457512161354329649287814982767123502110918334314189833882249013012372501342123980449876741519382126203370305356597863194236685359865942509082480779401734179197802059083924282714652021892481426674663647715822966920703538565523622021033098209330272649584853785506278979541133626189331929949442139733973594587911203848470127182390124398360799678022544220223744269900383913975139505950315144309934638238390742235901027255159309252116273062039692626153398202832518128887013926362950528176495499739135757346891962153359999138393335751905346987472935206247213580986532957404516563732491727598168247965347225855888148224135636148996779959848713081755971721884437998377054453895033337377528849270535884797783938890669087525306171026450092367196569494066548295453549478202149799456650352979366303731362498925735103729402790664969436659896435677985447734587237988820485366910053848302363225297364861084466366548481620752758802660239308193406594236795902975833751691660393627658088605080977544788759762406643281799314152297956857335331239063721121948524218210662985072005953667267916952175074817980690941757723242654529592604768555547569279598017551068255264212494177419085677068976755081691612695498481925256813800931353203186620864441787627293197808871346954501142897402290727312721200580375428023575474899557542439071203824419732440949771464081608918620038899428142119462044849409115932226868483455954733900857253009186275625918150239332679214830670774786506023200226961453702111018247615123924718003060437659792105529302523576412558141296800097170642586035759824250342095439230193290790226295482886952386768215279118974130284457480839485285126308970966742140384895074155156111525139647176280523161630974800188656369657100856543473816841014866643432291436434613363497002065775833858845553786080471327372380837774006730302255454237708540695030910501133012932979828425495335106613989511719398008552850581260321737752382084511282220532317881258911375183507544240831488538475451896002906810971752315080859717864776858959137743873047597541022542771739301488812436958302148967880412017784361009131803776368273405159447035149417070840204084675705230374030727368571340379692309227473835719166812337953225209642304278724235794246082360224434277020295854820171356194748081732391283354375957581857783009163989661214539645438210285192201153093645792240487063604722471827063664402352953891747115112654093785361748038863456707062709536376217545659058607581298541589733636319486074295500382794626571065586446989918075510094113468294859042614296027385702601859192870707812105145892455444269382981156374048632061854010979305380446360249806906929770521139814097888710161308862542843329189039271516366302204735837172761990292174909315111196140261619227193343106798026734990394361381713246296723708043722187876748864628585271498942132520341062665027273415465392287249187296074292540446667587667442408654022908959198798798582770002070425264816199137884777211104739855912584629438246799984882986892083512430053434504070366452294723247755301758472267111749356678015868460263263979639703848159348861743847664790367608867936755294108423837148677215650769123584184622852619844508562959642567699829472110076705829756828961071363270842116249985790895604664517163820457637198976754986392334203610755266876185927523715620534468902709362281064478186841788125400024233662036994905641430293883965671843375141012805699295810492294248809382040089424101627712490831256245705963864858066645953408831658595481590125763993897093615935870316470866259352447713248325477007512954745451332119310243978786359540862458407864691016277134143503868652701913128459139288581619414324719482372311955462512972472224845827967718707340681616246553018313630821554873336228652426920525907248601440711940619041530361412470168413242440922387887779557477955358686747502501786543185082926152987305536241252878153883296630606446223231251474728880901911048073606263318429877090824628643260491845135534664774559654061513640078158733858748623003682482712401098810227768858156663665282395691008463599358252821182801673636829005919813616059014167096080029039031106764021591299030200550008634431841087259806073759391659280479299138956453819180249284692461864391501859168790242484269699038938729834473556086663766718504348325412769336607176042845589458550028964336950113692429178468795404746941051204921780682900783262576045646384283669563504061881750190107691453088514374174192937001816266443426671651370861313822945912509014450976875022576922357507353749524668562520913618353103441726253885807909732992574293841962433747815333761214578095661767900044646804178286919703472136234393948069690278297159640988469315909269070596259925957643379416965673799676999021812182581731703045423456896460100713446444133866164304615795299965783323653050772973811475459532872940632017832550760894853208552818996422977447602692506424263288590412158377441339290922873939744310959222665221698110240201143721650932324864555653377875411021840543346389809307633891212992147699009039457986348931172185591558529219161719108863370036169422591406214233294699075174935714577674798824655414208058575031149564772441222124491225325170548920285225425451732032264066379547709173560803306404527579547565320192098328502023166279178202202613073696723286961461115780199005002844374292857339279186854226888027823535095190894296472775879244599497349144237358421824492330097350894410107993208089282242029509108353143359757377077314753087353649301192893203795524029540972482937801256480699681215828608172538436473910245849876325758284237854363405078435766667996544233023299322490543416937257829730118009955208458174239862977130557212227919046773930607256152249211711819050450910795486065516088317779625146635468824873606501837228055590345494201174523437794174246350078367558198997212456587765503243902083759185940447974548008873895661661400535321904583761326326981296914517568717055549029485109097573543250574375328266027355451246176080144762934234092681984779250752474070348794282889955943039918460386760600172521600139904165143028940573876804000819903855752157279432641126162640997206767565030381155377409934081391760596680069810185850793923284788861790532840651174272133408522910213704150686785515650148331382424623606400325625934534532021795492466274453166246986925294571633200148798814850858188934333617432534020305045614598372052453978233603307536705799521950519758126729242439229801548964932338185226737097119462506728676681406187723886213371437181255043657429992952792090533122163440878004924359915515714470851822631711179905723571377716775724031866714157724864455426414490916348776676362509253251265990788159191303588691328868628831365524068620820830441429975799350535401459101591121829385476163193113041008794934968204330994683056802682517562502731622274734050152915892706803102939530041389575432818784396509282424036172714030283756351109381635863898930214815717271967604562925873862285329094754649618486902263454223706235134710921768383573985590149634631958307112064610834087592926274256055162723582456730668839130941305171665915262321455151351143864833817464176427502399610157667623966126418251399415586851097165401132829826398126729897833985061462132249339925836309766723890279762967175869650258045020370601503819484011177478204155888715711914089626492279851235584746066704873923737099714697324469896633322892946415999117925128280728703498969607591957905373108511840407267923496367082886216742004117901973606471166628756499249330448133472852276655785357210220448791185574283112011295079159330741378064671464056367331136439033509319707101040083653409331419988148890252991547729555186568091487834326495952959645800957054442125397305181118696664085085203554775562782002290446739053581275452269802651855925982230753139014862080527720065184693137359265545127919876616741833864952258374712337055058673099428503548876851497540623167168954423317176708763615119285330331659765782867829834815107401218636268896984617105128193827191188857275435468455518958576692354469579503221739404828599821248346287217985786197276525278889106666479541496514750320721364502840534964181169879785973122891230385636737816934033037614664889903883537410161450626806377484319636736612820381661386037546983645645984688276285845408969570345352317599536602458441942904102348417202763043143070300547169603712092251170136681805030102332370244830968042442327661624900865018444147220526888493446765115400264177418541537058486053035102130413917661515489540595061473182420678849040951210375053400507763764849744417185972062262320901769211638373749590686798341062991457394378663485178667531364763172373249385397633832763024425822738963497752558496424373523699780862879833203528553446122909422649802008834332247161365022097931382495412155683173508715887401705106357584388111673709115403444218422876750792337170945969156139974259103887391691502361262806420950750578282128512158474993031502041167756746129994091134481694791919079691153366209243708764629737409299996045121333191233583168881290985073733535878539592183767388211444451637949007071284053896498561106843139396618634893686581761070166125847186072388145662617999858793461621172267180082456050306107376334287314844038161484023649807787356024156608562478747253878524706590952883234821692296562709643264636319405511117397226921535761511009803571348323250890953162439013751672776856084100461750117991910267321050651902910478891302639087640092432990825894045108021761975026986919335160921147972384897655126873118764314958471587959038286803330671356837810925124555742081988205871755506561010746484961642855747276558527733639030076449657025967221050240529916932634964730708226696958629684471081595402437022739219902918332930566736101197335717264292223213068239335020257022389958950675584504088134958425130745387022091379001407008514405108275004584446821000870033593646906148935112218819374722855396671272904715427970090691420917204597829496577923475862891387581614145580285613533825881471575031905942769776973924343995160230893372141716056721741412046885616855348490933674597264781377613482715128218319384004199166418137303383387426394265395011550965052930877583752021542108696475170515066130061158202461712776267221072163999631716180640594285445359580299273142984405054695297433497890802691408923409679758456154644679458253076370210852801533781587016251315651805708591964630723020187871492739203264873001565821818811902866446549543460166463895836518460193402625145580237911919712643234854604370095123294023084576032676209431697670394264627497628984879469473792252920803648634482908377562419902628396788398516613041572540054739659601983132035151785591702204582238040401969692937592096106832369772697284646566776829408130547304063914439270923818024832666863363195071530312979626735602960135852293861901343361122234743171350612422601033906765409150505189561809049569815778783737185404767586551068893205074304447821220676865863404882685896501956451047753509955749789027183750167503878613622914418156141309374845994801479380206471085698865721418347331997472982324892898974193818715553932774408214472836895013116664734795527480526889232730512961170068695843047288939715513678177484650621471133855149002374595266015785428281421352169983696172738331302088735797233828565885915643838444931210479832468121847151102558312440596797892784043806460424273011688691024615863464233668014387395806701880122970768369775270348013732376474188002773208649446404984566857736887799168471807537857983276680593615201244333788117099589101282026759219497532477912645349802885473977852036391940227870862734177195923361789697415193680700959262552688973198217856803403189210550570297301501036509351296263363791413413796283163969518835697422647766655219828398554128434987782098193042164987304763147392768858328098450454777359218634698578982328951561227485983057974916597561742390923125644387340659775127924577249119148316146984619979864451596241794320275606156075565314948920876794980442294777057793028180083479922248857746708802713244778491525218995209671077382546447122011760198263703979992143092361321113051491210171259511148122480536807720065290984150764083710499268128074760608668786055340848347570088899838403038073678342710108079494763522764029700620909113942299085823630583382697179753229642505959812762773321845757837784139749908653401786998063926733261292840312486983757342283111350652331824379134939293738251970122893639200120332782512530218588566701585078425232879869256220555758801269167432309653020278522431003328968622760169644267415788244235306580949652789017455569097597819735967431878803956808187886845121086752216997896506084762292967191453917228740322389762653567820893701412750784532085479226922039532041859234284197987574693269954639332516619976958494006850896693521996531700880034386748547849360607546723785930121583240884773013294713539056489265607373106285491682511391120346114886393812550381400607582877526667940696305149709870621965948306026932145621498500799519556754415288470432192275999929908476053453110096127086159403025335040388204757409351970935623767227150295623734751121712203606271086101300231927212607139565650313566850738357043372810555412680957373827390492003539413912907421166008232335012232811304141103752192198426584640005485888364553418206347053298011933008737085257740065769450652546317010052164343783431894854132731163054922145349321250057398271556586842597142991813038503615720541366153166175572024625754644454170866359678447036247031674356912895745484209723709476551394085127823437871222555801836317533981167015902116080378477261968335534471450915960326778484604268995798761882387211475991591764531153111788253609740573804194315887125978525400314199971629203766366790913382015928376408906678000488459731366231475703826134938961848531932782392048172421633763388047623095652103302709516997826472918769383485753825194959801320022364176402333907527785435623915029460469063017571864604349265438150973138861451411636704211251094113570847106758422076925712016907274237150252249007385747266443231203371511599936356668414025370197184090273339787309110305130535694306224750245069714434104128482288574080446555558488507669794930574431528235269608940703222076433922887331125424835941280249197935220722055667571015169550703546903712413068668213000659760297100562119645275040736523277732356073566140671326131829923562112124572130609943232037875816815417547034253143204779153605990730319856826203715346034412939854527453625066094026870743943071528103408338290983642801249362734344976136328498621089215207308647708798941529793384816577483441806569888375629930501025868751918680349146058121782996201429196623270643403868115286331605089986190776079628539447162703128886271396981083348295141829500788190216434081778474081989245531913920659737359685103961466239021689544400963311166599980375378699119677634193795097109991007259455194952966594686888048365291177246096937005756533792196525195283469637193416861333409230692655683097966315239934146857138607481607689031111497134655331348367417244827913529681906397281523077216316539132135408766817809471780207242522553180237162509923466055621275776481339522796793725633392030892717147543171104232452695939379335289972144739434620744561881490213975850456205582469092158182449599320451733744752344573748796096272115533533676803670210256805124908147714308805925738933039266687988571974884046338863225285622828421702929997625180195054911694281100239476565877291130185920908469742297171454008080757267156639478313958732986865003756106798878508916728116528261275978835628024254915683695195461737644971577830568626824304329004665185300436305341176230772271998047154480981883841653938553229514293115768254955606872783056760596969378065915732019529043624816775273097329494584599833283689501179353773805035970119939885914005373273099596298201439917916999172674802961787893179244710898451936488665451780483862815850412142433239794274700400311816582258931713365647583652917852315106629267573817233490017334555395089815155901132940067870494702096318623586042296137920711794348291294692145182755216491492620735231289137962692576369368870815981585687072807438326892064589627113080250567529341360987414358442845478363065451167552556523116563484863083486085531066992436802804383493960183863765203415945362634493748407203565955192134137459818975566559186152492109260463157621143814025897021247909019239277107489262163838549425454425979191262776283201800985517283355257412160319917213994735974185881931679692946749035418860968220642723213756834893046244332477464068263938020848814438339663719220845801924741916653364531890803376729905511754893338248606016452838937614805954634919502028794618534877443366778985250650617110357681391821771539468831311605662910675297616969543782915302044673813958308583208325229897600729479085820964104000118369843934276417443381985328607904578690199859670449343600148712445583252848682839249822534972316646309435579650699669612134378667717300307504406355742545661435871654399006511589299091502790149486149743161277046230185513167833475581127642163049940021991946806323889878022809259530869403732669672762230441008916780869961833507101647454832015576383481071633788429635896271068794289254153173616823235504357393251118326697683858474448685308564799465893545262286837718472852373213159299243380357385401451849659669639700746667712396830909950825365816569636042555469859950208168099584931885776174511253595864768735799112939854565052613070822117210337103271504114303480329751377789953398912754326679959201580905595298433924309495172838617631285525927477629224938337153025284794541001458842947153366018113142788532999505940416714777165175663718214236505188797797776574484396860849435703658208997812359788868522292848778060566759243073639980679238849178124977146049555312995749436634077312166538264562940648972274477181242660762220028626077117645629186043852512246741014545165141441546617827403457050465423020028739606285738151469852732717015719095569537635875722065284047397485849836248277999671288138096307768346285033247700044060232454872180362051420634869116258416623300431956094315738193902335821646798591337811086483732451223940297250715065989638266049358774432387151488593863372769691425012413249317077986968078181476118102287981294688174012404944847321330928757826867553170906697935379282657747881763703972437204865911641950461484248125309985287108187730230160740498141778754182030951829515868673581101641287412578810939654803658279347018324526524672144274826379058651266299490215967659417657588716173831223925177826364298661786102907257675461148027703106094074865438666125616866119662856551290004086332061373333001539349477708614976062269588549457796513155289689120676726995364238020858321426753863352201738836589743743321057382398537781523227415836125104021049910088916832264385697526830008293688348732463092056993837432820679926116060349509365167921467052141101550436042802983037164143154460811358005456182018897344371967822594112961339763794197748407980479706456510030432883830639849998908527368404559318190901688755223248973699809110669688554861181434127072715849749776531150134559924637408488575163179288483159629848320423315178843916652454980433843207277832672993720096277650680456338062987245521201911499486051641571292270223959614584686459682029610220889451235250928174489575276267511138414310220425079614193913658013832474136800156898753064646087953379352196945071089000933099498122944036062258367206319983729460373285561833048518495129473054058940897308150279066576395862727705853896137957515555810476103028981084128822781169262364150797392901122326211739578284147934577694846386502031568877738292903517676387673910626180388008383187851164682332793943609741425402771186826420747422195250688577601692990099867889525195119424888874066482665804925117464286676763614464882779901894442465840672950357812302340979647599339295007466070086640578781215259910750361282795228299550564119462666324659983299379803751517309428645632503168299860566385804456959371040604633623829076422991553245904614583875186504630271549254292540673719805860295131756686953000247473946158422351562823542003386216054788826554778378536259231587835845943599379899426231836511426169165799417698782150557625394675520026017864283215376794491827286933307075901914391721039996723865207917081944158454091355050074240220131373632257468782206686092274428271631579605422935604003790004382608205198754745813362556973518661010654207793654676603620555197545269561302573182133700285127191214535164699531073275101855227786764350156298403865399493002819889774926004889931893197500205828162178862357923019255133956715071378034678577470770111305761477718789506294155209490923156759392551928683859954195968880049966104844683248994733880689543487650405553948801677519478494444637628899802822558062876473551996138583860922993236589463235853359719461965347974236107556421339317632550404315188314100935074385079338412557599662599350911637786064660053304069557376009597912654471803039836311664965942167582556490136928990364246237767676065002753424304603501748466517527316794766882635900243393809947360849068463509595930216974773153608108514628088946942537386684547653702284828392211816568012804871222616145541502736134556742723052526244972469349304871266482802266805393124005842203149714915758741403228845786689609382462203920888770210977720521807909464735541716992731709857487340817868524737004627801429404601747812872499749018960827926507202014851530763842056352441352461334438103412448685742825554625242890063237060578546038127832306353765460020165142457895092986717174276158506737780352571532488835979778316978078114008247985882687855135355751079111745152556703271279847824983398220137896775457347974408112188022828709685492353867505811961505909657208353482837816250343045567340813790146281235790583575666461968590418415989995260486275338062581165475259422859993361543836078198150307677814799627620233847125413074767593694328643865541089135619724451271840897106507901855457653573783313852167189386721635749563594895715068191477276712092392540011847588168991187250616811087477873965091964346712670740674806220645778799926825685751101229467723240831383931253229949447881707212857329671058740085422663993086196770576956186449723552020266281934381111369321728947681643825754110370015825888937908623493429890532918699246200758636319861283954599335293070296444226618379860962033409268717848868518196695993823639410483753726625018673330175100191469914352184372415383569515388378747877128605134707400142605038607852846249732289059131849068443123793005660555641553784226473586127264839911108706441275025168996844082744380928372101994659967092030968193714386309992790947757263207687169155308814809040996494438455256589361360712317560220416962226816080099566095601102980808890287108219631551877972211157898633673114348088268276822311016230917664567855039991394030011046693103285131515889847268250531504933943933174276741066433254241062667748497486102176436990326592953095041936701248708748643579321775208355735679455169185746503604837500461371852374581687425570468277339585538463228730853038984157567327783045731607350839858436497985532552164738080334679152120069955954889722660992378138126057512589529530983462150686742216411882946571613153078088988115809365146152033037176416639439775685368504955001252822417793583256719266011323892898146247971925962011771470560383302550964127393036897487563974960228111403557257223837422733113562546428968371081625106922195625483936797644012061162849435997571788535821298368534916214388546722295959998225920921267125191669399333633936263387714286323523250599589526223254785289482001857931845991319483544609586253648884976706944809009340048977686343994692704249821882760439503747108719220492455701966468076249027159648355442503525971462653450841962001744003174102651643293492151117708481910796138387365707635042356695223451185918999201094729809643155161991214495847401408431570142608474068150939552987655339781486119180519854120002461505692038500380203511891762204277334953657891536438478543957618514918935641543233456535989934335790649221217367544535116350016786941995567915540550034147186662361569737549285340075295634990824371065294214295759254735478078999104395174645156546186625472610934145675398279960158950843006666037772474741793647305349908209459889045331694262527593164620080870926431904711762955348634471448447459768075181205030476098530490712497517023948807845008204083335512527698877023491868176678820412550476943906090020794845807814898946159806640932077376655485290514665898137001102668367107511121307421000055035909143935731829724984395884936393600484743433596658579569074931467771788275897423885748765635833535465954378076669253891532986753358605483656458134728545303679527851596038174949123272716065070611440604340783687607942723179853200599186408960588545284775319822196316350419567066832301830849400212527047568365467292425918078285100428926034680017371200413242272062831961932127423008027292432064904077379191727137544843348738317981878612001457843840853369339162923636109508032805752690129889489236624743403131120435048796045133187154894630554786029461047019911388943909237100372811990975441908667803919574345396772560240259151908912146426182023967034063448183182872672263337761785626862189986333020597403812636953705415940549517388430296258960586903701564277032407989310330269136605748511903286575022763853869651090618331542881307896042136617654878901269749584638336170118233251259509583769496858253950793969330554934123474628556489947619350005136101464950984974106946139430421189851538244488104098449834442380793183075778868387792243700293519394954450467619307977090983570554326821337888245182379199211801669953067806303415586001283130507845248502058207303724156283489057654708154500571611971596224419108365534867283998855813871061716926120036947661536488779607763435872087547706442485052425626233246075732778134788131974548733591674909252544016499816984602659737199025867075627075411371975228948293040027115361826489440451119078911662383908027144317168091388571318514252136849944592545656122668442743087796902887934588004937749565549473021733152933586661263059272450440347197419625706891233273446460298078059490180635582314047435527391008381049535724848353263994602226154669831412874518485367755199332887013829796160047755877417923189372268506545055126763172307769391205385257176936168962675208126860011646400049018087922753235700009694691322747660410926264619513612090145185485358925236388331441354242546713167523801450580389260520495536244798361237064545642050676762444119263294067374368158438799428682825553260167144274786363642820746501482957767199668122736938780011116358213342994147750728451481765296411034896955406308089449198501788954475434473880045912658035950801890559138534817479350219490138493520188410396396191445815000982441231406600577034092738630601676198982967918249706177120747950913884531994322264794376552289941635949092396756222468219880389387076073590117687320998126131486821361083981083046725754543589227816303803346360920627852363721938198524295397864632846403614658268548564144306516391909014607889662300977836607612739959300281588509434562292228643863379622315968439694062221407767151689219983249777506981011154686679081023445567193321079897545340925737215367113495143779090504184105130384070566168597182067920665198310782479131715470955702887160390171368337335998023041411667670615085192395914124136073186267069730192855679401308789094450261052290635276767548824122740832359991611642998770664569793875967295040973125686403407576228811211620057227753087242970749950022949257584585114639795379469573443904439724898942804963193336311658576368780275251716668940561446850681899173911378761808381845679263311078457013732859804285146853776385974776250474497083385960442809540391478390309633166455573736169889904864106718822154518460142483331271413262845206387767074633796089796684158657022212562555625249073637309183496487689708022862729462841568877632498295034262110535208675831201957011460729229576315561057753089926665231375799173381510119711593538629100098826381413865396616333105627936270880777195974629859372420699340117530004938895288760148073095315294858871757178211942208253968679226799830198467511094332340803967548723694528972763522429229378496581458305722913523537168346880503769687013800266632310558031608631243432850030180043757109517388716549146910680211335795543671848735274707281539093795647139981324117147841538741404634007502968345982703667450499839971128053913170906530676349261735644756584494618814831901009468698398591737454913294485912541567520786256869227960695779837522705883314877247898590442857884847821328851700188958006348577895561599190217104313574962859493502199734121735719645253311419262651093577929463585416393196401844361196634410674027355148113991718579521080030539204578155171693357332324527723764948778926893129327196771015604455005649754803260995375227307145172548888920544724117991225770352631296475362814420402642359001632616040889181268480888361621816546458483447022666136375834981003779017946288175464750458113759487510513804726215695550036087864609274162499105459073058705917470303213199500239421668346797589458498525225240573394658205993945783195429609310751425547105003481626882827380192032739089868519203885728567971097365424361836419805908324666253600563696430355317368774325439444988319197010689546017779225740855697129514027620434668961996951390496299254372008642771100595905687537419246750600515304288036903241781303064855751303587135608701955382632862308431275592686685707553324489114448737268511800006592836049347492815167930318941230131193548589219186603877343347880757960808117009484326217789323363632575894817488089758373034506556243468670078353540345341594312364404677396923323119320604662494101167892701844234881482445607800877763523827793534973208956833500939241779785861147322783928611469539299551252549908713413672752439699286203485327024895522797106334506340758144826417182540282417111529682727663375400731584704343295989686814510611846749121314939366302521582685426522931165916671940465523669201887009058130943999140285028381924538371520334870802676363071662322120936193280318973317528148090520723862714175412412011350767218179829359209269903730267584627921239867050412026060852877750558971648857646277964016324356098899169376181620534863020500044171814659533509081852402297337013919707484297471809741098421893504105853799258515999474412420194964111102078417858191172868059104290574391166540715987500169104691303619083000170652089257131129773748312915360677529887822932684980804644321395278500014885729233282638091074364082800891409990903841844111888260315608892637468941662317108095535021101077759064978320918997050678877325568838603788112401269941358662805280511262955328684498137685665588956715054436525208292951134622165732834514873442509534413903275294970030843998107563804878699381117793110102014975025956704590224528739786002779809509393763564641527090519868963321781633885990932903969337606279847472217324122313715046192640527342203716682553752625480383504422796623107852365663653681291079740732422475785184221948445786329995384583175126592089688681188819306213447477552824912418936538008830953217491553945164946461704685068726197446269543673904279121087134159587662915996280138678264208498513275907658484713914366093637111729139843667802006613722316563357079871710918730275463608547370748872302506525834997657542571689075962808881070951323510781227309200771289927714701455152397809395657825798080965483624752243234727935544558207183297883914154682954972344225955314070342237380078454362346076833549706605156496559232744771194866032382169405521867820589111724065454989020452143323912809553353195421678275046140564219895316495218581642905567691037186023346039837183078429393703758910576960801731047165146590882628848944038900582889481318830918750179192307408990961282768699578563149250478441915663522022438330679072220279068388440717372603255954434470296459870310970064191686781013874785746378230609769690929354130732904614940563347664523920708254475707440890982705157988570349350878784377849063483867192707655546962860158669664675717201010542188649952703241144591097896916134402065967544762911367845508044209849067656734337169780867186785072515395584489765319573948650190752864564202623520075813068378984423377630117408589270275855371518572655479307120146408299060902922852669478527786490015271851008238639874764518405787121567028949153514398910535126761387275113498588333432243244632212211891962208764983838717639452991745118484480234968009705485603674943193253923699834588435726734976046193320563791927583377738416094357133986415979923749674132051945396161445219168684905959270206449661181321507502308008047974627083031855265603037487714240964556441943201695671024242300703064886644107795040106490611385619147982678354808737370516244984198201013032256855086753621417879528093985151701470544599498296060622304033203554012945046820990546044036691566483763505207152620847598453464970067717922329349133028715229037453176272444777570572054979082867756274267762769353007819997746164815685630508648234728832785522694582446543704647062035298044388433674412198570977891380166038299413608215318700216192472638984023475570848701968070118444092666508973251544893749518522933642057261560030029283532956547579284853755209736041721947955880819288672610846969134363935864606092878943809033170469637223019252381152765502662029594040690771831772379887034441264385010646772649695822484813345766056347729380637189215578189412279831388606137036435596696192342038634070384830087130333790018900543540292611847230763828534618216602658586114578599520617527410895985836273259997984200143134750177532707178146834686957002707314654212396899453357246953215652717331695147326288851305369013287565500575266930692868745699600383758733594511707213479308171726172439470221991881343834364038771680286417445695944946551414224992503074440313797846358875199331006523724495550792498656410904145539619645053354893746644851599960805072512187529888377097760887927365001681198835652314603666423789507107581403924635680774100519154131696678764111234351245560752094284984935569365556929926318573358699164300116077504562312934826246912424225713303738108347594775974443569422098332295386527637720184198729026421486121597352378400830426811906345536121274576184719809876496490676094290441605632097339271948571230204568426985646114552021290145023119703641743097972144339966619949543406293736229292107725346501222544767089226005069937661123940773935056006371232506677724584387693347724641330170525528846674817132566902277045215169860651908436190397593793906435646648398944973630342903114889397565890857785282458910217605903651552675821629010398894905576222247692291183974824450648348180946521686890659810398623626726431783786748496273080257432204158919286316893961132439492686544745067687071056125086815322928762113207019845822665147065252794945804350213256262494404437408777360135676619405279521831039739533409206503903968427500262446579502693635028019709337589811996113971496313057357206497577992851354349147487134931234350085913180728558831240671563246574651679175395564412644957929186933151444649919588131717587564568967593589568931823923303258947400243370476952011449127375670578587427193632080414313369911666297367445581029298235361316376815649406441240662860763346239948573145063232432142835441567570921123469701167081745157197692542635271054811400709256553711088180336512317136675655314860495423945225546630098324951905288828391673600924515761305442126094829862735188433120539716990927584851977632160096781517313763498198212258284001321868442727263280749892407497987146449699047666874909357338129379539500414678900145731654547911505883620595629277856243165482001295522882154246340246790489759141876640689876768767211184727022953870181391551862445458758551980249084691360312624159046910150779010099529202468693223286953761673968496658070272482762817365979397409791578864726360724905181488979983816342996718914923281779404761876923668333337012768680956564770469397158717889009692371356466558845870532476066300600640807108915227179821637606496523724226946987053338584413604373293220586786125989319203290495990550241594330946916999464178581122422168859531320761810245238167532225275610715179314103170941207654825174031663508158637329620792576184354719539577456253934803734869586235882988067568324082860054727130426028452046343193848077500513170859877966639810684773607150908448013282405824175574697713201453073699720953563040083894718781837758924539097621495411681935301859847173268487254457977040509830390050823954549216182780658225110859030376308921031220247196173562399375526290658399551695033765046457847565240595218868302148242670679724333299160902848984083511446026658261290927179637787933305197945015308388275700676015678288579421729850290848691981652947107866159559765290373022921969944962525382835724416600287633165598661351755583271115727056256223642281848174958077817013072180648737074177320129466739443256480988559973504485924026977450722006431137610650706828174293532271714255558532093588323560036727037257788302131317648817008672024914478254421968917014256494563221947197627917280672958435854987124707859339726244410651725311409543100171416042558912631051842219284876490791050987688131272286215954335948261090914806154891715936211622976841994463311313832056875830523754500699162084379882096971691919092824606699844026741783097674728527727610992471569680410816713129306664795929414503843700751131005002233281391561490804000458075777613884303735915199197619610633493168578613201595217873940017641195158433012861494534134284412101978074067035479590897334727783775988307167372452054151377799781797969498360851937260896027272096683281507828585194813828294734714383041497962139947249443112052790145060889552064454452449611205708233703532948481133974071518264952187702123469205090851906064135744379372736725710526474925833554343304935083418861867255930389192195611324344189750864703341510285286628019444102218438929739496994828940647219595907299749233316652079939176492179533444543202738124868527919254932783971474743417861396818885316485606926029644479763486232887583267144520818151655490768984882272188558707101118155006564643520391202366166812338448517608383159489268579040375285642138277461777530671475456099315340161100485929123123051386329977501599880594685911282229885863080919588696453622489831964134252571188408009192448469016682304801035398954424677656844596763023658934780029199596877788529915187192652838827471273358668423970925597859016823065790129175111214920087323260928904008014911076425011060482080552891815509253053565118407158006403787474441762547298393973420990531659054534943298804203234410081104521551680981146926098838019242514968582630037930259873750825357760723323953659099387071382129663786469840988610596867553761275636109285085306764963829963201885250736685721418691231368419546400969835733096310978675164500937958728347269429436410583028023953096655003122746163576886683109105939948304814568286757632864102349819087664543456807395744519906361838248438237567234363073067945958705747239022058352698552812270590486633664584328375494610765196348686538127442403836257125395348165313097203443547327437745362551749977248122895631119635231600231672347227788224932627122591325694661571135807388331658337593459523631398759261144682866226050231745615741550245505691413243411299579277888307777009906284423901542487443447666049933790209942200189976704172687461023055235093456939061430899377788543255702487789008560257932189684173647843109355244938116478270182678310993384511802951840296892158178084673239557041268807745849678387337516950711108570805068300604420174116426155795272628766312219122733293722942011408992794928780998434082612702059381749762887344407620669843259855481753446043142797661230610979049953694810350678477421954842606339026543240407210719838811386215400547090492924003291082108106754636947781095012389104900445878580347737095957701959207189638271472220869108052960064086176456843661509388039608783894478071492373420039866475233564473882039305010606602370702912691582054837570684914576468978694313508639006489037815591744895014590458759710085022543190665262515798699846999829069470555909857804106443755379242554920920099028369165781868864718419567222937296919389366850251117357749068705530817364345239090531552043364274446328650303626913650618207494553657336114919358026745289128246023499808827936063751221280007934752522738925027021567358636599523673558153601860907042872821360780282140167516584899570543778730176449420167112730716544566429758839224621328283924778307272995234208278146850406708749350181543745677771386765229523959825649708230566904708095050827094819127605126047238627204729453232818137929421928273487343542790827981119708203419319444452109461146809269383400975495084811958609401642997728492202503266916320636343420163784285486100673136821285288663529103422410808725167683140947930080160040776554968106188108027164868340487055114071466575671791654046167973610602553649923084436504283439596090519144100932294910466348914045711433117915693748715178191804485113872353362784616174132467116651309793651338777409430026890097829071108626186219209388629565771334753007412715191264520439636358329638396144717076625023170728235185664275176958126797402792366050693681671032508622535948169388601113316990155378762578335660638720200508352861235608733517038423926824264933687050452033189611617040518979093440435690709805859703779528347889159120442310814721133873827400637196391554373861753211010824101040674327605142090643456462886570090531036446163104629994719213387668497983810923572458233255763060432680876972243558562006057717535765011832470797472028209756547100529505488801906330665674231044209072096733047448866178360765604520902903165981714674255763984355635035697473557176135090033717755413428065991306797955958842559549835198198215131585955688863006399188304329070863775038960286839288835969229432620639445885286715584565096845179457985038603631808987224456260471092500624628869623884463850428536289645802208038757113339979903477255218263406254954318194669179532145961544872025031312711493047505570466881372192246349267970787160961093529123995909041899080914572796117123965517425055089704384641988706377072097943082639959087319823238346163482406320534190378020333174601992366386236681566855036560266076445068091362664261245144880483533168734482028702255744275007649545347677948500319935213465369460091699151356353252590059045871223770482237245938146606046018305880437399845787916168036626986235545885451760267278471909864930228720565409927908203913383811904415560244338982629346798217227447370529376341185710687755144188831340470459030138882783882791574267314104493581628313087607803340838792624556732315778614976460032700156668512362206281934582723093110318297909861593858397214809643919887453783516534434144649062726689968087013330422478117934006540195263639790740783421711376239386693039731166369986901333604444346969348618908862014184920342875100063381054074172075434685353487017450609749976282892885123722256571715377094145678836764079299671546909954731284279320363956920388907325178157061841421696581347743321486890681854168884142846811517643903396413502104776288508294392138137865453480817892179553981446058932054257809282974547134704816354395556393814659498404098372574378113059226547459873038269809983496605295872794059773048427066882987416378457674285198406432480652751185014002577427651653535614310286015713291118181808039593790927269398613239851236479080495475072884540023307256148259239420233257415638311778834428629582734168604116595312678103765003855706217094133983826402707403118319622099954622791040925520800946782786178876550639308070232323836022076057147169006154567171066984938294496541692559285470660331798940341888391776761408855341567387353864489369342570493003524473539915640078029902714412651062419663876414184703382010346336011906827261335013699483974940512455114263780380906228419815459997434856909237034974724305820325737829740055586944267930069448886987935235184836785943538697861071365826130928060832602857915272195362227770331173811917366395363000532815570515744830355077961145565934551349953555596345655070766641704123107952044153135592479534042414239186736276783185108290670411420696075553509355997575454490750135197445205075712869691783216812419798924995503794849655424376573201061219051493055260336760323401428660858036450713574625766920897809841044919129291722165269392614808525156390859114953593019536170875575620731801626166039099241920665263837239532635833914983307257958481481169338657173632241447230764223370753806517125615911865311845289926835494434504644089463025858574933969354158866407079072482615093755266663547797851135075360227536073433864412330573100684502206905932135562080957568375797980184211716297908272257678241129606379056506878153515838821785176196919056043042529472254241017962388655761576833288122459824311315117144175909391752116279671462594233570646438775370257214845309079465480468753619464083816306511477144671861179543350347345243812155256972562261848809945426893150242780178052315085182593241427216002864685269977570988911839160364846065253334981620372504215183267075709304451867667693484240659426580940965295836900707901218461350903985323106904636425643557303583766426229813182013201422102967640635890386980917515754650848009744471262952165055405268302385861442314872826694868247630565879760040175506616422489772638598926330364580854787179233603801028067946866045745608971748951743045344531205364311408206342947404643885469582344574667930265005818554398964471404083023997185075573208519108035034654772777373123759073915920369080772662994146994651323203425547930485192422381879678136818231429864396899981388824099167217961311741540125649504747529878846477842327409982651547874038191243993750923608007646064460419865363727435045041977490318526747551977499772696847490962228430776007822183700172123638361162722978932664940068062761673532048985790405035395992370826539282128598388678639467458208023566393061337622666967377976961500925026147357163438072063576073024382822843314781466427971820445833554307965774485089277336932925842821132584656127347841075617362798821503313435193426156032896404739409417991976423755843998549539414030075747496274358325858319114738120751728934573584825834654897175743915579156124251435807267899211775182823255321005749878018401186106115063670343219523312189689144135996839601417976984788123367364114744443152202842227234456058306532432409985529494003495411418937698199910074516652061122895825503941182819428681041278472572612141446837951844563310338867802614407914587525456569546845045326440472757090161965206802161414167662854456503666993788184998936191880019328294163842090341900876958454721033260236128344353094849476264996684393008590624111792432985891095775370652948548341689417633870101255395633451096264942766574604312195391016866218902923126306815672137529110051470693968149563160368385600278311017938042396505870409201777732137529756749283184981222812686590910769740973783681188058486345079959860915340310118147104094988176505410155513295688601280988519324031909115805491115487573578690135780519082462673174456084050315091282765926514782527182613491349842842911198950264935766465676769619282358787216385651809681280624604683883141743541480953497911161999109795151729586130715795831428921096100211365078977570173831837476346797359877466386402701332500229881084038403088111863167645867254215928870721071509520453743739090727850707529013361228211427871922123532054487631668037002347309319642872958964272677725814089102076766092220771869672373592554535886824318740080290990147361840020172766021123367216231015284814034172264318316944006124790341391503271440462740354754092944028813735678799224439842417809258594559685848566502010714450479618159647383303962280824229280667036893017537046564173539189999495376983865399410053651050320124718354980507184110439485316873387245275534687177757658828572143540254698227782091289833746931824339319981140229492271975121708476043237425430108484370623499555002911912287898492746571687371946856727803701569069995099165124258736398306023214701818061706303012298230913887717462173995168720550748760773425395410593265091504785670159152941443724486233336589922144878850896857693769183318173510464548129871820739233289984836802106247390093411119822969506520561183980889713189712425253704370811239023415647460688455852424941336928383395456895681330372126705382293264107682821606821211419042732921999331864089120698732865734425184266622610057464947144990558629148558861223024159876831897284399669464253829313003235929620501037581075368976798014275806941251389331820822187066181658922394892446702313172938815772058402289737064617523040443931587045580116420316429536472052087667684088462488243222345355875148612781733773233006634598710424306289012150222738359915699744511131940868539447246416894209593931935070511336389354811452287364147751848508464988566293443752578477322216730038309861070179976133298575448441346947690764409626562844451553402429177341649188681731224706014829989780266013995689182435407431964602999185525861980508292576685573433698520238996686489374480158329684529527819481088247792818202086701761316243734897339466880336032824011951951403131601507107513470517379925800283566699245793363000779934210055667662930794880737883251679696675152922232096611880697944498940705978632893874800149261551254831306888625465555149331260516877189542831380275042317552231018113145328260843036769554815787881868899513447569517042075904436179103628304234678451565752158129325092156366235553809117616515438658504500941041734376284916989800597781343756807789686520360314040726726580634444513901067062136993560406556243961494302641902799447760631108734587666684939566431033599663886375635819482451947348399205331909511878387435561315870721670068917953920671274949120062087397686368262927889429209002572614790020285268222043120422699091385750032575090765342067252048208222580916191365741149870865014550932439319555092216185172731719663481964883474472324266722750953369727289769152948981675883846107531284782479021940267414655608261349264151445090324963409267636802761258575247785845546142816572580476063866631785919250332086859601327232073555098424565089993782740875097271474534507110444382741897825426250438931847284883673536494073050291818980093796561213241547740791284099679571308208584013416980090408176737969858999400998959320003754435235415595986518470297404574507316664959599994642316545473769399921131617597367248421743585106640470260823741274508866549772387078504520435273202390475745400490661289018598695305077793420469089785270585833573793528442351172088855047452333121831523656041895570735854863476649481794366917880239239570039686274417647269385468281510476946608090099103382292871757315309464465169898667242733392289632933124764832114419537713830648154089500252764905649407320317764108143152345583272141011330094540588793071465997023907431425454466175524409838556768516064953300930144223947593675763652649539743743772023275998802879119502985278563944070284774283597504680506733899769766118047721300348046407440737004629401467636542380270444989173705486331244911015606459785273257739715486128780556835217721450928573857317515914482745089377796854388227398852754081491471906867306768303689386612928073528604356524264715056274545778097656760906388452649156449915650232759598159783634113158164768243667523997331666285913699925359951241063952175405349018069814472782547810100032639590686344234689854877473197934321547956136627712612577102179210439445165832217028809148275066088136915708569806353190389843758879284596399349410548860739323246995905634768847337529681903587567547826960593220152567685389482419954714244390533652311703052670563876787003610248914802911315200987545587437882838387398350865779124662225571055513795990034447515347339480265761400075548125335712279123945190648990763381219600397771705259598460981131007003464621672568114045159467046688721207707119685627595851147104375410661743488401130192297627999945869475425873353950438927620525513554166235904938178337608774100107558039821292231923986665554283314737611491871225702552387990972323372750866139278649835619122849462402598194352582759224233956460130482734514806474996421512597007426764945559319784093991300256477620257494221292504160770365234769595788354056001730953757081866004018689655567971709393321981445287448432435006573132361098570889744488416363454857760071457128544295227230449037356133618072733286795114111131583840355822663623044580527272230443700305864863187325220717938019319474011226435181409925303738489738576510392265692507450350731443257645754118572368605938877465621980824546859325535726736352636440154675462425286145846130802410477302821436849456732465360597565715113477670061288487275302696775950475675761983655346342963796362635326717538350699463009183812390099432063241630483990524093673463766343561252841065026827158025987140924975894745649229370841765999847391610479933638291646503199049430835866022025044150234902778186193244928911409553554239247927931311277784928532338514329382961224897416560214822205960056064593555792572546127075572858919524740521055367557470592864402028417231672834857459129315962337107560536585092009258093125923379610967233817861432939546762563010435734132420053446324819250260294345104301736995818918992326697553344714498731013134130796409386593829577881163471513035823039561565158141840342736320856968616052346918976181030027892459119386469237404023889360173637527406728535835346745644110709186986589856303026133151843861448497113274192718729954050409315220735881580867711315455353571723143903580620771254233999203597386701789924435796792497306384445110815680087341931833028273170473630264677482648800842412694324834617981003085046598542058811078694951400783602231426316961335383336430696987265948086166089728183879864193752174556985539594615331910795879527732422496200218461230922928628729549615272194892816961137381548355483474470021379380672249748141822816973764361209526499370247555656862753571324522461215050520283796114663612960978513856278062726422159438660190748276817036851697092748960296459435220169867867182305208028453007047909959623670396564936855965893880779617928549013675807406169762716301042118122756295411585366188721180421524054298662750579765120164952535960449243452669662789482210363244723441448878364827621756749875767857349639905303939627815744776550877694959376430581745525865014740208642620335202403638213121471236064192570352799696782829616858403574921344669545165540874717896408838832981291131473075192532027912766948575831338864236749465283043747817143409334561833070311678765938926382649746862001023173255826712936756316148021263805702006293719915537947849834579024264305956759258441042910400612124381768557658953806199893669795078041891335746663897450921934062232301605617004026663069971158032492851232410111497111184587991915644691569198323312369809286989831979587605030352474291211982639687499031542431126225709864579319289466708510016224059463057441644450019180109527457246116893082582733370112604360899107997855718792766477158366443377984253987049465926767473601068726776571487803007944238177963791344720359464701191297984147678839714626587842604297029084906991350366026048706905766471428501874831766691957517771685364585696014051343292315356539775513228657298173786254117935910531903444842655943077458751708661108300714867637980593653296783795265501631236910971467604062584760406418872223114851547018217629787201045462897915497645391344436074909079272748461326011027096194805778426352232459521548964693870034043299174188766949747090788745492740062580996882443365825215734334140304800314729648341697721128976858837582933811749204966819236628380689067869644251189362618974151621843662607193686034149055440562705386928811782213250595544124094239188944291471269398393533094140551185475155844580164259252925199021405759153015065384585695267069377752629324416155880315628702972141073194984655720331490096679285181851108917646384444878887160508546127388295721274082753788178993386790829575998067275156528866284055211409161264342837482785240747761330404271123642269299272895677325232017265040219977239184588027553288317001237931819758865255823841105297820516026239252840467749582183218992459430642363247818711355418415605705863518001973223825465691729841315495261140204364114466822803107133049752723639440094321989681298610523182040806682631910487996878606322248084831720019726434115279295015410679611471028920732684272683301767538423472179661704230748256363207357536573431237475901098315309146220384233122828939113785004105939521509605532878986325223067327109970443193754397971499424699465075975778410076537400886899121297795969686310221656541040720090821334992993991236712893251044791620313741373696609903465683112643472990497167782685599920424168179639870155534204163931157792040743383126569557511112104624227655909130383509731831258106025837108795278264237682581190819530243499892577883550230568354219108776018273670666595337545435170339123479880851604690524739521039448240991461341562193237926788838275642506389164249783409351608490807462286212891913879102936557916875050444247521105036703007803939978516019973981332968119282848372546384059120701922095767845487077069166508202366938653241827690258235894446896242027390243797695895374629272783107600290599602350021501310065688776018733467632753449587607886830446076948081414880995730078691082787606681388071875107082019466528698443183288583052897659673005968796051624194056326121369292580767834494839448738002962066014973477804400261072400902136532346419656301403329187507400813526653985174910454047365004540990480491140697542083178544580038191759721844587871647626398847431429683980499606611810137196462844214279150675055792738768528559698839611526132179882365881540895168335216876425879156477220306467489961285649770045597297244606438937784602375690080594501281762553615726066493881490317356248605041058994583960739015364689957635187213198546657690872995659066981108347693511958854263822914789016367392218304031796289038215065220758423654228490640811573469356055542388882531576459384732801024813023569423363435648328080026607144018178697015802116080296845274039739963634498561077036949003882155462995970601834292658156285589311649136155925470553344936524244085271307800923895608717083783609467145588499587826588143770280953713823360377778071170057433873539997691730357136787772505242932107001586261829116124983171217271426620755489613495221918933928588272486488619062967817158067786771839453887227891855927342304129485724770663947298895617266704231347817148490935214496545310306835644240363112881370555363300943933228720809623062882366934963064731391644204642082096754934028576980284764040098256204546484786053051317573668129459251811508733984976633139456021563621778669506878034850451859091523227986951120300176008405983110691712021642629046185058488106974174455900408433908341802616653787763589473061862566455276736077096958711669591739300276364833339251937332696971974120121005719417138584662610044098498683243919111143297668700709646438081848636402937701919732911373188772882205472768779912162757869676849982313316932740010599635333699055028213305633749779715756615202321105552986258249030900104156592469828992828447892002113828562917651040665071061588549553918909159445504273740948716095624077935362933337373015720592743999700388863595809792364444891618292600397269893816141184855123963256613282937589415649700748427567349704055475449904395474071205662770651873636753980603313799908497183975596463952751166257616391282691164356306550004854703553662880373606083808861072913690776526456145773324834626325900690287168676752022624247262930461890219525070118143230014350075536750083601283355255703663443810772614039961006542418824263572693036945571315691063568013882151816189241683455033982554682436372155243970868632360425582772687569651602889903629950910396123484328868471069089252734887396970866947672124635081013740325591015689493654291856741528566549311787155465821583507510558943994359715584742165746308675389750438765927381339632847950177847284098831737512972471205388257201367018645935316670021991378103767203050935967772599999911682996053946926591289212991859483122597389326928357214279360332496619980776373850215421036279759717093449442587441144423776281895177412910660077383369431748778466708282371851702360610296857175338191485764146059416653942349948469878239030255862218522309245098699592634419874245075604223901056018697573417225780006482660396524850647136842029967508388079653747221049160710096025416233968315008595741478872377468894485703672954489679618678696891582930267557506772692785459105784354613427071288284660664311660048695530675604209555017933040252843197542011641974001230934802876904614772499700390569275646376882060011446912660758001885473599979821790151894337267766294417313334177641208606298797836398644597721259168685484623430045078778765081667450627369559516259858267377626246965051387475801868838274499473660244305966371950017372456450380343434099862705896804054847726555155773995553812206121513819860789867127359988331659452212822805413232760647293711453679958933156788021633154188876241296455742855085503943315451326013512114158856608882071954118093996016873670985376693122229195384530550463910008941656683294451126590004438221497322117149044711425996095844733908962452907438480468213504502681621742871520287896019395621477300404419450616675023377146084184396228042285765758864777979910007358203737633738336692574247123476965256139784333549172581472172422531876707869206974528336625779162102538076903495762159945260751499887072001482184848058164622597385398999801245614525527362958562025429170605498548455967094119772087809035792867117170465597760361935955212325872370243006132028875997806143293678123980216170135660598416317268391597415898930356297953681133062349400030463524162734806701593613528560952052025032643441697803066533148205305072037516290641536088394428677855909524629653461543083879338944830747433024858556483655627918821114561058479096756204501323027769529974243912982996872189793444316855523623780589724872035241957744446328590416050099866939257426610069720771171760505945514642574926955586556794944111384470434817292673263273559975745708321537259172928200028403943184834216310257456326880581595732674832971928998199660395045947878423476591902794240115898668572469064749685569678493573109825579207834613996600787613454713927070531326318381644921083009364970334683731210148354556874666783221025707845013804943715882396263889719122875730240998434966403942111907164939484737476203591486057560366296577418045376639079135221303089201146939162054540299146122940735708497360219494325799261114077946605855497045934894609273787305181649228029924713673258396183636795939902714610982293047060199600624814690649891176971931535510236939021953512206518910997380108676350641009428334487150978389122988963363394912548616298252761961121412272551234394678703873029382259688450382912313838081183778372934032204887815595106057871196570560531536454784164597817450998138313019360849796615399502717159256503392418870456554115680627274490111458386416052827664163062686056760622330324414562919020375140472056809247350048926793953936525889151557772759832068072461850583703155942909085380095490171697906497415162373162738452840406815683207014892368289913464134493972933864329798455615014310657339873153639237178226175274026147085903410751418071542761909794424860742824643222819485679061983547006093577793271666374913841109536989981362428730461590201930246760931253122447537799650877343375307562068107034143288773369077114534289977487365487502033779860139573899697727735039953890845623628921652520997611478458113254262902840308587087001050323949275145870014580411361313231422250367243985490006411116523420078573202262350512733327215924647047103281381381727745205417476003015588887879314325287417346279526518134947701616594870597006516849379124825143622708648786483503664978604147428683988129460658354597505087020120982267318765824839804186615674687147728462896075674671353403205872749430735928397134546253493812878593510530492714345900266976402347584518853186463033144936541622706038627973379491827536438903894350893936386097611162819389904565975882991364940197543786039998230684682189965417831319132257552290592173637479425197034986886368536959997170090258671380221544912929307721056318344560413025375104395297630980552315286307627918482592975291377655806505591883452796192921583743862421728407087867554674024431544702320206976741629459411434425106474896386220495914311779626914871882247598294307281830264707861322132549174635432595419017529449495002564144461788628478093222679004926758477446380858611107619138098364737887319199493967398787389684080736578330014017042589625010182238200896368084131192589320174001818197257674220271926912032701922578068354047456655849035713095103028935197312471814075424350175767526608856073130528289179232221877459914995952038408636857590137336854417345351882081733680317723541813502090207414965593790246435129784291467241497412021481680856281161013733734180065462705895438437616073156192511628272471560063536467092383568329486746625187426668369893700460696651185965781361061183433506648283550672493057227832020742824917966883722380395439524639630202248232362548880118821803764172635244043181889695430778128608829270291423585446351033877067353412204845321179940698865871239080305544635421290601847707588071839381314928701147365938409554250731377328405549647662048201441294215593158780980226738589481744161590502346789822336832933155478022555274948296988803751768541616078425089327226260135708488976411930537454620259172643056519689335447194706772632691576317949377299396919991775522963256523387756605605502804054815306154220104373397624725936089712802418974187829551727334005054878966422919611622397425575546866148688227253584439646748296842810477405702230138468836637354284933811128750570929142286537927507603498413835330021934142382474991684909640180895080703486439052129693340259035745718151794862601398991182273741144703287759433317544736232317281667476944007220612013032215877422666057420600464544003458577460217635094815415289852944000966186161488220221492482736679658644879194981949855347240523836942432189909530389212612069091144388324697129637908806996749075823899626012296287483199371628925977678705855248705699956210509725044370704398860522419981931989522733311672486880429771240206957870063118468282454843118192403192694540323372425569832421377860548937187287321879085535631947604600060796242118745765997800537309595213220823503081709309658675204493963017475285709863687472606517482875268370453492018920543912218442075766347281475615335758570158446320859361539914267697620764862567811676536601493172277962938458086755994381908731776026329281192560914536865880746468410080377357456664723768879413327275017337488143201803943115091791541877847370748137319612790036315242674720341119146666573583810549640236472694699982514784469118657545107602379994120691707651243686516738350176662300097395034773010919637323902611140068714903925499567917695946719080866812447106317363158095798134640397126650233565293221958718832307227954411154384752638238563194261798634527838573057102477756060197841536740719816716738618772101539665931034925623688715224511358844243783514530841309157327598754419008087078988340946440025892461335825201395843292336122723762747379898877329519907041137588573900838046468842090460018472944961177617476923828249223504478959246524144528106449816350042148783720633539114103644701701901673687676753260887877888033909066541717639831121394208681800934988463627614381068378415061354851992724623176699536211400686695167829784001151021682372366365761701246076398105109119016021967407452324126999658136954572630856510808530355116014955612253620648932160775842552287561940380150238261184995244594423844177438507473282731065136336030909643607619087782497322579852613504929303905656655004095649478088655764300713593059367982651663452101224303643536553439201624006890427844621313001041805572911131549105972290737717873364823456876419435153990459364450649056043444460032201667966255801997502392808023941646512241173683204441584512715432078312590983599014580751419505662184607120284867596508710633105840955574642010055380782020191722637256828855344199010689299510347243904538444091993825383932014754574265869229760958186860976554296680244085880242488747966958822808805343506309914892059522614557708968667553376378478701185347250740107762473731670255842977745329463978628475105170623299988352163579753230144190443542159232738191223521643283931185880495713525297501039906902490057731810290508391114348402806537619109629471315463427523549627444317059430017946315457935466065960482870753655943055562472683927080081593046054093651590183027022322293868200800931138324828215328919257164401629809035046077080400236837416553853619304181076251862412505326049309251761689533449695565137166084748466643289790683167320491951826566065198031997043389932154308159515884809428915559164522230774878974303859176614470136475051046864214608722702334491100177150439188184971124420994332139617566802901062697773140717720911398851787567375384082149704373223136637814318431087258037675311407310907762516177889666400977653676581631458219033562013239717086460510982776191798142465542258138867501249203342312822936541819597992144361458510632762922684256469041171222825144575727186161523282628673773441476349056793889090813023786938924105726637230770312109787721431186236262587383253443507017246598792202806820306898641507826291217731475586482711479933432214965350757444334947824477171415567381754724213660172720741862048501163110696121614780895533652361324860341157299369364979611275302265360654236788721904405121139083586885706754786567323751414982515289730355525846900610116220729681292532802652939043822198791211890400256093855160161414466172000092697028763249677615919757159073038976553266686942045757449592753586487671075401781780474881041988140747456366259767971747860870960347370349728020923335202815879421361108989761184578227444652425527265494571572009888740023602902547235826333989095734791607350687079096864484077252953201492638121602950988295209320304374587294388975015337854417594087151810196533037529067773045262417054109172482226141413332384225006614543940133204733998566829874997092382082106740259133319653338674936860979581397550105482238912142579288825245817711697624614679476659695421129904881876706494043994570160204250996286355419803590723087803914902444462851177110874245428181759673835918682854077290588654833865483105170446877450264250050852705411415909728805434184761119720823931336898945309093438994667726669854905564333711411687750516043426525113089638924768796535502767605841184610566165110329035543313096140026518319359844411624676748310806733637464640115287573012466659551611101994797201005965396823601404270080531880635069870031691623792052546943529658640533502457935670773089216293457223468115026781052300833904861770132771218976515190214086658321971977119931281737452663305229474742902075383579377728171165525371244462047772786238787462152493448798915298535909030446570150397573503227541005208439188756000496874319300751039196656469730709111735213897977253681300663172456776255880265908026763201773986585824898834775313781242441764443271507707073761352755136757256049234873747392476026108782785263666086408712415391445509804760519149824129129834971320495988984876122815817025918156834717981910135918470231814863875105698013607220740659294823185419533549668886577525224075373656459674180608514141874456306601885890999358878672381264470426397231980700915503901570702114170350886809231133359211447727325961874029664106197878778303124271696296811849575544452347118915054291920573938281783441774077852424154382288302880217151080178926381889746378839634755742285812435457197352793065984120192871212151427091135951642124118557316125089147523464446876377158796356157784152987813018151704609860358096461654702685679945419965719946660915358473639346913850020025338923419890963974242337679185294169561933651155426301042899762234977068140909359212852642508511084760819938241243607170133306723161251974931842040157245985380965583875249870662590301429726825956798211049042655002629472677963398930221465813458708434022999774990362618204606833456541910198774153290123722945056476799829100733864376798865359965743293005175155086714567860281434348539372405247800489947123053532707293650027547707666835178567361073233613769244524221902211761682872906188177699705743121646216824960840176842559043009036005428723639452094499000261384900838177055039289183904062748816204196185601713800751341774484565546119742479566903747145089561501231779160284935101533408101512718887936651220176171804498249498800968883083090222398424928545266610593122766333389233902286562596606483466920466388087509431915696381890913432216000140090206082806631891626497305170511870605671637154411818996575844415632684388002717274967459295876467679664677472103751575299625041624897258543621154398883408826517119852174017553014660571132274182706051442030475698417984203316245919327977724784784976826813349998614474763544533084829322243623760494483423760192819051824207448121655672180297452744428037809509081559484765372598403773165900354948324178516592628647332323001662576583147075642231352064579161665617834927045103761772146002187192975427718963424111010930907226811011647035496603975787210883460750026297195244229677462734716921819259849501010754287808189113649925011131822476835512917063117879551660324445820904602084185678913963941235442652156691514465147296519959996430137419801960453762267711079332064255616799326185297757612244813171874033240758071865738277657124932937035707556277077127976069462865652631001945231287671522787005022948311153202738930855310713506466010734719308451092485809315191543183583734602128247485459698098486266570379390728532637825309612279048239789300805519799633723012293076354234202621366926460084287860029756247541961966983130494717593688199097330576573473559796296348172393898338905107042776930006942558950406988104304658295745278256799254206698692154712453314018879471572290217668652251675238228859544593460176208390527771026367243883026330890729551128688204432820762522834159876271214904250349902505077582629675940217365630432945410198730560532239869118421962587167675929253786053231062115744809993446294964552350828056963607494291410282176699910168173291833554104053375000661622677957807744728252670923844827633933704134561599237685909783079563510296148413163402381211871085764119694381877381886019081232941760747791206553127067429947559503834588996619237186094409514734353700588161537118037235068738174127597375583835435991001385516102538339167756135810189003979105119693409199520122301150470731502154575210152394306088145982906911117254461614119849939975539906208839839573974243244634645693123437421430368305267271415478261152000591956522545751102011430845822646033213281235383312590637678799666646834691281935551513842750675069087937843888664669265517287976371277561764502681824508094694290738200656051398658903052102300527347156023242623034413418423938188733823103120316961067048697094303679269970003433626257319961708262977184495511461563941300604033483070558083823954793105878976803674853125032917536891330569999703928380308138002633089521941526963283654433829452610238121622301941799097972483687894617058587275192032600111119161803480149650727217490704889083303184802810596037178412115488232288859416599327141719693350502900416753882558833577844032522540888709054440324474071738349021165030122898903048963467793006756269499718174963016027356289494639987940271479727385683819664291590064512289593154718106580798213553780165683254834583443593025245031085010331719158082374505433045119408615237620887375465243545152725843541289498035786619192632327801764732386805018732161844554348590116898607770967727477192407817792693571232457848397512153967309038474348455250252965761858674953868274297379342117564382866155153174636260483362977631341873294589730534151159779250583228191363808134345969994595939916317777995699212592856911113781178208709150969751524533644263015860292550346992949168986545127396535275234364927889749974769368014059479426330660932468397384239120347358866611538027442372463109704066811900259061063973676881663894544726813049189390543461729965918649854926066570006067183372578290342091259558428662522227918143241775061598079189598331543976293488049983827290119394761565475493585162055827715634664780383181741464394049110239019897965132877649290612328259982599616900057387797411864282434984006698009980706262576893042657989090331725593683735873168650185413311632305501710742256276500860405496995304524215031568438275085518111266623409945923618234888769759434067016239539189184862152777756034596999533872012323415217122452794062925667390181128721379100328633110774313662351428954542382372792116225085837832668036698312655189766972571460272455300854693435185779820419095612004358581124076492889596455073355321396342902961711162860305463801411103993520235017913025564720963879037839018299642696248571834435804208418538165850232588804934178993623342054623857656918521132978686024099232198204419054923896841366638077905552672485376504813070071471129009499478443831957667600004824441658285362103090226825953429489849969415673644340067834655897802280717060607586798239334968689124104250438138629362485447935088407082261278803409626707953434999662507005499528148591663840863989802343711073330767734058294637686636512309618251287608715256418502872007666648683504059536689154559093670023475137346495347026718345140184906771938066799476488108055025553253770024847039411814666172099172932311128212524985465475187995603724453450155264980024364729260277146026403038261546851444596132418279658468850437729532917555641831081442776438467992747150625485995463488235793685005640905805959599840139415770825821055339883092114584929248026593355874179808402405971396921926068638550686571318771272593064314831834789838236343589148080480003671920787325439145021231488051038677143552100209327668054278327048315504334667360437423216730952203959597024065797718020347982148690781814321303681207659473270095848167290495994407710280769645424789437855232657408771379129445354676365166807134333872497219041432739032940648371683740400975815420478254004577348750214651743519618653583505091300915155764260316041207704530849525552438919655217936995058768736167429021854520899621576709953285221150800582544731763017696174428762974287742634644095321989523144562240988215363750169724182764760985268728627934800193669289880872152830469703002676423448982342908004404940581684893703509164851592945757686005182239093064049655117317578991907174762925149234031374890778799666870543546974726408095190113300506376303536713703343925423734657437849980231794869161185883690350083001738643119866069552736978071770993786897777218320905598523912546742560079074183193757433816849819000617850164770565694310202104805225347703554013130513234480663103841402830509369403200537787747160960607761612788674590323240236336193442351198530523584848395116924108207479796746149848808284871521441646266228472027876515558556853620520680188215724392236630365394392529568838758457895636043880566711330036402891260278243391267295060996867630409348101482816057281306213042621811137681570585833867093226774356589165763267016314548079108139246505878414673185191003347309291832146424221982069040485899851694042009190923126683110298067392081596525400303547138885494554460549327740603235181849725343641215668553303535033126920677132593493886748739306818331464033065547209121161621679449340915566104643999708704790591494588077017011290913309276696712279901121806288545111060962201306827492876745424012835482479299219084769723637693480459293618812336031128683284437654074791591686459392251622765743388578227640398472713514834613792458625087475231188707066494905312790574419345795629245193913782803990933192689188730247809518846060172619246135681957170068652850582574833140636297465513022356913765942574068777108137973585957396607647689437554734324095101911578183247397674362090635370096086589875939873308212264297019537409626662090517458023464964439247292215229753520193643506137475250091190955977841616811739931554978457075636698490966650644184860772388262186723261566549502933420266559767869853022693296550657468690064570047882038466819716008665070455912232604449259688179962498567025373015737170742581039732962665399060730385049156902237684376037522453111550873854860974298694154924947060268430115969951419094373516701440342404476037008126748879387955268938591930623695034425696559425735167827853472384825292775345097391584751370129903685897801302437012703013716567015080388831211789541961019945673776507726974551174882524495990760887564338439827869327412284049580559220599575224737271162320898588939233542562129471603010662983461862125316816739074325895192864099087981968205607412067941796822547555100063767347648918097674299813876118148275633254413946703091935979530618169788536497148371882854885159798233157806355528850317009450014970048988882083254711056241998749409715707437806943075022094801108179598228206158654769334574079092419124837806001084190855158805340516682731343127283203808364251465379662850580350218397828562639515275043473524817341607601088994847444083675841627333835957893617332127014814540102041571276299055394807186256421921757227922968655233756989200375578294615764949676711793365131088884113229604201320437242699686488061588062411235483676462629388125938905209271612585067840380037255866135276046986708884813730178469779005285296999336012020685521961049714729106789273916328778338001976621211149585643952567964952015771002507506379759865189299069327811716637914263234807244179526506817346940629649769265154125479748607911920178523752479696241393861008780962321772110046295013430316696989120385090504336456930644487511602051716969232267499139656819897729985443725206260512297214289622525547011309654000465343083238797441672803300747472849695739989472245063165029711035935493305992584963645917823248691296950378260881567624923278306213077906890585084329967077233046362405510060294272651803831978567797507995304285983532133211037458034165308693120850978839546551257422163619972174420887026043936482361959396069413389861227217248234223677838847693981507215523444682854096497344401532188516048540013884787304535010800632624323484501323004772800580542265975586289802791304084569729991097764225101425380376774542592118228399203364408026031615425820256714053189438405364743329592211769084193301057965147305562589988569011944080333461931864786574565199932951923800622482319125666597858145121175442348022883500364703555890030841993947037058696054080678503176184583500129689489992301290261262510820273407622912260152900585385721449667913133906419140277896564616202262651642748500310025437357456228889421188125617206664139571035272958393420983224882869877492619768861769646012218428704768808284197281602915625234895500679299874894379533651375920738206521630649704103964881927295175810179767607655076677413368277638424548436386632406464428289539887818333812172008621857879917294013529644151665212629755739599566743606492133905918061664591719993309574989886161231827243633419517751357166456031746349263914639359843536362892995917570579023795525961403818779594741728681588146490204809835270042324336333707955797405446519462473510567450828292677858792807797270749305956405245758094993532111101370658666728720154871775213224866627549010491319120147756946736518074037114008037316648366790439898067093517976125338005649366970700509082974418439575458509469609556543870458099292115313365379760086341491568809910567936213713438007193897013213455371706845236247236338158713845646951208264245170075411884893008036567948879136972822666006066687299612749016085986507285710422985452147201860998692405450032278062599769890081891518262841574999244386429507492529354015270014906781486840736889794235191735773388464117286989831569523221513626206653955927511279298513141213871399310839240577018570986823604660282808350442417284933370051034391939582753190913737424344690774185005257182988689342519022035427608413851206443988290080501596011008660267543678311695938894359387289229480266916831980427373121532270963551301463615514912996490559845335187815611124729666969378356819167564030585117407578634712009864047486825363077428015720459155369356422989136658777049280881949322896898978812525027583765202357539623865407770823708139373733245258199250371330815331834986996778247625356251383698405458357088229054482477641923542583626299747553144655305983273866687062412942174583230564464180028642688831944338098554738993531492071727898245276480141927884180734418028129822927763811487560567369970310219648398296445158408332608518818571899844877238120625551293108629400145148520543887377521440535626174851949711826055277710670924779326356368616363709095063363240532965564580354635080525885644363112717291310058349216599497054340965153450002037770980087357823434849114620624507481657904241258765107199472857819754957846048663981409105041943363982210623347695157373322772445052581675428037612600624489934071901840210923103085856667898856293470768225168127160194512534557622289556562505448030492614088380187319003884896392539972161489587481182595574170963076253907823650606328576098122505794112291120369158747954436089591005353388963819033003284481308164527623952733352415591620386847435519541909103185685712564366974778045515149853681203594832696822305509442122613536612141853113355606829347325866605152632522297720078049801958440636280601215638571875661654664059845579951206196826655356729046451204511482253583315904492868331781274816741342909294662922926763020008816825640199758680844464166857829708051230883169116820632383265486197187659388989763306111848923708835432175114731552541145064434078802540905056234249380915504953506038360762173938301234892299544242905802232262029446207632174064105634898548262244396156716161880556993808977757632098841088787932259365915357971898986620046372492132251615120509268213700180694688170283036602069237618568127848938202104628460901789247789721913819233097413877087670422027482967629652861397776882944271070345943604819839803698763119791654708456769035232446589610565057356126178291481920855197848464413036026663528656784218966126286787697872135708305577079561698098076367746931568399993831252278084743198443608332182631675203287907698007004941997699852861061827365388407689029131733643538085708815030629660053226963891482239193776100875892394482618111234135171676295133774551816631995462911240283642664323697886107098320014211300075168255534059732678017276062545341733657771211801375243197584454835390363709093325026366949694964210845617662815621249887575301342871885323469613451356812578842043219513973621763962108386554146887477108183399775449623752535023663169175676590145270689640625673672738841305280498210430879261088228087647480000713439373218394108588939788596614416962254873070323232836616151315983932493390460485579503524970552641669911291489324360657313663833702490500457270679545728332774961199240219551321104648301181791779279446282015623208190665456854467914987886552256374082278145833911889681468714468856238072684222674317064695562371680192287484967579625662323043463078280333260107903221398583104728664968043620935456971328719403411604204248583781349969834640907741032491400154525884417159219701174239072693070448651688096739455255955353103112757510321784802128382489783774555211578329838270529975040421569606481690607718713371931873790781575919629703397966776914630515929201175694051391431797562426938153288033510844010025317225437680194751911249075324879443114043231494594623948989978662598693166610129928936789094355580080607699125708038279162036165861380159302898681626196738018697606864189610530871781376658212227093147109837357627117074847071818964071085303568273813517018552138198081311901406432897676661807959331956611220512648961258256121735332248639600468288773450334327207158582353220521768533941866930819905777363877143318582759162879723891626599661028013109601517029682790946463595413167215405148724178922281760954313459170641324355431782500716249403215874906147734263013169499044826839157522501094296933493608829641409400107100926844232170848237378597021345477142642660818874448972360789936904241528237884487147876784041564545784095624868628871748741763253125555567106958777645573716631677811541582808062131790995151252662223740975437112967335835115874964913697790005200261570142841253096935860756250980484597820991835108708809758482869377438327226031530286978374140832733153035549126681863497859836175961751039828427105479265416929914243350398486815139041765326652707457502373009737592549401060035649482394345519025275513972833250019118146610824070930888937683355197718678378276164468023044980699631109224452066376802974180455311752155509414264547593224856603702945868404524998586732306891158034525339629862845741530477885817829832653434251675521470104825757967170381589676667396727764592484905371904024003233472164489200951755102010382428403341065565678301022069822434630910329623567545748660362619349554836366013623524784160188649703716318344354414448989121211793538323358321572044975052917882372703437670418862224446553061880170464481949908292365313100126517647824694375799303409673161614276756287224512018257647821239548928491398976435081761627250994711322558087338184395886933709184347535324640714747136612121422303738815348537631301067551185946726217085172655615825756072653645416021158824931460614730024190557885301190811762989865749506181200217757432711139242925909547912372179787453656118083540585126411160996836200759120711813025773026018150260089886365864584605340037733518945666365877700998281700759778904249072151756893550591434318425574374733473516456935853819672061661388601698047460976630605176001875345267580140033651880602871725775986126727189057021982237642927693000359365159759878995563035629553403564964360938277643577323439902778299567061113737170636167396108841572799279958598381996704975490511374570860055987535498722453038593471856652582286554533343156295949807623398942265538982085041514487230721034823862953285312874202330679079077972856011373371971122530727649200445172263144737717829899992018904453547555778555319392312081811570987658432071261681099347813095600771548188595573933301628227149593337237601482742552962115650561147887858187047379083382288028686776232829095051387591571787280952992751483019360488820257421249754410238404230145217106653777059330639619935149600548490221730838904624875160973517331101007719525102997851515057071082702852893187986993544264128599518480128219638349708813656562007264415340506546968957000847550610547299194217822249625149408364280091120189217304866070470724285510772123749591006130527422661319820686009514679135277582306140180996797076291808894588757343969478244733250136119613681007999972547523652566038401377411692733406910807785008658463268138939996533840427037069476197201328738291797416688758019185099890370941369581944732767114827355505578362547952541096964488862881965544577179691425077392543246006075528787877574778419937111998267124116651188891268361632193989440245234947258225554895378106517505460199419180012442964972628868000088164913802045879838012288550277004068498662769349651321900827799029759566224145786051901370814586949232949340553465137427639855519792387295140764072110230367073603629623454858728715241798509308127532017854007719812241047120933604209107864413801027262015469314953801290663114563281558065774993751308204372651405789436996161902993618092655476677351429452854320295876420446615329636198464654003523521924569126325643844456979657552988495396352991349262362475937092689494627842644380120162430322609126336089079186034052876727037584670442092137711228838637082861587507318337624161257581810158249943532618845909153763764975874502875869160571048873976392042809956035761139987931118516768748260427769479007454153359222011897350817718288390932457100232015611608722845109214288203582758734527801375339184402917148606404936033226756920039698636589862801062916175429683968298293503893402012622513322514627816650199088358618884071350312120632092329814735981436269974898197790592401057446446870172025829691397312898639013064140105726815699933862175581396744160221815116914060701212737791905495615743947392499441424528448409097302286980716873151901068287340470171522883881010421312356477241367843716193871202373722161394563078213907547560332639930363839465262670520238645065267025187789156932947631711045820777954630908867992610933071687623740472234722591499825764136934924814607306648989066282845540096643559736426319425928512674904944929456215033589890001541974945211225190252382782910274662306195082180147783741360691086240868877497800233165931616338046542257296103161584698102217982140948089445041773911320134057853506666914938291285439369207099044330986859176264200818116390752276674272327143494092069760103047572902904988790660773636214557875295080331346587813124029776154907053490678122958873414935496589778969280600676775114560591515955334167390693087004865115956501746122953034785556131086195360430191489543353686007515247018684382790677973121884177302652245518770050052207276503396638073615393956181162679553879746696279091847604875471701633523977001989657320817687876495860622381349217437983407968659298839565676206334044051883091446485234062201067988926030284142667802434759547440086192849081143042133862795732595383933835621165241293795446029042841486766397163744307489851806503021299460342226387528424969278073062719508187645688027541762817488469683680321418354911334443824965823580867553364703003839306712877385648408936252867467858640817030770641538771581985555706645987448540087189410140225302299564031869531910994326907088739425907210720020730282810779531395697693818550621470656745424394577401607335206943009086681619459086826401968617270978998633748978420768077745678790879477704976580582588599488042967461301135488206967056090922637082451404631034490413670543707860660401251902749611951135899636992745918973269642084512173119410152035231661022169284609519306844603015973558555037691741700179961374128915795693177157071575834517349442453427797991208901965530528170346087897369558956620137225909753408227445523571083487871410377440901439817555870344222238207733642038339605776243268650258975113365107952740738653070898682577597328212933772496568165219664598229050866965385964757962847138816861110132007022075900343153787710658410228040508048874317758178482336482051193082250359562753050995456108669587415928845258541915238678414194657706566810176751315589440361510633321307679132070898998197661839673082898436062854905549969111024918637086247769726805441633338601487711708929335152850668414797649343343755329469651559397424924856447938360203821955285866219106349635338312322282057734615576966652102290419256193065789461036837045608128969828576837553620593241458382303994510999468438806769732993317488821772948386484755326647256578573550743100151854058308675214436936273895790367502476376254786110470725911926753261003924229359602079561109390956787189359232756452491472535696679309436263006470248220275234099940707771002325226494729337635658584184274268296118199208112044152172664879671622157116679218263036237463082196238914413926923307756048371886302314083293368230949122439284650247153468564639130108941702982586265702655206542659119932764030949343463407848111905184818527602258134322433705928224092156557202123117442677272837288564557224070038667703330922945141801428752435330816406204543015733562260703257684721359101238085137313960092974930512001415285030490420005251423981337360324956925231605285245118670846115232583201210876530845427602544074961658699950562018177598829235801721528115074677259897749657335138749746131695352952981111154079658536518752408385720725845740682987137225815934317241870880564279947656025052048348493855617829426997047660731553370167539909745350225258644116583872160013642737792014597461918498589269866079933945002421006275965341570726640053309743277157686563355498657788771220770188768975841010122738130352460978372549156377787323405122972900371638806307492952479716740521302171251318969793696972248610999119351287834119504604301868464372819080954214284192196677298248779668800227473289287572248409892739203995343948835615616266713868558159994134359990203391541440880409353726662145485238804154620560458337228486617893012371121184016961540130104590534433622474016915358957841073795315584556348703800124999023217766182897455775994358761412251445669822160054274189780063073121807705377451554205927906734212856915161928806872609459423457920209464176832313987494891985534590326715455094396745436370226060793549910805420789985800986285147596386687469962855256672185097702681389675861767550187936430807986664074606410824745570330750946589742564623120785966971755851664197102518449438001903981909262424833928150046663330790655863035781476670037686884516636795088726179533230690410465938057196067512376949005194643122047319677545170029834453267239584123117281806066605427732000928564292957442309555291742487241419020243092660985540603639396804844791536131029712370881190643082177593717930651038652146707448351449347903716494524134455065819130960263728963926008121175689893244851085906897441494312263137975350190130623230221998517075241736731228629253748846231371583235165795722096153936080278241510017563900886603289541271701741529655881107442747356035656108960979671602606974713746186026845253118606494224805896775735387514405763332395755133625410439520540502536905969891724664376001320319386651729520022298678998467992325539006608479337094880040076298174314637414634265782580371562570790714667828948519960249598291034368468171878612875552492810149379976602052153248483493053512636551369212022221092699611967106854403147279749791607039383175573400719989351484679329523059792612526164657759633428010926603011294879364808440966122794181647021195048689293817008693091202463236729904348719116425791625725956789335746003777131055062403363477449958162267210952914509927698290814767343083357156416020218289481892193993415384141430168300007740699028490812806949489882414540703541042752012911791727937900724080799334551931777487307528645852462295741336443019980830493627750225986799427777137943805035244103218254317700263736459219497411126461350027707832553339774716064761846210325743635838532927573136243025974551112087164416811576307380524543903254594326041765995551424362892639572790250785369866874257472690205744797087803310650746852996506811197972843646475182549795433336187636780749443228491097478699287657468457073945591162933896116046927497098800689413067967328427608434321556604397454202668537694214709534440464928156825538219087954965217983734723460132072415005106632139229806659046202701378887148834556148047507326970880977442755651835315595627307857311117859092451155796786111374277646438579588445650183464047964496153521474153364448236689691533261325933261735071001877785665941627888794742118736483359824404919899310790804081354951028882435133749561166509672319519212779256765004040723052547028546094129888966525957104661474798030559352845855217553583303859239987542560421417791813691457652119176599292612200454278406038184684546434930207009046112039159063710750438384488308125862931284251851420319031298387349521953125944731248444119874494834444251143806336944478579806487332615385226689917950324399517554817112667426843991904089276341100760971463565907897450243386682723311853447637178438984670077019762039957229188599709628669045211360927514533589859824630589631832072078046851887510053049296384321778904536768931230889261574145872902838588822332547690202203744161585419176861164502784257862589692228619299966752024037582262230794628436726030944790530844835034505675794350804781446597076344174881479726858888753012683180874723073252103631775708110828873863377377919322582463943647140089345768100431274356970369650714233265622259683453829334298174521841874027793868027489441720711956514638558806976919087232968425707197585073645598131897327126131407968740740863980497698632864701906015363865640912453549188042964080331050937331379675991901036327781108245700991980036588105884315407765248190750990723640803901642792291023056297165376763277100905978132643018407911495729394706277133156691587066557315203278672414751207540591534021923485760444018706365271212756874857410242441211265379206580225039289964646391105975421015822308679288886656684311303468204962449612038760760400593925180448031534051954737996684516850798200752412962428737076584363378884606677719022298864238203060689361543415970313504854579438506120634397875436174207867916521015861195671954795489500969681968147846409012277533296688527890510374479274915367344246406166670722097819831545637113236998287611435813031505788764228149300199562784268283303233608236976507065370041580726012669743475918498903073926707893486082056095202043085904679212365883192013034108666992516609544508450799493496963907410169108888960734206235299112151054437494081550357702881711343660538414057831782815919005773365894957273210203723160522199791425710415122126109809620628090004822921312483476186168566495737508802250305804832590678994302714949257891724466500566091027667504360409248011633683377039758177304381876769506939946948295740564205423874929333034713653393038033728948539903509227316200991496486477852745780742753469458974447001657293594698886439522290260656909562892619118946727231217112967068660856622312253874178969117814138984334319923222790577446995783740186532340074843894204945829725228206523846824715282538769592591001033525316644243187248462611728164666333068568599745262073735501434040223802970348038143277716929304769951324213472851264260038484642851825145454979064554420597628016621229131441150290826596931621198987426426642995787995947334719704240770320998853659310718870049503974155693872039123637044880010364430699097713814046260692165887021282937964470515618275527963495587500440225613056980502453006517130352257278894430567360460780491038658361581324519590473712275659930629264769921921140048255273091286602129679746173365178207540303943927451815615263498759025347112930542030503363118519872571651742753964708608789639801017673218707059877892310052326178522598642278169344885896977390276487537303148721047667769484054950392182431986099166912514351129376397241413616526375809352936427944085912510486786141132241529526740677244116104815937085916610725526720403208354558796391196187147877201167293909107402664255011548139717670457652201813829567222449295080365458226608197902177581910438341300323136118469384622336427106623614339102557359048843673558530916306329772215962197511055540418368539596631023698474259955780340414193764497081449112914783124711915652477679787243343956823658479720280851753951566584585564482696639960079456617949786133479843245879845613217688393225750503083638981093634827556767424157616138977669852052262455553129630298771081934307402925973153298795116635094627055361169765515534247119405933658351862636886029404224102282566881268141732089638212012031931855665455731121981553850073334183303010484253313414292393810540691103066200223394011328001571452690756059790205942490723416619734498386823167862818073405673422483085863319036418600733953007223478980476657244386026538748547896458617353843790963588117276975081702909140860768268812031638032828063506990584662403643466671534314526446935000684804321951381097942490414670344736676481686108183244692869129923103454163275598225461146274109465679979409625559241094842910251388082661911373255467181672828420429922904007326768710658273878178503587692075292618632298387445614950881699807744396828349838094347278022998424172538833169584117426464966780895771829459093886372542739030189209921082933613872262997566305440272120988822293652848358958312930325636128084435492554277872761391831874407273488663500774479772448244998312085156943799527246844094751103586294985924511688027225435518747231761039754732147727184282056275752238350972196922049518817664994872899436391491163652046557609705893701371672427101927585716734862115844334113863123518658326676425724542696945592607316411557930242352615346814021887070936987525702639831809037095795054482686139340382799798006349390420053530617234205220960820685568459879237532850922904532134715104318008820136959914914576795518543331462410852061366692312394509605583955221973137936179548496458255774213545687258061166142900068202793906982506454642486529344705326845481787578210783768868121832207531400614967185897035796952675089488708354025860663116622552088517542692703961338131252732104613909526001987958680618324571206633497691805467699448406516068649626103267281265091101808064119288237319888391200677953085952907757988744632342877321963281693336409155159355256368783360222327494494689479358938534924315796182431798348360044776763645822247566429668013589333798213618714776985041815944584164096563222504545251368736942757374238372170275602872999007861185434701539218305386965660166687384362848778997422648617015584772092000543438483750146399565314207173989116914094960772477070975313557716502418814244668209325270935560896419379802632562394453777524436425943556764586063583107464360506967633062367362569432039694498953402640763035007714114968653845604603241065884193879162086466235878034565174916175969983556667648501150116957535069655667146557746061158305152800734552965327831916355654175548437507419175556506138681222819267725872358424407977770176132944865304841306458716051966885166299938615914299178230122681869078979076225984668406391114584234018366950330782895099806786815009883243097785307667533914950409731171787888904007853607401034777210030821740925767204485253669514018651849684367586210794830486591490165271039145673344427516301690992566018206288734471116999935421052736773205326830340082852248412591753638806439087759942891845778920445437065513856248834019221726255696685201516164327748776492105916001919125176795868561988720381691442114938140779847113625302667494740270958616317463174183162584363811853311217415160424760699727948097236779268631264007467888880996757466747556779173081139290181738197882717074323742481458456400667960213838152692407103564318963220533806694250742347270178281865977525580808575285877081663819220617930497211396700318341155096444186749104323783323525112957207167563380807131064475646619679302216841665115610950846141819736860832978063219987975744592107293131248737557430244153091038669692137379083107313717131665977367775305024855295655415951401580958107468986228488129073315821108746525470365769912076073102804896753069481407650072952858313918314829940862479105152137033243174417630014661283737270543563511516090451580273690058622192388871106044471112084269005099029378028015893050330643854660876114925830980032588189573232913934821651120720619914451594114545030488783593531003786202840200398487532930184605060266530962584444169477391259467711469681742554195652120410732510863148576009075169520226761987931881881723556692527351562636938674131777651154880996900686641658367537714006665245968381036292977582775964340179018125699025585981705789261754093155449866139809473880156819444415584638660360726013952059452840052956701456923748866078227574918381033986593943637843148597830990597253165279957202332567903170032247683016834843627762515255633432596208228729893426587702436867811769067283413922218088347578199574838850061132154696457340950358850156552236371829951815353781927692372745217611927397815815245553623550744130174817364630456578461702169234094323691793214370057922664395054571806837770340347492872459714366706719720923419825240544888797545055248601185727816407017765484494861028732657515750332356589847286210915127434417827055702328571744242982657457703710619362673570613036081474406520459135632912692041828663421140885751146026591530885117883813083291357577161609347999379078118756740740853058854497175095589647986082634693251401022661809777376758070445915630053373127220942979329840662441885854834034601774356452250637192189389920966165246735565103763819523812205144219355856139902964020505455687104029053799950575140111646977067194277125860951969704822206151288943949068422480826065415970668288993722394870303345566792476967558530813682990594533574428850454791291122187959434938973904803071186631391161583395206598005663756730134281432543074245582116334885956467308911106266622191128273151376981559291499676214843074797310533375212311355533144565630188935300046789124841171579149303578167460407899352155116174004156176268454751571444373663129082021384697729980123486370376758806770643480210830175668610038568099337224469036602688073012929315899274169976202906514273268419718778003474299355504018740993471939952971257123153857108532705579458034060268946561420045407891855263153896350682204196556669316833248268876188394751277586117696356868181216591799766856593021286131283754775099264720104113743660600639572431953449277675373041905776314769297654031011136442255561315047399142267540348299803529674106793064454601144437683635469550686402149163313199697414585750452597917330635634064805154161761228768675832138212227892386161830804122108709547374724578869824281260682827122460615310705425753464392245373738810091455048057193097006892110575363891929452953143326228415562669181404816883173755707131635203374651575528808920220793879804742388920123053046389918037653722728660290481954987581996687735566871819199409061818213737615595708168379402940169965519438257283892676671380395128733939193314208153359690051312956808741491997165398077120678681897064297153162261690578590218307568612786148772245402355379451722609636085580181790459784279906310962288165736465287152829440109597383126801828407783121063749017187679314804655690732087170024948359868308573775956096945931953032540305632578528334949494025424100848154219185806874589294608196938729745789931395162416628535204111517394663425855881920613993015157841126225547316520102674315684892313399674885616097060925673445373492752332715038867420486254509824043255295359959064509347554946729754364612818615999973905152318484310756174872724098839186022082266022172145069749221479629804372117110047799342944994693615023243649769104293895827219651700504519367953201937328407266745084001192164051345870450003130959362696273593116925164076664569029566037640368030550772607530151795641045313679405652644548046049073896477183579914705102499600840838403741902849037619695803121738683519440665806775311686557272891545199139367783729317347139261464244755960319328349807979287924314449187245443117132501264589760388498156380288886104477274031324847758693438423038456287232322436582177189996011930385111036050772967614457898951533099979485780979115002982154478669937667534422801821516804574736705741407344120412209673287781178876095153663261539654762602211704889120021808494727124927416861261593209007455569474834027293484449554636711744322619508627142588386073785975461064528641571664589564627317525302036417834933658408859802172372817925737175293726893577721684902272874950034313977597714960332622091375935244032421331613464117979046359281304363473937458061568218756144361784755446024504928219693698321859078568125170988675558771882125614962944868929471959468404407533872544423621458966262298424220723327156445292888014895866328864189612893231730629789504846889894354931662616192943527553968474972062132696272775069166301604000696218514336302004759374465413220889799894259479062301658355155091959770412605954018666948400790092358536505839525540495063709130512680605798889529418708281955564033153411380797697584552181058543050307706412711400612073401499807762382662752753300492382554285112954165062121037724039553992989717703602054549155453039152630980106815253297362293032157134593644589860802431605257721958051184831746044246991142353007150896280003185782118946854666509842251635183900126291853977141479539960364909710993299921090037166820750071056997454373816693633424895568029981097717330811715087909239625886691406040704999998924110567598136706002996884664557761359321426505447614064315362217282440466870964333045640800236070484330800074046216430071607053664392462951823092774488718523035206682726404196103178772549972776817461897768130334358559330948887543518033980591635337975582507156339444577012539436296394474411546304026677370174622576622391239458697668424849798692631024329670593075938471682267041792275012134186826340916867330246737938201670923869551096492054195665652464109415776978862254345449515743196745903447701119265742829215989579919787925482903212359123059953232835218789613447717938665902352631519832181483234078678267441838273533157117339562980298655333481740520765671111915368714531068591789595011726081126310592261089201516465492826571701996930183645994681508750600373292473699787617239878481235721904127919723448707262586072008635148480150424893565444659533489520684847945818045385765442003422725119370383483296942972538147733102600009381816003425710446906984326572183746090835430379087187762854816137996381171342410050090681493321657168734121895201324353365432146700517171921326406419324403989350704313594165504373535365791467954711162281741418624687764845349822261247023165605604183522293233008423004118200919760876547463851809695940933319184700721970207595821873702717471793425310833626071202251513767678184095569446130671923615912154686216680844920245530841082726806387632576657520121188797588107723777355952146392879754556780348182571316278721195231340154390724381361382282301340565661652385194400788370345998093981356037976689683145653291180934524555239594078165637787155278495672845771803344214726934687037953725467488003977651052273071543657399087881718952533660505748916117278455045255031907874488416807151636694137381752545813186681397466694779523909299221269246027247763636737743780481642364070559906888455034000218584846629207762843321179964979258932246737374852933711478297913511441949858224614692945940185025377712669520133123351073265485876696275113123739201943800153875885025846547527542183285595513274805472164019020866484096799862923784535257709879986545836737291724003395606799504661948196598391236304595489518907972276592873534342580262900821794965402188111827880750624393932146595220876367132941891611903998111910255824827617277731785302293031508936405287201851098381746768543987924896554498370380575317738116645177442113832306986231378530600046965107120545701205616425470591862965695232239036515435530777957948246786402920784781546371248577017127982632061615429888658842781692977114132781756998799323763461293771676534173147935854968279050167623556991542754504800580296174997893233775200313929723512049992508224802399110652689164895767446074001303107670909934631564812386756154740517625334712541874041631993474699997153110752103378527481337901857081129315361239765434555361538204956504846612508366842122243519309310116125554950421822332896173363534402590668629422240214300320031129591476305485030490099328362607825747429351167222841828514608449732926271856017524603533977315598085761376268458914800378626707288466697163273909572391181445944432501857965436487523524708587438349218444342056358616692103535270534896864083001829784460313019897277014048702693939900429353175172741023749631696343990522840845078045866646547138237588165484157464722189607389759046165930603616783542882484463060971760146222169291911133355729596998063194173292605739379951654708893727260984366198117558254322200957854600866660626014270212967083582926422010836399358724674271276020212770771816607161977258260783315656994626744012633184745541476076034138906128103257229019865670536958702181984201289224640393822572341912162283908658862690976826555970896039436236006294358382367005643265462509780894899832968209574312427058931043763843841278604445634499528579849603784345676691679589186917457235205065455270825043596200958014266505003688077536722567396523799194197097913796669024182107005446236357117922742010987656958434500295228994397743258089284208641794351727636590307100649610376896080912925646439509831730467615964347006388232625698786143851844402357525563195716400064970903782878583191398958984709122847559807683134663611796209067713580426811902790123366465796655313443953903722399685450024779174225088005470040286695946009567061546569072523836152526524195194710795668095035867610287411611315735771479418905875437932912151281342153535707652742400417026498697560654461005272458318876866254189309033986790948584828801803618412316054505096609286632453158240044552687780267973945368036449602795027560250892872942845175058318659666674760375415570915595514680749808910192075099472362359657791444880704182970105278309587013777777220240912419770696374932082152547215470085293534050870763669751759669571868495570132800170450913135354156069494103172179925912115824418815083172398222678843907025904584162359658254955131570185802125876023605991312879580420175291107994328631264493300504669394641424970344552626702060521429373621116597317548647293404504846179598016805690102327241683003762859538102659062916779791659322366907080807989760291229762404470194717749520359554588873984993007569701105590851506577593124823912184972270989608001950336534703931039639655234584189258424713270333670528553144490537014395569178717081172253176868111176390856872520686306741812071363798417323356854462099734357894950124978643273055108140746003854001008766001207504881624107119691044109507850582885825920122131299597293441047246903039661383260603090213587498786285300619919336190969352223165952211118951174971387757208314157589175648891022623294420244771448333761007557259709954673628100090061351450085884127560389925139428580236710846463388289615137831685164067327911709527584514670148796904466922551899543075348246159842413119636079038266101905774417813737478662458802350265496531474639001012657534712595810611499102183981634297762048107686342862874735721827512458225106321788952147838494938878464620593317955769454891986777557979172914799699452230310939523929682186706575155493055657060915632534533892180044809911302650234161208278543465181059842622185663321543684249828260797656604766478118176901470904981008757960273971702016330828920679658151393279903227262625382217249548791537830269448108890536865197732586727128905681758692183531583825620137683798741926228240256244973378198393973030923184083460174226765816476709425944964989906366696028476352634354059244656142074595928344207381301242224537187018855473540040501853284188897924644229740437859109937628339748601281241251553244385958732854093616105107114068935524164066089499154868867431102430500150993086620044654693892104134751517828382824985269262159414226453718593861525648680000523550919179238698178261684584864802710930152948423215215543754036662518395641324192694533164822675763778480887432757906222950325253514374573024916279427162933321924131161061098403346120140149766495763963106886228127058254521861407499542304556539546229675704252347038112256570024345505911717261635166864027154122629636452160838159244055678069630844281895718047445593891112176205753748778435963256190013356290638677924593653210954448120505334008760240946806365605999211844757525884209087685942601608313362101276796969049955032207648327736813846125367071738323347401060027440227797633898337419783489530629944418766370173269731448664050624548403459577683960973762331782732322154981539927843430909142788256580384184920222033560603959153439485975825113140520085000708136193987936610396999862747755201947866356089178693932924738864268473916040045543223252762379217339603086129914600894202136460964770783324237700021246796603342844927292894817754266835997500116552765910702398478571400396152241422289154038513125563974399842277429674899570966307626281631612538431090898260756969738113808924419946657053094631389897818112113441219460153499512981394612013199512056028375604642584374430584512743566935227336421448543764766919889343426081763774855180294013046210870539109623823111159890354221005258367229108016438150989945415621531508587032454308141583438448866354536922744738336778288698802907700477420045726825869977526126228957818919158675336949715545321747943659237266233766368363762679608750410294588006448554615556774751744570322165426983245005071054431603523514051415550416711857479566001310844396505124690251980966335443317447281351838452646860505945213156197297720609929222101920854873323729686489847695390863868162428936401618506495087849710511941841752594168656900225676468507151673036484947327197778858434895936950556896982680736153814943951726604098904380280217338060312462962378729378646886263078630195753119609923627374798783082555094313423733220772616110133471823421168152429604589909061076114705855083072653725328502995988082012029661263547920299221916362437985649322539033934821143384402058604528026388904499666882787224077552910267264621519011007151665882852523119187319575416159377635443067941038298103651590403821375936713253191356252576694883172745108793162404709156847633071894917752827087588877314938633920830081238218099734336489912387217617188212153269680548020042923420672442825167798350265890665458406091763442774699792718158923481212448290620900215673888492531090505107493421925522992360900944540182223985165705679801841092977775716182490018056377746087017279055420086063495051979141192004805103006587386986693322380135898250691153139124791591605999150570894484514739064012301198747596901199564728495348716188055442308097072300053669024432360892352320585242534777322149778547387896987159695660340672543584298064061303995036722964598737174072441238953823983668007591883824111858917463448429782636753576234890709392286316675827487262354591083751645174816590541844063050587713651877799300235333131318964294589533171180460103554544606399668111900367261636639194547565545088338023470937280807931451114791616305987538873992665924333486964150535284721307218808164157906339581539791160551885888909123041373931223390346078697751893498708587856847046322259934278911598204263176486064766887569794416134030131556010314803157685566001596067147429639182218969339074613312701827034930591699202034910696505009035277982195655791664529254251400475793421603486857293526681783679500190066079583034968734259216347015456313846035299227156072921507349690318482785038511010823317051390809349739745987725792791985357673344938964835978952550775238684417565166657067369511231225627992741270532472193443202021279985757900113545349552884826231481991383291673948449017421738654354911604361342160724903018655978561103552336757310113436574116149369880057650711595822657942630542988815278226584497885495032829965835784138855378320782568669612050468812620252463022012279620085531589075711910279437390816506391910580012492710509472268223236462199182545678512135568481825683957370705335513822940335307122276729092040281755483424827170561916915454960486317301416915298342270936617531935114522287932514239018306839390922242122692821364008040083828800485646214417350939740040366850987499394466354868002866663092238532898002098315745114139873462601669999991469903512846946510845011307756207388538860907048439712368440489862752795623743314519625191843067965340797532622884440913488341617487154493154111476657206812885118045420711349597065173678715364356796848777235753741563318617642153285424383479019780868369683993279162640446288978370635141220320622751699786148982181325834637284056839371503919208866897794874235025821352321932396869959880515042940269975971647756521366957438437288701015668793250971532352489957662834672849148151598073414820891524294091280374999312463803482062910712594376294275558211088433053795152099868374129761681796831316988259703807166379761765800855943454851297825104303527548490563605344784288261444475095425971340330559492215858539807070332759197707050005060792831718513071368180615163814916743150863901047228915444182634679832403840341855152647523863727788926092947287582560784215765544225675743865162103850971521167545303444664691742107096283114754121713393320090716757955333897727843678964185088926598179183521404545474056707728467571391307968591376515957582478889086456443506765161330484726243396905068646758666622997723361698768596312931610325826196481112107617668205229012464406346414996115703103356816081291799980055888381831954639838034051465600908035948154925607334767956289733334603813905596808148503501503740974791060410081554344538898370957070625030020165411853976997098744848388499683339526417215322991148137828947116434623514398664834224624408145981773438034085521037292137825713378336319316697331204289135530936034449827234116682349541815607835369098461867726305755003307765524143509955584378359872001334936379211212593102837268435732238979512554554963849497518562716226410733850361230188526303382313958045408868115078314994556541146312489790889050455296360880472820891488990234444640002276251551031056080822678919467455097853414014538406877428074037934625788659899281674894907158157091169376882583160431671543361485705743858274707846532512114567956678803434983578936743681472487754260616730114504888338188176648382428140444462117672012874130998840611771857803244166799764786536650904860887883910676499743938051133120717414388194649945448308819700826599786847038038082184198688425809633507582062690066554672320989640666488440852375164760648283120545791343579391931111729555542023839888398957682363989768331159959493121653307215919474472858107204360640693389280657783467484427357962580637751920135038098735455732372309623465297327801615390597619395145778243959699515718223951573630527033700667141115782539539898327943126019526220523281888942248033340231461942078133595286007190370452412754493919155525659598493610243538698144883159789891840207236387109400992154564995259555333174197637255418392809900232010150069357993875813991280908531089159753074606713605180249990494407201548080999122214498989215999801335902976521755183480022553774594883461107842314983302405701777772515423816120928323847696789261868804015630423871972759693486516013094550927390104694356063569029494166405634647766035278302213495074179468369521202499020407768492591783337174811317618997558012753712884281363835403074224590352873164800851871237688838061719351261823836565105300999638760765844070620102163104725301411910280915869568751456236930303810297193012018337272704608061509744200479319692349069274738433485854078299955977549683110976633405360871751263991329929762552192484564515611638890422309343193700906522256370819358705544971105705554146815479751322501434030479962920320272643547837013774873297600589706612256841515317828527128453945737772871441713103070877423336240550624548919878893470965250335245421986511442448849187051689894080636337760887411124257550372931476950995887777634868329941365712781724702354937056398498281799011247400578937359094542307637787760700101259864202212706061423736175734571554652441454524454210964252193564740243389980683995435478217540757589618946354315275484331146490051182546219366791343293867239841096760545693519948860779968136102548563630359477278094146996502599692451120878107153445580623879146216327848182366654565622762826087543517235388203654816088120771191495372324658638899742400403200899506475120056258474272434469548179113793043921455098796527914321553465892014460547334232580887915438673561226972855328567915500861176108629190248726077255568953419992169741064802425927927667680927161771095391789638806080831978377517145802604532159498981788779715136696413049159766895103340762430152306879349042963688051937720300619209030412686078575444763324280835689639389603542753105198961313672141020549223353900146005071460540567329260095260611241977443638350337439112036396369189937407064553000470994018826073565589571773338773541081342788528335470821203660800863912054735195288256833291369775768621828794862976685390056324932628936365701019008798469921274788584122539412771907090837150373292365970349756936441097905011470948548686246089231770952356310508094449505486618345017141358504405944812295607295170270764449572015465671074601738772597741652371238992977552746284443579092582258147813570674092174159443305495203779305770930078100880373061491024867182448104458749871967753765166947797676482792317341520807269417124908404880472466204257188249013509199367958499824444188996161443768377528496207848301361066216193112698703073873000894885127018535001848437647965047995200439033326134163358353896977105802586541417318776220788957174294102560180859421846889295813579263359345714385428065513106230516597418846716029164470002085729194651030464439673925785444478637702055405934427493282487480151524488354459116541319458461253845568162563417576104035316301021322520049696437781217028164414454954812834140281828102333469628584787396400624029685708445409412872332402177020840622699360339146810987291852498205426754845634239512420090630893583374030671492345440113364802597226941508521845463411291870893224659675478283108497236995981790084702608985467210425086536935721299254136577584099436872469324948671003888113782754145490454826025350507986502715668478147342294377503337032416800494234614717031488035854570223426144781482304940248166517249109642122227497306807218952513006637598057476856847423423314958181559225981604843786316185834236361322020144352033989637313680519144942301242022405568800686132967104906880377567779313197024402617248681434049487437876791518959516909585193817238839361376527423736409592259952685202277992521093125058815585766547530435131646035153118284363189479077883986392737746230513625539566530763208813113336273158177992863237054948240640628510224613492339062024551925450607632756446787487503476111332948154706239185742654995987981384833559913731280630583689158888422423397039827857567995100255095986468373293724560204406732734738093622270381668314407055726348280347519720844724395559205604681335199726176846598299567985402491930178192570848066136303761651538733121562025027704086792274796724303068971126760044432410292098675623690662764839010388652570321121577993780063153030857381571985067057248544424859697997068237753790809301808217479829388039837237545508270118237155535592733071800616660813419955899930716592092293825435363111323695855257784632712111702461714556029561197093664791898866550981041208005971693590035284524185362797007074782115184870241887179673062185346848193649372259105029509928684414690131415725166690552387036680212497613823583966147154338226470105850709488737412688000000411729526689801877988929462894321271835687919735959437793807576552270982423607706418058523368012285531820786887237547158375612778118928873125911446551945951956452943540004612715795540760099063352017621120785400855416893977640496846166471092493399704382893006718359795785525805396462535606541860276705220094766195216254121662944723674021666342766908320738730754706033813123284284711052458937091021237558136346118458969769555362071235819475454528911168353364069471628931351710459436057849280958970870779644441012643893735236218106212003517645170805220886533035656230516495303220809037209645819441947772048964875891768508886460519555343225629165615942749277604177297364529607024393725767460550349966428531375914798159790447515592868198867283065271722274138574126897437720640680482864924536901671465072380620421236122369515321689558255949987846202319917829099310198413273613641597956501409153446241486871389837717663290124550765161569976418620661971255261232445826520723449278159039057179127344326157216452698233450024901449226176577592851436344274389191428261467436619898241246776605812710877895597286115181210210285497432535304092010047926999385234976276780926878068920488089100965445623017699916975555839134461597769746348833076604753782489787485563043422095447008078481607587613880676407253634626180672694285882872913677096408454110741041197045357345627054891940349937253844368485172362223723518344763116233485455794421943992252308733359409740416598005808107343604854378415261301654855647037326527314555217952873232796033069396856978431164750161437830140832765640915739080912535291048492530728374921002362893194116653516256082492198878841710506012073009952232919264479011425075440517226871652248556268249935683206217403893470505840336623962774574036632474195068383808069596782179361548711704581210088322497915113116577289198894161285519066085531083882594656138261123071683020045292952221512338645491005140339086439606715549534386121644902231824102488228459109536968372017851700939959079058180193845204610135519405966346170819762152088718121523557953684632763834449896339130492854088567976237260140493715076777402049917930255178290432884969453418416646441308838903901659795161440981277951460665839325177731922672015420381215576197677480377442980567852694992299345824988812028404722733850891495521698975750800616835087527674449588644071546760475140955283712170609795542433171056904130390265377822490003872493940755593857776075171899709994351886056333591502328123399211820081163633309851262143743835961859621672974530792476136709153792442133010327258606270357898956477655089714560075857771269718895947642103773969090085879521644779440881164292008177311379189476475197422953886781320561089191558622991737335786059707656978852120532371361344019995721491872296517444637466036667517239088637422141065738382429788535211513342893729863109280629046211377581976448947180908498409288001087477406151057901777069243027194900846979394565012599064228889298895469491292901469746148544877263931678533245261494744443288628910525611601962295780252243537349098591921611652007733687768650362435512976975447228210375289357275437488927401237429296232226547346161061333966513180814721370030850605390685801794172159393513364063724240535488894650300053291575264003320844360728985990612562574725081950894996496732747660275718073160076869560025610917888825169585553490945020938138334659846613040980542413855758399980737861190620086884033268969359834901686076629686188431302359260352173086982584032140241087346963881557541401692857836588767076147974675036490082844073805185536237822370183686833933466228361056483366860952651372633663518464837932034230260828850212385391177299338642156286219497861049163798247789487358945610393298025368005834098039705269784554325497029860313830799195799981099052968169489041313259224888679239473449426869769560728331741927624658467063810607034252730772934281320421023808062012990669947260465094952026205932221681675380848454279426496744073750319460616239580351679855204318446438350439440436612584174429528619654886777449731174693867089607085027768043416976435474725031882440561478318195586441411416663752182885678703652048802227627565458169132603095122704239585468474093835346049040277461150385004741235271421126583536260837202060896561073391641411163679521524593133933361429546852710949919879358582203091332471713251261943285933303497110410424995456149613542076508436085735785119215194002106404663077672285184895077711549819310105167002692500423626675057808512030066411948985524480202364471171351091766869473607075262568563884047616428616503710810396322148139683484736674122385790803181122195361169538625112646357952311408562336398573903042150555803987777649990319438408978831612043094870809067616399126319439121518156341912871673282959742825558298517673551187774378918823451291211128576171815633315860219256833264434466656065140399611724198207157578213599754374275522679040066568276199048507135139473274718562225471905534972288073751986504285392845998207498118754649799159262923688945127929315090625257666577025340486371880676111791091454951154678774847515441997248005808790318393597377805376262782989413272360725245135363342904321265941823239319296662112401720720179638707635742588219492375215944615077183819604703513448731635260752291622449013448236775825959514855847555187533978264103732613559035281283509101291559705228093768078735935379421112126608004833784396981373552558798642539999095349078044998535834666103989280146005648536763798230723284843570851220451780891197563859665219361335139119830304722841865383096400539333523454227684469364917252268030541854114040565771438562762555816706448661424497551759152794132206644734397084581236789750741504105370802997073858500173558933123963784353986247008424884500621706082312764519876172410298297698253412719485128553190353564431239274557535763739737275757883761646782926812501182683554377011374545595625050074974962062071091824694217326820124297856779165599083562022990663992636916694150706987113771877090852665909543404103613772474600419206376369435323743315340202310237091293596517591054435966104001644377836241900104738511723214297432261526284260872612443354795443259990605768188822613681419281522915104388674386117414308250209420562249597080645666232906418931248211360726069336400329335743387491354343256335787036496924079721237170974022991748516504739958338231025623813345376444035896339631679725454322317327585151561127961622010722619724679932829341070464850733639051838546189945478033679395739370801314013887772993253430632333816673425778317675023574348086019819325600404975017393336950750058004603344207308110086163670361670546494670918419927788404138884307148121940622777145454418409845714644890077364807043308397131694587502416040062286961717345550995028539603972683727294767789063591476014193880991639977771422017739683712991697615287653833051452703454338086459780502805526317768401246932335950806007667949744409632453150788337898520911488786132406917135236661394231335766863251608993587080025300329158850155263756874264863158362027317060719457934213908454026135734341045953801087335598437487126933359695260629554920625272079202191523467438959469208037110086956734337220667126758786949455648001645094374665229057321481165013171509315961094727826466743406449545468158173063214005601880497619252562873827389343679173172082108446997403551415903648401063819797594216059079871610891568544910811041365078729547484920695149438262379775629721252796489882763033086659206816856134270818312128349964907864914435296909847945399717198900256860722467960031885832586473384547718875567739982211263991066834787016597905954237688258524719276968250684221311769100791393985270970199168885043036866899537631137010121948616296328099289246335858508955353596326776293378010472956440945473865943415040399093503057541488406467573312536810642055495245723716883024409697623138164388942796241477738397012285550887904132383594039079701403510111950221434329394168478171954924195104009668202844224878840804442132090759247342110472164381627647980213942448943796792734214417824613073322903193504625783204338996039986903813758429898751611772394070224235785087679564989983065515971539092572148150844132631473236804247700959339155718376251160009102641848797905700099935390188956104821829264817784251746048552693656122176883839501859753547612909879816377612745888832449824669193250948755982013339880462106250820472707337303198752833575950166901965219835654150635094143845386266864666367734774074272513750011063838128743452994950963269192208836108486712837948360091948851202381759125603565274826733755952712394497397339964156149995839352043424268140565063418953074639218363204912228319850672566999749125543731112777149935415938290870317774167237812762838663535481901479893540973051008293684489081319722798594621535699514031014373801610024725214976334599213211982804302921638059725962684568798103090227083292227055364076110542473666976159296397246198355079287374396527634511440273421152633487435067258410026313490846094239204989039255169415013137209807804712344061837525029872796339529513528292330863134838097049902666771279049450373615338523520070111571562106755605008807029796505103915990555990566376973179730261358851584369634964571147843966730098241274780242605007991021747862544408703731776641367806037193273419473550739787503633018442986625786209514347412142901323329920642165623508171094376007093574088793120204898709698802796196903365829520252325239496669775719372900040647146985401676491173041325961558213229292832875302622137533547586837497076325352385071465797691676174568410207916978169335552920887724035112467682469152520673620921601726532388152486556336338008726629772104277055418243473337363293298339993420980436858859396467559743704941040574289911075010934898258095711311727869565747477827525035992861941819982898687020923760909384694291409813846531043146211574561985889563339470968621878357049527154871992664703523081311156027417954227148009965286758307426003871754007930386574532319393187788359105529815733120654610801923519315739133032460044816177942934062057734530389888699169607404822216231768567150853716119962066113385103286056075136943270886214947240752469463294593873255549280430992535056177147988588697594340695376301293356365113242480149543809570840875531992977044273502754050187108732047164153390123797058690304006897650148323060174550108259529963872062648779400315247094406326079030401111576383831466694376949170539729871483203309829503001335595510503812844697423789508893936442478588856495679373151517226872966427884128656851006833985743739399372866821060891649741682441661050161309082499299138378803537620837422808269080440046412693233288358632394948694015694763681847348789558541735621826600299079123694537102564149906670779683073818300643542067310006984066383589454157718513267809015811468684399103169670051856998085103963680452449318722529081447665907638654487430967508529843858756061687026667310266721945632325057912583113982771339361957257803283023865660508303191513384673343486492885667223760216752012733554444055508713625508405018877802834511268536510370340684251364062707945044349341771722970379959192150846877236421231134810227686708526749872858282708459008702959237914621266546421923208059973422830875688166423211220597100331461326137701269233027472890763942659870324706834318449874887127958410622865053096752361132843644504181147864329770134168690000531814445412944290942055835431732822245528732727715787925169612638117197930115640561224874742353478255817379361797062208003818529629012192296547352797750643371867203540205223390523651259637248381243568800249816988663505332824707210437961508843558425022131754466329148831459470734653235625840158229366007596154830200849647238313375322436868862659156700674340919053134695074887476498615255247736569193515191068981651017503224235873082445992148260415518864676597378398737964991657968385039930881133918617948110769158046538208274375124366893851031700286906559779637659493650686359476269281438834481912557092540295602307133023608941809779330115542938549710403162647695492807704307021379061951184226726923331328030236452440316033055564654754131876900886990835773669402737830505829383041700402928194707433052323082834154269500243616553836458194587186735143641034232405730312076043487155435706815210536769214202233665502921135766481483352716164914445084444442117871800183574827165762247778491443388519062888595453678014981248880525763373942912695106567970529782456387930320621508494317122930728132524054735285817885293624801444145873277651923824843107406491389862408060203964688333327392798027345663076522809619024202882038053862095943636731177588710631178370608785106593667333147286227790202013443404076848935931709397401221720168654429558002250019204187046196602907304966743658893133042950505820835392058117267934272369123308436534313248268918407377631809993395020719228004265176834021434068541577991558422171068360893595792669692597094825455616698710607041484982497326920767798194884691432935660924114697911049375669409320825594547672803939904412338170056329254846911038798213068780395354643953668138358650470235212085583730415562832196039653698495420354918582903765055417936081586330646574820316848084590241935508089453001999356951633153017673573489992533489893876054444371585080555852514568539845807192538699321554886868406262105837903715151140724223380945524312233845501543872540946951308726324768441011744371375873507531634648093359683078031397571699313225756143185205825320825196841140671738923962072312535267221942874214447237067870631506597171525234384610474578800888726641025409510631449684508491443118150388916977937736908261908174046955183412531877651861887820990820478547657060819781729446551140708293121097313775410360862885225361767830821860676620234221058003072235138543924612630563323418777239447874503094398334929638158937195945269043635735444617941364415529708517606056218624923477072317199473642040957725296661825348691993968534775778322972788485807255036423728715765728945476457042795511227399419392625703643446149521108570275106197100265636968170332062514922995712781406424889084040573342302356478942113894216527908141875057731787339967710612794299725240803318816111122883643854755761844486113268808749704697561690243387627007680791927772815579712349257697463217256211769413949334006119239954869743627623029535473977719109467840837259712405196613791005700437111523458063747675438545057729450726000170132245077537166719906820801267426756360531600793127750629362830905514946222320549182029225992109224790904221739860775930382050509131449677059215408179582572876977921932371220752041584089510325020383115197903663549147738542314195795069978830191939025989341018774937959553573381971233970913269017312752119888538009133541620412916591011984187665431720485992580331393912922718255447413983892743312559454477637417712488570933464679869789731256913996866820007766000098812644716979484153601572549356869745923863724138671096714393401861924134839213395389132074501772248004436901099709261354778664493812579083894804872615421854679091998130664729699449988695649710073396689934746136400696088957061372922030227149055408417679052644014691388742447428426156876660078050585811740896777080490966280579559984017227517538777055399239116491191725492150486161292396989232288813544432605145071939923386329865392953004459842754537507107417361765370909155626247656461462154156548210580493283799756664987210861146334998197030474644859126169792472697782521102048497598988595481695252838219800393185797945827983050485559873479262089352340150383732467175918007526859776932727272980564780724996224264215149590845969219287518095487443172402372240702394997048471820879083060715839909737704738393574051265433734810268837228474851892353482590991995158408116002636617966141805385817721194800537657405259223718029593206802443531888287804003741137187510221187355988570920976128149208956290539554109756084624757745048241611640931334950420548337172142474518247096084676922992587312291227294998722089788972687300314183603681754098036654235526361805763441574240255328449383500282662713287472603716969132722984927735695850293839431558584165631888419723108793578039518010936032962519186724488154965718842725098507175326715332644891174848011082761559887455071358487932580562092488486403531484273619724557776550203843740268571221555338351567872512708476684018432487520120214266538622887770916943094960215316110720668541738737237360284812383492953555013450320989977324640893627378814784018062670882431123490602544631676524885659518445080209606421704128100353658893874206543542541344367204705048985982835735620236120076539263482274330929060324579869033456110023334821252021797708040666431919188751559185362276806679764494400829896648468817127594816475094245229997272561520460583202877162151254013443644581748434437043579621838408598471081514660086258133741104058182643468959288874907445100768652226042892463715929134349272583736816088358723214480374127654882408173037866989524290272386138753181171930824367536807403788380102061054467883055435521521954127251203270651466757128687492323902112864672436205685031084916899600896563393724305685930393515983060607895716128439766172969266852247590027645842786535157205658598420896630810882935921635652922855315387754251962504069250023755935560189987410461249265433486051468023920918877636543835039458544457682563434519771273127896186784764210428123947387025462019243977480866051098880844709049814155832779768322969651588572070444114085212821349522349565627508049472073889662671696774888549052492871553208407837728780078314886367097288278576984437614841200588268913855558059953765882045047787852784673758801374559794588456431716831079392601245798519555446937357231430206678686624721985513453061259962571233841721990802797882417797511680197803760853430183118791014072934600144218626144761560563152910912628687905277288834401114510570353691381640923227072877706791643784191487715959157179876407300063479245936771479194256457023418579977273729198925875387604710971641289369664385252629187963838923051217349662529952703479456245520857328072738233816456679497380760246102055048439362945291058782397320179858336452539395758065661411039441446991255151810085478328270879765354047217098243401170083475521192423613806180724357687244121961345695014528354973153822353869551997473144115792775313848301596793773878358921684999403406392137064245982307113106566579892489176148269212770375354415323925589153340484349242133562164984760548352251851337210097433360197071281266979156434073167057107822065106862486079188967615478482548605041687563579210442813123641324283586453823908527173676941468938825817205400964966430307630861010367954330572799928614428323868988182259114935566662650324800353227137711548787324342559683764269236350329155505112110733861995530088901077071738720819988788434746809894313241832561325117439323624988482170997102593434011264321889263815447068819666598692796154360172176208858077891475974345151607038076275656872495578910566482995452772933132898001780694166738427775573075482244036926547636533575122785849602466410702418515583830763357109247395769848903298012260187620992693027737752698433516619195670191784533785271253458767449169195863371280339793443594720379579221481044292723858711293596912494246903018516779472557452113813310774884042137773907034738713373403768654349476175020182787446157436944836060681490791306771658195743717448565572407791577595371367638728786681403484825676787154853914760938897083719194486137975526669936370900978744413234462465479698638720018352902074591705140206064191415894907536431621688208396974047192219936188518825548095286964619427545613022423043283188711429218401775933533495258789273970018716566133909666504439154468814927941252418716569691131656300304124504824162924525442355157117017308663259507760525328923207764809775961864462599462329012653568509671814427549444656118341091663954971479762696543626342580481707235898406874546371095000042941732612129023873323702537238507541684079036219658768121807453907712274462501159824555369864061658941997298699161271331086232944621986073561721550380663578406286399803911217186540960059788198557210513368185273061359665513955073101726168545569076812339316894133878431527498474007872956457994107069750375449340698031276879503198001746404462040987353242946184771085421193620577231198180797681906029201718046618428047812025289718419868520036713822910617668415157148534681736354384636790171048252672813702557231606068154731970786558691578363273660603860642057516731969433013868448639148090347696300219855541073093668091704734374193526078094593437246215797924212960655711961046267054282405114933544811534133694421051087646997522668385411932877924962480178037197666824790304216161693574548885546074530461234751536909545122856080419931455869757734288811461729980186421235740768344100431765088656321056394454180445283274733016545580676138482912454491187882758898463408921047771326270902381157312110580019095759750976110754317381088741786573760899170188860224293722421222901116081657629500207701370505609818597573535295388091975576746644908033693237199930383500989131033771038150574571890004435402477928221236249792783058040899412994018538043136600211123024978821845574161453968608079339126837013400096402689005168146872057228943886505311907043952971117593499433935272790331767511367176388552140389428716039511589357711870216003539498803604816155498316253007743613210522311038674986049803337444706251992486403594416305198590528907241477920465544128357187692045857306823269414682497915194560981235213614791008760903957968556844703822941864121250864919237270839667727945244778597800442086014691603056863878668123723383541123639806801225669619009635809366160841518179450407462593584528864902865686559276109951801838145417064474694352026287157695177439256609175889606478993741314455660097347491981795948333580873932814472515797507524039027556450986664733379916521797476476452223883637973711769920143528172425282142832147230639168388119699837459016814260813916305881566316535234489895065014617844016360642719214454474610009229402984716413715564785878932278113843377524685328059368364182764439240422056033877336700569599459659104201793901351036843733898252790554522175920110728992958635512897935914286142962802908538392672052174965734428720281625029436997545158813635561364940767416861513518014495443708304253097187949582598826392438623977312838381368440320549276507891394419583820140730270283012191258968685193435714984478753376298419355048428967927085957994740200181351241707640110801818673833242859576338524020082150695063903713496441258622289005389575131320850631710131551039361150463075176928533544106046155342256083770703314689911768107606758837934311449749853518921615978782869357608339803045581956571474876805393665116865629703667575879407912448846260279817732721861745743984536156998135152267242474782868305747838021141760281228720263474370177211670066082070321667521660066277809264409088783525466594887310329944593267889814708388352017477801901948816543920178200461373436377144679117701650200544393949754013663525286479994392790903954515001851569548130492728391592710955352154611076909510586791435587731231784922093939507492690471787798525094036744769783723964948513345560153299895459073626451450988408653580610372525183211958275720255901146297958564803455581506651910604683244627404508720209127416562794539705660382230451342964349835829367279287413381869305526414605693273953656756761641320297023023376784073591026858146747441048841216695798344171030344539582184883423172950037147043183863924822779846133877330448707517813664551594296650664882476587222486007604658857702720358472745042040126509874927307439831522278877228331130213584089371315287194440391205214123132586698065602734187253868539808101369733589087042975500151528872064782869191750102215328353479792065921222643202283495618148466633362736939930153011039499874077662352404892270954004137903807752030574182358100423290695660332656026291286292924383286481768627857311220483802406451895466685044283859265400321000152155065561187011680654698296854846339230488496863286275406109373814141810663049658025936657213271204938312387596208723205101693321806789517089002909745461139396958022084605972861313985690744400877602368784384570820881512840550366070139688791827336869088101775102330814610743256353726774440858739456986060891268981820922090529349965268648179698107944194919855582379799533219087956452576614632464800682293675972361216659652073187662825184307521440371017583318193008102919928694740036198858878315241698016283263504469344542434546473043907312450931140777663433405825511790604655141124551280196451388361122028303437029300990926302929931341570695072155638485987513454225562585809050034825094618433289559753968326573396116838194001594646791940736330242042570544801822190634068616259915582253933484873564545074013132538152839362042763014236171272351291002245221920379794733978202370742967942737686751710766963867186126871423367655923876487762042186065025463061656782101498210085807031765474691972990372866906049088113834884945578250148928083072348388245715660841125714634549725248693907523494314812468321914465646931962794537223712434336217869067553651918120116878407451666296921634228610653135692296496570390612716562033860842154440714714918611485876479579967925036817908904300179332036732256171574848744958699839138244598467165783722404142002581811049109475827865791473084240589400739600710987777487492638379360902090030108169715935697326691470466404294309709866578906068480334810545097594920469156821408052370152833282147598039272839285136144408624937906056859268287294737225608944356004732356968331649356779221617445749943002310467336499946318029301030826980813410110032563987118734227821969669475700806823827727463556145311342460975100883503234931880621393331396833453832698691600543464826062553725686327176377928301478501368239629275845528187650420443051686436077390771986607098420375916515631253516540883105588055415511021235663765954953730140341284920936655637356350351933645495925786224711558246338753271466665564696201353964539365906768046462875835987745405249613800366204573388880167141751507464845728678465280409638587256333877931275771032683624219885406877374155469138081799374053660409187440748773292671248683505468864358929018091020295917275216086249976711086821198977513217939358810924481696905726951187570563181498916593333757377867442948482898746468873809612123879044235481433931945665378359416011433091519175641974238822529422729755005189859649306435899433756789199845219338972586697654153326132788934626079366882130800240614344974613052280278920290885278205452155390381977602345194691410462915870135418146784316159883218315277580486781364823104418196187973019886755600734337262594737511372805143066656477655666606703122295770115812149844295715548277597708840661844386094746284475903502112810176298133185047240290851081674509501930441482309074572720667854012171094916239044829591370097750672456273062719976596230249708200404291562003417679508215033241384898826844109997224353940363461181565147444911559622809059275841435392825138257789659876322705361893163718599063661384880281770233056184025500238669069994474008490225159348558639587376073494066543253332003617015740069901087309602509988572752270769955444831113354637181860978706963551404427081754080136642992434717107783276996509473276892728396468767862409181866898981964996732649323755058130488828395881055571566517723008797765772142422524098467928601818946699832810031793302164081024457783855472326819762728040787367313811512873843947955079976363379767108207849540355256352195782208938039753460058649248152860500518681586617996114010017249476147465007460299927048368428188761537398376955581663532099031036518069067435723755249406532278580537752761530603062021751736496308644854252845368487131444735042401975084799238918216101751841795090685160795026779416205943025368275888538060730315431073248012797477853817194278904176873170156222921588499926668042043088625821349220196466083979510689751068319371410666136198794771931252700309740752339592918541453345842270571435698050646578712425117419213260384555481550320490634316385938536797727560356363027556485648061321017430616357219646143085995699718946367016451171620997584612429138464391764341517883380110882542935390662122753477054015812016933739406473487687558698587190612024795759526382441071853648064901610040015156819469239773508309711940006451708007534979486278248187404751202292808342951519863415661802216362984218250555271028127955381018363773263858583116952240860010669176556962851317529823326684474971031659389549756869790529346055659431065958675955148943374528971245434034105013748765783650619119658720443354921852523487791756370779609160584632132678013173573660851746303811384056754118203444139050911570906822065253025478647557782564900835129723189407238621973316493164541521777253381418695871780580764547780837266647664317856303192238333598401196364866230143049884236982228828715666013253399758942550315094440826684513008189298398990004311532094623108049960774773228160691211325113481975850289788805442928990123565295101002346777400381905853295439965006576138745753727347820333698851686660020367803948941186983615713224567122572017700501828934980429671346159579718626773224873382635972561745541592973391926080826674108914964467132394038114507418565159116572325086752221820627708954929144682456290784121425311810299265406483985616608949747544003808256824556023089205788780487750999538535079404688421435397905431308140823857491120375613238399697767489063641197283011547510930756361926298029111456875931533863434932020781149151773438770896804589987529711118521840291111722849716442507556574880261955471417905455274189260367136574621505473978166641333177044564170845152198643791611303246348934621922753521059835696787203005914329229717469597188159745168330361787095992050488892668965177298755545429050835068204483659179102566786234378929984347781898701412004356084208903514369081721828955379070609347621077969379841029802333533798545408226173825548710720784792677196183359371519049357819716070643830055093762993911792450557363928745531358154537013482938186735365024520620784873196351720241251379845360064939781355618917664523427447257442266685718272009825543495631145819667047779677208014702070044068962635999083766727974090415351033422097002711133133346317650260863523699730726663689599597869564333643714107354311321166128601791627508697389572809048836786112804282728508575935112923037245512321199581002209226124396235834309372861935381097600770651729043967874768059046731006787177741602455561817371275283979016439119711772089042901580171771654343120120489767067096638304585638557563804706394779857007678088739646526064961628888849730495155442859528872033056312580270260745795465783563105949303256131944700241005786884307702827291631141375984811846634929610997131404570069753637230386029444521450284948902722970248667274227761010385346810781500425532571121684875484240598182689014396619385196815207153334050970244188090014453757092769379002771889643505224692267556375836004536923078895646905361558745572581468182842063400299917779632535145437761635080997903476274904054036707873546467091226314136655962811684667866276067630023238405522438980323984420624231551074237008105953582686606095200092806603637563767614727459178245227847489850372402288340882205072344227296645613625881773947995039998522654683111791669539653504763166496712068188500705907008511610249845026495697996654137751205436294035809071203335948367453791401529966653201086358302809587666168138120534180995291715244871772432850271789067368168997949707448776975030998453336278303674326855817342263168552938236278459762194395033558695519102421442720690632705692120626454598233523256851655067695974251223256786541174029331059394153361658439721772576801246613753803051580457028694384257994759964790392138607425788388092213704343175415690246893550142640540953840965554467046961723466984958324338244934434975609207486630298892652942866890158994956451380047940960858005882117821403150290445212341758376454075513209479234298994898313775905826333052692245785584396527689814850753288441014132658243860413837771768785909847236137566038252780309582828664350931084941748488665400998917599061603368051490425010608393734437976130893913751556968591253246324597360592689363556205062290089395560300141214970553520192211940164869862327876075368176315050614560838044077712640336879653885188743916318981648715986608382436596445480291780316871545584008726791517299754419948929890415729261953076333883811959417364653354166300122934986677946388648583780347266700918272750024337012799841879531666379129410766422231238857247047014003446307844235948582428113250006935893705677722621220006112949956400853674136669698305979408416447924561830756507696593514447017564228097138304867271878571834657312757934052133897476016923320221743057130326877960998090587978364453010542218243399364258865216690603555823837991198280610127940788823602610105385580880462342194998299644461763929533875239252263499452478546587220522240671975418354164033502829194300133409993141839081473478396799908532359042991075818891036675517378487178305389261861927540903583846441341561110076735563711070936569890274759026009804829871846480129207354579907673167129773273711436914017507688618355775498527862654755874772291264874446667545123587289355175863571467879090046672373280910178562761417323828627567484603328355167791583769565242540747369852054389006879958873105689624334631371106653758397043613895257939467899078339596219197116444813667837910316054481557604235824580823293466278723477810210926250660888794621083335123148539041333422684978174502405089839552003809459749361861830445100954339072974795465309858171211821910042246636834809135928927397790622576444346619467351809931505511634622660168076707275054875112037849503713225235426984365787582887355545362858629524112064721220442297070230301034371242692548417069450135876086090874653654280607395451705775374555848213433218706759614239261425036166258048052001944051175557719880915560869508665130484068743032810389534214146753618467830882614778527751092699961454529533265865231194149579146379849894919947274401508928398590176732702759696127297100624963199578482011743905448192768944112909666176062576658320072084575811106757274589584212825435328622836296839676948201565014025056014295568880884254083288999324463754132687779931144503650073240000372631744647042304863774004847863504104125356843366027461792971481087151184516496815816741778624001275022125571021581863761767570999241575934214813683920489917603902346418533559214998594120600077892640506311066653285607613328624887086682689028169601634397476864746662899724808002251972117637012006215427061771757091668399318297132991872312168334728161325410408262294356410625119368954029650794337021167257919235728855331929991751241157742732546220074059287004550278932929333818823400571365837493506331358403412553753153873919614983470280319426149088436626335246676586351225094167119656871054728846521619033802359288606893923486598145115336492577088539953816124406011725487128277312390927404487113516054453153358152605552676349229575238834700605459673708022191030953761531001269200748233070575378330774895817898794495724782714346516612529327150363165003407050096974123639498578320349985507921891044581050376374744756450550794672050959201783328385293481414289304874930615321183346962643071246196602329340985129533360580658005076193864104912813734669472245885355944488770696451744234268516438998599337100199301625645692921980386813792765788016260375162016512749191892311189664048754550681595351008524695072736410331842108190574916736693093981626573583149302007331161114488082618732059185250822614100189859601780220324856823379344348933795633735296439177935010897361761627136020245212698654478813283990655586503015762686396903439925852545587951884286108266330412616535894246242253927426345253442349279392983839410422962693444897702852645608788078079500934938975680766522442642200274797097621627535169447611408953043413201327610661262193530624714328951623845438371770762939672746342974628841690426608815248188375988114096807115231403166303278801562317128252479571365866164892497389824523702165619124272515272210494190496834458035850881490755774270208351742066855101770051328905744831747721284673488204834180818190427782829563039828410737346858657039461244737738943893302575357699680952862690048617246739465823529261966036209734570046404682629819857326811745491485131711689192938004337686163927639548911190183376581613108396155948057666842259407506127814803218109392822956191386719344168639632194852085677343204076207704888801742387470315922830398426081611938784420348958743788108467213860841735091186356987498760144032989030205267268540591235889996906160526245334897016971513662420975447898514280549542714635841107827432735220913583711767219081303802376204171113221331072081007318596109398766821906237449834659820184532546596173674950472962592780870660218199362181894143033810350569336754111105336397635390371053231995973317039058536664804373894637752093475906835320089784177972245021421637840563977374154451564239326904114877582182567890790829216453698073088341178508648497445529791664235366573049882202852786395906831546753448549803528134816809500481481271625740405564944950427856154136801323691656361505931938761413147368458776168979804854709318568519615818785105124520223048892197632436816443461977576982007463198831891852687123936726902073527470368158572772025439114883522482546966420609532914406903887447034694127833247073666060152825841872024338422533139667910569886536606144191417541543763244042838981260116187011402357375156277923623971337091241740015155747987488238126739822216409237317702875260012504169144344378087764409566041943756518748509918033195988847650068215556280422444919805010516662218126647024982172442080551974576895345228683536078692060656056256765144983690090533790602975363342847867838496514487771079331442059254624287166179792143969837166084975271676480219838468144976322823649456408034956337808258104553506191457371603463421492604523513730776825169089100880531198653670145877018015942736406341285509574133196938620625717618608394883238721533018410052696471526000387271954033458247158532388843318602084276721696625459089026752956441806278229028811970459283290074571655102507148083641204467523626315570709962405590925582634260280458288812368950424791823934416500644380157399989332161754168728773555360305686384718273778335057154492526493690727644725009102369514343034508096346430619843430193296150311609815700582202387972204744348419757478007456286791171503131732849734591555031465917588135533014390871572641742867160475590810986731481756416304003734689998368329885447908462590677552438638948805621479197346163367058531504931638803568465788429236470340861562668805817579263885160621990947103371558045160553537215060925876534240133505568820743140400350637490305820162400536141262225408291113096343139187054886328812933088074047364042507723209418438308633929213204236176386224893564043151797086357505446202358844867065501655961882350209650267502601882604490201110876826727847894063755667033939311638100784905256013313424084034788810542559915941275655225700473139457175966359745915962963058067658196373030669075310567649956941311251561373408828576067080449288899087432991304236870571069578269402669036698854765049360530323153619520615834975250122890404832334612644945499855687274527173523201368194993498783778499755123920706854998273030671407754995432212575148128118244343593480380814978536618891448077262099905095544117847564768832360714599672397350062053942338500876148371633627875020269649561075159395220803395937625613841798185158130739361084061419379673848016503298164208411179297132364450994612059813259343700729879274789850136589126222960552415505857096030211396747279037419642241774951802650675173951005950609361884474178475935690867015014294835759895254681777897405717538352224902023515605647501659607467612371691029776942933187681047426389328016734367439185710685377537880080558283332783887355921376143215222754290110957676661605820703913731757414306683753857398066796272114258641174386897139169516334540800617198696663123025696673095877017662426594814127289776910662678521373292516504236590479942495017357370454534766212176894994211191111755470093506207548069527776814315136930647603785759524339565620732201901804666200497653580221069707632915172452442621370984888149416738414306183713804520055598907538290853776020633144687868589816978575087754520115628027373726209567529595573914843075288865445779270367587776610446564586978514792984877112914814967282827787234575575760131038823287580428461635478363216808716132533031463166424468516507540210065832621518529536151444931241434832150681679331067480761214248203291672783857158006235398447302339380407755809773969629097377940180194244922225478197355491195294251849843203937910507510700809126030154252667948553701324260471037550536125992338917820885384257977492580488150921838458474053879065964702973568128987237619356317150407542315768402438026023707049753576462723046328728346702782596768716745983833670990784589137974644803932204208623875813011456498134951396440236842976478390236807904509243755042075802278815811799633523942983572947326692254432697094470165912319908326959557778605909550622020619302249739210937914317896664530416134491922862276949204720305194026253414007355603008156565155003000083380182147317113894947599584513289947747514949552963818708552529128160863082394866659421930672041262461769673296867763532429147903434551757560181940893033459768152831832472022604976000077548377543665934288566140532638634335384750238770655796282655731869635123076544952477691069340315919343514065787175805329820881078659057895992408393091087800900752763038479850051768375719761078287239526001581649420006566658133470964072373337276008923680088957138116729714650498459300263531003586370948482283406540938421565865720198841360095836607927257981777822524371679788242121563098781262662364105418482429463984413448725745661048423111918061194334093946922317828741948114440943881837586962719287258044510008653329598095720716290838557111463381385188999498467577456379867815398039694866066618721600000708363494955062809687603695745738350599118123253709476779024657053862078858584087831329144375241196808218018171395210334487180579617413729333303996250811615705933676286921694363119249372606063014800264390079310658593054033047021453271028078135216383796194985474186655685739777603771236641618788269936371608186360005720920178492320220919296257889451890996239883291056501870219208045505993276425024820691335531713586527638719068178530499780584073824396556063285965295436995763990242741034680935847154660476146530583091289154246095892573813055833100231664109720149006222089639161519581558253723866393144839870089846832657646993145366192976831132670214330591533462060446491377604081002517066349090369184188700878252101833608303271795072792917707472180909528421731194681802089946787004373144706105791331907103804739203045830168695723824022246653295004211889030679172718385493855580792000463620516351053084248746457220395448198235908969500953441770900565925878379693593192162764847537132776433810849528832000430981788593460869811897354720917619403660066273555299165004707189961308821590344384183008707177421818006883748881631660445920825468275847309425436223329180311860656423134640618942969645391438554557449124958321046307767906423685657594780866900460238499369206114404866935729555610034611400392312226109558911089945640581440679058455583273017911354629923721568783587777928152142082529377751283784014361896823262699729942914407644897071376214637330781880219319231735054444233706664074276486785691114612378166823543869168239734952811275535933131301623593569221527462328944071979664480113052701096570428100203353923874731317905823516596256032610142774686388916882599101092765150302695191379274864519637240807181018225855707177950001423592103140115863029801796247392064486916007241297360763471639220377817500426418564951762334934782836783231178441726167849264138571519140305980848160548930234754932192261334445907558098986994064525407567558216579253650390779130874216806517034417534474488660063909318168153989573443551754539438761709807969164682646572141361228481010387138283227668823790111704313681611001391567429098798105017102343940126444563255694879405195058654634242008507243551397880075604443472857391074537774150947380480704308688240104358486929447689888837338794773511581876708680053649107034217816236066776581298613724187103915662886342980911170903019499152492360394234597537106794779830628284222500709230965620514891050420258971440714122411327216243580008585326204851317125972062939483020686246111920529878468999526294622973632223005172277169735683840892884948320949123972756499007750372328167392101501363494854043656185603722719456340802521175821129145948448121573791400161758294500642781065637047031082833521384696442382409984569652645029863275355369544701926571304158148713925763003443482751976346023333039008094552038098805747522900975254793320600523946478042291981668689696553665376810750986389046462838718792836201106980522454317127385926207910373127241206037014991554796995769245069558079702515015942019675224015512866204213290401034386102089605675067523830463309830439191547385064912122651510712238542450655829915560826959913045771527123152764943354552345504420063269608887449259452762789163781405237893754381628852125751260514180753331568384531479059539094119428694608108591742836627668553408018462763465145135929794721939834123991997349662517638478471489228756120146771309915512827701143497645232046717052821553893542133977211302137973118699866088912123351361349984874878533830579625125162529197485389565584504420601077787211635634827371001580966884438380527856088954901145998079982986529658971681272095054918932349304427168824548278135022822475913556585775431670982781137888405874211612241166593267992587165710040694628455087770005971775787954929201105159361423736838985527768520857990815026882054261858341075135917433800614431149665408139300086853119750723609382959065240506155117058713204176091758236922470158230054283111267753432638219083270053248522278905658054533484899597792202396485594120936406252690743922387776804593113851280172927647829012846936947117029200188966570477318525092388632144035578420523361833359686132330312615688920899181810951152946083577565631335118681424811397002845595947433497676706772893769081931075806503318662142232976860569370447342263925261002873917670206947048265676691275419129175013804602160646762776500903778262997893161958742125788505106806468120809217298912615858913118565155958207288661634369876105060977871332068236211877710045633635846354011007745389349876473965958344642160983446965663049421532985758043966735992396954287104076555067043754803282284581236491364089945809490965121139468816975211246265695227286924786895990231354527305076886815263259569801527637833151416028198387862250644606851285388188977935111784406067785687638036905969346081171892443267398288855528280178460783667850362346848570532776822542239385327872448461049290373020400017961498596270650410404518105843473074048671886669480502587014783615223016290923672437600467821079714564936896461066633470001131428666260031160795822633353541222572769354231434073498097153786730078487788895940355745569993031345161464915327035567140314813323360116125526587652842101350843587729736460543450224972520553236852764807329287395628981152333709084930946172163076154468248404464246476697424952839531497524575799066080076672454415860232657109235799119599387202919924679113420357380120284666515253180458253132529996835453848937641999322673013616191032925641820394332685953898869256401853235936263335267832741521776854208251566695266333955797556676566787116165248025634848619098667324536220899221628950812687894414549909410164626425042059992043698838230434615512694057798588297648804524669153589369188774414534609752057476236960138823030734715219178111755014127858522453681263087810785501085583816166052086061316473693114970705522284731642695869236607418646162815004366533652159882026311142725835175234214026915139941846123479482498926064356034995148615270356008487148556296373856207872172118923348080604725561517195244082494279692666523664899334530699653652958737792457710780034850777734142430325075899230590288149676250013185942623751848694077177290119040891325557200272015224294987381627253052385814163398331969745718242324940097573494399316089805099743236765139791269498090268465694640950342948219134704684606765998696448097128202308936617264975993763717587093259062994888306279948669240894707766474083889721160937575803695795964632821191834521566567327533168625364206959840850778643657523745890125233206815277580978863147235334663672586949556276058750810742849656326652006695375714802048469441563951757203866568579360373544243593793650426849189337260101940241698628547843833399603745491767443712259344710739094647443952893632058714039910866032165074999878812104187210759000339294102176432268010503572479259302786365011047911587299484573713024961791207762633539464584314998084041041194186233345072822845976214994993817026963640757943566730382321548663837544827143704421471416731588277707110228485678958507436903097443752471338903860829021630417942040661910731558641760916703411232737063565799478886340958078457764674098182542998753863804376164946470175435440889386194492420332792018956017270175541232087342776540710535393322622995897879257339980528149163101898108845678053542316470549141824653308274760241377164795638113867502363087574833725376395516732636446033815786979794215396118453332925270355854929776448875402546116200147087977962521212773845879331569398336510182240721562474050698747362274955510252565056884117433305813296771937663996394768841065939946925560114381043653673916430581325248565771986329060733834859792088211251087453700980281639100213815477517083265998297085333914926936118332061323872514168956581868757019108318011370432182818508794864039857088414442934231953833901798329362046085077269430581709118665030913151676467506683918130296587259691400380407181811829750565418365906987502189369821718713425943220340947686104269138271407727673052427089329817733854874923238988474982464282816071621476422779358469414593694503550249752912624917859734861693000571884547956709605088483630270254253343167161269564988940995057019707097908532881694678883028141980505588933181732509224031654284306713555741330561491799749834268612527691519324479263758300844941790495048296572802147909135178731895725612964057116894652670427221509802789328796954475650253570570266089028679513325490696065041442697669923602824684697862042311257837360215503640027200203609740184822176011864275455228665294083039254647270425304396938093698562512484364993887635819696016366140676562273139899276811013053466682648109968601671808926165395760001355853896200763763908699287257917709153767032173401042983663294832321162562615156597128079198510833830541129172505121254918038268776624139266056791350543104138835015916358434453584290181898829096811204292898833515853443123529599491333428661992445795467161014996958592045223014459570306664052523646837864116941826075667816285424173299464831571335623650490620459540597613270971273345954293759641558339883785445814942798259672606169446673894629176724129508317395212785132670412796471561614500538079587650293740600704881155535236457938115086826480618038076248416648922421059098110699139759317952860637695602786715790718219011657119567920152926085859340865440234509546808629208592393140942237817019213954839102279058491122420908679409908257860034638413470616408765266830394613590099134959295173808665772398241196920720724423910450986989732222508827564093790875652440072904342429932028247242847894332467706713369726341165997093065280810677984028534874664331551049949964375719886004658055642477729823762668128051648434697151127740845546447647453540831568218270998239053876572070288817960747353645576236418552585466133015797825396125164109672024487233575941609246415405326019582577652690241619025642019806919326896301481833176802799597132719133095592135204093564309802703857628242274169778536544614442216490174111469752520697327028676378776926469317669922610306623881940321935385443182980850947889350881574025812656472133559577455269077873421906306585528856531643894560603104330667886270005291739767116571401890955679665113124423781289654990427413569631375653774756801958281504462423369456615624990005874824808082734603302266171010162667571912149335276776362779784052134219236512196494018545598932878356102503620219544949765262523731200288721816475813237225452643818153003746655124852538561815343408249379770881240109531874260846256502908327188657138576483712867328940826132043006106884167583110544257463788031822273583739975320474747124683266762533475117477775648135868693485330173957755906911370977882643865206097556275391189048006820992293347036752245021438968197183809292078130085296403587808853802723592742162847893665766585902919055325751723447908545565118752406130559837055684881777225840935479898764233821855007354913141664606842082982969785345617060910410373848398223032850349519687278075512406499751720400166978254829684396172778705855910835367675161898631611989737716628878356456731168472848959877097676947123713835425515994005468689796218977174355412226660685176036731585155873674379448508808880320021696213793860996242464750008371652838837822854322489661768103789773909136058511158318169437899798574468734099326192463216832083551989748163607394619945436951833192689681656517448698822718745275089568686657191592564781942440407107891485149404752613931751317378557384692040182556985462867852614153034909507224845435409794030413736878915450006236585799991953843178319711237773713538226503479656423221255432220248626751369350878408728044107238216678523523505062522088533851070150391819611344504015618155122183606707221486253705846735901038397477835587987026622050644864541861076420425108465863274038948464334998859312429236856131264537888786760213745775623448409413059757788819062154198125254493563967050045428320141188926340247328998095798715436844281486357628410199426519052449569753036660780451910151604843159343223976503990933028781848710923466474287386311822910586426777158336203674115597836775747941527556012062766751824591467299884449345749644392067182981195963248252402790814598462278228776185950822572888589952167186906835660823320746963976519167428049600221423189663231381613330861906211717357497506405270714898271393366771508287396891175682362198502450051001970434940656290959512055860415461278303512125850950792598236825030273365601696300572689429247519115779542635193190364254415084124051486221239331441592947013287916716144270194809874653871199939453581328522605856375621718878598715776669121681883187511755311744845418146221321255364448674223584575242924708253698066620911142996839910940429157763625716917338327975715743521610552460124273086858764580263242748990107538484188502844475533608570526959101136588948254810278216566777354842558011377328892180314603027191273724428910498028293367785131344390844583074928778940120302019921961444294527901711002900023604573798454233762265221927855277090395842597993931939295916447902894746195299594503102070592875368047032497708985788218996089578543172798218056732422678807919960074023141838390877380620208894498570451303016547306246136528970850143246019184210237030627264424897980359247630554323447636082651347516548609163805478002450512968632111242258370384771397968208745993771905683319727181553895439457999780598106830678557036150629206657283237153524263943167029834856444728856092402357666874600292946676961289143937906037031422588445570120916555163329118529781787471694240033329429837005924344732994069761634438311998993128601893554532147387528265092521551231627134328516322750751391606982354639328393685229593105655057693808562782589666366121177978247694441753258735808660195466405550789698148258158905528289427888548074175574309888261235922846988566558030220591168829909478150728042713412898315535542793119279096336199369493930664041155775048555535538685000963384348981879989022533494751145610968131978935913346167186701178089546339060283245566573289413335008743544831201378306850352890845591703904388790603091500189331261517800231327078019263005571821160225884056427356152631802365158316968277050497425502857014685214157986433385608723481748886427691920538943814747500706046650977261643392791583922478235552696110635022098412092899941000118922733103990640008402843419018379668520790203840425776148724376303348554002952972928701997483284782608108152138891104188926422963719974975995679110524908208793550031972794601663359585657490498098627854633432644972972200596115405056513977060744389991443233051391848496187425433184858814248305422535633621487200348413863517030938092507087948081835595260797783296068142330861491032195388162706617723554009850546018759222174907723541441590687893424382015276409366364156919096055538229570675643064034800062583629501070157535949128844061796775782036455417930247237101816552277170683341760749247677218625972508082176269021776369339483347287161547557777860567127699744667881854933589252768407364783598549655198850449378024046490965576223893467969751153723457389603746103048799444268754085134097472843213274830097430393319375756610224028839123156289915131882418513119198561690496831503851977230434791124026642641486989153980791261227077780348904819756538350181282000062703022746100909401291310008730885539471521382847640331020357280874996624508706093598428030209869177500249273346216438789152038127744062418402478132006364010145559160104434601546802677534329289596013596834009436719574049657233616619679704510163697484220594175083502368371323818802119182544540328679640385816411340639487599046689823414311307067471206168811122781792330791547694416251966970570398378971393491673140019584587648774083987950394662463894224269707037688207138718047241521203429744971053241633613407225611006861029407547533541382640499001823893367362152430907073923708042269309041738054710824977920384043890596534416121271678227532647957642789204244304545149430023022138275321565040799779338223678070398758599341828260423931484440416195620777661140607045521311102331835452714876970058729034695064477149803355848626197611710942448833436882250162945031201259385592013743282747479793601252751603231068481830613041686253821005172342030803511927649571125812927767928114138301591472959323162408524861946078666851259371536968047890731936863169270740409934276581952726454892192107267281977586933690652267243194608635608519031141867262164075968756744239809180247378412304413754794321662700774591217229146456000964961942927584703897824032808603117887293388358400488420325595180460507935066474118358393784150081475556354720391065783031892033756847265565018831299246444450353747006430855026188989898168011504603532560877696043514316897463156846113433261592011978232807056696332454231017020252135584088805861778965227327897079733719813225266933358190477513197253035066857161316698659435602758590998940650316394892453988305217720197164218143358538129552190925738594881187142956584085260875613724505020461796121036998556690772424944764971207197603962545746438737309750601143913221545307573639639191396526962380085574692711296098978402334201300083976738570429343580139379587173873272540893914118502066506728568682937685232208737351738269704412936438026910115330792568728005926610921790922295225664313474829164633447469678305073855243875024343562001405566550122782747729737512163254913483498892273256553865007654512399513181378896349366454757541477439733838031809279969693529275836772214191952778913198697292881249273136348392841058612588267271096206210209575759888696498259874075841072129635917456335766244648322482462372734578389904781279163417083152656265001116219408936848893760411315057001128365227824868415355117237435343126983607723072571193042357647735713179627883553057026291256099091754950227136466521294239858241443478963253050817966116645382213920515159533444257927784640990965624230025856633782915820910808785989515587658672227727431177563034886133620844249433620487024715330279758591423334326693686924688052009449122213429752840281510019383024040851490327223720684366549361639369684489476026275867268563386920835696751540125936618108265929260718642967984094799420197617428668444924541866467289325395564284549344313544857397448452830100350214494714658387162985103842986556032379312657754034003674814081007786615658483932806778925348584252996303062214336661703876737711086415384634457273478914746332533802549327269675907559733183786059434290555109298585287451284932954709938309774561718821027899886534330762720120482567677399955602918408996747711982758695707749540512843760692800871457545256062624802586934089540276745239456961090117871472087915326640049426415914679924737292528771063834355729901482525625017904943245518538408284598989061984477361488383475378499874911085748704634934367054261541626043728192194385342145051621945743554032724290687732170634683890967766808523117938072968661428666422254344004435724721727492828317837086158742426138267511135838219237107201489665993352857918256774455073598678577909543187679531047632218826972714649155017149362359598120490691342397940297886007135756485056450731296302391113762994548563180459122129256272727772958171479917928361086715875138524036071656221723025581857364363951899802368802145930272592121639263945998413171689290110329008492305553521828699641462723164368293098315712885918757466721538217154351876385202283792006741820841740254820804155240318327796693358942309918098804475728964370672457907423435459519092199500747704655828644717738287953242156944039204284315630393574195090135462056892898824490234367279631856509482137113179146831877941020131673482096946205718881934612808798581508198453279951553631593070631379632701722014602735133452399701688654332154679955892845262394976134747331338974059954251263027571091177493021147683257315052777676593160381178411001605974491622437853422547812926983186478807191843572955209218541939225158558400556428184943584118505465252594943619092119974226820031347935566741836607578742103588214409807522576153203947194619797439233535740192342983025993313532941982966408614143881397915504056240154960570953272925188343106301358275997702158523894031667211048832745097646581128045522632454936508860343589029047625230941342295165800175169912612913957329881597515897756201753039572899551083468762275656426014180940734382741857667810360879840463804807440919513494938582929500640036615312969852143611956823655683554517557239249251792825983674362604825713026212665445485615142338559663585869287938506891436319672014223871051182251028803954807270077538604388237287435564038064886760326910576067681169823102370365148506310236900123992235442695706443937411994911453544822246220860939774225370022872604834654237147965711764457192541007424309011852450441276444553004087089327313596676328076535079267715684411120907451831041990432886911734499141542957547199130056706042380091290705145107863541779468709482024236230779050331510799905055924540036884022424851138760691672745876271473535696264054110819859410328160194165815028241776857992855051581088327636937531584146233878289533604120022033804104583670921883121310548329621865505253619564353238754662523176914549088685860644621489409667714385069813694853088545340191313735336278527276957479344011323302280181177635598522755321791265604603095043985668124658763211827831776363866677142781775678133794103041307190470068279370509813897649788368370031126386420567949697067774797386557931177215092164212238448400981009226475061138885881262771278217619793923072887138822737075334876825606386972494986744508535241629577157561691460966519603057856797387865626512778238256350473992967119856129442607789655784373730320088767222210514855776275050301112915137462389173606431643886094775115294822511180251164866809531660854631648158643755135349185975652141259514492193150283427860330360771831607059090465723987020015278841419725674599133443655265923728992725993364965475140706069289990346374151232906323943895822686751102784296931138483046042954687900946915570249907149746317862892399664490155749453442175072806130535985285354419696216654783350485690517340029838094694831215414994956970621125900789462164806104173334919199985438768817498152560694442040030356754813387307597256025653975742413824998834069285955644473028137656613994044126779443842832459610196881181726556351234539991729496986078613785337132841050300285111350786070398100131912972145208139180890681006037926569472243147754265696165467011028751394362098281637161081926552332052685734556669225446209634306295537892850239170226460765394059934587261358840232062277390525039498983595837127672521967820886806346490202040529185490059619371151844280188475207050678293429415300291772582549246301040496307491274733073437241537652010629833309329853232402941467008694596502035974888589073303225464019624965212389263286344774130210129394443327708877095443012118386108666158959942541795485584051437434161083839971654368085669394778664866701393409874759097907266247342470944707053029331217288748190017615421880317252188296292176669870926077560256350437115617317785175819144358033523371794198100496380388585849024019946976478544653211613077105281386328412703503072525035843739987204300502438168752733286851136550111400010038918348669559791541638123392395163210154319284586529744612874886336025595742328959671290382755952048640227231498684414216395293475850864529517325424995313120548930467502576130117876896914007371228852722850334228173521139726162705258802780569428198910131053363847760804612933070090386728332776553677329374008675414802956859345627596730034021982712546044926836317184304889391409885144972053671851108009908341745640351062604168414265105364252972333953889295169470410313465339801171011539681351927895500707916705173615569840540854793237423830160591694768067084346285909822690398166160867730506111179301501723322311148993237056488923435577271950851109532818502097141491809653982491493051706230227655542620319894062938075861851120539607394177724934194491533412837250398439468031435678727813909312164639840405631113308813961156960070112691406146778655944827574116562802526342220970583825379530441476567637423031469420431621425677087004038377054665890774747931060730233802074714472922246009395773416720080462910627270405664973714154148323696258131758460018519028599786949393892476737212309020865226711573365711261436786409032660505444578246674959191622778941968783609935455619671293027875114114579135227626492971193992065329027921939273743381868560349674505343616926799889907462398379484612060887405671430398499347685749621498597016353520784372941478592116309491459332326589578164494519112334674314791881090293704955425427749859173338260219487820266773117564461960907131823618261844052868053157100711030923440589695704257352111079999579034570064486793369088143566266267926771541940952324129015386075359496708264025500591572653613100359874786812625027194484337674702932423454418698273949039158897994752829437397710552800129794263861282349602220792312634039612301943311108757736825508164214291475665393576235791667408357349474715044507193426154583612950258471591408534037032566817815861951984052097025455386723023079838233907682351465426828653584135612257864645374196495180250598195937016128088067533103468505280546270138094267803594040218921346099561714229433773097018261006747157694946224752336188951251302188528495246708529806673235251284786304701236401475114173635591997153981901417192705905209416595436852232294966597265666370739907652337691376271913845738253890278426223648743682051300821269864497476749435468925544686954175216598080525191058703691161439243437206417702941313751522497555665051025761598195589839215830275253554072226530814084546563199133896602210360861847322825518691933032968352431831440413663104551485644254457471597768226765697671884751844617503380354938560875110247559869559307473110256853867220646939262541960046357138839717700032291349607794056805206273616832015304925016481096316332252022317586278323645338555860819510066835155480765863889762495449614471160090392624337073117059291849471418546876560343295626790347185937136108809658605825398760265200846173688406591201830629589429183598427274225550197325523072785895776300753256000810607892660451610449632664066676874927532295573941905064599553076918221088881697907899882215589104884663763595941922207927908824389595627415661358696470649431064472890110485068352608912846587585298737485016331141704310997651942994163195637429912598666788346238003331655430127883783160039839268390603911017019425695534492993360721600414442195658654598485639501059878628500297226386104634076141352659544029399331960319361484475541456393188763676599479609354864074924442224958585627401314957647528534456818391387886788676735280452742868460259958410911110188483880809343951588763738330225942395003227831988590883326805868747198907024561034472714731744619889238528841639408688094311202801738698033739538029926063471936313945283849244833640026101183489582450871871828232890421324152467936567947354385682679395560768433994320763172615877644543999343215986812404697733430167394260809016056566580722659222444098262998032750852655794479529918748543600503245969156603162573059844904603426666437929388454064913354920055861150388235548130156974647629140344157217262274173098206333800727202980251522958049291448978157979963508812138773537754234284379212869630893493377530933088512698761980843989737742937217601546011860665274549274489297571920308276360889387277024304089181625289869317916629747391626771558236898187993250372483286360485086107506299189370825296463133503448873170063386697154285903247745159096307291813127267850724670885130854854420822358696905212428117904892993614500947969041623116775209757463794135341930253848409572134618384930810631563758798765196134399304251289226335929678496604816928526040657212041210115740578893202437671679651564977248720840479641308406841983796494383337071036619799353033929845670980897942906419730427231949102117776299191997754837867472645481118184262099973122138277261878074630400652372397493327381530317292053001387343446328803998064472720855671864365442706550223228693255337129499913490438404669237448655964255764534910196000911747897419191699900300312132144433947672696074333829770009596328445222524934384304771038910421633508781593978974559286933468909593785678568879943950836858031642752063959011146186785717495388210238929514989536242128856355303897851808688176730367713350783802260302643554585042759112302538429934089798877332803988309796524592371770162496594316512775975981284425081064304106396233477406893358859981097937067702683403487257190972391242068787371328608075739727488848047006770108316074948016853556858437174511920561301588740470451141333105380507520552222207374211344790810607207676686870558190209790907424368800771132056461487161340044075279412081345989590391230765531218293079341726356263102047028338202364981844751833695622759014056366155625807755484811534664084981427644688203350837362364282090917869039313799455305714067969948126404116783282118146031694194927439198055110520780908391082892077305196940872285701354123162949579455356568080230972306325679440128451083142599729430712581465768879390619221485675055171355549045371943854065437207645428191625430510212844679744399111025336142851953385274564861675989880661763373517080207193013779078993889795362167623111573626654754637869316758336187088454685951225849171550531208269657559613521258293526383732551902351096227875466321723879776761982539304024651897821199871202102592423769500099941828577865132812270820127869224420899905625195959385485951940535089796740744522388251013556230565906807216531456278944364281866594879204316819680879043794010000137993148744086084116752310622243201627483794681641005078602061140688824784622196518917473334408399117074129920091415675929847200958547051889501766210604750687245264492926528020190443340521914373260439133352716889560922336733963380110286766602151577720304592571380121578407500581994582958209006963860856470936300367865137731515582741703783765300969320907431297896715019758696886567597516605541758816764491428752300015589643093189713877424046308316428439632845962930606182480241308186092443535551171214187936213252184927200897463755707278555568882274791998812723886986893859852200584875872121655679029291305156275818295634716792459288614528172340864010899445745424989722988740133615856977485185457712952301060046218205740097577160557919497174511624049487437421878033659955479271218989638124498747362025150847054580047708167813519558958371800508858711932311116146847214293724652287883286811195802065989448935705155858204753099685005357231593722109286545345963589950278774586682753208148790895360623543959851660653197182884169064470556822419878678744269071567934126977417668156897732442090441526134534023192604089329176791428083324275388633940218224298263099372805580864688322492986251761316466420556130789067760091790027643730448832985649051223324327117033395468091809638027197783036435183880357563348726105636659296576191442734284400342719653558365595710889579105241577867240075969464214519663604712306357026768030443926816932899855929607076363472500775340314337103666615013746738470652864292168332686567162812982872250801918268783830025761993019681721703214755903295743885052158463706985701637022217479209359876693940612602532833088743125098773690044076897113326383311596586250592592050500142142723595329214195780339816334508748535157758512442205444920056790306694730384211533317594329487893154622074041033904854522922222237863923791525795113700256605906625214849734496200122267305980135760552231922521169404503462518164120931941633393398943463628891299704138855532289371555898319725176844941018161726391032630268911261356883146457130117447181015628458052596270695901942210251534668344578923371618617207893899348105368105412940022592281748684616924380279977948304335356967652175893626972501321963497087531015944845804094485351951195454520186235785235003946226429392087254562271097545382905384341226702831514823433973421630638893738549644109184276404416985151340408997727515705807147712137324135352713032427700703344126080884925859268337058518726963970930191884723258322866567790489074871430850832973615932616309618475312817267808317340372237605391786135302402845515589341868582560606891873532018221016232115033491642251996954195042423369172257221270451671197392230852464787163501229533496234227224580326781044635251517125607650737561680650423375394856885767292061257423507630296710089047158714215191872677736407270142236058247859163135143837313159320483271446153386712208829126032140316876428512383365900515052428795554495700448621221360463259845646209193613359182487013713019322969097659196277551596908304822935998993375777649563282169523757040762534789399549603768321017189698816614101265711179323374891991922008845938261548055873594415988189410858391909463935831170545549299522334135122868979638041307942936336328470387705947609047244709100329022034183429403526946416461903291317511540055059536794955504125718595707166333235974122613137375678564064713747650092627099280201143728379108285403602687228692920432987839105633098902454197764497090617117323305920808244240006986721656119123253397534531387409349491404991684439090142121962633151733773013844377870092947079697517597679004875758467647678353387469816522583016378502415331010863148931782735630314434197402600421378132984500025062720862966152370811720004679925366720958438934019434601379922878536543491998531414124796023315077501914152427168197308160107624227498302541040903936849802436477071924682798202861982802279089996157285244216487727033910361802788024821460601706189544179858483664627056832738726389837732674202190859108402689444076612706962720820381416116022762169418213700024669727021706845061358259613878368639743982299733369180081797731328240353839720737120201970653615020717822601101728601048939734487558538196527802518139842023071043814759715806519428267355560404920911122796624987476957650822230766691089921268691650224491169084825144292437346930886012172586688319224833418172784263984948333545794409868945139347282065275707086614822954004032015105957102425117576126907518376172055898664551655501433588671253225243412350414030099176583637066631964737260689992595376383036944708589958297663004880950957119988350942277719184270322064169094911424813092425653611435136550665667500967697671674716984212953669763175424811252109536672327109531581998374522473376903931735889885478664199087150304196012915111425691210703558760423880480646103465679444781211413898824450057935973382681927950139174588927256157400747217046031807909569699064308267442421848347133188833284565258935409610833605240127525378999339362146008092208996666263132963391845253988600358053114281246342110034949112651969391347906152220103612524119688009059304395799792480993317021065076800679678521755930430689604362846953776752616997500759513233441458334131081583461560255559954737571477539856693055013179346784055427590377202141662444814458746851421274823324323815111058248085702496063536708144384726276120425659682362971040074122949004417935652134179893673013984657303010267779223031174012214633170358382625977149224533996887053921173363439112889561688236335248673910968712270028202047745059432873782689057208185645251004757655989668928792278448662915010661745072788811180614176064220240052880303776052393548472300561809603062037112540829962886205326420519987578028184619387244196187644544972457022955218190254482766830462565366626143661380491541086204503967861497062676490690804732758574760175208532263133173207731948835475180268088541799534883053533040027317523175738826318685776219699971004924181490026738033640271179376258688696793863752939520866424604878816543470007156523649383901837027389130321290354386090333867199014264774473180439950870495777907011196641887183250346082975371139063695361535057771194151268706767171521842475909408797994384713620600394721972995828666836463643243278731043628764421470661610299842005220848932310170054275182278059652945045827738515603860988307469876914413262331466083212372573167346192469834227206511963111908012278632693920679807144458401329431390204624112193673892137642133480356539763174197498207907702147928910297738857887130537643148832211919627934812608863980012875067163910585922365576818905461796032370221264873252044386261053468476277355547852531114687102026195379068329635003112351280692988937588288818501670130340222016489504448709679228152929928062880169050970737900541060764831270151595206073512005243297468001694796661307342375911503330025789152726725845202948267533858173619218464539337681698626253424532759397794366001689485619330213636070725492165129379887484619270802172176978196624242900598227988507341568052786603907168150311362122908073085591917878274739494222637395725867383862853625884669597884677417708627916215727236468912141568186588614901430980165991615110743639757162091318023659639878143306980939350475950452716917713903555575093922350654161991787150124914676270064299901747634653910562888477912895218064489910215001090386253710498607793071315466621795537935063122113830752446025299781746124563044367802704876712341972328950355942125603639764636128028321033355006819275853333532939285015392704363773748243899355721460409420629980457791309422251259417115179968263365110180247560385874994876561910805251180591026874540648421308667833745599629408974220314764594074446083267617101891582358941102911772848300597640189368988259579731744578667117467137809431523092872940562504848264377662013240355041184461483606878896404856862358710580963061115907030720030839130798667686711981959828206466963765469679406394005016611026326377869366270309884349772076203591144808706278411229844012691876742908197796046911769836562775990737278904766983290682273941717897796225062005334608909002245932520440143350850558813086679467039422058950755209129488595394761597831059282665557309720082426867202281892398638500783354026312200167444140669877210892702548192492031072104839035234378573578085014219604655931125642165422103470314937654939237019924661823480356792954477095394115395257408230973079445837483187162287968593569389611659799470383559898574033315379711501226593961233978182496677623070711048248982311143659236807947289045802393324845967486548542064819904082173689485558259621735865541465666735736525826218604783937236475536167342091655112603467762278700333918445846491701745271663794125260849243235047082519907953595603099404790481399628224470103589029036433592225488619791100389707525627535886818543018321621937925897426322703452530867258625618575803619673819655451964450721506316824471399573076586431534418291005871435459351021202947909420819428347105474898005923788586735361305975425870086778825862298161474176240215527015796980050550733165546087703496742245152969301879389904786313308030904907493829744983213710933106525368570844259707063583177304393869524300304379083436977771742066411506971936551279667060808465236295065932967497494918675144885603942766123110135601745415157404771085109105124374989001819438695649661144212996062917589776885519856691825660796836294836219764778770854509120563277675924206008776798198690851204618709233881872386826193745622638986276567341449075328170682954397567456164459985672683399911257488905520521030179938328386877129523722607180829009934252468343356176050500325059058522474470728065051585303204625952493417964969595884146462428889869730234291496687518055670470987672548808782004206439826111847194171716617626646345479731998864989372924846273192672501479700157705041212878194435658339970923600951162603907018610603173416694557386241997007458812283789506451417270216353316395627753920570865610327102737944910376549041516841355852306200618066744766265001689243204728051843401765931843443764540953188886105306277931583196772423576639631492152370626612642963312716558735642468879191826619182165681583351106964471983592414474354093880314009689409791065681849752565552686476705486825769196125136506958752359511877740959561126704529979859163030742965042415594543443774444557509468061030702046787513332628788249188424214764180989858866749722214195435237520627763487146341404734597646207237076849626156296006285007237115446456640853218746926412214450273934279108675263842082452258583472165352459737036789196528308761367888431475753586948740575073592183092843450147353014089414083951959039900183601198823110397888297276614278768888084163909753456926328292028582410610779039413886082741707500660349188280377543531951942659212277356073623159744030964485492487809281627272862832511960125733066936581581392388170862555111096854371670315136360735798204636857957028216497211104776668675123683023005694813442615717176079536384815518286245324940964763658172548776204982760769805737871862695937150347038453788714484358467192565320465843148791151188228027892957949143692865125536263335328490318583054956702053399194990814699326679268037312723696036170029743612860766368906755124849209528167261772549212865508895763387671309702812931640131897782115079700669093328457582789643955386612351840836892346499714690586354784787256527847473019764072441845530283486162324194101855539834021538974328339052119529743627950402036455637314994609810644457014246528887849713111861482705537826621934590405800492934390489408273215353488794635931341923265787435702723564692196743076063930174837452423285901222813401360267792345033381905148761836155079548323433858939221992066309880421397212220615548318253689696857822742368479158806691153907336697649093286812958133562762577876406438896696256407131137004563154382608821646155844431674926459464472739541414855310411387167007040975953245909308949342205511748089752189143416728227414042830952317142644677933067035444531185222131022501014175443251387243288173633597386043021917252954984461769604804087275343770821343749047841744791844953294330950331619492619549382452233496869464646273326701756418662242389833751228790748373425349253546168646311967212594072227562464413846496009569796047160292736815416282146348343769541194733751737221218623510792886577535980925244907173219052047014290783373385311143809031716581682949574649400050124020863746305199030472491482989432118080736966196300643854138258838155132760621042374083439399760047402351492406603348716957804998768147225400229109879447895870608591196235572174125313479825547226122161231214301591161202638115051664181735289496313174375588643809259049026191584274659783312435727026489907189979550427249095712903779228943810268470158955162326138430142363102032801963273672254704517641714330110073318311602202975676817455705125725124547377699253987844226932416554854554958128377857720758880549427272853403415854106380797735337474361622010441466444820426897709078800750499410962078537721081127978003510545881323270066638597701053089670015707406053947882118810206987389527805185415752138382041821045409749270364873281515614347678425741344656715668432052851501431409608328785696932757106941653359362768253088222347814459981479664260262097866602856045977695951629407109924994378081602450316073822118037641869364243313707562240536397541897639606962219270300003526863634744661384426859562258893112947663974966579744604561181122542596001421831757201246594410212079223772675547443280214273385319379449812386649839824050469577844906744990010299714249414417668155439850230047297793551545979252840677835287059752077618503103850015521974375274920690929654979737854378082839013696478670261722068767377955532834366049130331844530312208113017779345653800671148741323124833397866568093273391970632451950225704798062315632573044651090971556774615231357941083300063896167634658455849547321370320109548896892670101788780566661878833840992685405398335866065763511922254059114271985201681538444514563666358797174783157476159322747929770227785283179302752506714736855683874120988218644975973257860489800862957498054661456688405621767031830263773786531974919880540122873332455521492294162715679411462211807820097210095967925026472699542728953089799785872092361644583203114476529352158448614085692460281481244950785401026520690696115660483559243205441416098911968527846181026581779739485493498579834425526169991105871902835643398969570359062551030144672176771291536584696182967020813267758132440563048742898060377178921919011697806822813142579394959032643963301998907515259267320090658827478133677484298202426484013818614610681516354475259129685422365659322152800450271052437464006180280819015094165965455149109439160549036426897331797569014960564414876020474482728993122265390581438071207109469370150112440435737449570358974099212105775218105936428727376734904314542702828822353849859563252307389809924034887861147424092071896462829156069743013263524896425669006181258857438271336868305609612177867715418979721409647177179502167582435715903962592415406421377210824970492605896796503451163416791887871286751203533308267669452936495190572348814360097358151939924406595340864869754846863117585796768079149231294785697780877260769950959411798761855112492992267620688104447722561697276980311123163174283306219849001342905093508181260163374165846282727911297070449844950142092132399328599080397002119668221697973061715297995310295067891384003694126564617278832608000008556978898904787724457874743851162964740632631064299855166873765690110985683033855985773870036140987933759808168535235056709528553660061294971439712456305119763133733168222975952024631281646960892773900057876448311160023129922454913261315428804680645189491956959728613734033744632844157919205781435633476557582697067995693207244479193156465689558472460804676724680092856077381818901960880133653877109138252276361620907900199821289976586278948271637625895687390029753142835002942931400235454580121887833949183256560139355455025333144091793349473645840250664725411138580097753103373538328279155549668126971102949195922388602504100738484892791137320939167351119158759001738237027304683765882211980562478807580757638846606425002119947983365743543464421424211601107486565201253382342111622795843451594111814904091148766923923199582557584022965989066514880880370824076220975097217598044291889290559987064219064877499136591943194840919190143209424604580329517943344740517380939277961645724329995613647620202486353937562940576679119721694618955392487054891757840145173904633541828059355497778636817169550587935534241479844842651778605512390435022150709984007172567397720484672955317719070189598605109775529973741485236469095178472883187554342087776566499350496767227082475765981524089158933802601222707955522880340199387439084197788987742132364266092229878842338676095704164246041856744066524020982294494121566214198043271385500276515702753841934707796139791185877841154965221962961004847648390911339535726589430677355915469736370022596952770598371864049330300805987643618273740246586364317408322397876821723963586276904997864538242480641567896193304591585432941310211267282489215876656478926622361096700771210250561455224425990308346087424479827118013026027493245289103179190180930387126244749303310087067321742377605652757567895949219868901987837410106305294919497815417813589091092881407971192381395040215913870915521246424441479604381865534128703364876378695894362619976742515399472366934710706001345089376280589984179294852468973203274200507125906727090533603254814248645344921627467781924265171743376434168508796354362972399295936795841959857414086349272167985727055609650850429686974123609231934190115006225741684554500465385925141446016018097816270003963089144667383886933147640255682486506656262437186177235345526446507811267243122898729712041658674584652561674979338950956119309466894638358195765955450472831100711037006554400860125100075327854878888319588804318042011656924766386787490289764695563181301172831432810335189605673016373230974300925086147191017982788866214274700213548961823886624220986185487710519437815680870391546494216586111087692030308633536346183132955308434760359922753445674906420885757158329331668230522171042674721653211757176156409165875295860399153754701746161721218214677748323513640698418322811122796897780906392827070521477044611072914926799285584149414263277107146446080557800368343911789996366704011386980673769506922988316844033565011244478899527353129814192000173328275311267957242544529139994837771194735640975834901781660514798494932563455199413448986994279960032829085287591384287829652137327740352660143283445070066478933289705944673909227677419768669794011359155512674022987555726412109356721916937206099714812209467121528445800427003523751491536883209079165279774361986354943467747389609983630551876115623934556744974158837429134905786245845237983926977368191010225919332118934959080345181460476065528009917577913554201258931564453188140623930388817330134446651379622581306833318987933669624313608341621943148049827238557890765913601863664077494734148726146879958455612517651656871880260191025140161836867012547810384873150941148305198907717098473958818204753797796101114295103883147917621699322705843743045176324669396725574209405195035751830877618164212048732654296757708312190551940641690936031600056895511189472437986861882653055237204219010313402804745535786605376726333259879011169940412470928273966183211183598303230095676072980469853414174457004317375081562879578357248914838340480442300448126049242385394232185281759075241575207647992979997134370250413902599824648093556564288048764194784263125523917362641316831767146504262250030463002024972198124704519215091443914651161400756201144416892772520811972533495795605028503152335620999573968202466085921119598871354753920992809993344045655364198036135076810036378684700042116038978295131663615875459760030167629440064998742427756027491388665138328244568111411640175921534085774239401168260984854286680765028183992779996515709227995466386387782621294380085162418073252291110048738502416249943561010656269355553195602153619709501194803906008684757626653937239369303822336046565952870713082557466264697248810496486040856605123550528651425385205891848513939391854936665931197004165491819304903762928662621877797522217010771212626684837152173928309413396483529558822267885198600308617979155759242937936919300314090878759797247274020958683409845420414967105948129500626865507963613858156168865958444137772328477284012983811367862219722420577127250602491575245614325627451164755499876201909017089413975675024955742921900149857941697409410186922593791072862778068291416975812031895175879680653621313939032752752741125930972037405474378668619690477013307620482266625134392555580882397539572072952096453710099221703990363600497510841935430074539834145434715432249295337697706011432120466153972562757314803839316445293844678938944672639332295523146109649231839008303752183541246718424009087551803544815241847393030673903259699129005270540689543432653611851223926070381285659955141549733079369998482222958033188796289210030003811426855178744289019927883196097931022950014720565538805461042321766631304764366606026387046658456649400991793516921016750278521482233173244177897754561323508661687619869657434405332606860325407915511452120160791026829894747142774283737907584118151007330012612971746227336854898721072947097478307310569836561097868965257258042502620226043916009412169276596065471625475593901253166229070039275664800084035460209797212608919462433726135013311647112502288907771270443283227893470445803436912682088452362635837361567885383640924560645900948578140443296506960956062370564927090951767186029661535100002787476251303587205972547437975904517780377824915823384586466366378836143094433534350897210303185048327493740234628194233734968778131521349657346948714950657009000097156978359093040286335446620746772365595715897288175064379368504595783220089666839339760235112065406394951159670264993742123362478964218905366049750403071343198506998483353627388647445484776535082761557951552897248116804704661848215274862627980739169915298287443582802273045833536697641059531267310240155689814211625928718175700162710321017139870691766344920684592953318588178639050694649102589940570887222030240063688718995573250665492827435562038795659064089123381162431142122524284604591322088477890582327746623569318175794199768106523525319704892971134554643798586999087707635190235635770079739412503294844613937594613462125121761051775230390913384982131589044451840593224691889407813129174907574173604006285558253866349904256489230586343459124820533091879841717934740607631100987907005339398120848160261095527556884647304496043209666058373288960970533867077878552186586968456197008783436133870788060015879608474502856419472731022285239250513060406325827412188065901078399897976561659235286124181615308588479414891733499142593425890043224076715690201317940538691411470272071003371459895237493584243036990212651565374250602169118589596308507858977568855815379454273928935355755316321813837919542312409216673113223602738586877193393780382746046262325172926092813176462060785704452232548966653550275992075707479253432814166250241680311408620068422520795367715492323614530615716257785904188299880205510576262712942123812845653864912775455029461572834889615212623480139859740074128197130782704606204327352500958623615381245916688307466641419134323053215647615604580468977516742506746178057692380157068549909505555893911212742372794957606414438519794110828484470466544144289598449147809787537211963219577268193949707094666058449979067316837547851294132941546021710230315466951673160159203336619066605790419057485069333977702585567491189872396984261665368980299880540918907682212851242636429999115097922455670317298331201000688006587461100595695933836289167206499554275181894744558193001589670295828145409917292597400903327688823860705977165839033035524798639915988033830622602774580321842562277223063366444946941996910271899032274395735513551521593462198380345296539884191537514300099675993503953749575828380598260913129410801031646846745700085167800054808785954953999762759320338464006389862770483677693550596932812041755780237309922985008617205069114411881943393944700516113174207832170411317592228584254959084017425971072658747718557781888746799538250232767078694038539288785962361254298526556458823463467404850658760157732981743636790093499144549556903008686769204954185739803164149127138111846171771728712866653754443111121412981268124432594361652902666698457594042180725205360350708063839142176471573145414892141078648300662481043591057194174465335104417109988211543606723241730751496079168284144309195410649229794446063297443553885818974441380836852656065450532022762264881301515227368559815702508912634524981535606003027563767201636525471799699330741730468867407753202089797113328288729133549838715425693869456237391765067317768974185759066140885595906284607516600476530263214988284827647447133185096875561533579657325136245297032424754750268030769552971383957316763574034713207140090315131132156789117158615049148350983486877306811519185824466504876329983601287496023450770917121715244935685381755174886371637256696977715959481632442261197986573683214925082765803419665372649835993458441592122166364983416945053020800231635684876046437463405152957080385547320818759865252378612828150113693508553075453889744502187949843956775062140176741700929036827209858160732311463062584270059305003194130041511019346471593846282039063711045827520226747375574567480262147718949083424171923959027007677099870526511671086345201041870186674770757646870024954385021156009484281060984183089775661465070094727976242716037297361708609310521383407664064394505497763350966318243763937350583163835225247849010642168456743992357029866116091310105926267273208274269427230016492695213934410347079484053388090853095105611618159489230796257265197618735121533748086207035662636307806711168266668194673496012770023244246185656693562335172982703713461842130614008238497569892356293473002118691161180164903511615405842583024173830884606929362734511179653029237644397343773495541452542499614799900614955378592751968280809481743370964829676531257045867633683303103184852903999588908616298900543982112252395196258590486762917935865471744548187936718799129522879700686887572897599773964474042859701396841030794439566950331536029426285508818033253825234118699549735606157692509029750832892488508675063928855671556180007711926590792659176406836972221659920393028522576427439042295106363867990759918870687425673965072083761922877832585113853296828728080366176249136908590902161251650077606501593028938697703157774506795514258438819028979795779475854813467034924088560235514650934943735366117248050457359936489941196694676346453148531710591176583089226187615117188913709084955346022219524237231485193211072965222216766737217900814728146106064394438999359036683886913098836132780354493487414888533024334480487046410614861307244907812240881031155538650916291858534623531117701395500043332164023107214487695523631179504315621363077524472509477574163111027069996913061860721672811765913769742353752675134696176160999662555531878972381816374875537076340855732056255960110594939156078183724122362992278957186897729164666671099316771876171477545258078041104146565488675736150381656814062291655288201782516367793641542704212285029476916603735500976393544568746132163818714635060352886215835323549861224557877009714496495842311140929919351414751483777543687350943042330343455239725899477617107827215126819148078538772551912796336878243938427928237235149522044199199893269779921984543824043594770424967489846682203696623629454863629199671941377059739773566796752151093415756331949872100897376053594697799445641450149571052493129487612205269401683750076664473803845201518774338286074231756907113453311359496470361758732033260296072768647560882793102608474980156159626893171903294051863236758800944789945789779975424206366452405948883935640956826937217071955939968966171416915682962182087364742001246176361567286854698329632733892545251167732799977271899385475223247725473121806046163937445458317697617016664745244332445029579684797427317813147810631007004389913883433713581000868294517598232184499065884036531117311394820128696038957008307578829154811447243554208322811669136330951776251910587453685220759281350424882810756949644895094396687223867421000353132189256443297328497967129556115639190622166882766720652707667034393907766551239994968188405662206618202034425324607739623055633133802884056005314798676670236265469661859862422733036100209533736435006478190637943951659967352519705122701101032264991516973237620449316723127263873731480017177825390917675542580555484840255783330885867033048151247658135791983611258610029781012356861534414375645852025514566904106066264498556642282217956140174303421913676159421623642904359592139394709620987478238366113669878698967452579331829349179332737524127995390714173199081561511501832847224188694145734632254846775226048127681016021685286233653001746773540300965043262264542169679535617720858870004217765298085610841574014902196705084952651307495289826373080283685755617369318368317971036742785543966662764352202054054539755486960489887626255730778476259453376386416439193893448405135705648496154820594049914115320849360111164466396806179460448975306563421303847655594287511441405253056481303550844246653770437117384765743044412948731885446612297359696117569602205557146008038733050831242922039520432561617168578528792488660576904406850908862410973752180646166348243001299909986534685226057462584545397040075174925931128773854081549262240904361730857494998882634960073822462244215571136194692719719222773484329368079190178906825742079712350015946785637325552332759582948167716663131472727586050615770260326764251522971356937478758258381735176759966199262100104335919616461498090529422222986538382210573520542328285714897802325933619988583340763603432353731829698998608188877055718984819134063181723897411711445910568498093944089451567298489936227345854418970876425504853860560514491124329574592652712548745201054676980797240521492331067585038850855970863491775247406466993516587382429550542630848489980399693771847585613214606285958668191494949042055952321637925688347706151419680714173119027371674208213625907603200651594606446446218494902639228246154453744399521734815687662132876044637691300895770306906889434712059607347617788393166036010609602894124369318280908822567503525811494128645424154465826062461934720686163634232321822374281495975049924088233073180461253241858556585197007619937292353726002884754730127267201588366026440878707246237745080673899913066710666272854674148302907728477888621006302314307532864319655349227526459228807414224073967277461134335991855908428025944786307511793576192985594692790247162585619728379082801868599875260856304712302908491090052539735143254882098887583004729591210972073452225494138148295232272705261041447556971046908018875318455129847023146434127138490937420046049433427750627846807285054850871974836265892731722031256035443923009558317244208956300506253896308611452968620413482623585505503400559268611583959473306774750867158875963789756096746506272684207598520172181591424259733376703272815875602288905611489712665863581003373705412263864533860054120354496461060488135297853802017649597318178059581498425134869477974325650750156976626833263896879294201933966050316153872370834463001869083110337654988663319773293497673485238995352944303001852410393773314060395101727665276719891512766859724523161279649655421196543236266820627432544188656317978832532378593814970334328372404272096106061827663246023640848751808588589765890426044476648068477788546424819625736043424034803950080283785791159311294560133781504492656414875737885943459691592325625189923575054526623208481902629813491167598774147224954320539518686304033818496761876579534888391595550784049944987830423168864594447908256903097509607903173270480454504880915558541306908003069490503257400849908211221081016016742217466553825545858607607504117400311092290364008529436786833340063958394356406151331069633697681121097992845830725371002499814656096381301680078744360199770332638899754103038971385958675972404508722215435177667402056649525131545421147691754804834872059656119493761516951982341993129854981758846777384297846081051777777417057377078593176532900481626483578023788663699681344490718684061980405896680238851793835920253840264217951496651988772622038233963578510422383140890876386038671832647663563766250465391537704536919388548912461106450830741947404389447404511997370866693239981857198330944230081920541382021131279048046188136788932844213408722363199411404113065396814904672193400808578812464404877856706396166223039742234373940975334111064428439020564976712235384672420800132399113164542667477269042070694964415441587964234734124682485852395057198251042925147520696882091000818322878614976721758736572598212209299413299587010573225114358840510238645113860538022011031553074605316666558191933573045195037578221032563489730668670601207233816543217573985864086752100855692786850453775984319518676544056930259918142037075796578017484190775701666057376868837582252356644942615054123364392712356732486092091687634833398456591231065942099948005326737714629801195377019228535287926979492244537574489792310832789149610928092146848153628960797548060070557209853320802718002159029927193494374301513665433696355734286826450056280912050406025052067431010984179350572433937852189163216446523051433254664556304092670790322191513184338982108859074921066253154756486824081812818260721092919854185067674228148904836813070929241003928998211644153690743462216148656885929548005924091728905054661094669829534406568722531933292635702613623916475068142892110001605400073394316841354719086726584352750738139015970968115994839131693315276678681175753065750758811851991240603089258252332895318210185643037044343672871675912275852686876516803120351448736983647224943439144870356712246097482444646099104012505818193910008443988041980422821006875987292339505566378811618961564904474399073961904278612261806233859114397355838148481592380652729910393679961793922738582419459892891943410198801379274472769262547129355267843833605935274933444778082554642013460888303858183467448296018894312995550066868271447942374312382442641030507157596210296022777529383421784013795408354732166238506850100001571923698215997538659605375625049016906747879817120069186550002269568161899281800273071786228026999497121555924626578745114573499537506911103346170026022022678162229841010754330147726231734368906341061953555835383313340914093762552186945284332884324912178009286904269141755773585640105716078420748463363962437897788206727383849362714398088148347348223717952759302342135036824244143758613366325207545844290071079625537214970864216499302595193748884871916694557092445523068030228312538826815578903723770248393269445205115365545127853717307067621473831589674955026888994377656501271133917257996268557079623479116871214537035440302068631727171359599809668439739869423620389900494250376083852380616570811348539380638811692346191487911617195244820808640182260377114771684672027043495323400761321374797187130594868864943852062187240063795144801317290217701317915891268618725967891781524775995993009263112779562285106139690808627344868540785213388291197974812978800492063124647588413763324833638501267821203137983671776958545235224479817261470420933931181591721408590050638634665231369736569799611592121896907473311397595269837597743760555940366277547057427278022201465270386482400266987900720255780858752992585768561964101264653754767330568924519550288615267736225271837794234579698594475659709197392188672935756551645201766527070965582082921912378696653546616948698702507847301663180022029938487141465645190342004133308295701768763286013811541845761037110240762194352059947247322307157436330471550591754092399552814287225049914908839391206599255127845270267610238482218346334588579081055659270645381624144326517846623009828697020315818194770529454088596650472167612119434307778918550053899797097077311946531544254398620069428665670244402527132399462041965572699637128787416900481375910163598463769943646790210103922946005579918133229506688195950982920241906240037092211370116392961185247092365228875893726481616848331566879908481320651244375671086884661035723123866190083632681263321203243265897160479262933702828609468781555834025335587954941544427969383628609071620512060499460213544348234665664116587604461204478175173157372296443702444356038511255044147743218052549770447034106347766095232550377019762204255153901557501198416445650954546634546819330413645337086375715743504902487795776616555992166410135401989849034429184323411125794158064888038160633823887239892766142800131451770748252833851810351731894162327240561545571805963107756700815691549021885283210555112921008583975104768070684156205741308218986877604200397028872055092852463479148832969188912705771912837593074964918877173911483961397723767974603949130397213380345120051542951190068085020731289061015623352464672125388055261704543080253150000759818815371955744444880502046101411955713449504038599115707763966738922104186359417879469776330409603389509499420602129249556731030809195938316274493956635358114174681698880414818529761847641152412726904028055745874441277326715058964458075297709345443794052481292825870594351617298480826953679408129237404196625569602434073039899802011226534046971721882864678293848296166585076416553725141850599028510413523768347004778385098349303704162447186698014971948629190749823964997179476195566849019611241154153969929186969443867595328677729508036293186578136032557920183434158160631623287747430472904710161216968159572549330825127938990013771995564119889640196735653381378651659218136594517711940630058941577273048138119822935846340345372795753595981266756932630654482019505630683992091368701283960546435925236396135109553795196034230692671003834989159128248560523297960288153063770959806029657408293338553564886448771221200538122122433608136719044867045772826580739838900578115349442172363764317901858506401441928150673540662561592629125615539959125427036374703641717930122566485369533919665685074871964138893286976442407192036016701634358671779270880312928444671274613507515588114433146730023236521614666117894479762220805726532370871007904911013690797744471493187130593268981715606291978633934131035350813330755698140741372478563001758971488317538040882452344922486904597478568479710356166265375042840230124625726630292241364299705695415015755342268999637442540162229775791588922949582347426174521177575189343369249523975914177765457948085353355150271562075545387606757039015807409649534562220647467205297196860020485092225976337591157085348145289324244101731653671492667603170721745133860523754975328621157115851841143983322752713630008608525485326724854930011563980698670892771663732145723736475304850003346971370460847610755052727508512135400180741404859554383110608409852793842524418026843953821569978422998717279603801581905662495178264772839722090930965746403860953867467255792757153033667083946231799966543800507368067204909128884814701804175442686781399393178843250193936586105106167240823182088589090167209586336433636476903773739248444620569305597410123262408672811382668828320865189664954812969057821235288540022142084337280153333367366691642402274077136741433005020636127052795188618363019114417721506800769257939577639165103804968988938285415737626664772205765430951256408672467430483887541849254505301448664872452123716107026616957129227345308301670231984017169872873785083696765000444210050471509052314014265658017684617690569131527343237359074355942802467424861154191163130142312267782669138821387324231847992420434635781992939740619522171727050272819423061503639135771224016398572098795180701740359776153158723752551955983408112844582252029765249706784857350320821072311662404451252462922982961676914977010083284862724725463245990052170939138872568705737492529193705780358937111568253572891055978914557770496599887032757598451908229758806648925284850484958810795967151712900832206959209477146077832580803820802777525463948873660753115467395158784023585048727453370248159157263602210287739230253495464104253888285769932495523972294336878126918749055498799939775286283622252869217524403241274692734163166032788434463318727782586623006161461130570250843499623308676486500882641478423029943889202838774176852037030803782741767213169251260947741353759226588217587942936663516247473620696320669466844579485719566258221582176071520776565187828890711982174740121543639818149735025519716024317298706075280480358276914072196620608877571253156683757584134262031356808568508491561629857230303103052082167292015421334484775251354798365836752666731400736599988783009519502746868554923673671245995604095685214468830450821257390110085651175676583863182665865984526814048501109620431172956728527601967172707177281206266588986322251073971297985232078385453263408657487372605793520292248415526490329838958659325052853972651394153187620674551483535173642307323293366564973726924092944086432332823932343146618792412209475925893875189076906511889417396776777506481025848048960484939514118336528170577679194142346651735254954754497775858748097791013542831882200820406003807414537986525876158038392730595556622208024644357279822477885638141233780845566601277652385131029555961049256554877647363165979047859608645147647736345608907881805517430028080844760111795773995017380008303008217483746332717127453282949407677762464222764744574702197398812796301601614323514431976274902473792959798259066981410029531383627825923895104628566682868689294944811038423435772260649912924408130542043079337378151954449316277899111785327090599990712917408391607339039367198411563595571688531964897940918952562324898997240146567337536666957435954353263086984700245552477826336502964254609083939020420669152165778625894217973479261310987632120084762655620900353228522711312726745255428979422929789347448075398716217789906292932291732155903680452493351041734670548356510549843533347011076722966641113130569448730037357859875926092959678328737155110601452713926064962729099150681967819271416929189985906678688970674797214851592386639527871261886235407987938643634307469018353986256107513045192882252913057374408805911203481864603152069325596796667677333294495327850207290473794078019315829348684214803042246033267279355867193861558544608834159917042798702892500396076398292025164055365458458359676257589146833732816466322790813749027536438825140657091926776087229464044320001667734613617952975470052133375482439705804708409726641235128618614387784999374500455173675463202186022261068592841693956734308459164158364878160073431243551573953127446898637809919651738436374790269913045518120745122310277723139384656468981790454459819497517477221005428780544738979802333116654775057258262615977157776635855449443877872509010533121809055822837057355736161448873639753426049348399733480237403839157908268346534928021139956866698844684880978370552569447998986588334682141791604355891275066182980169473530118621837225291479789735432901770161593597208617741754948479181540550091934537098164134731389329615180593234944746303007906612064541891693436700656874570157845372622009408919179349089923215287523965391296769497511150556368755697171274873937301319043154867266762876261116982306749495766503501134020173228525149661553369514226978271631323060661305443249864134397376051492909105606726591535712932573210974955688358908364002584641001631652752089104960631563904709418336052555430470624617834520267823320368466476728040475409678963380794056462886810838850363104431575088273251730055135287485985489731885450675984879775665683173878779949115949289116777857384511731183577294705522864784200337412393646106899090145198488438222959356126134553219593901968028206788721967082336596542071661067043697984646832104339039725313970707046508951989444528179814285472642155281066741425459932958848940441026477638461007325721678215665948255551291163793489226304254806883556082400934719375354812765978811634487353677957423746221938923244688340101096835110190943281407594391667229464728346066079564893440867370275862719321386934240831786961815179222947696074098871536941553256778107960784323784862284419731194076825179409386932173441582947429810319781351633450999585606022279041996351131517385084672154062417328444298670396684951141622195062997358862299097346930569971709518859332813346888689608163144927195673711644520544139322605811393377385738771988255926461826226453115520628720332519819490928891319457548144603871572094694047372476050638386689011044173951670008654354508331675387825578305787886409132178960939561881959802502437046130463732148057382890274470289478446037826031519667758199603687461529836656337641491427710830809638221870650934571440006934789880330992231901445267283765583028722393108521197611566952077143050323658877048299493830850714741986127648784713776155546101911129155836039316624512503236524425026536963880319181804245779609414460070022407768139655207492353261238652095177712878804150396814747517264590638721702861865442193210709156077751634341321978852300126881657820724222246266330872621005581312397011729418383513359754527869050188964376741880908192258139901226455748937072569107009219526422061527536316126968311633122120047698364304456820496817858811020649224661681197358294195755885615814422900687134591635494917665897244206423295216338251616434463498180233745563152137324390772364945375472057834119684652474684392057635461756949437006103829848339515387519066479463200906104375417055475538434735345090165659768118229751074675871942676256655711827449039838489364776873389547249696031217688366006787960274412268787409751959041593244816406940817727607694989734745075101717283459872591562097717003352516637000451895869609825455540444184894418498675716574431166172778555201451275579619858517776885237236197061487556323209754386059149198190003199403792939523438940668995792825778932633365326765555484486164942441294961153677427749541783543193698279093681453303404044878509100417569193656565402307345231762851768617630242601357617751530447410291121453010689056655738027508013116521691559935681210093081171026998502376128518476329702568624455095147807289705290394865836815870520225071692690176643274969175466221062013664416602175381299911242210050740965341673693629728541114942166679845342416937563160430461120947383067525411258127231760859907653496067846609180392737089688737130859391528245161313554729153690681342014155502886009748663620580097154657161521158985803778732029545513944169714359022470830302072466524345412833115834095013628818580684542970969646418801567313653595875775640208257434150157615468173210371015406161171701643378071724902091947935435168395212040601728851142038920496891613001998663016497886923201014676012516644211823809988047900704530385446033028343456633860533631879606862818064011765375542062492740802170196063319725655468688310534669263937288046153230711253163495083992503747557334803651413481596487056520176730961846114592128764626721468087773680848762725425526347102301499772267335778398273494609906573429947533845938587138015281588773891779306447067207477222168728088603364778838310259267379225816341965864688563668904165895372451628828557465284654125632525084832412429317307119808491928395239559863085414594806590631789413240583590857124956774661003066141163286221266599127782118668773593133735249477812533657178839896547414401380602031535273792475568896683530382052537789866067753853684512472988780069875123841517214319688784032773768920406964891882975051172581397280882477731492581090987096889316539945479282752969830051653945673736428924143819868527402668171655468973508278587496359311390273640997598890723316266413176226480090381692392033582138557504554616935791765651574769223108293337105898967965534640837103678879274620345296758785628946807521322511766700248190664137947448428904699389785363822964222904804716194011028903365025454614568434408386313510489456012308646190336527909442054617760458448525119408593773441649552139975457037195507948371570515593361989275066916038836252318527625184999260876666179661683044407301733977273632296809437004105162115120933808258918057906754985134079917298370151640726325565325264664860696416451967842213117586362331561870892070597606018761738192026419720220827892190146543632791997475031674045097648574510608045620840897310336252050941361588315173566456382778221076662586407166085423296714429826964838479198046239986878590355356938572392773998044709872869608551789148984565387099338385544347034287493691503973708825723018011473566426998939891679534446098615954195460577283095761076303080303247805058766608251602836676489508220396716439479826866151744387616784424837955030216449905124160900658103855527280490275416706679579643990473987630820246402996232029281645058708727042771843132183327524719547579185520853038976371037951988966518234339247542872523040736903068828991488378570982621086474151015606440798291196863531290339493245069295758315742510861016669924676394127500331914553139552140891442190105551665560837292698285771662802163536719910361725049330488166000997066687213693446408075449729447272530934578441708328077504258560692845505269467785209141994735346834686735313947972032458147496812740437540540894346188474255643911848214649519365932188370500264028024163773004166068021526406827847455473696821997772755918522401305116365572854081072070895825775556321410747736793891055960254389545093442913418502658025979984081872112048235079076589045201416681940666155447239110580181920302263819825407497896177023371750489127341061017226271108484090685383169818654317787203363300420331256544822949198886283574645419658110491660030757574050122241593644856969373995557882527902568001880447782169838814816670915328603652332575183601620894595740868819083528544058065066418297148417176771895096205331329567790761927191331490003005085818655158688689138624981362027805289526410520384950658110527040620949344998523838139476861947316550217249480177691122954673447721588259983551264123288485011142773339260394796036828480592251250641662326325918873382368314651940372559846307469978309777809394366841027649704232623276325118352431815488013999090676903308319613173518868398712909847146089397330822910913515697692058939009394155424848573183131360430691149911383748364718873712799259256020535457024174424861443284850275222482792880976231864603540230991651589301778615892169690160594807823345767990636996194035306566385660055990704382968705636917704850298717147324060689118600129286008646415205293405805570090593975444464847042326804857333078610477441954222023891926985101194966063375395030676772695937903406815738284055156026327122990200255861586633535096001563841591850231003534023427479174885086731094442658698931575569564076578297846870851685598805930767869700828786507174637420117382070384829170055916298414753181429264290905560891482190371572672858757670216549429239465909175562350268546963358071945695310493750730205353511407318037360848056122448912381834438504498486011103846194046857815371195757828463202144324236833711870388097583583160963997857008346757665662109628684595436003617664773299298285648172176552069900511217605019294543136141342914528034882014378148771316459242623370473983387518837392054426208107510011863832655050612335627297959380542535058076354742176169894435510100894954838720398209849179402510432519320223444172759734550425385942290282460767030084801018081844729022783615121925967007323342937112900800930337895873523096832434196716198703489398319112578741134616834636515340037691803985435844841468097281125768524175084298160519339182576664131548758051036196963256579210778322224616713524315927610551408381713405630870979016980533358297982911180092254200246036391997265687460139468141906853240679535396420450695516651110469011578986555762021594678501448311432230480539435474879625581302298162536458621135308275324757817712867604105416020150859102550925758411636498349301922924310165326692790922563669526549301106143216380292261105914147250514925545941069524197442625262800311133187185769504059808293683165439174070511763247283715676227388632896954186420919320020253628041594757475945232522582980331559516858300202603058679510521087616084076283170075418355221597103824793664733285815633581220180488826326715665757028467170076644101148654194511393348522352710181674129379712593275195756446432308392617404341593341970186946876064213047872307224340473401547699837999544813605305035908389977183280144478642539795415370059271289015943792867431502036808236839503518202486654685296008462921899944539876123545856964028811604165149730358463621816305979206567808056850502171152367347621339623548117657145744373031271916794469538266982032531929491660628143707651975671782349739995282283815810443482907454323229970943319403893969950695413019120133819565469987768777018942156109593780048266107510610419148098334775632680099442471400545066544777725918961647018547648565083619802255658902280984434079878707415922891802121928810400754458556333542026835427737992493378280428662866049545750678339594212280416273643697580754468305677307206236765373190418132855926013138785695887394342034938057596808656949501106788951980252176485678865008814798406312534734696068019676216486467654000622574277173003100148197033909549583218867547807374024692490453277272485068313165714261942266326696190391391452709857237795954127785582825177097437230494995149844189318672640459964044334069021350414869272687073494707554856048916959450894377189249023037804988951452391907297537419464238981546793616714858971146547368048695930360373748752831040922520262043942077270645731594956856385486230104636434541692123582287026216564529988124639603107095595236467290379024428847566358347937294056503299668925136876633148403412908864832807669139781720832839775127982622417943565764184656448466332427258195395335866909458545065543019712518137244103219949826214168612110180893805992268213760533331252204019243457976572361663417898852984326218591677487325216228429077356915668734492081498774710630183439990452016010634945174707186132497684163892976868388579557048149886809596967165250026764113042684821019571705031093983055283086707475660211618333594438818936641125762736785329535122515511891295081111365350478440512155587696435710959603298616133668704195788195041947958807738349964209734843874625928016136835203605259737218413207174769462266129733095114931728059775270003559214359714859268870221903481090144114433522995481801574250678880793193436457544628496510718038904880405114383019681350859280280900945107952803023516847137746797753545947830993414799226189749558703794576515329823028038121468850166734447029272531654077545210847370653533796250602333492844349807951792651982522473803264408884990814410777898055064889770683987042357449838098303095715821634591771985164707640437862655328209860362927890090892634201036502087513970106333495298853049835045352776789812076885245595862446108986398521135543820121166600810544967277992097188170486822197820543545990552531057826083549602021129525999569279125819491608138484826276318008835728922002953943638061787236044963664166058059619176924883221511925302240920685678385692382409472972870519233668410489277504569872889491569424917592894999595636402376482025571248519187265497596652422686124360008420143481825252819313732923570089569128985353901265333685599907628328720387770159236187193849109507180123524222212223166332999706324039170744140080582057079138968144542167721970197629398033674420010799921161123851132689033120350043124922492381730374006594365583070470040158744678458527558637807912800892601230479360503880633174515012583902705021804660066344339117743839943729655753127239189219762187269988000833400104199109586029656200139017988943806955671518664594686947178124522630052225056160937279178340405144377565705248756362477415490386585084358623597840077347727462109160818180212312200833953913594632002112703313500000443841032712706564636201434042169845123519709523720977936287908509199984515649343115367904472175513583716192905080597972089506023527280381820177051513808224068626735864764317839102468101310956286188486263738073694788319255318439892622401187583118614649562493400711065785724811417394381578217002602730251946343294562817425564153613411203234153533831711623115408498239710558166099649583002745577812880156341926977904394300421356404799617506483352094355667556535945730721786177747675026571512777575293202500921000515787883002125217182830425365720240227554148282212074094660335519114055989788020790137226748466667657895942785609391414982428701481838180974679844153524017347652767975666049093800523183351091447531254381117629394815108571405742118002467021185768742492621896072147005624986534672981221684535706585852697492517854186501474441147260324355925179661220677561745807908275482914271808386729469250357994061939005448149803546826400963135447965778527486289575813900638559832074822868424827930808052912512330602567418247350781944499938751978972797355247744870531079758348200999399203834173725898566867518660947567707096458867677037385000882941786624629990771673033137593866421548987438549214459478542188451608495795667228440428401753862468551277624122928754686412027431150169912622778834698291532245309374092021587816044784729309524200831857565625879211549674488936023338086882245815536404553711851375326182836902783333165194160956341378371686151671328348259750525271020484517544618263998139624873949657681527020907773088165824624165086844800572284948240614230203831866615984915155075629755704186339891460449270245101144715737242090841183095334485273676592387412368792815070749543818005521681262382105234236178885834483782875863325173553519312521567134079346916083735008145955361158398474712275900945641064249293419231899969661290059723172292550323404757549144949709001840782538721022732414111233712273065120329899609933175795518731346138685408987728382427697786471216193839736789458585027742972517099284214652449570772557299426947500766157695652317021441915386519188013853147577719183237168584906867258248949189824292399093786856426067704120782884988955592850899773038989736369095165216960194610358972094747566982058915618750583570147271046955543554582499238133260271188377911282550821092805018237405922118045468057739430155709907872156804530742168263349911925975706707000145151255454445275490967577182688324214207201241024547610804470663977740808475673357585718267135636558406130896169717948756825105932615424677907172023859269507306048015972248873215198783346448321661605625414971252990288272699395138447323718907872023655558459956367622850167288172387666119142913297208901673471214173463362832252847359009903013659631751798608945297872593614782553686455130125478905648654050998841001450651418497292161979913384080166685715427978833079434762938335305894801992234813853158939297982464721579196307758337391944719728695093666781196700185192128063001072381358581489059501838681073018911115069016876350260904971699058873326497766762982845649849216195435864577537325660788944688644585324725810436184846100398485660816963295807554732502213151313689613535533900929621623010247846942760319130272901398315903787139238399992058022628361809752545068155808375185689314573307662111002212524230027860576074895031507496802421789129984074178243292606819481372387733291217247358694094460702747823055232325634784799040000110564849059124424884269823952632446326349763964515009999957947891913455337993982573757407410966415031485351050188046023141868806511511233554761323584393292062479090461253050343203770539414590167118107352316730531004587665119697607297926383020131071117363322153574891247241227297890090291694619550830154618401873202737911869544414225368512721971963532175953752459796139665646392663974131522167424397655256502745618956539092266019811531290985282221123161730510240479791513066440889557870201910520584689883602266488989221739818438857476344365605743987281024208738448296362626231536021332824973976121291759474837720454198619645238737080066180096413899230466592332651175000922682982390087565617591558095659537681815913842824557818596387247588555653808787149229827716256176475600477454410617457973585885348092909393338250824742181658676078681348840992942057929067076747879942523979637200287595142026086145868841271680889539478786849489932002998205052516737523233407570129934696841393693433518358494570925434301762253962331853753908856952967156259306075711840930123830397504945409406605956764971835889617308390020129042758783810165439489232806718334870180150738120175996154052218252854392642276795783781818926504648870562482394047202098267978674714629610766875775766893486898208387342237926730024870148215292431314931929999984095021962362314623107174130823520411895296980564321274213846873903937410203267822419294865980033356832066495474361709762886943967292308497719169882851214548332388425087662552869522740902828561033050600257497066911374527267919004246841813225256686421803345168705482729935763218770017357029023146504218872785080757532325626942121213724092433158242512809100256662124743909728154571645275988968481567750500702609111785679308783857683968534010370743895356057533582974050164015782998457035484074851509750122896961374617004794551453809686861543689793177286097616926903607634478531332796777893916361266616378714155493608450572043805483625854227656012254601244739638467409238606134357065305811479120683054327899278390635913740293762931226830330345021195197817028055470064659854724059569161707269165923681663954586357708646119955691402600659262988442684785003128534975444664011791154543727873595390611846151809219223976650296930058311833313995403457055623419493707482944041104720015576055455303811546205845548223898680385468737775486254119755201785398864514547372553881516234655801782652205029404112815796314530835989950545657555602493896896413247588575749361963054822910428876646751876326654999682546428318881128926292394439032960105062914751403419564653498146579351190964416466929976564071858398841410945288919232376950041083221919916679094485277982382751354340516018737442461589674658831551371675433548524291190346411922441646772193843186553310711701243656937353507769318763768678753583724547030076003018717312874090956845959944488696113780381377370953272097942093612207332100136950548344565926042910003397453741117487960780363328637512971534150156998319544559352008099034289110802527638486022200997654817070896676937950414913177956585963848060522326472492396866414329595652937349605378423784472292006287461707303453025524573284655075299967005094423391122230501777831224479358608202000016402067587501424630282733706391239726638416501556385765947384821542650565454085857451754704039620443648104118896338043965019542603434098881386095219077657891578355440763896168338231481187615269971077000579194849688538110304257029716689116390638791421666441144149496272067184710807580045726385102655054955810494074443253195527872461687052396993324197149427676042905478643436513394430354580310088102329254549513779471082823326362980997737786222914137952308847402555723973749054923767910683749656665013649078385284459540515851142408475684180924102990341233238827269729280909321691638879746713289033375923359987115951850548229973317069103056665478758090274389499507564892503566046958377520455830220107111210985435560586432384059907973438594468883724103354006616582007263725418490412911108823400055347840542477630887385248278396421365613472676862441292187728919461549132302349564634961399569396575473068398893585046112096186073413385601478907452016113877296996250175739565281808683985062425747152145113209904060964537371789300203144983696159081622792387618175247689929816913240774133579976012120922848449945834498090239457789635523767147581933747398654455963688864575824891606515696602276179845634438253922211076948223839767486127645064808391876887370297686111706501787310576149956884011359506070215687966167640646008730265518962833770990149123161204770682085929864807800784936860191174724308106239553951007225404402491696236962987962458730749163400695237708367083479040682744468950890734276079207639678014185363138959818764822571451131180693225993213458748442647022025359491908546699743048053216038639331583096670744249165580831850456536106548687105973106663691448852052886369472488728968197479146881765949586081632392306492515071823969294642237143809344172813221597280814292142689642311260242742134761679548868644803309226241742162848275695928927947994153717510583237045858700075567424932547518848884874469436741930159315357777662909369746345553782968202805139337651267903826339099520147519259609916939675616386636080729179042986805736266585575548364106661352132118537039166434201769454154073094581668991305936964061026028376090273766733956124573684621800311475942541826420495736072683399174432256229577402837622972798284940384546022921348915154983294680342098470398716059349088177840344107520194314306784617207950803097528406013192414688780210354737644368472140833195202439050388115857531524520105144481023019207330968629648159256155367054203241988486291475973779265597953062594085386280799715910528044559155579618169928065548320526894599320725715235571193039831084342469480293403286470412569443399433085815169857331622811549407016474027449999456567240676124218409140288511794781311096954860113490073818930857274709724176152634023319020163797454889516146776012589066794215880020050959548344507015320756726353190069241476110323669583707049615791256640903710519366298202488175970501810868973194477694519071972625089908302972339323922664254113151007127375625624975842161305938344183593257280830889961303430830947007870292478856276222565952839771354563334516638782688400387496140667555418813240114629844849673583464132832016658252764081155880806978860342138640485806857139432759197389425244319691827358842821321016255484780067689630918374884591257075116563418724473647455513555690354792049738329632286035768862930774595502332847767532989032605821898768616147740046435612554348946943424395447847819124722881166538114774847555336474807038046068796949408672838774898058195206363858967344565351988369889173815249815587008925982563027139679468850883152824994544324049718764581003870404049863873575584417345199736399696674305492843903519108281792150236641090831236243830642760064095810767906889330105264341105554695044535369666283897221673421506886693558016572314867701160573753337402815350521750831044563500720124204401506886108380156822862921300576748127682495452898902375638901180683520891872679765052840522569079266419578965556439777065758587180142314691982185961108884676796836805893655490875422067141795196680123871648165024521168280245401519213077165374879561772580776274161766819842949762720328156178401857553330146169489286169086780560588751353161002178292969487013328560005954082171130010657205940332031349640667366737600262597147504528980947234644109642499624295826701491055514029026653967985135243722158146642934384726718237940725343763917391107354310338090443665545420194008136022584119872458548013897380304693968488611539140442229611462886977188083240921207867544809806100599016421497771730622435938411423354471682040419250783299122278004444963568175853929504078525645200025924258105077610709536428745603330329600763240871785162880433574906493114480689746817000450376364596418114327349947633602362361075253051572879544586980988798413550250556704340784417901489448832219337361436213494430519630241657060414722449387855883563529194275103182231004530046947946004563053232303922109857370399970060854700519340487388755717390606711629243983881493328548612523794361222927942592853933791043180085979825971883755604843437324454462959552154202058978244535463606055765968499564278669648021492833176447626039805093266408623681996253053514092108847766143632677433749962742038586488746338852431968949578187510304415376152854461213200070192981793208548528661859871062796321226099510517745177048444456255180131593165734490896387027661336209100258920237865020618454068107311659363455943075076349856873826818376547262517799154782098776574493726478242804976883541185519861156345538756381592402935968118219192033511396985250175572019341296744190411490763702753859065566477991432668328936846288048524448170030839053850871406068210528377297296095575329741103973265205319776544484537065077064981996623329583757538166887760993632759213689658641460567416788688628099371066382826454369561030191337872339718899027235659639803744786803151746878498789024840641714476793392613602818783333468179964279960924682895298833076723734457932600766331806858160715502948182451793989993081687302640818876267623547899744872206641520171139586884132331809403959664884289534843498346275038325578599775701711336577671383241175465598103713252322104952947610190937354069460203015281121849526235818068852525735477596390917571034468491819726385492068531656850567120899898782012461475480597312292249607418426219869410321816825376349593885849560882688239138615051715435779452511038860819741843877820601387479995259189921892661637296239273747693489345745766844471805928949534797497402279317941008728364003923679671448433270031577229423142251039693466524312838346261297594742587280762611217798355870589409108714776892462497659853355883030076370450955496156750662020058504638963754715860614538091485631808512595682416225259321208208852444064133757720546766819395823685352488237924066945049566659615286036335897795268526639785735206829464705913807711369834743657702815356688322611238075543707908513327875221141853580977692999066762307425109083113510719578385215547036037615234413264448328559787221848852534468317289556683434266904489247855120176009073203466636523503177351557686685418344398066890301109008592692871147615249054956624395806765539526776908101283211263221989633042208368336792645182407513179957136690074006229520248186340485518512549713912506356056019275019928208556421501965349744761411807524040149129993447908323480147303550331286449417083077994857556390767508699408190406758514507167432977502077635461578357506885585422375781249723761411639675124665460599976911410293916901258240005301783513444076188030759929719922584322126197944852456673250863689093268686563283318144220476261541450947307584569388977366150806103781745176660307416585312922268646355213140135763818610178084739102578020069294608774710218505937040738904096439823933940331115808884408344568644118355336999076414122170095584465281275896385288992457138776008604658043954311505531118918208256580111283224662496590911995257461411147440649806545997207972180225788334346684379622281952537812821042872705712958867104101483739189079833715865676618805608187177699826219598888335362395587327321104807206638392091567871999019593238349741457752683440818654001603605141300053848385663972867459858163664004762021918874218079633734336339502886810142718419035258791257409141442629150396077839261865472795667422440327393817991682938495528648436905661262112159992182059785404170963373254927397695685316114069883676350278358754326551628473503536561099598859663661698203418218460642359052635439799624887861535059388669330995172287716281498426732722411004732240541465216981042108457149325346148309236606467838119387141677557347956817328909035371991174704737704778049116447560505216691533934860810946787840882355532127107504779382958745624371580096619990385578029938052766644862958321269244395600605191320111180416024004420346033389732743608206745663351977514711138627259753705090751607924947323329321462222153949875988899022369565573862045746919931647355373526725674097380927489373324480913152472487946004716703777686226499329815639115725921994170043516562947960154941360459842793734162522438030289948684038895202761940135368969274343743460518315481541578794527690317027067951259444575076080958632114186555294438005960811902442963259106493571608015821668957160859624732579353190388887473306893041732982770712240995351201996744417009919767077302439196076478663108680999613041556724652739541252601001630216482137998179875001613242990812069632859213221991516235208216585160156522788504696531476763218500608301943751470689077745104310880511076063114863420146863779525443602461053864881990093654848104604860354756752419762032299155951388723670500260565870944992816372655194648245950569449269588968168370305863210233512706305132918046806321804064450760964139891237913481674538415407155682057327447302429929219988010750559582739413926068935367703206107003902503820580504752114730691001853915258316487623581488260292432582437032921000784622878862585909497842341225294689856820055368866785328733219321278648172924481762694709287639119787262898066059934464722473636982108367036666730686595985579750837771440770235110222233548148482292918766087817335217271229952622833624635016109196679690909299363402046464486812350930326473922381050298788893722715659320220443397207851386672810573470104185296406851692841942988253617557319747389279510889573799106650775644004627253573391620237216236363359496114852221085447106681131525403588466826616668685701266723355999990218026852784293107573580487458883912495030846346253417817871394272221546259195527781453430305429016809156732039113894179922950370061004296717823145616553376792779282404560526745345276795197544529761180494785887661963421536007429120522687047851014705220104523992503321807287290344127807919404944618189051443615898621965592276644240492093144001449010083264900421709353476694716344525598930845211364100170856644528446426140343738640174800561019054342301080123038953453155274016323350264914732581209405554058363873149078195055725139458193925889549965580643328675045727898097960339143175404844229082515663641658987407788369080070593984585009320070774782475614847002430778631100387669938521279245241827522043965575217878118826313687411923142542904208268788972537364027972064552741722436147789095979825881187132697856799961718735884438944428285505993593258914549120696915762231154986220374106892013967749265913766838836654073944749650973313635875509319429204921431769545521106340961619118508157365662663842981418552516202974428054414945647799107314129534059050432495306324241697812455532135978356856685687853788235958627647630366618406245210146828310994190503812187231360092909099588818441952054348656266149422998722567631607006467013138033243534765495716570976904495041406697470203483842604242859228460090629510228208836364816747384071055014922100839403752780357116435761491321873137879714704919189901015357856078250813272754593587013226069693449552342787696129008058673974003704313733783569269909976919619834479883787375134687834405852434228605204261027162304350239076309724078759537489646573597407779297527484817334726683160416568835385234952100848851926943635805240884181596295910993871369202083335136905296897568033422650291784180672388777701031273934095247696031657408997980285120604756649972836969983563217047761826509076509449360074494766535049809675235113530720424058058998725750820106924088310766340130913630293792498123349655125168754650383728227895538756084954923556723189776112242675040240810977997372808989497431881549691449931237288212763100899687132302808432958477031141320357851637149993435227216431924161635057629256317277205530700284741742181436784375367037015091197071130302060044972208221085153205898754142500829863400780212847173824910820916455098502033095559772397497409572394405373034366591069068376588584671456285567016441800459378502947430141671806965985925207229725794130537883764033745313353790918463576574750322632505004712151622824675034124627450510706682229947021836987316553994058126896341171511866928071615988563914355431483577379589597196082143490909568701934153691832317733863880750991740769412170705551438868485190569154973029531610798365917748262343545671097250360383881601385099838344712446817320267076815806316880173542855226366769211430295085868311678924338038406234392370261376519268248296904080191280962398599044557874905869117526733299517066571085841009799853624473421369301616436108753970120922800899450651225687502218313649599746917366123014933583946110112700680615873314587484436408286593461764128711437146681634566462149087151100300309034527362352402993781477255393083232624065182326089888621393846469599502318739174926973762625976557390396465032560079051376413813731365865657235625013522773106191731443143992336821496888591263411328769965027134953373123662973334847537884968567596326596910188692776381507255812483760984034295979202265767031962410091977244458555101922742177109990183195925200824218183816253822889645782202449582000980337775431016202789918912550537823113125813425289355028981990426217308712483464763688986459689433502601607288835204388440116970019768089355814207937665012718145051954877731310620518803661125485659167855771121412925316742539994863780317016701450738070077617843887822210884907123428588032776844289947687981730111501477598166003098602758507269983357496322552389236512611069599921417599079298603065865830700552721322681140021848053990768687757351137730898421575895360168073284737396954895684219131006808992203673196136473202106880590258703246068202251382513940412085983493804558265763432825264360605453592338418808960762900367039775401669065390440965835407232250407930704580364099076289645435149882998432565924582308262787783811998800837770745110950955605294465963680963918876602819071859430932803059551960022203709427261442946127443505304727063123536790695466026115023486411853117689026883296055585105981015659256382671306105864001928436112763386823160574428821718077940136438392910082220190439090991306055333210332371908730061950714146358000931716277787050041963451778513779259533915923139371916370367347188361195198038110461812281118156741124326324884842519123264421607497065940815688016990376537199269478540593128458481378424446616307630005070127570499883595872142980408631561117230813910922961712013934852041950031059381518849733522610160795187191526546645906170006289292798257645033123034241928957301474210560243227226400099424998349613803022728546819533315704348054337705897795261162629021977024904059043787538195113962826061360708935850155314216847473608969546912616345043545587017536839208939628053142704661020769453654263409477107606171707304356207743874019327109147737768634447156533294321911021589357058876171916727079632173958088477275537146943978760897276054408629097116819896368085980099156621595981587921158851943662119165849647426932939106058437074716220023121685281242627857968347853840829488331601521767278031127751376904625963470068871378740665254583255959941781207396021818989688793843253022756736144619568707665981343421668588411233141058015600848799399380602046260509918185956422561067455755027960947838602526968443672440789955359533851424092578677344274163920007208800961974687515623186423875357062918373784645759714578405732411975322989464896992661752177570444523775112144839188738707490000092848506053265146628557583695758894101063577231914504749157815262647336236342841032828895937038788372696540042071865516767318933120459066799785918907409212823088790364498098087926728761948335901853086377961356872889800156666664322676831410658445374846496188515547451895220148675252062642510410944808628237180663544486333416163899163536946552912877186817183831573956941954562421358092558564016513493697633980494324687030549073847470753971831167513740522728147447465758807214413077771382207495109328822041659646319600082870601741303734358902789902805362303378482210130266389389068195286651143971643807509286810641931881110320269129096843571690673646278047633675937845785802664650183745150915119839534170904318026971514052565892168359245074290104216899913230593161123702986487224931350691924553753390261005617652989267723287938703435622110085812835206096671989885681780839841982011755153894919157045315907757505063876383171562466685455381410901268848319567674210900430328944804322646698555433788664163579061424328417457259538948845838693607228716760120663160140956728399060605732157724320846118526079652188570449112494373405122548864919127298745012261409585208448809122775500082655758973550007906825397728508111295422839832697741385752181060911130112926433002065708388034539114674783636185297090481592186378912705986413688893794188446407287088854182243238169984668505904112856492571717796048963940765186344755017831154126574773121719683657732196433257473736606618108962586766832415534403342102275856186928899045617074895185985303682534907126855550965230961716106469233558126005383330247255217471982716991898026701292764685892450047568880233425969822727643640118386559240695495529052860486424094917362874312620266353671206953865995890056464157141319445750087307867360265892701969266790229833099224225837759555873437988209686105178414184806517762732756537006835414545710831769494771928636588056519633089185998740148093763260202848859278207651016397173985965947736056708022708219043659234639371180813490641343716677806854245423878148081661611629858482973686513792691400320373804407944577818957945275269589645563600712003403643132037850922731958506281141133345992464512301590564611125735555765119405945373460249026836486444250846268113029013983632783939791309444129777807566408354759762258431257094309244474980094291659040843233364327968884570520972544788093487552323749815163539450161651005292453737150390869892369525035598283247155776851499149990735743149001428792148582290853908107071334607508768290460822243619471496153590251966922120466704503927525973019256999433025961891968088597839967622949839899529400786800800229712816956075315629337159358439544778794955805886435017291499877717097857342744882283640463805138310191800072768733486444598126163830692085975985652820683282340372097054847749828416906985327841305497702849427515724509102823414869219525862170334031632650258013803016944137119564861562485405036725903264645514210003305583951158064737976828488927855821255866226462960149754706984283405921423076575859782983773254988046672125929441799886175440784498756654010769978762870285580596474196572161227885011788386297365870652255356549075623521763590517328692241289293130914047075175552026105444862356483448118759997080049002746508825285296545699297050543603647222034048734658682678914705972015077190200599946375365865904070405271400953737490076987051122783141845375822409483014273605713942529736526405102614923205332936875240799664405903470068064231429683879140544160372667747814328483823790685366602457248386304555946773868887460511279886979328027928511052622501613322577701821924689960774631510098697625034342240123872360565923488632175891917434186324715290505734466316392144137713717701045759645481876817100977787141738448857912006264377804469081746887153872769167986025452998949738177583956208264111570978786749158336364133271616572677394053717331938545897382735851008913343010990039739366282897209499352942953540186516455200823750442947273816988645411041734706941593352349376756114998162122670501053902403352884317881495013181062474026919513269840133748056486537555029821396200865330110771952588588041628047691451221357371516529488137852355146246388362499402228794163191497267452312513503247040080643345791199377956765944757739530033523601809117672407102452067331953854831664912506801441079126087612488728301027944840414809076596330384854607728264937664466724911877586581064075209478918950775931173996609453183739207733494060611571078457657365292742356249863412783586861842306056365952571076250133524401001395013909220546499564967509389183037712318756631198487798384048041094803033156585961788824200933823054094253026781529467834058157786292911423568755079498665473338554268645000290402781368564902459405479545393720664277201051732827153485262937058434276438216264635891377983665932259462415201513224126412521421871616336569663624724439373413825715581568235639323182146198428205424552459810348033938592516908723283981360242958645930187984682643226894363576761707771531423489530490690487741978021752794589017013362201500798346156840805279231274184908794302667448815140745554486284241890792161192849473696988294689311324179468108793651480225376839712477710369280665393467284997010251501228165193115278512075591940746931110884644214295764080178105000405312866274899967748941126725355034860266778605698932193501065422332986635583793495352213396107265669431893368939231873186319857443689744824640055560452360072440677315677084673070702322846218205300184779591677805180592974024353618202075997259955954927647523564749411991839480532136378122675706100203212545760191258274125405366228189050783573272109038964409217170643550656569816687580137971937471525133354297573141714121816157885489935204277452593107196875756602709822164272967434858826456033672675492565352957332403379688248900936766094647531993704734379030634979224806037586454811934873272397278405238692013388580420382247684270255125804517553578481455133176870266390587844577872462989710815183171385521110133370952094469382713284072247571718787974030080133195654964291503798081435534412514173770317818023922161449824027897098359666444113910623160421666292803361933603448266637471217117528067323378025739112081559498077987135597932809757149096377669941117486985152522857186081548054165826556707277323420041196456819312626234093675776731935968804259027344603643633604231217735484376395786100437655375121850334102604038579443736131889029019527524162684019638066906128114195135707048892792557869315543008140159617287752198807431970759291234044420400741344201236266810461402057174184697024539602573339094350288429342280957799575759043895895164698793426287554499260815560419976204006338487897380346574233577392141660642257337789147636552433051156727275182128895215415684863996776130358668064746539828425439409809673460951039188680813540140063178657146240576444497865056480132463678618502963125877296717576505326603413845760804537216821396520334842311769609397577218673948817282241267031713528599419758856964524652635311838068132428483562337924998455800387073231479363415888290464909481428187437257507864559750258329070622955246900970696581877331243063890293587173922529429904834439204528371761842301160652151694807618774093447731114555894695324248535223288596495770928100289131278107243590942339295579729940429767789284151293759957417481570657983647579735622597854737868840610099192912049631011729023110220911387593718749081327352171010528871925689688048211267938232924423765060440988689013439535909512462185337077591826292625304995378724272259707905515346045184325530284129611945350946185917684641118254044723605211501512639120862781836242427267255207965119407634555212042380305562754834316969494232609166143623188100295470605825542630853944628029866024148881465749887150377002282396681364669299045692664538605363620780721271367063892409579900882405152860674550559947313940550469494055961599435013260663797694674757645532736075604730949602742625708352328661708094357684894905084395613349145750310252586244267057430936437922683837229022880690127100138928554945313587416567115334437891561149054728021716604429738300222148390676402761385850719944315923141518508392454804764323872719924339599710053793222760946908620747464668451501152211671014463643032622989840762699383421130332898900628047209183687063071991374984380271695579888259767809244322257392317589480112844740606689223765880680201794187810899020546325038852142963231751022418703382018720031605251101536020344094499329990125414308826803291307547828020305895359170930725338258630401219391416959291262936195144181332986992051775009555553851617611107680018124344521122367288067018179455426553505237095219119986461534481456851665405972949640045689230674521191121420496879738278306670619518191461364898037233243605859479499267822165964633016794985741142933637516898789069097399944195091683726283967792607784652219433688102298272168871869728677933892853594699671879845326168103887452319506006958695466745085824434778074237548794906256890703933676963823141900436317974898206099102194960529796113588933911141978655642306183631579391264057187854897113331146417551935384315876909751348568806036556003455725283899798196776804328921693661381737250801639698720992149861866717041341746281217718432055669085155363297368497155494704683808082567857643034739556603230743514583951967921255787293570174643803790041060634068437594110335569640109301912625557101626840806589506273250741443686230887465333301811885659902488322746644026366983437353322516609996874451658576676949522088075656925769401121531956790204237336538227314833257649685897194492446692948133403696022189897980211385889488960857709222337018899759287793374722224013462299581934704148298987594751794386261504746599453175845337173402058932716342388084384898466199409876859292265264014866286843703391366931104791819283542024458480850697316338313191584722229161532637930672314233301342522612278007392115979215513030575692356783782251262923166007369201688177569502730354359625811127816805369799984742424193526212285175472405508534273352449668648913045881613035429894834131373783537913741304353432255097014745926449699905627086413458799031305511037053855192440226001742377115737164714851059315698608592871464543741870165224971711119547744539956454688863625151460986903459928381438157994887908635220657149962779867496228083473846890967819269947797438859904673379349354247471492744514593613158323329460872885406782451689304294158458980197536542611981701871559921695727808780610309242058051310203471282453598869316437214646427995354753312014582219402288149890861547351659561209460516453947467246859696615782395644948212362472730754543043317159183235586514970157795721581086836315002368321199465604762240251167219460454736270080401643501468014288592001373693993126298852206838026266460090472877878202888517315878448420562501040406604330655877071925920212745536629759604469052921126928969948365792547564516201584586633174772139998391797352289254338237922613789314320051972470830381380579410815344620398269616735197750016078999358469338200248408008587406918551177498663473112065745711065561010924165576485693308597179374226398542718145739294042309016706307189490414688222667904369837343646764630801730520043391008807060606107574851198270000772583513827664888709329443102215074485255220469244614318841214348347384863256088947928813393743703670345815704091698371414564833675703541089274507423969455286319788382916208071169198324344053457311681676860540690652427135398263551362378765208941141102570069864411300838072353578885157243655464671880232342999983161155667993549400122064857425908671461456322359915448143680034351088958650195359838101505333064058954659267289548419944171129628508586457388314805329953713547018913546338036347064668715358143033245746555904653867141288414890615589934524004849109659422470688453261725590713317654258311502309051427212476436754573175403231107347001671347380040064010679564501752109430499710125566592007591349758270089894824966194322569184148967825984076666484552229860895645542915181165590639631786707180039079536904494391242106771850473975450459419463060867108152397992199251663794234718682757950809831987733185521644868254296898726324263822353722739441261631830784224864335181651874221992473274031841403053781077456288288861439135759839862525199128917107231316047638251383436692697643212228253693973537275294517608561184545624434036919919181735481799339999437414110735104985410139656893986965609428605850032438046265631520673659773852058247568907916051887035583527833331251420569783296778616614990593766017724777575531415297686714635554861808231350175527005624981194552382112999361905930831768368902318162788998550450232076609484983207250088378256809187180906970788702294003903459949583406487365882722303360871830367715378880666482740399627401788460043564003753542940405185283803035439797957503751936825404771528236281625706201232691845525033108792342502324885636982609118741892198309853635016837407002328469849369952084757930957376944797991013374156119777795887937569443746261530051609057610510428465261521267215225301751071301181358271168618252886316660659468920610732662487885031453245046530239848353124825765272268310140342417511667039269089001081342788288131932089890794212109791049157900437906513488845493760732214276239805197379786176374860408274011950943363974820429148729057040408018456263139270397126162790229869087450327671882043941381066355796864667571756354225507884949934255960406394937175777886210695919983345787906430343536777055499821811705117158223748827403619865910828656548644074921519383317108461225761017310377871347238676616974860916643928132386383508582634408793569905940772845046333242818509376472173208449830565329063939204007542995038553230848910922095449390889199744900369478691259082938488809691197327810923484355363983499140520783004283062847018247837064254365567692635478639814427675064831660806064135977471241080236354052634011574834190009990515835401244016893132002306794482337509521704957636988651455659256905599198918840393580658173601157503010208493489730177612695821868483962676684546261980491273164492552941761798815299827188921198107333523848333289343733759328287710838689093117987239252854378250130543800023447517202537309313666469351392256180683114016016916692540359133085285465365131264095526373207469971890327261793993158136107608909796817477470964818346157540520928029388517647885145286849862834369341861747750664558343989273142049100524707381179827595237034148289695063945628757229496129083516273154098295501276409988253971256772082176584930044014542601874260224990009186447369074227977742492480922585819262006351171519167511975709601127060592057430440803354832239777479662164700061405572368119105228192642653877323926417951189406831046775453531338571533309662428230012223774502484214672571954350617491250217885257882213322847336851554747659536609332528621505250158741070867111570051460410536020834297692118399465430538499821453200999681276431278102999457260810655060253336644011518885845100387086073998692602765458990132033439014485208330662975190690117519090630491858308842113840353953220843201975002074255648838005321488306802479491703260234829571172253435476238982750648910117096161323500544916975712581619598548363861057037803526357729486049487066933220682594283189669637231224213451231474800717056593947759368953398727114716520834221715058434049427819460372618951514334120831713389888225753373438159153794717556974763907136822543397780827469095107342044448386066068582520818397806454303821611585223326699620840490240895814560304230990765842817139818517348903833053194092578604178116758115659481262690435644200366655363993992216108407135365426416123523963302974943408274711143461578027665268480549493407360818080626155946798192838939236415112816721585959057451031027589393310212163389642312502083443346325953630011898298412704609889585699455204869246731491659357333558009458104453182535926502704903095308915131063329207999971131924785923071913397702388561126598685924435941098212254782037745748646449326018783914709508643097061626974941155576841799482843331326642130574175564044822236235045386854400156581038915801384680748303582824771218273757096147084941099940970055146983669703866738615581818887803926136131326756654856163014580158350183785274585381085753113996379851735508821741325080781869437232062152076140612597772920674664878858162455990452407638114235478880172680355075905037768080409264929643731800069635043974251915967756187016578691670010926080012911144862002625351472517888890645641883439097189875821978510002840558680070664156778936643190897228309331544252949370991402241061093859404991458026799402128906861681630901615165657849489642459343727897259177698149562172958918893001858051540719862068819178788385570425506937095403539129218430456884890355352649961713602138168307116236750159294693773809933772597988055369772250942563136533909652890057975338028506542232220593889035821469709779583076832379243399151158323196981468488721140589434324356655173750437500933242675413147749171115095744323938249847460668366365226018499572281857516726914213592582889918002205865175308615438833939296570593920776484587597323935322766929262294784482108541955291421384330429199488845389576734890868965398239518570662427564792666060690763454673524672415129365136673491750880949095911074705292368174129937416892937880337077818126468489068411845883815392508194568820720714917183208515289686606336354279300298299626365526524713894993120190437233321617884706250985700068467326584019696412874334840560540767626750884035517381078356250440006456842739377983042195217606471043167645625430419237522785679267282117802257096055199073509567663036273195489469917387372572378059770040412646612577439036698872253977167552484076072546047657955799862823561496552784874425584382426660626659559255399006619759552536957008993316993403210904682498441213301288285196349151171946301822964514306330331279079339124571326315057800443722767424163242929263418678146090678400971773339037408044691271383176135521885591163343180755182852497671372438244480996907916829352983913045469608217595309426179819219277575926716894004838303154710398828633240985318508942086613613805385485845193599954097284199828667334965337797739256812900900231226977919866812608021773181016960302060444417541768111251600923516058403537968188795396473165582602924100055421219379383168516228997921944851923393541774398986125282013628660289203666732446092102043539776024503508919816567725573587634062782710023128983318412565072403311081354850463892168200909580664182481269403462447435088249139728769012238283317377653955576419299245282338094670681888372347860545293875056453751004183330309471029932439871658643922631519247111699608767517309803300892989713604131652759651517046001415980225764613154644472897064264303382499419954187941159880387303508161362158659173221344797142429972534501976458132427094588599482938553843277146579100220347158255357010215075982429063448348322524684922369412846196985834019888207567554372503320702268910835667444875180422178538768461711206273301512892483875880948683218960727073312536742625873967813206528149343285564705795149273310861781462667030296424160487325632190996449399271731250861521140012764403924816635536351840218323552581370824959364240957620347435795595456628191109796991965202951144731530931052029500811527388788849221609189781492342282767310142072790083359622834845230193386924983320945761570628841768192658156787623487206794882623421131164070975276054837378320337978741115612939145612934814195807225159688589782924070034133870999160423617509314040400059404044908668997058200152801667793763816078370816915244954608425255172638920700343504056632870658526443047071995876848945584149582994991432274327421328921066307887121504965326397427735023074950564273461352855713853846592449590577340547157711760640330005402503538645551788746226228302726099266618298096150535189303276954686652906051219600923617209623148357994338136809019925834687398572700839677892760497232507358048031120768621652655357546068766149093627353040183591783959370665359139393686873595765355689694751857697223977506929994172298401390194469726036698647444586740316802574367317697269366500633996113336037469193075626885137048462222954219303215980533798676824600051847816418335794372515965234967450677476565631185564994241678856545402284382459780108093440270510767613020925788633322962436951746864920532776355440653996152428298774476926108570413596357987453263276947302993071845964609355677540212018085657365056455772632825477851445931923849198495538577193847190704376902746143416955805599273190552382210920769646756638267203757128530346972550752823157743928951296238673681791330184435669167137194442297522546012149020113747517697359412733052193230696903756889547362062550528530561086544033216286070098063149619704820531174709405301910887794837493533742587483417193097970835704576370405921507033061023646848746601239192106964524799181882915964270174993823693096769998353838122206406300285926466853455823031759175146382238410292011314329168923002549493646330110628812612271241695264806483928463357132344669772379394295097959718889077342063521630287767942937055339649721056760219862746101694097955339130317412248438879071960474899324198073718317058370492020426496626464327686298638121895022844506346450297489575946931393518360674039266929988341210713534588148451527062148724314605993853263408301777445840801846091116392849959676788959269314148107605418039999340179305068696027460301437923704675965858528518239644801138119378513567162380780003402039699585198082331175188953213331720949958397337538217459125100950464221436003884160288507698625212465225678646105863388461147152282131325196746176858798346431000750400798685635898636011023052182967702786891352837780351876741170564855333657200826249855259689929767243085085811686181321256640995449920831124938534213228872401552477095581273066239713241309971452678314797064953289791403946351337703286221909353193964695274171799572100509395991798379248001825517336734773353134236518590811119198192898160224738351840575505407528425352086449705172482844227575884167281764854296574349758364219280157263999955837672044410775280239965942284777463235354278558363232559504606197144812496633974384992390110867468551013079776996602903290956457706443797421905371712348491682118506001978786608961469855155909168312144795941094582633465840742012948537910121114544662025489184353111211915717689020019290249223129561829790937140483758329751843590838587734489945616026411088486880426234345974740058110484277869895695183948413261429123154629274177895093615856236002579826260050489396559988084312033311922563111137838248868109495152619704234497028890139348252867956827110321831890997787744725412452546336898604335597819747832052108111737322016585291470285171621135358556569932624426446306670855478860996124069678836560107531526008121498752280199946214459861965179633525347103151525400470406808921880164991398513466321074238457438829050834647324013627623841030715427379179612856887885920340403984385121948606466360230700673945393493964347962342489763537754441517130465091772324454331339411604513677239675823624162601745380799067111478766950054568424000789189082121998754201213629179089451780825655585638119814089683549055638668074962580792935126570918469375820357395827552611330543943894789008818173526712819252489124851843374413865185719227550627053442078777694146903121895264172232018179804279109194372079182013339057640338826812604647682271186758310312387429331668615018166125435074861926120689068565338342229036192910651425534159137201342053518762992212259629743229044923259057809226295363022266561581275845359091611716110632759988914528770671011829969217557949060401219696925147717976191939136683750804733905970830766320950481323534715907543764130529651074875157428099241626146029584066008756908955908617240973811853887078371523765942741145827418124580197820574502970934154502783712280941638207621223144348999398268940556410532474402184971075219753151223102152619841956804512431445698475294209274030227888197961735651410005960461191222654840699765798738968561186580628009842057250233365424373342807460407594743954859882848700278036507158719281206369355347306507526699192886493833736672552874168512555891069736755886304194233399465282611965921919691987130973471531499904125618745555327200218660653791102789325236998909296648747406630768321707737923786964896958326565616604653376677646266390733303467643246490415612302803850670750782937461648343559508685563187628653989115382434486884309781630242199811801206456091677994304509218564562141360399631014110089326841382512949296482215061923338290451065262933146780225746999328770607302005523476302960724325529899809029372661537973423187417069005097114313054139705858852929144211624536198842336634565025690892100258194411339896242877637336418625542699118288935036752128738660449657835775105255397930624200065189917964977057524122519720477648223297879497183178007915640847699287513459274355090434432074216796154503144760297604818530555343846996035627413326778010597273243509024923664447695143314727037782898955513580137363214319806396412451604273228071279943372040329434486401170933129891800273348847189398917480905009205945618737311968441774208534583260363198898763425972990726974033133587620681700479482020571319439630688661237795799394378444913492360447639258124086845826764750597196441373341956179107166765544669495484764807200789569176788229288194783527941201473904818184969856358799747965346534472014996239590580746049859696306710954963036221214210167946238572272000016203901195963680514159551008206646577365562280711822268059337028457638369661300630387471971500582191779084402584445425326977948207410945081228908094171587583775075408936894889493253059410516390729155343032659327709127641293865645704853560635260569434456454541459079775287102527697967251279827978436614088048563729120921299025639455236158532642071477730780369747946930036930005395838700191876023324466519212141391320018440223318597367153591759295028223873506612443637477801571244961768043108236290964965091136420418278006818602994803703644914753497276629469501787001641093233478771011367720474004636615418076602185240026248956860343799700224289049131875217510454214408758753158966114751413714641003950439358528137627226186996953955654755815690037193613132653129798147368789786039237613989241005250630010474267820982857071041091826159264497462254044797602012840872194455633577156794885469326673824156393278387435356744301726728373778161747694116154032083145855184107495265243670888256266501461123471990534010092313774472301173913405682582233382968337510061954714674855327701595300471352821572434783329768479985963062140926104587315513666758611200332389195859653802555527853578985178761453507345254367338004922879028184640132295448973052579428343660146839462037396756002182896791461068648414300667245204715687758067447965191995845587572447708423829732324197996481368579122052190654384233393907570369497110053934922330482449377309547428624279992290978135351265276953498925707778986226530735423810024092101100016365856147464902122462963744809406894044243239143717622393529599723742795924193639082860277824268523417701545080709564903829209589907416221910156937524708411574976657491786036319474796389602069365914460455057547875547781612018763814709765961524568744473365626809309639266995586253604636879231565005066074346804810452958364120076721931104566857844885161853194420526015534568624820989046395070820934257317724466085166409881011046677233728644071766336963119060759474193971658684984618398962371970114041174229402358248159933068266871304187350165106876259220823818857688046591333099680299393274275022351055806630399008410489871049147874861107376398623303344062074401121086017675165404813231527077099182595101976510892422475730496753865709738076978712004916111394478455347723706166947365640477958478368009362778160285694805061676313732691325753071403195903778916501548400102650643494016251690322830039106954194698117610441537941676154586912793775246234233850263999445488447968585670537112786545897230004910743433203561012736023890464886755555832126223566482167466085389550823663999774661104931670515476857605708769989547072834647707261007885702717628139600603515376628215056679191985410238477662771443496278210050153398033267130355128234144786724547322596753160020241557789486366871822688841300927592039381023120548261362770630526795857029244487853430765819824780603444204449119768234956117922118908230669687416113895080577409077843676128430737662377220328795093456271593241726135104229293510982258258280694981028406547159923968879108409951654820794929200956051037234528467417721502689543716483568249102993177903991889951378988840708545070507710750037070606321852405030817080068114684177581745027149182019277082658427525843859255423204211532884379712382791134687902943747227062416325094634972259268328555047203621928225221090788127091238216229024744932001989485179064857095613132367531108218184985534815263564570387723514317787349473395289465167486166384978182174379415334462759608526679239643007295624061398164031385342458097925355761062026088757888376335429839926261557568493595181784410331071071616748028412198707793617134217261333870808153842697185995432322173682399109801330945096777442436539205181632583141078377151591139771031027135537103631249126738896326129007245830184228982943993180251856018097896215191843715469446726400091074499461596148487849922724583645584330258896219473782221880341856615319734997168878259894842909154182933123853326675918292246491917786411298815505576731799460133595679595178293363163028411878213651886077546991871873405922343953808690414309530885262796501192897104321624827516261594944755398016671490217309177641538571203385189562134311976938684408982463069281983469598970823563902618851904883863475528222407775851119592858863715461121839304360881622832663607113386790613397372103173066826770884057504770564732792394097436450148318850093087274212804337698616061692897610524389551802807591650491425411187839608782272023776258052445463414901073869784466161285315199907580953443817462729162515568616218457801447739747396748450144139717270037194968897673926442931607311494330981370054466953652491234162711372060207154405337585251296756314131049342384857156723962956927248978233619720533706228576368220304785179016484024301216841883420597135561983088737558057127431049422858477440117411327064467147021787507389751896276378896943239719188150493774604831165266139529895152725681193731860262691545667528884500174573871889764917277267907682105258338076899171025889417488603751221030859195408682484091983285674903928510731700550128769951234179271995180000876929646954274977086840116286839604686113904270041099366640964400342629070552991347996865734522724039446571425665189045811570947973601542816072994116434317124967538053412364617063841034876902032721623254706768089607113248248442431831989619750361893188162017572051660923137716720244002122231416998340333236197716745882487624691447833169477713650032582273386985932876731042132747833591846349255671136752012793168092863826685297666901843414181936200952643378862942428520895177971770871813804496857452600824665477200856923793442101329962892168328788543888696542423421236207700311943690856644142012045376804404627912291845318697172123706161198808058936298517870175556870719176008812659568715622783307849750816895566747093982467104665927688620141975500595246706944952527392284363494650451781917651350969140180666606956307386348441457777291666679710385503441629790060086278617132793469524267181892654923349424658239580417389246448970374691942303591725299717929437231338217820840603904936087706825191602077202192590806994799890405655741049904523256371566523971182964848846431537917044259655677557420250884552453503086756863898950876316783456903654675615724231149335192386989882481822127640213585773127661459987238519396502010030328846194780298634932228379519564915440762722876087033894409206557079717211603858548226597103302463153071808821953366399010043723403023337468452988456967366272534927008286726657690988676388599256593079147764935427284414762954127746551812931499660920575865140200571029358137550321643270741510615659285204602172802480890245855106444469015534981919406802537286919851454999776742824253341651310081737571599683292473230012455374866118149819927967276863189433718368399969084161980054845850225491171996670839238627405500552031763140701953277675214818550874512807930819512016225438576523442817688609878788177493637350449715137955862125447562454575268834700252835557976299213395621980568753078262973516441286849064981165826009488316221920218952629478764440132281003919739238006464003372083571138297180763831588866125957124722523357937679788808555886011423490127097126808279793833887726258958466056824029399179705779481518259246793263507324971767625853204477284219664551592214669802191955499700633726905973977695193084959741936996718785208116801496539864523949573201881693965012629241311415988904183079023189812658738118612902320778617953023417959152971777040590711298521930274987928626096693703422009011765451666372549065102279000980364202420084864365191216258702582208417630501548116378655812823370227946378912808596824602515889514363937839555953281789670569424005185209701152792396032445176203213189030030696982964154122578439947451290025707080023595331637402788607449905642981167305163149414858595715606013838087315243374311652868887193708077814175176267567306598533971352851585072218437100610028317145951891568297812859945259461031397249585821944731863900581136954555835263668148248938537088588092055513658866136126899757214496819677197426103637264287704401449699170771506059807435772282151389762505361992774853194216510698413392209016575124839604910523945828715987583700575280211535388645819588628564472877007808363129441420844647087302750897169676115890252659103479925362505931525456268895058860956500421380473284504200261535636500313688494111483084580941696009675530225898215928243156913247822579780526990525703204205378850122057564269362930511406614459569085432029386252084800824064510880876894624014641858152841841489170804205728351924206320312819544532046712206929185255587272273597069979073099342189719568298850426672393546519592634768547180313864102442809273054072827923018187376808361658912412427449199639022328580459453311151128555281902260063124561731865805371941777698996684658363862795716886608533770329403013595045675594481837087993417652183240199878285772132350172481875205594819999964214915263483756177546015353763517223470331920891810103709156458660190016011644347243175394924617715117220988718571699999409659533313339996721769297954950374531947814565727419687907942002957005071410717773447242305003442783386351321421237292916080713951194264123299227019480190657866863675752888394237379300997473367324283039282630984134040992805518194664381823000785301309321910122340150397441935112600117879602980558674844874789643469265821270395700414706121637922244062282802109221622568353435680306930662752265580224070627910299640525802169538539332695815338321444869445760312650858190277902059222184212607825968313835081258689584551703089499157595492340293319546358087195082726800463846862324723785781394870678223504914004535640096382576027833582595938079847524944184301367448900429030753565502109057179002544436206528118616468055727387038634005653523431219373905960089195646900378185129091227297932678395625962888710985629871086541754388375787268648839907596566874163782238667820816256321977633371493199237922414430652211919933357620767449982958604091076072001228106811869877265017558226387133651314569535547017568555407791554896099894780588094235398452958884023302925347113565035791284062979569893315129624332554307557854893501635401631440607246698756056620516897169654232693692448190256833672722586726024516272429750517724861147686469652245911630369200037694402156924357847377697647639340176757922587314183433327973934896258307273586538595128257082790467653660218030077741734142825114974550628126228013573260304475043766789620858349724102241482102509297986619865058997663041916569927434895531153849933411692427839251487745376610413111918483589701492297789644040246792571074416428673873914376033413717624137831064377183923399203693945665458104795786780144357493274717882836149855064772104108805373402379782784600240775770721989331967924889360772300088856407355137954746792477741253673439586704866863687362587852799846708027594403661094865782293705079345992497906687395030195635686686351109627751141516416526868229473319379409276434344669773178864794216829584431869722159591166044855710024757578488607874571649378137573430810863638778696285024730871242493049424445907710198107267988474286987506524803119338551111465976799784911762398880614860509536807623813807753014408271149194154772985950212777159216512054588036873831096350737190415092227179976308217316705210761156375639911320129473252794696378811662416196827975381212124737301615771394631370755810975972898854663871557723129813176450209137223355348271121736111116855944775463075351516822797537725347328712143558218464167917187146085362664584527204536678134886820478912359746703678650698109509004978201557912017933423645389211720869333367560288167060706250840252886773773655719825087864590330468317230533956879173039783828599889597702924897779103860606836703034132280831745419401257015295374116365049868487852762136406359569224299743840346055992135351722211043602397056437144585374778232819696666530932481550160202336328361453914772451129740653304815843483220675093868193561430734985376036796627713537086474992930131272942214705612379788488077001288874557284147344218838329994505773775239933607666755512206559484732585674214877646317819796682381427577502954193464747357257425263065840240840748923871458193100432964564499551944882333451620681247061308339243519981961812134692849014380270245464016362648596929988938292180422037482279878731947429048758729544999950535663846483399823742884176810300705150072664189385470205586227957266059719402182527035693181103907732063889406343643041827583691706473347591031487947812491983784872010991142815698125481608248278970173142697921226168601489124107210407935300269399395100810572295672333610704447489040039382214913540029240325161429544160067413374191875300300183743485039055943857811584257577832719754438200477480435918447580305508897868884133092377199812341091311138748149614785953570276492816043592903384209753913568546308978744559555260752668199687452712951529590004477844288176446125264392451885869345710159398626598832308179022811112295667924858967101759504968977342147643079958419632390100324350206848841705099712934269164776207128693062623496068880288965886168979391895503346606377849709662737748914764885398911289485792376052686945852348719143590135950715851158648819628452013498615026542342575731666051431479485732069867933425111995792632359509259697510358800727572128761215219732190428694244331003166233155974804994145050959257065633564811549648028905903186450502967172488739700236191023406645192847533605113409194707021775057142268384089334851934675108052862739785950313540312099662332099269545973520983557440548451220539439844867310508570437316573787711849689956203367037205863062002926608327757649018675580243359162903301664924220970716726622105957080182001238359517495508367337029838152254769394427775613452542367071483614152982214102486694376148958024435037380875033995896325449328127818835536410753667594583224389825308979316919864629473443934782559049412646193887763408261460361814270563203554496686288702863400120914520445457558538718705708437964613754516393408312194347364456098956986108072536708699312842815475487801506583054344564373682821597934922921581411236634976667613361034735885314017486554890761898207853781482165351774116546376523534039337300841203436677605093351705134115207397057840233668344589730970752210432468595959531443837857954650942597415156009662461273826726487581372120684706383958296437290832666618903442918681056235466032328569347658019929502715591662820682927939467023417699121089461849807090670880302828051682538173888527464601926507394888716572565214457271458229950979050362794928581542756294626985798569631523988861631074902276268892936676497274379464571891283321360692680308363430858942493828808654254601284215256455653966895640291722556872964039954865415922415273211922538927013365011761688005158170029213127215655956249062287174974763658992067142903288886394283622444084964634229011042609580315377799008506605388409783809324717955201818696265962161335637750491836442113854772798910478191031740426810093843239529730391766663164206444714779589214863883050773427056432508729254249259529872165566400707192220406859301281089899058560543215428292959950825804085898522772056275139214405152029329682903907484892210914800315780133031425793719795420487952528767135296682969075282654112318461502664699725582773073802460049056921444925318009289992957102913283205212972195210597798714920332129476448082920407984869460482291894528472066156291772362618368842733540813020178152746112968607475037526392200306124554280567307614951883801008729089474324393646163512794101599329759243405968700049533758829479428652653502536190889389685297602745095603243668801283377402819213635551140818235504262744272186018581674585524382268061393504346698030435709358550497068684820280086729191762072631248344376184571615712741665713945466524127110316695935091920550308581907517783686811789344137007654407453247584679382677391637671029775079163293180862873741022600554130480796139542274415095114766553589224994224611178997794304019183436371533360726156183361739718652067870394018312685248498287088360791651234332014535296892204912179647624556603696936038765914245417401162582892503572752455588267813593137157254116149487718874804862100856925291144808640103510153109569869324935666549699576724548629259281039721051822862837129355626604293030683183513226142016406932360432682592690641927846123402546018409639829796507422681649675621386965945162462066972041381001518069485771595119072386138894481919164599336786524252683879610536654859778395766762234906862573003900849678598037168091051866814843381654000186838122467394317620259758946262582779931793817045623381762703705717232796670345156793302130114367566757817622068126667680872082413215265549848856684541797448427710746729901170504137571938567239854956874210744983903040694523081232440436841313671050632183834961206130971230358367552821814080756901135766278950328846357354321627321950925135882929479711198041050933653351379573187360061627004361254063391396959777614405242120587943332401594201213080357084222475105131431477930681343956680515806270703270725260959701769884971439787965525564198698127339740251628089706828222585010830581671194433499134578041050211385611038781486895451594450542644243430384997863413050808266566880045315440569658011925147177387732366953073161911100548825161658664021825585747550264158267742426804199990988924495958824550706376761648493453751381535878310751246604228540700775223063151730763228280937245850476805191252451035577726902885025381408895407980884406771421016955653331404880075511272212079339454523009810895793906215783641783790726534523009674652735477429547442228646516291290088312192292460086555963315188317546381115857094046629224292608603197824229008364842117034333265758435534631025215753728289191643436309155816786985808804290814109825492095108442119061603809206455003994123464657059199140062490717584533690701101304745301400801550144966591011188395155065200106535426264313832710436768341660466922371013530937978736122580589255854757274708904461923600782699487357963047748932407247457345262178600273452698347650732043409534940693305776802553025756949846683526341512051925327310859795933694170510503755898823076234582364115551306083877940033726370034861195103786713135290063400660311173000390088663512783048278350874771265912034306402799379971660205779800573550313423509459662791259298052959703266668031845051386812871138454599118059395216096557127945620343243599606637315283635315498649094677497992162817401234212681800687985425882442177342583779690013426286880707672208277597189163086834138723549245389277215747474617040331685593420517786349320701946151847321876003866747453508429887044414819154927411870561356117185017285887289904945688242101498992054063099343340520547129078028035588664411657987151966403783021565044212926166532515199319451030532728533559698514358378890797530443844446330807902325070071712351076165179840907708408057400770158227529072053867817422391034057164535397856152659081447849087378559452513300395302346106894495750492525442089529756155051116917864794654657479220928863534752844429774823011409216146725181489217905329674393614365059399054069162475240874845930294707088112945186284778735627580045893204958817114957793991779673721052884745241284039903820297974935693864274326862628286415424312278005885219976953117745500674963770517636362874021767317802978681932876750755525430165672724755787400986797902989072010090133340703557242993647250311000207123638236527918997912322902611380804662380965678596916832978420990833061656286586970797061161853275565254775915405247960719447276316362150967422876331028980165945538574767116646526064314794535351876208428004045311957140528166540330460658838486335222882883430093116911245507603827196424849293354611637385754754649720598648738708079562782596392825176888093176351514697501787765268346202767028537431470141216544131034567719352477763037314291150121287951854160596221010306281725587409997896217585322813360794189406517384656490387281457909722012422570267900571643862948356702595906999745655587990229755597418029801722805946555607344309036879481089276218677107857260308350031809306884504934856989606953260745848785752340459096659812793640420677275695525900209466564505477362179547502808174604252989812567926486570186651058583658156162285029086338773426029982830016088202546115913298250081637088801757507456371400416865795081014765389892474578852267454142758404491877134092235775994673307225876490789338855178121901313476304949678171814968924357828897312004246911203436875208169703138366445212471291636211590371024786613563616472203202545072416754507216940994945917862463306072869340355694173127599626426476946862798004343652676598712011776690140274316790187528297915153159477872133023341034784111865254181322312112815054887056744172709803050605961816253901430024973051359107904162385920813703424094223800246470347791859032200585454140862120965355734314082908722408492058500816808775385858323588172751687298420176278858317256589582266522976924744177668156723615729472227575737062884338025403782508145170947098121044514957183830436238532617522746231277289928845859174663589866655060117866540318784628861395995108050209655045398419032144969570509349553654118898686994819076346407688779495786751119667970246373490002565732331820676263815971321693329435001673449417310728663922091085181781258236583414819399980255950225518705885315722542805982596953402052675275487103486752370639145327051920401011751018575650465112267784108741323858661207063488640045586789189235779066245620218830620921835270645047445445909122513233890953673692929394797867556503558528767727286742743568213577574457538803785131008923192043046631725973729766965477559323138934363286485549351790455617941525342160641831683195215972751465859023714555882060102323951630185288796542443384343375916992196297510521496967111207471001088785206563591789281648969500028564221849579270954134413013030218308291103910384585703908309710188602150569694083954322413778573529825636181544360378841744242781320239412986785799334487973823690185004964151855689720989850969187904812119361925611638660086612973555967681336973501357765748809185934750212850645851755025481014121851787625469860231797862151828845207668488705554854428699644008791305288269089567569007022397365173649962710257992210823283552068960697979946267838810801313093529580320524531274842527872441180696833096845643927866558740605984396593248288396882244773643949976646113525441152643465638908742442668143382442136110960717265978807355831906016610787968451272710842459006087363547944780323937481850439851904069422122416355011840878498702392378920612638773083124986490329037064975202411971229251667502308089824291661155476925127574179444397038218938570541398264992519789839888389687882639831481866815829439039913873285932754059436668023854727664152210750939298296646482817958800766989759504037013353140508350684110335722780832024947965457127498445268750148514312001001875346401459026176095882449439253408351008462979180377846320297578368011601957108098699989713972747727268777727971300822829900904825938677738656934875715309627063316851299708325470660516680206022535200266133005262074251351375998769918767926969880658618015497999825482337704181496380908061374999786096444238853930225244612283518623844833595453329574759033607160227732314497329281699013944073853158123214474731143932145836148963343142715747356646555081861555505034215814110721208845151082378605683738985031050129698105297950152800754722264299035292111004638606503501835109671711133198926448434750154103315566230526680958396483036745562060126970427099543518384952131736304892381471557957442063739378786877857080700150805792590701539229061095118910414332883385022473962174380746032861184724351380633636395690952337073021934774864656285908180173495150428069236201770211975225322834669443201250090912898151489534382878581068428071339451519984806403460428845586914985860089264657032914291595169609104021722605645536143076643108687119018851512504861227459497539522840270915280034148992068303776884573235106836094200117700733368886710499678002333533872291952067214401320279029975036320298132942091183204022859683411278405991197759545644012603169842240202294886018146045524374125496294909043805486930834299926249890884585169009683727458288242704958201051279214641451366528853326399085281088132159535206436169649265870974311206904423525098212190546405949081575873268627539892847859668143992547457586063653819524701211918191750482652598080751677224473932500267048801395691113372857063731403083868168457680631074013419081584783411705960294610131469958277752958576814923931179747354635615291147197241847541452869330197226426707447919572008316454631654810921096494675935067225000043354239577990296384706242118022856656444261478698300564211783485304512258767329957019382651457069046496261282669874706221032584337621521733482605581343522522850658197295684833329736359776619294476868194963146388077951302336552115691508898251633611290561083494564353844304386375671166445416566356352872117265433959244648307595516433815797088634384908437933289250287482887140942175319624410616226200354025799370931624992629523748909761519113666043805797824940540952340994201814012721063419881131020172306547034761596728020595226365107434476453953464958858015031829080659702702708058788990614310103280514100422018792932881163314061890160360742549479077104499450883611023748139466927621093616988048095448034347882569007454043409488033036727225132050942357354582052682774420171434195416455448134135745403629402266940373282335293969387691366639230335044355284661870098563516229538237483415407513819062680539331147649857558262205646724745300074248500334182132597607373298231677073723410092197844693837816968961827695591585227819559781366637258769229287043587280433094625712026968521170431266181311336329540599515304073017511779627248993793674578168105158421812042528038071936380297450647970866700148272049546444625921225286321197343653599127016877784125789350768280006987601812198011806436040443545818694200777011494283705105780611760783347806979065180150425000292786863766672021579741166211247589860021222747899396621873213548341889413211943909484428798240876831685123247985399215305152490300403796546537107969470865050629705710837286520039410043918334491646811242145582955064418929451150264907681689001085131654846025804819416070106843995424452374363023788732198550004882607294281772740663473758839863180860813182280204117690719391510885106361378151537941741188747336942971690297227662561694699695322985355993474734962622641425205108233533043935491429946083833230032862797417247174670406132646280863507139575202434437400048506615417463245127815748213767720115648735024490720979772623820550463209529519164919035416084753388471273387307246895230801597306948364959982881392980973146303233586852864189561503016357651421876655403081608021893035922925688398263332647341457912957045395716294888201078815503567021398105685128499069331390440344629919884005815415045269793677867124594202454722204432563221865692440574115628424028942970168841638154872762887309317075229372665731017384162853262856988483319189796152579597840773158006664852091828256932508084028255470147557371817409598948145360486491704876330585020497844171818485688520515192354604420249470126030334184653078063367709012842768861546666937082211868932324863441507203119979974687360256286089435936928044355890768427809397157416707486601694638861400134824846467898256656613609147237934450945930050640990843325685720536943474590019122783487879803744600485881874760823941174872430060975948382049180988059626839562189479684503270217780340418603830646822977508884633033248225086393083041464175465734316908321372761045236594693961913910326470303567690042839299063323269970310760283633563744757145868042204806990971401525629076789318596755566401906474828776449317536353821157220685737965900599481469291452419140665808362757855427820490241706882099400160099217093519134890825517003209260450076567369287221378871214012391540407012139094367788049826646833802184925204046096821777472904003030946163851814378477929783093916589073565410613773804767171588576029317788472033695105511040114000309989402224979772071477175396307134233293122939605414795526681329618617446502509011257970346925290064443917031372448148311844633600062517915425814558269562055915604859883863588339387559828616551863180042846167668380679697307968664352374780697486075350739175294169296483836723815833261175299975259240869329810363627178652829807098086125057699910606686550721306015588566914093754040264310499627370466918820422799906352034101484289599739753442177597979622524667453327778631169159988766817904315099402177687372289730982553901542778943510281086264192004912662593595053537761647246018330624389370558265461542524209369127175744739627789387559882518367190463449911814198544770345796789536162787437441071428082793035855175408445545886215696639346892970812579294994933219155043031101653221595652463579442461549414330001631680765668128348729253349237065332920684815311459003585506567517751974428443924001520562561248522930681896270272251506153239363684360404727352353525512109097924628897958450172094546094890158189671785328624998342914547909795466737906270076796299979193829629721285403907378944839884262566732313103294258647772215523065490316723790890281113368954850038539559330162494709096699907237908253227928936724098425930414700556251448076127825801654037947205024205603614861002721034978419414247683141968763099867177830764505761351494493895759695717488387684894515805031358094991608390156661887847672739842970805963329253929653782237900661776283518607759190673873609309527989897372472923528380726033777809679815470149725903813127774509556634994182164263781888775078382434387056260567996716403875127869213455440074980203404191468713148518744991466494095437892123387939894907936747483110846408561870042550147737694356609930500602102645187025388226913088183828888647647412764930914871819168290340408773279260110793715056891401610555223737259581119099982579712647459176447222241397041228708224158941995870886259488509905287041385254076399164910511108951294034651775170163329300882642943450354115525755854971836492667081054747383021854325310447830418952391388720231844471226274642606502080478562386157306943788656001902393463582420830981961253419267552789340554211443410676234772476277717927320802654801329242078409270485987797610732863154233293304119121610057487041867666638956794119211483808074647799590915910590381295560017823653663584349853042362331771865553258366856034825401667399356704077503135988299150108473864409218558359169671807689437118673797575014274331649828216208042502019080201793424894688227726852364058923946303485346259761762751833189034466221305964766348606839198831670029699925750818343224276399779320461124730018776634956548328343268529701496525398941783201596208835791538067165286599914128333960892051452978691460052431368041126141527419472853717752893352132196726457640500564094618481812701200246058300389043051088793080915132581671373200685284955813248496773896747874651651500343095653510314481040583717904812806152872166711204149243175929748320075855838528727252894817871105118629274199144509867100128260804238226771423767409240851300384390886413511270795483661370544298842747382617020185942290210041199515543172615114419738402274991388081051362570243429583995379266427949150396966558623182774863963957859649735412146791113466514407755810877082775752453675122036221615290077735053572672562391223302596520192905166748823676476158640337808581155823054560146797504451028982244678300019857185447550718859317347698831401599635563490194562575056884322375999935501578140845089988362938895680398708071318928362460649262882400177111381100047820761942993206274471392668083638052076056520847888467865131805464942940686149476657157756706967616768026308000002667331881205828799693280079049734364274325226697414076047171038536737751579159492150762523097295979919993533700255351599124110925882218187624228326939154496438326238307204642250451564954063434730050044570960840143911206937728326901572652078915758924723910163780444229892682493352141735637309185684072870501180534138459809062624931319498994536392466013962713398159349487068503783387666865600092486447415397407939051329442481398769321076889833895118570214927930386651195500031367898017019558017567695293622975746665940748395533846540403621980422240250624681638841520642099367992671065634807410123991736888863347228522849001947341869966314344312841007306117048411177137291791181342008196336979837565879392488210136305593438244300549679742135425277938176865560945233148842172295111465381320043843091468972754537985687674876182595851529609839719442296493763057973207238961898503884981599728759602812267583417097886952299049973390816859422515235115357482542755350686183781543602459584232101427975715486906867055213968175017573869297621415139385111134655009913050445526174990985168440831929054686814614587154195931129196842832218496989257977594924759658270338474194202430576726615092229588548496187228742797110844927676073469038890725944045375822560283060038934649146787298675799545064615391600061711515252993994166986077924524981991994897488877249838683011705367869562345034262917691110495223750249459478816332920988276112640515818267619269296419177317292183781745572717225233067786075768946370330918736485856768710212809728674246058399433942794646900102102989756698024149724964132250082540403053188637255599442552096813703098003368170615102876564232206339222635367062448534444992240532597085678793556736693710415523382140552721225625356148180274327690263029981962350793560571836344752550898479334391294559328660588488224428915697504992919613361319718526462537217322254213788296958297797486808631294223876054837059130828331118595330396328278546233758212178054215161778764383955414426158867474256356983374768090578770015710926382589011758798522817294359205227862809802497524380302093005561753984763283118219152079004025059503357100705038249652098089420070035172615538441431762787649400776309156144934830424041719485629955873020683899086600198969318993557356802322802525239460988185292919064828043517105653971943937231933455331373390651220537930638928456566455664468965483930503170925815969528980887210358147968077870636233286339425390120189317604399666955541567115200982978155712025788385075951071525472741117811436592422389624863308862872112202381283249059328811496540541572606316321433643587082891868660300622611126499425353820880261246781073278197982990223474858192422441407193890842891748187702773961561362767117839898858347172368257803657285987557043455484123954744926551289984649821567840096864012927884499883717361089298680083228909631331682901403288511064900651215472527669166663583154051290711112924199025969398411629728327886329641084862161153247097044424045520007079900607840769854352802141917438359801722864406051622029366247553449813178523050298887733453448766228799217873526703417522227632679850548366566850822456424370678753450143720620926055063773291780410446786776519377382624921602341468500184301557096452277690173963235567132950055620189729576885606181899548834705845770225149459199248458639084290247682139136332536688400989026927283538635345986151277401568545596081301648599615900669676017985863026669621124841612161642676053038427762764522040048397009969054031768616833141643431962916606161643667721417400942286241277905197767157393135539419304741319275327284286490395581726877213675178703090201865020958846130556415064198942700624939658571872186948256191015092257942327865838088124535200393526824164866786723821672484275053758213715293132094357343689247606182359180184534589475897091966516005771405813365284275211233070216659399445396355461772664340953254100914138696449897665124723484371222867187614787236405841290241422022819351926134437049274083578477882095770719273114673136527817584400786523502332513174353531011985602855150908071899940768755798506575891029363039816881858843657503799108194721488179651486027833212160000994178870341732634201372257762433526325708488594961961794950190061125254642368809492595482917937712913549361581447690392492514359739169028627622507854461488810943388330520340485791213380062723103374079607577519469276000387120480416402169706260009640410473802247400098178749208872391761057067758662427458292510276759932543224296572230254624329120258326575854477037154719391344775136304505561063437883539800179049608152728969150589592853271854032791065112282545340203142798421383393063239812354343702528128220330210495810249744346087939959660473497642676279253443440849744645295249715873799186631754025682765354011773118602435400520795653887731176804675822930556534162344409143558809832009559688094977950954422364311621064860635462090224130448442316127152220568502682566940172361988738521873507763834456475665250361609062638303564317009361653123012981156840976608616033133136640827319590430933640138731472664665336507786449033701371771837649506583376831728077743063373974229412814743569360366524187650761446167785527805018244275766950390190851262369679330176556812428025659865429974391523744472134384598228116714252150970256326128319812942518627999238573056546687779560479223393349596432409271842640927282963466304476204828902493985080382647258137567739274695387221079649620085609433615975680575055610870617800039553940920785735956952037043660527889083400293128669786465453188568654387865773571572935186411218459096236942759651655119558799965658518674253736420411523672637045806504314949787675956491232645322012043337352658048527086157094222725937290958018270167173596037116215051925353034031285351719516731643833975480966453799972548314701219451553676682439220102742757032321648453451480671438942608860706112881028288222783680515349136597430444290126303501810157657649610043914251551661900368342950747498445198306183114727883006974098285697769116712637281674285513556472529010818934913343139829194323214832448528517750803342487567436397250393620039891342687663186925790571336148187047411412742481602010723575462809535200721141725924882037039889393539965679758426468476088276741841849027143832418876308952851362179654405437412213642109665843032738011397793969863829882135807031125450255092208729102702620173120345198098203869872787016694848318825072772183374523964025535630515392558125424923186188534705871722173372117757624372592460545337176018255840886899342735681109738745070386490242450532733438746752776422866781309724010372673119059206043945826656706719470972201756247227345405654210319288615628719486953372922999485314851265883903469695714078657123275080289880819986087522283398774586915216938548643433128001859249722347711183397531916108043285002550356536200147177533895634623325000775414838754533312627211161139197531518539813275268631537450516737772975169733903981961676361446639788086878692522777797169460260761739021490286190182237802988064689591047074397150377468165320866158320831246082860767257243215601633288284949639680232733952471785836733678529668934979854675669039799282054922333985288785362039339388631766980074858812813281007490559280383478655160908099903197316292437067938056548253776472755048076558870219403893669525548121510618185124740619854913192837509757897963937463707723446576929110739613415259508590665777662113312434445221380373877325674712090759876079260169578986802422750548427040920420500346229352140544019059878058552857323469581134545940816935460589306083046312424488985236597807682240742959299155760415217205551612689199324333645307841725733406581470709385174833393707993563751477669819691554256119027657043251866102761076517965208046619277816611331270798916665412382511689179879742790510204227530982354799977427323845792740867125899821432798615759140564793762947271484829149017171199111104339463920512591731823113605161249721749288253100761865417366988097253384351078094533124327356574135469414008820123022946761107955913240024338833401604751364116641670884704350513496543452073403809768220999507964996427711517460205802353131516986789171463776487638274551881010425981566399950519840967934046857765757631618505161263586157465638283595858134098428606726537344416680240239994340152897415829034547304482489058525808138939900587200621025396835178709155560119157292227352668152401761309680000956066001944309278997593420053662931591933455829584683542699180964823418552144336401070449895549893034548801402854408910045244772444482284686055375610859966274510099353095352004778964382075984001826156546957043124717139525461515758454431373844618256484138670599043196687328793697342230909674475753012241838157414149179070662908822534735627356040168902626983117727547296102944011276533401667305144362913762763601663751005103240247265908245837194308182142973228130004363997416988193497982274769963341561965180186475127738146333179243313737961393906195631095197058791839183386934018237470002912585332910111761516126408662899875006196820906244274908560309281426906582817694275958359090251937369259936695808715279244841670251010057209875340621143971758994350723008765864432462542125677199524128716432465618184925170029441159069369378756799483484091675070781727660229396787229126995135080341790536253041701260103029593756004089409681589195346053668076939466196915685166487361139097265970405323235998983451255710569998645717256165727538346205102956468781545432891771049708194331994424906959301696102279267895802398560669692924480033965810341787221925552511162255318207142198706935461838956481068311565978301087888857663696657111413549347675676486745335858976836106495128220658221442717898144729258916027822764860469563684967536728481334345335689704105274070763699630320719319196044003896634032521556457891394923467700875002311438028844906152800944169620129184058635075680201718396614168953369486753803614003078261989671930990083445620655830454064940293531052451940876342957382683614013595624997676138944852509226725763383245658723103364443004582271418915506662111967035492876265938806613517486206180100961092541527887388716349999802771653875248666542955120465453985564709250083431037389862963009137367488023835286716923828322163774349448066376615298556966490276120531982729178894986812145300502617022972417363171566047828792709955583905393384409354917205617714657661646831180097118533789683747469005859480516305894221356314257060176308500445542283708125323793136777406519754258365842345863444202751971813898833949584168516635050384152951945399394503094813951548728101601740604614617261177351316316608066715263576219514560642350096632251311563626022649464520303890784132957248992242132554700933892726336529239640262010425581757661256684671390121264163444745332254322913668607564908502394498899261454092788128230005923778585761313084059677326182974287005529260347603408412098486823921840963787605473753186440600469023116039079827129231977026379499409064277562350982068138628608248119652960425832082198530496011314790733607935435576086799594822881521306280335592114517232000042210516726437818066560036003871158341750888326847428927743495196311767292635018314091430274530095618073988405970433709353065639381583018866520106897438312848219615188840996762345139285495347792200786834423647586727765084953344797025424290774855802563815848681801030185208867764618258690783863241433558815172679389238660918369104117329646299469234594238622616405581704437683251150294750757940570445667992362283545040559000395520221323258006047485484173568917743020397527771118855727719259843663175903395126023207597883959852633180705991246767895091100563545027028632421894034246447083299331181697576087563498303806328954188194344538175862936118973047845946084196610289127951716026473016881584807935870098035501288580244375328675757010423383657604971521044548371406138938268333617339814311343503248553204526837428103136644508002374122186813659539839866465458777146219257828190340889171710368340140664920014592437340208170875935862828394911122431345240226938302097019741508173561256895256115868558733178832893037675443544636085108262133090379091291533490817591860651785245008398059379193236120413815755983156059420521852279649384198920864306130301477449184482716284830856427752434175599223287234999889017941317422538331636323395248354997150570451357450421294622948170834488177851214646723541149091419624872838027898213925636466724948281061216353423316489151267411005830696754856324322455628591706287364765909688616542089189452298774899787413679043509730715334973102577200443659693744831606990392197875159656041510930404831383874287560464365163202160410086560121634891326209836858148378416593869783657361881027800957113083067914631087678282180105190068063135352802703598613677931214754907887499000747353433099822686622639598178091893400852553613304801414768791089083532895849406314209875008619959061004095211365223537648739289126168973878557803630770750708961154223952852556547750507082669577535133360799114974971665247591247861865974443997799474162328579979124043516180337135626906930814809360850917085446886810313597499568043830900465287366627688058653410346306378385746667322655528008379287641928429139864624273510344514732191165970105389928573745505389909759635507738357144660492384186571662210420190114160769072463975189262117697205716366408708437622424614332013430793723295953058008026759530219785328883620005734816918838395193428454276224257777301106908390092281460814544153718035497267137815824197920519915213943394181960490292431380329493225775377960793198262758350796302683171645088662957943776913874193546091536721464378800279421371611993501174500185406023108799531417851050965869170264479394469612398812481825732616017187696747482492000181519388431888020812702303269874276469991312843887680692594091863347639518919807187493199170114792396419307167938143494162337501510809102774439916886658071618878186968605856020703023457078162623145497251362676223753988983358284153205066020840081533130823816417165445642063038523013231781887589394605162764639913371103331024653932114410914839389213028148588978415204994049926183166758652099471325435068949879679567651816499412679552141802902522190945244302809975906961086806962834612448961598270934434108087696555918797381105021731267918425817307019993848809425661943575179313756760786898111697714647051562306092756040832521189229181595039761004921228589319427827484303837634662750421148488107701409449408204600403715873050140168627549359893848887815073071922017720436248933234706237882870513649078344766568860291288119858436332286683295526750898862207465293221458967658653842924569814794474154492968308340333624387880531326034299751603501121730950577190478987621797840483173879866271221880947276282703958976018595472313405131521069901634854171306746229184130985989464204964211598019768494093095685231329787341432644315007848174498635922445229586391241242756470627267467657438626322616960387803781397642759548142036170685527484392996463338543446160163369152704317454281368966447078929340936327418215362932089279949063051940048627204997619540944954871312229569182851925759761269767894779966628325374519594962480853349229757007395100344983737326174019870904958545263193279353596516192532189765930886029736679215250815742225529316666888783967238604445729916506978829288448455332966451155053333927198789575156965101185211563519102373392838168552045381954970378054067522668328112602001755451530147742670350757824870617589908861115902356373851215990776097705884897975385099290333796216880852854872706774242525483681660094918405810990757974050979179748823725675848447407137393015904965566345539506682492351150678065301666332740302207798698986432002470710077958073532122350377744066842807142880775910659607137596176522894904752419304026147149245712291741797746566565969562582495493444621636109650033127974464786545869908611219519439815965775204960166797238398610183218273886508128854685006871600859462293584534636596381411288020014849128359059834219486734224905249738534008758056212403781133866051312605445440520148024647047188530010733459780328939296141952531904046250191871171291048562938099296219455141298976785660606058396960901047405479976903610448906453997824246208896085643910411077525791131393694985339854130581161009233161465930006744809150691418202316081774675274809882900542739562682831950142333216271912918652708716814541440961700025969905103170522140297386224422873703042886906707452206023126145196248719309882370010736421060122324435297730669867961238654979965659182617704167942933755629505961306733276583453124357286545702185734496092639704794097160649030003331100870035201553153445204913415312123651599138250330574519584429527729831765625264916491919490444691884287264067242199634424395842113934925946887395362744114999604382517472740717064039792642832889856852616411319446421612360608111903842295210341054539499622570418822661452840458023044840367653808053799088596225639976289177013364564006908256442317179564172752803108196610673054146382264197309650987079486085786973656870432211525613081123085829588989009018734745850005455768417283866573114810589917101753442923477428354084065409937520808979164974821513979953169650000985176666543603906889299806571991499753317763636191842278449743460012012073250387045057151999668609764059313260358326930930663651342336593501860890092817597585080579150045180041723773691361647871094558259496890442706185873983648855166538080095421736955310725174129687651064991962644900288745542855545818639004598868874407799919505694336123234639089065301819213542841944287853252439667292436448398273271817250481365265827697913708512440371492632398988623066173744193728936196127142327524383106364698773110077937324912876068259358817034898794035683836057745221217660707408160374590622072104767106225002833920168042697572719884451543725122010294437331381986058089866948163085040932059094214672251424078295128194732991229985188644808334685477478728659427174157959474417458792131289216924166021819479109702807649905406008793198903407693233335434825726158738479742453897687886244080784417826444277893575198770413020351143157263211268576359695697787163843567658188310442541057197653722742239539392690019440104341615534743426440968340071670581454487425399049393611652919876655551267441638189898696870683142079858496192287709018082415573393026574737841786640559202462285886041375975599327263895878120779923808020016200839619574446993253599444521797513723426653827042147169116944096277591548841068174355547288408387449935357607138640245501556706366699575875356103088778512894406074321299718827940273048139147568814114715707890948114027179888456114758969512360945700481819716402327208155821777655432335878942696369323103300136978191086084936469313999844103403869832085441175797090077299606473056813853059810608387547377622781086027107727315235045579047332690677573270128022065659813516793323436662854662840176020206930154090239742462242999199931733250446694999713940539394622415949022385637774786037324157364623875778647283244419352602866667130227696960076047389070308071352733263996566099205610260075052619601429716548520648384203433021966066379075570814967881869924331897321330114003069393040913080065700095277503430604686933669571111910177323377546951184588495941232100175205927550516240512741841621720976856820529118035109281511917538193759929870646014557936681642447620048439793596474473745411607237353060978019376291125511360928222326432295626526422592379996896508683180633622313431538041631058847584685835958309184890499597428638341505620474498792026049741567373683546626731786438826592218809526856413976556442813271648972400077168554975621514727238728543716791110987274859756523839263578315847310940916313664598195117801827225131174896142904119134644257891189272172334524560138395339323965858554793125841866547313291277671397785870845220544646952175519555502258852192859793925002545572210391175905083354754762113033808178482856508874953687154919987109030320913236567709457793655239910939386216624478048349402083414761449409987150880488181492908857606826660410809300541944591167323141488615108184118738818279595112069142050956618755267143108372803029129471427094432386417393961730582262094049456475285097683549383849923848923566746601823807165827374348657411252943260901641216382051834312766987863327883589278191113404065732922712866173499375670445490638184509702442419665896790946674444886792715651271228692665138104119223594503250087485736777871200176359737261982995950725875786445005561144611383850819511361786287647737173295947630794574432503426424176400191631925734132292745082523875080612436449161073777355400253707689081599090308397036135623615400100850552967732578662165598172387049867457152719715110624576296181648710773926516327077565153237238326348799685037372985914419895660077027562123510478402646391713063654426929172631123785142811338300820698667640307315965755373260476216805695950641143653813019617390043014724294275665063760556487952924051287682055348533433797684779781408659650545928556044575140567527550018527843635898438386338106318074375260077379961629081230886451743801651569151754098879254138700602804668303414672874634117902159015913477476098842964070223566285725089941313382774563571948415455953172907514109467055020003241811090758262044153656294069357248797817064148810692395973198841631116712194349623068654394862967156584446677359935398280680933093763837177276310327180182828059600875264926781163123454089010158913958604457016546584908164036205023801672379675384882894457097175852542035652984834558544391926459926114559048051430026591053962138952191905005038376034027242401470738618659383412791017296402811250383289940978509898138075043792522105995582045873553735741457411674868503106690001219533232518570974052180601079303115692838482129344746632064840122813524327941564712155399416679402631241441076842665458197283817590307448924784442748481714105463676558005527443116079787328381436171128568117038815824879160949060290424690820343439154556783311652597414619532872492297393522303867522117446032071911312985792648021590245015767224699106259359169789815619793628864049102664643355050025538219171102171992456360642578030081928963557761339260436251575913711198415728393626007495536096011817973470967682895455850692141579665644659208678081252695545827084557870209331432354317111386380526880248878062147385093699309791225748881498329482632281528998878568304490500589976982211464722767720083596225357382056848192635746144094911247099410079528273698610792206394304940284412075551969244662688441093506306833703225845851034276577936996442680116503355418846438858074119286215026745855214903612638316854468506355597733264794004072751750176771625425587369987036413021502970911156746646540526825929184189139260988488359334037978848207540260010141952293657558321581920467840863007105182477723329622525410227217308449795094146394917610940023901813727649115542183115116347369617101750893327181145652589357542102102174561946392683596478200248382613557408376562403534021795847094005088568263539595823351507026485880935950537009466096511776130592260410443228309906471566055099444341711136974414453473551854621428148298382152945836950361593153422634581555572740645242314055588398005488305572430525327376617296984790043079221506289560018388278097602377204666869649744101534881545515593175857573625993584245714901182570143183852087744433233777885084566589959199027133398939578705920149027783492270235101773155940832463726648123477263345537746211239618340100446830967277933915285750669493578836547377559272292981484651317052337969223501489872015454290327364316298698553386461913466002991864549786550530133255320965047064311245951970664581437177604087565046448020456597753116959739075841934654826968464133878315770750709474374681847934662493548620600316980853504170702398561423554487414233726479796448456004688416409001171285118583828099354329725108192777801155834537807659628137416360649825961592138239465121967204972589329443318070576353436494845887212907831232020400997636520096265194323743318305711360990439148852179125300204285250328076551832276271592799265394905383028521005960763260466037226554893622779627344839031955396669704253034120841836747187477912775227848840416016094644631057659295811228255755265301656206818154364345314051350329892132230514006707018759528511300571963902263764671740460094989583183159409794591791541511252927569841421153113488262462893282395301898510422384220219394818602864930818804229120422139797286637377368745939363387261582716638410690224572874187260512095035784733564888340222055243749139118509867231792392926158161658326915127130210753622119933159960522698592056707609416584769079522305598968594332456223713120236159700038039745855766165384815633167468310533432398308502979387574052001465665338517437276421104204589041100077752927763680623005279771769612567890512520483570119513517474687248600115871284361281477065377530655094593422993062684795472948243799570521479393949126460360470168612091381971531253581869009017840179347156880448778458263716284295246793683075600085365464480603352501491336186068448585427923328869272133175084277376694332925785490345075252297895789691330551588079895168090607767916255192745839300796922232507425785505572679167292299286093832616318522572015124645149907600987235627206333121220990209927146354782209225923493224230626034319343897154731816415715503340652179842651145827644530411883612043524808936310292120565223339760095123733332949074281721257972755150469040280901387559510805783214065973679809806342019499180767875932187591042882571451542661290567428214333161989874728512899916773000510723224290524045865424632685889770491074336608770123410939305370823150555932519951220341727807848282647438904142335372599752654484529315229136815594593640077125205917242420688556566928591393833606062446979798604371285836865565741360710304150743881220474227888711756557680709919382236808099990189591522219558840254603642917158789840858812038153539540336989097042898191001727201234155493677198778285225597138594874334165900914116284272292075516957697790157028067609497223011163044671172390688500957504038931694417271665371958195160178053861210030037875815250901190791712107708717127440515728580068438075995681654876989590663619546551912368640669769962020459004180493093051194395684239097181778204530000246001784329649938608114698346426858429212754075387619238529318883900721128348831847226517534990270690905557991490338659767876281620430833140648513332598047903475581893595890077652387380710426911676059507564922054072269749546593552135043000526894775051331356243357069897948713635555298125172926837464918616046032218227857102009791573404708569693852475218685805846102495576820992477355830530017867910651994379885139640652150293790261558950086771710342391127388056633026427766391633081973154760796942520288522151261326564928591854105722451112424993005490950054756868193459600797353904083613156961859596203628100614526556408397261533993932331356656081978480502333384950674919334029620697136328759229530885992272815632945518296361388475619889787299001652060661028510150474831002827231313016916643177612238789159554288451132653895783876447960299379906246571208174859862747645637186570677459305918335080264029254585283393980609912185505397480278176846145130152386871356037884792134546308172282686224514856479224241922121605161144640226929482993021500282488536488275463029512783573726474090919329181903531745253244347577640920273746993720288837474298713735822864809155841869861472704617346882928734006985202375782423593761846454666286288998787076578573161908318028077759367724562774789421231852743732502387134935701186455897858044904194329161766032138822770006349712952150500236503002343609441163451103543773459593901137703259365417732459577796835956216866709017880579488815747405825029214468307892584914030147542395355304023659167025014530443075250123634235042920069755541390823359253571570927291311093204136244181860181065294834525784788599322097882350471301546440414852666015225784333508571526793141051604200404017404261021070783953602111242159239902159207287921812574660147421027120035088132615709209832345008203365588239403134464227741045625709435125213027135811724412075099737851141561195503611184540363336709551676387605105312532640188790040517885950997614820683190609378252606875071695423146047914162125075892966516254722961290951280920784664194639726139717451000731674258885845556547178839639380142910686307353288305962705945468567255429252582147374674044967894125719127194432773399081036957652760952785230305453580310084726348960645126160956305595616254289711225299946264742812398434404900956722431689070164796471154019938008092210080229481506284046285567683416941836167633715255632620038109042828463831985791663227454363027955456877007112411208890682593226171156198780234424787740837475960344400610604274756024827043747814377217402806917762929673363843779417305418123120745744982296586310054743921921571495478233194780325156356621645829268648840665364011227955932488068699772443863627367553424006614549917506754589094323355883185496098369249647125314580393907659686477308057600691424935360270462472984246840054615828416657473708193077072599413432215350671760102260684012223105808406051956798747657638178500244138673718657277981727856322228795642062676892037284942595371461286982755877001520789057933023381465588945276945232172006407743461753368055428445007518842943097977885994303819963871023525510383143922573708040578104804618775731239407535067107101045307440431907735642336590104775834044493509389681108408169738656916377566144565812045082985703893273656751678282853956326428390440626948716310788057970579175161147615710438057487482197886221808034956328361009054467147371982308492640628338643480377745141830937044451838835765869108050263822575043441310082401520969639645902114937846607354626670500983370413968272353474660707632212946898815768413417679669381617635985195523511089446175472954695712083461955386591070803139489588636337908589710672139309660197980245057024322895002580746471192286091069776174552861670235848755306369215334432568413974982035609167154487821078749287547025308884101145798902963841621192899904544451342939051186815170756116114668768390799610863205675419391344257121107578906917238969911957157465565944340883414724133591837823321047681491586415825526531889328468266222037676370271382668580502670411660377770373035835768071500186684739930794110575192786263770611572847317459212039365005424225331673352133657689952371844968132845814134575872653108047097516971195910241460644343821172338493204505628135304134694649312797913040936894798249045817570768559701826118710197029382311902337884425288783734802354837075204299761144401273170696145962140159743463808422780631464661633500876357230719416140402158869320323471999296437707972714063707127755532445817315336505381668404738323785090084693000899069652817951751739769865955428014073910644795968855675988191334655763957566156899433613111205397095306260109253707257708341699417371407568588955550365685450684644993086380150200305945057795269459839155713988850311295194261684689658129223810176369339794141096292362170850462638198888740214447268054250716234863799207493520365277895427982080012681553007023725913667865931898692150232407483548980370701602018282537233230853705908535827660871485518900244403629963897824125319213578386377409772206827241953532903998342373341111549785833616868102615622842856720219111374585491452380374588255525291069999444012684937666193214749478789087157983850381952151461166805340934548039206956620440177658083924846272951967131570462675432471908102434629848293439463616198171268893660838769300285564084012413751021402614858945963968302438501647067429171443726053629424754802578155000019219518257688128905746219062971247800039499192457379506213568454261906681063631615582816158133353361411948516068059907991102557597361236162950990277240727196366476607539122457327839096549889358704551538231019281260040883449721780732547779536863417910086463479779589778271404169275249976450654595168881661420836906295673338400232766748622190500277442566667455506670434239950880166427109849395587241040310691127661827933086997138934314551177559169456912188799380300429961016430193695792017247301141208038184260787516847089892314819059490439904801859708874063531685019901289778499096212367231832780752747824634141203451790181273579341177190321930034929261652117773272067164852505418345978104706253366474074585357183544200459276984311534523628527199692248872756580901424383424478844166787271695886414616579096061484057540915220104597338833585362980869816893245769489248239189868191528803114147540421207050541554979244990402286364404572084013857996754691057849591986450097608464445071356570127538854119319222655169680613433469881010099350434641200276717341860447988013550080762662086894518947126006486498107467744019606487629698539068267664533732110755196334361437833946103367198890469977617448045044089490786379291251015445670406898992298844479018756232747580536418248891682533559441979916965104136327555706464552575237657522654544609327348795233034767587870922496979694213588443117119218873811406210862993571703824472003303821680222080231548585636781176172420327698427301153196267806264705815516034718195865908254762353976149160826271992440513713282513145572621390916646850763949398608445467476854604478204483570688221573267462964403815913585590677315662569634465866518626815469592360857631841768039492539704267811273710569660811929697976901970584659754363172468882278311323530810688390086431841179242007872291628363276525874623760374000252441485219598525547668628378897978924012139183494158197972475619864677133841619965272015495361538929779441378851264803460651569972071045572907764360264674203982609072145285055685354118888710064138760220140353008739790480815175773501443314268340965133562255800659641312037953854289306519515800783266526456517448474000564469476930282015212265323999557045450864578123790634146545199119611705636976574669875148781384339750278965356249503953141592499225618387543004852228184020975207338204565561679689936808169096837140775451495229936062138283294699594575365497670814731784207879869318032169545166771621253908163677341788316750650372293770781765616306465340226673998895494109826756294293863465218066617364966992234211598851146006660074759012686165827755727132086428162240392731845477911977812339795851949494628919448570258991678686444698005795754919214104387067025631255944241252045136539298765470930056204387823668152415946979760949133993143556762671603340097774406143967065819020221422391395971619736622249192346621570165483516650333103947218601425327740609200038553366041694165033668730226969359332024715081189837204697668963020656564947330089061745181931223299358784565923805773237220401134968517004793906765588585315365336435187587032001392042565813120445191982605368695434768954017018855363008325617819073092147385189719465802509774149481880508315601764488516622579827235487375290272998497218094856681898738748839502098915727483573789003573870543057209605721787173088934433322634839082970021529803154083980772363195784001927260649675093252590477708258650883526444092909258618273199851613351143597831950679133715158671429642479243924524827760122523842999240334446726847204980684522924132466859079619589151713351173538528062302033612026807019219975184687449329576024724640401099607946959063464577064283164718424046710462871285991411525128242724681255580571597697224321504705421379072636602016054371465883193193509874910443247482831823259038754726055766945001180957598829584807422381372098023059489661956962077033060653974243774549187170441504753356758795555670199567276028017891924831336197692673762828541041684465974978492439207709328130962500722099725429609091979837112338457156120261421672724558042479267935751515084771122256005097399407535226149063743621140233304114422049008551802537147256894822135753777778727561553827324298000397653764112260309515215398158013685839386249952639825475537922539868219583146877572210689462349100930301949582157073424923963841661395456306517165271969978289269810289855743457383000285737359868166688855174829253990444327069611985786351252899530807223918298811474048371046135173553650315020026287073654570015285442202563676873284304161926460828366680283204029229963635909035157278561555146834279435502365921146861136300375606511572003543869918162510691179648003692076961916328218326544927682235980653031265245768112632203410198666519411164427142273138347692005174947847295772091804124523679893999015060678069528962092416558634957424254533358042271153599088222674377158482008284147928520988039819641337573809960887793579276153301590630156437962178873443766930056385230489947017085173534667741457723831270644709927043144828279166744754633050823695122428119792005464265192940205701313295431259358671114256456972003811507809825180349020702536156311563659377113798055695927993051261286231127556056550057889434590460651128560050054724955386701213266640886201829475736934567407934110356832075791646402671295355053030940593454990694137396931565278775937838903284284736628795769444659548250271375241540097508211321625354580170183105792726431336434559153025253741422838688811916364338533871114560189054315805353406056676484002939607502508245988557193696983079078382709574242012857978723427362083665570870213594484598104160326961286573998263050772664646754391994048666027832286462327795026926015789808474635286931978053731087005308589006365665051821732977354655247013847459118812903327295052731373229769066096021208324945664953770377915602052044456787741707808672521021477295745348362953727642172004481470088767617089502355339425832316192129524711301598955393159408527876507774467807209805797044297845028683636344155974779887202039385633810860761202329349428230950967570820490968910559634468568310623741520063407973617648062934901492739407442080524627783748746435385987378497591847288818352725227654328093934862892120798785047796290429966879290046316919033509767027743103368619249045427985281454450457651327922409248640095419622862562516814420766979698885249204113532861404465885184072279716882043874917772897976107657548488080309308961833499931626642507010101954227691064612081515435071323758281655663120295697942088598305054215513861404318352827202047209319903753216149249797021064686946394897036932217162131913595292749639152468138090834366306919803371229089844068875822082994540313011020203086966588054418507628150404964227467122199259780288261478514581895059806366123734120201938483775238146809765253702076557033060493287232254625864152245808806281123954528247421274234576379463882505972765035740670991637105503107623533476295490102740054859140264752455947419505776774738193408525134085339943326140048787400130348835348433324977937101565081400545547305554713692181896072922162503189122319552131141290716246756996893935894037237647989376974313161582096223114556328782849256458687652660984068176731285229500312312750966241728983580906638633941300241515735183639218423511366586378560599953088321022163482594310220581716298321482664781129920445807693741685206969816367973488815674031984987283338163299042314322597806982690784898885406188005359255111809213974079366781719721200511866070509678512393622155050713550331715565055345381619273362509385999883360604450991639129885676108784450545569709077543286264568230170199812336331613235395550078095381332545444709517432659437765670356273156939102678918760024772063573947052515210413243594336339937033579725976258299504357683802286545674187164187342655759085081973328081428666406522827892634221634015091738158786287894318712949322637581687644250188034815888146223641415339493111574321792017039864215462545986048837070460522272836154250700947613355352891572815930695277899747260307715611621026324908315650325669827162370482054690590372992851128647004614636855642961869553219094988951729030753969084670820944227629082727509744004781616804634098829842260265053339592250602082175166363935178296110726840790502310021409635812217894016180737193319275578455312580456093126821242150790443093127660829202136312466900041267046177045505182101495048170838729638609986024594056969799305065596281105719977700215078474903867825942063170094163973997929336934673842267772654947366970034696133408976307957993028879638634707051981221885974104780651896586246228710149311966246777632653320526378020982867300347803960972423599476405959658931573477443587798519075806826682999429422784794623190173273446572773936297510626377377394002304356772750476925273987707242613973507122660999986344541978408239795541354688765435855750160120258483441362305567190185726126994662266600224556705458304135775106794801823635520590110580400614829328726272811613409008791025307874015958144834013896193425465885085817195178494391427589196574094711613556276449116973078447725674971936885645420533632305274415427543528006250594695232633084580355251042511958727411568056651478261653663149531969379246707451416160489780748536553111163446926616468911410430048602259893562726469649111380855418199474333573879295910274971263796393779037361478711081158635969033366826123383554437170946575657711052533755780446646525106256646688014961201256093308716285267887945141931202553844718343832681090675854923660241862633916414230969036223725939450845866199035006755135232548801371495970119279107874875670482892169314502375217093825904903591051292818049110956181737974768938735446466454547407782654573554731710451872085918578266313935762155826115953554396624912259507175704492953450286331859949626953318977258219338098996969658353352946009666652855081448910171988013736165451405933551224950797925375892306091722654736338195165061327284593038143290739605596081701638413970707874692759219933398062087431092633603624842403576417591449221516615257059965905363805492704587791816434374270812012928395233911732901314642763000279571198669242528308568544659523427939379512435528607870455494630916051294931272044666744952256525883392779876293720608735017918906643919549670905854642900540649230071646239408582091544344251362424201144602521505323230738798931341744543121895505698288537047116441022180116494899720849031103489622024921036710119854867650363755841806240045519679476420622251240811506470965243300585007659945781192506931700821268455574686449249006769356602500287576912172017699601030746404904830328633635694680054560909674109006754584687072470438922826009038428490272349900584320283075272219528915631201163040933965861292474035615000092703052531991673100879076196704015741324674531712160566651875019886714525513560489725098864804040503786406341477124911085656026914722554065125095572594332121071322958312048774897445283994788233893018889046735857107921213533455490245402550763171033121702565953631907285599706059924559454254894726838025947524047716995027792490945479076277415036013686041996166590938051645399077144095216150888505478817342322868149996497953187414144161982119439794246749735898238767205885809502125643976362157896264997577425600132818481442511978709496843267519753428595923507609541832725133549887551886363751109882906912958756037332263193828994695042591319749784505174141187643805830089840630784816012619223558289396879634282583272579608231171900844609220736522834961186688059819637316890206138651681447641967389152009447182620593786229796035199625495439084356789995526934734307135743320238456603398590153959236308374454664723743665891791035975623481998482427991452602840324627101381269994996241011604524069066936874040100256136750581875065171664518722943239092475534346179882991030209365040063045434623927116420808228289060965367151692064883290936198666728212247365885056676188424168756010795690850707293198809252860211828723608738406486774645624671594145474718335550075565241739574940111077778926679938834007870426138268917397329929622953143551738199870951654907801285168928691247585721941841222490633090956034124368333163903291710981011138270430000893100781725326026093496491965484160150327545778344102726599536246851472120384656176373870734579959441164907290798452480526150667000752686079336222662774260831483130941685785133089969545758410313231806230524797209794482031745297138247012934929282156226383718050131665936045192244633142801179118763262006127183418816510602269193873766119318618863779975453899476003466884010311854693959027427572004573561245608836419195208197157887348797799963195822805698518332830844179554368565025036359942044207920297351854621864702153229479168924166611135960697220491308176274102764545872617446614838845929132425978283467129302643297572078550190273092479975785310373194397694389424272778280150579396499520282043269979572293804331430457342019521037170945642007795132406963124374858045022050460366756030188431746588599144311124168639497898255283117205401518625681128432909508958710050361082674713575324132720680813727535030737050921482364511596890629508065033261940076914754872416883030815888228723110370241752074394787713373879136594982804114836013637640882732784089459028088477520856478074363470816843442281573721975510413109489181682323651757545052503991493012915254972544732400572772714944183474837976057601395527031140359371417681289459338541157224104277965828708980683339297466391423569073170687670231728948185819059304983443861690293641272034630897491284235000102308894296914552704366216379659450826849417806660338467356222117520934687018242720212254561614770083077110546862951424365107559848686615103753105057970860429085359542959224553429342851609935523157955152849227796970439276843048139131540150245977453113588167532529147294500113727695450729212185098276301624253253886608520589141756271469729463544908606643783874787128181950179698285894262950748142992895152805926291557530934352339612505354872472848783544448065844081639658367495217822070925578034431302137813135259996861880295251967196909177351253703769072865393450456650405566921867473225641499158396062691440660386746548714034080415464224791923271557310114227318539079479677951717372146395410967395224965300564499903073051163994755729275919319911907999785095864823265667002129380491890896289939399430305299415404336570542320231854941095647143233488715689077511203205366977733900409362689949087610159394977083414942928727474153447561388088775641736501036043879702672444896854159841946692583330501431128153169476967690287815658790164351387996103395378183132388240525209084856403286859970394633511877793958513832773146307197265416131970119718042701297378610385982305043264138697652771811651354291458522717109348528007597000401509990826934305396695069600613454338352794019945865705354713755707842459694187222296957972139000635392514321146625286552748088239456895311990417146655944045626048517175503575444955493504784586076317730656074370814486975148610183718911478848197284163944940897565462812064591282273586074035399973594511464971969041221560529699490420653944910948772438040066415414800796923769765922235704599390073448344678471374073812583660997248624731828622148429277765823319849822438702492459059614528098610110090003054867498315378633053875811278638979266860175670550845268910406612944800686711361469168278760381591297092003680991730050411270590634178506018425005415291096956518968468419938506732720176283177969858257417912406348913449009891677962823819984235290897640341755977067543355923821569968858570526624686439421908238688478135139551725266551871269901571956159389805729862176332127686163380860965650681762553389110826283407037955732498472522322923069860971972749108477939592397808136144068113744965049943199281802913809388278733637797846223310513732217527210170933211138070161299405053947460842416890535887831730407591370834505868822193261190630191513167209014237816996974298168621888612129008686713765274627220622276217150689632034421863064777273571147941745434665101067635976390656146950908320590018857945978194265387143605979264701757844505039688433819650712761355373609765537455375861485862990333528816418701482558769692468485389949383915534887321538841940574878407486797222162290815093370240709490667332990430303330855450580168148147195768200680075806803000440525851792327121197794163591751012410095158447031769595324159730620571689190398178203735001075659767459229467496214147483613673437745333897714918630843458563170364827032421499814508161468473440445308177085448254699749959942682954567891216491907261543066551030809859598097505656357615780933644333993214456926426480496509518827752930105325708449481183172105357008441895428926839276482874235830747424064737414758435524499200654402973777407545127417469705412729376809046113126891280200727804504654003335950899316017588639343773961381962886429139586490646492951255579426763884125297205243612588387242104492392143702268228740520140995320606448093917617144152023424257486522772832697426557353564614287100951364738262311421402427516705167987988443979192333905110731565921378687447548943798606677932924574279732918059334803734929333433213131561901871759658734645485605356806246751390826638392030566966032766196594145478387427616693186000894375629222459004367960687296241142175783764422111895466430557447153405481598577831252980144578343003029684703940180445527447294270853531521147114758269180687523822895063226350795795421211090817685491455114874745358639647829353923925382736089004761338148629477434750980231173590690653202992743073600703365427580614085635030556090226935000489328892961024125040204871852416550799782202510982439438306429532830367158911303769494177000207305150172589262637687559735447350529065056441998671130093909946210128782602373920994373347437244982316347893829350937237704199707645373597554399010266803915456285360133556742911555013752222188509098259938205684576223134551000045095895857924405934221734517447736168296340703378264314026783982054963495073362943858058188859670165914747684589518850979119966273005782866685899302267432844982661594312114018017212143034724325098218274292390351682985900523505841387614422967990671018549417702019862088568416495881448103666093665944708688882416954755477868398572411156481473956031033702414206026738069954766808938284155742845408096444258714198713675239576730409117330554711586580329087511019087632565446114843828326665777511405091329916488742130001471579811341508644375597385815986715549850056876136311036721988192687460381319324527903091791027783588388936403597125426303722152598186163923524176179072355095810169754887266465618379075639759829973536115578374811087988356844906170174493202513287471415920531462919115734831821880052651575580818379280251265922499446638248351537219776686762097280731528766242695318866648844700578289243109948081764970973814029188588079128777116667875901246603115101860671792748841809090142932266645757841779377904494940249195037953286405999982939734963323391332151841746675421383315550693578544912018213136929190039278239376422316147093918173508649287466396994834915912069251079349155474885062801871961897055481936916151793410466972345336954877970336589861095149699984148635323704675736616339560721883472750993481295142094825507018554584606736248384373762054496325882022666578286495572249412174564519083629938973498598646425386692008942965768247395339649267837499728353980040201478770095703951696172974680525921227266610622458502973782129297507054744632838303666000944108304347031783579502024724397456724919609395657443149975344138473151276073730563564817985104451845909551695490040172532617156973688965139615629936295145863004921986220961576335230202334036667211072123402970255158128217912344638613041078796679396441068203430436271885949069897034026712887699745374744380040572360130288274724594275902086933085747703629040604913484580714450153521675029840989099185000603671281115047359147466342446474246573510480268554273122313893905850732425614799174783855605494029244900902887752251241189193353906697655764012600573675848210804812827412436131586758881353686506371548749301156565272252433605434987020324749578457289645186829182837922998022578794728319671722297011774170612438730375100451335723440356159484430962229673905258940612540153666309487015729280307695791638661504298978132708051237291941218464620057736202957992606189004866705059163513726353324158105748883442108579887756798961207100982219614577813076917995680157313778015076235861501276542458911841402463406206693516200441753865631651062389029166741509997552453264212445367156305200427803270285456274770049426532623810018942021997810945415722160857316800581007224055472455392264346783391638282573635544876458062459252315960159750205678349893977567599252936437106965466578408125123523650682746846081437551766292330651634392243379932128732727982760428028003498424186629123751765462655083477396718197476847706286298730788287350707794331348829808234885949097739546839496873503242343606875678107196150134028861442129927738309711826355760626126807739033096738888447715212602476079317181906046746698393928681914990775199313205754369688627694906724990942899391711819903865197853953608360331756886192929495628010993799007364075915285901530799413807518996893001247175469047238732836338079218497651181088077204454917009533789921819063511558106242151144586665588009924895630499680322147650382598139428836358265712690865220310376064196761381033773916076833174418150161623578848962046658403021590913254970317756526847583182829712139788947498237198324153967985801419987069549751612095012616718614288665390247656710406549363406444742699180980595924308325770261457921476561087000045800236001661394769810801329702400317827740838810015172249232341340667405414797675114885936766812195743828059284727596245634354969184550060530054440776656976638458400490632908601138054107015301132669802283378125926841958051174413442530725743101760670116411559498191083760177731304821229602530061365908154357766978325761771070499273017114916306624309152699410047879764216049470658338655413427741220091555655237686801210525162958126638633326116664229489495216413784439967430171058081331044813096231351140834786776914686630181696850667329026175030889338714147251205835852388114803909896217394519206079572500300594810715198879234542105943966518359245784053578371247303346823639616202614388446944148693924343292633857795890161292556565142365835579264631085811940187220070555348495447032961923650292954232850689231049226487030194567922089419811155612143457173960101812718188140258722352622405878962484763101053105726724894597915700155617251936129065421022868272534395419174024325514186187958181158649435540255310806699858465053882739708972491088097951202002028400116006003318261822443229744284074845528512228132705734254071718422279414472258693977237717903917538281722516393248090060735539416755180384085293283375270116287276295590481364558177941807121980566822364448179719398706826577406851202417097910608570274167575817158078629852894486253863036801812205561807631428174115728410667671971600448908580900704264983368168454873204309283959283179029469904441929505347925045353102880759460393466079770320295240266538775361475910030813202195244912530228944767950746167029989594569721411292434828417590088262219278594797876577080754347884409292039199073246176527490525766087995011569635263736131085867450379123550979573487295878227999837253287362684277260882498049124284808364043166091216424936149873487504285538693534179822351347979659925559121871984593748278007968336161153336187708617870726406557210027835925881242242398353318146063789632268386880414543174960381251951233835355892875510924382511534975407751164416426016069284224513663751453635041698397127596142942029851764260719571423532049300226753732153178135118187680464423296019958935784198760677846949532328301136471598220218795911978760907781099304619355097683552343869951352686076183330355801903612171319449137500006691429463977135354413810180415003720327084378186764628887064451240799850713587364468611804277978858262778058737530291331565090644077083247955314216890874941531857194786864434094061442548518024337498815143132536789911841319496323848599141224784480796492737969219902633870043757865691832972246705261491030191428689949743320531041740768017887653573676458306747227713426104514680830733362923412901385506074870872147574531325144772265800801954556113832138896251605578372403970724251709480590551184214742219945283062705724925781318042845910915961194999298645560719409497173734939778215288663428408913753033954890159416197337213705228072870253150581631173691865631800717537496714717325064327463281401441921464476094012553331432297694050930893199230891919961682767767401979947786193505098798701789242126659418402797184903828148021680108694519600754135189184666546163882091659512600496837797825067290829040953209861561050657475027889142913148381266037571912200570743195808009925274939660432372086374508226309753696605305705195685818611264448517890716508589061108429075758187520074635539194586139256518128585404537508430041433340904623510637791105502077152219959429739957523901853193324348926461097100712497617493655197356281223623449637827559192815308091468492789669389130782635223623422467616746133246661414477355321787982504352777067687645983508313580446470756443267383766729360828806609410348278117997320843907888172066524224327541028239521703247071914280637271675185926427266503751424270153674412963257265281109211485660513303682313317114400102906856137437618138942441364451779455541854391813662517701177314154175625222794983173910684372888172585199042830184253429962310230100401465488251243919611701820201340000830375553086958890249095851606439792092950280879164624501031639126203212242725383828665552959923689953111877659791562334501998151363695324432441242865391422971718843593835448839471991138214582249155145762289993372116814772036158195241345790963413546133959363169452261295376241597470207654581034160904847083657186482276969749717508406306659553990827289687784674430405066571803308199554083286974279261610858293929767534934507458388966039973832796468570716852192020474815824414450063473407539740652786975776912418113645976434288941147665903876544309309038298294462640034869946615305100965157812444097323996027820978230571316510970656736297704543644810893370368174574844602290171099281293041814916219900989690509026150405979849303530625477777792411182534605639973887735289494142875041484804222783533373172504680868694338313338602187736185681027753082001489130213041165190243165878438817937833554226513721754402182007899131726748468479172511232669005155446818787211153278450313861343403116351271832876692616792475341801681575241597618612725826166805289288655742946669862547100760129312043912978080200067213913526987519544632294163934895664979177644590247301454535789011155724092642947036477933963768472275623633326076161887234806049986909713969164309589719047893767379434359991922120794134456931059340655745738025814663123827807699905144323460913149532798895359055354344802740623853701499457781615461541085112091143565720030762905383579888943471942207839173375821844864646303212955571654237366160698216158051859127078132202966442229093483559194410074894512639277417259703822929014401721545509637568490292696235827322545809974595174391099828718770903861335147515643990989004777898561243376269842196637576696663900913708923234998266500726784518335148315800017512837408103529392475594305437644461467848599716337243596138201939423339033374485956963029662156855454769202067670105801719495830998150178297870400958960652888716088883695578441157674688394594849380113403415962301897490533267809704810526548379183686798310179635356850547750844394660430235486820326436360552403365052671142827090189636916483222548659761210415652912003736083389931404120033034330319001508426418031604022932656249697966055627812468728456775814412660425499839830082137557239615150424609110865514230460757544305561942554824029383007239838484697630811519338286031835636232946878374314274453497928303702121108044942350092739752774890840992962460388856033427593476727652359958258794849796728676093282903299466160591811592373698001950722571483345182684318208571048601338782509396275160399779113136939036290126749906814643276365769599574988432192807940659423509105084655092979154072786914688737479373970970219905978478221073815589943627568982197416075982010795850826639131417588843882912090633886049568043257766742270380633869061238960044249167428002151763677490269859322314034244238106736908614831946159059250302511705102534001857844633442480326639463886787622187021171450858216085229733916412161534843603754648054037292987460699204585270130264933680127290642457049786667431361373792303856079411951591646085798789212264636946316039087777279274616017995745457734690357587384225616235850304486029508771944838235079167856661329112795903065352020609776904327687139412643499267654581012921914852671009935495547407025294159490290304057322906933259031284287508474130475204039141720200721683524563494086661954423202528655571922632212811184924955550091168585639522492693079089091507655624488148453551958396945007146710888904817828671695213352903135928580344019067162987361462294364839098284879688229901046298270931531791393547931167505904813270250694511359472672024061288913096130053990100265054669255082704580119927553590156212832760067861025304400732359596178394484720033324964229612960737873984817531406367924583452193846270026504902912121693524395361923370517884025535168617213895044806597974845209587457919666484393465423940388000569134673354887109826845389185516692387381185990580438914506643627319105500869171508277904030934414187026018967749270491715322350870219529349857364104923548283974097460084353726622851627416321042001816021328004802845625830726349726051689638470238259708353867531952581100379590383697786459787871790140782370634218256940084930234383714304650192086935044996923893898701122627661784507897070851736635390083683873132667228236022655467540100695630684063070700887804744398407105098389430278662465141961998349485600659890801473407454452022217066606692894474438936688098622715961039675062256467774127727360290774067790390658894482815547231064858923958173786826179558528725487108320839338866494977266589538057917896916092980230715250041196413295829827688127452598760035750345004491939254172376472470274080883479366143632916462141867918274110642041157901755574741120334798351790580288267415980361517292629090393873825127451257583093541934053076723524280681201519448042396007686901791462779040680743217121658815756250479548453815660489323168446404882509450860656486536978643594418552273786779933917882160151686263266663101131909954428506785455905526457000657920306441897239600203994214227210579941627335621232252700989721729515768041593769818925427373334434220553422410168610837982811985369310473843659568065666208909231926813417515748879765357517287351192952086276843876687966298496552093820548776232990724692113780557200032416792210081663417758891416278410191338699014997856762433023216418491693750466145745318436397221313276253174416144531782507260024660479369438425015997046800136232899846891237127705772617801112215054898282265610744776892475936476234324849411810955088197037526888951494664440995251152294213702793161133554077746643914388611039935437831909160633346475212420434133007500167951755452628734561057075945672367881854884149445769159904325043241985865628285836290628028800262160416905380053725912044659547104026726145756861105212989069159610717447644609796063302862234168183160605637887827934270816530894327910040772318775336480227637682411383540357087781003058865621201088615671353842610523784307775936950937849150238164434091998044036799699280411034784534238758792607708033192292012442033902876554341826589858403633902332235430940694428413722319887127719196697927205922187993969520294651894439608812103766591584315057980429834631217792896902943210008931094214608862962048819880006455980647987202618051038631137458465973307666052299734803086326124332898336317662766143047957987215736058902498421682988831501921285406919160617111801774804025292363496594952811717982012167452527979549807438737039508554897890512920710805274706993345249917323949190648290512420511702319369791478239878698995022513424411262543936303920423970316852453562637440391024188212940981768093740096637216679452410693533574154601222717507799193280354203755628819566687361348375829880519738691699120916016888050086364768567155599652333291433926167008446444158369909853497383978191325815482934366600374769296344881422352703831214924085177127748718645194587821395503383445586874872559762190379436199934610613409906387647621382029855475209489279297749793266451771538951296276189761305370882025242889346462077440172883388011823360023291397618860681620604180441675248811135008219668100977973623527530971534068150081721470109597669915771569150694147028763284935532639484982488193629401646300175735496132492561574667516663260048363555301903342751432738717385125282056473722215660381390634687661707490538701950944348657861885258535425170625677196266701863003479762821456581995823145228553793991029838293911129006384577146605063706184175640810254593459756099298938412231070309926082292669948895355588780862257118828603161627049130417488784374638282388561690675816785703104569372067291514142801866329053461585230032389044120179273769503297958520821925530119609838640058442283021427253302001108426844081790831371135522670206800493796520202841528250418599495258076124553548979785627188974000590040951587713929367446297417295192866486861450133624988070121226988717840647389329964874023268391471248861564699250052122868058362829608938055175981318875185927197478389716631353167893476427548441289283854915312647370806562005077302555710817821453262323258023327827725481988209276151240305813547234491549566650859078485878323951868366388130575737402940271279806200693844976923802496190899213332866475337628988367848227018286519765851671607946995313640246418606571873148934340655296050536622094913308805497740679804763940062695982790508671324588252308705285060660940059912295220565609658253325028507095497849391224291139017286924231223997175845739933979586558465095261357597883456332806001696242985333749201982934823161718519792686769546544946913860385949651071797127330001077411495516851872047988742361898671620602883702832903985007666452388303055339653665000086679212470733677749324985011981768720442166790076448031164234392096511748475302711566125294685255703033801599279526783268401906582872995234859364401989739314971233936289874763656753784293653691401775591630937360586772286691301543254961611937121372941373745624875159498215272966092335209740378830218551544984663899654050506385020453001557681835971340307713482145904858182385235606206043686043440655208557165820182494197458080813640382206399509785646380451616350634957177647090927402029345092991981456635344844430119026144837426789870448123043969173875617941094693432728574297128345294429196714406362174257199881191644176199982310307009964908935858723953881234858734119646410363908833709146722898549416278089359233799267002828891772737448139939295716057800492277729189461529628317850633179706105105213283818353384717239642555947924015964229540200563963446508227080968889065717521235751485357382800898379838592084339531289088369651341037748676994744250143533552136685683548366048240716645904149754692307818272281626221211486811051579837835411588221082700744623470343346408124775682619701381485791712165441887830429644524088599220528986104627798511331177144912979060954155682013275237899520482615170298619227985129051622380144630015915286591759173750328215118971492727955578777432532567807428175849319442807600667643689326884806163709070839891222701674787530477499996167304432285653860089216259842600433123147772393752961398532710479569531671293879294317129805305635990643362785833814394316603110589533897506452839554067359903117012644160539296742332727250969943514100399573681597300141375580308490010998573051804051986736942729895687247507295000026352275576044685377574806514148687832942848316958114658581309950092482157001569754363017483282527553833569295291934681129672325853922396630523103274043906748247134829128336112461068827905495756157550183958599422834242230914881488759203329756402039726910138367883738641486553113026979943141531970690966324870712435188552049656833770943526456870599389141723773973075777510288843201128486884185157775006576642334188577082258936943237957532137088282244446123475108737400553100471897165413293426365452294267062040475464389837386767465869847995751007022333513705094184118118403110828712677387099004492318386820835924908639676817991350195862051789235783852903008183759744068528112308467176464623353635056009545263079453967878894345597940723540013604472701385721150667105257719751523970512040033155711857757764513342165172631192556511488999305462501875616240043101079635678299682820327522096720267137699854209936109050418533863194625275247338169673133761675890896057006030708634619428318768002020014157957257759784497298312585401566822594591181322310920189568044936650043679315845270113804081935630382452306752717041020565704150409086047031448559187388005561862022728539681163815295556630341101682918808767639384596516748694778608425905736994583533295503130788551562114042940644851443791479704629103327838772717048913219019976092097895773205811878933961975807281340999389630106876079374805710361609858573073505667218893569407805305719361018685307296819709094156039143453637378484540004575557567763425630372994761656602164506261614075980166389839409575303350031649208623550524911168788060706127800400303038617764032522010159106125560194177445720742661851469102035019600738871990910674905021650185618777041810775466239022326500890883961511676950912907167957105707370297628087882628405121100089674552683241364496045460683742418544111226974970732798771222931026783777198177709561062502233046830868344768178708569446256906394529990379894445709858784285787909191286129451028974674314890555767312662318694458758143421319454285370768583999409067489749767525211453014123593044215163139645524303293497252940459744097529857152889770551167143461168319720226249162523862122302867549623235961358022060152894344150233072694704947375767627682527936837692952100001451728948442609599194954333643641046990509822192582119447921565308244721040149281611948310435866288941364375957074873200255029223528852949901184985103778802938914188752208925094675942262485697584235387178809559563421400973376818314680272951581096498735705699359949241973969478808356834427656450062917209462603389050182393236804463667374938019508177495762719146797075974864711089932517156843021783866271967408831085519968387083793326791633230386964396841170171643717689443501923712421251804019059236852487162013043926024513610750207240926523763741883541353784309856742008711124305164025799555316483080622003109595202382134546098309315831925660647938730116445340656894398940118538780006060163907630857280548886860282789241082998504357509995984483753114465715894089716939411421621179198110787254633106634525042139210337705175650870757824608479337219906730432106212291078760822522928984271094393588210392559814518993294661527995390406239219924803452064834028476537602144314011057490896146156505576130241519799868876086666195923741237213387952374719247206084048622160538304401716824182185554555044456503319146102455337919265712949714851129292634446285751754200896806596613374335762357032031788245138284037133977276457476556175652069563850752398972354485325709152165685666024240630422077255343080420001875717407447546394203346532127705134280272710034244984490895685436010110286347108750031382667633758003604321082918196467912845391562703161588332896627480389134889059954363021464538267980112888288065754032304017839211549472176552302007302056602129982056427333918821834170396901007700470287444824833756753982435484829198356201630480005933077784301580360117178699241056729998299616853478077606798902833724650767438407629479412117987520832487305128793108212967043511081029479494117939022959186724581677574323568270651337674688825193217116121060324700994207567385660414034340571767814284972373260382137198595861746897782303262824933592008283385417926239181415612511259908026855914334956702244749073934289560541301223032920762441884534057171883290841792172767899324259618553830714724934902057363897403028803114902891650617558566800453446995884462885981698664103756725427870361958749273857025500102574843663470607252223529446953113663415756066555005765996300209306254547291650851884303003764984546273040539547396277917854780007559772849394388568968774237971628370877444133105830438942981218094621685393930913741368815715887530176074011835287739115741976157420377064771439894194737019240032179789696370486100686484652000228552210422870631676185034679817405839683265535176488877875855175457947696461095477021270826408982423467248544583672640408124731343653485294211826388999202940403505252134199284891608974007054363124244703956581796385902944498018798003997789856722423821885565393387268904306030293579672443500940424578599414331291049672184475683800474043259742823517513227730233708348694257722399898176109712919240648049505777371536057609090953436728800025177025054919911076238344009061040655228572008776411469250082183541084130439185857254561965048344358650042745664976823280736791104812359859078264016443220928114859262604509961559611268058197490093648926409322542809792475363620552820591852012003526095127075718134868357731492689472996007503855588171486812190028960965545525034098413011343848233188788457731491022643324657409082730326946819720801596067506037560859078110331953296475755780894204437357085431296417628765408674522067739069027090480147669284831217660010119136837738125011790417015853063863974600912636806847795486577007786060910037237456590462061876784780588152203567615704947198971890335880296542040879311122096569583641145529371725644949552993014582182309369450388554250794939401173655958103626375417906273121130153078899602019990165373743403761597696309272332584175050541717896158924570038691957836435922757584849487740475294683740388305510295024649094779065713041864467927280150777715552541923740437526224324455400397874847142507816280113244574453358669468333596495039488203266543840700546498935413674339088058858889563943019219030778615489706331914851035605303961329059939034498340144254823411116350978111809195763877566320474293038170467787721555852608745986035068845640754656525730984331137509751479050708798150695585141223719580792513140622347535318677735937141944499399003026809052288615063368992343628478644196021850551453859513355118440606115043902968745902039861457819463524226101624824291767216215570526759446877403217664261778176877921440005465993574219857271555254484725417936819752724978324113317120524249448194979425215853961837947633294310409811254082063856398318747968084145400082258730387824851742853213631847610698710961969433272055650668587411107085455302144902290902672163564383580167426857496744459980906632012431866182761334952460590480468978694200059685210872926593214796993875020073224483518676273391006098751982828094228630660589379549217344700369326153694465384268731833268374037806602384499985725885879099839820483161585138852299742912264895421100935314585371429839651351200961723931254866099252131026590537799904342374788122133596511973244144291435104379247663754495533398750415708279014238798643868478224422830759718954841857243359461908829700457424667976349652927459214629896879653610759417584925423310872320694058512646350158837266303216945836129600339096649390764512668852354641488944599657480961211720884796644607621413428529010143976232226032971487674924562446766446317204170950939314787686967225903472413822416538559263999468549064720733966796761598256846650838869196382088881908627716964708634496931830618927565243094041572923492941677554876099579496562256715720644159399953436376865602467923571969906112952973442328830542127400292507564402066357392020642273877003760002873588803477527483303267987927256473017130513776439795974845206206569983520636263533407949318302734058979291937773088750377639393319898700761873130026313672467559478267816415052812528362609015421026688187740303593881695086683942977441709631533545188477163727711310863549671630396698072237954285524029818437230215912986582004830045803899770441343073274806429927105290258835964368681128009385575983909903084759766009278340642258337458832295271993901980278433635076049118584666702641914190689355284424971408671423711361344784871193760033156006081930088305741741994600834632733194489643464280828340454299722759597819354447533029612223133360330513118873892846807837859420811813222808304050013151249606524421382427325029448760536692092655565256677042599634131481090762355680237084857307711675408100151911946633074534137960289892269663549112695589764345883633767178227797040468536530988115072700716816769304450711797367685679183405985541691669274990752167092150847410288495298966698834071171166845539494047054286058102191620314688943026323686479643625529915597890069813423361495795392000990665079804581757829561296022800252429010396905766440137512233145020552127979793220049627985857261253646040296052124376050559319189699189833706200716792363580885943572836119754507616094564693690973218484313460212045671480124448064590687836520766532060326543281017923628716162112269038255947051308732169239958625859327483535738256634947911657522349107281587674976520555638380560271901358608487928989711460032435291525423185004583938796155907766014971734238996558627738841044447654425718494208455809105842158007715143671167362259978147391145098143638988122376711607788097797488576451923420119559401280973729000233105162336926734089760012390681005231197972221281222737470892839389389726207705644882483009802224331715812214201007682759267618830940011549990031075691090414496847710508908425334077349868638207287628826091923106822493143524563182613738146634793021851757916653698973382469948786678373465684571652455559534114706064119881176621700089750699194014484604745070534151340049940231779383349487469336968835741794269673442924467119092264339187010294122814905782461002506619415408422480901086543976904208081985830659318434485717494726141046415943682978340596663513820955679653979773109225969385336277800389297575533770460677440850773667782947247495504169061608721904956435815102872433550687169527278521026973559498576576810115500463625228609052221148889074771928788784293180470261661653666904071117629818009255223509694020271950706834307024161234465472871105682286330883834844093949996971994676954764032675115191829711445048386994913208641770977946524170215663868268449043216652092363907320546562537778192917084579362780705112005587370780213609520385557148414802999674984230868121331619720918587071617822205101985033548426188495975886624999271498409814419867066522382983440852997677913635524413261694932068822895771471497638996978774785187963125465820657716285816931219905004726250596358778125299857259010578740904855704388048207779630840136813397763634728276369657924907475262858938225162446145705669254219499259101902603109552395911275406255027752337043885851700397746929926423614677990718366016056732281026890851693791987040147774120375571565760509419883256895064975530305551071095526163095029880200465673162941018381367984412324578475068376749538123115468139422820349796439250414348367499723464491055149075885035400189713095961163919692414591915322692764448676000025957646045716796852429397053179314848703910766376532540488012970860723303563389872640211703810801681764370815060852775742200206843296367925810656988094972540914905428902366483905356773392485883982594190594020166917070060053749041955980676241700710085005904333954048375453181470002279074382649349994043865321208908836734643237571172881387990489438614973504446530670517952013914274460461549149282968678268196847833843583036244153013447924613214123021014260185808501172167829637087015509810898726269911556048826117046441561079287303509734791189029645548289743558889815175074558390551958127355373648913501101900636141984388771177106092979865738191073265519272925225027258775267341219910030297074010786046973884148500621206323666753565130783301509326896162956980671786664346784852454282207669556643523034410288191061724286905307295906334032892758998271250753646996772147332913881685241060811491197964560663872532150800779270352506662257038020422270402600510924382506034314888182757180111531847139293571212047051550047997163104042302935693669579705971357458519426650383781772711611749737250207681883574262129076692068767616917003646558054130910323169043413962179772997080606547945075245347727443969358710370202007173491251442603911671569200222430238255472899611272022851811926598489261486311189794656321709393668544397197166852366999419773096316440479574236479589990340245140415416164245686236173372119556820159701079393955172191267773150401233170967510274950478371412838234922946426851431026714005182434229102018553947130327097517370482897544330300388473446764688158166026620249894622813402365287389763827454961670949001409197842927887402269024422585276812493476238010312929385372290076427556733690728982178051485252417174359652730673358745768131243524352246299795807888454747793525071263151314762102616894148566652956752689864716767183589797109606882383150410720830148172297343870406151383306643553404728715781351919106653730492585867812367136068958976490430406016528650471238472366741548567717818472819607048855250279440045927539830445605279968194238817946859322197178215961867641804261615330621918725269649914702398846258397606347142184539257593544274326647781064593683482159799689777131610352783591121733937984093399491006911818898077482884553276134220912888832345845303624331933453519056008423179152004180428966659143131374058504885250134503716915141713748446861296505802013504427849574186393476207005220106851234543980005303388638167160202078376465764854421288619141363139931219503014484927343291647802746662469872206713521372782500007076000727959149891182349846702642800020642843580845031100213675729703030606669214916537479725548330805589907446207552428863597890938901846531368444488218023492383519870853191774392632404108656515051104167957181326901861507438183532540421108029982540728049289581539124815804453135460862637714702172435236693695482144107802104886924175699437865004026251354699012209577821727088386593582947504880769464399802904106899142551879065183556068003776733055307315314915244726938089825005261137233390933298134668645427930398237366223123613430498093868378919811907239513513347973354502862355973296761887847968825860777848972071422703962520997301089592787553605796151042143195675815579538583751008752665917519279144644885705157847301282267756775880678743838864213647955358270451865964191980961619627950911626881752876832054466950085112678972561259338047587106872702931438646182711200731138297454132272955495108746549396131853138533028986804912884091672256315675626460052550156110819434323400150849344712968601585852450107468286734350410182312500425578890503453922140729039955632547539659759672091387981399210944958331478662856573345761663089524165555727794621104858307613262528709782211099583436597396404552370032079854362048261493184908720588743510811760892289428959673714720518890617559517455679972323504468088396287919952533036626499547488038222883223562780946737562447854069293298470303672971934601200154019982624088543983863256551827271357218105942972616994715667197565270136415954912246333601479964820512002299302475981263703342890140573503026337888311147906588618264798123264437226323811112998816001966154084416440238854044174416652140001847920790328160113802912413603370823321671186209151107202147927762190330485163625810151756075599654330025606887962705515299115805442330493546492462113218372805170395640752384997909689538420804463275246644861169437408398074326975727632194321785252418286929863618906638074676379076306703260650553693138356640531660236650732036705199217276039947486056657766615583922175446110569071664858449819828972200202234792481439554544744169550990804778014638721497496724816260688944215137420910203444009356965517664889055705888793133816323484763599579021254449180269994444622180287833280263293305614736344863652077686449018478289421335865587286408299874009387414697694056951435059010609745846616917390361140770693695461748799826673182721047744285419900105278382103119931075811176068819868679650649161100822228726003311238758577761567761653023467224953543049214095068526334814627040017850410140470494941778632053965963059870529227148329728495354395677767383259092329335849848286013258060345557513213949087891437115606580183061786955675272254782999740801059302800069702007702664781209315028173501511220113673781092299667795889555424334484015615110741718868787408129362210983455144298600207563930322579970543271737050331129072920468773715089982436122482166251357390226545093983449455933002777741483310021179608860378853411284297724609962970846723973506815245744265237639142970778374712358985669421961238457690730631646887820082448572847044370650563548202973936734066652839092018896681293870319825846209246602748296492743793563104860562969688430236532705687679239597482033938943733608531986746916370240999516296142128033937199750201853292911210436793090901838714201376968164695867414642773539200869607836123024874992419676322477303056989153361731692238463893810497994588047607938861293817901486858777098860686042672789458343560625715217677621494549511586019279599764973764129555332417310881133698008443562608282156021170777341356635594354971956096894839735355125154049654926735007270534658029423595393659340767915134924959995758782143031399379273197514179393926450688214669080734665111839198801906150269212803082837364410127384538321820012341243438936017492115242072778934882365541075526155486079074347380538925454902369630168683638999611079930668584766051592517324352290891815189427945033250687318150385195656068205720037375045120840360573710393483971450715711987275614464202697859739684869061352542007401651994134244541150439770800355772793738663425273486385562554719495838479602221088342632623305829613386996906112680961779293615892496181559170371058368940190938125140019003209028284328205691624703754206754043143278219671427156290015796200679521397299114449347168593889540456852659500076883709306429135009104405471149208900421659710620696676908647190089276742922805022049726488088880216833769711959191088165672946642339967433585393635330621718503618671702792657807992410153757134200417986851893142463317238850462355457599038323058965623773843460640079191433105466925390730812401976616164341302059972832511388802256197118312813464505180660215426900190863819991888942329970642988333568592923652982064097208499316862262208238528943851099172490897045970237843984688970309056315398480230847578508798207661838040186818788663873371137758859084306345013569871079445550856627976233297382983453056395822529463712509626683342323194046407374366638350511451905424233456404977604716744670942455478192600799892860641041320247909264612414451382935656422332575224089483656869466449871170338551960498079377300807487827727103520158254863456801790406380695349980214389257273051312752062890293670187443060669604164291117358021928971970256404462620389030021057960319505333890929351826949785739314313186229715955258285357061903463448820648721809425741254502792907901831682753518742688985309381999396412289064143287579812288395624088323464578471378732764124567165709087161433042425611784184800092459946619883153702470441984148350971235733696764105035446615065967134182037002377265410641959478216982013272802372297948764873708005113456760196131812075273898054195827263291380901968578808202224411645178024386072904928569955174852213108730865969000200633224512777917219495633311469303310096261869790999590659387433113585053834276119332035090642551566469554793519816875204224642075134412604608235580361947677115171436579752683282985832997516030082321536909900688461745822539897734064247608969477626195680489425017324119979361710621914778393274625279886512327140785014027383161957050530985353410130765001828218242176383481766392957456606290998151843978073494142900813885823682699950146353056164685793801308217235846939763281186432532928514261418742957757429774700696906152525641488542012278483824483119054854283450312543123525272965092444242193203124116293312115031855128124857271237482536564948372650095803392672275905584307808458483106748396553035212483748325938429025798718957092078076204840282086018749987706490118022677436351853202849439993166288709255478320010939975627571970687289639471018133680755958693204808237123823961863486032486962688212838194867435648049933689983030898645239405306598905241964262075929151913847558507675474874777362136806873899466330664584668651440003461958860363978763571197150455293854369060271702178627299499075792673350755808044749142079429809939466079255370730559144255884370329475839885561352753190343016156791558798643105401719135634840601338071926492760896527560982440717006353086202771691080705181498810330336765451336589551391504255797998972898342026082308374060043382697924965230050177908567856872380597968417499009502681638153936217166116286455082802804035520350382724946129177694499714119001999108980336030297469743118026572656766873195121562152581341411370206447004708264922790510374073267320073635902500653184483166270696977154330406790861909351907715495902857039407141147372480345800756738261747071839140514048421261858631127788328270639474034178417451490504686438827235068187436413234433555974967331824814244363952093919485449244571044059898608611699980797664642115036184809216976232771726646127628717726316799000147166844497878977714596198217135726750952506443428157623214806769277990000694168303437670140430695655930982223719011216643815927697863410143302809882257358016825181286603053384145490497458497671545347800244714572272228924614812934038922315132891745003334790489746341321971091214644061962258583664266029152921880380245357265841570940734708971117227733648499494187238660352809505043830804218240421937314945291396442933244965533160553579247119667004284709152595091228185326689866790582608629765235780080526400757250032921314741472729497449897606861454737640612241814173524774045119914538892902440616434050546973042496361745908404760802249940869730196905939975569762152949654360373722662769394941827291265144252856281121470083486021007382187052160732381138651650871518147679983797658242489388626270514989561647788400810545309169396069881302668043668825048212700409981604912400813312055777351355358708169196055301989520800550855953224129678120185257817558424257407042834078982237158128843677655086999371031963987967830048883453816195432072812538289094842063716669387658577803730832805404644253012218158278041931185588114261909132136019942018357403733269013077076139384068126164542595001507345099846232376800269765653874289945986804679798150710156534127174860483005747072840079197233730149774564155663125223123898554867100614094006507551100368556786882680879023420804159854952954471952873448279009236674914088997986387995734570776735020591259951984492595936837489814285141063341097387463132991375961268866736517808817353156723195896242019860699907074487967236811858305881460749052008029593736693525863862820877790879416563071027652897437053375901418994364918063300744400028233722298482795951588503881175249838205670249627819969469452848168704392713979263662736307653770915200443782540878445587859740493714632603876018787774962424218923666800438048710209564435842652369267502366463841716271876785737893260110662943477765633875523333574960036982118979752300539349281192238785256261277313784307781037190127183424030560840235570670659041828210140834868792901644033463743480937531370648425264673428671388308056317507002613678796055741404252881528193458887923777917560542508724518605936463594286001062262865050313040741996389741757109746699216690998225956910067773041337801635362007883232041756274821607147212598700115639388763094852879479862247923931918050429581611679876201162299487695638130386569208752845612848581456642486831434565653389191253702237767262391801390360515386983926389234250867855153428446991986037501543349327112396087063726613149188567803600031430885770267323638657456942990875981157367239480455645590792104105417102805447164975849761604047623373160688404421426412729369907690156934954360144059572231856126582635291645503947266937397159969855514239698950554741632895345851446741340109086958706187935244158490839159935450090547369977410938474633098734071314855155525654979798640787636048832929513617559280775128120431548185797382845892858118164101161126742472715125546335863977676418557376554520710780880917097194718146246534536126991773755014394983456426818857552099013758578770661839292137129139602835789485562844735977571949836152500082188273251403286169539654216351531475493841003147852876312043691155195501146334403673181647047921760756299239847633190205316415465280960885856802092881044013728883446188275218397026522663987513425657848361672169357900369773215634389663528907104237808378445698532813375134006391714532930101693743869770946164152176883792968072397288429588828761663250182536968505743955005508437269016589322362912634155164673523439878745166133151782152468829290040365424600121767757367574445572078465577242379198892618231933085805804647970967488272823255630337155123254793964406476371935787678042325990903956946890004986397955065751608872961198189355565047206749191483836147940030747842367723652106209842234266106769974079714299845241125419781159009587689810453757005450366701820733882395350544661677086444065449993211320084961706970454741531542005876944562684329702987630100801118040262083473667856119794483301908762002787638768750066990066847705658389624932242364042619288430100876545370832501494317624412551977271370293679010920126387279925210450215431057490917801418156061630777091524831327248263581390853964322310555733528344830260890108297867730505719087497450424718202768539963188478433316762051473173004708971666485734320438130449065610106645281073778298054625136945782908498223355310958931243795005981658103379335289279269629055867330329754488668514615568215892459369939508452578539960204323122947745241053807237773120692357546394991840750153407612178486496440621464517953704972728601775959586091888783422965841976341116622108129191722704250205438596236107854834670956710974380274252241903207094811002822881426296906616390955294628279669231601360106119826998997665551560313133771477441780623017430961486347936310665386073480339234806701685977430019522607893602343861771561340624354012942047608586632369486624486070610121742995831081495587779822375438571329577923033230244675447207376719916321873480747391447549608010934545344824475223658441568593495255798077284298418591226696583030862494014149632446185374203693946271704062592589280568046625571926860295036804930571809965210295163705803297693760110841018647839277371177484047458242382175025962980895104223460061242428736375284250932718307481596479390898562577965115194905813698216630962086427630315213870338734443564560972971516884411114887715193588011372280662862854912173284120029148145753377329229569917205157454984219662169681826093723386843144813767104255264626825300489531500289621492087343223528345346291632419190068200889290380297127100198026780309804467935139293804250050581692837832793543557029700926865092245099250030301995743281813223004195839922169620617272035503558487373430782217647016174043312825526749840377316291559171551601421317931205201893791769872286707702630531409687358474293835885414402728371282425423338002495331353654757491861735707140206411337285060819547055651265502226342126366026201603788533946420021787453378207157719172881573621174802513690491682652057828922881674961603136700642555184489447405820173946525583971866931746360014877762809228966082014182181668365828474652360468040955320813143186895069633446512233561542750981350040019322343537385194549060413700151970535136763345874434102919485093304210873717660070141544937080468970222889886856683621322596236846206933914238638732714812152155850693535917649669704397056708560753784863487309360861703700039155582468616869342639874177376882449280102417070236753822486870904687952073382688187584393991997428543457379007571264300107795587992164150727692527354094866325043001425356708678531094391826377863482885361240040233461270268427052907189761885632968614344371337759159006566757070563016220986259168767343535478918414253081986953833982279883516132449792204013650818619392594547085488887596109352836417537910139901152415986609362962345690663821946660172146360383631451567168079528696239950670628666745371214408694089383355462401092732686690480285294224063352617520992851849225448432730254304312870193204842147715914461214517079585992379211059525535834455967298506514980909465843644732323854351449976220766642724159496971863183153784255932486071648956520097917478929564187476815503090419030136098558128589217614924215703401822569823461163096220216802853570261007245450295252636787759492119503082905753599550026333795474224630471273406748921400708597054288110969322382583861942151199227778231560735436907535852401093984803935679827623405973077700804886416194132496529082617604165671441564288994599098623988769321259852829914141034209984899801864025393424789467567756360441401122626474650773562238680404881374045459414243318468306851986052222658184694299465654276991255728962053993265688023402397595244703910139560881363908266457050241685846065364801382707404362935958777994873322561635461525805057665051518259103728859856152084200162462522833000119430206327985858726295259658217695084420069660004355532091685638527278740357461124859008746822918917062274156855920960941065271926757157273111282206290488872339590793177678001793559156612569462633306693709351533563859691491028283818987619768632359259139336960066445056030414488217361610327865396979601582081117112525664008332691252310782945713370572626140946144668951249009444139017482452591617419285669312653637679391206973152540899883790721385842445062002705303632984779099173029713463687540245650207195993614523888169768699005412865486398230490592615057763009550341204063655835784126619899673608842982022431202093544105098618365908121098153753192977805719794979078879885660317953570416682590131140304894458106084911119204418351137746047016334143757319120891618493234498618887885546647699560017377658968886576361251651421393539946805689610804903815917244673203813412119522224437248729279739210086276532972056912281892005367135346528055072650899580273683709575048392763056549744968046465596256718060407773197827768443616713208220688245186106693537442504985163545264751467271192131605200462829179506860837589917938345084865191888033063128775453157058203663932545086129648759035365879328740053003178592032547978952023824081133191513027654025359968834916887231079142288289168753186322666399811942754184194247644653159579703865038943490006502090530637557736065215404721043977381500952307548441092326341124462761978339064715418354213521823700333517158994332412440985404973230097776891690830533905614561300811550418213869116053632471709935046959543429614085053074120332197207352634087827329521712107563237097636429900889665273620650889239123162574271691566480398763882187803287165935217854493071807169800840867897966439807857949653607088608504472599378573019755359841827543903938700342551430525815583723958167354127965527394628148764472330132412257303214646624315499723872115433428983076142045626282017688909388484021674925620542511849555580089737441503297523615718041158624780898317915533881589719415566577523368197149630792055762337375943998872159376120872388520676660017095949032606170811298232315990147630560791670485437203616759302880278424560881049253223801974889709497934165518702150204838797214313356163952821023810662363983726230668814840124923246222249762564091910257042755516695006502056886284882933544126718070490635530668320988697021138663460231587929164961590470893129640751265182941973943482677813169602509671026546697947842246143184108318413894344250945129318650009148170875035120425536394870038314471707504310241261452570126607660598740723570631126023684939672636711544528083385542942067333085843966698129782597398243914074342332391471526473552876448045075804138138727789977241139402388889904672013754968093713753049294193059420550842775943399962181257714391748528548454715669323961135187933287975733786492145354098102464996893493601959879820850407971555984597114564416238048038536586618773578408612863304445384050296274581427097883008614477671786155569692391548745107298818047877054691797807610002668329383767531756268102218373221896568234562019414019988520398894195635620527555922897026892703861306776013419081996235889578914940991080563631806359250274079933172509771600614338227192870610145363746848908031433347468406693338723642387443664658791542080449822027107669999412393221812715033656641647667619154413807529071501333852352467022175260098275426767524575439627738720533403269170090190480020878354479810135422903369333808912366524505257825894604190821467455739219863110789733628469959694981458452725284868507673235463886389948210620933735213612606156020671255370054389737600481649608336122720747612697991135781236242987873110473258510841560437439597293769702973689048246167721996547359370483183768619930265523738264820973776088126002438900774265530634288613591495063176248897360283450820604785999970448182148213362016935687570882701523325043985139476520167062774874671791540801293211686712980440515604671704915004931549022331249671063622684257542393121346110126629300351729467395748259668208107567263264495849057276519675911722796479947025604982862926265175164899837235311336126192803077079581184882401923204442408275041567995143632980093113410883029291130243828188492463187189235786017154542074921648391595706069122730653380701036028402790792733542497456837109922263259303185013479013437754788195308953020223879409551182755715920754887551906153296113971717975072331295735138424817464632845101545960139813900571918015654877891581855700647502353179210034908633886301119568947278673776916534356147232618399108687791082145859254889825087486112670314347292398552542290177610747551612083446154342494363341017629785487458461823536773206824495044739891705812956563800119263921308533285626131491317497476604945611963317375690795538546702287861869354442704181002631954451667046286072822462933399162355309042488565394335086854429553901603281620674799142002337092094859727150565644602822266388714227939954382378276830845426584147420044861769483712868044227560511839104138902485084052791952634346667355536431010609281067388112624690267592975839228033497158165260891927434403764992098595012215371495364736087690298172841560560282215591770231051035112116494470282109170543075755947437871468374166200335142184435402496318887137843485973855750317709723959457122195536203246547269307351021106690113912818484159259905028317894806799437430014179911963220924834195136342885559001588994166116114380941944385401330776449755549892017018580950010827635187267901118133948138887413255911184260864270500678917041738182362068293306791478583736794576077208645160499477330186100573786949786349589131063161617339004326184322313481490796435028678618825180213188622566971312894004649838148611974619631817692184088787735786374879200510870901301359654382386709147058398445340384167212625714913472775646417047735361069255457255072272769219293636150929747426166792567570697117172786322480391497731753726356903726078054334152433261731286278499655936344745507088377132464292055715261883398348100223995866549690208480157155009368292646558260590669306095502220188796142471128454276064349130641801439641891983129589044236443548055859709070864908846565633536750714409002917798989491495263800414593211519837985376144548481709049323604624280801835408837187335907994519244143238349619158733933132479571974085332795344356317577253598490592190059509698985337008397994268273960171198993389944969184557782021270809508605254815707203141638104894092912063015214944046511434123142019704099585349166553940476341704111424575595448149576111606474065821574665688663476853520621125125513669620855594746152636348772916859632327345881495312560508988547762372658958285291431919877176599191391530992900478987154855015769681697334854288338071073630898753706017842549490924395700715848825655858822119062229575871271056520644569682095446383443115852932371510512892759293038604285030147934647174427783450575068527162241625874470068590985168298424924744955591031103615483038700424010804699973640589945944118723168475096268569941082882309549058646397604840487112076606059589222854906059318172376302982261719238855015122770643059910796024146173856640684742652077364802278098804040107933669113429434273756923386508592647934279546225433853619554636058495383281475394042727207656852887806741621069477580218691491661239517721169360835532064443714226682186438799132430092898778560302693049117178997630825863254368154490662041766470167008825481879234797302514508247494388656571510880838915712185183299608016263123557449412006023099020969040780666520013707809331666434560943114428614948999527745676742195903552288125876659034609373043678936929268661696866748356140455818647427400284452423328914965577138398923800791403041890412326160610124601709692964759870204490908548476951595950895650253770119433796158104718783283905503522712176458280488997741204920094252336464185658608971488923647096600771766561032696853365461448170776264788219904649823551329996591034963878480486577183155395146718691762586233512862463710830910928075884875479997248246305387431110859028600813702716136616561696845129142280533131585101454010923119766984954565602790192325356955358430258552127041462902960863412851248280115310198626366402075468021800099553070038274671712903452322135937229446167136246290605645206791618738622072885696888750136434258326737398864925768722465051228780307940263140251309070596894451291125272690187656641255385896811912322113634872941234174344400507958698478037019317016154024250754091462883829614598381925620977546490238622076016877026286631864522212517028224031761777021821433869562388572385696513206880581532101265352741722568609186659449800054978802783928715983528046057331278555076751779755009205169433450095209198428275241564235908831703142428159832190538111563597592434808578985912701532957361272242314149757053409699934905934434522272405354035176044318495904925554144520738616307158008991543062491898203951937717106306910569622216082578636350661106607454753930428607756305870856072095989065373042744052741965027545876289378757930852783824556359897681456478316146880076180965598814456548573655976129881884089737586898182137938997758383130666158034340691776418273889266187668862036236544549030608910525256376842196740195817578197438961030218299250158635285894506521043105168440775294643798847590919851373099746006296305476665506924036378848736253502777608400686284904807796072087567218521698821863730754175562595472622376125552786966274003529083197369775872906791894326750615561462270979123178306474068857154511235609027859263573371454852127414069011275428251514116263968218056545949731819912183195810517068856343639471386365896115848717527834766325868555861841003023528444661567649801463797848519518773653421837249918228874657378562836983247510970588178076731436654112159721061325129315617815891717854375658715234800789877293724644130828788432303045012859787361041227820120203242075505301299320584944484368029243375886873387415499343003551497941885023313667196605200140992114911891049312066825100009554196437161780109534681563131550800316366979159733945880833660734495260743193992692585335181820245256815228900239077929509730305038374800360831828292764197872201775672822155724935559474331707430295925234631105535623750499389683463723698242724868062320652589370744077301692532054166781580860105424528090624046810428408697060327069506593271127759169546499249246625453811560807057011019246790870300710180248698431077136529568675055594426917976596833562260490511096038864964111139882936905647576636732650790240029286290126266368332964755772543425284499905384607098719023368473614008465414986345000239355210564612293701193978401643955534934279940710995291772331299345505886641104631750798447360847978567864180900393556423139305812278558414249257561012227591453420602679971540967960295077873556684102699309463756693824770550740570873815350016235306873566292715988318480859267572832267946710533240228851249295799876587442618417494126038755599087037784982507799793389597985635169952445266570855520737813642882074621387647269556548466943269106298408861308976678579047982812784921674185036485948919347058514600257412844276524697800256076048543141949769799002344589445840042884074964080491890319403474857407363022492033895639568590637947629101246791223017594157085199465323819077397121575980529935091959780330119321163738313858489922380309026690189625402425672623632125051827622481461852267233569844078338632728692452735482227595658847717755133373742359074822934216057059170209951289571290302563155735922926738871903396868568699816096790500768518869805184563642840456821076496019892867328956863616712398563791171935985498104369147177268760365533558224469743383874209993390708015606004029072721329289341578398814602536503792423887390446872914407692490542743967376537314346450135874267765572730351340141089934752732356038097769219696742718775534844278892460935276235346710584588131091820047166958561689144461200302144308279394921731528146307818386878525103560296907183053644135013342709260793801015713469620476335808317203114785273377416599628293881475142538672230288668695334799622799541088449274421504950121678270686253577194805397288136983374241121435083140363935100595565622925056946074967797557221441852748293066020483607800695520183591178439738351099925100012004667924969586725345468421499935068994858964785984482105345086107740825735972309561673604879537787757613525326420269479234645224289430750581163133510511883560094898421945847320776755421668247858866215245277505697776059020432936325938493930605268014081113027967014505386100383675296901423682568688778189321896570758797414018497221259588253827706257224202330596799984171464026944649892741865865730188375100529123518798899135653483817336198343670362307475793207159476721997754225673726686754384341945039714539660045659863071591788130785148851403628597888991142506659112941891797725398205336712112938356312216616487866384449314700523747229097089841551833372045462506820829536560485675876203936498349801549629742901810878465143788351212717840011393387888813773911201100677674265629339337663492199959552662661099720149053579079647322205545657559428617373122378935850174070030698566836106691295085881038691758479456842828239586730450392637079555020040405618679941099623086486466534016273369007992858848741010833096876055688927096840150909802531171387547923825914384379243982439371871248693756070066243629644108773834179314143650657266185338189019409873439125623017977112267168581663630330608033923792964321635152847932461379597675467550143857245459133120934337492877353947003675682256207508426232756368782064634955863528554573730990640516681227798492610038593019246901108505067878560645024583741109701264228229199692444721104884494932199659542359523724014027198062458074758930655424498339303868901057532906914188441872647451362302901297124490767088638637130066505127472608888358785665080367738966172579259475134239786835839712393534019325468299934170381677172500004503282051592516019299143865663629286814437483543678185673806257334353372072233047862540384491604416039122063172553889035815846797753416589920722655642781589170795372430037417142616660967682587385376214717811285748589578857813210226962102911823860690019999061040562136334611284204388987878418970230273178794069143857109135387804882986789884522247216233734694393297551074160965102244283444963240725620437177107611476501232088748782750741634882463469741559424035049630121057107656177506529157624492146544791224243533893147051355165286792002382938694488835276282782079438133945816711820510437306967052363044901827158249720750414165961839000595030702118475899206408650621612914759152691156512631968158074265022326581141915301474254844431668761576778503099086362407490463361666450972361189589440528615229520051819802373522754267685623541067968278919754623827636412173191724499538144774748445173300949337596935350988438507757950843448993831844887424014911052525507839895196166896646091397605664926199423805377064983927488523974885999628953578240652157551960599677103238571593478181065248695249736964581990080568947734338674910978048907305282246757874503152677719604513308723167589449525818018837350385051421736984771512492208004044816180096944930422560245775048725150141158434647332424762103804368914044781804778890979238399289284777681102991925940098876532835108528339896472859667038587876815903529208045454032899292979349047437447232801887634227908578670053514968123999635823904442818358663755188548276243967979469196852986360986781673223828269732935398551609982144081213851597781699834636876671609482586732725935786197270752212412449358609698003355215811634123243441875522879153687899176484454659542557497269245100852215526054104901701160730287392504369133094370638820130601615903534663534076073334025806300272350721706928926092180262983296234462100282868863924941886618764075752607002822945562837474117399247283445722484997581450760274102963391747473775991890747154987141989708054180048763871837939448425860821342269075223600947453583743209930123887152750585828871243759266981182210529581523471593074957367223895738439359888347731370322644138941906047565846137333672607016262069700432062965854572751865807305296329341544261666487439441442836656022166038414273332184180480914786779271177229138576272607854526558991887850790673404271486287845995955024103981793198777234337883047892997197566427230889305125008856814577352891008484761263701749945091959246820474305939452131324628959211898600863855595790217379130650480449739629254181721291544345542805071625495405632490722850854166567970630789303583559358361558405883278075944695905436903225087705034112993481997816842334515817675574113187104524663753053195534052351198523659910523634611552133575447452050403950608136474078560249217235529103127063369147198443736739809652847901655655040808360992624624023863905740636499846015857548628757174088622311896174799554966908769587361806951863467975924319553309483097643739532392942528924196806811679494161356469751132960952323750459688586136549371426499934174845433183011293988320628320439143636243361601048290774164228773129215318739216696582277450930176629808324093790685451323123266246113493319329650066285450383480737368518116178521611576479845557236519211021444808026787492655722586312005039393124126848751987093256325016419692228779218738974435480353477864573628153105956669747884584198703966389665608925375000303018362188418796501780666637283508958727077828861031802978102090900463909049837729558684141298234008656484972641811458863712610121343420350622352224428091519198161726538848788976406568386447279435837280767027462199225931996397775011426518126103964597051043789147325965789514138894123016348870615718193061020425075932916350458307029476692847877375197547450857828944764899410206917946870186116448792089476560421271485355849382139969555055235264652768323499217471732384254666824614813227589578531412018493751200571596433966147875994187790378857022146898954595963459835841918691881238767745738698495637386665315800532676930771570323875566030580417759584125267253151887902733862380309520410454381280689710768204078728653930840384820326616294937287347942111587361794384131686527007041203685497734245184759007947766202850880689509850591454881051138474748054504130115569102476236375292862748836041473398888069753809707069396170100672582737101138034067192919036731268836716031651175217577912450491997564526002249241528701528804477100245134471925841573786292404629752886002974172116477790814703975953471983318924682230258554368138529017460109457093188957646759816216182220945084869158598329016525021773912904906272724936698881806562285345987727573930115708199470029698413839392767201423925230271342937967619230633022516842783455431059293035787594264394236890257916673609945037657114003059294328061112356427108990596014890038160065320498400902219481145821946851148978693372906739484359084418587819031226110991714478512911594964595370442789637659345330318824126187445451438005842650607953358117712805204783760801704780109527512635029031414272085382492781375982555606279249748986477753408236948752120475438751593405578171005986436985880314078725442101195426527620693875154476553833783585557096657572766985681457083780537825508565791285658486999883339518785952142833614600060319184530533000767019803774085045706104589212598141460597081123466028337063872111892075693017108596592742597434842682179949204357409774972823610349495802548523184029648289486615659480826021459244061782674879938861626825970983206141670504371067332318077763055357362911841985273202213959428080607149880294847825178040945794040533947653202803709344823245714105579082659417996721736815572525409836189525079901692021355804507857188658451507024251159144924856003007694484541677568953653020768132391480565308656895788922004818848894495585958746050041381164647949743932868335069398967443698717833085288072425731830276246439269487980380343227783457865357909396141126136553660161810015463209136647412212498137505766061612478783421842155776457772601524715408586522242650367901543181206744966658303407863178293888226827161062541705468236869703528166896495770653690439307224245658685835150042282000472378057289601549474408010117109980834233170147245939137742271044807372757992860590111212459237158077269879954406902000462162008303264259281423164858019716495809682780418090834595558891574397055482183317242072056808722335934928216342464650320426088116504264796896640698864848095594350028909103560019444403103302373136795116044639608018551328953298002227779069843089724659740306158578988836163755993823450598882586755007666553548463461370280116861103270467355354911729385599354603803079722025091691624987473796137785608923312949924607581423855529825210520851824126587877975564557878917661526939838079869470748346888333544907920005348328778495106790192110108193703249637997759048562234039119454292969335139279440799838441291359314277557475586883688022506607460597257956715909058467579634507414852195252983985810601943545464748146860389475883561090240001134162863631062231127898110886891822372046010761850105461593656514893576769816452513929153320551361009933016432941884956199381477793835140805721644606811736614544131668340574264458866257345655200016718077220940098407041283279876946975394444231253843041580328864986275745189866910946138110964923745164460921315608757788298662557909860835623313264413926259674790832974049293331462529855165389871044634097210946464593330971356441777412509482086755149047017334494766302450439696225468517774915059415433622654052831005933225542748765593186213952465895309101447574836256560494083809674965226841316927625109380248315100424221490841040311819459223057595341185865862037613181991805057237775979967427034358528693934072801705754490744708823942087452800179993175165925944386386459906470755071840969343503572014898562991090261305050189062297628086487968827532976944968252763466471943860271553019710901655467358855722867751332610541596608456367488654656837985574024783794067876749862245353975442582994703601404861520530381375365409753043977488689676668747025855227449143743561015783146939505226546948910130516847444623443473629472208486155038153209611354341771862790032556015644403467075537133876157459225977877263421877802330624000067908142238885626790718376391761045405088549533248201523412246336913096504106696134421961968762163937029498957121155771258133449585567016062991577817452078416869739367506989858653924462812693802750086932828377387713098669068108903172031416531333514070139227269126476117637672425895334951655374095517915863036060157395135176258702854840032293196057040929928702310833844107593608805897574580252394840038362307778341355153083398248808889589242506721717117135152955411797622647009113117708692427407863871021794672098473810860053037046131118460967023006176574741481535418641727044560956530124108958953487881213539400488078591274316716647319232858797593679639648158336472547610832684567741812574156297315068329774207988965654519631175221274236986703356759373819067198129837597591892549036907496787990029036871808297437008573522473323815518004008027529107283578346855772388317782082323832028775653831297537735350454410763557330691392598956436153303731223560840530269229525971481752328097712282766528606159415252582460943226125561651008024181135766284819125515427184945616136463564540576204916350564828557241645344238032446313861038210696249401097604366197232513502284679956181374627204347597682660585595337716266233522323096486219104520093205746767548167779903074913770129890119427146311363914305557095886459275137701572076372621570755033501752333372838413131090236133838056209145788859361089260131716199226574415932560269242075492716280157605018321963907816213264289649525516689312945054809449914096727499946206829168292252935332754838106827174189760683578449394817461176693439984387838457349390961264951076875952548253947720719182520434496476539194418601847615442779234849162214763502329248091308774414218230908192147937428697810746427482379064722205099228475286736611502920014273714613697729806893545097201253444131185263134295431889370609073702759316743528531157172055157500313192955909831657137743915533625062533265908579528983100298156496895551539575199977509677968394270860169053409903615552895301913278419574951040530555957398288839169811578051326686755840083237476138114506437228000388576382753205551567678710962455456939372119318603082783027931003314626345640615228137756339973253778337880429263529346752012870040102371563771485228177920825076727492120560235326779392459635857538307406985273905703875005245718812120048549576385267186009741036225309763269886648162175193902642200866142533399324477001422856403325870598542237116104750454152437583355312272591381988529893459788880151314844775266017509411957080225011557054456048868543127162332082920103651688913589362833887297519604527623046979279061046393691846183116476820729069189399381419102312809318672089101379459594717458618682511167267817163613930260346915763609273044770762144983164709322625244426683708182106860561246887066050152584643311875657348448096185879663462261333449536202102808713349206134053179354036396359743657145130045444347580998556571361603512189152636174073271551973648500882084828614304821678022278069254419042655342240321062185775738099266303231408661861115905524557839641970583025141244881047291284692463169257767369829512888589921405283096202145209929749018878182417329797761045372183359119888650125342334791999127881856059876182442188838707608360902221914336362354697335812013275286148783674210944054002006432726779839989714101311927577957266144602106716472469055023540777554991720127208909832422375203755938760888748248890154450796277721401076573865108684594799219750273265816122454908684863583632942109450699660606990248247213618767189091653625373312199878922310407564450723108448153851044623251345429963763737935447409412480160409542220721761548494593340616337784097035897512191679634470300543652107408800494284140542143308674732473149541485676907102217481336458056103235871896441995684315250920641869481080292497512401099570222540765116911472866416144936911444688542992520648422279378189883862988702791778365071781788718651416860269068321399150127813816502375963376845008090016858845474802567335946020780404560718048420506716039930275812129269688941909932301973960661398079757283201980857144864005211037697319480726956258594713182138571421554211430746972264445393573626697760771802134465867792424043073221525758241972875110540706732885368874780359709954453693100728858070816882200457025863298456954560346274478568233490006088528632349250947801438652609900437969618452905528363145757890367029731082574907170337524063074811336990971832944880734674057295103021768672964718591531684632856709167175169112542171276158463545375999681354418281310407330589753997802254820149079341644151067367856864870175400157884778998936437939749703922135577314501191512469778245677010495289964954831795424880075914631995865294996432999761246280364842803565923471127700156415905100634369701377675296948758269182342773731912982379259960979423353281729752056115987658190111158641074908138007620251574019867861163814193976618942227005576603480930773080393600523304746920321560594364038357637908689386776677615434735497891596381543142084077703847442156023964462949572808450014491154496365487329040933196245884010622284231471595848962855982932423807160107446293338684249403786807976181489720700616746482072043836821631123116574029486075219483427661541636174090610020847334062960475913486393589533871964828546939527674213749147663875334171528109769594740028711768273015701901234649911478062701991727571983840497269758657484289632706370732582681813264519941473023615756898532477804532473747231464432569515959062486578296501260413153867550981430562651256333467624666409919246209700087883827818624057124303837786080515951970369613634493695848631295069984635621278071609918747941378716074669288219001910800442684272170754229880565984459903239145103419881718589725275112584309385788794062539999984875909031508152413180949674208903272092616318112703999970942346461709031180507050867751372986583413970090893575861473905560284186225962280605590871520789280271221590714451332924785213706301390580306871138500569789024726527172539328662027718386035499595612553026785262537272060113271612244461446525496053713342410670615656444895860212975922652241819609073130617270436843224824796805232280410043591544368644168939158662226070158155723872802702619827948103964369243879218052499407108259259081651624344069490532995332645547175136131514646346679435868069298488755526706265048644860724343991858608915960489469407918967040140422561705297179496693244001911849840074237279626484941491076146007542714014351506825394770901435455996437923281157798336724967442590929281874392821171051784339020513648048907318907453426704808783650702697084198016120919053063956568333561827820840925911182522458377019058750082928399620341577629856879295431492848509654410951108569406468261501644953785464728871905843795974476378880790452090192617653180218859257968083824418401523312167137708691526822688465846721764691199225747511322331038037196159518117357557019813882295119013610891511068251929701112099214416749099892793792051571498715752874151126412070132605373936534583898508155718665770359307790068212257223245848523223153137045463597838594147505015269109595534517672764543176561294810809345195116185760712967860622209797871755306281230153305447373334771284319721903690765870988380336163592537598939561455914060757626135745949786929525384231886954264307036719064577098061385580449532381045530845865104818938336697028964677659967611330483066501435915080111220704543958862889239752727672139471016686275777436571352611131264706210904046782811462478983981035162505343008454527078772837930695556850922053919319436413523424287095875787599580863862286298437861708169494573571286101206759541440693330044460858374423487094690010569937785317980636853701799435915047424409305785556191148181319849667329126330625993983289190140026096159411049880295654777519851520143373405794949140579007569681374491009304468272223583315147371233163327096787136220141056372387737639791559694569685416378150568394835888570591196332943591731927899427048614683984276199603534751060749338667645496701972029916004122122391190180603496781289723757507498299335408116758717798691417332358243605554237308892080120513174379216809763654235715327306364121328110035964504298332023841276820017964751551907896748815917854171163020694108965704442013755199624804717464202192987374658020483343763982206432488547352343617851235359042498664918981794856786851837795511951784860846505699243139476316512278290419256618157089732834692088590350310712598067998163314444741196709986692459655139596435518593608884969646685623096250530131611928583492586061199847042085042967443405624580998959050256923713917263853243168345580527877364064606727368957955288544024586619781997450740506599892801724126966111413726780014118153152983812229512044601140030564395281714518445345465782058469567287295313427401649721980781499808933606191906911606570197457042205262567404893808410116319939501664027826797257450320643726652318126095230704661048315483289296854940375731852515329579154607493287971222564950320834844445066504340527878057424343145224591576005764996365133256915089420906444043488629882183292835555328588202234971272588301086653646803510897327068868991552626369055957377666042617444977720246340401081016754911100086296166823229632797763978777314007530141504261373512967979296437476003851454523269496046744704441102510580902481369800664643734538756151484133911216117743621078479804623791451517814183925251204569389747112666946471854317233672579821872437012787121267506389467321573137945908632272123934492410037168629004698677716627606577054087316078673674482390993257442881067609923367611313185474127388067970386997515058285720815611821047443262467996820943437873229731994042711201972301932828265749697411540190336637215779829240947202324619427116008272314293239282455092722615806206461269019909676190912597329865599668049344463702816450617270008002996044991537366308632803762655181030987136708672549790033076154462187205558470234548521793221705447192420519236627766173647745360122595611673384749005123804808684358076566098039688186779832503699988800075114008557942540988442338902958291613138404080415615511142405898780179870761827598337492538094640426790121015688013296075237560363236682922283219343841181944285153892392861774692426833213178001223561512373431616354143312214359675253340622848451277464005058470222552119850265065380982167270643006905732563637247116042624439161758238757164524848080110465757994754943330813997207175497717065779067785154492182842056122327760268847546606495542910269717194671476392748670107323943335075051787493543291922922374637998254129106217375964077765949144517948419498360298939632835483564204495106161309102935496987065835228542168967266802664355870220677856021114963774975718517063911291900279331654279191459069567504267199729565105390523970111352662238608769517998732511804151545180775825887983707901665521541993742095619410618713538542625621135989441296659241093702228707894135255765353673561139074561328361729614087785876287624174774734731618265022759459931757009262279699497829676241518493449054771647969570263188023346260401613434979830046827651509456671326852800965634416062175605445216176429430510651175473877237370887177456190649359593281744831246130943654893161932477052494579781611986060084793186899929249681254396754807144038824272243663126219818753817862521836660608812862659970007622873216244470858646840417295621124240668143053037252483659911623868412962815522473407987980030030223751980020754624679329745384734369964547083175737643672559333025424446023947660363551988269872428191969525200151701743628481659420628826214699235978380779255847216570764430519776503997862660763576323606543632965604432429888668744313101806509751621030168920514380657887118896888094725898786836964308917174974119421993041250616114227293546958606851710619482027661027602037711931144587686528675605139809828522903490560805983421426381316150964629478790448176383734623164291822577260083242721835994761063950598843444223361391190242114521359409587969409216532090359771170259878081263505644054347253422304268195162292561059560948430406130917495329689904434480402273042251803179934587080001901968924985382217853070445397519876696473962127926999658296559066017132069959791771340912008085929906862424890870836196258044572792689344380930961631757320907044028617710749498890748010924344436438618326172181607453859107774576919247967725382719521421271863108471095302915894210405797405424484825600879670791531315224691829309868402869705063689617262572433572619019473436222337738747380044756594960777455293755010762149234044601204769464840841938662077093847225851457730617080760408102015340016092896774200485147660777828557328063842991040411506854909589671594277300107860127909468374941902433716188591503963879789614215104794755107776806153770109665141065555422157483526594646744685751950261467465483388200625160940418002099856149241031817708032635709487684492899703400580253701442641096942071887432845317377241127632279040742120310385170726314007585346766143858209255669570082899046609844492055185481033308644524049816539488091294564269978262363656507698646571208761868331082963939860505544017083251829363820325175129149050333346032394372730992502379760695386697040199079210619759178976337085523077474994267089766129302085871950220297558614214529613906470338774120331336656723183268887490479897284242504399265247168079735730044527319492810119097224228178955174725417411036370298537567663407772036000212552908514931719160360719109206859447156789096866065880334521216808331104942911565712143215361574035346277448891748784530781475889837234468402186090577935594946623978665922464682027641865472789576365428248809358188825286938490080370943794503361747783206039791701334379428386075635506810876234361181090606027758021863796296748897994182079995230879138761483702051293627930357699718571905564965500333394937411320617392280908299009858843191090595935005909896186867610155019815999585353145409298891785047745798066419544129066132746331978275625123810286901089683442633025285015470708174788500533814722979233944254056032218629917688233566698380360319361965963226539818489816539537701438467950038210035939320352180989689391372732584539198361250044978884535739203938730386509129719907606049525194686515153100134322361548877112508545115094573677741109669237335189441700496567988723366332815731344783691131211050269187668300591357617473312287105326064492257588717172836900306859618044882157104407455545812642095954598439145383836187195128627344032564524028598739448972916236229956985587874314835268217799197966494253822043338509159252022941162617588721799540195524987540617606580927085439656968571576112126119054118610290431418158654479080020162758952603662528027879005149935388976860936292905537268559217847535870904805973740560217077321738663516405035706040007585958819531231947317090539234819054951068423135993980561478954009074546556334959854564811737183242150709410415597144392914904942606567444875770358018926566959732410845584257099743425422375912621527778248015031215444480953348351334191624432038761687687753858261976484097610412061546676198768216800638051242889053437172296305086832763599747984594416503526623399825589974385336406270812211318373629137351626135215196774554021372394183427857809679012993979748129860701628829152020386963116204315220104517844109846618622322342628439453366808994952031601272042550402201341583982168317788334810378831330875648007836140412903348487139017696618400900824656745698727587542117762448212905022941107836878235153193545001319273975766898652737472494149268599464006804879222219196444377612872336437807938728043766439637636505551809969811431165718063823346482242520037908674939249778366153727225398002933792182331155605003036845569084188959620990329175165269005804503888765302846496842229266219652678668108605282049263025354961730571777034995718446616544397435139546360063417009965753637586539577356451079083527504965339146581391964001872699119188519598777715639750516568980574616858213573336397028851734056367045389586505488373844753391039496664997161446570459337549631653696730546691192641728429957241522073846873329597364262031011985805787208298769230324498873950191926713332976506435353950550105124036706891087775946666392050862845207971713932554803272536137909964538592273535267946177917757986286019704708042527454884864481392779532980376711585825576880122853091341157387579983057312152119124627351981103464637331743970340983130889074455717181899301771640183797735425517623565157883561567126765206370584405417335231464957264830827758480388030652827650071213822994190787812925550865939505194794696466355445621857704481510735040758287434073793347555806591813427701308295142132460943369892363290845992949672685190590381624900548036949559499848458817228689555681161672837959898458412584426732953821551568666620123654796240932490012745441919851964960392785161219205648049159019110195572626022455747893978825380795506927728631969733240371825552864037622511842532666256597282166348947930383765533627595261745275754864470940005558478776401052430689280437941273555838069772841615871452846088953004752638815048165343852675120503645312313490916170994333549319898650409683068155277103514284705506347935648384922729810367287273222984825176352057513740241392827306228986352761337560286690571612006274340330790519093165803680362372620739821610330845052393590361965330907199545490440746597776384109250961865673447748596474300794707687282663804190917433607465544895613964943842819936552488240289581352384332700666624715558923107271601718361225021658048115205156430781257854947907860566040598822841241541534012673624401534653787123524024095463725094595099016656916413429100591969278735986679210360958959394968088587870659728391883699039566745955364472404653492526019076832635630210074766284188414172141963418742868831896349583333262094282855155701045465699011950294959852692447389187190607374925950940856033280170995401454312222802074364377783391811916680386349996712892696237842026648683663028313292640472844285247623552895617674474456273003302942081912155027713565879310026026579030148678929162682752226676059206539487187736317336134735676665758097219972000785785690656777976798086160283398630624956186162975809127431867798438997266121023248331795153657164278933886247693879833054703081382872041395602818148795522344226531363296051168958386519172640954730893087411988374027919109945571932494492248144325185870640389314940313855055906192711850870531950882866439968138242260665754952053577618941797781237059656403651113915082996472628870803504602483858370863062752987601090904159694051471425683607653333021264861165005420412566822563735546385245885027720576424292858043090312606820959792911465173721407489472463816161326752204217384366548813840284972283862987048672308058985016906798685523031533081529298320989668532710515362255420999274488788371564707138709774217103539989873647502649459110907010791588233154420672200398555925861896170203123255802837392012960486507330530463697116149542507030841588191296928966010055256564930616364280552646574964138561993592531459144688974242198805484824946215895271631976437653151032036727572697632200613906425062425289129611636831943795094621248322378512634045411550068807271028848230204197637062953407496733482076910276570870730906442276734184354704292305782807856546638205139351626784923423006655460537719203593696940069308922134332295582405249739686740180585255606874039914304346426359763428181751282865435595432800505904587470765945766123242225323806510484800406362639452719167806058332937017211859151121502274523232134429473225676538621950513916918008562880589299922340272388968384190117227105130396355678127828322355763596947644235081674159565981282005454620852581882324686984611145405244705748305307495587418808919225173177717723348615088078100161637795233923565180523089507633850147856171405203460787151484877366826575684429265871522288270227801040845740269930528579569914680203213433242550003405587256557943992230124657428463048944723556274803675185699483176593647284774086624984647039575596301288799037646112800005993504190097586534944330160513493711603390378145746170623127172267817737447454819156080375390506489622686332148488400099360511125296914320981203388888206552747222571763237819097138095047245351674155503117702560764356943285765934170980092983426794161711612659544814136772247431169213963797334504580984522290805668825384507384052782827043977611632762552499268374126728576603424932157594557021747876947536783827488858167246582505766814007212935408911990144277034032507903591686746478570948447664471079536815500940289147013214967661529197435939944835464873647554398199028286308589189858039715115567312520960231218125270168082938959315332046964527075423854131360492287197339428710131248317700582958978440652906266720813590748794297518933115447145365924681359543880382313706972113351144148542371216678117514894564468927433468582237780203258311117815944251907806360016971667001569241729757739651839760684196291440388048485591261084555629126289322464441630988314818705753880058714099959232963471819234624373300832367074511118348263393815246390406018885350047151008475992928754770551005509011212174175488469440909458394754941858634285701188299246564829232915750938718705391788667789497738774214756291572833872619679700452858683513651187094269451400413724967665895538383508699358469208974929086457945304787273753953003068854121513690201201944514075390560779800441848660051938273812169458439652886178279867669605694318947260424506579365464413025849133365453036250211690728519199102750163191165360680010903641040240402820144643055125427429006822006925800510405592869825204685896486818191874881654443333940507211249585454966437357697627308895220513537465155122370289302293035954476166292327739048962827087067479295878444902205497427008471293779693302650369617902228532402332832458729263998340157919682724262413281304866377305534974486545504782594489846308883976135728418832350662162295517505140799045242234589351907817421573462579908932344672755131545742674871521653187691434383062225552436869439277837702636228506804029814501752030224683840054632093133775512531888126357670126166168313765363759088621434147743905204065066387324407402563427705531853675317192383202213217137590362944920184991511216401580823546717728961985028933038324289798584594587794443987662199218050278036123454787443164857783194587304205025736244365895684086466662650476749640314775555551581104145440731236212649985092654952635857957329764579572851145268601704790468908278439322800954493450022399733811286962525097429890940129748416830586491162793023701390935520812955629227536697120051132410723039597672805688051414703357516517347109532360065000431609426026169566796058527657749356817976184483732310920904610523716824276272320894151512914334405018707846093919515657882698462148037125705235191659581181770049633585539991941495401502261908003126536299181630003018250802791589661839039557790725088274465127931961457253895871451791449745103340436010027528647042817202495697019617074366090769380201504961058604673278793496615741901063106772337512717193685901560644260205958160706035467872000583772472486703160922039515343547953508864288537121636052812478391490553799368056606237906107212418592143229372357057815740825276784251508469628035486934921185979900148042194378732464574188314642273772515324566003084246890439209135355407017547102758149196485151890738076620223355406642564770571178473258483044620005263675611297930747825210636771081420655688710656724222695093256663641569039527689410934285254476723748246146611721004588901858762734310006242145710532921938103026153412201836258941603768245397150486246186811386167415226236964847849917622708536702706217451421511332115323740372927524351454158541973091873109028487623716037601474756780994702925825990872181635366646964842547363473527653176806853088444664008843137336386422656217367836392116490271284829534727905482812781027637754532884551608354937447803732060203734795601524875734267860476838559663732272649038789059357285218670994656926053033849507955569032453592084267228093558646193525817778448488914761913123301581751905633685401429120790181650938450523673912254123282053894969802222171785661560185653689857113602142352215272449437170335562927805507258767743357385508236430769849108005921826986430640459945081716428796564550330654627984734132832889142965250628082996465813980128807349675017205886770842425609776044055438356192946134479616815677648274108148090460250267023780754815578925635688926297410700013983671351874417921773088889458326605973350929253206561415961612770057357723910221166742981869851801380820532448984123598394286965735050756255245900434481873038114251713011956037908978116551051720029534005519525212017421148956170656737288095747305658261552859935396332786040122811728203847301353483590522603511468787932632570428428275795215881365871470935488117263380613425174001977652147333691474500831854323855286374594713434236823180857085615856869102748337599950179089294328765076684679548295119858852719883478146567712264680019327088100469283709532734753686371432079822341126593072225589940596700801267027964947180463834841482950197871099713921559237127178820738900357825974340907199432205738648571696977317742868379134094732286127052416633575305485944483234374121003581074518208039695847789722222365874468453261748004004246299628106351156335865782455960287139339282108190427558134798257143952049558409482496765415999166979410219099286589179981312002148818996553358691060897806130503240829926000205316699216167390027336463955200874942655159944803481765046309504164422127149896194004351791686129451334800334502776017840509390122821793130406457819151261746891323277886009237563205831203508465976165491606569664274146268941351550585202080412954608149235657150123080235604564566505764957916438113133168000140132397619542692159486468917472313411190466372997893728581486764641044501820315116076449796524154327659847978125879883573289849382334853532899159767403214652158592712141970373723620535061375861769608279043590329495501765051817436905631336887816156968199908609141145540650173502484991953922180479831972451239558659224254892745562617893618319615021627850052149219051554238284638344650480305354699370815692741964140113410616124183592758825689379606113926056398062778712424891759475556879203605991029343422921690659876687332189920717214598725835416699920419560260993595992951247552117658025339119022660642540196782750714022539368553119799345841080638348875147172271603621324648037888049669915963708939272089971472077492502266302470145402015433687386180794120020527014222616909254898025078707126968849758057297104108839271059162074399667599337738343591836777137304235704385925033798030836565011640926256273921675485441618243199135594924952621295231667518696233683523536079347880823958898580806911370927320804118306302134645896686522085965568005115129208449056863823171316261583181631969800876457807517399680350505576710134341853589621293921085218781372241826401150973627778786822990357284417724917770411460758503479376404045479170826866961039190627988083040285154414763569021727623142109194628989178058456238697612259778685586555329751685104404880883436139376782713885429004484410352655354127114859669797570312130483843798465241451337462071649912099477911956803242531382418930359867509590118422864048855902989885964607770283931106963461632009818136208710788653977691395458725744591379773504026537653269588952245843973123895930658105020885954761636729401375231628995143804154039751775533000790115838700138511485559614636175168945629301790693019709058571708427034847943841733634479094218328653549046766493004408143967626211836080565968769998093384775968596328806296346904739967114390841720259196831388502107239849909681356010331518766823166588051567241097586970872103933408786454148044630358631601001584425238530958191576325802443262928901507913057059689832122589416201983019792956330510277703430693315558734897614656527811738904343578392187954903717966178022771408011690610661524959248898459360046361446189532548947294391433071183785835395670184782626908687637560712141073935680687560770144443509862871769752143192017686654502405110427029324636122494574548466110882733736608469018939452581279044654228543075396511639479417333710805477967927490822436942281778885086072479127347870223523398983719858592173330573276739004320440862783353645511776434762986420040702731110080167572409434613032255894870757120943331753816668994663321358710876927952685352738242006696900567450480096471961054460208702775912035793648982514745488644393512582448306955251035047831882612659223939986801878990657128821813548048652061798782310561835241654893258512739562246201969544487948335606517216811661624483775511091344198261813584089231441035045734943269219094904446782086814753610630600201472816693356122528844399425230296302367149369583056474263041547033757272401150833457181364722398047096501289187093065947731972577435501781146068816999088365254367252301516488001548047764144522190667803026039384208268533968004614765089042794587669715829273588223570887921934143105122708170107775952582730797769723549236507727553024682371248723966592753224744230655155887660559896042438686900423453167839967938977924395521811559662369681198249903219399055016390890688533546218200586492144550764186386887098950062027811158799333129280088192335115793382005178282953234357405601430347154646150127749814366143694751174069591546746940262981757120303880493109424947530493354463951418514801570993627475467488224991997517886009895450101213842783045682501038621301806700828205406463815277955907827437081058939075003724519847603874466039746435011288067257306374841629322109254278928025211505413822654566017204090465966505665418936801165675412196054247585635676152052618168493820120782885686245543062402109405203844417868801734358330735332581589039725052641707706061186890479090054091021362248771196759873897855690784995996664785506980158272901324465829713102458842002408756045304415953412809500119749323540159250604732417903815130285701796750453939766563688445202372415215019312173880844578414858528911236675333636562367322900912168258635532829228536688374658892194731964440100418506010350766239639755554480523784594542010292367281088042455339564215517599633918348333373836818088535313926318451092167887057280828528296557713772804540432391408998401627094843278824499208928494174180870901634651271371422338058286666239226911478054659846210283784660336081389513512152711096637007385567955337491363271734457082509669480086098029284781665653100979427079311732691262571420704718909210424303036631239043463850331961144097559433549849384308629128727525237481116456391009986897307109131682397973807299179724754619809942757945175000749445517893492991219346480026398786462751768068878111957113123583751807454942912205969491153171360541829856075476813443793815980831398531143033402602253780515508621338376357708883638021749327151721189003617815968085817321870324541648776555544262167572507903111587619238242465764294164769273029778159046554626914995136558547603846760511081845251675603770072416971427581879589676948009188879289496976042851115748946733306483183321470135230783282904131578163313645038583224992214428073177787039417750334892704436405595834408145309400382224978349789568279517854224869731915077997425478507156747721746664239376463771682562363529577283363484727961901740111652658067925702496268894170990101023265083981688505459122746675194492745992251228207115842925831090107140105799859512119699234849712697147498487319742571423757112939480404003244510720074429213630578690113252959476076439239279052303760468844029124711910682314432288600604276755944025567886820843992060078082935213705253963661801020645246509756932398571152818907944456789821369218511064248210493026649266202822908726014007980923556433586217570740459250213183179023857009910448642041187087315524076670155422215450321936658558866399859605269446267625034462297629758184311168421229226861291298490345084400437826945419977288617692133848935077327823349290007943551653879589982452363190222900789555286245744164456447890160328006737933023555329396537990390235952414781231529478345264680567302497870278818479300596517308320489119586947023333197535369172234112468340245543212597599056191773001025094851326909490541951595407399753199711256765782280315260672596310010893955705244587122241595028731513047970883377663494192804262504904250655385731651040066132727614358001672358387632938323107682853213721330400836588669907324189701747610366441236400814119790512479443163974598081625296522275867333335266306663259931172581330369954645146276322295751752604388309037806161927041944877016190201777738733484387183754911000207052293270867662005340596802250305392270252956113183660929373184991502320537538352949724899314090649419228253785200273845189358942819146286680552166341989470216633119833022431902110109655922820895772798805014391446286431943757321451137383493770839451332012739230173785059933055388766943705338249006156222794772488186455889773869188385379567867902951914006200635117153376606406745896950090093529667995480679878838847026536309809847610640661768793852468835103315125774558607972922179635846970259375779915516302236064332546140579405232741008654004218505986531840780465148991216159261143921892498186776176143326310779498623701878175578785536553008071929872660068061009666972230715100122635751364437021422821819072087957947169171313348332615435137485880405373048393457964820489277110777769900581395211190528292664811893984695054174371511991282851147484862545122187293307633625201987214938339713939472400307172270647415837255021799399801674081249321514379882011300915251177189417011118445114434053005731422032179214050745792443112225484214219901708112423058222866389716657202990151376031821342746585528275456508426358719499285842331436184714894751003543466989576372710748013844559671767091777606142660803809817695440881531462449153646934854968825369109741985065181606050317858968165817415337452983630926569927837583242606837536900423264444989970814372684267168132167247802839494464792655624560762199288513113587471178833127996677498357735364813258133539617530147315657292665192545134433456019979715177800073843537438047061766146012767439179818397585663156957239788054631206752232747844746901492322107147416456327944367457442982162805498489441501113289264466803573663666846741667928893105487229686483412774306887035734901373271761551334981718574711510314606421349636517791543918477719392691551736243273832524421290160476062410480532542428401537278273787370637376689341121821713094992398606648790665533976856309236878240155264061260840995483482808082761573087207061851890920205950973653706849822760180385997698367795949314867429080110808892665203904648006118353855078670939453884690850833466702970540993765198843943389399060291678459626744229598152315596735697308468837248243468551953907399403938227518715801865324920702905920729847558985258880591980526809331495965428051968713887053353616183849585483679477205282619078332079834171752185438149765127642984807605197237585876984135346367523207450507303724724557485270261614141259728798326903829548983602662250467877672479427198084272550569522551222660666127661952507229667988882303936799782603414190271947208886094444326942146176095077724474577479407987018196688484794687466789089351093225673396200036204050885129070412451141105269389315336728047299061364631119124594766616813991269471988624467105874651848979050463172305386741418719984058059616921186673839581406792559201512197470824873457626482682490642760256847300344856572209323148154545522708589084417053347479883491983304576725317397385585578831481135751075647114503145146823775157926046440943314624106947965564238362438966426519045602886565777384693394271337826370540806047140240061268252681937016183908948774789397436068447187183938632595071746425220647918109757861183388990174029945176468263706003052891993680194286535300222841665490527235608293200568496139611596695393465100970159556268346767070012470959669558643010118032725358709152107591594723185774155254647041650652475667659078522450333211179789804933306720522496814600317768346721867255106103538875767463738036156700533337046554374145479787528449616870540815802356990223697315217653351058001257440407490354666787142739067224593461108337836125531689839535290280605582292271011814198172514194591972349398778996887808729302370550030757780350613045745243258157004553218255719739258867372036703442987779177220309095270309357470403089154887716264037307699740093713705437395557144948278239766701698857281049004478620063596992735449614255979379461363316312232950994614219230683829166870836345875592727192427593989620379784217603593551336405785780897476428897570082213913610670839263165266063911610854693127475272593122078531861785960448477586213400062269991937643940322761028674308560577499381060282622500918459691408878148508310581287258891521773765472363999180698123696622537295825246954512833340801372711501303627420836199746210990128023242401371887449703237103583873975143138226124380154374114360215394389762734825400845001481112982323938101725460623958659083415104045661373028678557802624875215279477855471418225912490629533169611136030383443279430597687564639626206597888987121894374171264828004766193006876095260609361184245889240276533136513247245868807567404502071261935359093659723186048826350649817506926025656737246498333913961644309911976333480342519166918612277121682404041443660459561280237506913568371843026665095097648981587379108437153113979854569940116082720263546131661041120107584001272777705938872658730471064975983173119594837567623424347773940386278369678570554513275128461319183984542864973157795142488281876678444589272587090470281215773976782977018215264695428931383602711887800657785489417174669313377826544686302035879634306734880791084484606918088785709567828360183538140257439493070959115682982995572535325271326352598601587147463371612593583206664213484716022871032743166714849406064296398190376398483294301244737004816944678806763302812454000525181360779209922391086422801854128152864152493873035841822471427058526835704358083907715593007093974692199617885237990502691802780052859665657502552759712547545368693008151178450556022513247940256925069380041313288494945165944677075089421398687008742793810156666697413168526920250858233599233978796717264542919853125655781005275362013335587642200736110583959087284607420964742537130937970941282872466600314450983860229066806892697137883545245242574614390897733550502963039933842067730793487196602428492689124277967456138454039258599315806055569615632926230845359511682708455169341678535667359644163052088633784543527516493994565142480567039798325719615064924098209681035268058650920462321173355967355235471220439431774147095992723490190522954113829839403979057660600459470265334067914697257422257314558000949557093317815572436520101795505827924644501309057879726111026103993440690893379272881339090390181175195567491989407953531319223581748948762152132789207760088955607761017454459317383269758391484461388074905690724111910004517641615051306278365855128793656955233898294318199649583768788402876475069220406696354070501386022280262588907210073475796538284824329306471963450480085926334705354164237345702211556132191325563720931777469668515090946620662242352573640259033724594731311197999812849589444483475680516608653234860453891257544782094048747866862137424543526072444976479959529799508702942676384372423834191909554789286079584050697568536781685265204461808911369926969832979871790751583583856019456993741108578247978401341664015309914516844362455465022251379878218150650952943704010024032736064534318940442208772335003952571396069399455250102739763108006462807971358133968383854068542489553534563884538345684058861398397050486018195829719705292914272703597664189150565948639181950087515003446590229881426005288607637619161644633025807568632457353392336907032248596180381922319209913223372103323212389500491557472814672323359674168313366241859831694581754682578926666466286623741349249999994907413626472590158488221783989519972163250865418944553744035757003203031473723844048694669807776220637766496910396465468019766226436724740208555152830516411025953675507908137018901991114847870769654415748472172739816686987990765913006695507215419570198965023666549463651034697769174767659476979935813458519229292501382443891256025387089203724740238812336724009176489085692624906561883683580889770797809859374831004867345529839864465144535640962325865907733228988411046929432547279033331267756039503094766638857131040315469986341276846707569973858960715991634498346615158656927763141100457939556582528880917190297666705621786784087762543644335397736234131198637710316312787835734515758642403009493360865865755555615894990489094131820516090067146685483810522816967518120673360724668366296867032078381364131880569763764052773806682900425080979973666154450220096272981349565221974302354415091795115107681509226960936825075420327511078037982298759118995296009147053692009526609461716825670164702108010575212596059222596692445233755502293055302186686350761746793676845498472284103880508187345923521068298606781547885871710624797090799994384311037065033020043975629905690934968206202864901548047070560601610969377554761924675647155939908010925892627036860398252736143390580844648616578022247685530705900744251903112269892494009933913857903471143593101018523707451733372267921300595402916599498497927309149665040988407464155132262129472545857143846482610539260573804176127456077945788591536653451561974079361966131658120005387353119198674768464477664085320924603444379441755561478222473559597818378925360533569024506928351130522615677074019143747236117363167817216868393418547566258040274390101633082692603838661189623747005965174195652122849748894707721887516634091058892508135918104142496263333906796981861215609043633724872221951549197073678148885610727531153072687090504087536846326526325041676761391709021578805999550790312764959862090477282847583749002339802486227316711960539938685220058003273313057125242335152586934770382462725015392923046305184966046717855654055606164586727395346958945249963388358043163014203053429867050184384634009158780428126925748516739173641541193634291296928717538344287977462814301007245139276012708731154438854409381996897309628201331575138329706444103501725788269537283930842638927458346201109765318512000921592887591473166788328508743706293768875470934984725893188998892902820454841914894997632373817810833282296155494620300782068269117640276176023245011034912370825970054224917970032203466791824045777330003520625656595776553775070680165088219923180975879267885251068089205247731219699429956762000947113074663526698072907936474087969111470674552967708489301978922449412697807960479018013506975315333267354359611410834620212262006438859466189540533238128309906556585062891638002200664499449996338344043198442493627051837964762850907847589584980609465191164953260099715764781324103285475525078676355489001068768186037906333715858888373043268162590770451468182027313539906027839743009319125314312339208409820095571688733320897223365385114973261339569184874885254532719387206980751642992100439044952433342351517801817489333001735344503553906149357290514177574999495720284844922145070238023725953735350239357748097133428458173407141957098212163390244520995047484293336294653791397204988587135720900744200160834280712613044641318248555524880385023474514110632618910004595818777613896804019801831255317752230259330605619840468490524500346206569402926044350301979009323741455446710619127796396824454860279983856756128223239350740464704058736072278176286095397948571184308793377369586312491420899710481864046289105611058267548237167095721778625754948168679891082323477886207205534876341147252404643010605655585228151122005377789919817230148569729128172466464046178160926870963292548394409597699317849563775830044355864424061207545700271239760612085274607254236401487583349449396972992944175167171245772096197141110433629287211211636968241912323153337164181268527059057039139078539209384628760917103751663742890291979330713742450083279115987483803093589004304697780986633778510706568238533120165154521581284858971767760238183147445361116302563289869506140108999766975079828091383536010589626956081608366494984373183886775226260030078828146708769669405908025650373925643919828708086344692080981660444234818997487226674653761124188025236220960318121388017555325732573762722590719559524493131026257209973322896747920056948291110478422453378717037979901096326978217066196374511058872565385564280182273730524543156247303724327499016978683724747005484995337239423196173582096891471192204720062216681898559770070932920737189301900654061205931554009785421266857039951859947815889738052613975957208520517028095460654864399865665594234611453167170509009558260201504623985362538116855505887573723226012549309635618779392030903839252478428944010417022869292147898181318807709587788846108311186315521731906562851556949094733764527192045198551267115897542726285115265304611878512446348007144159245118154497657340504134815356378807219872469756196650485605731858211602605866057796206209218254776551245564850599083105011463264886923069501722915843962021999417603769050653691269979499487409242319510340064603302968643295186382708503198968783754454030648495693843877334818262025749956713789604229780294067226699911405285263278866689156503205328417315118317008473497878062327620822669052774237545243439423395338949439749318402705907091011547725765307842397442262440136458459479960413655770589387324596019040305633980186416811270322123434022577611474869148591505754014868722712797436856228423458620627492664054316217388747942727461007839115466411308917586568908131797702460386578847585780768171803204659846272176685293514056817395688605174818711025839756349006740229187328696235659007072862248378563564543936693330060124144114215271602205293707422164495852667831838174279761070496628264244164639433442468217097838988664915579004863040954854706154370300993328631425297789359377659295559716725730108477358340146045506840194232012878737579229858249678875909662122786008312473513566785379418469545488435588050117233632891042024841294261187559389363440492765736892926296298456959237495126411608950415158302863091564720703549916546099503461459585609687512341116851100337717789167342069429596602785494959025267377947567825705487692538777620965457311270622667523043112754967730368798777286700344476606179790247380593152021108378737980715033715810534699483622715609361438389596330758289737961002795370547562781436903825075678705345511385107764118501706852366031491743020301231551349968094356421183712809947623354919190889902427028391072649891899901220208243997038175059341910472631138137717293765679090773570676772515704753745728118007698449696420130612295386315743923033079011504324758126806141312695650319492761490275983025050667003711522239155295024303341682849483577863457779605452601692463859874854430781640589243966062304435450847868289620933159976979897023420910472946049574904469588402797185102474962228920602979545015999792761667779309765850746061843996050120853566930281578249744267953874403700191022550493664493888142530091452976400973642886227945917236975384391783482781789290717970623917948849467686431327476481693079808599868682670053664318116960874963796348857619802535711277252624807302639916907654910154153612196534997175220517079090791752300363630543043949728296174503443680839617859511423237669844222791319486585224413945963363861673766367428713703943346026503941712755409756450869273656991029067383504552367849964978356408697912873451433234249815473099920593464801087395349441334128023548953094215945431685684270733876703663025507271480347601888912424400103290600376716909803459949181732614470346532474778089380019486266013818093518483360903779232630253186920052987324273611110814524127877533113505847496221868958883976197124386515286702565199624523335995541242076078498645452023530238645462900836999016996077593810152232806622638078108176085887602916884508408639305453725758938136476991869487028589691206825708916541585928738870964816828745114334881290194018738193231118670014637329304176394703222254571881868425150224675229249219220544775437316453935458149417359799933496040930671427169025036823281795711344782292414782864488720928041011018348290282948607382714846728759613881758656252988918494222723574674340147844260283089434671308365546259936624086361078242800568149714352786010764629123184852688788876269238919520117549736471026136204581862970375648662443927917202752655535600122732679748375985898719273975545938271273024078948789644004341941884712175578304972568774433055059469475778421364631147872224502572076995091840621860965037098183102444534161208861089093217745286181921303332644540542617795596919445677804523303672096221989432709329733990604562872016931090912991992668181329315207034850587808869804506050728193695313710121533215341048408340816955236700339612998951256369194159442428861252665436091698894541209325449134893133704103173065572384023090295912417846189879437548958643366131767257290790863720602812626163067867165934858326559479329390884688088722993061943153634894598493576081353347910827561716659420791282386451989931789768906756053088576723717520939344530581847942722452317954607339797514288613337475870672770903008706112193982173945561829701452069691113494067258240404578601165619112910084356601032859829042597052704216935297026678905722075599202657328535530955892753781851350077573501026317911871472648196876834552544952295365213778040725424369369420679633942683055350821202498871303750172429014968831246258739713072653790556594988692390312733085802253613603727114310301057193984777285251629946237082636875582249717793953434915884333191050679007909803070310091622381193412802953384059902097820849304951401295683415578249471325785326558425777643746716736129624385095612830219352844095766954884788995009204361750473030577651294858841542723162709210244266019053793378429629164517108193844493503931304036078229726106761200833389515458894876364849311158406074537098878218866918295935995592295850982321479771868576844647362535019267814411584328444376363658256367733247458199346223722800212090167941596414224257892780526381270835144870963935717570052428290819772233829200257459690114820801592317420559538308055568296553442395367102415763739067623230515752554334567391062841159544902229349164354600871544995977115256230193659910782321480173871619244484760798104048073779853995838321279711075708105198285542768797199038742019023047182420242468455711243160611320731443428664965999769887991312684072615532973249034027761089734243567395979300095783520683978672346396094049362770531739974031682695834867300688945024063217656142163077488490663447945366138426697940467714136904575520618385923723020684512809766827761106563410536535671898352192131973999551615741819745882333970712571806114153967462497489251313838929219937523833717294855123084662091290738135681405853126998147947471339451613640670506878897077773824519583007623402151485319048606063022700935955562159657964535001799937936607536226579171056854298483093759066739761398717099699028687731313926353485712898449017552496806082808573416839128073146567656626459675498565123364035780928487217353581595101586162491140912598551354208492117388692479334402434405450842531268598520086751451863435049536845660746487982842877436140208881720950693067352029875058423555694866023156221405883093058402972084515852898413952178794899885895372476563905469483385554641029725921047928187803600850797376078421992068241875924166184349766564412988554377469221519842023427628725072054614812416390840959602551694279513016612921421538069527420838306811672862935158390522034411679427681141356111056753246180633976295584936304532694613056266209363219717036484715075980545744450696160730864764295541683063030510685715510523217135575684304133716699851465522014702667111192631093934328865769494690388460421194902534163459234225487782106261263481123378235115719260346985098537196673147508379391631850305081981419833448687309268229266839404809189195829881679684223042168585053892773525017971675554837793757887787479632883472822800102218885398657210703510702686815978165267801366839047721610806070129976636799199913881095477789172147386849709855133815103948247456707144685410439556573453430342609826673002683545198154596210509277308152282510160026756692749619255154377161776610084606896318116464810539702058173037299442983821057914088079575867448985191168652149073883583699179630795001800398150671452623118477106189196380068125369401337799731608173135698106155606478423005706930160062853707412576522630907870549047781180171867275895740153117344324534081755532487847822244511913743075462581231409165748002159628024292131810606222384899368846515617406518781131973710089051166937622364875689922126346095152912085500024015325578685966011530026050671610617191036994123885007252800060848200085504392034268767763241953647966570196588398277969962097495987209220523914774986908236117697719227933892276858971523841309416866176873836441695687854471042267800212621288710314567701763503295907618245142928059615898857486355486479376186772618578756546105329169080039703358516596227866199309852585518556893048868342172575541164285223122015077213839499360788865094264750942775660947126493778030150339710657223988561849251897845845563231857034011748217998512353602825378041834611432967234148996025047530388609520109519629318166733976951480023656106116344557609064966747742848499077189534366009845519365113050069776278588266224718216855783591684822107755689495675181448032624230091429659104605301710314800737344749917478853199471698139243988672311173371863755184316163281319475099861136440031614931772461323306485496513770960691534203841596200080969381853818918454491977144114884979126477485029859321998235352009438244175356492841451467573603119540479553582452551142791160530977467839234461608100914202562486464549144028993997947298446301531989147106633414173891430775345498849405519711573846136302436331911122852426881684693235093855453127513083991459381697303425235655627464223142416784127426481375527713122127836745662706770942711244387858221821487136348100559267881795767164815505945218796329795111591457772953402205139089716436526099129180047272282955976658538167862399914162272048664321728760130791184337773144235332490916691980035438157069808015491431714161978797383632214685598206741065090121385273445107414952248643429760692588331770009487924115317322525775640758182251579710935133052172354349618248467139947736643212188129056016289145661333408964310356896160205471358827478027440302352790705328082562480699425931164870657340328424862617440031815000295584376608843444831416171666548116009321104418131420394453622564401625371666057435406270889471691900838491625334365410210582719575289970759907655851593654137990795134287406280762965121408097979007298008471741938833567616513213033814829157825418279751896656324032020457716421821962124311147480227471111293208770241724929380100732877641752280897965761259089146711725702744751190599172145443964083326531077072285003848924338261521746369504070981597284550440256844454264454683384495159437481507071372721976118217506684422296026406988309844268970843137014834463938552281452687382898718517747401175796072203571196485854619783587309461873888283705780583363022672794663133320763408201022646416737073788466700513131360229876236791916386579237721930406960951534198573397157265548466029875259455042854857479789310356324387528394381323693505458539483459096412997373085213208369548100600562591562485461622157758546355086733232215274021610369019121506682547169395432441559932061656870946383370926176767884298836325967266557380880956997472234723853427221199609766029069956151687604255271404911082590280735771827051512702694233420635667968124611260551132103866314493058355411016557484861184128454025453531048073931222380855636104547593235558841791295977783145666388956238833900048219932632236162001311274332094837631775130606029058178560184446573435154855861576911070399961178835420916187740256416165738792164121026330542390978544913813100427336998182787688710621009559586009830818415808085611628435147310042288115507918962487501702423708721284570522267327443157420481217699810825668869873788070988519229163564160450368788353143141570424988468198367137669704387470070457023701295625569666270555934934480098406626991072355543192082863292574384073204429142176687020757692245620445588484463265041802482699963929010797392827586839854662203549284839582789490983078631158566706202668376086322169845131980129985767975246860517830279488978631480821225651761500608282584698336208209963457781488511410763004902695373991542670537567323000648623383459315456623448633228230592316469485320391655789873253476602622635667622910549114326577116102492920941098210197742282034269535963910290613699687929802726101706671423227294423982711981892328093960764814145027154670001050673279966282096614948374981971573592535430372236383593365322907018881404685348305485578259855163810543937096604941892513353617225326116095688442028685082570760299561406123299807350242292600204026230908771043967710921920838585439744718807478968580418579426466839102115860376400250929342283078749992495273638876336275852117998333073392935909348775404990154991150091905357703895562330117362030988121190479211492868226152313649737840284055388249542042806639478353178300293929672090798082420188378158671831526099573781807113559194077080807696241564722432886610249578417601499815822801654142593527669753636606372611604854920226095786906002614809278922920582824012787706991224546730216788151035602825007280582820219747661750460257246281985647305888810553869339654574525344375281004316943522377925788254087209194535254345989130543076171888669046013336219125946297189735201395231217185303971505050075337659263140925897447419396917110738291306165709437774752816562885364654930080294905290742237013532015292833090935727990043468764680760294888726798325349627358610117844378901807058286918515133004081398869752845520048147541089110753305262400437205678229998321261881018423249399192760641517227740456767458244144833781811431191626662662481085654979919534846975689540564925903825986669715260319997260558535342143184740741414107615625657609785107852954726865190565808391877982779172607923477699679679721781719505333311380813354079826319931379983064233269601373577872514368379890910127288808596952315816808441391513074011156875180197582525135133999282046156773747167435464589409287610566236048725219023043961036698782634940939204011971328834598774536184927795221206400329934770319375044641818064259604280549652897505820024856086227740508010754349923553253255190322550023803854385436999661022517058632731014021163139697028297758799903778103169573190560036656046071394826023612936525305627462064976026087175832718074992544820373411592784317136232040721013998369464920523158840105110637024802358387311548801682479197034582843747416603051120063682821117515035839557653957429274824053247814262767956272746910213436341637372691083755453049868372120089483089759279187635069171479151850610162525591828289722736004749238233844217234957439507069421598598739088390494463744584287549721168515355676235941063641611493705172749142966219932028781009698469138652128117199541316935241857247772050812193007411737031506078873662758537968827962808415089688391176943116893159153010351690387654956784300272906638726512545180955278772981736335352197661195740041575907527845060896559126766557297553046431256896163177251403749006357597672505245025481494661013844949406064721637476760970494313154283333773006529984284132928066975484162215645292676221047230035077108405431634062371210001190640441258280076616808971418772000158282929417965372719766266462724165454140511393516337139028527766646459651332928245957970462099842566369488739364118737812212475325754022294347863763206101880253694570755278717957685009605841471618414778370391755015525554278729936560690195859933247829231023827039097474052423522718624175986314874222150999768426248856692449861106339837605310386842526136280802056029753678958821709561216592331288965381383659703130252997411453325736875197116027828912890068618074529674233651053341345989233880267820870551295799922642652014953059549069243415181254551348355695241769906489080046637319212849592757255918022449545394129165713294239075326484662814420633690755138028925305701430620074800861585894648445223329579874504179710075021331096752820823021031308980968237067164767711778753632488030394414729621022406483209197824738657515681583424605012828582774609154534023534742736788596854085220187039662294142084178060059777356903339034230951527621214547324375300118083288477862048583967540092179477475720673156691340563759207298228358348964631724337155852601666336420426736358796820568412372146435466833543269906524597021987727301755309310356059112148714726805326996876294555523926250330118668362390565026386893581935475698206565670295430231569157813326554561020198680636624834425877139912059120123502254589370638152799923118372690971993465117154340703459376319806224562671465520415905073655445600645424280787916170091865078824030268719816752007869863526158288002483187684434805082268874547183251149383108846084555206987812210790824218105214282608934458114513569892778276652474921141591893471514769378236950394455362029084210713007680200470027937173029912651049472740613691759124575254030417314968970729367493417003721593763637800975819149249566996892563850448963609614174684881901618769281899726562187230232801315098645979811155157487190809487306929023747683457971678069095467222927451129496264290576429229309665985937204604751956155050705360602856020306725239521582504562641873782851692950537026802314326886594991127065935637934148132069300157565073425405653168155117119110031958213306800759470755390002029239926075749205495691039158840378829977229028240845611382471447527227595858645118649979770640860883458532816023653142326638007282503341719373266129747818967042783572262254831589459158606230357569936216041080266682619014287598381739730156747690931933145701493143212902653697326981397119031294182298097421489998993907087321186510197824945552184017247410670029928635742621267083631039702919722986898673150336090754301383267631204656160867773242781476072720423814457563864751807291412678844836510869042620404834803638372955429048316528092773384483490642324845552042417995072911292450642139035115684453409578183471517516791498260399155263673766179099389840430808032261289116375302298391556370233475809371328450896699239415752729647909769850607335593164497289318692927319098487085134432066657985376264561401583451963187734121733091571723382994793732630323730930728752224481608819430876678695694681704006819158156727866615826608151281506398369692165922305341736300352711487098384480395469951177123417382648004203752144667162640855847305746271396029803561608564106756117375402637549443990944907162765715383381472626794194967515906120497806005814767381395681706108807127946924647525858438611957189358108201083733861919997046807548046228149605115388039811203680410415619308853100212847181737744145416018562701540168113291756445946839373574536139945768524634251298847989744190267618545621164191631907790182375827535508291254250724679505436722125698899434250687269389292883048255812912778167310228733725156161584576045632159147253186378054877517267883036111598976208268642324273211597015350060413436585887748449906383885702016814143087275091329527822625875279098388091107514022676396097814385264413162407171381151853557724412646382801311477030220763938618655213249822687435440208703388153303148664605395421936804000009720353714089679413777871814107519834996832202912503588185142630678019002936361912142002138943013821460665676586265187410992353925112612775061275444796174864126188496894871964931783678807171558552336101162195196040102681606980051724792269926538436464403149034248227706422823065369761510278382342293180352033129278074621610464838298915055251143850367153127675256933725497241497214375411280915249756004610499849988209074708809375259660233827785111241013389480543484269195279065149391877087956649535288725065158417068396296095783420711773471428653482510814018460452582806140379867618132320494547992296372642599977632126577998505292626492857874625336889900653508772473067379595468217309824184761321759652878101825187339561098733538066618529620931426153797635406030543665136043282409546818721166637560671140626081894742662739354857498763370969167710218820409100103715251264347012279886057854596870651311813313085884428742399177936794634177927946336764278869935100898003618375416192328931251114012490867641586881423245945323557721921557756495371961328424724016262224638362884484833100194845122113396470439697486559106446012665610508756574820611574308949147418452344845288600886261396755241690183967133625503545212147288005735823685720056107322588586811512397770076371419324359504926386677428217734100174205109529826022413166483912935936275151377576806167122089176924980322086055682070129723261148569280799865895693553735612074499431529445136871463181895623613949076701132668662586564852635342058028073507560556112433201589284579167153600987527477538858253623890933458774062537523133149829179281147661996163893165651541277517696224745981138495567273713965445514253156244541508505966826507453425494797059787609399418388418254827260405232183467911498596270628516840694249089863378654194465213798071049107744048239211035624820004970995241911107562173260447039274804494747274456711947358434739447055904241777374337476546372394329913327723778054700904979504499118694205423177175103087249213385978968662070411672048270546351819113652165840393564416054112977217325826329377661843441506709839157385306670809036379667577443366593815610273890625022711918412876436333701765521792373633268970236849868560911589869782350967961488407519227667409052161423405541605924766116791214672138232279857387016661527267844955344467311022772156362670870451050520272700583128129300774563102460563630747007242195041929932886287681347687769453658927104701037417578858079267599260099473611603763218875075009679777888318249527385092281083058948173507596023208291044161372872239714646173337667219790557181328646800372307959081541234610694775341741266710243840279781048193878225593751622500067194328393270020129600980604934942483175885785261268957415039055111896085904285800760947994982952115257030273959262413403203967421359529714333200166868753338554470123638961096480979330859986553993018115697352249369712272601537110594882289780995275746620261701168164173969683951812066857381115088353179902034580562680063054351727356754724027799035283470901189345578968083959332364773047129080543210729137801546123666906064825648918753012215484978078184090102766789327876561796935715516408541498103069225715305156305133596153252853064336223492529917098268365329557927300375218972246265932424284286973127687744189589261662623833993690550417666546675608450875356163542345758262781004069296298408243791799459942703887768573480263699839984818636405140583146412239563045653983994478957134181796050696334901149959321782786454653988566606073521411156729299013789085914323730055516710491559240498539252999069154407211920781397981659298026364350806623377653287022699528745406035010161065965226663941957025403433604561976694437738291347541835800171185836089654049060538072447867982428820389824034561365559986060426655561572269778432516758223042669377246415433021866379036722744646016895610908614927042675790013566808912793784343356329101310417382188907189055666693172574980906793116927015951756189029854517396283158642129266730764074500887090629201186923780371917777105293145855853928546110878028105438750257033852562264862103538173024945165290976427962308107077967419931964204715412513255055244942914573891434098147500396138838377840323627974033635746389214727358152523498982941431742458949687033928878421433383005083095085389222768436163852302388419585859823397785513876677621993231097873437781057421249791617005697512989056718386536169626578617337618575326650168151280165884124957749406813846897323924859609237566643536253738246855219994833748634761413216637131799934998049019393459158716524840064835912200611635918977102998628541677253865122986091147133329448283046641974016137190601324288647732540783104294912660298576995388268950186028532039749824500101712822638354621910303975232246950714635484269398392716006772078660623447676851118957467039917449945959452476872438301566556992187676864115635858339226294959586623869665285664982933349968502465075159215351373158819663311333289658037205457908545287471451131004650557788715719494450895022458759775460464832866716491032094487387659390957687541711489266744337582226294355083904745029812161731875784564500201936933894648974145265556794434768872344398289544095653331552960466932422151941103092260445883131699426378021622732843932286262759241496328548951812511748836157265746334881273105166329726992245454180610516336098817148923477542735854718248612504957637584735691823752408583567097355196570896701446554775036884292180077135029768984905535478025363461562228712621213641157810549440595614607394656358762041801142669934310104755356013606134143127488842827593182750566573802262233341774055622617840503907528498571696505919705367494608083341318086671630819002924604098471937901371839530764932983511503602039667405146496572499784675550867751531938703523077335322364283481099551357027207737581674960269535172881244130607290054563024896507782287053518305317738313401731737239874677919860623996679724517451356126460924421439483092928071556222584909485163583740751085838502603051058396805908771176365266192840789046774087288342327322973327412277283784948167321656323215308915762847103756025945545154299963453658596594792149590760069098268039151239554609960656171878930038997688528007830455647497233173820132527820873700774241506948830400282136512884801801215538967322065991662133559980223286404827497484747964605505422351814145236884814299696302494063811814781739218647658795496457800005475839248505719474491679852664845256572871071308323656869675854793667381816311438423608111546507393525206506686384813417827344086130982084835973706566985164405160203175551319267782946928212265377346899897881549421502576890730601153839778355637863763031925816198667296318869510812977757707351230956693049419555566302960205188722783999947419706277147487785581085944696775315938608027086665172715476163731615556430994249732189684273097020244926434255780130207252233788438816976049602777744095307156198549540455280251454282805237619174585476312024779045939686650616083497248472517052612510139101183915556778509733580255313788544438052622345868864883986245943354238469288287665271084392386118598172090310227684822961025320126297214926792732431747699722939876665257022937110518311139138845030928349880959255832117777495866939254846758312370104436529948607473686372788753087472634787221971387106676270051732979408587813424046052326153626377825885627512007949015024542547686671431750998591980696588343676871520549500014817953152919609034236600981242486809279420274113498679210895692305675827890912099980076470512812666809144030313851453949547352328582305031588825608105566057405743067224903375188761756902099954940051183447998171461853434835689248139462074114884898429552084240315847077768817593134662881665889977408312461725716508640530376241240022804693943007450229411212433324571862352881683445211386521714934143014642215707100903166854290799115035611237087442477669326920109823532158483935041557992466857298461972181741241304494234951606908885160538806271722327422440298472560942321721283755598177466323808883649073668200953092298152467407122857535878559300342941446435785077539646408914490999770036507987182911304293774662383203377973391069384551553470512786278590124627491176501585652009483238705642059968492399933460339785696946234027494042687124370308658456641110759332015365541915413383099956667966060069123490912898130162812944956726358920382669990003709370590976410326652967692995801955710397193822879774519215778623203910346535354024912948105744282908964200600355150183824750692982198504606261562990117391293625949158153261528963659645424441565870920646652389385479965580771209918114668878116090628337834911205991370055435267497813075889843797285193706570120960196812399700479398525205122048563857230378398014396622637994995149354703499548763869648246024175213917101986776266342946312200381586309567182043008596026282425502024772792615264505273738608095996663122891758015644863984757053503861985262132481918591862625800112577453187600841798282840515419422310231136764602765356974390944613259253310173214218754523094895190661469696423202320385475767037622237127516385705648834060199788822843631781555011386938035144386100109608002892147247821627712634455526534073589274481166362374605699404270403124828668867951071641444260951200284725785081437208643480395299573687568219067350516466201172021690449347913810166856427139435242497407491814765940037621342359797925593788750566118781519959177042761752586340128057403683585632388424018278966651435352812457335336886760932367363535080001299322222390095107313235256409826791795150310860800723882733063994386570411480013767251033688215274785465185152880042075140928585185934452486635278232515130843281161834587085861874259236524495027157156390742147742085272028704223023622832321171432700161549241244399265582907979079369755050553165496621243534515118421790866070239090340097592801902437655291630599139576552101533860228957331268381902755657795754088690258412998170195270800056122510697829675157817144514699712000065962514083842171850793270133879634308101686573406489806895824564757645239259962231484795083046887971519894294396585006154285670500453262959705957448563346051825638117696805494788621585420951827971144800348719714512490325109620955566954305231698100245765667127219144649297226906024072237529426280893767235252640887839804047479899503065240400326001431551273488816057632121298165130964284384538544607490530745230193429362073197432980310010476336630626359969050723106194090607578576237457815114256958885766005633486051146913498544542128211408734772578769765929145688479201101068467830946221518914932975623099077202704154255743870999529303469026919122178791465145912329451797251702731186954020893330701686839718536004960521798363170982648350103690773389633250279244157869373356856645963444365372231813167352220232265167056547499891793656747613087102639953939486318001384344707589354152375673745006782454836609919556857286399751591923091550487771905477782217985196698399099993354506706190267056053266872035154006510541198815584595491057534265735140677914798849616687040815890701472873686099027841754163575910344017888666422149693668843701717354397419590137020534593756213856418082439845878979362283037481182119222208911605810392870247110259038229766236872907350597141004701173357205714514734228042532997754020149548905902192368899780781684084068374848037417391763141584608012247405900213973494056443671673864112701646781881489795385708459674574962944071371507663248767460574537945431264726184923089083504073214381876794074210801486979786223243592614887893218456400437205083761093818787432122978397208348489485601694272854628969925766343881278488201364164369688869370779891716579744452092961216090907667526896626634772430150864767316883954456864637626771783853606920605014560610905677849493649252200520024812335340835844743376758135205507906697643641594173092180807600770593159186393468559819233095039523198527723841956022232386745063802369402440478019387834581979263181989207359872913001913686654949635085953263849028275675891406027592287476706733263272133386961971079588856158660992571734833220335859802777597737715420989492827838701979190281409860129784440123634467834121731542059947158480576401031261839809214530221122218151388184870297967035966468249018777448755837896684809010024214658127498524282185962969294923435739466922446671675842994846117360013525928953942265246007343514684236107075159127515250618220045651123661327441852327377119807490069266100946755245233408716801835140036783377058319531586809579418178876391427293570265602528796341752628242166378850356196004592874801117848537382654950972521250101653485005101392370196352823052501028918055667479693512664588488248287787443056278849255190062373378788438804612690725669602130193157062031463632156937866930437567218257798929180354634442898609849883942839236261547702439116515635976625978278415156391733912990625605732291255940748122684696233365751812488161793746497395953470791466714764455682178427769096961060722456371850774189422273269113284108692311330384625361447857814120919084679484546394025828224436865981504091570137916136201260002593086754736491766607748932086664432421882278300032777312434856837995668377716029088440662004182038538113949082616165434874590496157144180717570460110436573782725446716854011588124344855089405085286962174209999389910157111562217883352320654677735887202848114129721937777910535172904165602801498616580131560276167605265872024087335944592402396463990536604216044534518030893490559723416616805876999787703317285806405746780958401352780399903341827788286642146492729412163306245447361251953867990187866772757735356636325191106498892695710835691028124718227833747925205463869371015300377718125178396699971893694669420048434483492999316189346072741043551899876012228000719155483812532494475896714989734674122248649709836140990007725032641700816052960034404163577430057536809326660962146514559478273642992502655669102818387739164604842247276779218785455937522797490739217778333743427024956902069824193554012983537078169329467753684506776747224086367873042484217637096557637528059282866486360282310912637151652761274152206697200441859050112263608209611214597559896458547314339086935122906651142977663646456053472463033227666961462658524146804966439889643022068651644821184485135739445233646958279832739647463651445341709149061494397186083211771818437125650738840889575451302776430098500563214975448080278558411731694873835563266176951570679344166770323650532268764864910321958195129006943839439179186802688937195898811354181943254535238437139403857023726752063280279235091534823696862204994417147525002973389477935055456295560505678518025508637967028675499804647860328272814564967959237223928828707554125109058926203255630576038431080598225578787283778108609040556914469507428119364908979907638759200718850973784548019981056836285736331105087980395356964977130141011285251215867839289577134211424132907073445816765940646895695728295078408029592382486403252761721291958217102875704634481931512091437104028933126378367955907986302732723584366831645404228193240122876911698525826975014609459698313079688745436873260060818793825810446904711450200802023411827149596502348870811080112244619815878709203200863254148747212458303713276607079875031666627653274954562330533306842706187183836220848276062865280926271973703544523402203570997596821930407299088420593129455580445544820414705563168623583103147145573612691673016066723733498143426069214122705626744189972702114761516723007851404048331464125635906395706155216870932964387706717962769726489909489465739379511866441172335135583017930944328187330813591826949380927793490101746691408301075908485480566513336633347293536331505630544210817610337325360009146044444872607394273798883737368879789599306407987153436786169834332803085120688041635932744162232552412799504218404629213046112307986209541294055745798754214885204306107121234984509536615915843437411995847437435186988245875946816049848569829847144744164818180074220041901156237301974164426479825932525883477164112003147323106023527905020218707230661124807811501388366853006700923142591012470608863624589145264919234485743824646108051576073579739586800849021104877391827349305236276367695565061913546506356701345955425833542709096827004313584692712210712146813369640331586942211141284069781300351642523741195019778708538478570373521886060755886583015295304534257139959584456577083260395292406689694874810395054127440208635174149300070391570167896098883612551294011935581113230569379152281864384189586126210888449384608538998181855215987869490698598943534162387734720347969158723765111193881109077974627017553934964583082208081901636040388503694959242952718853049412901917932579451880182416661574981007633108903747861454259873166803105702250847506779744040463353940562811432382547416408373516554916554830888471731006182608241591938578090152207365307209951948910043982806952268946417159720369115943077161412753740295064089213109143195850102981404297060107075922891222144286703007411192132578557619269007443465248948483422342327989474453727030911021973522861738311721768924027869759892617922499621833479575790992157244278207808777452797460216976150401564641414655695313207247767764857999780179457783839117612124763106166929877715462494048897776142668341416390357363523098687216201102508381331074771583131038144584097664291874788520375384333760295350465999426156395718604630413667629838150723244649976483351380881878054281242236891050904455424404707837363938536050644326686791579758257150561735896799542949023698571574812050652075951570576642228169863575669580845964885135335990746107932967531329380338051123795458224532014478443504229619286759740189919151999640868464813452624917698197699746677026772581506064898212274191871952554052201312105390811740066871467086729526983994151360953684650242722604178555167588688670355743897903472801024434860864598089918441635032312677541012355645242493706664761127696204110386029681886678467898158522181180933338692281444513974701485581808034878033965663349896061054997324796396643948351474786760552402460596756390819578836959252895714902627691804018377265211593005494449367378307078164247482014861178732221259501450663756137451531959994243756150019315069030699247050326093092203761073630142561127949040109404089514127786752496988946779948505111135540271591519792758691319890919304519092240409040756087879995361730519649636492371370425154582110004658000340492839486541922259653868637728769169755622741344418774444596763141470828061553439916013968321809348088859651403712364238166451183330719246694507784447440537711520504347446323102361712986495335255501151046390356903802053936974116712747634494937159225442838268254144575940943155356874010934875959912775264975725771999305876781727159415524099242378774601179499100407382069998316133864122401100316531825724435618132067346622556791666190688134426946848844479782664254242336299602877248495515076915160780194743945302631436050623661508549585878703761418372058860216665872101992316780758883885169267200307406188992157801487732492280294289681319215753725265160933328317126439103637418547318388839411214344914218649333384029542182955331276225578454192105229594413426322670353670299478897259506783976099597392528876857979362863638633333628906150551295211990300036355967851452977324033132107843019279696728553801693917561363295483020710033050286648510044299600546251657252236438829055368090529992792799287506621270522232249302693875828961730877782460686391452595275786505483740077540310317460007294654794532726935987950483743491987575888596311327440395856058164536390215298434607083604334764159945725532889519302837133669146116182122394856403135804570343195281703605580046742728660923596171485186575327581827776212987480095921710316207694254261024574464404004105576168674594383014977442230157492498242087448653263679442911242375725837201190005270467253945163783926405907675099473453344726962301830220308518215481542861316759868420019278859968813855387406034285078136692617678896896508037689018910525763525251092105605971130590050837903992170409632680097704900450231872561122559793124283631920689909677154920798634517641484980426075478179800642477144754214673120640721194270108336273241345918892205432799711467265920319113583927766600319944359419163848683012620785713110627484844607571155923240993490363725580916403285474068331636747662788917533900394755071889397784131816720476603225795637556469367172232176140242040989893069545830250235228155291151620870389581333883893404111326023280985680132289438430401984847402641534799068969765766874228226665443178813095938780497849458519701003909054975911840379211944495427436962063854302914264422571139555406320536595408467552996684911418716306093474896134817707247961894722984357031647398457782317545488333181859707963641965665424600999854444649237198564279574073300027199748826721779613971560161148268418129420942995754652759650629341572499597675699775111536112885331716578574073605988019365379267026026709404576131994008710394610168069045787262896046738280367303572586431766177430944053178339682145484313776280582607043732788692885736995105867122799644504980196248970879524498443958748359551599008162699673958578790693832136454671892549477652583064147233370988765136681240422584184786349571192733299211164192057089849768169629840179519816979910320117564271818564032413254800855814027748746614747705188774665603009206264818663708635728400345173516224076733987553260856283408669141881811011147766811538920122964593328548421721443766522251562345316058621812560713140099681665883288534103034666529137915640487963235859101132065533565895652243362690410447076353753533305272687886925046107123439603194844889155068843803308950628478949654546589635811757219934193156813084797118904827562371409489668670397928266535868831570530433818595526680571427664279143847464291463357929201372765719787051784772584329913719300898608912367426792234229569541173073519525672803088594186933313183772803858786265694507274432441882200536481947644198051951041837239101104693538289581074530670849111662116724312269990363570291834677406323079582870193401396867954002839790348494274368573206309837081492274906973018625109039009452396143274438640508064239220684441204805048733780172465544995497655959070129652374894165911696242021836708677536721647328705797976286779081860157158028240805051878136302155135645361901098852442381324117681240387463288833369611814636286137067127445584497346780800843346723084267320690874317213499349626651575819377033621228239672134396483821104720386089097254452097083308913585654973933334713942917207793087373047743028023191424681728909192597576466704969410555898774088849018597392729504851522385982736530792052195648434724801916813247044765272538267295914029295121219364441031626240391972263759479222943804367673169414796859553441878503019770400971312074702974876150877829883296660729782801918588601287740481323103724776825563086997755272724979344219697315982595779998970629586741596911460876853861776514048100703157735042172458368578537628609004100743088009299391475983689452796786572136267357725620766856823643659790550895613354224194303048591586456371552186537580900878413362768493647555946228072146476883130041509754867299558165722421538997365008064612190806407959312672574741479147854679466272457924702221656283865442502234927697732825479790619067154313251899125720600957482292573757046869324698352485965487418495381289517359688491305858031764292707450631033942521158801361335075650674444932960263035419198350178859918219192355616591789253955614577043006151704850812415238468977179347089474261621087887913373628669622728972599537386958470417213623332038673128620190674276056279716237069286061094848838575269565901305834232667758650217510364246613560418539730596348931550751003687225886215249429942742507211439843046139177148562134132053367755627244616303764852902225738063183408664769416099498052199537024600944373164249782964856167970173273638291860386509260114756801503685388176874513114374497470312082144830464681250005616165940390692958989643144245524846185903005530769891248821240734497663406654703497193141104706090176201010357163826113837855280796525566150712912939042941363559084475308520950057484436106300904291589555054903669338012312180010218849610287735434492827921377913520391974856708296274271603720777555985099037283990548134773685401635512766244714679923723411804465955381805175306368331151228981537168515140092516092497739901013628568173830121085045427681585837168840405371601565143794524941902379518898850195027405863559267824393468202780795525091235716015772801199828175312723443465842052182737719252438751187184706716053497605306245736905618044569004623799664803520038505373152675139460662198009376614143939084319814893587830021043568868841130983531032274523849093292693102713154721041071914558296478877174414831398152152293761931408232763019129554276760039908456492018669745239482640409539569357860162929573621290333891843225340429177797437492626379910239928600319367910240275640165271651758928266693703612214857516515208585724637507057824215151488435749797448485978993024073633267192694814616932787142213294747415968693269321314631403919183396347566080345990675922433297666297574534575384620017954524323473242376223679321757575249794913883798968036103948958702520679828591451102277426584295696728951234838268083461387008253040949768016691035104332784420315122923567478428954115253841775400562048156273419268794615548618156399473405907339982957183402353009144411559433631501360901156965233064531700809580298680648259704368916130461544623927006602536012260748725769457554405478451491859760620153695628235632308685586718968259616781947106201380925110484664771497514061082325306591681898611339609074682543527741128513492420061628508238643288906939571559532187660928972583086445468613684218879714829266830793802002243217635701832192524449054682633397129760277697399136774465430984355543522937631217607693353549226459794894007261621908986757238236706790228400139781673554535988899760626918273881497057349074947686375683483781650837719293558963671954488393523145267789118250256513146045202044922657996112283813019571717386433031748778126449817439722036403179926256706631740608826177059039984213128465078722806502218792296027467305723240789897463087995742759917454055113852048117216290001902423108720741170550402612994191993623572026760044256531720011315444222536209112481092391966333861824955339773033069591746753599801628190141027058831932150778265603260158125676744159240596945043562944898695035660053113797570192800297845379162894514841311719318884716243687915256120826165732592635495793527218633377460464743196385551016390091624307305740039848912963741754395702508969428666403224429036614503588802799153974293116684743567636746434418294074991989912107779241176732376953900392393250794830257246951157959100607985501821332145071143525992066651088372865098931662460993545200331667330593067018809243934326726489701899766664906365537871433867440655015195452072776116390438350422840922783038050044964342948848236905538760984408126853533907037432724599698558083260955323667097500438684536592702948898401589975297181007509347697129624980136154648019382698279064784608147550284893819061514384056673656298500515932303618758245280005492706447602118054407161524439494035485658811448159366502008276661666707011389396292912568243013579994155701717468565201096583906902082778993074416026244323959800570996030231150250900582932035853969054529450152958597199017519109819950911236624703475089658982972558147962466263789204021802710616944559083857930384284494009259565331769528416244026597929007974634206131234922106411139094447595463988825646369577377985389289532804260948986688235219303678609773152099920794921928886754532583137462851755894901530941581854047739477727968370744017369448958160209104758352303653232837808065236012882254559457593908228274379061969872290975498390648310052335244173317038952868699325387594456414183490899724379399795768257538629413507105919887786245702702645065596147530112128782214196673136978616248355895879416766952763051320686360471322728140923185338222674305127618976919260054705217924677982000958364872742597342025381508340831188347011687141988428002126554880453506633956311791215411511972561371747807713248701299852709105606890363558942445048321864119702306786737852100505016488994390322013737160755399182290106401856496928364558421429523914549272775314236683528856040982792254923341460287171054293796583314687521277709896708321202827870496943812325372528755853971598280596268259731126440004127248013812991402857593134764250554054861836969920133435766441606881626060826649406437830139856810320268702014492500921754642996738564090655942450567752793595216943512977517038442137682640881204652411838938024420535425489738598263279646653407105364586065818384333159583798459016215993534608437369184201514729613033203048100638683297084500727083572685701141658500447962367421173474197866638368192630550328302606394797231502506950022222205742629526795175578956359889404585480250241163216909099128333514747919840511431285783216061649146800617477114265867620174558247724229518279415796464412980251886980237919371355215062564314481178900633784744523834259747051074944011421540245956018027743873651776275149809871531804909567986438808475857621502840766697283856845390586479231104787266931713016456964916851672309681434192548366957049090839293731417825159779719194863167821402073267595680722575514873403821913204489367725004867853487533969792574802816510545939292425308816103501339824276412110023537967788635501447487987327600595376563777068345398898139923105188147177675568427031625956419305021375749736833293724148586389249969886963757159042372116621170460070911650078226299288559434407125251014048585436385128396079013827049146667514407679670106786232370935919214288623870092296798259417582994590547358506476236089037454261756806665138569513195001338493956260876026346798013207830135923183831881045919092442330388769208896744054965015738646549971818756068351384039924414701282731947353026874202370054013510641084357607019674675247517442135409236462860421570027583364049415608661847749940509040519538701668990374749453336338997028372943209444530994361142037425968959498788741734570998537236615618910514090887001661177584320236800868268617577917235907411311715523970348838678329520115232391787836674879718890040222809578322618755299164962446664919101995822331683806210428353527388734836621141291096367243903275057857918587884151003761227386337200931389220010246692221554870409618009998963067564241840405484232624928931196667316938317723096754961688443056145894290413785016069779794721211125364080186169934475797304513327358363399145903064787517761383659279114611045864751729610242542487761514936172446172849908500935538879064801256792850681263349816387752352053815327337745138983654434618750519529825797993342619302852384096793215757320220648741152047633697269205395288410545502947701659671468497461593819704262410562639047254924232714391031808254638262894439457038747992816820666426569815627823707200462311913711613050416877579569250555369849416731484855837281630248032334317765743482262589706892651334365909756104555034596275022972131667576653751330122993561982805493028539693423240589540441788591682146242727711783242994428671685798551016998273309566433708022912514305601961979691818312335574798577921348693472068218968434160801990679574394649300951230248214144713046313530741506345645269965538545696377174260270946537701763240505065000149043165050263603249469798640304005487339890890326765583459624923615197632965289296473369333717454931528527635154085202091052287803495766094543218128451087955028298056658595829475706212514812013866426082671715548362736772478724641881834076019679968500172105417912927728984994000781163709615304341347984472171164227026416752221621034408850551408858337308268055101814724580744796105023710727053912164859912415704895344475178657008558166464200038367724300120577211130915374711757362875792745169068021231617155014587805076141559606347041699989186870152672236909268188538844912591915904054809548094963812401289091710448747344831821513650991677416812098743027511384152358572307453302618830928281105122451918681805730147867649522163693161485854576499913403647242847263833306650543326096450910949446694367728387514033505912489447554986746583740187629297532801255653049369390929378432970861955572412820121931298199504846520215340513184093864078836110056707149530667851852580782162105896386007115390667465756655277737680356926817072004843909901921776587870090352726637572737296312442028219075747050938359348870394232319988960266980277860213355195939184811975905566947285142008117097208421233132098533794865756252461576884687236227686336977143551217578753827117587104864758948092905824231101522550827334311470671658892249425517832878324842536261110105630428638548483385901579944231120112535773164655084395222377382512489786796904445480437109752163334297003354454550352038813982029041510650425088903936576676782323050563096325462934028696957081175723078681345348686355787908677342597417610783278578905664333792672092469774041820568060775094537677194383152906794826219720074766294015702424123340528480279656756929129062354253218911884885198980373990184653544421773203128997566130405492471033986653927171694277041861338168845177330892743600442843718022278419414943049208959079115647447208916792483713738447553184795019598264989899560011634129901361587861240328919827872875437142577949829781738153914074023542583286877740587490098432297610984758484150547862623812639514017841598845111139978499933582842957873556156980392302240837981140289689996030876630067256540625421814176758450703567876726750449282309788070118373258412573712306913682046951519349976477447627244599575335518480867449006246084522056260585070582061248563645394505180495988788270206447135662614833670698984853151760536062457022555393596450894746889772168728616831101009445771633774702880497292715081762972902010966658226327946663427552587189833340959892235909409224043258458255101726561842735053031669279303983369952792211756335376312708979239198841101762032729813172484531434563606848191839452116335930648996070853888217905004608066914167450370174977569346277579689772127015179957444737733060728223055809690997000971982661661634559557058476928920139093778314792989588780386426884646111744276122980296581051588931902481275297740780834858364457084353085565094470010235759996392463285814497243598918621052359658436609471946724595011520340182025437059613163202550708257319544499641007543800469535201112869748320919759348786598759249293330613331676227781261881843543901751580579904964021459201455694342295140406675276450076803757372192228463038949408796733259855281782476317030425573566726030277483117920230964908286295990029307020144323716970129979593230223926997547254082317899391618715687981237772301394110671398095587029698091070711467255977124879576702556426797574999493182562142684673366471325027519090578205743514454908687816335233493562264156797027872156312665705116028523491017378201590683205156040918560055370568040640449718867140247055362317882974728972125901694563908329606057905390386036101834468703276671618591848259396795721196482181565434915226588625928376473727122596194608623139962115801375309389805187307709849893415394442613176629347646295129435230601586668720105728490758120331928355323286695088082510668469510284702097433022375000783239951575127306092560577554047111167731910269106694088950937104508130872915730800503633475029226312937231617113889775009522882882211877230060971900346991496252118404570752332915370481507128189223952322166708738271374246290450219961735110320007111675943652392649322018957281926076049136341265084814660471137165557658622416391986471972494158238540124376911568264045377081710291867742062999021568747939500807440253637804967472868834650413964265781061700438334001446114361352941407387409451336414006717241522716446862125666354114811212037948462569754250153120790362854937969018006857283747463199844664723230417536960005646372077290176023560369143897878616016338834112153625715700765321408138203437687268456911249074461300239878636745224910228107448901245058370720351451554044023707973453225165194165548292983522022349502965009655056920855676216139707284759255688993585887909077400513468288883051634633309113678180671945216870580656288342798514088383681888485852856693693743080378253349530012212381102557396158086180520998168148040588386895589266284285043931073826189184641477222779896948803960566581920045350306700324563110377744742899546587454557383647576007990512898576558789821025957878937386347250802607419241361435986796939859519608959577202194142869127261226159888860722486668168657259121873382936175356402075695493188694178462658490565693968157659092174104603358870294831721744841380786954674499632148069844794742588138454833472255839799954489186410297209982361919296959023664855010674463276163890780510398176998230951894575654337170040576227518098745418108291685561135982283027931571048941815877487738504219744243025435439006915138914070967644649567806639316618259601944911739899530794618571489207871333011328903125452057060302553765356386566167995336474755722574073870114087963953099517046287420350500839372974860480323493747637797581539797334054582050684736773124498940552829435448989197983433408765988271241520842595641891784684643745522250083452161822751444434956684058909835740173265391076264294901819857376246447982647521487995393356836651459165520357270193010704240560943967082613310620081408875106093797571441991673861879411351967578859065084538938697440092744147992004109061545483672477553125799632174027957444456943383989132923651836150738495866587860932575026586283311202841627294296856860149684448068292908874292153102842858755420526187976922645952921999544169925300376558986282313258741645319709852334557465380985895417289127766781184974371479014765380880186518186317894325063145504529182581160626557994845023836757549758616469407983946081779303771265401247292932891494322546801031154017224691871146061109398782553546180425073045234804026024275435001186639964506974408910616489540921912891697402371211591620261556014784540048321645715478451754282619667682679159464093614387981075426482502992212954824244383914951579771524216789226583474687536144003204170609392471538278883500374497694390257961447754940818485074903381763608275626449880164368769809319798894951341466843177747809160377731509995833254783223412335724882894135071130003745834890835452928405150907641137839457323246688403336903299465867028976935786054393091925698019478013715854574080822270908597728020913258745471731123504718235000429296716423323269369912331098105496600486883060918109446311529668415847686111237079589799079782367104662377216450212830701460470010448869739171048657737755343624769773555262126305336836513724743276638652928752843898481652436645627465832426750232823431502808366170827429412140564100451632656815610483365644811312325810761349942192568211040486408924318150543639524518052899620617842760414062759843872049389075318335561219211928427215145240655451762664814038127816301437961709680742313486008296250629906000328433044378235102756131843919960547395062328660406227525370793691710696757584249475223738562353705774536138968140046513947330482637391331165526549264981494329934948955766549243661140422247186406441793136168255048492940726145997655439556511946148622852957783564078540612743482214945480904498736631321961270316734442440180142419710660628581638938578325851787123435782634272511920722855549914020724249679885302540818907465474377582076738618682321798421417883055326556583162515465800619430006295178532269479944269762098726884342118136456244903324840163641643372627595869611712007402700155158660452100349349398415334169027769507121783722883154052776646981638796682976026451573553664346004340033516913165371073620594433943101307012487053457277302395106152928675917675182573502204210288909682786163796107804097491199186204268342390967053612907960995412640743158911047185029023330791019525293783442736024104298468137764847026493787199325730471749444036343503583457503451834779560031289547474090008506684432855052367634332710115255796815058366027198999564509337024139370383521450627143137611371441943245393627391958233208580397354132669684786915240850014081169405199772222473029368557229738350531396713408066124375707131876090684763479916675558281942024392017730641433707073962813960961147372532165023122703051858283685116444935961459456066933795606059806299912537755483743857030673492882539148751058135752902474249524381114954642249037754846266483190415209164285286944915615214040452007982382638135677101424655436362610112588335308172241681478708644749477257341473954453364393828861154529177024513621193901467235891455361597054689915428188792589331892838715593801140935191018201311126705270800379363837299901418787362073946812491041048933678862397538223116476793173134248896691645951473758036306994840158751462513737740431238648213808048173989063438281470651961576171676359553515053044495210436123165385502601654393407518776028124965329755153282852433770320721911642019446313597092655104778484061259930482084503333262605932143511640282194617306504311223154587792257781339996850883979589236395934044025241582593826865390305112681679010403441629037988012989203047176992758950676907467087166016805132448553662813448277462922160799340495416920290208211734782866349457889068732875699771418368220574990438782977686466388780649913878830718644979127465937752559026124786187746913853460532448737776099137023665293343011403009990731615299307182850848390142480196732550164646288214964534066476254184994170915151291105044101208740462180064918522275870422341506702938514203120764137016836986199079065000463699799424136656071764163832694012363690225626672112781199862972959436137259196440863351506250521471684508438838508203277635489360283368122849803043187389493843668780238310656768149140717784110063957117846287846931544724286985002282405539758705086689083164303825933547746182479110803963629354835284981530576871640816717311015883498846035472030083447402235924140494078999106033898412255482415891291924309469481938426548305058198635656971107565678307386489557846920635592422924941957816553070953718375160339543777575539522407358645273180267059895299617992458516546276527792872737642818722301853599113817047240501669468630704482626808800161121652636062157967198498243151799791385085492799270676410792969553427232630718810937422912566067284602168438399076627585309077504367187680021904482417649196817391032638771912608350079917046169586504481080905685231692927404545177263173249849208032607585268126322153963522403785779464293607879338171883011006814280684254659914754379755687698999895869598028211408132030865698075968075051739169311702744373007258311011975159322352740247864111471139313688186513286078087003168929346769800049658304465869766847210246680997623163284814759069542224355788046553618398463151322535182265923256095602877760684857603342627408909802469290335366339881362098775317963964907506996248917161483810116896295466237069180831582163188254626192053677347441370597260714624958748011501843155417963736981260278215927373871300589688847932372375194135850220275985917361666496113443711041853664313856818409307336429085811441390134217540112125806578117543504978245816524654702941832795379911189699287130557912309038617390214938796235061817870852851922556220802453476073892473299644345363950535955151449557282236108652710581722874469346942946187738696547079276736916844816590581502163407443623549507416950506227381309036404988089095069023336543265428044302596879840634701236037959035349999021686400546861494557224517190933014034663053782515740943556598564645684434092597839636043611243199692910124234061425105812031420397428966543288468517875977299072167431503180865703033376905144150068081088695427707107542353168779877298021471452551911023799736086340606002680845836481884049523698223473674212683496323686606548017806399816669786083871402713008266592972826414432171311018276488628363972250842125238553845149106191067107223657090679913091628523554830350646244242814653226224341645283480482754489315599201986973376074280076474613433123332832492481527636354304292780802888110112189546071048628743556765416823733857567783069833840581946477612474661916006062500001057822251617072270335479569358725752868754501554845029049159713220018345628417344198404362681416597609315990225493505916661911977592581570891156127854485272501354040125391435292461003463410509603573118378809850736228349369805033236117399752213627403585565886226181910454060023191124880266845030708188039171013401155345465295740503468891832126366800620747406656787087826200665161073482488310716398739152151769519132819486300026691084917278203135176402596210731468719806924646160617276656377232703202957915167115680701911794259957467835101671979587576591924985350198880789421879724042955906092760050617306844146187758589626620675595327561270744824205009390743322124043905551302821180558237209442160792994229997932845608720447413795719208709925225119223398093674942536981111685453673881638944089191579001943139433833133047146702366780540037785022854318891951654704872139956055253863590590819900814226401158662345674697769205103514872012321291751199611466376569852842765207498757972998139941821444837012634218066336100173531264971858141783900158949420173652377918585029428399113797828264931844860305153738640094820352797465148677569802193653714795055185556897458492426117382809725899136671115301172273446992325728466595862826987213683061375823134626057675613517633017244111744539533227172239210143015195232812697598170320168643602972766243635500652697008960016718736445892378017069984146889505755402497999213153891947738969141868313724480829213677948676852701266113679873189342230844524552513416382938348433568432105212874919744631869842056515607772669245683590413475630479313336457456967095071909070298042195381180313890460467078472827295291598139637548765184682680676040495492477322398876549850706440995188584135911876999340898222030565141603691578613216514534238991981930058516356396816523902696348081181143144911991175875454807807720001323995296535034688571260412834118390871234438681552949233505911035300038567611431262136770714142706953022913842790590386012293426295903682516278135142544007683268713684256972249338104946759262328143071980437441434101552484694260728228259529137356458558631861175958696224500573758061260526475995328819093244537242601201363063798114626164197581150136996333303168817941918034123922217711554212352065462625167304501079986641855812840222722188214301628595024726986750179571868843116675621084099968783738487728835202849783940075842287293691198216598505186691256911153340083553789447343591824075925037999297465909988008627029063544260475613453114601498610500664846053927664177783990827573978257579110796973295778869246435452579475364355964200940654965372277735823462458337775121122261594780829624447082618416733023512019566667004754495181058704966105025196491109000647694012341309859733270092381131876642693452195764333794891355116127022320727934124923887953586858390976163881792350758321624236805423048448974238954619049217660056297695624535482738686521366148915157230299139406681165326984722819315725216865455110534618339293357198045109358054123914187705155910386112387046832108698437486017160085350642349261856872604717969032020302083091294921040787176571281690706514827045782217212591199165264195093084399309094814311438450117436853497193275757431226942235829049342775317475524885245074660395480804431375389899715945964217682429578037923513028922980213191784579975335436671326031529795122110681647650550059865675502371411415025366932637224755136646481914311632438669038932003853090757494592771376925753260296568354694805943038628953853418315179281299771788664697835630681865146804896890957596342313967667228969807592091852950201032219333838856526235350812387581393552669114051498665022162491989642343533957172343606994559607812721771906732179918967440395398420068199470835891521545839698964027720590176394611891506378346524107371960630964532881237954666981387653966341983618032906339601413556834546355200842734775888326839780748874712602122609199147411366886350585474695980109739039759975266705580836645817978541413082237968976002379219503359986784883904070802460659572028954070856787320226245012194608463371572049885937750428369698105200494544103496181037434531034208382468188779144028373641343854480084857130899006589787230368982430078052903219381754544904397222620589584778038720469452665840912999953424404721254915119124554298042953686542604902592201133060655630889047766406191625451306445919037601166008350105833683934387574407448667308214681611448285084638257447311109711129627789197357811739600450374675573954847870968206264908912040023271630190308555593998343353261598660963991947197412661527429913488104214880813767184134270334091467955235353218192133408274669915749278969443415177025268188775183336461840314095657731217048108408081767576933647933873363156546299449843145375458868636396817832182148183418006866443984272911907845938801230695628013227891366880341209282740498428977076976775755912263112897543314017065911548887880013058230045012263644473130777017554544349844122471567371308686128103527010968359492541186543198303828529181380075457617434119956580423554995382787175372892714157581964476801418246998325390207150455915929898755638992878498072667995004680073882021452303764013938158985854713747692439878558390333927224368464001418913518728833963600459491310757665641789138740411976026006382754777871620360965072366081987261933738609191725848441602718205508527145002473961275971787201719206059476852429112257587314849183161287372847977966126796509431689949122882236871199537802580413084940320878484983501966507379352011862317185884527050885957630313253261962391366412413637896589120553711673966516311777510422179872296827184519720074409793072709697725726211820631088237134439091111963153895651609107564719219548899820734967090266555824026650464406671784524981510454129503869191567330326297504889171697747547878516134178337276432830052755540117537139154011142167387787294178981981434108222970732348931287580252905357987795214872495556849067803589378874775779684424495521628686567688967028063814967952392492166259935945081206336602492788588130050020656845913492256938585382179580342620318869375314030152286604917842631837498575703351435360279496491046849436088687627318739251343463199187262106390846600042132114559875158859152061752686140104045252787333760489580984098288482532297848138543839686475642377159019755518775192739096317253911318547223938658641763387485766885824366556106515198359573699197478912636672823258842083938736067337322959030395554380062646511839141798620047307356688375489983598342602056875226107601281080042183980344809965953323206550696818669159237752569399527571129011433273855245219846421296474012627898641329843043931620273947909108874923288074527999418029085271122755015000161961745693196260726133986505019530074964392869265337339572940764098699527498712934464566797372465674592992419333010704601653699985290649306578846771775180164204609220181912056928620357012119736321391016540011914411013194022895121332034635786903921778540443308133522087947695592430230582160144522215895915026371946737600304014450384613329285829668757329681978862791683272910158472163823501968406755507651345332827763910282473651471119395783165356022778593466830662492512686855441836507210403770665503759480118821096179612802971398430423764672945431108316518835890587502198887559358653399579719983414709378484330424406183968843947776517394710782029499664862192546096451506423893347848443326014955709943993213789497804655902896905159576731736655380911829443884980984975445696456342669662741549891796299769921206123771760778679461938964056251200775588206167297534341618071824381736410890642936807719577346540186549870620456559763189755598546913649470755011515071011639609284238803674646667805557457817130789262748920149116080711342021465203421570541715387711994505865427819087483499959696867583839128081890448873817360279752798658811302113729688173389412907502464787661264002613088065643377419924931573611564573484974034858385146850794554125550949130808812275866538874447863911998114032884893245426709625692376284553036933794576879744422368568091721408949674464774091670020514576733825603839242068345299914563630012649034262778308602063962214828468198981351917402391439306470666717183947259219150877839727667982007559402636176436586936640578079289858887701537109742611484443419076869010574377800756428981595471686812437876989586919021716698579637310848119178693854809779931072515254845877500641068619298632488972763112175306045589402705865995364784493620331449759753546502397809919892862717642505771644818142619382681957841089976233136080764750298735588672060480781708955922831219734231128456471505153202490002090628240236552658416744312086101496046606772905855705719334817111930577295505454893291121171036709622880559723427767117679629489651668807925653151120135120408737403696768506887852853179849665053133766878834205474421634653622946037263000923725741997073371131659454174278118694461120568056162484813791257873663580788945184216376961923606533898197717338114701663328073087498737535368142418738075175324252445296980611957296136564932293536874282413064526661962569205219198722203583373092956743477898206757970440854849092336468984031892610857364904911924788344241479776591848184201456765477581513537450952459093909486507617146667687772855868699632860095854718771790354707360167812201490384105869305303204816341157075738067510693251166036834378142343461820217957536499061994734983080935930503005458226595051362259371490916625749469915865713336129558668683925507360103892792721225948345467634999257984718595535128409943183266530510675045101856828149849112360420539404796275274379566304825188913931201413134412963994976840058696304430447863368561891213591414032149880182913390674009463776253348857996634120324718376187714319070512835818122746905226179523545530674931781049849745433398631144044071906430497681486760050891061410677347184333968627052205838382902321348843662274734095715782044335497168241566412968978152317038527862886498728008458528130996359823667355171583063427881808895731132516226509996440207952616666258391772109292528032790709529528162152598000175439131052844753770186841473077593305005909757773078581093660945865747560819593792960381651332600531504941994824182631644774267903926114825724345857039155218720138311230908487331426403032881932583946978958166868716430774536276327041446256658254621982138733834679749292006014184825053258697985316432882374894310952468898092972993127544815454061484695689846890689388134033913006155802263055610302192759317708379723208049931192980942656847861319952969575065195919292357143443480036404112966559834297094016787731549546311427030558325463041129404084475609255795015307971693989733637075024185365649992849801296495131652118041561154699403389533470515169777240366550805978912614119414200478686553806457347220167566852745034126008952138971426724660509156000734695198549247815795322399896250384470575330007084538020579111100378556303173447838578798466249574407468062360601034765446638167177509208697419407045302150752613548508499015746396389739254074033754758720346141132005018033709250649684296425810115740401790752886956689236859558279776656784260007721881576876551085287460040675740613577280630272354280430209424184556831683888791873280178994436656925163487732333605743509623694986914302186152904382878843415165229013798681914108734303848067679724710527141482780478804682904280326056639485679556625076298422449605466639121727474866575204190935874349464664722154857531280274355262483777808642178928097447377263207511572286424429897471264165596916674999118400513741470372318072671811761847196719836877566899644041812548217101599507409239668148529182225065161254286418344890650697455263306253973806711931423054220313997593276557373988527142181049233573090627960693998720903035139352593263504594468187676830507126373256410918280243198156711422593499707645638533641985929436019674365973704939067540420507312407026904464979671397771635549810309999880343131192510875163035044262198350969122752000693781560372242837155144639253294553739623318262505076941771880716352782486535618578218934446847303739349196447165713758962083110492247957765744687016729664737438536317866531094913891479353352684231568994808480046450468424975870960042901406750274438892720611179590784520931510267843636806874968565715882637256946903013520723444340375185456433542589380723937288395030499914903939050454162646976923451131452917609670980637386994258328109839737366818570550486704051748605917274882000246505795296900367739481533655720322790982687213622031670794953658509242112436830476316969495174395403193628479550752390465184044163935585666531308229105004390665394049745057538989007782673695708667304060639684664747796347383678720411854527138590598733686446110706621947608950949149603299469552840037473520859624539595166811001380926320970199715424490163491323798375914495598169839067822815547510892268505913285685373919578384476292778427663505317127542792174143211881842910948941149301527637053163042745447076549613811385609411632002597176935326623675567425968577234877778511125766414326839193952235629846460412509271167624442529541171426294647212064383249409513080258759329164557907955242410824640028148254225944962895613746235680040320236739504102303552635536118520972568839474117289598793541625227400335294199778323301117213017508079083471230763237888564471524798185996326957890889096188787400667581220243928194294310820457141293397976374979476018000540760221892482737907461149531553201281814550354095444379466917863288823232276419567615905312390753496998261457832092163079307749835385738929793549563609367014615622292032648793225888045787343737710391503298138089504406565110101240571013170003500992066618063385677903828702473257427730405547156627891461174620406805496260101591761113239312273553803961852553525478596927409705359973922510073603916168163265137155893712023139684520697912708153056322163827730395189165462351784655293655547783529177340386455037165777113719344337108632718509907576068298370276797822503395118348967905386954797525735181704291238270560380848073844328363826478031366666691411149425538576389348931073793348104156938933135757213993069291291293605074440097596634933960672767898113161155213867907944014350646601707126285333192687340839838087114078129954998266593116118378515324553664460987014074784666428198515041741625832474230487618328977109906525762819513613710806054960130240290169903276476743920830797088674927889655614799844832014565326521064728718685531137791157598741400997535206854978123239832545307896292654180107664630723958502421682177034414862560500651666987491862136300170817311704540953546344451384218818933472009183817211919873217077895165749164503386745888901925910060609453630547530279266837333869406279233377313605241253416702607310022409869379530613220896010433852551992266663778382482452038047426010504099644797363997318683036140703006927961810434053197311972775277616173940689582940414132720816477722637542540496791483153060726332081344030207963460291386338766465343834775512668417504835586774985556364631642444170310360150651886361565182290879305855502078401552704184441345979919504087470407094052865578527635230162867473582228714632349942407251133573259166537153641200411198505665555619461715430647710189945714554734883702382290436939097682333797246465807484100784397779210511449750518883787973268697472288572428671448357113205235590823419838677197698787846806256313240873281482180130669220238397110520708491262366361306734063239218107315223363361001444721661694444181568558153521081107576616743384483705601037277069483433364150020644966468160584870268625592890545842336967170354685014974585407886100145445691115040149876015721529494900151972736941988156614142473424834768477084841536510072779324265376114380294151821703509041940490947038545383192735217230114364684224394566299394060835712523734807488841211979826894864583143119026212422588732019612885706212802080374400719239831415626839499205776046239303523972698732273584394091671387583856851457511641763291663142421495353621201770770884183489468942908266341196564450849691502891862213847791534705474261305600398024287964881035660905115268674005902759583400658379893293010640044667114198120708955108598867122500330656158926011318337495255861431325211028429793556933143956273373540730388345929838720665896177696342911330764428880598918664903095650738136534217241225918250707563634529180067250305356342464455842260513888361843984167088578836616893553871889675696727803358260224718712818038556334057702268696744636381535085341197511891347154643877058944487632509342766042410585869874942285705830155375548365567971854599170003208643059325300238382821069219302528707900402690220610491526654870361540764729565685767368120989738052204206874656884232540750861113727494913708013699372649787900107834793708245927750408187539514718044657097862320802860107626954519427932398132510541902913470841035221051998286799021417473330365855357444389566717471464051239674486916110128013047337761209318388473666526714428187183896041374403116631973718683341265194501555503861405246630168950693562914292358267728029289851830593009560442396184539667104631312283024516381749908054034907249095337008632870319420916439040879917604735412553357895681092692810328424595563015955417307951613356154999341124139464797711635845128020488774660819677587735886815890133702898724363985363161169550950815737596212383637964019078012335567513888042443878855965436802995922490948954470943633412466459623946248662027620098492674327678330654923606581980732647494907050868393201580283764594157330770058811097040181478518168109888081619796811878179444725068216671725836729805264787429735213701081395256460960687303258589693409336575526448210523986978691509720608949683256171556937431103733077743547048683219192806514271191270017999326109088378563745675064926829466161400503082243184859548227864509404940030048264860398648171824317496775029144037817827670406319224560562969859658784225035252187496615157879850473490030223515585266414341009936915386907685617886954053621702492375890705062253367245564348154398479852338013718507062565952515708853374229943230755421007457681390043915882094444908806786313036474986222340519779641216858525429579513536905137418532806214836067793948457888014727861058323234675037877889519952146154864315444031014753673360062207259185139120890030004262135051819400410622850491852187346152591220025341877163265070922310212457769077217552579311861044022594385268968027347099888527570411316542417016327758686377727403227314187703367774225587711895455256515760086110220982686622206612892278397155998611622891205074346558501798378523999972092545036413712633719076826665281796211376525079692515785760992799470768875586426385741667854301168234871609765625255037061143450894619797401297900678025789400424821430665250519106518446476839726191994227580084410268465960673055493772309388627305764792477506964520493052662781672322333500551683462280314033672615590187360147305186693526756139628341997308568214140506904964804593566607088828903636694476945979863139351904204836959833958898197055106472510439783845601466087737184634435932673379955028374276602404404828538544103024720159859081074681675199884965144385704483441792866101128302551033814811916402756049293889721828310946827421167788388360935853585979823830822021168927469413817375655319090825761971382047573190200009582298810941112789440008959872695413549064956420558780708857955510109055525826530836780873251270104732430295406204390964497553084553204402039929105622161722769571312082003956785563972808876560663438392718609355704468671417130093279949782943161910536285910414833181842058355931107852204449484694087596892407168633198429567839437379246471501255952939257771613667505254986342370540544925585174663598816368088597800252335803354983763906562773169783466264912532354932768209797398283804514622059009143250961995520767887682401602863606285569946323906624122844743838090990479636997443339215209777476220625062845544759547897263897739215819918668493409427491550132640966263256938595071635324909689187334442044814649388691830152285813633179498108242417836129314244087028025482389965199967909179185945833903100531798243365418080509014646092284471516249490595383985706525923290131483010489586047711684750897211354272911456489934965834684364546470834993357539151940929873208622868094049976798883274223444357700197138078680806314476943544081594899142835688159279508993227323312514694116301556390156687529118489962431805595016576611188680342991575033589940410843464967475880272089277118283584269951316472323580498544850729817032832726709992539768859138673651853699703221114705393226338132013587423034850385085321827843533350742043421819994725654827044614818534944134108854726662210762989686130293727579735738067067165330210965267922813455102775104814984777335793477624554780683606205792233811714781522003229883506553819493047699233784638966547164510702658480992930991272787005036989607328541903124130995325908160910577235524689476288881868237291857061860461379233824179054651795181720304415634284381576512946534539340404422178286471756623983833586220983867439919004469847789925931912855535434103925473603369782126027275150310565750421080757387852908323714164846524891771058255485841043263224705266778285554684091878373012366227414137107140624439795421096404849723833244917339410134721041612139181473243489665818712295429324215301121815757490579583677804964361075583783584739416053187899762227290533543706552864307083682811471235571470892361189251456146897521351037131770971700133315743472500456777387157660138047911424335848485719474722462922710256231776850218791624671377571723089417807985647266219925502470806566209673175934438208721349065243912513053929272497686415165600016973912447222248322340507605434209796376960786252747693978082579811556779197147466799454127218539318088566878405387295972706299660497146381021860744976542644900842080539388795484493986261374909094521819926976618351150348780640837452007166583617904019442220536717557654875786637512038832659391508824528498772081942516985656229799580045045666332317031047340907801285191517776801694881006619056555617589357185225090802379851281535825705805069811185791501802025098149490934418974390280286249766879056356245519022365837875441790628688265683384721842393500843586691909091908054420411402684208726731100922112752408764677703534040357243383720279794618452053320704963558189925023771525455300628444549674095878936626195190018970411167029553967288057837535648923409824638645993664834867994546263869187660896506378470562859562577780794644705513325506000158074846668160522533069325700202820522241809697248777979569481236160207809158817037822317378773445850594399174726080532021449660873156981477481857024812683750627475160721174463143297664650436399094258993245178218874287667136113295290131208072338509139784415316468691075735350623477932592069563066327576420001708335542015133695669046502980657609284460922145493191653471578842498526747956838885079069442798385899256506023156933415133169607241372924933748663379819901117612767598098488947395339435744665090791490903788480535072232402621310678949563449014208227829541982523405159064754555773914799597167816002940565791425080295527485481458104605299236075764596346356363203716226673272381539795257342934505632679257780484306184298071750336811924594393098381714884613496265723293630930115549232764657259432348486975626261341504815537753849006562844688805572772324763145625178070136486632492498716773697919701378645171514287902136797756860608306842678338885411030474825677492003080974622392709051906468631534093469888843536359029973613267703659136081266924194791542274286516322257795153940923388528199526412747173524721317048596743099248741305913262644146757981689105694388134335483207386594972966239715717297365977583619024068881316577553237660024579256888845881807066427319541853040330529802171551653455682659925674730376046872730534357408585009052715753169105598161509390259557919439457186668990393024692052717223279971137330224141766532716546435909744448131092153710207088172666211209538690990008172978748107311969490116308503433014458118136112366377414589960090069380632447816531170002960979444131411544853650303820144180105043521310404360702095519415983854236266095606217158467712959539630124246128510583992683086343355485626530920216127491374602454105262628996771001890176200685758262183109206276694695644568564522282753154010376744276606484775691043921536936399037287648511258297500396029806777197095636848260359144686979326002533320076776767998838750661182669489079848117395650885812620048104174348649538075206376004275064691695928335556381886941485748051548344200386720492470019965666526428882258354269984360508271110951552298084878274381420410687165962467818640859339301435537935527739066100014076720795484423459293757120583682965612963721395409488969959138016624489421183641540994014500152803169578641950283856049871485694949919894994684840589875468970196474738541598942497279785472932997978431914837445413270146439535401893449311565849507665616184564037117520330072850783447020842073475798812344149228536705348798044892326490433766625764744073305668617582348168238202391602912350839962750424352268272089089198195298215738979325895000966733919488041962183189284692856108174888167336332175300030870282115764878592541099088334117200991213773821147203224545237621649546806305031844207343957722713512631617887824651011645809071215249814739038786553676365852993621418081823989484220981876635701395799728021998787593644256978984022735686871916435129104844251111669305658919945412652309339271283088236419819913479196076184007021771326136931167432683681017366963341888780630981494941271114151399566770514033898555194846424881490736369997138141517282175008544414456043219916758216486273015251746951653038216068707495923355978224495266989830297893929349536243619672223749342778469444030567100266703212040659865158117432179126657375913694005833758867966934305923659761674794922840695441317628083535884956856867379786077340966133027260837275529503839047720813940360835796181882367150808083521059135804320446381026225402009993652248024012790638626361874575048522197872802971110715536739487471424683731976625828259079090919314220461410319599481223392088905945105773186272481960206534833386308516639016829791034383661484885141642753925152030135483416629781102476242360607515857420138306991187216951937366104646606583786555339767033047791631317377538945689544068280781767931622137050529039126413649556869150967203837276680470774107684022361093172603086929020471165661848042969673553937781243895390134733672477343141474101017701727489878575761656263601246740836642552396199781489345691153977912477111664653181890249371071007009803110032761663960228220061969178001943646198789181112394725164792526405476600401208720561015770923739887822023768701356864922995120394404606606425628669001979474652239200496846196011405708904304835481881660854930801902365654136114094929324301600809326140944891326125366930221636719916254303663491165614967984452516836633753828761220436365623014955358517187700869051934986272233242129116221511418103953321582260668721953595206532601190042563018567011624758572328725683760417769436762513933569177394366130654009185891842775984177490794663802880668016081496820746936807531675360944118443861195797177739768343440056278874618688237463035275614665233433703768149301253073721315296086614346947976533002155004771110264222341142665513637779135642126394471540496734524754410953764992334649940013043222606211420521004950028155584772323352045233978226958199302761057798329169498740914309811187704146658896595447055982079454543589853995100456245596868114327447785008115645007106480396247705061293110384827185051009394426748157112241700535697431581382511792794292369944544815735385962024559417201634747885689653058512354326541464008985264825832017734863105635836220297407636538690462623111424601479444040046371522662986557591881193139977627934202162379631950226702255102941168706880808296905260556576856140475114157217226557065544156171841231411178526719882925327355928693470224824990693444844398092200015320892355322846934436907033954621647118728866406153705911641478242652296275897783910943286344242958527341378474032953499298168241729467285492527167286407185010475172062869632696866884532030918287288830540055864911721617636462521965342024611541549199390618755848282271859654899947005847932618647291622920778432480656173080444578831020937885609935879848610764920729688327926164730760896137222935368658741403826130667593871200822159790606570133631544357499042191178828216825897687565050843407036692710172150496466983133016444512924191486907364737570229467901837228198271128025903639161500201755420897034504929298994696185654732655907357415229716715739224366949445015755306182986173176206518926741067467654825269385591347812339795658481254586437318435422188852906964757836770809155179569529428371103019079293322814728610964710112754475044484319346940972936157096667213943600625803163925477239031826582657590956286949765712187727493308701613281406593141577370319612539633485295550866128147468212281411394679047634992267081232513837243095910678723542983890680742496752410285688189668051303146295673749884998577693282841325510711372051625561942767600418934053994990654864400810517225720727409731311561515844459359724462187850125599261978914050262859843066026765664022357657522138646546620404293871677446658248212503134167975529709997929573715663726601558797861975858093284960253257555608144833112186764896985803164755507480113649428263825093504802812651480553367016633056356522060253801570453856164022051018900242684796578065794228701042865233843054054575412414971615055964326735423417611759889627327830271897670985290351441581004692846385660315124450011363787162828109738349528510454622554314768280239190952695697129483317181944303346647921686720160260524803375520272822052523622097991610001618619886661432175570986386178202632708595282139622265401215397604731897760749114501299934304182311047960105360181214742765700103195005832145968264659460190924746984705084981929880720639923075269358812640792834226309192980070483939050751643218752564756839733690419363088234145027227996295949288325533290320773008134296227475655094733631943588289317217048540036469111584502625907315943817604245334461939408811172945814952074366819838210098848626798851773642077836454020175984655041225371398293358446158921712641764850080183937604732681860382308023801934028118240867921516057309260434534760782314984454891381950192071966770679524285582571080187124962436719199677308469854881570338509764427021753201509440818774077941612205073681996445005430467484487651745300065439822449460046604226626711961379595058145395276156392999775200297055500160921569320257388114777525976755250539938202164249993123390067653517543111353852218684218234605705493753412527156772129291503839238960813217379481203381220912819056891570254355014947808990644242459161709857487919271998221241796541419632285410582729204083773933707927248895743454490789198030628056166010520836506085517558121882344141677185378760464563550671114961961938492651594081615775377965741403679920770895181301043944964960764583099652606397098894674605375164684939042197712088016310285193537966768509928877473213623502889252117529063459324805962234875546789820125792661158060380811230510839782336694380994272583652269618132817549214365666806520948104754950689992028569995760539383053933073505415643024335000542122840440970006151308909302656934652899424222976938782463534701496411484926867363715078292877521332286286384407662852835742697067480795562895419011154857543329643375528524003937462664423311600981873887493392420951149055460673566629451622435892350121645379053271110535476984251760491407060799640631888679717007217967074803459625440531067362142014684812917445620379653665801455219364734131702343164298301605177838754553322702854634644079948443482021037686597382676884880814558011216632718923565272802563469575415827539515549895530875508695124937830768178635931987596293793996156369188767453653891532774978632035269156842333170412959995957667659581249337432991531945349143399155150304321953272731106218648852048662281086192942418588799685368343101043007438340367017500034879984204803552701942393775987696643330813486314884093383605822469862782715316145368446182626375459479922699511772806573650726358803196370212974136314291806507211653710048236243599424344645346037510340154127462868721225573919730911145324886498662879226697832087793963068704932263577472178274936853443749026963037590031698840870310676103095043256025998554056883330945572335964046809439788291015233773235114111979909777642715982601442607463101739878991742901396860390743871818254738621595666636240585672309037808645123463756829129289749937330718260042428590979865870036227334118769887717147704483918599426346213347828313455289808306061868541282600021797816573033305019327309999247935428790118529950483666650983316214551340136226545434681170251648658386924979862508467607188300493573368713764895551733507724947125077752430528412287206951128526269489598789079040578183517181195363900848838051226867915034621766470466285244017529330419283380592873200338964882608967259047749569981772319215896000536308184173311291431791903203592119683795216689627621237312707227627556209345041639221560291378123828427251126463200423163498065669677328402407490279502014672971666077779153897956343569729423141521431647927206831261376617267503747773028168944465554756849488164481788099855999263783496710388930184337801231257455559101076452691004712222526287582269962214489569640627137377337312989030175570209436825106348516774994109854537001143348254368161964882072583303945662700862479141782337848869476309302972852049343047041803713918816828906865763180828456135919079671671203749016198533142663621780855541116278078007567739847004134365778224435333026868783571010864050685951070292723659709795377372808622713949015135515692363635914207844456112291458723174675789833941203710112467112166340110675050197594668179841864549311896359334668810522794454486012344685703970028302830975271541966925046237815530324539039579752653057222652502278729284668080653639556006618080273732852002281889132094590688855328508758914925287194117583077191696673851593173504318562754376061698039996387111790051195161881472292411436540397949966485225444889595679266175810735489692957444453771073439130960263689867332674048281443916039647087999629466970095647769556808869402218135317757198213464040496737631399834445167303928649472092031283818706401112424504841444861923998481843909130287642653902270683592604968903352795332082865695349848726701600657615547518779480166138404865648732916477550709500565387379985625551413880972368047989534701462864742820740119551573635238273763056896364600692344966636923769865864950265371592849932899488618229807802331488628827662148724132558016148786611626154971667030299544982253886938303100336001797905549610964762386756830707342454439719339213293229218391519649163800746776887788561052933666244119769496126121007185333379747463235440169839463735462924839382632524810392249282326938430916368924613994655011003658121435760819361449303766929978069867404307197660383954300947887203545728598038287627009624201306389040194616165906168294652639010014425582277065168049535997567068533769768785187552998852037064880228119065116597106763170832413296462726543549467381776398872961299341642426616517538030183615482633419943313487046180857856075852298437244297740984900409364022734604907947300954782735110590591570589969185928629488486766172454498043537772160675409038139877430261083461844297377852322571534999369969441082909522705817569845436651243656527029333662436129457290694844635858520681603845778099224656380100777507617553567159251226107813330590496600623092470813588269668006765717362155220164934297519245544945545433453338773823670096439921592487171072397032985562753610272613812082831384592210029525657174445257803948115443404149749663874447837889492689412286528406060450380344981921169807390867451434238940848708115588768002563251721836178805485256987338401281245324374482211693499718968905458221851509573807889751190696156010715130123649466040039208488207691125803445039347904709551023280069757016807509616682795089221312032333548987538339516630647671539821828081941958121258141448352005027667845743673559037352047930906649871844768202522927404363043364764774756146528110426709573718779038337158348745853928335661310671393141548192953349196406953017950019733360485332001395066556269058592095377679548297632728360698766476809156199991486303895605288033806126678534668346174843061579907014013670987190456268586161520232743914264084821135416421668709386366763866718010729717108926784944352514106385230927703388021657937014925312251428272115676675179305328865481889725643961967914174905534251706021922944541250283979120513686593146117624394549917772189600339277636852897910649925747190767785418541552986461532229650174757324333970616258381108128629810316900932235641352529006050811817010503706651255954570544300215481938725201087825748535340666725587479603648912547125455923133586669348276936686067138343408673910181845431144494754160188694936418364506046641430046949786286835702727827970208025370265209320220599682395680833107354917744166694765520498264790248775660387984691151501043562497222742286362567963384239053760140704594916924384424824581138481410974725476762876877327311812914379626309853903902320324354432460381283924980623152517865362250140788104186530891782970222442832538858622843713427188443896371707309069516176922706534609300245194594903495963368364149383644588179847989121739203597466876438466842231429164651282296210831464137512848320437546112131450189227407974915593601676104467607759871604587285687983657823137496143538611845403124255888022503830988989311129202503454562452158106534593590809298781174855755043575096992957232388298053558471579124935000545815957366873142497384843165848440618177000053003725346891929012480062223132693276424395029177365267132595339306839049550692143955377552236459169290985355480787849686181397087812413961445046625751582101638682503185882352316545799361255868347606774817290525875945907453903247893495485441478567217420971331254862569086522481886026675058326623530799435667568732666606975220915677672129552620743249659050663277721919158406198812744225420540104389606485564426138617305354721776169925551370740803979968422173275265256878580830357400662062028850164835451211902646613241982181130693433256216792154610339467132784218901679835043382230305656445711994299135850381693875817906065501370964860893541770792981899403579102831720001177220776713475817656110628227828487005232003312044041890545547047010983775924700722498876563360842463819530214321136240854552390245835124641237701412556577682973404548690261231408417805762901887872437395178425635245594402538832480665049149870668540819357317546438895061300574570314411871131082630867648426154884476527279917317298229465907153879753964874395217581807972902739917445706024167035614420572932083288101173274824122185926956967774013629967506402531938527329002567726338880819516870908169845809511119135914356682619888406524819815616090031163990302890787748605484361946503193785039632269566016795009884125033733844164727035058892372214305295039316780759024926151645571687906719842124559013601196248784814056872852426304773369461043439978397807117237530708866462849215281458252208909068555818258993589480131406739394249581059717006493687997655513588482106963752032485615723868629938500893604264417016616128082643916129663358981336116802051128752414466959305489652704022115930242850797486327253740417401112519669452754726322989514154740077368294959408224521014418399714783037511821234261127442676204206680074821909373126993922465638757653533919657694020491394665514974538101044766261148338416215252653015980246886117892661462213095660731965578392498372313560933102160860838926062574367969369700927453303315898548086373058355410893775746592199343195646501969483626819988647023044629655706668905166020172354722125688891720152034686739784749688346271828144671904132322359845571814890033051237800482512116006897565169232536436031908824278543550344204142879169253914744367664434962834900207581095035202831606057901664461431649842877990515436809800906156902045454016525912699506442367761041488974400986419074647556428259261738450899071276539242571109414525418536336672519930823041266608817660331991105580218453462059571687960114165882199503511750046180160932359150817890795753454190338184598316077953809801977913818673096636857330194889023023551143352004263770431861797425091153040478904224816965216688841679814081883523007095275858021446776927691187538599356660620740451056048219306349117027891666479583757064138381128690247131171739083732346924945032978310398545761162349001826454788548606604147161775465505022796310084524885858976114650899516268321042389949531221434909737530405699113128236319637779935024970991290609136554158500427914385313457368878999345829622936094871415856302150621243254550474374223265817499445207262293888532012202814451848130740706943360038596934654821195966808326030116138565693215216598576610116114979486765226051406237712938012087479420319430747051957727988470020074504186354628555593118653308594608010612093382056445371513236207891514533441747185781159597609959322927630624044520189913656470864873712358886603227447425677312115559303018547065791253907148910986745355140249602446227143903312986607009641041539652276080540598378352365305134912913634114728552391863916297764994925300090806065625109179934930694718301741505278038029829042885970643270534801917071454190648797120786645090866559150725492073301428952415286105486693458638781367083826471044549656336220426210849974590310320439249616869595126077118469734747392752449181527237220454124893290862748263182264285319006312474725475469804269774758933623371171368720420815150366306730953035208260782440610252245728629135008960754395549861033095058599165912105072701312859951328764577049525641437397877653737933396639135611095113585312290876304817868010876338374679945171953131124082342461945492231865369203897291546735092851056228801083105414757668368891930308111893771952064064468389615280100900154692541493857309667546887251758446258572895045429836712365445757645074253383578586214884945031951896619139448694079933250393542045776554593658612468868643426379486156245997151955723515840118488164933073296789532250151254739012534443910618398115088510778125844716698577101597392237210203497011090549059832987878972019505192129553944851240235954513395468723341597558070334331767056851411092277360362233230573483684804590778111064763212438710352208730387340391991568988990353849557850332524236938219953520103560459166745527717599008953475285747733452807179664965303357710878624979744217951520741112610236231743169485982367549961953543067973802331616345865074782584407570279232891679635281707392450790711676363940669747413447285887435495989151119296839032792435848187846332452794114690480065682033430490277614737252553950113681009597858580696744327900199266108795110661717856296019657324389985425155988083261951686574893495528536724902035968197873510175489091743809596248703647961654352998283265318621453761725782161344540723072780990573030315342981485274652593395413660002342487128074346931188925346457303410538212736780754129747864955177957333483084152507840677537653866951318527028068212004271179886449361894783126122307129179861695878725428429516152076610450028572374957095162960242726218444199633843714972683402970315085672245457140997116389597240429532089313907756746676643797466897562655051726264086744570340369762795690510456244897628169638743670632545322392339323245251072788601903722463391565526974171483989475627021583991641009012123229070269454059931233153950488041727286237983128417180004772988185444176520918033874058367333456896051308268268835959526716285677236899075717104450711326749529697784337213845200906529837805708911641780572681452696612490203859046556036659213048868654235098692182807406058524066415810533217198007603479562786595730462192348497266114525919929691859444188258230151027049887166471144005223413258302476274612309964916673808602395336541571194827321032158172021328004833769117914290542455606001843199187845887124306659931881770588379674321178225581676048930670497404877866099619363204283230423793311818232893376958153313014533732176798564968609649914110804396485202613619894636055454580050914605761270233471406365675709631837374674421925230222223331001551693303581594898503668182632706240103614440638666199594223321982917331413610964659549206257532215632669405795840406982316242516666975043859653380155137879485572886409814209216821442670119458907203736512784771748849995461434936731922686533920652564148070511497867502174325254056956134673058176805190743489367590703636033969819004821101031858152947278164551046140148650300973776822231372064488748048837946588952578419351391757169470041487206857187098568514682698521211609688315797478950449819686440937084305350896953009826271149155117067362204959887112420992103594423531923090819204022140614465849833049566944952219100160468290411263153048447693812811751985608090619401324996961210808270420867579065452408001028449833506915940652449390255655463785488003702761760132286675602710147142622984568882237305541278835894497115752000198725486053507937639558468860977252883246005649778349462923574333435520705559150839383408992996890406004361413557280488251058478062130279249629084157997206807596447362507706756385594767198446648573708368008082184124866502455628182525169465274290229351599254024436413048144023506589930070620505244493316475029296772659727429058280533501691310534786734114248918565208816819649482665326786748012326733485883387480860200876303892834345128669976650717775935399974243052598200167152777792944410167305849457443903645473196124507972872892325094315348799627892984843335593070996643918839517691245993108418794930265714821402794766185204401282832646754371650390052814724592279355648603122805812444255810201294168326293202256658157253188969283693150746502766020852669346993354958077228968381818293682647528079663443832156567042202772338046966434008302485355675948235549375001237964642455616255598565460899670188432082622533229871875208705949790044665780471073485596627155549154679654739635641753159261197575034852292938798939242517570309164881497191778915118583163191215770204849777722499395573448202352482272729257784963935778515819860150069452663370331209417463181493629363885945700166583699853170644638792863813291166428657231693937334484528643104412300891683297649158522799019592927134681164026948763354019528542578533516242183179188101212432805275268155887257336847467138667811645667239001838550163208736779213332620560546710228339961845963509680878150325326143346793682852102590389334243760021952694430924525603362952224278470706413761724765296283855758364411749582114951337880359410246928005206329421972600089002321455737952016453233157826821466850237411778321436281834193303520029192577522686931766660079050287262892471040772644071013299685457579594879155631126627599543382568061379593408494876635627167997496394183593405113144573102706833623490682254762383617161131051653755161244281616714526449478498076625149111520024852831375495333287109372874701533595878906258706882866889603694725719679380541059226084193490861017329656591488542169107906651377160759746078517893267154488313862117585957316314777884418272539542789842976023555186214194829634299688397501832139133744321882523625867699474865913027976174973582969720214963393354262821884974528860813459891551917422160981435794296711420899153607207611641438498994038310291216684671499248312928824728490599162731496466192836226420610924065907650690574166138577313495023593808993229992364749048372569439180647559494351762411835749115227730319072760112917581520166460200710323951971794173982150866548018096808302641869256907921507737845333248662505419668356971203386295070239863094052772761217220455069744237987223664802186844973408053304233203005952714088077375835183605531073485494556697126467297801387081510889479211685499211357314491304029576356724655965079731013200570704833105591678439503295998507929377556767706082983840538830622948839435706275059519411539546490137610029098544890494306908260084800858961208711775816267283176681396762677147733113916671750905410769678797875018208924092591589295506933772436780543708517993993334094098890600981153159061792280501523425549208233528039698300691950520007098674158631891196843573708293845319705957649603921324795458932910271727889511475383133838442000957378217663804575383424693605926237165400270215724824548777682651023274690005906725554846915245119593931419619799417449864639806623608279253848619783659903248612303685769606064535604931086639080864155293531591291634992615383482925218270722016542774678951730685402741610417155548812183774974691710884798043917135317415086674478720562873187272217246168354385237118044936073947792715501495261593137801669523184992780043704190347035309240735065217329865443391547902735350173501177262822755836241128725012668432464837000010026790599384765300471272372196847119290614283198292257306456806882810620458276814852965259020974494995895532734610506793691562611841361664841042997096605976654382513187346865144128610286111028673030584277589425820916061981967862308069146153915931416625658490394913400193313725408255791692533695073396588995788990577098766994065290421346866726500331509506215064989439335553898555441631806743903226492593090255416554878178852531801283569714616940450595999424811934272527692385560838154060134199441309728331800138033015724993726026604205886299271845565486147592504608686042918869017746701797560830341165384384323052757544885481655748842347258449357199297402241093764307672530157576469320214507769777506655216200947958791925452138999709724009746900160490491652507979614747644622122432812095177422053243149106070776016835576359948838139495940552847312852094731286080260570717370580744495885957627338586624219721965956950453983636824095442877392773108694461517036994717709375045481438356481567500696093356898018941557738792440693151876686073196362356507493299033221945175750079313849720555387277404699588144155122578993560514733222497142109564310815695299025636940732485586108367805896898976778804281693555754661971988288822757949750093054044684794487863531140220185474457083576662089736210017128477637370978734737177039425281955043390661578780379183570414873564741639929640639792573966073217355664705563413635614104385749552357712047672112973575336912464994627359134998600928134116473666377557520757226647213897683051069600907079737250308460155735892100038793219111251354061665889248487419731422086206427750586226601378312985778572468212519724813577916527197681469788595282579612878384148229191877386551672515603738572784493694870230812906526400565041567433290237920339032324502125443392293448487129192106067638765653672034999904429041483389611847323307918426062687839797418718962063901510869685007927286361868488562535669693838955482173817096825371562580566019675431593430475523457254970742208414317898547453220764391174673196924863034614890990798113583265207521296472620160829585057906172465896722014562350611605404762112713752392726730518488184633216134640262682719233165201012452670451659131541023926537516194854488666200669030690154714610438630862316647965656803124110136176545931524986899316037687037542770189171719520223576731234923498910712772625013109166379353424882657949195516796716670442091492121825978080112304611553755389516724020281141890696532308961449766130116432874862560901343956845017275932409641521625761835528032858341643971028790182249109953999477365410150502287231305242392390096982029220932954185836493673339622134763455862880910332428791192897887363888273126246416684743538182877360310596286175493635035470890520088768376704976647368459690293099281535767695259502529496774244556190834925727767952751892483153623462842822318389987596654655529019583597088704789507478994696348079906211170688423436639535464348669785208555407198821688879398608944190500319392148976140434415391952311327414820924501619099324057919994598327515733274758273768609044092790064220135875655140307525892107459835291262125385771085225944630712972701173111982420479856393514151869763635058745354299169185576245202248200467258506981128181434586991060479623838228037542886407496349743063381872145175605704364024843085297767183933761251308819172280634484710592296387841393285329554794442117760852883667575420349681564809245197013906825454993707778555765215365219565531900233343570275218463190643167671919503638870550149324345277837048922272508805861029521799493691772453566447438914890018959353908910206389974211567352934948933874135881811166699170627723667698537921460769981480721356677352413366855470268278200675236406410428229145457536944328901207211905581518493349634889904859246989510296993927321696523322638019695521876464532093627854007758239463523757756627086650465057867561517690220091990062329980748303288008216616729340568153829162923001536662307865013295115163697644237985828535058555571613138956973104335123211154873752035540311126099535596592916067925445352128310439097020612889290160810572925085362316331493939021039757803677071854704938084739609947965664167050059964803434656394757943815462859444014999747137365843125106673971174582117824428236553025618504329882849067869006686379124397056566938951806817338687000856505048906057659708976720204036416361715998100092215222697418486458765024941547211506655591849445098113879522043401696966451019045050750155534326777711839133899766574697814369202792545063872345273795896253491790280233060164229669500174664539769335424565833842493387549531356630946380232328714164379425037401068050611123586237128387035262313139006817506568629065392478929882516964136411438417410621413361359866301026104109176180210624505739064274028463595391248488231588894949409864852960591887317153692440278861187557551884034598196303655222516435825166389134947009942524334135298182836628231475431131274706044889683458113584656395316549245057639138958037051926106454128318694230422193202249938331634722077164110291548266650759636904187730484647967563292365577292549704659476968760446589819363010962477875118772429253214174548480042676081432082433430905282301684200034037306886983958271970868960818528436091375059384280695618327289868814715821072949944345557211953967468017726485601642779679857253363903858060767854406289437182413252679762870739255746194063123238413550246076282890331408357479879918312271963819453222630991796624658663482579516787308358276371495339298622663471303126354141418313102346555536756775519835290162322493830801876871847004785041266356291752180278541975545465453143002943697825392561877028772133655313426223847556848802797163949702466546043504653631567826115453543171722393715712886000918459039512392929799627468920266842442319950729675878155383612194630666581116554341644466360628374913361923740520839512943497950307882952462664228186827819113184610357771931498169422440001704767049513143513855046405049525981001363845155753511859388748982877186148112624651509979606599229379987844223647630536957616896060438394739627614445339109529581358819689607164730766699129142259636101617530358484826994288523035675833764003497143022521873717248047970298121369863616043100587555977493685580186238715261761059006353934268517615521893035334457167763561127146301718567042366498799105664613028780018285480009677869720398923252752081741191972084416303594581915363503219206136079430168255601847889490094241222293160040829590935516336240571955779593980622072754692195168527593563753838618763273483329969928490845534520943708565775168076859679563228572762692279743465791507607263434962242986179655583868697922258305381418943838108452688343562294025996595202795910554204246026306451631720664169916397967426412789375199251101396320300229028745197588478361272345650104983072966509711656285522024215771108401421647040294587598009918791942615814713845851364531463563800712639635064104064043358882551423623283315205032692223853350678624320305656972435721692340394082867838279929325651472153419514726418308206059002599349311994142473491205576822970728634062920668309389414701765342330893848421874338423870204603596982921205667616691257485868229093464089799373437333651380219217396287863896945483780685654418584578570092570921661316959139786493415553004649625352689040950725944714249226468869963104524127416377336910698861950894293279212814051033455283351974319747668812009817559010396214285983023030081137552606641248295243636619654383539067684384019308309661653921580241204834814636472476903438294883307551837392294501711407472766422169212948162187910218434883664707352667037575860562540294194883490901704787713746374327540359361224317450121036726338922289647727349587686160282837315448789375552622091891926570155654928845742730485053707830811181434939700819742816516093250033599906164301343900460280792934613222917400262918927067739598337094915047126190063609401009846496399590667517259514054966241203770805310031345898159864058652465098586446902826358967993195671647771704413315309987679743449303779034357095658356595799077891068081042298335124343832623252139184036959383632943398079574702091459046106106868446527352746369722741978661158141466191271746647331934102976904036645220879707117731386432834049047604206041453224031501855569184105088109262781936070928075683872499647040628886760751580435698395889860692965375374693152664503321577484195408490957553430079866707582069873567292693592221630901359635597456406549347577317125688568478546039411664672645601359777175181353670105880002756043890722822494680581312075163531004682546423621765529536216581841643822857402866111998296371337857250931892326649027986279157460710804153511969130982976984795882307114030748091310257296773281029732808741323217834644996118031267427530817965804645753018830127258424739449739458881240378953192139061575877103092811080632440207839959853140249145024775080801690103588760382082628208336172066924489841602386724420035615088835675202295418050580308017791842288784777228863990963038366058726197843275697712321291737153249418668472596584644079005312168041442584871576425210255673184803614974761508523492201955151419920215712069563380471059540566785602046843307563364450451085062049748436857254534178129553948131522325018004990522640413933783988769974829370979095852839755518910810646445699218575890329473250487175273014846051596505797246518289222488771911793374272773035349211066823989854809700197924654493586821923018356275638453167064775257534163591733329087532459617067178521290680743815360192772899304341729207595556340822463116758836930257182625621082907150452813756581298371235568418575985821502768128266289385546903628772149847618806182900541169024082973290143371398680373152104565312270429021736326504986914507054058990586492609400773748650939544459541012215198536521372657754488274543898648071882405775077803583580460077950748730258808203818823523309218821571694541887993223500154132634332590243777310942194906710468782763131703250662020717323958424569253648728079571744956539266315971148276004777294749870577600559672728352071517516522947765085069699944356198815084096058036284617479569093561120077190654773097077107647014196561018510739733139419216122589346946352371682002881280587209013636415763266927108733399296318560617188565697278801217224006720282240293168383594605967220169811497540786723685074240957593733663392718286629589574529766798986386308744727749332144212002507696659736194024465367503354574262352721385968077944532145218548397970489695145360545084692372741874486388439893623852297757167804262106081820123091542331848832793683182725277403208263447080894544548981971402976986798045953073904595260949467223476797473340928283398439201750985524921286998449589425664659358285051805281515855301635750483853065493939782516984747225200284822831554242178305482880971432615461563220839223780366384117659071166389599170146451589223819534399097616470535388144735676938651318201774176175048478523278945968164016356656698116600162088064683784927200116038923774540522283248683888753666360497774856694489218501989859579357753657055285779686242200705304685161465729672533617704134803516510448561929089104425523583965848045163898137597465355453290138177860183882705080604143231358832039483174621292702254217140598190624591572628437932638334186210363859585011718375657238216985212435357903977876759714921706721112427667753923258394410262971690871598837925029357942736237054705718660076220896321046414114817370471724150294873540352697362193349749139537683134267394073355111517156234018567161950719102284253981977498483694311237958690282164275279486572772718934480041306138809743125793619419940455840143793635889274566039564135800050341346766648037181525407902302319130190442478565802851965687967207710175689813111709073341195337196873427877021596946427570691386926546877813403804768216408404961638285137046976364050288180564015286946359590754404319407244835248113127092886417453502203558837207513859593443713000897837720718892813820132359847807780202046066138864086132467261836200551281906997276128313539792250226226793162856549022902822605098150889151813526195232168264775632778117180968417127576848921330183623969507799567916470280367435071787800259794348274105581747857506327959016134193060685219594680270468195597892664417100240419229534832857712054444166205940413705682565851839540040836170522286712749601119284984849707757322306302160167822041121534366422089557243188242765342647583257960625359025175570465230651133747821466458398169350163321931079921257882071751025718973119071114617156947506416003530023644410200052318569218956076790605841218502684787288736157375551296562300592046750596449925274562448362139878373373721198074463743030340343811711020503027757752115935956259707315293541243792890791097076270905144479487180597866968343391528174081206764151671928664366577949763566173004970073240910467859162876545923843916483174780217445107251616989033856024941486278202785881687422769525982307964525895743206057383017649370343021673617769435071139757500508075683278071661610908838980140218896380083606161259367968884359460892138418787025478486699135890661630727221352065292341208921258930732137052619659628347691224127633683364708659165013849140047517872541801462081485888682675531775453578933227595515347708249571166768565467833288799654573331940481094047520566940590449591498812506271539177737630118291407952114095845365749793182171052942083531725558213906494121601314121884194035120336104826849498387881354151926322105841865460466259969897907797518590225570379585341425283077598190811692207814986221664307475645739585884949471403119620964862849650458863886772745467319428666381757879459821685232051773898512723045760637165935465947676552034457761923172797256990685877408453054676763764157591307458830506421878880764328596686176474937536150188151429907716359388897316489989285141978394080630097359437361109429174486094724288394099014676907746302900940875556257764983248566382477007719766935618645913912999201066757531435599289309662818926444199864504400659016519440060871588842463935619270380647551153112952672903049001734597350238623057252822350871320413927612115807865474952703292165104763348909411044687720616131129537167703411419724663759687059964731125199782113451313816109630555328499761445699247049449182929451621667863315342936825944646408602950888348655045906964396378178311788876887064005561654311126823359427810359366520709539731328428576345837888556981666187024981942827652771653737947699425461247590057591172695767626404026861744454132483964047373982164457768783860043845216176581225965215927243310979823801236319315741116543049443272456994682687994835188964166158675927268507094553202306396708264976917069831143391912503214129184548847772954020020893153373683135925541258485647311780958547029713764446897279047109386968687629942634569966285017108967807503090361180568612587742386818293194532052643898057414605124744763629869393004853043049902980811560842078403304828989655140930677728297026715435285115070994911574128909989064437959315468294969606805754383265254465584070589982605340800063924347586536328363679848882837649021004271754315173112870937889645505110489205907041857615365461320003753577786984961550604979298861625978986943906646916760651123844418691604949874052849951048094387056376827134327603079087831176997952871108891946820400869719804890699962815615215158742901417770163508538764632193228210286788037791295752535294447693918083968433336378891282619314620553081443834024985965653336720966984336885409243285126162589342486941112420790121050159786832620917352655410890258818103037820932843633509446389864142686323572044862448925194260732833780698831708435696297923013530113351431186674019402762961910875439535291627839310510607547069775655019163623036321373509659801313226045328878680941604297936952954014469672610217607385704374798688454368151562545492554229488431031486167108803268393826447120998679405699892774940284367771585328820580249533334248581481966835605684162306302965611836187598118337762904672998678239971999594882472013684349339792636987372763298059452997856744404828096799865309309605352632571066659122770986298029523415121321696089003848944906450105871074007028216301747440261793411107753622352754063432035393403989625184271936250773051951398755203523404501655750492976965608074830059090466934929851213548595592329692682854849601839521028133638542284105100692205493334049769774107164535599914485794593834215247241201698962365581116095744777296162876005042929975268791341070454914771966072149564958241770937271365334542567519765318614300801628877840275987188403792283464710356239442328555252089123365037077522926422390984936918093242476855452441987447337159035936012688156356475380820544206880676324216448521381364186974105674040780398945289188331960671420693359212477136928955356076395091179398245167066829818362492041786315989362889748604514281845397991548762746730779929640579851914160485316041938686184128727529365855111753639796615913481902846888227767859637895776699390635133404465213311324837073501437535417757823667673632241054184921382947340985084186366795170139994433626108174183863221121276400361164975829881850332368289333816268544786292749164179928467626810716981684554018711989821696248328324290276937764295577978887228420782342969728833715130245541113881226238921534767885004046411151035040488346719742209528343165124245838217909248239821784550039382210580622381296058233404746016701810092624033561116640968670755296004400236106196170315938146132370683119905302111370178069952868034340127937549939982339560288793689583647020147869629433547586345834031469705946505615954152373691082766677753234645360100606707540075726722267991057960501741753199290718672544178702927307715348112916168160503990339993712817048148734543926090921722752103217086010340301387827926728685125637467919392922488516148034377942989044845342580788753296589230479109976677662244900212092998881797559726224872332927424013359525868453038587736033824386675400780592521500217092912133009952025962410035702914808102008569271204830632071020397203731597878600087189198285025959451512859264163752919078198736544992178759090718355858486811060897652664638061180158559290992447205473416137430447840842388121770493761784094073494116445499212044719670021480198547993177360308380264671200659177781743385801563282418239165538862745362926503635670173767535206103377472114309480427941472068546705773669334619025383181331787628117167168513777030465321029245235283040523120595183545265481246934698603726302295063753459118632103813182676152697600717376947498307435072560321528035622683017581514479832255620073981025009455167668516574512811628402420445407120615306604615329877698017598081880768974153013159258707333627314925049627218348695543755964571067390375579800533714907586903459633189764917251248646653726567904993836728446515483989726463286543030309599834431829057661294068981977414478859959780615068397432093791716098151982065258852924927940460931706832477686581131566573750728685359679048782648782081500677327500322941742555804813960393051448700454902103285899679155685716036699075863237501270887785518767737857041456264500929197205055338149329673722997956841320949346481424884197657142874027623625160997902618912064779641927803707357596089566104903714457277442796509348582729379249940774100673942334803884250713664518679243790020979196467380120652516091363986881159513120136807362112950569626317137801544002834906877099886092447008943742499245594048300385970260637139340182801367668548365247325772885337728604716960583802134604039879449193434159141671258720683606008831279311056219173537290359428723352161754739519866511730072090461096762829000224910918760079036199294947250953124172804773281144986361860992176445273595761455525396168405057764519419384979340414951263117796767326931147602479136577895423908958315555460954151325546628650418935094095299898148189392503021718147034933603914518848103523147509177748956493742316879398326570619174463917236910438576832081697412451910035108664097770956342274116300761964503090540415433566999384904720323230579483571369821880384545918090135972209177980061669622787230051782266148679676180759229187179772842412040770505634744395819807904082393843935153227340049616546527731312976067534684588251789876648216536283976813491574958560019015796069143251047006465049628658890203835544790680046344124439403573488961214533525808007341207384242631810084857974534716967715230684098125594667890423990129797251508977516844491961373509307967623736778283823171490517385510628849660436518622445203597157380639444906791119454924491302384540958979142593264794911438445402141691277517353155601134703725606183764726099604861239300523621835246419188553984752717868323601141246592192128832920776973565137424681246982701820387359015491523845980568929770494849208088197817822776925933023959360070334131568163870327756891837396938437369624474438953257654605463033393057257985984405885287443039900279056762087871252862475928766346633632930683060253353078401612548603028379957398329096212212425242445653063576834388236498407436062567088033259328182740967726684228461034441421240342518247423805719325522622189463918383516733174283477407926121804326723672192202661811783936390529497097004472034236435282517651461967984825333305164729349151407355927413243704423435029331042447083969445536844959447176787595947554658385617826395348211949120192611370523182099438161514624385926161526396492559288591566678395850347658799689375787796460261427206625035997548610446274143170847287237769512630207053806722827035005685387462017404268213603367715509090139801384483017670757264107834279922641253474326906541197750063093672191521432245576983927404893930903329134214032271003984373939200079938207476403740740381178307569930027546525363375075645507215316547397874089107687067984827237133925333301541560705737603049755272739424178532912261877833561501438453828465136095985445254711838480687415802940713973430876460573400901524344520750730873422660692773266093370770401342928742669234515689828875348031719511887689198052214621034915091634469943276935264345495117823797379988640902835961462863621169197060987882579747527664031250350701452426008916618047148171112007852191605211240592878798905067468286172416770766503681851991295275071225252464762618220965294994340552450975634187521089146776120828070088432249990460955271216132407137408726310318189188391738545754240587914020506410535363711020702433265512720610283821928924916216850100849175738246859077528176707246450626673140656342975111495074168337631753710473848975822992775212253802026624434133213746882209839766152702155108394036021492054653412590573106933786378788384363038855811054327491312414616616405440604212120640995160932269961588346091835263234991311026864267580263817623733320549897996205377227240453611390512674728722846389336525447481111830575089250535121227956323857399273621643620731951700600048006967864100880340836009256233698805769478303708288597381727298055153389222678727693397746197205433024561171390768170833953194337223416079646443242130639716981725588231180316714483618637868436353742355195415740434953818158050753106445988489526543388833380077561798151384047695466403908662308970879943420956675552598921891506747509445199156265044528971770930070006060837103855869085064805223758889451610934896482267771363493737453980950138846552766976666472134652233792922619891187023903756319443801958253445569625438938876116908556163614851627600049624339183399088688465769641468184551379217401352261022920955321497675447711067606214525009663702498158634098474981969844106711977352932311462732553835809846980527460577467545872211808396299114262593638414431292662361862035389196912233096380491241207678442785064190107880781743253341418034446968903102741274161818543387333325602561870951431952260841897527573309171481508463762298614913094371958440279139255244329793150629246350784085421492228613089479808429711167567258893802647587853153143362868904254019071020264986071262803796384103878781554068676411446894553194376316143110823311729863418380494678180962353760495433415349450520783761445605237152609160023026329888963100282429877519127813777743498607420859200522341716651413848909308817309283592598850242047504020736208396284486834385517078292864338394366797325538921716542981581013820477729873353566969827470643829290474880729243958506409803289147642696662749098549047640241563662070672793234895849502032250143535186722042612119564695828977951863630517611734140451875218760457422660547121896519130307027647412031386823754798974887271242321583240579888461138470159236028765605120107068639781768634050171126614515169275464377710241327098233239244863767869855447530260212536088000634672012448533180036052841039410720517868707870153800417821370057905622895119655490818086218156218352582189647703152036467220545055098276038843500942538473164863053465899423253401855456159642627030662989792418844811510887648400883163429037314193987283057471190068510036449421029708378232666561815282864488169073574242242170076965060029409932247765333471005739748146917370809363965641446748137042518577990314899620224226821954267041708088519227003583182752986827223988966739180189400607045636539678108775989150092446291225451813761436007089096970202782464353613313558044503925427470521199577877488291622167923881926810884779151287166126101424485916078659179454473933005735823810158294189912685748046360991085336151348457485819624989475776860726142374747088432328686373458203945259645551492868302321779210655039326955191896790757469411347373449942528998438174320215141788033774783738150212823132173643973327893336653347881634368517757124930093228206412166160482318383937395738664196740646306654997445444579021558150855831437454736812776017208709409833078375295865815165987071935486436824870270226183981228269023062858687278580114729277681582410234192177388403274543773008191972134513528318390648542299374135870875125641762277760610143858421268254414774974594770536437766060992502045760516979158931637830742899591496113838350466755743510292013345911633211392135193459786903049399134124649976152709069222222378331743328514593689741449825739949319209240741495803563010341851061614571372205091446668989950571372537545760157805299824282123314002469714390526542686752273490973518556537377392510446271760453582395762546998377405162565353049369966201192800030246017740215260784710067823403688219020388318802855773212644523385456331709465146752995857704050832846714515490704580534101214709931898018756554492626777416755187223254463115109432860772004498078964515039802142734296490986557809726827169432934229018888979863191750078515501851821386127544592898091535084655130592238609891814507713644558728278780175013151271107153813519714141061636869721992581276305162318486789893659780456779433257278804352327548759494557074536743372048560066695003331377103106396053005284659592072102396785736408168722817524200333841198247870698769620124859591985405246232344038859981932680244012064781122233638386635231542135483476848752096214724081613687689252687207711038042566740709301728962789404290864709010544558811086634193753840976725306402508352751625110123235770082641578621935280244270299336107985092347493387468782633794957730039648665770343720643433686278455171767548017718574898792965672899682466436678295536358716861432056131671404723119968754046544796249431616458132554003339274448614090951116498307067615852165093288724170302385842544099408588374219232691630197045258164407957118918325856283117115917142443378962111742254382899264201614615808777369192045960275976345043239794411814059886068306746768878105304673051658691807274954287685546490765593584273733619100600470018170650125311129258366876215425142795292917236589459721733454676966915786322864761725938843420031077807192085137982782579070648620598833903165295772091541744856640630326242430865413181999225762811071938110386477315658659786073239047916730203716731949564237110860163306684935328591205189381131469598471473719814374100902405611402278395132416770058688515411337051188484469072595069170566425008286368539447306468886049665659271292967780673753126769924803628410755184468122599340093439622678730291848754499130602129203672107242110694884671272149528875492907406279841566058904170544075941250516113386536730322696688549179519881455268303718012500912655098361989286613624457341671485402618835270410656308570471459948735771892660364467514452415664915017828931549121966506494061621367326128437522890707695945894917953684904218542182258959876448962916549230577497340631354524838967227512415386534685252101413579914002185632622982660406509734298759792725184265445808210187033106749034334213590109911841400750788226685769092322214672875647158150002412790419638651888869885473440378157858252210580476672723786680663508553388785520167632785030027830475063749719342429403764920733332697712643883243663416379290025459237074504431851297064363455570815941404288057862983190903509388276043835536383332947386222626175567543417010356536440506823280763476709426664531710388405701988842985026458636405553387694993085313708890826965462503461557262081737401549992689960329141595695463024968516688483510921585539367762368766553547301781124695106511471308342125222013348861375802232644503037068863275605058658419322985812016540375617709172578960218382929797596324527313797723051121998909549872213534658914367930164864974292031650273101635397138732761896966350653124147090978876135941001101087664304198411281115865757296843224279238901331211565514858358616708645257888418884561957234236591163232965688416300326505369787967296259818452239929808509638482766549409285520685405387414755243865458635731653536667061513718670169618769441238310933850683821252641519143999878407348029496179228101388701961383976729673866309731770349344207487093336304028399178195421974077437140774915722620992945903951781194027248647905307694362108286326987700163870145570967035256820566088160150731495852616283917898297880325727985832204213864704055619984469891534784800369840243868718872598232527541932995727415845570727482058335687341807522248101858018520470860567168790452576355324588438647642263657284730928536707804725557665765165879330904927619693818079831964012697594259218033901924593887746132525547487461746235247959749108706189840469582869177571847375084368087265394021949363855901896201618059708311175870727802471582736710192962185672639605373089288138550926188994081866101801371944156463677519277643851703297986701240700506843103421278124059403059332422428745270394218664099667316188692324888459955937115531260305987640704456343938527220509437136596446908032707646465637383996598787320240658936932752181445561799292423739974614589018238586314448785843548400258455197747726267329279301443136468462326774300739813937394086566150492895797317132993057383712373761717836251906690761265954194373443564512859060838346677198077698272262941337653314720129890258034969078272132256426538490192444346749576608963646300500038741205394320540485783573391901483196427163954422191428659663580718815784079835487007776156334010062926156076062713798088991773951905007667735533419415003664175109052792341774201103697800210432244246997470175225774152218122131382037567921038607456771174492269984706534585647880010837850227545878116149255485161202326756790505579931192233976908097844382440803125512462736844793698833447269383063572424603106818954794235136958248016778098720487469793158623552071668647462946808908071516767438306373549747950567143960996389554620614633572664466403112920745425366877821433582905931754256507760015861625648009451652285402298451662946184313141716249859922695319427183088188043969088936985532731885983832069470639333843289121954352121736849955162267193133452102132974720056879158940395704792612886861179805069764854842276346271403097978302182065723813935114805373491611489438571369635374552771536678530001722997354582171149193649076114831713545068250249932337093224420674548443829391234456044846060974180063374586463719867714828087784994989156643284037330774228482191080907855277201924672113654446775104127286801240514854814107035823053750367346947387529938332367986490025405704568150401802542213986343846528598948938821949017820348881557617534138919250951588789359707939801467119399006826042276732199667765984481339122412911654800847806425237664477923256829476202430032650998386493237019856746750326427887016129587471116412785585110685056673898675548411831026466561703495188035072654827382659644826485519783236984580056298655699551575432581653754505297845483393700839259414421702503955174268391640902259597621121319052980061524264806012574230279035318963478367253043230249275380450821738879579807658657120063199168333808545160449107851905540737351934253339949764086431259702101461797478038654177263901235439359808826479876367786612460738993197984760005301973142716856233805332401296784061606829792221400898511257925518967581527062515721743042026484275435059053221194408298228293303403730571040635416493072189619210548257720467127916221000725448479175558057303075813903291543045963764741319875740245849358163492638438254806525174409737107704038361262056789333418442641036630410640158926211820920707400900190536243087039367277092922609536182637755981653813601824045730767013236230762077888746870417830084126046277388438375772546489587095008048397684114672802520598344381399365473401661582872797494318258548714661381422211994188776248838267479640998977466614886466960397091474129956987652379926772589062181084107365354236524436774668565073807621341931731122610219922992793173634332582715872382093265312580104138124083130094553379308671526665927397424507385580172347238537415325745073599142149084335847058548836677958607464289732269479980880419528234238624480838819930462842065722690638726391666933343629789581515260127481221062993871593942891698687367061252803756560524518094778104581653372904408300534898229354550055410195683326675616654695267027461663061652548270168310170439418918817231619301705790590582195913774881724676837880390047198142074580454790137765906167852453289093953488472717781368089822352908335692937783383197396803583807696682256603455081791935558238178592126005969618804364467423597994136439286267326142492563899114737451484841251630450185891762859356585726441340724115887938256774312586625319822009605841182820550547613008334529930282452608930408127786974098468060628605672850681095907109543850234641287175798813047392718564752357723471562858715266033314513098939653025368083414226845723742758937387969594304633391331443649145051134625102381554275638012324399153093213409133623429714943170541421804289763970673322168526923282432348298361574618294275864626849689024353004624370218513240594943858769971905012616942902303516016833376695625857839913394969769431904097935946527520933101766597355877215582595530570565140828876817304946507681770640320671586540842084632906362382933352896055646304309826557965492800904802358433725326848206245443012380137064933991526629926119073887965108469435495953701230123557646745962228301434063150418598437411918019302293139252625821760010606868750916473807849109650789265380985490015077529785732124653401235458372975589457034702084242852048573092544071121604272071180496122502391134821919381906926217090754143440272478044781004594534170255615658201237009594314700967978449882735100480846816525960714328612416899255749336045425764053725067264717386987402491301202153616721243553804582148842341665144798381060035906953420791832262835565691082541605556216879967440973026619307880154225560891979022281352241456342436241245301406674521629163335131905079759692840884050714500368977777100196081289375815726194084342180063441178997194514515768036262385986080365779964259150390294957832193767765436493860041209934758419934721494901927202714700635978116188117999679665368436394611138189358552908631581777924129186148211291284777600049085940717683097575502330679988019173343758667647205603417569708325186848264420396846516020865446303667878199501115027141311629313560077382014615098304791623105667898438606796800960956015769346888860180349411393294834496996959653660353954268022877307596773390226328539548318244559646785965909813118544818845400666346328226994342998157494427228363048523124649220708221213525067276762997607127847944361353054094344831734650411077765389578791370227001449935996335465788762444257162233769509089625939226531451268310689182890326394249393818404971552361568572319401675828410344527940228075920072700062031528004115483810721444668005514221948610760189525152087493660744387586609819742415909177727235948886563894616117153368405773599071729935350682171682272045628920912621478182702516324857567176100266673830016020289683234089498142443565401514274017865537244510677871105313167103677380044834613506401519853582307482167202173830240474126328974739364396838404220629015907253156571127222222182096654788548261581070659909265163552671095754270866236835883650640993810874050436610677691912532721886354964273078478657056352036110932117786427864807632235567698992382578211371896292445916315793361390965438751301887177582333492130936094386191594575057010198484066122192251798102157028090698892688182923458446415283402307624261252613773257062570335516188102029278405836175025699336330815687460413630789758288426834817927269075321392550318449488417250835558636854805277233997342408087711472403517022398594871131447906219661252957374600256301467872657140294671038418344557518811707762459435067594957811928568594219421328852632649187822795115649573082499029602170449087397235931629244680597854881202488402227777776666936681365817067022297682351810687741886755094859885695148547736333504933806552611946557472292688827285063428154385631791356505538783290420138331071759274000911569705948275624105198275113100138366695234129896246727615656683847718158641781118204428364519391990064049014491061276838288003552372217545928342204799931192109969562919830887958850825026604125404276949116576338727233549886151259144060872363498953467545025775644800588392722656921310067672029462471684357289662130359588438131731051466392052567121291606865747629957097587522300431857045922151096437526686700683355164371725929598179089443188319549122998448476859575295099487950815794158640525594944170271774245226770390697755556099066420098191175097505802718414784473124347520580683706375106061002311552104539971588346559541391103362911517996067511045727900474807395877578928642993553685635295275537530282881047696670288231706281751412335092158302261708465088698280045963565473196771814740872616855162960453485155391615907074607821571437233562407434223817931325677198641841661682096373800123110856931141924260987059109451055121855367147498434049054734143279759887978710877084844908843746028847936968081396580105386349120321051158332574790669258894110387411499806118037767601180632942312698169786513898937395670846937584965146053825877784098376814374213474098826934233432735966792448892831752217068646760451026692442817468405895600455030594409359595346506315366680528643890265056720655764721865380910038948817412014654669697702530628858662240876490365113068009887900830384309253602901780580102546312995700945244617874885057116028136156438791444707637237207679518380557067323222491627367690544172643398794611727762177616541482505778967840700286372971319010136939297401293594865996319685210603202982470702612640551509354194173157554216747761892639712871971352370745207092782603258438697458953257946023897294594064669304255535961779228064694012149595616975222517267536076609837138884369667452581362796889103146808977268218050622594186511213887285498552209803224524198941363919530303002205031839276558976366876573557331418514458666236131497098462137144472553004238768234128315347564436818863533054099478857265305615842680037059647014066569583095142372097268504075113243560043219208950515684733778100659458293845437833992036277519706052497890684522088736601533396512335812730536309675853293474642157619993428679789376732692299063340669581067914926180919447793359053447572882663191769220445417602588554936674361545872682066727208179449250044928450196540699091312674914678994288991540370743297204575205275285779014975019654913821514910731496792273889715200819520332537270226283715145358537218029014642276008804802393474465686966176140675583869787809065945567788689272439004285053758519874317996436428106201076851010581709059672069610724320914617881371001692735658948921722056771280935604755312767147975369456563311619735252383851782259077310287599830280031216135835603866712738286953474276451558132903764228702717928006638488708301446884744172296864866806620532560977180844220043994301498638690391171562299656699459527874821608663829372169145997987534668305657424747095254087365487904618451380525624253692150798828801836831945265763529336245345590517896902673405943913251483258146126674451857933641813151450307696282645176533984245763918765310263802246994773755731914411479310965035674817884132845332881487918267540739669037899848823368785617465684175514492339301103306579006732932619664908517802665256697816288896352729244365719841792956649004963614486346084275052736800952187048258853793306149745502365429484006083197561542904111879723364032797662770137618271664340533913835475822663349299309500383877283572264695211387460914972965463264984645661189934303076895875816204412235453416204942536554907384453199082941731527931592114432021183772203692934996371726522745464833827260192529954285370904764323283666709386863681009748500960433141958830904762783053340973192981165587435599738181109089371623671076590846004060952686202953091172418579923257031438468242762092249663186668811530840239527331097203415808257728327496579156396479503364772106885970947883799415699747373158467216609130309173154338158001881879939637795686462073211879471833632172794044146799230933312181891834450053183292874884597686205697021569616654843277740485949527063810854090268253444571969186901297794927223624717549803921238084078194097917913184775075624057393250595634871939341255666626903065765732637429603480563074321070867554466861235044490060750907243008708623855464263450943005360495163393544939651733555770974056527999743168883687823866243491213634606062594245134097441605758295196700427160307501284038202784676455208470420337806717652321445245604861786309100663002157243773802205368737272741981263452344121232498056206940141166229043181991696662858399666019204958412768418250818068926964939355172841125012972235800637949025690225588431848897760649711979198209822243079814816076345035281724809662281580937982754136990778657338471704397114254027153904311773838701015194712397226018244205447657917417092822947991095798903565117651074164139578676370552825774288226904577203069896751827823993655791985669308903015705466695391926436052603048098169865740869154544647977474218474420202283945667311905404516923350657760869708502646067493846332224706894584005428268124129224319777128654574074864407115964797589321869837275288461878248636117702167057405791232074882106364567800425234379469435969563771751356391723243611570377610028709768920053243159442898307133778534863179395408614518781565791996224906810615699648066214534111847012588594249272253899618885768967719873462059663942026816585472457722532931664626412973234328349053032268241864286340869903370330911278718740150934813929242111190146719945860006877713520716748504599250411738517855145178634142054153006296147378715525226390565791717326591371430200441964582940462435269223081478147563840707704957537241182939194157683025457984153486290467793799143591835838988442937310027718656495195258053596579789948750956720353000482804010133917547398699009484062333011750038839004630798498819839530322462797746950537593822278493643101173952737694777878147895215167195021490691177230572069655457031321921003296679000373789609941421388659984224835886078942477505877971496082130570435463496623294894858276069674210731035981363591962348134036628521799370198640257770083477496657218881655113052171901131234242413367821729348349297927474291021901136638792852797459082158333129937847616054773731874347312810402752392477863963115453208804151223042108791229025677856745571934948473460275724658518135250302195959515539885074994641646724820322719973647161949982289785214037538223337856319077339335165783682035944500863183881828593423191050300516128140856015016295484012010763000707269125756993751410697624806237637514514255029157069762355122633846930265252690171919976298357309698793148735079598395390391538314544965738735109689417481730756343321220802833097880844117563555798672588269311965117952721852529283926024153383648248184474793472410995117673054481559700006421366885705175695279640565005110237571840264179605576618585008654460403795962012268789434452321245073550751070034108071500792786038140608216247419625434909554548157164744772210202056982230914773862907459105959151113598505762348126877921530791383622184449854305824819022465248182022689642533902298793604953450407524657627012105534890379053152233332425865176447054007169050019148339772111725857014177477731053426759785390734360779835781085350868021250978514602136204449354240314059918175238268171661406791045283463597200549436783524443893173855883612360776146745702214569193206761218050432164313640170653410120888250410521356144327367819967509150072953607626503930089814197133978068919095943129423185553596150636196967888851938541981858917479895638006078793996346914203022955549353463443707466914341750349585833043476769035420900841113519805441154433018811994238781220050892644371140383091003101985550606810281265075087190060277074029077256004745968178436701348515093831387429112301158460952575673651611588319305600579784533438168663534960109938145969684953549018389665966237666735760278581307368114817733531488328873985763510114454877502691226679421390284320900262962152168293368588482984506408100993758852399116730939857838584673641914338210761363169342884427382885792249310271018919625053424378407996535424402251597333344743607141436412551382429998972730008554751182286506462895245317029887080224377504654666830220284294274557207019532375384568417006211687877161852496443222865539357628653872644978234093323800720580681165764676633228274180336410554760843342830300926632123310713563147913365485563514617355774094437316322102913298054059739304507756482515609350299354043816200298671973971382913098806164893767532491324275883149016422521634018308195699181460535572961794166994805725657903436416434234798525895857084684160391721395387477180897102033761967231242739923027956338369387130715677686149732952664537307710008227723979960707711432383440678562524999110727075943855462360804885020962270405274798590587183563709575183715230750671295637653217958331098792445131889133649975328395018104453597715854316928471217251315308439008677974529541907897260924199660214524286147527090627477768455967160881426936239725299197975203179945329689837217008284971428448227505649527454161652892905679350100346381680048053525441514667513166117525791486041201878931239885581856905910912587507091060951367595030849408651964572977928177195682531240001522004845719435616398243590399732641383564319591458689335063003696485383425626328222427435516603236341352362123874804480166248649635098686659196588080943028757613512179647532248345378894164724403174922353987489876046950981086870378183386216398461691488964923231912334240612038886820297092516181795074978109268251380509411775498058732843959121914976360090870819222920746945084394057985824911224527758495716023957228296121513986819280119320890505822245909688277163786064394397079474312464259962329177522285788890436828002123366105523906281095676429805105531827571501185783343376816779449288187527742951831800903704820789906835945058471007986906000057028542898517306342013593953269664455543351681891054647188272440269560637827856397424005095709037318807370218605928499760517725882129970630231973249503427199230443354197310461503422943306970658646644799733612146136559769202339111117624193048668067323199044495721802960086040009145119710735086900272338216227809922041799933985457948128246857353987319696075346993010057052338979852203742106619047008237247090387502633486985704095979633425790414657121046176303201760987054235191916283672604232353592009379610857666810756647362681840495616893109362717124989945532554282436676116627679541023414358341831731400824401644860559749788110255153874556712132286663779006313564042306457205603032907686322311497349683468427780865085297249749714777508172810431364949986886558708103428899670330741700602458928811371396544333238756426677785412778519358635500424387659565381623463707921586184887074360401245886180061085982356018436813990199767948146307521925953823512015274063755267699239447400756015726775818660576159158625787081255846718919056885766575299982795748904589904474558470475049412856968298585016680058452426915854849934765679740631020254936924524049411331169391551229478702709543158388299425830824454483021350334023764509713422895808376542149340738700147667687729745020401688212381288483343667355868142424577633077803244111193512130830891058551093652985407380629362174978632349495713765798488045072643019761899263537844375034121841961383573810771656269110839178952703977363558714509250833177262686166881223495272292422279110975707227235492993152959478463410412054976010468001496225015613008317411612662535288669469907515427434314654974888749377154596571067798216901624449781438931257034528827735266569530006047933894262725902789193280132427743969268049096623293016990821698135202931526490301779215997870930204040960405891927607337334127130630126007934524187754496286660696858160878916087863231966995656255591964665022624186688244640359015989070800587955604329347057812990047195088016421690432003961296377305797433967433504515118519536864427044182228747621853051089701831589009663810051384765117152606545791317428717553405378955248758519787047271917237532105397904777741401025180471666230745018621784262341290496678725897767389918192406779416150850574285888820265393002305838656842734569522020709788605001260398273653117745706796096399480798116380825126958418098910355679172618908021754120431614461798854305718913211185378979353790102020884477346319705358338299708105887614257058084065147097906263537177983523655767399910305886100252636473938883978837705105877938609230078928581759649496191008895626021230225383203771041862930023795711778646861853182846736203375552391073355941048191273372355430838259786348104577337917400066270392890585587490237247739061281331224493309501870888836243820859419909780908651695038325025198430071229611718939043709953530286037901049906741154819192252192167927302925877661296150229035836928552008047961223550030189382248568577940278779923408061775128957241256956909200220840113487350104366111162579666757634486367374612295251803296869693230561178235082556758794071440660258181044163964303751888794961480535072353723412050900762291257878429917855996100719299755251937392806767654975315671970444772073893359133868367458434886693790143615890759999336308409128333434525509457040863788713184779914913184120809756635741649166215357089750141512710917365281622407569382251216829437279568140597919007436804238406659468808199021853879655070108311996152558064870519719777426090891095796564767297561232991801056481260419605539873990393333296797678563419489635256869316147194198529105041253884775370434490562834683775454528149486079548965809968128645759383813951577676934086006662101533096021159270733259197493949956098920847790188368764525162580880929765800737492047101648538052828136996948193205055647434951395061087624394998168980507120177621510923694944903685355884374513225506924723066331424265868353838895580145829196507488001388979805623433005594409604388674009799456456111041442916979568883833686782040218105739906778166667923161897857337812197156715688521871476429964975367826279748081501232852986135846074049577245424531819276626617814067773255934311729499148499310298042246283398367072606198480300201178129979524352732357210820299392653977708483015368260666642244552396332374097945729510961040763314780538502716693478175621094579715951125224189428231383802315980612806213515958195543133812461636511611135690494532186032357263732995816290244760499985850019651408246488009698553461282269333759325464935244492578850866457076628752335991998187128773682064332037917312363723282202796632589612300097656189446542526257804033490776787021115047813720655688048130463765043024721444198722305961082455635639949923861696320016391711508399395965528118774816322055811865613043395847149838652712170367232297593577679448704873618518812759915986967358881266330753864565700460837372642663229621510460389774388670555372185007603712053001611511940116561116282946013315270947714353232480477632026350023833951010637870229092857462211572910845036996394633532043106359278449982734733725140161227669899573684368114585071188715184586023704745752793452095801472837631011040100160826021678731651501964861482408818692420689390079786013921378668338466806941605043824583974786363145664386624385018455338915387057801215998964737203627091852907262398733273920894529489765822195678513744802132697406401002490348000169480622711546401908804088023359738577282989044545738944289188295110339281423655469514358742564935513982062212676307198493547253509081540441736490959968584327379689375238009527201976205955059682969353300087052385614273480153166353204892996703787831596197459659992547337766467442492325129363833971696763244678520089359784064796700369378605790076847917302328681235516549145224763697320340114524828772227947586416857324255664098187459705409075253184565207185017559890902419798604663003684600995998895184902614057793563752690836056999485019184807145004022605201097049515131774585950319915978417569194254503356968689021692318881795223109374844834456079140050254766463946891787056201680060126332007005046993615974534672006659838470193211797594088758182578473668569028522781407461680389880487203606609126202477133014055707795242198483100813796410979278046523920031788528788767056710408939304154438588661394330700056891982802458185568618140333811765468804950888783097077202618251962067075745719747732503831144588289205026348128747845095732754902542257395502421572848807405907953241543245080674449164650325615274991057452750401702576260549129596335817299627763278368407862551353676339241978344391216224321369999889818072992212624152925102722056138069429009262221727047437249381589456494261644387425973301053686094505440140188652851822978819791404937441469427760219115337315830268107971631029325674296347817737538548264046549020740890780980272328568718394279170903003432579918096274577038844111764881225425950715030463873812503006174570197356327944890838634078034568588273577030699987274433830737519774396794578354709894621665991634627553511349717111915815300107332558135231275555451986903522075941415189308755871542581892660830255295929970250050970134904310913370744220602235841128871338379106495870477702469801175669099073107161819657272211890438372723715366595748362810290790269146839183125707441914950558189411566843425847681379828313993958166852580686053710398275414852900302470943763217540369655580129756064933811067735322971002247242966229996199794419104019156778168013941483648763737238613845488261661923625444564032506748196185513152227267025208366718126744514797517807946689025037008988965685273110527029277408971426687725611448388390995414020509131785276556692349689977068741102295187805489051644218584611504147558152438672057452152405463412115990066642506594442817847686465569914886915481556284580201873833880271063015871097292271774558384516681008334230125063364344462344995649667608116690389871208824011841727092321003492208639203160300291440760751992714626537796255165832212244334841439492830300277138426879026701273339587102765294321551906687465248821734874888176185726101321625326746329517823477105817391902856380428108618131779056318996235999351723861558832896553243087811242034320065036613707078746538567176172079645681344233018434858101645597814374317730001457776025389224511184847471708759253974539332128923312064883241857573413314243144560250801920686166077646172506022418488800018084319160612410351121134902593563295672065852629028836362124551285939042130278082455468118415426663985031551939496333930315126582518898448557254536837164554491055036220849812276377165216605487484963692362531860798385027292942984812024732015876275857445582698607871058366831407439827250433891465196538567867850999480281936342719636189260679427428405675220331256735877553546600741080878849193788565920570085248229692895206166823527289120785853994613681653592245397224356725070943571793928866115583951171987844177190030605453115688280393805326346883937161208295955919062820087807093459483276512975885929375381686361552495682464598949992361266718532776081487171224764762455361860049246797034030610686700492514811604947740376004166096722515497459523251974457141226255874946556705728930974831342537008080379349591110526634501010822225332041406033096605158936038545113387757732704109879122727466574156436524828832021543091958530825582317899996276005915562948754003478334215483059789200968148213788602614994611091974265240036233279367128108637723900572148742413142276110639959891412783686483119236470819404717342544488917430509342275543775548501977006450155453454882269945417329261218701797569794663199301647958419971618087424108752817133159506570192956608911578783391334357827086273585350576069560014237195257892292459856061296586275789826873132372571952529942694387461960617730207338349833520555699241782338128504402317061513416238677147999439714402320596137780641987639920067094351594527088933680938735858075170947123748553286513856692823500363093915644521910688722710297474508866048005851002241791946914591446218816514123462403467269543174949894573103752305927448240086941488695784573642062341537395471813896476846492280880054444657748145957908620838236461455748556165288248146158152795766807861523839671851920539277969477150274989215398456201950930377198901997069498351073416672051818386765565413493403453932816652784894832831840188926494153968844552623704985203362165076912942655018200919333945261985758686087126201919326153390880168604528226092580241298546587297473116059975585046676728728846182963199306828765191297507382982433814465099344760004618429441869976402917917282354584230927057032073127475901036930344788706813448097654700007313281022395938242809554260497990836939156591751551066113047440796596782613346731096849583966472013820664816994052217850424278492183755768129814287925753684998101608600485917800704263111774411468793769991217821506346354076997343441450069106831185362548592061062834632943293229387998984178896031637350110196564503548175891941092667285538919937946043123715754739983714705552740148469640918140314130239603911090085599875735760597398935832568040186825753586791118313890017841291777359386740589429658895498584427678412245163700101733807823304682555329128411703034370225519725658506847820138391639021499429338452723605218497074767375697369984271581064844717535825549501858987322002441357050110173646689468343725664417810610619723413748542325996859644536790202248610244642285204401005702448938168102263411959647256944590407632604980433703399911277051078406498079218597384550095424099528798136543628028685785547833862145284738671952208132981716161001689814587680100677846501176193489471353455586921494983308778128943462349553910652744360287810900081074432173954403768391564719259851798629775158320097478263646758029644048955510983615048000640723959494753112507149229987911215625020980338928145580076010690853306243993351797234167579651456430652038971549258205704534713050695871229541721814918931619863502196195478448865845864048224221697682770598142929978472113882827873509139730911413945163907477846190829062590678787884978606683982489170360856002713516052104607891873586396617749370873554780084674264968772591181099810787469066303529495812069372999526834949530816327052961636357579819997128958917440349160090392344911462903323860788082498616397595494686978118495253435936854512682415069633386953197793889927747603003311730181508120403977175485346134759219938520723240001081167564885472806717186038960988108914760469072600173304925968487429273884789096609707946997098044249022862741995070525287129996332343962034123520691786665642995605478315861256555917992755347093007302006083650364630058934486866509132534507476713697571294509139367322764229687304886983914489439038111732979117842191820154694908140489952750180088766931439364038639837825489177322131001659132451776267895773523519158049724537295793377465167277297364568561592181020026282737982379408985298550172305740786786786944253980020361257351853514242960090253254999995527599027713290826314015517079707706831200898944297629000493127469097430437200491253580381638557427598733625747769693319907944865712631245980943030986182705707817726732733129703141047086813825056466597696475012658472028806545569755893110870051315474328348046031730592646818545992356785277746528002003651210834044134032470705245959737544858130960632672525820457547383798595781092780647535953410638067771450921422570253985895657206434296826776045012435836852306762719011316876407376328826734160957933363016390270728147896422912049601811801608380812281337363486118641394199160678238190634199814297038842941927498827788594160508485906119609033168095823581013690362137290970556773128713880012478594100181000250950050799888631871543889432101617594821224847661803906436251685459319673510707692476597725979705650219255760518807512076516048022575560188228429701307819272277768072168370514837620215551829357926548873884458385082455447703283464597002402413481140302483002930054062085371546112293025676595197179706212341641304645503783069032229747451969793501506313476176763723240416712972658642285706953469992453457868616095462137908283080114226466909182191204971481796472554678379520684329985465335431127437801292780928673097149590959965428756540614730696506468372259013806604834029454559072500990894350100760143544612423937404540770460315126721831664366554986671232535461437936307044802540634257149561531560632207136232335885976527560229549680342650663593965850395380065646123314181804017382372230179558800102894194720037778329622648812643452004096850012827335803245012590506487836518573040538322770599714164457228104828893004333513845723851207840377748087988006841187707548514328604292588540061416866363583477588069505949018827861129900784615191026691657172902027431050374847625913170469875468924619540610463395223305731175167556092597119896111646976567445641551311270920680832374172800686651262191409817163766191633722324461398774193853386216287545192895198258257887424486415038699396456492183877583449549527910698117556281455144179869710404465576223914981014980941980506217939108578140977273134634280700445328964279554336087174525089217337636448543749332729001245915069677894863025609858585859226146998009173123004398469414507151766988935574320747392539488019881338835236256088658397692545163187057548003173730091137249486428746889136249601348647659599892227821751030192076833291134901788826953516177219779142973792134405859600891404040309284104399722001375149253910839830646474624243602177363242759935607217430692689626000377561017189300149639516673913187901096763489735549150417612443549759368361595193723277600175001723156399883473110596009719788713715191960129591091867490055068059113360647555523372913693921074139698591509511447754047697105927888348454012757716004491314432653712805122628488321450488254492125078155008324828141528200386740951548415874712985386620623813856522208053896798926443445576822796498985605923616612168443519010118781629356591579736316466153425743370577701405913278331004408233319438535456603391671465522834533461461888365481247931239022903204707689912013447283347219314602426054650798844486738676863581668386851712299805214445803456591923269654695642884308864571249375139407933067268043368006636730573519032595471232280925561999647383246584671086739498267593020385023670846652245207928674842957059825735267765788125123747528281886823833016008391352205946644979133909014741069393260998570134490802878159330435800159640480820061880270714598990544860221456413304405946076562529267714894856057100085376986553252736420411405601515564361509012404188046344038878333113644008737279106148746290705265124564578077972003661976605137940695032038577537746203230287845447774581608585545013937589093778776149894795907969745733237103055498955456714090438302495059463995809717050435178581626398777179174132599342785828076637825572032831947038689503389640898709496939977262150222614530127068219479055112603190952076816548697430266502900196685159921313258613707664131763977554406327548915049463246258181914977361212273786905084328575499162355341003697543132772572823223100946897530651665933558981697722723328283072360834965468802441857035282912190567594850218590493001932517219667943067327847009392771706602727226823251825510184671725563744483397896918670369434018806091913586141722446056456587192974877578729387361190140508749627013834469025625264504763801690846554527093001543527074771978539525962733933985202924202066225293224526205987043081036952298472367356658546429799013305759460704963731457844444906519428032361784377277591967339783570296901423977320588211554069459206113862583384313840012957005658818796080065649624040181615206609700939751942120973365914076979075936623712818207755154801857332765508337226433380471967088642994498681441895570543826169590870954253058336089462722303410460361703993690017373585900431068144217752165810126204385962715246742966521277438934092629911466596663030633144347990436790168530367195839000081926417572067180239754625035035831588128143388171533617376491216186536408729463425302553084454199080682857254275583072195990482669396098366773612348906672315177230280033540007645059055485280798644241502380746585472720167547832428554741986781820163500769863290479065802483540513721480845053066732209372887793271070533132735241399422351532433600646510039254068651379125918637633631879662770734076515618922361362301286739849757087339370959769639390607709788796831630883579874069382898367204410472092138666407042978228825902629216849450337944136787398459575995370684875271202191632012288025725407023446071188583975983587047608169060834789379727677218540862234712839733676936605439808411943151821375940465198477832328434921507635544084787997431134081550232506250378460641901407098747046876689666852009413666648102391401885229049032827652322315248049856273944713317838326532014920162174630673736311482678377474038940984072217952038386153372865760909749599835496571320784934028806503166001120210830000419715250473663990935729343314827151462397931957363923079367990712321228063009208958798743973719135565415497739328795213818637043792761872445047558660861593941734211363620981856728157198589672112083617039616267452606342444508460613899065156555551660121648822004193351793591559538586316256658655579314172826095758710187213509974771175384322681606484245752900388264906971293455368681808088488867635616645779329967220262519046737251021399299126908264042887436493491273779111474477783268238738351407805039212330361991554789600602865606215809270655482095759223190028098103622484025183896283140217660855262653924241268682789573204493336946630315303213605924400971873180292188219263083491256567739737890907577270559798195000348526282169175981203566957877400427718259188806492208619001228273860998745808855711405862246317548998560484024118462604127056871062490861827007804388358213074320274992047109218681875423368257167596838731057163571112745940908297412790523886813880797974036720634804628261246887737382520752362425087830417198410812356446268736394890311113053458626324060329757129755635634337649908896633044719354817036950907336033302820906499099277732257138862753359008814130868246013995889988866284325116979342000206276151056654001756594173827800088010273422471359614665179063624630201087712350502412208990699225108560983460010698043249172758451692173840323984262146667308330950306714419883571836339485481542345294848860953865230724533850741491270384007611436384929488796669866708180789692475455398510320363517197002647759456038484948739812576140198390474213062196904754667338387891300592132710516671432979707442471200698166263818154419364605199931538982040665282318225463881211554730954390315906061123482808349583987536877421716112186385275959285814033181151262561448137571834695590221863289812488956721816328934371028386056712167175327351728290239659297886807399990349499962728173463876591470935030240328132232906029071074754705042149751470515578757653034212620678259527085056465724654912639342301880370719063194086143220025371260247791728883715515629423181033839880820198677269325943630695015552318445819810038947252251383690839245600116442865685952493470866634490740213207453079027890924265571803439598735658549562294831930475601386417235046837213033469428544764264850589790361915378073882059213249806225656812386466824601318730927109111671903582612295508708509672867786191037796714653736852808459400544780606418236757137535183817036080175728697898716398828446876303408955161285382873471889510101387920969174145120746881936283816179444630989471284735056133733033053200485993748326852026990392962863607555460195341474155493708592135739974749163606561226842908564998185625292351126925692133181235728070977257489090032984722559585124229020248641353520565407246880242947097590837256911239594033398267079204688181944118564657383414231339347338126668254573650366502645328715742413070141849532648830604248938099671625670083597331703933412223079177876210426207854306289782834016395075621634368534779321536314300149305461835601050059089133809580786159542611214022118883592239881391891368834279814940218792140864512661442813008183515755536332607350161197608755683602050857355219652096165005489779861803988222739689302788701605966821985710153556238200530956600145668843766456042667730276552698506379459460497279731586663888522928473597594964890039786055448025321264958069772350113682077018166532381369461434190811334347964950808558641373865130538646583212624717139466603598378129282053028449105320533311318681608757650294658036321245126655582859033450005929809630037828699496387366675601743053042636918365528471881970997204483252907804940015823013945676107362767628772703811529568267892472889437364449447604322587437402138176893154452197154325874701467356600745594308270930063251048961252301001281793483570023587519708349328120123472990329255455153128897556233038005616655381223210309494008317174125915616295322126944929437925031241819978985308056558225574135647970345445384136356262958100005630043439205145380141467286105910157424998838516896578177736196115219723848786758805726285199985792614406423280955815894676233844883554273872621025580843011312155021933396997835254929171524682321056552718002238921188197772131413697820204976916213194570031989867687592151087432638083853461050183056033311968639643585602052368998986545441296351284993092314583354090911283249124265921166346406555403073085493151032999853113028142000973965022986075987404661560630713649933051893644423765641201733426818915833522720426299046873433960392250996917359601967972995173456930543338541376520966401172928087919939027013725443065773105328107692142627933700455192916459180755945538514888281813121950741938824650021017100615509634129135574049493806173958530329075177488026125922051118656553880631280283459704089030456314906349035110586208111853772522241460615999886313640849045828691780402630793472300530548737173565951069301088440470056452844142823864988763532435266027850170303360066081546325626651127154356562263222412856131439721784215352153262259751366816195729125864539103663631110331047386946322028659394367027401904656860923438266432082030657182464651574736607504152649185962510358615617371946220202611885059162963733060102609667717913164576710801347458912109185821039239598606691630104123215610979218227617710777769349362055599433479223680599464402180234924045671967260923719495420316934909498211109955589583506879915108912483793682872374288884699850564807291555874605523356056332655566917323487162995985590660501005033820435674056987791386789608194741450005368551714340406543781782349666945179812275363315051593103955673109602384066793575588039827855006495604170117771388291641677730901421172475122869967354671754674952721867716730262188318664118278001225216658778993557049635076812710345912971595043448905421024066422039793217762123600566361780595477128814602977841216810361014769357021843445332336601153680779346127228421374980194461817332410078098430237913544612002626941481287261953971277476436450387546377788290682795918029557578018639407086045376548851863750705606442801280449763750965426010398631674220208083414224037988926929121518692487120319863579135701611453836022806602055481746723957594372688512755893652320382565685915674568572274054970342472914453994104625842026416270906467868543361696847294825886191498145050132008667639720571117255108393726167217249737016950633129137150760094759190755372304603229409984760268997369456304323569279547779586728021822919799283283346399300916716399091365975302391853963631583839351637339961927180978438449143372476287900169164822322547711950789392536589160202731168457744255247021435702778275349523364070256786337716921035400927101708836224219974558088738126477663475374191089347824798172021507509061723792811502228979501626828048293715339630406619680119362876529416572040346278354529292772647173897559673988376979156548333016939280971593535904583687141155202198998074313401004607225437208375818057175797043897018179337252144912194551726413649359950463720705092786352983382976299102832961775728340176493038562882074765655488877369306312778618813377675117389043614745699317972438699279636382443766704966587594712274093231542045821908124639264273335831269729779203362980994082078476077049822704550834798038753932519386132048959605081030399110805396300468151495406988481646709287996486479450260896427457566069891911558394587227010835568076453357047877858085550417974186985031157606304610858171484462143091420905184043894531743485550862929380812198929227163464434093252919537424824945595836763946467752726511221737591812628001056789236374968543481587692894882784216129586549809312240887297179050820945643822108635213418754325937476923294034748115658745036484602525082999303273056505404575964459036252868587125542902427145090540947789284675677354503595856346563239100950632926127042765442208488397899972140386576404912668388182551772262813970000156706941266506426791380475439473194297147522399560302385988781796347742872989808108345441370845909727274376533559312584928658334668821229247920749462638703141709594249819242537680188436640365442416351420382468775740816867332857257097444786635560465637508234150767765518600522405494346497856395622996591242842622191318975384975947033310959206294055525872837418504608981671096515795488423072059955952875448227713544050090154846996554565858409259446685352704493625010992416559051925538728193422664732120726846859017175370359661397809859981717379146407399915600832756099707544638165022603714265807568381554224707029776331472245601062298708207665001854730073763096022590556553133347121882769872097758718602048817446437559954993202132621179265595585009181886573446553616848444999789150847539893592104477343195687558143123360330080723583596680483213689895470296878567401976607546261748610756218755480406576665943379080304243845862242336191001096315025998075875254240992887811975464578714677167662523996566586251780961368829480822083065816232782993699924810290871128673404456418865624838152307087348725024157214260768749203961526412847870195580290736568254286240850437144011915476092297866673360000570772785063277590693588983239474761255271582077374707459618303572127006120064430374399551672583573581862283733739367729322962912338153084622305187093743143688762708479287828422743916760930666054655760261880421711636012117161979385280321171652974455825748386051866217292135548420609813742728465009538259525867958191810698618316215745440585042642185026620918745901198718330144899274350701555440537494926153714478479953868640911838465564122707601966308550930326524325779906703060854687253856338191446215388702272921215220503624874793271370089540047148871722550526283436772803327424206713795548514268617734032047266367356811040059058493127760456805285008268602077458385284458772212227451025491442676634146083495047376979871703152902096063826691997070787142382838080009896628782962154046108242043840413675458842382610855471741735861454816710197997917411674698315418857350651390051884420849092195596908094238807627836723829252120359768456642254100792217425549748434338481060321827125396293568773040520229046027688203538499377296052512905358360006880947161401219022573511516266410806722884494440593112164041670944823833996532327447767892922485721488548900367688475351400203643373274950423090869416228209323908217293952037317624798471201095390109667509068575062166584882362137465510565407405577873802380512555458669883276674088733306193547752158580045921091914949646248390496696610536265174482208190058748878145651269555551912521343897827166836226620723321457816338511410610418836830123244943642858112564087904646981946105798029447902705921726900250314465908358965778185312969807120269541385720917968006001868001917588404673801268855592414218923594723732014349254398341816916023171133146983638026053597625670258838417940241518401327578053873367853424109280580588370034766469321766758244959250654891090971001616202766968217226378411464514731887423602238887931152450608758693067553121030615604284781249166770926888737662389719911621952323093254261493034424888377687638524449463807203574557961471728339597869143596109533443226767406182794890846193646442737949505224189186002135679100332708155437021783502906608885435642965830074297094289181065520876569034367254692465530204853147231040017180838575075198136457918387485740634522372765064055584034944680918500706594494468398857802255307120579396829123401938431660021236632418101036123585900763540676444376726627848164658622383768019932003383690162130677863656277420890692098525611106064455457643243374573392213077344575107074101853651198722536969619664583948881387551966065404269668214871403563620886910462136565759991925038401895387341268061206410776842265802528383460787423962102878384234892476944980794562218209084752053751074799231703988439326112698941733608637535306690621737939902278312044336174345293811663650768004119571897850374456888981153980934362186383928047868015317724089675348561260888607040979630586449713020814287345155902699342337778226580468326484943531482440669608055346430402074831217521108366981420312188069416136616898273197677073555311165694815184221845930497414533019911297705262745628749952710879142611417846124848882179181311411499033980297690868413166933406699177574757314252626029839813753617339093384197375367682716344488953846801322260641988096578712489289291342187003067911310867561119811450588035735791695834229191907073752436426290177909009638511308478875452391832852130621748568384575525399705904250573564661289951044064759947436536788106490931273779232238484919636294921504052090480829631380778402091175035194299791451972898748153872525794513150769429548341833275343230505307355862898338219267694617932562414908918721252082139056663063552598338354384853378088531410796851539978604202241427940841812016079989223276036945515174652545787526147487248962726716442944994777325470879655932711249528097870956009289384454996152157755617007020693105078336784429218298099345500468514111651918712210866467050083847628524027838707311712240672573415757034213134175495217970236385518586384166294894079571431561164443685280769785276347412518417440664098181123774006112799963789868872401884933214397448105593329097060842798146290131761706034055565780231180822783396514352233488966468300637580725394643063311843697199644715613094846971387709376965819825170523470965712214213977730199707683049493962989009980690062661941174847663414957783683663248916836832856644080763959850818276221387864817583569128052761942506214728130660070911513090266294492731460987367017761435733631578780118854466524611238878035522477181807593876629034389507693653788471108333736752000814225600508491952802912640568307157619786254191629314701347291485754099702223244671468732929310553735493149012228603703911260006970040762633661972690543333076837165815873498354295094195662320835812412648603006746023526731141127705906757201754814641231626136200824099128481656482055737738497291468004069226737124752385054511283741381424464610268824177169717076826043019947445216219821371091288579472472587265250547358735648414106938867604950992216927099310177463981751847120125292942891513829784220349122901082394910158899430659093087595228019985872994509211334964309807407092572760695549759281681275257042808548226387185328787940273699655199599874583804171489350843361573210824974380182065137934671297642717854458372727611309355751275503958239361967578678464902624960793588319794825384571849797355356814165096244016078843205339736639073576866656556808719483962959153822976601152806244104542521966226822008301899553381122197195160400333879196939122710405783764138277968198753418798560251691552109250668314047503427500307461510122502332872277456817847615007876887207762068702029615040834094358071795893836071282566477280539694661155514537188921072092582152165428901474839371460363077718743661628443502060423991708984454273033553550650246614900886101646878803072700125438928481731475728289066740961570133803944619037431047568616819504394254304501794873321338128850068331939542661562939165950802487910541107521916144730543253572677787016710737198868671230943319717589077066944058970940297437281282272917577710974782545040656551078427274371883548338880655465668550537271453675713299252573252241133502132602298518205209669126756753497696416246442456619153374839972642517119614525669643902068769706061605122585450764739353289565566217282872579025926332834048701902268513852193945925650932588501406501190143837093573900073640621200148206830981789726132552815831230429262405302721817068739047998849398391540123889962004316421496857825222021038163337115535949053444017478772857217536085883832557628199634918971963784425071572745209819385467067162835280713109793642637878685371410307040439375081590187186738284455077899996657356872856273468256431847875471682084945538785685150585046721885654930042572080591830021248143407157775092379863095144760223719200199855761957204215885027169900063322762284538207992663307684557490106387632662383558051046128098018896899456403404469867226362624455131497366684864264429794739679637025648448840287927978648876607325121087640948774051187587510409697948134424709868244650868813254527008673584965087479091536215293156393998265112962217311929181549583645049692164922248065970482263318321536306215747736066440132269741492945856798675534538648721066261121433427114817587444015002760422904522722725720690335187898581999461911238985056089969245810293895427803364218658952263751015132042852286332572470012684272787988360808459235914432889760211631188377952307948787474750599442740447303595057868481200917727164946895535665131829623015884208985238788805274919585420054007375214763205558204335193796612361653517708834751635039233938022171305103971265699610606776749830244107752851224864548748404463983476507270063097317428756478442339405250802623464891164229389504905966406242040833641383889279896807856849449516323878672571342866094507081360083348860466350492172442150815439457512848956264465067896057357815699835616599013020358720581306291021609299550449026058745194087572909366652040398822978744431861603353453289894302487849754052711732620302710410097203716000498887628250118161823781584190458073937155401800784229025022631595014672674082695775690688129936322616782674979991424268741392317380887594092001946527848818388420851060970264856999134417966223921200443378769281163228746316396304588032806772638510841741931677948224616850711834877831877008361293748358028561352404216266265722579913974602686438583747851379851109249644288111601518464003800939568574493788788524900070751858496403890912788368265164300995692848788763385738628943060224856054318987779038637357632241385476757654012110430312884893646809118293721085840629968863719785655088818722039387376386160558518198475351909465550000139812308430446617098922353065991625826213470440739694527653419351143777533851716091922172520038247254767451690521571854821577927870223006908172367952725824006081903319609999631993554534478202476713723606362749035283163345229594020869871392483301586033537387239275422671385792324847152163851972288420043594909694823053118148748288681170418375220553589967765147251722377059390936786495625379659499720425865571750605842498201700227992518340955300294725797211447641461941833748313551901803890225197269798908998512975708785560420451571443563812138720677922525587953523510330158785075981736816105281065988570592604768928604168113630862357963402533017943182630148868228060915163022244230768508344266784616537567856785709868562014551936274842335517240139077019297025311782457725352379766452328833564110724616333890216123360375012857293755607489810204606220845243011858468787271193998479635130423271937391403412090385167921071418569273681972658676759130742886948812649614211012987956974747499522488351801847019657813036113688044135828410915881136060088865500714182988853324369248552441517356958698537015004510310735405691287808544167168604050059701380697124473255106289165264024164354749428350234907144546740978250687216509738051380993874758211546184183512319895334814121690142055590532687929658422980836938943346580627040987466943358612289949131520357582455458224768533060653479524024954344249592260990485267863366843534087371442945123696604484576429053962866377744092127836043476340878885693547960244809709816780543920741320537380239392498168009799442094102219516657193971552437811069446124732169074282675718557516734386699763694073455706703312198957165960871163554662961903194843102102828763050914602894074249603158850273016643183388605603716898347028043628977786923950658522755107834682223159624721228348305608619523674269584729651021460177339006150600327691763931507312446148363127255388708849154236799081365807244418370537141125511553713592283546497013700441043158501312789121303217447073122589373544635810010222123792621755421340516343638710904506104970613551333937738246822094610212822057679414703876134576153408872261447545484556764337239281785428414552735041040090898583233659877565318667398084965415266582396936967954214707030633982830295642830023303570412217088771827270053392141920363283879537287614154854839569019837305942623556946250774610456635333053039923625376186809543691935335005627227834241091923692268564245028115394051550643457305857381928389834983739975016130438501786397892669293227431792490359995369764086243719893688564701560540085502183154225207341364237949591954526923642242855466936943399000062839620850271343590242314842788371222437510670010569729186214022471366505899758170951101485734946160072511483721203325073226533074195106681290926703856078998593627804785859163935959729039456480283465655415026546447975427122001965564028588148963500338354257164499618825768790850326035783266775904803129611184323291994180149442588659739673623303790560489369802421898254971296593002511326874561164746642243450337361786945607386485220475453409714279214546004450530977737538953607010852578807137022184821237474734428471326855451518105549699022487982035302480163134889763567280163243989595754102727056108476318946740498878135120199153585943289554040648253349235748636603142905803837691343483340278326930887206547503696294704230052096220020772684670230667664315991123085144991753257231368804514442557221521220359327932104267586329860896887461171091476943024532240982972423656687292375858148392760293074142585536675272013179154325052365962067703635949585814361458779249472882151211772397832581429950445121164120088665331413729110760774837327277859509024772690394825281812362353664351557044998985006533623381331601262199005559431050847157666867709958144944624840128001928185830487611252247125907120942991355465075106192997481060323666090283994513231655275600554364680704810109321531463234929115860854124483525373781337595023685470178353921917737895697074876391495493249750065058705358534481447261985269907663714241713052094196991516912309921656139554787509892781107606379134484250039846132733731517306811917934818267166864571463478260077880506092455376754960039027677975427171935529036974668425512673658201690850509346238968687036610532232357112779137214069993985721288346420971236853740583394326137133327868559749136520141495688667320710075398729055936266676511495434234763285554338872045245566355098655946122166659730131745744707575254077625721349883440882934884876252673922426869521814453138379978897192794739562465632072208885953470772535912204522828410336718324885479780808824134507215761633325545162123543782039049702562607828794960692817832786064702378798969493149974026535527569989759670518736053744216433484628276552288245741500101334995718163615407506287524380887702977152757223509976460836741455791796426326929074984665498481490856245969408871930466256486679063004883690905579405266068915230138870368442278511025316680116774424304411565692549297544757542350416266974933701566422582790612275729569406500508961893943219921797890102419992293789514401962821256680050415216860838735575280585631718193956660175452139620166846139315420974927478562859785831711323057883345689299771978964599237092976329496601181874176309706722532134349617365072429699772667334987483187619636302981056642465473445704127813334071407602486482741512097992093356171003749521578528582660942141474600247140788907764414241486739677476467535973858543684697032788077038241941591649826917044739316437590078234615021481759556196690342024326095484350011153928723470900363972012051247327153431407449201243053983640632670192245331749846188027806439855118167628108383140414850862958428723807063949392893142559940525000023742080239002143930594083132999352833057258322183492672316751063525472577309617479059885932846369454011625140134384439622429719145675102922731174667351107453975842955329166071829435024265261650298931059135559959080680898975873666989437541820707363477251841572069786594548484754653605761854929168158980106564164035339228911076054507036531758920636923320718780481634534151626344591669803026768742155407352248684400591751462483062436775068750793950515635507390282942666011933944178361024676546085499192854509543754632482915732627457474257388927689447436726966170473879752831930448395496743955137648429045004369497528272754529585022970799888305650245883616551859658705881708922271908266031697261884243466887085504144529769961705558073450584349326890789608981337035110491022926930607623793849633200959568378649043579295932464613584222980772797129281049093402884676616996152904987498106938221853058162942287945014467690938771773110952684699041871340194541349544336625200181148261153475264607718588522013362014354317850913858987075733212938938981389132230887251533803288095401701406223120811723256053716026066826448212641138033502418979553306868160591081843998177492234953123277091275285535638418555540213220570125471535862092580334664388378650763787432693751553519293998433733178351649578852113094820115927101265950211070100141044291039130343344209022647075530677615066657007547078251377874465470826725515609537084068978258951838830330277219920952844696185804682832642360537155654276528317473342733027501832643034162157704608876152942176696386987348214334678190975220292066947430582363760020756934535669753508041349457046560459513635883305319425612105469111000095470238193188174641046875629011715366058134868160539755322363059557720151748171545202058917057874246927421514599946764392754317930718799037917886356570599693659098836715201022887387796693311448860165901977607654996478945887447668298618977224002045917928787893559854216662878891149599517918744631448558189460100385597336210556326833370647494244234547097876880307544039433841952878615907801562728465950657781336908010482711124079030992797824191187575923289805987776967649792931976144279667743909720176479679121736175133743353102882626622120758077561427096928462815255381523830616536780885055084818246424810692899998376190109847437026846885188452095656395467360358262342264620320998395649068312578260690290007995090851024190993208685309772247812119140200612702761472632817497160329893540495850099967953925250873622436249503428355607877909484901894530018891227547087048630679007190594193890645561965133517390226433452391276713012825304117629304901375104205336729571312795690424401210465717324406768159885280645697773884284957895801316714025889173847723337431771733757408369937462239895247734227855873023405902778185391382978499608932016901969258953585470633039497267056671191821320894946694967599480924072344936668299691927028967319630213504163111345665336679808146394555774362027800420457119307692274876046446292605155743652990007940739285285103441432453864741676328637737051332523221763295148271590185413565758403608582704724009337451128579299708218193625019501974284073204493129309837058240775962167295210341603033282171859223498070638941864495246979864189055131259057374555246727405456174934963709957566485315498344480665571655120729799747316359591792626854839394011611329432444812202116214707755767797377037725849448871048742136422651995991666376115800470214626792617993992538950639322480908674668922461982847802743321108986648970416576831148917916333758996771203930112404595206837256515041712652744419765829914140593501787067585265797581681532485042954923679910063164356930764766420475929417088264790976878410513605560780132001305699984129335114789311675839125101796845980594343929339807651971800092449327393417070170019977125564943987014658253941208698928902535942425977591624713404003903152568933901240763968700520458449007966751216622168925888947431445556495737218538794551123952242119724233341099291821483585984967152563205921841943774708776542441654082198063190560322882982668232716614614098746222460747293349481512742847462639950528939952388111214691912868639569791580986555842348990439623019765952021924355026878764528677444830310645577887011967717539895956089893349049432466815193205741954832878936735396560619938569076966107315333250538001612790289475530833956879944750193192098096871129903537309339063042645447308904265170553960571626637248278606366244772443819680945331097174647162321398796024741292647098635678512844815878769485403486408604939810403898581429176133191732303980527854846824811205753225361647920884783791376917774413674323199620109913102127306521416221107498534090161009485557679846755314385545426368881862953672484132040517291064299678184023495937188182945381269239124525658455171012337423768874659092646297534995251273474792246078413946300545009829290404196941820661902451758230485989737523849048529224765175326772749639401335318616668455913361583957880153334833003907344984876864344757805753515270527237155738091417096587071590125705356317144083628815456604820954079052863206750945264202354133608683576776896680951197064960037511569799817076485922844602092684130951573171863398254798687247145101074044297270179301904106253887124079743768378355098009385173103644244923970472920237676396324114986345519626427504062429844904188881667389441521388561996621236435039604977405733534937686006843373767215335885492420666879758317975249326567998858948073981467162261831850134307196562743338169595791837934500260468487688573587575297310954386408653553853271820980877593445262871191596218251776683034880774324719125642379897802690680975370370260757525761776517623191169769389029197312568814880972000785875544965453626619942164301330076175712069950658814935698999920753461386812560473018308100457076545339174207191197047340177034964752084220428324555946736487096642572454149529229500375016469593984830127315824052781048979343184029853673983976915340590927478744279819847129680870344786111276383872986665151912842589956233658233033856676363509432100430237576384128945686467932480025977372464671125734294341682565031903400909511275343442460486977319147160620105879882946861244284765752084235523922144042959503979790523396296171077977451071033378944682205484320419482388896073756657374453000805027630077762806787810078344249953308830012165472850851119328712813560290920794982865265790576524384950309335471147199405683844910113600459833240312771317308316666643798088449412990167165349234710142364064454704549731092785584603230870352906006522376937155273565367388970794554428685902259799152036264475080904091312301617755401849954365868718893371515996852416144099530578610407576738061269047470242955651184399506755640905512822806744136529802635337855312385784171846164715835345370687224369136772509803033540953752361294755563760386976062220014002439079235983610549373254609501682854069621047958888169321275295672584233286516398594187850584462109849543675800351768235580932122911581559747575067755151416990351354990453112658064010053536428832024879530363581155291378707173741035830145291125193474413070790891854703788050923063350998203714226191177380230877876765422003306244723695581564943634165715446382484157159228773759706546194570267692387492312659677618514486631133225908476198282188975873508599182006367080374811797679104672754360198234137721101032578810692719627290059569312576056146206959791231135878337582445794445529038290585637168728538551150683063697510717254523576642275238794190571096695041641244741218510221989370265215102168050980496188206334526858628821371064640228453650247061347475308107656530222643464983631464619778808556660737373451562392445980903663197624222032501660148112861342266888578449741940145821980927487402660319412423602439948304255336227705476619960047539937041157667648863929643920133930300724446542094466850677669637968917093228260085216402953082328000386471587288742462183998710943478725008560529402053561304601107395285742705423706377553311668775494973405693747882908210848561807010400657027165397487121576778228201844545722394758206138892987494818587639284852070353399321881544635881459537101832552003544458853358870788886200412062949643815274331359253643247856224840253609610147365077991947713158873391598134536715652599118449798035402469440036372273748666115735860291681629170721825096873000270973360422697883359279295098294206109181861042589865266957263982114128611755921496202222394800400238417858718014285436855009313315000922526526535486360658136147861150134671327630958861897275402836794684967588529997077355494324298413653209852836122626873078187769538544445541113912029535126737326367994167758587425641829982629240532120477573258634677244822299991158993881497305547979970237811412046266760523049620481641733384126879581134390062778696635650856015383924986734224890991811790086280482197227346941084606061337300184873207282378440859415144834363089793762085653980438799073577500136747652488639013421937368335009865960820991481998075293439284506409960652311210801022135508181384761195944699918287841769882065137355331653606088629439629193964994968826568951561884695095095799273869024791346182677394587755679795560218537845648271556871394915638104804175941583267316003434431578177639036653355075383757883600406586519538260068497654110877729807038849470264487530812249994682215599605080402931965971582093651707488919045636155401055971608808858966866651766258184321136053508557892326801364776120628336185924893014954694067229047767226697565865803958603984855399994783510669707030950537514193215314574007953805915650855807932150394963641923310102394413097910369434642374642543600632407470387112057179481014195298723325780694470909023035384905678911798198655543980085026259371876209170806816613742546671239255846103526729924417582055271505059378428022095053402166495112501005469653239646628400001860754252219608431057348394946347311961340920158854398296310775450680312443179404759313305314223393762672847752565280842666248224749060833066856329572071644007399452247911383335671711354743674119027625589943167616032139908488424079997718785141722753535164019774519027843917256760328657660302466937616667147471657163656110123276691210641957193212930707844907788008362826770843795490795899493123258951626192462606217116856688167126143212380323429118458204152775344164506426189598100675494656061925367363607863823084008698283324066677600655412297790360807718118774769669282896614860173297326616749522750744566216245180583513711032569433815735024575934583138792070226809017323049080222148046779975936335055080996841437310831616633860367438618809076104874321249112585892264663440417020626426042395394188702005538059084129073203028789940470585620816743055753654087598370645977439448100664268547801526114320563526342840558088677053550550758549813921863524283588008105451060108508777697046173208939672465477837385338828218417162810808218901283138567417753637990350502782432515669379017672272661414578627606118827778323580669632493138226702368425613860611755376703102931663569967065917809250299173951743582329318497598847126745810510921799524050402555977041228129617585618486349334034396026705978904655284920942357533477405143920308020593098333842908779736820598873988859667658721635453447636856750165041888818880446902801376617045757641997275396185832205497407947188195110396191232315857932622038752591081521974780776013796237193005849391259456684248352651707648991043817871635494989873317089221668133774263481102889217603218783006276592429568318151236797475450914712244440374363714079812075768829277540698780872775118127814186449565587608203721717720826854339511294630309353109929412413315176915822940980536380668855371235292646547557635768694596351149079499660843896845585402269926968815284023451592327405010758744890190309136777607074042473905246925215060834633593510845077263425062882450346905892158983539122841950896337091058649865394005720989780475203615806144336416299183774704515989905859275179380263826355200931346696031436761865348779352171050905720738389391748167967842143986769131403747889651967251303478295849083032283636006381075224594032709031447392052819413342669593972980120944249322253073452553025639623062234072933062813540093021012758014863627127963609272560257560710724464384417133585018400127150815989832392894995087988662760247751991227321489790565691925618386858426061946284032935304618764846465515439809415364350934626030129750630203889440375747066183143604321220139487041638423647614709034644367869884519560329605639929922574831502614123249797257243465661686292055103821033492656265627238118327709394876869730795648704504216156797661260664711161821801418735191850659232532475376284292464209334270716164493660414772697343688297483447160300994933313987025366000620080581199773290677896978371850570274493183619182171490836350066047226534769057422447700681566671479998735258785155866005155681637134292832801926096286333849223080295816169884440217098197652149280582441770551235126732569380186383258237501096736372286209860488854235425411660309260806834106988933863041894340283068479600519137299905715039558316752357424946490152695412960700080723813305442494129549542410923514067144875285207743047249071828434534375470380111684941586522887018397815773159929298644562532099908347523460740966739428584929904495329370658118066934346103246209841863299581364995383863208289040591026033754939992376708826466365047489347268685190524961568639679233632394972564308344085163893567116833320903584593981282169813000225297620460214483161158852282043826909009665553768910117551292824512644174887284023080961065150217110863781261657155490918299123991220422350713933919487316399757082479373235629805316386561653791830661696404444969391443919377127050177920387310975078203850137230295751655498417229673596357710540014006543138872190046442560301629751597730939780295976015928974651315669276318166567100642408982116007353906798549456808048860273335351236487605008428095156551048950231811435408263368041110146540525131316440380266737971463318638917876542295239773420712069445752542729548429022217736741649867545354147447018463074682865317403233988529803981743999682578509540466014172480069268340191882976627371212676435118961446856197669725962188394628308184631966937276160531089947312577679686570394933851985453049194583638120487159673212229125568950007329965284938465494025896158839682159650146143118550611579237391760267754570531061347488677245025113533551758397176411136471012523370030884257510026091555346034174122370297691582482412805340612486819667676016121981344796814394656541978824392764928174183911246353615295266299237756069260791159301880236404413497280116150507539322907272968209644050572613230707046115136672147725561005260901989457791220918045980670687997460410444242870480297559842687066839797721087738829072886533746735877129052310951382788208500829940964663271253546053862325648872030019032927817842615260990896709578632608747187807140905880394480191100141870917152987240148151648323175247646510439210822939183779498363666701401403669136913628337856265778244842057675753515274862900555721337416523694611131482258613432151113931766568749992257419496679118567288445200150226346990608041756478575711058472969401262435938055152250318335149581670452724338449205743676619256389633495527773300010740976723011005839625064021513874218767613374448701350653174934675852171260005463538278345678667107507153509529806240552505330985812252676683529110054989369764094378840676494326116835186659810701989438558246497529142410128173642953521903709335172763492460639229970836725029160120026605828788495909819366496767155060886214715356220070028472850280350335259494892812043083947022464317444860882099655357340670479399879722454817762586616768699616270334852816643203572928700524189653157510724020226253102999730438056805276238836905624530152222764384663048052857269198778251440491021881825871048247086076443025854598671635930541249777844080957053372167002124404506777003374269637730848340694584085064730951675784244471916304640890465689874947338779699208146619795786817343435528412214039085251370935718063212937370946514534488738583054447266576666070768682426165436349394132324057745990523317888954698238704332236837359785964310601327027690812935793500565922808614249078392214512607728086721083827717194233329548280892787136589380429577797668813015837019510347752478715357750274605544595723333716185265768840554348323637059800130215076640201922839918816640222852018091345463384478234376605360537995202958448707302068286149040089394739610957722722294165461736093864556363119089031460078596918068299275680402884367321580142284242422762798506587462875374818661672277690442380460998058926341116127817301385934956008992991672046604815403207607368245712407065049177915073917318339723002702752289507118699768050977100329823532771932271766272189054055410924360731810038599828275982734120078307805970762158145147773203337418060688631092358874577701815371279132524941708935416102761481826597286415100017083097449152786102361451200222887427929266081146761140777993491487366371952227953389631144695937079357184361182173788216747187956610761986189452514337363289874977020313742622118733818802920953013069998972296290931095984777427004729022199185337636562824254772793451825867264022733719687248591954248641436832324539716090188613014381082692348015216642124470364827578638023123152889263171626585919859557968508960732004852627575658800516046826385924221533482880108420569146939168088519525751407784188966118202455094977440065957897193268029534740860407860914896900757799833626395874397366533612399526321451841923284363467817280535668060808253628208750642064574240366367591941942580909102664693978332329293935680573947750529342126562626764663455241874781855501932736009693194304832670061701841044441541143010836528541496112655119358934465902023411625769545142829457376396757805371025465428884768911098452088777328352433768647641983603540574372018817810659025270434475675212539092762498675147835972621513771615320565897761718842944562498743818271769173777023987026678934854048027067972800895767100648547994108147909557899658369040933571041817002951506674511222717331126589897960803871248177414476445035408812785871832502825359098456746412929975979189451347438104390099972648050127055535388966308883510655084151444152289787515513618264840862959926365350189119113003388879690579331692220527599699404312905645638360769822787082195127252179171511248104054216484824267721939231441543519947213454936311466608059900555726998908362518518368898097247858380193084622653986186973343304937617532130703644270728652529703527493567336619834314952011940155556548132701686926423651800389048775061970225012392534046695698198161627986744816274214166693634243781348152046188506153331361799739501343970122114690173740372389923374986098860304045926085066867343090162522890175974821078669636151857236448256700071693549911522766796448250771149838393954929818557285686000152189222253739955566813989042617389792580002296294288669250652724129379188217961703020673819330517632320554431481132088280718244213331170497522331085367380655162583660870922222329444399353307515349059118137883791568822742102173929187381720141793357150600477662766186923416568873957773816735207202975534481196726925134155193200398709418227436978051340610592222051277539041447419620005297248045776130365454729051170376897454782788524863013496184280659152666365683258141378252944261758709915001338697832372169231943620920814058955629831880444197649486463901882163210475562825820783240477429945725260633745001186468716735813623286731544905473517086587399208616312013583194813502555589468257426259505510499841016474428713010196491082639739232178196331804431783160160777662281074770181669683041818325122772590720091994473674076540280141196077188593236302332966321038495412660348975504575337728239545198499084582174114465396423859827256027843814252274041869231588098795766144644366920051648921051290931596073872957735242414686303860669077026945079513843479237445857306363326794001753534426522913649537999857506347603363021591168546886648751001586412714547075178573224334702444167490448862556161633466941694908896008501792386692455371615189811621674991026691614964303826840668784567798904442832621304743945368936954519366257196143343491963757786421262483675850565283905007724772112212838995798567854470049259438363835881112835591100588494447008278946759738351018973619482876957939188466140235876569218984090937369374565620394236307595973564888082863813897924626606702094842503495454930463267017142174118159860692867756241563785175708996163719862330243247977919001102114371471530569030919097386242461635875469950724732756272199016295029591618022940721757946472577191757599564347836018976457938188863739307934126486738225141116465001746707523894643721697537333012500197249061615374952655978099880234582646631656558255411892847908583747172742569640676232207670817511243485857003841247618979151392442578743592835776435299173350074468898427359882020398459040331849353925356001293993969697589630782605652179846198606584408089589298678722461975436104129845445098721316008618948736359029255303120198866328596320805310957162084535837310108292725637407191687808119172809040572953447914028111373395873327916836555887852146083360881757668034242154390225933743599341528434603054031616473715411821932598315193547141686973367227599194758487710406490718383708735141788019072582041020779531649249924845001984207503220206423663642627602152322429026316462777796370195863747686487238630289163656185580988169050195178602907548083270916612698276469025144457825186493492237511528826693189747510121748129277717928413820403800088366360368189917329999708119170569062609945129554017815768149236104203047569570043728719736991047533112646764430104447510423640161735703453701188949277214935838070623736739884740520402108437208257132034163211380683235706002066327428198112447732840012239375954456404494213693283100109201966410873234338319053865488197841328387304368503607099459380630538743362405807942879645044999693059691100752548204025909884140026889027017811734449228219337911359419916303192382613609186054662472405412239116959473378841183447122250789296242564493963618426371550394664810353792051666976534352509578769375229938046249637446379397018505791316465716345446036240874344440966866395424894896027142925017283274661189148516718140818518661342401230334272698734510201112962371530267837861745330408699122088635732472770493880232380192552066627971144021873191182372710042242149803737645674238193227777336551443359078604967916208272917228508659326557761764629993467242684707370042480905036589097042769220537772925850458854070093232616127515987511302686347781979173951072590419785049654299550485302788793021604357723827182076789411057249380682665059199131645928912647809595009612110765853058920760016783399383277658609476113027407664292777529867182201509984038544109482571515828327075439997596601146252351719757356238739508790194373535964839501344172895991968470138673647250966689867904398709848212478565999327302195102949851843580146530052309787953324288324331207268842189400693477100253108469732832422182361919724015733026265445627697197799127350968116747162033334458857207898353112151358840048399074580189487693417068720588638504129574655867822781720351109758338268480664382640883115536418772039293102423356233719154724527697440784266120913298309222220630564557513438279690995348264071969780121731988421966176142233981081581708022485079165691790507642264623839619354202840569877472451037706213027857012218354224615653396344309567822640360221934346557474747451830785559554484876337196176916719269457439596677588409459057630671107086736202995056143874389089172765993353304835892081194354685306489904828790879336139401719328637439636010451185654709800521929423174875394670610218694666378602648813194539644538467927334997003411463186914813850843014384212559084502890088648849694058235449565960730590223908670952971808991402516671800295652310200651478321479993678079408644083919394572672553771999967349264550551952690952389852609850155887461711956676190360251349523612416063204300580501225883949284258133301116090457567175165803754893002861191133248119907993625649088555685862181700917180005443636225960638302137567340336802555555370835881952153468801853064843037920715035308494341621349582968467584283148203329186346458345958186483519367634092837707347724786915485905045693761898867472108126729173680365720852579216374003267696396394134093056415636637731259415682959949164507193237509251712841419486075182620042464023547842574685824004857790495450794196673344687317020053071870205757324071097952078645058538484874726372686103452496749071783402168215152354906997360323263996195976121390085731656206254135643249611051456213607235232493465542392126007445416481461674193786223211658460042760817088197581120427475766174883045373495762205248310251386113859282622673979521114255056674328327289513757670156159621769154217077750203746227495465854411701401803768340324015352883496673184127416665637877430256512746814310791406718589171127487933996000470473669700151414329632645461664169053408575012936583906694834204918775648473229505216867373515495322180695051304473413665746180619419992807127190216752793453514920381072629575837295429002461569221851533055694885486636178005700005461293733253591774247846102185416312209111102186983788938833002514909681352034095353770755021175314611328551116735749058817292759065700522241541299347098997577453923768194977404297798858477130836350270009680390212980307442303550608319530311772777222402192955357497796001217467563645350416658227385019193758400820521321718539864053320732048946071858995651440188446197280291638764964688265313558735309795426493578100166632873692298288070361797468588078361587158319581663921243143287959750350771405800743594612816888151034676788675799706983840790851907354974234209593901385953572796446893477686556934525877685158837443094982224895793034493144318841822372676559333698943388663785780650367627116800137912635033418854383346209319566615282923685152584725165056890572039087212357259710105563865601025539726329916393336670585984791655304321369243014074105662219670232318932406578350812160126901623426726740222539140474198206418784986443335057950160316160154847906173709363715780950339029250468509956265870304729069567782682678895413914240887166088295296025007470130557329931735802031559696520292923528466342878402848740901454293534915366712279929400334824310570115948160761211978102968476100851140275986555331204421425145349241465215194315636407949362239290133497526788527534131251624104183880170491386842352169634842917419680393052363310507230710016093783228079704544295645931073542147719100116637418095575197919954094488361313523300551455827092332983478343214788024188873084201449035419486570332411211222333592978240200716609589365353453394973502908959536865917921538251692420878411005759415795620881933272810598960219517626796090916122977088627556262488956946252669147239320931753096394897932489713417440332880144035540680580302854964778542170918263813742397303364167978087175558991683150155425633094277305765228642447918800711018315837040547635861777328219736556468871384066491920088097711250929508857156056358272115275523526197627155102921016830670665937736944712667551854243505246678587814159272953442264935499059579013583258646254173588323560698768107684650575350491951084617515494770482727520752571299008240480766049931659439843742563214878747441258703063478959980206750351201547565181577825880320127751807759646754173449223055558466550435145331517728232289289699691895589610098926069599928588469231234868344910773812860555906555763702498603608344481795960275894178812828363104831924625006279953409785988808313159372577406463957580937024637997592948438967666120062881545313231639364456899857068178598625583991564106554946269886537384482913311708141079927128860465825142470868580794678745771322281867587974663623971712970667215059920464299727540706344671185575891285479277495484847904396124225556688457099663183126845016663437546218084477914254786046781840540821404719807006685085096379270124451376209068865263649959740866603739627385714916157117838938223208042114082062876399808865918067357181929855029116324622185715992674605029998624822452174124518470526637218753421944544955784654525992323250243904373760557948165785835491869792491576510683294212732953715948401614841722401710864037575570823394254985458467710580113867260957479086365154557708894915062112036932440419178287092337850100620042815436006302388702523092100501937983245772739417414811132085253530495302383797550802567432165041167340971504192838544438667681207374823147098169333611693802135829737682959666737680697055077698138074513111258901663919514942654793583268184798990878829494458159827786006309202652816928898296950984447490086336326687822315742589950096776940171722469236731792807739434938902701363018088689702768858000636604243758060056524674246180565915549770336347843150153586542831037697597759189435206374394807886688627143482723813198257261751534742588949514693490241907672299133795966280252294610860003281613037295640541540121247193255018161427997640023220634740427484160609148505781536170620732884957214615480239098001687347447400039591529798798310622270629839746218383218283163656900727679781841286176618037385497564930379890866940559747615963242758663057943077578295959653951474343939417022956653142437891907352856460613882073455175442087071723344835763553104913454168477526113997358483388906553448712130888595504313335802865616868887649346793005070370728353296095642319465454029990378314463503762069467381890857831508240419232729873384546412532092402469470722770586012249267917096503552672234667219841909245430123527369357717175995194542595748992549351454346539925214875235716174862156874868449433158235320590003832117451060563449385851987459965576374992220486299927441841190625972457083765116436655806138317488578103108817473935606408312187566770705516283212623748424604051239753832690800694858522174804743556302954715126829902960197405612322352801034533330027595368261056766167826074658042600928703866380819867625103978246253324741724197630818826331344081669856226374037771385696812706732718239716838054112233905529566550852274150063213762490048228286370754207651356767367199216540451087321261822137916629214086925098898243398241064080693065057775547664476413176564880871413329507488125960651905350459321947992162505828610475078025918937008991176784132770063551147874296563773827225056402689849647925764632820461598329664574367718538827531029980620804421247330069555676870830623378467639831540281302418240878135648722301623120514807665587570974812551117382573902563011112409507379702360404116600702686043908500462533805215599653544959402938271319326013747588327701689013721059051761264307696857237112768809851948746595512031590062110195843299444189805796077683441673873638615366807808112237469019868401830238066580180132690466329545499320460488916367025178730428191997152457315151575614648111263128108017972386897292034851766132107402790377659557253108474374898351471061798475772090383411376722719638432635638433232354022842650747281334662072586309267275977482606720499499351979120549833731939891426046873001032991183270684578044291011798046464161405900619984675933712893434207258565368690513046796370900517502744762146179111959798306432344582992970194611158096499608422936839315489632730805737568131876255139910978619677637720543393849263985178556137233875008784420876916137134654833168834239443981010748357821738659889768296672190119362530032855007599094234049734504286009931293715771472960239135377133789271176229287966668790921395317663447331613393804394023519781854704873921527771973221642051801985415879971986783248703040770570319448610731832350297840219689844405241345508852899809204527563353083747811411747803333862076212568114970653782265547228685670794658116888376665826754536890575429750590506876989426117620758794741743163121749051601177076350867110520048482379087273214838792061971999106643333711545772331243802744824298141524981240270943343925775630020005978452959019212162057987407799238385226712623233147285961004176919054254112122958905117373453071936081256842677170058780785165616610669546054945408726770102915291980655071583024120956588585388141892631251891992884871180949129491042418936707861774149811277059935958120235187928931534459729120684901456169101650477638027836508688316961483902754684211401174897553088637321286685620001417051742266093590797113860219024352245493938725848924362479317805794062215268430001837212007116999356099044052686229630283590511229825861149419121534363963215454337669987477740279710833871145193231811070894263146243336433702708471351349862136850303194164673122823244648660658658555510588192317219558227596697626632983033347221408202431270448781130000600183007499383170907708937195159086134466365202669691751635099794927977115249167872174641400579715629977065297909472366500840985173821187476887337353436022247013193902646014814688494505192028769778208112323327517385372372313589965577163261024925717650173749194780860297558505967613322451951566680188300221179878205610713875437502688894435605014830699443276939175505528803983075088401792957262585073220381980603401223323759356092505091044282875081062054676811650839491583131738155481559090763759019253585180130740286609974586161124625742062520367665767242698171436626012669284639759551082205796928866243051265040599002957153495593040732435920783898029537571085918563461990857949493690549097115595961845329755353785717895134185124486997848448172965150349772143532025472098395256542364313387732170692101377099094519734601707749255977282373898694167614016435329511725102693600651689773618906686532939016978394668381137675948219465631009381731829470897870839460797507849563499002498895696413503192173498269711608623242939568883782735642995593678451371621303743975125814742081432194323780070073631117108478245630115314400440328127181115100223444212494993367931956568867102020770540737722351582654857930246391044471563187527359635443095473579236641541822270699748180568738144342377553611312404009710532688819778281060214729189995752444018807830335916763967150460303092626046086383923091270395788097948374052878950694869036761191416222209971668441834459625820827795673082358427298983590389514138853937839477946250904488588629368405058052447371256264146018439631904645336648321618434041157954077041409729673923620149261962724620559378963054588764900786172065464731384040111031046049757213225751975272372284867414010577281841386956450870631627287464529696165501067352608143134620294633498767864934927136177705278297974334400338334163812300876241289829665435078528788134259260219190896005606994445226401494108975659182204769836986841626791745834967282958157801144740538849273197366392877127041855841973156270723757584219550355111508780472052797065374470498461836773553994105654032336216696672073699886346776975672486588658922397361351111718920870096140842337230517713753736902843921366842567405203417216365797203783883643678597373051803271014046840872053160350106437028047957195673258869886700434098555724929930459588364000590827031350622625745665146453537502202264158802085618810911611997260534273304684692258500833368331733035939344215300697158545085523078793787401839127491944889749214989712769375415515239633594747379937787102645376518023415809202590411040676032821503787977825354307802063405623819997522902698752267260080571632727603927326115859491803617171663792141133647922205228286554611241738872341376274802018490285437958604400282050477484674744457309014352245341536723908749509785670454701721146472510468528656994986355813114587808778507366850407747066043359674836068244092575065196975271146613276587115323588246158482813057504412152966900006987411008003868673014064617702986278060858840249409604792462137678665123901808702863727837739046326528434209947108895937513179029258156742362782083805996186988409809213335590815148144172007389626112051670567774351087655861971328681708538268666037545836691776677415058753487848360863692727257993897185095799504120225013577157286935056004281945918833872565833299807462375578079402413342448050884589969736150093474147667597540114930839577458672701216697286821573487148350311582779439287798939495914950527657518410321128569555863136884886188214880862699682111027509717117619076511829752510806055816440775786987778102130727017857215480853912763400955584362605562220632635476681878499690756714129071936622403637592528772079793993851426155715844735210077993406874663561165131735605921114511270964466702893033775776899199797458583847116329129043139954720466001535298445101357132591707742933487948070446639495592261263132813960836276636157868377324653973221153760366260849483448548452942338695983618724910243518893352821702038368548273969433197734097670271893616394350663761380601323128921223771832740730703488538073442562978062545867653593404998432669926869844165642878908397856565882560697825633693138129185406607876095001916859627555933048153724824217005331294695430253850598212443111927539423121152975677496735071832049300215044788831316728062970768816756998975517559009087129897150504169000559829733697570033116199094426926009049511771796114254041012319782321071106357132931415164667411729539141172758343762751467688643282389192683258815543041891429415252081630568943035758638415969990968799923673054371139997922518305594291669190549414163369695586023621069538787527703662498604135138033667237983215552060928900216590910878711873626635469114810029111485174228389755596148453761179385388676520538998713476890902389994300049962263701031295493264069761832032350576983956803552566968474758403589670417155591606080359762630299630257226508256859931287788443869782422480388098476840037473103932344776013630397435420892367004703486055802106863002061325219564108582817319654444927748608001066995657559307453560088704133823011071235756543778489907846428277964941772556598210270399525912710101863328654763185442436926148034142524247573623434665565633102464067520260336600082540241327296005350338549811608244073854481628816059905559469161129931412611735775226171418928936092465659276232188748156926149764230645135073713342757008519339226399503454410988730880799760193783525121905615738344721441086201021041293899737090958730612462360677288118858057710606616815325464308373828769357393529204649626989049991252129443273010737739423462725441177383314399625213129571802969320146071609827084731538548601376959317368580404387060921403205107523949465038082524404141481716893749051889210926377228717371969699453285069306332230984494225808577551514907282630034749719113267360089372191042277614075948126570249567568901511332386111728703334038805124058306793995670299092568259313825246467600643968819922073341719357746682482332069128122298240296746884504635445957099489738381945136027594890963874301516995382004655454485587613448202549119589323635384044096350634556004949131814038675276086312348559316069585751005212679017746992692171995697310284942709570131952863292719333543028169184657126323675841812675004887163929373849906776415850377020906347059552367297228436721787355181240292259061822369968380276363023083631046737965054301346054944754007403497988689864979403395570973972582539837918127584613790030008424407436766907006783383847257704728735843132354312308223361977290146340696183417624481924099641382855489386979970598700179148082129589055492631118512390775380604797985460904154091394001286906014577842770808615345793209742596158856872472727421492130776186008101757301935579410047542035275049634620489607696712788049476859391868512078051352993687920465540792084130490442572843564466048989162974004024296191091134601790976191666730164175504668096138620853087409685093420357678401082927553907855830892362146196369011102469222864304687259920123413125571188311055582778675025395587092947050021940377528599698894798344049581608236876134642938813252306526134502380390926945737624764795705555090342550260755067918826423521020014539013595759104256639302308252297942110105144719206194416480247322474805282138821135062146707230585752798162938219585791426159911287994184932725742423343405495563447971411513824199322279915596753627522872829209944892330001360393877608082343255912619568729177699868020890539700148476140489477595767447756197927248640179102728161038649077649716635553473183639376114788229123115413578188912541358769919921919745331406879451287437488008531031143078392774061257775189205634274022277522932296832464603319703465411956756874921446902347208359537695101889831605085925506689134080495275591231080414056284535133654509937819442880188479236267115215518822216166111660106420048284496533889998379309365323344287119879684966999622764812748806720334973865812113067492757924002401249162177438049285532853097782912711063704034974166426153181393147579772239772227475811575144404536463534003518107909494261520049296698903569299422517193541944376955588370363353949019367241929419667895634032087087037024936090005015018628728556559536346235010814236933647779443042376441063992107219515657050455543712108297131320224816515083160458002636686747996199179921292091723219826680758317765602108015721478456118272976062340933162008515812279312350708154303722933178379947844253881252513053419561171905282513763467625091391197019213018037022705689453799050343804904403270792415905663361894391696655484600442085067733294356093278192989747918406853891560337957638719027838430583773206845555976447422538278318349404018869546770807358171466993698241116646503058980890364016066662356459314591551302287855615121241442084823252100214361663398845735870605886524857594219478770411590185140770486898964194833371974577817792659271551653501506856005387148029431672796027155848649736012930875079073736972617984098016354800042204029160051912833977404587172454289231234314334231552647802708111573078709847139063408854422937429136304281505625946111865978136702018056878977289956384712633829116443795722417769435638967493603510499240330788414230733547971341533965867264756913980171841298000329697307439859071267819085621595340950504724335566199169984849017925033009973171025225845652149461484775963746832517281271836810818556840913671216097777833741656390393589115568167988601493006142171154493609589088930169445784787833296251539899577286650180166980586730445611631688070754710374716888152020286738218567212202293338543185907199042793428345441608439857616559304297630268972416308983692649008032910841338794041816353078044212890351295427888988440167454234344489984967728573136857037379821746098184718580612535679706865030588869775491854081555237649394649257254511665686252607371841885535157602679758875777378658994782797463654331000499067113676305585920568525235015890306545311016674126828094128466071602095708605254157620178752712556504026206722972096688028546581400719574130203937578804173062342693216349303993770890226626778837554559185882232841134013192042402012733132672970058732063841874681015659956938879788707303048019530127384685298413628883693801232867700041520053622698672252521093201988660677617406548365876992706731556919318207051694944186743505397868344504016345915355492970409105108542978419146020107000765549571565010280167417059276158325502613814511168328917513003534936680974869646486285944725370864334146163550015078108994752617367649761542574580016823904233868620016723542360820707313614826392633344827079743151203391496176203419400797850232058143217764535902047475376444475944123326461018267459853395076316089801746449792668179972924235126570223950167449901508709211542092776436740797206676468656476130208686836946569936905089336656812618823346147311998040585876078433492583928385524302145494633653162416551138890402383027534056357348496199874000697033314660361148828292010867784523836293212681092460738336336078559494504843840815060856520343426133425614161053361066212507443987029926771339822734808152344093419188650861798009930173002503744701408846316132934009933298747945799466892265276511500409125414109408445320779313964589252824790485949206163146662672875554585367895859799608071552070099690427268246492607020328951658554208254887360484487835985824320632938996831251300349919864274967170976818373356665297528238313858389974167306842967598931541361967621384441956533100555049739849631069737399351930411770219425168228817906530699962056407216646298834244573143867259284574536551671294173704329162244885883133252507648443085856807584646925083512283791603324002563864755122421169809389885955701613746170998567676258604002623152578520121178667702272862798874483224724739487373864267325147373452893227650797611957045331542384952289820406731171246243728256316334638492697746550885566479398021237026691687758383951241326298778942997615034226025532219136522463133164263199528504029181606666982489715986544438837681715236519694782937500794969049392468041795959401858312922838205467459035331226322275928852696258638144682572924744106114082909901046396599352600425336861190887484539524083002349513308671685953332357199921602271169342951602657733952458024195161113734019060265421285820188422525838131626223174181798507232830445791700161995485449578387718388132692568303350647129861434109871858443122378065937221088324498278193183832090534645798318024830836005842756208332520924303874239497214957095765925658153600353676497082288913344373735111838435005511126186254281340819163884831998547864496810919232748083695196984019950003684518252846462199751029062300956728471765252331985115341962334524858412605426837711681778508402468755229896562340766414369798345015154288149268623710328598617195712973916089082435034294638108833908229940892664401787452047321132252470558177916321355256265819274441386647979643327801051534388289054037593195842632783262247698935720631649256858343471145274253263031889860191980235529559964462852696123393852511946374042452961927566156115707729131734114656192301767805873725938657708010907634476826014086240545990704715283888264848232732792217564931992856839845414038241220057509930047381335418884051761474771293302757655795076759745447250358603006403144998550169150502375336894032537640137403056590783930391372293543742027873550829080942538333022349447473988139664465908049807866118052941182316852560982372893876919232358879148366121917033904567169031706568258125276762642706671802754766575074887249243334082870130518225484754050583183768888498188572799452504605452343303251380370498323154237740929120295555332833935551842270874320694641018995996303779839556491385163863263675572572560288426810739052893983609360993328289101711560292358807324338848717464840691035422085638524685180870617172325844275005577242391231594212454044126519157360971184196726936745894811128132068465531086123211920264371872360870957700820888510792873012924262418642297622080316944838363208939349775171428644506209847060827746565882586352808760616084500893198538117793449512871996000448270723799270704691431628421296596434632735690702948667655824109631617374164500972444244560320241217937356064100678076365902256966692047068474448310691008857365608249602593475109543545402780351838443865500774213900459445868922845905460247372056172502043716820427352851820198447411782273019400656452417484713009653071273965021314739930734602479229368298047182176499161158371369257821276791331090179215091874432975031246971758101583414485929776964932091933006778334086168276255788753552592058103635728647330714799625553551618690907392767303058082681337872801775386654990539489837616220862584505884463850603473205016761678205137618878661114999047231527148295740961242853645768184956892212787431958405843682133894941826169121764612343410361620404234604182961696421198516815578222075904715189010969216681828246330805519347161086686736737618595750492880353066453677957631544227696103002321366891357514450965612667087408176477781136309297684687260826997835767165887162381457644176637010929798965933892343732123493334697292213308731690889442170503029346859471272522805788741532086875255737106939291798727013495178659293908511002030477918400544681064394956978154944797147129140694168920166388581024651242499589266563843067735487721394201731016179681678834781589097454319947720206220967389377600203079983244509862235389029901934254441341962759150500789443884631570724688897591225827023235184610629575364331060465560279642175312989605037111358399775002781982279378622953757310365632355045526112446750183496119070308753542063655544798614816436782798871591971323534504934705745675007497641082183289457011022118536108436792557230602905448020195015042087471165741885931167496417445839555063518234928403473998734054189794569321783320712492916932861326986974868245990662759692456743391873270497685954493822120700587161388113718022089776844640434482721534307173787889361114213420702454747316468450605146177146068384332473289774670449964861971526119104122925823118797314035585471196927339760640003423966250503918216626367386766035690595069082552632896091134947906107194992853625756235545808628517958913537143210242074583307378632916201949124579216923092735333368362007330625476002730858250141840974108763400554290534301603821234936813588149738445405669336248729907781637317523350526237245292307292402278279814356028854723200497868016386477277328712315578843113423223418168623308913919332961079318425061672921358906650783552518121057301195324112082348960244370353606797296226677067649697825304509209750370596102437121711912045584876435720648256245810091091115367416005657896960284302077408045189123112324487112025311944106146030660978485090521570976366637412058099995565111244186221065041028962132464140482725323950406075506275047189757115626442939048283799765088507458472940568502433316591899006509774907087993893785667562445387173871823568367548985556930502122446541741621667820427971529950157767825348549012401719025551694247149945476511965430812402621180553525079932242504257492717666169603257293226896714219225358712604001139757082100262342850143952596806563008261136607303892604333023663302637688930723447924566445617917083852603895320060218524249569511838308527658886013858780267116340422264935765246682602010653085462158434719144648783844110436108106211250070138574195588389480199531572042351833990445013871292243130574312974302430886969255753650998335736589811707772548507185530451566096975305011940377798288273983037811095178517235133917750838370633153673990799630230386118434041062400355959471901214277137046926832246105364668179987056795450437857004974888340757980083170521287355494579257241020908347093750476843860426845826865759743702650076439998753653040593534558769625210319172409808572085310933770175763726618534003378920103874418243821045520389118170033433545816944798198468039783146925964448600336997415236695878797226874252041075719129511358894468390702544276498230083931628493958589879463762646949682472468338050927370631847046016996145882663705886310007133025759565281693089232600098118114480560116776992660236312391958615552728458605892690642026424523257126017578210434596119267162442581686067871214283352320989576432991353353788228250794947319188473463547735159851145709609115260539258399346000927903428815992855478677567452225490257460897003021613052564162751381936213206030348270661310924489277338130174740666246308907415178604760572111120806004419761729456136065300317993493202326497703522288570210519759760945007033111211097345874842344012604187069094291006315966988001333872001759992114728865597344942287589291319225776343192056549583658113535537305399453493874211254635543060304085412287475436805775994376155850688219560535594929492375980779099949704086112873318100148295537890145392009414433838530077703313280511681884573794242170789824834701792504616123072374703210854505212945117937145835511595338847080558171688437346665873850081283189889226646061366347788178935501171435703443833560102048361235759274132806932631888220940695807361001068765205145622345188699426334923393921116785198331935609889209894392107189865355440518031712955079318157795466537678154622598085813740156156165185184052732203241478109949677159339210738966564163731762553172255927725441051350240259498184871906988374678744347765644987770031755559210011613138732339232010572487896972054059716584870425928511616650706233810518369960546428526619929464567870648537990419738393768405269637660778689595968131917833744345395719020864975286991277184706455966656274021011701062148372299845219958430446310004041492252342915395098113697325569481537320861351310806211895078981231579593102623107156287348040424258804909598946968959027923045876654139652790538635658075398111773222650296015766842589755783273584639500342457607376485760252411770140591797406636519398870998828815906918008659457556406387337055486247385251735569927402300749849463265300989485092391430041718685076160890198040731889953723712235393174017779722502772807487782106701643080853801621283623501920081373683331808279090123935330641556922699444090532471812875537784732003733647980538012945787628675640425238355874190557150131861865460426374095215862312468391793451430488445934580867324173763015700103176806394033195641240900796312518848672418838644644979886140328138672026334820114085914508219400824366870178502570096020355209965010134163340879180371039795955266492639567660350555597579153289514231223052230882965271700456704581790773397247172865612338988837585668356454207484044571696132526355954000965392962680868203500300908808526764372978682515147832039620714486569039753001094236435469086943954638588077732298722528941671962108629532133097789788766586502490087718987355337399950572488390670822795361727508637469544495026015623377743176655428319608827101581665938332938623797104055609212221219358444372528765095123204798112084084802592249063254846938353933769828484896283980052350160130699291117217689291894487003607164687108265893295148670622721186745090099796720307687299404203147015477970471050115121150011108661197843598681170092568610591237987374296754078569891522267018428585536623708373633128213429433857570079942099238795412971449878991967616255047544729159816036722942842785566414823317471023026174259527345823321070675744427559189898559957764600399191776811165548201656287990953642181876483498269820362213420804036161747379623181158270364559795135223392721519928865223026412077225318113950460578022453630496538342658282633554969251177684753892399054328210995641372142030644246820591600306656913390500481207084647399324079285343699771587216738599558578065162456151646997366917588704210070015006691249359085896703495600755977703709704093750272613315894514222396420363440851217086395526623886733635366579075029337911912269614622807628768485028366551035411600583193639838020283096913118867493791552733538649640896620870651280561208951189552692203063986630454765836220827767990982971682389747289745466096260652686492480354104105081482449646642654074279618455022450453035089156228091529035324344848524416869547235888729638125161340938932530079163674590605993777523666432790128860113667155126361426791428583904190839232498090909599769562712574535688308788982289217115965546200048317818546930304147971719750379479253597558706675689270615519294732322237745290372541325720517773443785605339837544886841245990960408149350159802446554476801033937112451316117414802752480015603838411250008460136883235500875546872981216393448068635304830371346108073597919405526210091040754293383153766255589881279304692814031297110504865426579997368774002085510058661530371714138541314026171452815831885148102307241456338688667258455433379527898146322484694375117837436786779574635643360363060239697975625782764672804730304385446729430242228181034009605255533979421196836005216924212765589619327052690253789330140988458368719339567708872755253023659290531455333560143045247668912964918948475760348200321589039905479538690008927370636041817536315370842768244056359078711389183876426834143822004916164436939473736366151808789182403897495543258821544322284283942373050171216469760427824790426105904174113308419242327412571973345165293697724003487360406950900851082088643501814794696814271293093171698363525813501994015646248330627755005680747172894041799605959432732335139423393790183383741024691256655841485897392819336040447816856813263434291782573861333511062194880439557586823990858378243390209694600948467674998972548096765306426394529441461167356721104226404874680813961182889109325267822624917962572904508059522547478721788952296953909985726852624122617883016091330039736913827143453126018993816603506397497141753092956863323711522300761194818412307635677435527653748083243921488471720438317372223668709796023419710031268652306969763379823748565174903574320659029182967021588246519838215066071011814228220024843485975264298317779274894092089749002720678355070456682731191338623091731026688891753853880707012828498657759434158849880249954865450900653317621728273972895690523096863315798659386206002456656594011944636703382549428185133875702866142072652928664339371787439267793207961388126155167987136191470243132218669190633357144446643436323379579907284406098829116183224308638698528802595666887043935892231503213153470510902202179576260555295989227498393107533345692376147563783330353531748303424634763332667590362087021476740781332962578553963031198071453201178780272027949454744889385521191521391107608485566554416536423924691962539655152083830845155488638514505320079915990168736833151010047955200782028397362107383025939970131706957583572150400545649113848861135886546742417692207850290183712697029598230057113544358573365038936778476291130465936868500599449697258018527480780381934671637015327633871816388571489934572799978908043005342278020447527928877172736734996010150594579996536421717256834994322994541469146916807104940401332959893297626611462510770117954750148965841638416841087019612685242884662271250890224988112045907075229081782299033596940617200253822295339538892331700399367703299436821698890403448690228366661965097024244273018570499812986495635591831704827405864985503526059013409020397557406533818219245591074846419170589211784131157002891815145391569442078653679864853080567215531493414501976738674895654051574995398306690827567721516566422286551979072614727337818507433236855167042253116064906086482640463073651536928871710789154062188906012502857665405896345574915992994998061871727714932115724482163798346622504140282765002227169361561026718272216579443042022104856946996578336729516482375361418814785498325309821981783146282137663733146349910346643787189737564549172540346114548381937902677162870922321814617499222850084444908617864158164119963236643979426845594338153513193524368324603652710073853179350846995006318315948305057347938877149375705911379130865842409447608016530016006745872894077534286568263470727849545432999878457441571477251287100880375944533533196358365476336887399380299995527262665118265532921496434833603770474330012109553669930936510428848271075426043878681907597418560345775133432576678572918915263151214499293008094537405183106959517460906778434433958105237333836883725875283025262679508878237665952703032002425082979697631243774222041112385931057274172773886721845813067662410835559426459993786106514096452304050517954993567896520446055508499080856251628492701727785357720961958656342344288568063994754452632872072498309806584540050741429191661672494278620647609144351484345015888406245776495966423542019432126303623476160022195660359203497149345477288549158014327625489257809339515766398792329347008623114803420325544054662610478303964551066291728481397283651776822964275516820236020194764414237388740710546430567653076551024750613587191738591807980497251511028778951305518325211333654054955758146985202841883389687583146055263012313607761097843795271256390840959144604506071951462905019848234149875353414255446235629939973008717809714571350783030339236694652197643310548557085382980822185506795510034208051417346480726350922663049993396005793122260915867997448661984584435021816139189562095430711216945365420781690548622313419057851407351881058863695124331262137625209417167797916416108436634668123676735181139468767397881242035008883057403454552624448267263552904039529951853226665522388130211449332927107289373396139686062988889878441073157596452607313549928772459029264650100130147072988863863939812315988651715300664067459410748083285634997346454149024348663400342538148940655289251481042774227310050828874214901231535849303988565149670393074505742025042977275279302836453705630290938291991612429450376992555543363820099679325438228609817198294160614637983047191022937902259426333615632527238290428584276733145596318178077627564226102792056191694015599993165659622346991124614810700011930005845013101000023413595526065220457397147436450930151972424804821420358185677685102508828133125876565622205686274967613076498423479584525857406360812630619185317769485676079851158041170668307255783897310517561201522214967246494553421872840792140435691514245403769266795743315599032283290840526656473412692407891481552217587927280546676537433950471946497627216048028855376837128702256295899374879532989248918936765386748954570521883767148154399959814041629637445420159080310226263772831533720470479856946036126294525245232132263243875871455000031494739732154269545603193270309201311052797320662786083141340580983803984004176883845021641237899000010452534653372985988745272566213840533954997979351864467841471701435534061888990508786968432928532797077805581834261476154061298711307795949711442182263411016426044636119975465859349064797678512301621298084206332059952624980058822328984384228019545087956096273084506913795190311260158197608997519875751582931713673869703202357744516735398607943705181492124157788119254051790708475096804659484851463439519822515765244715562700710867759397832030915592053026474196227018654126066501379410867274169071157953388416931012507146386386071546593651097328598571055778206333167488728374413728541548259249990419546931076583300732347479555105098745580864637946822029323593648718715062226734978278269172227878819781661505879289540979167626080725273012011533045720517156100201762560343585074104155319728161672368220122491963793604728725084946108904063019341519918330371316942515922955759397676431650535423870747714726127409208199504799850740098351039385209526486057777555364091078732290859401380738699129655301367830131978104869969023935527892214781053946548901645309279628439560419096040120261943757537659331780489709247560186524784842786792871848307861467153251693472868509638039514148518373886620129057047164395937378181493294508406668910060080706816544794869185393998273451901305586805354980954217756051475572885758148172780980558190049087940089364367076294148350667571872784489743071246759881982208741449413427509213603260095322931132539753324273587663374711565393873871424645001139333440341196561461912836167204354149811899908611021505092822607119660867897287461216918255929300891539049132113374710770330960564050307996475880832482695266912230188839977575498004870881388655028512721709286150427558443590920873664055965334175141713488967515493510309510426154740498601030731471525454462012306448112897026319742802339565982456894997303733823497401128208614354793628132699817425506760704125780647174461758242425737284193820543494627786439206305274043411650713636333010777019788214441345578546671201620339708486162254854011992972027594837965293315867688120287660617055337413083830760181914587390888566354109635835043082113452123065283178208701541178487395568450462434525399865873378258096000157617470272800927615715937017192067913840331961713996498347526194436089273582728767879730335140501444794418119452663612022163718125990514564767818006728270839474176824283931699239781121704808849269207388020236032381998716740824089984029502390203840557857739534833715247903898049075633714318885130863086065918166536757526427091584502259942340803190465257708678228105682132162091579220155449829220470450381674445638890718738695919638857627420220994870051149690949480006726191859162017118126535004758439640676564842254603985368807837457567729033801886330817212369105935584368950748075124141291077355097265806798140515427436711640644443214234026386312882865202278792679621306189326219605944866683368295936914480751238106506624837159397579826355945756949049003546992099594640402948097640338784224280619249162749893103874485652342206704264880467709567443495688403492281054696626086973409884649509896462405938206744154011519832092590002901758225207496641924081596657252956763860488234564860921161463476145890237108324772009566959315479673161235970480173040510284141119525436238685365507450258771314091023663099915632398773196046335956495562933024493859363667857300315520921673734134060631104577630092258097557440257021443037838460636151387902335613638480975147663822170270878276644190148368806155262427779212449597779058480824559409160092693667042871884094125059892068148033679399903611182281895800962524800528530086522309803061449414548777201354575356052060995234582398036000332171483689350944578855874918045643807590492186199689872428305726470992684097721453527036760433334376590237149172787736047488097244885423603847512128641638911204171088590846092338455924753164759346708865890635787557831948543014515443395134074622251361059126519565751601794648710502356062650551374308853202265949319641975382507010522783244580306510130962414997991803286024691086161479584252915291226482757770448615012863573990659820428730563740063494878236177736066914377501810956998579973489679192265734068505229271748233246245607112049637843814344544659938826007130917356970387246848547269581178650847474833907861751344798310155049747531614953901200149761270829970696714816154018934248697515213088240968755554745638503390634471560009553624285902047664215432963743932183938352939158499569790802631202876517890460843971446455162721037441159923938127908285984089412754309233966821149655762367206274318749284816541826225851170382869798196377810863991232450124012112989148359479790830511926636250990233610450407685345950969901129968626076794832556850842210570036682137767632355149313333834789288124353763693280875475214749015207272344361719296985034699507736332067828508419387904737356546618359040074114813360231779928234592334534886926349880172795019257132711162644687179121469083000090889178350251875417157068782906185332692497303894631845350534509588755529353916356108389958585495961456954504501401426091697696629396063651221662953244822026092687581679522073691260104667381103138780682492013252626747317649212894912041520840486900777413130747569300200562101967916870863112725465222066592218005250579488753108772852497626117323066918909494912623984553676905130176174125656409627435856413964636747684287793847995212124466303901200130255226208058320701993359301963600775255146879620996066942353208606682930133198928573471906604291977914768353329242768357867536971814041880603070207845458530725461582574875595549638690169714800233085888029746517053282738347069375732427156311565756997120770002470010393117023698810269658712340441001319173107365790690827494708261495272881406231401802673063432709961953199429662183923910592283054567457833606677088926719709687402691829909745933209030993204301449375855219770274725016868850386074033370983575103993663349552933329812803391540845526467056208320460732021426905830539372359936153312287787663118561481901659040775696957185882407311743615643751805055090215921018080193216262655061659457180617229714124560692533957746418363381280685052091181065902624960362547491353665312477421962415758985262971910449214575582766811627045000735967308982545930518581139186487655757524218912608315455744395772821842664766781129692251085345804342197421348006622916746899670294348233791468063325398402518760816924116861564667791898388362191433560844744252054424832161317710297853916012286039816827842018469626223368393054942467959158929201048012783186970609431804721716001267743966057156682579199190887561486416864470722595414970080946987750183247550504048880149196023086389374826218446462461353833277018677105305293706214844367214985895379366854282442038019543924414687748167236440724624094283413188450661886755448005801336879541380240037500854721729394586762017671226478071546718138586708310249674484074485888574693044649130408249968035976528533725960715182252269677341673009515904679181796785977004893885412888091458068088022963990003274448712277814643292094744249009950593964877809231308602219802539128110373886123878962089922731094037220509385830230914093692700594962032253944610110014419113863723714622334410665805736112850699595886511966124955442610956673237931467062702949532847484658666184543546012398622361323331303783649707663331559756273380089090093548958964548037475683083071343108001467566559681582183544441431606322621646469065286112737617392758000021395382605349644578003917842361465343212586776417161382070437663548974084685767276580173088202030916503936071927122918599505065026379131955004994363087973201990311253381823321134221468840142065805147975447050254514123323161532705533245380668935457109113761738823991377331798466962882978573041151879503788889208704565489531331004362860306585151739377388428504325050330666836893944286677170907393859370526054074079313269523940176513459205653558821607467621932484322380378976734886031222561598778767312286418365369225166466000148643035763989589769770553967288047792683234457417928140422416845034127381519806671124660931872363461502670732627601040706704894863834325169579798489838287060643513324610557963221643940636165457480167449369500645367743641521534453719818780378428986574239443203362249738322244066644340573194183243332106350165891844883298014851603258744609512348852549517981160600754917571412463626933746689778631708115574257267086203378264722691454811652130958330515413687011911356183777546112031017329014814931914087562546291892434923176737315100307568917404533685555920898977130542341015987427405151919741984459221384270740981171465580229088276201339509366202888905194167526786894413609608302178715958557951310382615086533682130665417772785283440801324666818444489370111694791530097440537784467701672763939758932094426396463806253035313697556378286799835612820544534154180913774075183699256667808815666475562642857354452561737259276181815934562391914864324851498567042265418448021888640375745492816968907545726335202048339275836736953353596719666714066971752692003683028183913958752097392150956375153514634406195702848052306896274579637359457124194808459721518646138579079883228117937591036408230403511605441818740339066533173065643961037422466160479888838297312640302694329209927729813209275724794040526746855992959416095082083870419025250432466151188905854120905732539843894804543694126863975491393346202877164472237745384700324307044242051919858215313363091319184752814753509962337827661338719667655871393584477730840389052947707196037713366310242058630208196939123154269384362678710796897076418208799915457934736200863640317707584095395528517646270115906535320082195194087253618798688116935615570837957681477194332447961306702431713369810089678589117221098628880081660105517577145072979838316068684548810225410152433698379076451053458414465813614830765650948740977125827609372215587988912191470096285904979587317852048640545172207469592399717025021809066828495787179208839579968291365377095789022740892442590126107752167383659727443324229692825934033397183924890662944647404237844169499778795493696283863303771969780418360028643964941689469326959277171206552933762051358790763921137459018886918229395392409009003756166157004737898227755894384746798858954153255531676061932900248798040521915068239030630537299243813040458415924267902735201840884423396613152172743350756383980388207490199986556606578445367814874989030375584001652423114314714735634548469994700731970915246447958376802674651234780550378263439932569454813009653602185731460882805344527146891768798213021544605945701424566522557464929210863592255583592282448075382477880451515013924799784402916805250947183439847134708117637868897145363503638267424221933071486392662578969673294726315184040351231424969709315825900615269282765479075837147705994257371982253268707202868305155091940693730039281615253619834145748861160564163271255064212182750569770161019193305994785506506309499422343065436206693464409415155409787586860599619140081163454885535994154889641678796936065709595190020952004558067575746493713851232117762679024121328840962800385745069071126094589014782700156571405073821690954814929852826056111288058214633802894720358149541047625849660868490150017332441141389061185367500281201771768379695818648776011784419690529216557392344874140976600167811151586748091999072319443777200830981931528686239285441864693536010123784309792287030444075971913953336479470650878275937291329175102306217816882927592627045395972779552068049387613905750209358110468193092420312903280132226935534955725294887724511569994362799176754948752259617694884844195318078905479914794138119734340810761191659833370741739812632168302934523557501307525047702007912662474627334007755216437292691829454203961406477417727356614069591887669340486128804310137703142332058380215449830050092319089138501036054675670111796820217872682289113625067428573094222389509412596402315886738288344794036565375651678685243702329952998625295067802312422478079159956749984342406513541410214448573486347772640726915251885184746589391209761384051160836436908673036174256191645282712088499151374641051021527363943248855002696405146848491087205494237843893736748552316347777786672906372039197978779409110741845526403403262947852946435954849900840237926946493591960567152082320550577092609230502650030402388877313349142325622025019303468219649506685255113433130047307952029993494909997428577129487638035509242531162536554560928881631665402743582722422066859702125409304810937653634701713728058654208633071946547740723961773960904810224813485770840465012933968129539454778459388159541892440832080519851039346765138130344292599273255772965410618164383766253107010040898473503721986495891801001180213312610892505904217225290784403623092911720931136428855501825629246009455202767185430536213884708303676381259991629008319234954284853796830341418730582276886086418158346296799729590924299880737134938019010482873732450139054358693149158105835573793092555035692568315368028838902370282254764432954490615844443200403053864553336424223880949686436107928829309732650219534834817802445529024423367207796152926344342008280918077641037662073218250034567926029050962738550651017495399857677847757805241038642439017497234384727138576982625106042991089303392400176861146571197463430872903802534356396162482410799416214726273776859949346317253650767830825540343693938735023444750739826963670020330873808978441653753305897038380613661156635119066907882942540350164059641097545216187878541318576607015284635941141705066190846743932783571871181739744637093889782169208348211955323766555148378666893649536656169966977642178522792138051921244442244999143473204688999413515659569737512955475693671445129416966616649645223825589246793361958944310567686999012884367387213067474475253623370767360886417883022373677734500897191248798456235039206905463101979168826387864597522347922018919384246224698598277018081482647885025335848770558806901365216028271965007104857189894311850359238905593962573390774730925655503494412897047176703783289980419960870034889928879928457790674298362399115002285063925268908860840786631714511769721037011432202246865048062516897725038266334584897402594597522458854162335355584803564983218024371706048766549366483991639217697257411493552509434034284718887570941699897428654678310665238563119662923103364062599831413790682162598056306969487817874174899800511165838715184047226738303996055695481117426648495499811510421835645003258442966568222561422584890048975208440186878054619413860026136873047203271348127292490430517590870001917574208994982827900168554316028855106106064639506840209817690207937669726196691934005284400284330781569598276187434574445660030171807185260975024753363175657475712411520366709958280812794767732227406192115406959375401684834744171604607839657202079322587278007045431527082864581056320833087651113238198291938375354539065526302868853765127494837752917816274130512319985575567302726297058193999913843835957957151699695730093682398322615298517158610051884745301426076092430219484031382940632378309888629371559573670687408342870969282722493522881210475270014168729484065612384549293832736380905370839815962226454372593216995790410008253471160211639576209742729424234470573419658730633333299267114880163588832375733184560163977453418137865867451075644963879895411694188896164871565614700477511478336036350372338349697028937356785057496774877409955438344276562572851594881610360838810497535702810475286842623555415413544931156477361518768709735417514916339520161657850250793922864723678052068153058827765178870282848319316309367082878766820817563989429456423429008558232454053485857772611224859243411883338328604443317925303261180990440581319139803697102983511220179999973814803695484409272165401418935364613661488223462376896421597314914443428019298949394227105715958439297722638145330055771923801191477851012496692617476503802587728321090348263728333523246726985340055408864555820072779095650832170226500806531923903153528430795625456146779789010265256619485762532935066404809306411608535301681994367642141956243767225049288789304430286383723747554562575189507519861970706655925714265944046375459183887017919337167997229157975982069751404303397286881589720580790850980341321415646040877367649751906735636516804813850247335219325904981245721101163572600729902008309485078807833971531200762256044678252149721450874541114739021121571546858569812972965101483357001869843273177526853171287860871435146820317212257377032311788392509390724910736482635615145946989270768197900679437125918965657865342953742544888267805413305054159078647768157341289430096841832050490185618512878574099245912837256316803412566326761216089036714139005186308799830636076585934594269073942799135700554321395664644909858843651641410009711338879858740380098301030290564814729929104041468226549204445594150145800853025964574241189909862060575039303890774031991158645329161163169731136976747461427623462351860749959578790287441374257700162460368506881773971086507141027215934839057124663536506095912363133531625340023218275241950851107196045555846675572650107913230593398419832232377022959644647744588876540924423025395316205827870231635094347446191128680628451087931728817048049148014728061599580875254363417449274103098821859871337255744572007585989984301383065134699378924038582124444311038988934715938889413495217853715318756655867363460868067760717182175144882958673114156885712433359988013556207476764410354215498148245906542388670459186783615602641766317049447095751258444293193860844971575825676793881708004680700739871395200545991981654969897843147762654412183331563140261037139768624535297412086736438513087174044532094154413707010166083143700322826046424782752233403356687095792467000050971767065567099635609116566703791454605420611238128129447865805620496128535626023298223888467349562854585989642790479593251186985966280308046029991034205622176456171949938917922057722751859064526184216709665493094256752325355872595770698868271308210519484143679621506198222065948362526456224984490072679934105610177386978927869949867811839009355313707722500682058221651723042091762101264973585259093955614585129675771691200014114119452712444006581733719850298319992263812984821897657722208229000844346521085198096745485614764510320764560153314467120093205251157266796576858603509739722939991259253861974269535117236024230589680721572278631920125094444581003886029227509435160642034884042044829427978454335537026418967701087066247821587654359043261023259400596400828704020831153244879738652821439969482107260566272996189728528756528877445932123305044776107017884142722152193728372431293642672175653756641665294332039624714797521600849622912593489457735838818730537206639515669733741436689292129646305355579968484449744737039137622941227544428700041040728067333090564249349233942497442209175177071340101922488374663289680639590722201511731677635688225131837080048715067859330301116484444246552875041196293770641527638129065205035279733160080594942319698100090398584223041762624169270503990035867149347576791518068706494011166493975424673563442500957784052324533861614544695775266994874145246660092295903013260270532906870632385025576214363699032240863403003734513959903113090015499537432594461091905709161910721721069795964297094284068752774757593149476160882299893904008668017448882536975378232126193382812741740082494987582158178155693044167548898661593427844398251204829034274783571004159119348321995562675252280046952075894321891715585414149661241005009682049035098998535057462534837678093289926457521606602557748926547430486452484761265104365693994452428077234301259744800469749972468298204908618609302782852788483159233558536253628659467740735726662070922131286162205218066170762911929724903044850841213941305038382391252597733995877889763028422458652008227240493991394946927194178502648156865693692561411733939635557161881978467152878468316816067101559137862809633338755925125572172961212591210809719043660016648251708847803513184266046396255909165867083994756825837481907040265018530306260751726932539794815577359841631970150684180743710213110864127806420520381395099894290936480148820477928020712797069846426584651542348832946414108320742273627256224513142027199137512878503982258783450475519461803753207026784331395558367421685362040388277406363973443493562086269521664838835537493330004344251269518072032948938839576782934246477452368676818933027673326772769525004795091514345609040709465867096706111881799677375463249996878017051630500302525897233336911422136544899242430608433086746721145081830673108649032280747877611187756494974495130112996208929303278823731603021376057442191074079430263182078905934960546976594545465931317175737541716155122693776889771168449787979260607578213850834751331471845662703058591989048182406771405316260477643058879065218351543812861669127808715898192806107325660058651314641725962782232526544146986402539873147188926675386760174376268668127941096379743067448223056182179273086087949238199664485459740631522866388356051923249140544979898042311244561809587670479533524385591467095161214477714108184275379498565029578873492253475725014667828851558510286542772867368813769090481597149027045854771714899458348659194797255148723813469519702446095811448929866995466975910742801054470729586926259247281344583130362164327571620602706503407722571997790746447804259300446179070024885794720242375945132579240336334705801964119017096469324393054752490348608737648192484685063903461556087735695284484827565130346604675500798065898900580522980014239667316601646918545269487385120615623583634900355166620860981739839931637939270517732082420164157044667571321024498424544544035706314172753502750715566510249914516939925608697091067332595455351458007045743013304251876750104791666603660339441618714667428636310552726180134968877318099293834926198280033635610950962089004975937072939308910706715882933464472376128758015540870394321644109331896349371569733194514540086231115354106640579303361551784272312569541993042754967989337306973059710575710184258345352992964657317553579120203480591760237635289574253863452004026599509464034716900585902945644331883441119266158033588851754816032113481784389388677696974870208572774255816687910643820872651743942368183036990327880258923715339076284982682176968623226204286541657700415604665877715157051797228683767830958146753360968496194287904549208895936091296364489696558926179944605344262939765418471550959720402596244214085686473481937231361787940933177682154821536559936588391666544020873319782159915699184144478176908027452805378262901702620519630730412574330043258311529352635390487262870323923425676522618010633418167243444643193287947313879564576133932416085069921562700831593106952207199633738214043584933925986037012730116133854611256945061936137733529327714073224722055988567023116795119817523433042298175022164743385393206034624410468009702069955657700782286298320294834733618319327799992464940192264973176509811208575104986059220976390672697830480155914332835201871321621203282937927160797398662153698550043544182072469256824513962168658231191641732460654288775405608154197211709403749701080074659072501020758595147701268437637684282984821418117474756077654970310970032982829964345391604066539861191945977509822743907877619288634064217530769051278845749896785384774603943093704999055942102622760120562541934869675899777995792597115323180598602056831047730462185407315881692918512363771996381597892475101959946398258367982729144298601182414689554022919908038532483256807072430683665974393334123454914149970679681886368580919390846393719517110556672383150761151165907875959534779879428884910656647019836612763983133254459511718516063108272563068516870118546097025717219714887281095291621497266547119726740158369794716392849291553610378243844695329837760501385524024707450820125291985468806037490660818863921281677162594633411162081051180246709127886151264559124963820713563866618321253063173316677211083962193097985455005355192856380045263289949513211200322110634008221536188891866345512417463960044320899786301107557455527729874602932505737484422008730498070595594352470988774274628235321497850540580139203403093539859269689946698864147243030498218261593618719264929009236583185538194527573812994938465599857351651978704720535619279584961692578254706113026837004228161474018549713182981888978298927018201786631642032068776906182710280175094046610463923476641729750146457034163835268022756467324697327118962741601357501454833608978408109840634053882375931918299282917260658656181852446720643247926022437165567140136839726777932838803018505273351360838999565429919034892285414001403703999487863648639204659657820958485824602737380699725249602304316371602782132002107132630057873959238715032652105275654432770816530115015846127507166599517604723035982826677495992907375406707269918137632258131566207504319921637585496850430758894823348517986619528926267552168063340739603054446112102987430863139919535073265831806794211407659429019112016015660889867063609052899143179532966425883425098207500049434683405539079157640835165693679980713403115620995975223126940047337543844230162574234991328028079174446951948363326459852447521330801061883107029369427068979731553531692829554417017425722547961639646872013587708070634582969841474359540443250693644421723946338893467734517229800942195116068626969263299815252096526471211037006911805436843141000000982506903509095654916183615741763044490183776635722305500405926505983868659489964991896446777094528826784150260051816418666731224087930707896474940591344268888191366094688137488694332264824750748444664280595105728193400011254340111535738064921972069481774842660532249366398129999237412998035123318151860437033906151372498501902048788630517927503175360430431716259994163314797465880361233321612369367646510953242308358924050049394030793744985386558477323393906534871068072513451822101295398796831663167805431597698452623769995911205016202299131717059041419774165692095553645279273297797023626079457093924456310081091797613058473558020760636989875660711798493600142287548311586909953777459946952054086948815781465621799549374269120062593641632911050782974026962425721572448255978292865951118476732252245264896813799526798968131488692660898301110401853156910179190173189700108305578748572002949937272716596709972629541743398874512440182332216208225478981016507887516819087180685439426323226837507326081616371442797461141577646060580926176983682549308269364420275043638830378140554170620150587605503032681714810310594879724923581143627110324823785178749993169632137358728729646058298320464464822955218933133539499133049062427601261355846303408983685162750294445650347383515611556537829656478305515790870779803957649279103686140892751212721929161880843561520157728373970792773013568974227946144835359619064920125437657671209103245494835413360171753578626520825047159863580825716698504129279359841386567116131142544784307075048629068191412925121242128785330069221089389226103943937381152447501669381829160296863009102050479689512191911953862524184471991460149726736284707849792111508396530935786807692900137303478647216487910074206279868805864017620660261269922108882258802622914726954931871748299219079108642433788294482433283897290810932590632911192198209473113796294923167518943299244506477342927055047131239329995048717967888794736465635571558764720478274351196427371265127702104961548917518746112616176688682473642478212170011595472001426566110597879132391755636015083148533757100737405871499745197163243267250139494492038831311655662268101449045423877920825339641848274608908522389257946107104130737156592153774509039611345749822341120424056781693959188755480914768094138429776500971345538456763599731012255912117781493858007017546899691428785994932575664560546360578302642411003662124992662538045315202774688845452565679477091033649030376569982617902216031481771783467981789684464938399992182800360109828753387067911896590857297445246043176318123825498300046135171965417353007213879563291566701828068793301281916656549929100833352341335462972367385038197325458301220965035832198189740255223085610752174798340844139107069589427069939730124837677019629007917326777298813333001236588472425432376150696722849203499333345911350323732246344554009486387190576239859987293594443700865209041555037886510299252718390009767358517921291897652343069330109421847460528567682554429443570944040060386617588225206380545520292633484050100714893636847525692485422606940983668400282213079283096618379790842041446894373300480204959563125228152228778570499658059835724791810171802625086244931875553097211959525250184683056753117524246737385794099941270646790707448187311492479292638994700068646488393565182068220060062238917471371691756544839931095076843428172298935853088806371294257399573278742150071399082512407304238703164328062405270833445344195493392367662986469785225595727247817269865319498515725571498170917503734567932939469256180036683279159501342064961872872664683898223009904552062973987627972859260426597780098354953885364269763270498508977420379908155486360952209936544719272148639467063325684543801922534923035158776227066108487470779519354252934729912728119311949774693751662469417671627113074757111275840148153930010936638347997632148742847551147239399537888710797787878330220379918333527913100055538623299679315219711668097182556236193175608935371694528074714804353259687413285136139947802203758498541591865700016287030771010589592702213146619170322381343571910506191251725571890662324202436822987709726609981944900190103562844648975536905525553698879699573201724514524818891930647977005376671457416911418233297765849905246287783992985511613045752609828477016497489368361944521963211618646113319795825449895201063199301879969862203656940115434219974563296033745872668678738118761662612707588861013010355922908377703984887026377945648522395235739876955706532935624463673346932417370573725548140767685663189734264442371934022785811274747464478592859875796347558293317612261575034543683847745143722234905725154586939941941962506346908931168813417717338324492202914422236047953059837045519862624806576542279164756820713058221465853013678797638674311442232061656560871774915895746370814200906209504986918918403228078907580682286424225253448573987810717329417452111151209233419647518498327580691397465415085851920127719833109978056827758400389506709837672202969269145807307690493861994332503556998341147660879245033837387749463553291805694116073590264971286757492883163862115775453764976047301540045897178319843213141476382129978830306208687449390359104139053778344796985876159451427584181532579699816159212177216635697742855100151779551532019347641231988148561715479675909357619454380729233734829607573201000481408924793565695888920934990966614918212054862071412088600402497414630312256196410138811292358861689501892807449834728809524661197608151669875379105660084793477371382939177091879044548493850170402508669132160971115345358463029037800479066410875050536745149021120059833666601608869274609018008518977397484515262195065096371457563602312297305640593332203595419715555595143422885809468774290798856878476403310239245725769720198704245742128053670225084397698987620898130788014559245969531552878231218553438176012778267127117055018017814903286742110146185416353944882868561371678409739375234546717063389409334562705770399184010487690624904083320929387910772232383428276080176918030251682576432100135199073742849956796517299065429508705740187041269001613357572926201525891733874342079690244835298098800737004604110878467464668129102181744189865760748980976889543261956066562361588384579874740046606680075846141556868925982763823417472638320071669746414485884146222523916478997404414360069564207485465322355140557655148746468491566799357396319633292625330330067535079943592120916976996983874086641435368054344797343588375409896518170559412239988477263753140075537384742426621078439354878926293124390292497819362216091160765094208983265719157689191999989833813408168835431103219906742618922217728513424534054686488471726532318389472860153860744599122051452107555515118501084145822639073877243872696373289456975892013852693811183748815399815019585453220607685092732618082780689684603883804599457230080817459181707351440608761733104036691262391946489088701619546746961007773656566920694951322533297179973153403807515334058599840537391126301386152136332253554035901835475682904465176886114045162213122690662711586601062268090042848763477771283313427672286201548530898033232126651365186423755867489587172447521288791661670599018813500768150782187262139776322003045940071531175476525744186976308922659087699746263672162636140353121643062505707636518877115677290712606121566854937957200162590019126596178550997865201499106231228850772095712321243806249770068928670819807601817931018604831073134154838093348630227354856329540004236728537268142460467676074430615006165269167830270474259233248268277982341740653037057180968231364261650222686003515815226225503488064977482017703642039249234523223899904896399509669109307604183294116248071652010998929267067292898840096142736347440876321878186103470506777647729274769397723627244774645200991173351794657836301959594684853360794211937213178847214023661670482241848780770987856997694801566088798951468766715724327720811124660803906736218505722716210306644064492445109425192890921354385804020930007060440641980998342543904557753307496832850084131403010184293697078254313514861279061404060159323669773156425429138431656560459154171258634081099660731192874025214436600164714138563182008907991624743963767258855863997050330591728261316412035364605026930547686856656967986194845336615250831327682775895980440190918056532901281339268860762736176333900542761574072262516725347688778204298354032676338000281692452539099936723144624393946486231123510790328718475913679036658203202115670918044315698410027604008558275114984746417678685293699037069630730638538486640884739207367604321003402823889745047832159385390840695647081967178384022120093348928441072449639325167510948632877771514341957711357739479370222543551677226370122783027891442570441502796390797779206907958995827431932641435393062346830246953303497815170197391586947783125791563621813561037347137519725698424647742586333800990015194945285952970361369676750049321062325778252272692643653396335320234722297485318583184532704248124401931519650754073953668123779462740603983556233808858142977838649261862901572383088218819323981121842452101528159396928865093955403036681363033868491407046012577730535602014740082416261271501966387550441238674623652868603587015427545122687714858975133296508582379922797695126728020861428659899584712797441331901311512578874741673422076178808986121247322047561995420270006148574432733540495740868964940703326192747360221624899670668586949564453847345488163269239115388444841982307086510105316481896226381649947183601233217464688394025993849318628993472916461928230857870060628717750950600534424695683797463427221966761882228806948410871931790519636217979709855393788578356798678607110853960850385918110680322634260585613447646193079874699464543861798949471091110857557990849805976080380248492665803817494852015102985222288680639411248417829943667169171676609656803389736656653296150311805334786564227346892208658314228830402509343155906918592605719771338709959784125001714761793489833640453689134150779996387740372218505291254988190066224359742831301434946364114083055857740724834629046608889501885515830481656869494887139231752917234178641940081267345780544923729328958893034966828747430890596978393758820601296229035597726555106124702146376829301166953222390752286697219269780462196885419306980598044050851441518955079783312039074583318655047687611880349718160736703959485194216423612957103836327740406374847090769187660545312236545051365472990192393261934241810716155462709351521148679065141056983983343551420181973266968290933264511920273299522700055683716130036085266359578958505668612439707707376580873403302086408696740774154116267508001159211663335137430778731270510934673862492408800602742718227259433809870693998922355359221390187685487817281285113587517171898133641031953821402065862411379515167121611768199887063745903348524791207766983545439068766911510570301918036713025063349746448816143927340614526538740069383495976761685044310796831053399890713838581945942206143238604126162960435884370698820325069919474476943157713228977824247415450746341043595668923391719573130390457165483272508296196306648620119552643500673711122528899703653109726865357179491375197322067224874194201344474136692686657686873727982539122714802796145040487247002956270388580716158659660128540628912085302009093982954136639750071780898453387047550892130959759299530724492646754885627488279464619153309463723447764343450167778456985750129529998981362171583331111319126350783290996364757263266242447454451636295750327923128017782636495055800662416971383248596128004287417823633604415074081920258341548097679297206824045824591823417225474952155079275223884921778919986207809099677723372459003915678513630699841965439162560201159540916207270741160958598237655131851323148393292935756890791571342060332682093637167086971664213957144822544681829137889932360017185377250878900786366919272245096937718991169427388005477330457818113349809423808473259253566139097369885423717699885760683932883774520828571065548764378042095690907246127065300155517354075481559763669417079643220529084140861990570513377766560956484731770424322574578117803225453217358330308734887192253850915326588311884158621071040840352309294535529011077969874395189524708330543728164898731308134870008400997142381513227070431630512296025578570288278876757638302496129353180733504979609524952100503293637541630293744112777155998982462988059999488305743837326858580565338800896100213255898567984562925780233386156346975004317221373381628724401611673285124076111988291801467706928559548577066676396256764752280683817228947754905743625932700072994562741866736211787566540026238639799040146765260686876470099649067303644567394929004035031991441305227935396984998957282720052940717134886049134166158740750198098465137483057715705873480656360321026779284063686322531764724347238028543672736660820942061863737941027583231999840378839556930150071005962107850830936730658821013119279273404745455377315482770583604247391211817206406667129866694865648749409225886394608824525344254553044619413075811685026567204127044186818062480038347145000074975852152426003015563752650327616527551066783394798467011049021440002983858061911873988897709454665510013985767197046586253100192823857193890420884600816809095083793498517122601936572775762281555310594391842190599746880665772857697820655061654523685203994450045856563373802310027930444517090461315413834733302210147293691763277999088203440869431591220815324594660812345061885668265802678836891879929029028451241437214194900855800425169998742292692482639882644155057406162249868091110436870825128080295388057263604670218462070782063092200626322430742528039257772201753412583046139263758703674881109697808343691611018473056260922039700439251009883273159625868664886449221150982759706310327130772604705166120892620558948180293657132238167803737440921893905699882629917032668781559793766260027796532924657394834904845157952385034610705001808638890977260015448449023245627038273093350174670197785934492877441924073674692671337236637222081716645150675073080909489422318839454162766633325063854241634853511950016578287594062208103738628062915924329987315320837397758743065498250739761572016568603116529414123757295026033884325040147837505595587192976454580146316229671216616967358279823927744935399362191208761508839061057226389500872891264762649625978460891082774674866764727466411335988537608129120320174660469047103926753822936291072363740783147733053359371942213521831421902534969859070192490249071323416858100088395940210888517164496468486645581410232670358848151503756331851774300381497364729253720715192345224125567000992873927124712971847952615296421757586298654666250870138461243662024455262271092435554543201558221570213097207206062016422537804526043692816234686028195469289360152324629394495432162524230176312149954617675282899936860067040044440187909728898233356821425873580754404056915777365043927129003486530828899948615964441324186337620383823258566381452922575367067942506273938032835306381919167666376883065026756758120201282963766093081405442194727352374093153565655255721203904744587438043420192099064975420368998851709690784630381259167238032991950638696838033839121613412050779703593159485132884690595605719930229243585852699846590245907795347788688109753257335817953195622271259849926517939709728724164377218618888001045593090486789776059789380101028948688751732706169138557633586280359351946787862450561477538896430474270490399223665054667780865864359424270801991940414774229665078523070727946845427218741442261603361887477125335357629179288523538505705535491077604059333600017601629032740425691591745613172867629681092688847041907473714228902569150970263734285743431917379544398645496363086028215736371956485881746170874902091616724608204816181692206582077332811265113011889572084985000434841903485820298107768429381370320021172940033359804176102685830132612972645965189476508003052973835629988937915021799931501969926501842063009147238397509514860761704226629654329970980877624118090189543138240164903320928638357120265303509419262211670767734580896236358506078121714568310376029490654237984386176692389529339368796175382268814694614009971333026653362431278403138982792670196315402909680399638595376508438388470943513743308708898126922605019575894584879175302475450833345759652318048661858748913076471960108897073777250151838187094145918132692882258124548500555630163604279141960262581667805255622801659353894485064128736659960510114774675319026585619627909556097832173740608257025220083167570984065093458106298388151072646452683913113831959713882048345335393058063163357380644018475643846155714549965773817038087513835526127650073939556525350133237011446262172638005777965306280200921124350271678354526435114184448606216995491668560869019962888407101157871002591538009615388399457945552174637715382220835974411344204462665857562925862163801634925067593386074470758104143922755371492162324626376187339974192039321032805661088030208399606348551047870334610544527650505817329038095768549079063607344528126579716617162840407291346696443772105811871802587381265294430315794692941443911690858294705012501944408135697365761685344517606320008811812465626300984500739836015317953694729313225933162125831997107587671785417159461452201192524321631699394336965223501520052075670728214249537490388295142291222479357166005802440455319673321400438053516034035159426666215982121660672377698796722544290835906409965356046371205808016783137310199495253111188774222448808705413113744544435510338701110009488774780908980236073203910435740490826026328254388380577107687789988544511574326503172312616501280649283174830339869136852609816079914201231343993980745198519801745260132041741214805670534823150395930820224187216564892300105570069697340068165460004019749345354353217370940051288088538998151686219285291107981606088248368019968960239827132791484764336643921911051461558375955698149185737543354607179135545237448808596065444169889758181027569935270243677081986259577495340232801252074410638903522947476316904326717860988228875018065987265240994967618695079744673562094453883324755135676114292919919222138719453291257003147385621384890769739484976425866060430384450262789651795142975604591736387868831752862937877574138413891688852149011992782942022074681465636660956356426750733626983998526769545269855405411753212660638045834616476376577908647319216146879355419313689655016795663234205073428476330055192011583966335244812298472046233306348409075487601481301021162951736735938276778845048550123280956219321520196375317310527273574166989288649410282019171788328989062257146489650989848041110200593219923336524260566304936128904683340546146562475695781519619435906074097755729532913519963963803890971603312970618286036258984395928608343560530419569790706756089899333608982412218149722232463221463845631991628950572334311759339527226279117144799923391568339163023787953557550033812056157283884605761469968901389081383301895659564241568348786048068060533773770349210093692400149964640382807800887647347546945383282227715393413607347041002337199301339275006652609149139757355989162553382771339370358708364562682958888174056768658481912935802624801559729724177346727908330630536035660081031578928903751390897730170501112398782546714507711554750056651664541981644378591841543773263317343532207674376072044317963834920708089661018298496955296575460744577855727347285363840256907645846639340661657318952188293894435277805084848019992074288229842842012814531593508871617728762511743920150442008171080168089736123157127169730862087712258348746104311202817953375998808508111506117547415779908402234106937613313749763733756526858846253992918913295628238636866341833528299451851815196384379289215572936414070147952399513947178581317338673641733740267760954450541737729169592473488161747458476496012483028535462106105267988264651914273729707717954469953518941710935194736391301360174660316292351869483901033793163956983539614314881173969262537508907606538304801038563225971809970223184460699199046417942565871316777115418669466631195457672487425563538588374118542477360105882922513234286283382153051370585119324566408910068480394850430833181319815831646874276289826737942785693337204235657623482507459645878809546522251878626205759198778880706199101334954554857564544378197460427984415370870053177334304026326450687736331515504861361455495415076621848052522302516701234498656093193449123843620720960662061142633281617901627123484085964024267700157620174441753542191403282673712726077745471085743019088949355013369185494999074814811610902295385761747719294587542598673266217743325778534697925884986774392295401233818946133912503403683863254318716126372655923560198137646190154947595144210306973048639803629578003960989697646995457808125632055460196344808614436419638000696478317353570658810185123618859516723435727756085967553343997699967312061362371904322223720304018589392917046668230907485479574952986314674714262772747683568946327215785103956863796764840923735756067853183803037765015255593837988928480788707275088119453367282127608418571238826385433029626080848966307320531756750231537697253252537573711007912532637517448319368242582415815908784577609298856624754523241403029975625454448447632410216691792403276796557849537188943904996831078554776224054241878575787865892138173680765742775397699056645463830857386557114881851320194736476886328477536452308997558856614914389891398128071375453984401360067131102961534566271806901849839197362297661683576593061485124292833072641829379464472563461985319679857265132127670506632818454387709050671408023653367471792005099885483800766737842691944938767649978361279376382025994536154251853944926112572332756273372341043829558207469927086542656378043543442813633162467011104125859284796699612086372512896769144519479770992189173823226374434516519762974245135219191561993055936913959585919617309064344877307223024836676696581095821943694481337515762821174203057279317902186130611827915484376096110229863889137062909847662410487624583757484412278200802904520214896408611071338542943373335663803520681648458207586453264386692195025510114872524438691563976454372229388714035913137886114677133809277594363901545222870315498952108800144999717145710677792820291115077351861955059113939966754288458086735668767322811188657282015662571895624594418890736529237253254834719467202130053612881140025832387235763215261988411143956171876164248784145096374487139601809415236817080704924585544798726845598865862473050097119751672297459851586698726098710164901500692897373421515330900510730207396829303151785930487635438678567940100007576955723640353157484884522454016707373599708280002567054442516355394739866494415926808412643300598933102659260450664458463301117329234158004884470956030877059954597841416295014990677617009805074569184432912839668462201429061230464248934180252985492916302811048623934388009850188089323754054721169626538037817048342735227919102529773404601777699932867612807071581514057672246759773326805416930542755481388701483880081588057116992392771237249814203100906144816222860694261321844843909503876844182865544497098628207169661457941789951139232996837058298421641822792369617292822976494404806712072931843542618762058210984145039774076384447633329953473718523951345992862097705835456507721080447978048097491391334075953941281344996516487069239074504883628088288300044167726916807190784161273090220954695008344818011113076229750069582892874205020077350966911881625642340747367247604331604423205591965433977902929199268579038348993883638458438452215862272134807512309396893150832476657516366322332390125480736594150448101215816240326584481085851153999762245758736073550070264181592759271551111000903682599667326228310073541522188250819917436618833758920189988479905652742005704625657415307613169418148151191458728521524463567810935116840013708175416907820574343355008677955636076101340662833013996346756699888631041148939194606035757129091902764642336168036278635286700545880712801450256118571633129199141357933032223062593139092534735037459253845144717211801201223339688327255609095643840878335366962196467997318592210840470657169228505786107155104200861405380700708842327676641758647637026770113404380950245303711972736422910903993164841814448346347500154005559223017784073639535484631824140551949744130664897004571494219158846549723940414433802162410582306128983666068845343440478807091641017241231494769256754146031980898675633891877640829509660400450957430541283925146819508152984033537617473283127125161418772313920871144450921617991414585457090045374048488873029254333761716862132374766574389786553050199501704967308876210340686174969832124796683390804190349447745517317101221818000819232568414657055597041707576252551947606198792957593954060685649176961462815005806899617558526946977001388223923685403745632086895432715321818484826229708733190893208307074767144436806910917619137576917058006250961573429968994336079387834094482829730196759044546018041031095762417699808204799933925037780897315086107877582690001596725838421784547378000239268963544400378733962756133632435843519827233879573768835399563741558765011043948171301830597895825564309500074421300040312842247187490325552128987883908337291337738477264742316548347990534359630221673248302226091416277219768526424103285274053824278761121151454877659413572608666095537040204146703640442269341696006969970861396581611875912445580346417375623858800207471844900612851687993706826019774728119193396418772090526410556796652918308557133551206814590673158562598777803160068586182946080847103801649073780542908993280002151299034885628735568495638675999495380511313428935701120822871971784346706577162715564878156913338182173274315770115484168413706868777257749101400193651718921893766183607850364806238884513475824376616864913153323189602842013437667606160715490047229322236501954557861984712933372732743323551126349460464066378388070880150632193158456461766856318884975038229241614937999708477444515555851831385599028900615924504416163290107203176619125282888120037453934506459073915669101233571112016972469072477203715359040933174121823477804763088771655927614379364798156390751779183539867611052414484800214792208591687566197080824868101114095791687259623008262993971450181155717811296253274694614936251060534052048325618167234144366485497366756280294148249626699066324888528498785542517404643675197394053403659358616195596186775017319151137117325837706568715950761052965814534713427586779795372001843083558074247627462929855919523081098896938254452803471790942320147813250082683713160962425738158066812535822929875029012125404100016099102261371578261689285582046257180063734692856280584877554157254171891075682939145227807897883766390713658882570407816043747040456490735534846419678457065536007809557697745250307168251414702917917508830519245019364753804419620690097538637597329910116710074554193910898931685195695340424807653951555688843515465754893119907608187745728917601675077532025605146331514205215844993163955064003646386375658026467138434217442805328269920644116832614985287846066422011394189950841730476412994089882781935965510119285736742794383077337401792403815607288926434386544768146583152159340812039341879259413086919123169956310787536355935529858276838692367732821390145019247031877689667761952376283784366764792520408344179968698170630300552248341109031766963386963403761253102858371306536558884100902905162365880534332526044167832538203366213733725597039820293043245487954836227429105208536010641014772611479561694875560322339392003794661995169237430961848600578759543505856348577513469622231723151095699085493868614743503426324419460225463274757327971503419903709359217641414091278979270204179222477762174561520603264553097874880439700874861783443343830753813491871538994922320276899745239632840048309921685764031751143673812437143450271697611304558564227118884353408012719585596044730455734282758910995530340747235227254748693022304314063952432094336133099137391243931923599845385861041773799830915592081295929211623727348455773739818973198415583052092753376401176794631559049742437007488340688350296962830651553405766101185422388917554758293040092933300257564878474735823805340089490554554064470253218768659214420219414880252068761439704313929073177401222065489297724871279234495042938201345760607627723035258521691306601325632318176678958590638617391163707216617487512404992291558887806051330043913250257279076363514923450269027418972517612596921549248280914526647463448307395175330225840886138774876814154385055725768180946525356070042145260359131906914096329139299212593306343622432250940878499446117601948759627683715568199383778388182992503541786007303216171433421664739313603933325652651510666151226865414169908214182610442001918919826510408002974376108130915458891939164990385584734490705635791273242114302018787451394206221984105881409471751871781335864591782161091642372228928274230362940158975745524816208079729202957255282814819960149764786696835477880064620317766715884535452807800775627533104650533851199966702809080780271853027985295107580946554480321113622509792350559568679296826654422127198453393312924922815967469451231413059217214287150385824648274608739064898324695063703636941608715039738815901107097769045559536109646917836729443667039207881163416043503959390211397906227458449632697447227145905196630736840557108507995117573005570665868524357447279189213371471015218722266615429733810746991703852041451956637841987007207429627488729538445555805432377536595336082722884239370328578834705853729853767515303289877878794101638224384601325494143711053203073375453920982017121898308099733366921698850750576880526810712647278063793915129989845911467548002668982764089737279427891670934782736404140160442543793796934358236026798042643649577506261505899074037794104632004015780186014694408701104791618455710679643571434068137416914727328260218343374016444124728088018707602903771179827033675355148583659359965802479784955385742804608159320403424578493383232386540713030511077661063058643412037792051911084570469848094413428400474370352675556880697054896252891824541277217564612200399690541199684746691840458208781131142833101078488593105416967363538663764919148037577536173038621602810716751203500078164251648640874605797017973604747289974360184483057026614517771061888880182671382045586182221240950794409091790805082232807097047503358368160670320452709290234870831803598768802625228596909969823467075757415806218982625388250933535377914707595880277602222700096786058273321816249277677560273645249015566918444714160307065498223173042970906640887573455128626356983302611115991706836420085499454093905617697700204778094532177389343604282350373427512900034533326773698319118756959888561455668523066823300101324617305722109280360625346505356371571250797913675940258728706383493017395669040581490098655222154038514546954731235403804564639534697968890308128581606671758894133325685665630507680824498633842224138518298573806067203025844066099483107536026006413916501523390785924734662916564638249492917380188192804469566562074435089524701808989939843536076885237893556183731829559203837694805100375208664329395523308077343177223105589743449084169208821979033434324211146234575393774807631920412187800608734759476696548182548923839901702787498291140495430569876093453563287766298117511544203120499338440890869459595974392507196770444647446179789979670399251407563184411768704535356290765191873368799401363442578784642802752642812201544531231067956508626095102942177652182022245708018946797813235988929314596083415649035786879355966177369669248461073372301971131585329930910266101832901877236314398487471247281512871476633777232783953402802000762909905767631080956855003315434834749636532551035508084481761334541783430481379029842541632780300601717537761374292655630859395545666077102180988108908471483601736959329288285904825085498444524611359339304718121296421485852799107547480421644102540104956641970690501770501796317647128330069969148980776831675187682203402067742631614207184030284169119957146262920018481070522029755354657776426018449828487988232942389898597253704386964043238278113504985128895925089057552206435708732617009224166421010418759760917488737706257314396860608132291253210221320255084590760529343338688622760513176102142288485029733179612894651843479572892318530870379113653931074869706605357065265866495901438469079696236779434310759609926389929939645155544897925492347604112425826445744633443859740318572124241343211423013622931789744430389762190908477692847648622754860727772925365352999717073679913464803356394360068512252368965745766673799556467134490057478336360634621677656577517523508819965953642614606582051836405692941556436776429209255409034904132839093899486727610193045553851457423817688876573903381205219099369081806165134826721496978215453174111657911380493632453824655850055641085936368236461177088722222352569591681481318207870151595868127031327589990284641989761389771969760664791943289256237234605828007593547096911184920458160631416149003638119348902856516710014456518234249645793330122873207815054612810151248454006142050791307500280687427703570418829820594029519347185262466564360418006184728976680683186928520954041345740707759027491351346464801950798787009371597886175777331612191616286193983942998392825764896423456401791392426297924066150990545838839787277875102361866263505492328976107672284906726368507251090241045343837673644494603734063201772908616798753840410189475485311013160017448571992619966761226074158294910420613656070883995440424980952605812753181631217649652677308753310302456755318062887772704836887110243267023673258967772289790419753977478901427305256834090746430936717697085152211554285424541504887678491899932559956798610723516050280874657829186908527510656259510569941095116341927896847847512342410350553929658537435814743494242136405213688105912897783585854711238854089209351134948382132539900196174730474946094103526342562300166654135966394013028811386134792714447384309174004912336466596961713052715331071889139716370096601761652839608897524039557874725511741817489231085922670533115307834102360799760087933486174890304108345315607112532692756691953093788936088289985063621788228519551066814362788402761121430536195203487984737711377470696730446859320011273467223428718888431474465460998370867575950450884636321163036487739029031684270205120727928374761066550397100147597078474612991557467105592830550840281185374261135442236964313977522584221215712031527659425785357970388529120624601547902018164665529708474310980230738674845758960698099199446593583524524871038030538036999742596801563840388829479791670827080679984014268828634214600414572432083863906051841895523417630481769652236447046589944754837012148840959607283968200471919525149704442772686082870546194333338624141362205633834306721911942409540415099851764178690056111193662575850580536800217070399346572435512005973298529333328854397179285700655123377138244924665480786380176432257397483039057745834544879284896111776541495734038399220189077805156181727071379360785230867472937770750516083434411145123984648712524209152394287588273447529110324540777254283333460465852758344531142102906885244244082875822906639126008179827748082125637304279568508319925696608985832578358202215853251739330301154157137821773815688356220286321533262596074096204736264823900659883504919786560186234463780780643198753506787198894665164384434990969935205780262623478409822207362041500955436128486953339912233890797904575401298522591843403120215786846427711066411277662197762787605466944117383596229694417536785817331942708961869376774432550902019562540677166455580312560590600830744478445683335354460210407721700080769831976508089107207829100580288285336711547204807315812548219663063844963759762161127613393572059958926559699102046619699221983755719007410786585353013674778561142911104720981664488353521895038014029876491454954433414550018674670389324598113446692115044149230479302179339905662485078093182112647539252590026996091288776292302689862969440038538013398824427536739300163044597529987092074287882658804023425306260937848079954757694604003581157320625508269221717317087490785258817286896428241804274934293548825466789947928926847301514157028520769829108864658605212763473059801803271620440362374746495566970211205638339710899085764326105000383640451922741760422068440241225589446467149895461925980736600982937819317754208262038448212952658213899643194831506119642088706994197453076970052401056786664427141443837614426948177891253364939391733586394278517325249334469116514531867087201193860117967263412504285666692153164639114153114462368626343300595157808036324867301712237429232239130270012218076235727110081910325829303895768513272214087274513038534362570525410342491394880643464817922322711735173839920572839607497836786744913286447453439254322332115879176304517609233533567976629151817163891127593581534477374520614021979864106324442044958646253605924468784819291858592380000116594038000125328220995144452305143267837677087793245832574845712815532936153504855888742181553911393107089872053517465516170583243262585054594759354549616454594176579999919973111610784854989636841623401881882258069089221206186617853560674712744804320797882908401818862386410631779695079030933276658866471091174551783605964090637502137247221243204295099903174546236448456951688243193075117523770258685533916814177625330515644713332219075399276799898710588167668933919538039365600513355590435937072457839398415153730959242292040819015979139486989479364919032884889180544346337087844723432191511348212143848654447124358142819297577077715317691190785132939555965510856947465473161304091871336456923994821780050959526855521525870325825678548158320417865809149511330754890295742720155610977205776422164698068136477472346272740034556667743606396346759429559108449869022366081751247585699727075896183870811492274202258288912736144189448499631535595861156067402976843506521542796171438108365323224870293845767321873690365614694915332314855306545948939396290303370550731438862992896093220533738631703880979241897954422744549520691673607171946581541745100224990644244859565080847586901779397128182142462959557798649672098098664504579518338060879023195361585777069405663290574988695355129520304790875413595906656660843208121612580065271855544886364538838040866392765618323810866183700718503973610847220362978957396395916466576812747505168176735021699187112209390918851508085366162126026668953003612001179730832875386613406940841454693860762181318977548818164147984675195151493092607994457388617396388732191706138553975978458905479285901842584022726123599027982836408536651675310178876992638434093449658347069769994907251188742980910023295842977415462560155027495142046308603945475925460324756937561726818771995705261045802157168135777942372474149515737849220517166161304019121040960065060267126625199276816777589372784797280516408006441710225611068663099045501644586726993522048121273630881266294971248298377824967259000659613851280666876835010316616399143507424398682995109290746987784115159460183696305934070269865447941422952658960073115660736519337709363224259857238890638656402407964110161573673502274804049817159761475047263762517003356641140068022534717556955744586014792211840623468370808156153141444545765343906956667830847672287592971518517506679398431617461520956827719861142391602956166486143904082865847217069330952187807991973017765983659925335749507114721890157387630698089988134930731435977977759523046750878557411765724506694505718520813523835238197168927457321782517705138101577039185211734675661522808095729309905988338426514290581384659237373907162116908370419071826230288007822038561591437808864317196462856139253911064528655238578997860496032824825319907362981665875452931708666699388239305061010279403778654503459470830796250635183483313583030719741363039901280068492330185594166832443702506063815470328709688358837836599367081728634286183849489219432248031131586775387103123225453531218280343847282399607420163377116378935359977900030384950220683422719041374971772054360986573569113035644860991596845744289378094248695858476674144465425605781960908516348979581256371754394589639336581240103703829980913477144930570401558468365725674772485655094492319649942667814207442542678919495019458823065983484878872461747679975243423604572347880610664239453237377205521761421728775036771939022689929807690675358416795194916642154260030751559377530809497721395998811635595406536271492228535759855766390952973166665690177554507591761109005122163195828316469397612897182048415385627486344919697930590094014299065619389501763543811334004173095477814555530380419975710088576493971090151070359240133996930798686338863712563852474114380518488303270758528714676106511288603603267372433462888350808460122963911255549255620643651741755878739840029507623097080853978026598044114192512884011943239524440960934818745724871675188806136185629036572799831900171244965203668164409253007361574454539580700846064967546806350220264187571228983656211205001826992639098856068464039473561144501088416714823131838280499574849729573796579526106978858794973579947912746577743699705315829157617108343507015104166642721334520604200890634088242309270648519725313270637155216166017473276973517893077010817896163202932308306711591950678830869436704936085742477367550610793333143668367162278971630404602455710493355939749771540572271647061466582708954268774386136463074413275155629273859293861251316781825404393845321631336937286921471975513826159745913409603543659227150321951219891883639374635532238902138995454874533817866486324336572598837236766998408599597175386770665766366377130042960634975070765101432485910911012469405749460351772101654545820576577600119529921809924257741395552835723331818399518680202502406465764372544162574725980088407692861528383665836277046523051481379493609696050302438230623598587446796586444776103577095018611168856083965851816468230822876885472893660025532588690501514574254051085778939405484160271591831839621972024390278408088000517736667433331100595121139273800054470679359448124512975065452914124243308066492544980665097570250215846285479526664415546193631623977588395208704461942226382909336450053377500868153319661401045258160277944712919048456335817883731044982027779085178557667769274191266568449458420650114190466151742994023742517172714031690164128778055494329007958939437341056534660173698816214099275672346326462760727167551231638935325498070083152947664546271170271724665112393919218676856681338415256011298416758838212693324099599645211973053004186551375239946255521516770409607747669601886405526657653390534779121360369051346863114640006619543081206402048524898162657095841140441838156943538118390779554822917212890034257646189479272728777257764367891836912297741086337447934386130086669691386724629782422511210433883543163915075104090008686645885997674688330223848825896776559693024542815069877858959529265813103062680824923451143691326036172819346457514599339435984552321739689641166637946957565069452707930455668879615425029281889681048937928355497539221255647866156253508024527566616083405935958567486142863140337025729137539336792800324855635641211846827423798172176846136043091935380304891778061823333535980621927222021932158738159806140731999292064575873843312972546373875011477181460152583528869694734505247699752159095841568179766964389506889999990522515620696660900344649176496445777742405751802059497689931219783012607674797563984665673296453947089836744837012792286709279948977842731444898789619535575698263157593374332280737016904668740523826034204693067039338414271027768546904638175680808663595332241372154639119342842312196540027674280057516882380508412278827512230011103651602839684635210803044150196917410983859667674511578908883747845889516611757413807229620902517232101474743176926769020296147577978739234400026419513910167173225345704909981684718566927579094617715510500438721598418022347937014574065584042964061082247938829313130197061902877770323514473759949345196989421335750689272797236888612568019252838031130770032061234947688498049405107274170918286407844261274658946042172624943858978509122041552731694651432407260298627065909260070834261109759952375928806294886991112792505712523543558828598008111927813456068178784787993330229660427958692292921486431599515436474106897422317307216358498148008749701009220171732729812049311899731725207603315856187012660751272781407831763546607664932954412268527706472307346717757225574519038655262153674101234399577640272740578199618081944756677206620782434239275491988921039622359455944054810200121125541595737008166153190900059036050761266044479279012237750393031261071852182799986591789507459511024753353776738457617150721811241738607945873967361071749062609049592541162332147941581925113163364792254381877430715273092356287128197553604902332788156502446280094896045704742041735315046435789858406336569376831593756576923219254784994457740177445261904759238359294450663321198676209758839857559605005709556639174989234656766061553077371343178876645667100404187304261209803938914381636283838593972034369953361602811026139891434372929860931812390643110586875626150759822804976860137724948067841447177780823971110039401808824580301142353351173157833900825273786384579996436400454491264704798497184296940073355512979123492316159503751845960006120278213703654649786248076256750456791714679644909580004455652195966873175119617447577787101122874689670753830538763491854388562811273364156750831843764703454711194718946914557794877416215484975557772646318179756662920138610760291170718824896916350987342276347048293330302603932852393668743553589432743528468425802059859171169512973246333708913692850747611144707032514230231791964526693509062829424183580826312997339645507001793560119499219341386271800740095168738692672164940299262579752934726294526922034315704133850986727657036030005852091688667869160100192381889130032298625291757324183063739440605392759902885907463249023768128275134495846333944396098910457596607211564802166948609717065684145245651754047725243721790617330130152311462020404617239820241771862965814845534209831531192123297927992845352083491584847642589785817131500757825421485827546136568212459358457074656480125619582530388485231294764630710702203179696406251896694099436666983804005536014766998484052709308986996751542185375158292688292592853910217164169873021360531612408427277457081040714884372856996759233994804184324222209557872251450550115899249142843904054177284293245123070016258077726156820684678188562546088634567485811414446319904620469553110507595829693800163969892627798495038153868826570543627312871344245567842183710763764186494451400138235616763157116005986720241791195206543321162810969115696748738210938747067075821850139645949394438534883318254949415190563052873205794974954410478218430660645550076581060513824138686426344744162822710414408015348363109760962657279975621863759367373767787396822311014546548697032771635202204075929686653102101013990727558023214854671227052545888483790058313391976475423590722773176762641152268350587835594215802742308299925142093320357556267834451895720176911345182317267669461541250237623037913719531560532190672884248111939414617848797386232706917247262134491571483468986081538293924671579013516420112395282491568084797104168046941246837935666708882419100558143781640256381638276091096835629419967414778546250166773075706760325360218172320273238112309817692715706369934438171491758716069198733905831551457342807844562647641793112861289954154680162960819279663522143827373692626827370574412654151408003312374727463056474840574287352826382172858622046491074893670787250095872915379449017466169349611414260462040565452542954144891852925617177148474815108085311153399820890300032299961850041412151479163871592717021552924983867551645084643630242722917146090008138736551969785588797745362256466732357589388632096234731964873126144189452510477049375703774551053969049396977755819496101913166643875583130447495894149054227229380572733667487521384304737913509585552132880565771607861217043580900404087627508139796741213180625258321830703709927417330638009956865710537221216556211621658682728028150699531410816080729104108827998379237595450173184557888523321491005522750012003576100495223519759529429583632824606236974370845706289552255995140933951416616822970459259942894374484024177871005750984092393269059338488047995317704747818364919898350559304648271944440220796489625836505969912598253044719157787977515803716365486070787838329379675669392394639105831700713559750160346645123078678889075241588418629419723675380381582862206482010344705398214877969528853330497730412168552252301424305347961179064729305452821048295641775194307163899780472182583374754694659147341449173990369188850915233199639292654324662248284098422525717611170556401114728201078131037544398644902342283609069807061384292647576295406257821902848191343538953198396242098954289612141514217018535611949711287770429862748616201102858768278369407459954609200508599093606188329823125576960292701991162748733588291229491488155823026915865836393710509619115843451101033025282021153116181308866931687074735596984636604723555052639361552699458825573372762030921336011374968960619377063317871893601458423915660564401709106726121228051265548936827549862279527947525316941932432442033322270192077714832315537477786068641122147062908339321831447378925637819356195139784338862879762015172900570490048669982796836435027656418114505369196784338691374007681618528467725040360432294442747605041337393026149651764851316704606549955206779781185468787134106401524628761776767416308536436812408651948079841477535855077867743889417617194881715005151401399268377937637754935436839118626246895831147993157690367341070692599990404836659295282328447896050096649584175836013378672154461650320786687704698189282638237526881291846648584493298847856037629620768384219542358413690865305694241080189893669910055595638503369062156432063748384927438026341701219535224999676964507916469128728021556596121024855604789584468382968733373342096373763020829411555155065025799667523928164876528055733253571385462718688271267829654380185112514066768078962701653553360889716127705178393632371941428478765157416789670621597522829223954924386536052316193889764134461627188413195917757734250300109368091132862485987356717799155099705228070937349925432839934895690937977986817085426923678245883440314544876820889037811490532073508358511178061658466559220614715885951430142651202641574569526936268687204488115484615880589505411098586627209651529221836490598749505005328051138796354667536349815387047835307852571534359571442607367613842287208732634834327499608151354288716195225240355570167090656292517636918878961905834143649712032311902319600724045809262199308258573324064212168945429022240881283501969076244994521464746731879411102962696471802768493115843028772654644552075131346732242952710148644693300144444067801278433850406707167573189066624075166510689446718473941604007554082348123109833955223832639321836895968981674436021149872428782195854719331989137547256394448797080896963402339863870965790040039968887858584671487790130463943423054804057235783664684757722287607779154975058546113163033210476311179298839333369786012802013057902744316522478722040535616768660464972958461367286657194699094322088794893290883387051238606699594398205194751435805356888756601328781309098559709485944479624723626449996873417744823368597179700587682291417752411094375883012875880519893654158411431750654570025786289030432636011426411182962417872108124095229867607328061124386679774265957889944845473328189545916696333208611520743615410031162698717385852651357661507402325656811731296902816605042822424014573291428056990062185546997915120753084653871734882961829623279519833554346072637458652132196429310081048435366163668309667785495633995594584817852604119103030832290220222513193704502962969843194578727758941683547425334795100660771410340318498314939279051598171966078766651134121766049033531431199159623300167732934729345673254343216969682116135550764692199611644972866012081416191541091754789579351931891194264682380824259799148341203007774129670067753278787561348628025974668250750749726918169025332762578338664441327086161253584814487737120531368452712741091859640484757874723622132950711869538323035574991747204017149596631199206084645355784528392302846304937682951299228031823120113245033121856974238241278663970602882183403326747534073878819507585269172593701752453456048457560254010308862167036537085522671930307385464663024823969594402741924613087921909621954105422385292190974849394696003578052190852878503721800682783412652763084242929644330783592796097474682592594648946025918395861798592991431050981847409819219557875468180051183159374635639118594347097148987921957056732912372742071042256939484676371659492707650728907668152060752104616369012496970038672461831424028728712004039756731817505638885199605527657525072509141939173699711545331271011120591451156845600408987089984871538785928715149440536589406456473276288934400486840264432078075217131230178992256942510661389028162644915017647976160539600544360943579443076873945061747789683927265679053011418506433249624340730915143748976326033048725259009279765587271366875678964600760707566959144728225310945679696020096984693198430303831656064863436126082764326440836777916880306808058552110147518188862132669045379737761235360341518769309729955015305757616455646356020797374111058376929042601940879779583424312627985297471447797181170897474350399793552683579513803083493548066744161293327148918471975373764589669365201723005793252667757081788510739136711556234228954220313150868292864088555543324720901590353824503511115748838057891546499924378457378790174779732061815804853407094933768599252461190218870685276546617636069389297113007048591508907690721501676802172926635797224388092851292113653541127766554520735225383757067563078630419870055539555331829955439540758344829019705810915850405840316339508867312199139505365466801913388446143599541723104361326394588128200677742729331478954671162212447902516255836942555401606411371193601156812480613227354025705335510382475288847040844703666343723957968984405981942346677347009435188269688621854905129137870241857658297614860819621614805919009238304187462814958801877870580043972812654128280672732781754246986521100187336176314226853780436086900760608389375290159570147634399191613114271395635717205395327555261729538149328981458715210635213466247107798598013093155954697962320546032468199295043130223014548475004493847084082744358670374886249609621262427940368012677294985900113992317705840800291016941742951471966792500947068150634980743663320091534419015448469747713822134390322720784483501836078444324911859178675034017234054547570206876481836539386044646994549427007379335875626636491932432790948048049481302765729442877819436647091440572491100869887105663284902107424631751197832379308775472904098483331125936133728684736550597873766705309230035315988754383476690974416122540880894143331909459029541397589340839068584241928265068204015012244976981479456211483576201779966834858166909575842698137865747955454970350790681189937864044533569051648147728759871256444177765465231049744534034407616108098089134349614225431571650415553634613112686417951301482730903570251737923825206013802400284099016991380576596470739679815677429830703899005490531315882519688627425655665195638971365629930720301925358825239575436835019016119924580163181661793263487395821728234965129390524897970030567681785646990826318373431800875999611005504686697440351313095723141693269736641095007197489344873437968812459376641509598101712708528202647404970291876198806246856151170398349096036400966885798018523575285824057082144681936510841561583960459253176438378664461345318241650419370713824253175701116828383233689135865193493742106503421023091284304720703609255389559599269142971743784796825330587331792914362016740238261214924073938655443360433245600443941565329164780241831443141947663349240828091606828520596992670205740004151277324788905548068440407716209714576565397651675710547767116159460823332786032271191616528259927713723514593400314114670641722742269811739008980442710859661546208003685737885968076077983444619504314805647761928933836940604745803279642907960326895546146072911014553074088971125535238592534395792727170770376318183669281518782079529412495124053346724390793198042547426357709624743320111960111324607887809034941694401619708702917109068384171459417074937619169530890236944438014258824628192500822532877349766057284194284516699096348143402476812523332791454393699366751032501614857576673624682437001439481802633353635169223072610075564317799633434340450879328904338672720305145972885271059122317458955375858094587129799319114805861211015984725375712799966113221338918689928071965250173232197682002394889250041930814199686932318084462399651383415129591598929163620169310888117554742570253402519550216907915601736175078852759657665817388719080808740968608935127141125755494773027869118035391122844166158263144021512235731299843447868333705230440022796986408115452609192237023868372049645994792550569235653286740718040363760538940535625799063167368933440006601038559937647449954107227073863736520835542043182687660154552566042155760143925732385477461899150714376474171807366920433207074120910154843867198835221488193783147090271145757815469311871120078010306640986881103057853265749253567361383935158762881701228715170872603599478672011821197844927469037475890454635648385062366754194195150357810251734060946393773007672579391833103264020205468101931764126132191029214645007055131625797044977225253403869426129024553500585134068242621536779780241712712362208964467601898748130432605164140625281009208866705532025510600897532739657168461523551062967903970767311264297126187890052505255598124355016547040722019716578601617777637515198661890163773627761297982252240468201282122933682370696695375910820733605066154909296442619196374880950919753865814502478491228087745331810636354521061122380873412617362152757997484949355109468302645201641213722978252331234778368019348245356984882526804257855469994965867256277666896592300374692021134839437010423194341235287830037560872482321806997054060072685170426554350525977942860828979087813106680602980022036862471817847690710556258178390716230774102530155816657793157518817998959004135833783081740441234474941974117513543241384106427843151607029341873424190365742282683370684442318173272382395247283687174506955049698947110708613215884289168078303709605810371006428328144625619693359455427729014172267505160484835276143780848833286730952230503636894557181449394499557061413054113733894999810093141070227590800409950361816524937604963686734260783939765721595232546230816050959383880415191409096856071536305536910088896304176824277747535557288313431100188399414240411187118727495544241656407558950390673562446171703354471955941636640180955192591748970596938601620801169500206507097159773746822583614999690153701360935271483851751886667976317865490490970105794637281460483526976410270065450363917951470897390494688355121202979711941125121467707671739347575404735471426534859324125915366162876336693545667019120851558329214102362662287327082804152653936993834785336515948167653324000384848560794128467458685579256483398214151128905029972348898385699131535668884780685857250754074024173097658897730637889832063980274056296699049313709429241226993712260119359009821066181269999488096886304843921400381647003792483393410694049144884219588676794654242966601632417799873296381279246579898756799853319013119440578319816824915742189338984804614161721374343821731836708418793905014244517960141964052783205289992067058656519892349025969117657670493773975439658535306734133170440356651346356033824549234029650199637985931370708996846458026352700948080360260040441824888399021559083642799020338903044483195983052435850309694421642692452395556447364812314390196816632005527176697594143550380985102588069843919126698172916371174161796541610071718146308147343921591971754886767567900394563681193921161245225527785820784070088430644483294046955276500950969836460503319218232717892090857541945708989637640897267737179676802499220549296882470020776126864298090548264557920411046943140665084462719386083868993544805827909055262970874677056228868672210387302936681622592212286883897028562847714150705188091409568069458505419819377470848646972140472277814080285135733701941057193479960849100463538626913091721293149995859275226380634798146588613714966462504614546046975635902299927835087371128936720327962313759210910433283603402967080349828910678692864311706398711719781878606235139464492300096449115446019345185166377438240206291787957382055787267480073139394911871549199817052990110659216900598088360648581644150810253318340301649242933338743675297221882316452408747656665320943137374878762500606481829296898540588567416212157774778849826041312690777800717243490986764308239659915563911943578960240719749719241287701862642821282691567521754363374673430535355788385046178873967220238113679846869889767175665928904003491919095930491069334781510613503396059386298482609457489545563085665404996729694895236016631955464093252382549590121329375746234392289529279484874650846590273023681348516430871534213955928959584495118115150983372933967268696703442282313136175579517116154854164296418837113314990630164426856983510242687805348804932734773259062651551066904971522605405698418267314097232176551149019189288622883532707804107621829013167914736091296432689050285939124895718493575266121251293830371142436514031462846068192902184400578059197902374631439486897752712263558379815356318601670791781083964163224731465800520432378698432114124202374419159275136534663630173915038317383625187698269322775576539103379347644955339454124820237228618229594204684040042023795301741271330906114440653548983854551756380294296876120031144459647214856094990238688602485200570534844216023898831649587495023379038925708717562573684715281211187389173387701422190481721428132109840197384475709585926993779958299682300805534453192277820851544062690386148385363819312240363410817960884526612247439265715788614514830152807502854494221197492177993977319680136965962415003322067314350107600095461828702083578371697581654703568851835450697946817487952442782893389153966915075143718429078575491217483845033753668129296988757894489217558079703057967094822938725353623583910484580423981547830358626802140809704851717274220570375499908027429926135979636349215722492072992252474688509786870227287985129580487322533310558668545250293371940940269511207260550986978309798289346086802841164476549583170936968363081217286966522667318501219541591927449234181172616464283412211183053135463318143107753839062933939630450853138306202716699990086130079512338513880183476219071151927692260486893311012873031153151864285527783619113092238659291605927222140112691010665351222705556236057834283178282878731727326045212378546726959161798091387148649427609842192563340776293200898962778115254778298480697486102240521892374835985103165775076093150058352459028115716767475226605743454612613172128019523392401414284333059853687308069310230193093398531239017372548574823794016019040476317008677467273350421833305256562405718036581242983698738101000231321262912167884000520277194942480258126499502723153897855427156986732357837689873708153074252594281845094077203255510398541410113871072969143077357904419224320936791608332514015231190176335177964186723541873223461709688930589493697245478426055237971102057210792545377493402574914336650353209569457686817781788879957629360598530099544817218977988081415263148456914381306695296545433137574835178251262822678085789788918126914732307773871271468352439911681356934883010912778317788606876255664003121164007077558067894616209005598057243586797298028689488848165103703001918754941366471340724114709247326878222452417141556455059626274489326171623437682891951454928997960908577374207394698000191570146002788037864941841769645505015949594189060069996260100832448592842277514556236149048201425194844257717882824270202328134460490473911738662253522080816568853768650352096934390499371712818694060527046907173327145643952559774036395772807329404393284019103492915635616959222444687694474545293481331789356737660469310776540976640576935265192100318563345068914264419921655445515100300035879305222328800526456580091959838559784483316897525510970152125731836435043502297570240205397140613509741413280039259611397625982683346469122300931936991361465579013832253819212400875069196552953702654143243157289495189570929091327275271989817767624962544743305242916150066389636819725749778166657128867875356818704778447317304993750913986865957627540992463523669162539372599244775491542968028063985545350128060204472779404892264826685729498159055813172731742304784646766459817527338102343902317707494877583697918054913481346007747899298995592002114495212727325024505223369265387970327212709836057136771268336289242110763670271359212702081505251958708867866512817310337758746504098260237984010269117421661732516507735463614150829802436292898705563144616862540480712074552530585928624375417710091860804007644853734400637086430287288595888285985742619208194494706130017631884841016829458558526774161891465483092526479567571569626249678739223005463374542008169709147933939696705424347252419552484617936216654218321126080342151234438486398418654433078373923577803098983121019570261012580099135470931525959399731518505420330719877341837074003285689102096705651162181096519361018128420237573060886858907066012851863211804844435856129320241593271002637810765922885411635924375745514980083623375114918792954235500962955939484403446388543006103836867047230147967168335241532750535599806695220603801623493468221217118079624321201388652748804583472461851840080824744415393840301454357878595047158772263238402677905606803084787233453198124313648560806101067346540120051594632712104355409839155944500343301345554026418792537815731442785461577259994703421505924538356707367595874056186672137427574233412782062186710142002887422067806432398692514894780205865282898047493582759507894016916230243198488902233111828049000704677638821710460218785750780354815602972905672201197564650359408990154218073111501930255571235292406707338214543669296089250040111676725417762582980004852343117799728609039179081183495304472397647964227658086580132064594236870095006557967150928639265191530906131735546077500108320396229756994195660294348903850026481419387846973773832246383239676015300556299706576550384814001458025280691524210911071926260203300206028858794164329190833935559946403317153294708763195358155569511199697538953979018302821750318816868532802283205098387475679879777548454778322623327348561160884926415747619040551876775716597298347068315142614213987104504757929367574650214903619974992254134415149408386067800758033391441429576018531598193250418167966839275810432770479800527793567094297650337512027739817250216593959817195824787773112570501864567025540103953311543366022272403554294747182149641602108405965820029792379291430020497754200546172382257183082271481498026280295314613296819485500166904358943025816781678727504077729350835405673521137864815976568249658207020686578084306215786972798168971533706307849661926298622588148382523595650901237819809393644913918132413719287617308093921830919046216971772759839417874518467225966199353408804342684060489276825775684415325657239235917927370022295155862580769661589513675714392631502921514196291487834906762643469872387747193877426088762410508080624475765624637058860103805861374586204847733364183882127723225196107379557173578107140543792305488700427131243922027313055606814262226184469262926400038472678345604637335297764318540368351390673082185055880844425439574088981872883355911765261659642564142282011385433268224417731067574494575190702044613572857256205193222919580077824391892318743159174613200110433132474084816776588553149982626974500692755364940914111838445424736504825254369900822515050434373649471818567965894981319730511738928462264423323971149415821918711813388456469538713949132808381762010234026723321128443870996076637154894524240436471207126387554751909543342108475170143003739034855862856275972323677833273697684559431859175633670928570819627894352028892022943881778575440993015820296409901267116616888028719832367847993765317177925043015207704541093861654895248828344798866145641748366077505019163259907531338840883007380503275879935980300059746050350666377985237373415794584469589184773506815043138029972742168631500666516444576292255536582654681417165730637019894783768331650548976122110004418321553367618166094391920917270987013266606024529801062779652074249428727190413947568448910420955780047913510502538025704567968551547785875865235485011180018530086730518442112289809896180964477344434424505922223355980490731954559871664156486792374301468498211527586162002301396989203913193854010297014669829690876851825621303609732249159304066586010734369750759232538068261272759943499057230288292797774963388572960562539503990357171345556826234828653087071072609760283918219599823578817550568064540806139100088589134239444817157937662148746257590812603659374384371201838458448622078330627453337875457735377934961475604841278117733411041937225706042071223167670542830838599409045365183158267735367890835010875724962320382563600138029174337411624179683912675228496222563054641936025491046928537644881921693829017938061312623675902521506341839751414715205927833440016676000594130395386596097260169171655037156937413841517360606858275007721022533719063738801485508256865607280143438842574292440723239067160197106107162889934472234067920550478794426089680931315074555831975055610049183288692725623259646652849679417833514285438927293225325501362013731420212428460840600901141124172133694660518041893613020326696407827406037989603741786223987941434311690496690908832174842913751517987172748038153915126689016256532750122735687920634825420124693431713197323598263236763549755917542344498404598588367797145627010074565595371017680607817273564853400631201358682322087050507679720093846599020838510354375448147116400402503037176010347956450745731843123144539458230313140637295826288557621763881569959792804276879780893918028556397571132270687091392738022626348485177337960878505308498089390222650138264231985801390087981167565425195059950365675192689717672627060529149357723293988787566133492648636374301543627354838713107150779357871599054589429515949515010748780321153699227206776123870671802920881276699443533022998392901679211013521212223075005955203490602330583604230232890281271509717507738160863263349877595409257292487837027082496306311506219372037815360473891582465591797455971442533663523709690190853948513548763786259150319082495714959173738802763838291319133412150857498218145641832942566191477195654531049380481284782100804098003305916363795080395721549038456842428162156775680635028556296584325565203020540308027308392072014454248832098824136182775331830897642773825531428941552685820677333939166164503000805013165547095790561683960255940448654493593274288083320945025112749054980254691741742089383960679990378473104938437102626336186275996383721096990339015162769947226530780815845897585392562240602078490161049244526053470269210741013889705333141910245194781060358282011190981618035924303000876144304684616671499915982991242947143261669450623324808270357811606313021634371330739032460763658079759362033332977386662815757101213491173515789628718138508276813528246938740730937153162817850153216667743473884789325407569933054769942779043163171048735730747337763137169936203887078513755441357592894788592077434271449751458094634902289494042785665512700884761248152639156003696440536394266838658890398482299392469313519785428021325800542999619980106785226442997805093214344218789702718327743588050589764007810066576927086854732391411972650676092806993694009941755444705403900809382581607276606970664920566479142505752853351523880163897866031754200312926390377207258094984027215561381322342895351182347016303126605679156140003449422501300454579471151231176822340360501360295883271233812059179990351105264640803033037678297674833306136088961196709768021570669344659575876324178565182350012449430612331703996558178282083972814113462450084056992557777009590963702172713620037333789234692853838761458999049819602292172004373222548073533401636886016533930838507498034072481585304444644591821866698147356608266852784307087115516127551625839035432095948807046209516802693603444933667725783200761611153413797940073885276526878542518155354640209465434196609283698412421240942767242161560765280563078330034769391894695314782910075816590261097883155177451089541667948529241557586090393767630201608352735895182542147557104238901375186435993548000948794851560210675396746217745082497518216138605319061451302080504000853860195807422021951992557875169154996824731260827508746519124156095028702841343111596540218793662518866462509024308418550962609775801745799300167236869198695178074766319221901394711593489486800631716407295675208136843209914333448392509284607867953725432137139031635939834364954783392104705025863688187320929595225359416815211906996478692911162584474526097649333249063908578216798640755055682668678234131474810317250494224144615230769964861628997203584053785970674967403063301067207875727645918867580292672509201436032678044155219727284048648782544762751217411159954778097221520626552445065025506424468729377248045234058842485521188984091418420580103868506295691667794185235492987241011710849554316622325127095445276358956341907169638205028956143658970974134076652778046296009026553777249354552885838832928428764128158231831586909706962349229648644011388973122012397302673585859042294665185783550942511846389724327009915822608072809050727412026977673946983195617208992820955554599934358282661926082712604577419515838149993650155311688389864397902959145605385323402483796973753340754123480158530080040097275813206693393811897579501586443348626769139894581548972662678863845585156832192247287385083616643360613430254938962672038674598626198802818445891044378635869550420608368133979951620451486401464818488279810195191712538038423545924131700903242741392664212502013344625553339851415957367754164591410450557577883173818444056869967756793789680761644096884499181303398819485805197280201634949165965300665820893651949240482695279925931612446840763294524831339961652190454743443834524532516369497775834179100236818874078881214469460975812173824847577526714568744805796848459956378797234341740852183126789931388782267165577203072508186444023207265665387654242338999621702782440591569641170893107801379489240336671789765694931553468734064475105263779853512657765657173277677585950752186176323903931655856026897632734670042707670650503566112880375159806012849452628559430972317736361033815445225441173092776309728937760653504323028505872844474524336348972404949130025803181321948688353343563618833021320747422435246991154440557274976914853805566669381066097299518657262030147587934444667004718375974237891084851142994693165126259741549015839887145439070722235525024807072283399040214430133114586500413567956553659680313779093592036673578972102730318699351976594960394005635958931010885513616069236557894716863281674740335816094168322063963979302903847740469934983425498364951715771350928371432340943415635155610039701316219477356179476445461172008530157221359406677724290348874960374060322463261990715594856289623742999252150485466254569872714875212748318429101558305470509393715679794060990802479420346502325134682228363007228441014506791626457451910207324944639933689034836619521783797804248508108261285138177047107059847838022449368423775585699485105506137430101263311177028574464804629466881068072203884946711284086234345823200898651392856464467119040269300350286779844096854349250919967694025498973738547378859378322974909884478285687234906806950553148082296335998314991197007519452694278405681206251574454759859476818112343490683852489561513868715491207693044427724297267146176741447688959181120872304122128501463676999746743394397131681554071212536627557509979341775783500927815389191644763220608743231798830928067653597628303449390753362152017617946119961871249772984037927831384717159813104085927520154258115371281256922729280062164574290014285926244195256139065725314456303508080426199195102646679276077306521121916763284108348189357485075971393007079239226577173158353129494543879557476530841315821922164062175917995354063794346121116160113744905941315906872188952726675731270019006187672609253996829000407458869386194401157924286380314773424435889539497036747980608885109337016701418778864926485265704228892816727726488614672086987991378547174019502122656070330639437893678853634892389429804383975928099191145132174222753149254671609601446900040550669843830996200874896193953997211960893084126157801256455034902998371307773641921512847934537770568208586146439861871293998938582168522282405888146775039271409357934289344827087634185001529816585285570270895645002253725786423869161940785129930915234621828634008115878459902560229782028613044312185953999061886736352626277467804571203161593192562863735433615880683551566633405280505757628094733655693007414434539522116294144661784785029152952088439629336156572609064628771830299276866192069647758239740859683921444178744485461049316961032944373509663007495513169172426699997887246354696460935370494907738066966997553488140989652612373400665610805743720195203352206298410932078363648427749407928435151626179474597949431612435030326087488698409364419810875103292718433403655101644220759835084380708475210856821559448859837197233047983743074899926155758375243748313123346905391981793561713826608800180760976227941373485349670144157277002764440771581120613038938454566693662731028859190602938685655924895160867913217179290738440890884926444441480287377327572137006288460044126959247137242470390857863584268729040490246807847844678032317024891146611234481903290599660303028991899300492174997986149820862276391213465415217895733215940673035009390925924662477213698992777361812249852093056122169090927621796697642187000993266407238294258338896378852433713475792593427664206585030294874565165275257131360750942560717071957359158688427865174415097729283006727394250277557186270082857031291702068537422691562996327338947648476591643705619598438796471669834953707266118769499289898281662081417390255881017588697549634652103229147134604057784496954589312848351413944546699791903061498820139830546626030092880137867793810435935854085449638843542559409834774048505256544472301018374143920321452989736824484026078539781861176074192905377990999448063436032706933703278685747692042668096250028504298929294955069634012811636705568595114277835855537194798649774978260981605976813347371470340233361299698857703194285016922354062537738421916404640850023939324530815551302204996367527307063041418799462504997424197421151639867584716583962766820602372285627265772492789026983503625038961560820597271542846437168625047651775617039278108047587735860177309131101440061758711123281490348049811110248079722901668102425254059926589315493235928890464618027668898096535492459006434964122711912144892652724641145672287157616933621075993335911217803019798246624043594880990518352176047033829069342670083766534390946848980522798994944412367284208008598403270816075001024955776711100925833001843796714627459083964765750309156710227569867149783347453777966389600489598011097015666833147857149458739267655554622313258059705605517437235580352778780679767371825257052034564103651775835495484132943946652010329997333847361860927271299454818300682729433346082178708942830072296546784905330037048919776633082301198378787849185797158280227485332666026213846841129158044761894082661987348305845143916765171145427412496901421970055667292620013794971582160546601360971336122895760105982292541010484779382249984935221061838945085615890942995775116596520424085263262389372677973136482532996657583265154792998473372387857936542284973578189589856656065735312476978790981697740062883806712985259337486378137826897756820144003291445556131060580905762485206678139263496207188574581460979425291122298897588880807235242481215984691518508607209220899431522272252376221398069420009388649774034374610156725110927248541967699819475655048137140928289197082524697194613956547213733889139727973204438690659226015072311980022449631406066327363648298830085947031672671150922520449627944804856359617719176551909801322119243103769515100225273108898859332747264715007259108084030567166870184779436778846192248602380823255141596743428830022439321392571113792332464408601606450281883612092703771332234395134187490339977751099229511195296821220290043777175132415973782046912956018397318342150253057429152875558271036810972579377086251805092859347125928748021926646411134517685759106306812745046228181518071567373780035530910641684775643593844471191672409266146554209613597314983546681415388864421338171737951939899102063336282794869270078062847531206982467366272839271554813534482434127848294914113174843463237918042948337993207621561987366407957125003447723479696705885763150702882251241411299773675134304469967758102428231549676983682202757485852466366225987100568040938420104627458121084178810122189311897634178168296564341578392807208651310195538602289442058112110147607591738917947180424537361112951824914726431220360953320671246536264003112518225348383966683114752937446259182976182504307687030816474301331823432854380077347386650942157858477549630242163208316454950485991365653920940204326484175841320874825598927760987633380218242812980389400958431635153842458921072286450636769228735268308821545974135410105314284984638228114861341598156141275954408828581296701289794397294906014594482061858544257298697378095430249624487063152281191738346399446400907321972574905958760762199779051722819497840216211492675258301230713762308087003665167738831858568203014048188806227172298676469755753308392100271102535720114804510020440525902908046541010309474091663384582761279280839354754454777327881149538182894960524432563645505741281201968928342842896968479004655415849492050453821567512627917739102985944048370857697899080915819354973362291662141660291204107249351884647536008797833828929528257146859170797264451524655086293422206668592565269660535771412767097789853518591386839134032149608482897506251482057075612437168530889388705362628508343125812118394409861130317983631435218936981865887466645074571248990234799759872692225882288388117960285421862661129248409502091786796197222175224715696864929873607231972659569481253188819572610766237057000688599893085269095645318286839379701353722250060675427426600272463159622980607633160613588789471822590321750527503193993385821372569239687886632971022544948763026838535609535410034176021408382514890168269044493393376466228873227605510147236109369667429293320067469454923497253666336873848157169036249606894125855635595934658087514894319430916123946721704460625565426444503439677332396893601222295121208137539196546917720998926133645927821014885960099390949653955624422413058817995763567438677846667851964195800735161597272529850467309382886676983986631625052200253757870534514769717818615462504104148062732815179519395792154765523502897893530405854257883901668589182070323582159471552787199623128663658602807984252662320515203929315692719480394328354423038808157625130029931817674696715270531626396168596852342290839956548216378687992536236574480081565922738646685204938049590426153429108755276083384106520102404265041090989286064176058455185314508326801151761493491326093740975957174769508998583551887348727368963335582962858019169705937568242799444992574711688496526339697395127221856734319153771145224389321112486059546689084106178116928373413718093412418911078279734987585387457309960859862913676695392127261336756088914760989840015923362563310778668939011383004000350044901351527741469159902193363203504817414347410589194801756510412040979517325818294052073734424784640448094411489124305427654063704211531671399173383852505233310158312559471619346476405751637529344672350493311401891750771637857535305456172647042796564917274089604348991452316639516824675314590538204742432860284282804614120230583081982419720462582486332579081432936616541023924530932545172793263313296739722151480901031511547014238156115551790353685147964518816682684461513476002708103510381429085416635280600032912523211239940808860868652215398034675843322903748846433195429296294958863110517237309746661481739760547565049129509347440358029931451041145344037852553325332092527608364443379352258956660856307709635765435878142703108218867954769987247387317910976917969697362545407782244164974427351099227880100090088857906147045109993386826814837117890721028978940856293923299239919888180873520681806216673008093084708947921178250978219665040535728197520843875219448590434974181389950288871096779451594898621100016044920388320502564016680844967100772158865727008657639216940736505063371987801294725754198547594989262411558813876183435724352264419015088484829262693717931986380886682479649329435548285615178986005702747101428105321093991724060061812810605307967963912371656348507915061878397667408226368746410417232942847736785944612947005611367912451035772820939167413174061977110228674960515186712191838650390914094136004959907327288037859457912119513396662228776678953432460969514208431933530366926042556031895456551352727455290653516171875095475727880977272820017148540757902343489596820977818698154599309833745214718792594426967959213705385603301625985350589428055433341331275339529662975424684482839447540270227915382164826881145671470650393898372976761464229740515153407693475296385116098895070043049935813354172687228788724533644518456915196381099312346204669717369187542918782112073069544707205910099465148659245259894130958385847172160047789570706139758905247215091348359010239803785172155662830255968081401051396863370736422521500129179616122209362574947866497738040505065076729744842973670959726683757122069609167051916190799988157764159887180514658024391623092137125134303260381894803963388409730713724524463876301594171856343813272251820443092358820092105795558242877503562518089980920653230975636106848643842813156987170253502502618827933471509828785575104758361252739890138547432359174382521398165488057090031152940925157367744160261963040190199395522512212541570828430068729250544168894219402159499830971860644764762606393564457928148441005581215973800415469246479351925421868938360711155544832777815468945161905429103416482291740352445025046862174838250176070223423474339897871751356307009962827864137094110039786281124958689125223851445982821656602855340644551405271830040703398641821153050336341922674674797313468177409141313246441929669099834377220475969213914955163431022546994912157386144983946750805630891239540934443405424159932180819308885421254486069244327937497430725210361042848681147054436114480627452679187552752664664734585764592136218116967875773799485286470547504666379064219435274028010979928979633010639838555429864873124117005663806375989802013879979162002271729057498711943039163559553013678487346238024108230593085982857395621606362773407708572383659329715214981422552593453303832090905648359302019994616127095213858956106775250822404695844169798242025772578506245281472969655610434450800846892375666140406007597507445992102547760848859552952187861238179904469929150580891787146701840487289137013949871267484880667889405320243186815122224457375380888612045771689030926113012875088697242327293848813468021352850588346238602334627293254895454244650997106205314837298396176701212526003653866282036537166176643492250754760967336782165987795223147674129451547706683779014641156923372273325527531066878838100601609701401869681736882275825059875252233337750943784623012709162465372348979045153910252451551257564118027472857728223860818813239696603293095891772948836802087917502783796515025660075109098313996695232081019548624694633359912737626953998214090072204179267920577930997027574245370954907753714589983501817731632605505379964095750254065556510603227589550324700364339755293153941558096366313205419291504665849122159945266847691210789048228764907865685318526994140707971261254371801685208314434757141871743444583278589523626178824357118876557463314077635026217837039569690728555088009067334648296035557876945560354468769147349115546873405899791096632309603529825052200308727224355027068973077669127400848932532512320981461918008853352877763108157804387245721396979425187832829527492806352587662872581268186089407779354186457360777482607890428064215102680244505804570684932722660899306950792768197129315861067380063722696723449510589734404484040797968506702968169689152816831096841933551603357118537791375864083213045679965756812716924047227973571506629232409809834981364670071726515382165454691980630051545088655595388364495098090023669356306221287451271645007960116761359236000633106977416947722942447789591896647200938601989591318864923735367951000263516003163502226695445564450990333125106758148666793261824822812210251474813285069322460466022683418334601933660525522233547590487755479359863227216607027949101738211907475561520611041177041642675399029570257522925394543919029167352538048556364487633356158173184824732793042305636941790932298352804717536826233429902836646092250952701907094749675544581041870207898074214521048810552701329154002657770508612819765410489764508026573156471175606673269602260496917451580578035296224261152064316913236595874399973241046525003802603479858093509296993694773376960005139833732956354925909394021565644517257485700530830851905308567878460521250408426314237546214328448192103319266393497692001573698987526329006847211519272138747038307924465275112284741178448747437110872717372163118621036491907141449402119897187864991396305636685040940390423182102968062385885002233641629929137807860632651119226157462590211043963953649331269084180395942967576751804922603194578680101160828282954496325257922105333038107945659013577142305244043072257086154723647689977318980024559712560915109353757048629125458759979141789717568490518229622527101005882876516559671945471943759046993241573264229631286794245040308059977309506925804498445602876180806871403831482344756183229499918335628463553920833781744984503641347825817109657279250296714564532818351107842441607005176884336620713188258312085758561108383835102580814811369435488925380408448651128207980027371042085882267629621516566311211665557854995076094984689069568585087504355035426251311006205550277226626426468046901471367724284400795369732706042390170907034677903903748113468231715628797973088305397173802581101327074425742929158530049986886905461386409225453398423748718833836210263125524228997260348441867108385815276081504168457645038226271695095470550144549515162202328038104754341922472678234325837855474864116210698316057399721478693723857955828446274229970212318102225880231060438782171763025693044636839301325066029750004004221370529488528506382769541331209492843464738104017164055584688867644629005534585621629245416549837745835679665125323414485725616118972485667357417375617327757726858661764235382683188238529525154709730730329225503460864168819615318187590047221265078285717784869993849653459508187665611159813019638381200077277786620892552507673293746215912983547539409264868243064809427429372051895310972793716153131709504624883680769042625157172046959544107893009806722648007017929976244774403778792687517987491925511392098360407361376838836741034927077219762576820107426841271108894294655553377822795733656674445253444514528921526272983827937921333805220652083994708856955500538986428730671153420902218110515114573492127467214932879646219435995248937808738253958756761696987026435736909886318371653566484481948539407617808685519456923796976674353999816760058945882242459798275970404702648700757793402657524842280062553567553672698195352064960720764752063801545441138322462098524348498632484642290980179888454734159156864631222315570823779343753033548812803505491856531431255523071809762062861593920967540015965734563519011483051829189081326504895839282509582821589038996543133401108858041799635818967926911124695263521068149494828402021196340767199633444195368496957982960111246441566111837582068523792744981076565223345598372798699748179787090214567184349103589167409716847485355078552762362024486417318106676868427308711682530030410681147628704790282675548447087060304207337191494193688228794922171788171364858971340612105367106480866136063730160013962021249970008625942894831568714702785553198726987376270725761541861220996198245761329948503634504098525972368135063024842645935461998129199333431556073807804575779481573457606469656075015526648951349427318896242081045973193805820030261318742242900906405043025160537027515321377562389680161601404908214665467820087035778822720278273805875664528576219812011602734373957626052519936115176812831458375848705265673056106281068611033598442760215268090641206160979024698512478944923447460929147160330977292871824674764577519652473689746729617295813744406079840648130639832271521368049709711870218828610860311833460654518190393782267501108100656174452845439234117823176959453843763717167207370651644611180376127818423212755723876788880791178023820369607167869528010583750408164443098137000365407132361277670396923379339694044148075882966678881344761307103064252040114229733733750203870644969469563132448595181078270474547178565968197782726293825230326566715030469395420682142720231877395714385906182891536895667905570607906380823035883379450004185390764812770285198056846688202828396077042490663982627674407377548656721877244501436527486850024964625993860471171047164610990824934578296611118722645982026126472785020888755134704139423168469350515261517750537925042002916537386631130496634958312451517704329494936452665858672061358490861132562708289517562633796813035613836665672632701864709891751340697322497272129722126729444583466410623206265726900927991482258926490393930695599208848681707312027096490866903522806318426121043106794570647321552844809812153239300669984623678849635183842204186190352796294908581614700417684447921393986653060547095872983416020219359125818771755037908427209572646469371015439195523589170657662933854975737611851663235395489478901086103963392649337184159987253910713270363132498444381235057427224304280541082102440524375758715399237245110331245996655822065226056371350231568759664179966527137390333866317257284354935765676633444512128301327039375979179277966862535501615812614291006437881014311372343568608441404787715849538987436767718309675424210633734584111292354961740129628649865498634225937137266954510633044206852136086624449272691822254356332334308466057548359096067279194556586442493101530839367124732553703904479007188856102054846873978638472901710276607117970005855782569974568175813623451796477094804754156247973955256393153428104661682974252260385020624702373963646916288823740392355793719080306482171736642085526417303562349880580685377091133217668739834369531563011244307332685498686414298545078643457266161845131331267729126917728039585901818190741634644886621068971189418902559479593828295718295285367442934113740367399326850885636804144025870628351419701002551641613389509705027462255830324757484631173467543177161577572540526238329683085571861620008898308767027069660318226728623466599739434692179455516053764924016936521915451102342376261296398881892734060158939739781210549889732093401724131853464534155050053787418906531685206665976616897513872243391760431584409968344062399494432508510404691892456268195574313152662033786716250420426426792441113094978798272036923969130343121229523707802227637615232843538175430476570064534838672613735015794034398088251012538117326975848865167018580162058070127529387420333083452495729741963695510798677432914059511431520176459291296095952535184159085827884467318555624163382953097869077032286846583470413708834288121409675501465256477005822807138042657455844812369032094125115753230556595341848306590761991040802245777595588499776799598148728734235991763865265229295255751725913060816020704790055208574590199188754260272393045884904384024136177669791197785218055672468495732842319671947662982248045233706064595104743582598072804901317326557010893754582231644874842695317605210434595875264057911820761783021199203362974552900549656270890980418856246802612701431764537219319279924669134068227520797086029269595768504000045449905105559517663097252344155017903871686442377304142267677500484414602057432294640456719922230746447580470426201387197363094355583788391686550678965798625472700417821076683846308567427302994576427598202822794644217003197225236919631008080245891118552804782132779574021483670067763404933270056548049921937739291042181853366193643073429731726992923823740282760856855573077293467690819919441627543710329194121116942897783019259598726438767446822491801783389373963877597705233739243551822305824596034441892009022888071473278065142657496575131251427291437002130074931877230205395613641161695585980681137199823483415299320775144241813487929677045410572740286097296846538757586200103274346447448866091168915224910409447274694034827624659370671195803304874566236085715218555446147128205620139563612347054161270425149336318213258704151949828946807138321287368477260900630202085428990250618209792949061571112687565620904893645344411962164938826354329618607116519615784618018389171324275577923363078005385458205011432896759737844227310007685825522014436303972732217435453986046062938763915146369711183060153428934803034778974362704525097738964897346784567902623603979019399188269903043774641487837996950412214780397867549561385939336870756711940415975547038722843855787121884078735776852682838245302290705127232654671892318430222206417792413309442779736935989491302172384387293562583551607815787334223371677991148143176640440461065523302176218696156189176403057024035335432833353438724205340335395035108836395216796369426480375957681451140456346472153789881839981849668923473700601909029501384556649086046304861411350646799708375402748372395271726672521668767180391097109397635664250314234565081803187149855749668538926790839844103236265041259873142224476085463773115139259150652462936532859885546020922872264233414078478848236218159220871334594441233583782813744020273960993831986580456836562290952235820621886231432720178322828079315648398816759704606124597596303740646588977034747774296124572303296644491263904462262131263192574316455315133210818615151855214791995518998885037614544875325774769218271502189923026754892537417819366797831439159836515766453302817436322363512677698687327695781879796470673274943124483711816267911680800120455725100461564914490607462394096270063792816196051459142358083532814940297045439990209726886685548562249649874681234052363453200048022529126919587070388183988940896084474225542408717965992464299623353351833532146591754210160477689774330260892407582030259459688068809217564901778104382275056654174413316419142710713666850813125483923932553077647615507759655257766800556081379931696163231980658769229208869189084752565107380743049737504501010300973739539623942648410007519765225249040793774734846629790712060716727739424350989598235861740307541211684117810154500398735715437618332458312846977433040989530499127209950936460314730451613651589824094454966787004153869317603079290973864181364624411468291073155754918812812252988386824484497757134013972682453406192980068356104037770406844066676843053980285087542608151972098756411312707386780377845422628257235585499907703288590796069346576832636848565629075818410420283579394440905254792817062903841979607467017567864611360646379350040827546778534268793447370026794223113463954653438157076973924457896527286100411527255611067063581766996588913131492466490654192800820795177542191408019290237898895591200898672360088761319924639275115249972726766099668360751906378557027642132617018575132570559991034561088137551096564609971156147468127015077327125747512961570650160675630955121930687361988079357957083039547953938770342163125217328570700402306406489356492952315429223985793435657636791574228667185078774281765009252436062256635030563904371926255791147945035930776875311717884074695919851176162903527315300773703865239492831614824235822472484448530064085540228087113013339720178203173321065303702786315372633795161996066973866066489188102396167575013788666415610596362248785565951959646147056526779078634806917477232332755065595579007625574002462153038378865583741602241617194623336897148143689824087809502326290613882391367462631956196881889124990571754006568275769042859554689291023198235189781784891146007103688454181855615649012782857313365729148226632674019508756814371620974611357607590708530390729725148466054634128227856444190011015778277149153994790322764967419941189691231868208815141289844991833196969919782042748019173296606553669519853610398273140921636879220593783739249117795607480756682216510055993547081523235986382760339258002689397551466894925353321560817239730311883499322742305744839814742652123242133283971714301869118708542044234141992089964095202901284119626167623032812757858028401825015618869401593324078677566234931490668753713483135496806421662031316930378332798535055918898069851382962162005163992388410262182847979591578391096189298968356951966312077911676560962150783016765041668942146880707392070033934456066321329659946546583720375267463527640597926162396071431102615288368702266217965350186120291417209960249205718939620738595650662898151969836941523968088414107462942108794927581080046932052263078277113428845006655446293598095083470834483141063710073177388262149279393751346699442278647264772247101732947885825024500627081872805792727749511942391743015361856336079145259000845302887736785704173274968514114864616018727097528361795914099194340146753793821034707066021058428860602464631858444866497201894667482713600524562243497362633650993870413294367886615953007298831493153781533008547256488367651792352033530872284194285943390344391166483761693683376802825405017811775738491480476331275983106488766070540147037727022012167610815872533301288042054367099089965028226780425925915153608783239883181813711658550803474059065479684318137817319623114848806334758132072671315180958105932414310347854748837801530597307613836415529652324536345832215483058534812684802965294435834948026305396884264805179586403981663088779297395210590177655750894494230960029449245284471592627122230512946789203657329123107023389926242598505768411873890164758205244712695737771283126366500724810936296798759770747177076003784446298678793751510166305744045199627070433889565612717013423808422624463344260598664065976410355968342817338650491979600871289029311441370879388194834566143483012309880112918402629445321548184709319898091745147943097368875168960344611924427478230411068682735609227467763669987619331166944514174104359935428605781860037704795742852189584503278448840386036046326747225267762880824059437453347079310968990321049018873002558796004041590467842371101781786616506972542820371370843928785664005815980919155141876253958579273108448554884215145943499410347804996345057617241662296976033350885151433815978046759695285982360908355778894843116603221738334645709743508746463690020994626270304898586338144472214833758312468346341934443609716753790457175822868511446046795267759971596024341413713021985489512012421478687172623583063883643433948241813787593801221395470660804318413752528443720454364880852300900883377563952992974818307783149207529707258581391170964998605260441897527816129460934687411612822510767006235938849614739609618654550599628383856555889149882872671459539593359424369840014406853480492916833145462102877210599380094443067824082806811697271501478803534071416605616415033715146836064278936157850178121494584938950891717000852059637939151291017309192681181559189858854506811760479821912982331975315007161517495646459627467007896448080448251467321128540791741627449571466813650493110956563519848511942793304591663697499597349118113368802508531229275075838589034506203057194873750420306462283340519799410886354300704249768204664213805667510732067713982439452473915500944345277080158426546554847188159777113860349543129221722208010038337708574859188360592651332741195540167688870962664689777716863536155489940602005021809307859116591766078681614868695687713999379548407894168147797315191708916618887183116797927090312815215141841651997257952567548796403171442754992563180064650895162331826001577937172938101826827316860227952012196296721842265515107651549111320822616366800742663004777034251396957422843443289586837619315394080197420271214531241001844256613955033178105676927454851177784323958842332128765370314160070222575789907623171124770655753379534120243586439564315200469170828292226966305506820585689462509890499717721925840583885183697036226727414786113513093718350366952967676731293827276372053336286651716400517996798054187424839761602864832504789497075472806675333458563081094027224753740776928380855173854604041560554439980807601067827837616731006307095071543367998398350470210479762859166606076435149098810365913151820945098514990595596362879685269453543622675879779175474696879381642442197582461129554556910725957679198623131020308848252455867117014628222151853861294018926173545839847853704895136718629077013476090196846686356949974065116977855389422433405696487434697902171415386212686959987847877357108545274739014518899167124677312221849492286446951032998205687956491592550337413881102698600243391067634852453912037233414824603646516742222695278396917330440710876970488893314921804573282383026931909223356969709949283960128341132705593313695646005167525052756658645508396766365003856155475343138921830364194076139743759313129851044483607499559957226871556526994914509298534475835934930863949151983447614163541166053251321016058836335038059468698256569550811281475276865070697556264380545575332594653176112554981775313566758796174022828491052491013184647407531958852147029966183157213549619829337195541400320857115321684961142612096088048386739640662889722038042193097274263600326473304194023663779258714918006417349074791083956274496464778000063274847675783427826617019185702986316420190563935181118785639237545200776080403780223550163559447696946364429200703474944344784716298006361331745858702107115781547474466195731744955604618205686384152209348414068912388918753687043404446897490677281997932819849867237730227766990816947015622066723767054642895525419143558317244467258703912190304758367645916782662854323911737405786190140325795986648384519927357203273812882307256302912404160893402960491963498542133979225729452653748424489092149261712070390053910486770116568375212278184693402492805809790232471173521367269774631566363406904888119367852888924802294641780852736028122554048097247702432754822224645180266208678955159116416346731771000531749029709221751077545432882011959221539065381145710901972304394297415696135162902170425145646693818824301940590336923881706338546703148584858572626991055073854271836494393189695345792815081229846648690146877811293354263016245121660486379234146785501757500284258121085629928713567072500311241852109478003678686189479607918066637035448077086418387022368648189380840885645992513858154848366759996127894525331520081810040614179850722072924569227330610988501710271770579312274019928064507088340478180539040678225212435840226921059486201996751002264974157743826553228942668188768561119317354939047378371854299490697256837575321428600926397965460907588735511370215430751306087156649805666112656808859337499713908938315275717266129444099142542655983296575665807502299714530913658249897167548815443215388382997248443969986250452336126756770518079050003092475295263630494387199581753671743749461084163756517791778862457273056962590803790484310004667111542560774349477367392929837060765591969692733905012592701259932945185079817617088300283890737488309440493296393084470353106374331753335180111973641214172495578588183644843076302593187855160624386343875137597925620912881359678173142786699301109226910099484500701435647339571067077017679018214515179496837085505427895539238507082527280114500033347996544352140355915274663951732702343244907384072722418923856937542483533026389345534645573242983973342039142276381387830121475803397364851904572063502244823746504106951184850847383590508175858525018690797300646735891770893363240935501573303254978897832360760518382979798175394168831390865787225545965724526888295341513692942078346423598575459470158738400289336367787235552924612495949314974149497685415412268129040630418831238929241300978372000435753156518894907970284967255078158890612140328211963243844966258835638592751000123254896980555209544384871739642233379644210226477066415397641887859844307748995525671687128114738788586884062715607391292831354266207388025111785063914237696739266561194753378486883864075071035996712682535430162412492714361071407121383734683767482837867768715975188478405670718307288710110001160925098177084804900491060970131124312030885544727659562802784475914177258780680422475462676556493718563753504001276857285759649263321025474578793341726253368521819189214883487113452361467963446167603811302830925542506750322957235011118634560897612040071835725300168835973549547095957617852718536852635770134239705657261148558028978283458088538542686778056445597628843369670250992375847246177020124463974413787392241213063003878608544745037917238349092651175851216890129732104305312251823239905667196020398273292607534941314029454404606930289141092416743888721831734226098236649728321889970839448753250821593496448014599801895325829714610077810098507291700603496347972724852540147962293912516991969249561452165013917419949625680991039130231583084753379961090535349497917238858701857510545309447171361118084716882682745841514289664563244940691670284503615751233282750483843495437278850007811552814982345636358999424895151846903863405910015343718400185402956235137882383412017598420982957744769986740063434441921851803518099331220535542475388933764432334483362186387953977362104150341114002383156517961682210057439433192744200563789149634254854011103034162790834741934248270517756706761212054395027587672424124961337063429113162998252071483420606312986685059325316724729486575037343941187993216135214963668351817743461531478884117302328048705273098818920564517254278216969153146187572997740454301601140723263518628873989351942194010347937230000951483322875183712594119256771819704976491737736998766543083348912308398734590442267044065043040290063212719864262683157706995550770227049934970347558030911080735258605348787927068410375826569850094430402508717843721569015272583247008743033158173517101913322306900277735066212371011065760336412782301218212964729160552899593036950548465147399037589367661467046951448473063783815235209916628385874404865777319384319929965932600243527166154186563908035251514861650955260985480454223786582003847995903385656158467119567275738632957414133576054040392432596896139379847617362826352650057086648470419739988643210047990327157705372827771405620462833494022502604416886864431007110128202652576960280175786471006524436507723454125828119586550740052298733461035974820099225358541753193259726898270024843239752037341261988534900943631679837920468337360442953901380643637425323587879458911772264329307772555839591763833805204721496866649565483087211083035286767643298866937543392111658219825605361439335756474088010450675223020456185951390796050471885486093777942843000199895994421629725617070021673870159831456996394053077030144337344082758778311114468013386740333149141318477087966135058169145357505665476229349883317031899057886538955523766840187483985598167932075251814077186869474556670222215279972751522438901984954708412841076473897171042440698374284104167795583468735917452815693686402637873336843679542436240238258924583943833180088939610406582995375339034119965146057817465538108164072474402961508021803375782233547471942189204058860033044174415032002141827357286128988406692760171900808276806323929791189454809771873316187101837502420654863175695350127049611221268045293765155113102493933221861012862241744308619774467764966938545557610441017258809344689618336806457882072252021316684139686700655696092346579890144367026213348165087140949665234755017939595892241417873234580446062602677566395992814480252330261022313373087411484632205684425650796643755032879695151939264160690414142404972669941792753649902079342248806674041140617585797643815989246077758460257291000761013175574848656864130273128806763820923767559944878113988465253869342746149593228567147247870397867327099633875268246915790182793679725227929895250257610470207262958935921535848094979260870685279746840873444530633811930932214848530581870393633179380919643516918690134772246556609322943926626673432155457013809322626134485561852748844630572823684269949753022680789325632449838689681832847640514338676051131485362858533087298959801606169262840675709311171766125002448451345445285820756134018628797732538283854821384775547253376790991732928773661257683454717409554691225893010493630243417732528378978314358980355236473327766945823808927088197581505486488195118603974874928415293427472470160663315018014122246506100502070203956395943084415627438844789150221337108773472682666469537470984237169836844874944976815291560302018491918060824090374025676669197833872214411943050801157023373037582827814049034503023032072617814444025183337048720626017323602515019802629376237929938300457127122083356488844750624711166550256700945387193212944047739240869975839723453170252389468893292312657072265974517836648401307933946548047747974138193896612580844428804019946030436533849056793135548251436456672841529117395596389988817578244862394745678949189664843065513781776610805154747734230244044217860118319680330195810119382275745663694126970795018106928680307419092648544837175442089473382924140578444245575026530239402490510517678466387857430605336882082840816530595007454697764551625325017007738080398057475319113542114707730449955193751989200515990931450550499764115096571802612453230970111431395971742273479492718525792061265550907360603810430217679075047978671857862813124631892144750115538886113917473939784860254001183906882144453861645375851752626333118132631565143400089527247666006680862983473560427821894141554161164321027606976636792354950655070417103248749555672833664541405534969782307944552137045006692086946841957002141087237892261570101162016319853096066704428253958432785137577294041368502656603517848870524813813629776851470198895446078515336766801642506719410858303903144976883308629056698960012004707135684505275918546411907865700894930449370448718513085746165754665178414904583415591254731023502790069909109333660622495645515825167585696316044675781905758513118907704466557351717993944533881157559001214730875154479421522537113296926893842623212109544892420221583763898073384385788534898242596159289395691738727008083104181934967199925962442883449722336273073289881779216386820709538693253878145827399546624066899025718529279113221383940592466514025911367892716429665217797975865502096759755220609219188846795790494368253000137041313784208723082016362078680595071139572328285093428308175144740018438587972538437611705127505777304897968481800954534916329256343391812583931240689038306963572722733753039797502959003442494229211274935141906732801152800119571439033028113314588282974877613890680040186086977497567499052247361853400007977514865737020130831172242006748595666003286398311345120678472831002244417022290334702515395797129976430396549813335067541205534845457140869048533599483133128605512168567949412032686528722478046804437906167168872771260328274610868928587725859862232502463618937666887870803269978515333276716005794496275803499147380776206660755086602912469028476019387774221168425259937719859629136915867263083517742963485103279912993784455188975514242368809905068214638238924307616420563843529984440986549618637145270433277186764906232724730955624638315272944722705039773477748019573599847380862591156686625611194382920120211315131913620390976603710577407902714534329966856703687193543521983564894199130906469752551650265300218378992152231530644809931851821395163679255907643897675060061150946091737242252471772873046139048052013706373288337927015327008489004403534752716464450859593357266792054673500493362907137818217133557670299648351160003766116998047159520427519523657168200920758832664688271689834259706674135905736961863442359675426353641986076377364317017993668356125445682936376078235351486067498791594392099100464648388250186039753592597423464072565763811104469973479086527332120552815919961104372337607438656240554923999911943703497873201205629458071819073220945961501708619651074592598703481221810725740239882801333516846372885094792075437601739095321129935660690368350799072121273423839125700255169237913615472664913518129043065244298341557827457280462077547684707435410789834413346867672770425954402119898258298149901002558760804239471188826990565764114470415394081510416153750658191795448802103441138257464696744057942636411347706200690048736984664658105221147559483100823752176437918877913634065357345929713308440159395875030236615647093021073455612920347835722285597662492456835065399024884991438006627949639635294664848013927779311562381285830446503058079305749314977425600053188909609724879640523309838631169860943267454632981276516678685847333942533406862274982752805439636941264332788329607533672444768708977391122815483023326887112111232254940122221816976540147775304093750892497740989732191713560255681927897823067861705918374679464172202099726482711974864253911941031046137490769279484939870367752023028445639665621079068487731291787727617550117697202536914595137285545236873862866258753576249508351602488876280713843147399557551956990368310972615264226343673816012677917197807146487380953540289398995067501033129907786620608869220554166406887267766363923503811547787604254202487398378075304864101555939095987327346143795200842005108256478203478425270787922117971215417006072532110097565583120706424528552062680128932665177621013017413409724607690416110281780348058920520566482250008564521237824867953195102657988063944507794833348235073574730682591613897028036437623493270965410893336571299172445761395956258558522692531795809749864532379672699442865985735114776694344321338937743406477165534842810845327856831814788382689349037021724133651758406873158378337592365062640990672442718892810202082765317164562715587218094866217115876122330367044633155842428673948895935845162177182492527360865129501922655803231688706736731615157520470482844054743165206536352328189005253383106808618236218017082324014855687864927000305584231403911850036154627962856856065757713572327630212984497074794592375535584192191383379754365974626982560656682719274094149404560168129328367180754007893316514109708374295056388641098975762457169677383366550462135271535386074012172993128664679921418719265988043289228857090944792598290535095753898363661476042331353376244265458281160541914709891167471355666736249287660379954943770581902681733785696419667070115211045352037360996128104760963500047882877935967767347474647846551067874177134366651772904057927951041404879847531366226278277555484616993164802916724934606011234430894526388892329030469959506471624726767526638632463137444754558264672932926156110675119870250093841026937174192537231032312948276662034198432529510154299662457178155470110982961235104202199011859750491929531460876424905077972860068155239354177961303499697104861614622377929412781317076737496014221338159183864219026212548820518114536337251704326689671045676656025558472223667561693733166136353095540985207391951246866184244247344300832867727890879290306187809920132555089790103155295323160395075802089574774405700033199914410773571891875743620324943633725429053678847426098007596548123824914700144136627538417656022251774434007572989339764484223686331289966135877671702303247969484141979610835037231724205836832341210118373677202541235490582492234187630295503692114050770662931610396553231204542258089847368368261553398019663058843037618153441859099214464489324457595427463724657199675813681424190280005920241833722487953666853899165277898448409272310286870934870216429173933643323615931267699903396254861750865165178769450529220091358553494088745994324441633207420292565099401462455838235275179416988754913141381970227277965349348609858479345519914164961148537727928210351903140067006962042251686131195629887918639136705196257395495179244613647570671782049687535907244298583364468002405740623621204853097892756477233400345433014059962452433140647824143724679249263058560063134155465838531535700889762851184783065152721115801357232028004207127510025536422119137099063527356678671088118345430305283294532095810062587591162609846308029321482086477242060237155857850184542635568428917306029589522208598861076325085896949648525981428284622970131346521325118737211471035675505455304666055282532100384608314011137151367196841463286150597343152934913651370698764930355411986614466609598186962922133845289303686326403879495707708505180396785699510943178527167094456893555024238225756956883815312809624255344270818530384766633589093674358690874603577970204771148548892161527345754928585693683370956395832264788075875204148479753621491966513476285386424431322140214170512934628378466932496252140767596246086277520819995873146394196171384275708620848238241492044434567560562182624765085218078159347941514132064306595963111960932892525965544030436060706088240977781227776954120043396830455709900880911317377119863131930951897958010455851820857705451416653229588609525041125811989159125795679287409074594727116155344550428760031471567312402468753598248646696966666593277991040674667662322455048225115249786383542970736547851689766859971151409225551468703427255267873088604771147118086730992221824768563158172676824380386759734493195154064612515945523727602322732555902689511770436487351188056832295104674624015010140145245827085392762469948989848640499924252359584545955125220014209693816981197861302231035210741116968265873860372437957535365091453980118715118155199472914722597924480690327100705254925064410084957086616223490867823268528256163760796438610147536098558200723888524325554771523924307806343355667330233031425839391526644115460655512095553806391795010681697744131786872957564776940163021847241501772487495079084050580341697565613884734472702465277818396320369509760591965565674790692093974298604673637991583802465383175907721468074866756363732973448553150310492424401865773016091599460346204256463776191210827926958888704689292591616251834177402176359511606847610590576199213037786680642939439797509434820891124875946463866896116963825898677961388636497707276858490483814005527911100947011203085352842255894348336152475060557063280425057827206354130578876539975619030058747794351811708662799253114460282502599355376392428146740136745150066474252970800789779394296416394205232224521841129691871205560141101255842202668885710155587142054723846360357718861886094618842422240865736913646659159414340918348374637104359503109787248164952928264931627076629307086979897349427632910152177929041196443380297813880358251533124465518671471300967385155167454880295081291957767978517943230696847704169630610626617336604298297880226675646448466678990631210173459584443760057015813013315476942680705087482613159259258393092542461561466215975785842137434027255319934805228054239166319271399927910613030489917241715105726521547850149336838101786660557123134166025124355641904550991117703935864802042929996528857950748264398818723658379446445389782079030004408508107987428407161062814616316926859788174072469516424472831407679587498422762065777643009535854816296977345103093268738521014448043872240777270264346832053973254609331581071518733032032511917033911594470702855721762266924623699226566907935127001933522877269194701976155150471095342005157805665094493508559164835062193522841928845232587699432826254259395063060865104110863183967314188313864620683298291848492283351092586890875650955430491873999668793885340289946077330035177852383593489702172187531638656887623075807615464186775198984800710312591949835540524238328461783531540130197776739536881168811691595574315664518638463422311765922624634676212349558956414929566338172887374564638509050378030327735517345249670618626136468000937383335537464021893086994383612357423683988171548560124605578944846002168324846743396473175260221514119055170404083590189735640006276425374591561279818502837472154315629311923091927984819572091234885826214895918056856402016291787889613997145186789047296163301291483606146110358005613026546715735792492079878085233153676079809541208709763777826645305961227595355492073110418182351975585327706381363759162487485100338672196923732298650053700407721375098685048912728557143911609379104340190654836543764355659590930290816088579519618045706719883766114729910586558039939894401257585698353702465052621971762121447693368975600941429076001811553895019272705496682586314354150055566717849281641271571844641462731744778805358156634399595899833961182850384431429394224392285621045482381095617077716471189066042919591812008688989784499336344776525860686512985364829862834991313961024901231810130537660055238548590067855424614777188861427417744941350318062177183204226800075721485830062454640067773554802236292670188209104661129874597517669040035420265426003950502459693736171985812302671320171440839500179174299606629553264659320150692369823828014833881160474142377263663237034915825041031629870133561492893882794868064078973038707383758058258333193933667830035697028714885554105359305764303987436172988992280359058631114273047206885880220139675439743823082768819178679170745284535120145898185673420040339281370407028801673832795216140527123538493830842691324250480280538844541319571006255136371746767234329615823578113641111755069342939561409066967565136991743660398244504633366932898783118230934197478099648997740519805100696078561929606066921315150228714458413845694805752548552957342934134626708040567262405423754993509520093591575002623152643999123627933966805747092868696599388205631938227188162269666975794248753183612285388812318447532389834308805283133129070634176390976094224060290878723917637662918807813505986804699512625858023146646063967765008931551866375638388094526988725541544995188298490738619108831776793171974543484834572081866596686505606012786079866073363329659568735278038488860151524187051367312634426475381537773246821366812274323933700850544854314321225035622779855888161277492275040254477019265118199656142157235414392852100123594521335618823653597099239225013944791058747980794144412884669179757702953236917343606464533968227245342596979866615393980688596296952209240188305500232457841654155573742061805138306498821900259308080341046993095180952405139710131894358488983505663661766325713992452904763427665442738484312962511766435913615270671371586449379129590409637445959372478328036607770407363611242211363531274102138817289774136388106189747511861003269256784824316644828823854571446586322186967620452895873698663879919260624815537576972005103294293975835358597406994233313548098469592070668108638662770202081701656049449308062355773338162472210385148979689690186359640231523576716272653403069422536653535833692665699940205424973978695148592473167530659383484476076155149415176470007763318766871205935041209864496503862961993728493257293991486508594918049709101340294110359972229083991291107151295181794782277759129372177341538689375860037608177284801583061309144645843302900114169831477387649269579969348569477366336566949824621155906712167191389406930525191697431810132239506931407481287068018522584664015896715557314193710629577010589023489632444006937273486398141707071037702474254483972308238363161873859528250205322225828151588692764995224805281365328929754472336529163207961573323286053394950705470319409915156027889023154141654344398179764758359783919408437145138618113693950005656431328323639972160153884018542455008185825263559535498501649322419772288161643952797356278873518584178063922328281482622478807111327830552885075727289702690391220176682635009033715407854581310890188184977003668399971652133862223500650777412742795294978886489096658540664939781700890042807493415634411088417284157480311781422667575331106863719018292292720157747343368589602392820002136470137000002752110019978613084850719365758238869613157768582301796258232747632057098121718380548407222835956690423621755697761858674243774253220976214415945478025134304358765182238421845362644099361691595260195571565033628905971790582979086365440515142873393542406197698455911697010865437047507859468927158095758397041860892097121100526760974169055522171927893537822357494320200651726104291442116275048204040654181607913476275696861872125262050873012214367892727266632881477380914930809471060588294159181279501782455164529283697643897135196361844565535951626285618433269683261605559096074465986337690195921751282788542519917028858274895625342921590709927293239465414717223877233148184788313559127408915212994722456920191582201549804602451997306785328193613690697499475115788261041145495890093194822799235668825214181067814412038369189482415153414186599755892317222346758896279649721086242545186006986968209234577847284185589192043600786560195584583655248198733205384576994259527282053988631425942159666330927889606847492371907782772127817284288837127717982295927420627951790160522778777732895985601823002076309273748987407149356009675132027071610768794148989163553303541944376627939723770234193480185505021151454195734195551240735042172917194462632411577667736622717093571496486901406253341628917396852759406993453445726944789305385027033599848815066996998890412226806476028272760972223473972540756012039934640700460300263717021663524008074288714699804320119753071510454732774484861311697734683977785127861551732722223221799773915709903494798701337627718587604053777329701941063930243886576128032498014404701208988494890746788370788193440456274694391336254734351429411205398956554848048363981048290441136809437019951266676845297121518494220906448495323820097394784626893854800155017719101618887291540093814454513149900656313488871582756067303394416432282248400055019305073651435164314026825292588054311290678372508527622753191986436336638120872511721738828941139793989647882453998872144903219129379275364543473621335635770619958530283345275381375532230023559124890743481720020038613037100053118920047591967208150316371691847833198594370948519732449732875287742135796165053780859201938546432767168302508088412891025340552925145478977143203380490509056907843607822905700553181811563140657325474313148351406603512157748166060266595783609958963841855475352448757366722293176344596482371679876521017379466300995091089613616743295776714908191079112443439014711361728094987668127799931722241913146776924586952649624768365273497971167255466896630756631414207618504750554497872739546030162848286712252124597037497104022117947441788939953867959081100307138221977267905693791171040315194938726353143707568868770895678916932151714618384784541390957906065587935798485520392220960114180604607679401470533615915674560693638877986430819741473702533579266857177511109200530367069398190547200328961320548293665377864174670452545065825198773198244233506131326575438471285055573015524430304489090800197867412054807167202433049485537026335436608821353161710719747467521033000751018701587265340859123360586627986170429951837021416466869893651578078382287084932797612101474049501059709067125628241824169065317591498526752084584790389874954828797031021136987964633820925116052801522858234682858889599232992530585557084884753629825734655542093339094000633660745596179580491180674608922596892253105350511809933312221581312830937898150128919811366766256679330567222007369201605031026258189972816119877089454147119418633939662787317290578017971271698615689886414897433996960122839047753051297903154058195737871805798201512602516905027846410766151124431873887900358319159148617043861027146937790832681538667683320913322955436169193669356956558375339548652478826808448113753324946862712196970725101239326007284278570412283895242765403224554388931331560521735335259094761146393563812989383650250554014265754825244177200845093355544601028152909146907059070216823429070639929566368988287935701717079624027890176548310838776399097031782661208103263982701162089862747190996350414798674817822822685587159123554526603699494869181433981878928336306950057143420089312285247796767088865894360200110047677023830196385901213062306351528883881960054027173176009147541739763702928150475249624259993039621018030543930064331120078258121800647257612874097840311867648079458552752297679013151065110039900743685205645660651707076721922518840899915774139838212079437052860965250119728987738432219166491942087495252296010893373602475516797364207616781737010159792629354827452463520424137998233619787766620781977088575673222864039400563093377403061028485374073605946853654305101157979336167973473531380859704411249044773028507762744685235499628119751120475853897606814349963204473845796444790013681098421659625236508974854682566239447193252631695474169977788301813788723999276298251150641108832420750622975344450301518609194609674036696049204367535961202926500168832664052819304634605342225661889798035533716316038547316047998038649488635773058378848097271815313000651740328846404994471482724474898057606241151210515237632920236233563794480727579836140010041869004452844435942003583139187703820421991129483180592409030896006065387198675577750008088502493434876125100550524409098358044910061512769374919274897645885002133055713187999151538791053537910922445881708954930466428139366997596452311855030976982421238300225474535134806207108378367352771057388954737564928787289386125360193117851517284379481534765155922756715279690199353806744464901098104651457339235519609667834742599123597726272267109937009613439012590048686037543836262980074452689277882416546789599384235836534166809974814129423404715847096785940671868514981881651459577683557320581687781008505092540776415250714556497559998672336912119606643822374215986898857738914464875619078582460521794806474105700720668901342617935824910933924988053728565366533081866681510340239367162416192062170547129794068572480549251573302247856127753460614541526971244794964817470968915325678226669163193737177328480482898637504048796866223349400143420808763023877417123198116986251139709911628197311828012771320076551236809347215779780464116843334419245410774211679613566299552854431053287600211274948014251031209205131692815482661576556645589636281774845468925545841282575550873917663658276068250330821196742512769823812069834953004147928975364141720920745982120807074468754513153670833268632347164968699664451079914510906937385573979962400386559291025203876186560843204322105285630867528431531535951802340523795375549563841880546078333597057676525358408674128239877700638301191545889121367151258072110779221699530069096676648249106842272636394238895517524978857059414944418920685025962994901563655899795608862345320106000746111815709283241372238033521112778750925508845967396987800270099205917075416925541774162979040681673048025912301748865586158273653760485550965592861082288610538533150075501381441387128808429801232068188635707561436146514820817784548396839532663941273524091210167313757934495964809353616378142594017824823246550861964273201646064812196246062927281916945570391368728902823016742630988597281088261638876757025949650458154583156754015599435598216795356576616484048577070526678864498117164760071778177164819968869007391973219811486004511235120255800496221807746404734448672258114147664118138839247240844134855004285583356710523344709447579718135563706055542111610189058479138444582906854944639036861625115591517820838397366800026192132732596936218958396402420724744865355509401462643724882252315408658362061803441537415817374262333876605760942382131597199458752157046084227340430424845848555955230094646327125398757374461413654551109752733978771442529469477932184137998702282759642174469389219670104607112156891808892090422256735391114742963712906103649278912182961376792541147606085451297355246131988275025382080453670886846404694193575522950921916359980906801071601191742296284833505160678033700818538446556732156503678320569844994608323284668890105688171441056100622379297810633472954871315291631372323952803463501428549571200833163531153243927051825281591871088343937663708188673296354994124799715320687156159139362133941520992668476142908175551105794439173705386527613097350059842377524744406172876477761228727514308005014573828794588180149112978961327043337316773245925819245622199591402563495026141831161871730031881768660263403583734570638729459317003480844459150282492526592988560775283133322786463439159771103926162536230144415104763831282008119539947366117202973454418879556983599377060281872485651916533846652257334883020176365079947078217280634451199205761300456742096291375265681479100143264260417863325692524877735405233635351108366315387759035379818748960661137307745245614207227589428545397778956682485530202977638135925635673174589701600740056718097663026260436458440245506979452516680105927409286609820021137592132408596862335969566513135415083532478441859048592651200346976187201989964331159433750115682666598933068001350206538798105498600165735475060801503606693209912245380124134781752488159026974089875592301989340774195714061093022200031023323049264817899767781464492981963755594982590684289337481288158927486544912865221471754900170486035624692914141726286339410367090195727544602866950142760565017575759042188250491680710543913518821467575417393918836330431993999032897455550221845404763863253821117863256319841798698444429965741381395836341120664409572774480189623797267185352838558212756774891353827440304789159852051939651602438617466314425067858382275884085767337926266830721271503727730058541549393014258157612720261658531367431613635150033779456912807237449066018768187757887675800168160360584154179009396366698023496486239200151963048578487023141308466115393725445731414767075506363956211682776232223352407988140308883267477250011852567974007880698190376054067085365475408073165128974092418386754398157262716044637710630881983389728696862508604885255551962542148766311078051998704080620991309840081720878216388079103517583041711987973700169852642286001443105685720807110952824584770530978363126644780754344090135422932211192544158844754093060648663209098496869863288620207061507654107685118707167840182543647794981392830364227172721604789421704912106858743588520451133815991443873492207638252261840212991932483663156645247208137286861327509411206120306285197907479617020514941675982353579536830336188660698675743241292865373706594653650360178700024361018888607430846263067016968022366416385680503509875742730027283928399777880855391281126043531021378178061221429482437512759046768384298994444296232462792747123181635037189402397360090624284299009858835486525759814894258567447811418622015168074747401962746195716127169629110900852358798227768252158492128653394343163313891853921081509194667888777791622590903744680153792376006290942008964282827840865469333773880989733046524051686719927736840704922918446481939716898757991906274848172594543225454129370367312164836823887819249746340534488342661835843877123783282760750353285197394198074112106641267317004393089833886856376148052251674206408182107740881448116075327015434731640589347688515884634735745271216834053514209424424436086262399495596498903662445939308679364492556479587926538629338564357528163906037430683527000133605300390821888043759828957773785563913037795986717602560410511683653005383226010662098538144587537485429021029638575305306406567274979588336491994133843008137660903010820424733482002417407325215459470283988566673640664435345745889284733903578395091620984040753941577838019391495137441222735490063184465151084517960705104049937630707685573396677844928112381821628136291043071981011731218343149240914539254204600544323350795784389145763849298373790795597131472919326425218378086650566688609967911559875715512526073507219777147978466682735009979146651877274955608120026530193177167204825817613341122059684103312095535095748974311813496464527996313811549119263276186773324420258254735829936639741743576339232593640239275105855218350050686681517887745656929559642630835891201618758225802849540325123338371087457530002450864750467403203804557841671137909633596969520011425149032739845433041194734555199746578772977353828482916783292254717914710082257977134575596679180115488233778190894497542143025522939607815871325330213388353153066162073057140205541953035578324789841642511630622155514773293282878667011511715023670045557910619949655411376951579355867467957916273152580523636668271981871598516067493148272136353653972221803862200665031375400388138817104612809714840324443116905174670012592602744750733897860219308524974993277245288275226731303545760391093523942172808022972357204400214305999538893243554789441552124830171876071285278050699265954698215966169285392936539853065412483016004575404317479330465403063745821475418015859115263607942959370548104030359650873694144353556473044577286646114178355483228418407059466420135212638972930759296128320049146038289012855673665873422535184364471285281665543708356628359300428527545347498600691819375720253594878023309468672613462500629359369292561293968806070707700223061076899066094042880342924880825399179415092726329562227586710454842865705527140988233007775293644339521217293976971744664983073126187246596717695490008202597082418508412724250591677645551017476282634394606239936812753515859456908786225934571774564775374285171123143260481374995555995216167642501044805759569987092354176043358813484000141048981133564942437233280393002364849149935048557987794131940982558211912914634804639101381924166617042299567409097056522937058563944836559647935058698279545299414265024030814744177028973544951774651013118497172701605851887121968818966747021690536817590266082503286953086651732344348941776474838376676104242437513710956598883806415142766212223166852577236696507628910710032888712144645383757571359308765632918202223445033026163666304580872333378836593795254621513927089806983002789587246890734640024523007654154774749277074199972412286374065287164639562011007092447235954422143586522478051634763885945254108346116987810844549206070227473746326349750649747495044003347574193314159644751675929152139392295289300524468807433799851523619933185723760087175672738343086505665727589759808054880460662572399975280396591386472933818750425706935470305843001891913757650387148380719920798532092881826879583583339176958433988142670817419484704369418365103459225992218064140347925927834580901908385486414305146299899523779244265795705222383641198680774966167831273134637808133644109359434061617289608748883649987146967408920552673337448919482560250453482759992044159692170567423573166077243446733739189316334534265339593480559364224133343702965051546606725069124632228065456127293039214587222267293234717513315152102778490067118869567562180933165313073870487749972108261224475390825435379982382674444232463970202373980001164096530110529494674923746853349723758351444541181866132480643993805089407086483785611333150302515713294879346588702397726725530182702987494773921633645935768107979085114863902686195144209172412074533179799309139917509507880422219775438768885202357429711067655522689108299610890306234077794426518220034143562520336202429300191693597791214381453963341269241699630909837922697421760140872047854918419047193691520028416712193075387175402933309556865664640236554753529033007910201006671637432013896689586216778269203058920846294529516015944179237416099205672296067448038179439350716698927100444479723450058813424076114464837328866932754990090842670014130100553451606476625848324361445075412648654556785711342486762452806078473274055079420802917678727947557082091260667595466298489800084359227215818184406316659648496386907157285827734618031486020946443725942472368102511260917774977969339137743024653656248655841157118759136010689627703302353660129349758598758457994583004464472527711535727109371903336362541721675808842602085954739445940953790834512572208894675119998152241973999835443835599694449830792093268391597393699757126498945243823877395295404638676520670961871910811267216901223402473201122821034707149549186735669117315267386175248590542874571703884696418793582083141939690740471707119020933639788662442063694573293184350011428641374003702387610758637014169424921770648772485209268396574501276277905530978640012007711358195186060407000680504804844084116881245882539620162868537300636435409325847136481150760770753723169517276352334534596666751603380717591552466459227681870150180846582991358028466873183528364027816413713353472139791674973827841438627310530760238449424847986849022541963655681580171343320785479383819170275410391795957069562871423831788188150851759169385099749550205639159344522575870765852904247376396042426725706748799584002662953748749655651589976128979123391229159631784293791782002878426082668555062530223756223973684397724634476839531442373639027730685638955541934106354089245033326681901930467455476814788765222528693321673776251519905128151176782883409674854983685548625474916382969540351129789512952998698047018603682606996784765170796523261854824289124296510784653525766637812355623020491080999946220374131552160200298678635299310415694816618422001269866031802320937474943521442091413957732335019912648781992377636721363853288099384005521970996855744462005639760225079659985746690465964641362926628071744919161162788051451048556662508543503283947391247199289574524095137934724667915501095221021810525311938987988167918222781631431294744255711459514716052407095090360417829094834543537367682115104671273962540556129933078834479977356798225719791759647770249979412598657434297996755508386233665159884150002235096210109199170626173895340048291621872274734682019484708809744980305465418513021827947697182426701888994045916465608393406788167399569177914708992990067098100184992073000666461699306228704904990633301979744646943457578813739129259342029512124188374864075672823444621989746943849840051310183874711733628557006282568170303635573093723578630226459726230757561753175536816465574783119327125737501271917958476484838853708863867295995399810050239379681459084413999455578196115028630770504665141682513699899962731530370847874826085962340023768021857811550461147224122666962219278844271154890393245173414761930828681563489430647941930597338712446026418785308296394884463420297319240774766147623508781140152516490412857389637797621950332058716733808765526269093610249487994132029584632812430385913426355523894696546198013153129468318081049768690436447176421356195206317906648663235120809974987612495809863344436224303853050240748896220147047342982656357379432864440386798542847072054596230474990067186040977868640475501928267088497538772949589439601634773748933451221018636193044392137593615268458441355722045494400254410854971061892005993515618776659479729970188576393909039203436247347060208074022361570741593487876386458013390066472562887173105567192541505323241899561604070040194889732176077911250147863369509174666236138013477625449831602490089872103463673284345768522513503761261430759374875620812917152601081076653596381007491966363150002746591822117315823022612640098425035522877651725415475665847757618767042263911170792958050850777277794693484512999881232690073134766383818083558985194464070958391161013510298342206206973272469107646195486422775440814564258179534114524654775736480304499032725610109134562519032581988413032857809571567621893120519196779532297282950956099459480048840360485474995406733478940399741545612057582403797254561812132928598755182805178738141318179394209542802053204127859478966143879240350710152490118132105267137031865709982571357511705980935724003858532839634816359709352792742826987997395929496481856768693088262970252545287716343918315425905369620035748159907230849268057308511467126734264610278112762652487303021949205404416292345577831456572252239758548395108495458029907185943312549841041435521449296383078372409973757857377823461358615734403418294947059367812956888183345848395065174806739954644662394844999472446948532580022999577524622781017429480933671546962709684483428930607853989018165913334883021624252207057811780820028767984787044784650217142897407053058577809245545665304844494121833184886233723526819825923291987609052934455256682738248679604892405206500362672396469430227132835085920717330903733520770894819763274723340471815042739818382833852912403880787339226613771689167484158709479518222546221302257139037001673639371002316660006470482095515711208020802540720641889195413406623730779972594385389169432664948838548099553529238856722551628036916865823419840921918911943051278812529822841053226568004323280645310778928654687442556105274287448329410115682892663708362296839098541155282098030715856080736111870493369850121735649911985669999340550412085230569260450334507697747313669453534405004707490318450223829413551753198403651027957423317462370867175865585128536888362928285025067309243648743842764890246605621954854376473911604273970802274734353902221233330376023878694042474558989918298480542335001859090655484186011829924231438538445425746829571713016876107305743091195271996386564374225326344212069794892923965511169772386248121751725020541130344729258389383768358529599209539136451725333197377168074770891148494828398963268567537458147179828439129086675823511854282546140521957801588128299661257583262307713072074585378874362836650278647487314272578181084261982912855698186597319920379566031334308327216600373624218332995000413617802187769223415197350167743255190388770751425650719118408810467294887772031465753098047503679515984414525165962419884370565787804637386517687528979644111147292793794850134878736329739876929707242193917574571621282130802489747296524708946861150952302606836773498883868168096031587780505567149105026245165260126265592824289275050826009112644137199735937831756581211969115308820206747494525900578311035969578780964570048483609474357224994406235518131366878281118668991563424784871926791337637920910104229162726650121945072827726595003209549969443901876037679169809134450373655753482165043375435105394367613262051616095778162164236097486362748294310811467916554715384640967897782410261894158054553153944882584733936748696998435463383666742729059348601952497976116177197779086168593831565738739592492957606952744814779406306392776134740825520550113086194966376782772946188853924082529620556838821317891408065964593252542868113251055450698920373685337062200508166207306118035935613955021533890465527858529655127308396528277290200426960045065407254159994978919928242173350222806421189781813647757271723863223048255824170442638863415560415498317052377236458586405106333235766242042689831375055880695238678068253114136408836962298388703839656677084172789585789615346538582633780544539561314387902417878593703694640512803530690178079358844800019126927142460795601066247492580694495851135611117992230391497532387381162301774185948634378485368710426312759337053767127872645121919381651399744908182784827746595425514235738182020167216306452536369779509457113413360529753921980566116036409175641766951036925019586896218043775021470008696864000223399580151867156368123041327577456294488414620967158199617719923143086892813797384935494869029669937058609929985092146988364073339772402232233968302216510488230668783296384579387387699770540631245301950431369461311403788817741485763278978139550090839271826636418790798325439830263347927784657858257520964585010339735445781863840667601455958631033271644540659995362945041350731696309158926410828915216904268743564504002065151208091925917791313953473696198320661751866899631033394336065737720305821267647178605079582554026469105759065132716458096519553526804370587024900436547518158693580274031494262298585643071474221590394037065417444890594947875254754924386286720459980254874000641478036539195861900058973616016822350035230924441275444936835481412718195909009336625096076591401227152111815903496757554962468647715783997807683665446292665509070042503806592674403746168336880725067348634309424951547368066997096873829678771253351351204859463912375474470133664089920171794150106638200464640316850641786550711300286931082513239664080932516077274791461058112530735439971095903953490369100836595466169393609578505021956133878885062513367717571635031726429435529903811330036458496972485864837855771456576991434472399703691676270176793425762350514814129454740156686063691188912258070962864009336346538032741660369971595074494072435394658256026358615983362732086224701341873562115474426086687305912249987615320918699736180340570170680219338899462117124158582198273203709257066784080178740859914325925323966895564536121857578011889442366335512517650825897068970072727761700570671695977057787116071722766689678001566270991501358915187732529949911656952223585608623561130197071003293402239461370411319443629475868350349711771316243128335039126339696521576241302116992287176360692188698833360117745421786967946060891760905746824467220169214716081528372209985174459782020511090310267406524267606781408404498522671496349780647445419236186402163577751146255419048757798691100896218488745959941983043515274497823092963349708774582431701093018861790752231664595468136468739765391556982757226046765625186494742537842468753979460351130445720409800943473600840331830014858249639855998198437443859777590840052418739826145760193570127089114491327370301757123599949234662163957006213565860070358684961164649661580497360638714957491546819116492027694001775802816332504224848484546987091521014779815628634151156011373483468511202938490483644189218090598754797093475620082340148315344985591894660801413450052756589335693526807290005210127515727169981407470146794155795165623101284468582617629321717214072326468743801613654308382384818884557672760374496075801441135983434647671759117446189981547772071146283003665580389956104765506141477980176983808801064536530049922028310260273519033104314008146537174830886573648263281786945439005707368119875917730527561933992539011881332682619555146878942658470543984945338118385392495550737045082942507616440979081331332780908456418642053518743430267054076813993234035225593771920681575583174996154561215248115163493224681178794042548691776156021074201037682787952203815369828078929231359839961882891633367768572731496313209704741375446358589757705793574604300741548301202201633634062126800521831576477856431530075215854007071772062808569608436353426340962361282590200816088969334002895606002629801979869697835471284874073726368112192959835595081036812053842277693244145821107282413121179646796477156454996819928765773448509287594929455106522423855515760080060190531911091378035152795216966521779645420240237730013694835814241171639675115334941279404064499185078853823611873260577942915646653840341534954517394827760249866518161731508002424397018974255342410013464680514367305081254192259860006931046617245435920401620386834437505614701787367868611223184820070217245057433050211768767375142238241017975392616951139201388302476969099688885423456535365540355342012151119158773194386948721593490660677118276713823872330503004239909648962561047109335014923152950079075388396508159115465780947672676296803245585961418497295384714106010393035980706161725454717807909012265677959785690128371858030375966679756570870407022245577939951832917674658656967476063528915390305927958484301273779865909592368168800512868387521075207789240139401755259472832896503167384950924048706287586609308759031808662681473568049109563037593645829739011552946741730719223768271147290617772922322156542596905562623740708953657610735646996865211376458906665620888857799387844804504672307802195708618287836525124514787691396050230509337382688098280658480924968643518599109385291130510120791652605799733710932065703418208748846654669058978748041057783926043704917216881024806767095640066486086611677795622180165607528104656522071937138444707959075716440634428466288548134472061281566251549968660082096136461595061141487444474437460577381684833704545340387112653759511640553944486356040737206818752800186035649429242844818588966998362663684233221867506981762587271812028707174587224267688099056180899988260209320472375069297297701173345226622873992316412419082460354205901433753810394881411160368029831592596387811422647800288558423701998742361847425999938928549352215615791105390973144233994659102776698499361023518827859872565730573197617851479557615109575389570242131427595637916900670743882909142152050303651912647995252040095027046300224920455292048828624745168576324875863662630065089211104514498964784285584894660616801579830492601619941938042341010241274384063546363953611325666731648835666647331970435617749097114824118490807596362155391101224454809191301253297078276877535962995866542077052174182698509235552856078709855041887855915863068609336682438027012539737800043106199196330643304964699983081046939272057202413559260861071479322530764118050595682275885125755971004402384526214694641767802059156791879015377142715609323128840624078331370611337764184353880775871769589696200367145393624900877000059779247026203433702974425673604717263291855087216817954490599375783351319457128828482614252778871664538860685434290595444634442219777721279283836840415823954371968081454371948354578473884397299980124032357852125276517708991384809011907499267713396520228082583157967460293510742713905591845215744078363544966515878986318515244480132002131575237284196469604484633370762966042264536852651829382373133311188161686137134805897265969733598375235416384548540968438124338024879424327440400462474052456994614699029876018561407455979743874938818320407982874930076834388728160357167136827913017333197373310329746651800629682172597264505933302846994092963571637520336866716739545015243355441794260742876838437310559563513591089010880129137656117308005058982733018049193885026233045752929272791887939574434156976302364027978757989573414143416029657474585970559972331705846263438684009136084826114994924445519452162292683428537611773262176648782412415568293126474358901440393318758000120440384467030442970841051167030604956515444799570093006860822659837763216236941647130239443956410034879798965129095665105098294056664104174871661079806537241434624071494587208566726035115114379533496470658847485390181614557654053929393328174755051401778323514463519301277946531582106155810143988878837403432164064296300671362957440128234638926928480756083911577184585859750515909327719180163331713834317322240605448189631631062423358150069888430277620557603529174886555321795179521386275871839206699406145487922741061203050001511933151849154662892792121892311851905459498048859671313151722186783341374492649445254564079984528751483347132503796752253119917453765885737192059402465483090596228974444382703296852047764174521014088432594417486604206489538259251668799853975326582133679409323066255184823588144383783491085211462070240336319060810459189454648990396712593377968751734231397426980181916106754833169655315905273849648665054602617314622708396322132383801187179138448300664226051165609645860097723309471801881148021456345210236166872163460843283687148809386884662111482090817014066692816774706038232072809791158224032705211654309185005346977228366305296773603671883769995083820862929393863112365879770952236020560200253626771791648083135669603084297992191954125244040350598538211255300430862032150529197963979142246250192708018209771561764546061938555335364794556290727246271431629366788430328818139049025185189712614013454152592615531707483784427996914715777269380064531728870161358097460520350872134484824655139059468727675999609867285224719179094097237582954473380668603891030333151660004882431918166005835872819913318329434273932545480616185655567707781282577299251396138901056479939181668909226656874180590648548502187147057823940990943411645325749897872277816789044566010984286216300695101637433279222220253841600811451823635827095419773478693537288242644817744818312439551680086286790519396015114936691128867579566631416565392576872900482472489755140633233960334610009194794698066250481476848189563510457978499307048004483467897470430237434779294364302824550816451392671360077598844575050133384170405762729467536609485686183623241524437530348127865874425984808234132742361179406609966680410330683540729064202910764437784832290869120485839647450282468137310732000307566216032987653701466045361982440718990382473013158905509556941268752229683333364777645323664645186956467957680888368955576138359662276976430781319677015588323423236380469692436946700192616443656947204304682633686004279910860737673012778419395591564796261002789523379989514545194032223216950932012868092822242515086858544796504741508659566929190523706582687259785536698281886540085935755299452394193890031011697154476625811718747937584676698375628085964460015212316020660227946219483170356156552444434507422256686333224366065227141185150113905028969502612800462783986360656437632049340708270808320072670943844891963395990494897626053948021680726030796742401751751603981300690782439437119840051732796980158137419839908231838096026352615096549444348217209637670031532093447287834895808207085623558572971291644716082684039851676745461811000062536202601934799553965637294097204621236831074416011446025567506141191190302360081175743713296065427796942645813059806365697013352138821444898911718262897350948690319668203353798338062225839283088487363874333448281087633761770149878920081893557691072324253769861013676534969779303146948034319993853101370856692494635524965043577261598406693782583920413586097984864009584669846965263612371474846023493771651638409281677964521864878259434251825029003824940556987035987815973572534326679163805557944023072363465468574712396137208650791110629312433457330265146225657986644240501117718820958413651786784779483263755645262445091242470129658104911974612536069343566375147806824202697307555740044484576652753011851275443416698895675701397606989339084886631126247346014391157399745464195577367852081930545249697757625660017008784742575377587742102434183230694646883445396977693375312527107971439454316456160439687795054296324909487869093739598495799538329577505928804572096924929718342123074165563376838558068268652393881291018535973542195258616141717324356775289367476697986748843532250681095223897640331274248773566210758508680683297917573567482449595526672417739837261293876517628464596816585239735383496479697529038689899050216599840035599085488122818009467971090316307075878534912081692674320924128399793545685979488877111202281958731948485307561332249956197205230522390349397405506008969133420853235635536517456847585469759879528086326795509936189319021035228269637314340118604054047059784455586126915572372590165669910806692974406593950174279363280620854392484487381668967929425506318095019928740097250047954475247935019459776544947497992650595919920489766045742880043809800747086801976352661801322339561808304410859633990312474942630719860910055462427940166571073766274096718459957740279653668467057077988714879796438509431833034204171976196430169977671693832793811111740096626475329072176784131460345216207576004707285023064848716388982499189318263416503986225094342708172125459731125335901910441670016113384406283318374566780258793777178806585259140061391964543208856553724367321471350744432306685427090826256288421768756026837136947822367297147640269865331048009921856507375818079459946657014746720655285471567785871251350896854978963098913409515743911855450708052691585720579359236471854080459607004205391395775029480633668615001302159476144443418404753526751142849573677227644206096096987459462429165828248643794952759959292161849125675946073851700019274426507752946071726533861715033283932726704242334571920127878107061940887161359103427967112131479350931493517451494137872771518392539701922823183044561138574847401798665588598622680222731564348548123434969920753939792718497091339921240376606912731044646898121743787644602099776112104988640725391790342073307855272079117687248501998096022774595426567861119609766056629585046848313754671485327739780315142524745021225909160841229723649934223178251856626761429356199777603797061925857757422401542077250537114449222541424837414634045598497146803649654915637951910725944885991206524227500410074006468082981146132910549713183779708970603563170275247309343687895349903406793320322480787040546501259798521946584880936759677144352202225692511344782930705995156434603462177376583543573700552984213250238746058865239377607467938594681460270646518285515315117393102001089907960462022625655686763375655485384048539109286280219918156648646642792086369286150086935360837093311887670450048380233982919457535264709199972979742096974247779498739995510428859369138392630657946995353113922708839250589243038316779735376882303778238102383722435909835518742674056654763608663401942589513760023463389478495796588941373006105499046827655686477300752309496595883387565221268313760873920719868763704538300910227976232492370204470025518748767375778787414963895117570065104536476373844399569298817865677704455117313187753782228784236947340966233315785689288633375082660300624438371202425043443981482172327947108423158853096371791195177043868329617191222692138726367619772651989758943609125564352421460822113303289926739211236731477026647786518909072384723894734102049566853077554712359129909916366997730675324833585978824714827520255489122345405894170012016435705264101729520808842815015614557326766281446724236189972903861127762232426337737922996567803393218215459683786884876621179764853575360735206803550536202164146737712532880675692094791956902914513334212916015349752465031537427553396708830619595915324917011857045566315597037103910820219562578557545324683659842622682077865836231948709115430874657776360092604023529798706186961041675746444788101505212603630807369905283911253368934096954472250433063576209500856239620096352964925153326895523602919987906664112529208289095301874632759902019574069500057067196358229587407807657809317796869056804471924649610937322989714751821173010595501636154310944173142321860022863467129803599961761955096214039046679389893881428936212524560932077289804495351903132783231731850965119900806251452686579060237113682315018514399170122993148037856668013792541737867903774791421748023642412474405217501314348280613917741486957123205566322059614958747413799049609822463290015132159176272045503974889995055876725241782486488590093110008708993847439969924735350303959936288613523354332188936485180704846771201835889800742800012006317508242346213148451453780366175755499852890229871056869174788785180304314946220411658789849895720664425696216359336114280154168650095230758638678901720248424003621071509761794319570627530508524934623241924354991757331535070894650399899539004807049890279588431097973169966000471852291237723919995279789428206239042108265848842818304395161822314836850692086243497067253139935637999589144739348114142693258064853968952135711548445537030757028886806852558545214648805342061051460797854632886570975576307175362144571262934888362632784839197674208797270235093246613706009649790483493997674220152238048464120947875878690412336786639704776174011357178501707487222436930944340923370392380769655856629623488474644385782628094911139806084322550058761634373234151820627895553115705593198672647825642004974271026843971420537577914890147460767650193630468882539758193746836692870810805954017159321074459289885756030082026747457888463180252851164959861374493164524020107272681985791385582091541868387052675355270925332860087565847461781157153576278366672263083324114299199804822681114043250160910316988365246903811531154956895035953835517051370426323533295387092796412111203296715084139162219635513209662426168864577029606385153229822752295996038616552954069447321317479512196285474666280068478291813368397475571368434684678595913331753352512279865411834122147920843014332713241111103386902294763405947244919248659546669899234412090204593756043464737692634367093899049558907013215739260150793563333165704174389427176154098210716090136370411201575492392693955756238538359123694043358480664412065207583723815308565233065492274343840048278958412669728541346114762506329319667980920038561543327688984104525750255922282469002156596196347780653838484907819877424389641791900923155429389613259705229345992180495088690138043544021234287701315936572279958646638492106649386710653995673027946534858290401227701680520816993794892217649580172419052236915565636822488719586884450296983398741341853297027738815961024247985220120677362593306838801108003693611944113058666391012985365225131801885118697331605232065915707968413653223736359438266404965805748199999437493361190978992447526544605796487167701317956285074688602421594485732746366569356435884059281947537811157244032538294286754901473384675280273212094935613650857721273495726230572832628906528366881785310352358473568215686159705358039161359913277348161093845005225228719944134611084588343012705956115115290154655475798820978095789930568912974958712766399168533208435450424795478634868388482657134174726458482090698709835353536744385889029440236622749456977683888163792555637783845077949566294040369379025949255053510284877219718381757064486404710632160646909743379114055380202009408502599236964052141248495665379904962162141174610487038054796507540676042517259481955192485492476107943501433079103618699074898453207220154885095001383342452103286551939282678856849431826382888778898180134863937313864766963516077667207439310176812790439586133518668136603998833716219364375712420741928961150261093258459025100337609969666583725377062099339570831186209224667517390391987170699576604595866312469799533852224266729652942004729539515179663060900068102169346869249206230337674851832482490356321660908771792444518606789998866832329518720414436226903810480556633847670106551689003495159171084184657967592460324482687613425021724743037747707555856151289915419223219606186180994932729795820088146351709202146512975974548130792559724651875449099562282130369815244304051613894919247724747348413753454301316576863640120117496261577885473407982681511017657014144439043289852671276185496694836820920462120187594705749247385380525716958249779563780567385406085501973990253160706397964987790494450015079958295938264422525781493771487047043183882838403333986565936297782438709427126951739320829283384470699545007695900348551955049956001103913193276599082878058715501677681774556307756577716964554636747062229114940880927866725469443190720955856140759432204685283274053759538199782337245054523565122583787413378317878957235139731418237829374229774263480934505860913755661677606013783723002915877392273828156285710995313889916027643430360100747913530629376947810575690109066004210498490295386970703117141593768877765677288733868879107015748506604909010922302418918674300296958283230940403190404792183018955475541057017567494170173840153826313966596933067119930062366297933851729389963397024748371448371928316234100350731602907103881009069489227305998008364093569113309923611801888592686272142575013568642126656207618344806520819402477638304909893765334094743396780752515556108645373274185561529442008500872062592952895226027910748748089266174976173677168139167048937739270308661978604781037581080991796575669862049110332870774402724366158701508050867177904341110702252973525779167942068039627494155899631809263349202521236205496010871585830549232340238828251993243663963516616260034935955541963043330573579988829106244420636108817351046012423415908906768435653154032642937429765097668840762590616762468579401785375369797747773399693138937259389652848226159914804210186861500275487298864254914899560393661625322094076435455857129089543752994995654664556479902444142968076493568895490511428965119445862617915685027827548177717475749003808170757288891352594991474753548227742376966467820543185010964269663817928065905914586716974246793813960849147197504116141895614445310204118304653448688336409708006491187979052645791666172693195725775195795041615111812178687192965456715844485646728407378695682151898756629392149607697496262005849072777170125097011657981809536545269473416296491441634584395888057306860962639701286563220139532730099203632008269312025143941120846677174084742868311427794371607311185412272054136299080966516017225371977721730659142283018952477657957615214535482282989698489852740679474433873007769809809292072538474180256823870130707015823795260437148123964364092894244790576477207912765578762320332376154062923222762545858072970709058410958961467552160434649261292446657712066659887720594335189967719474305743272361699666402860521771747497247111623994596461779998467869943650003370641432310062725489394973437651153950376288623594130007492339187529613279141238012235597186624471643192511037778041760881220836752103449541244222150518684092750191718550871055997786459176511221178338138149039353459070162697116038928086587261320795188336169111141015254343325419430721705278683378362450852685453080410758144760130828097049730174194212935087537579700549662088205016321425923425117645113021865744982303421732593484980893965818594037970352352122829228772777968416952079782374045374630595505281873802213505493226927759494816261776889911333157411795490066377619849989747869169055436769192942465065609202488404775011524149630766059414002581310157010271064754557606396474154108436078213224598064403613777403009468256699004471296484250243388481402256220217371482864378834932307117067399254125812972685748590987175766798472427311164675279411196968824186581562924048133404277282000606517530172822289914450625545029455035166476914906123856613425271779863729429786882499896102333339990801300059351916320157726176818578598248732892073366636333832529620733786814807897572987767005483225343307025256240736693374381849940870094567083635196040882402174511011788482675745600476963462023716303603906659852573366705254076441940834396204819741119717341784601390011853655079826000420889990813831504790001944532898960479713459712197783372976226074964008429684592716142126984245164438140197761774682842848048586787804850649844811742021695956705650622900276348235843065487126842130223797259492676358933233281995284762326415449488404725499938014664855335576992865715542664805964906574524401965110284396467659959936639057093673753502854093297795939966823300709439555061570247154906192874749838704157305092756395074046021546328517432985487079270897586168441433890198775352503756048996235561314507260378256744582157032228217661267737978381492022884614742121589043261217848011489354652699595267939293185736758900329260677101038601107333186071585174851795698918604433194632677133393880125155586361668691091204975162578111370429414417374919669303390530746025818515967714280649556873041744817146087786486006536009517322228511153437800915671057769350621917714916633405951266015998382223891753517012779841654895827108876857027920951948672110996171913217900351745806239450780835546219664512369318512329153245283135330476741700150772906089370944034908521332605209467342793100203028932088234694218260496270506564813987011508365726445786473142045728944233340961623249670429743043753883906867519835174267438326816131069905672667632838572712464862972298213230886939264088796604682032279543036973840850199971721244716542198364316118150511043916569281985377652035399829752520105119808030763187858473934674700073970479809731921247277245376701178794043748322803782851971973086688122747428349856978087720225129551150917649483298128885665189257402863144843155606307007773426883845512765642297825830601531927798355333041142913690837729886183814536444646986870157148255567552135003006534133370383060650646242580418621560323755300862733006540852314164761003273466272494589451691556962103093177523506208600666253742553279757863465631912760066849406636759990650768412981873460504821262924319555897778171128222977942639034253899399426023727346295223475493323964795336047889790352613778585285868495049323658767583900220930152902189193185015278810986205281693758278201662267991476449673933163033647389901473770485746782492365601073108459603059714925830874903863131880075872379837028780641442102968491824967160791456580302616796444830671525533248363884916927805070824000070876599129640377216192935496983267284963207585181340661287170142919380307087653696554458531118435078164999669239865513493069837729823586191431312947069939670973065859232811300417160531551178414539913711581739260798400758909643253751072567211639354641538414974826592236857788020624275446839210237129829280340524029531737501231464941556235207711889683054418181779537790603672597944280073191019347618854452637713305385574658262418782686885527623481669863054359553424511368477656863678476575316059697255821005298027370205593645202801467682951311869072731443763531278678582870443554385679851667291726591387725648880016891646426250682241638059463519225491941993611120747378068549047272532637572160713094829251584865635826505283315763208416417161563724496859887712290697904310591130334831959699069370956559471122548316416253656792307697766774430590309899329358213478966425132339309673803134832025717663408530933110751710375325032903788647286153864358684913600157749311794927636059569367844523031800220823175956167407994492788280556414465313934123513054668432258806715573439977938355308850084529577658944539682313913347172331271219914456822781391928740093279460792752068778989779966501870555856386997689332717310939907919211911168866602199314172240653815564621018918721654856788781504835417067144108698651045760299926426755621141416645210698041077981183871272863792140029784265173838592010197279201706658391385228498004663919459399703527860422543910393955546387579425644043010865313269692424197139269431184388344206800107076068104046264033560584315003515330015646168662582929396970578644823601427093137438311324638514813665929689598450617548782604230873907894335198148481872356819874420543623597670736218923922906745217445196720506489344559461382727262748981057291199670907725434627085397774436290130522104163507727965246809422421368353174767000062788035837306448611838528828914281837663306437168447792768999845903289843080077967299313296996691436665578355835722601753834042735514916218705136825082645676714779853193663147569106208348194664220966495615107212520706236828590502705159598391589855108167895313955086873619068645771896414408383888271692426172488145012036903491792089587408676303363407719579200980323975435368590519338370762759719399739595772403602712628050101532357198829655376711890362213891941776123110612368327517021456565329542027290879366825034020133187445429568711074173090968054728351208823142376994035253331581909879872605103187120545476385182303721611458106350359078794598618380473218888978305642728646196102094891933352765423316057036115555128848828932834741696672746717736725119153346389284216789318713425324193875130785128606727518412878705179851226990512601455974078099919580654615473465370736849233178733849637732312323372003703147988220676553486191364535294710520511289343742156030316052759327118025922397471036443862530862535475130366498197951694968571238015414719487913980013144854996491720141399588054359344721866565128998667354105088160501871732350318608094073049658196735195019795605904202845638312928648210677817226684024055402151913428968299848632792642028133349227752092592198917325494559106588667955258763838609475013290286071867593804744286962753728864515984086565129550593353049720826258532421616029789532415517748076520935654894557413456596845387428203556500492690643436556425105912608366368692024783728413903222993522935607733704486542743614442974636285595424212417162815444476049537573075170941065292416659277712130310067880338202487288068011988467513577277579263000941967024671890641395792470835856726984861857123879562067373345438955329201020972745254437053714582176261009019747074874390557959311829777215266418779380360218526665224131817187702733096568871355711303900241296507891362151161156925678970978039635961121688492123579156732356933482658131942331605964413735169844652908430773035456606347542356430636004415577874207462702222018744707837782759705552288645733788599829007317947215783332422586268829363727950242496924194864274745976815673110962034194516752842649467613072574909638006312376351871161967517645909097594566606178427552556680322263298907271733917563200403928382659812525965659046924395900561746314996881637508188673495150656056647959457385005127890927792405782139885426290430196347336706399388396691657595445801530709261075265946584033275882560342321735476296925556813749633374810364153462742331937917388564753572724491182309636044672511562062810453183775063012864430020872637779934115580768382409853274034293825768324841174604730815450675557495240702924023295436017411898708903970238990772480572261944216735611286342119298507787669289627095602398277461977479883773055535086105597246723443161710567924938162487920980946865933961899690800289257567291552410684771398877932753369513184140723447556638814821565962908735916801238301104735786628532592649488789867440080539330165599724528913678603421623553108945738306074119674823185570414456192594301083273647876138674536889457392764166939755630387097281342973274415485872739578424662358651414540656000779130875238356156472415913432326681828919303156015758849041460756767409736930552627845355082822043451739251454063458040779329537364686941485432817877673241880011023009411768495630046210820451242104058363366671200213409432289053180199339091956349897339155821881263981054206167407503555401623163445852672616602079335447426063757811738459521681031277345221199902064630125752705148736591839926749214737323729861192929731060512091547644794340839954056380113527588039917583285741323029092935948885271516136229654992428171645697080002561721239198165726192594632496989813580503357954623115812880516036636534019264319003136429637800477416440500958998719952288090599140565827203986553153114003836079804190461592657364789694591543838268901955942500557977975068852258682978681949625588122196228942968559422391805833456844692288322240660906939117323513264790303288670038577848879046752501331120793080938363620035974442975786018486232587260901875667772194575063408435399224702999478334244800415821711777679661191010001643316163506215403614074671980655791014556107670756206222889633317411464120889946378617013714136623692924853297692108012904286404124445360252038223154176823387847929280815560175227260000609925609477757680193548083412766107441127866313917158290314845822684543800364877830569405249069212640255920810813810486505554797417764859267046653595656858654868343879614909516451179448795893967339946923138169172810932988411206126652877336238576236521245313835701499802766295593479726579674267970138739838084374780123875458240679682296585941002659458036145352285954835171860300687647108430495276585838958171026111644489783391807820843810022262222613231730449844346721613213491113593033719516453936929328895951537143626525095496356962327907474359766019242802038332552684951752348201518086620008703374174530556035991473052379339248838892193358139912758809580908178162614339898778402900515944036882137419391962458421146435289506029743586200233015381072358098501119693395597078463535552475114842338052943957554715718633278980661207991049552078906547953004902281473704905305246272859248337490604036792744868275051024677993905495416996607156306695979855884527535771109361852670135209703794182843107521946067916094122809999358807166058952367813456855006763395973085063863761913958756122591815671868830473729852158873500855149162967954216344986197406988742845987078030837843277855896970562507458764358529157325000239905865951086691004387424575298758769101191973609900751187065518498911393208372714702042568309960816946558486625499851636400063215381941480965450995502903835434941455603341761678577081381258681801707549766347735327020675540045728723871919066573293596298684284765709833217302148766810371735415343627031633222322820652627399829706874432302696467024606345632212263128817332193229674341296734553352522169432569414718758590113265874564667574553434024169646233339444121692198332775915477019147266249549524743849684314669730002452801936473173683510782173712249090982659560962130003050557859882553108202730742962870044612186310813345801057160882201912451296773603555212678412290185992691837654153480204683069496208353142506379824637910364576475199642194833117436129791793344662751267322702834366302955495644101453025943070758799977349080627043269065390547069785986753790587432426244843515469390839031837028243342763350168071688722237339236726816353372655082591290237887864234598801557472812352895262800024179695960355043087618130009286983026774309796814385884691854477893079409574173624428298818430327314999547137769985842497311567113948650840650965214875441125973914993780870048711854219300888801532102729978406775121932367307458266731687650705306700332731685500390133459937009478691445537594767994720144923950587264326446687121098765360907284864971678962936833585383680142803182783083037187240075270120147878195962063441720269584809357130543657029626987287110014365416363230861745772302860605664881518399166035491936622749103030352636873826757731169812044711001458859508295916629510385194112747312749123295070293122338396594448146173012278814536778309073387533693206846625733665633716681680830424343525019279960376014022690123271436596345504916787910929065371504626322545139580003119898278313790009026576786957476701986786079435672540780163031990186729723548746684465384423450989989332884564492813632247346420584723674244363428889505920778816691491119810307339347461350484377567780163525771956486865545054728895200533771045372537385156266942587246160988138032867997493099304401291190016502064590718976207857387958206217207971907784581998633818426141143039905721436318237004955552881823911104850630368872725405718647704354559582045908047609677626675053909919377246208745000467872027259675346915146461856399018167733821923037841237968529178356418889983067036256573019879445399708221453852689025965066459096894084282553932523930065150856077465148532228694011757654796270910497248290961243254035261535531402753236473729902637329868310042463375334587534491946824333936586877989910377092542286882114816883168727820271777958790852395713350878682016702627564475085870795853207658779112231094806901999547860703490020268464709916628912138914542365336049628708782883689968771775815576294524301317137277953455412935780513755425009889086618500644907562369818521987061663462052431989422868350979089309853465475635105793004135217785025335193873790706028135258749833610200924916090159637074644978257828216047150474938011765617348687606308239674631852677687975132363808031960388426508118480519817672837532306765798897118055831381746468802079356182849589457902279122917393945176515473669142951948086716341823463728778278583981973313992940302074038088093830954444785464183516257730342244292444344795052538390411462641559638066372689884629958515508643143721360334788620766697174250061027530344732046669232985229910640893466868624909876926276166579162462886183754480200748461347028798498997198525355609650423802756443397938261505348187324507407813109253472292160955017210115142859617262815917120660195554741164670393022992993833487635302116323255842863811701236542797442258182038442886309840672254458130637721022507179118369027878244897664413771454370928137492272432024862085728187437843712532022893244435287002146224465139715956944846356567141201091911092828480138948392669735640078277895880117754813691806725328769604887353384812718679276559883315703273254144732641164734872186496276910060288880764592357903845353027899912242859669043534729181356974365420095750625159590375360262276697385984818249004329906002063798668713072070464253074315786680024516226530399717055634919805396373738741268568846145171075898372488113362544616795634013844586897443373255150500976550222148181163507862135262365548364606358522191787783052658383560562212626165755118411502845843810053116097721110780458728264221742710749779661761979160846509068167004723570122715782059471828221082465938695488006469835156578617560526352710744769752750385518681880523706220825532436757354117654113151150939732533291923667628132710774850396498243829877060606560186563817329979735668968552881894580276707491552103166709518944522835180295613859171729555291410681034228695157714384757118133705602843755790093744557579557533954247614860100584008109137898733972192855899986325882015957611655706466169292885640380916770944203191536023752840648668900883065445172397232144739752562347695075944791932829814709841355424702047704830866936411760056984072897644610728999329546767220492425325009509276309406824339965369506251196184691186528911818674426017813278887492083427602637938722818671923976753605200238007889625785459268057879159631246451418292459306309456740556323643090538852100472506397432291398455253729167120080304854392901554928361796206985105486748134158093258241590034321326665170805858937849031502809688380018848666569390676395928074270859582347187440517558538551523591253827273190809540750681476491602836068953210184677687766734425146619024961539454140561708147624180395478848920860645734172153021636445962997217446895160628702294454564260849790545660683170622950143044728795710589743016565082101085608622981919003452930463785947080756934820868133821698474597039839045117169598931011358599310774430127411173255969292812051281878886311485803472757556005214707840644506708122701611487820757769383867104348679960141478397868456298592385609105157844922728485910046240011350497507877580520784215270189145228638586901930564913772233577491906953591045161839340501253187054026832928406444266664237313382007169496227617967503990187803561638003410165657365501277660190202856511877995631053059755053656886053418673249981310508719066137949936663935118899458336793696068909455534832324281692652751365222319954450665783364399041144913019268511409321525079716869243178977130794797155706644410725260298391425363065414188781848780009242317224312592997706759917472580155093008157277450162094882482631846590101799205205062929709357921480020930723958955300717861115407097996782345909685334138617870901913349225863608854347326357487062527355596144584688389924929431024499594306405012697274956196943744481101933606912313064055851609281986857795971570180062172268081251522348469872575728161191765492444525862810803457205743145573868133190021469242086519028212989311130853360861608725999905006642195663397483165322521279830757307221195565314482762904958886124107797926899593740307822090294519434842396409321574741775717786393580214882668290038007752004060368948767841068807242517418550597359451096943920350784047979315679939830730714849894582356863022847311795792415661328187645905982149091295007681301450556454843599845863654438733156975241142555933710357511417195788621398969826559080539490171427800699304041800384436996059168777533310581255259466997816775380609336987853705789534907484169201824858999402563699439982147384368712557101545466741257343337927970160513357868598524774602748328188032399403472575439455427544674078232459198917223563247343635338759080031322256631304625893709191627235257349119471015606740208600954250869424790351005367541115113563091090150984379734616972728526919747450324857941392333835732867540088604110582497842871934579541751962452995138908041000780271763450901523011987245479334416828071207318326178295002100177559612791102741028004513389848363433900917208758945949066767746791127885346321322496088390512351981666149346402560442383110258808441884770318968430524872714926120663392255049756087295787196762461586970247259802736600642886985029811969490241513813152666961307093059743316840452491574087022909840379195627960216185295222044903103468629748088408029221768993965203754277586265310316116386676184260598096142349345362037066814392907657057683859692532351166455951481633318193083440497798568403750418105961908367828864836566540209311429295228098774047639836885325180185508012985951876936670702456882350468066760417645076115022474179946240018511601876473018463787071874275663116459522077508973837710775657410538779287269502067150536727046742921165759754204499669126642161152829660610588813589046803442560432301405234747295133772918611209380396498629957850402872381861544085198009687017554874685282234046754859204382379819258580721670964098430866289147220759285302015737555328301660018760826617680330538247581222814714630189080762397957899784705003274491273330074906004344512590393892059173794813693060275383078944389189105666327610626993392645663489609466456937491785948699779767371907489533089105589029457355119557808076505710465760256285427014683281577237752396729612824134351289044576458453251356516120214283970185602387187810712421737215788891462883882838277821663641348200519887034094972310197800492082960651276562562379932255420345787602492523683666778085634371492188077544346784486319509907907771624311729084165899704583255411339168515619239777810553200862702909389610082986844261005402182422379293110646126430044971177142046854172952845723592563688880779538699654017444405894317044728867278064328411295827391804926484645224455883555636993245152021036600145675110089816151481194901338143279680559267136260935020149429675982757123992581027003566720269587306518633253025618368440608935645182635419530620536832316794314297414511479744341263824304131613280557896151815424853875629203700234050237019809141200423952255562989349870208947380223717938187233034062203142069857512415732685755576659819319046162031701563644826141379602592521487637982318410713898967706032194300644774674985872098823287026966203060530841990000159336677969609887838856319495935214070419772079077313629571020321505273104822334213314254540982170843077562842773564583486460506529404138984246511482491199700106569152048077433297501936061245527672073703453472281413301080891243957180415031992702248356832186490400383342509767471222880827468048473995218412379811818388726581567079141071220787608455223551135911428485979519622382014403416864960992055265122250351359821884549912106046152517933686311366735598920767779613142555613273821993388458648885071984649842154328305344128775368112971007988378438178174020612359210789278177344166376886065852768750824940082430152462911948379895239240601116409278874890567764434301166919598523936424910449663095776984255492154068559116452534382895356097796720410143806249800667688311722578745007304627446893836128182215324792308416543308420680696125071608433834125161150484221868575666478588764532782764548117007153453440246580058831223418103146244430782590413032807036666464195606202746701680187344102866131139925926588564389449365637036043889163325083576402138512166225322872387105425195944935964602778724414990979651198441576674761190227384835714190599074852562568960185827762168987159318294796585698611016148613181365575394917016193031748994898231892483022520756357067721843643469942950925577666072348071640310451694089227343576838869523358307508950180120599410805548374735145623248649637115060722717086585505526392262482319044825096356376302004144974871356685551034695383022343648678430283152280013451403964860231949559911452700115901334083718863656143177823204071316278861513369467814044720696635055529168740407382888253391850905422948844875487195018024232930601895003367440940674616894813700103107446022493741051730129043175469705239756057566574017465935687895468117628896521606333728529617767380693177263518801911668570860310866094205388093838402301147537924773835314516480109318413679894401172187381454068151327385109671340060937924172513328761315288769398694860154930610541934043542776131796997442743933825708731030016613313589229495101677491210073577751414228073789419100339433411201801790069542035653138388290750272232147930525966269397770671100330415857222751923479320328655848672417761389052437435245589580296501072956980146959964308569567368936798330742687834072959623361066180573462193759443501233258931984815655206834893606639173276073371862561182371572851722107316029407130396287056944821579114441947175165401456581883772683050593180506025212503493078362520468375022855990444599364027012905246950440442192326633944585038828867830935841239147910760997962774141770527442686534309022378035840099449292072530956878021694963436702116573008515641715165205653191106761279868078910914022011996011497149452429917751460972989653764653666415082049902506285848356529845249731781870050460286496481322539754637607851114403031125019580002888023413334737340635615550038817201611164605378662420697242591423295039015170520058500348670310154373384090335336231456472479707237557266461659853755291612654076523955824516818136973702647968040124032040774501503910247470579797772712563931894674508519425265798942260495916822871055480933945608807365386892133861110564908152363526271727158764428178674615893257935835097704095268501397279398371189365991821942617125885320917927775697761204849424975671125633126961842327844737073220737905656668216033082485230264819717484933773490267965572477346533086946657467485669792713164844349885864839236168224203412505112581521136099122850228678793752883919230479209250265218663116695496469085198472546061385166464001376737730004832550725120704640318705170347018970085771712277533339472780472969202013601444002119108799616088964683494383930080075499059796324750700126730431994028967923362678822811991440437213776843730592959313108533667368774098754242662804062686405515146675031293254187466643070438939556537879221653142000399895364136334743306197568098322598487345511941842734347045968365886804868380824703100763875938124127200090571824335453796433030998869946047810506974096112634198836394445223114576424909864337731652897409743535391033615402120599222424276759981220244305350214299859451840918404000565210853030577204538594154693829816180789706212348595768492298634000214109388063669260773417425210968320691469530438330978094988941264606248335523611701939613530113978815883082941390397219143289483767365404056799270839364798712327683999782663566022425258825882043611631114275730974152324933069885452522155973502789988026692628466048660128236049425839753067430178540592601622295106223557400378566129806777391303487424270207512987816729304786153248831629452281754956850026913353825464335781456753400833574211344179457229724132915828830990623867549314671167126607525107754025906022556925455706519664041684721473746726151125395736553938544362375896409246314186465314534087352042855271856040315426377666955922391711173470228412225831591301683877227248744510775719442326398525694377496291985111143967542971532761649785499977475138967073510555010610254170099384772523314760514525527433485766095801469576915470163045157615894250521330984603030781772185911545077348403353837495707649245695494612910839768860089474343559275525181836255231680219206959555951208870698448992960712430404344727309449966250424955992859384495869021709501908182772396581408505712852256631699657962500370162927119047460677530691148291015876342975540886363138143555808340651210534237206923111178298240741428051504061964579301814287978056293579663001122137884817292736298717843449376159829600615451211964010324841017207689162471028539492948506237570045289350704658631167668610749363748866677256501146194476004143295364079046365578690569111196066792571125502951125758121655884879662317583525673940201348359557794579630331568653484073299118155170258638227622441354256319147747715944645712382136689092689863804508971071002509359730236774094410847443733810575693725670974141297127317203607930143339828054560009181550132163094573318989881692851004475838408798080505197017898160231695346223291945002363224336306286875526863321360729516412105944579722588730520930819066082413195222575536712613206222988423688046551792548941083795838770348534345411033337840667183275404583482011219941597365374748813503827750517095272670488003658073522239882492205022805982333923190941522031810931868721039010893458397044923670864338346194613810119717394996145787246932358975577494402333448044303516064397630289960366101271029111606110677625769563863293114829202644716750223883085853092635501266611451947800653296030932766330969725123737396710540067804779939012090865608586716801940453631949784617432602310475048097322309491978434644370634525377365357474526181036158751957560904245545661027787383607291906180559007103181354893902194303106997155989024115085418594058640925103150655410211217877965335851842115202207519764094463219600741479539165489215118984860092019109536739568566130490752884081901601853573739250399513683151312597317369318780004946208004300581423544971913535530918252475385806784075319949712534050070166814820751619713044926193295918452363813820622694201859851421449523125384602904948770487941636115225699632737822263381655100391752820661733290316461192183794666160173436231899034683673816297160378939358150817590434603018605687103028251281924291150455052007358724312971619817616474772451559500676469213099634501832623354716620412016366662940173182123630298891971528509747487715279900127763938886750819265211095261404844719361915745792563422695913909219601302850479966844087479067261675484121260186525935881171438085270236500934384792689425504741561977871427087824421707958630722411000678924281206909536692495710484667271778288480774818763847554698074586159016991028965465773567472257526321359413271170305604285323366118149467107815560822733587283589190560085569203765210040660770792333395324241394095991637954868526109302348564186521822629381120629671264712062299736712983629094880929032079782569053597639992436201207958927276689009391500768078606517025525306710179403615362755751253731599758381460459956862005300738511397814836365446660189086212252990698675654907428022920635348461308914973505510643043817216053403778296330071138935089860262943586507621142001034996771703553767952609364552653901882585783094581226297235265409544761379200277903792040748808005282469275266029740435320209700355103840923201093065899674928850125080118235073727200466243905864913625490875766914298317609808309121659959980423826994949206412155062324559108199762669826860294730923861668273381879742646463495765466555385192992320818028496598303462313087821606396235851214032575848626367880595913181481481424510778728520154578483371892448907721694827197891080302680306074615651427632252114290910367082894979590701609304002475910818720135412933811001324979776294696168194897097035029113428919127492059197542040139333378508384925488471610836206809844595032747876597815134764640682333345812295113165273493270470220675462594339286860305661742333922910329050318219126653757192794172802712755441202547872636538443616629695279360772859068469493117167629105844859344053987210164189613872696540981335134396994187215046990002787255590557290113688021734872933222063417296570715919308819758755721496011108991292470391907536012966289982300678906012939010732867428686492076213818685065414572626459325063907590205022231360222232738655424716414386856391379033306609487421163669216391915690594496920198715464727291715783661740631510375278545124547977154170763078083668519610294937570011928762821644057004732079935899016807059162386150616805647599321932491575926000771273333062908912005210425194961564515359637955028775287896013115231731386465147651284500388238565927259276681953250442762295138355804355943906106444647138576038321268392434869424128118927589324045632227641586827306192747943117477698012017634691899823126473477987735258931126992082584150948700011542506039353923304078765197282551102812871356190989032067670587060336067002817698049363876036388796831215325878917529626704069620386330288753536054158008751695184719413436845486979063415622497540110177617362176261438673837017404731553423496828988321071006222161431230166359936231513287298583080856889864536889202335780050547302199446030919158373422892949304501844369286145403041856648879792289246599232201905185559232593761848474453754046255193443637659855181463876911553595567296547945211246311262008906536603575109890963742541942061906831851143826590719974826715174417747199668522520256577476280879461268240832998294939739121802480270030002724918785968914360257619394598167390616175385242367198679916397828750415920506349775295994527354719403522976974580698584589749607142871335853746690907806193940533152112261004767017369298896986629221026431810420400733792413289352387580502778646409773037764580043045468353307594743254440055167288872612896087748092357661244925613614436101913730127733058129676937580845520439566928439258504033401267535959259338933927145642521815496677009743383278023395592373155011371411608975278026053774868751474708172752172816067586781822215496312069287669201202584995426523858752361960401421276916931545368123465360991043854200542297918099537132258337018746333227589530157965980725603887720314217109327738289850174572253855080152415414070317736127181489360750890424121410438884031891776563788433634862327303304815436878870727619137516136542622906552325630834584315351557008970134986038441938321142426069722846831736129409727330239996431493189875109623781256781825024778855505536648212077260289929391624780584433198620358386645286969706619111990215232078101688509468407181557343999485426423899232155766562805808557476823611478075838539138380994187126871421300777324319783875664138301715961786693178854192072552122094319803701158547190466805026467623075981437181508522805095255138641951579751543037198037687876160856149359344401376141089765546036720042626766482103540131521909496004336491606223504543951343473638271967688879110864692831695739073650171165202173708585136842787733209407112082500176844230371441840148509107503162468344921985220123061019121014201903613099197640445484488426786590790541875428002985998258179021181452134015097432509988623684160196913302794677505025909954659794331136837935827534043001860601113091488652229135583535839245526913250689122464921165631733957269019055928902533372491741365350995554823500522071786476344545378789474613736128729061887931470874741933551666426525902137908930523164326945867187617035990765521437979359754434585030668987401238375069362365620663814799872756563208315424280701582500560254437184167999389719969368717212356238541890699873124868678589803927698248633853999911527148662312018805872863368283840427783738006546447596415509139110528116751662985147164019275491823977318604518328854004353094077556703849382122230909745071058296235538091623407992417482422928985459150952541249302165549350360948937116719798857259740435297687860910433724108638258090705644698196901833107507018750788091490103562310789405032370695048032245755367073852226634616132965279032328008752287636843653508376973130310099698536714291169101527309579859358253313788679276388556379220047053388641794168572809790747922478491844107610309648237848065696860925037794917100098613530532880241273771305640191577144845673580362640940916483090114391767459451691876029849302944542519783381033424139288524148546451994388095937106348115027183727752626585095842341705459412407664241816261739421378224867463518960486857828940095429330670410223643626572531860512819518220234722746229841880345020774725715519193350842552632536320331668516197637666547445111347712138947267663240462118956525349999336901092866681268015416018943722646687677152148070256564012308513869113230714490824311959929830302086722980292455905304811331082001278282057674463874986288382832444418610461923956407295027090486898433857814938413783719677909374302283045469291718774148466898901456154177092374677198330476497059216360523589577919497075793515849006075646597515668600683809339044182477376540810263643152830096081223274097694177878698225473795739039330820022563073647445782702642549374166116438885497975127119706840311493576741721097064982138115253417012545345518924870861387920465104306259037964651961011563574831853274279328407032622878707006814658349204195342727113085164299101688693100295082808037602721892727244543069921591570823048014212595248841205239901723450641609110276398082535902783827925518618283728285641089997716052168222598635934520359409157883342531749420105146763097815575465309507005515252864123685891309760516801763084966056002593294565086876000879235850488470398775527825969277092456382950844976868432617961981908659650528113790259965477691301508094362800348496433634870913525554555962819979875695447751289682397373123832925186016617234357882655275411159813161698287111133315730568883958635507080457705137957061521848350507731725668883724117995028900911517923655518717410111915824628720196524406375857306226419617842989765603767673115836210168357255079117270072746522250497372496153198682535654601027015209425365906142044916141852295220191020761215424854078507168844639745448279467501918970182082060004377275746429270324743648961834085045536607659364458376749005243092808358510746548533579664503863558984723974591243509338268035208701368519999444879374188972864177456939564822827155170195395529422603175416868291789953239922482472203177131694960933763257117424375591427252294845761056527598159869878423466178255879239687689986902401919946300530189920610015214898068404287990813156333418395702160852535730051170905955860984405983337370806951788302677643535863576391898421444163774548376484382216547050249087131183176387965345694151832988166778984413987446368537006675678016183609547108540562018858227742878768757914328259102174750790862882561669502750624656830755290704796182638207396369154936322515223079845843593243065821771005518668647136214928604335693539411879313821774459643904955934215705943171812925015502133370621838535802709534235133383737501832626467723386262667858312681466588876401287715202080064590453854798874389761287746931145592341462265165931623987050866539393441236472134730468055384373838687231519350075757594394034238208583897927414574926867131759266312443688333587840995587252307664737192211380296969064149285847254797602951555515525357712458337137931294126173723622829568904821302300356796059290385160417812957664061275527344075210367042643127658293537008522581777325632143373300451619157956069586882381883134604905302491453179826616126281513140209811226546351316525853880413880467788152875843612816671028854564563789798880530477383421843366351395264715212084051242893184389188551622281891821621961660375523780784975335343673077048969795147464785644142114550247653571125542094848983162189914556785733999828410645247353656247452986229323555523995699862013846281941670690016954330899472168039618025152282248392355633355991304746705935729587842908021324964254988874158086487534205852795367737953541300670180720709007088211504727694943178200103441655996445830121644082870730879869234544121937513756819838546612407724582972567315174231319706239061562424487549247677094720591681449273410588206490978006198642730945658397987887240513416700109614750814184322703131810522072216373776024184002444631517017299182053894170852302401762661712469172374029224994222075912616668374466916360283825857512606097318431484189920580879392140340012636745120161784134011388313565950955258916894457999463442440338892921751568908280732228366028225062716108548749819584736033915309187718020140834119424324702298921142953402578141760259207426225375189350452680545053894793485968307028183219143639317452564150515934471901068449830471803386763915747091427168012781828211764528803209572955233004134824826265605915121653180466381616913178690619805708666392040778297067554784298288489513843318701230995221271897659283769621611425300762505141294838326143013214164395473925180120980262363551239855439910453182290021398606549506655392992560761409244788658191616319368123565722342011480695731825284317184853421464493776259105940241333127531740058352826953589137769921350128000297494670763274029049629114962972486719394566248890855359598053374065911488565158726539649551153552032310219887009809635879533573456620529926544389343195773385313246385186998749180540252676200270875695662036717391393542162354148401582015331349078023752271766031471918337420993179314513300722171393501824404234911308602639764059391645472955300376082003386757055299957816454217668998206646910027003746217085003005357106893891506292457246289943212742489025363547665948756960581545349130184315772490241522599066399850404332722804881751472696239784922042696212111442481505393783616820045760338774640208572159183581774380450100968790131817824015693368672643846646355997444780818622024395024086994545720767912776765329006744855485720920872216755068999755352733849599133640704397170445778073379652718963879148577189234758495857475652782535653877919005291057899166103871541892493947049257988382964038436981440462923537528463208581992351730451254309766695614397439001295612331235073883537023849088397933583909563599254300267906573308321311390896828626055068332824891799675968232686777414278257872529674942332701688750172486914097673115823443654435041119364628048874914071684737979859210009922986449843705087982143969142414184421576459896315841893738075929555007386635060088192586119411903737192009737602133413869934722093340770464470186979337003404907348266772774381079631668287010279807014510428940953042719150077435606524852292630801500327383084153021166800783961085571256306751963149892811409530901015069429485466123418405435040830812940342706283913682581340249887056394601127763492180356674037920693634679140226098073416443784173520145988466392702504720952552975975852976712241209130487619683419518801645397033835975192788424560345082856647502746122432021006895003095989181942198802032807046140665297738178875017664444224560628442686572565552049412855125475652926498146022258419435364274674154160415748050849618262549505148084881852041211168115858004439626117631633647531674584550717681390551515251434639516460621108794867547591947353309032003627959220287123754780481279064583688059891534064517076665482499096720807505925175705301435259929336014870976864916278393886657769500124509573145292026044093953258542398367538213026778160551045449852070938463253640819453423421738382050102526607438392871538873819964769274373921367587316776881050250062904690796214315923839306952351527169142349770085506923781148331518701212510853946343889011904427684944170421512543262973271413818664212069013590327946723513573725546713211313788800317709425092476560592938329152594813961885940887015334190332496437954455283083304100875207239147168847832174606891421345107910003934711742390058969287113788511607408210651099127519906215800592886899954132433199104272610522480791741641662072055634951729247387213459557285856410027884697605681168656211545349084118912424659869897183943152906426841362808617036602915481416321597883738931662437704714233665483820949531380674068521820119884616848982174766444546519972638948399555888496531564358605188539093170336789993066210111104858502156558895235556868572941060659147864497477102892800669642626049736393102129059527773320885585641309740615372621622751391720505076946796396894426627052899466455908992979119312811671077079559805730731734233178305643823163022421521798768487374171844737932452268742985216391142370887946697705577895243088178096705148096309735233213056744424789281075535438997047260524734780631253220546321530353411555877713032428495987509395335214594877123493812895009954697306513387498942320260685203011687645936105221408864458560634254130624109229664213780523798779070232947606239948181033137405126047481064482626913399541604625374922320786204050492623081779522453508140859581735000674525546449795501057762888307774184774566612888539614668705937138925655043987516585639140188664584792268582702225104982824343228731918006313411774447291879258838890406588877021689603482886675245689069671218419821281738586888263160331172252263663249187916815384970802017884746547808338412358277377940776426032394096859063072783650727490487435060474605368758614248478183011645680595894266640988421342931956526355783160872237915173972318556658905094536730619196870533893172701784855139331518266696214563974458371728771551558836217383899451871557369937441764113684061178943491968358804365744238766093213465210925600782193742797344431037054927800863071019244933040806747175898951653847110972352067245089575252763460954096971878471939155764737753782381411478250859557603976132841688985431723297988490797269328451189075739339939862847577509886282835947926761255795001155296425846376239521643840037169933719449126538579109410451080015325517705166508875803473432541066628194404354568281380083436113621728385566026953744392454327422375099489299620588109985657109073285527789464640775648910886173027883061382249149381179878274471550185546741325240098284580830619345942686926885268079744958542729653540536903074197890509918842510568397182553699600997371986959768424735705742275852551115979194194712523089009279700537715980002684803573537088045496579350982887571471012048653728389694783254023379153057464069188656702050345224675075648592351812517051953903642284263670861715696226500188928852960433635897134436872804743715825438700217045427157661814701827078174477755381114468032780112307426246577655271336890785103476041744547790697330766266378020868411074908292626565379621141349953968619986444474924959551885650050894118644100699002888087470094899312033720603850141537674381822014755393522910576104475605956302555646655214603183300781974034265076709618244640562076824182176430267313665599278977856301671173685854537749074187587689513105099987935080297650706575236750944816339126456057392433140917223805499502253854223111139579741660771949189055870385279102100130669824566666313843338759756830243962463278386185418935626485637177141179942931665854032772582732863563112373347593334171777798308683318384779085706739899000767244823623532968193315733789363622650844008401435183855565793571195310764191911729216528623461550387387578639730804547785455845223176785171306497505498611450902321075264861983422511481809719290851189367805010898061118329050786394523014799906215593434382047930961065149997049891818738668931748618010687791716154521970145630265336749329316562735387954953255208048629963555256167456452146859443361302442229432567117995338349051506092788945296550611533784568628862895561042318526731083132710983367651601389344497441855218929212453568003514122190263035107434971867835158650503534983738614220125097904743341847318180102220843138508424162627929911996995550509044344126531843209353229480607839079010659531945549958369065186209003667087540697521329978123677341430506555081528022946513046714445685706793875121413708788224018845515398891686647478512350974592214084918037708432723697757700905920195889446024347137480986159676418789673197352038532024246508558975326559171539094747129088711175058501285336760577005354707194958373103045363587744836942489198795238230254287165432281311667437041302338173089141957393359205038031123688250174564601809465500563810505973512029279425570902125583555467654291892412614418703898472554991812527781757312893766946182076585683357729330155365395039735937770874305917589748907495937475772855018264553859218808963161501623658133397904187708603213576790956772861484321818553014467664534959584006679945818457535638064145603376327134079214303523576555253978984351626850806432885750713023508939864998630741995445130865928362589710769339912026910078719091875826004667767450054122048122625731706346620926697009443050221815824048979228226633633302448479433960162883514456456703353100746707350289848215445847905361967322739155481507561806777609406585346578241221568018037963758028105128692547977965949556805165059816283303701522743826762574545475106331413782411464664726592757943060283941998802312331112620722604138161455911041723004645231145995251561151259206137422726046119139539335179080253708564018506010872281754496829949965518541624042264001295475721739297271481039518876990344459300320649957450515265221242133033319489445973832491354992346708148029408038032101410538832872012858559032695466213250089849029181151695660827161887492395762253569049680302368386795080664120376250183793426538171451476009047701900504034601559632212065490136746220183751914589408220428692447329323245030404305658502616109906939928060235772599814747478120934885928358875902666927806720266597951929242840992990233544867838171037695906498987885703646735362936433132347955393373139332709311307934926846154037871757866867957977145847551498229981218721723855640154189948817975192330222738195425561192110138542635440871663471320287776100823012617995427245955358889295631344835504537713211217593936405407294134685272602759560422668248993610272764967852168112282633707042442094040463706113226569774253233981612410320446809115688838423028236190411640054844053835394100429265640717684365684093795585667793271545836438181555811605062635533590048000217471943255861612832704385224168881091236592353201427835919070568241476876720844113237717671146606530328064125875265183795860409138164347957712003909080143099388781808908437970807843267237283818769756253406341053553216860357815217134171662345045931048097482215850459715342212072900159058434072774815516722881850124154664777259833306549683936437144673138774508824671673540967754500793593101009448325670579488155793302257924273767438882167344108031958908390186509441171104160152583494353402542540938835675528489648196964641808918015889044151475961728456662354024016438640342983320456475393732022074464074344272011207403395090564458714426656741484517879311443217341530693552369776222031330375191525510078060227002960889532508578478608964219370410136555961169096274763133861304353943461938208966624445526932127967910943082145777917031499707468647782387778548141113868791736142920895684376682172912865211077963629834213608738641304973055673581715709025539532383043238981542360100258229840273207645544610248140329454642181848295863906436623476855397576623173220298453311623565702869671268825925101339553011249811373316038035136947823588374158190486262271814463441241862541739277794661728680316006377544679098664126073899959903685775079838312234366086891774304632202902790586025856708481466565716598712322597856456061017782559970261674518667069385733878402748388284235652065402343063534834896230134892845029672915828335142500749246488447541226229309880405269796286379403684921496698263011196199508707093322567052628082070510828755263883389399850849363791612692540052917423367213540659495693141675400015157098515083050289123481957301784569650733728638503077053430338690042494673649445780997935288143931722848777898650452887711170307426279069372847697270373726476334131187388223608595675555296040379591652910284900955146282369532512748649756471633074501502992837592847046077008781887381194111085562448615098622256646482629471011939747009869497889547266155448563032133812441403133938285204828244447739792317651608081673927105340958653771651850172554800556817362272737696118746075758656403507871017081311896291739296649918822530536721227376970906365840630771616193064811357834257037650873784855189555061103481449955498523983639396492096155448845394442753265203706725432460557748858162029492033880301377554428476460782973852716163043249348434476672958083294990625548839814153294291950667747985154861669422104896173262538984554158027580289890262921995650586151837592307799887655565442529973878246237450247466371628599048432182748550153897907808862890523868909628911151403467477356764936089948722158343429285202594678266779182418879952497649263672579895857222933538499273681184445823492077740860850958843396224657252174331377904167847014336739217988666065286164339367155327577984875887349766398928644674692835364309263713283940598020431651891544907198539893678902607231765572771457884713711062881737520420438048221099612884179861692762653354091033148860656669231895828243121601909157900725665344417101991126637213807885520618492870431050525831489867000023134843649736505191706633316153377700897245355241204895254726658247686754361551925691979138160085655670911376419352616060685556161613269136863148828044788405927533136431869379275873007563898383297761367194496232886916915302617050100928895089997081335766278923779204528011259500714963438184809313687772818035875457201510787906070636739259899017161806951421802658932373335027806055165637858669973217417141383700164283335918324513979848168646879785633496311747699344858644919552548134340936645831906891783764512121792357511456098887673020156938888006689367264198066037542439946191337188670059834140225157419957422870338113781952800620528859365782658999912676130083402522966439566995929662078984329831272477150141419636263701990470980167077042963742045929858529559738188476915437179896866870465041991580036189063081787498707672087629543579440724609897526527775566317641436828931363243917543674185942773500849895569511012921703728598929788475864083394351361620899683599174036458661678897077387053850845778147407814979048883192048403319975384644108553950826827642945855282090718945555912524062565306536848486331170598068234512196012053267617625648094519866575905779888665665639250322404188133793836647264814595236318219941071572136322987391309556642259251491708949505952042302923123433142892562064506497198206487805256300994803949627757051448766042763028841447390886466781735156420206352782964353019673099701638917213106960750081248032631193939606853764945977505235240877381090825248836426045060039205675008282402541977519084202308046547786786269225763330745814759208866050639040981943154379717433976286901598179357395850261077920225191709734848463081195700691352770739990331756668415283100038604791070459504827199703068414039596247323094731420250501556817808771547226122686855249247604577014821060981283429704566028759460730661553790024066621212827049214303470399774428996418167339486966120844028029702785736847592124077051733157760660155291190237277397671324456869543885908561330954993387217453581470002621043967138915312399724121476325793353639432142277059769366787444144368445866103890741153777614260665774632219424816779335388982578132723507461744382064450583033408288262735781146300796804053496844927983323980783454451876980099125001324174848911185201855566595394669752517494865754215348195482729561029358872426998650579128285654333147365398887953086034875194282776139009858236245277171807628916298996315649113056501507081868882353503790225336555722113437345795859307076670707281965351207161318761150584354577692604063536745817601304375447756191874475668952577224934993965409270044781270504196274877380640719128701426088337128626241494462663905299111261646513962425542019481120733269925957229402181615452777181173631180216235817131032185277078290920952301916564823876952515093944458149536395069340071165164503136284571729664605843226257481958565666355533014206980053616248261262317012337823560508638836117733995817597050678462750443671681503718379138908082521151047179291535296814434058875397881112434874550750647169027893446203475794203101467793351433018623658066236219356934389978274699462978311985878910496345368453359316165251669266115411579442246789324093633567833205555583523758241341037070253264923911514740324021879121098730403521607755414286267545815711756984854421391972617458327183736197795830570531688701817676405171074512852788318798738658504608214127729087544716383842791439336393828475650312920267100035442983987424118809779619808703893006915334500978401365835101257370563288305685145912939539522108879782026180730984797272134265089789140075134990802475736624659325645470613998965338983545809158836426481525250710497061079552467548628005521006989683903120059881268677714608145185060760588954731809175725100950499364719295231552805611186644678234335705538741715270405954244665760071772265001092013512273335611159081235903828747883630724969756983571548176639720528755819485240728016428752427935394418072623594554694760531182487827302182874110526973803273593367934145106275680873600593337415808865477953612546159964855795254723436123335039384446540917348255117595581703813511576496514554546589889394095438243566558808118999380271543941106583479691385233686630501443732246163953047958122736363756604947356092968466260783510637128436455948801839436844345995310632918864547001924146802591471050753849149838629560529146379019686860206973845257432176673122437348313015642858659515259312265003480257618044316533708399780639326696310414854185978028751981187053610308429921790202718746982707171379889997475279715465041975895842359110315080675435554433398074944689683715947347552306099962643858712420723048792990196382818374603678172936013759106381741419108424752814069511123898162575263161428819173069510261476135660129139653566093456200811983900022306844018009475128085799741981198358580558947205061585640116205897129953640881760828214033911401016036728556197116116368869931225881802564916186210636221938589750327726469583615260760281286688063027553304489454229835371490476875783023826183551758177887594630440128998910207703533186203705451608287954937227939013437836080333082835755187328362348206162820317041353649613981520337869578113561438639885648507850052758983581096074359953583665109456091141356740922818759257666135481776834043627870354498605955538425510149269343444718297392066893233171635163166916684182703507921907536151238513112545149919982581034807379300292782095589143083456032926891679630552168322818128586419435335794830708698063775750537805368289435696835380766529554462618883293789857091254968754995298239597232024140998993370014609423260954944084509366935305697437985954481072316974366395630903777133109130008301494600535059252641412190991847538550018265873116134444421833996933414115406325377528804768169488508826649058363308701308145868370412299810075170580970272745557004132779663776560746548666097979017783115083970641821151010395715465932439465872693787136889953257420703782009506449548566841343942085460093331676428053828624228413935297846571903552899835534355465509672269663242722259038158680182692154250952583094261041278638388490614716548615366452490708271580180708107961657220649908341015954364388002130778623664968851776924160493053742664926522068289818438201190343796044057420354728601242100432851139202618775801255587389560942407089042332681641397298593274971246861603940499411141738962943655546982072594332529139441104732536087941532371216418295939431223594551642801146884248268293028445042546359922840363712732609315930296838406219929345484666928323814278214619527870467075856616405690525394038436856479472277943697736854293051760663614426503047723642477672723665765433048215156550511762384781591096658891830653372350366963026046572775777892991815206182783166852673145466569332295074920876166707339831103426291404767687522351429123421837619372743080742598070887195048180597805588316375754304793823682588187755392590973769969681985259400573932496055266852990750203594521928046705078539649695415216307125048769098484136100209650948023384305383513044626929177924566748493673797531863757379721454268413596033393355501161516092368865362264825861281295313837975977800557031637518717400245910788364515731487084947707223628171552957367012435735864248108690763805041984341785871867445557637875301609703828141483628962054889339721991278913794702156917828884404799435669392845295035381961093282815816133822859758479940969360786344386316499620086006468694589381183359632838908692155563718385958901814751913233971970208637499213608091032132818813954052048576884017853502700513212282252636838730884894128118010375090293327938334212359464844009607496406380358347280574635550169414805664124808052933502435259605239695666293582362116450614725801632604834998972833809548468782100734579041153203339991022880252422915432434791560801411861509195028964826872683506219084671422521130785212706617938027910043865152515490409267986561080810709004738018360472429709547093484358346320964034096869770633131248598868051580704441370168021564852761751633650165505526830644939039053355085703949861789677902095242935410031748892600312373902230476904542536824800666470612073126956694158732257459533178108682704552337158810219590825908482755676134456703496210058499721120337280730196873578014390834123918084875688792895673976185399557857592042715146501569059429522498734180474568381268041864032623360224659985817544124700849506062347933789654849730014415029418724719333301068232020010389793245762757097562880427204703917474313696386942790797486570234681168088131489382531272669551429825193384318783774368401098670761359812421106209856496517763474536089283507623098582101961443094803019229140838237508032386008808508427077275516769561507095095763116782251721578638562120928024577934239887571454278874463719995593079252840894508027912108055681359160393171924012282431205368878847860578133943479927897772899828709906906754419015616283983751207844278412977921422825810296946395561678443267847894869788902317440563189688028315927854449361566976055138583043435039302163858035012057138145473014785837605592922216660521134420119914846046726086115408041762110114990496669269772211234028527506437556759067757636173499674150998422760675708691896701117666177232063766947163148165713798708478156549287243733766217061569050722834247185441404202866207086001154804291742142147083122672942209811518802967536334343797323862394692666200081769101176046343316940183679697190049646781814959478812563845261724123080259872901485455123422017488093117068204648609235114238632708391763235272436319885020193865632519513030440542665278811690042289595795975141657004553353861281134261233406732027083140846958579932700800774816794912862199711990186726667246445612152919736125525752654910976277253472997699652211561089284075589151713373984039801723088384391535393752688614676599702829045524507859492548740673023718395628657314094564223553550010660963869213651552504151742503110852540742106724744118210723895320374915557289545427892905045481233285765693778751679924740879632238659633776191220120383913464038864952214501922687594918995879667370961704831994850301595245628628353955599859542048092094004148033469060388319283992023011181676065852025618094379061807250874158945387281242051269949547150240947342684191136131510656989566819917681122833192971133986257489032662131580191012961254982877994359084161029163541753162871377928642021793087605829869532351951509274104411007270513725020416693094835254354697944975509772641884873597964262036237909583718946282667917115231425208383754588403696064573376221244129280464168916302980744260531784118664640768484957385295643545558128672666065625074841383662171448750453612613527918382416317716579965844210988583851528869433936854352882393880384003558377419028510675172097231689192225957640949216861909619857555914629877250793613962347763567925003670480640754119299692508290344642974084279369393715250246897623176267912968361123361701216748776309495257354788506364392664473367218398670384323193284912394931129702063360368982482583902758438773756034420608757515091730686551697956629477204977719285824736378170076911632947868374185109777842827715043546616896435294160619775104274488083626664471621962217498537256769957645792177079365276888492444026754535122516550913189644944770028605641646296870870947226390635166816184340584656613833126226500445512443182111704665364985452807525990322671435398786278826141864463151524011780177247262885099237845556549621014869782419872059360329667205097304169813892186667914417390120728909522076508031549377630191671595569276883453800047254926153810232583865777372526219620922275078222821965944413411009743365162042418651535216519937601237512005251230868297454707929757949858308405467313383226886056938528872342451276717295662002739357411286435809652447018956508761863214163883285129449700154711533205826975549295456734565306266625428947490952334901600847454294836653274956250219166134460244429659514698636439874737778873747194710503654776284553441253546187276366645369300786069063419101817959118705956083963353673386980894597167293953679995050778114656678370562876725699731864796956685766806381312286235790087360920474689576489768508246224326632022124580503604932645747760179557209417279356889180745584330431512996597905232350246910287926484763943946207373946155678311301395213272931410412005397045501846516032977444840888873689676845895283720649731452247329098944511481638628412172663923500914503494428061947913074162464735397310813662255704748310921728466383034645747529277403318376085439823657665184728029024508786525440637975619359712669872717308893485809573764414242347926845336076595762596214133319993823944226222145871730769450206671783452062308881860292441480807091782795389953309541879296986915474745272538796200119656676069361821058770014862383169356126239219871855198781273650865265871980356933333271849423149803463272612585786300295626558511965565083267455631123082338218625040568474146712308126638800505403452972372658638265219152652660534103791964957312048523593134637338897406062246882286188749329401502528404106108770685308917795081191517676679822310577131791181854349657117827132799202719425026782701461126952680180160907712138937929206802683824358149540650088409993153554157952768192898345083730908948206187357090339816232406376258406405455873863640472052337400980443384930345038515255564132936087961685533858317495833435776283164878693865511679961870950244412609098724217122189770219959400764149201852141928435739974360113128592880204958341983971619830974154802231852795742572139182842041349733830017633366642667081530198651485049054441710417077818268010725661194739044623967334538813025061444439458189827112055546490217872889976674092971509478303537421919661253409181652981201507679460351696936635910197583310397560807961781580720703317760033758005873757936370367143607806595686715508538413881548042961777271783210329196257588512664441881609980373696669844814837613117817699735461395205902922007869671941064787534424433418899660371817887776502751025479142753178262076790326302269692340684342004845150443311073459426129312629279773202367445509598951543491622418057876213580407249332029122141625549056173024938899258981002561416091930473097461751629658949004820352241262264284166234876828491230178148983333147378075164140937714678163357087242266253789185380869860009304347895057135429227757117715867239915973489759444520311363786868247398370063327453751475943224210634770239016546609327767930841059581717672839692552339487154541119144564879883495721117665192781527437670133868459746480834362787562846355476289493186098637300183662990860627021024134603316894571344189318264788029715069185167434082337500421380331735062528644780883371175538742775705484618305090839544185947663182259837964853293154682762454365786075899712263649715461519606971247253685776157080730143147217755816423046249554015365114276370051469557654453810960037258265743654108165394196637040512550113030628594640950765553585283902517246592938146327459998803018813185023368315931411149946618451468724424315250749564985346979148846617382384298924301778900100142686806771392822449982918751987922095307230086894529869775360510814383701510073270200463208563081544472330891943749598922551508215704516705874123430443289198790207522927502616751217173898528885378207589691650904284799544432320049283534344343402509419861311383997991146623226550913598256220733744268450620801435612416452151845963137234041169706374478723282912482056130991523788741752951121545383213646300810759048480207957061638934082960935368240874383933076705400042766631773602144406838628327385010623886417951467840200700632060018057698499454211484863224283295947635386454011479329395673273238410333916234194808165004557703619361638428996669570655652840739449023857283282197092301048362631455012398527533340585798487356564372176400351878525748315962701284057967539005048083698034770116145016003912869851416106708266564362665912170462367127678718148572556707668539896769487664122773451510716069281739181592675888339570870775319829713863081114133971258074361705740630354336206733618727460522655930554219609383155508350356079556752699874253639104538089114969727932880920015680441451164928734081869603154660908145658740594220198188075547822644430963316059176721302745765822255107352418640675477438819687939453791415069198046572652849036864330428261517798112447096340850962245701830234422814571067085676041431206270083476655023272503487340865604738866961243955803809446772093729021863810082860435019361046187435948077339725187299616067567022543451692981352192220183944696142120801926409494941092885852495396808112832855517837581771040498978594805398918093072206960543093434381850434878555062917041986948473080412169650139833576961627821134766493363493345874430882525970578492492871461907371627989539827672594214196850765598427182812705373364382985567065040337612257696674703784374268307422464615822623548960077774612140937874017800939021650884908712612344959718883579906016142557246176261784281502574050525153646222572153727256026662992618874842272509428942796576357194979476412664040682200065184571522487237843844416001661292809242890193336420657030156447551211109127853699643558462040460108189000715397691103658169622999375322676945744305938648456561925923612182393656822445216784757094974279466004076264399894476054878321816379783286552269516471794717750134146918955615192379431908676560253339613305892077949060028229147539752028857415794770806497385016679713695305083828019199608472778702194588045243958997854669439351403478341985255759347987212603140498328898554072791017704605650781848592189903650570355862125817435347468721675551631050210573599776103804608285199922207476354063765914669569358111772992361254155886308618723352046679941088127557056828912856363567227527678827389236069865034553867045614141022980647118787822542914736108894759381558281117219502054121135528000303734295442704595366220801295213970271493487005785244005496184489511169042492993440200289873013918514598593564110954984563027844456965388925496439577521675011733880591929765877076082448519300475835733564605801605709325713783263342601060850039157898272941609576886530334527313121912177819852959909626911269344963772015954332631160409467956274855770693336365790286228994846048734762285208780310602472488830288213952685591249405517371048949013454883883490945049977755982799102726241041659440115330784853178505789991005936646685558174343874670026733574601845381905548198124427218043144422865733071139864176764761654950895652140168337551449129183523761818113149806122508130686821759657357311776152824844893345160963530431236880511179714510122887117287501450947917214551477937789329613341172485801718934181287505398766862595530906405393022922423665801678089844529004190445112987061668069136030962313491382031376974442989482991598036681040549522370463025053459293330474369961814108134660598713221720738603662848982860088721332968460812122667365206412870568216338994405543595251111084247151915142788294284742337211810220296826740570249618274103190309724118924967495920974570811988148483531210410919234144816211895055029768961405899961630223571542443239805711937493102091235669254749162958564217794124046907899469050244607389782949605941405898103239187936382830084315079498596225504034845711606137072950547426840907508598626405678393798072973129577399166997727222908221085375990657892206316334541835872739941664979175934789298684875497019732741680551191098750403565776591528613189298434244607078785177405429466056429578665857493926885159238059352255286306174981405072694716342113163800627701857371324350832099374682308097573832785243144448097771616949107972084485206271916111321980607559081643978088531793451849250914046403273946062872393329114850607825042472773255551223610505267514024156162617001620782340006532243810652553591258917236968986877656641007762380279219701973035564945782689815163469577737720658744889366938820886618606458775793075254093396354676089974937518362263356315704979861965510044744880644102719852013690124027689880605339551844191940945253185258867216617142618271677427910218962864221556959349618217850504824242763603328571575699627862087693929333834704195004409805798993483076717126598315518698123446860591495966511996187714116161259727617645735113342341197958895116262970896520984010491331030002923982728743801404077267399994102872223420449147732668424485689789906866758143751842010666730760474439393767919641786463375911443015901858679097275475281478227773465023815125797416283685879202757358719524992089160976891359669063183691402226575678321620163679459666133294959656359621072091805246602682483979347930364908435564641472158130087578245369396755159209959409764543184685932539447472003568785160911938742124748525449868967772549697163902914716951923118872860035719337434242127669080658549083354210325767687201252251016285063562336347980365064660743116477897483068790552317080735477746768236575051830716204186375748351939671054397131773994761765412054195807607890388298959744616290870076751336678847879328211517139021089607317446021605731154087270104215220216873596324621306779483175227166954016722030060959349533089913002286637276381127401527514519497409848766433870275430348493637581458860132838082035976370914747978328190299718218728954503865795188907493047375279561105443879529813553466360092233910747672250082425277930216834014154197885781654019124202732517604154683497343391428834142783305013561352367115784603020169321887888267356166055529604065461990722694690450189776430357549447534884783375183709686127165178735964876001569071771094773003081363058972157533933891524710569101245205614718768738814953681969710184816317228577910561907787679217231389537765052881048012375722180487392697276560280933606331504212171898311175438167760302737408528960368230716017959186016252558000957664941133569235120159250843665762298476085892360983775407191574445741698332120240448842049095374536098686322447429993826259316418133445145306437421408509294913651121425055650752305781537380592680056061040608823750702730669400856385261317190790531708970221483500682807822899868844967447566569418891414729193932623370790879207889585237059287218599258414850513723400009624221549386206746673507198380031216347963150613723299928873610208541680800353237590780207468622432759366499587913714627882047724504252846472719425409474464230153297593673306064559510724695897279836507215505198101812885279056756886382025036372474845228560861746453570991925513108598472700065239673068294452587153671180536028673707885600691746507799560321914234473857948327262545190158152989906989975403309370340620341516754888089222758074085351086932682107200417388705413904776358985712535248295463217960579262457656782786155499454343450743235580702693842165624963355872756035543394524245500895575981826895024779901524348869153623268591497978608354727717971398606749114259382914441458557526036112986456266477055813743120451750648469553092478544916502939057469518849433518635035008803158221165574087948412176596983030951433639655296065631697926561494627965055818268100935195021921861504423871168176350409415181035193855796588923979031644822541095115101980956645801633345629039740839624214888192105339296044161804213753311086547639334715263232766042130242910635483564916754076828967814478003060470157512021423027114316751247234109147000092158241275578582969324678353447942674335909179238623775995294753153832385126610372091760973895163524349003730465657657394186296920875808430888684336769149084072628017046663716088377162120883103999371243773434404657698050751299291089161881874886777392059205247455813044975544549229274545450718043724679188962940703223940226368464800185889477799582742550915008645426335651939260039666714453254910688261379383108848195914403544246343202956065713109940261630222981059779282143656006443005179412150104209027362003364867979780150637229058953232923658686460667960730317380767013546510655873937104176666597477811387130574272635374699134356532352578964918449115232432760784827957065548647402882312484533878258622584088110005569058152859940173153483842379844171178099699669867886024484056441270743876173357823656004574724446268860252019389900683571403448147788992347114006506681229497626741121929312790551158942027410903968622670293765260170656423152786348567390518190216748251158389794670100318228659357136109423420913158154755460370620307381409223752093842157015929453927708540059165113780460371190256687662948358415736404795940788190890665488001810573268684746430200710147373990112978688154944795240504491798899854650698698834733156509925212076406555529966709345603860601814774363051868719792347438639326854622537207883962293296920947829632668506443706515392878733932930274533604812827547509284660817160247052868307958225412706620642525826106055160911817516773492556528110303718801041925295400056686414700902076520954539938783585336284576275344765896111667046312298062385269917305809316446568728296090631460192144137866202297032575507164228520934342237347871389129174765615491671734642636484004591504297050665493529941500722596627698155689006192669408330338985111941448615743572469489415097263856643668314293749706833866248562921141976520901860073219360129010380851796063078502627351505882927502954181741761779711512122825431653653524675724509553921289048800514876342786378619848621745143677992730474625061217485831766184499657124231515999842238191325955160998918096107610367442053576619271137728081659902248324258419044193684156570135536196178622123736150585528848351430043499904010171855203676818239558976971736552080904739408747701852458580473396347589603041602733554837331399559599108784260036463926140019453878593475549014089726052267371944158424559102629414878315422911038462495165461075135713965733399174614487984542181123235196232458163112351263428175381897841994104367859892858439244216126306578314140288006793418332142143491299318738278680090969893825592560100697170147000063556086659506805632748009416082724368748513532719527305390326618857191271515610021366665150841355572456213853008637964800946314474558280934173187241635817741692240814742360969447811264029906909150484994813307055432873565379546118145638741240623007010736004580749480450308764184887456801521092229472463566688082141501019356484222663330129659450693410458381020341427146806097663846951221455903874002309400168070492136572213269815317229972272241763481252708657354707452068135674105832340853877876857379542205889603194766973295745381701309220452072147458081066508565682152909743441631673944553060231779156068165493849288843048610717421800929256311156104224114809237706142052271901611399219483977512312595854491488365026242067240584688693265639218583300000279875560832239154265008765107972614324201408520760604534024354371471143068804783828690580948919593283931004320054376154454534194411862713088038777110815272304478636622807845799544022806943347450559030746712409333033775195092155969455988030500985945974796614756682250286055893160549032831218112304530994593761605330686273388326731052056470286555825502320873692634825518729276463192770891657975116579042841017988745129444570768911675632063232262695911017947882464861995082779045367560979825648417009163313873808099227414789968262372965906597348715351930104344861592709331825199911837811258326782846670615929916433991833983774164083293480240784971922722205986591752440512010295010494390790639742032111358860144465999138675993322603218264573411892889645873822742884141511506063322976827043619972983121678618919419655078145888658181264645481916210924757791803719645057733181973175037756379901902308846553900419464812893690652896907773668086547066672647396249701195375597602951627062828656330892836887178431608322977044439674712500255883748457671438486178986466059730900031587886474399415014654557652759172514601402051505270200438468458399014645916988289677281649588892286687385173331160146646626482877716529777324577303036218745112206805286857253728741417122156844572366231052580927579027189068595567707871227297744155581253242884741145893878476270437195388470724440538372832284861341370828962140169202101049173630307771529540355587843654137080412602532148997024664167453888322887954974114441525612615209186625080421397038587308762255293613191793039974047064998612711061063904747110922452933736563209137369066994553948087875569744421687224450828645466996679676571391937391844557223962582216780085235105438428722616685496540260502723627757110596337330330830387331644632426995129922421486043326310761933430867526989146637277618210665974964118719987980262272212011007848628271478771312021036005549830486146836283517875373062985910632256935271379195576938347989213905730763407889667018932291175758088777518410774965934863851286770085779093674956893088346080166778830618358269864213040492297469637067276579154544057533115219133678218240232559791981006513059045960807214471345635862201664996234130007277206940748362631600855262759528514506029221468087479924026566627128201785928468034775519943047135993959208638241770543839689395595433902740006055269761581709033820398870491047572305701766324599620311262685166200570307681457835034994593085942864402479559555559466456356234906043519606858552117490779402752742894333851784318111945242860716540586578754865610326946853874920428538534739416789860480089406753722689989937965667409361614290187143214612548334269643769377487774397704188428178859853234184015883937800614073219910867719805800819116574926180525205175951240386775831101755166528795719100368505911383169483061024168692840386296964171077686292480820811275863311706335467943955723141329481457799171445392939927694362223434916696355130620530850990784371597902434936595242082181864367579854071094659083032397330765183783637802243478625434512133264675627853308184450305612982044159372696771273910938853010090029454509186553288891249776296683362714104467701402723916479542510859701592352071136561490734885973129675676555835590630400073137023890357533228222011189053792878148008241264867826585671588035352529043041349610174848732836636906552090936610395778467014746102091490367897623601870430890036387826199404429318313652233988529013890935833696660228691802140697112437526155937278721198961694613563973624668859186538333423397202154378302474448005288043022989255262565434095517203805036134452525909800425946685224758128315162211268535309156729376861850511270198986328089663481763518764596155150579293515731568393125903915202628726399662241992684212158701337844532356611933390612019733723524584979047816706756245656988889030659245486499582837782972083279363773980155231009427796176192528790755068633222032690044399904966195273506268745167230122139628922921617240020944940738338734226350537344194344895589723194642400895319129891923101151540559748918061152821281638193269207980299820748076591679783382309893023989026054297513109368012135876795154962307960952150238931757340822184854097341092320523549290450213915366836450394341787355046660270618872658013628745421324785709410007023239419688716054383026128379968647247092644476631337773118545047792831839927873819965510777984839730005922323594536125175879741781827845575372694194860890336375973016488939215727415468265412269033219996609740872517864966663153883922963710491056347920847590288313556452820309830288757671835078919828252035249854456912246752225484825436576528160432683573598207084043207801839129030184710282181846026649762976339588883819184817435586678223938406492666809661296103340309571048004096256890734104400169138522629688412704992439646731804033968054574686389778285668384032309672007189864590924990772179041681607762984768345927681012445080652348306542392172515358370163908146863729887151200286092335791548824490623534878088201605894982979622990916542588610090695905989855462676448919053819246670263231089764396025637524876137516543820186398541949204824445415764334394784082218372489528848943918572835486387937212572783241100645280108558467981272313438693500582618117987953250130829068516578261641697369218926122411935014622124729989320026353632487640836876005572799580075381624076016545325872643778530718398662308087153481669946179862902672750176042477604835420391960856029872816419293394652756278051444518178389445619722341878337595477481481992039624302270148159902332987111023957093459583959346877837742235084169226682513014396019950970342750454833992121800671643694790420030086015223117292304653208560850235604532620212143159920689250187019940419608919047057021702220359636377205771435599305466864643999863883215554743177572674159143927908641830049446020857805806594437919911279968986570793203088929873628759489446672374323917910507475096470012996953140806493180360070026287809842723323235621418263704612410885706348357564229019197626552178874627315862316715706278397317855598890219423319272626898335309053721787202853941987991315902859674752009343146348960533545168888212844302537315450858167566019684945241379892051726224387988096686060021954499924622236657358127464544545272503071007788953208236305622907689900264528233387029100792921255980943198243276322260917235945616252603530178165410478429782807513857088346503441821180616127567126897573020003169806046031656919365304970312471177998250257838912449410752617257305052118169820680883826575286647060730310365607693748249047967359424675093323336623039843262484294519925963202671895053311144575770193540128890021388404937593542571653989451893608581663240012621668700046220676569528703726347347923157586563978247458116201675639653851555110671770486890656569864261628381952447801388911625634173629228845880529308005289270892945111907871004577179027463023317472742883232003487925189608606892227428340261585600152357885597677376310222222896756063626296725353022409938733073240444687531990965701079608236451095380673393446746283609387325571319625939985038242730044987153289039438873418888609187080144635790967030929944666560156873597892795214051439976009930514421400718322733780711858975685424946850410839940064663846040609491743905058808698449059257944908034027376648570634396589000161578109797172768855712226618978339739821811734063005586734430419919456885659700905709868750199808008152830213612877858329612830922954041312231085827857019825093087966814458781966115466428211419871122791286091117001726087139478162350425608987848743121524124635460857144294544692900110590608717444026076270143922524167537489082293361072886719238967575138061780151885946330169580525724589199954888472258835472600008380999735994294345082935190537184640098486459815694898821660004680808880660598644604348873761654892296452296080435032051556668342368053819037985268171458224951455804393592372012298265271241602305591410878719982212231707897243175582601618585338047236095839795729908648566255709257205979097425368102836844518976526762384834628103242652124041446265834348155522227542073554414721498705302914206271137564710720122764910359920268772905595725308875554045763184744716760007090868039658692041787327517024457063669677603725540038876598072756583601751140909863880050938774622203041839503261523348357267497973823689713805417073169847840215695840151654298578350634366029773212332594195684550672938438150739945181208799266145475049380881534316968925765419648199516713406730534040836579926415316817237835552367246826212005665175123046020500524375505706707340536435664839157056440990380978792211056683669903167132364216427011972146905907258299513408111685258436834165046471225821406442536626425481034651840327730070561327791355007511377113845432866240812223967009267487941771174654012200176962887269308143218601447183588664334983230665163640446407096834372117430963503888757669508335540286711017951870209913956663307208304637073430609957055709741004201538267328125414334464424581623396898641451270338682074133646464991758135020973384502009929029342619516580357914298966713342977993563594261174624782111239295693139084871900637598449211840765886936195569344008433091279572980203682014872968709264188767541615777267893799624718473865766959212882061032820254202568606234416969213480136723341050644974436672017756560351711559410039318710878418562921251640903598980351933864023711093819479079638440608104653191366637618874323352932004666347095971653605504166468005045021666064326205559941141077325756493677808037584318991640745539901030508877741648153797504978321633695190693104339171657943251229898489419295538189382049945759449348932102600367299834368085048231680333658232226370565771482131440432557768778511971321018074505487473852087035250337333356882953515918907386447375236136481478753038280706710337579987963808603909553886318955117949922086208246236200431326981923448198811361196462896916325631939297670899308135852796620156001802997562279846609409375442652546709843007044195688579136942945205832686667495308927291279801696132132293933412975027994899422726744554272313732259120599386437473885500494744280246040344017162259394576756553472888617697293829754915042134464177520110184205567627957847809014011059622138787306512558572429453952557787230792013489756944899949586570609824829008033982805525837502475852899969137867925877774468738944902585773530603117129827419529236496990425424680837803994948168483747652116946683942613316127501541866362602443022861878811782717600912121184507414155380422695345761521983450251385467178100683850485135477198930111401322495761644320139848539580620040465988942193979356415309493130377091249836647394127614480876334059836978948330565724444848293761818632998087433643013734929620458843468272287376164213065972160307907450008329157456448406674582878510844731656541276595817100745978449820236330524200962290367104556211638223566135560004101037012657840192287990233989420649669856429939618781304866811430869112968793298715541910996459491531297103588222160797986979687212921802214764306753757783987476769799029041121574969071979110525352565915078753278324009241422635182380340073747276045683437155596654782612701457707930422022635392659536675944616928226429352437276512932811504331687838492539156825835517396664808457393762675768520102267368624640682946987664577087809535021820521108732750017117380742142035686954299892710340012041670811669753744757750156915255324331331473424217335459086510428138269075369885520756762072993826241397043736870644681802483269304783943774749288884304679013493807028038731429892045862733201894664569180260689478151168436090607758001609375231866390196317287890764600504771719175987932759622591202215012853135991417667065715319506824632371453593163661309790477648619701510861834999022572828359011534520094857807751366033950609175428680134359429546069809121344070315160860091936782109024539427302152693559739003751710577619126476402437482354790712842308071242895089717764320756376300316281194059538301369250304276460074867808596920148189599792492612344280362203022898793699678144598003474552412373170587486388406666987031670294237197567100914054671332237144479587156761002058215425506618084515776612519042670365742936303057512792071356726579641704966691377765604637296793811808754959049354183439879675531129336621123603889278370466181631024257888642209432466209722460468954265394383249559422420982086358779969963005218097960511196725351467068097482977967578419624872305051473423772678465168614860024982128882771333521064930391967272743306873020613009255551637234721032975267411284159445291303360159113234666480016816928868560645044033173995932409716237858738210787521650886841585957489817911738094306879091204776763244708450170793402292016446893992219692058561201055221597545235151442852205161032155952958070028989866594075853205587092300456487029938752269666726519876576598658000135380117518685677959361366733294317953349051212289932207654268865694865252967678417627971975579630729514249053848835790252920295259285596295360411406857148734151737439282020883646159826022055026149232007906118528552893844408226839547738152751250684317528249714634679430193195120156452951194155292298896212688602975600138330228707286654102910761221262592912958677729637841152791386446716421235010732593933967371990178558115069824848668385898672939166784688684033736373594858857324857732655239618387590500502595651620477740989857778850393380733434106134595154480909751084670846239047267132492547757062087387841782164982891970245405858420821567821527404885249190229213794570714850280509699175189838331085701850288039146186764971131405053947777973020080473405147099921463784283545394450920803626203576172521660325619118999385687019299195904870896442894794450909039991809940481497311076669397952496869814680179354184466321430836641036140226409069653567300791176997015175698069980099408920514557767052755395534727408913077423868256989091305888958553951443378609640311750430922301652005566781760038067792362572773153105250901949746920867140438190994315818140704395210073448936271206926654835429814580886108741116039380351212427670854412541352682238963685142581909271610231822599340788752355134029458492271505780432727534900550204224366501675497839846568254936793555493169424014650838411760542932313151161384691792203784566216727825467443264200184577772515186221393814402277321878826659210090713803865119408275159308603413906459845093277932811441930666974298390852047358843107590400566312092320389040047774971926974199545648351805128457667635950005008301192122482083204830373321246832423980231165627343423472818104121134442334577158203560208504732670481126208214370637544710290347309352666625157513648641935215352451534930820139833286486970844156945229628733377058371298364100032616965213730949042169157618799117552105154340055276609623921622985491613887036437520518628248467507062274807551634224747218174560078421195140972599085887407926567292594333030984257714160894345251945822542013191314152716943935274619434550578839980260707087104609843650508692061251936382013900474849385662380405955689761141865921415561068208636558473291100459424382536270757878488193656472876408376872917647444341645232809738692347572443502688237028968191526609214566976978203025865589552085153101092591600087567753075810657617523515481743261745462615330860129437581628827495771670040045171379218743745173457271916175867384654637037891436499344100170740412645214498063021025290984784985789803663919372086572569380696970211630580713606374276238087554801137558165946519236542103809066767818585016197352219780252651651499842419691331789840429242010821432614471451859041174977428704789536865406913427605794031196531705510589245087194050769698715352682306889066935160623927064221573616323139816510786682620074222743195772049922240901342075186446590436038357501119406767891235695454052889200920278680504390856614895619561314092179322476349255393078127745787946865035076023907206175295045677757971429836577934619061806437579405499999967837981129559227528585671130447486783583006494446336811299265234889146413954059426756033094802073232693547335604203669647761273222374270290745487014880913158851026306844202109197854534516221913167944820586061259423722844422029034410632883790101271800993444537323767197541892269779081536306807785556511651022498253916609322207003644168174617524188723010278884866950878580053144511389670032720021249139252777800975134680571592871745138169977528625757370301310762330712488417468507220564047692523797768512773279410723632033096578164968649610839676078840526108323312850779097852545503584057046044881733585096098444716477165093023740208667577136073621067613387750266770880408287097239172499172259711552696203968191490584707932598513878316943389945260595232032028239992628565930299316835511234439534026457183283551473647301735619800017052932158475193611022670862372366198813131829697103777425687402148325257624789757997016681075731066117511853583340692193480304178765357877984771790382346739571084900096124793977862146229195208421137565909180399440463971744216053752464316008392347235497392757381825920423117095272716731561330743739235278959758743372240156465667953031467199820968726510838491917755644798317553933054699847035419018314259438071531323780512488950393300927367747310958284784663004266657620259038338001293062356323092307347460881423873537737426574840814471048695948465239948196370099525827637275676930429835406648251235300298486547178384084115211124089008840316880092218404497645971246830083683311932100872504559133253821098948517131276225385090980050805806966412408036668437850945400931101314058274498484013501451048763735549583222731062729054398926780638851476905339018239561668580838740995222457213786389519384997395368080603074407321683668430988496006482260010404791874200417275349162634855633539194687427848262198970652894214355163464244006047740956891557590264730983780077124384032192912902208743661066653287948093422359567317852244507160536991189710466258896799842508619677523112965426115893219665824667597399966537495860812405385734254995351515672846501971510742457181397049018349788769608990144959395356263927998006728418007944226445965105337103679842575075213127230765594040739643426215245384032015616991474170687738915301274187392616653071962638672815349782419264520060949180602316959945864913877069425735847516356429071632831683605941558380271052510997572811158219475782837210191947075246832228745995583604617382920198549165315677099872031768155061433583118821782955643854497078917483732988273325859096059572435041943397048587584405861396545539950001821928825948004412162067763568985469668256088085838192302524836529459973808461288101077118543883854589256785532769079699641028567158141456459613433186688509280757782379646485775072019995600759204076090112901120277224183278903071800145833222096952060777079524471719259544379314348987504205652650662026558488044410297850841294920775541657612768634277707525547200122239988520614362311936828951033625953611498047692019570451968222256502046632018655280956514118667370159080406736409317637601162055657207186977235146509164137577480702199450795601919040755121692030525130663694496730334816344491324062090434780236909829643387290596986249627882789326528717000839719041966194380397730781203528091624924185280925468190030779629110376980655603057372833859270132906340594575154927891153392455162957145974464157088690860119017987252898505895485689266952307462665886982063366680435084743786397067645446564534010887839455598956252945586045932082253804734374705792169287294000713065401487301319736464374196071740323710691330541155913169163480782118044330825600847779640655837911217402793313700563476564241646912126858195965432567183202407596565922948392478625149467181465388328877356348746798462335143599145595648468853757740189668201971655889639273275379371317747660379719746617742001717260737235147724192122191795581761967661723869778107976019571262572035795928487787398704337593643095787627893723925728940463407295263431322606970636996147357883391095710206316389818971354470640772035891535170514008897939568291616711799462158563356573930426679833186034895185083248636567284763612713744453643672518643704865360211808180171099065710346537596646935614060098635663254943457747201078127910464135263277492446794389204821990880825774995926652986071164816183550796395738701314827711403620462319890201305630036804188467989401733852296847807014578165491192674974546767959537381376026505935344972454536145215238462215901498948890098912705112001863231919550136014028010044927273087498098449241741722203523121241851537312982213127678932840493466203302146982316985702928855038322237171416893853998723520231235971446778747918474179090115539056347685906517594347720166103856526171293516228980131824204407363369081141891816572001644750925466235138734835017854006499249712329816121221651604228946713003760260562478768647328351953368690759224464306745497232901101151597350443077606851326356229968127974308162540177318769369615894326099946279934510877094912316173735204554636091704328234159628142052248618519822770418764478101630771008214026641858426346813846456817597400763109839832999238663767456713805974578842101256893832905914219087634708251108422366105132104101333764468510661014543306540300135864638492384975845260570528005541031929965379966653380242066249176109332607172244379344469423521502598229459526544416786388404180128716897297888711214212298654594689412656865686864344188364611998638496895602568539219614121072817720170764563538569471850437231431282932719373139407859252286526537895063355768930780887849740525225013302285046077491367307527324349053622667698540870270341092340298649255651212592049230575912417380642981344325281966480552718529989681013422181844129746826551566221751838076835668008288748022786726155719784718061441574979614585044090817634524935174284832982497705683159088342321903279769993577954664863621084376829110277598976557684476635764219445327382098087632797050766911623471024201340007316666055780749322891425119746174248183667104931497500052058657777262205739697027151676597196875254848981302606766899966437146585580408205777886905548738860773121530544525069387324813016934748955352555002164263421660900272778143215781368411715703815983683729406987329863786615919364675637827076216559018064830449056023065944158851331026878207835160861290086549014180543908909953119322224265428615024458460678798526308067756356976880627616146307405941405580440988572212786862399048265511958301142376577524680666443511490566431550769552737681196600028823380826156454809534710579188422754713050992377607990008391424986780939303187069598363240911928394936306450807202382946637389387717973092914889403337164048170182113908505398630035259505847666779625244146341852975079045597580434825338023753939473511345279089459216421042348585214351622785947050721886764569228257098838344099286295433629963004976674576304618946623846685127368202590911366149658412006677306147924583272048076464195565982453524909590427379264237292298421193225104067316259117682985067734530220986989009841838282487001647056442351955774466506372673649409164197809694182068407472390449345959929715727604653720893330100707867000588987771472457177220426541681018432930143538585034615820787371458608639225546974058007737312579909230593462196874480871381646576322096444487386535308558546330314907165729422181465234256588095762659802087629087435748552423622362871392228771751196991152035723440158571575902482239873666548099420373782937407874203138711763598616688150896094212194089063802031078312123592069485968885484475562354762710389754631115755515799207265360293557373493734344905370987982086535016692621802994066009207312208328299894988976933545157997367845467463321810158976113871815247254812505518742554926489515622877532243214047415072588423576675444937847199787217551765637217742665637982772387441630677317359597723835222674364623770635314373915667402115182149021841554532631889924985141437624386277636736624774916500741447815722817655581262942472883110540179870939424786900780614116793883217309081905622017197872398575204504927892166530462134138779376205510090101607177297621847428820812786596945399980950127863856924018245339742618114959286256909590192976796541047913112831108826677425497816284566393767850654598088344405621799937099628800850327628552917550724788944490647574476064568029701128217995457153664220668112709433352437682729655498060270978166385371732466204322043058152513559295332355526212081422015261310054221252820859780569102407429000935609907249180727952929677584230677811293081704122358277237477654400767465016066471410438928052494823429652330147033111866041036878061267465966725598393467777643492114089320331616088643059277639967046708540071748866033188421699563923958478404679381084703584417765429528971412837096328547426069064210871106963102597107976812855285518302625699303883760316246077584622473321419288604794397463398438766172177101085274997708222548135101468044557885199545876385410392554984906738258759242926979295253569702045193975372858688103967994168019730075711405279144240517812373436291790551421519744275287127707196231913326579859475365679478105273678408009384814136690035932115941794157817815511775882035804143123830651953407744910897295501093227591667086866333574245145322427716936418471368002215228693077829013747731217607004376262638272097839113972698888028739364325456890925332547991708063974585460359063491893538367648805675941955707619508996758968225560420930981868935027994205400963218118069427894428393315622000483737042971337587272735495857316693532455585659757471480737032509371161628462002362983261926326368965303778898268372492950459341544032570825228513530545941634320348589219839066777640069131364534252715910933370226661681048205080580812502065902457374096861642108799034438630160753969423146548425627847421813786308199259051129802780025217615231407291065411786077071809968225629567894078328872330393368407110249058429993532338387322069133990982465474337318913698194235672850239176834205773348347907072702899509651513701206492400439650054792754302831802093734277992041960143130214709439400207341158088249544341245332160100319068743110883169284516665308399404129175968630694890569155021891840496823355701449419262991471164572600003138315798676202735717876348446879805459008993259722841909447173751309436310621016895475669022826338340383668627547611542742695318282918091774945164097822483359567666391631468679844963699725492721681426029737646349398266203579162605695907360642388201034234460799509132318556402336327322086307428365136227580536425529152036279145039053252336818118460566895923589982933914601136845090275478039420148370684345923758626005222675762408878229361708199232802877113116888735094666566054814182861285346110691338424901883887552239604966613286859359049997749831254097936031014483203311798132982972363534153907398562737695730985502564701127415558674538829645041081675977041090418549232738490543537360636956287662270997918588298793475058575527399152811595925581183735121221530901752583656742957252522963918668972578071413280074579083784030938096189548120263379302058306123144068890415310018471083227927655628337059716189728634598565439515388259898994708613578878454855556422976191573480387560480843186308091363573137344006492852700457257675980141247429911727487878786927252082982300596155246169091184848717892363253500993230079501526675692308440174354363645129366135105786470155372737462811717046658432038241152546751177882938325619932068824415589129754096369569562482426667815442680480367745036388907541135938988607478981611717019558327145770912642973051879840769673513388970434130055753662613532239964614370947230075665723207344149342182053327792599948376448475014452909422590058071413861274910818971599808930921821265946026595058323277192891439871303647248554920748865888812673565488310572426369554415260378392614376831596230045327988877986781815693134985433378844803774035962562343623653911976238597883787534421212409282770045610138487830490270765534145017045783829390992576963466547903557903570528089222785374883230196232827093542028345913963933367828132063497685271194735399772808430691215169668013947223090735213988003703391234116563987550776610591509367875756357839913026066810811461458063159979848726993851873725738545406261903848905049200343669291804709561766079592233227873375438041452747558039044304992758496135151670762734298865449414597708571771030728355771836838105021227728341696624514658822498663966576274596141479293093808985769389324237296333093718073711135868191859421978082608624462559631233195524798841928613576341227108119036908232615637257391516951496660485363733625356403505848107844358893010051841491202758355757589016471730867676744734921316521252892212969275542303814960088724670488205710480713890327736227863955484578143916794335989844091861845912548749469820651285617673951473123573339227539569462034478703405247064363759888516543847031224766334290479225189018232988847235001657540790284584259296884104951050945476962816205244518909446371810706276725494984092532884048157283181376040269902985627476087174503638616692833112196994808058463976826967088386550799955602920082736835279827763058659385470906607453922912757895960422640851008621095944668409173408210391064685562705182559568716802536520363499325663692653869543643447233489771544820778527666663997957600185344991265120669397866138007179959981843331977496557710546981692504139703876204148626630891688762693950041811965300230352806385477009477378904802911592854861123322085267855825929807787714518688338936829710137245574899789281450027410481495012408383696737971090441050097459077973435150159534350607642356648859969985084530616327883445648144176215342912017084953517444023040156997580297059314673951821699620764903439691375452903128088560480082860451200833010691564326901194311984833238079118542045249410850454256463793070709005385897090435984046439066590460407786398739400291231826792121605927561828349239443374075177131629442285938361166852490276176594833709868310524615427367044664543631912480887496157103114271389638276372383799495030256639027729234660008195773100373478386716052015122399157560442340683435895242262793446086138816237295076491608399564913670804889235147362499882127196564362209386751466166776435894813752863402059081593500369749492644165163687222214798777404224383839247372638591641456646329939837564489802038306007969029720495456908674962760757243399891010533086828130906858110108563631026713308404619241072318911030942623611024450836732786284013922427128384391146078303959307924736336646403536753276620500877357887896028377274449145043322380838769574559963506410139860314405842347101294627080781316816804074135909974096588294637373542968704813810658987125087005029457413755555425221548737917235924228830025713735032349608007862582166767922472496475230462014789912415004667790035898138351896153756094711316870411229920075255712925856712662662766894789862380495082313649283336639901139825301723860445992829530752529999455262714687760201538014375743125813691282645675001176188103701541618899512300748660395494827569951126120485135512780092440016429080077369236297577354942645483216841148597342348245200323151128944320090413734111975582300240921782045873346691118018421454419506190964091816571294063162333710614455507095643157926123205043437356879647687610081451563953567716599302825797022418091842697124902069789815271369680956526075052404596989825881615235945864002951350865616660428395171041806557486005458393517917225820656496557856436376508973249614062974906178036401494815691931256481939537710387656637717107331420069665877314697562392157161861265513107076554750866284804587025368680821711323906228377638802823712784060626741416128204043811107677508687178338326406614057154134826105595958786295014938844230689013544737810863131528426627260119369991644983924515986413475565657062899300963936404915256869568865522827364468897691419281234311176714510578570168657166964052740299676929702093483387841033453072512598908641904243532075729345727057366540736142710757438856012217698528208316267940940301123408808024704988820236850489860198197098850275364379122641767095859931477601742837972126393316283054425488905137212033940212701590248426973076766713568764465879947429635118948658173479450762545828143777157994321833084549142411616902023845570389442746484988769507834463082707656285419433746247365070452498776395943306704609666279188546341547456524972238462634662360870797032648751331848509993238577288779371562929299317246496954226942773317480333570571154855300508161887418903265758864869227045560344038777488729291203742407428108469959193678074506677353004051700175059755345996128475128630463281780015343152038030395648404054348323281554668878386115641095813580469153588768057324556356184063187688791663168092385265479913818419931597975584497985361501930824061056789634645564779522808465664376425483910675743136744226837225681084046113710076850816216203372435798871737608566607404001680141352538058520246087077801524808693487300033971841606131780156552417520787654492936623186927000938933497206705878553646677306066862968116936373679040110242808279403421328265708498736414281952879034597804102531983604668827113243922596751291013659708767316403567450762914043341896588533130363982228808575484189432260813510702971418368788059630710615934112135738209571545332377187988845257156966324515354838488566511189030847116202978181284351086387376076560461969955222370134143009313887939715852335053436708279796683155381161997400698115626724665497501954837671309314402387922733966969165538354463356532930193490711613655778663948550207108274044470605088233681884249174191638967854871796461397764155694681827149874288645739760457734656105326226612737342770543354319865248536088475027226652032259629205104069789175494501278314174161009392559746426405081020183848440722590718691226553716476812905372915263317173218330883475838488233367980614275526132086938186899246085356813244598993454284700822526145501522732525045441907316586088425444482625603855397346669881362601459427091079148231858141456944570244673235044250596758714754977099197651281017200829203851274789950384958270929770880706027938298426614896469456177370612221692174742543872518297614119235277209419868055799813156262185635030029937820296417826011293425629123255602394960202334602538019949452901314433061493949205715794115932231201681671221552906945897418648855841611597265813577016282413756712702213677293472073376041799938442494318519042355971866804494014765315129026000525614801231714148811930422461384879625220777071667552743239099480693808830647513833270641837934760984966393860207978886629016145914014544665392595663953771462606623523434636485410473105830913111082985346910837492673138641804806601596459114432152839657294478332571775426440978522921836989795620305343370951713022161005675497977399939568626878230915328160921765474477675005029719893222453468580313874876647228763585265200504849101929809187921206015239160105090115234804066970384737061855890980116601116647780297419636565707102608462325990520309130418215647425404692871979527353888337537762761317069073376810365041546283778350097495768457404677331108548912472732175091575320417751217053616276569565251355050722197705909627542330531749322498610148779867783061104205992376199834104022003048893012614925983380138772393812821082129676758436736032798183970387371137538363390139639491467404596780661515540382307335865692559010681225899806202344515721277176919634637807707605503609665536433714725520885890097603885499140759849460475535483672516264412877407386783597939773821141292324205399826771887400879687230302385940498199611514173054193495818611666810612743848937613431682320942263802889141751353156494108692615651251821759526396592773699784931946988256330562475131452226563840844920254479333346141253458679322089532679390247978271197340262866050675650710090766051716586508477812646220516519935209301006040386067879447126984569390673787233710383929619114782850346981403024946057348157731414294733874976027980696963481823519793204526062215291472491365249554586915969544059707262401918084120969682046128336510260339062073597135355352802378167194116282895035918014295867153196994118181300315619216457156629935464897433277970902347004548071830896561260440224912614518320623269830535263683404633503149124419569505574516133582678286977040374156228309602940561831072922316201151429495206804170491011391278743371142535720620554716114122803766971027715031852067740317006225764175452822096127718401541217796089795028173267336936664428537013848729333734823641720576071437606597529826143367848599078698305478664863935755945623133271930341870322212844413218252734420393288253505465841531691483864728723929906425630721381081287727694853578354776357887257857357581798005181492772252839453902498693407306993073396147623916393692567398633755893506621338959820968634662706919191216606696954763287180817112003999191068290179579263578727823062563373328770589320883587157605238166403643583080625081171136367564949956526033441269904879694354943932969553984412084231219751001856317874254812659140113892653777253535804355612256142583569263648542323145442272811222241140454660123043719346086362724409103997397284995264413341944233292840257394163798225439134094122801366178860702757785584422644920144354004018822093409236240723432129661493653162587542970011706559992887665182845505057304536732624277770616729779710592254658204033345300274763164110917933267072929226489044698838094997034570460264358079644765303664677906392242645887374155998287925276383136735430427955688925481275865531566994796499083559225155952123568765651389322431277893833707554219835848261902346478677000235144299282192747582247241992777748066458576082936337686980648480120129899835407486775199434134743976251764109686750096777620632067320718376454121265865692714790673160062648412055397865784629770472960009833709469519256866097654369298760464014483514692872480093696880757410236824271848425363299789746576412319977070873704928741835450018558590249671688586924979471269058608080909142064902898047887015424113461154106210218147662106105573784520777082681606981470751072965551852724049999341867066743333204099549525107911305134869609828668056874045255873112459610608797228083896815128592613038789688865017802827026889166309212800769698988503890855093734441054834574388540875290268896301338596902405120891622148340748423038755158851949398306535316915509125402181511188573357764334808972910289004230348353776481364805972631917309825795703227428061487272788617762272410947368073905956583000503744241418699671585099583958707053081627428678574631586280147463765877449870914467756547828442926273112668287734315925902187130083008296819887277640638005187467599965228079157423467790775001515484766480578677316194058330046985232297667441773271988361504350915255278990198520691156059082402323760122886348660407912957804028387711211499187724153432028224734857537571906631779549485719374385051103903713886917771023045982224996286258088506496839607353775811411381054885402770174838409537038212927265184059371110609953525081388098228832120368347780237260169590296846178701874556560760733896254386561454525784950255897267790889909488166479075961172338076130192671824622219463207417122174779350728129433006769129470676613822664162972920816409288291945002849562284650872568752045413373765769933413263209481467392912112463712032448315502898403464767583754997694695223321962244889944861940718236757835380409393364583576944348505665261382415338960020924934425017454078746601829989831753783032128412252086970688340276715217371496211147983346943375464981871113389951041012854624327651759599559491398132115004200106527304904967062385223038307496777671018799674332148320456941417393270247447359439267236884368492000307468720413870184131861190677948878483407759105893448247348956460691029835877383496057934332315847792504071582443152219874187328238430012730418347190244255745915271023796046301335565285208216564252549378513930383624650041593665678683554779763842622532719543901521891124939461755149614405749408573779566577706875712446191172948004010203567751774701520394819017792089836958144131505965242800276523356138989391373449645477991641449168549597413310588291203123480555487282681936162290641332910135075568059317695683198882352358478578930761858585049480973886437014234259893199132249285305209431855202167184661149757927835629464276638546358752340585841822842537978311079209562016721683367071193451565375468306677633062954605796932446821970495182815741676467204811547069713795355191916671327448842963284624291086208943445882535980901564260524370512415778405823070259691812244331041632822458992968445041503591903407938377190480959072113068520154766677404422321906859437990449028900617470852167629391127660431509825585239083644495783700761563174597031204507540092958927830941063947820350742162690359540943930949330358575631109861405257549724769711093150946627123180169324461063076073806394464130735649519009304442006106903342696463988997468349042564563226829072480722287126430088718351963525948063028980866767177229673794453416644767958371048996956631260046509761511048773067041526708632112614513230611779579419641723581416806528113521971883971662901143654103135001390688949357075375913927027228904697919113380355109328304155326379570112771373054415286466766623334054652886574932240183124859741464117624528737992548552891492915907848842679501715744383380810679373883953944807052617180442819854320455826039233292780803935927356973910438469839743905292944014832909093668852580514911848758877770177194249531491706412062006141346783191072060632665222170831003777470861829030281273610114056117910081782299016779757106406442839086761160327231525075909483972054119087961658274800432647170400980123675689111179259801032315643720119025762806124570260564658612163481059693768357868120975355258395283773516803626345338860808366506525441871849799664144500785437598179046610362463085552647225862251211463078966741123020649277037854451866689733867841093895251950406507106967510022582488454661626199775017189851315708563930359817276400706837315498878149670452540473312052877592470477345594750179428208139210837592836012936644435829825264512221328336892960344028247815115702720550798096839275135761108841328523326962597938535462311812268687248097260947858779485110326652648992723936872141761091323414786306880206065829032120943201465033275907703145523453897060597824859362661008801427385535766906532497087030157582385953598247329982084106741913519562265515469882932071443492815710467404032465391652585619589492121917881755128346522826756300062068629541575440330583967282828843288609687920602731199308569000658548849131062114437704405182367766577858858325370163699632780926887622254619253720677035044579304771329811622566744545193499720545316640975898290600945109967714774978749407563163828902025261070433529727683274999531998849819866999814809261335172325918798500076661784341050805218120952517288550617769542624160510915683027515453822004425066126446257145748161730621683720251629505007591353194820773280842693380926933746807634909242763453584811906593243738272874032940806661826306823413979613267629127558092858719956425715748409637541184619525390166737053072057374246887556365443887114853584265489246385416843176678582354660805244887808921921711021937908291878652090568362651541225666373608641504287455908396582281613034388972767090653567610601211716774219848566479665362541802942483386372820183479557507451634232319109497782116314456003145827023830157383600278096111955644548065367600956905085245306390422602216770211119356768219387508870751037496954876742060162407781948964079860246492182012140858458972708244194404328112471235323155221294150433783726516544516174515935502638472873758122692938585089696627855464528825123283276136400429309996460154848580220293014049020573351532613738126761376745659670154115946917441980209819914547383766861635127768383636039402213494603521243645434238645610089739056953071954054213433133045871250926287279828594872797056712501904810129303030062593875339212203625006147275550038008490867305955452703022170507466364510267931902766424149505706360764764608756965520088298588431362753209193747551371726023492549848864195900763531160001830053428830311840602179669182388573327050201355896730684504390063657542778523035702346518115132174249641619018331664092597615204999447454338186666950457192599586025154259373109943480310180996789951451754852236696485869469566902853715653338760818702347512349517244488033353000190883437279025890361650976775387231642580883234521849375831361031215728552898921022774351303018206318728557105401705692527870181485845911752711954158737745346510425652723029597945868426689419760589139136754464210105144311182504059194411004531958023511129667666274510479929374461266468981508963499044893765281321843650285390106841346010154961688479285552276424112321889427807849440892426429874259071816218162449460191785578724838771327493095928691196462935346011357763116516208420842656847833456047683879625369676193650646936333287365401840509611540290945880603663462504849803582713049373502214172212816766950262662466028685546069579187110727115918899016341972142763048036312165936645442114774403394541261515533821108050626067075068039574304905174040877221716208984392965095743631810262268095464375652737768560220715147568446171801329341911019517908001119604853506388447371725747140292629586034422930622467102197749711831415780358834158827525982103029722502971104283428112487404936103320805846709261124331436778491467805852993166227239511108079159194857082036091197688899114184199114174736201702612895397858595107631411465940254663393247507414756215014961940347148348035956942660827247854677763049499233842848853034153426630327744684615310199680262084415381078956241520388202014350395208190194284744604630295744618448393440122691770061421842205098987193949958832806340114936710500770190150819462805275540851080132102474990296471896210892623721113333898036771552551120197065671986124859391149385910063329389398747276534691322698988361903402460947291882881647695405837355051798663355418831335955733979218074966766566009335791525975919286451520919183980309982262954099056638636974263966228921154241408143022373390921091576003614210713960944533941848535752364883792329760782017242058660484107809681218439268942505418407386487840926132300325731834977899707772159969379781340833168799234538237470006634818888122509804527257267933761725424773471173581669129387293462749125588683853894719031382458805412002322089178671043947975296620675879949717197531338526876639890378922553391672811479789297125562724519027494660602393725112585702543507387475865619687389681966904673500393384722944993283244139511652120203847111540716368743184634896273377016242467697967998666058604630533019816338332573847701727161641612494355729669223831852652034508662170083174106099193334222883343084928464957381337780014907676256845425774735198534713942812818695331114995718042325958678053469773319640275525939137854123927442492695386531195655583920945266691856972662679879652574340382662206192386707915719565889610900535507217295754132152591761060984150432823621295547299547388344838598819764791823275257691720558728195007091808275781377901872541367155569553960036318536586326953346269228948985515432721331562508108868157506526511729723683923170371730304249028975397456710960765252732161843704273018700171666813397771236801076047583066318483532891672652351217624483093362414350918583982972553973429613202508729284038187024961601568080334191515344529946004274739290880151137473603137693118690900579512267564536176064765834134166837710494823596878914767909760179995645434831412492649201050044371398290465448417534003929209976659774079334192127572783377745189474426905385551191845490206096823074578394858524148474733840491786452433004945346072155901617812278076379752419236571331497995245205359522533273379337905545971106226130532822801013990615907175972713017578926251922711267503015571057768968990643440578702367463282745161387456197509720130510094563455410941841759000227789357824809008670597488643497482964231325451948837771382230246363377108997897794520336668095168223829986075519018540211789243311104834500062960957402138085874769523669884106626664819787274963214012013339777942037967816455233103374738071230968549871914991208975828007468734138922614066511363963509596161964769254951172642027825405301791617332500320719831603854694121780158003321803495130105573062189142791757132858544089689230245582068327164434921955586537599632705395595553852190210921046238943820577390888013261744439914160376032302189391659469871348263931657465323639378633017345213110990471591798345603419646260453897028886331197257018889901383418583424819076847218458647688939248013457212193796113053752121055897306194656100439353651644414305321468135900056977407819633948344680808841938043671755010703308490163153127600683827093647047888840785430615100601412467336145320828586040787844747885444197612093104962105054400542717236109185077497273884723614931308490671705481475837284720459601707640652136599095857478297620340713582907865156647380905554490793296557453006470471990080179133054072759059488434365544074480867021450665026141579584126207195194086606007526500190850019651389906927146452820420452701817143763172978540620080231647610669351566606351502483040111129672724700654662366567975837298857986446751966893544685807517216797893760955717148058314627019721484412794494549613067392973475415567651395066077465621626123208331881635369900659999891113743147052194256046234244329274768717121817175922810242860434540623764637579788778024913749512084033024534585670958196826752830530863201584390111224954509292303232836199271125523682959300126901118397447648576328587852321087002740168429706194785061340085323254744396384259864490453674679829140976883430871615313189769327326096807550461779927302418743775716977154543947541205023448246365959817844478358575331476960060207759944414625644899712485693625096530400042077767227109102333810185784501598147672193242227022261542164545565427104918773744936493573165853488451102039086893560552221034748547318520769826646498064424607775344034525153832963064091613541224694838471131631398522064016361150883147369201263706050800737663514001622008929901757741989783132094074361286415999400657509546535730833501614327569959807134330653415573609046025782268430473263109141952297684933287374458911495910637800399397066011825133676827641991989207974104015705518293047811666141420940583636480854940182013385334450989795833516090735619328970578266576124562382166713715546923966952279232413546050124389931633081084290565081384945654159234500856704352337292096775636339128356243072243511911079198063511413207038695656726984542318067078697572138496258180802788052068767570606576940280594259216200516123237618758051145538308578356686112713222193589183584610795628925653706878842538587328130707497677451322684585678834270916312013886270628524847619776712721370626704720851125873505899231079950151606467403333187530745782580798138105249381260717576100880783040645339145621626600919073603929531161188641671716127652614791828018011963724448656836574763905279268386277055632811106431762464893807286114442282019199497086014937915038923771812209129807827763844060511382576939427046702580441296780940760205424083833640604680141860058403698540258301565401473901001405556529020353825161404908923442404904280711305862627943009855152694674233019699569175335931774225419160973106902822884441305741894218094438108028766366506760645508763561365495541678433313357450022381631717576424746100657162698684407739654663134067471317350514730621545005020315916999540508101407598947427583617661626812462758929385278080414699610086638491089972720185295307409101469672950555531470659818750769540045671180647202078821060566007460441804312454605122707711360573029957818270183274594158516590458046358597153989719491764448929021727289831904727564086669507912633266114553208801159263812497138473805044815438216239098612628367595528468485295714028949457790332359421652432214738770900917718640856857278100140579036705594313959288981951408642730907701969404590923533198848676602857892880694740639621913389936433704571437489346444252172513720868920166456745943001748507532929613842094893186670515935879290716009379992905942691892502006125681736340045287086888397265598271185131633582001398015756837165793521306587765208034645345997136767404997932433272963065000391102937048841717163614853681650009316148845011523881955017160814710217419288957055631878029806814668117698827721441609317306400078418504538729962334480306934316613480438776511200080379542122284270781458092858831073953091889553112789914378290806185456015319167287441302743262218034716755322795632797371288592450093760969528077904860922395317243051294322329410297971857430919951254841060348886674801279734826027374893868783667276471351409817225543625175294417691277457966473187084494285046969233641574525241434980472292568244875875925667093311236729470343876453949183458476749921727493742651631690945268527926318695485294689156053637403084743420565003697523915286087001117939758290967861643977689755301165471086891526858224270581316910069330503413205921644121321751981899793998380291279052871408223594812497242515319930148306680233475097897361217227357524055505116641891976921969065491569824604345537091513649472880516863443110354201232288303125361373679909850563299040073242170993530698494301614142454031434677577479938279788575841393738504288804711933909758383577689035674278002086459491565479235346958633182095013449310424014010948271618681442106949990040563133114348800697363492389332297784143785786267609092689127075407831003209881319580515834472612358160882778647225439636893799073312750589277408714057967193505567735977130328430813962522444749264599923642248437261518312674003243857443091524861728120679372897213176031336185224222964487834558286023120184818249694916219117514970680406710038578861571660545950807160918528014690690882459467029058624514216210616693547619876698187421952254537679215559165936625641111797610770870700091302545109622250260936057727977371705080640098877195832682515497236480156498851894132325040122001306465502789701897396692596326630955610164920811393295163072052057291776596066902121935476920181858758614126605373875042808949267056538023962992436987906563209664902455415300676841425541663612297787557079642757060723138700971327523840243706451554553336407799463293777958268686256398345088527739354375797572467362217574447614421136277212336662479557869300098748106602623153140327511219005746539240207644483528843958121312803884086516332608708859427510044191557898984991755065682187832863333552156598064365908993738086222955940263750877495374220533754657645421516020201628791587975274027710370831026705548825950325521383426888868884228162511199518598772498232510951371316874045870625602915016828971449117478304332612475217992077718754663388450373760061917176682606130541006696253960498010366538076346564122491941966984622956105473160129792773322966275868471230616799039418869816704574282841180423387588646283917309174975220669257451643792400849529749161486284979793656183586157155969088230587146140112741183551252649189008808166436406754020431599401286021360277068189612947576027600393655921475217020358155157425245178181887503817573582620988815627433687573009306711615868960914727226431941368334905767156594525001225371760536835871898366234898720059928858949159643565127452384856338309442403718108198489734132878179491986283118319902174501352884473621024571933703191311289830003024104669546554983745358114313934464634999737864679662512228769304444123571509228734059407031120577422542518041453847728546238880978478539320772563698442480830720757943520889337830255984285180524993963543809363548943429961153068001907829318692948595554170295093822369402409046486670348350701305849166895648850933621219474918569535418837864266184607524698644084131741623072358089824779328449709126103514103594046656883363194922374273563181042084668861302207203976958571028632451221747807545220631525252681043687033137525253932625891496808468486410800167473350782311712529451775030784653263049540001493664748438671514978219308137672226051116287015280498320789089277904408591971288634042542675911689259278774637436936706934907655024061587131927267476712568928815943936574752167184750614296919003511861274838085429241215601955445103324503584802432587910598319750726656060465329098019390065854698232394781863541089739744897108763752885278655071756025742418901988921492615207377798139517170248248084677656030846527017030575090188373719672527144519278622812850426130397317171657260666161321664351927380451441524608787409465202805564809447725445822916253643360626587038227924711271226330543111947844216872758464508723455720276573530808875208760752658769618096002871209416140167045759612202102796404549907781510346949475575135958796731951562051491201564601113892941350062640040001210543333953712163363158623467682771167472967207344090599954934819718128787082196732206409796842410837628027661186234128122050774709808899992599678607010381864058926739628485878715045698482896529068915799142056775380992089522117636117090396962731973180796898181143526883230122398622964287606239671202781190210479394505705292400704491008825349065193020267709228752338985881518116098335053863983868642677516832048505060717087953330933033188485662575235815247763982724435907848938858785302481871545802115648129393075183422575584137952303907344213399748693482736981793047935272938851590622136948960134496255019615658243585721411615885099103393883944119404875394794383255230091836919037947348094627881640504261145977900537739554856877357057857007598033413945435422495966175642804209951117621379654507381792909454998512072362133296444377837232515795926580608220503695918919574942237949401404693355038300678727327678155858661626980464855127918464038315213449343918603979849424063763669209754601419795188861441424628598921235896781693697474101138171988998102446983651558285980529082380951520896620242267948208911053976542729190144989286231343973350005989734714548609138286095946848509368098851723398879183410184689360770588530056588287748463598764684042216087325293256364288758153021773379718541993053642360655252138744216894645101875754772254597055986512279349284264689139235220159781436386158373652830463370761370050837697826299136853895211676414973921244999606154875831223293176024737902748400602341419710593105789669475087380903421935515112216347629196054157394191428427728268332218911179635863711235192120538008031655939350950144434923285904270673737751644618410364416673665575147979720326033521772579709472467687468844336831766740077945171002387815797016145806881030494698536473059581477043492803948022373895718279936263805168315650600740229991613539411208548716132001012406525369031598382654161873165306736305313910829082392702201868818172112575255943680086239525217450984335634428321777026021939108237957232368439567655696058746080234899572193419754413043788068206119740529897004081939883252591736264370418882496738400772902914421412218486423402607250326168858230548749170484018685439346281279609905308865687473453860717530954104726217796107702689404502350192854555742987688582553636026040600205362036776761580586050696900760134352832921433562048672870478441767919767077353666867186243582904324528501233995832122846084086636778716514955137228338483590480872457499983756663243885039668902963799377608620628258767368853925085559302119923102692085444235992631347402495586719939293085415020069713692677548211321946539400226073817689720742716033545547957701423141027758961640139345204315653471109391224116553163727292073366494312197195472446801089155084571850701697385757273037113697582164432209043455312027991695488031448310118785412251901972671722642445309982223595577218225006043839745018462249163327201138020663675916817312787912489324179620438654938702007779833475110910074998188582569237828735756410144739064256841680189870182090364945689634948935171686994700389765892406303070531012506219802198252453295527899652791108548472292037878635360551639051039796833235027237137514602348781923547314975796882457695731865999935409984766472252687513771100628790838122959838871181205140667179103996555438080595407188538271160014872404879246457766531357619270030175306690409120449042292151135519739197113278177552214382905316814584097741480180438271811508340464900924889130094155763530787134526633184741635469873948624158095206368181955401782901570363039318773705130075764034884728112098773769382616433266397015168324447015544955231984169956685542980484161787620686285934161865880007555159118185431443563859858476669652849718791009662078068353042008246673072334552461353411034287690827259102130784158339757545881431671628824601822829191304266507174930352673166487272723316111078124459163887843656875346918386776495825737915139771710303142802688030190594004730399638724840456546396252574605872094456357734960958147831953367819386829820182626378903473464387626998270124855210527222180106825289001541763024202915472205485597966603800791880493053120027445902140532492363087463223224247684037597448285755682848020449457233395757956921662868225540482625357109436000654486372914664129086365085842964353417112433589644164588943036700184534017616448619839347554610530604946416820141937510389584843302651829464861694055603995939754758106832323057214750617070691038533212327758224401524429914133302538259160151757966697922669100954526033255293822094876059411148645623327197987930665107125313292447066095174663069655512723396306173423836583539010000606417228128879511467830979717530455778635676982200784806903005961389823181042363647979446001474963776177428544945898532452860657803130982403822248755078810049032814301841374756420553097560918747763004551883992001444431939225145825070921348862805522677843855204635950213228183073154827822623187430402066565336043378975462502466962118072051115693524860896707300433788939283733666745113755730135935945528704615604379688981389638468345080819982793310349142723848244093542718867678640583889271118239572922910986055181912326571968744278577365707297005881459102515318478037679527186299628323474768588461743424020909429300461189125102204323056439560204148343789637927943082753508140319097842600952597188842679665106571445514543999254082113607438983597397520000287857575312128903113247259786477628364196158533000561706808390457336429252992718367170724061931975461276036635841370839211566975036984888393592980323257710859570442761117693109156881087097823964675720236595174921323699423533042963009067706980605366616160178306381749382925253639728153848640985165876628973141529184186011181924295564988783934950815658602899855460096469452965049579561178922070335017274001360902973169941003395558939942424796043485622842770922661595844872825757430666687288198781474257133439354455512553228541096082611497173305276360363827616271464593792917344480586169930188398135447437460398654589048552350959001234608155905387610456762294015201707537150164475769761528179721982253215822827842780325500331747013453929323459738857598054087257857189062470371469763821762994505303812804231892374497663900131961746228141239339888178919688636835384747540703635906576211395294559356071048167338430099172025945286253154541956019519357198908354873982501095365522732041011755069368853393021127710543165251496218478049959718269915081316829189975217571875469536120829790158661269126713433060201062235123119558610725134731464604269113196661148979657436083902659765966937393139828242626811744262617017131740828835199306490634138833158338145104750219534122359975331854324021180666057622736315711778925258539175267083973059645585030328627539075880185697747574164146009095267112093180825008338524330040151206326452350431065403004931905883154454742847205720150255445992094796273728906876549165581042619302137055041951806592073593540782637213479604822712133842181079182308009422365297905148468382155006125572410731325150422478888035454101713854698235415529781602709453901065027347144476069497050254924142636045946745308174448614560586959715952722788510545338928595446418191307588251416273677176827289191868370828079791048808555051297325598325250796207499401640657944931250363626686325317984542133028425161591591691067027602631920454663187744099444669248412330677427348166970421330189703291097163229999213785478593426627189089631506537467572622014827485663957999093509991739340659620496314382672542609843541933113254238843705322677607279995600909306918373069840800036528336298380617853417555821752118576138573668336293889211139390524912843553054805651522994436384087523650264151508050969258074604703220958521703145367008730260688595241343863157599329841577979713999255545464082537562535932000417372268933150755400853919134429452960133754999368623535408658352595432361460220242055252490990735990391576475334753686949652489055530721940307407700888658217819943895278395479715745996098420940750862807173358647621916528322493371093901437008324452428266874430214046579124779078405402510372368286810708251425713182155071169668834997634808953096298037461169856768129098812992032822402110846075111421952784641244801635903489097730511004949364693546700211358584388964880373817646287399682734197415621454724649523382402695330688745909271812710593394658381925897353574404456514863049207213764702839469350574623627233345662742718713213202626652315930482622876401575894382839911173655981913391568273980432575521548555752658034591095089116956717893933506989888965262513549666651232412152418052426985856265369326065239803915357879511003051884245973946044109459803213686708208633455337682041500211559282024326369699787372774307552328550540900707867465215725417397771999251216741581466722655654023444254209759322168843801099177865694217316798596559106175949664454109349176201939985778537430337190474737420894012988222515794428332583311112959741881560359199227708185154852661728933135361430251003292077498201484634797802992621505521349790283711128483062466811656707949519313638003713089321939235837284347236982330430465219797757572877568628328510398420163509498907140144088739806670605918111624080890862084896814085277806539526941670743430215183064414238623198806696333901477490971598909556616975902082294915294593713751302789727999668272361268597288989949237168341259203444900615266872368793962027036074035035766925488166515447236797152565262541249901447540605405324665734112119051045033114495175081362758098848669421674044895707464912978941923526653524856435781358759945205552958586297835102100945536843795038543876869489715938477572752689840620795857024578361860220758807660501973063373216765505758416048837347136758768557655050934897789460907368475548032654761924436250558048717077410516509101612429859285135026550324157342579601259543762853921703931859042564731469299374381184686249639625301481768690924229502790364301171717340455837284399093951198200633564061676367415947661851417259762080671196288686622714874247738138434716537072718404650141219151398134219095653917927349524631363140104128533322677569694146668436910005895608420893306625788293123411897884281779250902728232684371284856650590759804891518539883077102015890550961528920403689190113533460765058636613543176502681533852864155935614716423397369966094771491150553239096780798479721905146418405526840453304514576178047277198409967309594013613743585864383141823065269963527127813378723144606325411923745159258728420939583499826001238613573488074834924052129175987621721821128816121831336458740974215379187271391715111185018849621988878120783947411341186669378670595620122354746343967029006948052944247604643849856352954063569206725984989389256283048659763163779231367588036538720755777172385221049267429887373521935949064713392874857784201063366220009529546765243975503026413007400363863587838854828914175025177503743564838908075883751628339951248141316004469845881272467173668626853810817720241883264146720934649222984786700543064222474771634622495642791193938321525277134569652719420572111004123357590801791744600672843032170508559526464127891428587139654649146684479535413849292044321790620134670504939747145811156218489824999130050001234652337032610103251639338402356899476305220445947620391777039208708680294140019179803463446699636748202373336111632885936567529143444587453915102240292206912101568042388305952530553580464532372745771068948650163317259863134820609252182046551496427083411480159534285958499290094913099206866085478059192442144255245887166728903176968150583011088773526775433854307672459943921198315831042834642947817752514913457470202172734520880882006672363423313769469457748123147112683778821584537672962731527630352396713425700742118457600092364624406185878437659200236050513967878901061377213265490057468040072039783478861535543049395462206132108941719012873414257161586295609365798641497951791977493026772858607291423933514224084529788231142875187966704244702490101877385167902738482209639400574787971227359764015229884904425310658858424031938631621293802601159281636877486695946876805801922352322227062773856271444026654378456982226247919808820955238011802814053414551325056554663234955085832879786523511732391084383430268571391385493222669325587117376115706220150791581139486691115802428004241352050619119033998642103932142793024799051204028704867849247177249802227641616870221771756812519999581199886509667161550388581608619819911871909949826823556168866350043836676814884721661971010270489943607630559595268433592301648175677338736641281058034931662609414745691620095258105757287193878736496234147957177198704762813403244959822790822485734625009652385941282485943230538093026147690602403306294807504099295569972194028673103622632759995252479800776466107524132550187140985288105750753895826539547539630593881803773080578527281361423364308154523208512117545620711431271654234758634621442943389514316024307990919836234780584982815327435479859539880587628607749938609102756790272427717213486880972630699847009204040538179901704873329520042985258825924422028294000140604755091765962326171051658299346461796713950876364677848105390941987998977473729816844546877854625224295522046838966914260740207383583008774802502167245233301122730127055142680487038400137233263602037547778824123372319976501225676710518096679499694705494427843836129642240741661799952948053064659273035731048025970721734241429671707009956319032852930754355656091169186925988505253506850790140440965786166813539784574516077851432512495205777864641811759505127314948971904877484100902553123355448348113934355443505013731999138853364892087660182732697868008141459002919511690337042814084840479501530364039097237610700569808421760411778410220423165995604570661837722543109282219476133272721799414632521107599512224571403577645203092199688599935405913906205897639155978750052490776480708043643986720466121734241140817215680163093699809989123659078638736624528809275448346800869847035957760622266780963669959008643679686005631978558552670520208980597959264216218421932213883979828552635759795215686783981808458232021876603424454031275859807739779829542315181392641358141479984979642323156661528333774648928587358457478475870288540956386820809841922863636110160239206713702227031915107810030507826834066656376557134953772547371481160139914063627260982477724544006362531677115049376767975475667505894174347511453813599834938908033655592089387788594188248193336401009499957365201024342239040408939598584456733598555316302969385403668276285385509739696761322695152169630182698273116505891647545701913001188376482685893288808354432835315681782739851242064380003159974638492738961979856761465245396486469656519438346346968075096790658648933650884716740554082413110767237368873161018185331408626592966738340834798808931864054279199442122669000478947914975662806408291403473358205499077128498039468020509609376207822633949770104074931553074371064820223201624434895590565451308711190912035991091857204068360058076723804925756542817482610310035897278146954326782687425789180988958614505006404832627584406192386271673685487742506398988388860205961174208675173190604897980897290875262842292738057079258988440218182409526728683047878815740297855742614706856367634842288162607180908560884923290613007891470989683186031275344464016437197934809656575127192507927260871649262396342560311196271887462656609289323202086466603501270720766318028976762858833554842496830730943780774718072994839896368634679363068324561761242393898150623945216755731269496894084002801572337666738009281428149986331770738265775315746483594423785373934051525312900683137795163255265920954643719065780249769622887828155885982684918377300446941420137478924586631967615970828466262326069290616640036547728469180394231947048065689180772993146507839703062695486902466139817323745675639332965981378914687675220978732937721654105932168109996746644920191757246581146288534416213564706214132425471536589136805527065315971536553367082561582654005998531806040443260798413619757613216285584655043915644286344938015318575636056350584689644375370636574003724962653539902514637884389897079617927285574449754794049732855714025321546195237650689632873050005978385952459257483173857417581413782079326965095434506052338881485075364948272888022055185381603828151067498668071461386336902084440560568320297656284853302609620895501685796397406122604842669466500790764418147400611108344282857314942343511812228721876330504216419943951115519981908888810062500636686094431572200977103316925459021806801609419952017246271380621094581178990180179384486138837387335289521851804472567980702606168753509787344246062890359264703770675985182956470365259855176396004816463532080281202467491289124571662575044298081281262620713757423757364676193166862114777453014422226319070663816571277841398937770333801462421256420585307013456875680676896786492100343563363608211292312084561650000214566614305781444426000267879233317279445257885283307438121767228307849548212223302322891569999658056351417217468091495490050852421351031836978603910927268723445303273442185156001263710243892112243637180292408854025509142656599937948635765509600570713025862195660439031471333402632642510352644929090854906625768506581043153453918473571047779013571754078720347556316624996975602835502002233929618982234374795382864950434081490862302342999223675356489193787726083590463473946125890976501381926470376737067185890627112966808479858866618959924291899377227253684310269331447246221767625617631590040995374223254917918276543529869780522978605511211616782911003964106085855849522497743301708693922092311816078661081930238694147735917685725351681056649277146292432083122745416556021267350940314725857212463841702463021190046513597550523358886108965168941043222988461352133889076768784087906549762398150217227273072524541005222632069017374531865952305104223031055066478936526954585949085239283968878172154338368958192823987701813667162173186550859079571830438585923068469325168791914533822095311239672683015126156408550646045666788263924740631600641327190188063371692631966718572173884713997095826452380153024115705312727169079028444169858481959786785323664609058621217325595752737755541788131304514753151475155918415916989262534337840543755784837593727300029895189011890194122691432240219458848315248538091911142259988806037740607247469036120184623793915358839806591328016158263365980027882479894227456725764930536724907755094732023796862156118358112084143157877004591382965336693279862186976421883790030484407832268415789718706911247113171704517347219096717719231843064256990587655546145069597576663211514282434678555253820444027806349184853571790781306772030928312526406899786203139988446732735013667398248173425939226710641871309375372966723087885577963000002732651797830308422575731684807942666947723439316062725411496990580446368661122616602067621345763640685636720952810460100075789013808232050033908330609172833719497187005803063349643258551784205247223315444874744773319797803595899566799542594300393635280406738909299011167054244374512468613929557071775324538964096435936989379891347800548103225544126276916409482313093453410142627152466779958725508248647582667009385020064354997160582373322793871120409086217335626988603592479214615435689698979582195343054724754996423208042581461858803273534053190164221256544749419433581498394492055974787645281647804426565589527243315053006731250129901864180106683828268945730451143011011214923477845748364786862556590092928076609813147783795408849519913036906692847920965894255968839400806275892608316963380057286692662880086012495106118464729450034988733774943529819100510505442167671228263308147788881767760774680352890083009944737183371636826282063292850368381563398388480790732076562308136611198399447542991041047466960305531411440587630348787592148361559640289724273447962298868838332666281359807606734657367554380689564646079702237182149341000904213884572971529644195485034629756092705139351155819350431943117291047008541877949827194849009424669214519312067508074557734792876107038486954290547574521350646629844584710747864429858580725151681307241628343091636847839292199133171813918792981467641454275086004918278154909906560009184361492951389388129542742516629177326910006565862302376416982301429254958691095791538794289239110532760198595615093409877997532424817226965298542103695031304074345105663257110282130724963529448214060338565564849542120954355122304108122096959050377644423568101517519946492153401654255705560458748071872729245644756910521613953782759492256243550137197908583181032493315454356228152852779064597447914219240191675520458151487287708122294434402683947704113738936163200993715921277753304702908521155981162175702816964435218896610217653247572906394662559088414157253207345533431722096047694654624103785396814793466666288622805173984901796913157130519380807499410391784344318065293902314729195509817400264257092751180243655205655854807542275657060756918648605074845516593946210486228309274074850246028596741697006575501606387255328446984640738126738683816721485072667605235854548800774126513439973020128783804688351778359219697387192960970932897738822821955903372923460590409533705172751057465174731847417973103512191903720856169629498593395453953113986122861668203441071822678314254520444963521108229626312732150634506429376187459964018979263714413334162147401847887768895933084415634992417922590148414051217227183829538853511645484159265364733922915786048934691703351193641919502617374595637814834659534478801497356975505682223470721149707399830198281439399969337215915897121133058090963837260267633266121264032406538713287905003477819091158153995272655477260950934493083590728566146458843027965306903785422309663872519754437110692752942953737893002010528294308046071635245937257268746622850578992533551150710808397102395515146173436432465812562418113290042580053826545477782129944588820441054305158192416797754416741895224679829578343078393119444915147268858166036951225663748620943848042158383959143318489244850323603677577947256999129151205644454362536951535547001640666815660146458099845064297843039613202427936782189413022471518976030886529705938646580380967526054843059679540846555598094003233907897969429774219787905317837435066714629017601910392298569573213100350212609399496481721407293666356712810771151979243385036543843278355804392396332084573231780259596408033891598959042663845900504798042118456376673183637507667015464523881547638680823085665791695988901891651338716504201379509635431397427503627248447601439173464445007862937632387561370517957328285165161275892091378503673813373627830007322696003538114732230076247488599900722731285040786041336740826158211109415763946057777907297566887668944203949668697332379836820819976589602005056776452335341456228773721420773265152197400835097246096685662003886612970990600532818079723843177681673184517640707898703996866617022048796132696284367610130620369322769683713236810443802458940853403878788899398134947128367938460247461263820055499860786423405688923397465658465547816530853480136973974245413188195704613706126006769033364722777700164351885079486371875567271140878378502590124411369114781472897922342688582926763507051156440274097398715861087730338558749970791843097594007348836367312884090643659410952576959486406978047163290224600566223568386838445703642134055599857447590387598391109365183582185394535956035211271990613892048837042922251452531393280210392639227836914484057922570018563712946922124408171715896001236151615677126331236167124559127276822121475179949287774606579784000769661588592010203554403300978552661164288143509106665843313396077943079835235677469858148361879197132399174843795596993702093409254921958451107985533024872792754273603939005848250311674867505704059201188320953557179552876500246832741867849891910935082851380178820815504788449587753423535286588776837598196926651130004367276646034653796174576440103248223024948130283631949139985679577471149721239755472195479865725735683017885884117814611337416055264517899862472305002204177799954845566595375023311903619369749672948862537471964077812303255653451382325569008239505088297873835740625881471423970076385459853273775093548632664712124209257740136865272638746717060815716482995241285172067123112524092679747465399353106738799615588926679048499126172837806301928548205995133300877807852640534537972911564025994444754939303664776689117567969652519960311453415964654439092357296741787998704050558374531379993306041426226125814087957269990177608390158143411191880236594279485606184043027538559613641904047332429671380139011279814374358978057022689283117182927039319999301540675758538369092964575948727683231828711296720739164796986364733582976972637419768221405046514941857728303962218807671293885326984203917661623229831723922017623885184803696427961425847913224082062987161004039700598166341809816607854019448147615703909255617738057810592607887943721426754381690855591104129038676580388669584714809679214907217263285202917098136048009668093468179430756914295022236358852441974276735723489894149329223604592076175318752713974074201995074573168046143570953938748256859772424588166755275047912604304690236281898061963702140425329472969207049759044532077146865056403044058805123642173539937194739644462974615957760430733548472931578539884924507039918969523504248217553961036860086288371522739959603789416964535172723974775597986677732497485368556387707893010238057720403367436493325554778208720186345863987494597536501007508828831522722728408071043667072736314607152724094132961552848333738733534001325575290068128341043404628992984812670256055330237608335947674698996279914891748388616509321522836414205085955037126634996214977890458509858859756465375495411546575131213978004316831292620595882146996517871030628797226764493738586004935649083377308511733086017581233586662357535788181002708603177966612637571560397460116602372170437119561999754549666802980233271379230527091672633518822231039156001697850183676750050166043900354698962084731256469118458903062247601516150661621619147893613916223009812341367839666301531582508572762592007546859832216867466248057155046440763167959410076896171975442390476202498153170798698611006954593705774940598700375479619900713060745096747063233349880811496578483509481458228852466456275108782881330232629491458102245498545920932039167001979328578995711924106627376956461657579826674534532578795815383228454348167084109072536434220903759084692714799505187231064281504144789240726139327427821910008054451618576711514768405274762996163224762985217071211731918031008848544301608115246483269234264749864990623774961060478863670484450098289771035820889258313499804063661107744596542074791079819668575594896639037792838194562425926341359589082883029389514784770619854567414727068265288356465029356824302397475100430845020468372520955560236378716784232670167066363803212958788243645929150673037530687118723656352437154416517633417671457950357849899775406689633169408685664065979096637573917525413582989878445890684445551467701153905575882596390436163647782181105886027703174032116388771496379297214814660145013524670500861377450426133555251612693346811828986765071444092493558933331539038533758985378040616202941711108430350263886833383522529397631126154312716730168700250791238126219468959296358552253495433913479547923075968206268333205223335048272651288749344316139575187110005519327540629446833620913351174949195909716098937917928494545149674954419108388753458440504767665542991263829350666653593485938106087638272696261441330621342315652389996827596595818706753099255302602842343362768321017955628312198092129659624253848794150650087360647233625089224705115494813748566598442845259307634895926663991890164631082568476338131719988679814427365106576578533793599854185943063304525838755130863687119283610698171907371862139238860451040967490445592218022741919261332904063580494948010738746931413235831432074939657768440694778419502047721293684589777577710779159648920568588177882282926568709659772545418122462355258219058576327397745957897245931516036215182405812110595753059482799538459097069658236810178553196146831801932068119212528716166330389803825509771730639711868775304456929189749239046986962015187858162647254836287925401298872038962585259421254032529443553252858442906601561596497256738378471767543025629862414497496255363462331266132967425365007817035375298903054020498846926923347230946157054019879398748291071138631174136261341836976277914355598289312420391508126119419599888367652739649077025000332865555787927977475571772582031183757280568567960791268864437108038286166849431190337143485278426902957035384449928609080143299971685807539825106833496584828560347236909768497364093441962937601090691848205026687574834835211493176873775376176281497851265188300765804141796493715101567325226683157940178832480858997474292623758634263797833117666383593239533631082950758280606650387442589709696115475322734456784393817391505962576995571443857571147442198685816153315714472963191957559638287643388900033299593210814691938168716573642798158210773647354295380782116177938655169382956873830411212135950210083728807803228784035157705213591535586111462313171070835956745206388153045667682760830256680025794176265747676628621855555333836503955028064657849733580228861284525775647560193781875414913491065062608796923771023587642567780078127984272725360922673623101227491764399525752946243556958858219001844414303380607852984791834886014931495348189336208252351748904641512515346414676865446692712110195319206297916751657504561090844704174481931995460892725267006983441562380294267170424701745182106452717084435103663510550965444780079224747955224330123023163162890814939279049477657568948529089003447928088213144866348966193855231051797763805452488567186520268543443673313365959001044386642836539169286126930465792324397223349706084018683146978063368273646649824877670224040017843668468447811330530283890800574761613058301238299687893960605018278588417736844557550777496460587620676669645173320922160127355890300477530589213917376496044930495237210671001754398660764057895087315767074420686633637860169806287243679006830849448019487411737027890062298603120973194639623752547481149151498889988578869930907197774971607823584498009515554653573319153598398817046320389759903941426840635823606691960737121421812553454931724048323900204785955068601013344373948879836172399034221644137468371188619427279107729825288672746592869934638587532725675590077668522991875637959986906905061626454852662406451822472905108434899858294783199292561342753507280502104616570446457797060521143413086277449248067742785400718783388040912821874847055585867019341680216220013903923168226479375062946920939927861562006681832546584595502653332479687888403011007944537968181964779319299412146141057951171563848494700699588515252364178861456332743987970914385574160451976312599552097887067940416993584425874906350145994075998993954989523812392902952470633879132223772801270289166873459030449847501764354284840384925889963717738560127328286758312884792375719809738610732149647679458153925318646816322121215549250308702410503581150006700701018159080395088072734073317124390059496780639423147533383286598838476408682833662506031708650900144191936498515509346073250426235317100724578886550400222826510235743817419239355568060582434583637233746804158109178455528483781022303254671148864310807559582851510817837574283745499937823383297264506354233158988071584546812394873736259309120446141631826092239932205237869086780819785016488531481421419923442323472056967261017545443051970203244534618260636051921956085868647081291279539299764717747547173949203749067852837716452526400522357957322750699887984442562477583776525964814672292638529066528740601196391506077049768977957263722036440003888249772878054585071872922926567803818969664996660558653853665490920497562914129482271662396807712660142512222362188549892741013429542318304529657649872950937247685703323984151902436489601077552943464081760384181481819914513983073623901358772228845848657690910517487995524801849080980645603531905836952615047541757009283887157171766756610673488241278520830829451350184485693811492066884998937596184603966047620128465003939927527754213942156596087697074724756070626196393446617197886932072291930187872488407564725743123124900723079853823131155344568673553370018518097744951161490860048332722407743849306838152072377119874072003987864403967168311096006586472868130146705740626829282656724562300926886797488750035453692569901510386231524258700613417041235390545486743878983448322364982909403128362668404425822083499944390790391874671930808003088565777403776349274162454008966467763196087493670184700348479701624111671678817965656167823442090346451713105682370382967028180014955683135755872005910221054098633404324770759796010668136488449498080554406574470986637898213280258344791940331549276553784979196999898439760190591691992641103134135823549965286799317736345219081229467559160570898105481941358368375163743381277655297586276469715841370441458375060200710791462504181289459019145141736191242248368323057877592005486794164994172090372674354626977470871108270726536266461047756339487421478712729329928980393605977888558345078881129844461803770441161682300501898561426974189060924687204077255698872006072081393019197227729860063636918313528907486982572703139498147134411947930610767265182683948630585774314090124016903692288632980370154495247064538595734975026284200718509065832341928888723629570083109162029277227108437908382845920577172829539931811535409203984120216131172293719975971709895307855293666865423219284066298270755869462176798459258759137135834439274553554293820939889103471218644938104735518028955597767114218769870274494551445631221225551786909492212623960196603264233748687251789489985977784559512077273726570728911242223240120131816817245974001039390008553951242470981729568346819368154731155627687884030613796206193255980237824792558056565031723138869136539318372891359250540073726382729898012934774626225022914006491335099504927548764492284957404342191622826159485392925793593574382047649599826732439753825437118585055048098158172926196001977548338886573103159566392441170858835582823295510295684644537559041006576139662635516440875476308669726791368983968960559296345231583517261784064057988472782099531088675435041742384713343275006606463148343865784494600366693774796952050847235812022296070321551853534872654912623598392614432727737075575090156024486053376170476430326095676863807532344351203287601407941746335048935597216209702313374678812480216028688153141151945122780509110496543564721191026972069550745489286982205977785708367017489673890410659585041736167086646650314435353978311110865489655719240883207921258293164786762058314459817066040761066252781348526067568057893161128334605943603516933423490501833770258765631811582502650531353830522131925621388035869019115050121838076438594139965539723556760911672609731812447127955955236738041728260411533783392793932923460998462717461235970065601848597574387293374821051344774657988226558886469205565027874916107447272620499992432034597724315923912179467426173618273779751026329559626708117507054337220464820432439892364548702661321110041417761119724660886683185909412550560801391422179547327090693070387404513299062532657308101776962585720752450457076405954105970326382080509653304430119961931650067599929257968610591128921315242924094975830438317226717284002978797220602819135683964723791131694654296588835729717790189903296125406301215011679762292530526522318489097181759217664099847803356891924363874086388709417748985767009023824968516462705207819648354763863812352871334070067102632405543758485518262864997386838485821490876044633366697842341536248474966059180825402241486195169442844606949950236192300071042755613985088825282902299452532486021000110979620730014616633766417135040801487526908677880747464666409574304369350314354284093563226919671480429180482077826705938490725707092200239791819515369517216837018769151003508992811569156125808317383220139949604495457609862588795677028318592828819550814487221098439610965511667941558202997779457482752440722832884775613778445741871682916380311143803854919328545123009910255074348506256905304490014630451562099913974791368543801719571188875242862873558731061034723985166226632258035190138179424972437968068379082588596360874851329021155083229790757912835580729611885571868839620939663452198786008038499334524350982685053243915967619899561869145048556670838475998481197780113454949532789643397690991700126182686949526397821469978721864225378462043758840866815953891543819521200837551059861117180180742110111020684351843391064575009169698834392876952562853260627676765786636784816596975173084136197797165040790506061262114028133788015039196194375324550635914348456964524920553880594354870382024488046838603851648504198932294578754157330237151307016003491840242800505956726972998589201049136500529753627861821871550203607319738888714348839548755624895760360443276317714043416180204519266811378687867313609170457004236868387070405871120998557614246579564747470057760281369257876707953098941747787315865822035463120592651121714628234609328084594967189180443604969820167056648356392690806380538462848575317664573138345681615602899036919147820771364377769691713968671907996800070525373490819040767874885524475966858234346284296243268295577839652318385527315837531188810667432791562729883550352070005654746501068702521609673697764751347244510865867480186297615191589629360374479007163217163641857172445724015292920216613664630792037415296012874232182673784653809775588203891169673461459342327468857857919510189619027852490606520413593394186192677445760102479214714096269401684090823598580303066549906416396640885127471881074677302407327551390761297333630214420738968334417957056941570351766230966499408589812097345593082569979036765995821083714968654427763504074897575201044141633937902986893818514417834857865943992076036571421893072821536634568442836229550746520964267903436209873691384801151478668430508063421543971073435518394153126497590085182322312270474613170258059386618941836234211150040893150936893310500306636673681008353515635024617176448767496738253421036023893592349038750636948071718963982438231393982447713847291083975167567981336272874235282169417862891850417029228804822042121055547745247120177914108266868149643834396291291273145794495460362172455285593802460295619587010508509841477622178919391906777813167139443537147254342193528162064000484254922857911639073738859795097507114113792947154410750351045207370316182837621338204027239285042742224730013018786595714312444698178731593824322751176310495685350182879663158092989795741701162909093535566738842651670143784299281496930056309749986253105601296326928238737342614927722883962733717812600600090691356326717920377658893097816602853596748305478426187845546457584008965571069158746016617671858645259870738316095528268832119811671660216564614691077956821880336336030207069266029218675517684848191488981428529744198001376504913170618194240377030781651273673013457720852297760110657255349907860464472156301287802547300996411115699872343764023493765653233069849055632479732471301137791739110598724578808747436401725299381708872409552154122406894076881346407644334690214414098223087128554626366558595691075544147392976266272733540223546188357206306505143935228392829771487039408022773044073535482433023375434357876239020897110854687014509151797556392513127506687786730019461616920106362221761591057704679560719943921145393063134246743029869299148015928057430176990229906689604562599278567461142881925975493639226697237236097422787857833879516477633458761023319993752225988240073662169636265696613441062803574566555864255394795610646006904797028142376743567563845488617181993815144320241869770463302744403865475667216050000320222912157146617995674774455966281829562159976032278781099572554613162810144241863024302152838715398237751128225809001628110445339239991413322232261601971644214779158397709445814802336908489260801558220993864396464023139149557023204962970256769330937930729472474340159585512063973382845354587274109721752077127512307309432123722339429621212524965953644179611209033442484025023432526827966519124699937082802813011395078324087000127767407180246274896506685327780070783894470092035662177714099000791280431899259578851266102360630754874267206332299628349980615493329429322799144080981738467509295727387820947014832139166418969545855235043237188362322500522830860322713010332894483422280434265840537183868183747021522028474582565981245213941360302686043909261900966411701387995770103388287095114280567695999021228671018421241603897429683021094296505202427474237511645782936360254443510766692554240742240815537214193837629485293415582096880533331049267075080447312222217260148476240312795909412819459151842221311400072626347058853022798216701191724090697110519065418772545497263888233293750710881109697851483397993035691648973518109359919087909890211044959775779901641924179194034532625505728347734969286266181037063822965990634857403749785289031281072583250754470033182839678556221539934555954288055253711022084167134887173538716149445125156799164969266139868330293983080268283884630018134612077982005043464095992336070282813975655184593242591271010496461733533653726437327298749944088167903026374063829472558769474866086462243458348492269405622834588635620943468249551055233745660571353135872537307515847504173040173154209894698922178774017673986947928135408767504336673526366524300912063463075965351495198253948785990929913922407230643660926329880323925576426027748781781369478431280869669286472371530838559903372824545348209325529745012219554346381135833530330895735352898143806066607554678283476019526955677070868183183816928730649776823603905340776149754158961481641983513994176496264693814381043901185934221255482822994200187162979591308585640611314562270431672256116013609201478138671964631754769192351863651083661918375536012734474527935002295625727113198066418276339753940856965110189248734198767862884906102670422903643298398964340817338839259882407366213286749015931205084601960581386386133249635008687788709934843825518524399063992476873852577529827710199111205282328742944444606815689948984833338952506352131464629983144295686329175349621919006474238520439441522357147981797502223056761864096128355965412555755930574631355715521041914567520464075020142244875382927120172938238908666789501478684712937855943285300141667495569852881969353113526794785215157463837241591955056056037797402330221777125128864396587956559231386102056339949642189839498427764802587342203968569244726372909547268944546966273931737466329931141807885348942726149714360844726001965906526285859641554589310364515492069174186096375424273585371328039804963703022053293690512728946875362210996864068331842002347032131436086399747597680545096615518338428308695804623872627957047432658388482963421646289898422604201852965719609744175032543773686950454220809327040000866242939736122035249068425966432506669646456750208552835575470321516718102823780611544750670305977210366960863591091117262726837238928581564547764800878327669913966565618038563756953507229391659379167140090005483769895583858983901266062115884490059154871545665494616277149933581500581215780842525809216914393076488204787685232197302883774920366440583975280579741039357651597274326245765843777145391399020020649358485787639430251755676486669457998503256165093154957899107117056777792392416428187819205902450285241686256503550876034541002565826102252301811431129671006739995935612577308179485479108835292747640861909491068361359300473872461447246349988534463214160896640467319346903796095220695088276536358736386054593866961972066245424999707667491749065568253707155018935154387047764738412562430465381047696421065021243096720821596371987640687931601842042929675864964212441781006563794020260693838767768825547973212892367670012165763389361634514450952383438484243898589334885303867050616566996802464949174684875808177640914931738304502290687050202077968343357198142917528385893080734017789898022264326763004145452416380674420941582501271816019394209324117478673807485550142754329186818688340298235383007403205719002488205699183749988681753793819586219440679048262313180960717161461458628380887897789959885597934987737656115275194439177527339911151523312717944371039882733022219464349263207739364520312140462411397595649694712916550425954174490503609203802642714892053210619414431119675847211958276383106765881172399911035149248933537698863176155599715015310785117339008872128698662536907878143594186461970886131222275211751064971289036638521998266853748339463078929771760759733771445258545798649292434988588406404008969113182912082371196081314246185538526784692130184669677868869190576011023238340581605582174809954894310029070972754773296485951771972276533473962501294798495382312597036865726551625170886741434601472137549177579288433866515817383282148372309061488901858871517375267461303079602783948186397300212829602289308201154583585957290029641949571783488546490789695462449841442553628645378494840236220790134912031261954283735093798553187138473541222315136167063560004584135576194727054135439897046846667951421288452720717946036131355181746494067122047737630179847868968224823770367737787163143526802047508361069265720115530607702241176247821776162989443933763903168874938846155744631435654405411857291379540028918129065843746343319844205293638367833311122848328515938897435393764999980492762281222421973859489508524548917908857587327470484589406000449759670084137844247612166085151896400292772095814536842560950323265125517095022888490127496862977763069341146057878776000438234270924819096887116779911073167805273019399903053940329639184018747180911070356981850325985871018062326058521562358789616914399076380987317521367725845858759957593639772697324942912016388114920398598075135748562429012617371872586242596956544924666417187930497621465422832250264572317519394024645067974366027410989903175287895221560427058698163736551260344460961487328911823742051522762013930978643955054817748754972181670011460952698178103146295775319144239858450712948296154364717079141172687111388177061555741967560819725179649536901541988739533683376962311473999481586780791053409887714206751280585322503187554036658748742036103507702049901574436147773379246182536733861637892023098657315795684872205963786810568670848810041121432660410972266648255329054174922429286855464161977564424526378040808161457194967675021065196308629885024465803733402211270404808491296131699663791107926731030810103264347516272402198439758921835654659831316725355733950075093761566371111543881103991408469087006434508399592584940400128569784826759734120215700764495344502973548590967152033087779268688196931827338593206170137328105959767658334764690306954095670051784992290278243582154566846014802348060887677105178626435510551828084605193422939560393755806903585158405555561563379913738041906920646775772584924382440118034642234656089366961221895732865498906249054489042027301307004747926541846244319139324535615738214978040077152686441207463928931040698329724816369153401751246427172155073483008731649192752281062292761280150619085298270205765608438964177065396406391962329732559283410920449266910368177948556191831649129847500902605573430284957820742625176636384414514713340199017880514242149542068723798969357923542574841843079185871458376291565179958329385995799969300847088384002208555662257209820196284652262349914999908236352501930866104920255162347766378387646950179283903522066348791387464215628408189514618034558305561141752073441393649932468296366953946249672828411273322834298007141050208163426510430074107864213958899542157806953737735021849686527555948780466730638815433352643329320302955597659618011345235813698911951622437269401840477300390431755449679236137336745152507519631126946229848048214820990773850676551217190399373461187337257399607983700721847306447661301389215404391731354104545498087270582186811984782806934380318926010485974376404904987812623894980935960828280738855059173986610971251405239269178575349344575984223329764524500190456672703270640987980111266739042106365932743025446788598633563478877270415048766320564151618069936038319233452006669745449196003993467050347053603573466928045700150690531316520332336468407527259966435489292041513776970440635588966897156745698654993440258283465738582596439203834159786772066117470957494650119901948905802065675214145094260153675519724237922634019240824828359018147033974357406215278741331931338165475789833861114624887597816336302823479751255901938236270576658666054139621991103578593424121545507216000999424866176278052974625139753169964478599707270588672679539664571755395684316904640554835138955719892902584969014439475463902047155487872129909557778587764020253853809034095780135067825512237649479263668513823565540649726801520629100133330244219180650896991145152587148431700839576996792338491415985638652332711095664268345170401422873445308658055596118741968699651339385704757764929850063106307813253126002274205833835462093468495236945614274569611261124749665718325230751143620899470419667684231403286617756669597973016124943588808840485542843222209347134691857274237545640342409833050277711393571633240856112628123884436852247493341365617280682215198676200377208934519627073633047538376658799808905181397982789774871656841180645873732422555275668038288604865796832922871228305340638444231915096946024061936088847356527398559122538128149008629038774109504362841816358222983514107917957382735439190902294640829145160470667699773202183248889573629330247958517899554198314394941695457699229911237728103097135453428116733335740977804595446869143390957571481330772519775576680993372287378156183049531650495191962225519811181846314641331345300839351607651919844930558178308467076432631559177813224323437748266644186804181890183324408681574400519585175249698036383128436846920039849644833679955911029769079757077083769088273610339980555324131881941267898429077400869535659235997108997912969800947586886866746375951152894165410160525401176560898533976062691264038128510488161791041080777743277147465357700128523560273871634047248343394546904679258790586876889609493040952827749821275264946994328485517773285785200974031416231235662015345298035897984837352112235642155534862873411213259220737197751139929138996924831900977122909093570781636657424828306692575988780396208865383028224744819167516205453291649985804078597893599732883310192115412106921335263219365461495582831157504550346235590349129253158725389442852597007425141669666519883444408526219088854221719680446735458945376914425359196265649895680975275809013752470277548011598090317899497622997065226578772011295485028067460990920851624204561244250063285310395608352084676974568428763564641971120268531190300194480453566692899100926194167965366187677770959465377040164282875065952959306612872884723269585095623874060345594723166603604647126903430070872875666937765245689045946451076107244965475962072856595544971879122876503015978322645609567454076105464683787882127416200698023025962757002258977776615310912130129548384406233322535406354988892363287125768602806338727113991359059968441686423138167311633833390914537113602493804908648418158307595348797107562586329522857195700298166812537789950018372937393440168425512351437440160480800543490967506075328904919510997963241889279008129018944224266909567542993774642230346579313014653268124883463163350246008931493899768813472807365739659835631578216765357090096800492888194179550698776963606366672047271926548701880301424452952800883236588449739734433662288989491923311566511662503153819927878117896004438100219163830156672323406814199196464210125257727379058731094231768420677387596580557019303665616365939861397863352407683699517176721003231887336270760180766612417798553288215297679780119638551019235651018584617594881936392984292466900166011509767142308167732829389328849431238563228412781175971452309154273460691202950585769171751522418637402509947691867223184785291400056786075174929305423991550252651854862901405634908894675906789118153000278309933909478837093921885104202716204661235308660554553891155838673783251680664150688537582061194901591592572703310674136174710506296776387283908749011532418509362496181762030044019357386796473389202277693260929119696485189796827196139060290763723019591546787341439980006939594146443256843660250788612321009645916722687657643579417545836797115126272079216021486905036456243463032457027622499345238085737565699314892834787541946623410780724861841861917547567258829127227030568964972851378694809609420264357453164030792208421824326998260851771968116228839091334524886812706519558146434608807641460198511249497521748381792042432930863198529409786715259298236019778348089128486612927964230998831887482777847293297709129597812243639740243540145202531226122326531824106546068008341496526521959299889578979911158565053015084597013881114841042392441808561858154398695528775340563816706582356289436579907595661447711644917852866849614593797876701522362924519365509997578363247702236102994111079097822733532931996008145938872440158389080261793725696550642108589260040302604679402563913131959564586408585634077015048914574968738987597968899546127830071876024340188446298936445870086764591798898154886021601438245141017434430314535206459469829918392827234325819498165281988876518823039537694419639883190418612104102649009916803083351295790410730060068588669564454959153043053417146895811233238171856935809492560837676327916330104011682781058158964771853143493192099161231410455279766389263090067600813359412155028071932720512121894333221190943070156810418493181985021004997537176258283018066386461182255363449670588732574054376820163577481738057729838397490328919861074706701254997878784828344139858479338207255147916691325874898555708186362594894812822475137019699573186623364088910999177591977102135859366297687333067433876615937947240982064571885237625207395619409681613066457719019001097834310549684357391420970489591517061556109415151783650741537776203184904581320789039146988123529275893797411024673691707799159930963600098001532933838270343070897634043087652194428939115882984209984151199249582393150418191292464587499664948366003638060507205752471390648254722334779330757250493733446105367226162040984317007817647827535688489633481254102854897298755421608255447258824235629772117501508710544340115646895239036899557745747643835778312172639925769801356125372052425335912482917344094512486648435029230127496954217901932950026013452339021066769745934341412183345149047734284124692870057749403384555241685408374400423969815499766862594690610185453981806000127488831919072484402582907729990106875743251553362063228454425212830532565070491503475147978718612717091475755554969041192323259476197581911859434331109539726514179650326323241299066784176725269906450994163301652146327503995708375395645047891896949444697933737933605438854917400222908619784106031879207840667972853620382512562561658151224006320538401297846030885362014256880952550549593633727635859173758244134801161021001535997226358226099519530509421839690444467502220951165180592839679318824546993787707415811004230861017928376581628207218084148197030007506196774968627010464879287579104008610104637077360256891193598854420872521776341076644082028403285258664457483399784758372683539868133381523641189110419721617852918597230451903775385217407760126436160127450430330150718290720843714279911824104981925076976034580512833183055798402128449610766667526671665991353399086819824481066672080554320086368702454648030842259933224600663758937336446532430616541163177323962742316405071790042540671506802958529341278895190598742570993467269836161401535541991401183411775698691619014439274124959417583393066866741229889245690316330181190127358904125262391904065490025847872614898603865283008304705087961884477934883701602512981711706336877425439664953781057167573164893920716828736251691586476426249700537789492636153375429894151828920899639748430610942853373357221650591841465863611318080793526388316104563914005279566856615981673363074977773753510907503332389081304445206351206090553921743931754001001927984283573173003675280076198856033264529336793145799961020415440484022727834653926034523185352357333478802828162146241335158557909698991718764370658096116432012568021659155368251230229846032410289022384014954402798027194444975094647833742669596211335473817329502403993038398999087025287612591062964790860189551848894823475956000466583724683870220245102089333899077291284706043437550038754375419422141665843650741521636878473161698902919574353598316409095230314780438442362913979278917184953626407623743904463131499245567936065905664477230628069311255136570548829710893734607080878472380092744449866155082058306916489067571345692755285924209722647253196777991233813971187046838046609966042686551636624524194403080933471506175232227476947691174245613237970797353361684408069431331810414529215002817561080602591271935545773258777434947246513496667986204214606568382342165367880779832371150952106322845916684469013073771125936919450479904630166987770002260942829727173843885016399002488077981210789780246765768570909851416329567102684068180532695076684234417055591572006446342835602971239099687353269907754945269961342507986587163103691973416789645871083375675078381025399191051351606579924134503554152437101399578635378720690408317468484788339117504531467215202831448121796701521269031890248535078192817005307909053543017284597539604087071171922144710656083179577951501207880644484886795310876376808424372616503122201641780010924740147350112309318771267352940276642898160232177580838150853658795927678295169710309987253281494881530936281060659937364921798838215391758496678600601439706695697178164560907947769898962672190696407713863794545447536895703454038427942450296627715389872013922921665667168375270268876687204964066004563882868189579183263403349419191824421996580547789238753287257442835304275931555930462650172201237889522144438824527888028231848975763236704297333346995471192404471622895808321103545728311245696802820747386135231955342037130507963326000695500978245590015929840331231731395488631180897587863336301564685206892845150022655057453171766611459871488378223180489180401532754810645577740558260832399359056738732820609075662924240672059941774572139767326560375455704373583953977984612279266265910659786561459408958190149917167859625045900610788304623723659722128047979849750820790160027500551494308796074197179701745862741691130923983002064829379337349781918824724610956955868055472560910449466711784939508013546548256199676028588216066255568072200681238465357464977714328206884299971486213230164529318084641361680801563284654658654033006085463695647190080495668044242825064231537849646078745842311716925253604767135847478532570431319938634134555651670842689349462018254269013969030334023592984750036627457102626588119652470858471177849245291331511824947864602301800129344702388887922075817786161894131294673379425713807291671698551481070420496748967865868298043193251211031991478485832072906651396230834809679665017161227983098268799726090855822501472651727172363926477534265157284347778222044268085025243183874660042727429957818819064226706917554371650698027167612530242293727393344114203342844540286459312088837925494730520543886769386547282078169165044685551446666632087814422824150228295496899617076881860625078498869164126129101661604670265903245680561697816330132615326058251109396884050216749971111636037172936619441566375489902152952607648459456598562207998149512729085006443929723804992056533267504824144138261954959473173463087125704126829437603401855689049740940431207840332051575817788066898037932525190122031321788306316773978218331267130965655220348427479033514783845387764773018777995688629760744365259937136593383798783990764017800506251400733819541198380368315666552703109215721243078313185725293664945561819960341345607610347850051296358846982742995175092356380004905156137332836386282288971293532687751584213836193096688358852090237181693141572039805819557369307608588372490269358712082564545705050517139486891996534340720977790664936257821895991477118408419114104877196370347630495198857085702288491034429183664530559959531508387267715723482804824094412809384369553826235299671482437796754048185673937327967014534694377642588851187512347719291601914011482474893698722638787033172269938229273997993413230058650190558375450931759285636658023299546972491810555563069092036670671829048943100765129604596235325523150217388358908935800881637634169810456783618243541119815745647729823961624073915787193904288223058161927614900278411175692553661295710200177184871073388866860944053331004182557080703206654144961797056692658526695314985380633300165145739419938716230443217740865860735375689183303997063482382227735496042944960401379409887253570039903856965772972413120858998601783201119221190496300277133157004179120948549123750235855572869231686594910964973322803113466601392298782381107269383513851294417221091264124485943305911999012781087507350360930946571499015405027318779642072102475183441852496275448234562746928013212721989852110652546698004515217913252449288576774222559709361030539917976635705824385817393123858358475008933818659112527398599426166383393875174072475531641444343255002693076166384749204127730174726503177196177324089673812168981419634958810853923740867415417441041964304844350260920980888893404143013623532682236157689448405415764738993936915000932343606146964411607307275012288562715256852033928906590648650811950122567768069782235405523241955415425660965924752904660550676509336309053757092526291844169209786673403764318639777043799090849801083592896045373046184359682253455020311878873480428267385253223313465595290435553637140837917622161214482466543855422290875804977560000023478288493123462197925557544814012978402918524608261953135807383318877493877872197446612374431626455072224182262456826633161503130996670222352529442521363889511376283554265573268647018932100238425994284642632799424632727515891796076870532661909954707264952323210294424137281956352198285103829540984607182650772466121658642656120699724126198379550708694997009251306550010587098179727827849830132793903127384464359298487097282202305386562809642931452108383759262688317216759579931869951378574763662232649125222877108871445580463948789854231452280907982051847117080597157188589009300500816409329913852101281442826702819188984605581351073911885823112782697223560041905743099263024288532697463795308539371905885110482519286001044344433457161208548269971597280605979762204986454839799788931248014222087051118476521683643119603489589353345442171690755232225286242746493917975566095515770138961383103690062112889865828229470147259778332058528551127847809762319500397664952008586686172643892797788288276216677293274664089287892980101817060406945807948080593549175015613614439210215344223668743931942203168215233204647355609795928998489321768556031796912441400994889747986863532500503917083697288269532292964744435150825179364940341756637513774471612832427135920170989182096284970636551392228270140835033292579876200733370989784235124264178724947674278717346784422096011094651751881682510304884206434484058880504172260716492733338281624384328885630175801103205378067119957457962626206128597575600034853670640541373968793987771685341937242234846695021699168780384854633110555084668605780578077458635275265392631898747860832685323256738476138454248877106526957382867355309366431075786568983058448346509683748268942151660415574990560433391551801655446212597390215394410084110890848144871829916025103561197570651105626270200312927064243477777452587000423863673774890643062676631224553723660343774515743919595760390603997798257824063237259843188090758501521833293650368766925148205204783672943732000776197277598103315824871539076638127738532035270031969635463951082268427214102403797554597127308807873748648351253306659324729465286337623113352385174636501103428323889757506709204770566794429304784342232289524539705466439345227123018521537412062112456369839127332071197994687824640804081481820084717241312788652637878259210642409007905955953007023836678156928113388299808153400197572455448411510050236657682580051933191226245789849339289710331721346101674022325939213336858306330740540545618165092611398979476936826281579453847382020809206918497967917391117673350189812785303160358433612106747179956085264835361349969233085565078795255331590933405283229170164524804445424308337223817958273391886182229428759941258632675168510440222835802366744735025070592824372440724415280641788803784415544539674231524130431440357879144945493937742524386724904870860908157608908952866139416679559174861077164273284365295372085286536561343169759637908266602921721709086595480784278394795141773127318076489156800997789699554921938961661314874218975644540486752733660116741920216160443347470040894383170539416591243172083102681715634270513461866751737487680430144402425597507943897418253940694853410004736605855780161785756652506254514877652140653923594744408608741171482922923464920262827478407997974255410425253391443317929071403938505601480631685956785103865713922038639975588916044667759701263688684035549931881334330861821177216862555582152076235036318660167381037271078196153871554888439104677104726610799239789921086773802120302779205890156048607518913445669623973474413956490370166564084220635985172409524687196412111862105420532578014372746930129164052304625958148355954906993663079057331107576115060857893391330202265407820716377682226535710498144134353027235429811135586279451940956336987337529281277377568732646909990609461255763510853027342512858836048700691734831381090618655882197747655834161589967899541293050857445840466377699158211901443667545596329327112441740528762947639712913769061013935745710988056691545397360168644397570939480465383336844576828914552899752674817464954358618339869438494924369110955317447866773294091427936642572993710178420165375846768745452586023448937376955491297911634115919454572117913792351514744219027796553709230388466540281845391922734579051318227994403850110325554204838558594596770417161779250255831152591599458776556294249806380118965393612887605874583625810781746589194429922016002460584600977296673422913554687654930673129711031407566130523098745603619552686064132109502107050161589406976237415383197605151049024728778527968510446485559859544452620470875646156018419238910253755608437185465530469272711235477814831587992828895155327305307361625072642597759861858440875837459817638001248078786870485353905380890707707313999601321647866607236541940002465552026294991624282205470188160394059905961072115412308351637172978041642589066397771245425026538804330435485731773192759831702606377254815555651937641879383130068887332740031544469157513878574152553520291136707758387897065097661460171844045756324315701377700525601499098482932901495904869807836643662351355935523759851688449808169390086760193482342000683209741746580175685838040365677614520761226400055431523033030928497820785029395077607622846572052836670224845503002290331536888924073936499523662965759620335681498365658770302765790124613683088266033114629911619018021574860379653684377591473247032516015808026385436824768190076375610824661813769661984382842895002826879359011398736291290154180806635516280032168809084415629948707658636716509800797775987429641564781389242247153278585556450307886253878222331443310945092202288629453432556954941571687863513821910766519008647300350901432670667533978833315066979717306797114946532814232406977751420142589769434919585603956655169881044083617556772576592370634228092466305379647632645061456563009818412758006381461062029998511220635527195703021089899560302375993337135636019488251619629060122971681024187744314908075742795397040272148039301615283159713291250761916404024128481016375735060842753197002199043158622473345466344425891679203416541627846011871382811189024710911061344549247933800576357381896123815427884556562722862790772890334646943053087405569503784386962285656744605295760003941763184910142264955044506680265567142805779810220575254897475700380845372954194872925099666014006874849599816330031457955236111019644128940464228976549884599445382980509645924286064036329246783815963487125987112375912012923134189575124282568106830609757229766179349048374109693394202786799980632147472981090446124002060251037346570277186082221224989918092242937447369674486485331950923633006280536206369310586072089698612059953902388973904692706756222576463481294026587447942911361665476543728766512146394833508639416340817099226280104774996632819689223125373502399559716701289510020840746579285306404249644742230007454737078965285396837147029087688296471970400389553517658758232312243305490583351430136701255127108746603928416702299492025949479221814657416945068841566161576467425139687592975142953632556370676150501013014032287746907242709713498948313425197266798420626965014332614633418743073426782994762399105445863358593125588153424849277926531728403129662124678881615154864711086776098770236057786780283568954271431744127766143651629612682766092200863547148233008609740871046733760969664723768456943101500255255544342813085222422781651639064238658579971838932862400029389474222373110245559030133653228984337510927560284217289958239718705579880276786177199450955731097037484964131926992948273221377044206457910156198319457317083885154541786164634573525915578825373621865024337019382060062797052785384070321636393870689771580558360012585750290377208489380253251374755867377863909571213003658793663597042652589504376791148458700323039204823770744657940932560119993981089507414709133152293341858419167285496709190690933045746553938493926512672228745842765124399435262568622251670434291806980567730966614139063796428430335681931407590159302493723524438815328992516409286314704953110501889557082866662285921893075054990608902930996124962120045054224887585875239235659280017575709441980200846059607115845318710553923219298440506912182147161478716583343577528094747887200375160011308267381837358495989836306344813557928202380237354463432959803199078726029955371565194853024080786457138515192762530979385776992156331028549108534812837931363479863987014621528408681097088927252225512078978901536461455849145850368072079209511257583991480301310808217547513476409491784946652273492758171687859339654213575560680382701275970817079624186100440139215238950466027512291645182835979983706226055553484294747543104303794127972875390429837462349854442439683180990141799744221114020943596459478254812826521507391500746299593569146608888104073808618039558190851560785819606314088113676248159621715429283990603397071770627003980453653703871410356344432281489196082719346821970756489451354661948669409142388561329153279318364876102027870018761456288960784344132442827609945005228152212582448203323209427936861337407064431193852322908578178111531033899874139727974832328170223556360074269554579405534114351502449870611657976476723997951813893397882645481107591922263810348362173621683520629853100892277372648551712450049220175066807800624957199755939489037372028463733425840166955787241031079425079473907470006863335495756344144252086114753313943212798493013323154404550228022460410411061133716722907375232036938426311238216178721760118741960139173558936199644565805480236441261909118571547561964621386999543186794260731274511957959548954319435526755519729158689844155901528083649084564802221930609981818658867366244033572531838854383505059132525906393574348121680736157001533676060414524074295722632025288130960202419483409446973595753729611149449183724289441553682820693559452013515365841542594039853956902385292525813723119329392943806209288902769994256221881488296840967549592693382701969229340513293704300715615069263874575943020513187170262446288189955798051247510759165385609484215885866077835478936070790996255838674230064639265186483545066706023343749515493027326955504467011481924390107987782958444812624504977654654915240565593922594825089770118353103990192892821790711009755376056992934779339943900516420346915433790218587888623500335104683448015271284555670249138015766385370964528775380487409838909197435697336620364658675173058403872898133646891783328849032535781291852487877924793785007758597992200023831560712418595791080382622162363595990770406352188277922325774773870489297979183149836118956166186452059627717457282604601009025634470398772396787913861285083080805232276906117487112082953087377867122927920591552042498640226170268838808822731025313303523729892900108640082182374994766761464673988844327209666317411261428335144709459419111109091827114076806490633698602756657429276015165831929415290355641680279767395098552569635379995260554258294892679784724062361942854335205247303622888349464519693498456602480662211157068421363867176361410380107521748467057910623203709919058835293815456359819913017605390424167117569500296606747262699931196945515690766768978099846119975738107249320623995945813506443775993138136958156376056246664032807164438053596345147879252844616159733144203428044490263142174000328893194000784101702118111132839338158268776516170434725326830828033579168752112496350904255524242277258736711543541742555342317336881557656004446275623550520597141247810225400118600670572978205044072745362005985398405745443851119077995157539360353777009789922591489699903222289779304380986766661248921468153750062991317093613422683368457183170821805897202353800789335795881363928187382145061958202002095295573043943610080826188356563041584892150723954489651326623008741681169120435937355944641945679957390524550497043865935685610497870982728784808205556704350391862265281103088950683374798696426210455579472970793923629289769850206084145635010724742362346320617419272470826246429390090659577321864550455941720173896105660621901907476602358283787567766841696206405802480649964769951014247371023247835777777946904235143372364206858581907024664227477108970468589645858659500520568564815904960147897013824970123005691983946317231677644881876222227117885010823930758153421608245460022330412673287993946128459668023732778634858887440469075054069340905114140308937870946432551779990462703447785323457548521664463903846189723810890460242023509629335090793002534125366998667535565015590134669316131770477567193214859744412169555946143183565159542795544199475954744730078703893488693519899418916936877805571810174956702847340449276298699262953351617245862422330600230118657315008495702237291283749957287636997685739364825892600233039098090788735650829165493696096173186249792969571891892156517930266049745514481372144707893529904610508763539995087467395841128673262303386379545907605742964649716156209329017759998197970417315331484122640884766592470149493375443762278486307441844226701873334325891172520896719917828432665832405410232252553262100004545247004282261893726601184471228475047292057750936170740790613705566797028956889815626841803414333598366794008749621158048951098315892017160486578491116554488739187584130751886186111393249116063685318883657688165346572750321503885222435917606441610274860485058640370543620851286959550666102260982155364085783752961229937211723315404393210925328716941345866640968493564092546686862614976331551128395840280401739867293521667495421328896498182428225998066413968720553792958140183840522373783013504866118339489531398673118455249870776271636086025566595346687474930143754835789781327299290341841527185975952588748884464386311727789264819872063253995597982685277354629011985952858204979934446997321885727899305822734248374770842970865691648088600664928751183959286847732333808187026232919301453287516498998390538668626254674620884999492203511656261541992310024993979146652346819270015743764552879893723164902355898681219694171812423752229335485185897823826266317261730783454296141213846051441164533025741374693438185773181524869569302720316948165942137185085541143144366461522803250606233291116529737281184379875182381696412046003895338910673819010797625594648618108069619135671713535081057202657280645271104851969728104208427880960537100361238722886185657902204283589540174322187362173163354483691175252608115918668031465742946673307560294366253183550407510322695627586102580468616575481428641907256953548154717550582474495311195026004682629265987065648201738535853278523310032381320566675283227900574012788569314515980493993996756437418130725556330896345737997695331144235712579389828256676197812179358335787618067639373122912477049278933484151315716419119262879561695885212089292396716593491545484781384048517261217804191522253040829935746281828800289190658838918298077814955318516962675255015918771119463212418559091186989025588143506539083826945150744043893195960885960791434637563309311350022021120960567009080804996178907604363284619945580664260332999478931017392589693714494415879795128602590034757362699819383893179457343281619137476216243446860316362085277519536932729919425013563616318589144867659245661956236020103512299238283582947028246438339672720085912699322717918431521746690310562322307530534812470382022988731330457254362393238852904021903346110625624218836311133812005980633720628840385618670436210042536905362065717659430545582961296091164128271247301380804954640884447815580692754177673990638754720585869218528185934646116189128636424863472494204980704823495745072074139798209563808614024644195476963710073182390015545642290951452314092448833601226236071041466230016392998030475171626855552513740616572106759016592041311109162300205932997335117888701380222598200229530811040842964670760662608779431835962746210391987305757895394975731161624289628998587893599877385735051147356381705343166551915818778382736792522700622285696794693841781698390656964460744538492199856051509809806261316495487362510641927786134960268713886452946339809335274548073278764078538123852723290386216465459758784150311799201930617462554003559137828186082206667875657582175486467985617785380379043746267786106641901800543906100513810813229475377045233405175498643433134236405662023428433879327148176607698566024685784252412966268588602815577315245812348228804989333864740851688305714687334388557941711308009540222727921686593594506751622617503596589042354701405775793047884925948965156198177373607902751331051988670827521350557811099891321636786978755302569381072029317805821675951470801479582566323334536143065204144318642929386842499084600165342526099534302351420022990804924122756600578858468678963193429126151702097337228440248036360755583871284533659103850802145840786656276406957586453024679798925189622431459172105604344325790127689846800786742204382975949192459537343802464874164598471107402571668846394265631592644149980352148112704325109767352223759482269482172460370256375824600853829580003154708398093742798870333550817715579247356801966596576763210226858671106274951871894432852376294760532756453766917350830426321226225746671756331249094110897205653402951733904465654782782235232807132271395463244211192659231490769681878737609065132065234379577913868197684165600339133996619015307524203269031040644120233661522713283422643598747068826264369791364746229902484753002079089232827308867518278743871296978529080119899326194713341803300932875855596988910263525912250297499558552224029813315135260258573415856349213467825052660456466612240254450309549361076775624547461282174703251431542247858113127188811085490158228215920245522561114097235126740374829902244600735267152144625741865130077925437674372978323824893439846078399333115605103974972545659753639807356267224842082610308335743962299898613540001228255155821881415237536296976708265648032568099236294352159346070736520855169564650578454357217567864742269723842486594074005919014693815941596481235521440871154274015017593517367380957463944217574708300452929199034652600185954762963456699144401623569001125193264319828475410583774988660447518473506875483007928377649501470078598618788774630703533002392037126578135872287694389486159267948747094404151162853959893784653710141937098144226546013096344125639811770488893067001520808106487242642442084440878362728969922809261821145909230794706841093641722167580424043536610508905987827482781793926576965986694743216387817387448046314466364031154965310528328218147325222322593617862686527389612046488837453112144140031938515617621815535017946461469510311869758475298913571918449977036160403478396378987791716252806491058823446249849246344416947335940200932814528131250354350416957129948854551616075757738410710682420542106157919576115573952609818177640098902431873461579181028863691756222077923536985909158983200361817330897780295939718681120782929944535049526699253277123698065730698999696190801067531834352759737262798194480788421125393744864885831547485578340049944157952543554496793911777690751946275252370800146840650321990059203207560433633820083477561213767707015720314943744702600885939290909830193832956503060531598359108901717490925724556464243770657210214759784000034748334501149973951639152878778356184125373173118731693513444242879003201871960281363863848029463627159454001251132667891456246683077072453652607298678825603892039744166559721767836728048641913692189646629097628931555656900375538322016913172092825681812103731561291304410550699795363700742016431165618940699902984915214707911802286433866336028145846442321614325638531124168706857664027331358092147250225877398741591233552804868853850909681666669734120071182691117517677348301595847177994505067738458314250407298147458981683403297943700244031864565571130615440958474792999513136003685861496702767385984173449943311418893787410596835313829863887881831556222906193849094502872456973114004389244705985396440698767945916635696513866749745120452626812441954267446502362744518451318261545189969619763422976298174471980331611367677621423469604812061728361653596180919403365254896720343485123206015401661141638132336255165882120017260207179622822455641745054978694668456940845322459330936921057538727531646122872914811156749347797381886553857203231973140569389762525022913440761650403021979135946189051863466774723470826155785944209483102100609305656723878146633614974994352000974053785836358520621514603444069767821566225130545214993293614418535263892928453335647562566624181021432501400462241286315316800837805364345200124706192614477740257183450137453329597621962814617527019639039044178895309004782300667590521006447335331344112453902029215337145029259457881960001880091635904544563855033491561605801625724903277100058043605115486373802630746912911170977579020343004439230714557665342097607731189316649239148398642302977709441467566462285455824691778151989802108452447353875913683190909590489710920307639291577558507909262620679973951476247473540171218014995021981938727514958964065018523738251795298141129112342105254332731234406712758025274875715377997490728135703569868615205870374444493177367381559835242834268921816633575761142063728369589689057186564243785052947797442607371849673010803884200468959459064511401640275927111728569104602693554939192468809545824759946036390298455019336682484944368732590637091942466934646797018952528796186529053527786701575477228736319567399840207868257770056659144266005907018281421490812960452212409899710840013172632199157611183016376093809026011246886207712270155590371926200508048498245962635039031105554743885977959791020963186285289631266078861761333485806452259774868231915815503408012858999509109681315682276305809524134651341996224264725436293011383849747182687782909330708803995428450478828111729427067073579335184453387181812410302391816442064742139253767905398874518866433504145766014609731496783127007938423819087594515467089561477927353247078478190825613430735909068713965488793789567967183090752734955465510963225915328091011484668931211905563171906120833426880936185291800857165326471782548899981573825747296238134761241135863835404205482972967764830946773305560201272545237716702328894099161094910640059074548075694070972631777938208325451240256559870160228593755393709621627834537925579436734380408756699146633885139591617233086675368925247577891384097939865002083458618914183506678190314601160977872495650026679383845749998429073854457240266567495405036905792414732797649807010466736755883410824492597736348035835113213259600303920920409544077608762610907994890116851724793274394035824951033524714082565889009497716090580597620021963138497074586199423753105476057370938309308904412371674779826356397225501742984999562739726891436840076582325064928732622736410619433713700828744217063013519229253263394583936662539634240896198920088497577767696075583687725126695604040923435440017207430414486347260781137001447477662794858661595954311361799535224413486792412113869525570017662493107075959201013401579117702707470339859202313117446999426339752003765379429215892770019425919317255598214023466612900226189498588540664587319550280648623936353510499408193328631704761609336969983022626144073101629577748669533304181201780943158582740793330909812933890452443679235655086573905040560103539340846999249348908497437344496526151690725394916114531142918218360369009337273035718184016277176738772746214787920869129367175506295930596120060300321651686914732620116908645185803271340454683806966629520340430723385023556436281220207621455854785214984749006461651662262917581570552684306994535341894835707070090687854385165533231333624681676122028656641236122228656682100526571083917962211857021579498672801275949743277670844722210531248983189557064442958156702851514434687791053230437846650281005437871296745166874202787491830001243182326417400305405821815841060955809700029691290868355805148635380477529159764284173943747521023087621404670618104080380581981314393380502990774443226705102218810147429339465420122250066137652798039528664741584824202220260125570914989724528491555377819229915865613161728654999584403528753408245891188293346351699640830445699734412453911229793143228503526441013028110948112815720923958766513566259048673046702507396451978154171535930154117915028693579200543482900236867240941884057303040587183322701044422961082380759008415000070738807110383226460309615046586991387310562983665523058050983854313836435721655194445617780353259212182542916867745849469217319613805295340592377882643508920580829654103911570702880858159336126973281389039772912769372946049573858958928288541692438133766402307426828788297263424453203046816140451160790701289033529338725358259640035928810183036730392970019330763104660389048781744556372274649250517407604732370428368297576780558737273969856611272171947727088732563394007959551502053936023895131917124353699383921520557403355662844484353801478461969218133846135864726713772534887036393764568669073626023196248449407133669262550945666968547696360337379282404455030071076909214328596076263387645756911637403392255631747042148564612979950174995751929510225316189290860924844434907756255332592104589438044238404287070724634916362182869332056513413506426842468700136747275414207068951238880732051416924258041656286782892369857658884668429724972551949951928269607865492797141054826394794443471453888255672081837545809171809058315952552323850455459854717901138570902795655925476495146997428236797286784548089770170260135209365777772452848971149528580714193006421897466808742207690138564643456729036613369613922629377667863305324934890390116438805940345674296797847436732944070722433938048029472333522003929697685817634195872087567169975869619697592150915967606014336092743587033903678690672449872638627238994858412744408819370348602672697384003091548165088254662437870904774954894086744920789131076968554633952815188616573490244128124925049789002375242162916932775603203925061981149592206877958482288146981313560668827371792880503652079565603398974359660654848792769872366655485276931636608450876537656937268625560753511890923035296344571724406498412167938617745001408680688263935480828457613543147870836617293169416939507395474061780159883847285720259454373838331007440299597771482647520615516894816869897819962019676731102386536169865360638880705949864265578194626792482624579552951736847298331171755690509379026876026261202660257000889915466407020759029153026748297516483860782522603741950452243434278832617410186919044599416491692992707314515607505238863259850587755398361072128353038834668850746365079827433841230629192995283657489632595998872139330367827854475844627774272828580342234083115983996969575589737955894091704738666395328667996911613315714363000814089871297455402748011391410974907864126294526534343251936153024155436311402463700633385748887053922550553733721574776301723551486622342966975299114353272658716704025613522538569959744100199044470350375369540470076993837645816982525185532210601570221805773438929663239876477673119405654156814564763700575759457181666286739768112191998781966966165504882144966067634380226185061892031020776275713848496622827324435848766917659691185763123192278847044747097709411827134972920366649974376146053846193940243049277752564602072977410195754989048663771040116997903758395720450628734043314089126335032616421405340011877804140328686403490694272286244716901605560556996880968457987034282401524593107669506762763878891447971256252713989415205969264162555206363589433917919252612394234882923464185239301195442039693133961685344962446093986808193661776436499121043753372404651216112612298090087493750754497845948455893718791373185399122446234759781058298619138006902886856278756927309499987121847624969226277071139745410403311477183286596277775815999843903716365039598662256010372564894022589360102602398022902125286813478610841834432753757989014068430986238887156486783520792189775191056891761926276705003788815431763432654462404758196872485926973681766716334274341318271037277183422889179104770789744155543497558134519485100873139502017193313411669705338838526166865842701493400684470866177400700589224438570609886041770383624957658742214847603943717050260564478933495035457761664772600216889998066837046046651002851298568090431577958811074960832654742648269633742225780980364863126403389949538632488214239194646308345971999254313572942110184622932592073425793314771051689964688519802830988011579797720904050166371962107438389971639562466138279835215819072940051753318113479051807922277391567809676138098548169888657515579348665347893859150615648634888826140162240262660464249325566582869723425280982645802875269153465636946195788020289704059757556933938627359004025009112802583683799103657189902472140217732285943555338871102311860701005318769923751965053117543217030377555527415248357105668627539939392462719341151407424986922658379690867091517798808233281077830595330510552711052372878556474320922153881531945596506906611763632992313222955451131916095592548331144885575005790096216437603215150337694241145033148478456920376833175012238652311441321672272005979023665821345632396554809286894604450807246645232859500395083336132461427377725878244009818901796553600507763407182458186086742277707513901213684692223201650207920892198184057162162526409449059139279823396364889384820655985312364184774957600334332380683940094998577654395490721211591432003594691053023124049324392694947953855118036580482295239130396016181477087998376508214563483772930136061422649613754354286332904758835010973059012007344815558414965768915053513446129207097627589216267942924617296884948048176358843832558517798085226445962418173380127951740139662664087340787554231272029938420477094423520758208421388999657790942262432966252022897998950735373569338874688302627444562561485050548813442053271838765241631656023118832730490024893260603796153152373441424143663049913149976001754963671499757596237134497621760643282195178754445608316502426879693282862308790325837162961609532533387090100769318700554579596577711736243890312118949921722633658482711882549349443689509177471456379739674266282579685064164756951196263502874340597956394640873392167084274863483427272708781975809073290440521622077085736110389318707024254047545892220822781605423969449358463288220642359560176590820366431446334915713804214973290144979851847515817195151696747363024599019722019865510456220357241175255986557261716824416159209224830452942969582200109343176332433627510640815092250937248003563897175357685671723876436320763893698915309512247884432547240115185663214294872167061785305775163575861995506476117711289307596728277472370648887595672775260711749419502543394443560266258729292442540436488526133491772953585618599323499814016699952822048881321773346102635985695951962253429210533884840398345543324477360591602858867842040048089994864644331034002517747703189250542932899896538940506230671832321670172346831324286132259664774200256713353571349437013903162911305476958785814744094413833666240240073754581571652388634105895421520197460171924031899984900367243528839134135696580493189143368641450813328233341124312531312331366032991013953961601571294525124242182527082084925211968445373028386859899230720988767142948533586958219351332423362725709655269232428440653547507465051938200141978706117829717631083094180808939483255843444901885008622282298638551076884089142385056105147680717300734533912426677691034448138087310620814744029692822179184363281324425169244262602247338478322017501252765319155755317199041994590690272798685900090206953913604815449975710008633420256245324173522876715958062620139939316406338364904423528189130167864266398562555794622891535569751775249263465956339564738173719116518240383459745176978690147641264623174752351468815255530758283455384464169423181723808281225147469838333586363439962152832850504584699835497926087283810147294228268941105355454590465323356221863851865413044480745582958818689916891374246140985737338833261356464128178483230505559901984971986679748742801946151623841150122119770269234625529309121557025604389844539875790422559461094139530091547538565490132321537217139496836294464736342849466923936332593131091463479160992025283395633054128144100426508781539071485200707714446980636237154641666627777018885046696366760057114040528908860431392057974066608270110892893559083175019091394040766270225172801956826955662419901942607735369902155330255005567242947377070236189630741929583420669044974168321962501446869880403393129208026544249144275087944415876083030809007424056957506944008863229305289256871060752028441098510567260199779315593747080590410059218674088648790865482719453284351754123495247455525662319688990223014742659662957438950049810887324726932254712344118704919422596133624456306520489244824956173080985354464979229972110311409429757400939699817393528392803451015607899815485615745497508439032166525671974350119550053276677223847571611348870105847710989695594622049949255856954712803734407674100199485635791329779294488495024401706297122971268700951707987747203431485238054012694702251809781675796413913365643879907291638709792950675874671287109214954788699554087430285862045965421399307743612027878644038101138908333584986824255189473321949501476318336731705075808263435085780479723219183111542192198197720227132529329122123737833486567325582208050139479050029756918051668317084752679532985412513959714669180148465587559909282445638438721964588657729424314107420369534862138074824427557007522168547883330556958241818081564384627166417763659214276141468174617912550604764230358347849217835740716527778601909396713818290346831463568745127119251475122333315831326342339296023787019284497934054487696136312327591808607243351956548178049437701106763919217235621331562951430512354000795025093736769421789026337438969320944052864178964557335666807534486272966144659487786992251412129881788006405995063788839590201115053839312189031588469827324198290049120543663134715599761924147212167170504189483006234384264694202132316910921879500232403735557050565888974255699172779995560410661434253412676386668929434131850399065354344646932787610943622835343772763007627622335606220947797886281040694649463388242559679504801346457234258684702810272952234900182108471730227473230740757090399485458698061927365151752454698741499045398898546861940811697390655006794653550281918694594296976783899557555245240749156918589502248651136426820387440945374989052697028000401705990950022714952642899754099603580110591931785704922449115454825139349175666074929116395352872191118693018282079830507266412573346899230964956646425164053624753270371881817451451047834171398745477394320733923845201396801404451881039930539930288425084051747179076530356509445747347602505998295419858239189847213877629069284310737236883637635951985216806755754125090145848800743724715194909896296593787583061592322049196598342206701270520468024398063916183911201314849754958505717009484404557448082123558681953577424005411008307138060111852177524836578288820596196029287238136452511727925466305110110371408287241097021196736016079290613114706201663109003274078434110546904851963635130243908276759246966646977255077119464916195660918228712340424357046980772559054070634713763188494869367981484602939489291958638124815276727714295738292386503595130912541105753468572530278897451242729728166551507076845928218348234792635948892652827277087660509991800032090547421541694706115439470814046807582165456453926869820075677277199831039488634179271449972938746077951265158465739488164674395335593772614045596922896207503205959408544503791371547512085849578064996074674353238756040583363796800692084275531938055137074339194360807912908638485839570573737171599919498402908584355126657126908348172991653249210340443622703077185633009198426047459592289325897119832944415698729530956470257012874158559908200071086611128913464150004793061329125461084014486083784551606114445505675892698962993086985183743323763970767001733050600900592071662310661706762670853938315297731871060349685714332931770619825654958909822827329749938055234500244893526616679080780555103147683526153200768813925569028322232618459397726745401355009320166235442364774599158842658377482500937084779122607577998091280810117270954438710951171581622546336826793887587859923110117580429395896580089671358199358664658623126781402868943308487636928471778045783788088568076164841742989228826086482790294919978533515925648943462949848685117886494164442346955344433503271847613864013556317718757944090169357545708079246116809670808542513577472744971394152645715777668978988300463281568996395855426143849332351639340462717453003607893680215921013355054262437442110795268523629524819066544492368604747944166246762494836046483151373341481669169228098333359788221463902043664674273186800241820644743678995554896677068839277871208637824942851958944260423644087119708904340310642042350242638364534959225158079609147428403045007231318416974924420176516361513669737397707265699055673574411423142166889887008727680819168860969208662610895165047251838541972255339496486935648240477544287826797362134498955656413350554482312206739715207216061141649536938869487082570648923995674117510598160832003800128878327745047354362374259386426627685668774538411835824511413481967368722337008612588789186628976073183889552264363213865089558592984260716375259711021012357126819286759553048777732028003749028141214769666118011707731257398272031341006346862134399481631379854713478887864179790998838358799386756940529169217537604161665499305454126016194750185160148368000420220474536330063958239302817806103405943410620377013090547902124382156259432971513314263812832402267496634365818117487743634335978409850025257091581140019032917829395120467059859481708606635301915771403205716594136728087703840134366482793822822503988691110108843618616998203135922391761885088508179345061314347124488712308570441854888320698103850236093440307629532980560026335427957066454625969579127980399525041135958165601552933169183210853391251180387818477474272770043442292200795241340849171544819743115887647110878080980017425870610636706886143645931694852907095413887076349510428885754016178041143357706078191039402019141501963469704756562273748664155145860847580727342148364389902518471974333190545050987013433683322395888528687708736922798143537303271060034634998481464174115488854775433652146820212593832348135013587474271981916040554896260709941153847946359106966962073645925146827702974504167925660220278365035034072229861749424458333413891418169037193292056223905482212790325161411795302160026329786961167036438741851328940229243466518642359301979958731621063756173822489168426119321821304039763227344617976835666085295652377361514262062912603292375203988719659897634398446459458159209185986786955272773841040923328005376116325241843922530603969695123886309815358058801384433350295991989478244898876181075293655299553649913732660686170968770653164489380277025538591583054601039569944828655484127742440531707333691227463708278853290532513243330884796768126351527301995816545097995355644943085108266168309890283203771859599981086050619624647196075026837246786837795239430913201162332159597744132078053911528796743213292898289043038644411710123190830434489782258036336918000866120053347320295938620423125619628822906580297936160873212152745848984719845518280881537104301938780231412314493457761641283200197408216541387651827369932170200181714529958881851099425554764552320621347758054540098403102648602501398687720708059716345612445342725525262686165679946192315965986659554702333250358389630041708494885571400657109576332490932285840863354335045332583316313459231253702174306927786915018854419818772251347422293546399686861097334514913110665707680398544025494738061895009463712606319003032861462484576771191439721966995352863890825875991960780406376620303411830794349804070051316624034457565874076784634280070022152603352655474286143527054671725931152766650033224894040624350908037510826940411619145907404188785983030368891936593069202300213386235035182536609878389274905198158288460636512361591646200705797419982746977141196641415020189120693561084775452575120028955062791079160985099341143058132323802246035507423402022496250608210243313280709008193848882313699789870672525712993026300013371662644757465750138971635535768319155009111931322276922411524810045826878793702557515516080700540528283776167059627843621058812550410797003166632505727386051591748743525813372991199834932741610045349809685589287630684291368019303861628863004519866245501458644555329087991460826648916023860843195480073304239030482497189982211741772169204877446441640913102244141030181164330529635275588508467170477409971898739257500533503402905296033913523332898979268502929991408573384206359554995719634316071387821740930395826578095425734107365277132919269815327757615019279054061890088336044420235054635880753019683704186626885283519419898579977486955378613161533502724190466266842649152919549605127629254796084981642653641551219347831856111508599969303470262410172175129415217768141125216326835964880892678048562882245991390428203949019043965761908409386680247823892947780417185982541455815119260399539118192251111235008605109417941761768033139193467922229228916257879734633792518268800309723389720978839720639942555729553542109207030363279271927614639659041076832156745653877671795358214424670612046900093068033805881907536939231445247779168536863685880603018708721438750574968005582543577210781735804674048910103052082834101879362645476060206298972961681780499833982860320904453147534445852188607955504224743479386832839036313331428277310736368408912610592495974601281437986087453412973579901539354865077937974784255580912964983086650301767849457815607191016927966476781164100121660376226698910253883073306942059015742139816019778554348172650399118894162586960514853614651097925392492529099688551685456817898392869646875128580337464989650649480608221047389406421710426325958602835522126294406912430868559713545657364159463795765354496930787147822232134899660700749583485365573921946767663177087218095264005966585752837767910393811957729261838218211122270628057087439077101049718895920519453090236009887266589471468929589195023027152936261184355195415002514019671149239482993752312288697295344986703721063451538961785654809375694081552989518847158763460237537096412046672971913517585767485258314929252540369311013412129977771475294762363561026326908219895516829408611817300415178493415485956938391075130042597863403465345578578508350219494775101624350819903464487125636180882160964042674582709996792048191480190678021801629285974755259701493306010980643630228683927498333564117213262661044011164448639492108816417105477275853356961030986989658956716359150544323621953719737923731118529961328229266394466454143645594661771648287403557717912413837124159070746992388678339438972632668078064480444734937105583768488804397009558783778508007740651245029867068210365120986050512704156386101091254287384731803629927590866838288938431807208852928611387056422452299558105657237751281811272803218021051433713694666352957124924945243492925281935037232214840549186586496252892870624662756409731888775481570550581049734186295032666852021450811979253264242410367585496144019353936972891640057585132538964096470595975389237345419929489772923446582136592360231427624368514458392476018637035443949554758890253521647853348157489539175104585128972044776511158751725852075178950525754114049336870569510804082161199055318592027244048641952988881677027886089682879232650765991037798047125423062515149875930544951519672460157693210446896860319173656942422264919987682425441453557289217885589495470030363178974489695609500740490775682255128772321481479683867096530477299810202487347855242837154432100055684155556362449075709442877925540991801916008768273324857925387186488247896091388141004923125039310272606548860153912534797239686834936335845299161516867051306568213720381078107449015765438146718733321185172880322829514257209654007967707307328119204786458737351232412407651556150715800719771276523029967655202784481864125645160601503585644102459965550985787784451985736348038306243843590235687545320407762982878617578983580546971984833831854436489678346737146947200535333277995244220799342377180250034964210571357561334427967645446327112145862164398351825724821806165174007528931806279238851178322733488094242218562277789251158219650575106675716851354652781536540548016781938895160634264672319840301892974247052502456399124111639369716161460303801405315453915117472244449189992548384583647128908721186931330522275373425134960752051081309773061860296550133873391658538102268125332484386919894630975863607516321217289568331710046009145947291072036564983313250363094912856614340814775208961095637900182766245489460918211876893568813996512396872845768632322992806360727985427669128691153121095769783757698854165875895031178751197644472376509578647155263797696644010732234851564203680649246215568911607014243259802785793065429611236157209007863595888237019598304856306921502846639804792622439110848873624478720763999742754870243793096296606411622300500718941919890342437969536943689753300753419727120046937180342781938980549613762744153617959418984631425032752263557907478631176119764841248852009873160625744908116408141910386380157239537276351427843094718250115979164827143955756726068109375415323585064915040907012614025717625202525983229400416619843788259855482127408130402854316570760627227903955658521222451957279813575825334801675826244742189605383803483793520538899563905306197323802176870424503251792660493832242908199517130256100272124878861950005136956641703252321539656510625119134577811849762449657492680583606018076315997455193715598785953764191284342920270347469242398685738833442220824005164480517461407246801909609518799497693813686226982620771066883105469591460512319800690773400058923532077353754982375756208076792575483622144607178431665944767510124922045084780202644980971246715338857575259701148390572109201551275206493291186927943950843010743639988584765694752064272277920280561543990599476801247442902661781453287830754308010716461020487407240862503638043761350544848958449805194538002564752106886400244043322602078017557024330094137763399813776976542877276514737071043184036225398911273516393386010860880413394869456562068359529255973838436934718221448030393306469517070440607351385695593144794846236914944909849645445635173476483751932133294541637055047196943520399180021735326049646690406849837626452725274426304934256038451181455648122241736393601574045378511466901390101698247571367600047610951608816510942582868160890024630404741414271526946873650708973662296494853515960981230937763566995475954167390214534599325867375399929966650768829624045314389060367237197883173434202318545112507187365485766230553805920664864312014426323608447036639109998063981252624491391317271159643954495329913387213545333167679778754341064620747069195505158824513039631676620042651919393136488000118250896362903108189674323246215449942482395447477569490638850673567099332636259998158563177958366219980787478220434293750921844579370461194230425165124577043937296550449807986427213176814828693273431773400277180954994921690374157224864368227387729238515960915170293295176980580710836569845292602671675668149409413270088019924826141779492230284269175549511327196427416426118197394279122438129090719497913197570126262785415805677243830114706697383110573692709513976588389140974084997908469416731305401562477343264053981425632611477977802689373243332121739773782624632495543415947692758695234419583179884303865679337789943311757262402183213122743345617060407243529068953546979420016359529253534824406970533770529166179512335432310502837610992359950213757749480997575600056982492779032091947262397426214788308489250174798884565052131113030585834602878608916223403575885571704678688964348378048738805117441950376979076080780661814671482287627529306514704253246587668046660243457704314139091900892217648271667235440280928384540863565431249173258363379746267074970586437594555656187062829404752873134643518277766781100762377622275109992189991676331094084010589573290771350446342682476360568596311152467200751081166283184985880678835394547742599287961687173487402160423331705696936692985112641645855672190701674517636891135552657630986657003113481087425467265995923950573847188535387359782708090600281805619852757777871687232212919123807882988783317407494785400241726620922011155053163311339986389644290512391695226358610362700673374479653483572353202119342277730143842074716150880381384321913154220402926401505198319419764328350962858371150572982908465075408876640890276372630940078074581757430671378766626377429868275857505295835874778331071742020569701683039278940287039299790737070337961500473136710541586519204268074657406523190822692249609487373367415084865627001145271233203722339436338722182977990505755656656805196521298347119068229382606971077376277259957149998102031851597475175942626524298100334753625156333681168863515600879973544389516289844085919412746220672401759532113384707078676780518394533550673331358686289595782226717696018718418163535217744867371079630753426855600122015211753771361560332893263833170595794960925077270891513012000398323753388068153930837795795911989502367084037936838550701880053208508481870271995225439160751935532926767010456770198291116343586636998558615366385774768688336003698496037819675429817708249530882641876462746857616290701727159732916194669387291515204836977985933288112593189985579927213514714813444325949615341375355728353052473771179139993957256516565693249470426974444975381556559842312795124006307163996389159738458981843714458335743130246141845964226638535553522852401114274534121980356252589635057533309079852210845245550728329594878716310954106338149974832357306660588625605780373103439461506062437259605267599538254249495296624727215905371067858440454897943629454690115855772196677863702467473576978828516149106958500424962582044831206654608364273123836393355133872625238639556340732178445367941550335029161223032518888271385691651812337860862359001432220248785900354229196342101560805471592160637531733217200637079642770335912335705202330843099835432177893233697458540761267463610094583910405957073380569037618957874753029587508836319643594568622332514265539277358670712231121845604472885818320377360673935540088310577683674811912936423478565047511048346509988813289575845030033795263797441464720710563259758041699977185231824211896403040098467127961780706989748040501598374658207374267772803294895248744478156377393169366497988961295145818653328508442616052381687021918444321532123909134209419102086197231616885125286537875790391830091557449807693551268267176680128389642758363790361594303453444858906939095431447557188542405019312523164606990109401548045464682365083289762372388478250804786247599482911391410556303398400045737483987407869516940381959849571136029265557606031290044882918089968482415795601277919877684060515937808911974381490039503907321298689219367439878587317981827394534678915693166078853399901896807262164950005967760427131971324893362915584361756500887123875806849883817782540433293009292027088240171595337662605654728868150842306104016895088712871904724667014715931013687189343799952675161680855606016085606562646587639824759718716752345016734042177299651020315217686378208510490332885453834902581493836148568781902021938282420005336828324114893225550498724226999894207164198242521902067639953040102655130923259124114028644494897588807422710477959240018508938644867980910204657428090298475389733111109546552888677724162350099471850006850603524401734665181577901076913375078834021525212256645140679426716281969119202520126445603311002207404790108792610500417648771439509492676529595102827021010217171851126911852643148426537331666821311645543617840754763739866718650960004373255646310439721099911043071106881899220035389530045980492997782180216764958240112782923239350928628077369298280334517578164252208037301489334289471293204894517522088192803751544391186188651687079904450376034082585242412874223898327626908783031681883525192331728257837300010326238926167903605869854695721544180742389521903135275875040447507398916524260850705049212019488002539973049444235006963980041314521029683780744387613020310263798410355582386400421627492939059011221532686644119748831784114335225681962935183352772007059210781750133910101379280209597989561516830784293433221724537816345687633475470782072249295144181046641784870817121136188741824254549142391156673485126578869437142153750095042996739161749961279338310618755245784371418695228548258842665916447378363806201043425485189306486402838714677278877146443150530743014583408853834510804308727477098667618048012195135571821858086614624319741062968515895974793961299666017872245507910360883252193461393976764030598680464957084374616533735957315211184660370309342032292946799965916018128577099941394262808473268878924815518938530348671486461444068188949426978525211839157305719070072579288944888631021580995919394321518050955981882964960743947339341893155863857435113654313434220966906892874874357300205255794124686062719673263359071720273984733376239049806837758815399983999729966117320292958785100844132634958404575949761393789016907746065218260203117695092965207064620183625336079536964855101634298959704082424572572045690769846443031650190135228344501251426864336576346341838983272783276276146372630283369982408897845097034355321677727065568049078463528147907907126814374539056467966671542790685123911076852124178588887496843836580882346539068725484490820614078247093040748026567036160286529645806202972011276269181365569513266298709119844052146500832755295122608832640541773404245838636105122646298595936833553479211735859894424796384822141878576323569903091933157643769264034109977865548520208856842117756479869738733982751223650497945774132916825087777254386103616598404779575863621114168719778910006188583429481945035794944970533586394724613310832170166077461948879183316109589257466594821736001942744726415712798061686013266118124762206948903281035347461815577162702227906890976335502663323023343408509717578144294510242038075604824755927956829392673925304414021471722372483557145971585415060612792123812314169074708393993068980745153537762421594521019247995696820666789345480878869581278087061778668153985449673615746760842253159852165226515042772001877985876425811921833327325313339036304318609811458546886061549527227343208695106392915122011786618941807226257307819312763956938214719463396974965374122229957024901331730853570586202039219461792340385988056173825333745403523689149092434535409349106687688775905137204459273340636988250258765509892869529033711834359019314554380453697019638718278534858953086934316096211013592785345624638742970984884507065687458160704133361389521316356077914691371064286089423976732619124031450370315097778687882170887944866120116468646640241145067865771943281012615878171436368411213986135694844364487565268226329754330169767417603992079621109789352953969691624151290205015318610350313043096039728000994637073371768075171070177083805138927294162634611751859263317282794327113177190952368898037655576149603769122578289677592264360229650187723472203200290315944466726658762164195036525771309924404758506535913848522728242808254378224184196553192508846022989279359780228301701640407111742527519972246889628265431864885776178736458911598941065629756479925109383500970290677898940166527875784984394668325787745130585403494761295498573124401719761220891432587828628526167809950639720385267389294468611222772950943158777772932061424623992099367189852674783271521595534814405505878302507631361412670604617660970431665856081945168929311223637581102323631999425685586541261566174390968638011512177735597780087384880316917514459135714994137754296084792103040649623178796323893331107378778563358312428158220317177805354466902569962388400925327349262744364748523714364672901963673961887627709437830034686736063649400866506665528394522753703196199023713946116514910883605072155449631987041717173688633222995323935047757001218817164563698681485166412161004237693885054251216705546214778951111344364021763173947915989396154368353966465765054109289351151655569608473197929197528097419630774190899479049926664847678835916944019279998274422651266645833817972335476256878080605108886843904653585661574717384398420847428745628732819839889830792058713273512698277177812190502392262780028773674619728763749524098122064662201237156850251561168322408933611852874924698728525462450954040395198438687946372163584210606881836748825258465297467079906819070410078068529616260731906318592958306501881512514520170710779253520406173033152780436652146538696767410014846577557602191520665371044154261833022569007099030620187676979784685512701564339094755688348599980315068637611889049029933612695019462212172327774156538965364172690621796494213789059205245517435565931652300333415509863427428571229915298751919552008407983782325246711838752560248742194176884017699268631466252581121339985996547059911693881335521820857722506124052582452498355667412735734138141928584638618249939560562847743438385659380608047799313592786628754033623615295475097742485535834828596533195163743471328644557759430857501927527771607024654417191071441426663872127318003217107941053182512807951068691266075138460800626425802730548722704468692209849128897464761385124244345166417523034743215340804086099898143265050455439187907384955313105739823880561532987784803170741744577205661455724965291707382428388307285234530574734107231963705777097384530797823330624839658206751828598049487184823006391955052315443869465797006510440158606202832467330338700361332462427489844482407987752655214480497769713999475951339180097498467045286386426923086492806818039841464016077536354009677369572156558668263276718849402619946197109229780005272106236338310361595973121932705558989534696870232562883447168450364215372593083277234811875334391686373245260544881937013567974677577613388179049479008925052458667689785030867472091078730014133365683159986559701224196379518557594480987089345561886573430789489596528958961857970170343702187581527046387601552476857403657795138302671107750803202859988400007125890437623975944594602362091923827099891754004599361232790997364188626883644950202904158099095780598298717024072298972439864760541903855105487511239477379043109433866602760342973145797067037123770028791528277584107977379189901173893606122646290484875152260517486286929869402314927096626018592771608561742750729739761833989709650362106081361289782932956739086219603929999779927137441838984716833073237768039351348085343483261963760796219521418758367078305909079488026480657628265993052292918577777857357795968815497785308121274683090638312054297770255883954315457732910850718073871151823111848511870043648555359387300974196906459855832388353079568680672096836957359292546768109359462590635894958008484237434032488609684077258685093395000377397507333892096912353379233260739198611065321988361149622243795006120018451295230652687002340056585519747511798396946202157188329029147920083634850410866962590356942664308094532620856863694188444040446988366367054678581452210767482889521519980578568235834066780041024867035335577088453369028615274987313408355487318932781716035812588651061840842358072178221373376840061584904703796726397947205467725435180023259282914679661812075685319666557696286317361973646014325598756387869615107155712006066975774929881701272426923837823321209367988207489947435336799681515436192836076934880445161672049751556574347519789330116394964685414692506555143940968261954574433285080145732009702892431454950633130486725746674641946072639540815244178611810884640768151047715959862853666595283098135157914801166939787972624251574950581812680365334352194543803006059769460282215196232582466513467325744628986338088496157400806160380890965811631468364795660778460300130169284591589618424481018880317746784559872981380084195780866321228078205272050816374567040242249502991320645340051341194680078171206030042451416085895618773302110219853618051614656006008518510991161485313120353903454574755055938685839289220103737931869774000270716291472467793477029147320293026376883794014496355953474550419433316310300680889303998938811725992369752410549020097814002624932842604410167743247720152565764865635996812379900939420727246840342625235270421831915116716157128612186620485962278495367355893246733403790253435651433492504682995423509705676393207493534735936554812101504661871825003167386996998977255297177275407125627491854045096907425517499553486621718292439256122396432761633574641852645692381783879336239280012806951158764041719142278420458915463331350883894992665609234164665798592703684849038034169907398765673362124012062996432509877165305720599569213848946375699277326355285524721295418922024796495750949807457142482519112314919229737308336933046621344164121219557498742148575437835051335930786241073042513481637617993819118296216004747735237556785946442104477762596381195453949698003853893739206002015308606560127134864567644178208797860081506726421169531346294009386373218055515701736229493131229158284015399241015251804394240306000207446524746037463590595190788945813323054937844957724301538517482150746697574292969749214039114117530110063540023207717489528096181154612159647745471101465707606007447603116241577431740743262595461510538829746962048598697122593312762712730674772372789925196339363921172039527208153632682704016794285403964060906001108679743286687093457241766223613840436869067042270971607174318297597654052245956398009182403206822911836276742977687598068241609302470833493613430266600279842606999075821233784586368520357605477599394146083017673520634915391147553327647591068653032014791216995656965121819954144001694751254117377818432033045331258699572366071730133151112113836762676976326459366617730183990948301410678433504143802112258546157574805657058586548184682261716140428894270530120920902712423563844812132056805995340444909648167148493540098131129815392729973985246885350367129547805243927644172668720112199253189010823936695538875880801960300736618116554032944665561599120850457173224645144781108092371830708332563197526787219674933724643924899165563948378858420302100067894338489784349012260243402227364048793221027250551006490575758340366680659285734169613143638765118947980465528950586486566952173380066992155578932975189980914200698799299192821385128128453541410452823012630718333000781478393079667363725074419485627822968257679941802036626210640873507778407112355606034180549435833091313663491801022892934827742458181045002448689445439800165097772406347325843931150297498318869298432535236539767939632189209706067669080704962927905989473640119460729782282791696389938373606719746926940740077424559800432537920175002680098375682758068444608387649105382589936037399711788604649674926007153659143724320943489974111648791833442018817278772551696836270031978543586452233796101607339391276247332026485767521708156638535483809633436520234314074684226741958114416431272308968601961254440886030773167548110726487494634541295498175327122462938596011358636751125988340371396271583261337404891677820711949442617956057516795723398346559971238758132461618564456948510041403195895075658194381323989699403865664004693433692235009893391087403256437564323017581385736618549431164846790514444828761262426930624657683434709186036007307704564862098874290206229870914108003396183498702697302191666908423937710584379488993731970706315402277511811928065935554956189877603311243752435807818082406184197017677445711398196021028712389385684473484428763647207920732228914052272794907600485524273981507117939704690305292562356555930760313416977675089923292394125579454344821012477225421603939091144386916347620743907536628638417554258117006637124325451210332408527872358485088135406288942342908722145455470741171727745530090967309721828893489829853600211750489143624190943439037307032750992678544594467452815740352350727402403677851342366966215854708680753093520850940365630074492570107041702453797593912756515296218927255586536018202685983847121027626420282982690370407339468640108047570730908702258002014252270773582965707000890587043274205255704661036585228026035790829771643910994471648193569789654267007746281212965189918143799664483516227172229462191223068015682505072786640310691662707677718878181395106908622537787727565884779012659558379639717681015228892696601480630726755489901814045337727431069166959562018658679167867917404611645350665637985029474695301261148353940061965198340517385432180819511573617487766886078909764704033291626111364457424680304396746688232928098967670749388873595677598129112904024497240734080757363428008322894859745066842283487272086818297632067352897369310517316455790069813822283786338936445303019258915005804114614914303259971477512032401238330155203218444240355128132864069600086833596823368547319486999759415080591689595379442780895063915602627007699716504935640042536807489814372415671019327305067393384429574087863949523621356013937951837695308878553037941120455030987073480993722190543057775865319286370650590288963105155575141694032038831798570937423930123021162910272645082134681648422132700474033026423297620764209206017110336951661823210974441337817640893333934908079364960964060095645849257439519503190147949809247102644667223291617869658177124173206455537792200087537773689312615048971652837088035692083594779992488816204152702660729149646889684451598912397596395241279215949353338867847029243255624969660833598764285039532845828654025566403204873237997941984676561038721829909612456712648952729844520067068089859105176495838910169408105392716224196927331261436729372391046088089525871291737422615004040015197888253171702520440259120922362907090792086383630439176855819674830637224802340145898570341491468772735512412027782743799660115449884613367739167863556159421838972102150718479829534755942288668244193918562167181542255033379195415073438019010931825823106504186516739279328649153690197880035748518875502458255995645566622269717090451157553631515876963678349519327081574785764413909219935229939378041014165154333432765667655382948390334140998197708683556930227314101441957422579310188719031787097371301344604740885090936325310468864028829099450175924128889294021473319496191579411651280224317963958550391101645570982753438813690165181331855918694354297942691384215288531846954939864286615969487216880311170583329452952027367109456700550563607610688977806762881125549761170714907711077028614434942956306914775596992651107795109746426884121877426229423327949747416653445146256914797724000090032059850875940537928902567368485927713562771721980600136320484602532935237147494678078962048027476471368414186779377650285642178133368909467607595328811031774379395989188224480943946459018562531011044214117826508446458669134866888793167440614940663872354260214644310335222909347467889006212642609304065912679641686356968129423690192984489179678961820049452208008304626942487936368615848737073750231531684744875062632197905620574148061619176864453419248596140388898646766932598097508385934783988654016899194335820416661408055181116176528116120984060388509496456068121183070684293814833819160021973951171339063021316529881419029808106115148599429270726068224538464399840159003202081138508246088413250171307147850599894458450067051939261194756349200112050111207024560878393964344527949167559501788686824752126996941486683195169180738820183093565539344420553563226341295830129805630879534685867839000330817917310287135032174420725627164530525819323284691864469818862790850819479331074298686828975828601556421388742498309294524760035180780518860806674568958234838016371688569528852785063270336521668707916749901891118033128287554469647642690457864875481397392296578746741804550656193652364202991531017065629798752842255129546393090314421226936522651615622540177590637769309485236411689829684400365627295806009978360957166008495840428838735308372810960687419753745773893351963410740864787595223588848679678062694454134007685156447587889665504598505386589944231593303654087834636232854034342328549008498138279823041316300775866405631526906386198977671946884470268269966654623350977821666199093487761819449904055327476239310246239672160511078100995168232576756595895017966223053969061617326587628557387636412051755312108430841371192708250156815440114964178046930004906575360651988921466957763699356655729589116347034752661659904294026027241988048482660441296873570177652385844445763319040414094505458910400774860905705206153264127109219325153698938143554814691647570802397388043664275350138129701109610108648083289949359589293500040024019062727249719778054662202555056428855050009053650606910372039943757743715001511209644159981874324724604160166545485602290383608085278548741190622638303148040459646517970444570095921806075313554310338180505808925538614861606511294505942239894171945816552407237149831146881981888018839020778573982256298439888032443165800308888710921925920005673731754759249807043102770803205816542515866291737114318660679341927447854594495228159699690012302060302971165696840742875146202193239799332269528641825727719175917824139396226942244517258274532118323951488676277557883857181915610803998396374342037772504646919681007477514126191449494659563841303320389133664388296311584654587727806012342859427625777724480751268365276737745035921027879614602610078222775235444730091311462563517872419119269411037932969983939669630007081499191295694160366454387448067843726858425143569967759099739337423778588422340241040271990809438051917686071978397557536496571233957600043489126083427833181341983760302705667758050257700289534661946767008622414224624683256169785384888723411551921078481615404937557386248373530750627681059873578549027708259597749774915108141202252416915010222339680616752838458893217613459273222883371933484950128186047854013327823909352870869226048686438700927554164304249807659126504092443365235382630419801038628829772920669117281364422457357257606849475960639070430613336703355203747528057266864478511304304078622462413969479342073702060509954650933905751830179142282996059465094179118665413037340096930783662860661773686351183460918496364796704228417581219849439419913880851843200215065225813644538216406257082129137275136931959916026414759139086408365800530298479765277766633553293367740266419347331374523883720048858352225674725524423533453559430243326111946689381057044553470858962746636217511946742500701486270039986788984452110315923661260643985993440582471362667998389742321096113329513224601807391790379275736517323252818398637487851519472055226685327883434413542563147904429218352437887866815604720386374904421565193839937173111591946076346178564533569336343342773935689795255324498118972750043327615560419204122604465430204771371920709789293303082927590335395994627401597393044933162908763862183945130302859617537747932144243919534081426767001938393153824911802719254016056258869660049801124570126033647759570484547619255386535988574928322130978238492541107058065267629288320069872924795053195488296564521414745948162239372879148498730945172940089961391981005033657785498276490200962678905987192733003279326719960550899256427696574801819894833133678687577948680634546034834297565051249592226298905066066872771897669256792728875064226358482150993753081708195154469985289776352178908111964797335673495817636598659738856275505496662099512057909928569856304338063327361604776170823919545029683658761858164954216475320602148851514331307812011626052781007098667445969143697870670873553226107326296535301160822098326612237022730495360648477196482150491019179002446949684044989402378005072518324900729154980695952952037214320545289581664443736695595769574112437250833510658600382993341233365373227338373255027990208016010084760632680983312045030826924579493866025831742039420147937270124042020087490135545348175339096427798367799903759431466009802609761399591183877966453887658613672603781430927512484446268086671559972020446114866986336688818320684740421747853787009093128951811098910844502461388408992802265978272921304752277159296474880142483519709401625014501988739135675392001736176109580326723672499452533162540555746691900104491762468106749717665621654460866548561697843233074673233772172604554125402129642107646386750582477957028594187619348525151304678760510976040837136915692137256687124788390197878639015852633876542587389041300116656159772243503648326686866138944185940170755346602392350640104401350261999788780136356288746922145881907213711625941687729832836459462676541463363450144525817003519156480885750111218092012145890340845930328132474984730641342949238553776393939263131605451780343209188783317885176753460738934270261046160299691874450463066885682933344052817037134149919575207519473993328093290770779238293601842158985637798198935243408221605755549405076129480575223807552067342578148778069857216688420971344782385438689867548375590537122479181789723379947620541842834894769119172113802824534134367794942525792223243017541156017770799758457576798908935344627349891700873870905884817350099365659443310249751818491360151639071005925903121219405286426272984538531153206881365882029372881383218361151424556137199149000868605894845445597736219033568930684407622905331905937770562092178799410440714624833804382074848382159319555525863645536228875981115903316620219002718192291032566458114494848870142470231443857039455709558767447647209112430084201943594804137443626122283797454839306769581948005844887556953108826597814159182267540024990586266449800122682535447522152238886742226133160937662898592791366120006551218003659262682603183714311724142581687948404140451404072110566023462411144421554087570593898604790716828974379337350737059078177614576606837365234046752835075061875545294190957246131862067273988140063204724596020794460457861904405241865657052817617445907950304982761265371848424725004064416873861345175727178578511443879733987759376601294798680298555808712440745043506174600257685206480669562637665306628876412889675757308414229782710596476968173900908163747885604791112654745538698691342571476667680060046422919804647526374043664946450746365411190957831670308229335760969405221019813115836941314025104632802984925157372142341999183243916341296272662147779790137257022469567431364825369522277810049098171055939155485395697650325870729734217973807950325222327533779055402210044816554058246014514979720520368294234577809269146719614341003861541481952085467728984170767305523685008851897095534372725692023251917792746832348608732771089341207501225509379395610886972598759602176695884772211517782437964966270080500357462105130947072907086408434438466037842260969420520257954038036015663112296078314613439032330695829995675724935054613407379798603358836107091369751942114975250884773269756871769898651061458555602686817019003577460386579162328278760827014284574142014451693732002221340710447610933592313809474750841567245379136706673708431384155148830364813922011171848583199936303400455546417890413363435911929687119868086059044481870762126193837455370183170421218726647683273172265073339201934173400623768231882482970396959056929885872015284336739854002888054698857059125629073873869379893995877286321751240875112317711352855541158686904476547862949147993455161434253498290580236806107667855243106876428202753812121909834157121495003447295408338263053468034362603535179785574867517233550854432152274073865229374485936626784026369559472114964481013090643802656888027367733322501603643266902972185423705396937771539653563699680853682880998688787002255143587454132486728538825948236309990288867586684626788058822399410130267455477096943128058865579542682092374372585930070018669400851551933582167008065388686104659549050727672031883419312598223212743411145588507807077772387725382381467778994706742000996164981188384233811436853569473513050849710811891301640564861390833889332825562734691382688337633846162862686247861137530402795596988225604284091231194255967536728114819954137935476682831144436186537183347459803501918881439932183410624035477532993613030570393112359457634313693692267793113871765795883623003545558732103536307746025733525761506434629655881667889478527913658125818648821305529831581464708146757717714042781619052044457291535926872929238675381268209302197907356661404682616812195524142070293008978418190277351167850593275217990365780554952519443966800686291348866259053388610224774741430224518544849443783477936353137189930887518373231203171688789125983637229699268967893942726641504941955303939856984227028044939343914798297062216912676853199070208802588558512817579370555761014564376577631510411085963631483663455183249560422234313538230652178053653244488944931213045955827076168574076032187367269084263398428569993663032892798343642545329691204461250670172727320225440793091173410698322321701287557758056585627592904107004501463771939470358113083240720366963636135780363355162934074377935152348551901179520724200159956048262513603900081833711560320571734002240405900923115820900412815326190776970610732028629354849755925878180397521910635474460197321403727396097318513757859577306077431909554378750199148613452777534724770762925500046847423192171783602986832634754859601106508112418981734897427612550482793657583993308201314967188388020373912992683964748659926492108881569669808855126101299943724818563515277717148071444929496566228614994608626405578402876779352465082605168733566399800824089848850637969121304729369434578595691162883601667542880169063754926037295982233972792173699685933324166272756848655526084594287459953723475756372372987000762754989358181391740755914953334875926748974248070095628740196972603652711944766858117075909826881714691894668392500022509873971923514808759646719986530215378711291913786962998564722687253988286672334478725641242666689268859781966981055481179791110483281708852928177466401467090740898271807793462801207187031178344272270221932436476344128123632740045865855907511814648003584919044836267738536611899875922042401203070113974276353534789170062094137381648103085933799328121886073151400047017643964559665255880580720522143869834472399038716801739020139457701212411669717253040861026057764514927018014064006699419414037900153470080643112002577916251717083785530221476565489380251604105960075676330796855906688907418335540666607027653774325026505075296404427649549378894779622058098950675419064007968680319908901307195844470943438332998558261593216308210370062404420993792424773850777868241258160804774532435592490922642249020640698331541098817969385289132614190176566364114324493766627473097979923012039684242515613900942744639767326271095245920412846864558626637276726821425600795833957882697877498194020126005925110334788323985569001459250431378776652251215360696099754015818215261912623431768842680729667314218071935997993324537629330803327551524387675913216691456550263821907900317681715915771949680558269829579558608093114340916344171233243313892146898755542687545251771803865189026395534893481752776268955862085739128866510386883505512004980344275797646427897656521223746281385555572190797000352472091189440276157550220112584611811773988232944966502426429135718327190009303310680155476933948005761425550056399642008296615187346057095200466989498609804461902394028987170410601292977975325563743400991973644231541219283676420168729531103415084200542289678520479926194116258696202055329676579616981334218321210331005104817273447060384781933557304998146539717452224599872782353418095626230353823467235293200128473499882434273299070708001118201991404882762167314323566295927943933562101289347559389134876567920320885097358625947708812197666518668488265711878825323911366427010642935580171243338142895829533764198341918925075464262050301410297452533317945495491407202700456231153290072357268626227721925891649278695418211519195975334404095833277769810559252466518418186922433342047046901160547780935245602226245117890036327419664952159533509703611636311030222307468576743743397963669796355044567480579944940569640568249420534387371094292807868378153450522198111464180811687007642284329814234145929233280744432717009632034268829198748598218787515631586238458851736982630726112062460099156692310346723020771938631623952386927004321223316548414155584817341575740788001672080471071612110439041072872746544381879727666173141163251632762302442774844436072953769338337470862892363262671851178303910054890985426117398720921408770753711316603501286297594579282502254030456468366652259682387918892817521344833441699299503981069896147738485540819685373846290823113601101127082210373035455958372323702729324197599548660320503440835224272985817699380200811006710358581003403084014784171969971780093397709665664974890008862107035083182838364682905780864249994556319452349044771681621957277360985916219183728773669305352864908550209140822997925779119068434393516700364527132964973595164677287046498975889366200933420833880872937730197194849118773834359602015758380465644373038482640392063520760020683781109571439271985426757011733338168024503222073606652718266254823013777721522592192265450307548294138510552794390011792804356049156756134678520527231639531647440245965952965975464744600734227895863488692351132870181488967064613134568583534017595510561260034223395357339045831298018506969735017251903605616643727367571857089263560439961556545123694195357310431618584682659546546760738018953251757660572161250825844192807430796633783408177242226437814211705738150731808135467167999989496376220308521886224873381978522626775084479770605050899680019691407199309116280022029105947991528111703399461183577945739395498940624403338088825855500912902421994567504791799532160794419874068263436816205759204315324951588555257409444765802682907943533026314811394648412006893036168152972656868974061671353943746841427136749150635480558829515852573642809825562415572851105316961098668878380472458205371490469426836922388694793692259759151395260327231658672753893065265607966010341803292268768656726009315405650224077804343463024567672451149358925644834216923538681803208901215041231817009304119286678365650821431584904498663340363310090082499617319352900852760043989726345113144922306332441511885866478803377028668660034729914687824267942604205048702493090596478124149878684058271498474412796891120873354219310370742263601647917554479715820909832268051610456091061807801362192642692131772525617783381270908327016473367736118990118138963427642584247292107392149879742590504120191369934094549658382356783118373951049949499126701489769933004288635661591398633703885305452453826157915794203278380511414152756003584259821677742598740510829876004865652127125726743858255349050932304770091962691843716313847777542908373213671084848098810704151906959631181255441572477991940484475924772758990232080408832474725597131357374969369760587693266083765296659385944908382092923437170495589721926434573160874968726086353866214380100339648282283742581164704525141798110436871951304319837809295060913272394241748960866092468601471092279017951584170619783594908458412446533913491395879210097576156346143895563210709941510744605382047877644554065968987737187202142476043130454761063694751147549829222496867960398008560365279229369850279826725767347526520524710976400104231755929825251672602286067606406431220317747704581552922317116851489898678523990464690392126745761702050018016305400970513290693384466138016105485899252380931796422270417577942460916486179029373746512518785916646146478619119149922851868955141571427769050469017039709860621299587152654353091678478205226766281220207345994839940240529462512290048805506639766675951024260109296673222869419282919476818599207466467097625819331981096940044894285596698684064998607293120116245462520112351882225383015480739582989570176581749351499750700126623365157364171977661909180707397838262898864492563854398887329787222684358951230326760550539665008458227701047705047082227273129477738634444010440345719735454450163704724230694425211502199781629404447776918373802591495897569787986758431856383909611264250686531917432736062253772829365679244274006792867452402839370923243514321267367857198514265739245581995941663117791265067733405679170907113968914995447218581191739671698211393270088342516187710292851668499262822940788847131970861685866913906362074781273132950634714151277199943359921881907509751531672410041881344489967243431006906126007656002966496319025657124617950243719305440870687349284770345010631419835749158818277633032673567292192976416572577257217605444379634354480937966613471887019881715310479992500385985153823225452871457331916806632419896868272223313566289134278768104724140538840338957826906062897829083217421085296703350101848977212225531333570170415966660351794266773298996747883738938051646321024148892457383588659943473263937218829689713171486803432599358509891264261256039237314838776360270980598102934691343714863408494092229255602640790630383221733625531561080240830400847520852003451205952792739344842852878654450203347826067047822489274887623142900816756659154443193169077177133509946783921654398634510410675534551094052410591200662337653670565294936193704630497751577098687188034727619536106200898236093203274955142199008521489485929288434457634385142231101158204264874502294039479255662017337390260847232875516905206638712826720810143471947230798702749849115736361260962008830845005760714861694985857772175444701985663572297221111229195863625023626652206548368307438675008846968703352971703323295521010191550842452525856209565645853690425503449721761310232160054306147358905382702588578094445013220577798666498938029246503686661840439858093250615321055526388673045419483690115615055437681638065179031907017160570641391493274973681591018560812426577114375233535307720774776208068338701941512164184235095301689469925490861617352927773634617523517846369499063933616993759894404267915752015475750363925390600330399225454820225062520763542048999624447918981691485451872865990693721263810583671549581714562245996515400164991694029598490681166102076897779641144070004536568510473053545669336746096508509971415689180359819527820211621517756490643216403575354825493387539763599365078523246695683768530074482059452795102015397343089654718044987891267812332347170572129012418060791330787016702140774994309208573935762190761136288969120281431793876672370153644642724043895171595089042166210596875773073447074001578557522505471306273808901298740586539796916449661963259846075578696661360388663393088425347465198145999309582632244395644610289704517140910353109151782309014686409606234446760757645433377752910083636322310260405193577555992743350813299504735880529318828741244683518714905032163786919123847102303206147222173745351185441383369961375979813604835731701142936598196972883222723969963141578153825519426026913110338545368260151455445558697367158039685410676936200679524370167984352582626483118709638660849009832325457242089815871958605809479183144282654349389823110529706151537444168852339582948424736016678145147548474607911313053052368103934462120541541791939176721447318326616979740554919926469081153051776247812455117312833808998738068448627904243724540800554711441572103074751120211200560773483453596125120093907287558262664553207247030601773164507911519766367008057227262169179626172848955878487462207247900724306627479836903563572758408902688780724492167963116338373477161458541530448497180456091825981899906934135440325133308837000111372159082921548866420484804310916753535120406937301078433027982268152668163052607984747109999264247409595015288377781713930340404889793136231844606082935501550891172922484973276055587594097778450277090283707529427000379284887047300154873185690425589566569141178875346799294084438503513148554465866651229849296857796559751172755726068100552414212936881762093430615934559118617883169380160028450262270228173068752527567872779842167041575485318785896081452510246478694161141575071752857387046748553396119760068251076100827029061040729255263788933728398770340005390943872093870220580488543583473350273023959533910827870164976045425041399291224143586034879000963503838313507942122862611194840601721442341618761313379288530065341042753190452197786907800450039767525143736733678897692629260055932696167700852148685014664770344283541294935854908819265248201129340061110258612179133098903299870300854049813482448827869850060469882598670628894553743278081120552483779006158754135502431647280880910623308581508361203456757136499175105118130692407859169305135924681456815972095990204124437285285493980855295554459634818398442222946307668086043204124788680073901350737160915471523316594744011533566096463738558129386694926583498685223071954808298697104754440363242688692387960209115354754929855518704080356364572959962547005458651248459525210377573999388604172583364357417227568084029144121079529941809934456125914599691725629251775923307495510969408753286769876619322960833014715119149150126725351094904538294075809820801599711425314645553452631767656072624196102707415644961502824173040326753509680829183091564219961463915520068686534024602306132728710981508670553424270908042128445294648384914979970449847775703802863820634479100873061753375961281951306349456134148972182523674038475810336597941763983444692397477046621062191265540273742954271795261473387235052123973543731662444397442225950307222512246088778114016053091046663977397116770146097382042812910199297156149617707921604755798346129516683464709105296710191458885523398136942961410558184973274689905115008181361961036543801857973588064713686489506668531085614721664532512726255793958622809925784737310080218438107931450477384550410869544625989349172288843794608153894291428661826640018661238155396648709622717640136897776521006327168529488040653016295550206135453287858750318395998617002120931904051168741021714541996630105873373926168234169787539897208514385284715323437765061052614727561448401059368678439845160761809699137873514430011077020589786404950108746604026037441981123397274734244604047739645182423839460134560929636996688877972029821232150353859575970187283881867329418196402467915789457554108334736975364532677159389435800064298147941962663263657826848872989887203981950916325128301047587772987597359403358671017794684919570765465423767542762138152476091507862933285179832139010024356481227689496850345469496569858594774800949976124814394676811214276012317871849187420169597938407769363384163929430700494396441085985119396484030969543656868269314424996915476973527417241344523154452308847597634287538061150652215095841253138515986328798774089456018395446227047752336978410466906079799772435146558790443431528717117107031107503478423285095818687913067177664026724746214211356840203133006641126715078378193892672403844676933690278285217115141288263382860413984173855026759613103385040245840085104195590738164781794673728066388934495417269253356968406981807325875971193526738171604598319727702027542999966348204007947989643994122919741103659759026615451403977670175232032400174449445861531698389680134637141778951262656879263153053446911108969852401272602836934483781731491716195912399797837773621540068979522549321732401723952412250179989790453801293668808057537519338481751065444753078718565291470255503966665521962064925939829025104261823097307118517717479633922897250143268616920082321230326575438664893996795391915549871247006932650654135052009516129750518050927380578411774363149336577006602047421117703685523576638983673651482685801409051212849243163685523637739099748651017057408852875514699587779662890663848430503821334153089760560987352400258349783510300972303666010479047102709943822385177010249357781074877874787639869387812454481349318949813386682802213003661811881712992411511471210854951542945654690123830559212357418987183062385347554078492175594019472054210986734614087684719237131984600749938779757886521808817286836259278676571125739815445248522217703192056421177123270001680568315554508580540921518865155781314813609480015775935044035211656039024014389416973391516844383157035212282917765824245668820071422519287509362676529084412703558717023763608109417195168195945421204977285719927094857688261645220467154911743240603054617014840128534312502565854506030672991215637300991104262045101591937461625151116384194246959500815045950211577842717756207191141215291235465162105698684842278376720971705634411682652116212326555095553293650947584463409310061164503458312364225074163114855667698612021504482596148590047677169745547399507956104604153759836200420600229393758585636211472130769130184266795835580161741375864280822403898606333699142878348415556765183544953162290749186899515129657212625616034706754518746240784837635185381069245939638347658749629294102247988912815027373252215268966282018144248823872216550787373492083168930830627641509213155679887096568417439882398409880847099769724901874454109287193097675992562033235202479002672855438247710603244075008036471180494783642916695382635369742624426737493723958668947106995847191393075548487904143522934023019434569856494941420707387118773622348715992025051274135504213241870201887896214624459367971252212556829361332342237030389061923165680742948785717465463098620462249382954570063784834182616621788968600257805735145133799703849038725368046243159599486139386311531131648666857258731296568692440362923797222073428546012505398131175091683395101174662013553002494651983013868396080211610165226266964861560107061371728018943801359815548730019643499266074642036521897098495230121300328400386866508477551562631877562042432036862651258087485877133139756680228991203998746825523585777286137040623778210972411892279545807073513812709652584271104493005670045220290041082212139800829691825936357732869296176819949643430535630574093164471189503516284685626088487645153432599428361399363776249873453284103341642339757130237674428232640016814754697774192391969540924500875882280915161832112169815300293735253935835693841206241538728268985042655556843941586384017129148054842813066570769471580405739739184423375805560844503622199105855476654474007971517567931524962806862098309034102002177679764693951156474968030988029996979396481457419907051249995486093460616025330113655959014875427839817679324804145362313291010583913270214203159886387982493682273066298805225155403456173668205417175351233193950826012020264703831313223511255690814285264307981892675723309282923178135052604145859103545705403419157823161791571847166054158433712129279275907105517308555538872880741483717750082697564439063960339796947259879889743301533413047939054416444039937634272900677663054978511474194888972342861542968913229097952785688321495457599384067676341496596932737757030080802034433569713524293047721631425099173403533873810488905130351163238156156968042999985401302749746614149399960254857356321974969274302148767366900859646028342770692342054316645298757495497931983186764344895449590049031398458884149718611105279230052106637913367153896546548905099504633270544720767418694848104842435044719480865242405106674179841588298320108766907947938971378499520259951158189530507841546146190285800868941240132088526576062968300301402867637299624501712111078461185763784452382320778732116194028030731253410690192849064220408931272874938852971114435732326794179363707604983768637016254215141588852880112973198918811822313174311597964138314104675225327171674942164361122395952324408891795581877917373971053168506870180464269368931313812219676728276663037064739761581932139723747287631440519952028288784710800308667344774871557245200720798288643223523062570479685261513265434339958014415496411566757544121082640038835850481748064904673863862151447565917209465850918679605233965290063047873656615132143419198684292765476905714582655335332550514776258258201886536371242804428746472715118172303576670269945081604135321976802620929931239506470087199746471519270327036505239846497884382430415328493166617274734014969234570223884930614683923737698026731697013462107978936953906307596284584145348373708375155121860717236906956778597598207375423322792962576786115456057658438492885152426193858026902778245252234901113642256810434558035247060000589958758190229059611458180563549465605041661705572373083911614894160165439481536518234972440530208018027429497030891478729611759011800872759409925869118498241289256780395758623293314695368163858330118908844487223610563271350007694557387869278448698576313286413225691182436395785113613752387341587735439017726285918132027288561274578636165343985773100295250046266410136163857385321872612092580184203627342665345290277280273244844921572668719690622862269578919947167570148012629946910785765778199489628228970929457815685865578477940826954655853183608467945387926738901966507803283077857979192841080515178437195346580192314721466178553206595049048168911195580874469100585099621894287028132220431308462271464095700403253007260609702262606337520351815591301602837835030868437017760242346162423251343795745134720924700668160597120378593995780898792155900064511793751948717074830223939920301712768850389058745761723753735503370264892803808349794205432601972987245654782620846488720809564293630578320387054430620835420461675643534869589323300815373811925446593195056705554531030307310158687866676181605561284832798900224286383274447912110965134219939936416635091149551607619083952510585470106802068296106737652794918261902693141671399994878958443741944632263338167320721078461822673004062482785300351376671773455825943018565455609560641338587603841480077423169407261939596142426226528884938219253032689211761512104198999481757518158451124502856103771938412059249886513782245857055244436309384162927754906753388545191841253111331524567258653262556849132684213649808097543624737604976894619077561434650554895603681084985953144583714921753015171858137216369754419273983932652369200302345500657956926707108303826133789731251529506490736582465516029439914360632227534489763474857981834287500852870155678426657916410442973272100429051183123113903678189958543232533466165183097162287308545450868024794146914239127727491717790950425969092441625616139123420485043802491795125508973370606470614229716438703777552706397620292102429477920650786340879798709081802797106541230597987188527781490410537108652754338737609752581900385058297185771616270062064448834983517969501219834513248050428816240348914060978580915149792618898540746121706407948811866133872014661758494853598482818826104799424624099069030644045882028556607068749171002925097978895563706745874232335795910035052842365018114811974581766998346554640301676032291937244491726204497826057221476546792855284572462410328783806229187499764151514322478335594854587206823071031735802056174595493723467557058308457744608842355749055181089163345578725472928007055792028156949269440626890839532198720079965447780468399441092985501887454028178119358997140941068409797948581919682277280501942997811354331697819226360824384764703080974699590811479660531108763338026594170287476728966684339004560048374598450670666477781645361766033876577159559934282500414306143782524738709807928965542300672388118276753544128965665112106448510447391836308907291095833113055580181712303076198584102222881535845576203620454093327214515544176754598771239990172216170510570738279917390161382583776229234388904054592508666472505974251701303683713163769661075489676360762079927541433654147186451837394337649121811604033940253807354658227891798303606319490684047052501410809521778309467159839966963371772887246667685839848954503850189839379184374298683330115273174078681353775040728666699147560240353858294588220776812766464705797405898268452757335174225776820640763603062754170454275259978576246064643626538861367678849750322970284838486793550473274295985707938004226202036169211087635563372262303551177158715409673449805299017837313458304304092362833163498276977221261529762845088848353025454992103894303262821271837290363592928577843003297625887765808185887564931324678634841640117548614961789115507830386695434731572984333465637515563207430551332445614350420520735183790727042521369816413937802819014011369786375505143428573336667539417909320407702214010363811223533359086370508570540290118327840593230393537261441229736526188552120189028835043209526380224495329193998802793131447291828852877481283499203552631934242389788421723513681554296848679893245844977005305180461063943809605235399691328643568342136749488864813763427068547574860816856131916953377219131032896991712534806147431027738475153210244285554812252744337441853575308716855382682629714933355446723778068135472850950764677906632853462541880225183137301377740770223641913161957938849047545193127877367726633577260341725029272745946998439753176901258566214435054860690414112875828400196570056245132018349348433970830475388857643138743515281692192702970037305608640284701650584208527670161133341962467436366872851226701123411903911028478540272372260355995351799583277542287001067273487209471051169048447801217505594692559937730802804811729276913286383189996534511451206333540917975103207696449937993565956029009977093543551246870586949949095379246573224464346146255766127183618743919404016456322397004424348771313925305203484311784170692532070615608579875944871033721064196800758339914950855195012383586572964426465425457436526241013718410857173231464113466580368812198430244906620808826532597860629636663260378588791384391351781685466191489836046703455641942683283790323828384216819543939952881984172966937999073698167152420407909488798076987688925544558777519625549770906500420382404879115426657039027262514467474386217995454583332517767013046036172951986065942992807223400319481035413565353559521382140952413648243881809558624484694684470915541219058590446970994531654478876382736220722382692701058126282171043080664083351579064340287752177748625219198670405549444977501156216609986540210696095561082677710801430597534294976439148716795108040095661877450311445772880784124811584613017009518925371775812383286862165340981407991646444057965193297714888501819251702556494911035962244408474985011678049925094980266306275918171542033934761517086972980098269638209251374204369973340680181990419064284155982475746467838970193349935085729044774319748146841021509953268654114341041281755045610139776019092715581665339815352333810733926939121214531595014302027499164921418800576324077026234180623715424026621604456875220147712801756271187286894626893075326464534496097927677722878190498769258884440986625741366255704374093356626456794785752057086851146817990879611349230918606598746274474790825528174749630492523230646796026582426558099219807953981094462003958824689171969983384317961101521697986686942170939029351414833272412090607190174533599792155372568122774293517134397301526622944400453492935995467815438500842648683729185775394109039063531426660342021318965441913860370773219645774576303408766116383160953216263385902856978959395775195995864521105567942440362866974695017753916737475762999468689983317932105103727199281577733779664192443846367660120880571019942925874212076243571952261487525692034044233833443958659901149021479121332832475627909392745485191726547482874189994018570514076297542404280661721633679174621897609171415142035720960348728633006086500506997042204458746827971222395984828567630450595071243188282602049306321317878431156168059252334392144648074172822376100437020978608101062894165784662151816111712706899786733514226485158915137694820853616896284062919290896117810067917905869746759504416526503525120363245094868870737082052639622394755828966716175287359325758995531715128008081024863080881288847485206598473381554812821026657479952465340419473988272212505847160886926062185602518189806370369863289069158176769242215260598382792393451442460869117686635139785540100787709280095265294132574271253894546466508349461778518875989162058964063081710108080229693400544344573336631053991948408675488731682550635001670163312049718005972180937459112852868195377833935290539459928274532509350555429677170327251505441198559526695225484803596810083587434387604656489704902347378808793247969858788945887057595384109512080022726922877395913162809990505258988973814341217740218059573349833529601507665906820595127803523585527381725882338377866874832463785710016277402456657872235288269436804206577600117640027299849810934438483737873238979460713224826496221539088153569918219987363108315836750944511565840956481700213217954641786581922923045914682620110625696324576541150116517950092949596054222795100865538656270295751890085773531289239890972375152193294969404816198053497035919197814670017409888632270023585588996743380217596365018596581728054620465020126998185656641729069826421198577583797440280091236043177909149498141620460645895680173667137095707430559701606841593973384895208750951604962175146316644563362547802267851341882952412389267900734589604029394628043152024602604945912482080371054270482390345014607157472781147013021176797905442220673845742581543345484040022674886883225339482438582511826895663815802987167577610467686613546168939864388206623938623366664514184128123463881343184746727049627515432283348454764628900464132317314262640423191581443736042806177717278594293985344751965985569181480810837704632556310861636038360876664158339685891367676371222341030311828510728901369679157275602358281912419235096514989368686207343365294557017003775103810754023415357951717495940993751132845769945061152369394728894152562449124260520551284840392282825325589500109153896740090466307474488122575595227126044744925186791161248642401466399910611566488757131013889187145957289154285818763047639265828967326446149520478297572011044536369096788503037634687630407195666198888001626764617851643063951482172942472128365917329198526446106920646097146099274745256446163691338287303240298438991451552396476933583085621036398601273148164306092816557635368664575061143167918300985543451172475607627092725277103575985578262268620669046891159352728859005133777157646529250015415373365404014230205125268453687776010446420593969908548866181503314447180980259411581920239302831913683005162689464376563008201722206449130136673232373984632096661825602228807327019552095028175431708139964026848097719485710155875648629716272447451894344381593420480045119899447900289895754657046966843121927455532012783683709508803495544982221282003042013719791783656087920589149337543710059838071881706856417001072671209320539838457987111413464079681601387646643230563830974952586407696918598025100663617937012107790425016436126781728923802389032369407034622403815637001481090372596391855607042048111147017042625588954537325765684738632015211386231883048645380279028438962550310757328588218507621787066722049875536720750918267536414423196270661269701050748903769332066318830235603194475136166267971118250405550596951220823793770832226046990444410729945122370481553731068845455939069852873276120941496999008509127636452972576446804864256079785032717184875842702475308869701370935124823769602563739956550080200758084173658803600461197981391008792827687814349370809640662763206143160124552806145781080779879949267003093216026429888108720824771831636303340442213631581848148678290920676930384695182781851336321757359878591567963722902584984721703609686844856619340243054877840918405702977317591198374643238405617827780312132747764626161948516856462086930300115193483819933589613168810434987106470230182399629548921513003752452695831417718602403288485280199452563018252400278950948394598966086871585006903712586924318022238671787587520947187273385882463839515612354567966484447227356828975885557134878506615488677546855721404016812079635721913523603665929612809891948212661944368941325368183610037062601841555485602309299361142445381537162875610799106429857987089221324635677449380363777464080058936888623262948433548148105771288827479647340630474372858309326277191351224324055709276696740784980117095459576651348853623695437568996333866476629401027527885390341240320302262504302020336487597775094964328010806950327367435516897603504794879782128850185015862789281521796696444743902393603785802971565535933682856197861177425533372530597194393387110120148041329775807574399283383524021002442110215621792731949074773620975644027556827630304343550516298953097852553123318317799337166524800039555584136140861027391713177299254121057927985287129720546762161107662864019163274386548672083209693391835150867359644133816301266857484722635720856095855451891462874685766831104101654016298163688028881307868050343658717878769334671996755241626344375959070217360881554906136262545119299456832441633561524897323458570965478296764805019771760462402537154066634346745621713136228878411622918486497091941097916561030595951847815877301536464437398287045799220881357471292527040552998925600026008006693837209165109028776779759355804126718492626518220740655684221704067841725989963142589743732204665839000064040746939140478734039380549316490450487096694357927198831245881974155220052289412869625911391638223352124338151661601695684904158628445506445946943592117140701160544740488695447278647168471487802478713474788929443120334064332542730718323897606409341177640507744233404524778012813188237155408934481141755405957860065376519824806427523605993897403207188523978933885217640687024014907547222082227284887026535930109694533646513893310826470050780885791766741201841314924207801271668631841919693955925359778852631415296043273722181866737415001487319224436149539215342411317442410764317235148269205711280035636580143992720965150286717764309838817719074359424526132532720214195488643345466037834956770786188764300824727567710942717787345059746768308573897408537366164875766687212179097451033352127055471323372338535054004700355840254985620634640320858166443581279629820361732321295631572980814625445079938003249477357456726861700975979796542522504593437064572907473017395058317285765136558464420034469018000635740213363574583552544286422298967043907958663006247471889453868246705794197060287396837815465823386852493249580464960960338637118747515267136058442648440713911933248955815096703929196609632882765469654317790941560532752623921656608274211705706780810847019684412485037876631744013727772736489666730630994140841188724971904798934131252116367715870141126363657425986324897429075776278434055954692456950807405321376670465864727120660879721880769832916070012428829040119778839218212978643125746200117935152879309519814959735144018717076742991230371245422702145080537427690295241658561028566405354173198239007317900574979213389372198527018804430889774228088795768143198644850592306008556900373276231414015833285468161662926533293066791808363259272608395815697590995589095410126137975773333518718424896035046195903923407418528518440730059896848227260799792242669366241748939115417366990833431342221169873398267597069403416972934868600347793155344100005376082238946743834329305309398798448137407145977475326095280404958572067792871717639458096068740560750770344979067296477020222020180637604979609573128286804074145531851558312161798464949573038848685700846350063365442737488961660138826316412411828515352097606251381952719500645265505176560255163702069141055625441075217095346872488528402123490789502520084370145507850502722698515069588239711839605518372055669796347446378007049948975169594954852328265097312562338193249760280740627499366062979854535759472798708805577471074583863925219073287856309580406774634002323091244367793298310154393662986108335044984796911659908406129253984966065593806389244290535858972424122422520063312056134588226854110756079118606762050658753680710705915802648225909428436937738601396266302739387752917336671729477510788978194986515122670492977706097564355125592829256711110791882865005546804071784962039343845396609769135140708474247356110545039019474880655354784315719230001534898322199043546695791099496260757905201262256707287996203686797155758587938422978843224243581278447764972328255928837947624901772185623939958476103192136900180276301489752184168409801469417035165522926783717103699254390097894176187371616062528117901245590763866114080069429015186310157850771301186654613433414943250579571471834345941987313166123657440067531257471036143727955044661010387143825642073533007057059280981092498028308900126456114914154244201979356779973275861537839358389706957753589806073267616391833715018941605317405941819777848082365274427810192797964382728047967491836098790982910768793618734272802504137743182657878545139257221520130203289346756068577426840371368805405886661293253559364583902559757389346327130325214154947544321454225816503440801474273169550782851788256762747659637819840032149081197718852968506867301375069912282544002628584108159504481490591002770911526200876746203258319796670876927418155904377502258713037128631789850196251357102138078464478900893031033632825656092246017923061954316996369806896789614479762588051649211192294096441018072556489053695916508275750514715888618149667478167084839982502304744627795971647139764031921762148899735385857166357249988678171072987362192284806365800082359449492652706538252900834488250021689153462851715426909135808291482857342410073790485438445805408032710922001483377980736903918554175149739389986518307031310883638281225791363734410960375149891188992618642859974071643317692207852423626149003890619761169738481832278083984501389654472755391797911971260384340445472735536554983714226062120568208400314940614593729646419227356020004999087940497709747904998062191681360273287152580144260653274095814394029258260208722183810155387729155255142333091957942924654980723465467600646564657663671815937868428061621545335256311124717608885524041881502430356844467895100038813722136285477230137287752468982563241403229534675118999774484701944480400062960832347270869821435169305211378811377180467973009314234939968487266968043841694850874771202411622349151869082409595542414831342426036051417080877990868762520464374056223251667326882749948823569448456526225398558273362101413605957735955179663775160039879589529272380777572994090937366470371745552181571885875223588223106959363195791024258497127519397427463493008438677520563908330060861800818012617262738099901156673710319188103412510135060365159134391506988584705744484599714274750797808330660676072726994657903879789235116635452698373636978087427254908784789860384876682886841995559275383292660830500361467122090789590066352887816976425230747155322154593999696297183613306038440424185132375098577045438803112867096486144341920315848761908561635067175549615950899425756619951766550298285868056599469961345301262621965344081307335374001935897018635322728091144927502666031721068779862955359040115299431443715746476402859869117362507909733244844009508554055680543755818119809197194243489276473914785478105404778247987409755108404885836692874546678417105461249729112865537212306557391003050917722987985022047498928008644067651263557489462432316784128275316969704192705198538756750094334201924018469553226142923851311700200571292045181294936196431298781190439688588455955076781399788960019280738632792188513162117514729267696447838768824564724228293139020862808739690909353084581345575868017927712677688411583700619092379398336412203669429788436902931981939269768186692604646819272335460853850448469877034427062904024895281937180088995069567993867997175559075266983454896278498452256449735777090901092515622535497224982670429885172233595249215250844053774226181828681247015159323764690406954848261833881628360975055805758300368321680207841613073343246570289319158991546868053068597260775415108639851882395895856019657943267840239814624288436542392569239070088314235294214392657307233957192775353163643156752270988443766737718877040418503255669118401221278775272761356102490433403079369150749799539091659293879666116380260677451305615569250701573872093328970991869732446486548220640833607475749068509720875404426425791823488629490622822902351042671560188854923248714883087687323981048634691387884213342255223905288672307744573885333254548701915266506751986280094744626711848985451256204107436588729883207129827997462778329287166755004159641108040278076079075160184420549647555762327495077989066011611626006725258856767043106184555879607066760542523556668699137446079856871745578034203855439938689387392380544113423931266202731357443571602499528551520928621838899671980571603648448099300492726378483171192848249510193916399547785195181561374997011045891795621207325106162048970660215172989949276688752585146391124585533666253512570031933987714852534556102465001429016746014359041742909474465773731641910733109288151772768436627027020896767484069885442771551232179790330078586634683033456801348214382620887471732456480216179265852074741616716907818692816101239677598499063153127168877328200448510370044703542887669204309175645789424536424167467998980271680792005649220168659390071386283897012487243068227536690060717508645912119983330256279116863871943704559365245320653806921909092918558715069841894901097943614583095042038490993894730234875887296065381197195865590034673212202688658935955762753920730025001981577154476602959472684222792832614797866284255063862488656528065221560076291551720166965680842726170999413192734561546589472194795678660402680624851692337850437150265806033756493741915814265711417518579811489447019675262182444322574668067438771904288131350728844506159133307791212796547041471693819192408404153219517851434220286110480198934060995217204316396835950686253821499486090751064471212760238263809163593839381616808824226487013065696454414418690341647410279921393347173891728057615522970009237203695058439955852661967153666705769727232228183125079264942169614426996795001509917215694522940099329212233609853120027184255275426067479406969301232215614685839839809723373161372286142157225166962263347810014557458717584087180709433887174036454585167228544787388920269686831412919269130616809775881281747143774550549037016937978422783142079686026308593881735115465481838445174986299386275642318944292269325187951776275997554036267796950493709676329152410735911207895491367985531549807121625942886447265353387539139726336439331017682387889893429942576661289471669905435144097738971780737611202654788668303171833910612163420035569696935727988272815351007296356254736316495611523918903570628981752007655764428971946622147355869297335995915763121993965060561839080935596138497327256655579700102084840420120244996055685036971251381794640911232122758626610371630154558340315713286712367133493528232083554407147207775353109422367874881056756892837073087421105348362170855515594540696668980519327429298608880622038026930452313044068298417264421713462097798486199087118917195848088471914656548914632141411055025146402690413135648727722975072311375880231723586306623834375357372007342768000022264417354736553692155255370182001577444886417490105907378172906995826108388934212624249045082118012250343199718340635806464280145240131717145052774431630337085644304538475366933135768701261351246354955761797950873447727797765991743187586446594381255673133078200873392003152418515472465088141608883818245272518772887170842134569974720646763740036601773503602854372898052674994566715744938626283067155474516002467244464481417762646546768842884542535307356682680155591809895205083070904250438480523061048352172532360564700932637091912243995277545386965057031279086745322322412508834382852871914162335083420461075004321605906114875868416956285041379197376101398481148646456769140985852165826499700804856743293328029657340844189225438950863137988469801733194844746527850343331621603368527625553803122966986998676380306966875654230520199426498316780210363232692316968119309322362304139097745672617797477030943383124192414460120918729889891903674765906783713063807348216889078733521213843849784967115417704565284872797062005070906164463095660593303088104757378665453559502950504884665575892499606297296771707546260826189231335260688021495035290496380456265290876986303471018992995399634120497963195033829583132619640350374266843037849205579494526998135814051013563192318048738025845358889345323351044246106881468703817089301554144006576098419576482738857812092335094870084884843161157225753469326913465535043232340056092072935629883815994363317169218186757455330535346485783254939750413677507567886952149027398242049518965399941334926917011147814761106080606320645809476418022909577809679833712535989684332113341236250817610267642172898790040927335506886260240233839613351050874550841874712714463624518217356674833113750676006879680130243169648427323663611244318095821027046370394750782069931853457198223352666456317211951357615148231880138658045835980048872339522588825855050436154247607127046187090007475451186028779466080308609602970273960060298432736341892693558020886839360655380181004400411770455277768054667196411283825644764616236804171756527951443830293729767816694327332492637647000833498699431253386881520216375073199123002980669334444847722727541338379153052535651474289829303437852150037944800337196806154664036631887670569965114238008450583176651448429988848575826536631455725720036065851430158969243771745178761153538241809275988811909413739536672303012922576880150973828407574436688855943819987992825936439942884763744927148172003051766606856633133019039403267193168386914019137950412942628502589740866219856039549248254545094017958774609318320475445306321979663222947244653337155815807721824295739324170268674113521463557923743898165655754299800592610961122303320577150030143051153943049664530623240856665207982586091657543917808760940496612153184636827204001875813148697671507658384795816827432379572080790777722707758381354766213389796862652365473073197894352923609853656546367305478975824827759607830028320826834605461448758138479851938076850826251012104102943305492508817673299750984024498043542726101364893364776215927907041617959598987033791639537049328807691674196191825708717970514670061055741450120597706458127760108807683671758595732937445735996119073858740109289535416460818438942033036371530961132251813198210592289313684997268780935021658023357362851062062920153995198051344544627696269806752996070374040854459599333135544689401177875892984810631125356101591482268819053444329658179374192142155987753084708274616503036694047824460740426373460413475125710848885748782451389679470095598503206657909839421908970833900687921034485473382093519417949086547373269719225455813246841751143509974543651304275487291265421196040740778022641335537632362673026360413956501718127614191524501075136598943660159411611077321637466300152715328853283553392647974180451626037062238613142901019084391322148401163055782263960444762102431643677479472788782877564912754658441363344179571704952677746742398730000699277984265617234366878169679160243286079825382645017934248215828678784487181390128712580169520137377941072071775013139907287268041279154848278208914131660143724023113621774653361776929815799354589716526829604112378489517465870522240978873081828277195380922091318986709358064570604784300022782013743077681920060031454139645833199506377981246150769416779526163851947087596687751069578267235993673311029041639468355712322410625012469564405808042898938786313042341532120838957438880379420507174439079709668850101198250845753285490957718691756758804225790807712419263529079072313936175883343557894420042796430528659853348465286927583909539871653393621435039446336906401548884218724682464809313295785379232409286309656402374823372815889251635138444409474314365803714965358360866478831042860951114650329545418982939271448061741173693598876517571205303103622408402836540075405574812015112216127862069552264794945618605472238161737589466738636372688080790762757558594558286023855955889093506873602633042941108324166366837731427399588298386982545068082611748204037463613902576322909357110022869108926043837475371439407821013823598676488803461442473182282167167525364344520957841955590239782140320968774770863941525728633286521928624884130905937314423367504114869218530407896329327209229197934522036233821393907045679642457642743056777557276786090668796833606048858197448856778562107193397947102519404636637413797491838958715236674686282970104567080560003532822336514493052085387415147947916174104901849061503320813743096383762834221459162697432609802726181928624850510151758005553911038194584333239974454464188210482944546581910450042010427471969544429357686450209422430921844767377458689389371069036372642206462375785207901017961582836717909158649947850916012320900298262030194511858420170168033826344812247659212742903242596962475786811954059622526940943434835352813371126238679558167348557275937977780003030746289972858847136040998251714682614946865016361616209909853674672918685328151357402899316943299380277590184592973601701698573358290217446612775716427308955636832322588977715837021286200721533840724039046745944494422756044290506330862887577330114044217096539143295094113253213670797930012133868295160627722769632795802528936326025381941879180464961063523295626419077300794256464743964916797429490907933766943293426133967673966125040635696012447068600314833312180349554474970193395592587298194930390043386171154631876403044346796564355258259760028522844103430481523174671221578142378843559670807523252326449326859589570885832069222014783641484724217528658082506723454204471821068158752056359209830357553216851469636342393189932875335539036158616470076869463655925668052515076571040242391243428495699379598300793573250376344732396975932615420907025200057282019047737658806504505767947670883818468413726974194829945096442017828955111146872625603595522360953941634878841802843669611495496872749063198703549366566050429364451822665904701679590302863455923720569756990150757524840505852152268688161688601083774498353036321932664527183690313409594449919762956203342463774527465594297516139113174348316723383371500572810128989734831241239817670646049284691364635864555541646956648942305016123199641039956034477536756502942308824217998002506669477911314319059755503563148080586590095758786057250413455450909061571109873606325624606761531966125122282266195888237059676233694064666104836134718209116144140198424134564084322843610092638691515294057558879915036167757067888534924278947006783932982299435619330170100762363713069640819313332746743183684004767950024947399426601893372690347320259624628801565279555540811256045383618579608608330595931277129998568894257771249711911663360322959697274266871884223547366610149939127375585585366648848491162393295225310505930663747472922619513202919961559367061368962850366604336516542361947234686620462882882605350439008758633637033228907044944655538442820093937079228359266707960972400053125176221166401483920242942343074211822174391315017702462224603275665873916788097956169359800987252950920335730201046642923161213911328944515131810210229130692361791917507065302273765656901643905917427122977301197964999311901375972351661447335296007187549281811331003644672693501759261389769359656922450990943158000333203492820959306582321505269190466436850254423230517258101187531996628780847500357336480378384708521496315037342156041041713674761877070270828136243189416036291672547107037799454372415733502222997377309578655436927084356046405317217306183383583037363767914201951721737883937460505053925730872673978686706372368915356106238164768861668377085350171113164601794430219150909213888270108906187688409199679546999249153336026480021938994473836231985385469364954572543130214650078907459812767134587554071730792227243466679603066101917235966850017646104272638666247060596695289115970695270934984371736287216720732536326819621409904023890193238880705785909788192720664553196497910647204557216311020134667430523307693941634586090808187682338515882812805222896870253496801068875003731644784081274760931946916776136390948565613470812455529475872913071162001523454797399467634460779216678553449186968609613243927884280387828155143035878757586883695222925922570461077692046385185352777835302095365442127020141159379396011953749596190152552704114779063403334579220835949850243251837482318481426096061255017847656784486173641651433240924716636260010828481804216458313949873174418450171062616812782077474617431873395390971292105997188004137121534868537369774831360572333541155032147755799968071340169575866320614447717049476503267209190958599765096525057230889889036096189907052727669065985330352059897413606541632199132403782084536409542342607137791822381895654320500308897511609291968602344537131112267781328678966142624951990225250475079526575993842462622071881912560382029231959592594219303189464054459520445432419523732917243180399437858153355431258796183893561215128632644504632356260011744939499512140347160057521232270526176977357205430622399616577368352003391537097123563331394918698167766704607474328971237537955937437834120214687804868969280451608215586349425085071628761951678934268493718471839374849471124795904429627605229811391706526896154428440357171255278001865300129846020445195363273631044377409798544013839683129110021565374523743694873525825369982846796798794610308851088520609353660394357063335304027633375416799330621247061220953539776545395124841978754906572146854763470826400999139888950068649717868864703107217390066483938168821699449573896746640110252979918010326926128805291876267135046094142186173337716796938925852057894356615240250163761223575761796179639904460206872040411959803243150556432160004408484856332302425497933934243621512332898051323383471006798239361267965260682071041961098917343137319009884063352564953806802509269215797049881128723438304578956645790996068188393124235610292240231256054057146454991282576343052541785922116474688184055066336283646021002796922337214330350378532846850414832003184016925906348489155173985315088546356570341610897835164566314226444515109171271988616096716931881925323908751250556915255509172921280634796985454673348161710036489867475798313258258131590324731349108820395670936238552249520096276381653431980355932959850518700580022607284716432084526408606471011766628883847194470417012438790205787080191869809746644004132204403035736934703981459286767171858459314443535787307930904719312985410859464054726255610996613967142464621854052753362240709863538851504862371643701317101747081296327964757207821950509908114205347578198694052653655853627356549928366892678873376215723268005910823487734552652540754254409381368129537895294698263516146257746505070776602256650952076125111378028348514470167220108571983866854629668853285326947488411739850281386156207577130957507645382118748332871390848291474003790794638888211180545092326937906795850307114850248735829417882446020143598847715727902958192667021406885055106612757019119273141821541333656002981615285901009865391741858043425053406708642161184605500902069373575303745518404998229459406879306640002731620013724892315122628306648948610076494514570704271286205018838302338922264990976501189372792270544751574820128137563966085262516449638440145553617152508994126155678992757447535242980796472838420691680205045004759298506241075931060694773269725249881860853139301063792428344896221008004954689022556595364555228726737471112754901527155845991370028408723433719404199578810790771319932788478121328087438388105842089085113916496277482645748740468512507048617437171836465332480502141971244498224426480609605658578256249629722579232015933781402422418677352424875824110905607685355848933592274968440474146675265399321070854386633827789268934955251859598207087374289365679880496317047534381416125205204439969258342428489512189186857271680772168215250159612711242261345693342796870199387933692622428582543060770824037318389349375057655391253117339790008974440678077704925753453894827891696390615823772203320600458083438277496540187564766800322795985342314475734587705914839318994469536760021860073968541657432631977901129762729095680445413384727747139057015151474870842673718147457845981940966493966603036960478519041712372250621381095116693792192308163129216500483167169022281881612913913631190367714893544880112993283710439860820193592606624487484793147756890672055357380436880608881653486074601320709794534383865345446517757497855588593433316757557794480240855527056381184968158340997544900810926140523494047452856362159682684275999630312676067217425607853106004848794795676062363579591842345714657909371623426373960950647404291931732136792580454786492464855526271347842127531021112880739191016916289631247552070018590965166700450832555056958404385357484740967991099686985207959802454434879723271983223634429897549831968696596004186494609303284281480454496274887295948182574558117114880681186960749755540367717196834005768097533518667090749027133122633340134128352062978390489410773719744505936599015632724978731172542688643583613152663951416904581745651126026926779936243230019552317107386317977545073471871961234132797138628571723050072186124355421223621068488602688603734348729096987426614780840992440168252362631481574317151174357498118226041329173657628147912190737999266518602911953372147929457537821574680699142804527276039206660412170383196327113447659880346980970246103024514195912884982661674106973862208772481481090852954100999552052282985898948583534973094197924402550807087106373860788134255245205992918019561000427862808642966372143831846700717866313188483700700239879997502230557092101140494847860365092378785126432522458903517589318701713127135515717843400313735299856664483465952514051314981273148852645177537035104326220161583378333547324077298360866804392896002279135275870592184425923215027602282666960570126871163295362474944427490231323062635330139423721045424710725268646103231593639794673839990425713610456039985041756649400529120125465309173808788098688906991927332360051098083050328569313656382874018949784457796252013646933986638495568445033783009898119075605415411137571282503150255369845727699457818256148476261561374764777584178649073403375983034232858588479601124828816288787334301447819648597070533108782030694647279084438608503909379820058630524050220570265876869325738698519754515942378395097344851231420735174096356431792372088072877539631340283174846839688921094159348336262738639060571459510417714041038570947875691122420809686543797868365300617578212298615349369912160755653188350143090517364536555414297537378342188027713483277835947327608248065080865104588172299288320010373129955399150461114649333508209291731716661698807374747763670889338698920776617857213870719522650833963136589878363967366871649999525459645613998771070358365201618293222535805032325807559979570468251883109493048274129439827875170310509421283574365419073379955250545593071646977300389670063047038141146891732774225156759373267463019274945148895052054095230483030189965483662475655762932887004699435623876772827727967919097612158714883294884516997575683403484996824505102774190605226442334054593155224194942753375010390434129597448276511252475541295008595590321573865839225185318281491309027176656145101187000001075851712017935540372107800434140685789229204883789572491879333997662139132726042073066187721908747317661530835108093585569022598053294916876816190012290004321869655974140430914466001094017594423690295092835747685442478530569395601049689040777648410873792491488361951147086909644094626515225341150148138929836967864173686737619471831406361917144410691007585676338296965688682461670279527416373807131549385340943305155634527506790118184594919659748951026560544904479636587057920989418708563042104620707419785914379984706991010494768854880780232731956363889199190428456316488859416707381652842035934946567769722074883699416007237911808366340957336603496259434539330685127380344899892385804519352772793439239111432951196152659293640186557437457779682099796300047632401914403972294058984380426013119689671893496587872982403361123053176576108232629329171424466583405799795265686652497003280440840610797720386836241746113665349595152402663056538017986648946759017738432754838773446211912456474694351680069987034040047595403255380595344407609958205696810688908849592104571869856628819534559678611870213597010707546064595788854505273369213214199981489096622531412855138174152206181457544141880985990232812234491947447739381505904107735405179333471591680031172896142182094875524473227780400612556491702330852557228462683000852209027166177341141418147278677142750895844897303085285402383478757107348654577629052218705239644718840493003850584916244024356209574595266873069109188238993173873400174459791726553690294890670702833912627042893647898045023023811130296608721951771216719304112553140504048634980868223221014566245243656420068705969178666368418820773958157563284641797150581778889567976526659595850225873914259771837681341316376644674015867517583310077285195649282722744038909330007011922555525453569321521884776464088086569109414217419699245396283838347647027532123828030731931085265980807135114667640718051189297860887645291133076654161142875163500326227855555572976136480630491837958495405119956613030899843342967530257482313072213611614852262778244655320777157359838938890000072994964681730905070703547737741899698587791626628535565873456621975729373823652069086383564771393722657716407929132376222938775233573493720331089110728433046699452483205028034561815268636560478976313550730485407988396342352303109698315309196935224993057272721042913286149277577922638250022783224654980353073432407201050384198382989659508132352637896494115826564674417498409677081849108091306766735585674148566253670163875620093492811114329545224567388573941091494229595462000137942311685089500520128920191992783546106254010733316924988990584803406300828839846542074696898594842637409450802772805426986661359985110622006148788952071025247194081722012743806672894804926816111247814401725924938629052206037820886974402572187990533653835369094582542367469938594251936448767903914814467830363000310213055078192243817659384961574620482081001570475613980878206899052408873226299347015895233071374341857061284801225279167378399490057045741427452727638828547335391941421339706511422439518417608310549924619649415682917460719375527637473595320333705098338749803892646409594700135443352360540910257892169769507544838020599357002868120600683313045029709131136667817794456962260469684814970218101596949064419294154680119317586309232237185399255189126301671509677418625185333517334295105416889522197414530699755009787025911803791305314806380013469136984158689808893908880759589207850846182861897180676681417351016715892459751372023285171990114624442559146242878773935917312085175283874272015109666768284291936446178751947501848512319453033891302652949783081091718330370824517640913140963276868330320745357509345979802874950923830655359758538895336937436315900642134060492880244592833417127985700165368480420641082339976191646908778598483404752145930634225493727682509260930118659686755245897282301918932502018574531182588470098157564145495909871147711148827583132339033956658255992684020104584158486895610841828248108408367268860811034968525653159791910503463683437738524728984773029178136241519430866386751606722354736623290410902438013244419249576555999169568677002325660494248133250927374518523157362177968690062832368215639982323208870238496849755314640815103984998099358954461681728966873358237725732953424565749597409244822096182745451118671953117196578328537365492741949055199966423770220429571469794165679188756201762883280387664767734890204149797175803694709434931428549945370113992304827930612275991844497681560048020430057592821732627849073023182551483598833485875917749395706980691837334572835203407374918324373698799364691010300930587101105521980995561419008085162677958763484584645003260692606020148494709186819295463901120244761605773203545374732418850609739837622992934867305497901249181150344233977553886969801825116633633814218340322415994912726299408890630977241854528061215222990264565074609812074185556723453080108538998947030415279393157983411040629962590344676493596369387316516496023696218545093408886527589309064042088456805111314889584762331758101015099107849980253965531308547114876458582090573667076493199418674648079996485173545290666062211859780223875616847344656585524129273460702523345843475404710023780410705323399452348810213966823205032027917986024690065901301965858637891262798203906043648949871221084370232663374012623391245055635574489861172861298453131827101408329360204442448695530975510172678963864492146177120052039728174164829625878328755458108105508777552323453303773737310355115531973755104554800829164396018335910741958967759204045180294359398955488135860889144605124589579804221808837289941574173502159580034327972609967830146513968703372756685809792819470047428276477916022322187831189575758378187647249574965123579797825918324763618280096909863290586846109503044808887474719645231791496115771207433633884060083702367446305322652023978117254564476415758302574464528792321629591350228884729985361952352266365225116706696011371814853500420342386124591454735709740129454631547208358146319840982171392144762574503114831789604752134925276862951781320153280616940144158644979630538692900944934278938371477240416572788428337660559905857124687638989497009672647836963116789449321507450670781529225372453737467785509048076887509814099337853307409963448728489561211415526865029948915789790078817988796582435596090895552691445134084482684140970584845989865443695283258310584464315153131620896594627667297003944196289474861464114798948377395137338499457801575484491285210070545247752923687870226200646134832685215929312422602187443587209168395300462544914557041276067225124288907368033647902200278948523554044653601272043611398642142466385386813487193293767084668347131163667146987265230148989498162736615126519571910826436254704322939765001542053421211482798281130558755780352671347767913481436239371235871322677783976843363302019077019456930530212895253735949263736787630495788366000779693153515931359927485442552628366216920689076553057952084868098108510953881853540155234191994833339753684259218262444664582294606800675989255976633050266362835298470293423269429064072071247874542152302987765213114564913718184249957505849487052332675770639463377230520868908137288812496099149784667261532120840092253031691735316456762448990866419214315120765173990537038090386848985576847938283067332047342033345513025935159287765280146846618200113838113499980197871996502304704819236761407847419015694498749516919711027934674866319134946720780181159207266629847988658452190044286950656392749743407699306084166324847973505206691769417808981716709600413079506494643555673717155273570092877089521763802639794140217239252362044639264289904603980483522078036389545128824669731402799600070433217480112869165324095546105874488101280126969186775254775069066560794514741256850727664391212180528900364973504473567134560950934189938862588919591078101130169638466652812754906794829250188838706147357094404772319223640544744671626029415657343447847440971116337763931989366870279133075376692698474434299795417986166800464084112201961211958730466079919192680889329354649946184159738305841303845737136298012802603614979654250246253080366650667588142638351003214764516763648386268841620603157104022195182485184178815116262788578997752215207257117575220195488234617831463138609870604996866631206393925021725563868238554778835159273769158302960842610767313078450492800366616126001558698606081532368043047261337866615468919465846702953915721497242886164510784335166611604248690546397106769233205579482805564231191214526015855335164331633838679447606567219192778778117980033998029620603192873711035806762208709413723359222084951773909711545114037269837926447676728838190589413997619750121603559207451253095592948704145535477904054714624581995344154330109482716203163472669218319385656234746709021943931338091181643099629236397487523823576999682267664623912516031935814939775417219657708482073676678134193819424887158539396006171080598874139456400234971080423927736856064501891360646287783195370234517252604372757548625950145696627875860387149579976935245771700041843021806055048486048973714789999871740520753044495391424550826406529142229389636643116042144538104753050069309456306508796791203886539121569448296286063265046128315268440550763079327172282941488241071043395315210128395715146868772075744097003558448462599193748239319765566040642936912253878218560089076824877057765332920661998123730094780811658700213281462507972684940620841617969439770340144743488092499108599463272589752737341136553597010926886038415481770585862880336693519717383931752098479351667181184057523800148617881902434183749112741046419391378969561856825875151963264518093840551165363507309319684812461755379940501175265186696912418285717202482805813727340001010081388063239391665108136471477378008747395320939286101205598856801718177112611617993549819553604313881582313771835233672102368133843311727220752301795651788607293692131581850659603926355728055863162898143075306149262432323654174288394090137393695489252087813374085357129960250877052969205291208548363903002927254733302480798881419736242248146088503488070695394775332393547872580026029606045132257673993414131148161877932725908300845742238295760771649115557730360002456967210076950019891785841550399714602458432893868052599286441353538067094917271522054599163273349709408752440400384666892908624726565593198016261597682874304295237756601858793230942344147179857583411358495419524459680962906025594228457026195854643109281500835670844181378116235567444237541911459343112007075773825076199705878620772724784425790931817775778892099350043974192786477701917473383909837239628742047772689515586893685311950393363429740850080639863870430820576626234271090913264427357462866353757950222000818591193839976638971834631041784716527560479953441400122351947697326961104343378169189433555683681083064203478113862485286799612332761779996932830584447227120985279522172352641335101623402927774254672124049366886853121680070003823756965458100346343950826776956070180953750224066175082745364302270047301202437645486582135616180704188927263324111213285522117391471284524811064531605878955293881825861040135611461104093232722269935857514037933309476577570135070127568027328669558697601862936137917490662772821408516725601585727289759928761858592143274727643531077003511841910042051629438111871096371781244493244251617723502039042991298402712795577529486902454917407574234625055774501089343490111805229087359311158264316454959347419382730956942872308704786464121383601702640834648624845671621650710472145191106480607437396440299675538330994296652517390992541714483374195567400143219930407417070854275235946572386159549935800576060920082894602084844266699987079222134477737914406776700073793430822276474382789700597102880451069885289897898727794722804839566328690928163973305167945702399774475889682322807763031511200043128684168363033621834722448692454597086336373666054891754171219864155467699172901224538553140854317525811941908169778076310758329778444032805805378149521708535740334472967667849489377989864619968687150310395400445114570959862879910551990382625188407239491803359122411061028317427878386979715727861360204989538901784696139812659210973496294191813463373646699931233881969548015702022077668183982564542573760643872695230602964370069454308532250997984863835049799102682248767779818844586416305623049236519113084754853887815624879779627399870514845944477060008352633009334659852271218820128558120951624742036297948831618091122605978004539012418282953754466092248149059711304458263550145981561631689589941473315604843342057975398260155078843847302555093090443750912818289383090536369989954553648243862897517598312185010199782053477246337265218223112215675802687603033926492399827517216560060169532829580751857981376739911749673038880057280211956500450875511769149035393089297205385888754393478798763230632009658300341410845860116180061478884151713842576983120707225415534478206141200353739480192693064341135284688465134543165503237444440910460823743756173987946606995258644946281824949845232502451482500551039193382835765559149867018582878320980526489769596324752101837951970968201308676433344725661806794195600232954598651353964330337507706853456910623942018916980092524787671497789226999775267112856384803528719356341117926663908550101568355857566159326266472083161787562207134053489873637252194571408824821819925401774659792699079930741058789032445411130017934517332012610941493331384592276486630559146398094985478423737936939145863592196911788727987921725304070279837907569310079902737853112664725575816038010949724021037212797610866707262258261148063622179639854913348442494889274874902989552752982230028069871958439827771040526656326790683627556443351049809730651629116585074828426461343460402907428199336251370488262359124992124068230271459402495385552336599685521598966258653420476136859491612765514320807347755904559335217257047645494757394205432133095086250171908938145650154239397735502149189667961491881756436364424325163960657593052931183962749410698272027117627858532645907448509800099553018681037891096039718339254850230782358868497996608040196686445929269179293082061393008483970911048233797341668193765253871742422587541056834900932467381690900442166421409442974960339731088473284133863023100501707062938060283919485302010084594834140959306730792891398013438826295810407788628000403930883531512444850996269816725924035723414792022905033267943386327410610072672062342187086344184813319849045722966814362482673388952347170668759926788083383455080005098652456457315677064400316294147178105220690969492501148925085404739932004415098195516878551261208980402631473813869330053097388683268681054835986326450454106203612692693237131888878066217833137480081126802998609989391758552178868998265856159104352484368923795893276808252397720332694844030506065856514949814593032938084155064299904844815483611468925955624190278165286705108126428206308865635819668414235852430539356842187335665585924782527244080411122087962108740717377700648919137721620883836515915292286357289422402317117998363069958715029551216140677926962542794501266102151620978685808115604628467628496442355320299153170257628105548465621064229574895286704481372296429655603150264792296330957377243232511308774631269734935608563317988190910989865595860885794052680223111459352250373377875166103624413845684177184494967403653513473154974389908096842796299637681152046141143612803753033459091595701666008155676455415024965100590039959756307726548026248853586026101418258844060448406928593827054236123443792530942273873872126933781658673365633091418114556049733230370786277502703247347931469887891760935507963245559510479938550231032035631865803363450151913911614205754814386578266161974156811671933426855700538941195527569195463865012187810251271895949349029370941169718050139936140944453100355441263125137053146973625683145041840808492366485548777655233945438207077028434868860239015092876948374261064898563415760538745945454751062992374918504666394993754068052912483027414359389899515802020227296622763817005169624572325286956026615764249514831056099171782090010641853717322159840212332736444063386308002843009656857361155359814151410657952348913689118305332933812068257355484790111691598672119326892755951643129322240085729568899317324235427184939293515899508838102946905085627968232083423001784914274589699416964240493838796332222314334993838403609225890457716285139640236872687981523757972351343960771926484671505858724520879332956418963875689851512185458055607815592869797566499196371476660606186513883476270928148076601697356376916214223936545449173234843706743537936515534786791671787143166984997805394547854820667754263430692941294977588261272665014186164559331796440649801609139465222117365078497572907077479543617523358118472011899117677105745026737649147361591017007636632953866145520456039711608017404833629814962399648176814606334907219891610740219427967250528217052432696380080624971793317282054773449785185935911543965497791870855684679629973687753921224564901697003729760362563307107756436393049900585127495565382701506299825342833612714017175798496850211890043070749748855077636738639108115726299941306638992061356166677307137558224591611124354883626445061582606902133938733534847653993673255844688826333136269760727707835074385641392418531681102890313476551188599612259636989116085561550108620123874560830196807907857830299999019383824249865808491572138636429187523376079110710162854873693646223758713742501428389582064838670151479952729248049645381950963071885020458131359793978975781514694031964633696122274385498325109235178372183802408319253020034793672005247975887233077351194417374366295830960084457711355928902700291754254408060639696126822319013505042393490499591683988288074566348464682553522047297045278636759496225787346122809897705156642996593956072455665548206514392861399603365131055675239194181404140023965591385992859137534747261088533712125348580328684322142545602941562568661823494099381806576673211427447337430648132714586041299729460407341870535172724200667150114459414213098058004670884198044516403396700532446285546723541886521158739710409780524379773489315845502069941250482718174258097108411870174543839844764011917206231633306993956775392161171817194692006047574745247416472557604006370227172930763998177026373912676185157089170589514967907756025842065929471253591832219574290121252310793440025475580578355626793533976726209623220911362515456094042404424162402326370603093952626265286901372555261299915547734146839633052196240470970239817088177683261208653950977286674862593053980726394394808932811265090163983978700309517500255715980055920534940022602795462147353064613403847192255301971901140200545463711029616781604579908341722238847702430093990473371571411518899810014930644554202417714382923034377211239134827176685469219594039092852359947306886734234602454797611278316720835565247334988510419249530595386457009609327878128229429506163657039256776840349120121991802367229084017139353229172902975097348976594222370280754816464668010222386947202829382693548167321578757391357165293743956319086767819453448921810095334749927092995009261310421931782720626708157956919541455413458133420481322116482278332234281190902534394427371399188557707236132816127789559513292423309612644764271808909458436086687307046841772571983713971452776351020437382582851179524365850038431044617973329586099073839081228550340993088724492790993527424046015239274895801701005588833096253098825570032438783673792571088704092361459664061722728764518972842535460840324026351673488871820925434152444242876851392673618603795725310421679132107881953725339992999151317836698597361553118850882163647184447951855421932814482523920145676617355181439517958984551972997020370058461864589638499845832863179750665129890925157435711961085128965349923999888351802800666806437952572349765802554118040644605835998302905616056486451998666084872275700971682492146943161065815547502473614053659769617026760721066678419030451297544863203898213000229800039520362153917064969964633603281006503689628663662155900793411136626291014904736317859697300536834877297945994895678268821504709942050042700635616325205486514920349740406354691536921818879127170122689352420725784634129167689729988169178004994437901394994676189705486909141220057263815387691088040567797689455440039348049909493439039571231057309364888153229259837758720592656498600960189209951578833499719890233392801833237172888850090891617104785679882163440213234181168332934376200004054939843110145187694381517269711390579567507240079608297743835006811082216677638356991289957372434471965278770338197592859645708157018488149462499077399640734149873631064650327135791402635443121266049571875139686494633098173661334756088029431765492891330877993919427384562192085743403754987327647464277636297909070446778141440681647070232411996480486473795759205618828245479873354419259504168236089680085636340240793698108730035177140945743427919835343061968282816155608411983466480249053859372375856704673073625297315352616355330187501018857788306079285967415969375815735176417261584787145753423341736091379714753000537480560834789265130587295911034960192221723377169366384049887404034932609316507008471590713851090035768228781730310243771697856721833589826627177383707820918275462188527737052228434558384657688778028896661827337098646095854314677221394186390360338533320839232928182061216725605225711656799892972542591709473166516796712954149167451178738611296856142879948844458197680274185686692593033333284950386668877398936820938126796485871856178033673093324906629170751658476010419627339924614625517813625515566382389918661439678208409249683967872594226814079986071079010712852552546773154654121797147552519453930504855175479849374988232632804198485240665594854439375821809253686765986330166235144755155087736485063582292955341659675643487031174912717519695828815544206253491654185341277505906480139145351077406743064661462724271522518644771243408995923757507732961860093935588193554337675872333807474577707667094919356686138855384164859756184656411037437475407319371222203323045776780762205484146045878587214701968801589580731639804197932847470316866528709276597842952521394345252794270872124668628113488107703362867865681403937450566561985296310108610459877764410867586771493978430624775502373614656272715724580633012148852705235404261995813101592892986432381618082334360048936446929790708712463227913414174335083059829565640390785808984667414648629724821751468346050896597440915894852888524456376369196527697337642871661885980445792605777720834649590875777541225644604740768587841963049080812482327707038078640166890603839948694672612851632548852876946231887914026285379584339188617153426757666331882563043833059450533356472662089904149484552406167194493810867803236794989947497748213062580502200038320202798501659575558465857366415694799354247024907948262224068812884037066927595865133259595773617805080233321726235405184626830627682201092432062476859131763130974566351205796356674835118769373415880554610144981712967798739774809946513431841138977431675796108224411053158537599804738378761255070976289334703274871947453855948148306732007888930266116272577040443467692751972970113048796563787445772949246929175971566545363943942802973316426324685653030528001725453443105345176320390272473728714282695715942025793445060017098319257784859477951721650616034487138690338506060783780645714922550047150237437108614229092067021197640019431485251685355518600969243845991974237489272422066700514910420651907883559046338389836318449318936381987854437019915972749014486899811743155625821722330797219726382534523825230483196957137044697450314159133193100108559189221962388164665581827856429519126392016839233128543460308995085333401108230611197813896182622409244207214320129297969704453576104285437936021399732073579830995497407817838771901725081170302511423127190712421394234907517484805630775359911027461886919462190669908482173280700732066147880210887034174638197447145231568102769974716246876448428517357336593512895420519119959249606092282274720569182083993272493168566690694467115840840892558127545362352218891605626419402792184449014665576235601095845068999900752187103592274709563499429621441991962020161741756912880957541562595841795566528641601628165988881047561852956827009799279145515426652749463562044428385778206168345689178652647078641080325021832366618798682494048110500803295680576578837114795830753092564582442082669067776986951071555562006753928240583773085268901296656675030620670322075813387824347141027397630272513377850031772020509209481444023691309690073510287160389037902418987534145492342586682254489195907512999187595148400109081173972141414785845582072436503411331639291231729140803056710820030270888612711746364631016770654302023460821557585388899487734640278666424648645419148226772812868263616018334046871894295276334898870710791326821350194779630745472385520297250449832060808470904248728775169797851040973582327564210413535152135800066437011617802858478673028621994151474137161863481452241345294616600599312552020032126429071677142415977760506467681159470805085868346992157276060945279806666359973475975442208135907462041907216886118362500781405497978625312308960643051526999071017941259907958574281361494796965904440194510636372005655574470251640886757466663814334990962429779863872654157210828833889619390561445106337637347600187988535544751346985772561359927556003892175678153487970428186297278588101646740782344477374043931133690111480521806869092728982400289781164624965626893827574662554462074113784857964748896646675010972743626439056870737697099058115961198557612295187244494123660660065628817707949813257212034241737035267233615783103932542791504802204298198833956324785401551204100699373551173865647385865681203817156725826554187308669344197066479085717074097680466183699108224650819059544330916905212649491851710564627214394897574249788006437254161517642861112322179860243071784457194677022809328692861981473178641044520567362349040721467336737652037937853560831023977506655532072534766647811755643387533720971250066782353736981032156353612946197479189534246083100242281619630562244768351182564718732232877334531487786632146975932947237999613033568209629889979683840639317913925824908156205487064063471058540459063487497913089944970138381582684138240278088498820758869229188695612780018244803084338081229325220968228648983110340122845040154175149948537459618090649326725498845143139511551863762795036468745971448283450823338552660834896557955534160556146527990278209611775896731967310128282861379790282992981041422512625391028355809311831222440020749122865500875806736862164445374323960829570664622160736258297055176998097478575091625864022134870036778416308598317140573641782256331245917512047375620742033181139960373564407883166870183424098144995938328139121377986625787269886039377120277984308821407862646627936192732107806756167880628574795942996367002664427178537675375565461590487770831155647434212508147925920424474285144960395349390107056290416974312803206838913444818430770105830829294878392962755974906487581411854989294166794158592625525021504028774450634571091154989739476752933245383102675976567438965164446886240017873357272974282860914056223876469022142671592639877794283208264678600041359167501248271395194333750365821348800850351738083065866459010823734827537848200651615032239099978565257833944166238891862123424516855884612053092475906837379190777333158848576069285377579497868976599090458671121845808749849581975142654612516195483109062280899474773610107855529580633031320312890915227573177177003929897027754684304723115943928813023691306996363216372274829743884097222851474409869767652934638315356435293904924728755999603533428064338293682726235140447895890138010846602358161591287671152294072355370823052261546833462198875086988406022732446689955812375074002877616821597382454131525803257336651639916533474372681249510166450672292261744847262917339291322040381812146853061166998778477807552771456275112436822950982215118241773934133903001350356155958505052341612313444950032486706915254164392558034041311828365392835442837201175902081254328716074289187046682265114482377746077536176292514321503422946651446540511534200139798011200738209420536107697757044198469003521099041873961327372275169109339543472103269924808239444193341630957723084530272032010011111377591903452264595701862331259335860591888984389937554997386212343450930048496701239438403235461356319614594085418923637782786212512269101841624012036540460145965162991930263732366239811873621253443743714885824532624262556832767565140150517249581353700165672461446914342409717822502585348728132854907283115569251149655318725883149342511955422069853585463080377662231677327266638885721856920671531842510421179123746270780830845729604088841829111947758686685358281676696066304885561943359847629371345932534773110923795390666203671488858698652277052283053112085440194209957519179381871335655965336697438886073234637590436281192966315644934338017298436525627993773792843597797249799373198041166801021085936649360459250125519745956294692872486219869298833997908531926552744361037668218547057806801785134737183087007526678368692573245518300675878051081365534778631920404275185774640907757939274089229108755002002629846870319848579974027493314031255858623666367672260272046843732489785341252481292854906392743295714813639568877290715689559982014375240801728460835202373259054157299803796266218743137402019096028766012617220079423286253744465145445086402413237985011565505231157521648297770850096975873784495572117026519519601433637998231874201678533770374681029365695531199275317914451133045228430929447880901420905639536760723072465097795898996083655670096379851225440880754102352374983403763808706732452827686160297240531939230844337286120817884832152394485318932831485048835725511866110231734970908302790242405845715134500618232151053627447887127840276216565255932625633766339013085132798649581091122860819270120155928853764599839649681146200899308337071291709307763942469971805392977138158200011091791460592711721611045876000660839959298437330343618140841849273406021524125498603413851543979296283493254149735450851354332009484580794370682027418983339369040929869795955325780307151807089014924509384205562273792387108559162248141752821533121626988996355613228395864033671078470051487635678025350279295172315542726423545144189878305270429735133977934887061780333640276233199812716274677143166822252383761145282984043883314156504700999660123127322783513657653780253488931648704384410864476910222852857241843725052678727652519539119043701877688730390170866503882459640971910692328283376231106622336671004555767961402632507656467101526872534507191982781287501931592930595526848846454414744079816138851501180928576910784478246591534896994307931766328129404075606063011673623851473361642007426920825814102037953495742615171162114295592603397493681395243840852548621730033283524433048488757888836994187360715035907224192793337645607279823152583085735322132960366493787603069170764719841399652125389113889057456326032592454080971384218160122348251255303101577932044320195244361624511265255915231199166743340752558190402474343380468349048951275355757454631234418412075045992048530603947471204705561873041916161015376552717434453148318656859657591710832958368223018458359861386749135702149015393251678514117201265772456924056149694112036562922062981305225211255025479779951406022435406975202918689556984251848958953341560713245651383448324888702261854052197629648111901529681815398310259416490147628639430787896394695854176684225341461401280986130429574202985843764762079243630122084314276583125512030698629218992603033953420302327472107377140507007589307940759810949788789554225030870951978235372355079669341921515297097491899468683320085890170673100041909422995401583856771207192748656884331509365537458194589242935811807699196144955877504845986111411680785615228351404817628872203958313856099584129689427864914228836722674908683717852733031425832497530340289879314848762987101918399539442551374377298486553127607460001039057311412171332107160411017627470480777172740050038887210452165051896715578469576983228437284796784955122637310012752355785025135974844129750637992240116588822801155592796104322405625890056988111391594029812802092799898712160623811968656074256275250349168129613771589638223185071512824164072970900134275337253031997425724668670946342997124646965370056551136955690237709149706959528575091354237483111010504586889118885514036864528806906795909134880766583220707802101009356756825702334907461204614989636630974605336026523028841101743425523310865275365588407471365970182457501006931160624332287828600484971768698747301474766172785837953012085995536792437260241913150016394939017195658395068796688772234596935069120023638010477306603109690829966340191601697086094993198609380862183895182473508046819497002412913134923020120316396526238479425403212942850803246215297723024235200058379288218888926721065340296407498090956546733851741424576905429794291753552923384700167389546611806643554836828948226301058996327768957910294068935952814780546327464545915949771587620591410185757577140471052309721950925497646007489291656641750269820717849183601677938984660953439497634646047707247044560603457072701812728371865151329775553880505990656842181004516062732527674946472258725540445340422544176736004116312915209799615195738245235951099528006777727053703803893002124824008204572311283104521642080710042686182069326466700808003678338028223326363456263021824639280758646249203421315493397173776708644289583431251113872429007675434994941617659601841282805887164285379650296166188392320832810681577448365877194097218982385618564267045269645961082465422734460401919086435547616916766019022397653019155069120296026244123568652470716828208875377344089866384332724006497004618256311754330656046803877156899129875662154596092134089651408713248934018915518366454185953799771104266662555281325004446177347520087409458782532393234468161537082092268117534055097196871496493773313026107063742211335958565835630936167591966945247414823749529115436028564377859265153034444548647072745111918503302816934308923868827339115949178630667389197400819071235822348201834817691697498137115500046437320039772027226664680993846957393178838064725638473472662565533272700890472225092283445235059205488602401332364369445029223111945384193226496037085381273927006120918594723981118785457064038862991339148706836111871325087920367037812547428848742318119940095591742273427486526004375788509680562189801708396330227384832759976036410825715029661668815825741307722945529798827483419276859187808903564348834240677159602147464964209546336730149052897495612529687561581450855912308875815176135268830837711770555708225421516838416499526834430945118068378582272954972299170242252335885952604384505461574822240086544040312103922096354722510106378419226875853566654838767794292676158033820446155412033700546754364156480373038388871262568325900004855086085923959938154962976599908670278707949154288780074741651611415160733296424162226838747017322847275972323579075574600274285913849034013364474064685941879020759870182105180780741986659695834048845155582620598832146898729301825048914973444214569861492142039516813993336805840226646144862765717682251028603611042132638007580776147301125566704622898481127935019090413440541173274369923654308620381500279477931076285526102461162360071814764252437592322136923254890825218412315479971506890764277064247337310381290829229461451860439672485626836789761953759156445178831894349142863108654278474433848064796698360461365668900998797590069675119282423715639600548783910802020693951848754311582429368061568533524360233813223118200857958689682048423152231754460110137356268305085672702973863546487430159658994359324110553983424268296066711009220565005770664487557541830791412211917645324248528044520613507916970913217661104491548455681504324450523505503389760853508579845743842327704895751133026197221074948843170684368577498966917960957423684290913259426816831328558051090455514376449631190321923140492845502500367355424718598162904829391255312065279915857060891269220674974155385999635186528822417875463258088055004851338772076852039904956896764329502812328795689573438338984502366991290741885526505052707962812584663107322797150101766010870712986590023569434592049670316627360386865154243931346573442557558074084305786614755223704227395088493358238032720277138816767981499491287425314187489906256786073345096861882047441751337607039418065018149591771741600993551811840422017207432513479268852513360225470051012575752806018419727743781377463133983278005577208610014186193912468220009257037204247759836192046442988779586786421264044211312407637635742599941365319361590978789218470528519627855400787172753285300944406515071012967716150944135994463602255207782637862536993366216382839857201876305758491561461074195061904510862866616892439049750176089097278402996460094511844514482793392689237011434743101851524260829802206358148084690105661705439312655283709591338719163417410084973008602977642287245143991319940481515177839681827304894726820713959597552414309149612456471383118302960575110531274480756662014640945145131496762146037033344512854661693893954978742428790856058160335622791664008805973337679297925774940035377676806925961829587960294487209257538151665440642389452004579591342653492247039509640892988131689153755478512929402762791529577792236068428435220231932050897024671861632723645955819523424481434760016178829843037662747930128371055085255964774302791115068018429147154269886835888517683406555217913958851616459997403182370374493901814230617293668376384824194919378969688561453790423778752978889858703634743341826994986924337892301975763524693693294320638945692984199214929789497011936870105905056095600094397317231027395354593661979250725825403416187082510953021811185439060050768230278222283452583305024094556895909742566552690144623382558716949766759368600543816987446490943858264876356982974100186779679198220290478453821223658481172513781391058337039822120840585628176991428580229680940939978947509041854714941546151870688543212038859652590337077775372036694356245082158995094096237548571164060739188593023296638243574714480476920088608891457142340516628135573507857401379367479192412196802062149687427260726865346017613043129410937614402370300380213443184369051861811509752334642255967411342948612474109373147403343186247471855435795837343994836533257865780574542256501672464184758006892441680334973549765946858071264777808897388948276530504972938931857056908740141632732287334240499298236238652464888399901942287199575302829448234861017136619098363311513485529370003477649415359480688936905687314559219768734195847700048942513726893545441647451931134779368634915261053701982570369968583787613655028618375952398792092295680869629161654967939228814507216008479014813730404763180541726383838877367604721305687438257045894330591774231242669037184092169887406701311468357427753347206673917752802770476375910400490506887000001688995393715663623568457398831455617837760555613167451721383133713464969053212019063389340162522772347466491426574657630793366798165107121555902622589046507781225597831493861585350684170716749178708944209261090561245838455779425923069406181300888469131849016817800685015783387530366243995963043581792378280760662301018464371159193919737957421208653887163944273970008136796436926050683560542740948033651029088505398051843340617157270163660670456541245198443008758550020579519483892378900802618135751024106807939316080344277891877898880737224678444391641356134140601454712976695826600330892849754272488450605395227646133325806133477897961136356365473149887861565387151450197362733995587522915292297774919642764145120323045007299304814191872752549389646159722985241848064001616863571247540869416824779644701342077046645877805225091894662049587543854674685561687129490323324228319975051856043700334035845723344774600795324767630328021477030938042666096381887821524176626070991301453959873925922622157506753888863303237100503935814702497916458568964996513091379839071070296355062447593402915784479279915842495549207662636973526874435264517815623789875338635621503142426097094636035124910879341998999294472493635018629116542122200029066113178921739235050997077229920579185291907136858340981765869311389946677050548144225311468979526149411638353841460868457044361069421542889528821519554335854023785130404693064089780282648745190250254090583019899730649953272242656385527695814348638883768642528942610539383689359723264180310584265129943947854666629617731948423637663728505596743546559279955619039560323201709769661785902785391034745464006410679423655674980281733261939860374348407309536198003015357847795472422443764220487315208735354389630717825468561179613426172883460099288658454262535728329700312214248273875493314409111558633000247430396532744196823850399591015626116608783825345885134746689385440213078515745722392636054956324028642214611265002562971512241435738039212265559169799115310149299927999514826221512025669546338052386474876001979485776487107147432989576447943295019927112055005252720664827151808836145082589724950195673740435672025886833895036750248505378480562320496106357691153990965794686855505046440083310624937184583762047365904691316816547168573580223108325409946342780103109279976443631780806692266143337540489826684524628765166548275908161390578069831726161066508055036948027107442398349049644288878800527875065111594096856410485123711294480350493714261671082442980941253275184433963052263737177968954363470891515435367561391763060268720076602198762657277102565595389194358856091206421732739609073280873956221540536062242629366554015325586329594477050016516735228573270433146937204904108122833598811725351600261464017666956120531764456241555646304158504270092518823258077930472819427083776983931407008180375934239439722822281101459198384969018362461904903260378188944687347088066278283349820214759656469246052648285747404447730846611416941971817934467002592370093594083069519031688416960036090439695352788918557266958060991417141439820005700683491393167374547508632145957409796338527937796687886712390021234986442111795047193162803457196155382948870274149913185523961648123912229500193405026993372713167919187609399420061515303740548948089270897360448578679869589129132274612606870088086938684762135277186048521867523110561876219674785586143627362576990532846124865059106364344521488624304384703075090662972446654517096100383311422230632232005101416425154604764138496350294853017686027588008201370884955923433658859885993192430146896508533416540335550164571551730437467525200211268485906658100828133660621223612358260028026120839554126521460203775731660940870557000272514806844143935390812342380067721340306696713970099935903485707715318882091244867698010704581754842653292566416424361193413920968341572079738170497939207562802785068449914251090057402197715176384632160233508849113353386419098180363668669690394153889400983055034674664654113386884842905451042986474847083248117158673038993461498799974250040595910735959300733559295690592277444128216883552533234514698760455424404093062975051858706359075588406721873682453776942065599525453250116374192734136591497355048383886986053239497180285195343717126430398461682846697377646040681894067842240512481110408559779039032410259000004291302523066295299725664652720818075500951990777944048045413523358106284605047121029539330705336173667024558765967696429258575074309835305600488566861642140131902324068981374769354728257899097425684123666632115988690710974837428332817076648195437268702443703417116034338609362866031789662776004724601408487872594317039219618839895689281020970245714713498034710868832926922520989890298502994811413136613456882270615113550545537296465845757599456529373904986146520303193426537830049098708207658847264924500568196756768097782673793638264575083078327063867583110615584200361669691324330268966929495740723243310695892570375581192203020750034450402455090194472162626013263316248833082472295272937706589360900689827576179561628060062533448215978675503334721066550447286618328571509563620990542674072741729701460723073234904342178574527957348740099386523875683078118524007549818885542856983092056286509705245099314079175089846570154862340577624905010585196251841663542657015545948417288783013421193602156826312605083874465603377327980302693452443366662077873458443446705633933334658262974395825139041835420356925993344470214707700210754611084459817818185843908485308395077166921821478615879098350068088785935165807385101378352040289075637061793486593187696560164088419180931644814880555614629659188249962992657718860847757089506941426100624677981645946431618436047753383615432151129326657479167478859274164714835411359320449393238188876559101670028778850751902710417452915525821519760276153847848319633105140852140253479827047598358596653535545023424753476145443913466558174653747494141751233132548174046822523907165047967313517727670055835795261997387214629038850473798816132919399561576616540529448655053913495423765620940419521681453456073593044435097725371692929985452415860725962678473504763996746684298050834561728079757477712861655005824782755622233092117990713310845512704521734968353688317227172995050491399500989097266621072467000467128033951687808876404975888683320022016033005782214853035429244665958383537741680643071457452763986220235670590205250127855169877978374827010466726679793282768269474360983319788118012667660460479711173467852802101864482464283450855945378450180783116372923626583007756019975862998399155430322445002383984831439801242905601641863030511500887322323726411921485218203465919507591654652344318418153791073425799272501146150630878739469482964291662536591949408635430998809353014237638224698129713790253865964039395540759381358235945060579732588282516307780851123748592280638453972562030975853939808975390502963110913875671777555294570004585401738703125453010674078871104428202482592327124124516740045690655749883725648905170044748932744729539635007190650088726799880406043536348353442122087424719594251813497604601701060491221554429815734984051441778644999918263968165351073649284898133484031837473130643252056549667496394829498300792768536489131106924069416939734328397748016210453727076707804710617402690501001778963958751998986381152271490517406703921816796484039835064549782967365238418404436482755670889387739757070611391264692938932068923127448098543023375870300798127178993184662129097954412754499450588027730792085578926272867128012270112691163089941831099363954699103259683900357117382337682821387004708352936631131075982055381326323199685680688072472678573105787752075071255773320310858427812296927723315992263795602346929387454776881571231222814304567313867049938532196819320724748469865634455190025747854320989527649881866384428489378637420776026727316036897477131583900162741013058617702716425119174936564975080029863027495402475334031878462981889861924390433477394768315950004461321427577136375211529214621621793048150085886997183452785588589519413003652058673376895175204406004919530794048838090219472406400644772320806762324962629280934026227415514012309202343377668056701887262965836764502123162870743751180813039085883118667958979028616618425403521699049411622316727456630280596196992092639358655858714809656235664502758009787812074719849194632547816136059142583552574113875582178228286500909774126689886221063970765974728679261733731541244280527583323724926926051356680589117130666840603260594948877151156679687395537838349926821059088359057829863779661192372592052288357664733509777751815290004032936058642328008596831106960198125920408334822777736138375563485996869398202066683060847002714915148428588572705777433686642556204060195651683917134269843158754320269658388241200209711297114584526869405366881477164083467542622704327024488022803216377632162298393381504731402467128057655751002541047197132775220224499748612701248569996031456356761829988066503819775347436726900159082777460006945497182135119093745281336775897427895972910473298704073534135131446539453185589005442520568382050991143130475919396585344353851512378277595696422656077448142702328812402626671055930028629230568828831926633011570181353327831814131856256072312146017664512440592160353093097927876380182065895527403675312652546415567610920295282967028539345773025524276284222317348630981447410364701469690549106959922358002817018477459647918076113734208316313239799984822310442531747891019609891591646463893749636802342973641517548355132355443164674229201526792764928946949229087573358365224694253934856659461256648753955797238466610955643839980068603711023359985769328362788925685564800749411654591863784492204083173346297936181751771194924289191931791221844271830536012433386121332104485265037584965144646352812538594900751899918232912195576305631712033239889859296826205439608789416672502300591625505401553160037187907948836139214358891116485161275660535819597715039946192209251352977290645909178063943741008129140283059869975064865893101805181661269002913268205212114863026432134620200831839469337365037383413666283296230927789984141854443564852308889639184174280516443702074359156013017122652965955958962242406848415331740190279538178479250355878890277486237492852655156258039310817430940610448129255849680764359902384366162069850396400562123055462632767163021440801700709682144229372150104603942348754908621780530687718528793361860886125805145072552469788147691118985447419004815355740820374780015057813095634344775341266500692856075170629766571745777086721846793153855941674154136612018158035472951004844139008550099380398614595393337235182841664926622924891712295068056486636494896644422724636843151698296343969299730954729520581911827639381218909360763529106104271525003500147982146731926652553377450716742412112478544398987822528522126250292507785071096695811039303804431059673500986108669264225441278706776807549231444888599722559306921285339227998342308944684331897675443468676503512945375301393817138136392985302119653149248979736864162904568223329903138106311556053377661296651876753549840928433503683820689918798059782946116971032143926319434423518368589832112301412609146925261798337119083331544749740247180725128280363950854985724166006902249259334210190829857303817624108601181645699433543470416948963985292820384380590228586507508989723426486834798140559451830124487342884615099239274989265143762922004733170644331423676453478090363918459713454196375230533995642237748995925641306980458448662798948048878897901443268697497881761520139480980850627667585966525151354334584632721900393120458853318324645277429228291851326084045039989515702897986291204070814086079861913909620069133133086486208892119390803047848937854190120146831719239261486081939802450088009670198937499329985738031982306132820790726822149004514690832647990836574442868416298917312071037348896274142912165640115122318646574909410186507098664100312368096097262822800153520440134143424053965417956090466490196411848994665998320033586435625438428650019706100528885464059191923620118363603150055117816919590354251658797194295244293011928905504674059866326191548107345528401797819387594628229147529984027639217526875409850318340069054267615364107701742437679423478689535068335982393363053236474548911014784610024851566363810178719426948117705631206982248545307335314825937718517691016433315112465256038178178596890203616913223739245324709837572603795761744546804443887681851507569859320531563079632242308893539646213106176691229613418099484099314845653851354197059018790760373321870748396376558827534991555183502782084487356159165749072322581524924837179376280483584350335323258075042101840771015256597164366159602749480702609158448780314848741815447749681869248419726986333522856196963332051656803701820740957220145361446832324559881194747971251387579464026450725055543393208351284488872300546783842249652700675032123843458361349352701409635218886673557477800729559511057997656160266744399468911520771540900572021801093767406210625385143109072536467947212938681609349694845299733466827879575818422376077604234102663005482795538682591715193602708660626803383766758462214210483913035066382764526326139872730722954802575233091621137406988008446071846772643116690251619958929170677145094786807020259941959252672847473820031128598477912749719981571608159865330338947096058981371727476557868793557214816417089225116985300047720284589048567428055553807581639104593615251094360042401032803548268322059533717008852606985343830796914487646280378741053671134945351257043678988392744232044996018374923376911163668966655889262534382306558675601441086263704528780494781672843891174976249406987214790991123192005431958576491361120445602817182012495031974957821018962259385761293202127564423684627369046953172279495377490937348276860388309275077928727775539043407890552618192462647013118951212233175725562548936382591049449325498458977341382905292164877016648930315811379730728080271734471561204021910850304696735428687244703300806316819562926263096711764126999141942588882403850785586718769196653723463495466755440039077837088167023528549967742384597248257886935773819884663303689170325475431255258750318989574673926448340675845281846863942920094013878882688999082009286243821506390556985878011171350886339999167570280107393938700508110838120953562715802139343802766097739791521573619560906093610776797652057457600650439963765097408547291420603634743704728008072530212818593309477515173630036583986718780890887460026687515308893065554352444255537379502944291601064250432677096890551997322286492165087068729041390187655836454202750287639710049431502914952082333211101680616537079179134452536874904247363423347774566820408261559026949239149917609114329707258902570367138894543385214710267298359227755550304778180270210789764675692098180043340350692460751870254281572630824480957041398105145340846653693987668434234675691478248559393524835169824813752751129463870166497653803382356009231688470029876465684338741515283681711867183125520739230247324029280360514555184582281469548767619271053398726373180266894459483839666781591266748815983332364253233610605019499573640487145873988496014224775322265959036716219039060191585567527534765959939787998635368387942559115026105426425099906662718490182836633957689003131995331792279875558408880324221981592327963761738501513675875157279595847225693735799388789413861014030563120310912832271134391920692048819105382170916944844555206555438883698076792932019777183609463891022632509217860585204605904515609707389778374403340569336063266804265180245560738373465183283473637690406235399083681958438774838613190900992497714146823428154527425196709709720761343439931271885259345683932864452507310674528009741663711830357879773774006550850351170165466958778478767212990594281584578762202693367049948739018730299913722389582866279990591336824241113207990638471621147323710295424046846666535586386985328822909637054494113535461918159440687792129411661828938276282943641884134951380794284384944884475670699848657319790785527116788166858373777045291633817829158114899788081864556974055178666749799770479126991974189398014117259762741874439573922204348726079226695681715422163381933034481967717888603255507613798448928475402122446162700563886462701052006498193333424049679665208228799312044640729824342672003277071473890396761726685155583871626405040210595312002693689853188256344346505812132793024482753924507793411841567027537671821592293000930639459463120981949443543229686653615497645530324103682465632836433263512442374578472706989382437011948341985394434873805112934074219882501856144404705162795287779509842720584268866578834858527389418594812987846572606861205018139284046135796220507501830898449338918740370301550031471548518492465874138073869063365830871939162516974333151317863428245986661598050598518253020901807324390356507710168549895066225238121438106061478243641646811455830332741325826245285527909067131559001883235710887975550940839029650647793662778177025433653530238173858671543421771135603281432690412607067370220709023525296360480445414965318222364356543907730676320567067173822156371009125683806284008393549765607487732274358401914574695391929636352527108938371867123534049364638264750256284220006504735207147611692495970303483221079403381332813004348224017896154275504150434817111240608825155750914792290244135751764066283105211475391410987683943613407504418241408478578202006971741956894540334059178566081373171908461437411968846053046216779465721237817066858713718799057982497202631216777918034743594470547598422191717137268403984645904722749401555608499394448119938224093739550540683904926693274859443612937270315865947977816587075330425083732369479883359612525558254841371955820435995770057825444476044124795844017189964359066331792531905324566103068678261715407374087505042333032120251071422513558972643436322366557913900354232191738576804164921890073852311147886497854007613623593034607960367864230764051825663782500135495990317238667016688063141978965193173959461413091039507460115413760489637082520915474065059931345808302303916053632224506876531584636005614272176821679032060196317497789068992692558956410242355377420140066158010358181337359424454855754317313110369706796643239710534576250461874737630743981114418077440852836924432431410324612497826187597121605976197727047842056225892292431297976703407087812398915664896237996168390936821232349587448833356856181214563400509277107152786963990161152204848670383484098597471173783454022561964118574425226715772773112409027798508090297492867031372769133797744080376239945775194422033833778010682846673001071379528738359576228067677121437626692571130175789405755680763699228524402249205557834172056901300732491285133511849946469075782253154563201189054778858973113821763898122810061186349204468722968878295653712862339742043328502715046610268223666530848967848086411171782720193867860375447495860165759512944228876951133943506259901613821179279165852680518869281528591109340127629063350110124921556054619013318767214117253038450309584577715581959137337361472493913987926509386694317778953851299651916425520226171917674861958910695800411046921440369260112040454109693959108244337964577342426350926994261483639356208961895756465578612519182037226707882368917229240882503753759997928659884624490050074063685959922844989023470145536447080976127287598696102657583914373406560608460471318859036574451516800628151827695699638165342227736806416881262008107895663223976226753226520587522510744510101678239239325689248163887545576380840154984545647811697505146520204255672972749393439726311873129050705216764394302423153854333780416287212160642216373890565949783984462876687696114679869411830894396756768482721376018891154477781836259138973634789669764661651143461032665856774288886046352870039278094319714062475806852369787367037572425257704897719703750540932391582533057492369976359730415504568067327148672330241404957713148231847623458693398743562527888651973117596490613597739908310956304959453947867945734700777629650725597965584629804199089767809901890017142623920181562353079775307899954223956323564736169742545114976773929608715671003548067575232950155819479830967009702709218514238536802170694516385785609394890180571349722176844891472661108945311879850676960203301927283398435254291488231021435916084647535335872584699805138640970319913412132934126952701827273421971846817538316776555569523785429326393790335794905137662656863070697009579695635786830503825818881105516013417716996433686306143882308870536943078954704658844789807347014654786005410562825281922209530800107770110964903896391076834930987809663490228861205505237961293245770951597527590867008093694153683363304646319246778979063975795185442196355298385682882775947174046857036739329047676905341147169469105146283877351004128972858402592330776678466432239301286667824467965935288343384635290777794326472107159194103654186502397460758061796567211759521526724185429305397316183250720604302347012514554180668049550746063215597541056843421754785801636125303926802895840662183190954349396689883400936486043990167958734159963245864267873360639038916973406891072121912025520451034387894445321134633740809124676071030250897480676563073436665829755238763955654936942272992132100424792065181587536823667502626566596001283132840009429840539627298437341330894623838638795022981141060884984016822901089682641049529295824578439768742839577528617109254611031497042795882746525126170533178908652601736815524210549349986087034141189032924593671362928068516912243345731756238896434000049836015705636332583440677932290083944028382643304515434215631860766238749284100209618147420740578791482353300826915826118962791420423040846182624669932416017568853949216253147575333253001566858384095698196527948051001147056714277673297600076795486355009448729751974850472999258638720526027622470508242016036367182059151663316599384995756763290622200578349706367542202190470034498357836075084227139673130852268856255296761266681925073703695362446117263880276712811118714042041321179300862685653468540468704297024169290679211048735318978636289415741300166538498542585837200902812468086157395983552649393496145068357287559796167010044360607399534277085975944643145106697477373380247230991885113517795541997367845611441582461327527293307365772792286545562038169214158370180351734822705250855066110562661261673049442437755442737098612013633598786522170666925474049526392061574330644500145278333783395494291061680977044168045900333815840871390901198217881699442308898046126672197316341658203812859402018781804898567606019899741988670102461947571085579484179895651809189954690990671245739843302012011768542471353210561471974589650536817596761897711323307888254771502861863635743283513860318527418243955865472841611196547447159463198192841640490710968252165263936734280745503867603874116151121131760406798663320048259838897568551303773473630275279220839547070319290935207150912572207943765396030852281596983242620190340953688424222147344995556007963339604368580894565851196817911132112572206134414617328407717274556509748564212184701375069867098420292738655596023864976146385093305653883740969309242356411371621123876448685616920605284681250385466261411084969503835336058611407877085213272692756656118004276458461488798611859081802674708366949983234869497018976826683718872843189466582484234485203227963365001905930752469287448831722208357442280177153086544009879016885152517289140394693808308505741433098173798029782660155147254147721020065989093111313091129558818239788340621366403192762536559979950755492632704873594251012463426689682918995923541776736361682583814403777394167248800044071851287042364317698499213310972211318918774150799209219689435567202686788247125277248583610667769684183380441481831270033620300746214176529702233414611606014438501001848155969908341379086534404023741770343639227027257232621589270157965016540893200789717946351715726107264403066802696972866513610672174388928878136059011295534513069313004395591323950474833784220255880547965489279106708263969548981712301003180509612564485004628537012252790481706096872951441671757628204265268039947981781549817199937803518066540947004486680734297884367844939113914362298490121639953200526064167453762244718600263711238108769157845030267137211968909046894106814543045292426430973764786011487023580806865297693836824396053300868824615829514457265916698515402951766790734814652510166055425681356429768777027298118012115931227459328545255194246365927817029127137945224624047993105414557068420922164073537349502614053540989642494191512714900442691355604922934954044138788227719747372064420065130338834854202074973023505977596852323834194383056202359860678409166601534423571286590355018953558353323113085086225854055747148755008161228179913791854142854974111219034052582645098599218833862761923209522366775581280635975873506906786407192158418785428376328384356489760856368729760088546665747961039662980025181421311203457773077586598279124511399795687662644291695276095593938058434025793773061274684617981952343743283640000002306183582744323772131702762621512994795232101166787648459536195573885342269683215627303136411320541406708383624610476912751455970484700162824541205346073280804527924553777215193525533645077135608019149657466915710709071231121896136531970532683352789287524483402039619068397376577517181862773733921640021573286790970164739776428300776012654022243966300422527601488028793342061115081924118719464042634022912511155700137100092897701584848987366810405567816720501544376462102450958106938090564693569227295610997362372925669241737484345346857784302233407142886099726493913172609500627495659552248207131583596086172097042368991186850550271880062586005334645072658568950451343655171787346140137090327846496022728422886376547457719181014255381263692110687889988449053420687676871955761015866399677138303196672266432194822401761227289978123733019364844806860407313879868719607672233096242556506286222082541004740983239756544415172581611840327719960712664511836275455643843249276088891536463237252919007447769488329399709636044091465661497442630608031166783969053107266907471730399711708454746833622071170798326719793219288242622912215808754952748526093970456520754904496434561721601454002367457049684093540854928456644302203071019683065876921159416501805581281131860149777554627033608019913412334478856693621634590753165060511910874153495498963791263923772255655430737557480411983865383525888481154053145675802221799424357172578177059423397464255854495033815774799559533286461671366980096178900015260607106663762407768990324500995878456454814239380747671395161619412940312303419381907762069460216370209397771788843950542684583819569512709535945628092858974078334359472957221726749714441779858532110149595695758293261829425500609924065429029853604202393830612606841839381035817502527949109551267879378995707737371889421030301865077364981799898995199992829678693272073032825151524105124868976508719488101465180901956322148192185947017585678736067240035691475653248237702852640573584773762745502780515373533023482123963363947979684149683702660022511147712732709799994741385971092873908036853759167649335618339384843771980728140017240727562525048005978863293305007983839299220847703057039894251161429202734485642546452025383239706537062059962547060637229125946946893414314122445172989990530871868724904068319979009599747619818669318336715331174683030832883086872069219978891784567818141332627482078010504891473899746836127865075366519386287515139565681934147076031134619241293380783363484209756587725084332454184720175170026246958152968260428479226400108224501325151383405147028450611611725609951158443757824990555863685304879649947313314421485154309740389125437451863308177203266578466375388767227300112067601865162526373989368678550048555925955650986084574990206963702276227081091423030169322832339246960433398260001487263186933182708844846440137903391794498612708794203015037769856917164325598317143685964751250355013169143820245882853010819455066189016653828879848803459335706037038765480455143903923077295741080827275710491678162579761460680599124322117875178962057511267278518337314779633153725173756980745915439168436379886542760475403918734302565772358474600156736665791568515803255702033620648711201788791991299052236928901224894053352330114539563370352510416092881704276408056547541819432458100913151648445420747750283041256681225260366423971050012340281125099363558551998849548379045448010272373243896354875746414270872488685985929307635813294376988610306408658851984206639776444725893986324474412471215871938127331933143307784344705924759016390980474373974239941683763061024485494650523274525622567590287951710410181052009594685767115135306877551526975565815828244150784280312936830698250621727798427625587892472086300341867062375715864448651589739188486424137946543886551165080242967520112148899452554317307571280439125086711677059782469581147368539564932066197636528209975639539840291813420623578818834025689826966782476757871658637826896786646825556236167499940297276850979768437946415246124402936202778661779515630253244030037113722029684845752403280413195116417824574642782545469875039604160368418799424237589288962900694671736044286493364964154974747528159284622827210238080846696948622128371444283959255403363765141902569120953286585024744882717387907317073817034081378340631136274585402883185635195973065918032433657620531152715968776253456367048115455911166136904621125351206413260400462042174565526393592597798288550473251602226983022987018708582945976878289835287527966347701761889208163106990679785752947139033795728003319654587512769014709037531540160071579187721577867101180803021448532254664563692773383287801766001288524139361580195547019673550211550545519762868572562318194008329677665999562644641300602299895335805989048315177134959934979475631694309645087048484743927730060976415557108402851408985381592611574337559121817889579368673877169534372275508008809037112317842766415199699183975598392445350639877712416789667190977943753023605766229437839358786968078203010027319795334400251854503635055324402115936729336437696716550977842610390579803613730032285846206294652282942356444707246209388881380118617442726494828027314969963121373412295059567576488617409826446696602670457000499395091742243714022742159125844301586278397856620308543338310030900504257181539169541656922728086139471009575191201568031624708762219983189416297204410514305637706797614697836163532600638698820269855993815374524846103049899350022305789873687121957009305736688907099529596198756297573557545390975120390936726679472344917465309320669387322354379045717176259001649989112596635514608074898063482119464729170879300712997152812653748719667924777065314872804419947565703829748944707414053899174323600519871914652356103098572540435939486966295654449276103829437304345426956820106399976109811170045816064356227686827486488897743835311201184576902970162854383792770414391815411559003413728111140487410233453328619878379496853963070657935894593432151031232720847259840895731720132719261127341793401517836513352380269686221091037542914551710725833954300902860049426132271696534521640843955404775468269575106267070699691105245154440951113346729496109018000759584677714803133537850657496260109841841721492050268382611905545407014711927920260066141154638184121804944497699160770168586921325024796552780219628197790284001524186963121141022086257342056773313345562005219871893165110973705317185266221159762259260516067852939397242220876356289608245737036394865853185665674202234590490942533782721991311024020302566330826573819171157200329539995303955566142333788250783431114600745458253157405546156471421515830703054391408413356869920104974993954297051900171411557297058635209131857610517821432161824893950729309753113952544391093782850183452339721220326013961951364604395526240720849895429322485570065320695221645573504824403898658892444026007696153294819967540347547240310840176783266243743168410201897889639058792774821161152578604692578875777348359606396930053130889835145134077808090211091217048284251871039285561376366915921271241388732402056616871669925324859392525028103951712182584374770250322360332336523782397212161863219996572810881607321209233322377199179799821767620388288714689494950340330241602541333492175546544174147536875196726379370032024919274327346298710473193933061186611003627168470692974048427975850600226396151638014414914074533803614425962138281367783602487079241370258046247239598623875792627335126109513544862031481924961640270421473742097242185589891822168996398032668393255910837289144085063422336996456670927656415226286109929938818044906932728364820871820827913895330893293818424913761603089521881604655860553910365294373525410214819751598834716937115182412145440874209122277330294580660604700182984584515348689732646288301972793383324651602336487069691955764803766389508314391426377120308795465042118717783025814228676065558049307267703347470141878006578635227819689961781206096556761543260542345335143339518790083283652818023059042396183820223611451268724106252121466298165246483664997395736877162970422786792692985324558347099438365977950270474986487385726026428364979827028113997873420493424901925287090522353679652984262547253104261341554758072390692960150305409315451172858683886289564314167313548260856880132612026294460094841751727585166705311367091612248527558960055612584793745011662889582553936315940004685822229439342982426286100855528247592685324993235626764128496519051570385127577498036742038572567866955649801964732768265192181735478991322621612453606331797032472372734160181310548993563903152148174330655953544530113431095923343530099483045602615408495163204936157663119364318702556440451770881559591309910607817791603004937019795315972328272593286796652647585606391023482765377248148584679954304766299153382147545832907510595130329772978244534987384565775001559104689619176940688856113002466471730226929122582140890786550693696426465904530085868963514203907266740145009785983606003329115511511932074190664868718942115046688976836635798153634663031252045054192364495682997238728745754644707615646652733530605793723693914065115494415546880237600532782067268179564262663327077291902143603421647105322402585686094812971159390041376902270675717800968668520137911189413164358250187302304902163006962225405341937201652880865323826864358608478042466112380981082183169928089911513954301619050093868063970569899411534360225430281988524886774045536333349266836866164226354055202176086306063765400211614451310464050324932346864563932275567733349862197147439256677150204194362301930228537444545743032742627634250340724812607170402853533598613257904665592342897779713476246765916721239129430635734633896450310710328402352841916894109497636773218491042117438109960308169373169514450897607312407292524062484257159589500200913947924046149510333394084921584745712034688097829130877852586964358447993823808746997720149124312941412591588579833467970036424125996801312663409451398067767889961882525097561570233455262609617461121424126600967558740901589296523465881410457677960046208640665748688707372928913105777125501783430007910883795788389111177052560686544276830689966213264625886162379090376752431160391065564497703667266720966384707069303572847483685624989424150795182276731885530457401459122628090081539371220143353041278921137727589176738804532467764032031451841238682083076027358015562572854169495057310927229894968584265054602225250089043129041163566701197708124134301622534117532443067574513588976125242371545500060644152112464358641200540287137836190928306155919389245160432822957068186107056033030372930478945327191666728905823669055342658603114461768304807443041017578307306675826512440558022752394026566345678232172738758938475884478738293229972109088702912912699436740161640031758941560465563140094489985268286498887893039772448186692516609306358358498524925851515603269107956541192061808967248462071426902285624840127256574132563421681123135243076598586038327234249218724010997489172075559224744500179056729844691184167830451364210892906303952969647489762606322726332213332448443795883955392439833747144454665073100139961895027054349677471850210341959532015809317293540057218990024544012690118764126552883194398511916926490539976609752457287813364257702693876912608583202144571330747480289127216417453636289891029366583138813639971011280517507661329693208037537820200874513677716965450035252629845856403155465299634867059580827342135057449470222812582977314961546288514728019177933176386062831878065765659714530638720429130513974136004654234438504679021461616871094197119751668042270364278940393496606405055806523923321775591426081137916407673968675653772782091021626949342834078848332059243990791198132124685902586277022686246382754436396789659480282553695215493994092857413105489863182250169719523918151359627737934651685817723741995608091185248902804718685761512414951093340853221486677462362891602526861588689840994007443520839015709212224868664816913452703980801538312386866164305108575971887630889769266774369877570109468389222815511643662987065303123293709831058469704920091161737804389127936896800023461642109490088326404431087849331616843766012757283387116276046932412045090585087917828959419783716960587367814400854733594477559898442059966474121592638658304933737242432105219457465535079717482428408438863106273051035790594006109139378017651639459487779722233450709126764769122023119988380688406701995944941164808750822648383012481940206835227128736523778942593748653062274169652501198268700449769103297885273329689550238947451761593932085699463992077055472903870063891230383076135790708318371942696160740506662084382700018619815229750702122199752062383603586300237250960165493356994771933879498258821911736119229983857050936518548083877108240782871245557913890518717499373606724285597263833416346223867416699789651515526356383241662572202676819625130129097213779029847268388686848459366650419141563286841568218197469337112401941609590941793461177805901982357085378792884394071391160718513424140531283302425342617095368295481808158295909981988221978992196215227947789581613425649827341981569936070127594811590640823136771064679022319881152609345057622919271959194097578691773299817553657772726355104017139916074820400886333551682221584839587181320619023715122551902292185372548961100536848402165194488498338038362047144885190208247324068637997947085413488957303241006762192811853004467283299305856061385096128912499392137472539776475455443247735973156854907133100332689164068983872124262895447173519830631209506691969055746392550310785950471008586602080426507845841543608284567057260496566043637529711809536868103053698767486803742379961995042936412345299520697087741337439768428900272548786314282279767689803517482180640912020786187870062331684995902128886316162267444671133821675106946022014518224471555682397289794601702787336155882451674850266512092991539158325792994634007370515652000609696144121801121297320024699761997594532201854618755398540449889901594179832894443939258230986667535022715419615467598981093793574690154022840828606575536334160179437491469334752944898547620240304145131337040412510896265189718645621295651898143182214192751016973569518770319289926614161336242508691984582614625002205654962649273065942992489885717680730244896473797686316696009401752514714469419243002800623712098989927689725867115995733861757769619509578992502735306863021622667960662044236273829831661079659178080202001834480816475647989951817836197998218070003956866180149525155608780473331033452649168956413593239740053504714335161215050797024974021576793739050013415535773805535140889906368826704923777028319741224989443292149060583227803779490948336453397405157523132683371039728218028463482142430717259346127239593097010866252701600454091797738109652020406828589760503315910124924086678713125588289314784292852435257748225821572937575685761118856247567731311610876923290823510501850948029641869761889907735391115174614827366082762635298449590347466986469464775178807788964338336894283802649487839241180976072126257555247927346127862568288204553256456627362304247366965904210201703110630759106299792065400057974452242887342205621047112146536121750173049243130152656397174141091246574412666752672580172454385259870348708298163923669897499987328199330833110964498418260101832989534929489702343066990206406371792975535882869550727563267341068212117454845844576100272694348931159650941087234784142852981784362935980501674375110728939281389771635766027559352491915622421879639908274856757912896242030356054709880725746127670498782865785579373859553025074748649930531901946138665799815352723678575223563703785949376328631956716858470961985856982282910216214575218564521743414377584001789919658704974344223316655658459114315022773615647883741326347552956812306386175007373816153009046009154548156926974159774052465685590374770524894280055089290520181412468167327492429489943314489313053415535552090753200000106083292885373814266464052443160710700560871817540824215726623998491302023157696050344514640373627058383109923866503682219575478942723981996105059891471435431901812837550996958003221210323481387448272428911745028051747202005108383684893042213409538997269477552146795455289622144605772308868048857666803309293485388193005154570682042717487654467146711749919773863981253831254775507365552299560991623975532315092836031540510854849808977385908597604580963165256207151245279537549905576232114712482158071197059716323989123563777943937299630989622714385038288971729812513627426528207053096896430870850426866541955047841071217095953607688458934159718295574370914798661204679281332206398923864205263480509527465048591228189867228286215939760050818828569298666494042413722971552227386343040483761888364643572957877719536114760669460528394824429245928311173280163709765846455608642740319603361189327807016708002189374738048777710264320054526290128089507174198519280018301718861765848364008894940161481601242587330655058675758240662767678811366437980314638847985374020919378951249620653889753358825905029803027448827112691226286031442918164753112385943268657809018074484220481234083566107800367395506760512400810551833062252239021085885726507458125394262557156349789971160081764474460934092936465623754009709410488829834775202049506486171422636366796260484536393086283949042752510402052019104314344786026780555057311685873350901525038805303416599230241270561667836036183961088898591809768893334872266317021070457995036128011535342778925044194409542690764867519996433835543729994000871412742612215062330166701749051873130711590932371800655108139401190439002119955070775396556415893434541323901013930385738565800215177710686162171143477343682415984094221236765225284923880864154395163077914809913050874057600007553556087572482720456079814333472170848614321829485396077953555964047348401371032681449459674151518554408885959220234426315510666780465123200772186191227849118953977362589183830261397099386782010714000834355969297568750105392605835082280382742883877112050249155755228335758176980743502062463430093696885094642619962153919934600945241679507084545772831318270275415609821002852119870774341188949165013794043816997215325549992953302825581004476882926910347137228233172695352048025865442353765835922528789443308816368070533187133304779667909400263946842627914616687430535147270104343448639155204671299439696699762854123420807914758085360438636365047013975999139348298900636646815932012581374866608235243618986380599502015179396852014398271297101540659369863313025809973726646543509477157110649927015795253244503483588660503423919340645245698255213071605243337557325851473293697310310578267393751237502835754162883636877444749572973955586473565655006668619135563010078521564062038320884080477426761151068114869433891081440330416662825481458158894874681691624451658668499568373993545692459143248962473895040341778320338918862327085374255657513355174071192787213631887941127713858833564581967886787473706685561671017241043410840733550536693482544562571192437619565475795919777044394972835169457104221338695298299076002278004120526251693210457588578732908211987547686399557329883963279137300643737605307994078571918996879632410720738683203268148477309588924501953427665088025855778741534225607247689636165206314057604666009981274426093095840040950121420435256915329054914892655650329126901026011176151671102613392914441523288253563819974600360168908144340638780481345192549951720824919189810957704392510471843319342851524120911642167810149205542102056697349118523674035435362503207903488827270945084501236642274122561224700052691618551539028947142466925967086800974400515493901607474141735948997201393326870870098698329778938120879537743900409568223508863378300269068566028332841984563995072580176089365055756468686092994240169252719480869827424577540226262648529860516901464904946250610464813197060373321234433214590256917897250012336540870980648627536447714172278968427505903431956311938158353927360863270071181403447988446336307275014857299878124138889769421095067981044252322169983770848523655864391928404825104029046646588249380404256756379825484399496825833947859393692773617418090684077823308533566281574272152657232052929435740238368301881501461340642138669667314140902688242862984402518979707602974589761515902963506123147289950216273814934633646080632282199295991412779182583660285625807156603170418136819907197420233009564344864611451165124784924308982289118328332523026655537867645120095560096362891721849801799989979504031735562115506120584888441452338323584256541560615372636140203448554322383440862935282703291538976963581057316929350194176473901347400286613901856470176492816483154028130562208287389794797699022366368100122696313094966851576509809871015374711335481980160453945896979439827415141101649045750421325623977000095963128452505871258785332093237720897581016432313938908436425097027408950588465362737683865753518105387237711238390229724886177521049346235173187462772496577434093294249655478041325914888912252808607937482911714631799012409345988323484926342453457200096156454189741806384980747729002030685117218435714754719503766562305891951755726428627240911475481177395019402538726830320436303424710772221115610413831766978642689136377959763401751900572902067252758695132160597097587527458762392111857480845480583888358978606907413828910134521247291290056916960387213365673009993094023812413489053417702936298466111022119569722536256498668000025216569366681551583891681053640125786457052372825042934761895240137148786912707266959550476809297754519401064613915203170940530582238226186439547553817147448017322405332217657936569618834669867426934476470677248249734483564256560483380106630423365007525781849571767418530374099986968399938629424816771122347404419595103759651859830593674730197134117649995051072375699254004973737076633443030777416016392056139890054417780845967204360826925864696903198333158666986991247312733850819185103386045954794435753819002708588802361051462908331962082791111557089876283229697299871832264898079262567491151661622279451534514882454342154013182955825623522841111857872060545785306868293305156199489848986248711447448278019872317135472691822419753616810580905479914047757899645495981322761349718427271711472447840279165376297686660775644259265480032659552449382753424769721593875779171209986564414744583765509914830995471597288745059914621586493518952602320264501175461997050586532059764385995016656092764609379874242058668983822320643243208454029148386673026070833806385741610956160330861360611961800434592649239047311115729352969584776682085747784074340144510128428441170735230214151168256444175019147657403759804283290400620594631180461628382345728436494233453127847377138307302692310963459991119503389596808335391615384848516994864611921166248557870093686827857799614662596200066974944545277903864144700995588356342606443358363487989724448886069853080257008650411006033293304864038687553275748247970629680725950917073106163210480229630896535964465314054728588459270611265955329094280213089161081035003849478096489154939986866550391837288990744927955250846394577621290158960404960245083939439278753819290255509001876901333493027512894954428845065158020071099563102489411535622972553810183901244657997195259665674380474387836342807633274753511806035810023430459524326675049990838846680751839152185081743190285744005509079159670524228361878614109104855107804778968282531334436073629824069998823543261194297824615680133170484203021327537300823717964623367929698895000716454773877668204593514217067167248001437369252887268348389572258336484236898414602148071533631021802435906001125390037222672136443254876265509566309642428222514746099622980687860370046268376242044102226787618880290041996264766278379100348929681085472068980476075398677658773587946884737260681521041557812411567885229694003347187045375003812901980446261258128950888149390561436316777087332238948900033134969815524975168285051761006135069159173666429306458548421154793386112276339730197977383846252792740793891677481170047317787060329597636063444509175803700514086771263124231566601354807106025973664703743646806526862155096167693616469877301946467337734435560673051128168318052642086920619428883931574474855198876616852614305566301046623174007308584432741494497991637808545117785234206499283858315005141212361350517482278207784916390640059456789380248317295953978962513034250089088011054408099993440283780555362046557631657245069672631962298069588005845701843991182011791611827023608729628887708661648479477969144099614331611484914657474915948400782622321210789916577003102498422502593919909875050035975945676218886542943217089012382344587216005246562400199251283909271853866060778039570018432563862609786359280884267551946981175340850867043011952285098924598952260408401264030605743878925008610209690419886100401992343919888904672224912936328250661508510217056560746569424660631811712190485349410836133033212943270720540156747309288583445772245472691516038047323150417431254112193251447233505375743931816400943502130032141272206476659539778602229045428902231963397572583154022862613224991008111138098059155179453616500333581994833457439247441826159261019500897718707511057430054910302089482609213399232426534985475500320203922692003329058510977925952868400087302700198198951236458528545336719877752415746558319600739434906895063075352147873212051723553715428580641582729617885124088464075288912182063110707174390409295279776387311635181818388616709110034398024759909799227408882991192620926790075163753259339176648482491325826757782895302833929762557613190487396138211615564133707523512447558634274695181313823563197078433346500235667613990940430920855405077358344710960505310510876567462495012470377096888779683613142199664018146550142722940249328346322843624646620490967847305569772924415765987882752000567255515209223611599499196207677102723026908575140474076007343541602502186193435018899926545865218371479488897428189514770239084851739248088588423691158416470723449392235760149983692500698602329052901138986614814552001785854155621551615273698078755627776139637607645644072438687925403840406724699716413629633266927114316309364735862522777665371875624375243209200165989063845568000455015247741721196104265964871005309167875166719222435347586818519639774075668943590228086814406870169752071158217815324264936907795908738447411982374268462502817839847583069617104967124768490687940191046672367064829965874385788370691405174090324120298995942507377326298382810072897673509162345726059187879452190070014203677013640289331945144711572802478633147366112961432233072419927021269958427648127833125197748019668683974559105384987449944453554374998061537836982404724816760628129069194049834395063438141689291158165478223570391714419806605433925650870512253704220013832058779413896331673400581747135852232970054143594224078837301779417550136274518027668055278002605060781099852649483335796474895294021085826067049669869596392668357717819956542363203450216577860278618647083508389324164846969344657171657229942810652473874219675176939829121074931727512966772311409945613502530637116740794800605336011560028907040051806672094843781263440475836741285808182607043822704761345168173092516590342785629895738384578798677259005475365030755972578660246700592952489140341475893468843617377620122815395538248764006513235747701225582485877306118196979613487804299717347019753973978894577690513534050361882474949335047867317317391753407386115088335841374832692223583989303229405906926405285042291979710977158763947117805585294161858704172113756729156513842068672853803085728736924117568147533141201976692485254857415559880440002136812492604889004668994954077100305035609116741876143177821284509593440841375636222603829704597305239543928190015899776851049569018032638298321335282252303054225719200497057175399050218882171255261358860636308903662373521573928779945183626549532147456563456150035968539376696212403695886124152188907741012858444142427197539117788120835448470493373580243248923406609803426894169704743038458955252658420447963486834915177180509016138336495797365886225497239174617693484209804945019403156267957354074392770247635516614497338987579935896563200574251218211360821510576082657713404965432127470053284506429179900906205992808917813276078729795695639676226559308367079376378854770293904776671296461099154195646786906657591805026278055873524523840491721860847762440671712995269196997715764271683616836960776885675778209385719663771545385873497955942192380374263862975933187573256471118384782204911876762028507048435065212119895832901405048660621643911703569071649731857340726434764862049230803436251840654635029266486070934126826453830582320792099744750325136262624505664792645402219801891944892931924704742859508036371002302045187833533967326889708896203471988907764226097878398456454293458567042585092518354866635607478359261806900764008468829251035200811769545692894515029960213770707795251977291219632766439019129363662420802706000932226019404125752303116246572433061193773752031528599751673718214401435189352326604669142760918486103171922935903748606463878548245426764311514849112747174802351246285097021894659443478169974718312975704421648883078660921679093380449849880445035446656927304011821184685100674749748950896368218680255979470631546945472889873683884872252532995995196200607367421957669410012033914983733149541034868789396276437039844918817293726961890234038103228202737438524474574397865609010863278570391677827377575152399267067068795832858733415762552083706255812357303009521249698968217650450002247632397319742822036024456821807857123343485498045404397935378997258010187032219263704153506768796322987576651475663425659782111816452195510849645478061549041375215256929870748735560215681273209756770177795106431165723605481411664917694169407690427145950539888488309565291207494299797971425267482541790562269965747065479782404869026001642758902351739885479797667773522727622408420861205358681681207113030703608774394269720125233617326836741212272159128610627206873090222841422995256201518611834466779590951319462097961939420226096096978381995259131446960742880196316379781532991126874639894434036616099631859253620051568527904918748679592240664021078792336094963359992674790377338120887544546945301768509738341215216396365010322033303354359323403329738853018654122765420309565235365107084485622148595976051535338261371312548781943450602784651379034030941156991734577931961778379139098702255917060550805516734790816292717499855921407742127433955266732702796442870178926436965363658444396864620395876501385112869936400436452064197069917610507392823388884075329843809142282261865422650110082441023773808321272826314220010667803630122914060245962281267075761709418640104367778744227316480729606489772693009726083347514325867769090142567246216661314808577744646802956995284132985606534017264298238691998945314977025081045296643292100298115461756511250720674393838286952770352797155233652886318325372548347491857324861977622321617005143942662655075532305621936397393614966168512197634489203872142166992111282340079042812942720571897983958655919652139893035768732882412647323875122300227683789829394728380633585440231404575950857079300711124747325410621444227938510420995256448606016405361743593938454896932608956094520372481949993455354048582204050420191619072659824808625985443135401818599456827112611786408149170747040022542146407314172553492964130921131809780750231102365112882090730925776874335860899633181882381146120876153786995605106952919765523314097501938283329402673217853775274918530910671725636851315461272465640716886547967468173049821647005654381674147448843101224429723982165479017975311190423047388571335436485844934860186745061792534367650555031512494128634370123645785031509282924722106949901401174102638238098725048702088781139489951331146500902482557297767963215558881974240413309126701689918247223870967536389992978153220865262909762399484285481461906676218715547835504209922247889899643025277597374497657684782845338235393467120259295401463356083364783463786154326625322682813898857915660515609664308906572147223137865448928291885530578707825280110868757206778809325175935426818849785179109472949313868352273943902446960843267241107643924031999810865381240015677437982544845411723285397361781667858218139983269520682881335369605562984026463532959169946494121403082265988446735524074003922915111559744623441193172400586121155299080023544022918602928420741547277492496876421038538117679307235543068180641728245747950940500861046364316561608668424940060329265433049733909242573376914072674920451694352475058584767782451871112122999346087105910855808741991528855821625824812887004683536613925221181967445623053963125685780478432067269259555927630124513965166261328562865568877617649843093337927689613308121273527505079374945494448849166010593280937929171160895677508368693691540082414023087988352355319307893064688867008147062173332051251154739108292410702817596032878198977532393526390164032017710660796861888936913610780911849562040164722780218642688524636194493588652161335001122695758095698310814841416733673942961418208266695330039985351798954478755080080528739265181615279656551785870455603714555608730488137609568119165588139972049382692298150126096255915004631289541015126326102200770440427326956753294678748159051557359651677539571051983058311928111690967165460334276227338479240274712206630744413833954547397280718942367782128652557528007061896376017278434605272631558725393754216548688628553634530701982532569697578711252663307608881060129621069693125108908633749065378252913670522793530772810993964251840274457165885333261982430719090533131341323944083662467497268780355044044193991131418936316021143262266850710959314656615757801631228161386780598481242408859894807118540023501864013069132715912368434098802869476080913710296480168610534646215142672760647563349820784921430150671692648108213591665956327083605280800962313720818943226044120687291130890506874310845105309181840760314777657172053405795716683276024560267302509531181187890947849090436530919262991266199275341184404084804402526437275287655445005849222471528988220923983211687881205789679183756987913001928584143515686958703657272206385422196352126573446387193461643503542535351971342509773104881230241451570745158125442538212127704469395362472760068134923400155108439180222105747077330687794501427500701899485107640883212839362423929874088517018946317104018904228295023939881061905543747064844629566184339240156662885208875901195466721161603014993529671246723029494720065120954700508152766844588549086924573074744592139879137733805817537420152110391899410977436947048274370665151612362883035917984083702849321480539783360609627480914934951295077516218465524806672196532939404417391091244422314861292633962160023097531100217026588205205083410500513562234284989057731740653328137276261349455311636491925485765392135106812917397996212333454065992858807418512264731873229891507561194593683468347004063121254486360375685382103334110231094239340034966449829021217758267816026822537588090764469797478481468952138589818721774863958702926825256149303617422021042731411132928016164177686607444664091865158720646139880525363743890763767835678107954657783376411210814977979461569388599411049373383530217014532702693902858032837656121221138488716043478699435395071861079121732612619745878771467295132239538367106612494631717006745837248002854544829739054186428176769062519370180084874814968294622842141551383534662574786186606119378672719852041484980757669604397831372504183445802236123095052321647048245658465444342603264654764695162128968236411774774567377232150572842268485688043312126198273597886153658110985628481920436383854968390029512674657621868067327864085088134904462909597517460848956103669737310263999117307224877565708444627833876854283856414933389857356634895401253311912195616367200203615229966084031161084835207259106111257919181422766015730500065182379518357229026212198637373654205904027066411509208776471269773729386762023452030107880379515602791259858433250438779205998361742013806890503173113965785132603592389188288767663988017181167769832950025247893172735336286121675917966671201708905290272519749351287110650482227820884992936748312848581524052948467419341312436014125562630336369387763619112150769433457889442737342264697073823490216605945848894804470143671383122964137873291185602812303214451779295955057326679478983104482386964507066722895447333230205721424884937295130120032417475216816745779756328943590545769947651803528934568716169068283237079065662226985064187460055043081648004921679028325189644645559980565841634461592401614341043667423186877493663217119851503421109404702967511766745827673423233188599829505528509328005714091178177552365791052948250579041550733587133696848986544223907259593717199428539728460727577103500608980037972305749798887420774455354534975688477543528993587330882201038977555807357954054031727685969659479170273938071398923656713926921503953542033963118292408537376834167317330615532552791861874348948036625471218793248509158667568930423845547907615320038687599327343224236957595625288988076657907644219211605273459511447184827557453213309274196829575434894270341585095242731332754827501193679676410960675044779158557626231665736693329132920451763916191589312568982072198706433743958201702662581142059061649956723378173554999494597508730165240011470677636884339326346542939799343994439455225954176222304848566522359045389979720486994885035590164248500436790856582260619695618272977750901798633933555776194306413896225760155218712727222874690440864104865190645587344857841881219200010623822576761868547927769516283760107519599970684785618528528609298892400140129456254569532243863697039459433512477550597878839349239006081147875732445452549439451156408291080952534242698934301892586573047032475178692476940146396406658802141343866361003267748759249801543967593240104592992872773437501600780938306996451232133830564328496405687676971214836620076072532161657133749175594764534826795911778830268244273721403624636812675113220096539061560929632293449743433030890886290202750225289794701607914442342189031768722793508683995684558874258510463808001151994365188723734713635307062001117646582446452947641589556552303002977314860701367224580310873538823060982578951909022868704311154653200070379303270678194316539138613152242628544882451810165589167652258041832496011421770648924864856941904327441631480173686319460273406919081735345731739228616127622598889659582400528712144834817884942411563621808732029569995562302647058945119858225925695769180588060291509543389090618026230377825766720524631331246573970367022885471442794299348594938837520052287753873994211896854275488586258013537125470435674665774800587214619833922849921599426984613531374206488810676505978017665400800370366571121306471956813943080965196025791601128859497520812406610900341603837138532030628838879059966306784192983902448381085959028863667503348352478711763576498212597573646239866627431792100899942385056439908964986318690895186108198062449519968146930430624671755442492287195280185013915976825820338809564625860858328864661719112030690183335542657600973120032127989049059701272448568035743871543372670645502009343592633771452595088464346872993107284132727741507314296423715454417601878531231291985143047134514772815349281691357146013053942193274397283503137941853685582918791254894278681247479535353373727175163938313020537846210988216624753780742137901749399816685711158778587701581707823850785599956399319492873970867826978904048139969085514707126460617258090728452027802360521828443942889097070858074020742690889172135121934407366853353248409741554289706730765788771324595750274522224820748556675687950348859280287010749714432863695771958556223798582310363273774205237617243203649194250221319979992937534160714165644250034495022935920267620757156509052926518264128595303888291641715853365267934285503788183109158636995351344049918330568729484780197186616371286506951554726469085169503907839628339986449396995391684058258544616464043033076373854247099919950781078029053453877300999428328719964221296261275033019715131295670666321828204444002905798791177861122142051888868718112441436703537085132626245762340208679994210966235376571784211108443372358452766094532244475277240474694550345436137222391094883944134117633007739322272422150877448892535634373708612149867811439967347775181217607104234125355996066900648768589431604903986723105354134951718793708129270676890807738741236691080671298523274344438384899504692135458921405125993659082154716936841589056679538841760458251635722896886974314607310724824447807334241438498236012380145246570513632313118364414672620631289372122004295671887465021707028768996547655690451221654124972152913557858189429429009532155550961690393567178231281826932970078554167297520052932661008140898825404308849073169703168854145737188696714973101221244202552364379829314348596326910210521736583449847140682770231789416647318813986169657412521282571938908452775874234835407832597803653199926219072764499494292398169637244791478168809867528523096594558055148443061217540795220184190124648211357750174379980574304848805580976629121808740934244664040607568359716159218216078324850544466100222853713148119338682376346306285377196514463990253976313587917428532701339857885052145419449261040939607352745976412871097324977768177566890642172553173970746701574630406746338804593662946137954300550532050906558449743308699143284409151347999383941784968980743506656108377791179770129879284526476953747321785858984774723507848041319979124378069798696109450355095378070923140999375068494776857030458117127041550007931413867259031108304629410130625440809697685306065770004302949289663123989229516272513695925718107373929629554058107934783770926891110737936751027135978104875881088188211728177319035332935621337344436062290588596059408602303695110761427322607058833296611312040672433910541145810566631846086361523809139465299146491466702775774034360598886189675641549953216688560461087623895715229718854515435309276489309438425647807400546631082607340756378748327936159977236034080203059623755794556578442713471789439177845202280196834137620270302117388204723543617805098633082608337206141688086212783077399713555725590687061242404953694505415195747020784472795952235897503952383460762832187327902664495800872169398156797262765036829068230075500674005200951629458837415536608692830413418599068582242811791124864215396350607526894016133822205380008623871546544640325239764574267631544331965075187575040793392432050448237260745046694768385517855512313456265173821667827673693017991974594667027180897708706072730981870522995648127970914897206020824415327112483794270190517546953521098066467003488642476101508629241866373761457085862439396569157749483796177280942608939777077423210064045053036737023002449904052001262388383258037242558264715987724978581338227876444868334828083921024677930874121896583340248405526204775373228495212358176897715736115883218867053263908690820436467123493726117479766247630164817942647432921251727232064191205869436098578345403681883589390324918219378529037429611134954754884857212804943670118734052544446992532509253125177545567058914781728839070849356153725759262864721889039494020780983477277674248291874107774662018383402891074593453107051379942147473756544199208929041210613804299371845697711324028640105240674528035684042338483422015202364058098168296451321591479695212514122332073897738869929258201803277868912444043637269083243081427110703112793610544087081247487529115913114775717943072873102046855303456961303657315547012659759922247398171964218050287922215563670238509889040237924641826701178952335061923109870182486654041804818781814778680212543954995838477184649336249214109483122042755599013591018415877056820139667791758903263027605751350475830229722756664362721200197599440548635903470381489727056105907737737131873300672127197115617021096468414546764783634890797609653483754248093622335761868748785717558241422693559422557592188385818900318093593820860917992955042117178532727214391578249541855319885690917139622134273631228803008669086945433449671171017924953533323245976338865514305472739913676054250052789636890828384421397123050588381400057268158340715837540199683959256465526882966836109653332875672470615794041248858148680778398653484632084119452997372839473235997037535148601208493234291522143244723880473785892799545824271226795579594846464239450458606490993779989394898281169187732417057055701983309532099016126088329720856381356867303373781343414405945543999498944123583621483083453184110614417552863320343089327773199695672716249897954807131611069942133976578111633857258438971161105184167892108712609706009893021676562753621527009126053605171693425805246796394407606833054044832703233327842648111286034257192796244652721706999464947919473844219791296638877200178630230306631281294482161288406614945950087028728272085380035579972671409649691561596758878671332602816142655687696323187736799422531893027868857426717540570898954700972570067150028897099856759811873147611990858752356237524784262308657212516205968367649019761164540308968461160718619891294369696591430920717976640067228788454507730870197339941034009047157705047740574543953938787849328949537964081157362478397126973611461976355372443433992294558948572588622515151170872728951757068370389160910469111382015653763143195855348115484263641151948295165485631253119562319914082294781543502344060540226625169323273298491353546266487988834938378271792768242231730255323508673756219850881912062454358342919045587662845639713213640058875535925685219485721554279917929501909262788454362640357715198177975624188334057576158642232777254182648612703051501210987665148234221184572528864776552068443461155241370334935702267964473975246001365758906470914736938965520083089268536075216271578657342145126372891917457133720601956095250811863320206398089703753119028930218065637086864317213476825669378090472375684254641135874683444796263392206634634145273779878929412997389033270679515321499028111502774852524284881782965121404930949527355268013620786356934665845112793588176329178716687819063177253162667036252972823682384684389774202823748824243094403721318535220775877932169334316954101612203128274389806886133150169750331027556721514022140990225963226338660648679620660621841447141031368349105397461918956599734608117694745056566354823150285423045911487475212040580849201550302612405086194336103712974623311804863492386209243740364560348680327766100520745221704496118705322805678529372139763554297249884592818640186981904479593217133589977533695313402303106548773617069541306493071496462482522727306436493368496993017857709643143653358998307266662961770494164719641025525274380609664152462683167948046456695454904422774792933570561200882862727158035466050895306674656880233430713701466954342027460935900789305887947872687720158183654265176107347661733294915680374678997106776939183657422882612310717384649340760666226544190732985955968029049133137504495146534090747178237025193547849829760493798084856822831445423177953294938495715539599850065610716579526153868632404632687688507965608786827082318607287552361893961876825433063678768576580930614930089206822158565921234779231483051284923496277539590348955011104181314438837623303879704625800640710661149660968905259485933515287246489813364222497792658254142966815352440840858133876746314504689646053886371562454771748866288514699114003150066829992178241288272986379055928841295323944752674635177245007406492949232317882995381955226657921178548921582707581405188774447220252002382183786141776533157925315582579572409042725805929580712081975526450387769455429107574049138561176027363956636691599072841467210656941473192180949112505250493544576102289813627457801843825524081182403499458343605242510617558862026209277284390549058148632135843555487472735410657825959209139676704454205132308369389504628852987989212937137131464597281384670898134585814331757449755868908274503871662567140931495660129032715908172965246747595077489878834587005431142707262958431061307433351227299468821276172798640328575491419460499829876193722444421776468179336337087496511096125441503339224065264680855757687967585050801742450778554240967728962551676452880639492403109837929715549563853286092378585762746574967144375944171646859924960723250022807784878048958544659915182488361555012769448924919920622429227529039463869084837323427363330105709466833692851988395667639843493071964650832159798207924492003908081661340384446033564361551857563781519193139090367073290915844664195139003389651822645950117347265105312531838633038102692322623665664332719496100691776148936544129012042576360059368162293221117343029793425414763788006143627702467535535806365289391835034943587256176261260704604219157502212812782450282679596599102781266787262249708407669406890015263375972374071404672034405054158898568299339899201659422674208235701632907017668469260135247701461213400121754147228032306225108349433746229128863498639820701255316483586347388493042417875284952872635558707601967165249804110952122841798458543820772140472067182528983041667551247801809831408536214239598693953701703044162369529216696999186197701895075128696494264976552871897240418699732740906884171122611379036850003737704912221470179343436793690368224705382158612678167266217892222693901492825812294047273020652780346926172619087689826867732772364060465278068111927139026604502166282490487432742980331298971074456017734200054358993210172418078140742020521144212245035551822732357634121695824262558491347863580586130211347673861390568847314215930122958346715764721770003800104908610622521457585169093604186420939247901101707537892030606929260347583416877260940624934945925540525510419632706228345024997597862386469967158076843991599747575472082446582653496182103220242823634363670407500796143534787926879092673268343672261331205720816673178073058335705377179128499593525075295862340234570408602343439103781723183152067305631835830653252817647540622156638323250881480335134577904798552665766746185272534660425773663194940982572869971313779698248798266337239659400688303145882592481511328495362904001822651797792388099696835901975151351171100311602477354146319098847978313907666173770851783176675268410618848863151616211560745839194390906891028364228484177903054513940144554970359602366551137489913645316015300089306803610431553745353580069687787695554538551256095484401175106395963653488847332752367398222022173682854526764115324444751335700112254586763988702814760700169952538207474050298005400256678047753103456737118477813867632500092362175556439779993854183718463174941061192627979835766996628119907832102345270940180239863710717374483200633118868575777112398157553661903755103261125634011905604672458888034973755453528906857608826964078335955384955745753952293972748913867905322425020944140670138539339752318008625516995843884256581031422780172787073495417168219773534355873476543790609407021116510479844472152919780391084459168196308655500621022935703459108344383391514735100202206048295986044462240889046149765794827173917739843138923335503070481384287271826357710286064128959759355743263876594245451724942984666963291987726306868844313364766864525067209177252111273637926096133922205816363416467280124280522072312237479507827519281029499930771961854884497196857567311121352701477225440412820824028050751728984638677531470994317760812489210884340291745962776238944734100405918394658521837734235014645830117263511785413093818855193552212347193608775214352761353668739451161379716049637872694606539363488615738187069031324238408141335540863772650409595185179038707108725277964783895260961903850448181113748254977737451948499606138729860934180331767701806298200377751046189871250248363911933685977451949512841933234067119138101424485240067213456584623938194510424830094758793153867751649059384307819638366229237255819791658790241042827122758261192623259822405389938493933062651063279284520650446189573406630136659147629620633520721631127271827906881089509974765837378994087562488771938551148033246130558743189058242921011700907368573765818013220079580778643653900271315942431972090227022823473187091304251462747746408994133559616832391510906252954233493220579146529942748173916787759741192549901390156819942566308849501185206863893816769313201762561221092269858630698941397968739456135513919388982100012044009255738763571229432015319238694455532336969173054878287301687331382278417778077401850384655232317409695327744034082112189579882935560785655287452607961552321282455261839604072689506315764133060836547368838399062401326704184893876250205980487634733075447482253499890152469802914947854867534763021929503521128598684086399952241090474725566619810249536477500726022339561510372768150323008201510321365612563425454364340211535613741748932819442907077316769385656827945307221012099680518378325251508407868217770229977437492899385662772913693759347563727550753993777778868465365553469427811585868846772244194450053947353387533513824527852126027458271732010771678646062238480815292895536215183624013511904755038174290108943401702672827089363678481919104696304683217342241749108233466015210325183507987913243729751178977677259933628661828642072543620578038017018768906505948761186302365993978340547974904969043927626675316995960883331125345302640711052278178970075892563161951208004427070361923426156522789939903575767590122980288938093573358887366819335178382704131623846487265702808340278097496823298104626432376273213518857263568262339112666100629108255553927306748742657217200553506402375027070208506238717079381014262060493317325442530105397028273093470629708164824103161494557109082827521967268954152924418407055082129754344671473782771604981308761365748905569508728427192118841162400455368187729165314870889112816202974953547774881448963016376818297834930579217934594746625429016127088551228267679023208071163326933923580552267162398255284165790615780940764730875386603800459697076136615492868795316123380931635518335299448225547700566114523122844138211232766624247900995240655659721798016721399813181004614807447229288281829499951780358075868588344602696264582888449850929322219088469153937802492248919040760002442672603957212184640273270211315110915986568979427323214813277731586163534399910413509747695935802424497781747861708140337768657522279847740998793921201443974490036339466645336496861270730317173835881765785627059352629367695918067612949326490091561289734332864531880915201864262140876481798349195514489014265589002339964172093528213846663033212876964551136083341074949697449639815540236479714731056375861284744993200604261849375706257402104392570712793963986242122461750168821340612979281245219157990509106445704398264858279120539511034350728770764959564715087749062879999573507797083519324497998484910068855975026959545845664837890547616341784398721420934394007286389858372434405819665166170275299812763493930358184988213403780928470299344067663115116676071462984613343269251587581762667604495814838980562156841940629750402099225096308628042523314240293907855432359660656521907930090722066949273427350284670310840739750071583421889835214585459680415307799929002597245926905646242150560291552188693622738925954848002910725481801114635769311655913164026549348408941674253530402315190743719674859666461268330934266569221729890316111712702716106979250685160707810572464030125378486990419821245474116041972838262393317899251265853061802224855238480179494071796682205212497741803849303845563827435003134168834065885838109482788508500900121554357142767996101738669379572157193507373501055790276482514274264953571335112025051054269290627354605583382317924870645204024220137565685229955773804780206092809877410793589228784615912145694404185721249278991818831758537344941099635642652313858832311565291237673651951440477184189916114163601097869240547729952370153050643974988175052951649857762994263885990823320749483145763008082465932880636048282592567423406333029285921458471110532356611463133956147550879197483402549200787326991477024965098087448804854931036956045841547900040658841494411409542241132463547578670420742278328116321035888837454822833496346193571144952761394760014444027886336583464895861467710392501567524522543904477095916367703149137014035002299585588231170773299463645334942403510960496998532185665427948476417666759577481033917005265714451352825301707362438701002169077634389104438052331218083409644648611906466533368932198674256662895178433010945574447172414358168237537233798130281196449217291298207858869053670921824259239665039136552924481480236249585421344875272742152477791227472627221796232445536944865216111251497124338549317891583324657574929458045204322660368708564409117382359965829749310194718337744606320099614796810964885980321442140535424955340317537940180687949930813738859485685222311314898940195660674648783602178960225780763782424456106928548187567495441595806673653082671929136062824097092800908414169673200404281650598478399027934858149727870739517256659253191609875092688162585198390431666837117804330854650748408255718705472816215870591452998695512949250239680072359235063763347931131286043020360629336594080852010103268198006909362234695025226717460777010866163127112798181662626325685328502956643961161994344053542466443436260893851014887320883252643016761949118113430300079079261777237654202452244931341353501965288209182022608741224427604037803726706314139107213811849806049898763819351011337416082129596701595296907971812373867182151625984475815877995746305425305314199827066216567129877817832721812530628429408166306091726868255719550320152099933990158162520356471801808639317739268497117425943475342573559872462626581295817128743597596041107263883519995658439524024702566368607290593233086562866323294495746855230497276502162899835605490961798177632444403814611678861317669275209130618694119793311742755267570828406162075153345661262317335296358531497091407941981532699085635136195257578137414528766399709567001812181456405228765996256051983262924295686039852677905936447032314052317859696356492746571894939743134751648126130467643068028117963723019399229872429629125868591483261213381404665771738333644748789855425946411613923119281568548107046355513448799137164016098376212073772359796528012940501849709801055113646534244930678540424998935929407053393173624191637985164439399264052138708049733525677094440876767544413526297458681279373328370826191390762662961612978794494970960906106876667367222168151937839197445187608579663013080764405862876594546829067772952479611749883472301898661450128404919443619054009430885550122803904553590457369199085321041755603210702427120222329565196918570174307088854594144507143681215354576974002668487142721255918753568195877564937806331108929764345877250719640552725485763825640473581595429109434711594526533118439837698798589763256225499313194788528518750392606184182477992123309243982178680490784135376757993270341072920351673999344805917052156733686712238915646274985305218357855647765249071724419792927253833959606533397511723363227760104776769634850449730593786993318142889836271575939881300955257611200638507781104617508155184313168171876116282208546837650084598761558563666505394618753131123258610691473607944471295541831251928321513503030474713822740196723671817292332989009296575110896984882695959696076997320523666616735492965784796777968794599471465006986717526362936054417693693335142588935315503744788301354701274141512939775419986236886158239512628203779236663229615117388124716280492455708712747734861093307925159419029288865032399224163498185822992854357227308749678170016679217590657765032608662517580581470699568207456196649212814652057427102204620922704363026284426888843976267315497831418842121792808571136331309318009031108112902412932512101546350148913172786144996614031957816397009266562500660657875226739850526498728037840649763697242432221821931404482092155715010076743295725887256698948192386678632011496348844896255348414208295748805256423745544561511960650851958702149079464279787635884301670938214634360076776371747766169198603523816095786774489425968306197259230635721991079688351336017324904669532092119537278211277160149045555844351683417518269385018207410342177787881867656555039548269549216708970211822189622339540298609328717983185379080474254572580980494397038466995322385340397180835092928566201531859784163227773745055041579362804272135474798401041753346909877339915755238644500871904679736172133643592314342191283137810898523268152119078619773350749295140971164311963203082635825363266024015813524365148306296361986446152114589196761267261083661394510143038854528535120463515628720934612880625832552622885573449387936206434350494034621579646730565567465533118783314259015843744842508183719978794877083638147511237094031921759228040595559281757653871900110115299503595849668303905787382947864524946332051437060133304916490764885606731126517758096808033957830336102486277926636136003811731865101265072503524416352428674631621892942403284163767719947204878990343610360730080225501129903626381861788355021001733754707904785268096753946013491638729896083650610845204369495251494652584228844254804017287017185732564361321474996110283387281000244132210549098341155621913541704319647228512840884572358209259718773218788528539904330257177136550653893025184452989617041595600893074243917949545608583174322359262710243882769624796169766109323287187623494653613632319859499241447537415306035221511616075423016837227046608769615749819055884667750351679928495510871788210064435873237182398021702436604908434299275992890799215797144749417833893150897452807075961084139753197818861198753792122962326911600425268441526639941248719261902289218908129491895468011992294392985724323632810091022198849863518672973639053377233978772779015280430370589648541475698215736472254155304860253498037405091632914507154711642490958251027406921139535021680408024657701456087586583465557814017943490444137194511087567376323645566119385558197755204442534163037660582576715517463066291276747916985906984114584690183673818795689777952190780555737703583425553463190672600534332916992265801810773285825838867506466266789972980882752175274017341298174173889390550259923871993793687218449248613065421754471675979749315617837720486060575782091086587211317440992734428352602432684459670365844064272772875617926960289710716541346010243673459163768542963736754808123519130581759056296359459217996187343243451693844168514501851893225049609454552417150673073787590177251570371551314749940420819220839482058994354691853889882855169425972485653930713478992989313119882433538395659246839895703947199581402353054165074046049466700060834735336351051804195854851828554647383586012259453978472671548079745378606694908683907005469335392174195641999640139916896263270764247941305305790574467331623809679926070971648909022955357117678006306093844027669308087036161475825642425104593638305697860304743827536342437017407085536139814602603995813835560249005750941207765222043238256328292737009937557831282111945668542658282714574798011817675505047975924474997804795343171713541397869671525608108872823997637145113959603009949962249561143467913866086595795719809741966444277079934502817828669367621373285393520687523401153026587397892303951696137416844018038319923898039938027492981679342512216480287533063520838675402301208287824133200526670534960065863870268745514871048236340877477938307863013680914463897808061763561590455204929345917728520255783503984512030872575249989159718329968687224265484973950087733764521383989744982604181483674323415169624433212394575823582610751697997672595694848477491048687048084686054249340009817570476674206252666258532537288423024661397492523864419731410670446265961992213436505345349329138260785698366477699021707160361754807135000388444559481259293598118708062278541073356260749692141591840709359472892194588238878640010378028606463446299099798713601664677179852376452767677915258845441233397988826644818522379966637861201151064450838865066464785709682518716644323975954431132773491991073994269216599392728776441898063974593985274731832776135558090322710189357482104610807216672905404287039579350361955139614075282759130163035883477772169749582017940674926506645199893858947825081963810912838502869484498618079623579693818988848971068375010571994769683346748335919292102809167940242139863541220188725604178375735422366799745283835028224053286753408493778076217716606209407204487127787274227084461443631148422690964175297039694301458481735633741309387966060639795618362327723309734497060410960844094863328727478860185483708632068412559179399845208206544436037206896640293318095357613408696328475608799183937999986597161519116853129420793399152073437129933963560106648548884466328499893559785372330102325178540356461176570250942894122175190768667033209627964653019888072923287841242555333260027941068982421349926624472477479496332004002582520550876536398425694655035871090568596058889034704279835238656797415675055997010050022160478974018526167187349913397839282421477642794283172761263560177069733236233208362540683783191435679155578615856304138365759658719740771126660021429625962493367698521136164374666304618739031653132172912784028451512269506968878768111179616801097248555956515801463267227018885219450877855968267991535903945959569686471566067680037259305980945778119586650392889701482146284415299274329370375094918723136747492913016879823833772437472651606914377666746214279388975907228915424667545286251172968053813256098577989047063942758203922406477176717874231008897326508891006286765405160579105745849412427043831977505966809805252557230976579605680724249292044073911193571397082145577079879505934971661202009115810323176688783164712927446355164617060352734523165364385167618055852138887703230898290055308295413686451709961074931155824426766841394389941548501663022742812896670059248098274407907678315056260095772178008202665915440505838186559710588555587865948921709738298119845037932141496908480676365956571840770798567427809457863226897622286122284370302989101290595469347125923031583673445832029114548592678327586148078729326521995506982161802044458769650497322183142036101932819983105446169036976088540887016455015543056386757467062742926381766567847121516697468063432896541518123478164684212181919707757055947370864473001637768252075874067408683541639928642241284828634046188635311433534011622546238193747720307604483527719954257712254760982053467978705775741764316366902007699952208878123646818820591417874093997041992978781492423358902094512505714855821354498704402381163235603718281648978711853557045071775302711776665810998988253555443581523619575208531702714180984688583002603373453425770933873041126956094700225062637867028068227239079713067781860450590593132392238763817737657024064927302085989929829802723131891704915889795579224254291952662413098678028234258243123642787956438466293595212008411153486467083230030912153164746845109970168779361075414066404177307575115133526976850031954667130842693418942432073314284131963320634250859307896763361128343737618567347610892867658479563184507614663692588490421130987622774200246120915204691922276869062975367322860524343984929466756656571332368874567285292294832011180720057430751841114884638821486826557073792716174992773771474697505345308057508463168912026336300962505803883410119206061535110386590391433306147534483038115585511089325443847738868361496899916339627247579539670768166092064892479525271197644396862156583964680321115719783543636280226547282402432164758526403492405773135593469799334017048113460521229949780571626695639801193280471357537519918672631038731138901925092951663979027913023796386782595106013246964788837549276721747167487861559748978831563841259670751261748786641375864909413482518107252366562668292667731834708770402184093456473421537003307715407153690684156943503268056845510951349875416409969349133622794157774055456778154935200193873751839606933085410769201679457883243499202361861941436031179872109390855556230729959228660630623283114462717470610798623446439110378807230358438601516102694453151394782862187074582663902781549723585557644282421117824688923624480945634126555322052893776304030734115575873652480886498915034101809035408448124899850572003835751080323324828057022035129348106791520563354501865928357919373204447429630355400770940131633866057222535992236629680780254507748226686951879285928220584621208189105856926157137042232242906118154155296992659464861823931638358300115527099448755075735904366618972111456422276561575495804209200053607601037057044496390819445068686117269145640804917361483813863907247634428995027806125692398714763574691114114965441763976081715825667452223283007620497083995677053782559949464265213006710607324983648563040011907547638186658407185172187130540478093350325939867362568005850351258504374145467891121743888318027348218295574352300197965488655490331318166280079049261322301464074964585500704629275905304441371266313196609230246898621547266126743537466977754942828539352920844654820500502213862854346960828741955449740787464476960133647826114689003601909226781952330473584290970304877491622471058365739267013744179346931600780797566321832055870582264936461635293628170109379462494028833404277975615996451497845188944150472490648670799091394910630209868697464280910232802464745878754268851248083603334677828067396605017435417175101743962947911373781898149224874345415926086804943911104979685551237012314132176994686925295819581279498933289700138958454693011150048061804842933165943063405732484436133454365644444277405208050999462848038044851301861409426974424043619911460368192188937382234945703914841920335713120067547411884728191606814096387090403134579569010854238583323078782327703100561813950305995715517127090550358514653172289237447751239011695158851866316601700272978757812129967843138083720677505251177271446868287736643309389691159205337390438360082207823653032910694792985344292987537885121511661016609049289206529193962887427972155835033800901674940723895998580735959498653783213706268964626234530951954777889712545410508900027630568520499089507015771364079878461102777418086265264166769544059905109401682374945116719078160314620518900215057161478444656896773191912005042819886379418349183439734472899297512866072361146039233614553463501584211426660946826661998719262195891281070371619085211700226452360167347600594215722712946199238927127045692414947651792852638275482155035849891800520396034916165233999589809146179440013086589107040558266098676742709259124328200540418362148020818517131860501507816070811037732224610332752812109502474222201955086805702642681872133520373462632093150684765470426998836902339768863916210166817889384969610345064771598950475519638752757699799358972279960520427477388651066810722747482736225052496406845973227076750808053508217115057989638596954545028952564224707734591593228338632407386592316423281990230963012911821456268238112302010980325782158119766906607903402223111283106488568165171293302647767175373741953980864097111970855433918476809877369197751516791166622509903773528608704350517794704491872735139968350699234459652648322992861454473226306712737493734816031257560642858754088542659101447468129358686853600902087283441939373060678863390807509529600834352568542497881440702129366758856418232053674108509222718990286013753772401670509986663336401986958148613693473855003223704472833822992303813872540968079454968100833139323930409524397805106541873593087288736803604090943924566920240095529288191736893283084496652440238814218325564363929784554396730557325320672994791524907692122767336019293249998738512716494017061669595230873210761868901243751091729421175383721777355573687410212147371188418816212209419870265699888448159029909057957305359016245758201549026939761368377072461830163703386433654421276300586980194209730052218436902491857692435087676074218026453995152796501147396404084036325569387167714539017461384995843120637999105326922361620688407196797723676801922504093812265532356381277931852076119114481957878715931531064181512101823589220020045802443244478949721691877501400582288793183229694004057786359718270300900941818470124873640962203095199208163154620266687357361628783771407093612035962912227039372443774518489191873828359468634815557904218677299454706447835336801940995891616134488320844987654147440708826725828104628925483277424384270025974887700913070021315463271018940333054589970246474579496301975452927803331912385242574941504984180457114065288759581177742145613481605844208993874290200996277512307476679014672571529273132234335667879066242860593224737173853050980440214060637045062417956459420215241355878816674519914690568318399006102269093626071935008378242894248255137732040465764174339470249261073645208817573770899811946406160366567682458741662089639716484384705606980876894867859762775641924279816624917962969407355859814701181212113890710072771223566062153295667445567427457458710703073462924601436018222619745075627846216729350381926410118552198094081903304780548724330241314658062467760873004103390413462510002070031786873043117536216045362154599486916200874138777154716475745651659221122837467421425019730682658245357234903502974436632974457995281743399479679089297580840570886107346928194137890362672200287366004241049657438806346404839140445601458078278593934003421603558109454205602183688901385920626134607004393839810320035066206923714040168609997686571729537724637800370433132767186616953347397880853024437695562300680675898175212676547723226291834074803015091642366793086593736722817948685651924947178495562235451507236172068028861062127321959423671454302076907583431842266499655539218262353184286909624014590665805627428792724302175948627948770114587572309469073727600632318812898539666965936456819312143214264682208549195070392808947626915489717592147616495204400558528567903421028216628013822662241863090442699155211807518642889463609409076248889656386392332062285789538464569517393897562071782619134755021294262301360718709548482823010328338168600394397417285290670247453751657240528065065121807722455674956034937680828647140324153638752915823108322645745919272805630306968321455795700605766890206945052705645807873962513968528440561483354739292291765282903407980054746150633267825133902966330746272119943386048384702359519686505389722748701606550895474018462333844653974051151851911218651987501200686090257911412624269376042378374846260643957997272831149053764632348880609269539146956842625322648077839802337013273002923375564092521297558377886456491672854169266765738771756436405418532359478239749444260928241959300499656193700784449984501011394753179718316295609462594900499087636967734590024968500238943293669712180125343896367502478777265863807736458280781331077008496528280044453817665517696175739717563754353577043194559969545041506104131203686781291580821285763726569077662931190792084349761436949766703325309525468905640604123516218880910783511029644193515301120221755855788509808935121875314746184673255223186885147430526011610998044718054052996453609014176551347938087962686997664547084436883590538572060248214668794226710244405501835622393861226391636081808389723470137082071822809612640196380475927521172119636793956909904040572647308266449291471521848602879384253240946825521557450520645673652126311724786487745064353513930840705145614738280761402102836315145312988199986094101553817155156233719375363983191060688384294437886834530696290423171495569934482815327420706258501674138151591288767494846123988451804740306326106927698419576521397731595018041034053479536808687325860865836248312535962482557516358464736358728133961857826823101234932117472475572308653427279439491727321948637595462650847567465241237866453433134347980542378575771840273116243689448372517246490882504437160764537764411229547471409822499922816712717662212195036790413384094308287625054588146374929349586330296910671459318224421194393638697110901924461624514471996335110283381721322053221801417643661583180187206625879145151644337785296980563745761041422907938962565849260284924138882374228936527509380055145121424819708343050002149114871132595827299578725173097648243569680638857560656892340418946878590190187687412052334021215990989104888043203642266234212461590986850031857184710780556112595956326899507927203102107852634957770595829051203411438065934859236192296360226440652269888801025443252926831595791758579106916747078074925191893624649059645515260966887811547392116014678555851084546517912701541080884966298558800287749086313413960813818351392545669439564691005075660239445235040348319960554626694233258961228935247472809393291397087579493687883209227621856494030198951947732289565855973494658616824550357352422244545728269479755458214974447696319191264401383909063217903340122841182110515493792656396362193860827854663998178253246126611393068752050110701560353089499774650468106036266433586951393567021525928294936086628889757479929682910000688814603408234147031755414554860222202780339694508809263062448369817339962350412016886116308750801704221654799158889715776684614603063584227974305083502296229289990567889725243161909712423783818488733000933343115718557424067739117647740002227917226786750417058904840312130098669165388352253005019941678239999786736993499436061395079600634752724305090406638828067210957754773483308075014956896282936220205572449511010804086677128436818840124653145722922388501636974147914917201875602733494488887618153116460319905091638739413572010136929188733033741268930053746120806940828681578179378967540751591851889852297297904319958016471620731713096025622274250170022701641301631172072086599979472703840581335967402633061791217030720747687257375931429210279716498598953062248919293504691383077144419428650821674522027407017015741762198760696891636143067351023272719182953885227446688431456246539579632020276327878671534234168090650730986649066811680026088475145806291008893252290028274429516055342189731805763225850732571093467373213897387950501481673467612037823216954911543723393217809149920187425839197765476591772402927117850485470738707278703303631353872912102406943416684698311220338337082253577302484774065504005157032178738509575803081076351004500641138469021403421483454196936545026847651044362372782680807477669602299540662158971423113691425332196142709269998080040018849347381557531140854943626323725454583677915898632691085957230212535812273275908045229578945512813251335543190473365525749551298648004667517824121348954321711144407935913926734930764335004102142298021639336918157152920737442881659003193299970055002194714057376758895601510994960596995642179827852125153367236953354616401404836815970107834151042253955723730063365416016321335824009936722002059408449979716515404225735573333266958364085895736552731053286283087114988798851110512444622158045454251304140111445943652802059839374472289463308414367841914545897576929155813163624403675178655145233812523801703999605726286363152227285831118672118252304068128660420299390021384574968053889630626859369427688042687772895668838520627192290646499700203254992538828334045704620164812528693216098859259687446018677370074789447735162775905769230630156551410114112915357603118518893937678458887336442439013779196034043513076010980522555991586510199757757552263340612719214205495482357567304022862461272255629001541023831008196978518953324644034932793182162822956024925715010669091538940867840500176431445590563814575365904969831922521111415096875121926431302033215404421227284980461548875796310551619921839391486545749216252836155909687337491243109091269207301934497675865021299007268118324004628885430381648688651118995757542095376151997178590925134370164063944660778563549037628892340373997333354896051044236200219583749719487983977747698937594907572888018901131966120061778971775518738544722583821511843310761204306340078708686192691768002006837756455038456450099260290291520117359142233832594137515088237806482901611748991283290481609498158972852965029956242308797911413077995522104643512420360222530332250712020196077627733824473772300752977827285851439718027997701364347209867891022163959492057307737440651716759827954082226228484883369955626598459344766545477707005277063332442884122854367606004204547775115034513295733928156971683189845826682879232404301975818480258284959659010819762114259684392638194673151270758917358715287213525055529555474065317251594519085661524431749383562683715500652354244747351325227403011431695715860705893517219389219699914303597424848801193522728249484269867808225807818146106617043996669017609466085346755925636537035333071696875220548315275740411116526871853429206916208457010296035985609212423609110924933748554644635678842406082091114154208009703977803282505225021668380118822026077724814883155333851195254621089428538093001644721094865859237196077928950391013787693964576616155135016694271633793798974459421724301959000527953959484500927316391745606449383107035022984287042758163042504523103431915247654351007588888928976323656324777125230281794922653090185716756510069248446872161806895504618805651777349272986424892889627777150820640298260200187613872590114998799731717161861599333917500486144828373295763521279193057748744922019775728432881033903190394962505859437361346911632801624104291425849892285557351005996413923659715566151271054540991788732004427653988460693748672135450156985179383100006691734688280898265123459004736587957255009078210296180627707357679225762423691027821059015948926364928973103824614221275275119365871622823354229268973759198175778096071204658142904256954184461120650293642158145593159752199363660927014408913750798198388587582319177251838691923818997018195971168595853777031848018102251672507201342552766653637393515288707416301439192695449904935851583960108899299502463230569891272478852767500497450193154886600309692390181325279518197193062021473502924537539092767997061236392836013880077637769874223066988142996578462726742320765033180774071288539257040885598990905293198541642067817378378451256010374767269904866138903660352262062761797028331608419688724214864865351183039108036748116446617333647381941818837372654234977625321193349390184426282446267190296241121380951660425172392781545853065675676104110230278480711292982730837317026516087650867924795511889651417573869869630577436627855487159197437780845955305704922660544602803845773106417452639134559329067219620435354961157416880916718651223444036268216375852273856622408553658578367796701835702191102666527370900614279112755268597219816332837225810837240287839790605806431090710128453839626719051687409768630479500772345976584506949825165289115453641565513811258910290083681078422454568651098102152749674631440450908794957830947116858445469445667065747012630087555867474944354795542070347848124891119434319585781811800481032333350954775725212673559808481252346605654679030621458149267883061249203568461077681360046594970988147575204947488299204156100159628917040160433372914542491532476999004156049264557261356867266323496599135525374300549655115420737605665554848050972571033393979369088349923776442735267994444158586511798078036897426533265343874940651918767641181304187364071166060158398062745251851433353471255745337420464226301176072700378367813083990015149574863963477820697261399724158483510030562427407273514937530469940708746778100827340506564772013899803227818424211677940137683892325216018649487177998809486350006599671158962032175088827885883716417048116318331449806731544683087088278254062727491230903815206870850448687507803016231242862700452548776306013559649742403680456360333951111013744617156023908627620039084278571263951774690988014174627283517180489227062506568572909435058872440303455705161287072049205425758113927349519464174757107734426511301762854034155633568010387836698953217360903021908807345594232257589452612835491657200535297609231434433678970821011180678947186502554370776795633994517610832079278022620464200469508033789460564968033242455682751638558192975633262748261495862146173400514248666003513352454483460497251532779165097184111078483051677586241272734406795690462327080146680132000218017845249153525952047406043670640262225339014118472495139113375794575270742551783669089526274005056880268269034427619874362849536009466932937105847639701942278807299947776627460891783172653604157983642211436243656102633687754712098267140556590325340604556791174992308140490247955823105680784194268437382104951092804758984824068483604125355491826914097180362860492441398133386142609467832018675951839318138097505606021034703142937819336246713562952809383223134238306559004277444401815461313103047229679693675787805378117988711534961739187000402002560389963902541474630060263518571565195259258545973041843708365094955620620870322548118583311482584652732659358721175528986411776878755381145436112496183657588994093548108757803659168209484265711476349427944827106721193395859681396830745547515055043966988300701761101744332460500339060643524543183240792095569654602818264747975344655965736296119823425232307835141183047806851909106846348355935146988563197742804245669248453821620893900911469931481712223852249454574966369673914222549915924605200302585594523090973365299925566446564173411720297243589662636572469250778160141553080470654029829789813581905118675125170997998239701087279281328590214641378712594608992633145385882027737417079504066489356327871890617478762932857092483399977297262719620345979226898184051106074156677976021879064526049065324091593446023293084909549904020446116906881447059440462003927016757136411365208185742273637406093548032037656563508960753386398325964166021482569892832879614659556060322580330021219102387143476628212468430654812859123585663758626804146521155346581505945599038473605705625693773171866952825555626144580697395809949596493467178241384177301897826073242362470123956519051901842253660515791867529196637184765889874228222870377439293927841296464929614996163432719520829370515898340201319765746349499786348060299382083695831818464601021248908599611632454307334404178655508482111492735240869146317150033443396733009494025451334414797163762553850084619756484079852780655205486202134246008541162550871273546670614413276036754051359767431131208686100545144102319438462130089724228862699143669726210499131217151979701890868248362726969521834439649697431924954843285305748983830206855894507736703064877228193813084213619933984785334821969229044420736719630263770263296981466386252473374539846609919971524968721506756723025558720648978339731676916556203495491597173775820134442740252595519800787140885897632276677991568962324899432532700192231611182638600893669455581532725675324704701654221377855175293884949929454159473189354138546803683938688314315001016244073934848037438700998721551207811932703443273705416390377954615547820544085264955848760714055802252591002504768260652626193708756410766086813779897094464466783546370607243014682999352768025993934832228669113970826285143603375885653778687738339814532428846310715866477622973312013562518685780005564012680420307567032518014954444787789975329576152942496805870727926508741773367338738415514265184565425358417717441761169223839145495929786304316147386946019064028270410533119447204949972052963004183458673018307205921059635587091539035015193182967444199996417368730643694666264789852506076560265593170325360046133779233701847861018364502392146196323117384392959064188046415794231363922064974715091930114804991506268918618657338887235051781358610474252120408584627390032497206139695405969692811857521483500567802293932388518873415205993177099147966710012694064827032486562853666928730363918406080767960586419494186374081729158169884890296015361627536699035616669128318762979116036089149158715963807313301246382476347795256800738776734386386947487321042560660681996755141749379865351314583505625273153659294336999983522323042049271764471507222201098003515059122683432862524051835448946719132201837569230364397803660178894147978809024620725468822893395451342686947067506628465808879664047137708575685542041542810792569903837085532293829009180170060203356282199853912529334283841628921376577472428305456877076217100181103768280711070145642632407643187288406608589614355511885561970587503256714225087607522937140828199695826327067503191183998237621416972317776949781902617469943291912709779342435459713437503328168069691034233032686794408761029700326438549905103472142399056203531852220304285204837955248685384794723326958878684999827971439219497503605276039793026838371398491890963096560248540946921648190070453633249345758120514600726419746504857500591634347133914269652520055963487038000079259392856285255828650225137402962358830770113125548984828628036778411192802540365969672217547655861777875215262962924259135690399466849513290678323507277491726670206574352992984331652841531063313666718112451727090301934969345299159282216238179042099209682141327256039129631593506803457647797803155606204759497609296111588917150369495435942036965411073390158469890570801287853174495988100463209699371718999254671272668902496482462051457799433221240961431471855684038335753879731050261634912388165522580899675481534673977642205009368132084651057642317918633604734351901081618498666634180578523679159065226940020451266817475019805127487919913388207099884990782699979427966534170377333393083140239888664658345600158836574355046174585949009789341774393842410779338127665516857088845149775004303394251769306513484924070676930226222016124527573509786838616284932149619989904363026724517677871696695979198062023371668786929813435390164843474688323664980002632127102618015448418440107633246499556333551342448581982244439925373431515687368658682335193563551191182017383142456820093349245876369247959134626527063683763421041475313669571398318528455545695840247517848677688778285472187242801393053736211618160338085442964427627909357843543127124297761796373106401909301327701104469744141717021795122206496744083263502010051536883887193638244582943003938651326818559379778251369879901302387634810056659980227431125832941304119929117577088560271735119653065998081789453851647728024017394412359906061968958503606629124103553330254929109374958333005794608538049665240477052695762304656685502922594563999900349665647445798460643185347146493782514200803329166746779500344924440989022410724552896171380013655069975395672296605044442505297142910934224990234639991680772669209249063456234966769347919000122634839156779545523736580563252023285553224287780151719828407051456291985806983659373720702950602601909101063403201626300544696903458322969308965768447153648022553302803466634158555982011037466269068782435513404702774855369646984988163160329002031965976542145062544574401403269309398598639010690382727020996957429502600105803843068788090586114151297134139140024630191041548062423243336335829454158541402055807197614215019520131530619566079812132000286130046120234419122521218764509251048898572209864777527099311425252913796312904258726045201716026847114141368033253254668422369011505896922772666399711342122828781116393119706861815730288452717908607738657888676138827739145800830712441587544967284482560160244789166038956915373151851512520989049269282419181637324495886463151434611030382515555245622093892488824842699665982087340784014046139024568884978907433165392999602123284821621793415043257181323734939077181750051148366851088536315139331478681975233403015165274281688648978621840199035089548664577818686404526200321444777920541924376886981988001770275251416140406724201787247982090063565957386145885410828545344712896890793656203268961071796817477997253489030866285651555709121984075984539198904769083631546038768081296546115017917684747050233000650252700859197930805352932107627611542001772624401707641379845310282756022888950849441325507038176264980559768916954360186559076393606094150250706753663171243413902292679003980225327439412400658486407475990159858118418786576820868403619489470476378654099041167307673249156846659868847989705714949710903886445948133859561703525694911626555987077250208656960910748876665551577392346267023933224190684264046810290602289982532877834085007051382695139468651707731897955082441163746892896389112184326745188830632611078594240619366202779959408505340756425446626901152481323051485999728948022551785821333001611220285169871027577569295724918687320741616323024961576968250837267313177670559115116857353877937878460905083741322293107029771927102179962799232369137169339860169681152300837084137808836948823074922876359936520702316277497215435924956962417512573469749287356947138745947905511608365184920390652268447370713869849445771026430179261196722338014072503995470129546772298680512635307989257048580547655790913470847027978359804141197327461825238843544956750432188032433750552460748819473761057287415960669410115214321666683314325674243467897931668023468725636545464598812354108140126527477117238762629964358721863293007109229733047673632618058669158618312401792268026593403812848082785464678084507251212629110497598356905827176515803308303363793596889416394447177610595129015603931628088371636991189280493812047855323745838302537340014200509896751072699188181366613214436683768421127328675192584544505959591483086104348366261450597283246088146388764171490768266714430991042763518088526699372262576046440742019679341574066993776580577944144213338785080067979878140857288371742635318688930456270551300351270948442635127335166864030351674938505309741390267648742980329123691685377866517016582911220235991193660862725409184762354229486482127480540553001544654685530084314253493016950097921951521627405137979670457008001650430673294346360038709673768094065443566664036413819007459186283491391263488507615375073145113877861619980687553944793473160913571430462129769030775560620795677839173688896171532982985588051527636713549276043978804832228130322131026767880237475092349434836650554505089198712583936290646076323271791903381313420200872395584640581347879825798990367692131789103965030848784183929044251129748538077128398359004991376808317349813032138118996002009511176799769132134833707234746926199761175369105014850323084799583331988770258768298122375138820128291084997729059307956536126287051501659854183335463085321767543396317698133918047879081132952482453498743171077300752474024865088034079220485352852909413830041677094252489230491019849068178613142223334680362609214865368094894058818765229621192760700619078379301483664304168768579613720035990837259633840934871224939486426684204256416667370146698157703980525117613390533886448035859434596306083805642195498936408888783965013279859438381765714022195270814340847180283055450731114310138934236101621066285154686255515840275866805200829960931919348652785704491886225682885387494247141228857943568470348954317437532320268039546418398326554243486785333469368743091930733472409321331082718064401019801747985124050634119160304465788715125567481737959411501888837346259051173746863281924523979972074748831417193954201366664510876479608770148499243269065987515824261790098565164438404452745853965329354442130737233245987601469616340288547185596164570074461816735535378231915608545294578920866876073481251677769219998427298223523223604058771869447079059264910842794075400500500274560624497073141379975762077616187195939196076674832765758619232658423552980717357214569577485525368086716747239811277149207489665543896970868520987704592509677373983818611394830528444470458633061440078553407055859493302371614427210204715494848732176203156204188325686629146037551474851346346685549648831801720423304599784203403205488563616197977573743589978096846469257322621926797628760495517490194084469783887335046761013162776026375173341468662467663526070229406294924107076510930508918967469166864253993192462190703926774877147454031046686191723695854288481688933078564096882544906027709191197929987434073196461546700614900271506842208706751367537467547074429391954852326350238901285358227376547081104619531087384167215388784815813621259923650035459532532300183366556018793145249637787620296503344215020335307894141376505674017762430995466539817938174588795931879965084077409423958227313713127720207072214154388048294087537995192989286609800119371351936743809440328948409831695190208434536502494580510825043932014500821509649194751178523764816293337289468197979072569722399413158006950080450741935679944227482897682491449081843093285074093545631088703109204058200215290946450956881472822766421135699727004256533451597148133830095846965814155346304887285386598539873152509129781725885731880238944216991205071064449028273819866185963031824184744048570928446226592035474578548191105304004359973195163937704768769986355316086734122054710396407276292220621669313114567557180799102061795554761593827933270905244284596356471532758797830687642271072736082357988398399869527969007635167005718436586529769180405448248823694891454008792197717314347402160229873926736258235918558324162027488114031096166814408664552542431125896476968574851219858965532059558995150735975481985210153772258639943172107799734100443452381514336955876922401643973104586062909177643896491422854323929816569577042781826537162829726809595511021718583769394693394864294570246887894924386533487504853606191443732170588993539398371863234620162485539787692398681937457081263500741807528819352818686892725542854164345325216815129672746225756058816375752433934032835211746335603052759119173667546724961223418398291854043525644178545943499747885879793680033059464687741366512738374308917605621171872692075591999175823101569521108188598827062564356987949571435655662016933106890916558771165569063558407142030644651555086686241696251406098547125256755785410343534169021728913633120990981973874312426827068720390368775760430542161136939629677122141136126374009475969211363054218245918561753303739146826922986507142848175100964817886606135722921973309559447652817846202340172480020999371191608834208918314966126702659465151477563543692882144507258667121167131007776006361199362430604760957142704771793741488142308299227651895379340032547014498869560620500549224899983168812256673349284556923349536757762512313185238279310818288203660573986867906705705914579008108025863269895391253153312646330870195756893392797250264181183623954657919196092966003388923999296596903053191216156890165688508061959082287562316485081205077191810386415109937310708725178052383563845019405249240849769997222082477328828307789470256101556362853820844793765758349423306957779990624501486412454053564021969450735832136281189600144619316146866899357337974699304413618293735838787834064579818753479109310782597833191354685750511641816024378862731732772459047856828270279271078800783753154286837075269687429228653352842527904795563652623010522719533144967595486159956508061207144545016031639237570853862241762798122101847020854557495771418517799681233026949687212521689115315352708630341552122694280669359935653708824872846988566535017042280166391056513101157117251302779188094727008872593557569340915067395344894315168747814189139814562613756942093199512472373268945750768905150836245677233060353987191498346069727003972947816392435032037087701891030028126048596012462016075858919991057909164261444828984501305255660743488408986516355597294064494881035308347677548919223034949771219346463276416888287492339565334995100721230208103857375054343691277465059501974867077005787454462045604225240166719912668809754797520544817318486490010433154706375515642234519037565546936751208037679336868791165642779320552711270882367486007406568896002808579215384139861332964604766094361519807725944703529702835023833370436092624802036794784942436908632180491186842306700841968230554008132835047607587621450701362427882817756964308851547452771442156228993166020858764558851900796995642567192369817444982888590465805168810216039417930940377127663446427985690979283729057307136396133462336212357054613030722427023101645675842466105495462729461810624651610446140926249234905532470087128848886355309905380773190775424970605567399004598470795130720770824465233576128199426628638192196834325141656686384559609828964089670045416281734862869644908391074948269946420210998407364387834252035443337472000689652742785850131460351627344150477797571881908502166607390270822967932474999231734261479037283606164818641761921270164506252584744507103010281586714473647522374676681290283292577376305717319146286185555521869121478781967394168043216775747703574204294345827281775860269656516533484682278350560310715739372553053638224657873034110772274198127081245272760828685771143575363468995497214312898625251452916183136040918178156485856280851470695702937138289600296956232990817671118967041240008476475170158739495671163830658476434481197696324902017424021783602215859003601883992389005692851141792337742913008802026946294242074076666363778508790353804210504298564570733367316173919100448140629394398502909612243141853089736434289525344356462242763989064367665754270446161024697019922926150081196053717888249480621089082434589783310684251500035442470367194321768996320884014037370754199754326390782691545949667896798282998125295058832529758551820977536532700830974534256230769338442009469374457660766991033864802545180720413009376178590174566837351966631712792633007835055137800463329986455376357874784830643225564102507423405768689605622645366719949297829116108290386872942277547341437754645355917145434536139900629924024846612770562620005439229301233700026933290353984165793139734029791078588801356665619150827373452600099109929704914318023600460352976880074457025292059817123767688061758524308660871803704654221136245087723384539323034536204210639105306561242099353775121196432432542371403044100994178152389192906537302147297233517824798383551023970967006739073854389927101974240206615630316602843821026979125405485123953087349981691277013527868452258694558998993780298407514334212315506636453942953116427712937703543031312233702793604626143091119353006876653586660038641605870563551127170635923016598750384191565956856641808787667588867234061759430899141100847136910014020265203173123089491563734851792026299643670064610000734153020473860994360417449952602988423960947863998137943200092074452951659897050246609248892590654061297255626908733822969542467385116441176471250185796851529409287988265679379785220078597190117461867840825788423199137947125084133486963408591271486310674896462899150873088955012263490520529095030889018683862728860537834913346665921503407688023501248487902649030955547528907733168302709106084828501581900769982665770283988540994456943117756025824949866313114726899033054734883587306446759197320862091785882130091338947243738037506724899490823941904581604740882616019706301456613611339927191058365358128840957478253308309725300693606908492359437766414675333176804522771140169951250178828012328951832161462267611461248421258403548788531798178236458665726342053989154315812175190400477129671272847646552527640175254865333982612803260814998529570630078676713353902231604932017052150228723649926505664757142705586298389717987377573910377983633310501729398545833204472284334089339471711536332060940032435007183747340063286603294824646956538345341460188285845101850359322757225285575028841010626625539372301424036629044769983754930027977090510699782175776516366737638805503681369128513181341661911237421920595434380686288234285981079530255358454119737188728238297393853466399910164587644499893586679442302653102456100643279677170110120171167511359966620513134006555594789531526387924445744125038231760949998039302515919428928881511027916979324750370666253921207165976092992507192378089527798189016157338746855357399659946017437076534250969094439087337968480297807265211779972056852356308972117120732336325202112507469941185797656646225371707784632584696809338712345129695955966500778158882302378243693801488435211030192613176154468655373985800229683004463791347979238873698543052221653441593821596852821023223806506517608212110275888534959587475216668114565485296355821243522365084646160529263719112060848903306599825372588397415931122840180908916454711994791851676417744826484063737699586076521406183534284891319917422305936880405156613991444935770849806049442051105098542286451114558423486221033430639734801018820417968386442960367332130996752236714569415649840941442308708391963743444319432219879996432811433121900142761651070907586536898905633754032713859258812662903209455009055456254668130208896200935309090452323587192167882199131410432791311693423193777163547866846424061498677670422653977202570129102688093616416004038148590264265312942730156737095947078360871076225686113587415504786735118574391496483987803532704391930093124783381421210761342958927517957491314946231091123920572690094822176636687033360628526015069475281774331608481588554789527793559114264488322397052631313314315613597382355528221111153372640597161681503140970121784157254777508958470892650920081072122537216484957879558724863930655845280811835071311227749936413686770883603140377588266984452853808690823107474136218102160115970959270316258816633229596777319279860129553780387818640813055868504230387975339119856389977769472602562338766385490401004334132281318769672302768534106376147197741381755746335050060339454947572185201662907313943349870131623977618020723460607754352273800932269769736887052472708224742341531813430263131526947675740617574746994168049478585443155400517065927971227841527876451327741088765804907638504982100554696475988415929036089859673119377009978158122218034619745202397788652509862337352425952223648399831708998072963290293488238490681267335739069421072789827862051403879406818891548459906912990919581901783618955043254962270411923947969995854694977643813751293825671863581195330192998454674077133325993553523862705029943094388680889447479398270946172509194670173111826314907991291156691399067493763050878979960004825557741914250487436692677688034962929832100533511324452289631919382432371767150824935233265231069912164271397809952914656215143026394352059537948513747731272456648300544020907954322167883551656946451159613216146326916074465137182824439000882451201007521975338530382322454560656568616849836563821792464099112580255811194601186730855175867300424341729476823539966880785730608722420114353101245448251286842205959752008477848945303824978392408581076707029401914478229945529568501085080759228346393858192325177566727581959197552280829201386303987056665952374515171797942171388464079668517712586169120694104201915461067385393692765408538231040109564702942352483842905387012920378007541800855936894778159379635802509930848254895322695649320122308461048509263374771557349567426241289419291004555535916319995412872025768818866420389444319800018028429667641068363383902606175130803526403503316258729268113408183104961177014192472783209894247433572811756747120914433716832304436121336442331197017839314427909187568686402672664921085737371617853224735541442622394614084278144457395618138486941079715768544016294140181662089452081563428127583872450533230750125626095951589546751907990458753756459446649501798479182710688025919187025449704258024637174918161345146450075192384210842082654830833514377522246527173319091432116388816129855591298337801533908422078059886294037760387854261408934783578551111891739442212583231394752326105839804768413242124587821815695279530936503034257682924862981878697111846902772806224704252114609892549887031786922161678364698033702221644280330944759514100380787170268651203028420386357946204185465646531666537369395419950494769530142389658081535850876431387453130331010594736816116001094969474452644527891499469474254050284184840919979642379271325753029819785000825932150489480458081837696403158641819382880757435515994931014730484044885897336440259602553382218372815373105295999046921871383383124567260952888275504424108615892431426273788132365375889027404461256125974242440677466015416894446458456059892470511470264525110692519533251660479364905140014613427040427732340584694789108300419777577807979439923365282744259978368500163126490921619419423792046371713324601397959068398199271996304333326796262408482743171159358128374487869894639671640865671274019625803239199537154272331975084488901321431757257975756310323303254004586525365483682312135429213490845984451129181272351185609131134541408621487665424806192449047613783151932085928625272407666078773922206708313591695015837330680588627891542936020777728163334748494951389647877135723805910198770202805088787393530424343360778900823240965761094540310337987995987178190526472540838796637821593082004713297880384331167985654627914316851308508157058602881095330502714060229314867698224205108343896131116720689254730778759043431727927814487393091786554420066474089500482851714411077733356470830724424541510500777990318181707879123349309499787337027829101143761752123152741053241179115293989861835414437801619641308409247652640919341079107518497671079278618194627691147780982120224628873279261334952502389565768070471758609677103384164609176025884624628930748185680604196068642111391695921740017713410072860353843194238599503056877240151246947278396409715189107268060667501390229249664893251059879329661341390408516394254695748418476894444659294739641961465242156880897489622911867156003046833512175812416341581980883868202422438368369561704371100763516528330762715538912799964716206135582690870702452168542659591877781732786840413809442049111619736421507110536737674929868476187057342228088760544792407873893359218424935965093661164178864570857029649091715240944629926395671100637830323503425948665619208609763144503341604459952938402236205357080954385895822304934829184430995041187658970237027576969459691273845639208144322982296449384836590239057146268683210131521568212070093124462579952587376070271284396821856490598681482303031051082101656674026936807908640313223491252586947907974712570237608572146309079406966009022965507420996054540172790901230790608937556801446153277128273138860562387172889048541029573884012372026352695826112243453832100712199271051379828474670786791061245015786781072209644461971330907037746561368859043051020649623250546516346448366901781220353240703217246570705356798627406869270584489330639513070297999944759501846039855759274821000726155467731812452472497263038791059686741984633280430640150868342109445096123955148529177644186901680297965656922017001706145453962948938418196526570173092051734154904214950549057126832197529692553755140084882909662784712326116196029774591679152354775102547081621215461811494265155970050121306802785836606648660429021487398896417225753812023108411239099399121352741786691879464739589750696036884739773155656507319966498523149928925757050503324903174465716029876851119555057689385452724662574839341031550209695481652581514576852080449391036374328012983340092607063970453527987737131799986830696788769707944396198041967349358656972372774027488522680666302414460398984018459889400699613442627426955802162806966802465223740925749707556597046218655182553284712113582404255035782147300555279286418114703356104794842759008232372161613916866084993538327873031346384105829746783515343914401171022958738093068726486099855044501713322691734852618646513869643809431997731582398035727952557787728102334703294536419987936440871481512975444328427422823607843498409787742290027338748054079104468414240657722520714328945431150597104483389939824140107856713366150395925950891804269846531541323349307075868130533584092993963145322604986114199750239164858672866390678593189843857068381042420584465304494637313415407002154677082705968509365424772907903269862015077518243453006639164197022103974374369823407635003085905031488443837231371193297072918169267585956319114006142163781924288512910325068820435685570312381588878002636574844823243624091477149648976805005067324269598399145017089883747914860757015534089416555781178816745781740666084734206882982748629688289549083857189629816531129307406165811134779093801275574415763630456111660600725737751059865525481803701824344022063806025152927033764047442650877432619327984119334556619903922811529433982457565548509282424242484190668630868497074667653349260228740091517528116442885525790093367382386687036344217002026873952934633408582471197857860291063761965994595013504317915425719504388231297150407752326160744103251793685926421023229668212375149644400693236386000153355940379302199578503700331294837034213242065844008695054181853505713593933363284709990781910927932772909016939389235577790133866555106728046932498047959054117444223802744642662144627765541771699173533932713993827776005149418020929394564342741394730026825546183014729846849617649621457717143124700255652148109659040530391487218658883465437977726608604047874677739711176054009450028992835867755132045665509512873269854270849709623859183056384780415214805511707072141093756538673048147617836716696725560075301647657833311669197838456190396255147786125291749662805097766807004686490919481610178148429975895382432604876204072261880796395012429039952660484253417646003523981656891047431185984177778662430133639600006951241508673042592434993599080196135578946102663993269803946464968281943744638641456072776143503003725720977561835280553325859053523423492958594374666423487456359363935491056571287892242056692331753852608378676940525591746349189687023176855734706600454768159291577909905567787419021931209221878138042990369297772872669069024911605391534383201099767530324751713240055001819963730841397354321540032972724842067351099858291662130974487984567575402998342928784415723516612928454194858413022824044712069154014111055288749304373444770282616482487595330982684626428496005480468634235014429744516840520850247777958773112949220102944727100868629595208081801453863673531340094140465318068068572390646650263021697469567613796388611596019121175653079798620592027923167624338254327704441364209153108528043660324865086541882962718972581284082007727811729748114134382102127878917248576861858183541374395569601026014014748414925165640312643357344122511076164965364828205414264604677642286019302717739274792502789670470040194130823304130824867638864995126736513413390886435327693834640272738562134245515254316904067657105261280799316592674912293386082930676861173108385979029840146309224364072054649291137204583600901307686327735787668347650338785188511295265381161788396858560413973830741005876943180508912135057467797042706664274145394928757617643376647957526457701299810017631865614538590445308833585457653705830621260643095979540512651937488653350502316004581496942596339927210629646147462066759470634178807222732774127754401317357470828327595372071416697300794130331425540419704083847533285434855820100134134006988055625902072525115457725941099905059225956280450265928826320457682721968739283282347219183568580716882004591480206605613196083905232918244120365661508264073875329470477510456075183061920630667093297587905545305964484733902627868444352348619635259454238841214816970500439519162758436793606957668739105060667011953819279175963237991328291509600235396859672507081156734290870248429982733002225426215351712098490187529768705302606218601265973577400499401893982575018320096106236962209031688218489870232183651888012591136350073818358196260677632795239094991199609835981177780949769416784437572028167908458236467920038556947398033241156320441508988326663218987244395602006645132111307616808115899209569067026516115742822188128682644185480079596022135706457259393637888282790153993524762025329731128452847295026004485667965882722557812969310883749511893563301159131869216667269484233886835566316923839707759934545129166177038064896851999098174573334349342626594625359988107045291217221499529820815276713509941250561118987448761158378338941002795107203317674668936127884814291598645899955449807360266534712280330092678698965410661738832210133574218611277615754206185243784446512688932009859253720637068487618596794230147698812285947564584777962732626033903548635682034291732190279705662328981841341851115909531503543250404344050003727336273059312715664271123519898654907026943562935169924917348194236808461628877452039107021835341706313444031200321513217273454429269924114140239815412464767820786489823797724325000363758788275116441678091551719906731103869533570140241728043194106898086158817076722499481745529212407424475886930091763107767728770659026821190320761810371846914829747941327738986709050105984811491471570773430181410678626520196868191494665136830742837231775184511104072624482468370072274778001931869917413677138163097515037219765336252406008847365290086517392999267929110279053176633123768582828959946854292416719921597439457954011049452000476860930777480236106863250161598132115946877674759912289891747501685215666285614916094776416918908593412476348416413723445758866029105980725126865822527828971937722309900347371912373526776894587998800626096296226020178309376771136134735943247199369543015051361254491335183221406459248980661141262902634526388617259949468890373503385223190307404027989612881359660537680125622058475052493336928447344467751106713008294427223749899790126684262070519210314920030375872745873157899807422626728028156890053735126599928815713264687137085752978580756900221660339471911038016551424838445300741613847310768201182203962930679651852034616492763818832251430125873557089926052029027661072926524738864016308089344260772712569939835267904436507501356732631306013607741348987233844600939912236437353343061688173105493891494378290278493396726875101669200579326409640268656816085206353482649971352904601984745666057397949615000027469540979476462473290076466935662171760725790813999496951449802717545869399421758168181253698508753295588953750643270901009316092257498979791542987173792488547327143435131312252327825187703942011664870071247752580257509397506208031678394997397560595550630252832110146719184339898924598991550081675311660756262950747892425276723331272172115640053479195888143521022434658678227712116331290361209748011263190107615907973349727623923272035507751854954937676960327701347631233293788748373909055622359228879207906989376711043514585092509982734520697244895765456153182553065829978496656363714938977461304458199989920867495357491427604593186594413706750652009169537613859334290394110881095810873743813277799102455293064003310930826166685937886529860100477966514229340370892419480853594524904944601374564424571003153544668027288608932592506904115987870692922752705628630835719069976327270461256304988242647514163100761818725308511497866505528222749578448895589369646162195986855811563681992718075199613498705694134815424685714964748791163689521276477231048462319370889697087946183601804669290217818085243958446546229285915421128260675574951508581473226260291912564055257926920636209704855678823771854281508978017857684729743220954065087583875082023175263638856986099242509007724805674248153920013945499441149502320419526225449131595814163878410351589101387861503858657166742158590105367015830869318384480817581073677686191074396159905992219580471686701600758420843716303229080947290483950127536657905295873420506158407652258772150685741025791350051771378176343377195374949753382321336045655509697001907471708276010821542417050561032479749074607090106154354779520175301851898760219542914574853450658361504237876199743851179375027389912877555674977717426014776259031491250435098204649992114212402290052872762429794130114446507904737297246836681187687392862212377942260802652215804268795361205308618646362729930855014355322114282130273747004978157322257072150514260348893143785870467934784646598017711340324739387416433814205374707392025019795737095524656470570626359462893206046301342578849089227661120922853059110638040231553595064475145772121288240931046756093551732797538448719432368156147192653593051411042001919107389179465846027863138451695271098935898466180806381365220049498296848205972815271083168163873145046286547195766703459856452021324198057111227225712990960140929115928320722676855420197504158674323379039035276150535047277741353427096412773982683331417931568217819921569126627484253260502631727923277979874198185806027070300842827262723011789992342355491515098840761790918382683673032459544019972190915622918581959924585501561702648652345130394862689413310908833918330449025297108446664697726903672718565192196271709132021737408454360138283866163700849252941562233595024507191789696022123105008877221605789921920332642838980179188393142224448254119179904366177733730068074780253326798047715563628390959170226089868117622443512826594441577460508555785993616481323932134079481154341637363641525334580528139581397155696934421269777342893030683742914170860016012238618587577882332451118947517008484000917424386437840896767639854578614273572476785410971118026741719160912639554147162327384762329018015488580558410478951072782703307236706808899553394621371057599662533855088728751279536340577916243248630016868185713560341645308224389398761107765518193955128828019513416714478964905323395127289589083652417415989021191111184586712548446145908635548844344591352614895830798478867590630803672539574558584983904397608123832123542871345538783843127028730044962463349243889203238885193389419765561087870957190303371397513530103901622633560866133330093046540724393031326245929167734900461563466771479722613880485436831640558860531044822531419060021555007835668122660011076896460389147440997524237579027413563136757274597948408936564575837113905358703403489933343710218748788385306717143833556428252206298677800729529155407866098754199196846291337388444196243397462823172136258715473744078543677925481341200294638426259018361745401213480656256109125990554137738938932344923197292309890678629033677192518888282870493938346630791378538390955831620025477117973049050388658831357802581674971482955680844844656627966185502685454759070175260660090161721583157070104321260208010374017166390124400608376682340971849132710191892691728180405771298586812689206414819421580494941166050742313145156532478775215202150360548783892833879089908927904596670284648654802802514716076118840773303200451460572169439501781554445697125712968404506990415906937129360485824269098148364447894231398329363578469554840761598276312432077596094388805347672399383426997935025893326311986976426268612682135743453869394620019659938168684006429566361016074179460888796801001957719348306628787315814476914992157134464845243577839254164133729091088755114458068050631868765858185330231414509665516143225090132543391407953452976182912998059219338803324731964576729851267150981940616328347156686256127340039235787649558727423457859797346285258772636346613153020079174671468952639489727381287034036397980208524804015542459757787902358006265740428564485508483003576905110968357662566573306460158295639012949268672590615982985424582521930948079769354822064534663405946285839325188032546080386016368082745998683834019121706530434244364719432021873571881174180688259909911590526049112905092212030879582119438268479190205485604514019962320772216544880501958934332155884335276247568116271937879511541396723359229516651637696948835005634483002770614727680068327852108455431554844872100701259477489969982305797124391264894978612930264925392483261887028221429415997848548435871382066121247091785258733328840356629047531193605395848741682078017509190000016719086237748175091938475088647892582927017540745011827067520654406092931313547476001274761081292610391975656202824036697320215118486285551138272715829112966408181141430912123233432949425492492194031190676954482710939547559971102207198850188326374682594875581043001837675389934944885589730478432061484817889229808904797298152833051880792300364274100348254211790229661680464553578184901905479068578781659807316974373505347884439616404537402632637915214441545124472966482585549997922288086560155462289634028217027358541338559012093902666714377553532797280349808000829137609964257211260703341281086471270751163200656357721129110781811830007774001658966494258320196263225563965225063108382694432915095688787253458678148577783039016995024190645614646998292424380383802657612385761674908249463541321167975909173146621996459823157636265639147019961988894390889852629904771376469715381436367054691634944536211786863260398104060914573954912780717321816846957959498924832325611275576192063544832536342655486983883233570476191354771688192518441639871843838015311594522685296703826596179143990533220648802740101114147731493797543130024664340613259522054087103260121625288890950489441927576281235849405950413500196675700318987100190710527989511382640512840205211832641091309486408354289528581066082067544103395307925065270574418245631470330590433406492837785806378921877813300039474499685619314423018903509320896677556109992184402683154980772980356339565422367944183720577177427491933080818511021462052559026742490634463142937050864960155144956977065354199787278162249425940177910161757779883443944036362811388943787241078553783593632837256830457538722888783939250237646550276441703982850446729016081859474814202934621181845627100292174315216576381971842792829468123761035854239363282719637116060683323783247597279002665519693690883356581782267872100235229385790012690949987029980977056805561933858569060489930699932707851853312774577053970257992656721283106795594328093122735993766545761235459094355018060368425941501955951083879150418671758366616056400903960609103739781695822195144307632879407109340550938626862842135922052736669140282458244162979137681892975033233146931967569366708507545226447686371203091731014143495118276167573056085963747722001948340342515067813263352728193966926256732783155474769176473615439081375164302132448457802663354106942704014149533971968254243679416351758005229362243882163603434809514941230926466498772859262437550123991850425254465789575800861040463140340620586094353504576574629215479516091431262542107451415273408875346724470130257354636357147705904439708411705905329661760578920305965817697510831312627496323448625572276949092236794012409078855569034512751217769817803530489233563113196500920504392155298065470319716730524009745065466967120594074604818444444498713926448582179793529178207850556285096630738107313437736842397654242494238137318767551279954753107306195732806959956009963433445724418325872157795665467251667220210735694771738269441651495400253255151161600180456125365465412665077044424782306960164411590431352464449502498938958356290929965095714803518733157288666853280267054188973251092478633802687572234920925163786624383316783601915026313299397728388962065136616646434628399887394363810780188027011225749478714198872211536482268476461969264676460811615262648535097648964088268818638588770378856241083344691730006501895990982158897685062382650639899243467047398946438682438111988592358712006857403920651396642244414531114073919270516683539482302665969694650300477730080972279301519446510504983902490062071963263385320388927389637488865734827026938814397069315212904857400656310956815467058030688149363827252669246867937199182557228797958792265783489157352850848115648818290719268568367995719603560491385055549660432963384700986565554561591938410724805428525630788927308734501129763914731582405605575303769436385782785930463150070757504173678538682936229215515269757922388009067740632329800274773944384832694192113945548887243243092968954516999563839354668635632788383481169220368950392361427966121717003597344868607836452613513205230409557797192487893124086473244133723215064467221536282871882859701225063753492681551112123120459438159920224799513074943000861310007315710732389960228950862327319928378745068393221958883390046873551636601864907518032588473697184106747574994869341664820853589007873766276394225931639818124502001723691370631406036116978574180017657719529022014987460469938132452484286297102597117841466965342455275920527234407797436305766633239971505931594529793617409672100063173915943437639481953557161748190913250130027724967297299468436825439079397722725256404310312908353921156816607728797262934794230750975110494115675612513087320549920094593653811461424041586284593955237201142997401067066701717121817967599644031678452099116428897763274240364665318398476335789306890267753912985336441550396437605183241725039533355975841359729366682556298981012360670188126064843949751040910000263620036473704301934958537429779841083094346619294069639477231965849169762908606778040391445224639097271334869704257598692418426338127813808176230887620043115357755020603266054023485489926222741376951566304280468302330247630991004245151016181667886423203442693126486127941516909872678091405321731783290866143722379865086716468297619617635162585289643128887952942268887273591639868776554521483881392582550918054625805430375441349411027100124074023024630674034294464249275833242733513367396126166202612578426691454473649561184861057007627610510121891240382189425377626079385830301572119964914943793427608839885965606451239220072858441045659879260401888771619176988217172715285194073182606190430867086248457859295850977830669110912932634380664438289827747691036872692006012594383246595001082956746754957821256806975764354405654806462261743663700987669435857283186320147475780996211472045501519200020589556299184960649543911543793498506015874293090794800045842955949897664265044204328697767844039923166937734087308759796035711219029759004010843977656779080805834691450026377943592980489383430034496244086982977088865116252695533731053218681796166098661248067671875831314640740850524250739887424943915331011876902392812536160791187274303770928643153369525200273149001719883248567132078974147981949413268348293483530509717399205078930421940884885748311288441416938152539755882289961233738735423550879307743854858963660542696292787822332346531157268764015511715466925191849471143558792208608783553481678508355067961258034924884384638239051767906048810785016457452663924039535897688320559701002233769916593912319784172912276648402999784637394528041174668306428046238411394565047914112250557252822102735727909216331242260006353643387860055422929783483776117417899934297407271853481892088368472258469957593026807353346275151567792882014145001237547082781233652940350317186708216976703711300731149906032751822372899429732805094180395190897922013552143713696083311418085349271377933808795264078972779215817055361513267815682084398302851973657127230003636757736649800717775152829935502791755972038267573288288255433825034962936223029711885145280034945123303532282909436456228816467521516532441703855288663287308235717184259898347459891032620630967201068907776686153587428683914309184652315807308297800941493667723541184919643923564020607896523326360953795104019667644653065241133112524855315187740497851039249243096692593370962521531949757841722906577294717589812211189718692631951329321440855720008358131321372968235004581498063302763688561053378514122958612813617260267461615328796020540356915372014737160588616116294789951675515376868349869650957416998108965424222094388024568862467073853984820246341662567744302418178402292827643700946046907242736217262055673804696236254277357384193902057943037335951221774096857736766688855164392783345153215299982849727276004010900965587794303832926958113953251418384212119515352669086775015850483238579556205299484317605042011749624258737284687255681053116107181400711221667372344352523732109602844559894834176934284538013744034625282210722307979495348835039594844888251202525350999386453162245458257951774937113957666481838235746319526245636178235682148412375263613113232876830449202397398930598368970753040917720584109936087637964209551879529211305849893679947114306834877299724988231811558508618755223111628694006717591471691719503436000300177763143145984804321578059450452727054893789245047831078020088884923843353125286183023130455700450691676947291413026230496168326402708971058900576647250425272944100120053590916973943141783386612472257108233498577961707062378016549108090158302119757808614699505643721502176993997571441810218080208319746361801491456577026522005213994792284253408964604851444724885379373961755085919019207818056864650235656445739161947503907336155961611628090294778815426645399659069514157082363852257647420998631971213161214460806402462405765983845061352460644340948122473800427791085404577279383194667950296101140163059774017836044524681538794407622341391943002629246996238558394817318662123336735669307769045199825216271846754605733233319067181954309507308041664162536010013076728675958232418644830427204883843526042496967701902957690448835058561768379899221472070662666325203729566792722438771554823672760035574572008918847324877982926104957243679232074355285179374474746980011579328071190270625400085294974288177301718934816392002255603949220822546509762887868013896410944155450790496399962376653567440125122793229259673037059821758504169570537820598620456539417868700839145117248681072322971136961354850742848220418282040790082052843375762424103704545137106205577441241599259645713522592056955554451194727241824630067311851292289218058766943450279386872904976212359390058062159198559138529091082838791426092673543342215642588148635403075372091672893764681097324137229337187127093561698403188870983666609078043910317736227355046797117163577222698154155343135154874083589198394808513732341455775123892909116576011120648461141599698195286092546784683521731436220116964381843738206990470910248882630211597132043220734474300300232883325767436112578482959234500348756479638607345539619651114771595013045013183575034930633917670617352276160784943026486622469797506588858997083788236762982339098604437246497732392550002999102599802347178871568733265765587106875860512614487757225669749765436701175853364319023461846144442209595894493826092006455481071756649844673163117705679902182748582255048879213296808280819921113865798590111999877268490951283256655872088255050650077739574293407598966993308052983618694093864894354000849609200315959084231531974802931229352188845832883854956451469928198836474745603600051022519947354162874495701652093004271974361417361383487717678221270728758563764195630290801442793687162752900683417472772646191770876818777971651250292824364873845797932856905074217285188692746248093804588502334154003935056720817103236616718732967317590174758590519191067094799751903316862554272679482390994258656654779724670239187507317389061267050566859363176455141873762706653867324790828883853105162426492485205974491270053711530729404692522142077400822499147123149061088159131685081262661447131491132396930553157512529035911624387545163710831056367247163567847901576594071620160848065586367853159540867598658884190337557947298105806573669402290902436265938921146194023415593292500454943650500052911491177013042631895784166556899115468428193753497902607942580038974005541435029923463621435498527403282713343033497822978552242826236732347309798651676516857431023587956006577680259801288459101538244456022220412399863843478779722273194229330005280152207888588470243471255834204121752983038980902012885765438363029766641251403855230331743952089788028119560412985239392003466038821846661998219409933894032452559645395486610760460195534190403350265204697455149140533393482909549923638983970982548454419519819717483849801740374880706474464674213010913488164540608750357354514747846231705152441884672933357820076953451677653193688635926060744146690659256058438190389475586539408879062194887501020924919772821318388169583645690748624815525567398255790015319071973264926935229765717432942842264362237299982582862874651905191576964633536461738833875915979525061583701942744278058146118489665434592461848428579652352136738517553269759658157548471817880583400060562762066262473108131145968662029910644578586475362344424876339905713608456320137906663102809780373730583355515175828487864334598091134531496635079261354309149046511163611959270097302563541356809063167984304923256828659920964620394245895010411543900817179386835543408592476478133256910015180951835406998760122167254239803117946746501221235189288815646446523232157071710059778622531276687322198677939528709919865814684679635201607839359158281373645037607900576305572699542950864797611141317306510052040470894741393607375691699936346182010091613999804524117750715782061574810568824144247018270172021703850200251832455838395915458213717190914539978856902878113186495838826552863677646004883178715362535456830545407685626929782632922283530623093004271514092059910322371796817197950120327886983016047305987983454431045162491752406936327786954119953074495112041275627005842072181135664729884305493964641918115079912171893904042413678951363710863274955135748269124229910020841287388641608358053818611071193388149338318011223154578765746910170042424259486606309450294437125929807714687372029209733211764228944779185031937880783954280407123920224598682225629752537121536511139751471701293689776674652345742639471560006836192191120643217569441778772942882608061260438653335974056564299646696419035609480825959400816554783878736749320059293175253316847347215381108706230420578400806692107769668947649687301349385950747327183035011818546122705469270461996673662376916392225478132809651286310614694823333233464540048046664768204314207398327181288988182788733528118372632196754411025651406267375274563780608024321695915470308764589088542925254139886630023794822056101396055831695959801225276386632759563240764762954603551850809901115361046167706429244271891803784283310657276106619503223479425558116959000239891088943812473807845468851403213594115660481057494435037998686847527091629813027934370721752500686126445698326367644581702037588910259600348069253731717564155102688809245226133613092976850623787540825830692802677869466645644993898576005597249618308746118696086977783803291966030017186644607040541964055934858935656842441471426718940040642673535707983532707214670575698863904816360653144220461003764468418895676718331262935628048043392772769551464592448498297162347829440468997023663442625612764341225965722780426438353984174013527851342311721498243877628421854890817826191572024319623156666112112439268854643947076836343981263391891533033384349372190878517660054551001296870224270421412509840275427938546851120188715404440184049951512645942349078956465648288359677477977321914298344721196716118339412436912652688457058250980660359636980154712662276979869342155497901809676641513858611602795730399604840913650280851208722094702548432985672122066033154310542116885610250677316064606143241067082402361805482681596306410565090004948556958161128308493027092718822683026439977174716435883731879673381491737251220374285101860729876664905219171065974327376297511219564353739819394705327036057190293652467601009827016219662551394071289941719484885814669879892954110784400977273987739271429469992077110722088325549438550203552815017230150996736579089551997486365280361440794761488546106505469541670841995070756666731736602248642969092541459567027765079666170596297047973853942191789851430688019155765209415074211232415643436727105690047009751112528811710459347639936380144818336753014020442247668553087464535268812697236731698576768191936618000208546728230551048965528290834433713727295286521924773485232745912169646444933379274792468288860636996838488418790303231368173669325249288374304883404732063255819715963058905365524051636375020639817751357890788100350933917006895600196270142775471496169555453175724842068669257791019216174868212168731450044051563270910423447665424143041912312452506737630967341447446709206569149840185652107125438182228957659299235943961045846796302305788378456071088923399774906553441273568938337119266835357966898237801167381693312674114230687093303322668474260340769538059311350463271429029059065502534520444823887425336651258707605411113767031544973899719694414781749362825248431545704013194362307389757458806150446668153496494163912040938479167886849162736894348322892905656925914707017759192750136650030868748807313751807481950919572559595141268645788888806036624919494119720223455400422505297184149928376084534779246785876724230403756620757198669219517485519541660806632262266788426149753539379411822462741737054251585886431635181062322146866831705861938139517226593485119716440755880442665860693920095981669179103565199519320422592718006404592708152628656286226752827680972163782125112568334193442922823224704022257999517966238223740838879629173243809764933109431174022891981758472935610525502600590700039861819862586616135512432562845784671196428883443147711518908982088443024017372096182476382749716667927436962209128357028142118020239933169806788598662003830823184478134246386532245516380295654347421110014170786323231705422505362114058973297973697186978475993151114347006344290318782510959386029010899960707216794466080878478591514796114603369521356857922120213153622637277927172397811888868426650518253737964822708566647616647856830220078245106712712256285093284885292716661314762929110935875450383896034496846693806102273737699260858036644801664804420554299435061695313020509932099929802851648180931884390729773384074775082281201800004000588876479476689643575004830642165065074431131966701589404976953309856647621102035234594161535632659253137217037047316479244256352442233274840872716539796421329772350602673460689849493088883173562056735046803701923351825614174682762007726307861346779715216618057045003279128944278513901033855418606140170274713199379703896952782188709069833153290819648621673380596925096764323775875451212053811456250740647218612093287229980082558229372685816950588687851617284789322275352414324757288913376529461554222087341078479405204612436590791703521495874183976189288042577471467090999291301614785836507176863391714989473765871685214267311588057205088702928053484643121232407424972933699436508397086867393512969734116859339555799366317921452470684684749292050734951751861008207338521169030221510937768379730741198257152380997278217925122919322735147317875959178052262448597849596022634799937020518475351027299319297951779170134434984832387632332230749943778019265466265342611613256536822881473293553742568018350572675442965600409723565400935999272716650734634080133182702410224561742727129717714416619413038783973163457302849167985344298511719898085243653415779925520885327277626442616053155977117452635340994710345987819549479094210947877333457785419273471918394227530076963577350489973938964382152045072898021409315038055942089632211226461992662784783211519639049133311580099095958013168624606059819318584069405522625538001116971122625658268052767254134086034338699539410660970759473636226939528732073791599723342464754845590764710787094792748860036930196644425312825347523332448643187729297177728033446881454413132619578481288561458584647894204722097870240213458479542999028238562687328617506895003952421694806545010555246651286149693508427063121384282945205177438921774812634480117435991072624285009664016480791864046328090726242897211540100844561305196344722226954262212615357583836066896952892301694811035199955657794309459668204842182777717862950000010235781891173534319850162448722741062457880741931145700355641257242800890725638427583249962796746397997415096819933879411174969477319162144353851425619077669032606540324910716694605716251305507014777084994072801378944791619234589497335447748746907054557903881733064945535907483520361378430269638780546267352260704401558136232676115052610464995956609979683560454135257178765366174305590749173310710281571658328877275311670138802932569590190734372561403746084422771533867936215044248508233946110294165151801127569315381314465854993813706929948009289688613446537313365573696140185755165449962256601200359367009264677697517458831692390064965425084633373320444676617295580106862326054520930953761732872418949915422398124215624887621582790311589949913011038493730621444493548432886991689948230930018687188827314388320111979891040825336556851768905195910743931340952771206422035163801793966314312953070434520398139521789256566775900114924229419203852573858520427742023546607859854489643743560681431968687650433757282977396009228453884200591933995947581194881317312540279765571587176716835286807036162966136268557698603214409388127039402056453191233319163474353906214645240197569349290194821044674593195948108960909595153527232802608672899097089803153579573276592315616690451810346755145985474635079351776284111700621178467911795076907828615185729515299318738020508919467038181238344769610336650008234254064176156591881219088594495341022826173426819023366557868638973155994451103596766817100440029570748664815301165380653367146321491949146465818888796267429172735812448329349762149038885664461083906951659877544668170088897017996323631306102613340485918817873753104780457547958039553447456436153226402655370518431295541681567628168197020884109786271101636624096656765416513598663974901686302133559071869652835538212247797287497250776577151558993064375875392133325948062191790443881753510587989435243687666273257376188399027542239772080909790375427554224517514629628313745175360662744344553164599745375038815570148097798211793035455282975439495186181836305214681411140664822733513238667287922955252651080418283832338417777472280718770811725516007203554054990153726233393882149377800219523414995833131755563886286715554626154928644272370481685016135648564580410656172299320604146762477277288368747629013313355899767837669140802099814900532239771585093306578651445572266375485479206456679886473901991381115667589797977223661031094359464129912065836231826025056742597292197065319352408644556096152598883274445250889947567256540676667721954861623443409047934884099627705491105666178168603029218130909161610689403356675863405278904637771508560464897350537167550784088125790038049016606780926909900392106369853436842735554672399927027815616008055157729606978119652739159669498323548943046111515974617556572415694206053423081801095250741838240661633401152835346738625234333763471309901255895767237982399869185562140142032131974633355134648815714428968707407244183104476425301333835900006722863961849242547026207160239460306436714243753883593619524874010538599569258816343498365300387336991592782304264531185211044603506546967536241551855747815095650828233340065896603640481615602540749227889842607868839542610131311923774601012864608595653499856087020060577049193483875431166190771397815226258874496326001248087355094210141725104885503879997926012443360732209102434309015634136181563016491050385806357563125336802487372760684310057455322276319332257604122828948024169601599544095730626017666094026586241452640266144069280421378145399922380109115421248033796961992768340428579977273655607164394775782202577686727482311872095717103146493351034155644638587896346828065368071216401974176973593078681620698402759975093964530048773113741675989818878129185128489835311756803963700897960861495948083440783136575954321034883828785137563098603729299673252841700721773036761441008932281684338757766214234001874271861616486516025333409153394153751763134173407286111966182006281932351065701103026719787513090533118621929686169601744879734169080318548537868101550298765075908312653594307293251653285329862313960434407232744967858066566857117710161596154956600434825491039940987498302121054170090341581939087052025214240042575279988317007264081932382673041203299441787939087584130124299094252932532090204413960237258476981534535617000894691212045358103102710242776040882294620995322951392820310353594777118265092359639308937476527964452635058883468590720013912775142488187226814515188598812480368826384724919506177986617405801657119655667835919004853857698049008379867086162561310543103353201653928276582617415639296174519758834537299026458279348993606355926426145127041312898820193886613908749016928084271122265363359072453272780929618769431875735092032748314391569957056358408128209222377220508971684867572844562620248804051465665681708693318420040056657202413630979530750675263754223984581946538639844739811827631184069690810759196693653085272725050690367702563752144814834550435330716266900714526415876008497131278872149517383736243713928711780168724558279810217973183155929336152636812924582061634798099984546836068922456708237854272090080957495713712220980711389492366658550405130219198788305660086647762186114200297757149345354406455348169140627240763327070767598724861561900712465576056530794268747155255189265562908634686542937088586455653866209483749768943466793534217971001493676712043956919253780656857452967285757338306156033055653669848049486678775740453563261157139242844771539865613268087649679743283573290231361557033497633247211170540830830530749313051286921251355402142142612882656089636142440408336431667040683778008878023291865829986438611310589110579097237394074510639132166066584623414898465691045648662122573607131549807254858599344956671713532439301618493871865825654646922541617309978280517737521346139685212909410037579177218296724873877407924212964519356819779128354439420376058932937610727894237470046460614724031050461067540860064262920893884950732578441136870057845229576318807439725635852755296987934286158816765433057695627700171210164291307717230598659074610316257161851695943373878106841833125200981676147195292382185653919222893473534412123976811124718320596915804282784906700595822849919566011509237864356617005713092487210090603608138545752004872945454892351921999096982077935156415185960286590959333388540148876024297896906023287265237571133434715197684832099950816875981923831236885752914795484961432651886749510445667389025532586478128965340489953904378472246657671457461881967048129625669602052566199487154994491940722971897930335364487774097583994211907301583273529323932078016691383750694962678486011409998317163271728898730565394164992201745207494736447358953076006326916042084880199278206469014989528056001850395779514399452944616834041703798092000139328254884393131668346837748232448432710077726461993273128424916006445632385965883666051156707529825253967481294696063399115488428964518366130154952051644675790845272899624334190686335790812278727786021281036122728052372122156845109678959049626044285706733236520437739283267503777175868688666216249268732734669605493212879657838625346133244850447297024696768828392723218001706194939752208656290320387258411948948570755337422689676969268799539327999939926984262834331536519678636034061864951882072232955550648781852533635174756651338066783955974003037857487266431214302819551237584227632638818645860825820921072493753356185887720634388537148156869325597865130794107144680964816843557103280525996437589463217483983356197416043599354785577960519586735733413073208375078337455051236609628889889864232592315119931130447928869773825091254768406330137626157882935660784569626259421477679358468231880931383592116357190376669070051043248427531206851429453242954839395934693650334243795231352798209620786002216196274161285234628080073918995955101263389339957273197148883691687240047982678066856701231534227016176983371594369895026646995575796854444790127111893760750402408990499614072875628752588756797799313758927615627184695716011538720529071371872668858368101778434794948807317750082931683644448523362512929171377792461566201261851927622334238240822119403868310988735615082521535264842330677904243157223801442268092834006370424586034510902093859518923799230872290716435234684924716600297856882183213523591806951481042806269592226296282253418453205654879796252626550341590433228417476358345532346933299574702795748600345290113864593850931192134700469768016615875413169591373172736647836153254978654554920210335695078101965803304532748019763005625063758070293057894415031053494750534825777646568688840212969392484855017413720381000707207283833537036979473128601679317120276150423060812740127907418397306382614955111526939612304976041809073966322525823729296864398202399734068205511930216128474537518059060632622733214687536117067645883808161650353447382695106223414132106906865798754894908032680043682617290611094678042520314784630710149869008591655738616538671596895543905134000572450630408866289192855888384786201840591063062044057741197007973418353761845400972426702298362903543939612043011951570375671212891073266836262930276334140754738706196876107237213114983596646114006748740635080997633956383113537695675708999883542244915540217525960864536317632625655087133159453477192138749232707951088169342502879354542175886815857498902077513462749021426525325795688720945587276187165589467988458045402120886357808787662241173387509708470254060146581874438131945877019595134132445643615814334138036314865619699513785941129178938567762508803462412351551536331555568680445003293422664524687550394566535261992691467422109384550671317251388549522973300116599989059145042201289034635956695166879692440629966672771571125896145912776786125740480333861933400247496221172637805065429629870724908605393660889689966213299782811358148136309118904530648377591835748080373377856023073488589262633614159008405051208246424523367250638140190762903068668533426135650558861495422711100769651849635571098632872222657617764409990092622225157831525137216894380048100353297607675085154879485456716810230165254347612089560362620490114396631261729343164047386748682538993477689937509509600274725066526428713708427873958323842314549985231248361115084896082804706844239738478236936137133925133072177124927677700777016315355384048900250164285615802459252472098394030222585481961978728941596852509357301443375455901035006978581132916890617070544525727462333817201001641733579794407587659284751977107880864860396908274290383016809413339021226219011973609795373724253704123600295854049009610442211983067022752849811390377107983216391733583480286832508506429424546840020040952821482590560392797685369875635270974119088226249338105043687822022966571959333363579456387830210683333783930028980451869318346140697809523515602535322056081298964213454557630774788318831504283697311005711231319265338826787690844899300373486907814907721737305085081582810425357419566208743613605279666829502759556459153694801696632864544889512335397569520640087695859185693461655155967565960896934833356713809636714222517760784355143151811535297420262253621905304069219514739425603978936163407355455537669005915197488088795478331348679643687182138456363924839597681369419121420200483966228813655465654878972825175433755018387513357985813919682472968012733676878949924286038556225360351057826098022838244660702962901455356562289642357231753634473479477056004025101011516363766538219314498582896691606183844612530666936089858559048585635600820769255549049497579737209853277882947751947763921319963275338721145927952720925298189980072560324742929033399193631935337778856087435461263172795186756625679134614026223898846342999080564922999325939874335957551330643319217479268345080361251443975113875822089653030343827326813980391321252004539783672348595214303263651635580044174729526976293584230614236431022722332837641637548557592070029586032318874240595364348881226272449115798761994503302263815100680188556543618683011611491352794485979153173930610796435675927726686804037102597091367335268479667350221495638417486801708581415468927364332885612607741625463130351910974651228114062871684069247559618229136540975774103027592926773899633006176398034909615050380370457381528977617030254989851398674603499375033949419938363919117350875227627042853787303602159098050998084359181808167534165227215351695440262160981845413057063311122198022932407644448376816250771014971490952612070980509505825495510040504826560864196051017430892846797395504643913765744664759759494452717343179477506698730147771130169844469210647862062637432920619528835564764737617513788359922275357880982394530176798284198889767772456875203348856949354078160060439298026142565663678526457096133191139108025543496949128870979225394437918618070401931907811884071696088791915378006518231839656620489101049028305849670023470887083034030284438208685755842111230187213717570834538372645259157767028798176910501765137186449046154311565828233036356398549205635206878855157671753417094274099947528390971670148760445736955760696854645640204604942500185708735800735819198927912785412150409748950148675835096989239272122485210765656832054387878776011237507645122001941580035276997760978448685871719706767943258614030910373382524385621662024452175616163588651363877501617793749382567501448302671904712003574352565977911351730259890668923198440701548789027010271431353430969099110869183741951018736297151598002412031768675641654444224910836622219418639686520600605560896619561251917345027801400865942839740643674387847188930898658835176349014849634679461364725411280256990856518691589359427119620509587377708301204516191471582346326532906312716791033184843898123067490804919907882457956338023566308484217909052955031083479480278279257463425204026724270195349124399236328385454477229295474916257162118945267951621789833736624535450646584648473609622978199123579770140635538634947371019609099048494680032439155999000463502651819045965880078494136914314119828728154483328279006680321557967866206885293218090846817727471355744316106468237642420688191794042000567699973077361614552425479468102803589194107481921704207181740403106826340021800373736791761813083786668699541580312768650794746860169186968104750502083711534736765218394069409248596563376457893187097029846831032353286439427944738571389780662982259771925986207098041278426514460853606984772087755448113475120485953826721219180849965336128447167916539255518850875887493950711517921594253109621963766103004057851786827557701672727104565080145589751816373507974416427642308359738248529880379245150703038670742835701995151278657626510727918837225892487022051460109118331054758510114770937616985120672248428320914029422843883591358245867082313155222884409205730317006261448697213397791384512863986514552442711522589770411456324140067884237218149303997307106906716899899001362845279815608999574778015405149630688607627688640543622157872349269985149389699618018617605209260274248384078403880801677868773269612010218991849346486217985775776203853029406309698286923249114079545321294333214332545351250150883747240053276211405425014382222721602032746698933124751728466907620722412079805480095758274607687132136524918306897865636053852914510983884739643394070635259402312738900016979126936172117183564599674836337156707865786872426659377480141362779699576589121994599222586464986304953366582838431643438885215627740022126470121177837867562845328410647372542667326147515749946136458110924820417168619939131568466513541211518672709606731556864749205395526676021290670869178709834175059161024403955771097955982750724449470502571639672498674003332402900252721676749547378329706227908415654232362010822478991466854072469843630414235874955365838211516563967291490527298263206347471827261551863638191349136117337521389707840226566363788725301577750213728569095879640924948702692004441043471391358953462154677680414610874988467790485203183795143008968030850324814543133845356471547602482960217027303113707444405385050814208827086897991796630004905427584355783010678072976196188072650106171478188642263433064110451186758614893369006530790517530585292405240150538748487787643999643570669464003255862587016459765118975097107171545804313879634045634843897484791850153102734076176923479168620736277220289322872349536542807217928236981238226233468248444703607298991393370080909901492897145313751192066780667785444390299682603936774535904493117728898208479305859706705496566952040843531081920327181980878921737791909718739756466518251564863992628434623314703831754730677858872585714122356919085212886246760833751012231833312212346174635165378377677009193154234095623324752795482456885195942786316500641097230758740345329427575826993655879142328712728463193802593328878311478503045581142373467182253617272135900575596113218562683220509410459232843685822720041275445374341779457927245478578586935068836588001832798632820209613995196703334275379338966631944384410058848967901199911013394312178308346374727170235785301491923178434616924989013693792910682004690299475962435103130119799139024572129351969146028356836625335955644321312038675259433377296830609634912819877451428604177330174540775325792627965727518101118430463936233622436352785146895560767925851156204735972400484831169021397022209792775553749339629232125215499851172775723569145152529020260945999145699425314659867782752661531840701327334038027714520096990841496503761034559427549859514073290741635308455091110900075954579060236060539491635801168105513289680876208047986397369011842207866982179220044050582105692112406035176473625550420452992268377447379200596581296330215287737049204557424525720056960603766834737100217586867863130002081140356122638331338908981980361125230743689772960609619330033469275349779167969634347469237675713314161028358307136571728878397053338204634633682127308792848643257755372413384023876551864087238238153054149967567709675691483588424143711488389246769392322506767462263776979706537164521723088707222784652544587244858995615295981027505315755080161914553732415283861706658634110383108015427420169901515364250554427618003737122720388513654764985552902758878458667758581071539822408888908825736291261570350408319497002806548629383761206530511768469647199518965492261573871728438586791483198077790611041856454197657808102404338898262209356664912331703263956776184739280216683075348434023588741447553650210447028748251975101534190811321928046673120646800840443565624327769621878140784540403121556341682093325703112063514326767670659712476614582314304500067855776443460817917471786919619162612121726675823244255339090981906109438026496892075852351563449373229727579893190720957613215007061575099839749950848551513603564935743989627964888218653288202077245243893400045870659528367733344998912085934815865875245070333775150657205007415802006202978640905115274504559547410874739127962477089363993286775100638688700967237685364046721184281117195950427706647488968990799711885806675264694615194130578701667772354556808446165814462885224700635656109108819869022254709184394671373354195382329985306396746344068645591126770946394394549745338215660970897858421790648432161981215705304585269782557995805509496926258883154052438400425564057552795909041456328832271619646417354488637989697306081505354500571972138153717577813541318200150201530418502505710399517731464609270193639820546068172326272060822520999598875574475777364729182732624222529520374487895491110207292764583194167767727901150041114953232268595723430253708394237600350494906464433105641188629220552948079424363329976619492581364711871342204179681457722696349909021540182445238260567457040940984895337146497700181846960462325519190666848931313214580713364855239251915523678691819988369774656186221105229137801511579510166659578646933403990557346351304215087707323935234825562885130535215115041661805788854063876246930622693770740689589939967467824856897753125694474820450763697953326519881145281506321326619340971036605966654586971577512149357092005504971036106737333738347399170542110940143879655929055813085253971648642913153541386694540520886835120583146187288396155830311861959633035898411195303918912149788771274601441905935577839343569569284267894910294612943591781146167963691632803491388278129033297011584965344037002441955856269311623742110783319473521496476447861562311693175372240697534531509041041724856103922849221649284162602769252075310450904239315961807676966032971224041817599213612827497417243927563644617487809156422415791041313705009388315289181150974640659886542514499091707305593432598167278636114583780817594675542321702751296688669438633029659546886044418289442682763325843768618129802935187028337107892821037215764006021079070548627662834897234151051317886513597899130982039011405191570113378644118054319926836777365699950769037076404360910138059775376409146250924009089772753680053956507949030292761398578722221015786346070882680821571034954353967668621220946739574513660093798592395669065920211907010214565317838327084405298110231597746492380287889571264216040754595744607544408183633019997202401013685946279101245959058508070437812603280246604910504763872188034904423906324646795366533598022160293386388522225902645298401565501256212240511004385797390161293232167275765880201475335941965293540600139266304163645252624154281916006478728153504157739624851410235205886685480880409848745081361115368656889917167864496270896918071459850769607678715893678179581960992927468688859532791133516583928934202091746210895137135358498848489058934993152089517402088267159073305832465260275897058172682909359297524370125027576069511887408093916381981014960102814938330204206980800548073303680664682675253076262501979977972164092930966106203757930335540448314513573320967850033415038524735052829544235940222006964740473528571182902302573723580495424237449906980296764416354037047863240088318131372372315729883605756473371753668457616378653801978146256398648664862251751079166245854428995069779735090933993698832430275910734132791749946512226352388781824838674161451869737274548348672601019378728240146918311920371018326611004721696282519603469734435843750623282730710189098650413100124182307482837849648834283623946581357824477404246410006041941547317864795459648661912046311228961509827924547144742035276934737029721278300442864090535839268646654537331517268005063873355563470453463725307340281054679360962249626965004465893507059294644189668695787132448498950523099124153672082301509160158816650194889758203780792565617177799756800158985218584807170240290261467078778662597137265170698361086539672613720215192404386947260494333427225041563089713674377824979346621554814996207071177585951097105251318886847803248870823485436125040259741291072074757843989264798790635652527371480039728980397702239995364056110463260358058007295943649761773847099923054844134179198570540842093032204181470232968812617061022308604145054899403675409883658425187523389124928761833040528696578419029559996422098217529981651793659952363866143462795997621953041504914416554888180944542023092414131191984330145326045738936785068928992081678863769981617258014915387803630939351246947857932960115464939754307658732217361444009317565621122401045967651022792342132305570162428171958291602056258021550572643022452832664358201458743489422727128254425701322938367966875044895082865263243045997276149228500653947008282156423211283928549587521695716512408816550860424630928121563278805746801566414306099860412756857448491039036969267547619029122560990522747989071347245817619413815838007529473891887822937690206782497996091118123852280903386252190298804197827930366840759195877347019951841458389164709043373178493993290760602392348905013949864243055398381094676235743781562416719597185897998751042035661447977424940594716391146705555908967656205267242657188639802850419003843866265709307701048355435304358788077649205626873983234473792925186288307152811515553267294087298543904616489888339714239181055814437852661221415713928026759687571943733430123119094030876163280154810659511330460259076056081863690133195794861253150693262748213992968862036868494383484691284687155031122951342648267504992399066525671781374283345931144395510322849554100612942622044268944704495038609208137336382062646028899718659458942136472862068383594913200838398105481570363013266593160803941906280682306879775033704106402633531592052498095471183053073130760263816664660296584465448088719423573957011028397414054441354157054178237270596493996388324305629402264346806131687048600990143139367299530567773235989408288964065446092457281401101362186994669310848148582347749433281695226489635871159724688643826737422593032507122624385152223248420902978608519488374829513010198442334134817333941526425843763709671411878320363551071758790600555833695093239799139241360590584651199236659549053011021101598286815215156378926489742738031998410743445241499870161495542454569051275766361223346416523799647908763485886418158764575270585230262937360744173348174748065097096444282563878709029165319995933443804556778097103357208855940556796042796563817928454018011615062820019068166365379893787495254552436623470055571613452106010272092481650996087579753991028253247623923869312470967751477177016944757343917041431235241062922382968834343288169072731989827389457669392296291228618999080951737827410570903365602904101401369164068156024658236065466791333641183774180446835982137485659759177655397593748569666482221657693540286171742741915053777485870536978839099485117966234401458668168271957956929466842639846730766376153015415194866234571029209632082383897672634114133434555418853242746334047380658642406300915719839251116614490947869095014133597332414165702645744642318092374950154760826324903270247705091632009103368603328644580149511103011002730248735892129289220223766267729594500965222981491201079263577187811545147945659226055347972964279438177708630287077469020210299260111556653104979463336186905123350447380425051411960242064310570691233380048426649361190529867365163526403104757225056679700793898878114476087626533913104228513751979125890303398263744682075153777805046874222004957901805053242087191490928006250404111541951289809608253543174756418093835863363149884312241913094644539292251054674998883021935024604393898734882493069129258615468340583593765982730625895159423208348271290989066069231775807119485820666703484235903704571750488672376455713213989907480251754913435900401666356541180888650642350463227661929080388673364311177501720092378066604649041533568445654692646630372300473514997705309137336699064664666423768705051560450709098638416089701137848898352865006854008321374180551291073829941606501662576423722047864003851493623196689012594338046428204559601397364797421470317940331688682758452348161132760923685841034373974778191937590621731386631401383313786079441632548813300718979318155414614257824499419042910730691576079076896718950146295621017617994422987273600518934474448289449190215419981413243887254473320678650912681527964636441634632476352780341049592855754475867189954162987683618338391864716829736022894917575948171895406460846472671323721574776263191040591553647321174827368180383343069290244408803962434736862416205932467773331906577737512646704820450814122573147865406593327260360006088861945696262580515762022704463049432545549190483224044735763311573024847312556979760634996231934802199807109450631105283442246364499668001356173749695606008674509911227931059330241159849423448525936610691347483474789014246589111510209341309624725158834240872834375648332102595770786093155834967118701453334468738808256721680753545153442972669853465110187681524348561031388033218673326605989042617333857585315836022453394694404447066011036490015386155126118128492743943466798442213318801986273625411576306848377685777159674847056212564156268996873304686951527391741844831328872690420042193449390346801961653745154385013581370842864010382708216988137756659984624617201249864590925036540982253123316889148144819417395908427810486644411040829153634907531334572889859489722662314964399730688766073472957602866382651633346628055068369495349173317369162761453652925131599969431908226564337669382539793910676047157245539953174206502598117237424187546565510571389203988115711951614600504393335447082723224801786835325796185040878305176268452850690215117737459509518101147122124140627036742029391382322009957289760591000590048372876384510300814912723129217671286669296140292759713519226229800993857229262429933944904026825350384944158213014075349652906202073362789453110469454526860487746886695303369511726535268531950070585766707435394371779118488979649793909860019145231985971038312577549936622192690850855608573630053450235284952890866538466740770851106711523595576009520163416257884690409437163102280943667935594794364104912787025031698293094630973819264608119327549156423001257490351877615740239203882965999595583166817718175970890147843583101649001808544996086811754780226839752527380794785736984413367174555368138909255388359925314598411943907236829997052546540757991461594948049570580191042680864248672385654799302781624000987870145981537110919787139622559748213251169661681873431216232327241203887251348370626113001103881359734964728470298285485805200086292300565563893216211249849284075122975810779859134212412360495364484912335509028678391528055822609806060166952055786478557180284621621047932457626911029187889643852051092099233312981455223782870623272336635981626858874249370321797493383317780738618805150524331416351634962347231074295447872822196190509104723415923596944711346693355234491341085430974695077193952056282273387029073690188933342045579020503792154027345146644089557021088879567896381953080102758084729865085836981167781857705091077730631777325940869395574152057971790586135883509411415991719062245071014932336074566103715258973445129851332867818099042956629179065666973878009600980559583519071049663344469709510190707263966154647631232234400743608169289002082258843758249033778850969735605837056189430992395344501148988503802576320172117939402226495701632862307269100286845792476684124601882414521341707805795152884369356174987606630727751689678958741103975260367210505563369066691912767153476399399197823027876115027588889716866569607813015831659934953944127518672674050129559959417154830246043312927664329810780609274724981275532183644136812338276764160236601446488323165985555882325564624666636278549304396909568722974892024067168938305466618027651971090011754102477912002019527288620143083990903205327389928992031828197609937162228431044663084871315008302026451832702985245480309020365714890179695160167912945345882479504862344017195977009836505832374029744353585947478944848871720250437962170044955968395170255086729536500746037612032950713859609282109986734855149496515395702557136366323242508318248168907125815184802864009417929309686214690601552845376128582597803358777967023883034972176608950481614203565802478998309007617027654256441342174787432271322457663280583912844440911608504850610305672362230286480131555050413833042954387226304521951896293394591338704495150345878991328730394876208069511101391913433360073745725045162469877081202223963680814485268130344321479442619961561967936702337253956300284427470583267191265928761994602466127806475992029287400655095706352158890518634213323499058667741710821913923063817828456868651090717589469353753370713901217354056892563820483173451934427095823964907765201679129175023422819604998081519076035114327057142846393371800554206511285820723277948521578731832125487165235568593424896138404398211938716676861843884191402383763184229647788556748809006204959354630987670662767546656887004286224278784700949595436626972748304336466980786256886851900721775823635160313548779397824274090101935448928785886636228096627770320686795772928896586392621315445611175930929167355874261567172747662865136386336621466798313321584019512355336129133942763783005656705508067099282464453168064892490793636223031261574323068570122111530171373816021234270764957611756948830526063851510226980161639341894838229424268723359792428481458639624761353658242922123105740543018694623772945896833459877294664214236651370797743026162519290981870655890399305037951952626029831942996021288994627336537567088445815752729773945766700697618800441005658604788294238005166834485052693508348059845138870096717741931666967905874932393442921111529197194876935463203020212401319182320028025306069205668451083622648277714233770664868321303970408057530114995537599741690752438915964059945787477591721412130299751364443361736397966135426678293441506409633148179481080009275752114058725649888998975209926975062486141959410954525121194561607007672182294307780568576538087404511600525251065670690410906712139893326725269015396608291514567034781073403372599072366987612481028736831599355026629963268455779512423745230661993079665576097756157226633877344871813617885306991750023594843582248596059470021647026942357178880316417279820386279474772749269915024588145521926509755953740965454422702161212490679078772292659192190060015788515071621186781867107874778481525534387269235967046020931949278279967889465188655114913206409932816806943624290322330159414981240072611881838804434763424639224937174619388923331734687976157036956308611214738314819838101186280002311513190973698669646907653876786451849434363482212047652449207522221481103620701908388721746695422350532927268179927434267306509901660341424832674254815540745363181817226982365143915852171037404744321204944142386278276863250603015691324356005562495564466717230685714984170285674825007809901371625555100666806595463834379557455044524831880993405909729026542816440966348752112808476652499351361565861695237997354644117621722383778800101058178283734902314259321991603816923270475853088133225577167197877798660556606666353943832721286976764941192849742468536871339506557523939319740146590274595176770038384633355639742892234499080633262276859558646320647652949463878651210900431516429637010712940788574763365300292298299602851691986514310875270044665375650430375772450892785970156224607175039574347978736279069006564332750014130750832700736311118896419862249435447977414243920818237485429915337315336998650412173670485847350198546869053192211415189974960092380743788890365577544451145640845512607854723650621525449844724273875721137628201987890005574624649618735973190942498663402857304266785331459343537768284673808320621450103573498047416118223255661786160732496339683779872785786229430853907069771269082729123129341364867304882419726029171985483332751873004923945166353768414839361587397175576501904068092804865968110353498438987412454785212901296486485909441475242345877326213615409809890144980079121613625601433252391512565967276996082780437462426465983048278175262119343293451126437473030527269065108870363403404464139147715066751707016690422744843559370661638878619096093886373410213616621255874213497192460142112992831208540941441193194324616214952429568668154108710595276915408045699682747503940375466933711948089447730375569734870792220759753647694012235922541951750083483098573837556068062145461582305665862438248181229641411068598362316495835155878792416094901694338004477407858322907471581482345537414045731973162969136899658580785984729754535607212259506801482839421401281270350595018734486152907028000031826754618904856884166842998760186674959386822527415935427486078613678836291750907220761267183531881510357235696595990092602999385284189037653445902782470055641606635325393400948041423321545097389965282394730869897429572491685566046631022072236184199133050775607321137294063813880491807378691721780518811781089320193902975143985858396445433640512273580056889939631899349518157541635868361540601471561629256780826210220151564138556226902776398783045075992601290669609891340551929977205480804069429269523928615606509126935368886447595707943687019735366734268802627411831611647788912376737243445361171329577224430462873521267029013552548072639897627518191441636229262235946602471122239877215801338696946889414757658021418794578053413875205547368229058269662241244957586418848342663881241878075689848821949472735662190986036540146427805928664041017679853714820429449160679282845976714222542833808400764989213816532427000998821266249105438991156761937277253561570221221236777949191524642711932778415262292328618639648754035829433518394277351537253223696998077355662954886356229057426392711260480052487694483188593863282747660944800989008663892704909991754987261034766306646995537619316079341372645621751938749905232054709473228971942944514603941023151684794204122287388676864908580052932296135835263155486924125399498285852370073292068053122676859588164421859201358012191903329155479138499898421759590044237902953252099366252980954996597687769093107435886905408023367077992092536886600516240336578340354989229432982300400858484336362310566175960568547144854121443205098607530261078162174647054492247383488960162438991585786803850768462783999302273361957340612275744973450994838148715720494164919399313498076226475987506328681027303588688746084336037471221435414682197389170082166852035281710315921329788997009497017221996552121908572667115428740470803974379823791910990219294216856855522337414863424141857962704263966059213725578472801031352511343967656475454567027641121457369222641130953601934489417798597809541748783620268781467202104451628169696264563408273317051855462949719771428543591255444170256557738370073688390055816303165912653403330247314404935417906059227521328662790004458561288130994241521899023331747377492259916519074691361325219512460645319899338048653079481635814865764289737734502748767020786882260451300480348311346634947045358795743122243186327537747721855826659405633230659253255463232615249893988981108211462656980988961496366158999742209621877815087675620915487251214305194402903480520467045223093262435462389277458677025156171322122925182210525520624819091610187555567834800740661712326631064736343977659225656917676709924873456671299001990857448308157708753708336736715154161799651113616039666912767410570873073682583737056152774778102233614835213037413361347180841161352961148522417476348862507794451613094802583202078568780658430288614504775451085401067180569733864273887153147429353788870251312184318244239095180937076880517272028884946517023331953284653779429220499238450917261875918387290127794738274548518006387840706371594404370553948442095119856680438921269699081338792048608423608401220276518623993959633245627171952322149005281430575792336209570775349428272996438141451247917863593567225850847493499375742931841328708945480056708368723626855754192592175574364065903020566642523541593399664355901914253700376437321806927361249785740149155673064369542140662571590672377090317765066630708396016891164761912846756638694249670918816034182409539857261206144188181964081462932215623887296023703582217339365529687653930518430617435986242294752120310128635229014392803730704706527029669564320990408629655425429727450341641352116512839315183802606710733734587051383428802958634714802942530210343751042117459014248848421451223949372496078945116654794083499068551611597367699459883897842614723800238023142043687367536703214558584882540692570596638466629524246216808824513594284900833091168007016778290628079160740937310102907912876877843430245380109399732206232856680643266682754230554079723589922117679613387958672210899230655774601844963406145853605058215748456981617820338853330804783020237407236291235670738758443664683181056072405478331752068731655297595126555854267479989786518755920249419702827769104168307686862575429256880757313309543042500710833595604615161891202913780210497293972295064760229969688172880274974951242126086617328828181301844779496878072128722105532583940281821338242688921994172173479546000177468194343536193114191836176987180805246870391998439469876876235610894685312788884322776582768909438646978476524646155794274118313310193725111853814216266750239869240014646258098010161637718634695375767681777103617454632309808181570003435941461030091990503911325856008164973404238055159733157818311579140526139314309259410603788120762795531582147130229267443130484520795126938677725069886899431118780747777675991661078194218256967164126158193191432872599924983514343060073688325230475541718718411789725875069618664113040287502336028279958289142721358639923762968323502069947225661028616389867261586291337632272911487979054194439220821904030016111565265668590802127265484904676501344956566962362823056745421668649363317300999227566953232299815400337803166727319329989607178400194765392811923024639183117687173692124428099721817149991608763376398591101377349855686085233242736130459891895041376975934125685798310362338928364718717608907869804917951720928404951823878393589749183894179202001477217942239119427203874944939725969077929590230494378722736397917178304514025408443615654094267721761475423248098837821879325536259048578480267841464525947473152952669277553505831088033598217972879546015409611579887307047255195742492011092667615385375972490898455437440460634699720280507132390663477412753089454452443456638367132314905566747132907250800220170571800582988976755075907001449466740297642998729203439497520475472903933891885416837067866080347109377622342246202326990419755093807978860495631207134729543433343735230042702113122370670042686875713313724723822801633274076086358938880557360582153833034238534141260812599441226353514360652393943953979133362658382663386148779456975038911250991563477469362854801495907001890036592665500281184407122852049153093488027540850830110108315042366553505821851339794750668235395973685938576432250282014757302084244919404298057490845526907827190895741137648105792797680753122323227030693249674179336366149783603392270843007064462752984449092215035622942466254047162517165915923950064973875797347444390845075598627548508163581040412376403479152353967430412175075846779403772364953420024148891796511119198177641122767656313718181066546844854282537543117690974225127361045352855218628242188308733519805422555600090604856224632367368999320866820178884936299776648385885539610284683601182700283818416777237676083945916102022473670004975118623590105603640061924235940262148013976749941152858922691398561620392559741171528156390666528312336037444931511357528995906172547434239636785581598256387412864419002534038854873472453053973872251461751775660044991202726934001647203513043552517985754286048175755735352620189302663019610456192003245189630691191579886429715885569920696642868920142941690555482293071940546590056090796331024464768505290916376428057478043786511777727269737504814537744144023481761347764218791105472638363269573419835094679175805687114993309216885065219527113124171558319800242849485916044074072500338126896194157273313364635296105370534039328704867270829269401567015466817721503609116591949973882290057058710124078038275499045825344977628162926180165375173264785481758678653393891952620247631382765499429426867927050519789219621892101030215000018526815693324854596933105983337567049118460151483510301593808365807428909401982904489120152402963823934018306056839041659729626547297275140350997889879406048925997683052964396348623674081379657058557470731519198929335978949909855997127024317710130509368064684494930224830772286367893400679632671439878858397392822404963357869814163922315269140554452027888988471832365645306321962397819253273711560418014972241817502739841411022848544945642072762851084559613406920115570039732443730242093859886925322965841607845058440314453359902533432836401324246991914291515731781519011025569699797270225561360985245722699839166788825908702444162811899459724382941995571440286776478545310134692266393258770064238749724464267766606505231458677474871747574612131858728046081062411142798832154276030590777532510908103068363643669720906122320459010152990770728411146487846061396809262946134826113435091807412601465103299140132379735618120653279038238868039584026606332871185168986909565398977098611807244389369378843077578664291051900076280102405727869778539347090483302493146022969560305765994699990391506900170642883920319978919150946299535866554494558555419597505862165844237184417902493922946499317806598274737912190647917386245491857088613323162160962230765477136562721848938105694874559329212293099586469391431066010872549514498218198331297197598994189161066030624537678831616653404049549031253926657849762394319547009881268454702686179437104564420812329618141685131893127108729420225380533502103046701061855042897277984710058487130800209468477400034679074473376954731465852055063338939085402798080902793347901576006663779455073338379410365268963647984840689748521787894414729267860405590624779752716644217445573948782774083766606014742927480539301827898081126051568159750976764721277000846955448457167411516278194655735448237556143592561654048117138247703774219873275541405855535265855535834951492818200684873197722405366814808922423207538721770554242790990425322553092552484890050616979980831544902649478981711710886125792761243573999539038107693820908740548861748989836252453759076971399716864065328927816386406671362535078337584398671879688713613380565206789854028076051553232198255005913791082459982326142998392077072717746432216708881678111246274150613939846992159717134418002240130001206101719628444362512085329652150641725163194503498606150137032214656866262545887332720147217375269966582410974474479389839677861500907509966851890452862545129980855813287527717386178682021280865256194583869636883850320686963155918718358866301787606888148277343972633697085246694299839971826753044063800126385632312745369608184653434531397931547666970661418547704717374000051148480894503800288528057299540645858293834739341967481645727109313160240766550598302971761546119997821209596942724210174319589028038606716725027371160617294203098008263798764436335029418219375684829576864519724784343931135651741245000040443980462886702262857210768999949951157097262489033324969976652854147220303757164735100150686397309207518348039842662645505742582125220208303706240136147126985429747131282341594363816636730582236597390933537446806194385479285380434892666052137559410543325546288870710106549335296353679915713890880098774174347319344505967788612179706366725804969883589799204758639620733517600342457997826922463756723237833959683035230849538615224051919408025129430018364551836576973526729858145976535730307303517863316135855098746569784746212199760439164217462030519495845117503225271958626584164771829139447947179776503299239276762425619118449011101025512022347392144971110033104036218528642183941022778217741630083680968631633443652644049838668279386626208445864524613409298731399973326889332174007195388123605234692971947194636190232774953418026781552203923718178227199291081297906353224176929663625803411337578699055123057312492221363322399312456288221587501126489134336517813215958137224644367157222811759323793404982960018860627656086465780717669705446937953969468112265741504192794038595584814184854793100954823318598678257504864456190258046263115016007125973788083424217081653921979829042052705112564823363883854531528950835855242285372115606297721882139515780261702731750523864733067267302962532300331461222134993755295526738088522628527412583196746691046710008614054438588108847934948870137621332827247805385022135821954330563190866997443438357116275694130066402239762320279891867383200392367842370256340958159743852080550884913266517750779481695907128561828857998766578626408272666960390571668278046834167987191997342486184803525377329353923311291098598323220090710083880419131796313120676340687373764830800301767879143312478545284671852605660321780111094533912221828374626057454290974789196854721130531614447460620547219694915095107830026500189765310551494350794524038679997081472715858715720252833799393794374966647689390013578959782130980877079808385090529264769103044195564027253933613691275841352421156187900825540185778586792484243576726915712931624963751030933322016266830214696498098801993447765734434619698871667099678072078771921373060267201557505836086853820162154712317255070173922898186802395483580598334479270732124645931187057456588733899188935382933351598427587225072629358798728720257018377158190867560748381187700863044331217372766436095883397493960914503809840220026616789856654270850970395652574003212712346899320471122071509929078731794698861549380823605152884765125950370972291755535123581258014520042330870928622584672072260922050153121996847526391061306546133347643945764186782152306500542866437747517551558499650569077790075719921620032079663034722270268007643447821090565768700998130638193710124973090457341060724595485464960411677396557472114284117136302894244548005671789086356567157299860443617338884528026656758379288661198757704014612849941918497255572048528253951903052542281341745046549706983140245023881283740477383085062017782356036859914609624949308603245486657445995363704382516181833866823007037357308684330220492074356426925872993632243590345985780526262499407686875672789620101623416489878431994884231347629317949713595048192470241630530257928531530282291140164944046717958583713473064486416480635541465274687371659669882775972559397286841536626525850126820764972788731269411092879964973827243616645565849265225871492323713519248382192439905957483655603796744566048899405977749572267963397504242288085031726429263645208462897168626966615982045243295489576101842470224389572562143823727441054519481259914041307773391272271799566199603484295179867476919862588225997683931358027810826507767360492234461061908508121007067825999273878929844608947241806670223115376957810423839024742351754314111287901466719522611795897354181573133383134731703726648625712124442071961473068786665586707681382535422525946286553054477250090179106727777464486857860745924916539022157974165731615207725196289686946378241227316923671790907358429564708416456275790902056473531489929300804145791003178453956734545615884640541752226448382992961505763958281159326167984985194423022307245896903301204529033849945815658212605163098625884643765753910418677814617294587307607460373831498469767983397247529731031529533328026023135641996718899319559603026372810287750224060642067016527037748370454473717433871862716097866814504531989432283399799811098726242552036671144350658471653143417678142970799259003653421732886761024710866099849273189356214810447062671650206611105482560269881254225172578552991065072566445851650507388957358901601216093593949302368397265696145918759591622044736311088480566868062202777320598535222833860212822667925956293316492057345307062437665090708538838935249886498059765316703387227866254263952725608886891701278754715223514672675422337205290110994691042708669177320696278749132412586881203999725066415855423913921713625502192183746647438318041348913638419790084599234167226842931828966616787864639218242425998969126687582897549573011256104914520541463440367839879351642199426992754587997522555346388210018468672337052450411727148804337688402774696834376419021337658557016443131060992071232130161872648947875083141508067797543337291143348971623006602941336770114934029896457640665874732350943481479110409210454578498886860352665566922469644982807935039844894448028544304711310857055173385716125060606128587532003528680004612393921860079184512612761052385209747245633949712970567937110771413907001851552059257522563670826044495001114373713430390569348305792995402350462395123941604736699399668603702675411154248599812755038766780567542313034217765303483109257645971253771050341519656429985026133487844886369717311348901532433910147431262585036321077793026723415169958900742825686586601185279492663459966312800151741664783161271375099221409516856248234828222739687975815493346871401122081968854165061635238366154981563249048710982424486641880126927149224655909214358678184387830627798150979080107956699617784712962810292317997458674751383885303756154067940074776864812548379633169055192889040353777102126522924046954856881348071840134461087493425237217533484106547603202298273328801191634150329117437748534049285658541385272277705673392069164604043060859348361356185917832945885081540197621496844658117887686330830119225343926741091093153335010449782605438835626656929839845263076707212588171906585358070633423527524385270496765956232504847089712300830286578390047935756593128172434923992235719119535514208020607797003458120751499470469684352490913158720637735539905433928458393201894598011557083314746083902585446428896235835083101628265410365259385397877352689539857410200549104473628189491574370831352055692390983682091861388323481217597935364443565684392356923190200670313393923570011442061796224860615548432807172537935267018509209347925755931714949209138461384199882479692226330789544408712185912861888865549169221959949740486346396139393737906995916929037701713345751398393410677298513945439364394234932589849894815909680714059531482795418801945980371874768911530495929958311227825748987215329011655874194821316125402253213831660684659759552476840114581272954254458174471523784712371139679047186592610304896828620322596569172939799524891154460610724755119377289825511497906353769521622348649051669422787997592393628505883502626016223187955674055881845969175246377008605308032968535099291116045802563015856792737336630956526350136526091923096644397138110263485612512858767718857301266546706797358742642821685965426266116060086946106042799889003290960379441626166524745948812654372678182031482145423421764006909804245074466504479322167315404371014971986007869087155779573600164877756279228617236158577862362757689946922053583395615529658026686790816403448883473884692306634607145525801552379671039353557671181660543732853782346444893009159584921260113682162263701793030718037602876597780063322952538828613286310005708581561703588748519164368224514548496196917236651047966103758841643092315086157131728447457541049504935290726982912809816053488501622320254876816901498879612613389165460059950672883692204320489018151946257429402540686682876011432702078248916394443855621693431268437279297044992256003509525523839591017788724222576428028211669496218938518779218014125758099086440672704316282651179269947259428476173892911348553110861645169801259996793565325456557682499689762879806335473181233056111849690769987552532008997662672089641806254606158031818782261429359161490356604007339995753684992920308191607768426625615060271246551213337183837118180313240698044494094447898618354094266254249315519034462465479863261423257595159833378739519467343694308193414547136835145674590799526163726515253451499942430728009113174003872534327014234735127455574097549049849451563140724339790821498499462250561249785962758236445293570048136372025458074692859110027744414169095913667061019217830148134518278567478927164453797610489512871901023053021202764630966602863075352388861417864661478880534107511344638970224322986457235091385360404255428155876056952564473818630170985249525197286955512410151525865724093361626023335895420435852844480573764545053492061798672573260452414684155882325966301140267378875438256312669886804303247184038989648555679449736838358983443279040745664372027632432801573264682413445570104878748012445677653947594850890815448268120457359227016722692742645536188900923153714238971255094880401759056549675145548818004076483154145819195376287650651524511565722974122772412658946643689419179542101730651426797167595874010081372097428060264318478213182225580324798218476477020961090191900311139864141185074541993048776853324981137089296917643465049846773821103619290697571980470968612908871030919618900833424432771302512467221555488278905407024300991619976082730355819604416586672799132729072552725257163546654043357524496905597646360733380828234124803433238319091096855966989645952836329422711052535555540705464301721768555209976133000673086513085816196913155075142857801216307831219996400999032369659164012104690301964071020178232830394612048313373039853618238882400585744634655144024064626736309668322208438178422023770288597234214619256984153476056653238030057538496196700815432004250320557685588929890009195260720028694315069253540727954650610429059908995389105844842589317756676815745378870440221218077853747551249085806505203332267154366853001766913776459111859422750843686439946154735577507451043959762679221631049646869461467784630467261009275229518252274971854221099072312475328150296695971719343874826841933035472907531517749203174108791589757206138608728741526618652476398173803151178144299768872341219497792701749578903236294659921425649949399952112496439825075150631916772903663269775296422872697557584957260505892071970914713806156834250254977177023366592589080044722634381879576401766363580798343852248102341125470799351014288666766928609630693547259627875018711141340089850741369956342894967483589480169283874627072855405454189414816423948115570265615902968156927440652974887587728493300152431972291266343864577351801815719215769097842176643791421634921397042749219954823945292933941946703549422315342011299365477800291482877769653585689354100174558912791173630261466917559034350661070912021153946918699824749732914109904751398846004434849822598484427947852393674452311841680340193076880649123207378120701291952013985915246448418356052233100840221892484094394264418818638431497860533655139823584755923684447225519762293739075529696917787099141366761700262178529388271320916470732338376069031222481010042744495500015912588706464118984718466073700226477830876074504751264279591318451049448875826642447249013732055160402859978943208315791420251849258193853790270099226191835503668233730922333770362505338549269182569009086461315429536229044993230351111754607200822053232477195330007972265851072883361357705588352301332672225557341662260021604232217412083315181671802792601897629168910224754316328858632070518302451578265281646467833652382818407677287460197262275507800812922114819718133203474825655549059864285954392882591119910377409968426469844238836494659010082846664493776392582265442649763590801131474926532266230874490537539584639434683428984046387226378011698683807779935906055791701847525691292355544822710158168721159050223171517898080331542691996289987378361474140746511302422375386536471475588062018591561067804188751848975229846849646316145770236337036776472605430855514235357187607185649506676156088189735425868996221199225324230163829768318410603820735177368123638059831086025417089926173498884706953098206890070418214022492782460623348950170026403041607849755426424520823008847114665529108666775188980397974053305412920609553919756811838094454571801052538183548099725446610257693694594892948873220179136019465817925902014537463519764596813118229940891090448223695193221913946599161520620324306616684188288145656797258136229897354484282611518842136250765279629883685665324070347131155790117180438487741457628238415067880597107020330341006607085628401331705865195535653191338572059019749714474457376169551632377002876692232193946221965718621098761705157562609385630288943548822422371448681661923733567201155199956757306386855301418541440598912147960389464830866017593599977800811295641101905201573749757902531960022465908345596632626696095298693456353450239082185544850719293636200832085808527346697421275072449174030893501902796691489760249705877460924474817509924661103532849241197213140325381483590939794945567403511444474468097040548648267461814822763554848342501711993209380976810953464974077198069825314746061938614542236127527263094694514961574937884606513667898655473437773961166660873350769051380256843276235701047243637946894346624652127909134181507600151492122557189564724514504049325119995003167634618145733242628152241727930786256942956458466373011000210500608457868000423659599382885282702951243762476017826648570714472443262310514484022404023024860682508919110963226736698625259810462167588284491997285181689862832383623092776832316125224838799473127689093412615605472748959497271675518700950008178900536335436533084846736591406791132492020724189908071205330185212528064897280145054545122040039073069913740809158332366007954307800803248636041810198669698845191744702680038906070525406972854180415490927351564401654530674526961604617421197178001412823561049762462002064236634014932099821049965453745749420255822617765743269251970336494515906263881570769552309410468779055617638097498621806989809930777443231939317763870767460361679413353960071355023047360965147308279721426848297852562294813407923847558868492962425254867473305808266767746409725096551695597892085858318018681494796682083595967345041072629168984147212191898376241235359974985679352987964974973563867625172416035755397248010770378302551073232761442490027326141961608227747190133174706833815238536139661475887556161075728602164249895328271676149358864409644131078863709708762776462760343478634587549683328753480498767758951688307247021742807447945102987031323540668214347105832313476239782804302675638907229771698357750273291020128777110559394995502896487805731400092609039148408788799511561889882707585020586927610963707659868463414020498196596154469374004890336785878176060974040817291142709238988656155530143523717330882637174116873469202811000609462868419543633672340586601014586697865612137268825963001235302010578109995405742966312674063570895028010113218511177532486033544398375833024793686163983877256950165529544868295027160869504045193213494980250832307294449770486615130955970974849698530600726237046642742177875981734411428148027538829069124549600196400672232455680471994815925199892617936048745822908722451818943965792709229954990593071050129174915057888590087987281425488811525062891089195002520118425843545935322606866828587614109688737897306644047557655881930004477054850464826887153079210771492244148031551187971301128754306850813886503825401158488106767726261049389053345467003354611491555400328858664326469427937068375684226747936174036078762575944471553854026906929332848420174774333037683948729548003067043555762759536242291421145962182464604197580938693936796193758279636328235759713343071039629591519943351943547278385027138276755833497284325101383031424244172518577989244376842759563577551578855110721637340429250742011304710634575658257517310294778436497223164087758503962112627164457294572514724449605205755063767057014929422133600690471270958747740106734502516140340059559348044877011785851964603571907922276999428754350486999241159159151426642462554240357592703740230963817551691782771098414111453724200670213389200288706800566767673658612768812422323754561857490401897511747935550999021676910539312963127639492504735288682130624980123444789121402646682227512560991144604432539070989700320378778261684649794714225729756675828548016743867466129849891124545049923580674261493472574305101771325283340028388360792837282425383901519536528595649644198403729055907134224726948543257550045632261874410217455499063805687433748442635603795760119454677461829085187974762206190028710933951631177753195626652228117963069300541522414851158248115454402448906688490294371748682472759807718498877849313264263091515127713721735041310034838111860326185889287925384904911625355982926552339636722213257909234470527540679972136674678424893970789067162741133818511853369322738760714053561429505856312380867043220901983236386255766397259098729114372973909241695789050579654328131603397633115325824458366354485100248153734715639370462425717570684695984775671751148687322886047002317704683927414447130175155617454843301203062448348865479571689400953690909700305070534713901631854604312195964835133673419879903389913367084759190608532905536201065805665302452806260566509846076122872211779020097731490546630462173041872997153287722954514495503960354173973620997583694936537487376286660500912986442227939076970618603666188730385920010752695527212963137838114273894714442932703680316621418042482149291857320497895473368739376382857966245452497434746406458706352089928044276471287027881907913408317914842273192909078051089478934487891795564679819866254859067460096935135692369974494883127143640833369823272313995921560663368269384193607302297319363501064922685011631420320303545257598199736713143830001116739694956187649193887132822009430043445132879122504408570473388940143548359277797791393780010460856976886671255027964514384404967144344517874007922183407830836187498224500865448620736865026270234951868788445461464180736298128676976271893732955057006043496523744647420202278901607636212774493990048104389710112422446847366231674193984450353260102136543405470728002964393972093213104657263324262526061240226041807463591731257202746003855791868082045077069576573777705579345036323309761273798713797937772027083553145395655522336264956638434743485162241408608492469074307127388018587777565252782990850883552330743516028934308762748411117542190643705351096790341685005028164613950162241485529873494664617589851933322133262761038068842760112712073538270372179828596893740003926163946471181809267997801582157214960945465259043878865679488257152481386022495966830822950096829969752139353128616298218822266410685219498914857514985068761386450876379941191827579165351075847318908391979806814648960840493264400285989051683568486200261784272178782974245376831250325231089475080374393704555146790645033011239623140901890170312841866369056002354817808334497612324234989744433928381782994878097770882548188193127514947599424887121642633001725435917044437272415662187032379480966573377068439367449278225352380510342550496996999601820215924180150875618685924945002637168993664983467518222969428827001948909721677182906094948932322126229335717748710646165519165445418623971787679160701457751427267030406905832334826130687972554696979409767920545064781341414916810645674680963055850997719609687639421602257072749676447285827152063739244013169154899651044746381809980451517859397690826438458933647907919134102338708234846064160359052075366367461436473877896429695067889678346490628766478763921978228627389136775059569942860042281058965095723030875431690621440656291338969617328594060329547955676576098944336737922347325224162760801921757000796626686023343073988618123302699459861298163476271501799401779795106766759715096284201031956397818494247475661299521876574157651285870774794811246950737132886975127355642754259097992788165207354003668973046552747972337780315743259668504089176857997150226925469574722607242947740313602582693992807517342951755782569664961053153431733017288319993462773695983222764000202013102075522016608524119529340521410717554412216007237028783933031186348354856273426294306967655703232333246711467046400591708032225706079486864857874473594926803551086606842202025050075107488661551786455676268286062395182151224587697820245360387757919026974457636922779422077587596724482596852069000215258636475323033505477909627393731987142710356680257571792871244966441826865677596399469027760049444143595376658195104845248307269572634656533360401082789913761215447854277989098518467099338526690178546742726521615726594458545294299082964570980466009291539283409093006442499115610853102580611443242088145695846396864674267383636076049179526750178487508597648673760218241896851713612720805123202354423059538105739327964806490805460542401570406848503902674943864226011489622165657273535210310014784324520688122264454951485938774787452610496807729395138493818380140943286870595974382534009637893892092491311357117455535715918321042002331664838008560334795229755004444266852910619807934417436125360650107716293702764939403386572844343254694928813689700203460272522945020464045077772595899305086031930205131914341125211063034539756690018741327386243379287960264490282894699363259228826031188613913159613854933467072432626799230518997963018747079688394744914180754603193491655228993557578128785017692425166024841343016163371118234715198142654849829947644650267630695354664137538005814828572586931982410494654801138851198073960774902956004431517454223220934835563469329253690529672967123982570214652721880456035480823572851759598388213874828201494024918274230812241868550804049084357909006863003787579657651354557717191827026668450884450280690903724618543694142377668906203412464553485426562183603732486896275667084827596012748311858265755640709835878283598593758857164252936009400048258761965210488675964592597944614143637492460370549355543095826193297799431458152102749660590889231441599629439982392409548321747005269392698961544003195040927869830637469649902269468111457786867032020309095769032505880853026832753191803038771060299085936387055052862105170371399750595426680063078052698203140591377708316467872633615344260745858556984989296594997363270297704007123376681291586775516497230860617680681582632924904361936856130890090024448745955080941515541610467488019502902983095882963034949595270192985393177655691972656138089190027936666432001186586015298576238982735302564961421601695359171628777156245631214727242134259559065426417377335780022854664609520023409988128884918190554080942119990669380788610441759591977519253387809238722172728697932804081819834821891281931681102652475955936240384268982183168722982694575089891404966002572853085521834120138957324444871177279374198140813233752712407954233891388668240305044116352316686413179697188408180305668380512136925701715589267994634038886080452986140239963239406264541667545913707525491178069817633586305356723611703287570623709094856638878711812105936658605390611000627267789644022737222752298206522583319151604097023299612689286698444656511814019526723762531889174787942579423699280119304827409121620464130373895999079825932807366577488828458451236415880148271398361796481203383573642235614562745209202556487316756209505753577315503246910137760660431637480266171712404145879903136718944137686093616849399365996348907951557196309795274789187902358771604564557713062271188440981494582275737392328163862506412570887623632686152334052180414612251391653576801345012946756392276641836721585117585323244685695207089997725919416516809015667268006230842102620601735441137123045991903136895760255077976689217263655144705192885694726171230159585832363854060947982466431052461757679933539113027789539987020246154474086369759524854410920628710606609928029098582298432376363138386734571645494215611961359585926578814253068445957264074158622983889379367016751877983175253260504189207982217996687376674606552393554103704801103222736245397608496791526869071456702790449811161765775361765862169765035121828406694170532332080860867334519555964654338021063822985655705368119292332203017160598608074799606555046718072886618354552893624688173358146825121077350724079785753856556867429618436570303747711464263171129639789509731273615164722752877530250629596743668816631349894210957735654969572340640198415584703857855426356258395876336297866619650240537925655671031416055684851007127395579018662834346026019243031569939500341739599624051893152120842972291043999720295332207587686829911174711422885100712236783931626590431262336300306408557529618039505763826994225348751784857017210444478553933045959888226999196120613862629702067902870639428812359155345074458994905836852979841302601399300782562544383418893068090160585795790262634094547104589480604945780276811678943988796237725978934302425366771830454927629394662067706597088430541931442433745614753286756684056993493920536799885670940383457075720967653333981878293650746436606264307441375634197974325573735763457040168000697821731743340285072165188895266387663911857014759664080617638367655236944568006646605269628776800469654104430862084859045198459090485450199744886895020629622247363789408128823258032377815842223306081855324764874576191327503853194108862679883046629616697719107338970322985320943327727625676805181176352817772948206101944927643883291407756731706274402484588494177424992796541088891179021421522642504072935789016320420628897728462025809476950787585366944204304644940884375888492441339912957599759560892270938879507718334930314086239624243849788995876921209621936400204875543660365109580679869564727237835132323536611461217509854452439246427464338504799545792069090141589719886057972731931376761677911182923632077104920470594083894805898526504019349226978178725995986248190748362742487726313169492850822971969599314625905345454860103491853154690776435161028819162897780599345851835910425869940776265636422895452635043134405478476419202419685532586640223371627641728828453625772301126500673517554871742168606999528848811290810030103158438219230923055736751747933094276881776378070611014470959232367856503182077395086810200371205704488362489848857273347738483775800470507823664304882153073976205087731333552747669642123367454914949575765100008828004291027099600152489349400624275551835356811977816892325666466439449268271890086587819969823466821363810868817187812856626646881360625321499257197953830708999155172346450358060168938967529232842239613357295413552490012000835394081493711146094608200893988171285582895993618948351585824495546943561071808983956701161875780076757244189761576974694035864128129869061592533092236331629506816029403344345589054256134155335604240123947564994088088563504842622955692493534485562595937833422627018075812937407541889650715211305401357314391208732185544225307665641440645754749988354213362217443076242074799893978936332511101440631953136209355681350088904035540552659578423730724206640646670704819838299261720644427254894143980045518232445776784853417697968980341568117604763799627660669573999438058576704037509390911279333299814945764694361328385995611439537581893790455341622208011642481617564551487197439888687704519917167268671287257015769874842723524190337706054203640688180710510272960219672401218699721269339600325202482606253760144109582311823020194315714153855812134765277435936555184436039924054353027200699937450530124371180178689671779685998126764287625774160360064092539710006415352664617766058586798543448807920832980935034851502601339671584494079224740057686533024747028388798966676273763420219422526179310652661540377046579611784785902809311883652208288931745716676550061590365138168640577216892232804341458614417593601707709212031814120849384379436056589730007314099043303126387229775870561128994014896620050902251197110124892403765325809808108908993689197809094137939947139983567473458978853349911961742759131579439344543780307293387568199939632039949064147472771328750598369889991303608238068057540944400865850348280974738296888794814221308379506034979365168942108103951408420595710907860837688662484402512075174361054281300490098839429290053825433514030480312559792384043615882025879563338028350372184211133916766687270539921171296290297599888846502782220460995423177619220051298234702244355050248249366489406654238205449153610000267870491845594980960842775511234292395032721047171893521325279369151654755780316452180728955691351951442148021190800477283850764993058018004751208839188954812488226291000653583739400072126125602355179460224063860324558143248099784716668284220195139921436390953977802443061688474273481935742538227834598508796575923751438424957928021353303983420022182827222154279011610757339621142466637482231106537625461262294516590804941504400263958634975198240388063783708043537595323665154087372625660400063314433155172480643846083720355817848278548761420280283552016029766899353836114726909692779293816614561561601446703715859414069475575030679597724004656275570445488772237952045367896515314831542518950252807793676017983434913132134265556292547610896001652502535239219639007708238425970209382701815697392442429014402718673370731876890136963926418923532809022545177326570452738529382837846925959618835152615018323478954004094077362745307251150344149893271402160544237695343062522647187184716624677736303592839411788553166917551832649187774278434809181636350692267747778971244987103754928576875220086315039123222854677864094623198924742227644790077962787831876631921985558214180116037815080817296871179623865616484400092093812324790760131596366546485721832795346444217782460117673305506058629877073513045963423533325841229298934954544495982136303943863101167647714436748012568966936810586076784301977809558024588256408110748385883802501620455473975227999619754461132093334407519365307014112866329999590720064469004375203654580167205646658686475364382245688472730398807459610971795047913593293583340829703027245085892224436709815732637006307012571119021268912940429536720469063828590640199015556619273186101910923430266806388950712746910787802636969015766497516050627882200516571011941726760321938064437362150959240824934984339840554256396199183389226562473529318474470789345300036995068129547233970395784206983993630765456930579596414103651989816398778011817884442621057379697746860303958901977686202815007057086664068008514023118779148704626795547720744625496202840801937220017494212931683986099265773944639167330047734579111960737891099737602756405975390940440057276364921715477261796190187694960428248281962750614627615310473928115068637970300354173032994770352130088488431878932541240453342874607922173943255835086277189237095650983048922562859641446188907551455480234325812851383299485836225348068911844618901922659162553610877108892815876945327856260916179265136109335834819121005739240921724519569269477726875404537694939946627220186384432305117785558458128322625004852648380500135793104507584059306762624672435258184467791575477943099386010118638723570850950560906111776122938477271707261924440384278703052798638267145986405780772989735126684031775268426947014895953617054300501896282336455253397083990059262803508789675717697176991455608048678154763202920218617196283132376870866493435208188215393509086440225996656000628192667555986903074472458599463207660312458306414098639672928083241028566942126660089540438974311791033058997530709258341258154354305177375777104658101667974877697849217445514068314113798479977712379579914745197719044689876151475672645080945596872708848560717446798801313311733207159810424348027548034362308132833639650352634712795531077575541582064747344413888067923424972702429306992289596786954529805458445338391641919511140495776179778385719087677788367995377291146024275252834755161346601436759784585674534073058813853795103374463186859081049634605837803736435361441184718751662419901606916113594999966055726714810716083185462725247623672820044819696279323320244262716816261385790489624994064131445080166277001712119108082313772405547278182003677497936463926961028741721374258530511586051615506464401591945085126826682136923343480382677657257628788992736571156646503520815048714592391204611051678468376359702384350435879212173930965567290961397382069980507000881124332169534499626291274332262773661980741866805177506750580172038009903004363329713155223302973010293229651372936695761917403513113586679536516630845615950755094340821740203571730562665694299064057688206533863418675305358766902130894498554277028570609360286836622211698592148911567068671717370617415935100345906123197223827773773297505376162109149623748827289271007254503009310167928228784941760640178928676725378855159316088271581679416272076315430856686482505885800259823729699133794405969447526002449557316752073909558142760236290193776134144900146011976874160827791490624861034250876240647151101174551002748688215357698344862963124791482182729634135824845012659868444957477555161086449267489439551368645570933290179187164067684077785864504401136343366587937422640187006895903665002499922097358380383125998053644840844633868782264736566529666886500355764926199377502249735446686593462564971355797264377279434665561032869748467404461574041027469953953033694358271791621871455096725154053365441090983086039732304795124195678826874259276568958876994227263720164086877833420061166484070189897017173794051962183315516345322993118129801215290213549852993551709918326685180178010564534775530596235887893439628907583922090147893044371196900554284171822787721771993370071862437174744954428787139233527265686172530347665630099436287814638877850491867738434590447714849806162064765980313022816840784052215870282419978149314261559862950814409444037778820123233812313736400935556509035240086966884345571822563986321900561181635975614585585938870790370594701873820793373594494983297384146125719210900235079799470087686513916340364033658333634885679215137360349687192547566145135674002423210079240810728494796714046474882161467985541459093120812291836302199603384972267150260453798336384256570899025069874734094874428399960101518654679024319138005102369143992312786676058653406124473483808057451251473787407292673475704985984767906642803554287990416356042728805242958659402017207471125618202493350094612621141634723054312468862220832839070387966802809442511778595701967219127264220188367334979857951081905259054120568303987060266483741158001765773781295226162940974741581887020231776680259084016931543312756981142654778562129608160365833725298589017481025487013882060521382213827510836096001435951483904086975195395391993122237192620758646820085593920822725697323622188676266235757610663738250772879291909407112673623301515025083107431528581741356274460232120894955055478741280269043621297505733655878853190340780122220368812414972647503811711543106694796208985822949371475893228476634223056047423891246158889549612568874151666463871196766373544250954657847192369492634520918033165595252601907634790770757153239456049287700646391272141618465067080306294906549545938106364783697656408405005165490417714059026831054471565785923448717962905822112811388127688550666309275477717742216977216708474350630529705211454443566744924588860700147442892649690625554647901408776702325157007503083480427684083358908554734940263645687057608014158092156962082624543285561514752905073188665012404967070297532344439259626024011501010983504590784074085795686790699663745459735295039271052404572647453008913834691912057531523504655563575019546706288818922785009100990957835720450717994925100725639621109608703533206308878351350808421102527485397427328436410750886885823224831143268731082488618098886973900155273714752271930235057926481465245799550157176200392740727337263063200129341013592710987510476317409059743321914390369525201310382413867041450985189396817758291802836099796939823527800321759924692986173246010156141265788293650271049837261078049027095141592312575571568680129554455745438089083537390540304983026118834014544498178873825793298293133964914435016224711038447424562584499308014084843587243422694746185599923767102979190500185738308570632703909086888821694634015235178312302006333581831780586097710792091214516628622598726790862498164489596628518763493292924978933441163278852121740697166933693447232271447058667541317555050547729491595511555801280432807113435019800677329399624687204335814593790752545554369001943096264388771047744834199628045002594747950633803220351162738937539981619014921940232619107044700530855508988018671955742708278428555697162867954809522337682883019639462805307496918768331319703224064104167766630280789764702448523273277214890525781206559614349586569695357482441145005245829235536402842013651528630011530481543145942904941256562711451097636306062729267105793126031623503798874022790821601126837567811964528051989756939027303333264771229952825868123358702850804584808306383072650323586434667145506133947439338019956054961153281578499510518489112741313608732479902877659663554720455604033410921015332671923105128232841299893123983831746368424827103884466909779746199472305709829182639977672965529913412416682905411987262078435963631668592217845821526191009903192626478193666247029226226393192333602263401296849980658604705481266327860240001205198274139797419979646937072748824557233071801172187048115379073976648521789807915619486956482183376447362751103303492360522064893208734349585095239166071156497330272823538765581716683226622824364917987807439129918548389997272334653519394035947394501067055152559405493456712171073585316081189780305736241977999406384163811694448187947086252547543054544378665963738183866747118762907085310681347314202773211629231943962641888263211579815427600466520873555899716876643974158763645705388533673711547984020699029322715689867473479776918258001710689723072542174635980593803187452439837688870752271881169732604687889789524582330874684811228917110180257077343120803095266571913584196151384596937140008857813620773129104558787799820876474574784864978108966072190094617744249030910802095136277129901616998686188140407563772867289000201171272056668337610822836972437387580881794428004898448928017479726126661006619545971328179845965521670255363646396963443616474261442619304344385006966280109594736634685264558707390149951782508448928758586421265673787414281027392728674844663776743895716247119538628118678508440990271577569336869772815480133478496120104193581607550954459101540800486249234229421610769951725103452658655668573530317221670904117038171233701891036530991825131650216675977250306058265706177032098405232528066434331419547101465585169615016186223844275382027690750358772814839139933475909565350070759832376307075865050850484154492993722333096585921126073988845430827885694527258063771033672004435881948916279774354071573355928475915307539876377496297679337483618732905761534824339272933766873253345591526670054982320078055323158095946775627780169650186064766651336263619517725818445769225950620364647226114462008762778347079757440465824990796240868768979424256609149326696741625864773241666406745449140333400719542382866418332632529684099026750278095446607754066080758904177959248993050146982705096769299287534629050030899093731135497200593090242000740414373937532148437377563315052776572935310352202190317978420342745374326246739711634373588700376466686304505563814259638917760664131933699826078154874099254657080798399462536665034087504255787772078637433822641256856360643695937653501272571843371591183117443548567248279381787570816535222907357509974075003290708171905131814381111628316571745861337796636245282313750652393212560004403286255610474225566243260111878140284950118616004747498503260063776872416897176154205285997749054393789232969602865588100761988895914833746946869557079131862008295877087749594150571954192792312195281780212271085243589868903922011752313544420628377905142611292682514973191738627003754740432834850790952454137034784290119355066276732974904298926133200852896374797017768747737644884083800160833619580885235333605711676401317270543210046894270981373342957238469475797394876829237460113956456471452709855773147742737146352562377354920123209835821346872533761662410275744592187780762951177679348449505781713287974322100719332003760887835044668193609628907238861947825946832127393149453099243575432395422223686382569911192826071863502656684234141457232787201041277588772729574920316149012953264584934649936641757520508581060405628762055252936348510040845978864515273399888885906902651572947714057318551766214651772948828613810347519439096721070940951495776230655509880950080402481898591467287618364082957534069747731864447030305101097037471835576837942747867485778350991551139991583541464873804865175280985326240319353745338079506075699952929684362977914087249260853512841982549409060979700605266269195342711974447555756722226323606574920839320193476642370420370910239303079991996946997239755516843957980023727567161381139843712974276053860314750631979820958776443702303178842438381686096255097618895579720255218923117777927145613498840626875401503304256851285894127013820137996543415380622643501337324519887517373978743495566341337471640081416393792350849641668292404429595835074300594630771261703150334828809914156788694870916160242351990900141257230280267065579567746676899824320532789726037687055798094610536761582954969883819873434628404740914037756776101713169936293463900798490611119766032190624295356947576434543000108285853078918962617633362548286069671031753807832861404042013934167200145866105928539582334260488227043142968614953951825351726221173603947518248084052976048340484321873654482235721510112585313108346911869810144455167582998361270371582606265325063491079528246341313860480151346738525873046525595928221905602313065687142224081528564564523545539885461287789713133470665136131957333582608716134008996647652775221187636825546254635877495617613747236279651532965140417215742564425471722636227612596672756652306921706855001387274512948939923587125027253323587704036556716520423035386123160730750406764967997985510145769004552052048212920033609583247950153488661531723147821121072409723492668811975335152421871901277710733034344473335005799864412170049845041820166583333567500198322754952084226158236030028288658216363019827462312519693970134573312759464611784229199304769873329558021155757765068144486720597978789245474179321018316865772078441115552714623994333429804983258893962026655423437097401377873232668844176171594021589753492127786535074234224530801734492355640144612077970531728087033567502116579461971974790869963967208602696745096586031348018388030502618254962965538653802262699606581876452433483185637932103597467112054510294920404942450299795449951143816121865265865028884147629129282618095580966260396044393442162342294510378376048551827632000106772589386071112133160779793678637739960222783285678536637433970873038617917969000956890190835143387704647959804587175659663614447919164736298547285638252967470199564689180571997889265104393981176864129921951105474570138424758372351010932996511626525358939575800881883150231576958061144971377801046257902714030740582875563337528821830987267924740443814504063134209277829166011370382032757451551582074161119817942482925772460840607423716946417203221715931183664105962504010457256659337850071673407215899586923228284334121324460080265679061761117713187273406663895463979073454788818647906376663314579606605586079178743012678188816563134028642402892968431577003161088927680786338540038124585243261518763169708462864109674956448773098378716545443684400493796908047268473852815481955701393313564462304462739495485795166375228873468585243724951790032031853488309959224061872040647719733424047740564284683207874925510123043010477294403559920364521367547956618476868833822918595608456836381104150424443995692650923740350311050967706274295442597709031909301600319417376429106313148396630440563834756867315087085740272203283518563374433688651652763452944080168923935757791895197788001801848158686723042202718277783539612304741962365881436438647224510344984806581674564962057132093532340746455519692944928896383566478731073477469471638571691124307667299733073004364327927058419580183763777567725700194524238336312787642530749852021194290775168100817518345746556604611082425957456387093709688339709932124458938101397248738008069855644092224491323491739403045645386996870708877573723702346595236745404269840850678357552054144568157635891643288137530329456926622940517043257464733383035356816226060928616864217612698529806410175149363327991373757569260060126485748205124408917946631586218747116430057335464929685137331826380049622124916682245285661402404561002712993226006690462555411509883861312468639450592124436129795676239405945186492286956602878747612457622053561621564563508485594869776027599211802009368707322365297368543367972237225139580436699129387601503926559018549196262548281645368152168727897653923228943919810963325334802658538317113450105856121728043133186243049120051792425057607185477563606397903162432063343635835869427140577803283965524235020787258503726490830614234862387560285990455709583418198219659496293722802802330666535006779688758085260506686218469424147294512846153871800847040279422137287698973858896691518592697210084444197942044746436946370033859883042204572489017161916835599253550716365402341089733633723350773776699288704875309514041057671013146763180193912480752032876066958679268331149139944782918531839571878472381260115515490112971701230988389098665536181540250832670343001739440454210978318574750481714237285474854719877012627791349752641094506818267726893203108308195082298484309149217893068080205193662162673314291847106597600205582934755794741216730555995240669316857872542045914602821697972274946424192770118349921167186893411456562433039963470659853370478307150297440595435243669928092682382133367487447704198540753964512573933525851499160793155502185084658622625711139459171100392801671962324366163371898788834939083493100424331865395886839602930044197445230192948185324388496174123052839159328927684683953605943582399905472121123769846893366845874027468879568065142225280561466458137867782787499796488044251354505284083646317532862389298354399556851995321815295571986948730676400832819057068751321132246763096536978283406879078661701072080353171144153598301558090838458337948292161251783352950841602612401340738911594532465713612938611442773974549902626102226509948060861458139135185135397366967669028087648013465189103611698246889596863315149048915156374665446836925669038848186629842342950371205665819174556914774139525092944626842584694973662245730431227708172381657657724094872609512115369000634709022392369645986488402849824411731065649955350387684910871630839120156517285982714922136503131432941867926007703239460588149543446395134077890940895639215887321711432380820444151214814721186116386552461382015771598932596634190889193813587012407994437795968133017707079435518892474693895607980203504765572548669363134751130093847035883731210127811010285475369709180203764465360747649588720399101373479048193314514375466799048993867445653617834951390509413498536948716061922229768011000964856554991005296363438447160314167886810720946906753800642051475803959094665800392967681126883173658421359757690031367346066634536289248740282068504481996634187747157281087075990025348048395672449241227004430661574162034911821668736805870032228156623081259328458415711237088520403522444089119531602582119323734235970127947902260615391955061652610986771070173714691228465811886012481540892595617091179780062527133724093869698095705277268519709377974596523660536924942316387686229629877564811621898635974204884348955101853355142392426489478604439183471427137113255586248931709502091486144511365870511032185390619212636431350359876721650626958485279879299674822360772153629208029121281811071848294297174211899460649445178435385629431389325400361302929711202449270475599137937139882636480180228583599785510328456497013673334614489321772598553250543616083328211127535299213357379484110894218186299448307469582762460254814849869304384693071442201831189824715504681578443745527103380689882380579009353492741602558921078715379119821562433184437317402187284173892607559685758278062314685838923356440605973799446125165619002013037075522706617718048993291636351997450515963096091232659879088445882639774222000754405132476191671642331020190318043622088746391809897786496770118748077205809680470053651734219018558664199246577677006768460089197958510542372393529514724219640233584591649426180497010789826160379580851562213835573954204158742157994523345682142829209180576764346366068326462476342547619204207880075907033506227276625082071995385586677442400513741155066798859245226915610158950288689599400375661582913036227995091674630260668602355019325598853812430079554428454460971770449721263160044095551099908713354816140478473338213271861262584282055460176300757920738326480098689421491862189008932578692167140537408193405391948525580235889809730090696297077130793736642930313133716480618293000908800036447465413834305290474378395911601178439666920002871102080832714868822865724457030914232598377226460829262616949461968738544567333748913013493232426039929113437898495521280278931845441641011083308280349329210323096304486149538475390583327513037927883107117361848551155253402817378845578974147809766227757653642181963553609163114944700393009541006024227883644851979157022442359569062590732360904481012050518722537979155947900471850535987367037989796735106569609937668300369313242975195766763817830837887834056914094952949461208381490149402133064864191029138207147864042137385200142003722015877985130358596970294006066629426027803917300493972920202132417641902964127828940521421771751354768723177756806117876936821594972665608534653107616658835809070616579510341136532689670625517317305627966874141861476216715032147378464445914466401819598283910590333724873975257180210499829379755182770362116098655401450014297685909278753609599165765238789129856169118591793381107431133916240604219139495053876390524435387191997221794748094600569594418937361981140768055998823801181170052365869415673402502964584990171238903463573928884755224894657573645504771015292071608678504093791297904938222890930747538558076859274477871013089866686981345577233153985765486321160740633660627992442747179993216968072930633811167562994842757583268085133379937154460997215869434259349897109910003619956821069203532841761109242329812466275064615336002961872903926026404338085899498440169629899779779866597091700773384350306350800091219856477133956209066882119012174002336976420682093533462657912396226702149724053971850852381388004206634626440733309548231901174592348114363079606683490770244908534819478445038335296227830232715804514471492191622881949200174843530062585900175734444142514259436954880644529670266830342137547209652464559036749516024916945677104683579356551077709221393744226604297192967618063941723044692911079650009475355780521397730651432331405980716236060431328609945637069576537230414829077343270558382001656362132974279856623573615095238961471989448081328824910405752480604235020368514249635897469201884647189812501697731315783213617994837600490246457311826703463650585861124996271826596130279651274415398142453078934223630735640831749769068788241712433960013833628047547025052839534163432080774045542677127871472142958628385267002069686849173119057886580114932193839355286371657846544955461629065418225021709124249343042888999421331006770189539731974290988018177267788329836460502754587106040830282184811866240230386505372998563732612550056449588254935004157865380820185406143243187427576096704187636898379804204706398865292668972817886170407392407383648949358313140589864159389781674186926563675004938149795331946636984883815358370417141673189404035785283630371886636101518895457273939633028647758028342783648698415560202362385513671326091574321933265562906796537415007537461007969864742903746623891253933302862963491259644777042513052795286676848909257417816379312902294606679980302195500998457073488036532192512596706324660720286750482638350186588741545598442819001057629622378575399151853518006374343281768830582654398889456814311628867162175960342205430818491364990545132301566159111980895066297413113189526430908890378512446062934363869658880992975774422777418175798196204003130741031958640973354010467984272567464774741108773793411972023619335345522274692450715684992024723192913387485845264896131102093752159978653936321635745212405396155694824378919140470401877382419374039595968395173103396808462530125868950029366938963970815041267856878269857646297686997796664010347168571904928738157764961313266963645452688618811603195002264877219711773858828545458042084215837266766330333627916915807714802880262547649004728419421933470484350668998893112279531759576858084455936296870082090808303244423697523679917014331473396561407777465972776222157964003658459759582743666895179537110967901800454089298546353730132525502770617261521669230621552497927052706472167534498977454990982122251445874815029222948061964462610500445904912053908398443561358811156635441219939651281722726799760711438658696236106778901810303737610267256029908068506110303405521351259727374080313001427648987111686088009664914798125178402076262022106064266112406610126232766815119548848089363138101793101799948172993767972047735472161129098818135529456784091633276420215675352012052336085345991119408613203215410401339159203225711296377377722266047880525477493095692837755133142456088786536100493201759027903431162980580299385281927641811159313326491021959876465371901429984605753526224893925479858867358765739281935751175158334400774128529763618593036138775663232256340333585629413189376447851403004138931746868348239823496837378715075608762325898439605668133251460431892623325265486589141081481863483650498419811748669799327630255896437522952438182639700408100418378683121124839043916620873140497821208438552200220688709278276658070262240893300862333193743389044362003192950538390363181000817888635588506948045972228095101360628324164432810436114898042102967782725169613152737225676599177159183018095349356381770807876534730528628120925330896550825000854654711281268490783727477684456548302264454625508178087404174603507307631477548040474301254766259771897269803415900949231273534752148646787730874279362230485417437366315209149190530207493454259511431616903123479635330155307032004587193652479641192138991542567131935147080667076713312490192959005044257946734686015799458625262937249908664771894907350555483245853772099467544198572920962669846140455891113612994255112464874846827515454865318759906672748077935357170095543698714711345090856404115103947042523506028654161733866852001180771406649557367139574332653821026674611957344168689923031639176268195904674920350504855111931905794871588494571724110659017336637064090652785865520388840248553122419805549995342788775132646813066789459116392836704558413737431689083059836045540473582557955730646909957335839603735206663978563987822249336347952368479671585412005955262807145010019521962054020033855640004919789812585736364646110019563759010567824319137476911318076428856940002192773808440807478738180539868833704133342730390797618624884994226213133968526234165920218858447353853631108065422674570151637951379344623367925447762876887609724041613303643404538163493253250052849568845849180939968147227430914883783116001071187650708073312649246663037378244223978958614309314935655882207724970199041892658442264106078851165461631757743932609293463184494686110627204926480953638716505241490017841462942839290577171257330843425638339747824470810266369158897024077064171396994699549973840338346214968237365316176871669017271349566799962348617224196040487838546235699694426961443686492933147066625894766583685346927284856949055314299937095807126582783115828821230888059688312329434674491885184239685546248276312250038577844832999475777724197792580683977318919079078392860460636713198096256181752267741673917254806246761748474073313507202992471445968005188550265488434051662338228950047878697670357228138617745281044827280825661003724937501238264255474088157047833139803608211801962910389997800000728755723199446073124023524171708963194679707876732826889119297357742651050270177362492453316874989341189726459018143168742957168770140267118244154999999614657701223025175010184046495591140354325467755519033352026517079136034016129588814072820114161180587531680045150874568441018258486523602269850685972944363080535358149828842797551179672078416004309776956134177323446282019946568402692437545909558815930097125005544662476775080379490883315312818537465390050865088407468383860961175220373997261041391181646878799083132106507252980634859527829692537537407868849663963001623100968242351132700605848062391061122110193423674678686870148095207667891368308711263314167110402095331857133348670948626585867837407419416381811285831520825673123701395109531225095539595246068962993391999222869794690563908062493406470384460261821371854944394664553831640264439833990766067984318266532660052730783468884046180533345941441580643293113777555119059460897922666871896960893341291713333744768266099218301396524144528273208486667025947090474987003423664213743086304903570042327933120404658541993295776220776726362606686900909141075687034902774310335826121976682216516276457588143394014087278386910208747426138680881392412433639373113429953025934909243198299877664750281880458951709364166736686415824931596560257346792465917275039214762775104779814977261680533774642679319714086849121105926519086119444145334307002491071241857140454393362756131743665096872028532103930708216931792565224845402159733669386498223986629705212345009851213460394113186582116901012926708504847192980750080095679276883327657012328354886116318078954432273044435820165055914934462336227531223434229314776658738761019447071988553185254768265521553779800735739238665634739839763142996236897276204239975804275984310739735033293302959044002026417912189425512027616426601805307352383186033509391107198487274829335296205475165198947096850071351117558803664249080830332465104064275457264198086430352582801041882099553503478343280466381230781514867403334763858207473608129903446116678534820814707089507868611524538583314456069860686684704706855504017645432106188982078012588692169950753800543433224599928651558400224288487101882661585416645233783660250515793731006059046559606481025077536570140953131183064130621166617983501650675560255869851752354881495177186756207287222412134214060974461171858339899644061052482033643313927673874622970166101923622625594343979071426165536689405212606984351911439993472164336084120331100086572806274307568484682296023685926232629018737883446813629662754587043018583479370887677691098237444533351267598332823767163234540228102980113779377302634777235797884509463580156235517139309236382058176786839428313911018962805672610394055577799153787486578962866124745404463268370935098755537311023457154701141273276762216746213286455193270053842963390069313014140274618779318817900843595123235211418385793785400327824559574244837584507935585270762596305220056653746694269962752912732594715489352521043360505674292024464282186987396554738767931956646628016139847655861565734145401536881960509861954060154757488946814156451523585698081854844994562027632134474920216721886383702408042657947751914808994150929698591055498247531198020890077385075406058892769685175992356816774827532398761123677675379336083155132221343799567430358100761651118304179155011819272850166552578832642388077805775491057001993420419767235960340053153944315202668119038809971035940137283815162538686341648270656273451139679605040566693121257323432208063686114984240348184853715239409110214598904863394072259885490450656398817191865772290672232337672451371327448644771233581353893221715490410423476728144490504580097976297774621030302855331137868789863891478124202272092845145482047517890764305910417772076928150832200054225159684976995683474522264123862256290688894447411112010887683969701322909677748855760607640016256286093027413466149259320554321451722969638313805203139972020935265085009907949514707574294593001369166220035866683404770197763898750979825639409336623856038348657262871877292706815818992805180867301802697122172571881551477528363749231266572163237231772234603539678562192402929343366774383071105156927509081631755189351815909572677571578093140057203782813997663316745752271604449054423667270403128218976801414327202754257085990488781973305528237320211749821782448522202003541267684276771133990799590320792700459376982990340118953699372317929927100968591254663638484216632670414709903826281075961979345086520162411468176736427825806151904721180648916832084419304998122740926349417322335398337950812597337186047842330941698230277262499188384002793262693070702513955182486478979840688083130439765801787439358692305881309643177936785202991329876253841954773601924976708384033413631678373346971367753995488403331182959624497323204838536818499131480105884376583514213328649270424462047848860363857933135791709146202660736557585654800906723280491784841827798307141126016219172348331670602380882527154783085772872540226065591466401928448632753211693451353583626290688245039683025603413458251558459192398289690231925569971852611331197492260155348753437626163249553495196760450361534274263453773201542025593406690364135415116330657854047337998689682252827438321031620046070775849071639813228453702535033254710590074619758789327376655297122241516592645664003505296511000662144050763895917733414866980800709890695037466442584628720999812094370114409936401964181320076634288722884946036080576063764527239784956523815419127751968653965711277733901476340853769097911187279263446272359453676768633558372767881769086423488611104755535482206640015645042285263855137230740353862444060995576461515401741289472930664160101628003833908161440138420158572083497964697793133077137730464033035273799550922504126332443247010884303620591336686123838295177747893542646903577367630462697530304320192555225231781739871686359561734144212773970700880523980488435960918094022763038470395569075138769790865918257112617918394585309779171759156906986548914268472211620638509341863517609688951482690486466973877025497943289722310683352202783957996917402212550678263143081507326371193582236485402970938712829182710342721410207078829809457176470182965604835057262710016290069464253170507128453285756884240503265088265951749034234319162216235753454351193583373981130957194702830219566286619543000621618254966201367115446179763087304716911580415937828167093387630137135870845025701495624783345729562070476973057919440148601888437920762032670101303415431146544426787918070785128288571039431219342906399081494750510486797323035649244338396118126105226918060449327328269375839659573019373001617630933102010080037858673923253784984248700586523767432372984997979344068041968557100339861153894416651241114081216006131762562532601832844672269966471978796331674618525686701449464673484392575234310865696255177578665231419147392930772100392623786929095162715666507224168091352761031893881206140866375131397955061708512770287896422028543716131336642864238812076327927148567100870567589813804339448098430887214531513529250090577797701550634950241194495705991334371438944510654079098546855822108108741138969011486120183814295899391480316746661798950600873638365997941170354712900253498533440354669316860146920614088392053371986503576097541881078500450086981773600477038135138057527247552407811347317912683806893206585989423783519131277221628885253838074017683800012855483216866235010894920425628395314813259233061203195377735051871233192915000928622001715858894770866706093563399137397575410924823946100497996542480997926144722439169539890649576381130036495731825107951951824992279315763254971722106061656042421672978233634213052416016115923017342943206090187098162510553810029819455736741638299632785970301120105963256524467705026914154052803720537960951192219226874922390834848998295104174499449222537769112464061512582554056244922133851650494745041494872255319827851335226642704586160014230454705143932568835267539035735533554692393032644573816340918333203838931296425751540148861375025997078069792778798368526393063646833646327790566276671481326398725231362315492966540460409148815175605572051150097246782940425151587694509101590273993238432663396724556971430891765475568442658614771872210384466812414878324567012380603348012104367109879663760873626856382815761535276361576860168421786968488158666207604201076375028585009489993020567892857579193781248508198119116418297231434621695783912717762903071745102027871858382928926504579552683677576751333393667225230297548954171463835114961732141448262197724537323651957081282145002054147751603515062520934071746744014874207706980247511621579019989091877441841574773459294716374045568647376367183851330860887113284273008374789704428209116576527332930477398704183882325411200049426557537809195776178620641254793391936927966438145183884483214343148765174168141462330772836936831270112874456925992172631539353594771592959740126064188651404854209390286193878489049100316648285083105248101719147135105331242497125193918143421068894623081041018957341257923067533776104750457865229674960120927609668343190593724986449670698485242320446367718806939356729466399506617866503744906063017591516396347167381186243125337319003149208447515388997178430658327487858493328950459393694341658054558608059600792837654733764804434487378981756422312594474629848048356540614125232265299472250630086080443859158534044595583924266122171120136668293635193929202415232503493323973130592015268316870422466255292248031627159018254287838027956296930475424020126317801782117455115924791722906440427914944048463508606197907260464794709261094331834869360524039337445905520220727451842535476058010936165334811676426629655064892456104692275771646348637159970744604153062456356309244889877678838127252763710513742232609093925869344446294382111395787068322702972035430733074020830253070407923452881765230790647386996600627760558376034242871296502498844590792889658256830989458791561445303931388361703042095966458100659138811690226019098029104973347558462918057635329739543299455463419615893786886468258791043790373089917994146170776676657922611523829882818999785746646502425462610187108649716311814079793871672566935576103751184787811448532305501024237692082412369948348576634504064992250069734188882823286591925769132874804540314086007178903655646811942946406520780680423723927529772883175269694438555076208768487388847388846795568987041236261825087682147224786898415244162562516844864837599840708974626147502904204021323295003374449017136329758547041855137323466387838802221456349884267877448472226073305176251502806286181619172142789936966528463297857238199339581338227450223654328238702544256488771462068894364406082855741262657910187849938521732851926783570284848990738761670271129220142183925259123439849587661481527902810408816440180245403453472971881512092090315854599644151843966286357926356747591700928433723237509540739129348174855618014725530469123661169983762650187097111561754342710388863904842643858552190500313051128566185166346348962514270458699291269727709005991311966162011800008360692866861239713899575313910001823225580039688047405256737880333394828023800819351799184219556993055422935264250661046608019000020026219617898968418435001665422096740033457682786241823218509124035446724865283870612441841194526300119162821032354148150850679250425497802202123997963430982170985116963125515048186628426124700358946891025868203543398306941429033159390401242068538842954152529315436462450239836686030702759094332696597146410669830945812140216442406739248713732014778522423419306612710235818522280368054007860526018532074793259651557186680865526749675403577383793075432108964924551399904385044124257632489073115239914926742952259225683012146840577684837205647271283786719815173879107074383846157655230918908748280761603185561903391284695806405497692295834154251578814535934705302438082981638911208091836152485115736244858813538962081324029805854109631393769509212690053300943571565433959308287610120469991087693886869233631318282591325702001965989170281139597218211949800948045842874649190415936311649458838893497780802418971125795023785983317121619017929743923844549200718077338269815493767225719692690326850558105983738113589358395380139495247114901370502872095448889333020935142113885179108131724331312117186885497521855634987734793375088001043094665427511903995413500184076044857408885597881573198981891905962951246234893025549178121532487214826379940760533596627199343504697666537978501718759921441943682937451618502299718166408937357094981954039142157659969495105872434716483386016453424138846817684813716529308499541922391472072351049728597751032945485880288644927059176432933351055371286934884945333229115712435343264131034540781617998356679403099573170280420724977266810657759370837175728762969952928878797078172456628602073441882170241098951121404657052612812058722935241001820614614027432568972436364461740731006017305477843203453471398969822238348662569192622367831953216592565453679275864764127525851372016596784949900175232377111176862213381134849284808357819189929273356194043284686825698961768599276657506227919848787708434928254324253067648821954509707755769936612389282347483165764476473383245309613423750241880230832285959841776287914389789632140182995825035828353014688813049800444597781556646842467271574808151995474988457241854164707597040446500278466249836472982361135111450937648015976926817848416979954844188770498293412408448980566597678959070349089851731110872781182989437237804903064705488005438224501434682293065556374445487627802301249299087006489071729535567375093349541066046812951635725062977007438717050673291535159000025541528567580439803631799184514618137443047805670293732948695470265288026800219175054482715357261992172678467952436846951296464870955422355532833837134758711304109696704215044712077919512697821851853119228310986014344538210478630631236569064308368430050470363250043793978011518363973377219321124623807438817111750717026666670355105925630409688084387417463690672104119039567885165623699943482333809391101493606413436380635611582755876536705774185311171478852578596222475464709762522579536190615662577361025682713250465857321073552262637262726092698644013052134393819600603433422313773439665949336576201270171477919524943101110409563414322637680890376345994807522968121772222386498030444123034275272356454139080999560457939469945540633343700376204294143389874838825454757762451939839412059614381172037800328261708055625015272775938577414093239629262197653646179599768953705028717845506531773821786825925281174414746716226979551267742042189841148358656625087376028191153352900020801674830725025051292113708271238678803938024501303826328088292808165660957148913779400523187659629900878151717756179422262876921832679594512176120752065967278644462151500490076725175973905824091410824747075964864419730200356878878423577522251989936919322741224345070329591269260113440199668661409655288692399788672955644555594479576323641555461114358773697557977889292468379659289251909257048058893126683254761545675540111682438484492187434517973121259945873198479661704783091053963681581064704495347804703900216179641182591702661671135982266739064048762068095074187262530767360126156754342913538114752935349331307195197274720156585476861825070192820363302657439304137610373567368632155104589424529613126589758376478351221985417496236987553703291847300318094586804579864253665786264320727575697996084514518195560024770791296838860151965303740807264387921486500944225106120550306081295546186906454954504810528277485376847728243206782171790122179026317538319942850892647990710382763788211114380661821013890392785680673803404650241669042375048539320274029292324165127221103500015541279298770692707791449560944356713524166235053071557496102441007060227783709492804121501524807248586912265559017849858296103404955917370058390061534955914221256344288400129388731973852626716117113544631193222190239256454887284620902003184377644468987384241373192915901760400501148838817197735813433068569494105407737331909789451924721790112683607869592831405574958132451080531036660862313028132022111194740498146000596635728403883841445407336148950721403905971530014162881205266892319990934341020349198752266670349087053432447055917787283992315374721687455007912566600960593461802624027275647663857502478434496904806295250099716596886949474492373423932231808637659982100469836134405440410740298703069045015659508145215871595549114404456865457781869326140266710914350196118897876939698315314582133893777412363854774896695671769438256758170763316589347699978902939948571258890822466740475950935735283103471976113019958015204937960999605624081427632693132157819352940721671528549844213433015836021984537857520086419716843272271688951992400889631326255857435597643942156071504864390649849664503033336279471417861700764560383523110286298813289618602146568228275885909056934363237951345386922498035090308289104944465532366463561179698712691005406916379103707213197052206055959855234274183560927627635811595948955689973300043796155486347515874506809329274448204212144255943060825589755815337680083098241792810704939696921433377581648190488651545757237291930339335007388164707109306369109645916505647045999198315148353013359899758756626027378139727832431475932309433030025498837331661399920349914408888646059416803587356382749647747754819738467613393242770284631036062009062807854337128566451486744807510910517883954960209435516010870879115399611998733748739788695313355548992593061753186217403052818473994037012205906519514204116828139940532107063058066315128959538339191447042390041697338928448595818433948734614197200285833641788388879258578523342182754894948450372625804750805727831720673570631158078110465617747074155117790786305480680903185700208791308171126011042848319306992229954227486963246573702852093865010652372714632311928130843743566701210944359639932748739056395950478705418655253967231216792249896974938482548602571601619356955359414694294822141864779657010587883425712701815504686939644260134403933856825119497711556045040640874197342288514688165857314630471304229637359695569823252256850353859902403493244856612033558037446398740782229967014274681056303329180134468458726190993155719644020945251587931197559374775697768813696403685944165161760103273740759501696751945671057960289953364842819942821350892479188476024429877868906119391252199238651142286821959935135450806851718765593850101856068945530498224851236271547298655479521511060097374907814733504811956649463700451620857408097215666648681438588426659842899901509969348456383811857992965586809096220694958828464647075084285756907969016426559147824953723751192161092767982979369355498536800593219293519699580547529789795703228321297362452241544984207376024881394449410050586813538030594458570926395854032768194216810512304243858561826254205656914313912175547732729733821524468198850307713715320822777540412449469534364619702795817438146235405960925269203360596435791086854965325506648086833437091385474939732260339014166349271939717912533522120430684990611801842082916451868092155998254178046450957110863116848764436786766640344679370552048052724768828489028467748488337056690977415886636125449895101114213140967502965313677571944178148663030650260667016342047609980328104701641076269914439721450018421027362856450345883264441135930204358447203746342002422687965173077355170983053146899239270286744179998685475506593628745415430701932756143091217842827305416105261816469712841790846095249175399847898903713898715283061257139522820656540824432136819521507071964816056836370848262381320699359042598850272558278517355721280299037274286066558623277151639321410466000329109016941030038890397961214763182169120110367735945693654328666918049462944040225429677010863761885673487320946210301692276753967836451134647600770896160055215441126754102528808310086432417868253520735175790312390844386939947375676207792149278708737419267357410946772736422896683613748555479951593754868678559494044037776507872666829133235115080247458517938925566564371223414502268011776043486895935534704360868237691097090739782681402721373586948985704081755019249888857364000014233825276323138455356419187700221977135286968477066599396644437168664512375343253946000839160641626597377331322267937466395410380901906575468135174106340132912169836774422627991855541854326869393733521975994482328937380691281232017686408889113167868546057515915721735815256485935318342804642901033334889421414622983602434626749286054665426432482474938380749487397739026656287490679628226880585036378171796142481914759860544556843702976418572048077097911781518001947436586582141047211967867283402448007788278565570068589996622972638656127574790034463212685261688598651125735766421543727747720425999250132675665116978832172440291084790470789016547463185996551302651840665567916948896147836610046052963552808931281323391990160651970732213470238479605712966031804747898942624761530395424963552394719754544298965038563090751935374016650238555263094642182143556476465454381273849620212035769355840112173199659547368389474995784308168653240207410841408097820738335865443444623911395503492590054181502860942084443913794249477014129298248073005122468725573967801779807521676645025351768216338087500290542030409355746948432194712389073177251229711925726685238676932539454582965523231076364815068030103636886559847015112295108739021552936482867434526997805835938805689709597674480227964883062148984690583525686994727967513513944308793033771199112390299503445442208083325984485470052989644193338202504926632145123537067027504378593490603150159120918254471997815133281723929756543317540904788213811388209997728138938602820771604249092181386422197237744592276488536819578031110795289597457341444319716873719090526191520731063222945838604023499068980317764643582767153064266003636747940795908986192731499872342937900051243837685726051297735297105478663905993095626088204384430918893677277753376805131309925029113155705552125504867493170016868245714602894336353392351155600201037413769098321371478439370679375404571618654211909207522639669073299718642216826864742769967233324059770806213356835158381545169049762369510166205297883175049762399777717138205908332516745601606382828744178363610068929949759678356114020706416098063591081696337943898283677709894008793022604346763605678890662063162231060670087701874979437766337670420937449942727943966983979101895335152208864324597693183099015720328238562658527744027185529083409534427825788318101783065269594401333130207143231694165642122402921464921003160179234180050632182955604002133330065242507255419301238915867809235275979957530650408289336219768498034631414906614003040638166250753221394961360714630138897024515222289296749346296877322514023297479978635035440691410154376121459099860787823976898363357713916409457865330432864111282373580037813557405026313160064045980098611203237350674660026216024571529978853715910418524509178874667709174891578957204062973692172757202886851242962834291046399152944488987327793820859133175764256483537031451103702410646268344714311712869787480895436844507107657463893671026642944946969784899555002529155352181546784432029752142338086995993779154227008653608676464212424175030565820767827380121456517066260350782013674296048840638731696514920437429846130621817258227946207332248696023512184714379542995524536599017996938682274279754005275998498030265823978192111721636154227533074221383361068469453228284808581798235703481855905501906767462410550377295162870993014096381046984998773176487871687693171645525418561705282466508965411574461811909344076510556621442051685793365210524201187654925186045320416318862227474625315228378718740932697611363031769179538521098757896391715453840688479979106821567868958127672885389628547390456691417640933661658510009275294464675930323303160056409049413003329504935997614492993728254928635344757584273450420873353754137846157279004118962036984795686252568995034966643487388204332037700680077550258447711225250540292228212585809784868343392591809337799265614392209565847699346696551553818921036316764519919886662170285789096882765601061179815228197021191667666629687408939945216325603742480322574325056216301089678680429147280185441441472832754603743990650959422126531907260592429664821440294655862074093293279455442375245203215679472111692512798999064504588960457199050222809729706659629268981584748327496446246725533033849267383629768845471538192287863252286133574201346154043538509796426696485794177569654349019624677585684607529492110231147158540114963402908792756829626072818075926665781141340751964535804320277002549508386373020846413364733640288143640628492840292417765202644945820761142529017241926356675528281088954662672770716671795752309292224032272034141925691713573102839132667863748841350755302922602272728217661160173007436756429637284722468605633869266690033386030910002941797311434244354425323990086339293998608389997394522961071350538399655433702965948402211430016330045886362597503070011903836254867568343813807813073211022378088513823698014441592488396091093363893505734948649997037879052591146285937563484833767610136442864062684666565725272715806505032480690595800708487489634885393495607010098909629744929774207054725900351795133379237374520503128914646126278199797535324177883342334898722379591129916045508111230772203126939125723103121247276012824802588518991942400519671973854058868184598103508099450025452017304826588819689155878647311159817382019830886180857425293045385297793794276848941883389615975771750922454640780511689741306024622131857128982421297951274824530391964303942558707889229399697647197342937691691425447298204602578807151678033446459185795732154581374240414881417073514928091162069446920896593414393314821485957157881464985964485532818531571051917970988625912660255393350544924473898856668714883086048375561685770306886375615219015736458659246367482525694754427130050257718669890088164186355671014652007525754749578863865418989003942100890281152831370219922126434568109292575755902406778927081229617584590235725972940368757496113808363054128151289395222721844760140454513035265792173686072998625717965936159717044192732119533937433829638895638038112478569869798875324016532015269909303803001766968633485517228561164841392949560574228482280289403967045698857326929060682036748692511792659574833294090233878717737550409682510706907758810236770619394199288173534480503560352633155594824785313812341414297985081430485603585667305213147687994512456000794752158997467957950426132505085748685624527822007234373272882873503036576274433212867133502313292160324317549285788325706632435722036587793502966809809908093605846281332254414551193228393796689742998258058715706287296081576710842261939578720699715032764114442109851692366329655532367985897575794309969508994072055789291560792728317193327734887563313776975611883620225807869623490728426260781486897826334371743848549271265624471704658494264353623908844055837495690858429151814278558388214170163179568310950303257340929706837329432392237817056648770867572271556239195870273889244429699186238941270733755945118681397849784034255700453581381681322709309545214854190477661913545986275707611395001608963227584868980853116713897290694465688177298755191405051937596469599358840728426535171374805346846756844890858341220379054377927147444114056623019310876382173948920820504227882123954571716146057136777328727888217220642683443604050698183982196910128755288573917996244999277020556241380820006875848973216313725219764158206937322610081261165900041219270594347723217121514011500029208868090258055590094772126659622708432358072503803613279346423731440632228681948409376623672927111456677587794608039573642079933637973561968259869475499461487833806462032881123850644281939311750749686033446842587544988416075070940757299293893485638509475616243473606579408744002646988186566223391438453702897606706038920856556353365872680575664192949705996759545413398663603744580489137581970348959979695984352017052200893507589152365689235155860188516944046569491795629480165040787839238760477900253607344118200945720958913851286961946770298848295392982618651808096075812190627264488890562818109168112907602442448654104178851137478058446284071079734370188385295945355210801182368338221440205809651683161720198138710907205367357153068649119490297064575924498245550461097602577898761570860900670362601125578630989610828791474172712942605394046748356934986567473944531015624178950029602563579176999121486085191436062082170478852510407692703816504870368557733741008608235184426879144488474537792076528049934634758430701788824079615948816674100207476628174717935389808601214300927555266057825550869345033610853424853985463094813918688383709269966928049041417006037799581647426056793632604961422674419340487464881229332743124179149665263278047287491123110655778732934253940248992235536679316908731275196937467277489785222801604945202320736128059927137293559656705936212860888020169474537547519243732764782757305430939529018171689775537064464919039385331353812853070850205733455075672090252319138468044325170495195037728895110902100264527907998388430730743851817937935345546079329060270975927873399879339408279062254633876914875037686021357683573566148119504997689620565672802610313323503371571497500061616047221693922773528016732587677981301300154292864381621886441752686464981953661119578521431843086572279644321722825871100697943443528816059667781875735998567245164239955535410627780125121876316156026051116221394778124654762844539639236709084735635455320967422869997723161366420032774372418085741114397753214401746967949816948614604111518993496258445281137738630774386192304483695619771188753530448148698035185756511352798655094025039207906974115091345172621807359527150570985468087981432303158200547344712675966896702221160003833945516935382787516028205658735138246018134141438519429052076596122759854779356801829721455770914816894087820040208878252015727785954135422076212638057052017082873441616389800421939088698714684468709751716654997962788190198715957744267971092046620412539488401493957727506018076857013884621803937740489625768848414942006006082964851947207908741736156802060275706292483795596706944707249872398688062034293779460584275915013119386835982374219117044504064212120416909021440122037416868008698995716304420928876680620277484380073816447769020204912549175207381086205321120285269429454249047208445515596895919933591962228837883973772677157868237044100655304942689940199740717191014835885637184202980196274120021262928962381811270977477080908702096383338648820932388666448585057031568692986801864217188725558453760635261598452080068456085182699473406056861509977348961082576569047025306468760582738581960231483836802439357482528640447047903895333921056137491650052841096188821089841984043852338140073015451791372912539875648723636850280933559503520328985752155434368818511107600062317863668988232498014576958146003678062734551768116191047007890710588744151629448812077615347323911775665563465123604244633492194231310146665182630292498447841036238490781265409868221157930096232684181455679299434370953886037735141436128433691444494754406302593599647791248547530465133687764768850164539278122627063163951556701578240949410966682045415096856317232920784694602588538739024643456019948410613780804126767785884796907390641022870475608466717471792043651069961780091958715128412801245257037443453538379266597212495084862381027099108273595490768762791200976932466119550257262458690440632381883746095442924904714299228891363944190389020205003243166406799996966334397323576953678073140781079025397985749690770546941785559022144950268313041354328977145718502084517072173352301313917113632025389720425239570254119311986770578172832615821413648898045902859104479113754277290514951115514311244811277842484468468416925625511088140236527267030191016987894848303421613291851735662678395247084416428701222862954556925949638150301169684091902103929904507858835798398168724196033337160378929770006193946421886598956603860632345962498466173820774013592033308757240176234773004605236151044042979503000306276056040294079613111850860643738062777069647837718151553727221806293194559729331106090642255662119929075178774122889964204767854309213614457737854123275132443849135968241744237805803870514920793069416652480000268113339504847681114214935590696244016811668310054894193314868011270526941839255669333538340114058041064817830598165800925501397252706223587014568321928592110409344001804930574050930362691063600686467010092529373909099582540708089605770529223519127075683109883381432032762498050459142820725569060770854113014089384575513725092241871891558977733863645025174460144002288734374290338096040390839274215377724857026521020608223057605817667241988409224795542158190775853768273810357525607215391740788518261414346227837046911995152693680376796081395408128757168858923232141991799548809124790975007715872788041061704516534410375607502940276501571518543949027469861370411291871085094424659657459966591170824252277476899501013833826306222563103026866734556883661098143155070016951175995308647710875914990043269322603334875021982410145465694767503610250782708224846467745447060478659385303118652249777931159045489874736893355668083871231517410245245667808191789255453248648612029743645381308608239536252746264190163340835359002744748018610197402291588283337289218242977065597960763934344155168737424978166549978896621791292777406364525112526106353021926386958095549294833828545073621775656996427720583846669703383003540744215769250859654255959029557353131592005294834692784150888200833868123448543751404017976180998685852564489241276522441745058155509693121715831153419357374019089173984619052059437249208785856634265037606428958943222494946703630489196205613443630288433800315861760053956964961078839315797825265702829473447808541023873305889546798320815588960241738489701437247379424757893825956220542685985533109013826361859718633726314400670629938643897766029338278596414823175946986077498045104793249535375023727710171721520327172168597584954270879895224977249973578252857800707417787989245197802219327275104288054248897720580738436320980338310847343328067977420058561498873763031132384235586676644017573487428658627678441228880079447329601262207192236146449917066161997645848503873530592466158440853990422604778962305511227395263232783109433447634596627929772315050282977393221200338376481031968044287590177521038149815446724815072286330500548014053189115206926732011365422788804816630576421920206719511009157842054064623478294612149946016953910493170780008450990683822954848336291940789314380954135845987025576143579090125918902426806401092788305387104309192544578174295393890027616050863303550623370911214250868475045861323985809223885049381779717544686220707356882096218346409428591544055119834278416751105406512239269286543287381247093408803679152481760217736393583575860578903187117980302707026359811560412628475928822128878523962821927385327348956737068335859353568978432286426183013939521398626057335625617738334737593603350679646549725305790601001912512736065796371613836248967720016842461132582915909478034697322956947779748328432624329641920111351867547434797696298603658586187817608308655057085067163455295164917249485362711282127836673076745555620150661575577427000352620978977127801259647331389374091555753140960389149327501478720927034859208809706914953676633737095103341444742384541578753998751426381653229184072335297899169977089919283365613485442262067025752548030232122354803225371624101517540531693025374648550402374423056423832400173149949042418284210889977221877809080965447278100699226620239201358172487098834555596193898068008807876035418245871471398908734074452927248470437126356677256853134874777636847675339274888690320689737003512268345123023352222327884224240190891745212315233136937952036997700202100374064205344065113859134609297976367145743526224659423192053789663761615344739834128515106811435375847827370413609010067275708711988724105551447675953616032959828587526554109223594765334226888571962023850756993061047964118565268658189086005991721123596684217798516508689836244077406664889891300715998522045105114644370552628370132846061825420725518267143458583548444510353602554417330466420673274966991242472833290208080212222524517869571265802475506619751932003437309461976365585113300116993902627523129098005905425019599347198955745097586337603807441173898514745855704275386554136167890537521671631375257179089203883690196246483373306621106141496013543292066852138626589892615395736710204346726950905235802265924389993635992315506097152035243845265089228080817342027132167221445521764838126196916728125239263938488793663441715493467760020937108763988538205971043460130770028501970360236278585770814849032877490926030309945874603901959938642068812729693744351882560322984503956855961904644045469782129874011940073973280533619362264125057634761185917001447765061649475485620017570865245479386419570304059543852406844049925640805174701115869116939450343389525439402422230295060945165742908705306993777087833749831213523362681826847055728145871639247094228760448911459236316617285823550661924230873593283018058930979851557275868625263874052545177707236527084932862301846790332726662625680632659052341477166628310322431106712783622649961117277664003483718262914428692578529233304249350670627025193023814503527113713185176511382826768819714556240572046806997869787894067950096497381947848832741310299256151041605702347053520220692350804942834656975178829278915696565424577418305508608900726230136243456178980005786081646193027772631576380371872077045371396737462216879397007671012737983540252680696942910669363854553340155618846733560895504683217408382261676937637179589567661603363625741340149804697000371930752415994107107224497979692321272842587447032585328028708753818114453029595407159470687589667151638241890487994182493658492225106228605079232247228283376223923580014023695114623354628284650673419063731617767138453138435340210764464605885367492576914612116959843228815373457865113340050055041364071879535211852066253575229346188761728029250157718743119954538379408258842217118324163492233902286533336297531755033379733368435874579237582642234781781377635965588121964018780267402579568187745900026497459261947538687123978168980702939649121013630615476953371635618923208715198174067279536077637626910025374646748154180708797396301133308427311381371850618316179674625562249191743955592223496355194577057248458613803314776223970505098536210920922174483883339335958467034831607768085127391188474716355118245927523715570827011989345122001255907512398017180622423206706054576309036378744801596662555490911418197370644298215084323725840136881752937276441169221826194543554531582176584828236489902260205331032999673813405445530780853425367981879718659761216713268700838514302496592157279143914395446311497087559512782130481871222184670885772455664944004652355295991722901205280755702118410299155193369389436042692344783680032919487736282461750159096182740756423911638458948445016780848525157837849034773340859833262479629606748308843282872777832396363261453533935078659127605781093969125273984068986130489479340160773776104276404274295921010461982798037203954296526461856913202748150539054501092640810412699099435103122114288798929713623214149628966830559466071804838162718595689785292593929114855150348970708445011145063453080838269801139088459940213461218535695132345489092166584768753583437829312966504495387041498847718561293592928753473056535374563542453963870291130303341563352128373395961782739298452650273635182502223616420878547873303392518436528505073008444786726598671945280651228976477576866889599581013304933071546052583317782684848298571303553927391099590572410559079358598758722762381055590990716423655331205191905203379984301287651387179169668821230291093309561394984098437216532168217606397702836758700180821030889700410391037409068236395132884131406268366068714153897925396010858991307503582252439239649236698894643331361898355335065302089455554025784327451113972402538630932584758003660984441575316125088022008432090209979374925770081715736904581974494468597434474494673645884101756592979941739725302849347718987660913186841696490741077935812732535985112697998222993268716757258760980307344004374210997631794852628440638448813204359422295922609306278120495752229960345371836702911805578124627770277361090399337970783044129963265130305323832719591607000507079509573482046942170030040738463223318357728762239223663055008151161660968533918485366733999972444321736439383260549315746162576291310703683178606097083212075116421824643026334401430953214529290429312343404074934658523659815377325982146782617083642422004379483558533091822265049140573445176183470300207879559024586822392333311382391264489087044003143827856411824221859905003077014894030377181474289805484067321475049648728496401502398578827055320035317520284666071453439485246156131136056576674361375100323778501251095080482305271518995552707055804087295183396246845335970438410131929503606437994647727450823045554203936262994398498779814147165115933257547681941454074527293875761170990330791222526077980349876934051004663864854287063907555947347415875009838096293269843332714664654479985960833572308666732880318257602164126320685248037387339071077570296451005743610152036611965570412098841084566792863160154113491149402818789600372763932053235452763245274222832276275224551561629401438854291564681036749516698158754695052239565658576987966207444293920804136087171861648170454558315555409057699493112383351008735285228176957042049968199683818293865705534554574799977510918046092661882847944245475239526809953619860784297671124762007721523237441148921515860380572697329958266999799522281175669618236591491566562758196197568648701135083389788168758495193813138643662507186755622837373333364849723734074947978570525421016440142032433806057571936947758946548319029690674032067828928702089863109134917142673515499444404351208141775319648405879999780638089444423983919356942647929985992870781320383455289848385007786599119477317971595311945114855456452431072335211351496110391719883446604327338745829511419167074540402250979218199085150054786096114111800395449679192997408542375161707319615251355313038385524009992785811621077759107083713515636897639927475521575629469176204436772769383613132793348528361726740337300922235620667129117696942432194979554835141438034005483488466573737381175686934341318138521517303029236709234606108991829485503829833097303974177334797157407820209859925118751062236591905480156641861118754826373624006503429536767667801051559712252388674328244395198471294834385426875350389267784371439082021323002523348764319733797987800929913601518238434067710007953297083248687750102172393819510018833977091089851391770421070934723181163774034609341924270197839843378505393126170097768752919522615260521644617779451252088558994266556133332485212768269272999868232263446053734081070357509396100632713589731424507752729375711379225356973531684376750825098196224600449230614522980986834852417331392667914947556153176715912692377446251615444199133668618248837349747063889954234270817165332664616958882051040760585050601793489578091193666674860618394078810640926516478087282359633245139643804090883582411568117608779340500031527735673988211502132561585708876637704476773047521066507952072695151565314079407095119547972459084739504814449853616423216056715467815789264761115300361479002058551855598006836521277125634558902454372613055127188918927774992070211461736812562439699473901491558176934414218426795634549125809510369052271280634535942343889156832929190368323579259654003805272775292196861849441380707773191809957608660982120414083983192226248760752257196788293853268101195539378307632563554737370237124106099665547625755126207867047280187860964479682784119687579055481294643110994278617060742285556048554843276176805724146358959436714106689692724935453858535113107065039026835306074345766525276619161243366567490359186742330136310620664842687999638919902606319903543312577811794719653764737501176331623702733150844388159376485351138875913716179659898206257950993752252289066652799866352187410401115646401460752321403088993604770466257326760683110699596845483264555391553929926017067970279373379655604987931104346705919024782326033951467099648172967176145767901917278922733862325993748715269182177549617053776064602868220296122598563345010364703854448466646050254794972449403061002554303805987101697365831566541784573078001806226242513356269220334250722029495450645326302222488024528054156600420021401917454327794403920876470130947740429898632842946564732783286606169936152062805061773850343335738253629228751283975251761373964788473227064850164577303337668980907239886251335939969456843359099870044423920402251092233229052352787892491481469426492456474369954076430016375042511078124882765910330520237287600206846440368193690367349115093699030658618246767571191914150625005499082135112943581565859099998985968642723017498804534727696098233507533296238326541027998050880233776230561988976649490130801771462654466947432371890985824479096780224140602487386206316168021149988729189954584263710008358808814642813493686888958308676129535741325694046046253528948730125426341730846762065218987558738661216288370296919752668452116814350813159678324642635218167710281597655827142589552265737139494903011521852918709536367469669428848357945605812045765457392831318906801414520903376931108756247713936230906349982476679216508380881989206563781279850689050249924156262935158838868516252493820576834464012155471935646007332236914249624591237088444482206743811127508577484916502468537350126396307719557958891848283472497740126955196706479783188765320983463290620292503983578740821800894317200799249313581256183394906921987080284112037092363220467867485617415926111246265525384976341423624710783384809148531969561929838816891214507685673073064633374625385113153668788567675419470146481871844735593272484218761863298426675359464998358845102114723374778106054926573235047739206654225698866908146558675443509660430107736394361417200778731110923447827946699219240090775880908580260778065910570489212632650248314697060199737443017394822116817344017621558879491834049385777816153789316319345120066203820698795889476685184873623718574309993313435132550722420248708538683815845940505264490460559462597047130687445005667190955967209481246972987727516168952083144773068792130593593549166992887565708962462779465935951646889590174697762398450542761392639525311159769862102852385917042906376117175355774722522757537875020790762698792568657191946076942019505629987955268425141489019407524978808688438803858532642863170501231519199187622967113606504745042999788224592565506101160013759428628381794760097428065201344179112875755741200911756987373228866092902759616870344570858927340636084071093234173754106613169020270443669827116582028193734688037285370496653905500228054612316346142351794573042251231480069741895021733494171376869217811249603123395765707861659268931400154639109324931159751690241150114782070523611879251968882375407418965182300212169579388642822334312614027279751758599209109278569931237436693910737585729145649601116975305085771109371359984158203974320329872401881403912433284603272743434441523048544553987797770874347009403430944403115658202070461027378090719835762071626618101048451339681008231557766759313010219024445019902033693716258745926383177891431982949602552670378509074430737476665499459602537306547263592393401325614508638825948275528789138608214093572399577109560143598006709924452160163085747027848863041638989558758605202338965046450547939514245771324755964246524357822414645991676336792289787530401734053625688560092875048946305698290364211953954019429502795131055019213370784020891848550853351775489002276654924889011891482957712442489548668491541866975778867699557267754936167761791992094691259796087858418586749717282904683389758104936733568280208749170393457298716387246341152417939045002202379894158732916178023339837128153293783493916000267671357365718733536210281440763027119556076699975897536804117505896582545778326247028598807391100944384155310582808432739849410294655424430159447594004874719208886010308215760242395798300251559855119863959768708833861755027364860650577566387266825878470433028123936124630401021023271355019264199214120168546859528661973261219010076535609342170254932728322932064418314792145581112565239156968460450747680862350875264938953052905694031476214993910477855248128353386426335794453469890082551467564581992494342658786683885378112500081240408259657191389259172969324772242997066899826212293271906899511379574211658789173869509216712916050554470601907856077968343578443816483166203671382325922777811366735800741163083608683325118267778973217691762307487487575253913616462276780037977565276968447656421675820850285411028667026148446310027914453531593813571341980483053536539617133623685911171058164991375812029293740963562560814569853022364682441886230753649718217362626662991564829787065466262723863119499900342006389046964383174906381300305680482465562234224094427978155918787010876444493739766394656398248055093269260405964254173830452685449271828406718501591200274730627365063817925846391052255013502015489930921710818820962334905205317895571396377379361131761599888396497565609724404575072749053650412260335438373572762769009303538514396553455369396260266059161600659477037422252502633520375501842705777817909158787074208718858593345372081329591725491000111793623673870702627884536568925216767192024671818602529364730895879997346954772518329959388008884844550024450488331894877420272161074199572852786632598139165468029998999755632689161130915765581813007687849139356955299806427850445178278091321028802613652705245597246333722566931028672482197698682266766171417872352579884086412423100893821321286095447357268472214970034384640472014779683885597950839495447866913931386677254523290601767111907380121588251344754058329202719222271998710724367541499107354958160015100185857508904237203574387515136312471218859893661447752251504127620179243178869089457818780881521913438831049647264450035681593327034985751675281463672832436778913636005116066193043229274814913083844151256740444729623699167346415683841358305303328823141484350040990113585349354440906048474998466468485311165599160079849659966604790645898224604843764799678808159754740554193042512138205662150418071225490492834501052662928477279860914660604411491582014453329230924164358028625501345142388303688155639274081198928421667448837717048771766274734557315999914911494996277558625013919553994861175189709646511299295028652013578121488763792067952750333241439709084590801332003963556749510055774098730925454173484522735851117686358479006747642481437214383102863456401739628064528058809895031831969640875574888190553194826616288761516485769152393164303415770639354698108638888443954660852859721807230659770225389707651249315288005230123878768870201604369784966227477466744575731208234653780555926455115196676312174083537628221995983094420781204032219669206239625754778298364585560700847537636070188301137663167515027565375513921536388483260385443292376104989778131618450731689547536371291204842382034579336452033072292912165812510674730392847466649925069886767280306698244489701699569366726021251193635706533684783244370969926032327109083682433908372593973107026199440046141841821849900080953521398190473097981945076429382936468359893729657970190681072697261150449764342593657364643703737639487345927493014829102980615001819808480958353659148300993410323678155280665023818615832785218639259390172447527177912191159123467927659710162644821746458128289679977886448832896173385871006296160910945660927543896350871863749684286147021580059049297876591898072605800304755341867803103666049031232073863463128752356026848013331982272546212165688633375881853735425842860781310772168870945956723870038435986302972434384795170847365751228189402025020851579955322381514245596146414286894099163245752280679572891445654563319370090109176868412987797556915568023576109888820586115993189242120469622121169794757847384214503345487439332002843179452593238474789700551636386468333535017936317986765375538213183886970208239139662267076992508977927516721378061079827958075944474435542970142746805125674164955901204504181730570108663760151403412283564520828555400301637934802229252253679918686436902410076251420280236586739414837006879660757106270728028053991380807102491300995462050768750641725883757512807825232267519766174247638823474271307818959793889724042494386877833679836540385493146375799578109760031652204898264406819265068264382921074721650734310332436902207276196303446452796477189558767935104624118860917797802024298583056196658068876815809971949817082547866479668500184300970982676236034343805861857612346300917938226865686767190558067490142097555105971250118929143390330681727574199521232379193168830730983892159880616096221670830719362188570171482038715173720403332232570168390921582496694640185445316866576389320146749918945221644628165562733451824822370221154865192527575214924845872172279279394449391381130063562559602221340661398253096867406188988810013787072351627143159907963057772818445033073185286784377577833335060178050542789898770658728936538651311453140659637703563004209009832330407918958521729127007037258114603376156198840006706094640936010231394141850229604261560111293072375554510899329663763071246903305105258910657866547211458693351422541307958929969570975401028766715407928951479308068280189931914259975258672952192434817693509038605019879830459407555661604556535901742017602199879932516220912000695372690944651500208071013673310953736412253569072215186226953414058511758452055982558031464788918674640542066706414815256117743035587010231820195527346838967925133511913289346192573973705657930302101985502725558123552316204663801860663677154993097951495445657479135372206758854339862277824538190089810192939446885380241192610329580582211161763330778377341738381572435194144449691449669734095024868514192277510447668396831866063002364850091838008428561288832493194204160110124937933710435684625152528653244928791256360656478682546591948379945999811780528212499296905649597562650980503344351115183199663938455587710028301862611452511736205665060208391808762162411173465102689067223671887364624872427446397290710198370822794212081204354453244557709429768338697993553649980738748910961478770452811863691061868902345144040957907520001549763037230496508936059323027107585307835711515901095085526940913879456664344292819101446404775035953638502169964725338067015165859145505205504989417183470055465774975408765690630423644220603144048757226914569778843878814598215072719570399205947803205151734565971077262073855754441220474275574821068663872376311002430143357099767949506236506079194593070269576986876143815318986380758720910126129448669018176970522556760071627161874404988567206531267194448264506576334277494369166463422377631065706413836479318650335852279724366111879575317000419531928080919140253531014704046839710840283788818165032690482090079831465061192494632282839498522951811523416021140234743403778070723075481621739740519096484446673398962211872156991349099362967337147960984936040616365162156232872032709637810582979507962146069419640148667343965053812884505624330085096572479325739036478046077388173943854904408658052241073304573831736179448241748454928414207986316845617803515774150704243327174586246005288344937832969330167181143644649836399657582718153111651336077595281043132664674985614396163989375067898388001471430430943931163477331124580638146148374993885105088904086290459220929170157789668527917367723857202400379401383811944491966628082031632595141852548827988811099692733846201475982860790494561597797997874305593117331114251071041750644102964964445687159274258197870363650647457795908871301036831245837947587008800907986326164986226413318340728217492357541019070510982488314631786252027368706608449376702640879662306519196924711894994513693554242875130239624614216588987639829090781312035326725865043280329013181349494150910014641361337241739302382332450249100341859528098551311663235563918498435016642772837171127788706693497810303259550255588072517285996697474291768214175276317578624048547105397167056764260621094903637530971853198474193394392518282918536083081317971134048533867417980583314077988287445018181551194438069605654769927952831752832028336431361126788023590042799417238913612644945496586726804136685806263704186853173785181220047214959310801200549002352471990473347791888162275214519660865240728597225636483576766428752103099720709159332367280881193259582175938303908320087474224679330387772995571484952703049496221605584015515060146531157595800379232792237291474469661587330763063965942638670599480466197302264280700118818510842495379271478177743382009498199493549292014629784899425594007721536931634028631750019748027215300278246824928174042334909069538497563136576484345985554799467402702992380616735851136224820842490140007428191004595507790812788744727925272006644848043952621274711321762850922637024360546479618873668972189429804349207782276709481425007308602757625361507102279461591242744146243141083571150550830493830859776800727407492247880699912296226295598489491898976152071929731762747758461890816312055515724727617413147355973810887061541439414924360345667449010370613116454604351191481029334991451786122965757286916674052946002429359465679787426648568553476769023780099463615870735583853502333541575253924361335217141772546551943695639694535917540186643165781424266703247624332808424357438677755799841250896161245911388177374142852791625486039717782526298475011317028730576712181699200572420904567994040798745716766170737316355672931408508381345826220561089110989289516797499934624463410328151722282950508774874137105733843895492501720912006917799325874438186311847720692316644906596619429564507281528703487223081177403416590882800398130283657968447936416923098723341791310117348664918181399007577977660409151876229769807529633923290734827717507302831847237818991897902050347606386978016755668188821678127147287761056929007998149842927852635601980980074161248644150026614043643622394795682330145063047529485128926208049179644043350859244785947055360019850587874388583999686707207194188701370079416678785428821716588320141023780698727972160509943329776975946491649138994369787447729088780016715671500572268111464844877583226100423649195107481921081915822755463781508414996813644932489667410367353583143137477398414563200798128963379756459657170394824704814308758516975094427204583741584473378748200140223123917819855198364885751838154116935455037248016500116985950931486963979996305283270812446191627599195104667667825125144863254771912517022979608915455685413067464264036208527578336051683862738229536793871973587226744443005807703106686521275473971443336253242620945160808742721092201726291951297784208260346225914531850426690336535663775079663241541498307727205830361359004901249797186440944932790738299791548129910740466624857661430701075586598894320399822641375411560022295795251046569071196230832844423346589445298827858732141457561567745948711159736400053305695981830840335858859007453296333986916787568047904601394578690772804472694939224333484075500948885876344055832771261254398919307471849533667733764813167342751510178153553231503624747382788202942129073162657860888416374224779291125967536849804686822548996845208207508715632407476557639610024307213427533665797789918970580474157475757667932845127740392036648537519623520480721479631070383626593300763828085330048676263521938087656107890227887355929395544946422864811545031126629546594488130410975480215677300354887459289450031086791144487404601757777647574894636461939410446287447619639756010465696502107567410616809524544223266416106034521064057601078383527353072170904031524525277503422632265512404026358571519227386328089810893337798135086318603697119808023891662874580280926559242092184818703958019138845484231518907057085303633148720518523251786504227615995087216826180176305113740315091450129237517275192476541040498580797927840771680842916943688368208415578133318318159900735091207745797087965458725874447912595820597903420241412344864469067089838922228885077155058469897499659587223134518868853015068172549495749290146398548243706192934722240782402526882512277556811148772967693354045528135639542464888418012714429499156732315031897921471179172573517173906811515146007535906134097054584583396575646675285233176274933706204997540568351710993570745222319077001801559300623487666545076453755442789692565639789590620941441037169379790100463636319838710181896297030816902527557141259649392584841538211335371131784218440783311313286457030320718021149060840535847494958694525770884128106739339425385192408585182596959586972386668621541632694739724083391820204765625191271164053798551536913520033516691209200412939445064315139326730358435122922279776469800480979532743245353769424662394111844219515399871552337554564671215350424805161572008380862108658947119862354466889518259192912573835741593202698604405195298419656826251300054311512199825881028165192092186876899449582463169908908708037474051211888364349415770866384934965398957699238314745088778063457549572745948052534271693325585308013163965915920433336775884275214989646840795520610776659161248446253350152236068261889477629708384266875088535412377848506547353695422262554182053652648824064533587528984332452645450689954157481044906620360623385745058754554211930648640589134023566384561704571361166611624292698426387239286586375803725269228003303470523225201457636384883257724523231372667985972360639762490323252585341415748102357523019338825875811505261154243286209178695415815349056368349395510355521780123196438859772317032024391190443165258927072245604215398390671624136795306147763548995312095078888593438235554320429041652426764065974709972699689919723890966395424613668132702249979734693180612197629079002177668977337497181462741923988847147786521281588446544096593356676086634466040271128552371818469667708798484679229558376332987776013091503197797852566017535320693524165392204263067904710341247603853297124638149178159269814203315346165534341166924633537661063164238029532641244151395840917769570035770364044609978740487203186535570025960823764776992158877827156834578302542512804257508484056512380140137860447389737131353827270593721637155562240131933613174995431854495773610687875981745399298939909653240451541085177457907661994392963746279558751527303676830403002907258648193129884690329007128683054950035783063351302997735248492080479579048821364795883809038408011893917855152280881761336277754720215765601879817576317388268286172502874046123140207755377354411691644180241690883412741487371339408867725352158463346658989433279494800859162239506361807942236403792335487608849114072296478487139983893043779116033317069984684763528036563184104646459122834481930364362586482838087157849863612753146010244988696947611375386431924228887095391359052614181705392043367897681933729537932356038073813172691707085702768308426688412565482906218986411742200061134194068169290479851338132856570779807993293271224684170908092392994458784427856303287080949737713388613310068721205306740970542865136626584819317681167538425538592105198271979094223177624007840588089097374900828927976815640503811406087644741456079387053050637471136744943741210933668639928939234436678980132747171404093303588999241225072148983069654627862952536189632786745030938157701039843189483373990212625374940195037864241270709416413713617076819029690069511122863663956548868404008670820173250890693283086940513860584231184939580709061010107235098096735711241750914567391440066184815667105929967888920243838166982943874076541319822689312999272450859581637304207609713965791350199164672180611559564211475408939802810571568542582844264553939269508040405113182506050894502847406788859062926019589304600374734137922689700523499673192339961400761682372610307742334869892256690079127789825997982544301677892680563362896916688540618597044704628466508454434389584425492932410811098664650799484069988210592537023300382227780759420004148575893774127371507713131163866339787550392637566845934045546864669817562607719937372353519578247949297448050846881565314485667165625556115336804275721302399783970092812717531318874754364431637633510486387171971010098264563138334060168432000818666991000313692031796988847305114631673763614885281506822493645905013774717797862736992423398108440556169765311975838564416247676521910512648543578584046997200894789147744886761140515682917198954995614965863230291503706805570746030314924380228222578697323975938613497689947528803358346433286172454008738860957992383897129385593994527141015997637244912162011112494986537199352318980322103735090083941302505834848348028323080437214892457550278208946078696683174627731367088369140744234278966961667762373802835877339984390749514999612053250064035696310152326758332600229199930486512543402060384496687217196627637976263350358274154436305937154372860587846388000615434519029356591875419202369176124753282850887515699813590110650127212804480524125215455186672622845864499410909856358955460333927187821730763946743940564628616288560235186167253808877747648517090862118062971230122946582453280666057334625132048955232491965918888567252542850996956963144315633278287730064828953470019876961507446650257526613874357975716197812755998083719170113183724275746812475578824360102062997247195510944941224757273725493367349518199837547047040502771421731734990457696621145905710842008191129901711641235944976309011737279744151629319242933867220055043895675684065963234981416104675009648281962221942717248577847343580483172337306050761568999984689259604738471119971192369704860736117596030688736063331876827900298395860714598565672349857483171389166143394359351612923182241143698679286121859078013198217191578323390530337001642318516811785112971625598396480644412644923982667139548310076824853577434362112876351512024357885170879628080351653432497020024340341691941154439608949701683948084265372115455906642195519960383347000141896148376893946098660728543714949905290148805563000868382531743578051963895569543233289521727244714271832116481096277106743584531848530919484765439922511878590825562237049132994508825229701550617400420558411225376551890655432358960586331870874678866340841726572080622950122641352260370749707343578766889708524563962432861991478862220493684879188319853659798876435312280263151524817063454081424340881057500807599838240520759519829407981447792728677789101889313165091696422610596277677526825201106545440571365022339795659955464252747449773833152340628624351847924427457664480026168050030636161763759978908223646675107537084181891844359583626718948685230151172890846140217136925020881174731179332626177324207329708892474896458589889681621882711383566211603156432922173205776486138543073294864879515710694124142537312360856677148146666254636161120914506496925343817608022668483319468930272038253148761767018121902704368607519587184055051125668012698478315625736788939627547946872284548819638424233724503197710056167581593267687556230900071849367694497622511082491462958483060446115454796453865848564576818167799984054041669073457107873768890597499609802346103676987721138685390056072668807290889243448649906594576325835516190799477923453073712628753287794910035364125852212291294286087204690969889598008247691996867841626908065219459150383209552568720201989738508985649245386662645739211740239009959786545349897299027443240034817143194874816500915558797421851997790506363452710701941668632240107415912038650439439399683701201003802056228795851757457941996077567399398906947504257318726251399038997630683500272239907332088657967608518047831533630811003027314797619482819306544656083172305907796346842220328110734005873514501382319787080632514607093255642555941184898901605089231960192952197762115813092838810494701460004099791610019952622141019650504471963513247776582078295154616473481353965763211363478836952449934316916634395797184597714931012461430334279453220365773384681478142435123334848276934258453803238434849026965909688537765953149577731467036508399203586301805041721499250013560626797843469601461659627906391003318900924801328923027714707383523183553721431646020589745384877728054052519370055364949194700709276244174137173717576149257342414432020506168485314756097480771661112543993798963792672276001017094366506902927057927822727623354532588931454064370050329466330098939622898747738382549011008060982074960837848653471747276325955609984622681615480755025893113940552645407896064007002313545368272224688209748939363240163433971117947101708470117491364323583901471163196563687955559890706827283129005430946690044225756154786883007015083107989164892003357949416363215132094684899572649678408367730270551838382517999187935189376366850217844566871345719938594040582121581529006703549246560175341053741586842409948740807459683453606949147984955784191581519669389162614636317070099759053847010934246634703507617993996499752818160838052255761604861379587892949329016108418539285157111871437119209170996412874220423740660821743434194847382422414363563192376732900822440253565691546157987450456546815977431730534506779058609333433442665345213515310588405126558842690253424276353574749752902294837366913121058483778929371604256106621842676998055288887394650958634826880671744409078363148081159482359989112252728298407194308638986239536485108595460134310887145081359632389166944270113215643149919532584939211816544374881211902358355205002386180703271777564162610844437719820287894102790470224659727505502231907666812404512001345657639116414384683118903309062735823632212637323270520306198397404166263465714586070247132878734778430869240004442039747377979522302592463159751236324509431478707991203527786927046297668422584252888315760640430109294989345226016981540437861112506922054601186046575729502293411715862254744213442129728023517422997544848647776168647747993766850680313038392314230012691329758217352224654024989529774519227868510136785768737383130664852049295263177629158382997045123084561105873541610511281547190556845393939899559089470742168889622371149507601521680558552597662787241059464701630874359245034597936555129916160300130918885058712133094840042761039365843204115666687076232672151829997104405948844901182379877635524502613468983317620638408401903795101938741246706362405732666031303098850974931735068856462596801815867376839111878502869007011810929751896319766200202925759009896255199965759790825846760951532354982630043262932547012850179794036244063911066783522441340498309030033039690058343456192733017390417618279105398186634215265295549931046861710392108531042751777363582553398235003795427296967907230095992643993280314008025879985774010743377008463527121030587069239910008409137397338255797392949651622373626768839807130660985234764686574997354346080429328947081854522732987208064036590254624930758729334977297589230976851463209441914772370154241652110621982081985495556853380225533072420012538233814934888533446595606284045101242113287784844628123098946035445226187844456728029080164640176937570170799381221792615757678568340238692487430507323010641890731788379392347170092135979795056387609799617926223615886639931902983432679745620340273729765519071336294181846560834135596483161998342995736442735675215099222113843634503899120008506299037982463435432336590884521168118640018180367778936237149490520963040273180680425865111132204141613735836098445772911014139151762953337272296350152875546363342733005121557645350488997497268030391007806370707317440836440592949046850935056578902696458933918784166022113756301150080699336432924358780002497638274000950639060046688270386775160018483722706768351879730221588895398442854576598522241132192902053707510449552998603248571290694785219901335976180251979225155849925844199681421179993418647737785656750545275351291968193013383825778762270486351739386423563809352943526319038732312927601847385239392855480865270586668356193332869108764074720350831229130155157665190299246461724528249055676341266340075144655768177547262511562492003032326388350138476765445778970826548546327561131610159648898099964395582945976719696977185151953410634304034686378924839209206513911487988455255116525732757720103568210187368551554474923325344871774080443791249945993831061037251280560782556492644848769339831583544974758641030131786887409943687281419394190284996863132703078184570800765755341640924844995075648246376453580856245721771296381892600100557931669921997980897277153110119600195480555616762788240973060137704926636475785553904459986615152593468523322407530260221570636031668884566437570547717028760122544995146250027954504230066763637381754902996343511280750123295214424901032781684745025467257825167419979574929092805788941997719778553838402218384179399812230569604270811286508484158999937188231523398484846051541406500423642458046165905255041174543434271793587913335575951679895300981308784724236793891724537049395461649569210088509405312697469711066374290881567834885838769672857345951796133636432722491331839811055685026560351083693106520759119876649174225786648482858965123762685142995473772470394133994232807751940580800607855520317390906847775838431527866642966809054014569643861882792939061122101058674645817697322636076398196089375972258330321258507899347464537239922713711712268481908649300190014936533939010934003258559476844871476277875923427772437061637016445440361541965769915419681481794700218396845494001219147083621340702469782262349724018256851650251414099599105812753979017916302056706232973454433841059357242752833580895676298822266164943299143152154152134491166955267861362043366288978081762360558435366878859347656067262859207745590427160543663354700054465269226447152478444634867187626121292755179881044828017919738547266703449585365909467071123503210018859723816457449201724248950471444042186344271266691287378712440714457199168815143210175159212787549190670409106961527237996797806719539686186789542930635251494634850646415694841963871478125928896768526183038112648083624442581014289754531618423899931758144682521495753915207900939766909479434792102378703019604916142603551750193396573239962058222332032075905066220831623888205414443203250194388493400129591803495469302204779003803013671505455248378603402885850523104403674546216491725022131778931824910162570490610648482050716015074271398367952348572324550822924719052870278320241620458638746234880271820722563760252139848993055857372849945066009225319581098353180691101003934679115941931145490589045032503457323025610906375552632018202432929656884351605349994131806127830573040580596227576928314298567635966158882876217025635723064312730541936173252569433356214919746400203244210140479103160732746980249269283116102334998260405530805231520861220702608830303605265955192491810213389264119161744091273497534714337271919110878452820709211259013183447478677230409745920817871395963284662482043789298395750978397769019440796405805692403150344489034544692225343239512318512335019122764452941000967515852193965493619575790617380688237293629237453722772086823598828400332423210374611183339765860898740661440793729983231467477811323583670971387678352186263816818034251930660487961996459066787025802922834326185553625330319857412049274843274306694634862480726201164283892596998714138001399386364825597602626549437412385261827392454106985381980222973280933905451000659966879644549801944389675976546727667987982128589949275708790538715157359900094469051581532962434130835381043974010539432984068224767670270726163334637954744073445578122252734252369346331646683468206708653615211005781784940771038455012008958481591404084705683845792189507829525436044659229019715575994883645633234654965259484075234977348981872748113271970062951107733281107909654027202429861371576511328858041100173275053392845046854479711454975872411087090391848969833267283120629711545376005819027263964536247110626264787352717843304266822334956261515558597050110205016307496328927434848437062264746811079348007578711938892811406212913036450249328523366849572139242037737069563036231347223070756838579454399009709659641274315391226613250298037323721497021272538705965063332668438985408953384218494787375984878293748404760158290904141402965931790539353113287870227620282495070339938772753616321948121931451417523741254610716971197711009866272529886429323907435551579539751975558915904459282743739643015138355809311111012045890988085528329933233662540682225675731565618697186726804292723372663361400080487393093479106891502356537150409000796712931026006479017589030130993190794929347848191615878971835980301956297906320452288217848357534029778747803413552278801456267867321733308875064631701299735342988426478947982742392182542987951158975386243896553711087491145168520872210518885676003783128338618589568373550112532420684274081175677421367734106491574002415456131849442709475996162431443131698382282284763483951399690467770126753322427753544031779473303033176968169241255337742044916048287167221739463907035438306972786726655626617522102023457614211937299608737138696569862779594891075621078820381782901440407997366411038422541784821621344257103486503208483174201505364452952026634174360539803675630302866127371976228237151871937857622566590310791907385756793022807657944726933880429297796787826343367400682642765373266414214763535757512780443955779100306849063738410808065518743829866691886511394293630076339248085464338621426560755595579505056877018194035194243899257008781098157477135806955596193860309966078663625162182755910321337187064295952696186114164303204554417377817726909254563487660040092828360586627328670587757891456386437449604377707488703687260182681282862687788785369944700703613205756942077139384884587084364715192435552855766371670520250429509345600451392629378879315392597268558537704907214841372996427855688162665646224090142304667713126120639849280357029612108128630203250541507711682659923797353209207471207231661452966523567683955835076473573738459689362164649398981664245244328241980693059052149230406971918450185071701230908286138331336259440016051443217806890595429119537358734182841629052151940277151970085861022968894166127775220622570853566844325894094309413945167965024999669129191629067620841944071377614981802228153387690118756972900170721563594828933832176126933263028118692966214015038196062847848534800892763186819818419454794633136537033351194670979597586328237267473040295175836368793072297209057029174103295934814022932417287726076759976045708717258766614789825609095723131840100124408521581475642302473800807425301680472492677647532673301739193514505426521232021710858387911751825506360188480794849959041145096683160273792249614672583638639949654039500475507688230233282898903535099995387950637513821314495644512715660067267541205126264603164035660768993483254317875746501603302021616685125102470016542424758978170249394714147325972958810597470887953443144674711190187646620818561219448317141123589499516145871918997428858511488251848649658358467150410602668159045259810093731647353828716688268000599323214727740436461689711478712333649732383683637503363742570247950332001950470312373605826582691874426933251995820309186086977577740077367194455612748505886029646037703239016337769526474167145923440271780266246962763962961328861012917956442201504851448062257024181233302203172729165339721242709325646690742290216349483686508160213637093798949281435146525202594728978607656983656357972179787734032650870921247230324193789269531527847778087804101784045117624756641942685116826087403343437106579375799083947914632862194003796152218210090005021715045955579928991225096756917384690436169237482801549413032008787829521905654122093670739308828405497736847179560468775851148923826195669572596439675941278484637894317277585110699092397741826931076579233070454014995534802744145508007760438987183427292425881168004942771681216190529128257926167176016745878741497778834278895476046563763138711217835973200460802753096149448375470570492237712951731251252210408885139424444610417070684326324096373412166082133661914037083987493476436286057605633886444590297271771722438052979920542756184653916467641638761900157808621152080067775315480391234218063488250389102882447945475763022998154896860880863769435047203915654849795806904530696074815703154747566125450700131776894780606924139065679349891668951775703429944468909340623181095086315527448150445229212000683635493467155916369163275072224197741116773628004671118852171762002479670744717343466215957624386990772461169290672878630776829679533237345670985839833885025213204388335370417188187943780392194407956506711376291383319688339635456883703013676434757948318565583549595152825428106743886054450060177266636859609378561763046229438667182459991685979746350705299262935887491745209664029222827882219597361110979350984380954237267737162423831388777668848833504215327603066699457871185358308762092384338564468512326772632752869013319465573711169197428672632709925998536159484869033871095162140114849763108836822146027757397250937704941050609353216246472844840532590090875068895699487041398851108004581570491466302990949620284234871082506052006887238031539487496282369120512008819803189683887892824965711548717672772311197765905502857115437785894898884088468273915757027669453488455288267718883950428462103224624416646900556911039150880780616080783120463671593276788767785056968479290348712527813304504067995952859373435917780421131644954894490799859802673234496423924988817530411531127307586556091027845930552184856294898376287205908958186592973742335363798146432640529191802612076456589219580958062960805570654769589471813881064237631226885156026487457275343012334660748884180069704239836962475567323502781932319552602648049032844443777802014954690893870800981079949157153445693311587632713739787745312329033018914535589006798735608599603366913711640788949686696341057160896832124217119119518575637089242326847424613669978860260935523527781585042628303005135763601931273248639337026835840785323229797544905053435922574659640441263184189397480720779767504431325918902587428514713861270514931931647546878203485217473217393539035254539166804911497626281184927920777866158384670481064470934703066514255393033473433872456618724262595744060775977753201583690356877137904286244763955295292361779515771919278420674176039873788066985743320539166230004565451545661524456586847830465160163462500729077891958759031008657470784104320935122156322065613678762020040561337038009451696704852982630177808213507520503032115806577557560686129234044300897916571077178693162403635376560419584600448880579379866718099549954730322252751709772857528652264501301897447616820367250952761064108998838724272402286395374800592331592825136468892811975095345356068245927876700219846406620387908479836412588174346542047031271400913176611406021949610786115206244012484867962004025402020648519009329609606947997569100001741288828765091206593922505583280313513075842448076314663749324658150877654858935615557062875792314118553863261104091699428211115469111592955616656652761254012517494905799231842141413366094577793621808143931292913343369647803712783552202752343940728347140719157122630109029108183626835142592589166692611731849724196763446558566192826544184002847683281251298616035017052131971905554333391399342405210023502747261999405494934715224436948517313624321426484981011664850819622416660133233045540431041072286502766970597562389963858747420521310853797167258336920102734185344590942655623002001240691120776954188532993992459357466307583701746041125088989377439446729419443419005357533235747994868337698732164694248484171605784439302686984599293477112969476357052173606019655437399405523108593692168299774101480574582986508951073120394689258723885425035239646751976982866949637296581776959366145119315906348024043377539800511818746942126219175700544594534469182886545233936157031572107833653175801745597751173360595189883782915719096304649002456215003790513277279305463813655996821931638927603214643036858715452372952975658635512584364629481036529468312093934206700075575927257441794343475490363295149365618323419720620020381862399941879525327443742075278757469763670408883511378923631540352206231625886516884680378262230858525480100013597116708846464611217780595155445760384453131890413496312553843823962788644724759316741323491492413840241887911312089494156937704005760879559600030118740318895080762727087744981644361205821305595541018343761466413934751748270168396240456569556986640076312208819325552891673259338828053197958102226959016271370540131588566174961940722831620485815947542407884764811737380963409336557025774025439624656159021403552767793667893727755441951553118201021749202321931561058124681133613024403233007484248447394803047754395351072019579163739172549428363925840669143413298033269434056884892397550601708706362717962948242563356364423136350068066433335499076966142703437502086524287081303323317956075918863322158553423877929867351900053303314998494327768497645250889453312324416759785004204687846867613728488918705936690099532546757560245323696172733319970874239458430933439519814325782317740288118042381212541213305456917512158963597974136686818949750963778376405409380673507453195076516192731502724537589112733868033052449684067108792384108882824987090926959371100975060377953636127799534598504314264037048556906974616343324908192310878430432430051261094536261844387893092357386919971018857655360026084621397913829285934018772702822975288538623398780175062002167594853215491000008078360809233456284643294196439395924463194379738938506418329751306457341014086263778998621456418007727217063668392823406239526514239267699826706886455831469901375013100628368706340865126062597339602180551859694225846931633766319010027811230767293705548997652582013882438981638161460663237479095277778075155586173925277305880910140735447694987461459562276389882522102676820974034053789026172885927295947116288146678868279412474578524708181154261519517830844011014009750533765319488201639492927907145715954928201294924472529692203466889678678813916343502541095110044461896637816995077889810111196445111608767984121789503946864592232346941418700519623534350214819155961834327672163829040454474555765750473043580968506291977427961514521775215163642584458342490550023678737860075776484549304890549582694645453870863066418886003892928319291113863939492891641972819636530970700442968078110054507795272729601663818404164345050633917149536687937872122003526130876101933811369209576000553100376231719587719761821446205655201897047846078681769854517434000292014669192125764072686398934250926404345563651247472076418601135394500636233849688894210886630577572854577531197387850563996123623371069079485258258860243486252161279186960176991236496703131278796225411357839126064651400433822819522712721971686165050407266338911403474860421472530776253368308354126880887174144913984843503404571518762760016648830288526955455195042513649172195894157170912283914033640672603780043875494637342154889203118123340739760267511288537629347606985947833023225826954493470157728409377222286137272226571264911616306355927354077395354190812446508718726130321940913885038054763839319655563186231047719372312798187498550248828127877047819608689298913537081820837736421167681196863938691100940844458538982339211739962180899461281349759301315195982687102617818239416851451771078690566059732233415845642861373410475212711035348295613076862326715505834604327025792131082919518008714121482383382973060319257645670202566502054857378879215166218288271298403223217181879950414559727068198435660969714391510967511037541441102886175516625335019355648462713415176320592062306052172616572229359289523019636779816185498866218822417092279203194325402049898308204946430055405253626717348410190522834822204471203559177464105955526250280927835050757868132690020909406665859002559138535272350263658990539536743995726252548765110259164699956709661974907476732396436815959975336199346409822150537217414809069071915121666698359684937331391315364668992454811565721052825326114884996205714181076298225540144139026007049558471147671049378967205268827999120555695745702643343355895650415157517076779884115938048480708775566772199129536482901859533736688095028255891647489556265576007363649046458627404272997614267798362870286363095817690476415434438947992098334185243071475431173583326406674576730769227921585178243313337544962250391405985369885169835031793221568365774869433230514356857731636227705211157300489145691803164943553845993042175776653717051384781605374053274447710762945654818746957396498844447963928936759945624864450439198619672254912892407288868362473862106472408480642605646856074484982250340819383547316175740180695825623424138543304428894139329252053281157054402700331363650848023138510395609228891684774719073793560873172114460687308196110763230813496236409230612628426995532186088847233269522207733631086115591692577749569749214564658872016297237790419585159237492702996513379243363576090280888505022473824008083118674674721216950414433482356266127171916060798949620222317286918523578345355040282912132235877904847881820468660320910694985958589062373226116979181034329532969519539386000754209213231394611908765819880847024447554895756157346812514218629821374380605180995612458247579585849274813341136871402712732088221715809664533255442625065783096565965764453167082487263151441143303136241529197725598309178362363475263459125217150682769036958781228009195487006049926822153809571073567214248324238715497078613012551121221122468761675502071387381626747029776554081210422637767843318513926408103217241218204138906972239563786190996667762860831182019237530717019544884919823142005632859888676993721398072564370809607927333366813586789063008913949535637284184694320862885406336390548252450843311524762849521143025524867582182586366476186090810446128298094157387145638952500206110970157790209535862533309398788397375595841942189505554034310151311831249023994250765016437914318220958098528013021491484717240477726984994103793619967987301573748321866941399493079245028407511844541911819725656261627339618277303413507686614629706884517123886059613106899641427359283922793829247810601355853734572712350517542400395542253864813808788319852716190147270804308504018362472870517130036639035718345347537381225657870068698453311366352333016092828786908446307656153471960704968058763109875049646871385528366555898710222806251515142129876952425562675940749398075498010995588955076127659382027876056808049350313921960044318114811941267889681651080599434714560807388731401728254032991839618919533383698937548786803664799629637492557164994642798703963190208106302467348755154122350422219282532020076163618758527212049377849395409871940500132175789218526305899558922090888565835931779471438928402003573085596507124481464037659506855490462723304756530811055883229093026931554163503416663466557024829383825405413246414691695039594339178302770375486011028774510059465416553447581444123196459705657805150302543392623618683813105683216991766202046186227058718226737608540579778147477874652951415634996636156242860095314348289041640300105064322172368642898617878022779060310244189838703347392157947906034019535001733544717274119571804908367548133499701942104900162180741453478297112839965642446403558793371640084944783718315807402271822312476811402148695582995266639126592552110061495754119289734022165461800110008888918569603321486727069471662900995180414563074855203078200136598164427000782884576462936840383946105776887502793415588311873557535113079032889796979462037301645274976311263745217177818445112825363405733433447596095029087439283764061942955232506581077486694138478461943878786363358060638137849006633005074082187181773377765203843731722288766028852856454851421360674337099297157497473878614870630123320960069044829504166469924506076010171087088066367216535655270471851972000128269418734035975063490481904289577245477898254934073974195920899946477337529346492724812861376389341014430426391878320803856336422383895937868149860960528892304167232712243598849485494020935053608529214894060258717135385491110002939717489235821126996079025100485238690798312375419432376959819605908210326259784266875504975161648280522315799680050503790355001268663389764557222735400417780668908008544553664393857711711527706413489252952384904759589932288030820433463741375984714608403396547162528948134422394796756336291586529545512698255829837220865187779144364971089388025513690639445625965011292354651026963927922313640784851804774510697334927128776750313376297431119714059467153510556546753228462367376171991694505906599667425491472430557939198503486519542867092751420305934742848760209217250795100101865022112434421719536504032849015167790210878896376389913931065529753488692751946635381549089157698821584290406394381496198031253911018798997117148632547078787082509949144569422472726618701489409976505902971072985031064684280934838313394977773824030508768001725522283511549037462916880134551101587139568217351186860423055201146194588602384673768991237480025455877057757467920777479764554233181849475505430236295043119404412569868364667256674010097714142130477580799999848261295615946948267887112316524344912868809161964707966327343090360484068193251274248669826121891949329405282764969432245936585324610961990327536340620912940570708813284112309126928294566499992421899832699740415182667394620170788566123478155844988372564272476305125047640504716235792783672203047433935985395006363265220867903705355971933995263192270530508543419355251381594527181849097595239345995845804564020124949321708430313070071483809233848809810443891627434294533489033048092419033908257018680932001736223075216140749607263614601181347444582624425255077003379286052734956610641892851718152821929021138493564367081170556620034908966195887634439607120308299572021554482725397989492218541228207903871689311680809461475068830176170766324651295976921240296004913234342247235665734719531298433219911294400199546175363676726355905160454231094164876200625636940119380036793870948514900783314334067273552389756994471582855970440475542564818219927452904315546909203096888225436846814555593377657496758575348314441159631366049336592888507963249503998222270380987850305532237684960866263566427356604907331569532795021718172793376705469332209738134985620129133062083979985746743446242941719189042623566189726311733189133540594037630653203785018505031946550969594428712967070088771023854105917012000216459246671486909453936750889584697101766586037798414800120955737024603587983249344666668769503365585655978150213568950651844284629749979452633183207363363426670232882810470461512463178950361106959374506036929360584426083496943850166772322773242047873606053485163586909222438947424103981746616308750984497167524333405580642009447650497926253924332629254898012128849037641857712124549254091121626788936663544789439531509326280393694767377882828089053785707947207421045729100378440553374082277713115061566118521984020355781994772141546894404677136952464057311988668970875231918982556608260380738825049214966723118470985536531143202311694383524709243198094044483429733332002727283001159194251160436466174351862505739589968037640698810443588973838736575850402665787210005403494873646599621268157590548856116606728791773084727873823136934019795250549180118766170451906237815652573898536480784754013300305338872579929800149722546673123372485586749241823717470945969275187322236635722669933582244009285753757852179116148847542071656405767596621289402275311524320845718023156259074650320486671368497735270604620400307116237362127599470849242781990336318025084303619052731485210613499771008419142505521337319615273635353561763538140565269946210310651763112970333302385744296172384335637292546497457519654514064035282936264065370118936059173610957114016737670818751916497313576147079941126659117329475881914557265631149052078196817998640314507399718786482967913506438482817953013006785459955652917237505083654500884899034570774679377981192928622214577701252499697776119730992547287202884515994713241451540257129468152411430589317316781456941651598556769167044856393072760862058041832705267053712064739187517638284717164097708396034047385802274802940581493208201904107184483589202121744534373764384909895557839435634562310519571467995194912045251633044609354097583624571016264793634680568385614743316444795712471806366198179313007995794003935869069107451958642498374954322557717419227995065398010536303948746342821354550275896630599526965585922074790997749806930656700348039548898167628823796563249600020644884328620413348142086327410037888482555942218112187033887046860280086152180788329638043465520782098280996915986615228883287056764568417699234976568161159635279255563121820478182121655115019036360618651232803480315154400638509404238065038450226108669465756382217937637456724733239401538437375158885474236050907775871384557868816022637217248144794180186533073716156124294189565849006110918236959630621859854069530418402326602089940218601655610361704092304482100470086925736057054724279137257648274191230913625068327261125521283128069291686459719438040668472146336513716003723135890295481564264249383252075627873209520704996563714150825158385741345170623050277083448225178714941920417436537019878504650554810776770451486632900659765498876593902328676530866039475787643739483331731139437993670339375566333401181114207757826940399111010145604898293422113222473962429655597434294468728469073353484597991860398381587694242858522087012668768856832190723181379347248798175552696790919957463424537345984209793283342381866834806515312564100888858842872102418809430290658754535054626013728005758816550101896141280594697156367267779206799410777926400430598953714025387928407339205289292239434617823153918035785724651809563199572015606967322440427626611243989192571094171816679091712055419539150799503720957951434842852521123251135026808472622538412921391002825857396185410596489015386400719307415630420020210714511704843792671118436239528378668643772890633081032553070440711985447614952069107210667890042817310438369234606219830001090101107474809218311430448507595454608479197307446847726742021869053199614493594960042236004347477702289842656480490944122380736211720056387822987713626731284748590634239816712157695282050777055058825115635371248324080470660477997288520385658754226595037758355936479628660891533386328167454377519993339253745490953720596103751101811557184183287126986577908680203093171473997387118536599083615021854174023343020896014999444756753320256763869637214935115271004651914510751598193269427103730508901069269987695172797419761840034327350509750259090606352225433808897999021296890839551358065731718919124938631313766488851806933228463488173843023262689007092951786826516485272224001298362842906281830772202270915005362516791741403890135421427135570730513809602011487211880981947925399823388483766089972306927698690278504699915723455415920076965752683255461526759523349212554227457781190534974758554646703327420138655065534797523959367830302898807499201126661704388968541869245113689052667329097095855805205312819130172638606400901314409592604334397995145302023102607330460225126282771718776528945909918153262084557610945136633039651425638773247335012314677011432478532906981975358170049021190203054991385787889120756420766632178097471715344882860312750879850514436184634192382449427090900161471221018935464961696929813255199787418367600253847914580548359006952580964386877754086307769226663999690080593969867904869860591512453787889727796778882985894783455154359044415327066035701983446449715320797271527720364023163217661533285659578179837183159547550589307954467406866570089067954434307868076167133600160755973051174482824695328837564660303076709135055669359744470842279788836937958869138249666804940368739377879535777748241137056471956663483963174555102497193389144427949611134026547855797273618939295085663922459477953545489426878275335908797497938145021660609987672659483793391859419548822127732908886724393726013379360285707462960662789574339395877977741868051800254242493548039397794184941831647048552794865916060032875053061574503792246639123561329287312027706035814582528048576040811796563132066761466883766078005936105152529905202573837270850733091731736236507549718143713456045146713442321727489784554139582978425129414457880876303199388487763113755612576969868214008865907601356842818601599303804301243925246078952087559142375808006458614846158677509587978967061526722628718764790529418504204120012576189341683482539324514091428409638771140141771512220394947703264572873498738567121069703413166640663402175638906499016141022298004856267510389610848035911270472687606316499430704639350362459929766975396843050613935972451652845853658068978285739792784998480980242755586631613047595144260784014275400079150604849439105340505945069758037071815682236248964034151746457426265998154230795138423216911890217058640038677002004003269009141480903777722556687017187180127342515211073922973804096954951735588787408578935109307610378530885902226699732587211071253609719485915419658180192888341700159612750660525182017871922664771751470600013582862846819802036458075748875992194228519359519342882227018717122885154277345018155926063226914058000844004066733393764060622163969526754135087733071241002973698520150476405201015210421297077400261445302030977437872664729361620024991595118089337378829339882584525042460551002560815016557501514042369729502066020777233636334696608433956747689789125812625903304753579753017346287058794287320137990165369185085075818380221774213860081023058193771872132879077374924668312706066932682473329260979216362464354482576834157349765087717666422319590377358180945493806673179642975114290823474534354211342920332116106469710478886076573371236775311399752612459111198647108601332359550733482117756069658328348415755631258292091478150876118328253359903826213869949434257645615013932838251629323246086789709252458258669438799763824344480662715254455479972462539796359526961514021413786107526266527634265677511515345272594829814051184475740807440174849304962174884080353855638955055325707590821455323911025422716604220187301189495325117461444058339792483205130587951256863530275978111972311638690516343956980135797541594786263745973130911153391028325259986100997579440925750419841328561343495406143152378325972703454523497428548780906623758901029659154712723625664295056255682417353187512055841630469790866140995350622226176457876830483985475814199306225806767301130176997749445430656905608453054616761801831227963654816786577642132421636263075952043698142627106696278086337602710310082317436376682931881823347284713887269668393856366069717461453833795289268514352232637732313836528006254980292311930073615814484620998208920184211574786779925925436094417025700880565312390824370808337561046686168921143230530428978420808738646807692651328451830580193752301761560717447387300204851189544773775800126885723005823508228909551291448874187791463952079158051002907314025169003895363361311649345271066917697421353502854710980506211669778277753157655471437763630075804909174146181068582374237586863198494389598707618476811409365288408858756267286239281845858484627148605573698138341251583573185560978571895664080419912170759937807296113793540383235380324452614448552428561927882113978461763265247519869584955113229380257575374279861527802636030287886948758207318922126018099191292558811736163759227444124778235694323168418249176994604975149627732770571410453544906261118739981247330624332432876475223836694880221931245347855067490139199279062448204167080209540142395983633076851841466769297702968717863839000292825507840536827434143780588001364743449375486952813248585407432349826284652802669562671911491151630894130211519140543500083601662925895899882398611393907619149805368571855314703875902231756289696516671866086633006530855173770480223986270389309720661370865908616984861682915893132373161305050655668697898235823559644002042149948632726877300781098991201105903201754693979476323402786981059025684616733708525318639690997063208187311028004424294736366684187086908399324272102655486720549297761808032636975793431558084491048530681397696081936587916293925354817478316071852807295875323799997150774085736001638067673393441452618143603863334428861690629134315640507429846924128620556948665248695608547932755620571072864884987243372300415576278226818581011029962753936530484220325391100649117353238100112678788316325214141637613425594152612489055825407693472586340137652326058184036413693721638346936825053650171121376389905628895257139874667909071438458344172706700729982585889708059600003719364591193106983618614475063858098603069941024785999369067899177319960943090400032795947887724353086337026686600912319626161036838094195721502388769802653526642008058389296470211016086314162839515149223672270317176292924328516866280953824892886212511132464942786453727160266656159388576969484058484837048607741616943499041214863584494980687202278874557821474862554904776725881784268403089330727015370979055257526558097242225106979065952362432086292594338036928455647553757034188097878896343999935256933049304445860090586000142678975734154765089759391742143416100647819771218443339531771123411027688161248878515308212591657587914231097434939733801994184909465134355790576866923835298763886206393776241056485984216471295190291799321361708294965003122233626553333107299652688378730074349986267741890646538069643589383153238172116837439904879685575247898831475921848394263528402411242109782417814572108543018904653832822675373748265050018217128042242688739489954652164820401010233513221653216338192406944413700677893068088680674623483953816976000419316390119153215017628784574798030723446738409750945897088918470972394606458230719910080055856959359561189920431709994096335898917311882292009703609658007289139619115607654158702398402106272925030793995705588465874400422151112028459978542973221885823592566425189157360514463004453857360382028667892826620247018011069971210327975461274089267237607828168226574542619879981420158340359926295208571140963136201552198018454462375612513612437554667153908685309332207881121438517655715167918102038006335344410124739206701694342504017779054859991497436544229957300274478953601585842510170715159174687053267029942289313056202081527944016572589758681629929413178178328781490651594918105617450980443567136348855151882760191097456873154082465416822126277689531712552144230478885738699825941817472943657445343818355988159294087946130285553833196043308323862757199939854310690639537878236104654081455722469408639274546985956069950790695620979902277381127950151245423918322460479797730352380426485651578428685378246035407264914944310420927682932345234033758906157292296719332357141729986716229019783599388338098008574478627799140141410276787702088476403056379318946012988021575099263201731270606183204959047073299520778406685998734398913880855641216875324182163048490892565923432829427790350634455681996788201805597803766116566778656893178232750668746955038554545942451590198019002492612582695975605114857802770312682109854753965107579094157984642286113280205996727031642653303183244834690839116450583702319495285491464247849847847688571474368737858991264858600441832223201895985847452158928521647464335782397014506947980828478616783108483643591658496390038653723459794399657670428279462225695260960706819347813992513383313105450983922885447548550112580843596436348376275558621774954242725430761835127223229757583654560176122840875704167854598646713590526860104253611039203935036869493431010764591158699794941181984825794180412438035200660308582355908698821779954681167489643290565890674319980578103692027002985075230040635856417312348108928212617564568334782406818966240258291936000665145778374551010073228266174518977007397591437640173392642446346667969412515261915821493787070001915014225649527839369217335755521074850743511881991401388972881945397574717447280191897243843077695324278010469531345632026535525505510524397497120710607620723402911754336011286380166503015808477416032693263722456121496134503242087853360702265619920209675872769384149766449698818904686939549944726647365888438604804098794233916213512096341654574226199684555762692914502111619822801868741327417947315368143823817325415893968431392196108041647909776645029788199361788447541746807824637210341039123206803352405969724820872014842083345256117081392910422588434916781156943794917799557431215778528426345710824346556094959956254330875027170893379414085507647081915403220046670405571165954108747556084435511254090631735645497789805496440575009354007123065076276316305408447724432854494923829515171681241083923114390826241053081495072179207879728128816803585436120504833014049627030118630192991443369930341353463616888424203036470497925629892585685667574484996218241335677003999599571946195762575972240217755039981425544954688046922665734842485104712902738884401368334400508707322064137093789072878718111533613088245151041416438446236560938307492821910640122102733610025282311693435154259008516329333431102309939062426840821522541624560145456548612202525537758585123362621367060850225033961241675472625817451269771175540249523050707696274523210657131451024083539719313304833521169777089662180608819900505180223756952130415116594051961498750067205091141098739368040116024948574210953309826576421118426685712140618922155948938402270148658466611557969270063524858653981192503709866459323348379486173444526252753649436807254657033814949952369607686837646576254123745824367332242835251796611815793483552738798735825696129204120287737361804020188149522590302628034051833946045195893506340161735524630008083077825360631690629073282806458777456672633845797370853644902262369257303191463505148309935658101829355751031042951000951062520001255343218586481070808454137209608218095793891464362125267578300836624204425525035868635019358984252898594900765283775070169888767333735601045463817282463798358522749210160258332657502810303478337919539340605834272209775705863455955653894737440802690172601503300856591048972771284462070398016722478492040212434138849326855396715028645879600987128916852438807650159305994035894758010865619784959653380526969195539142536694831871486792656783193078223325231800646737493055311861341910486969825700539506518927761347850593217413435876895037444641346686340941187060367609920360705642382164983456558714996876418730535799578205384221227986553747028381777654999636907488554025089683418926543616068267701007725769148079615984678353328405201712627340661957003196369130226382899212164110528288439446144645580860071767409424335947572502158828026932858984285262777138712776736715125580191879391458552389032015707427749297515618688554330232774037386569786485870928070459807478724470386385873606040889924935431988794725836280480729774468366970957701705244390595487958016749615108304796932981411109813943009560379987752998469395429779505201164589099801865146556457658029666417808665216253563129777445873878779975561130470240128816693292266863773098902161291804672573548055259098108939727819770066188162999634021334059190178199496911103357418266324888623196602848003444476466517612014005700125952506412308699725144486357464610747567759143488931149536766954018075482343030590565669840927284343520476894905164174691268465515305395480768729354111573298266886224995095574289920448493462340029592517152132560325772565833900419667502447210059354196278226882523126648357329568815295535235696877987854589212643033555370571452555726607422596127771529974446192333140052862599441676030110918052034544925307163671891319217686642180339376827216510096530961256649872019213622966089586114598541471570529084317804033334538506123626711805081138190780244920100857285492670857498095157915297196386381926720414268915070458729478726543638800540834173460723389814401663379789685761097610339789905623817387799450432712349083032316501338066390466629828293289629521652525256886075242547579406928573907987329886225941442334271000252488095434908358622935772244111183206938918749893429812197781019471247448763049085710368403791250297488828311103376457342724398284889894418149618521772490749501837577493482927893419594767773426224031658365625979120825306674545180747050181180536203116638565852998876153875095602649969620946624841636350852456031645165387338679272072940515890187028242525856885642256217204813658378330481483370581123616951028431453150025150877237023072620051252128138072449610653794088029884657399925678848591676346561465054551499670416609275052842880356887548420115287103411800632049672536995689046648418278435015384166156088846516513495306929333503154926582506252939380404893923379012149187156204412361104258799173848391411420825802289910907820636358278920120011825795627654436447217603863526938440141899096395755965707684215430474563272335213798642670695958123741317575589388332067520366856921432059175544740955812277883319952128035752553459922074317716847561891378594374546182557247110027632874157023648880540874954387349288815508799059934284559468206445760286695710018537084908405110822209960982887120779558423783994226052045661454817695419731965314355830528044211139077874013187351393270162877399167973250469455510041678846443801316238574485091580481131873909349343255666129202881109043816760687891835103192884027583040393903956099798317889644867258415679127841319829801159882863697876726553024197727113437522053693440476974246206243172638787453602457819318468124958600282727494088068555688794195415863253801761145230256991043218558180434641795178615005750078983619120453676544486055981635410907982149079683266194872834267296423465201053721449433258206786253508778120048404055728590422561085488302901072787591398826130240287065657287580904132573527431816072850507156159725033240680571294249303283967592093143991548835969508938215782763305739449827953334559090348024240718118244283520891472307649038170524979457231253143204039689030553146046322983997115681835944769221005556405155536781556258402702942281863981355210547646887554556137223788167566270860580888107555640747983872868495000720540841184006870984603270870616433937056745047048916402008637016818328384148311868524031090188865992365273661312508399361322019501406694582872992657601357435320120231121896657394687957001293291476694708197874250801987470812130652587277715487923155600143583188698373999175764215480316496649190854899463206808666577841016824465650936381714207217425742084016863318439324564748785138236457066547889162411024695124520159431873175797656963463007678543719376172936577007284589252781964825300104516328539958535529236888311433614147107070892675504277047277096877178528906713444457206556460159104745208479963751347354087623487521915669256711235465781674115856497593200832799168607380754437947221542656820229024724325747102732308866583764982833411638273366787899921044697902602176975451497395008557125077611702332860229709305838083034011376200142241550367332982610940717772661651185889495908561958399126042114081118829821509542349187139888500934281576858145669886215609581033556856085181613546660961522294089227112189532176601122282876141312734205421769917347413220319905374944872718675870440074260688830566915502212030666846716271670667424907331094934969488763704324489064427097672932578357385849828207606751512904698467165820100695513107982863917844444066705789992911974911416809705276678957103918838803689316570355470214632765898233119955857652163308633179281247732998477616610574461174222775975723317677595772181834344772722553618344444968227822831496387920299231851076162089739151970542045580453960445469942332673273905864791932294757301159332740399106849591794932099776908974360940687910432449320194751185079659899581980086920585761413925706646961164633208545813921848204401004910838689273941255417447715090871005770624364650519034114038923154683396016568958390627970688182919213449427880728507906020922466138699744791390308529176667260456308132602535927370504070719710946024282631046385925665710574611108249478015478093525391050062734105405141171108898394508750858470520649413876899109704930692675122840427876832827701696230373153707734734378699641634649351962335490489172241405708584479581532591400297396725809579819750652866293436285424523329758900793096059947934292751144621502050042473514571334004105300462387891970035226797306748585064055973509594204561983317910178656839709208728682923429599567355120041136026315047168515214087948312106302390345550189372123293272003359936001733772244426748603116683645209312910436036095147312436989500214614366420679262740219737265126884939823258050132186409596693591745221288820189782375943410022056230774313730696359991851253410037344413909018438988977279822539757316903519019555832289143297670250859794425079536278427539694267252201144959357807535225240586431562306646286642093337142707755967426975422791131646054157388062399811946018503173209891494038254738864310465352769204014648392061641614542239329824773766476909931802656709869707156153816648830353935523222672711937256993009657278667682052914766669733059723349345850349616877129117989708294951901794501721824032271495594157242969789685547212144347975421933403221997606416332912866598439743662523941865184131985677769442608514372116107752341410424283136230487097592200015063147710430830488480557698068177292621609448676661573997935194239697757717252399669474260258271405309771457192492461001597849838046210483096958685437548083996755028733235198714902632682508272619355394174025984035619782424549792245765560581253225067718906962521335741854294075205687238617762740738762399329238455650191826229225172575859015009608174899543560391231162258468609420051142303989848602978900390916137155975921640845079494168122799288072296335927280190583719407937536178470524823866768110852933804885100242153309987695569989775061250789419410363666344346017013321295874911791574895089655576864887042534672036396319792850778910705485380581113715669140452724670053435369361982448693548691252543392640923773041836471063005719526162490071975595446851097580708789401106116432125349797122314063468116067188502875240577467637402207829370433501536090779668428842035752299997944179763302758636014335681636832253896342561438982311354451617493696247698531250340688860601678800980969784907127479410594188428177240165988634270259732434496542489696023497635839339184768415986200445652746105041879327463100485264822137102505120308984474705223375323179982631854927240074733195773732855053956150467912725745437829932774618091945584590978926448451095720622556219065687509510889895691577012056243718395794153061543706199454673606375272813975880296275256421652769386684302635530841332762240085871155918133885847092793438990385471239351769806420508600230489314408705180186592932925673454604167649577700506945370960537691448862309538882428138041615639781693047783638287338683801567664121478802696392319905754509962780980110249382941793530486372496773669145460066967561631407216403658229814178357588777355177600865274699879048992164229003011378899144510557822069684069699645240279786655615455986292038419703409445156124538102002482716088957001594376366736844624180511002800096899616193381365989834488178603149342018908835016170578575377174300315386539439609902423500447960389915515824455224282594683386153118622454061142409581366511598998396300104654712355770596557735299770612295788561231051898261507353182200078467438331249376405659486897069681673231400182493492435020131612287759773934436334852641179487845502097513236323698793403107849887355216680950013495116078203551134599499527841126090667686446742650495293197892921862587071396615210024062608514817989051449437325716435660584261035423310403730907095744562567203926857308134165750091594110500620593986128033516258183372982992802251298988153139196683317810848067711491026449078693800411530879521596694733227367894703355250277612349475314177540453465937627120894707018795686648464108513244213349215163290726898002316326210579311871084549555076123109651266334728093576370924087505375198992027547197446401420193786043492482543868775678288199771335201525413426940144395861388599498434741644221173808341039536644698107804989447649179661948642170463229186534715354299851626558189935493125061378980550312372584872941811816428804473938260667908752753125918264153654366809863032724753822197833944409786645525298513628799061117456540991856894617507237497860085990851079679764247306688260581646574671636800415601262800549149663352235834537919259030031445541595026481266740594973043681990739005733058209151280180053866231814579038087135874994900624361087395312872580232920830855660400115187176196684309288443412358164871667245028961467224732192103503153744020093451820699661802873638031643758036851177280659966642247656960626459129733509069480060478481678624350298073044694723459145995176309209411715135205269883950722557084084072497010684048384048116259957366013017067148277276256049803909417749816045948456195448248658490433956136586973635630522238570440744767616634348300951636028403048593034481166036838064596658000706347677631600008487972069709339637182659210859773956071716442233324869944884078878134991682190142963470227988012744158526739249369304153016935741540433283772278885592843876298148961902319212904364347961987600135409052374633224594167312613965488180470720338090034285029287053276155966960641116302810346609817749068334875445053417668851196558437027061961744100550504097455397605373992648044922829780214903463937115066884213428255201886996436136912991179379866208280397320032164381904404642664603701932190734115104364944838083960642284214864175908861573313749175394135113606243009707176935095996999413133647850961660872779670324290464473641788041827279620749216177610644554396756402521324595776192921174466276856006626016006889026873851271575793721084136618655686102380814829290609276843418770862677239890189940559985113238128299524959413811375795334019092365724302850652818098670938766889023041084543211056810206588737206079775912550303986693463005353139426259436608514130611076989914113999423268592410880290250118215901752397509927384186056034853445936276590331103354705830355900306510086959648011749152159618941367361766628565467867286217754382308367689493462217805990454887005248946038622039671380682020195219525733888453002559895056465676600876816721641376922696892224591247620221951994719934051936084702366935636443810162631567320860658704886165388667983815560212689526913727322899097653910815892297996597128299733853293261749925137226822196608172734344755658204494270474500800998682260255203100127740884765858205800084840556315449196210101508486171968999725039412789293981093936404812215015561203821559847041320102796633335732872505360490971165053069606015892473299805861982218107175300092551360716032944200182624958165102856364318935509276122511063966270702723704783086049445743213471135278918206295135814517186656047672776697996734371298035938144988304674822662360157141047002597386231436477078853550609842811746395362915485209706538524855431937183148229278646987301094257689328308866401303982145493446361773262364485592422711979886776310447141293105712379856989461583202046650339360078062243295339868592761155245040529347614496756697599494237312036537010068916265940311491485416011612508178717111456488347354959804898695072757932556438564625218530320722198313788139581831068533850305858924182359359284786518878592612732953710344459436331801735278598065997194659430913466900751817490341582356512124681220820933096649708540142180915640194017955440592221301995584885120739073739229050191979162833762841709791264896873449542457582082684414287593029920847241704359503678431357291809886138023112027071526715647026938093411615743548126500054339706389601983494481480877636189711486778071988570084289392830790652616849513525086866662228268797839497037603229561212802787956574420076138274647554346482446849378606191147707398536672654258024320934523676445749739073670502655818985552119958279766082979152169486063804461877919491246314200505537452153273883084874671992871489860671522288717380928618633275100220242184530304061863752882993785520701656935969924091902511867849605012201194870961320825792430723461421393162112811669894105186963517732398663675539749105263431741273739257706416524470301960366126387434414214922520315916607029652463822295636561905652724683293570143328607814350112620857489550395580602423853036272780284484929205475215488702437833903386045298804461785383368294583106957949320145478429788543238404398115840479206801718013719638111908626185344376485884157213099042662243529088893887963529227303500251881448995226137176228199772516466224249562238321371661526259196218118388366072648028395884580390105084318186041784233403785629349749788945933171555359315658349420668248453685164136057952658089155204114668002439348786063574730533285910092045835804069839198962538730677084099688931396397896921005851643990162856001821437724089932259842889661096895149385615612909288593868784090524329707197048258532399210960920127422101899424399574235133999056155727177643643612633670803137932585851072875766654697728987936050178907234888334916073908796426641594012894264865140312227890148163066584275259242493395084060555451351322940223220872464059378697788659756445491007568497294364548369580842666865819841962825090442847052317419184602866398458711345343193279410483726268525688870746447265202612454848919122074894885298670622223517424201939892602404877437949527096002397273528816708214245162439196499478314917651201727286030979849544012239225552826664534291043842652434858577808310474487848909526663147227105057296858460809983469873051264118583139164237739614735971589259807430766567615786156471332889316164207786031854189592071364211136907943730470761901816879693616089606235193454427635216136728649636045545523793093213853892732174906640278257532509375333299832398443109961588184626723420500546874900088522501052397461543031380321312873214672858047252847218743223269143137213112395389286508504803765397255864886098286750893864534798329166942082594592451853011588075056652722914878045480680535946448066301586124843332952785540897781710667651849531033799582130115315202981679227673602542771861299556132089659874694789619870289646437320146986471170545214111361217463882227420658246070089611747917097324691114922908901218647033754424443916428543245941817272056861485275803054764531322751182774965257847882021687447562643994536424009265321565398418463252447375300159683584600820041619362201526946245412714261191442634561184305972304756679438077216113559867968393738416457109552940111852441877982283837756457873691127370964806227872264992533475650484914100114793117195196430301492450219912931077800626470979855881875827955277853035039721280106513121395429387914868293919712560477659633727068508770474905938002608923314573676154733138367088804196022170045186859739398848183440393439549045131246141953661077679545308723122772264165030532056445975356803966698421528241781127647378284898154755486256395034033391368570338493835214306216228663051123898622371352596087067154279624667850418864141205468424412403123368372631441148864766800411685651196004347308510461142572321988670491410850579204092065122681152408475881993180673749331142544258431197720095229936858197388907620012678478648975708636236789356726997924466524108351754984012713177951481193361950457094664236301874177731454821015354304186106364640005470150841169068031526932989905233372325814666390287609170482460417383792214967169407924897731276705430511687183720190167644104766189965930405278397375583642795765571385098348008451956034192012040382147058366534823303327298169712191735377337746300704084122055040606910883915555159968337360152551203538090615744680216196082575989407313324628056383570811990065514900580470743622107480962735746370247501937524874094852752444429578171895140621370333259195609464052867506393849341536748314927940377571685649743182536442264285704506792643991103041916208693997201611776806531256538577742849399880669378527433967425078474446007648239549074177712842077924039081113111861502562736130472146521286227426875844927968261640827982842742805918712485438933898842511797865932793146804539963255999843487780281339776293533544012877576457961378903441857453177183991671135878558558643521462938089357413609786388608378536199995820329790063534881062779263661767809120610676833900253514589391132291810964215886344549401604545986994986148843253705405087825576676000693347540970649847805300843575076218710710837492287123009185918371401655421035617299969382227363772015648957109843478887559056380148906914699855385250484369247524025242154340826897697417294995097766712189510382168777161153633117881617914731348924186424369169676962871670092595464649098463767126366298705707361924953329981336819994848082727517845435959368742171838403692411131521300748580040273686077048946234190566876125509659702623192201961349116329634860206741871568881009357672284998121044931132809138995308105982491810406342830749307162629453702651371172630910253284881806620028458449969712730084687979916239238201840784316146093612845661916625162692335100989501642744001689552388866793469907765479065882977654419133672804143331488199457597231604243722361214302321487629103545389576962361618528725663947801945233135622691011301627726418688091282215530633388643538718526487049746805575271301144150132680673743045893757992463245485496142630345576205537839150035581679433652933576068994522579927515451459858916233569656888187083113462191569551646611479534415037985424030576401411887340952113097064191324299893875584420943482643547943049572260177184269649880129258086335858133002717680937162019794562494386579539614302439112314500919279838412097270502213377617234875782054850694902504728091622780644627725536208170172290280663401656934322652404646001495463089576630567284612151904902741529308162300489969159949933003446400167761014561777777142014484987468590097899973443412870943477154968218253605766314095170455978240842453412247149432894575353342018213043696630837984681592769768579058016419293844825900811088560590349144127747015923121330533369085155677911232789224364800834384735580891297042922313536969068322002149645360446613813356972803374542366260908808915898188793823306752106175136484328622170064220167913323756385248376125854378585298481375679348680241396471035315789665346922662216487279465573466988328879893910352489233512922147061181774775784102004605815249412350323601107248000999769518301562110507438570652762921890458814369567237995993283593079971772540520600027565331463017028992524285883956148928935588044835564759774307860581187363028105453599593894423233922584354859477925430239333228327021401319553475413153027757336247742303992111553066394995597245161679887832836575737538782847052434092739782217518356645065151340868232722215775042770568000990990799033687578602653465315157163979395745990910648322042403991095713731645627815194150343177847946666717272461324982087082831844593385916554964211138438184844725063278498817289430790835548932934371333089873582317680510308633835144238925225562169441078660709075669536870956591802508709752562975467187443623625975866963675600628482219747762335499417147405004070063511252602920457390361935201891370689754059256795315167813998789623877917637784160697203699248886719851958992835072045603010638940678840678524082860584584377273280140432451674453139389044823473406986502136395774744811312266073945286276092166510900741631621086455158481426859775119918039228790488304472183413388847746626516825284798814408721295775545006761595016715644644885584842559538485873526984067634929054254522048741785868243296884583744942003577991150346258326166644615905689101974143848347697201815597968534155096624095963187389171745456890960041404137765581431183629765551167861392529365965470554129925687537233203778030841264694701943699730293316663185546222883256016727563667568548742523821439170496289844739682490638154091754318081717122521504526911066201987738548084154722604762812161514014269275340055480238864238363093528612861910340856578711461746126397499047555568817798492779081178407751711186688268694043349912239907062151335180908212292408837401977072264399600293066533953574725295753789346987851546636833500699011910162887170919329321548040024780895807682083418816040990895573743587796886662535311773457456716931585907688172830344400576102665985151727154866493846196326038020800172555862745834861811433685133292352364134175483368369912252861673607996167733722275772365427366447088562603500261082633172777160395045561152282860798581685736824772445662000412222994554617260667886681803017866942405141153021695512842045286338002995830919470875117781985699788931807376446005197324391472877994503686614456789799996365158209190178118081730204172001138323687949991150501109584824038382066559369224445883375645324445138967351425095651695353981725450441266800815109197047265830383130674260404715735710563318300060124991211424445872836005228824770049832032872908948472706468278402417076406056927824809550339069169828749228694134332429828926113800143138707235845130063671136534961671046888248770235027228504988493267807678039413224535454000945800838336263832179002220178315043898368293553403105349439697838176212483443421616116571641931608225234019115800750374147943696729990585625792857993265253025346708860132006018547939897515411843652718978894252885055944347395970131926957537811776310521525468933139069201067701479932292714853012916886945168255470341858873938697429358143359754668147984749772785752261517840407879227559217076320776517129930779394563940714798835744843674568099799034121599838968194558792549994128853217355138591224173599694687956675478334709015816743807972534007726574060349895844355419776100225231530719990737833155549021325982775819520014493633723041027151599253842453270216274476557848969846126244720946388966156236181843624420709155290134145363284109066964634673494646345874656363107686115606915212576053347174291671243195235739104403233101972596744778748030732907048340314160954498454318292264087832807937975713861978704319723805809622269630551809802263625973192710331767517914226003948079198554953019949163893560230989398446349425847866093121378128672118649153260799333292477431335664165869874422155788403855496034928372957749674223924932739922416292823975887858606738815048543482134605509388469535877840513632874752037941371891181070506723537001004373317473534673972429681125409475099396569150249847974806901743388612377726179017758151405462985711496658737498105468726346648942207840379235838749435563091800370871615543395164512085251470347745511240094877448222361720181588027337045427292726739184710708237477048216046139715246682428726963720714427649409857759220788634622058126705661351456044357946146280578648177467050332620414302313396441897024375597302937453546231075480913668099365775084438685888472189578154761750893187403263611816422855915062285869998694826949092481158719072249281512291062153067394696779019610100081455244741666271228010517209686166531945007406299089394428861560715432875561343021499345409592888264230925719087133921362947220901861628648710004887048168852293735668129762128935045217748058707511076602749301236145380686267738897399992610253754125911656844365907580647404880822013900774538026836079700298865215803868653365853847749522440523787169374981632190489955926769757497302176006231755763540588417611696974135061029302911812088318342295660161546619196613175964103799608875145822631338641465032556798292614758431589771263134713174201735670049083169362520047875770329063800081640090830093824903566998917134504354385280261177772257146618348904681029309081761953254390282309493900499125384154043366763877023358914998017200624777569513190849397542215395691352926058050115935807335437509974203273434924674081437329507516573698036040022068483573438491843233673766076496549927625944904285704922841981768457361002450584635654485581004541374336129743862980278628432252100053164077463322417867147241106901209868392570102741114351877472529105524166988670608921901434692466180996490038556179383816361605272081240690028666293165757115334623049657252742782924750322452295743474757316253447691630845229187438101712683416519026536755572519756581748706404916915796048467970697295780147721416626968408177522507073712796005856237673125345255661377046503066852096184306615630865767036600540940652282684049319946596080384993815928308240515606625309045217022835208223539602762137563242529672401361322173359805582383902073686454249563350675007029638923504638511136408537984128208782423149195223384211118089931550710787917024273444092048086472451248841638464255242419399711110995430141542316714024681611740495417365664954833699500786535405778890827003020106440227722411684714172234985780642659490628869811854293878887395145938042331246794306752421326576235971204214793633693336318403403777555551587757875032244878404531214842126173323617662778722510664473566585106200007649971002199736593614009094309521037774316781844616700957923227324309869433549533824871987029236705020431839771623593989753013516585021661502815457378657666768798646786191838828312374573737591320790825184326965901745686992719136027068487253063492123037883301840835964495473072064650354602027520183347844995388409870280558948248841210382819257739729304887913368626907059221318218851822914089980207151404680942540029072485482815588013079889348491076928766816365102822968147498912440358859744692833168102943668715752494276360143667322978969378275455648542242712530021935074135230702066007438134984743349835279580440834027707667221282941232905531769840882463915979677224952100972429172075976972449257845114506856494363823911832667156738722858432579249788727665967882971740745430188001840052358564696799801371971025867199573949614789008637581584178274387852245767499494294965483800914250592309540070433862092386899414276786251481271125775469461849957259328824703888167919163622434229358033575775350823588175284216549708183425757450602973593815462143956159808817957822001029409669431499236269532854785668202853953861137288700657172743700215522984412897247091772065473884020533076645774820619383996597448570158441121275447719496711143015147907037214379285004577184558620861722132604082740836406496195387604236253495012138651911099104611788208749727105362014333374036177032886182226668980745115993014999695139321480513526389338608218500032262633535475912682922883135306480005470558902023483261211878986867631289959171129273629564761546760536127775909928397086084268584355239204008781573340653776439459331924969460528953945367189301696983637851405324509443479625059036117446956043078616098185304506155637413967643930069754511828016479011988546409982869898820017879914083472751229975329598177937157660424195171335339163448726097810253214665509037584622352195990580051208315439228150380886546791530519861160832164406392412713786373318287680907024940735505577901159527579464931961606418876692680303023399887929648553130667600764537171998574530072230274134527795555327096751496308133141692254146651642805210157094068218098449061799001822613688230169735524001425682414138886069064240078354962921097628157589194443454520879626193917109890806282523824569544215967155781414429189231078834426078111173952743125143545271347097334568870837312708864396470767031935327273578599183473015216125155818363050177361184115748673862591246956109132836609652731906965045261933211447834132616744043464025581487849698339024552842243027149470108088409970838587045661648927672882055544419814256489847212471067607567006415122810458061116149543381956795986610808312103725780304651712182349397786602160815473211157672497644461439319818766313960107042327484100998786963551754907791364297359711679098563753235523365840937129386926366812653069186231204967939525037023452568681031674556786020192321392172567399645589596462984479086965516691738253419077715021173929157884482627612918958988159359134237984658367407406823510090996783562677730776203375268240985627931679183275763159627274630538690695855779678289894501248746008963994465053173162542130601969020632364856359314935673365544728636235361358987713031794533920348982739776120292505199407725248007703154269537481169076028778921228267317995449686125219245046324335555501485567959431455643853107402127208476524233915386273138334449253335489114493464737143880259313125641631283158807005297225647721346624770103432037242720792542731677554770284873357261471072166167849699990846188244021795645400595061437147965024930245630976311772983458216101312688490385899403296903389314572989446371164398873103340441079701082383144327305002270122603685952142528388943445670930832436504008769877769412806769658188531251619827906236584667858332423732733171124901541247062982100635240825189474091736530509199044296839339677518497792670559879389184626773137133823862118919121759319993008082029787779824391003276058486219733268820638450396195599852951376592029455047220304380214161863050321460225505211646445210519763623344591752914051606181500077427824414216220344786660796104434147983432003660263703213606083783256524193671066915236935724359873022658568395157814320427553212421850897612053210032065276421378109376409363580722714212451833490215211842192958024992144646161422263456090886039555051494919403605770187560964559972382692524952346335431820166530084761377916242332895826622778564041718683243071763786578233631521509582882785132641733405640079803552625091150188884154917028172042349657769717664036850459191941697547420526317760312944289157065358474344456921414621657666397919121367570229512168871400349774815544649675229436918653471796422736283654493969130636565506453212983694666590496719279730436054994511892731516220561471440796543938211335325701985896795638086289712158410058215409523166548687905762054394488509230078796637854861469518997476153279266682399437637722019650017454141784692754060417420272329929225812342618177839418564121886454162573608363001685976973639510471015067831570802972205754081973787833269782782713850798864748832664398090473122641198692225458328184113508977038639939724789510377723185154503271166647440532854228487720281015720558905290849705159966566791341249523069784736620900682977684398751350967447341799980717453285093976635857898341930988308719073264728567816101429207192179640577012632698056169573466009792809236485121682300247881953943621117330320981998318657463043245167649350376465968887813653072678686979335134187364113373602543722090131446227278951139828095034477295665344378999178462514009993911487986587399615672320306977005060720772568246046308508126895695150272081502508692452379895240755656028954627435737246935523607829461714607733387371269661359419475434948970988423570263498622372997699198895627240135709351664589077349290737845044466477814227271446753186225825586145823439267972078660952023468886947350399728431680434275711545544709413346393060395662028785709347185282572164059529030492129631414033600252446002342442770546688791042755644651792929607958034802376782410041274541287943744968605554626870806131074093123675114393259965189791741161219439664864410749568075104718103748302305819451085008501118028943263089163434902356021942359413177861441942246602387039282915767091464936825455311959316996593173184937179732300809899012642553847078811610336285979080168452003387916489526309496860865982882891435119610182611351478479605827991167197725812342043353095089049454091531256578462505129621675306920554367771758072232396269423951667685258214142785008967323295517897594852070135799043219633269457267640560671997240555220267989216178056000298627984838295533353347829161331215136555708251615482836450140799809365783056400090879550729566791272326494279910454753799304004944235588724853433066938752586103371327566794710414268858694375445595991232951270285055711760410549334072257160406214070729475361191971448759352881811144903153102054715288077891202916618480866403404467625832019233609821780032029451576401650409541430643590207057447167192789961140405906174561633303030396703722634791547287262285078108181324677941997034225475223189321543054164542139203424910093567747854396320696279918120125492250081930457667382520299766362258685987383112332398199941045281216503726702195858435841202677785579128798505934099907214911201740160788446573427387971997287543036758707223114730140196722928892992435801089593544574310158611946530017563734305787872269702477301533845723677435718299692979316053679233051299378227495128563871322062036419455119706388447215390770780331475079355667446723894154031569754839704303086361103787724355342675531397748497265055299047632010449023475874468809340917395351092508496490316425721258001836332269624802112127526002518482502175251606872550202935978187909943987652653945152069315556483767677452149785992253980665253400479129691122914744050671341995929823930749295787428772583598135010004314907622574529283320226286720213189550632679707231338758295843278468596728278569278397463855232940484857547010180381222841028153711469927433699832908328834609230031968877823866041474933096399223169266849943127908664778378698446422179402270659280582523264895266472742234887108987628589330004774924794872071114386435930823029953096640357716053260868242225821859593203641593713034397700744357474953808602561218424865017362766556855481784307586196495529376556803096292331655040382759733628481318459035341526180501251013987958961445978097770198676930385051152043453795208322618300127706742019715906394493326978213385266310441545619133214946745283081025741101844090373302346093153695497839537894825740843237356264457702875131498280021308359157293612903623119246062582211419472502776652575453478808082776702516682379771525996155347366476643225571928289505124848544746846450277168784958510849043148571042985683175138386239272377072537688732394010282003998209363633380742318638253566706633314493039462004549978044370677551679209006531929235658565334115398473995437978546327529920190418815079729724013793884561221937921406420364403663494044098380033020002685135588763393592896716372203526729607761357090537492213972564045283195296553235774976675601046290817469295531617130304304532406631912180879104054421255955448816691396137603867551578517949587341130315737928160502205141543431996846962522067311861118324188311712824412546069385053909129409077264997971016021249516570540944383148811671560190105777296209165021733960981047336340836974653787494213756717766145442217229549328924388623089491705161733352223332495800819585796737448243779849495166540248955646931108784033147021907787614029517491939191991027905168156412816898514186712473309237038958822776419553098578641139213459874467831930305911442421059707505698187308720470305817225386176028150142151201606307044640700803108412925668958085265335863180439601522937907793219950073201471884750716185489729783984870639201411706893616221485564300677435125900607984835091566609912388028758710740228827821393265324600102704005578752275438116438496139338469900923584880702965072040703486363791293913107787736737648187791938135800963827380600538931061938318521990884810405800706574956938045232671597317434075895724539535696108233609640054706274350046009866388681365261729789684346291946577021312702842644679042144198144366301518936600514072617629506498193238365785875072410634452810342567872256878609296015662914493755535375058977816262476568211343719035498844000270449947184517034113391865587128350933582456795151592986036691462239838718410322074506186567447664439935866916072271698086407152929153344299672069766090916586686909814798832203867242460056343629677714735155646498884234812223653588564478494122260902928589722569746645729413611265202937646968066050368218794218077623891094984802619595220895711771246790969853965965512293581363775905837554643625799592773682616051024074293235029593244975997044046346926131660995631819755539054420318885260216130935626467084802445654780789818499634303029447199331788390034614940178333378898906017647256461601414655284965531175903896050946450216620057092942043499944055054112580033810324949484625151610962809392968243180259849372717507760688792469298215697195124620324585508845137798782423572522482817638717259787669037755115723401506620761989450151938156197431095557252747977921060078111629729929537341973096468336686561709460094506674831640236215068035335633314810462840712888582397483041526944988577007363778980142867398068065564383355110325148638927001648470861377137813356707132851015377701953603604982078289170948338086557950551454172752100947585829692672356666596701012823383700679942715294035465457139893707535774036723032218081866793897700552025408436944141823629457304168994597626722100542440286082514748745092052025188623613516049635349054845259663063309722681637179379658264671708416332284055402728587010228243175454501012918605196098590891897113323957511653124985886194494254587782949480502726790677829025178541008664411154746791324566892861226259885533646066655422100910845871525549445997757353136081233437731199133518776343679425743454447096732765505958068608786524313420497708554803224791608926408061143999631480678035133618046819414611487842766669140041194123147514956291797102186437697869111029477725730019799973166336833415155449855124813191322750761495915260604562329889386933735353101589203266484207334264855917260833862537155151585349060386153178317218071268098544084370456790490183015421554253457550378290231100137550321700843219922512833933428416559769668134178138942582613904103187918159493529981625259945861916921590397034661029141229650836858136736001035261026174575718330547861304229730707485861764149639960452090276946749716308523892754776713785672042588210388282625388638899219169623498632841040144470388837979724942371488535867298023492766130002472201253969710563943331377642218790087631905195629656570840625506216861124663126043972933227049276884429971632111168647049208684856189740604303106036528835103500645415300785314006351650796021511355177556241433396247682420674476623039038564637979898630518465508282559149808665389979285615484612754409683858387539265730748941642783619944091083351477982045343289961234981040440426270859717468160026380546167783939523045397189329145374599185213990206295904087827922163349886574426879137119900010865235142446847909839726140719376875813462502917669076113345029009226545962407671715257921246948201905195549618425055316432080315915021322328531613951057419942348068793331415258177465455778976963252559558820264013475467259666696522085585165396005218617924473934080322848935330389274209269195617046350590954668827468257244638991441531173267139130382410167272283922143065942324259757904680235402755183385739361225550472328602452911484636294404853508523521612293258394663685980939516456969941075442225481402545577623042266067210484256184802289613490501211740050201673700173801065435259715567539590723990124083926886648254637269385694952864878402121557930975461447091773871275182168401749465752365132276986610525353936669395907942256008939776348737398972698050777259616891551008647975423313706051144853673976314636222775855124094168062790566413748105607433250661316130825753340836540445467250917585983313254594733741366472960039847931563749621362712196048590490266625688085767761421886225671789881542447210755781441771633115727881795400974059611460766796225601770852779888575303697687492580114811179333070699500187587620744272262921733495516092420839178212678458835570396226381476724269891338406809186077072865651354563686122933844690338522272939305108601002165226674013869004392563932292548633518960661462951515762102647697562712313750380950215530211101001102263264304987184390862756328734373593105472911940592715782513242990343754647262300205225976917881106311060621857591386138345401215580474877172555562388709946226074246708954522678168452883602291424447943985996293810498039485054619165888805855968648789916119830252826997096983007625974569060422406399999124330588189974543113337669612620502001632354393769405942122640265445543167470096439281398050528758700670461964526376777022570398745242687589053762196831453835257688035267567041336960667168591737750924730812633735186130229426634099808841024442891566348292914501427668414509419840034192625049809046804066304511496659418887180081626814742086349778027860776253898658479486545231491669392325182925445380742954982090782673265756127259910645879764552808782881293684339696227505630519379683023002976446343260216755220212141011059444821203220639105810006447411294805717988874502955254102895913125308289727571257737126549771582650223240811725244934334129007970620089986617021660733013147330040538548586300087971937768521118763046393740726346024317520338360355847995818047583840695227884022202856555440954355099798797056454594888036348155791430041002641937029439595776458280376353705578899264505716745438286793362246030182694059542412336230462751921522698439788626563551947268155696356145514380101703559951977374905436961422077937052670138079855939571323102290148207942810854182008773619648449127789809608254705134636824099923257761972870213042961160465129607870996484370256499650765520979165281241704810631991947293955479430606674446472649038764951155987231425236226335980746399936361759934498430636923121679153003162184652835391271706059960314893421536809106821928655739822364929833156422114698803835054315958540664971433947646395256688627815343010248449784769041628128509378139636815289522163745369519495302402065304125672279626944212756299304862830167472647282644929088886013116064713857690420688623034280694738767603518465557238599141243708877938102966912192109494203157653784535851302276226110239119448842537193439715549918649243322870887258091273996337016218961771238772962170756418012296746551319207417997264101867661933225438965743747211415271006485957556409447982014570175883403961424858432380531003273058615220924255268182568172151013493900041068312772300593407183738237657557804756234326793075646800583690142068369618191241095937693167007022321858934992745827360361116694726418454974694346678100135586238525278664391318908303919794246669218347976562269080105569235090371754180344904268474909177305136224036721902860197813509533658765961503671441504387841460569945949505915561890093751378643240262696018058278976915580723331128856496138707050067170309030844292007389300728663502673376007125467846377319883211786561289914106124550962963972309408523792776048369103881577954785808652227405561896853352982998109442018875224268297199407405748169706220003506757415182047587010253355722999096858960591007707544483155910366275856983611007294990800375631109177596475807775117873210577747519334154090683863344942078424848826612226081226559562975261962379660398014634082244106501631602534442672315042480116818915838218005429678483928661735315380182073900393594252058242173955895081363266615140011882643429745897164675284353242116880059121563599097588009049851634040323892371696897078328443667219878487596323613296660574561950060778086121953916019074560504969926950548951263125554877190592980557368591083373437952325209447080807809843272275212385161855702711530080572640246254115717658978563219281981687989312975016419749599792223341007953196199077228009795112621833049820998762578452435727229037973137553725760055238799667147634802440626605262127141455962574841699630729677739823819123220049180728837930375608766310127589929935813907166781452875591130985762364271734872935253045904542122420599060928028925763506090976595152375470939707291056221605659747146276419737205531692388239248119619424470933582358848090256637918859941946725796618900960352320969820931771848917212494843997393152444750006043915262982106432683774101596062906980827266246009949676346829074987674052191104906837413982668108644064337324381084669427050549444075185651469470261625829728964098857874477008231167275740995744846564887491844219960386376195688791957562663370473714793917638384786229150948776633392576905989166581178194231634033952904822463309382426813628456790289657915875915117282713044186981543023382611149194724132634058889277017187087954671332884944570690097133046047403660680354755882944540746845202210929979609723083956856759716568212176764812728871500412980341276535508766880546926538805019068143333599577110808710638408212459256927950380266413690744006871325780876214958044607312230730433583496281219445794293408059615756946840148023361435406425642850525145013703356785115492678059644311989727614748354075003340109333798286842720696743836045195287278021678433531670060815130896306209044059298922488934699116102776996604506118465845179928878087261943862423933616863561332411249894333239710805203323288052203354831840243482656927380925140475508585024982702687512728495173154226391552130114155804158473904545235002642465000259269778607087238466842612978013574295974261910231386406712073164189140043767617371448693892482282636634999424256351743511501824634065007707612211083457362828332447147505794873107958542998165914060749619919173612599734651170704449422763811295759335194408514573882061227785552251296447102235636651585025223773728086586035073714365997440426289978086653165850308671707406494730322853140343430457655200483260605241682928999803594438108599199245695903349910238486872100467639189979031097352563350379421146686016317443187984725318593270899224852922865113143027780059870184039573500498868766498206196768712164179873884977153330183345599202535224714717334708149104725348671164126377956209043238806760672667405974409340067429416295637610814843301946884238058666877868546464910470243919081016005588958478598753660340718629384283696154784220596473014105034650134955517519596222230225432170595034391279505334117535454627270254310247604850721504702215281978619531815823262449262988644194332682319303015906181294529183330630914688867172396064719229872209071315532339202773244217863831771454530402554764634456018146043994597506476624278081517497881843503255270132771437531531828688689896515614536760256434924571611469490673458160351238188232649225088325228373310215487910779350801726697893590916022687306854405949377634525448394751290960355155313948731241440882634165992610913916733355665704179606368023677066114485232193557721508615782291893531451555036272395571130233968368888707774347230530097070310908620362821169767840009869974124773275493800750467378564634640900472359789857235854532863145915536929347128533338324211196717563845390255496982487584087320009806963452732748194463432912321610191715889827740898992647153286870454715479255780034999967628018171250010971497172037563583908900873007151637151176527066954991482803686240621063654424659847257557241005404933974232607936340332982102530663399913931960133438014327137314460029124528337392490298277099944946680605600324710548493447287045596353851986680026956502472093394978837100625822893896771268706152508559148133128681085707986478931009517494314440328040563976052896280681261290787843031274500740467983967725514262575573031064803135398437395128628868870035022479769895604204077496558732139834110476611948642465120813750498198458052161162934708642252213533612151101148637541077079421892372911807407634172910660359143085676900749417319486490777985400856608925903525542314772757168504402239327356522060126748667976124376043265946721466220830485360814658783810063537965688460621643807522974170681140153445814978782118761079047425146651576682767987502326124416461092045707778434703560285349581641517443683055866498448998438969062208151683573664336419663737531277390503581885476474068130748599102796322117510196671462492408230603218392318670682150385904206332656909999166069663225146476774436610475267134279518699447056075027696595486227477797452760445035759568171094120266687850199996103089283469022980941407647002219713588665713915808918677765469204773797701820140310300025904299639040649878476567475336555478853171892940997149390952996036998947650832068359485843257221513628664146148406743914207511678866095932895633113218411212829398916974468287386630348802145077427523681183015256929311845844632748457510530955143135221919453881285394967829497580554544849258607736018324867086150872964639117825185037825398115773658212609118057230688009720595116635116866115787119738547943430119224400127193519674646975103836288188311991112162276704799903937664749481664888651005682781110428376826820581734873188829044287192854858376929594582884702506111056514045309674565887371962551168854971221664504511294455808169186608315291385795863824247885808066032132095206397406464044377667301209210142988441701785517956347805604770563840588204931350435437638525141075807096893572313530547505012445795516543598601714117370622767242905493584782962420319149563538124153072734706185596465287377407469600983086348737369652721644471307082466104223351355396164138859295878457353281706432597765787935499138743784793646217533287357013714444657136167149011159878575980545538442416466970022720036346121446918407999407272413701059407048765322980565110138781541478727775214653137033802984842398543292652998068454758446707703973286854425824366438761896231250672925609214621662968207815049116683414742406353766923096963483765343094091998385030713665380514903370987974767242295572908886387881936903500884631265984655144885304270847464924060223695288851997396240954386737641550518644327958000908867787863086256985006855042043430182522132940842502276822098694265399614482220190716654440668247865120626189667401137354522153673986168044233971151441953907183913831957721350962546167819633240213679175325423390756144111830657051981325473337578006877191705500338390780734204304228977039737085403161004378445125746355175047347207195325773912145184506070858829849746888800887331450639115337870507408718015150440937669790696740724870477971119665646686753865233862045010716749782681350320996643364388500634717795834372302217698661751350136157177453054391531915638624848253043986154936547933300951064380435106636997867708999651070203253399700087194955276044874226720203704292313732134153162286347964959622216808051052838633727501283700531659220309424189229516698854719778419845529441703855253047899651754825642848048974535091467395040981565498125831243113975084311093474388582439224720265479401410615451623994004705980857631177860364275663504803784886591492752432818776367561714422444800472361674043502910605390186836549949554243167709453647662200575329068783794229719051802248747856600319591662134473912434010511031465786271662116314902514184871780205544042998856855928195121698512107914247863274486589861331297211918444134789145626516433249667053329825717485235246425466245273423859100418152661506176258536907930253019207145722702826848684091028376701974013900553684617932355131464278978505889739532725605841687382210194095705154614823282621572622037084884198790971959143657558018467928883213310421947645440295126430227369286411020720157033614839488930989978019155408384962001407195784878740957503461931848845612141184245429056936226334784217373923584493970252293798993745345634205591449267792592759505543112767809016459817106314648896818174573893063023636930747313027986636636615037128676400016588545718188783501661633545898908653284480805490561534389849939482280956251916646708620063476632702031160126966283174137926227228811406027922435139631602405015144104363618042742058506855418571149046129509065899791034351541197730864070703535484624384690326157764050264885167698247589981083595799740065508590779872571343526811338238516814405818821271628716103176510764590619427791226730165985537613675306630574919958611689432736387178498282725865692576798841224587763297923906278646015852360975237994099638393275364854369526847060147443943384101120958108487130550096583274624059930665871110141382242534984233954288157617013841217065977322903735625508299740075615146009712527105586543677301693665722664234103473910089513321213143523418872675706370943901172835669574311428381123908966589408208180916937680968920790427680317494846117589635627095140764928340550545103002599512591103300904107073260272191272709326704939479839860270605663069569510670008737987755265348740628486193043576161032535084314908193285662844522637628771434280041083847857374704788804620961979327300005311149684466030604583313898383740771375093802109087805845048871620879138500932843480087042155009432693315745855364609886386962661969346739919584095503073173982157198456964598238699929846235831366893044688095914530932140009734504073049819686023171625765650668096778626516908636179781910474793331090249088915494179708700066232152926653402587022009649144852127397065831455159872653231266232674335935454525217415718951941805682439759416927493282033520448961956856713814322961385870068767180880039551623152934135002690813326700260661003899944914333582331496175482030842662366238508632706747758021305179269810322026265943503032845228161459093040950607958854926527695929195609238521762605070503072455180383415757725253177223485120584714568535997188925457764609235530381872743252343127123144078457850327067290842355709360186816221949489148957944580986657660852942807183626485107710448970361902092368469940877874161553455559973235070838508973154121205346131860461222913652507767534565232945928811479320932363544681159095624729727378017907843938140827191425524457336209936990179125331892056168652803595810616305349722190561936145335942868841878271424159167515863423366145422610814624124571874744314730276387970323683429463084055980435836476475166542824371474923177759156044144794606718007113322870013193547765248014600431312364185583157224341596233424405066649450765520983464112400986652621963179896705299499164687286060356866283552334062668199137748746454341666777755535888332303546024263958647076808532298305234587552468968840605809097021200247725969793148027803091764881994144402690568648845632337605608336806010345257280554704285865256009205690836592864907964177754953480217683574562050715885485140909208241377846259321966339077241797195418417384184867187526627918046868691027917284699989921308214465708722162556155271952376755080245837355909986222997472992253177776380485091647429452211454925299415371353356099116768036094877791399119424071574733054263281283154522676556382729380188102990911645245964869827603626033109903291483329286247389101943173486041242386944544563200227300863036906037445346042417642847368166928945260313186699696433172591515281997850921798688631604602945020620283783223735400895066962752668857660191469129371810991194932654834775120741230210760791104925517786489535123951066960656378860089042239578384532960454408643107439822089629358344463318321959209606354446940089957639074297191164997346330965853755490265109398328107820000468602069038565539077229685253438030538852757291211439941851694882373935789251258328752248752948763648740759791480737566366842622810907189286845109072765983845938483968404637530519578961373863837318433661808505538141704826031066942537458551852074473110331445492617753175015040190948198766618844128807384352595514519091177008070512066214652894724055723918319542115566323288723176936222751405191215104509803350735564591012239340135604497178346106754581071631376364692889218572371352152701705441802140048504601131047966656199684920887849630842384288310317053256883013113177105796361653322897145319508971560388897361569707754348269944569346135294844209265065736303289002311505677497926009585111806111826805495084531854891503995949229464648593478430149619712159538181505106426535667456109212697616011738207963469586778319033561825741505191672324239910608930563094101777672017254596966674090904991960453697805387778231836431996382575152567625724125207877581830574678894738570923213439809432665574238098862703091476270265727014427558772220440758308592556861928449624796910154222096774367891319742916371174575022238082049644625393478621442434166596368328492063235930200576283401530285948075881401432801641396958153210190466955426873265994395511095188578149448963523894261976491384364803106423636915860070811279559685396892884622378553596743153352456880546425677335478045330884607068639856250079600326910083278928587323746045157040350118202363291299023475325777574873468517295149538582539345395549684537276858144105510997122959602419815993523391413417585771728869779353884316594171983322108656403276654365105934492697618813914498727964089264487391439780875919328539872626329090474992965160742504365414382465105233110361693332804124574216306672654580096992717102513382027798366190971552048468489547543910998795455937271057840818947143660836526793312687847684558229678527505457472173189600621750720074192434634364308184498194269695399506591029877019402274962016269231997129620925408247200692398374470083718494504049291172857253426809708262396194618332932390207811835058529739643106954224920381018207516427144493996069798623180773896924041754560495767269208980528951356487354391875838177956842824953618165367716484531505980783637777595337829308936049810542838631360672201630167073481319661883964792393412692294822193124612777712275015094259376608413815887631460681453954619766000400413791839222703850531864040695829986767840437377333943691781578555480960320317264540788447652570772926908037736243389082263028321875854411340227432957938601789403422789803083073664928857496383865882786234210628305681977170891739687414983903838048619355733699436604738456597958461772901701938888030894741177960274984291804597247924446757814948375960089675277812736550333366746684866417394409053649203744895517616532786535079288925042039138936506227936128166816318344837637188237234588547541426151303390356829766076606391446178125765803564586645865257353699084377020378878780721765191400914847241672175480703993863771331440016690087157763599919424218536894393770104842674124829139650582866299707642953408693562919415937745586000636854681571773475731937330468032850246064248115022297395905760259756667671461285690136491392597480792966685216010706975717909072425425638836558401276831000064160632906997191080171657039852606982311478005310255008720055546726337824317550118820958245806299436252421376102483762559654976691237009089615695736251766725767496819311410036993072485172164451454714879421983155834685673303212291552930552790761692331948156762731083138372925122850907718042130381554141534749514693427174413789209411651150366720247723636497184719793357428078643114312840078103658285171076777822468260797747813649001590599081639591302391833523855358491625446251871695224027312856301639169775722450142192969241371000405374765895012621445565617012368083411794274715637805097764297975266356503419817363958109794075730272288358653147639006712302580183849162231347289439710115245971083302898856445469648055487136534563149109827246216546869222290168048389978758213026101319547554984099365455793520151825670729912279224056671038418595593808119488261963047590762889602123442393461475300255104823206774576222264478577444507601940951059512258469340195588212778851738346580273395500703000946351810063859094143859569688190200797599941170728816750118985251686906016802562023027959768695116903752475649855304972295066064101277460622966155586954027251344082703279902346077488299787138783182413241017010349085894746542269901386057726484935250357702046974358880334577084276046442718424074714353990350128020092567255234505460449625872129314604795848602450427596337466904502847602643813442928061539320420691394599395866110025158097364004421429307967900917109079080284239980249657958134209692783410332976411359412777178809150590453723114004335984031059755537471304171069399867694485043666001967832594740351746648646749821603897903462728210202448687863710256207957819374884115200717691338166585896425154471512007446613547191494589090862843873138187321092787823881792914715360344192527767014645763485833907306112241155370361488016076389422108486588526339319555313728986499529126620702048729962398126597193271660245258042684238081969479870388761786506940353968348080371744895857824876495977657871957922267526765505482817265526371742537887785323943017793229867430224865352171068185706918242589087076201673276088077150638337313668929937660987637280592451375984211582487324988022467083567018151571295628281466623880350351169202497734057049199774765887572724485980203904199669677803604711242450821536307787839730823776021840329289434445553216578769463914516776013651482338385514422525459041362348359376258574527584766587157256184976204380601564955858150051834669435330984794046475302577936671241125828831873451220813557733195877949757817792755502383000096439219530824574146710765808843081959348989286782118788600874411953190950300092841626063249085271179935122162186364234843071944395973129963677693712850551233916933134560350606380698588276229415127225284823913113873517744724678408926562030455915503559853510355136397368693600357943214137475760028653577255648392374918463874412054606046133846199282921925538453043612760556574689913838768888359617749227460971153897646771376254854214912698765456378794308451305408970996714038482315451736980938685784339750020328289857629683395563305934176290987145207945256074148844731309552602993489265057747135973743146694663131613330152314758877922559412160534543217157330808242085290042475024633545196619590960211490754161406257245520333439837986422068562713390282971831193725375272172018061325181613538482993001103472090406326959522286698450071692670144559416988521513036778926299992109952174456069468440306652926140423190908799488049771906823651796081588643642404633363746520050883269372586455842761403319763032969396557513871001339649646029160667703303550294762092680480957830591785141009913383869704092903270280791135256112277340872543754477311862361334409830521966129671361616531363924616307751011682465393072272992012256778537177357583322484516548404451657035692894035667278341076360112555852480420228304030961931798068388338550389395020308072824713321395054030818275008089587954249409515313750159546182594167279171551486737324545321378459614090014215157612298237231228639613091400277194009232351646620255904499182111674845661590898083084654056005943025218049400296290690609560500577182024819876277766734117539243972262121592084260038488162683111796386212911434782487050302276869166324515749718583532034236494500159594613827183034058219147211067919745626540577151666164941203247502151330950218973336871089802138472655287742497812509208974316916768732694138576009080703399617787778697272101362286810651454438565145857198130752429272539019920776092257779218989904027129929273276111559242224040940079478387694840125017659999744403324282009530662687171378310778233205393291063632886755258131627705105596023530471905223688109531654841666421025128014146365514294593585430003755954698807125343108042794130315293131189262613416594188731996088808265037645231923106768596869772295788304814177784158606727198329416572496512172411281450412152174180481031393836874915782994721473043247306274030763240245250015537133725290686197452122366839570170934289725297220753633154049602017330589960916703694299132016565210063647989956002218473049183309049964225079126098919389122062812282682939473476325398385601818171770581305952866369553658160369807904681595486495996494563649738825258989984067341587313853162057928975957146566453433188834769800695222654360905989135979177521816764284061244959238179879444175651606407227770429580436913161027503899670002879614977796512065710982104843178606713194833605826439368823023286338028512470623030528480195856357680294238892654257543560334285002821217717015984751375880727316769304680085506787117620248582420734738705664254227967630449928634844289836109026981498155506930265799732740118266185057786852604548289447596707384524603320862961240351394230695496344910609135029454288120058480199391472237923374188846171370215347488293229855513574799884323228615345933646984710290556273781000994935461504011426323065249100915830274059867102731017003751253536984183788934103339378436644774015204027643930309280813751523556789636545942997411201655328955045548669822169619539466855144452074080865412081528378003943563880385699889323984044509730047316486804049166191312919771811972855590223805931878178938508035652774109414028486130881352444252491099058252117865382770813067360160046749437434277942235598601116334324173526126369697384421205940430426359842299393994969825257328602658893320943473180127990075989557390617339841921718180836583244464618915885697653874310873415807128682275588243118697850095328030655926481932817722936521980148000876856763513612025459280276243840431927742660846848350924542812842121716495861110577882966637063269906459131353141179231345681997952059204622995618244463223550142950826633209594354704519542850207819072332205755277167179466212625988198620510115520629599289852095282436308535073498562602397724232978982212715055919375028850088145623703144006327240965055607840266964016689526782186015108982950150578280743265666266538358436641239911946579997512407397850639751251014422595597516066327699759447413449692067656023201730186270137125329507218562766060591625440155023524586594731873747865009732268108735594164681173017405743441661372403010487412699267865374570960227347917921045227057437674750491877967054210590474773729517652900276667373574486761576044997169710884610052746477910927503109313349499624122547792433106207964092959916595165212500438636874721649526349110260007904998292696474376123922605384710171391933895301475907453855909139178678352193949689148811633763759143562676401040289150046575263768139669783632205919832092910955860192686716741040864970231818128482501020826168314297470307216344867015108832294698606847463353653372661313584835453882294046247507263591200314998078917974340407582701515995729426539356519502246470852450509863959057907628843122965903575317787996358606053571014378855893244132771736438750276637709950003432099913593561230161042175883233371051821375065247674569452747991387074378303170389857936352252681947244092088683474946648606906090404337481290077872989994599283104784098551899378501214367084489195444211517236829472896916851941426848854777560022801382029245898663614584493863184622404365985566573161945650536106737038845978968121949779371101469548367190193525194403830758284683082967986119109438627212547303677028816335015836640480352043122236645870495167547259214049502171725900580976597168566152113639352548827746747298720413550584710495171609157475986635526372248107229346238295421058412871114468607968482483635868156891056184131261344924877109108564345351574803529225969902337368770554831430339829618216478337573562770209502199543971230022047489199942808770994194943886012844529964501282849860724011650787188258727450408715182330466959980082272455438658757333224419792292334519481812903813514538249725894627317252539915918964377974531428917494250405385500847945913814290187080335643336450536663055654359738183101294815133455369164747218652602208201781268037099964367101436763891478105591413382736930748027004652315747143793242122032214806669415869567537524733870778987546744298018470068876582918780214493815129983216187531017485632927495619293716647524815062123766723989019809703917506796716245554955248424963827584552606241131272592220749878026254762630206873082087094116081216678018047858746283942215375113130762794757074506203865642441707547079505565049639437539977174045169606027865120909402220621617460956680713775882763319887341926968765245448050844593881613056754161575189604297220110477845377442053744276975666363275652243658323294502612859496230838852021825816307750298936723900352635064987867009496330337517476493623916173925402121779951840149540856351846233265473825512280659967950240119967982844096841500954583218191676010946899000092969936005811017596174441155154209227953808743085778041005389706418634090415536797744093637037884084708375100366496215471854614345623773357007939659874122390834945732578428608333671227889639711038796782828568230746547261461933903016950721842695635520255691187556767034129870139111530448098925112229067335076640466151288998844403282437469675888095111235998411635907518450846338216941457995108929847214131810131457710028769193599763489883509179187380583617463824963403807711085485543550605444720649834233121120292929878616078192453676456555272572236783498490038027631180229351428497191506452350877058857742701948393247324300547595032942551969547770113014772698065780171847394904672201116521636871461597313744925274686316227659996497217933513144105067264168406544072210247499887545152833713799513325688461294732575843778257293916351636688362137811420999836214229806612858928199643809331770845876834174392756364896753123432317260878525790366818921972745402043117117403964214143937063854539044945165249410139472316274419697866252912880249458100171711504295787682279532041074311529449140603262210101970045038418745366524097547441668780920815554797066768563066996774617985313156922646408805371893294518234603403616007646754192219078669304029375158860695682076344743963415744815952933825794627994859581591298073545899329429359506125844255459966309537091205266176965848108951533848904689695972268471255428364462540614814776093127827424219641109082959352747700721866418930910161987264273663307350207134734346066796654182059093071401052715554794609276536643583673374747251824669168698354267296093761404214597862173575561087552177210009851131971210224413851503892208803713217429104184842071749530127173402878839090776864152782060460620085817310956814130539063206973295771069999106428269132358561232293411607456412217905265158494311476817412125898407263619342006407851147121750572051473992123809139082114317321779892074024835458815876236345106080292527578804553330017164602075308177697215717540843348108910760930722715293737767974314234269664908358264055139315789481477988227960346043707892608046112797436467269796267299011644546614607935828878550666463992448415633026399367525648358761457408792166004925671464100584381100971147914705061682506801588437523550072242882084982616794637547597755394009726747057003612694279757108115761900769545362549238251949633423396649864457794084897561691420558545950612378751321332756777378597996789918652703228272467457646428688797513209568276137025315344797819994220616070919348837325289482896036821249500962555505027512347599649049978115674886743758303149146292545075367796094130825579386366960802430338014269878516145003783044290619639637539899315608288798950680192483035925192959353181632147307217182337522876031256008949816134024858390782604421489846054891175455963903555114740360882490334763692034528947534091681483950952378501571595840372103763623162043770541774401983980059750431123393268562031817491421083940058105191285147731933009473348703106716176358295094301247543489834184658703662408482112893810822607328928026406955114953101560670401372675318567732826057763208625356546042926487590148988408860695873984815031490840189414734652574505463747370225238803534313263830584959965501180478960351726131316508030201365082814467538199714975530821652316872549366262975222994513463676904273008846216726817164501906281255816647515591485908503705067255793019083744557023366381817456417698221425099561192399011095961442155848383892865433470274624204714506952949338469166817658188125999399150423450984252306081962539616640976165549639363255608232032486169510291049401253419662055140886416735548868776716881753910943522922772941626292552373527765474221149504167392179496807544697325715978745463961979489202312432941198308067915963261053291629628124275874163504772202445538948783443534731920879470655276896031338293742728491730763402420467908850960887091897327320518991502079754699644796665241062183794955055862016736300942921001019585004782339197087809776089696751619632313353680253564273739484528279356335227422738097825866384436876732222827135291159160212133078301125450695135880458908600590078076771721738125222716086403794322717726409360127414503852448120205193550921629938759186376269315600674649831459572251437308606632985923658335155128477797644905809643701364968863528272194191730687439302385936405066623640358877224009219836294843123676513145627824747469612829799952266168786183053381206729597362088296915427808774759759793656977825734420655010333105765548518684922107758054592060074769566507652632004247283621609491561357773168163203236240495352077740333935648450170567087532675975304104418406946511977479178502548208616713127844409144494842463494951055377688458432048494990058417825636390470397910434345094952290699199581333881041766176460191372569634422453122950526554406750747360579838615288827452009496975030834695321842913019295989463552826148145012893094930829311761749117313275637106315299508780083659409679622442468947710764981483531233288580167769540558598698324940515529769171514815438189863432081252570802806749407437247856523784357307066290585066459989570499068203589642073508089916889995311893551939650633885756727831344715801073550249642348362961187589294767500676304877423804848071786899194715066519099728766065983476708726123161355488870614149075964472861418581103965205656988130775148542491254410991086972342173541072982118344773859941544159163065298755194385043485640248409117468249953766548421253906986834783246995649087172583121194520139946504218239847607014255334616527696519729015633182723033488240955416371326363445590455647640346310705706437007245178242380349677967971460769904463309003290345216471719583120545384732606036488303937453271371236645478955902207653975750271622657092448199767870978303649457485198325740101458864479974837217084370714263165737829711472649505961193756333663634883961848371868605109848798099306939957260530134543252215917165180441961319875589037673498256762644310395654923505821193347125573943785187260334214694977928432591451812985942784837921669688210688619057887994186013316209898805018330846133930100134605239817251064079637760293972939020869392823666986512223406584855131526950162575462810184603983348626216633124024740505549538574241223704059718297340190238939390834769924616480904574209091302424239449667705087292810075706104207261305917284744404240617825860890159798532117861643077114049644659932821167600051409295677749835853330152256281073515086046770165827898163942568193223890694426773425042569877798708955224283355837115998664501727085726769262237469855033077060057096523776483823153274101154693290424509442137295373291797244059696199102741249450603631061303782303654704764079805595250602839698932415541177010132623704021068693836856868223339211611920723168060900253243429285488414635531164963968860526139232215493422954983503098858980683232306038981979896145400311792016359556995957736166311626722403884534233442476552555984831365494872004374339271616947259899128731153524890192971973057863833458557052958091969212868780947689339200014402013128531190729822421329236553475330508842144433879327868272388197890224042847931275873348588961027116506554292988157250574503481180935078337089295845498923227894700479778618081082364061329384557895319078864362331505698344891132749065835444215740743638137353352873306216946824873579484653319343478686580991296061965853534481799497633122064647125881666757354038869287793320930833830203924815965704324879823806000656843684306928344499248409966595740437177227044222343499302502439943494626550279441531751351993834119388903432687748934286222053174184638718994192369338924580916710422872375670614082279955388747642843306473528598628452902150752628666774358936862952390003874342867527002773917922512306466048845203064599982862206789765630675509380711553111653465827768708071698737137472668281022483393173507141053344871655474033927916862216975463223462806897289463825139890244518051535958262952972311436357429876531734330232814946803253296813355876796069133733988354425181487836980393952916759813359643084339797526661982006187313202366565294504028924174253772885479769106216464525270856781948032585712359270710617211500020051186689976238677095188386326688224278650768629696354759826140728334573857121708287113009626941058864603797843633140837352996019569930485555622873354609306292658755891343839742351248867775578144200917897660547483274976883759111702405549207725746800913529640762442130780895492797551569434165637117343653801469706629930124159681239414547793166719588545730239843605652412130977036153986688111246044157951945511598265050115561143099156458648688502468696343213541616093184235129664131260741159676504039148812428993256515219428727496670457054756267102980993359467994852246096496631157878978585571512410048619529732470590222321944161761424524884249117909172347720073364212246166227568281470520720444017399310329303021596621124973326539161673572126768716502508131412138793864551915936796717740327936386241325628853509245413949716991674066992501670507043861931771074156080350263930332062531405959141871948376403434062047904359238556941359180900514814179052711010793311421663912430951893198935645862381246079657658782991281482187671747604506332215499438761939408109092081736885485991148990917394798261197267102592307560905708406876582887397676629291790152590451696647165972938110362817040305421293559089925453150607573243940123793967607693100390489900734766968096224537762575349427365549526733809214938598845326593815470195783138870081697034343315207898354741871894929649283104493879200434415632203674551174981871665298620243507502484858379972326635423721160301917073195140573837208758418470935212834027070625463671119365642649987506862559216675287943516679098100703513536064583552975781217968133220190168428249345362453499951580088567695816521901905970232952338180572401800238315997781084448970922297159742991026339242528106856423023888209901721672819898556312226026395441442039747918030873150746691970900174253929776556374335342606067000585502794453939878443788656386280246361066679980022914737333660193565840651117940946462128111428154292099811841233647218640571450595762320267554942005810215045613211903063026139501343267028638535309252079142897741864440115565493348764501680612112953499017152150294986957397823830545313023382762383982408438430704757240994121180384270019348944028368353720974580081133258182858524562048380410428482420265516878510320719523876650220606653940482177004176466696202789499860855535763429816155406466391979134252871488826925903416220506964573692015323041733964082980255455525908782872467138909696316447723034542367464130631591386691325743203268211797240583975970603511484401120063026797644743592319459392589311202905062888945821726772986305830967425131375113552830796212883510945356182310814057176810017523352692721412254463850676105006538815281829140706543463922408417274055866004194443123170463937505223129531354659929349781129335981942554761402393112662237727354251872789817000992057237519382306732920439002398736470859761578637925328577602772848243313493506862466989668840545076946593100566765009989614821452555425950977887753111160650157938077835298665297009118279563458208671740964170356519573980046980308436508153610375313537947904685465005534233404741192445568745379461945789532854971604537676666167446742431237525431810214311930010610162172207697951281761357008548965010384798215894332329439376321034051051977214830800711790627999130846798627520135679544210909237392680876851544240388486614845115026498111445667930880637687930998113795015427220977246228982368940520373493178378694956254700067672633576941743332241799169815801577163369067613144005418469368566780763752679301948566468742278814717195565848490282147611474815063336368234127468078072962273018353152713059145303957899687502973305990305063499271559840174916259689673875361367856357640342812334839676601559774171389729206254178912875081825440246600724344026003615643158900015539554677454462342643992058598313024894605211255421006031796704900071112213099527940428471191680776742921131129561731979679733666143921855354373782274970380793708207848816241496716760118665022615041422864542642470598599070221555466792710012465614047354932494659727264408319508494279011075847473500085372337649938681153997811781187630634976154698325058498878683364914042553603843704156384066729334729080728136198800493943964628641175929549777940930568718838349358040570677425130518972140137089139230453736580038833344476681431895228511440338709297876921793802291882497223055807892713398367892218110815468423437139795628126952483750557164981946033694656016767780252277613186007931706272100181315161833504052705885256045530448784666286958699691095679730774449098231608090322694403336257459882284887641901710188286258367838394594384801587493671310698227154164630532514444656956091880301643681840697946443600043932917211637711596351346241089299956612214138412005733547621172751903485317818503580698014747314216816679774044322897666019543326273156915244085515182111160385148833690358139776771896563436186070209806397688219127661103917718815276759876961538389376419127033266477924047320397178855581171608005938440200031856004020506338083065900246692989640419364819353224632613621119035500350008931744479173837319911648544416074118650777552064497568640431768828150482077675442557596511407437668643416538041909673761519412590354988029220024278052114561562591869240630790279141247574688158604513881413407940478900268984109894186676563995942283453782099294543412921087347753036029999781722350771270633696597874487891030932302494619505251026786804248000939459187220083010883387775209752704616648356735946828858343366060675542823641414735922385733300564790083596056995616577817191064210068441005610449270935273259793358759969723690728266364516143822728350246880935299953238838020249693773340407559987300534816612626225368562598559468896516095472384682671238804153987760387300876700868778266480208641381611305431456454125879421864075123904671334267090990997916933423176084352918912121171490986765489956202782348914754208659501705390145647725543728940606811816008079401705838174821490302814621946622509579170836996758023176701696826461420932056386078079873045339573041210665489024237396323188735053936192821745945256751439956428234809349718085456379120013557384854945987645857864905834442245233865256875007281318275276606825532296085656445585268869681384190837579268976444406426376026689954535499820798118935250752268654953636625406277610330279856417127157862591161077283859999555091614265131756777403442981283403308346783515998376852157833611745664114733276963248006398512595659090602219709570646524421946708941803310897597702129927992030935891321233343005513177047889843037457816973719785378624883084435670214109329386857281617096109984432502924158981127636033099858300787321555527413381701780839165926273655359885480123387784054977359364739168739301829400233299162878742357438258026586182771548766552576193262037004264331371124891672863693158051575815566121820813853935164087444445561304106609957208200423382478714845779184219979498327336831960881839717858094298538065266174078285733145136324415963262022814932723314534201850573573894958032097664511281196956679027362191249679921637541924581448361996651230875430344692286322174693446990679871029034839227223441663830854149642475205259210784959326988143410030249423962878080602845714476103227774368980037862088324750649214453241323288704418244541966305251532880742027698079758138193244347585787557458813161424029147590585498418406568299623880068613231424470676836696895316376915219563907819281387110847262085194374607327114204526323770535301972189815913615698220084664349269652832590832344150400277289989618674714599267607442247051326510276531972852487768451138614694420708610669109566918129097548395093880644158737646877514378331258351709469620128271244575325742309982192470688732311875582844987004991799618763590451129573395096814340856113407363381603736027776035624455092288347296749174993258019325170246741431244730120778342377645594749461450362528075340804694090198448035206586599685999511099542032961559053041434679489980656184427657276252081271088365302303109394125488218849611243729062259658051116288082322653921799777608190506691235259762974147943474219775285062567222249670650737047549837203664165283784958841294257424643548110841637679973582374818908134826483002939524016509952369359832098078672946495564113164394380071072872157346697496523163118763808203881039113159232509576504958847743625146351676078617690829315052522390153081474520278259765956419258669519601072718332071463244546252787020273479699463484736578601881154950742077780942451087668764214418680766813739190885779455562429079506737495958720768483417213820655492380487545427413606623812132284219268438773589501746613862185753822738372877425251988864806992796965784429737660330467067581611836810385569869809485817354079339227240246718269678284927582029916746488893558754443897996888300590690205216295255142001208671782474676922365032257007132899415468175436206613725064938233256914168076348575801111942536599430270757417917503673697873624868340469018363428399436094121984197179460033776665344540250663166158330732897858060895075973781816660671107447501718250762360519098602416623780801761498745371981064273593334552711529848073931008980018832466771905360433981169307343125172639449950421280044432282168032172044966231106787325223310898911766929922939880829942668815542903018998077440146618061026096486250134008860548418142841724559929336002238858302882481494598913191662714115790928713548459855857863286127442471178486574514040767156023818544054641259184545143416735343681076760998989562553478868624702013750814871371420503291018137822793085863746524794572217777632300609232882278609211171726382466307460849768450794079369664825538200511596337951139334627159994045030975074805839763187284400190921793134492912520590970754722337978957542351697206843856686784951455187334613337632483480663209568809136526901840791419742000207623544664332571750900541848390920760201338301448290006331866509297343698653917600126673833822497129352181018882519112368051361102190692792836933985929442760246170322182035422536276110049167194892265675656855666642531806414090995617845048906808499226369102786530294827233031404016603709014916152948367648305799265829738377994371155708716191407027713718143264437389853699092276163635340255510631987985561158724799598773997208824141435157917553164889952984565507536224698191523396809761350980079966481555300879681629520499887350198111218801402494229081601263949725312012438669037940455693229597368484762202500959024323669537549887649706909369844044058139799698779918777984875905206841751842761345045189446785487711665810442200506824926096166859752941910954564909759032544497777941400258216888113248256654857666402542872351953192552811790135788335532911061244158676921560723801595869667733045235979524768986710882489358563854122589735660553238015936937506568221999597713015941884234723549398098218568418032200960805180236322983822393817368175615674118772817900312382774279180604631858058577619954668318028393385174642536592425471221120766636161823882097496374846083485191960722566687629661340536944533944603485964887867932587845781825361544197237738598856782718058276927220609406840175157034412637234969649410225716298886859767114071015091239302948227449028290142524488294058382168976621986032930951915954991177421046083133133112784612506209798961516439950990868944323434110026007267947635503527298773550340785966050966709501000910075082150961150384346482790104781299516582117829695615235085178742378650458175999984546630810886541378365686588156088599617817716505468136824741681749594930140923619173493900595093977747673137811218469459398027646627112438078896269838371762173165246640696376309863170660030686452875907024413455285190398505841452499955838973826599609534068133084055710148837368591263219756556894860831439646338571029550728994301013895156518312980633195967816702913843641497830776621522996804530199577615160316320435944979225868408418498789065038386872757984202017734111313890487498570821122922203658115768694658396254929328854684512765110770744949232339510937235284902376656478495602609837137981654752297830841745530061173155142760066117912350197633208477202763113070915727959912636722221806633075054881223757780408690305346140731565875550149811517485998832824959334648081956117677192953574846017961056040001685375148074784158408815491388375916950743754059907806485300653365263366138497403054097832154380208940027771379394631020000155238467896865678643259743814523695022573629385774975906817507787103411228065894370504849164176688820059807104988275939965600008668142160353048176638336229363885634114124081771546490299250131072885479768513823776031119655645488353755209084577291422299505573662535480438487183436283015919503011202474704964660675535794935071950750363264119738491343852544175837402849114009990131209366286757482254780671411153518960201783385840278022233386747820007830722647897614071670816558680473254866128519755784504079491570608472720051046445636144416980433553662857764146503192734408574583341367297060734760003558608733918491854248749282830246678097083259551536046781021129207246597143402520683057566965608311982751520792068705366317501187418315413239458264284701486587124029693976431450873323130482887928483762096007998105600596932249537400731615370989799412796630472921277608087930337550121281865585018904543306704761535392102031210168090029089913250737336600322589592985529902495479635436343634036312470477069009122980352701275938997838382683788624206246013365506527651800190816693365088738615654489517858545558833970624165588415465039844912636112450142474879267149170406262705121470072887009452537224591674146070715484189577926671808555993483544291644652528067605379805438425471592531157407104962464740896646669778706309925835096311343583354831368436273398227968831547879932146511499387773416214192337073345879322273635524852121496000753626271915657794711229630566154514270901250022995775795373865326136770137068946216919811745121460081709510498256468655144530213460254007705422454576089756125985136083014974364717358338908796748778565591595559174135151165133262436559399078869320224479764304501623389498015783783900183510109204026571275027741115885714851269858698144824774953148318185567059956416860717975790180266614756454629693122321272396058118582731551675059152202794662141097940904293712224755793070241820841745060238327128756314407402985418292081246160709926100883166210044763082565965202179303562909053482058694076851986233937327639111397914605788335905657573859232034090251429638919361980272768050874604840163553184012961400687468513039646169675818880686560685275072555314632365191598475648958407024279659190989632599721922844086883963116640091828649897383870712227840909508875755885884559056583882650595224731157722187297262139384510901061096537350359115831660994792446344607976338178006660827795211373454504761467218203504292505382483080435076293205678558027296339418659111129435220672667963052325857800004789779171236137133917079727807278584386683088277389103342078555940914563376401529536163039415009064023592108828455297723612063519597713970662468345381041735436919223837655197190552932970979438445230993718626883668429480080107794163942893243347656517436101677495728291662718975539027178871592785333894629040642297618932798262843557096188218559243179778888011777809376774993144933113027148062302155673607552529065093898818996636507187704786882171237379529732980624671655324760032852730761372506602488363090026031124755274072320407982909188898675324698912841313590196683082595963847008822641116564056077922281554487736118712480245402953227381741661869904473565928467397245215602402374191782148638423985484362345701662348078935304962227878157879666991779892043591697831746124540880870857471773326757116095833620121891124355645680333175055828780420468603000342467691682660906364999261605193071150595262947354986309918046401990725672585881495142168309606794296732293139179120373338713168187829633370555715679599846050469653291016252188122371865927041534089195638191516826028437270931758649060106954864131461481515750526046509941964291661500083421599218958825163443485547764239243251135636627896206463152039700786135080109879674768793527887845180250713531847430577628287530909783695590932212726421351950961473858439457228463605598107974518502424089677176803321276206614196510996230451693400320641540456548022440035662596510380051096145392855793845895853788907797096601924320605836093518845477003887528742275249907001299838759153716876829930341581979378657815071971076184016737848761001733434440086601695093640285901157266558433032542634578735515653267255245298453754987213282394343420788497256502340649801160912981978561011967602526592309666289374272484620357458109077847539314577953707702317177473519207275233375294510470925379664982910974688375228055271962763697081481370078025017043343283351376849734239944368462948632813750447952463141819736421347411388359795414292068638825643114144582561139017702418888220019128718815593974710383273175787817686011778429348326839050175667150438687384283519046240501421832264772718868151778618714381496255419647029554506471497472635887385655095345957846784877465558576231188561164668943164611713254512697489390510492824249363787056523992124621324280500647520411789935701855611294121435467561799956951751826735050785175615052932307921378922718967135696270103250621707898136585290225300230870543252924833699369541692822728640462427188905122266009109762322889969452879090627945531470370156949297409374223442497414683734790534189923183146829618666477200707329683014231352097881615553465079592606652153152089442335131892920539195418257464270119213415256080843613092912177969588528424883660874412964693369690632283687605536931802620422477787456368351874533024046108198815777530201267337807768064010014657437180983036675258012685944792366685005133345408485822650140003339216067974487958854806887067564904272125983674446654994060211491620688400063318915963532105450924319631928036512807738668575898421188964395572582465857566598031403908064932475403561466536859937085760567250408470759481813437470977282958099083487560141636221275183904033586739082334152878164333191801121812005565157328749988266359628807635252281085701272061028337618676431789399348220589668564853773138047689608934772567385324903137935136910984168544949661102581874228743242119190153764871253617108084202296314897457300199160186302498216462689645098318647973493875945589055042055863195124619849318533456152131658860728049992108370482508589454360179731432666061827405345046613252523121640327482257171614981911893845463089872613183331938579145641477877753934150123419177742330896318080834403454262419310922233767515526557714631648297431104372205167687782992846266805016416046288037358231524863304599401882370764466870562116112690471453695464138569685192052721087884896663084035994279530495739920778743763136864505140281458052123543309904045982377475794849726299583591059336797187845743045329051527958631933326322778517897798164905372198385575367731043232422055835322959053170653822928055190292769261425821453484897608214170442054683062477744897130168629590220733944958290745964542503237856298801050453070081538873805344856975030309194935877820320167357478388089268058550175565678244566080190336198805087532437667277349116296590937173504001682605042044421367949379757023294148400495104859561606811332227273671794629337447478651671957832971278791140600874354539676314520844577700201629094486261521994806309573650017460028118116867587091021770577179370854710585142403319156133884653915765780809738286963659837103403775108487182772049949567378569269320099289591149805835502800068011586463511434399425140477956507508350189596975749759583678750659908242296964783957375613702729155854797486785414970349468214205043343348761436540909331358398558783339153876302386744158967848949545902506117323874777849666908208157441388168500448263600216908228752498698208413714115228777054237816160659160691634154652734857787142717777860183566534796798390424884011552709576704883091834330792213844887896180140312612028591723737663694623829012639083935658609752069126104042145756104590920708603786379908411533496087229410363046624087569909724946311715153909243891502630018694544446390160374475076176607222740502407428588881774492517788803529631878656312047124486401367138693538425554818046486948136061550087895818787765714471996656097226014589894242007549360878355721762774882319915098273843703019385765443137026248687073440734899156630561068640668524741971915486863774667507356410358724664002813926470980311171249002806420662808021259000596829372431008518239647445246112766925397930476400655548826159152531573305095270513234344419776408847776176852686534010293673487035293517412747542140840731531115009958955569161626195056816244810824083539540755778287933159381206592083866299347791099201011471106353332432420628736498306998669600817928387212275088718159488229176976017985836498710673309645557708743339682712333985642732682575926710503154906332257882013376017959258328920842493698527189497042718163025686843891477318934662017756961019948028777036552105331534269922512700817237139022968012348884078748519331769434917030812153205607049578735662096108432058801687795232849420928058169719257708124614640728635581491149867733626899990673459830223111021930586414878366602703349296512798061412267393021966073695401904993853243882075865368926126270493549302279059265494314774756114783092605422828292490801689260579381132257610408282128451693153771641881740592202830172613152559080071812913330658190970962097409988299260498134376584216070034731633750455107912495949051768344510399222620039599449135550496546713530087537256868995547915993250619907540349783435483180930753889493249812170072047414873703751686002410159082616699585038949314080921634374308565935674504457658347443852243373393665373682254246252978877032631136090743952677104870230596642250767980060829452651660406427151623625276327302802287471123564053054631917651706466458907448581122640339129817673570327986950652867779296229561377024947566918741779627193141025323791198076268787513160580521475920177975743891366116423499698330745318378294916915612597765374149600137985528398274956605798788579462451220578168891691829140004535679932755602906439943078439709074522872017518068784250449140063267714628602354196228538649271559387551751705179676752141985635341931082985270912847851603416421463159596559724154211868026581091356899146159989897824708076800052499393489941885553660190549946681912365085379367333465949125833839308615318446002435553197571182545391228801572302780218001695464130459161092745083168759230155251717938801412158628379363973716073808111788793929920353161341570142749633773825808646845873784317052537575916857614299822879948976335481822258366236244811778836221291775084425834458000934229106740422806638514084411326202597193266654091969203702619244779504623614984314403688781944374641953318655943431539160368471850076797297540741697483491666181826382061153657147705142388169782486373096042421381174288422679639066832224785332039873045767378192789192582076654631127200965330253343180791466074832655843309885502247350669369897618498787225872030906993477433069337585279379241494566094112772912297148387614090425661775538336184299571179696132909733876402916708948089717775502432063647055240005572733299744877041816306347502325924806644132036951932491120452011490610528395815129982907679787999333951121995747250468804136745423330473929906240306082228943160932267915999441296257258703190882621175190122225318406175940857939261231638353692974547215360863745024865448644473600573143078773790331067071041379762628429597910374242861717457584743192332481092959985858447190005035750958643180376530775571129873424841188522309684145784603125798192324505704080678891901311805856295393268380475950931692802623983585474897488563491307672655519406724299731929884357520995525540120348859857004088225395139601532737059366654875230352106464706007837617410351395566263664285926106504133904990675539124796871069388111589505819554806889957585545784382615042624722016703168580435180268981259741133265848484426873269758448358130400023301907674208187590574279284033096221326411147664328020015851379396904186145431645174350451574888639042642393289215391180932751370370813873824630645960673710605931522881634355710505713729714790283408604689652269068886924139949058356637410749384219551647749867393721136401874950749672707456482131842022461996812357804163041393011943589146321221651614044846232541647145721432197402178981895585502482397157898172315325642415918061085702066654852245991909483010273812585938074324046388202946230391840281393634261347443912002175069640962286436789979626552156641628895756953874639362143048692410764769456637919532215252539866606830087825817537001123938342758672650994499724687762539573473033993547466447314208648986035303622764993571080445727249242120181756636824023315425185343141753670714737360995108618236755912925589777867616316184620534088478116209586147384552210465532557866821893109373929748893127115095426543998096650695836612341084800535575392099288415594937230345914154411415517548652839987622110976757250044467026132430918373652710975388449706954258338405394995962951794496830287447330111459301503777320166061513564717147892544310498445059245253345284392474665292115026618805086571449727014518544784581414929964353156787128166934343733653415794494954187733982206865029864217651372211799866177598013409973641702305321410226399482355714138782683508498416775678310963599290064896465575673763228497118350310172317924596033216021177855430314908013806854614897110565273594331482047703422338090025676358729210490907701600803935751786511811295312245139936862259534951099724751748159768637032717219203535655152584885392169907083423117280416448375950634943111886546479738665982583942420650832115352202670599327331158424522684562188592607349948413476368782897633728867007975864659147652195517849696930131549093994730768189319841917090596827058656500985514026419493258280821782033459063634447414770742011388629582813249621579756422206040240244844920333342925079841110833461661755172596877156722190126048539794132849873800338757216458725243143268685442187719034994390165576104368726178906175083188508651160872756174900418993496778719444272198102671194922460197408713473292753991305787847532644944069903760204769802879653090963558781207281608388365990509842421670691254311194123303758159325467859293957398615877504835013188879403139034134308312028910484105087990118289246836680296536487602950997038195482681453019659013091402820326903895040559893965799644653885596122428034932844924665751765003110814382302299394705993064245058143735958583584143781584074530671938543193991099812045257002530555399162911210744992254214168143461246810749040560748385246134735541335819999191344370237628702913475823667089129613865500236110766682015853490644179653600642111198077202332343394715547217088011928684954449377456572665994826311711272751221109613830236934542972095830665320543533712031461788492184115542545480766658396687330561608198221664399991299763779210711178631079028969002991967348461672626202611595233656069506025044199044279891085773675817546137652307439025760842399362359685022905069843340070912044746291293081037784018579845786843396717975220833216545336287714486971389366763462566272760272060427149102775560231548664912058142132258921400451198327672824234708949233625071455817306509609798955927994469732862947436479969091037492801711347780360109564376035359995127847866872039636132175231647295862385131184763787804353534764277711302813772068698370292483717044500872984306641066477405586987599680189801281272485361954136209184517956161392687630257768765680528073937941321710701012194240711641000701542666599301501046282957773537706774943010464329464536927825603384420050895597516745070186207109739262195603366480045861939062936999281556134447291608259770161918739361675852317355217537265516345055081822541254767776999489292612358739997773575360980123119965313747489904977491139443398104038035616352466506611582901805780400090705256240632445899675692880957341433992462349795025621048023117262947651794637397166875027566740576910161521824902716817667893562571817860875230212645433143141531415479686588851883443129314329435602785500453371783138292462968442948075190673507818471468495144772482945447606376542146684293868938043285376900348336070089241360926653907182933100477717499303567590402724507049559096814065541496864173956882175319156433951608835879857320610694739236320588316854036427456874381697112604045707419643640216375989943496506631633522076564780504143386857580869383944394954250008626201065572566588960464970167300460835137989465894720209518974912907082347311598232204428940098076394196521592832399211606435864736793357373974123566442064297817781988977003943781890592650606313760343001644759920384330094584407688051080261706288755623448705040270240414803725803634750322136053463507512287417671241245474386226538189349761345011984624601134209348476075117853936348457795166497641494220991086516950196250179072176373885283895110600927034210716614551839563515199774059746106464143956903827857633785113087843072841611898637640569456260885220368403797585766326711903680066440775408353157388180743382714702677143508925664215898957141754409649685317968168755916000868377276536700366611210414478194455793260948055974925544830349883163369123255306414697933719478263599926105208707861492074915850985824071984148142601721054550412282236639042225840177348130734856235310667133112377631440063743522294536659806015857519748973030431143938232071020887924212938245883831730828429970161626403860727608888850986430298438456092328882352869300540265837876001957987832773742126506141020377113974118946218803350686506112134406753627173371498473485603760179458729667362155462710615030513651534515961134029515437875763159794300301153586695071016202098016043078113764213090024423416207892801505844981863153371827458903270751592475118986872140975444387007686161690948039712284792133860045258021695996147662960530133536941750555842245384335282188753994639023960286610332633380822937893189516573211415983253521549370085539437755783585055365189597892354523376297315970042687556687354635685495991617262643127676702097909134038057096610856168708992820030589726561937051901271744423953898723116643143274462768226669365799466933099703280364334539265173134261814349206974118482221883863512982927320843060277325984066424647663155463754334604331840638547058248523487742050483912462303548592804620002754502651724020051417976680277254631059163190833803531191650662960495339081415311410736817861776681540321903851417583934458178496654189566097166497746357611749609302941052883166950006942923833272281073698754314427806758076470490739498042252537045034591351295898297159669366918230825890828673047548683617169053155241312117796535617298039276523287926181429928140990648150846003640991407325626209727300333382585161208908178172000373274700341237469980542273433302212409875962826256515628071035622926139165581846487918041237343697492538180212214685726267242233727767440940615870811592007546943035457300051301187297664291269865575405273362897046942007648309758473396763776740205025952521610854717417262807850378416575490111471043765217510341287299457886152649946628022520576751026027772765094822300952796455104475504927477008619382858573817959301941533632472234863564167231686583798667775046258052501798058990511524730533672699321942510065920287996063250779359936792251432480407713882460963725832821743340667093840631658831424607595723486189809442529045495581674157375051893680397028473162871295227490656896211478621823988702232902067078063028286864969624921049530773771508118279821153595128039283763587694167691222729439698369066583026551537654729332935360718179371090427213185330447446539677218562205926296611151361985244296382858986362140540628595473192867333540951732941457712143949945268097579607379871291100676832016549793188456824064919872695588202024262967051000428395748912965103913408045924578096547477705135798971050470076323348335761804142975908112920990122746633391970000966458029412854049647293198931846196502546459987786598568976376336005352915902523538891418228294719070267825077379511777955584243397593888585067070611834344474856608908540772473394983720943238168958994240166753728181708326553757434531759855183163407274156947759743583534905095783646261825857473316005695773019298438588437571249934070548378204417064454445049964645251866994394785181985689417196869364810183603089591494838842716937049128916226855355425813572897251966814372114897223822638184483983255159565330377374114909924700587148633813939496918660608986842396339154284933264565115784886904063896535927360667571062250329689279790870285474497614434193153916471332841231385499470638086590842227238007025572561862176121482956243724815582951822145348949391156979736649241041828754175455783979411982033529687184520793953255413190131934240258305060891965245300368453018024622740249993170569245939287631723824732221303792531578751762912923076566844447548041690923218451953833283429133569566645545182376996093458193781526786429130141765976105933469031402636754336919781281845354843814830806263591992073154831128900538272176541643876317595370259309116157457845249853100383413943656531630633779790471737289311084680669122450545021046300617248283009217766870462077270211954931506831331303850043240155890765818509662289497764879125842369544740145796915696174345986337072315248931252741765667724808129576216188894144695518821026205725062941759061873862396249954394377063458611186830995845118207587626407852167853107002225260817875858128008359025996353180074405182288438022865099036478650500105281079297401871158088039151080912067963837363196268165687384133509939661476519385957106221444898448473365628310910985132052618180381082112376028403032380961391047617839457683451287902742283444663609472672437084989850798752729487421947179512532415280894941858432812042877147469279953635131859847401021190950492125023852300807678875908542055604380102351033693940971397950937120803892740338780242438775198402428080657034790684611101799224859986697707472715258401049652651719940144386673883717461990216328996391879983143431170534662938131677705151594396918119190311863028089647236162094081285631987562332789892755347922055138518967867770123849277452381982849394064365649460988603537607161473409677254805869109561212732396672955131695678272782755220339979541838511520547348531531587942591923693493909794424492202706994241177961427146252112302817442501356916834199519903827927174454119608482388846651011436297220472722983386772836071964827479670190511449753633422559201999456308266153570751397814445482607374786827936388901663159000892239995228224250877568822056115340088945356796794013640613726251674973610365976116875962535208667598834211385570364758758737286815564318945790759839329138998953113824667716861220169144242739233743231375669524171861399617077422573061090953870012525903359066740471510502486904504835249312349830204824522386259418066883276770595633920131932218070518844515343911476771262535094907727917885917046886390183144590785507513687025750875248814450651903680181631764056506694164765070481054292713171522166602587568040941479884385604381038981170057882594479032634223284275644519951129183107309018353317919461800689211733382974995806203039151738738785359878327712208184853130235504850152483653918813912356153126338101298741822790412625598468862758434807472664515763792350116581041201900864708169100721204845175668099835439163472694290327171578663679674504170615838988803933639775453054640856878304090814817757624538789938433024023137024926496394897414761581557245804269494305170195989136671369135217227419763446287300910915900693090512732457919488218305163347128732086842206589480668695045704066975413066964672485278690584224535965447271563846243878737115666165766283595367289869824941978021129288063708881931724185714744583131073912069735604125936225654872796339738033800430937638604145500488459920572809634190414095786017867997254664263963073470964920294412066500306322707657069650353712561057763214991213364373164061311462067794263432141424248540071911682855779968991406892250238721462478037080012289379884725387331050945612940112771390288446539493453182185497290622156192837362097867735107283048808285646220551627618730132484996771042723485138270742190541231737795680816362522499201716948110191703463791346052028343318903295409232804877719576220770639724035694699925189345004725596467348845067989622216065718666955952133267976122029532418783540329393162486187591547775026166115749714684591251305671370464527605689406022086769727188313828524437951564737570541806000530728276448154012301914186026730398480637604846168372038899959378379908851044881405934447088799724044093668071874197780893716921774391815470026097809629783038633766279823335398532761565757711589506676536662177163249731297733275064685455087302089299261879766194363296586893061511162259746879250881332927941122370015380772716228623378966658805949683004402417672924221724397515929972819712323028188560453326280056707882441117313316156556948508985192079514803110010008335602714929073745465489755197492831103698816595199030316933402833175665081625409782404338162861809080089305981372694113941137415643677479764264728489770446207675998669150258260426375125438010409854445781938454139910115665937832699161732805892199468807389960007930970004674902410337304668504458392802090078577784476199302247607965483372085829649282809445958901686799435466516329063559922284796001052878576655458916700148398698423837203620723926015479977199122937437065252330643826682128030346422583131255375252726860168759728411172010659372508839919503505725963404979375667680046568081086163709776571983160007460725942694279429753979456170805340712314170380965743548190057334455940350472821818551262502046025444005287134224389978080472009220036341495606636052099153011070066727750408046310933902140249986596984592710498160817062730798651419125869602896631208203385784587675695946739026730199848922311310430360073511851580347422828723758844316998696967127242467834512345972725317425752539237834864718776452343596723819163908605627225695791665700360551249506322523966644902011469444179162700324180538376201061012405981069473279122536443390024093661596731601320715978825006849999688765448633755589289572431339407525924926042536875297210427204488019920404761426166979844929356702328743484365777534612401202638484507026195610414545023357390861517790209984104060834848217882686854389324724137381222104105394115635956446743416485199594731559147929220431131367990567832846942365537204264619739142809463289289027252169890609590706476198354278753205381985647179594069690753019459057872175134810736242992048489226950029815275142948252716832225514206065064526756910498516755569410857648531539284588531452827095739911472667061674052200450836318917061676234101136078810227250535147919717340689359422053641890333879782713396999785820947913731285107763952188695877657782798451717147547689159477265431138020945766827141183874685263396904090368728888165693670174523243382713385293487716348677976077339859758272397234437944736593696470709864632896212831628977154490725500628075802139023624401344560309789208882630247300884842269655008256505623914279509088724265605201630310044460434807498243101991274340376610679778530204032664591941928191980599839304551053465135557040062349610850236776209584542920694816101801163420972161971940136398445776775742857171200007590763324072866165863355419247089400325658431286369673904107290016292542232039864480331300005361302808126441760191126130471955724061213246251723938959999131847728550497166376946541071338438830395517677789443403883608970347276726323918162197507146606347464885756457838462030196055842865774499823630561441132070102586876133115661462811201033186654883732484550578547824622461381515635461603167493139772378119996010763452452463774801936173474829782719110437308888522664513451576549231151337220392990820784339228050226112789172076456324252328718875975985275778862139074425539406283341943921462588879137781691420127876463997566613166604501470440165802396508193975912654473316087573115199322456335020525575131543053727792870067366557247835010140059564069633463072703007305828990992423232403987547453654808888359828370185556327134319686491556809070427001649990796947373751650152020710746684404017036276599468585684670820328802035029725788636419237000800159223862124959587942626595643268207664002986981264541691710390213433493218804166252651193062135687837092526044240278280914675704413767471454195723840297490213547963752464469672810514624366446584718133042416006620996654606540010747462212801497318343118885209804916398845241029980675332799912861593362015299428851676170162036562179906812437654551890658289233548962920447497780572739496915958094915541733498705157253389745121779175886091623905785130705058079739279992696340767548615745760064559100996370645451530615179828513274203702759206743726789613469967864929327539530706991663099511457488544472383667926381917548443416786821225252126871565355236546350244501291272891369695120192595972590390220745879209251283618681640561358662615986655257402031126178239449666934431172262643034773409254728967920851057443797911002136211029470570366380857325438616697294322793611730812781629380314815742493837771239240007579189380095705406042092801210267725195969177394121965108862666007337573221108075908223311319185031374088042749444813633764462048003301553795074264225298941923026694098994349603479515718814858655266382558320556002095720569344904123764797987301566556453666074154499782028844581772904733208105102121245122658644957538903885646743415936927793544197834221343740872514140306742172387300338974256961215857366292437922474969446397293945142420735753765169721283690106113244919681351757124693466844629737438914047323281384146802573390573794539107982368017648794517926133710690290533372918897435687054749379605937468025294961792616814834306980143915889513304852848020575339470106110693218701503736538180412882387099885228066584672001555374667208793426003028744566328609898109562219823158415278135160655816139278927393296535979093510020549982898377941314145369004000550965057654910089103035215386474300983946705611435066455896390917235465732058790495694982568638591208902275958030217624475926057345898636107310261558561740163024051719363650464755336337402583355307642930587409235942766547741665577488881254462392390166319118772046388204358911102065385853493709555077592586024949052294209545753640246959942110846727447353447409509402199361731070225277972543559072343137538704094435806377467869118305965334042517190159152646896292540919548848638389678922855717540396779952885177313882050330990927561233446786265389114097663050064934739358991080329294599896432792624841321740876984419961018378700448756201380666370073598242815680228392631707735779255124446042431244698368237897219131579344914152309112383436336220400281655341349594731683774040897561543708689504893246468725783191683789674696143819007706749597333017711687297201889522796607224840418663524103546812924846987035492904693910641704348151293300449854964641370856947178047803433201860825135936052118938312731094057867044016798617998540231089100284921481255418237016806906503012535333006156703247269805261823371826347651960401534252793035018017704795847109602987860531581129335484327692323966673031763367762894801947829389904810982434408742635245557978248155286244603078038159822167680386352387331375344535512244799166462562784778172876668030057709153826818673082113322556351174590875191155769134063352392767066231781413945676428686758188615695812208628543546544154479945244755735237638038547497454142091383009813510239717016070221824956494096846534570342113135212008546770800511936867927432879830270868906665199347701580924356978541618232836099512966977943827901325055139240926121369344468763850624908656281223773170181184108835906131319163189414809984283399729670240750259795547338473720561523385758113365481179465638395095079646472740393036846288385584939214196801238900394576610961069354195879669230131529885818603574929424779569627762708059111008141596717417911041514311261717716643267998878151447993864625798277821335628322320870354045120680943292060698806167025312015621294778273596364660564637452243662913081302900155381585361749447236171702870660234716227024280175142745237108630248382951174469533798349808967472059359623627941810192017655705686447829795488965576710192110856970227182563673867837292651142477726170626615203544122255313977934766221312778965158125174350300793731538847573338703731005441667016307286795206578120100861666223695347728230634117284964880060082973752979564307583107546277785258224968151723467552392482512045121175445842825902165904885231566138837222427378705406554356962294485279347221830360260342936919361727726453882450916287807565095502314740291891234853397072569946858847855701842589898238693030744218086723781421057340396058549523420006405758006213591992512355614202692582594261263604709308095054931913980203770642994419132089931878469139429320012825236163742480025998415647363842823904759307780079978318001156800343660485443715661642784702465594395037251897676959625438072957501269025478579108593255567087612931829207182375930010739124842467425143578618206204957462505958501033980769531418467577015199297181497787370627766122383308612882228184381130786216543520250120252843914082624153228650501835482265260033320198814389423992367895986317952698004385807547771618746447529949203223519422009986661627410256770647853693757969726336742174422320432962428761823929285024394111559988408934613735869275569260686453702495582813983903103146814022186194629837541610545603203947422845774958263363649118367805028600341473323869594586025911503420063768704238039135747744305603500018189472208765558198054155170682396557518573599892099013435542266715600452659812268782538496574233550579889627073369540937749824711160703594313959511480920127765209645821021076032287894313906485909688984928629607341408007131644199672474142270025104520527496550821073014468514373258933188594358621620015892830209826785973387416161073264953721945939674333815775585145113991775828539231104648430063225987301233698353118407005886122326987139506463604080263913531725255736787838881498553757676938639717504897598511742567916707922286669814216327197552319586125764161087998736514213432510158818395655430330311465781389845530025173587244262117893866745318858405433982431549534828033793422090882185313755993930124832739202140154244916095307539235649651798447131262700834306131871489046807200382574445956441591168088320221775507795333375037100031897416173705244764511584761338553833588918771735629306205462716148974483179727463796476499150301880880818788763940259239625755744704259755545208940075976991849539127567416731637178045589447495758171464026288090312735560591084744105645791290192442802704114339180874844778762601759891299283564852264080577008043583064238354105248453869822792062857523097679750428632695563360433089760293736994314528652063195451399209584607512452937724546423587945216772006173472710421668998780969257648050414919744467955786894166209788561526377769608356211324317153282513208459440760345037305326681823433033991418134911343422524561782922213229537177540165334453646418053907438198559867363427623175786817791537378457648462128555588490242645491744677214263287184710892381874231923606952309123072895021879349782315702972669976798989147789648279261959370752111398985453638454219913376602857205881260968708290236053987820591537463111670782497606373640338438738314041681292304820545838408406767028957057791072536828573840783122698750974568984347939531715542804098940186170002282948213937403208510035419830654654964224957340634228515449685403016946240130115297549553200582136244912757209347311919026598188824191401078382358835808390477631709251274241618390105371976690299588706800217881913663975159427779704025144779521904447884233271610118892448722381155410123390094127520680639335087099525260286997603619072235103103091797125104048213271192745021450947443153846314655384714097747477943533824436338234725396414634237538742907803799700712667790030660322012159342788389392623227169450960169499141709148564761158810296385581363574321747847310389697740959078848121992772675600944960266692885352875599371453529512470791116682578533853540823056723489697466318483108815863500895780080610217149848700331275704292712034962584471996428991734052718257133247370650558658484396502494347926597867707965962772968359458457550016470777319923614753577906331087993541984501976659085176216112917103651957945426048666412957399458106473133891130526664016639455252666955589293706765261458267286742649018364440598724878133219259035085924829767928368567449484609775373141249194996795723512924788661804345543170760750813075781056711839976204151451314172100394759259343804770076031090500896493972301675386747874114855367309180396856459546259511899933995984501999571928204424993420903653595409163058127165158907029236695275352091923506453103234173299053317832529830118489843074821062491141868803584956480646676319409292689930058938926031872631563443073555718175810717214219305428504383973014516682638920778423119575622471575854356691391052792057534733688567244196730431468793626595670360226208840811573332029830362170346173954962035879636450971609875971664047632519195558206730486659707298739477461585718548278760670842498294777204503494310209048048298968507864581571797496521112697362584257256829903714323232127826161505331403108235236948302491933287421945185394626881450906136945403174483691265378581815581310627531134356657252675701945438402247019198508360713482243928616779087647433660611165067825455411148738654769206989191324035430333089817624682178781315784602852872005105364538122418395387677213265898565645813783583069437378227173083150587129253886847742495879126682333437570442765300334202625010463341400791540815426657142188759192412542863670492004376857302474907373937359580692281530420630222566214915197836893285105648487027060282760527623561316530157173854570150479967677513096501820788659927088188944100516675834367379549674152266087163998625741276552066912568921233675464234134154934103605759579525744245691678954966867122650961840206559470971002752495797743081782201835791944195865941581092278727853219105105998880008923697376215866601995658836441538461493365194040297964776431143045327941119027638259504675533158280584784272021015185618880197169472089056863587039875369458934330390777118791942652312140982119299864803114577613384895092420929928997502759559506146051657539812944552247775572163388578017652749164110036352569761661116071593142474954961540124511739501977139796080052083064710906188842684091315075531506748943246440338030719295718617979259059532616942210203518943090915382490574422722345247281137232532723704837464690956938728022532582414480483159834959105176073209222142655196800013804991320886983249139965272255061999649237261447116915641989726517992944336972564631097691363362254826678514033762782747829481903746928036596266596552391566041818985869293286060517963093115402343104123583660217356337515131934609734077609194425541545240514518091712604769368471853141218569231997337604304352537883532573379696937645354854980113372102690252038800996670252774879514124565023774956631563945854561844759025708271637872678421590862028284377146162532209781532666974067230229243150269777628182954052040054803885636671329228206017394216609519669855742801731772254866671278139303014330484476166873507814917725104261662555425863944277772758338260747125993907042580239018830122553157352529143192646870906908459588353408947892903509123032022901995212530252851175078415336389863540974021302170300789443646849993380947420523136396415823506472852815317806592162807265555724444133993558396034285829430536222755634621416410229599228010915232109908204744290643871588091207071989557483319642362278423200883723969860593605887049509693591137715466772818496645186247295649988599790382157801338593351715931053039773687729361065856685807107995457771058892727100387785597132314854158645537905875555668194591163840244305078204788826570271248599196933535074546012578564012899832651088255949131387946187339928257060753696312481175062879641697434484036147229176187784310335770395959265584587476579217408496401897910173106184190084544991258370710449381632037335277175937501991633483559525322774376141171180631211926786917504602809344552312044565732806445774589551465670611223101053317974318907305415020770721603167765117673055738430721442124194720097534567746286791322140618968252783493543819331465340653619874756848379687836943380092665466290338870772706881824006732147433044253759661138209995417663314181671629970061121227345340516873057952694782288839160520277861292823728395541033637283826420953148099322015628988029130693028827754977681970704878388514290613079681760681468260009569579312438959935095104193903828544077133056393391039465804607090711403221149311425279122126007125680951222719890770222453113646633642457807386518210805318230269027055074294187129084312441656610666811074013793590899852140212426096650181267070871993627726289851542343505478094683527935178942444055277900628706954656799135842303620975948037782797306020583936454171585621072999732582159340006583457277094585324975069180414410079201490191619804946778748339333395679947665617839098603925854849789535363537021755592856838272461861750515866437301888426273901058834101303083575301823551696350766011503820136646667180336204885669602856910384564268441837441501336317506130129252334922258201679694418770263681956866337192985700860361862806660983478375868902766255093557227552076992591279111612466372871579890404876145693193056120193808097836526342478201738654380668560211304088163191092936132486786397575517802965150041085761783528904252998945448884893173873928840787430950430119476271010640214004477134615033899040314423059384962712007638163742759151542555900342917326678696288243462613584224404717919519048710593283849863543937954030387567066002956877050252105102831537876286561706166148677023407571534430058065124928595201081874063513818758658400568296292080031594833560324040419230719068994913779278758640151793110637926934623924889161618334231268319305647210337825125139503190549809349360273119424055676988313375772014036768118254662761103280917677231690469251049607686215832091090054602050766973610265217301696963909584893188653457737797409912224685382068599046849699709327450671403318077842019861149126361748240488285602116789887548117753878759520836085716105641965362542871485672247530547877837102375038961362147479015420931605330926223534257749115240037794411426407610188018389933681514411914153840605810809349220145963172737512280027637999201012811773035131077382495137587767106650306202034221064006695657963021713538378445638805978672103324574730735245912999121523907585197443275765830143649110731761983282075801462381909651009291699952107197992832904807277059313261090236393747526428212857223764524165908749931114085470977242575816422377674170368008447226945328778299664631742874261871478151754329100263730364580401870775907133700024981306742722037283857256602603967195183762124846084529266298810237778041070809379648971380823648228015261390143885812428957339495242232531144705454795488460697108233524833618304364219982550397390877284962235687534702551928003608319907123366660998234582002268650901092752946421773769101707974792669900425001390596663239587765534110694794612843051371207991058542985011774471954075818117767462274047474119190814343269593008768862378356172337487296705088866022492821712916705574891237823785632614965125543420862911873908775128741470304459597666464686977777881295950594916606759491132164457523703184693091342363273599932698288456852101524659397523328611096045148342850150321387389254734680716431723230429378505558650325441744402964765864149220908811702038925099777189850292748593038283630859991338137615112053808388536948319519586355362896912716883325443044823434687286286561500648165665444946608100889930769136286430403326382309774720281017418554373979144945190619050344144966138476950673627853804405331541868922769740309083396261162631725832496371476527359415727397260076434086406227707494464509411184806984190295051307383629975562645941307384462860114644737847291238605665790265344351862395220476302022135710273104401238294915937101848908770702825587391085790376166031574149078821090761020461233399110978871929065104963275075270527494383672554969786889333818972806095759221859071499327256574362239443677900120178577596758517178304605544429504555333534969666265122065237494242797187060895572658048553177947574099333896956043032243276413828733181046215782578977038993835383119476590075450199140865266943307816229514400174427117128322766008151416556763307035471761263131192358222349207863481209386887020059231732952166540364899910569290349995136768778383382621649756506344934930630377148766586078209478277598171563382652795117073958366958812777113131193061604805979415403281325515806472048604926684644716468417327271251525902990029992245327941243162644319078564150052446219046430169440359059046937434043472915629640187139870350407891027422825034027166266582154700177312739043761345760517971704384987485169509565883876098801142772445967483978700576309518734157709078525330139104324892993079553571476744257147270787565161566509944401469448468382110319605373253094855231473827390029993954028260616238360140040189773455488980601757444527179613471923755896119643355717298210018993753772841814063762811523725136446492799781036101557133807717603182887299904212525900560272881693866889517597404251603696251094062611068983776714489787933284326361583079389262459058859693493813237817249872978764158498197313495689244316446900857723865795367247628994681785012498344418980158052799432548831489735255710994710895865004224669925591495650752136651256688574757382835969031373183786027549711183507258745576951158621172547163773463404911319511333612417336922720811805456329862164813209984756954846938057063685192044885087831696980137092603652825467603734573981999918588679151506644391849887925190712292121688149764360999926820756654879536640946001863608530014144925943371722320589877379791275322878353180187843958446805481559412446109521704674290558448878939902152027496745568101995873860375084470563254990638734291446347098560890403547575292558202062974899349817985245402115758499056376001653416612898215588753375356436980421832192307704749446558158402352485840657774762181461512848361816414138477783286034160434225841861044674861295013383787031137501468904485100138231593388764678102424937670405121091537459485991974194827234746543603513414573022500943124178311148002105458497126245543027439830799302771138619211571765993681076051759634057196702865868338406263416606016273741933922007610358977200693594091332808153793179713867506922127945264780582562438652339411556105565623520315341297850249025082620571239195586172033161194696177119955888238303193467650885885227267796121841490119609331802448970390458142901045717234609339463155812462075706438114120588052004191286854166670747703905481033149818156154436700664890231353358766185845917508344286364783922815226759041802722655016041548769814905591065836771108261729252821657409071205333250776883447847345039960554407330310407910509866152372783148190616013241917266651712865598100350378801360323807351205528169651463843462650715940681533614241812208689235017288887931789582422438479254112199703400613993077781233282018699151144496241939345311219911447475523282945232820687222860115052995423970393966160812912443360768058240743689574412891958868279916601946756051787499650215225032947332899409059495201308169241442092498010446008308182308293044533379801758180070980059964637057792056512692129565690430369059152674014279907044438156783841526917084341967626012951625854678830135629416579449940528583813648532343915873199128998356306205153406879753962203435602648786920375196696500188782877170645716880067886271852300875277824672723068916434705641892782885738115101812762813452789719167382614646809543334100029067613553859667353762323252275944956139095021283270663215523884054476731824146724462076493125065333573492318858908332592369493287823459524701530168837506885856833899919485752300612427654895139483045977569805355724850171925134009544314039613217474639143478679918946086411493902466974048734203519556304420995182834524992094713930330259289566748249129454537971179912140208827150289809116272779221813417032359687331937155570538102324956841181414559966922683987087932689184460395269095338036363298646119124440569692350807752111758687182950819603949841978807446372395669172075632015152184932918720903949941635224869934454623920448751616610955717319023489005238937878846628265587663981867480270446738917802993506344238459629594743403161707689562637355817782183354193516798151352272575127741289040173168725336539609354160469841241100389530580158311038724072787742965628235027677273030443286358443915676554564930957570034813058972327732642179314338090254011408108778177945989900223745065085613384094144665614951072018313333208723327734703807295830230746123592670192554915167481824661235077489880840591598421370759643722596056712932463670979690250247191786444418979711401508752225558974741383824660363967748246669134103715407070945929080707768048252878035462614460501733847942882514083437311164393243005664043093869776100044739977414781191016925416017305510790182150015304394181274069049771749802609035920622099158084038934575850128797660629680696898408037201920847896291058248995586587805686159831500415557093174081468480904925544856093671552889724821230349755867108072919712785416744996652250425118079897126565920449723182838965331516954315335278834090646390457066435821375506153977699838603395315929451679011610429525312604252201784548707840927438866814306571874488479917583070135346897947273226472215849371788948114927447939899828337246163565974080452722327925036665767252181456340157536569974170104149465622700542671291972647661340257424905725068429336462509486036239470764073480618550101130896371441717460300024099258267399297684776514722288200516536258607537724288824598669116136151270799348771497594925083384185106831921525578616395954635170300875694623566201267293494724000269347828820408512941892498061804157560700935811719585251012214315403776032893834868804363499259290941021722422072948010568086164554188810259577011789741874793778469655232472713261065142685373887970177759618308760283621511398365519374870009530886851959984481357882813765718437375440023459487537327859862802652723322445977821777848870497716026185382145670377349281618223352476238733145986146944585863579005439061243166779252105835917628251320801995987928915813878734933832463703615225801907992545958453394414461401431398146813792404947602505500855850185838963478141894664448295728603481574488315428886819207614323305491269312357182806477277474066501447419681825310990866955291909077100582065784798102666536184092978572075570768475970871167687051361999034201020689403235085271084597868447325764747668135845717273484582336177409560262889977007328244719773104847060514526482254165131492614195404936494675624937854205714928840831756649534766639566459508558485206876306818002718019913222962544046519181689930652438264516378563955682803464801691659833038335068813472633505871584024238138496677066732043503955423086005076136320641709950311510858667068554841865062892906190430681632403099045148432100786254611121167112938644685739174498029532337153781331684044705461501453112490915829102435410389270227552328112466551062075686623953540751998256393620733654810599773311700446379065402317084362666147930151858975733351240694735486571469643135313814693567595650372190719562631904509249508892234302881211781290699583449558237251429848315677556809430321188906313306104564716851258770875724767143186594078712844497172943900846479610533886196750212779475290161401049691703849456253857765109553066371792244762206246649438238760377089257476401020780416274661419925222013601922484647285171551371387340084051121031337918212284393810621727925871448511906868270145402123485031077247348469230485630353296702747270291511688490653376366826268092045364282448602745804331335796155455407856761931596472781120713162494537677176626735444969350599773905879234348840111416187660859855694228377840792965276273758812467886083120776619878308101176351984901970834319023302608351489060938676412259908572020534231165371339242631610266528750309003360883493870610299851187165743465814173149156995235855557534849820813062430982036247231756350638354742895109672311582459663660494180248289160316621289263528566219849343604322842110575809958872286662662470828162701675860948058870921196496450888424997511190822223960520483204798385323440553588810387683511175682509679319477189432305754916744397921427549382163197729075899431786742454239657410959698182113229893432456094378001315936438975198043907499350044736604066459210061246471624712700350363306064888677778724161939757007934754294354762961555609931237094328134133260143192775065042953492790635841036063320454118826566538262484894060639343598577642778888628243434679327503449522201698694617899564606390093356469998767187971299224226192899167025091302705568523091430174467602859350976008041978478260949911154868631825295947148606040060536148309789219294979155156964509938629661007258613497164861913724621221264845407060893831006213754486967366059687143092261624310462887594149923662222137432015204430153851603693511254762022387519860142389171983544369081046362022346518285991152895878625040845878831039555709603339119443914619241474330525640896988872458123435550624326205156085892462913759549450490388843255051645243356982303165444874993135930748025955335678963142623504742011225567157172392323691219426584791645390233936815360291688993755814686299242810722482292554485322794653364439937023284039303932626999451582651005031127424348521768416818702458472563243253177696414958201809472484630411502804742966410397621691768880170841228838381683125444327518490179418637718061438926118742484262642260864760628861079271077923379573623770570134219547668415464231325685304172159146583535731912264521453436531791758937154412209210990414644432534074487782933182349526356530673840622155342076607686145565034316262540056540049614156421213930580096002241428623961416613680196673720189354866872719442794110335707130850036684981096851139328879304298008521682120423583854519820854204605090249632728862734622446604918034132348947289288574460468296507417571981799596669799250117104159857228681559850890078351026068149276061906636246058871353483077311573257181026638282728433392489864438932665196147223418746833577283158394488862258206718934027003689521839629794566896186383580796440946492565248577650880161317007597446038010539795565856590257766886470450718308698638368455845809255581875947448257262053773894681624606651435978896609443031492524215073571734881290357205780980433718189124352625495551462467479880799392830531790049715292355742340882684607627263545730437090251856670982554266641195350001277871807858203505165965809423342542933194645487645684314054673206772371598184796216530279456629300060829274514714976271584655261973587778510412877930880287897380245413657749221799154163678242722000512615556345651429468820602940744626003114812433820279402540700149584668094897633108736539692578443034972950111689024430226213704968463718165866843201806651536267304939730922050957461708672275826983075578853306937899831151420879621023626561596414325492760734230286480861127337792944049278642553750361278879184397821202700674578695763228844562719583205652808480379331655481632502532512855990560264089070055451327202168041219440072007611027940945385924336763970787942256400115313627496216630556506179494955361166500589687782477472513725455415354089152454595791920731647014268256553804703343081540401897011284698697774817764552088603706319474749095124082725054661600780942937279858248300414176690471941654350907158433149469638197914728297382722776123378148847499465570360756930380726107513444516375738145716128330036833468490192526258780318353884659812267311634511509527290578347084439837401431376821259970930901138498280822191367390364445526904372501613615563709506849169272679347463040549099518316525529008757458319362105590003588736446324523424783175700852736009146788547942115450444951952380047528304530206350372009588765171285284966519760786331975657840062597479336986327628071628541785454955175942796638020664307979056308584043046374998048879975640767591679596263969610142040783319645752407753859774354003207495928041691922543035726355976595256598508775673222393246600946492543213183328940693683182102896253306053248290162808585803981899665638633039047788218982731628181451345384638398195467424099166677057141990649042735839795570783960384935458407721342019200116498519108395206315159977854386641522735171922487358115150043575630875920431807886295836993547435190075968671947667934223513802645830846821633702178892870188594847632445322481783927854835679086526914075434760939412355633730885476317769711406300306401852840796670453818810337700533924574511792128454401473142183963542683107861495756863723443447597163413864340521079802798955579635615635967095140054835972757916548526378551300257989485604930896087295787183652522907035569307723793274964993589813376131437193028792960323931023644299631489800216830330273985314659982773128204715823189596528895312733175956257370542900438904801588192920048667118106596418395042925906540540064949559117091600831619261117465541449843275137239036604950402749033760867291991720487932593063333948477889032268735788856868566758006057843447438069952267930990544918376181994362112274768880082852338046521789151763120936420538478560042169421415109259510922068885742019039711782946246308163998609642608832193093579908735282112439126459992136753410468225935300998227363123875463723715908315107525041167279536306453266531072063763741017406455625817009838635164302179273383074776100630649858697451308558083840343126779185112469839694270817173831509859457609060545918706633506011345357014281291106115844810249421505712409801245340464948890563971405914777113420760774030115658283850704596759827676075623055541875344075660227419766956506223560133189663677162516287386358145919436111420575372530775188414763411007904533595640610937572442364265178921304705742462077936083468002189941635749679437239563464710361399488585597301096638618053936511214767261441503995827928576443561178152772140070289807579264288190462309919747337203570816722643228805533607185891282778860428055446697869234474906636016320420669290306967526668003930803587724025211903932424683754770827067089440168044082500424369977601163763374059135141106671013442954616343573626016649724789283273467503710859382010917304475549080765909513325203231580220935765643677792228458127184029158761952198179580395944430064982910485552718386371717543286419042074149824532013992051604792768760970387055982584199503947645757292620114837941146455312833295144780222776916375259827187897405360244158503348718491606937119977381992781177529365689365742970162881820112555461452669617631255593126806602258687223303852564273756373460194620478084362702808967543710411227885431439392676763809645297989897502458431699702687055131175532830070021576421327590687168052404746876775021070888357167557973889981181531759423807340148389633344476772020908209212361325711906638024923402166309978657566919378728546899023250213140121995927713170430984563016018899085676638020886056002132997156267552377827867793192042991238929866378174405781779505262341361570850388449965354459369422025827079431131051313109366387662895183816275226945742864419049722227908742371279530369930664792603481431458733974650681870370652795920072789149992010500324110275013506799847210610496745176282145411073395125272451789982404539656140531960045713205438643139162347858055858926081210441851158548548415463868441487102029183890502050609261187866639685293651958878536718396022669255739123363793448687604248632809035605984982526797948306234513605156065234266144398729044799810469470308300017702651829298551671007180499970109661109920543776580446935843439721634913223471227731830702045156395611435485049679479052446612283018817860301610900203011499004010512586378394021738987799074184136065890359976597547771967635237426359910638031424699330261733230098947321514098812188899640579086932773395904275819681703751239820930510008103607554710396871356561676946891403447546750161780347389438563473350593758622584704616541045576183169655194934149785457615372064926715374205268114151035124730803336696696306905535072825516998170413047460724257624095159468443581347909478049004766118359432593689970202649884446515265059850294215173390709090276658575273284763951931676803054825273044473022600037515025258779147727598061025734976087539690271342305901119285700358436684351635810234293179280816740800832937156765747346857878017958501479637646306237509825339126962990976522847502403901758866758623254483257990847529720403203862891763967706412362703177143412924913225961119734671526763424630886864026255909016070091632876817501620434191036164721354024753016848299363021622921508374529467598663225262741508842505770211861250380052549471808025574453352444977767659591312538120801413370738694790630042038777185904937686987328787691431021892636969586750990292463360618088564185348764350071909506377721140889667795628191211809652147655033615704402306338388814836470114757750664114951057036761720633044711740941182338180619526927530846627464789402275268404833490675507273261756845513585132083121560921460863628156896788468676637783884045149854877083640212099071679148146760906627850324661144003495074209075520217808627273759604794074720652629766506836859254534339405638930373029250305598464719148863019266307777484464075034398400970589000121872867974660905885627700540464462443797781864213093965722315665455784516886880442468589090547522306139829386925503686883555392062456511659532904386288760084658460497388635946993187905082270559480308615088053246627746797814955739382087629983663864500154541800413682284368202567115009845932329484959105622378844285971866647433368327685328921542823002182198927473949527324688075037379747205677825960906600827731320788448528919509471193385338554138272969243126070664061080714449811096908137009940924446865285615394991609145173716168602124038070860953610023328651340450625043848821769762904711103011665008183921897320779002739148052960968640592215715414990537186561895406994890627603390405282467460711049151976391270386399616481575895997571049346088320550187678924242557892641139812546708338856434857382680518434778829089056072475764424388334773843074931617128210287772829068048045036599200454300533069975410149630722587534351527664937185612679969161590187834556760502692563047333125166517374222404753048774226649980220384499960431170462681484019037799566859943530062851262286051988632375475040522752144713410363949375632519570296486282713013081927543624569151702841465025018674690659622761636738223230805246246049063995395005220246378981297679485026147154665702975612202432230787472326617172525045520730085519889960369615828022003021948197505610116553144622395975670764204304121819337202345215261500141092627226499030792563973447314990004201313958618807963530353311555942538102777241224584453765982638509541941611536842351672390351091469433154675119366531676230474654043416583953464712424733961862200493555292147342149842173468385727080307295890877439944075677644509558151607381121858309707697439584820442390563788048247793455117469709655959213209086823544660466262680885206760448146268350866225558423724389664161781784198350314516177912555934450804844766326201743884634849505307953517560903162723595197097053822017507834418603143672542871354725045533426948290066971951448181390276786835013732849404399760949003080549411613526541289027189352666780756317235205516547090405286030723110895107218065555775358409522242640643241198839075046261078028217219496395491805919988213875147091621492243307629743852042554829093081170672064259488693620671839067098727658466913661348329535877706984164136021161212662702874496501625384434538873056083171563019319415063904459802243137747285363394377639245988845373709387396524013130581174626163443061692853041148741862483985863726933870375043208476458668669099479725571173275411548978852094607039329251787590342528118616612155001720261882084924366453068525864883219493093785199460757678557771920299551681127765736088056742414313139021247015031836744030997948410712887828821427881762796572354459737396929263927721174220076122075166907393161588724573490716400602960176692059394140149976050855066511049160469710912712249501366024738180034332249879497536855528236987923730832676028039356274112416527679988525420686851070439451766416696343951117759091560102626796203573296512675127919551148035205765695563943036930323073059095273962501498480560719420045684534873598646242113760973656751483841140174651161035159637416910705155734475131186745032711476959114942503551871668355394824375910412080637898569100458525891569275486211931433980476685990595685584301248265292934941602162402666430998599372589836276591645549607966776914337717783492124883826503954224819334780796577588477555707181493998161035726506469986533095405078349503340940546127534537932129504893298155563290930851023035521563489937450952991468896176133612308353365956429278453730621640578047706623703550487856484184681077892331754666315454917441808643843346748265861586469387631411849967856534297212213260842222480897324682919704883655807700896118669716640382639378661341660203411754224840868725647813778825902852271542066939618307082932557745517262462596381911346962291761147844671998092955644437464430180035926190340691230782714087903510964523686924812142278668591072258794811881882692661014619607168204183949863697912216230809768158949875324604539832346041328346350916747550017589160816548778313188753255346755355991587944652849411301906269820387838001847646556968695206077460495438024258506171185771554842611265741302530117438091259684795849015939657646966846210904519842513932796598417208606306189136083891683664495940485444292291568635239844446485762381893854053606034332110924534146340725519473147765852272977724031507211258524903155486058260299035720866780790722084175302244269022308900158864424140746951655207772865887062104335708198197589643882743264352499217586364151337667743241056442928704880495132860762037809085063061606475616348585299519885729220207790604801545294169247091247210030283039312186073515833695855439267360128670542395657222707960954963183564898046792608773825054763171635567794557795357871585263251839547509187053070521698434554579673429920392564200210300954936017948842399576777833934492183458953989621167865584549622697702066618123975449863557856233036977838394263329780883329074813208335657864023709941986605192494667170945263519369888416477329145640507820085509873037024759765504580615834590119713502849074341748904197142915810976349714767238340955862603174908246293094479689721521240919809664842156428405125491090385088284058282995883902102501283044713746897976141465611658300757297518979114724993180112764802390500320598016154814216275070005065770051314121842756248954833885671620974128246562369807102730975804094996251003547845115521865936033746922987830655130000703752940289817069177616175158059210037716789115182595423733979820028834318375628127964467143819035158674369567011098230249292950770378588849816844227688071739187046465760264808204231252709827599445581179737976155676216042917495857457706104960556972303712813409871413429102437683960452833068981254402358167739096448235665067247973120051639546446110263102222762239706868936081428321410960756114217367453222367962548731964826462772914993769333847072482632809838009903147831599007462921183742648718722665450062792221220908912557010002769505353799372553121469610582590078099560041541060622028213358556963692399879386047227378761098303528463583499241969498379715133849575459460786281597086147567188185563702830570036072406299336903068204767782566385537543065042671442227818352359001692362924389990471179688406701752239868611489963042216746147874911530531313856042690373196096258099319525541464567050683765990128374047204784052110645397377082728290550373825493672236336505558524969704156177636341260591321716532833064974344236353350543224887261616451455454326769871049922768635567356374256558763620916328845896015578490797226856395137511669739022481704370976047526591522720426673449088526131739509762295526218008331201512077034104019369665596279200049547263517738520315116684068935825609762203824493527965372149681095029818000762611423681543309787875692867009517917669534762272406890830436696677695008079127339584225866585118260763024347018496917400327534806622089318652067176052108413880393071459937599777213664759642661833051732024877096285551142102082191987586758651911879526849655079103878023070125039058243700195295783979732926926869408803412646989320052801892243682339898893865101309972045340462748396357996541882332715486013963580653370455338541239642464323726964918400243860695994549434942003572664879605084083151650630823506346505107451896662045033287371562692814483966621490005631709960197773019080666507577397626822460637265245880059890875228306176388676652385669091124347609027539193455521849500237000904993552586373954832558403122771325019178082196656142977294859225086243566658160643661759586959767055969737658218001768991959666244177084877239486709019833638777793473639161612308893036333527211800195622464718541082631286574771485600002442932828827531675020184116982762098814871763685421574818954612250558993254424006707249063118232541731980497359247351531308054910026776582735601611175898089657321383228374174021170098099050940788856167874140240508020972942692828606584087262649230659745559682727182111310669174467842739799030719432982860224292884719362860485018753398235537605218333792833963551653016814526173416047200886543605129453044640839224887594553868604412873407591698697376707277317368981442594961661858202695131929575283553738207556077730332546459263949354544925830921368546177589721893683972076465201093341764078739579991884316535136210746246989980332284436569772369509144579449602703424811570348155088164801210860565046472816777974382834353698220857320591296783670489116900831476706887928656660746395190782424871884569399690371965532417736603491050531125889415158234729084052655716885091865996119263199853087998809287051626900335028652954421068670428236177385790778302473359013465058370720319234152158080080260197596816121246896881795322416560414509834532019240693544839718070418186209300955360042015902909041705276247573613852660339307363514713025636882921877806130600868579650127197720800311398827879570014085676220571682014817577711742210662552373526125928674238464287877403993768149726083670428190203469530272319155374851891272051213680515423052789049343440600163641958774044807900931671392229676278740390653488255716240945442908221670355633261004134457901435730400523980766137287282576190732486987591431255450796060556851960840063434148317946730855653857221647672149119832785319187242499395791959723809712433944809581676739967529948478447723210887414045909778664634862438911842407556037278106896402188014956422553756195673461350560834056580119425032660569851550493538800363092971289829867027378734597134477418894419954613973547645481311374823101391882858218067953608284601585661933378172200013579279496579887445597462480701726530223194391338146403731721382136254752147499978816055818883160791201511234569717446353628132788267651699773436991679168702223847198941341787932085200304558250225369931628990183330510722270543124619361611590339103611072896628247717279750326074703483017977178680492083261401354991874272443148035085437308053282731287603785709880834218428190360743223217406291699080548928560241468580427649649567457360784443261981842939192565611260125730554878123560766728275016333618549132982390315862014951453915065497136244095466716744647698119422922907510998217522791276848441770402499185776982100651341978115870043124994691344965535500262925784082511068000754569485163372888573663556900464876493797455860862586998515100493647497803371398438240117658374426410632447936760963681116334976548504279967700044467513389859488934148495963810180634847334307879896427624187596675716190139135895190124681245534914030702562188338857977564038718250910129148466687227950500313944723152263356515083009857157743343266253090167492369737245878085694197700121454329474815518339046696379034333319152428653301134196899946875073560604684338970056149476487843977576010094338210806997935666590081181801496932316900820433759930516799933031367859648205457786965553804597169259665019148452888319809067349306615834283606045410586539379799171851029724621461172595249980766533604079109372881563942913121278520631598561566369686045113488993293619524226731645421722799709576930497752732341870029195400291972944717594044600669049363652370275952174924299901532266953940835152204306571335315772354744792849389635121957951893656429956345525382489709850133565583089599438352954017259417345150696910070319723375043556462417565783116724167159014279421825850964010280158897862888021553867200115089804514520084545644212681761544248337362597941935188246409895466626990081936568607709325497525166235767317327669223201620682023623702489072897391694253310885611589498556179190092725526408088059418758494989410500319264226866347436624829394978551414799412249587524807008013290933559307738562292373560031220086219598295046198012537983781564762504673161996349312765132463047399779483093213322700034590246719025521395301243450985614723626671373205391025240558944081359773292706877809955308230681046103515282464388590129094067572907925046425921999588102433716679817322581302769888411951901978234113295099432965064417560284145821252489179342215460160799212108860528698489016354901686919821862529270384684431995426707697399471224887222902256087652840792787777750027011638364760362473120693945295961083545554485203923062162436175054086627884293500627184547631815406523474056522042835941266933892855961307542548596802394651382754004227791417216621494983711015907458192444722818957877250222543709309636848272946124067254204415304032337677280267117606894502931989951230229693997716390744786575642012807072905170280736700611972284666928429344958629527025083925340289345508552199123567283296957227698651680070870982410237502275794463715975152112191394230524774494432837385330232052046563027324796201750700591412246998199418805517772357476040230542223467057451474655230164049288404383587516568925664324491104882678908561434660809693381471755138620443933954415195613600884570714351383634167940731605820286283019277828473987877924318559074322642111712134819820830687068712406979543893645610362553709101953895116928018542432474520946042911482667673789112288461056988904490266273627471325300722684182062531617971692173009257787262861867928832682542189292398906179954785884387706954282045852794317003929994224374861526642834372064338579803832534301846648167976605726818559261764046437558264608838980996105700039586610175891018783363597337528964833167704024890974130185465563645990560982548032438476085604780068421976201237657359895379447624475499791487767186912991465150122650041303819608341390326870135362466943678869947555352509429221786519943102522775065810117912562837292127078666397708014816952635494995758564250200701462658755935425523795110890779721361654933742847078284478285579223421650577723772547985139217321408044992649430199606779167619805810334754732914176763483288198460007882295733583565598680432979464912724707565227489071131356213978727650327617435670140861901933838986459309993433495529639683662328894596106807356954756555305897091728060089861785295418003034899095098609943174959728589337492178346404616610961144895392647813242802066122922802982832743583429558414682404932785156468155230858394134618308052623006450034354042969354820262037191464143604757086155214842730827146638612357003858522735818724321504922757391987193303599176502217608903232075625424129649321712349759431911365153825528340872094924520970355153207394760045891233229315958670598616067229851518807851961187774013971978532895896276084054180690034217213922843481372783637628061990266026926731477622150658907031772641517352885164331156819151318782134583476221702434994009446083788891565907870413277955642771892326914823059924125664603349914624468665257330871135027402248766347925546632643587757676966403818983236263379708599802325971009764312208919888559694154803242891332522475408583151970957925635485889919096936472439028267339442476707557609736634799267746591205539013751415807494586259524100915972709862305130891039235448440062617663866882283256555204132203870988274906944552530398001660241184988463681970682385809085572601188135667043047610284853385749794210923972148398073465478425202950966870985583480940589518849487959787953023916666729038254925866640552014230728503778738695799559983562958250577339634535480795833161650304725806732595277973711342650805702839484897546261413351127035216487207163394754131607276354641039494431117337730371651031014147572252539800077387318952289046436602836625830766397439606500091055758418952803668422961164190161102586162183594800173305038262510835535068735943958032949805162426812377338361641280471827028689274703897835979855156920256500764343163648956434689109005517263386348357796555926221707056034810164210159908144608624061628464342757773448334001920625899729170374195844413200404632488680254495981483147420337910249302225528035316167369958620250238697759777263317415053843824477150303507841660972352448963428407223090904836560745098937972073506994361482363626066007232214239266449205117795452272511617409198356694710972808023985759162750043858117699121546997405944267995865226549226779481994211746898261516631952575850279736329096453033955329126004238347930773985223602230271130745126794254278980624893167841064505068328948247345693389358924139339451944443846840642271414580067013991507446366704855235606333343413363814976465933504077449561465602917770142158837838541519835652559877748319478088904544216760632098390972495893884063581684741438466585941712782147320767307237043497607990505402042526081579841677135699980429242480051234810641012724378873230074186316433097248250311606866648943151097082142659684262830208236708538065094147747651295864727350428685999134367592770517212269280520733464010859464198917287165298227437159827770364257306212186578745868012068941984379854920294256822527410157696359617382497833820026535054836640988472180131826495927243738432426247141839044008505343133793169946089294450705306848979487777372406613786397557016788341067995974625547354325085462691018477085889163842562532480721398543719811807092680978025558569943423147957571610380458729643942701332014621070467886684897567233114059496502257105564270804114098339782313722007860841447751363425252701289768474742362299554606270903316512099844987469984226837716722370766496590186012714063128585926887485513468691093257348927662571994709663163009804174083617920697152549280097618791865060396335657891254822831446288762720087365790533531361695797962208408216576816633381562520630313158871426203276898980195934240587939064845088781126430953844559128495445925179297696541871104030157141448748548982728833366762957133863088715480406155502208479534991262670484550100574680182049599006552670525677402272878414169591329935260762113988857989585506732353364800110727902264528103752495093219412545304293614918649107209109768348903785825656317024978277324302054488568082484497761796533876496465087302172956363204722374720437354189260057002334753508194225247295965800782072838079576406326107716454568842266931539729032212084334151971046092257853989366943690396610150037731553568925913502176653447398841744757231784191128336659792197472268656601740356653604583910833558136397908015812913177775063804483550900026186856308387684693448592509447506012320394337790951547858545799423539251219423253239340936727337332428503851949563267704337369898720262121877765888550758460988203335367791747838453335011694483444850667052463254141004498061511914370157126320348580427090620365440218292360336379861288412689021549633956237763397762846469089454923110529662763656224228990167565892492059436706386840634567072378441986188264754273729668206732397405354130950849016641359405798925341705093448532240647624057259849750560486970240368122094977544883457501830035345894770522512588888545246479912040165478810090689076260974186145450845164739474070461377145550783031311809019570908078162497471021238425484137392184915659876740072991605925219921871021638044644579473704202350087693095833758259386282161455784723515692538219262019696744152566972040574954491321444612794233250653578905007577713790005658707638779990832773550270385820534107161871115267633381971229854079158443791346923107107028599585269337765948148020526030356146829834696849341852710342531985586768222739923979337701635270256596055614422870274053167537322748967200496046264192039615064197418982611536789284057445457849479361234673772861647771832960522712798508834895568678098267653551533786847792055079916170288843404590558903012822024578348024660733013691081615690087857839996743179465594015776208660449717942714555180339509230065021308510133570472051135743822047344754406218320889232999161740022247964212434236940059884965399534250171244481275501661690203110512198288393567170199574522419743136696384080192792401177768532009443583420289420714788592253390462031708304368641865409117644770498630403714686805947303206853246420194818564269542378810374095191101164168285154511910150808382667316659195146465968155418235857611040430101294678922502028033854144230114022612168159950279356689545564555808947493565731171629530495091675544703053077372481773575218505875965780974447654681048020569101056587757026974108100156166085255855954850785988602448083281708303374579084542692847881394908193062046256899901952685806618422175737858516229607349725760138920801590002956819666891076561373234306475266511999509902571802906975853913654876712405511584178258693863450048809745401733025329068999863300454055183280085777284702972003766487606824351291123109209581909437056313783105687240955007664814206826603163980353531307713320847230348168674659549494239308178735730427261776468418729228650297037498800258379979861063468512209106476666198933172068156911152476586551857577784397467407281550151071354039275528204889724194611929196592284874956770210636873603865455642332866175459688811399350645446976523918889327348603868556290587121298021274538030617087779173950342869803414920871294297073144224919118686533641308556233374737495731671251521920150680677864709077817641285249825408256994314265128850578324420202369441809907457815178239637791690070628919130482298820129800311869719210305895438757364975612856315817190091785923392021579015297273299574115920692525191710365407935233921457573715932965895682121982865250890555370562258475017797909847571688645420136563096175483897569754445641191891105644540276702570418678683757604701934589101673368734829145054461308031852470824878496190103175874751704499190085505353519343024846932727030186738367912624152331864380638919941830792486738487554503008495658778810472135016039101925515829655620753718299532543942557658360125346434501321860397248098971663624363139043745839078621161844881520920103759533780837447576224385361623321761147430335367191613453560898945431212438433707836511991612229044712409046382261607517770870095887660844924536155277203824248603872094341230384411965637216250526262787890085300763981238978965250219708597572011507893109317585220931049410994098742050708921979692333070810527782975704458578528993347655382579874259598175003500317609739679820762639273759554101719893355221335328297085894223698090837818001858773646594798539396811712822358147035332621480869882956323600898063837696451461126904029630420969431029618792151225144959202223739576422537970059006131011906683886838600618850183411295843354219028842233808742361713415800444087060330237579426946463398256456142553466877681565641747320603508261445939826191830769585826719562034014225426539968558641830000571644359866384122782151715963307148456194265773535324506586353148231226180997158238688094582383916069779830762333849597365361717360324151141925270476528601363693105481397270631025253628209449260645584174743362561281655848822988387585269826243339580459383921908192276628979401905358143981403618509284181859383172868583573322868113714597517110899889662146227275617472940954031462030542053074256183579199827798977480683102633927654030666594091721146841270302610390268698076840136090531373083463273427470836342053262181549816151969628673515054269708894638769517086367760249905747347147722903519582720196464876031912787965758259449395253425702384938788155179923188988791152796279453019508696049851313290026778381138393914436185881672106907298929492234974580232559206770104136410513046543542593449299475276300190421846900679663530623312537623652116821471957723909364183672752361915675438519970720413207988947926117139500375183564007811168445482939846955726531021958341960400061798052740491492799482762411349069246591714294398434927436478728957891999593115809405261937490637968073404149207746369922466122759871659196628855523247424810928770269363166385788379332540800606759673009848380514710917397962748384401540615405833612542956160075479494941867757894546503941775891722330684827962898908061577609770152903289278754722480312841078273599241349417770200760842663067142825351182401737286138400918795110274308399241213674495942310633245609584772743525316203267993250154593154053624831172021828489639521403149807084144852301392141183894242371444787571363486848192816373641933644958679132749000165565261991090918522260641294690481253968229030661497705327682808473033438806359018413863444903872737609297586386089591961669971076019847646336544606160874093571539810319292244203577488966834345447680065209733894499860443187815295062802849689519227321058200172187312528865957570301035391066602412702534971364337302952666351526597372756008028150218426213285811215828266721810704555659446852234722840603010410655615047429423596817879791335017288348785356102000121137750880765546015603023923967236627393075394811781043930408355277111614246286604097739513187702568976549939696761330928152343768066640886126409578598108660124856302426043031138189328302604273761818920127349959280294585770382868114888665312232716708278579242469243327717394693042280225545083703011462725399702345103208683985753473889331736683654226547432775165639385698932883975643396641469783856783992947654121142563311385382751627600517744925743791257720745496633580130355945537008634275807312467914086797082624213272767297173760347476226972327481637100619806283900424693693562227583443100449957020181240911225399688014806139456990575120008755974398563655520924456908448284504764830406235030892909068082137372113091732800113238626991297259303430557455141890926373312750494111007258897289843215012485207605053459813550283669402364594636709446862027371218701657548772693322964560463480287791634476778134476356944687160532125848505725642800284069180273271939926137012540613804735081548068855427696372957912422965859019691722796760587595828977289115699770207273787723585191367999521882661837474918940382267269854325922145954663234537210372158772353842154150879129160529652555182586517091167832961352403478720320698470139228918943356485053878619941431834452016699773487841201583362888804135773336452955757537872603932834872944257998185972847541763404431913837046542442755631987689415692326218731958513226563513393994142062202494586973467736808703548448762530559575198938448049635632308967348982063061334083381691937074630927744843971092747397262894733452870517664301211231533849276602199820485778403095462970747613912792560400843430531841697325396370903053786868446705525999217675865861492421494387747799197088246712545586268998596746904073354308403551845073258320150322994726838881167500686256568135414873480085615098713857498301127339970265571135677760998069231158683307536876990878695532347462791375987876279012985536041366985175530213443689413810558787343502536124674580865568318593595291091610815726990085240744841219525527074640068508979152759624652859076638934766470376556564251693666317958612848993085245176064011474423003829512182661165050717374656865875440238325708070312651663910782290587563413613661824216340378313276621593043220607450824514273143578965622893916677177328963876131092356977798709082104828118575947074943378347966574813961921251386317490725371557054388844694951094877912679799575938173045314838472141941022945163002626001412566962000626809923180370465911380096267608922540355247769372883232260061440564128219493531761883054861828904921389120357808628054897992119207474194073501347550796124387367929774204710539743255914750982708336155552027370866699641896243860848710764347471948314832404328926104687961007480406239594613194141562565500989317006717164802433500052562959022397914640558786550015900620342401357652692486807988499376482731644661574950228301862919066903765656503568438834697511136877477015989604363555166480298896872042636281349535766637418245250984121164593117208936010162158274879929953290467364953479834155857366347118580649485617105834447720037804784288881254744855578787103149262023748672080978360766881359929053852731364510477867880074250293121310448486383145139886297035132468165697790077998594249048980649148685150342816531978387689683694355983351228785533802941771534835233155050786480942800521700927895866276877269995059393566630447723674749205874405944369554461840818411465363023518209523550157283177855086813473653765872130775079417958243106295091841429651481352841954651589405117126433467905659782096919421446207990248507223756869846640387520560384899292628247259700060130461403066793955527091813949526319376360806566169860666857256077170857241985619523723305753054600116592100513840283427929293937316997704034519249113454399548724269271283822110087936139325927498812796129411249873463432656779733684546472863196908721990447947454435666250741323837857005480853840025369942435952713555131807569508870179127268616387789699720225367523281906492955381615730617316841810661590657022864702811690853023244521879024622274334467761786931363576882630838660237231878877342426242204875714277940987521133923231121868706503984093245344416159349721436088822835726190881869185091654680927036930167177095587776868506723458257792899086774729232087297773472682514777521724796509269829768819861352983498081147952585600900500172678680320080111370822502859620493325193864404825329713666932430123422136071026117110885470369364885308224615438681092864149631233992920943069170537153241196229610323103820045439667063045202155942912786107594711628640835326098660326941209990996037240431779854723790813110067771660635364612901880323194195025587892544054084405433886045601828726059809799887837626975653098771814890655302007798226206848643202497216069410824360835188542804609966606400538028733747165978921439038299228295325036276574329399515111193328904549232812845148464944624017556028135972947638328413702378027489548232153031188573955926919746534487300925580355132131699692844363046611564724029541560581807485789713580441063248441385639966841354937066535956299266229074779054213301898188574794682008575030324443930768824356755187966142292051220533516123621968076196606751082497355541679863377758535583148504036578862229464023764322192443449105352660719883663274933474708582472695151913557188187281945291414782510856827155163424902974243656256506817922874249078943872245734677556290947072900575899766596163799470118781006951946875723333591175349843107558598165007258423361789569485435070828656872539663678937557241715344279853710022132978784207452477563064389384995701218421734730625166984075512880578788035823992676782728506850239584726145321552517272398207130982328235133405548697390828982862016684422588191345329226475856820804482101328773532557946437139667671129238047186796974267230018868891286310591504448190557126469055561244290237775489846527979342047701236458493534748620384581825976608854112639329478494345964314219065599489865374499134309551226701780229690699594299491571398449429552980390274418707942685460657586990537800985945795031057113422942472080686921388246828284746573078254235430418518273803445367892381061035959189705601528081825105453981714433334001381193510469339848148370864804417735899784951593937862299743018251953086878418406129363221330511363810360427558478990815091526128779911794606791841612760797456104689889902070465082072475890131060298881053564449306279797161680732646188621534114989287114425569283349492348341501292966371614306307054700290553762600189896613385493141302026101375314893258398956854440383386108628792605741448536763304139992385043997944506663273257924754537350679727218184211499234465916932146963430332624317348187242358630658479617674718699010567239933789543560158861093316074273253285781998854941267383750916217597998479484295256399319419421921298861255166990224545916719848032273268800658570181901255876058760473053201762279470356645852456833981899169824793660953716525241362276582200028862248668724781958413592258775935379599804561656731809090183843898943934424763246229398559155815591034442276998686286017303085729600621864832481545899406202412614464772902264888610619495931864996984415870719236921405820143542824013297723462604135444899526989287422108500998686374518994265986049355661157929163693347703660664343510300855095853145745952825799308005066782031926111766511536755319038441566675976575675024421343636572084520947936042766762815253285813868994732774327712257513460185033059439789254449500237426255109750547019877290683308623557974757770469031340970776399106559823859515251397781089899772246492371475709416903858113406462876327985861524590027342964539665074890338543120294952463386138131375083013137152692594620030663477192433620509973106210843621732747583555557490058624511699740506982544286475172680888056085637947944450816779035470341826598528986975886820661724386884079193265764288704465291462815497753963924338287108292077935355541464605975846467562176299295864320016570211003430819225798642603087159563843515005051908862142397216765230880561196177483953716632473937402128504762713511782185557207046371867085693600524745934836968691478885002815945202272546925692832480846089984844343445687273403614756253147343309148711295850264942369044062714994999800543690618098324506153556318153350317163550479616680400348577484706267642305110051730730541529304895903342447797679313101159881524598127921805739791104793221119245421707475715970821882297654521644753688160110813265181341655342551569855891122990167760855944302503104482886431131629719735274755690721714228528671976803303625903911474670499719974290029668785926113559623097122321372716914859698308831111738904186316396732075886387787176757764375657829554427453524975838988810790856867374549694121226073050749994645498524573268477181977337234776226933014579222785911118627700897929665150230230932912981099496735443087545840836627118138875105567773369894101390131958174332149153298302342162430081929512309682584574090702572383847920215479356448977828716303037704884725421972465741440935435112575495987681555523527197149517518283453046045339222639937639176982341526973367030853948441011738257625369963574167588834417045517582739204960939339384920644318881964460764655687262294622112854215122209889571543807811350778097362927727075447920092236162948842900060973210299186710941397375090862621568345550556986948333205457158243333758762849436767442820039085716029889844678741692475758356117363633541781613785967693211773279918817293776326822905543641030909058418317484490867745660475676445461174161555407532761642909835346054553278226631911970175448287797461108656711331854411012260209510211191460362953673966952797615964828066738125567948558017721912396850836348372154511776191452081977070144922653181688751672737613436399821335161314359613206657246305147929141802936897496950129324740869413993781163693271830606958944219565310675214791143950278443336138459058693317530125882642242060334968808424971648793092169148319027326509377031502643833696873724517759422303386136847124370946286639442822389688450947859654293551465249448906613543960656182234727796280082406158064406588298374405132262176068795810196340331979807747854879365574023668350020631696228876459721892670739365534711231657475813642816926699107906952368985655297259191426988091691657404183190135956413671419198952936403045756435021956076129624362900232365104838634841579914199502193044545823328169558365832490042455468692772546872519564117653693849161317677554208228965576180866308137263412675186844267334339224225845245120537587085001123838227998404036427024556192601916197987013015468562174095380002881957113902808765303445411727173570131052654707991079530673144384943898486207712125008678819705846445168064187059940015845993833354260656387973803609594033367995184146513201913548188012261443594995513584891749393839738671050803836995687279728549783964427319777803261531256495046680817644488139705507958417379416034724174753269998826198488696998531797411586086449553030325822702063443067285284822383888512304976555735631520103985164358413499806129037626387180031735825024006521394535965596065103732663525371069729973380938857667676373393585420227401946254265950435150918409674312857783970175221631501956488619163042630668315627843677537124621674781681663787010103301694609610273339637055952943604006567798368187339407632233212937199793885432997508178684343047564581531542524788913169902141460288114242623400465547502742528010538307273029881103986479170837039693357579566485960643156077411889835506057654382271087209451372019964294240118022900946184280618844403874823000916264754134280923618510925183082345829460237041723672610947566209710115426203910728451750465473392860992146081426820735149747258549844652113767384557535168232070109635941134234314718895880689412745171734838009381315197077505408466327102621030661580404467166813562559255370737089363390069200218410748295642407900875212465833819011843597396548266549078439250223565263211747788778374246219064652201861748413224998132010696460534047297714427183213835774007905414577109124144470618978424644215227045877868710030175144378291735198496219740546738327838530733336468646327594557785903679425532714150202402068375597618959556170947080533459314198154705615379242571153606892259299675244164985880619178026437179593626722050475733506553610199679988972650754367242566345177808223398386679667232750597465938553249861010652053717515959883376128806059283687732044939599127009610816646798643347709192829066960081768965277292293893039334549875875294893149061561739335966337381221185829172405558360067317916998349715379763163450647992671109959730670515577132269740134724907023113141581702321963926880842436073316889886362658430670808933706660400134838911938712038387152485781462726754608471939007616714283251840474479060125872228580744418030947523311274400796209155166389479227182262712230698440951999529985290954929754895119213641607890754694670030915679272636049543207411520552275766327122486363229648801661252856742404255012655068559129352260264782672688895527469146214750097805390883950774451976534406038608553994714006072035468739554911405475837634222506150171519973890087861038990300542172252013782371515282758216702177093411443177689391746731294599878541189397437180183651280813999250354621414014016658569355809865096455875577873347774397302056692133512671463145207861022602701232662019211390531337109136210930544650250113531330993415282251302516764136700706072757798551475236545649718929185531699069892612932660131947603839569874360579931742748814753149989410258761184911554199971540110055618467692791467626415153582359270151851544234920737729314073682293968399117098021782249593612477147014388720251013330890171485450675207627826775798071086020370570518755868964549740990403881322426597402564401700727129635905732369324932166043596262119869168787728208368900216910301633539069936918496170252364824521909199075616897508368191387753913026482029128108244302648595893227373005443520294006826328315317348146498910100923955168354595484092654770625381117218767642376011604614182732694585120755960384777981172181161817897619869064787302120419195570959737211714353036779583991172531087274086075512825381694999580426757147801645670539051068883876176942407357745379458642055197412976594249067465761204406731994632706697717697296754644963875108083684219559976344623517542075224939080345369945591983688808197649381717173971571804735040923851224169728073058963876746614345784134851103076044133666099520461936249854771489606344212521481259108098705527068727056216563399333374743411107161460250346753489757720997513748471828481503007401779650017904060655461030724309093624636748594964464736370679497292350887039682438224039847500907850578146667546520190374564571046429429258127550553828929328984076046438673483833259427743637206620699713517664120659178839198664697778188436003149387655144557522806978501677296159923220904438091873159944757369164624266069114833706101917916269035197538034189254360695215388278217145568425511072359469699447702131240964790910558129788969601578091937869424615181938683756159795862427032075289875342800714560404695127888672911790680896558922552077955593387898973127884088326848799934589588362706452490565846153654039927224358325280500239420013184259480643816786879888956312751830953916313452229920663976983220416467867525868776269382293147077331734337566966024959458393384161329104471249555700300753263029278093684473118774593719370662436762963972258781241673959956762364123776945952602918730498615715661269518815695123776773077486077520977022034746675739182260213207293538680902279283222169472394554386443273854960863693881614100535715347861424730407258139169980019227593050915515918934999221382130849310788162721408111226448230193254160794531154501555804142155023241387405736555534086626890674403494098237331450325933809529814013493945280114256563306079179548843586648883464405348075940752846755948117778635100765564866902315604065748805581280555204591321826658759994170505743468739054465666162012171798405930800583918275000644056934898057505852433763817164022776391883145749108273547227570090380562859672959755334719291856077554269815038869929385721254210946666366863264652990452075696460756023177658104635347263279474434094886528273795772242565688951335738035059145411865785032902944175567566721114831830911174510258780845905905889285935689572388025579785336694328585214030148782019641368042087406755091519630057537157356018373304588487901650076106207120923642450853929423098440649375036882848480859305749083846037767918547011891394289593336977897020841668983300402039745910377250932959331201797059991944580892239433374040067218445456957738197637958896848183974162727907232212523967127047044523455134955241534288063493039552054519337659994506827955446626850336824719401435875909557099801903057122128239194277377913905981936757571505040097594872803666479621376037617896280876359526145347957930973866666750955948231989996931444253992231531338679966866405310911288883904969217098692838446828164453461754616288371529232793095056937020900681904537573841005104745066025146164868429310419413106716433042690964748964886999292764373202064179323488376878068078020752057069924542429188109971324903811979853857239932792208402039909834010835735470880364354002246625675126281292703234962282911747899963552462266747025079830807592292453243397334231935440894194363803566406489460144218498185683276588616312135288107395262556829717988180419334557607280186639686242170932967504891360192509060804130207041129551769834015131534408613447787180387087511665614861310735486276454367342223298287194205486141181049343040756764511264330468841138440905041296242107514970588719624138073338968360633596998373897923493203228320439204707071754120403586457523800280918389097149157902330035384916463980348599112074920875184442995332782207988321474010384261530378996050993353912884706068873636852444114128964697215020247327232260125733201885125660404449583994849095789722860710349209476179284047092643791568562893816311874900129439228401385085102126982289484665492219713695772082969789465426825612562793212003226729560829529581581738260015533949753413248699935938709022136723876916187131724735459216294004353064890017590048592598569901884068368003707885704037752045496718818363488548597093762003499285889351922301523251908116003864321485956052929400963654939268501834196482263570364796086922722245404972669628029828713798938012782508047405376154267086842269126545352266479085676048692695955187126331780226158406705938176406000589373020213377222253918690963734071681279425018561198016872408158295399213328473980255250201357704435580814206078232795858556894611333662742067428023861328007515509988491350164158728274542028932076901499201563575870768363079088214970250624255956137291377077024008149921165703560541682816158305716659570714676058939628845123772405270744186244899683032311964872406362597406457146443192803116814366330137918563061219302081820681503184790486904472413974563463346340371977024243502737214206072520791830563937957227155196588888513722677915057099916675926939914130411289186139185318024757057550998257999692285422538925431796321405064061787156303696200431186844391651679847078549039662662599420432361772069851191823236384937199367298583286653707002786507928574630705163008669923046580549693665083064956593809097171437075696866827247200619761253739610791558815985149047939404657453241886251608786039772279371912464644761050855150201911910819768697493948541785890193532385322595182310447020832661844118706019595797006003058182607824944353216550808875038649537091852497966970499640483611562663364879863521201044059840555702636472805061419385325500157225512918732048303485498856205797742112527114520347024534325449771794639123663619039811403021536890706709256514215110518482586246311655913465312492289317932263695970679210781356700231042600803538868350981682834654350992764833459032807275100916898412621480070941711081371706967438612884414430743196769265568693113062192050017575707522343733201294180120242177319209337697846492176279048726163872832379360913028333529145633544764337608135323268194617638401233607654533010159522680287786255834405418415761218286580982882114241011646405271746745879186008032287314170506469346798458162644976640213504732597599358205487423513512064755215363892255461134387015428169038687933853581371527559831250476652643815247128684248549038060078547498456839644295454561036157034842908620614911112967420606114316743683543534070452435219955994514882165261327235256969682309293583701429569232345646465493219200405961936135385134501997598983904035924125355073338442846137349024684883097305853215309266861193125263244802699461412061551342624000413667509807964210390458667884844703430127351832557501491389306271057286817375755200189584791323471929809233631571825712432766165822630323063493149095395700019071251333734389196688661212268124268882028132677639589362340836868303418481440986265616823443000386500735806027770383929692034923380177647502956104610749629900087948515125629678173018246885148660316045723480382161334855226325712338515300652399272539098598763460574284985954631238145561236653493052269898599007086910244636742730797030561452792546932957120247197530055286102537539664591931790065429617376351914228005275987307588191281841325636898214040499768654365399941606223722110508496875674374708197479214100350150036305598871175910074548896815700015682964560960775009272177295741765228599605385650636406369906181305895249137757449183956601970331681926417176080180083376199844821139552475392177153491767889055802406720942405715948783830974049799499005216091056182919274649405426745166690127594640938528260014806987341015116864652208673084489793117906693119405286918707555044364310590256146645529467471699024741024445531526361315346221776434588277952373760341086044692396346708163830214782406809630304446764959363802430753430327136870804487421078516046711483974019153155090746286807200442582008998079022046496975126442798082806542949143214767441672389787014473452930538153634291568807545089086389611855520782050386036726006072985317225294114565958118719192777564318345063923697601411986658942341598748036905801763788935361095120001398822055098829886698132210355522717212657729220828072344781835083334781695707575529765964340268030366412649936199164306743135733998697771096628681002760797304314668608846522790881905059927626072453743011601596757480778351386027700373737074415644044124983749116875144045120217345586173666906319809816140399405855290858279519036664347907880184735458686544822149897175440759918697445647410920075650167429703099034464513790065762329842915401280102378528096110933424123004293795251311077130742899217232732867656753148856602261236785279566091196226454455647665601439052102244192499763861376256156861482435077340539909576004880771268282568547219203173169666069584223543528345507882941325477416584349437791798524375959394002290401797243493240025699159306892894518665546547551105739166676556155759774873222845724545172470339387176449465445861952295493533115789443148444685444749607083414790113876258866150518718458963348248557879452389397363239593121327564632727195811809166083767666633397001423867271181143893503625269315417290118471699673294316144428880681215608932971218730589404148837466336913585241905052236591575913769617853714644922690603670261401595148805964750443956092588120720057778897384154116412540932827124278869068160812582987514477500220659429276255294122926733650421126986918162101491145441997789402175047336829632789046899497462822053898512480424606901659216986466417520062033071051630681089596999656318566878823655717986976276084839517339310140799222650937424399763382834959364961401223925269387471395805602506060412652841943680374637568093755971348740224878682127815331461641235087103722457803189880098758642399256122277949360490334749296450236452648806544503072435301555326340894050738340481202141656432047212933343755621278691642491138231930958753894711169697874039166956823385671883182057843318872862847027184746436079120324238121973005979725769475407203213273464386625604712623369602973804781075795296632149040698453904905840101135259749358917271137837971421174750622577573595971043154813485637253306324234265850374916879529731261073658324644325080718840639897823642711979320918111563290807045015601575315108984270588314437090456759291043545057450883399710286834615082004073120044171043187997505921750501087796281747046927755345958377244255709411448925711098583406866582151946043102978965746497037731662457720859398232661560229997285334427663050192852868642254113589749807792133626885400088011637208972288435846448076618119605486199277124243756421696321936311993102328442134085499725198135331295456380354835586314375112466355483322762199659150304140972441726185505135155342106295840224970712085707120244971487331250117777203534028773136219740568018594647409729575226633701592771776282671460804272494314190819567917122415682723767552343117685503352981698838283207003735992457384898672004040702292013412276760664210828936258009529926397321486564232394499635330128059506043946509529869778408099876470307315397055327945300370949585578033708286185292002192463645416393126662223051804272194437150616189694152545470730132264472185598897135147106709409240913301486742542087312648156191147445393045360968640028474655131271141746910955310316600933857306511038681643139835368942047144040337355064220910921622995494899824841729609877338641644925965267234043734252868269185420880818143733282087073928046704486181054274059617561270556318455933689387429907422357774571697258197968199992985650953400027579270088562189241333115078057282828165909220384049692076843046217644478259267446349972698735755814498077238854498676198970386716052780926855046012181498173569168417560997826486506763165543415117027371001313926107909797818240293459464028895300986866834269465687918602096346845269759794218530566582151941058177405989162148101697446110502077563232971024879351865806410990190841969304315810559511113585929403484264296057093127943943966471448283611298022621713711849344756664849701035377926250707413253857208305959983672705536135682904000873688329680081637489068900705652249034535677164787194286426528529196214548226959894808289977481119372105213081248781449580701322754686351643145902412618508452908095850661316838280314925641793421290165167919962702109082980838909396212418230370182640480121719153387831084648734256181727908303249902249806949799626457210798832914531444558068641491513872587657291840215503892394367633155943012258918421908268071053546368622867193038677100751687236326783600726600015545227206325252681438270006861285803134452097006657101522523073287462085733777740053088715621846054273260828854932344105226587748964829146742108949712826164782881182659961455129661656607908291929179858058610725412692154357250948502324080749117154723239488170185099318115632481254006953262325270269107869492201176538466265754650227827757131672936826431074768207653778494492225180110070002577355250764084836115785751745012490211481227570173415674578493180128383724261688244807022792914216859809879080418814884468029291183623181484659636374859573517035919346936589178666187669048181640923187216869545573384569636010611263960490233460095471043565941522848949868796660312344008677726960548907550065931966132510189182849914344162527846871951157831724956530395567218706611526228022210707036632226740672992875382109237136214208604803681218398665982707842555942825991535270085440586867988023751439206944419472017337000767993600061347717862135660962967610927204835320714852440430675263520154382328846954261211126963509242556700136474057529420082612855171576840683817917788524670511235319690406429585940486370660946759408916270903489501017272950725071816719764864405134910077941759628117159025551939202552278072632272237976374965127093834957449101574855332103715304611877888948248851345027047608686845920273285225981675280687343225747319504380913645084389159781183169989719967570877888272124083598938656225061570063313991828069364777080128509605627065909528052130589704659426359976822262330228924815725634965486772988495030457453568363758315611400713380167205490274669096833229882861051926945655937203291393051334146106661553822889981912545829057797096865927797109776683067755482683507544186531248201335053921792587131966921338163693204790946965831459679836307015539870499029187540001791357186146468557600542526575608217555585888620593649997031449377824319119598075623527743858049174281578920100808946624610279409599904620768722223853132386204934994320626130290658617555740594814817812073316420476875186799582989616256277240010221852199528531360485042459469303884659500820582809605470988728014213159528034129053840285688483092737080531031688546361184701657022203051197460300741302991288832778411009643437942776007254986615328008327672300752943692551887736805206225028224953392322842656605278995209372618082679363897509755350154729377815490485457738301477629946819653458759932731941454071431400570079953402031594514182094041923462392472026038836538775507069344799003087061985835181622212663742666551647184080683824133425292607546309372156869727199311549619940593660512909126440946033905571655436375222769468712523644575190598617193019752331954761787050003123566036820226218999486489253266520139823655722724991943088958148750003343513338476538046524343679202010471755289048634558036003784960292114477059952445126427268480062257475052197385146874190887879153427421929301888166470051036417905121956871011469487717970777683832289081931458825519544550966713121780078296131233104309322204514607691221552197938948704421138667631032533329813938837577605327515335516470599443689771187088163436438086636641351095173150448353292123779217485861432291397217788126849961887552000367356553925946629596771002748725294331689689796204760956847044819134051462935979973647722819242526918055560813903897465002556270409903141129738139700849697179864750813269937450203700423143218975315393792415336957327554420430988874053483836807528683394162706171827448230468399573215917929861475472709573853745414874834030162354867379997357624928980596764813487450204449703058790399595788327715341111408906991893914006668790482603092749833896199414739168018105025104472898703196729706735001410378433944250339176496699492780942640658345736811622003088210850911791441496519829541834352708054573463780353093395642189088124536462512322609372962027359972140039929954256532390525208804132551208164251838241945854106777188489229057213162999187628616538465094085558747169460048477108427251460822464177921477978532060104586249669392820304308871929454340942006337191743650878254988361574100594364710982986175526859021650258472986091381035856405220963731572452776775588917362584331261949337185693648500363816764782871663870094584784215810039921907055504525663942130817268126262322772928627764646642796665010561219447993404714799259909827284557368831818547622068293465586668669613998894912414839439778603811082582270617738305564598371423660967796724195831244728255449042329984776062082359295205670766067224832835920014395607366347076683921810655787408810955208080236653726285791656989919584354669898354146758111917339681824877838671753297626963007648385277928134945313049360729207503183282206489316056128548221463330619975311949269780475013423123623945609401853022965086316866659797166836088793536652434459870491300952359789894751098780474826494944064104316136880367898411713393255060082809667594812264472133068530104930724007996142739696921830401443867271200897638632316872490122481584526858202158705021469014027573980575085764545136415042162832851837193020156279146599749154524394275096593331766098979039425924903029559735507655793746957293013950809639114848082598228621462357828702467554226590727474005138483407933524130163068098721989744251713636369091231937498131174186066719755566022617722084083388255908144166768599250348718123000280260620646285521470762732878774457047364335914846908655309588829794024338211137914812674138704684735113509850842095771254194520377134322532790712559590406359064370409884276199836335320863911653573747667444823358832778967764442707880196751025067386309391989105716130432431600846461558769914129620435135422695754512504348735381524587296073646336485338821109457235377874496325830045664041994656354929107453101490584310401696888738857977609662315555417185778141717782615510167123780030838850930401008052520164392829895079666115832342484152070728867558528511474428501841297701454898814079219604513706942481816883812431202343467620641735087214538049554927736699848820803210786401370499065948854723489920425991216513203790211142693174865501715118050600540001746803303070094245571540485212139113224482189180626693807605876739782542819640899636339614140530622211027177831709142887619868024530449126567298038518842069081873093878569566699125795831755835543390994164018865046087523421628740575811337412286028927259532404969771395255713310504304354738279892821568805344095725884503529109637116695335652880747709663368934973468414107318460091183612116509550462515841353453052253413388618207813788836691754498384021614982948521958557329691214137950689929263465042559756336417602035499606554385200888184181805978514567357130929779392832147050047059685966780000554825160031621338144288530707824354530682216872773970092844488386668048303745342448025271714948465012765238082908393526398837674699938506731165921177194220738087882639380375044600985850703033994381114726823101667286879440686123447314303472405467125028126248521643749139570770751547615306909628216036924926854166585838067718637698098855359088577598489022007347728018650865510819154689671705702907030404344204895494008287492148520178557015063509399729409504630694023966566308962318630322100617681108107682530793167346552198245239569246992649043775612071789507502489568858916949538250192494195721458447110139904550033204824608967070591047768895633805652128881824064147879116111215971595445883770668670646677618666691045802058167005444570212423210343462532818790424446206125484750811323963471605531457505606708129965378470396668232101620520378139774532673436212955535033924735458427128607608430585347625364016036424727906720433725162808460012264998415172054353291180021351729141420142045729528558409538169968634021749279923429457880943039445925015520793543286499117568795639180917170091299508684366017720287763054565743567711410630562977316402119283409630138991151565587189617104384687417213482462836099471601713925296053340463713450531846082606561702942003423335215649278542247332563081682349808039354793228130787775391869804995247983971652105079081511330464000776814089485138281154603742068873705883731859342195079033529364584408417538302161439333659505875096968380394140316755557769831228633975146681584405970590501461395472245994290480559647975527056871192031475834079307918652066445018844887226496672228504853783771572821779661377212361925117404959368359541720128617545995427694310673641916077739570075300842245237734868475160434360631148903866929459324256760206594701742814534323260809455600461491941450893954709088296387661525122653010129655112210426907673055135789053827170660710284625681128213981953201270120903449323972598178656863928956605345275235986769104635445805160884809216921645437904493929393882541461552185534706923775490628554335644743376646056015254731497132222722899800137759825516645953089214934466205017844936627280799972956567758998680343653242228953290822704528782359856818021378893090835835433054248741543269002796921586244779501495943748942921890705392082720314846731359254697665345643503249560696019581289462419879118786220319105047632343136500105170714664482675455025983267536900338736027107868001339684814930335799440823291542257741817628178339612581511839249261252375057440342677670756766778043481128222784908422169696058767595122870332304690941310194849748153052497008022959745494482501522570544287495358960904431832727181829652839328212617552044813863920872178164142518602601550565579730535937749524240592321978136360048150709245784851783780193860932769905717830683887997459958612592463170679078235253500883436721298868987531339322114389982797413031764355788172538930797780449607733985423999707175214483054767817745907425929184260910383870208845175443673234526064325993120930054453983720551707867816064008426763778036403611758718757140572170795513888393011082517627870796776353791179525874479682797994384385552169574389036956614382303155475253411684632944136306100468147006190903854165649003451310802036717237585522348330972355349855245703062334826471920346742368518712604267613830931787537022049535800445063668010746406467251439725494745243990711269765556818241725010086067383741644098030673046232040992759166277604572469728269146171797373878166303771856617233018375137681599973302393023997699455044580568580609473908095274573894901093313215973990103681675818463464743345204401365284900997003829826918213277972060256897593439181183127728576302955348533707123322711685699727456388203577898117840387871197107437995837204638485342316111442472066507702209819773785839111209692907681923626636324625964810985656979382152173346115189950643155112011631098835462324919032359034876682910068071390840246062328764532329721814543380587675752144150109016631181170181806549954653966454314397241895198129922973827934063319994719393635146005031634068105446935574169837513697280205651102310453065682251943208573296448088761235373474340151660662536185655286328406440774770660159918895808584710313464444293070868352432688288691985273883435423096311827886561917568137441483844571493119110634780918384742824160650460768190991439484676151154836755556044487916584509822960307876234367211892856694068006353084859173022314566031245460256216770019508935677495111449856029000622505793870567510606196210236489504906905261732707493269056548179555418691150363458690952047196850343047766808810713055811201901040206590903459687236772964824055134423941650411527410005056969797997492244852497825997961132720099269323062810763216057975866930208828200615406679025007367022657704121994181096325294889253782690957130255619806379870587061444421723980181806508102204581250281255890137089101419743857122510991025706222435206092869703357300340592323208126662053903449572569011656376591801789672591168683744747355196323410452132521815408992360687100950548300498900208271021304515910945563478910579247298612559947439529100233868541498994765935174531514081367661441981491586415016467443458648350027079540189168635324178532233937698319061428433321579436984190307693532305889007282142613279733626686517929075664323789544155517543194354172601677003435090797749628269082262829922921185523205577879880079727981427781798886603056636565401320008962307893268074282705559402945762399457807777276328604424554189345665298233168008437819597771303640194161350520488427526773933103911571117324216611711269774537752682250160879607700317075782882670869766470443612045186471353559338336853848615863243322681833223558902042423053153485670216390736844665043223328295785594008862440026682954451815837000999374737565023434875898075796800735771845926623748955851681195852658152206452397242709530089463387581433156488612299520737442239459830184408228531134673742789916184672434245093006109162705078779699281869322325076804192511800799104034753453097170309475272194791463157848309304648092313090110160284952809638303927687787293953024625919062026818657688700328704508292645143042136165144068082222318525980021631383862488867891783393753382900320039475716232873630610284653790605485719414431201473070159219205434177816451540686132781521652673214789502955811252552820793104680875736969239316782255055652421449055465700034907053955403076151975374344607975205204119806577672113655244951165348905742962235596881072965684204957573495740969411518745060066369526908886598213186561482774528068256659114543619076455131906695912376034567307957864740370240061467822310134538143613015019978439782395840356930209248524414495928855348304424086903128277616365742198457487902554742452951135499848953983023961272933603623915099508600704115498010093591849130939667965795638237090131284856010221038946351050215069297202235816257547850479300210141131099465934505088233818241014073142969594216043091103457196756925686152399246518220363564123157353655644491309917784773286309329378243738409187265395725381333174101092189039855904698732188545377043774398109844945748088792327977456405245325339611926957974659860344980124236882253091780802068119044692930354044501448038702822480964104790284514936583867816219539471751961177121690269112978637036477127569084907192090632891806913052419885479511818254046912626760965126802774146870596375542680131071055257677532080156492901364768172213198170785897489758972385173697141991790377441086490273969359438473959984875917241700754074669802349980717065231584229418434953300558457727447690270567574316323867157549373805652926747736360167777941623331988288103843856204917058260777607654082029243721578825240237383282163049269452980312720529462656129156612870577244905167437854422988734771905672618465019629198093541043420152752496377300255278723944183904211624281490814713008303322045830062138416385555884346314625630849780199860206089425245252728414894685016392749553927445232298480271326380538167514029453498478502953028766856084637729566972301172216785040394374676267788624744808187280450338581098257309265677196404819980768748951024270977564187752887163597443366880741291034094727673408366036445466642575205181539233202211803084194211289561578091511232140037781011529652229718343338462814656706968800554266029607595918239333955454553984148094538493704147824977735390424664364955792310834640116448428329143046237121031490873962167328776572155896153135947918012228977837320017504265940544039133092475625610892546117169340444143245889816259570109771433735245554900458738150957494672583316855046292744514546014205989744920351418654466015347937115916327226632386555570937183044415030077272475141825270953438444361505741425024166898889244897174471561772147178253062882840617627290335597773068431291656095437532722575533726978864528778055540188514497397885376597086273421507588725213243071550055882591612426720062139722145716233315115214724653296991675429160362707578173694606717386901039496420574220162127056097085126168289574790301401189215899008872982401609772418327752467406186557546937278380265873873209972687738192644716940712436495214250656570619315114673139386273166360527667162900752932393340878219929283832647326450989334079786038192944880413987686124145670747966525875589664720465507097369410989529097740955451660183870028126624053909308648225568167109581000935728628562278679255752666984132805333159091331122435098806621915901432026608123472551937988690582672058682813036638881050338102732806971553363044284894046940367007768143769379370938148248137233894559915695925099442712843139184922245028110020082406408970473610039028186077384624260875321078495643418493011751954712891997742028990154708108830843877985648944905454898856403462927064258914832154398725507712453726875006666783981215290930055875668726633645009167305031358396538868843569759796872909831032639723466031699839278321649100213276417146984431165824186133406239030642178826134199328692615240188469130109526825232488656138824131241476209683780722797374203507741726763016649407876176743833935871608943884576205085305122507492306097915679069642024650057387645801987175845614978064626236199392189530332204073314914821383795453335918681041997497534521648544866298187746373666325828166735206179874016573774672050264946623933188918617762089746209009699894106985842344134485461293776318145408210837843667876964933894697387624711535050392205860003339055579220143839590866460495073933817627725401626153321498715405707158209153602074987812880689106244076651363726748026347492836395213425189199984288484554559373372164381986971862245796819084599181150748626865191873844301074909781545490591432936581530650307240938059917481742754441739912750035388989305733224166208324993146234852290549542655799575519456183079600988470050417307933720895692408611811563856237803825196566414427476313520701513980635426317608445547216613309714695806122392823223542911168682171325012064570357893253493721088378754022737400833376036442017488341383900792917581612715380962761600637664012759057171147866403083998298903440958272788919702804526372625313370152389583212271788834344912602611280041496541049211157419779745472863755435632374637328192142714111381030158403408616447542362109106075123087135620543226069442708383472897364477075178320026755388581656177165082055277431589789242955667318651954131425521789356894673986799860837786185306998346200888641459345979594476421401298376698744611758979355696757364145569366316595980110020920514706753076881321167854533762929015596578664790929561915696858662337516067066231977258604632692721139961038690357981316188032257855300494405846834480292143088531859584377462197993603754252352709408903896765822550983685738704416318030402999824767172579026255626285743205778996328882942300536433787579797988649402048995678269257817602680862555276707565204431523569299155294883976302541930095174759826185129467821755837923472908932389136664453536374815600916770451170693586663017266003318627327822197420752326609570429711808356853608238248474521704622898099328097143884464927982373659521050181285281035160897741074078326680413834679251543868984390374570277243380891195370117438534250037824196512651955632377924590694077176989516801759778715014453266005977629795089968101948773051355573106932900460055822436290683754013840505063183680391056798404686943165436771147762497664028770337681225012038148175434315922252793532664487715523528224936897098789731127675930885608690475689447059749471598746752459832743567171933773092016387598019847228244469108151719813507389321600368442565477031014142729453590146982664891337023505868903968279734551399012149957506827710179137743851357588699984112785735654902452362417800620598090805653543632558256862000379678891378277004108141574513656505419609198757425013646738253082544654463707580861743111934591259686149047028785773921430752917182909815301460413641944162072595116888008664304116248744438749059309711393511008691212094386185038370472439959262378111844028074330229204281243450435251990440712737567733952064895058917987868981641979165272065747445077914622519709406844259088222967177875862397130569666285207565143215974093982376796231115372072540820644588522447286736446302209870109303541805168760974324168574796062631882162210666559385695908513594181122449018014912772583376958842542282857718909821024932671864441143069974934397259614144206702078815176322074144044370775349604458274150436346636497501348076871445730967266055868253417618950024424195308396925859577548586896539956355150747316198493295356341709480396908643061949201703385028768614629147045489795400445412184356383063518881652906826803616486752477656643889497874130415180442223289121599562358968536751850777962777928509825551244694884028955807551523611428421511286283766760418611320837145741471734819993912859935851673750052963277918138867879673034401599621797991263104891688910649855108564088926640948996283244251214640445747472440900554523198302628959620180266036093448735158206678259087411739001815743547703367747126065618176309548995817202209365512341112609163988835612913496250387666368059370922429189976581205066217682600496086308329861067295702482669840292093648727511057224253897430106577536966949635700241168682394048424051893028835814724684180642876956683204110914294043370386101082442142555331053459422261981973331795587783148277768914430326061841195131011642448488079254581388962513933220393359965418797675660896686902007463799682293253672942009075185787768618785943565077438823513065786705890413532188871594095602392625513088957847294953861772652728677407826070975512156337905696474940020211784901432509268473117243935695338157400538657090999385014974686032983387343523486810892800278802614716941584598274478641573629370080083880263752100015139952245745496030285585870061850979508252629015637583061524224368108330903078512318989021369220241089484508347033812642217723131278959392517571802690968227769964922831400118478239155855549008106445770059450238468022723466927192799990522867117900113728678897852557399670762186630030429214388148546083093286518889280055910564920243209880276758558491495168271692588260126420099180075592013759823823846069744917111520466735152637651900859709909526986346719332027575595466520859722254610088424562711689178834448123723925297076656290740099851547273675681562793423016064945871534152781747265377315871264122201910467536555978559358818711748603576082656392250232638220850440621262499066678666021059106751190333776491546952380896913815710103228126337850892957475799242256336366672332821917858837662614489587833189045089404346748350206439497986369872311616885292523907443453634637730396415649293607299660612054296397613214545848130415065081603753040694494143281428104066991514848623042647177636294614896508385398971570769722682543185503847664860006089063704982421891914789967401373115829485315025490952385609898204266657749359844809841460520821943233616550528081892531079189531034482002752471823431893243953085812448854945513881752812407608761347733121836204265132885720563124725891565500561336055085905934917440050285334355560034792279207761596229010628132099122204491987583340398526506438662072494287602607088688280077225519230550715389619821659662176991625488334184555610694620458484953107172282072164998728417331580014275611760766408776132781664905584989675129891603617070644339196411908239307361383313455920771678993289228842024363434549067176006737211321584710510490857765342498343400994846787910939313756602436988754369241185695679288486152682247775004856398965736742244305720821840490735558105961820960164503955271402454083931707606043480391934388392021167252603796852935337240877614589637058204951474749051440250056723138810800289953987083858933326954894109767656979506613740511169672426350485225440633074153323939886017127757601110883190462122161573653921029420022389208298986491342826650888346025724868215410697589235467311957840091323927336634451414091482744520064987604686844722467137516254032306410493171568941621373480337960378255779547982132585580822742028810508079851494309349134031044882064983979428980891835157578620507405631729042349967335826437362628687977921368750971733236937672571626089418873832081502433212365688244785490021545162346219406949084742105719573072215290395149072710854900870374567981435033555947518229868085011794081883729484184259537584648760951575912705511652290143013760209005595041679821140170649963626850609819198465262127479221646538901039201561303955388744175082863411198522470664301141830598527621740072087547941138395220023950111614790300527940546834858620423018345189271327277255256865210312978443378170988017193453349814460454036778311975784354816408158918507371814165852460463197111605791178490551613929841815781769936217214413196704439874007316318081787412690476279532313632202226346310629826792345732402679298638485595514782287250515474596444236103146500284514672299141950337632726863463892652084978062356192049687000806339060273168411270205635314257677177183908584927777601146720054428876079770364567625467440198052921295005515198417259403414391171799210043279499712501901224149145704127424385033454682915241409935322299434373510258598163431106237333943235566938877451973837549249407608974850228206389685898663732434596141758887001649556597564082786633481225756080852146582319761496840243860351262212267750337997182459548270005939538760616380723422780349637835190966376506924386362752902768391302013866332581952441149247631304140204097767263909503391927806937281190373932637077943427029036694861351343506336195193354508456483485489523021490948749958842870045729004708435037137028735323666602335489833355279231041203766375834230200202107429021175854888606111378003139915969363709080237984396056186626395395806610670613700943512294545883547303447004222498280119871586560384714405897447714667534799833235312171463186680218528200433727125167458723203216500496927435106167623117250723717529777961545480665679139046560394242839722571352836365539732162157442460579775587711962867878149181677290305879033004743033934697463749471165212309816522037550104470436384075363314695927061995827721497132424406038032041482804658923826923934271337802919697117561055552493330267333999923800054726616520326085519972143616712693916945667769034084911167862465799723220775897546631690984262493725900238301340612676712907084802046434103156479173376617022539634647090656372100721592497253191133433665017661084027238222919016871301378234278767383333309506667084298486577349725233187138403138282272656233163108228190285410306870633364654595320888542904364261591482045989458415025074387111892734077267057208348454238471495197068876637587529348997941143888131289169038773551546696040572277540688009130992052786360525558509547082662958104152646677726429710080838308583089353589676240449787193119145703705206459777986423449900866103904131453343899702646197716374376866401914338333480188450312696829221116427985928486854642323022823502902896280519725893731767212690328296175207445922282827888358505455110487916786417277060458872630152720387749560016155629415823275266703520922705862390335369334535751762268500917520719677214354673604315763071351031908220464168335193032673559960021016792189805923276529500680211551970296375104879700811778784375781053642509145532407441855070543874388925652690424974352943837829673217734419727681536009569485219075569453675368143819001696424510667493295538141372687819064022653088797412255031068050623971204929026167358634027614966436628468572394195394174109950133479924448928356090831163915211813198701984679001562232980827785833028785375544727026188258708413705314746191702141770553018349931972704634614210792310159412256949891192237947557689488963768365742369254551110637027506624882824294709212011085073335845551394909798443262540717673327794202373033854385809550845528921481434352283352810363411473922319542946038121236146067247899595107999777625489856860066114552372023590471827943103342138108580030454867199574371334386964414300350605778625843254505064629574985579656585278986289664555859688245350028266581665783592933906977755197650289621187697573594867521686423624391869655548201840282729446929424909051048838221128746848260157977981217096879694638091074790341382222567163040844252811585010047726544615579399798794608324454580466060809697379189997310087234728125093959219797144643483343894386528804600801291515698979202108029051815185341394222593074373827640282735002147312113357841772849961151233540795870600408473168348473176291379512744373881672814199196549518550843869052194977852804784533193195861091571670652593206042187859377220920600349613000549978833493665704191746331262839728655380469631690284999675875659059719846429004480919746721397289548529796535797420056026183850626473226919487294240555305447493789189495676602067087056019019034009639576325148295049344502077727995443234882546761794701493060446964250073318957152170642211513356286353765323473572249403658128888993147803499647303314650981198493767433795200112358762968706623897124805441996601157626837767186633005376374108718112118898084368275234639619346444556952796683692511972067537485850396192233167501624607982372222723267339700675800560262994011053598998823098677120609789473221942956338270566151298603271255991644036480063305225371261405357070712014995115968343852124412270842626579624243717826972661641951049392665963817658814057069383481404316931902874474354950705560501618179052850535384177990230312654389368560613239550363074070598287050127195365265400475045193376742018806851571733721007213026004568520668233546578436480662780528197337053461347565629319542901349143634867734366204191578825358033655586855114941287805086562445743350749832081063276136205282536952154134451116592690253810795026220082573502054052659049124738057220060889788938534312035087116428322842304595458083665954641966824842890300000876537359249985274187960825284917644308593298269684662584446177017246781772903337697080813061046675665691456767864058586766692054852116661106568637850931038437763425984509066053795841524340534726016803992504491748307186457466501897783561107121099706487827411027448284681319919567647448661182024096986325237146164667740499713625214718769130918608673110997449409233803237747077835724229292784381667337927888152935475836290990594323760477239473045944010757174154693190579071143647443685529650083384520604410192225888521673820665444243412700261509485758273447064752754112136171654334025679781703881203007360397068503989988324315583418430366986059359660511974917084657136195789811385133980740206762538863497453926758965308679703356812019172434109118950086380336709817973384394594326410340129988530153678921170639598323853714256816994484067406636998653671601148069405731351496538884501364291882196917082685439152086673981266557116188993611580218548392283328026951667874340044298611005027826423455898232107147133101865300689092011826916962802746820790508046263020802788207358464454712995246017211719939290696128935418693065403674000489934013845871180154923854051558834935940806054030172957916586574219908154385704518759261633681176679406741661011141699676526190581285005137442554781134774626665463312318823749922808422495089936300999162994100863371971519052877751721463328015142176595672468817637618567726971245751228957304388348619099107000864648354568098124395708330424121714887981849714393103721865155027438962026744676077079105213678517701828644085162705726198660001085027982864308179353978623292931899422925187993674162305478198940857202256661248684273973126368123489642984448079796671282063502832062048658456735040658772398145093845604092289712880582740495057086579852546206670957190328235604563491965127237352783005185208303366219936182509921776048186662355377150027953354555102294594210044720583520902537670636645526121404133523391508507928803231190535754965110429757410660692437357179414083596655205524103657846310572563475041342335877090124604662794279724919644898467069577767260167698141311105589210582124485619951090109437598303414348784953499695734973835206813325024480269289283201474026301940807698089425686119581936512117479792937897614551873897246194847829938988976808469280365159325176623782558299390754568140457274413284420119186224143644101794469901291403942484910833752457048898218158608005651394097643772369315920471030533025872595712115760001436175106123124270413867032444763753369874560666060519845160684015269702423794220417273306527112307737599637919409599503111939124956442912479489643373230787460748386409345382547069863868988282025393401258623032611878571481102115740460300815346273663878487353334960926741880865056985940410936222846768703221653201799412280958543858854140148065021389536320880139275452350298821030776372194688165373107629907268926370623086949349906158982914063339781594901452781803471070336340285859551886008347314140027057266316038172009512911187057469179920953157650686439952355530534203785109376137075490179560731419567293734886598145874770580999448128659038349343140570235156538144632254111562129216948707746847748204215832640359480541000844768598281008868780018042981529259044197879703982796281502781998110091654143391264292554259931260162461004524425989375258930992049604300532734642874162812953398054914189560740815046619747512171288901089353240025096560393884408017624575323159804665049037312248146388752223042191678745711418440285158192501862034488718623791585689464188644810261590092610467431640710021752707987878844592422228182005778812644221394459754321235182039381673670717821908470865105034044510893944153005559048630013686941330783131605228044069623873479882692559610769178364169356438739907594549709215361780977375446125639772967794407161939667697344100223135793745157776590313360696158347197066600560029551990499939457498491234574548091965633082500835993569767911606592354224691865813981861818059745026946579856102113539347416918052496124799055102356976919775407921789030390620212240678016917949187709523914341218240148578099731796547530421607470136189799942421645474040265093504230560391963309961339439124729957680111613189743113742316824294913109817408139266088476545935062726372697639624080687096856431941062021684042325626727583938388399319328983585011348121152722344693594447953215721276844854333039340366583353890384668968687385352287851430120705865857435978333840448359678403240787795970401278555880966688982112069313017087546788187217027386353033034257003194803261047815401874227363332447200169118243731120642780697659931244288807157389482848584337205772048961215661044463611157470240715814237949989830701364362795752057150317761763671543034865456993345599154109608983704415488688840446421192920234930035006500232392565177544811506171345002682421325850661295280916442959327769905702687617337921345260507932630616483277235202301183868626086478929868688572092304289457278402310941351813743549324190002455434598738591632943523542962123742276043684758601015532527305549768006101642609583956275893767286028040505622293943996528198439863770992659130978398777676691487473820725745456696146646633297657623928623652784318426085099806189976754021543766578179802993364093957024346752079607713133453433887521469404935060173619165938319663233195056774161534302191681256905000708269658325977608304954939753445812997550732412800778441665496430235465784676931627852885114341172444278846912914537470708115587456297541237882077253672291360527779335039184971370970930519535464742859856105846155335958366999925392668126961823058394661600616141100826796749542347717781731715652320637261841829428933684049401947218992032041865048432549209952884495389545358800071105997601323828287300442151009412139437770779246355248311639921842574291132704229485392335898267979803418855902971829520097804010240235989986623389700714537773598458827110281055202136147601812902062766162776959726002837130683083072585163536134420163868428946263029098464177733960650629993138618899839504222701011446842526385511292835964025672684148058827990111880686042665149699477540639236595776944855602593490564880156949646638199767159329972497937211192199227186891363383322721203350170314622002714169567351934626565601598621461470569776641688763160565076579403240047599943541713458344611891961865550708020821708156575765375797322847162409089639233971815879849729518542031013459385702622568477445228448963155402341651001380153418668743576225682979441655014412696187160880265136350858941463157989809017753060502440264892755695182031711399678078749068486929024387491512076088455641464666843049191961401954888081302640916530931130304658462274270759766608606576605173475939631290487493323262896521207215931568701414982331038983091875260254986425134782307995717850095830510326704638990295234441725044079430325877676313989972800835202273486949994290459220329012548364711747237163329895721195133771564921282766274527883986991184570297755776813892572082645236428161538131081054950164263043637274580329540199664383673911618816100211888076622259605845705800599788630330154640086916116043304224313692606722646682352342752843389334086874705672363841153509430380495666795448748887559935853312875555318261261058788462848748443781360911984774184105364728108709039598196007999880964533803367633596581026999697310733913557996353877876474032382933956801298649874567491806533029509432294142022791025433122841945910435778828449112241165053820101224258200526866552797723982601962674637168948896491135051498686495593396197636706652490286308684922863269884658229230445622571337145247100106867203135091414905686852700016659905843019997621088756622340824996308234884735356282429004273944930580979248058532085502082063924297122286298117305113496208836426714584197054474857733788523348415899724634355284655100369742307266312930701960775454561397215299480642379534973242860985141035658473544370394675865646568503361093545788781320018091291933726120299402924876308936120027395402759201350139545494137274722582007520478566527799658870590680410846837331736493994155319035385468090471124815638660942130162129588135057786234616711171482460845387719860760342193750543456173041207120398593329469420628032999263134919897519281263662036396593586099841062788273773315538171542042587877413401546935729830075348697102135269437387380369212865027047651761143596812983026800290868422927500222792930703919393540285034994017024619491852636694922592364490266550915615872735724933116552824329487141823315158932008373854507395646145514570481066312184853432872132838265953959937304513408165716598482356760130805072387293565967847532036901130110292396739493024850336332625012677170864663368572410162266315381011566631517024147463029817491583046650067873306741995553358858237537502310979631322564443993265805778621065294341217972142390684498032702351416511532574163513052285050525585619059282876722850849459169971248121217025241091942863632202694450561778696519917168344251124491409888443881869358369376939842866709814575976974128541162039066700038815552206116120207508305408130865576246990028484896850388409855535462463400007255464462386894782069117863946743760319622957852173970382149666784410086066471017120628269342570855610229865669474528115580208111910303392944303835677312723047919317395898435440446228624696671139290413093346114843303774467765103100225877531574446255488403646421680490591370729582281829734898273383535162952838254022738599849225339312089284731213083911994132971274983221580217208543921726702714851574509168811639023724850524321972303838215069454778579183432422677161745069089744651421568790196322256232752163484348907352785102071046441469961844683270233404625222772816479967159126367705741340666023946230881507904479145879987867181702232824849221294617932344509349710086934557863218621374508986929088688603826352181932031275481157737464212515308830124738322926312221053725373631142355405389288829300640984231270076572645937484660148748997953994367849027870582072257972786578762714039657754842851273008496989580224468021137596587842026424879081431700340087713616634302295505647660463613599894312245490085265200861577148057323423928982726555559629283411286431027035000717042601494689153403602862146949601417914573608759031009281083319995128046307592804176272211618132108127588328407549221752081356059485823620870406789783236486976248662883626874623309096957479185752490859086343684486903742466261643338377006519755920206466719611864226452565714890927302074189834815013733543827348716127165370704392053470314209374694088322679389998730188705173364772184588502259481518451080051929569645391518396354367185059275508684240134761099818818756980978214050118512918341960842686209478100442267562171484978675586806173187619222851288682925484826837357976637250804291157737188432273983539174700113092040200133750046728295145471497484875716156362919164996345691277906258195244175614697069376604552453649871955074341552067535045038530350889662709754189466752477238843522744884725678250760739999935165686449134892408928209092915120824354713670009281286844695335294841847483420943255272477438571951109730961960698385705736019880830019448518497704035612897176456882360563755629084232234851548092613160258517964380627329978265339971135177596606132854977788364506564676638253147682397181176544577708839365492107339215830320682563125017285723086971276649804190280817604962223537210053895168766567159953310280723453021635526378747715024478739839447047385395495518962929859636888671912679952384898747243483145985382913106758410208171562675294013130276783550140200770055549423976681608703538313759217942855730349296532163430819354947602433251862076159544819107507151062364218666201763828614291285767604011897726145087721769747439746251769405495961126504374911431695272144903152772643379134751455722007855337122527471062357729391046468947546700897597088462556134682980499289937148072598192735469239346648495747139860480090271481150437279944752980062669763374803393830986528675416780372298376267093489814270939904922701605089236649529672794110437012720117073309116295120939896085995994398851645662419958104731977803600086910729525038228113716029537407873882110849504277402870420270245438717419250132920665967760266423794738060725141428589055983460417523306509149206917145418141883473334171150436491611413320267868409524597960445470507782152393802894799829352532262468012838274055342836479942436743993655441429011190773242358710519099999967050893690872375227675094172726390360512198375964044289901716081522859661221951754367726542624665226147913257062747736003027152932917782723592604226608010446858616759465470561171740372760198535873538863885849333506091923532844661652070097312559884702520061776910515195832136666746578929875125390753757335700634111159516483322985939610134629991848790190139510975071627971215240130624804863163958194956661125204439325138242091985343372346143198008882507318636830959351999334207697600024177301978098343568564691403546006680344499408120028979611002959044902566260017926828431610251225444031472174696238737133300262931540404071046417875484582903094373171941088874804470674794514067168092205686948048163555047122185750384272302690235824098035760632794400717724131823003662758556077025351574346100258362075118062265012416521047191475035378164277703474561363894595036926401947568000639299497141716498152438420795374742165868328678265204467835015446304037459322894702129895060575792034841740277893979964387066643678148687588425526357953759900786000102117150510039693191410143004330463865865237644030310156526228994131942042391412442046312506828433604763102716685105040179625076827433024855425018585779074342778207133015284978873822711963600384482939291527421832993276624454501989371942088703703608431475469250810959266306399238640847204931982114529085821271630380248349680368387239539926989135053230568365673626975332955217597036377113625557967988747450990592898593188247918956746370134325390915001465497915465554965673815695885096547918299070473705902607915472481734965103730421019472501201223170544415595091800905834199202345596096194601666060006315839747436150646079306845823583890284474930298348889632459626650539120123217321691335619395047809233246963196304076337156324491971246149979518608820366300038677360918908694102221823576856904497733625877809147641691407365740080902137749271893316316426771859347763416442274900900639330756558784003145850542498633576440223178518419851381503999212288897884827881251682270564193604107600520064457328130376427094334917816217187208267258057130840197871735567036606703667568824506359108461602774690016213901268460274870543203627114942925486935120569402469409640814430753778219205169691900389679376779450674723924143814191185133175196121096885255986878016247256234726610671123697977498713725857439743452688279680304485356894764768872619373280112066083602640375202652794642434774039027480585701109042917856340006974526555901536568086518517176525545292959946665674107965748352079853675240850682821230462138200382299446386842203656664773515446562348051047548680258919212523878715453152397598067221801480824468264577511644400256558874534434588510110534055843854822685524499410302718657013845166723213827801987843766174628286762769034120206636068537661599730354215329949002648193433465990891792692464485937427259582767171697168727697933383651558771092584536343082073121321967670750535855887927942382490349178406336220923988095771341710062321098322533114880952911643735000708296142582063484708272910898109202788213787479559133175311794917236325033851669758485505227150905908039441053234799596487055743681950168776895160493581011804973963567220533511415506767813202951702840687305400556215713989140933970535415939788550500811517698886011866872605062624947455569988830444706260084594670603484463370389509444370119537188182510032247457147753932334709861092104110755814283656555075759256196495138998167501892440836445039350338748284302575336496768874996408249288009027196072022373117286868483996443320974636917735596370824432656755692556183001842848982015210126923570325256990008209786125420000877738272806749349482514362245210615999539103570197762174616358217522126802280314133506142352533339794060531026526771683824596048177226816785524952371384755371203996938014751265622980262698834731192038987815448891252754250882423058176564403860941707054689549256415919197048406336118381214911920696467131880069273689742247385086472467257026013286166808805336913229767095618167852849168896371602258630173061704152676862367891589809518171548890912380356943335351385644830248774484632246558137558019504550513814674110032129650394263213885420871932016298046040477098618309050991003210568980895936358160539082081885821663400765048074633288983316843216486900904934389805548183225090698548129930087276341898374435924290356701763762941546435302818857802566261029854736385900467617426018551452027880934098636938164319252288751866842390940020741931477726678033512791227758799921585287336376816286416323175207551631314582318932921806567744843913999486530539588343234229377603029014766125510279251489560558742216769961974512719918430614971671195168807544878088179458549842558603833225466303795559466284456184364192634885291093239488160988874951817702677106337930020802978791862576370986653335405385578411067661898032536640212282339011842558134818656362866384563622027871065609657547535869185996289938340616665743598073287425388523875683166048054582079435705318082793174754143407605211743823008840785697245437670045757436549157759607116063891483442827569149763808695805309463078519971065086319269505335133047990610949613479189529799339233305114118566993592648744525504462642173492390316877376728841474714863328882150448046822501284605950001136046949653967241372549820922188418285127031356809069221563187666133209619071919845554351071987341526556583775307906329107437668280101127026502346514739380682456918775767663868302686238289930852156748091487914465669807716157412027505184396794852110889489060449877797388912391378127878634699940962206599948639452488613137819457327467617506811600934221791399173768353784463157175402975060587152969379098188376639050260365535546117855467781754031422720413675168007770743423936797055930934221425292115496962453682747635189017729749822529108383139390732712602763541763543664215948787430528419899708318789547002854156260350282058679912183026004367108187778582952967509020664810795703664668673620655453825565594484903814897642116906808745120906288575965203858447272785978597354398503938988281968010028655302380236549567687515948684653719439338505958324346404190038667530950897973500087842292278865512177120466595914972093294422813557196467112551011062851922765016093826489647157335367237743612456649387081319109542374644306552300142066193488443834090200643808737724158736730705823921920331581687954849205007772897149519807930749906978071380543749077058942979570409334115719840981747116773611650229964163197522207352586751285296193327627184676238145841129727304966131977360951605941560084027611518490964939520358969364321137111550972671205559058366776870316215925495844160410487394054922334635300976749421763355131824999353343008877048222723714009111036314927096669744650794310948642402993530507425805761397801237060894319877272447510656223712319315523430200985772709683341954238301438142549997467265245494263751171475520397267244719019314502234948143578885849645967713879238089587476279603559670559647287300881741720941321498836247816414571531221670893312315330203378435868563433229554639541406163463641970405401001662889275325218229370114648088833317752547588912836849356835462316084204658687022113623864865744290587974760534752301839510630688421795142067058671171754900905011717000042137434428221060935194421407375287992786256550153506206582846009096389855678334764762055995126786718579868581627029498844445413594497338978329914670656777501693553896402412593886401091592969341510072426107719762763672000834558444856826418970448346071374993969330544930929645231921169914290735448028383197968665339583995368974990777391282673704723136692716376360360665372966416835489709218161379431396118908660539229753878878967084248769002247357253452636737944599725817415062069403814293074868379512476346303218093965044829857078083569787500873585738453195222173859816353440037922665100897142450349643706814448464235347781677353098975311804739580065499280970086773449025297244925916685633636498233016001522147708459270786215716942608233814681931764077141379799503630780741153030481280135123613709284824229642210103006483323627386834575956942196157036162825447023267792283635355876780314425949090230838564320401740108305604085523345879262168928963397692263144633352686723867018408542750945613769126843055975147851723204470190632141149658738533130486665078121316533773767768665178706825770835772603247052005473474498004928750562656906243627795060835687224784306914989756669059344296020402581712155761373749769754344802387485761418664848239158047699084168570531085962264561916008703065907341560422148412014349315947456830559267553035553476852011991700961361288095628724330478400118884945858252392567936668190468366236837484218514990908132425290416559296146376089380024522849942710305673035389324698585712275221748671720038628582766595922445768129176333562181606272068257380085829963545245576182537095880396287215558630037935709090637774357191956705547518349158609622148565572215818416940187090962375638560700634890098194941226495403522872553385664497874975083410264480264673710499290393013169394884027443193516637861119458843105435183836606922419814128544584492348844660077498261395030691262770633950996325627098356027545652939726378847461229084453906441838110914736185763508858968914735877901553381531861305695012199254724289151947510412668995141064917116834352376716810696979133983633835354331245327981282567708274291440659342112432274337172457878335920629831779522840038749636343455164706507323066218725082435430593062298868473624653492696372295594944412138300636293723925694046159634408363804585497913164885993387816207474512703405082227992597453039886451012951052996121796613299030442265254533963673171817632309656720211646232571765682757819475083546860731312218055635657103004905696708348839571939198535695784665228292719748027447588006479778737611578626826150761011859005499367266024636426448810769647632347708782888395658531569786962881282399774894333362034568725169760837078491462098524362216374573416395352212162492566565323213669232502487633809270114831378346464403644933611729880000710051242408862793379837897749823290080036822669655459899811457286478119725833211140379699528812751210544001979576006475751252066536417707502637140014020011436359370915958769820274488978991556644664609478466940599767345504606431525988365437386335873088063832436658604432734341635144584878273708951092905191184083670016013841043358799932685049628995439981153084724086977012682613700955634513255362911945575870504517576996564681432138943075602359616640868974762826068081298913868611669526834930120936589060469519324313718641738234123556784624968920669317312959341169874233972227764637187074015353297217538534775370720735506827870634432671740254108425394891713954490169897828027246885245518388127551308685350521046706262410505824713417397433017979731184043896078587151146993302673243831379963636663353199203152801582991813446319044795024233417624205510772889856770548298133499610102778717911773804975682267290799012344953715121065079644786412857081373405687511370506592932019549122694075299578577613398708599023870554833989725701557835717453484024816186283108827882873512275649285482823958735556901064239642652301712147445689340243441252382700643622750192965951741495719884383405333947036792587821418938007114804327896784558341404430829231753969922190250868339042428222374605834286760852176135978791327873869958888533659190190367955890481225314290883575822066089247283451405901766475084115252179304964671130678684751059662468736029775804239597973557315054748128944864918691636548061903092347939564011864696617949451508235206196090409287629875136260609534838166384595802844758293614433242260869438222429575804621736324498398385650491220124399784600483350771429283047067996106238846516349408857461538495432814380505198776553596619760297690531685542431324200403685816229032304439623341452788097778572809613299802530769951593581374930772951071219130639224311210781940808925792898042356897632574529581036011106175225077602382480906697183266071709623418147207856502384109283990577532349288621270344244661080707296265279685678356965331344455679510301443481813849363076926341065984485745906317510492403197864044774488384031699470138613277095682451103234112121812764718815144105289193946188674359726460372355922856912155340303233065380054000424191830064408630575563843310140540672877260096766839674406273227485436299329315388009633798015980530857548596294038112704299439325690658735935242931031355516127635416698450613500760910300891312687773336640554586609349385995196035925816589735789322934313192606518859759984614507537147113301306356822216733809157043759922681581951760015487285845708265351425938755011289656955923700365190095042759994108027746782881410442580981318563924766575322113126848419253149085216391091176033332130632291517479325258410272264526368202774804438116308008108320999369859815759106999550791160411660565571583814245678988189972503976880835773458692828156885546291345054667678586768476860901374843434375037441215928918256397419181785474790934344066433342392452957689366669837701601032599856163265561672836334345194584734572170380413629786603610768867350127287677152880452446220674446182966355923015153061173278368587533831789043136082136894513021939604406222339825440713810986137421204028962454787793965704855928083734418129438471031830859155684439873417466509712857508792926956630648318082007589160452082262881996686987090885936214058388165757584533987249425680530752690378497094417825777196986939186740946744062352334385235846218211628230055471580542512733085524946674607237128173058689353986263719365170156000446190419393660836984230503009805671265411256398561170887143056522198836716132574950516867760780073407030257977428595700008804651657056847354657667881148665595524398896850446716780755104298661819583345954936564559231224679273946273360896047984303685616978458236518551830214788911825066020428391879975457927144143800622298504154176050301963695167192428239651671219550301096728841567821976773847374197770488711080003050168792506883966486596893355635318659236126158051279206892499867935117229384186277818202945422806802051827040279854879501344617505693230335750020951896952720728044560021577500363487324887163221306485999223267318451741107396196226324256448955031702362154473863384445087464759790248929721567593727505044190405322013207781963925256758755132422783769632865440177449108190587591147750021694444994387972094584979344365322345750631045778032975185187941352214050736228381939591026015916182641949215177270620835446385521809424454146471660932366043167022805922651930683375511338673495064376405818747883804906927410568500850793543129538747050488658058639837528095005977385274802048368799498875016737561279587942395805531743917032937162303121990321786654204084852157369409157742093433318218821615181241305071013833442086795888680010034720698677421196807869519923138021973616640596074076690054795181092276694982727492339717567177315560060851286333826528638571584123622429975663515253522511582511839528044049951369300051045026782194199110502849794365904306197965365620546124445356376208669273773601015162008611034954920458618143568256280982329336416543052545754514940586074828831541533478748780043028194836986605995949484870655660544548176807903287689623484039733832607410407011288686596367907848230082295699923860908469429162710962903773791166294447376435833495969485656197609639361667437293795382803509489209742860811241534782018205040122943882700003086260404929945145627231350249522383682700046721598579165908994892963064059167288117982213794304340748866848479004049855659154140314539274458949123889751158418308615881782300577183786348154533647218518547391503678398383772448094863820806276715923981592169889632539619151018720511675131331334824260999753653155900514103371604318679316502344661854452147855031512041669794699752970011975108918692108283870284314803592324350437055350252238630854142360966905440639752887761126272462851460111816864378720159225504845797685102274140272433280732673127947033399734341701890199243779173166636822003503330431986054193984849650300698751691752673449825821714097489388308591379499121357040978926084280949109565242402044530617409404700505144940806155201292005439105499375626543517218436937967985896646035460146077491808321424827381498784211799828975704316391126169709697532585190254812770750376593500252553967279223116284554678147977334715884202812819316624639991200128380106494854653992242106202809353161835254593254473110478696072262069261800037702062577399246216556059177124088985848531355268836073488608397924015902704977397081177596765623489181737667700592946828268545543087306635903693998024659946476866230425462494332648959863566568157779012793151152591043400491013342694127314329211198910901764667214798513332387356613869869113724158550545559938765383243817015809914983364590973366373202909426799771932439668346602918794519103745605089873298375197708901810859615666355665836480104984354350606612840394463594619387294403171479659062605243071788524021092423236135410115956289487620985254467658579677340754193405355446378004278430390073801031871980821357300227501870277740525250831025246319783305920398661597993498895054637814186754333055599138078714770684032716149249152700216184079668847059615633025996008072419148924338850167123312425342617013418281125750283068080534100896609341970671466842294182162113177500613333223784268985060548747640058147330066665752845036464041386441402667060270611104136269139722367240452995782562506871161957956077693448115486884366151679814892102782587626768314578403782374971957064973098828505633168139591191809420720055179304986032342098347182004537468313164913073225797081951533330423794746361337866096656895770075337602562715640678363430622790598173118800299511118904843924625836811660956366538737004604939866056726323385425136017049224015144154646715309088140757781061856793142785987031870487062289029818825886138346038348195780844745396764698353704840768671780606739270089320198983405426421778818294564874749188800872673523037269008214047872583083775083990426237835336559875499182241530699642474800208701588953754180119632900805548474532808259082357403579131252443249676902127916965433656986409471608387867801117775995578222250332148630810348476717515173003378088454019143176904357195739821053244298296719070229044116686894504234387499904155160783075334966707358324953692736468099631749903897165494871128202773666361086166416355514348575976912618556150841359406898038348910138207542465456745389952490853987840619235499551842508624206390949330777747000059276429114326815671388315250901421839575439875959916372529167335686343931072614346101035987787006012664348497439324094686278304214096986463783189257696689141145521046240565364728082711712722467853860805237529115692106724751546363686569113151061689574534731482401284626743538168441152791797209168573411074603823546542682767528229379080979590670393073764229876207410077712755989795240564429458897932862870065697257150684522960869949473362537981317380856401436132020718819933292207197585911235324796139416272395921025542113618091587753919930435194154569706521507950002707409447446893360281843288853760323640210965778298949233587785591299945317572207858661914319364936976944188792275330724681700970722222821235859800457501557752735931580688734391772388598095488588576344849929502575473411725335091841119749528556841965600330812746807580744337486201912343979737331104731409403564803260835776262833784122374750755364695680981720617648835346145819145078847871500724938304927510028278049767109061800444655861772831447151689310928882352019178557703331513610961253870139063454629416413402442321291680634608524416177213366147657484382727864225465464408871581324824313169485288541432438913257229749406539786320630062218329395009385414686774362732390263689310195398502995736965027245463577833611186829697972289508966890597912756798971141315702968923838489984738619394300052659898583550980222845737695530246839205268982612742761096936800071815893373036232726405745796539540416315243306880765529153824133008967297101634692651124367320144539596736782664605218935589747896190614511887222278404070357671742602187978887643371749900455772225452731803243337085772638101514319580565846206988985270744010120905582478742568277162475414484166832121965997733332978297537832692164228367044949062801753687386113252686981325468806150237475604866734624732429262046831869722181936964398897696298512527037937584287436127493565273039845092477232721205567392284720219346977775630115105920780919301009110673275951463742707353991577949351197197283646020075370698053037435007909757959236250061136611021926910479379252542101038431957243744977522448715947381192590040357921387742248800616323539250296903816907182365466788627562896238538976089606582229869403909050763113083371862567009992993136607828506997476275695295753220582081173941179539460646065172718567011185135131575483548855071136142948807737624540521787304238397304503183405989297028256515585573125136141667295213136889223388963760950940857707829731479249192474202135406356090202417482263055651507902040966233114357808364960007431571918319041769530973241305363142244198166450982114612599211400460852804699352597073795718537680704606199010751514559964048006238220064123465604790597277552846740629087094404542485800736539530368313485186094945441333584525638616969169250053249260747458117672431998707613185738104491283654412794910816236091862654621324529241808488038909875544234023714356576134972320491389527992099170425513832841010307271837873049616360938500262406513993923636356211409683826462898210448276188638747069418880042845484221559539017497666027005371581827311420932315942300442212419190600337313475082870318558591339961412406606189931876709006980593590492704159137851637015593017030807802503836297135210247664013607012001718460242798005117422843429779430575336919498882960190410691720092038453139503677384061585768366880222974217747375320130184738503918891863859828428242137310075376393166053174565538359578166727054111170139979946750565676552298344630338284722588697656002052528328488502142002770124039902012592004834165204320735345135122522182250260648064233287977358700651432704000668488052797566410982367734204067287850838918826055407910265708999078347530270669776317733940116156063322586108170359054303964232501666633149582774837902822428455740560404304470334932825375320717757829697281779164683277055529111557908534474969846946009373760367179778198271180625079523776973837324611064575353400698221018561756947641509232627246684228928181554425224877602289023013098643603686543636623941800258288291669315170461786909378454219686001712944143672863446360587201175940357645722066000690163730852907200566024075582150781376333884811934923273338170469251450399550119956332692461042180052283461573901837629834266169252762883282983060369075853031481083484552141987628996763682968239632105524393442286447609532135584129947640210344339023078573053049547957236248956059940802247803835087316426546488659370174934485228966905602188805528386309686881773568625080091995832765296537874094862608390785034901016108684680008168553830768896431755433665892196894373789565963589252516055660497621623118362637620014694433348290755856189522125370318889647876479438037331896092474263454152248853167618002645805171092833521764060385625967403605696180273335351180636816594365370038431560162943743069893360598676909856979336345183669546041210445460329671673518079643731659284743906316377306352922180517295484600594619485288610195867302035393980240350449067955839123417330637835773366885426101306263950727056253153012933867034356534438881726412798229567035779051308251978259660409973685528865317953145508757601738373368198781022699686147315312028408811153156366994800511811623117740723349204937036671466198650122466943116367238690918181545705436531731341653623816884560465139106548604542900874685647839565294711308302720928277169442691220765628912673950780704630608935445087355357224022599486819055744699822142255539459030276750899397786755877701819653837600271168500910960596005217998427829276648511606832446895230355214702187771896033236295303546190563537148373027819481414826386768425707819555895365102502806419894941449675060956589224439722669899752814897786933684984799724352553081557777893089507742034978058093230541548633508680361156023953600424898782074123613254320062746645260882661949353354481335792364826592475210529862999362094680560852615243271298449828852970114086714662071413364978226154043344409339458211127064117954005201903372513116646813537597534777436295059502304007645180706756037104937294191923787347097983182202156569230686658018454627658336479876773691205770919767874199844233750676643178263154942851955801268810965533870439766233099754467701064791411940792195514050854329524207289158693387232474992406678273818609236261873661250983480986149653263478783080298888619145928576860258677980359239041375542220593722097686324190501452980372909074198317995948396999116787844562497391419411787496423234823827080688922353113054463941093548691417074892137707984715297197026244626116892036082634660730584525327744015694768079071054597984717522657725919510845148799051998548267897035571220816339276630332754469759787372600910653037927925410092789419029148971006291088030104053431464076982245043750942498996534150711245378430709207925096572671347131215280421035475244888883808991441975734406675443392957904547678034279882636242381560712895134486212326841651935151916584256130610103964263647119531209261335796448751441679228403103604487634494041366864972187098155782279463989440748416910170925567709245295857592095302645517003748585808679348374125699114048881399954029895629340320340382380563014911977029086280445190867728998043900176589520040158993130792677741282387927414284356004386625877702171485972186949485735006054606103112433849954170838629387860528641812471845850750307490990439521221291738767137689889296958840851699488865587113173421255899137666535048392515698057360659993938252632711404276515039064462333589154725906264988602274439101817352708856001564483681034692928609032882804292608130253085723961547577662624807378689159166375274743166771823739173421625340043431528079905304606308712394762750316160155669011458123674881996565434549064697617989089337871647778409286714204972249141125543898276012694160225419571551200569596574547616889196818352128192517866490034322719533976809616100028355799866703019382292402138111234700127226334658992955743690731018059825288576950899918214741912824977788804217969402091448145637846362960894631634371904765450354155836382666908370512369380583834695281713369448575883367400014007894953590609515512527142741870058093449692823489715874799602518019766662152943052108270043126808199274621936798823155891105255914121908923502366048247790882160901287840904230249749760717914255167020969036919359247695865358396268805973860243855391386778220978736774180045251740109396595354603615247288783822066112072247132368975239692555223059297570762821927514485156337971943202666104480874957417307374702789208397372090940846257221054580865321960336526416444711959563635923117878811015438613574608457823444182477738300720557571212484078573901662467453819594035266926489949653667839040650109188434224333745462681513491832760569162609050368889490709741140433066253982022253118758699582634964552224273864727198590282133199712087408919408936675915875706857343472176283341019972966428585391534601276522101821182099783411261653814486315846958131140575515712860933063071801971458752252982472286452199672489584985079574698003978494149381597756694154039809528579833397815059700141390975311207581441791780931763651940800752570541563032762855206444716230890496255771093942353302146620488289578370696653267131630878981262013063074464406292462016378891346825238969182640266377328133301816016633540620191284752120557254038425642563268936954234255792496781454675333439832917340908784903816398810163972392292610598892766455321380694783833585470633256389846807645330029331766126434620113410799156450764924998780346503381846998456018831117182428043316387885526795167342933938370575838402443284609032463833335529167544193576937096410973613712078010220275309880501669850069683856078546252137291224108414426127056119209062761164964672157733055192241679651786016220743834564355952735487716144696894526357646160062232409551318794627645604907557314343894991206060572129860007569001477406318610606947732621500928754464493903553099999030396174071503187918072120930296522413587889577320407773282838195303639514242778914386017526083450803913633681953312008404838662412106608267574302139780081585201543571223586244549969283645562746378928787813507218045271413986970872674785763323964600159019663055525359920767623078413471502759564442558607929861163235821406170643810584301758198412937027127554008631359040039197736360667995862729950457214212335336047425744601297595089800921215776110103403413125970653338879200659700508183770031914298498577402804403830053449079204478504574149629239214070476086950762616900180935689404413266053979172505577663501292599510668355505016713545967619082555737018446954357798245507412524252699269654880919189038897635205567452465140690047457340437307526254057379101083766883701876739564514830064115074741694464795023870442705928906178923975556256709144397199203376605194350138095716622831206195601597996673643839356112582895629412200625054590163064059098775075649351882527549230991316265183560139815118640430709139934020959061920317465705823333810389487664209150429858887390507601270728380661354683194389901673790681864493673475322082369699375849652178368011470289175805950243010588619468909842950253692910346495765517237073722324855500341080729606330690963249282392182161792085145890316419295154596060588949655666267333678267614860017952616354184545761003915882300943464812521664275311706891380387177747711679576232580993485083954782345776590490859426296647608068993302856805520343274494919454748096422112872058173686521669705950115993818116037366313237576386411169626186186536588232615750613881034829511496489520384357292663983962553273468369668906834901924724283791609719223844651023741241563751374857412943298487702752861024329867287246406703227687764625469380342774149910624908907920372287882849516700267682994810207423943498268458784819008950212647052865987128837947435713665087056752524622965014303977772835776757329997084390186803789724038318384849659593475713054540128784156525712473770722645682614295179424410546953961435571999593574866755367937560375435435806468560543229588272631228495207504243065048709430865585358190648978013679055910821220365835385637084265770088265690646109216129732287150704144268499923407582346062024972444050278557517681611964548633957864997598885804901730232781968165773962602753368852112665960370281580432822275097321497502892886456591168152931463606425455994139707774334444331275999604388143173922550422109848210045413248609560370649542606123296590839473131179267204876575153492431798754823250886373077019174687601629706982915609969705840063214049173186802643207705196686230188626189641010889701885938845903156457468149681939887854589506712219521994842171236223392191501392677516673100316141740292519321358254928232840950804894108704526552441285148013606530281399405097197574451201170004569840400318845332568401976739118107057276799876409333463949968394814832504588403595547903297955327352002041458705972988898134150257052908521194031588437468726207656169930979586903673343202131262051012048154781330437761227050062696128624815616530623282879133014947056083868085279711018134815800985538817503665566165655893669686245797834733688398830603855529703868505256991824148902333486350062723939148322131067566092672907898643639673451603275807235399300885981807475034139076365406107945260826227738365951879553832950552400210314071959031580920906836394538478265114596899326914834846466157197742875437446813077057916599612184102377893735226135060593923311378355018554668286969728818174107488345555990175931598085877532732627452080642719983238600059254297114362478439104432962305980670718953929025053099837472755939498378876061071836336866813233074961768115501271255490607187690682288962304259855927719393637353384620982993567913801043452354248883821691585910426932114857760803459693543914874888367111624957970081067044174863190621266680613615284001202222687388517195090164169451756060330596416398872012737857425702716287083705487553466633810799676315941436632292120213975673548394797697570587049278142455134386509198724007648400402088730517970904370127342144033879432309756239022307209244373336770214266904960742156211605019894827255596726306837554604144354509772428419187560582140378908594509192871291000408353021366420054939108334860667511382806657697716854916909707404187748035042388076629797152895333341234115440473701121006675093598631404452036271870139442849529420907874584776046418843308557795618243464602252154684606168152066440359848839417353102492322792385311295518344292382890792844217688766913280152351964646332037259465169742496132427874015100233351048718489069228261790673511239082507623906417541734480543455525297638423515210193570542771221278537655420840487429037295732329079022440398588867680925715274683599873902939816817456435727761948353346162122560603909794406673028199708670579457413169839204906910387604557531009733999798401911995286735695454632461817400693437213630377058027587978127479809409375177796058943314967303338889498699630109575653648764975637275841624040556231507829600482140277743188726823894884562736915607783374099460925180911813050982928016247576476851338498397891871920575758396744360635863178335744428020913405409464926986994004797319478370672425787483448641190811187553386263316571937631979598606246793993252005726810861457819272622680808191167005191187269204798271428833026845784177157855587024336381846045853767501858439613212663334505268265947053228951655916019121557577102099356248863791550043351866107404354266490650943784426522176593152077370457663799921777975098932822867580674842973724446758594226386082665993312396206677565529569094841922598109777355478830693187013881293129345915771431531657442858414010549689287668992368632401514983973807075996776642394775510678053634777734394159773661555574358958659085366293573639666811576092906280233519538339010346767907746421934666980914385439112466468345516626580419773273503632211071737024808688964141791409823577555636938024061139586679927908503595317219143344126360179583013437134885970097086822135053696591508110696722099602121002479247261974968706333141463735287075968222471705700489593588984277931718016225499553842272886802336198221641889935320762342537818036893034471488142051239458856610328482374678955907416149113213644584743886681720591452797959011021908617592646926825215868764304571061891834100878318359695725660960657741726712201145078005139805505441686776603304187073007377391633850754461402388977160351506500848238795339573612363252320290586400052568422196194088153217075219341752092846364932838005485112608989859332963367859209410281001607035968171292824711876215565836739010027060981774392501713417290833684932553395919068986491116988958315672445578320574547308745146846587786566687610860552526809174817193855833220106502442708702624748381005686573113615394156525516667701212179932829438773397906897459668166224363294629483182326695699807250447497882368913585585864675705128348678379412195943906610520124089806688760055164510856420499495047440982291985357479850642447212973098426308635916671115931459419758571053722056720118779933446454449046815046137235402179925599969479367020519153246053385019151829550625333989534382935714996113696825542388307900403169137291087822632577698626205329059470261190042172379970388232254274192877644069039972552817735621233095057335249157412462183126874591841364010055236698657927620737750551952763465061407839959575438631558675395526482936910743039876046105009724444112273064392176774524979923717519042756870716196890088999307899040648632121810428171393768370609978795004776170247757461843745572914927239979422374111005913793855611215234246164580242977394551613331875974172909419238567150206353835662076787026410670637183337373356586949670476021496096973186302648344131654068680392831216330925539395009458454592849762185048079393962102157333526651491943332757305120702885635555939582292655850000490977676379176302185973169312446759805972165640673309344064745159656506699352174340329882138973592317882030472865812789091562690276605982488565617840521327447795293420960906569290004971218872070482024321257544042358442006078901974376015787823470741029087051835967122751535979251914711349271709926244492589149092283583108097772601608418326932576333868146202676695972306050620782608483976648678171790728220723948920835404459520764882258681390679564311617863053243395580096529138017325573974142688233806117362226083333188167699681086675819533355255710035606730596350993881933221268940781828058656874834419954249532650430778513184264261048232413779113975625661303992943194619655632455980916047379737943476150599765919321888580580878172350306436670617103963512473776349312403561657224554346435942775051251436986371626915433259805568245326080653969429868001924391430913354107146200242112997809915188121816286123357520502454452707090451070151147664672154537407412095615365546232017021748633399968344774248437153489891766675750600347104299298612038584032268547720649252251771268701067007012969231871024350645167950031905378781062796202130136349883774922357879694366822380355849586422907826890704013782416107408682191952508691692727665703025251084585511078264047629240530324661978717906624976286375446977228459516339030086671696997430491832104258807050947134915229450404544105163917804454362266772661410869955271598124621330492315801971916749855849227660640895109205190397460760946757784308599241385729820932474000628446118870200176995928249135969194547340043380230899685502782490734391723096169248539236621109599723013732393915257837853689838251517279489666239039810502073920771127249812893019746068084870586587674761951999064105500360415847425533582324950706305499885875439072075960367953494680181370539855005184494376730955397351363355338607318313641750354109005810356418189056613288205824540380986215456880857667838627273413806325430137667450555917040490222102698597521940957194127220713558368324504001095837310767562086572356924629224874047444256667758286015210822987893241101582610761932157985376047975685164065751907468536248349830049459229305767123977598555614236046269757185025204164397914559716429752597868281546546540311930381703208500181567385113283395581339263184553153672832701074243946563774952080858251027666743435119570258506003438603920937785810488266045032996538084470750381392545385736204827751619438198159832070228762492045473057635356783262725795638256090021860608464175831319798450753657732159315851475719083800745712378026673756462795168143525089399844749317738985615808541082282711622720945698848065426930924658748051128607526482678777551911800486433183904674973927681066012136352669151101349400507058460995150641043963718712539003302918592587499618002405274814961360168337096457861612836456067672002861155595317424652043064418169269707540074691799350118241764092964367592286716236888073435267639769447879441660010466261882451507177099654123440385479667841959518777280796478073772824728091758435122366756427004311665870167702514176176236089756012579567271962787037373681424466384168462161110980559905379956447886539310556757044226884289570806720273593261202889884827721604505942650295325582095472870219775701719455362194605941955658800613306450200793598728864455332023246360172341355874304877720177425910278865770706873341619138283302609864688680743722462334000837449059121726371530180160745785066332069243743374781774725054874180004339392999395915873281762691695467978631915068231135667511018339848648949793439939527380719794414717904255407835435291648013922377660912059347306995668008469556769463806028924909035928419434476563126789389585127854922358740595312509610105681249075492224418386237917401512660939074320926940507511234946720680597511666966509445946001752760747707224528238186329770267736078628758059504698126410908985963953582652979678839229116057406199752972496362261966466879216506029515790367936845129000258169653579879652383559971756493375788210900885324246169051489229374336143294319735186261422617764639229580111706858747228171254276530768479269972201081486362956165952415516339516269834457701299360153131400534944726414888699748897618737325214023495363881915077142254764262493832224791540580485969751330360169991933181123908248667268152711070413668892582889040602231603446183085411111257843644917648680770646931664426674266625499029908563388527759130085051774222300059734021196612280026778111970667916354482062469256473187694363719020697118000225611152000631141366570414762485064938121266774023517100265858310710873607046535967896654917151750417058920975529375944321664447434237603643851024547630908133210074847221018251166063802704131565809615852435332310160053315313317894199990338731186556537397090070834541514859988026553381041072980218873562620951474808698793512768054629847638629066492849322382882740968390086308164820319242798998463321833244046691540020696297886721549301190716724581330318248402039690197745000621924746777848660760841358546281539384027034178666285071887367290875539168397274981037280674022466709231945350338800048071313649160825458204101651167353377145326510120031732686033246994784783051500028881142267196475841449794066218920566208487409022925472358626533044710770374532833071480637557085665741030808705378690512025423557208098695407559659610778257949171444789127784339833130932801502512012754625476587272162131256880653812551736595330945984000242775749834108584623694899948807124297316110563539641291072345352208827534559820119064828591285961678074356070304090047625949720242760955371831192804785102636815280624829302661740216526338969461989434273371454856286446890994789347122738608161073014290052973001466416742851036047023508404092485715690779975138473359290311617909889635172815321438712800075622513863004350707521422252927719442033314265931103245704827351540585100798640734828570332582453884077765542321663405120623457819243463326951825724475983745591152605188755039088976934078811146037353393893981687143367550205662259118880100400123345217447228900831518117577433959046936968286772063225489096551993512999723303749581410624690835925270958710502563219514212922034507511627970043875805613761605646934213142023729370542367013972284473706505328356457239253318627871871741466970814348852155088722868508444537551853183710654824727737859470759992712330528390146506951489479557668059343169922807920904565389667841258762145822639111986174781799886901048081301913138558143276561800135354754872949192436853562646441852267317816608764913754450076131932903632628230112814960307251306906368090471418639100813834089339365304439659214777166971427774667629201227265180105302172808269584289320042843773284226902049685864491491395944563207350151229675684609565110058472312872516293856940399372382086123004916544429019020682901339066751631897644870522698406343672251362646379028565866644464844097450883714994707758981938619263873106321224927456743039574572538403936945078540050146939119731220984253503953178594115868776010930037697336291248331171689036836487288742406048022764013134600605828987730904618937790065660017221940176897567670698695159602381879452719794877388000895079442614432818040118160452211095692980723391133114687559469012257638257323038542494201863460240230622119192767892672489841329971087448958313206756921514751986812122411910733953713779528889485148240610399484375260612099992584140053066783831343250193608337079076109248553798606049758134314140012628511325337866461525231834557617440467312644331361902812434728782920749274651184411557866295377132405811922831780297788391889446635279738949205899165532801980103683132523459336334340224466147869876878265009532914906223541488709379466721716130309224047799019805272471811497128204562842903629779383474709151278732756934151403307797470151013635543956377856251890286960312764501382391507553036526247164700416374723092081090072533931996573774288722355781303391678552313919645813065259004412914003147017231459976520493434859619561335385266964113178115736635704470260474809116664832861587758733990622644974780462021037842755082774572073909042188188099483662625442801895528502806999382652072616799851994057417615788333140197559048668919181638830848998969047586975296245787976876501975199840841250387708772506655350241029083642816220113130195854733231049789261187849182751100245748800167357669332808214581391732958906617245184082343026993425794178807527123786492015415069332291263147069534906754864688446189273373189401061184701184888428823096588960703425629568296107666894563738101775195267770556777428170477645969926819726713149836977476841592812097813630782751481403279736385786666405271900297896097058056443280944311307843928684417897185088397526735744232939463435126236537843979095327328330332356138151132628708625905791695202527738433091228945325925427149039994924033219579360875586499020589787665864605004047872181495149084725004902180330217406422579327692221415899854350932901117854140545959138573915283397321634076881306298975882272615209202830674530593124571914748158750181593892799676535231532177073200174926334321066129476926900175027193445286079501512432544475669229647155767127880614489027731667038901793112822392394446682172528478098086341761582866368942820636026535652549964719725482443267204509258094574603061533454302166578481104498162602804594685067169969763849325539666697804292733777538462847357012355789011291229599796750818615639480030714559883190298029048061739565176930230239549443198370049277995055364831776022719666768412719370764064441042098192061716336636118011585186811203046419095802060424813576568841685373407753939487108641702761216212124589601052633511638985191739221710843860154393389887645309183377727498265996771547749619383298672030255790735267793608250059175659716873432708643399520488855882474691082432845489213919245999192687487229160016656061492722423919371839814697685613395520396977096801424340489906234051621423935683271456745629307876132778807655169023868084265514607310612287466669122814979764493484142227696890240946338040257675080896273294420865958213484671287608858679015508053656866908078903717125182677053757230527183792869215568721260236719774209270070340324453871595639582307272790519639315970206320490670573193251288569760927676482016921188053448445068341783556560089933142743117127962830020983408860234722031516943847260786042497899473196874644160905430331248227336999654061759541320855276314780136269044842541582681464741982470693219563461733608811022142093557849668706279976110100462540928168161124722172949646624396252058474535849601796582360804089516222083962825259029666229375280891302346935024312109863369400728492930389308986008660169107650872138146466810300498296377298641396224058190899815581432694013820728033097200019740426048487773466262816376203365373760656572817535140751826180293940117442313124175688315679644025399436118512684451981376306031235725066637226415005843101387438216072939518956734628694063717334633420972931290916503614121326904890737999210478884298392631332606607081853109316662032178035234723732339368447390917504809028020325000065269200143391959655885973923812352699215658468433371841169711933978979727833754186074161400864572306260153138663152925183757666437442931324962143943955276805317152842271764861624637022155953439781218849259339854555377189624916328110700351439292910464024371143360144548921723371922803037340184115251476213235540957581258720342730181238397364617308116903488647866080152214083843448875115210158491693836550937304038733140490625509300889403373814209800663462486570858616262272277954101554720941161049906216296847184903300513544881514090329483877118315242891400501652070854698046727986094964709128473634320313417157173683257628730634336867309737933146680987811488797030440567492818164413122904838310970126509652701643641578104159163521679111779511423423782929480931864717220328205387252366380399616481506761553849002297116122065315371698127315733569133370109157564432295066062293636687458630590298627413371159764961786935713067601188947162879935012094603293818488199713506626169214995247895796449828191249920106918375043668681433194814671028132792644755510777872459911531977479933520025595093046357160217193725393734616511126780991040923889624354106102798178629357171804002537429474291952014369385089453865188588452048813091448810813976184965841462284793322646007110608144026692074613710317158903946028163045274973259076625543928588566429300401590918617211849517471900916231269731181005768441529047635695990252752762168474632410566303487862191411244258180715616380615101166854846931967657915344285073789174059519021409809591119248751695313350244596168361933928626758673446207977295520543702913686909003549380296308642759478335054139475880758153417495550028098317836960244988075429945628057804824496171936441097873214796871219937222988237330578147855715619486967641397264922436971521936725636932725855993075476493394427655469505687325295659685532545529667892193340816192280737728276694025777795082196554249294361068875333044405607169650168290839673586469244011869432211040469489387338837579963514333364737341396292871218769321267347425210483765812592020737790484941974208498958217327201673877837222024355514151031000620230613394898708786967981918043523305546590872689943648371905148341500223426739210352538188893740476569092499284500722752406338322304322289723179962389093646695621389115974027666545733817784099236782612285135697175724231460735838336063749197955306828938011680610050647871978589698112586781174255118933014112888110214017467868488399043277266410095573878844002995819649428811814482683210329882463325022497169446889020688184161818928812350467208535003802667153862838213113371873534591775607252931232046934381109961639176728042883079409105243343402424154634484061709998096332812263430807871097614755053219286494308796406312997529558196109760270766145850338484631378924507750233980535648413834807390064861717789997778275661298881503411109986626286402155233111898175550308229331660548366061105977937564644025501822661306441871635467126822663629273622962339393400344396883787196285598015527730479869568322643830109707535822373259865674693945511341092324351197065226853647038030525217138164258912815318134959491528588198296569264532290574912412145665292758759403190555159083601261889195021790954436287358221321060306602808888476541541294529585683935456600258829817069307168735504706782429820424296212137377949491056770382145789565633110079693870049144604633242576831406963449597676612503611679287605277026062850059611157351709054803614141508565380439096395305051851050770558141229756732740650034238325635313423446703098198904915389879233619194969282069822793255359732566668118471800836102801912664962100894436941516916502075857542078457728878703537789545700085696703704432487354202371970100716830729497142108767829814251525569798550654232995989291313343691619285740829112467599241335400120337509755954304140690240016106291914682451001282173901895978715785488284867219901274340358537861610358768069451480706998589387405456842957676674023788237495769392877920041149218278899494797030824718547006536984923785645951523696150482700772674241945442753358672043140739332831803659138149376624512589903449687750156221069488975036086303487714613251457119131481646250604077635001322239813807049676993880473140974070213079267803246024787680557818772669303446348339066324376194595046152293249930000369103922096177231620436193820181969957414839213613974185875996248668307531785490378304869931784633658900512913001384892572184081335231471934658239130787679885173979195287222504425599185627141636779258379028328672242710671980971155736120178233298395851224639851534423024260032044224138672869874703338206505854909546614900631770848530200041475458184511682705723305414187216285641979072134905956451446879127495617835717574436344764396367442232766231454961520836741743526292366565326178976407623374943415587313103079641754137897816257272761444739702803642706817685646315753737247091178321076511358672607264491055377434038667394726015898750393272439854487123496877957626414652399407980427956678130985595078268523143258617902817766269406774564770961347699390546179240839446040203211498889163573021043475219688281061804536353085741550188896903590759693860702142979560830594446298742580204971277738927962704455113552913858098332574126897207543730618871830625178948585167054811473283770911330186513251510853613700810976989236045677608672242975230008165918539337063269547369808373723607384985245531247968306773504402262680217708726836575106189792137887738534897497443996167677987101200355235554093530089518888567897183425407314281738791458866109525477409593909349519901508900765158625507413080173661743113345218070180855641160050950881993937666403858767998026481571735177383115346660867051348262110633194805254413206466137688852812947985543724729727811711429123154701153322980253453848659082837620889349316544726869739630903350759611163025274710844831974286397672196949586009620024000094303629916281917252187375078350297098239520419857416483648869695083345210847351433029972099450453344748827657107183660431409723483557990515037900062823827106365864514872002452467374948586326057451479008680509003302533018367633735350255853224941640894559953814394786884833332395345763197867665086242505493383203507671896419053870768678214557328189458338635134240365854276549377833100546064801865082000140885068826875013495569316531375188611266881740494062288102744469906848219234874402417364629461427804795033717328956386025634927250209751154409470839732052502402598843971263904314296135728156853602371859260715732311092466903287567345117263907211315221753474684725498090002815160540002185326981473462741050802758170250537767598156982582483570591768436584404872940428230265347179970589412414857009560318345894786576576090080903408151962976815193156964938457649804488027978551694910506734042707347541806813912251973375936500568681806967820089876663888547561692642147797408581316518973087134235386008233938768497094098630026978488119692450303787813982650632258376989756596704729812514067086751013897678456977981469067382283950607988608982898407173958836523436153683650313253362676723672840237943727582795149544608870185863909669378975070256531707889730090372463893952401702352235016592068542184338675340038071822869221978005658811586041881238162242591214863368069776360089513608401490821360349015614363302005436090725262220130271364912889361356891193622765851720496409470768759314850422512186600980684021772187286118186661774125594253871227504700975146687351598153177512780447174512459731358899002001161231760956080958732517324402416305707355526319590134394608877191964703350790324323516106162044579524747620804612240491986339203311309396088312157474814171241383338065518915164775920416835995559730197591037245340073264323790325777050434372993396186950885687932359743455084673160950287979613553750673805069318406796609812760423842075629636706220576868564723761396679428822269775724519506591028620827040696886292576441264756480779229364186824550987124471217355541007176237551660236872262323074224780667366509767274432099293550706318584785049304860243093905529408832804077218219923053004824967803165057423015047397951945085549148935340417838513249756950300141656699861112950483092190205911893564945622413759331243577432607053142207815397577433601393988513317029827114670002109569643227402000598778722976523527691810127125205604474942417112457317085017061731285404522066002056313151472669121648720321748861136535342955135016915483670990309178336180791603006663468038995031495361054971840169156644397532722134136112681060539430434748769840464111847984530609467443511862407885341879020638097970338647932276393109339081703494665628650019512671750458589707598941053899349358323275506522604651470345188627325275966624532011327319880833433297937604701700105694947737821856913048402651296524924180967945450550330016117155695505189858555997443280863854454501566564860670463429090815087815985384610545036586144227124230099826839391418939495447622177215498663195160309700230280550001008667413204041363564470322718684751401540650464502681795139983153808547346252120612882489169030531790276505944465392328075722628765571763179857367580060889832791208254561529993875246418323151150144152090546547690734818006296571996086972339001704334353193288914434642010973991352494247480598983434701250265470127879693368595575771689569514665541460353097941322034058297813031423764530218089466463352072270910053435769041010306226739022256147975531853316305602136427847896393962866237606219261039941286339354242948613078967254813744175494424849506989678093443129477505546022342398541114542762772917767778532793299076787368420690383722815770634180052282326490283240855819734313223251134177866494817810789818300467875448115930025697228710417539222507151399284181864068879367515565356469900860860069189863504364386018711112617780289390668948869613683324231833626882808493829611420363111186741285328105786394953884291620039672827959322399209034963924632336147242644977833211066419044483789951838979593483869935012481424017869456725426958649199449879878914094784803357449262407659687499335513376901074448864193484817140460694452169588711998732173584650408790567977349389160427761746933097777680064236560512836784754584971509372390815289021609000709281078658580768089209599128998138761339896805998571773722087952882823047144412248535443655506606966810313810175229999021199107749762972749584274745702012262503714151264870641397287375538531392311424841949660775124225811723138773444928955082988342325155252229620436075962237267412626327927817454178050025198471543960388602942492667935671123950956742261176768315854726111527827388719539276436766516588017038373892900267964612756093513160819323204201261071693679192558012204781791391458997252636680099395240234109300435371402264192059391887658350480593238721594634499524520956563771387720338751003363570976867881592145252170846330268733733636674458560985235124994139962270598056077953270630435307448650452340285089261583898298596143719525007113492077528577050130173941594439063763244732827449358713838715182057732347719239773753810149622483444550920316401701256380968289165100390377813054466658345784456914449607086205492390002585680379987663852023667832277397431122959362579629554533320442663816242411970463968089568641451283083204220968420386479597802237053946227045229517778193637955519830048876231704250303401418077163717647428267725893744488425739118599031691143406671023177796509871219285475574916361522019398194117495556038833626243063838129654052614161365211073348590229994966827268979093810492357288101751158741353741440029605477557022674685778789228081684668698832890510884602332120627372402200724877573624768562918300766658517114320071163392674636124263080362515612388687352102404129019935383115945960464624790631306258073814780327395751109282922509312201714386939802633496638384675997238293131538444814380107672654082945300795150381202254638015540129230796534769942430108311836310526151692794412692339400218120224267830611551580371441662616099029164534868360884564806605667479157706773132327914733350959972716319487810719892949843358854287620342576944817005252873430420146194715240556805390661457969506580125273088966485138126274752580899350475776992555191539447185759567535062028607002680980619085363231238319555670124902774346985889120571898169743055542609892431050375170962143894384094080742329119435849368281449599735483150542057999024562138159388458347210209906134668740811529448063846654133715483768284495548338513771122321728130294355080611942654074855263765964815304047720776052711622961519265750602378264166667199568955597150276574944373253603326566098854723290988039584259182426544078735641660438408559115314091379926195158309275860029650091547677729536971301745577739044143757522691906760676824821990561558488620456095118456622181440961318689671538164456598653075186758072583569049447277558373776160090373108896080874307187866531626222654519001952313994050612786936778115577008584309300068453615467380729620111257726861845543911416324275586071626353485070024502048399019573448970938536620171267565511881884038387001631707975335081956187016132236580986495114436455604939035420964182331750163927861846645621049099996346773421696688560652475143259033412730932566283522078359007573901164905807212669945386488374392714247655790340520534267070811293022541285395899461192024324446147107605568740667973000874283382549561114618277748132995001172117245502347704007965909264867354918645959485609107143312237302398003965878404974028244051585575625832003269805222201753983278623062816535688920223897205547093933948128457445725746107270491889252963470192565259620880265484061804642264336392825476612775289177456800459527051423021355450856908246616212384354518648872910649017354199567523049932581609985264530528655343078813666719148198090657437287706645973272701831686809975492632019337613871119507444821659907608853617643133656647187911040006893327001291212604620026902296641940333265226517984541211894653295937589474976737921703471852321552633935605012118384057477054960969167744868124299193597703129715288080132828327751485683655009562227634513531760167289197591585528960846161102395468347661591609607368979735255014779702368917076176275428349433337754956574229413526979967903925640547795031255973074493638115375396723821490426252024394038553818977098162054747767458231494095534363326702355207517436216588082522869470941750716951159756617813327581261538505305914448756094459533664352287929836895077688507949024803425174025323033669183050618842427618289273008817375175803635312027976257781585971661816447587828243319516164520367331197575288302495292851178519531443099677798191767954633347217291766235237069408253140817920885334769373857377897636042044294719685259326935695268152879902845962338946729279792673525928196868861448919441241877397050466202420820899079026596980210259933425693732719501885380013171324565389994233364680602639021317744894126727552024935797529621343269679703339841693685326549004061417077423753335777442506266605368246909373534987956651127761720576274587597067164663799575907576271838674717193648642674172249955451497639985790929297454572963414239784540767423736134681099164609085379047980427522842411985051728098266761467539909448703625174702389504163146545242452158626613739511912707153768065548746209228056380301587585093160574371066385593371602909391267867437627823112711557364789186288608636270230118620272201096639451357825946148936444776474645462563406373999967011277093455293313869508869316882035126259968561229010526158840043767724745754268785629765846849000873077371028582227155745841273697068582179656375565501616139441245296467733016665124200575198052542902333813415645152154269822835033472088116958975615304982881257083463165881345567168979759200197155642181507555638651191528210254385027628314193441239606303879242427414610550186747180771370531731789806197621775664861921631355155073355657116768586753050418396012464765555514251426379958842099047409464690113994638925333272049973809731014131067192548790672552864455441615705503658029601457728676381179219199082609846855398843395918254134464155018622034874393481245834215910314776659546766377510696221824708022999352830947824567964988379824928502790259028997890186482631463576276487299085279527339365423884625105465957083757639735813623419698839467147192816618088664376206862751752578928836859586521561638887680170796310000049273102651283763847355281204114957532894864523003229645152081275760903244227089466939370293617378877299537341817563497083083707010959774894932053994124255943336242826106467317461260478815282055441177363253027544794670526438914079859125855874504661369644516933926232657616154227067739164576150929092085640523661760252398134324260807502209595031053167719118571572181758872205374340484558906635959267174194296135422771561132568831164059569613299214538829850093224253351505666599114350587326134937049376263598454097685804028565249519886961636366819156480965268988343002002211304404220587922325275689108333493494864497680558299266980898995336924995709497967167964439031591589363819700871367538243519956272571272406755837519557785373861830581574165239131894607913736011987513084291232783568404507295040463308443276767697393799090947736278240887051243308897975723327180234106283530008612853632707181945970746655464016223052926447532079371535479754782564116950778205486590851352163055355293335343027274042990457007561635345293139068969942527883822548486139516082229767105116160535963835264430452065410857654458085863775102817847000856604572935873424351991770196730905911601446705945040081864487800840160624876050566853538234796174008974626851664134711380220741996736446668370054622603221313825588102093039986309238501098327880425256023746313624652848701347483153290441337829437838892056059313421083592834296817327068403722515602034072591283656165379730194166161402049329616261318164728682076310482581841914892624209008246582835248588247513005373038679788835741088755415547645821662516255605799840088743500597848803238985236568526109347859017429568143290758197715692159174996272814671373107928787593386674896763147804093757210355283326986312416690632810552815104978484436504282709964261168981600990426010613497615143681484900432746016835953499561527985778958703598461740490375139480825771582902709708173634570912109971681473329022053499220802452152532625640136888242907369450845877290560735161518006069680446972830392697229751399377312844413944820628737752907329742927831193130248519927244965125002895443829570617623336590844862915621687809233102843411069790820222664774454509007314294818210627167287319150811376735935516016563748015805673354700483686134917165491011486736735870613799862092559869027477635614872657561930014044734801263375850013795507939877621853940108773615764815640626147793830453121374941035798041305236012237089404189030066855226686576014543685141434132149318242195737410510564336171648354380112436003380550235034853371819799908348531541996774787755783813300709547613371924402940437391270008348092988568267861012837343832899066345785880303928410183723101041260752448571757232030955427657146855428198135385363321684205454014391508639367941355531867935140664415451922905756731672206888035217211088082632040650162272779463964111800305391233643337053276256370616170262605887315979038029316769816865499533230256399561117207990125194538184031823198472622322620029582148153347876855459316517685205216744585241492895218364951540523668287431859580258713784262843566830482634066984285074383286505095607511992938782239061254288707422018452218962547193668153677343265440018199128340468065636890884892802214554423158890144352618544176331137628519369868194206079978509616480212758775599601637760463279731088904075999574814487814000161076600442908310541883061098189181136270543348126544500542945938047524833789424888377815381252657988167613061832845278233361138762779125091048184995244576368800713699617726561658752122201718896800145837949810157221890700477999850652874190148771532008879449951978503850284073363054293272605569723067383980101119668822611309187681219487758785450860781631946407196956069158338012842665398210831078997822695528354524647612952391516099103873964838347754419005232174711357808207100365793274237182013026648114961813954990237287224794704279173290085548136638055872980090403949747621101546370216322787039295242569690181388402523644096125425794013654146124066197615607144405210609759963970781360089177185865569429715432083083041291146703206900878305463054881291106893300664212919745568127746056655913899446065913276721450092003616744083941853444139105469703899619989599010886694404891150933266018607603369056388604636210006391911118702695335660326176363518238958929890039642655252290811437257834391256179005348179842311533983481989126656303715118074776799594188707177099297574660291873847046708350234402832676115057593678326643771190020191027137541666350357119360035979142724308521179744791891744382443584170866567378329937681341031094210108088684118389113610607034131074242980412927934772236668470194706169346172818279615549312239575993649217790303463992919539858872669785798124502120139441532399092002221768671866380438006732467657156092568380496201001297692102397229491524882337558277945709134534621260147965346846291645724947431118794762462160189957467153231279743289873203164767132608406448730075237957065856892368564798814528246197181328663945625752447392354825154373908595129884309323111026437320948028659207553616951954296981714904261826429272871087295698349776371165111482615707952878350460978751431243701871291003735948054923593926318583553940030264481323405199870069475307722195515838760708677096831962561041089992265316405772097539691727633876907321004965794317966953700153753479903419662680601258671108793554012228387422664541328644758236677233465891750804814569730174103551501688104149007073674570771549182363191196486185690589497183041351457884085823423490167673602005387351943601015532409305311456179506412425850033502294927744315353855593337056863423532478589003504241911895217927597845930216472588175300318243992714609847158574599676180504793925206886345836513848734880424267010409378967653208780958119508066016487338495129753879049295250509474071837968450265249478304422774819297384836756643840372574372066707390907739643978796215182355378633163118862945788340933610729476344431738892811013289881050961994895705032709524002820912004350785684467893461408204171720320362420108697159892140476615441555578963957029941434891946218488963486356992873209427956333788238875386953842230612313040490757454597628925742989005841524697922908682707930695286862564250017002348700045726572090488749300464681124313581123441577428236802090910074188080169255578813234819901496796481995964017846787691067341458122958685869387223892027588969417763112081535526576200707111098347746019237906912805442634157902557642056771215740412769452468270032874825340417005183246267792682695955051273907580286843165818580152911059095808396945253110719309416196244625729128607859852780823896856510130227892598881184576005751195758240278381296963742247607173643967793099594386472105955485076945358640395477711204715450134375022752670881182122356589985515630576622519928149983449878316756309536932698433820303354317090509100341370259155059732118502970073869090816436469443639946249651231256429450478464915481661760671521739487890894456044718433401716263300921226734380697291368056350818293518468431961510195471275817268239017706524078129291269415371270135503142550115949101084593615142054512897199692882394461627653387810512167660818659082981380173720497438511956188522842806561359866366221041498315628557012199447795591436054809118997244156905663994643327542298956890058422344831804272568144601035580945309155058951400602860093135986939435112051223501812640080742915920993811599050628624678917965124526635435369926492473063917184183771170942111091363168465700042459351555990689908474922333149317358353140722028521017687745594422306493430227541932855642785725276167196152499120656450938314514849963489424193482750821569523753617840640489356612942826692443151781816911646854033592354569178485717726839458466735243145300664805017565340552147259064914750195209010799069658953901363131002922385739604000558858708968917610219955492795689206731754936902541108052018065658996298740311683602477952018876424350456581253874559157029323988872765294265058307544950556095467838881917834730683917946568248743320180671900714597124544928154736086004754332849926656922430341150711697358058027731558271662122728099682711781086782724861866289898965786298831629748694324982492462906991465087435179037036421839437295982342963025869788054967518304915947944963579521196076884402404372355225412311973559496592017846864184093489917935977683168620481568175315896559663116363000134763828241083543627012076885204872777845593778735298838871178014586686152050136437085831548168493553666367430523014126427541515196975017641984531186263020433692333403124228752050740103707609998231573129108448807627330136863727578478941853311151734058594716750836952849082623291706355007323310629258446112257613337782240835025345245744603292130182744624260163857879896586625043213494938935790702805807016186892479090760188998634905551637114732354654151079831344629263697344044880272743669746253186127388764931024397267374047719810784467389589975269942139746299712847435120953119288355669288278019587949115825103626879399043155948921129229085387510909892014976425285865716090640451204497231396453526602518667306045392624272812989415504762659853554147007305833637092208027618973424040462259111354549705867418443817658936951303003030652392972182407297006222062114147660366137155726052423649752900269695164165699046213407956167118561538199647944721802370954813138869387453821899620800401640320016745417225910044718696974353972352575901363663786288764047710619920027083370380339923103337525538367693602704011169688960469682397111460819825412032334711041106163382353768888338231655474862081538233047045155696606197690554486163151070927306827186834133018657529242703607570198637979735867419491473760955786492376131473461889371542635057149332832269249513368501079937330361830330898168160599622214845235640300727461621398269492924971599666802311920608219395376070966517126878286070974804122789122802609751269896512506413898449592579691339059375560985113706153230562591465157983860356440921321523443523664761449557364220647315651048380077428164862607287670930103277149319289573943979996041171524842935953819259823318574935564401239336409796323488381926505461754714361112593844533716667655349552610740868527967578696881723293380008344690725405725578337028858378935508125501436334319802680279671069646113178055286680573575686458868459947148333188842095223190984329519732903200374092646831843707725071023334861570420192210160864068804124985220586171471321128044585446800665271642379087041253434442527745665908409217336721289716335588020746450930702736640826964306297862077863414101409864008185898182453972373921810048642929504925706072523133499853644495524257183103221217339357760677242603422550518945181351424606938663236067727389347452416786180441635074773279683994803737033692631016811095863163458274710855064887481307431400624687353832978714273090480312470591004556938421101479816089382615585129588345832217597793607178347047807330670045103568709371200456638003744046443631235071909736398085007252828880050362130368249094713433700934046106547069453223873148839080875702083201122647056046059638272170145304196242309129247721368154337369876663808656164489187210925638595741956432236614374656738646389783909926570605183897494363403852541154981134100374206976739366871907205589860452483100755467531574930066138677530666504036599300430144060560214867627118070504402458870674914787303283909582052760071598235828503361795451605874369251719312098697825243008867192260124567286067305076618394807494165090008741975454624367425473341626962017940338435178473655691602996908401007405000677945257283590349473687746412961258633333795242032073404881612037162078469637783105430788495809865174251144232233276801094406727015084081382542280039730717230890244956261227684887605535385291499775981600937157530128428675119536689742919196898592322115415285208334690671971145095676950352126816547768406077340786039998981180799169405991654949372603315983623058638111913866922410980039384215864591350212791219587298545503059943655670329394977110099494153857006211990347544568536377058716176886852556495920902359556186719244920920151661793605548851886996978336542675166994019619494516441558307057076039597380627066076645803966499615401369987482558377741239860285508672819768797323144644930512816832847520672956437181176508977670922256303542986429530308814020030420585207062395951104742269665976764732381060385654024198204278240341214014752412072722758545019395084742954789399274084292047390462765998592540065626118814352510799922455883627687261819431797218043436995430778428964242987366453074994924812679122415019788877448108585381417385371310259547427780433613499543621611287689306690796958276997687879836467320581044576712368375170775946428377918497126124673342640726434174996434851551341409626901505926105701816432682571083013358126540387256098468312926508771201643171004530925390382109207205945544820919157500712925318207539498351052554332733822393918444801647570191023960344438860971345221980484143994465570019953243532156641849857050228224101753627425169605207199761373818953408859027219912519637218348188347844464504664013664366390146075595577124636672517173729128254729772020225206235221371770627189689617123799074725351533124819278104002805376040155524045567649351033834404539743390453422722850606371698818654462165585415953086245767026593573328853457382591166739636385399803206359398221025079837978578661552595480690517468335445767910320309907713060937542717382167135100835124044166212356345577250727669880893254114055789649385173074957119790113517719728471998236385145228638541488759320435129924100428434292291499090004013722113992318708928746742954213000095466636906237178799678700553664716743733573656372089399553255756707781225583814725986677867778875836450932195999767505231429185642016074004444355351263446274585160273770660338207093607741997921658414258104844780756649340842388380108488505516833399023142534509094505852166041398010140346154621301288273616432073017909616501791391432819662405277474355656842282568464891317983284290384587723520693759082117964079827798010774322285273394128577870840535223231533811241851251849696500422232196649596546818697222562538027126742328220664198248054460342193924026657998760008714261362232293440915674444200017564789258768754906851508263410969747210805867242771103630525428787832281928393200669629405134997411408142801299345799203500770970124832498304953954587648393844032165182447130778918762419420455135187317940519333345227766992575238399869321090791055228654864419710298611787507309918116747609280673736773410274075279378759177320018318989662263040596634054896353431183012471868419385125295391674785724258141447935128281497542143701977036664758983977342489807243514493019966586152122283861859443461631410460090875519360923002336493338685843749826856161287240326598508941746292387187718289748331907586059239711326151308907636322876998695703214719028112499102149810614780416614026857576582814797185840838574569197495800793846831359682156393248820361500709001424559167720802273449724505251821180902128361632507265966612818062145467727011698520740987143735736883761839316523879478477775349337960692566116716677047349604442560445452926625257806630660220840276862945054572124469839210717660206658577117138376540074517154261030472836948120392775545098101026170876700082339489703361823074086405619381798594091631919570873729058525269178062550789466107828446907940601201069112685536034366995888446774318592293540966083927079414185911302567945434406640522242130713927568170266273666988737724481639328902122637003437973453853167633190248642296324142128824991744555950273794075018265241675421968635147780197240343296446057339362843785996640484988393553032482498169047093967578633164875597821025876603104510377176672260906029442523793534577552282483177776746475394261577798861101140905431516261798767872430054800575467941417065017192842171836655340089404352420392364531707047418378117038105330397178605371365931294384806517938128980782888611756166249236720040180103562544491195941260070752433782185856886305345028814327364036248316093213870989196465954667860170008302781923951192095271620944839720328567491261007036309250594833855795118093569400575625771499785339685121391724653370407788952148317645198643177197381482106305785116170780797045579697224889463958902867959738898430946824561869791525182748877510546829958146927094505553707240646482174136892290397524820970050518366237862748592957128702202742298592808514162506392516080576474154107680364729598567919464544195381219609745793331769909759926104227301527585490601446010669225062602194209654604918262977278585671429107487282099393448543225475771684369429472211194067672873501023730386627180812817460875407327436126502294583101526006478168610707592346873249626269874580781239088256707328362204544006499263143637583048461509911525780267154191454365165553624128398333484364836835499771998639194260816799553969929169264583096992495799632815416787338287659086461798462523586281442660960179225069383603181686287416319718881429343326821461393378819913346071353712053159573037987578165844298838429448880499788117114736970697857611395585620281047804005974316566645800881364006024286791404509714620249130623636983111710226564277589706649300789508915917962166598023659216374982111088990493857128552830780774396051165434064978267164384841201806026294755306531062126343541969025430969550955782778532850164977895990868153223979571419707250080457078459457705976364082552806520987726497522647977391841544371897913972758112812404862145663408771352902484514856211316622025884629314185713556140613178283650398814407695474015001469581558825331158740189400336925159103082814133430230944206201262515770837072800467993959628050708974855773544957403461794815957183795512546130440563016423848416974054145053013402003391143848705236829798735287547046044844386978455189310411425989153297753125464163428243197414139817179888453270825207992872252348810189115743064436931954049953015289181756263737169711811599316766885325131694983432124180498842045348272903469140854251039637485323966548435323338417392353759634475903061466471060763788558381668594972645613210331822904122419709359287582758953790149332972916056068103429824892978330034062719454475140271906109824208754020700030627553267809727724033810003436555026565196034205972471423716448084553730001672482568093675474747862823687705582429028275721976925587357941762539201979528244334044739718317424739250442362420218194805035806963326677567383604227779649208282805779250546894650879770306613656200165105927806766899061665468540716210322900347539341642615251198574228483730169645652587066022754489635635879655744868215765856482212887007798654645132118212698715888889100010399188897374127400385113756534457893387730130878308148929975452798202453718409136543703438673025262957452245047869207534026972122332716583265625431571474130418173123175346658411372179922652421252446243230986142034788840604846149216003027753290889484119663418856612443826466048767637365789559202680953924629015863996348783368333973135365599833414057623799991350805352300469227130452787427635113736809934125201506606979784647781632994698538832253422802205237773827500758618270946638003153978534585451984272550754739020154548216813236818074383277273151099226342787257778811456433209144069041313230116759827933164696169644390001360247268660738813041437613574364862866820261036632679926334351043825821344668796773077269037239154335595631959315759880245201014227871250327420967627742511106852463959495573166852395837611447850958978890892864157943607482704907730946432628224584332136999921299354211456119213701846454755028757529456539013028451546387915342652862204278548603839325409943177428668983967626216764667980116580396356444652824384813140735152324174439990307537630779848951202734578387597739100881271251641606683285410711990878000268307016661989039280158367610222790011061152901469187249255044626658091480536451047488760344145978254315174886141433079117765608044522017553255712232812332429331289092149755796308565043859885960329633650785503096955672158583516202901879504113385013938886229846523904928899375333819010395436403722435936053349611141099023156696340926941161730417324323939175343308289989196360607382867602953168689285442872864024154883488217406327259337632400668576665883426156721236500227210516621057985692291293028730345999536977474385029754596639533107619191498518761688220847684179491805020315425038261621475129807860002183264763892724188351450626476575851387666629445540958990614922488888923041458168129867541018093016066934671680580202704579270576235490442057357434528308750191733377217104917837612649718158426749524068134238223144261705154272913616340041993059829372223019322406584737104228229013075707535437213433363877159901956693669316511775929764556363139722900756482934338931205793020967080382273512991115731474763961915851253756164290002879866216604934041706168210008450458610720190739352737565128057123453446118961677699934628449151755656122982362458549879030516931188116819020951211588408466478182964947432348219566383763750422224034337074702291552980133086191510434497757211062598684143545868949430226271165765671012162795419609535905529457889451378782005303768311491801964940638370593490835414031559613409841764906930387394190466484362889035101806898503640846697096465759968380096247286916906005621661757287765936154662562506831135611430870713658200911422982684035533352635215782976331034531857608842161779076217757151047876942838653352606230416144503314110570036176900212648980329949439398522199597758278713463715300037670124944519810059008153753676112256259903385072342434914078525992488978919211105340443459336329701392823328229473212191243398294894216528843242117420374889984151416957108450811936495912332187075907088932603139000070603406310950706446055157398818737220280343045042466911309675609663729393427732872521471496588194663657680255474609177003810086897677091755075119038835683504041105692757036210175328621530777728362551503736945725531803706436071378244581562693156166293763424055850782076645853968989369319844059600152160856449923562370175622018743365757227945293870737284215767678446767159727764406887530764233607567528550821454059346691550564568136500526016738044260965659152799419313335833490819977840067136480352273193957372502171214366930950494656559580829365867822427632228998105783170808547285057811510520965838257034788769067795751638169367798038622475229691580678410040856177483847731710309134906731996500831760589158925494800414406014148636851282474253316236699054398756377037138378477076289500647806350668745162287600669887065145074740749700964032008032635589560216025956806346255603932126170243710425117449155325649615457648001789750120354553074152665794644354238229912579994412218491617069905611556382453133808355083619944056571238701690050443919957680308802904763693204101689050546332890901699367064948557935051097530904554765233707291334172440100728159972125125316112431966308575479060765414940685947451531584727380419291876544916060187569672605629438614333342283901272797712927928634717558033587008177491461047082233417800083386032705189887076648497296878291818846275360752919727851098834741713009948274711383654697117266768330152500318270813942444625602187931734568372607217470382894073383080904608136516097555212406617037652905573205859807850145764025527551929921490649450012661408211078790934691704281986187862441026808073723218426982472534039327497434717351785481915402045526117336271626996488234774673389535598431563812419227611671860980647311784714604268825378475235515481615517044344634485837204163815309292917306596624113274634035818457239726065730797399049659441224278339423562937040446679916421707477599429269435545053678703447862380071787622719077358482640119532334175320645048121417556364014780822882985113335048399149488467556145172195435540462287820439951136050877461359916924409925622364728176517222713182727967595742027220225055390538598106922572640171667392418874783651591167337501589345697802040457999909293271805893469055417836698117851291915554460043809940858754811073409404204324273851711627173161430771550928297067664522616806256637597859041751490944498463754574140879890775609368357845487349642030466568914391661646354196115349259572101495437903452572324113712242138956939072944777655854140005183180643787095619590010179773439204502853065361338183105386413963133929401827205775747318547534960210220169385046641537382649580059395849972926771784720703081094894904591813559395179430645368410713970177170770239235324542629442065943727766199302394478929012003931149775922471747159291366812159128037913042770171386104233473387171065498199540490405179614567297914425235352626991365755761506922595395026527063495857065848208219294040655825820676903867412802706916248181001772488058900658311171522190416922266996241509197290381180089791572328980070011006802260564394346589980564381365240330781134275562097451674786854349111016379234129132428246694142430811377989114732427947993051051845890735630437760102605215397138567862986301220378515009630589353964392255406625297725301059187723395408145566358273572853791733600407218496956321542510402923422211601937405168056837881096103711934747569543339851957442533797606783062151246661440798228943697530956525450847730119793142246298699353261629916089520542678917934244024667630450051186717840585604431371629707538361724083562577718028574598379095174279406039338120289336988636426854676517716174108488614585674535404789939832772559647657043972366287713883067646256883021394458062413230647546696258588300313927544106931972771192468127533357329592727762537325487904095618455696250523344682475965335117005524203197175245412104792358878407167954345038650334738015992514316124734979638078762984338480376898628856182654101560749448108119957965120213990412018052450236693672402299074752051588754388722386164620782650568740228944451784527650974966288539302705624070170144818245814966070932278919893187850024313321326741433452187030179934058338631955047778946199097551244384064733309090798465156621234551540499143709883977773247623959401541940419194504871741381104090430097924266758197347131547127066735606955938095824372158442873021415155186444937017657941996264037039470070962667708257808874139590927523698935636834038619737355411158967641348273221050775869403176262829303745052713785694675074262597848971638530898555116760396559090896441627647199607439058206289032127612118401388861527803966159026238914304240618278902527192717739935559942308796482419610960784156540309161182921972708857082376334846530994796340480088740649145255789670295368988347854902988838637067300810228068368547615767267536964270932806342456953060558189985601825863390266219205133052106736398287683543275705937600126847241258357556543623517600550323808994476636851386433323136561022894567234678647494682450017642752422630922259270013625487753735041613492412227384740768735151571073114115015083313016445264355026695098360672759985580167562262916003578140229249367332423006532095298692740217058249378308543287288246458591757475712602357857781142006679564076693062185126767105961596792031370463916015300596311146801719425573486566632716878360670726814353825170665245631701095034724212983451172619305748912983334754587599801515926757488738380638378946906050522718622277499244122985957612701167065237012546038585041315762932065346531491882874388624530277672108434378493777389968278624083169034287856924359056031495377015884230548521506881824374533394615261978373895507955313822711009147661909330688474993579184624339944489026177878737100279130715563958178681706392681371618005098849244161596038196010921717744016783696284402299095760486504565334039419335854282721121030700988046237350631274797217269205826182955601527158192594393085791576066115361850196503982055011063025726784510380353629764023273260723149585399926062364855817974777159592641692149769481562659049305717675910501264568729242405161427814993868280631543957573272697767305146885114028469617673133456185994674930857263695491946832054499034840237291735741603034527438802342765791131643708371602933034318800498061425194605420136394637162030764623576552049836133677528460638179584528823169384962996819744523397294905621135112474261785901786301969363254522155548022112310563847541717524291375810866975937747878694420047954358794959371985782684386047568217207860844811593388956212802661408196994075877405674389718031429232435529721046200837268641177163507145338528713659725982249223834506567082389344373650801641439415239259869919054371948613870592664751625334538341449417182023642542935848645675722802600546952096561910476866079362511278752937114991500600738294462870200444197899005087026546231782341058680343473634531222894067966561165726004132813573019385348009360738988182640099354879684402959067643247010963837695438712759820711855029955535967300872057517324062755064931276262615699141089317827137169132819629666407510975061475904488407591687674969000351464053063053665182074090255868899145243257479231062621634164473581245637470705393465356834011949309883657146775582696397244047135174948397157530163507343572660148358600004813131176608299792525711604717172837169430129916673506679168707378546373595963287903043954410561410354630564602674856583697363923234895075180023660013132911496874962820393890725623446399448387842961389118789701704028070812051539174952801828184027960935326637535508945589861152537028645843516691467433749422191812695854235562550844019371452707561575088169117134636311719941103444676876939312143114407256016447585429377723797023727806842744519738258810706342848811814402870793566545924799363399679147461141020383431106455974232429778153423252644312594425902827265568789060820096266184585471038049593160890531522235788606985123583536820582363574102438879395305757567951693275938212356062067345414952479347966396754539501482480372407197021939892982532022778751089536668463477800299994111121269877456763850363289236330788207289859042048361995974657246021862071244125449927633948996724399029068224649836628631106950360968940412092405740533864645354188274030659879805860558368271553468058056895555438113684103343365394526735284569452709560129752122926174876712584215522128006832628042448182906252847660646947689141739491602794325927267663996702851944417057033624600573020856797102673980052103242427620611272307364087892152323818081662498056446179990513777228608779689490847424856112079729484070449574807505223479131791284508335560830442264750612689411366609149448242183038939339603073654050900067084388997577349412215525857140515394845102898654088142955938922614886980925317931173986791662576567113658237374512036442211093836995688780327423548396533442349639455725863883822827594486839469684653357996792490474960327871717271732040494321814980138790741871322832069828021725189361145352178729397042375427936741672647334510177937719659373325830936202509569563709384909068189313837085599678820089208018693728908905291917175979530896109060329379726995212059228483769623040596899193200346339826536359902506375085232130052064633172850920408092620574092197763900582290187427260537927670324852830557716252574559604240596139557085209416070449986908055591007393876664092602407705498880071642023095097026284861899806996418323277849580486142417477172080267687506460264892928371422039639616505581139379322032875304899976002954089123258187039495691964698923042912787510647969329577311245997012624538370347355524864250962504082712299339736510670504289458455844140275038209117126723714871815564586010164207994663867546815796312553862423915508003175942064616511813084260673793212463565866920784897323886778156737781168661983704322810853589893170008069734528656516967561315527213520987814422515301608633631430386602559031596564483936890891067602848631752706596357351587546963140507038842461690429328860553503884160650058884462600130295793413730180292774377972698244222318382867861876922323368141780856144848966136742442306257085319760750609061455153517836650993915376268030502415589168873006257001058051921277949495244810223868175586437628584085861437354248733006032530103706897968768560222499893579408236150371264369837148508439567032281719914360636426277016879728287398666524331046858576211279772021417375611219886540296687151634994624610437344963981739910095616913019878633631851977814239365934232062496582079966389840783281777123251735972661771530042723902306740989951616794554321562553109710176660396482385224345316891985275733523722564790370902185522643359301434178125181935683053160485389123370997748238110815321157523582215219018742761277345041946351182193667812828838069615645002620524495879539009175313913984917715530081028636706380018778871729796105246116491568706882949928690396059885196399041307078477388414286092608521847204246218000506312407512010273242467852500716498793431871214415757537136507557099753398226836892872889992883808582254622543425160144556256999277212066832288260145087449912081885821896511165349698973210576557276938584518158278394555404576010337433508257224435334441526181837890991327448278169170385799818828542879253144523737642214985723918131322597662919685396123482776997055427916523292252596553481147920954661495817945479589752789486238894005984757070712180987294216659815571539736024499226752371287713838036144545934764490152122292065820215694585102734870415569227670205856178997242279411840683032735484414238286099455579628877501671436060689911254552174932799223494674014449528394640148472567961619789904745534715067732191450932781237976416424673610268403447252637583791507732438749270338850277596046703834055133464878733431472650338677497079829435775946783703833844727970695618990881841816229403029089926700631009402409930233489622475101710824012745119780454080974563522793567820146082237547465490553170964464717595094042810348127318900979925499922363292665673817137723918533858825721149099069409290244497621259227481541066088395945519603471238227890711826317639875178780338428877169820823283834027966455351602943798383439874090258415147877911457647584151400634426997374743393047428918315262829782876292458991237965907266041611030711193078626671313124257487756858723171198430317995577270833941120980697544893014921944458726927275692916013809851320051246275849907460813577424245116417836399605588171575751563187553769113139704187992316027937609856062107807284094372450001387830708270737363541587149729383979252929654337390982604740297551605626038367992099168855340120171659230076711654687516064256432235891271816838896130050760743571285389479048120199387579516942719804113315974752772004765741311346951378725085584051580224850144073536855096030169804365074179332730327982336685226572024537129815073653427006544592908723996695931090731631156441862993198801392880138571315042122530798949669820208756111476121261010402296731008484912527464925770564723264954444041056345477636377533875241557394863224421183362110832112756270493295752316998614668480498133426668674903521787369992897697273393772817594704281032601569545776639804798187601159787380662159179429942505873091676234263960817650674290560747838514497338291844968936434551710036107113507183976731564663050127098751947071047438905822939287336207124292770075423181731968766973953912824916178669227312528606695420469207908961460488629173834754721250976938006913814181322225522481116586934429343387642504683746172938760107900997279903428627501860291528408874703373557859940624549142047727893441705521786538870862114616390461394921903381787098398211083651092297666664006174485679332998620223085864875362174932006818616086138759379497893273308739389367996521079882446605396644130630465157675237175112720704343659684234880312773280112212186081336683940077015915837173373188511372966267840776908574116190127780396789436108092960976426735138869215379355219263381806939919478007211813843319970362090221464176639185895209907218512694573220192991242013289178889569095535086737174621853051226180104622965205490562248899267431271585471361916307940471775715614471154077896954081985030894828744514821071345276572636902197641234986770681124735433614353748027141933759752573011493481317849573396966524732414191587073364143384274166990665835233360706689922562176999035003984179284574629247191877741112694139857649007484523533958900236622397923757828417668388151625804817303622079752686082373270030402870780824797547257375931195871756768501926626679976896811638413574179250626937434364375419994788234063377775213363239906542943113633013597631787104617014099255264706540267524339318072504494290758284195201448413960912749157445114799458761391159970505716928235945241917747178746258398989056389482453221830901452121195687429473859141211336146816632737216694472782645198113780849244673893508024700383442876529919049723823715074706232534080473612234357670044132927924413596125523699363467338336305004260704931945510935131185174708278304281838771066981203126780507801024169996656350063386007006351466044252106045432847308037366261743305254827882181640529953911612670369034585291591178960012294492472831148494657059273814241678854410672955784969654999096571043969853380981744185844276754161881748118627614119133036144484270413055803260469916663202065317584217155193855468720363166019292240925630647861196358277420943528154301735536846424323172972890665174833926556295892570654280713440517599672487272376759144899557612974674796828327065473565737953772934312562363510287515264578473156006695846550551326944234170827649550343419672929173956455553811542293109206803949880222832628115541703501500417437938939672187784619296893666251638146567851223599170095769356097866408754585702330739895996197306336834610061984048982854294901493484003436366519255930085145729888125540468419649550568341500050493025897135365233642595499875687262439028613052604114700421862698070542338100149812451345602035273633100536333286304882398430335595172720438952205549915478527328894621503299559914217105484742466097847099334170962961839895608945658492951114655550673041076757111668906416726335804069587280263550318246374547251231106759019698284712572271173689077104901537251328285260659468422501987464977130942056278797137767867389555164772914209273070835957863891296925644466645300723659555994623865583636711992336808779243641802688775017977993226477791575966559055668887721672648938603773282673000032754227177390422196677168727108889513107008469927214861867401204701015663369517380062518177214537506942700479032570873737672279853158512173016569315871859692048449620631145656816133303511277028995619439343885973840255994281959307697737567084598994039353627996344962539584053545393744856479494490973981395372297647961856922849152894965667975266348553661944640656814136521982624403791279561922548087313614975930432977769002056259775535344368117399674837784532593004300724356177513737669206995634342860605886313057668854235062605925851875620975103985632994781964750447702161501527706247814037278389333353592017553508460968923129896640215519921657626867313738536591236056633856118837238368313917062623295599012574180068780530568093793733894217412282559686391842146114966459253964347660352203592576205977787307902042369505821044718933452746356331735547699195818965994561516952074935700778040146500250098629415184457178471174378616684268839977851294283458413462478113412726919802952503555831478263869335898482326417310658143758822669661975269414325839244468030795786163004983620148251402232627998292533505874086007723557481809807052603193824706837090874993248079647193352050812779699636853197145880259040313931664551736301248390089149789328459908603339918399137687506850249384344898992178012287371694387941893078914309273733772215313466132108674015232545314067020958194369645639675013430648901356714430090071058710413003962686443507758898402749490349408134416986154647111779764211942255235900940707378899849797808097522954988800397636642343218285727540127638505751430578314174377436972267887560312958110850144085180132788329496075417421725640231944946607471529522728496451710311387931144271456819945054847908012590838258891292983888104289016743780794259799128870938725058109611842692047504690476439483635792485307335066209865311542296069729821735112278010203888038724296673912898712303667231663625173000184081979322227753006007623838116138621941898423413518623032286709516884602240169496082640024130200906905321890896920026962385579969498185607082175260750298213235218591602110091435977559654300457794013535770083219198586642047688873754265551411289584572172609350837106660870618137536616947252496665990392891345572109112458276749323934581054530337340640261812386055395413365424467789934536733092988074379348052896236009022404705419377624219574013615634071171681004602322070235890525917587874759207025445978552511810064783630284930416862468127277704722582158300868215842020533786650862034550339425613324450322120594439106654199266930506376194574927821075173320443226372203297600927262924447698087441681970130022780903904650889678544897441199024539231725827913770721727085039701040063603192191350754988877701390366203686531175027543346403491793727126188619731943295580817201028923586850110247100591486311512615988680816792301533166329623369948513052238032091183528319509249503932591399132477959803144332859839159062861864816373090618725954578312545828824491293326270262477580706372203404540763875193488359754191209283553209505989368136390254117897283465955714028786552003012780691015423466275525619916513436365352005866467915153202267698183066128494631637185949803671996647892882616910571592004631573689798143870982186517369427187472466773155931393560571238572094332186917222967465636611041694147646956524207388191870622964874227954664421220223251004883363339251307983345525220025164754499329095988667929490387081508232292707329820207721144333257883698933268094006940936355658540836927711360670383697550929528322064887319079049624787499474916913701169495445728535145032336641452715023295339515659336764878070579950569224130076775415793902109520037708520657298117072031228989899554925112845068070661528328906278630023143574638012681018150658917792705955541441435650182906658115623132125554995653184077500126933097938398538916845840186951261818107654980390533580623713496221073569658584904020312696082181683182988175469500725405613994833284583744468752804888784863540956318517319215596439993308624366267362052610148833938963051639283164155377007637519759712709194239565835563644310730918707128544357554919151669626194879188884268797317879039966838098582216375976918982996240121881433560269179579061293441209526094513023829023613712326176324452405350683401845849355991426837798965681204986647307072539874963052770466948163103054643419968111225484283614303228164007501121587331128595126355583505311720502793917343747116303321619512464387548059401523789106398901333911488623698231321558352109673351852463433734496786333555017060424755590311463395581060578994843623378183857974481694615013933530184202397870954377830292612565574405770083460719898721677440255480705483949818037573714743353158254326656668155178419544430507227686702360937056698255854609930040859251673664985497276928380964648713956208579269304507383787678956641639053630731434887872683279047468944783662759855723666034893884747916365324777610084703807307783978931583394667157000521192403838119709755890843244576165289416439879105700945734853041410947861372694598165512588185197182232068215100293132203327708860800617441836850135643735283732169477451144579826863381404526922610710119992451782158796220176421972158407946368472166224724343498999907251821154743614503175935690671936682354802677093414247347424849593810728623460296096136479908829062629115372936510855828424837843024107014827848121706687647067012852460394904890166373448544114412447175687480459155863526840923114710618843367342382678166123783241692020265097169506163453616100167701106784597240335461828293320295796492168818158371804731695021161147700202064780949664251462030323887262466607611387939174336982517675707330927704010928894757403565378567112909633880486741753344014474152709953907184594351170150428896684909773143968243768175718232745640748770517094621305190664942374390043975267775734751778321844828601563852620637280451037856017306209042825826703347793835388064219099065995766659912121388242614342991128052783323794274650480144295695893132933774825253142919427108408252785795167608666202886391718791991899334759288890880567002250215368600672642884185095939392246719423995615575292738408142634000321722793694814320408049899914911384096077952593929367160231609085989497270741206726091758088388984846971584170213014225840119498652928484751418561887070325215701817234137516391741684275071361366159951381444001999650432799731128731705263597533545565616098688591380536824198361370614576767846644349235144154050297898063394413124553426040355297906874683826101362903614107253306292815213304261956188338575688291208274169171735887598971713131040562484587861583937118819728704591330568385980779381580440917396926479297811621036209567847788791942399032973343326888898744173880620347658638349997728397831468652188258059792131382469132230274157222494047748606468336308832846123322297457480320761430759459756712620592478465092323586378396645108296119259489345702724485883324868921826363763340363231879449873008158683146755045117371005744045059481323768159694543862077300094802763411622820859525987424838031366043996611624469823502392353544408843466527465500980491736897262312851606519612695161500171371150801017022184343002487062635970586124200510502922980766418287429377895425988367512738332423335190110192952612473575797185346541452544120990622335352925168491172729685386013733890288323725802654162652697213854022281744845715044612666166746361460096017056119566290236481623837053763234422801545810663348114281298856180656219066519699364115776770010828604698896384213231441493876268706942401781658886981510932282578007426315933852163417517576353399540763428578874355546598775847400822286170247866445008204411640831281706587658421231761010858355804866967984762098070301748982475749000068154116346114073138278046863909945900370520914603612348112558671015980498990710410812376199847332427463678405047293098376788068189537872892822101029588593578115914415621027985137622472055023644272741955073812547184208812672261129553838750774656611194755630474019039461296022729064217260779833087135851033267221096454815308842053385593346739260572551131192669335282446696382501148641585763277281397966572861486401266683407457531764522463087820197512594579838085096520432378691065722697580385260906880003632266285778297103248500412575298347615143021079128541326472677280324723871552149689772610479196517514134838002191460328538738149478019027457222754362162702723091409994703962902393345571045223063236122663734785616438642621288806451845929418184771667730895375746083365260358003272234136182699217103925460245308290088868066976676432235103864845363789848254079080315676008010750380380230772516170917777472368723504881761347748478678916871872193542463089858284370009092912212963904758749345720590302026601750748910700730912472878189456587594217832141275584585825397430127790948152699514369842768166544812502379168790766680159181221016396953445446468740737594419589301174202901221599158939194680597579201415588991342853480329308867776939922646195096317307763704687395222647946501843501309065923342934865923897571568638859488429125336767483318543582247428449779845026406625366440141733576243316744359798766054109385998143162734382379368857678682580988530131306446340653795706531031846658297516876397623097072399390090364498575198144959092545653044478720821628911615199383897869782024790681124145022918511932566325733443074533041416541665799148569450926786020498880754340185516566323374677475797334008468869991573131853889107174217596295391426769192224987137803683782466847973325764798284896366344746503986950800230438174721229606822770284782097003541508262900437915206105469021831140608324041304940937720957164609408979873187948573818083305187403543519991879592730744125074025934456075864333639891723280667604935884357630695408956955702806665208914323798967183745191568530214997232454442937237655854570171340471534860826289557626755640512699380471133234528964804021397633526480829236611120605312130236548827579687493552478297263992622885191257728657344896183191126223855123238560390768161031511232497300731167950589595557169775216173397224631638393069917935569578275373497913147347350156027536136249832695842851621726359402138606363608076645427965109727083595136139560411561188304978068787093834553411170205872028027193401444240312904493870449255914130973503711221968666825296982159320096266897579169399498946048961790020237930131595871821300160077662740194196327224119100348180145842748040398458385794778263256159188399973068102438879867041162976959748004097157896027085819007897773808648572389083724627647737918511104631472107338565412332454801166344047494761779902056717616273904139418037251752163829801558625924158832405748320336923688392068927392479258921227781869951706499104784549266362859901247694970002469274288394033472437781892493820146862371782056225594030446007267675285788579667315055467288407469485563844184469321482152220127483114775501804628893194796612998561787915741265323246218835310300758646092333964196334210878549378695813355674709955734388370181059589353761613680891532393098080425713670782035674301144052081958023302724789437611501990107296267921845168184688307588130979059269958289091757158594260598013198674327024793991499354299172754801480146082289058776199288826203536042218727289483950224878969380154169315859266548140708952423902551150864866132618728911226259952106660415378169511054485505846474058996979748059596621563927124401627312477966150703062004180004456267827413615793695931458412071620249130627882732442639187615788727898421063099705250792799898709705855850794433360053386609847833742013411711116053542675563194693239984019175016281161357022783375995281065427436420248429107830214798922828574240660769500962170225596378788233133933584768998768432630103605103926195607339414105808034228744044601809730612365412618511580033392217442151543334537498372899307654311868566720362531314814940248115483922552666215214062997388649054633727944025815875374380548388256724876179365346621046879879385230211839986016995335517604725031595855511242657933067915399351208080779105308126430482347146095023025123533363412657989875987128213153481399647026753751526102530002062320542020143051069596028464098448200030937943376544799172103415215168826701794211060190169697325750655874086373933133029283612071309492681794193248400801501958233762515726597415106133558916309103113850530846787904507166127158650258442669460134111730624965926748316988755472163810020046977787427103322500694575246292476456496442692610463146941261063384398354723016681005874849037734891637363013433388444221757657951088116917332018546403460428745326681149617934574850415475142876301811386172041915721877813846857276133409642890523858024724533867260180759515202199114313431162500125892969709005585031786699886190871456173144906321907213438585409502167134160349369118661701568311442518558478981678313989435862853137025192717148099187044045252576240288369816510223215572650675917346936250072274204132307190786665329762859835853300305870729148284821964586861473308257488362137164623378666755173229220465707575128813734847326473186987538935075091080087052974522226379741313371637320767345226237890370108131282230694281814318830539330780667134533380687285685927939176220776461909821777317290752562297489053508282368460946909067007603847539809414813159431168443544348698839046566826792069780151469036826602995559837003760716746464691196929160969199166563521216475108198498825737528896039993617531410761403042513991882358066025547764365964357496037421015809636799869797291297024846815403754521133196508648056830600130408530619419666553204588980479937987541469549357992818206632270715089761837800655003080486485947213897675464125366525597901338161372541451062743039006194209928962723506766151378444047124086180873929174460343265851195502662944888021377097318074223564362371150822374683060566572685235873556928805436743892635930118978309904470156357720175697743848621744103244136034810944598347242875168915025511168649199633933490243867565055122814801074870369344284601504343715072419512605952111265166234509736468295149852531823265763863872521180734597100390010523384825687038529958102993785465540052987257731252009829868859928984262646870266140388288034432458315970596140355426238398565369703388786287718513498037273851809744017587269899650966825555315832582981575062014211596899034721891224770098835652424587031809007040956384360686849339201579960689492329974039385200859896685469227884056999697362468258173666582672367805031394603868265048855787558213347264861769806992230152491199302302761311501903021714414562431583364471274585582030643206455427795540780712331487007988387736865076507233985803197087816735485597404296922946957172365169840838121408775373001144869018987427096923919220761922938513922534030092045777022686514249328277835229174723286307035375130141091336263945954595533255458622994660581294146444261267410084532216481911440784935210032979371584131679635559106744809517441125153377539074016408424942734890616730412405370072241353002245572251289634426924722633140151366573226466659317774721054129532062853399420684747004459213476415436884792372540299313133110410754010203232592210603450042413430874895608133659691280767542529557193907118432658080719668748510916865431153714573711713779584049401387673974058919397233641530282746450756601823875253444106663178211436303143622214681724315743845246562903436224737432997181292953032872712079030638559572824085039792512844626294305927277841295459323657675191041440797875130901634154102774077501357395419567723062208091222882445960312133232421912452743761592237588609223589021591286214638057090882626060769584512573798567469949715836345367964006832202897397022702014970726282392731402411606090173879046295304045533341166201353032388987378688736953605649028155150235183016682660469199822442095924980220742832542276474190686216285428380076581993176470797964237974110683879434886867079135916691473065240621530302036110868671969694742206400355101719831664775419431035884218006308173342636116596742531781649587277921535395112245632052503755281785704789876944873275150711572673471489926001537088465916819276732057744016768658042634636733002164266848498899650618168240158769408654888085154532004132791673706326680344446933594352532880975867746064068881547101543480420106188825696997727541759540664430957883934971842465394052744757570380700139398030523874823244089412626166896360619859036636756354070778010125221615402871128631867171233313055228046051390652262154650371600329349204102494640075461347246101337949222997241479398242418882765469585660251912945062311601599536947107745149658938764333074380941022343948448703391544628738011099472760602615663356116200623051290680205176859815344129943530783825904514026173656558085081424307189317940544585664654913776111957156053155672713008802001195282625032705741363463688516499711250267323701475041953901361620254365105066082137252468905102411951300027675905653029995476389757477582859623532437370666796515170023433543364288683190195403374788050730582769980362923009792894169692149802071542270566207241627330468419225155720845210417103348259326616378025348213972375009763894519620324378936151139953915432888887236334502654265045734153003608645583813718319911196566578276151442892142679416289755046819831275955257939717743447478418832121202584737280730438737323255841684006062502544214384008021561952988605013913833175013386658686574787825925290774962502791679624505562946410133849152132074679888855621777093433381331096725476043695304306535012829238309106642700900115894560938144473616439332321298426786633379419758165790374384994969652720195858917567444891667441735025877003025697505381280434712909744470714568568995252444322533646783227439938835998505413218953030260684925085322861877280983079263174230150169753543151662639969348155045871632155824341794396010581801663323062566450460606591887371180856035105636533467497354276425420761519937154643094039296838906452940125944339652499064756496650547293867955473385158012278211265838004127974808164987533268540507041802785349444438701779244571124247680169119197133638075570270496611129083002577594751122504569153377693469416504104141083454641849672195580391672399443409906629951893498520755320287631497974915448128456272783893379370306338040980500150777201217930490772303023690629691585429414359748372712723743373361890177084087014510306545168046594576616171934425476433151474066534457654443358759793881865469176768585639781275214548954148842406625417964660815358284867578653263345614035754136709941068142980717923766696937331252320060585486368591834435433814584201688566924296830137017425304693912540464066796836902426487638146736332307161835064841226591326044303585011961070350950561036452442048235290158233410608307871226394616502864432818565260374717423568286997610479114068760297410552550317038476275105863671631020935773711864606460667710744039573355182407769956081782692404589544771304783192731479378602724538777233507224778472887045381763855264483872460483493156040868858622125341887919987066935291459857869208444073750341753325517308336344101921391310686364488666502535875061217348886137025566863500175002318698631886480183246385820734205632910216865314152781356276364098637365455503470296769066463091106833701081325490480727218151147006626070935621772698902399014714918586105626968173604131558594396805965214454050955698845059593036668287147058954726787858864459383105133693568934382194398747079947280593566775248902474579276145404831348980509359267274124891011450660586130413478261038265773269674145111261424931314403212865338499424379765065172372813331120977382557449660466902147524117511065263974791504443363565566482970136607731924014305438311817250595547269848167130395855124201590592999592251690950315453352566613897876899330889617001138520535298985838183890494810751251817836825259845453316661649034138443776112890355231534964170942220929981413845324673628992613758899004205149568859355587490555092859505127727529095090289085679456899338375834694099504956920593409425699579908811245501758299335502678465787034376399431764330122822378871495968572194369206425751970513832430915174188252339259894003094052380348855147634932269267002664592587334299947078638022603570758509698827417631310466081839092222468780075474405489792805600982468424108199747603703631831742380629435301204625059180987119869144568832644297337704970308415483742537203880861706140216117589694410433419563880018451777185845946818825468600035866860084715852303435417544714197569402425658238396653441821715623115092472677517414437038686766946458041409104926635257528033967895884237238938584191656297803039723922238489472867271213264697792351102225736871054696045835814067321719949817578372578375124603237392746229087701274563860565267956196273362643531783282586700476308290613804027926430006784831272182912686642896783792497178459661559706910636916206107495230825067932587149441344382425505038038670565119775431100238391110145444137665185294918620617498112225630716095440749531976315364142974621541935240050207791805518062786040858484287923551231848087150809679652269369678571647348409310952143171844355207841484696831736645261109591282777842011731794820253943040461134561097633886454712271911675055389568600419381249717256280958344908479798035520939715073182350500010531255871679360603833377493055647163918740462169931085886690258005464071954532875006191942846246353999682741886444726267459858595721447727531363388951262395962812897267745648191835046265342011080044790128829893302004134203406413279734942368819563193994281678039590166152905418845890784349535142820928464626003876621892263708367957457071678459794971987732448850692803969508087803167306104894654284649512444638547331175764658398573411556553399485619618953524906927222791048235234396403746777906424460325445434525270798191443890904865063869993539997267860548343298105142365738470950914012838585100052112583848463270987085975122507816908955694702627987816468756364476458730447265416765288513152824210569142674135942761002388631923176855129736684892484549842864318803737535887092622378308825358872016915406925822214165737709826085395958870160731299178591612536178662572395968247380590662794015322745766572850015451536832178117525986860703991851680238763460937433927372769209175132483429253713983341987632263475762108082866830422889870235932399128293525188609238576327639821635698613959590310603293308003824942181079853255377962055541856802139383408091543010390133374621981638175463165403202943762626265076191077259745500833224450108039532034377657285316969287733002235010359097424941871753129705408693549984495233561395627375755234354301964499903969156837729243125867306392075345559399103562500790827700862084359820998062021570139984110078822027986802173310250856565901901038641471309693491358803222337955511184724442379136994479987005476050688914778078646193354233455059928604940806930152991811995352881531721244271501963869666283630159775372882155876435958840055874151176580586480617981970484018445821573797621944716213339115320397532617436161658926039302038702029501945286701632075643197105222272880370328467647990161213204164521269713058060276920553862541110084589841732899635886015611567991530937603356171922461102814140489247258018422173937062318860191772650663671947246937798284492022954936748182886710909926520707336922856202008245284517551617942115450874587703328304403395246921430608424229616242057654398178185667882871185475768622877712539358094283039265836434494103416195604717882193217692491145873910452874510658552175886792311219879928664541522883512172440666219407197666478966120887990191682360128294689853211472223017216181175325172269765863319839017922713848178330773692654086751570469712247046177836982836946082102056542738047696495145074936888799794442874056432759726490446334761655387851899827803659881941415581004252451726676364264659275388150398514296622927644146731249483552647654975981647096068833793599510171544753855092824758275613402235800612194324739852619263021946340203101659916021164603047325613008376529088936672583235720566723070282806428765352490605569549909363471487918195694151328063322471537559953970372435557906033804066840144512619057579846527159671924294081564277481677074942323877561576717257521847192855406879415306384069546931171580044334897159601020718719517089675376074083989051153002547143196355888511678756853514325014439504068745426478843957048789851629582924094708930423946587132923629795478731482260300781005333203327519343694257470726229095214048719821279498412935994109092528090190299891794917828968031897321647879313983302754778678940266542918854440904828277891697040045850916746494151972753358756817326948783672418755009156508621001346537408580330835433326418931671987223835135088952486849010849507601413734386659985234808284387937589059213077164981640870052630221585897555871674956119664902826154804315806584238198303518948291166886727205083934016335637868479237568956566932731000159935216529306067776360500260181629356048971332179597813745461470819038524583696868391979948673774109140574870714203293082096004927901614309064404638386694870893904485096313259594897519880219592543899217021576252409601357191508798909088676345953744904946929743136481315150343855800432539222987544048193183449042143863115430550158013219283967380021883078317583682540706327310395522900958434152356693653753053725063041812837214082084697451597154086096153543691372944808493268725981095824955437289731645585851958567167795141733411277242899024190231946460821369221104910540223816790255701843768666719871306625112031267074399855135343753382948353684894160723400013554413429102689479120893584228864390541102703442790264001228052554062982156320377738453266077666489368251821845255860325089831067911401688626958960824356746004035134289007666074040938475580008826811373455487516938760191727070711946410670035840817722152664159816314063812756977191423849046062260539599004934283789178186767439621438604334617252909558229954234065919548824576191252802403403708992625037341338117954296293623183554706491193145142071795429687655804579426162945212150736176299887133664270511902772106568871339791193117994084377457790501900367109777409635890791473389825878642078617217713718073184400281255016110963735124831869536996950668370643493921548528396836102773870078082600555533384425024819899985180984333906439624762586159593547102848479034033993929232300637749250152434501883216717683839232376796850176188526051297432943429088934704487255406831004644421413355667849960143683246277487288524704244205993567095708467504800772247876795244911024615923442806814781403823131677486117644676437470599864222329030113880108792967535472004308214783484743648728851223964585012304112693059965923036671743024855599090830718155473669344799487827228711560228379774880090921338330752327032346577475205565912366456555286027744662584259293662987211247942718975626333013641063733952100813064999066850161451038137240068400223145665042097373387089368583932368785226454021845491925533993168928024047332838275499907794563318826753608753993885071139310042072357061855994623758655504632513674198245136670785159812073448243097036260227890507819490224770306262317070666072967354321325279016899581981046940390540752723979236258403992276626080524762557424488024752712099001473902219896724654924619971195809575850695326720734842702774837680095574277001723104672164649800306565737498194684148254040959867602681587674493128473005376839948343056777288508001133991555101206404444844481996103775426233894978779180974818440433939503839103503477589578520835984720827577338943699876757511389341414177110958009923822962488695591854591202288901232954838012814458869073736475976058688228623034200188436326917282317496158139722837258658973165534917871470325346953222813769116973695780451428306954582072907688646553658396626150657639487182170896100549565448246380745836237671344121894319186575051625654242920037628820640459803396624159397048799775567321866544553244666771365197798285538937473504513679005580192618062323442832530965583327795125548070591255182317088016979468544408806874154409435957134873048955098517165942300551252667711791700991880099657006053046318143579832708588259768975004997499916824365080009544301087326192622170722852884128149890675352935450128925159054673911686364235855588491387128399300839007916635871273574472676006427062829305496041988271660769832259771228663445146260771993693816518328553137426043161137284886986327036112623772743006968884420547231862277739588728187352822388413256150463021508874831170151320699087351951166169517156120504207686341360022337469376595701114673644561174960651988703947217494266685100671795884933646921790744373179609898022844107736894044408671380686825222993343175113218331244029404631361748589325289132339391150361006398414558742917862039579859446180621724233968051038759329318103695637925415080105278241704359784128552771615117048002193695674282086863722364034143992377616294551907254369043659514435743663491533665817607207649255265051997275768363833241802351991925607860381684374479552079109547649908203727364568671163768930021223812074077390948275871581286850087901673904208080045215101164078052973356747720760544391135603741626744845358255249345319384900994720328880881232196676871255751231894343315601087278502832702655666378398948945638396632688323590939823258552494507826220764250458014179849309900418864872320382623295736367952049171117973972824260930788587630179064342234943029758327522235637058391426287415273779748491180367474029776050685886762185659003981941673981483342396697458149491545979297138762829868551470146884343455804549036649671409707577870070225150354275792288945686980669084891089900313788886452058284427602067671543241602995427886752580948367194294401962242877075052724129033617912860853058640996018615034275049193845894940558465503808681178290914116793363378788138900015652552959323122441075503209284143004813914441572773419827002642085523476025802684675315141082360042557946889738791438441963738222018199163149314936368887670962497279740011379987772111131650023025140816420510245609779940140412167876606448642143160261910093899229394668262010113436794601181633398030640701715884168210733037264628140388414540427377399081980249136147545941249460453374314586753078906994211390942833303644939640747344343859200988154610221934112813249157783950569226765800556399752772212106482638413862997747755179554775401776397743720162029402598943985932137524181011385476798493317025054977802152816483456063201716776608679107515704512417992527875646943504643199154376202641455397147629138826994274510858281680747740520779988031579146223094861164860822543456471248128778374815056353893727892696239728262808456404065938662174347832495683671426334132891505363276750364460833881629678788162537268996516531316817688367716771292668453337854719402148517285930679775222034115696426360511004861908720517410378442322597560891089558996349014672304071410814600004833580543141504919671720431779557446547391278812213885005022032473798880985932534997734008717886150517323431514211190795009981942572614360177817079319953075143574780679652437236073906142458019627713192368851321427779680108554804599519767702551796332217734089376254662287485459098627711244278571533811601359866329844119117773314368907253466295636795260014555035071265415277100913087127556676021975478358711997352788326002533378505475821355736287795180281479903948904060134847626237154105046711407305771407310805224876421256937873741047190255099158313771536336585569327039160696356734698958191924763951919754037415673508778961348730467055530377980113164232049680577744697810103674806537431860239718291741572252720458000219947574046061809534766027504788809304431833710616330359893489438954023230621211360228135739212144284540674208210601768072289150227736630514717116921672273618548155275343974330834590130001535788705007725394728268527110367511114244825375473050616021076833103724310411289276002966569929845100663202954277076388072208081529385533603040289616756226495340487230242509195287284197260161362085981170012765628337861047387391791272982951750177479830719962930664871945751064987635220144163906405508169493466207040434736551966448370205698028657012390749960733762748728201673709889625956383994208276260178925960683578741233425941828359775399100223380667050677421598337291694106939224636918886082723535668737602902568225186436987283557079761740685181655462617999463922758204838744744230855057229944101693021207039068563848905958774414892101046533866504184784570340205437468007138344790017163623404883912619214165272150170567722607804573038475399508893715280344843390735179703317033682331726178644043825982998557911070256514809800112582289661918145768682136458615720618476880012336690404050299876956902931101806116506667664351265016497817150729429187844729381581783652323299804393131417050315066496808314154669129898597863822442480300425307080399743821008841278521322177318081270240534543681894456508911631846582874677536487530531719133762801089351366781335181011406242941107185915329792229946151352888522678007273482162042783076154277913412001958902136412227682214615329366752968207877741745064182687650960642040306842309266170909615136202851804699229266013374233294395231307536606126696564010804785843606159525086273106944116670418459121340782179899528384763090332491929427390311679566676932355135446813793616337432007757093127863243214480961702183434101355944190534275421320535397589918044910187460395288553755367595288694229797223830707818608618072789946010157899913375294495087724242693539425495026029581568580095161499436091356639863578474308200017035916629244165094422076947317861491632248322933266662000450531956359665611403590406668122355238950910799769888851455852378837993910279713927503645933586437583695080640582130058374325980116898007626913908159822669327683719610464688185501364655990940113042116474448423976925245260849165100398280327711656986310748110781116249021842946481489737573577172538169935622582081045918240764387749858944912149752972817421905910063189329957985821889593290786252454112035909870862748248728165907039964756755293355782716306872145921005362297001255788554985553149607585411216246185172499461793289107853729001846632835015166797715329411735804616602648549689974411012780594352838304246032425464481664116070668035735814465400941653893363305037344937934576209365179927881598917928119292749687183184888939759805329638079076461338300112816798372753715321416676944028082723666947364463365404565095843114022767406630173821938501229143187417949003171429960681953666810736913875159536976375103956356995713676648459213638880801533862954161952713566943952889859083169292822899829139643626723275208855711398229308163934218542783640033953808541863006875885544107341509508881342777878025615608018201001076165061749378080183213222973746209703145362718514876688191712762923973395362043354437503334029993394457760877745064475807364409526099367568545367080233575135852012265412494688215064894696166636343983258057032705044742361247154353006970435475816943974922044943335931776498154434727145855137384790725837942441258800099947828928128045335224744957220420456935260147517664062291411328298203062419045981139562106958900789884758341217436669051102774077302204140298717159815413231489861215079595377013264441751501389387061897576954497040183511934201428013055073251865096183030136252432064362067636154452141199851289785797404933544858031238722974754882240865291927914034176154577151971360451655776410007741190145443383887561355583127424388633217445896817816788891623891790384237211052955409866465418725451896778917106105552239006965292168475015831632648967856677947580167873225450301900461579230023787188246128657091930718943854770159223979105171880003681276727672671167747763097673949424307974393877055542930981187900492337903612779115958477060957831288613210518241713903400268193192351616333353236724279480666479829976142740131698811800064886488024133067746654085712671894987574104871772481911430043565117110030289188177773669238144252491680246954244293725332132661086421164099834538248063664779280868567671350766542676493259734498252658279977190171277861700478461203129709986930867936677587318540362052231310186953551671709908287491324215268549712233950355678131369078197688028378463265572595876788470872603469216424643140114231181782612712713711630717026477748821543334221138601713312652306373856939217891745319429050934285530649803193084673494578853673628917051831987400658143740205276775035227169644338529410459450019295378711094661347178239095641772239584851765987586211499067609101349005958510286858710658615794649013175299753546132269946203400944999734888210883225366347529236310179772517487554208682137147855288365427883970698332441575368466204037952789379467381087386615131596749504647913746321577599976116481545096730374540151575555763703975369816921463572714691284429039834384413428053741673489601597646707414643648795399969483867430519766197257010505478673361930954077972240162518921848427724860492883652441282682102858051930662886362157207317582270927365262718912956755687956293745551508226904091520468957370971047078023572928108214716265005157580347438628766123846595109858968238028154805600143104562865324329637639295161664744420109400911628046804980278727213438601790854942668616580320069233184785645146482881262946729912348917081304893481719798412421455122331667072204840971245502301190711927731195825720552802962785593877065581413212625093195668913735569646519473118225806033556927829222550964323219732784935546574756083969519351968640176492394417326300703373142133934427290240169960032658142304401726960180864294812348663930827079910493810442662989836006924419670994295875866559339119778616384425453708173292364019448949604716622225734891524916502320626374685583704703988392423153507361146043937368329690550971861411621050555050375438477823335018392491134092384550041724283060147029046886110331173605948341403914986782890885634620962218516868807724339125704342210358929818086552154721371879385860148577542834921788985608358701695121957604288658098523996581032906198912495985191580755671731953387774022618116359692047823854600528447232465683409433403375411333007707957710255161263997345728713447856192795993739602977377659939795331757838046447791697549167749059278922710092186422831150828233546840751763504834022877287146652923411546977950241474994036949607590260321034087278620858954095245441181175726628178319382793840726233420394001568605817221937605352543283911857597045942579061902098342945782935678939445765971583358451408861017335909952551311449688176322345002258859111580095197293758737208810774240572001778645024805888696769774022195651101762664046254734531020018228733774036709431796843596819020645643358191096493444469342950955998801209787607813655889762892195977638251773484548456519211735672852095428836741556275231314264517201681766124804456556552570599555995428065668009804807314004110992246882719748890339073809233134522556299518600531435219303147959464880322666077825153178489080462912143106203984431204147370691426869250945304532491453252734540808451295150040429859851530928702288537156196470289553659308916391261914851303901945032128571100576210759503423570086334961088322173552654377535182638452219493928882492186718523232014045851672060116598048085153077976862695318636228454698849993582421694844118425900895741211464098239615548297869205163266907891583196923458511518977014351701964145790622666503914826453173774324217092493175775130932448097273177267308157860867851264907761991377365021282741016964095033648783389563058641077011084281777658542434582755848227555688378130147650696965939203208604897825274383971630376057409194812831066694056609840876365048303009016778815059909943605464717935737427126844175285658388058603962040915535682171213166997298210651013935564874499283715435979533236592693201259190596754211089138036465999634651976247751134156466081621030702819033244140789784513629699074565847248173906333844035051213206172524995584048010016959282860740537164497966350670224630810307194555457554842242682872396964473784367678427363310058578703497153912462816419263929620498301670063709099038036563539097676972312039870559925288485826965158793820441987766014800015268494082041218334511204234216177293054144349911353331911327977844912322191879746518449327544155834163148998367839665969798105677664775942866837581036425737320750356940157313934766329071478533541673190929410767934573606183224869329901086949229502009365693528200565789964086012272599066232110868543402079961251418962327607924160313342136536657306490908603024643558412665697025243452740465150984868243662929074606402384398480463101132195160400624734612829100527559211664470435339723827245807286522333357821195621795238976263797450060102070783103600504861723389654571106781900424604011466251052097205833311691399686549276004700181855293215721141709000396427117477612714458104435756102991299106342922723492400279609153522807149623172558761988063608988373050212370860106942901074918071614289863449142722436462121194970890836516798577412730266131103021004077094504384848267808260875647188647913299479250089661851468051417277471834852917869817007183780607711172794250724765175689308015211118389251965685601375662243868677765288692299364462351864442011193965180981591824619610793487805415661346793145636986265494950703873884975474393200904026034993013301856226376215304486924572123381785763282385523020598431537471515696573731704609357959927791005929260989167907660368660481710538849681769736779541497340985731316944467954350272431470638753554278792899775045956266238019380616229430015960929548961529064013498726601442020236842008763854264600442774398175986540007530973035572946648869318071467404098303254706013842934471340710604543230833344296940899828832899122131559254259768246186367896144646406299260762986881687822925018194145520751085902715929022033231355830653453351955171904984326615284869027499286982350798908996726897487649538592800957113530517092382420383746697955383536319355843912511706212462287414099990866332853619951706237549029251935226923811010398883511065492025244804636288012634325719445533246269578628786732520514580523847331520956325872891229977495224858698553676973366875053702037114084551606943813881256216546711903548633593189434017903911665768706755201559873848501619192882210741865187341831106760140361125540055385302380279353686536698580648551079449536446317496240634961636193514860312026061248616229893571335928694834219438721642579595145830258920323833015888931868035841804050767262090626579464364367195904975384104624242071535186442500064153934074158282996810992910300336386760139483153192835077491380067778773520806757781567719929515643264424395061059898997355339637135811608236383228823529679978839917426322285692834465653584594088866681723956409184370197904469878788225454322255150018916172255560054107181594141721521684882718333339255140022253308882415816313493610270620708357244711280222326731598907843696321160791705837436103455041863783137106461617964478267415312578051425241675285623917199243401569351503943312975394801208702150592655184969623316008073724933024558746286274842630792841167388912178420435966706093684294122765224286345960693776337262370732435508947827584006399631707566005696004873438228275551172262211839486593279017616892420661872566149790616593322825194138888907502817309284297801464573705541510612431011783680570814791718813957470427689366854251792934736370611293652844063589165946139027850692208184618750096283410092386259209577858935186481439574908954873211665485970712995160378047531075268292201974289237141674628688220314571975682236460813921886177887961662312368053139476191861322022514642593386868586091180464013926630664615796051401065610681842672513376291689056973618048589722280525710040951403209587016571912753613741936631125631050354380392549266074617926827457874067414476825292906318010627282426803109033614197036141270547662751926443894538062908321080940573107644650427863127954672883380693725475229868741050672108787894613591054017046040702260479802600426956891784593436535503867295279091372352833222321497318804924192293156513635448872404588920882734410145309868083821106690971291689893314998958585687591254401628550125725399252766898406486527724265461808439693328699263233300466899546803976277508673541763642497758347501692185114032741776385144747358427589840936574765818098394694562338741399751787764603049072006020077219364404432463086516304470805318065519894140331908586356914608335061516381750496522249805614929323936298851546867510061664228821102185965770116054819452006785599373098196788753943605269854341088882962599014713289803855384315885238543150623520468803347992895699133573501033802742840698854976278524315501165798467784008067982768686361586649670382575522762506297171625952300172252367272184608815542172760021215833187276767955249103048116226803277736583145622271932558406894920811573264041684203153428279102904770528272296051602509437702497153897343081676024420147970197556708414492009797126495228597010452015129856371847841277039948790535078032051361112063957928773117367571122481161795732359445938036672112354725739894356325025461501839693493154969427481361465989900904539107041248682611638771230909926868075818912561139213068265291674294971061768429792654467485150167813574888714597897668663683472561503307232246104974546746302326726459553220292107488128675065896025277917101774406667922243213361765091576124150321747990252310701631541814034112705889083158587706082216990331891144935964491256999124867925436724204479399504357436800794248652961281734214203305594001300960458351797334306848185523275118753774312708493524618168765510341496818471770237608485494875894470679910073578245768237905620260402043372543564404621230817641092449538635533156255966295574713426143202240922321414478793663028143896779029930766063438625558135029869122813988019570003278278306499512957058739606589686890697081339116062018154116941059011613448543823253622186648282022585102440874895291005611561555481699968656396170739398728261276445978717879018177910864043274222095996853022790066199846279279442945570665006909674504050233858294388162813827670389240096603338546870868217650470429765851570024946917162757848292182233901356754945674774658509093293542738079404998695729629384147023229595426100930748162150809221720598914059272237894056831104473195812452402792578807116933169735231887768213075670019345967733529165993434423918591693843145352229603812561250141118824344039670602494928755943090527119477706392542549587034362495807724055329254564160088798075521169987528513740652341756152498637403517624744682809801597556958881197199574597757686692855273914342816608412626980592195770594407709608386092280274880918998751510582685793697593529040599197653530174823535087198257916561821739329458690492335569757857612862229468878358762026483990518803534838915381365658816114000260505820945104854013881000551701142519974868520414960650557507450113298683246269559351509852191835686013394238214212053735301716281738196260621239681637319906338768910924068997214704290767246620217785466164075979653861571975956653565280910695765440598731540221254463502682353348317704896221978301695281765797180365853731654441873458563263160779287606937808834657736610207038950018089584547877376842866922189332010282700240924099639612204756685306957598918880972156113225489979314313874238146245497797660948872327719088062341103546961992852869271417839298005633114537945051574196231496404502643044679554114071604807029537440855502535067631688046025640841622053335170915110746687531199538224952091323080259333170812381763159713653062376245254266547736627404329161163193092155846702911470318326474396514939236019792913724862043185257867509512310037610439265159314281406072688008944652710809142328056877246690276783214139617335323441962234572843036478202706716678661732854254398174994554653977612992621311042277423181433941735921338397011093615818455208354602327354091507105639809060149030300216202309538685628206126128985609842647799846397524963983324243048961487828086975400700985076562530126860685128172250995445957934283225062301063253481894688512633405861213534113797359838799244923247472560618167312108447292906104780198402481460176387191992459053110724768673837347988766709542404961863944478734381366907455329851566663834393075866933622690203888370440623798834485622250295120041834356973454205400458158638957953769246528900138095584712672113484409097743440337737356554545426894879779616081384112684150133037944303447784007407247996343313649721991970466220253864293805201212983692172950509676893078859565631666401780828641891578912605517980316598320193580408015616507348248947861555936330828134048481574456301973668266475746758120366656410922452053060145182047164932631414247999306997004175022021953651514966680284588862174829634040928825726024094810149740950283994639584747764067021899944177037511292912036599550945551097543731910273601496058691971637677239466112030184012405392488833119033329616508945403564795829324554263614130765741907585084434696612262411816746922114907345626180996047428892765106991713671796013925243250870023979864280447052526168706377925964059994792149020360896669695006622546381264452996707061819949076606669283687997940744794375371323306773724577385379196864722512139881107011310089962110547172676194745389352789556565895743427084632392377777004184042458723365638749111433744909551039808736036271959212293643225538747395203964124979683078414707048891098966734209991003645200581389095558765507599222830229477789519132437575218301182328576262311157809963328250809014529125855059213956779090502552910027724172996997308519288170627619087719140688535397532956878749989260925523429258082408458598136100315132753273586429018627321348125590744031053771771615990422483782302727828720806063541796110268794759101404925982329899004121002531334121948598217100131370811682153541275950057168722336737169274307807046235760669701979962472894640057393770619057350992727790523676915584318121403398606913174084906235993464123060304552479382556174391642122375185327776107735675342024742375676216976922898250405367882290420637012009336839807369252813940464835184430685381657615797560934668824650752982506923066438793379835011403368713306697858418930453563372598132914767305953812487738397512223769344922587463437730551922102420044550262866995992287844380117819898938976595348862654779578337866640174729969519104897312252814462310991704487365879191760073932392740612306045990203064312914156816746421811911163537647022295164329801427944705958849005739325746612497494853550540267391617806224952426337079498351538263665880297600099404401013905198858584869054843116804044387137050260875069315260469967779339892240802841848082491082836647005675785667503110383442998576517674629698032683772728038407297950883368824659620381354940744282793987745789988953690933902097409015145196942009621069462833773942245456821640747060566174400936859498288037429648044812738156049837642730589847810746018443766091829731840022415049261082410539573708195349957820319424971660070714425152891144193781489198120747817137126514905790365984652356312523375301893268056070528346562219225192412193501128288074278504278147092906617670737411470780483127166110514388133091616211720008747124669846114827774452977450231470874546474443716774220179760203660330888727571521273841586413633388424356386622430844394345451066831748976948089903207244797398721353119822722346628230287456442246187914924500295086053034615794378052910250471997095363531923787661283786662817243566240962755348305400870838057697426564968229053422097461754643008494801473354090995234041443470078156159857323600550121364594143980187618325221593687703938790037408848983072170081946543584652786753690609556829676507784074448069903505855574016580909263473912576956414132660239691600681519038148480943938577213978690878242637755267232056721843034593732322645616098396650018876586994321522718600673216152841616732552873555067415316614309650723325759914946123151965820265512460839738478619513703358852305251364914260660906570588945733374487307270907291791200636174317821015076321497698484228244234081781817639308821261380366285571352704813992170414665429623764095406625576097710862425234044530299699725373812859876699699584230906902134797869520496936393030526534480799490375723336762772523998130023290801264790977321014493136606933713422075449133365166152189442386906519754793772296020823253597701320024575222418963599701332803734549466773919387975870611087806832244114697804128631642211933702710397651347284979232917767942511628886900862651707877132485632460733105876742018916527748133526668722649359905640790684149386059751359331788069528891641292380081394386401397912971114729428477160291843820863464642695820254919267323714010278720022001232183811946922043902410362204761297852966663173720818094314867414646544416220081315709575744152572695852930388345567562188078410259948851245779244581350156281743103203324614174970983889396850801356519814661595863014260116650683538016428685574888998806216983288536284220001059508182199264229481861756616402247382830266813686596080501724748921948384427516229545447831054772123495341571670240438007055759268670122369420107112170847485916345143868349462004935748393435509401370387984372880136425606621945049646498908096387539903015359262726598601783146796337457353180854613985112209843438269046078858579624153793739873778252791131525258575718257353773682847046237483689619962813810614495384500995075671670664270861335355591824014350967339078174324183736429414717310967161275629740856412558055511352520972547450160722367957910228864708308539515212678044830034194156745570294687115210815089319720207332144270854029307557983970474515338723531095867425645927518616696720867343672606169974533415111166857003790576192995589572040217018791751447770531074071299109949459074570217439823233220096563456736778363881607933107758991782980841848383189715520179226096820850128709481365886092755568091443968322130068395923493671346326844250800658627384437982693218495645241454429773174631627401206625151033469958351365094724565311010562407073950378391746018389802494174886630446312537866201817640722174653952882608499804373827449167866688462251194523159369215946812811050220860710241744297275816763269195709112012424426017391497447779722842026473263924349221941983778095749046560143046807864672306705168845386172128285087694530813576381758681921653010926239211552496581157193214032559452831329651039520805721411438061697855032547240311453353840722071197214558227457184975748291720437800001722752981249633660302930053575008024160191861261186893391387136894064501481319660754190233017809231226623860591850559179619496792808432431430497835789937709081972724404638057517435097682579060315552344408796767037492575155236840484750626987447142373599103638490729944945014499569299158924947196805470742848071679124979537124153894004126784939834376355952286300924041487525239534976380600359114470369208248758628295607764346812563601176432013778757761202776502394134344223499519604754050535990805617959421886825230279401752691408496843533440425325662720247185733403016625229288510400509093440558813129112005985046126347204618867206316781283609125786945692710720495083551628683152571919833206562291650148170653094533036829567982111772738805162188630536650920142931136595997213445083632327400740887959239686213161031540110278098266526782464312153161711269862282596086338789790785873810841467628972384956142998183916898966930320750924963895406368835762138584915636753811094858032763106657143196447629487430423179866404071781149408171874719830986058953940778499215035082482740604676423101546271374088677174589996627961964128283503977533489832813826644002140989792407762074529690472803143966745961706585270727562422310918994174060385921718057385512524187691949330609884566289761528314735154066081055661401903105186091624370707286790007087002218849480787401714670571418076461331558899950292335384806608868181945266040619176683747035485304708549024157755951272187705322467021297766270325159338943739627816158637621840679828827741706002315053942530776528162839821796820892025234671317230359110122778871722513297327091861750031180186902129541019694011139889452008209432142373054650297942119554079496303348421568466373147168937067325556048030089392044807719020379602257753295077653833927669772025475854161157651887143786585027106271194361783303565951321403947037043115077042077815092189634627217638542731603839207742759516458825293101822634138738134515456392763159926054559297226782723627516402086169475664940930599222479147431999654534081355082539768752625356352485515591953457322871877634103105313127796374835713671335363944536632037799623388608028109705632082997080287605847219231124191627792028939272387768631092848034182024641141437062762831211664406262834990979736829244979436635479981765653802532719650409188868956331824616403831449917663382608489769795411090770913395602218605846973550656866757983495573072968067335743065812818648271125756024133206561216836328417121077446769514590296303272203045412148927316764476145118360829216361691296406525714627435766312931425622143526107378424293589649635722249679852051049994617120391324138209206766694743949295157183030198091480243343602230849406234507922474271673495363575718530739830021655831068560783063142530182999623620023448341585400889913957007798730358489152262727295203302243241227875117507805305076212241686738085775042356651043436635189311596524046954310860364619259959420339096470647702698950078322745534132848946654714256338925744447917687895824604003499780263744274019883097903515667649423733372061944091458035638913915608666329673041004410074439759313014282671603657904248179541048506883246173814056191876006647363220589663521765254398280416815207212654183382777303384464054553328937670950295637705724429150042552443199844009621186410523344349326450397910443970471931317388263172206373511580064625580762676080941817344867975924728767436414301332830910571650976967878092549533112688627982906220544118178577232847656075577284211479081770831494832744351556572789819410859454773515305413259744550335835305190578092096353388601800412889572462898658182753319100092147713844675078344442326964803724303742341043815382045503722628799184128428430488115434877790049192142078674602363573466111692279973325197896985683691298084945000930319979354168791702741885373613376721086023813195783454274783775917767163668698537347418306847274391730435014411088222470451126856868779752603944013328751554678520898702196077979485488941476730760944352711261903923072087953962295760176645808364791881955929058096286709240814650141096945889677228556954438515619400221215904034962483334992841669576443941174187765506643206778144775221426522691512559460386044189740948882282514083659768597208881269963549546762619840676090984813694556382730984294102973351674336964154337301435005266073482684568071977636519042468229335636100338163507007238217037700831208361533304831978293400579857460310390127427856289881282511452788691363077053297926446865699288312947151137495286468921229279830987975406418028763661298595129746188932289857836826149325437098031467189560001409586964580270706983668191817499931109657682574985018160441713447507725001267410304249133694313265733644485061942807399918085216827032016024060607263466658398149010776895158252995317342217750249416997404242265114959343546747373582261181762455326057940314377391062741221748289691513214669577102981198252297590733268963033486490040885410166775603415339422539470155223975730119766392973958401537876054136561808834350618206588881870261951009928092841570585730200372382542549197432823975567062225436815090461796640244756412109878255901434880884372451980814057545504385882338797849245510912947765208682728894043275926391478525181453203337504122828283363429197757847740454484730680443278734470231219674336779560714333837120028170833745613060216277650209183503262013167826645962197589648014762859202361563353614753884382514669973535798544845297596174314629915590683658291421866727777351263105676890368846161946949706108939408572330734174223402300123316265950289903031907482546438645175443273272011198984315498127197402032212549013466520648881933320290263983728860229244524602029476787493594021206351359502724612447279139104196799133521220296194201272684250498424511030699070063980376507034698114065512405866203050869082319113304601311910354840795721110565565743796632151263597212518683831208672397233875083015815614236932762675555839527669699380160201561561523651101006601338975461210254743733691044169689146691783522019003742238843154154986489017624588354141128195320414913691351004644147655737777932058072684778182414537364373088990472662804527236096270671185465343134902859500949712662888196139428628644543862867842301946525161290919034803458055993472351845579440673975744736416600826672705133139496288091927098404123927494009878026487407311532514550905610588065887564192201262217797246047775126817204252004841817373897848627934572129140376416427759463475290515617572188208678052575777267938044315707327078864619953289778563801969965606962993030934995724245330755534320823585213722709955775098825195916183180554913936495939713170170414712895143779401762645474800967087864488724317798562363551030939511174072690393442415775672966754847620174377160077034048963105599101996990799698021225333931934740976860770418313553018489656266372360538279487564796373972629132801016725502654791867269892049352940012360477058274706334109902272734842173758238588202188670319779302503574789094265019537216813305384940292892600303489054861837106624109958101014023085252832378161879677907981273985321517991577233187246970861712048811180747460900164329920269030594873471013686741523384682725095286533363647472737945237699995469745682976813807998225278941686704504783526740842460470645562118988713271001264283013674516950600756807487342895000946599181305889671129594100300331095732294975869628721003313736992194782676064775694906799772372994683093283812624948479104029363571396602151724681137456706528158293659755571566476454151659429846195602585133910973073936784213969413135835900751113719691976095018244888739110552002275332064387845310608521390442616809725069345466808449986072979687346969716793288267793528707713152123225887439994431146235802738797096361700381615477525722589269524041983074207345775339661173355552469029438882431427012566258283300843103172780582277558903106219933286556272822444112824299142694667762138452889783598954172406905140576231100421364920824971880922345273887797198010506568969032561859613914711495944087793212211584774615271018696532998051144554579546060218847772742491718687736536132211169884387381395930706903408044245795791650592698738383810418881199705256747547919608124898386952224681607205654839222092521252027843026546440570502882592471311105741491198984680864219630632185669146843668093557679847768107881021079131014019781931537731308129710379092337548828277199507516702969862621251915203908643474667290520290776710597108563764689397539519134560122879765081990594680057419646490071787549292124002973385409335516104771717997404963776470560357031760327924621461065956116731304948652418626639686905136477335175357581477590574021297321506863033116544068639733357717465263921718440009725288008532379146148578714671347184071798335871464760185156909641615008045711592889538275356796608144824992498093072983840381126452281720720731449227982400946305219005644466409537113348261997195489063823486012650097245161970410853313351901761353653242203289202963182537400672935304338288067964587937087554654550665799752658230313134472086099290299488856065957440986115523339092457890293658966296028308241995665655021038724398670981763130007616205103447981404464912768955064246335700467666742752937122990595080617096340147069196417553298249621870893511407359793551301988569672740385990061911347191227610776418723401490319987568778712324526857561144268653435619293896680284209748388182970897235889094052244123253295039654627324767425818496704256488544873620925004905640192793814838351784886387315338867573910379506043639998671517486911824548766697850356654219537938529943750648242677468343499710478587494089088904951383954069308009581477637037930993643787247286159150217810889513096495088519191943189683380729048917127498548064342606835573924231442074110153683540572145753455896975709123364732023379197523407995213148713178658629030481791670454075685932154837834354238943689340406740732218394028146735604869219202386382136288685906707771410860434197525206403086542365377145877724573273283590717465855670559339024396629822618688743013519704728913356194387939167630801655353440084106354920543929560337611580222765428327259880385856983371088676042291272713164549097467596320694139259788412988967500166020451550365369646608937746635781035466031021981137979605036343764771630932501050134339282746278010195397153085186974874885328029924924280316441274698540669487541312228170888432691104250344409267071278927106722094696920803276349561481028256726875187469579155941713817378993634209166328246697419238523791533920766254728223425573761448797388051235704726836488638666476281829444450098172085034116693056889197136671304340634972370944271561929845364241957735544189891143361731235184253123363176499813046756490940841752566932177358152753908657979702459862232982404466917670078732157352657412773502493089579288205377352985406251646517039161639613491488656592096616941912508147603228770742174986555237314853875718502530897107814396781235977983365780057529798508398919364618805738995144522926905294747972894650348611135078162831023286187767801876559014357814350228161677888562091760114866510163199684396481400367084715452714529301606375726062508038633413892536953103956971571098024907800929142803144481934669017615865160202423811680752546697206005009472166776357983086397643956471489076120650151278644241660618735249054174417425011760723046439520564739302258325087997050636281923478502227400473136596844381930278242421812259095102567857847970828532516883878433515865013205985223893989879795368269657503382490225642625624274756424900789796770803263599587170988174481542907333129510237630784104184637641070919522128662622531298991594118934143100876142349102537731084781533756852979470879255333638134052195729973359238042615654186260902604329711487103094235221814796739681827405876706438503332045679770633327496623188052099372381918511741618510394292772902779269401656519092599567571919912390972338224552528539019014304233998065800845910046012349460081927091750767080955065132548515454562111261823259262559908262656296376577575937359020087478701580668866876411873226786880734659031763542939108472059979135210145805810546434843334527737759368148006008063969318318396485839925187551444907053403681576908784826074583346630741848570016689053867341352199825972887082550252050575536433325775751560374480663397353684061606635843313125806401967538636426479864236623464055717186027716434759326960286570794648140585897897481068097781074532420233772260024572668826280159922177206493748649321234371072126030624953963666686089456372836337954141186428495010891985005809428210390123168961320416573893953602520156798494447285086370046492729356371242590222960235506413812270889140646900264210809938048413866309012672669486896950252791208158432610375118242896891917693656133904907455876725904215748647857945881574172722680005472697443449589305788099985566539710441527846455846244392696270262511279490824444373887495505574840588746527875312706289457075176879788883994192501936163805665227158301364906431395122171297388114506727432169861718506407252129111611975712510035802671320529610735285448420593178856056466100679089327270715790853900987774808744365444619051077870417365346219286110355055573399292252834917673903734827149591434381119009611955974031991215580175134229179606406625834320211451803684390257382421812917120291106124204410925714637227900211592396546379996849692588606198294595694240112888600655339893786897061688607970187319855193304433274978184150881626620273580711719704823777852021199729677361341202733572879984459168752089627286173546170188935371000485500621823222474884040714954423621469069840967389392796460017646258677061060320933699328601462275148990429683281063832104095701833982359045812411523882404035693572630387925680960798456873867530499474747018035661125918284880803185744791957896647992917889348907836424437432134464646239609815811402028428605822236352238130660479761563292605389393119284687060163841719280182313618589579294471994615638272592194860821301154976327315243955009356212608908323313115808294023176605687081462566642378344742790442007999125972307188179566245344286192194487792664361405073036643514752863996400315975547838139056441702141235807947045703259970602434863437504764045096731611172311726334194467725241620685195041639594917284868325657500675112035090881885305476196655182567262211916546339200003974269797552924550007452080223675418659177973798580341058565077591318273504948200340463057066790838646911921629608427153573491163224084964840938568868923838474880304003049117580327799202955464740283636961407929819188995614903808775009570938738586216056330009712248729358826623274262382643459114607520871036289335565590571249482144662465919872944557253691635221973232210915567508403617201625900573414779932283437372148332895891147234572518911322791346035975462488991640617633707347651391159339040708739059425616109054098734201505066624599326783584293791439421136566521298235402052881729937781048429429231038140151692302234444302636399804656293542965692112477159572728297139215393526722189921104394639708358826997343984633366324527860322027208228197727846989919481732831771756495298865321692383910591387185473554080063056631466631605306449681469484966784692442771104410907960222244294987502840744422047301067117369420609857944337677249171101925640499052103426305118684347698234079505984652596378618152005410214791440671454770083987750044343185671400571628621044880620927420951547110905193538678032087690818566045821644614198299357716076708537548897926699777159154307259969182603834691624100998726357200554770350423776037996243457450828777935232671423725211305224361198577824622109440082643290173421552217383830116321731024310737003917476089699936908053097900366754235295307738863924500933315141596141231587422057683170427034514390084920552282894622275204489045890383663030878147157538678016071299281400368488414707166614857586307889617134553332892783690042936234503766417384403836497902739692592695134460806208194046061468001432235245013925798948247103078232311015323773012494838159831691380943565382055826235685104820804596653558862829391704411020714824137201979011862114601550480564666275743315580485217447148743140501358784821750938530831709823127155861053183470795610553545688966731025103030995341542380974317157233314777125953748130467584237315442591958948873069144305487986421562891787573795869128390336179285264827284662312994156353465663883028490468863971774598277874600971611307810193777988766880417964288271892423786877254280469229088365127243052674003356155559098898988730888490342831762357149315649693874020232226632444890573775386411407785281914237440253448160657506959617715183322605796259273033986518888957157266820135995226780177109563276251760690639843782800381361205675519181383903269173137361989163465739311629403734605982783610364243893765925415584689486765585920835522461283769497947932171231177778047360988965135291723169860631548155172543065462345792483276392029159832665474433060182846591113575161866107282315434178313440119882366084469670017767689984984507571972672960221235970050711324124614889062707652686191558516972247982119726874429252660423973281297345852651298870213728519596511932598711759762978192968805192465133049204860077558234197301140210827143634132207778352217738951302561783857830795142241541594735089733529858291812370286613163182168896273543059890323098466088522979081487453967248562757190180321780255991300853525068925278894939994166326172274791256621898138764254051766448211544632646476989469946539873079104542495830944981735805146403205247186755457786335670838884635789462815542231806622639274505934376372541678606117717253975182671947622003380712441637633390739194484541526930940851641744850984261819901211520739375532141459138106929294084415811179984160386604027166997282407114080466518068695817165661081425317547296063211262365120171497915366750581556526245707264157735943106878369666036589695351454525739137182977596852038116242731422415678214428697915902195952563910434918754359584262875566530782281666082838585141314628924423464965675914716031049610050227958443097172138403693210932405591181871426311780413059263314554772750124765946464379220324026928247963727787448337913475608471908239924255627653670948216152869475889792395588372442629598893563418467026790160126937178416435200387274419850077720180262801853472923181072487469612635993004225091810685645125190083024808092158031971302380012870030477681807213735404245275122233503342974489725033033851059918123693499760935171029002928197707612043557202477545073752867796650720940315529413002743677853457165528409454050021193969482803819486408437891575252459025661551115801833804046057467462218340715496048620016456207031106093455265650589802540798086480760359452590185081842135828167682932387096584178459477524846595990241531510184899257205272427698663924779522325724501673580260094256463902087774772420101605808952150694352689722991631227359286197417413317062278681790190663543691970759030078001943320276392782241467299125282880537002834457084824907325404019599655206109549943310065276167683644079751217108498883393499213482693735218102924097559462308824593539106221309440114573416305437755127516960466250103467526119601936403558113778162381076779677657989697381918802473015761931873436709284261903238886413549322088339255934884616596672929207489434854308205709178523408936828238061771996225733788550417090184841574901007861278413815195658510692574970844337494201187221023518471323491683951255907404275921316625363114863500857197881102554503590077009053080949725119355316582001097842699134524939851451213217241500001202452356991995428164317415613084839465275368556340252631224901150697869138263255450140921463840491419324624699025916611791690241689879626366283476744158958037505782434508576206209448750938849444330863553519608419211897409711077543368186927118751670448798533103013619466416456206468155051169931870977336442699612460513953529459024718711479320530738283509912300369910260270098789857098684532428151975636336834256282668192264215087864020481843161534769163681879221685350463499705763848176158439992629641004223352115589209443241858598332911022012277314482213364547321558208528879069046582914543133035485475322801391772121116968834859503302813577608078006861553520395248961258054607873333049482966278113205163565092362349708374911933262291638062818883839991150675318405183039534708312858707007708369837195467757769485559581256733773187182581379800489435516514939525747919168268018952380937562466868491363465287183228273680679033344045506195291354424679190278578559645300923671547510105672078496538107250268637494683324385638726767053949249366907501570886021490647549588904953030007393388550842202350624770687440868960175982537735969947632947814410966161659225413629192804552551900465157342809670234485132097464223887701784581141220409994757279450550000883447033689765552821756048775925061391470605444629302820469221416033549743080465747507547565652289631446575961657725219924414471760514170494133660703495429368103506195974204671287620471400168381956820276234088315373919732280873917818134867478553359668140891747241995855572272741925115113143489508833631004143026931023487123816623362003282557962388685811707099343944580489939003597703477299732972152746680531576771455096138367555201297685042114503139624643176986146352212699532716733861556451651897309783250424075079257361990758384848420145702891579393456915596339028019800659355456986508406507413704427235836609511669660435329212545551724846610786285384142441439411721891107611603548681310094286306623688873594627807898066889816297987914864658764957544701997209854849693022508047715231657587642210173379088780896614999335367697225177985064034547493523642291909201482603427175715156448854859368580406143162275231721498736776624784300303136081469682914630342399279183347669660425013917406313017069489863993629017455020719491653169624952541188416250534666018127108162131137001094721760531142137120989586334534086866515810624704414751110551988537023758300359709646636296094745995863597737756116233104874381643181852361206869973611087903615759341979384284600444223759761442407733229668581809036249530579846434684529990012214230506973792472350852576218473100093067367230281876572707656367572035898505044244474785848313739675953016477203970985588226027438211137061753579959806221668208547460884654319668320520914736930793533607132918752574450557988044995867951480468103054286794874727032211944390920094764688379960753815486649891280505406929452833597067120899141694865047906242072839238331816192013788840203646044649770769350421408965060908492579427992818069865838961088437994927709962602089360679193650560385910506809244196783192499847341898241152913743809863631652119519287618455777179474133635685920898092265424053124216998554517015392712329187962848887720226905878232862124950305782940392489528271685996828634860109979572931352928939105147271468588815289027262401146264007202761536186992020095493567779430590283151247652218117424925150658619873984436993524615121453289842790471148690347656308377354855892589157944535764684180015710810597274758738071746802708377252620848224416549782540742259069879596946263711453720383400117410583501023616285178231567081284051357057854568856858639581829481158017196629594310068235647766465797070695345033165247301989382288334589220090848695098637632323117629907585684536319537539051704909541745760139029994167601379376994250264657136769289029624012713216396516072156332284042389154818203188885641050464528864446883863240228943376746296743002129411478060094563018885723455859050919308701607337860524960311807026027025775713179878605231795297633632106445149133494485071290648622612854949554510998397526836910613891973762914630617243241507230728944219798017779058422192456012892223966304145981191703155429866813595526302747612373804897798278103458121711106709457004650449250980409726015459743978044433322256567108924559435624786120188682101980908438513130748447370600469048340068655749688120215481406077955771466162633014957062553877476037619420649059396048444235990432257363107143569186135318310246254993890390279228953557203843547089762244574410127768482347516858967645697186782889840930599321886356890845511776658902398290430580454623933516108690241671320129326828144093692829514721505922292833578490191707286137838361416349606668791629603802392046003014019629754469958557663963946954808840723786139735034856371316917768036827783176691291723088962850178635289666463405364028251911738563388248220513292042634091560911435953044758092165558895072314668264108566840816154385796190018072404978822694618414662419874533969155035788109622163111135975113013138453836496380723931629820827749278434640298025706970418167296050220702823453217497438499706484079023580111248289213713584345236500890690740848200927884917139577570654682972085220562919891007953810261442523993551129172754074289863859197256201346128277116959584814194280378813199449773698765513419052165918973544988992119316883516883441772446243805841244908762453778562711716254609604283692630233212109948764233155139158652948209165076130221177883693504559785176150889876808212712190305280329590003600440069657750961622046265281673919685500324791694222366939360950049334714736216571266886763764372915778776574561223100295268504611144310586176961731793117024408341404193269634793152474530687219470983531183160517331313555214044513419946416401626091026080515309612152610964665792902572070836084754423836178081980590644209872853061351996626883820523116696142938221200294433160565602306275718795193601221660523608571892156323808110613265934355816857367985343143247175758142410225678921959620568466740267759702310433670435853977728228899184198169352092573047293512243513568983045064067832134526755120288135909015185908457744104873118412199705646096186707993219014442191138824179716312717880210843335574705027890392312450569539891072013512704719555116407414177766691415196401033338924535437667291528027109833127817740480227133040344996838200264137503589542653305568230948062275399777419704732877264204826151629481631652647174403128806055911626511610027456441889808882473221438084631638193916494569779510102672081130405114250527116560741669043833162023789284465376411959292392277771504269965186601269009990743568444126082134922621863517752872641458157265335822726665814382575018772988562726038635720606600527835821265963684172314069496752477238831695189977041568658429107720626600620941205536256479167764996463211102228441506472904660229462647788042253786149723479021136027550679926279208027024485999424512151222662555117620089199096128971847058459833966351096205776988657342913656701855904870001410185593611600754799380479623376318006239607914726749094381058388503381000009002906839953962651479543153399053987200883734587271318313425264348665585013319887622614051686202974759117789867645481065582152306028982014087876456938919676199924078041250856533890499843183866761068729805777887316892082763996223306399728561959369105333744738468520619512045098179259382351933167355335502632425208625112145709002044883725187595076797054267510137072113653642712252905547775262888081997033350952877865356540735360545470545783890413362434603386172452392832934219418945446568733870157788333973924414098855188079158037730666918454335415485259308249911427908297545440599115380126171030378355626828425213826250629182736639266240170380461012956527483442861348044654988062140026736001322744787811036333583319331913760558938979686877137234448814395483676617346052475388872086678594846154762388573531695048696823674283112765178180063543205909791353064116476969315972307159590180079292290203227940559483267762052315971971849164884242804538209040258782016543881708873886648330971589110253304826962446952724206568679913507154467669501294888251715537688483277856952616752442656556564601499259237840223775020955106128893645314436136448148257601046827077913516131892857934836712726739014905833050961913645677377846644193599631971146261084020794990409629468114212906340407027820026799639451783047581745176091126356547330235032301040526723899703584958913173194960181151079365508764633201647439296563916947994408975055911345705368138187292203002258109748875266963499423298064595418751779068491923687636818382882885469434559106707547014973290183616035116112031655055990914422215507429866223438063687806501375912118581089628666012751357329168487975035872834035530857085236884707799101114383176375732364780766275426904985873696943134714719301317345435398550617280427956020659830923206701242937240958215045841980355741646290603967962297968136203497962342421858823421993951789050431921549932527273404266705060340858053969424389269879177707389369386541063019884989887795540513335297655938252369385328920155388323203977058753460258691587930393760514570004209238181749563582685883601800071197559509042654287162375107990335040991733473608006665311773524666382023997737907027087120533762539197043602589229789778948807097544887603950444390606433090539755936792861121680704641381071575809098970933089353638512361455865823915852230546901502335311508971416540124099768360533753098090457617143928336014438919423480916153526581909094717914004915008769566306900564103468762542665517308605844445224810238519934573141360024462271430767760848838708862257496273423409338174789603935497286135494333480280143734556723491705312106088047269069032097938178052716011141913223045657490022888223608182144701357327003157164758942123282485974146713424369234915972341321332201780445736967379841537259201619734326017017722668016680424031934763420438919484765143633085866680099044778964404874036999407062010976348681730633397764703151759326780179543772262645198598908715688246026138984467732748591673034887298926570845965730468859739996262888867509840103953905265716239847894607133846051591470033122373334243620163244579775961105084322633990862796286099056025064429267537202232834687946477942884256053326458840324275550137402173345413641731521461264935603449453652559798824824975757056547823136979555011872669056965716106736324641768195529869808953906754475673256426004463011903450339569601067080347291850643255998744112426726901674483556732446985747961680463673251217989713381453906548812538570008974844479665072576561083684701827640078781065680072558399142604296293158214772322192074973532362188071518330651878006206356811297818108822758241262882629855671339630479227446634951540024694003982816868304664563787036298491820354174539880929861878664848490366177296350599251738318484875772297106771597768813552263457473139764116911833283924485109555882806229781181349498371432961891610390987488695064902195823588439081658941776726194858188865983065247025356450399514083362312283520988465581951546614016278940065871919637506775099805382316737212589177951950198244435630122386731223365125525124035627582818358296530563584216188253033659529567879681434997455967227430725989246682973767688804464450705854750014809086833302416466473852585516494959360295033649430444740463609660017849933008447495688191672244473010319406701102102257304720313772410605544004219460244679648886374331130058488971132526540107936864325997940547291650441347511392432856988943577729594167746160167042916871915897191693919150028921007978211964947232308365107190985382211233301104510512397953731331658492358215336886964972542006550007061740861968479647442185506053677627880863377910767346714794573797855688490896316132276581302942359656730367854110559816758284225946893451133308789030125533074075216643690366834010303423832063202222095849080068389158618732207258720688750590611147386940997671204232278406298417541284650706746764668006816985603935765240936592939551517237495013303746222856031302349001955651499282054915039676801704841777380592847362909280329182176833709274791317662068032548195388452257305086390222290882884197981033415933199324223275368654602076830370737346019598904971771569105105713706323133122156698285470580075772249404675440967969561805599751118744416409683452916007469024825764134985708335041135155066273433031616145580820249022383135774581688823663350723805012353274886163073722349783338555719845213240941760338329019090256224480314653978834169149548529082921085705909042679681943476631468900253302054087217126055746523500607095293717316648744267930670534347622816747449599562121044021891970573944318292437997602513259218900931916101321885646638236858630042075464539863014034426661350769030003497253182405300167175745846223702758724745043433571136909932466417062840625891932937674807751942532907606006405977760831623694185201963104163211626185656405899031857175514714269839607528796732104008218407146792356450299424966558416122321211605347602608420982017731337160095521563339294668294474120318144351269760877315612896771751758405907443033544421742530021137930672526103910677484509471108703780067023115112394972715695309520266492402703207823799670457149009884450878207647099435751137109529490668079986382444775413058916165251965091716934995148359960691502139786700574346090073654117038135381001360234089579752896364102429383449453594979772564190496024675150792506915823115885935189282762316840640848262149845954488878936603118570815493044248916672878809211021425314472631431409404514366117467156677521103428410430839886925392690819165232989396303691086383821036781982961884540049473738298097789583294863250436022558202927789802197209408611851428247753618716676615003939298276179927002191009680073975665591539492364159184173246831327253120224020745998167954654416228954039019108266050645845462890615323961221153863333581976913209150041453228025004999446447817712317010465432143300473261974795419800328713838702007683194480561594505307899533820534540414308509672502949206810409236531017444390517756447611724815002618634552151254906610283237046384992420362377703667408662465848602324876145398839438025332736087969900062044196197469211889394528140202465705874216861999944509125546996165841835995639962478681600558694065017277388701912175655535254257540664114766687192434354517261043301934980099778270412818673571145135134751645339767299548407997546796601589909191743370491423863064293105978468790118428702321730133762113209545499926387167868036102825026899518036355012262768160356189169094665261890671552996986614240147688568654337849192388561633701743814881388829253838155556565987820085846530803505642335550484443050873605718225697460362173615105690254003467534760354238772395115948084917103116541902014793074409098274501986033340022617449025051711157590603556688248003314882375104054523539598635020213047660829782642499978898121530188684463013592856129313673128048358217334048636041985135469450933335479101294560605048564827839849619037643820323837975227573243709139607003828196414489568265058121754824551666336380912375163003223257925377784145536678549731161867514235363613657024093465178102442826059019941847261193849737517817780140445270742610580563855723667354830394501991018044849943616698817166821750470167273301051643919410960920031347511156802114761486810793098953227503296761943339704931404902409251731543301994790796154763804391310807294994372716234520461140892237605321113700519677246918057166312805420093387968573321445441237081249202566719172397985725794187555291569176994285380709163143630141638825066849841431157098456898120543843722170014184472490301131716064705813628780493014176734926774278916987430404722743986681182972070781592969490225168669385066412557115214364573303727039272970101427888583518582485117097456599198732458039816656926139196178389896378331965733786730025901483921637682972132073051050879521108286476648940340200973079875118133570764466570234145845890597590198642208930519166967374086699617330045559358008234649434782813674054749119849663192863258433737808847373220374223173159208505729844951192742983661495568285229821823624383175532396191616610551133074515405075224335818302389127216392510116105834391838419538839408618243763736097145629265478203046615472163743207904217088008740818785025861803292684011607665381545452583301479757250899896030828142568735363647876980035342676614783006310934439532895074577886138157748540731401659493138071390781265230450658981565217844330576275917365792381786549838225391433707354482332125947897520073830467658840252820874414229894869691926489289627421784242201229207840309344529694514666367551278511845913300828597550644174565631479977497491348216600018415975935789854806536013459432629210594204985398268147288371075218006286548888511770383994360831783396834148155542939863543948081498695330701502947743389602301000726765170259697858827013515175290863034697651570993826365483480513632444428140272649307259753002882875993981128561635531039482002555766973656808343718224163206691135100893942074389679213946776040684016776300835975465721835741568734244521283034917530392155578004560760176810040973514618414517208122679411874027091287633771390556032439709729630529703413543009570724941739593811659479779986202673564305915577282318154090887166724717412259695855721832844065170452193083945230283927023303196402032396895412430438585845972874296861769554147646555240614209287661279349266574193333703290726881733860553921779029903151161759233425973793371416551790557394622155694982515165874144136402032061564219108770361655427281821970375349873533469250746680502703908013053095722390135615427682964267496574391763628922371527323783333963947901867833002041959345550693536828931472043692246649724128094106361972393037185072405733610918623254497264814518901810433297450325909587476341453684816478404321778669520559629469096269095973094889513689918546439984443285580745498660516706552655801396401030866198451693829755939504167880233786982530476856233825227606685448824965019619619701347526639082804011984626240074966985241152629497968991218866812982357597569990628912245362299474761734371279839977907408566206270639963162468888929298544556958602066358831224877930778815660216424829491788320622283872816966815716014869000586271916420865365136531970783399147466736626127116716411301286289133116258948782423077464862981570843974068988534177203986600851205082022361708632847821437719701550164775966362490615701732393311321975160838155496680169700221003500229246383278337221267489033217622199253916748384343803320193940492168313735673347988967721846743209781907899693147215629960621544800182541180769774522659977305426206640740259704171170633194912434466198016732328123404193414629791632988994285981921874838475870138487930332868280673377280085867167989718380947582580769364226146567294023800084323666290632612055622300634912270449215707139351686350832603647549632405249362499968366763447019797093926742473214276961972456699941685561276498995808777944060618892414323311575161166415464851595487806294387285967829820150907687664854515229014428902184650011041767474102229867494485335618746086755536877356064949950030970488532780734530484894469925831431786242889010835382081435985860537266683576473999087064911776110173303147557769241942150438767337877432341821165569562760811780495125137501435757850368184596386013698988483593288912740876654152991172273553098158136258188119388298454904002796278907174190865241474945298273844361070020947665023892966108634230732088859417334645392022895727959883576055568783007728361030499684553722826676037124864239335244965644464537841482002421749226371163604781292292742914781679739617369887019041836469530315591544507066736645341751249996257125891542320162148886629139714832428895666344972813296655274713837849305061482466698730316198149335917691035199934043120488405805878035870614263324580746002527381009612884382036996323175878371145937365123984835838305666489452255909214737072023799821233068938392148918312394957564069304850877595223882711098462437318163895736913935610981278215265139260750774594601454510834799218447748511622922528972460703687521792450569380521886450342119198355451855799915555468956717452419059485499712902989357569356239045582265866652058151097723633166162457446560717921194028857110112985997229182382730518128404423085528489413357261065313262290903502040469796762089416750426794885664986135641520994916586533399046049537163752013515253949768142690997081330921153017707109270300774064843759430634754682712983332476268871141523628182197298930175992010873694867472247657109569520099119229421055176829762073587115258611475674133079985525778367883800151604283130658156253781896694412371641483014348964349699191630355364930206948121638274859924558238914498454336973843746308091029716125705964545249333325346158803332163345776082392108330440506741750101851680793817499175371753098593330182014162981093403140745170368089443501286388271001698854962832061401145970161007685207258285750749558061729558986125489739747719363194174401991722671540109098018412465093156088119214617915494812226728889756916117477107468684651043178102350628812923661134425130231650928757805864519697785533243270870307852742104944568689003224477004050260591347115464822517770174168869667547582940099838019133537767127713764615027348004964996724522183847148064848242133176835397477479055845879958066536549192501647511958766446378813975568496652377964993392855278557514951275971619729695814692488220921252528968185570970873953306694555237424245394130379765649688300048906511190827014485568724866306576288349009429736325520858844951675433668808218488931996764894166905484040507775648434307265571487779378861739438295031633634503336867715469867684110393334557400273538644684596743062908465549740644627337182254653840838698686973263804878446138689069764047699726920548657642311848980344284391152393378212202506803612848636790632628891662678458555011400416254332009469575478462878704032240419092671670676732316787180538386495919395028203459649558794872118774121842576391918741129942816334716904531506248148083599637073938492694831925513398469528317578190924617868352879235938204272573787466077997108522029802391992903201953145905917283386583645977515794619902212080852230972843334600611337947731802991191922090334920475692414001761457772950781316431784205242712154305998631806662315938129651456212314144991546810805496653096459879273048642931676755747627711807284239852898171773592084285185475071483187037490458423506925002439020213901134299312298233578933450616656968206503350788752545485070472555114247504923835042362255275126671997718569850545499546504523133173695745518238672909839178702271816231165301971568761071161536647754431024507536029770647490668303638153176725034657721667037974513273398553730255469775034486525658615578730550608575171344973796971670081581896385229165003364721680712567862881453344429752236315741469701553621098615039488856724131264539748073660373835332324045226345707897140440282972623694170197770915976751647479905577455050090129999901100741595318455631403833177242208303458901895784823564301528395947126331672265554167746877541562031028757376862447889673708597672176682170595569469876028952259739522447846368884973087309847070691730137782147375607252801840281192340703643943197629473000417343220851611461863014614964826982498655693285292944259613422751161344969912821843866495558750026855756839241016298661796528195932937908792193006768259432953107911164690298462871127791280377727062401301190786405414926092030692805549602624684379710933982325829238379499293177018984837533346935614914131086667607197816157375663263180105205440667890593653014266685253834852655187847055183159730961868701667355032120612462304597416656665331696483436398927770871233174596995984475911286363857587499554449560373011979353591554811870349907984395777127403516900814580270945741294660283364944533026155767536167937302620285984820321036689603859716092601504486394095833794304139257906804345805878985941571078836797187154725700604483991443409615950125163386741801086637749188597701076723849498939188950917619755754053169169978863823815061166625717825082654628042906841288990282715902894370706732824156456086459517413152448521975616216933053075764813709852008384123819076991850649729018846506750741218549558526309056332404307669704023487332355375539866017765743716570944431435409487846567714430528272861206055979515259236622473338013675181679144620106527144939927818815653135636643989928581909200760622227058649526835945255839490318951984251229603061227745788116136632591475438709484544288293026361116808796224420868048244465920679709642730729253613153909685166602203125746413957172483697789535663462740609881843012180674144414354762542661585227077190797202975461342016415896084840279754229193724669833394900517237991124991162646338373060472622330595712280488017315385657708468317085720456536601636634852641133509844373569673489484093624813540895664372154298073449955216052256031150915422710234641320266070580311236242941085884487184587272771647973471827090723651282889377436084717783579153350492704194841530306439839156163517870209945728309021856088012619245097842932692581252030429091435702138437404180466857446730274128770046325430584552509240513633445126495411600226495607125043400170509080910127505622082347583037268625712828208274072634801654799029404114961973352428824448125568444309789367172965546205396723341514328293476680432922223006667891296762921057666144842295790775304601743273470348866082109831244879070262925165929466805772899028543676734856565690020586957926105384079572848835470042288431002288349823522434888059927739008130398565024287430015609728398738031926063297775813216079615296777278595211267959483678948175383235914879209622831511668524243195484189030825132500379131196990920481779724851424532818694116829821873979466019811261544481544327746866419892275104647378614226016293426355236748893367221239758188204714611539682755723533420469775464351340586389315720536534998148379184391815450673665389038987481015624467873214128124324418610140190080631091853442907851056366540855844087603744298656820098742183343609059770142631062620357604396278171042995294285600183250108290654890019169438668270180987001959603204669388261722305705912739479161771732809345033973060204363204814384645129979935385699986216551865216372378877337697509865805714836707466972048288428728776034294926466757304831273680629501811181714915608257280912874922401107036495446620959904956135427705429311426283144192974209907228858947583051635285262510703685752156108578714970264343594700528430190971510806976397961083568406738810659664061698630278823086789021819383627924095481006911425763778381924496195385089417305896581690205883038520364891837919209377197266654565397824671580084171785451416681191524939813675857936706137745508702836664851924032364668876022494132711694771908809148897632880369484980675811930360592010065638107112328601070636198144262744860743429412509587167754317530342840448296350482717598767520803590510591749845445521470366354134227914692768763990377159833201849749915121406392919543500843860819909760770985057226299905360534110041428479465293458073206729052692599560041661977430669631958817973460582074027490629932329556723679221913576720898218693102096174362301719225057559142244821188170857189262362783872069736144045267545046281473673883633438793930796543156938299901401872690618086465610214272864122684654408300765227348533858433271629124381445455066180668209885014938289945297888281824575750181821014394431554371487019190598337085572751985453752607615329532760289294479250117499635076499620502228990827654114772065684750018131963490447845903581295989217084321010314528140883080833400251289181914767319428576055359895202172111562373119469788531109347723240157387411059059320519735651563012996510480138742717803633852323618446179626802230806081613117867519149445536232664588428165691456665277520189984583707239689289949299280195449903567039247229982325214951717462752938188892628462566925472250113807211400108659876187794468490702132070661404398002380265000540463160877437242878845014252369714202688471830660040688660950597736982325217590773901310385032614181644396616107354726208065078906318465113069062116862572393796790643381511005607942194384921214897590868949787733553146849455156898115637824730302166409723027365480089946928367613131706212110649860859137257936884921880595195255869139974724619931587336169304935550486494227692086514869137121330929923741254441304244689904404676379544379385237178064803205665420083431218221771534348470413100784821044105371435312559438473104911716681437347999453573453973926759811241340541752932150107175724752646624925174257444434615985937498341950847392288879646184466263661519431235899729283838291606466846655100125336873128486705736548096814964320462844616025064911480158959843799378009284324795466123010763967944783675075209596983695162627364053819049728417340288232747167698331493563520185252520610119931887592834284415211492776297840898929843675840806345059902993320685253682887004907590188431420883095684367275738976186700458665763253054543564660767134579410949560440388194787000027108622290807617214384820003931049693105065053633577195641639564338958219852571617401547645032764995035506377934648433274408934116149104039084264418484721131963613968522758499526401067709386651785786451407828174957913556152251091088100179982573933809375270298004439841672577205363466191936123379030378991533308874446107415943826605421220876696653818413401887643680595855247814535153744869007708118533014487066895851738324782399489420332934817866156735795790545795080875121752197502933141242117170955144012360521611873098748103181479145770761655183694699549151165419032800302267768354324433791234660350565019840231732836921232372374724432409607298004417137827546969392010602566978743892416645778861661104628670275521276279100104521236897403403817645146828244430377724019497856948328866740068617580952077339968472376803789874264068852042183515918126109786568829426836992709461166435290786715784770169543145361495622650602904707656467028923879830193307574520619529894346193493497695999344728855208983103071376128713192622944685139298074953254847429500781046308172358668566807720167039570429083393661744391285664409052460497940896782561551594364723684825924661080562682264253475942655391197934732618015201922703544634420644672802794135229086161093398185596252297918212167814851547502526906557965678475261047960056127244806378437555682259187673298976209340001120342330290803222235333517617192775683738871839843256772462081073827400278428743112220506068641669247714315225048984820745530532025634148212131382259213370237914163764394511923260596238521421494468961171373828112999932443779484929212150003953094084797495348763369985774811893938719381959245633618930231705459626763331041241517711742400066207916921238653502238050342334020476315505767481698439817089075704128471484999958346705912353194343135132645262530868378756429719933209186642953929348046026907096429604989272969597719586812774932005053341573776176505506358208040050983782603000554900465484690849712474399368241629155435197658341726581108551803786695999792583425724610915664850491596374526986499739217641595866910493957002112014074633387502173782896246865790722981637504559226437036026244957870924305387799947555943851184855605516949485440996049109917263314609540058695749274682088014883333432742226186053317147838773281224916840761877455236783985126305501018904369780740765409328410047300123257745678998523203415591335940167201881848022786701031091443562653127415058204239783520684270375576308882599647720385882078154166275776533944541858847845628218014236412182326808934355997199232950908862560768290897876898200558798909107337326318091745473426980434014793266963844135770599969972289985023760999387144790074740118451003422958250917472330468851389469472229530044680044336644980679468301936520250451290704809558543404374482043249536747788786459617519729521404245852088355068216390450207054562371637903923974020150418800955613579573055391835664694045194115079609488016825878086603373772638917772459977525695692407364616750816133897957055695365507275750535192816280126550043509006817297103220105036353117356795628532756235850991202806389226653031276573203790677986608812735468912717689998985570797405395859764325658471725132431549311552741690359195124273856820515465117814012220189705179231413588167060000185300279084935652334387936196915700072145264559269657704440101066036389316814370878059367484594687322452269208373098537198266291439396933535029406937258078391539638195532047055959988413324877457455854527970111435544979343539113516909904879289082742674977850302888463924098651196002222495673399642626686219815174830732529977545301718486743704627167115882471551216076709344698639376400538542134116985188573972535350970918689270786263108361619739147271510744042849867000324577434887611895553900114330541417657671352325901809012876290337991329277958070012013296197399613039101249859118106576197556184234444413852079749619386937760210108808115347010460923196604229357008243981287362947499598553513631850680857839346764967592767132645975693858125618342747129333554055815490982924548905304283751711996155330618133108924488606783765003197395494431637029368287161240800532600299859607565477798542558281844925513734222526733400315026576635962158509401509176388523001453446653994090439596316709844077848319069610154313252818217288372857078707893826160606340641109176841166992029854444843494712729861717105984558420159593669016176284635232447891330282685497286678483669378614939897146253492423797952360952552815078390160100082024240477533608032133618773833861329338923281130027772876239141286987712907267827255987114378882878706640721628123578230000658346053128902164608517085218624151827463692508088770148012897377061141585213504704636819237106968434451348261952036238253094586533387745234145210922873611192754167087010917353454350824074061364616701641078408150999746383483094051200980506992012648576968280395804932401036361350331013530384762401954856632390888549414213198881190817985704168952448123830680774468285514411928609415494116143622635203713757060863183876873266514328870199077377177678704680119850337182001777563027621351687801717752160307245238076067586439435516096838773957703436755331163563350868380776289385649048472270748291793555343645131229264243361527396856536705750955363450323317757835762479086696718136521356719781914501877035883940661480098619831507805901905332012670869730071455397128877933016756070663212084679654968509822933581945677684519401391864467380445145717679315275671572876994797574143014184031756422520213740412912994165180611167493233702560255886043940119142087776481633381124660053709912219655624695160642243259547392830553867183966387804767552511102416522886297173647798241450372240544168055559244117159953390800289357554815053592661246610184835887504170758773330706523217508274547609093849964652712459241362879950791414426276528382647968489375027113201654296476767010498360996402854348541349748839815846681212314756426937973224303325589445594776825011242238447047419480228594931472651772519718004955535749937016912768460288805651693556317527491715578555923066925454193448695967618255410855940503058075199407483189487735867236265495816457412367783165299243244654100143967763277154223479255126054258264521904589931067312170273160456831310123787272840801471911005489444419348189242374012532561013445964190034542124514995431676843527019828892158771386456409205043919218064523608988831856940560884550475473472023256047139311894049622762158437821546543884885623235311922871572499285530823900810402214702100698822460653164701310158330535360286650795948477825244074467731121063319778012129155996683936599246370809637653542225678438750681405281089226686561059895334005729825064018929929532881672755207719705592960932078339871094016470674239891723695476076044758591548976228085269281854273678190491123223462230055004374889720008215293000863621646928775434452667293587063936874509660428410552802347757327251048728542526285990508670679916030518973532173172307973991032679097951597924461078320884222164447208404908187265749199779997643756619657395060371030934098132011077003182217853708298695584930047014698077305812703636961272280400769521452176575906480902075953923236822820400375700595193331883325206778402430653760782210766128265868398274997333742845365781775525539151637195776062552213651892821791288808767917548839097417398433729571801080018020065637491932076012619863230956314478397726745339954116066263104015069289993397356308665992783997291252296127495701821842256080178683843567394492077476610414629215154334403564263835024378104844274430929172951370974394737179907013888599578797457227720409124451218074313543028033985773058811944605095916758785738161207783888889971361804362100411996723693781903800263000212655535312513230422297702867600898196685195887752688859094263104438807346907254767176453208149024900016998060762031728756271430167113140291547445771906989244112083918171189349460368032984021587385332515740203954348093647899339735169081005801401915679527892246361758025229578331118720089312725626739375891641590360893570748152952514017436803708603435145884771902101384123996385748958234485676584147657543586138968280294932740390351414799161090213123665907696767161399624275749634337797916862279279063963427057360343310917373954546379158069336953432751493040936485521351279287407306020382961800833486724183130828989170439332603508191878595647383820071297020167426421971088414729558963002282764024031424957033813706297855792563339046512934989736802339618073648023661706030917415159416750228055997493021552636874871468169254808255926891789131742705807780913216027880858987952794279629765746584077278552722396024949296889221606879561381466405233028934481948049284016960149666504684248890637491023790221887697144007119345188741964166004763188576314537599184285714323562903445280267805960656488993180247968395515375066003799039691039469415682325538128708918064575636006227197620534633519934864574246763174398865745729686660976138779981000390423277872450263143443417853575030742279052782957871880658157151795688738821167184678447542996531999520884474923779435013244733020971675205231713698551561009081249137322475194946471760118711246777779145685415253952634442268688815219689404584258818946077407042889688062430078104246782322060855797827761068140596231389774250690493679237573646349704078457128704026910819783289343497163382585300185641498651496906765570592838044470660260281670578938639074245895617780767922928956677663654005253376659786307617110205473693566594862884236102456453947102984434797425716947983702063826432258116466095401653339144037753930222961798485122449823303517394348811010523063803396203060169947890678248963080707306834647247774658706409250403071943409676561021772409865262599283477574541285044441303061007272530925196812385282614117309501490180109331584599126247660334602346397409581026724160201228225455484287917503711035588001459287495872321369660210550490141833267563576879978786016779081224780635329237221109324925117302848360677057325685461197766447465989868437801189931316324494829920303279828422565958642623418168215690044105631706630528210258218701411196987249520438856237947566189123113636611343864707907866243228438793838259722584748467595127602888227881361640842428183395470691473086554583153605246422826638437478619574499921051140250705081618746522489431098040135307030606741472065805530696611356125176649876497678530599069956655577648227934654190883873235260968742562682201378156653344952548290692262283051341138496110868790895941534235345368633458205942953281143918352805516687798984242032752269071830450941147792137464624551310218157657469027584309350552030410156364018368681108030873299449032676172141406400111147667703809901342897389131854661978529718038995588973983489638350437065882921313780448812052412301152315449217289665481391676361185449543335511291141940631387047264643580257065241095921881365493844884874992262809329736165257618890385902081688923988266278964212698008749508561481542710008335862020822975610118726922304462727010017276169368650611082136113607558252648601241490077448785308259637732261639330053930045332290811812918770533433214760073385328827881881928648841743099680766456966885579767837425829945647180488337058944636093131026612447800177372119198097942022464216950573194317848201811474870831585294183272275052429400582726705685626099340357601940222572169975039974709926677955201092111229928463318539130834846888473624847568690771267555960116771618112166892479968617782332563317144557881241269523902112427474300865842976842489060040688112368145846519495036780508343375258890967883391037195716105643147542558038003749287262126528725810444225853109672378143227828744185394079337556050668372349040025941505306254442556848916923988530461286608783488361710508077733298083264528834662446835521939276040795062927111082687395445860294966486902103438124295915756839075014882197664622044501132854567609348950434160657542215223588294980810803911099752194625986797244302722606293798278051205064116961433264438072392785351735786053912550405243453947623604980154577084344981404501775640015423143041282730357260411368411450541418303557145744936984084594886717930474489752893398881403083142704437759909242580303707378183468643686060503115866090341675172070000376276054759408813976428981381795215601840678519960828644079280535471949573060287781689762859618367174043818149226194402032611086392110315864073558214121903503560507351153238392726613325183246511933678478065125428337265848488935137817159886726576962086394276342244839802755440686069192756119485908965485615975283681006388444356271616425484319768682922168848528814792486745228079069879346801728813106320017180847546576014380847560124767175109373097803137221559196201740044567174993687182704242664319206499130683701822622646160406539002851926627160246067169291928425490272869179324696942383533496683229386810600968262212700118161838530705173697078697158128231908939435020544275248182799204668413902707069508579817838046148078298912241607343710650843640347775786754946861720910598714883191572358007419128932674141554264056825578452073167970414857946734471277810778266060777619197289524001078349609646038583660827872340387956294351224331794110737691307809804878341806889891163490332029701644649872184005240502599989108078035415576045518314461130576491053920230747510344652722836357267576039840717847312273406904604831320959764408534973077499238135305844679856547112923007160095414618704961529737562311449157940771237205706773003176979634139266180872894723224287027907568279935034461751714955877349748258543479433458661599144694572960810867837821065278193201990440680869367735250668175103054556198661530316316271004682834841945927103135119556989570823112478781584530853776559606138525969787108113558035325402288611116430601593881255943018079954106367908127044520463970770169467254450977333379226560548192596557519943151654505192334854268741914921516854103883004840016550283112108213828517340279256603257623107874722318958616461326968016753436581363490825370200036994634911333671575239924674769870043607769288781854524268607584735094492959076736570729920623956129225974327979241020032368862303334854536103412808032204797715387763718575633706591546229203711939392856324152937886129853602711458952155469615591541030477097214090444450180916338356442769301520172144636091668343417630300073843442414577897891090150239448551362379059520178582221187715560629837425917466808063072700764348375796596549910621664285981173987740869832617153667940671580881023364985216478099663960484262659271494849096644085280026506099940940295227159578745895328936427051283626585174843083289570313348029205760761705056256825789636387529131370308312546017738507184630393147781245355529119777543487442566223350321764702431145720672480620422507027292672005361066838667905453384451051108835907416557030595276429258366587758186467840149883179822754113320868075157180798170768707799348841570446885078662127539573588574882264295735154378543982408462362621383743027884821809432321519943180921584000417735863296532719670784420431134373426276387335295740909391394833379929091656203664814910424832018417856594802117501157694488658623628169559782367948640402947581682496149807437549252968668811471616953110369130486437812393752560977113711948678500796040503835859812814413432900501432940068772051241867347953076591203976327264669862476211243948665624700562388527218536315292471453609357837380258255297102356692975065478756105457915180231335508552131692995251641154509968726185813440217642476902529929951364242604621579956997637066816184066334923787999541561427584599715017905552816345450799906433253213728629777981397770966475729695227477333784416016635922147420735037816522235572024372119773055203858624630801852234823810723283667375369238361862255497250618576832886673798416161629440386873994692322147730533018641284448313899219896276450670667384758406494970495326675587342699888271917588301768283646175614915405973975078421763322755188960342014475374586686155507054698035214646320673127096818367105784878163915328559776799865681185132529362738835739378592246314646936822391031075940309174428614667190247246961765671799096967808881302498021617784358604517357152212494933739929392997119902298544207230909898425010627195278560351480987812452123280624694895483840411358868683039426364881373188601390166995891877871137523530013631093768285463596308023412311674423734126974744688273533802681363383084716399260995992663336147118785280712416911185687514290899493190431315886425099578772744929332801227212854343017290387850843353907036089069135098359200626045512277503559463180310074902553584782376711664595237711879848129857125231301669844766177628229615441059603864497937149148013857212217597410720144459309294406221101439164551975507713075533002399805981829237855389610177827781415326131529632805061680993981073878660072939939896258750562267224076125940116033976158345200854708495184608583424879496447310965904762225324358550181273112442092756331108029706879031733933968162920633069838781579447392137366618811985534792942329428832593095508968859963690676554143485582752922386756249497051544958969022453769289792238820371927292882057205768396123117931379803970858592828457326486300350682617897919393106467434455671330206607149598446573290214483695262534434513646280335953991668463885731048838453119522231176334194120056827127138647390407348066958842739775032741056457658064805662819852574256024207853059322616911683683904822667369203351290372017666118827591055808393640839463672668805455239244768276466281117973859138689908646527473517907509769808292205693148386540005560922714105387961171049350728364649677096528469079844652806302569744570140085021446342172184177265963653722485092697816042422766674630757918423504559623434712173077288310764330367787687625670901261598185578903155216211118708520583764721084067122968247060191761713339020067138725667611793945129971215300118937901861849858956589295455204370562456650602763941286470195120960354480124733982096140772675753524341451206146984216250902922457478689494380605199691289312381074162991113219293123620298050410913970189611993561411192987207486321574727279684521903964321209305688795166366862312963581582917120734591183905044109860516753949146350891304586023266756309821041312564890558916004715333245440684097203986508803148414931850633257621767694775431685635247808593634634179645682309293005002390292573603932920227213669422103309764797866386863071940282624831460719753992708785472518153423534801267677449269337357121843768345635325595488308024927259589420504754056442064488222820631798492745232349590667925272966943680144991909754315596742159190091531783021513566410662014050305815986765516329047340444581157793849705365081439469920073533488565437462689963821280560155582061815937590464318363927499596016684664447644065754888717341974964699312611147611113609207823730308337894697007673308240183309614663652027664939460973870791191103039602031542645226136899361446047000113439916748380154676098306895032729990481594290355050761604829888979644738692441334283863524275722092121297309793761410076470054961977318975470790248544610776402322904686961096345839596247012527194816126524803580270778879718925914315304111351499706350212512570177678973386232021045574328724785565407882661530380444936316827540511760933982098151031268660432662439414033007964553694749171846483772534521261941757980293791053052148708246613607283586816847338965484731500888648595362868080956960379739494864230005605199428958091063587252258212607064018922114130193503245059837661259476368454917005002302390984520075944921290437606312683522843041220990902296923550355112390195871437388641196495341925427009978268331177620239739148567491911151397000173628800322731889239417981719358400497412831731711059642920568985828830391026950245798178362971560326485687641532609898618844870401417707775762849251128779646604662519511120894602947853601542253125427185309606021010733911505154836333650253136594507333925415884806094705971835899678458249971270677659020233993139362823439438362498330497263799568358708331385173801800335073562822381417921822837223595774080516892116473725781928882816924016380213906137139358919273520930559760473935997315763025905380358519190837455650583306779237669022488414738050853204035221749298713274240085898549274528438012617238407354150241073593012285680568151727743633367182498894140442442214416560607604632254875120263213513183533963975918807630096430012254168551436724529798572166986670298247334962291799008048822320055206026978825758756116195085510075691159343367515510298457279442527314461496703347283342266553634803546666392545649965888704001019260598941448888180394113699149727004765356882949645808779011956407549316024615131129086098337960752595832583728888692412023260831948627228155586838564105412616623828162761342521304409822368546750313661312344661768248782001690677464133938990030274164179230177478713276676488135791720918644295934457817501363760603019942222279584965469373950986072055338229691114549947140425111084978384840466538385637909311635425535694515484388471889491866411756052056693268341725490682926755843266322344383371291116819017923437093219481827876934932997622031909379557946852247067148673903867187656044127532456253136722283779735984714245863498496751648684559334576553225413388696434090933751975237102830935374566409906173877361691255281075378772215003022145854531770762323374202453262810100024799138574921093574705288348942426436280266121962514813874587930902703539492590469028228815333314741353948338607528335815691504680328282213641060906526195069735361399596098190716088238112569624381300466530996223545596115410396930437097093481728127808305311532417695728338918046276586334087765404990055207459002939770353554452259057871566195518932786172549417158433342028009340722407987322056361969347263347423195528150679459460081457152668380982770516247758176875997963686644948697460929792047876535545572642790541533848100193332887992523445678782266385778682316823619530497456401388588135502999258703550622723594740225622134660857293554228537179234427110552066270025401534229211050264838751170792441981580596841295665309330698315458497791522777523242204893587847005226504291379542881658104578273854426487675029288552667388948655597788963025656692504344338914335652040204702460679857021020661538218831711273284452097372410595273349622358933392987354846367609971519928039359757147804962132131564436468161202176298288493945564565882788300959316873227425823153420851500446697895431909604473541121656751061260303493246101439296204416550143824624483149983646860802541259310007278275254515926470020304719434724329527856418745697271892953134505617517688390355573537807959716174537059693227837924271273858139516997052384377796500614461562376333748499695359657883364792982765811745831547381070040020941108291123122433973531207436169087833615582016769866041774555137110273636984035473965759237760519814850197235878692324132304865263812322920148360827599761077730481595391221563561840865648502938575233382460285435238520560091766070706876661905597346772179214381755302591797521634787782029057852972922723913081554590963167237180743912747647116738752210566537083146355978799635331999162029331632712006820853076329967608084675871888279385249916215848568526515067146553811906151223982184376122483026312991299125704748090774616118371046747322418258332214532927767495397816312367380544978737869406503660648392869662070499168213524845293975378549525533180469320031564147972243985277116630950367733866343320331943314939112102904242332282262109361802373125042296151254161306437528232341274560675478837957008310139899456838243438630133504515414330039169446832522977861754501501789544255466019739832707690259319057900282646669294834841335548820601155055223011441933669112748131703299834838592466208217665790842102492666353272266025441690714878107289055472759288586013661077953470866678217678291409148467471700788778116343707295049410861989395294508913483695946563259927912261020017894253799367392884837178582953844034780931923411677703404985375976810460227903705233221830247801270980560796958502729762585302028012176302386354396254484210785737563216610394677777270155314946484082121018813661851026764824776148718164034282661773037214594949861779232322631195728715230235497420873382067681286015236778910146326743674446520064028709422800458751032071249952712689332391120150182295772772163335629338556233982009865941299248107551075815124759113443728730334546987589081170371039636056700701808654761720167361049452496330014179586537986571649312057262867521206459475633353969507822026253654450753608751627243537483733035296234897209287119788007927840398145289246965841709318538787569574722802553594360105449143764125072062932929807151747130777784155573196298382525299872625931895790522682141023799683200335457572666259212518445223622643926611185307625588892383033137484895790771548962129774876561557616029136322752565887063712299016557386399388057006026541115701773985586754218670516155167209734717042429219140951012515336929053590926675722110241996605062352221561261961403495989653089735993638542958993947954589064306054042204040832993736139039715760950162987436865029293669167002011325723953388767058285223035665037021544989627517914520783458534312193357485027876399945742428006368962717346627829763387192116660215518010952668491776603671338807081936119974607360425166468731783179188687401324754572869374750865875073748893409329801894495532611682279672326651629758256956397270900240584928021090089182649593800885196652776173783821439328346001729547101117599697923234080167296116330070107297012445993871026332856145567610578501927527759496206779779049886645683964597471809122697531796084163905400878615324575358332604410757958594893890816545812305498899038906340671686331478882145712876109992057863460028084619059628550429822562371575613315445723431522219186518394553000090917514145350926303636743352701125158082372407628301548538929321345310642508586585891966679823745143441465024580967727965593113834036281277479460188554208494736705890968627399850047070065184520220159183029432766173184540967511597785033727950574272461890699096731384744344797937103129183324692361955021330547920904999458141931199294076410488559926607919199030673588535960636703754428067746576396824503124331573547997016547534625980819025611400784827887706128240819410138182474711981702424667375355217146952609177070752660342408641675175110412403967813452547160414881405174996059394124228750730640238531545197253015192198513083486821865784049575885420588277316655201648747480034072940425154570195150997715220622349818549164912219733487633131977852940036630571113785621442160105378356978433831421991819900646891264191302380132516372913335901828399204947799428335699619433101026420293660981424129964744558365752114620530664570688019816272260473875761006950468781475962055024255876045002989348099568648527677390519338375026608342020907879368260794429259080333851558512173028123631604536918154951218492184027262822818647184555868496146808724315117865787609696176285867436827942672626307508752298463274001144324328515496872027687468202160605920995722818516399336253478213666330188408764068758787996793371550699371531922657968112886193330509556681531018593597979363774255459163525468983083511210008256199472612007691088152559520678840138200873967145660493203053419520002152752574159126836315511468834200198918400833553035164713844185402169884657637696103535739266908991817841582903088144399544194681293074258512862624287724080713026918942086061956280745051484882197988262254518862377106298885589329004514846919694033443841205097172048681428297247553675436590026669170356234110260612675066928321329198832980009536350864524250049093967085163820986625656720960166101236727832527708361677411543099124464102380217694269586442687492794554019930340189122784365551421796931933516330755090913450277462700938772654850094223747799828100843923736494381670330966913477255388638465256805208011112466240462967636785104322031226814677690130266861749985988944826551175167746265635966997025399474843341222387204444255461076464481197861502000360217304681959814089815413316296669051347361109480274424469157906777902083380400168906716141952316917145052779803058821515319644890607230633897459035068896399972159459176840094996864441452245050524654094572938033986833809427705997716975031471639264325167238857335973373299204045913655825160707652277969391877218505660383884028105216155918384887912560599302493902505160426127483724660567938068250156504628407108433166050903234914517601927642054868021253472161624705867852722023015160799841615374810139955454061594805565599168761254367518796375923186849382488122309529406594876545611061583112335304636851909507124677988674601476601878049234919213729905290093125336885343215386918406420939475900174733226638198370567210961541241944146301719019948305548151009193746489486636934219293588566969376795139055662033585695672683358784138949719389099974867457840499729581957614422863414509063490566678177578899473097397390465830557726004023508644981694042663264228750167916222156390557362402805892511428331887797843010988430911410946521321993861545323104760834438466147106720680924095203532338423679082472559805544293685220657769958820493313312483440603184231704694467810887184200486918896315036419234384427777081129158727086394918816188424487263620939922130948169775319252418233186082045520989784075677000068694769964379206580876580494902851012631128294591606396593369489772856234727920158692490398722025958221056641382771385098423132531078072132835615797468430260729149678853196552662218598125332721424752727319688069262304298908723667110897142919885465390427955924448743699758453085508063521204924215299961282922210087718474679089597455560136857680530831519012756119193990089950784494678308144502048117963480957112485428248829340576520211563953277315583033969461491408387206388188737349777720285445751121336452605743781930451664125702884686461743159600322430851335627560332425577532936153444887518722835782554218053655288601126167903555270551418648722781096569126621749482060093604544426129304141654400350844466372006731644820395885583015269889137079966062137329247422663341388157229988405778623134663310426636723370171939396707446931834767424524410369952981692524741423200698036379491657123873204241318685902898713665147348144629904764676867774185318169543454150823541187131078902651779028555561227898348994294562228067286213903901198609711811735793486985689459020439176903967844453237483657986685844287867317934739902230036531932822171159626564772155734864553572639212126888616780392624392377343779451057078626710889837469377856285825609404758498906852748040486036515015367195363601041417339715653754128840772813955908367623757931801704141361457502033090979597495618280887827897668267833398438397481992106785648321669774955394478783494500406279856325752956030133534632354501704377476468315809443644968008696490124416465063064601925971383188020495902694925664814913405115652916123478124197781958708877804207670514435218522759149958070012926555931125115611668547031432818911565986429748918963815151928884928885142940087172965152435994427915504386115484983346962789111907912229273625593591779886541781612480043149192864098830914170167018472611765119751941240773521377534726313112296462700834311449506205581466692313859809510294609949729513633710108471371927173445031765474550034376456006168769095033057887668671415055989401030865351167526076868390771753651622379892475697991836319706968845621757542863268878341905295827575585800769672140798213525432067959513971528025176008732001259631729112844511473669935569181069121371788704684090263522465372076332919173745692072604386305281680767768352951959199847281491486643924977696010624701835821761921755399014797226783368029848559134516860218049561252439650223226715578853563261212631378025587136923527699479532845662685454371695469511090020780761472110367269163392618902627314937729551061640337563919834299987797696364340141397512868770011641773134329734491484900054560131697278872154068427330938147440940971764224031342459011586190998388994100951936651230109997727070090733372570956707056291080612355753602255488710220201101197498282364933983764569638169862257210057496199913154907176606228998179385953230631688041135150594241080562872739168413351146998906531676846741109431412484067842137332668007679628755261393820425882133635901127459428357849149818234338018735818148886434967148588716571800669483658530866546361021777429682676877184315395123607278195058403902583706810214041578633218854037694733353583841673571603350566457472884376970609186131460233957707861709106665928240852687875087775407606854907136109679291907791832015843519743841934883578392242202831907000617529061538031669781810386376658828696869210506107306201580695071735567674109691005031822057023356359422879816207481876612174880599447303410768654001093953603441881633203381704543362513752366699437490674814171948687324782649811205362000390575976894274402305142640297188014271118321495642114571775278663845585409448927246749569988838466519764033522435824981001704058956483173661759977289972609393084654224172513646895623811786930450798886189470692146105389071691445617739994550424978505961567126882660532752723667044343659170430266754183775523428795556903192780125906135159777216479433830142156592856780690163306682473725985096107009999063149113548765253199722700073418350401100343983832122706221482913629176289607547106000378075532421184841548104311210116896845826680971330626587016076971712432134997051238308878963530078786753153175263937856565173880176939651585541609884096741711659114671086267389850799856986673966654067058102932585306492316355957240976488990605748079740976059917052804711924915105813725057555145606554338145202955978428652279873951815211076261685624052171054884130631716874676806863827775727234800582366099057518247835145215585989571374453080666416745135221649956522535294022333227573203394886927019394865303544155470891332042205417382350091441170189419404291153033077177971383112515166700219686723289325980450430107898074695390544909472090619729470982998042045769468672551973176835127703228301949871522214287585903466054172248037870069221830159164568410983145244790637496905499889397448705522367347559744880073128443878226006443946261630973892696045451547758371729059145602078116872305900910680867864945245797292990995470045821396536783960973327064602657882304333519902982296452701604859122285160414732030949972749372976636714319206980320443293906121176439497861911374087681068689752558818850648085699168141053498952729139137329598216652461117924527353107813335296721187811636822930729186788036873079008558219291547413629694708570049356820661330710195370758735662715806501526291543507724310781343057666450607338719116583766525026420901199851992322345944745844711664771637882775190475091672345164362211712355698043150658343674903460957080683140620435286654321124105104618474102400674556842713078874702820112710993987143301581063892442113051183108419228672412946142300678351176061202944685385411644150384467129288788026728436771813757228837592767794408048187007460029165181975980211033025274686623018529092526574143473306768601478806119211169565007909528590451494894610429341971274324013609425961850612328582725479342976300422926542081879962879768286936100214944734066379962110443593474177693858391325944499517378883970801652282209947355027557810057917862348553586230604286494465310859776639835483914154762629380906079639852533214413290201639070445264653949913983579423645423663335931649495660581050270598755667942209008494164702588839893574322580091307151857034687088483400354705016042554901507770556831897518310833623161721410140348494125594653991906735426183680887415073282629561361389932990428341527175486975787350793102458650169400704023499746494727831918018557745089590164693516261810894965830070610893450035124203848286064202474636944686543520796400111090403901653398920567404908543539290463141983873010401752639146865304966938045534438492400557772835970924029323588641864824639473265479700191511497325893743299669224160814826014128599550823504804969935845460565073663581311658433276840636736325175278370397033636740725307674156147120810986905653126053538129035407211490662165111960165126055380524590719155891148700342554247222111628075479832616836598214991121658905621853809112201872297912417052042607648275516773739562335925378458224575975654024343748671564707344721728812315012270502145317125687475573111468309164113317091089762026960924653095811897549666498113730075080899293257789474464587316463260392378675080210179298524002644011656268344871849158143519110015481997859840481625940446100449518165519424978224507636501048649852533235549376805392032081152051529429189904958400356627904689343897725035127131112620431533029216854225250693104659049450984488249089402623753157174878983225100157895114622380206397827550836912202817851765590948311318045207409678482678042985402777791698065774751111189972827093793505787091694682869256652502335874212973830910047945517617700106353077002500712951984900158145203601973598919757053138639684252828797698789913245196206051097294488979070357296839581085764748900499859835693242573748979356894697962197723887420058251467973018822951113243497366504078064903501201300153121715394210252236890789975073419833983869953572066665474334332976902390498867674296839650106850233222785713799214604231338950164405390049976133281488396502625627982963534744888460583503881596729780001041983167904002966106719351462164253160409472009594024008677852824184383842850900984843053064406688721450207876431957738122066642084688414523616794833173339121868657535732858610199087426270159494051971707344202030413524079269236050036977745284670209531533221580035231487500271305648158411999279358288179652776581856097074344446825330738629672927379444132132736568091837092264875608090100970136484551748340557608074335471722743231774146934461038971943870483378476777806588022759626599333389934325585434451103746914769537104129020359785785285703723125737219928323964316385052274353454619918879092654387833586098436497359640726457714760495839673303943570432830631205322128368347990662361098634105868226346059724666295056332947275010362080522104712022469073695198231492104075585838147114100264725586053494150054828052478215022082932187103451209235890129410465656982377771212127516698142061081198027238862520732846205171093553115312054952569479910320844473031011178743095546687851430596403467160152425350558654339290282848649401011635140551988400567074902799483902342440070853148174398374916207921707926080039039784808492628149579208306026340666367541329729265294000282176545064095083899206354715873350498503850863037023407321018582017144061978416728613810748193059374939442466609837590371412442135929381600808149921570780706139200513013949799447777485200810498310068436066667152546558328734766871872623930481011487032281882757504736415491613703751658481456483987213120379356615110860073519824483906657065968684476974122642396464530719636809668376125549401440499938484674612925423902153760668054164962672021610930764100581891886358606636708909118528415899029966764334724469731109288771869166158537307318426569418134810571296545258751687614611732881542974329601501039738802907195408479791372090059413005679604466459474152867160219825977249896008488375133416517098555924592521803795522183223768048043115127004725313235773782148122560791895197264239739452078662806785957121924737036510616308293959521065726871134676578210346312324905549425399964326619652734425155370471885022019381290425040843967472154938944173679252851289609448119691478716744098857140790963588333087111235707983842231893320950368711771509732629049234157785254693777865551467759535842071916619172071264360788723423055851046540843266896592937884573213749577941839334870203396338322538482985450168325863309589486361524209267606663926746286905592791747962367721299903462159977210563377824649200182426981580287279163871132767535415004620412899843179546606149515348055932041484481595538948150004128829915997533283121954376911158761963631166817261696053909360901355686459676716066247838799108182304293341504507210181842206508401323385167648306784025453250612142522069733310794600972750309319939125610635794813897655840996215643452640754655137850044978232817985372907634555002758407887992707824433641616818839735540125019837974712015262560251916822636875398848475385831252074028306322279393377891996008424849960870079866760834083102363921180531493743169992791883915887354824952932253473166808777769024706770036556769879724577270547376837313761255704122074622955217155639462979640129532145662178560073723506449676192808410507790188802115379300677227301757100350646991079570499253601844085512661336817460264553157783044862298324932193450205983940618641741412787352699847188867032641129455571898261866818170608272555130603485022388923648916492936104690709048081737990440153742953082843611036882661195027712037354162811588591059113891721848040429937596953846239699457680865319043295907110608129021603573410304081767178898464695125635436222987479205251092523021584239354129045715148954855352003798710333568236499527478760353822514789577027479929262030760911228094088494517749126230555819117067711125754929880789158162402726641187480531740946840634801499418961509115855209482137754106815179541516129980314668022991535364212244480154003992159942990971061635523018313918327381612725091146895717971941780968070477930188627837213336502827094842408917650821753964479116630028603829418270008968466538716699164103770044393657043731805475834494913305332320871529757521257613257274012151043794019320442015707120193518184109035461785898329775204955431970437488905081576099832190740957972694439467856242443651877006530231820300598856526793296240304318164359166228857606564458747572895334214090910990237902643825200620540610393548897613495314853007060427635179461136131265379988154587690174313795346083912866366778781773634264578207938475953163263116905856089986070018203277190614318736816245752091066225271229961470698786458111337646211506413766889141154096107177233457019390868209948638161899316283233684206030721754190294675671786456829901075618813940710202363791672329276076749324728540573473665617781423644495119616096254255576684674861641021845440982518600759038620185903500669777358570466878980240156377159773217044310078372433540663163449035251576388489067883913592029006248268219638884721774899973113527939767428402576364345828127350360181052525686063928123236196182904047825256641940543283597608170660501659648841040820821003589767281928198615895472142562062769800568608298550149242762226160210005674111634305706873818585346551982674022153053171583055304668491242941435816778566373237568867596380502777863044363475022709431754242433379309254908443274998933864779577443513387398952322962684958740875201988420699111602962370895794203279543272429792679846239371189847340361811099188893391515398762469452954914163245429950206070678234435176017871282717394749619139172098489313012472831260389066036120701338262961139992794127353779616092678802266178440779325649136391034163271082156283349987033966981429167486976302526238614553584564281456710461131309445952512364700492939774784677102654472438302667812591783909211394875139941762716023929270616230614123210011435898472320497801259014461172838919642691764534719394319077255258797682553785859801635028312221436652329566610657034976550541277676742974907451113965450747388091031808982830374218109122362714270496843907407224131895117267756287495229033839410801149910839119821251661887397195949970736061501757269548230470340255360081351974813955219486202847321933722117638385914592195443472658812257978069400862026771136041342360622952968076670897899813294905828186843319669139124885047504797119726948746751494562591445403852286063906346077677092744143467821969389872688428061486797024188459705254420824539340330366124388730510769584697022647994248766849355176597843870314859989370634357793132576767350117863398123398784833524714805620552619262029237401639546901593784387371967542637309640052910454552180419127736096250699192606671370522140436065215037455095607222873580306577870240046372501725253146554616978106992152170621999065674614026113020426581640036541038647077430889602051846687299919548432459830754171816055827658848284725033614762204217541977642075040020188183073798956871393069980561314782187496226228230810701023184610113176601728016561654013067881379869780979393777856588703566170725252681516822047716801102656497784971913103318021479064267457979825291102812019730090869554608920074802019818870365918318525394768359791531466107272012676852097053112374675511023280895159583363732546957943621390343535833858455666589883990379340917715300707335220442337503395237964061631673517562843837072500952834681019858235035348930527525456816606873459920372993575396350345736378468654670615659460029931398800971144830664306519444172602221788050673351969154732140541710066903335654536850689597294347680976547286508434232695319723835918784731306758653214938225753830212794764914951782424813881244643700697806286356173634077005633042535978929208605974310230841868548980763535630677043549896611395858572734293951520471222541998933179578571781304480122634053546344043787099163971633798118903182297345438049046454636452556651579083051653219755799667800429630092190395539452927960324497599006029815615332029580805648482818826172775168155731572722144673016960561897437669285094197285416769975864993515515271478199829126340487704853522623494916477485920081048117870792335484486613740548035882253277115304548146089978391352334897784099981804015142721553710895373021531700346765414554985911464018099255816594968541844506826517452652481320935755121226870127788998567686718159438664726582474339201134693243659794577517076139252025186719673152458380959174506117678244095114098804035968897135344985523722614390969300857898756251780683272366292585475956724375438110880875124377702635973156868935421903666694888841878017859558739568985518159579149492431618167549052978403057260501807541655480549140957242170335864683980699197424437422585173602306709611803665792983726035770611276752358148666219578224773064260268307390485750911146436739589055400755242000267144969002426320835289204083753631767472485704784497436072103705108110811155372171490403372555000144205032049319767577086898319626295774197692338426816629436601549214918053759443207318109204021998830953252986470467466728048639644815601265059826352568157948203718618760725522759531566423049274611018292894231386203373327159107586214789177123841963001400365493387868617862735850923096903303047710470253926550606922854345196734966214914279958925879819796652540526534654514386711978192883122014125747917992078366500273147121517048372042503710607842080262945378349341967358789931712720126893034754370053873876536002302512829119260323308804977067547594619697379600390576329589551567463479934394673033450104303081912510482250581846599704363267039821570469562870877741351647287484822122343002737829163969800214456269335219429861658503808589367930052033216847749860730199105670097099416927447055559350182661734410153362633666681847950653814670535556949502814291029938246354672924970777022989316643324021590428448621700972876151645172490101488066193262839980960562997215448478776345378865018031943984626687865666150569155886284612047922984658209237142752872953349076947802260015344267559302098791794932560661440999850181576298545579056967594101833997771460431508931772232313664673203921052876166587558456860311770022798896745231248808731582123295176141990101907352310864480804247728111329268076748024312218461452033597957177669967738917122448528919156702519450406498275607240876520725709820335751773756935800382082930808064378635308860986874428457547452449012575001587252840005943134137053285168716280403068695267581845516732396330954429779976147633022512858281785462093364810273568758299506974998584015863580739271566536598271959512634312304077459319832845736273192576300868091121327798257380038945601929220944160593205663546676571522027001632177142471145047568915359328430476882707495427485679316093478723567002502252239433851652599730837558078162454377664771934629903644988243650812418182461260384551325265316856513929958309423409645258053319559022184759534056805089116526072735865260279157396854939576598691666702775467174306466561123769861586770609427312677800468683658049525539852977250101731537590681160883579407001950325012554113958667995918017601455083209534717835073916380907922129394542071361055706621772607529644466378314960162671202347976673632190379445792787890525037367606861397158457709716242619777683099138992266056520573348715739686260514895317995861106792070088239630141992317166896790655115268576893770510462713049615139052957001350375821638824901889720730459025053476321136542400815652789802377381479482410487074270184447794365951730090377324343026741893318782799964584949384474489151646807931200420572219296546075872567777057177985094974835100267441878371842872084076730600986171799267471974726977383560089558250295364784855700526133271928915600143911217335576774475446423361775651603805273080277314449854274694925086689870543392958890148944042976184864735732918673408299658796458281017620874544664454251576491053929145021408233141605006074652299965609471731292399286368142643288626084257150185739661958338794541329383385649827314392623863476908197138641715331102240958128072462675427376918669264594583562701355901841932573219482294980452014496240952533550750434755235487656268486225185491400355680074770539088683673846042141482374367171236559108060852936928036069431222101388526730066114910485229851197226758934412179073990664150794194040222785548609651055188345748743101801711183567642461312839575399013456378481581294661748078746114811112707997023841431833042196784994313840111721579628855655574888406670172945098031167331838198479867487812785429005681263447985738858119144066246844014739830658160403703706072684914577819866531365237246667234941249897932580751799336696202073811986019379583365179132277760549508018143768386488157682044484536364255956064953397336156376194038056795906837470969384958379541170888186503984837419306881904074308824529633158872350919423566890251517287851728117338123143031543932920225457874941552903060662043489325490240619785209272851556735840014894310033750844643539806624184737390604714520156950693964528286858110939251802950238661601806315191924609569412599167081841596002038972006053142856419194325383197141966282523061826534366561086211814790192970883049135092273038460682253373473850536250702427977663924204467653542762508595944199003731028705619526465232717714340907122982280400207179704751216157131807298007613302208239050155361938201601295964515929230991217353579363820417308414166063430495036484099637429312738552609259386520145110810542240393516410198747304541279769607195970201091287646142634879856575716586155865204578589985678360842577405235783939345841235786668641337328351546108976621718446071576606977119230596207300106794994343328332684860984795733593031778021441090151170632250804878957072032933265889892149290892063274801437581115205266488516993369502068481738289485735619977682194542820164430125912473859464069897343740363906207853534254293114433038672400753460657940902026081049523822088884026487704297945164382036087289112505301878130776631259910058638841971337779081739062930165007673325750117971235821178035902122095180679742201634567987074130777377977154980778099669666570512037051158626010482080353251828861110936998378956498363860028683911955955551613283944721487599459929218066862772214946190786454357974262865374479546361982730760254942910454966965549527652377745130796024083898744794810448574479443197090428455280000424853948122363769126824016300084002622252787690232014851321789209299879806027520925543375383365046020567314014437404013808823320774442068462686522655573204825134722986877922496389134408225802519573648616046511672722095408575851862854416174466068537990840859062059138751252686128979975256743295125387938088671304583714147554253298728004896336652786363366893847318557144520852532090492418139184188969635164147000562370973008973791491380111952258075787188426534743043031126375409151331336197500826816636034471572272978859051564358028265676647189158620826025540805237329125844869347685553862774455549429747212465258378112052096458374609575597686468388797975670068782370384599127078153581404001749345974085962260311406599480607314585054877272232404267589782748614087370115559282529856511308434690258512201725170413544334805552012933012032646644785795763185222543924612642540487420330968020065106172855364830314562066883483664763048598690425697826839373761005063270720917274370046929245572756174204684650598864487533059799228474042517405591707463580925434756078822621946358044285308725313241504093213598717739036308051703886839583357568290860228807335711741271234457258371601038816817857694816120316868877826306725550445451619632882240569817245532916359702262688443278071189655577620655785983185229115954111083614119528042182705755383501768936801605898985506108117664781030225084652308394469401610721877755213814619904116780611094125534346539958555539480335854353713083635444439350811986449243821111475730829811842074468020903129159025158875067268271654804967838203161306862189776408880813542107737330307536776424555879522669803664851526732607789930939770407742428972913896060127567612670614560353364899311136372195119130952311904463094685634576015962323064049419195848559815510517572159045151449093645238269099543061009148254097718730358681230007802931383414114655632901844053852848258774182289548771817080267959608695815783072932732589851005862054897714084174973009556618539621903997102333358256655683299930482021504213796200190351809172178200490352526937297540278904681349028931454089827484393412473058537633402603868357978203195658499489546333268482378745573365032827495497827748025527790016953351127884614305298330738772321136314253944765506706729571385095920472704520377691629251476255792812627537631639080979084348391655850005065294840458889800022934444380281209593670936392270868171224911545247760380794103136489031251312498348765295850422109921345385319689104008885224708339222512426012630577003099233281183351366511273389307228641542495138613699136485679366607303000014847573155187024033253302902429424376375088972048074873978524360400594079463478414365141054070586936204662533391753986334764395774552731010595792876687721267810021692712608862016988499652433459604558667901415054655294634215334830536098283692234432742387231227276270802541700308074542781610822863652021184354060612629278228008550210015369348750708984988044762682061090121925435596958263842337358373128224100883636553203920433606782676427216482448863550508993257921754085950685268575797573831154732890404751441987816849300336145401752967847688913647635566122157283351054695648649424933178024702826827295802443638847629504939546483644865842807159878019825669220782206903431450872136951108635914310994207090406633986050230457667326387235625535007036070085047549016913651032513861543565259673103958508772580751255305597055046248350200220495724110446940218129132472783349090390725270608134394252608979646346780361921484248570807823830234819566933073014714813068344789989121259016399468633311772681692340103232101973860981054634397343070229594135742373466892867741176898866878918730945746768857138984737540008026927078623605570901175957164761630509845774341569164587045189711476322097624521184010532489941324057883957220518766897363554149709421492384020553348460241763605742019242691035548128564851637960213729075697287784055786899936352840207079030494883483384354607542008739820509100411998729431252697354928205913836868328399415827506352245960939684247083002787207705007393016451292099844696526473549406487143273806242176895372463010027526234370581324679161828218734107406609435435696175313658638073834265780926877621891392339316816315134674655362820810639319100884550500102643713196268899298373609602020850856249252294193131565390115157323872478527828307076713645558045127302111083706657378873093255093067063705991080924785889173905731340537520060636660826391317230221917732512504663124577089233783482908523840725146983158957684163902754836547321222233930975782186318288297256248016637764204339903042528366018555717224731454825941758882436082560308698910433038863074709786163323162436228329509282339808864196816825900359485942388400789208277672838833399013490503330683326876142559511422478458022099951067227728645886734198158101792456212409000013552370318832458799295786299731478155831927091050926720294938805079070437182293469619316586877655050971134032348583316013243429445091751306630161153426122470308749718024917985322950018269235429598013341942811717460494759628200558880200488142651978131679168046019196899863570330781177182582033156869027184200796034496876075410988327289606994181415731627242312385746756373026195859861729954300126282689915111514399043773040535257152967045530766458200715589338343629521124554584157791662154616922108128665217154512732538702830699531916037754978968391907173971238381847037559106924066536660065180365221444921265926338316604292458836472513181721269343785907306811766960190190129371446336667287948554767985287522438695840946743943443714790231154960403873414559732291915043203219244902498616654915232608198767676395528060271873163404330271389446356954905679237097471821534300758359900049484329461107211136863635818954950983999738226280478308940501537698616654079710376507963228797054936183560656701879590429666593727323307329180196970421271115686877827677945635339614733160466402641482601739039536070826101106422610245911538775938182236641856244243758755116478452508619494973810857412178420310190699298844983160291134699010934490449635365325339207704404018549873160545262284390965909631574389386944069911637081830895970855569835619802826983295180172033059456493585208190718806522227665324768604515490423897968150104903237684893659805479391100018091775980763988790926972847010582648406000852387645279111707640497023144294377735432856209437254259816928547485585702564791663057528704228945848890137738294948381733733829871880374258216489935123708106622282021259623902425595209717283790209377198180576415240918435734342508808318705121224459324422017376597502466788912176590423223331059553974198830253763999938680410213567765563355469884139889165558907291354572568368173109015840197807109707151780392056476768681797227586586836270536097878501937141119708292852110422556662336368753500769126786204700797456418068988922155737993946693658694152867513245273404653276758562525256509488426104359330557991962828380793349635354097632033738134371791571437090374567185316770883182935750437553026393871405332203810443288093840035984312535749584721807189100970669248696804197143888091944704938554242390452876919148660747417123540686345640337199416976862601698990566521103861284790919256131134915670045416751688687021087827185422876780245549590666513632049661140541399781815069030839644043402249164038901668450690880710002013707435258891886184427082108096538776243399009561856156554958426838295559485961510221882224755413321177201766042830995675836277655100034755318630722818073917801025375346984530068648202502237267442635195292279084560773629702812301393918647828043165355510409210814772277798508595648875399868813860006182945878119311750105758152220411853467915378257022752917225476552616021235817520143549907725581057263842019728554544494489236176234576087812422605803302888238724898840749113184730683003123628282420409468331201364515184251530759800273471405091111116018941044830285385810209058749031611058788823038243101154058916067833974333882483938512087386924861963097147712412649925087214882436824429598644838271508941929140565113828133171969745813047704243493297554830493634969072211902680461374057503085607800586307908282781388994031902610710120262327634012788626419730283254032829103182967802286538578760598097878602416279227150444924344769535605408977476807630329600224683293094819703553640858846972572937073129329653982167639776033196228740876244584127085148335373291086917428253211210651643582921327429610930315117888956263029879317810140184010729802969550578241033778391826196015380157403040425537085645411506417419334574524104795578159226784583617856766549566475410124695991577723521946130261682975479846173444704674802192195456119251524724019003422710307899799120961370723308103390387429657656041735787110357310290167920881005742937204186432836716380122305903444940357121712916555060697437432141324468477777716659714217202794280511494180774729062005082154613892714761409550902692617914916142629787136848184188433530538175039215244382587919193556206626918789333414716258262216615609063760773638604561169100462453853917740382937263119518608806105185054251806750195687976178106147721615793092148564520883106824944389226294584330667938235396872006861417175654092184406075893963677658474355879433367932246469050309226891739243374023522109712549599477990145411728655724574576819396862286434406977014023135952838507929201324398987517988328822525608108307395082906070542873604231643960689327408843001724400761866263676339066741809821164316864565493986148783998741979056902255721435924313916033789719980306358784776174426321863057605014550982800885071662707669346167678848839784586822374156717726305686740971056628869506354468045702729804576300907799541861204408866055683427360371513352868814295705949512712615921731207508576188239780441986939252142472063898048221400907673566091845412957094761771792169494607483528325934185174180736321619343075654086389067412058156495396369851517729417363315390128548012159706823323372415727146341329739092297596510857395003452575058624108500971442579072727163243506580194425252724247704093753948878074598101830995292626743644139261125859654857331911306367534610366436166253809928560869763565092648558750669745606495928918404541233329467765130197161260943734055694920008365793323177830113460428216915421650131540265225578532690405095308020333487124801022111909230386429051244906349316866375041912275414854896300708604952836160335211893031659170431523463610451409260048157279260702139012334060218321892653980466862412491842064218880862601571684707165068798133062043897753373907567916220216534076509758007907374780653555619901268638744040729106941882588008922929828178286571556096361487632576742158572878568352159809604119118303056109747261107996446579417695726743609616503557373354279562628665685408610979462324645689840127378504109228064468064505928992814813917232429746477454347319979723117418838636998100003653736944529343761897496497585856617144462352267372986081654032291060820595698733857175993919002011100946531205158179851263646841261684211030338916807614490195181219578024291242898112345202487101420764408750983629547348505449644529508396163293905445404453352180170546846860813624883479204959640742160166067275828888988795293806130229965162806894915301918288675552689159781446117892275285240834677083379525784822749104409785365460597712163396883449231510432666683084388651749177461145690806955438680126696025698042921863622787072723085239813530983724374855328215012594973568824575410180156045176194615701118405783164977550967977500861897056581525937379918572991348187335975090406419835314983104353073363523854998207102241380779624309633271363157105120677000996265978076701138246050995700878008702041159859596625029286543437385495796147846340239395171063140682225898294352950358384066731954516440121764892062886829587796891621678602304933937089614178396101012117608467651202155570860483220354442869580007911756352558762334286437511652977207431156116717273518248480672040656048019874486830041423420434592182702578929803099670958958690980655461643385847072026474557650885702900372413661529042716562202216852328252720475401276634147609896422909521507713429806253290119833669936118749623919454300267112497176564530620330271589908119294952911255664402165570280658527452795808303307222505140315164239935058521784861405860079008454387581689375308523111296292883813307803870151292985290332419855910475995643690437009188187163169140681766461667707142465470011114706068028879199624643003346960432898677571359168655380512818442032658338128888876467421599616107373039819830977996932204479880608279872226544840726495345769840253115870105659912261411107128929442866963393155813594670409930216241703598336946438385435760654821255813661324394524676032356544908635817043222728615410915307610155565524116783479230959220131698723047094370166392060427674050206203357615209746811613812351030449373224774415071375497963902255813398720880358558179614700640266890463224935729993209223199497155254238148417009001272072592361356288036434123729086711319669830812850315070351374570126070516670893141566947871713480825732966534383330693572656960209644657035397703423348137757804151958818177459156315470172442220316572566316486488331869103789873983647308312514670704391878841285565192533336645784969130307490878085244208192952117175546022908846908708444490114685719000615631291806688108240525007011645358365302052802346867513969647527690761075286821456502532844541071657468059882507026557966627594548006866269464090912921994239366083966709728160929582443233937845896921396385898809194483568164783853413127875536625309878525502598190455771279946506811537427677640693987555360908805100318112181383658612930082432353225339139222195179590755511705492473441405944388651221188820366728419298244366752073490934595987010433376064287386665867816051353501732914705068534223462681535390406991769742138555128754231742537348684275643553679959195085365638799520918695544606942327011495608750702154721954745167429814610512936172009177777538432535553742744127679084299149375194052000886575388828190816326834246536137343225287992376519914837984999045301719489633221641358846905109835201295336946147927644853612938881498499908763822576065567975712412764096343445642927042108804420906798799206178233958916536707162708169652472583340612772851556952808627958268231626343685645220694795430414332882405279319106669825260805585114160011503232860143292120402887660545320928548874482258286905044356819205061786929197002049108031015432078931621054166546990750392622752993636534925165924547442333365794647273011792818202646489415460489131426045218451443595097842587821639133434198630786570335793780680328455112390197750379921045447057104685706698291748903927059818276783415119028808076424232420239615366395145990520148091289291279437090485309561388333170089237429420182539693562629452950922116332734875171699713291508779045826591313259586949172018847463626017001923981209188849076138336915151518567851054892901647880922209829826222354035951915319038394342400041800092407838676945476082405317556376603273043579420846353967517129057260558386314715776027666826435632812136070678819104786629568249553603568841482764451269971416090560104167971972220289261370695071080529622333774699927215621551714765018236801506515852444391500485363093964772814034287216845413754021685876948958481805859314239206677176292375569451470491814683368894710062905802446313558748836186331836723971063355580700944869576876596616240766283798297685453029261616568315098551680885986610381488018716763142835847894107285685723093209041049832533173014455503390315478003315015344541187309423183275944721494905505656114232365509585973135263452817684519258814920928974534934621488102196315352795058030635979392169898418221354731470930244490919742408299041161339536696237242826233204072156719508731688709517947804223392734193918607436044225136399590504234252892762904343398229994397600281681100408166994138109065303465344117313383100340909760613281765809129839907041331775991958082759981727546507266374809593057820057807423509344669532755252543037820494343494426470280152216925872598589468789528082614235095239774358559131308228965356714481686539939460054671622360887813138680126012994835018218739914467663257454930369768557381229171259987366611705278221344757925407049619344497606002517665329189572002685795869849653483801858817347601133777851823195245672099491451820077987699569627787995089780509564880427763045548186554992961561822740671427915262511845625213786686777261610843188658776918578256708519568057757682490627014905194055373266116539594004730682909217540552267162037669156246531715629440329040422960877724791481628257365651299023332840478964958791905164859878278554605469238940873567696176699323453575485164062762324914829548984302105591644062881307701794335525108662711556849441247774285405482847046246543979749219324135193582442581579590258216477422862363161840695548530734732467593199762049048458724195031059476491299782295601220583640435870914324608772150479586946782202177473072567575433482040234349407588190546247861187887147943254103343888375153626965501052302570570003939140419738027210692587109527956740294651428847935231016853899426290742917495687903234610181765976590753084185711689230994914541523667242750507848857630952681867014580103748974752078202549212940617278223895559339876233161819510648047399631514036955132252049157319966472755430039524911512059949753898980991349204515227644854385575564642208154353895857777709007279199133201508375272023522522798864639912057354253431501328354870346862687435590753486331576833772316746212807585988365883877097668456755422393027180466244856985518855819260579546854855395115952524062753849249453687474952332689549786320725127717382148613054575149298124963201050327715022553856533355925505724020897091252645160494751475950616368358955096495751662813026150788981866089048855584729363170562724115499219231070091899364470449244228645310626177471498111590762312028575712595471651983170596597613157676912800590412256402654412646449929644361400028120159414943866433033034011349785081565912024350678496653174841116952583279431917583861865925531630840266080342501996596155696992314646380607383470668788684986461571017315276065792169441026207290760429619486855141960398735655943012597108588931861454219206238678050363604727932495802668092860736987220715187577310667971222686861979364397079350851624097363335019460947960378879508039925177258557205309380147889105273187640760675487759068791477577967103512260629721539112503373657951537639308999218262908704746079004072357374199115350961694168090814141460889373437472726994344624892114166740140700164830209703072407239644598299983709192194200180993821467105964238595698422577377753967293616997933072594459306759947235165846666040451701964636097055581130041638882061057081544038266932600925135530097600940702496341689963408835656856874890112532442886981873602952317314447495218127202691415288370474612187759989253183809241392437661699691411271638154037872266043905971545537816349728141335672602149195422510945722373917388371772964690789212157231828386153088232594537279191374332689084389694773756317470526170315492325964506280702533603184206085525298164188343157468267495459872858304899258581667251893238118613702394308967796256824565456032379062212528039446154402885479506444249547931741198671162492621249357836477268593171458774011618284487447257535190442126554858087732280242591511133465124218371308181326846416221075845915587622117166623291504442107311365371535388389656813850032555497565637582755995720250884544500804303638631418505205057387190339828230826979731735058169090222748957366552626091697773178241283624028749591422199498497579262454973291753028295720283255533507357108159415427024581928839443030846358908510066059180685144386749376340619219929421579737229050001619034013430291018064422066137348764281526660600618462295409918426857246118306672437148714255790493005282363576098890351187295784787900334162746965958451424409815823035642782854759868424553799008065275635134907633675198286186582699044089344368245282768632364701979187309104164685776143061300158980891914166700812831889525869378262936457397304835935182160018489800007580810100222991103246988972882880327563341559175925873621927446978889357893640220414012150381615780222649989575660313298065686357727130249176961689936601571408603329670067670935313248649936768901108000265229503855108120897417169031551888425949260244365770116839749471200497728671214557802128959094834642121025071311345402769127799153873458591052402381238412354670095339985931072052357380939862466168418982483694956899780192489648923033434626992846871856107455241003283386979269642832386093045602315982047790902718865570949958968437323354540563641077836819255385209912757774220291339675411009090385241424300963676999570760483835823977868593061228635937961111790999112516329266367154597837388796500056802027222405126360220401585608899746250576027796938353858362763873087050758071519431839384705394076525595764360039386545500707307305621815862519030603848089413737323212961832396547407598967836117472249806448752890739610680850742600269360442657061254385290120452395607502167591330191855961390972593629843836973965517015391040793941532823806116531799216971435044732645343054060663954113965807858625745739675766858558538729139809164844724513871050165917702971299938485383694220316635001008885591465589259867480158270658632653414748627783486434789849802798245228031744303942077479918951036387923770982044497680952501689838214639221936892283282087069094189582800213477657829737055198437566118784014183800340613933446473620627162319354192894756610574809226678089046940877602557883392294108813293479880724506815349107105776434674839087950008380893451969527944756963012897696619405390514748927745711095024670168692481462607912990332854028656070314267060679015212188187469711208520072135050069222344008507878670150537620371573251064658433776418107478892283223843990847047080099390018320861485557175991496613704226674426249910238591495720337040994561057855174157084011200022556518532507273717042398252243715403799483985933267908817195661553575914437369823998631742263091907133554944970306047990037979814260722933121182702629206537495723972932196110414148751170864733617309035509012008878450239834376303537725717633298215223024621350948240312718347388188202449268144391783252386022110876765341061996770380553661645918725577718205638876864151583429650964776351894763887582645561281002712135932533391753611875175780857079688539077499526133249239396365663242251165472361188512345986962977725582420483950047231838941142486865001563795824281049202477979690297550375702536719734917102073226398006967233620896954906140154242551909864238055143321649325752978915784656846237022689088827091174530291708095486005011029179576995068376383406644071395686883012128261489475037736451982487229107511645231169003958764628070091334911007289730122444604935693033328938689618334680436880349232625220927966138920183957764978543458269343000383289519947139480153431616078432283678250406308851098886131913360413746257962770891136641455956902353167035703028130778739243416786485660454777561315790543491879267965490493055416975822599993756650449660699445033150243330662572292725784093623917998817669055026711624333177447996899418259561573037928685976451579234444813246565276949763985547883301443315785726751327493450727545763961777918164532997543328335992651499568864007693558280872466396142861698146549481084195203918086767152040933210713382896384432565318962143805133721894490353744163460534578453975966036007286870710337765473308171409005887657343000068081805719493821343015852200167919010845254258255385828913778773284768638705353327638111264201623044039770020509983847271954557771008243403526649849058837501928975554163973290582646524284373842362222103334138074275113626379193734524304728421151838798577419030498325002949670976964399241415080672114216101385479493250532212242212233090890034035732373087868154651095838643421612312689030486278178889911777740336835020964146129913222517219456265205550523884474089574707352885997710943027956654610594419783480302451234038844779716286898458467438035694237432701395180894248485649139338816255510365219989245180770490001490072493971187458227713378356977653304152450682953765570271385689036208173392684703433297245983067988146636719765496362627226885310266984166853770629697739473622568476178985548125696939526029395049372876027723730981979092923120474206633641089526382242801477930859316201046422610639637768632096966740057463031388632861057284349282872389098740318734495049086980746114553892803043024596025693184693542739267977833479461046215061387891340531141511092096307786458892863165613536106648558207563297410235721131479943463862845460997565087238628617433992160573239387926874804692036541631484601144888280248466491397770690193874818066862646889203261480591367949107406474389451329765322074135545458196686920188190941125898733460527576304882911253057806299483733195698928387632325721806405031393642334471292403237321964023366971511059162793169077882577183326621394231289410142910083532708397068530167834295274124896436302048017935710224523819214605072279478852395684720443833197238836091172950435232034688624526041093527175593138896086509633689043100490108533434143473898893634194720536561309674430073227258843871633329129885754070721591447344326859001481725442311682903839531669825926631321500042419839883854461192524607906936098803178131733294743676872541502705321336675837847432579825963846192708955854789250024506585315899231222371414098799703473251979200123380883364987211273620920640118954080626695657893003139208645969320972620187599644645109467517589152523788399450763204674106259333266257587008271962308845151402753434678310127213168880414308056533279896100266630534793908448890732179300088336437899842631625018635095050065418897469785069111548815593165057716645855131033758009040096022916012704174848307864692383958038031136020851231495858039120240651743733172088779375917907006801772407730472250511677469757404018480232150840366994144682082970102930650702611229402088371327924379472380623237484842278718938075676839394818154170589071666274851690937420750603847579363997421223665811054199249643757770659023116015011862946616928794597661993116457616304860180822471467449765616860324475013562372439960009018930423940869440533756886800478331131838072602608888580307139586023759831062971896406737884149103478527244605975773761410652498283977319329589824878593987764889509408767316742032964938403845167442925331939421326704926015658996981892211952067308159821349272471843917382155108402091250238968449424060140859617614655102472644831468504791460742517366163188893641244959135014636670945666665576824067061793811582942741616754781802813027726064018473300256711024649172467233839933641947633761517132750739993256744191000841389065450766427349420306041565928750688582637342605585842406995258534427313922244995622453234336183650027417753145444218294822145722913475506116018677815586205324851951291547948954996164455691620801993427115775855638889806460879621002959436836167213013353897567877533006809116657214423031924033867145486737630493477963371461298248517963224080557934644457465601101160474164594804413395381798817007754773881220752426670137677232697882870492736877886015527557530890098090689769903712789654176491326927906157561825209379482119185454268114962647562009751147789233758621551266213072019358232735116106359873680264139500470775060557595056792053181956254878053616180082133234888188694068358327950413182345322165790544790329115286506811299809607172777980142675710377924077417442863509790459105917689474656148188513109360104260877850757001465335880427591590916642826604768827261320770566509567276078287358633643634922651983866818427823186335878302915136955770116351489270015489613504418006517845541779719420979843482819213647334157286430867246960289762606337251325881954076894362665654318230365155459974342672875998467862292129335404550659214720083481516111623200699021341040657508165109669150239747752560422079508428828877513930357587048880170567342264655865654155716768522193132685508946389126993159376199785529843474163747279910112579425136153650410055634726227239199170232921649369951138395860835817862470551409305679651534986958507589226843734234655335608653430225640725915081654645995881026190341028495890332665686799142839538658839582427874555023341253951280912779790928772723774975378000277672777439402071661001318724558621735031241229454769947073663976460624138530325410490783604407202292702896580469177188834887608285524216314919496863689562758819621851611227823754239514811440720273272842818713821094650665403018174111922653550797356449470481070059143808023165862939255432117398934185382911669224270853467645635699857328361811161553263320883086861832278361732709046763370720142410130240125918767741561325107441140801561722829944089698770261764653709295049366300913011676337174937542907370656718794036360239906254625303134261495971053656169508032862057263255140667018062758547535496480421101875632201793397782743915475786588423506741858304954227994473195060508201030408803353595837071526976496055503373357554272646819743502924451619096799503641578422112202660780621937461510545201907071994150136678024015419934290917685038564309735608265373179673859496010542041996014801375332266176772398058911227911451842053291677364272271244833765083955044553890649726048252115741780109278679856471949301173249106110340775567480182051696371085415132560645883360609163512171807366702514906826783917999610922045096232687480505857604992332649931484843135777839825907879467515517434522795933217123810340651038279865800613684301349679591947725398958818880321402462896162770538921707632551910586843867504534176917282080689925963401789592522940105827044157878350478919086949471358914853766780127574810731677707591125516435523328919658093173699606210563056713768935031183215698226582587132489990782745225111315990766325071452087518210145771932929320915027549093227580072159737121371018504245599093728340449311791862018677127175731361854591115369255187844814706709307617983550270540120281109805057285587382677458525688864970045055971597271495405360065274347862168113057456834124710090591773088476448420958178293068349233058888193678386988199488124745941557059615977382215565955659005727182900200603302596558907557289163783352772458868303051450601853156464614790127517156872697946403774627952800793640663107179112441182155682164628438135303526550459567392727437536194659189632678733770620911150552374618941173907678775735023799097156460474893160487327498617333408878721346778817926283201618162933468857163846158437819252654840446492692098912761137554071772215528797266100422877670507307621790695951867516060061724251871708228908122970852225847135116885212294017327879531096188439187808787855298245253364603553534907909308197588990199733976840588614889682884456450676158950258335484531944536013098653960986083908710196957512833447858602048423945502316000310520444003375451147901882480281643301623533032612701535938800637177760751907797778072948071375170566016018519772797060258495710867941768333413344291363527755910152782642950673185445801469918042685681982041890270953379141997151552983812169223293265214729473245174190741844355179766909937496948324550469670544642582813557316568179918590120236588747183740372785867015814965331388140807875115913642197589473477641577461051314922586431478844469780624317065818953219137504253080893947239929018135888529870400168439258525410415108849249475645382539989047762224929240424350938021287001591337269536976240919644384191298409559975997766314996110351171111493010814512084668194703057468497475633193184813452826025127559188208261376522930495543033814392242643855841427461290868418773801711724701587099972984557491614247565760179478552894181974867397842593639880926076734652385459767549540368987270271191687045022755686424199688974535711790369379740579767033120171512323719042892999699269860253538621882831663820038489287318917529330896477188649937611293952463467253624923627703399776909901060868153056546639681077187329027116989795557664877957541768460491746622833165718096850971683849746336078720899059591288325893001430860999589948591733626830266575552478618706077886135072368477975314640823695865947513505795907300729556999456752561883443996036553423762207885690655972380960856497346740361963105777703360761010220284459816466405375295999916566917599578467853596591468913371350766093383062760856589529576108634109713401221233478177664455736516463963845478352540510376626625851705877921550021991779925976234464980859204650569895353601232135016145195734029910223384799881519090615671570778639766998945050967715331645779110280549698388493983366667324618918268864430431520472067659746305290428196403922157807879570785846651392094690701383105110515783106745318962817459448559439806979858794046822402682461625412565283402361285273421661037777528144252301576199636923147488688453234638623937563683935594556070346396742744203677964482193725552905260671140040994799620846216622551199943069937086020182105949244007049728406206268519643923106632064357382432509853745406484574761353197590102243997159034476966489654343414027275016629519162951743561449843004567919205655022417255850161346048024995744966764392470272723755378895780475856789566874695226066644326621623973877648102620619014504764784057061811737643006849568085893909849272382499135181363797768812834393077088909461778515261174290847216938451835227626179611123537962591812076486709560034691950947622659010597722593541271222074128817631303559159559618372534714717334168942115363289610186188777517041882191203008785427632989455695547226262601492609978352320509247460678745378192231242093999948752538585129772763462521745010621028309291956586844304055172523347613559758936677157324361705612518621368591906070133781378070338986611000850453862622255696337343135134310845944223654513435115232627836866368877975160687764551881766517437687871301965466202503049130482409149595096277448145997758440653447099825654667718364168890136000148903451622172159742641733910149934868956242496487456135088032077610944844953153947816223915774425101622064456526045270832106229400042222324336659741146349475521064689055588779189772166947666243623225886831276995926173188367288647843660439366837342743979494691363989263735100751187004096636605433360619454302671050127674936171971731930576600301330071397229906670022076789950938298553800832029963274334753880315705896052345235336082849250005716789657208463485755820686522623315992495702671315718151818901505800303979054729183247389239965038793968069857478912365639445123633945317803399312687324913222948644233967573412989076331157700607451935203252547001898872963399860549492430618456937982404980100258508157806612355962353163415167249062745711956096002184751355937270307325883700515034184365023200695959887288258793463037506371332687893659088696688637324572988817937050380175335607427435620924865914723337076286872016735450312179229038098245434993363399276522929683162386044400156686137475931870367874563135333291946924128661397358375490920672594490532315961543267116977312340266778930190755697363460711747896508429823784196967667431571096476541057079568089810330815506492477591728991596199161529036627533561730851243688322366540866677237769629515921845224791301528033615770599877137154562822363151115729665938605133965156133752275767222822474902824983572331901787194205318845029384112978488680925713073072542974868986711941672103950135002053668460283606748638114579485193544634192830357338605877835458503684233772528621063294510005631327720473148623429756663528309080154165428603207900735695874687551023352917776446538296163286055997305643492189058148073989790283442272803644372589618038272948552656547516125167726468399794243877540372282310083453418428581809127743700273223742213105891120118290691730648625588547387020360095228156832540738177562181341992307453603939615228276214545466741478842679412373868688024906170676088374131893605326568953250185050886288670948114327769787011009003445036597686155251925414693791225646322978913832625494764821139031235708920629626977766889687313027724799066177399793989007247836461654835463215518906078133047660415886098636966539732754718144998708128140134502074395796152627705168485740070661877717458802279994652281552443415821433140170959426014221147537660629997680639108405472885798711634632063400989145420859623032500021595032549057557684481527206515256739497440086349595560019167601499885890499632734585403104130588236733507076533734681897729696133001505547187948714228002400371441890824724921297966435925892865257333992071420895704577756086704575740392925578574923463521565354919646456222871435325430305625694274970543882265767331532695158994630790409042906204223926282901131198972430096392975284367086006451381563583552568264169401308060828411277414109321114016288278239949329380316172257350393690442925686262015275915815014794576349309240762971681978031338390931589173123337625226036453128243073110728317145644111984735839705250023286571803216351750288241952689444056841773664026521886418617137857401703123448018862612154452820076382704142557030603683157639815347828089345597970509604967165492468058276152784420853145947602244185686307913845478134065617144115303647166688465945883956550042309302821928119763296111919521715536767857052776652679129616249323289062206435564171119431418426884973177239957450958637842460027051332512296727370938198282672700528221034451951301912411000502763297994299456187607432371069604737500117529414437911723142296765167503930058129707131367731256090143696586504087355807240273109819891571866935545598360567976752783133152130937100039397313341883096482773787698271692502295558796768960847786446766754848303019407359446004838957830499183903729201463401704286261700766023275004837914116853190416116660123829332291118462078930080945165125807165391135782715158386015291981654165026462608222287875385624920018320704911224796174826186841571320102407987437212685169140466942225216329214995313568948194575008862153309528375332920626147589606935932495442874340009158008287556101511459668563763725129407012349874948949424472143234581616237672082145196910035485422977390879874137865003376976397380495510722477094503130927778014920535917150682170892506487866262962484497305113728208516949403348857655353604799619395063497070275551640529142226244215623855822831586843384794381690167799168923946738115861660525109487544354521755103875510032912043994235545719481690020840344516115921776662023049924860691243023342509428966784710099415318294956552984399546558461472302435963910871318055291322091077740548015992503090748601151205571155703412629524940451070891524416003103351070079279174916376249849683942505765265012627565642737735076234644884858786084623064266093723970741770121917522808499959431599817716392275972173857386008149593154675292392624027062997988954599191533090240088986163242891238538491677120780643972873369920680273754460785969564283311249021410593000089261070353261662604346735182344906260226294649516869655381396588493955280007809042851101131968854849668836510175259070951137437988845309905104035865388827300586284653326240777198725223895636810794668089669208564822303291167512600640331872969935752919641625498302188577615763995888722783768633272983307269657077901835793602396520595651378030988372053355543060364628699318165518050021944694765817758560360205574934591499508234488299363271594688131568624350228981851795399592118320855969270280770078714037683445215985231295520219280025496292908080834838420753330735332872113012200075353970373875784030985896496152495881377508347305680536649477455879235926264983143259969974279834593485247302141714928909583529475356608179815842092486263534530002865102399947499603914246613669613204665338802702135818145891833666776610566295946252839112169962054025083294761015432782454996594718795936407253637039922240744042130833283411757298234091722867089333934646737003656169054017781039709621607466083198958330092977469484212337813295389846904723436008625584450423019913199841008238251299315324952597661563486515663392345559158759360415258462849139690625798203910289557585676312713704704755074902244563838907695468084707158837465281053274776176998780693812283525329843528308896377981494052260591308761404890372782126833223460603860579923124329576390527746296163811730060580797568832451068411288829034469539444193100503338402769669867648061736740173043619054659277156389354940404972753258675369990506718216622721138785287184028229271412051384674125646326303848518156466229360605399077628291333630419481927654976968930984865142170221492919927838844649990610989028106630852807385909935828293334583982430495801997006205059669787684612998734350519395087529741669829875637393479263686965582972743568036284274406794030298124546706856864606191243502741434097457206335039161056927431676719253686922927951987012352997972805675055341499716782450722975597248746752264695397486191220767195202130506815078045539048148068415453486392654871043677478439110240174610628178672275177345339862925823034923794142839563980154838696594153948801633685369748351046502719810727469139149601678969134948277367739258260210054895012239961664487672462326038584980006518263711511020692617721109135099852976736043619584570940863659142132543558393986066272955510892403759974016282336643404228222730641542317903361416420222409820919494505523586174420241001733129358423567255466666148315737047484101851960884662855052619961217647246493424141523339375103769043286785808142055908098909363952344827840981468298014029835547999534184955265270009334979989351728473668128472297387067841010008837384734606615431922109339235122920000986186955571828407266705783773883382398490997682760614989345345368310860649540270386820124326653986871984796537243617475796391906250729636255006969987640084011868528221613103521096240866968958329774995265579280361002931926727307292818954263374666502368048096548576291825470091332181481950894209134509847200162073229126514879825810623654930710947374653432135874362072760814107768785668033224889283683703274935840334181880507596793746044668192109590763181738138592736128317013026255394286679310164878731358128622080499744253013133356650959596363736102711439381392929926134711712783768728739479950394650747070623591334458095030533207247541699582478338748231817527729883393594947158995628892461743113748142979406601694765532043884421343090575686623270503139474554001833622400645520498574832600688783302077723525405401658849248837077956869268640747865223774200713233582496022638340646375809705229881520649703464332846919205878208412766485241059561346272619455698297446766442107334514376508547330350330071884457716569817150936116819438996188581309736827706729180541346060454876373443398314912078439371858987981391441206973937757806689552755389834185174884459334569212191439532314110329028254859445845824302180521566427146251879538181686980382498298516765948677299142076636247219230189490843355941964574586285112238239671965443639998864934603930053530057330272919165991371666644912701393448386792765915026912430803642830814579879914651707888801638854048762263506494254026910084761257877657528110084356814231657183299713203796889151860485621230963841271017698248018427694096887049838463361598859230737999071246861549361058432269549318877073427828716907921313708706354019131452915813587774531375799887979669550025595366620055800537474202291323269828253870331210654989507255110181438094452534936064797733737352297426249167227053018822740013002092978883560691358539112766150197538792581504690734097367045698901779670080404645529105624160665852725948520881569449680579494122596498186423382364266517016019654607052831940933323142396460807596297219561234242516049288500471039848799478670779333035958185980215200940794891461806552525637000943646343350362451920542315905657369908630779868829620800451858814021234944375951006132037594032116318268227120231590786096826038870742773509607150161869438901555493084412957342367901640229615597360656663705749418035563131417165818910023767507992914238832732013146527608409670597054691506357896436259512197548425525081375260903910422616387454875458123637705746978697101627444465748721071310574947422821330514429016876343919256255279065187565416673350044800116000120353165194794671162408446478622182038222016146730365369172833565176574368798213330401871913964735341313541987523259165269149536129268784976030924679080614264922317406833111351771921719687689220579020629192453082377833475254067391384627361490687646163290565014739331608577937240375357107198068390162596332772402294578099196732905919158891121094636816645661320665669915337616785575750197577042792876545517670405779069540131798601280645945751704235167104399872933258277262355167875201468760654205231906197329470258122648487829822837095787989021990244892508934662852459497971333029742334213464059055927745739475301778394841218531073129988563413615905729182070989604399488325101080871020578863943946534515368103894229780918957688063867047474160027928525462992336707836599114536326833816323353992376039972317812572210710497349570485121903538023664625111447581826478069295628974275027181497920981419909339312244809902226733659314389837535699424353957921842062272565142253072992444749636311483785876530170503599062245289619039180000985085787475376961848146071996707501242010018516500455103007872554319166846312416587175556291853768698333647977855299081590675282037467876991517360360653953232714943595903975768366388152122877195619901900201064996930277431617279459936408423400210187633785053437301997138645629188717933119806523914694922655678682292489238344829378610848737425145696235484200910424057114914726565553808114796997511755253813680956608552259067598946716581293955250669859895753722328111225236297604028091551931509121217296681098578137594534293327730802215562303011916778121946005300301768830737648579998148886307938695792015944156602032472956951145581548983237695891456721848094906537215641724712025854607921697620137443563554926961170241675156724428583617893881588749539529102045257031315293493500513052484291958061572241154040120299166608591618260904232501627949581223821369174793197384785263533222295017647031690639744448159910825771515735631567081143888976965153980372042105499727977999592350143989524313670672007041910720867794170051943333683256512815994586590013823454746769663099397482146431705060267871809993689361210488419907727629447082797293561537754562948844101237199371463104469706140056257338774446373457266996478505259561785008134629087213146802350513690786201897024667680492482575803560914748928368966486217904566140383033994273150592504544209015688507601063997842315618178247799506474946153258879456408300711891309676582029895368238479496499867056504748323640196054276921450120919773548922753783409033944434236267722388986820728636555625240236688280761070852553644265423518131942239076724417135239903173705722213985995104992710052043324762107323508358329755869965490191456571273455521430800195034287254650002449273084155521117603444843836032918649098738159725222821655371763302037607354032153559800149038709599113278466861161722693860809669238398759463546631850290023824760594953806817963443883564357863692061088297514701405648330823897199451250745488723547050191779259444763830533376472723969588551868198534820868380424627349181579157187526832789461789578942916689791076973305479844335295971105190933356788163116018110523243127550700127408348361171644292317795042635858888076573420357493583201937902598060501963483748440943268381899388236023521802258290200096528631006305712720375877920936879439895331301560208499705390640082919842271084555223819088448587988778640915848325209956961005226455348241558169656541912296280391212028438498081687570099703085205613344668018080210532840778848171472279688262678422584183691888811689953670400530774310808718617881972683677100169527428920925168819547704070073826779979821251799667527938775600443573078520046906289584645304142930395850315229521398769398425906889647385368931241807023592321165355772814369673367723977372555180718016772084094450811918367498958060175414191422003983087475866995820475991600971739895529808247876031495189311372245172278176269584565359491361032139269826923208439744346700228780791070893698645902517601153757678508063025461081524874585925535674484410681430548225211142173729702053264136888037165114160296790510842924254999918240550767583245261266661859894799248876025563741992118674111416939112918927114816321371150648623763443465811902999202210691562789698849846815340610736637656156028825655962093185579886065648743873239274754342792397975009273277164207964580931555610332757784854641331547776164132145289633949217968079874926100906872043240080009708498809742322625597704504404060015547093354506021259253507079550710563282958883138325144657366674500524574129260706698823129788385334065630211765215990794075183524745875905224382526065590907826425830080329076627662248491627745349822847744554334895151563830448070801303198967404815553828139634537310492884275738987956994882549104829442930557951079412761525523948919248796374911842492457595513919271413452331886348289417148594306400942049415430959763616578421304607023844527681411914572681643819848065406752625120544401560386369158973929839444978585107572276220272270754469398921804718691840056338816887943485694334100986689553285470777229775930156294132585656788808819286387282730144631820757079886773303911878006084973686280218780912475822654930329729106185323588034408524721091767050154421920417420088924022508748855230363515737764658317563586748356629296920183145742168359456341020999110910652032644833606315432417144864810763255093846312615328431078255471530052194727338895305495317364443162908601637632260807105277427634000577446417283040351818541340507582552267697258623772205498830514524937764604504763661673898189543240322642188460137364224242472536495876166114525570895406482471702813584587491711445225283292638557966687641615045522703037065403795593388980389741818353800533171344648046920438759709182402399851860270441774036487673869762864661664947794799537383805886712407261352186785863157672779397820016637079880337426205116434025564581687815137467498143548085730621769824192499849746161450384488689579254621311659739717516920386188801598506216755940584645179244005723676184746203645506994627051688811816011747540969525965162673205181532096867192502405159219152004710236436370461081127397947358051123477384650066883134865241290567214325485461011290181399096415079018415011711339003364411599023956530198913009224121041542287039302485236160726942335168571164599869490232266765940356594177613793716198112193975788222795836036914889984070515057875109987209248891970594170159628242058528491518303885984940608882547478459836077090636928462852755377222684347299533529849110139177987833382665477277079487741056270465589333067140084794310217281702431326663005715561260503841558449485874626714349448682357181238993911126334191434226809357827506445871409336775078690846088312843527910302122186061146231360657355476661708715868100043951503850882493173772540801484806978010603539430052182768758222507378369611716961211415282968696254808860304761880848309058860253191018815722394337517090633353907682980914751506918431343078667385015548798184665273105650219162285807458449460316597864217689351618516563166991726885734987491138825251232368739179894024535072055571069469255019903938081516530301305074609856442200253901590787951653679987659316533828701115535500254938970850062384658154918115356813210456465243854411831417505397035003420969522037292889405944307989794234145789855354071669391686277243779259512877968757338135109999267530477961577663368712166615202257432695288145505629671391144392474648594458313490544665406074681078963382991830725880669821900244453083171476303054705622054358372963985922113641280663578009168577148464676379475483622371599592937516006084934543993735844667936028854035907504244585680840317609250215061572534082160252793052482866107026311670672887832708451074523054248461691347378495312749038079813087606427590906510029959076951113947001936980607789990926041857252218893044695041249493728721940777558411464378896129339026201435570416965019563271256654647353607466450870030525895756929988281060019120055557305183282478082824338327987919360617221870524812428890337833137075342252936203429354678446311801670116747714700397302919258332760426133787400276393379564841904259571366348328959626911175881909298270540786151914935098011526255210692652842930593811751368667591383839224336199085197457542394165896483600561922732452796861941143513336240244057413666657431779200107998888148050380050221472354826316914670051441553626341967269919391894812072373724780314844866698058947140184438597146443403018294318998593874663180893144158609409427529092780095603144677008394419816387920520993064879566849989699939982180052873171200154501699584876039347612229881130977137780823461554299846518429334874378693109888997727753825427056538191714730347884994020100309837738572617322495669774506376324053224595654565094973559528958056444807269120461128962285564948251899882574221999014316239161654766073897880313696299192215971172044539433365172238478762926509645593886049775104367352563059019519202905500289267877932401376412732727142741655764636533927208733607088785374712964456383592327986832093037615975961059490131354958398152780962048858308110789233335982638653630264535978036912159400308316595517341644149901342136067570645719910135864850450942961745517778025576179706462276686030945402788907303482307260419761051434631062515138810439697672523173926438100619922408627400696487966622392790715703696289511885458195645022438159715258936798898232073089202764504518192072588256380763332565020851915594865238061634404811284380425880565859459792807694962324896276936894287458722268192418627427852102957085246405896985135805215168311361207158921844292404893476884247428087026392567694339781076192170287852332307666036600033834825062339294949349373411576037889638205817147567677114685710938389390603000145718095988464763587737416671199125427863218541031748484686645589876489699817728305351646025939007871296675304085870547509736292231470248761857036148332621842678718507782322007913321839854739944049877961912037753078519258951973597094649408396086143113675688612699844256075684875662541458910799407008196334272955481255818036092221101949189298589248588957760647979121951405394843699531853390060114863704482661294576314486791153369369598353128456958874596814687157458358144617322181332557026254736647632030049677411551242585528281958571374520809355710428844716340881389208091280144903483344931784213505731395640682497848544481894401337229899620739574126502792283327707477040592643921941002585808418047355893567413034047526599773046907985588584267846778347220168072133213597660402835372004773940720293307216472048735853559722674274939926827461380429003759771636822141887788329011690651230296685036214270363069480939544373424102026535373599712626777304725150120425344501603109867870282031393847122132509380785904904004346738057156225979848385646097333107340498426431472489955321735998382840813221825405410642876033367505208297923209662828668249068820459464338553377176072186893159931831983980919072644637595435659989436324878575328948378974898341700868507292966888328988596392631836058761156047012190785463512967660651697370775545003898947549858947707467255358468740502945377612776157689607225116050487487064021166362258855026535005851140037003492559966163928024291478435364733293482150121547464337607888968323848536728453561782274652780079956788179825698770596079713493300126323029913625797283316381789138863960504138403000117603296251094436391102542085408537731542109893592130199784655574194334174114001132876896189349723132858990910785419347196074303731465731241078356115031570911343591569816942073047850354403631113639372570141210887826616505290403132417720704463485862897256803208557848126583951214807754157792496097542094426224260484882403790029593156543342643935211596050048672820929036342160947696150891340366149041691636324382764350478955124528179471360901787695446461489018006365504002016170228778643900880619456643547416384648115053330410413943088988937816979416887645519604605004637617595635236326545875888602206009193385275483802757404557941450175856695530822900351404370458113470984621722009471213730183485199191968449484062393421968139798639550771090430560280210268218661297611785578194354537981428973814621791828267563331555392926664983564387598398355674163965895794625382250806943760376280135749132615551601589960484590947656669581328556832178701683226855247737757454671936983550589852746105518415400186801982094154410374423388747289080818497814432797241977917093936828034226976075092302130888230460107405941837980737851757501516866256248992938126911471921132900548902170843919013611961984998860895080874355302603214557825626753844916570426799034006776431614653361533846794131612186286814338496710922646682500373510057568341345342879081709401342059910800044151381155621913200636223723018375692734003908407277330110270783804443364227865459994574188942208312994593386773612674640644586509427475255618088718753858941883061110449206870604622064641622208746174201941051307971353547732175456469172082447468208512304227829619386478811382002227322448036600068978782920889862749493426500564231807487215792542782212762936454151573040398707548938912539528130009669184643551905989183512719609611099832837709844228315849102667748415722341534261984080812187011192374547172382250655924329231151058104943605637007372116397854670207726715117574064922248200552429734230643716637640686670894826520952823871017252337261289315167549213748145737436791407747940831613471044842825692207914059876503765551028847579701678360373609247573729874203634625471875460972281222702086887601441485468398670353959593138965869583016430458086976876088270086542125055533146531138254848638071789890608088215741747170405185593050201237319790314641854910814356881707951070870132119480158816965870807135451241711185077597191668250319248787561916425294936071366221913477347894622976423051624565495292869294534949992567055481658187096754160043666084198822375162242130716716911363730994906340233831155323532353864673676874828972893829477161177869808642465859876616823661078794958124444015784629245364365948685550000381547236967363243446743092874724930535972921172328505120186899094991970183163261222578095516241635229782136467293109773430495122666921279777898342394725196716087380966597909809587628639944018209132083411099181696017120704212245639663820600757307278444897220888802190020767450036146045602550143902111477705206895194892552135760862615264030261303879932623203543595954091556182772176058917839662096476252056254527309329234602158997579710631154914418842918737175519974152701263008779741124367651165009652560771995496065087759457508658982229173034540292551590141977757805634518279168391051574752120335180204273195281447640901249880696686739178493412686689664454788240555521338599386542459614622879361130603059415375327160948149490577416504068980876527117887723550824295319711920485082682642983810592731584027030657096524123007399450347810449140576589867751221738541056264761274947646077607793832564120132769030325881595341676702282675137728915385090043319735508721564400415798657109754952831611388596829684415086003686330144383515017097706036095984038920715808303040368251687196917723285838520182760729285207602031272736640026814244046104191218662337413248097363218127448037623182166979098708562669643600215544858136832631857336388032617943676010709713894732537092899554720910584709335502614037695018340713449564213397387071033991287776475716159015931258984582363076999452415990048623872891963384273551804109348557426629479108429548980663501876515196465491409261177265457900924623719417107871127840352145322502514479636009426495015988699612787312984083224738092066767439443903469404834424479551760830275336576656086015679497149867893948690367763655004439705908706001176910362962372409035548117135818791016215041080905996129334052296407653915604737327884329716213724620137383638744858428413997930358376066981033327741178754647528678303410327295900001770092552122137722697421012495722991375236484439010023245684633877986089492636166625183621417811081072105292526647557010762896552424842291713174665843633223691161399000745845406862953748774415537784488281007054551809109942441943545801080208496410719704547786599530248139840310658278740224916893005715426723188972725901758599323948239715933549080333558938261881276797104363422651347880624658925949648326514612981116170605424410358270041112871311460362168176483203922470398997201802573696492076193655704120632987298663513856940621114256454446129159288823542113163023034126951891493260909902768480439814541198161684617545569560981662888270037923850252265522764090010223942578230626060432993735089065896819133037470852832432440497773540727525978888734808171594448428161123867858501034701047159305060724951424432847913500110244071855645716103669227086354623570310674399306894696970887195380771041272656022730962894716837693473172589223436581015367447918773224869533277755245982605146941307179753155892370070111482612089824950329982065284086003709841515614555527664930870207902020632223683842138856246076633459932263418871615918069575096452758736023141749544277915704688253171970680582369308269403376331015756785299411749316525792989629458373333747902029804799546633422832031867483727014853315099140038159173233615009660887111021386423205631241242370415907751915469891828035327750606235890087505861775128629025282403912185300158455605223139289158099579610340988805916599063843787199803688149991721729767168951955450557264798626754048137024808933428690530447871381883240066068912476745643251919972093676162566013752125100017879372375970171657148485572948428056230480319494341574422014283896395354794092936485900323722202129206759670286858477783683733679815423614956705464464686430810792228505420755710348616876118097656339583670348027497478309875314020978913099580514819853235205379044859245546550033494406627329729382540110765524994682569628287182869662322024102466567663994308441241780722882657717371171578789898232688316242117018041183428637421853360427037011652581506593501011212372063416973057244543513833750792575622139855654165180620539436745260259958472562327238247303553708402076020748636099099230465498717990484689531413054344591355956749753144493213506585899190986505708791784074863715140061658987734787259507647699451264915590999946428073663146421163596165634344627785867019310731333210222018652123423174941319161755730004246547768284285160869845655173614380575040997631104009406767966544887556482772562597658114441465690691932566368093088310914540602204676882827819016889119899155986629331902995113360630620263440034147070710142577044508834190422596663769449736568713918047397395023409278472588644163100427193443140393659910753956024934109643867908184888670791792321364685331083073204492323836774427374520580321802961404029852443868208093746264092442182037950453071018785268852098715471517853306640512744127794432494416797707054720419346829875037262133435067255730800184609509844626053443638523118994594444288025754791063420511010789160099083478408860682850469120020633638445069298658899730290154829865507428615693589364573649873510360605955937825656364961158905267790608006455604966926924635406012730780762353676452674318331548379573012161759787920612653644967244661106794446967446802134652273278656102798420636624344141669685438001221273692375454180956930975523485661232307639294060377186895359065099373741210418606315749020893066433361832323553179194192181998445319522023897093328714262419475348197430995988101232734851745993881400276458357627711091722938698438495217514160720947722878527328361334823160056713626667901145608691997209271855009390469455978274945582860808065996285956773712027780465945776573559026013599360293884061527618324429909922208951903608338501442342743532835936465279031508231852732793612091309856005527301553550703714009454143392326586464134509797198227490167134276518623661503825843985046204443831253854276731579993278001147997904400326722745850454880462689666290732173625020757404825705358410270350628027704486175207747715850772622818557513082595182360719519046485536663477384918744666530738371780599850158922614678126875454715660972433264636730114891981180956570706932241522725531419532908403489667101702121997576608580020343399691776364206071664189317261459710636220510885528101618920338061189564857272112700683431793304455153890211951460036534916646122406293435016016614593964099667026017836756799254187969087184477109235929952213206243870464350482891783710713391951825597024107998556792784648389254508737915754013000995970838316504069301707791594669899598992585636399591517390559725244979717943596006801210262077393683378420726541334498551760220709843742481224310234914174112211258749382504603408914475436064171714914272348776201669488785699215753736172625193939320368597874991222648333295806280977045763984617396289733742160744762917755155945154344587559390224148398257388645191200760940165699369419616696562273611295849969536825703053258860667649754563629244839644475670634549473169900190152486664652521544414804474234389056276853932254767132288898455950550725946517074861175294814043804474115427942305218809694702870367842766291351790762864856885538496926899447425558097399281453855029565473579933168247638590874831028731811586583809555042595791660047457844108675085686409313511366829034854089258942902009237384343011606047658837954560751046213380592752372851909432730186176142051447959473491506510900346144257649069100690862296069921578353557611173243067449672709305947410009780236357602142736935611635857031191495827599801492209897922587092559703562456949829085942558617225649156048088492390890799575820964705844164325360603168722108365690739187651811158194759648541724678484199157741427355932339995148541275582835818709377424303505310610265305641375748934473414495511779814330342821431051370413462310878116477982923705062998634625062499781897799891175186223314212060010915253018276988325635782380129219362928460810879634909679211954214784802777447978268285571383807471729824040412544886203694390731861297097175315482610161615926589208366368973289462049938410269562909105368672497581758782328776054557929886111005127798379032252322799013234768503777457752483636239190472142770301710383117442226213630104387623770511186506644086442416344067721757920637945929299257560185257700632007069184469478098532289502642138910679997218449339445416727605620698781026801772215506919458162628488509154610041237748073518119885924257641343867422272200329133257281150426344634038936177459058068302394435022623556326506061768392056872245906679720558207004646319683567346303470596038860316309497918355348017439435080159857809258698900457542102633893607134999529919889051589095135920859938526722315822621376807167596041187950593328837192919362799078183119517620605435904272651499416224887549882226313801057324039967162951678088523085264722503626836880560274658271239786536402674620910367013542476490143293209949066184382593865850101795810239686347539198900591605574505288021675618935828546927332873487320131890535772543728360747706739465783834830136653192194050001090493114819538100904547787321533454669700784443486602839009219319280186283094023314603414799024206905020410970922348917898516046992135528630230111747814661372775245044114673680367364977956257227413584353872511492416703138121894406085143559764956911638268253679747614606182425942409465492238739045290038625475668712251576599419099437856072731541197040789004494617275818852445343961537587136777630768629349271341945739437808102914105036413066222122979860941282993551865702367108141944243891305724045756645025866960084031374835255828478879382710142244482359368007722031394833540990072016661425012339530059845064415896519782286590773592404140210813107902392947932182840720307637014096300464449399730156743998955312354574451497492276203415587284176709859923818715306870920644953805143604993593506697677716965860208427105602134569001554852259766767219142901105058311654928117256890793393053771433244453332012934452227002592815561822812434822804599154933418757402469618621167003794124429489193064078833451779125318293318312486672893366395093151484060157565259441014883841710140771220318531271726304090749733621208575087591352101363922903114352331454629241685817146661940888527341620286537491162567883205487288928031989336429274447110357081471459239983524042962511019523499021832156111131673070550731673028723280135875989481882787942453828401467158246843257603824814382836633908269748197336145677628230682136813687380823648802057506777173150199322856174884605086402365755514263505947363890747158865484693225125670396991797207119411449539760889668857490621932838730971078784625895449209063412011555579576812854896959153669245752177351914360139519003136701211104908152882259540778544702344840456505928835695053330753137780137663956926327846024733629838437720676147567494915909100170908315055297143189287892535278196766137975375774306329854967800167011090973136031042224451117699136629089124585448144587201040149849358686043593550562019941299945459138912943404762020038357450005900999597927539223746721939864371514685499840915078803308504264365079883888177472674721541416168166895397494016528065267026945802885115748161206391469612985950342997053526347666508318784681626669295723365872054175977750303155994211296676383089946557903205512625972439048117234595291098303405040893763239087371862671467941115769478841848134242380459821552556602863233909203395541389125938492330026168503124225481937459225540327415308960788257940414039918826823825177741601931456898155122510153149719909711537324251867628660918057429097208123075846920739732722728142589038092877231616309618306224394690645278865168937406248375747038024163720653905395638567747071854621176505321523942938782798366960708318652403215993921417154162863611665538328860948294150939724893667298711414645327936174203499223226291150457946659688199226529080466751665607333329806671097964029253962029751420352800337810559852599247390568050283231353616240344966505154312240365474179594626685438600064123201365825758705674820590479485252884140046327936642632033189838420047949688833238602449859293494540945806911795879126935901922060119040141875664386558320284930547417957649768045468757562785117447769327448278327391414435326993692271553446590940244183525402164949370454088314946328126637635309304331558148183685396821220709589507735957383247168436242528845385676528000965424516472113861694618929805976654118466665850369331056699593596504803217558836588803126333590620772223792103982620775256362781866192591522943568295780096441807589860858204669414654248838207344722981609299428278485667326253499657228795887260853131502050816687143823968657229827694410405131032088660957226110601304433756962250412072905088226584173652625572309822401003313330274901824122142965216807906771098153071457794974560241774739735888529349508679562992057754012017050072031928526578301597333830650082976513986160212847037816176321479453449988344064813751936684175728863711210550819581790388388780856554578796831900168732089549789985732504982783520703215536792254766417008867102806072584323875947706612506184926968190430834677722461133372275375465011773313640263135454008344612557816598658621437218665709510361433387319358556017688386849385285028990375373689894767635243111128484429647106154411231983256482630838225867829747511761330289281749330936095595731432215527114773605733500144264058204500670927050920321526190747112419704617757485942871733335981321701438549931995894600270529037960132933977593913893316798965059233915873116374070894889199627475598883192161482309301166289826110017699982675880340733119601755779187446860599334305356828063990077834479159232030907638417235917889738827050663788993616003126045048959231310194336166416504641563867737317637554512742239758355559979428198978822550288222876111431232706420346506743193484102260240023826562558119646074718436418145828583876893996963642487875862774738719165977206412021902955388807895217100523029405123640291819129167234516352366402654039983562409862819035814281096610199440346119288645321489047317704643066112752816579084390111744007459774798205382615524021652315692856477843832567796448239745017950245999332845295879914324201245646054087015367678666180354768074651867624692423606626804323637131607319413674460663951936691479287354172684602046285450919839350748784859562835714509710998843198917211848038157432864062528371848596131691256406369858896610881848037124303570194262441182370260283435762122308725653241456198114959135081389475642367471443378160385876345323944834259006014159141676607976016945603092585705816193602293525777428123154310143854848950497117589849227242024169071071417539028032942932564828711201638164502733307379411590318079754418470677438233682852061782107783735967419222375153025130663783283431111192645406714262651165805692577919711925608335491343441891054298083692171424033174345184897109627741499731331527225650102629791442500344776881955300817785594659772240367398445478695985466821899574397298520050247197049894005610182795146968659216879808366871948278787423767967891063193613937565838919744643948589784838525982290961408160626560689617830470283896079921134279596123542224642945402861285015720759491565297276302875493828494700266784394103623528532807051621444249377705710715544082814683768363439238504427410477882050398100961295017863473340167195494066374073843120717073778774937847524320141009537281311696160717110714118075054394868923455818433622496670551310884037884565699670341856324979787954389278267681233253794970631818551773063105384757578590678051632528394472147311369322340299122856595309874625665139799622129789247024985204211335877191656612530573425671552959783627752577348498866077726035673572607319332694817099058830825300789681847638051677588345106630464679320043067551450555997747022692750460358107489928525526562374512617846926279304304800350717742954528370806334854383499668542983189165611708474667164569620199079998558354994389707608493447303973119073818033815567806372427108729892042128750520356844938685895273176926119842507761739248920931292999740575306329513273581630157418725183901963737353456455679350175494262111525307593098685469040276940302404178316494006168972164865339440006268014739060505094879055735251595920594792882173495097816604012494795917121144592059177786312040325118859616648672693799951005103760032444212799467760698465518233076464712372520285731445456847184398983360298522381984255465407933202325601458036989613887108980827390690103160710906609165370060523886855055843519835405025302705905520102070608859310225816758074539139032394896161103590714926919154323235807187055029663224210376705229340089535445821733651734545816208636932469771274741273680291692274372933127581352830886668381292055304122179525718721275785514122121758017184473390445437592290771124575906500446005530703450206692435256068740890577791396469797341233491585243963684293814680545999335767741548520989507823832123741111918740599283979290900117127365185036590464960777140270327187062219158399596614604504469542081429008199305912231382121510561251933442811056452189908539696012618940613823370073326449161203817325636657465995659812915668725879216700504873298127127818004034270117456562968848365497877285843747063436788828616928391076634434197598371052977399973273664944163335667336781418311294399186217610024386392176175341973538976867533866965806470017753343759141280874836264181788496236457696388338448154417267519374332769447619452823887114078740117502197932828163943119320766944448300084616680475881903501939433201746307520921421587697676429472205136165124694293388225092419017000230607932201507190840260723873425288462289586935905003328222820151737431740864750330324918393745974962264229081130549409664130963111781426664621120065419566282196120351009622519592224652035175182732661388649510248827741856965322105122564370027832172356359614157630583873351496591199568755888935758268328713561049121847884981708122198701469568617260505684371995434333052856704000210358508589264786443533444996112005331852573444554143043990788252566041457078421111070459167383691955856442465476578745287845914974690012560745744056837766086443787900430657515736037188464182305658501988219246121505227152586780708170378739564901447186379017989082237413533230242699286352853830805286386615536788604725213334523759415202634640325824964162809640433748002071490835684728497760408942718918659695098668359240097090368685688863164487204450765463082828121945285860501511473743915563122982291696408968761958822578773508054913350181684212489275932544446490252142422033796834663150308591756368276598324260752403624378496698704632995385457168046418938745279883116930257283084283884888109295752826359198653102614608895214332251147219694574752258758472628015229701386973226225965638244238511673187073832089895852985985082765230724112937431148947760305011095787576618063485109586737749985249225971720246186622428459589246985384051609318952859795974211382894793390192943869275727386716847897075496615139106823082406857789376907508447956257043772470036001459925358914667627908420667520058934925272533463272677018856142689962561260649886686068974021872855176830338459505689461591895998907527655367962520205235305611214455656700721754271075746928672565701106687628180564200890464165870884147928392104309607804176689925275656459533411184284506510617464590822079310980327522421111166495861880322754205497463581780481365021250485461947255165927730070116405656791500737682501478247571023921228367258227085134256856819229330169113682790631243743507685200798843849577147443392146266306809455475953493089030535840117325324122776091498401447141846687457683384683741825134255883854732808611314753977295517243507251360187922110390443641554404488917870094566183283941641851548573826293886806243880544895016002978796329922265171155998339532249360899205999375210329408308177999228409870606428352958052590119458683308353019922544607849623521517263837488754540910424882865459331550190024675696661069662136664933438970433525118026183067982942805490110747082527127195944247344720454502284147167333232476117518793075979132051945979065009271836421991081359394744217291915331516356191557380291216742750059523009387611777933738218406123139790946933782327787728798855238895279711021471861886006902476714529774282769168215598433976291159429962969568616015672628939031540953905031466871837709414544420893231495510078066588140543835162550872023394547924046922509640055915073166483434492519339286267365506810611155890578127080124384371478396575906254317974966953217645023306975066417445666604966302793056927786908465735250478733492082483881293568579608230356117526589009538798073706527235240328770224899870851027732429580002218788140053294714972017445671434659570911981555350264037871908561537550034298678353174757555169686730373787812927110822969703955286468080638691274577540183511905382868262713435685997121170600557516823768396778948498534385160508579388850119041588722167581438510750004342963609152257776235821398532477633123688271878847576762685859602523353130423442017084863744326342842814493153293966272840301372995553741288460378613236101067082474822074326808462507979543372374829992704171100131048626057696898529479371238531334613073108125406163198114242476499201703058315023877103579367366883181886860203102898977017039313742432184819852757708991052269649710658351091317347944630117837981463996983638562385466173238566622358798537741374595645596096921574734771585972568155307210033072190953753638393697143056491275890745544956478015260244646589240348380985127067724985412259249923427753104346191235128997548118077355526221103663908723593274015843049512824167597304077315931001183327795743906621941422499078183992765935864566359594272970726433760879673534655073686891508788344651307111697907084920422856098165120044342121827965627870240148891076100690679203464511592150027483339525464057990056315152108497839276921826990391208664589911815792036859008877181820838420015228898983655564071758205923890911057451313259070875799268661775397404793436556710662986485690241687562036111607531289038245059541322674772862948115689510364274863008867091997837276872915546215138028538423304332366040558119710699467232923339012330745914057482221666858539351009321611772393803467797463736879079740342829636679339409217585291604988115043860300013567754285799674704683750774226982780214997479202497260339163807423586023523992535904262675782391942421377538612774304458133717279476843249694088246789105333832257318144356871756762527858715916470456617269165359613371675329182547289764400548027243668738426895993786895365976984099359058377409547760523968660840083764391885848639717214606043531481451680904915423833432636347391098944335523066625151763248894342815456855418041166257461742922193712498924956735703801541327046355102457985721141236773720143165189989201289232660089730404028032039640397289113426360079838177070713686013781091320161551557157231577313329629153101270225178244336503226903262285853052193907998210271468666874040564944050542941419204252642375864909953453277427717019499777001869342298213209060494781788521059980873133179506979041248878259071972251659581977574886628257765635303863971744009216067259463874671228760308494618865689247285959748107621289290764564910554714569799570213412585209656386133146530205778188105109936060141473414714645069881388331378267863882355141130537578345259079457591651313852512199990688030863033254774371652580954173900845150896539166623655095478412841639765926876081888865972393888595195977136794602033671424556667688694626948358324495602300711521584702445885153064168427405079544083015277540902459072158421741647843599579625160899079900590134883042527427342179023038322245107974774817537976819383643607059115390433695611111653631266712717202721886287653864830112463712199838635751468909843811269126762599797195008009950957471398657488983300029518738668795381981735054587139028720903590413913398867928419847274461887081799579643625484387108764402122240518540999209981445621859614391871316590406071187103930608311497859122433495505221792874589654126683301204564035318900695395854104218224908437376233342569836583795782589582859913836997152298977176728864290813491223918465040318852132722591121390253620342920388394190516574195450287973262278181023472099342570604041826287417243003302770285246857964889893712140304279517266569607715420995035298149846866081189409154204748762133005746239253629601335913866986989561613973575771096199639796331798171876478675477769535818428242069001220457579135114102866646133025979549539605842346348018185045499342452639301414796257992852167469721606307836881685169465450667888517853295399750347373603078018791496820157187603078951473632328308132525572024104354569307589621480843346437246964728162441121845609731363519048861691296351488161618984497617548911351264227533294521686245381043521063019025245397092986173812344539761175660752050366225106858080570754913070773263136337278342698000817493252176191256590626629482980821285318402395117584271544357190157399805874626203552217647038410300522426145280541701914066470603186106084643617658509275145588898137613666889827866154875131626607737427525816945369853248680804891484046334222456499241526945972658009902318703757667244456514068067562143697100256687519485315390258841919968290256623274066431735195099101534299489916276038503319836418089637948464558071254423619014102347707449377913641264499642592855321241148417283500301822292527925332913789826079410746219341978247773876642599090098417559619801363908061331907324563654862693347963818903567520381524447531306014571657695264732885117025475566800190670420172635661464796893685522775366668583470085848758496226210910607264343537793356386978359716624244885642782409846265845896991127968105001367001892126112379994157498898615690633048012732474090561183098562533264186429271209311472730735358902173923610152150836618124061101105729637880977327767587872549244516005259023939541950079748688449986427782886518569791874146457072412532920393634443809677334352730390269816758628630092909255226113910319230937203992951329594700799097638050853982114830903415077614363019501470472453540410740473444278227598278076560929144656114619784399913251701293559942100653334241814188952353970496359395245776635880998755525599208002927510749927660151082309855687104214398047796210898923416808693252683936401127570456567782421649716269574590359380786538615325576337834087957005719048980789246527253188391932205873481765856025703020362125067362992154731890946806391663726866463252140663684301637781703026294868728385111715968149548135038233542029550430132903454569580562557122220995609102753972274378965356356672776428921875670266316736609206642559297613935806212750388059299167934867048808017875016011157978681806120064509330706550240753512545727911638219351967499554336142279200236758010071060135853405512839235390130698082655423075868098459754405236060131071554393524723154436110777149012081622621571433994430768414382535763970869764766532688934770959828575270554009182512508907585536388586159702874941849465390639839769522346995805061936656820309252471270420090992424951131442022437245546675358152470355977313353824033442363013686946900796518358284263827729820151989568564171507615860514143253293964595905579525242384226953442059448498748747300560763566906095629179060193280539303313721322272807320682863020590647539553546179071203262503851164334326069059303924186138232898776834918711663201617543313619814722389381548820533551537801991088171731485818433081289710006640359454073202590565687967797605291209675136174896446119930123258443725030137684255625870592321364908644899003951288753940564975156829945453278192297178583385908526120119808779747185728188377117078200451506407877387414382454679580533140766948384182023765262477683752494960189187889905573120137786692352741379573001947730928954761464442013307536125821222321978248084880838326147977693658537765613880200616128546496335706999917761043406079842699722799276389668807462436732005278941133246999560749992492412615690169528729090767001177781892427896825901284862270748519137806485671534900543556731320823103845971878722381377008991476066820909990747379447985789864766165820604762860927767044834004752122949023860508269161387919727998446029677068904157035019008021326235424012641153883575022187812070720780595975125416411010089219949682674908291623431847665610870327565051909706770034632079485234355534166403131047653335924708265958414208106559164911676750925158264262436059114526144701188555900408338098037264845729626178732451310905385705711822110823694956070702391678756798824293856617582989247990175000560842466265027814174095560956059366625094368930589177462627590001460742395869160878136971716796964702522148677948842627872322633416702654270944618187074429538545808643460831734633277515979787711848069718720975955910750350563470112324669577013337775634694544600779602779913587673977595119915859674269370791396266880598256875637052568148389885429086529723899361587857734221755154929505258353576993823092534247248347273836808999137227587299173079343241000212150677305711976214260510316340788895686140044305322452804224005851445357711781003808041143229369792361902608502398175541218479099616761524073118184960428599842274159272831153314262893214812751973462984562060539331288391745723570934797774094632376447607864838445114275333793526829896458202159255604155767552851521193091627319855697252833421087480208339993431774161918936772086979836902567124484227823257873882769128686914416989867946516168030922528278315865507787009556609488158685316206657001511219591327233162940604837264738356637462797363220529427643715660159134643105354092165826949100307115822553482864458192679644274096640552201516434648446106096611302493122537190186721376596324933731326110568981729242782543586882097088958264452504629762031124705307849372885200986644016321766835063411337597319300069121354571602167389316525984631656636046969013259984549370303452607788781912628772960801151803282376266861140688111219812289479683817987361500743760191994855704437945609171309462739069318969849144892882167858674487068436863817084619903806096805459451843190207185539857947161793629938450905275632764911478875356073443531661981817135536756971249124284231191942482652030152799869069194894674664449297563999798986931103254964632428915055984380594329622670489069693403291036413841748905151757510149215658811928196564817133756815843630848740779690060002309975928561119954138557420231144087393613921362807856539928765608289155439366081124018421491965360634640865444898448980823404159283578947241437995374699632247326607636351241466071940334922088462540584309537426203906605504285405839210448333718534753799609971276027812300424481160367752514026898745462259053217931942139934389741307914863398423348415442854616122883213607029938783913395569607082709911055335778644551220486781039865495568070342024717054942518653166425765156372932439937339541342323240768985939938912123470721288376793631574739797032945265732562126123266968687804917217535544400973531302989570268447089446886950517262976246629477132209510513539396045489578599390230404020559137816887739867412315330128180710229324839920282294547073324087261085488352448919433249843328924691412042197365778909453148685590546162219207925705147294006771178905942609775624237969535169403245875687086204990114473038877836502262498678766731319042688839955821288157646078754351235882097025152162478179946378424456966480456671929616930083613730501800394943542602859302210447624969144482121850223688810038950619251667043543003382336006039021890712318622368323808882111570773198116925875615503948273112758520937418143468338986454057907458580242744908318147250287341852804739570833024230004942029104533982294920466684432029702776358108549067746798861539588288251040814871488006745461448277428007376794308446413148547843413444564756687495789280203838454042572237405204128610293378116350013291632987047583517389691599826692869465643781192349179806304796486649456589900263423151222860893790893497057167989549694720536814231336603928375807344609016716985999758650890276519066461919264742713044161905757047859442122133989751800261177196234617194723464759442201151232631154974959924659461435590126216089850299850659697003607495472394778286537146288163015995911269184106844438701959831644923615925521508325842506834250591254514228446625070642586457324072358031290129329288925320806313567226836818515217439862071826866112225252905814241680211157948231296193752855320888406739045135979467973623834140970291644954772005401338384920471266527188497133972774136192884002155705606138948118837683019665104257703645225780356096544859484979007246357282485048324280308978153619718261578757490044479467337751572332631784214348473497651289503099205780706874307515367403434216345614581679940901747031971235469361829936579416026485497758421817495527120623577585200081833207165338867745685654567516020788542314011035302589050598205269637388450820585322042260285984913376806339885740341158445614398546667203551833558083284911148772009441925444345639519549220799790348543346340083226955505976604383436720030685428520548594868189166964449535282107672576868138555231300112695139053855926510140979754641353366099478414951276651060655944568618724279810145568775170202359591001042404263232530633165051770455037537073890917839667657412673461593693710855063225718527632795580651264565147251211563101891908352278862358360993184142810224487667455907465756581636995912581008228441743722927485484826455073592602604491281668645737718186988796444812515431803251617250403769543969492028805863815449895489741149847932721713553751834744029954676682717775862723225565990288709256722132036024297099081043848134191398379589848262766529899552951758969494166895865660531824730300005467846304594844773530643978314720091740893227321055269617404923849675079508427760031689672485392631455098579620107240848882212289301589762031285851627016429662922439544656106348417762140235335032789953874476673780402354472415809839673531418932391561895775678661310592450196295665390714254217798485782746505271046397044920465061942696921948483558636751925583025407147676322377402730159048810490362369307353595702758043694664076426822632796667427093695924950235366228466832855280488698677770776113962412049444213786781128034147896920123971208466350082540906556237416939743693825143788547864512895667685967494931176497370965908421690206182412874093263077086968236742722884453769144803385219659094338146851509624505848453293560922650842161654211844226648178750715253866881825825429023993875050275634213164507029859118366548816557920944637538200769699834554678869565947202959870463988123306939441389213709074553865287601535061529811862024576002043588127396525998898007426939189396782922809784441973483682590556788839996768167703517637144922913045861722122050215136513521101538005814111226101215023126679941911952663706656563346606409765556819199476776752387214871722708543733580651834781619462786016158211397289072944244790277659101347850285941510574077765900051918095966590776081820700362128963497183054398859768500397462118541959524451035012020652623842955484947061480962497566155255544488801612294423164301067496283362769894235174539183619596970084934241183546166765992461213361559434802887413900335736537253306990832564196900265602745026598235693439794363252073938549551300242382700811124335196858233846738021228868024832629736013815531736968661741960340285367354747309854005025803310968810453620166964540988123128034982915936824060032390597814601436813629933313837966537636133832992326418653310631857457476997157553386070064729625793523905348672217815171141526063210816525747437225819712603356802504687652341553565305802965995145179551677167789661763099118302887339841978607676157632348730617237844596320197617320375248783606076635204667396300809065851692491923021993302717478155169135872306182669071300365051860597056841982031609759458699874675601568385982427460625086125760796447154559975585785812102466063445675167923032132880419865611477663452821962339833549838278079582652545599978035353182756684807994398290213072205182926478444567561420590310738850493790239674143504649407846511365590939617771554415318125817016984416616257313294563888114905591080998582913591321749311183823102811002833121595382863594205616754044171709763239745486333422707079698289667930481950525067757620375175697207337136235956630326420652402459207353754364131758393855979327615948350800011043524910618633927815920817878673916295331345545187370228693977967301601905800859102965084426727274628846558201949645058076295230038559860855405143100978864017595499067728531182974000596628622682571741757396995159205822354951516363127264488083857780274502716157875008072554365683987584120704684158411165693404117897769882985398337925989290266549013576629970830858978048274195885018182549377713136597247451871110926900997684463444085678012633689071738859522629680204383424100633259877440024786136806252303302603677176771966837752618043638145849003116802995384792911348122051343723989559282508030422903364158812065504352887662214712266343026277537087277958187794869060946870291360535125631927018295763778697024368137437547158146516606172914495163937721694305375867730238121347134320333712820042124394759029275817115727121664554138599942383878098251717283482606569012362957621928560493362573151452672793930875995916548730696603274055595063209628200071148238248198728469196248216460473311174176769909505743510547116873597325268891160395610487325627271898570040725761801371048525993663817201327797249177236297079149749205786947475126363149599398708873544100036675534957562665183232221654055349460507181721968494124038899552041805229605915062549423214086285137657281908322516174316593787451553707129861950080542736875414404626736658485507884985574408480659356064132268494413242262411586691209800267646451127802072188427079769435402360304599867597178582986093998464351376915395046215333435279371471105455310626523451478156134913135836899047417142019041606533653162370918171643498797227411023952423588122060109423721282440639808626938642033752731836297349461165285939998387519980508543197900519945113663061515219341930970924094782119516750944401509119024328616586657029466015595177048352547872960110864854286964477266775689904351421619972697458052841290290693528243921642044230833563903965345169351708998593795646488911288276107224901923467490042173572317244092110726306584073128895773285994402790560874898889548825232050118371143752367578034891165269135914051408149647023834039521028785788059000219052941113216913464246541452844099491369614448659851521989516876694256382905651166089853039073336765958396111384977623355192773672309116204652980374079915214230346874196469165430163312362164832954539366131564502083397372983313704793368041781609155066875285836716525835913529393775714140117749036903473370761518775003036145029559787168868353833990675232238484711722690770423832588002587772714684972131964707604743820265333603740268595547458872103689125979682095543973295000828830032582406585337821724384346402739838105315737915323604748368132267179222534411020157637760040594714694993525505101460798127503568829255279852127104459569185152713044392652058513565597593723277909970117815858539393310116780940398376971153054532092101763433849876191198516238364032001661612545523116454839597567657564616806587236967132062566923955881018685620373157843914787304555310955537400052304446666335812676616663464719890372206244170326518710352226703662492554077328390410152963986442133654407615362202573937342031995747962969939074428034487342065093321882550649957474114433516662915301246761821956328064834174833519845118357383782285034502433290697396509986116671685518250081930877633778299302551929739047083581510869992465419454531764174229240038312968574653537436744939894772353255714214196803532982280693310153388805128018193337427356274722586679560390755342116049303496319962535371100680165901796659474458602458669588427555432418939263912751202050525297673880350373731602442736985094022085865461494466036572925087400714449804793688296467814798295387759085395385953718202614658894280353810345732868445415635113655544723779808501730001711385905353067289320566064449413080899940766119803708428733702664389094856985196682547338509034109994080450022397262930997051403161804687231852188468472097381640619033382053001755289987600515049453523188346923682266605625694784459512840498412749876523737685763160987816918776530591691391255314251622102772760821704390580543370661594984139881351342316290669028515779325541892593447442730861733900796415380082727582804499119358844607812525354541731402241629114021645262328579335678428871038290846081711107361442518084744992493412430112289030253286210169519819562509215237833175518667590501702517137211942814635236420839775073082859353194412411331051823746900810007123894148202594324494701184142841146921389961071069426219934220750688702807081589190082907801949156829536215571165113832809685378250223896851180221907337204515495269843171618318660223063144753201240694450567289672431347325028810918843781503384401440227640943660886818821019694587139498055122276782751689629349512775606431461125987275723429237019811564989435878233259966760565910683643398074532780378830948270234307336250851332359634826412274671647254887165314373296082090775354717080822883856999540330730742446543083974128815123292565696134276106074114466831920579676018258420644244696830572621321361935123553686335764696572173175909271243046908430214063281182514212049489566027379981103790014782488237366894121404171460341990366210540440187669801656315896659281797400859810301837220711886861193471622749382273917522752223969954619878298198867236206938708000074955864771580806228950051542668950525308985077294137686563453252644397449878111418888851750077876381562208897258657729446086980238844925614356039497724261059205832981619504509244671627144052202660359991739012945011796659378912839785958223610306412960853055022721376334689245495634091505996788350626007689660928749573432213620278426277300137264681225948477029249919410830917654733552669363155232514396606128340089221793882864801193708807037637532496971095049036787959818658681902006070888237528936345607234282244402964341164554450580185962087074972893062991996692960605408506440287069397121385477237873804278036517813017575133519771454902107918616086729368003156709860791635413040244445443889566356975106817023609778288329450442627586164218115099617992721549844300434139607977205389248866387181956981412881753584418164867209111404889272005334270277697124411879316980323625143967250032046160186938256842896945028557269231908326776872995735799923309836571101671743587073768952495232738020535153793416740944019629400778604075115244600700888758563510710762282233559356959384632305438925016705305533529124769925869339594726681873225648954823685349328184482156544356487403629689597189300215121746770518718058070768110395338464295042540357107599144518547953075156114919301312854889781783622019298374650977809882394802547197328827520131943657422604618943284023165520653370562441696692481879077639317821441979239906673806102337988139069985369553707264741796023923389425087810324143720329723115282635006474583196173624612212458459317034136438669991734743139166100696394231605112531752667162727383308962688914386406370773761141591733310526004702657841660358681968563957217379445423636470639935724914267215678065462449819153709599380919020577329956780422701681749241612661280541456467251356769759055221919028793931246029754434516251512825949516632754073248203875244572551464400221358859569512164511701965209900502639484618547198088675376109086841726792110689004185549122206637383247933197169960595658635008366251291813852310755894615956982034651213168453597635583035403402332053176887938806310850375028973863177719792229268275680493486354414728891390729244254968800459260954546187454584239227493874676033429217723094565624834090123890578463583256711826457623353376046441789277947081364248701294749618500078663637140372706152730371785408759394038105732465609020871062855448321027544733338907001411659979297141579288776979049698364098375136285577911794677442563770712601135014557004137636802621611080514245694379257384985097783203587116216437644664885186332525942463272695623740028474803372032212745758078392637465382990664230596871808816197446230966248719882548187354518318941582657569987001227901522881086378227459356347591208298090653533835854643810821899893892065257488250188388726755831074719577331654562480160331915155584670340526780127930105303837426196935132807408042187765868215485771333442565036899598773575676846954744514201878140860606869483782909123446525582321267873017162570594165148961542208760455647001965504596156842354059376017159114891865483673291564293545326441180651834244025301152515072448156714531273126097511169465427645660484348408954184318986347960411793497103399927012444266367179963168302565021397954766775086074730458612525532843983245822103175226829672651810777945992432265656392255884575269415387404909340748163101338769870750763295570812459783749145273848444900494568492997680095143847763270722880500988757088746920083801597545621871761336131731552340958347065974805401290194067765756567303731169115875997427611579337481102845024735928940101977993669436772858850520694583322217106862492205635877367075658901694042483903050127300022135519533102178322706628362508710446331111668286389924626555601381029562812771457197507240100915122442146779764649148990058284755537863284730154142894603435401810776983867315823984470562788140956051202508978802877680404599446780435242802298672353074535951994694304198906595467940420023623291674429568529969104003206946662470495786306011983392528730465070466085938544834586045918739585440919092100696342993316622881098090784079080737041591941923946657444760188445921332998789044468702929958457034342082637504843294897599348245898753260892594784186504066071098920857535624991445848128484620735607406239980298006217795686592328759231163073878796061667469875085371221375572009711896399940235614513207822595205810308876700904179300626188879629665762443611016821403040899673799842094370633801824677667908499370507019687211173296804402187286615367619734516937621752017945591705929851937888875185820367892029888661485273272637239988608681861583554497969558233756764752831879032071749056769061867132414471321938046861519738448873638795018310090552334373176143867573822956013312916331174837153056551929849246401658226955885305232122080176292726151001449366139035211164336242446533023915007394571435330445414514128178735945601690186057284276927896638947191876351515485461459640979752717021541974530412984241472217019616287885746126707410382959961471432908793196290790953046807360919168002190206138271466454550992339847176278546660584989373934529212808051145109282230377738673061898301218196418708640833923640256555046364290832366873390400435993012338042923342043856478280518502265034626575564183549524808062464215222573006422651294161574272138131572098583292201609120840824526935762058288516195813309452061317034241625765674582260874010825007894819510767774731156362860157335593008152111264371823284631746382523619477757588006208976949981865486532202378281679704630933186573379996926461629736894456189966515981553036766162899599835586923793378370152459218937976179103634409539292659188858708452091377628853335492627955760789833892046137353052338623297939790591977933142500731254194040570106652036984122994858706252427695151995606587312887144900664548374375334126804349849172707273595140461895439354674489629085532593993898914860155225562578729047162826126564944548828049553477856137724189463491266524868895137369765360965820319594487326405263028995206812038747977849664743187702936238800545462044682474035043741843975994022009673042282812278859391487637465489011452105142364947029284582245170723436385248234532314771062152384505759248219872271955021696508891002466310838893963338649930531936765022386752829152308724154041900779655383715165033238228898985801354785223796084967676119973091296061516583468371188318004767602420943858299790518072668126791417216357426874348063618075328136815760315826792056108979790276781460013283215937279799172947427534625970783704123004595338625888057503241438517618638532714575025949935748492135004748515409449346585011309293933722718439415441814030910406508099320785743782409791545370572084602508791412051798949144398334781108191020129436616715667417175370162547896884976272393513751096769626458985400664923982373639200120243029980746822490679775314924737466217954136437089884674698830876993399827863377633961158229346198704534816251444317433580893421269548439534222190591267817024120077079308147496616339694113209550944614259949157620101813758681221276381896846702972134091264167381443974848768743274663286913790468570723431024631182155557620356102900253670599658977659436948649523624890540589977137259218256692402599916908857645259325261780507758422841348281953859497745349345642341253308487862801223746486621125456420789088360960480463360388334289860796879883617291468977602954746788040880292589084709850075633191683133129436609287452673775811030460371507574472342646719152022205011430305776045621150407003791811102780512765395661324225798187180891699219763398089204695337240119708412255645934339684802718686723031879014602919014003257459102194953986815581125507962900741309740244641064320288366676639814480210677396976475784206060469144693511156191198170248424946430480219292820777963389796898895420695780451385491269553219241762133793209888426839281519724385632933678505926852086753005197858032498762412841275592791469333790992017232980392066076520841409204367128690323234765340707070478434474312476619676237692641219890615522339800411938536485104019113965124426994868651479061502478061230129251334293769967183183103706357335214995566924247862836973631383709974423662047659477721878291823082655832733500107809305346895082810102974347231503248761296766433006346439406811847728817406040517467989997630687486832048755102567748621406137297559467739265193057227302342787765483894831367375716749078680394267063306269273841401025680240546071841629676118287641150091563256617939575663175800006424679416649794223756432937399284004553526056865572954209778299553251321320932231782784613089024257033078025096596354230910177682569887003055812251455253402071275726834006722317188427120846980324302024291063004366825986454467215560682395173714820608233324215500278583623799243317275508407903191145357036860167780501152836978815450370308271072981730835098714148342671399226282110914479233865575590189861650679411930477857959962790194511409452950822334038123539104288275523843193918338311437552282957185104273252661246443514621803231189173866931365696763991911249642912381899058058253549316323404865660438835356619296439744075508547102422667063655135988571795495576854536580190526612542264466529752690242226835457825906422859485045371182944924593690433683602825877243688649774373747141343050187775313773264814653658804128371518751731293665842412098798495011141721112126664062111381149308431473465523099339941606223332037118530302697910618710255350848177889720112831625364257833961529811985993253833132106703111386176894973145329326754309369248100972295299526270496703667573581586920108749976741041087368292174375163421478979639164355673456860010544146975809069068540294605441352964316002694015494676252493037448792432409822046347079003345143793671659038821733055766040984225452984660024627537428222581981950686629397475139770947795813963077304849577898285944065495199034387830344458014004646371951976613146029621513227787933483892713742200550677360457643755736908588723922995884954157089122784889370786934380300652274602323095782746710644554329968439377026017477463737059581535901072324609992082519376677744803576740922662927359137247813847240349262327019431628215612276799118694962531864251565376024153557558389195090791826654994654102413049420158705322245424131289609972924860530774150179854144974807857202575947488332364359020033097095312978283989344036015588811438515060748818773048883686531240976947230927341124334181465871143262243219556513404620504095051708605520511954241767283127186162630281467325415893321535816880385059437826825796013177009219022692216144955450680038164433113809715341566638107729758082041229329747670665501136216896614782075225509834799450246726702362219631096832930711612665736988848824259031819208041443508839557768826460305754440362323756089415963106632534855297369911088369896362581730137509694576708438980731498821342855325198849189383594126587877488866334136639488363587320673167976885795602677742006142575727733691884259582836535623072210821890063526745447184349946644051490544658489443857693031076275992738514132790207503190198637153605479553185156052376610206629089524498923627889474682671354279906182033866602345233649009305712377375942191639298694089866837808483098440102445532222477330536781744061680691149475455135415942490127058153062257251014646576808136731806237995328226403003284595250340521739323138726442222375859616401249729818884694593204602844535317836783023515494788241331061726857988971502300288485211333586115504853284568075315480940234080768509665747941446878076217636823021690616331587240514430461534561359245660826805916896392539802122313463365423859438465094986219630476338786051685881412323412449588773265417896054565991620310438536959944040536843116313877689037895743880578878367938694420454476783053420527974256977381791399729145790971383353237773371671633352210849697445240239229999120955654752686773841761043610025423795225171907179551769050471406580391034427177869933260098851820157870132440853519335885245447574572939788554117347765047798465258778942677174559416737821755895328098629907354859736602665184172652358737757131080448870909493219886842998369814096555236808332441825559470595951572814944175883964426029297135234749867809362240243654331338072801015615069743319123369463014467306778567202179256746271567595395356728606310372122328077302256721563444769836789783975838435308271550284347453416767261938378846142357533047824450627107449095176331718399520222227765083025115358097117288716651618818035815672266394340633163871081566339201231604415080560934855101847382562320254133922569446681581646926336352301396421987275856247316835706214083475474600594445108896385498642652541862685178914032164747005528165373927945871054804721925830411056875579650772497664078850017590606266550812420358681342395403191323308059638664726045113150421600838788243031357193183541190273966499217926631640879263068940852027746358579475398614699992549149923374239683847888221786888067577297156616655760844062551581133809462839054651677300975234034062243285299869647610390146030658782780060642828725573107789077302397627529572422186458924424078734979227169629728063393514809786210395842492744766977738053330280050402459990041883161828823018075299837518437628918225731496142427497383235596434493478050849719009689548183055899520856599494619013576787238089502172234716215903969043761519521381274225823744975871265937556574542637294990447788109006952319775494402771711273954245349325948284800086763040279765855316604699950294422760102715966463692055161340598680285667148547355528353810163206689624427165624919836044577249431042932105914254977211504851042988214315742333433057086247515164474742201797903716076546932221033426841868921279634280133839222064763123491976627404752977018154988294168945242688723595577832713058056086205769412877138898953264965108467556621792330852604156641285997362597543083313167186410596866584592918937434262457742746865851731074406853704302990098959538216709381203135790254994816623692719723674046122284403039340679055959051345869604224391291722224715794686740829965634902450200503930222196659838120793751277080205572028416446364359594430001495068200228487357726758930041927102509946136189952158525825171130890513262744296267199330795975691149394650030577729156970595076749174414855683955091999363004046045775285026637847836625651634111198356003030380235267990795233207439197974845431841186659642650102622682330965079396382535000556526369793647389252978687223676464911631965150300000015202338677240997131503622008590186215134567436637542772807463654235633416134724423109840894716752312823979090158714885951008687209094222025709298002734113790183770861700123837785635951357656238099051655456682838303665641195257189214916898747436909148754534799003468825938535957948224178873046075251318422394121013421810705892953483263747108020583671930297534419568296976200205498201258849183348179925340794996884983531381190367835563794762201723020809026769118866106236522471173910912005218797501640194061430350518402557461836591273664287973829482705685074767630730969352069778787762645188747322952537062794545606706328181781649140587549684621597227632181983836294792632898476134933734586419815736851424619977266184711521203496164277336665613274524320450552816591030023298958398431082813850269185072548136287475407904604003434565193912511984352069920343508037243880700719254477435680169790554536004311022845823897151271900969320144368613443790153150508935573068864522579997187914869835913569942917834677066667239800486277601349039141842759862905285059452416192596043936443583740264778803540817329351239764945877348116241010583982500186141757755734338736697343661603349739923517915907038208714519666366175250249776078502295669605287899033568161736279092252959505405812847429506695760132377140809583062026833985514009932680939190370767403167014516963814679186972075006826937421987160604344300693561408149887289419428643121596457710294372305573179519862058633536316659957656912960468117731182123668276331646989504458679185248674038116951509994999858988477813885629470750097568052675479316003669147100883966945357895647574784484138606304071162057830495404824672785577438294785489685070082306618827472439649404647862207819764240038188304394948918410801771774897018905265520636848836916824095685811244741460071319199685473406437697686506284769051091639621636116378151467863818861386585486776086176330374968116312850487935749712459625119128997661417879115117111285476769015507889935068585792827010058837807543819084876831583167512337664863913935761388730594330860989072021829254246280139081425189051535361924267706224042972057093734043685826652878972872581084465772907131890753755433732681089168912706291588235430718622759561215087027347870496684569950969445561264718465828371671626574219471370598923214353118269247309619267309914749148842757869503258205040759609523277355341322978169397749724109191212722765750415864856670365654324885137901206627232239566694241340664628993212733608748574572929285917338193595465417784969081477516648600340609406678688455813608157392663221572270727732349171499138940713266152920096836120467272163397472808244042018865791903040832815158849976505322022666822932351027315653947990397345208558930058229210920081783731189044325597175901595486744149709620393163794517333172994608612245265188073236640793533294600669894276871762631925245336419254095969488286998787696702445395009250864574121998972606503644595485440253248052747991380887545004397789206871804999685231404378550909609429244670857470964132971138409109967078257379917861988652917623595078026197937859860890716145345661231846103524988454456867514942947489027849796547930159323533178381218412579427096809041462116131405734314784910127754473789413296579969242025410220839489969026954496649492771388105518452661505963739490960403840098515735041698053215880674768552523411824516023782173704164338618007740739729601291571988915130592638222914711356350821180947314273367854265240447878481565713603725254203554121761402767556966573657176632401484350029260370348346173264229917269632182501299453405092983002832049226358412881689469087303731801275405437704450143083670404319600649208578346281163547934125024428893627468594312410674615660374179562741102688037831025668017815879470908072096916449097930322318759060011735262738975409355139594309367683227827667387394652857789437038181228713949109955222258704594734843462897626065941176706948046227238098399079656093629447755310052905884499766736264320222303195054989613148281772015773722336711463627571755844847408987118617969406701263090766738366196203769759464642723740615730931043080407602681038804058576120396137138697787939742003083487327874762717505088296042902870872748388792455783371073842930884794224273989928947888661163697164827054740531493606534404501746709706971610004186049790826921875651097800113427928622002657080014301192534905325244322213373929501426223410895734282305174712473800565779538955932708420802605060368426021668203116093742365522880990970008099809041486686803715475054106153903043430525521337271959944676115695340467344794383587901114783117634275512728571150646490711453038024128502797773850224901270699433033057057636466690309116280857500783665506781438168586792633101209715940342063469363624218584558073054288259622758977883670575751864851885735886615118969832769350511015141486220577134428472145134307386781038231400946642175996209933481516015990702301926180544704303753392716915410056885191787150480569742544718622837737206953430545179236036209022043445678496174367515332051445696731802348771769367845058720116949089179516596224433370483029073611806156973077314555272976281645574745669865588104168321214813797568451989138319309817263350643675727837549110167914245382982533769851366133727330551413916270689617160549597641460183369464200945119937907997982083588859848847093610484010113850849648354327432650976560246623572830382317251720704164140184156974187740921501431338587369074846387655641800300702114069798948576328857849065832372672625768937458358659710626705419933115389779724678119514758148893556618681149919718468350957793203416725621551019500981500400291553211328105774426068661522293054278133099635338411833781163099984756758680950524361463310482991702144924811258295619669270292890753969112057182273224259952923728538719688484711843559404292048887792677754485666395365174489169855030169754118413208474627462136895522177577971546291286432226943607785580336893955090774958756694770743886716296659594784503108971184978164283482348951806935676286000559504147629315380650303216267152670702295885807931865237439856507813178559181407301847768019816172101220177705124517454531102692823729803367493111681772991612123707766984670999707288183934629244703774955648792925371685916740785617563916610607041728940389728767447307616643377085177599574506894151827825746488430353915574487919620678281107451984852178553865494388092400764402881875388434856495340557730823310834004299070924055157924013764482157605386641649202899898089510719778778681208797800637402046278684882436168288327329220094601426030764783737909549830134625840492809965313731775567539057896978389138591981081174108291897651187809839314756603257682816001826704598530981146693814942556034970598728300041105880330499482774196549390144791815373462705658357312025157585664875992911300247330710602647545999517128171662220436248049397583236762603826448103549442974596389490944560400211936416792304844402372151448682886604424828410268164154167479247690061092039476529732644286585381273372502767896450190144231573047346005142991352538124677426794528347270630868881855134357812770555441722480252903304170367347577660974523260137997253432104427528073581292215195496287413965669771183829105686953937312478884415941073526393118089151785101554614895918227570777100877481789113903147973884690863476173166520018678463656575545328891826459213819153871887320436283410383731708866215167112541488913270079611040082805900610476958013651326551033329262000795421492817853514806105799569036643097521708142484431842560500753664302475723115895441086273151970098391203210018660646676632453536270192365553866095824758946565046646755369533014192918014480888621624993895853297078242344073735329511807133288144888646529200020350064054280557916844250273724118984461973339451256636496880752975262293940360331117657960295017767690758793955191230702405434802707998955003331475345520593745752860765249358672617583956439203542476565927092072312077963809342678811970272789186966831863972438144904074284749848569881712794823721453433253621269507339842722110217210735110879996264961315710421167563852080197903617158954585867204726305520508994331757424226557583836339045841216727208144078043837017055286992230235996470594877167857498585159289498931807694317259518488827363607155713709991184559132551172319688337201720610326226277194512347840022706390999418443335219178060175163086739899659286467239977019155084240045502056021473471708568447841253154840440293729330042141917682051609117135057979471659192310503222899657706310721795700667810103860261859838875760480335779773672732952274191777132824040107557918526016453121130322503947221389260014151670453101675666348176527392131177319645821801369296522211393619275753289955043351490424876866942732988078181232720705351225320483919374343063196639781152711589433088059834317417163835794973538841570880044002377259378945420764902800897628714782562407715302216464368877575545820533984646796883517643687129394545529967182507349213177835924828203444072913443836878712223378427604419701725805106474118784600762606343791582098493625581147173195501991352544720163296440394972104258467028932527120553940665066352465582201367080289132824426097645091937492112494679536353486076545280596391807369942537467675868128368123899024045696663897793192934093072078883903625497108693797870334289979494702874602144840153218306094695190054764975726518025214997589994311826691201286542419315200490300041090964957567935201299849683530197040354775762896244777306366324228442581196964406726229539253043686929586414320028241453822040509509969616101503976450175925757571113003560341962318631131771005330358575413366754659834050927951592526259263536914979140553469257031364465130059030465897994090382045684654911457044118857690517909994322265553884299474289065216021543330836411645737904568080409978737127210534885378245568949013633432312107405974852702877891474169571438518670000570305638400800798743446820176162737056214021182178379263554244538336881988844616173617755504087494823078707569729485672946941404179350712100146219026826191655437799975571385715559288251705149280049262863402295512010209176061627476047151498948280383378298930148807109587613074024328224372567085716833444890417855048339900718282819640251383420849483949812775828057219840601324754510173076521789544398207126811912121101887728427943548926394467400307353776471744704418383350350643158019555061197362611671252702714224332264249479289957017662866724510583741933195728581661482035321616374424589874618526471642705665504350486438370838337400986402522806441714201374102457111781282784058435577633000033522596310084729994534717937699282282220369571414690714325821684965960383910670957178875072991553910282631346029823157002698486522866845306974104853049834564377468913178259752122678782176792692410143558181826109518693659094960755051571201751338657353064597806533883796441891776266874483278177116607656778849058120754960052625516418098340264282215334231785668629771521978843744744469975721262411560870050345851339780462448378354200157121787909039439206818379070533546926948603620348555814387385979587008526875794044973957056618293991569048093188131937640469630711657603539075883484524793659209866504596403094667131235379654367208873932694004561074317000118028638450334817989946086343200106580333495341467682398459955127831668450369373253326535044226637419096699192887800769182025360410807022377462221747505151839358101721456910852132658481725427531205101481294810060546450618698264647355117018858360608988498003196918910004680889995985738259419500296663538275258835075679673417154945141139095186351206213459963226657144418336368407858650732664601070181279890613563511033152937574767443318010499506185005757204651026924105462569755435116397732949157343877485903446606898352723765971608979887193215238314092833126673824323128310188177180027454377719553396855584594173038157866966184837198172671797542783209531150464406991239465449787079090561290603177919454207525445139857577847971761403133828551640911817037005602415693646701563079746295847429559662128350855284001161593875556024667740415250528448902229533044416371363663168674571490111966972808512946327258211637487122868786063980095023085662118482106879939869145123701151645048139234296050557941189403756490530238962020045543262399244590195274910549484648396817215203821202686550594403109401687702360759393827003385207101076665731875349593793254087353099030285865433334106902318394042104105314924846745190593967230461702111602465927568520985600442478751695791147030867754177201512983325012141883365629590585468828942978891458216017732598795084189339055388188266957799612282147851242095267628768080829854995180737388321297342193336319455433847224832304101818632119200773892804823496757817981458929792724618407831429446849089504904436758305417156754616540271567329561480250704859136390071988068586758360764296803648096897642994777702892456151644226346797250524671374294428257812133685814497440593319963145964980271546054087400848659669373891939884157469434115319757990710951477625582195925490138016872238208816012617381292674871499066928942825182986825770580703699750711368486634911732355312984905212267082448165738598505270141480293722928094382371993338312273535041302316184990298221071119476940954069862162584314955076730262828456344026151354186503061969607179625983138537298123046788748713389389627474236153412659458333065046613606887440259053934884115728638341462658863407095811893751672736943140852596006778116944078588182701613467596437241956124205582610928779988421365006820003640085345507825846293310416407696474924175890270563887020557545356680819270353644984936493329505565401037588007336856236591395576694056795174038860995802474990926332369778029857731882096750461422469298504187729371994657207193851545947250598997989371847463383290896848954322565262134673046453176164175364405118223003904320636795139284812011709312483014805269883548855293180397260845320058497762409743917801591281704080886011525154741450640243736076865827995222577580363635555576359391995610173720078259919096822311351146105147278810078912394659767561216376541939248476339096652398800375396353452768034859471207603798588905215062976968438060632348985430946560127686099002587489417794625231643479066227999589454480012326977775218933149313667356169347721126498876577353135221693294923327365434731740014784839436537870848593258547236224573372856191873589812086221140375987212121736688741972224301572520054748624591469380683423762754265518425026830592510947554622017695966999074651313800579764095369529835043156198422530128276149920452724228908080090737978552478837349490500242259471765971004378953996044750557397023207464864989802146879519353717026588447954578691422082710285320521195994158189466070741847414994894217553900371916719544537890813481488375546323247334051945504855408855300603928161750663250735889600032880853724506770090855720195233667154737413161557189834745291475860136218089349014267437131492060729064148477915406736152246898708179426442384786760681459939777098897667104413859303449090110786352886661064906673459075780481486178815671981044199169819639546589212584475644274203499147370487566704922875801102300104560594167411674913757357580974574472657231234943084889601169740096200364333126789031241577237744017727482696082468657648413467607164189510392140319960782523611105620846789181024022814064126524001606685746383684421818892836465301404492014472448645423202565501613164157464113614457375959397029698403700406063604052804550054671210132561163277841652975772469438935705002079238281165647976346771665315987721044204927190470081696031766083259043259631557243385845435696931932440599339404000003516786903619666386163650705802841312651331961016278107901774256306567671751299720699172975680135348797948151531137969744727894300528844060920756716721257058736905870474357204449533328062678431178937542067659558727849393381532087800214679653194083777781227441662372388680297028261859339484328281580915718234399101003932321992756449772217195271073494758052232809748539368277686122729912504095397500085770728856185656785387312735717254873367871181713369851241743141149371256136676137320036115989329110073018286949549946847094327007498851023270034358275016163232585193077685866838613046438867008296746440606923732149453230535868976752375736970821904053756769051210435308530508506921579145883391054555665103637240497430673827280723635796182770394181939254241035834435879157879453028463096181424028236803827156644120036228806877694756378697735888471696187539321136710541657093876828073728156871148882491516077555926143103758829525170239565213110013422458244940700658516938629420521317263635718923742345798014586795336997228901767010413193962547652512286587995841320951481782915156272303834327041198147775287373543023393948751538582300038731994082577069085387014929364500020127195175069481319997997343858864454680086634104171711616201912712882987324214581319924920744698132452340702453134072176803254231525052600371968261955859329647937395695160389101057819589932354863250621654010042645955508044595616788451074481981308807251571156774013056662158614424993369732076822700458615020935847397244562759144590759352335584436340377600164330093232161373618587828907602712662843885575604735136843844974710434315477019096467720457217904422538492032984356196366207111394852641603642329539142271178748086429735339247020403692710074574738159777394107264995294193060329208786040839445687830890410509926866486797620107655651300425906179492937510757540683872893763829541940154964507748322600298286339683893870885332743090744910613126520743473934190022470532019490032181487005720294071976153419934047251094088183428274115946981183912056534429426478743414309157208338836163654792593641822151710237800919405559333922470594123883010843554002613947520345549199540517013977324673578538334214044718152560682284538416852884694296248276824135430044944797359194952185059049773461244139746091301687610257790122264106994579027102847759393901660957144689111133636248641373252100050953766941794401654854180736789406948069030304892790782406287864713826747881023049914298717104271193632626245295322397402425797892486723615906136353479002383052209092157593330743839234421722125842592368446781620264482680637345088262067772249091377638242322989465866398903365731638649167817845914304231020561422038983099903966325490649139594395634749312688570114215502099315845501759023551117504754218670477001475726581732144669104072834032728065611382753723771964300538314456490406887772558889839005866982806290242904498207976425462164366638785461199670459320226214340282144902611910336216269744068678818014668219451188037177177319042076129001895910832192132828117648860672687616561321376268696213847396023836243527358110151472787276383595142118874717376876207631972876728544551330777244917600997655607570041939310515175824814671148697644161780512886088157217575004187778328109769472086513330157238195722832508882283969479818411567243606870579315543825952681843619930383262125200314595001916735117872165154162394474041802884192586412149818551309685990014787469978091419075022580413941003885125873567377865213370921160777951464216779867589022124838830252108261717370916535483328906729698861624416167549079590707581227170336712988766531139824516551476716496284623873007072828175414277351083450238092277538342903778009929514193734944008024184985725853662902332065710851792392432776273547410605330168869945783532660832602628449834365823003019744841060370226819684226160869945940426730545902813690948313866140959709492449763159300718487372453741974474337182069693463791828214067667192380081270141313467303998683172040570536024798970631392491415416591760581355919707087245840264417631099538774121503478664272695897643206034310197980700403307812449978904253354629736344499400548584947736771299436048994155007369822819716580246600970146188508161278259326451817704738535770244646316476376384789280148249886992316369425324515410789095263027933672986239008620768978702031513385210033003995165961708749183446832607040045189541845795900287090163099053706044610940245597557153910838032032952066000918821663458326933397286643211500211282094471536568002059428709517209114359721893057781458646121028210280951250838304023578824173990990337477354808861054917404657940215039270233038252879957605268849410212077515963826062554328714376567630666372898709471969389781740993091958168028683195736948708105228643765940008581704114632866389822608905168882554483326538886850378081331904133906491521813745450708441112801063684233019798959867283856900464038260749278112509369619512896276000576958679989328611300774944965637833423441461920403728176243374866820352543814727598639864270993714604020844968623442147289012727844069266891479266642732925629519303778839606160711875468064025017076308583582046971199645597967862549358395120683094913118086670803885722638522626876326980279236199551533409594426326878840194334188042579604310164683502870177691656889226166653478992962836185709477827975364241681729647851376138080018267991578111620717881342207829935802763739301021326009138555202237619552879466309684697621229230341626829159765120748522428099320532847322813513618755497062771365363147633666806759514843550703657445327039930362921657828019611268349462103689176589577172367531135549048883866113102119555704085468921591572933032643347128249210583213946984383210291176520189166603571772075122976343568797334118239449267970488712664942436618930022797300138176687547713256300425689977839486996714094252398618971302750478834079608278712561181333191269547017418649805081441708779176062619042376052616483114366215699630257730824387625465246870621176848722268919907889395372267306683045731106604849810207578380514315814964287766655394131527972198255886166912566728235764737945031632098355221494456632507796263426727317327372437283838053407239241898871350873090859255975763394239805928644427940060931688608962558374437108464631544930367341634072883301301363147818139604699268145389747172277617503375970351308875501809784197982337425824313637803344059961391157729870285378533331742904631051342180528766384245280558937169905228230851435197639774406554164626088900684351139273113619425814085087892333634911683469516394350713659784166179049496295410718010048519814468146285533742458543823996906161636654505969007456395584164276173769702227090836048767290769023734794822115990075666240876495663930835526490819452870126921388661112258801566484658959679139837573401759257843505936228274076566169704777273158669022275500195095208204838614735815063896454076523500444868352774836574870093926782548457634904674517603971378159407201305682250522557149671947648045852070276849316991238248296275197400975118768764251412696161959103254595889000275128245082837304149449118893209206717875544287181208405193916833405405680752689597078486098147952462114836760017800705331379769483254495454853964457560287690433193506370413318450423211647533292299290220612333631126928774962138982865117375142406140672044456743195396304047677622008145907980086820293883032211847885841391588552899302151715909593079587200698283191779384109481626427831137943298319249109391382322735208289507414570031250008519801872408497825098554462726168469031543529921045500970154709499613026267719505252085304754777762731848569089565795680546468978563047666413579419786714580574360605188878876630729813015589454971877528602433781350813004016716775631119290919465201525297785222399968301517638211638372269518693619601203673670211085724493493190358156131727803495381229150441378654117934504106619939713590511787187784028718330892435610715739875204659487313717315407735418611658115393170124148807069027618667294300030980050155517135103314109915612744688514042730218576209660710305350122368412514984458172110035779459315997880677557563765869905283483783738248302990401258033335354911359049300028696772777780888552144950551343323253352197356991180943032964742476705791920476885398447589169735257922927142413407465418608416388961080442003651071469166786667109963439760756591311773883158610729402603931628862778234553345336877131139942577776978762706287572373652261638689266258592664278296929876085996855502404124232362691063552900735762262435586954094585344120615950004823356057917609877810776137042537618088321892804088209526492525892364838034333963592223780612774667494924919994786013920207755903630154012389657436738429913124469935286181853687768901076464850846050368047040794035693860144645415125863507087539887814673016545498138889612259529770352809894300704237107262169608812823991815819193331073934042277028174949800715335144039794347842798183152260587768445636353229003428944519895596028044372516446107982851833928552401370136229426660439362051802878077716144649815964586555571816060319180764440427491375360402216244454945898430015214493841911875732140274668767414408981991077897971566874123074545559456188764168127936144959448555100414705027998037619186123709266510444933243579868550867225343660297378177713891558558970939004892429406103931559196156041859181516682867243477812929495834503907581310986995234698415955065955418279407926532242237723544666221979322354262493387511066581345379173325462073598307165214594322903319221817831156333045739958689110084980834883701123254958239209504140882914460058851722163747147742948990372636437904578360682242431191368173997381406221386197402951825557688138628040811522696319811934998582290970849228744507665535028601617352539292749498233688210579726409990341004343270000568821636652420745173822651247555624053177166781860292734274290337285566552553575848166111599466928704175913961548528150075632655344299652655427765960551242469847168654164327285668161285163186752203329929021509079157160042671396432457424563601714028563210840396677122949667047443319780062598306434001564600359602953006894722376677043132065857228111162800940643332360345274268827118313368788863396116395798138457644242510313449388668956819162836494826331249057333636652831732832748657005046304363696049026853037264002902675222934685750788515192758542137073180708805292390672637616052956839775106385986481505065731105376230566601175753037501194517898155381139814515527133793377806929443879037837323910157116385620231281351373136384724066695608223249787467407425647783766896571516024151914748886593586733566080376972605695137084353314780464321666615553386199627929028060281732628614396978847848337260460015985501287280476697340368012213470685960538109680078125341068117313324290254435611032033808656573747168067314180331966670040360074205472141748651422118590389024230890765455652486784515771587543612461725948383021861852796510152098817237203874401178596501493247047005518623695374370934735332332815956087169006987821382485503122629142123226723032785358005233039351081395293646489839404783164235935504975619170104060756336415395332022700829202618044497191195136851896906358373425369166784850775428558278221644283760798575858602701281083939736651476614315545568926603621058405883904442218245753328585116835265816107599641688602375832529389894765266206638160350679254083033621611575028881106328129274928009955570698706856317027707716222846390960096725019679738006532408288221382534364672336023850133735658690272353829060514523099891926533234371467561265266546684505960047458129318692790224567107703652018715873142744246287663907859750517048489852553821626731866190499692135828864565599183010458894017532460900474776127463610642407057217193931608883791575759850006810439094821212151322328269690993886432273861587526983604009101917023135645291412256865499325748954847825667828302818796615592665324623518397057183977130495873619758999698675215712204587952853629487401304000296941613977113749444254878850697772377038751804449268557536529992339229883278784847551592876852968994091271328601316053059892798486135254930962599746218728155338214041823707005383232057827349366285303097338842301245858142835276470496123897970356728131672892106662443541885363494564840035004361974651299651756684894632563677607841916748652536263507392507140136279873771961035650035289563111952882574000972609669226146719794703627954950387554064372611522396514017617520362480038987087969059944289392913216875693227455403758276711053926097195517229161149880239300392047410030481138233195652396321896120592062838525895360728778537833371031074007444011748801784607820131930596338743575003560451150737160899539504986820956572899808016032099400444470387012854288157502959721933664503221376012205561835769336988369737654399478090931404934793740629480655227780920282339537139878104987778522955496417120290923870287093137405449336465375887512085673788196857497584565468071570587287543411384782242508708869977128144373687548198864669929867243110639625666510624711923017906981629360777056222955527982854123899732003857166096309622055771494771872374315594347318329685318024898773029036657824893360053123961727537452056860660619803720873810694241455891810310934486931360966478460382809786052845732366628141911290380922847042436493166378443684057494435495057389818613096103534040400546377463015410653624630383187796097499670648408470428193339760548583400745979067089168210770182550447156866874904637263608617304366802985666530199466986090233657974345442611672285582256461573635606788236309771246236687060617139720076591126960302537860493683788142912182338658265258594799908266432562755401815727284526421380873969110290152826473989112808102385415685451797355440052595646956554498487254283663120580062423038339889565331029476237207303110502084058675951102909868378505904792590084405995501715867824794693253865791708878308029296664306192136821827927290650434552559200272449911919721367811078703673729813971104707030658000005917827751818770818126262494913880787931890701692703289041175711236592383089451267257290179011027685029777155222946234644068031709498129111170175555952808642376868934594486173452831121520761263564883764947243520507787261756387627732411904001170754418304553048309496364376585006276259878067302495551590805832559941075949479262725798007993226357598264353374359806935395457694220229316639622242817542712203669548742165559226339842368311538949875903451352678269519862145195348053831039014550072304797770491792617642939501205805108111467495023936569723876327640949370263724212623034391117012073211939491253439451062140790288413224785012498108356965321472206036851490206297759075233027183322775266211664417442666951614177699680915943304785325647957656856674624163768944164723650433453821939865955427470989382675914744669612788902707164906006610544853149371536143188578973226252243837214289776395139694787265035341784042928817837775700635382803472475387414689851956451997948421110777849716555801009337545213614023994249056701313433075748126210293189765974371791162008381087390304415574947692345949716021945980639057824191349926771595337389354911478851185812542506746968910915248049482048648728033594616478435202078899414411585294387703521016896909513622804350374567889759705121405184023906603027262513562162851340230628112724522031642542749294237170992043696847988055515557918629034916935150447510763892640247420118206683376524126500744334724479125782061224877357860564652479142103402444778289583515222138574514609922387443488041454699966560662838420750592247320088142948539620545763781862659613599967952963686604751557431186717765597865068462802997711406434684859559479896596832767261413683578702117580417159281584067168692655116588970093575876700848945648349016502230533565064528975953565000037751135995725369783195023688417499071544083147126183909214937526148849314482867869137803489557241322219403155454952863504064432640927024766646662323308886689854249237558133927084178759940024960618232910818179280446562010245959636293523482853873747451752350370797154543450959744362928246322380668915259520384373178925621611799448071326998365397873557220532261244549861321750452969660111661971568436739244953601702564948979006852716480839800285647791859621773468925656447167433230834638424853425587368108822950504100069322540498049529583120433814622260265642714285632436725332934211778169869707244289160553782542693754096222327517774935448093728894296053778642328169177441414079951946473589172618540950870432109694190949605466879319878216142875228366732622177163918100449516309610561049803197173418226531427013228451630092978820443103676905490681080675136647389309281358836917387308131352130336251179573779389004350536150342442460669868053981429216131011424126470810454547349194805596859351722088136621648453761023494299612785487581168822297636428178754528089266895940492535478225159227940273375914699492074343801517059977997879040778423577889006005464434327847753208204078371562303956271194480665288808997227510893490926670203107508610437486497212264456031235100218071700496830644612738109489710273394598874952473085493393529393469071022120916029267960721901946601811073853946221279574751452561560451737615911732596353646958543223320522648644171549202326280665268444245062801680482434767733781927904101012939426110937846104491479432184401583320231552518519383802878727295008431900363251600944623484326445279413841529677572986129873083127752492736442111616463495148884491289526146116848443984437164509303749162089473083390002988804305007573560734513899817332816138238211755370222127765718595209158571824730834325044852007452601248533808643300385971841255095202597242988845288717190627305676175168034190745822184252065488255733342174037585717493378618025816808934729236289737525540592588627004565654060524185374977129051830260958913118072229727658809384338000930891821741665552749411447435220226401454968776260853162968082677273057011171113316421835956468436244983611237947266160262527187230698861172880190070739275387005210177841516911222836445512088453933616365538256475712716867089037542828291577738943056749264401594751362922101366798723271018735849447936049303218950203567359476177345580950586385721290923891179695674170271367796427111434321685691052562116705663213406426700206283369540433848843597093379286334336061966949178676604766505162915377808574263424761239801936425876073944361785961299869930189230866545540787786391369983681873474760234849457058323639760692084483659292035189621245660342805663431784604494791333238278438854504611881369620013689688004515679734143528782223572738368348697390985131571471799557025233621104194256785136468262162142156883852405743618363469984758515619194312625353596057811385998445088803543423389269702386082938177244296741473663251391779590213774225548812236440648340948681571477071329136673016356397156081985742512214775086596447827744802864755613159762199263690366205902476386288211173989497712081456688336641064701524817095604428076141123282672021139277605861450390946659244125790818227482597271400322087772741725260808458127860244012921417926359325417220790682728794833639026097905283516101367813443648685999268857909766437322618911080127028325433153286769561862373560982240297367590879684792349270212287665231819714048499355248542470607546393628751762928437648681296236503509535861092424856393728339699585359102598171680249791064207375078116897888740801187108511225328167311132629238879957782130658828290139487787695788394882958849294480435371415028579859567433847926886752729313532860032903516311976132762611256888743268975619497988078039592099839642537461480778757301645168514444680755108653386682588868383420764740351683977928477578086789895863680388167131268445826086748660771841757799842928387821274071869185638304587297293502659612432327628998746389913893763944593135971716657640358443069971043996341407473268196296017711075695788654311809493180210654460303478857635335469871332383689883242820018986061820259238951681537801323599165168432340008362102402548082760379014663076530117692410608582553505826021847337861797148288557470161605440042358560276278643187581337820641526992285922645429439532272287042549568460432134510688991199676537186601567307230668830820328184511782019460608122553912584311053339685299226476550807189872333495155528061870769889418131621644098438461120774733243816977229581896692085227009003561022869689976198002838165886681965915292145357668033066888012297108506979142332940554359782753199679188844620316554367405671076110308295428978041301781809636236696712003045004641906513110557195840368593311116829306242120134199683032820714971052952681796684177678119231715972391147514096341007083957853154083697265486473418188044650847136557144317965912233890612856587114430456250737628025233934385741699107318538602021154735872409749251649145496400826938332764528113810926383878114857567861925728147294750835372656848957014802372957904252926402448044699063317870653581675519731808981890720673802356636656386591398865773977544914394337534636027322649330777786642299804066639376547152915738576356574789326407072242585840557345874224320431331762165945021494101439736233593662311906443655451378924060347451056244886380351923392822238421531899338916806368529606688874880742782053360741133055938782541811270904076217045562894218305690800161624319713459467399630418498126562430760627675952340565195544506423671191428044112918666413833902261785385825650114401988978823862486880594653244208337978849336089491034676980216244531434079214655715145298789664044340645872126193271558808291239474082508916879904543959108246923514335366151564159457642061637769494453201462513911289063421029349677322805125059684342360499151604744893189238914694555277336115908117125179413772813362645284941048107404852144523103365435184457586099318463060588133366698715163334368929109038636482362382199920546801526021166897051192066393680570417853142349922898176601172112993109297775630133360667076222240181922865206301939189277608511517156011545981919484725566254942595758975972947316328547804870353055219100107397604810742839739640223909901060840268406115789177367041636612229684012443512329986128963057766663147105015885286687472219958518804468104522734719223876741025014818791434012099218707405453378120799818461007146133960116838370242767504394828162534003094700081610420935554178645769927447528181221419812596763114688870292833519708933132341217255143957487820358908093389576222467646244157189363802649545546219118159212084656907157421343993813371267237556419415604508334999006238298711191058984247595670530866749163676066581413548517756802088483432472254834244077325544923517957275126408305142664632162583560614463236927833430146879086301942310424727929908153460627265374196567599319182296476748693148084433217878632034346898534438827268196157877201432085497807977515003740172005638214893606690359141334393464619447011310136677009037591914808183491268028095231744448651885615442116391201564685013983971884741712528572489292424204779404632651064226533500416720288630474001500864812265226931092598124259712707452327140179712551021389459518381463978151865971224223898576023110066413332812922846437321283624928852644733268167423708939326220232709979662154890356412474812179328219481586971114409538106613757144443695166949692755643509825462977470443269923458226912929614916195234227445040142776933473680442617480668591807660199943216213059489807914742140566579933033593413456654389229400481489225843515133883406135384004375074235719720306380365610646965881683292502597646214579258405892588025702967686188276334714763361699776075795151585793219494631997431710462359640756886638352984451780040851224025231704105304491366688579063079744325552481348075373287720239058512169205340026480451959772776239012795579689754546988492076527658042154314141594449570949817977996050158207339904354085371548675398505712753657880965684453153355093503121094943180198103136536853328616029210510578495759231666809795952450628112000192064302156396936013208608394554437111020325770222021385138399680196590079170288154209603513038336285032020247296946376050290538020616847016152187579522113661984437858873860741897530864364993489433280753926966625657083427528853907215353135329729723283620652821978445488352324901820423897756455691627896737658263025700483754818118691639432710706765426813219153729380898907567014073660103286372992119935798427039296417907662102173988786772051064783902654656938292509231476389816553609271276980041224529317864999134225672717427117209240163086483717483335353820158711566502412485239909807475887547723921585517922751206036478132359160156564898820310350999805490746087495689893344660437222493264078565111899114711996979820464684397597805648282135287418220307449736564838334615631553220634401839012147351753203496097559563870921090603253358772101985291221541180860127308635369541960885829818922861086936905172452188145944564712365072180185899942843219666748451740304000037001531498937348227290459008364091413343713032722745532120883372001447713119822477494733505479478275596602765964794219646761440238110037381684750136560817220850985674040410289062553955944641501982989764822480253067378040556174167801179009943824020494125230163916638432524350983472406639379245639188232356795966617834935449437660060329977012508941021870918433847398757064609631570757772682458540967018068833014447173650597254806112643895481769622744881902034491761770992940784549917364857635090044349377072449365993165195703200531298686638414560693901962825376760948978259515745043087807659374587437119049756691350114076765787123990929917260405107472767649052039714690955149630628918534911856011245856582386946672636260939270024685605210710879764767679340810136352319613260925047956527431643579628466107749107240753760025016024539955426886160594789124174562161046395669043693699051288144902693874247422789919371034230475116939823402634248630430601467691534846864936699722711798109007249420986166938387136162550611254565725240464267307784036986081199607563961821366026861019030704926834085099154278174702083947374662860499505498876922359651075207650163139893431384237006047378957026867565120751993505029952793857867708219236650816709572330091830654284651582875473424345865226683601989617388766848268407174071581996072019569708515358555172564595844842126266981100866228298816841985170759701322991519750633287501802241249664750414879642706286482875935445152173218010633348342185692660750952263867260536216874426533906235027434145268281464126621181576713074991462663470867055335405198208460243722712300378694252996843909299593344881392948358824015547478396321410733839083613007707993378682023952251191999710803949375063494852573154051909392644072104497175716333441415652204989426958160434888372277512462117708744066061203627203302311474100445595597916299084792838934484373794257430804042262829974589679253391132296479197383436148909062752665421447677191435762289023079106155055783923322589936319611201074951933601905955122922820188357238095852222534318886496113954850863222240352145129595886679724104518868085282541323648421658569444574182958702215436644034554849535802748005115036148779062291009670116985128985261535250844231506346081323425891180313938589264867058939967534058362217282811819684694804377498183267428156540214085855680554069370140634238383439075783429812704564383393192488409848177071275763471673294937661777371200822759214076715523003356724329323962981591917257259031242516819114941648449517139780037779421269701986331704793950479467724495149893920373046874261100593778468473273579508623077261323214679237148909107052049868648846807321393379886080920550809708515633849408994550650466760411645547387657315442612746076630441923512499257569612952067088758208468049375630489768112288422300339193734305534894892243117906423422629546115141945743840808142132589199210748282019332148430939338311103602534324914715136287101060122215919613832177556545703393641027959340416514112730472072930490715945696146452852355257901791213083998590338118011888042078840238140605683585503256719561837496282066723912445080321528676804564259218888360084948507956275777187731116415506958109764257904823754780630453271933657320845545319243180103302312417411604841044343780185861903247659959121369491509726536038025558643210942297607241125120001113328065797746598058754921805164311631854661389388199216463394850430261496934843019556211726340458624544129083084836582329685294617876426579462969870133121056645330936324348895690257281522640620021239852340193307708606262154561463520752099569229675436981306245498809940616876512124258232574492821188982978855687734748804799166033854804543561458285903919244029256705526899085826290333329846059440092166452584695870659375927823645748080304758444308615606773590451458651602881531551518228081086526693498636551314974788736299998695873775610884872249997141119558322288594023530760327591261137968681517111672680559018796097648308635509533379203207304162794720003732904722587608470598028590172612206784360846127015991505734956917067782813430451505587255941552252989330861556049852517616038834032978863301365093329975209319640460333464752115900418655130910287795113131876300421927379079385559869238167744159051044245607207847940615659897719221172950711854423510720279698361960194573355689425132199781024494722672660514423553169313004412871775528002993706486237978678555752084944302187859901446490886372836479901922307804549372578235229963805343630167597875558247798630085789880671847299412556538903304717288308607464067915718868045375197419904527869045514406915719429013740195819583091315685912329817300863532613337392074373378804658913346923149942111690074268089609638588256567443440453639506035809923721752818665751419657841812407138310842831248641816449657686086271877582781010461915725883252385786336231782760368117594289925245998934918040117082856817550835024371435348224434578228424631029575981295224742270657487184335385452820246034198188056359395283886945840872843819242631008398284654508473166263408406843283738093092643866863901795125417421156236568291730101611120204501128189575954770019155056398906606475631546400746557429781224083156832921952498683288364699734414213874295041176763129453607930800371746669174943387541670395484754418466365765548290047657308934037524415783368311721078200746965447994418560151461084255360790488636079227490607525945951720836096028997812326545228902119217260047274119632438771323320742222569749724290746868422268855816113705473713564351581418005398358003988712430716637601678170558437235587890485307521565608899475415856955754725334846494911581482112377905138937104487675347106483006158254214600630168444770902032873206592231184723568276039228961331919241745239743058156546048168223609587033409781878761121396183879059251090474615920632237897086946341991722641767097223350791379072407142254977189839846875357980597054244079450546115445921912976944881888456072943969623851149676375006382497758175588725942741989881264140383179398589246845001074866938792407641940097086265541578065343528483607543844383148437396936511387069024148200571492911441651506770562030691603592440511340876226085228385524448602425787812510334699373212749414197836410337147985800326155579627225541724816770032689530876454159812418925169838478237485282218357101811310793331301535008686803171423088690570816592001554311276631720058683881837942236222357625885049691619166936263719182529385418346471094811671806482795166846951942025938053835687226982594232147066964057366618621035611210278292502234877188157689424246719839775787724485944066819949079249849655909180702027409619547801174080745349927286823128859491833854540317125996691213709123847979775642631070874962985827167142727739259667299648933413565861359856891752089119882999130355552280527046776161648171923848097322026392357291221995917368321596747953504114893349031867432656421692104011182660459291447116513119365347171564902849689714756059818608037251239946736067268492504531293083634498502878148917009258459838283346610495467436020818650675070644415688309413338873355175871586930163147956275815290546312055270263869097216355212807665280781098963108842614329360466077543725539170903443861862419659942733596384001900028292640163455206524128221526540658649741337957162997099582459932485363678066319210737694210899260476294049816067652029605367659301021411663073761663418518559324014913165043786147394345214332646651721634524732359079231796867728694316892644512278325989911326159103780268475605406169705232598509446070779166720255646887695274429384214045437298222848202913047976582024244126821667704412912288884562941792520819449685622887362905925612084166742673956330535920582576948882192508457573546848465805994694078534923246119730364946873434780348961126404052487762831498340137124246656508104077392789487931507698304073133840174710071061137592562163092873786068230793267751184444088398546647858471205647632601216284536704603176879051109563775341053656759098957458650479053162541096800352777820165952128699995535381313617604888941352517852016495979081918101617806197618507296298609630569884643123675413047661350693328603641485801183690565088324158578661217572980141937951295865409590134101552094946932366407405725234921699075544474608165268308501447018752831352534928663165534416166868744009305868387011668790926114379283044310452806864167510325864900600835688521704642447580603466565346949629235028966220478393681500564303132313184014524974981046783372339390961700926277791099486480214730442114486142938999210351562985311308825555210620029605136165526895766172783358153549855275516866574953265850540751477358253447209540588175296477800561080866897997043960225391387504310622150294682359623388845130774732641730233521140617602817248377161769670546307148626354222333224778279349280816164842824552925893552643541990068491263263176674871571225663324840245796626848271179769900120076960546422695154434227845574261042107268293516944714079276735619765949993050007254418353579089183100894344502503195264327199921201438096580863590066441007931061111988952183128462588936072220237628465098087191243269615915202717767654523100549785435722490388668190961690137083486011806360639906878364496244091819273742919346688949101284412968928096254894480414552030701050869247976967180116452048593751435845115235863523568341647126052276519766085341135719429411715769886689805718684005561621341549756007201411689625112123408265166941131048219226685357938402471675635639934680979369530783549694467196832106434526304579887068412930613955589047870126787652387610186103281074660875424574690784290783123617453043855183646994740241846164146609435065975980228997616113704873095369064992860115464147550331898220712901191594064010039982752903781797855588428493028276374305473294684274877841397911637064578009849958699785034446694906106953396906722797354482099176244897746656887773539699192943033171798832722688148897914570262569808557765928364521190470246398512540817300908602587776251792719968699187225027390122494224622797930012135169416894120478201144956953042180139366946529818118869211506425877862228548364668431509162372719945937189716750937095490446846070691459698071750828050093206068198467852677168278137895140136935416690570757591306220755952550376888564411461814124511882966474707219838699527494382934475913612374116518937634762709769923784007559208667668998560885380419637292430554439194772388153074910871215507674683625918299561618745992846510420856489644900290441378713251781232714042969458690433504840614777884776062917584770223790986389270527263516426349633243706298497601888035807737988703079870710763310236273038253937277609598609048042919880475737940013921531446071479677423375794640277687127554890694639762107091529815858458739238224590571100006385846006706808793346780842035225543911452859586321861257283437579742900994607116126817421141575680481362039593362083532688044049980243099483941806715702198354012725613561395666727108626281709445954012716359847269493469191786709169825180609788934002424266465278455359455251956764876551416418541216075087229222286565489336724265825348090125082900873742746420071138418710462000364924597871874787281697541049775767424653189514813827597872131827052280011144516227589018540522677395082521635325555354634233755784614880252254781659997939072319042122820300998906828212372256865115011282990529092175715998003912053530836126765095860027281810483848405038849881441283195251942370440056930753182053978358767286523876431592899676235979394418686753833587712923965765669955637232047121867797207680910593102687982319914595565750883186409342457903655658327882191469526830126179435281158436608244219764367003097897371054795619865910781500992850913231816664454797096490335580987513534900138545528489808148910619452088485553716214461852227990776558042715393306968022830569775916569016109860633477920319272189895365822744793597633456868809540529585254849569473355531706057839331518849892652781894651658723998172854198072906840897408091959838537877280856688269063231928191362093297726569167128889506023652091692776322617332545859357205785760536105467405338879633006304993621434107569604873661365252050602970317462132626128978252898222008915073384344471195344978533327432699155383007973640303639079502494603025249524779188040124750228512559175085270819241936868960323104950869770286633782844772713417292754836190186107041808244088204106669013036714060304196803577313647222272281736088034888825624720104221736197850291354478218409906172502252620021264270776766655758879483944579067551805024082972231821091269325816611257548599345668797904180646177964055222082070269059938696162827076298146667932680098308641533202231015086823640052136884499870475440345644762602806247510000733910702139822191607627040125963403613531517278176112866795165757206106996943917816740998735802409416759505141199316984642568864016574588790927019550996970057322670381757099479312646963870980485971666241642693484136995156637167546373484410472299607678464619010584839512492536840475241779627260989709974430579874970345349578030949266468544610165730045558161223431804007261824481146774336273867497297157434333971682222446889908393089190666228907825351232879313875945924772291362501684323229398565540658440584970857575077438667738090577536299760790779659980596679303684259250410861403406330299155107702212472744121818216880444140185895212728601880627587463057340040085702892452732737087533925133899602212167936263872327300776642856879767146756799805245759104197507061878638395396214661177926998241945556690835729503587517032025170882553616959456180415906182259870935457568912800019788842794713303536166837627792823819833157927197769020642202239657591546943555730284308133004842273149062779496831985158766588400074675731585907926519373258739679082709446093228943473006828086323900053526788271594348445250204798287105444043035324561559026753749982505038098354442883067194367630595671477376640121948354956866532592235879606090014862845037948017799812560266779938778550469328139291174938572960948943862847629871679385901391393521014790395836142133748461266829905366056771445788896603318721882427746500581552235645038775434673105802624583392235838464075950683588334598371771279319581668923835570676836846278694657863543683878414069166797109641965854719043472161738437429272739833649558945246361360647352348905712697061030563950590603097003068199880093823502440143580310356308321942621165014414014429427060693147312670504452148232572410692892760839469455853949482709650953466353574365220140177219670397317768942844653658270015058457838753863026834172576166456536183726991699249042098011705953273214976856037045399530143752677601754948714911023995354883833984586478690295511411858945711953695412145978054682554379240907015011661160537762558895067037450766243348730001131699502691262281336042550204382965950691560202763066912673545692496038155747580163102986350995283575648507614648835817786611626820047777909906187795994707897831563175992802613657158912905332525099811247230516372869361044705016277607872288588090678797605933853601679919027788856890031154874138205157166692063977838943849233337601896659533206853470801398952107653778946252653276057366466272827582111741253244171201669206011700108991926853738454142619647846636896110082158028550478627413700673346780352010316054049582767887043667157163292219452624580490214172684750126274035490346324867940508169581869432256138608193776002595478866382042480597384632949751742907925157747475832004090090634266970905164389265578229680712766704292263427375190829109978451713562003665051216933011560452867841093845080156766173105480285973196245167305171251370532714484884706330500802689846722198132160952979870078353996991881055099503628807279039810369173085843624639269003372964779153278331393166273410900898070277989198498880058580631603645219946540837940945867620218551359700213850005427218128685038718069892799642951760430960297924196501696981833070439373606018920186093526827397854493338773939402571509251424017752500555863429861699684824295231539918616082611515534762693034070664952574907296804197483191952589042815573423076185597746640083085375311855527946634172690315243948533541287782984938596946037568669012724591570098864245183052643685172398904947567785937830705318263874315738865309303897894629021664503182999308797144885999349296368127490171624954142281018904429005435464208524378249215113232553685642246207528196478352058235140289807304234886670136766273684195434089737944237769790652343629230893285642526415236801581732045172666673534971484573517693232846078123278727364547573170666867245936489564843890983335488776065375135663952875417322676628835242580934912812044073472065040806414095709637620516624818057123646694038715883820761856952641918323742807694128603093489516556162704248745556069439143406108543493475916475392709714297555085487229292591855541285496425350863408057034909348116245956891361548372510459977291185371679536024781166841012908654690927759160549422265073597769299026968671502456192572413078695388070033458660246839282988997755201489031814089964794872004847115734523280816875345732526009386164997093261005925219001014190259273349076165817132243731928380669262759924665424968528755641756853637568552915681681399631116964881825475014857593945965168220013433474881402214847313358226900938655788082251515230055343964097723000934317411599967434212550767607171907679853212911488838666158019870740859039420008386761831089285163957667321278732240982835066038406924934965657472884174525356410574332011071503340338631694156888890949010167560153787530984237864875718754871283869935100753777726089283738493691461866151282432621914730621592554027640908282325737709043390470739764379979226643901392795978942880151730860641529246561805498488365669210148729840242776912651183734769555344155036798246447749909196284993635864956342578132276811138479748901378057395407924690231288354951024206912020332206958550846459343317710189326840084802351466214971527858431261279826562213484339158351597033792747198999569476434485549089340138633410990153906779091670259945719747179448504251777119646578303419333089684659754365176610866073105196219797937066329892221525988582991411222215515205449014030281860766687178205809845505538936670480863272840987622054946185944019766172369081645392271032268135046704860057239779531800638497515970786966932412487090789563830671056863672505022166575138436415288197835941810869790834946071434539448053672854600997692924279208499925095623476654955647682698313115530228747993319178316861727022542080131269371771366666962815130039681488564873186381806985687648377415061537817993304818235594060141600209923365317871907089711102389550772199889910666046598346367420242152448993140050395163920990732848143040230327992120715650587992219642445604870179204979375616301224572407302342717808643169304637810165282184149818411712489705713148505119449561336095366380399867833211730790035445420210947571045650098353733943071861555825232140861378473083442049928999898211390061030279664795424828456095328000083171138100222290145309896877860074074618961942401796983653019390704968040315488705716957825102193445441027950229625021815764953060561105274214600211463575257124643385780462817332168757644420201897693076496096521375642579668294767084678580195511220583127232285164770118085208006159328089526750776453153584899690614685794368613922097812709984261614952970000195885186298207195705920648843211709571879096350507204397251668979436107687482865214495803978092295095574216602844060469241665025684863856282835946230157761948106138363709941101835532894201547287385971291200985311178511430218090974676719258572033903401003698217435795852023425806870995406020006234232486667250194833227494007892663311913305811188428363651890983136786151559176547010168506756718088805171277366053678552959993062199368497686580242192095537407029689477429654359644981424093525403423000942662139591127155764167798303873259157557688847423809140777725613608022781412115224884850543453085728759145183292029821442246224093124847728710736202727438064166517535224495872332868553166548592163681417748281550453235235524284045671863971193999506443547393946286366343570805228322136259690658721754672144908342885395718605210819229482690188168922641082063485813849372723472247802821508207124353451111373231365239958012384108531731780228957157195341744000262550743307843505887596408318523752828173768965771656936326553644380894373017703906468566460934676724667105761570143886543053314870794552009137794602254331072417584720151428714177759557009712466429985132266419887369524737136211966438156360703880301623559865489460323559776162437725120191721269120820420250586512165126415601257522882291008747781311712794104795741808338139814401962725294636843557587818044521475078010671304815883646837333550011994250216337866499793103688526379511126802468824329898908248656547041523633838093406993922885690696341294382156630776571951790299749441119620706737406263471055265670357138476691493339727164755964575857213995344862296645462662588175920970546214114286267537921174943212955298037833915142717428087391848864393468595105062071783653664276936128376055071802450421208690092721356560394193201044684911685402402578960383619830737942472853323100290062589830734357855779664559513819015761504249516266483580788870908488195705955885942729605095312193064704412837585572596487583833365772955089854170760878055655287809080856020783957603573747905531215202326827162055560236651039537016736215316764118733008612516491495660739506561953584747075261026352717057724176963286578704040387229568827383196141966251198307331298917790979009189905248768660420389016078054128745332366867281995134652304277095368665066624346571728372748543733539434774025607152623265474841134325723284653802962051777116700721122114867099872874833301025942368428570494425953067271938895798759215167408939761533744254546188817616401278599349790408931064794207601652503881375103245450882767070070932051068383538754569815160009009571045270398277309908057586981756152129798834295485753568422384813639100208613902126799921224165659339810469018985383373734017279614384728602378339481332734028598587594295063067583367536689876597883021874886182981996564203130581011779049005852713008434390272949314484507340178352619584330709496354815206164989203908121826711409250820488626081197310317347201565591298650032868069983617526747496901313039177405272921687919847986461248119300002466698670198388831289190422532146680265218134775884528170675278520347550672264928777604875916147814250942729134019934063315890922917998976929773155612180786898207946131438989232337912520235935819370688033232193102842020332063866133135144350021668698225830681116663351564648433005811003866601951017503664701472194653028622409939780671374518432284087157335090866901994532762590931824380154492163167770303686229833008377439617974726473623771354917561917007669087399109552872393975750252493325141024629871105663045792967290508440950069322837443588018269316385802551622762819057050142289385741777607935742156155997801464131021531180288322680824806021428988313085888111791091099604314219449705061084036785341130995842831111281243843933465205054566058729725481427806216288886078913318093646398854978770651499897310787440881545666453994579794250795804236676953871219001285592412434632746475352802293611739112709083593048459028748705600377982292774659042170724853863242845389402792386544336319683058985469408420193207088950220684055545293663571476787908758657247660754314597567087024143018991928130023550939067036320955558700279587786578584795192684303722489631806949653477115781482847570535008559462702993707352090780269935204684798297311307715055099723608085352962581347757188603623564738000236248625961668771036924771674569180679209042375570441466489813640661434720348471349576572538483960291832178990290707892358752268893997105895250529887249178510216930410740743980127516519759673284660960628281327478628979492947658395212761048236556314229755966097861332642557277953534633036741602895194410702865702107159245070310574938214265025787858421544783733895321131343326010173220650197828715709036882089819173600829140542884974170470614263890007058506994835303461773612672581081176968261336228731174619633955016437761570590281794823480624573365502630038975579336361472989670646303663390605608833136212613597966970243333513366036894523619125921941040898963938662039965487411425411901113039330618014048915282355710874409280532263024984439383344232619768356280599829464322941747259930342349181260183907997276735794252436242576711351774609401035771804250936727199445056014354908507970090797426387457045508458423384921638920421442137000324608415808123158661836881376410593315267353954543445888322407985914396650142903708187698619918854046522280769584686895430224299985722869638643167469560668448980173206229509812981275889418580652065282780741921219985358260307756905250616817890393140761165448669196710035019983540546966611179474568124435835232918947875787174154536569995078726343811785313536014977876747304760990868014111550305953135515533060469294101669769974552259222825226469177501536418474275963962159855622240972541784003171481333568476294413642019793979434308072486051939854950776410148465158522218321022337013516501587236913722172795005014271839073714705528667293455656568036274303638310589487044242342923249152596249909622965130914798739855749794927549567544893053331938103469460908415726935774067176322051142046425444918988871237503525910640896474266066736624792577501285198614950328418016870384023622483971775173644691932401392401785886770037090244794364109455735791535615433653880154794924457066957482657623797135349630794696695538305639302945129473497509426630269316993656342976152207364352904590089090516704978833034643503712111443626844169636943102725749713277734561941350518199749905502763408099343355946483995454267939876924737918875879378847625612640585602981987190277212900153471065024664816858225040534165102832091406130302090541037974220632940972714957679584835679617874589865316539625234683881035967597967692481533343954232138469427339128339352335747255012636077873903266305889489680557176576607088528732566162144609757925287350132456753025646626446896766951449206776551715600205708526259450090828968269629204690915663433564041144359718873601415300300293436216108789240585949321335390839359592186986785554439329273413615333329801310510048558539630923649921649782410440947058562264845384284347078953984041418416839023579947593847849542680603350902556665703071185965002963368446557762064019552784250283845832762278950526969686591118771702197956623654294446706669314671923660487950043131202492335645885678122569510632624182170744452274899991199021741363650142063885675293370475901571366694946145310422199156615909804858293493281415326082132158863431153386708512204296969252854734731406826785894884206419570053530487769611644820333572482625697562137531744351754606918738389829008971368557234771163286413619305733563066838854470329763882344574377738031504347433469072524062473976868485620475270862632269867375645974731524578562743016871784450961599548750589783930616391927656885847921865530943093689940753044616227832364749003297945219050298252961915759573158564835519878202727355146436450960035574528077647812940979400704753887158698686484759878735534587743226352550749481298628025071460481316912752070699629934423523619372045010587630851854505252128133009139176244835181985905291117653442922128004633722780244886975870080211443542907569529290926762380132247248069892404469196887451987194432353710679012412299836459145729532067526817347728351151162946317148568380789514813856504829092128474368757835440909809995136074555502974822617895198000455984200324448693392845931528973731308406978060813595045940565090790020768906837802590137113174564641925178833598503212731781614287975279219490221695933431600323356486005428150204905726196639328060285921500100221603562757525247092503573399182018811730792859022655192409361874207906840648480060279158774156415051587509706184812595511235016706231942540879644199459407236999290227816354885968172014083423394345212472245289400809557278010142878816768690618423416912429956215726094214067834478543746206000459789955860729603489288047647762494784992072543240975176499068386975044298035230096446594161497967435077325358898889578831942189570089882760562111219899375149854156920800917962253993517827482912485277942191720540626677764249415146299916206778542030560172930163727445834238223739869970804895159900768723492077515139336747971346924138096261233698950657394718868721115090296030990283198603481149313765187361659860704202318600913058519262428251741307465008641081889198440417265405055091181499459616528759834159266449638990852741752467580368584491850869844035888181264688641267211333895371809114549614321389147781260660538932348647669032912252787074186600755087782919180382686967401210070074792515288856520371271186848928764656494211803417016821061847872600633598273823893086962733476301928002740607838965913917611673096652642380424450966976640110587705463279667690856360115686415696890418353361926797236658136894655105777820032959416526096434992413127289983738465125875388150390423202449836173691370585613707184030079989787197326519887877412424045836761849197198211830003885769995437210774984470119740175923555474386537541121504971290896162737696005375766435239704810934667710267050209446328178226943136238805087175557643992687687830065389977821324580109688190287384414741041056253669822473286212446564600805307460498841440006846118059621556213327026192147299695302756452091739465252265994789697769634142134140741186423608929503788023074999865654420743723897982866549507671368939975631977459347917240450770592036473296798594288399574202532182789466249625625069735237142708596564361244933713777247818743494190175973946468865061454736943479064383624355968497266861207623442639958586438515792700407337013633459893532305835088248487016501828684070975738578978087082781519457257339752335244870647682787359300078055091571729432415767083758558859618190391126859528420625825315656654451767550067543117201340351870160860172924173789127399484384781632941981357983231752636699853630172735484937508815261301428432055651423346460276956989933207703972609575413142439470830039326790605297354437808856153683951731877552404384440283275659139479958467971744850722559943370899852379103408655958177207163328595884399214374501992818911048661791594026789575949494869523804315610610546917543071995149859714414394077555563404423566696201677284549182652067011011426415595718181084185868654520327197310026855431645187299532353429359171713169589870818687252383207570161997384057684524399244248019429778016668838581740095994136122184235806232162983799060629035407420042018550323044679400852384594824469613484013554815914508338834793635659529657703818030786479727997136125708868725949635689289832670282578032862302444262901308781399565653200520566464951660018487558817252260706097496904284609064903568438051306571042212400175090959051346301689931608451588030731443310829591347075940279156014127560053568995401818252254106677918111739846994096959547540405079437622061909763404282616287305461735545491068675156107554714444366197795805723655308251163888907048375468772634770704912892256727279104762319250403313853060768926578931893246756278536678153296439450322122790510676317166963899220434586742251391451499012603055766452945301984788734447162652759867186339574482953308693427050896936097283682611929185756899921342392739959429273319544195029580492244342754585658888793619614960578917084210568641666790036586055089245437610247367980694733231490869524663631792552232803000538662232344688643858774976202605023615556010191750039857456678505692944983691946139617006940734568151708719380382083431670743298054896100324296684189506422628510317998391362944144031914352134699999870525657099572335908379406836973116674662612890488232552629420689823999505395441808254412761772648782590626294110767860666419639503128039956542674771505839876973400259287786511346472529231712482910693898955822383069070046400302125998025579886192704519661405632375916238426341636443008249443228524045320801006160258115461139933051321958204038777053457481555231163412150726706213535859321671100287310479330086994607932512895264292977974096409091413585059916174633204698917605691960360479089608601353914383349621565967436466573875490126400584851335794979774342030256148658302795276204776093738034999855651914084313571493999023444505027599329999219622310473537720177163153809348714451813889254800918068457363093840714877486618218970059064059336191876428748190057600856926645736004430131835319225656438892814139079526495716669551505137805858405813699793879110032109508974883711286477911569685508325655355109316273773581124797273239387583544127935870516206459828204977117827965939176755863309449463711122646788141156121764990639334706333094556576147899327472895997616730056645255931340956142396473383670561933613503278387830910514807256649979402760838946772517525275854074024410999870409665245063713416495049395619531564827669468713493508171815866185041886352962662031714939233390579382576406501946034106485907187461986290071268021242521596737560778863210159016993842225491404887919856136480061381020816362320446503666428208109734248845709707211652268419231739656067844328863184832756916192255361301456163641148263945476292811581277494088251543544940340838415248434266936002303511548316246032076615305464465480521010202385443064917257106349730965415963244451659873700811947373288005931586172756730769685827198569987245197847134382236169275733108646221452059412593786173708541521284577878032240676982566829685311979898800827949048326022944872415022224722379846199262728342442110876999919444425506922183672200836721292782665081415514100013387096635958094180989466253638660531234153795275366155030920108300788543978461558064537850262345662050365490406906717765777547434585205139884882811179920797882500268111861357312059208630618844008808746188352252023905545467995620032753607143427765117217368986263068525775572085723402625568724359895938548656086141285403766682657459712835647246960577803432573640856624396535054802894108068508905200633425274127458083225814566128890153705167055456908251480356237741219018836339289634370289454719678449945966778222202433600637527912942171888886830511594713030229168375413278915292551262341742400223982326509242600887222276916146507415968652194098943612296621822313391522968886147139727975141550425516520199425558946760800389961705363386245277116962704517584229870634702576003791189318114759076131412903825080949507994300248852300185120221288624075959599811890981441656332802247906829960849881819160267635910827174224725149652414529827615621798941319918353649556358164065887301302685700842569482916624385442617688448657739156653736678515499006303844541203305497232826407990444670829755301614095851363843935875921574057051249028209901801995897616621489650588705176224560646999183120062504736867997053174942791410282400295132411573878582723998285430254759172876519368761207468271569252331407832289114446669122856933339735507748749140115104714539561233197870826145222157037670297811382034866693985868687489443047393682428404208294842172497519692663133933664050781514614754736260760721943111158025906315795993885130980038345036819155810200819768491259296427681343889832324563972654858615667427288330802441539041861232301623643907270941900261966511023256630973581870591459243239612177711298395895224246940188488042395954354682156505171251061672156695157932390891225711413809507810058694509770887759287176050665603385978115284804002748749308746669053451706891249518865201547543724953453889091487060787348527341599286015070713757509039843343336255243174027013699486405861785702649624215891863332659977203544794418068697427757255105123903539776418636820279034250848935751701561372223449417924781982776047270593598798002424877738644175816595359407460156576423622353082276464402307360720329958688738730685973648863415397042801584289836817006573405298231954661830275198827857759443978389645032592582849816776106388567250416477202296732324900380497537643084531349225054708282456373623567579785018400212439248587734080208176628644871398929976478437025232026796074952322348622232701535389938777057458118963894534639628409108926034938287066490948438176839972246205959910086206273515281104458260661291549207563266867288375776666990330043534767939930088738732800432488826229977475099875144017219383355177593190216259806385321978587888056053941360115356582972833740605933236532785492922053681875311939959616802122262449179092615117361941361853559876264859252558023779985025010556222191896997150071215598493357757908541601400068095531734162925608693932186187334876152307835782191829383346844458763462371316990896470016470496100874945243205053961334533192374700869993235834667335842966601493213400583345183093149332642367555896796162347618177374461783957255767860905558873281531636338508218111073002568932870206020910564958603337127301401853535282498011912951770746438114541327786054212433534341256132690599523969459080494264882276001851466218149448515457683046451289984200618528207035645860116600518070591249411954034244277982448641211407606230831792284051028816646810590729122445964108377142596226666171167204040860913707941394249451969282090199988085293496586057904899293581553271328575728659404308211209708361007916459619049016315372934178311136522885916049939205793314763555941564026856780403862099213822366143748016553835035157229020396282989491207579186461645863041726084406834010570475440475739989037572217349251463407352316666323183902298332108868489726263617830386456568933352280932015269008871561098151744191369150523088440083920197462018794668615340149854953911908986146660340546519650819663576327576159358819775110333656393928883569816898066004910409372603204767236873169599757747826152696057018036684744083932954321091411895458887384114977702483599474710583508654590380056204465872334502004995231308562275553826065012265420042176643146435655500094432599037543720181680171465260917879009388904124141866876151184845690161488605350603965960372847754658465556239423156059219751183798868970692824920020717990589486906182729945498126084067326784970015145648753992727681481454856981321152603544544993345338483115934147501422659581237712787751850997751720120346730316708558408771902983097969531325169739079489940379028548600457373894298012980644553409861517561927590822640536549498197471897745709530266677971984551494202520837514427580659125306369712097020395209246511930580819226370152472672600041867613691348124191299383174350302361681657086929521147728267500060672993741358176863035635344942135999952815574852460958138909852881679391200802879792551392515242091424804481757355152713946832609574810808863696560905391223659210881275729314866659321277920432528732321458354747854448412699373111666410494201699431986810631449094981337683516136039378340522147245446591814173636054146786703456878865813883233215556927318217743377034168940174494543250085871884478671230132441528201187956777888899926780303375820419883739390256106576372083968029864771810971554461996069982172742741441283335966965674048310029212005003653775870208955423331891364221345873200435195723178355007021696982501408152545166864681484048730108513972562937918108676830344464244668056728524942289883048642983801042657030897552128864215835286338072298106462329127542473316894443199243919577934411739298912813200905593845876140656967401410899066345970192596054551183653413914119767497713840479531295600054706387430834470732510037831147223333585351477452298196094126074000626180037411679364147677233186729762375407132316485291108716888390194977247097455389654829419407544136892125596085836256998217245028865258929401650299859613907103717120592850799559652940184278400927409228304713621593404346373800129601837508060417816248361177414219087371817834794846590105471345269338256919689738357427499474348015676185217993913023246307829141381537342962686108787074280577463989271754275490091642870538836390779315091845403324109351944198133462474093502379454925925571023014667657102873305587635183938276334815919120373680814838715582677329271911391085924326261825534608231374583641452433867813478307582882860521093987854249700498375053062489417650659602749135609662515999749877357928833765131153267420325669021222951934203467159847631608301682710416564312749197818858423137877081076570346920089699801907849584234894174825325000970723767437946988221328274113349386240707642261351785690164167051983214231082365130373040950101430169043339124971749674086744557493462402964018441507880154366571427435959734403191386209965031131908748860569570824911203330586696383287760157724554445272479573971193875166795799887968370138460373551791463106687880013899486261211079578156729848589792829525462873089726971600796801988369273869700281550341896614963772094534807826483461114795732221834434508799032196253581688709387542740932880637323633524704355220433060689880597769491855066274087904132251661716089269041772217204589055372466441924830702380752987402800949926669787103242417918187140321012482991513504426197333608924581523088737285829969320461176374173350100808760291511629779923613404445601128638689569739363775996786134354626946569746071295691990745363776454604601498482428527045912846148493062362733949919159649553504516178928949598243580832641978843701187229233155730823860390259466365569957612786356152033356813114884587222251685101904146782187263155928115581644924701603462544228600412321405717136322605395937567986869585780728158613774409604084253038637839388529264701219550110818803462350706587823881096557776211676416817110699795154668932487459076280327768914748130596424623183022994349842370838003771011096620723438241589586799604589220308649207706342518812832481794334775355921756493169857817881242282104680430420848257577956272307540752804541103625009082978661391867090648010662582975610115178538458378657232476946858942950333369687667139173589089171850389484245814403699318739257817282912121061275885514644998571372929323910225895204900177772638347401893252328625452721075284357726957682570438678755877748852511557392813724371046451107225340217739575859544757618609827759921982637961786056453904308596957092950273269955639358147776509696654632453994471234037079419370635731744202234013738792337150820863157852748995124863190252004493904206235114895134862777961036333243360265484889140232541368397723043706635545998148618447242702838739916512403041723980543225894836314969320843693719554367937937328494334299016462344273666637910278124453712510143055031782434105022100772892817217590656826268884092597092127485468052211865483709285785611963241065057522353372511294149911799043764975872853479763166450760893475853781733543196635524182276886778409304016691656865061551722732783590970574691989424724392893733631418255968884362344831636382344847467056158288417725367002450834610520987642788799524298403238588852889586704564379999594393684882049508161340909261514181923918780773442620239672023229739960710525114403393439179657144738400097522958879407767377612904676843495815434803173694297171129607446933723799645920065422676772036210884347179810755169729404085415454570265073120353636033427072690286933135363198127201611477459509288363811847120100983049883854478825160408652894946895585542097164035548409038135005470179108807108179177846588301545876627044606120876171725001606575027192710864598805190459284863494920997740158559822319150465235505060637957483878042450674101692257151899594541240276534497333886515937567588961813584444223984061793689462821639547643306700678152269729203229241087688057322788981902242074566296619309418615140644245454420215014752043945293409157202532134004863304021510395075877736790871062297832504857739068909326496152592909867262855890508257070601212156815322847906797213686947854264766858805120874903257549983001212793062516180475853695503857586848418348432422764057164566713058869663783054968207806304487742302601354373827193366891609981822362534436964825642604726535598517692548651152826420862050362664437900510344395034246781803462932697767303399220231025684401846239890849273953716917102191315026404381955881972065169589325387314666699654039539401006428880570524089600372418541313798801324899575155183499002033797299481999788269842218979389494878310644176283624978173303311036637427861764412933359766719999026953415006221348492922626586300690119598981521819451420344032993743582172358034497210693760310322634627257171093831992755394807224816421355386662719502014369566151673630682889533706559645924621136181524723564078658946634465061520976356309089726828585171968306607661288181373201164766504281254589674041522457196595597982391040219312018204824890028361168705600659234900438041784659362931727944763069818901622789527227059274602875439007634711794307091010469996051769850653194701737559135148591626228235292676323470302279826229173731766960040446310896034032903130445767595011138658627661936083141273179055095097677505567599924408567226424097757825024886276069734131847651279333990823835034377321315139644379820892363252845232394082671570902473500237196715545785868699940309953538651320970521625038901973443810277222757795643253948797023142465295536164187186496526060790658997307141027001573883018549512629294197313733428203277071341245704877819362631267898814766292362198216474476680378666208504648627983213008274708889809454409370195718877919595406584072323133738985139973407885596052963887159867578030317829270107755122847555135325115636119621284915549005530473396074735782095602316743275573315681269281445081442173090405710457025386535606490807708947909124870060434605841300870904741533562564009950343284382358669615972123068311612114483930929991834209281026918915795557041955037918111532222186100737032801634634504546930843022141111362645478751292063508873818294238981000649215213392325177816101553113340975595549813205146453621227348471315819956619332172521607777490891102968208811742947985271044867478205012297154100762654084492842420401679394398767298761676939151978035798759193960978654396167148203106021048037183881317852391509852726280767666136031740719662831750123005428341445636380997992502250686805543064519998465006990197637594530521723599723718374264105559296394963687581976881273241081571025618481239792899460196322092333278585303604480176053398012941738040168395127636174313102452202180601609382983615733105201324387715739825296127065174951428653345808487901210963276886232795864480618545182831143012558001072294027555259472906023097735434712573471000798654297052188472030071180660861004126174447614189549177746410610880835697133110113088362684294602656001404535648062004416785597112590773723299684026585526077155298546369881348348786757683183362949768478401404276500471467769172574733304868614655483627302145643819024368509517850469414545998553904381032035000812747208308516195983201990905237366504740763704357152203668667834897636026571847813602679492465378347296036658598985329283953237056804042457810435600983854410877208895023555327748551074676845021953539019470819584741160675780287996573855675802434919369370835197778079864931454002201189884785860184917539903712176966761041896218518010918326514111368260550989477867628795467238696237215267581398238068690216396554205352628496607421854289550299043029041794065977636108124099087073794855400666385334424929004721795783830824676482859785256603237246129951115674535521747682709004483272147234677001587258725324411616455046560753118505679017928944977169905051241561333190480382808978368383816533017666529291011646900372204545447280459365459373415418039175019086952482282417456095294029494072610423579026848774223937529580670045374844749449516299108014786441716373804383105256590719138157778619682868359836174365277155231134053578011364543420122792829972568845733269412439726478274945431379180947498174838215009499679505958141046187522433995707076417202562339618359391362549881260350152700218794347903152507825077657138914158772512240291957916339990955343234023372251511375673813218460750216139788808044122378521982081943138184565602503508633456360942349371003184494207144683807173240887337502946257101265274050785035886998612447001435260526174814817224310775078179648680139105783791338231657701747998427009066450160627032165792741509003144352571553975628459662386442783603308858498834493395955052712895681651183449732211112062279476410876269557835969699711297397166875639562141255491900173142505332891019726693634626147334276485385037511059320999951213339977411616624417947914992831072327016093258675769185945154174174442282292993858263747718414105518674397538909908831525846123805714846895128060120440967695790279213135340279480423196939611792548631707865474332828443793493352837104420166456384597309278356041889855754262778559481007532866299163095046205185000459514683537368391304541271858508947314053495602347972884652059830784275202632325594086025030758303734365915990997288853531068049792458613806438593467401848257464438551340327362817424689206444909554537041491319814750843309885674458917662033323958719711816820339604830280039175418972657948449374667701735981721606372525686483571538297757274555866379596299486206923205109984078850661748805620338404242158388511021237549969156965667155071124442047121227959256908708151773781532559480118524601126317359519665796455010025616084175693840088316825538691033277447050443602853681518997387989321512738644414524097147335816786423007978492830982294709917007724605915580594684741694745455301542586294475664575295244242067263602130441284737327561596415199896465848112268146888052122829232171290043247832897186429041144206702812694247912782735083382236369391188563340369890290278299807251081064059765433546050931182678377642344119562927706582103094591050687902090941021210322714619817250226492775118783459119852679477797623443201447809867934416847983293620339298221747474747481079184238931773166679378325063770957315947314469731632459085604174646854825517336834712708457056922727579720318036274366794211199238317660741214089587059754525518814998362284128848757019719310240747705161091172183265250266795688235077136618457427985779585430919550000112359120495647368556859820831066225258673630938366566174122136241325129174476086245379524404869716129196318248832914225198865953733319359821936093351769215997225100577317820049144152265197256255776988613064430311599730703852831934945671184974276669658622982374141464700429570217328697045197214857224391832476676867615414058763574733259995700711888111192239230284035055044219953161569495369944657804448641292558814803106141059733334144255216908122636276810076887426328899012173043540253697379600376333881602083297318343139660556696676696216192592966705469051765718527511034336098135175643323467662121900095907943261289139913165303949821422925496470002869516186058536088661780592447149830711613648065712258140191302643443653285545322354495240062801165655827152820668641469250942884862994364692182156037285733435861122695113238456426401409406957697301741450317232082017159816031925716245107173260310726659421709915571480851017335028356378817711369058968264848167473218677553068725134159429824698474949723308890439684540084666938642747641158176731238988092417159817782784455475338674851352920499931381564417624875550272478837823689972524927308070312847421899504376040761720032453787868172275866565801226912382492317329272187601446253387246760659433863838713902035513821964223953474486636890718399194616985233349156326403264979709047464808096604204368902613863754559083522421095108655749185858695099929303342750692466655171132157891687882367443879360634484813988462524563887003666476554971862793035037615683184597451515636028864979317926562786787444241884887354634837835739444568608576186531591422291833051581324877490439506253227050150346287904596793173811765951997778971000229439800888908329204059460147806914168791097644889651065157659007187417016491524843660293408712630337620716116794588261862374850543448424081161551669149475655914899337168554733799119817863371664534177188528166430452379449136633167765374202065547943197337797541803214040520090349406340208703656215696546785870325062762414733383967893328185508270665081949378885215486583204490554342035797621236907242017128521464927397410337058632425886691354329845091907502940821151802080154642129324300305900971373028653392577348997532935847910496379457346507658224458231459350396947470359930089211621427682224326997484460161442696741922014929720395117039981691999094532037721588287624932424769552992162585749634594213122940919120521231935487340754943271055701199139144942673669242031510870968280870002773630846919509487355519022057924687212563625550693080266975758665395523940292620262688766832522243315900389247813080058442645880850030172099423924366828104027228307964294582078009543921555509688234603888647157405599836413954244694561291720665029646806110044302584982011088703655592462874827510120597234071627810565652880927688974773206995787227220295203506948738085872868655455243463928231952974545337435018660436576206874016720955395613478508166345735976414999852474349190937294294370712691089078715908829291120694726572774525610377512420943061868949211530500460005179739993588528301739604171112807924983752982925691468761391354966184705683688327749630456370235427555159204855368762026541556017897825273290300344270213582020126549584957294450371049128325842098508595265719658025464182020353758912983601030618870805803878237040653725217492155189467922525362501764205514489480216088646780546126893098712076905608689792554153719762987328260167215773305118509765677258418694716146187436447862354586714779496941708275380601283975934360635229461906142527312421955050499842351204932687322138704983468691618646749755900676776848108733844781990856014636578083614267958449593331111354311641796692288418984368732175855192615307859097013890560681177345004460524216156887605482017064537460563696359370055274535575094543849260650286259624763483767657200734489415789838344110904076360800597845632444965148960577222233485927853108384704413842440499995253456454412569059809839919487704877712434598738555752282766721742013943919470099869722401624376792703508870967263988950214946056280586747698807355992751435330419672739490375767621222167313572093952962003368167648677817890030566725499051118343670013695790176165524209538863580381458964816144607531544666766809567618589426136150113463324959379871614502423511678903447852183530143522788338809780224102747791642645916081296720334493268787899742102124058028730185208688519610221958598599462674013825305493947687672321899415109497814755961933235881238776509425475206679004959689225262755967101939716942622724674129166996148561087721838866154050080970550252812532465499393577250126831345514960708005148931614268234078602213187409155825386546424879625273193401515829746264039528829070028565709167904611214794229232896064375389639497041154977458950430066598697516972086941513816154985543396618176949500704839362465534414046320708878936708893925729733155986032283323184227900991578428143614766985821309831605447272953238497263595113109615541439338373312333067478041485079771702434129890568164984770031373647433303528300154829698463904947296034249617470850414312584745021529887940963113191530246608249128796759376072756075555246946070357490269202514526632451980212804891371616953362439513220630070332288227497711647732329891942241005445440421549828895445389837421907762760460011191621230731056027507262846532931135143169485222476292322251356451165469450837068420532405740288299180740517409324728935186541329728202076392521861524098976210636176581530138929577126756317572433248107077563934707081639239150041000001380094337390662177885029523646388285435022539746651370299114337656987314767835264073935825350825898076204036976963173536639064398813328022219166900443231031656044044571643886020967982804861904974803007951168411554755585410787071710578791933445524443809849300750761156119724502262770928170809543371363118347506866664670386569416341693044061210397659578474038639744473449045450973532146448717718576084874021923529702093447917248191335470565716968399240345565303454084560811324838689765628374843316906042175738258772534836025087615453893212019302744276837927024456588530652221086590537148128066288764813839138616183164647336755318028697782244584345241991147151891424495529825588862756486759683606466933236691353774607442616288117088824120579154905209200998176442018095337016344124417680359693303708151945841981919896645054904431874204083379699426447500951270337811772529450100617549885923743506979743513222830934944125473604620991909639117392948471661647373661284924484210449973532222343463482341400224127037181767062587315263446484941830713677414571997795521924645968931436336781821456669413340360954264891160409603206331887724047798285416918047908971715190744894071748196204425865887988770524028708691464285771107686782505921828596970079642602475269506802582703101415188765509715042974698025571925412179063542962616286626643347230219276434159062490544298566162378302270807493037361169307185633663676333536232790722843239942832199706122306751310686918316699741965807967392043982797542778486062078024529531164700921423973607482918933067700182048294890297398526980022064914626249077443701494860998372202870684710351947547890434181287294165094867909769769512629059816177554107783113033835103353465236747077062871747049747261018428487966546035716166747270422664625436978808061735467924072826045910804985597496875162535013904443837943142454542370465784073988754680645065307551317728689500165233063041615144136105290157071253483575134217600294762971013763316445727907215139488823134393782151804435581556768265174706279434301364197937894631863713065009671163926569797800146421560770702345299122399391178261359374259031941167396405797917555038993083894535431115574318639833289209292771619265412708236509494515323370052106317693525803084420502146798151284653950065528420188659660778370171051834579918173716724547642470783906548952390088929856813074095341807875422162973249366039072820493614081028717169264999875757572350656872531973735062126147679101698715428285225241744880164080726426990703138002243552373319519993793536898428963423633856475201163002464242164440823591891227330474553668509031199175247063906297002184479712250725805688179412413286937287941016856727132635613191026226733961382509353272436816666256972611976948523674375613353393484447262372740152746408833117064653969990149415900160571055457380638478915401844055050187484175067215352090049899875971406120416665034188223999893786839966406741066964189010611559256954806232381395376537500218468268887774435258416106017678934623281416985102524115311816589563781836032357868454532213330228080847015085149140214502431502942507172187807872236320936133106744921085234680574406885981368929029022289051590686766686779411894847823525282256902514300708813568120944539438157256088302122538607942425610068719152878301346407381506667888364526286890358252791421808637307812091997908644753631010689896880064339803699389994829683181262725158583270591982775692818331825778370478301537743103781260524797720244556336048018695997065939961705519909382732137666878497440090969940022851043484099264253354662339315633238277319068543116413016510388394069524616224376529568751303927480278775341815927530602665693457675084421552881833684189547026046249524257136257274822679939313463099893875554096986574272475449629810674150402049934102480045795295082688753071258435101527694873164260510190727855636032923450327955432507840945131990657783712193919154571800614485642726255627551247842276885518539610867620782097277670553078129071130531643363107930853810568776346820946592753126562688503243650719160076425248213877597492784257056586014165405810238947116494771194649797901077195849340506199593095121606008257723475545877468385308231755976569731511789670924478936388247623138574874636319054423661664746468479728580087715649964308689816934979420372950095818764355072368423584900729188914002164706382180895579530698299457269796984257860408556556918362857645979111478733949172183220935363730033513907287932739349215440597987281038517938844925285623551494075048696337300009333160010415317312060079815869796791925903058524668943313848449241968452491654629416004697935572946298159938947676012014359148056869783478195466711607574278331488039437863255837636206781464987451813383835931602019381698457388334677463341816324000762425567257016545211817332298170132808669024504078703166230360799025058251897271112190802491206897779787613353396846618469999800917331491907504843804124884887257811012150235846988118433547233929839768364878769747486790872923739196988160740172913088883760518444120362930476170339477336945585226327843337299619383912375936703627341028867572817361889246530983118377491167590425919465517465590913016620241355759407745577143041893309668127500388347007262556743360137808669417736105525400082223228460683153971669142412975250688943895467943170019590137626406217225517893441678248715481833672626208030704992609444345320274646737214642768143555899721449982996149020728731130760610333182691061138759124904380702545655953523377646765372518634887541669662886655868910863889839599582201459980835692294047223160493905674618366276687044607243164845987987874168816636110619711461915699310636443042057872951501261729824486524448218473558454211227153286054001358605854621296120490552125900348529420031984487939197896711485305930214047393944066550568636686554014347089775809810270264417832379094131251561033596813455562771724165835015878721701106664978891726733035201761163702666249365442584511997096607860511384867681393251490648205103972378732350798589919579507397818342435445146412609275437751301754391293782896218281593495289202036238876742238623435829694733801210184999570044253661764950421427962591326405519953435967583515305747236892522202327891338823711352378886662435930662132304370287452083386923234112069168688666483662995241316960209003740847702152722455360249689389727328947148257975062282923387749767526478494679063034290505962173844142103583272462934644213318310683813618915505958038453263721638777831657842225917385803523710528858484923241332202379860495689957201495136563575300727420790108257261898691330844960072576594534626638868139243410990577409087664695381846830671532016404685570452473506663566406810381432952797614306388875557784536172879074898882483452328945458226419015090905116105164783651104456108960246917938598345208808090916275211192990136108014145855507559255623388129419462440698312855265970101265327281215124916045375483013531924154457113779265519429791241500484402639358837932116877724779752881256626975639108703112271011567588387287048899982737786164746122802197953447825895010579843345330292531679268544907471005762375106753903851464570484258445793638973286478207134661791429007098805058109254188216790375218504977517868014171469169732536081292619272902547566145111405843302347075038045332942184282736839273524673884853355275682600065276645741526231953347440464973073234108542281997520017089650267209932117645311606657454975282133766114124420612348470818535746684117230307926012164375827965919083351139561374019370201101089108129740932798182977833790981289274537360058656922692558560329563698669723363382950586214603829240034598998623472276957815601743758244183575708863042328939526812837675769861332051551420823795245072940650955485428340665782402091404176542515412882829412310718462417657035635516349654313296614552974718469028310836539397817232272073093629474647313540171622502472545701626383088024443185488703269199833425846221716042000733178052768397887236233308770691314155796382059608192979946652787274837810995090502440477490307037888568603242582708508861036391551866201991159096951063622108068618445021305276225795557846413754758495491574461223102954086412642265139792815269388038755328214393999102980457533345719961834403190619466252994350267808179771972428029988175609869226051660936639740661824380559125292150155200125062122466153487557754317155587408995410245568206917842779569847020778613702390299567780519663758984310960623273830045450332931058607684174186415451535470408428668765962826733415762752720924470204524060664071167804096414034230058815567070132479033322436800574759220072356104233695036052154229837481294355804382835456952630123889929615290036827781093118304638718686104180257447778488928763662387540117472621811337718820051457243017008271886851194745516281226559529188267733393144002689980562641813926148182148375245783127081501142158835228987253370256867289414685697666570902756189580567839738979386385189957267492275969115348773441522814638064054450760868435385537743592479550511963206725698906950041449729639921797632241842133255595799236487876675398561444819050889474723444555130719983184555939923407067053480725057517082864890902460338857090448110076603147938858701577427780405630336579045429759303149906322776654066473405069619654823038277760526335593938768220788862942739010093705671106249021778978767002884605556909568879989315942778063157946118139371372456932815407585281667894668159663266808065137328151984491349350313080308129686661671808239434941705744987421028665584733544173292785208005424092171063205347181359968256746485904138932704579704003678071543140565697793102208819801779955561353721542396785204097480709742845456192320124698296048582673422524439898978843264247767815126554592180504485395267253026779255339095207647286549495591047114457571116811150858852196525389269314196268332744239701309742132565058790296692036204033914573056125630277917256612277894278959235609255428003634914502370045800756669707658459174895910451394799656280396862935186853365383244507559484089828809267630484341948441526377197772518340683004106318113355279755981590754922307945286785459381368567185112624724295978460425557496569997602328228454460495911351444378767062265261796292896988721483782769296595956378839815918515501559424475375892367522386226393439998434920499329934120641201583850011434195971836100936833047478950857022137949779723083790422455092260613810447460146075844495456954352893775683083775895216137542665833471400294516553877639613049750697697968041552116371557078032261925206456449133862491877333943986899457371137213593647924965281936270175047691718468500912278065474276117027627656154104895260913940260205186672264928071996531724765698944702629912766578015846384535295456397791703722802694696601323689408981624465080871462417211676375068380141853691844635206818418015157141936394735834842737948392995716019149863308497668747180110219704445896041560998785898611608168453001965141068196405228326647479226399670856194982292851270675547527998284951812333570453199910472350259341453586443087720814283409313372208875425834988014708978587913735301575628113004260403738860942294665678884950944799694876247231081275796632556083522559915080808420577182023814736178679976372671556883666479806767355837435491042977062126830290605297657263076568929914909311046919821324822330412631143023768855503012186534821934003068684569189609514398364230899098355858999374228192376680124730038990499747099519537589191774624960925950458111287737224576250602210206851547349647671129976270872111401775897382346240047363348454490857394257875043010362717681071202944639429841155165998040849615735636741199156474614994394513555282840903662877367348034507138852194397468303805283573418973446704749000263789808703885031499696719232284675218912905761445638875450395160446404786052219541716730990192434852221667615367092737426537072559578039198710806219359724636574677074407233250053248936759874860288011994674007455012583183449294158413263396239168022431290179054499753315003394109816517129828458539889602635674983010419538890351032173137156659740742695899739143522660058509226427257943674310724311948229764139846135526860358761462804135190512500760830975447567631060892945815452162265668496625324611645122898052830036274828441058811112191408125344983477005455896564478246829595343550474077528633091336602186200023659732864492439989089034560719510963520733628926476791244425559510847689484773956170414163239661443030857510427047504478564273570097992424711759277992978528201054007812781921046748616975434204864967613551414427717693071844141257178055204396008944273605178923237714405910093479786508919916424792471780078455037033582189848923337472415624359672786493878287786248497081674708256087328458527747786425929641886573057797524867164347717553488707318207136407987060351490181480456573404219964611841232646548293609123002980154637999388190853163324978779410587024002731760713209405029438957862231782172934752171042335427970177457916592438634144488414567049052392889938780667124689760213146429089459305705145615438827517965418929043858104525573057696589012226872367849701321219539000561726327873152176395901777600161149447752995137694780529232479857688635384380187629839863901549269416916980742014871587289504746790930907168352881349069786204157778811042158126170920224373505853855466153858154237809381380000820748639315512984207580025934780695364303312346839243525429483168324388675165959428640995070665573923419760199312328532981881238076637022719595998303103379682666718723807168573788921857472662515165353127631297016466279414720141982520576971063415996575724279746140758600463763680495747466954451482925516523710002112605247129472472340543560229623728595795489390856110178178157243081936043553324541170515457924708044846779456250700578914763244272901775510797820495117002461463864448225589510747026957313168024813551515118709445381686933272622965546621165160047662601368436051676049459870797571735845580178112267502061303665482582404498193326706007828621479399413431187537606179822667840475595259118722229282290555447319901783543508601549244424883820634279768058701981730422119306807506555338273187900278024967303651382701387190550583554422124699905574336854797630534297911384662402730895197447048414865269272341091643048514778280189533974119421388346687553188134178264171783724093721746353770593411151305205721595512862717683781549717769210765323856786098222474427549534580780987731803925834093053178714035080356570163137224054198468805469274720980359212760825128200678711073439359913405159055345866008869586897549871866392528877695612174968803172116991085474523115384944978820408324276035432317431028922030576519694339206969517172502505254491172556396050719924609098713977475839059744189266796379028190375942028654690537883457332148208777485914063080908339963833493829014896368977794491010191082380551325166896124977650711260200770404936845500455731230092912082116361513607463531238943409940484630766319692066112408305721782972759256386658470055060070779503566422859957254730837564710336060459727239758431985448354251352466214046823895770118474062225888270596414341544214303715531153083343437861902214783172940101992271694613952125394705182168614240615300126630398513468797649419174171889957175480229860134542522468392910017603238299967398829484249995783055613793349895607544117261029211062740441953266327752198725583608456565592894446361428961870591294268951870883835933520137476324668396846586044302929712192405011099544813655202277121312633059524000391167746135446719336645688481191574933610849104904695260525653867406579663733708266360812945695837401301836671030225104035594615462959892328114616693229329485818943978985737062937387868384484240869974265137719907899285875946118617345331976731665367658480978157401496289124224928670950387973657788240955577306500883452364984771063039272139828262714305460303674613956237543236144617118314342075025572307684500110547224873917975374771029902283348861022803302798975987783026067144049531619429125087633086288356381728809796377451901832350819407840650062308653261037277248752690588671891688247218075741889545710697734234801268100315611934537428586663496905210625988421222513547849153890654046358459870016655666834830688459192354508183216691120295988960544434842871578470067213147861241295682208537733996227934789277903547722053446329323539105448502365418969693898965206798641131076080254449946920054270916337142490747513797805286372815100454931634004088930979114809408270989820022492116958485679151787542603518781001443315677400471075970773772387965411364097156686778003071208740515236677974039419315596033214760715988174386036914741549778552609250251685793841323774184927395292808650461529514041627233094143752632462200586455363045784601951633643319549716022996363407003322091255646306151744883454194728107956418182895769119423738338630843869768376106925061422113013753220868189618715683127022179263327664184930807741462727814005700256363857081392412210605009166944748810139827312545286206123038371240518213014982724548859969316802404213299895381107087321251772516678719556895236166293972160595432026264299328407078365300274400974404335886562012953026078214483193488943722936429358573668429609131054206677384332043278662859637042492891636370692643259691472636884625897079598115423522983412194565776597810605738992061315382655105342021695215738899682026250051053340940687560335697579390436184736473919920362079693549036030055347468484235871154238320622966684837776882916143751266670707293113443668318897967091339573565892643636549609677618656692729639093283974920222222554508604842212168828046308064614371323065330606343455975853230759043579271202336932780008060221898808136705515540776301285664111395497360492394852819971700155613088593297577384881348670705600556228549321000606075118961621407399399849262176121625696667202664780669970549703694731052225914162304372740418878152832622650160589431111391076868723210436269518439987623837133040615043100765439468827346549502602265443902293427394995932278719828765183475813020006738187487408027684105764421673796515771853339538938841978028715691124659533906439304215787216087062246585534476286579438744928347574848413572990104005850117303650735243601342414755868051310058570235338252614092940486561470675311573635311297855418500452593812315724796411364216331729735813334763306593853141908420616332564176807116159852825592379957325398865945639394992957145514001505451008705924978277641413773983904342552556788717149075881692087501559719694814667156685551466227225870814284972837577877813075139182925564024071961705670147116375980079761162003187205781764301208649884380806635328577027884786421810903012905169569416224306664594906170977311490655788626226308828799081695227497053486221813600569844962492588116680190940387889389188937684559134099299111988992969871723373883508761724913830444954570652611540558545031003318115727613129939557105988820497869040126225536791514501016305193654009319971345597994514818137910082932413526749321096225954800927848743560894719717393770504943418675268376266571465319078240858253222364113113199836355596935096079468057421662803158343843116548345086868971944257770803574610040753760428369877910751415075471093064178838358285557855967121666224191363032748584481732463576126372011138107507974194354806107350957284541753082324975046779225241939247988366565308603389857691241112878431143322754351879280067073696196612823761811880445808301967387486047214115018906406499011676003906772989894942629349595272371160216095576368323086164692764312020766069688329824525863024219052411966053638675827683140241892410929706583179815691180241717526966828222011155875161889026940766722461576173192892966613960219195684786359861472882705742547778344843906763740388573646913132106897940190753717699133648617489586535678536926731515276013995227605531744876810973367348205928618830117962857326144053424788717149684783068438980169546741148836922385781039318884344286479647622607282151136403560277968121367641941484159801027995792808206422121040197832531939272735269386949082591993624621478439007259086536488217237309867358225426031121433021271263009553401527148969610186145032243554573448560512503834449710531183312605320031786721370229872658703391087958524147823724434967343409260604603827499318405616408705247365517975766475730560637965949007361929810183336440427552562557902378756487188644155723589461548322901846129134888218543431641807502217021432506520079048742626727615522715577891461165218860177057201343262884526403509283748365544151318983059726031170668099034172921530624271365772972737950970785920063459288128582326363923957914485080118983940407692696753922184841652442683859311002162846695689072532549974680378086479514148450160422548332566854130068410695736106645607377518606352124986942534272548849304575859804303959416092321313453625644715069996871199103322262897348107746942581041188677156514123430490232749477392228981213717381319516216484710975180627304451911017613313656927954302578760661913508748983144204601332283613405662623835717651568055592419760426155021062682972916787788542394317764113863574544351671378979512974379453601301983462819792240859933032105229862424020552293499392522038967185725820084514329605243136183706707605345135771573718142565199304098538742287768518480381209836330451693835242698145680142799474299622091922963941845266530241106605134820763512091386492782416448731863303378986411633494133772247604338101598998291840298491894887081949202575615688247700595808552837492345259597534085624606810712388798405216206859700910825547633091729730821599794936258003044576736696290082690230924922306830090948345679403995919745279908726691226346122980555550575516826423356271746835243075140326862341307847596247771170699654811079297217161136652554309880450827266317860305717315986813715233243309462790601416189635166405446766660681804557150766623802131271743971458930123699482053870553210110815472129915835296465759631366944981030503982459958309206990883384730943886022897546330536899122044768241863936074155674677605110184229119401063847535947551080984494018591958569235995391442934032210779340667787977433636479928481090589999528995697725318691758900748343234292063067151016498530551189231352029740210204902789015122237493984255698008534118316260413821404277737504271568032103018273163584733938095557756597286000885659253345863205904469453027309927394966261111812285222752000509861531383309789413367017840736688130375100592990187091614095237551263378706389461667974798015806011520239418140472419041772997460236908197408977383844890421929577992357689762070877721856468385370953726706888353842096971835007336469613642008228653054066227833670463708869394388022097692722635709219665148380584543927397145441325913956882958860844019834637722929626383862281073232893354851166535902672065769457791263190634776712156005117026262231378595707672851775055009557317075984652859520461046497622607129929724473638944336060294131804302985276570867807693898785206962934114281587985526937930089245362870719814205366048266576165558034153509956355595158682356512183138189539072886299595246073255491566803174559879328328204336145529775060236969336285617777293191046542686456056482633981404925774000152746742140079706636661265287379546089681094143282444380408812517059606440155821825746780163424173644550261915086026108009894716840864406206800594561135527102501403517192347384338806833007846894899132391545415589203405991968621044526354888890408725673767891002024172075963236989401483970934262668638994694049860707848945391886773179009675397485921865478094226484266307203485565872524013992284410745540686642875111587000675783030593551350728445121969773193050692209747614302581956738768557561924725387819758667913803742956992570874066280417968542243222477543262629177076399174740820059625534446868740797255456571701898810836693526811430500661579043492456674523066240540888326573546492436099396804088494229597911692547437207688153517274799909390339530705407310342601184088272249666703684034176232125368448593265413405516014106871574675634239943755382334317377001843351483940129026709381716219664071482184877909535969158070223840867651706335942585828631944435774340969162194495973109920631533651273934524645418075036735274402631778909589480543861146984899389295865409421651312337671248931000765683329455467471658472989571574580930692376256947086988804189640750160325438631953869628130825394291038721555630940817742181647132268500529055680271118118013223248304782392779753369917867808171556460659340502812047192917829747791188304559210920883814473811087320280731320474634268177907788859856389520660700932156999348383403608115940028640563371231090440219092610949567527678060700232767503117079157580182517003342869052734234520948792911686589522986711110070344840382585086095667524416877479362354423976439415622759199625503504181541188181553780030330863412713346844019983988063096660100266022200513163439864421915135865176345907565387205168798123816239666875739344242265469245522098038877336216777477126303626907129146353675822381790632430830062580122248446030216649174351690166968583414493000721811527973891320400288770118141062121236121678319228055604491108694787218413293583059903839697409859365927441125609668161858422077003565126935041582684933099189767704450430685297986835558095027461646486031803249393465024972989800858691534458412200354294471039564070586456888066459354270069192686645307963637094627330111585711124405512564614978575318218079810724900733757880470502013388402479794665940883195124762083624985042896436490824767857624076294046673944427306910970083852709196374073000628076107789743356379582193466360089888515870168430047968320778108033562834227447005148962035246717241133359217632510743726530452434812187927032459466501843600661952678692432630966653962606079597969455987302201396061535149855024152306454680633119211635401315719224366047893841922532995853119357997088848446219313518445843232056689232745943107631969760206941139871062477916999176131066140200527451609114273356286834987044886869395932460318880472733624913000769990501286063223451783420488907058305635583764406412535833895862039662998626200831102347260728722527876018094162196791416889064357311877088346668443818717616412463045435800139349414265900407116971929035043336945252346965842354805759823589392036564451417706780183480902357351160518184491933531657286637450893810953692434974755041475685377673990549062328127552769382450553542182957666465904062328116880452100199771731942882085167486095033169107165272383089443843533691543084368034103910025167394309961083518358615226128910963101412566990142089927766906757989934838801189217585102270531241986102555930646018485338660844777431186884369741638048833008477301567688438261477262416778041318491647635483158038722657828068976352509676766487461516926336108915803425607041994033170931324010367890306521200236829717991195752780378270856988713889892897300396814231710042751301833843147189927008909751622805264238944876317379378834826483326082450323407139401696566304420537457151979849765850747812561716067443738690275705557791850273898318828959331759075609959757520440938017313632016394282865749624228566181776328392536234052920557842221484043219574225846054584516328408894452185434173846858644388281783135414670987624319818651039494895115679995648537614277297034000998334123665256189376776913322896308038741244412824669375235695400103492353375145246988519408204965300251193530102845053168668938965353510576680246842959029061457593771530661609635780364301232755981702081258728982277719537093776275741667619341493070702623260484558414857081434645142235472424226183834974377677910411201866436224548447712010587041768308314354988215109779863337468862239967145909324331349060062774472776548032813519652397248407909529065234237753157375164294311641251366244034435918375380752356272173034027060289075829025087555666773930248817428811790271838383476161165683143183886205533578372682553090761439060598869763911274208104434146459067244546439566071509135941815730675166188247086842944669560915099092590970764851516849089293857827929310012131739284024114937932883378125900024529520187119355659001518564683259617174266631057313886070076589970757788481341770983552327492262005929026262751078478708594242743327707962705876537073142057509194287558647030172443611222401720374886081379467504697327163250987403760833350302177286252480781825945398976278399121947273987033690661726576578458178249159461818939890132264230420541817596044127027146160520614376478631552596727565717667168205382762901159087302859860477779285639372714095240597402722281676679127229618719329852848025128276732033348717923256939759640023897428193112021956047225560795843555310510130532591318180782838985887918773069058474456432793374369651802451628170216324781508756998278756358924948848150954437509843233619280624245181116739420691592960813240738892361427217738265941293150471781815570135682458426160584889936440489006803537479183440464552975430636903826528978795929326640980776319267330799415573091581347503103737521533875213812660197885624390469385172842098826944627048497803912196049386898383841851177079204162181587730195394848942427841043866724913390063371286478324020297914880212816029100220292416045022630912664343191117569809584476832236019469108525199918982046064251395250577162921375051046716178107271867018509201519127807311521310314408722521979694484493109415323553537385991592269957189306307234447702811975894770282527446845563615905630959310289399678630668155746441677245680204154999160288458147231686473973962660434049844535346418848697279708162415667640901855608014091631743880006092721907545192368809144383503099906431477719558984544325687648012524905131237256484877109945051544250131325366368650933764901923640100558065458480064408335098191473298886670916730153658117128042045955718323347360593257165594072237226226566097449965684979573193580246584104538137269547454730613435494068444020992300923123475703403655801189395696425770494996976102576072589744127326779576426090559907869273164546902766908983192261438128539877465899905504897199514643530505124699557670433441292730289436708567549299603711867475218440604228945193525297965121731189898495337844582117692272438503522741240080376688525245600717211950735474092820270223351567693858815197135051399451860291129997105696470169996662245694271744980851449958763547599969934146080458551072738743328916363402044717197379224323022930983758231863511551159551513887980842226770340639013116734609737013620211351551013337117822429233784130324522258393294311997908283762234631843258071820541026181954678462719394985473004246846627321139014481602482095289927804046139742744030332470159695829217192108455796802211219763243535392757015605298884532651262039210263617381889845104672806359972020125546285693636369863544403584594935007928945840265935044298461534523944560459497502219595469573739827167604084078281543294900129012130731101750425583383072071355249350984523188830697087484632298840328895208697734676121231464845803321372922457855054584895805786843454555489379193469723503356572974798239674110597102370508107880736047986727890879895688920922580796676529304205057157798018844203976777739464009531176777216992046544419926776468171853644807825167338469464975113274624356776245315258816846038384371141285863134711815753268201505942739564801014481015579454874720040182292693433070891715046957789816072649427160940419116700391463412641462145588666278742245685828199581539863901882597594094849778210431210191869828414241205748150630663698571199175091661623679411245616907323790120873979827401850185088185539717337756835571166561220214538384662726290295934618592283621477012278809257559660816535594109538161811797268365211965134604377688404004346700524574053348129334567346593849095406702061205647898141347433460887503863874485233865432476192443776029444503153940523491486401317901317982118401050497556224018007436104819900007005800937102961191243910071784599056499176469698524666906831255155412898714035418977955747722739621419116450380562347746784080737160982671001559030312390032244248820120701972329874165507445626443705143117422035652283477815146575274799300168103794695319747532613439433745879935827950807217082499701529150902455932699844529623280398847213306884918536019329419747333265051562930985622956669855981237534127401083526843518261795585681147525084927916870296558604511750022562412276502545063714331354843878454269462874700437079858030259984911966725145226506246370075675199448098169824974048572998992038516616931786628282876720978505793520723834191939412761886362820631068250628835755090561491587631843606830450267833413685013074406999178165744481307633317469225066128896613440771798642487975013664421994327918726658669387190366446815832557805269492280733849551712419706168606819246584559326407305720834206802684015896782081133870642903862160317151241061213617478658906418720918006255369930675508855173121924493464743897137770470355288130340531629560856814685022241463539793754554468250079636761005090146766357190705686728279888163457298935987260645541764050472423923427655557796072338426586538726224023320538627765393822300820967430970483603104361891446350134277499518807277348633832799532118925197812257547686380787825276125764390201806153280923414793040656792603651557064306418173135469627501424014689920505033864510371931087641840606678049113504786476366569091925074289336729646492533830504838110065915296849319411112812747365747826871339636139932449107597959162212756473780497382923743415010086621445740972004047620567246887392898746839920869383496936298744214135770076270114715234692843352240795301456975627753156623463897602738029756608935637921250865830791236329875299533418656961636198787348747401572630865757600682275390569596677925648613376334206614028084307259007882093522260187517979342053356054585106839725056717042409051135467430315584523052192037374854986810983261363072394944130206645413166462084319397667146388660711282661014591575463191923745091121263092773464314255098051083876215289874437957020735720650480715866558520570547816802706255734971686203874617170558018567396554992014174447821343852149353616502596835025675524622374681194884135607919823397148427760864714613045182115244405207264441393809551886276689645653984574556680916246862975405346439534370895154581561285442182293763179486487926567358626414634725338773120043724820216301522091979996233364059914453557255826440161677147535030148867919125454213215169364183710957395330154607162267474514221118171554589295376815980051077091373721701838003435628844657118475093502526702778277117126013578105679983614123812465910996491713986128247184989835645142600515955974205731868234476856145204911881692638214656834421843075144194711221923199244893396138516051404600969611441371417788172648952839426028199326702924230674555033874373375713015777924734009458508401591512515846610941106920129240837567962770744946599981873972188361374217802120200576037339318861112692030592362491442978343765499308891296170062915473770659586255243698274362734697660024856390638373128513077999524985592286230099792279759237318274107322104769528467300348329323160347201423423650103310838652261536060035693810469083393208224733628084234159592213339484410898694878366807126366119064235955342422061511418330846593596259395260357591266265400381521465540983973053365821275759337151237679805987332454926134998313453762800779722777228218908467764907418000488430866714668570232044532438368129039523690997122026000176540853963097766895437316198528395580074400367717737947241972624235056232874704925003041261733945157051314927583269871822308266625475240004211331340184257843159568693572003574652645488542286203378836695375907543408428105883651367352550885380230428474291571035561546014399116922310054124317431163305387917589781022307535268746536660210948512514369551967856878405484443649599658077103475631062189310777804829685671436415132195802651258013014694855780376713496904472583259568367735865162699366092970801092812389146326730967693575254000035730045622639690714320860501131869042314329077976645372340984308927802973918074730774918050063135137254809765293458665903191491622456169736968955556303647664533001587693157820803006258831062686897056414949137815272549117510180135652322195651205870400608760052783736098099022184793573012804476792926191768372835350399031272710924607072975281547152662268643064554220850962427256804510489602486567380831084189577941757563247691094996541805205172207504232343449561807378409263487749296048329947449759408243215868341412560538923338102972971505237917725523008746830814458809287959186624801122672644997537071966535194032714536604498682640902247074577915608799515648209110910444955519436728825599250417924286320646040201849295357857042970224290895486931772806351460174556546364830393697080903493521903364511029755675696136755035795186064795656565251731241968223958573082433867209252823848043471035249503108291985100371421780862460325278505245691290670674904655261621339862939458991022168326760962942882220856800087544538550312237676891594707265345261827420929273897094889196665819469636735020011011332694003988481604882298824441959875325413854376474441412099056417389493816181888336586785892374976328651338422972061456178926313020958971832276869712822968577189872211529449178556536957288858403401133521144609452464601579826737945516158763359444280636726308898133602319869298367079074315831420342417530116285546639888644473091108659778004015652755676495643538023063852545517860067972068073137886408593359217160460887229679725097690699471956206610248928333692575307093672459027397385546551432244202723530066006873512751684578893892646120630146696981437463726943357106161423058531079559871887646784722878116009323247362351884942156548186843903362244425222948422326207527852536907090861454918652355988995559006780180919660291481296660282754823689357106444031005466825553223221593444667353702129816346619755022818103653261955303216471239819004565001731216448548130175082075467688963741340761976184393259426309360200614235468914780724224608545795755108589009782734606696432036644471380569674173545352160770131133734784220788091001886912640402680347082663543261174174949115768606998575264985098214760794528854453700341075750652279341179705843251315194697836588702763086907858259776632163115568452212307506959449197853947472335463287273478888205592578429809809158655042920592416422935934892136995943588682804356243895694731249188992339592072347992989345528766148950396021173409657708669119843100469829989915723635179418755740389095223547540168586560010412188610485370532418799901762615824248400714457531653885259775901287851757600968397954685305390664462291897553194057802349548804038540269924352315986660929773994332351399119918031910936161107743374461772656475152143709530958096241007534542818190480610796690991679951910338458492344425806724354853971640724310140952262510374036192896964521747301059727929325026975849098534102227439426618056174272510865877479524726719265561324258294050143630113206462878656876505114486820364235027453923789549308788038810103521752854671505343861858102970344458820349963414953877380904087274205964633472645721312046913065583125274280277172393422971187277559123008358633162451957549944906596473696957474281132346734117646544149586151042941766923357042202842460906229247046869885488240054701279476674656057309293141545808904416343036703999127024830055539462326824652053104402378912628283898804374722532378394041565354624140531015038437225645198427029681303957020249842286366233249932222147643763109285519324779787094726406741019897301882843085105330030700150640718992345297427585868256932949731674176792544876615592481940650987611048618530194114435814481214619512529495074954830935719327408165871148394741423709030185875930048975722084613235917856706603801095880544444155288771941248087310773309316673950574044954398938953787079749308580312299902239691115981082045623512518479542687114504186802287679271751052993107482094674846453914972382795429963364270158830752911563328483449494834700073155285541022193575151772334172916605624320086006641804402420177866119486815269375251201356026414610635432530042731640591238305374048095945877161787204023598510168366966493412094551544658183047035759415647640238359294711215986385790932282719529801671932530303902861855894085095248258896658444504879587574618302750598463766286539220727334866992754922749476237501464873411793638702215358974005743632055958358692415578475509359273285238977621516213815352553265429812497374122814024385417822882491595336824666153510475308305868369201350063488518284572298859694854187690541642070664861868606856237330930339175876700284894477615596020554415326451530393396800456150776959470312338289848399017195865151593297700873432555872579848781483481245517413462360869137416572414008062084085028363849781263699285619650254654325859337941273566054509815765654981555259435268169145968820980277219245645764894141340394080215491432894731277913172428955659101522799726187803074223980436166181769388301009996982317210042392217981372686962032938290406425866228758230978544031289919841529951664707542074299060257152391361614253653245918604007154860197343742346714167919010694869742683399190620638749668560710956939784567460989008905741304983974761403312578385164691281810540483712941774324915031740020935052027539610462536629592809389906141201323356296860621049163701309776794615811769639824418298469671046932146638092100677446952057654580662605892634636248691109990650459334802218126089984582217932925035133787552934419881928850453517690033012244627295655095739778353272389765194810733002119587062582915025334887646904630156384137391819319336077194129270993720651197692683263204558983953402672016980207515664547155983020275842746353718403124197274015833638284101656541113665941648697078202494416076468731672242629215670986938669282862191793727088054150527632147913111739338271030083351301945664203578454152541150009036080343598615613697043110948778798616188506189646771122861251255832201889461973944001838580438540659070254675148802961145888584818804871191336714631444950954651420125532930761128187680324733064292792048775943784715667573891629079936076116721033918816915730279156197755606286168228381983519769630499491146018170609142503439224199683341668815102102669472224783077636486757828650783672722687950518173196605917189330237746592089099880790451065189658271209067157886278602991394972295620926248684881075247440792761750045563312857725635697543674050330541294515854275932269589964766510990801555439842384260649073297407206731910306439426862012524872830946453137838958348945478576862808147319070784562652889622934606409446224112586376066523566509333658241574613966825478861391368679417733318936463900632495548691471886162889006119402584921068925399857703043932110539198216824826807745578303834878142933892663328355330215771723302810286574355746726536891374706862976661551745270720058824159382869622530053580133101880700914585527166446763838553305777824002340207273081453466221373922946168159849933059481088362992001536602682946869496471258388674812582854776655139738925666450332913375880830847835473085920706833040175420015813793666461686647059357233831287898542959045667118957362439798445987992236208988536262709994529749709707991951972179802040182416147280860888693580375520288019758242589015289993598444158040377005006549330283440337565160638915759599420932731059800042788708780573776221530946877126114199999220078418203200572029955254137512691818139654393361882449449956172618022908097121412806612357035838007423585302065815241135938200201859393430982707740823650548907670707498629841381305302738329861406923494330397454571558467197601418258418158507482540612466794051529739635196228893806783441604821587991971786682130905168905249102266944427243519851233329451712324808379364315715793115620839226640818561488198818567427930781102502695473349140690135167321292685805384979027288827722951359108378838717608379058007889481970727688778095721138214682885550934977550872787553745133350044537219612386668897504466470584423576087680783341258338082571432911180414032046099233447051913355626330869038284606673034688771073305507764875031181219367589683391002124335541767064922242833205745031154394909499247574388868956189516220989194705862169900834640583089670318360626859257168300072984210151614064801340960575670841194664645737333715128264026631868892320219381029532342528912227728526340788054715380472066548606017282655501094183333014731621841005050133353951039548039832574975157410886386900580165789507954708538977937621810744136479107893986811436233832411244902797642948798191022175885539098270222328741380344494607323684091678749516480196218732392103940764501516288889922612553688188269640476755775993422371989121014968958999340930239492805837259887028868905162057406797433510591052163053469136027796336994702785714869014560547165258906071465430503380066969533338439189054697851448817437804076348897907480559135511198608661369386373179932342048234569066903644449106342472396647864981430229177898180625022433906851670504959848417863853157690105668748463122365596026106676234834228316152205020575738621413643580695079151652528444288058206868539535836264938552246297281584172595577207517054961166558020500669742486200226910122940171667038165746627615690894432081155639520025395476835901233079413438409030166333996230451780593615502961623784168754681259902551004268880013391906842637323462911830287767004563367789514477013218292912282337895391009536034446641339172763401199776140554223910356500153068617502515703655494705687190523821376179309205726473752216067718458170116143680941036837413927240649288068665993349994212930070955075475286259341083425236201311320613454253098833542228482154330338461268511836944591859664511767655264968915525524518528481357598263369850005404662204282625774189850091517538287656987529469147235160472644672243298857902017752798528873425393644719971748900593648723396695229776719329901341261705747513038613852613646758162799724666155731243132452401741751957974252215526221027703660421563110865581538315545508356190544187206495857227054423727154224777862007604312283311700207304744843647538034895644785932611042850462718257617853054182725710960053070554134011856728965975682311276155025768032774262905725170523862694168366451679827793954827581566904311713459144081156872548826506540224181820361084954977199344711069724767273914494025147649526889593903884069905417732025470976861419453580667784215713928821519103388981520510811561056842889399536492363135832007814278865865120226532109106420817095860029369222058773104997092068041471020158768417771498982587306820039279688823568814757150666399751654197455383029836404996877062919675332645351243031601910602869868292409283512738992361362114217257635526677953239764042646003571779718956066515184708946879200928841637426601822126323651146081314396507304328339409255495467830021590234413073123188567900944240633394524859177432255581306283011516036945270247528965693365044334007491422173827896975260507287971195494395827115957610809362307984075552050163708877396188387436492531767204836553343639993630359847147343857332647843267737078794409327723263993134575155609891179707879994032426897070691347426119777869974225075185919172791906586575716539347417053161334402639048523643423582091713983432140913054889278362809112960854709854206711434821652086531953217173218205393294308218940331093852584126968883590661815509871082170210879160149804522755958989650746085403616066912210030275680332948138497205794853634273755413510162511485870690636505278541252875192636385178520217214827907225176523392623595198062376945579977210410762403589695073083818446719716778418851189761012799158946915479799025801801892946699837642171335464868099760933730949185451158002914028940933682184969579928454214369795623474285853994028622339332545195631290466763867528836585265922469346562287659420695994795423285214385167513238317962865971987528949654031960956105847646532280894173907368846506809598553983288133594192319774117118529527101736210528933546556602299988260595797964802035734971302307364420051907207240850005416133852289028510196419940613735615768106552095542598155312591445575977853567191639612803523957790941998237180667013831117160376028157120003475432798629683074214908840685345719807834061791902172033972219022142646559000397969264992886740689971456599232694818333940476554785083711765387571448581362599744677098909214424025226721798790928356773536063525989498025913519824181970927851752400626033691856434625137378775102239820830692423474750433987908595426679922379920094452308583908342962010044449557912977209949905240291141977556834314926787434072959660634457492892001264592315784987675668256597396776647857209871082965677272992094681291110213639427009868501160889220070776992145286100167794101778552096736580183261231617235900497351744856136954074314921042314897251031027937640760721115007714481526931479933126534516246061241081646066412790793881254009754297058395562640293933341095509269961050112646052652499261962909013710744015407169049136983289677597300697453710303953789446526522974958928841154840057224413533402955389858752615483742330780381730153036395449455799543580614285724157875460743637314147997167380024355915745904082063918858037683848506610524364275272382821595472994505184211769003812466911796276929807296263371468050454007108354265823381099776812785145272197894830384989993542932420118316921995801393393172720511936833641910082130212593589360049849474146358481746960995111146182212902802913278718341153681796012776652135529969873814567564457921351635586239623047888902173125638069537371282391814474633832509697622300688945679933616674245478778657748649335977306572863950589989326751145764020126973034907197438031065121651742504208739708682641466723131912096636976666858548232809227411881046332212846548114425197155545271794799567023245074572953821887686591345033122837445280949330031290708283262425728840865711425928780955959331285360668166411356598916440070294045687842318576863191770620005753040188033559170666794027083916042932386038374386282108530098363804887967212596732949360049474725616343712790243074073282377022385020276907141383827676971408304626467875692924752848263901755879122837814612154640716603893525799298245114341769445035688201404776656880029473083594917527384611653783006254412887962892353675918243964337349836977898984766738231003719204975381948684461249749341686272550231051310029867391245010236187596381935931559915074115995467494790959424681423309409896130070840936815150108481881094494217940627811412827815424056100214424450085279547870073648361148332258522255710104650177046237201135748606297850235606958574396083952687943136779498861347370171739845975394004034852862907200321326377509330214408748082318390404927301486296075831962135257170949245350088387433845326105066156824020158042748530343390039943509756967083672762672845524271418180821832562712432307230898462372733469869143347231562709942216680980479479783935138049406964491231920901392446014137565733974047972852580403643929112596434555497820487766698530518613883617682768347771064880418167443119267637268881386600453456406476213052068759981358664631952283254035938018757977874093211447920329878157214780537029573539386413284966069108938699024099128521855786763505016513572155027700451138698881209994234040215976660732428321735028107599768063126689899160795548843467801601463110681818016280738535586854962502791512484503519022760183853482588504842820345396145092327872230754670866910377404277324049172029302264931274738491048541697065072471519988658117183373534641289169846878940385210583105291075387011064663981333945968016542560468683168246322965566253109310632654541990279898340360329278042902325627558077103301201960206772528089482929493194054823578471949672251602973029985832344067396704835056455490919250038293421554373542685210324199589429307375144588881002735484298205050881619989787844376694650276825103646751307420461216321812596824602237029746115901134759866590379576888928263509340423842832289253772800376439572795666653516307132893164457554137611081526700098205840328454457377242946675664790331100680157027880736249954570747193770695390383751662057615826724717109109456331108815429569507765279983141720129236860566101864984579763791208231614943560391322108674157196453281247929179621729333173649683495158597146842675834276386239988007661699760523190775920032737377228181423822049398738056296756745671666968510234109633074203591989090665231518241302851527751761573710895290912528567347366284407646130786658461419625798860622487389746495395262597020697981695926697581946137928118700076297856228995072973801901325072185037059478887851440525184796027981177326564305430263073857521706348304948276943772910422344403993768205195416311654873637159548324413606284650854362601989440205460007474414854408095234070848477749114715759837002893115089935248383626095286333716419243984862748174788790509544068174583095908967463968729411433189034438360712282132838874629407573048120994173365225121294943444849400696113596699195769508314464323989698263784067777905143135996839990650324744940260366399912691895782850364700156361535700347593113888532202618233609620738448538608049271544467191854964641004439896297404714378168839167377599460494540187375642612760885319254535178237549890492161650552723237706948387350396162411842834072034797675507525110584273321998472054705153782642714801627083563307360977791482288512613294774940011897329144172181057277707484556168462542118361274751251487564227053141849468981241563463171883478288027028229071219974363970238141703548970853868689070420645373668894038273656261714924270908071721637083333974453877821810997434386879656142502131323965946553880323186609841159566908973229482748215597770093250866729893945841768742874797274265621491572101539527961892194131391573670581528907813988262735404817625439891263753243133454664339418371480452357780112801043885443042984167243130088354756845228765052325593123420019217798385218955799987631777594718648519050966150370301237191553376227871113407715392919867405821499911724676715299431292358521844691597668610956570373673747104715120499669219037706954728734271029270388831072983869739889349537593088816661648605978287614188034746566537336748806657729410736940982659598967435812370204024627876672738729221946095661271208774025074018344516417951565915686239634195569317213813723938931492724929715322153274469847855802941295938988186085139786205326518157205202653954609801499212224247804188630881650290063145857364222961320065836028760667953143259009549797646336057483570247146742104871173391476729104027029435985961258518969234812727397222980874632677642893683284601186587998275894360129330810599894225579709101725212446852836258552189333481344898428278045101673510794797264587556186128958504619607261895972415001760154685470704142177108778058394975436920121716301465672987092565429729793336245265127498347578122145679448145524769376760553662962170253265327717307046161540217008317908269668376179855727170002860702142187779035969504614183648651865239590287698127370609656302751130847686455754293839964671138820112293822982985370436457110305164874841229321111925177911356535594596732879227250172830182737597556775205327748076349630068229035231286227072320876302973765891779996034145666679361700789895783845827383083051890813180110671136931481262410289767461354860035998823670366210505960407296764120438417969418573117094318256899737661792849587888476618244236019688464853132129327336225466838113944642048680125398724129701274597362883179238495359458907097637840364538465078228818583119454675237555108161681833497281193993442200584622792329620281197990141562299287144206558821819393105047160545171037150770105091450403024241847613123264631421905883015996755484068711772516901498722265244387280310159105940742659253677177182278136530685183194849583054699183847281647303621860558162596860087914617112358159921579182053153942944369197365183145971901129719338020588218327439414892631231983819490778881127938312221641446008719175838287440163706334339166537072240144968761260482405629486877573807114247698020732909856628864857079311500285349663998932898444864265764366606184302733716611506837811806314056077184868425474948667694325005235697342283072943784348453779654884607554578309444330219042948762941745263074534652002782315519301899621740115438420613615680515523935336074623315216606405194536011454283307707732932543699572144352455046941232759298483773350898981820287944359378576681139468550771928532418022971029006207880666263183036899382317862113632533881553165092309609838630833255754284950885505523327873157149081091652980095459827145056808727931439130064482707604828839988647160926646923198033889074039128616167457499175055991500086249457213988385473870459870954645617692442661850899095423016792449256854327349389301091001965577320779566099496683831967142039123144144306382206020090957449964773993915589028211924886955287032231164831891079760115047852566726581867915425643162058172382212957642607169616971859719667257933542161690799022110484101712899224918949257289506999048605328907274978766205234915863390057361351940825801020982259619212490895533550275066638776683440167432341606559687595370315664107716830331253094806050154440404847010760680848263032842021210584785887462196652852385159569638171891812921228002517504947043857648582511223328036467211821065749636520574811373579333531088004621121813028545799087131766930354343824120370729061506372909761454569000205335273778111706591174143783611150548898765166481360423117413596839221835276244653934641780334772114607802250623375923547806042344726169360498298377334752763141707508658550960403973123720996352847860186032805328441211510442011371938986034513694263489473989059208137059451621825286490471581332201842178408901911316064650215102892426236477061952849362620779277620551883364617941564758381062264359586926741506635908744157704512739247907929293881130882636595812919172225292352250863743422437246080863609550436152208348849555852171789739233380822454476515301452251827949488904616318136672582458242052506799130225035441530733234254208665424894851173431595676968890165974259694211295110405509540327216372092213531999569266393726456217577786180083132473022027681910173152454605114202244851078433290616003394014532708644587078487142213172976162082560905562423035209036988177034537024279664622132058277723024872098914430826678799733638703346098154193180898140266717935641342720375057308958726918336058474630505660968396135082561132673309376351056395801262781953253041058540374361825576843194808019874645255873911414440508873956564813975974619576274564855459562078645603519269917338011240590018165682005557026126211458619399541331156359851102311499211216130172271837971237017231772807662536578850349489585978059795900047589087357790463204650058259800342054127308479995049298023450113553551911848436598622942040387012143273949414683860931535579237389391165505775647039830802090944088175974286207315611155993278003457088720642902599710570108946300510093755180292624256236839409634781659624907564138934904429241880943852752417506886200239096802373529644847027307158100120213580454871787630105129217196423146457889265239974086618037727472630872676348255406825748250799312576472531131193706935143206405005389000671353083086039293748448537276077565374953797317594524313665999070483508380872557563587637193668335919723320879148560384776962260023651994630757184595541934776307974533458816872660404823536054357850071349289270917116477349776415901731439472207561633043806498207677687601005908900335435769650127357020403910903082727942960484622159094445944619846396460563070595052658079938675361903302474730113872761990975524846289994453046712932895349218435613366270864530972938536240389975475689998658586298951869181638167939871189469017542109000247559111211854113114402167278754749578608757479247171418338608667527796442360611885182394483748374291035710430076494885671982733823764611428141381201226405675583000279151164437919647724639482784458697103327327578534250842482608847371910212669923246930445974663120559224170637840051126858815485702124592828185517073773547006905570837623858950180280107856664609735937441746418598128418032654842139808466798223792912347474679864918598077609451795629576842739039318052276796033688248937112388720219638987636590927726666645644011323478447749614190562961018926547648718632110932827333446440432319194076910659218469283457794140939731104739280573779032521624498032196677995798146490425672262477817150611192713044374496688879623003097490704510096133000608750797084144786052931484932610881365674726867029350714197938188796598195739418196939161694001866193510791809706948632870637537253628111812443505901233664379815395341715581302513553839854553791269021100317822840247031354248269281740377692167757767681533090502224555553882462113423948973569967687301734261563954089706004785730421349011721076045938461066034715034011650448477077696298306396855880892743982678670390495881634846340536330570116618012205886384999321919564482212711073062550003023413588314823876764766866568781605877290872242004363294984832351999336112431507218164384068499618642937761772368243636337958023513860211234349592110336053731142944618862414813804826546055420477987057742214014380954134669422566496254586221524235131626063100844711380599019780704519578421309075826122455029809586941914147310241526489784210183102936249177482304964451055134381262687237390116376427822066241059981394907994243999972359263933063442363482781480671239994944322329819129351743343463775495434115353330571513183732874655227601950936420755921240566623677193200924589690497410686918339156420013687026916703763543397211846606952407702723981985511342283187900636276186814661254793561335040110611774865128757104067141900704985676549194553048791802783964928349499694352640841943837801236000232076136901536025013592369724002954428753652608516281318835898100735543075912047205642152401818809444778764835253647101837531429281628461288490196364458116560586328654837386841813050994309214360136389939134805552900429623742476678300674106490169164502205921410477968666166591572923761674132700285871102980119248066929904611532399079501460575453195618322956134822347929312590502030370419843119308736869064427546359262801987593053761449907218941732115348888718170686838549572110505805402697557183162037452677478266188460074876444970063566111349179469880593219438247978884783592086108115527387661498403975925704730131342230073693265151031479863141284994012203759780069947958490656295987410641036759567251752558156883320789391679693560271815849787267548320035391199447265504685149341853920918122104139227852844879568734666355362564553232011664225710002236091268064904424888494844458762109886213056669113851939770466680384784916342700008540675125871305564434763468334463423943423000420308103578137018309532827571783909505538627600703906973326152397764921604170149545269483184082062059982690039367723695283797279355008310554352276466331876843156930159088335817414355896228448686279540978884761526381352483057114444288678998120085239901751484396021386389663610739244281070936320305446728972410852493298742877487201375547726528710411577107285657393525637610690014477484885259024905464079157519376023222515226985778831323398739064192314850841601697661631932870216611109121742142079373066847740639116983343203812986061700465253460070800827645032057272263015483541974499110258368644770720673994472606870823587376615637768092240954705975823482752407501877171981393585018441062248890682920973608412169758064170869146047434407050094441687965952641238053583384278137905694487201750138821159391136524851059224862935257882334903548650129607548828390582539193347969285228943435857525867843655351767261769290373539950023946522744233723105868856127556403227794099914700300440505905732558545914358445506078251020309645961980766771780361211121588645660425126093927645470904343005206141137617365346022530144361933846245281637609502924632143988420243934706273154217294540673639777233243747851218335948802548860201743729395113436937683035243291613349898962068870282847188873536890724944169440767744400731603471404206784895652023310600334574765444058655229595025390107934031580536516607597393527286084971305762670313121988213739922940738419433831507209829878014666371696677666621453412873896728597402961266311874265800731023305379872256639998955916173464735885103281303482915345484941205833959408799060286489923505500315703902786731426857194038608937975425212362667845002546283464288290794244487659543226452237936658379552446048270881800573862610341743067475904327879465898503521073199574364030808634896092010300880149875697144850156341098765571021597360220903685436616089043286746221956902061558877479293886774016093560398232288294610692337474317471944630697853351130855085863278126789768031747776072939576091158955389754470953089676663962082773359815106132103700042207908429719747461747637643722922993554022787296300458434628028912148823640249621810805692397646789856049333144422948112308980097656840446904712799260343272793023176870611131867035729053761789831516326233295898765157775976158090400032743630498866699051960037982377879996176358645443661664308036526573375281770596999300898475130379804494643814678335963630845185180408798435433742865671514751507824609787394103098170308969583912054494594960244188809900741028774872792105678306826692019892290854818604020087081215647361165177088764269419001707973244152078894419161270023068909047758681296645331487730084073896464805111126543693099440081181684647356231392608252106607996584990368789900564246523723033119317205622995586194570119055868503687573191655045287619191399619895284449699753288351309876106943237429208996281785998089592699178142758996581339757936901307257833192573723840729869978042693677014549242718822459820476472550056007725244839161433891689033881722693654696482747601033367488081933035930419621750800090986545912933118284465930147713018402685036258555554500849631985056300021689877007805733621494534345875681517636162537248866368404635843376606651894885572958430172706824793527169086282711832945980561908153352496412947337625416066071313489456847748083445231317598389592258001450411017195811264579385951631369008466701702301802347180589373926348999047804617778020149676047561342372130896326294682412352083820640417855546925312129531475620921150573077230930279876607569669281342437749146390381465076104771513141690512941175441772379120544040349483509066894981068476042127753959703600864802589210473899501749987602662278076541829769935003388714480816503515595737172997010151472612060431571099084232948481937478876584256335096422586473250125333600360034739939301425676226731554110273243268014956643196867057990254259437083728043984593022405791066316732954882444143506479721447288497088355864436042254975923051229951616226126818878145067252956396641144200609292242540376291724952263400522238379752570468941848085067860951531868480824291156217463522326096650112649960762112907436869342005868522008087152271234504961587757014416651204370235459436837165798641418594261605864716008954458452495579634641998516417936078555479371678823762488038985602806215812257196173266240772720427460779995378393839171456078683862677757220977685413083457183604674547699907798198899535954212229317286070984675081838740034421778087618751049853910153590737022320380462524290659419484137774455728560207980095356663782996722341912420972028343824878193838568317621573329168829771575023524472532082549362419095486410273449056276707105606079191885390473618613910032667128594110940208722127452067663766182384980309151213796501462304592919788598460288811868904373577421082975845057179225186126283280549337430746792540900816069558545083420644118789483534302923199189551470490962700483128999871222789394992134783802063904554164340873434654393559819656794263593717840796216697489494067282222823300836984932935583222540623734716361813501000112156721971563799592768092405048710977567670218290835257666888293687334606687299770081527498688941316093093768238831237836687333938912359654003039602983969376147579377915397443733402788250490641264104952497937121187014245241207201044090591379218653442972261735003953243641701467905868528609788511200391559003535395871664885847054528999775844923967588153159506980889949793332340801213562375599888467565214623185662755971720283256644527361434358034126758995656988446190613691937366242794895585895438497671081011453039087802015814807883431769146930934658972885414626465677355596643632918032500088038425929660627057043515815649925227969585015662625059476259371276280197110070880475661093856136775110639859137179514672188193766169211780581269042605386940017843085445133101687229414402931844028326529021306205223664020711384780191618064242824203240401604114103992535371482376400453554474721367632676932253882215318787876652829231581660939422153878298255032507556070016570290651367116961932931238264901979608995649285179350099401062590155640720881005314527556513909206504249947128444701292112719843818471654119155643835079135849447682000904187511345203314075062804730688615055754958088500948307616148149053237914270669244192911251304228202435389936097707797356228901741095664403030914489752324553540112599495937741034348896731064843882231839122425658671112557810264404975815356885434819583930796876699561849033097356287267192594191416590195137443853981556635428507651748197099365720999546282468547009272435600760069470228693645878514883645661588407616324330217818374815336358282609740219032704314403034675680209120591907492848813612763297718886606583543269423483805665415692864022223620829756799391403873522717470165932667674207108984114855743790868404921623778788596428638463434072446721271750361211658326205334245009952073045504691530993520570606938215178608665412682425668758943422780104204780745041491347945194703884279633270757665617534539719901172794439947303247576826200489433310920496941015730507370932665284093018211817126813095337298440316272406947857540920451534629844437850734232491780841733878624960207106767468255345795119716898722771639541447449136692343187468961332043755233783703814747559265423515855493369819117480129630315688126114394750819623177531978548241463056023130110930820765002960404927590406967600558553804725886491583432207390787883280816784712596107486817630960157580774157628005072425746836917754879160805018617289398030816283719946752261759204918226402461374964228919168498063338548091478186909279034456631531099037842949328975954424929787957116290391290277107240721725400394718491751374706666394805336553199093168950788272635494763332705357813923723782817754765352974383068505868501704457160308091971161572748525979682463785574208402369903666254650345854933435034119225976668643707322103552099391889849145931945416262418398680338877056244041069666291271839285241579706538357335248886683357884158342591751646642439212229691892870337931526635783343294003017570511400759985664084854382405197140919753608892940353198398381203546645972841309830550988194352116482772885767963104690580370183548848073690854979161578534383257845799741076020860910268469496317433905279339140199702667835220432259630153076961705063901252591092719158350275070088740109575956832792360992696414716184168695895725471500776730665665708859821410876226232695944273366244033997953320206934170236743550796973340526603183116717155738042514661975895825821208335818221502123889448865147794054776960637635172319841241546972084371845894725056338558606949792609738945581494734873858472012630097917133568388110530966145997287478831662259268166680213175112489259084126641776182703711216597642376677451205666666124460646608847744931308759718352521479977106463375514750715994384195159588235063695648619108755518493507689723901153283805866360113878522322466578773024581639332398250804961451709218006388817307606729651424883064437954304326353612731671542395603466460692170085601950978309585583698199003361500026568124082935339790096931848796565417756737124592127369969258411688052595691088148829965939328448011022516678804195951255937380829574051825289044723798340116259608448445068105635449933705210334184646091943901433851009893763925379143385664569674632619051242474292844937951823214977495378299662253034327671157383973460914166586219325218670858960273262130063679251668804626702145731060277319333528527346831726710568047315230573886519971198281840955848819149414410939140219523995454931239122247685298240775298792842184672942134026693791594810422738608618224737692732259127701505967276110333730554586124246530140300208335424671810351267327757665250485019879868135446466954183204476873975981418908891890597156984064420488674719332543934096521171514347460246564435081095384689842245544642334904217218410992126855277672356643270967075041382608125600315189950085571450188281382418290788117046986170722299855170789812374304606366609085104771591718445995045914136436255962906134274385449456253783025861244360898384022998719656382558510667322807491973710404763826205415148632131573951714332912296681455746322483737951729556987039258104956566530843265358814422411082192090485565048068346609093300664076551582473676772593258842173197876305680014334512811632456483425938544763616039090379537413047797530704871682981865742544784613463819545586605976790871777232780516368492788918793577597255734915001420722084292488563731654683727968315362543682431204756445318809654442584871376383376950727310096584266000278390807858189038064949517311534119198259968297017800203543613410249452908790571354260040429417460755264906292449626199919809824579859061481847217472573336436099917376472787248888350756958852272121860513716669903245116958697375436156834361975562458526663498949048145751490159133580057857901609637232283429659558976275570010050469594725538538206480765163979560480876696415057614869777474245138563613762542674830988714802144773414813630236005142459221938297860838867099810838371195313311283634369416479484390296796178854542577438444910761761055135312376419124687948106015775518574357867411606128243768501594642127555212384253018133383435006807297711982763685847416149239188148413065033433299987301661583873938725325957235741688002891125241754043825022090023741243902724971382326082031293692765241322213356359651955217329772979421089721704570466158529048940937152650231937698334235402693294695847037146407182070037950326018858765233260468244253176799939808924642177313473672135082196162019343076919305541393539380725925163994603247267325038474988799842209836877792881636104535546403679212583213282771365540968485250254631760372183311920329633586497322485056549001670963785984675235778408748548820332423611369855433127751683813495042998506821486020357273392573121452707040296483569393076448015107440738120196278033640108513498136288627648822740249495584620694975554772458267313121083768168889739924828326619340946753379758672326507920072055272004733654791144613991115044800405627165810016698994316909987395098033467845574624264987907994470687000534830516819943231126362359981900943120178239569675316382136702005854527038488943254176179212738262966061145423313089164157653263855341718923148541078767001947880920494643814735209788180622291275820947621020654810553098658778416871145363209638374866741216248136599753048154511792099114527367045559288059871394728985455201496080932659355760849540561153866113051976401433477268827734906467356138357419554637345515931801300055220300386469997532519506373667142931733344213450394382963193957810432154301435578116431186064688607125519757130991006705576398635749680973511737834603625372785006252427756575215656770433381538927936977341816152949856648713513576866573585060957769764509225789368933091717435704852862077650216768298282538983347147813042312427135488230649552575265363710551689499118588803818206984920046213318891727762337084951977305395559258892322547273209881879276977574098976202948342697409229869443366903596253128669574597553116462106918055391086053335092789827690446315761092577880335683668932509037671756933196363848464969538181492368622382660041978007175245992996484630132942386089253692281068700922485096486080615048154012002716212278746010237094319175602873567809634608012839158525630099960035717300109722243801486148697139943148680312831506454476470690608460577790661021067443201130166238231137114608752392518849011849837941389897078949921625121215732227622389041060424614114072601813456106216635913103869658552472093619071277737583883869325864600111538894931259136784541286156196876536542181826559278927372250703444397194802329338832791754641162102173201236251473596088621808510748290442374345315662935860093694667275622896798328100359528507296329243244655863109218270633088423741461087509980434203118179933073119882458895934191694723805757727582026029019062640053831839949620665490531524194490510983116815163990228835437634747725317914589992859100667161011262061002010895208612700977364788889044228173457843008183300722342624158530624465810307229758192756527628787544565195177322568707270425677741887399964541910104528817596333210626084467230834174437887987774942428678393045721865349043969383368886287769418607093623618814437722287601114633320680824540452412928381331146305259612444510405243889638351810843722124944107771773206900457298656417175448550202675309129986840896757303909512454297165046860758048323635307146479067420734006942900450995083590931692717746828851354740769959875297416874090765854030023183431892877091778471158335826826088700526320554170249034748528732053739981375336142453255036888420074849765064282991045776880636675706799055555811690341029388759978985550479105391441190441186545786153625024202719969635209041263508532810426414074369115229433796025102064560455445738152219908388255224395099117008819558322743660396859812957935149704291083798129819809191205115484962934811352306648224308102804656327397626077826625591256539450218699618143864174627848654631087527223519867781784271784210165704573400524431915503556308991926112117746306313746310544312006118123463548238129052064243185038064744311455349061192072140118118028668488416565927919102147032481241877720967662159861856149891679120531267812913422421507541214349919291498128463989869076851054077298264991949553075599954117487303420881609105555259168519769518816734375172994262977637071987553268027131896206544610447181197705085593128262270863816393738808702972060646923426102873028030192677310872478005690054017574705631659185170414664830526493800607197531382685356898386697661649247500219412287088278235830299782178767751405397516162263722356646608926359815532668566284673403284559273310677315866520697833967021411438720510982684180398414627577186456940889747973849977176532313794721857356416981819784492666523911260092393492574801122518381074243591072465380289938685507520290951584262436063977927365345596162655115871192087833713177945419986270636963082582523253084643351872193177621910384992840496946592822737840690462439079423245650962089413632626562023716931965071421050035664054965903349779384679850715767641083235501389062885635433244532450375193151123884691059816628624368504269602663783018283188686739623510298829538631648700510367745459907566043976994881314969460320429112871854321286008559058174370951572708924411534900817577047709315305627718744105018595140320979726514695747601186481065739747499449938709661372389489898525895808844076458093076651805277113016246513067799592944526781450695056695638707888303888129415517509933245528560633832608872758256674445629798491803684001279323123537695603411341637594024894031046523835386497797882065195739500310329754685428027320547331730038358391756471289259009739560743720378800921288757119975491150325958901160161660734913133572486621761018595918512849002865554489968890906485426747573828727493049549622164170776324688972141229807933759794842339651262789549175710173916412931072189827005411616620637976021558598295592084843345541377485211820156780416644956857661918639336939204634797059754369006234912309720981471889866896275190709290412680301895324163610761657738677022472662580884510569787226148175566270353251836763141186699578601924449560892864798083100868925229460556955726806354186708399338980873410592767021873197942121972683103050586772100839458958121776276849913290822701170537163384597397561147185483495224360821512823793100138509082225313946366302801946110820801646919356978721743457224298641276973575677040594589410802507073505085670350880111368649375081568197780820121123846996954908900926145082002577068153539998678423007652380123797311273027165565155240442879441097054604823380429835730922059003618550873700923712698449036900552909972056110815661948839696514182085918712714241755178486749841876999180175615121218508071104993208027620259445782148828285544770361965822644975741315040695007806771693137750601378326554964795991427209163022233050709323766419964516672840643463465964277293317080708645260353213116753970361837586614829353490207728159567256673670136744219690482695463126997335115368510425975366232212084972710926906103695012844204194581580580317472847036416357365521099701193192758688959886115801193319124074637473778141663498584352621673138213233168320792724388470031534539005157412644213982056136704968059254023470613655148688749802473113378591223304546635174968890248437828844696561034573723379514112382536395705037399543980687798283160818884184484681324374564263419879954430673882050158258129657986711872070089683903236965722811140749875966916207489253716864881460383670070834247732215294764020404617439942391766200473909459891970604123587383626248809518509260018756136448856331777720977600315773318642752484460262472059511343453201236405780456662046192613063428864884211179131791669022397982093671160876927568041184918861816663718073243195284376068399482678936713934430575741170353463123302443388381464600926567373793377086847814254886059643198318948252565687190089245159062406769236200775386748537141692019848774311309926465342604422041552507229151181127589100406880241745594523931345682550059353747434384910688855578537358277271240940638503192048324779558249248779238551718775817967553383489497625739709691246043494288003525335798514263642958362957579858114430054263170622425208413582434036645064259078490011437861213887457738313593088819664025481813986013134296969871912750630939411589796297343488098588374565733541709971684883347101222267062310862108577645961338844911666002971108365066189754688636717887569040745937732690907583657433413849673278708032123373099894446654586354696114909858765222000454030468659154342455701517434329905660772061290449267531423895828215709943655471862646409306056768573138232855490668680549298959938519867604083543003313397482829263897028956192043813815633250727023366771422667689060777240179106489254287776911146960216535689190959380921413868187667912577511602825649609881923745601142978254388667464248761331257810396789390020553561045038381926472978476906314825217147198368144846009496346999893537676677746844866650143088470575947832485257361289239838474282833653151047319874355113044719266876644469244394179425350558635888792935228874308679026384353968456955872901092714990869466219493504052664439322586777735609987894632099207421296718049869465726828919514056323887727847763604185011031772103293019155420929686583526784621432003580859753455981077950141855954391109354776268125866411336292623260527088139754166805373250687600802605187048130160816071153167731140470039087483495441242613443801404623368788667144908312553893087379109306512837941218394599321929632944235241881460527939462525844541883931406653494486992911204099949313632006494113238233635953446578942473534990260234966847510230073945731430008613334718556135573187153975309971830240879115527518960801531051963313378603200529377140811677064866317033860645382317872196475538840885037308644420224460637754383545476320731070702649972345787796243762173668201660260234617149049518730131588144519366250948988848734723067290354352003317936826558092206372911138276981967026332258598885170486947515669876557528672526645730819577770582441241298258580817977954517437436414637491240947686659845929330221443604473624119143327204400674848717855832868487942630487414677347854723446368721102929850511650691087267761506172665022470102290730741621752744169968085426107109882715321261501982623975201904302236908354379028186721629862745459534376545322240107938884390695260077716767226048089153760255764883368866348144400275029293684930941581670999679746697938734391595465338037066307128466409047415590240691139465290657396675523240680844474615364354492998470542748389610344646479619857037383609656457333812197615375026543162140982641478799619946970221933657171801662874994850026862193914769069326425296924631264024936232346327148407881269364699840278894493313385674511382678523745625532748720050746114183484500074168293037515276750078596570594804295223185508401865821794558629144765751462301481494187608302627504325655504547959381071003507108368667219875797979836732974476460119999207491165937045412730145172801724484298429773923722137649857044500870651226252598706187549838993905278739934818617346157091737491132067678375120105304714178241623024862010958155025423165583553443631148315771132091595447527127003312618998821879276450948363030356961442435699129382500864551878807144351014731639560992997989372254595609287155955276809910795330713833229030031464303776737562357592190963092064649629270577510169761377284553124245813512020025371076963189716113595645764991314154341410927582048808247518699321503772333326613059096467544667717200523879756248619146419501184842544543348868944408384498115486041289372355301104374176275365060294091575219997892132042624942121966010576543068033813177448674025506658289012896581510914928391887938347723739344421642328863345915703114078750341518163593933578859143998106889338364077211155756180394997068795894197870239868272530668843117380159442412291404960132894615003941682087561365067204324071529393690603853175328286178972274941605738447224383479739668837699227172696609692629725645679540280902508867853729078192916313057434345490726583696115901388320466154644680858324435179209089647731306264502165913589793624416269132877311779502408687516682018931523378157704881072895950818419936108122117330536149033562564342164970356308206016321071335627220199960569260490753194891513812509701332469353378690850785222239346003422995893412306124852189234192587066148151149373623560100743031038444765198678689837604946352640266377167419445932548344636855016610323965446986523334826670539490189303816477543137989541627724474258171223546618952236014233365386138639866897789091902977506244331736725776705427460851799228912895258125710399460335861502084183680800251508528487390248697903443966277640034719050766614383853606773733564003787246222738326324657183344851977090997287421563298888705680443398670325457520211505220192990480279535129123286905055071570194692740246171065139943157467957597370061674753775288232989913734870574781859907834032330585405088657598596433492532596652805841323507201360296837454440574463721119447921222506784198653229780046537366932953823850393357348689583765432401662068720673089055843483222077073294510154293418192013184900631749139845105396038688003462897487332844028794745805167579646569828976130980141799976115174081317292455651385838472869947820030849688431085999941376973887773001894776806290258695005468673189939818335219246422829306372259212110115926732124619727644059791866004703433858944604211994845903471913039274443240196909012797699136466277124665269159643595727309225418617660219081881312708042512187627116846666217480610948443169552941825516733922860938020792318102195869076655896276219773282014366411199375355957816070890160933707190518800384204803375295827733722416249997157842109019384922379952629222849734206295259172707838608558470169442914755990609328865546429600173585164773082099974582789296953219293395744681187434091835390954056382011760671454122193489052736915317617724131573732102919357082130162985744548146361581742636350232345392337851579899964978394695599784067973734825312307125326233773173379284342600070501931432027344715950300246922189480535175663942086588514058710684211491400034547048668535925390708901178587604549481286179137056316187023758628163673786456328753221556277748088872872341901351158589036847045209209144804566820465178619913837971696186678801728575784523047908388350817962215668869388233466600622983529140197230816452046927670440547854773945682094351111995449090687352032828147533318537016604193672906838469785495304472281802824913144252438112383035526475636110756298911956222592604568383546047897979995398319503743935647377198360576517897788755163596391864779856145910411205067199274009573466210696007504740594217473556682156095790491366891716383761523238197995442471178395915094139941784717686109634585847328369954563412428328229594032855037920209740154006590124612118234922882095736381116659163820805034978932786706050779368740717385510127641453945084306779489127109162310920016382476486012166813110465217786265681144160008163162928094521193604373905548219343277843793044701271956042735035720330438755795279431120591958062406548601533050766526749416667008032796357016210088921689576358961299062721486498190682550334984256012653118667238887330273686191403454334430196060434115544719983017756947967613444513506728229057873939860127278865674960509172810565926928795356922215722142972093178892603255290768711275345848632956153038906593638267925124338524350928505983797649074294743362051824581305030676223502976292923479508901254568207318463673812434062332820964145817216548367333988294491025037442160312657337574598684305151402599601568213067429495171049886191531840322748715998913567480144046870816231727691502641110865640304809082463144780967756022477167186073562657126268702963266579258405453760242510104998860151557827061612336419448363252378721292349920599314644847309687418384525011789121842526455565216656733744959308651551204548265993710287831429107944149168494925285567575112861847809053527964361088672858411271246388113933206827636274509073356809065738772132750183804551554341716855209810595365403850855969644114841481484695737212035324457898443249113416735022564236825774303508185771389791359586485762929345532328681942479956596839491129963606623046670074453437037645858033232696047051802489508517070642855816399136324450468697916945058681843673125665053782842475805693283280845218551068597721377178504969956973269964159006884344674709708068378755260147896541176808079406281650045240133921467006255837160980231301854597957056689707893013431974721696466371176757858477208763959138901677437280074787018747625664624103976599596088893429253384480636023064847658925619362121515924197979804119306037071211302909046103800155671808437948276604883662201299169255597727112029947826617485454838606176333239157823025888728450814607464211918424296610683684613104302382543369928988451761169782569142788337138652803882424890680566400443590027427009995458537931031704927277309485240284121951609368470361713611989656053166298636852710308264862435331442680427735191321131918706235534875077339382754829937179771418411580333455580373905297975663121807416051543942928084591528838631861168593440828890950333925075519818289144339640246338561428667614450204582860634407616104661438599825530652346289527208474637613295127948788132702892661838968590688102273674945837730462568463255970606858296479728101298947042689758240047364138735030567059219418542503453983696180089840947005739143169364642318188338242374869876539134038102934818981440967385655393277807679988769784727639910648840688438144866930334068689834880751731892741434725599968362485258411981132589232802107021475156645860991575303814425018464492116097773544054268575259557153704746231135334783039976372181806875497537746588280752021756483919470731234354440765872330410265869108028419155628366593252899480968968453494311282717558668700758186955971954465669245614872816004139464577865810408813551169964632474051458823718019962731285517778112494578149437292170574058308816867365571179866626265286168879034859965745670997087032294246559638819262697509496901343748710315379172608704772185282840400313619627729371931139080095333239105348418626893324638460409846119100619059985587739961281891648439672249893059392522700810622924459700295502682801043592407995237537063551979465026355388206357138965795586151131653868637535436269784224257561562244673057178025874710644655788057097731874692388339336783326523464179205259361807762124165185761684021689058131648200975602944441840131738281971912248642293179736193912204339885914004979933286395503336684366810032687007065194667228367236597063902606663992718562159162743555787547865441071359202137105988397699677827845833542810756332308394176039226914634712252810044997854235450260324839900613502863348080748602316084521837116078681889215024756213410903800657176818346707916621865295951567563835879945574086865453855835030401184872504975358092640552324073969598557546032803710254261215286630389106750884818235026234527628348175548837620190390931027182242747598238333578281151331181030884648777226867298802635006074241262116516496268567553212093741005202621940247657261577853792734613010510523463830833686073249298362106455516964973333790365614216691858091242308534719794783842910399421329058460279893466461941493932492891225316841592976004346950621569432752772047863318893169882673285259156528022278195761096771401155534680445313166683520093565516375412339051615431257582607120983443591949752101543475258226379807622586263806745270605585441693660139480761968726823147641161880723315409070952508185577153814570500695349120751621986967163701115776419316824459075566431467363076517967430594248808876327259089720354983513940369793606193411192738918135788112021707479291877307827826806315953250367709426308641760278392192309671633725017593963036944327220743750590570659310958457078417997673263950433498556440358724701031543903203230321361286920866772431080323665689114216399114615198185699460238413944182413131571476614584563728486471546245110434689714527810274662408878627754767413688835615821524650855085755871571247672893154285065248483306479091728442920856333317524642366349471446353864839350147533017806428102945014346435170265872320297782029514175820996447965854363499641936591280983053099036506430538636896280280123598015539936735045635035772555543913884175345393003706161820672214484912702626014437963223347231054986964895161865829219351702879413630625305401386511093869516328125178449162798068189864791258743920517258162169906280813674309963628436980641850551795162611336154840214871226747232467769969701309726641471201385529844941230962497773769113522059652801720518348548293457058626250825020390014576502546849366523412332823403811954270402045314705694594245998930699908092284565218991601043688384985454764773507414998113996939610048874050003742826387488529753915842994848191317557340324967553917162114595998338134427746933517898817335502226565959323530615102308785532456273305740621864960619447491215988757923558199814165000103753069429076214837314280557081192982225246794198202769541062834652597930013185721772069521212358434662832328901608389562784721755261759602606510993232893993655503762223419964203113189485880010598425893741588755728706891880656548748099976102365606277310330727880728504059797162580661309277255158012171246903557736732029580333186421686558368784563520926237557897832647176852579582230125013511362217822638780723495138763161458392113053366025626875232320881708349316681305572305989363632370068588683629378665918596081792555375260844304402003512301304176649686342248731004147033380424865054224404331384120180044244741175058728255766304030633902136745793162525132945331428277039659958035249060396565182045925515028771710912638271757224051590287429504627102712320515430643832367972209925750592610670585603730094868131991610794451865359657216720119519101929630240392942835239078009781067230838037253357663114620447916914502725921953963898960069446413199895171984435771814115356421155244177211446785334140504743069424741151876012052328128846884351771765486099476066974364038084055347105680758410209041260180907190428541510286504381170588979995327501795851811672451638621483562983575614392733022018401996539356480151067479135890703989877952033969773088125743677788777700888592061575003207544325355137410752993084258288490942941875021516816099035259787893100507836997081390839744126123061624667669573630099752066351613402787207113179869859714568013662403083535148527336731987907378219262432940413237085801291257431862621667636987942412327797082368881686772815089847640734439049115834642253596461613209497701899811320065207615259178352254674240968889451906463962003449294245378277346485528387992631356331215629764545160247649839710333169361466712025362609224893196856026964847374185564863263854833462120968244278321241736209661929210776374265109770309855430679072681219214819449285271113798751228713503921313943810817564455524669003426558291868162498698373400868693749599983714244428341720491802995273200318093347776278079637671922650201579230336276278743100620162474944035761772546672242100157163718785121506058112041944781043628053392671837651223906096408562875922118135875392027397902517042909766392971453327964131951298979606106058220821328178130693256007178672382146402584394889523309305969337780432973924153460549924957101831177633982202515056103281479570748022515711470531556950068183255766903262833695929901672606410770265184652828105391240905258566661011303430221550481889790847886741291517107314832008678946386251514760043984096670051262291027582297729954399739048392421801412594357867346368479830667550512251942787036850507031386533157169667260589960238458616179020869578198341915890135366846057785831857237285136288150098546464311964509395969902176860042505223734228107395051237262139435158220045791247166972796880561946685863696044658673474104945391743633113698010142582922788883144373108740039703533093887265579016248402397700819852571221908712922151728743941557374417306054237394133634347506384281819342034887778466468161627622241337744971458931705160934182902426088139565578878686284017398430025995585991284249125772544598511330438699643962029560950763771453233391238360300273420601031989463031607127289390878015431173976231556326941995461245691115550864151218171114919872829502818040190233104172732139478482660288644590273210298255549716941618911655638513116940330686014983463103718388958619451574943995638271478688765204754999014245533871087711124640253637441564181924564263810821151735861096122842801424021120917832885143084998789139596935089752682120883060120830169459853232823637681371023887220478556447426105080606228773760742513753849802203599539630877184510228309797442353509555583075393945391322849351184091469245259279920147424179586394457522890953720465431521097501890423317089012062778792334769667461505679961387641136416076487931834186596065954522490663039166201586623579688953797194522481546092599850237498919842001074583587099725487984732684872778730409482566421346049941250553248377985680674721181711403457522785287096774491817039760149564297367710798665694142326618236241001561143101389608456486162883510641305723848375446186843407618081348884309864177571661585967060959418744485633213210037676585852124827498311530418597519387516860360011582092774515829961220521932233896536964260826500762618053352871932860865935417849045956991454548163269729727412742028200239186770962436749028933593609896278117550530613188481042906106451589569098467330327697555263843022504604367591696609387961374762162160260937474006595340667624931426505670869978135790815811095268593341602517483517364093807396120708576195934912425678382743334833309836687288504995947405891065658237469368329474620839929017622232288136250481001882618683692113633387778932340288376240659501332717762252445544606248108277230233207652808952479693193126132754995694099625456423924363985973154720796243775180421908120773221815860268332126527799853772515426199863815367889260917115064187521817983488742883036433311888687923838377794347291812450766798995433898609449367675043092583032536972291003256014197512683712169841424369717857105216165920991182885793136521989388738381383691878543902988835723902147504376671037423130069504883762653186376129528696051909361569032300715592680285533939758447216357171246539460076714914474794983418578125581860345460135806183452147123223002216547284951809529558473360112173882290428228846677727187560770385121860078978849534520709714292756402922418770781567901513212107901909821565076492702541557894024985971942163622704517944532441994054220975474035180159941996419713602990867416152790096016655079740166404920981686514793160524032642922604834201778104698803871492783021572269933336303782851869976645656925650531154340026433995704262535179650140443861676561762383057620531989555202304006538365275551218791083351047063053274846921476497432908903015114098917864083915252719074793669603401615261517282657148449947291835660546508390764273330524127352739050651595730579664225867150337172053697174435028997971000403412471410261690974136672708174568891664242641318935298157399383042167445910627489612204020945216791817547583995303179979169055968011227254679125498353566403073634960317371783424890935239190291832090538514194781759822300415784668666187624637071771425899235811780329650188030007336315659085149849109359788770078863667992924177847498832505204803419694992835188434411657146602420720815732741180344629167655590249063698521439430749566979831803519413974248241847227228202226132236968858245796741183062921500976491662154577985878832496178309133123320148129114776745398379771974815782095320265047757339685217700626323521100750670128368104032065912514198213830492253813501967374551686163542877852015541537374854352800702105959897569480901636860542152976728044560533109968042902352540677431687007067469206685581136049286947425794188705808892702384858116605286123649912640284493229469306097314804919841586147429380289034109296065814465724876081271383953490965103092892740343199922783693749511766344195736163750823299558108331430576764589158560777408040517845608299690525633509402530621135169600114854195438366533079350148872409283698342209746550584644522047368280241448996284224253576432548172732201821919425666942556294536890601778684011673899243593748163362617338168339830763410418032903903909801187144043650999887583469731071804504721376099510686588494316532445976808931630652945844633977227863852901218997284126952808458814421095230905100806508817160897178451178670204567424206496174286031389093325966255004793593403562891182799078728372962817800395783301349667084007471778069785198414262272272937472179709201385427013754469970165744949307427054869605152248366348641645849571326072450382238913785952690975080610820445389004572746031211881476766663084704457472707150067351849859730706440935740077039624279503873263414826129142100917581652911734807783983330601566239051966413084835102926518504999090170447225554779181627187162712819854653049516070873696155984391502649599302731655461089579844772058244141530147020083474591944531167166233739692789490205524946015347814690584664738051101919514205395457616595249455760744095843338669114221091406326049437017079585599859190321953643884785736422613137316668401252425402622087204960740763030321976968492116016668898524304282763994523856399518781756376776373958022197309338545381943213776199429943832798890079714258802846446235480265583476656356618638213362553470160105800018355267244927666841703425377417724001967453541067898184013031942065804512108489418260102280416752963227736498683003831261087396123536536544474409971159795904437110797100488198510726364977930641428025611431479770450207710809167717146693466359681024159570052507545697710324503641120698091681240610137347311946250155692351251694170144202995061946062344616130662253559751982075378106364613241194374757361626160504477850823700172236339709705806069828521207342956403761584450737912338015472781753294653064002896768407389384056511606474005216939529890122447040698722278019991386758779093305440435722646941808989077852278267978168872295576604985539252825552482036480460502786489255535049042791964364941427535600167138327689533570339868214386229161174154998104157260005577008910610593962276328679782365624600988350282307986307036933853486723272230440835104715916513010604036738198471303211639754735599761585691891042077415642157700209794194583438161424199933230956728183651028569574850175498579371060887792504695111682181087257623414845210234378401926644163977423787279597710273108286885045172660337168563648698128530964253249169229885059806395169469536958760768568938821578169981151530755891304862839204635301179339144782362859417948261163912493409150869071717372889549528397433915395737029139564053426498614155918046568923654943703166405841970767333964562111458742688353773541007461471007770251536712455451493437120364272970147467949109248808848921084444704395343456974299398132384832055970247835970791919925397001955861979078493107251870598358121442572168932583021845380823689683877646454608902287195838966488915956634123401226532949072404418033934670449926197878125757050872675392364269436437025808914066121682227106472430872705101060236063289024506814972226425041008920068984287903866184581567972350894789663093341420961585075917957598983125308206113246654305746668311838367723991764368895476886287762767043232542095521558426528960811723152893946275778825042301206143529633400245350642353235180901635903260135398813227991670422365886323558259142742091300757429844596386180320528901320484487137953485150206515507702498691747161402949583341014917721245178763989251927093263693320989670269623802855382985704998968403539983856328490748986334044500799951655741790309021487784156087484413837194141277968678958977812998679263264676718487021937839015699382262555456992245359940337623299126385269771125856608553295546209496200990945181655130916012847892694982523525201127690982902394258867367670460129707495420070179938029057845213269682747077554743341960792891000476499629761670555346252442591887828838505716427267674007414404263413663956681844999832903104203239879270738158712331684149236721255897511534923245168444902339881703241434415658958843249586966455251946212003194118905132596458397001321446078995701579156879280732557190138422584993833355703430515370040057734541374121372637610251848634027073603743215752639699698966702201320776828968261621939097563170599665832004278610048542840860709895939266058322217492409790858715050138129373665559579568351015053149804735335557212059692613533706796900066590238872484550698130699153073392993038444533614839109635819749890279392964397037881194081641272987431477508999865304816896074064217128761741754598277778007016668735238094688004470509184531252131196920479193955808634878201835068036662402589735864044476660364536992733068584290167864263919766254817161894965221743137594571756558015741304182663759841278798618147364031424873167975285657887375458703926547779499978333170290287013215383048425553886432370790833801240681540120122252679717939883788980050552580108322788391478496728190783252097924416686351980237947919191062845083039446406171446313521156159376554456385910033185091674161692919361290134243378116673369264786685990456151370497178184430831432070061579945265528546215203874570084251672372831977104807826477523542894205012033067188225169300506495778326117942011701833473989847138961485029739421011551438512365442778032575577010460300801251258019526062727848200954166033016150284825155532005255871606106590991612690736368749166627592992440358653957568339459818124409727428952083679089010169516195081423413916286810769266048576334813747872821810611328038962911914453051521550093515804807086513078564768914667001352046946359358439536747209071281932778776536267150805459525578757527085814363496421419170380193718967278300008500898310028265508164305512885329102047060009620884553117587600688178988026404613606752856541695022303055163290102579836188710128467681692717475110190593396196621562645888014107221844087187772203400436203411292354370445716715230097647478953041319103038971750208870574014107914867306346185600753827844426639561471941562193221383911745967526085174990794191523778493436848035789374721201153895645409243045129195862827980880530468814188037838786341816346335860599802366447036178658766926654045681916092197277249864628586060555973712774148997483938123052738839458937997791850555093945470985905725620035432433648864946706746394779925796361770933315539545683298341430903292388431010055727678639664853064392212035528132791384082660681833362615415498880823086310373252890708552642201929102612986792187653092833638002005744539347671580291708370804294830235970952479872455975625517045097397454783183378921365997028548413727520336845494371009862825359834880479167894544364479292533315054442781623344459034157721966344712666200914544610645165661437363226994020056696964759675040098297468227766541587073508898883313165042548108566486570519220275930260754658888865112647183467513569798863290260821480202268451509643880919661768610077444105224699796805595729722457576466110786263481336175222183714951289550347525451146092581122467579400358328446313960524810482801352747134288659835407614097186567462571181275164006920468266266599411288741149900922656336799136767391859966737788467596429912103546486139420128097297624225191021331160413638098525171906091791113770988332715368739868085029495021350716279005707672515014736333869594611267317333510891320390363118012674364199317984503955981082360140283842707264116422640540162963991674671537901769125603928386478270868606989737680201762068270424980496438528105186107362795120036045813475395660973048864708676277165203444583710556620957795423058516457926385161966929670730773897658800525577552049259563597286695490965998403072794259828624877859654723642621856884880012145302733963988514532682620805060637770200338483727850003521042482368820876496888526409916464319265850370645051548054528698315420602391982995738105807240652116824038473169472452282031729525793222382870045459446660841745750304583305269052877026690319446331657841363531548284585055393674617498758675482904109640763295002402585887806379406580232637386087201268985963770964958496584742151102679147883811940917105358948374783592322718761228959684163558250465822896509126576777582264427649522766154577340303357893776430211858972963991327897007923900555079306201377443322669150672359761057391565387000904997010066333801446785112432623844110346932633272493112015586616133799083416415388933342427322017514635766464695803696832549171597516825370361938376062645472002223706655213795490567362899717970132187198661082054885742915028336881476372856833405413107030765545908210282378276037321731718125561215300247096389340037978165454685974587066733110919204559686328721509708638899773800130165941119758336720163314348880714532087281274321173156589509282702585962833205537567418877824257343679807877063065685319389843055161582956850551223865822540444883313280498341680388647568978906070627669219752580403999609514372577798330865071486451533194905659920298539591383794120192840856757769244604846604368810052734703835398521609810324382871261045875374914120811535155604209241125857631347517693056264262104676745621008620633382277724392203763105529549093044122364010277482106538896692597731738883435815846591066958613366804671158354824168130673841910994171638119294771482072681528185409273209718158183852907087508364745352897122693330710650687792893005432843413720150036317831627847881282444980435683353085072849872015403612560150912413621536180626306170868093538174599073899147502149933463966382120519004873738153684679484597516802329899330693961854083850799490268330459968277962348657988738996332359530899584408051765289838750919180109224099196922156794320650536283853283740316611654094534142396268006524904909175766123648586392293761319565703651784876414389217159734756854722802518525965691920666071998951421750865649937062810196214626022440302439732648062509115863193411407648324181740294574561216218863823358870332542164544747172800924929925603566353187236040410357928213559757834106206572213372354668274276549780609719327853522723560369337232817629062099244082664215609106032371656183157355407881483114405845483488489129670133344400884791236186826438811106666623694838766012072036804684749153137403594921375452457851866663975116602071467834764259411673540043602719032944810769972628351589732162647053814260335842639894221090813765401994444819985158344170286044973976911966331926796816129621724415461616955610902881320693063883498225817405145515635814452645544387334046631127198700643402704870194562883272876748334234278414101563339590308826314746674532606736156099805865258254469351100348143982026468146812432877211218078289954792918879890755099437493760749876328960744607822001584161270684540293832979393832551292531258248956161324770393042667846871814170572725582826855302410060873271302180169852069165742190825612591159334645927716213516196550556611086677090783430951315831279517124480379419956734115033176045790879529640488680399486049728827470763249129690068267347770756016915898017336850670767719075127763626778905287994935595121167371642384493806499378570335846959463084529034081392799679088166066349998315399213959911106061334717734506829083812271260088686557628597820977447426613545843524457101418397023962622178497217719418005882352090942782895330875659122359482039214294059763172471642625910725518165455723989267729934900450886907946201634959154079213213862303630434956383908717113635766347438831754393616494130746187733755606243014711766964376872806494982303129891804437371134291014281795970790798299698671973030690138529063199700716044270344290624142554393973735652246640231109076486169141790316454737470970042534611756984828081420045251997688607430178718895199720153776781938753554266123585443100415663412833580634620732103902795017741851540340491169680665340617532100137303430264148325397028446958688288440178745017183344667392736586366006230613307579254105676513158657029903857765948036854536567639950158609446385419769307292322604491939056623894865238397326509450336981718309516805354683860946569924176774329062366455451957992481647782407816610794513516449092726704166086981187100472376911575004310681091739553220361951567481111464134183014577570168020206372393194884343392944396187129061938335640124975966805502102179950621592150867467661075212006341226149879660348650295285713075570448169161045906299480222353291172052534516575669073790636483630568804534026775488087839188837415412000958278243578807233028433585348972898664899750198369437488456703110336911836810853116937257260739566287454557474186982852999786071844491051856262613309478700334008829170608009712777803621268141661465729998272795599793545750246025109560491327315880074330643815824730975151873643684211938696654863454557185711732557084770040195318566900822178533322827407709283412015854051619590639409524779092266055296407733872209675169622661366817595035301566275968775842211913712443890857890666870627665805441176625633987516370325576350250265295928071106001464275156674315295540960297354877686427681757777366020656385123419878582668453369053594476872861975117760843336827175531819580928775430891018149368021366767743819140883628253768693085383742629783832987294092633280459446799464033031557498432664699482598671126880930537885052216947201753970305393093096957886754516007897772560874963543456560711402842942470372877382457480232094274765554878153282363369722827686443838824000659648714781526051471173922014791270821846341297575971055909902729019907721200634837414582789117938950782104125248942783954544465305189051053240724176756413889179503688043460560921932266527943052019285954364632285143477362076723895901776404602566434630969612186569956305517301008370873468287828854358470138350075643218463043551897201199334753502417127485728656889814631983330921645897984591025414588317795037126017704375275075385955732848319739154404515987144475165639712115878965754269055202296133187675533067473016552754344965815244662974879521768631916407770380424650793140876531302522413016123343647634532875388006700320111180760538710474579673127336838221159594927033329186610599483821327458371540915717493958805881936634800689517780868694650933092560635255950474461676888637265506761579694953838163764595687209715072710215042503237190406505386351355795759413479456507444286776597530607971374520480908776568348864036931870830225922979211807687410238148065746314514143412337383430524988086540210797806547107723265560978304799917186173694517334472409990448703699010942505589850025309235458352514088044332989552706706815480883924078640434248355998018575763642330625378726173769317471039141945438209766630959047511497373002645690378018077111614399818871096638387781848790805071442612114889728729393269205980337383008987952300012756976613014710213638299227295045690327781224893423296605093726849240715903295271786036134693617264972079404556498322966996091128873849461167362620225309549315653834896374799011760141556142274464388474808126476457934573479230863786778727389108331514318541931594823472908078848309503288726457656175099156429776387969082384341611383202852066050091411176888225254494320710083088744242742442318566253065988349068057623403389830703224177325197217327841573748849644280453237977099740059937604531022848506920830024550412873575740544956385298457210062517286334152747800742693178051870293112374173968612270257504954642748568497187625150021795261661029378735762276728140735721123451314934177494717833425803871761440982573234123195358120392833088754537409401303544637582450199199866813880955896969668183455647109908369054788307818868516890312632700470167273018299557442199675236611824919676454685734582033412591912650114606927315571071888807027170249530874116658110556841322745211741030171301717923380855827808924784496269255435210152634867570876292133644625589069886135171126201215687298513141732678529488055122298312623247477505424529297485280342239195148850729742660293335936657699794899600524655138698467765472401123081334355869291073217211911197907994205047598739816860285579544218634550939972897915735187410717140823745467853605067181606159221363255644360418699494528104002180029764346164340985971535665501352238771534487583880743656100556688987934465338068004587687976156780221647998773287693794664965282652684303105873792220873717696357289783586702540558442667258120281716627619097151988539873666334831426998129541261735250747905772289708148905329531427476746627231686099999619950472339067642385821462813579065797546498974013858598476981199088716005060386498645928817403552551901104222040824967114110744524880889045539382781243321866485222184170398408909768493696268524899111602560895604037270312311465221884669767216408611023239914403138711244480737168605106632714447009592387956609378060973336076850163253422538182333052032070522159631310326033879907041381181202038052607990308269675516376470672166521926021883182884894624325905774370859307670698788463636850529248945069683653466321962162264195797845465967255486702342678671912301448837115836996661083581420520708566628873099867975431910004892319280024377827765912870025786657919536025008532410077369231481608875725253381777311639964037204513312680564497955725175051379082698109742089314719328796320943529566862828013654430472574202729157799811021450621752287640751849830036379872588345038035173054773944614170052330830208899911894435004812877336121798617887931351078461924395706874226746513809547046603753312905467292281920862149472048198584872338442706603903056391384357986956005040434371137659910219878277116436723421472876879094724492369427328563617646459298626924288364917539651374839997351377226029857623342145032644355225024331950322869879955499910461536719094422273993723954280111628403792155733062550890887372477545011813429765136026710057476657780269864099414933215156861293242465971389037324097564159860493567041427447977969508431860730224119946400887404404847520994735587799884652697785151126255557908491138986041039407461148977534052533856025797414721910008731588007249043352979434528403577478360596113378773935934004990096780736094718440797453457803861663855852306642878402218701456440753176854209401513221130956225225048595542666567525081730862087400137356335371489164100476614985513156482085259111848632930423890208365129839405315866543526967793402165623357380803351304577190767706111835795441383893474673515699200358898943945344481332177694609519638721242815124655636426545540921819702432887038550211919163538339103948251869321140479441731777397392839018175142364772388208705595423181485576954566331827807145471667541612659225802420537771058359966054787822645368013584713789187314944213233603102715362734053705805781948749459779574407734947881834565585627939772910534939934465642367108975783671386716141794044597795041306033263522672576416069035650741112997804861845181080214517802476786889638621184768327378219726401660499022824942817052878968516433328767840472121962998540222455783813028853122563980810905351788770295827935076909740830271467756974482010686951936966772589288205744930328661704967269747885935882296037368087507991211306005803816494517155404044515429205130475397356741595781769818606860628145878962812503716957605828294586427892002573650967158104482904488421189410175425569504482255962714527862546319224029967440557092154826916000990012208110953450943976922457840733492485245293123357381076141074599623237867935820282596052135441887800079384500450250928281018038788150950559375713105669190991317724277127401342910694725050720667006096067962151357520250967348853414247944287054541497490618295078401290700395871107528652526840503841580197053529217184368727976446228119505384404023241918286174577259931992429548386407656309510826883903713059529314465857397879171959756034586955598964679403080087264704093588344520997001358230723865912263091957665205553749772695334554786406260191960046802386082019140173938678939110469043830386506539660928205413303819569737859236703366921774000942554169037094674330216583706713451519249085793442195331176970133161109590318259495200109910005141406521565750176721343199976994606605659403872715385967445172884499707906626563897801777742632632093065126353239476722816483344459889448811285624911723353048033120791684602083253459435783082344878030540982417037476339524004481742489455452655907567949009789431995330701958509914089492114055263454419312821268857069174179986648917566481381233576338627670788121362642569464479449430349311373132283544295920465788107787271239543664202936188028585107919614998034388413120026819686590678153866547900884633318279796246353687165343257977744980438882832452534449347226603158431988506989435349757229490975398540747860404305156490556906059622681539117322188693845639010322140764543431866994082547261061394942552775121928863186944852013074360436600248700167785686104898148286158950757635132649263339328752539155271082036481698311087011129801317002575167088292693976020765141233336868465013430814319213254959011332499408280095737059167770805820496113885228617907595742621957314105343562255512114726833612741373574788169788374118581429466477605629205186609730912691906851413840990277578937667388068912069347622193871805583550404337972004593348533574081745165689160947190119940549188118917372830385904866584854702850974747572292395980546826039389247629809238229940417192999055215665401936546622897675205431403551226569934056883236320431672846138696132273363800609766958086182146379592149968959656578108235056078460891758263459016775392537161748891691538931564918988754364549736665447090998269735262164288859179343228416390693723654620506868178595963800612213351531101749466323663774035071353956096519303026758855913010376649250276800742601958385108465846587154981468811667961782195697081337053657451973898072478495629698382819595723300098651670715124470340105362472781976628777989135430401927775845089847331921998574536361453739163354777688920600995363050648887451673074564152203560793407362215582128653028377537362008911918125870004429166230476922688476647668549790930944593093655896025005713619653315683718754838395806290946745923107016430799560526666268238572889705127416322394538448233204405161103002250100588314694739597240236783408586008249445291766387742535127871204184458747404681360920170301702459724253787768741576068370136789212216947908842650929039509716776435473663403432176501041871519743470400055866700025149642804051857429391215366357575349992162387814294399415663978065672644435038965186116186593473240843102608743022706285868497291688164414578428772936746760409425896637486315619236291573799789915805242236563950932849973512522071225434002827245920701254000361240813071000266000097686402422929259063452996058226785388237494077872316042842516154964183814854284815444233662942960512719200776538485843390834455238863463172840085892148142793734155963882276125764180595289436502691091156729782966880425887587178268918415335569553120387583909552276797009166499248343660571130768700346059302083139136414770888349499150408343996266344131316495463849001411837924205480185390222672368114849728316690026317704207605737283626889238172163850758343903973966066435647474939556538018027103609093124480730805935657612642279138408628473906053653362078874485077400420381002247164147824238631895844333687970249902568238258632087399663186917701725517598235761954067958551820224824119460453632818830355985589463353487913687312283383347635748973995691217557955846425925976754618234030398414351019048948670585343131253028263506823676584915325507466817442742139400106284841547768834138790453391628190596536563905867430369250691526050258658875336186833876281199325556015571132969377171775892804623707772783689317902229118371504833401948347403332374123918853815859090541064128656335912100944683335548576845360941418058540827993892748540152040502000577318828426296666212599643271256874175382350879472317066000054882288876399647695942202636271814330705821603663530100522657112205296679295092386121080547364638654650269266065890844594312589379982167290839508620794166355407439089275710635390006559144473090953962002468843913911421233698254711559152119069342023931654420122439145870046646857490805604370388745932824915666724970529554784461046269766724309967182906816901391218428295395529524591306761853327317620271063264459829398206699922052595568065781485338111587619416574512454799842009274214411863005012631909360888772120845887384912150140961031095683461130362668574656690696673952646170890378334555510569102398127124277982510465566667312965004770796634015337894511431546664809107962335829060937846859626344308455580587610337766787163509520518226576767213915188752981961563201818935050830776202324912511307741759266929075573819876484826319839809486610768327893731816202275487792478770563260839069452045217431283027414366068555782696379413625205662717001625482998270513353299258830419636419481812176370629396689499157754547658654409531567215990449796832422566919441885728953851014202197389652572003796434634129705055925165882799821345817073665530610476735977336883958913810785597891538851518014833904203737630550839915332682884857200081881146596297888999995390635693143128861261816011469956222537990806110795939681637072897245344498374160820824767950478293424110395655110589416984910542886942856908594432186186163523766564244995755380034434182641496179485409854256012305325817626031328082310225474445572412277043730795525936068210415463633586532626440499931979204128220642627745155244436077214612904643864062807522020823918864413426286527552913273742838350370214944587674356588005500779210977738852647974338579478673434995350038809210857545641428764888536922136263635773565951055951877779664608619984434525799941067421155943156587382611219293719106232508540910649744289898757842314279851208167216154500803032797400494049460891890722716542652628774262008668188099564697602026459715805112850039674562495918088060558145400538259956839768026134958145395115675057089300646293062139314280696357533678177672088672524856482671372257384489714949126789392986827829593209786257001750818937827193959183919835593320575635427707771916278537939798250548966553309748711663289476803913476415483353217333702562340735348709675129602265679197350101871076833154838909058691308864482202782188461074022261945754827739764947133859344412852371431453176158410264062183139413907075299085335486530221628271692410531683076354591174332066592600443934130583513918648588370512948339480570691080883684995473636660821548751533826637831301493833533752415976493543798773762503506213499577369754311863743073517487907155407227331311121199190859770689402961111621301048763021203525160788626296493163506487866584734247862180031267588012349089142873758169018152313018501253269127957966440531168721487008487477918656356336323982990759721931806783236854636537090500783913909555014631869288425224923594207064210408498388492481698934919888162840183079620158227484815647329661420509285534214755848478344470637531598427146376738732414483639996787916353224850524641729225958110158090997537704961213116408822949662750361523182564956830218475987429208037403672227539153470042082761758831240467049356251349046280910272636175585326039499493678041699080418431285258604621841612726641397256560055314846445775337266338052425604108751679356485901661888981380550005173019046827443719311835546012756783374490923890334756826309989678425144265550452875985679157638069249859341451759429371237811594206401244184515241904189128627920990349562726512660829646769584983944258689275921220491359542799975372917448460231340106559545666673505115773728300315761984251866104497594460559991980212469604188824911379532382341902298550565741758202301485273546708255766220168165310194366797402471799026901231308882093996100737649791349804957233605320627159814748351202886945362046188598783944114005240252655707531173809148972517076779121786813625319538270787078000030189498283456215190037307571908290116828350168418917343646239316745774939193791690986858563873651461529203205749685431160665314669845840472969395113800079619176613677700838572098351198490804504338709219155512616651930174839556103685455987008523731565401665488546961903950194876577311510464138129796961270943854239151180940929216630479262684194374870728521201428886479601996535798667343280666932530838083603726292422697524887754186317287433182257422557329023037865022748383383840426632402857576074770068554213758734399359307255939861108028123677381683183205752993657709176428375704728526088755020218817304380594586762982114669677217752002718246166576685408378992675941368799541760011577427878332992699965219142292942537753442638351875563728172697075093674377422567380008418006364363846281589721864968783081619965484674199803815770123645963192480879144660236773351332040944654743496751658992709770482587625473792113591404702130550865016005095888401284613192625084612793019108864873231901575066623186063567509934059863342350976774843142502779146147915359851922094061115087966372247834898380938794243532398772681656778049714090883059908960937988410001311675404982250876027369008378877739823056440437309807744390057052741918742804765471677850867793918010857121502169259367525067439898391258404858530343602625751412519020251395442384259240332833698534602154386381754092257493296602201299540596075419222582630206585859878064510733472129755019231308557223002742286442965096280308921340923160354560240425009708369981997546299360825207075307650496571342486255918093788152229320813008532287955169215941310141736281352634208834898319190929180982056499863501908734530786687334553313305216837071348512102375993915761388172372098865898793210607406039842195067185830474818179266278682758465020459346233953836530638162747235811436679841214274410927839314198399202214426806085946408600681547553554432959913098285582723285406421463177740483629169342866739099905209075022865616233671265201725540229658592713503366970128973280515851000174123505518330615223194606474055695231532244362582443498178458239864447886596365975717480755692526133456645040415239848615756956776237680752243630566658029466501301834343417666160688845765837098751278801281044490779224224812581445172437200064282934577275694098343188249843433527371118827783922762333064104412516882404019430980032880383008151179770509887342651174025451333520662273372007627357591690534476695609987539720179908821635791816224356542686632714303039865218401477988510239537831688901478869186230368873184880222552243924919727297038401243578493079867509169442312080370349785988936990862458345239009166889251890494366131412992876883219992112972826046660950722008033679952570462534338103957276960041328703725765917750511671734846419530342786645478806858057411965092274885896652861722027849577063323192417476817175657846192576635894967179041541503402560075948710772654391989550014776425740153980518327254502841613899059469971908727697524205175461675608901984789479548885794585292930339522371972326780542629449544798130195896529850679783425272916872107531552224071793212289028065333997989434434313613383718118367294422192649350336758275253521533069366385083891025738078274662055940138295898634594803148168948101562144362389245026067434745819362977207539226369286623163350118671129933882076593629704953820609883937353364567761927208116153418452337959872253836332191203334068774748262652593651820377347156606454865863009874291096831244396908075948405562541779733127241544017306605969762125706526009981825056307777866714151524524772141695575847714682589675823909546453799844360476331570794189673878894698017145077823562490792679146290156638977039696900741774239822197865986635242608565673162344828725923581312696597371499706185707312223211077956168697156603191706288400876973795915011565524136190131404314834224260746827364898489124454520586382900398548334727951326301113192415308151723573208314186048401161785603990290725042376640843711233865612903781648869471046093623121743335738552704458824380928730092838826102216105066485806170283476235895705926069341237200780172126716335893757228878188775949796926446789898219556024069600616523960904315055215813905081733515849027591427283040303720587898450073144239586566097819876956042694848832357525743375013810770072113740810811351309380788377565693523029165170201166283586354045570350973022017969397339378650490673124109353532664574517305316257179919320499827401930645681671317948162115287935554418880770712438499883033998654333176599594233614845284193213131263769218340739097918907670344434464769105746609038629047605554298443792460738352882820903739215768621325414231208419789917382040568360249886074612681899138710361995217767079704770485018273772415304919537025125530515210091582880122084996548560207261315306918965032219407193037754840175453610793305899794087848270455471131980250288904200383923508367280730297976533705307353340053734996454874609488754823015439929620987656848834154461864194591210806112123306784933085814965979362784602927387971940665995506581974326852534329262238666635701303968320839750860538739526909486518004707365177995279205407798204045506286274839513864932502628832022629221699723609141273060495670811337921769694659704973038151247973019924599745110086802741980030446743462501503702012020740434339953472979199977874700044489187236219554779658434371498290714903783452356480650763666413526427578360036984363806581152667744732876500830768725796219656528108255633316207424285552953669112726000654993512729508954396761665379926095589458615961789016672811068870332745165543655095071424392958292196322758652624080719896813984499490338982429163337000148352616484517601181857509507682114317501284462384477728368439264215766362626980688698262982296322809550237071416044691543535109273768532988122118145938322560640259259266514190952697362080842590229389346143527514659860706118195628572966211097172796005142412847323829511094738370475244008459424919297932971367576498150602533668145782590108107932819290031117151953445891807407028873190990849779342213772336096802018223244894765345533356254211204067171897433510513438631372453492999871338098655461907449522786017069863118357736563383569166854541640091179759423554199607380065703065373353894032657872001943105866489797949870498707056405940277173489654662503807375125853071386415002980674063943294181127312779864988908425068504070295994931594297804540136673375998024656429673948184831203051984574827710253379666939191157152656353861510891365379129796634446107107800410556621273496827397890758944997964167818399825838026101708470739632501409799363986846432277963007188701132802811691126248394826572787203498070523914240866643114982882407298744023160097994496962498512533067782146773867112475805701746149362987929142115366886418159878557265526712035528784657909859420294534530497614981485156472995522848510715102013997797572888732204279910680468955476597350420994587158274920725030554131875504536066529756537168365256886476565278814416749571416466939660065308595959101478193398352109593020137698901323383374443704691187296624363620570734554961498156845805402513455224956596092925257073106856353047309563615421267783435133785876167752310901051484612158009733423222060347764090646965008581519958908911559816851389772977033744505982815676061788083103376468230682208181906976008054001080252618803770856610113274937270378204992967251875583449604176408115897855425319420082155504018084998432464678235025685015383595146386726818319566346708741808009337613765113056923524957970289298283856644330018968592833880365085919369219906018720172904048336923234563650633768664521195857172414628342722188307882401002248413458769604168985308655348490058676698006001785842294384838417099298978536924263184483960503047759894878686638400821201560707555663941012466829970004428481669265538512444346525194042254918980812351444343147434579059808984493229205772087477864651104338351147687584666226792810731049004484949960984550831222710700388957515551775304457794554347588189566534553064576195772270003351846477038096550570956866405797719961673296315692412536403237232732889357806522380690418830694087166488776209658110489101165658291240037719072822770645766111342156172636062273334367279474446380370787985148976879264954103963102707280429238598410711823327813049078221661209522294489630787637981775997643813360363866032253556340381632993616809202778351978319041554443299064261373758183007648428630736069783729012691312504045547217045178887948618839797349744922474358289333117806873909481409546098961165861983744448048910421784582639211451728073214252772699686572576206237296039380000266664371567068466348623380876095297421435705399885237548043186468437387908051167952282401388399903984654832562726825065370555654489862235463364446997944853116507336942909545644175545378899289139381674425096094656992206688239232088445092772671745985909900268940155162334957616645261882679070878522345424379294146579619949793051100172207447862321287960105061562021554801810777829447251934640997830810446955128493332326703911360803263636574552501388328713828626395487502044559566049374146275104133179437471514315162630580407326310375724548852537599217251353961561201011551950719808526730921234787999679706291496440836965330619227387242490319282575352622404894455804795394140534247191710801141599342090951718280639994851356299292442696239463140772848496475566190605819817189825316096957992635018937440061065548300313935052269150244491970828031319749543464550929076738094963905633899975121345642138736237987044590984043053048168200911258149750212221660222085019715575340450077264829743796252646306427270864014833633133101272422323515589448015658813358619449764566095611071399109896580513639149577118670188368258699493258576807912859346604689465708698538144404854370270831556714325735598419110459284553760271809048378768305600665328342588448157263412144137641584343103597720475771221294098253663625386521851185790815782743895442534018377437145358096498295524572162587868517338320254411729511658084921081576549056797702140282071712335010561261198529899750935611441422227327798189896120698184942534598877788428303694744188170588774852185184756241451809697711118976169654964917275247574115061989807480272750986508001440615138378252973935411460418633353428176123816641128215388284107217005830775573826492943001937918605186587324038914265680570357773729767507337072926046504289000606864996946616422464875525726334063407373577150325765445085522907465067402675738986477132026226319718871275197993746148524991468495962461834710000580298281194223364058874645072829737720707917461908979220787560691338459058130661284221493275447366116077032719063123067325936734667634891213802496967195708291467173424021903653294601388588160963598124636897292515416770665641696413393742419416904495885282408686610629547386460008162490280882158337004151055876636622183617815213685034369984170553784720908697181032742365871725720141168935273104171349945360026096511815002951340505385397544382557395581203012808650329209879863069436474697923053216962114089473766790813370575018725807878676916163253640835716305233906488042020692284212949081382543928819947306991002002676006521874620102276882670338599845152598352848654453223150300513104011753080691141850487342588172385078093936158777768170884832691421241970129808278902710437559513553888519158130749975050803792541705633459625599085573426527117917450575427724746337732791979138722863930923908388650060770659280281879561897015788503563820368779620283485847687043300404715902622677492586214871163112567533544454241550213387567754545978269450533110443900154412737031156383165968315630348184635604998431392106375525353977759350422266822188755289889408154415740888523982489359309025760609545384207604503685392466236023824363258471918651264364000122007482348572210286839518994955299599876909291287772124306551627914032463332379587009586708151803798483748775501962444244569659502687257524439825171252527711207607678785419437604728527632648629050633971932599243795052150553898346324326228488716292289804844830600525965714312241889675334298544512361801571756255347930902034488594082928015653105258887351473118141461341784262035321873278670664105446184448542096533436965083494960107682889244892459592010409842123844238855693034856168901015256914247892098114878164686430608017904160564473113040810104511135137929834392185065534012342541572536825627488101229470923707798183241046657516567954018106881915866507362287963664026350644290686191152045780664268061085131172922039035763196343241675239268839697876134710125181780693173295347346945364881328578780981344734806238552561418234517465129584069096301969410307869353796374935424179736487192593370604281333657959766967686245478525942830776141845624734441538580927268370795698642419363896311945744588610282868744084125896806487282905326005147533634098167481489471890508486848647556657017508043747930811263903750244313067591327334584294330319586405195411935594100442468257362881965913451941445811459230579591099975243009306048504581352867093063943907348347577868881709013945129743626052907099424885467216091151163191541124444335917675291396382421741521100102197744390806518323820308804109657746553945729882869791451852066216464723776283033341615717711221678435057277778964378081770202641203732421823027243964742786244464147763300487165703968659456371414448635985963960430090042462479509714668118466009579442902747407719814843285777326850541577725349791914168442131089978273492934677400162973636325311172907313767890968341802233288765010508095849400685018010667981092292210982262096831892152814487051203223452176889575902189043106337920907141473880415207351389378029308104790539441945120200576796539895123646457802063863202106966108715015519600207540181999385483999948001671318704274048395866948948856624977128857101591123826033927608805618016432941434011548271610377198625121720331726733727416391727630759040581679586147367299910851519221582146985262864867168236233681994971416619868089918249225991872881010828765247655925488902065278190462875434367808367856803219563961487681187903041027377999227630264901919002023044229062139135118082338295788438871890983261685954448467656652260745361329556911167224210634328027079156164567065720271888885905321972406494243488355355627819452738666622699948725615150030214469928809168964878987886354330512389847349426191425882883373543134547147327689720141808406171708809728454702989279241006518193862011563001392360960395913477067908826473209270197375551970318981973778406433756798923454765967799550577306066564675528271571377609794861226354041273724724553863705253716095285108166370327857632391971405333570266059488073919419052167971633130945715215979279773129123200068763663287771421089558824299617545653790716764068429440691506343954465413496961356420496491883850006061930194286259392512303727435489178844554973455729408706517778217216433297645228727204234901913508817851506574841151285842325492915195331511766723295586609506677995116254935966243593473238767553747726740316636286414225899071503158954721433370696285960361829848525567381763056113406516070307069433046395140471341324259607740075931751697031263429015344083436022395158647259086794907878781426268938031734207950817483642896438195418533048229264059289347763474777395115615609874903597398649213846664682819293572492265086025094469181334708499784513111135285646170690791783840126562260548860728252260309079105250043117759737755675620133793371641325095534047803968715648254069672828171490549577983981738708212898230520291254099358178541208149638580740062268938128905611793691193935149329519357536895402083550112357251820915778695707707629025232742542321661792540418913069183996897170851854335816621158375188789444013382885929767916501812783724933162298295039446140273215703470181863081202744950731859108967522066919526157951586773357982333748141828850338885530907985502087379145850339480188670941912826369591358254819235290893991354229169337957497144435880017206676173269104098618532746141313510399930208512813672172650023503648399548717647078182609512917300113789832683671152149544819214309509746260862421161292652955659222706865582120830100392835615034345829136239998859601497054166794000222781428007162754884775014588380710185390033021756817571776189503133999415637311793353147378383249643794389690054505475771549688193979321724597565304775610720923294753877687183195449808730387068184827862190325347725082303845189462898970367758682590531315043770006947071681101851373716698454141230576624755966351588376748678728717246283413452074211483458805368763905198427880512431573597667833253251157176144140090121248469926133220657605807368857459487934187876298446697079585311403497598729261333005526397385365935302659006537613916985991952257358482730237773447612290423817467947145055518076525582779941429214400238312820792561718904940879654319223007921366658474925235977068539407224561845287821492054999119496113480644698149407752278527123340883455233010080427958641996817509347950341340309523791772940998877968889630183028890536094283904842744909034398612026573537887873028818269427580903881066757260661189715937800415347251532774736452516006912088932315550422671811351433803293619545336117047696616236078891272853131766204885278401146322101355384815538650970070845942068540386978639075325194639570984670058872418024102769788594771682986575596731662329187316187240422825318131502215066080189129446261456432073737932574181565847683796390421553418751344868097961257487946101246254960448425159474063238772368859965655869269707203845602113559441916403310548620871401035658087241257623610395458765082790532969359637328810683910399896281437273519944135202561108839530701551503281651240746227959061097371191279320979349976854810861432326805072418883506371732438140843753034722085530878420648948680645925397816663003809378377654495361055032860866560137050627365117962959842904524379757959402838189168625498904435914148850598648274433459667153256842319534170735855498364834953876644437037661025495680556295330286740103884853500618879544371729995186386847786566295729346312524580666982537160062543483793114102233427139835665389863775670554481725344963130334159711090797784017660093937568957300284511373717871062736665247119515335857067767548980660680674868596860026834601429812723980118028655110926784769646799397295904703635192531070922871758247693202170456037476006263885394307586113422077154939155748179824613482061373910659603976203111081310946641457299494043225388865047692531513477658899133509818703816226415464874009936052026028023078064931966899547599955911331373152170859856855903159220659174985799167203477243890210576774007638635622382467438082780136536144002658764612931087003912416088136169761732000225962848886641345687911356745334820617399491382907021574509821059492390887090406054643084514223333438235802902855583132678391977356067794539025631402130259961460363974644285244628465084815327207543979258915209703032781995921892442884130882052610039140284019965746143132372952201703475054486708277600045313461176526238459187513237872771943283872100857884574875768952848964949473096742235902506462357793050622991263645688816226355537718587198656120620673612888068641002273504388336519116304972194905836258895954432494492463169899062303801280448277824307310081402640434613983899133689780767651463178596180661702167693773713160057439956629334320082716365760015490773506633986349577196238871440014088712282965184688440176529102019737295392815284701563994182823044906581902482236740923649971683273737841158602426872151287296315353600955939851176014178992220733923807859977095081365918369487228619252257985382593621733775306647742401045893633986591354282795780395501359572596521656713075076154804983099686062869575831620642808118015178818325863950659372665964363927759391858051420015956032260530227179971615836991034725830287060658351880433244148438914978798271153026060298435678996637496498743559839599269992823840448002261389454143100850771836909390813597972930696127709518900786631746000801589296818537147230529275639158105079974296164900419064585634980852547912452531292423967108231622705640836893950467274594236184318751223099204949967681263841880268829788094380552184944848374068014708405638672376674833095534429047025313475584093098848007765277517480774199342981207509192420831729099002986274218248160559046735734438322376168602638102619560941515304233075406740485261923324507452957235418256972172768928755900930462810672027019580512380862552593066359089404773856011302728867742918666959084376357082216930782942798973727054994847418618022145166750968973925963803350974965452365868008235821226029305356479169129886736548361318812431179851194211004348525623548757076945291787605053609740118245751023033870801192666489489080046083709297723637755019112527430266252032855782852116769430682796649117262378404984386206974312770255096290361011805783798467133140449839526637809799364412030244475952551689717745143703787928445270729468826048996798305951875295226740981493565393617765037385680896199611095286255585371650805305450897069909692963649446725207457961801178290358723551241639406986222696008683066215979534229320968199439942936448952144650956902085751923827047091596876139871622077141782694781532256313080488215501970294363060873777690190933141694755814299593806049181894221941672481392453310611029688876359680356525788151559513009595518583173104512016711029714730791643011255945784605349958123488378648493819149688583874203235165027523765007913033359854637404327310549570761320704047261356147499272741198249885108734201537902628485204587930941654821975305161208675025138048149365924960785053627229320350571464048774270286181149859572243771354790683993099547083524452754311497719951520803765841525597695521045262684997797402886766313092978671174020451740055509350021901753781647987376218131371085565377706818562802415450557380522291729266592486340196901488825247016079364836218640839506189254440567147036960866336163670717231760462825118821939793600089832498018032718212330765789485242149496994948143361443192222841399946765816957670875929801758784570243848633952512119243134179428735356771917807505669262139027022052092940815036055911770477716796273785678473432787631958937073153343473837127520741199584547067672530336114770573950508579024392332418659984750944709266849371904797844962279379086017349977783685433641300373394916985135867966748107381768068984834073753803791197196843047456098460149524875649238998966212202785316960590697555910162417370194218477600570215163051751665055226343589170749192971253234817027436755398122474373033482245016601037083152885010806770393520082338171215749507841709374498449555347515992122460888148728243305616376761852532825677813463358514517429289222252217246990537346703040837476735840466208326100938607759490194035154160288834231667613370707179853581385326540307489950944915831816935935294884065724333582275308477906659915412454820105941127237725917559740857417449325778496026964685346702219643982726626230633118333943287797823437191632068562574998026257389256541599089345245688862200330528392786998436050694858846858796250916013665842544824420596447555324154407242291252702060382961941164795861535190378872249730290250450800701220758590290478128812028733868801474400547571561107121653630678021731722762111883430382860861060060043961535155000971486068996732986501321545306941310106826589156015927269098779549965354042828196117638488696158735373063041040792699513126629370656348079612161025960134863964428587802606292767131557450627001682693847444723902972478346015991280821650681422596398361863365369881567085592019225958066364241087819116949354945231503965854255131297719186454012319457336703907793978726352733129459181563950373928886181367023519320745913398254042855668809348667233163603177455210231273044569533605891479524270234201955983485591354592161609598391222335604885439684927213827624600370259180346534460374577298541950798699644207818092769808577551835280366534220736751737152052808364525781262775520751180384298200936063865310436989040087040276467200235480689836907895683825639386117343021695183256562171945170231790367335137302448425056884686404285652180371002107291105203276004487956825034410940131212920829193442512740087153705761756367436469121113845779464326114988794045624471750956820119624795775642730281753192958069575943365975546258797535076093574837823046740099451448935464546883164201822344428074574440313303243630258860897530715075400451733507084206426149863485624080444658749532513782587948296490240336134702006487502918537004816308493629314760938916707932073524208546638493399974933336121185123840919684682248707078326279620287944932595309520888080287574837102799345288771539223989957119587828242231201190469935287306326185672521457904328819855422639122527983010296617075841042202876727061525277385470959457331776181402563007876669041407966537586703533353943564848870593228970313679723595525326916434709088370752196116641165192751570322268041419306434066097994933267708216086319640070635683933623334213693819565477284254055212462873579115489443038489991305180212451292548476789968892797663373455951786127066193017760703958673631039641182785329669910358796990474019212979961084037440941468342770659961661277137425485432659163644692294534751692784897473743343689398568603688716745429311815222147494550119523632522432974600066574735403576133169244819012415234347589249651597124663341210523867283892889055529035889525540378759011440547552655039724675031040484220474675426603439033850725790738714978250706893135975229474395644916274373425989633420389113979411043395086441379390519534160881983953988791863092118288363412306903854755341313372624965294432617017049545149265654590983351102304808670212813468394072583774748756595682297917592741724717067968577015223884360375716071483493183692488513392497751213008550776504822866314457181209734207949572028597237832212511952119241770780544995512852484948045302992645279177648345515507705939533013614533321149226334818487868759884356597756138174435021672906730837544876472014229108537943763462198712438833405329316920562325673782449618373084823037854082805446173912827158459184780340590907935994041849850204726724983130742272733009228876998222758603201192375266026319925371200771109601907182881568391947542651073951739454987194984435021383380581281774160280097877977645753675151960155342125135816636580103877195261605683045520719135529288064941325345933157663021925139453557865485980828842351779279461289111178043262773786117775381572144377085274925780023034888010994270660185431437303672620008273839640466315074700815599042727488429570994229657812761218477401326542296538762973158436451323975646390214853344435651139638758899972607586128369299672690662106250440674985047470336243735948297244922064158410690304977610159361382782877706939615323491927591706264807481664489443792327992486523888181241966378262834474105754380342718868926749734270102114520259674386148570469107617508358435313794060157067609789723538969826641981172118613788823346539773923190105005480912467201308584582905565601326973875699741351718820853656957270240557497024321356983268075868795422408095707224949229244158862244367860363400308898371187695686176676485608759229636318404450479248950392691357743180167020662444191961219454534428711520791112840756894767651704872641946347004045174281860406417973379393051704940842186126408211636767811754425076813427636063928689706035434479825798405833345887849369806282488540790082358214075061841361597422671341266883990315665889888587060778520124651294768185718259248693428994906593223301846693354228988742384668653584077286959854612575323962428787547257621944605385615053706013171812132827840351929738576424076026870144207170158472881511391007900660966065730053101700566046308517223797271358429873076870351445853074295390851618401472320065950762055284395150682729236461947605686771333599700882229086972512729662096814673121807343909624189289594330887218259124143412027913241288636174773656635288530031489723670851862952929166458427984292470278922581003659691223338702054554715136669681864948305350841897055760120576838995903528854491680217394413246370911847418214692779134329186650017111796669386830310627178954366944048346553095683116367689773299866581338123107323985592380921362943091986358772992510029779348378520032979367575935065604101817717748880754278201197292182126214467469932540574245691871732769070264562796875830683676775053049603947102999811868477222302668953957964975398313481036622626870976763751785070276922136551046082392498652695504130766278525369829658254123570780128749017386029362296899865990226780068254558760468268017817453071336071629675964382336134268189541820487730070586119347265497153095618861588816655315503256303877562872102562213964544334441214209754848585982840598605892616503073463936634561984085271763083873704632803974012671893887322444958081875242625456634377186386864155255454869056760291066196873242597176374078288266614768156434318787653602075649342460117004291063901173330635187218148658866459599186751319143351805842996058530439416040507944041379562834402277364144438485052319230842505296905376744168037269687170739295666199002219038557893391262481556381156607907871091297952325668432003305155018774004104360036091618129703584039009231117217043281390399016493065894194530146562382206383541813092541052797305847658527780414680909784546268523590169398230972989310123451553929183853625594053371267280344834450348560133443342901728472483945830520817309104793278550791382538694848467640020259887280583414665818848403794886968836749531822971034547628858165284505048527272670943408616783881440395417178291616866394540491594755939307832129039496149266464139526428335600667075839774453859994318334696374749589671778625882056770555964294625266543818049689706323898219469655373574182225553252360528046051856365860713019072195342993945520890344528778951002726425144084879560347357728061190333296671443184751593574763705979244424765536773219415300978813026635007393187026653616275624196624500406694155284697220320133462952145740435146021337073548141560063738138994653254079562198345245221970443370561958389505666994981399232257083808492068366615336843926073745070782656289577079813761040535584385919689865998903032604400446938763863886017751408531745813423650653606071903203958707350793009011370507603650288590153625731752887470165497500548603381314876741311327123798303195070815427940344816123937531931895970560612909555985455479974193677651828457297638506832966417882770331358358000585930385561122387222791335722044461050052199839311564007520187584210518740976761350000735432538249311730056955208405349368644067436605364909815277430080769555173326012982094282227201565450605173512245594305507711996841460127752236170044868830602024261824093568250711579274058139479971886713849902877308515641808587871944385514997951382865948788375557085474015234543510857821287397310184632509283392746659280849507673153377721827062337559667999177950446234606532915716498283205441692933821204903527179259075485854912738042304036304124544986909356520449545890266738880818533861079390650715075505050933538119127743257380338049991308112090700325673481485511617016280060807340499600116077350270330241236023856361621106819062004403097526696288973775339800448344672289863245718725049456976439630003072090425258547971895451536108680477049609130584926823668198340593979470636044554459609842634001733896969514777321766041283568822748631605238564679010902974741674759095794199813030240126984957152288101992681342421420128698675829724484972896024701642903845927153405816678737300383850911822393813894024447396112392181268397094945072426023760917095632073820989582494939436151836999674259271100541324288284866678309285426988954348791562361533734682052876264666222485688493485069186159562235214876731696384174671432354451118240784616990144814147212858324313342391990652405897214067654653946513783420903358321211917580188315193079569875643680411232138099234924873597178873624823836211009129018466920540481897432859635924560499268445103971915789643217398315098780288347274652269763364190064295766005758641076786793567697875659928854461391571220975358770557759598326454805552774323789214923307088665754157389733277325106997728714809878923497414530132515440793702699271490080455994416690198186893018182000252307039988902313030218067322729641390602636460721449749868511755508022658723620319922121268143238057979475269556383038737292306131728679674617216228424981328706113002488123394613312317937170246278367485909322596838343309931690874616559883062224016851411731875934184084382009471407164329639610476614486072725301997788996786955869125838802324585575002951336597347734964986606047128079199680963452674864758974114612085570051147483357661649630306529251049107792013942514847269571093550717117916509980697922148171128017105905447721950121643104762301080885591934752290470088645867595429728358636267725110170426841974748617875235690649345901394374654616812743413286338741108813093744498854482532688495478479078883788351843961773784268898908987817962804477865695814457220247094868548269249767398597910716068862243695211453878753865700414487472841677933481366496487252633440504105543069838019017759140656508199160662449482474625116584618230305978118032088526722603432469059520933164858960285447798913915117258352251843485859930370082234278768849920019337249977660757157508426459178840619105754297115263078196165007855556925803603652474831651776110500771178639067743125350710673169336488989959654427760774060471533084508377129859781190582868299983935142629456871781611583476315282657466212617895226216170454143931299274506480461947633605786716478607277382484695130592269380661493095338048673993669271484408015483670244565079039475235955946627761968428312229616478549416896510776790352156268196532004787453583258511228526920768652400877694484075684527883146944894925158437940947379365373840101060452337787733737097283981923178691209988035599588116977866267497969238792934764270092147246127236251496184813388281347792641419033911941221145415826231989647391116284049498432441719823714956122272895128533123995416724252534895411971973331262256602975574955257734093934503337149824415827681151048538785913723994902543048920415975858727956506384401034262488095331513190780571413801528228772186726423658666444977961390786396970839707815429564829113413051726027184236403066341787172927593938599789373993227271390454495522719453331889383542339390031293704128582214201944505714520620583297171057967579305140938540235886627432748068878554100107655341050926760018525828466639950856752546732221827169215150925485087690121027084527633948600208063558193987683233750914829778615528010084362524215265215775712114558810161677814252348648453253872401253335899443153453393578676680921080247942460085298129787055341591251956037264882656488480772610041916896716857669192642903477551040114923164448402774612663923538540039223132898913120380615874191173062016975175350595980906031765943983870037204201211801163496370699825727930487562114339317335798763859560147470561491335186993685987770754304993011300144558925220921281455942937149766382532181341535030442189958915434898598532458554663336302066762736113090652473333623447264492541004015123359069209031668334252820641376324701123495946997285319458172716960165453558448503802970916040224905273599126474389428101156742718146253229262760853626462764418294896563253248927144419897917394395086460599610184810436792837990916431141033454104721212569866968076601918854307942107953900183567957131284315366407707223993029208661401564410343043924208962394663584687700659556655171255783694145930515898552344724562535815603112410530139015460593420487453010072129070264509524963317597189370106338018363127210287795799807401201868972465542251784072962798459170137082947954409811594353361267603201417097410895658263658805420478830877312500421591075197581001374298101832277248582227889213460738395182817935212386382608918027184851086657677084998537525732210129449949186565376891371760444109366419084740996707016231580710379103650841351363479416277388872337169735908770146787937586928159256954979105624855207004243972880162147906445763522731398931885350147551948424664161440469056228808185694369867935930153198240682729398678781444724416494251268808147160808818676020694967733410251280124541675543915897223243148133834812001242706191937795262545885164710515678241834487982824052609707966308843913624503028740807152087007122874536073273654512461284696341857757970093325447707513448440288578244522906658728622990481494559541498754280353597683582949480363649905511055275134693030148687908747308165318602997500795626825242120411178222330871548577265221528602364122196283502673420798241831961280112042444262260183881179053866074085628453199575831927801836214518218439415849063277406614481884201002445937668481089833822543282846148058892311949371210521465250961489399974291534973311218744155365911321881878529783672972453705155536455827384100084770406003665943420954977916202630966181948318402616330607299859997514213496180250785852551462390658141917793178665007235790386114464395291140238361952774805509525093150193638236510659554602724533476094694391297063046779101747479678964958750769070093048673338625604204610544824367613710106600199477059750664276197130508117531200983402271631559875742728916788051701369632063947867344675497482833754832556977867847865169719272725093587893808380245651519653683870214351359873526546319958260286544702999093655455494342824458028456549692394474442409704263484707366688479937334442045944087120052955713985252694638444396412616608928400930173134694259437693607365991364771327132855352075270199082859333599777010438636976552568009520769960703076299376032329318056645611491297074456805866044994488595911610032585650276266623213523945908023038184191901433594533548131381164284459810280642159975577676176398251122512424775625511926468680145102550911178937055478554970044815089371857189271934247614282445951816968902383644126832588925690604266513254257409530365444754431759268616430920264610058706620298179335759638512469665231490932335371143834158494164202438335024086255110863852548137680363360683969510886808791870936847164001724593887256972346690562377718180027652968675132305102731316255009914489446049034794078955031258417518503093660581314778793371210102020617205240293895260454268929343891210967243765707070244668335327564763272421270404807548884691585153398469145754861782017226668089196307332338190695214863204344263125878783588510411938109471229185063463467869884514208379093907351619514081514233411771728990924275726125278380587630505594830747812942775923838212678872119515956668914791350069629028011692612098779509576467843793445229872938889556234682384721371009466078869632233589116340197097081413656353707246087033987324628445581037283975412360942289245815043927480355103621775959239083379948963071242523515298568914873303643869925146103810162625879231349224138182625285407559515386754658108060456074853847511126399482628381833131042120614769133105406376502689590974033973064849835357864358066117580075803284472932774654546519675553966301912517522703574646875200559667102190147174887816514876446852298318518742707230331414074148179857294426021778752313485241681258699226466243842744383811833056397263677212200762763461525585844089031484775432599246323390550518097559206632737218902353265970671746644802857489956793195856499577861922595808007414537211224128325161648402322924259210375180594743072407213804333331801190477507394483762004417652963751673384714000082528339895576531279189805920070637463662616845361490556481319335472949961716311539433960788108938030485551670781782224876481716100563244225504623420520684076490253911781446188115748612377226809271868795439838819087089278290251443097173960045454711845775864757958514006151273156641531260323574258456726058142311921352852996118073872990052767958107949622893646563155911191097630988640880773776808170123764773785607720184287047131719157658952023789305236686604069680724076853482749965885993490736762486254253036676407704759593834793146919357643929615340645860599541131855406560435024343264967524171073603683089369788983921939984463851410814813092407850152558350348727032693099016414505962756590137818582658873037504218140676794830483944241570661473254188235662797301493488810839160937600260283891869317497290386233128574576685071360740645122758018399800874887412974527068093339048614097691126087811551872083447822280799013424412972054030450637670051720261926959860441353372782496179943236713192143416577980844714744649724608675800371755449497827531818240020531169685403059919708811924462707272624412896744391327355478864502554318757563267362588009249823532147155905208517286537379175695885359008420167052725966985421756486599447067844643929744972264393674432461086760388419543079441431972114054894079414308597433777610408090714081839537337961806111102288884100282956759263673644265157414552518525579754909550858974173741993191278535113386640247237379642494904763560101051816679956685215362576232930916233223517012202830927499043421673161745635892213209989801183619231925472029808938502188214219601436297597312521060988816751007474645292941644634340062113463234640786067068147314536146272258997624070713286636181517022729295242615052511100822711495366983896406031421075938184115900469906815308785737208505083709040814754744349777355136718529983952302829154866289391523125565933130351386440919051090968638010051318439064662843750665369943633883011885478165008249574080811963767155095538877706437473949788056115713973180326973109543560637386084490517009847154315763236085894332711320375952459329819534557256023199067652397995860493827306075186813734381053715177621276958687101023558186527164115188486618711052281301946012464205282008133273786394536665165334885434131480614334653151627407264414168644590848186160584246276543970252230161540529612522338593534774462855786255315214000227082501093110739265801802545362377750857480998774662981786916962397345141389305799013781650541330806133776954561047028793583770537780678672324177274717315091836569615626387211750046941397912651266180875938919825115166746676066382881381740882373061855546745613853587834716434681475291675568530853389381433559513288324965904355459568700016142934671074925281048269803930573388857035730175184763696049772452427462249519229029770439144759258227856999363422566281179940377051928379034741998816565705532625979987660025375748926141855470299503755497157667322579959520457417219788523883965590183747693682275031397228950200473661671898033273092140079124118767143271107228574416145666921526429163798189984317905843834922219278742440177662960463966090450167073571778086004138723486041195276927849032163882221922921952225762702191267587561407966760012434128287042650415679095614627069186662982162019488949047774055454154694769127528609087068585481129934962780911939663820000261422946062494344782049524259054355142520612699721850869452593981145651301976743895583595604612566111914967091800420280679614386920178554871887717872334818964041739946162611580511429303977145279183373238534449307795468524968752282825011929529674206580071458906834026170699160404882766003961749452629355777708221347149084870004265727058535059236480526020754655155428951013515136803652792767824321584641864121124536977121313635751303606042882814280719672598712183572615778884207672649176923365558922741639686162658297300594874357335423757295502304822386135306353625342505171556352727753944746136567978168229703351815067749901001661100763335466613925636881854779277089045366574327920925647497975436944904582247720394283652957640967090634685582380612307760234778807869037568123221493983473117675146863641126928310423364119233989420608278516986134014113735208699427439636253834788653985285174607633269749910732640731716446155201623319383642823644505629790701353791340346589187756721780069049856396183215983285520564268259703795106887920766128419797479758104244293959330929358808121164802446379613707714625721421025976328973524772514521819984126529981742573785398742672833123882495489789729158849595539823864819656178588188361681488843457212840883958494296474762216461490971662258737335144003479412929025659007050755921890565065925212722654096731379906312285697380498295276509701254310509105835513522716777996316714602616777666133872817948003207715527311000133865223188836936926951503055456372836665589314714513450249895104789305597647452875161467116390421221510046811070473333535133531423649528182277288676861051244887548667155006922347302572812049227347463270044909918406062160014130324526065204900293978944361720799424999340120227142065374405147037115039906106592534611641333869157095903347844868414900191848382689873125191439887834998900532891156560886472381089437524591637540380356987759898919941483428710172074676971964318086539296426397747856716807209465652824672370594428611032604990908791023451619285471414607883533571974517053236159053431627174005639534388032370096812624180502232065453437006527912613826724221168397331427142777779819019890727909068179720544303228590099747427735615871931042326465361668103072298052747369242123119580664023734331494321085738106070550135478553081192031744208957651909554849308446525584088356836263200783647971043114297703242889759520878715584822984400487715996440815749862947518390818894651411018341766405259629847501774680166891038773035675201040418851748513502502579012845825687291977164185988898058237201867952431735439679436294505851494309910533385209217960038149763685397547987332980355585528299452201076387183634236565735882487782951603662190048954959201702848915392046528220176411877154325316929536344691718929837793793092488209471425689203006457933089829365479899285980218436575686742082958975028276619158631556688584539036403751601067264557605756095404649182221970430374380584115524809974650541960077611600784250867361287279606312751573968472996980958373791760056853373690621526513981315534809593300084289656447638177325279402947406926343732227306848081033284336574046116222895176093361274170898663300657194088714486589764840463330241732854595085138060208347833500803204195423610144172159257458807400288193158059169390244180179215646615109327434573322197350371988620000694464253283373137540598228765262271758542001975072732942147265304358853290816290007986705759172399825585936228498134640236884992570063245397352639971592694572720015854005922107553577640334419464280664614384706411909019185855624513859878488754371777228963208515986127820749015971846863511967159665193229309525723453760066397316714126963225276346654253611050249191000756164329528282585854206315037912620371480101372089951443745764036275812226957189175062378637669164110895923111009940439985537018215855883041775440101068116985046160851703942809382790528267423143383736445844789039223090168508937311681741427427577568813063018916542475993541694892478904154538162717197598970300454679359416819710768450842867582820095740714446530803277586068676627695814557346976204459643667485131493252771509761253096830715206379339793058412345077476353246652904987382808533568707793161505299739756334241417529393528816499293146466114565788685588052197277516161558234521629694191503960543225755875786382397125254351278026986910007911042195740779202724396026157427053278988499935249195193294694161772117890729735972050921162299157717281725478104313008010190507623702191544959558280761134531322961170737944671344132078214722213922767473300000092589113391048311642175716727422515075728661806815064756317544491283008321086801060948463314121882453942759483105295961486226303377636340122178255894590980169274371851436504478372670228329961734667931243716413269445444117398558919127111283036161745515679680664028329861038247914536290327802437436235075680769484968770534718623815725450720909053971577782549093158681859445310867824528895970472262810345444123715919969029670781507183411427141163595088522670730361047404121717662618947091483498080120090566808942588200860440563869120019841801451504474387096631560631861284297904995146248004278815853727758432282246873176351476414906274791182581717688933627886023720741023556209928598399978104034073734808056624347499364269375149392980940987881998266780255903883011398519935625861446334002908509370339015654751464452282453706253223189304142220912813410602270271519353912309425751981364982207703940581369692893361356042451156792474293126737437765445538576763265295512310742141289527665021710018501613919477979430955256022319356527930092140537738701808801415660229436588768253817753087399752254087407735688857551028078640837077965270011656025387072494366394880774804903987462565452946773762030509489912323175882182911462859306707923579493777392404020161335665992350921834346738017401035669884253431604647402327432284560580366055475455460842353438416474966863378686617502402365418912882533905759457999707897275415236344300341865070538008395925067631691657314964066307638654330524475065497989361130237790612111762878864064460293473329287990129642862043962750853023221358020209762161795848156365764836898349297554518920066560734450043902226874519530358658080658610886407586755087633366114514679222778237786884247459049345568026098529178927625774913109788126161286481041654014975210894442282199960003962911169908238446408311959915251322011226641855661803644753195168938405165598967616341327076164937858275526460906457739682775953987791272671862459585273768281393339868553271679958414341831913365765609858017179420643105988727216245676081148972795368014009956536808693766072267734821619035838645578307306704949312915219077777909428303296339802953339519733412946954828409811719117609715826895271720849899992824887427288539020108352234031209221829226173850507107620936994034213930856638454890165362379350928407751229765048090398693445199305973320669418992472853672490054610841452615749129393204242799443932564535024446100046172759593669351483075078172831460176217583726814647611225543397218545373787380803366692584169528991503419941913066568308947965419120053117980448595065175531050219800415794153183383155571473286728262277385152436651841196419367405345673248257309785240271634630932696503250610394261848509721935003639580534667836039212351287825004257256814038554662383959157180000196465869037007642243179372633568515001304303577006940808848320159387674547387227061258221638321679743368935921053011638838725289963174824240752667130954099974649313415160100224583809310757294313414803640387441237967731212340235041527205322712184808055094402668621646187171143322616293685987528113419729995451255666995430517440042584184572682835939963705962639441625094776410544694090359176838336102354787150194296650037219767111106647269500552756576234033795450252653219478573930054613751017444634124012181207320357829002352152386842762833494583057537322919400135882294087468724415041480706071697072667102824868672745443924542680736072078386085011395776748446963628215994095520951434468065825867555971344037502361313205934602383181905748495802359344849529868789280464512084961937471438018315453026720988235739249141464443782189252662269488199353836247555974309774432890593438547248662320237773447478698241483252243883103422043203914604689362271577675115822888282416917551919560185570997492548974585664164877253051529233303232433847775394115719923129493207978611143392316676637192796982703507221769859162372826206422686034581981502238849891585340405404450502495686188379482296929208518235565811659249385210825115013221765184189922824187976538559187923656781913732358894866484660270810072156354946344019994376108519616357232151776209119676494447680748849328140408371576185535796784386525715125677357874923652367226215169404947426414591393555870239603144048896167529544090043671730141076906382439584408908439613001578786193694104171382187946934416941255319266709761575407556571559440697358221340593845136316144014619591535783983485081919663461741385014379022938211196250599361199191035096325581896058630531192282489476622250002784771851516294786223864916497391196240647960874219733977310058887474697252829385147533618200698096832446027980106301351727607627201748202502147881458648025006021251919674461770784040046150384371508923505107844509739376172667949989656208022596387861649239927117883872378822253208226501309676830505365292424421772620823122472682731657370052273441560231064499924978305914629034199154406242054992566178385985869003208048672613582508646045351286259756329337276725394996886048108378286717684235672288114255405889225832821711282980696546085674634069589923232531962747247303276122988863772564834151312099836131539763622870822555164980298758822438649966261973576788186083110661021213383231628923776855715254902335390316023915286668769394402815634128611506932351651818671290321434464131011086829247594363326659992195162707584536448476559849021671763554403172190547850993607530444307617068595961886978516088101500728548688420539201032868670309361886416229458145241640776809953637521349488388449066913979106842157758569523362131763919273350532644329089916629776671036326083719764564481624583623247471854298807158439355389338383854560661391970069274673088766340899601408074725877979373829772646611663805915388234270301034083202018787972694625571716681591325316530858144051772355617474165453129942852357448177969673646456527863917319004055968019864068352500007771174529275191135606228060292754683866958742681546195001174369897530276756497987278819805502878271953372280876056285493199620788140479890736060719674549449794128233072055881266333800581677132428330398023184921793211192607667883790025921123967414729886009069197410149784854316041943111338232668879144909349919062774575738080932181484852950313926314830292361521923177192632634028394113860160591311859403413170452062371791204860681747271306290103032050223571969701995861213297725548339808633096355111940038645955728858506801277726011706165980299972771111843191663379572041601989374484533042539100668273251505591910173695580828986577636837615349409868527837497282007567623435364690027700261582707000161290446342273024118498191475181739760347498564802494689008439659456146215218792425451430419550663388147395884747292368667381575239784528368352350387575158582619767032832343838646788281998857657459612117833455507513693465463622208716002069860012366121455781336036396424969738239357388655658923164584324477518036716186281718975725027629531136591266246509306370908501068137550501478689010488746217438207040898811964053076182022385574609355410863432231515772777245709489076448450705478229016417767526692744461878925893769573532821437295624709730183920289520066116322324634897404475478152535916965405524508212464098468673793538149290109670529860971637891845886500700460553866004965811733181065575362785394416688884340905892806361013852479741909618664030149511196639291986244199038938568683028256774863591305664749052749369264884863899971492476509400655200833490764711602672777607309071085327719333597157652138239066592854930099649435252823614812716808594658404456114778851275676321678377847433880237326981587325478891010939470961411873039998763426029386851397069436850110164819208120987933966937807468347470287263823861399791526921197347214732627655025640744563971860187266888647398349511684141902370166176041127912651691339735571229010726949284435323390085624171065930090699639978854202846577750145555919867948556203539250816582816677194070107760464317687733861956182099592811290978417734544341117887640455950937690095912718838669881050582282498544016161087859523251309648861344511383818391833626552652984144102114067161695869517248684832703282651210544834923172217816121966463773233921964688340824381329593046995168632999268461220694762090551523983581477681843817251310430709831065397072555204532689942198339066696643150908390779381815839725091753054014697663125505746125351032711356753136023711423438740632566227017467168461515797593903291483816363846368504500509951734877297689755498144573250378943022322210207758112316788360535407239026858491649989550317046720174447637324597300869187687300817007894415875179596820498157623643244843815968555718968048394409183951102604474981242853572168304283823186849715075904358880956684174528391030931202881318119515506349431408032626668351662685144396888772711180782831060185986522090462718735405410038353966843856747137999243392810970090693086502916149367253008018333350355521110040051435748905688021984800665924250581197702098213728222407652333076480303835869100583566629626763384970532261476271577180031071425286349290083156427599969428999751711667729830618813902337895329861450308829120835954083139768701414674561343912050839898142417341645350671136462408017147728704279642789848639698639480573411471113612863492346237981034177697605971775808267984490171133927060693419400035011642725776952028754071724736136650637469565654836261937228937935749364269897434783244834387042536081813152685455644185138810329220122178898673068391030446219056126932708957044630747601178193801753891047112113489724561329899721152858904844227700635592686319021103617817834906273940678830143727653951277516300962444460444118497382536415568645927744418778731709356804622815988661181160880092000482489588214719342529611699204212904889793386229637864277570941142536213975929835863524546554221132462962845663350389880627768496995939884718444344103839019833378122702739440860160260343349715170293054228855713292995892659382513097817885018658684343764877959528984652982089448604546542224005910909006490882377577748956081031442511721109486384428007884098748214195629909514623166055794908747599460149872208916716607525952116629912052493727019089064791626070641066279391877526622132372298597089026885379144247342833602726392489200403809358749690859299324147768878402339222342382468902720381425433781439534591694900412703289168586992160290046651900648695429315500539391030425295403109644410416918884317523325424399048537661085153227086426722290726403853937978176613418889845884074385717862506789398874382852332870344019832185466270550906693433855257600635121164413933966015694975326776622212137801487887855987125441556860756349033832459379088076657890660212445409339238618539241319774498941482932586056797375333303642794419768073240774457907661556383439565283884557092132209852043202902777698238490106963213125589409612973260152930138633644236580028664568778825205389827328877510871682585925117642387456007975685513683299327683889380124448404215095742153172238250278977692062110831799689175219645759451729831603895803533671385578728688970585551351672720558827410565369995042732421713639879323120829966432786242324052799303332047028414753330770791215860722098428124284471212048982274703955978438654270815785364302328488801243642581305609609698338794475351262455913763855506629744376600904568538721099718155736036888612061358632336495471448006182636565809666696463361360337656802200283885186318618963028194698928648917967887450817116495129224983016354695516300317077006432791196149991918079442164140616213185480782291296432166193985720409306960049067326304459148685006131392775176634693647975915331949549615638922112293427130199425289861825225154311357406962675321187512901297492410047975019081403988577968719094308637848097130295698706771031399842763894114240758707753565452439021131153724482849653582350183787072483276328984488953740794514805783057062260485375608993221051905479841555286697544044914081958181088184730633762329930993619713885979971092557615684129945666250489059214851860014441890367416893650407664957528666638388127277715252302023512573275210595696522718201266370636265423480338622335594887290511830996205707647324469440073696119999555131610279126101229570394022006990048200631530575040080035055375392555295694420558702708146095837547139946818928593496726469695677314730577506099857913340845404952017480843582958257580578691488712520964221276649254581550169219258118611940851343341007468009455621244545920322759647362899076414878088987710800439857110482391216895722496921818994393903228496538770550878460767676303225120814332063469015724021105930698735645770329081807867008421762755810897337825898763106117938206667670016278032255863424747601266723070090766464574842726932602923440645577252778382523186775244419273967879617927477571181817510032096925185621905093369505517114233777089153235002928781897241587347087794671302146595917849201322027568679969722844756136601245963700935654743097014876702000157890081516579573387070270563362982898255275085365466181839424159824244983385862048580115700676715674744819230301356896095620422053201444509089079551521372035432401187677515195123349802581638976764604854431458633929434793300792680834702067407217262980926041716361769088963238225036504173324820757081306454830847136013648296964233066062910020671155970486979314178370456779307375255551604264608540653046087316906149676761282538690185251078024176085773475011804429393948123367223764709503219338509772737660977947738973999173609202561317832935654509399805484555072385055350705163095163069299698609865402132525254696014825698925967482367369951989348173624220640370750760773004341880106111723021485246887980836805423830915966819645732755490743443502498875923952486232476491883805547648090055008920763171574554982224445018765379192534988561549931427610518651532335836867063196871636181810110148650980553052899411476167893323609484305177192506872612534330282082952831997074043583309567788493499505074263102880236045587792609334160620700085303509507941087313479947780295565928331235989946606700757881698007771491571995516276049949472335183641835582447625673850953766727840266142618995357903411654227806440319155412309844484217849690146259118202181722075346735914723835133364546162135552716700350075704780664680073041110152486064430401848272783677891727758271892489581438290999506398599384996036769295895163838254947929843597935666927551314746554318726580707618573422672639981331309005572431872299582384166397960762671352248318631306833094019029952089816151422300296500183788266188776363475598590732137205355031911906973872003954957648976924422632890048894594363576463657334099106856711416366765318041421130270409934251823662869850232935166307226256086481869307836023673037220334855826359210532997888437369822704731370020681102172897706158260608524638339623080542582905085339914925522155705764134968247505613817095296276587076423990447096983134764036583157561906713192593106158190448076387528760403508855002504848867473644651818258208582336376738870609473143797666316195499192614737612050171937584828585613462876664727331064825964404557226245888912375028462163782309053123704080412904083794894482480054925466601313247927883647262247271235963437908935706570721035658662419222942620024679266020113882285448752489967575417799768054759471127014385104626705779197685389173410170495026379609652906077006344397350259818226519089075442053666437372471888881845555701267096365717966491613626914279334882351300234154353700610122712349349088077171818084819986731917223030534884947282713919611618023743611636407650779263249737895415199850098389996545983475904854999071617040408812599692541846265191083761617687959851207040437504798540424875869762583068443768011510621910564935737963292477843091538465739381504539694174010201885823154148695009179553575571743095574448250893145320246304774182468502785005965861494402451749189991093499741154494229052319642292906232023428772568447395171120428059344507725498989890104588940940782465651472351416066249317901945043557875741106974043668512669350651820377650327730612796964288433411051857809743770784034936397440744804893399709655308450355290009652103010947833937132215474811335871581740586564463891239183108672649015619551600274124805183172716018636090721260491633828862835008892976429289592162231411018694152314855670394812088488729365476616263796784740442003989405203156225907384129767882370215667766151774879453832528200384891430501443221711489271301881383547769417035189349078296081608685261473139338819798635967422447206572233554021029067359525750965367271777723008504636452331705684634022044402806106884227576754728276995588485014540731440843174569906265626787668460983129334374254503628261361996657379549651590406933154414413797856044023905496534285267680357075346434591009855702050639554064059754338938190518218080120572843513103964969216783490655940135324859519414315279168368138192303801695888329569397842560158365684131166182635402380971174355216030429690750241310326365844065894332940784491683355086288412165720804883356681304953460391693109067629765936269621443492542275131623115319505857492486541387969775805412093679003098638517114290695078696681125428461889109260776556273214227497055152217360663987234358541133399951622267963804519689136564001849696912280792553483780625225606392278472333753705050978575172857682380695197873542749107015116843815813386749744503153580174103537306362452326356458112956951179913699309429143013615412465343723004404788863954805766187741101152710391764377271755292288576700521367908409148823669566245901631736643857275929014755448626468872278248929016245120019137345508464304097812721460784897165874400827645020212839433230940363969656529752964796505929995623350679100642725735892213299824267985980311073006236252343904113530292066928546054338879966129685842859038767432293015822874615265269075469128762482207820754828330225093416453520792992521386164359121473103838279316757139228792064200464509128625802110545188832053535241150786080172079427550137291147797521419624712698256453690452916007688240265406031532574830193025863390476460169878255601254314724485136683151539526451533010894798554199322347119269297242336641038237444620511962654799006629576427178456208569728176913797981709142698587415745559786087821952321477164791528269633028340950671175558067511024053113123962142550663001690785092450512126780657529779113817563910292971500570062418192491806599847986579647292956240649761845340527984436177435347032768756965519771993546538198102808456263087303939981643752681560948965049505890220318641036251951613936107503765500326276056105800587379021270303232368477853767108321098460471516318921708857667081305786920104425540377847493322200148756748827901516884677614882699933600464934066750007696965113437564774400003566439542682151124715039282283592328986685472853127466088197027625890766460289078306976029409446570806532163783511930954073511202160115188442335591442237339001169297310437637423381759685358981826502681295345544639979495118008358582408041141344722520665573410642807242767138230631747567820378912673772239390826395512600167013542964479425847682804848375351053938692706886051815174311778201951288496390587094959317144513487363878926791039150911640397213895223998742240409999906207243692985423011908542481933769914753338455955726636744089427165588067109661066580390306957078382793786194768914353236542812144608047195498628470123942030909681308584359816983026410885746659961033665546762173759340893387478644628325595887500380494163148937322461327154428986685823317625407068390913575051640120642508297557150502974575391549015626785927555089204917845956768837459386356103715579817453328050625400342635051093429199517367757211888462419965660033697008876193439111291537288401312067762832809751115537382543146441088703924232213503439039402463794261950070600727422674128222248633757651148309724060898363122402424110948481696372609958749294168224502607329096860404409597935122746566410459314795650281489734307255728552684768070842303324956359764318458736403960686758252899921807882682728712990534654062106548169068043663949229815522673927270977244414760862526768254266261204035491405253641869889978359315719224932962662446761324156292847489723714621125115111438915955236011032437039746158815923242049441966342379804150163178496390722497012726076391521667795652823884708593537176433937913479811903355906167390953603019439937508150603303066651835147937081523088040185054196424519871680261914654874061281492917660398896422813990806208866029106936032511952086445818625588752718345754975706073342431821484282675404291160073712046049694796144167478241569037612826865711383042796607537538823401743280744330467500474554445335253040316560562077911769738593130668574779573349269907410519912372568078296160187660174969105570679814032110780119385713435326215160164030885226596929090849008031854455542666775030609130629777477643089207268354281991150404632934986182787494904142653926557860201533664092764356619693706762023927985785135140158988728867968130452682721122969202896151470815289502793600572171033164353909243587151407018199295929841223309882584713298747243100960433816367532936464871566198920878178976285275973321403547881990643989593553413612050968003945456500959329221838306651856643345935164766674880465861146653896259360466116621444620614267777131775984844690779867847908632745044745267656368563525455424334569841282822733101361019255386049618784276080793442917267045044384790474179848733719203412096623995539805830806906219335689396140086447000505731343890261416044448370939101984283766310691885999747921660114469161533668019214365019008570734605498934601365450339293917032907464565713606451362895788111997429022945101275785531283705484695817719625026880336066177579014096555745944567138752526067216527583241403155213915912920857766576178393857826357376897818150279047553228520476455151569411648208186607140947382490079850905305898518031185560735943614720633210016511727096502489227753418860981045971668138883844115834761128763161631480343940161544128585602728230426953399365252824177815553338502675377359516800927235374233287946420767100350300507493426784824145761264430965379677198635701873414177209838638987167351106416851355006062750205361165136580148137263342076025385606693094209591398539919309702290886684066042669024056380405818878004624186559266246215458081308343118278041946373207970987468679992396419214722964336856581955549525601358304077580758577792070239576464985186283110383980844903833375016812677039584039240156608843243008666973450353011784499536907923900001543358347858910716446923359864954541305788259645972193382115947947298360127108971039288701653400023759504162768027580000364977087244689762164924875771721066181240789624398145726997558861669514304788360242399337530174870520860102378555910251683678992783062370877840748515590243876576733721952033819754745349859729390336518915129749584253216617470350247207349898761434864540041880104048766448427479661863149982331264197014275331321257405718187985313755247901280759413714545089151352884576634912109465646098762776158273152911309040281969323535133620804293002496339555951385076524204944332976023755852444201355816310576332546375812092582876285799873006109036478690032857804581854816863678351902738019013600023566221094365184799888504908933732639378854589722152787426432497537822866718417583999976421698092713134186099482243060317200268357479070975311102004729113704881623304878720996563919586820098874814033952594377156187093532457227540089307202967862730017131230969718986550621255428297228658995739998228123203510325309710944120627845745512993287409520952000258022970442350214394657360162924172794318105867141204439114700923886946003248383600094689673614799525380976332509528205234637549390418064378979221054949112402732202427864372084034672863364856817357938703035485894562787818486934709006682237121669505473193782869533888313992930439028662240887868691829973574244884751715352080388501200263696072237379055021604195284462862873443794920425071711668591817518912924515943698270309114655350110288451033395030087985696475399904223004119459676328027714655131290154392511761937782308023108420529825127633173222118890694365353665266196465435894475179564496249109637141962956103737754960358965837390723227159223564458521782559437976008540546688484868063731357595095720289583409108602118686247293059028945267395951218673442952980185157306036849496517484504325109820082651769271976697393855114589985451479843332935129576734067647664564811167004742201802834032912872036493896128986760737766514573492456998409929388396076591440090090049399929549741806757072709067282720558743215592513171766585123385490536274775051862442235824589588942969930765204695743362335387045970978029166344254105700804188977809479387027101793971514774506682677962869698496174482700841705498516006375334076343811966568693069554003777650405410401608241825327229931808378028546347329319603487859282573803149328396026844829372327946012843136926554607080324767889467032264353462224534921846073042180259248704102929935762165129301971223757210350096746102338758150923932241818007218761228344316436414005437644419503021649690053647837945339720763178445109598998930258053825650210875740773218503315714516535542329255663276905391618857765855229244199859750795055249686532735510982492598514111380707525434685992697970492305554765969227285129461397413148621687599559382253849985055158984388298366133965126112261320767344179318716832490379852008071502485613664459143241447958062241131386929491736462804223490459085053585812870850400964252697427637658412613542857319105411533155446051737190599358353492039733914911472121193790109920716710744962499009515935741318421998533325204081001434165072916818004937881575222136596766789785198942060471539192093945442906996497416483472291570834999604030841708669958093931707300542308054793707709763601334543602053417178382519948103470911584850416696970756781778062088407093919314721990248545426216077394641019411868898236768291301809834236066867589849539985346532105461193883823600263623665717419948769995419682673261407021876470523207386399884139075689892378226875265958937701923470130927538953186287093213897250881805960364448422213593178498575195609411636194215955655789920086622269053419737247859484240523829409195240057063974311706132302349050548234963858743060372054682711023521023700038774531993404910900361954669972842241118380311197020438705237480981511000840654062632692244511559686282015957850802501801734364485979164444784355808462645744242487255334794567041846331579194039660055814014179811215031016405695940915742523850164463292595134922135802747262176287370373370769687911750348903581647253995425546735701185505936111184644973833887117088509414664155692731777290743553375199342942940067770886220324050592621482968686671010707392558804918628964517761420767228741909665402379197717490525395999427169353367379594513514714704974786887710599661021139412131396832967519957570700973088947604397998922766608753423625183927915331294071192036712607150344083188847933399538044192125677250532394340077247201765944453985709381642283535290298236101746285881289632887698381840587461814239131687268222780593033821841678550523235224544245819094428569648436372617517874275387853368576912623442154639916869491855806174684532989905882627544388231011180706255731810903597539706366289047800448533841208761040603513404478017716768923698307979009895736328406620819078550205903602538827562154860815985435937623476563670238711037184681577594928369622395122768262705588379887910495619763966567443956061125086292205406312808681799404374995599313574939194212334607087396027143315307230854729912372451569604485329014596200758574380188024596112555541153730155103749378484842649430989333254076686848216249597505228730640918246134121994621854597869668376428727623703108577594038967316005599843164063394872157268584568863494151227301445835197703843155531043157780202310400371582967170940720260378564843884468162788917717254580172804854803470654642002910383203480796774400856547714623976947685552107025039030691963665246174990995537953182399254107360307010733163518019633622766589953161617820805943094415135405904772552082899911057099132581147235451046924380438086304971206418450273412440407450432664035715821959325091318711540482220548056990408252958505673354757734174838731900049521172477478450409700167472602496370768239042867762885589234656947577791124846811485780032365000356506954319335610551273619150168761184709909554589118092282644578445929926288818925923151911724258035954454988633786350758004153684949672545283811081495036379124394391836166645300062885151662446167070823329565023207026882321208545564413811589233894982848686647616313350573453133253055978396977314977854836258119604678882300233713330477646682440130694287323521695687472957279390387582407529805498683297396142646947311375133885302093304730425181693808413016500644352568286420444316598590635277771737550302814008468998602946443439911864672372586851514087560998728198553688811795335511185227334964095005675986498206302740190021152945197448825118126533361753678731896917890848328351823881249538059449686494752869575691455604197837407481192128755053277586088199016215704661786707202021961559233636034703322006519779607390801506563332517214949795444788986177735591334182465119127413291559235075248596183102773990146318207317684294578555491449919379059609986436840652637918633505611758139347733671987545762589518704156451321819015252926150441477973277486572290223200672790887096820542019151444428396174303816092154290797007734837340045717917534131032283062625014926376573882194919168418084820744976875928598955761671763036742419452270277668946090812429058298482865659909272260051312687525819449165650361885164533876124104992220667760333791141504569500769748251148071325858500816567454522058084065776236133017302645238797342365989760104981913447270540660642849434182860569337361170851765294895463092850422930577693022652489429302035172495538651451041400100177821622229678507467082063010282746771577044300497161714480389500914410688677497670442402879673803919393380464303723536175059053120395120321015681034185335442229151564907059577303538444193135174017271242949141455364653039691123788238781597247346513788564255090549419005664468114567660016085565765970943049921436258040691439481431248575502644515121649186723333225114040265754273765993460313864804644686031709009265750988958796878248208079317113257964107870478345302195115589592831837789614973368679299084892145715464694278017071419562753086587554185049406791911537666200450232226981145293016971413689160732463667334900010287128761617544613378451030652368630191542289695449436890814264217810608187439088807275353246967653364639916479071901294870442017609336555660350815527914780944136643045817937910103469521386127074394648656008326930376412467834622850696202641375493127790959010047352362348701094107720794124608878575166372664701534043402148318190777013408681378912228176176783624867868482315802903649946698151378880395675483564209810337414833103395954620944244021986147974431912424090190521816769351641058991917716777333976001950788916871819649755867466460001086234593658395807878121320687785497016960574987260644804938137556150108440957214650887169120391879443425760766768578462429696818731422768006792136625949299061286233068385318338362838777536493745779129194880335285462946669730858786209429760640855871144789720954425467865313145796174474026543165983435445434138699945558851664106405037578229430391535734046434534746303050641429145711540100953995055922508516533108501630494129466898708511317801713050560014364261997189087101432205449215261070220196635070398277230675542914269352959817835920297467337976370841355194007118129171025331996305140135777492723395154229230200365676494436573748071893651601035523670293044326738133032034624002674715720295865666823191749589090780331326835845280615166089089718673532861480929237047939727109942030291527858016900292702294403753824672283503437800093725434026048130053859965016333533621855105260839781332163516226658809137530803684353694950896334901940912773831433655655254066241474422896268691541323819582649945122119400023140611050398072252453646717906679578323951625822038807457967449748253441073251973138367009868244731876379890691491921736368644358997305872146704369104655918865674160175302002300990388450113809485706626167726911637696436841014536067999452586603049899684777737199680670380107878657098693161503237369791444947322000682258276434453839313146667130111321862163402305774281868833732755858492879246646549742153368125844869487101599083200268046699520512778148662931699386366284331175975685327532668809748559133058218477513183799488984552021721180657918545830199234622477197948635358649384310078252235653837586024730125092157650722363884289903852517661836032682721591897795622725843116466891980141328607026261953287033923687097625134991079337002638489269739233857773311324290681248703467404887852916432937553760082729762226448393889424559272407481612301733779236882121601748579567239720403461363771763761099414098463180992967009589090105970843478709594948728278052588252800687546592278751472179033208055329515574812703310623195901560272089996552274946799047398700146498152131718169708645776773861821300083933727540503278519161211890058998743861509994058681309740484982809343900525302833331593779554873090786181341777920246291940173297611924650762973939010100901289034370306418600904511763459025713809193480565210842350208477432322937555500329392385670913647016452632155144931071827431940534195746114468484898668478401293897117972833411551739022550564975722265258695426105558852073865481243693907073981455099654469137628277226068949977304362143196899733947671686836652924345967368792574955165008556523124696279720260297301086159155653244006550151910869336828545537319123365948427341083775872238822024102314377079229964243841810605580612457984258527762761454812787962548481166023873537988344114238637840332431384773567744505317116193511232246489459789182305761548801054653322632174033186925812892360229803898279784486904571931510766526970440678572408079986091175178855839422974515859743684331969824802609321632900556280490969603973484175691108489756120361619567677624532320980187401793937308291619220157769475630389632397848281797839147721858413753785310227741062798139540110012463989767465554861037656898673340840034522031408843836766192949843477062314464090492592349092691598693790560454118789230391945676714598034239780476280772471824509605558298997934089096477028716037289219796495629386836341756922227252200945880748815516301536914023203751482533864560019040557895098604590301837755314349151091750225870647519810971977615012588460581768341164461429328973637509100563386689529827500581454290697578222573632867296331871923399696760827170147797657242344131363351164513455725329128238841374847929794015800556331710610141838609360024011984263530704266892304362157070651420335390705452365397140933424781130894956220452630793662881682287243644408548115544041531995698825951678123167765178798142510311040110284328053700310844280022245308600566163499034304884614798452636232094331145819395599748310891965710533653414935810438691331213286965235644927683816349553977492962040593970227030698114427613433222047003030553097795542853622396731927402234347454872509291314156879020597696610078426021032058157602937731276917440212200576184320017110998109588735316183660403682004966811914537076793888861719789109869052109577639774038972992143647711105037314501056785747131449598622709558580147591731498482250416809741343438225911207441331092782060469100916502340284724015789090549756492921840362103111817654342884237992293851663438438126535763805792154568432598001350754445043314065792499584483842364514804821443680857257213927638360835905427002177687229039452299672457580544211607526384978548191229853230576993677638915982953923840011472826041243972078270396682940826953641721712872048061215185154515031978552103665210475105233281140524733594212248897265248452227187652027041884857702362062744441633547148550146572994054903564617921442687591879130202582116607649516337737747157154269268693430420235764848140977528783138352223010868838461842702948438389732359376558436002229387368020092625094805710809982005325751914644498839910847008682283791544591540379597347920304181982430667183649088625557760981131095773242751034260992770594628290143551769496921405578119137507404119712075942002887919217307561223412925521227276430142082300839047432224847809977952103490740261354498730477048244261385352897905834411474366549079145088320711456455639281693505852810285806167178635665367665165949953354767959244575851326716956942576608172327589501937051433038961035301444765114657876991237402977168529518853980171342485649079776796165127497862272309894230714443536161941078183208609886306387806454416429739335171169795353268677911481818376705568195506019319679145636278409125456201266783259484033635689413309601009202725098200333863391309068156841978964280528495184783841618420798672154504908385869415732549360896816865701357321095287176572411556249220763518903583534045166949338474356001799432905567072462633881295172544573542801871655273684366169056762285498671033220464614344450283110457639277534219588927879995036594777874255995156309827638855314466602899788108309442404641167992224991697436806005851893227575304265591463297845157386803543306895073043416150249670639193459173160057954484242637483205371247493886109444257688804385234604577694438151341871817611524963241663609074783255922919158283297942744318147228093981642053268564783091542417573825387938493195711274377732109284251700371092448551680039344005236540607660789745213528376377510867198124230230758891087841932445939944469581238301129736930755354552919019197871555520761514547856857287238923078281071046461400400013360976695333267919730255742293368515969698737972672718207089552071599150434505316137983826705679667337164039593207246717228635545133926211688358121691227288744423320905059177014534726913615642053407895725161673238052789100722625343132461646167802067267764804181554010169636328632725158205717443920405314105293230435674251259656349797879234981577448196173592611896494737315756293325800224681482561828489102937315131594461374517548443436055286788102891238073532010404714240694552264902579772553885126602130846478256576678335701380764240157510646356101562464340098180752250181209387698385821205439480235635482374630921763112165880157845722480376925957694977644281089884045426968233528989218615222219904247780054208707582804223518843926925035378227219663804528869962967805676338193491573386509141528193807349205097420018693943674473761421508181155916722505029563048008155764636780000352296999583786153814910590700441442195152396562094973287965109498309014744821134896066369734470276228136661446265909488837959676636748989549595259960410392877512604621920970901335057643394693538703430302031084318558720675796572754325527312819569396526853573287496439585250606511856670335203361584575139015476372587342850269873439308255827517242270201180215403480696755245072475620873842046331991741617054659278231190248986733191986350664408131700680844567513519831630363239384191823265368536036006620143202566950163967868894301509895340852802330038919215462791666789100739697752930442393424386246317806615198444266603078910335581434904271530151804135525502162483116656886882120587568067550279236425232621147676613807912210917041934592919026124816741669130672798327950018118082068184328350305634978521224132247587543510875690551301762253954378441756088148485311046396604247612212503166886603058596383110726265305893964797264501608911017676756563608043031331686605129900066940951075405782026182461369469985480863117102268881877027098913856521863622807526151648925473316603509429458566376064266662109904724806434700969154408420332131758844054200099844394523760915043419135698946581115008251865734654412472433007182724257046304470493199247991589146251228538031037834910591598254353579557418166571190835717967520925476906588699045687800484789791217951874539427667100246977120811684753173689782367613639776771459358888179932001618359132824718465439080155030107581785527351397141061025779982731982736494539366231127735329385313700087863085142969073755059127360440913738692989647251691416487105759282039333172668274150380616668291006352398788473696677087118514000224574783990117365393181604925799430749647593160247067415012906822657047589144559655324372238307601448856172206663798960833765297188820595585894797857490999919969817208125262579953959667770857293916355901967189209331639868869554413671914005781043397715406697152299440423138435314135057858778620585347488413760721722708580321235489422622926609865946622956320693974815834830680028400302561272282255654657878636706660010222527017407444201981891166732898272433473255555771805891359816042493953258567699662886765134958298862004910875766275390239754698538689175575809554928336838794061459475214597730671313914835812096141340069611439884202003027906581034579208027704095147259850814595268128190223918768960570038782133452157277227379307135256969769938179954654448677364189121321419856419056701521833962972640885883890561757802906563199431207304398825373442580939428480783012127310732499379448544748597814483154906786513265251522259792567798006045345721380535135657213606649329810656387190079289728575482198927316427904777883437456741653989364937178665819122825959233313877161530567827766414019085787464449211252921057631435643625217229182818313614682129567266838199100295743176087793744079917437497646936223021924691285316901211263777973593009411712141339090383253914942707129869113483306126274349739442719629920370320649270853858033107893615529540442405419605934373269948301670392461973049726495885644211566628254303818193460756123069170559570980222945084285897523579957486824703832554907466832872615343203048676223450209502964301125838485066255760622602520818170572329324471719781865654882952067822099735759725872416681526351981970943243240182983713700969145729937862531548392489234444933744508750217588140187151465152037812094201461941028108627186826757124595531195105955295272813183142978148826075686021068595667423350784919342897163413909458121779729882870068285417318143703684371720855321683322040040947812562107620850338191861323421977363184965930492938705359798652278608073843610733577958077957277965891781739995944755769088480191425219877642073516204459928130516892033382774704917168573321446816253196949953968976270851181765883141201836233595186762381330923557978122372291817343276406516651744871459760622824878427052507908162729894849026176820999460390412693800056268901499799847382165009647132848336071554819938573624838369732921071419130933730728508545883667890902145491376802268554681746574588825378971173916647038028006082738937999953659432018261973633221869073465816833638231147157468501715857266192228709649380972400026794244924128668480481515953739189936824095030931488731332555113352817445337003070467038616903099617275062798124575748955654883934385054074318157011878079685147934660680118662521805604070783650966902995804890666104002622480904119499916696118036242171712787164320000172359883147240421136357693725148428212155748438149278057218647380296758723504913660583990546621248178091993459858474735978155881619865772241740455683313603526011694023546320786248070400871350784626114515696081453653557460547981228640303952562460730690900110299745299772218683789273085775143302496456821119762257365205237350441053116856041658477796238527601114454129680051740596968881706963389963586062476816645975444608719824259707171985977086997229773380605898631774920594444541441853506487466077604009083984505391874081010727298692095954190063169323796468882590450759340015770336097574819778781908429743739551166989410584152820276950590109734077723906354441905080685158794533494856392842755238119232128027008438640692627866991814856999271773942483420738469169339281822834368048588279097554437054020827954066612583658505297296167664905720620205176254460613424916275919614370769075756354558630844438907633026508555235218688345973948169534299375878416188975976317784954273520581935898226297177630768498165614911667150549401350029802588077902952618081550329242624253032405431386659868492894321303650715926762652576080422417527646150831368882955830060410913433680053726320422422400536799752619330256094440627288402097901700641224541858691795737537102949821813887956475885418283991407084198071274577290186683192497547616555976429793930084638867181901682071652141879269951489161769869828738066564637463219544840451319473024246155399250254933715922167023045262406383778101395574937594968785620738881356508540382681394561319930314133375114368676961702671907595041802545192504928498305025975937086114963619167893904550284803291177855444450795150466209878833712906703445056504417009443445466531806218717735834752818504106018914555499524476700242552941158294422872131284291141415610651773211237854182001404503530088590446392022426241746967189789126130475183173219550077167969599723394198247802703887711827351843413504972396163728977762607450696566036633976283521000798120133440509858052455097198800685946342378838311444598670686340636921622236412283404840889214558304284404923915315392960145080627722936452607993478074419901562587159585895118719863906039375897492309264713491674860985555515334227871748518198361587676750712959722746190493375479735012796127393224505099954388222505804183367430274656302667343430340469355511644426467561979893906038510813701261786331788608534878076912630775776837990641021895793909734941708487528858739657879980884667367945018518309196322580266582345070707208787854414917897411521120135768915845272558452939618394260611742181326216084508320664556256098520121879204096783201582708101447764716064722962726222162869538996838567228006194311136197901384510063972913074966404908972887660934032773193421554481029098937739568067517167976750005303217606469794353976875715613805129617098884849165240243174702313999877817722432383937942831768990006382185960879513965461082833195175488625979615923731004379431518313397835690923965754954422565437060157846466147379571986383480352295900240716524315591891695970607868631141303893369674560907152696234844360236344294781793103815954835036463939888790244640541073169007914690962937155402927233389313782798115774140734064196075096535710381034653285526957095363947621785660565388630968477536350746837373723985967728191643074605341102176252510867786499815285288503820840792329417975092275950222417596411818860950690471318763481709946242744138287951989023163554511456365867484385705198333701917094489394950213244487593579962338130937597783128046674888724810777426670555707245677653925730546024523991516189359196322985417484524513556455248026458791759994382144097212894611441690271862783620197463734132573275606561441409872982297210813548770833558789728672123011945047919357202702865260677511644898746262425632485888402481112864902728159984718310839219661709182729412598056708134121006490830493054597922070701386594564039529082608332568957083138947748595626999997423713845461664752564829986175822996123277448313951767591640617858823777052742234902066705946000746174201688949994566478605414075259599121049864419947200936974329350066611935259068515533285582481702914841950965121622625842569780472438535064322428369872717242972192611911983237095362694099780110310198785833569385142449508229771663049246410915379345730744136660366643446062993678469752221585776933325137651739395817395941562046538815781692664237304123234201107640162210548715962282986697056555295005435153851122963435497475217401688603187378963872585126316646034038480841421571820631200897278128492789126826386936641170951294931544561124244615377236433637181504571773528060957690942788116142843723094715898543138307584242182111855837351769594020557027823305351673804443377007349158003739861247465995498297661966643719505052592069760078539108810204722503333218592308452279518653210559979968299423015814616219527307251941315650390860871544342123796726764226078708969562555501532895458347858637016627933824408806510352430152645359333594389553697694145034992245249566213616343886112824810509589728972622820399986233540962986290647314680999248159042493414352755549438447243422986484702135796578108078376627335225013630243943792503387038776983364285674731567307378147996226239679986859131705096785087029578402732973720648381781513550861440287821264688580732817382891740095059413531398802973991271909909895225088523709142696713440932069277761572370585744640729212221011227341959782732837527248367925658601026651629504928121786129807380920143590583040420660782898667251809691651230612796360109337322393204426701088321572328528613447229766154103798050058033784536658506549350308962887218765987452738846368710694361702467053010704956049509186651623149389650018766050079008484199250660327362348102652350558094559828652709468909314605770192156134228534344327003430087105812125466163090232339155659339150674420374696004728502282493074035480368285835694115331696005689719592682638130502502426001603762606847027379276131372189136150506209627557714224083224564737004092247802007347697707091582642028246120634139626994515773803746764551812471891251063279945911820702998749153951351504453857117860920848278751386589088996694024181585712229746273222601832092944081196813843953815673884868839196501574847546730111665561776476505742510269783335073638294859448088945664436387894394147936723972364727873940913292826431382975782866900973501007617071383904931948757740507606456338991713426246984369418426823041267385761597516730700767995295317324257524121499607099585687972828926704593681961625448497236306560365369052818608822580681264732225137533647491244540792904067571945166710436995487890212650254186768892830092391756246471838282409645528205855669232761450579406191739855775434889827577403593697714917858893710948461870170958341083391020390233415322753432258928298084374080360135150843370588708194933885940627194135856096750513341571650340659599797037156636121664908948807692881743903019834676344817145923279428947471393709307186355846090292916450688793120693510069726022081891736625377592838263523457501539396957245907118904657690922019005653536849206760159053403496702969545856625168936707993751682426226858383817163245798219149106522443436862933950779830640600739462081685015142165535150802294060715363918832822768135214076038850394193894893637446135228024956921754176939560615641950186475639613710496965171667917687990314997907479238919798814521123124945390691543303991042539596627619865088013352755512169509612302043141831489439525215459964679990829332712892811588010076426306545962316015648933099215416504965506251010727206828128004387968477029341243036468952734015170911970197616610078735410727930244833187427384185224895392820546881647023911545263892181287681174514655412641626766673708161720481941308434134003100581006473258425331232206838709150760197154913446981679066799448465544715414386636122829841792071877297546781735057140345029299010021001010217665301911491941728000065364572112731480478670782887266438533971500073985399727279012303206455776772775706600240879239569720847102092003847918328913931489123308690185139956288835827688046142621003682590929660386485395879732281156526698754659910243059687891695728156511644770547315770946753391199022567684499741743482791666628910078565903431886079310058695197978157687492395974081866513266709483617105055881766503470257266455724752710291228918533096230216662640390296159008919757880947855997330456721477410006916139941902326610591555057678280206950057423076719252254240985037025226143959437255072546163367268201414945578046581248965096068866978453567863653806532601024688573291994935164836691821958346542092193853613151513713468717742834440063274489414558117121417943925071387288786657071686462132311678130851136345979042191370714900459452293497733313720613132900047263193355159815381638054883209625432874671742973619272110940168660494293240501650657113559240393775544095118716001131312134337925942761114834336822048923895845544701588199094809530525602055943655044218458448650308234697735619705546705116945393537000690545005217654040488065515711156828770461773289467254295239095383965034061900358680892686441822776618513662322929623819033099955618454935290628161000543295530837061788746086636876423850007317716217266930026069833909797844197191139308384739015218739798587869893573713813265951537536263096644933649224256409662253007114551190336405476317631798884380265396483332335948478582912806419968336266276677547741237322695986889207885905616107379232983844774101584944032571580886923758274515281091970028062690964364410641879262680107748117953667981483968130920007106785296408396919053352562358423019236047676101805535799635642681343040587515247764357567607288841789339836870685357854466232767857215202520588563342145628216600416357825373155016040758415822463943533054787354968939989225871156286068915661845910818536144322442032650788422726195074026437335312269725426721681593258467489530873008139915509418501706331827361049008148407453527010150677349107415760987360758888099965241222563284266431591117062279476007035447311495606703217427527503852966781370809464164534783232877344039370615663815740056502338699693443945061718139709825854497511523964523486502465165392806781004547237591030115376139636614235535825063392916166153182857060780843112186640646977400380240837251817043664809674620747802817352867751634733570605645719738213755548490955600260760293771345347505390871978538485743632606105992784259569054829715709114922394535389230154020257420482689797385202149615387166877577737205425244033957889162871012393424374415905171987897894171749614655522704301138225070598978696605084833371369403193042051648236600139116872761617858434232950669548207830749315472942243595460418982926695515544943157135471023570606545208778517747831247613755979159001333339523033948047257187592806912517670702362844505031365775808800891825726775409957040100968599651143178792493424330673752981189735010923932891957690407203777276733324670349164568131721937153795846358039862630174654977922829060107721840294676659665315759842078020811630828111515793426161190573313661422419163342834142541466191941581906716856867409141366929865535259642100281300795766613497934392397430930251915714669718861511674275368547972648113207606003613599949105997378056203686273779754736921857040809339970525228477732245846590216515162145727333174030221985506639470414768707489954012659480499528313793531530238938441045144146347103638459788288585652324289529148112590655370640815797329639871184000379865595032127772692927795032040595702733439015220060854847891852937276853157716887194751316139421029463360920631548503336769313873042243477162053061028552269326231740643465726629765990705372000731613858079798410972633728971697108964339235079468164061304613620543737809955369309204704113532339628952716080067331462464396743404016661805305166950194242824015521102144198650230806745680229074352838163822140251114387167207580943845657744594397200867985190705277591304075201243507133925139314453466437905756235786399435575560187417866662926375535396112122974675852687415372560240164166612646021281429540391116921736680592766568000424863555275118051721705541437963939986423888622088873550940030301928626477399561709758716026308790741498528879707333758189071943980730960806849747261635105234607315145732936904884563355097002770149167225306912999993391858741143782961107604651028220311927421292172344806090129374824434338122798072607778493433658108316563701098375891669798068034127674212232027912196134325448979782853952955776221699247127069971867696022380358548018051804660815518815326938467264075122403794433759476232275037145609228873205373789027373828194390970126685794790524071858091329598258528366571771270791816500364277073331007574467426247543368732236310109536104920188676480342984768581493390498429307442438929992597600428402407896822841507330871683278673293583652399751798423928273400278032771814638802629910830736587461529939621359388440441739812588701086023811647793466467426303200358752496486253232861619774297324956276038515232178530633073514604754023682526463871853522744515107327414545986735329212603759728334312937345747051956320014287175171263182631932709018617771831320006628509499754545157286534353673795471051829287843468177041731895242601409383432419237981108684386130064364345979007575978193140277111966216179744703473929206014000146711596726730391082339676533534705065146568290499570001383785816703326199889339663043372076760278913575175601474105535821972673542686474951148506610999065095173673482692585140365595982824727079543861430775188779866754677523211193967750702685018267427861599285502598273603211818967613493732198859437942777288641275034613494361730188026739629434951716062698434472921025184154755176625279548077992627926600608100236370481380179853854751466296187526103061867254278963271478475548209743415715204722068995907898699092466480157929348731136545486143523547178269152513712845430843113539066118611590742955170834381915621050575171686830042825014849481821201647919041721470977353647319986844030743149845230059008152854752108065752867662665901195328110544341427741442623830099280218624698388121809657594486585801278429152576932421424615309297240377635570147813306554958945998551905127800537365393149264940794186738333615423126401374562878410128092829845367275407796413114197263171399466174569596669262482539388285443786487535171458636683381788987697186660640101174211597423900770038357300433380788082577553935937440252884819369744516991947918271222232879818969205869802109336836355018832772438067012835247505745577812796196006975605548252618226819035778233549754848628300707979182158625454829526923183571864694248455200315317556112924511241468677771372381229792245415502050939560706004668627057520815572123828895230555417689359923765238689089169945672425184712756082907787404830600936796615519444442858938936390329230042527003913215890816794943874299666530835917292931908126089445543001607074378240772904842816165545049110316056871150663529181062852381232637236970559679507626796629911635658674144337702117908241487072859919532043682634311957152068706504756847845492132675857725509280712977782848088598143706606132902721516592298553497389881898944606294064542894006990266322179293022458889662665422560792117357418182031690156539422190013441006827674259557775706486358939046959817660606019551985388894492616942401704649191940849854610195104936263628945624798178982342480868438122073103063248443525253181365632286502987723866308867823903913978335126522098049391255640027457711183452991388493367468309552249550140016931577611104574358634224416652581275768496727507560607935169125834495110883377070124695841741815883697263624917005959023234391345205256375875388429528138328145586244555040041477099018521889322834645223183260977286446799660134010727990014836798159280252323112415996679301049411279287075120512088467021233541456574759341074221302585409550061780430083361918656670367708603749494570742224625956808902320226397556887686500241333941352230329480816861454650088319606498325855481409840593134813399115453424203588452340327850842100270762670965436796625350071276005046707713375763229447997131469701280637706701170637375679833021962953453712254921618667907382616341904279343174691525773322017616295686948639778017993989731663791892343492814071045116395677481533861978794918684499486329952567733536666593322734412767448430048262932311154863790490575599363486114754766580001418131443228239237650166090165069262203118371793012218435746510823188888110623128774083962503238383588590532612590698421666690917055875422206130494891859252502728149056865152768418941255548674829771240455466051919368968331987428791340658680702536911284458098814394679673595582924110102436826240674121196332401495425024747271116841997151007464570288787066117861024059358462243528120986538124532566015551390743858741263053246242784852230086668870926732608031530470630674429604163393775939164510329656106824282685165778500015949368316262561377501691859570299174082205632862089044305258298332655819129901743468543932816152060224210275241272977726021592048642020489883244440615019322306764653924955734960640545199500166283025939426041316539358697378818001701240609580814982472072618645381254888325914355410087119986212934209419964946486708647580345587159212330260520511995261773636050384162280153296066576993698697241016540737374119383654725127457708914671873201035593660104777131049799838643894544044432729439821983593625587247747375047081584968602224462548516510454711702121218533717330343406760308176337603303675512766389065153703811463770647097658381302954839149136165079271743327905782158385094658033060078235878701331623755317015267426052112067980362325438454884996953175522062603148230584493190601477142273790214094319442673957431614936925838255519095309912666529682481183262546280257725420698511503174893731181327974487069154691694449764402969481508117153313715250854166088357434549486302397087400039671971172719099517727394768105665429633880205792955912995387150097779334362129284812611975041640241198142721295520598994796776125994497411564655236178955476582239581078796144376324592309352015935997600045088644045826959021325759574069482761187887703558434897705169027782793283931473724890342259382738677828116810827108418452508253147256951036436156903793090643548860197983003084315569374511769693298424111846079086002315464647542655114962953259329375533396602078480161006990605770421917170331210225976615107490837279644766788641620622389374481496704051411428550081561354945420452311822246760088195222416210102362004233830633847483768261507469984059023589945339548866131276080639460595472062355205621501232693028436870335353420901282574461645694370594906028518038997405012501736195802609294822965763559882807324062159997827758223530273886037573674082317216231213183984173205310728509808197718946279396476145926255904454101729258890867124878561552663269475253650637595042490571068092177027614154769213614761099203563338682171426434251458689656854211252155107651036158090784004687098804285883666376320205946079327731685418129862391711125509890618713835448683842378739295724724965634243348399281463889765061087546720258954939942031284128135908785691009277828339159110337808785518734298709020704299806267144385677545336055288062245301747574157110579131153232493133638016390489306636066539073709752970821758148493876841434182293659051922925353689326027878417784402037894653036836141213156439202132641053243657773308130886348169016288702858234853329182237290155233220914478408447503975366895448271893334098888082962228019786658089319189328642943077922106206128413024593872278407388062475196080360403522443520285254671583940602131450387140449482218210516548366536739322693998493232544430357034317157849881988173493803930202701655793974788239268860890252585165900561289098447429721458085312282720486339963523410982085974326752696610246653122532735987445392904838421163663192063601640700481600360864632106965772608598419552738262636122589427861334788161850649586900084293084886580292177494314708959604861413394012032470624442197926573459810060735632527273620808267971779294017633765513589139077265289748051810934219264955577542608219404755103678749461229394608396123453546271089063113257107829595116672791312649207859356072056075864085598312727494449215574636640075577576111797883105134073952211896836419275682753383667468253499766459479199586898970572782302195576546194131996139780723998107614473355390562834852743864630323864914080141930326939761565788509763055194846041447389547105349291124210747948770388612178672189572546289400534112756475252886825225965512614597732825385977825464555759898879594414789864845277873496299466485947294758530617044754387806208247688561214449070735453455893261135442808315832306095445885842699749149361511800038098788302116558444910977029348359581263734202242240758781476456943589739352847231863294889182937516256970085486803410313863793607032761079754514827313358497913315328485444232436810148818199686248648753652490028809099709053173834614713796563561943411426751168679449248581625917133589680893450732082947640627762168455115993891218800452566152151148627481670198719429084666231198693927485375318386483292443035838483013592370668497806897529516042222207757478914840197535113411551689668518332987767203174355628558988012802015301093388418480973273499062653379732788853616641912565723140552157247904543635311414000844723414084505464322760586963371458892612835955547838441441455098144560605475825340181907989894178305982396731920430243787770542774431329342981126748014670671159633567304173520881674745595006118277681256245214447388780289801371037301113793253991972121069515175756151987351075927105532112000609550459582560361559116064860202518258679194357584759084884099216530711811204496452734480790262862201807380647279658650816575116355334393876951424603372056611205781602587363685438807820369787779519697175309619520211302085935142042337472514459791363967762191900365519591961729536505558235967885230909531960853147832585922073915740141465414049652821292205215001964735064994124701260236150343954060236954076904952276756696650722157922541912722145112746132536427423831420148130237925291446484161327591253118187555128311414877469673701193182425097901516044303213565751171501517372629117449890597901799102413615182913501905049945087078432033306884230359332027216163501526861881616469286253775457019992119243409178189501708541557603730569108631007629949752777918034042521757649220488830313176139451237666265124215693663412386369411070677309679464408404163526482365847045064384976004411236644267275580833491596724052696115091912225894653923096018846996844656151059450277914862124095161170573766365612730244795663070579468017845850638008582857102041842722272179446883901520691308998616033701638972957673047738114479120453196412474726166180633652406889859657264376912464263238175598876885943284242099404872353290118614037250639694000898942258169998009224611355745153154129536616240033285418735459597338844362670079141935734509151998548607991605883655595741634592662378052603502734298071804353761750935795828669103920251013551076841175110273173389548975210142844989638283769202791712348586963421884296720032122066387053517964651076404688110236155794679028907222698789728041683997945590792208585124621109617568576643609104229338651488513878903732065356391429795902087730636618900378354600622501066002284035336601938864534380596377896909919573392396214771453827551300730253767854261534915602227296607169181170101394649511128373270418589799173714410974631558472961019222399498002059590340740431087302824610858260836584586082743735467845785194836906595902057592919990177205598804754064170188359165335104857142009792601114495310793492054433491775257478457544573518377279600683964708318183096495498729676615111994734422851355875690500516800391331524790508436447683520163295247804301800462838609655570218176485521459309231623259856737990193623046705255774143348184173710784051157916627182133139832826712507201731743972180980266624573817153616330460011349908106598083426628326505665982452275028400146602246594805451610092443151494287758439532732482739519666453770289610145780863002670951520283644949356956602591004195978557859537631408043154846343873982472980835997844309464702892358713886001995591455149593923887295169125520224582739354632581418798545956154137352075953644441753493976569034266472222272806532525241959781458816439726592003841187138665999952653308385301602827986936221242981419992996413912125272621626121425498963027261255767592364098511457089412319575155087488768371298108261370889240362353647837167325301236148055804843673569863547642740400175596108489260103338941010806932909135940592728736101722835886121999523808871714797095468718532155004848422155587649623683129948279682766745930716697933733988689245111794461241356621600199725049927106041638184861158259426802545224001343821838936334789733719106133139385329921763183962410974507061678710985346096762708269291004423542869177428041713489085444344249698506506185403044060212035559379100499166327156540424531084021477979076348823175423511981251944090488916688245849273218453548206519572733589446500550726264496565382739162498646168631846376581065401514666667785189803779363006932049422049795477446314643466549749840435897267958341649229261357007374419372050854045272503664622249671689581214930094358281300482523116655364793813201002412109258051352857800739497453317170094614473055054842092253167970626223018102514066458759652947326470504975090930302552304231856188967173311518268861385169627540744073476405167802680537405530556052549750801806242064808550039209889581245633565909275233084014449607535958294376340835830775539612075977738062667477883065922700697230693415108327484453780136517633687011014385136133249967168920049083109431346791667468581390040758260599022739645180146711079356784747666771316354888877496341362115095555819250234173149987097583044453593431906402532114582866253780466966581203729527794717016419726323261126238308212124190367955918874958505017737669679900056058314718027046538950888107490886419845129270207066306527845517845046051864731827809522206530646070708505830684558329113257798498820789942388854743195262128627775314925355378175885140193362684174763854960235938501846080603954912849319501070022587922737018771596242272918040531374968024967613954628466275934496270051784797631845268919083855231805549995741666893544637250057322696451330027881654067963604654376768115642856899080655471421697820383124640876879510059470682674216534943917247997610460435184437127838907892287402848690966185318539447633700678847995947512464581598426834587527272455633138880543008456886854367107088416668555411014704155553094308217098824724141884201516224123081563103674103104759526263272784395433988204641621805944288882916940380059330538096238749923117954466628006114515022062152786909778560877375170135578308743132696375317870561029330644689815521402426800632835674669516737820933751885218180365321189699369515471793670012808340617911186265334519506452183705076433561178366869713950967612144026382594423948281679574081052642921421119978781411677558417042148565251904414038791612490316888234596200273516320939566718885798035121681028899795415671527317683006122090683035703171365367154541446975911933137248199193256349059392392352373705327764939532889876393846728309900848143745138153311718685135525153521625386861851456084192976932922809442278588608580229969455199540693687520869986233792351504745262858860002860972151378687872687388474944559859828815724367686931302705204245331452797612951983057403564238523486457513522965570521425062875081873505113709237782205280254583598974350809266838823647380117252420726992240785002371264465509428146680268864033806086801923785832669027403259091660479267405731228834865997598902495661444449953704981717017120469818076497377615724557648997421856941094582429777557218012054908244217621413327151353849019597069085340274389755485308544151231710413789906953460995220357008959379924931294120418143748697594316197240205030209596574711636506274929396889987454900114899049196008235750326644086418971494697882678445689904267586953610036190606492484399277635905429284162944806133262530285870643806681538629483536369532462155034530403445137523067650392146116679584735977122705902763533272134682110109623049885353509245708890080009154351646921885071169870311745797807993214980822623747289769134182629071672082155783430005497555502219588229199531378721869658719417580258459101030738513975998345404051071889015359096505608371462888477041950156251416937982537725337071213467885611217396525216054803594393055382349908304872819508202477034068744207648489853734506041408390658010313407369160968831758229133838308641474743538315209785932287347987917659321561090504560691740130249396560126640156839244324031606754534432671930502144265337843769915275278577285229082153293872163352545953681428480931146491896566705402829282598417324911995227822288996971675439282709299812865234905710308867103947122151399188426867617767304042840429236297533831392698345541256205233274371676701603130713444867749548108364535514602015732210244558560292297753292030809002216845616439959789109175444843423246193840001349197034910689148118881815971992858859435282150586853001917189556459799450159794276673390484958759254986203685341337180380373548084697007902924211143125961556529684739523409272319354595875734870803559006962907724180193548159919078439049736016396110355642920244448221908932694920268360006114768410279210072246903033497973044019389441792070560320651687045983123501036690586891776351711919622919837024006951041947838492251633987229645370775327710368508432668801831597991599585707791655498635935028037569825784086800431082205424717982910182018231531893274328218211131049031591128187148530795649190511498726942471392765527042997095816492130668250807948553903127500487170795773954024524958351340920375853793954585713722842883044128948556853428355623833437580048510441216560798121917006675173330712340589517146238610230918734702296789109652990817629841178563873215618227298953058814278270550576475245227315500666151074264454784737085556621451664850320319494484621824854764716745190047905379157873717295810491075279156227222213757214902896327745062616724144144851630943789065292132402327977760188496931019591174378228265055377094539975362478701076560862367880395350178529624936583877070282787643706662436410675600501501978504813141214017705748403390871950696688742698354470729615741785138021355030566189916585289474965413047164424330687787675437698168328097242569006647889423925388537816380376944171110730636789558579058575359691314647904242973671780715539350063343772199204800160365509353999300773606984445071192065229894534019705025403563939793368855464924669075137329184856462608697541419849074985596867264898068554972926980192295357475205555816172232733073918710473105340138363086955589182349902285499267810484913746796321861405491722946321028546280562732585484277744378877354132510458186728237955112990766778682724307478268184889406204122611795595975630106380882516235338805908986725937439214815030458777673978221640435825652044039173360891074703349299945222975891462130618605046745572594706423166787383287709320609722689553371074440518132461511271310495734541837715325717408922732936907977617450100863679807329215792235461098316395536769916091462305100698972359486673136274945713959486453201762432806493047480841053263315957255465184548555425610240476963182202063203909208004307428271844630051666376726061877415954140046174985427518955154211761094078447990973961153887973743367366580907219714692158619198258947030231150457510517517286345704392155133171151130378039052134716679666474672016930326541378142002222725745795019798210504611830548385595841000441361603582533795220143246936846715711381054455320688003678343023814707563220592710733471707793941468454438991007556738141947140283701831298863803816604271252033073397150547039358823399619353646969932506809112107978697050071543386689761649800207101587076454758774964918796096975146345120854215502478575178474647887095035474857318087909419504500201084458743193017105787392676798480381241031474354479281638417789862697310022331985741683086044982325716597142361375324884894337261762941928572484433355288691019677001139041905884682345424125232029661761962738329622281291830027962032504289619032355732572087157898683714240548372904858407107994691291348104277206314278418433971705711125963571077161869666288167663072108074511595513982630138748201404375553914757461701921810819350336359993087132140363338497179284439084469162461674536477018911842202532761906372541681376072110124091066941844497611762961626592785022979541872703217206925466157095187874678708148456429353208020401763194829269596519790375045314748416586252405130833542872215401032716527365017092204864884503544799245209347914514896885584377820846331892494071949930404538689769172660558395971261315269307254401459702811748311366611526633636805003994589649581150634229265527154181255641589298615454039023831772985981475465882913960483327143567064621356262282452294604310325619529108595123463931372659813433893343757662045662698620003093769383118029826200308995006828897983090415067798139239147755865180526511995625221399976206310034457743532016194432391133204094497442281424360093389773972169535452724821122708170605305024033156194945595374287523330899067807836395166851896225069400330478204146556144397413472609597715495945040074330446978980191964040621586388602148074898360703391372167124655678145305874794236021535437396581008263680085755375601031026132644035040447652220718594115186302611767231974390585604991659892007597250712532857171939709496373980376461295785540989333123137699987261693835006261156960296501883640306225084858496313988113400999721206674238417766726635883894925262708389022588279137000104489513817356208136328990974864558258684663566651496792036065035927778397371208400068792559280318543484611034167137866349093569545137772189937271897468869914118469136333167363607373098484293503351465003652852104183047130097140234907429090208900826726624135839693460316050316161144419798556173632473684735537697548089917172134988040462486103932395040582705273886300872967384874177392644989990389404651635078245774454549841522957233005933088814460700714464812500488091661106469482739498294885355462652474652792411058957977338651715911507292811287747183781939948116287660429409676630940081523402318170942379065669417340747208001738446183262466156438503324678812318077024181029291608018451436589987375176070817661922065667517791995466251069972344829340666758294261540613166069672491883177370148680861771927314342972011740306616292085394727648555998989438976709266000734929532918317284642830981273294971613328818735177036707612597181842332164498515554709824661071813117977725952484510036692427236513922330928751325347177093744552978695449771072637130375919821781213046880020219022039922058413591525504733032652741845702114576983187487123463406997001194954526844561193125946294409084524560668418622334461748345154308915698596278397897283737500363548081636387533275397067669824269830235732995254016532036372908136490280586973232221597228893825057204675038439023389631508963553010350590368981181313535996450118375866843388147237275878183045766784634805317701483638541450567525966433665887418259024597102861438936177382555247279273335294752279488077149460627148782319556076635980358655061492118553156145089838609679098313386713850365666175669490045884090697165182525696784788823091367416337869627287604357145693862821197162184479636602995949825566511888400281691494847639319253390907758910469168872776600989946535478402073294650065241618521992316165181778151128871241382881865967859116422731995941018485353560765088874452119858718589045744565802064487821677352743731249833252185645555094275439885221476584637838403682257767047540772777010163815797575264506251752456206772727659256094164738179854719112817427553518377149560682462980462417193496080983056972484009906011577478619865156957744263149722912344450172816071699896122104854988059827811855048522327116787921827011513210158837291619169209575492974788127967052307782714794170985229175842857881387533961639745499301959156336982300035610330492461135978372943527555995113362886266491298334242236298276610668434777345580841951232707340314500753310168333731338492255515983815280233915235747058040293866565994884378169522282395067714099205726213803319142192655663315507077900938017089511294651407028715741544556813500958653608649408996943490952650567195890026840549529849892117448949239727440669694704152343629763416278418007253655755575421686651097348439468936810427605294485039571066373911573124995957993596812093036493315373117007856008600309138265380999002053949689972020588429336005909244090946117214201650551160844991501992464041593298092883084637528591603321805138217989527328875333363391154604611254878115096930203976042963729026420036812026745262899503861762158654919681593818300413987736889410909903441763280721585010061954730959441529781237092790521845305867383687728263643289959411529193109292068449652736541160088498150717477077614825951483744790958288184429550289822050144753080277132568023640990286783867635585847707743201708274987689921645291784527720780752134021740791449120784252582430728331241076461412863049844998456616860834694328050479710425167286712893780620845067312094078611571721724165958351753898961145443100593508865745261083479842169453608375942669316924394226389921860038306458592997744327424202514501325299398298136204203186414108955895181896847978208164524777946904123948633432252124996638173376633118893101150957325057828099621731456739876458798475487770578125125236355297766564983650402156968662208109062862743597807028226350144975893544681224342266843825672688943677301590017923240971829522947172269877799288774019421201120381585521056925910104068521128570282050103546275845292174944073767684576725837463207580458579422783511883896413601461226635984060903741427894050686839096594782294341256344297139221798377425227208654094230822927598447898304339451389009862936158431413677116205861715654874239368193067382976040892901529517138608512440792951039209109804531900810990703671243209456128984068963884650102829356887381472033665590214316341156079114331888985243995746917345994023217132462226739955121288259040196553716419043360054890874323684680730997627836379557380063581557058087338436161922201575719201195635378499666099903905827578913630764998332122371939414041047840392667486531881032386203743066530275367415444926436659679119301298391033111072572019143744563611637712875442390654936287448069573110738732439395762982189941275366683855881180389502573690128965021761787189688993943869410098685803579293777855715153907004865371705341622351328009673173389732423523892285735689326198816479598469067826768302213054137000793782551666572433549242707286479419775464706728595033948638762808341603068313516524216761363950843857635254984428621845634626317554997829888917232643724595137200328409097987701682242020740494019793567120194893291991374551103457644529682962769657188649035435328514947344007496202704588222623942973020123562043375182083058304884355003762240150161664705977083953585825057599750677271335475252967559976990802710091746064808465302183522512247109197407947112812488837574761443095268313051614851543773936027902956931598037171909732808576329502304494414839034889008216862860434864421436177840065989944191298332167112085966748849458989227561573955989309375152077784503253033457589838321663476949564168449026341442829084344185841962881268512322663490279123602444845412215521519278095691758170900144463035366690808300153074715872876979641886817805983741899701919879043350207934769667112371616130630918998422881799645746427584788268057093290721551836507547587995106375396565062071241416628460287224979449792255797769642248100617918601015575211794424756640670007723808669493566074170926099713187442343738904797202687829695246546795362504674634076675681808329410190895913501948546039321138466313980961502977847075361280061633685159194184314695695894810869073806650432996433989134315914954834102677852710058941256923179147612578617751674084481528848181454402626978045881376221136067297536352231081735845028950507049715090585150126562552506037218337986717326575423370228302249928179596613710579147455277761592127359952902076507274869891594994304121723356058046271890636145518284250019944654820057058887200260543509705817492241755148838983303008662177223244264272199847620170035492987371487786284788066109427051623433317801672993612004557628969503077425527744716564674181131732623434927110202587171262570064046094019114822543684495956413012542073846882307810159941588608979239545721820422227773152031921181855087478624853119676572328671778376144751544957121445774806924386033672840332831575841645997469751154431097671345652414671840439054972453003319654830638283939818100080455797836581976023218075227488282607423687815612003740178241225202352151304729945586746956887059394264239067248938170268413548261876333130852294822197480266090905442590479141436431780968157778605971612119150585653492918961609868169536006613679276557683598570786013518580578335285492314968824515342852423373612486251909552062515092721042551621836481956105035389483815184466729003373065824451459263734430841266127064047072479388552860880421626425660336891833647323233264219581037083421877299858877343817058867343295662648443095848192310392942774206272946300871900953837368243969833984846504532520207371580856566313665643930876714906450464066222229292982230953907036282373518382820678739298528651855541564643700188399976047403144678245263536429245042365830305907637761771388221817321811923152154796108587588402657009296060860563493059189487070561710883044906040679027303423708906742799178543501902550854394432501198367991409768319330599573476807496604267618238081616561782014818233802363572682713223721875095859866701215790003393539577305412924676679050435063142702950220856072044341371410648733415295696075746690925964388220429231256623645281353384550978455806429727779680171778893715295806183973357495911465893095931635396280030362274749229592422923763794294582917610507836084620030323903686165485067817289208573913808080054838508942108247493579984613173551370639860974394033191736818246698629784064404418833527685523527896476674989418228996596097876916634220166568759178349002472861755900850793982413165587161292943206213036863195566984692055743719061695255282419286017271706672865172170434836895118471348642210727244295252740984804336593363924451388042175468824923523760250344735427067651183509778396369337629536538063474637996494918511668382919047368269800807794688288796737999532672278525507460564745054088794255272702859166348238377693010794949335864759432650754572532458056640917704592945081447612217074167175052759377947701095097431272973859635978639271920544662414112406826020832893915654391870101186533197965179357215530183953509722201522288210563184849849472005167922980575740166102631361837357205769879894037855959210064698935194657794191106588330904988129236197319885114306694311195556674689901306696820809684057910018281016574484351684447501857130018038890465887732489092654844583560872988472919269075968042790616913565867679307982518962956710132923354322720042790309933119922382427343246628929141708580005535106025417544910296388307406080606092249513456669079875833178605223944830317410444518210363475221861290821470836763332155568352861337838638569254511971965506233160869768560019738778316514259615145661547807129667825569933324170396175381914286081981341667990566408265837916997537234667536890595389628609599545289072977706892664801256115840551120391198831331707276331768017594239307035222180036392529717506154976320662926549043528797432495186379751695844533768472311525281396402698813217935942302724907422915552572331073682270343540320701682402502286830843058491646533532565006306983880063619412173456225124106062145788458419011570359615439647362185929035341466643495532354218311640253972987371156745333551178731420257240446666505595075984999578721516211052273079389606636558189676238502825356764880237149704916723614876164355790234115202784793007318295277623457337613376313851608995866635947090498033323852575657933247010003334871233431860576917984323280360804719780892503549672991776132686262728077809172330470896314109248551271099029344600730101588201112165228673702729446729241675378961287659641444106703869396525506842679447352065360656067769571272569744813182737564109728479100094343415366716821810117934300138590220109625254748745277148527120372087649744033051935388359397120181956800504878907942865953081602650624259902756942045825537413893090221102082967604199375936036211170418592605609417332702409575177030601374554431358935361515648659513342294671401153876924517140353268001215246438992750675648273418045581573583438188422297519524585996510278274724269603257184609590680294347377210041466402639021212610044872949456878738852250316131928376583717632329564056468278565401120815010156119304054504046079241322984472510749755172832639186188320303254963061458645925295879693484596269257086733903071413951707622827104293473392743125031158575944690090559828106837483896681872757564948698835960191095316414781730877439049432290899504040652841174649517364127623511584547137419765332764330539938377491180951262468505658699145982127565653261345071066552731138649601161005028701074990542207148115523815377115775298813637680506632098994268933308077909425355685754420720110892253035333237997281114618349572786745723452085474123624609431529456916716159230426838884567896987689066005385704508262019560702410650445394377628263312459007022955880048221624207914757731680241320648623718339309314255492486748418723856871784573305533881023174504795355191468449363893515295365923231418872927647878369524123557256710235895811010812583902928263019549791040679589630189557456302088292302547152679338345835517751107027578454829744176622865266060710471106483611889057654583088385970129096961431890415546992667096359871899248725057888993863388391622186906274465060028051110445283061267358380128376062018655960666514137429845621636204780710951229871099523248303106164325582157149266652539456936742333345758119681873460033230495857687162173501820752437948573132004440490004499714959451912186370657477678737417416665287351819396929409088117907090138175447714905014729961126218793601087036761978598535642461023410045964250313298839083629860464576281436175313558674497344930728239312900007985243226131883796484762457448143621731782159906003383351555755741625407186347700681074457541880667000076973332502324252975057233719689930588945449529542234921383311047242423282120839421664017250439179568424604667356225703402757665419828409811714862487120211133824171018220851812480461132442726272583050364597387787351274295367713711879509720857762454990273417761319588760922828401097314126319297337893631871682323593977051148674237125052569721666238364709824672573788027352018151702923490630405888072022340451214763129536411074943702436732115913397039202583493917861795302595520280479163373184244242244017604394267532768132828572652679451606514189969235745179803489280715482377445795312455050980600846014123486237624384668406054923889742092230313120044950194420109252313640911260408655079829162066912698867811013930344379813019972340781875374800783225391921685217764135445252141983507253389177825038342235315688765278251564863558693770411256051200068804368989063669802768767294135646481102111749824110527081622851165383366920586201624249946145771142998458949631006916546934441733949765284914120771658883583368414579772943988109416654946726167595587444141207309797082776676668631424500238563484604534915843852369100127391647756347885344586730011700733939779659733963420561678227866063345139490275664424975764957694533268636513374990196307666610411111113056722624965069172185585785982414607156172422479152666530746724603739044441036930328869078148318780288728866440923389163990415658346552282894181219631721048756100746305392351684785615598376551913436346744921050792212691914615721631458676054853388421188136242276276701754296142342733141505227169624940749300532811399564218344439145910947731564425399201209996172856107501815125646990759757458843954064933232701997916785198018743803273186077113366162667804132504428416179436666154447404694857866948815263855947940692429078308399434550624682604081804353853282694457329475743961135242186596442119541841055881694454563780211907096617999296699931406841894270673420620953970569165573801993123240745397923403135230991841898581842632617979414320113228863013917200667726519614423576057594142611755112769389070623790855705835455286640434294275317535380919693795648755833325820429332675386367364846265280028131118523432576155901070773218914723917480122255519874686069021040770862145357843364310314440688887823532268983906512990488814745779734179319676695229250775969011178119699988321950427254389545381456756254319074732457811877680079274490336085678122181586184046155838364623655777324471351432502005840536165650374730424799035153562487516576648862369657721522295708741382830789766469365936978877415053728182369298576720174134479769617994858646987092040717530835036001253413711296338038312744130690692919005193484836301880312417597332368634525776330637823986057966167036972903482365949433630336934034063016316004485460636311672200839958928238710403042284864795410664521048982702483204159191366197864232773484633119311649191231094158305038760667885948782795185505942364013077384310686980222076941287951717969146747910155668843225876514479739517982933522113198364012155222036650221823434457204692318194713971356558199545148639634005755550815632687353068859566802475759821808107562116560227230850989571777375515743634127159204851046701563219761298318963391171543933985677774554849766671973161367358773028714140031845524588636175849928544043756498157153174193249160520633213163393312299083484505720926241677006858160291860854452999925178613466566166045407119930458999906650611453461727872537654526437793929978910521444841369710894348077648547849419514703161331098332827072421787294521386081902339818015134012851045723117510297160483041509545785616455227323058372582661114762245585033418455879405155647915794768423735798437423069635457818828088440196662038730888826352289987824512671169740448491569695082619374117440421949640861919528759633803004700365103105960466045053067860161118142397137943615272832667942429517339582547102985893557395860478806387647898805686721048246658967336655353321350838478189269314618295014660864813606077868138538257237024192826709800304667724561145951852082216072058294051868312836684458306032905555157942696253420551415897117200581603823960313387281841335572979120765574448353794321631964345922585928774479102437025434877257111678584275746659852410950325979778107319279276919501238760884071911236726245983573300550742072308514956157235817884438045924887481138354249472063688613251895345301201701250725695492505697356233458436403292722462173084750531553469470719995304723102967429131057100932195530652721663037463012399801652326159871601658258739759552768853442161486866854857314987404469867252956119384540534859536859435263689607401581623090594647433659971997640323605543170879744122889811856154565912916783848148224450037592751610499681491327297718937349974520395500315712022007962907617802831454615805381418401248628573769812150468449796307212255706974674123404200486684747784539779894817352619434290052596231047759973256701753245345455867473414629893104249335101990711610274883222411979450276733313291111067069376092188933432418107794458952702776530066186018192610207494630733764590486754205040026673127036675521209780425637731170274335509126308136378202570146179264677415877843896037056402680870603819295630804355428126111936604228482132790518949777099126976861477521886517269238093233261604195026944765556643064739608066606816630297308768341816307294783836341232817282738599181436936645203821138146571180047662187773508159174338423831421956761227444983873238293750079991835521765020137692785743958723960588140522615353588563576571375491843156615082733139751145843674465863298464497695238117239717655276850137287958871695939688566897429436360365810656143005288687853498298102032395206202970423098378743662250798477692307776103181539820958015001882906045430062561611544855902627605124869016572688585832953645985126883145085935930918595347498474392396924877030442654721502254245967828672617132647285588196358067620606912641398681059484677089660625119926212901084147620492680671579781787413393768268707230454310716997996353892131551114010693568430010687883457403601356754816199493920482490270992243007820260009062981794485147393285276409370105297520985805230871680181545043030156151208719257512523380839538298456189317268692726564810884565961707843713528123282469150622107434363914024123934661173833043344367918359394996941294121048312799823351406448621827602850010118388599389618752616811402143479571638262606882763359479581293657729703848796449280211620357060435086815589704732359646133053911183680842660780404332135799390618923598617978550727964311097460222322423498014547639518673086246971831712126095007234222179329211187997192244657204459742985800361296821412406140218184981734146162216512233386907182031345284989668863220598786228767507369767694949204493811765964675884203970401163182765552251787710035119871789716532437400955819295685432941870390868197003320626751703144561439166178063562625682786969615191366609628157768475490650494562769813370491954106298067105732987030875300943377873357993657546796000275290418380510410494209789554364147881002815765798997518961130800210244368362750923276142193553066430778409070002196997136703708002188752124499881089909618305428288849009833688423320494489118546845581333756200283297276432045995695696623665180007153798745807804567440411837106029660294848465869331072256967374840556393937775373230336547089267948330035897322808499878300320623626532671861094984561613956524736243095908976883164763027898804516968729174523435328775094995646945893468857250385698450729246099072128800049279450626088804675151032241884924917102279193846604500385035954361269237728632667250241194499241854068107981108203703237742043801266360561816606942205655822953437205204469305770323973132759619518313534246979650780806802763065285299016423721529897178570490150149324523658527475284355883156150925365070213981242996942244479640143402421047485909719700552127135941804408093534212210671879416475168910523443973435714690168033514815657262555490576782923926138627938634051409637038224806451607817266024041929529331646025918355732279567799260043936221519690250258948475853882108925605848841208691074902863741569496338978730687244389027888234671825374677121143312166487958807968497888885838080618304681250331287290879744862210180954942206003322721095844306826362549544538980815250670083849692236982589526250585812408762519957131382899807822240182134473368638269585866665762502651107359160319447538194746382681922983366351809650610156960797987389007973130931106656610595705913597897550187673391315111519098316891485288640267601624701598212335159467055901677164940763079628305616134191382890082060698361042241051722289277036669593382295265391617724707706838856018033602050175357281972846134047286566356449182816887137026529402222750857959058292424528065472612758067368356307731543759764712360062292249943458806283489744581944576801041898208479412485710354872841366519024062560635365660290177264683350888813810307979578041990808685787836084687515005840663690090077195476665558723552949800380296022770107307531041705036833033491476161245893523016458876089508908033117030604985554445927082824845082886239499165862119749574927284471140888330452585295574175831368638689082324408001863689154498289483006272198939971794307276335306652868348934194980104326046225740534752265315261231365869215387643682423972534582852631607671061462336614083896048694214360104622809505126766579552080999946280862200827187151020130469871845082754626346086974085309127000072668492113839751289739341417792875665939557081201801997950964368576988248870090233242656187999776571559217862484815750000132958620953343923183290558218507069466554703774201772978649442303246721126599769699613689053532554224868686188459580802462558700217901340548957677679300614793059352273759506701148794977016932365250988957267021789447681758171456339368109175288872155655233553751401596206993311081853113811072735982539719797928558905453892158540228657653599224320457521476157526924619301322433384094968989794281778725709654318268679080525896888728869306540918243436254221993369595846247738885186179755559316699636442918427048516211068681016940609425782976558318879511820831936655094519391296899873480769854400387523130747183180791552258980253503548035607899958073295529024061034832920701973396898452711352494331266377723376496150054122235295010189021524864398981889834751688550765406071515590267775171368026501368925350163923006345339817900815265705396148183804377489918697383436136761075978765502589790179084802750504066056827469348941663361154746839151532115631071011770958275205173215369206372547950648444718370412118416249312554255686458264780708304175214001970938531155812789907048106339866603276109618345006388192051221468614422554709358272234168597726792302081751877894186117269169225014373185696483930441489249571255407343443472449708416084209223584065151146612682183569390074735414217995022046542427925097129060458817066761935242471971747751175890404418965539261118107083991956732566670744069406928098451046618781702735313564634384015153808560479421326547754311401272869995624791659843074810506830747675744873668751766522485319234724449172292421334933694047541097409883197929834337586304271039059725337917416836240177383163679615031143633572372495121557552683733353048304639201096733875647578385473065634818084366695873665499041232013813121027309157390343502265771495554739519696971771150038531994653017257229289113994454843381753933225588480243030222247783325911538499918748136232049212146739589828310803971738744702039655653379620553594992841490056944918758489944532642625554092862449308491243241818455418273865272218893896654080454258450424852295290168396152972349896487877976171713315347377527792877090462097919186898245910314043972196812022959433025369644144601388416875913131341409995769590626463278885591078041932699449465752132517755008386421330970133003443214705708648200328709062578000971475565803114911687328675301938452029961326990882048051023009832860696318142627160226347171799655864677291138276225059812302885907653307635437125477998694699788597417030886351033708794677396423955053396392153825281250091772546966390041619353993717393126726778059626975100758795331256993078792540571391367189252222014168043122657626341994240512868359147327200491747740667967926230418915059528553116137630299646823157422807795209578874041119645855834396679982555473959088154556184759959484814985791080810055860251712006654753002571967020898674031486081289251462165052799896817612066358872164397831513266374084898091295588242182549473555905954111367765942189403441975216402254333708982583089784815564165088449410597224810468817513730154892386370844166905344143904923644993552420851224059786824934671759632503388431911977345174939653993825383346101836187405188820267331670810324214922184507930949589498666408160014011520554122782900170743299314487846027704389563148994082076140605996470741422733290689208249158177066647638298024689253026416923566390216828047094416112259894888768703608428339402444024278146259861772911315136394320994890092109855986019735095293319587792120606083677587387688228901842816822542318466794793507997792334468393570622887613298127256724350382261795944243450837379866582131261762666725003632866894288000091944805112427986319963561005182059215110057182931933511602596653247239067832776210948210345166748755061018738662934985805954184088453855413457776527653552080830337416480629490698729986591363907343429031318325914572364979888284541388274056051776976170924723215227118852612777372771453162685973742649676720813514400152995958345299985714246029804502836058622642190600596380972665224790785165549455996313456574592549942177828587194924979486718366619378825644176487890524616935715319805767945795336786837029193252596704190111701612362197231729910842828443971141206426286084596586078311590884875240571731332086445783189531526556183628402029798896442799530357468592538338589126470311948681625034530970499471526983414003671514249889011958879414964313053918718627944018172088745472549754145869504495373950366471860751462355810639030422149783579888142751669883665740687919655502606400776086520432245177464189308480461130910609448354710016160820522037805657404615290099755627308275270485026749116282348494932897646104017467712149021378116882973253797113005934064804675926800834458052238280648876741851002516248622493597158452832041957712578392513898348346252890334468994767191203922699403132455264678106623887268447550215081028827698222415100781842493697316662256222385724324876973008677214095777862492293435828799648821675180362145270931023851985619184393523507019162266464605272504087645389246215760213118625158632225448222200676854841708966478074119250218807004291786397927460177722162038373004793382430275505051223167578710376831895046490470687874605636448551837122334911675914529669812256068552823902189778932745238070257268227059607414814408431642199243495113616273103890109787259064747424289957532221052449982777463195837887806113173799226746563731145686313778043641178818802282295773979878996730663715178281078152113737599563250459624980080019270055961705463602947158325564562218189680657248508586126369102356868787760261890798473611484796023144069744641922762461497530968720471353833006643251267310140281829817742211664163918499689421603257703125755618220198048751988554899315214991246845432313352510255573135549466820071104156473110867095502307701291751844368622102765963875130649387334773381128634867968914981112888991168412932081602755429986548663146023596843905255239444763237801318104126933115871044981709392671220033344400621925580861585176795196663374749382242389846415420536372961152123341879630362457896421081235535054240463883628101428014925619815212785405832198462212504211397758994242941132040683025170048912353570770925141405483451042067076196410508846127327429454979681714425368852844186302875634863209889503627715545854872413192029687078697355202762945402276879716191912140047177273679797421362102985761011998111038834669624733962157235789370707826747559868038878652919793015581638389105728681412548454021318221801402670974345213379874337429367875461715459251536460154516621778603099897270115277052444845047533617835028253957316755184585336877045956291546189761044397419110154912040269216648208343160406646269409913976155439933335544418019438860365321845820639843748136679510774455303106881214364869541714408623512137960857236025427868314580595199042146788699259213317230351793254231490454986726842378302556203420119661178868126519149998710483438337839785300602521143279219395756466316173049918316558615382744180886839789430549249347600886735612741539562152076784461751521052191564994034692037750562834265065867651366253386282378017233478884081966739739198774334353824236946476412097352829519918226798325561611452896544009239775246152958848748894478714587744786133119694337399760212896519657095002865725163588874011278981298767841304331290605808391706691111220163452917216697021324729215313811100876290428543859964504930832376743528638727787606909213260210795573797749787855549270877090424000137848201737357129758442208119753136908369384400972515193824767317908184627588547619537425579010656331179884611153582227919557924518646074291361764552621118428907013552400184207222810200211911114037870606188096965845153841797252518519948785578633211377793775635782304902751213517300890555888140810219862334064603254098475040488045635834020581180140489854816761521214640010726971467076195739496802695929170193418321859287896292910841654238041068916102517916308246539221880267703234657593457193168957239419096554765225653380653513443611600495345786249109082819842631503540046622762998694628660274055517921096539785790040557046311252668956430964396465742907077178318814031375999913617291471869414624694560262734519931121500814141814349940110189274556797557354319462143327932693689689350306695614649466277724331732982437395680557219721147780047786970989699034943505883425818181042323713340158877706926642580493591401274300251676029361153812776874790740362862749896697953843458976021150295804060137050807381867520630088694822150882159550306595079756574175013825501809402280764310611941212214783700494361505796839535577703374617160113847318654444217510407198087335003964789565981479114952469085501619200214182582250319048183134331683467298940278038695129250845010985950444127861524420771032381730227006382397706769300252252515794682408313429446625647974784193652238130383180216162807550857201028945277938859258756009388834906663917561210120719348044758181201492137274883937582135848987590446862395408395195001798698184148493610626117228980594248241152819813023515214463657085612135756063798331450561553053951877409885585072403649343083755194093812350324649004107353447225925621964458526105517176312280440073230621924219715266229992052704096173172224410918872011529131969404124537463665172166110397697530073900786497059317467841928436062535407416315982995201980294986268459718481289328996124622083535856714858791903264466254779940039517487742904843728689231462957743587577213989114736535132627093732352965997166367295271840436773724960316190566697815548296256524501215942844641940818043173642715630843484703903677174469317364899988210301115389882916623346146786557451064634516437481001035115092539271278984258813091089223465496840461865802721614090766882840544694871851077504552458435515567064118658061841453227014376550975164107308371563226064198697291093966531964226857883069864386829999111196116922856640956534355823193112786520923056352606424553728276329848375015598007638306305339064052235839543438314741821586499666202698779573342265404829320379022450089673569589478603820776276481146274740768214221838074346956712653429883796977610045560009408411505247481912537896079155145315359881918207505148005784732164180862205186740365662358905917686203768954242054222804110574579697348553132117393176835976289475690408992004606797642519272865521630170048755573516639672877036493148704892857093999297957016360986558772822943392907173086399722361180596106296329173739805762476915131031774813086257438278443938792571605094051681496808350200509255893912943782414440384910951577890108756127638013620360418741752623861826223595068025218435245902663167162340221052223129144035053880323934735365622128326600963998618845075286183107437763330534929948881877153137375537584551928405808929718365647793158688264751111901310570191931118674950559964403195044756966235449454333717242666637588777263981401611190641714265240916888835437240761055039897443653496998516734551875159678306358622076942531751904025184308399541875504617918828049487963965719328633621510598796316961528437119220431443537504641116760228436641472592560697032425930047903994867798681026304904349892762375942953383622859344385338427562080766495933720814057275366774185725544768184211023082488531072814291323743150937610752182027113599022608885367070524868012828968521566877113090945582072319126023718314293835287348412241679433518813409079791585257746511865221691430908271821679601612145575277581936301546843692756383053608180577981382053656839790586228991134171614240809501346770334226635886110807884591023839179541290396949340333691627238052297468820966992006156854625786716059566038949450923295572818427117673481169404868456836992076167547908022315415382069608548776027564686056640079504638644877295852448837494486875746304218060238102161075142046432115684610003838112211831977436179897956147540473532912212346819032117609420081217130425234857969646348832330371150957255915865657617817482684310314717982304552142297486389616369978729556551338097034646463424617290031273380750748877332012236645620085612405427566649603679822827553239521570148930870694420096239850409775582913593495846937993697242913546073446844153918433920223795432925550913809366127821914539667181163546499697156816083296534261902593962949135450256377592004753413333111663819916359754646544695258658140459296576414963262335610474828034683210917401675813245696815899277390725471294379090960811467647847530313141248505193359580295486663374061319144204431114659700770448147445131795509370685313858228533223986436015985052469995228145531223631542872984963413100995746606012043037875433716137086576359600545562808410272268804360726751426446909686539263425623949304864471621142621266528861306616853772609253611498859833998550554714734296991539568210925894909527493397040952030264795610101498824165317210381378369014398023964945460026405925925425171292609588270587946710348081661359763758027757865834082496090144131721058794506967663910298490831115182573903324317083976596290612479836501276734207930270082478134929979532837774192882127363516501171700364743454223598448435556927585165855271179110078388853597322745939472833766801544635600418509337436289139398155420917064415960301240060082119120245807597964361690580780452917434805952587996492012547249003629504617680192358600483463512874539334107047209031538605490210548684058420851669224003283042188565430593841382627657002515085443120063247735905705816894862473430902771764713208024625151573621522393340653314976734539991842762738484070744459868498277848582730369323680125988183026936010684670014044826337932396959723794260999165215161901347389585743956437607970878782653094532525220314195533370684237940837116673761267293177802229036350011009143909872755551879141120154566407906065916714333011599245797621808749997410882745111884917698806282359894506213446515812677525147386631312411064749346324069256400237026344544865897932843074672324365970468541826442083550348568729103533000526909684205586486162007064904570664692495765141168918286114052005101243665944455408907446271779345561531958192844080902164630342292276367319115893461627203503775224480326212310105386630618368174270125678410719233357809149886819420799737270102914629641962021948842386188944874595313639504304192549926584001878685047576294071757295897029399232643683904523807352427765565695406879076380990702645212282683401437858840806357409172501200088156170251414231499421650323022059007865095161120370053307410386522869581884856670148654865598320438395874973978631805056544670120076461060905078215913398870605179237323596209570182854862763512053600803652655193774528931165543319723509678755874487891087952458091054604670872984571598649832684830290278597809828280582160003216602298349772871306481236927624020795618839996960204705750806180317721492083320956787860377610383103685519328106592257198257743013661320702160749655732254978844580313716440672148497429550757938654687537677039617536251926333191557985565564635651923856527626279007816700150717358604296198543173122154212401999702442037177504375975740305873496767303654829895214625243126349436040408379572965242651376861790676280379415767438950651901981855382067732867185108885466157829283710499000237975570705991721441938706280897611412744548941082585011418129622526311942210219651394961478997352079253261969235588775182523415481965713182509530528365911813273636752693565445882655996994097147588914882499265946955095526968754717461654446876389026297702524118376460340393604562266561091747042253836248741207559798215646964579477255983606854589578490676967358904951916752854635015837809140857106601726621743285951841161740225300043448725869488562365257020075155673183474324967790379151221383997629315460942384165567108619631967369086557574670625928713383995743446444680836425547543548433347896242236935306161821386356813518755133915461103598854440773460510503514997496422651139470757490162980450783247518708467171571380187038920304488786681054454994174913105827123225389043869908338849955629128205876209941414736299895454732147615708623768789674175085802236961579259107972928285304360378899131611821195906568017391919055213955622358415946331983009197476322446494777973377342473600390105885163025089735663691229364836105235049206409349310378692296383605125815589636222383544483698240287021618446458190367649134512032376596819077040028114562667410143552594148518095422673224739533364098240122381375164912578745594337427950023269950701838905893151538344580524090614231990299241849934083061657690035028173374739960247970596483997591195590964204276359633580132929352714991867481665735469933770111043332792331900900853459426114385968971021085155547659890034312974302609348508741895959623124215598541806739464933487785674481413632086073961442000113441447595097921841183099370395329963010110106007465029824260701838938684149341048128692837858136515362367789230242383729740606729851680239335730089464500853622839709291959558303048953313412352679166659561875300862910868375781645168470401401771675163520298485523277482858043503616232822500618412918626658609003707522476010771571006674457799200142786995694997790178790818252693197790264753958362104580142370502357733885246948184159016066319956959033713037281874954979117092428725572452102454319145595636392831754398433414977722759885997069538509953717979058865955823834619785374631750085320311043534729285322516097075366905313420734975948203090095441602251293649008391527519294566721290574808384393911693304102589416552640928214172417571464749842616744891173158209563455491140540623295535579811753596987698551802949038336395921962917315381998201927737673340397758457943759544861782323099952478111487951625774605113434960850836015808481075177418475880845175181160043897700563202480879397332272420379313026629591506853814934555433186319695553900235548154167786673536398891295566063636170019820716101848016491691562505755017746033914301492909773216666245047774090992367364809351599953757187741809865640291986010766845009003331238149808297362294693809023902959938237064243778183293536757661480719459027662167530123800817640915276117044185700805946422155382166520422272597070551482650178327068080303194958158572607646042151510331430166740062131029136980299660152378623799642121385625075718424021842701461297047632281910001445887882126616627090488513001090399214633982281629295000828886683517913090506997213285222684793131809660060519387991051393024412194742939712589953975685968995006325634548283250094190142417913808839136103372711348571080106731929601931481176085541185671178598666264930068962875676586952093164501133742533274688357081802823870418675162152403422615670972168501066227613714363914148278740875559298504251092496990073846622082989516476396364564912224160705839182348047091985690313980687980921207340958115666931495609264354815989380011124171773383077090290709522554809063515833397984721503505691183830451653650154361380761701514224901181599731963594187661849712983586705780526244307407202166912961149887795950336508324854488574583649947753501886415153032460636757338000702108685522675450808758369980525736203627430141633594113993549363216000406797416980088423822487296528269051932636604201323766224239058204698042927493600162032590966717326713505817289860437322740635503239703765126407544372105748161585293780554307607010165447869438611115059490679811976285010150556693927671371477648126451458753631553151990940040960119104765821468769805437896203192526900004451403767551220732095552882546066816553010622805559110825700286173371142745427927967699396745731648227893729532551824081083034236459315184372139169965302253721359540856756034837835215680560466259871824132113889781190531921589377822711089541074901900773358122655892053555691517371234263013844677569227459903770440804638143063797660971006994920082730544037643362133374972061199748975230496195803711140491587697001363342394758061181718967107312316308697637547299241214865454676775764341509329132575466766661288649275448882648693129840937802234660259924518437612710568751427767465986782725359864552055433371908440696106628233806697929792098114386187898518862545001122045352038771910812477838530362528525770821712840920954229659542168248608120274235960022446520497380516104667876812716355082116072634547742907464190110420190262239618145022316284367025705399997966209969162182333897946533962273455095384197581406302091414142714790747724539674905087663941989720309625708808142096263663930679089143492760957465232237936767776398321335838978257175484790590242967188165073456859546053535589890420548463574145039064578194389742122936268802574154572076695803835253642668591705650117817988580419429261135866778353560593868285902841757107883171470505352749255376312743841462768467032467230862703014108518426172857160374220964986797406928336188953005407328952068954445354344647084543029406955367852743643012225450153161118181249867277255632774414884519924053774664008624504563722615525699222290320505283284033534673711067565693027871890513278662112995845952815740608432917058691782467330688985939942325838902244088690177649912054896493275749649688975710313767011958437056115637038979380737163850157239317723102994219367715455546162668691365975766627499585021842710019717648568832874770042018431641815830859944355533079571507384038852658891768916213548028047593089559125575973815318468050564052917574782998412060640312443457003236267493633676205755904797934523122908658803814605294580850749655464386000382698179344543462002772932217177679461576216295153573093064427758909034447203321567742533999661082362624470130356073101111206024599438567076259889239077392647869048949823116771584299695000181734099137452559680172578824998224264734808211056259417466902395776802961877142248828105447600754887054136662360519821132883525933187465344416661435461119987055033016160240905962942706608383307138118699724081005300866999325751675690569803488328697506250858832107503706759231716554171329271788897092132854010925658028582198295120563103923842003492751168684109368481425423086252802958813479715282156337866494897139189965415656709520281632268753866566972895197850007686500857118809285714939983032707827879908267138272332757290570543253150829685754197714532648535372515951764710189469818592905717813195188478254494770768556347699950328201406876512275465086787350561893613625389408124980144944135229477354343490162708404074304120367493320662710750449345670119831590620919672316086780694986833737616518144597253155253116744070312518293095528684201333279201592255821196034692841665580099304744512681430612285991691117008148168982575319239987493136288225419967923731043371881337006271333273578485731251745333953110000912472372718685706167494701997828964192392849041571637555095480489678864973563360257064163213584037281559443614390777686544757151144476788349861167776741066252606101603149867489484159309651767222146318587674632141195036197926605016873372719531917916575617600053289831735658569921084004143561903266897659148616966073229433654581706841462882135547410513692217196459770794727023776398719191982044234341650857261596317641218188508979262986685495107618861120507345068209995433177556418088846082507855869930338026982953779521397107004292233608993481709295347592170589078424114834626352898708692910643945048092136589270905604050771123309196213943215022869887191447628629216677530941311521577323686982304950093452127696721146188999499957323253454783335181448883945048648845894206806839176085168927127553576421872400797151390408320422398202906454868270248045935927834315703445835228257579658717962755011643760071679435316322453164689049693780626210533086742274707976545126235381348713101604643411385304487813977343470436700408272257887385383074836799495841260384782367553581709025679579472956832411714635999841070315976545728592687827892190750577340748230648970270068431570974169750624927394824770971414446932622220037713729904185689303643602242363541690121775232160153053184053097106700406972267346023218640764119649768283447780304188311981572843475778455861377473160109977872682929369920282196513548886452182803423791467579221271861885215699951315246977023789825473685169468881442058795833886840476890047167096733844666580225897273812065337595462715049745547115053593005989025475584267336504208419403604310267279899765504361907379089536865477733249842058654401448220122579791459749292067582767005258379940229675699026507773570646502767015993048514645916935291658955929776044083357266480249035913132448991430371596811011492564012334940758564418112445689626023532431560886027991026345501768955493690852462556155858533200082299911141045325053697865558399574281652988792489655136844722315500449174607827372009389151199335183234124594161519750204487362302720510266108835079843411066175622610502211680548226679472240996978255068527527744994471445274872237233395965291232121169380087512397706166719859327571809769861513714505244613791039223743466191238814110670483001827621100272274378260973536735562160817594192562207856459304369631134009792408494626368283545095932778818918641335015632871756448825330197353549379192374529069979842313195860539986724143255391077986751533674938758640819212865797873279682780146286497813815538914019172623635575516678067608678861292023537227209193321637273894863425567067800956763316450675184366940790853425039816228844247526797836061004920955418548175505184393941873060741036458602874613055357365702791706791443848214819184133713297781078441374042723224352249470076165460173407175847712774622873081863263313134214349369534427885522914841995843693350675736165460975571971114360908061023358547425170569809084303928723491032198656104436492084185163710848715350143172580251544454895627793720554217835551515461458070324285138035596961822883390649573178872787911060913830897079724499544619131549913444300269599514251050767567530038041997613391960163937547233676235460936939249574945571892071878626965932868615130003118650615919267020644552390619960850285048052545486336516274664656015711849947040235542460266610216407578600409772952875310642057915339106311709744758060258075479829983337201400868078426403457963675080879348256901045026508151262137476609154911848721323833139347444666138314461427917598052769037429958680781092028584421142684685662412070632522252479864790790014068646390256877218393715263304072205882678290320078549508313621479078450289448712203328512708810453831279179128568280233119479742612699692176396504088072302738102644532352279596033002228656983588186448581292917383006240173274189591139079109322131672572213740171232152798639510886772067992209727755157806780982735656440628344560806727961754029110867620635818678476598919272622882861354188245400325541032820040802873378157699668991422283746072101278132707544356432775234874594495092547105115538210727004976926929912581885137838116856675390620276873351027756355929251914760791930108637502005666937319811789581693784008301672720805260067888096813703307608401638322276890471341732251530252777720388923237645705526118311091632370207031002912482742150564873088278750754850468766498840275726549078545363079296340516716624173318575355800356517358051742222854210245796705637563273576446985252707771714950820993682797004622390301078930698750018720340628152514188609666091171899138836174099090987454984597277307654874550936949193971601385161902672189328749096633522069366156019792043697635751398969633133218047038427611541652882855703247038001643023456149572624553172598027910744664350067987680041636767606715566183806871147449153314969920161198195075044925626392640296899127629975201086534108283600664012009568178164924810284753626858584428698765118066032598949796222843364857559048584949349523070779853435069670297439290194175423510438802893970817333292267757610200810746640240492205057106723051018913651277301653381062264599083250293602216449723913024772132015368581231950972707570931748910644903469466108587540889613644064667966373786376241959805130037733019193223166638571116505969198729077462983925052112155051260626529317900751656194121101000187993587632881928939069405810014301337952466593751967218781981752500367961954086366364054209010557151452865889515378185058449939165959807940967068127537423767843877259333955356828903383684216559407411129237271029288857011200938446994804778289455214572893491499460688088569120432818030004947527985603783674085907414703411016048875029544335317437428806699759106698731894296661743932734683759850006359827655093164346537449841355378199665599446139129219689047117390449651877394519479077926965788371131666508542920725938726930468637267783544450350106992470612777943273261612886565381640627573938953585070145638999224356853974859416517455497841981787087995828438690786416580128125872920737711983395049591727208751504606066698320700766786645941203730240228051568076613003327854594506989210720232056063129837426818935133391091953896735633951247250159745918732438860926004298152904267916639582758249227103573052480236643533551460947857417646052667938322101720674830298162119329682244783883104975093716779325088257396023523462725054052387826125153263791605546953536839235201953511620405445551007923297782208965255764054649113071049464035174426128319107294237924047325907715714078223067026626648631825571810460383676894981801915754711658886338670373552160064316865227356763177661220149663438760812301056088864835512965315299001742453789005263645350675366166609763984881378892154942118700713550659617416972652452281766437126424392902032177066096791933394652998450669985870559720995066118046731110313648754613209069602802938998119816592277513772492583079282669582444231834248592693864241224927358535540917091499225268910997565237113821449470947216103922959690240340297794924895491491142391165293374557967436147863505293115034576827318506298739741140812609781511240803711673100999390304406527349737782705281826666104582270833838165607292787556915277242155300568541150810128025392597018466582202852313462182586905982739638777083096276532009545094945657908646888153091357073919232057271435246497356552607554533333972888604481903141494143092598895181147107653111437684938307949316187802949996974559393037124563904050226105308126036489205211193739129890655375896774337842875316332384748841146943067046146790236240932243397160868492433972553042198737889994241163699491681363172033807296199746308448983482405045507271196695999076349717796622713412185017492477158043383452522779064956562603846476557076394030467070130636832284385304322403589497538259918497507056503291058127123369197468856751127476206895772225717964871910707200112808424993447133840469368044953853367550223718230638616031310319148349878036163391955737918518217674836398618112087304068690978362198064754874813887532304000511881865130108658151551230299569120183936989303669007400749522382553999012065869405768902720379717753297129301327618152333202537181136168290530213544385956704485943569403456328026886358835394321324555993747859659440266075875549163124721502901724907661459671191470225001015790066919256826743352138451516854932762465617651048290588879860591057765708731032584881836700757098991909113319367178425605558980910719986482128865351281454081488302538834780196007448057018271347166779673691055904727029247652703204318075870878355999847078531883629092042628460323826796268019694067546096178774615129111155359066788510571527200761680752094983818403601318949910334383243274021205409704115386431460736522432797812389242074429071643503375551689553825615531728968394372304328335487185400977866743366682609996753186615021857582419352156912462982701975514271303090039869914921945582826136019219724897159625672191250746608948521946158022229526029498852729690535965586698906497334179528070286435257359849896804235637946161713661068063915694803990263661003640030874378234168620268958130212777068522684662678282505830692116978300376092195627843753544011978394919340163629761362938794705737908861061252860240781413291354572623775053281748056485507846771143138304607967443613087799695303484035540104497535467891348807571994268116460009776499604393660222734875875359873325765438690597663022553289286791866023618749234889875336492753398846419147289887885944094239220973777006187072180404225775954355221178673339616100579687526804078667920125576662546875834381821293990933271641288700232778493751740728766707376219951420892617363917797229886089404545449594861056629991868039825144930873112156566246666956938587285898034978478062989333136913970918008620323265534298678027981578842331495317966118543226893539741408064313522178970388455311579004104067784178484521865509040073139742452063560464634581847802483907567758760071283038828336481421979894326920489265785156909962345062362205086222969127849536558633342158207890527685250576312650148322353787063963618627486942810651713579279860328151069495779727374283811313691121891221327124389032346016929743097568739323961826670729991374613993305473111586813379494631537613410558829768556846731964933227538582106459189923414167784631441711334547193387884222496707986104421919510259302759794715302228583339891559457011922909460202464444349095004372987435177711250657198654475000065972542329334892808926495925709404155554760080011840897350077948408463429024113325496253897671667099903741566776087024209861244353345130133387224439678974556417172440222601872148797102593857551230110902975653788344434276936833059223134834534281391947776011275704713307346670109586981884860369480950460718353725895256724224334055965675793700598097222167542082364405070477069067281953684642889503909776850493872803682545403551330328096599867411238744460684237715253328367966025917489386989842986009064058371518782547947573413419446307327631846641669050421257127253697469154526757697881373605253850085896175851320055263929243086175623941629447321538767113771319272804914647532010426865794809215033285990034937698810598898497881661240306089395697735801733378320021310053168114415502316566456318552627275173439737855497113630693175661067293554039129101685628340741645380068388352393469808666420621843612329286000860823601294419365986051925498536543868653371720753502048263600524411836418840328884305455462480247710894708640849830425386751513232632782811649229688644288726612745927708906017003977051540727121697454755994194929489393304386557852067247863122560302091839801972752582438589315114632729212657140212721342731398092836794152560268440002627678640806593091668476198963816537065317997477459917645832200870238215189819927869638297006973332067200610557159365004168771873062107280086767463055498668351145658526666400980417719374007688271763549146858821777050656632644585819703028851437768170087652083041080556225712263896828942572856166301949403793482857212398253145195117113182144294615114193910890009233673575463833120793775857787962070089889671747263337144161523131136323146084164928157416496600335717393385944313791696920915874020990790762271082534523179350697051002434215625080659341883786465421622114500539999017329628985373256590560175407435208964683895158232173604339769201601203988113515312417937384985981152759111318286002071236483813724119381435317969928103716304951545637377881930501251199713362121853649963896968077342298043020642051795307458982573830733433918666950291703419580789953145096511311412135054854933309685570822758155860730133444215655906883365862062239089741634721121348382994438980002459312330271049229578937988853938136594153422197756292413904276734067475111428972859485744350554254669940844934044308733116926274480315572466068158825452793118755543741509921901342031623605425021237621558887448597974619500470827265997171945096767271422426438688891880191973139476971767832198161187426505657741020455223504996240220275755860210999668893233483097784246190446657261739219483242183645953970215663141857458425529726067752503651160538069388046446290263252615942440109524096291827638042510897928156066239643897822138329687356313867834469233242447435178704884363993039869394588001581590983043092737101936678942802214437476934688591835944971507207887035800798588966774496388536280607470605174071342293186818205906171586084909985934347823010073561280142513340600289245337650941430878608928923785855439664806297293972080502623079755116387991616119394953425054906048486155748496065786145985338920086771403450520409091499561819665605170052279098892118595592143548730673949132376040141169350903260742100362465225294255360903368254810970126488511859824729858355866117973234708397005462738202097461232432615437882097362644324589423918594025435958175585412157968725034776937702225322337918513024673799562586282433870679093976237634753872934905275836028295135536358163154878450395829562765991443161508142943677997993468478749905520170902673327101890322481492379075821548604915366378826982050830922509788332491465695049800416229374103051519363110237287512012485874869474875095283710259274467048867387595586018332828137922705040938132358459737159952796654582147367641783497611326800017266452515449755278317315394327965369989295848195236042733298017201501887798732083317078335659391676397378773045080007529359598884747299095795120187013215419819098981154752101476503571568989890337853520297271753960305765478742740062107861207676718612988567472526943989647434917694910466799751913964016788712099337932879971558857949726881615935501409342048894409436993614948757983865306750145102659429040672635926619321041606995880182644480308548533849374097735722522072929513166853207118501478715119579273830907787609063303767401573468713710396315742670614667673114569902313177305039561247241558482145252949635964366407388064914289144014718260394420032785229623605098099965537385265560431779635267028769773285717980242199413748521302929757223852186548298757945287075147064798214536642715226804682550685404397400373120873212882916602766322156206856229013417255921737679364534041173327994098257487030075499720778981763379376847509394956638549950386799019218565291821828119801893949377511855774328214881781471300214260041899448850079469976916775518801049875195986641262821517246970340420971145261049778868309816838878102111163478208019158799428763472427051620401534435060457916072838313475043322873372140714682648290562199227410829159389062917293222041949185952122292978890747068153815354761704794684282341631568832020645559533286726688748174843206874742443592033978596896060820693660412657607161003905718053271496741954070077176414256758721825835671997740342707885803977383105263984993278487800274813588308266431406042916982754482588726547120344811031667725871845263761506636582310721789840726853770759641090582073573681879579014617700803902955124475694231986823686920987906416577156674149997817980669526750380846117710284171598596204134378242416756277909835517861162429331027305905362408155474098287645144940004930591588834532390641379804937273318175857147255543613773371033849504711546609135403236931404043853506545035153130624787737694806699019847972880062753589785513843133405450524973333200292521084309882367870314353752319908432436100777834958312530594331786512926690060655303698882021333009530525149631979091816299643242346400416680908575926660899070387639723438671054294235299417962763526298407729048348996746767616662869689802512453605040993322620286000111871936690835559130978265440535732586653508604477799601660814259785565026766779918972892318839068157103424022335894366266339163941540158590897129193234637519016205244895113541969366382506313255414647921874833024003253903475007832601890694705267358570639275318362467037995687808239533029842130196599424109771974231798789831036972782587778920377383992587397425657255898463706739495508404797983665181995863021806675447488543188934192270408299687675185442365169168344388615388087107462514854131808576459817564162590533133432886767723372971774834595053384540898915393921692187573988972675787502025285057631325499736845809652732062017558193045450615700437595975077501370521578109832648734907519957591550785911706254144417788438712975471457932477470915100513687652524959664717126038910966061355183094679855291556427501208311595961508162222798451352630112372246963252817326675595311052883647489903715137358017561612100768635868136659385141908755025806049785805890062173486559312447714777754406272296984142323591284822902837954792722252397899755881410505037453687400447028165339628052229974618203243260244409093659750891708156524875177387217238362156055454896396992026326621506861653058864680289017622144103813075077273596809930215772296484920896924734681284622988858526837316703236082783466364540771953090815094216588768585389571651780582877840458046025951963901853603878933485386875683428139815979477571336014234962026468210505626482810033879780007717845786752373771703357855806149813475834011391724397033516735219445931706170109683447745816265888665047474615015742333993364220378512597204612038238229593862959229494383061033294668175478534043136908729756426426224645297421936916916217786409816104582221477818782067401882392602467847065243623019359641981251933571709293867071672782612598789432010350784774664418598433783239222647121079881868770426542782962047232283300388147916478738756035420812452368090346241120672625839549668010391481097020107772503565478124594063248415529085536412718195341697461849496306145481512524013496612855806885735450080611069753824197794203954709621674308464981994660975987018694260998804099382380060115904816146283567475181764348840887370881437094916571860889351088302625268756501080998621166622507696452621726875144259247140567288133517204617047600374063005385737101112483137868863510979662972038475469674766342080767120906265511651041634640574334298525479099211648695830965579694438861884735415981011971720869639042766045470314554077698192970978801712453455563812759003801565533883138604901625920606705368868692450603596818946747549917365754839243025882400466196832048545452350724326949602975067240870802750396432633889552488393316110069316827620273805390956756127502635512904959594225726136769010417486912960961546085578692852891121257785361627201217873254823342593037784321439975322834929033539770674423410389232994632704819063600069951189682395545061146725443465633398785884356050968131293193755353739268851761076360620363778853948811837109731699338629786392561199240387441501679614188973911875742774584248085284961761389011351826329488248325654145281064596952482785430935913878748752033292067384822125774020398482805218046002701351228394895852708481190496373295306221073488207428642379377396280432520495501084010371451868530644447812311948175411691018944096338330461200721722194359090582277963770573064196854094675541844842075480525866845960986425431033797442980135717522827515443529466354315275121927908609300978890283169342377168127808743510603918931270102142650132491077407172731883164931027218572194091481048742775623157880278961670566609053904682067769815779429786071236894123302177684930157472756384605309993800818818335275449126744393729575474174500346218673726084447718152809943014123862385413265166463257114154608765148261593688908628020329591163378699331225928642232155848815798261855647477481746060501945392346668121804699696162395123430210648886082999541076768826388921771728967763752145549117224000089663838354508004736164182252896710472679455529129744273091258234824875374335227833813689615383985260158906864902180028277485781645947211960823927212914859942915679590563660486858854092416477106568147687469708375992741386211191652931042619091379459079933333260751098406898642147610899722126182720994176261529499299538200511470107065146803826804134630526350991001093790891163165307036835225201228730159702359367951549073410938666771236457119437667638637254556780257478181206704596916287594426272202930860798661187091713756213960685131969975140238118280675000300479768437440765802644403229691729513310641912579407999363134695236614310326963124778308269044840082680090398754123353489356159461055571170815125894011173644057640461892008017912077974726478858019139058564708875259719634070135576880589902432612891808571067267624114434323975532742906040766243289473369398462184393997724803780683026873029207896231344769398594436968888365020678183786944492074280275309071957475601475103871076772031419680819382881314687833471694475736387910964685141609507693931190809871572108029310323759023482137808143797748908097094948436784120856905310364944801610343775460592819242320606193741388291037571401532778267066332880320671235158001889300377387988103094500483267593943974672459961379260851385738622542575211900066273133353902175099177545671703629307159976258785298796134808085118260974999296656040599230999478651363824652125936798404239717476058081373783137021429368621082741901035969122367519908713575980305861526445913712035446225132920873086893507053793072030438412980675406171622111571328460183593066476301482269536957899640784179124164415798560359155482966240379780068351294027465470369968376402851340849758602727962367014326203854140765537370233707768659108179390021385341496200973975637718482100271825444713873523244805840665829626571573028482496896170174119135849055557555162407269962706627617785087841084463707882573141492663075023314215920459295393976734401789524249768507294592993396386960438296695888158984219515258919114222440858195873546864257712429403901904349908640171960091013967731524699056109992383070101463143465986707922156790773626890431311652287964214715657162564286809292857834791210336588096353631582474255226718911079252767116697537203333148044167173285105593507950684524178782939714290025580850619286900557681398557693882038101618716047419232772186735242835651147402907763016383431374402952524218995841285168746897920880353450718680562783973732489227257915735238925141918327050597393794363345269770190816318598756752256943428123582320135592358671015177751647726501729478098211010223802371975657970225380401253642956281611956922078191817607368131423579029235478523225725775599042037137954217505199461094163801584637401781583448859898536183808312859384016160493786358941222589825002734096388687719366665533205020897129902829572335371790335884466183028002127262702865775964337034113529601854527786789511503451789478396756216868095845641892225542663592228596548725760017492993785873921678899987992885285039517303916541820042307627597995571171627419880801930927237689564235057867827486974701913259746701803871903727491645269197586689827487135746584980717019407725287235580524861862145281902141896600256001019950889642805992940528198505010810292427640273011112994855520087777287722390718140403907104416386540446873619501970625105807481666431244500927825061670390799654400450510374559673560140637198919545040219398361264673542478490750797499030273205481984973658125579427899565881802173640390335675947154656955475246041023668216055880867615771493563268362603799292017099860063270786577256696007646032999042462739547637258830581969572325612461819181509053123633734648826760357027493581422548358252184162682615175395953662314477068180245457358638575846347441019680499439666853433136328304936866793406789101738406989720845009141218341302918543842307923958048142383608072242253007899188345290592834034428594185984961803389843888630128750445920067372031024579970773292386915243626898647948029973864992228921927185338811739894842437629851349702743555392613243159810277223884482570272517880979185556803627872993725703255961434864677222580616516849965404112312810407533731737094690951415099281908535602917117306476636036732034542698139645846059729869011820730428712906299222417794235730990425117333034395319876038160024198218609376376790115269970622655267814377049972900208243628634517136419102990106534129655231750883690976549591202846907807658643759459198400018544642300935163145197769072071672968574765544949600181340158042659518078308476140311368378900972133362554470941946378130760181453413407575439213209740651763169158608305890138576473942669092948184522238089316024741458394708555321936880437388595783539188427104868056954287416224173304980498930512405174247839843825835128773685898450711873405395434792973893596181005138165067272903783775272210646501945287421032751823011589332740027140941972582901817940467239529440688119022101605476835117001172764346087474092141204669718385201683083576933994727999771831644144956101029440631967879079982221441291109985887663171659861909627986035019640845792190235171035420769921808670074175840699773583055922562846723961710299243569379038831589637439959931422338173908882232407685758770910935536269861619202253683820094641312124499219913793928768905762635318527232138908439082423195442672593272881542499021960573411373371548696883943369163866686997615684436263756375218277132133288468928949611915996799767590913878774134063517351923597558669736761087104477615132517144911942354989992991013215509008807028612304867578342639773520561382277206632645209918998148871997253392071459717251550356829041215850504867041585341174463907228500724467571683243635922558645675131880811064566778084145036898760327936837497092134887697543430188141751039063831991528083205343678235981707557776120420027268408638206140317071471776837416923095608133657792258564278436660101240997750087963283289244595064478603682115615167001942489271929884949803617524583360620816147113852633370299908162100332814167574650140794889652381168487259262619456516738993746748637119698673971219932607549617669184779422230016965285376735411371795859889770305950715340677162909122481384557784574364492219651040918453087700535883886860647542020144018452144821495688359540371093919398587108212143898691236637202816073089761184274352197302075533174307375203546912008446368769243851350935705180763716984491534032599919913770689026511426260644895121317421080955362708118438743481744850519863887407530997568063825788972834876062405033772253376514358680337960533204022467750912269564951391373031573845091494694211967532257620969434123809693970801197046080845703000776548059382610880667496348467799377758228292137312896832724358414633551669014475762908942698998976390660447188577418690748458822847788808296501895716157947100306201531737201310399168224281607063994224623032089774929131474321555812113873272050696131071130818802356765733341641986811514076289730298387346591344000892775975575430660698973969908250673175637875884578977116289030634828686023048609858197509530570448180750656108098626513777737569632167895002959812923005267212213829410922740210178982627671424740448044909427847978627632770243261367021807838775365750055271266422482111385891035378466837160977443551218017818538096518860669425204009282484392859419663743642801407868938593930274572992684854384768989206049671164629267804970495448662774432703808732624732576361919658229960745910811742950624732887587895225973222599846420381686390462785469068723453910587578804794149618351652299675061627591504564533395741740314547432509393636954238963708945206697876056518883516172935215621247022742936894278394508344433759835030080038637413596102160357348291012860085382954327881109080190773134891762534494873141092919083044753213863119655706894927710582187443716200766158233073222490207236624954541075168958301019869605903072056299054758283983085166275121867447861557458934410494574583178100148321948771890138246472875703636894665801641698077254824133936953982701324699411723783136237554755695815925669431887256324160592797460994795615397000699607271456623666457326063373476488928797760402794695148796214639554350226449172904964215347745846952352681582524883459684413960837577409015336970566314783200777332663604986501997008489994074491255265827675543586165856365401001977100789951806363517886294385127557614767835358491718757654916126020837387450323137594578891188797246260444044189754026193273027681947526021783504165835339002331901199532864751303782651138737280580807463167254501284628832032509322322866991267455722146988112950445837023540817152326770305430238441404131507512727330814494865022619293625019904431281531390858854526594615018561353364026776045348972530241222651533504183963074533195566179386801869705099416642439411041013051884847430992158266722931115996677156468461750491162288835705869481729906889367025295778761480029293197397773193895252394803178121962448048681673876203843827741565837151743181104327049475492439610069638806367054518245255651164958229564062798216077202822968885460209924354712375693655420024748786242818701628566616805613822415300771163383218766035173345315627328675685388350247928281801619258569580616150743294813834879347978461871042856069901233610882976451289984530239605369820579463992998323233186235049067804646604419975174724898779849750774499994384961875356086904263527623350587173482127679447212651869590123197607468557807591105077405963757176398729503493635839010586183729873150184853378269279539484002824111759914075036224905114697175866585901003885857318628586166204836048518241575862949485475646591797127409413801238710137745629966526708328004042619607778745680303494715285794788833995622485339105732683208981092764760578536503351793671777940797072657709591812081727344360263991642980806073614241351575161405036705098013105493122996076901131469851231339375363241978287572098987456461089406551603586234405729275757881412148264324260371536572607015512375929690141809571568681681082290788144019686740997616994972571097252163634775615822668884688270216166570120886339279063524820194584395337928932076863728209888349340650271176721959049020454477960582377610315618014215663154647046612277756252640894944328355010132993170403236867246917652835690898616359210997744494433058792362966964860706848979616062054665143148768635618628795046775263467969557023758750327778354782230625188438463562031225785731470911610385328485709943526249261828997570887036368430117255798457501973331317398711767095458695405125542132718078893969264943063147054250343056578522726460080700978144203759718098901819930862366911927525687275573375347744313252489573690755391742856080404099919664856152376059701779374785104224558205857041664066684177393628078723928553296894753828844569316103034438715565151959511269048516267069830209396145384527150072131969901710643627964060559685718264102857124046080060798447074058705544488099661043347599776331615221315592609679747150799958716767760830725369004440226583018885221142434459285824328599322044754853088981585730129572974440714862900959133995073364757200299139682631923759497947274982964798461732044681016105986071964229849542839156040334585360940381265962213897768461457876257423853266095040290648030971277437939454754739722625516563472441054012212043913674915733057219923883072239037779101560973303504013632228871300775233123055636834831964635136453861119679094362241163356739256163396062826140315041337678392008004646009599140807739172192261949718640769038590376314453571110807862420947068951125044499603378827020944252957901982297169387420167316832223801941065551717990327931357490931310060378354267547520701437506861832531478991479934651578096491166545845721264195528010056428649564147798271196417688845433149074158977419245602383194571201875448038274445188086954183182346572291106338164236576023986261989782218974651358989967000527125684706117068591490183372816075927406043583514189300370474208225234804315290784454142503231065446082709874876883440959768440749612391524331257734597861015074844290528999862885857051819160905558316610868990723903903716751848453343504688449760463208988776699060834520054908363610002410448222456946064278958020811503761429529258574455740551525077051781953959297205215798151741350980500035429673120312283791379333767964624383844516772510175213422713110894046988526697712987951859022162423247070878305611586275005829930637753844459990494034555057201930011861764612792395903872474519107095983148026700669373235381973765158363233869030504323237516662573096832878713307617401515892479780528774123339729274888880885929716325963758525801412710439581763701924255136637270440565613870287002116351501972748522103304116232080090553833909447228749354379139409369820727925039937473208159752563051417269683411180087081536002727482982930507516881389706113329709198658039327971472346641479011000908007174032028473464609225012962077425554695643337890131719816052540718127245797252380614216777022914608225992933229122074669491474348402332563182320840699547140559878710479702565171943938461558005013620911574082228183218241455005700419386399124922350022238742675660409122452582092194893477883984979249931321119644815115320712671385809038994212387700303601807245301827124267242053219307572546015936050531069648187274824355591104776460230214832953988000514967148777307506431449463869136774528851723821306126513002221000020819811306923351991923477226622305385659752723581009450848229186424597602408236644448470322841945696595090117249408529676970329106260115002894834604810862508328956256695150870409946555439794334762225832191719475417682452842226507242024767606058190453513053998388012176273070911069612764362645884412448152291913785568743401455104649852015136274866885692511628583409868732083729017313059230982097811218881718294331347809549875482041865398103913294627554050797762767308476841878556697385800549438826051443359387327127792454899756448572918140570564879955550114725152366119557124879657873535100485132624107704157316751952747613478384414067435736342776613753710606010272922199335652891210612656494176365006244279132425273399071002734960684515554230511543475657013048411946849613149723499769056288718623557614307714314137018964505249225438185615764570633187185341102324335925429795939449164841881421077162563659716622878757155506410279713221365782129781750898892691098411412746988649480231893468264045121128016944355736176378587003672560549367637635653555041158913927899778768728796544410623122301877967934366089980145069234756368234223949139366516248368902217520287673477456802492788049537517895253437531333224307153409332949014782501994886253639438829152824431752537500557106592374515751261504854221732709862135210037035964982300423975913731382160837047981947229992804167886322805711098385149728597602439244365295185849937667578182838252851226831995976789760305136697184118334941197353464346404932928036306748066851033325155414131217990237397274378249369401118689365067567465771262979996649553192727117098507383353655269871903591790838891883607938037684683423462513799235652164289110856643362427041409404971011397134655370111487781490621846961273990188142828055905289090676704432979463421838358129502308461742117795928790804050631504449264703961078089811053507442796836218995743561844585339194643751213668487310429074264184072208433396906836280909252730273451848169457354451396834037120146558529816136732961255495081760222654416828226762111062698706096736346050839001474766416775133035494569046386806638100638612466669039300283772356858851386303699235858497673340652247168592280858825662521513599688178120846104478723325353428210468531799688258935326192950147430765338593670832985887134194640374079395062098773830652164031112020516794173315827240244104240557803603452372191679044201409652479649362790662530098711279675135610165332011272361494561537291627899813599092028839558796254447495871308159707268631728731950737044538541533725576692165539902101156776920278330365767761102240646221801433958063436206532454845145698832316136872752206929811245783382698695129412036467808587574114081644044312750165573580502423344213561036935508263654966496277185832964147637973297035668528620620532380880040883930753439738918919338113864975367775128443294735333978228014866605193136426674450247686016245446402576407075867673007237786293361324190619337513398063343050438416944370050617985623838974527813640553588913712247624301272346685146571812537874767255493786212694592721436830466959293362193785854294850721538124196333459206557809086196708599125430084707318785164027015763552509358132702473872961970057542762570653005647896394234946353893157719008650046791937094220224985060067006669244997644407160215988561941374877552088430387865768504374376287203869576881849912573667612578727336741650979147535516619896837347767399126333059742009324964227737576771485563078388473953168573722588800330926384430052526233164653211840259473292964827253067279170175837487661981766310624239126995657475180413768763675280693967344829067236401058311266212107257203645495104412982393119859767163482949567195719003347308987616364305261400740043821836966417837087212798302047567389540612090564727048421842577397378637608491033930198243244919545714250912416663768433002947806381356853826174014460999801160356481374581338191850427131988969175560451133695919883341722639221382578712732219757665225565128822835861073366449672902545612688098635182077785267694396212830826109883043682142406529320945393137131487077698318661050474378061240952581605778311494287360961567079676341713828667107139497247807608641897051264949866567640338378234838289045859262743256861448585967401662662958613939702494657517413635394454345494543124620976389401704235627771870992958108132667373236432275026640796720407509196908403683186816682847703942652127856901335281270385138720788868424723313485214164320289908598242824665686135930456256029860853596197507164190184582698967828842710464870006718981065196579258852820490621225398031003217294964408578390638148315922055268445767866071431711593846143171589633979737687025814245121451257395737534259388594731178188098422504454160457328552719753380549125083750640348444222280360897161314564963452496068982316193833875040845098516973397203212745618991698600986390553699005296853218821175624067092295247866668658755320064725036907102177412187228000199887834929058014098355452047225233460777902464891149460294050516719284525685941535743204351625041102998727420912041339491370996709615582642347782531300079536713431920664767370723424447237421544245900835927059172789049645259850862321677946956933646432617804911075083418112818017091768789991901326730469405028201597134737165071768496202671804156055165398755948979834195857660345891355871209212560508374812947097190979343332510276850798424391019683723465283644130003317321716416924214295229432607586017343014349459581004036353281329540198708299054889639388650760790203735990654619097034922108318469379627225659876535957792171826178639819652244165781459547124376513013192390888147985171771485113250924841509982486770068137380101519245333735340283048308666087741264291545522801263577982080225431190216819231293242452394248213905955516946403065244492500886232083108206128361427043521015656100357847497548599552727903709588056746335514732183291246726210814304669830112518980696766877791428180540757203040274292722255121378761593371074881439269846981554616427799677226985782979826125864161967724044566721085301992500551090107173727575540974262299703138088677315680081170482385224232826933885782726772317823435719581012720116455667350472775442040978916503423577789719443494560979240783513555860313323073681433621190433680099597267049555266768834455710017342872869190201977923893041695741775111808303931391271221348347078792835692419486537770566664965520191312373767921328672981652723268720950850103329145321279651190026664592824732605559847903595450574276846316721357469010748587365708043853086624937732190342309458554982547648469933433946508903136461149514695862081670278784759555670412145864337634260998394750212949307865786069022460032508776326273429852359839319742255505653831746823013721317248626471339538877664172199859658239963906571893545428556816560206542084301400293265185728078899217613051333000559137030269890688955530819039888647607288224507700150137056187517337523772142602992231235450218184581586211746321646999540644700999024162975299722558295604592685100167244835883719949578628456547710819617605780412536827054418232469185069268031207995098536094542749538016361727566536740864632317700032025240825849910519618382885733108278748383275871879346395319211669763532722158759380052491741228025301379384877863844231740077027440837248215425619586917153208361852032120364283163906778276762340844677068824663872966433132507929366489411886655813942211041745946071041531990283972544902549150010320887756079030748450817415931833326498783952900639737059495977749289933247365116038468736674921264864920710002391456631670823199366853961629888944861869610084562497361196342496551482561449310152667263337106246818970384337696584510276121511121285916795033138839124698159098498148424603471049485474477889186419207221161915481015614762080013634425678903169844166030448335480521170181759040425579285659628998719599383113516429832467764650489089229237936430387980954440863728037498362804641038924700675376890690314759697238862025054591182449370826040023058694892776616237301703900829459737277176760823302682817818611228643620352422198662383099907268427349964609070551895934747964043134004577809967510148026966016554428548931207066041502732623181070475785132424196039506972955531573747756804945599474026543042167180110654877103167967945585277998833080527720688581433018328494525796639573293921478583562699459808036152106955605626611926969291888851716465029799581584613965054563900282038499790921633063225720855344019924238327509584424966342761365748418677310981782211286445324368145351452601080321524412200876303322252689863883806931137575672546822261313827935646976439003234019362057330060685365219528001416868572546348330063562646817216781113636242334308955881462269526311938920605968568582660922807253050819953804801661482452364303578470164556265193169566211966045235452440697966143113288404800455713419263030769341066288201361976299305267774498307346842584437188588503568093295854491189799490978588969559928490273338465920745059854961656905816792375315112162769636339235944075513104647811015910063559121291853634334537497638374762043872201109470944895074545697451454656889559633442198235901235640541722717383319736854311609385729622503380677914028028916469614797065373518019016907087158349469834348582998771212771243430140078798046896672611073571055653118670032301973118238598456139744162895865738870668389200556393271312085693087526351832205826414322375956551022643290099759434749845919258631492933939834559725263248338659852691655732959465106044586251410491039469596693665131839197736060068794471690509881803760281799356582167033498832165444190217613359252762070148597450982808335319043026990877470870606019993644526594804512624211409439417491921759027781896232235218760042763813563639581278607390962219690094300977802820579319053408856570195783528701274557378097232211199082178696436911492937257329402794859361035703546942330779987120040008684678550617489543720623145137156011308503636308789819194080711187926607889869103961061878319367981343345529122563195299351765709419034986595608533795342368335172993952134219363081528100365038472076955312550337913821746303812600126192320042952038685779360457697823937142552662883630302170016587182378420372683306333492020053723974019408952975180820778454233852043563973798372117639794735286243220994325375431330037982784124354005923998231023796834655012510561641919572265732210595248611402339400796819634492237079892128459342276250481378904131413023455697273687490392552806376119445467051365209136687557697448511337109880896410627434314520698139430712311253802185793352121965137323642650937222251136576501266718422890713157902927790525986681306712468916404459150129938593013800830631754953795024438198216213206336714836356056546430457973376383534356772148274649626174450466655767770316598027305565184659315537133665340649110434597940829514944947995301466310814535348630136833574998098760711384656048198846924502438773352300037072062427204001019539739139170124389075715844729969768730278076416830801795463075672873673266551097386016287515537874618522605271212638493405320186267331434941534555634395264849615082033386410887210118428639969121495289289171115945169492312297543819732539079793208726284564261510588059827111374799355138264943698604025002074346563597674902721044780627484788589006007634734792315059855026362740322849358377698143576827306582053422683127920531772725335488351796991632970595974549728218230675057364623910653538176917039944650246600674370957767290025291797562180869977110930178582437158875491304601286196144666543253219891453798032901355852645039553938287940232995355061440876713778590392778856716099407799928623041323467795288792177085343565023981969174217288665619554309370079866820266646530087056880687065406077731683850983205495486457677530033750700850643424522904204415162280098688779310390636721778457045193758048182217017796040070868150517998379808986908307933354535234277931112681275696922530771001096614724281979309687702052523483516702911830013685685941842144262405722998875146926891413146879313085043566442519545243685958961402111238739122918447524749975836148977088002265743036805803383030382575190047231941404885265134230550090375288244330052428289916646601258331714082577334987300885897147986980841841253029651740823629303295686174087607292371450058865295866589896813767192466505206683117563858929499459703652083722566006956078907029475695291115194356219980528000821600982061230005905468935895265947139550757406490848448278471175167613991620474837939385403842470353859482508711978189370213582971889930832628440280512350670159823528140187437410071297935820629197756663766075871183514067262232803911449975335906700100167488948950097504835731546776483001757641889841141533546185118315128389307691556654565297712479646672018311904865767375242657612354470087183255586119476269176157275781226032068648064369294831258217340432602403322825037833000549541690660919901386456473399230389619680124516802264060762104749718241422747773740290744970710969402541938889513999091729723143395069248635214661175554607541187813069736085021976004568859966448619466216305118667571550616396042052187828989847848377424197188546472223216794148686254051816324535812107719334415056659093357142905733809473302300817333308598301480790869520690991837551888506072852863129600177263747409433321082464772966301487594021209786393672078113057606696976664029815555022703052210095420085148283785247388892038250172842710253640141470103372897170029800697126141642794087554018246669485454551464310959445409615793724848199371923140975559071996822520712369980095013495003898707252167923492515162744966212059549222262894827465064702159192088508645116003744719047099217434797698551732456174227248489418243725044338811599319632930946078860418615743311410142646125909439444626845007961833012742267377459998109333897693393828476204378842320762559259657703045530024092247564712798441489555113733845114939896461040253402080547673927036611993634795952002087234261073411967720481130287248268202949963646150850011911564527547739593789136713606078826277077707413061524208586606769144747765511750081970611954068396286122627984127463631541894899671175691801990337787892145832906199688961998932671790217579094881781667414257698627268131903024212697017773403133528002607089982120012447698143974053637174074092636573587650059094526861725736310217395969254296784440054786966432095836455905009816168508989710610133627029075143822870083849799735268573789870920476581081981623281565097777097999101256282010380201421990915436838030390360264662073718858686877469934261200531181860155461709576936357577994558882770321660526719047941772165359458673528618315986565029967653304529605143658680905654174742956521898210248060745422240844232480585230220750390246529062516508132807885015291319352243492093209055793248947579585852408832393220400506275094318134574992548794516619568539791348548953617595508283605628372011843743808561390609272460502932975433956814865305485020076851662501365716249349601702382255826870254343019031205181428109990128811160841911281100207884239568483413364577236362177214017848940612227355571392623660893588309337641263027982951611681832285813057383752522907483553650123727182121697679214743148702578510242526647972074988668127420642962733624314197889885796710497389968019646294416215122590736931463077678239051251746930600934516577003496340766607512817973607138215213823192070599093567634533813901356808508278936193493344076223268880105552924693721777966057511239736180084005562987369046648886119413293279972339472126688394014322077206688811975396482848147099164607382029147227136762616131393274277612940730956703179903077045281734020299478832201212336209661026368608369517745874575560838613248759593618217138001759152969675121030051575398232634569971164286320014068336977440908940037626107313751681314381773678026026264484972439411870849693695811887988150921736347732530754431547560957829481709967882490225876169568090089476582876489740207740858530577458909753165100826610787610763749581882311740070345524633740953360437382055809109722265584145432679954275212086219175310850164479001951421358978449865334190637353174238760722935048284397366766216314871912268765930402951385870511068882164729272348812912130209000491994614268376319289976281998055978716998412378055911236438683725305104725420669203250735341470419608832218772110664683756307663963455632396495895032920317507520501281837511682103556628927580393063683075162257190160749947996749868484152724866070067361325459757998230520302588286764543567052267402738481378608989555949177006726220187662964307851181170874047836319137642438382556305642067084635111691073651288981101130955669457406863228232271772350627458611986812807552648583225733837357764859948177347117256806496779659519324522801698131302054491891397610623864023692547992212717843578954589513911221471989900983888638849547076955174739710358214962881757857690789546677242104649274938700389845312649540589607856691223036599549034074987799108586774521657161852360385530790570682136176197854448140209801578363036298229584836163658015058925626746706348256047461563415980108178553107650054581304454989329402138652008846053565255256122923852949145325227798004727957364439753780144721066189129628025773066368695861160690121061255726919473069095643402652680824249157892862657841971418525116648748638260431251150826978818875650207999590001929897518220635500847323494162467159029296674946550448025822882041102318297936709713779786634880553223023188662460016682129838273310438144010984109957322737908318024944168259684723085827993269270146062386257041799924120828067869853788765613846112365008707798228144506091951641592945353807717236202205861071892479887092764976263285818524512425017871629791247392890795817811433281777779883761360801759612304581491181902409206623482497007151069024698289531368046607934405488192844843990622633550145749998823269852709965702105591302504651495346638913165196471062212368621174777205051427749940073975581617587954873223193987018836745565084877813785690070745805673857850378323699004984272661400592938969952175290036724556585843947002214995317307671080549068338724657949772409221501840535817918457208632789931251499906916416208413897682734887108207525163148196235792551900370550832474149736824890112740367378168714480832896112694755751326029653863627923006278944572451554686800177785279477242916794049657776331511345894803542680545807078007221014330633112575536241965706330738476032879956682735077743584872646505014341569365684888120704970046992574148210692334034976383883435792034449499301934873604909607190775336114412467525276685395850489453930098750738180202266417509957478235447779811671289763354829259033774641029782576184157049369565488462458113749517070422250768919053657290964468419702448822975290878183634038193312927159923683820764157167679195792771399631997136318736646755960178797840843243890588924620686458881118720208059097156836339724156289981051253842602858105105556849263745266293412195015658691959178393902087879966930175900848858472033824372990069770747296835362213473061576936403873814662598816706521561299283314830888104559284685579077571275812145890798651563542044386747267274011933798088996288972038545194137110339078697935807903918860611967262224227750689736683846607289895237389554379008718040297570413613449066862733970176397185023198139266479781530590487366537576544132651221017153708870217878104797501521712316230933205658427158603134398619159503834399774716310575224458978189986640189913391779098238099339304247319828145114571029620676540567353263479132292043035442350210947918814754781519176679416130726401556740756652026376871807379446293962878150184827394518756892436348374933944781999805168878856049219751670781756735252196805770950557855724665169801787906304946436427221453973165455349503599846481689489410190263465678346244461448012163175633631399433723688368124603340060367541640999176767721788588857972524916709777454558596212041563200377982285569254122412422449770680266822649453216794325061176669773995774148556564204352516514293015074432816791379005390889047999891831885513686133073376905100089083058571610512467600487242774335409228313528304275733562333516964176746938547155465193852901947061992396961493762081365816187869352733180266608925811043343777389978590877330246014532506556245407809697098672644244635054587179467987678177702838889876075321924466598209413413689314062916310548560037315211330652514688657780338299508870007664637086988383309407006112192783607993540279465297434958626928885235793161332325701919166636740953747392772661910897596248541145764016066383090264932397857575193443050404253982765504714091192064195503333439924130874593069872000645727525743606553954007144291920927360314747511434235164681630060474150365222276685702904889777723569724993241416207477185617993960154792204394730683885150922312192101920852429714767165056889335350607248970892940129680962424418128014326466080347476633958724200721966050090414174361277647337484693792264123132486237487489543451977808901215093483456139961935574435449398192373582161079784896364541543160547132211874135209646048313398538903427745916378361823317461743357043788604984017799051520332260244111422954324624038512935190415881420609169156360666781994430243695737353073662882704186671040333849087373879067737683400315449161481445834607602175891414874975580531266271521416226048872810254628023326349173521165376024279034730686848050712759551005321901011312862151196658605679841095102569444516806160354267457324183450630797864135011712024315952654758123238455886802106850871810196929918087604232932404928227978616869092499983033330476792055927022130755322077339930788845935306802203334988471831644469186466886693366242324716062624585736091675399328268136575044304635793496972996460197757471916986742016660079758497716764207231174158036040423850121524891488858862624799938183512628380127348426329973501847592175234782790382682263043208805951148404367393844850974297403780273637505318470254260592425224180806436980611576736348707032732263940373763115998115806456553555901485970312923252459429491422795608215095162418635249403265014493388669456154526802944361091429132591107007595433722253738575167881033813033309086916628247902054215021124593462662823669823278444791874018301945941784095716175430059621700473148670727206907244342003249347022501124918147595822212363312587653639016655083766959893665516083564791613268653826707567365896687345572951839718262738859599487837391091107574487658381001717869527847422494221228312000639294778244614692873840206576716812674709266013707571356077345064568273234860295777539933892395451111952190524998522998632941900358669756894764318066360747043537503114820297356127081768616904002384668319652726821007152513850907257684660370396549223773711191160449951473846568213133090773709591914221332918840912927689449588905870537907231481308159971606044953973566667964278751981459711829484825788051062666872800431197006982916601310656339787986610538167195952920829309134474686335742344966644558336938770272684676700115888097265948386280232927784583809260969460060283318825748628861653478943418738725576043554076590385982951603768927795407098730036326238296528703540616857565347144221682888132329460504965191336049296110004479919610334369745431164844941503206612407668530033251614368617858615693958882788140305452367728633064927559940565412344248384800001546204354913219574300827216919691243297366031966788555453525767001338832488420340749319092522441344732011072438806196041650761834538796679745436016235661238853776224912563397084763569095995070352073641843469123918434685844616039688114143251905209847415614033130208669132361755470396686521511964766625957596462578142603939048951078943389201334063044914529795855213597717176609847729004341548852614168467704166059056280460583143745101598779996134700265168191961822445361045757901832071452162047094769584739078605709750603424255830648710433012666702039859265714209538679007437671051152113781643098705750102434943487165092943188558582075155980174898491772992013898685369280109661087718372700245151412778114701338908239969096276076370619043014461431352916642845966943777906167321421183225575207012898648334309059597015861047755241531170164726881960955208819057485541072393902353515181397901018670200806618114186422422133120724845282187277519436013159892009758145803109140198495304562462792867949944721585482474551826767231056656517961512155946770894579994186954102016746745466277474725787735241109451755269136602348683269240612831838978751846341249912582173701219903378543156666752423681570757995587673988299389974995265384582563863450768489261118144359984410786024464127195104235966473489749835305546631848260921163549289900194232738495720084954058468965387098200898233850778254235420154601851005599349147019007032243646716835345233086773931568136770253034051191146787691451015092623194706181547258553509756646979638049297340872556254590686940748027615309876907270869095333521014333806983913903078746244560093111699573099184323326220668074362084523770431780075901693496043358572772692675865684758458065431578356883340057826462559600293196089482751648609236926247341628538228547557796494134974263220626950022173677966711118070225968725229735284547816662265296255012595251360334463942039059729634335262972295316961077516247727486418751330471267692736204138235031658983958373423584644386364072595914651988822894123077611803255353076179802735669208579774102762239197130625839443841839299792204204594644785257331125477138414806484245642716961836155141325065479650822180805698495189587836997770675705246962281463999483005071307589167166786397672626507217579452366591462309854317253890793019261451734100306181173889352714688051715416412611418988564521062258664405433117776639830071636240025124547704251685251486165541749061967441098817593175811153922490782015722076828988157885304952003560639312404821935306227938145908401606823538640611959237406631061728455904251887032381097396321121947039982533518282545513258731245909552856496434295095184042988903320313224528176049953199116802568759207540932950813405775333824980844215300232845946001605297306148502154501472691973096116698897188143758990073051292519617805649255554817609571326167142825300142816951166354656857188198063162327224569152123436361499679684554879451501149683336435663007637820421866401532466408112836245423855227653306322349237652981262282454925750273885505054432755277569976497328854691362993194684488802652659076783393570207926546993542405784655585785571137221151111744728468742223449959448530843429877029424804945347433099178228408020023466431351407020481449426373878713204654742505131781901192852253288058440420862762100090351079624958457487529169174254058318807671188745112397143732750453464621475028683367217149808680739147688475655486891995912766824246572020124180887515030484292280531814147172548128730877038731644131743454714528762261739383720302228803037325644269992192647747081444464273500996895313611279689518585958080367813636245658112124136636999428636805956379961185823805414676094763285355046895177898341344749440311517986091015031792098724220634027189332943697144845191325878458857244471835214386272820443319488680100936175340116188454051810981007280890183106911007803519044008824673163336948734551813947819022641309440777552940231618446947156938600368727387870593892415384300100310380729083661106005008545051402657197228601866773075646494580966298056652411978944942674225853820604335247700810733864262429727764513561783817694939829933513881661893879166364093507466391132809185907987147353241669678411469828088190263984552917896082465935159904501234063055433719412424711693407029929324492478988138629209768001446853714463356378454696790848817200090047791190675063997079328585963245205434617182019315014164847637436225762832091827005253789764750712267805362618012579924218289276579798922265774626994849789910021723799295439013854602180744133963651835894666624272282590190059485771721851319913683525054876238872754538564282366091023214059924006620881698896323447764312288644343784172349289448042407194088904336140598711794947076078274025686975571363165238926816922272985696864878426987738258288018463319843605378916066958485980662612818825677419629254629814583627647991901419150631905619445839056693194589519308052540030115848781416045339686184493963387446326498618976678100039312212221486395091198281110861242318818244440413603171848964401788338598546319228916727559598462998573591020377613548245692698579103771320820748706204063908205672988640158986800447662935734993853741999835092983578897375511307534676862418241072045799405998272139813302559061989881312587255930489894490504082787997981700428481167275910589207517172714151343846795262701685553626929242863778913121217945091814760655686766117707995107125292108210056992268287354418075851570295386608653931245992094869515283791684334485348247500273520744583863858240026376469273919624561958704019674541783764439671120062406564996805724189025189211025760767273002620637216055563011091594353531239275837800321354808265186667537245315042952081172082780745073150235604466854934141954507328629309025578067209246770396342020093607077349232316576162775038664787388684926660856185740921187982540017928985651881817513270948144412936973244805872681726464602187203981012954090623681325147427002268536565971119054593132926429291971556837706109765022124883444688328779719569807886157923922160351646617503867891843705051145806531592869719411961027508020582650563857658997055173152965063163848272262200443881580006272653417418121761477889401439755241747699473922018279627816833607992611469400764598721698370663147336475455262425638611919234112336624364726598372280264945569234603018292241355972422640320389976056150839337811301179193971444211019547324029013407720992590168848899396171749388578728952139875969022847323497103922813361217846352807998632678946856026954555853721104069330032027083661154641397800544766689391380096022145289952749356115565306973175024111879254999203568660053261034714068700628170068394665762334658814064240326178539989160552827363592839665516440471088820014655249839081904831416523132884630900680012525431637961242873595613010405511917111643920690113228438477463886529667087998375971421969046998823272115556633876705852256042324037553994723371049206587992216418425699966369177379571728451001367035305795795138736395951904373260632388754414731697560340121250356480628032618755916036976350844606201117935533836474488873424884609126176570743796610663741810493906343269091583819738384037365222784455726131836716456164723526131569885018165701206842257256211129787366419739795994475808942072116137145326889952015079651568270385771813815628701091900526536337165777973979497145524224788135726199929421038767457439134633344597282288889913821229486137913128076677097007866405668639117354469641480059336189382233465719087367022293815703898698406076365076258548369998915491673107010552958933663865671081639290619927689543654662401014187756384228727056430644855234192002582888692929648893999214331084688249839017746877130234880379237962561524661806266527594272734932945885556351772932657762497920962437023196543283817433310471562377616235586389409132001084059892637644207886860967108575221492035265622724462122434136511589798312013693047169932921283738554702693285876351204211189775464784459830573898981497081769640314382597410211442232426945946633446467498191765884465121864320464697570050694943922109088835785547936864470186636088157347740271877816444178817981423457705538131635151949187332258749273968987385415213518462058371844853515339457677303126505266296679339811679679818656049392645790907733678645601753212579943004527741853961542606437843277786389021198228610694786180013997807304566693397446325507960702510066919470206346168680657090655300947992498181928495148041825810292457946044465312293255944774546938857866328000577567435335793483321266716300600285376244148778734395087860776824263848988247882207445125921817266750036776425778132233739322132741498553963620610591457602449571373549480180977813857841169644956708620085519138177957208917154224504409577961335774855493406227237737099744823842302875580433234041483326860020014332472283625392710428619393822534005830898899149319595114557293923514378017636905111985291324353791278885571711506842513292437384575469630667344854279081023769815584523419106631839096971234697479059453913429806850313214773276998382046271919037732589982732439367351282281923847172482518634377487375081474958981820860408619613134627832343254660497945557785817171044683766328179538561404342551349236239054405997717900207677492912491989943616857825989695930034929206510049441093007297898415466188698779019571324273084244070621908304288423565081395225116733387438766162555378746755809238156431411216282050848070588915280888799795418701517680397171780567154059824025585278821674637368802676894481922048440165142212511829289639765139154859711816959472915169419834299925266622899542069785439244926422842322739195959810276223948945048358748151901071113808410241079180611999692452809468518848242762434246540802234109256202279256329638375926689229962009249568286613688039156623076416716314254943932411603096901353067420235415732516574025969987005715740603247724837334115360325128701494139570296023090880620237863384568001621062388419619725388999581641627646048159076663287733064065569179239049418841665123084009026016099341833180746180511612463935083933076168701590601222577163845034625565334822107812687801331708132196759286269317079529188579512646391232562602158298202610910118911185908276838489452518676818881156263747583306035808809042656423404298760082014298006973181992235717222516246016992156938772898117494528739192691701481370812306098019927490095562319595443802568714579542121248229833557326555892070801493063197064113401659368761297610127520307858370744176284835054513831059186651891640198268354265162165955165985197559112874166731209823375961402632639200516695666278045229821875443884815881478367262494061196255609719950850622250945663039578314970713626145094170943028148465595782563984904721316852900487502503470718009374303327031529813327046271369479843332241897456428860994645184794857362971336635996838077456927456961635998209231172257124618608852516227774226879369527277453528216688890842674694634128823641679645899472961149612674339219939993224203168236467461396012897726829303307170774693886389675166248461504152260558772782733818292410192255022599980550308064353225576505880937930323650591631547936728366177019729110121109655150745539754193429491531910561306037546453509092423504747461809980639856729461761958367277014403310939622214420286593928251962631953761467858412869452004862118203018009940496573625695355655891930250793378307387145286115633938087561763620010531829173274089484195241444774658138634085381629671368059321747440961077993126231860186914891247837698893715517106981976698477631540181945872161150971146868306455846062048507926029614780903744128525946885425120618995426946451384207577264644669264182470797336375029363759233171913045282127789521446087392367013002765074783036459477623784202808965082043644865641058599796947936003041552167527280538328528131362413736927848244121175727344704494890826528743120173869521878563409001621341340502631884731427549323696979586509989139064170507122197305548317556014548893754792289693844748544888736332333632760445572972027514040831233820234041987795254937302336202849152682377283621201893440297555372972125506753967970470016631499651670464704828468565544896240926844589077178591094458991562905675340192179505944512005917671894692478935014586489704990629516270035749031919344046650349596633179489447883192057519374138416115417361535843875465563354759106610244229430955051790290702666163434579209542653333251556283684169170447465713133231485521628379111761723805182925910938228480985566529152111639952961855107413327954536138170854365541040519700682413975219104881114737368543476768345633453728592040460184224610761113513064137057837936527832258035934458582631517627426189443917081361575567821338591919730737455993544842314766125292295460836256843236834626003901856206817449602121669011058020432206863006242430165079233016647492156776660268860854142280125490100615413401781078735529972818390667794507459727956155251737255205526980510373859678336942785883183780098723700556162365378837843850666273877837391278651101303414097944465568892726489537907323002415245353899679150051238542870932195187798486843293038521510696093726418059776223746355966617054392427525542642807726661109137342065170758238595460617718201751538844563610495504598431263447204399410868474268972168483938077433425987839195094274832877874283341263274398409968672997468953632648010620343794873391668462787652580588376648132266045081638518733347335621612695985647715517714959663949128078115939915464650853017753293976531347906755017192089328809078011369208198884890510384429186646247189737617249478720275334496385564485502571303783831228125200086545196869189472955041878747843671256185067432135674354606028002827754912136963410303738691211962466449821409386560377649483347063862832163789368110203074368167088189897386962093416004405932930317876416802683096300412877255666995780901643364653124685472159573305668331911148012393994011938932497142579603471104775777598306594745009611088922624691565234828206146788983838004834864826047700251653531347269203025381096052847244305911959523035236968850657982472271302858669108054478647391268169357965539303573036588589214484687273391204592114399884894348681680575397848067223579875058166394514426456077118215066913587932956044491452079813156673033257440443788740731266909390205213687518914358158191727524981159735792541509933856906020470829922873756137688445944986854042488538228329615663509853558852385827545856956737645232580132072120096056840568485749544393196632621995643323575735232668970589616020671250354660402905996233643766382592501010731898905024777050935685088616453405682234924726093879536055130360553337596744511714563796251978057388993204444389832846679002523183008997574907868451950309794346249152778745206197806388829843188297350058967469446383302810133535597755409227379053303898185493605848647362152758333638387844633201737483907442451886529137748375599174646327593695611278467430850719184557887343080804760023822613351540268537772576811866613394466037379718604278316025320153460566709037898510664317822897089910930730456847287768205150934819116831026527970437059865545752747051689593147836916437810133229667976385991637869121785009136977060047413346065907515469867968183118827783689974433180468229387988094830726362942094459778865402365854637161029896731755392272409174821480816667673950664076444831571103716362128803188421698185814432104160972636955088484172567452330590166903367390569717585103420035063889633707438477286052047829928714847613150989251151274166418106794844012022460375295432840723893461662307863519826349240681536543381807251374573909976367906200730039027988686969591738818042721584247920863836438398486259692973193591029364984774991740657394606954964041976195562831951119470483261815887730065142039412801143270511590226329033283349635738654199761890555751063264402305982707141310815138373620050824302266378439206620713400434214963299249283474679720477478623925272409740114879620143147929547298608480452220476517688611963234449742805100397444416255643919498795519854505894960958505739132335422982462952022572509099774659227797765729143360213243696089020060473548628036383988649528725902311011542820853876767681628045200224149319526902275786167013414394991668605957367859975076296318970767981471577583411187474791443355062253947001143827261947245698516372576534624821554472207150886686662502997045040736497767666571673974655425139721548773768526040615576197708646499339569597537145911053101899502302407302720230501871063213113960316001421077117134553723514495423714020768750541142691460818597155464898017830773883786801941691283974127921371699744663920689378542406406053740545372495459710492733974713206015578372838788431866025277970375597379403140421168556902980701153074026360074739313631476607804098012987117096775986499978734060764072668785570055994193175460033130093583050191119098232792834181282738828297135460791641138556160542617234560504969435442717088326189676011691814127997132833731847523252893067749598183406956597439398460732001231906415355425678829782838262892934644598900796440298741740165305579719084664416083018177637506565951309270148411329810545588700240199316729643780898014307450228205305323048114650442319206619126475286916083367101378078948680206029541249206236575412590146381062769654309784483736294383714332636892504847298296741823914142408731646968767626689841249282733957935518949638544762088160646803149531953896377097364869234533071709732330418657603838198371712494281929972885646510331159780246869270882843677036825706084895974474687929802619898303432877100085315190686902288289435703727639016961411153340113471743592429631061502310961912993480563755747229374927543880266174146258768718620787527435025644701595864902445265225515865192487313643170844082725081523837100578636511443019916809827018418025938225830764408282148207462311362535135910818583176961752644508730501299087554439027926046628693872119764962870250397102989194288201981019257332098547666519708912939366431811914143146230898126526988745035453250047555924781407704105211397268448517180642173027199278064965033710122184511255939728429002059066806757807461979934126666253315133659471102861670081871959532899658838453941439150453944440317569306248590831877576825696614722501436682012968026307018433649815164434292186175486448557548324754686499728196460550817850712145504726742140439073037961272757863726285382003302874178245119089232850487492723538960032914728747998974744039495588454914687424369496258793144340207088515923982199739762751349385521448745943128421138542670960136592586707602305554301730505377521248097288640862267933059918761305339656528092761316709685621570660385194646164798374036942425754611620593261552009385136036796035790724564460918437142577630903128996475355069603056387863878990758727373345098984629332148081673343038167920037322238924268798885514549300350324171026650502187988745278427552464251817647084447645134406691109234078794829092131176446750979955883045248729468987614731954453796105197335411870860827785219325561609025237059600895160905801583052826959383552488893006006142214895541461987883440859866924842870449687424726430530289001609666346656615498335231436774711912847313905865529481974401170992589872572095004066375992610036412885653929828602660920363433457250491736091274404114850496558744775918920823852667974113059657692207431423452149588080774574902792846921493126596237948004151131136316287720501138537331372429883738187671630412354012828644579328123611583336427430077047711667408256538969690590233150022124108099954319084278078324547224075653132427615006933115138165187613035044949509141204526921404179636032788326358463264624913062059006404456503840809284206197408657076824426400595000275927785614884764655351748423125349009487391334349345240888641528325657027337643889869617644970307744923030919111148441016922113073132845562207227658957287020807623994057302468992695099449379930189552162397076886968412433533701242660740859396425366627068026772748623052965607755577067574262661992563170107172024654904478441416877734066360900884954907338798801357861090026962793695540574595760000514183980491152280704485627640895830815612859200832411417903991710798989471904330996446669581023462588547283128187207051350100363764268276561865151721039405056615732869565768524057529247509176320468849729266415664887184744656341986119117131905376871006259908614497858686098862506252312941990710255274796558190505539515864930394774865699191641125759054035382091414009803835188538926067908557617116634656381183025601034333009700836287741254269156007084223091487820395569384578929757426898094145426248711318407076818189679484847684680987121218554297215655259636924219907555223094099261055558764890061849271483403351162159470961737970269862723306681668695216178714154583093025244392251332373165961943357470200925416986980725490549960414295737550626672877178389057520525469913549519443787614640283054641628065240350142097733033182997332980117594152231714363546885488438933034352593077434424257190762912321330894349552532966453836878957507226160893337192714481584236153877238167692205383662145625159169999985611562554393179282894900643349359735293197250674232868438691871929780386794831931543865841935688711053167271049724696953749472797742644599293609301072862010807467451063568923345721260760573347281522920917938806895844310790728633988909598573123143406016910553319646035531383442031978366319691260367106987393131904708778074101448939628713881114254281206947663154609526720553983457512901366616316598317126241236096678631493995536939695669294799491634150000195353691098943004324393550072159368752942554385961477185783812880867812402139658791199556183559364580926640223294458649023953314629464169082846043824649022430385624407919198046514131005202491143107602932362517048789103863035034027271578460093217759053894840035525419598424198395714146918851526391158187851596304393306325782986491403543569470421144074966301494399399562703084019557235506687625910513761763915097686282922961251139873686840347122369677357701927716899818793372538124614956811305344382966203740951501875057203380739882752787963819584678898242651031769392312187493905330876803153051283554569868471503895177381536048100134838943955996299474900498679931895527564745403161097759138226052383722294338629066938661312617959322650870352074171427888957734555008315650014700845929707209927744210628281534060671800736618701877482515608030892207324363652355262933434712154178663526177739124705889664681905653062189845486578508134024263090944323748821562735742743768992303069030561369526443848267401706522505387879205023199274515996220533592375962753334270007316244186030768347626352823854213170546161833677984193596678295469662999163771344349309264489298478851317283491528136208189753619013985580539941463567540808395232421800373373479047650473736913022898075307525230592334987420719485435209286558744175001901931800968319032375844457978500084100940399712548572728680025845714129939462268691136250555309494688855225937234109600148813375119507548998191893417073007289909505039731601388466251370358872989150423576309423688465329136925557808724367063682365977935905283399493210899306598508236933085054198691994662237709187805849279846125450873829335344791151654839072772251186391466237807745812749063377329671660867560849138465501073891798488114162698950937482347309494002805894716681936657295114392282787660277216230582527728639969324181864071188758056123204902617311739641086403510756835502597016912261120208685736725908842617487813754622466300444828293153025887992431728309349366395306331488348747257374008028868376095260142961039020077759095956438642708776429605739671697304125559839449432369374674965008141577982994801349957142074006491559152569821131210502778093095400551066426448272157774955161295996823439445609608749233993498999469771592533834989749790977325376365142685621787465719767200065421683326282568539144273310672187870854576817326220439791882990825084120223377647651146144479653026881434644694050684287117630793302260739165630953500636162584288207030924774648953284814603990471660401560098830226990730190552010080516589638573097821301432838229037009065755237908868065742064551206264682790800680164481096192279482056672934691020739126402242596320016982988527960384920423451356546730290288933287663770028137910757909403371487713081822741684968141255920452432525142457948842960031288729633476962567936860819135051711845070985856286131361006575093704056739022261934592098755530718640575125567509611381110602632707682659169320944316426397426748463540102434757935031228008101832114262328491061772230629315667292225593253503812901843008703355170136796141562673891329686903305939520027180733281742353694122461714311477179060211838588567352024703634792579503537718554899249346967347386426765524870550768484500296293974829331390041852939900684278985404102679443347940666715385215667309167677236076309477050387885259883128394626540773209003200806726248435494965578267900435218573526653835101059468105515748186467900851750537260228960239467110504233062073272708711643923465720883809709985165445446703612098237107949359480096974249944014179216535556221710778646591264917181594306128881859517174553560369543511728189883051921318335182627024689397205644722015841326175351557197334086567214206122259250773238512089057975871640228538137694067984893408295607519645031470294343757255646704055216691952018166613448510159303284136401818680942083538568861477696587184817098083716907361274509224161955145720726224414832915594905245531508516995158412523547132483406156359184013543722361780178845341105304216661497782630154183031790657582340965230919053110583119187874211366039862003107008014504522915076464881839322681244920745039264196983221188244614570838100174809000440476079499713253144571020956348177473876016987116717786952391363452616222796163033110714003746840721092942455743120404196587787390920034337470732307075025960007002919305614004865821231285156118216339429128289083552644255976072325997028840114213770819010096207737342556193254226517341284675587109561645690639268626195187084955451756265373172624015227631854385938569686012463568245413701460911888197534663673299898366278075350333480243642399886371609778227937168706347641506133754195866355734457269082570793353441842064656220713181135184276679579840903461363442603463569240258026260356083852636815638730466262163119084166406212447085004297146771324329012803371557457570577750800195935855039930387746270935599903499727281897161163766653844475305136101407154259658271306068517442649416110672200791818077499353520663766197101968125007015251323532352139963086942162870769702774386367387079773841040559889152588238576998345940857590910797080772440183434659879270397295115119459209228444702090387815388084926238078667198158751625549868488302077117213382178038860401838915869531576666670871433939035827327375078416654266194805782148429106540567458919395617679040120868881175165829639315771626153355496783085765872183394453029908988502356296513367921303922102220709563271315934019132340737776484556301369473840165387578529491938611596848552556654934690215601582403683085467391082892331089686864729711281398526259749580336618714997894153677656358175822428412784004009155540298598642106250246904510235625695455235472012151555286269900162105467236765590616495204974250262341199072192778523124906214046720554650186186347416025565428038651418895991951874644241301269639563457147966040438769569449488633296993582885858343950099896594399502485858893936733977855055259763635898131107388626304748828683893406924561972991681836315273428222179651645633884124695088990665507607290138851618570962919467090657951746200797223442594057539195735851605052238908571972920761387270105144744427193131482004450153240318734239392926406593294182323506487573332567090052121753649221427927026490317433837369427747085971138124236435779319943598937051044287537208122366374279514510592692853817006928908007098362536041451810192636549558732242444848847928117358247981726302850189497907776133966528930192913161454089927153409887514856978143027821799779522476911327920173131292771365268416952522503753972588894411310805006320843704551655520289102749902168065857129595408081605210133212031428172990752094792072586235577478605458327587674008526421912063827870330170006626534668508778076284800167707441048168514550340368608810563676459531015730544842015308299358148509912853855041066279094204540841806078181144493551729691196728904153631700426489327231178558346718839376748531906570127552754654948331003077023217228443432715224777966617514331159319072888393466140913619057350969768617575709916313902048589595962708965263255122413760551041264382265368923943456836343828942002260436517037360180796243450393513197222223028995976603669982003706086125170868465190666916106330131719590301994778742951916354036491902770649968953017498347816580656197002370800832979688091744714871363967546954664391702316318905580236452737980459080770072770852787556152616468475058122777451892489942947140445305998788915475123594537696767585613299999910983961935514629586003520477718422440651182374428145059006105438978615766125586090509446582438565798768227944665484637820353155254825093573873539083582120955179311559535034061006105493462198938210889551409401051372684571935229493376205059535021974540423631031684681169974397134776361651224009240271204171512008907675875336999530363788893819561910274710394456253350923369795335555780833728101906966738703248125125637509851605440989377082405828005921493628511900995068918240851390418471929758669697897884822391629181484813820737314477888167418958732160514131909808047951615000108877829500236456635857096436647243620400757147147011352926688182728443919311324198750397829418583900164975692730647415309238972755020421370055822195637810600886323751219363101102287166050215519300864458116862841405698837568750282220464073309509523425287009805637520783808662789033171532443491802086031257139871414431921633778266468961207634001885962933871203393706399484801718547875695304365603251659540921835975000056308244375897008651176623513853750984219882732799549161025292876291391220710552328912961402637244031292518798195894491863034898055742663971980641618179925400652892803069732141832642192867189021422367859543854654438960307753001505911559098284671704147181110590989303902917919514624065337416986704831600523862947200494900912532747034868513320677949534076265124022338586213430578490034711127692041789502989696195944398219106466836589668359774438202480217946816681443230729563072991253955346871917504512292160189210904679481773250023306167513227361719167954896750358904261018247242605862332532157211036254585551509873125452941527248360001847948490072222547057017140063794205999009397437625454236523461108665859982450622352706796768701538602959294763872488818172670385520112138123299814340818227233981735961339948149901466376310201844769784793248480825101542854397706452508274096525354113529282688997037143555888152637520598116734233615268939042056392823636776580309010562954489554887801294244059557102963611156538612539880204113281865632378911205368430106264607780168739525432086540175583256924089197133795934151806270421326394442289862500891200459922342821677100149652171109665842987472568225653424097876023507910531705418466057467534253004624511859600555615690874530453419480732372137466189100071403818916675200115743468678387710650531678488328079270733617752155370982368674086256148220554900399017309383645439621661401326075748297260188501280043827912169338763229350612134557706007796703734987144505555977934580402852735136748636838090892623980892619965189562441127998693160416389900869769273877091281624736789320609097614393648525873866406453449542887112203344079554497798153006143789043161803377956706594880002337050096021288207936563961114023758511476509944414712807815773064785340508308649778925167080732319316191453872453932196326846794258343538894126921638790537433382475221749615806565078917853671640368255266206787769913396125310893902329940515642021656432124327524059099754365186118239636931982143763441400172189941335185458227643365339309585742374097318265681096288315096359754136946287880386260244536675184699169263313139116412671600127385495074337409845290750713786960487815486230340912188243568889449902267164065068291511115482644648554286466659962396800614419327347510324322654664587817642533247493846425381488912626603896503420196430723174814213833391196835627724296793825676307935168741669807595334610197773833450858813761823421739935049102108759706833925941083031449018757004530739205052017867544954229425246323109520771193031818815341728349661829741326748442063503020234770878392728447825450536855812985158692641565532055516077593101224757666451520431741792843479178852630788195693833664604403743904529706827749115338194265460214789419656401623684137595615261656407614895026070764854416448396855152301334551944011485213249009412322590058047385724726596728945346896976151106206488786165880974815165552735105530695267516932459171831021922975703551748599571026435655451032311396229139475115638287478273463540670235593408213643530129730897062609630366660810075556076148404157569596910973218264416725085156824200948553231611966277737916580831290498880092757892449171326476577589859906377933233844554812132631016450305503854801021071597030781040052297416697352194443390217666651240258497782761183218671839744817221449917617383855909889162128359384080827496210020677030056661544075829027783286155669181084379586120626107141109358399297174179223924295731546703890379167655564585057766485893138791684978239022705203238186064510010331098084917123451373551420454098842112756804232145830175589154536322309669388314270258313669148415278392061738678286243365142229445746869801881098133477909825286365795798893145915635856479211462547962960681147897105036496387929590061300273800296925532132044001119921888114939819595951611368128632339602355940486714977740872939247353476056993862495553732209573096075078909633766558257207987523460908373669528953123044865397773700134316327561660290472996875738946646599793394817479641898625426145991836163595620288499219265862409706765986550629517025176901686237398768115899386127956418494859213313199966370198727480101912412914208681909941227777564543721040572771472497427718706947525099368833006235950198067716121065528527889461693867101839109365213714375523958568610186903403394185225435129490475665590447454915223403767727277833776291418720851810545661002396847270949926907130709098806156024290661121029047215904755734404801320814599719304072496150266364721520772090859582676163331675778350902995264068500298090172109515908076436484851585894830305421649501155002413137476763946989613595299621882370165756736680772583464353478953340673329055494264860503962728884487126589542992348447044843174040493091539268443771199677949632485428537642537344303854971472235346160619243164354470187323342887087816755194550380062019059316062431386426833197843503735930718119472229807259989887976033616164450692801828425051161668482117742111537238642793552337511989121857500037854390676271585355756365867324433119524988017289900894963949126860184534614485385346472739556835366684037876822537950128378569280000714880515083679663609698219308063719840115194902821505056357186719734800190553027734210145260413042774942322068655222191930030106304407817125523315983961847345365616535733554610692782272514647250791377276786079727429538248784097889370505175175500909195656703260988094096514619427930835685107358599119654186022534814218240899346779473930041148175207550541817184038010173120011140628948745318910272901811220187067218132884407715317144431462873423973413335178458242321342922507379453793787256022678750038078406132127233606119461748386997712589335613494233758462078768358286838572173632148160420894133644151798945465305456265320702848941728131627295531960663465191792310366276687486350257517245453535801134358073545662686106242860350754170418775124956922986063916944058252337400403650797500055874298424734864771666798492586595100732924026084368734183718951504540468683118650277654203141798608891753498381430119921738154074571924505067259235591546031371287470431220653349798433865040745356104933062898366757449496339978371747799765478406214096917851819808324486067405002810879649340006456353695726269305931615281847106875476905535191888270892251859035319173036768470587047268520787073553144789170413549894067720577165100028300585761232427289731139463777402809461460167924356092573014821902757167544962954068683143745027407898998405652775075556724952131161432351324403855776196925546831200672205738023797837052522983322348189026941804008301362432915360889968539596455876349722602011731277654772849803942053651101432907068556989774156360922837817973856695005217489259708757092491226869301643179726251005264883096048928179048938379662121522934864614437321271498060339486033356997706879714932203155114250902029744391283292376479130491741700343906650982345309594673648805066526171488223970321547655101228462490658578752255007299972418543630625802350209703028438032288326944891774094153846202013105552067918565683640856075675054178130597155873290258052331621892856223080693617828766236224988582205072430481814759358289710094213900962315842645919775696129948846581449360108791433741802748758816880238675151456873508810723328975701283164880838579436340097974887185862649361448862705215952204588329082959944289485032911701557216661032884317355941860354851710086254048281301039564426610333283989719131665928343462210169765621693844195296433370658958015116574506420598714345907055681786427855454287140562474754102605909302924982673355418417879414018302996998357185503274419320184758502628462397236619657498902336885205311625999779800414047239585683493673712483511740310245115775854373435868425098702271031355846801586645630145444099006463822316188584178352400814426481310979460248028394852692589615054673331327917351168789481597505637926517211626862531960504986734870066883830084481578325841645226614878131725483091946749099983615868231557320405797104894647620377270824623360932979665201333157469332770554831568205388592036581511764359380466855236693332054596899581728669390978962615124108049859712798033855174966550195307762074085905514779001247357951593543791955281222746225864324235781069149335528017671071732240660406509223012586176105635813613667534750336242992782082251612012994171457832115410321036305018719584539200790347693703196335636877005860286095319375032077353413615525654236621946980652393876760275985134450191478131291590009228047909993288250651109321342399098993518469505734802303285740354557831329123109392294688491247448396111479283906534533461427240143606621789815099887970500633030942159285701166709575544112085749193694848770573187417754171056954231774077810859508787129688629480026743059214449850992128671212362913051138148247509362484493229943892224451592982418228801033070827043883804964873584976371061059413575251523736035642288540560964372068766569688979792363542793481906522694916803166305475772604405077397884958388341123257008353913599886827373776464069688980140187930472150701937210723578007095779882926105984002120698279394721319297941816004558290607444950008505718169628657362868389624883073355088448289583111696117950118073438589902488835337358844822512201742744765493237104871099385847774653175045834192517819397343779540206833787889006440170043868110060821385714849301713623326271476490693703703416611567527731003932495842560962153700547767960957707989314685521362074575244517876139394182171966810575089671754142598861305132002977799098127949288444670146852797388732772416140947652041693390303446309893901741925142823054507468115274032641841477762454120643940764115768179246850953719685496525628846174756964854498958341429060584024932190949171247753049029717065221725693934296080135884332528878556644251018068658235789027573752610177517113920105142306568045065218204838813539492414830619457005360688413843510722318247124268399339812920127274811348338789227005818085643699351970262147333835688263067834591649171815244362998691805006980930630536048457579403597920387349292152662556022914074609432552166863755766885422792599042001709360156444628323163415929011083254939907541294300542046618859255634416003688898164140958368353195986093137979360411611849554664491126372695057409777258159270481375213591683432948432319440363751868693802303565768328749372652956557054777077807663100140695477225811946562648171677838607246994521656325804484680553530646659838357775447032564932188744859973362123340329460622592752329577403937581896075613860777157319367033709973237382790648299557017776760402936793677092058863519011066338454153588585501756600694699052398146017829068911255329509060058971286191606906981272761117399722593904401000034936740250825726718605638478826089582093245975302880872509523633633217331431720934764639273124252193147019456451758677087251136240629389301141055664231690648993832033990428543493197827260511252990751911573343987511450728005915182367134210533545346992887027531842465021523872302508599458457990767188667970490276323048972943796537549691340368742388770938931286351291199690857038854629485887683578265076379166320278968357469811043103679368375844844613478045304969930214022446666475756009779149260616757436848700475341751042939981903345048543777136238520707378023022767535767379824434064196553182356266747105494931395499072540694483275862420180987529341649103191029794834305543691542580681065198999722990965124625734855231324766580457016808489880300575844618502039111555556170174668801328110749174038287606169419982462797818755918062995847343773363815174402326744434524033728147042433729705056390213431639697535841817427203628104662246438346459748144196942885075172631001230426549623252951752422762439295499537231383832146831486095710301135849907564985894641847387838147557134451908207368607178559683082254190070593808281437071081202908686258356755985005641408080543413755366721130491674287893134759196001002978693483802725584494290805193561992750729465407512198760365654349691831730646825956081597643220455546049890538802475560463277426673113457621361681188817802674899779280893667223485442372375836353498630839916029776976647474801990387524852912465034537531259098257894224834120401946577047513639586205485069568029041473442234353196986098156048434074619514399673030006982012046341211719499320485308218150195802744651132715576714064117193033871079726387353004255367473447029398463050834647059956387814383917701769796134771889914273211745229057336297277110612159565739902339997438786079569096957771672034508848711283092480258314628479880607331760854916272031588693476874740287816115205421704460425000514180814462233245346285423918971205595290864215804253234519336748656546007237032700478230738981903609037455148834175435485900755802548354817577680529282622088451537530262583256211512271700418562601802742657095692964118549648874582821665816370349513369695857379686724023112403901435043589388995246236461596671438151242615368253178501269453295988763802086217387098804588316096727331071779995832792571429262252460844520886391373954833060006016836925808058358034688082075384069417564455828747054009703252537174930041427955528748079784695399558731304790726775906894892790506276666126809864681642028309870445503860490002319699776789518488282036298330050771636284712994869107590838023289523795680891613874703259598945098743059870711157119772873800771169939929927720126139457098778249176463378617374652072436724569649273093861738661710233616996842755559343193027683883790067323734903290430426596023311317754141781244025127571676620493051286877594374110858052887150971556716930213186428491022369194475416479345987884171855456309487992707045351232997589779113854661506268624308930001641111476546230116827559124592315970325757441733361775369321546028568769625439341864792947555353215534899490673783786637884311999214993707726046942888516457346468102102312711307976884401399598804791860116020557991289780836271585707212347348635350954400781049863215699267375667826159890799736613841063641894615121561549044904121994802145720291503271912753980057271018511769115731226401366127122148258586037282251161023117708534393710658514534883874620135419872872126411040668769723811344249931351989247995737191860644081662261668671568568194505470263338491567660906031615572051025343101892864759517553167871353235437654571185671527517537840843481900859112032730208628219771066958556543705640299376216198973013900127722477190872316486824002270577187321697113527352628709171801908964169611050953617052612996589581365687525739579445613099448468141450991793073971621780178616295634505593925046106962092857840820223953961246899339237315240602994722804458920264708980005671026344562788270330221533909250039614768619225506128401526070404083661656972035084084805458715868939948865496294900198367640167234365999526007410745656637768516872446587043557364608634886436474264693026993823972757253110010143890489787814401991933327382830006343984828828100578292900282663399480000445164644218009426012913941511882262790246611111495696877673819918252985714017142386385914832906928991290314145299190722178960760148615882584084034109348232227338389961926937240092248427063539215507670252511199023489749741201539954323972532584816417013548325775627058444821327138466046006195750410166280468504977567371012700148541535837550013795988524942548904594218985988602523795622118044233631218636416076909815499551143083847812536496628329734437684349017907900968803421695281595736817784896585979372822613150682524728889807928096124941541489666577562406580880186245127026632268651483640206416155796095347658693279787569677304372316141039341105431091904824348369872124047352793504940439742274030401073392648218860073062080166752476027508693074502946048451101807546001263817315852100639618753943401146950071504599371689507905344660049148936518334041983647514345638717772370202255105286489959015439501226563099782236562734118113019253918430089666505526304189250767853023344115984154755026769499910740683410254565693510993652199483804377812097688381882397500914320682502345303913600767906396037345200081119954497062748033389761589500461764888628475492624645815072628388741711138306122014492775595526761141387923642234871156329564028514176960191413136050463407293734445673847741207210620363070874478976491903918655952699904393121650125427784630006958584023229249644871837321538395053257066470660382038381091436905869400547668775850456141031629951582583315703897297646952261947849960145516950982132312746068529659326675507181564404199569072556258711853007272641184011075029836613018026978890641150740385316301870572908477963185143413139192135848340311992895376957411599362903546480374603826280096610722621738288282808890409073053561533097824351571745669608683803680705334228497027587872541357547518256711792420095053689975521980124681940699476233203615353110772447967727044120934581243404263936817971684777052403191086485088804373380676517752666639601090723951630818184418282950673853464066891546121384535017127685551133934209320518926162932672325626292843681485592635932222886708276088901718923305718227308213197329223502967177985878839081981170513831590371144709295158476021632890316643987610563429577124164904758856476503428987691779642912003732197363418553203644459240004608660094731291264077503055382695288453335259959705898555986844675547002931227569832333493479562153295198719108675491319500636603327594627602422617837880800166619426716653894185374909842742004847980052527407811253122575437764061481204806067451704858246711832975526249344707324644762242961950857165368344511404673093153049705604026951446414427695105375377506551330778705372004349791324793484913271997496101188525363148582382156990184350743073358847577928605516062530559721686660950320397004873303900724374457287048008812689745075676727898954944785722317218131255390322003391354886000620979214124308282845219890326520126096790492592549428714356881796813815030715750390315873656963326643204117014329134559909019098581064203621286562031364143138540427591809900982462730490320852406583858349895889989589043376492233274125384285552399426487598958255760449650990529694221001554492960374733584635436340488303008679053669977751268875317594106824908185420614627665155781921213105023962647028458638755524560357250090380199344120284419868139581208704554456879703691712432514684846219972829288402154602137896403842149331966400915749696956885364780096306898605622125169666500047453872916859149023678407548634072952633976317536577692873244346234298157001549836005252724071625454222439840527651291379482727517593994198951482965454133672794753622578690976966446310555014026470316761679714875795245348998919209777465437263776364234521292396531607633426261174378185849353084200779897546321318947601352738170228694382898332697944598401212473373391875510026346168512322341463040647520960643072854041954810107909314027996780647186522745989673629091322946481410285103999182708299236489920290724479157411748691962144279745961619296209511827258965371433654285998110442913270479364222215111770986865327426081859410322116513222043506257932645213726985086689270552872740888488587036548207755711804921727069706887187622681353269698394203529323089892086298222947265206046618741805867693957618072661706427556694094633914583885546340213798024807240217119165557326147766228831849849800599567411749071322520738425378611524123711235748240349550226684548388466884983144145080660970698030166060450367254093716905117201618532666158366568644240894001757785953357204029212275428234044674083139059881136278111499330576339240952227256244913616729252676836861569789222378840318147370903076379255424424726020312409591328192690814828881675034692616639667267912593963013859274912995737853354657101378806525551373810371227077819313524726412976473233031314461654980470426953488741187073884458965752852902494426127443245909437151751551551478255897533704276563955248606530173486419227968403875655381576934127591168343250029294566260578421417530193151537432651084015096936446160069933790876079377261874501839109489627005433034589366488107438412513903377940352411445388066311995403452139337782652168044487398033003592895595897126674162690169211579254016485699982573572352565347517665135265520413279185096494774895553021869276996169615190651028306928528264208276632764532375811013252616000863255154970807947385607686542575183848909050232698502388990946876476136613589054352969254633029987191977166294527001579063070490669290921530061261198566295996188575650668284744273418300325819619665519349278824622787222106513074136261151978476928493672083875879149951583218700839911119952061478412230061632673429711174828346836600854427130008981316225102438954577907917734818849597753399190613308855230575764268680341447664874968898316683316731353400894643229132686212316768047912477614290712775320795060495445410528952815979004196940812852031439545391792691479778175560654278863043730552859666480148986961304671951675245642516372290346491089789513140377523898290965308874377981807067785268842850076048560396660838063608491328186934458313470613452212059937229218199809211467055690340346306395273397909772251236305738692407385170311786107594005012829341059509792730371300845588964543043835815652737690287820847908279898036816430530159082403504294934551445828466538083939422468363063838343866731848960131135405481258804518803451869812407561203835684266595137282160008648059420648748058383632830998407932652840873150156843130451368224050379756253545164872813127665052786847773003984243845507463615663359001539410691622824285454362904568284703535284088036635771753706880789323245305830496461843724333412397943058818764093793064872923580262139272578482185610634313309199299847553801726485457445764663332284303281232763956647893342977857576327765005818066850298836311031455146126152974740152424036682547547146118836156394575054775802670049410476399244238405529020768206157377298521879489845125967456684804574895123330386664711230694055982900893974627541799991126254836440526104232955504498174520370787324147041759219524669490978466944291157318829180089082817903120775585260420699416845423670938879033364742581613885927335858034593810331667048779577878135280134095035273712499381674609572104975295805187709373135379676546792887961367143811969053799880901482538418614504531052259501908522257133077827812600506282048793012528939922022301676394932857274370422320370926631752948642311007709224651434540624678914522556693258673538207361992824800054161343406315354262610383707556010826331478686687269493575492312144795815150125491348475173334801855952506542043418245846952771001607927828531946027179025288934100384258962393240519805192464311189348563906090412737218684343597120203400407199465425418550185153265988887762554611550043884391373278182264217211095308906892877003090410039977382201852334424575744792425757888370329772926772112277811070283699133490934894207808009222835344194049270299686160250576024092066173078705260370757089125208851938810959250778704180497140052226470845459592099746420503083165451293274308079056058899179968118300402176068704185360497367008490660814671270200402017185578701049483859177979384223540301503813369880918709096716665153254018331280871112845593329928379070078553380306427113435926773142321040362785085141579696782939773897195547063392930629055153400066514426290216688278087490352012680502058929365873740758076280555479864471859934517831386419994606849361015897234954546978047614496794347696265138577806319750732262831798845291114116702900429136196820260223415555325878138856151173568298239987855672785552033613326091930507743193399678609162170096092997777293956431877908722842799348239738758684145278753130913496652642310867156868769845600985995947095936919437252605240659749871817815817973483274703895905730282625484730602567998693096157397555446954266312290233210109498626647933277678182405400097466024858617810924734505947774434780189190436000227270656622362608602748488908370124254536932940265380284525650835606895783384179537948570309459174198001562766191329665727431048923144465312266016357030106110225656841944754375419155979725557640627999105842381035473648330720931997725662826921316307514525087075203935610094763680161599271482725970564146405110669262216798486734228196514227158597461751245582293643067055697859457291517089220105375133609769442272470234090423926111151605025427689012857982621251003983964328832764079396454754775504521795525714867101098168815846214150241153999199749501414216051744628554435664367128780274288087019287894025975114101597459642897224212500318686544075022771572595594325004026761262386482383326669162879173483580515712248733862386726386210776148898773827610603100773904910561943900839813232219359823082715975451740929449184029000453494398372839967439759593831565790801370853538190837125954856700827007547038656002390937812265415470963083618024950381851346294377336214827952124612070487873292620840125918855155001753250116736664605731646444954688007680120154441096095358489066497143676148026088187939497782922984487377486692742571003492887757749644891481491952093944971057225074824476458244630769408836978792421070212331822703079160644274612149061721505332273127825873992317030349667975441869564667428112006920583939601704418448403146864272256304947677547661658498622154722508360384182430716512654795897522498734845679753485661463052545625780956739965117809840223353206557849506700824071768920003456358823601631416402203254451449102344323817095260600316018137704669845496141597796051356707495431362058118517324386489158260739427584628019042456621486530588475571321239813532039963488200998827460197900504638272558456687611499735909355087402645502458520868711728296219806769015877176265749027778314347016397614661465142575353076865166468733604732547600751542195517705694989284080469775757826300359807137617540145922977707523038314351537076347055958325155118551208939035308752812868206941768939436350232131052252036114552923873972483871032075866592073652910949620166739648194443443314698396041328441134545179569157297007644119831786880876285619086158577831706212834047200601970720627362937879291073906510414934221462054214450300674011147856800922550499629077043624150858298940858483185532758089029051296594801691960617764452290235446376591326412724455629391399570430103638110110641216504181528629271066278340570589572058968185833428602570044044918083888214422693233231680402135525152337861324537132438485124487180263546015417006932793614197087680358566858333293183908111036316823182043783047140360419555491977675567311444856620662258795272222503300948512594825594517766627078348573561254718951007211610607168452597698931228205767073308390975166092957360053967645327077099721070751000013622366426056272346727210106794167836030126276463579255203775866624683342147497054137172195409998937481427780678405114900712296267311722659532870377447444355916642750880409204731001233905767645027599126978995703717159184402607414585465319915744033548896502062686545732935375646067643404852731426540287985815630029735245002979903159278333146091779381857839039247582246414436309612871736254870082405938162294107914655956669868549539960804716784695501700813889442436977849167611609735383693543114626048878775327821472090908582089394404228933745529117306188510065151877651182029345340222237071971854641381838654023775346879324629537733921690692812531273175502068005717725935881411990922846004678007624810526959497810012776580977239389272589371722972584731379699102360805188853172841270090510281910406038776246672687383902585697690761464290220643567948545286164781175115056594381132870064907884607186444954580443363963189348240919758971208297592775197500052479643774084323065546673094772784085088780967756975008419637124449358048944535372017484921146915813719942782602393707667634173293224131471301650340734311268842701441660669926147659819270583625545118868988487958689526052154000308119020587607883833007364840210591349703898106723793365088807581385644055574793331247414519997198086686412021528991751786059259893027399956786397064768401307974635600056585597881418681850142754436681193739583382510733151682840735702754801047615495290413919927321898866716097523445839910354753054347307676469154819842716750919269733152899937471996451016589547823702638103444358694919967963493957299386398668201549832668415237725483912094506312194789353788123971584547024061573350470708859546063595876328946594453085501952794451033431393466467709691939091870196400062207233050939365261592146816878398188012420873319566896964786605848895139310075275845494416993189405997373938167746459897974510810342654848839505061979215767306559084984665841606472553770485416674893458841148718719468061866915670230209272792777135966781908564681562285265954684814713816972880693660413584522622561457794183255816680876384549643226634393334877132178909331228511816736845814246112614927329655082387844692985349538052444474781348857017333842275774478829942939027004587222663069499340872238841328584361325273577485972994994078833308975418819102791964784915017094503922302871541235670751176687395572400595377920136898571978349117164527121073074189126671257532454034393220365157023781076064874561682279009414168809350664043173305725981138767255018648892625915712437772004123541682459308618707021762761406511057861372089322109299801351094802550471125299557728025001382585915243506664970760710928287725014103097172128465055312790365629080498712917058384681092801295039108912731145194760558556331087371393694243081178523509213942727235759668655082562410314564473359290722984948083369554636789885574963270996434152265449766260267805445200204986872269478329949366278003040453242258945041946841729277399666685734432101659165602814301124061148372654584480981205685983313307234210532572474179676943448081876141205196528804908219144696041453490276629096375862342835207364460063333726432183438254210913717288937099271152821888486115765964827181359597676542300498399792899901616350726105001033031268885525954925018748883696427357650227427671325281394778657934956587832591220955209896274096431485380703713958253059233986132215744495303715753808883191895742522094715394988942727383012776421475336735663799873710640345601677788074105806028682976011460456910509214102290269900014298863593688896608618995935493666105905342020049330847893842483624086013564685802134274563789628862350395723350107513409495329747978350004043930297982146045792969112477913355468070562235718676246130230568603855944332883145018280250571836471673978329081879058888828298827414237132019107335823564235917894148891710349562260882937838714168311536739575182955580142207973599783429700222537318709039059680722836320551071900291828101738027165214103448638216476549801094905613488005123225825126630198546783714006685075392665651915911329986746361252775849953580202993079887715981460468669621708992868435609931584290979047426825276849973672978284030745888937776171669029704601865573021917985251172929862674681545028795639832711416048844932419018976756271066828038495733300924062717337395081690883362312154207835679880596978753419049952510545328870306337933324923257200098362920084923539137210936647236268106610460862159722937868995161419851830572551079313666334278190528010332263654338122437739890841903031829958230180891399028081985751285419717206197409148717196860893360046050133556156299645836546161608639910115251808868084016733145132067523738878684491076446950070219541437381336621156683600801634518676348262704669955700110271575970276366010787858615607686939741831439173980841729210537828905361930743010861515004215983204197854550549459050953532814259682061181498584593119022357063340791254956028061414350806209249375189294001369765794505806276243684226693197368175333334960462731385513805353416676433430119638617224411972178870881826174303559001043127053317155179831825506594226944937461782435402576219134687361665229552427663219797354855043400173335721174050492351233806597842131819217745182652818890329019989333411495313770784233309205834526019338715931609288013550149783640113468134688765054236471775926950542371522047200842266817352167666265848443464442178997244458583981000285182175272768942301256495626996019920281980822713012497060913894387084028193955881185033257218688947993456532020006711857861946844535213067744564334590866708608507025663648615721955303340404368061400728442713426095998942228687247894453869411270676220603986556468626771925484552036443989990553000510552282300946964556352125776453354652663626086059343781079794960151081942926314471241221819203052187823036994127516666421630285183822635281725108047919084146825001271007449535368248798174631730029037425370398426890898165449615146383731701111107972347852502460157584459534121777033062759702705131513898508721672381562918896931890243196104793448700903335791943835941512761253246328924056489760214964663480411970225550393197968680779874559964978290820376186391001004659018143240983182021467422897767426792656174284948078283839325714963653262796808848367686994426792654561143685846043277221863398813615019034865968078727508328115514514917009702018099504814962515906697873650797688302439564466809947528209190989186722347788995211604999800618869901204206538942677532332580345799868345259752939383990028737803387927984808916850767581167954835720411187263900969263641812983924494351059874834772853187575190942980232669857860676877978630190842977881641900790552109098881128181931242796442573245513150453057516539401718435161638176462718410774023895234409591160221498168547410040225163106530810013555195308505304373130483509245038771730751817015910582497091663169360623686084160259010879643236682503812161123852349259145501655707089445144806183519922748813178296856152946407281692492237257713394544988982740541924337934364621230534686427250136549037551923938242807568749054745551525367955746902121370696965790328725825033070135351690668327472720828085636129596616636207815978279313087043907505714098763661944696559316709194150501029636917038114138017320485236977959600040021983358629259844109420465236278389186503388313401205074539684077100901365409876727333242224420525751017338450651731915778376824489509309253118729389235327211264768337655046546911892914014948222700325853024770504585995660395938044120548104147676657366767008448939628395744717465047546949717327776710629436804448963715471954223770249153125532371468948627659350509304435398389536986148544549343188025293208725089461616668480061186170691577528901699248432208093858425318335791319798602584044287887938379077684907527541445855293795946989315179005585871309631915400789617223500052273390550029667487015110976195569596527257790432914327873440403978798069259004355296722590022939416330118668761661495206303621549947842757819639611060451365292923723587186330461936365222031512883816683556138758920798721250468464091205934472856126626401898483299654905131715049991744492117200756918918280992407938254529265111018302365761458386145630606125172287804971672116092505600764924877574333598110260981988995856851940256429820703651293791889136438242320547812382653320542725131513336293202563152621001035557931763250383610458323822057766480279478578053454438108740695148267458756638823590883408194214531550645929032241188832277623237986440615735816176297033950153062483889513573663233293587824925275745637561468385400405708339942856326046510393007326286949221610717882805298763384146105768949167232834706095776317583650342053375806145244059371639734768439025498544145108050492917338049014196925995754192163073683636854959860682173109677390685208141059982613739914012739795092029216432341133513211392992406471905920032265601121483314007508169182494572471148501874253796466790866182294960228953858427458752532916508884504966689810429024218500215556165148338429537624203893761992756213725165263560647671664009486400039107665244083954501732500185091571907628513083703577710682967729427942837486582161149734614417905268042518162946471069315158150068527121416092123834830101655431785234622607339194841931588184478422675292750668476060335728642451393880744845716164086385562745033237169478094427432394456166510666935370123280012565378681262725372755073852292341758248939515573697215228700318453237425780430687423166252103729334057067596282812215340593598748700694754130386422093749589691250344381712057659906913969904646352147909406361256772280789844500956496668142321938064823816011392716287228877149818920368023162197592018295986696025317166009938705655853860589618291878502055671152610666918578571645714085613319772497040465054258391230653611985863922410056372421118838309967059264948803277051321547253626734663965276897842564559929321147994958816404891043360450047764613981090175360798328467810757676446668716780235738101338889142170289820543541687074007297640052269934756169814163437931366226232600370181042480838881862132097826130336108351104659941000530105228284378209880423326737900118780611550593156619430544823895706948405241940512299568683864583138866797675101375584243397303481521139224786884966414201753165643290415698933191369937789421612255474962731688245459560778564976867906851871806636218168995451412131520257767024943073382009732807400376765988947370668326383589276073036449433344281290199929995544698506087353968323548345791094566578872845072235199309150571313128265615975500185350280696834749819906142011951469438300749285886455324713236972152208680673337675744346160696163251571864141679637277971968210365157854518673760277927681811818054188336691373639405983230753588576385865994237685269747890547966984528635481176826150537946136370078273116857782729162629816450084974572816440364347719995862311329588100736533216662359053497668691896403285152717021697667862065184295250477398421969668641325764136852458050294335746688330879365264185415969209326519488822360636334722438325404850620701450459317716482810542039746140601514953719652599409434997284274547380202529391276834338029404746067225771967271911836896259596970938785931906684477076857887915184679189826884936094457247510698298543817325768966099417988001557899460536358720700975566039865941752631952232376557913986221986766121682334463735662564557287186578490270015947927926552881488758864545243342743765256491585006959773722770616568024511562751469086703707639182873257563328252623956867909971178971106038397409182887601521596261218804768394825139802633968911958273567616121379128688441786612863267367697810345634793911462247440738423846535491196858637598138869267729928757685152441228077166314468989888966205120940049582039344524543689952307805981399531720444479780203445356206929868236129186479300138702494322168423848944498047286334792583848407694073946582192837716681464451124759414659377059247449547087648133630801806225043351254774104585153164711744424903154151186058246512417553111380717596169181884169890577534471958191857386245158976531490596760957150777538982252631378241271800768832664692779960538936317821644198192002397236968987459437125769176222302680918466203778023653306769381510470800561556758499207955381684099195080999859566343475992828908107797900365672813098216270097606438046023968178561252987543934052648304129311968916951468336541775782456018858288711794213330791011011080062216472396968204671932043875935119948790024077199585036759650937193924741257045701924181632738883839638775626442169359832218035375842994500509292176324141338447060586041616339329133284394342764080357284532836270116720191196157714107090019484733028570250851900567950738826461173405958323021502346736382687804663240001729150765544174421929145779311441150167145096772397881444875918237117405628695809698565952256896503820808937813882438952408547389593327045670741835621880598372875966512154821695498860909002470592047674987872224601457070509014198940071337938176862622886228287985230729893113500518760992986987846994658319146200327180012401710641555428848803971951751161069622021961398066905803084035831774439424365860323922805804883356273108932926664828810587615417878129330619653575999918514181517849534605510453705782233854562080986137278109090626906506741928201182015119969380661880208706332907761895614667354152402401110142356871870096661693283199494032679844220672507384780711906581336462513929715270328451461555972976026029400383591286681517635312866531667719105679334967585086705030892975594244490513501492021550291529158993689665883675205041298631920576046067937393705367287531512503926936852117871418205237452446701039455742766718116755412888985694263606225670300036137276831026269468210479647137281126913466160142200665778041089879272682840840575119524550777605124800498117402900476716865564672790734167917550255969426106793220050228698994666594336108829131636020682698488659394976055834583221534118862372615642745108796293199828097776726196745562785146583464983946751616387774783052516415043493833562901952603785937848896972359494444670253782188383717062944792676032114804556032135102335712409962860478318669859904094664354136914226150322583714003113415254444609315715212476218846495244484879317626239385465075403345002698530036749964734599419609035217980167166325882669697694285248403867509721415032913723711732282073918227056521229022892208478458126105818753069726809177656686936055160843643692925364306102447492539830987783696840332258463976525405703831113071408894007578720989320539545085131971941209715025211716066118176463005396529736677239518800905937136052678955133998553627624169164020679647986083273267662651653285824545141042169885044582155438945665663591204269415626140088412063158945755313654768211935111943914543481534168614007640899600437688835599028491721208521754141673895259872331117283951585593949880656004555753237945242778764708494369591350269442704607286232086694212462132483526659250466321330075202632485110265551648076067826268661732368244127544904996461128924680471398900289124590728565637731994225136072409518990144819358960217782718356104904750627034503739595321737287650786758738857960370667796327206786695408947346663679353751086405434960065020265607376473356059893813786325925462770509400675275465779858250063158003363942183425159883723859456832174891902410288145513942885155201926888632426769146069843878364660000940726929242070206517089293053777581441064633346026365616941243411579347763141749339044952111238327386283845930717740141951388505266630178815566516253585916253587050839047614493871035595626273622375183405774164584795747129472287298805122364415177542809951560568098481230163403135896691375898177736088853046256395288329132061670810693737236453407990615828183255533619066181437759842086763537932712563913088052875310438412486704394858984255270920817537077293841454434800375261419396472069711229274742518125002008333467871606020243648227566910485511845869567075775138068548080969508564416001664080077646599470679913020264481205061478493328056687042063417189830494209194524471433335820197342770563168540559440266275723508424306609545732016441669176065763053421706822935141713900992886272314624668523257418072019293631634307096106204854842681669246911915421702052416572140195415680249818177302438910101412259375272838750263857064948230970197737914736065592029703008282403144968672293459065464162629333403197113880306742001796253313523761213871013438207655545472238652297564747636484406433940057360808791426047294465420713155808014404421941237434892578842866767210274303998006718677887169185898952387428355902472020894881082155223719476623722119787645633397927532505338769179896661030804756934229776879609100787911039230485481607085262964394222578263965193692458688877064169467352741347045892020918284182703433548615968718009920473957062433993939915991560554713587007831706910980606759470296564921444599895230918106349536755166155083629143889016435775264064883172142536293816457588351062202371678470132011264314432875207807292917350268282022402586438462548221602400581690606433045995500147196680657582674224084220790524700214290753216894198782080537391780765362337917658097288752534187220244059450640859819984041427509868163361289748070199461020176103234050214510856083618965167571157068748831582742990500289044248832683663030245516359002998828772748054826190920508640837659864880920349927513051701167571646531419864744010020170485176949612790692802677332959598881272617726921721594340500232776125927131262773483616224648411557306682580820266512222727378261067373257332190293500819333088360569865215400228553774586695639607955567289131588777043047215819271690305673270844715965382903757660029922287447821450585827783667445432947756014537505523557111643034607490582449364450780383829512945475806040761122937483408420966146069670869046232404374108512849629833146318941063111148009049934955653278408679377128127158484088669415830408863161900703279620860963211181822479603707944177381458170658712554903192429242095557142843482511799781659866143806584282990656857244742515949676053707164359428695549647406688609290244116104455745985864102755052931890542954114099187075135844372277438846503295070538940104260644871671999186978041006672754943087983319029063849247876492394273343111984411602933981458691277180448978112176414895054917496520663386929649731621357619130580977636557358686458668818640888922410913437172331077780790595846992206075786379337841650477777218787151191697701988515240255016300700119408798349828201994306336838104802694298984348163754603813844766035638959448681285584230765592536223253895251586545884888633022633158656900729323398623193315507859263043398261801458434629366839503903168149358858033063873906291601668775291699786975795471818980569634648967473017892390922541198791322754503831609019704058413813098900974905357745178447822046704616081803031509028717234069572723680565006242174474570368585906344495732183989013837220071477265644745846072330351334459468510808206182037616732950224718995042205397701368836220655674439078139803157451242772715759014381030988429480876777079930616357113717924609082129396271600513777450737531584569807343564358650335719782291588328570936389232613409860972966710515607639781999573318606648500740274948156723412392705064275755496389633275127218550086739225918486511209802240028431989793322123441237283652206592477210086621036706840281897644928440080254945840847410680993062845734369803785292763524965066076192706710116464325538227990904816157009824879227739473306917420010696953633038575522090939236494632926948673907576738653836717002211740491099879224996829777321263006230677152038820680129085131936382088647382305270778008463662070626865305551370631610857121635967731975278926299585300827117596763707736984041766686830499069558953245943068835184481969849857019284908415331204168196497935771051915638302580759980440013239048280397197579884699233997170013325421139987747018574909456050936722246350167664143447724213222075794538669858965325579801025881220318379118817941265807804463577966787043815196441067231314935779714945332886017624524855684717892090724811902399353420318289327335319700386587676476918317881286710423065656458985638767810885077228219014294620331013322152501984546815322171477510858697281158760943062070948957345256211160143089833178024108491880123890909615854659711345613907084541816809399386640025175382545863175685092623795571798908619805412180300136640838700714627130640239071973709643078380262930667019335077329741601407051388013343741959719929638731761580114385305843495797528902713122427191779896566292277716921431980866634175064181017296076258702327874486835321011857945970425998006610595876611124398225472491542331853388490804388421383812845652474895168417741982134494231160906379183161906814815355181058669614102670829795563191771912445092236187092696143154546674495567176942424514285658372866440689011201894125171627673028308216630426375226155870710907473504996815823663438612772410567048947304173278402103593247826097603814506966916432798587044925877129766892574724320717617114297014756191883034836799595443350464737942457423716397301233297801859880210175585892886008791225574922577664602750106519963753683327216714539428348558229175267627178168444585994963219629163526799033917506118224612217925130260448048007047340209378065605771471586673517410060932600734725266105472995552000207085094204910101409776828669494250642178704248391149362694480366862285265362188881067821378237623830709054920546916635591647410024825935964433868790695624080622469779599371552302892871305833550816780763452095700098489523637106367355225770830659494587231306118169496296565116304252242365323493492216613859563733113949277949931825400183812004382924893330700613576864652960104900263922084759220927076804760379443823525283578172291947322479697432267381846288415407263576455139846296080092808808871937842375495892197091544288831704091254800499974947773227399328798182674714312933185226177160067799939494496147582016518059801830888787971935089448086639460442148637361359357890548556422659065841894921304813091315942702960914978714798145851989442566981962148651845269134736928054531685782734494882408837227120466742550149415322216780081102450695374451931063850952244914808065377355386237959076313119403296463399941588844430568572599198893167096545485839169344156816094571433077517743974883906903014094776991099552018528558286374267510326302455071521213934520079569887078790170821023168509699809192851440617513321649441552738945158444555270646367292460348421364074792627912897653914769053037156733173230728307492012404826726474002889462998243798768619152703593392566593408921395084624325449739494392125130956577364259790828740622551586976930527541271694514188322056239185611571857264085662978631925931780285579012954433711313684441298970041668257728356453539154390709345525229032960385935241947776514052445457235589608911628938765381843302725405033854425475007829686084613735227086154509479044223746872084357283092536397465871635777249454896498001683113190980762047935497308827407727204664553288004481652569305541357902600405593919270026146307535050819029496456772716847057612011466247650706871296276565006943442081906576623730305232071747070358558559755988865942382134564049124777336164115555192428687380322352718500215863035648581463383056633633756350636476465749211767936364167076381475096375243999675311299029528531925265617511672103247834434919402228688968621585668587979879933709802124509328855259186696004910095855087045643912255381938337393245694885983630935118155614360982687776110392902068230808553096858894259529335324060690706695316561314040283486556198267881163345057969115650275067518759619982398929882101359957843875897353065074475181006901019424225521666595287935864191591486292029664566625484116071793204414849887292546553903423079469352825312028727174911023305944680795844167333307414533229116327324370823689439509616542580672580247549809722738305218991677155853370285188484651751243491178066054976735371785837632511904902251248545901643857023695648696390187405854750894556932673671175380818603793574848668829653213728536944482470748094821889642585739557119538166119410125651344757238784398480336591790831009490056652736426066758623938541610453506949516911821535010471011925627714143694852624280038060276680078366767388473451522785464845370625907121286253778491713338846735733046888134281884155899865101620476478590357416598736040182926735944223044368874509507097213886364505899233777938058892867879102904435279843744882885368127223426708554113572440069319576698158866766936404083962531517556439638513546451134983878328045348056357832030015726028008475834620827006762976879360888277959549294354204451119265118964540370344120225466472479510943447570207563436768775056571702273523051552085926506723688993889201423234910041341908214686785198147917798846006783127721473279211139931486242954702803982833426305883720022857865085237574891768734130028825972801134453080711249860229775216682160698442350795916354709615849859342146971715097152217747103754933739171903393998241077249450062443408652776985384426390577123526591310771924016025550123417253858198628228608592772990514361427180412232271983030522073041948753262469544721063103484599204949793546632073374925483132975976990668505450708720574206514032695785282466933072851783458113518264416122589638400011841891755828548217687487541410827339143967554478695214090177525390840170720798879317868570785845690768208508329073660858323281023621046560491091383664418468872351175989479495177658217093467593061785267314668957191972478134833337856394894470881415990153404555028550586670105859082530132180107642917459668732041270821450192512970182627476426451680345512887172045272190636195033631228256808835523166957295953672173204556048049684327898176050180670873482121548156710774315741669216364018417106498209607550488692556235881691572383671798998516929273806091193377774485413727719268929771326911829715714221387527365659060478113638357511628726881415554896232310059408355640572471899933120987612715996764413965877452271036913000585545856279841459376537875871395151473789484101334742488689893223352444124985853020707897642372335627257186725200494002978782995980698664427927674888128682243141128939833401348684652052335055989344600708298834870756922030052030823563595902766164166446237806455971132727788467130666554903579647591766059436997015928813704109709678285164199587769354424328841516660834554229824912609350446596420252943873867274412301703634748949392180565495539355651919654830557048973729198695678525487917923149682419116845796973079347138058837730088491125780936349030277544590551300345851061472773309229906022494204615646041678373230645637588470053217651680185950757512252702499706816950482035320708068014970681595365605155827930017360159963737027695166010340274873116797179580957463811188595634110978479839034165377365435196893729180255863955434952513275809154645819587892387189994383461734052218246601283471779118476099446225839974450888735955613719300927526651860048663355184525844583825827161215021193847112518716656367573906331907867620526167776537202049190955851284227228144352999855680000614383339724476763772354570362020578305531929375136566571068520300079250992996594717038883053615317010587069773016145865447441535070186954376598039057742623107694382350041736464646263997044178873451066194095053709810174273553223366963554314918279885888993465749518829013255203414698274087367814671210552758695983033618371448706817097265025155231398370203256619047694424455959965660587810119141532961812894773114693914625501662843061377837502816262339893090416883728178494413471344646116620082632444161099385535720327836718283347629508602187193049497158858560879708526370141190678577796485756794177093589514499432703582378609849426476953794085902630164434612898580924103873181677321761634187779643481236337947855364458788178442522616456873101248532066832665800604315689830987107817474199392381003531597660634507222053913453383970703495364265201396075590703871762737082332916666778994831203367810352556293116136803780167371833617406292830531133130889069316900703207958421415215963551489170860036875885490219294640060089185835221756512333363659345059315633043054457961942472307042817365717913379039242018410000329486915804034846581732833630667520939985314436648314896654618297874955945785715673271016167435049733360442751774099544395550782247348786876846825857179066137759926435350750119001976201893190932789995304691759963127560114900441732346598088677082052452477075298609695633610809725471826189130201921617630828709122616500063677841185210693241754500838263913809160036732371489106275061637987308535639720256939333544121857243840008219292354555278807949017228020801499945404122369229150147540515412487956358299114229619717331304876945785315756469614250807040314202205349008327614249206654070179236194099221650126872436736185933062685988408213548463860778530258988810224314488665384034458977592102465763989085010455040871627238987599893383394246501039420521402063736067846524279256416184200549715718710689101797870349909834586665223053418235153497723791868004720928725514289302829171645445737982776791482044504254915639061512901491962581732898860148983620497097864111688436172790274406536558140800751719007439840181947065291301588275248792874403487353537953569665690560421189537166671298664346776858165310326377911386012651317283745192994192335439792999974610879554669362803186174356902480963489771469802796681165952315901589658954123875556065478118106421128043688062463523088028557700386348622197949884679097697114326523109251758837714182079792868808914928872800544844403813053465065163447778225434804170042476589226869730078668372844704485132154546769734263585499316068914979660636042414497623191180464175662189665987982780575041409931786488971722712022218672299500097568028167267096039736291556370256985713573781422741282339958250120124718640263975507505507798930780892978658239855031501149173019261989464587950476231213815084310054891667963329008150654885861943295707010569167716159821567073604412529420346369307216657401854235411279168087490651711695720377619893222893087062989571758164379320831114962122850174990856908885708318547314641535347954761769289635961643942409035710870547760436117995994635538126658069035659630673861106706731824990131141031774055485719608823640629845804972295906306441073477870546741337645216951750540500765949056573031559180216326097599794713594856136728469375153706407970720560706353871326015037161924151332978318337331247043873423834618282540301159120094126109271935952215292077652442707940175143501818836679082566431576298849792496183224636894450028070792348000183002664489423426299734394798259112824322604017053577535243975726801400719816461753316856847443073001150032817815431020968257019390587532196532966790501955943273333861085226253405919017211321372699946515259097008500186919726191007695582687868779580040789267977515675598994664443938981225406023738117400449300046745317034112437822905729051256599449096123411216723352598408754129072782136966171197148780083336657229547274582866575384047482560616898370207027109866250051611838437081029962586045269076722105042440000127850177252505303826158301445024537870377587954979193706100559305750520264204710697816479298483001645563836423740941313200955609701707277962941318339965791577061754109759092946899427258742885707714040338246327951980307439648015106590762324007748676949905097903328924902113023562363542817864379060400002868907303184290452059669565026498883783646964997876404259343233811673479584107518442000131471513817530223670609519279047339922526939062635901372373183746049344029869085910377026965986598093827423217250372990730735420749261920793733521794545356853445842755567623837288218974953644069314325010798132655404340342963944751968874259957293624140492933770452904351510977901798810736632721621661978743814017125589877615996824431027775803039594415665981068360752247626360065115569808571195173396250818996035817943043746584963141649040509081149193662434281068304556980213206752384007123496457987606056940847644553832818074460271051902321606572415061920874737138005239107552604541700823487690767297246915681826574743320655901192486023161676258788234300863124057581357521412534622333561235829647029392830594774176730114511897581514674065931631210551769362228550798599878402412367277025857236745497577008821027780140917746219331209265886765538036017612973885857183045590832280146951041539298400385774884295628461750413179519688525381286571568599857784567722869927717465408787697320392936300110900364218599779385742445694918963597911461398842870388130652442345247531067248316526710264027787901415751370811288405273398059511744234030195612334434135728946091694209999701971816306240149633709137167965081874880511951930368561907983155294890266881545389086831388641042138656656663932379049971089310401687741148153358346685554812183714902787136593270378866200588891701429224247511503187601819314254870987948701960117501959262551043429574870223721428393709134601750301065680895259688539483007731468695895755835800909417223724077127784276378449534481897829945720754248346394489594331274846773129604221075106676277364344268586057639816217183972610908236832904787164639841665760841749958748342567161764501439523161087971052228339307545763844361139676758714062249609101960138033252676389268648163918618648611301162589148464946424458357761641913462737326713448258274610645305858563803428806981134038750543903639276638774214877498960813967370433618552372965080307698797311925365241374847487895290624490735893407013078341517264031529003577459063192737024165674752119455171976287150762694965961272024525056108608107421106323853158139346279074786548712655908414377549572409597092220148405860569902526056560882235399914631478039835735616064721017821936850680999009937378098133683399709992782002083454846308901001526038699800515478638086864372237992700737415796669160532860014736733939744148260396492211744645343110662257495610566402775444647058413093203368893884453028250458453347553237439060950629389010326296540178104717426457176693845142969055457611135503276367091046605599141231507329843662647028845659956829812188254867818628690292495900629568193562251767292475967152117634718680121709165252315497871061594943205220023707740410862604526459527069784343679295231117530203674922245130001008117339302579953558494794115956102006502802798168713816606221652313018185335987382457743835646188690565652935652210146141722877411836323526190992951412147231156112096035522074816513605927383981672138604658282478958242306686233101328000460499708054987554232075522960867422435198814722225216846284112953455835768495606364542740644822609859429068898214075279047517073573684904397182700762467206783508097682386867663456893511690606070575718259746174571459774426863764194894140574895113521914006522121550779957036540655719194870275238727727191920488308376845990550252679252320405573595418402698382991911101237171664290074511960378524566166475265579630543566464802499464248056906276214472839891528316438767680689276908516410828708317962992994945331715665746835550938460935853398652746272591542980406949752699741325052862837330190091938753585926338621343009111468838006979809234214287178246125932961875383138067124173825629560506368426367885425519186301355263787175588210836188689088932397219970725548870004437659682012876415329467745754285877285916590733596097600487358761812696594717306514932440148384969088083662850398819483319194202958913608272693823707416277079110779609947555751412030949899578321667621472159272933776800659436548371439407703447928925303158713409072132005034120967210498312717380484504926559537609080775045744664423614392942276349934696321968142958479407796571740273309066323011794622965195522219569462016089755145544145006088194155646292358130946153447014706181291233372450114113559752958842368503188618370309377015456057147704671411709901887321306315664722606934685773900554805554112652491444776559216333419240390806852352344963956552264791672659744047336869882488878317485594459672339210338282287589234406822064441608317284050092799894966396929815492445409496482403669085074466532326973589140874796945912008205236142007963645086770657842131936448512881023271886281167605806085954474804791478894500440896588540569142977641779379357298591002559002993150972349568918938971014372318945163600207999379719298188032100058103853022645843054329822565035178149065754265769610933627632368111505995401808784969763428239729381781242565586547545197039588078991872397928314110223458555193535235702031927838364854001580342633089542250683053366085151511850817277323274653082114953142452132205814568972188192096099007800995822264479931768172385986941675212948934256342193831823838491218321267578514617827894869160326909289889996272693366363555726912975244865436827957881248099172339347292150532663498728360486262712452457112334423095019578542086579959946534141311642529651194962041664365981987058394243417426717459238149727585332158051199647248183773989524662114508308958522499025490183132488237932421945790867611739887619771309445604350717531657234986247325956560683604630724014437471781943643645477019240160851777996015728317341962244656555162171280175904202156362838432285000429651908419457576547572013438525485038080673714246525603767676221783888387975369044481385748215303722635106962273413052022674924450899946903493233153304753020420230609590436636663684261666412604056105455544612588900160265315052937635014844365289896432605463068643190300631189335848742772521683031729181223795987874980434550341180219633571900299018114366124512520478461911942230519035288237142030683704319906172795982006023720873910877848171493768087479148676902928657896868136998764855280149703628863457429970184641014592500437831161479213996790281698404239677592454369278855708949132343969031446785423253810552067927817185702436229650736354832571668495588035410050006179367897679703082544386164131797679078105708171009818315182416209364809640367024104726731065108266216111277028581179139161568600782025501568057366967949705984380435331363428527104135796277950405851507332035669986686009890255072545028645436639347448618921917260925165026153775354614457796946477943764056780422615766874106342472232757419704164172105480465219574975952105325366831528016044074025688873485748900276862283016378191027652279151058319868123778628924288153998461789278200733450473724182424745749587724065418025465843116973082117174655036620573709080758620681164885557310229484712301515126078796554943705054526639178982545335171428272886336671029703108597378555049429944458216007619469947614993473490250945237219857704762753550231293411766226155811837129362173219205317045590653381264761665839510834298686337052455488468696383875667602577975718017061083225718084814504852859304274126229171236107786988360926636888270936591751930715843082624995809278220824444957085229091952768694598724781779569210274891980260147930243409888442425839038004287547916904575421722662949305564349485933802040983603053429536415205159448405779272670256949989087907600674303685072093734361040856492272548230534535605563032909928268353105160790430548348846447906752953640729373556647145175333774067206417974871336451772944900379146879485707096132174258270428208319113579819352059767286407304794080986538444541180182894692051788669155178296055321757452986984336659569640289763099917557860312804045335144696329116384826217901828197232041869546344943902467105170894862643038509499376789798209445762155444085878028979816640563526362049964722610469157182815354914307564791186387315864875670445884345397874487664822244209290683512294012827554776538574259955918208724077392571312587425934039188469342699405656747630708317094674387611365252314059354957039474716183457304014086046297311025744502792365596632399040699973592935383300561490644269323702693858995391509850743772921979419577108059699578190601086340307158793962141745099936387186111223050522660047157363701966077155500563283891311251310838853544469318058260094176879300407026822172491091291954832386272493285582728665571815623255583669596923239873554585701172799570282535573792304515585351423854664395357316900358951086633425859818840107518192238358347067362878394737328269171261110912169652008419450843001891484558234804289478036816198955857604732445916197523622731295037252686744544110201523847795544754525413124177600509981061237229050624543416878314389780008359254751445859168332732346452881553130796076364157853206187171571215225218201026761787133955187729501404798785265505067976400630287676705050795442024055674197284917931456149522518070167975170667452105056814458636273078812414088408402955261193228904772749621083454525360908856886703246920272288481297980274136410070806386673105615224191901423552658641847215832654518775121806991325114736726876091982196299478678926261211868725949446621687267166507009576879029541796892045241951075455661070684495316807586323901875765900677718615694304142232297973540677018122627214584629269629543205476952558853616292181957833763078417692824582066831805497677925693711958814394915315665025151926657998426542024764223061615269849322230788948408496312878076083776932589727275700500975476582022218953675728174539125794701538763305374742165876068872549884118930913558628769387908561119826526690378766129448201170397949678756342698334293829267456337711888040545026480713122497025551514624732804001588585988174884933333582520304222877655185259660641821420293113198456386246124775132381907010310922180645331871418810697527489262992806960934344450990455786027424625929615243402220954070290319119412828794952345617955362741848967005922631686461445302732673777082735431347300971728743141121340318926957184655989522747867849658956644260591326594005214176864485086177184300667410558123621168265590438143288091841517184841515203078885226549566354949916511825693364530087048780114212805018736509095489060756227150088072151264750622554242882289329902068866400790257215284346228409820485569728468445986189558941492279114035732654995208929274290825935520124324180958851534668936133626885329132091469043648731153223701755245756075013056596725522513150527862422769114641613619370950040516387215171086031478071367932265122121073366381463712182126445146934128048330282228075995695742860734450239417411262337102145000613298013065905545549559660430130177225861433251691180950568829426201258736163786705534415600703931935987341410028326793615560663899154475316345370498775797692779415099706962628611008914749112840074757312227726125783382553883726308799084763619033230785719006179093381147997359696622417481202555917660379619844747359068136602609424965086566086558295721675429892597207252310280562693895078906107033063717269910021258901527604532412001090604420044396787385261635799337592068151872028929335638921972478224868468328174675685689551125397807485676282422648252335806816479688898638245517526053241069686746222326739916178705184567442108921755626577166949102901229122768088393327149880604293654311715234428744814251736017865055947804937398004877894495690402093784329535729422781489598740109531918850681415127539209494539454082784912213261019592452645185570698249982827193587650966104722194406384679691098843473167634996221674085423304030736333926123169515983322676318713016346638230077974878689354484617105268803466135942756092211739351722592316261499590343240481955802440813440152671460716364393765117302197511917902639479743171330212992109201697647760881878204498526525881873235587580024801444895641355798246628471787474223248048957854313257746797650586005828964599850930904959455659256504582892003918174786853068247950218559346387462812402364345912698009519674457799722287194398833499700656524550349241198465838883219904033288950039856348040327111330876683972843579405919538042088858042183933951669883186086112423350851305836885418569966012519676989224721854317077033991279822283373888582121254793997080063984967553473520047234037732548042808835375260377427410664800453474893492424120753291259608909510637324851994704296806286946550398479656552785927149353523293281272084728870781916061360272811017261761055235380589491078988644614098651352693211211413784639435921846842538145715878590341578005869502307279394443759791782639823683511687160591354906148112411628865426450381342429349677278783636517033895824019514095194131906077610193127347844012229113281553113493720723900254243934250880768548440155115091255713879936806633572342178663079693475746537764955517364545489820089344579917924273458326835215310629354112385234075183754309796762112466635717184295281892130406321690024457861076117420534900411868848873392153108688006856001019321345008200876762494068947739811715039131931115673663270865248095117190116694904097103604032318646466606216962398455717079861524950172982633392944040745497579063309127036206309564317527005241412630909373522768345881341172349424989531404339231257559034792636317418269593826707173681241922834006369357968331550087009721646578015388215983855298468913758822572655997188042792037270578276751021782479501850657049030704456210436510172303703326791184974617678537199457608306331398855057352351279371906925960177858684503603727119778957250886889964024603012074531638157882929835565194459739429556105610299178630819420859774209571882013765063050449869168598950998497306652367382161523421143641631423002298960536072085493770718692978568217898464298374443585320301905636549974037092965807344088875198670646367392612387839082424786344278944850620267714832904621792584970535692693891669894238885579846382167611140765524685178198450781232906434895949727861962559097052050260696467114214822856030597204894588939465637590563298074484044736837785813894246770546587346651048039101172408799094545626905683069339428280019062243103277551664383467473304716421485987582654832621576974415791866763865410782950841249629151197923652642932606383585947669603925906756651798261694499038310680355780130648921914999696934068893217811200436020890116705826111189245516222698285016282782833492017304256191328103227369768979065863177013049656844430161215214429073744206803601566177604566638020811055234044156324505538904130641068321885020440432598844498650583762068797522445407576147355863813039688051846331004932432081897912749106124900577933051302824045665608379937436973487554830725825491652085933382020864773637210245629774690058814873998530596602126243595308648673676210714945760821797113406784297162797297037238156103755223422047700624417170639445584878620087046414446029004094826033344432437060706272140487382834533168896590194339966995127005474617567917395501476367686450485296764865817544238517022017882537390760850015963097225962235403982360491715141489901384032006347799486991684715704880912902849444153927165726631886513927633093260059238088692263136090558765823222476343646166961547986180227195023793076824149509334300930386318512019053348009451775174408858747349242447291959832713065933445557124678203856285612381061511787722200740500194002696684337502284899031255038278800851924795789331679173366271114388247310823039349987580859251102614496924430634167035406136391022241499069215143856974940848656486223697989909619101262466073352960355952235155330595046683331567997544555239120025131753157497973374574959894534077395500719280698836412284148267728628488526907133478477225698544654558686008814083240896829591148820619314565615817042860074355797173872775024614267965852418140933317772737588890478177203228240426365220059617165228950381994432755282735788268841172833960638173018756171123595510735872706108551277944744692441907699277901806254815821946547227542646342040312310860326811940796806045740434721706234790745073616927304720563485790364667720616311396504020524867881356192831484172759255395831398829957505864378375599831778733716322433813130388522534986152752759814516113954540794906501474180142417986903105679778277813639137198290656106556885346973282477467559532618032770268428261638791098876057139387414383174200399634762763062496145087840579623672778370725897474732281531058194802803281154510609866186334797430511954589505600123009113699508459047096539637942991879540537330334614135885292459790838293273046050537356922085357519164477450602319449080819171195899947846726152782344804134482328392050238892790224426778466447265058342886989399681201372008477906132849307591745769428210300780029638046325959192746962973459713551997695774889080053411274923435420192613410999819670101533009897171394780614668359466853323475364629410996626642605908882451789014066015028025197595067166515603632341530676563096353696261683952592982254866047404886387402726881505861003055639942216685078748718862195016488685848106130386024255936802282205066612265743201526123226138386214390479113321617037634443559181188126332979917893223362675958460707681721454063789036591529070219547664756482652684281481946736064397578746231408237821719954441851222486284253268129270032250385824738336742358201716000294041468336175409626715923177335844087714809785192929134175957574818910395933166119793915012041281062800364815350035011361967790614694267176033819882617464324606711170314753937107780040574042075018403675840212358760271118868057094483501052595336483954397630697691768342090174552272896637163402516782544690151210975294955252552209996688242844003306151452899114865104089736859385235307783504883846787041081558104609610133379526745467549118855940229752034420542510354698991406673677623074146258462372179138388344116933663010288144471271958274069551449472717909650970532301720571416582506758948138200576305010973040089870008873827290725349397822159389747440970917736803058487975704965717410355488249744923651067075774877574779477429593772403591029011188993756212629267818289298903391069796872057948036153832206284082848455809201600738198761833400250091703037449788210731651463236524429430205817341484150863619154896184944596022460666217143596739570961265250129436893617329129339854929745446280731504784009310387591095720510494647599413391017182459578353497414843047540734018361728243087702025449218353794083428466570382018750579706751102375885562246439431608136856187932619789920698495991063940321800603540700327387965799489754878268421993509776154081564199082163673489416369479222875624550789312303741467184747347603457222553943543615031078150219326956469027391469147915999222953873761100547113664583175936990558029910323466764648954923206246127436168940489366665891056941081907956735624467981751982756882487361915532188881872379492402530324488860753092862978984019373061767772840274907230443790492206561879637211900316096110329831837561508901039762606816220199921830385787877978292007898153975329975228467190049501202556974535711482731040134917575078624740507828704889969936710224773767726028961704382643528778201639962735105487488022097242413687718173771800634237610821744366321261437689610726556389197521703770695664931153549256254012556061956896954369094280819182434920620054613138014736369520789733253476419118601964100404072122893957253525917548745776588360516135769448750537798039343433216167064778310986774355466328024018770544475218694809913372065037390518111754546277786073396852928115050993461619429170353614333405212813860813619463643721679272640528912764049759314940672448939524752088191824862135792099219074918681845086922776928146309258854807925472878153763646067655519479808448262879947495151974403404432060436189370177169040171435616457144386180103876510350033969322774341227030760974004371389182994328228912383160770397068834899449089638670412266876003231031536629424184505884225651357235925780966858175682362919482948866353917266371510873497452289810473856212886720335526503851482097624074696799579485941061633741595490002879134278168751842678600447474723936806451245696112243885760622139774373162543305658415691277449943371932206822923939021450586553590355496198801321709611802272284325149480425987558305550909303460977896153986287944357217482493987888458422763588414652621413905011738578649004416243691138963335678250026011729575562538442663389191548044189120791561427482118081067801736352673463138008317592504423820452378901516756610682116189020593829542147736142606710930878983456858830941470136436129028976355545886702114009941066398853282180844336505377054709368774256676135918494306292154201915248551419454612827035862341572266097003625543224849790147656733543717263249907606117319922776735090923855577220573999362674296703716655553176547509149236232669031334598160918569323940305476019590480050387955541017018153120254992941017483520820374535542190307837715335202432895832964655512262212724253663038987854068032512508858965496785458236890693609925940084641469961354584100341288234772954827806011095928058709935965796570280435373964973121259263263576561888130796746102146416063948170573275592018436043310230994394004996808512057190501027783753624617317853776461554530966655732170483493593043903299425216538321283664030751024890399069350153762417310817512318131172838555700277181058275383437276231458504640149385870525915320246405552542169169658909199206566241795361973867551432157471468372799417536098537575833797027479247489837697085573760445697035090223996856868705884141586724043644688591570439364306879545819572133706048044980256355840427398290433677562633036302882278586895631733640301859159426676319633105892061447093498990210794888548835088738136154037655245177528507933697358601298587609290386874207806368772934456067164286197443535374492678637296030084270664627275205310052978249571562092313820629534835353555017958997578212264272247077534612595584149038730253034855584036915936689257215905585348781317999634624549220750384752288005418964730961694042241837503596684484728163416929507246780413655999668002395853486166275146647861905408916937382608842890930805720531143520777751448736751833760067522655937887629412042695655048252138937626029717174552549368842086887480666119416115771236939568923664499001695287559368599658826642884181553679239457013413204061828185110014622039961458409867631199975132924249672971463096229974747007548087121906559095444713004328397157783623275305930242859244794761665646902336096765131451894260031624638930200879941149058779687108948731216069999071641558410135924479019184592785099354372479269667960061237868235301072095112698936797101232617978069144910413917353827548316076472539547554622311138650873184513740034100742741312014475128352911265325251386308326101939016458647629656087212804547785196001906142895338211619470179507592361296741817877754573730166154200859112923811349511109769551511696735359957751961397234351757405379911235914347385801993048337200648286426240675707408589607693280250217247390369975122845331531846692073876170930856351279106548179305291831856942912117546067541173250356619984736275053357785746174415629642655886375286128140447713081004100158057350235437383220689938001185126479024050626807828273278229789845503454657445998508102300269138226809209138502907571517394182608864264080343127344769963097755913124921111858169820051005816306728424285269404412082096094595550971458371301249377259693836607273559765808723941102497589184575483682745756127763233249610176095512353450867534843974361956606605747239895957535996571075569324424180164332348916489359789284646150370153913359762184521796947489734878297046388589047121406335817888365687982214686783641435387456645527249126138474768740957106882499628390492719053533486731272744999903454233716444096634800602830414033363447860090293811973135205866169280271444038601526256829852916409656266538514909701124937793378725424281429891943295607091778559453184676919200203746673858310470780380778864835465169397368664706670659875322826844966293496148721717560285135245935871954347935319479812476769822424870501109752425542750479951588312119483861320740693297144074331270590624692192257020953510728376119235335253974866446250511331709752162117375117678724677061261103336754547169218804862740125035918861003390801655416381115451489909416232754503041780415028468797588782293929118326791369419535528744412002839634478298766484659972697938685763199885048146299888078903456974967648774150207028313692427531541134923236370375188102831781106518602367160065012931033520264524572789839867211668690670201162449848839295656642761342511111363777705927884567472095764097965824129968581867380911550789945755592626364710491010353043983049688469363622520641152930613182348464382390122737649217665112123690374323246934045429363391429645563242459814924618172515617915292802976357677314354687814732169253023346269796649011890666686225524611431357221443093402036755800587939346679479175913666729799525746976350389187756466999975306945387018873994027200884067254023392421190622778885839060036008916602783426659142052193912226724063447230874740808022336300943540462881572653116881747501394514222826162754364211796813996867760663470584626786293267541530423544968445469212756391051214185142247712653672764302607995539587034541329107238839995658245132047983793015890712235394764126294677462205994060473512222088727844414021241842285423424950959503646941006402530974028519420888761715353708609108529485661589422832774865615339864422924758251213505915022548873826006223722721035458061937524978473399497403280424790697809084203298872496929017441220888951825819464446566391406193176663625218451259773996658956425713662300810313242617882144108751678194281419559026970169984676835255595346171706072413699185782646994975415696761210974806026487171511907829060711730016151246123869903620450193079987254769254356545687907674326986629283143579424065207816442633265448825865172596698600013400693363814707319887279412118510306484982974807088399067939518920859061510632596797093327509584850276754545719541997703160651221149011286209068705509589611849532528471815849805409078748200415442822791686596594469961832179934465424280329538360769115067347722970682833993524739456324744228661459442044007554735548670870285913007033828993356402029112844898875712738479676055852602627208435367687571899932848598725066135248833240392138006788092629364561782440216132005831357381906214941422287360551660804978433669525123592824734602387175500912740914825852642232774915375663085286134368671518951612433861126358824937262265769975345817333154184011044770882744524150469427879486705371765246317594884865219287245908206780074040703757599246186481366625883554372751308478729628738210329959402161801898777933260414397579541989883084254213074508408084043348838972703304863864712110966684798207295545466800527556515374657691708607669029771800904978570957323769538036243988490590722428924056313941638105470964661229805767499349394865225668312548438997069567085896409078672557110426910077079213237709675028027300998197652673457275013929746059305098400235311774400015659502931404404196821832235137824116836181769169895622322977187230617622664287870437921383224396687390521062887805692734783866884879780201124268810755991170981020036431836619932514219779720380477481084021867101776483268284298468856331283629358183020245342690571152931931674130867743970953793620763463864099950019754429260757091674661278495292141804221845652218997785709686161072726500454981305890615856893181529137010775020917437767115774230091631240386828642910834710511047207260908306665760419090587885797498826894139806788876576003261507320389258435806865398708636980556874292252019494780993168875246395668184711908937087589363919267049702945497846521358127837951003229618589075818124053911402988125793326025614466353080317981692142881711520881243516188134153839248641778755756075490347866168562184482066424358692239380422672682434109420621704495576799514471339164671557380604038644991644431863875913419030529542870134720838860833263147300908885030328875353497753248454842177267814095431146066276936995146612055958867589825709814748641109743467734634959102141838904079904496366250599907151943881811605562493107945175695571981181682692465510766983843088678812185506669404683751617460599456976866183108649926933795532806345619038592918954739568210246238460268418568970642434029613843232898405928972118499830168841577385116037522017327414612716197369250380200568293376568729489634186677410480576315791433387541960552281455855691360333479745102346149924497801096149235837632960490841513914580908320673893480910879298156101434660737345381166992017934376104566035103983794392246506426244728600155975661633075010483552055994054419060072809615656697293761412937609692464177905418664641915287368622346274531463962986074856610792500867725694460456691643538359413229909597848620771247204380298277921371234439889910340079126880906761156056814492942673688227719006222561604383566550924338494052222866871461846237345778115680525888520189718343600967792935711942799180927891905775371273598145384487721867926287593437596400379204771902687366725382703620434367404651782960572724060357142695935446216076888019894760275116906530649945412347962168591524617423293578646578764736962078402983011649857258155025841989614312176132356765774521813134166936424764862817471600546669273967372695913127251393210012614906413174196182797080974328371687921130702244457201247996785558004411446548616562610683649097878852064758862133014420198406198918387617886321495035784052222722162839626556655748547709007807565974926457153446163231511773352057208148956067004618835786732524533533411987904744300100551048349945497811703709565731795619450103544133271016704138981641094397853669919817300168432201967831449240453571532543843593726643638435341412809634784420911862927803869428504091899123421080885404114306867968689291600006218132892436359346374603538103200720957223942755966925848945760912491021052010448671095521309873514445272250091204819456429863002257439412929848575281937769535661184463873652359053388713062081605452728897699189407760757494041080345803109654659734169655443767435845872789354441461276483970324634170227892657514373732979827444808760540758736133121556431382003530037366910412429251017141552528126346791835590956323753096312574621468309459464280612890457844015427207852655814021028832958843645414728185813018535690396156940536042179427703104279804847320528505177917028912406057497615510337377126213168461959495453953720858351859912612048192201774516397488567772587431427151074564144900696077842471798317331748254961022430008259142102164062937256757260672611536300657313916206699030382918586321232883694110029782548079951842932446399821611753410722498269048388204256013639524702704437996189017332237959816646811935830960489354076982941151979085267639181913197335349446742928045786974337763708470512871957625505026115451732025457042137784533275179995052396021721180461262805586499848155602635662794673507640334310207746843593921744314818951105018686984839113873456439423156330828369288534573972388598159752182011666002311566843746703675120651671094597282656554065169596188321121485319835764479379575491437720900271566791187098209773301159506078869210220585288038589035751234497154207094990184663544859112778285932793753352009268429570798158518820245944791432982476517118029262738815200118999431142351450618235591872375242030732082088653550466827415210327048166019912603559090570697540314346056037481835109254309875747789701019674966292940592145090424451998386606814923643192824476557286615602700016352398516059548278104242626891274541524119197632498948685953498082172034003206170697683951767563732150399878861420518651368130756185895696250796071866203546303091058522132048188255799103942317921444298856707868985299567649748917263935159393157948561752905871756981086913804588515109393295802555107047211510308533825296192896691658645957344619981236632266645498492832781561341969661008901639251448383732419722561993058626058179014702371544316176851022247519832559831296429728374442903794450218626607869191718987713406898116434072207046720991765536806354595654714053292801764686613815764532565882504337709544964393326232819598154487125976344358643306129812619985666372281445739311471241492618375337321092279144219476397776993297956856900919644014510993671264255255502532436290022723312302760339239814414705709730883257376634672685787956321829185408797212091345376798849273822122355551971543319164205047320442542195424684397107810108897274637528296701536434560227606975567794052604228082294663370071218407592261584647483232461460166918488708293500923323666570863981090751330175062647769657159862062286605659348663286943383434864416013559690844780022074874560598620852883169613078272873668288994516295979547808178357859101200856206313955906038136398100185378945408531812740083540267544191922254867369328451694292757049341400223575693650061613552755977310333816771740202763915828903082383178363414411820551121317089959974127969282600281915886923910675440778397296668241576386919388507303155782079166164703626944868794578494172124921665171627255437139482072191586864834098528201685490321820077007471912823999726033511976774017866313562438468319228734582144555085492893426630388351995841624937633134211351873829727179238360654140394938187090673675935567109340055277567372913227220319587795786333096737066747427086702447907637697787115171920419150297745277160161417453304956878691736844195570523591108587819628334210040308199510959641454551705467987324916711954199406857058560112327257549911532630183810991583453344695373286525575575762860804579227252466937401996999714780639449679556146115902423119848221929115496779999483892444452342972828245682891829608589511176178145629776651516823940999686906131672065746968079487102592932366038985997882413241460986531573784692046339751843980229915617549835540131770679590382994912634610958923678116068064289699285267701322284854372339251761591522310343218486587593718830622667866167628373649493217655996000497193343735210164519960710157992588432119715175125817937637857338822358344492800790064572081292780545593727288310460553192932369039706944828787278421560111013452943513850825074312500433085381859788992256172907355986825547325409227686041906909272109257533653241790356412520434241893799470669716836999564939047934047389557193665989189767826817136965113767034541668345453861055835891731002866736848557006453165213587556556809421254650048808464396456758769165196084798222349485612510064980362031837255161734639566975651183621267774791473207426177275436175493360230427135808493363578248686364539624825940537844568460584358655386416852870435011311489020078844351932442427747920218059503562649375274769157102503700317805334001607878329962604388238769815507661477412531439916468578537847847613459758216095300674102700823521036749664167745774396772802668281604610569192852354011187039244808659461582069341404813370586733568088089119427004910060274366414674255037298892446498454001817533235696576796036563171783806580931755163200445137060440514068228265080877239282897005313688521813423771915802453553735431436472211354712277973583635421971953487981851457667744210127756307798796856005588648922925513777693294923619066144139351094997520005583314317224711876008097062749838261650694356725830368030529279237188834328636107048460100749427793055514627232780007453583631906949937597658972464781422514408869526102425462234071508028507543429568263136596425555371530749442241957821885800994418639254853859447528486574285634930046500936585688586300691547628540858837248945714032299025983659598364985403543436524970024517168640761873699901762570637465712128322369568231609233875238553119233246814843242766865189969775081075930524317837232189549696002079054674838223886401655778269479056546552150659237977980542331738393493346871149686860469641511476607588559437732841023396424481404321596927282956980459270815113930815574248458659981950484780331062935564070733956104808570068077571198727733400157987879192607006407652110854849418353878934847596512183465907853798858526295840738393882415776565191307086692254687356143041391234926987038965643819836070815733370165874318379860401522699115182622640946371296870452378670514426616578089152051598012608702152592991195209693234219186147766778259325983035093812610123578671852576285897283478964806538205830295610576913064500921079777251125440296575739104270558834052533677188231179714142847649363684721185017165810975740396562724146106377481026192521434654466551625062845728859501769787794874064026792958994227422045987667422188025744327041466350466240709101120399360137218554711540756138156082107310249740874546967222203007642062886356337194345698124563214678266023639717447105538089504072408845786279301517687449132691174271104794128648838186892499405865220297841850176153894951918221293484938697397335384143179723902212341343739242161264553955994168887062505695835034206311699875940612019192448947415455443352187484425669909805044785402610763891830980074188518705248295235035184437129455332902822090775584092863476173558841288881603704329769933983399905139999656644647238496416417555204103990668055203039624948103212071409172223066747411390358639669180967130213880588560050734228243261609066306489320057345825252288482100995118110287187296694716693631830320100194937476739136917028917748802760395114180859178725659509114876365592764503961667428381760144836593727158300577178378974011716092255898708541325308415974265028559336912437957190628307628693309411683212669263989892993111088002896739459489254431819240004134703624738725048780414156826326019589800996524126890824953231105325747137350706672632021032035982130276322869867991310545610831391605075994411066182016399396142447704337086332670027427011916441528753200889907291381700429088948987527556651225796868911131918185895838473885496927230591412878696329244716655224779069187874673619408165644685239659528745574280763273337702637920389245633961765986389964560870726718431791353562962451507806461004971642015472217905989921746512916278169958556105306409793040983894243203194813367430600509564109604145484617239606091801011063070252188154816902949683983950907068253833500179454169346486607029956823441429507182728175250171722903307352598065663217085553775731474039475901854820164006764104888583245660656771345500216081908408424590697670625295276227779346347858980169601175435736973372024590410400162408306068396111764456545042752417600701750158021755783170504875864932235762693039087796279583258749199601262325337534208955833004546202253186262611947524664625808836107581570863222193163900288243022172587131502239084900649564140857638442216683663967386924646690197207000028115051729155701382781932351076325647441022969704069341628659137304222883517402235645362518186638267261474631082796050161656589036085974417522040585227356657023309552864276247759024704857519546494665593495664337040719218220880287337219860958338941730572255203510766978456153853699715600866777354411428584070665304051224771154545367547391502079802052900093518195533505117122529606485405909171582933463674802984023111345298324299703974664296799110548254214538095946116594454510734357466689978490153297058789652548410046627666886888529889829646624759807850947523825965740530226413391620966320839596700614483188180764214961767779487555155093897322091188235009458985141953004005381678055628850006970269180620996368487208050540148030794339659037150953145472447703473289280702204371268176276626309848249335346294445518058103002014330249267735641144928667945344482154776153219873275567661591883352288543983551013852457826930268529732985068278536143623074446383103830952922222876356189720171953182713127095931874561962574559529837213332201693962380454590198642680635068386507679206924255963095947953622408278736698676757173130361238051776878010705790794401577955312154228777501097306456581391208873475172951493708416503125395376417700279347970195389887478163184319841049836487127411324852075449780829197553781826026831246035169648365499989910927338182909258867268029057327552097237331367542289439702931950937388205547457427957774878413694911551333353145204502873210082441623798459508591308551069125054241870912437034733021488844471308736464997255002415077619333449111094217365721999143913960329269928994138431613893611322970154397538179555108171623635289529985081325428500702495319686629669408914737551046020826343667176488003857537690621564430380625883338297736661262789905768473161609527141542556929111291724970606008336571572417161467741345660689661157401703820749250019809623025613401039405856533109689883245616212820054014223196853693958489782337185009194283216110635056021841139453435346600799492475777579790686477237901649019746545942398683608071060792200171146959178320587643455587422956209526038950827593873695380439423508922646655195664129571873716423237309992713505996145891181665356113800951513270968491592341076893235181518143131734419370444443565342423840837451670434719038819917160066772909576266996663532957330083923043510050883083724221914992065896512651276503635544250929258479056329083788901397774685558868926501266205271166984232212788037815563490071946309137303294664358847390703099025618003868619914102252835312242527613380593012273279106372508595264662363457406785332769379001781082993062606043173016647396906786348808441472027628691840049616352231460859221085595352509475506097051427669614108019528882944640069690309133171530924318221373222666052949877108945831416591310323144191769894528295384117449601553955404373990453957103121047060256280308012384408154949706360381929192216755225837407917076101208893788135443497647513313272817119443570482990904222856051139532533473999354229284937514282719568352572688367016360204412561777457560803986379388518111716946254010703584885758107415684038102408718873259088990623370260996467221706379268382587915098829882335307771027296973327627935646848298096648250263004911706060261040370139623718088989224499017495630593797195514940823864351026737295705845898104904741719265985278387162742796963743086359246993992878978104885116282811827557385904099571708615446509303687688217994688960106569337388665142748557022476542032788207266865676972707038082184784789656418671826688211645246648396311874748477805880259229110660012697403891635583126885724175962804493496518104127555422300716981208067795988077965472831784260742981305363404408319776136941520505137072306089286610516706063513850588763416434480923425628279506335143841092585309723547731729505397869639717967757224704274806913479832506468161077946365304188578598498738411619563225499410695853396864918256172899643279707665847376498672925162238249187385828858614092641062970375033658075451588223245862528373352033777285395320896292609961821933778745982008302874833673297301322711468769299561899922400993486040903465482474104074186942081506877836171581977476673617328304052706135965353612944808580154364477541267613202579663735783014293364787222199827380575061663749524576800316617696130465633693330320935459529509121875827157472898331424675811646300103838991318205829531631405934942120191662551325223574693979370090066447930328645554240045398140507335939281724198672067951412166465859961314807768856973898542178441143306436998303073134114743115550526449543377202965947195069446269609376944304235229290739923000702977783302391747901562331019419881030506218325567848718189764997394192380468109993248143748325836607336183743778701641153471461436776863724057616189545534081324735245547201517198624360284502027468688072584254524342707142129279379895006719644682504099062807665406560046835777835280735540939563619932563704511271737245155911823577656669607808560671149627016578200084661339105641924205340234787153281794351865757977344554155275526790439738584948150510313266876187510676140320501990920188992082800513427064441211820323250356740086974688398197551186106283523071335746066054252504202900298058751819659095092180133525382047406251835570377790517939770659745080020149829799227665957635204875342866225339332926299401947383339326913285547879093485247500219582216926360749999064524351529020600145998677106944497767430859910213554994349521316974719173516819042078626848857932944191378457091283709026587173961281572503762282717076175989182858566485825302149801541765487260805616005160217346679898014863255299633507010219424252230789997928055186229337076507255883304542643181585878999128015372948410144525407257271570279669389807713701193188512666849505931873087689132590641699398871397670837816317310480893376985677791791481404992287552372270503018788626490457076603464215822123450430904219936876413230874987427882602573222593765514712553413138995269234676604749933163688348860282366456108326867235231732878790605791172149029138436446621838469902368528900870010128134521532588296446048909350081310511632419400042319053063013992710549588960288552067149855740816953954208212804537035062682807358097875314470030034009771417775959804357007863810301760919529348777961602183364444945879078044125330657936124597460484708680908223540163419166358585336032524546355912529523609391298177107483824705237902396660289666943729804153418415511181685371907079197477190692746093456752431789086484562600372027835288736160348960784798064986004609293224475473234015670245424953219020695845292452278423977218130161198928768614056502735751679300278015192475421479973729563541819486743206493199322316074848395305994699260699518932983987269336857750307142105567896034400335115559303388485214869941687179234272725178510636898833082409993300424362052562929060074253948367588387190704722242946816276901042575412725920756226497175734582998838597803499498738808248447063228003582463963558157409291721466003256019195891063880040839395404487030117371444435558921496590487874216888702731639251667528567645559493831460002431238205928205680165958867763362263695270757493772386612964639154337270090940112856498518859073498227151566915937316396610704860268506964035508383889354994194662240175188531343865630555061119673284109136388380422871434317623683715370609720211588730567323228475424847518224648657860677880970456426092130242844644959800019505844038922734574820244275327872248036700496046266021165529851631711116379634117738831559649260722682040388578159134041609975881342811805564242170943018708235513817247942708672080046495264509661729802266216139307605361204658240966291383965717029140469563995705691442943831862315129568052789942289769521914494150442947990716386130242751774322264064201552409715053732467784089661830606486063922662876769773662310180353145815141625831622243650082723395250048318913328018917750887238408029247685337746807804803103434786995926167213993632164503561142773945193025395869200053475102304232453203930450538761288161942383246526339153568860089024852177195491510473790203835293174867868088028157871479528524315439180184950947483528183334823459159586263475220208848425551014310205972290379601757966172035768745276327999230244757696878894136529167819296694266128566033359635523993267841576129269218999509275992414248613365325353659185763594769310809787767277187720200531332487804986582426225944471086701751927266419176212536127947398272960435258299452557647172175767655273725106471282069923618942010919098193236439210003206989957693497634075496467270324386035443189961391527008228804541578249527692374300340313135323997492584704866151693581837424633796477483218119207624654346855846549815566371857485385913073335312027347510877863566727907284408739784337926244675463879068934181260315870860422330820009506433843718170171893343171418483545499770214705188451838432389408545806908139344595911294368901395903834814762477276269724555646915675017854310156014359243294014389306578386152031683008049388288804804082661634484580358024812302221108362183835347522771742435266232404722215792533156652528262106555986736401415760233125011431425808260567269558957124197775707941310116290032533268171540411530220598714573351796650225445622418198551988757570712790358610396012172182657573204090856585894282530542177632394205775900846748252730143369928961131442837030747585581832920586501199005650158638587283822372604801433330431987672593740733048294371734900129354678196184134157526930923801257573467819990914677411654038712969933362089934290080053931800182785053609753922677729029200328626908326179668954736747659571820139031960474842570321199412106740756286652256358746163143165677802004055055399053314280762242002329871529548766362228489043739997429146706565579713817105063300013189352011538548411701823794806758520640182389088078921232146935324553059234624392801949190584272053005461958075062638918222480160819361439552976864049953240179093364522025972877118466736156570860273809779251006200421650042568696980466358141136917019227786737144693752626927741749967215992596328003447479192246725667398870225775976595856849787382878966064582965258440514405706613759338227927958213363558180820073431415827221922871534398649938627122362694161934547569247259921944456239171437076237922363879468545699535435316073896422353418163824131847222175866310867427700574991484314416407435041192758570828012951065167212153482755193284054344040605961244097324372832308693575751507739770000931916168630585737472284312148083510619602963234570532567682998287920096289868972490512148081513422539663161450015267886824715717260152211071265050327491524399836109114417235402770761327324193029494967093202399472750775863890270327338950844075069298544441124778718348319286980013755515290364614755687314013577095867339245383369252426021625898634980010755018909768194635784943393044558070374911220342176366451982422912439056224413805517203791871064039726073165603943622346224715254575072920852891410984084662778603412966186463705520501710317222797673658303732730848013216498105345863999625788818838921570081600550878271227285583192391665857185750300916503537693731937021795402375706058587577128184892771202741830259891550748945568796332146080805974400691356841938701223638207879515409183893337612257371304683007872842048802891969899938663224161898097929324081571660759362669613975327620682573095237345267746961002445350658650391498841387373536384562495545283879651764811269366193392248340816711683874717968486236470299087194381401884361602271622689352045612659215794115197088215970498692821949407130998444959089494574291840616586418362459522432127765880880321613448512230939543725779177910532691555201313085323906056171332915156925838386655080726353187546039104857395711873216858597710541811904755519584498816028757557388554015149248929047618533189802381400437027393219596098050735208280726112009693071020402233223682353133575499962588223343632943061865914048241569737407953943658975173224166761413786146299135460886609268572857575287823336092789236504181654109800060025279448515889793324792914453913218550972331804766710989002962363688201702879532916011696130918698764714966040229453334665597835527212802829619895578934984204190782657714645188963582502495807801415068760590574019485411067431063568438995029470996403733079116211095426687202247655139867141469154902978595645501337634762486069459737871857447682135127296568615274194151002601609571551662206452643090374027590537666112416838181002903346177785503622909683944457100148829758035552648134283010759947324335857537729468938794229254452245592330018100926098487482588321096967135119468776078510495887377567496999044641671302760449761952048858612454513006724398417923746156751918921228434609347052253981429314992419916025087309057410028939216734614686388391319512008425346304743797057185851025411986022425695066448410398208531612424369183362780664180643379301221720118945157036216047378087406843212087511019183854368712589116086164237020061039739881459867569579542697785248500142773511694034029860913751127479554740670324101138828401346539970141721750932876586667056265974014872166534150194790240102367835319464332327585223045511631170197861716864950031633757854101713671026040867926217481683011029501335410796692111338539706370074050301341481335426885060961309907344365563421337595185841985146484697519981988447933521274104105108156348782576610363074454284878204862366167263093747035570776936058786731916107962529156075552557343674004848443046785917348053650269269543158669741758417398554193768214026741519425583936825778696199766203004491389798517869449703813058662277102205122358650216788400861907449901659539138721097710559174203336594105471594182705293389442094069517850549322199312029028216144340147394775110553903562020233028609250553775933202690327081921277237150993919630247906709823880955870599175011730912287377831267864274379926703839101111801655093659504278934560259245407414978725616292973985610307996428158397230300990691675232538141073822986954373627014782700793063556190026855249747770045320959156742970167990302122507821207670993228835166841517126441997806668294646199943360243951145526302140424322307908745709519669600449587978440930805851257466158062814552519486986769448957691992266657712535309616161581242948424828735470160641103312730254731821253036922408760132322906077475305750763202179969434621272973493693502772372882363272935312493573747562121926103947366794392055532316381091771493744043771866010374459106951447036864267927288592100608155141588654402698961724185906822785751859558430354758046322239792141905332348022675280317764001461228129687673880123261649311994465426223343628488601885569378715512200303009227734864535809364382920964417426750627487354015010507046847613151620460957237204661740380430174948118312036079745235888218246646261702192544626003024605851038827566872280088411121066057953615769457416920143088493334784686951029748509595637300458935806040759032188521883642478374272111272842465876431323774146253625930406273255335365514280019250519171694670777608407817910115696678323628179753514146066677809560786360378498205613503827389554508509064498808362090528043979234706249438788710064704462550934138590905193302623053026331619869183947347961034984403366928768035694034574329399048008187077078196644791551559570635349642515990645837608967008878871740631559806507330810029890338732275298884011728150760435675263787649435115888196251241074165894175965058974004144573277143169862425736144651008134240980826714450046409821259090712936814596250838471590517457595694581453563718734658439557670855136105564992505328512104776799999638541824717124556431819111254250254747866687999486535457240818954294277925859495456995586888458926014874167794442355407676452435447765712993935413729684081632007103454727725433561739932173831137270782178064587014064324619011792594834264622381011234742491215573639552533616000669645781731635353127620339601379800367284705790358817251035116076869870638843693291064472338679612314952920771090893208761145528749892907211916167539012767858353733520299618264138744020078000112188363676214232298204821878342777670921398070935944950963405459641517202781101789086878210961807848316493403027539142163097554361143824341078359058416711558620851858049116965297702785758125638565313153723943540204601354998491193494360572518229018894260979910500892321841072455371920917252229635252939998751855120355421732233175458523064766620037067046986292996582287742144588569427795887541727185087645786211955134415224080826743838005920605505247310030983756807301452736403356613731327970563836356701894546523861093374431815158226646512172698572357675867394706255181693490826150570817281804313862253364140981103332123287465941172533913559408028462534506207941887621433041200659855774852653974888338224626482175194501770768359856296323949825327936905247117010089136009499645560789035570102321356361229865276273554648673591829868601851096933731879779017064219568009520826805518135128093660387865504940247061125340878222554002680624411745133355687143309188514066867509156259301847670247925928464439955733889211745552971847026745315772509293660183422960565843288520888211516944692754282309164241712961577240136274007974268862310971897790666976248848371984144554012039417232231098937995442040777497269504897144782990500756365737001945219284718929614960004795457601604101241327852519759785541978276498378266559235975974762260115248376305204779369976829447374376653181526246152567475107446917922038693698289178944365916821248504730126487570983292281299696919372163234726329971415618719246160339919556549852896024650880771506247820765069389844660259522236093149997641308259805442073661260105631326981247643694094652767458430737041284429663407353742942393914715150260219713086566013461621930159973096579929223742954692784470268804224663860640142428586203054493175523655129622177283059349904567632858901883166108459839951394788268439766089047207080648964343694597793811888805727172052620254112427850722929296666363826412555416110454314542592039132711598755600395544288886415758168120052321005881586754197315403422628464762795942583675564529046087017454049317745553971754109437529945194613373641043568251237420972794738867310236147505815349958072067659120459013509488905978490101633503562459818999283158540512079212482489306405602780192269692635545504004809130080189753147412683676972284446628352313245181406977726709749718585675309208369838706589735866234451434985801131862622590416893054777315813984821609149666307962891480764076738021138068654453934034657162866373543957971105378077162813538700127538202095547974015871376893585615626478514342108857768443761367418627366124607163291091894103738224331782880562213303613523467526396755406116982030124117027928585491933842958519641888084096032747724377648222261741669676032304841378946760837976402665493008916440308971809983617522960246880659018279330911058548724537650520409079332886232237396257457971368770085003191000007051144524353861205748044463806488902402624758587612350148882599037260019233787126060095810692070270835567000744365233333214328078563388402413582345261984905770393799675938189721736691423174212792004585066569666451174944822605151656563098024514719021923637572703593835066264558931590958599795993721320945984011749266707269854412916965156035290166519790338444195039929049722526293923225767825443834511077975763591565011182829642632606649686202451561270674443651164415262597075645223159450493881046556098134057385659783506377183739515429229899425819345292866881448107962776898369979546404697312394853198658316905762745692966236565034315048664909356726204516946296690436336878058599448917729692466317734850201194215493001705818022794750682912906354418373162876976898792449628352788175542206833405893783704674025518634182127361149531767948143989816589857162419148868811448098896333131262339079064418259320388608988716937935608733027598631882531693970512549030139768201869894711208727736770581332045212882108489623046796248103201707710073732974379344121379460739966816969484436831758003098756870490303698467345917080488679385630566848667278850381641306593591618687992613402182915931360557148005467988507916717432345019237546012581227725327645176834215812150445021325632110186511960349687126744843015901463737347381684850452604263255883181012867793640946447492038730385878812201528717388577968983413251084188134577426766782201571798989790801398320638289189470906847285238528545008821931650072153715550448889426660937996482586940868891291688691498060826043278469660038273362783868350688988134377705476248189063279719183561076018259032092012086381769362950641386605192448774161469048608356775377653972672818582088669846544026885428864728719879068692970771880650834635964175595646938570212164555088000350901195574343012887595367551807003540195081163255193852220970807470249829623528573679193586767722001035310729171889073917948765363008038711738412694360710994784676047966197111609509412364351369030438148745885820560388211764876180452043641223529204357475021922461036402368393451516477064861257427117238742240200034302679899347664883483503900401418348569270326464074659015830257838820428784224711874686036769729231421584939205103012580883539159040616681085102536130454703217599926960581761667929944727888062318788643746107959840656074084730078962470813734551693233008366679034508455443973099563856111798246223040642974542114902051458988711956745730807089937199471648756646503593722352216130382941330082839252714293438016284836013816312682167955626029673765302211423357406195815105077703413660448943668750555068894223625098067956344912308650145853290499703812931745016971464325124662828007931069150086813723804411097968039115054922697698570477612333579861428987192918546500232800832982193200581634387626235493850600620153839124274245581091326239634187746375326101655615727056194655414111926873453982211593317474011631313804776254412627824695166967075702342614049135053717941480799715418840243928995360372168710314462298587323923518630191513121789468613731594620326462358190443020428380021973613590435519044020330613356640432740392159470299278791468565108161412387091752691679699166411195593002464666813596915124091556749537847005322152493358946415609002044427436701037123710895569814253730241379126573487057857810801131451344356796816636750954918511154574991201739208081827750157434682117323510513207566454487371005256684531335905612346985460383381116977364548403598640197289710240344041953339338131586450955106195912336869299093356142947850053163814824612377630561331526751519727853248093397613900210729535558762856167523480318157889851371254562062949493062136037885676674505368047219002371175079840171514532495779393510652069969184347724539844120578521318969404364928419684340230057406566588953876384462025284015880939652377010101107488630506373936824958109795744380097552264035729675632108582949593253481303511677908121869852037242485606958464409178665092760253779618489226531469527396891238516718059791808285625870655484310366877160103926608799966537977795165603609161247037798208051556427592003081093128340150465290830787847907694464735601076545200316312543370684299910193434162283827973333033951572289559229465874920894639803577479311630071117826075247120481717213171798818855727256569944761806885522700139687253346046282460599836960207463335296603260511994201898598867289439129359246661383800236570865265174598794209248922988155214838164527994758485794297225771489738457419760696080054020823653660228496664950185264322968453126869423816422465692244381904406604594194189251200996886757869672974478956979087100673196486462108236690290070347302546353729140354190363250510736641817309202195319057420637016217941543512296631681006607836010964803414036673728918151996722075585090037418512987625162387565711698824631918874014811779792185196323020753025540176262002163807143590212226007877202003902284678914335988400864091421548225154006405253240829913718500142871296678731794074858324020203859093627582613692309503195549274465181749515932378616641866144346495921912943179990952089634013846300165434714587681775445871490698555325550089422091957059685776084848184147065930312648859572404935157712763483850816273979678943974634051279942130568477805640028133752126703989983919106695921762088302800636237475050428739886890678667271745757838053628587143627786388767093170229645831736065965714908932710151549876413615643568424782730551803529179487972114426266046508356659985948712389601390028433000627198911350227957743877516374842284024865215439085992137635282336236924173009446558559059164948814375964270455113631550780286733641386898404099065010513613156200336949240316077605719091986432730755224654512368717537411737070441193747371653120470600607613789258404284561931151457118090664647795112644627800161251811530997018113773369606745296911864492569533669548875866812044737442597642889495505340027289936888138050467071685248621050710784827150695235572592884002494898900301787620962641854122298530808956540198202059495378330660651994663201787591657005671291031299200189247411133359635792312929957872591406586100097440666210563717362460556445785552112771904693772802974875339234642898541346127196316497376127038110347570690306640155599864920656313418063886267007604894803055689356560885486200560015302759511558662812900176345542951549258603250996406747626889875624641284934644188626241316157782171774474569796853612435171952864155748071110666100026904667029647082472600092889520553212247576235700900679647739361251507203564804692969729575104927361845297633238902717280187306373245075085844698749816835866502236096221456778023802437231389485052048403756502699006105936223428093350934925648726026842643310372579203673774746985155662061046644513412031341465509965140689076428693682015641701282184747277921469956364385455554893051770356582900396315522705373533197427861389127764988665304686415476708741119023677726962567308827767969947375481582139818349414432909818365686968722500868552568470780062763356797714764937906098929950480131853908018335236622254317446003649034065027092749245494672716926364021356296879959438384006669532729698662396710303959680582848182242558949887680301930637184376614091607929238085492165110043139116564046838737205646691146622725489202917643019433440163164562975756600244324871029073961770783199928821699577141381247115542935387795629266455773063078749900464542222879334649505681035755306810193312246232650427778647662790443400488154384251498818780659895852073859069073894199390563018836669586735463930628791985123264367899197718204701269018212184436649299187066210647131522875076510835381085753509703276290364228189262906640830132193830467211836229991683302039437948163584821756902351134142420971693209528072909080267516855897535509457267587880515514469115673385375611460427535885127408220382167532562048943851971212515785838337917214576879299780713228584661104387989877007979191338211547468654212493716422354982943676362560684915139677155687711605993033221509052169020034794648723946815240814104290093924244521194966614716404764309439234478588325675147617031306564315373940396367909629433305201917470373095052890561079000792356859679409391915847302221205604771799727019513458298992208555151827267632178999428071272992905119524424054167838637365670580969768074135934519768232023440897113124229981267018238513200873003060112570851931230038091655376976533956208812634224313465607292843566809610665164923098482648103913251036142607620628010145038121191641634006867821471611636460586685212710620033114985618067985008377451521286554725691191293364436638394751733814964802775002705447895461485951852508612681638323896209250874849494679409355752733914031860834339683621450757992285815710745251361847305796543328833177538653079869922626301730812788920970986895280754583379967930968219056417672711188783042252034337379743564364657057642234651282413370010081644676665759602573187229186337970934008067004712111731119703461497883030201232722304639326754301289740865033044299846155418583406063879496299309731498534092698962011087749061377438459716834380591500923478084871425337422789737741212803486840399802418739389248545222396048954521707497451266995853294312271476557514444286592928611329680598259150929515312732883434617503100961188567148477786446387405532896988890951733960625733478781310816622189408010148930913732290350119329070792016089164123425743517041887084786855816381951639220919951542166924181874691793866364963585508476826475162924767624730999609929447172213667494590113458984195602944737635937580953753541888987182573519682024698458888229195643899625982598006283397913875953320833650046293783249678901716330175048152187050625475394146119905307875580421297281027791326995417482611620968439788542645249770190209281323771565547140286277007120583849614354249731984004673607977651528296141155122423962846609249687442668430845694721274957545757623408995411751463726501484611865141981448898121303921585312917396544986246878094543986023746117265848051630214182703054178590255173897405338266100638021402998131598542853040116859844422199998824296773574617584694200104945862881957434162340292122754744817628271716216232262282862780763077118424038308322957865048473592528382597661703732569406376175120571308608982124577674059776640532078754378069324124718502321455777301305893279930389673010322037767058574981632812764794839124636010784553987950605742428536334556683949475829796702482938549086416482580972204974188050564431887343221931816257446071872943768543140417052856620380789562511221580814581065225713335296220854894637046071436095147594284068096589802729617261968532517179195819779878717975060694373091287721883398844122239566892215014163444482217630419405752269060559985049710656841996735012069544857813692721834953348405179376978896850341510961302209434449070705584987604866367706928204485239046691170287816481896131778747240994309780573843780181525249937036633459765867062639453378492119075725877418937914720821562867813737235989914670728247756680967919846750237342638642447165303619999191803389463909207974065299015882438464050062419342708371201534234301155958244348665446862094373114697608988883803935263083668613769889007949261181360080314552897171172287485989036280504693771612297303980851662233120132026109830681920819045482609418415683288925880367225506903343969028449507357019462633661770429689274100001878130126361909272309796178388166050291313296842899288045544777559390833561409715172484293516829662021753349774126702435410714432797616817623110405262449189686011736792565585210297373348044817470766352101318899068018621222558303612104480400741097523564859545895216434777995822566775174694168200198914696598362998722793029481525510948267609278896434109696358169350145501208633283633065579766932763261276432896324739703700682381869209014390552449376098171112318573053341907097880357144236705494251838792726389626841059460845947740853093860580433229468675740272687490350181103083072824427622549776727042356652825528883854224594755119775826638411576755010884366930476199124792401238469173582341840734334548923262199885206463687906158015311643328882924569822611861704910171289173399822133507015866117897119143549148481067983174146479349927042318548962776060524550404014367243811868945475031289136059702340456026576392283351424909108306123142423024941546909887628436175312002745876239745601591949185043221421334182255953940517592011889962104959098032027831973489680320438554142530608052492053157144038913253593942989857264711673033811457580116028543624143854021772258795252613790556714901418159590757996766395447483874603316550254351859963733757821648420023657804618522395886681103616155734927682279449575036977633286311994906757087274383831852982477597045389400932493041096827611259336744721781384081051387454423130413336782923951879358895481193122291834145702354375570504360878829810280537160454460963962718285946381427940972210782388331716047300170065271808905506855970128488108084985598177514624459445351070341197871996881644141179101190792590238852464538437687613974213168061795147154471945949411852974122940014260355980949340716268042776755848844783999188491725764213596704662788634523703429840006023779423429840424711976932004053872368937363862429766260781823752543847071414689805833648986980112242834119787623003851676300159562231053167365628826070592252669394506121255629767445808910346298909616275467582253124869792103214487790379522751671715223538433124689474651138778341546938872160930787951974963754925973330654723164610482780810319139320841853956466671383932462540798020687647711567935179979479771041867861880581222686984588915628391908510634661717200746892350477035038408266961164141707506154297387395991281889783469219071440473034960947627051427764113611366668765062891952030102233788172838759328694029570305083273832096921320059182269682856719465377599023495760194051290019872836631614977622677207980308615040703724954760540956807183547422888905580712281281981909113670214309595884014197120858239907145932476421678185440796102025185578501734157705905531827057780199443639442548153836372969371709891089281021923202228641549027438107137904143752191190577828285124010743005797070737523388127116102019860813018203343369419178776541058923603069678883884651263248105037143168434548349854384592922555529094621888240886882062799522919580742922498351270318958825749487047818834525378831848340446947368281217403541685855738139956904088931429426887951773530517876006687127998411664464728284993660621519439274794580651676708120782319526425489250715607519186795795979647355035104504054614906369893508330041267594513289788595074568906599912231551564143773620791661576499420348348097713280050570752248193294592354192981486325282205654769066841253640741293037005726298646367128056654139308159682385299707452455818594580708789493060984617371733117673130671215226971165565155528394892392383536690178375253510504213668856673008781551057337585897307678102596608774103953601569623707327643815870827042132765503403112675794299973202407268230617270001007495008319561248495658134361100276283469360435278724852835307599578127025759726907913662852687849078052031741633052943562375527627044351503477692371415135424515311443399343242948349141381144942268195968494499228619621750876366902373010244863658071133178369359040537817468670074574688446257854576083553153081517058458686760234208556008403749152234025280536298083395569728172316792128887401495075796807947334042010824960254226567927433583852955941202516764901182213549735369085621590805242712672233664563300116270755700880440476864886173643098950809056698872708157675220876722849542718772114888514477490260134362934617641974435322283250202722447798074175367401975766441394605893020751514309105291245516306087307272056314416925012519747889841681019117698372160633630649631527734835173723485271614539546296512157260750201519833009920831116963000892651216575264802039216000220739913632448959042329762550562491708505779285812274298226897250896722432079389015982599135454558177224501530399585699297047625445294862874206082215427136538495784238523218414385382261475886403341689295538590703057014355209755588230106761513602071144703026700029722268175399628667729781819158687669784729447228166772366620590975239739169834979706896039193312615184105912974518754014690803515981131120084914251011650618375453896159643103387215050582037424986756303080635997545871877239631532966426603647376326556097817558021806540608868919798100604046062523714871529792000779619886797669948855641713403559325840319109467476792996030281897600962239564589033914416210899868101872200742220116941253120385955350938748309072376718882161448979128992849120218480306995807373814207889065770598433118271511949200874871056346884067225153061279117460817267355908521792761235966782198864358208824795562617896771475480094539026901876971381961259598100517777192971434046673755083278893376260083029831207370370791416986764298836257437223285367974181208186765432349550878657793547046486861987946595068047735352409858505759174914102759252459019599912717607370493404867404603099968870863916275472376585637041931415299667328791439295095221736074279601927609467611952136495430850512098349411871367409030953857266683554075490070818902274688513503391599738788053988745066066897745570880107476223778235965454009137970881510617085161892306443823885807832979419387476209195478551174548280206843889470879329667817322899812819366575720482235464728339726517354378494650021162556026517247650930670395256473261254346580013800056834794327296566519802381236730038296639851436955966035667784119834345255234778306092253313182015988481693983613641633773253130055570790589070701686038138559167713558931684087606448205489569616050318915823761633735376774501328674116002897595931976576888060987883998134295070269184092247821997100882974020910776325659985877092038617342464202164626181631114133297155060497519539748910503782761162404266483911601009282745221742883922835330325701138517861706719207853820592712523527384437297933931264255445641876551519540515844506767783276458895477312123604409322300772774439289629212059905327295259062164963910909880457436791748627671757197592745272136974417555634910158636280883257384334422671598378105726546768628205954372249565639937689599024642020402671828242626483018661590162889564219993694625340570153736419151393851968483915777856083144397151263788625136667675346235661070923129530888604638168017703262056173565998536703383237613347200178846898956967035010956098394008850215074417244507940926320170581576892741495583916133761336436797007129794779627571078787323175100827427324528307907271927222730480420840445929414341553258914970913365123166141825325062232691457547280607394370308507829209565297929433700368514665113332082239259552503765013603822993633503054958019580181875717979543240537250876538125809100606689685703569229409499617464251228184473195702107584935927537863135243424872202326677007109563203783938518120332652600163157658483850734960402794263368266482622216020869473404692405835476669483056010351420507341003594618594568423193262444616249659205924820279899080455323460702558355127515615542537562192972045595625140808055401130420440061104462494408652415225372668027839324174243415099601648098832279158919565655899939207703995707970596010672199203346193854629467633174235188077651437670082578240102295519247607492166182018380668137032659195010379056451859494948795532958340496293043280533384572476583494171604195406087801261714487585373144913396376437063061377344276533766909154132425975526182467120150668611533855650552244175473863408331280090442336814683217179380801288271107012898162743855016220862532167915937347974021234320826417707984914724638304487210767114098780432208408740955605657536716998411804460971005699814052248744070074670016373841056223494187116383514629456941475897366905380064228673860333413022837921328695261051571930665768809267722597136556585614731736862540629128571034754524812927423349082195341693417692608008796489805821169182053925207907755259791467557099472404222549042374804925223999477081636390127758215847024248232730304658519821561319861076129062759718009410520144335802046747951405337297717111675992551072964495591349859156109797718795343038680947642352782100495941027348911575477364201802222122068661714347657331122561452638179290990128165456981106243033755193470877341378232122476082364786628670014259196430620609676120418136616147924406898034384175211846332415094897897694387686665472442061515234810833474557192537582228216608656779059728219225749492326116031585032056567856044074540750118963523002030544746950288713865622842092749274085154420501357706298136241846492364067852913525371067843484703929075687533298825561203694503332605979132073007914864926495220757945714706562543485137945917380066607327055002803929062908834509103740305747315628550226911297758956683278725227355275219760985722587477199341994870131567001196471159364765837058660082639460847884556238299327271650083719803877661141766152183294607409260475482747284728886030628357354582650393609372538499969603752087722468228372595392058788048458816088765348590336386364064848081304525558374719556236578522550202504765566291669848609868399215518733076692986915198851393817755984202064984110119186593401636676373642608468226356097823557268780801674506937035774798480442742251580267155074161601803809214107563581759960780239729709516248774777945075383672611774803416738587563760718633493134757501849480799979405363243357116721620401724330714781565416953671972621974878885704453322787826984764221626546038743593405390363745100470858313873220240052259909293685492316181858735660712547100345741299383845466809870038749967442620601457758902230924029083528194515525080093580244216289337494099746136436506225088760582413092501486941856018235518190179501563291331639677775186369095101458634533266663324037616491767103668756185440202537599207315667856001402076150022577641998518216362332739532202807712281519285886638838785418779093258028522054339397742131809059765680688537640248559148192358282153246334140538901010264950828017018463935220781397767077225212769801073812146055398412743403306205390810123859628776470757483341156037831470514351390192915564468894060103994661959946852723922314358089517453215927312689347323783425838754049682712566086480820231321472786404304736547474321092378773316718388426664253660724045787955932275947258585341636204816080770627330530269418536936670882226518599267248053720087135599374285068391416827894157569409301678442856996850531990121607900324356996579285782945176788240054688873301941524738946404060567504721547071519823650829434992901074586394864151427438760556721494907661826999629455319020201894640862983185917391444300641393257886593413632301496301917696285487895906708354233665539551787586312756786727886007336915658930097467253642923240824847514615627143053027064180627905463060447360142243014858825382448978387664956658518587236404301444700908824230527425300568872159957698672859491710292081184558976921507672980006995905042928823014229500578784742136029081058253979963494915936448798433748702171710131072698975097438560739753917161267815505488021935631431556701781361506257972265865334245524988896312977635113970195071065372514270559438450497410474126835736547494523200973979640620375207555408558551480825269798128296063891763186124046949982961353964170271173526248607039898322495480823062771190854843562208885435969867777829962808806047207285395416908675198488862062874364877153706627095794359899451258556907825880561491291821247117369802969493422478700056339500491389425513773013039449657860294746435377274950160579582378037862747788260339977582630311584961016886474043652974553820567158746719226274453010577547206945715552529028378972946495942832025496405650150993378525204816267966386107118331488275602415253631502322523314510533892995986156997491512268201780586833437581746756721326502657355490772974842792018773994515467136158183789382903108127126138746453309256520838720686296881462522973786471541767498102608411591706226458437866750353670689377564400614879397966544297658718930292391194123116432367672320795829628513193586789666424425852205691467184309615153801556960304798665105764675841003802986709402401371015939448283347975342945627815273597397812323651131921289639832660332425617469972350905676197709460245219466553063036508849600258561213919438813244121538180986722072956539923564023651339813956013741414954823880767829429790729912362363885258198449910633922495719662415152496032624775816319435316021933927712657622341421041160831955888975920881648155217391933409298312058488990620113834107134954822009217535614567156670243620717956799354996281224147912555148319955491717296085935418723135844673145067774696694820860145897945886960569952052375080644324423836181219349514698344718610758827900463564291095845671800043230570949451247335782458034812916496073762405479075194662466764195772148377092102054082363253481638589901297748410205089438673409842273556806156446230415966322491294834908080082397968572176978760865079455523192998729982008443865793778115243755388896962651099566791764112289282674719154762081746902712309210173140160374043963752067429367347774952290055868719210969623336835724684239460938975193065167452261684757705824369634083145407201274232142733346984164518637565011601505030833263256916194493997149212707245998180308273885805241496783122632382643340891020828721838803423126685865938648612214031679846737152735478319748598481978143706756958903225989420279896737173164401409014792650518227705945103226938786633224518054352731224768175912182140671912565859373540459630216727269531980683543531452195862922474243128726344108653013872474031447702500324693808701759237292161648892258291818685235460474820193182680135670058132156243812809070192021355037746044276938081099618397304104163687983256669925123483922805927239404302652493068307714729315951238094375768746964881056823889992020264866191413582124431165640791356699707730212335090506385309607373484405830787390851638874153571526762942896729896837434724324404845576334373777386207242899891215273321646555200151186331119703734174758917004363454813111406195083591823563531828576047857370518638244784821871323764584503812534446562026511065988232728843936788426587427358384266503215787640142649606563407992223707049438442807903669936246330417380228967089444611867732108042357232418829550122654687362087938743996965007214529914102012019629873678930697253344678628432302642010667147367487095578070493748817402712983458027367872380765512414600002265315056440763449046020250801171297210050671722631737907155438668745387391163455230495452503525933985767206598095945446315722448777346494946395601641891125140650208034045367061184276850154975533749752469816887227252331297331854711869549693494450793583433603707004635600747069924394552420330358518180506591889682536925993996073097852597404216835679467974657658753736378300588328902232538028577007101716176269238058933504195419858939912126499317043412614661147231889768612860882342623222501441026605954645673904152974115826703853159330053805420704617458082882930584601739040077431657501346423581218829447409537122020613383418431562414363475325569645633685109849598322609780558379042466712485326268490785898411894612726374392760235437007718002145747083281956862625089695517301812049617522911336732538550627584364542461038241580078779443067491626284106531503578013384021341363865549662247446612561930716603676324862991735532723199774723252969912737418601257580555368433512773613270926651186215118086507254242725621955556707083491870535331495381617318812891723461944965845591813903229387766961169571685149012734902216602963429112126529477962939453333573740251933688303875725059017065621079834769444808496289933186354253379412547492928213915862824716544115371095666389623844547090171154145687777120392250145244259674057978597692188049035555094100368569944195875922591571148768918790700665648675383188658491893311200931396158170853929559065005367338151340352158597779740620845151101154327758517660463377782275974382953106308396732053687589484212918773838565276305993189470145086702969646392939039976475023093142211114286874097150284785898588872482331697054132156947246995792123135142903494869333340839317751258363152667306018299952234753144243826379136736957796029759606769816688162853352193373790453932340216876498806612061858090325106969562946793263514129432967450248747269169189608232587808865482948582786452238136771698764471583870806569808560431097921605275491183997131968926121159902060061989339688039960008853129160619003971265384750756151171353506208582093663814061682702654016734604740561849506927079346063001011914314738987242811988437721760057735807619910856282488943402924961706631204334181142306474354599826375105126655344800117813852206015155535925970016622592477291252754171622001190318852339521040860565151119048214203388558104976404634946185825676262381611247270661824356222427240932652590691191226793930504555065003057625476387949209177648579621028106441152553960849837045613454821076485150256453850062718988413832079215831217054918996934337110559539645350035944661952338874943023894240146398728303898337448149559837433078860301301178647281845770303956748483488509822494472298758589354610308853804804661302534608432112729764412603386986972088725600463518256466646337053660885710509543488216927644257838367424872982842823956564474926356565328035551706141632276240678960845970554260269820359684690792209944718620249377324465060382159503910156289710020758857511379872277157115699321779239812155263947072792038086396329685561546535179782666648519025356079641230597521215703428285106022030032821323423847992371382611888750187724322809674967275653030022741825016676661380060432033505750519009446850873382782628612560544729645621451722566475771359648165366249446519083351259672860018410875800830889466077403455120616440251221759686152127959532440243606667863624601988524770867611063392132115853180475491975224313744397270049279674696308998053530543051729529228101026994191046652352452329079552214836813687172902014077324091689659394733311002346021256131250725593240971794052060702641806556238031399903607469187072284347574292734037759312983392406557472965871073378406536856895608880010872554275020883576816700174535906191515242534576548907598630688737423687426645554027148039434423062137908314513191827881167457513729008625830443858896740937912909472553673086488598411059653231164756666719125645387700192581923690413510759224889550880047572715505580289555301169378036234837839412735101909906921692493995082474958689373140877057356890613337190161808051786048534475009399584266534471818961480361488845305416180442206320871902728760857252902265739013254108379689694102306152302095335791217757940948656252699585924203419058312323301026911031309785388960179198988557863122330037957015247782596445471059433867180363537281239789989588839120425747368123077897434978522382562893561439596779441215185041221478699379111706222495910431582055930288872966083534955803652291364083270815034466876299938472551534658145292577180470373910802257357842151586084815147710884667072232508099365885435661341339578669219961344318356340623639816289563856697200038391231498085119421999278276729579098433817427741890526364496763583196274914043998285185792248164163869786655620948978284786374592185168138141547535226851495555618475350308887236777060817413657770518957779319808602875884922226433928381717594099547603873217918428729834723330424732303227400918529157329778441392549760626315791959631317624883850505223795070323094361474622473544472960921230596274320075717855862367712884593667826560666742467007824231914177700469676832574526357173192261615184636265634805898168806390573916921624162176571746474398203039557998847923130392278958574126771792730302942787153098296882313496085419272192063443487832252934871789090296388185472344997734961950942758427045850260087749887010420425172604624308054913929124708898231992250839475854854122766478817978219904074764222226822352375859584012350620837944720324441508864929017043980990052998213394707436650518853195571657119892760147462116762329788583684373870016169259218983408626317023810578726446766178093681451272751353540343075602653483208248592778942961689310704803882357508146189510496397058052245659539780000728349574276198297694192289755991753310315820922267969412220793385042123071282924325581414070087225535099983127865975816327010370029104907521677658799442779666219113565501595518483208340908377245787896078874474304909322158110399967492887584004568714141920318623490050067187253432032879324133682729004913752671483181069380942972473148713271571629811345035214681133972817783157131302099035449349229119332504436635464887411772464941066873768769908565247158391594873632609317095861502186814593176927545704691264181838571902526279588020536020852699083199775999383789358580128277472844441228495939949343854651248070448119870983547891593105901362445098084039543531278051559187333982760456835379582442492842761155871492199475771301948564082433494928937782845180877653556730025744646044475026919973619391047538231680251385146077992603273038954806357276286261339564478718259298659903194213533775132462270573799942472825281691352676029258099758258688831532314148225105089109402903581687613527741068275327595876620324394674402594255225042334601239184700385803928633506048195023961429019898491351132217129876242949053758053303885322600396282095873870112192235823801561788115379358518594544461414090453332063145067287045256986657250655434668513450635269852188490863347101447808900969237308750144375246638161520256274040828318725880865259782876055586156077542191139425989196620399134427176556075466320009096764156776314724160309882393195007229029442809515223173968118611515958591008385082597903051742302246613534294325830143422836864091253020020521383132189896370044476632086936384568931988535004351130495701274883789897155440320526249080625182443958630272865792989634156424918697902291288846263498797341771951683199628500779776094898603866518612042205328760272887565822350604149167879246489487604091981254677209868123589045068566839774163022779978526411471620445228481101107669870558970314927801929742477185261480321720691748717709929308566844377751831365227848134101212696096542708391319236660910505077615021899567623013511610348714275706608355389573641610661308008923482707086759855546371528250303441495728793903031456850003435532686205974208698070336686576708779474517743921374644910223479429737947650243527163675471859233333420776142950183888786330026806077980746456475203645842027978808884089273262920955512291651786837646130766013994884767951761049609403633393245848641447335835013365008820301814496267955597555568456684647274738768478549373368927395881704568928135477139486777022866339816572986624785404388881559541371257903648599992025280585725793904990736771088033264478091740628364194911919288650952976628237643166402284660095637766018990903811417204085725979374128983574034229599604419243733507557791467417414433224739152795571567058578378534524193896495685482885654685425285818374218190543720262319267489890955447958238684568482249526462696111447458044531631746378886489482549127105772655735615540699476977733639233572599744515165753513749932962568805650860884726963195887973500370462832985303678056539099248331779183977657880765676785900746023443978874350100790874625740142583180757415065519069205062961255498838538260156490564172911735191850640938506556513242623431439398371295897170600776933106944806401454261958729813920041095267408712985441678518373657344668281631197603379157287855881973363413338418015745542605231506106595077608685735946244954572702850563516380863704792039687728550751748895013882661549497930848402351201537850361529148628243554628655070922810993956856861394214922588735144310519835570648907634996226761787703572166741527555469817737766395545420690704624991205973383686088837017428754582572027667951641053426429634911106307090383022427119751938581761067633496169377817969508313365851790292936116345537627400053219923966949375470826272931942814217730889593235945811024452339221340610969387595929824095882155885124905236549038277422594975890085782654441186713339933942240286754118696189227221231965886648019346168745408811680279255233564891353847468409923046609410460872678991840821756428794112913809447753238746089130160005985402437113016065845758964208142321406060373507916109759433203514028961923085763590265109206296381061554354905665441036975573539974635965907065698073487484128050913574708295873476437820299040121900277473794460783880623008191860071952792102095883935507547854426976470332471045218134712794766271384307040812007351584690130186440669719654383947699436323664277253211700875252076617604414022080396586824587533669668291927922307900064967673783008181280718612561504255055678577889244830449090271068403604236765605034690840678591319789297375350296715958420020106880743483541671220312375981521602773710844036534544235044181304698749318430687644660289952702348178293836896075875484607043232615635034946016933958623161104818107254103761080934281362604733973003593850440422352672174623199942641498338496678071039738103874602888634072303241949857082502786302785394473585142122593312609488494322387313800536784190544880426459510955620679935179019098116844286170404681410852119487610810091876914694302346839172780675601987645921382946732592180967800557772675719031502337118107951905178349394006398820680657851081820191267604312847669553587282506037542076615358935814627099196105672376474063247185705443462918465882018008212738333762588683595763532272148692453952037750926728553733322448285141121990068375809842391277086752945256497856898840690863401280435474127248543690728337135550045895295222804764621919112674262405001503075910677644522040969330712652433984895198898236645574077185272945859233913133631556955415977646498545017580054217767072978984683067975981674951631798610256725696328843581582809241258856871979842251592093858224273298490177729771502893709191755417745232604173648917533180335314302951226600950644643897772972336259792824049798928786827853416046266002102743460306683179042259719888484597299438474851178707895833670080115302783096559461984010976079919764031000174069537871238224580034111290627030338905548074468645939828471648745261726353805863025799722544790951163638105719021686341760433345357984731272160686604607246761172332143230014768957593000398061321625409583410679666592113444959957407728680959463222232724810969758693081931951661222416247008394682529144134580524512940237690745865390213417266543310579377026845555275824546793391874577975566473313387294169240073200433238716894424095115802002508147976789650169835822251118339432960447584022918682260517247670010204988534939812455266121797855263005951998920453577066243238813852232888653030671625626470213181259485957703451886287675151412644289216974713485806145272950651106627512984615809380588456406351472871389036295559677043471529657315510088538150324749096649545048082773573535572133179827642062352642410690972358130713868901937456395769994448490871140931613386542841279063746708031304221528547616090910448442052696161962528466314113993826801785581769006904319944987315903939117310418272892987162269556810809815421740103302151242536221465553199886252350055583094609550864739566047099096773452132847855945773013269704816367575824294308833377819807975590249464697514616903334279242223146299347925255183751336316403349410588222713566140211747164912196366965125739736111160314178497941967800682153801849014664363204407561806381565041220447760971410437899525776230811211628761740682400519944287182199922009202254653615342684253610602353066342302244697223983318577934885404610374518789755154650109133748540342571129850852493663539334589523265551744091997752729791350565329011317682218779619244853644605027350074276897209791915897928483616882921360617749937810730556421519461371194321659999524420895838875332285874037916618518298949023351829023002524649864677011546039241699752739070334796340333157884811274320637282842734675560573189915951286528103106872889664933004190254289376347522174467458552648933206099358591431716616232487150817900828906869376231207794889476570778266173872484979280779147460556144759559128337795236680783814222299548768474549946294259972793228986842504344970666297283607307421263267691872884587372347793430696896993584389767151813297292175244599984629721227504060795385612288967164430192209980745308693813160961339473884753603336896716764565893980262220419070196061651515404001268973996748724523895789130516541876623557688095810016134865561541207242192882871636336563254999826424883956560036367572797721529317463535792302999697858541698798503069673516809852316091882101516806136123352993289709966585088106664856874470084799566442824499804175430258745509452886782542690195341469674030851618782562962102772252425401197196471497495338695956659670703057587248363800695710623097061921047533073590929003330646901759095682507615045413977362175173655444681014537073819420582763948210897871489109552499576185790438458405713130265978461983341093430054655693721811695753383354274773212561207750816888153027500932237678196409878517473241960518373302061999826032993534919552145126784502303294563974843491298792838656180159473780205211046894424665528050966370064577371083401084141777686927923143859474830477378631180690013941225404009848432401179227901392532301784625697341851816671163167586726238815813019724362848603023768832424664724274368464521961733468270303633865015984567684024629073308402476335873622673176544602445305479361434105305736657425186404876314817800347804940155105679327291775464765914957872947148187513408053177290788689192077967612942906822215784314061487794965688929789812738791921422933698386819933071587430054461777447943464068342521953417313013159494619598606678201032922884173423973884799233954079495687898731427069802747823817746650538673566578481919739042504258956912295336294277540364238424978984115969109571620666629328852977281645170506920637199601189165772609242235490880559759123315230802011271871730865309216170605014518824273099402684314937527104700382759569342727694429713273703172707353029829895180481483823740282997231329497200230057123042446319728321109464731310771473915804337591480367690365649962205250512710006349091612995775783144464306468262630071855058942865369676198745790706932634118137092255939745054635438858726291885101023511256013453088220948078549719756222960841020605104958327830803423002942085566456418235158914586265295574948223238262418454893606844719984682093439661883989872880340233807987273206763446203622756715174616435496794018143400242035233482937596736226434220813614708535557673655740814577667513305735726965384657960541613658478480635444126561652211836747991975146165225066630362878152799367714198799888155369682918747031566493181158713161852497654459591763943267427645283324238411703690508737875799945649433694784599933406117204814377467994163842426265061311920759254840207019966693399040795311613686030034631442597209358386014396358968983675326215540082547143576732746935899646290583509506800383437414891408016218574628472412721290688502865608001151308192938837558416318917719369986699455988113695726468827265706851907790336416867648694538047593899883105695718826752353691629877768362808467826374999577399162015418286379768165531936736788569241907077452137326318567518604083451230381663887909790905627056459456417470849809953372752328644355801259372027489686759483179669401720844742023780049071843330459117655184847777212573122435535224060099317527284566502416653375202745745396280605493250258463415098611990269852804347650098090326192052023980303145583854393595564742082190255980209538124361817387384503561778566695832245285489035824911078452175163485481609455135552831565064670572655008961317384325574641057023617461871527057866416047983300329035295262612957283489693291603872876235612942118563551316573180071920072864470578522299502260169305151764160908199653055194290967803681748558331543500047863659750549531124483354608102269325058999160028833912706889612906137032625646172623989489119258682762436518130509372489018724719837600288445774745392521929508943200362492451346788992333505577276580867391274371839334143555545474502591981801552447394384136945643997075992504047824227725228908324370499593242734247445307947688790232816696299492453541596799114554002489167054264268331282988217679076710378264973550311331766913360242565817738900707251494294985272948097051294299632384303513219381440900536514836325235845568798475866759059503963835961353018250084001123899729056648349892821103905841703369223069447319522312457507964696944975240177511601530313293822064173282701996202072857836667231287766384206920512363780222162873112220815199141410959630497012527131834331142511948431873684391597354357800268115975655054422547371146220262487401358482575712592175653674420158409891326705056758578459272022457768283082834438508357762751442025452124663894495198366868928379079010393534045016819219804113671735586593371622714482173021633026686898268551327700803358708331635661824928201703372244216054074343485121058621523511590119666178051926078012385871865182527906870913628197056353110942057428242523944328938035018785672521603375637549815320343338128039063759075396465010526997481682988474854145151938577786398181651684586910275903019488188309805720892947373751611631148964109100314459331823450147403432673093637305077420844346253551350044653619618806841199715176187138252388369898620588378747287057791953511109962593931889983709864109973420175895164886409818083565853685626684154008975373322755904392377412173950652542740037677028592032741108499366503328070229408361747338974707988859319193591596715156346996938939311848515992141441569121164984286187417478524496162572809233129538379161969650023561983359868089382435758320554183083229941329985025492201582921013306018966862022451376120475223661113014054301297076502967420950716796767699148967626850553627806398246747373362184856520759335077033464939313157142667273985478232184725580541989551374928055530680216209369797812902206165715293143512497946673726021249776541037135769200539678104140713263103092745854538654056482569512703183814353748049112084710587138001132946504545862020853425240123516344989526120213148355335057640392989634536360970805141198716370866838557132880026305486457082304696827839687127897597465776471949403175868524562446454373473391907225802069040068370370612072079455211341189258152916804285748830425205458562528735051540885396283986891437189620949880991117575510087751935913339229067964480441401466809020841724948388902453999384128089053586882213462237639930307913689725839645043684350945641650962450405444531060352291698969124901140261471150082951836170162189646388212913369721982798713802169886012551629543359441376562954861433417858665150727044689836310192237734488323897870980262734018356830356462805175046006196141282085317658270164197217216348530701796492647256570704971724313143326557624791970169451990292279269200282343373556778817280122479792987433806726778228982728767661937200129833613403424018817451514488981406543541286672275254123667295417269356201668600706976457808033535721644955964331458420283035990094948215790778917974369100778903658412263122277300885088689709252035288969200518411460166009436213425155874029893858049656733945987610926782394289159847807065435362704182810996772613970536882530793644703463862574256706872234177392789685089692945839861167468046315262346708473450177984442076802331056425112928107955196634878185957494495083251072030064485550817462784644755505837602266750521259815624772462425404192743213190106567869026921503152358606722445819790329898197795319294537183607577005754791085848944807906805554161516971391252811883569947896654694772231757948047970088997000229724501910606597230105060697059311500794786737399420905275208122005872594994470317843973481601117668765753851437570789680120414305102408091393560277989399743740175447543944384837196543541966480239478323682493236666837881686954011656084487047227590824505551012651226645120904544476834123487257265127768086100019540475157697773669335224750852964477237829842911880577715274320579109200359760238918860913184363204012042212503770810762582014398396361282104491689586188572969594845464476817569047315425136126416519202025905046019904434601800577690859258829111535029824022575958786161543213580497068645264798381084569843141854228186697133629062445117765851988266866112260323366618312469604349532754866771583609109147368173026414177982541126482549459909048746204341034178570621085418166662116979639792571474689085570062367241535280879644943195457987120275210075501110839882126711981785094884749689195718334136169277997915729015149756449662233679649991734798687066361069263521126989334807720001881482758180808702064411986989856842084318415230988338962256514330336685123903314114861694158645317159047725437615521484387597442289047733434933083720994531421073355480165563111957859275706147736262591878697402552502734789764433819502776490199081744117240929343966003971010953991654542571797316995836176222470613315132066229064409304580860104258829168854265782743938291222130787549663837387382096716166085716022946988444849262881011176066024133323041513615570548962192369498589477931329147755315722652761931618982938794651657378345398050569812670086044426110739578372018609367703318555932422894659958397204401557714877319327737964895502929332036964057611018890182222662052150461528802920412754032935379121283094477132782261255777124832070410748921855676699254643370058969981903860129141285986101024456682500230836821964034691884655145714942244281331250345773332076507141191267027566207357147776707005320642005892852280632678784679627857436337561519239103354492904948076725655328053234316557575981299584591220007532979311769489479053656141544357424045495111457392267285964596428498403611229720142655213390866343925056166428394670340948308107151298662013593545440742924173247370726147250323783894270416674444523029995903363508622614471060342991073410847620375078116016622754556835080562388077520373604936733243508688262819528964055735469168170143706592469846216664016158168767867756416630415261029234301190057078518168897724171544758487540587867759090897457001129017041446940086900878755905038846036879389358256627144001890183545756026989296589969545685911601474587789939397342428697855923056772411548515452811043774848083033332091304344448661700647895897107791103794857237998135353386680837880000351117340580746919027484127234286375861508819540679813937331532200435241082781215746601868044072867919995685584150557873645646694635903575250731762774829518484253675279278130348896099445288792560936898836558620751546888832154023660113639001721997386285162976281777236713965648757672408787887536272143289054172758400960018601669296185960536497371358702235983477039047662863832025594147700072697159093248742908675362955292692114703552509800695573533120310732334317621978921967643761974211609517868477953465418811522585836939438078662778062956300329489853294281993566768379481222752864095117532625948340500485393662697598543028026203445127095137733994595507359851169792035917533055546440074139045450122802658169188862490223743297409668673722918168759607609645321937691579374063473241723339664237436815275340793257111000079602273187616724420426913737476480214422530831380202705133695335729970722677344485903640981643650258362922113028700251571699146194103151024242697106925128560588686033485454981356308309285954132669885996232746324838809824989395132609854064412954030695283098465909607700347360574988601978076769154479826749250710102106062185263633477259578845027219060724947167929613053339175490335390651059602619343400410860338408835577741028151450658450713487010815542396666405198545129712420304434803452523379433339307192343402893598519844463182549890792113763958492570744645631329664598950735527425642763129544557369510509415604955066216877351820790921778542358539973340305919638479128719951481280710142487669710188053404253744879984327278679245427096413795804904249779817988699620633513486161592303693827153784945203416537349350004220144352722124415096993543213528057657205931326484566264669383803546097305143230087628010790846418942121080240297217218889543626837682563955625283305774365381080128192387854234582213634359305860319680166764492630720582174973279781255736581590620883342258181504303242799756055318971229069731152825222346989791722804872290896750134360380377709327127707571967406040468904752003911484504832603807565050703789397897546311563402697202886223063230197129825121624159987840487750268692895668705341676162798374300086069468703567280130206063222274030171009693474153407033570676753844999321635971380602742421190043881745336173841148749050261130837432769122546690738054202088240767360562658624873620123296417730944259484114517746924391405995703655065393183524558803798594782519183875446087622563373597234260484058241590321754814530813870545092662598488573660978972949653022822083773998292155675445340019271932251068599921055411396760140866903633459984054984123024293431410959687645697555749045195482083208871065326736281522024572579027314263400689165853130992391472800430028368438689159301767144731827398585607912578386749807062288253632837819936024070115716517049557851319859187702910413091905102571008314443287626126470032132783554138956130820740128909870059980878181890470711785908690728231319940279788106965364574282147684774165862495808225306685325920176717313104872435725959978110050214753457214166981131728296657580319891805920977461428751034782951653176888258952360881310083414499286525864638959968128287638692463639202581556832115780325047306464108997962487689203840845975856518612755723093782424490603797693951248778773594772843739336943799117591210472713097567360023618189516086981923015680194600517999346989025257675844515833138187285706497137692941816931952036024327286039644927134871903197023408795512815830341539169787687789055272096779109167646634561378960394353676232884476622957291497452689032002089475723184069656314339244283633568685906683585117117036317941264511979017795106983554028222461529184906665420135771517626838358263975090817756588896243736583245617104521923131145504185401923347766972970588065303348799183171783950450724626764028317505917872977989873722201903318411248859182192624128277595586700528521059183231647211732545084067670852132149171485243857628531801469300562251414587636118539796436304941960604893548793648453792519526599841862415997438951996048695706472829872128429659718618839723876998553646024974097454448063128150479621948836019420789373417425711303428698014615583403982155418804709984408520441840196309513333589209150805918761834207066587519778575293203356322423697046857334901559796665400957970598530304336358748711287838312562042716864501043598206014654186984976765184582004192723299196391940807480769900118802292427150983242582980555744215882261730447501554806442751251458595081468911559468475882259907507925282730915185609998838236532770569555006304448061992530779294079667661518956425886682971069652033145515888065482849923142916137051814398604867554318161723045495480734078695694337512956822795936261126055624624024832725231644165092103379700166283218154127223016874722922712631308230175251913566193814155437305284583360288998089259555503016507372307039131593273637209548687441338116759844778104826145983921078414500482457836723979025127140431247051637479042380913928707872974884936615505919274736343239553326591770184345458456866490710327052300647983621951620202034065872230277316454855256499694359415214631664657322687583901275981001883480117286191265646372721633585385975087754576462214501378153085767181407796471198126270940884079440986642766423785617375070781468814683248729065956171091092601236894554584032773202093078473838166644203555722620073796263158330669515624053203560225601150423923858468186075765146930328104833828320783981977269777735639572206140325559755355293754809309925259604253530601721951028297064773137420969811166562040357391107888940174191330025908723754445082796642441278000317171437059175378788952074647915895181446709188921370706136248987072719530103762645047567617900767001926766665867053918668925544830555514565567562392524926334844520198414720681321529110163507113339724380739483299937371652184650259557734946385811181343737714641820805474632643493053059563885872652920825130923645772071028796452249860502706832081931994424957599277688247415722294096106373836555110043293258734505459975955586518987824111494879321653379981587961488235115701839711550531900192096343267248993822363321695563295529623183445704992082617276668948681069348920013491780392156210056477245722135258678062622568613020998421209327102254422485312837935204030180162706272229033479900271144972158578681600312819702391810161076934788951496025943481171146032666602741608490572810885889677974579426119996649209274984297657089729618580234552948957221402975530803792733684922008040765616784611899713012169353096317070205397639295064235090355203542801057604032150481333496254904882301930487485190587348896506684923357014327981185063567840331276903042934376261872804119625445810597391644333541794446047957437071712916682779903493796813798678437739943658512249539749237964370912987885929965319520786934948413833089529081441726319445726182609448026893337472033484293316557047220218052245074423574849419722414677488032699010847105751835989950364396308064737819320136852742616958486518288830659848582639058393330292684494531001872540474353185770402375929608467416773140966684934610514565507009180433502913432959160798435058332323369899650782229426294923111944409703362820519088880064355079510738696794249775442586962177882258136341468154025667725762120462486373918432962332763956665160740312277409521179385003434398619212825757880751892347198248888700636553350022954397286385629488074361086563378384833907043720065253729700732069913737531301446388632376665852965787207486276525484032879088394798236192758729639494889475896751229803813641113845310649388739323000265035795167310784178233082710605532091604290122822615771993532047119593551348328301167032775652349918058988443850145802599030636352146439876536737380843025930828779706926554460032479899723778785808154626003591604200857087482535070472385423121463738027620362750156751341953731151009769995596172015216056971633458129902583573941808679313786789513319940380515568569788800549023027514183758038940133250998135041754129685887319658195102711840036715042797147815369024840868408888243922240104260086682955077081636016270441123743711298066232862347499540404277323820590794091021568049617750712235702674364260974825388974496770703345967739482995039375617280450442729848707100658585261145903798393987594519515296944378047728951928642984774622134529599971003919309627183950523474351711050411212527387733716284758479310745063414924714647328147542769628141591595048184819435183573838213486853750702732379371956202050993317115690772694296242841705638754938147716641560406770052745629892168611544982724738908556659661295225272212824323965499302497151952261920853130435432433376440551773425170361607301625158764576697923270160264110207390649742914879287078005094146335883649585909111253187475261623678550637308746386199068114358130733743506197478695541847246533539043460113540317007804573341450470208064554092527484654853017314408247384317675867245742729384533448996118921803876949406454554768977118848787287369713923762292146054966441961854315764277580924429078249412503111492497323591046276226475001788667815268473931865592615317383811057691094911936034777017553558898774770429959317825022044548022528753768667210174176839022074940410303761696900410540692449108882641740784700492787101391189053422155995966727876453888370857229000159258181629839293858740652089758984194143610287114487456612460201656244264628207823517918839372500145034218886304542451581600004237951716216151951756844289554318286515692735088959296641628108404345699484449506398012809443743287922725657085260601096911924808903082484530774737945858375228110807955513005039058612981045479829278768410220632559495550447850869471515597858718708438478503300831562601933978936743058191497371140180842647990656772451958378640372795334720663193200542454886931447367193143565352430533162067370677778934291354994461860090802816303531130973749820376437612721884959740468812695870762032313416647214799376779603586852819894821551600670517619700579884326810686638948998945769657665987100525513219552212210259387073304389500607597755960937903048205895099499474760020653540415561063548612670299263706723526862298344563088440507323838935293897202044983030204922529281155640109937882012780930461015758341891768832563946114995529648613261459612539208825026144919651487453236471698853782796338426907546493828445404718091326671936007677098422960983581813388201160187305817375205273603576599257764531821328266748536285867392866373538373711001774002143838372847086807672143236087499251367538694303585836934177132839022013660640533049463144889910422100485362683244802344126015683483888602939407935705731841483401786265040350578718052025064027028539978873944524826624820995096397060992002976883600105463372589757186198857693576469715044701236743279923789691084354094401200019321546019788843407472195825879506226517327265218511599375929062810290166361217525052789940811194466474001621823398696220403004140404539773666910932867073349454042310657110752482791571986349515885508237104783242377290421674203742593189606249176579584314363972180039763208033864364826002261247092765011036146247935673253458811668458108406922260709773922255251601932804983893110365783810407275726271821026575910308531272728584704006880746790624742926405821771679058017840157895345951784250709617023049559301711209810745217471817229863370072501451652982835679346605392500043435751998960396191093474585962966678428614973999503998355540341535528632935193411460053305977830932230660885880632243142366660928082232460431205006220402844859859401090555011952845888995842636725419845827485502018164619368916770912193075458395813368885468631823503181903682394963202825453465266088854059146550950945750822958350120716040928884521981179727050611268316404464642361040141883804378225129014375813980826130773402557284074638040556236222974858893126730351823220528225562804537719646670424311791901879895905278899725263369104566243316263882128065945559496005145993918570734195148995441484671267550521240258943655844145279626258330623828139984991872761267103404812083640418175006554892647964283197507571964520450383125013327894358787375361678878004643581769142974725194639698014608120307613089752510212898504262134264580813527896310513776578863351285633159539572935637162580566146287625489832275697235301552130614970392930408217262105014509334646694517872092918892574427258037783346224882806107447228613318358359776365528697000810457645894303902864856238535382495269976430492135727606452623655920551465280273035635787267954101092895329155130056030860051123222183141369934956098091347508246849533251215224357125343698730784608338509639875256617852732898183580856264224221147256719100914071807629054852408205305868699955010840469612910316697873016308358662349235996550221946058313694674273726576402470163670635736213795031490874032677477610264926549945887817273468480412051115842662297932155964571610953995144547560959019829784101350333816637490199978974832683600379507541318060011673496865380999909621538838494124414714175936904118707517433467243936369896520682447161119777209555531829265675746440929617301685681582608432810937229536796673027370912602024787693414933260281432676938594741923703721611761772550431376195677076603868286417884257711057152916711511928217816143495804355385887869849294355487848959721221801774621419230432450740453244723802934252835589946210918647664659349586003602800443648777919149201977145018921192046229151516006556756958694728762815682541030873868269283890251343195824044970770625872360753066518511542272736354138574672907716177860314545611278235267431359418557111892839040273516942625189425425318427422970260595413052841677253908188570814381129869088816394171846139439979287740480265509496991582182853143673445553313914185223362086897487427152358055154357600363449478164825894862727839294072959712133545514401778030327884767604434843673861469557852198617523218770239473310061433880647426532928845974259696858005921643803376499636372945620678643761059982876190520388307909960291600663984573697531991669033185507878257481352375950297857273985159674338750121016112658922746679675192939751283189627365854406988997494536463750874440549735734779313535986984891287385544618746572525384153895151793949677176575012156176672848153868208644040715318536674084920920901191599436907237212358425208022477679793351671252485732446717683413302269788133415202620689301606753875235275102634364390057896821588746391082271287190654492810088273465142967833379504886729327465275546339078663106407292392820712994066146320683768666477463733093045780551924950479156483727194136673766737698477546241487280167105861465037104024471429957791417728156827500163481212437711042835418605378339842430849222770780021713870753466853003017983948772709583841845242609088916561402630397571644480303224581640535306104274020448543707639032538396066040065410307017685954046802148069598431372520922164853676902674149117428966691206680258705325352980428918708422618666657323042963764544981596891698144840392377118303520240444651639699599862481043315604404165281637071260484610174277385691350729519335004338306610171026632204864080519367238581629130472789140252846352705360603692525355521059332999731848558334374542365191671236336813550258675634562934583381343977009015691113254884298150759912934298223952932325583247582758128375427913107366473067625088435812702278995034682057535968782167354159337778491191891125775341307577944244979861207529931369254463297173361719161248872291186334747870152309549472036073518520622670665794578671577186063606005966997804720778544990015536741384937928810409770410842854895250702964889852242724093857868134750873839425880768113741126646155744726134171338363523978422878096866426103055803698368406645562772328529450395573086473321471549199242687711133097595031135258470711541354565391973236402628811246659255276569508772891401308710222690038663136379305701047730032713629865861636072517987381982119068141235459986476529243200139974785470817620226013521393333409693089724320246464139040774537425179500542348355775268195500266208608279872037567437276621243988606020273243676831924738224555482653286481804058721953223844635593903765173624542551914516625071136175112793289825079005757262891575643879270384547597199570478571372312949000876283235277760455711471979454620414404570137834387618124521953914266990088956091820363744882356275984932987287930197881692657750362625534351210136190649906947414576329860868876794901522856207902546141040713437888240409845907009404278936963130971349802712171611113412830195645855439756798347575335967230499917799351256382568885948516224626588278429254825232332372955177420551355425873072735915212874874772440113316829026419488355749471995063056889087942010570984388975871574564426109898409871165116946036602906417727887574254971692386524514176249685736324715976500021503129716028752658156986615597478820950618933395451818764368766668957798676221858341584676139506535532407096177368515544305072782956415167499612638704556731253230596083126760188795765907385060308831886470834243199088889997130742611291893526979041079706209369417493648838396076068157000133672380067176785813194757342563023831811398199127719319827143414262709571470692861083814843096670886339601240202121027680334204331628317016961866021399675595710111417508041305731700695656193973582607101999621824764927893480091544075227330888710712263161966627326918716627371040667332595204098792252124104531715477080617067831821382169557473558321974390757608819251467991227887340961656572125371271502796307669944691805437653972609175908104577611883808867441737388604576743529370263155124989453276648061260710565134994653250831831223066213838667431443742867243825120697164963072333156542816350753400728252673327702115159088315549695901837446784576645385708764243461149280563741794359803601775292603058268856999406932797588195698525680016101243102483643534195782903350145896242997703279034818000889621742238735225358653601883906744896788688038031817859165299670804638973046752813154430136699979971197370251232526617802270353062879253372687668485285845636430030957710536445233128528845837860337053931640918448468738976814032564646062004824792245125809834826754717380412938469608616325270349443789754518186405733958643929345636591360837189344184398570391827068174556331134890657300303124404372060264690260090809953697168957516416828120211452666759639036060374602875693457339493444796392196828838653387831778504890047255508708927684224495632727759239513959925624762463936597231832139603389918907468056916429151206097835897026524886682978252909995218278158621146257832586638742060899059364993397685125173090805486232467467967825448320531088206483400228279173925879596629509642350987254229353604154135818226161586002080863924159811403994963047485426983794453874985094738532219893534435136309361711472228963259893053658433235100255087413731327813130122187485666355865317523296538195649955134821792324033993145567149010460695310879669570534712425610771184891898660362309713683631140152200001583206885663666868758687476370127236149398705988977909405060643007373296741751547760220208975933968735823851423821760733474080557671499358512686395483521479530643714413899284751383134177400216234589253642030656487648448728227029397235272673353737696419031338528574141605209791989202208658184669256609612417499039805351302040614830471891546019023756430388902598910077712489882473247941314600332587268304501308556099971739188355936119098582383335154514572934060843243944001640656728091894080940056477756763567385517673594386157080594239681847509612058305716023815207656412399162920202866611231330779315098013564666408990519045567192602165130281536585845876737917330605202181237208974893810893686614149957659880250000691350169046395974927577092762554830483461141597237576104310535338423953352135170399078814925519297786503296465196588556703100763401202695066761113482866182455709431406454967463595151721637184685765031125104937951972763822967802395331373395201681123382530501265471412928914822148527359122087325285429606100577959712338971297123482526759005917360159972490130927608973577059570361178798476730564580072097006582461791429518551229637321071368339870844950309685622933829831301757663573457968285702413096570998734581403252188511479155397567168256012988411180097446032719742922337410734456865343638033796307136745304435368345785668889182760906561473264004711655983348450376201184374476206332737037399134913817109365243121979559508999852934452669184823947379092270935703246837791096578544071636316477991744047384759134740798440759701074844012203689734173830775027078741095853130768610453938299034992753253500650749110566334210306312914070067759244345170184018169270966363000115876101593256071548457593083880483268685208651993621351858897354529600813684040504359372036298706242088560530967323571101249506204477022623584785318435582090184500486804152576727407733973623025587157937254488760077344665527387960020609484579534214422022351426510815246153551113713548982935069145013989661121678651042405863813103340780038886583574187680494794840798252928250427526209219389286356393935404494581718109270774120756213605734904413764726862916917095155441024257925350119877898238570898273019989529532441348156785068838333599186309043475190036965950496388620216329368183242945556162770314148939534114833571714434770918705277556977794162108841561124099480219794229448955401813902173175759641648931687689937282810267328073195850515284111503549811143517847798507033461954744490306410432882722972935301153063620458828241924896032819385388534023321112767940551004803094767716375582633919011723785400736489839047139313138189456433723586534160110178637650172765275564072538945483550785721188059663981145859105701881888200634098129883439037773590431666614458774853449642436989104805981063043921899014937274258471617518719311452385266056229990268280628330403768848830132709227306988869105729454530764165405287375789500599312057666432520779849680428135265745129144392651576747135239358145794091082149541998722037150456326140739192030766029325705931416006756594186384542648063578121912239067909338455485247231025729212420894216878947588183646982340338064953661587544694525422724970350582860034302203913979301461262205038112640975881035549943805243960922862949296511385878956485497197787601483610843915634708826011839706584687701526453670710895284097590036118813687203474474828150313059928646302306192379620126101287946697550513477590233655202665050345838759437515843089952833397174892414249117739823143800678315909674072712307100962622784459665311541422567551991310154625565719084609969910576241129025966327760016811307315614355139081062411225535123262913853782886769736719044894091125165052824792210193445122513587765378169742415096664487638785221120406760292448145252039483046831983800119474314154820043551950467478414679411678561791631388897740843438254913961193637440041283829934438853772570963044975685493754930612740963145749491721630397815399210170808352979800906818447072113700904913790922837417865333937424506510988485960102745190192637051073697819896973211560604679360594521478091361403756750894422862986228349725350367215294084377548990051849651008332083661002548116230516887872591723792000502507274290825159528563252676590508313555620135107550961277097838617927596514876500805089425303673946893470359677583006188652769585466160744212341960974466308936603262726199127751501637151734375927755376267507795803989799739380402538670289328145008607768475582323079031302755303472939905457178582918056468451937190920725186594646054348224179394558613010155397002448031931900644173083159076736055517348540381962972590890097097094558284460484689379983087307849133150501415397238146674363032782965674788951374397414806168104268441634933011528524324688799512513498839791320057241532256011599040379744838716440233518258069776900994322471826597246504988383145033748867581400107277178123752521278861622508232649655433025797833289052198804574525075011269837679487984491266638807485355583730789580343657406173785061238852674851621444306990347444907675808859957486880886558946505474730881983081178821359691722569121120304853892786410589296266100612428110364428547821542248281267659364483596210492631494002643730441792303525578001562976659206691366637317330881215688331012898521501558641927643469827754700439045052374907236638022164116430278548918803363193311886683969246311358201702777965828986227049816693641202810769195196010470935242270659970744237929821294378886888798003705709696673080433417897318092579876557811296678404993433355887416307849701638542028495646662441297795352516422720819915137047466027449533961167892850803783792180781742098389122057920337304481815833998466025880667144335140192082203816865271493993751803227123133706302157352700036272411730390088689004869627849787868650415575711007721420055101637532225610008621499737306310525702619536877470154249193416250725684999373962285510804553438780657932359443831883613182729589906464548934093378592782115167845791866152772722574266734167297743202460374661127156605107544729307666770723737037661537732954187144704949515320423564873680063018890597638406662868041858657074653298799882172405897407849217528896303232267016518567829846477104830019615726575075071723904688828597858834135645147736362327197302168397387964034207964317738958751842706104335063784863958299046824509962056157135191812213380918295587097011632181329941853403394784053294588558233239515389762789117006851297355192781623797874945714295385430023893284926138922932418313517461956630055544723860149025565956604201892908986848750041454564108625373807591392313351782750916934027711242682759068139841247845609730821644013710431037830023935372849160355075771805145795892655254451581541032146025239199348876318277220408077383154564985399732137846052849601307424785327662756943067117316592363801587903337902671152634982639854857538012755071004463915496542361920559975965022140931389818341732061719601926820027715214141848192534165476326061289283089990117211302930022526381335141787397897153508288870345919691978366068648190138303854656953797453102457411042082589798543302208522506384660196974081705958157368094066278027811758510865138144292084006734713674824365214628964483726075285741986595632940486940039229704453275040278493970935700321233800083234709524909120214369515273744485066786676111418835102279383247123512329219600882376308453573950883819545387769585293683526741751833754180552977783591574042544097322280347606358212106727557264798680703571274663435308721978669462386874769202087368530217300027107978163787518468757018941215017527175662562807042575057347636913019380644707211923497944776656405777682708151802036533634653850774524585085854093010701009206073634497088879267713786928443898784020068213963129921021922535106895783690377026955431186467244529514036621225713439570838140242693248605158509568221712799245901593038890095137002044822007696384086419599473299747235929150675481635910291052427473466751909366651978056526076410863071669585035998276481259871316795788449719788211606283847354815150809768174018734371404980847418856775527118443490177709627339439695176420111175568306391445273326765984842124011486732873864161096088046026743105755361360934619424104222720095219629728362638541420223325361772871591738765221344557317545142686908121308874135066427465335412319772200110707894899185913157409144025635025739914304018806826869563123807307042750940062420192395682173230080543423059259202384745547832886088226650393251264064060097262987143508726419629365709569509367535939648431651913108366567647011342606792120572644281320823316697011363659487102067110476561233740967601803227386746991439933410918432452774487223002759068695261238527663785599468452140509717563554516998112678990452810341038422123192133967265496657999210558107160490842971751129044755474485631184371400564320165761773277207910916190111502245375111707433761374535810028804506961799425816739113293908130895400884001365160934724216928695246432383848148699940333673542780719389334472500591134319362267428180466389759888523691813883062169875132888600373883605761938135531647782431015349309658758333661664491120731436045893364168068426272143636661200025442376177220626844508419562782571103317703450875605353728309414158283482689263276755839236415870377632880241916180872502099954232608321422835909036953333474191618056103087945057163914810889071036660593080638254766874406604905852491492520958211108034168145465996651443059742845512917464236681338935224134953139786360816361964117186464671464501755260790942241098894128481210785022777059621113402784984624559560846932078535405623439797827651302699661438084976413473423918306664240834097625540954211506922080130931800396105873916386086870360029093754811870392730969481111122736427328860390259075586139073913142007184924525794158577551464087646772398008472734506780398791813663364368521515036629307454835205005206560290026808898444057003736173663090163724415507308684850897177096541516975373721135119033407462238653582846762096484197289504179526023598758542400277046806190381533112519248856308367879118440196494943436662010524650469761644209587720522126994484447516013421883751583785169475448766408625262734939771052484430337738952163756623247625879826473268903755374484488565987192913567968842006823649783079087699120115877496925073944106540035983980775778800585294518295268347205422628795015023500862466147648551887401100598745028507247994839083190278270338608527980927046088465063901254348056803057973207449352914935673180176096431074881073969330354249997172568446800073299808719495501125038273085158721547717589163705015876687367838237647272254540497720798612252360061869315422790446448308023769623331981067743408614648014344855792978757465816752985597548559820083952306084117080704296092691025493922964613627144296880003756199142921213523163421813147613238684245739662807346171931867998685142662151508437078777377220701731934217775507552007595322355348035477746896025104083889230754018501438935708999501162278379836056785425969906340115594497522660176438733632789626343330553909895285472233409587093962567461377708621006473573491213017397990400932664034341904962375605635206036315764504184338102344972985774852481881905561215806675515700857167465914872106947243826665752941123921885793918430830115381464687155651037236174840084003061985506374910969456132011798644115905779220431742490210258085609175053088420156367767100793185920454584468614557863699326901653721129276671025825178764495295856325014754119344959189977297118197093925557583891500224038418708219336849836770378033239078955898474932865202833459403577114093294534836017812094140495884492355074254950031490630446838185056521982571860661175196614064272896743496295307688103272746231142015081195316670955789436881929081866421226501962937439581929134910497872799703176834065506604015306014517213209784329776816142938043821321167096789533574524068741335580050013520967904702638470287800355581434516784019083926516960971456278056472355157182834170168097252301231693039138280128083964979445911874567435925655355319610726730041958878706501328995691693276316203300566238399881084709214091583417759635002211819111734782637402546234002245355502394359472499512877857338371012915632701954270543522795263841297319953409767649830569906512003109149504985419088672538943671278705372192171887332204426359817289975875689285732869251587769820461133855040896980603100764972528738894434737614342191569543401274003874814979073357787707550660042600651103174029011221123106703422285949853789396652319898960199959061158512207058837925075802635579086002514093527516078711735538406610899623328794322008873741496806036983179786594605717295141379194275829645864209092428460167656024759064168073933399828278372130240462355880365225432040037338928914255204815070980016863263882744813445719998328999314100318705892680386194050931995318648984558142304353431562469002875582240724362549578257471758970813224359711742418155698831988930438758611993678549498193895061964853610463243327268496667669277013886083635173195112425621296996706066503148820051851422897619916291341468221342751714931915679585153261236610038885519791791700549747575050437771471289264480125353954809074283102103101705663360435097992422488705698138488478700374830545798230796971998942389313520320923715487310942946347028513372879926542386416744831468336513247138644798333821027449150456941158959623196612418994342605125157828859963677813626165608061623754654161551724300071015907538145140945746643574271777188236288025231202434660355717602083078241147406993129503123318954963440990035377459931489072907633947662171540359581391710017490717283253457771511780739111939379425816019049624624535426746074512769034037193223401646403661855259680399475919460850932392000579223601169267513239294258771733781945180120366311187447082978249169159609834737537745465735016828795389612655441214343145806140570278148199856571785458083312353220352202603564823575487110891798173361481703748075109078902486667090885574475217994860636209724020197392697234013989873251856800849650059272401759017377976196807193137601434954432337446440695475288581579540122163416074932861226187189924964580129744097488127370891100910747209722467728322294570536158784301177800831720889459401459400211277563750987779486892362418442712008682585866065849126827242995993424482610454470726112962060407001608989970972262240480087039078397930832004696544855878422565839355256298752508169128795965722039458434862427134367644414698465070175607960864961028037086615764213646649096314164712551369772117049865242988913778994713231806295004365190141081663580132625000712612655451528892066055175344924076982877841370975259345539377587764706144303755454886887627774202730539343460710446617535997408138046681593970797010688968419712715642604236777345493405168324637547370354814466490656859097457696971084440558044399704842167762230200857969450513691295098256514624596121098246575747834614303938525292045841572633233854984444100704089528487134278783879814287063719952266019602427463991624816378558811545836121784613093757213616943056609077826072125183697995009618695172471675145282959183975239269391722144863550726974224549656236635498442604866350857318426725410860317642764652241988736890967821953523760755648298735989529173521264309523270657342452256938347325256253338269509024154038596589313859184846537089852152252451932471840586311012941989344734943629861566971221477933662802172287995477191230432817198431601599858998237436679689874637921009810391228851828999125455451231768181113491652601333239145520779070877096819868404708222737403635945529031005845011203275012804469498547736284337773889685774984361352870779265925634906879914633097305642288934584047118960115582088039981731776013295303574443952111466835997972379028054031467992998643296184686600582618309175647942106126623884362227920247251677042763005956306235549868768687301480169978450794332844789722722432943825558639292960054737428981601869543004787816010622046938573941696186668725180956024837444433854303584138758885377008384851980252765340104017583211573819296608264264303225365707771421359782685473761412084700027112736591231569602375699389481294551213275444477441680638814111295462248187557920054631119684368039539347415010963714516339293636869090369136707800492588836612772856337286433017133438583813740551476603324517392371254789253635319003441252261573738529854213250281686503059740836058224711384304632778084136855217402662567339383377694445915313970431337798306392761325547273898202202204255924741425846750751964697033361581550824419087064870991883473931788035116583511826321553678607417254221727831292104386557426113129092022529133157007455049926410834968978199378706546560696605492036590573701666274342176392757744665359427650186842876689067000517910875269579171496683116682248553781382125264667280518383132656260067341750971877302733075631954715267359716254179762492724766981333077308419204502645753154848152897706377918782960197481239801256809093071173560339522581960203295241620549713855784302906592173887906548440589422435927494445264141653411882194131943128331840000929249683393200163240964276448218339538484405662848952923365395144820191865848530858003570116938454884978233772370723266900364262845816491172797768415303570006053301565853469423959698217179750930487540570707818778540892484757171431996477301077440360034351275820971205854802573931951636958633147994831293861091540449903766610521577498974765529149332573615059082142344693542101895396036076293489656394662539268519391224183459728888617089502648032914810602211852242144180389962108541895106568663172065775543149664295561503588116302469189266523700331145162338075158445656242175125769092990255555515112641422447212803207896361862897987224838379727448292286780587394639434523416888043062199558447772579132222882675622076491526029518035507398836120070463829540266670505127666137317814159774558087695528723065891314483269820465247611723783687436397606280894892797967590364278028935937712560059484852750035378198047274835155721232358411264477176829276728632406718695273611526883420015441470564959191401335860026640500467715291405138739840984523636300082124342125015338617061780186075215580691967369743961590439323842015744783704778564238561942841524759438801262105667853008133877867999818971366960072800559772313656369633230688825156039074610452973544248615546904298428703211151264764543810394916682578024349820734524599016201896132384261534337174846938114973414883935302701738194648071570464323641455147091381204082839940227372753056539217161351456256808010818478134646648610735622878873193062941980035765562540329232302366250391952240329385618099627568938238457953851085980114416819198856179151889722842338875986013475113044991775728250278760822307876760930550156384870232966926227323752671403318834382388944383299066527108762496467780955898067213198871505886360058163447350580463471228132390309038543610216695966456428819907565725776907828599308617923022798526468532894252335426338763946213173609310405972119818833390773278386841367669939586613361960657893352066909635703544684237927730719157705963706401365638444080444550369107966209271490115664521636638861808154990261798641661314985831964911473432988014680919002753375511902013716732290376638329537128702246104483126355262418005144343213910436537426935523240342309685687877811635059819467495955490391294454882731409376072891770521108227517333783901042574031287959688295481325412145562719594138674306422225872738693518388412563832399247673673575644180617552132189818204864081145623007480291109489951697171601258011609742991753231788235624931596889657408052604037363715141064981636747072610759402742727113468150657390959666882955031318654877272411835661812819577657222578715970122649113183285172760813842934622399831416686236910042680449075362099395691583075575949804013980294670814626342568049318666897486129778916940381688416082420817883322058792469464102667147354160156971712139093268970780004103222534231874147070186363082709197507579816620041007011359752944643855222155454214943984220288968304012994232706207188671264609871261172387541869436220470796571112402540642528135617900511553296548055552306781256759334129732865632390974052787115999178719584628599649224560898494148715274450691153330697869523604568695820587291958600850135593442494679940801072875867310628365531542732029429850219205761810895856138152224323101606539174349299329526364157645621886742764493008098523394253882854074470865329526989758280794756045739098187987596767001840973718909536367471807525562293912149242931724221838632202834648884483901966606010589189066824439767685570451468080384029695757577555627285881402540487500643738688371923363812520212453151308559338612630550637228345130229658479727507048448504584610465349046181966038609884603188956031309726696860815647022939911514329762054237278481987226693245959101079218624710449017487371423580638193549985600617588190577851123173346472072520430991698906672096319411892955897662537807453578229353519425275680460248646985429038714385547854325699472512539090257067249340552353135366252261913597978289041928766340157678272902763673039026982156812791623184249942921908385843856774844018371459656663370146137722098051965418570347507574746208061433594307900573778933371621735862165405862465301961555932670479755498185237821235689472540955900088059296293829325410871082064077436346868654607749292294665030305605713727407413112905684669443260718201361298584260560476724197618891480918852048013019880865303984879731596918478340869394345819321062369462138518342241176660668286820157951749413077099397749035048630151420001106274717349697271039597808143562545338702880871279441007781440833029480344557906862201926044845178433554362646023825384823302781128014727112951566536456374420801197356151212527717078953519612010082033451858102033920867990224884132709817667327103709434045927473951387692414445562270747035741534742741539826781428555552366198302120105371370867968469065281689774976376555684060035881771507020458806245401781013584260452233402204790421479524402286647039870024790546389721227664531270878427396382929915577560371553713520006492640416732782652959556546387418611886779683256246692852675610459058658521179853292294185559978506972690502733176866617717207163188661026251838128313178816421882572160575802813718905737362647386073956942623977452215903127046924107287426699320002455545184237771284252068790776843083026873623111081231813932213546672072044886327825746392640678232420587141031407995043538336388918060802175287140705751210204080442925253906240057994059552452154521607846437756475040828077462743856556281072176230488585917728701965110966552137306209403811498894545293485911944878694100322495341655530821844334861551623011961783521626033628662880378545066958699609121795565422151381166222953627502711358809789937860580733322309990582225631628619520335399260697916192781296902419249091050018599564018376141248146411744616691378018534820624095033040765835738733683217471545693857100416755107414685405145461615507169202586915162209242313240947022883087563283960466563609291947579031270692281660411229519817550690769861630204010124785659395747971745337408328915469331418827301107034935361811584932221383880120157230001395495570045148409770003899119593156864012926628327913379020639346487259608409816897787639519255278308077458454066320890777853914183028717595871723044914085313993062591633716493784902751402790310728759067850949988209997266764300966487599291388840921349179442207109552864747760653281938853614694466886171263181864878045758617319074713006901400565369925847605379564037488927477870419444088555903999688880987993628285372829410282680916441771638212742379487568960229613798390874803788683592358174211979821702618448551705818910835058904318097241458713131404811961103643471391173371537941275522020141761528083057138836275738316640046677655597488722955351447009640529207754224907595845294679368312632766622872242923239470670274445520596248552898743430612280874149311082897504206770791526950029838860651741841934166897845481619945383418752229535275070521422886427457972093598202811469739106833487994478598817871885077027468829202315839095592089904650222059451922714545461090363785254020545200806775852793263930371468098584002514082850892531109064005531044063139747282109124676601898713838522094535675082941059614190567996348573732448486222584661203502883159844026971499861072374259256554070094237597489188327454903427761108922734685910915110339187780687694368195731424834779066324911866551392576926564941511969824737980096285290903893974281850082583715601681816569847293827959428410857476831569766184516142551944459837404305172948520048877362204880196415409986202366520502678060330430810356490608898893717919479630903858513485410116773850003478152283229307639586796220893052032849355862638375895408752019418852241816232333909183670838616397159057517972473931708608679164590622775568903223076554226590360187694803464566610191355163020964812832923576765480835697744744227437654300748514922200786819315571541739442678222843703100779313408087966225209222898461968337276273175002863721313939989630041320995050925630928946734549327151160591418357633147575251778349561522216226782102349622746597535175398092382434954468636539681370648572594625487155921540547917874345492506975700463312340503042233069742287954398748715421679003964911543197820512737178462929782781690217539533379666388337266349257737813405037268908500229607283664252301503963847931675631300993864173318528256812740187437103839604783246744655035927291756212516828144868846188086380931013713919845642943201225005667571018728114529516967870656058515269130601891337810001216296426081600607096243602321589838793727477941513729122716943680644471346678450978185857910976613332871526392762014665078281754491365357702047633725126476091467640177304377117640190482246859476530123077336780634068837009561997535877714716511309246974028597102030905049955538000630483040942426685663964580373477367635925378869417456134122198071292327315644839677208426128389548137121736275975959846656833859003924692382877502311541220983080631820412418012952167134563114609263179667564217159231008106958645918484814917554892522472860435480861124858301655599711391370953622793452756551433208230494547732194743331482886694359886520230423710101803495849836781500945565423710621719401603049121475167263385404668692578330261099731138997843070802889770146090836928400586963519266404958441728569085799700467839011736546544861996844424132936896375873977553123425806714027020870180293124496381400076526639214101859505166233052094307519876207217484518833322242118146059626851296350429271798065471438835368001243297762060972919679794684642589607724238771114725559771159368778664843112151568444283045756999960727576736332655881553839584649831806819942293225702715732967157186509684891051483412197775176141293306228899633722558155754916920546890472812262587865504403638197275743471438331616182055061304150165653199891928396800127063082797722451001402451597854439984570361660645414337744816035873141100255639545914899611092190205217900617058262219415689225000063875640226950293055399387315919062506978359928703195633536783119811596402693070771897117407745167718841687613846533427262439895959363490527253593859213708892637927235597690868458112077636681342946940770399831528923605688760398585371551162058099964074777278499043628199913272603074921683643699191309591920493978713629206716923229810172736131150251099453828815810581317822227175025490555574075201939598424019464025237052108741530230509463299419290968796947532451475420578990428326079684456204153605209631863919162856361706081681850917854547662920126195026985356618033959364205389866823632599710868044291981392229050191791585149349389500035607079376946428097109311415925854686583034529726989947097455877222204336254830069659363807823731038537793900862857853126154439565466094998568490524848438206524463093489935957173200633139121376063289442991576060104980210106443076718572594129136082784205491935849994686126935416124361012653880812705375533751788596540506127391435919047518356372317246073657471302780366249818538854048978671551845151977204417858376536476103809687006628121663188456677181582350246966309694452443469485941132474846004059696306527561167080514182992146269228909316144842892686200618012402898543501199606098929497182745319667095892216231788409185113799422605003687349572205213517444188173246681239283028319193379915172207141894877613454502657187149451710777918674287036291529369374488682815311741880638468588006808777182547004306725607035565091462115602077797337596683039651144482770864776752955596440662869857917434239847473230017410368839969547830569399391340349613629293649113735361255815398039096338180627871557498104758313844790557613476442311864544084356151303018043074554997076412208811401920002198384602890072038612563213474550561830807554412751791766684021261881699439379068831277508414584728301737372689668001523403453025030197484555125126704496677635739459595483367558526645656838446776489512563697716728505290311381602665908132863578548576215476527960511422803113839783644523372901958217164718058560084617111436758852836651953503057785177034311652440461997047867130776764987660619673512463484527268266613261048832336417690941804897646270192050882492314094753885637319018280874221827204363505999002659204189145543346152647076349147502051814244633658467182731863600084152753155559081458496100790375735448692616617177928300858408444640703894809181019899438247584378741377477731026809447840774562918413109321401212385042860703666261334482157579907322494262249620608376520420956492563907475685695077692425969932269018774975023374919294109047210403447435847335830922995708561209003145063841547842778471753655040490963603188088951363504429765095174239470554812176415104101265761689022887016322062511796069180943105071548682041783886465809314908368433347219126485982418719314393318467128710756818619557656982641840202367224118785510930382296335854763283635901512383703701540024504828188695936666494648738162680098210976264915892650699097868495340906575739136421355508252496303705495323483008283407178592613160756680282978871290800291149416396304341252430243114397000465683190256095133655544853808085679693471468978573858997449701221876514551631605013881264849037751693761982706781090071325398524763456450559424020676796067634250571340384710335757266721037280074609608070991791054045718825638890642291453824266758976694479441254483133216676736130619758467274645793354213567400939086768411810191099261143074209932965633120438820284588176644996690905517044577300984382608181899324782954529952424401498694010187713512426173861785690145587446517698686985563337363703476914579925020960027967685091477227132838675411201989482619475327033732341867766348057213505249998147753003369175967796411125141846440792808178141750067992102574135176883468849121853759370666452537614454033295788854340867268094071007273570936670963966297753033974450439206486160886373271894316382176826351415761473289195428784224184163681702879573442222493536866035268933737242884633472934567386717180910686238984995957215232131766965217265480216825174858241813834110477450396406603948591698288823300584298179680892105013596130187289014821028597519751131816340269623864572193013441304167801069610322217862747113536801565495286279365764595261181601696141086098608344842237290114594512808074998292659231837656657520360261391650743806805307221974117809647812379502522606692602679642548807743950156663595293609410828987987609771751337315123272834671930903849991332919387202954006764858155702778204112928619961187567414373006754955876597143526378261952784964190464951676036925959502781899682644451374760042517785765393280357802661741936798000730289280712815899647738713212369205789623186946693136175879917790406180770129170313113182410408418418680184638993286267464550876942321736837947511733392202907240962600634552264730302091590600016062833701071829115536173051376389374565159477186886225118719956738190149408736269424561493879272545412493125129777784811068677406237435825753969983172533432671252069036499370197632290959594911898831660858896489292879848249929160575767326090020632605800176426373039730347883407099547288576317841541443889155585570357661205062397001030137424792894791863040804908325732551477703307514472337850347667423492908145933322979825544772152989992170238459992968794289668511775407114677309184673975591908635078752952978465959895079647986692825479174000665720196956384073823103979194427036651620410797470194316672075211512435155768392986932373532912141598726591306232436593500308460893192265088705213602983679774357246902554510260026322128534937281648981164653839934956296549548077112490160540575541400140564721365672404858186770446455303896488662531664944340350887192395172558465847851046959178682013836442857343821047122364970130323103234269080605236890639942484739161420855563704013872549163390371668261072204422048688756023961646523968571203805604261842131325573349209656646945838306310260360567727859021918546265147795100775284478689742652893744608418717968295880876832448318111582155840630538284115129512907095773368505722327780633401251407137749005746101735336863524171898332326878726514196664363504607043675572568409058594514318790039169145675951396103385278423243892471882309933956833367305625869606400778396578168756987523540955653673151093968134936053574402593875854611249699258360931247447919051664375179267645512896654592879235360215270527868108067694314987424902281344668110997269788944359859021758875669948044905048566519868265624227890904140428710927037149438699979771314875246069983244325182155522076023506051667103500195195917996899121178324859185999898263038798459279234507170456302471471022407282909103930118083527858983143792571717043351812331487303619708417948052892110186257258099399809217176019480419451808401499814214179955269695708091049671587783965148861972110615032660365886756788619702364715317602123662076033228144652459888800721720098491312574654897647335253836323258635472904908388931069686074025047474671888732282147033140862628429436674413877116979592585444252199760873843859716772728855158324237073793596529026646966209261077702450383432973781549390348377211292579129596014590192709879548028185236464432150070288648368765408787204858348110938377994854063031059604258590802254610209174120643403258078363107777640162690743693187698403924434550710298126316742122662928317373786242918239840993508280574193029867668039779272832497003873478549965739089541210185663608843060983211074568102097588556419602603799546917200376516969158017461160734568374942467565930997985822533164304610676714995073165751244498326042033262141804670305726251951011280023290679494261150795438133525200693625194954054912020428503272510843177568587795700036364559324234336843927233319666727182533007305323743304172203016395602610403269860226550504287739695435623025085554132522689627772572795294933354573878970479390908456344221741245289745589123865444802897639547906176750699335401349195187726106249220532805999673228726775369652975881762261553031061563591961629893459530800907019168192051936825428553871797007987741070933426512720823884023427445782349277236825499636376685929889998036650348218425202155776059904913252519439786045235014137142935810523520552030602619152653249229006098952707144750059873701729032972622189182873351207016594084095840167775254604991791599229195275152094773784457807728225861800746108363104549611555472098387025947727583980143969672748445933345226510072138326985189494925482512651365123954500123909648935186547811733702677383065582645521032796069018321152829917194244452836064587810959768472221364726331144856875158997007883467441241016917010482540324560286259817581856583051951625814394900015970626858253979785034432447221634902784614933188058883549242392064296498680419628971916990902650978816668505877654355466129082682053739122725780577821591435124438206798544552307439686858689867078344228439565236882816732848448244510314403207850349164655991819668742571419143901274264126300752813449880609712959681521237551726227808170019768234669456300897094879960593031340582580012416729103101000693063459428833152337508294172991540238636788610565205188505838803068383494483771020497977744464247943815210738386556105997871503168530757078990954803523386128283368058599031931423162068513981945320631982017973953245210542652623853368032085043103618296577396743370740866155338486814389053610431889095952817133654371952181193190872302156013865610546479211273781663646272860912761048362901619177333174645401807928938483228361234523710481501398844310453692984152821440904350452906897282411980798655947072386381218749490777126559863171277725995855689920823381356106391782707679147224796258493790278712247134536196603313775625479793122899057194889158519712986532776674548123966503574116892153533125391756902451319307198973379964891205838478797976256064090037701325449911433324254563025879546829301065389496706362299644885572879286497434566265618251420605406986648938103185025375898925345104540747109111995555776305404143375939429173934319375102235629918201293268157940687934253443520613656649555715424287197219402745099258490084186874046376156504967579654561069831274258946273144799521088348682185195419325401869939282998533828350171083605956908622500357083973177142381092998117279378300747972789749159241065372657306191448062712377881649739540379612892667378186156208653843162395294078844487304952119415724419058699875466654284311206368491415956057343640182336257188505768417477177682669417128447652612566564539032509448101082639877548859037187486252953339689123228966501479221627040555005776392773804907166601950846452578562110904149962355074008357602554163571272090600286380664203290396634029481769781740710519893782411943329105051205820848323643913696055253657279809208717874158588162894172005325419795118485982235348802362047086487835605185918451170862809777019399526307964014052859154705751040002549918570076203085341923543272166332503705827776996365525039735977415092553897521506898624132494323302040611978022337326309535155660560154847290993972907637005026674878834763952773289151720474487002064615225343422294921495469048816817383850547832877929606772526948490264358635651446414294209419875851697796192209271023294315401174033242843197251843699040876907824151565295197985025486007981688389273594685066435905787863696412266871753194863251508803067794542677200905499618550587781420602655320694077118691201081950158231507355736560806633952955468889703928797269296378294450265141408737763933106925543804135635678512866815265450666514824933802793668495119818263107284180109204637141198582869904433572061598363190524279104845548088287827471098555725891787302481112683395744522054724352133314592311976973512009873399585952939655621947441099040984491758536300203400359014775314811941130839113737197250629997410132106542296679069313543153271094176626415009669102671322423556516691234030393256322755396311970597086084040171251465661116672652440744036085575865212602796299404858541139630459632823942627599150205191035153608724523446805156671193090468229837426963718033289286207624129900020649559718891949286147530833984438404203179350606692728087322828440097635514112404074492555571964734281413405320588468740723269842152057345825705316105733612598354790327320874056036369399886101196491070856028815517140921850677628149253081903679404712248111045116070121255452007404800721229702444606445865422580390642331625201948513985602227716309910164757007624208644435578073530872419089281799902513526352299182921681804434751592089814260606763414788104412835352593730082703207199300480125804818406003927503360413580884383494028464274926810967257593762349552930200761989404662573790393420056205805179529878274784914869892147286342768087943144532216538611175090539231358401689681024346206272222409949368783160842131765275646390681275692862487524903199634276998458794623528942705433787555184341738039352460514771546230244304978412795630829959483413480793333127656276891588844611014394280920742529656345392778220226101096004209304849857542314327772102504304515543881863163930532631535831168790327342494056505176872097861763401310533588577300250619362519999803611523068097335853808358941721105904820133890618074813383059705235617608846665641294173151982334591352130905526586625556971256352828782107382128272839151749971110728876588323862230439067742750968528325574582237929754094178512398950313316741087668903863682039012041699719925324752158102111522591506213929428292346409744177043019625815331985789849843403203780543732527954166634447663627636375031846148295741742647704693558060586901862045996056855437354100286070874023576371182975509534055361182817222089685753424629730769249145469770791861054856974909190896214550929641502650740491402108244267543697639765537374797911517787511923419892294996578629715615711046136471462243682482999373284705324969370850677113193611647350889957746244330421663611727030795422492385809886763538751827722546782738441593567186076878239407144758109031446541940838503126082667797045164817607834215362520353564855738713773815320434480180108537818882800976851032309644193090579069450339391699593673200166321213899881242197572293715537493762023722967496684038771868811347364609606107324489974731683728355325004649989059279410041529939240436822534045634385770850955041200391502864323882774502113902403292853289863818320539772650350033496906565295129358300105746687661418351397559161515855198501833714862339571843043805454796420459348143486231430608862551612586440825054156130173600838743432614940665938553921802433353434561844805916748598932473336486428391479170227191414309356035705847067859010567723304148781939340594732287782438432722293985016647156528564551535927638284297513049874232590081158252442710008114184073384597758687976653367783794919364751049332615227431204749028509330661665134111387017156727460100534818426480167442694666523494969733681827520995847196709663978173785836093371532331391220670001673872418331525757870135835239103869841458357322172286262781292067246031438430120128489459801047140895042579995927491610339944343072138237475087263124909770579387051048491861600780352225089452070159731628012409116674720438668245517888896866463794867541379046097289854281422790909686354953046015170578639437936206302045780895021335828218847489730152399817762992490840469398381974599412588590915548361159199287627810235412345344721002661455877388302757706857175537419160080574018659592926870760003258853023958933549902903252652539540265471521576803472096045591877185665081716620223209329828251761143054332509077013655096708051432675810211862214773042299596843133209706371823737537129259250362699688271029515741329285435079496157416810293616126105099803766693978452652424741993599201627072553475925509962224857916848039290083463294043367731613847550366874173576271168576537021861342965126799855759596470402633160604863497450667835640905780611897413305608247906002887901954378423338864373294682393535980023313411003703452520611572477641983384960207244679013785441720563558301500416612764851545981935291520106581409635154406256602419083739402238701678884624403382373360371567517543742170444687920134223899957095614732686089005257165300378929963924260079159772060778559804430025738223899365104977471806836750967432531276720091933522696954006861791324952175613273299478823268916177075143516497353709493478748956005983264266129545106704828206844177968646155916596815954597850203182308706766686697493226632287628572202307783807573975625382306832468846983084619832757065328311905884308599840789442532574199824625324471147550912604400482509637222829772240043038612264776462629572866945037942496396571493702354853543301992057977704030861241007252721512907955095333448392681428856784362869816902691996922064085081060756344201154580402612064188107090665994760677662885145323863188201006853781576100533835856520383766840620544983976669414175603912621235570449841678354186353879035340417497277286870436381619143091944468422498337678482962240108901069579041345964507994040911397793781641140689234960060940500353957985985572675361486549595831365613158014015068101382030477251706874608783224617461599912152951086940444587948299878677586513016406891804623814579130323404975941319294016221703479833059524875287549184381275160816113085053367302143265393278012801580861803581040911364224698679858639393577985677758494572273886775731069017975441422548807410692323586862328169548298199000636721223075287811446684587014629470531109961607053804255899590499870521288645424826771135267178906005583624871369123061603472492621603844181745435122968274222534771344527346055046778825541571895433454584224117312696957047826683055728815791636270934041329464451350190496113616997483397301762395950733420541542206965724183449586995826609657754543687450361147341567523337595400140710432827255378222283919406043543415177362845977917720624846944586498814758578644749076140227000299817892331353639208045463741953059351199763878497345885293270855870336520115158977599102078494917927860512222173770674080146065446367299862569912636911931013502786437767259717671735888062029972270623418751550401441875435640106634179010786471123760624028825696712844651897657829953022962811483198915956674583023764247914823911593026508127346450517562033560192170329475037045460842962575232442148531458893151995823381167673770689838733980518402086764175548828778697742335080084776708317911582386358814953271696084796516818291985230974580020528233180188977665866587289072133888611992647366696506935989752885003007617505489010135441814489722832434821006286472095234195123934141403109818756347395219950878652429582117109422232933304291739606285749261842215295486816140249863355414031342733278103560343311208704815491687794828049007641686770961324632833644004704601013071520780821421622604856147960974765148711312798227255600718220623695958568228792317648989460053718889497705847954980348819211434636313945741093045134731342943162423345392265129026205195755826533958068580832824397661310041664784945054939008664961767915002646469218466777962257287456767563000760726091495198894306791344795029856074635211106194873518805527331718460543554476663264287758184601339823205302542939634809217249139853051579324864759907529962599242776597659147619105200040046318743438396498762920022889738542006474801133463486744931704768339574326401944085240082358970113219211735238851361057503983596407490924498377290297220426322201831142429699543894908219109128215251376068243670619043362162932064940153834219631747943228071792799895442486618058703308378856081960434995661231964855800408465972612081839841998179111108422447970075610232513784028851026500819365227021359591925746930867949236552910604218892541567065091841627567238636565866785894685541410753102479993993459577064147041145752689315503476661964419188284607741754941366019856386894062115892514725306763232240986326077829990133782950748334856301532518179203354864294076923329603055433666403310235171948001913698077460960916931491930932788048089564911520004746333239613398316883643784758817995568025547506650521949073931892457952744608084890404990933169096324856055175368092506812954098382927677772517985740269526174203855910212383452770177327235705424834140253501226890709067050176309249432392117717197891769300192805678226548902950325434109767484497260444913685431658719406426976894980993897135606567477496477427244264403763787169870889408679748595106957691716464573540067651864494010789499233132523301965148882216574449551719133554650464554694466058143627888220429017712934789509461176974944196617074223327632410773509257588253062001344095524052335671760099831339212321247846555293000476652990244152947938230516105180830008699062672149874695505078044279094819376320041862963259052973638008607459137401350112179729544994322207827740425319513514896051320882836412096187103740818393530641379408791388893413246028083867066072905440718655146851514926347589929591784975280820259388105545116442835486472775189351634005404647804669999553613155757203821298197479502993552449908608788729661670044401448026081142401847306389217204268975037578102411949362437557704222519181251054349025298070516098741093720237217095053730084207889626013676221930405939363496268944028552978371719622587815420187290702909691728273280820335837359283419054274988955082179385911683917564244285267533946318652657641554526615427195205052203225929861246616265522244554022012135202014353988622468619336284041592103079752263587880259412369449671405184694154716395662409629797658493058708855523321886968797371947039177849738724699115073166174746571495243793207994210666172267484967089560905484371871131510659985158634578508179427297124136563725274012219529992062811993270536200424330366054953638291716859318281937285556663553985279944475562698612119824302235760127376005860271010663774034500412031879885331569051258302588616367896726097740495965022166449486676793686383857586761354543608207052487931287301753734059844229846576868472761824080115339246026639994279090603965207657609463448327947890130577750525496589206924278338378642321603638501109053693927220975290471166668450770336309921321851727055753169625749798911399304572824187607776915547234745897089167123282795348022708185121852687427260391052434733235026004911738407680984990983626264057452002055767123474083030388383804149675394287685719010851261006137168572193369274211831743485315173594801536779768312370027063871425985002804955448960186231790181942722615579486073820918676254147639741416412951602113274960325920805168039256253929639492840271032239337007552563314402190948561692185813211620259151012121374193557638796841776349267635993554864099764373278183102885997697977704901147968915983600354133758866110610367846865252768388676322534385659795123808657545538673298782876411527730229333135745446580450421493598106413390498175435600628435082311940783147741958657168899948915562697091391061259169069816061483707511587469590312175649433438564011852615992619159622431295560506578599038535457582995144790130949949563140272076068537612491831618375003397892559291481161278692266092143753339128057757780153425796330389951511582782905593428040605503665498497109515976820450263558312702033443106799202678706745280995093423225091644991943670668949234444827598474847259231885081203196632787133647594847914737212642728534969259301931281483358211581197881748062669607308937788966508815763037427197571759666492778122660282731067786403315291128929510393564529255266359186243769186889494007530458122099512041955366816900822697627491299145638922050832140377028128355463066538597777556306012437163089821192315402339857747454955014112291763809526959273416356802878622141134639896017717421098393110827806785582549569577795298048255908534003348299315407805073098932867853662926373029438656573745770778283037714615361391259023781364696447802700111214265408884554127079681130125248914540527679047368229684109147888779434884463174877060787260055462976983034962430281081936303440343770393928669786659038482438500166446904086408883258945425043855469089956683155367002118367983466869436853327777741900199396351299816172949272829753903816634322452397948759960565460093888557766079680441641433263930917346693043095007790316136977639246022009051671999481249855715715470549380510470598229068038066261820980389330028194684160264043179158846888481889716606006314608260390672384433888067077090180015941411373687662216736205672108754489276617506167597930734776317238657922594389189856336468545953862745255598923429146491415070546271130921202328451323811209167966239749992979580608388025682667345244686680149355547110904585975022255962919411533950624850492106811453021523056283940736407079676096256107192354398072825349508776350902559544074219524355777583950890020992539871722215038946522037060768827730567150744112806291699378346250751710837579562981850227333630519070564806647072571926261943892626287536897404346367376694704138293954423688428091655834743309188109370394847849740697045184430015552655807349739175118207374138924627412894020822335814696840528633543541103492819935320919756678142021536675932592657441565772350832300171345483765112675688228787904795803570696015541038605746515127158471719319479693607615641031221073185749140598015829524262601132530379756321697019067551854362971364558558388788452028432578665112070394848487729628914160192109616181918902694509836345198768256518113488357976568042525659934077234003596103658732488883940475213103072784017281676167715822091881649010325372222566259403254654340111690007480166318173227786799010206306028668480705104269455960134329998951628347627219344577702919622909805565243748521309463402214493009631374768916734199872620686807842960611769073153253511276078189310343649205773774776074681252023791790533182104827510008373835412916966392734212627289039383068950290101202617271438341629447931808200394537258919650905444258910149167480542782859165499104055187622880323953328819312354855779115174711491569251625334712927682950577827532389809544214885495854564760441370123932458570058141017098125641654475058373649966942435961082761747184508038572583784646142113165376692281480460606227164628960292159103137078285357684716671849490652003496452467607520866900613892654731487142126705181253112353308573671838939412293468505367861532258050483373820386550268159083232000126933845559694020837380727741104160955857992297876598780946089227563096790957995933238671993884102467651864743890338597348797705354786054508042341634516681615683784639980160407572199293015720881177920782811321297868792105668457797431823594879176519472234143122213140477263186577233592834720441049504485916373200032238134059598239609722168141810482385934634893365846322955951953962168761903287254826619377108588461272093062560731745319370175881828397170658226850338523703291608685260328421152347046392967952345778137874741352713142032246813013805120329873474213829403258774380633203716868325073461165005096113524950568068325558694601418057369801774651198179214763519291236045253482757422892395408404395577288332906823764394715485658489656129995801616631846527703691055085942659413316027747813633544969832202751364238117608456371397230220477252077317209150765976536140696235126222471209382002375395702325847287977125616966906159878938234606390913191773219139548697010208340762890564974275091950831178975721235252872121539258129494625082242472489231702647998035919365921227117757921152800284220240733924301806076999894654541342179070919529545371633051760956866816468762708134450906840706722217713195630776480227326840595019323354793746346697436653379645604815427202706936313427988373618892249320101828269871050366707017745577882428772785220974843223469431503652207698013092419628322563064218776181904228826166601090518887677201583416624443210489135667816875080051756046239860292959731405713293357388156750815725547892665812878284087394380999491641985394124345811186287740208381585381038418155976185130192573676380445902163282257969038762926181379607888371221959017074410046687091625526572626730746617268204602793532756079675060584233161447582680284860319053768832618425747720992011270499331784862403235534345184771711402607277665912447081282454542491869113261980212196040500173128043752581016535248689754065655931803772482558715917427759600342801908507876429436661871799386540156878653098541557670192006547038034774783817214637098099562936957020174909800285607013460854523478541278026275914239939739009645992454542130334869610369860082009530733281916959768756096095859575334617475339008741628050183282378631054748917387675294605567910519835137763751204346703732794477239700466780974688155471356038860031686998337923669027840350916103659192524873395527981305760756890734549806479735309370205205289418522495036066522445078319427770499285754055695305507152787447613261203947445963271734332831256924411950349992446319947620132029384903997976255042515910656995080480027223645291320552024136770227296863858842746165257888548194268218135547004827811111701631949617994077188242974470380101393849217347912919181910355888807753874008966367023718160508478355011760086718214035681709390296081524792830820746405905781061150929886169048744357990333005694383298325743883494338957324006760055606075171847226718553984584783662908100193603841917352913597727368357767444420429734383429737407161966189110198564499792925720912181974028366743633255504678798608369182381784300828287393599434626035549847493077055942736222763923868008177561834282607113670521274255100683290408679670180775802469895591034641087501425609527477554555021348091527873694185113446932658213512449991987264896439906127451840981222940639654046994269287361408667156275824955155292011397631559241272987877349966918146532106509645785824520706830450646895365853092290336003148037412641188019334417468654861382346542037357123484025967750799422522946797082761185279849426019281357288561660281615243891346177566863428550481820438313687560483783168057291590913227465619724137723229473860721429323598064218245596924616912179880781446048257031260380538338410593981562296091695562646080147747240909020490211415300819701848650798769988605724344890055334571890942217307957389638478874565080898049655239572734357036276350864439277277090740285855402652032389436281714256659612358377848584836498345787378028916129382627861943013028561464571156794741901818711814778166044310123671255985713398807905041028039851130757598209764814125311462342765690431933486379133368646791338021608776551623252313871706555758410600626606193885751446849369320300768408605777854140052725462382294359321649350298864347876330057240993382573245082354382492836625147755888678102875723553827360577665580201598067269137570022223894735751693080855118482068229251856620310517011222495431570182743055423374117326876770490661503152937678464914688048850382378608786563707240888510507005325714290483033298720734838429434888827677566578003002375539960994128736637713383489178065869654019800225001470541314314283335705518436404115294394535996243035413841851529834703490008040143658173830039769623137143741771586535176835117116306854994476533685511101223816166129120024001778884823455507724757556839499470047145051102155287653259138854264303652136272671979585623505012450986616589637375447158132704103644857936819055781511789247105073455028169443031667263541367267028986539572682798182593935970624832618964185460529993750674909496092253301279686523383557334864856866305906446827293886816975026698121741977302380016284656695528278926026977854419437545164597925601095508717147696444511467944387052156543608495595251241486552281397608287037474792877094957113577688197066682831534558500056525290863318331711419751587359262654876063669390065180964624199686676658607500594269040939963781675254521994872380423445931934947451463805216931044625391559830790896272276750479337615328574661371948533867513782441490620953941052369947009276366177107532090434153212820813804742553612424225116993306111330219926037782651758383697600752144428937421258603192633277125077796851828329369898970554628606641428887456080319266780933405377347592324433420061598241319922726156492446047936138336468687209406418385602165387620068164713498669679952211144093690605248275721059953674146366521039774686743053036664403411677350838923158654318088838180728536742938473378183994147488154166370727118899694055528843648380690270899638827621759922360728023297483319765870702799968485355612461711012455792114902941696128384417020298548325885973734977247082938881080681514627300458876668842877626941371786298655349240169377864798946271769431128691659007122343039946670645735831867796280370874192200688172447348900606142685303638952793255598615242625998693284062830198791546544735203833357004921030872836215493758818421083778894889728830852405061820935032234259828732437183925539808434445395943207486409233390712148934208449570085657497069112515699982641182959704070045466476774188810819785650868695872189011770590362471667909826324501653905700958671879823697806019840081353685612331537832311914822104302062313165919990070682937547305800077823839808621401022486400128924557336888476963713929520419527073962318239937487476791524620442979413382696409904986977967654862003436561373648982983434803051259520642047804484256671188979641672078978388065153704598281422714975128184643708043785122396611392316339247715454327710294746204452949851210457271152402356783770545433037613170739405214540150838814541565904998054473141577923740658016920459061817808115075245987859880883869797417521945859356842618755145792410928830873546772378736896793004582408801894756259978940924635324143191138994303362375648640325234352643454345929134980105165037177268782788207300279327385214523882860121386209581602093760001476285360461548757919645343655614846040684809488452649287639874965737202407113181753455868182584120877053249742445864202074213601213417068842634652922922268479365715837230024647749670401172396651501296520629295300251990358135483826816627633780407588399790242687972073978434508486869959297210539712496055049846770620873925087721306925310513129652091643279571555117821252113353161365252226860882021318672828136707942513172687489169862486623741888412238929658502245716008103746782583308446731080186987650058127065468879713775180486215153122931458706013616357555597320398773561421831006241973605397261053177708551054727566258743144085447788560071405402709922209658500082409640654273697926044477068572435605712175521773652686993482998532098820339639799014026331965378462316189308926352470814064402162092180819665100177540712248137394116033996002787823110912046406505370633148869823506467993918839270836460835884316840576212719157687954209458827087942447271326666846062369675652832789517392404047376473489995863766518126081405902785388784252918538049504413738353019679456626507770138156837798724503662605789182062585178407423785696383069886152657751278138712765078471997358487870464238663779172456054924323732148081313221049239493768774435298911916966122065639890364071034006692033660268781775351430461438498798744029725382051975473831808352669396732642649592039875814412953825656993303261385331424110938753131930695295096792900482400834532358128838705742259925099182803576790487833978270188176484498697850665289059890373219711607103507958716979650489046681855494940900279858442835333583819966297137584219716965179250649721068145609961935083366412922521283119112030217896707486470029479692109456010977885151293052953173409045349430354578827602087731853760137823080715719240869001629663330001062713403261612133379246161629335306554226260620225894699878055905631551442340141726695970746542693965976216579842121798951713766508927980939466548166980422236885075132841572177010939298348264651115717339558982454048770798565875541216719884619574286874381700876936376824125318445252674022498681842740902110835504313802615847731590498901335098032418994379083503986790270672397251354231270759278590180172356943518878780357751949261801028017919918064102060198657351043388927399086678093045116145208129122785032162056856512425436078548987081557604588836376613209831449231758130027025939258201663156005855372377428824295920941338683637430060387081617576494825402254515372162277631381200583956514920452859436732480816595992098759799095116237089925945634263666307876310623547912786775495435445317341499750942608474590080707143881453315135650638657778607447500193525880824324226098166006561562464851631779840159354917078929084521331331534421957493771486387991157469467904507835871350621703847991284688810708693780113745132919872915631610427436611203952469732300935731931045094460826222263059115752762705664581351093403098392427672721834855396579620661981848511353226537815652842637691318150540079537791940503188057910098074946062972958050018977802109318083108320815230682467146379768651369123783465808606133112469689264227420074689614270854977245288888050801658285600779636525404403299993580354590590816242950048827685565366285173842464065764281350003025830075451688313808341542380417827840586806010299243551917004112162454222012193929574192321492972702693466474296628684532091557574066860694837478393900280624247782552874718075209028663994217949250008562330972508551740504602758605003881268818386237678965654594364544598674579774774330989137948992360092651949415541002361718698835174790178273782936099409866222017543357239786189338904015428716904425981984408128765311038305252006254808440532078294895545915185554911649421412248290419721389959332979714936212140691152735077768097253601661061629676196081424000999121389372940685612248908255904273595327023484233615898609869522251423339833541164900103030437583687178295603515723185492656770358969631275700658417925122147192351151694940487398473193463498038923074023368935722627274981758338593367242168691517647958504508716520912741527272046206707113109823850088218293677887111911137642099884569748904642504707085617230769834102351003589933627704127921209459980563814894937715284795761136861938143043570972229927112648386556725500985271123993212227468730943515307892751017730696090892275936702469349890561540704917175793886493007634906343724120314372565710114958947205063741857742223962150242379461732884668297673431066972894285324098240790709742853750206512238338992367917085002426879321796892159647233274232449837803970312693972789375778460236197105491629118307886696170595077772953117290545132676717021690925694772968948087751664153925581180792500321295246406922486930893882439634992139850639551645984826051705509742051007212813372394926788130693860918468439691755359391954705958596046465859278349646807754100978643868260452162409752832421930251751541087919173018613434130936261379396190527483718320109841240903399168302002100826615022440140530492432351014013866479543963449490699777882606615439526124272989914015869590621590465548858711629508728404635549350907594324581427332216382735173146908346151720627638583601630371676100745243866874994947933507484000465370436112814323485095766469221846816947344809564168341146933194493630930935941409572920947594442380692371627291522753187154314521189488936503657226837736427247497307742863234178062517265116554056512132565090014996908529819870821237564919187455745630587876526852304003855654403631548203726929306347151492996663338085364127847149878015596115248254122517788642871629205238574254557200418829010408683064178937774019225995865417274258481802358018401955298421011294822046489582256039852892622754890899752113199619424605299192958293063985176538584464624438516053969150850558888997417803283170144479422366846591412367463237635699599753047152251900890974210824449064738395402457238925080127970987824422501416166715303066565836603073893117266664502955932545318541095203977934236491022655967152194031239338735625949778536477225911293282407363552553386651394608885947976775326255633306956176363178331613099745633714951717287310013160267069628431892031396432094562286183402432376201098300502871791080369790408449372431648929349293717719244832107819082379107028426536656226318308100043246101091231753574617993366833866019048006219331955731581018784848326432377311970764915970456669261912694120311153275780632249772511515563521582476966106118930764385832952369424790584047173533416879285463065443736058957391094821856481415166002815073215755587414360591604930184425868973674747970332611869862992170862246148111822724731522434973833775164207247620619726407501916083888297624618064678118242727217498275661259218237182340457120698574784331719152769677838138213179862899709042022980686306153548422839808266065893640312639466865665841251077361300135250032587913384934510311126473446093158798766213418957893825405025737240136675756673638409096439283564541761815391316815664644545714518313223173329722451223475522574083327468587328871568165892576511889820157159850998726922855781101342345483298867193713637069627085149923654213992593227362766145841761529766334643240318942900565077673440527778255930019679502956335926565334051126864543011432110345497338122064210598316200726486429863098558731419253012345292295963620447841745424387222539155648722624710257168747753040693842418595550322319726287495546482426116121775000557192839460600346627897623370217414838570081043458814290609990926274244660108348963498978464332700925029640763280864768650755399023630542309753569213304394838721644342654313159343629146033900489085102396692341883830021512740708003768889665655199501767607111374751385886210829865423274996367474102769017228278862952296453628190566149754975671397555818431261001087245626421264984969053178091229806002159191816535309657480075284436502372349880580615952345058675556902075814008017717651116329653399205508793221804170710027038006087519758883901074654580698451384752580514312712186856547373074905951954509828740776579122820123552027248835575262363311009610460078564777423460184018055203280891774542089222466382287385232628976994316546354207155736502261491484237278654212130007210558952764035884354943511893658730890754231369559397225804197816209437680038824967380866992957942395477053040429811235191122730204475911222796778653066322665764887600009682650139839156771211562082178374503962868194982254934108048553624492528230664689264278016509308254420520547073893257556819385163910038316978047498666393306183646667008887678334416551086673817497440010232097441997016740453683219973974658428303571524548676764839742099180000081459387728509779112607940913728909733920915576072276592280860193662018341067069675348732155436248183886002655747895342772380955112260160393948772814662764909878819194137481779735806294676207556947192194910196094484954052689734806277947197442636106380356647485733379781772078460496058920166054480526927354744468709288339563685877487440893486606057470922965716425950076956993719100576534677993156304481374825668608039057050913810862343345829095585643629916526103825288238025251576143782457184975283525745212695282270320742160374643299075023636792416866795358044788010987958526503244698655811141690641218063636125378198742022364546487758075417989957151125967324787402933427053352400071463839248517074964859397738988006501323512543765200627325222697065762857270778208910669015671251333789398467844009885074319111321049226442075144823662675255939516629176311423452399165691554331942010072428386232409997391182543585684536730845209652202955055569404022941388208681781453080514012760393549226894009682004577209790347550921628192860926135838864463367857551643403918990551171360434075643274586084379943883238788492249215083814621047943107187342683794568173941410645617110120899269786381786547453802092392235268550492562128942873871953011210502976884597538912219681434641571316430940832167777395794734943104369033647178737178397838852490138110679331507430234070218582993371824088904275609972509836261920111504171270734461874084798617591860630285116043925326526077703697311667995910521938862287501069816683216508389658189227925682504294819109640948789121382347923750254873458024616287137275314796109692742141882794691405949902468470818591011873146692823756596595943319732931476193928559289602168273388734741071222776840902594872267549145116163661564085285214950062104203382749072505823877625711153097041177811255803680328277760180425244810603460998003575735885549763140776129473054901742902640626090781126693788118659615186593056748451441207283582694737603686443621198845045229065033236243240576113785593840270581116621556294372218022955316738826890103195505151849606312369116416852884041629026178003649839872580797480594570361349436664947921876648036864484284614236750820563400474211471693084963370644821315928130622587151797072808023294343387491185129316777382263623026315094776216689069677427893872196872597471925977098589192367087361946561553614006046051719374708017621572257152246602687402722842847666252435102900961172313551096410026243379924037794863300206620771618083416160881277356002123284391919165325289113173277608903726290034270253792745403451230332754672483200842089471226266049843490165039753701640015549520560192845488657537934114936020046336885340142553182523239998273414296856727388721553605402122884128428599561280637019786651095999338290668893508661384654825694657797088012317439233260831893436692633382101447650203081080744566268078138343485656641097360353801790247031380403726306458429269134232571961393606272352853067965039073066476391691034862384859368407455282450302784285932509982388583585875219767705735880265464562898148666227276053273108682842983428058367718268029848315460970040762365657774614770865142634689888040163258182505544049153893535717684852739935838815514684233921335389812786220062015291942159504221972682789526951465018927529151402771024304886452151510104571391644156873447056256767982533787486469687250303582024626196302031135298370806160212545034902622675730145788689401451584721504071325823120083245769730932606337223702767689784307736710132982865606630164520745504496960091642196027086591752056404909918911331788013422751640320669345219978097587662518338479281570218400629006498836569194465494686108932306752298105284639769685424723890037095779230296771123477823197964214569400602423999366286252645505693219005282976042790574666262486004756438966606678341090326820479361192719961530162372851827757279542143057345267691032094067504975771751499792580863534370225407159206622331948519022300242407295523514992564134873583030550607217955399508807177328821263168243966336517519313796322945087020418313195785723792097502520779576939938636607522246796631259642503469958139232284764859713337917603578693228282356658553519150378326830598708237326191288544209721868067676333199123447246956451079353726753498645971864214380062057638476902091259121249021468336003507792303233443327541439889310501887547019147895891143605681073702086961341191001027824431736520153202358004654737452241901430757250885869350748665873162459899892964109311863359701229001667454776376272969262867664093095696352984816107279505464364687608358570662656677505127829045303279477121741835898675975154409035798065576608996149465334604656416524889193256010590178931648461366190044715687438865094354771191210125762060035363054546812285165269001835807902442056828616777194631994361295097220519839180005348079028119226084940674543433567211965162448716529407319615849536593675411432761303024351364983120213857075180423472487869406797508345074224967940919367738825867193883818522506647488088240701073439903350610078848575889291927214600493211755660865276264007250221176193986681092490159732424005457731921263107602656315035021577015728549927988869901268306314991135073082004860568759462278479306823385994673089919496214627849680180895600121030520968050074731521101737584501086213597275352575954376184127112745080572310171254594679651035333189917974897094384674295932537769313154087713460871934869512685800867014693171621948986320920474455175020758530892975657605111904208812656396917399437267412746018040128241069448199482334410370853507859001008821075769331502895777613620516831666095256804138889964147140591440019230035816438392537535753544502701096072391983714321607573929819405531484669416826572526865896014715704239268394614054543302006628990540544887494682101010327747668661422569515877516750620870034016212946532923503447774950361273845064871087428518242187555569769771588027629449222131859241768897685127591356251618824215827005919071667643010193051366221290989325765622734560638284012334656902545692298652094632831045322839581280536320391802197035364005802063707691433080634858268717985339738571320847283326906618516216691961019015383032144904297215394269936244428024341580039009365545480616041876580283474024613465019191368637252776123835227567015830776052671858791564362399952382632185599652879269443736527035355835975319152494773599504000891222742774912469057880938511545756361083488000475607606212704541283947401862595851177284775194117042095869056201950346956293312442904300956429712304908159977122137038289193659917348975402937996747273486324688919693213596301291499697305590519802648706678394050408272399844752931144391845489826694892626993070459789638215744191054213737284621549776263672781965919911334980344491171185453903970796643067757934682556557295292291952064162774788066138695826196111210112599308111076952403776649487463777126786841659175402085812458908613372070638010237812182012335927741699537621274974477244998497761693721276722139203078515930513228478232304142798249763107420545985569528121629646103049749743034048001295640356020766020402739528204012123976471098614143565734990640793299399357737987813014496889011696619790516034050548045605514443264025337753252024193960635101707239155560712220877982016026358544879491859243606162401571823666540702489152021800963589946496340228398357639644041747965279313344439557614458969131644899988424711077627513559789915611795987769562842208945010820167829731154391218519793745945006736171576733682871220232156314833900229201469079276928699711272042568802931335953208542101034535857281563829229667272356982849635980955093117661826653585870351501687414953245612994127776030522328208172658736701844368923277606581654928868310304550382317437986739760990429961352474884183395729468045257029599238969010697943417711200028369374611781728819006288646805193203159825848121364082626432200506451993699058477534126725543276973964091310614542742944862540242277573381814307641322475293703563656102875301400257728963739757727908369334635030818083320570370836454851552659648785683671611542515192977980640243739438824406253857794865081120069619803912267576686874599754936509270964027482572882201743042111121309744804646936238566964271241708911258393314683957090205551382467455759265875885245777163181360993839584527194254649100825273571101792757525297251925468294836048611915869086290562592272829441563055795397079523739289345407834255397954923151063449297419211568811035676863511208180526992112571545068045923870731232819357260020489827472996822511578133289806476644337001151293756384891919138999441980213748709910322168279313830617809129392648760702610036170658335851161380811427716435662583061280613287423970448622548058611062841305830580656064968704565050553837199588648169736947403876951470959045473471271769977750430262934402895698565942159855830737296325692194818343482030742769719622070917718304963985457691825078965582457691379518690102834632352081265724216085547017116169504092352127112652406027109113229949763141672467755423158949517722084121232756825585320102929667536855871759605071718550053041643486650576149689202070961852401870812211604446408127815268870031651641866921028237120327566295591427466381713226504673553618656547016995294451678267838383037877601524548920626488703464561071877233031998571293897496648310219345113854057816702439256324798205981561493105359454661513897826205833137130719396651933538238721534783474319014834614213485104842022107681091133993561697515602440969103436268794631095250070762049335105717144640507202616050421135169556920167814344664584786175432076116118665425348155347945576614493902314181151351647154698186489677797751130989781662484216028110847422710493383083089352359986271220541679662690548718089805713074277829104191892611134860715130893570859193823136321130581008255716982558936942632084559912124879547352047256956848781961381705316147874704639348307687797680541882815443651954588041475917267338501675719269355314364479623597453335526103751078163452686866839511118206472932074016583297970801848567233942762407365770850567983164380640679329375850151683111363416936987508440693317392089640819665847515841835340086893598908727983380062948819944156680126690823681198390298648162212231830152365394052017926906525444052635467751843430755886655352308340784209629131973317360038569747188427726165777591215363924455980460742473403794054969017191295493112825494393466849199194401669567458438587490650223184832485414261238524890315801611579235204857472065579549449626733386705913453482568005712461170504453748657187779278007507026435390401929327203915471873931508380926555478671089066883651508534812940469005979403371069473640914129914854472850611062619271552623582546265924342691982656131742285895413591170828782190647455273740259950384864519409108062197785177894728395262537967322725136437275324905832584903729946367202470188870258218691558778924442453582884094459758593871976785040541527594544832691014532273252457407611773720964942911239395864072076010980307940534536270213562925378145611764543366926891288688640181400201948901789795799217344534270555376496118898840987319207729462762882146808648892118819162056938215522678479716562637624577952900129117952767641655468608290209202361603027226449024015229020069551464137763669097539993083368620191668185776889132797169543375856581779841488231854064302211880027767597101546289112634846635250731063554166124166482646997714441818657662540083222112056890029963662505543039723457718506799790016898382326121766286652941037243673276967635310955312333496751293342946870754793707899586583219200841202745470393694297990973030478420755208279375525265555947674413103076578869318498938711581114674718059625658441761334508032085288571530467796352686101672850371143076574967230995573622365318747531720915077211879690769514351153252603844205749107589937262167157148204576205065491830898231103335122602284655850848388043651113503613515311962542436120315115473095484614898389966022825513133835404591167565961250837918110916187492046647866007252943738244998296244366273295975653698257918852964323804053381824885079869480403440590136927115575988604089583422364137409388776271542112857820271809475292760391130372549921178063517855631645250395256387120194157125450462698537832513203942701326719190758676185083301437617550225437317673566119381300799610450973014851718685580546952917128665176904031576462799240872471423017404663310432623804197189850296295598029009579999978396087400032603117308391906118517148546270422829072811394137671862378459168853877450881142403405987875868526322995214741794411574266818907688880367575948867758632813358613531828765288708719063583335441907107808534681756597646638778294551398124945336465901759286712805059586010059302743839373048906262454003022685527722166750583748354180525010077637915208836740500648485285299582295483717170755292997453623258382064949371787879907052395183641352637858901857429739281452348175357951504111502050355175826978858301710457111658777574943688425067203872750517336475626006138404614274206412233832379912026084508867714748852364345384919035678697414937013103851548370404312890657593397202519906569692307681522484575596974543554659092306755358733907838213714355203003420435781071910085461959454420959304968681845214443947782441462373361598217503843675316212361254058572964126279082041038448441547102680576981723995606098347827441136545615507424656851016917053563742232457685030616625596301885677114237133187224531560770301353931168203197047059997886817859103884064705572146117192856012828929365956160051027412286495740888483737858381686497176590384694977853848333939493415849622841704206856162528779467318781395843604144605342329529508034341291912778737927091621851046557195743887869646463870187536126932427239845131437756409638684517517284731580708825528531065797789426677506840710154076733152128000225394905870520756256936068968091678306382422360096038389542046351429213359824371070849622046284677846679399201342551099957182528808687927569053356852623521201563161370451197744929150262767756787286631362517338626778916222140050652534059097155973004927246417521372867054335602558341362391107074990683896517268278062382180355411911634843907805532586016574485663395507519946031360491452967693981843159725009102638750658170223398560895405034017184891224630793300000495429050672987618475918145742131341737096121249878705897741128179267347448109670942940807916961335065021892158320847065814002164755530189167019308077564932295360974650268684321557115050315576245032404469126907186278385211341157771111755612735450193368699189003421849681113005671689370017879407344702055088038423577603766623285865331237938929038365552183285751338032860243406010131995744892199395304672668217570849463305954162663017885320594596029821186214301544614671475699638856329073329220202163804203760063876775525289758891835206774801973750840590896175213022402386593824307505556462839810232291033263098047517367554671164956477029357561281973222196704936729429932875202996715332364033520236698954524742917100252837090431906154648256811502430952024932124620689938305172874311735830569288210689471104561229744903413418791796955301328156092224245258417638952580982124922170082865186270560243798817713214700802894895605431093884552168689149963368944206255873488190640446341295359476982517581443168710392113395181753911602477620674807911693530255802390813419320727664692113670779138766420595328121804471879385656400651771108380788591524824625847989083737219760155508084639499700600880653690207699677184000164802604609262768732670638189262131345124319939120998124954384367630555075219302646872340024355734700408025138625872567584861094690106548666659804514981630317797655937284480389448214640084479565011680910912130747676973810885857075228354148391995251427023416116528496658569893110305075295991199884912046960466614525543394739167968876787551455391764112679864323772995399131144442440067488199451069830709306059877015107954047819376973403744825331167546293249999074190724382717450830742695704508782428280005739245790519106119384965102948299085643821521782231288060115448015002136427351738916751414971674499867155742775597756458078913311512717336392389906041945188745823710963359485516886149446702359155708649492153545072765600970634340971157360046405843238453674858345806039538742777522116411755139028634001750236174600164683804142743990147309733056032512047370171772823645088186486201019671476865902317967316062241623039715057373542836955329627796932174572456859559931964353450500217019984762714444724833803849715969692743192759870282727099483853001671033906942781888006081937239801159047547306129824134319798529900217841789056277907155427666691655973303788376975763186122476670822087376401835108655590091661313042842304859309960945493060595809556551968725359796718607249554234229967196802645775696862958137090400129502961073940975031919183400186656537481075555783186701968609972588662988319658994464647459684071611209876117120975121880394243884826409798650668785666876184638345040059815720081844243609143542671217802142181721766950276285475299638037562299504892700214147095113828101132723386062491460800575230678105200237019900550045455081089261337317699797039019541864309797948259688373171633568054925327928095450822224931588105577832564514724919591758977996133691945508647091654106196509420998908898540851592018441754129920701299699598302114774789082577883816296065490007584290803523001400979668878955419411022563087130910645438220663337912196128328673894702326033257061216059873370984736111023267762975427783621345797989051136786524593946456407083719568274782192669621522303629386307961539185704246179327887356079781671440736800421855195917506358854287407159928549889401786482849083172058437983883412458224468990202599768664450723858756509896331771184907969842395189161246592065002108480244488758113771365925708687576500065083404331900718272322658639515408175267131319910958464322620136873219235520216741218529869737013385960454825017697600674418719418896522982575222445907868708968940499698282230946088777062409043128997968093328609288094407431390833468120306029019214289656143235607129545636081528165152581759204753004730034331818828941625000004594927232015398121131803784173531774562877223057005146787800924862939742641420846967235698538345305578348063707962121793993147531446621629812202508089854637143814713917511601540193964146785729288779843305052205478834076386765120451271433291070089211267943823950641201718477040927550768218527683877131441929746685093789731249978913734790553070935652583470732483702315283007807144504184053165313446296503036709281465202323450439107183241163964454892567022622957071276275646587450464398295294569930601220631543241075489980154483786100431608980951951245468158401746220528874159032555588067536755718529938566755406418207426625663017055696679347826164040563218235834545859150165065844865303440100590230443811050920894064708897100185470193936662365128312378506621965602260573627841409212112036750394316535846741262172739227070227553008694151195803387114318357702212927982675210569874550102491015174656446553125338805783359430872616250522837329941561461662016441954088392872535874298684361835420653099729148044482717837702330645403275119855764701090982150843672946667072309252282721655120525398299178710391496462343390541395004484435695903564362896094960653377433777065650857844478600633813239608951100190382788229169418474034258970443322804245421589015402672528677128837308317447647239504263799271583369624868679226679993015761208822220825036393590726838810204012358418899029564252025724134617313747396584344201176529905096300317371838963143495577249131430753994354374225120611327563972844167081477846639903870996744437119137473074128980886567942164665171250000638505775866925814542711782077161325039831507746303790871662123662676657902606193258954232428175549998266111576718978791859321148877809225372896057253358433455672271342063772293020975408445210847332056556080408219578679603591327259139643003668486073104876264200693386690930041494814808645032805193298064934833749921006654713338225984975930309029903856236463275055889184126441297093065834082621368540332922783500664242433185768128823069459499560097398676208978339325005545041066932253094818324695437426888785076394458234682721753604202393134522407706829697698604312921192895393754608799288024550831741558120468441163933168043144602879810936924839716284662415530147510812495992883467115345503069003314985758319764105393020815412020730153514724587696269927680873390885245482372218024625165916691383270700620964915797361464109937280640226884916818132240295851939789085302754960401524730676900493826848238930696657054226293641686660766137121985650446967006757103227051031944489752670983027158897634381981021028806804939285067126246469866249338534913563808069739159218641101583056378750141809020152375438848575990836798656016860523243202365600090305021115431359231246922763365871161184048304811522181941542435495619412674413900242384491164500481514406504757913976586693600190612757683760418559364556621415443980692161726101917534234678775041966371538058192873093540990300556499774761748974122899395589935881731641542985463446202883138033723999109462206651857417063734017116745434302224993640639652100103646587808067335224539247992886783840901501801821446368210775889611821880175097467801065754249219239010170512716795659531047926452890663861087539053468525758832536612156022742463590509723506577848917420843742105987094381163246214202164652649449538356852385878853305389179153370685790432013020770147906524819804031049721722223194246914435894902530259417047198388762225088082211834649655162672737039969390813512164133367715085628471325074396326942159036919492300771377056478636059755215617291485347935436521345408625847952843569491229342525076399443657972464286468089302447716456552068279465038754490528604631339741168216679746707284853317137505148488745766355285339549400220726762248012735973099658137690505184003727705780883151082755884535559029579439807936075986729751511491611097321791325005775252672716964898983177613446645656415645984363629850558313421443092214701058356330395791161667762033369092713705406752396390511124272093444682387058762662255858812336326365773016531521175308868500870166764741402458131866429053521451718499225331277527884205752392230403965959820186584330029899333808839518549510011052322211741041642567895099095097074837604671610360950616565601285167315651851670466619048367402022415473840097681282845014732172226091558880362005920313363657241705687900694027301928881185325154182340693666439571447673218466274285886579572688574615397399065953901271895779739121824519297695424066720712594048997172111278695417363654496743729860205228949627916933771001890593836095563159006330863894216406721677354666302527071564808309846277157570688145570608127200920463587138359627569136583878021548908132068925860126904921169957628426780473265990621024354766726509858320371849982427165844155120182989029921771165716150662423590008757022614396837262234023054728543812565774430942430788598914970896505621991388731646757498320554364865957674121670059398046317023281421261801652501378997976338146856620171921514497257873442530284459882888120880354021931773097028789164686114234041937594811180901132361560407268847236501090547900936168045478474320464122204758037678563270471256510453420630235564189800736836707473047810462357611865848139612215929043255749937184039933986354102340032790065678268458002543017174875068527739323604953548748451522249644977626192709878587656386511984786695789757395599082856799855960563052044443046110734081468469616050757172208062539317456707988170522959582558914482243397465477652437150904293372753102212205233923570752182403330151601450054088622816171698830826071026429939465548595689223757516418812174455138001514696204319048204436880413405927470825114189095561571675294834930708292198718913160060270368138936577767844579064473226042506915729853728148905993290114561754348578722166374223351827369764557948848214260719743846273376680127479176768036891809728337085399329045884114973615815719743517057038096328977913153582933082980527389696876404569157019293856513612065385020097277408358977596801024963626408957543939452109118692171451038773867828237247622692644253616303148891427530236486498274831122882130306582447920179544651863955825508544555026278445264444293384362148520394317042378797333282783029030732773918262572332511148279638375955954256057468512888193441524072975572095087172286228642083317217398503750634715587205274393031729912405122066986040018597035560909016285988615407505756298835049625848765124271650396006996567949741863783689963631255417919293675745949564741570215000190490385525234903181367166286233230903892905448112682124060795525131148378241562493190283794771620401661694698882060028630360332552866129485864554468207634089627418631584068733481363852137227080803308646160223744384294569147250411276924784727211374485213532727081872020558503303724384660562994765205578947323547901321799486134268890338329645334209136947969386085977007978081931836957943795236785319929844404115356078794097549448999479012128798130860479715690050881693094520503650422283179815100035728029960256830394091096825815528049810836882471852744553484411010708839855946820776377835569308982538632197223069837159099293773786073281697704829418635874243953144181660610375434592941126648313352383639746358763066806737381620016479572176113923768920106902331142622155403078420990412154063037622652177069875988361424006830384586984130338071409772776075980557072469152248890761536096618811909133424679534791024629820409031774136957290761265324348398744317496422398943529855241020128640597214495570447644515578283939648119795591534811614240442674503230307486136720456441163320370464997058307222293347419364883100852725669397442374597110575797094432287946286895901255680586717380483396725873983480911377496927168766212133403747855045224081921192915503418054556329032000196656868202310126081629109736511953231108032800078359862852928124296856625206984277006410970106299006621909655658357965212352138876501472657503431733653420857053900804698531098963677441347916664718976394663900035762193659523356166459385427285689472672289116559758235706014708538522943152206170399004810488633869863298950566053733920686334079117902891557461924383582312483231006708535668755916744310280057011807011853304980587602372786270456463502672159478497840991697125839866435861196308027717683246969030740145928760962796934850405142062175819330245683502811030914949224262936291316087192022405846126673691325937665175174252857963406620916601304425345153819443911825856180673701016691189765851550892499978182362559914553565716442992630601128201847858078437061283550606919477430377564644453195375161681873814842341026385783558259087564236649769751159362808678124549432239721002077310208957611899703813371810023748085750214905444425619918144596836716690569859190218357058977453568829166049338942171074723700398888957335841977844231871547055089905268959550280884865894456409274362748170608855791688806540065137225982002054895146873095465128491171331355866611242823621139827153381973938327018555066888703020768638528603177175263579680461460333566679332029518191505247732483868333402952963323093049134263857865770931038485913027657179139611895763510709132379264306590552298087663513100794558986935490520117880745829549103801715861934142508354364343767981722843236453375835436394169760418047713519168698592469357997686957849851067525432911460498850022096035766736065643318498301482899382237022270531223165568760570377434381863995235491767707604722626671892873561007064365072452835438184662767349633055081724552013416125770415302960736722990626983508768140564251904336579945113870182667382107173936308460558939506769813156569026219817598925711559840906132607225214351157174033361502425360655991986581075911179692145487771042569112533979670130148555267600535862355970086583444266525570772712300864397752376688975732719971603954939607010764157113664250118020199619818193124939919943068118182658529698497335711294504649890455521410745812604557155205135131321168636802963371457477496115871896373633478953576825176613748917787536472195045478358117441627222018865425649136069382852209769690136707736711466520302530977024182174785489815094856599918145043617282210449822633919723423062455309822371047702327959948324779317225867567771864429317632003035637296301110847420281301671619266425007209876317573817917012452119038371322586442070053860094678762026122575230280395265469385757308045837456905006497232617051305761576996439393284975062693167547451613068590228828064153890173331408012084845734655511816270483749639297223541273453985514845611673744112473704768539342978824622988175932115947715869994587567375132826867086005920740847923571335662162028398411679140372010315983639666675064541700388079195235694280936517788358172167191482860650993382402106810455749727964814148291238795160142988304046577250383781386615232802651914963726181421565705215425596513638666579567421559583165134457698838955106593969747237858417273079426267220997993117157746260156240848197097419699436971478269478056470738018634629872935142037454965367604104581655335121704746340294798901567576114294076570893194857761365948057695128212024896502667103959436455005949594996948969613417661071136653286326345033282607387967445187210914196979623523117757661011760312808306698051572268481716170009336990287300185170514811063767371190950161223895755792455646804647102110700591963652871233563174866483993559601369220338592363995040341406963510923237109452714630964722359262816645433028718034267864353784640318577306319828159330171471411766439943731885189669012945924779349150792454286853539755152297454766712166433030809577519343631504314641619190120887401878498028693408012606279932868793815780350540599194616260947416033128687459495967136336059859145933362175500470088836043038068733819875598015603042935673908539246356921632389525023476220900717319536008773346854456719865400585773347184214769135031813903294622820501402231739961816153760098276059497347002815889650529443225243082073505347310900898839941020119110934053685482033015156340751093814392408541124889376018457336955717873124517171539813608316284828755430993249967925361949825080263360534772082109713546722150633096015784202047224197708530243755247702951163195600907475348005532585806821213784758786165389397177119570027887834292471272767172207768241835370566218599910932154682082986154798707372423112103755402715224241397747565143117745721277600604177115593647981505052443911738381454872693105484114763084167407032307308459839090562101558941785269134471770020735796869263615840563120190353615143715902853515697410507948464120381684916359158507190296508849230869003958602376968279408572043278310002746966812590752400525061671934172030501208050859300320232374687229533536822736560656654554235306789625185974752774189656176465478413233050831834087109993720141743276022554595750322047467945594498929363745928539044721463469680191089668479278500702530822324847977548868542688257682283762269765883449756054641856572277003145981173634869350897055387314293680674536491861329845446501367843897749241157757959246933013253078146170510221828045829236401843714005296563672555895916942081126221069599052265424925572998665401016348189533026013722980617985626108324873984444797533786747022745748570035644565518703713675209121137159267014964459297556650497671006644709135526177711986312122094012619317036530926960362191032736489095842039782992399881030474554264906519273707977003589852413987797192163929634233186885043128027741530444472824895056210748435129758415120003110298151902232728471883909715612244488309276022753485405314544241915483122846277896410532270842240154990863778988305813528492003748835877978861709754204653368669222446321346585976998202792782392789314009892851810021270269345065506300553209358913991746927838887141147834643408232946011447785403242654295215700918975323558745540684981662448306541633674493735204204762195070947947263112227527706702786922119107286289102094082748806428236646485949621131206288103495530433578060500281343619055529080029906743454129939734570929060738160399651186230481152449564459439477610393897772964129697749413630124583731310668865985461611113910092571579380371491641585505593559572086055266398476682040996607277419773526697083353226548955288467125696890264589045822792212763499234540761884616810778644477509604523479845023012965398610277718284175288986568581829319662043924032486827471725035074177593648635694281243321981802202044383104265921321688161085832041693410759525714720382744698967961371046152332867436885789213447687283683377885196956624388537714986624942109267956694231883171765069265727441925910370141637322485530073338687769346443116912649947238120837546716856191246595598826024290538125864764508705313245327205296943895906685486266437552328480228544632358267100093356503832318538603626355070741535043564907445512182194948267046578385587266038786729723534964658966899345816245643110007997470391937384849897063556355935385897290989043042332007240359801265211852194734905074886307794453621084874695951258416552885373765008503122212723032305560339043622350341825345284310294775095334925951297938804834511648798653311330712516573234235416902809270236791077794670805549471331284386814068961658887668856565178899759845112869746661955549993035777113059124810415350261825556834733471413931032097986190154459079989509393209536866114856702378648558172689279801514261218674348787633225102752659396721249069139978048578153951302592204702216723829715220235177902016183377043812291780677521527053579715954150072693173227572343370854924528782560321382111351065939907865205638528920169819518243950021568337411854029758409525476116134409063273479924329737710763128063679406501525372256355881378882013352687451799164101797121817289577514560369822889049095162287375378365595775527923531935610777401555660211100138005488711332796660625545807075035081605723762694812407410381963159906176479716842561028420111937821791447103334601041830564986740705992224677551011613360873143330845823217072084670864400361753502629085880211918854369465464482558433501815522776697963719207942178329328889317598751747169538434139226259948019644871439469001815427337173254893899973275775371522631129305121975309365087535767785452935171426193271180222316416107457720388799955424151706469195363463504153015537792637700469292080527174695132605857384085239563160831661566321508460532824431422860153677670770318656583221679103802158508650730968650830532578832118232780469111886647797655407392967941255284900108005356541675485282445146305760018724567467091025997184865965441041077504860159650376938077564422911153174352239442235801394810984260540819926592756951355928683973062824556190766514037905311203754534271088308176434034133777700279209488418953123348250636145330466170394440309550594511466332300657085053024448502516118001476684112271292978932836788012119511910431970393051495128711368237362570619729870606776268561882272108256526970920279323563272230649828073474120917163234375266014029876171033524026757608426099998387347680998552828814261411692936296095750368187874696918804173096494494266366588984175048451917820643295432442433812857617968963689115360834674542588712801753422831413439182369231925072563168633020139282276196511788566667860980917542116538448737663278579869994774813866634212460773900692965151843636858464432674290694284728207741965444971150272522646117593503016612052842697049038458583315358538261525476334175808559992911071028815624445859582665971478527526283841510717672201906796825203608537689338533122061227964468199044086539954851489260782802803582860214429110771307084920407589212263553831237286665778195987964483399158789608681553800535992034317568820732171757175616963623132910734946930341616936339008664729558430016804035188682651926280598147096603149278640599034896178085939087022924619664420508968548324350152669958581791032584576935498348343977547169580020492665534707373973407535359585970306297850136154348614636542945442152350307386101486739344020801820959573257254158032587898268413898973771737142213825409048554260787970905674979436885825113830564827574212005802917636935059642516823769265206929019583863588192467811754445420451030287310199922485900738801257712886708117789244889373028024458924481476529857677530213293580708456945601265197583374674132514709057214400655047512056935175880039545562316814756579389365030760843266401846738936968586090705684622898265670110608173663660412221625038330876999984958497724268158607120147938516715541243272092306058253114427548996352629945793699399230558855140995445999083883549248675324034161209944499178071365260691443334678921817667330386893653542262148821314766204215886438890565192715640940371381667145112013537624887654303502647336574204886613721982252594786520510143334861908553097360559689221875373078757685824150146072407308920357045747074673274762508162907239899230059698830643582312149815476115589924554096377225035692542433892363613662115312178379023758945408963595700385267862974361865036947959208310356164255143076597445751004958045967667385423582101461132294835767496261163787065616023689764365255937131413636438173128701566195704758215911657774633418767041996487226818650719746119003055844178107118126275566314244173276258311958585321975070745770835761546874722882411657482676982653012896520300682608163295833030490524675295731203233032264652805736373078495165382216522856025169503374213642340996525013368557659731366855378654273778015977227675352250569158468105133260908882161309761895282965807560672506423950797883323377938731983442500956684499071030963694767176491286393538582249485791631084677254972512414225702896950744963408038840096232773576281546999304617939002303760339077215620355141908830619686154190403205592826894923697022373336727018801625014200070123562588446359854388546814060918912972350604847962008201445174773058209695609954948665988622553514364911204393814251727575839260307545928352899389817944043944118994270488010093849016403702741670142522506460571611020048300919067355672024890161537411108669692743065992105281798651202081885920209291559953622400598786999699152634278251793659735406460313543217185170647475958048054597677021255759141854396623808848748859604645613003014630100445023659188890650257936226072737386528650007373163248852724379184080959241833829645999060603491087227408635044859021639998477982516329680011799045378442001780057348822394743513278449120765431140846995176229458823238082465386424268263842187147100008402572556645044498933046575584445552356781707019488997798776905798779962008711609477347641875924944495816345015526711714329394199652298859511287148092052918274033095530970284561777636971453160808334980828133673028601389653016618130735462716990494354350142217140040978972940124118646687812563211566074632649374142639525481614501102515394524047457155862467230393577484205908824070602245004917130881918873878167064110356098881219957136234310648698942844269308302091036010927894476113588986855592896583674897243217813964802639679063227895177733468543808406616327802143327903057289515222139082704178149005478526494910786367702336330793917497003559068127761642643695843109545113219150514369130696366262191144083992453215199789702562639541146981901957121301600465682866779684010068740355447685961867919678087084265541880099293094633920543650357494340471770363203515363018813145924038717379565559644664814829894621239018999966757886986083188144033660696380567831767438780142042879850859172367149138924865863582871657051301127809059425257716126082876696169934438990804084739741830859707535963392368687829021800318671816643027516640717851051859074343313741390027302445329927247235829607111148633809166578585291377969383030486911037777518514731771719985775891975456942935481662201096910572361739350023128829932653416749549439186141042094847338877447624295003379473506732171433436535664838811538404293670910238028214890143451251073680249447112623818225131790341028003990150752814467502366883637225426776545464900403038888964646705094172012774436184500059609437549836718359262218219764689614815605857465682221281237589167126916983274182758672281399991953432933716235639422227058646909840927158381548492772452804305860386481540745143321441891260934896725371923527022943956416488628036997872760521799302967544787736149209053068153515285394713865036851331228922453900600387299427781513179637678752049998348857649785418402183670534178076022478482627775736800905104577344433624308834166748936368421022276542080250842192870347142952692038119605947401427150363231459778609359726095669811088175344760870958079112494104280194303746362848727318082089158141285463832350500144231028389160840145741167246848252198265283891364795564771646413108506153155956837484758847255583430655581356011785851524229012670187493579219055505269543568761751113743264609368438874493423608241156738161301228871220554588745693430072102389255116637781901979156167523002616648200905262459827251592895798490461278442464534176947353098209609022189348876059439177592106150772436188563352165244133331298807630957976553677505527357388451814120278730881709720581961188679373034294455161248999096561135984083344806626260139104208016237395051315517123292214530646397391507680892381152876393117777922395528149262307870857937498962596083887991363539238617764137429520673070153451245875953937362476729315378648229385562668429769714682595372821727507926284688114919134940206349443583051109516602676121079459828023532586329374898411308722032092236858734627921889643974242823850336499583729996961460237006208907897491215093503181199301521870723490374114594957462409232645465342045890428078166326044073617620019814388408090581054954756805652988662924961332203113244279677108846648576398633959815664132760196860860132394385123977142066842171808091305539312014064088490176399705434153291132238611521907277661338507446371317557029294584493666926099745663881548435447540932273494057359308637766306820247368367973517699577360931877617454625007889456956065840936142232072603796465928337580705172117082165785828851870563922855255329171158367658294232127182599008229797974048825821026913017569346044266260276068319270938871411844646961696780701022153091154124161733711140313161045211486595745377709053463181515849565930977760825652178773176786358443656710219525987047683616578343223004905854284469235921134107717845889182246953791848171734165466500464915518397397465996510591481802564448104959659664091444463153616750212640911223337852686230204409109926375289140052311623292321471626356357507279537258316223385590251613613974056416879208100408907283333667020109636388855798179249434153397058735038022821838199172416129686705335975597453072795397953341276055139819196847631958082738395992284171995007755888954074422945249411001700097335802907421452643062671181305494038666306794223309077449553814445243164012950834939076615737836789851356188223600882977880517262160239758083848862691488587914673442751608898648575748979312472006313366196146275034641102263884380490215762745397877242656790001939961769110903387536285302467835208577023319475911715270995620687275588121508264893286117943085075704856684923790346991789281284150838530567131265623844490305858802884476091087420299786821346730583430895227664756088267595381508212355352287506923664939412972888606692623276775965308894028811591824557455516121164373369488752385202673813517887436972767505498694064608507000534117024059535083216750407566621021791140727363103433316252302575279381238159058482178240319776564934244843339251040514509031558484736424982868226970045607883434713312251531612343243061498450021638810091071371529092190771091622927096699565569667399364937090604915478436647800995590333452654834318752184880492828899766193186239459100023279050611275281880210479915389059199584348443691372613783848148935412134448694373023467873108935415840253353154991146575436432688356627813726330649978347704786312094435157868190225494916187513464587626600904077523789571929168911643368931078393850313579559444783159434393251104014214506830721241645572639004464783417013884089299825716831824519456641903241120483898195102728873781056636020508545960068769768910830757422006839859549228841820299798504791807349494879631786787331183381745433975842714952509774902524705049916763030125857225559766510841232433774657686206182733520448495622824221238653821046561899942779296561947621302586273256776773120424914555415198452084675835600783797775064683750189723222127057650815610480166453366643290786299884710701863946501038938569795773938214864535265831368732719682697757066513261390135670180908776654245565178734741457927818609334090604172699612127000961803517950675819646069184103138029413670156077568801971327401466697355542162778143702319942469168102474313972515554584071370110635537322789704173210422899104025703982232471901702960135028148424508073151101365807289742953875202266825538958289354669277025402553501296177066903150686450791992223090586325043093120859980872875190271043449374827242091238628764544713551076469583151094991274299474534815277245524397803956794067092071046536953372911900613785989112817426606230880957270475086800518006508057622626926365140232190575822032560017870473501698111493246407352231348099027787896900312700571729048860430228148564909028979200291128222056640155320485126641884266285081885374900963935806658948225217097028809032808056284256698774898221315104151216395269904796597872466770685946692324848371069107103947246159594287349428638552077973901383861065760413166492614463326299891898339938264290777948676684738414066751406053964070718555002672489617120554684511320216513207482640482487412894189301485521983124632199716767662243995691309800370239104713124876654643062715040202989999323848267207485065396821045451011379189035662972912449071482440185540299652276595223126656445224338323929704832463215150609435586076940700077158606703915272447361393558254814857287254229242323265490293654622834372920257262889221707262709616999006787147308134965489370016311818173045035201934421014962351485424735693247337417313997885558516424604768504966243278423282841787507514627033804902094689051774764953469806639169542928230729030054543192202774493036563856707478100340362237845207409912426168845757205787203602128628414582114667729515230705815001639350470546856925055670304622520951476817659376816815433379474987045048775723431918432919556314345215075663444760218056308781183767182585536568053954486080065686225194483175324212953763227157027349864208109307568083773900451988642395472392917977082720185006063564497901179875932468616138763716564428062016115864936854302820077221116645672632203361247412912672915578780023775143979255886296879233868149901998365739897521230475306429875550137287876289340601896708297056967544040734384704849108584542124640221188917158661036317220087789808201690525757314404307226621609357547805725137576902666271588821284696881294262886713025355170031766329398634802740287381138845211757763723249425221537472797059400224836655865591969118209808472490911246493389719278620866542520504568725792143765463167473705531833451478641947974182718399541502252656101052443065103632877382720157356798323418330596235549847172211367766641525794374167820626610366802781123004564350864325545749517412479861744825870662810557878762244947807505762504732899419095798573092880713613680915324345699914919380102283455266152953768111648820523508160070922743935279522782629339491971376186307440738383535192663632116876431915573910359799108471455032473796998249853317909874580318235538972116740065527241844939455990212040210850533527814412929238938087509540035520647167261974960112467370029702518815153885461157234053561084099737295433226069386609107461774271471031722863649845283340987661039193897326056381113558105508872198066672766474709122334873567648174445172351003567942590225333936368135438350907544502358326834681678473859208476375397629134521623224334956429833276082283271710822675999230555942239331793780119196927478274873997317059902573031057557685829313483878282094083682003708002238375153969878408999284880319832209961432031952505027790787306293223148020975400508902208553713672480684415269796994274002353445894960911382590224781269991857620829973737478297329751539222387769046186117893796354228382576252749257438628226375556601769079621361936152311577316488258201201679286450890756547811823965954753083446545784522030043701188499629326434901013348793970550283495931750513371063803120563188655621221703516406308289543947557943481618192185879533638701615359994614151143079732657582526095842648817732057706549654374538673672473166053290571572659206179151135115111769464508372716910671618672687799729242539637607450997020611587094035727184780157733633912671992467269361360696159830189729145375046391647298425389941339799422357182346623166187734809086866148152873228262012162530834681189997273079660262769194777602004288692190287557998225211915661239565397406869912279159242544785873154641455322793456862314796765446219220081006405612833419387940231736324041360992407958435720330371889024650203407887043941133764549804997372593644564376781236028167622777123180647230246179427035261816224645453800690100781073948212175842935187083279073096446543214223137198136824333989416024388656697808342851862023224832054084328313422708669611441492161234168271527938619831049137803576753895568296696359267199409697967603877004480469865998856236994646509645513935661414276624948449290154424105644045760126565400645416561467747827177388852705222503451432972280156270369577644321256512854788053670525389053919047697851871224958304045562482442662249747438460725196370349204378800090200207295435930924306516909094269658279420491896772058714120081903723896253609197424907424853341038218933500029766131689529382489439348167832403414545379527858567566468211634320746241772965739926324825558985064974619098899133238422226554769416295014620470997144913528128848777672127007287055372016445624347310073355663682054329812087786433574013226444979122835163653583179408865592039984098945595284380176343512923698589998136608628664252277408278752005260896317817806275710816040597235922236210827526172494213588955723857569789427253927611043318404611461596607321447244949184855684583368000948628164369490685238784484362848620521337109371637780954817943969021056010460529879841022130975918929991302582917847225337906464338663212002787396306131133081727225995110360299800302885492949076473170050989201630083406309791687700641190731186456023662012349468833767104042559832577767397360493298251523818922760174046506720680382800509073779467672742247574434043291730768036854981736808535634030670671297825270488572711567090552174841748103504290990868059089137126745929738253850093359332831778785995956552099931343380650596392600211309562198425234105355152517419974743307954996194204798199552032571371289514750923431998969244484538829103968619919935667822331935051356316257201312027959059269963754512767541821753276799993485184675903965364826466633335812971737125613943490973656102315585235981467307597099893561815573929033006478411312400624054516947302506988104655895854198947440145401546662445086775478566585461250161870562949778027331448022061637367393658289706879933829059017395108292009740464864614106183709367152131643260149166754021751409246606455042854063370870947715666451590059414480975641602073737221596583438095540056914926651257120396681030682156045423564025925753466762687142185033859221659178108230150182742688861071430589975875668553459447882849450783284212896309561356428912314489863758531299820261830215301217150421878811931281874050163537431896021782794675788576817675288358742929970978756063547597101363816894881982439683569810993391363988380075587185822045721330710662624841773581086209920085439207822936201060119248230674379357273943266015728451716750542555010611820140453228538169613144246404014970684757383716189362804334453872310904215592504474623802072848823373704779671462623712853268568224455437001387466411479636133733094502318690187433121886420613240575240629330147405001033621278137679069817550784739433363862794736559074974374057074572494267187037362153865864700029357779249821254926528207370741684289576427499632847763493657546746024261537839852995441507390281185028150322485246116913403588033350776765239010622744687404962014007597886231881833161372828124315625230119156011439521454001495470868779038341292549395581310305530792333693830436832722518847297950122337109585349644095900471623081630452001654172362527273232833266159946171217450197146630471088330528463409817587117650465625686771719114103467386867853895148828505172109183548173528351699649860925051985883650772064270522341670739270958544107004460427162820024488410603752382767934655939341569067170563879506330315182378039343309380091606793388049784717776627808000276296563516185581591778798265588739460779112789488795522730266284677996142379208568653450609730374653426743009551850493911386110407555519963983894530366182952004350232205951146360738142743400676895094397307363957661493591613300361549118495331365015255153539988686404465073810674577392137420997012666376331180917322206899334959629011254508633436036169170145705269162723421039041532942444713762762127496663577527062875831243730845168668868235693456348738633127993168549349495649859580057047382882637182000649375212792783189178312933444132427624518221239121926152388796828193344709927301323674018632581463227016698848678367972410399753032667494563524476780101049361793880473563779213274797708025504745352925796536551812606440720833184702425042400875900169748435688337540130508885089457401770218067554868580735316384757056196206809570402356839094023453494499304106803095515583407033623462873487896519248198663952817113489009815682270279421832474417220766630665063210755770392716761869833778582064714265525694654133583103918819019549668449201238190016935541238744314148064012081214618403910009419222754311590555340357261656715593970740635638240430520460605146661936635092391960281388427869815759304049593651107873544839234895365387503015234717413277847281869319274007495695569185130054289514108499058934569351665873434383542560631751415131342831305061358115982250233680140223590429645142547566966241185029797346028909609311992858747694480860970864708025776598795306474987024938269440346481872156847454059229735728023343983437984401996706345193029271559782171699093580003119934135092710351093997698949547224862167971603275088799645782216577806301265910807475162279820199520352018110961302917971909577575039613845726475535399677152503953658229286610461931570677830414940178158316221512320949797551362983716035310088538743992631783555723782715958785134741941613998164797598819142951713139034302947966078964804028935140448214895879190477059531910996730223682792622618001116907831705466672617302473763239796258514983712164115913707550991169433528052953967394750879337638281183608657339277234199491060892878800011951079398685913287021799493238738432580278465183395582392789719638819062771504607946946674044275109046337749388826667590970511643367727147510306497465945866455432310894188393334197849072725216818992863459339443575967501933580079794949042689839591869303243684260231179189370916334028818888157267390875042793700799616841325525471566201095248192198271975540158600761712176164840620886630895447399438929931728687728392848673586194131586143539259828909280420245902914222801334251769643061999607411686890262089822144423785392106088075324164055567932115171776772140868860310072830754965921803025966506083362585149650656653740384830119076793371398284770179523897387102738114037614849032328956730785089551025671463715391315555650430472614370048681012483807272180288047664515404926407564596659924321980690395305898271996309473042537992212359209626488581551282183782921707603862397034673533713798992005308171272887956440778137810394299527481217425510920334154239011467737534327079169247281619472024531120979296873467562656987300020241375707602403706263238169417421071205019405054518816072052677997256221477547127766063477779545716829757034808035293658316536536964297696470297089135332319949273396823968321916148545734921437957771869362555224351618306703058234843402695999293752455193200980690034771677398932848144134552677692720843323867046181149225283733941393659197407922469101088739378625085206185546903716586915726804926669720561876393049113255666336776807642732005493838365265466560773588434933778489503725483802937183613796825409189248335706780745437791644317476808570624166898004621072774861304535887233680462321695446232547901474636036292806554821831897743052683453480844292515218761564225119967722986521199758006639215751085159891047471916563663940839080300861113055722463024902563870309072939327422148763559354688487665506435571383491722752368934519807989480007915321590937007561696795921128979867561579502413253314995840993921265021889934475893144583339302957825683764981803698646741044694855988652698267901198660538157550243485979169404346173433141485029019396366556992341061593376285434628931661595836557838524824683622735892644320629959439227958513329304042125101435364999392528452876475117626957105692184762685821563897829442864732522153286058999671434031466257366445748347718994049867725492697567765802411011689571233234395220886673132884313457104818966537428428858691184340236840827318103617404531930392456637850152056933767878696259038032120580819171558505815202622755270022592745597108988287280357938752073287110893663950196592926045628708704098494918968864054949539654296182813466613245701418304803949805822226867918478944392234696607921632574596557699010691180212326524301777498803914055761883095524956786180960678581237669169077558020469861486354072866515329667991026769275479521431811032270204472141116722820094816689789698934268481056149688634308649425607193322833648380317263914698667385490547539205263828587268363013896289293314255310170402196304271788754130886781418501897466150423988612155379106073332292656064686784899271020262302037955838015829535967867616039892530874454581139293342742318485376582966326253401182026861238960905821053386975756233788898656435385932683916432394935989354130079628705387753891282181751429209036186184323032644976481601690699411154621868158506217602576928917085414655069546161695543708015158406268811210055002713569434007344852821994571725357531364963362296678705387977526797865306287972058682490413191205089383682881742668299531026503737430303234053907012853659038567960967520781431402350782131124419777239973731089746757743122379772062028041678771521490731146491045124017674283786898341582979064294868624538542324935946902721493770399082917786134905567106185714015300073084026692147854171714425623441473864453920437896922463846920170071853281595810079858673084935180958585391093691022552638768117239104425754455011625202537205211141579412571488906150335121375000643459022827996998909023162790565395748868524137305959727406385253867151628024497265423376673481869200500355378726445767531442787636123015268137017507592296681316556981507896947597795973210529160495525859503253688935580565231868753799061101892875816352578056015260247948247043669169125940128002559731583171446366408226679684177158550821405238254321783568115832519226361187873195830605080512380450639898478111456437921277422582239258710701136581729232286625467935461951107367053013098848348482064735384452562262759680434977157846465358687173453295342778280605354343707428132468433776142583944280826810460819322289912664836200702174945569905190278964070680378553393579125628886814896297234122051758521192145965335037802467772868761118206807274307018284731545291194990637906381088044997005498158608606318766694355598667699357855449880790574366018901238041879273441996548647220198247781359972034972225497639982183808904770936464825598550458566076764468599852867588040786405810220268440279185746383408379282371506607061718222847336401365559149392984388911300335984124823856699816202036057348682701916360110835270603596721549708807854575422528684817194253566193224941901226187157475373470839341113665075932349406730936881818701598903774991125455645722790317442125711976971665345714797796373883301346698771064240466368263432027375174629916524898576141126281938966685647911715798791269636216957815403492378398693816034595273187456646823277950701630752468837330105231129199102435781925236583371116696437886448689944184969315307698523403863866046521666050330354060369094787475974357133883953567590026818766972335951795259115567117391442412427060787261121794813809596428504840277395575955688477621781580793531208785399269245090096696867303398645334203981923438188715016737208672128577925475531828370999398050954311790915773951156323518065023902420756414025278368776442378800172020670140912395427339650693875606197325551938489782359315022189078005773232446041925513786883795641412967113429041691718053685529279909623126103669565691983127233378992432971164882783383416538295402559266109826858884000708715115934119747191876438458408313404639510781397036099909853040120365522447056673939377901126545337314578105585919980001472292369807103690429955581227823740011606914114719011797351165550311780883238215805992335937774690590385622722460480002648463207782209881991631348646716933909502986167281122697121471436091573481586739997666965432650219255120086227239099113991411129821957483183323335328336144641388523217904329284492662242471100145753921693190692456435347197705530720759774430791273545398336568924383499897263021766984185779636809369659031857550860472678239301874904508028113934197120037107757118269802124067585183629942742149157952071963325341668945348467391383645833089945592949594155987067985129900652340456899016609167934113200843286384057277809902417487234721568509343901729334657068002278862588021531929926090480079984241559232184602628345886554137586358215736149058630004333515164336279965386661831564708235901025466399042214964288641517311707959888230698462459445235526695046983304795734800792261623740058041587483896542126704838855300511641451412808986260471733588010522669757982021756109621894930010849975650645874456577052116057028364120543024548943755349911307488014280502920998198874435106386667734026054521159169984600437222292705112795753465515242367408555870907202209969000038139766271212856741432596410605047865113457992013955350349638189163314802225579567048083266153331049342717213538087760233736746066776972442716323023843918723511859587720476309870467997824358196560048970323499993906330899085613743256144632738703276730678571297862356461034322678222894405132069604114029310028581941677505343842688391728733363839832580805055889097033505986322735891773141378879834690071963381040216688570242263542164181311768620169520812364493327591153181542222669485222333819469573772227195353253485444027538897095438391917942255069769594285864882451063618911890191347116644993091367112421197349212612537954346349803712994502329804574218010926778391666609411232699357921472047459410860511885078243592724375781300793520249973426516190835634775825672526316105538535958125774153683709027194288494334839632354104839362447993847998336237091941084745361576723172595285850200832609047451390588590232547925753241910821865591697437382114200970627468768567351233907435062218106149039819859809264607309549956921460217049277608263923015393501124213087246877445026527587652999677884689808198021794387559593542734222349867481998518417989374387055952446927182905396386344555994473186289154493231522215557805012900463758136785619959619853104766230827096327102120659160546809929835835402433149408605244841077150920713138850385682423900911438988103610895697643812244703986955854794906582350856362204029359188820395935858347663916209601307720878467934713258618237350693197309863355930299815751542028343173265558052683263073253618830474764018404065611869171044825049170957973129280475779499966628870732032897584776748989887497635889169828321362761552871363264910365801311477755772433302877795360104294013354333150717529647138798975886502404925815875763772633644091328984961098566031237898558447000300062322260410727955095806347353891247365946462735209365432085416524000486418716526076534660699117209866187324281800730919569653895132191536959614280569869388090694342751546215908622307102634960753877172143705105761397622825159094216331484216103075200548071352103253106339529892067894790568243037663647352758213427212830328519094177909031647012669410550148177246768391284847225709960210320884830542714200108105060725144283206709348332691258011972192586787907337278960000523138379339153518207705391354180451472689977653279272688530432460354746152349588072060415863556147002422549416215863630633279120463993030440998497931018200696027558589545870353237709775940872574072154057864305248477677164135003542833625344302494619026310813596055406732353493931648307694803155701058184591014928134242296080252295808612441552841869006760789967004631388697483422543846592750614052229556786841494027972718744438223781094661618996272246285835363448783234360819159099897805054680093780627781022887883144277773598430117060383186264045176708595634063252059754630175904196672442791659172355113418879498831838907709964468064907567984861797201793272726535511705503475708321721642784558194513246663229952332672102782705133456032908330051078488484605929116253357847250203567185616213206788257558121966189226468001637308495149345032357432384758246591298446205784701888918256935780409727938757400523543019488321305698853187674094120219124170088934554135593448969635752928194402828102814721069399760333840372655574037414856779020118962531344255041672161234577403854661236225480293927922697510142179069184782579565884005648205454663185029455875554030385370943732418419692136823406753410751391534248794499971693172819871474196636314729353522749964123383534096857612301937561578070571028504378443978104775219733232230886195355033529688959330253167502843850700957722515505477355016320221269819379836664440578940294147248414361846236934250505136720360647690218691987484529201941390751976751406505527265514301255922300848118811298755295629791185373197691934013078010232088438263134485787904644316213065622908377195497087421845896520804879032893210510710608742112975503600163078217756263270971295966731515738394482934524459049981067483572828518303763140800097076529745520879800473247138716013268698849204318383415292643763366901327611576339364347055527301553332471260162558478803083455530493459581796216347031857379810903439747648363835561949997428457808325012727536402967298521075094506867089854261504856451414500544563031177150204939347325069444002181867457653282707424861374548568985950649745010088539158805228728970857707489359469414089408233538122987587891199893367681633243603646347697591476091440882891143524242261645771293840396675000058376824792982428589024601112980555912003517373798750340594812751323635508474708379441570588568164026219872585917051951351727665219788354900149690159985831242992908251294796524909585799405838520518772147711462445458608603279684713856409255987352878102357175052843811913963038045220994227433907436188024397067844077647242303334497719735199953287777611114275568425352923926375351299951238087844943283076495120143325524535525176155557077946563314034255108138341747817092020102286157564682248425347437310943752018325783064919077307715036396395582523251371002889922394898428482434149598829204504784375892201019695302299079942037140069937361768026111234566767126045315232636685495785894709342837136127162708585035536189670916524928680932763645978451706798098653211703282572404094811903444297001862024917482350755206940885818210594251219408314363396252490282258803501928288330184751312939046597558277232345655634218417346053390846765668565585414802394518599618581519637383949670014052822158687056135560245143992884005592594112077699197494347275694298884791823580257190279258082430560485626812527355923005633310077285387950404022971296179791006923119326432959465815591054967032355867482338734557565404190394733662451962144125810019158744321683756252062386526417098100985128418092621684284121683350234320974208192471471323206191350336314439030050841349162220765818773409475226694764693780046054376354743614522357075869992830101774775118378840041294599410698008486489931339134262804996408237225619602788285460876280604614688075930092551118943101736813375396549883293421776101987554071827902300810691572664587455822696683098437171671585207562722265961704441384021307110537375001801892182445156047706795038720453986641463564916530633913511877800896467962524049324051928559197617958384268658107720704653901346876709622056865478664138777000407804806012213928931214040166724832459134025990262258329141972033580875221855444941707569452368960364980190321045525823485855636298051508191213768702356155585260019215057379973866613644660785557069204323949833888522673335112396060229130474028005377088904290066725131403361689277543319157306666939617296200256300935372688137645253910485521407404475993579524740104852228339624669557885975617376418177146105307250677294141754522576292759866571918167687666138746154342074440754301458995067679515982326897536005955016286385656269075758903858447304931504395700735931054619686089151987403298998636527618538505258268120804740724641936018953629522185998575686293408809983995604542312148711188931198757200089776501969230547367497230561006150393448505984284969639583816532454398337443348288006013094683391224245367656242285794616313589356581037403355319396672536195967970812461643096837174445150881687043689334642208982289857042706734648276164953865258674911824197354073656343516620926988644208943681501934742746691086342279670179821830212893558506169605020225800038812783016243184274899848205110876703323067636257195218795486612267322690415527657154868273017439662050267321390673589894188035552075216857834813660021131127414675662496060832555618308748679391269078107933091789404327295273584556997776337080174585644908589120744663720764195373452078316649629829460743892358445442741304191808729598592606354564084705884836380816571614516912777933791352347036228621398779036564242326214538027208583719376038103341778805602301969144182429988020611929167300204914196287118629449279205159167460237681254293290597279504909760325751452495777121113287514192789700163014485892704649299583461618358066731568809663140575535880543643310315341252918877073389771145154495914144815021563969897077249899151715051666070826420520953681335438670523959379476240657153199877775903538479796519177434355443233673417491740339170741543049239800474741508211197670158046360519963752976338891520877600445657067084716184339884335038960600041688971069129743103859697410632073800695999328560768536318844849768124887318314402082095471985442193866441004851844969655564767700133598445193658123839674423605159185358092892963846745438114874491838092715256423869766824314015232365765362460826813387218731707222956202591648506113905207280281430476440893265887410090961867592801613573959456527477749214789870661142637453913259574658754189591459388184547506486441715137977770081544775515085210791895316569708427174032998469637046438417720319982518841744026982167208145841856408296579337985726139725289449614495496738539308651141236606219144276129711724868848435580117184998153067714327809488171895535413642484837483377976106966560496762528025776643781539884452286101597860249166162645727919531523807591471334432915890637353614499088177440517304131152549282001340039835494148282387639867758181559290576122796002625040433282962495396522956224767049278286120507055101982420904182730004510708835946249326852691138599304381802531006747158445278485750803862087495849919088425895146556437710891668417961940365322512709127188874441307102481163406547421975353332316513243571464216424804071817812786874778738721383640236372690869266667810424248442689307575905314065526256112358019073636239721552449846959762606124010584749767356270140597274062779028069071998080546102083588381572800036969677974840408828598982261895373708723332717259138064305063035470095649487204730645992400390477472570091150786135003275137319165828688872033690405921847703056121982160359239316131375523224558807449223916733788253118339857003580880454049694048615532665748300025893369116057637750959396685151868019987292213322069714641844965655371492855658861243343547699078575586016263484203654234551427335269950834390017280760330838778616475994238028179845089359822782804145111805436132411579719243067838291530818910182369777880203091257386374834593228768499680148701128711750005562547664088435216763898900458346617790071232429829166293678704708365355498610596378838476409483449892703600648716470212093342591560863263108312659895269171964732481728016398212528138071865273527046613016075732870047865166830057051729683140230052726838550473023606422728918175610081112954074640505445265158434104409393519380648507958793203095642508043567075057307876908696292785429571382062259158453088318969229206290007744536120529226320653889199598088743159272083892600073772684745405687784644913231363600457827442700470339277285061136638989758651274660751674109370966866895106739905561032674689396832374836829485672991684457253810815852108578719216111490568407238687220973453255084203224154453631894152113462716017123832960102907849210984358200241906453537501609616376039585758887132665791406338160246847292464107958749744256218444576606971262586362883080669061389812306147398617995150234601340047968610532170728841736242044433792368248186985778900323927659990127775413119853771700336204675643435166730669461303772007581700466352101306106074024876311032584449044540378745511194457977482262459830324743639838123237307905968737433838117336071102655178753598121512845212986155482359274071337042268496189353062176511210816226140355548902628693782434403658513974388160422417539124100641895297192089081589091132452892876234720733657691564673275922126780665022154744459434994700346752422210381324185771868482337803530954965048718697066108273261347470578636316081389940282971810956791112609060208240997060443043849369604599273599906095871135194851795617847359441264241281809865892094830865738503368342761636111404736558833888188539929542383423748435213960177909504187556585254309044115967838321291486735400465104671387475689040846111578510690920200800798673326210158160130856657512541761388314533674837350802696709238747318959650707251514636372186564061967473638378722676759195293558405877472420936385881974254855049088868299378254203285639699546601842027055687456881535424307009308395153252825763773842448453375024939469400756371150433967887652131965984270484400547762859002545383296705260177811912092836218411000002566642642674369160776736098499694354598069156898718246112228005584662517106706538471815710279200083455129220089676115855278507015752998616447662363997064204573528900565500420078953775027524625338459641586414558075365120932555900399478867928935074339932886914069111611303689425183400551554145443189917635577756004618183756016156584497007131352781989016485280908269287602233642281101400011403580270149924707150405722867236116888879385369239221937076217647096220292305279956850039273626193911091953366060511824070773445321564373170952076369078764943251888047202725474778759221159417400692469260998752519017222088108696842112601150681204304885858354714893261846166951507806083802881353237955025637003708285095322204796357682508190760094206370376445936579032733350787436132605811850295104366206594982629080443377846883722934791355079067907195227806533004141774628829310269912073111654690196266385955209314186445054167975175816546974948003437540585754483434915916110063122028381627729589393654436536938861312901936340042016391463598795213835434463404861339055333315249184735660150964103075557135123539925316827943726394955823237935664582998192681492702580426939690170373898098010518514404451367753186929270877161972653414069373053788202225619243716209857267545536168427797725524794650059801647375979381659230355178688304161569739573735460279172561859073171190350683062286339346935460224039936872877951982593274156459819727143409303349507158007414698142508043544023578611176915233241638347859417136413520910378065693107028446409827605670609939136000237862519126076833450135100782504464022085420998042632156035983303826495495773897816916137662093432047618388724338584937523511315260961319621775958201303862356388695537389786062912083858657003526970483346768998403729305272987060788772258836167293659496341877238100167467273094988732405272405004455073728082359724256059797537048980523132718483578136829018735929588604856732142194901982270629651198751165135379773803390317775059015965367405299652197668511860373245336280260932509872391745998629267788523002257669164293441551864161280957475167658202821023214818068333977809622543864884663398546072890462751531019970674226020119743160813741620878020817058457575335561246105163165445965522979289536539352489335842772632458759437373473153007188880598147692154533814711920893425019737876567165626840278811628537614725245739393031657846578256018990059438733156759076022110548745099175100027205765659118762777765693483581455881429844837215029458568590266408619376615945739418839732318635582556685185364250511744593450446607780572396211590002626721045607807413443196384537345348474359544570589537397386075963760156790433038403272370444639135167106954797520982816106304978182972986863171600312506159747515584979546747993640169272666545213792307811810235805908673170193803147153797263778131536196144790681833052573693905164173777814529998647278882521366774329606321940480772941808508597551638335956313954282675510091424950005516002716852728662954229022325393569951838277769890652111214671454087021857773685528241155486529727957036749340197405231886994260307229362348967276340295751204181267254820517769538400024889035160945291483515975700500188350868011085586632666253453985640444203301045227237340811718660054460420420343000644870270505480172746139270876023948628872237045248193898076577823461538177972756682830603605783582945325118833515691776615463832273937833063509388958037983705197029799126356270239237141086772558862202395717906398122121517269412519866240388967676026359473698892189973003420634199943328893882494654757149747137348366128613153522989355995357404373844212521814053024911932818123815906631502271673687005981178475037096160800792591295133061843795609209799912444297526282292022741684858452687220970225086862665440962098713130751413915434469564970209780131595536752726185354723125172375439132846339048304182008990862028014292489809401332698050687696541882226975629445696126048252356269526020293149233996689270278756807187428709797578390534445749989304015669501804105530138953953572484708096850482820488422639759039385864921607045803222338812505029362389298888439601381614348146198989252556274641908986064176535550787859275873116942536469976344889321777655122775333407160611534702608685393959138967680382401666086115351871314058982150345520230265971368622256205413535718584393053982470281489107705229246829644482121875092299938105086853481659060736562416190950326322569043392194059162561675562559670092490729441949584406587238130760040474752163289558392904194483333396255881125035217992577729225002810359540506926377821531430387919296576613768250802709139781581509116559540556564370406915761926834684334847968002171653214023261640732003037479890349655343997718010141139146727026744519322973298731505532189066392526016125615207609664242044239170055112528903917352266441070836057012831700775223399104625395453495870618957023864583451989067913180760473608317057221700510064081699858971463163572541870767540211685620679346708886737302397226669750759896652105462617386639900671443223497277503454347646832905161051115445880043852458166983025221085118968411660444087044862648473414640665978036612787648969916946374191484676351515007482290580079661899701916440891520610886954240520573273798915810726545157228397754091087349395574137972764073182510833351349846207249806347756089816516818224083933052627143687118604462745798284371080171501331647649603601472028212181134578381676905590126559893990906971293681252333255748557218268614460878413500043502856563297817196584491724952224745913822689601975135307693160837994636355927928670887486147018686654418672470504636466948434413027363552031056748049736852298694519359021812379572384349782993747237360038326091957671111613655390187911893104528694840030239842767817820003174733819454355984889280926204033408017190864144670922759948817726219802190368788415799538154787233760776614942253554256983766347956625802659869807416092907711740777077138328490306997367639272954876117265989436707510900789185937316458123320697949820574644030052628999756293966878920696583003450511931020021407211548115666358027381452682092752341060422407900864020416324894383869293663989401428590434486983013885935365260831735932986845329633945848341306431632384100039916143626692924507623971522671604912813867127280571423242727166625508142271706299004649424049741938998886827081958336742649879704045551567713126285024570022055730265878888168752302522911989397519153057711447539093667265397494845820896219430751762287248119564336849919301758611576920082617680201861773865327131785225439645311206926696991385012182964029398420204229513294224228806240014035824605242426080766777390449951749647560823959888821190379286090368352099022483095862394577458489620208005547098411386383330417941471844219650582132176886384021695743922181471004969730888079712663739037066624912557083761429807901034745549995489992078827254832320030699016019630768486671818281930056591909933198146429126321074387025840913623826499656957425828729979137254474824289107173345016318657539315363906925035706307625832257661144451641987003541069540415543347784736760367809330808289952661204432079389211368949993554203008127483479081647167862941909859025827800963696122564416438778981440998752066877516605898827298304916666221195849994475979043793590881031378847047209674844805423255674929887109250610708392232090276234913454985352353494375233455574370880988158656524648774786659958086644918609777520412432734458630338275006944632000051274720809739982451641508988672896820576149123044260035935571901558750406371402280336869449856171216142699286622484421995285519034175919200123679792135738409645105830237489435583819205449807658217647919781690925706941004660937221127764758960361883071480917201786239140720149732239649279009071040922936778432979313472569896480721818155689695116943326775396769206580942205953038954184519995666209840749030124414001797742300351263354175483718531374384984650393169135145042041935681783412715676562611647254354374892865225949742681281971183601049491179172845730153190131370386786616748023427016945630337452287396420557196005985511711441381082447980690239794704046547611210853941562877603766664205134915740594062646067751160732714337570118278436967769826960698407101251975368237102227645606101888786333478318929633419799796468315565659354390770495526594627552486173364339064780621556468401303323277031282219296945554779845224621258501126621450283155269286316445418334882303185006881639594942861087778979178846290728406487778133111908583630209637818616065895242075884836063386383143824847450562913752986210640357458006272941580648612614588631189533520773548543331354070377586340591622072392980409121676589688361933562609943654160152893889343315830441064741059523513009371017535089153586839542988815842612608855790053973563014122325691652075218204597726431798159954820725863167176277411645190513071258177145809661755530008469864749658196020594336432321376498079817539397339286887902661951226338954301939095583387604638426999590180142793607160871697158985188972716950521259369995171282555343473259839997748862642118140606106714646570502625136338216244812915077387745168762147895597507091911214285501135222201543514329461086402380244475957735546910361933550900279227994115826528763561288593846619559974520392395533807410316502237309289670784742141232769348132953137925236417751416939663250040699129715115260292244575070196570137717212128313379063567331822440579033295515293315310315431129218714533949846586424606748052307868105547199940040627645010939386917497454425448619275213371681926291443525157121741529908835301005726060870921650987296350243910229138667266955533161371751671799622200179248998173069873130958396052011191207957210865635485617897109365183132926924019507266972717524946724527763669288546333405960959574176646256964763903477020550272059592391960452860058594420943274715403986452598243239066413102164959779889667973489160294519261570568057063751338937781496691232759314787050036127473229033535602795758327390118645105852462047999117359464528011147592286976270589118270931103499550580867600712881593937482058722680244598396529506822879469316709198312256019563203788380916868525914961550246768043437970962335903510071625413885672572597239360271465188068695923224316314188457683669626509763110414026422661607611200391015136357593838893450703647603294307581380781990127280580307323487186792099174030546019715942246586691556562921365436303502145555148701439128830469725303262903338077928987920018761974431721934610036603759975801034783844998219753076068295934192038367097822782308687238130078829086981941864602355923820761356894683153864609244158309887008035909598662067071664715385739330581699333784206398957883756032786768701932872411083958337324059156406833791136147746553181402883228440280907010297940468985919244726540518847343187634563505975101354674929813560373067806260178722697593331602410538939189443042064670531072619265694519334557504607285415368943844121300476007812807694746138705877174156881965333382938060072335347101105040778862590462288797713839580859474699589396899767187844054386396421400733987699399863378891110127976155709157084483198564718220919529541207231925890804632603230394864182562398607010387743132320260150913520943227790376300145612846658118667088285142204637493713823484299159065010163853390148090835078521004503001241357227493603123113743370293404731108846964784736593460699513761810255630078848898078714020127348558525774635233499717572016430924027099102267072872697630859618638837836874663017086064045387262920536579297155501549971101397531591682598792282912270001413510633518493771891098323312135927906169937314491147871284524063765854483977548504741705321019648660553677136134922934953906593673138437375329825034691905860750240333951891332130886453344532353639721792093277789173522247661055429269088120933467782527538364970288934323009564363174138211019023994473827844153539449809879955649425489128974352221165462303778511080296531085254934585652185616938510586191220712099339575089899655098233438411931538711824992698951812439786311380384713730453804280278089766322076006810395486449123233153189836047338625564904764168183881821323408475111971110790394906800282383510081737636018769889506487908931435751269810785470737178878054454455576792828278766747048806950655184433529257582497382511479471670335082134547635941291105877223066331169314429260988064629034306887749339939798955420437944552585080906243544011982097175262139155517285779560148322500607677355221663571431442093166237206395517027871234112566751970588516230306855435546457595322338884562622971029398447440190579664162601008830648561363901198678962276837099572762605173253524971352475622990671456145685752072256103745839860427625237174034353307785949872991146536654324127684861567364572341045832246418590283667003109220576152872470886242885866657729972242992804083517371372599925996064549763534779355524115211014734316465279624431678889161974280879661075901895125986310748945791353072936509927640006955889668168573204297560563147716254054790942715817592844382154092482847668865783979703253804794267055162671024010825824103751300166993776601859978053830241947591902983899303489513898259349968674138338553999210709530965692956473278327536375404370309842026464237042165924346398081072855413269368118428238956521524436456451753685096109271241508657702450424817545721759081304846316272028956726760285651522697848950557815624740585712624419137391670051821076487251431846036167973312651519593711677087398873355953818690465703683872530697007534313719663023887493158934829006302614294755528683718963149695086141798772793300028237976697387712256350449657730463057029724724392644230859656980796773467290796049467547160089744418840861158019609149851749086560622180007334102428845771813935657749560365926198578911820072764455347073323244027864555644705285486730751237773447616678018814699742704100841515899020906217559256287794967785806671723678786887950971476562895920303961086867259132271136741174012720030685206956561885876191126260514003113645233893405621659235104787655394819649610766736697695867012670166133366223166382075197660138374652366174547489933141470354718316516560656401706026093470311772632253470081824710680984318383604566944051420735952541777356582770110751105324730982910087252311084372817167553222027269814914268054829540734023111038274054423420711971392582785212280286327681081256211477404140982858129309660007949925943721612062352572260921936011584532017119625397394438020027752548150284620940076408320673071073510591724301526948500621304771589236808192562672221887824964833699235920519699487544301245140124711404756883188447034013943146371961388004563068201089207162842402579224154497343013376968241985475734131826711566527039872973742563927977806924863884664343526898284289647753398430454621284756682592626752016799167645028554756756180641966786239582710728734249961207300629861493334411497078917673808023068144030044637608199551774837703104342495491911859052004564943509116268538347425565102499257832912351158779830618364471406229343280096409765113744874151610788695703604093669836966734787528995112410410770884433659965042591111504991688537686246258626369636872244082602390571132310200715011455010744771289167186902308377181549413653571438132104150290556438254706751675343746082537458685149513463584771952261484639425994235012883640226008161634867676775243494963142656622408586975671816714810116043826838892491496805817369412518526920426569609507794843759090434845413599484238392212007391074007571977277754463928677376297321480984585884056720910890255889823729107590657130025392554527066021777483544597224864830743735148714534058148846989331949989074377224714953100807806442908917526342761679060431297060069394394009220050540569222873416431564363365238303623404250971932251226415550606760155095676414148012446248401443627377504184747902303301307876782204432423873488490041612639896634355208883802520527627986771075560793220333881007914243469787869768287313185582527768152068796928787096977073023039644704964882279923358719236312370144514404971344585482415612471170979797205660265058404404532754984039797147004263195090713512311450533030077542364857843349844448795423592082870593255861324001781833537225893400264418376352107832098786289001369734262145681572041987650800021443096206466692640916260313003580007515237456734693185006004927555602492051582082272877488092712448238783724052520308962826089906720686281516210651254735554608840059663613940041396886929647357674639632922848504046035745387700563670435821658007041030776639806846070675185470607469596533636129699344328795348294790778290463738066678834250986018425843303406113426879350457456653418726337379977028691635290531872168382536665287032081748436951333378951534551937664243332777699472974292818464864879147774429389653931796437248860074485695339093677334539044940238338629476723421805663980876251607391247560606392945903542256039898326436770343717896615650808381904281519214603310817445706078123641150815269416311318606116725130440100478717478912810159468573929194702645767448123432283254445415544096050542436356912012700633631589647230015147816113087729002207937106664027474360756223101672946308760430053486769884132062969755871336338411613813983812402205900673694953065042349311450697878795376034942140959173415492292441440179466938201114463890555123292291902412284544734363380370763250733993579097768994143864382989943916597107747616237257180376191170500215358210634725908235414944445316498007514249482257301391738712939613731726704064185609367652947031504401887580935414885650703901863653503802952171136622693225192074669906536399274275992669127123352892848737002747729232996062936015495936671057181649048236649101701893953098795533803907027798098690562063421928507236260995618808224619273118950311574361775988227184971570825943521645762001600888228778457728372835691919122357519760263346674011161885436591994133679237505445447422323919993711741699249341017496592651865162772829407645577495130476991605537937833544161283995726920916219784646455111302081597975634351146871513710121687723059744511134796797541237041980714276621910449794679462861143174593532924497524728153805338067946949527534004007576833073052899202661780492547984956793833335815856807502168804835247112696239749761509454361534780348875081075240600722888083725053958908844145492983168156667580568515933499238688552456928467455309530874386979526852031571266884443383140235341706237639923521893084749729758035324099547216173435045418471209252658403951102458218618868366715035249735398738478328406839570145260247531934174199332333306881111276623940688662729631222799956848523083569111080047913210285838317640196917295757580652266413540385486559736732056305757552346193162732715247129910926001623730175277660497111264797576009555677908091123850569607461372530500744984572874563982147341897532984896413827008352797921481804752915431302872203931370907849479329351091273392340772287919289453515373900609370766212133146330010473051122926783035592369096923785796883741980011807249157816433542127769322888395967970349099765496944470642927050994167185874444255835796299033755890525329512879532090415315330838387255087323946654989070657766574769792295005965867054705588056386419598976289194839065047525331298936557650584293030342639107405459137800481268214916057460145419833344642219717936033837124695269584658893314807738755966752869168528965452321181843118933594634525794534915693829165857122460804634459512256539221157173959557292812048088281853578698973314805602052878820785638889537086976039982189072920739326134983071281281883995752927655651090619545267271972594779406578612384181259500830947000447937276795887568963117695340130997049264220370001588433295365859433545006571803583724158843840482082196292498347122740125916535163942447703793041494835289385841733817265666115440010092184476054741354324278737405587322395436395091268954082803515029394530439400783123835818544191010008815746866740535884068106138807977638232676149192587395857093808052307854734879931207109549772287888226669262592472426577061938060447364429790215973423630991854124538064119020915461978417372734642586375586875795585491615883364278630392836219872073987239000945223357741668783848257274602790981388064128828568928550264143854996210919576230000689998246183763585578321927017994094203663072156011232283626535657107067793329204082676977934169199034531936453985584219118136080383779146064648487286483900342654424753090720624196825554307022299690446107663457037158896960060317018401540107382341348117513966842427352235487363527714839694184139537979000992185964928051172119978802220856752735996993087365483877032221723709582615603083318758593750957002310867247619781586107683099376777044887204217263537659051987965411423954491071561163093977184689980418339043188816951456102930425097158312108866909181337484704484235872598793136374072263334217631931351056942853195980533553430059965349515429864111778876800447077236726215120573800501520660857074999484866405752847457541837124573082610197516859984594146008561912536712609034595892744959165016494976141156467456510891454503206829043642607212421508799185179166376597315224863810154979408844884518788850547160636531349825067298545283468051074777157529918235002507881635049511356529864411475901626422288002354632853166035641441140821126835662126967378615109023664079304452723302975043932299441950272848893238675388041330198517109560353119343225009962002014260539989732449261126419574429279204644258175636349547872010382608336338210039770490327407341946750036313058165343735517110508706304649596031728257684236856751255319545132725682599848866840249563530155106097495794335272423210335351680630458269081337106339349624158137396803517122335316613320673866574891011130195953864549585970222719547679709287812162472294624452158704081608800142342345449454281451961731798256229349737936403296360973284083007546223776287128792964954942758501208582499443976426084733593707224064344882006743007215625939381801043809742839287433957596595019382677570480043913344413272271686903514838161693345203975674023358364511960985661955951939445759836770781697423214626849651419907409112928060369961973857943046404407465227612437994126004462350371994218761435495143278531583371264048800400529727570265969409502495717142528454817104821583064378438026264375609788323083266391981187582241129003481373423864217754550170079008541077163963438933716868280331779548997061782937216659458998370545176327761837893807737119366902240614390275711589432584982921444794265822816934461257497069289478119182233172034480669871444023812640553707717585062844054254925553271110158955875104095140690843645921204253612227652317723186949042785694658610027776021024906630310802959390340812499375174735355596368342810524248110131754666330751306150576224233034812780737100567424715354481980313116970921193781023073560333650626686940315130504716471505105423771626841172732134838604104327295600019012694689626770791942644789814093515699124431680891445421380738554921861769764099288352332641527819395957313095413892447887907617774507692847821242386734490470941021982083233088131559383799681859178012520997558546981886979566993244841609857760373113866512553020507752509213792611050400550554449721027960123102604836819755924355811055486355127066469181350813862831350610433212185110824626377971974047823586911445270170572579351067036535435189812397999898498271104547463037934969511121195525029698034230365462137036154154453143046254882897741771927872769474292735952948081963843764554326861082081259815779774934520525917148025246069259229805138247624864986705734408387221008766709043407127432654411757513613332411361401448902225031173068168327442398040298415495059554885735759424385742467184871572991607452716465211851027414759008491931003046116974801597772990737984913928994037490377628974593042488151910508485991001264132251796759785156571017169354133435451298181390261758977893365134563171400063750060154015090979509723780938198904854405507194227914854236544332428482253197956797254866869297391273068110328265806433420441895587493659005204153937545742158824743369161376666064642884213181917539731524791494866165032109573316276277194065222571826236570011775705660065334391658621658427555056810453065784871714515289783059604367901486202596972346606649936518901486551642270106642093927712655153533171529821474578390074111327882521490081217932949385000400198463325155871140522625102687567836905116693139904833308509439731815489183129911213969299712785902587616832592616504884205668109778644133889765690165156866151634429865575340034930356937295313705251221162300443212057615853384438728481254469499932823726162898160800845851880576410507271791098374614059955687482039351459102884708134014070222515327461601000481546894496989549286463976042506527832914308178675616529089720758537710089172783562552662128582762216304212128955788286371320135034296991887526891990567526593689012879956024345825685885107292948811582957313236981590352953852891281290761086586447999734146797447829028683213807656570500513745533006284542441703142815942895470657739254906296149142245818069222213912634442055358769377067912188388615449554359936925692715211830719656037255990251196048779181313138908038223987183924823421583602673794643387974695677241375218168973175013335570306664672174345489775407109702200316656845199232710568894795664386459387043107557084591760234192420941633229055325922491638074998160171272341995673612848806213755924119172353534304908687978196366661649981982421649359658943940664693108997549662722837084302908165326644857538368497353448867885523887511463282465641129745902616525546505645664609621291345783779154146945223791001902480154647210890350942473003772871484079023000765627724842941348078454504121672943828548477393478177312906112211698279846655318429858443555590551230868636845243277951068087589787815002139287711918618928141236877808570842001616777722644875701449276255566771344742828562470332178718967118789993555764277916152295792493085946257855908035490959321700326250876193269842850443987937332044221603546934357319873962203132903415039091526192887798301929584309897017666718886437934847827467906444535327256197390450046575504120556385387615630874365020405208251635512674261211210560077785234065951888707796976629420610447808094486766934895693241680891935229449275474516364938875646986718547579546606794535432709757798534829736497852350204022701595413189901629362072498195328003741326232594110040949981505799200901664114639056948674348676412683277019449360240762997617491394734022573712742484420409187904004503193260385492050636533309756058282801918085928997966331480838576040238972696816174374243088395583884431120362568628248788867277410753697135003476332275855406458937176011130665930535582220060627381852468229135447935631395228819773409807783832567955402278501247023091877235570167896155130642148207686005020212628437182309028094054215042866209887152710114419836210248832910149368767275931694714414591885670862704755572912011734766862133648084444654556472837019778671124238404159891541300719151143241275289045964069485535070610895251403071709907180009479869003895053037982165869829570112361012019317768947796385638897355579617738301297298096002407455216880960933747123351341350496810741565543134330844185984800907669232055375408213669820138651487660851706514445369880402435368048989420026691547992010266586199878944831601309909597062900730320220931525517108143306008797721161910255738732374053792216325676297969366979781732585992519681703490104306462490938139480367974246823388633156427514339889228958411401248304336825335164383576905375164451510655652246934264036352107967823138446447544642957354288464603287193126566569921868400373184001251887042429038386261987896539312038972606918511200458913067817266235806023447590864034318664366816824325360141608195113045186867596103912630603665763133194671208200289594263190401229344583378265012209462600059917524535814062304664561052195543697113238669308525978824952709024525876205862120367372400189026496442116436219507254164922197869801048067420156447751012097799660722190059509970169617610051335884465817263648771291150736576235717252767660028557696510689191316380177957706188186090578638228297776264141064537466938597639992287120445628695217448116572940275079526053441628199038197198639111292629529201802488383439301628922825920773407872688542834983783383454627990990185561834740278370712583101133217640580014243550215558451857993378081413675506960218795236133599661314879485800272796010509410885089475504690291483983008695071955413547767957538227331007070659777307983248927682814391148366407983270889154949885787265117537492971435327460165694308039926139237765805417182616798590602017589041135370163903177205832320132560181663027931006711282527415157654504258502492127218053571097792862297805660595060319894121026107994725530981769562283578832492358500950156310836194493994483079706047816243791082058134882190560418185859145023192909952845973783574334864816143315801987347847397781989622085590333953570991781804292181402968665417637611360942104938857906195281356399927028808903686739897315518611104914813442965711269217801456555836858819418309932668731031986588330547195498077548350900852162793890328924695256466838822537950787760163478182132507364036908968822936835763359648407628569113919071739947694501827298437553984421443638888430444102770017984636622954721676134238882996546025738598370733932963173759204582268483804014861454344789825125451358742589538042679587757599339681399940592548613617013789604935720177212519391572496220597364897809380731598314395030202134856020409084949086384304827975628691061766221359258669114938360497985942415770266484243419538144242477811042096399487208451386691028178542596456038810472613456635442939457445584772468410638978591479639624788332958965534866685915862033844123822115772852061708354422274423754531123738232400949955398728571692363488534376119084845199021923917919710053446474149409764397097195778364976436550315862450371718161258955216404913066770192365863712930919504240543492573309611731685666080061111819663185989370932253635457791646480739327069519793581229838047743400226278563936799861231578185054777628423971858969631768148400495283164343581154573422508211439464929179627108604978331861829671456378440150422073753760449712096808475231788890483475043410119735353168334079857020265255022551647917576020435791627647701841782903887508544699493569946288666988412490591943205817559840345342354957885411327388257594913095928475516479878520922855471738137043093748218482893487943056263864046371279684471713938154773724253027872213778072228487986671613999813222246013022102979628003042589711273674330036016563573758731818336192577321816998147749112491090409076527192328924632902537656646065540380254611616837636899938111389531925865274689001600735219208853503570820604555072709985208749897650760192336246714102179575995481599964432748479460007334537208657485470114051669388530519813832813163964388994830917258634503465995938009784129414874056712431036198667383952895235405529955512695193891112615702660079392563671555066882126487730350492365732613250667845886679172816725605055185621507069964811121002665148781059529120656648061575841643773816508751492649974387757172166514559047613606543663208435888832890483423910738176442317188591873794085803244688598492958680825809410555158991818069046029436900122881678809486082328692576460274429676399694943941043427084250356459995627686054830007629123209151377565801045361009463246982204581203461347414491326446540720496324542179324637512889717275496072190688700381654043648175269399982224378670285667085186014223376149631234274161103187208613357768216563339269095783379734000925373721167710640704890394790627870050042843144744586951213272680145701004306119475756099463632129163261219950279082220826072497849487610754898274807134181922123812647049361907820946503905496604057253088357797962408560034977204014064155956542486204578859837710363833949324967537891190223522734399390837680629335461617304285785094316246884077651544355323823857383230397043356907957484369078997858736634056021609421859024170023849848789742279980083221026641944362012920809514461760634679835948990712990876356630604369618827041704841806708126472793421738734510692934583713437767883849589350832694833680846276045806975795590455776920863870797388910765997310371608408707708933628056528910074130950224251604616780529991940844646413461951161960979392143268630438564434924337997005266000347046914662067664531139362293411082909402475289607359442452369747618629010337177492403132821662821309194342603301278845682645959959907640049318237995206044213798511519678426286997994119961314869246234011201784941605886606557222278108516256165951841497739559203860606207681987381085797173170445013407387205200693214070766129534521557140161276567753883535988367378819368911577342973590789057040444874336988982579681604547544646880287058525169630089555270973527269717267754860980684905196153964767050813367836097982884719177587472089099400623523852244583890579002034632995558746757464184016930602900335094112088198707047256721635013541479637792036893186141872310597198087229149849036176503469634342794513228204439872358470366267116498071922281598518327335814956445578160565773853916050781010391504227411285250857001446695047439937234178948164415022007277957546058189368657992713502263100634116064055702855295569797594187073337974690093301904813627343509917745221645574112504356251393096045936475041079327480154365865615444817441818746783282130551934591375677857683858846764832511727696065199690472446016384085822876999972899549624766389333524895495069405058026644425888416331435476206354604543989555983465586762933878135785759956559890162369800745873164458715775075773055641088083333960882164062831031181909514765900222728943037873165428742532242106441885905810561853969221062957046404472758283066952920983035593220237704354484184660417865159684925804839911348658817173633517381707391262394537217501176988624144727649477811574823106150993500859236403835862650659430241834922909352165122943726306264762769694281460898954251589254038029999294858798402027559318626945625720386149573565173327775065031030827493227743092533028363047898841820019179990863958076638035412880539978546709485390763927259957970037392686792518465996119922280024736886015955302329424488477671979507209618938645761868006875816791879172738379011322829393626776957366415417305117039084731625775217654098448775518959435953782515962030761731810739557602825141309560723028559669820883441692774352241740580177448613885185773475165925006335890172779099824221661402672921344075680907826430905189545876496408958351681417231645000259261649627149399832002770583219744968086500206772650557473423123327727715366279304094761783502789847680914925995898222844845043336581572125870658537047410880765887894207691275380444717074247670789129911133596358725213594597092605970302723846939477947311503160061385363986230785082399764835508633475554819252868709705468918429695725780699511584954391307923444388483091922070297839262675022384427085628902693765723841120109643406513553850514100607966471655843442531193684983724944000441781130233523262490105707705443342381628315531365480386497780443456032987397101922165825248390399198921723310559522621317980077410870792159616553144207523130244957020180098130833475762287271325278453945479021897319597572836132708887137068969647536319551540841974789015708234395301773581752124525666621447931314249794312551021841008335110872578989573663744083106898785406591562770764200105139342525810725711088476877741648195400194502463149528195954298879704562547379874432812150469323481468389881421180210285110749701891870630822198449259411035313457535690634686689465572673643268009486022411171203382376570616808957655781577587360332941366554098124262518621042667182486138561301700186031242779386218170986554787968594180138349883068490847823510237657457668150703326090819518199243403157073961313839784993447315718723051529303697234581159531053323345565403987495724001646490280259869105003078371180908229714789587079230521718824247104364146260040825698821655449547956073713673310498932940531347034833840535199503491145903439463920970621001186539365941168276704912953368239578211351160341514880454776621283271363086672498911012268109265423587272766012976039776771930666449123610085556424349127607709526406027606026688718687423291624478615927908044659954390928938439738526872098919367163525688034763008702589536072221908732554493320293720863547331623734679960833557436861188995892110321357740102580816522089679139047834955431453299543287349375252957900329576799799294051564642639408791759042387731349541491222894893235267460610072914567207866328305633773740270067368184471609949758023123562754303848686820481504946364752478963061720119757782011668960648419624829807257494299470723798044122486014132593367739921648421427341262035591880780017411415078966626113090944639825475708811310258156913624861141508723594491153708388240306808311383210148667504197236078699924138860226255494359933721144043920661908807506212181922674575021351029526399022337729593275489370616509289490511747503208418885708432320076763597628612853882071266069104260285528736301240518526477125894859097398132300251687646167246013351698093290719411751358673264733625441750183410490100094267515308529408647743546704725219672814691619946232606609806107159888944656971849354107995797808176531543274813258012300877066144275024320634682162075333612329672345980578588895875323798128135788046001866285277669061242212037391239811668520436765763767062359682015505163062085879783519644268123514141397492798955777536345355870351737030771767891203242209375784212014732615876599747810349647604477515147178182078772756449699086969239082217861269384336521740985574962616336353120078466671033535489024123063880912627157523550361648516531240002507439944810337212120786337252040906998613594923143803415684854437562833124338043297497382395264374465498131492540960091448807924502680679364645416256553342611818508545226612296324143890770880085990394230875541272568666752948499546657899705940125734716052795690171792126844603203100826779990004805331119855606526893559096079201311670921425012043114975327801269902725453869306660313827928820864003046258668284109792833388113693282919271111000939047771843323215812711415245579131449968342682112373201633447549734973693167781496516640670730374343554950208452036237202217213882447192479337762039037078715679419498285526603001955615661955407301929128006596652625188503326945017384105262631840696978346413716548712989850437508047567396751140729118614142593113002520858931139678487094964768564313841550813796435777802135613186680140663427631425535413050052262087391288423474865455354947936320878512916723456558032244540429944911742641714621791766136828880285135154838268846549611172565569445605799596934373568936981886672763705351447594995845763191364074669809797782441139583844685921438513973600147137673660167811657113187824477015947481453903151165580573189157003309432685708413768377204853549070226685344151577599563166148090644639209671096571680373550103637445376218451291724016579683741487341400289183398067785825509274298951663501977843931947326651580747820535918267431185800489994716633978613144611254278611953396062082651346753570034635199326612312364773216253314758137192283400991055153598778954261101306307047015687337974954824180486842575131621066647695206685011622879323289012412055174558957169687456573170095560512402299851990452904259591868102032905253106755677380678098416803303643830576235829140812106669504875748955342941612571142504868655609708745738145082798664026160978622937449189319307815804670918165787765283675285073918533398925514075998218279800494983354825821401693945608863637483508380553500356204125699189288518071416789687908929467707975615042168169628692465921079338268547396004227417114774811209764204340368684055610819355257531857538809234822656180486386678413691642344197473642144290985312890660349366123704247623292668511979346086266617074022633958728619382788254204708190059527055268184986024240069378229693148140569893580852042289911523845193926250180491631743980757808544104124840714262262844730357596470549043119852289926620378041312269663019226709375086653755027161288411765133083983536384053383925075084575097404799811435293681741836071799332587525561861431431349489641341522621198173523834003822695533129313212251332158834243010473237254026467121629047104302867859311878453818664319527707403826020653909319657270294448205506859854771502224013274464951390497618521236762150275591833019448768130094771320854143371234592382441872442674961519617918947365286231234115995993955634015828109738196473584657703541450822865489942477936961696700286527358159339865022771332939398727255200730183872211185393112328995314284620226320852596690639929859224722496791516245770797070516824130029609337715784124459018156949830108676432358417595171679029195721386690362666753391771714542988992214469399634552970694428484727211781206474120975639491527556119152980949701065252612324020737191304640197347317030805158933193879938577995385469724001136491743264251976519868313351795156771555097618267104020935879959783822376367361769112994610665834757153819536925965681919809216884260285794459019805635820511283362548546559016888155443813121204415426409347495066171583961199487993636167444506330176644893762035454406797844894407392940253415409758313239022669655535344885944602736589169951667928775854477896547098441900411681399329602150322682548307914063629345265482165467000292054296053179099122656014134246285638139251001907604141346771247339570900816409799324566118556585724516823806347405243463695955944792746888944263375479748811289551847713663845453037339478686392520820392676283806522484131970719830065601642317289854415363204921421077776156745956985838943462413366334512191726757275568145105958652001539109804641858158077400343076426193331522838008798746478624109242427441203575676865547205417578990909850711074897624598872836049239277552063759653643687389644172943563750227904750386493634098329934538013198411588867769337475641083132751068820308628729852447779491047341951685337175586466335372972159390649510537210113781876121752996162438358768389568338009174282077023620952464453298742613626236465243590083359967740789976124820013754052357060194143763545587452293753485349259455815641079189919318546383061550327839869165483826907777288505843076098771528633954250979224224842537479596619177314352148207678119202046960052912635234004528208046013035513622868396343316099000504304135046397761997316104227515183639693624025594276025972290337090416758624978319231418421656283333922482538507767068370510172070367917339942076093593200413176827479808411479348698905927998002181636501940852110667376377683626730815303443597702265601728812442378639189751247772260058024301257111765385905537866557245731666597815277193024293598734422055518521263161244117356457673240772243094795084181242866344359668965504396671704637978523485138297139362086992383044404460810196682196068619123937603169807114726374632889835508112455137470164716000197881752948037406653259393733081772177194611709888966941321561337031168528325218017602993929071472971853540289634402439018780828420568747646539721757578579337043191791585740409354703278254486743358423583119262616992920859502615583909470438343976710982215395695900720273547859690062777956698747146656892829726323459493881995637260558945620316949749920898780124761158757410949881018062410525533892536324238368123131727917303146740472794736371926149566974476817762961776974345605935974920895825986524670793417664540576156922961819231113153221216841070570779728199253911023696639600779682200025827724870200647521174258403877929557270026012419766926947781153291738585747295557511016885362658354120368912754679769018676910363194568523528287319332081065885162143275434273099237699181912112021496343708768941500179102257047821074606936547334284989597504005126261449213769096132636637090730401795106046824948147098967433564118965775375325662989776533485091342056811777771939593640458041847880405034454470281576374373854736270496256459868764626597765672748081065332924665174554492573504242018281462469443682246657003867421045466550850434688606459959943156904301840728866736963270413739170924454188216696179195847197370110577213815303809918317935214547572664927948968998768324208329870396281575914569256723446643269988238676595104531006627449144438843773970485798040053358149604702063127636268869862220254588664022166157039208177422149551502646113729813050637357133326803475690926882809427962567334891598870961223777429045237408288693671627792082972899274884842158099253295806664118790127085282491498575395343918785161569393276520320225107841633616746578704184155086681409101374487753993707378255810861047792390212090910298794598383251568731737330179220195532495765019764641330357840470929744529837853030193701614993681258711459558603943269940256564600522237144037841744942736695463546071213433908882216646229022499618601514811857778289385255820699006416465051733662078872054610408163809162178013030593041714847643854812329169061799110310348959881177244473024227649827157982507233440436874956995516303236840408034775832809032365031779630089017357925827682433448523551179087066196493121869547791778671877320284830147697730610763829670801015382794422201755054812845835266157508273186630594761234140184086071469869160587140196443651960190379947892600911957228452269500590326748132157407490322324206819096487454944844312122090485351813903523891146609384203916771894944883779818081186407860045603445947905572087307891253208545735225887434492796110263958830338714741027602024872430861755558851364971464514379946793777836645337876725182439991990149675894925181675035307637634098850369705965030628141914043086279753411778489633304704196915438449534557161741374941724530246072604466018251258208097505452749106631278665870725055181236661551779532027785086828369497283151360293551060151908494350213024459066133190751647581345174363471008416543958593591349308889611816616465852659550438859898841543972082078412112608636008478929093933616596377966176750143139555206730719410456273834030822390805565801030216895901922842046880437785115362187825816016517152926612587035198935739620216467126698601346248174084345273924464299393763327404571665140089474745790478904471862708578633110035572369327303301691104695212613493649675439985648191855772981940511719090918832820595092621010777701396325275569523375663798849057646865142906804503376348982325802102824012463717195786811468364236437551212764527277232600095353420274322782084349876295236467975601398368800196093648057092056972990007267205490252638013718821579074808278639175147061493998266937011296549575932053540473214113280702198560725295947982566378245122867683566041594421167817843250839528509741479288200535014152267057755913280205279679831559949328121423412157868308918299341733147741047518465040172853072738419529811177691444692015550409473607535978730443151510723838024558999056055561575399143699418224754463527794227082154101965502537926850310719526236409725701178662577751770411605564969405538458708924388534959117061310014463055895123873317255237679195375682983556828410041152111971653592586161248115066246228534736031321742871190165597705377155878300365484010755362363825989753513482599640278775393943426592118198847317976926970627229069505440853541221304293625740433353127703980884108480378934896602441449720292554366944253118653608437813645663846882788859706990036759754220064798429911466513798198066312923578544945380508077410241416926901682825289746615245324918176067439871677493473071679904972762413778665894949824762727626077159252481171004133016272713699778824605091308327782595077602128779834689890881262658300201586463889498036338754751140300054707541276096939106753994419681982377824950914797133425499344545832996057330543312383066112759104646240902841789732404570362778018427422893847499005138530770220879071675926377892083708934715237379045337242791492908619878389314976173521190785655885019129838652471188977624868936789337080601883441673881295759882333798620614112125754902934276481518002308659699064295353187152059116360050544509335324574379936131293079210068806600333584160052618032295648884247128177976581496903622406599149375167607515424481775069232327440752694358182803285484833624913998616690254661501013924396870172165571431115697702360612684249324493679611801007901410198515191156297505451116428753749068161033072640299257346318305542575158067553736779825133611960153531347282198992517853159180129944349495773096395333969794340441235210412009840249676219030857314309750426027521043114497167187825948171839012311158430088386717469838070091843889027093227335878660382825309487651001413765892020004095811818817735578282291478375069741799551483554480932316153710808659437578118567261663814829816473569106126418799181960388623037051790881593524838426963662867211276359867554445953520158336551624588287381367961917724651242958259214892510217358918613756743968407962072296623571991070122495524303848569531727408966542213121504978830198535833956820196760055367613266383362135842600311285369390249866916617046974560848013615759397188923809036790850000543541179001725510937444227260158104857560451148151935318014187857273092275770822587952825961198857233944333090551770593094861513670702306296485483385068257302469316083006145679161746654301820096508007592731803999720146005507901371896241394785936854454100341107710172908289940277953438209229343509006740100749259032873372664027933236177674047344933734348711342399697822845034359395160896957171612888332401160952587848495633048779116506483969990480531524675950786597688821896027835272874229326650570430223578835776517913886753100305851545719087782289122558380809846666862067120870409658602893572978303628867948147998700308719833211089498185006318318260889300112554902671075911848684864459015642290434695865753708069140863792484842092157306962253093939587477362944200944466930132594405316796692464987066012675733091582249782567954760784298550484651827004909932232942311792539321206602769651668633842519115245139336613621050070134090048141728517749562748330629596341307105154680320834075396303516408877229052234003368732273598688801689887275583993415015433750418903894299775969877390887251677039581754827863614452525660566226051191208191326810203245819264839658430255620579705273255117727861136002461044675191000492292230385306965031954344957438817627163265607673865020565002392446268619759839813257646216213449560492828321632674400874332099952068679060744831825655782578118862933843644826944449058988052890489580880703039883354040610388404397447728840642786937318834056858592727656366676768189157289930265363577291339610627835540996382034779382786717573904288088741752956229473468064879362121413747028776401321157627968197293683023982424134137576014962188315118195349491814400407407095661848168516703867910594420416867894933290149494300013580738330400624723936234469752400111877572067281561496442027543005226880574317378603800500843708668071232101215276873845744190946004332463391398755578863407831386802275540381723188409654163742085768081936270084646418757142220006466541249703374552162519647878381038953673094519295643861678969618632877413424425483782462990026311662398191411734415270149392806290995316901934553551968317764383306211872858273965975702444134834032435829720137643173430311704006102065811813143220974170325781071494675731856437367376438509111338629636949351163439288619610082210815230490869532689095352922474625343347928326444788145521099350787832756835726778072290648735808062568055044709118082442590138328021900757504780168962870627415494391483681486911174937729324687332701385328820303565728509841465374598868754596456097892169286476844687639576604215876246513141643032531356295890626619085153303368181320732325645187041660494972363281543457284046646955720537365496452753796573356582227379957675523054323843181390596754595739045402893282814368886671144390335036874322888042582879638154274761509071865264292410350415333839745896473824750023157418429735306070366356434987042289664606546252182295253039778022075702295984609670553814649989266755627874306335531507628865813840761088694875124834757702527797846232235593214557711568881678959644431169128776583449041375256637864062878627081922906397214633595577983349349436362891686155874253709992787315531239309993960062827566633222820071894133729365323625907433542764955662110960079016456931822503525781381577759065432160396018733922152225184728658709537571797301001974602151802108434144154811762378608729687536112749542446994637703182581345299906863854131214177644762372782509123932060177097539173885247972995378018133634067658942901054385541752700108991479911980844612027325816834235216924109901357661264298047492302756770277818062408406384203471916400050632162767428283767684387970811045990631492800237853972469525840894202860971508945846469877501124290537237589910078217533148284138944696161812493377605251219038323594113610861154514903095424597935287183460260108626343699079759686680976978046478870427782615496701034344381414706829366026973725898217859651392525605878575055241022689411380118373162328827380759149785034294959442168771051528953071830075439972166543863902603724043181879222530395993622276377737267812170090657934108999288209035144370036885968294609912568573473320349404200229071807852566194866812056197592978637809300287330164717571615213799432269646222142789455734697728687985549847240336706082428068722726441889590535768593995519694313674381316886286685244160656992648216036369655056193097323188825663613159253957961630830190313134365298848410584164228426667895925764183780527748252531319641714279604090128770971387545006825958313104371865561395944760522471909262277858742591855980573084978820291238750576260213967044867194584734403156767952561812604410201286368001954137276154457904113530491611781529393157292385506378168063607294907411645757768166216035398391562665625041901038525642990880468533787662639423961208505239147559312613952574548153137547078234884648898801093448529545337457568136982860057764397229389544236674600291734940230749999306940448636591443552413955577584474645513308745349550272737706647082182568778878327481191678575958349770740580080823888054031746719768145229846537817036035971029503424026495312280336606155347614918245693400641143253182848448382203958140585187037576805287089454308705706677953010343384751087418299641144094651180139173971111603206510365143423549384422975450863946809843268615266017668837129104503901203469711961391197808071691920053537406512380526508989428759545117805626619869192189331019837147706145740214560737119257230843541491876511857521912070301567684469914256212835477826102411648230610109124870333548127005593824175676753640090745791959417131597072952651447749498838728935518694579127252369503197990060782900735999895523701220261074388121582940493988287186339391427267150703622794977273281288358327567191333340472422572281566432869330543676451635657992983634883196496423941323597825421608113133357985264217412569461657540712840246728567154341617424495789236413483544511782599328279197029327035245942001562985662907074737782661352024231058703656967057545004078604134071076961660718126470494300007594288715681712637265406054831984004402839832106748995475638918713841446684814261050870799997818675454880787599142955843809597868032097940588921159759022275976471389222702994768627520705638146875724386667931683840682302828338251575858527622352864578010647112571251705198019314919342657554046407584822171541392962275668689842263464271118066768555556920667356190797030925022028623790666748135553314749128848247766165431198762844653722486663067462863512989666254846219350607500627171103281235461333838850313764089213200321682755956053182441770631289692958277154070670550688047860402977622632300553650951573611631371693910269732454609666685870444037009038117678776495162789044432125563958596956948617463704597635918315704985018600949658535097935806346872332191251500212572678514767147213138964498853498614822617701533752064721348296432513328431151793751493347680455339518808527704211263856192480668817655335386232434054148089923188867644917222704363052512602603569327711349832989922643301733219403147026491167982069357148342066380511789243844705992005935512070386439342732172570185272741012723441780551333523396665404193810633933955665489790151998625005969433418131398908714839006545387968487559259728182913163100721091367552004510624351569147028104493091525280610870824459747961647220587220466912693969329445941079075758641088329137956497631410065449591609282897540802268321474726943390218866235362919890951709655605371879908917678733967591193778455376192514014866200467420491010900538537413775063155102211536216947368191843425896626101214524114292705662090381627661857357851866436714846241666148273870410387957888349321086900686790505957227581984598941347251120606853534619458805627824976069346735912877112032422448595966300312081006397007992128951612904595917324652237428235319134699270374755380183466342704570978474536350860936307048094033389909826050309729068181206929271800721544040631091791743667831486748849070415849780494065048338176823426231895447771949696889268234979269448836859413892332660261554532213750206461351803578174228611669924979449529815663054706498168126478571751061693825115545779575441266905680787479321748465627121372713881058845471731923075435668910463340456477701866864932496763727700530655087851178436388365246395302410475400988994984549883586182849489992823251006522154827610944126719393071214453124615147272452590371014538927995426756000306629920499024648924931768168793703816224153186683971595258966947365389535933689208144414131642086925032105177901988315508198384941666824588869724491951896938997665577565236149477026152012066357700977298085602209888169305937002709597176469270269810363205304731665338151893985395282998058975239921389725697603537681497162585074208689235096215367960400747144094611804375537715784214395135316035790861730930163797909176153055998011736054767377465493929402174951688355693113656801438927194257374867644474400577384176094623717737204660407349469520048046969650078304913612442138996254544462458354163403115100794054287302913856715221040217942622210403600233113788091271971871934491548978962189485704201436123563027222690719476447333038795982189991065828378448403218144749127888039458473981503898018141513772101705136929784840791328014394532819114620274550072245052817743989880412854719532508120123268457383410727215228976129014410274699115978041792643182483679339059835042347842636829435919987949392019826324908021170444530806857719424920018923913105885222656824137121495955643980754089773744409912453975251027117970204282805161995049104852805935534815678161415285778522136558776796242050030790181752464679762327842281343569334581669160791237257150439115362038606645370591444047511929799113383240626248189663853693498250893065611048539523241043752306943865876099953332153259398813312260758879379240573992471512446810937584978487657880193471702528531362140351341290712031461735885344089377762183737396086502107981484495494840721248039544736575311846573840479057039949000432351534546930731596937712254383574116456223878427551882844081370014068046072970602139377212908562458640727640541949773245547668004806397964994525035914860425741477433870769820869314688948022617892037831008352585874062524982835269919703323875775340412130480305155468898750292217221532032330002039670927838493989973230733536558555012028941636447098588993575102356757154033530101894137041768822813472166141491733296811330204549580555521065663988198435752648916442821166179285829776229053265167633761722425678221651312119340644580775292151434702772613575422430853256120406757076708572769012426392924493019898761036888732015995286720221833490920745763006026875636550901238270148881288269415047088108228242936940483013744992868028017103388684357888383552685087769334135731787094935766670405656490860814685450109507313029846547923283138728109037102289759060417201966097647132075906871740280119200905787848735443697032655622632501643569863327882929581116406482311889009079455438822058416659715675349456080607119181571211789534879819738956714530205281890829383108041766629823973237079155335471558088807144412288972000028173822136281466683224351093352813726800590585387992141830765529400126610300425675932174047974269801074230039398081784770819410066119959894437851681871931404698697379236010601478527516753880986193557534453256366280198589839692229054319277944396120686426123874234288743253615884669082053951502694292769785886629420127983755362356949045914230951604475776639363029568771459356241758563837976158281398087246373642750801633117655183271850243879460056262079212495992749695193427555624176270870871972084051498912289509136366736096308347416141747206198517071512573281925828498116823295451385721096705040591773727654299915525761731006147152788435653977122837744393300039648973725222540621241125523257523642924906721591231218100321523018128475797379045256329127012951736736015829641243732708974753168570822689759422604382829428789900158635786586730201637979322192608532927001322272216619003406449826367578811474629577580600004049039269277241961776386934881808507577033229866771428925830486006542374766606190398050502493941690576676776669081407440760819408407842182770663662821920476247820829544455735502584145765377607723499914481723821998191865112963812092511460958649100755619009155086546272750891551788683998651509179401752227622861859154055922760965193239997876793094661810217484686231337283510261249034150102512739970194896546995612515802487560641388513656200257762262933215158800541429371605246739855647845309638704165932016552004505464491262717687453691008499406009953180114669038327693486294909057997936824271055474960940214017782143828020201570617260991498906461373141394986961953418341511750582220279304118416120124622680299640463414644700471028944140959327964273343590327094719537348498925557948396805626989200355609189959203435419704461598147088711689640572079511263864451194878571036533778844050671055385848560192418548925625547961525496062774441518344944499571865057758407521692811808653708748417033924118418155215468541150306397605443992776758144067019517134356826850114670894722037574228785797638312558189157664864343800699143236076139892346139825947168486345556668405759520761936396042466767194147421950857629996192561470055344931904046506318622350012975430416334432270510841541823322647852217381747942692641863051517887382483333486121965336336778718723914360050634889996505943779417597685887126566750368820062256268548884994757114395245000212486958581219387201403376977904332190195498825440635845588382161234284670218297264804611160400197493645266596315312338536959017965827676606761070308618552813294651248113672219033805791496008648374702884827022754510139670782876775911983187938294570963433043656491785078179196358164564092586431333363009454210086149486533085759932388701514290836711813374891160340456719778541910439838627388038938750424219942135841130528618478514071042685145646379854925649554826422070045717934148689531321788636352370209985174039011790692905917248451024071181240947879412120767540325202374435730129821228806760127156857797004678369524025766018598283989303102524473367677002585598713231356117763037158748895524675603310607954394444169063263675973074253028160793423664454000306416345077497643111778960228654884488264913841778040147675586803875483042911775738691869251880367926218386210541099143717539813459826820232723700424601241120773737852107845933222921422314083782117308773821523453277279411090410880839595829887284764463580872525813893588847094704622937247316956433417285465139587860406861478500800369437208023469364108198762334116853076430916671884670973037556426626772480254742970203348438682716894913188226248433770905595344443975810294612215825416639827071014554735241022747959222450057409721952470768791513676613455980944653221152087288025673618085463199636734251376178285794751086808937844818674736690361808818575893879870512314521278034330633775889789181185690138061337460559365689636812225326724848363106372341721521616175535803428463110788699249242108255046056367187145307388567636297039390840510231548192673245499381941301107492985305550369359299380327240294461636547839065654972407428757126107312555996625537565623250605155419169290726207192126537196825731064250446563608629421592985063110665592684184264175257628868181846350862172897733437153837560988895944596691642115340139431781104914389470227967947961249986958535354476286786654934125442980402042294354861454534134950413337252748213395196871288942066076879674402054372543056913641933650273783479869101855470624917096272821824015055862718328643742918976070542398194020013492013791419567249625970618036235810643245088016874211011068622234070911152625884084239815607743438617712841111104489428083014402361393061061239679028208375673143558900171695664189267237365025268823008417611937272104703859448650737733944982400684523253430040022128947654214906949624783051884423929700722246996437597011750777130383637453638892794244867268212935339029366042431773308051618400994663115795556901918157668751004634025449085959163569132721030145598752986045366112524456592880336129007732964545068298792296793571930844998052737486979531926072917981306614386255225756707842296676766869595738895474887751221990329807844137103265992693124675991409480231847015020104966616136741487188206476433470438830390187037796222072913844860332760071068931637553050132175365242585079906324501591838250330905330449718457967357487692092059965274178324140810971714314474021025138846004887899514415466319422370278356934540082657720976997885351021406933205360526008315558516820709372778896721988655630879729164710980445203900885663969905084903110299445577983406442652183837347869404516206321895905315851477798066410455294327946013214148193100601614469074749200590438768853029464547831096666098866776004996297813316319681224755883476758595275825627507908973856349909682541901960121261575928533381993280947945243502589205599474423932083094273737073907665151870449093497171971276034177012733461776513781111495622112574162189008570534049701705593816753998985721515424144129371988353176920503612923315191766482490106414318282347911052913574070478424097221214002292705137314496645891021786945557410736215263295994478799357406016846338667452217505475118191115545431487753296757870456572644747355002604708799369853138050699610209476558286210965271808627152109025166597716936023992785528826225366498907587449185345149908149212527589846055398818060657848660392500829868770195186501527913960374726101536475233419048904517898950834217939176554977397205463117444012687637805279663048868969974180881557274029713803354037308199718170187335888374708552865422109616933761027828657684547682417900863385026414828114580403041719696751592888981404579537505363882896899442450595445338707282982111517826252855859557491635158192929766437172536863409445541116509688750629325532683997194031254718775748740253465285237748557251995970130083900579872839304072357100667261468506022720137003679828039149222477263826428852909984650323631808296785781805834734645256798278292983707787971102010417596507051399868794316437945196633650329486530950253367922602526943476507513855886782710526825034216302700849861255744632352770024694594103302152784097610222756321210111602083236970516380788582751379913048984278599425891875497277745516794469572100669489108133490353434224520335529302298549191492236204329824620863844937326533514608946316069619982193262820563653414390141278073212559250496030403166370353288206120990994147871160420181622763174418749063810107163437094481759498531995507213638961747147598214424479358501401448687686720509078551226473774100136641800537888870540640824307544905109025365320334122324871932886699047580535686749464366305345695082346195342342905086428233094942927620317849771916856008085454309223973711154522460697012968821172692098476281957841667683430553401861474634249671605786022618057717981498954233358576898157638333472141198332459295237627155224240648685873488997560032975459488540240246657566001554249447473050029200493625858772853113188798868957909270177472716196372326207947451198537191107797814589572442500742481789288453468139431373707080786531313976663546740490957303716332082021534443747581337517840313226842001631503901339386797953767702968293855063552575274891944379941162702157784086252528384685707611144074849184721723597375416982897723689907250790649820886374837889743961111364392306462889018020327676194213746732654943889965403815837566754814200499237478993460903084589763602801426955625511129963386453760278776152454863853058806257285210004371323534908867232648175384455334581289731254999132376821411555670376344748310271049663253491287595463123942557740725077462748409094780871118147840946243253954970039068969848180614391676764517284014248108179954618361612714714201222882304173711457083671699808092592929369036672453633595402387393861033369870282473631643549893118543093208682908700964566307149831347305853388014645255656828083630302968472306370087577762271690808298567943226908251034453486213728430754316413349555788217397570912310522943178730648871702987359690490942875729738226640830231100957157719381724915512339628406824841638303306260854074566317503347565141476014827404505196510887842183843759570955924350997414688485226877230852508808911533947732716719730198555543595548948537412097122861025368027141178359570561343235458291542792473420914666417359538676563287557904197783955174060841897050355659853580933957910870593307016346095357121070460672733599519055998159102771619507116791942693524253089310222776501052193220653703646655917225463512436601403743647695261694005003702666261833507757173086031790671989351578828065196255494519509961676638209774640137714509693327764951645942067235371116864226936177723300257488295224208934799440115039890220826160132968017208912214771702103950984328661999121159804805674663401625954350956509335337601234228299118261383190107656923313017303487054930297703900065524874118616937069512767387005102794577532785735420915297933307211264874745757021262831993841597698216201243442279066758553206311410060876054032802567581223329127341754736364720348419892658780584540406315856933427049952467266866452887747328604184655501124673197379870040288966792529874780234952850832749548764073826042214058213901100595852936065659430470356804342245315402095097525889584938034448650635114822710351132364506095164765695162621624816518405858897653827167102314747267254618435087167695582906536304010791181308137652103286970589170425401158214779332351016596631421608928424424908985784603613327135195419146004249452162223695143654365747849419139122914138189660051422813283331888298227617898342783741955034985339651971982277090028702707821323157739008593758876261739811622422441431044789768733221995547788894378220099619044169309567857224407027015773676683806409619457944530327182436261971510613808506373900449275868607402731228682154789490552446895976158276707460646414153217788647799903328053318801372556637428660854091897120102098107733454718044515797157233042468045420112110617866509830670436099947120370859974722323240313811921256091869541389288523393280589577661276069408254298131267764625290621057389544148041963746743807282263880309528155490968235927218935682593681940857103625908502406682935479297560457007885403388594010988261727292363191226364853760849709098973431307052414770813350339844340841988802723464126619224850141180135442636827315069513893167307840948131769749439950925202658300018566323920598670647974982521593903339364058373746942901865225293421099167818879451861064842591931045752570674118761747646998713540756841489033339592677038878112515762035091736672412004213199518944950892632482367213220556589327505680873316488139037597828725917198698074237307968168959089539305113111957999547389314086526827208985293790099888717535971047656049762659252009727135003131113964772073425585530375572261095000284564847924822141884421144194617162274699783657614603326466406661847836536126851580277832470357645441275921735480281687803497862297032068066704293956083193388244861439978039403632686287602102241981617993054726510930591211071698607689319289606466219696504647572359492320857717998785715144290880927002576523150214505948073485503639857951120969103372017153979151137051079738244668676063161583173676200813340063922202646840670290049983431569463942267555441696104310646115776707867440484977782085737968531548187696244613202063758891597980241853220486866378623281652928003714526554892200423866739762052676287049270711516313123570957019992725831118721307184451472742618865047792943174474405384780135440662125326750959255112696960319403356337819598651672933156426939202129703393495317779113112601465904693869180720848713467537770594885308402546687262948695847144162095310582337601364007924343049467211048463812106529301386857106047635477640079410391340159605784438043422532621350178397614040951564414505519136959611639278397788071551064778565217846859554422272863234981610342763338512167984920789532114406970597591843236932251647847838674308852451757167270793279829033002864683554911599706875455914805475680675183544075070826815007049412763654529964605312568049367647272260412727381275708575183018894672872416865639163891948350146586319698973679992171536705714265015951140673516873548334302026862599260209350736029315657699228466465162320919740686755648264550112371401906352699638304424925482647050774437038151001982192960093695427501193191940848866749908284423435997984750104155570723742286432599168733372981554496460911389869478244486279030669334122866403192570937508189524749728691759652536817341464232420978113178644049295321906302910036290552607174078349784523933343837576407327860769791816569567286787047173456155324739456746500189360657143712476699688724510800475334851479810759952930111797752473804716382750099024569058032399726943091779606025186453908418030555421041389096762550020950843811936738618953854725319787130570050243541202564552504137571583289324116067159671639115249382008955192601251749050855967928656343561451827120563743288066250687205056570923538714558215377668951611391957961856411657512690179193299989870626403567902565560244782745677808223702892410313090662389625628782043317888592537591247211119370611540160020473088712939632861499638049722105759973445111886034761034386156286417834996313823702949210571212581303160826390523594445396536032697393842154310413194928646041654003659237213645623711297082118125893409978791317197796408686034175058185626318479569152066502704013106443368276523706586090490792267792369813790215113136634050464318481058095347120581168448898086968925956991549713639124044667525495205671868394973548797885647532847822560625170653793902057830954199726067019393091028399663741055496666052341704368249670195802130058074025923325292265669015455862408830808230214623261932974397211148693647170975501121920741481070083060194143485400883926269260588647985023891487954805045048242958056965382633805951027540029261190004609980881576997089872469487197430710268426518021870531073526607931455691098381437488226046625687887548942393704220671575405384717280929683475103788909341636201773553267783971969523218957287229376473745182398016774757461978162906335967001267917243835550367819105905202479611134230818308889630212848577946446871571912662541425025084647970390982146002897152656466005021895639884873745246011123161422653693766702639325388104161209507720551447669596500707051601235966958309394295268199499455294854521925844176627775900096305215651456463777995753900916443602454057021174087223798121219996856114005625143320767007725271804586490629660557950594999014988103564562993005763975125688621271152988940902189348046384106140927549050444365116527707558977576646172768686353507743164273281530001311660407897979325536446910568600632588506931137408628696166448324371124819070727846088897319253423586144388002737949888717136926993533470954335570223722929558955683665163928659691916666641513917785874339031259934956813331104887965830825156302973863295773714069214000384060146187307150101965456244139653727599743324993108036374015215927550505507181582712518690474314839637162014557551894370420849672740273627570507065347920805110342106295397492421750322933799165672666450794805008455377098251580143046455980232735457178341267171598117527253317879091315830433687886747613322792867187239112756385318286441214554228351165693594302917614901572453030904934925890517402363529034914652429482911460011001067217094556481202487770836283934526925301558276816863233612966291818313890112005543748904847721995953149341331734124194795610481491885826600099955101031583904946457504359495911514668736670442356565855471941755742440535673150071640084937227704847490239539849510436891469889863982381074370583775252111503822257204136295221067357378961208464565756430073328939158844054670659556448064292866785862472968077927296277654467017747463007854349949053301947956857760570072625280505928820484438389087580382094615999367374779307147425726019815528004967708956815678436981717274908938282919524947540180496182866207667817425368763415890453045526837047249195955677545910641985041516906551709331124706670582966725812640291616901442428927862311849486475080128197114609699424865105881003895603557571833966849010073872247913962714216338878019813724987739068620052835228880926307242456893778717211994654087815956337798974781411425162771271341988863613640699249187735382289123939206431561322041874444067414256660538769193898575476639493014365588065355929890395079613542207530944525219591300335797007846746304090711080885284031774698669014227742745618898372127331095427592211891392108072810338936917459203837282982494653430987514018706106254470125657958728652998172113802562592042385419626411115168619277995794946810472743273178060642499514478413542894476166080545655524243011340754750145521788711360006385872462677222938991461007576864433528099137364779302117535036644022787808034938457283936926339448240523746543380018534013809392052506416693240801874965746137877501370947967773109342196726979403973087051557873882120372382906619127820188883509994188312128713140745090652536670692642222582629704218927882997163614731705724747705842083867195512556055357528101617762121728726619374940540639560777245366169354146398347004217572511054701072052898447389698884291008146925409183873528027163679679500947002788389766841440726962972810176082652409224173021468671411230355710368162771074124132900199189832991781453339281022135681247406888413532755527301845950546881652789358552125334890633170554833111720044014495498982844945350953498765615436552069468492416425038913634691869491936887454167756280882659634717040921196433285782356057614260919798816312004968040507976528983216800891921342386246955648041446015210237310247413957598158607103047523415326909552219667366694440599331726729940658075322483107857789736485069188332156469715252032739314573867723847087594100008293115869788418208898764062612090696834306986442962364778527265404306349744038099323751359617708382527288762911552190726203158612442737494867409001253251415651631076124877464197573991279712569407750539315243957421378364089963380447643447658575999040903367500983035673742620675734718206259735137730127714419663424471038751576121889701455920425888228991106338796161684233277920725915851714392919030963445611550906486318583285063888598867570636726052782464214483485157646438406722668260066458676594590342360757428713549393444267016982882980991546876183120239737468220861417111351365426870645436534366202544510357074740016438464402989790849664007049310777328753787750465126436088841490535827790444118957708880710324840841980647053665290467546089610688174179378840711914745552403961533501954560421525742666505815423133851626055811646056715921480011427141249494041290657727603281153945152864882921651331192511985751582550522758072080187447181361608103198036091953155703188640672235253842861845167231412281592189650922264791284913500900932686774513656223167899976504807199140422824824384029567503475132738756217593329058988625346584254174757460249755295663691853095190166970142012003820748752308390193886696720161047315361904586514172811638846422366741726902691895270153443745277428207904120726371368134247116463883832033844274400629430419161565240348845832905838489863013259045970029697691414986039899884446825234540672707083148226377692889570035701286719401932500486628582840775108366792866984844678340516291010598637538170731916370897082858297956738851413902690688777293593030000549984689256327407781816723481042248415989678708527895122333200176720987023929495894203473327715879594905444165914211175528438957010484453447624061859049112065914843693336928232949508393284618430699240628349904202036449177885149102427101221786133135327835113859510870019459720171673431842035461827554386574902339355886441106854421334427693082410992276486930927930922099282793747917598682881867555114212179676553919035420468853931984727256468765701786843414914490907592125967290745352690554866757075430384566680185154544440127006560706111070631887416073947921671560814070885581191990802537574364126717827025768381526434267198883745901284491773175295589344179459023289959281878862340240521637795286164234481105576598449789650910044311843323720201271224468939170838381769344427813910564387327277475538482585949806330879305300723092182654954568105338777700561269903210823628638343534734199030107388418975008260268804284860576053022184323686431628982118715755010353715854764541723492379283881381512662093144160688043118949509691229353461895424017723043022973209402162422910955341477560369400726548688028953850219254340002292872062667178471019557553774044774343482053552453593612167561157846010951477388587414976303642969517061426396902125145050342651211371738695869510295218514967658055822311525308386233768568617388464018930650184127806520414553976020233889437545252530578898168267273828626316099051548422872710198494178145115970742960590839826658084444819456807516502753485125469578081711498117307595962986289613341381518654556162584014881441027777813766540370113583650249757224043188675479440031812473764509084028424268698267411159447057273821169337783123703651207414049325977435355967372649496858133827812147612632211200752684117387877217046458759630562610055930012594302755275913080010006429124500240347882713362785400155182023488451658463498394057342677933960856025793700163282280536470109718946908998659810332033273247980945508821407046601390956562668079052501323191752249300372185442280097945686514643876591329132960235047669502029266987046588146296073979618838392082050532050278495531913789046649224124125098794751200044817642010305515610966755961993029397285441723073452452947580471145234748532255520540606077002503973012530923090784500732027427251398256391472586310644445868427284685796134124796594932994891755088211990095442129219184542526663155550737556878992395307716939636672954358782995574795459904374561819086727534474467681476874863788608709201445908287772813859945691031356025698237942774664066628238397456710591110351405152505312599528499823049932826293323544759003562562098238591774865268478635150541027524126050522254197482415563132273055141669571682489047525713734260072548796904831011800718077052712944043429696146933865350364055679464751446332083240151304210503552094130349456280341998688209972655548417549505779295762906598623106286051601337401232886442876838719239164804340015028002597347072103130858071439210131070856341349705456024138630502727625141850453813475306899492913535781370732170185036285939051633339284478856044883829127288830989890411212330146171967471513275721001478708415604373808219683496781292370672518162912526201667849105472479072317099201632653158243138968167167523677075262635582933871790031891982102691397659526934199717896292694249009287626139150287556819553242190222849208475877339066050071840591925863649845455602990138117404959024418375436609603255505044166806485028955005292682027356209274732710545061757593863084458696893872692790127114738361510726587280994683798665526034011437728412471431411858279694721434352773574140174920846192588520590300966093956777659822200384661997553350344057972905856095869728900812856774565667370295961671019504109363070445217850740814323121786901735273246607348738353422708453626418788439992403868100169011946373039320955350910612588374240598648351735114435025201175071198861740435977368617904330984111052745570751547201697321592199169624752457696025653190260925807515245090452259460653124379821190365506010435935039248274184447854159459752704783073309485687195775931494107621433271067795900247774023950089306758436402199606210088256512327839716199693151251583949048888524351401080253151850692806534210887122646872843678671667708582302273609008453489232633038359325674298160498517600637191027158745268736381657706159874099256503771561632529240447203210787918395378494304476972411797852902877355513104303187209534340975201921524248858685760465815024484385454522995588617409744019359827677204222626707051854315729638433385713230867614658545899753029924386276622416749531663540656083943126100362605880017076557700184985709920140750772204363337068842456038356879342761467430640025340211375583668019544289717857126768052536643367710330346094607718508961023410665067237703621529200476414873362983863135406415948040428986262236203919779098860454144274157051804092621747139278368370500430335143215323198189753156394452781010926917228084584244509286487308320396298871579174307744552973302618169814589845191529619000620558548213718848950961092482748153450814369562313631715834543034158060402707386657401647572605276879205117449309747361090462497855446044747076120449691740126296892266304116924885756453230284261487956910959653135362833086354281984631403699254556710299397596678670849823954375201738862793286388138609958853299679114224917313626146104759610215558231627370515614465801207077121091882556121998735290737644971370055331657775162589490389082125369589914639690558600489873795925069290226673073165193413598315711072543965650441379510352364842896424794768973537875685403459255931237459690713351610586953627679741381528629686426066917270820634869895582808827720560621333408245558876034016010182112084990329598361626494861937507371463147555566519749458555486140369633071006439281717359974906627206542016432596389058252719055350874851623587319882431936919610947880955809233695524380834805491589088753630485119439927275881172296199226365506072435069283966149224463338912858173653595658296141693206501126785225277854513521039553678114385969043492065297879385184319523319750480181008221217580919034194165449707715325705965496565039526364526891977804468332597231654403793859854266272493465210671991997198763991031689923918338744261675290931144991264164557858110205617697343280118493735470520653898271734546455555672142964246969337868977764098534649144771129404876312530010598028779109008705107944530925371920766314026707585521165388862658734599049441927001388229519105540956330923273506677013183467501088437732216618427663645133948178448113829465630835336348187347065805585754355262062671938159898018978099422020464208472866148777287203427080956701020724461194290534466567403422161539421099365276314106160745456668997557379808488500832074207418781830175612250765325289550606521477683842546186860192188808537447836656318613075933612646995299227378965677379683963891171186044650890954316343204710262784362696756544689134050594495825544111632133484328892408833120812324298155848713963117944433556957801209427875978500867057990766179675419398978196097014125844026999707345910803929765944512901093107400550567915513156222225728550321927342018301576665647275490912595180882491897238159233853674229694004700209048168939551211708601753680003570315193320371414452304016906203274652036943154221476389312574164309721657377238659519884528546960844790858741821285566826123320365743170311309266648794665584463063259085133853190125007880099509262066497575413284576243810205448843652279727731433167639861478158162908252221868167603988244656205786940338735243918874568410168549193583852435346509945310275079935518720444347454075517243774866692579315778531138081392254146514668638771461679127908703723446153416785207056683937865621333456958557164944676963664344014984667146053584931596896109585500657529812439228881364174413360808291566689876109344978873863645222048349265112299273243231756493854288965320714283892930349686351553895294737417056302475472881908800948231801457103449776353013400884775521282753622076410645343163305837695736202069583955824622775611869383395199930720284346648740212784006977160636267370225208337674826305802965356811718549222647193632770193189224529089191572740874899962074971070780711600717354589864153101139219948565089470496300774695545874687867767460999301959718590148695734417592072580234816242089307754583649838309251301907893708565708237425301505271567265398192878312223936815045482295817497249277215550167023191256693399076738596163160090228311969776635659461628461419829814286999328673543627191073310456555665001699532769848698621169577680664144738215778185032867602904848381799585523384680928830210085025918941009862981671861826716953113933752900639395565247520912819107651394820256519004014346533302443035714605148857349352530694869196287278271667075029399064529384712923783960125633784817724834981624636817040638817986910516465786730193265871475329984130211601354504565028573739205091416126254956665913332609608697321204197892818930970583787924921647452059455252723985355671647997528177690352581526704152103001318519970115989694152288075337337262684425596646015812968247885826819357724102188355531161640378810689023741659811993985965392637096295156373606835730373444669743389536191488340015977918082774305640628876120173470899386038780063350615817613773003899889979098505761021370803057932717174346603633845045513996321789093260870557127200774662818196629734760855714507690446453692621011384884178860017131295468446990828526147645347776117795088975530842937904484784391237410750792546090705025919503101907597594388710450907693731951004785097553134943788960167374023435528938601563970812616445707658939657896741863540379414267648077513050191915594951111325263677068308446019829799132004931287659675945282031810914406629528992673081307223276232760151263427912518520424596297709631117272151047322865836461393867297764039759815634741060821864740233588397774881924625074234106167737950012474413373575589101746107260335582174477060693945819474977675173963782336605225504734597054989913952427381553604368634354200627681667944185885003691942599972182207031692626178852871260757890895280212441252230009544461539596211688401107052058661968043994150319061735986169213347749239322923321870777930093302857919899925473157160340242751268707502850364094649214137156506752070475589923232091541580032512180561182514181511021531513726183794036942473710695863820358583184030149685484236063053574514383090810675594710770744655343738782964502739698860650564198077787068221869557409639649450426394545176420997814241563422009418736657360110280518300662997966857327062740050072732665545925874483317028557197576403158466896807503762478594872200315036361971764900019929746745951200219162249384582392725020548947332767355844527814481308256747587483339358120539648715782846352758706814817284984320124103026204579821430852661883451365201269393395097424399758219244428607573367655324644170162382686497443760612557661461014273691663055840460790549866790223896085836961118800392374243620683918654352210068028859727816198729697782773276528551476045885337365573071586774379563252086562064183083293578830597881998286404137947041007669960223857844654433387663252215814077578793365520227264188038283035706550196815873848682107629071950664581406201128892905429949546377232611383259802901944325868781141801079441777211370779955299164020694729987015329511983972080739676519408516702525358819647874539310107873402759788641256746988623682601700469741601361198639287996189303242463292197349141073668404238293084202219124010651237801471098188880234542512155218710584072796283156533719402049629249363281894166212848770582766568894656182382077432429950578738056266612589113163245928405056182899565113189283556148437972857124542415915251370152700289935953407125020842557403552974848511805602873492962667467793107334390754383083548966899300253027281221354980028673443833742391653879228931039064417507192015281167425568848264104728040989690504503730677542059641402907340847760845987722798863677881541488765212810800714122641685404472967490230868333688017019710111968251166305829551176333523236838428289547553872885480880691058694182984450653951778381371930744388324801967952516603874291908653574802863763663236902027598320571247157900734530892931539174180884055907685527751079037562256559470632235179712175040034999798775923288476088268688194847742998323192069149794778381876499191801093977341299547936207134879834211731867754390597592827417982152207682467290294726306906884922836400413105082027112660122880888514003184431052682996648650679925845954056251938513843166161590228157620462334930978495234113645252102379617689322626116630631304629122117590233198302955031677627582158022799970776901670515317151685711724577917598200337417377437065163527131170976353413432927186776367866032807988987191403920734120831571788773966757514893451500876081346778119011797291668935480059381716078215242918524790940403905716673604554231613008989309825115061649910169266984355305224529908571333831602645270507231110308884854629752603260248169090383079590984727839296750184186443542655324534007866893641663226133493952790231346925459467726212168130841927701361174626252312872136473074358883211526247009449882296428864648445232111949904656265635956128569745152289813946510815149128167635721009828260438349506242443215005430980126708031249150698924654325794595525555277612426864729255832322521964713973576098856694268937165894717676997933510849728874949843685052664234567791671235924283971449339075568842441349203224812395903786386714892546090160929648020811870278581706546799575034043790783224109078501663522197661716416584966291243838453047647694175338964111737294782489719850683884769737011090972127646056796894204958504275133786904217673680582790417582970043212754788640821847783532225546602936054171300955243217704822470804905122857881264168765893244576160251235620463875959440970646805748633267986135402618253979270615071668467293431819038302266063966187502822216815865713971102372968220616242110948921118729736488706359258078642525848825888124078223350406499236007453051009536963569963349667841645122183972318864133684179901626328939280924581059987403285332363756524120569047101001727429060580055378640593591292337198922971713146217383594329829675925887807688950286220417096190436204843959561763272215584204580769030357175108864565487553287159182038492602065496133765811217495341756271923136532958396328502362410714941559496205573336403026764845157497238623858332456883723141148705153321235114322848940219292794924722049713650943145797316665568524184759176996124484930672296260156207891529237995841926247141824167080715431544299763728037918457202950991007718495421629794924123087838408667198047101500516407066101979815184851006037213027555121996145078582977180235743707727242712339664136648360943555393496024674631048777636526991199221208610529940211500721172149822266342539427937920342778312429069375745000992622159620003433406302844628678520754881681439613232160866731966532218613214855812676257948001021489124294178379556370854092928348155894319468603014739827515258142379945281509717514693606284521401590036144104632425458891675030535804553558544453558738974206318310452539975759723330699653678356651779785505610914973869854879254532422645561432216272045114925015907936083235057187830069769540087926517509611235717487120501102929498096493268339218332798237799445235077171950884137506676770221840915649248917455492563701175820388372185634822456881435947390076213394184764521514169370655169129124244333962310371587970474186455033207980976123563832548666795422570128443738047433000645558341295630447042199390875461071137725601801272367723962172108195200778872249346766640616837219097248474243386944324449988435834849455878200797368756564910060539270772694537803567818675167257086891293500851244644499550625870910548331149858715162972032762073937540471456966929931022519563441330982970850308669850100583476757506285942950799862776407356087314349167606244090661735266273756924474942043852831054362623052467157182212537157307345117698853511589607009896302784979058073623166138803805895694598602918675661127792892358126790274781271662886485813013178268202128819481314798304201702619674018673624860906007526579842444401809868618506539298089740792144173196329649650250946233123847410895828403389621149651316748502208642682342324843553127657038567289167684482101303291129354770712564215302059389031014205215491442120910889828125059459850520092577421318495622969629184574012791538384989163789563123638818786540274886072709164882301999177199440188277102980754060431506426017801779597116778892829167686340444542818223366819642093253145641065149546899511354717584759682548864580025929778537803665499279524779844884060329320675192110524480537383775230523484951177743146766013463203267180754354057977796045071433179967705874610232780520555694434364364516137912412943765616298486513991819146912685765750846086331812598700572604723158706759478377526336892054285945700302601518167820163169163987124991275507302693343157143781470676069096735813057536477096514214576619422661708169302720121086280104662647422625992052684509534957002847192591829607323229797750242593910413554469986598231521985458169043757782771547579888412511495582124593978422539340589419891949975117546228979903275361321195385107190606816635796291334955569262320827032955857836096836385467240218719681664489460759030067931382122622263783508951926339850913315498781177035350664642195892907161367680764766733173373440919064520887028005101730263529912579094429446796538846256697063008656144636282183334417256264538326841241863029509881781804461399887278686192722239783708233857371613500955646768561358385380358977589251180646504501984724704417908643448478378777827445656700990922966481694465070982729246131470507646563963738231006235146052100771264405688858786202688657317711000310840334535742230306814163275748558460146105643799633313558746863607932407881081506061431519875412567685542526641689518230211512112518279140482920507080296442214465199343424136246832819384056950507478346641875430993183621321799380933979423259082389883378389333333499594580347288026175649781968258442656293901009336408752633959244559904464915179706041193787880709722340336132242268183028973210758366149147834600097622969909555944930959238408331600412492777295305761274108974782277358483717848008617471006690025317437813155984325893190819192960867448068540590496754356585112199393598511313942297978290476631803226978434083094030405044567302986408124348218825643038945822625687805871169690882866636874785459683117756532596956014129600994857429496828789865856085001422204354359244865450035308743075660368804878633995315741893116450537772106571783896449416548676739979363129681059795345678124243351681204845978784668755203936505560274041020576542133198537739352502329409157027513067210077889971965406671977655093244580469427065676015274390734579962765702343880826639920919778264746442778748081076849868552382580934663805662165723920863916467298145175097856658234931425908162606692884695257777338922381286153546216284979962481143741030241708290376472066975115603222589199695580224166482342151527942032221758064522653413990067386586757677391963802500603754670953585989452008288600056239516852258818549024510362524680050792900427863793591455945619316718095930740483452790940471989854533654548502385033998884931132980609307362953367913758722607304419952772671767279840508193548322332388335618427347004475964839803521986638193470702083350641118174056514173999042070582131982330805202966509543976394789257485661449650309398357584504321657900848376236187201393947654749545579826978707691528281916185667924251454882672739575078088463318871633580000372236501239458487204188564598708756356726929425174280375417849033650112741439535500826088494229010733451385651186290114556466259516839120501549989627247784582158319700206780668480053086011222226715857323750011444265587355481534232147778418374904970933910964128968793811887451554398804122366367928598622943636155844839560229633442079552186106342708548361971293369685044964250911011889119609082924622331207791821863182686843414497360484143072603832031711353122689433747260488399703888373035965490042450054771122272009182827208607627172096420190797190718019796605559592490382757029667573344759676772014490159104248142023447611306090382417060981650017762562870764806315649850397931034018083835214588258143179049942048354280967025686192565530053498382150478401700144491073912446833815888590371591220814102843469226193949381807321447268654247053829926117635968347812113044674932077278394138874495917397330831745147322981809979094377858233654184391903657418850513945086112321242494879406953529986655954770688008110105263061058194427398852510601789491109622597719151289181103340261870078716026845998293273918228638007275335073087470616787588941896669223223116846947975979035547869296719018877786405635607223248290563129623154307843724959646908176697168379658735526055640070523143748662099097249190727805116462699692695297753998196410441139301199692017230608815662444561841840319984347330497981621197791228173921433884143794161588274123051011562404829686025035350571251297437586879574065586315613975817506969510630833243594383847555327173578024325224631974637883098111151804536068452126799966139315649931342238508839413232402091290051892651769872718189065065310527909766045003170316760234390148126479674514945423642991079072841746193173887286980366263069266177328096774500636347964403138798565330228532891737167129145303408771380899310908751925708196690771619139692166909945697208160359104065730171025055758799062386834009551598306280495859536515273310837861959002760191186099544232737989702732527408987628911439465380459561573106069262975300967983360669427503549890015356454102678766066259825961353755840890681293143935956901913908144873175253131469954297532433766180565795475380101069258591240960965085687019871040713329905707739781260959688103451045873074257960096994042787108541760571942831517206253664996856354451225024460930030829327547676370187191725445810900568686740754002232490737866510754174545099327121343532534515009475142332794223497307307881983725835772241198610531963294989664539941056546508908844276477959440137985962166980618960004150929548852330104270277711746147658935858272238058469351096838466063102739812382894275587023141087549738628400725494767576919762887908088882134632199298857070309385470075473430232830709105009414067761830591644794057679094514706130754195394985284328874829334464004605732485139070889766509396406106388965547736134722698003171204335957331351815872608836156183513775914947183568705779638261598049992173531884086689848760787778931473031316900415531860513161487028059335841583295826882584711678163080608360813655988616953677025006330123059715917395554433114796954428274847098827558938765567263936501170393657557803210287494357397002712692807510162404602979866712339267718175976652846661832467419359782344636347701754273510078934330250279822712866002762138547608992663171769211648534436827978247945546223593261335671793129116168445047169036738037382587466257089479558416936901248916931889976649711604681383223075331092842970094955911343333032022295166880663397823129006185123064159352232041956015857942299345210181175696272833374749033711603598099582725120697466477047565438284743300468257992308903171659276829056037693190589800708200793444263323297645068171854036446508897396040665966746203706441495806651799635081517461558094820021498060323475216612043966901898936837475980152411445327088195267023366990066317050293957780366878913741282555741118832221238880742115374277231964901638180479639719832473532042012097154519101345984717468824850595911860790351522531169259502876081004426347279685044287599299469181927629911387525625299021313304348979146222860134075224423070508979582839137009647991282994049889639784642890278285453120908069284863302964269467276189284172907349143215683675418520625514885194018054503575963656082985528149436775876559965555271500353635494438587050824680764322833297098539264758988653536451902815209371286545319594080814977582211102792295109525914270091041314861978448806075744739892175350957720110166202932405862767810157865491650222070844899717125342956829792487109995202915598467639604761612498985883804342059564446942397505550817902392941122003377281491898915762229433087324116215140487127730405395798289333585664057984725532608990456575932005410707768670526952428132425805537868581086089654000657338306726747060649604150171679859116407122085767888294317261880388993645570402023990587258104761498033092011114695149086343351437363455403222926523224080436317787067718749261031828133663747480813865000751049274639972304606385601054415578988127907516847768470789108578361988520017266972647105125605012484135448945458090214163335925187025406646504565152930789927846101041692379067979466371729203132224381052484389543842466592265463064942410834231213143041312029766662878293644838219236075735311819066269051744699910874540036658566492361089246988924621014552143352135042678703193439950192547994832199184074459036433976865506160197372678537822084526896351566313116698873600722864835611867395134292455838211086365173906139453587623651190898061729130298658516713851157289251374594486844506634632826255384542294446169119098436385051368508960863860701292051481344565790624485277236273739089825079111782519834503371744697381469110058824771797961277191774910960830004309207824316699721258368099226913003899036350257164362354509133734105504084706118623080169728446904021096240006037303893912737433030936059865320637294690471778044794235705589684343249247327632318375691209185713717728482952134819899812886633174973926894396496591766486126229249689039335378691631705173521577422830372549591779219625454098187718508984249257402477072621445587206311802338403617213838443695406833394842623602923962972209188746443236784014267589056639098553982346024175359157826977853982788559972808013261473890005774903390504928564119189747940002741371277304520410614442303320551103907946176144609112555685287525046363645567615123474710261005649375227561535753872063830766273741105190188190272515775868453163832835763905012013214187926187491435606041755828357435407366776228011062478490527496214060913273059225954368417036214405319353396667589224565377605934165689920861743575309380292362749023819099233458460570854805930914951412278894862935141418602186933733496117412018585698850327918625264426674137263928247883067626003454086669179604593662404652807657076281444432312249146362879015179587622377686332359272881928128538318601153665966485750113744907093704050028239324716125124967248110161681115159657555472108663726705394183222364848216535235718364379238482092161771835616481930751924558300580637972599115069247222253540003198279887438764488998213560312856813594439543667819775998762408157270830302091624495227575986009690310725054285191744175680987650390067451998141513521809649756306384600203101478689087217342045115262415397949419919885860457414972021512116113656125496603054478833241456793751017543279758955617950033168415924023680689233286057971878175389799709302963765446048358722545759785385908439834116089667752970497997402841060736944069336634730271245448459446830952223336093037097852386343024664272521865990214309282508979206673276392473273107469478666122289273119947370572785030358509814791107947092726034352678825170185001866985686280381518606066295484613134708623168706307168334763345851720704028882692986185268281496740885904260057162580528095630664196699947804511018013924219217282661728567186787982267354580252046584326015155781584971270449307806971387876602911492323174905930585594953258112466480962220485609512569522442489338085355051097713125628436537507478204931360981586067754087083545312979739098988794302183131685413867958665876172360540530188298901332103422434224938606386297789336744910449357423515517406404842799390247319091929719090497711124250365122664828298874990890497350287364379104317438710534858671131334937202516962002661757416174798680153485995871832505689031172575299242681786584832605306572468135752453489687067275299465592046321389399571958790800768276654683085312984848970370634914589600369636296029869192664110455637474261076913726709924513850763117353680586958894203997066775961743900078587609006818193255191412827383556442239839291027382703956742338341141726986160421628944022464036379844224369173905835195747196725969238243955151475847989737366880305560106872410220880065804674848029405600402584886423838200640590276314756206188545856635092267407573821497886256088192589379854657663744512537887367622361096997557701660998220892797237767519711003212648893339811240915619629201286262634856979036866056048277245721210823694623921157864011749930750086341371343149128645352869096594505241488778702644875173961816778729786220207184491658737173437590166464222658391189026007179777802678631870604697462125810182110912552757334214669376773963379091209360031894350631084095566303394197794715807805260044131839772546955538476675845173639981427558291139805089348059985970351629118294396669918631229413320350875688313538154186813464539477564453049974455290819098786341760261977600359254869319526539220548125440418474338901675141706274259565976206776214732085240779420195205297410570004102070353914010498588580517210675990371172939702980157677454474333624080531293794212590387946534973404757642615999771342349371636541043293928854725487770714337618612001840850983143759376705638059027553760513595177969094254139961295862522202558404008347959656795760390410648486040561482868579282764869164785926668727594129895206622796556543209543626788697739898660766662236086826769734086106445895785884957754893744576533036521694672623859350537353432520379073632349826517110036859850514053116284761588667227970754351935385206791812384095029274151653174532003512917983617680249583154494480319138533431470806766066267359302670394069385808189412832622586596718182765723290143151678396367746853502628631538856314186158758400144424909441877814558576480348692310078173755871181151527370756413698416992274810401204673865613149127578111198579779803364332716695865414433376798964860676925741819178092902303524405425265772237998725217689440908332819138063609340342793061603067822905053716296649603680508497251138229928754321261639910616011863300628669128544507178611574131640129335930313373040097181198855385993496108767071772331473658781394706196093727373907568157152018040114120371285390132474497352346592879530641159970849128335283735601583249727334618404595008227856729027325983867820405212434348789507891985091758833713952820274090141798832260014642563524724251218744804975786909899387075412654326935771690335727252923483759961839777552677902698739944287037325204727666579693734487243626460541380521108208687382658259935329707924468402135852254778512352723957365473731639791211289681090362161190891013981846281775592523281008439775732139994853423624244330958514617972826390337813665876136556531194887365870706133446875257584970491068189854934234242248560175998776031756934011267616921152720677223149629383217901653957863138164237639556559328161800778835840871796841672163851602061622385753719687958268926628780629543297064385854284608870570621594834878076120648073043659325242302120717994914465201043045549238229075176118525153233279872710564115595579244245247368407036983221432644763330308064198962436634346485892608002986926499133754962527048411441813397612868657618513650247125846085214460739473373093237334369367542185660781971908657889886794340179232641125615235069190850509765530937440703952937350625289372606177867745901957224993381660244708857090883376599219681356271107420222185815626721553459754294306159254077526570691641635945613722131857833559693429292697803766676400593608596868119813925071827418720093207522228412702130907599901513864432701042476588805406195880558665076647644283888919389243171312578632014356597753628296158936019823989869000966294733927449255729385952545416025081981878769782973289700511239854910855952008844044514572511398728337495586271747917054496777982410335634387183723724175207757293303923258985691921986034191932374658276306573393622598721471225854193629197494638282766810734904033847139553632901397948465528304068294495954101373695340784227351003230697629366303730927813910848182656488730911002347149015082681539545473502622374178743212858210612829541102289395039542809296226783822207788234289628310912516830940689580855249776632544209480964945500277818830293728575548328751320070380258399815361507352054110233684095138562309607834793920519464615928005873992995805606836934345787444598384556000457663496869012443220241475878821611714442624060400087474345180532818886283184775282321839255526819501400948650270800701512073488651059997330405298240763605382929700220039224229314934580684121334352551530937969288443115182545896128890681433048733063576707157502501361435907061624565809823364068277435117572866479881258332546287851753845914428048458121049422864540783478583827716301188329396383443279472333093434510844143962313296651063697689261212706419076839567920225356408040017755672703275663103143927249075330108240933210318194799586068946295647517071844926597641118373537379011832761876542001865747172717635824813431935142416219520922449426897332794386365586041703126334789294896318610479709256360511319021242353271496133215836172878912431265705703281483186920026500996196894956123218955531575361510676737885783960224282282389147138477844512190456012878969784605153335841281699244038814432735587340504967626306099748131344034635201900396802446628428075038151278807105139112790007388643043571602170957288132538791924464775523481489706462030670705691064047657393300103939251553542521640047268353681464605572662004635681553299305542716880932309951632475533304731483532095610268071927346610404991957580420616494163084450465350100213441495654202996071427146012199895153643177910805175123895843534659942571653029995578509564938804980952636767722689901677124207377235578813742875090254124528119077759622038258646947310574624952942842808865011772464046365825438425750109890707017750146836764017752550305914665665597792483637430144630114651607871058231903608298247191891644830805130360586340138596392415387517694491806988998251284963488101805780557133958760383674949771761085446550616007352924230305477687753980464581324492854567124152467327710844069321619767223346030218549328979544134318610913091470063637321923424376548443154220919753324814846220942678955007356245567685647234087786057660747471555316945156874109269119665900446346344003363284439974263434491458318053471101644683549451304431369587541327667790386080511170371763729678681692192199713913951742834064977668848972070938627537996852877805414490186667072550839795209468083928230962626722372437108026878667778267815369555246389083526529744138217964109210665002983774469995586701047362156728367709705389627687425814614197297380536622852844004336676969287150073099797411686445705109704906826362945496051471750928917382044141125441365396840610024539523344309935100632461297446999560549440616861521285010659041402197426558069175562621489585811070678574364283417116979585862220790746496815678517672156812661120447196109954002949061207268715367876760123286995965676799299938213028049105283537552208372643484625171015882762900874283250271738726827653259593416756531081244798368287816243758097134664324309191274695699340845417060150375548151588449616350373010141809756536614660874438264357995794747391046767983439206952145423151664635097580639445849350050502930699057095668786170258981843624123498937181136569749234696952632457326970498140405627723843040920857297589277750043738413005745813278008394575110601766538094929761996841365173230234412184167380088179463215791004097877629206287449718540652596613732302052657944944738671469372560432941942165951156832170752832636309233802343775960178618154726691791165441241542551445543452000582434756306588702787293736439965547015871787655030843644845386978875250155577753314681133177806274009911333298890547792705014778111552965441682237479373453074315723378524471462383832674960247508964407132712975426028106210277894271857822688343664970166634336215087475189700428832592056296373145352975672846595659249439722689985485601149422578151567763038816848386881236304441431209381951460527953482188847804227625148017661396303817301742991125036361635647083544610456414079167798073548410978516227472924846015758046965113108170899912025737939341892336188678562790545343863560291004598868953289734947856321630507532553698730146066877690438929759801546051815821120212098572746109624128408437956649689322933003038537608233439318042849023186084929063456147571523870001917736404417625093522781230354307660954857674382556156517786356734689162072468435888508689624786898988079939574761360078460430877880628043550298468622480514436583629285108916216850373690907725225200432782938497587468477055028677324818570069742709808152207172911349570380800966990894112100575771681320236443058703129549617886414481191714268949634714896544801849363419817473470951089231236763624485699157284733848992768489972863845563191411374748958019116993149308095312277463828417972563320168415350613869306029345276121250242504820473064073573939415450207415228992372962833750996438112291179843299489160478693467736720369611538594817978955575583492272511138607204408747526482706030268471369221880271624425998187127190253160031212320538764911837668853252955223213701198253921728977898988594129994836638959725138898702467442166084419460281729359192464801150095563919661831604797503874194781137090019978509028170356620543948476924487105084492133936243878731740993756206934236730366153981608549951044186781783191458491971133249548023643134997928478926122023981157664987480525831194012694492154402872867310841886864617965847412854661375073733285280053176151531234022340784262503162699208245573512038178980074049523366443600167120774427810254517513950018762160027576076731318823527552184719792236409616063570926778485610196861803945604821131340869761936734628964105346308111403551262524475241670761716324178293522230526046257382933787697201021905082492437282934550761886507391492278985760833345044677627412002520288025971296381676648661367842671019896079971741916495315114132207461896451917633578480044783189899499606553546152967166492608139665578201037593645211032378494788381061536494536563925898408663186039716878227651759356788657430502708662344448165321372586718658093104590389598845722869494039620601207790908660041460695480354630372353558029136938941927246264986150184146935162379991688649953168751602201598614697577937846172043388653263916976948706589415289181547853900039891141058271094476284723234171868118407053919756442205379599280580772027067725383906995454952070320419958647646384638683363177504597728334590724963381436905067504632088249346031204347825324421937073546962515506138049631287394385531655178941003584975782800999210935689048339566144725683299409462037149198292322095023678719882135519297008122875923818267479261810296752459974813192416496348898122584572907006471658456066850609698905843586917040267763378351644695205684970421894295586960777007784935488147046590717675707493181544105743340357514032793493259168097362724432108481867332092548921240117698630409571174342519985280421040739300609349319182586601608298962943314797257508940680473388168484699268076605591879995765272675554434257638911806707301473943922354161899433752563233444277838628195343827905428299129965373979093378224371239345714835091649186052335991448914948678141402880917112826606816261143639402164416557004334733614678912490340823492703078626936466030046922934939508440700011754300438878197095849229596492092085126679253091735897019259900929795740224169111462491120847126172984782399283243680995804640316963328659973304113918673579306944858803185497704839900575197526280654101788549020575557776184273522709089974542927498872547379906892240352846974847287659791839957626181867231550503881959840519574774144078711367753176395958457368586001920714125842508440727413714446460455284677560465772092202853913626394088461043710627331546251929486446620680810350793083672130569433975525443496609417494721606356230863161697370854282906270842165794984239579068423426576595524724010825419699280114308157602429586061474947820217459588179704238557758976107256484207976468717526542074977540673040459760835907181068191309238486713219311422224010316438586659581975795082514787683872566255956090673653643485852847098507284863821311549224898862861919303557185404949168440656942032272809160507251020253664623967026809769852048737010781626991862365383542585235017105785113046663344580070358618924075993338579148051642910129610937003455429413894608215453909405516470945128095439846226302389935268620181992493038954248563504460965408405857595642783729281901374449105036124120037824961587875604586380457628981276288043298167881567670606961872870148306473862041681662312304666045790112830811789552353442715061412336811603731235607554968818251886267022237047968485304618613527613803208526171174530397382185635141317368502103394436787382471873629193664694242365862948367353253386977796715726240556356641517020056091885066471910375996678746143859955254745351306677271870032591456412061956464506061065254216655042436818701559308455143709656356251829043936719033338320590303699925731301542856889375981379580096336971541721163678623907499879474515619078094338514756825545740086383487858763329653350712751368469822399818371164016716647281399693772548222749194772606709697401280871035427848851706789323491378039650754322109036663831348175476577431509607806638638098719705063117496790644357369461596045085303017221282779209359223267013069090532439557798075691485011027537638434594264199639666114556258853824899665929593172111752516213348842089864981867831337317677743507516712217841796148665941664243695859924126496164451893593713524879099593808505603272559124323703320016080678891678114565844134687067055836394109246283237477523193379411703152632863232554414972897946004470616559082994811690094385464392481071686271332499979918720196252748015856596662881124073521136217540576406355433658964719364594028644864518050099787658108601081132874672235825155018668568719268658597682134693904298897298777189065728802125870072496590804805561753386902713678293383141430969852053373673652650870962693644655762961808322468932346212208799127907759993097724661558186925015060104980272554271869154962451792767008968846003605322404976141164332404872992991524637156136360671038035731421534237985517404566825177244686396335573018136700622918996243389287739565575843531795679731528694456515708420911791834065425176087650536100119622601477871143628352258181572965041813768777157084078499907624438755383349051091985683271830604853713504534149384885300041327775688531543299235417256423563886818615147649648938241658289988892876161435682178412162304522531195036172722579845876001777397069066507925276794284580546314734266487726315182785928137667735042503618134160151651555646499203828655657856420004412718123330509326442992801219466097671934012102476367651083488878344463946072849042834890789863375457757147421038962194047917768512901852974062416741815237022731630092556989645023867776746829816769847677256501000515869205148107917204542585359691148635293966553674797754692486692335835275298418102336310237946605085289470024658183464912273094175578764603213644032845589864385606087413923821820768949779368796723801928827668903127479575797611083604614557990283719006954349380441771552428333656719127810492169693834971483622940014139683393093308416369910937875341916062378063837873125994391232778854984189459213103407109351553206993593600507093912825029716104866297739395815516830747938745123189600789895322237189784074533547586127877410096858788906305913861109124264848597781918936280465046431658586737451549891556576354256610526162134706566957761504756341679630027789400749330888511919825804097200205171722522567213216869064584940993918001535217088668804547988595388170622137412845265058626194616882339222822095811365786392455147217436101766319224361439677765871676071015708614486319372889437182140183085657515223879061634953957202269828631171262122247674482284994489331192805470399142680393359625223510812493649047591062595630076633601616721847885044920856030093277084914201262180115427169390978786374792012339495054756634422831677306174211581238594373082917829214884994041109017703478884854389318099479252804839948638412965948620882833697904316320346841044320511914109172118556593406031011775394516018167832073373092348170079247455817678717348823823514025496046641294683514787321273789418321164968696886172131226270707645491456626187382726820466200597282251616095117544501581002185363133937605505101202555250689119445750467153354490110848176404167961530456331020888162954733098248281114382454588396722641748525691201670889969743593040031073440535247008841682541855944541984003447390082661139738353815477657941803971567746286103730604855413332301325139901697458986371811020144817446210191309428861692327711116856833642260285107396232361400627070245477927643790474956014016181974374522229141213587650608189724968222332703801808818667881358103806577302029476523299001775980317964080738749177088535876658491720035547163158619869981058832190888710421961608809020650484186606366567875631906106744816056899403172441221420623085477843243357622341902680265206745088005227752071192823017474585413559051330554437264648075500751453966275845729245089807213483673849901769225479292085017642926028019795048858131275038606995168971528466684967048388817865999238738047479030143290623080453748092979627812284048777475953190429669648252599516612284575861547347231466897311740230606901422186499654766022534753954826110874621689415816018089858466959725825142006969458371206532028170339063280120128477303815415998199798927494204809217584380274674763291106181854278633796190315903910017179929582456649453774205325438014561131299730153059833167864933541987809114110615820481407924237584547224944804003118759706703886589600104827202010102122855797909991048955761823779706258863900497417925433457982797320240427367801275426641130932573622490023898238052594092216142399352970220478769152627141360245163476939395969290783466001884417711228906271904087106680916153344738382062393890190717444364069209421109335199619579082290767145292598690591387209581027065721874732052394334821725839248188757193348333890835698303528757591472856196529944343943578935797083199502731700099131535964128429851090260136673540983380425032321026917284226855261281385479461357800276484491841134525991046061989406112128970602384078143654405182058541658303434542822017177952586277871958070806986342502512488864522406963917753576444221516413323199845009781953244839778313780809530475999314073651485189881822061542106043677568557543036904726807994738064284277172596392798871215723621964844421445067432659853147592157425882083556526196305704737529277525130060232903240848556370683644983137319865572875321525542627292865157995250150626708556451425485194542975504342540341468040810396774433457884536698353185504102112625418462288302338050395416334206572402667195640568133567743003694288642137048433140539683617733831136202411111277215549428934407316141334917048214858644974792158108197752285001651235200117805896418318995780153243684023775233480911780840063498356108420035400059642170296810116267194284939172257159248641549238969386522159268088415148176378107494415026541518812966290402872835195395260579227512579618967154071152471743770186866930852165754523891067370411246008863366869667137047080557985609826444390782624720368521082784041979766834289966384983339784567115746410021409309815655169948484950338632391015016932428279830442711079809808428227011576381335022617490697712171838733828176131154546745765667365769352226880535112368157002610063562814786007132149968190252683892757186301347104664257174431738356187256508081598696529777570972926843919448879939025367544637943391222791270064571798666301326455835409519925715137853215694422005069934303949899709242713872971272645534010313999607408974279373345554776374900153706346924260849561196738679612133635657778769139105796432405059237588918735968373523301450755257601714834106256949295165060657645291303818137916291163265539203359978179949375783425861655637460835444486238297200642251026147077795744488622013515700773471092460854593543420362192331379875766596167729255284370557376135594974221284457799198370515327212495350988455140420571008474168268380228975085619660160614660199951270149831533580340904236293474626473936437956025344668123368873560314822998282923841997119258518400484961624154131083209458736368293228745037342353721365009049536290675202433457508323388501348882331498606331117850704859382796624392787261922049468045419385278882019664123470997436416794560533382318114731645647889809064131913215709258578655740723207986828059109278415932646954776865998201704549969712036002256882162664499923680201081437930791263852260113682273272093521954346733155695556065250380001346392254041461899844932328020722513082504641407120328853799942954557051960512864318614258110767331551295768124037185000196693659618069283354514838887476445406865546251404205983632822614455248834907499710356009385232708916044804345634366670034687850703212003478021630496934995586214093846168169685899306373021709451493336456784818189710605003832283675753662784850452615554765882334458000502484641767828953538520249375482583100258686358616076508079346840566808119831812990363558855257696277566517539905644015957944951838912146371641573493873414800232833268860273198572600209230765884967385810770210646308650826018292928588577988688180086297035668187442021177405279785257516012756970231524223761456857640039775992160241314979710962524011124444269718291659951902039275984226445539742965134169967206673166192726666968127592892909047263632553869337717754028297920247947270294886031845053687495274415356582613362308579510396677816949637739103152789746067729524037563411983150995636650873331623708920078766829046568023451002749821810140691986695351512788968782298363729711000860565571979573308736411287410229435979668033681503943565749623663892471423596582524627386032827594057072316582489130901827718633894521460750265242490125744829009858130282109098235728453806556594367073211030342908191420662601213412824758316707906501733160636725369763719763927440232352352767477631035270507325659397120141750486855052474394330947006751605946894056220541290362343449466712082856851552061397515440488101244951516957817649052111717483912480279597401585474174165987499972669088729758332336275195519389987096798915094705767782552709334010414223552453685956809467871947871868149305277243615045379722946195162368221297467490157809983612019441882293858259853190909848178486268962019311422141658142729615656641904912462468754704677193229269854249292083930026104112173575546182372466710945510675590158300088822595887818377115860023341069761820678870315660002409108977861998391382693079890426811948445956696298512731507325126675787924876938281550000783168232107446145148103952387023977960519001162108242488622945086999302288883396415357146421359861051116637165583392641192439983333606309666103437524188793250112618495986884950053879813509477052815467802857922126229351328248722087935901124086682966563588748788895977654748651575544796129000574594236359025597520266147389963243948739643352797982586812859715534718742632184275383016216751488137588107352375886844664166551940133208564507722482477308540869889335023978406289692787080898509732102594069627540601812752335050124774522677341490982825508045738955766313180658813514186894495985236441008913717468341879108257123364607254362306067330447142791352815568928127845813662694063012321624940080981934677731459747933930282932708018082345757439856491165849870108649155947330338928536496699626810351567379225835163361220741577701668667312380135724083001643850903667041915962690770106574022535829617231329298690529168204578405062697999325537192778528731561421177871621983215703562453132666460767443772937038736466535567562336330053859691204434314555069212715450530173917160348767379198858643524156211752309371451665412494241037017875812728695050183117024416417074722545359058666050868183342057072565378492042178231749889833179969708247598282639922675337064333852326580226925563034439127405512617285008931856156242691488711620147098735970352656174240423691126701804842052675984674820408763041749125573315695142936270865917326042217589196274821210119791192958043188895502926853025218942670669797491161210213681605539290192038263418107849397821474005582015176456189625465779962089235506405584076799453445638143999163461761024324673604749271431932768116166183114670091626175042104007920328831019128360389575840753554526070696963942770457933520510818244532862467011345517972122751720772391581678273853548468940219927943177413872206339484146345492318399998696811941539217462276305419936006109702232933406157156532392295184129814755854925368206533953549489122449004307314619281407281021453613067747141307488342481308148453133182250220305437229584186636938242662387144436746975257152238947961011517162023077585748000998786285852922769767759139300363731307572239840004326619299712034711517916807331158637250075587336791349827826181739085363096199072887184787709391307216698230622916705081988685049699621474107724570230672927719543500258871667866751025527440198806531102781576797720312185108282197788558310234533785743048367166248793934782938971097928915597366755664117067573308615060179313768733682089791297742203807810690621818779810862666264735423375332801188834052758729157454580799771518627630234113411859810578567729832689764703657209436926841293753525948229367390741398526391514448868664341599970374949545747561650105833614316434698909546434283427759223932216417982521057072841111121652056939835139555976719925411690078339724338485358751173975821188267556292897041062400087436968242430949319640976477846524962809666771031822684578250111625547977882650616895558093933000423684562863443070085806222900354110208514686609640228765044524488636720397400295811949427591677561783356648950570008171830529282077951669937553522117644104356603533188571476991351571412605519054518509213124744875147511820375088144571366328059420796612616419065205527181953687594235759103053875425101903550566095041182170843518562288564802678783474246781485715517930504009205619981231804108583172462708132950511164323696700596287313746752504857172790395266198930637570773598751287278902444152169128983569584108741993420933835976466588005557081691111971478714751312948676516963457772230207319584049363058295219843426095035258731530868350282210489161817179723387849837570104242627042890442905664282146226239269312454824859386264058185434211541860328837055941586536073601569779655250061897395583328853310601683505426268566341130525858464038922228082576386104472532929436360681369995643667160071779008558648668460306420501558209745216199703642942209849398650368212963260275094247051211964782549277496759827001768492133253683193050541373105095081431132766542057666052423380935075007137067715964619365502497313762998669870118879518201553327149218423786450007950309004105716251815357959437564883179100352819304343002678709019854164023649280359683109185583370432919443684229508894734686609946921796173410831230656131660207092640978648419990996951048462189564215445497464574460264733505242249989875953646502968346229437434194098050084244141852173382954686696008434980558233931087906677147677993002409286615507932168105957092761606883428624222039158341685827616847064379329320763407001154194311160977655266594894127940671179423344798910160507007074214973837223204312746980970059781448366185176642919291829141684558850645864754868079351610030524575881899131445041587735663183139211287058316555727083179856130160692421178010510861797259139198042887234788117492061939400774383373946193481244775906218515088251335582981314121181369287544102541370584622207993168222222895982718180930109445899247941128152122067640517844034453376202879677822451372392131507398631995106364509716182459149891222106941730548448649013801639579767692702840790193903732483473584079861380351627580550129462265355746437557691596033744033772145174575724192188837712068063414429028352552904551645428240924583601753793288052586020654159058035930364938820086710191670739041568733555931224271228461502946556672507659916856512871364270098300871574488760746282766586922072897653593235731710568850109492119358303770779227365830378026438616619182663339456520522464556063933188751419052008808792042496277271435830203890004623919120995677655191035326267885142932062403299089882570795455808391031524262251404625913123589640754328179193563646837120030162779954934562604063784304068193052343426583117227267468551758354113271562981945295806963259296005367525419575816184409133065815242651467000816259214148413956432877619803041861369459526701604664800533960962673763604732830388712573829943062617462877129220359379172713587915164934397248301483483803499573582088413510553499700351370379517929539405489953142320296976065012293142792366867335480270637886017194542233354330685651662334956013167627642988247348800121536051406132409154159705290299742675791930556948862587149496181515480948607481639726408846093889199374674690392284683379449944664351083558384469694601409182832560364253875966758646621985374069145398481335441546879516128936616525077198252265258662158990966416096949058923989834073717245046374299894883058929236740575882414077247739983345374582160088295381642859322862376649953052293707222577992491621369694080401762305512883670530350562865559283143868856208063145625824847581118357260346905865287700388015365765471050117410147001453216262207122467037901486250010002304031514402021655281327183435968647936833453597525918422864639893661624465054624047489146563524693758319440710662193563237893463786420072115640526377614530992230789553157901239699582329416488408763277461728851508173976178806613445981375920368669088924792379162748611511185677745218381064209181791554059278952515624305904397710590876589228443373697075597516431573143727551359835498837443324526809025186150232445439674190993058629877664045479316846471086339523065392875890475989326265619299825663442999912984136270622865542005712106718470869013568492605414468461189885239118640450978598231541474842949934677553440940708038989420895344593383356717457309621450170501781645659106222532965015181590794997809607109982920208748757836431299342060127733738124675444453049389220230188522323436472207634355595485765163819215021609337911550895397367392606639972565706282650764604977192153596739632153631913147166379150231009565460920628171077630066188223953695840228291934263799101934410430727804873983347738562469140432539399604087675354763499542354345140064665439240553823152732652800108085981968925254353326817008864423066972104990274256878562003862015253823583567149076297490272118760272531708655091126648499375535918756740262918326347182169030696758601513552330783785046220269323374375247946920268138428539676550853908593067918571515989483329793475766022716885731965498669589536013194858418339826650797730039076936004751455146005385139196871771318921541201304027835895172928283630857827116641177588021062548286553942211058626157522235681770147107901142682553556657775073477944683407881839952442796369284939304514044734916665001375566515205575212107128239874754499779706416293408983253829881908935923539155566935310957591490422616794660760254703410203370072658468125360728593740006224879305846545646844089668297312279876452901990205504047101555017447603305975926926263828867554442671549067454640202895452158016868101663124479120606583515840910729973181702128421325087595279967712854432382062206601562814509912541562771325630030515149302390986281432856110001204289351379052711174396463981455690401929325422399710286492759953051103330271981264529689870542296974777158899380778531987493751293773161569348534457292378515916353687559288581223249085615563636208908017952750867882189479186829738357998990971691952395699561170199142673949011161940612318744254896379314954135791034230942250878291783991146233088336568451340211171438937201699474384314549171384533886521372354037714106277143023849625550082840948880141074878472944149036474265534563004349261558896487812539043767582176434926340623107551131684723553537758319464364333412479496145174869941130532778773867764638341091126510756564679891514715474770701062304183421034685886873757337121069268951472237389472574514362591663439510719033954787323990081999451614619018920263519289902669443411594542161313595077195480481087709871248708304921894239166165190730412464661008349469704775342956425332238833033174093393698421708218844537688222640208612433793428200531390266922958101897607215308915885842474076418750068446930460105991957523803267340337143624161496582831666501485984499127662457903379678844146938439247720717062364221108765937413200573733011373776440444614089624945390428689684004432711441126985675448030302281426250391444432571507593859906776128172610570923932692830254903085235762125601957313399138510689140931672429434184890907442407142687074852308392485545091138440635437696684920221656356422369510119680381557003046657243898053297462465651571798694530694037641572282834040625499630352217420637700876403943937057258644821974398814668233117195301709534443477189596290860610594390856717942449266224857451446150850510050049339095931014421188620872542954833916257221271764670032821617483817941241273911109856424361310899012550318858737122316251298487812241966178661543897400147729949075359847261022972326163465289735822741106524935832526540541171167751217152169996700475243595749541859731585842058862401829143403948792538274718960035505569669828092126536475926950196752825092011121506001003085830103307529431690343567898256459215314661762646163542881105259442931000794063720269979536336145258565125026283203432562968064476725789825047896503075247083168145425728138759535570566649610978822195126023852099360852648878427953250819147157209329671379889701452273632888952537214693375013075963732952801924439297662057527926014003874165847008640250373437089900979982260191457428877579342297762019782598147440242828119707352675472833874742557101491932877785950405657431589063129731223003307734739183107698336583767683120885606504376728613323683953943214717373192154040868677043463897275169211115926539852410102409404482216944545966472445240620296070238641340487566706515014207170081732524978609153764702327181294581555636486447201892209400273463491154480023895305112407275973021238278190635584673564712999459668409524934506071265484762640138040983491041194649301502935515030855636312930029305539726934192342471427507443725121061122011866637287043770287138180294365671507684014044508970741978270385027420172001295400563622067639133840589882260875305740500319014862539018005261362022263409910942903031464275630666538997910957067503248276341354210704889681453769284876156196129201735620172531129869180260262372321216839020121815270339083510116632381291888048868542847659421589695717132254494848252777609310145294485358830046141198156701392602216961231491669039717519098713133680307430305250475830295417166820195322043480921911747546687437409120024355943330416572987310537335729204640098429927267989831971974174902226210236047471807542670976621845721387784468326622112767967522410940048174521758081060560576472524923523496561105185489686142148595351267633459925601785382079627629744634289120410150035744660488696454528373815223865768241943024061289436687858767968024716735486857755204842672953274282930648458472870390570924867532213826019966187996118389790461896628742995067092388712333225166321179546922855735578035867412474672353393953334733996651062396994904541601790476359721438134676580854974871141600183733584890922041536943103676158996955374970564504890876997643075906810981470784501536219388813451770865423198994757148747224477601246134705715193569475684186659265151670836377148671556205891686781407621836030773039604174422729226419278650652457906080126294188150752908321704594751666526231402645479434646872503380591259171355513581993669540371241777182111600763061977835738100069911769553873957990232893102771636444848097633037246261696846403268415688065680744072677385492746959930901408192074430471975152139117177765782453650656275966213996773270410002692924811476626268615512074220050834273150801152445429836483812925689705464283031357623396514685906483111369801395400057572221978849950975880167524995584299552044800953617863917652137483317504874254930366513606719960588221123396290970445448346641169430568463938757003451221352424474173774057162287784423366829747647624150306943126203204483881017167391156453228751571171128162581409682192017916051178262937534710120342124366784568479208261774024651964843696926971320982962245259195289966725871805155137464574187534793298113481375870309499208473271301031111193381071880067926871159160763987690614185167881747451721326632630616733722347837962202824388203275387300010726549033672758791655470008930654516404409706438761457020863910958145428744040782856823621844711881500683575398737686550695487731817516276344941774526961718512395488398196581517782188052491531094668939670290191829103004793436623339153886945753130949299603353969407000815048273436733879570728513500622044243222935833659878989769514391935113813835008365588436322465419538993507616319173019565354302796860592458998032241205211713497351327478787548025526140107140638828272577207350881002099467690104641189249110806952706543546410700357538814290374785549873599365332791921390156410006912897930733261270326330522203349419181974133113298774053455396990954675212794926412722248096377402971575964759847188278206197486545521248952532682520894765017272111582778150248702441579566119986571118968409184997148058014435616081585744407243513276623134830316450241942525862346871702377995788487148818220072080283672039447605755710577480124962812554271938552516063236318007710329360955545551558889681230290289193466720753331578859085924317676242265296822955112846527008720413332046319930847214850928504187464294885279930299454684977372421674509822369496727189572806919230029250407751783635062706053173920673585959202006891861303924217841185841829638582518340094762110377684989776096935864143342359965573061423790557316640770087910965990896008278370373779954244493336815885632982922976648772519115205654092551277390540028897054965902416250821133141422086988377438981098184001528035650607895004907442970492003307636932884947241032128339907618919634132543330653226883400946038872886754651862549231787657710775221332716986844650773565850864189045305224216918319958239555212295030833319834495675156757577069973345378385596548947449707060019000325217727696762224242324986110159498646431849782069262946826891432237306924948092767820836125413308591272935136097309598397161990175204937906748644107236603407889300873810912298574289704821195427065165031087904368404496945873192870294430907880579490877503866031443055828129078277073506397747468134549529897255134383197860885476310534159429472232005848077734448647453410119537873650637954296925774868846534298673253258394834563764429102212759814409668382982887011429052039097523310705459049279605164816376313863017056975070410751486669699365697712850122873461034109162625554290391283380281877315311723960570622426547672917463853507519424107037964935093717850704504131370637831969770809376697900738305043242209285686822957307894837603568649251227289765855970005660148660525801541895696026773782699191114921148382138356813961313795832848121596160833558691465336999006802633410167231892323067939821584740602665097272402690551826008728630552497775484257502867846766263582471512050609290473301012619250223450394500587034918622774571339079032207184935407180241834553886139413518196673095948620103650372988147154785376749376125217837301946309011762713077175829399919477687093556136009247198644363308153307424855544148601610557153964544392371978242728920800135821243357370466068829178442392344641446039947747880898766770364265816647525291306280885816118817562103845524080666416346441255591426360729922490061356443637055208801066608132639767656620473955539008196139112036544497089172735344979164627897770029654224259812818560540929050437868061944414622818537109665752811926977554078002832180838645513993440697551866977393108266543599591051698030208269817250243979114916011201346183062253455640801161014976142079773513167628090553517532001524423624874741290669161197579370724216300959118773063376522654040178414247233771636772822002449835176536987398122055873541641759213369202411435323851414416646771136072160991357689895433731422084453680669962818366616043066604277682358948231050520979026432852832403188241206710072357888795237783095520415029387533624244771489032847712402427501763436132499592464644687609547407287018902255155212170166450433314101394029733895521642061398307146430241518008495643740640245873963789081055712342237676142854841801979007292707668743704898031695388686926050431102826441821765592164216115696833219051386200036314300221108572567773014200958923732549370543547392909672903793996460459678894429570820525218971952115780865964823934870733538430503335729946277565202015928979742792152862021365792103834744256934503965309139296571927393498590137334552478298831654222092585115568952700726672520295212822806838340289820370257659575026435639126586561477073686626479849336265606338947716574322325172239019037482967799963417783315898517147652885505456875577224255858336569941115976597496815746460688165801833612935827143625666532186768133298872900752424982737790653404998323365033726368846293714466995844376036997999406200727584290213465089498301292136729335349080295059949158701796505077685618870455718764272455775168271378848237115668129683525773304737367859512552167896971916848237020540584723286221347182469441118447998295638874549041229601943808920674845934934205995776518866593043298521187943899002483187917602830051315468186243023742444030155129672598467541627051885177468614176498999966384209556624541576764716997801195442326184384994635777742372139117698950624276995694003996805687352217911140789717106959168221787785657555806030977986674224018815041105184876639619802152501145597774371365989531521365663747909886386663621503581868708905170562820634047787172813850859182638427413915463386184047697912225855483941877614060939093142762416767222814805610735127350554234077163371250779722927418194840517329316863061903684282571534061778362657987538833852902435008149583090724065552365275849572596481300228337772310938332398064340953964245914379725147549152555060693351202004419849100627965938044061777814556412961373990423983182499168203918065886057117579894478777830503757440743431291803060842800573225464058743343537134856626955007175785981876074830050847291273650726082394529591122784460164228484216811168431301188030570392615650855807038232461372864666678985091692173654798774490572569522588963274661075266362774427999195989915890797816102371013156174532189867963474851671120336239438257142505981311191754087439071390272081984740412530759386027835773537179235616628863053587739371699352922341117781375402387483808337294144093138258952510887523131487414005756278213785378303511842156992433854085246036721408687974225239824655281897024178898535473768625618811271339521610411027509905846534542442810241220238065128153177286081541888047359916643878755382096471296472965645438889934630131839325331050796409558568717728306472819295870962969533924513777965447921466464295334785788456126618534452863253082112949221142802817456872497445194868926647375014263354847796564511802193105776789645599074968708810979102123279904351733622608929249315899221726025887741995712508228454755856266904721452447034263124723229707892028001432231756189058260083465860178526388349587100652010935063188374221961053740028827673254795578449847198833077073535714471051760112659463432761363317238412831586291723056296026561977351532242963519051617015623964141399425370481426663074499965080090852188815231679659684417524656173543734692045585055119538741185582913978700336303805807300886075060697210598960396572587832655657066413314673210907235394504189291224108780121065595557114963579610484359897377611435153378239203194616890479893980633249126135948391148367644811998684934881329858447887079366043292381166497111425319336644255765790784851688820256791673239411037924290171003663120164747005373052895213475958460494386256397258798377836265044136705631524656202169153930326809203170726742123121309982972822328288159847624377582556231309305720019013842844633934703570387241850626374047739122819011046467133612312554914618757492019253772623198189269994918823488344971963953523757889568090564906756254747294535661115084181444027459653564378106290320442008428240548212903117628797899333641640960589303259829924251599578048801005539039729547829064312774110594335592688581751544509420591512755813036942757768182710871372165016002404727331993302878734656462218365045154646867263059851683972608096935966125969061374328167420288998951671357330096795116434632454445308725907596274189099333706056653386732124824405822601126836863724540559147735059551549110129109038287383239760246908004957757935371732831783497059514836092983299162399557587572533002610475237693898114188320854547417596309189598403757962973848699647519970103933688939601007399288312523817513093565578834356341889510734820093462599012408456248328616154215363752533934915376681951069455377358375966867859823167367892291136077022484907789254907799695254757155202637998516604414588594595169738546485627742858927172362982556309597677683320286966285266020251513599493041796465043586817617146787220441054673920633170295860654923599889966067070550585503852471498699091556560072054516104543599856845671246305129644105492082038147947439313744761018458214242444668742881867070023043096752266813778475402122157366290925852767919479109384218358974823998059247290312861080785537994740531826380098942137496254397145789381670459981996503493834641026821942062675949600033871303120080232074804044072787014599892920740837227989551840581267400477852261525417608650835607465132400810550269620743912036483014501311581922273788380521765019020637953911328860915711710788827940351643950209719400874140201594147482466740348460397624096996141546411969922926918625050392496769320142667876872553507040774352907642172339512580792100833075055566544566371808380278966331945500814535810659472991348946630878665789419391565712029797437083757343498493898625434304438999685944208118730573664406666535851035122674115461888385142639353294066069442335524564142321286676494006332962687008282767666965639661113085737249374497233738514123417931782816277933016603936191759045397534464537082303774059895902984330068318436400094433071687443531090589098734812356561543358013252332470385233450445403608858904274931551609323638619466533481472235619657073950652444148047846969853325896702862290084214470201413859264314190236077124296079916374719740809222853700510195266658413095041400618940867798939993904895273551028467908679073925403661734742639725125174071845033842212194667678731942797177910115788722364267981312408878284049361807509318061929738317940477111160792266631853250995883737460308302311652683072012796904669567730798278182196455073902563295932384814600287209592077240698866422718283462900254713722472371737831071491438091676945539217431567287987707614777154267065867673056514239232596301865158083781519360440500281915997393271064133200229092709427151826248828206328764694747041784887468651334497318850360924413266572315015129630558506751617865102036425628017841085781332894863108085006845520839901340722582895225103686154808170706760653354370148984021350745464917061776205684140224661531738747921453300939770460071038515681217346087869095540010452667755500915180680996819427490329148832466899007880922854804695191820018014532751572722241045989904544386421186474839582931385860468038788006404352826835545601189783432788079327055516658794700789271585989656390648837877338446191629601288447031837802771262601569458584463640052104113262115299528717133002011428759829831357115260603302569076256711470663601554653568697800667940802770729657022870285424915110279398751447077442471435067869938186505765026779566764773017439396397943059638508941169641414681278920836219416103385208694191494151233611870210059137636150457224223514250299946431058575934615187112818678738896817938901099642837498773002873218069163185352681669364316618243888552244263757229258238678371569222868638575273908864894879491227686193812213381884620493864226417705078668624841294918525987795516741779005826692569628938317499064887174667879951032867181537844663229604867111464622035010700633865645530579682326674261344367006227958647051918799368705811667598377293311855929358382291593090723327633896265710808472055547446243315809469817104467677686608422806584016546771445385876433418265225449185723193143848730663642143162463280464363845705012162640715009095119435577172743335141495761155377368205395958262854813349644005240526979914635410902689701913791051216185044164504767487187583759178353517824447367444933766124465453220182133706659212714198584920525813572118344568097392809636086803936762041859697691506673106879732753006411788756037442849171706068030959833333264732034164768976785643833622871681249319422195772425318441687912788962827137617377268920028962356251803323033207879262363553002641477417078532772017964746055555267873330017682109119087733294373291453759319634846832538367410050656401794096115492574178292368067933977993382182623514160779670377228802727592438030393431002992435577461517082794691250370405101995495196605926713838050197652036668163085482182303281250063895946049353267495727644550639606335967538251280619701262434702262375921326178934355888785197789202592459451859715237930323201802898345152545130741630712381340716875491389672713463279976241205934871203461875673884387642962752281545393846778953452982970323140291496094498787569156947982209296034330285230042059509734198533252344664480161488926939464890960218556850969971824970164898518682990514923964555000747429443448031708501230273299818754633889843718844536604238853715000187137245491398628653409858987691067033897570013849206944497980745758223456085784801057068079003521438726091883783415976119799310313065146175780610979037847247079025003624511969475827138140722306140380643056342434144792193156335495175959431587262421367117925281101855439602796973867834728713853763788107598495272707136605179698937540178748084750018250311006775101328984299553847367602272391333231273827234872714994079476568406686943939637148108391261934989394097201720691591856415983701780996175113301492831959864593080184917004682250664877730958703241205920490180213382814779980297898929399749271462455177492926002744255169706178322509168680063568462580742577306803723415376846835222905136309192613050768926835106522744825484526860820538997300861013377598676739719783982797831304705463274309995620827419903691937090227031326422185215766822963425392402548044182545761833139440504131785893955822810678628354095717609379079794927700795568389830487503963230738505292909947658169002135807804143557251637703263179169606588545397464205585764502924088590846987398080833692568764305319944735963471847661571604129316595882133988580824900959633837609917181277080720849571958244081631973938591402705016843623848025537365955075578823320323456744618185840975409315722020550054838231172134533381031752654673204533461647905772514632258414074754660682267981135487016671752310419138146928191414528915897115516766465866680445069864456316037859638644075144423379721519253092109237564432732600526984533689030619750944297663091197676572857894015381382839269453000656094503058713331833651295126997125954022838134272128781903257933824169709263567594111168843317885266564778887328544319395421509972537070084317745109186583736712816676081713179492224726834655108070879211916820473742345702663685723462911809577511849280872261032075574028463280212078869153188870099578491666614774717735688030707913655677775354357694139731024385163783379464591147079003593301535087994437810717712490150709021186903099697037650476083310120145151478982366235364828634521125332543576134669666514407019620724897146629290223666198787757674014302716492837347606913799915951903040334235185978129863640645888999650348535104064940728681099747704419373968016438913695809267468275558307370324083795113374401821531995757103597666179711847317824489617170562799109696165314570559912731968346032855308862337036541646012071352067964492303815340498132431715036439930476495763349119470292207474650226075592562409545633828772216939635832297412632465512989315611229018547655317699820982599619924138600826794381760938451138898454451487679496636023089776909337694230549717236912852117141348463422461765301003617107512742240408195105684753771799065528815319797677343619177968327789150883432188125252454828891175601894383121787706920297567168015391561110524682966470987395329416064280220906887776115341854412491926990537923460229544604933797032147331683432177923266022573588824143852755557821073906900958695137512414155288292835364243008859520560024427821515045451717635341106972268551044996767508369858121768119877294270461541306017099734579356221635592015728582143801595743177026607712218989198697101048793555301694878410231488282930271195476674172648671026802013440121678813631946597218613667195674485767180598669223702222404404801766481769803631978054231447056223718571625084163210767696121200086672704669373627786913903798645645692146801051530665105371224424614076065674203785641624825956728147592047060512581224150822273143699195703231212875556471526361654879303614589147919742627975199111065018581948335254054803805400726979043385013902946849905571878625482653948740808124636336410998475278641260966808957886654292857572612950209867750214806245988453538862776897850501044717349144467474794955559687662414395130971781991860371036872562805951852958050322872535574479428935468359256881920959929562139418677396147621945062995748489218034992129756039343800207125504712211394166642852990344229187123329006504619374487177864683939689685543155416354173045488436237166078401098201136794323086261227918264377745898154972884894337547668796425330327633473876692693881019708077402944702097553853474966416905064647718861467054700071142129934973667583349996438325934393596805322771001644675640520390130353412962800875711810728087108750715989241207525453058368638586390145246587429706448404383626319439806239964444470237992726920049786635827698493351074876896479072227663439582697132705146966647132770403714339140715387634599320281992944978550568670385932100760668833195412429833908236655949806952422762329540272775099142247466625930163231200872627232552869906327484068289539697771144053370933909881127291311053360955711828569332584554709131275545913778323321991779856493135925098570439568313043242894683003614374954014813517350301830310180485619487711170702038896685497826253817874541860694984584565102146937831440170530605603693254822530987585736799209918632676634739484077239223751315737480091893074199598182000019181747426418943413360245700853502657992570048492352688210170555789195664040530516387148895950916040077301284201006452008217060048329613817951088186052099532595772941821261203446464564125051762688087524329690590629535267302583036051800320763065749567168060503482479573374065786171438589250139726338665059399967108232884473340486372580191774698030200126875017328826380661873013921595578763628504853680672746471759527228683339563851116379425115652045555045287787544132458513339460301069809934003299673681342820594829782623891202396640617321982771905918138404535183198785232704242799318312862821036439410980560096087368347687822866235438445189015619899196443777463691410711687298102072904509794563686401506980212752052619744184086403068511377796734926112570430161934895910924751859965658239863629575884899415126272943541167145697551217917069675547333718707314530994040223906056065335287694637909597627899304202824016493797057826916990094154098673346608172375243379941408702661496788143253565392213377125261738350441812885029562596293061094580786853812909037554615958060411839865019914740581528397334583833305923773229088030790259800553839860734794342351823340793573073042732336619514342424944666147381624191585825041212319939433096104943052073182277555630930253730202672098518743315652870948979632122145254419859493888887174616445279791104754324052859076028074198353794704325382480832571968668966842206977179232740337263065053999996545450145551667035155059877736204040451995228237080842949088981338441011653161251851238333773915310438949222523338907149650751157144230481581104624744616264625089984964843245581791030076161671922706082067620819478395722028753843495937503337257560932213760464185464930738511857020866907129628541911426764425523436842900070397716914316408402665691694478238693650234055056621057721927441519906125650517725102439325581779042371824965227322203511871819449203512619970833196851998316802860564477431155562627734329974427635603450583988378295545950194309951625180740774700580777505956182911371206459279806262689542551359421773906623210427100667503010779553797589345083842700899789910338023728988176632839029528550929683271476121787504670144412146189962781985639980811409615598934351620870528578884396188900377894545769480644804787468047218301625345984302597520580890214564753019479982860820231006690105900550419410400753298325654053808298711779415425834411149255151079142164353989997345639983651371840542365889315340513010671818325248609640516635476702249298022538661523493133516008561008231433893173620154937548697024295138541097688689281698445262652063241131808129592771283058656729076657293147935691821018930764592838768758722466279130953174656675882033999353666283613403657082274379595623699282015579779088846022095068816094041504403659074255552075695854960387815318713930198902351126660638192112291975201450766437742625376750277850752321985004614727466407000566525072581736767876014678900218310465242548382654346939621007061498180666528553450190432912786977220655881293325255121000716337038473963497450132416412543408461120414375085214756655805442125101137881531973689040583454863500921065095479512522527520031663189667450691634096847565194628522272201541306790147809305280960391552958567766615881632655508808788685524249627325487627598356971818102999083866021397222430238366438922706107361641287583942896660287664982236105195591564970204223719093221566511173347967027859198391243335389626229232916276202118680294230421383464503246199445786011137943492141406592999523418238586874904649112561560347264331419456610997503029265469490421943780586895857145891657135700531545717899846897914119816094368224930600263119922683562202429108201428456684143062344937098470156332737024804308657052983669690190205788080078581172943537430206403190470315058759456906870000700113661396427429815398621928489420450950205011362925632417879053887745691082174928736544886264372889489274180769125706319305059443179350454028622697865401943802083294744434393306112441583179549016005735656450832971103514005641490707592033643062262654997908151783745582657237548584063505866673340213938691186837765919516497131860942924040763304978999000745313543689975453033320685617744540628398405769165170136231351218343018011174075992795337286648543790860672199650028838463007305017788189805576198766000545393716864593281413195807886764533235426756358862491867702773936259634040722320376565102441031900943264712612697172312683435704085228037508088885615324517080957007469443603843062869317834308993723504999394864080294971020014158579504420575474121329957166195645074132992097981665100045417922140771237684854499091194550696244935554606876481376613213533680659033719747725580081511816807730276350025514900451056702643410140346946845146478164594083774101083582431573853458090930505862423010133139061010872657438691934894174568291422199110933951183095268534173036444697750544873588412577014599712483037515408265972148088736612449966083570033371870713720661821610942084031323346966171156138739771053508685206012544577027919341267297177227307940209289041495840013267576046620431530854976763216358589773057413912354690869569251124482827836757172086459244667190372994533856426870653726319404693921649016686935663931098879160671985877971688628691684292729783656872465736418719209924209438811562081435515512317020188078734587659329557166250496668565038794171372322654230969433598243809481530406005886865593752701232847742690868700284392370065647330305636461337427575021191184731254077196447319893468978198153185097972351002769150968257427544257993945589397457285978935658803720422689190526770872895993064623616284605821294080571477374696002963618500519091743198343324269579475340007011215170652382977536615822227083467863991261797034736717240778514303975919991361348084940776904482988894688000643272374330665164272289872871428593043608048286243094007501792524988084275038440882197627137834437031492069881117051236171210195006401095451955354022294609262291949811527736839220456277318854687584281412116010532535324902958929945548577981686729704389666377715084287048337616646609287683143426311290429035502972776427085313532808841628823594613098036408994948164452923534042146454159879017629941835824438555463924030533631065781500960159907205424563292593085212125769004244395285245779976675891425609249604428641172576459336207600921119068732237973926063865856340527833916796515953928855050634221988115750101379757448457409734667752806801031835794512207271129945828751740602182592597881424055750564850210109748354345368379985400274572921789476517007098752550371530143685858505049895713010739177653229843077968049483534490512000997055107125726757787468062627458890403266230542560784838010720539140672343827666647971319215831649588250065281378682877754238918104328924282907494299786697468553800408375524847387298540017156940484718767714642743398711094527216412545771121038581651063066892265096990314013472243776066699158279422435423774283714528997493071901447540859692028562955917692526602294346109937737029554460620414618956835990110900478667513930295587289795171036293224933808039648552051785893369286212439378680820174680242696518636459573125810306414421056331115254581368692844746479491898367142062163774506820253238532655920640174962149864844411017276155008979617193332012980422297719690194894290852733170920904038300930742410671732866939989694941565369067808322020714618163810676043667520943037683342025550228881561567884333746833567074801859326335079471055980640430529669480546727810158717327163391981713986602072058068491600891699401113940210836127619113372076078921632070811927465810368628932758047704685662656153231130372448529852184281380139705211076485025046182236066456362122979702487244595269929561061232493225415764485419957952072071765326722414125860035626959258169736297306552246741051642733272461479002981702168857969214179905983058556599223951041514070019954856910176488539867359972161156648454463807923099962055861478914920336035036670448391459895579024468535958777200303422899122383222201026123255825797965490555929873234900210644846781804720063624596118410510906600112116182322749285428575350109294828595270798197272812141531258603724710736823344236412357973150085464723004915974930606338086037159116590514992633172952819909264580777890896980984426478927834360817153366857318843183740918676456229646143810869046558686726154548418574451122333256600682296979818578231903617468296876172302824611304996696625749307486583248908386298530593355759023456896756511129814754209014846230548205560725602509716668414495577061654714054203940170739580539761918549014979564769746312936979343654779102483314789807326012051405371055298981645492156539296931066636104772850291160917093398077790591326386738577251034558648481833314697232570055930026947018230692036587942818764139418712920790180126852735548541213594154044458244512646412420615022427484867432208667767192257068054910866485344784283108107414140793035167170547682990319934139902239084562584013192457726776601653950508366666549806788263994351128711665888853397685964754280920569866631371377981123103490888741314032050462693738971869193527891698224012781682926231580823241998572487353943958524433032654956795204842775890893019038378454241247882203545065052742650316086712254659688590036284805413235623863945725605715341880729503669201627895248349201150125259044377915084679130908116503333141013997123536961528169884435428586726385022501102143735791021507209762235023789226933925831614144060969208123652563279397769339502078458001934965267186364760057419068072629919023774930274291279045980764638445594757145965431023454280777513776008312403031626976586891515033539343826868103918709033907837703370248565433680061323274579556269331583795880321170086086373298378660851821271499443352877591878691844496919412075520270707253669084830983162869250053412296558674139053248775251335849532921351670924286635842574187744591539121230980834486900138895875150031459497205271004342378886733494291505699392647672698369303858369633537686249955117517090007366154389604882570352240369642026405225534190598409529653077794008100249845302351361388360048159215803420565946110086195181216406255454770061930739657913955041383699138483170132975054505111320535822399112212722991724198614961125649675593292811189723288316774458289938915930620033785431501462158985421078125811737102060763302159866081431494525717047517860448279010978184531563125603235987117549469570597809927200673030205991167202446068953320238993608070305899317591986562551820963552968924577607025962907588656955939321233800336205611030643570709835836774090196714076240011892525885344426922802015048821184753169989952067232400599292598230425137698732664426324009172243653447456534055375462753890837108061623986749452460658816295903513214879708107372544866405170730247038893996690337106989313731770936667080424411088518861472205159440331670397853139001664005900012865808310853850667073312958477636921947326610966830243976058102717706665626252275236794459147910415038728707040130106405809326541196043300921893673780172139355759804278743184150388031741977089536378523273075155018286554277194948822531104401595822661841124570590765836430556241599237604222793745655270910764162402174037106631459580386519656252267271000190006907673245122873043066107062814936716951035542297214271058339539858687818235148736813790525613589447634903708631927485692985802263477953399707801179895520712804715803393643490945737085925808623649377040237474180582530358561723189163165029761180208147509337074753364213864600788629836886668149196622209360363933262929764483569712991831850363955142087041346496095569649351775319798710839120349449955211279672143449865342418144126314870345444382604994383731872337566536156770797059031131290633072022325194498905708392598628516834929049960923145039012026639391571039782769800622517515092668239876487572556510314713597214281691059051417848691707074771937966304036485144881119829211715383093975585678152365079380184200293905584800656555298588347340550847258447025774317627781476662389710388524296076043658765200490066582909252238962797324447368531484590213723512067478554083145287008901799604242144274620072125972060633097746123513972811252461755828949768025756127961791923373937547875190973985893453469381513737982231656801374394460774171171750311087844473242935984148815104113195632926726360981551291213078122970068808735526529033972172105036177996855241757047797259664704367254580178859603340126538390552273700346252893004138291479842691911919547099776622419363560976394186550461568688038926949006148767721148467484586315225027997306180881363598705848685025113758140857255737368168189182843478969509624765143633529532594069475055376240768302690622309110661848169694603775328901678978362317280737922076195480134695609962943407587179695563245308152864214432266753232914327871071185508067352413796155716830186473953096415652423417998656705915593666484586644785823536155110948615864742888827730301882470896556955629569829449082402176266305609586339155322420767958987981748921070117629582262351973975580790825577160632679278736138093842538488605119534901606976034250581920548159042046517888048447857758265004442561277415153029476287109865212609514307575269916112582355633773669947260344726729041772512099609022081744278079897861431163189705050366806983323055550871400911474189089324312655530161977956075506604576356267645992714477148217177142950026010290565361195717319136377502548466209355107462894159819336088816454645307276052426441326400173051929788510343221342895815780627193088219474621075397019494821273473944484990243592935027240932918756635636037460177117692668884948701627582009893647462675389643964872499058699166494250854592462013881256785569276010207735080316323017689868515814087302341233831743677647667551598507545719043828607677894762635032526829951925483928567635078800575650566494784916178286787510498920512861692263108954659476464341525070700614828237151999568448072201042857715120862870987122943129296640745965936835644965649511841029421605050514854259914282309394161993820834431408618538541491501255696548151783111318368384376807312725940726791911435545136512165487032051522863271070825909677464721534365560602829694465763279177180594651776674921357651825212766171132321601549427861113489851976743428307879357269412263690572512065748127683148466190146167484463230013583645524417155371590639195834228100396538611776463009990569177570492310777353244168158941701948648964873019929100487753799259475886504799975758420676091543153118317287467238986975051357208521749634750617192966706463645872307390337809478620342556757930915382876889046921017520389417843745702021365231344868582292337426653347465750354568068382946077803672146510541999636961975042805504672535095553648063174799633534434151922564908622094214089644659392471403455041522119439568911761484167073477698482114548331919221248610854468463001973178034120965635432292969901595449390535907367555203570144868201558542338185563324107607503173316161001975328703437559299156202874802350194884131989338985655932609570002293408961103340665399449359621091793120797680258068655252165393224566888008272264988046036525637262934448806652987825963801732026847394925788627213907313812145465138322775305353271875716709381193436080642914029483820149158784839288259707246191468007294710065291439119141297429139611461651526262934390099278661206920693371748574415642746287726900197285241802086274736032256848052996844090056115907704255940374096100571802182412176646622511068757302821870607199523971250813618565219694848923153552844057601132747872303778881664016722932517649784102143269694817826820377253417937380018220862089094479360159206115472426843974858047106873878317435781034742370108108443434191094559455897690504227631084684400471805325804649821553008923174802787434974975401258765485533287865886226710151795249298873329610811960502682134641753776383459485783430067218518295742417539994517916799134506795390573551989857455042562887583984778928658142552821137080941956625366799798571797147990233236360652337533664485400853176250136974848040828438935285465342716610262799602279685525651545841252611179577405897953884378863897365519689405689867131666171810880557991883759493237434639673865141862602821281508709519999658750952804041893468450773298993931579796567112616127096106928463132844227543395260402331756195608691579446849778662284464226353774399019070290779183879057468635499981349832504615140637288044433071202105486113746785945857039701679317024286873608983561491417584095812713954796579259780995519951036165625197191225055071047927822506531669344986311444432290608104233215624722818902912976182772308754196698362593172550055686335623153640628684113449461067711772857772526310636895151132344444188133443423302968376039598281016867309356177395053595314056704404478822170883526239644198538072804643163141326135262343493977994760860099781950229370776828062168307962392757683233209983487679224866595068442224535060203560055595901878912840001909907572297895578243537031067608461018434712702965191714573734420092900025421855567373834029758531859917680156418429769164141577952523374079590891409414520213761156219941058829808406875039669559419098454516269492116230238089728953235767113750520902783841774967857792212677500247881550304593166389892886623120414756670496564310841178608665009100715000041042262744397067892887735892747629711995410310266322836216611159190962913526491986337288589682873947320419969914530027629204861949127218600132322342139801443020760078719669934470009021314855101297444645107401173783055612473667164166740335518196830676815773698741681928605387348901649536955287196082263854668467527947642187544470530195047605816882390966384302998289287097686353362494459107962507313166093353880834700826539477665506569411315044631575956951548830069447018777529539768455841702541964940941860512605919120630754788869232042081467932923718104429059697321719944890955682977465336654119590379489399473348674593827841705840336691057080509590545925069883747546485814993940395702515063946810289834950084062922518578160159036262817771358057015617874163643610347611693489148915859777712118354197785065927804574390240399799174269270803405424538651489051456986949172900545472840213011743736311001739210328197409861608478153679471331190932857922746964106681819598182046097860753566776350077223785073293483583581842260755236538631281839404247986457302722268636667995649341979323014214986632904378657084799166977142631020770464952231636591018311526331427000582565575645646740805564922777675478630055243608198194604942513474941218084912015081680736473674567533412521412230568937331311059548140821188437417987131078234500643080975337352674779235678286477498911774127633016121154735470657985937523494458864818324555995353991891997653366414043249753927093258565419549232020342566180612746860253222040571773538169182251226035083553113896465426200964924143592026589046757329584945021660182009460371401729524227895007692540377145787158425367679743190350554477687207841742348644962989472009213548365523029173043736591009129196953579581841072945829902789772537103990129837614339697281920863041706522609935795345989110360977392564361792630232781917360769472295622536230571780663015256216414019824037834312467673476087504202827006340445004698490020361132126091562263886101942715276501427667245964628679704350506236762899721248425217133906813529084200960896985609814280322499378910317043856745076710054271665005513947174245046251184889069372688103634622617482611428007138998837387446874319519675731471580861008767686080589560550775635249228277632789217443261936091764803906156428284219292231690368658429804826276073065511249297149099503488034859564505339379371240533222707250421822423400782610133976589869372919946710539528179518398427049566338747076721342307661233915402371079660413057548521354907255451598921973248331416256416310383990053931193135910940876576424707545285715514250281632992703049656583548851919067549429306060123988192200089385217675887295586641420500376501861305308605208168309282260087998241040861450101595964394064689279184928771887462704690897542125617557546953940874693541214739958463444979247758992506430920011416032770125550197674158185102735331770692380379154386159539501891723815326152717266675569825155347388235376671003887861347872682080601229313723162013889425740636235410360476615649337816425367876239060659150264542420514861297559517036732572323547013133694574224657836280995014884007186064934435790457151098685295415591305329201500707873956551251785581587727331689318037958316999487903826983216500089003541734466602118842945953913930228914850311737058634534850939994363224923739284022228450813261101752384485120655892796421543685849413481560836744778751629216323143687611603019135862304503534149415106401323699777545925214072379186373429030648278613075713834493340177227776499160722556019777830415436375959938526415575518261224525042766434795116265435436250320239860309086250091758876127489797040223067845618804571705839775662995540171366732737148648387291506949193864151121415115166242544981934412343669073518172638869428560122353899960234451639528001813977179104957913946366705628321284131334134643685903508263249822215299211609007368162567010957573353856728435508706016451048613882958721857060330541464225316851274082316631755986056173592691915685100516286210225950482512480949951692449941532063415137539127411203570710178346307814907118122544273048703714032951329177782686492378714858447609062481152416332472046219036652032241922464186844950629024148958905958328556187945032137266020890116841123507799292404802191177294323068958253739788496889898549095609844316258476457699301340910406440313692394980565168011239599697822497365957970143229767102137291332687305298094286773340655552160533840232337217534715555934643932567619325242476551461729919717422144792398493483288371979136857785938193126484156058159908731065562107932278567885714072561207401926206201742204076463364108865765735267305788001746126027444826499493595007585398665321468427058101595744063290739326586504657149348408515366988069441808695449565185008322959291745381789567649883284802231501357108745891780862199956353143790165694726256175757161394198206449705880818828121062858577272389016988597427452111569400728540266729698837695183924548788033688535761671988652096477038796661917252747786079174187174881649609732618042768579598247338201748692820331441348961223826070420223376466450012462333984265470190006586770748050010731617244181393606668459842957914881186406375327842386623973507348761020056668994020585285496069753311108792908059026133906086670237945570301676353436440740804838383864413324494483492138157279489131753060548923615609769564229740497346119261658916082775233660399340947206313900509488429694280455282885128284977294640929996123983238787373619211536871775518337122051430775484583174499768368108014105164546154875056806321533589301538031029650870022419726206557750216205651589550848068110813022563685319490866459266745329591505135467654894500068568193385420515926630221569696694260522254910208730918532940141271955848710012549402689898177495239388181410892913388140476791703582836187830265588880541698814798286008497180768513873863459188947963693668773362326813624965177765341051421099335002962560276145597260225892759382166798494843310415264703613008903194418447956788671292372241056885886954241183863795866522918890546032435813613043438347839636757522987785494043258941744442118052476681221011491474697582269108213059847390434987926113153045927234096571430384118256593005337434805400986242627980183316615055557956726114434147127631293200200058774322665352414505746327826719486463066618712761034080118285270187542348253692843805982802754152442708223762935319253486642074804667751130292721294469173975201219306227220318254136180525404146601336411226997221796418872805709131031697572433672894351795776887578652165950040487337986480909102365176352750242208126096233472452609733398426141747878166228627035552451175415298160521371666189831524773908447367619224884668975363649469423179865759315624509940728978833766094466382318888734523965821134057163778178810971375517173909743081984649908988893637933859421840125234514062936977566246731473641165727956414245178531927375923434500603804283410662730534237684835865726162685202219042081103243907554925800484960486432007329479157833527307464891071151340811753725204616838325986945813206270496213154476396801941025665413455138855655020594728051284899645022439825090078851262066733199179636592034779508439329759366366748730455164917744923415088267301113795861159911781286105915355653302070136720970898375598954915012838290432854358784698860899414116653236635583089047992826769683520513196079506831763445400864031532506536116037245443102830846498335878234475988932248376060664466704423412141667862228073968136112769271519197835811707498990008121858788247383177191948180697041884903312458671294280043207142088573495502427115313607513065466977648955385024265035774302755742412323162847908623299437856626724176734270179767410404423449706555352546354889979257678403466321727087157649697507218632519167451995093838580271731338219237275463007541522928512953543272620375523634136321805178087508212868493276867867178383798791404328708889207999830800259524581081901643205409789879805205379587452493712205857445476949479211957473110137519402026280573106724177771238250961471153553070181727588445863105063979356664790209783033460772225987816610922184498132349376753034599629276134176226312717457344932736341611886123162540977157466765323585660054465111360152071357410700070424592151260019526661814954287844310466045091315877509107374688480636767322121320993608149774621531090686183564945873888484288607661727882675178946356633844289473086067800941061215041258468696351125937587963232628095911816100320341273076191036124998457644698091937060926911736675879709820718714814831668341882618379980117463542076519695909594517134030243127239567167798858158777268975845312354769044596840159809254842743890606641918095952364211283530636377126401869039642113001313130683811202713687384054604787644371924022894142269878457336525896917389009583400198192166117903335998507392075398047225985845343253125775338020693060007671464063342690008776219291663440036314668003163548257179402036993823952056364712005416048569281424398615883488814204086180615018382341426011117452870693223181582647508280807646194095936356893214182305008850825802610911876860852402508571101008211304067907750643115614251734260934566721209428635175400464054690282120860992867604055194440267154220987589326494556473438466945498821329180606936223243111360938110753079878293949714322312121204172859332171159805665578598603819935570987594873214061695654215911870882420657358860707523963197307668098096977000501994768593953939985677930872904840446933487205558317858633646766980057596605130060058684525971882391502191107374567783999753169426582164585771887744512002380276800557205181617946676991773461228221550783339092785392849090839296739443699457772836837388492983861422953945605274524881671289355664264023107547215915827806982767000682461701300600328824293765570116006931397959390305100750310035747615283445946681082200107535509504350714007307488169223978064196803341734446043839506266697904176649847192533061247897622103191744351529418023834733505554336109269251069402009322624435026428801710153784789780493386774245005859553053870545238577523744306423876171271696957977529099723812539879383177041449668390565732291238667191951143867379585786930278247319216602381791662325872399059337399285439972659237131642357609555910197890792993271041493807141176932949240386733437639009765534949503806904096407026695389544128508663471567140700537474723664042800247617088482001706055134427561571152708762954411459225779770556107158874767599019197625316314991011451789016610433668572026978261024308604100427930230448692968233248807271490403989810815818547938660713793181682579426624698978242932989259171457455561627424909045963242277641863610079217547831907900494388774149700753565971075787549916052985221653789708268426308426385819690908421725638798829752633105794483877951695140960257709711918070249657075682890734528968526053964436896356432181518927607851876586524807937629204133580880653748136339829117035630312363325709375367815325369702449342768776984412756339706353392066277677363579943523701236359003924912044251915430600259916632504802807929825654738852476127858972055757506403067385105134190367885868149804562833200276951090998624528139713644387676122646734326687688324586502554093338444211625539830166661822687966121968701407317192774470964500630450639114161734618851186257006525372974697828968411975998633647318763863272269159799469043683085193424711722163570185148253848672287675628516066433242511715580687219360391398171657457405356272893855991016221138413664479196752967615424887027178842428997368475600648836608050521693974856614719243593339042453690297040467180612156670450862762979196177344092600517364734695726462974613074975942311698710503598979818836575191977105930991797624329474097765724950081287303630518799675991007158466669390299912051945816927516732411141025768801670357499044285516983056919538248776305786157271514158297020646425641908545252286850512732706389528136813189215089606056477240194198293090006979808254258801438489566230804671546463468319590381622409754060520091885114840526503435253840808596686799589887923634861252709721941352188452546798953264768575775508694596188610488181754365557745396143180200209481833716016892277179197705140544152696444533590492765323880569156058229047523790593471446839289420857971714797733323433836806530977980946670269575266736534087838162801356980535160717817491370471421254180127413007656769624848919028606437567953899484280106861827961134142150949721336518734945598999327204409961740800044471694303269573833102823963265352501472576808522271271601771260422986338843141655082325438994691435483250045256246887015191699942440438705023895418953893981288638032418403858126337179307625966203248224610100207291670719003729750701819287556613754773368306162784332512369408079090470257447618285788330139667137151535166833612212208224522441818035433695333098056441413545954454895003447469219164193963045032191024965995931196820024202441866083280428113630010194205831073307206295862010931356808155112909136180173556420259606933945223031951766540319327443472698868978645447036089915922954081019819565077660368768833131680938417517725991099599417423157224701136236363911675924415458265676750079289190611187658174478536546791213698783193102697984852574228081021014466510987095760595631867157188109394658898994540301393407058377849873878009410948214789835081627674368765431826174387511415297942483751589489834589061442864449687823056154122470312119578775794221556522010014323929392614497804042575656174049400139112666667236705240917053881790288790512667761294865019089461730682271070033678984667552175502397905667617701022128806564510566973527114351988250651390237393774645979053545193606032477112043339655382296968155112081606470316319255294847551288751398596069130618842079467197609575081236904055212101843509486553082056130228620254452786186866659266051503168884941033685031497307134606449507714619149854849845366898537731739896261380700745633833645281975514790212463700325757936251152021027624027534124504664799762850949795823693961103011136508077918470178063806361097928899150452831470843824368035830421367264391845061757364770546069497417432237218347519849705921008919032572824358724004261368537539564163770514669371447333046521888439348900942312196472100482051309056624093019193632352201834231902480273514108913029848273888437872737642603357560828612069012304977329999423503532206720344641587555477189787557531725124272048086875214643884749828733054839096526412401143395041986078217528897814163703456773780512657533839919567356588986221682560363711698828398362667093345854856447556695269522111081100943701714373796949177469744314452415310668574424670418216792724490559727085478789206488045445241255849529941608473111749872129188260297238630132359478201867454694216102656062918495305912822786077070228874637379283210957320521941220805608188182550268570933524937520527327638692471760500373309030945370909497887104029839234588345813726332559670824412165907169942692326311852893640105140607104900404553843981863807001976054572595613540129104451769516133623147691401053890058801813114400985602464965161417986154428814724347501942537040138115806503473157099520762770921323428870970266176108669326260663520956745797252145394564632484375483391827238038129663605273219887485036832894204501254604368590402027171978176504468471308956542472808961946655817435797546759279758596105283316526041264202618087276938182646442455523292613219090600507694892886189209075841554042746851634265050373445645114185933621050717215737035363669720056642534378780063399218258209350268248822095748817715546362279090500135719290162780903907254287551850614127058572274847534708508967968466946072771229791651778416508459264233806012294961957332069954877088312512719415986762410762000954170560931764723066591891241676014237487500348681661079665090235788776046950355408915221529226120775933858159665261204295250890633670901009640320849572587983977579218659008259257669928851775638998514715868175802761044292277981398049726125009409445258129497380044335523182520416575929646375943243253894038148275294099259424486193575213999058546703265279496288870713222712380397233211433176879759828079673185349933512334362331890103858862361108570559649114289990001932395125525532765083855056247795206220299229004773420191467464486482463934490722456920198807813113675763800446652063789438519473489819490315810590538318710859017967297755650034302946543570357712907997600070109588770601418125623175656454611298617599895772901850636357017938767036019153587366786518368449476983255780373253638790637337500964837536766586016895255761128673504932389814868447494338581329793796363701749944372376991005907853240569228812631740230783422648647714931525248109654234327734504028525927253013532255946694734051670631935106498770142737678560908714476292533685531299586051093113543589995819523387046408340866322448005222144577123071154033924138390672374055707314155012670416808826325774381229013914019788683020565274436267438318487481476682654002217468764987979246507111638532283182684481232007684743811497254183296814447333072655831088139968805974525617950274529986881199070736931745446299525434256249741021333198456784536812082323662923982357081305995171650804309548937321145593896667043731855682929337899196680192732285994063315840254705588722404501298988306021012443951564749759742954711943799702204328936196361997021275809883956033239583026116309109443058816899884435105157809568490664535519178879416172931895121032811885966069667854005565499657948517310319662156527949780953651106751053483052014914550639154200652191444909430351954789742781843866068819665924417362104222102362633980565052631037142604431016639518109764485393827653766953160682565107820122600731254382987923993900486079795975983401174070457906519190730689208545123084837528719012836534227606203031394424438290980456382716724323067102549033714711467005734677798208624311624942134418716094344427616069997702628140901518920629426994309199168707101323376040430548477618172099681733116943044728653905762779009391289316069486158766827229161269955569736941996664731327729144646758793153652159608598286327981746629770890112745874865374309959068293283941685193549730439867063311514785938509353456354031755888676406550132081136375398737545388860674181713259255463541780150190667830139495381962101231067583613296942961994423464272629763969625249742194321182263111072423156938061652928937845932778912056651895200946042590278375299438363493036586417657864772425077153693478134881352254173731818752891627852263601985204549754164137512264501762255901064505241772474436043374614248909876279846327048694036754415659376654159637600403712769510984813807054254713275737851584452801176259759644458939772900240218018963799930167036995435906397063690213906577007351786832703671143159759894998920045220244647716162874445563652616696366848892873505587265666693597496187099976657279476590138913990331978755104373138702672051094905750904679256696658476698821636611359000547394187869587495705763199872276347892309844684404897308061693701244509913080404623872396297428502765290628022182710180543355023905062541916939061483632149949891258981291002035551881908072388844942668009420067734918189239445564245686819218508670974110419395711760389210290946422434857634659921033314366385854594630008449368679683035981257193273055003843881777625855585519908722414087120792816621138385679839018770209357930233569496058567881681975397924076006660772661511498691929262049137064043015366416262195316312103789806368000658038045626628219821309529850719005938755436002111770064669332805003981460232815299806594593031463979483774099695141546485721063287732290644712505832351032765774647907591890744053329873140503510328545166119640286857590855975424912323425203943075515543480937988997524690355975424545870866449343561378727715119173658723086818369831920734470194165373450470526875948177114091751193608519269174091324095474872821762220757188118315856420330386298951997337294386345291377521104164440664980787969277092397921613806799596933135699960524043089142134227707789548316702000307447479402096338265325651469054182778274131752079795766316988132234273770201194114904413823633393402528437401902984042265995469075858868903202065941762593251041012785012112357448562085696858915755577966805859380679454377831475793729232264981498278812674586457130054397695872414228531909797538878462785954250001527428305253457301431392076131577018566866189795036254614819552517269996919361409563987047070948363411371348090044156905574911290195978575975910034380282517843696131253247373716050074313188315805129767691097070549183245703128451086207998776232630692755544128064689440556781832442627223317371835410521865487450947971526895736136570699609793138802410561540813524108001570604464402171107632162266451824391020874879343063187584614697154890847289680954916334478056633847031517043669326920337593196891728480679200127960746876619009675449295917962905588739175653702085834533419291170670318760583369276641337819462048814367191179244972970712131149477694902679667281467163768893333014339518414733505051627299515054717823993040876039525333211849590844289338854129468503629413236080909907051739028924650667590574978250439636128198071364337048423804976990846768154544603725525800826383168860399128172302657059917394407341288305951899367892626801340487985346434784327653920555096532768143558386931944783307461614403400662443533143339276897243707893939884593550558279792980639572589210760065485064487597443216778959026228861849547247971591028262179909289911508841299115966966681095454061408886195600252980401556825802030864805908194767692210594139676738240216559609231690509430905985855459486674666947501859432641752733034044610578482762498994257821821148876370150114207722438975460447354870460847922083207227352685565349783274794084016179289283643510270765495319841375133063184170865807496472426470238314660147387534046009804841654357067029269665760800414842128715838821355570517057973756712854898349234690497041890577646118064492826976193389188121105072209216245644655536141150710657362319752821140111884677898466472254065406936717485254580099965682300359803611565681030747176205278600411028652194447711965272413390994714759257321143549586597349748348778996531973682355957944736835619420725990735850288430243871203460008695397601420098797540402112936826456850876142422842230362157891376988463100226260783446991427851421794366288976722372548419032041128718871172372321756222458335485981355052125844070388827809115792716809473891871363727982235097451741987348060113000882358286468854415691827530761199407651210204420826444366296706869432274117912053967384800512553276777938163815816361891297113210358948702864284144126605112651134412766937127241711840351342932866814711547778590626571191763079049602623021572571469213771930743020226743053750816850883949967369888173333761351046674536256967351482284074590347282440682889728876024655018358505942837147556836735783935721528826933535361642316405052818079942911657487548223320425058387415147925037279980887006032849280939820146931348110361514177635796272031571377832107420136553814696900124856929630842980551540368481239310334744519420111203084440226798050275301218766617191017720539316232391755957979627988588549951496493727822986993270252325274712814095419171287653317006419717247995872326658994858239081466047948701796541682959776037605945305861210362933848466380826308199980134504682918046750303681582442164329814779808204903354094453678505843548938407068818959277364583974006074525438923598090380069600086124580420065681124457642351325583399706540945726349204593840414525288545301069219212636509917503881890001925125743377797269680244054843245368451168684544592433870764895550768802127984678042789456497803342711505795153386762081549706119247165390949680558072207002669574181101750720306001191388795601744731630488295208341579758704279632835994220480727203027353856358169781164629881485762975225073770055079446237689632629205009968558873907401458340097306192855408152868079945020819769242751307310310324248835842353307681151988466452454848092945342162090304076282896037393865016563326589915202555346829618287565236945636091691120311193225644435767275027080683316401671251017260942334946835463423700463461413706539446820340066420734973163907612157248909088902735723300993800225754320604301081719767887976952742677578416351651253665496976858684951255666162453528498358512242993931469076840216591696513310030213272268712909465337826542314319763031097787047435997231967277229938490504979943100271868160098683897444710085910342693296925123107590071966346000344323810633734919843670460065907568216478457723525386199226542149300417797957217633605641009533948572104615095680779033326343310844403169005370642416761087177010566797753491764747051219797262143077730169287623144354147350282459761958725007410104095471009237622512406019104639810493266520123327687055820564872307220253340541294068405807295388511863860506489517540870996530038884692401397609384402608137407776723896967768858334560850314201141257063236774798199419955319655358594224126599954158373177315666616100381268909259086954862555478386986636948287079735568979848592954088373290330320800953726780785666684915316666997515416270583569803331625002392647485893453455011624831385395435067818923251979622282424432205901024088543362300428414544791515990774810941076725990939532214354375847131058162602360886840855917292106955545954563597084813206648671755564997849859039920711407795315956649042651593737414247143485357334153813971263219824238185516014451705731542599773194737928990324274558689386338919738855995814417862213130283076013080071333607031256541778568315778458073541118370918372012594320486352096760394045142041009260250708303262730950913869510671772314992559199820120131417985015858630605337356017440850807783113872293118105142273177290543363022619513318345907797540875370751475609647817505283686157298861911966676758603244639200592323315365596996778803932657976703196957717773698199669925187554094597857488459271455518866573338629413628690458689357520673925394463210203202284921599708292181319141009405841998770162657991789202931203179416048756979174435781884914637479250217153213141859332784496504880986460337230949687187574058280740673734414765026290730533487088962010261699711091481873951506130059798726802561326514242172489679750640032293463809784228300267569893561814878704732239263040102442483296138273788707407815103244194039718604834771560659760228033373521311064960977642741117920463014847628351540437735460662112365770885445962078051221301222939518288251905368752669787786976318457817498572626476660739766197417237534151502808942477964820183418714679679699801474356145740773510546787572196484915856798791529196725179447016270412227829795920297998724214004421838135727750815482721104672319545743977722710941213076731108529751710468329814411066931467218674155857869193246857444668557660573600873776072762820262255707885618948043390519199650951119211875058114472112609336289365563705881270871133937391116501079254848899165211737015841260578840278197600015492776535046407548290641126332644276869201565946476088331357082554849722926852605864929844484399388781565599873586361167352702717185615316373299298730737095839615443372102492897884637641275413147101981172805311205437272688437891242209264747375386292905895165242253628402369343350137460586110364725615214235243625159251447189676164304114822018360516601470676952649268765536747506985546734379681644209454799706722015746983303692250709077906390641165115717508357490639707050800853527781831798070309027206704504169935921128001930175707966702495579495043336025650456300289283733137448749161841660450636321526655031678162741750373380951133731722058262183301117585927602488882465891461212032946509078906715177969890926124484703084739035140302102287081062993394428212978345871628476497682517842808044239097528467382394467608366481764701675024211448629069496996449249957483169784184215780003374101701148898201295922563573715004437868420194588300624964128668957153995465455848373237759497181303112470600495228018465157202619809079733896909152638026321380265499382011652656689926479773054987842677584489703483067279746903317397257286501099671505397301377174065531021005639461422735227940881085703459829640175485105391110107985967754843565488254548559962287562445312522719470356477485157369037943353146006556174867125885095689507530885948320655694361189203415204678165923706922978244669971016660245102714326524205198921780589578562246266001321776623484804601485705454694234878291846814752783229867522049286022869073249381493641806808321658137151002611281161864348322069226936790820627855270688636996823587535625038657969678337300975145302772515024536476046655758905787310183377784399750733414382449211313191996459924590142705281425924105968700231421219818505334716538892593168559453092071334291300915574183606942349720913580742968184015618558027960325345312401407734059501765704089914154198848610752783297557624189255290075528570273204846837488598053940018924916400134872966699085446828738429583762594407166565615561263079554539205534745049971092162051612708417194166273767585186916629723332020376526297573823912380671263973739856541696586624207564951741662336609180919836472119742779743585549939622364746727218147980292804925039617920338572113237675049434745890725144500229969429993320836464819122643114207799774662897961645159170778290753076364567811506574128972360780344235044843172913233425962419689822066620807638144844924003626764246301879081570506052528687885336605440211972757524362794032050458932200461211065651173490736621409252723192095382669468882846926632326702375966618558152431552027733691584171489615102314125462877298053707531835247344071691966617784565079902486399074077004229789826808624148550030043553628600067941237309782846122006931936960874648734788510021609686496639738318926204376398364214640646833821036516300599278608766387994949971305777039908777427653937079934201059205228271503552707244999033523091878629324630489261405975315110636098061327658234078515284738557295319429307978037394438371823540797185567483107220338477283873740059743971494421753073174483615977502503160514169381902789013945769988966728276459702360144858229490581108067369207292678900401397853276279275104656931449546627242644660442780303872743528303924239093104097282141544749844648551298580815982728333555923988535975361516026319127815756368170277354324896144997123726495955617885481731838622615063344786364507505762472914137677081468667987168605088199813673910314619692191311075134168145937663566672553710135003609207205371637236315619143911734243072049366275106160506315160493311601005083160459635667924655475628227320826467939873504984057626239362600964546609176370932252889822016833032454423745326503754949199476981756059878591442207822195958376714486791722586041277537706914985653993999571917608666111444762449243025747618593369109563686748833598708554856691666731262602573556666638884193827396425654710084383189856373236959914911370389126409282256382920530203288267600379770675599788658683773751684718962689802184082776275810321320716324057868903203108646068734045546961352480853433149619635051721469248031709436423519175264495271053029289903071561059407348676024082492886984678024430329909602431875328429911019667046743987126999484787598796235252918588514011625822872889557087670791797540326517702023321947743015056905838456180063647712000141419769019495268953401967749942510462552687796475829118295804284802509657220005446748636192763612185202829974864485732109573760634538396028900907215161818459716545413200307377847542108903129909292944377484696722274712089325367966794169223525328487109714406161371152711287375039204111878180363573653728276172610621166929418952072668777201893597815083848576060758146712937458973388357797976558358162400976122053166002808784896550867035703948882047428499659425762516073062442209750659396864478966333215346352269476520875524205915220688954112768726632480494854978936688626045830646847432869281536211366894197463800086663021225349475927189506295596811196059792622502141892395235530078190574566385894613718599214001752137285048840316202952093822766197936970341699413789927098659835800963816738177290802036352377834776580201120099874389787041484485268192081794279783124596719217337446141021129240016280321789485471382780841421593884479819391743610482592028326766611649972508111842051426033228521790828074513639036935617885533531384239890662899027934361145500444021106808577459944348169324039452437020707320867043898439290360231565476920375495845763082031142866925151960754465941488389541281290384396995701808463327399928019883573693966740727020132914678763885949155158208778297307958482216506418743088338870420712186102882694268055150381431120858466017992274189023500054581680111453309073024720328086748572223828504434350323390823628936907840285299080874566593041478395105451204422526813102542793742808204191482477337038095985265485327208379949153809624724452052215733002696212553810600540494372713539675535603232523108785080252409605588343373021569218514506483364124498127544734553128970545478787204442582660229032806085091903859863137141573216651493222201357271411241911505718603180097203875919332092180035733929318745875974381919968923310512176413114823363048593059785282098799567258456295090824057669328248121503813744189252869821062252239896403431935573593122155226580655913010349481955040277247146783571861574801165406246234764992788419623816163318980770254922008302708794481562499170462014680723761258946671653905102631102437650010776664148707851279469198094090632145851559039438824075560417582769231400397583776107637864288908713694846978854165863454584573771886210947890306909229168358695404676792150957852244832298636269620003342350373119567376476216780264088624829763079677736760947079689717901855050653512788752534455002071151981422538941049577614739770307833939652992700505283169731985663999181837996042662528345798850892158839578546811368771217844430414725508720534178387323001016679558258159823689846571509994873700986420850410418840377774125676856999865054019739206962313139957018953745874121308960422696648771164697954119026443898654382516211004117651406814065890856466779354377960815418533314928685495473076575537237598296517245868844206652627922638473824818727231440733367669263870631475040010989888481554527397133804411683819935022940068465041106371828038573169013041347387916161319191227533384786616874409815808699044432133040926443170516728314648379524336327177297007809552377758880085476684092568355472349531267612057344715639377867441121959822300428077504884747434151853272761188403433933632061064304508143348526307967224621520302452261045411950583990868859259547422160303787360806805383735776742240581478422583096946604396085194152974217507404655924141481854258149824885729312891308771604090491459212199143597071716708065879177449354431330541679855592185341933486355579118259535104936373069105479844713632231170911533099366296936800074131326564989818732924284919802753332799109080291644335696147917067329012841108036118247207248811193797996704548289070044322507609352846683217448565934387751217241072296844737177868608103659474374396621442279274811207022070680069279527334932076064631937548617071820728687244846445949699438622407765196772366119468010824859547334920479234965434941817372038919797051168924386176010996889076764394685451615930545146156010101383282765123903538318943972163322270078779079964329420990565020582550470824199284406881630330665992180889839316115547306724486134766299245404281268175569047884719702020928901662770394202957047883269203607529167430563902101965936019645294469433287835832917370149929647599116219341515518017017468824398680691579118226946681762642133582871573886027930956437011557452657620676784396900758972648778508890155685263803750795175904902716542134054722051349201285835315787166667318087718817693830992220904955383685008198445398257032952466184576191170259701072684310935033640027595001561534473148683218953534182964275492070801898148566462816099387620380851151966556962392881220086276809182650048338798903568687895976533402700498826407520734408952896472911527105641844585009762235625318578952042792279269608464118383988824112091619597495572049852326644832996219305355164144928984256491261127717965169174681273674410070990721546261081119658168800329578679139367507022917944108868436306018494630513281975016814136740015058227486800571636577372855268384004675060368810728929961125148501283988442231921107686889314662651656652507810567822094606532580425066475913303992647663158700893012494140532004585050411524952298883514944100373392131662115130962760274924542165009443260328184072368124569022287447657239710696289314858055992529791749317131155215521092811388013938968482436479210634242914123962441059215248552452472062527309666173794173205074897315635734041150821135701947736413484961257679858019218426079146798172706813223619290962189768188724413440904029982268636127241046250846797533923871584346044021936233234173719477141482819225873471207306580434008444334793026105588536376994080205476835135840108681200915450985534476680139419212676141366557501046050160850583286751880340033418022129762898453265459243386630137906159115166580350810393146150772185828521170119677034025964846124163258189101994300035564089367201279935559358966369722231089109674453762801473596684643599574211163647488382599771178570129552022049325567400756218639332247905874578726962894374080732761597482993027393948153726227675541142468557178654838323017069293987323559746912773708333383023985572411444329439957169998475170227062206379488185287788088019150633945062247014004649672102443964536590850605642144168283672929641885907159834400489971392716481049794542498538032646157946924816388565808008488097513715944338155502464014872587891170626992619569315502652951793777715976709444121745382453952745814366926527079878659644848333434118327372519670206186523802545355820164411232310560369056916237996241618875011955609825975106196233093929132405785231648093400556264151222662890800834925511438328836052979522037670873972066627121114961094538766670152155270866588153058300542774695568869430733151534908969073618725569559430956615578272957404636257816741393546874796195167474832492676146097293632253631079846235503266622564562340728578551398236076818770550828554081775710616084142075071821031557577172112057745777533344788301983497796554695796616787095842589779680758803692884779736712296736158035395699619586147497161957287389742588717638476490645790387281730928781347496372401881963016540736788978446779760095849773042205284537126417425250884492034873716905608678399123641410695779344675711243411052668268224052119485493414264531609258464625818532537724527143870506485591181489570752729561133946818150679936394567597220832434794136619804919257859186831965644922256009007971576356763669739880183474440256598271525078848779334835242168705939993638016513687546019949260960476856217859956037559784782629742338433795646462594936184516130881753878014653805936455998036725991789956242695784640679528355274034202717255091904602389873831150869030794570848059412448970602479189857341463143267984988313287407903961729592652323193981377401158536847362836439984423450030485786268248803124059698354458637962181855276826053834223763708453481988614720818319690841608317776362208571074285571542923529070760366923165000068509389090280870243947130877265115270032479754376227723898472291532855190883252487942319306359546747508254339542535285644012131218209244199679253275317421720154771428221749362897965177489372443837894691486895334677897906464434795134077851473762938955476449917122101672610671124238666856248100417055925552856290144689435206142860364472581701483699444586400167907260831929532830518868160094566317394759516842341522315621657358271744513759202957620865456264231869204684337468482150500559558068363444757806603320599677188566515952000029358882747263385285248309336875718987635768163325595311320782671584745533951048073340527330252687887689723968704339634601016408741234554194112932663877402809116816930678241494141660261217289325997910557645155302618474130691642944570740400106940796075305940771248156229887715227044456389443376246622246371011675495464622171685374075112933563280637577031910122689316354977188350009732844556117838156819969596047006493571928209225193947353828091303785469608422227924019397983888466584694584024576190115418367825950515936496500596956189616849936483476539962072798479413194377721092215982721253247507759618417145078428746607917165767289003685522614920009571738607948326835661576947107673387508426932803220002068799933088903681127681084482713943136554119049324099673774987471686836624701587956841132701507317045160052129207661741252075581391404085048588316063885025658976543724871447608899046566478478373672784024304736650339471527447238978028517363090541720650451470873140712826595394864153737894679294388146178096271012624880541330898387622172322090242527153858812615533804952338985547618464198185512184141542724776271553393446774933630249798254953989292884084856731324530403141937554305671523609461783909364191689786764983989745156127686709431974774324522697471256576650798996157385594463952952015020088799289688055459795016134282591869364034313006374959859678224128660265096327589140367881936155240568774603048954396260329796839846653537215570618184276933267485274819504635550203160301684602551035138014029580772669252643874646724464203916615360003760755042699528029363862883872709266891907948455683568826617777281618126242910139241454866017086228660288045873254638292151391763556018932482472137664337706338548716766556495308953669681558012277335630589594778411596033927310803085553751253745416887745687881509378040897049626718623885126679792676835773328438607560352370603587058164755310845307015250636925550981303547817396887817794145469030950217550399745256963253782870708816287304015131660821536950521965335809827935700716973284365394420382747884886853937388297666295343790951938262148015602204106616977319808167910724864616026981833552524108762391896016493221109196387418357396183148699737877878193124103898230468834461742734792818580688365333828200235726182576406037953678690347726447343292772016330319241303900411153190413480663514231076785155930485523981544148546898740766890738471019295972830287530073384511496655973299749038687415805724212848619701708740111407100010420548837403524985405305022038764175945650367242292292927330334679309992292233352205472323800720888832024737167323494967205639057599909355534595254255863766092060292053517469281279902281378975065406273108258656510443880800427325452066723395758748250742294546099454375618926417842935978193252206352653985598847787710835784301894042727792665759853543739862008063561896057245145810443583208924102798967550606655455157450032428561597684571006206475929059459892979532352937215797298131860386836506203147363346542389269196686691738095640491976706623703885326191953221365109994066724630010274764323097383930490968047313421491703355143112346356299112469159672672755943952062167426037219422116783383666614272797140835518848924899702754655084188907493426744988380365940282696301428564843909581476135905779572250934041356452630382823750655651398921686730269618349987244761366176178725947156390022693915290085088980210708786479097330489703912708146743099253473022827584390732512222978003352659037564845961723121192487380009428484154726470456966753721327111866315594548849235842871762407061063703622225234117641166916236904095990413510782827884614983893014454890527382936220935805061841481849859325626194905656089484122657944234400815701066325670175159263859151232747089781664427201296634125720974165816103337328004879230029773800454423674796491869389478703651076761657034173173264913711677846382175595902343639270922335773470942551636548572632955098585603924654952737868996443445276625786793663788956813204905279431660431448779045308805598265095987126812621695757979256394485135523500859926765472436911518555991466322954029307207079623167411928446846415560071543441928181559744313220902210281754804636840371695651947455375226101236985253279028516418036277552471395624314457182442931973721053360866856488017972926423171337654559714633554140096447448033155952434844181589339276703924663512617981018018674000735954809845446117560912028008755981688243542788811529217497844735118436782279542212696212020782981994395159002093914195137656860321904355881397781120371440078146983628756342737346752844334048492571171528603456441114887779149345291598167902372719371808083258752031076505135938555995263010441701647897651781763181903097733552771236993809585040937135861049627805993093020860300182533984212802794533541301478751504145311372031472572286518221321165120373884390768882099510139279627125762291060258436441895812611792995468530399899689682514434993569422804257172334329684544141389102676079403859446004095010365720853695196183322382364341450624223228904879311893995895445413549853954792970838487176316631076258433980134982306355912296341542217927957194738596797226884690820717062855123377680777364574865016615363445152893925751221668443662145701515889158974662227531637373915957462821818532086213365585117010709126662928908163993751573476578265310873391036207530412389914949827269971099073847959782121059417517142463241227414059106180365034025139377229637308588096826978852554267651616891761490594622026079111465172503610126627717294970167889170886404483165668549294497278692731066451964928493131651809584633377880817497055865348429003880370263059479900710222907315776337224265632207912583465578680636948755736335787624212696733312327126974319663565459177784253831379234835433342579509212434672831509184831554416786426283161450133024984756708148528358312032935326367401763239586960614836932440476315405260095442958510208849851452895126572900884651064513115549611334925718741687931490240244093521525250787446401778479862973266594845360357293946743756506238542948997351772201771571210113944062672992478074920567011383133067048430570113684972393840543992576690562577377895845145751662522591912418367794823197656962539734070256848864820246749336306779621218695857639743688422885655374557916223285838221315085020203753207778910776546259399711206713068263642890180899426891003280162072100125014227579997930373723064981357848071126416004230431249615366885378839627766603914374592722460316842182738087703813968849236592553007122698612729694366668455717991723356823608328404626794637754372376925416630104258900136458519546384038670426480932782433082296945660772354468584916376165189763221472903232067208144706415137475356527680028564024380384601141228052145553315789098077892243072680077227941949916981189642005317810985235597636912312592116788234863324164801904798095337008433713623525867012087201037591620985024186802381699461166009445369048046893147858734741969710531258962722111775707554229036515825138173974920995354243228347898449465561753446315181911379141188647403987659455601130689661939976498497651872868667132330157442259928886073488609231584038043246481524370325969297522933455981826460413167729460630389211024834965749658680058645549910143034060317519331302643143107529773442987617027607235320061327755980711053127615805654871581891901960488348088060789643008444157458085853325039104698447093575309690799901845585133567859483042827105941344113416053421214176796612666712200620990245264923965845391990097275740866036861387756534956963429833710002700532074724871555363706731729433438031437207551091677708721027159377391422923209595778949032368567660885667266054871114193626458631738778178412142918015148013331340561220350542415905959899331971237820333136883043826767396952801760183293815481118586469492501902595306000355821288661633260792665550378553811035448869313052666784576739865309483210186642804543224646178496343443095809088840432202044630557129500773764051427702348943739463164490473470979402801240182949142986567931347406706830054599386833322803169026912980760912896467323872127059178433278012768267115918651473827139971812336327709302191115782996036970922922516222675256091262877396237760752713706450017676054649301154462038022238917670733665459864839340242608150978305049180174124368234865476427172009232595863864930675553952460031197986634546448506812943697629507520593627804488542210375997270304528453117964812430494308697483216402503052499959732472050701754747028540178526836448015358470491068706680795134598182881298414282434411066048322805012887523764786684304530958256537619413701341163263095138085026899289669255012947826033735538764703511335650752132087389071621893394167725674479015917902079874157243576060002671240386074993494139343761469085179589540492607084355461755757385727514754916779769012664521352658153120309976054310819050420269386458572203931630645813932288395771518924364745568440468388616998097576147857891560433538854244785820209162738855330546136269288105681256223990857436141882776379184700536589959223175311163558410815565181844625919155638735700342632037769452499016711900716217072703746028457106754792091272447716383664299554622101934257680483749550408811269483605873999349058751466659836786570557515461043123788331511084364296017039429928885143626517043326723876815058027903008923706959818799689547626161508386218539101378502059982811518883516669747427057912616725781980799261883370756094100021846053995227035141192347397736752565229464612410203543300149234234451320255149685883408231926628007874337744736331399170700125940911145667907380351144938515113651579982285345307564399088779723316321149369971048083311496146588294470404641198602522384630342714920742923561075333721968481298513322309632380541300609778109220281935558171146484421882662006515261090900435685705220263719772611833875048077842582733896585777799863855800223800662514546969519996815888975210916869960870876134083132200791114746127710516266809375610224256140277183953085941161990961967607902314952640297903001388334203879498985477099452857027022794299263933854716667332093126370777699938368233626358494327055033429750034475048920251029544276945258148403106622279781789528278509460356369305721138460652034275366104806094531288239872620301794913264713316821640155531030748029535456041319224959028548814896463581788932550675408234789793491376041767309912185990014674915931972422587658172058348253567024846141710555522949729723299830008143796717876494641539071706679812073082027504682185849004897316771788556211147659806795228067440660317769788360437765518953281536891532338277492222019837668736669312931362023911607172867222094506999253188850910869722258947727319152446605348835478661196933366283657736152797927162598750104115762740246838589163159921821059178897504694943058738066455888216162258727724511130453037005402709403036530849665801673218048414790062476589056892332518158950094870581677589089347648523616731087633749976001745413518890374253395350040118432555196491791551359436635022854708180547252623987419525141382578322214459212687494895844950589639619442523922359422206583810121900516363435731431564717398983562248684014042151430666786391565447588974029631911264401778809258064895729276033714665267008512392607239161186174900006277189312494142033309405441007706788982208051975225541956357195945515722039043421362165438545771940742195589793193601831467497769263765095443033336096531914128061179697527114765611870685748573260635351097434275147143793332672148058431702316810316605705435810982106842240968378450817904074136943300719122102242330204264293898168706936631779824034847735766901985556035694513798485196899415748916687865446809162639069640986973731171765565711023955319193443717249667401916823313161307826178505377002587935797277584312411381866282712393507708848880367727185868904297333671556365346775676446940194075775005602485374565178167092192984092177740307698870621845648638896365497971789246302431002074406045110307632067572937245806578414513324762368221215769799673461912679536768436467164432668467966125962014140735228375780207504276223327352538236355573011520002664475311733924407992449480660730388024346668794886560771153119479052618113250328203532364272380016808264806837046502341510720140303009937129268935972846882367483626540782192308891308950329168420491040502408262784249375798090039422303890756194776212761869421640933432486581271830526589277155282028025000206505844251516884398684723349484196759834108480935801298691341672877163351819905629349810213546634902588447995737964643209891828622696918260237077706562721309322923074596705368264774022616736680144620251355818563893386521338355221367661233382546944777183135083051585298219000633591444198904079003671808079462394769592918250232614531600437163894101827040880055708952043682799361115069729094500293264306840690497368511547655694857739895588811515535484095385363408624004038205507121743919475498347554729155831911785411466511526471773379660818815330142442211462992653681867261995257250802384075330894763447485530862219158161977319147350688210241623879284639417781006731141221056453756869886047243650695436405070768398248332430886466603192532129427059639402893712202925570451718208540308565382825736754938663615973459614385218305730181500013524806508111251673557576964149012167212526873758810503964134835461632478887069623428795309310615988816772456866844555303363602969557180398155025689778396946340539488529024875650499361761932543889981100193622983449332571691247924629620386942040659080128479670793829099613415971269829862784242640858547069004010023557539107762231008569432194493829525447655497176431593418633168163016030915067866783737158384129478722975208927558326076218728042554980877691648744832024370521125065716728692142343274899547308114826195741725040303476651584726176650154398862946593697872166838991299695468007843724033917671833709173445314381042265485357274505337031699751692599655708792755598607851381183232840110681215156670220898220288337507360769208348743286164949421138710077143181961480269638122122652997937770125866876713136248184129897913901547061856039318817970965207747862381891824862151884759023473839707043664952033627407745830029218961115712034495604842188841354828628988694762809630706115706139509111949483952669276198880015370395924811861296392027810982284446226231575754031756492619970568135696373454782962916892551929818077866966763966776271705504426501028993446181100403831938198159819997606710017404793793990072507221996470572452589536796265328559941771151602095659482197845965222319298320290032894163888942947794715108576199906731882204047715263322203900965222541674236747412512095903662774819240307778629763056666577040596586217890804548384310741305524585541617432485103298052353542604114322280621178733703284942790689733141524719926180671882563013664683619810126923348532295087481846383839369834949692340192750695190615683659475810088354888031680738821382579545459224828899122500179042530727249545366929786173755942115449361245009041016884231918233962369046057251182346432436088457019796475310915614079948934681161799271146853079160877927667488270509046415117985326755017727497591300700580120569488331030032150959441703913535898051547079812727655543780972822184323811970363304138810802861537296200281605491657180478728001337027457584443071021174468306715832941641263408400190451497968106688459456586636380006741120314034804646002382557852214210812612080453857240262633680691195378029868289140826175165228803708430482587446331444760677233757080777749207776022107067913565543140181305813187763138195586619241166596740194801112444256968946745752381433402501260688622008615683736803045492209676090220729746413849647852661034024341944440192558695524818980974689409659866857461072370632870210011655520696092333273099603756239760436837146335348892676607101392646647076093145917136746460830740557372629779501139455903963828550195005159052670342146266285778364166603323489711592685928835644269789000012895557613086407850101604369680048163553537838337885800270736269531856101480843256737829017707472362796873397158758094789668105424389833822953509743506085339311510387643777085767037553069195010108286537096973193354760835485939148375566622190866636397408436411035431562776332058054922023450143953469622115928288851085467380314661004156335848210189707159767586661566248466513686395109338116979468689940559435160140865718982620568397018981090982385303621785212555731420136613203537878851275927547721244912846928079626602612178752222838744440018197244258987917580034147600290822946715980882664597768035693037395687874382477722275578583965327254510541226064594715313407404500158040099478022426991751797871803601365494094375553141174980971964372545384821617458294503276278008288152537292860685151944887214702876630125411374048433693832923368950721094703564205343677342214996072942329791671848376664576470510678113748762917652163620202961391061605688802088544078895531064911388895888247941356302344589367803362913436338271715598736320122572566134690196665746674352064043620869293902547175481052401968332321073505832466649385227298415832317384827293290996195420677018101679219863145228987176719706610914552629220697466416152173115930452272801440871380092036556637944457406216161610343901955779315041512380716392185465041914497565670301893339431761591882731414930666054477698240764830143315324486985587417478602567408894862573745169528482076563178049837021430066534780455800784608232257297391484402654301165902065391030080659146345561563086897316209926565435905471901702269321449681504008097964564469006522888215617374402199296942919349662138252695009754947842507094590340962627507800667276086865496931368713665832195506575605019940936475470820444974601025585043665729239513520591881948698133578002610846069049713525842953387866251450998972844678418287840772878592371887062886430124931067719871787505670967646179541596570145042485505005603015540994337054342489519782635752104153283836493890378678571943643642645720321462132401630856498590854653516757090786123442576958664064275970107916837122443595625211723754785943405122677269812768647324054785750999754744053305660034288938344599326456201026958610780249276449090948885739832350827216968936238235166452959547274028884839495548449299168610307217088324817527268172308838251901183340556993964230373359984918045183575503549154577822615119971606027683560961100093961338350409891347387840009821215361540272398322359468890241159188061409016608310296740939790028592994550203076753267526092520546358514825562085067938949940678361968144781129139959282858919340564220429448010974438959594506414219681998864731651761255607237313492066969748148203563132337489037262014715763739250868422682045601896365534561807707449997248259546111071470117156627889881909132278615636103887661870400623656398040549414515147459335319332925783361373594986860279230074848094264081426608507987357186630026530186220181754408175542396984007259601727678183210438880900111474657217504523568945422713800292589853216000215354876190037474999745221510292094574883118798758560078632456652804637054148569578878074054854985237304892502755180681207416301653943589473825452391715642052790981658212189869885822265688749726564859987306291496666672648372832969607906166854533156634832608957926217047658064375282799388415415142866405014060438207364451258320828528751826140899179650641172107385776638720051605865833459065208535486594646813358736495846375731323060662856892916308598449543508600470277445234511006717821785814478637331958190387633037741698694135524226104730523201807752145216883369513774222427520825926935179707234651797910332026742085522740285579594156416519994542838857136263845539931066991838329978102628717565040093265330717939785431249659399244768382079162254193291898502631994023339837175238415428310038528743319114285269416004810582844246905086753136871735453541531893265736426460044216833164038222904181043517026840135581741361071308898831711044300627571192041813807442103305782999802994554154141938500018828177623567985911647852507288547569402108574144644119993340849512342620865568698868322994795237744673202132473433954387711586924140774729757523919632445344505625573176273180788922087254627575051952479533708803369801475320881395289687649803614610438683181944656041384019774779495637848320124987897472029712125261920321410765831567800775970774779808543355804983098275865627275505526921587314462396633215663018527053649746818468791354040899168174526957625329959483674667179389897916675820256206677251687462126617036296218396895042026426153792224588037974903627632625515645221762262623528998542574369479176853454120054278442474535681251567082544312543515524067349255792487578883070801778949495586327747191094925619644693876131728151310033978954785042202147031288554354271369552879747215892697975590710267234375377532735050916989064934585325621617062440872702749302937603463195752169621334903648839735303181397499952282216316425223699656153077449133303682664248298843921996678022675878732023060605487539578966984165326611639111881196837089386454804481516221272158958932315448563249190723586295311345941594333171233353723610616149581870186553482884548103803351390098127383793221531158293527166521115203634194540198754583984336602940229669736545150509017610397619819065344916136943229154194827153097732749907391363502479539151541308042636081954404795065033155660395320435728139199635283197067638319103283338387035065074169422617464710806794536492656278629978631233596545625211548375833770913133765405859529107085903144578309344741394396205034156710811582172303240370129031155972308933588023234751104650042923015077865333460572557989465362789796849520985326905237339565055824025632518315268119714821607193487705471533656686366787486640664985555322231021569311731661047800924310619445567963625420780976199889211355665156136309544692337932473896107919921949791215695493831406936398959410254089317922465578352252277543797212464395527419103992903868980627593979688253887359928565051051116593705494738866818164530277884782171672076195117178898173374115797844600998695514745404336376920478547761267648305471327111278855503554110037085947811356112225453944307825914763642349963307273574315998400332735452547744426637423549843781276457810312359596918792270161351539788543001545754032129318976406995703758958178374055679669297743068632833450894348434066578903990823182613265838466847844471667156284922648665831457274078949014405966503240647888813333465921328361403488438076341143424910739945681442701648807224427534843531110912622579352197309057575637761078565933626312277750532947864687070807962477313692352262127417179668106806859725889221794807316058077349629990491562303730691383233707455438120386119496992101473979944294650727747802419887053157014761793281290928864541962893532300752309227723218455498373575730869525773542458403381731176969149799279540662966307261944306602427735482757045356076890992662688182651019776321592055679537598973426102441313214997075457188274301037163901622592637876563663500218394577327293457953934909287698983749031681054348066727734956932702636066292143751860499274764578743452222601127851929329713447387740303039245440733166387598272608651321932530591362792885477174490190056325539847892855825899165580262438438027390030057421113472286150096863771778675207597748767986216108202440145086071931083268512222697670780327580410990942490704567787550072621722203657110063418798904963432985161685667954241190522262244390436729475691044203478983598162832829601704805997699552919158757870148592947274684174126277998832442064561767979836470845708001039473822646651391064020633046312212923180122858942721284545936703877082935294791339604997272656088233898459864470640469200690832914663298722707118084246105237682138474049938120860362433954692539411719118295296922740654377329848601797549515441355155140873519709143617615382343301107690673010152342692881228147463903228846065763004367361848591266393058733298050667805305597012786375391199967102787885287883047732370240712483294568693479262444446577609560253172953255842596491579081225173821531412617442596020083235597210192201883022757134256294221327296566075674646438926641050439167187549898581181258803572734615885885208811542687153541545477525426943309874503030676053237665774558783975513839664340076788621062973675560467760094560899908312806031478971968055822587274422621708184422041933632225924128787827240108747026212795531045343465888434161690776953353992050917256862546435483641109050370687664289973020137982442755942241048205602580025947701540771288857089500399276255836765990150672518554640878599548306290793228245920160928769369888973967014274036803398510650522482344108203053205433507800125957629243861492223987213103478054814547178116153000410897182535192717290068511900843673125776223621463405071091414358892465058357715799176703125671097117658351355838954045935952626639630991568861717535429670044256203262423381078444275268249206593377210585553300895665312251382764095022894485003367129729706425543497502216799216572401710521265294197633658442238476227418592985809516169875722296222705473896429290795931665666140858132793542963561436923207187891613106260917566565720600913424042965134159928824412550775082341796185303245011508057206511059398128179285253704836237791544641918089120575885008713533773366291968718606000051952520071218567547271603013452965354346366750870544641866854200499138198270929457957001147967992503832729576995494414842723931019333543347258599909695889842731597445511154203753027294118633813367679309850825322880544691557737929257237572231357171239857999049153192396318457833398113396444210462702210811154752402721319131150041088987393312607218980140510836305529769084698008642194743767768158606640816662396503632479965711751901782318588180171503941126140736863250511042150346028054155576802586383761682548153616107545534047533545395625764513743912402667113601431689434938584855613550621237888563719200701492066878849483625808858438902996378911400471656916453671786949470221467504753811726288413179709955886186042124730065660334136018891968822238999680345484609588270358176014340828568303025366645174166924461926935823843044467838666954486145324815573161087133286754566908851795454884705173654558348513012961748206646680158954273986921296571498205713270588388728378841832740226018909214917390078521808460483035046703558849445319499359343684144995792048288807236170136598277079772778977662375572970086328654693549455943680926991388611215408768143487022278735272262075736686022141017644868615986813748413222161169263652991502195336339603002844012695864563376819082670314622144289195133974037998666724509499608497824192566916277444670031266950932076627415525186352231230666806977590037619630399102101754926626990799203777083277241876749199606966963983697506945247821021616491403437555225241021165435159802489168638071192560443506197262111909798739243365035529776531986014250054848407226228997342722134974198103356484444283569364850447473755568769440285174700452186326992593533529447934207942593181608230388516129916509587827247763463763540428271176841378037825272478048414093505192989512466172220202566809989314074561191564382937042859881742814173975952753732232762457535709562484311670312600847258433620616987645004482213345873814332064530870595653779922896743058330764846099578149185442306925839595219148789212810146950600290189863947451718794148150189855240166139278424846562976142505256083014676449956261090918979500043768656941521823865091084232621831331633138807131209615844517337867465456103548695184962095558966316611503494291571710273560215725066171087584378150409102212867478766999146452095758628218363317479284498531591292717591042689735179072673265896040893561234050999613469579677725775031017337485371466907941430088553495803079828275787072115181578577139808580607728885275157151274167353419198324524661645007881506169120070677938884927676676658576738686120567400920122736178271211484749306971387763080080723594166690823541945215334918093309201206306420100768575531954712381797691039263859069671525568776146905684482815268107792080654630834218985594949028756242957144487322804040043889505447635922402909451124225054985200553846056890846280692217487323933338123024841392031557402012278676956138884484257677727399533287091763514389169016016449599501615472012851186710591602848723575899101043640553121256740496552353189942083405915461227321243972148952737781031236470508689365400257659013081857473712445886202483045610406003167646801602150255865741271243055363510071404655457275971510739727519347938706535538704061020836935651223688686152335188412688585267745294430404395985196498981810150191023191509563249361022413088375241796267442656094310332092138291279080954150976070891689725800123875237329757934321927679665249285036561089722284803667128923073055950990530607789382876442425903842956452564643734645474644074871994673553710638587500514874188170323110066077932640046207385180479838883029372856060150675914375501030402092012523780210313675522526270553770421180333863052035628667436187383104492508853054470484519489116013219119577619180231849314810208446348391679751540135715586630037729530077904937187014646417967506707278774822625634397227314603843646950643893205017863683547693016287809631291660520471149776570530398438212644166170931036593723556163871090121746935788685088842662521828140178644152536686588266275415959509802419679114608092138909103564635988213241452766058475384697602222317110743974590219887291747071227724470163396699471572164744211439615472925332809558888176189674589466882159424933706920744166988941369710008334418646675470465081025206612066993903395195536345579169372422240185275419826187627005850760642774875650866935014578923521449879836338866070927386466323536155831920604765189362791908872792193463186524948927683970563056093040518678231754391346253924606615008753102069970938253159945624977969354614534169706709797114743620174036631991219955889436609733921634447660626688468598851271842045682399783592826082725341457889224632975448805815873048202009712610925889975254165641095392949917324906525165970835790072303894673971940584421451423424086296350145296112935667277561913392756359417351675603586273891617296908464262728805603216076199767998884961429350133591593443837983984352398104479228598643776326971326537363277092738552314265752235311498464787010532788195979447729569223070432461049915763730225324306943580744466208851722999100866866584394093927989159841943550513440713696787985672360284285017360334530827317727363470360745841705281120106037434238873137281492996368720327558721970106445856558315859274738321930329130406101824119413459363971915760037189802393209779725263991330937313526776892035672530451637780252500162177093082073863042578690120061861919013332571310521651389886540851643661168096467150059980925995387895333767495956193546818148914051570428576470294966719539940220718861278735115136188087696841856485249958934356436736995686546673184469678641422025630431198307292067443548636814681169694775221009348977029588872455966800919530816299172342042719220724809419540457425828490863143373915934033661159481015060671768660228316908745451944843309284299739307761841111490255669389325405312288010140904822312918541850739279106613378781380821280046193344075482018454167891657054647236701717701230700520093954072961847288889580315580678489163830436654757345243888576247158483402391238457773477582805624131465758453963128321474949552246195736481712322575471822750769352318211330983535483026743040995435772315678279069881845111154244368720918499773879275287023041136250552001094594667685332154160922081076269576948774600850239289596359786474976182192585264909747953850720034644382697767337129610323492925473132993800683559950851917015828482591216313911376997469487883089033270770309909157080402438085751189605429940827653142780804890729038865488663938349879050528923995104124531511580845426421422603217927868828740128659821900013800393845713806628613237296063342592768663974476681573668260927736827194633424710721149309817642868397361132820584251347238661427258077085352204059986797081782472619446449357787704806456287518293491656344257644562672220622448956861484264001975106589493921014513726314421617638398409240782427369478565520022222475565495554392527226145186747094579146205119087964370828452193147640422181982787269810412194635325003951743200916436857546684882847478550768921570132400190605706906741338881776390224890009592287620089948288054122655355909563004587242669973951182560945993036055938526498296882539851542924989208260548725992311717247678784079435919563389376070683222769614843243861531342308346587598018915536606802342863012745772829262283424867139163155493215073860375361871072934690756818129557831374687468961700029469856492604764166277258870156316450756688241023359707113553640147980595471939721582939396914495662290604022925933217552111132403881663413271724001848914646154633561879685122690971006481727304788507676344146673077329035332276852950001622736487044857913697698626546082543140010153638235609144700627651156400302775698641703992067790954489520579137528398429647834289968173718700823551552269332849136960737719809423965877453020108336122613120933817444456771324005459023282401801940725357777762577205606663050714920500924580842964028432962668139305321900619158998764562368003315947678790052335622664323084511828243025373744892252736410182296184467497004930826291855174977018904373728215701641015700465972335767171306136415088378475345266902275755583610070803554350906509448795760341100429970361221886638848663697186569902451239019062190455395255747408496276504003011940851254061574542908755748627773557379785450040545505595745861220079404164706533877915228675747466984422407735238025545308097715894619502946985316435747079457939947905703628161553508937707221608376275713691673737798445466454376257841716709171104979475538293010313503626274012972841411122848466065228667607951207064288428934011842495983351719322552266557324368986836855156815969490783814501999093830680402033589153996232248352616822693433113037420441272319979852608508210544432643474819084087241458414058223514090211708755736772356118050574863585209517835776968845258795424536670746819021780812395570750000659994675105003176974675661148404392707765377751881280084683457692735818613981060109096173698278599021427915609335357657130847468700801604655299299372637844426528883479573912809014237989086411129389652776256608916371499867077466958643195208113586879656607612221532014421312576699584075913561757442001095720773176344332896026660911709604373728124951386986664159735277598917105187196293177768978015178810944230026150366461686362165352458424825805625633033238820495647034709963194814647001702995938223690470930334127044206757477482980896520156951311017832922492794030248600063677419349701523781179335638450123262667097755694916939902048026631009231251505775540806262657111861023739047238222223435072107081043552539564702694415488929114332659462273623997751912328285277949079660374741518897957814003701448851899014375742387485870393058953598780993029486347590553979054106629348651472121879240084533213156232028780968376043107262722446648812647635655823140727756734573586438553722714366712453626428318971423305851168842218106401047571401705666745029342550833332488957912886727558905542131554621165587516321913911611232626002883484171403996481573101654245963832029282113550987964300207830809766497994010874351349817161571709252677473115529536160017622983934381581350268470114516146134441932913633546025634902946113126257765384349984573431770373787084980255049577764133310016588816868429326277710540130251880448737266705199707620447491715579665429659540529714285067691572378264570238935848452159408276160614196098574726882768549290886685734553113307766466212415279037834405292541865350943298165214446569217404331284918246479336051680264685631637270878597475859469668165514843329141705124277859253327181922321114523452547026092624713332293856776215932437351319705156637660018211330974376246923822696299060538304453306788830747284256671610990490535880378487880260240634456759645748655296818477530126565376780636534504160743135663121703461482650707081534691030994954348534769970037729721982944327979644250628148780152850833100882967668645631265245562349294154887834495078526856371981543560810073727266898973311674647221429426135052365161892017265017362289553355774588814246045394235148338803538802364819972976857706650906415066842076039381103097566685844635981722748088445783014103407720403793821574445884771665635195198466062464027069445219355474602103382906626889065297891923522379796533571276549458777947208166640473320150548988064476786496870653719187274544423109598861819497789878168019294002161684996809074437874931452914558647312191269448537277010522910342658436243349994125253551191403178791378993152727367286629527831417228810604541473981293277014449462147577466672285797478045587883660088056880658085550590140958829542851075930344121374384994496300677742785301138196981248739230042585820975984603790151883840174279208041151309100156886026514767435492403200654278380560748982320001866341974435920265026387029101854988805772814072267350950131457684304779916665177888075208589356942496847058180683269685906193829477821459452593108134364338957732835588550651685721597520619876038435335687994359252488171087208606481205349882956725770393611227300542564846225046871259217913923052106870295070455610181633651277587456627015094367831158769117793296614884745128370769763738368693273363733528433336750756231172179603575258677954203844912036365455916418665899471410895466727899715568045117754069242400542701052526957361811897345448973352273561853886938072097391896062357189099004135972156045469812314350306385838149190091566866336533637107831645825094142957497569756404804387093533141552647769167680428613996910613092697935093478741836155633587109330425783353973990270683537313184228297609197764218132978457617999378956917681413608785893622624062254785664629571366772062958743970837458688947688994259209415699608955399820742014867047538834574770310205307398490514366091983344105867818908448975139839943837118769900938007721797499867327669337934610701908378020398726401594482501804742307311955602546253674096806112379471896232587658048119000845742425481904808994398184522823172811574543559392694995584659895890963206045617290898203139025668352058530402473622340688037428208398135364207123192588050823133632366853364638819113822885402622796467374317088552694288039004640704612829898858835408364660393317554132034297823746667927075847667561312561397445330693152219603039496714717068986252131746715248198036897283153043734605564818170815715358571495735863982880399272936592145469218871915779258483926274063495036915757341804302506519039581867072188342286522892140034266192575537136362128878531989142542846783381822237338567176473320069829755386101445797223874124477792412885688209238454300850348056821617222281368291013731188305966454398125299307914280438169963648930327712478384010070137005076156321686050622494558828533544000104601661193229961031563286565483326229698243697223372373060381158067270484239929533067198324771446786467478432185149332975890845690113736745984910371065368211939033567274292153397444258839556063180962798720622216747688228851071527023714670328450866734271171907700441034545523814214216506554583050549534874270750762513714974274928818124633134908084685722011873610141006959126201533564821537307282290685365037468619364124020442773300711363293659359601971129419545317030749383106042761366562681946008595435130785990045862026522921251189829018129315440546863243170581334105108657682422868835761427604864671174906831346032042224376898269860797411900739765747037732097892465786554257860525895711628687136779606827747857915280456292872793695684777812425446083024435071068787172996067497779606284445990109607715514751614654874772755848754837772785494226800922019473456593206011918290804398469291575371646904015847587490076200828631769809800821830161573616969725888336016547543307972770923315681930262770243218548447775395750112971596257912097580337740169884544042985419182339853232191211427505741121094241663095830833744118323891075369002921563035998445314840060783188703473271375641372630361474686254443868169388341182908329023721925815760690275202878412373433704789871236780285342844049849982117031731710017514356687400854002956386809284208107404066235686727712801944208881754671272207820228194274558250600470729875157499730392653055802734260464850425298894237678892630321930452266061785923440642630982268489663678808350117696381837722330212767309290372597948219960770852807300578092824605113310670651995277162704991385676336993680392894381801259566830721239278664663317239177489079274055595380246298224084504265246405871048065156728498931904419438363966359049014974813909835538370912773572522711052960628254139947011321214961216567023910027648979490601814487745866810185731877830817136061200161545105271860999779101618038279094548189059400611967979530203113816370147065920394369127310652809004399441531883557868984433493132146336759224795902006391283323192958606411028772769272380485397066170381323526149645948820909828166420124706716313579100592819733408586028212314247033961446001868463952157396372128234858681285923039763713885713924476633045066120846880357598602385178892016344137687110793481719875812376998082337854506895296085298618875836788553391724937119339164292529611303584925301719918007276543311382518106922630622465077440797950566973030958625905184956059170414935791364666205926061951406049496411379115199482243411471538897417757054640181111688546649707509790240614070973093143182039554273558030798462234346113596275953802566336911346938827283903003834028934735969127878561896734278781538966619429443699783351120636191133208713663479727807115795431775325772258761316238884924687523777220303963642435110222693327699948428943565458916310964731337565814439055759441991347769828600912993617482839832491794687023409199573192131096477169363328779153568361429050509402503697447591813365362166239477969197171469333021786536106158041568425338055723954032238108015611302299168714513491640554761728227895297567742204908454921717462976266526883223888604522093574642907592462922454900851344477495654436323757403044133790476749371011291232182844016029241611006747855546319628078858402780706121477442167267672650934400496817543639145754147142503231909851873454225764478535418531396777402432996283293674347752218722149097784474407074953333316622523083775377591695785146224402273437168109924707610613042705910218485620139125907169972831551128349496879285869503464729622561366420405463027835540162221460096968016346322559608633935771680795755877846184612524509969080529033421357704603846835573644819415560527650526664832056923307745083017721547916377629583108307262213980044745793062034872876470149262113585524685221311731248092219019319281005235291275266767868544100045966605933943501233580454555687130571657032747090478960921866526185335880248073938636707145711630478554237440768390384790149305925367658352458700550652252195034154140703737069693754210692471731454844220084403434476095220736246438963680837558486143968065927508671563938296753193670584949773058788189111330083927106341290589026602184012852890355858908590561201531742176187052045157770543020731586952008042880025494543998479382205748550366953644913709822804117820955427990754350992704533801114030167427725844371071298847555316800558538678418283467591236942996520972850764910181276723855284191904700256493975940301901715124055383557925162753835251470528709385673911154896042121236313608540294578416249213231736246164228311065252574896209958914402885094854773770289468294742633668707681937155123128587492493481381209508441808259527029172615702547427515367829623144229672208534724221141236793755255870991673312892501603432227304210880393729440710973660709423013299394370560522188984699839705320220175686391659934798688781645127921161174635750265441839732658938282340759312356366748776294162308741712717447398920790649471806076818457261118723076972437743598546751129835347559262748712161424124177872845794173223298661376188279462745103690634650715131477731427097676851406620218596015985648111119474087605339157074656044693991625724431750255658403750186945803202459668681836273200521706136016285650857166226278026075185552350312223869248412329424016196467147053033738460987127402342327110638526318889064405316347550880575091403387609076620848996261721626582789199557908166573921948342239927187806313788717138112934321417942584578201237848685599678093707487557942952848741763689526632336045144760583933556607191644904937151532022822768521584084594835018333865716976451745182892290654516149390402880260916950742975850311906113035724920288698022781578920232407146086470122615475467821512104948522518411739321792376063412160949462115319003290842754354267824962373781587143424294293203717524937055595575801914439712083067526009395938958938903096034119380042693555107615935589409064706556512289598634854539663895453930395675830230155454329179427005769493142689690546166765347113775517428750778851561554352803958620156355408595423330515538936086796605232376263053340422450905399636886194863347813309459925200686099611640246468576162863568189338183716470897332871732429650782990150124668436245921465667163097347547879836484365090359393491918627783642406154996414734235850537495132081254158367424216955043287042966539781683246714929540360609902374034057743972952694363995836044192129193078067047131146967686242746568599494666705299427480427209121111272361397540394036296331342805300118254643337166350147557434858381682268564860758085382210409268959283082985816272153356715796694452494723865801408826035031960835014442254085468363122500081092650788266972798453089750521137920273292581077550101586076917501001792313210929953733118606661001738262595495170487116624412321038819356761794888533795237861745679276508754708195342451651165468897525777463669494289143966514143337386288370309947307374735014224417862905481193430339148377439341083966942012843874260225011135693493875026144761823571703222324501786756553615958877656663870006682195242419559471596437622201270952456154471500831768902214240597235390464405910913768015459527028632187837077786688173759493030585165857043715262087719694092802207089386725454931528300846143177360158524711009659558514179209784148111834503498897851069134945100393902145047190673087446885377600930457608301451354551364778799442597527700872071635165686188316749217610646103332882011564838795396654227308301098227527060255341237293209229971253728778816076981916833151519258832566599880311200154378396481933729731398103111807264569951397249692284304828549526585398462979761433706602541842476294905079883521928805037078454685724294274320892037971376368537480225542581951813938334050221167763721238018450496857427798459645137018430370582757338853167351688692631243742298538854004924745733117548448387852025238444837551223899474332604365926066362533649346410959922108115991177690567976939052859269307532021300247568096074995419803842269153810106289758702828904832118711732405940212694059301780407836348519348969703464494654394695747742279368506590146108106297146628891919529274305823799071028425082059155265730808758353878857082311959768586082639190633455847671666860976665125190510208893092914250531669075677338027454469483159606241135370991722843405212022485787448724881460275608778283413312304426731032950639765246288210777241159004413640007648140693818250658527511632291557885494864812269884917430513614123771622290289618778416875209621862880547645341479379255607781756850967600325618532884454871931536692308050745561823268676281828106027351802539564599296948248330279871222613349244363107752942228576760317959957821686403270946625387431206144528735328892844488447811237555109403025062589897437298457550209380454091325984676537233525759816812073790933088078494812344854475885359478429118596577622903762420018686156756184708754851868114081227715829163015487946476822203944912449980725664287067539386780325403650537168051448217310811794522207402244421103723577338860386556304509060521940372515103560217511134184677617084342871093928376304739362740401566193307216055134882272738293047712323464209716720782024582053845646219947361663067917542125548748862760134166047982604296538594142083841095774108932677625135525792993122821134712311267631293029023851553354315269286580369926413224464799853390965717327841759545080469103068973540580685829601574814891450067268413055015343104021902961147928478264113076483183661539297342166368736767253715833539022995443736048029370213405847713280905909154158369358996065730291727354968720607042041460423199287975432621135063860717114482931536084403680743161773913765946542787761536626075351870521003010552914072297227704231319263117139621879620148761170191572639029672778196647762676402213227404265801204997973153662003945818090520394965385434258892294514334004824479963578904580232106785287012618088619085083680598796694085132966128299375014280292622516520780464451886525392077895816025010450981273462512210572635661226457431586386989416332125628970044464764838262834675738374968906819637807615838566687142020201084203532614577304464889003005596678134380583458704873456812431520751134888750971157553178125815559237328071953780749336666582000069073004777205055458918589446459903124177203511374828747610609023473416670719962576020655796639897333169429982163862140967432431731230924622898400394665307899193246840589111865320316681414830956106396526988402548161639009493572572662209210556104956250005545054949561988919298412480341481676484169458497432656503023475821605984753504285699416326745310017770245152795293256112493866704450823660998527038497499602303012714533365726103824272593336581311979266588609028483514568794411207742241233539999699789861666280089367995820728534969635158982540272846334777948302895128370509681454226914480899343706749455931957360223496625555389368147658856804252185636503858672987670441255131717842816026959739893514517327363755855572311498561580239090020793975959197657123550187589209789204520314706502999923957309641364798772174339855583908859595513430854196730055783743287266614008602841769771478061762953432159882589214436059573609519991865380355021382948418085223208687357388304218188681714212562391199129588235059947440715210079759350472363845378757110356616586559005530614246989499643521459553004231477121980215084992517674365425972247262507449138090026643378205737564356015268034800745169422670876081637271080383778085589667038406282554624825237244167693859021027393987034403886049427411584694721079661528626645100242114479048718669565212590183191147785067924888396925953095120661126064290167260852188896143509943128246824509148494265234761914033040257844331749556720186910533969601953992430122569313582156975697472606951015855387767031671257126651047592709070165884798970546756739790932039853067532914604402456451767422888818058833184529283597128713759655670430535882518140704986496069105719749101226293468400210968966256139146837534424644202443734721827960020307255713682391732065509081318932320948024656631290132234327690285150481709005819795283471971952881337067825435287695799684265742600238527814423359998654827897774688129310687016334978361134134863962354722819283000198549728344494883339143271251153795880113877531755660383499726608168515651406131279255684056219720604464811365970835476601388410055337899150045730780926371096657210318799869453255145926749816222924819899402034055439211987660726018122150778661338431909279851529210765981485847201296584261441892683258754360471022435822791143249988939834376423558159063836885249722660460790759332005336648195137567096938478175552616558442123483694329948813269723640439604412042850351572899827005104560082635594653236729001074798422275321817277309953606606358661307133029298227935341512795940697835814864992630504799532047131258453677635433242879579017441979525438536307525894576779669062476210515151306805901247121944462664024790900744991823674248065712966002228532185509294991322359115699136366676094627095634050770190088076194522614586958810266739906911838141614614514432194840439364613200609557456416534852063569850819763599092723625278149313262021658430039292638677896658418338329326701240463861294584511389181018450107871514658930910140532071963604625389459913210813542887995374460522696367097252637562481801038129859107982098385865509216283781207070664046005277229614548554342444393140734891037105944692474072327679416384230209944620958806156540195851483704746066238087400088966056675823169896939984020403741928752392235988356662602993672105465997127013145865228031646390964368870182835345938133679408155823735966411032325949081859505979544250173496446197527610203390171390207809905148879763315759627751868467333533483484193838304131878966352726066526985988065061287900194285768539796809688913925723344133395332952734776762037418145810533137131112286236097076941433542002520588669629464484114743693892720091172481761870424832403067572502917392784633413121678207243597289985147643294985764999963837828038347753669287263284789828942244700884866175275068586158129208297657008292228893386985198062481749236070757360008803633440095637959159655014208548523509923284100156081923796881890682007546132078082924790495941871432953604331869143300978199681137499519794668500567704589492996706026677044467592585200956662653278807239769206427266263180876654602098804696323193282978774224128212867251134163923069379390752825147943829423562443518269211094847577195894811856348783683769329344689974108376755608087471403177540258083539843513367994900486401196943889940469035087671474252025722411498989084654236121890013058274658109850931575603041587446933098529591166639863211364249346266219506143768125235003603960484741048882501728791324128973006458240372296282358631127656169060429158125296058271343020024300863496290431181815533964284420150329309520419269052766090245682887895636067951945194138395029989084105054030247606062650254629815443959624841075840169612707749874086769738045345216377076268543744316476365566456671155196182804261162423182127949716390344124155649202934362010022837870549043987820922225694707361996324600927118556904509574416029744330482025209211336865890161033374581715954924403270038313275293206209431683016049478452428131702642943913311947827060280367608480326652707269221504095547053284787087237031892128661892801583446727145480733351281102089462879389268350137199532338276646560222733130434130509466346557737828816916530053283725434541006949753162023998798529954710870431384335891205511558739474228316566077777279176569196401184946876083091061054884768339839730985514139664349597088151566371187529440010759742180652014034257687959957516895786848357887985522115207247953847422341941374868249989157417967131879848737069352466347304080219248022799205718671349898348558925591185512885263948970641335349459939546835721161362665656969272033819959030241025563534848182717420451434413450558497719368150266718146673845633892877889410265317824591837738409281981731661097184930789707671323648723054332239870541107348201916206621434300958603549032690255711291949751798411140067188492811076311904244073310926331716715310168361376523957585554882742916974096959139141813866342241762384790830289051542520038108605958384171124353518318874718165511831401574304194673354753409823639109528654058178293419563229712167018615184419683938262315964722759252793699262090806512835336095308718001478328837336605913287538046922570439173041130049198800761843070784359648709486002056329971155642324187761576434014771593342783895166057462842707025456385901705681016004719236160866767005921606087514615116659532022922318343799525546432528980778313362409172107788094382368064151389965046897157441828603090744731052936870970767970665541813623108951281546035007423272152417098385346566734963966623754715354538426831535696133949842373393691261154734895503834315927721927748333672834927214132571630828926894642020268512882492254677423795814983787971164035626295845337581294013190805611114939680616541684468879650310945153710247667729789870742786764504766427345159558547926280355969101959451904682937267911704501296535337827644491859763127652353766866992510375254704607320480082443080067421738152919827925967177291990481419791039944406621106879647251112041680653088737870064315246282041069830554492673475995209924938487482758304442934113292726906918654408948703617115323240426831133451009409434698564048920178788269442407123863383843317790286597226946999821308913432193888775531100163386387213822710192623241904784176504354089667765563560029568166584638745829116814064820084374553387725730833071718066734766532684849757984656296612678913411116286660708717918048757824697488198427336810614593103167401471852098647105094187703340659737774581997154314541753414340449037754097805778796703136606207657058176177145659995261743113998235416549742570646037194315888188136273902946526839877746932132841847238269945586174777075235675616476896616587382030286099727205855063456188713497093721064781307099889374595973478858894142709305041643140955866710670254998504564059227005810716255740045265106464449036108700991991759185540424237048517623886332220171572457289349900118911367044777194738266821210240284669744943462395922815958373507672563799478725618955041342942593755931084628387226312594966188558890908221894103968305843253900925981869341224240839487579699735350047768171693286335857927400675710836762839564889957934652854363073549456900169204144253584507664899034202502249386949880921519578238106433706384476128831575734834972999629916190415814540786617202450339492864325131825780605061170077176964981085343810385862564443965499932638351988667452745454263013963223536694536174223720365017909616481575711840418942409083640515740047861785870437524945067799975180249981388380738791470746479596352695396606011529295437916871944445309445055267338097674236305136361910756962132666626379634129404439220992492687342614747195391030776772276126535590875580231383226096430627244500353922447884862556433459859468122307131413777070065017852864847486210197060089907880303973368459532659971387332794166981984536895772931749495084411974553487055519052292364996513233569638733483877153979926303530391970740490012755779420065281540695797351268803889984925768389410981513806023192267833964731218354192551499058429039604107788393812912445476832101738567440038991531166724354912333314729631920837605460105995618673553772914338855971551572339015125437556622759131089994997801520849247837895899972404003239538272601637762246505948441306061133754595559194347567836364307613810843844957009728576201102581187586598461173519042644069010192859025575688215746568323593114154199035045279416811077235527790414880704362588955502255003003554108124664241823619531662124900578925400112025963219451955495200989978206029841466370443804298721416766080037326060380588672508612987406401438911075279882459391423985438549628256569913990019691177868353120360108561934392196256055349458907831420597854456115643004539167166870033494408417368157833191137276898967366757225592032786985687775072974413087817567671402043232873706122062058746695396614314621415760167511560579889777116584012599785012901998556641432375171773929702980532864641826144297938099122088447897951026648230116107129130839010532702945302679817299753050408530745006399568976910498634035194159276634933974637779127346641193515316913531208870712288038133050937118417558957542148666641382920004686148983203387530683564321334841993025131754748245967322875811987893152994763112433373518938535049452742323937803305807112930974174525146215934477941954260082766901209819908307436791411109057703345801378598257425298379090764250550248179942662110915190957250634155917582154238436072754943723941961588408041816633508242080229343915828832867543509364770470453726342876455321592531938751034148608622196598307744446560102590978692861858921095358043456812348856771771092661698936687754456556926540201595807812168770025420968147789778011080015126481107075836339921061666722855174805994054454738088898410485217427835296242244108706023967494323478375240611086064542006844082515238703072338736456536425935746413103679207465289433115032592628463329768165657402692679299841259051715010198087284677287452097452400564735941435712913427992664227623393290104318693893136156801208948213717214433964679906528080401962379649813395655428153265001631682227585237821387497395362250131809752981734724470250623005687977086350978095377034533859033172034801278912292729665234999991624025921679217377168145308031543541451779448035128041294796395394462355676851189195679705728042765670325150749278534387093472619482185248770050824424770456472517952371893966183606086647853452397526591469349753304541575003717790996187705543955392753917105584333581263959697314930466403539393268560409537879708340246384208338772721351338517560402203601258743925615545023962475970130791503336145586263693169297211156282034712667230302774143733681433574757232907038213745458767150384653602734917884713978785910568450479823959600202047254379322723589034912287076200920068737864372542696020839947922555581432716569054737008634290403575807310937874804089562364285054151566107263094412375820442667657803349102334442605680113917425562846087000288298865221443461640105460081967313033143833264366655009430252429725768411527712734532317522377733305228103479443380737988935151686549680874351706944093273451495828854341801108181106009770527418311469561374323118295103018105581796002144625740173387940486323552351457212867990756875243807585871320179605332876845983826847585123233568327046223596960292295954946029371223151591301070724487477386137735469337215077681046198534029364201794690545700174987077461551423375671698625247385649982823834925631912583837686449208095813731782613538947674749281457970475416126886386162011136450843799209142342540849284508816505702049027986411807199643835104080293388241072244118144138725043479411076181150740863187236851204500059934607405779987698725753573136595617588948819865803794560900341047615102084541146758817618397892413629222586926981739690872765818079501267036201879882574851464376614925509583787980236770972427640001300027622982420655395498994386029575306793065219599252504786216205392664152030449836139987538678835277732999067013552528420974731026003252035911793563539223610435031653564210482922472833302056984496581344814847466783949382183832863193350388081073245176554668193784193579989719586999455284822356521484296648368619844858100442765989719850540357566746446187574752612229389235292968779265100802086206255204389122248430742094591368768121350134800014283358531993675448455875993464074898419793284078110999231219735599641515087299177703342951075631795141847349403290538926548680262795029410097932731139420714313954238864285527069956544313901913323694229309463637220896982629430961054589392385713700248034589368987191896471484798002789324636918735479931715475516275107922447856750725305644256665423395383077745197598899431496157134012646663026029015936864055657533444503355989320192037044643682288764804679792237801265261622571349271982679453357213906839207402297831692209617191824469336304720584488787550236981780161386059979530290176491116999075972269286429733987790221309658202421655428533383181440717199188902123040586600055892492997984211908032805831684291353352792846531172239326681407608264408737660459556979596839687351035815251827164888550542379925207758262861597499943925655331212266017251443342224572720458104882539494131221117388216108589221571350125718105839570009026995408280121810799337508304377071905508306116559184535890725676489246881733098479803914902761540043591635878565680190318187262704738954300488267423998123910992847320448920637365929019164590379330149224003949281030604034437134045954916331428659422035856396238807959553481807995466431572316546837751738516800964773115818830319783992008084687668618019694329131517985559237905027712564496713180018225703788376362636792226705378881221533307206111380936300014050166849191949678762559890039907958329596755517917881553285508401487580758011757651569938396175873846352019078036552068916947847594856585419523287780377750112883069278126881918895480663506917160421759629036608628885946246396229963118476756198450887315790489396526070732340919108442579010760533410704256482392314942458234582007239572698753380755172429342214746558135268472162746088516486134062548246661526645340608603762778699135669499122873347514552549768828500156069068846929681050552222265696903463866312867057464575356105190315665892591104405166752926255020242095729733933973920703155667388901110770885140341123400182365984971100671437938177941096609223277679668135309632920475779383255253957080474548829100163323034396840472144314368588205067043735611959710025364545255717662041403085902443220883523626830042299082220510006193070744546022565909623403381488874098917059883058968207786671945552544257876898218028157234659686550800768681641922394699445240681884282303247102302902642890046775820514827508391184325079748318447690622482454223235664415957801778751471773198333798980184995517359971202061100119610061800636013143813112529989589105795722873404259002145287864522209499689082643324527067041787866314686576258528819608906929638456330396506456795097610145510609147625096646443307786905172902293479401980804428035717576440219736591766166510569885853922158819375431362309082787053054510629836235787936219553577928521411168796784521421125448320673933789975396307867513333295306397879068259525480405661788743150374753197563300229348270833233767066096869048434839490050555467685409877718824733407660776816126731635589508327809519199597290896385294148505071063025483116490688914536389755247224426135883338903346919209961287092513323034906091106886291474300187658589059925604307690926846416458255917500002850977601478119701207917674559552465337510052627940370938623007617352833909607637217766525575663652624181319109720510333076283171812208408022127062883014502401186889701633992983199975986183346099021881478046434624820344866754244562021310099260599313614952314562213460387851933517000545865231713516068505074945597726104486103369292136755614445531055170222941858400040954521259991242401760582764866404098223407397748858493135442043037087825707496401366848591941826043988960541009715491630687374433536525958000458675799119716895220037509868574709453385146619607315607294086000739765380287673629620279380351214931159756236031119178516681746427562934758613313938558309838717524123988334518489232476767823951730030597962242884957513868567335796005339593780626599110905045804321114367938203259948471019137701841262330708694027316172860764351399873818813459362077892574726634456609822772877242760165401938416394076585626417101570806371215569768196968420340341230070621199640333020399521147950400408515695951851735783778152331718543921342765849223610345610113927455196865312898512382738396175667618462522476044508970493720007727851829210213736650007193454561584207407434906557892166616090886023602458528635254952247011657528881914283393407853867999997719714662787841398042128634512558918686224724934649250505355702722599644509133548069137196399465713011481383325457879793988502944545027376448641410053945853406927296490320009773619169510343491080623059590479549918546428958460265890676539657679406490032944514331445471659203969052807714348603134431751881294372156240015805712084433194332801929488507587694819085108348601306185784364196345913257914140945610897099530697320971311928507283032035432368467126886299170150090333366388813848460596369616115939266426757664194529084547763222079347483947713213075593638968901866476129242105513484370088795546858596726541353183877902265046892554110905579809255384307379999102553401360843629918554888604837079775968004478917172834595602410201497341414750765654711408100887362757688490642325015052216479981336358857241331405623403313544829861435110125557012061856632047463745345652666562238235825109210970099548574402930756581912712262560916400175135789459556470312629500650736829014613580909622901660814042238542866766463220560061510622102535503311193191375734803181314036884035783027417881524315455911422298550048272466874829426718541554810024865950114148933382121999874207267279143163224839550633265979142392032166141743803690745327103017690246711829948401512260638255912379424503561817839363083970079354994532673180405369420454236761089039120026819989984736485964612735335213194910074424993102063911393891136988550255590234744980729948405525065428806657847203780396220023307264470408372623820783063907041101835312381965995316341631148140728127062725774184135794214237272266065600362610478367074882283209243704439304320673741120019419302193781705410651986141930531771293109581597203444343974964951135128248586335947675481055041322104059118412896939618018425778528976358107836161687459829680251156543087619568331307664912881605362867221144390517791823494530879786923797048733620923726100783410095981742090324729709656231693091476767779246915244567363174329879941847239238577178046343484373794486918612051292507206604258505660068416319915716422764226916573926618747303069589401329945511790455158370637296601948342667145517745569369450521433818820882032001096945814959598543890958632264896557024628584838086557015870078575178014779715711704338734253202826650839346651195764819234513973275891050459379250138169011385596215492329548643320797306727806529300292877201356919036704362719525957056826729567178656816303141828742395335045333597371184929850680561930127588995314415869053589287316829922086291356184413769680757956863221793836662483118383786001957951371083424037369115808129857318825313807938483372049108371926522807271568991196746966466691236782532846298234556908665840230917241704265400290255800954309884245183847447356931214160406794177973251848195260873676004825545206004019363953268343921866409701305474088254500046978302863982178848931761225470345781869578963866775428593920693379461627643657661296240897924470835030714328133424086703344283709327110055867558586662131929350032521525415713252049509615131162964564798974472457198071901156259293642084794723106326634637324421074125477359517837718340639929692218463716333488130914864114568553181796655525920522541945243779730820513650307931015661240443917444538488097087656575283220650572527818206553441526494328272687953758683561519936725816173760107532261754544457590432160535735697932302862229120897365748229674262516433466282448971278293225314926022990720080956048723452456346437599296783485200979452888801631351038929241106085196921201870332124996801506550652491792784035794695372832074749726201596731194091812946090098165855927767986866905352018494141886706935471937290264569734951359954190561351923523443985202838756530178353162437996208450128173308832356757959433707472527318941678025419057997754460524488571616757722164166710368982215326264106510142248788208726902942840545134468252815801674024324409585225320095544257506656192720777779700321658499966874267226626788336106682680671721330094170828472978179452135472031438154545274555814947323199384423689170500363464015532664901687377604473547021063793864604348054474725168152533017546979018274074334572312193163459368802094389557616974289056677380467396616638635642588857528920672101119720702517714618650081503269602399477978493286191035049421578735665449700661858138803109632686009069017241140341295942870698638371013169032018235913081140748357397643462567712837792901410561178051829838557545805288706104782258949964009686176887550850422846296810477280686833583143013973175263957440583942131871068087859055835330081420996579193375961203043965188225350690843029831504050372745676930201748248016833612342023610662472527909952779903202471700024490289373093180256974310455570822228734494676736586613446343890316644411796927506329981899346482488924968802518695606788319048685792922425716443623701528582279641615280954849099854508477732183704375552130277239273867198443600201926288967257794101774816004754079950049331463393875318870016096872549209497345717226264951514117436074815355949044365676650399258079105107484495919695132597894378109494259885062250819115816276614314677523496873500185679683286508347654197935571212062484262691748803934765709281542830151907743788431034462616544178817473723967235796051461859062836581302655503736918329709112053897385044911836756851078702758871753184889328833061478105595318505226719186333257741685063715274070732361384292012864804262596663320674099236458179520922473922290565634102203958415357708009951246452418148731080378778654443619499523169533765594428158795744023373255016792874006719378329555110338106803832255727396372536861560027432559223040325797324211799328647401028395880796253720988981951051131482023161627692698012458135645615192896344949904576839904083746363180184478230866606446908478142516318550338734226698444270957149956440296263964717535086323513093980407568221274833772586917254214489609178101186251143422532268793066992273582967969053363571418380646188924282170922033005988709394614956455815686161452463144254275138045837560737616565051249219168113871837655538075363401537942551522837595962821665100941062292558358093455614252138708564073815169770105543943930721461132951227720123702738477897094576169886750732413564142478899303937617120945134998407972504355051623645787795704554618749249794970469838154250494730712289880565077594595491281170078403286553536781270391694294453996487903354459078734804764906279482788398198357604243782701935288474529936072247383635262747578070655787016750008755959879981110676143746677083355188484873496635053880579534385311565078270107249306043927117591906191572722552471905667057541511177819742035988819510425626541318052468783085614508739408484993772198910443057337058172425674848880025618777889417212794253534987011836030697919828869746504799200942370027600927414659268424772354924199750196566115839063143431786444276894492527847192136173164889736888327235567815511776032279873276566286723735562979483921029383535166417813135453156065613773260428453911274111211130539114704378823580928615885789188351151628733624193275649255724347370150389068332086513261497174791654626250685749769985536695343413812169513049343860910680447868265643742045982631207341123582089785472797734994816913302794518472404844965925324922313467324175299763829136482129224519711179124252465582094128300445830253462791669914368977535426811544184394833453642432986424082059767150633820968864947501681504917310905410915193747060635554616757038148313882982581400613111664376186278243047801537676005117846358561015584640835837974832475231569859421580799906432229853511205610833814391611887271762688064101109388284748934357243177092492635029130848946630773055630482723518451876008430816218586825945170889003010357623769961197955287017925000661966243059326688746076412320751626975852930960378980511036395268086660116444586727884022710397759337389939582028898484834689116469642177559591808841038724383329185767034499001592993366762074810994567199775095021476565436964073435870205918087294347041221932916914792844973924652875792546399592770787341938156585398781174981259856063857594724153897480687742141760245735511180103309657711567004947302457056969277350626454715259533602906086430801118009564230556460258197053854467339767989009647018363351911817055842668410243928012646139484872831247289745728173549563890901456191148570382665731334596110135852505993016017713612993019955743181797404185980301093569982251489926185729305054966204868156615458090539887859636816687412999153589474782009187785490438784284960952154938888298735211679198372237652119013758690068887681823117873843057429086706274270659385987802723439160874229226414656822516646246663014278459621867775879113296567398813493092274089955009137769375632488587373590777906739854921388379224042263211079186162191784338268339424885763942247955362701728661552426190917905531859903140721789592672323803950535395410700320958819722315553948714184117929634409444086215194150942019327391768102372154613871584561596429529574925657328504366033606498613725093045056896895268465634074850327604292023970808873314177279626757879082317278856878730292020500283071903412236534924471563603285585157987846814510830598938771863569542682447503610641439699468721500834556940595763637944865566227170476645890476322714566865344782430084508667959393191662554403441182890249771437983341319588819576752533368574011077189921682370646464383863560844005012090526669690414552450394014050973112898660986936984750929526937330478167883097037631826355278047161250936294970199506543280156758102445392125358938174410667109502182338742384936556066829123136528759647626761205222649611773496164993038234367898667552830166881284636931960070768079198560307389972902293348107997841171836188070291574483820981103363181455889487149378486887176482605853876494160247701315925978270271182631328541530865161034229168693218428253621063330872318089359393367999654225290317685819858685804061039568044370182100328813896041090929321609339133445768125008899898284508262962291339754456861432172479144963990990586537982076238113719214605681932492992017732058846813419686237796133625044985457390605343795081832928285035024923116341087709975517141194190797270878418672970656685566068474793221501827158880672018484691750568094026278622360980243564782406272172005695393362577255909396041766979838893466484521333106125758196315033695821536413124112618646523145541825526785010791692582808952140752997001539257504848602495198924234080860153497775957703695806900867550096598436887009984962715055114482219331783619168647846662997082113018832401543744094791283136237902209169048673374890102092645685795774660778411704385319858215705055981335227915917187681432934123929118417506235709856927341690448864194043380119943644675679688110119134885547669380681531472150879706673105406846672321267095643635465360637127942758531833261539027206275257821799395346268520314992616863256223639452670511621274575139671938507014839475787100306964815786383761020343010890998171663821145220585488796159314425714512278735401899437941857822105981639203480704066485817152013170700987110739418822184441870728675948850253798163874196679296117621820119243020429639783163823095606889784123554277153580016621319355395421042709779815207500673004900103040368490286810590012840161529882760001993904000726086042433169877547685210208536404917415251506518068116155927747580980899612041792099901369343559677030595406782143747039958071652130970821967807089518879489366209626920808428251718533040390788964419436739179927530990826207196113837037189852954235265308716072214120426187868115886920234524360747394889632681647839682259047950926692560114327087962257612120380607375222118023966791276780223504036086099701088677861358835689437389175398191194002542700475926263660558807954318839603195519411560919383921589151828576180564595971575402273149228727790301460365769447567306430475120188998565388028818198184700745053489221576919839931494626937893200660008038029921135240389564299186550683919491942947897817474162988025741640649883928961231292511527662710634822723581107097625659254753052475038966598232099341835648461131259004840797954159743756782282379102430344578713775304538602627248644496768363950161879340485535874887404616563963083686037663057411574228852035492224272977519310970668343000797018518569162952628110946790570215791461928101609623529177293635465144189508429660961074057363124075926538810980935916039727222350744847605900386286995554130308721602507270546754673591144734366927994910672749708254790446075104057570957348849048675094589098599518762070012156867715509318318973972005340699423781121797742741474701586536714501783694129135493645897443864011426994294671067955926104651729673280791445419148255483693601162498277504476681159484042588869043884055728077656880976213062098886144380950291491197014157118007768627204158621521559400873297983147264550424985618971108915506435372520027639088446610046041695414932029662073915862443996076625001729789220136424838945207282917238252876225684470827586041072365126497024858915812381478653308772295082454665287846923375703954963206701261166610433793841998747365441911578823274431999232125926941052729223011851786144459534478893544313793149905083040714012963585137590677496113916856884527068336986949611870529718588187044564817523336681064616728435166330376246716116810693698029246454911798655197048567467875008354687851188959747088282117741171873279590418609729714195339015375158903089908482409331518491602611757543358714467031882826921395265669140405187530203023818610313414825982371482020945782938271029576594932696887083162871657215875384065161132761515355652013353643934637983434498412466706038999287851834238967200326987111747221800692733789217278178229333319399742259353871080671157778284227819979255979869820080331153612485646123465292179417235167897400559720212183340403375654166101322000682315517248540139682844610729315468074164537889440885611148483134682428074995183006417941936793640468550050989417975745763796508799371876879270556458606634664199968218628151493932096206290492857871561227865930998893030079913478519673918724879968622411455930273254239190204054244544033676390113971553154258448215139271138348641466712785513768062072248403174163841123294085454267706944028624405503804386269386350234500596393846456749495453741810158827469911724302687051705366309703298563160054291356469819764467534368797045625143152152562875258013059090873447918689680499664018633059046827208735188808498914486790392942642538010892221730583456456721482847482521670795399211863238198669756086508214751507916446902590026753325515474763169804770713829929219558136081874091656649411487717915629423544625917748833386785408146017939872248842770637864670005349857356476620290142737544830633299207735772818077208879755201563890891405047717922669081874502357893369143183913657824994993867538528891444017775875484519711049789210557770499027713413871391993639873211984598729597219338590652345071577970437826171363035102258978630150327631937409187958862504771961202381038989865387568277712980361128407914464517371117694428866321421747442470694162039803221940130713994950081898179880875356464889069138147596579661734162315652812211410517879119099439087962013646478982891745036562567162077884801527874837615704255149178142234231324285142129949884091234166493544036206510133382424667046852647305227355406885131981773887693130018785285886325550344129874797041400625421113978845252008086495621088974107927331828078315083236581520388543202053733391163944543994947562969919641230930015980334059633204100251162610094120055466887605504801025666669830371265983346505936755906273371865885215971718516234470742550129136935056643993269013150803190968202106831254714102789598091677747793677515164959535104792017856328475335711737668035225243508458707055048596875092944757230414626538278593521657023911897191269461171403678531820784145480296548628983218867491864324676116655243526527966733167006783715952780689821762905399931665596872229962645788600917317081879719358184324915889500766593673634458811944400691972023252468334577200455009907392394409274299765128040698091793719562552160866429914897859467753527468003336019518568214121646344621351585515886895633150691488916770047351016254657458220166809279650017537126128696441589714754830004493064400870301490675012146584417016478289200907455559409297097502296729880676476760694826255578966225914304595544375793121153913997572410453181367537442423643157669176036535966405046502891060908111567914085928193695268709831508356109284074677022267323291358737387605312765867823790635975227034165670447019484511959288288153526654794993567582766549987128202557536414768257652654692009423900433078254828056893883346869164508009226155632732426625481205241984834352634083229313355969400549611962535300601663226064154246280240155150546641897714803499681186045254292249552764114394503146622948685641521692216477742329690525379892383128208267681384418528155716707721472260647492687802139464002482601203267620672697091850829816075200991459442600203896932489820904087329496386200819921159148395814817648431531052823935649154451765969925738898536846026090669827056026430683613324651350424107805407695571036227211865975754164713893957060475555664779488948000108978244372402502398276468347973465073744967261462649367331392912759779500148376892603501693835793879478533237397479523662299140278069285156000397514786782705975404796157471505561346179764212207753180849813727783052041033820464681400014302036952451128962559285750886748892115659084297581521491732708176996441204306718699822492449252769201427525866088739517584459917356052592634874420026859701352749147639856374348742570319773629146110569594756965283239114231509740267939847489277055244240863622755857104491484816956710749976791598078048806467890546883396218149571830666866509283839616070033051776948549046370993132192453636195104420500666935661300484884484515877599157176288175283371508212703935911168465407931485389184769295561331924586294157759721148635673946416718861994277106521466684885082468567808057697395395330331319119488718760045871051986929492008785559441362294652160229776030110550100249720063862300693656504966587101230961764948572302442506590468370327158105890762059290386351662525315504068897385434153895163035461272583643811898217356282692837492012790748474467019429560712939124603410097645434550924894085647484193142249346552551919236187386669385086979908342023520770774743672399301016060926694787028959417443288611484121295970503692223010660141058379880748632887170034420077923889076816217860962303015992759761120445359126589987916169743628993266009631701091251948664475021857970239760071033663623097382385706313941034497741068111833959877052944815927846574028056436294077818587987075129135786882739129825920788559456996143845918067110457007698514984747434295878448545200961569515567378826045761579133366256603199808011780263297135270496436525666647240694876704271676335875446744956054822188441286834370602190136028307806134463829679180177856731685676252071352075545416181909246454526273477408789855596452519377491248253362430693408444586449659698817093610274397301754834890470749697636072990959490388348851014022067483948412943935749759689262848244118319572947988004118539156684829040540146865995505289237905645852586628835254834946574841392853744614028129718906233042078110172597196461913607001257900977772249827559067749368003879559303657467463372748614694659889469349676026064017939083758938037755710458242105456765408479644793940510088640205461016405173685547386390408913548885862683126344719011223286539538943292585398933617275631847601585275182997287239787596572924107027844447217212026053950231017518664445433448222695501549980724708000634144201764717095798355426051793896920056449546812957647058117600874571421071941221738538923663118560308372669594903072773051957270881046558514065896438948571863861309182652283410389166452793493001814726711612614284860534771739637248485046662125181794641677534408007215907938864291300416094870104822310291529436398604805309017798346157950580803202914225625623012857907186308462176790026288201396834476163337962515189592129331633969427681381010749006556837296093912308122011453189797795454018611358488765138309786004192906631720284786958823762596975661149018164006908446681851025285973358551178500685750491067819682779405952457146999644177261729180793026600162960993557270982026803823566051846936186507163438906195230553217594479512868571922073706956194861470595965191339873519353501135420462556708806018159140996326321179807377048244519894535646320577755155694053390110133994890986463712805529867126013077862662989260560105433818624341880146903917530483708337783334727706314375580186668476905974186951984183491965222024882397895909773364343885715423614591152497763684760694190751054394671317768617444347145294077326113227560060612464549143781602925117432114916524786086748318162171517705394574087085246683197704902471483762317556024872395353875496008643533573871165027028576053325267240757934216474090670305541589543905942160698337113101554278193579235910198426762773316656065141309250108134292463663657496826595598366355143050458383293077620310504106712466793024422576567946217381570701820917926994908267648317935670770675590419881225868398682928728176896738960232233043030113281697518128934119142930439084967049886245242272132414972251404277412925669319165307636312646353246823800481172597434806368905503487754566447716042624416230095453900632573486319087339672296069915538590562202682321808235424408091799060418299279415944087081792385598787582245224120631806772976756911460820292551329740803582521564044579467691992321913948157613721254462608573881437584372784300579794291521531507835717820997934142647646758355739546247488827033247758081081071419300146941384854918393676281802714982369243128262261385935792926535165581095811566176226592747805626847346150552229721643217050113536927401412208191180318907958761952992549844462211360676182578530139290516049401491701601172592520005746378473945838456902658676520715136522208071063879915480451394056845992134007677743675014844899784329070437771576025200490439634658188441839711900223850352761947421381702889689179212364417802963614372582775734924714378312099701182499568629068709087084664138067049757996011366938550908610294330381245578492195278797925258792090293707575533169492335536884922602419964203900004353859190505142573533974536562452879591443362518981637590541872959448741693474288259068795957989883205211737645398110396493330114059627957925946796616629824171955940501452933860571941621731430841714581252536918282420026384718006556176561934544475538065545529165907059267101570731293673383872062440789209788687319403708218662874245904011101853783855414211326198888679507497158421990858135001793895818480608872383396331446684471559440822970274059412145722954225516373933542508354596337701258233932240000488268259486712956818908019979943996528296124177605479434298329860322336818303917765705656268279168989858680217239037970022917165703174104753054745840760590853386741772888290713336418730304015743304970033165152762983367519612295879967231355738388486057701972667894654596311327276872930901632066264973935468582420250300236457375825517535868887157702292047898526533815556265736171678061842623499995588338027363525810264851814997899649939609275869038556484195783804315467836110727274066681321856982164108798564872143629412254515889200730865531810702020661130741136677798786134123918304290672501597459260600274023882967301546415045269151027808363012417428713356722952220701000022326328870418373613883454804836953057574869579985357511293265349963773933383811102607145161169204179150179245445925837825752909891952059752504909619580551949444132162303380118003063305623247084024661956516241045318921336766866537480032203481861569749391134596073942612413209172190179949139036822911460729525029007078631962162922159545049649705116693597390200855419355316851942297521042941841324509721541609433887395272322330700481595596778513135970580580271872907766940422605151971318597997732607184725363488768281856065405349926877439951026505349357246651912553710742039538616023817419892198950336425227807268897227739096633500297199813381664205172850460850762255547133603701880761498918402514739664845640331702609112986370575749149671810349350477117402154936375012538563608045719778792178650311963410235209678223860472122433662667692872047062082434605016624776081579327722510588109579665690125381719602501224714331196235112174390061577258604960692723509671387765156244713647294342745439228284044026310409871407983954513309533906798081779616230550146116745263227828569881818790751247671917681322599639557351089633627529548825571255788609841721664341263817507321115707108041246241591971507019707733151758172193481591605921492896352440594560394005321503450389377947797878570827587348535149862214336769973643468820021302617263035134183511249189307718518125460007830197834272386277697344355738965712629974707293365053809981869103590269373655612517104655404278861351588948914677151263904664177770221254233416529661784824266790553155907246051326519071398817493550900206918583175476338386014630126409887778044481019130480615198218387826677038260676143566784541101902835512129649174623831151343737822648465124992332052029657229693570343490970791065324981275717420045158164344081103956323738847531903458496051239471412813418509920574228694951975022574802299700779051587722518968021132015383959933221390769791427826408930755818645297566090413739962781954830254048047227652540623320251371447667431135504735109422561207722313113533023262473583098788275053829340930930390369477306553192954942618267643758916987874837034572251940840513644297875678921147697409941110270349307316417406306777580631110059341425812690940532189780824114352627883078059041822545955859254651027280187314741555979272771786784415705883459303125280566780272106693451457786427758104612744041885698455901427060871686787942427218214789310576114344043870499370949226537379688459978672672199107057315349278545538867470907168974852631011826592366213970934586005145680965368512395096465735753718195079358767832211516239337875021506901201918278509236139728676037275302388355542443730079869000692524683056545956326284957681203198096447870132206137053482254565874981673482295883967317457902016051431219483524851752449333645623663918141759230349222110425948201830345490728968834218278843110175259065446418761063046364698394248089850869573876345812985151021425056691492369292643091665736043695105174168103428545097050540382762787564550022548660068071276883141251696846868285490320143203646450267338240435034922344296313146443983576127825955832909188847282619254138961031117137704751799938443248805891360740854948838120935293420856159884427396723974810963040206532071565716382477879623981314251173081324181714052312342101390001146476423127550539946603898011364989601635913410606834614169433332855192567773148185590042434718009134990336663006399022201894376299775951379632841894954716991872164871325565827477948890200821218182330913550438119241193947327522660241632808850868892585186004318726942509687061106426570039251949486754963169891753884909046527689012189943196570154005345811544901331502292428234552541311175974527761481163665512900372369202879280901886966225967752243618349547308898960810510073833937405840636914334435342966704609402829022514387464505475000985650629164585734205615086717150748759940384878891823737860639379394075652412455871825258241797677741423692426662718335906021724254606017545806957274020255705638918599685924997907746576720622031135844073792295221949344363091770049117934389139731666233356076095414706549300715906217450285266447644111086692471714162584278702185152156866188644748168567817540064118310285755736827114202640999661279326200543255778673616527505080297561426359196531255580812146905933632079467774353229757641026085589142444302984156331562246759353936694691686869365688223418169127698308447874585566446061407892420937547901132811398015177365077314194816191802709805532852069395372683106571330782246786216800554248115359057383201758100696896407636581489357833503584468875573930015600976157670636466110672836301773848145464896939441765084565551151750492562165329334898488713473386357600420562150487051583275465316954754914296182192716728673436393246657050392606452694438548417081370699018218383785368764075409781490504823664149368010328573307870090501195572681087305406702366525272079806663643944568751665290812004370167538936283155336721797382374518671548273434098541479619721713464833182184513645976330991432494780052543379393291347367404168773853523582084919505632743447863610715569834860691666942816957351667682222257323494696856265856685258799020612778657129957777899150390635853541794936711488893000251354359045012815811843799533029758486863845417180928230650737058492550781370511661480982792303013707199099305792071363934526689596860055326737094111261427013835057044551701498672162037831537273135157516427130822133609814362114477209176451532990501547683611640627881548143301803580910595553525329450954966780939634817101019899006160642797788554344905663647897745251513872829933690172280682807971554125710056508233878324715224744736007337519834125202238434732826149371710409664626040902067561560563937746562063198776637845884097398452292224949372655277086636224794384170329191708455986353097958294168421094102883116431811828386248441238135847197399834113436007543662076845296777330339931066784483953194995883576565562807294406066116431492562382619796279769339702040703098269368893057440690247802076555726529666043628176352923785164909279240218186175949172341761007712368460685100136249096266155182064133761065916595746275796697301576134804529958789775775818532344610022950078715438511196511113832015599360628288865932304149435396071658220740677760018345013912640271170221217470622680696886474601121951660530494188241894687186103565753988531032387554303292884958734061638142712511619394254406063891897202731546163183386994179836606042558731968554890173331449016094729125877042973019891202509757165989585739273453680067980725025926087298917288843221899971676707562041728992804279713012112182153064674873722894911729255340257123221066676429108301531452840030397599985510783772060952694876601484828990147902548913285163420962650538116140715335163589627765855744255405763261012201117289051222173825493217266179171432259920546335071097747558401011288178696707665099984833496278621363587183808371321030232105776997060832562369886154371537559855260750753043850034309978258377885359396211799920149921679644927081790981821135255145751190280708095201069649149022761311184020295963350521599828966389467374163355790134656603320930745910849947541144344021798422901478091306984675225359290086267165979408888279076014384814429419422342347325264792002257792614341885321541783454979937817601336439223253552009694067235410479757689887571124715908663146696267021742499034016901391395089235021664717572103301883265735574021116787255831263674295507650774866569118865244743171379568399976399720326382354837258446995455072271353900159839180362668545185733659648866457847937220887350380192570088843872880759317653463911938254011766974662563543920204181274969299758268783124639089304999717021864188219479799292071560974068494477289517520732667026427877876210405106408853695325122338239762589054184583749623634998320992823221042226492697275796654140933706776185471438598256294382345971203718055239801088828510884474228529136226381953071797967108649486571819776767019577617340938525251928676928927051893629730774075475902409592117122483548409895333057263682135290185417474977044959813483497504856324233926201796787023763631775535224018550045922967521759854447361619681463667464291812292712325275688215511067518465197786337339857875652866207924970670226749398470012059258376107606791852731266375396588937265168180488185645126216085528635780391745317766899900470096702347935147925822269513732098479228647727377263481559552152132057239100064209071318673102018167636516190693105526301338317925907108680816820971846421741226346715785582403946608989576945264056875237895819300895520121082147279157960044289274701760873921641190101497873007557267354727206406779142030180438096679028631791257686257985431788258526894513023913183365545903396694023823212696262931455216171347083443138692694223609182548816145600838374828204420041743286934955549790954917046222707696499228907893561361777169426674762836601043190815891089142017080773442215724040209351000197059882092234610148847153807085079434649589279189118632463280325963027114911609297978262696281602112519934867329232286227731335127271770204900920016803298925144987044123507750006495342477884011004239296696998270527755525699900005343425672569336112533607488047326029762014412349652518116967005632082453806632091398844526764365135273905445220827056938552888043059070888468277296605085590870332437176176784709156258284312878356874936231971361800566416999528125137145305018105191991164268793715130326311652057480957670553882849718216579109268515276234533434217365110445597871585616143977080939192135442053579007010890123196228911135654221536614042666974917221279121689801535179804420359928413814063747393787596731768295822517290772249605269444284602863196736011745736300109118293505516510722782226217002836011046415464442394302026892282242529025135141517277666350735435872944514647311711745626336655604397079090768419704159369566660216162792280405143989566373667561823256205686991314548322255184296687095582365689501894715134109378245356781491001550333832765295797999674684135137888364361400868483890397805167529320776125561264935817328465129147214822722825287235661278598897265590456874431584648830346958057907438548071080693517937036550120222188374338078412198187018389058519374813383720622402996004304393783888000164207617868434103092153843492284608215218120590679086139073747815307435686758300268548315707086454511947338740704759770775118748899551350476216754364115944983456110214986567945560767956713388024478089041163683001692800360598232949645093204981374995885357964366898625630777658678569059363232585569773557665697744254434515960597797248492940294448562399425956629567851598965801412287690052648427697337314898621179110696701779978218952251078377019151449477922526067007323569065083688016876312083547018606881653016893799244778793300548928722679353849144059590400260048190800924951560576481311557045598727502911072390144981405671188695958938474705921397381266987823087530998999775652631828197254489333940489176465997570350131347750399027572754771230737267877485147872972104861241082699741098494051917376209056714580237367122857227350680000707452541419991195706353752494423808350698076025327353242257434135333330310131832388702045981056345225779688986982580526037467771941155874266606120900005972648328827112890096644777702734443859661764845330737065306759182609835261984522374215360372188681738659548490068030087700347402416482600600225944609363614053894536335065119263520660571560418821053656740201409967460934956120358342394846541633150531305453851989948126859549042460278654592929668126281020483862168633667397516325343147651056302585556652582827511084626405866192522150525235955055159816479683279997753491755606144672044787435892451852604160400146171540535550807866469454973492434261016209405006657779673519798018663384322785431661720856860037226592688790520653245889877673648157476564662455099204932390513477270587786744553374062042439708378074128239099609120940502098022304637008203643288807080156315602134964722644209663491149065052770538780141637990703685502802687954911298088151175348625865081135523641082561124824926634607938196319113116398677043484670368020853247156311226801529908982140098525436856097838500140131932295632347139417133636219570662767527382612262101840051289064430343474021730747148468497289801893688267373297161473714048027829283322973928103525522936972323417370463153671730479554636049372449371842104805253927523779426931893993916150131347487456726548104517841207226743923058059978765377534838759925207055413891621489776348639641382628212955367782053756717622874578705905050664626026282015797060814059064954109740752656245732019275568048899753328609705605349858741260777021703216449257138116790232010602514344216954000131985344639377540809970865660781386842379330192775254293032551258247581271131224868014792467191378859811457007229615197939784189950623213023072396399582564941765197978675644428881357950418023320308317061420622984190613071103590178783404964473307356385817546503640773258245511921973194520160026474081585333364337607178300965267501410002914579143827244883544505969746748239256141620061821432869462011915503588967468021344763582944575788523666398852767207421846110094163083527574432194271230565750997806580581325636305006722171067802837726820885250574281282746471749787151780751808299414267711392141086192121641616436079683281990572310057360197940342124687848848864653590915830230858444248344655619938486080456810509865283607743588983395485215852475466116431407603653880910934856130289372667993314850881015236602929977287375714009453355698941247051852845460700052073677623991347311266734718556666303733693999576979375079004667878152157593769491482341063821130179116450613430386756826358106207113402221614125368942741937053494060972065196737735571497788579607812605434250519137606481276225098639377579892534429409188738898407924383466040626188564586714006460806192551775965122441082372789791980442610050895285175764022833210402788361449875644569982952708679958577359841600343134766376748083248577277990157108526641517635803729039204806335135742437208109150286606371318519191054696189154183682820097535887937173362500314671527511828384542684722248424574130703083146975650642000352985482814458187285425580973840778050560176501108518405473941647565651390895317977374952587737582555322220307823058151505201777488601759900967899998784778688759043537152928698721367002230374495257272785434577560138611811129644339102693976591444032232939544946293660904765141490123822617039488977116790583161666254204537934230695801421519708850051889740240486325268069217082853065150721466614251208613292953894423830845894296229962933875159442400536795066787093993926899288663122164826754574666577701881062035119524341119295100815721951575813186860996675984237829917692298156028114166360072722822670396474489840195460244189134280329403212126130207821746109343969006797467368445951580050089388213936685609084450940657128032892077683572048289082568468054322919781630656620531599940076791544452499025571996084262004970039934540342741883130382521318323955702080871702291678935979442776773709812689220494074296478323392054001761379911929292841641160459532930666317775178070218036320889836219125221964753359966018127476212123329357402675162065698173993822477987557593493317077231745569077787835931112338150662455800313585948239937621437852144140806642407134177972720806964017477353340353321454579126111708563756459387936033630604671247585739427183238343700169529642378514793330889465123783752794926624862736826177582654163445629131453659467526573745714350637547147468805300237421739829309620251133641106945605061742378092190336006141234502812401077014664458437114283603041662201592514198413051207633961870284180986581297737735128877497392588206761235145174927252760121549806031957787649747946206415899779423281561848247742119678548147069221432284075987751013490574953727368069795039244025399957034658998078736589778486777992771048770451722733653545972776597534627767699973425107887607029106200043049550481990250753999877212524461917817180534897689250813723262459809789818505758270037644286041818871938613030544729702368073892943038700906913994298121818446719768003934385665068518623472189092427960725939444657436958007124790851379097626566687029477470695962724854727024833760675331478270738315791887126329486796019269383737778157125688877745182788200725509878009818383708725433378365072596362790625208478031409644533459620221254337835765780414726068952275477460188240695583272932106622901591045547611468418516779234098881656074771467516176339633981771438021286028809034303287058394984813670724864465422984810454576408831753434657651526775398619397959475132901308245948125394162033172702917257261701919870299843219914091246576058824721930162957223152934436020670563934597213291590557993260435149953749783895017489273972830830903324157832201432887978109625106670317862030057506691771821273598542643793889211408051147484532648735265244460502184106137534217062951563717475899211490020184509059593477102083757924449683821042216984110326100108054947432115950584827995727773041004048896118586648725043375344907091242441685185677930975725749477327906062969651396324885281900609570794333955627684869903318927614215958056631280583028932731692556564025227137464086242261601784939159187224199358878763936484263383410915718473060027835752551743364938695109462504037055661806184222328645426860423136418531525519283553303469463776585996166382597604065051574322499872391921387495632944776743411085668041741392187161427522469300863016305838078456761019373727285739230681802103394502629329615877882964186109418953028191415739274051957483057620596972796891520885075273304300336581407210933334873057848155545509423682672469808950326326091810693869809980465058139677286427773167700670487143416149001514098623143801802122095097468902929543446669061987885288049254140732766676654571297569716014538453741282441433009948660595024680727656179394894799678935837412067003619510749592069625489835406122381738563415843205118358916307491792258925336007212522930756436765838164060227438348515680232105937213625018664420757372285923831493885618578935110905397332107861164022154033017220036869278045547838061633774054011525758493785749590126033984825025869476043576317006674483922728967593199564404872092895635460933303401364734625434407836573611130134323000509310392495663320458706614828438503342327977407338745519847416527411433090167938951906911559551842450800077741864358636076382713029417949974730847157763235487271839227754843549040173653070121412083618554348239639484127734068360262666783162574315639275728857837219135197159208662770850359141712314374205297110069481571076901513544506243130387727708447696737114420779012453351498876783185773911762317130691346100264642007462090631088043802092695605552428276409901637053769953717136833611661273943623304015285433922223721425730880058414978521378516941085140317598507654578684194749884305643749681185809030073683049751809031055511215705306197155822061181314614028529337943429542503863141267591836505788557856392405844808961882273753187905093193767040368156227215053305016700578838560372176711505877045190260863351086865169363780887698422988256172039407527753237647620926666948466742967972757605326724771207422851779533879506483999023729540903083928741247944230303914134122409759693768598049299840050828916081810835617500665930455012228773411967087985017141647453641823891539858627268540878666999362963241672403811525789800230779896551802489035516703623471080627328427231539291460898688833236820917389211305574666353191925804600810945150738651235366811215045132553480530382165046085054595147129090938951523220904250243469569143784817667109972477367497856839698703740780388652234894317769643257097411672388303342436934107210164290057180211852639865739075949815652950453996704091856213050360329346091753365067591025930300411357262424335884310829949381376406900759873490094055295845848930724608510530297540856730942393816295943025422780962940678163045853362977635045235966067156083606124181190427338351682505400429408432063974630444065570685470684042163517116331211593281164710115922146742167756261711984830599959160781098687861778693903100660613726578728107219826307293291604439250237527733631701378985409656139487837766436081136817351195130998671883433925712611020783034949062270132452735661218080755947119611129645566245422685709081951079629013425404646034152305190329300844838779351212982872074961542288218701831927277023241869100476146638563310094440697927718253660214940343519354410361615433832034718955843737508693679732103827442086320677909831792618908611280101381468622344377655704772934252668170756633434501590935058723115008951641842968739061164727655177156132238350735445132296206997867045910450947406412849185944801477224217013276728657907035452997650893893974104789398379091449276765298264703476338170830914202285204057535996380427533460948783880786094486553989835810007336882452721082701764443225435017732105475694483664150068773218156641489767358943923418127111446126217905941921962957441175420052229048926048515900329239662886342724409263805060861088027845956166375414927733447854183725470764395565527530537076915112296729005788869506220344751262444128525856354600088140695917493057911395199422323333439704785836651636994320983133109011109034960243413140024138707163027820655689843400456935814923379754225633113288091499115860258552584147905957929473206535341162987054469962101505902259287045852984757105109110525485113497141342526401653749466847366805738922517703785306620396995861892351779262756024381031942555255580593192057127418179966092562532560769988614186773361569595588188067952591607316918966151736052290239235900207934825447711570150995422320549224798882407002518957326813699942678088811074362877809626922906769876144838565945331022708150819105868797765308684375770127418155530995036413714737860563583756338116315768858554074462526988027099530800857979789304152964315504132856705042157850554831650896138493163848335254207290648851353101092645015790962629145522751267120230401528529387221244017292118026238832501042681449182189094612797107277065588814986329925806511580207319668158463986882034621038076146359866175598608955601055573223304419842287003118792793824792440313522995141473263207790022813658154050839369929625524176369940068643761523029084726327890644668432520230268078464073943625875095672847715654828267262284282686236578084323452379831707226447960128511637522449364478787855173959393115440940638401980533867472641885228535849532839171033788489075031602702679828448003804091191841018491828198823011974444063275763787813779884231384490607271417680719099448325778153311601669722764595046217887898547777615062037227044546330505293695975796177170296618744176400417302752096022030491155266065511416715313066624864351827661337946690648556325741539436289858453905991403101897851186878504066765034139955809402402547532158872140939113203563150009368203380218504520929817343576179178273247084993732535408971863351057624376546700800761344727219458226367144160343846089415172363350279079125013686346273859958044066750873098401728524246698194741444592614969219023859103824949293910993003517531433878194071145852261935415185488080103467263822249169578755511781475590276806867723184372849167104528975621569025351462337856464567590870877926144324894164949768404285112011245368861263940697644614658175677361605711696091315149547509016843013020840326963113735089271378827844044290442885380154469657935675319651276385582213330686803893612170966707112199955038952405503127390728835674831063108488124785720815911439451454630459221791113551434945487897234509984960857226559658982575090355569254562873967890777629264984505523332456161054729523045773704721071411551190674846025574364653097986146505984691069372517394231622555128530501432145359618117320200093541987876824282867851839330020945747030083127575363454891317927576426441165687599915030090045619142683566551583524425106795246630919158026959519235429409433578746440325047796175235093565987091006942552354923610280214700972758160300685544355577208801991721614726929594864676109801436006458684139197792057388410580590967451884047413395149967658128287104232690404002709672514696100462630719806352292580825041580641846204319423929629276075274491465600688258882545050035154849159128363892668791021454524369425136318011778571025928879751753106644072463982832521476614754050035589023906747376378585465731704333453143328809275256998227440646736476990858077101577921359026614543944936364021271328055768630873526725545380668860048053813821756550932013275260171832777086377343797562494556738449514359119212216804315866459643364432563649280060168142232170478510589279003123651381088812427980243460512610805584792024957254611207694620856071797215802788174528735475499174830656178770978020495156928755021169946172566588101206905714523272996477078539923508526286501643765740475442851574439376148712160659920323505582719667636113829126138092768171604881632495695500327492944027167587670507643990241766293760593570936478652026104017489346137670737085384323654442222221795886348798562566212791374619489643717334778133732858204923225774955634324481765262386251063950971368367801427816355415797107413819309490547368718764543162652673319207878662634677506213953471755695838738057820385805837811233942849530142717830218993564489157297548633491107906635053035259988388230357442047097657509938737819268714271365901972904641187682069735370402666383370708558618551181298977356549203660802159659569004364611177350585661461829729383368332922776118782341697215747810648255995551137832425135340346831710846938212272047949809044270081945935675118344399588295177149707805804815137434919805946768546588087506819305290227368397779023985294773433070331484510494383834462449043279788642502896700774052763069590732219120449285354443331925934443826314894727056770927713972782144293289608865377135118671282488977372014992499448033723965096443792649372873474749804216988436984329496612901727725286176462278719064187532632598516254655118541076850229962848372752791815707252163516488282411162015294296112227800252831019184621680377505959885188591422492465269486586368975343394568194342193702652556709494475917730066570702751565585056919168208601871056081779086974050039431978634076462826219904131872319468164650618999765994620400211756303939270360528195425224931452198661810106360636284445180711197693812770205842097593617000365536709064016382649698756272255582318278943585251818897990261625266363477307781950678327905720681732053489771596053377808528100155266198307702323362964164505386842513354170329585050898466293454966827700080282581685568886224787417013684462898370089390558306220210124394827475882765642268403598686359894746806234909623096183005135687140705483007627646865329212300847906950278079756494833802211738978681151070009493717343194540760706820652184053477901074818494416977249861832525090932021927825333364326913218711357776526126093644601146964551760943447186824428720779017169293658234195949388979716365629306252218713496058058074706946805438168815631462089299955001238862146900825443437799320720902678880420810857213849163194484470135147816106817635341804823224475380310515814963333476853766009887005748196506583371701098655377185345946889580038691912818582413087296396235133417414587016662081605912296688429903685474340312273352572898333816630511136740380050993720674520441995034501513152102594760958457164612014987324780075025019121545298721035925839396767977449104984581001637252647015918442921584089321035019367940313998900616437802137109385143378802665310211028385938894617547803670466381356544619220721199811844700570033549031872662928822579367584220613271188384357267789013248141327307004624371764645607684528462224564421613511637499623116985211162723785111789945504835113500338650641113658430762624950660288218958322356343725339675713136745499710849602515632905022936030947315286069586979214555344248173634027530776136608809552708134327249734631096708071058314411260132207908540353850593351240411089296173158466517455191702248117350345528933089090864865623315736405583876740741828647249620427271725705525593253759117881237396449783578365988126572220812480259082467022278260943009966354399582924481019887130867456998469332774320662313002445472265622541147007812369830764931729359655099809469215384294348199175855349498634115675507402226024958061391749762926007521357221701037821598708670933584057160120911876775597551428470354789408523021639084277419904993510707666524292794659779990829622297308482616215978888502710649406884665972749534984679521647188780322565120836080024230145904132348451649684257598150182217315546722151849067585843005883677587884823406342430899364077502639176486987664676909010636679857821733943126129980685981022888814118865224127250744823685196567502074500009471436250464791828679732753957841002118149788970581291972653980579572520058977982524460340412615011692454225519068035559124420218343832153778868985580673872722459227445649402185961992571301231680091728321979556945486348710454986836133178812034699130457945053944333574914128576533035872230417221631321128380404674153490806380130394969091196974504097200754485478459477432775215742318433102665034505836907435974415988556171638199329231217467007809054640573863490335415647167906672159315583300925148492166204104705297817665351286148936356080796634001910509041507875391359741654785766412150163597294722592162248372924255077738824625609543503996781978166188424498121205523611007797649106969992869800073030274233206553296817029692823455602677113500607198364453969490648996158821509791880998627779724843306535889599734540682520452610386478525739650377581500022063983000399876483889741941109453936078579106988081024784316701177967144743573261744566342062988985268740235082131310673029191659002654877170404856649198245048159172815639796817028154624960825369155566783528204567315003298775853778502562997022846220538469069747611002230773273517207910788287139333387780679226501823552369136065476262867365704443597113817695029253409245904689650887479031565194186549088120790985521371391608927778105135720526502834858321749747808129967650895002563543905417920707883495310968153722081204494135727051542509058740065342611919230945290005585330158419700886748670437698942221803869189747970971389759708644330081816876592172697697111562811468065999976681565773762330303310338937389444895775753172074714087142363407478536503315870917185127081263475057154760279086371555516637122063575715455149621804601185446171670075556983622162402334628439011997168654876678928860370138822978266945483599857497280977456924323875707666920934503552215740772865855899883597321903811509651320190528316628715555291184888010796396601922133638758876826878420137323617135169176680590068414662515475232438257424847502753583494428520972299953497172051235428684036622233610949798390728904093955165951211794258851933028222574148685240096900409975023473969018502001403654689057503463613311807711355434439408455928906821634766987793294664763469312593491901715830497040784674521280108874049860366138193638871581086611913061867962755472111403746168438590723021534779806991120974131442978214213905787086792019504962190778495928370724191938810829580417223354262010363454470507975287147099802251520652928825569592781296533898924000594912731573824631251083796570687701225572791397507814452807710041601947630380094419718954146964740106250524014897222219136000319490682638191988845328144231662808024087762047116582307713407525355308056601177767637087075598947655973259754306181047262147414990063353365180487235659298195950630139013958136527247699177418792277869576126191169019684240675757781992624593092800848711129672147668403735384999788114947125433787219683032936008438796244272285084927913613785788630077628857161935815596255235703079874107791968694800456370298213505644389630051767604808415310335487898286133089133254387692306048328007841838651681285012066418331934983920517153317949388504155943894834507837300669332377566022073787888926690234832336964731930090322285221356749810349551423432510095811541580060701078140309883903902669198330779016956770769763657168836485091697260325211368983681476372183065344423580936471535225668578946304424757830315161260606628810574126172022806476559629304567328453874356198647052550654636583815764120027318404087549865381776804303741942836358917860717659862154341331153337101498384874923654368680541514140615367844592526632296244593994042012629642293584443861476391365972503377436360314300520060823271989505925804163134686633328249541858620398120881566148867328720269834138644938912219878396344710087154854958587717746501111296861083870489565243286486100320653549347675509211435708311790990425883356543260911789315647493635635860518374810443010728086959805883681165848977807546590339309909513819706019942149413047218444821067707989891478234245344233325341448038478718790920795046397192032967257763747073762649489103256675771736441331837386493620820498797022997033983863972590623748641777141620342349061776190198704582724155594724209550458824226261723228333819688113549079428868038450060431645731611126374008311864664845280078105843150076443628698176482462619434132492949555875842573627836927754768483627747684672454407398053642551258898781054681225057714750751485355494951374770088172659047996376211059705737452603078314568736375963778388945744516210355712579283310437773360355364853965577296481358215559885410410762677856209429358624411612513470008438236246061957692676745785241464659168746274662984133791461851375846068221919095059509673317843956028538611970362662680833076025598532498162777998368672508164979069112884279378730753805219476896529481320819773216785691963121308973032008233046541020584454232180005047171330206783855605686691097130027093827126727066848041865072450821635918271931063457144837275862343464079290415981713397670694987094546540362388719861661105694629730577818208659298633360316745800892745402025713189835575262332592178726506736140316611461571522342572033652673752766385240099517259673828295019535750720809473345699454282817287090987641901456543917373162985211686278653320286026006876933384950208640424068326009125555335506286989528472276931725787590496299072144315173837862643523013085610507798201222903977663338178932168210798177919196386175597743468338491609145208047582601129906363848839641617401451429762367841988708380679894126072397394892617824168676098715312466452980722594415849029304621908685192539693426857431987631611988490875018654150196912484089066098649549202105918773722101658554608027932152479428656463531102922000906154242885410472407986476260682350244949501765143857341248402073182407407137082746494640720911164887140407082173858574275974453090690989500360464840223394875938179033952927746192541492473191643409290372999230805746417761864211162036513995691642227995651356326331431143135204134327412969880951028065991495680859128151976657582399231565200051614928380881100420818503123124980308586181498156461103675503873801108215569485479393588341034803883524180863893327713452706436078943195264821643905913592989477797147508102432130230538637566038034523530159931193205513947903954676276708834017050257211597826028015521639824035645166975005107173127939880413092093740354592911769472485222061862369478192498900590316116649476822085451562010435959856362904750446958419397444130780263764118703464999981521464104341040792346269471819113387101878808670627233302546108965140710264186465989224113554186179403521384587446454171959901377010765869600099875898993167329259910463216955630886825262695460794155290896793028404571249220894799174642358160368639752690169705005612566515674902779117256894382611553561928887068824504871880333990823644715727571567502262472705168326053033472178436876648858538441564816180084455205950676646118116251995817345892815493447539530210252966383640266632609642943253840447601348405697019690843804777600090268220345476025990026996399586122352410041528989542220186640921260892031003345376302809290227883377600237834897465940133589508840094364183407388739358486499329435859890014200319431165681845397433929122962476407323899680246609111139755442606649653773744951299331844132820255738799545742399786239861704912378603268282549513090855639597505769314782510224015132366805531404998689502297892456359561350930466119516018987478081485609104258996146068709155588598189441309507405668628255935793070656331832700433626325649393849069711443037461737670088861811494117442559857879338446432909987416627665096290863288648965578433809055297485185836899114943532841342196573450367274102906213517567884861090541976027058612901063934354324834447324727403505167775847515798011542810083409044453691418928396851041532105434292068772273069677609650194845651865414596055574085340346878880506936537365306623225602147533510562751976575655681512011930986319864492325220457122664937030374398058386027598135246460274809208286216742851003696167775765624696805187497820271105554673058123656666963875431184684766008379761546141166385563267268144663349241289363393481283098842837398858261416861755430857189465223699141360904648959150571860114302792683481521120400491159055082871933363866492597039164139651573021247381922784030920607183674465901333958356904172874074982153763731819922606535168940447445393601524584587176037046514649244392465183033020978476169491740739708118572293058456005625462478173503342719119119993041876415218202953741069463628391432166402646023949032437661076735071102978362159584190725783228685150077152578896237391112591726963649484997364237368209118267704162055200781738748098318581488696434589966734531764085988181018782421057957014504954657446321655028904202968467976163268303624886976506103233729023827817555326936955167772340700649757132912088433801882964432289777816135219048205323050399707867280488253548029709536032951162295229552759910172854760340359816762519722802326232116297502901850306584831339592131928278431812327434278033641587874822875896992631288610372950850733940053238684501648693677582408721504208850465454495647845239515682238539454850763807461264615763971216583206230068651613510191097811169740335159732113472425786802052968416954761059768457062007620205088499440874008521941383082988132071802955969408468239453942313741425314701312800241931436763303963026754160243203302781993468917183135182992681174603334723557382652157791837228341862865116378878144892593092909042869656431966692561969859824240657709692114248960495859365631066752422951914683755698746357026783026352144824134597267881008694313389944474313467918892107956776784157640411764743433262001539890785880133047620635105500179328233676492649629277823544141035063191833546218111494775201762024789111966443394757842852386106900901888833380726159824045991135504632222600190625226884456348242575744804922431626487173931342370654040624667138770878259326722597446497417080940820478767210200323959040668371822169638458940551166052220146114171134600522411747274044581704827004398794292234571291060729191659703024033605655603636386371062211948787831080985636367574555813381339219677249277825114023224758506590103993477196424315129818636539600694272573975370837014914753050799081885901635756343098175010029187709170927085423230671112676979140941273311621384228004155140617529855837225136371123399415489172673434129991394407028949876621923836026228714108236917470130644927725474361070381442539440805942972452029805587753469981767040489259960050479881205640219117575623589597921278628016769675233752512646109985376595590769976564163040185305704617317507447116678180142615192375459171003279379048281804215861361387809578695168065947144556514608685082090605178152564966358217507445299697083695320857672010681645603190151651420447903049961171464060931155751721017210924729499366353956990150878801555748666836498904169878401313147862340234141705920671499681400992511939136364559358685667615378074361348446824726820074697926903654821140419777176778507628645477546197057418856948324409223683739013644979078287486499255593481047749808700147475898586338398164125550209943649748505416132574476784615099047165070305306181687709987116620789615601273230185800427318876560353397049779982773109578079594648921603693523193244765943141278596419465426798542395335742016921916632451054021796298024018803865707865022647136389094249697881284456123503955170485350982647496292713197287194948304932186146052463742673834596504748101658696648731454380470171437177618738435153329480865019316043561318185580446556852033715486001476221214832878354233411859489729988900309455010920969250136424957254951819500966112638552872255698097627745091533852983559586120163059467054898448995859865527997121867618035796082330209517180432764341643647050351498634887406839731396309597946192961886612122538955027243460825105338408813366054566891242512234195944181140749289661323725467237506142009110458846840285268909325152279615007436891092845611232404655758826451228674211003429419101153057435162715006400608828904917211568524778656475687600278950204445703753888338877951038660844372227741139749552910686848170033551694914753130435284732372939266147542137297956108602460354769845899239793093402724437114819884857170319600988481710353586713816617009069681053044610861099725678897585735746516274280896443869226599694826639226249887678022268751841704931283325350131515990436476803406189603280030537139104734602284888881029987768827416465760727870777104655886222401479890900678922347869330039586751212192123681383094242489809470938956624519636179873488400681022117616027439067745304848120896783479370803660827785669178458458010568700596483360064402825660704162668327325549836262206303615491960439309204559003121845454084355279027990450399750224180332990480579059530879886813163296275124444248163203742979150146349614123008234882828289575062043425993854702180240175709410136110828443214797818744971802922998556120920513452070758072664085199913546619838038134444627089178359608841066852368289881121347199008873494643818343304265560324450271984291376048209844821978524850517620767485535962383988621654445875934780118768228017823841973723570379441772599454728481189704911481147698127895834396572104346656677805286407319555746722013349007311613912004701176456635800920205727095657421874394153769935991685768485572972467823941337672226334824262371458010651557903883972822058061737172525715171423587390860047764576567857865668633760971617450568416266723638939366763024503782104892620320557948788040997196761070392436005525865725076692790524797108815275809345004884331890305288576120894347212108418251982705706626382214950818554793421957133272072252892111987987859525614066075160046974438623894869252335985535104551494204320924931077607389617153958974575635364319609296494415644340912123757964707927541677481393797544215281054144067549552806812783929557637566739190715439310390481813520489128958794808896184231318868744775598369224651596432349364503948519381490280143817326612713582498630914266277607090279660079877132310887304436326912314872724503688593548649449843539608132470105303317990642669669228742026139851822484748179592888626058970001251771753996413836787072249326759823303034900396251959016999101330400605848462154532245360166833385951934734064983227864519868356761036277153534806427199091520465792546695211928876907379396285257536369536452725406552967562807807162605214129904601617618595214785755936064316629312424793116603778946525444756860290057396128584687074781826607717634441172960902359659400379538306038865513166186262639495705317634191156890197211884591335117779669391438363342277171709957253796876891293920099726548459421782555825127602678304020317804134739224542417757794485537212599817178803885041741313744224631719391703015978279749674905542238116791505300375361160788579820351843091271098143119352774693263883097829139417011920772595901699902793092928352791309922834485690117226004367403808029891218009313866481710509181459590216696950837787378834418569502479403320316371095342795627152231734535347007239485589817960485609308383242374776046024926377707651005178141778082342190459350962145352376909198583721531392756860791570809913756525743766974508664355817262192879641549467434683172463124686407619274971448988292237047199597826039403711745549876482550044932267418325420295349513283347867393679469241034272387363976373202357361226149406193236138534006916252286566946329593814393660169123907999782929398891821780955835894435915733120755546124957757155467829924788574624608654547319710180846803074745756667277836832516944920210807893994390696527903662095970021568429745400764282629628784372055804845780643640830897912331344763656390174506903952510692586290950715906613293707307890111684006722692825625368490968189672348050304436406444229526464494888381268875946165608918410857564138215648819548778767117732200714045090402069998434834511966592452310261956925023381058913602034959601903591734423105359240616731230851544256524968046132461028539452508462174817687462209350270183488053630212144889096200594482721851563603282001743614248857116233990221651176747468500544973000547956812171789870505280212577838999504882921713652451962819722854717005135191769266277368486368414269455618552587353064069611942310266109153125383180255843889338251279602483460918849961119784675538707036113231643698838163205218338949636435526863556081008477887796387159452494092771355084074690388508600716525150258178773896361339761034993558262238501436440460793820214563541558173099792645372870296165928392567505611364457342655094498216048527422332642037329588538992273301615515972943765755717593192060252488161106034039238697923717577177778792455164388697379048546909510162587408166959354021395521090815147537504314623651515618723830613493453523026408400924287068658325282788905170602007633835990623072172345421695465322067474643273239446765981256614316455299063740729452218666615209027344485629480766166929996485019851195974037955671226082063264109466956023864578428687177493303630084559783078840171090423056166919976743089781770321937000108023602742250556438828539263554560222529507073474639582046645206987628783463035266894710870008075852959279141630526675829846656419346647155384476266793039289510614735618069289164862970678891068024098835035159267949450007045938084144817590060264553184312907070424866698279599958443824450313618213932509514479306049501534003387140265914990973123685078681391580146270146463017987520612811414167371014260203551310173426224025153770010191946050133655831253083973480354470319146032773202376520239260933501727653195760564454440749584869145640136503141500107520306628307859421793354413073244791715350097059460148428067685434042749113116188749918346088554516974721517227761820454604047291110091800354616230382949829323093825252549347650332978891178965890309624085833557611182676488756757684768567009396931030700186523135448932986421259006618669577186153632231635200889681473941721312149268324344982626675562755072182106644448850494775247687216681184238381995661788868574326072929375160744637996966010493450637073968529685652967989575469504257863931256337470430634814136468384026967977801665934659796807163660752633389622106754648011462934123977423010953078120982922222804347282667561263633351068007983451330773411475196004249731807640305628443992622952430914151081642212565314704248281112288055072095630229558897241134542640907054353978819724171088161745209294206422130072146090378090601067132404548035860787045769695096839362185988783304916933570801911647877286873186415304011821482454050441867121710329100684788219169359908344884366093170315838367723618565663276254135635012393776733263845432852724633711864071814316975320854144709021628315739189705051258022545676717020005201276953775990852333358170396533534114764732861060664789343809587491221429738728688679133538092808791271017280796238444090193067340529820969359150050024183045797477398726621442180590260989372332345222829583776721355088946119297322206130842657147608021923290964331145875606807653885510605703945783918025822366452265242241074798563122980229924920085568543405854436409554247054130930144250099439075073505292285963090089264913789921751646051792123559951955019919287622078446476707988487386803760998234407371608168641518162509756383317136282864330346957773221237143229550060046623513618037881019750901782633060162300594081977039502757351785327764082449095152014883752985701103969494659004511335027312415016968332026625732213593479758194515397070120418016017880908747990588234665081328444503474733480620236826192885101077697560790452193393819826071795743847362631583922766313347584164171951916430866817852960600354439577301681085893834272308474931237811307767529055831929168658444277280737660014233509379919748517560071219962447468782123901557415801238980268436132759957242580596530519774836754895072790104476286262874134655414526860186848173034815069739688380631524506149444249574921415875501457578072176582053878222431538070093215803207724766126280688513677015882570895672187326714172994988707223460577937866527519393564326969771247437336952627192127222913820731635833662367762472446561737464764213004114320717640744662455715591405115020705881588766344574791664089805282984241366380898685782940212760497631384825623678015614125748236910349501922778708255956131823704865259027078783141665118139574420593151908194839505455865614003901076415548646630183496722828223098521316644285969761962542581910640703340588546642879899359286066166708579663387832344145979648963574791997032921205191419831650090880989340001878488249945536940820194509268732362763543098268905235172411943676192238453754900600113446387001381648320336775735864877759995397257705787133841346981274470959637209376022510455878090774880771805695269413132418925985040216311011728628276477666367650270036044339503403141417859168057261943218553193398427836413276960071428119323769854794093470035177032405496644278691514462233931720199449469472728558597202607008482932807067756923966252756474427886720386023066824789930025001963821621667823782869129473061074318333628461300207890500858622213934974722523784860093810209222845238840980991601332715129029055901486954336845760009867840196125661868913772964491558018430590657005784974365176917442412439577053371409923064751838856693257437809910382433565175879929482586093339224602463345740147060186302620116125204230098806871375093875040453674439548268181494492654837161953159327762221628662862286017227002372335194815522504697622110085752255213398476748736193458312427272117498203645777139390188552828240486838010008624078137524727661033927013452549973638088486261023666011978515252075253399928857288029890755912647575998162314373882843029630937643259882864921474634440229236802253980780082406090701510431284742952781438243968859525190769223643779433472617035312998948674760768553574714180042926732591900308992612973476251606953524368794456991366459534607093982861686130652859384446678834223457846485941654697773251277482388603697060243730914706878609315191672198716969721770948927084823820387055703992339431658819067733235984352607132255494014075978555818316106605555219348471138878263757418469796437466400615647842354237676963176666677182984722254875463552136802255710404851831148483780915039109040285426840598685413478522399487401619348245454179099355165940899888752414323169090711922323748478435422290979351500844150257409024816429372744756259014101691633118488916703868898047360645357331977668494318986543208015742185238792459158726844235160873955630667691842492071779339917898402565959512364101439598958314419260294104950775769951575406766425378984284374038104807017275324983724224258691373470495690248947842288724500673719435557250117273136238087743031117646782713129811225915939425579439408475816688233777730166270282392779633164290475123354110963430534625794969276933863722191794534820930777821597479106704878438935343159922031288955242826961425426540308355393717339252028160974609240134126924080237711104188285346108525566067401493683872170085011394244960830665692880511811674773052719957476904361243945021371723312113826110388074245041806920363170810360036336022725219189213172030708397441940621825585421726075848515819733940033707745575694912503844702598760690319588592206863564516918076481514997433344177304265424617781674784129305932765370640779296575535998348390997639071389856427108267369235591379361494489188798715775242754365126026420685215622165859461016026622432627037165359329334606287662747482794992383726386620779409263800094611278347200652305760134835742013489171284917624802747117281348226583955921317253785593630261897022065785960223116304298566221324239710376614849864109564863659945584666195201237221772310360065342806678513497441836750815609469647577636514398010877158003535254515032813686719754335409355168768867209720428613409223636011471008003945091772718166492915988551348449411220897624172684159052160385179294866239459978084294651724780327832142750686950361868199623159412454495735222603355673156951488046344435340478060776924253130747123647195398038981422464523264495005443698679684843994147955591724704194269555056481683669015190064411799214720751110574283998555638000561623741493038800441097308421702710678572264362058719596685360941652815280447041446494974909486969209761952159121628385747275004981707093800394804910442234124094563326634143802866868465857981789903879887551151913068114302815205265889110091628419709041283376678393799377450078014612399504324821195357557172833719952053266607672965445922242948608927226579519334289142742539001466438149358474825038043458311795485272058710083587991862720341354771634916670664262858361495770744917441765329966983336780758591819453691632326411744008604625334863530441953338692663167899413590825459058106055716902003954028162391308792419857556760904913652367073830627285631768605355648334881695183803501113831726371683373178970240072994601813527721513855764958719462753110751936766140445273146644095996247462413036357301800662844981518734684921784707078609111735708381106573735544441198524218890852045871620073749765012259996916428368246638791192586282137371860073605650419022907918092294996203209030169263106288418665727363791876206846332346545157911664197448559915952689450149130302542681006520906284413977094731982871828588627567790861310069383277249202059079930191602986259698705569253895285752401866056447602586122620043704204185846773607915098191389749884771618714792237689599259114210811324086227194583469279187843240354870067595330153067831787072621659441587711783700260007711087832749637146569390043813020767538291206616615307500412552018303114927044133132912445038913841401706324361267623253790767739667676765966490687456803096147045394913253873357095674103411759716103642616646983465392862883404408561982211768490365275024675982258735720519449511523824932097808217208461907928069855050080418482983510979408057538704352703381008238574183904910224853431202241325362071449995959919136193509917186775065165679670012150310608711222174919706472259772376399040076022637471821793392046216939743214287890256204387467233321600970743006099916419813612868771019292127708851277487053357906370038675332457389387677602606274068528982874064343883016690710005949699664291535532145807578656046764014156035656052969367187092710775124820964227690517237072127048888052170661172818578015623420884183677724251486001759366607103111610593442348641877033763112742701855669912283817523464059520939219654717761651369422832516899998376258529518473135369084182811523262063630661714754276487483678614438772896992969969954301816930016894252217988895119659397589230666711721968298301070251965968910465880366306960779538204620682883062894038205220710413024349515547205526709768896771449716745262973037031453513642157886251763476037559891753607174165956063229637591769231790633323501461443854563552711846062399141901424564687094128659328270288493533452919396908888183844387266923091500886620319466386506213996758545141012204798084346608595675013295952106556060128973327632991322705948197982442349469876881752308690723526083556823157724921034007830594827912911529155955311126862652354732547677749598274293224259980169265111357925072686676765600562436321399016025117834482989415441365722775740060304422965319807116389714459333279771442653574164543106424592962517524824172650828448322461996433682859732205505348158272847617279528070668740741523779607972393560111631349632351908029985292142063540520005981391763294335452595508924042555351170207542172588969679107502870123170867728139518315088491165972693933469674925293038519555683967456152773754776505491129756732409109325635593506241724782019516813179095530307284811744167565874385306526422412094215042971928600313485611447357875526440978143621703821249467905390872744165278595978259459668835616069841666324536302132784897304520782353984565787608773037906764824332552805849515600972423362935005127558810479547078678993599655468862939164952356896334876815154919483227759379638856899403367944654742990739106113001726421108981258439557962547350480210555754462322922811469341310986442845380266809518343431105877912109172578274226107681740075796653795365294591300968110259017221128573661996126610286576424313049450117521576495627069210531816499829200745664136637232204008503638176728440623662706691797643635856948789620161803050749105681626306996739818550121502809654677160000910777624133985022933711237973593289101354080886813727190710542158766883703880137327314078437018682435701385517375690541684159621440639690366737997859018516840622561555904112261139325381133178470753411023017749835753096769027060105977735818443245991116905947082871875351300828828580652121514381213986252712858841446875283379994479538977830800755652071026524388424441347167443318520909885415970273839053446188157683057269066114595748555050766824477871437984041157824605188629563176598336959715873646001996769686350045985190681553054808711322693951768203831257521811766933207005458635510523268306812729064161869094597457359502914702050919339906789005586207623164999385588967375501429637448600614784398204628002007354438782584125917471970419259527691163515405586848967545302886212404177347823033881285728659283333621812794575971851892915466136672204703370631758022436313824926431583100502765950781024790215195818948446800579044228992809729694961242735459096839252606080977335218846521534451799357199602692653293983476978919520734918018243770788550641607935285828537547203445819207682105425707759081689772497854190154108861795217072931284987955106270951051808052837374167651340474531858771011819534264498684315451238294819868221399041941160727486212071946159469803038554380448869264059457186639525280066203473315380187867968461562224319095472242475908907337028011859331095170394588567785188336624264155620737929951047100421075223404634292515787016377897542421157233046684841508092765910668944149525892674335622542446537058803400527135021071190082679324768387816429230530719068166632037849637113325218401800701501411676179858595988087282525795016386698349890293696514221088627382421129982917648923742000769836197883731777060202698634012634129747630279481499273285031640515812840273549364708251281159400072334002252816297822569326269751625362979255943104406273306488647966709472504331008616361407843982777506088321666119118812990925211294136878370911001449749551011799887514840957228203645897588342629885534749751962751844276293030404266265038447983587592946663422226025891922067916336610711379972850221138516092097013674539844451470679693862308805829817937979567152170692867538222363920361459836974345022410763758222905453097723361944500896501124756996261290301487877386969386725506162892284087452802126958959800109358516526754488093453293104053538340612878241037162274303123979500651759255784907408056567180613161988746460378201725687374170472231282151213961533107458199334744327935255025408236826826755923996552621485502211916909076853798392694394923818330553757422085483603070809650177642349855806670817910839223377025013218634599821750663376978015371067106662423907545160506209628719598786100421550041716699613073669418215850943495749604302918682912575700424121215857305787909064574209641174714683599364253284706467592156095074919091455630322934116566561572801184504687696694329102575840291270748122939659436945142061555875185898523537978093043992786362892607807875588170816521914171116305598662103565650663639823640702171309076817912825118255660364598111656120880821629302058673815456592681985120131968803275297839868504407105961788230297698294665949370527540601070097576104293667950881234780600581065890394221029142745618887263501354405991931143558229793707581521516725550986900427269383302905920958245196191603137037126894238952294936623252571442915544070684990682418354540316065224321015781165907441158854599964036943122953018562011215786632049695227611124488583952529166879287560519489653206303781826768735963029841277383817805039968688833272359080348645404570184272685089353072767452392722560560432178598016723444904427988530157350619889888957414609986970771043036095615887809678578702227252302926313357917131345567363906624910072651338823670644001908213669387693224631033487619866190370756876589017434235047004965481871785276504331072270412961140129125018944030225138939811946706011809825529590067790597114536464611189449767806653617200447539859675120330194369646606925795807665109651053150346827851788848657199542613293787485146582966145527242434614514027865645779496916338325453268894941702331458392141488778967575836591015380434368816980421271262781866521856965096823299230187730347555832908582610137015547768893411679857153090656737757857114431128790623437874536029780064144467073886992326439806783592317540620814458039778790744242653344663876999767544667831138588313856829771480764593218392586686150662151710803278143154013149113748242905590112246114415081314697394134044703643659339614526872732650873255924244287014152293745804351545598202929964113771829145456736579722247905666621630698000279531861353456846789327046243099675927436684265197038619353291714875293303862743683758304686599236886954677984911718767590193151490896319001004688202938915104225893020439414086367773537860991665184601365283227069016710132594058493785542000969959834829102914291479846100511932990699017000052069410401971555764772444198988605462582870805661752899369123368487150395679223857719838530227703321914539077424645237220391249321615882840655770746429856775609252544802703388715650205798500325688358046215250917567121395080575166443177094729453259716675565857070295849213860934216578781645458807192346809295239225351649235073238450151891705700511184732883696972923281263716886682358719346777657672991299241207076798134299865123850521922906234176430356977188923611645344515432875234450444691085974799948160506895114256752185000181889713933849509558710669669828158806977227443120144333441883737842973076454970146957193102194676050240735727629121023993093692788238174297768709017667369429488201296513475035900850159100935786781805422406044241910718393459841423483069154306600750566065831162826817126204169944860003837604432050873223729598838703894146297267857235679155596382162126238371135570270144607864901965280655846963706823183686410252304172208961299944531330499706370206063915552043809898755404324276655965413678835185958556853710390803466035471363094586970660229334292246696562405954922935585410511443510214289610561152479011004714225120869745221126418063259041061540373609122447643154768700306756130856083622446095830822962519958745880864137229008502083330345440048172417422431247268256323066069718875258754074914832829367852407478820482497039380223451572223177937427534018477028787398040937291042854351402390563701885462775873792201983431002347406778351840376898182559516257075870186357534008679122027956508512368351753164903136827072912249261799134309838729442775463863560426364655828418907077671734126144082819229518217445619248337217157550060430267657392357899891995638943065347381952747622272168546386771928199274634157640897500178988992509831568235263614873984758551300135875372361801500757354990851980952837712210245897306076918034332397114826556136207071297590296532817082508966299889331632073016606934078042038534907649825982354135450569087443982234213706947590905200824505995869033081986188671541295441980521411044724966661986414663111685128130858502040887414007959418177822941515009189979418931521588383990725833115581662025771875377355012967412114507132576824322952482806243206033890307773839408499786393909018244351082347968625508127556066456337059426450437775557578713108030372964275469866452942950786072504753893939331489477634197503726129263723393082582358883043356215319957997363736768288279092231484747508768404122335662144062576561484236207085912609182023237208801360563474333288557323999315260940761641158701598675104044625069159548861093344038413590923677555639291525908242603681032127768022483895283832841727543252380084959667053099915628620143017438263319747446181291241469750593418504719654612599384587293849568906791495045987101473169722361160937677012369425094168445048674734810971897024418281969489694093006115836968061041941604535406709561555752172044616069041616758214887421653360136199173037636389865247275888427121908449149194633833603588089508074867758305336193200200375334475350281090382130256307827609109183830287080838001579048954412109848502867873286329928240780812488976928411854269477060712127734835294898882132323786043813093871861112808853004251461216071669097151512000317960422839496091437992703215547965712223123981049169447594693040021238662925893630072432369316441148869064816401724723933365768213259701550083507955033071123947524328797999040300412308011860917109317454379075907921147935018953667409823716825367433140104294112112671194088369546961107523164714121213815400303723646967349657133837849699610272040005493042495697922577577638041646129216693081213504006950203135643995234331551355763903976685304339291589080263342117540038014232692261827193987962820460048826764168565699869365009000761292605284269680392777419863309867767263205389214395496571522368024287854949496494564961987563201330819068814668083216031629012664370376219538650849626275602213232205042161448155712958444716767888034205937108635831636002351014088000448580623060601011391503300779076203939071774349351863375746573174388171327038796933681708212881499143640287748372901964708750240307903653776121339850290608956344788336536324878935607068848026261926309382934410571495976946339228708267341595130438841826753151780344789676088920222930726147977529784806019403365801424428333735381707494481801467035699277439535651604187041856560166851296096473252848263071797364326178752038209756248403431994518153960136028707012179410562446691481749129826807300709391619032238965320824815302587313043306153706596429676209749054838688435971418675045895145699716567655125132637274006840584124157681141352477767801384879541711668933461104776222360344712926157348791578270977727336671290623056342947517853285474341028568893801076683737588470233883739369648206318134825400220126423051726972965676510074867575195645714122304698943736334548650661149857140377868811099660331404387465409663045033630642365659290973340603996181991713886177177002540408391116926056260473964123229517482012100454044772941920513928585182706421814757900391599422873578387970664721107863062974221190738152694828917189012022971348468516755417125249268238046793803152849796205885670812513888351778083197367063446083082141227468210768618961066646313331223781091904242583048664864683358088200360961494993103835150131058858455246749449848727556544897518438604087624769404148352399182595373180006141908640976721666715208214751950518285881718938702662463952383282127528881330693151796050075035337464312678352532863526348549164822536087336652223565100634517286499161032373628706056550528176965826012066498110783576958952086948713425238487723311999765040660532914571393410015475043540466198449635705585613511640194366606531875587981251720369987550138897686945655435306130499704031006955800242075512409019643857712109854700819327962003566202325557723924774270368251649995773584420485838118676220279546441364875406738510101272863109443208912705122947818387937648057841567382559964717187708107357038719150428116839670380138694991660155850975033215445522392863440036276723751627985507625127980545081969349814272532353666609321017304730002830769823139331929732440350772754841468305436301805617747293385422780474724158895981820015418858747087639534079630810313204475120450719840311649065293605746544230444045740045277944137954184936469305142440115459815016616401965014013983879433057553169298071865928860220087965095868944669028076327218038726843711300737685459670088293323519628576847968808674866765657738259870039579953924232539572259982991369174836934070025482893557106360557163072966741656414458628737258654491804194157075085307803447826434293012476166452533233452189781928344606206615775877754827108569059883568983276110339195519633268778302161461441176151546469615506879221045034028792753931658634208817508419207202549370728213195434163054286450801567607008510946337242092112809402170284320616507191417546551060943783190359119415219204254764169810459456638582595803985885425614128504960004924264879716702174089739849959291033598640350308024309104855349986377384472728372161112804711568983236306970183023219771947477812134637901229509347798011872568525888106407165032535774024610673820152503074633851507425490066708423625915892176455395848816849308242451542983222974162045467086102206605646609062532903408490184057418577420233320854537895420789512039694598442669455517988383801564151720452275590948222756560360016807090310615421730614959970281958830674154385405036966004083798256787711536234468622258598800026982070879534925709686127831189713339134388822455715826210746485574254709202319046771047503786259111041686689582631367337312857110042357883886853481348428344506546222029813032104622722735272227245298044789648353771337017518405661369550222100078430665010950778154320334902751695821338242222586266966983707237933056963243849196716960670818136177378432851746582043398059239367499879197699472331860921338990918771048487983246939132625184189510754557625091007292117116004974698036113979942133684873125088645760818842913960859019028044849419651780999246757254089448039925282927200575262227211474627261569381854081653806114601930545652368774432943730164969150985639248534024552722117278600586668719455505156686763169022181572598268297922040971513127694597779826203338510536332553837420143600512135869531645464730419724196861837793573732180631244486476124665403650502398098247076263469260406475533797966305730916873093456687339069327516036809331698050629584547294828181665370075295086877332901392219965549774363547138745181571602456612921093896950178653619495929386280331562481650515429271100616349188653458845848602461391820183388814214408821349685700704541615388639987827321884651933804449563580549135583211842986058475952069045974529324076631328166598509466685397092655208067771629121631076398639550628438247958975164049063741247328257333813614193019896787588937307129224062568897096937571401515122222367874931915869044234497617692844178094427751585775549247785906962163449786026133503804967866296659953966574909021073391324561070777884585237994878645976541354879501353561999894844768669847038835851179199141877887690227300203065525179971147844411271115578164081316398150681673692449764614579027180644702835285073273222369619689549419705347069960909706450636231945026763008130138606076368806647829191391764563114438003416735138805099467591237393758442637756886602483261054034058633415892094532790074679313144928255648190030487122307975447305489738287234962255086424292933367926362012137330483005488154558901854280333275824744907115530739885347720719804402944323181408428550025074206154085297603441175931025381108058511103752835125864566353121698625225995007614549269306550753207877371489816411085100524530051360795236083133239882119396944455166410919704721602102789617641223313233741054501989235182576899956070922462190579333261161842818943031078283839071208501871010161188304261482866002455664297275238761515282180251608460371316789232055400161611604152768151371818707731693455272036495645644412386834926115979793949640832560116308126044763019693800170639601746367785569163831045001838562479945790924266256524516150253985013579419317031671531449006074917857493602503988368991216363938853384977620875375126144944400314204702185360356312252578705783013758720839183828483454665847764155532280505282218774176593816248274943719396796016165374921266532473234877943879080266599316205078117978327649143134440994615709317216800822414500351619674668305163088224901839079144574454633963559651619641520237984614619138719821159578527954768127816829892540610815866750985486219349715354030712577465125892557387045954574736004365506371430022041672980024147526141031224552315792445437606884836517749061479360778444314908559395449620871246370165136172575046350183408492819067274112281703382744287352424136884373319183116660986151167237489796571885935261010880490609178559540699297612808746580444958670114917183400742896396569731156383000110321989222708690192994246358253378473432100118237570936597355422149165688033680462600057283333280441861388203001300042173966349311516689385673913048995088274544622166975455686487769035609678020327264093341004594619040693156411368910766477264860806239493673215117264662720043089044590888070192765113752127159932221508798234920590406134386078588267546338456028653079588460182239186170706056051249769570347113302183090831776852206846691828293661435969930863535675346866344298829281719716826639249726130806123246992528598760923901632363773114008473157097445453971240290473816232246967610032344215910363184351061888406688887713843494650944251852018312754101287484751625237202118629852880883502107665794942699517138037676771835724729287860720174711904095224698294529897870564523147704542210581332667902372666316322505018826179205999006044640165423100371778441494879112633099516924194239230767489191774204335187477791821944588848105184002946935126710824563174774188344794668771774327406418167386392521461577406097049279186252604745181951851632225148132232373788461971610882894886097609182861119704530240223043623565031050903931120577962655845869627118034605040390482893435529749137643128322020208628398686918068943097464673717330245893907388382731389657362796135325960338150384970721904567804643868406290145396110394716572452940393265615684465771265091960053576412389603705913517097063895007946945021710616433240060979730905206232508651557847376539068792316134932658441496245748073411327683095962498135136000554548584142872984833423299224407223493028861302893208951555699269325296776738130144938467517799548427634577004499373659272677330625640603681500855192678205339668174826596761407525306366888774879971174787694830809569623291015834885433399473430059054380756447131287329957961388515741543518160422372101669121120383706753508068024425284683555875872770976925914341732896172870075151389534548473493546033010929644554915614183511820690294278800170313236012599624389709278992991851261044661670733657556044298813463927751463755483794124432915711674394179940732869763713941249880138721580917582863024855911257463095675855102874569499164629470648411591918864757612633085644254959502377743122998087350388200362310873600294461171580222324881706111064307745133133488586544241461305618585556521837826695215410961509135169322206942005701922188581400096274346763748663538383131799698440920012511854932376777125543508413263839524943331942177854276622903908058819522382712565169109077997360156210514485577217201350323977996386283197661491784392473177216959437211795211508706342487521261348003577330302228307440510150808777633003905696193175783273588896190171005133112693677344210499581833769761722424868951547412879856809121444081997705664735344530228579095372975891512590323443667655813569746352683196444050155726826446785216452610966800903536011975788077979298852180659758222540517327492179747282573888447171232499959869494666801580905870788727475275211984009678855830058986173017677981658764739999500067297154227319500665629326557154185289691097401527553857437836630432625320815094092208832568884476590913405992284636462864760316093016487924861822577142307508140899049061937807257619206854073448921983238932902654857053007678551582576306935765253952129288244989674501386378904025414754935266551846848970401817107494103204300975270417237184575845516265989206678254693954109816284960383861297256556042483967377515348962164537575323048242830022681585060734165059773218535877633778923929760572462697357860170798239438393067847093628788889629081394224769853354013209354745820688769380321104441151103893720458780428112809795603073758160541932412803987293020302751582719745135894174237549352539771179417868954787526891459391590145702923098305490873165112369723885836753133654347249172337535047247334019792924258170745628466850341109423817373382062395246369691884421871369758793381111587998123642066841731344815026164234692008899288966836817668044949477438538606162378149476920932426569525618854618998295066869926476293043945277960362975351107689313533166181536609682386909757834881876073735562628361131097026593924428210322763353341934437512092832294734338095546051111573679834365415975111771731036941988729212333967880262616772885102189931157748586062436358051641528486409723202754412180443024930433900140567498515423368597433017332763880046360266127084979239994866393325493364895740924378522578636824903105806980327780084580559113294853679255883731103429573976219396389991725111135322987807469197739924301497898983825751529473729110648383798717899877174882327919248058184281265882886555251389790422381638382325911977294861910423329737611590517705538816133828494216393599992017262342261857836465662047566914999893615156679164891228447108195538926914200683825273162219580703335927296602295840263372715258525005488156763523918938705948156690367813212606376749533977876234495250004516431005678509899485157564926021529787539514912066449308845183528487930184804457691891206937325131713955707062541495725686184273219617707408510377228927407252545172001128416496465323239359523317076476366509218731506517498168682399807773793314314629676448992294045034822018244949101244766150235179331049235729182680381419708518542502318788928080575644458896250292632043760949487483589715457452372826365271944112872288912246705780771269965752459098615072378525328413690691623371684391635840559278304854048034977632631114406677816686240139782795369804125963098088702710168722435248212636658852238271555364474650762006522064420255384576939942407920444524556904444228985624716451272287513308371021743470224410208995774606193512844428455985556098762271831568371730810965343646475948448281026394670371715778934344007868356294037569997969291166592461556060893724672608322906698072823383020252936104119295843241556719891269535180869741409245560751165598535617536994984486489145432093188157858837777414436795230557865858692597371261851511798139420015295402441826925748022653735827836895141089782778593294564231872020624233505068386791437683996174784218440488595785309995340355110396103870381883347300053465406290998399485731268303232423612670274327272604749977325434721912263919434899634789221392459907787487878053505301917230333653596620692379024099194620747331868855220786297940833322279815117099845258803396268482481899274877939705954253638907396669879425878717786892330246556251057276131355461479646728654885929547651164747539162764110253408903951770983695457732581067443297812611409286620779943810842570344182943541237304616597684868230097075942982415800972403566843500892861126279055687352877961741728469594876076362408222035833801302959674350528875873493497214620427740376956831431812675643611268121139955431272165850842316778931390283237780834046311138457594726597137600300795005105365504513170725388833178329671092944760678600064316330258743213201081047263459837986400005439491042425718917539947219964056654857798967264596390424131107074787899714762877328355583368264092907747602085890731290294635212266254275852735905456085214221854283972115568007000655973950347090464753070441652035260763675502678279982852866586604175250752804229335193558035676906041690291403240203576312658407105355309389975254017447659352914286258722213851166122640243851018588183268912702344388543156367420803627109121007240688571824918559465716683439398971963907337996921615302689186180425506254036810124094097610141073168078405134322726439901782076107548669513215717199791236376304070889955297297176368706932252078461630531701525590354077391811958548823184912603751365271502189362987040250127678989660654828803276784183474738011034330109343951862800881347710025757933479960795004888337722250312224280109610378881872708227969620168855654353507639732133372134889528532000287502052761295595095196052022961889286522151029695199607760835512256993844607500021412293163327700216730179186508819411973085627509122736736316362259668111313349758886001379486914633253203029898321531991657937092638582898066370240796775541616022544226788439328373997478414992154786181816844438114646620952045237783030817660551297158093128409060558740346619052098692368941848786919688479362913655857887712009545842273510165941956980608428484558840207088297369460819989930348027009477542345652877735499473586982539571784928404986707627504918692006372271422222285858724740062457303991750991350686417531649122631675580584628110263611532762908460008197547562836147030329449053167441989789436860657756320377505116185319038665933893817162307113529245802267162609614956144161565837707024540285501056138842682438538084780570839961986773271943839089464589751246648473294475142688837618780735781520748508819319590382415914935475931993201207883188135871414722069368652643390330647499023378919888209335427218000857111200248209055900187772395911627951160243805286499942235856484492822755191330736962856828017370086904669798064803468635022679360329768937417467698350613303734470798953448443893782442075211873132168883273649009441751461285307019383211186484343490608423192281384913822284187263756738954003647494417969328866050656378876709505282385349642433890017919257952114440609778787920049795243771213634711610178820610517100328895377883226282384219212686423819928596157403923508382676358379995727273571919766529654488847068911293311451948919445280979886598772350270938188461890371223897203417375991796715525577274745608976306952755410105945527224716095535353623776896040175504720548181922066756731295204305304266874622206362601316549537635367673757029786087191717603672410146979926960674147313179506924035473248747914912692484767355878015405091117569724695131030475026292064039823712068931184930148541704999498165792263099582747889947564319221544417986750420681022623342933721290315676159399883009445271869418911169217841250169327767013424634476675855164040633979711849653970016592237667869042479219194997719113941398552359912121479111643177561980299991271952568278983305480348985856145886133570005556755141588605903142684263519245183786416483428860075581009353200945100354165678417068071037966370895344427409034395159165754808315007473752105207771204044402624601387025875376988575736850364675375103118592906503877850784041708640444099257948282227178742017774215444307130929268302995375677419247293432300961746822952846757546832267673157724536747380987101974789105302453799017323000763410058819386947370035666357572557507510887420399796598296785053590893340070648744342412519857607234242951224956183054809761766648361374662691584746779358935248599919768519212581372890725097780559683215950419328786344672213975719502484462090177404814467762760593708553694287545732553409491266290973475098588828098023197994946332331918028484913833315309015053415996793204390531351200690430244726244612606734368242032478200657364575485269474185980352881950011167428323450057447169397487503499096132805728159672435750069708064284702630871292208975245987677600006311030017193370803407355214271362370480670629764396027828291921442318787236541274449526977613634074054866076313225147763838751708438233619827404093963032297578416671860241439654060838431154630748795020414899377821726459103778260577560587275834738183440911302157296402910238679443965044972843181921838356411896612884243501688438633576371520084753327733076193320418905987540360864012096555701264791852660468230270278018053299288126485258904605129208862082097703751799219851328764101261550302844457814414573442893441320279143177978440879768277442981598641087675402212796343588321314364878678847389738287573640558743599116345955030976867494586096860887595039477083147723533658934680359235042545131524911552849778538486291221014475589036991297749000315545077770897139751107796901824708407687751427154742976375576875950786257983901542257062538099257495113962084573514613996475285219897328478031023927370529055429523787843756259748931929277678824867606695432144488782511995014850849865905153620700579665633207489416248850721687246494948046041668601901675816885316647968957838367262729603052086832120979788996199581340492214577780634662009550106759614513046063692099110720571568634874117393988067538609291929566233910621457367778269626074030392677444914116712900157209590360224760731247800729349263011875374131963140385079695428372994464560002302188606276618108666505681851002938758968794434807114922882064217937419154259862179705714789868693746996543236305936328945286688758207934967581664950799025045577272527308601750710248987474868467813501704734350977342287709802403449010432081944804884015950120683910138817199968023222696591450092526324358665693333155066537077649603508026025803757691201745528215976849080987838470305485325220768038359236776217494046191800134813258766752358087971504159707986450629351469884866671313830078937762758761807678590033297316402938860234496343563729043247469300623009771362679938864941698444018095017239355123258355376340593686749530224888564073656294138836304482111563912060157054809385435203435759180364835681875267248879768490293310910134478431727398453690814835633341656707398750641486699336452171944920417325871575730964942836821093841801337117252828469044018899500101710486855170778360855324324272149143759003434619910110551137434977614829862551960147345382041461379771347376055583148311212845163585516479752259625773117687451407243483113981223229215768520703191274479764939421911666548602902085442595729131152217644576342793198603665718960179199988996034795774793426904281896917741102603132793999852231922558901610888751015714947872043262958058987548709730236249902515150506840811325067692935392970189003804822420491318650821391970588496408276264791063792525757971722859798906312159082394560562712552870298775576384121994324511967827472930509992957911102905475079553066861284884040328863439933001757546222606412138863339472627679846320929945675453568802036266963493140896696271580170153228067259845072184480089044906928533901011883682472056062291782702654367294347748004429473632848884097782752105660710449396138989932903222170520574818606600674738881826401990949170144477928504804288639759241995354805579002761753740177208187204368564854969216983530373811063538747622296017986209294011300786556657272705369002252530276044914021699496547309643001365415350151746332402132654510688155205729210571286773083424072024638335742935347546754226866344801435498113068001779342687326571687528041986651422439583852552172587239270720148628997528117202953588020456081097005136463770567362164720480987606279212780684581535043518036444122933103237242043398909764184154085748026356430992169261169676265518912033170665791798318613583419244749044955235965064206080649567503044755775701405865580030046763713658460707579305949102701897135613529118019178331404259443357957818076642348105857131034920871789129315589173726603072493771069425886677173241786738166498804151855878742671323323884105581590559281964453879466877819974322466869725178190562939474599649625571813148359710343825686208901235589301520723456799983248808559460616278336054582940208620719179016403476682607773373842180097095527979225112266441106285087164094879081535751390983353541150244135615358411091296464011299990357801203121991509027301032313787669346803738867116220466639507439576181168290287435725285918087507452308354729803892881560430707010575878129093824119808616228120149217770896638561959880400114757451989162985054935727978239131388996336860195931523348934960019323070152001155655610121577372102230401211704626227044856273076978806177197772754935898811224874633567343028047283560373340667271650670371126896981368989411599484210106765455407879727678652045876495324100994333061552047927047630444013100537641168027391079174568217606890716289248932176550727099359168118094300931810607509870450717635194643018142008954923343576499974046125258455910524446586663530421827998705911656755841866775200891469527768030525549642735084637166748878013552587149491099647216641924383737950307824591185688618600672453899055849274125102724775357047962373357295645276941002492423849610014005716151442798600714736226443367801707566248460050108219516725829817641740499098981001010863478035404743547344758096224139778271134307922386613140703464266089817214232296872424135120344389255534094853460958773312619338460971617867781466038166593512680714979836049835647654999968348778969446483488722303590748595848953865697197159134334425807348952319031608403825188688772230451746549308208312004614567358922708312551249646037476068624699700126955537827723834722399587907202485586972073607679288301316965103577594683669161154026226464089067157172614959378963134984527695670129583848485960163596397165587943243518358374163767375460109939288246099755732186636873252590970579671519486774115276735924300419001442868328199714341866961208135251835836020339431845595827921922865935738195066233007856896418693624446901860844371697585430088366681797754725591876572580558622087347893161230181245879097749993983302332865764865755690546621970155251960638189929289684419046091586632162988350040495940321759629142663779185430392994858065418740015199252445983984562419295577017367341578880973753880067032012260051138761795315619348617351103101436010559139293946737728909993708090985664558328643110492829525269859813533170570943375265255295565666292504397601820236937603343312673138598506106772336018084084596009628851144536712167828451487838029600852657052045970312709220219301743564604345745768070880513123079742089838454154926001193804348771996760305474329857218339157875096373832570554631926715198192708304469490985389376187072645429770581392989026862607094792229219462585632983412175110600869077116122747230226689650804405377115500292442045560559542809773169003803615312536846788795973150584026443007494286401748247490503933901943348219275601328950853286492099511482142021940984149996169470783727761213453815087946566973184608049913512428032400381357950652110409864733634690717737041859097402254722299657495709740460459419562548814878605731362450625226518960019921603949171608771712602438826833383362344898884659260795253610046658436963241315135687416272485396483833143390151705256085071918611786426485043653138520516435846550081218780809895557092060173680906198652682990589839168916688687177619912781865678448751648391096026772011480047923833957894833055281517543890992217190338659365882622430005490190788983181056000140527729618099767700975582737624812396745270113789329457825880853490213335289779871575468175263523146266449219476805932511987310307857731791820383270164959396054521047979900278039696007308392834720642451580085964386787991783008239268806004183832667193690849071697706935214583671194565982846477724385984737931802168371891459319152668756297125533277161039554347251906716940648764934735352700125415097128245238592242672656588708304097202178043537427599228458838505630088114222954504512372067683975624482088722764713842952775421975085390977222287444951589454129329937250691686903015943295379703429503534150387533150103633855054686912720573006245397065311666998793133657087682257830562715748392509153735192859409328753775706941841967788680864773502909725881363923086898174379054026850038593045134162198034047924120146717895956002535920801645817352564951802676063819731163684344355518270515720553764400110368894000301388514221932655425135389742924821907289865868740528547514863782594516932360539243325954839737860342790347748732987288708645561411960284390484711332963443575101612431645410658618134009428570006705531308349357114956490215083230744945321714264197292552890804837222819592409666665091868140271086457258177958983796751618589434418852345350930104540144504411469337144309645695973105779769093126713120764493938356962591448585871702224128432081152545482736966411411476903938534354019686432608868571858539562405635371825772884875235092639445421577085973798557237613812023333152900269426069197738148669802464605696405889587087693973996358257935477662620511102654296193746165138224639862200265956418065735705222816688089765529446069156388976240806337003193643473057498976667165910394957279034251811211761688520441325682738877251849065912263556464388518543337511920713413949525600235685885680552951056062299499794183362829482484232304822920330706562395979611927964596541527642425059241869930387868504539679262106133471449270231561367887363087256355081644417088307387581836606175561963163892871954645098867979122904026054288282092777555047357216734360508718002204589382385899079415526704716725821052168859282954050456900281143490696052816536213921767772907535241175850127605812790520286348228952268494902076053094814381744960811738401153527368088330842082660254072796327247464913464805502256358954408564497714793776197894006154941895477900061270502087498279969712982776653975052843871285801975106268471861843991477265668206502078697694994492475008112946869631388434755710354541487371277814244928517363233089335973586667957533309183800692360053755425102600482420059423460879952775018576413633636690017526892025606310234508572912598294047830516242986217329303616329678125523879379444432495363821174215806446227443984932496582390679127914545935679292618814494189968715926189123307435075530716842973899999765453765171393050268999944692423544346179560501135603311524628132385867627150712876996075495019574802016139705749822358517265358255990373214898980970194487633743399178651930134193660371611518524445757715213330648911978211364604330237547338235014463333638069410351371543264666526536431618196425595831220219502376819421462375987023508614090368976759278278095910533998755650437304322936672819718035457714923660979847279623207227354312292443182834253019819546265307730105954958528647158395175443909072073250986267012089433672974159151065409317020061622334922428586756232316995289966059709494727580096735787648274934266267768322992728309779649284470730227757441427787054101647560292385993104027866506681319173070150895307217899712187989697962422476410971894738084837716615925465481523225803007624286158266084221127162928988917735524673851256389353030529993877641550782107260201039156627646369180155136143022229144318598439830491439803657537622527188982409083069475253852827078389673055188278860324455844397057633139525092422080653605306083326429668076993019447105003722152919813982782401671387862194682921488704710127513542919071183336215057551788932874793812604482062667787597368139190637173076599614890020158135690462167314251838075553665740041917771845723879250566519790080984658684078104720089384677870156737972017147984505845596614134658680631953430845749476916480807143687423449974414532403377819348555427356242430027257679296479073669319493474083228098783117216363692014027138371120329668363830727723476403147125452623353026923858011180907814326707085289699239096972621002753041767321448308464443843255021323847852203672185708162052472319983644522888063442535849895915710629252026188684654800024149705544803646467611731995003347127782112345664208904612687306310503498608787283965342684242192759290691647215311947656101189616234801324619776007773384126889492113879808840508364562208405006250273319269735712169921644440925102752713702206783219786528796319117712017310353417960559196993323272713937797709276623020923996245341996916031263923423270840928472502206311048487927956180681235915049931306946727093454062050713673844638469585183231479403743951237342509771697879162967673598336493698450851612151493862371351337700841918199570751335169582965709023433976700838938334209324003707839171550430488381657549718298083598209435649276628914338812791983175206737814519022887535783588358069520086893767871560361290164565355211406934924155663835058513823157157887891928227933421742650788167503097055325295568045454298029181186794610565631307337085072050274754251394772979473183366479745621190214048997395325817305965199788399802211783543936316688654825516175394699822597786149310096308209962358891803849274738067865908541181084771563969288266382641800707031576811530866923383591214247828587904089680607962663160478398042718583816050961828490535187180352829353364601337385721740073954862392633898781945799449233059180755432022897015078761760771988607476483553381208212379437697251709624143021526442106069109617520019547351137964090948342280382465134744209910994472216360357618660874505833507455176440468241275448470616292887644242822415740022667380566453231760716708835536668012754972950400952801499618754446972448801905498264479980047246756451149318758278972336629741187953416069104082608384656094234143053562986593684506805980839646540042909591596205312758921697555186667904599205439195619448667945757459763498494218964061011400740625613030473540770922068207381558257138681958194685462675427362276208841115982132703076559398459355339052533052019046086224530605071749189251323162714095374874690809337450697710179707749586223361928466317672612547861104628193640952069654452917917276070794728193351101556864675663271441495505944685855843576048868436033149872559481899378950050995958704190850090010693618466161485567774632105633839508222493376386811884271701114511045924871281386126548554248643711094198574480486931072202976219092688505002151777919944466262863249975138999524160447868199630491611452848824616962022897694148087042199113555610349511287965097289556145401567441200956842923165752330690131362206042180817888560267284357033514305704988400808254307808568370737958442909171614395452190846117234008498829408657751142074378116947595684204104563259756608961169236861914838245631991223189193438165314744801573489422650257297723729493927762912261151655334804340766919229890130036289540339129137561647634112040974980967144824273658594008801060028014440632252946876363739331000009933119020530549251246963508668271281278909515605857822289382414309178990425933782941309538504574295857436814487460176286432412549434300889713342774152959710684890643704260110795099991204785776732164833890502696907221525096185163114085813068763864277839417822839491895411899588150581649985302854608371162905075566669782271321490021610237380546019370504884425842284455264336213268993983689485229543592870489598053688240357711992929875259003547339052524288894975801610457077743044121387600736912133099600283662672044560047200923531076283352056573974482993733731695065204229770256013367462682172783509260626925443358774252532552777784668778193520090160105258991035091442920858398889395814308864087645391597657120930146946985500482165878596903673011440381040381748616958771980799485074901187511364032914131111501372697372670537960621951953693247681226880325675655591112943964156385698165659529081014689943258038539962626951171055250602091189271288795477526065562167579320829062096097664215662335605687436574606723738637278549385579300823994294942220006447887525960433890265873054874195005601704415461196557590457544807833589137389942977067465827919316191205851877969319594257832465039812834466838721170618931319320260114658530215799394567643589479294149940254286822417529069286196756284987882344605861706053554218944936637813057394861099574300550809035412554900647664774967840690318952272173291024839364923552086758542217312533548565728627526820908962480160096273089255094277799188098380891864924605288324139821333574696243780274413905676181494288798233398077730619940900877753773864938548941281029219361464667011080450817232516394894884367544603902878546923854132072354275174200599195210802880208253959820185301747899796039966631204076250014355231545958009280880807776341769939321512489926876835863554674263096459545663529726438008088006289607679482224206019195608375605094597793802634822143195652148487063911051500024116516580548599804386840805423250757368712036147286847472824287973930695757052893591392922062660071147434272242830510247553495260311643575363241063726482602435209444588384095339838632163056294440040092738549184401368170679117763879663674316504644380493117712677940213273468540424346656687383935090788241137814327773669500728587943551169470925026729260274016296226863857273623530683151509683355205897312569716699881827495367041432702486061558782897379579950085728901891783288052323105783465088647452334637531289684633360057432185014038950014327519950376909150034362592202888302201904600444804277481752158174931806516022922595681331712980119909759210559469292210493393334718423280695411804080068893646379132977890757606714352336963214410377905932330831952439997497762606284378395243490489446688049691507592035605462420608622057291175491764293709921191566374186285107320671802606835324175220814757523029580414391767454950733060432043302825639277809847792701029839831834758026963800841013337517386052782465865650718727149114736971696223483116367644890851978642993995869065327445226312941562924941016403156155031658397608579435227519282737820413987697396763303804463880829518997344184492732215089001770842241905714757518227182282812571549656542014845517634273652982402682392224670787440927612004028870022072325680546286423562515945219259551744341030134864259812048910684348214553468127769343572443572745527726580662864166205765649219401936155062131220834809169654936247823403190098605363011562114006514106413208125947307057636470920949845432108176691432054513853369944803198890679631692219350991522491989671515151790118996802815902113028910117635647351691846053802302181418359382154660287703523504506266857504808430357414136710907742372146133348159077414628535795937637476503265227812848054696767319156421546392754341536752976283017942720674832749905761256436716985662555601455049823771278511120232444504188469996596799515686591617225744494066469386746534218579216724621147512755025792586058828267317098559845585535859941351952531685335416508545913743705047732731845005706728738354068014176564188497960992498757940849116866876870465995245428545678394946619229507021482559420980235212546512151952914634628642603774554073250542273809598299947186037089534176590869324987719895299115585463195270798403718762285383699318097053225489352106023741716246702482423389254725111020168103312994165521023007866745007491326681662096892100325875886319339489761276669994181490293401742396758993183376871402818669113789848429577972852621693943166807806569569427540050476699591277490744550592085716393126614290995240365431755158091333153477350768973471552992397661132505336895960264246353613588722380444231436940263766270073286998651125906043229150321596319930978973759618092410075701876375683327165316153838800423281932522272741743795103049398030403906462210472420562302757784837023068016955456413627126767538614397508738838232334791122650033778590140811767382803392381871695876324390222873763841806851368569084115759548122785325716974616253217777283839025877618117957069456254141563784421223030052507808116073970382489633558112316939678660220790362141795409084619639058276315971101923738343818528279436929882349792388899779636673169069216356391735107461921883204768145978732364646466904934445599713599763351522080359724725422972785217534343028119480068856156764561028322941123325490567574366754796701662229712700789032845513289825208605509052355264737089760505981446972986215031547302244112387579043080200193236867572866845636954922869128254674133425572764039032805402955626038528001112511312598132511273177544802314292075271430501781195903666680298149681396691038055663481107282929599103261910608289201434080894168346814527609425664580746243722434966522680786602316119665273412575221701874948945882425175137194034744204299644286507308876143713965232853593738494102854551653883327660374067083113286334101005248374400273670277769003766035911349628122079005759854621280562725572247815380295190286065743889395322268830182862839650013009359413068682751858676872481202420411209488301882577382384960173906012078966468210779682162267810419944232471874494620963837255324756144384479805962961865605030258573369811214158804230951435867521861118524397078585508933306869328224402044141320370748051293474210898811393722670950590767025537935463428438575627582534894345828336419588678974526146747250013395504334847040557425718252479579099964740700641890003575943612946578665727784470576686834442711047902259371178353073214935527385785340852314142372412078321335136704028545456359603895937086779102723876313189233993421130613657920535915740154460651723492683012166271248512671731839046474451497813556480575742480913685012614799132488319408004484346911189596442431275948740392443321191797580362803677326834108538960492072571575507612490511423214096189144181663981083438227268588083885364581736454037659819328348815764491584566731247430756947016786945646742911785511819610274353689065645019819862528986267446823959269996371857084896668043453242919511261913011290397060743982357531460875470834984153596137996783895499693485591440375308057346762904168642838430083357881836742788594031313994796524406727079622958622352856239885754958759790137638863559853430377126623821109789033393408810706638257444552974751855914106704789559311858239435793700790683945574356063002445771403357062139326770587464951372433211776597086589971992001133415398569626147758751418806218719274529664617225163256318766723155850975137484673014211869032068080743847684336596372462629024907109923451553250865663704634713710660900720265034812063352461739218187573853386213715661944163592245406081001194263333246164029774951095466566746272430201566802168182103469384424920407527021906062691257558139958540976289617131077574978331740969202503077017628621490104135129532306266324168659533894522810381405775698065517668553494301039266750222588626604291103878170313367442427200604629614849621195406520430048516717176159534685786219187136824123688786813728118258360300302611286709503345364009630658294195446785218255223617011298158528956478477188144362608516861802029674259059179952012426448315042847866227454368003600089542103184107734504576999987469912801569937175212909964141169810487486431112080707776006963912716090218218479767008932355943850576532041829703267075025024330264792534994332774211996212285983963933366115555368522371078021014172328306281840285124966341875583370082031893477252090167923062819107054744661879681685664075802108375597682444260542039795261872331081674060209208942713111705086163573635017064146016954429718828740268738486564377698435689471221894048357999330694213608612281497717942491030344982277887685712946934792453342631051866466240808945032646085699079454247360849315968767984930618660774197523964791970290758093117743080928836814158424221623050842752796878719368356131276199413399972551948931811116727822288468175053496348237417414136595020567333670711252610724396017654521269044099479141428041912868507615161007276207935499040127766152791202691956450541231211179284186782939762794408205562496614214492512253119829172688926002423078172998220205254722270813111463887440785747745473225920941302107943930782949670628903252943734977861986854060711751112754709076883846769426322670380456649410374701844528480395947391408470401797021473441358463290904597947853644708309862775406873698344639843607479121869859223092785023052150129344770279148652495476023724310107687732012238680961370683761731350002212913643033462690988446511843300248356127060997604352935649323121547337145810421120719572319153480812991826335212311432769297420690377093109685772227531659897356400300447857644059822498332106201578203946180628187906719839222845480521952250093770574493665325768722614870972078734415822666441950816576623588277551917153425425520423996964805400287525970399541615348041741288382587953752079845409117876788515967618423271016542087403492398811588951991151306150800232775116213165389916789471272516701613154981770792882331235110075607561019577999577533364333638633367359013834535669847805053761432130735199860444953700141384394793876660993461819702192562357757563341982010365294444538027152716173971587760860794675761399264629999918254945755495651008441705348817900304712435892838336735865273634062703267082633035128356148864533963188104724936556004609568942768042769939787968785305328250337371359524451958535981152527592589078663574969491046515920537023264175491179311861114602190610974457978732354475394586414956299147436927003143569052177799603413863321749870124216311470226144307619576106118613341140237284608449859342298318443025912348667968677723355073003525206423480295400123518386878703749586741198458177022801375037436387210521361861180356756114182982281153011540393520684588800020091419682404592387007061330635202212066190660034197927836892780542218117659371224112207604185254727311040378970404042519577327329378823514139081066993701965974529745422522348685360556705097493290684923770096038453263056530662992797891244050920079799240243013525474437813090220080550380417156275997876570606132037830527770429299451876566681197901991184879354280126161324835619406153840834841095069964764565392874897389551186225095655892389526543674266711313320340678556360578528346268778593604144499315172896730732870083194311474954820435897727134267319318566537192674701431459696075307218798984868240925403943271310989851463553211639982793501227711473535287815240285857971013201059524253832275251695442762488341941661369342304148919785542649978169532612075404213173935721632334596735064320118156205272478309569155255791497145826783041287900477049844884225705151243235291908280720355211362498725514643357598647227550279599896429386575181898809889955499062777773161987941325072649016089882620673623257027925086761034162391909120116328154481352271509923642290208919841646954614801156109381123582993069146426442643396470087767110168692924897869972677554936553019703839000405921678501610472307077537507773292905077563617214923219868745815187951998313472202857974732219648349574290050515332664338748998593231925118316657460881689051578263780942731909006453802363446808739389175496653822096988089442839471735370285300616506880103599850278075554918004403575691064606138612482292021123991250576443614306937988552821502386758058563900869110611138693639791169018540731904986342597869748027798954852415154397930555795579965107665368360287855113223572065280601271270829281085108979590247123222954483042992813874085734050818213671467463893444700423523236706050459751295400317578998497872107443338818614248226991669555674404781628532913218380476002143824236845749160416706137017701650455990395504999764301764010351258133831991358912491022664558972302821694481719491514421652084163916963753871621860200106192153727336907004872677364869728567221021844294175455095237168425979824017808153853598532706558795106874364483548938247581287174151990673888848355620623360506374012512408027940458138695701422847394867807217816451135024959435438362965903976262802689470807967603881656911929429317788337962140759417633931607549096467304754862232343398288676000367423722496204230411051865135764404418130597751872796364043878309799361875272032816321342770761309958244726932491245473156103209622817842084487067214443115285922435606546584753554231080518388925510083333215687232785724925371342978181073736881162748473986541782363118961953863257156214735273826547014615265751065769652259826089870232251994696819751777651907219845811307515094417701465717624832119594105207505773263467592666820616867872267808855372898301079255954202437396104792450828922221763332740013761755110814769007640335868156544048930674026861875994254686238130308615860558596963527067466969086737118890738499691759836134551578327212098599613217058518968159534735903126934512740321663717926175741583012218033435221101980070878140790395704244296906729893043710351476953539813154928352037313436995451746052839334700521844291123610936946061269762489303836338486781683251450347017704944984786125911837133456598587325640619012958385966472514337627368783178740188799264404695086720458339117813220395388918538628663057700397616434307420879880053079140069087363542229977518528068340081713877605713327154356045797553949034927586516813653298396221628842507690946743752988780363575404775150801125779525656964612010320998330578409292300859511824797137609886590318720949145785120316300998337640842704429236047875646623552763256303313579332941100697333502159040610110885298578090908416948256576948004944752090886595553337208373918405983344013220754995698708902465371058939143465306865546602103586317690365985918811201242271782637308695422372673768491418479638056340209552755752825295491782402314000022231448909991296854998207792945072665492787162233857573746589767074453464799041496699641953308386953403712292663257074190891936765288341089750515724080422704315959990531621562840703017072241356868645046162998348870739332224550283334457913698339501164235797211729024211858422763341228866957244121758913537609786454406768337391535094219344359235133783400501548856535142503019283677007906397333799562936100061285865546806647553306007038304515956414188938809982732508152205018674570574438625012367268713150485989895472858901852066751446366540392140265237453320352126546122269809990922818276477422650476395718238230424589435439371053624079293258317684749396602507303763512759614801838933063810206600892336450637117751790786700173158957728517256193517477333827126591846082070690535163393405244858200415285918993463524942345499312161198946587338180759067103921900278873390692709208434387723250675696111028786634872013954672113787774917600796291778588857048210635146418644343099138727401169663372104565676105018545023610145855602270460799462161943610842219927422204367372454724444049664030444885415992925776593389659474918808168319007961200738243609528985183401948831479690721615500316771942863144829718578649598795912655288966532515401794733653785801808328751943749708970576012650242800724491904275395952607660712537500247155545194640561981229238168937150824305407163161454185788599923324673895519894056634898163755860435241949713378829946106492336034124077498222324728649028844352471302533852280693871400438274405541306866854668757850906806320431239509997470192867099097169178482394843772214253145912342994480060775705171163711907469118291355625811149941308858445119488104584263566168050663873021409901379874201347748749589705479700918914787582002953010644712178637357943945993280014107272464019582204528014385477219431500526430766715827874788355120481702631591135640274373137960356223006074547881526440854373789879304708237590182236147349548210770705952678810115292933816947032189715917474907819037091630304695640450111356591487609124155620441967236682306183340571851524231674386580898597637219368845869418511353142274026325563586854273596806779455637368773660095940448977492617041964789095453093604218789251321877362908507181735472170522275869920597064979952368140648135618205021254583845216982444093907552489246346422327300015368985139717391213502752229464636356345576786065843693764044728669331469560592408993352831841431852357790596631394885145750862153292034522252527296032586227621392769308341411814658901621693612078996046260241590900526080753088510116690386481753485509246282145634170886921541881179574849436721827460608885536200441130035894987952310314090164237914646605640159375756997423991793383914933182688308882191528222692923996382664440042235949298489410448879880506649331967877629561894282929147694833760593567695290179712121069336950232239665408965117621987546952425604096020381198771849597062084246108311233907299667699206700018005058088081497196365354076022168444268579899682590407597187960345165174326459649761804318953446019417282948841788477764366875656094227311863045565982596312115896079028643877635609985280900936913305426060647772921419884976635093365928967994975111451070923466336129492804486488100879487666186403978809228130640594037856094875151032183886309125071725193465000238820786942629653475220469854496674890253176132677930890002647019446310842536749669679241206949539227497569785344678410322714883363604636434469462420117113787754382507848716885396325334235461028295094300749942913003214868100592106166018960202202520261175403680694950312650863438355060595209123957944086127165520900971703798782889728916284807653403111582181784615943250138615919843572537254988936422423807328800171972644151234585603542199230286198058183029857890395895453866650488697760793545790768172092515371638694964489978005286927692837982292598778262104318427822242304551315132295908542823883803517582511153409483413057539610193555461683274308099172681815713679125628795915292333535548177779276412689466545270145846660171645174658020927247078286406204068017226121998201417725925685193726300030863293330646774760654558935550709793146130825017252581920011189562086232538375336678461027568248605581714148573126718866110791512240684313962719583717570403260184884677429918301578131311400549698463962212292017001502024645155718919279325639468122761917342062772560948125698805634860556063796710510837160361308226951952169927922999472106868886172900703325398456559616435086666985955093077913852450561142429169148650623569505821583363081381881141020027509912599048327214161037845446338938661761893081488762416580276334987797426205801592976988708367426399645329204826556136636372797075579595190359935961404788420739492192247671728655070324208920503967964507140021799236057548515687239519136119573622162319917161793108298641708944874071554006752130314501880445551115976709063665201006006276427710504930555483398502089244151200491629030271840958222853064486885900020489754166104702660836818491139237010401711673625185873105249960411255249623370783457758619057064045170357634751031522397890310514519087232546628140254444191146932086661217121086351442509330885575713145366030380332351688045495265364097570875072553094968253216713306349551807192034004179646744632227810466459633229101214219578482380627556294570289223062227086952765146367574904806768225171569622602638947361571548235978426543890759996095634538606317857943442674101591628324594003611960619420764160609567010253119370605683104450750296908952910120167847984332812387400478373224744302730922830689837109071700031856664413309656887542971249358191313326141102946165368881607573989253257098326357789285575169435050212032535027848564204015035760913879488566168043989669034972750183964531218806857218898603309917352238280742509697085078282292961410352531213617715374982734809786797084719077387672453609915829707414289882745484832557295524166764139200347595870398119084901837391105815696134933986022897571215954242839204993276476093953541244608637698766077075222583497430928296481233202374909245615435506928820122910580236441362138003378701498440919537053465146162864955654641789027590932891641811230956268104857184184130754582119453165071693785967727604234522340870008860885761234837027479763717370172581419146635786364923508758800077741731850606392179287084688789890078989143504476971475350783327536886037035156292809051022641108805227164752892077093116176520592510543065651259796899809208208140122784531397608160274562245788798912432442391144804827087554554996158124033418271159243232992581658476790427136825423435136622809348505987474852088222971375359457833600942300105250296222567383909308735811506009748721710891511103070751497942019776463813072695323408224696547653044762436024014596483132929941931335261628487189707110824175362573000692480374389044449216853073312087092826815467769057291282818376118100438137934745162203278064785287616435772479177746831939015934205869926725146440496801044546397502819913934834538822135772082850220311789727092708424311781006875863687939999767243156404754434347319829193427132186202768261784996583156425455302383441984976373343196956985126119463583647704772709978550762880760773987691974244963787779277263775998233480259101248746305062929291012827070273066714947958426640204889181572230666704350295725386575753642849494662889352598253257705945767698866696327327076026567915438751934548121824674773638783212822596151113803979700590738207865658988975654065230625738816965189038070669240221893017014334615916943302493135472510020814953318680152914442831495867548800970315092002154494481784468974384906556091965972306617847940670573652926437727112180595155794834412923350030188289755797777155792292213444606605183938655983620893529123568084430317419127364634690896582478502229592808198446931669275228094586671584490705005493009012106946634704180878438930506178009772286811307105117480701821104834491980152610143942718489567807596006648502087445664617007505579470056280229127799009159787964525449047210667689712844755313693100311492549187426480385680223209226134383033840049223342939824070183296754518730229049647353159503546621272900170189918658275262823351807645561230890806152614107142103515560300776039856357820140630219880999315014835670566465023835009729315348828599860057398397162436669253141490326127486363417612328264067449862588446872655642296014533917405047054299589792886758024781798560053917411533593068830654122044990020143748088600764006696420020207997242671193852891812979108490387114676645526847002332005612613443837910292607305630384184816619479848921711456065657442321359947285256015235251884481655889842380236765982285317403921493996202795911009742028117553301697271464582812895755975500352835973236437146452574990624854042309381462457637334193712284207005548208316716986945624741309059574279267358187026890878853507513189236630307281798757148388517059170536532888793722615889052025530574919786267815236146965589631357253685450364318131263882113569025197548182144155295064321237233852403311460009468206624678738125500555303254977208380368296721773074565196779602146134710493099846551259178669650510647868041848524864542099258417169092108265661988304292146863011592032385474181824832703572324999614837177440425872494919395097183596191346275744085419780547686906790257177272059650997535477619123735279014460199825358839829350153414805340720152833488095250492444639374635842891502967483491296853367490416398824269708478339673341447184355058453618979263425744393275846123059612000635309841659462507717570487346075088366583203244654706520042693329771052250398955112997268688482578005272840902109368304359776198889563619130760174464151567642519561009553749379048564630173639907608565135885947959435062616089450250832002430394015063274885857349421180355974679979898069483827885388694875455708009231967228072636023960945607467123138220657981662756407036501430010159480809115753288248900310355491890586045259917631934102303829558760461571301229675520901582105504230123130761641374740021539496296420394585595595642594975591195318920581363305313744946773584389985811113181296285130113221157349166939850178315374635661645480305955714839928819249037907181259725034837799581940559443188339767583317322744186890976725859661385247280276447424315503254968695706452652277295930031306809008348418009793206050763704933293487340879245290458007492112548519334610343342102682583496856616221257253149859020679552692228577650278115755424429193084623927036181205726365808474328182006395052210377743316986847014870142102573930455129259852092244407271280529261563424847922535181242201184875688333462330778335407967579407969639036340115565672081603361645850377983773373861322767718779477287350760104410108985447162122238858451546360316595420939361148197915685452077918744368825328849298334906259834354234933045440299868501211231251017979267535125293088232682308615676790721094537254324591905274692153866931542055125606605924414569588426958215698648435582502921040009588641269135426714427398112367237741323912491538276945020171075730432727680978502885449637937340212335445522535144067655553983274599777413014508334991193557802008805960894845545971382027109345445472625120436234908588374348429093926571948644174279130551330468136362976090371988917254695598464229641729015933561836929513885490148539062111092293775197109378225668391291388613097310782724225916184754674540914216210235250467422387204144594202506718539559452575103735886619697427872374241084695238526791920054873027089968897067198257274686226835781835714593878707418642063335838700180700775580283561329614034843175523424974483717933270423856982927877038339321492987470422069722940115165482818040388547200418171639157744968490126935901774841730426242136468160456559069353860268364553007056113125493171094907718088030992115550890601053537703319739281839131257138612746204341711713905574660144245905116309966395577710651553226774045170184634639998878674526806247271489893257499967244919758857942282886711448374935831634179745109391657145505408011792066976899232952957878433594236024120660959053283901733154251867672044413905142274051927925126487128588667896578417048853319971574786512094637878621327086727578063280127876080452620981187253091500507495633256212630619674997801855896135995157924275424823350860719621365898373760458877485778381720378078183952257026921106005955873342059050179402954034277516977019475563394299044367046841547514481825480313829917433568456847842477792004717537729077874318251711393794967106499138334423774713822640403918963273792946611134450915549377022841340567073266316966987918654802234304088472201198799353536874450254757874224340576153305333885959350925517222718722331326534033071594302759878378644331334618837019075527690575214821551404500567376375861562351758977831359641795304883035930964544216915097619859793130396047450756874103285766172974780273505239410437637281156770762248927871828221717116145312434870821681133521876853226343637513060551147208863819752665921706280249707387892336993207822325180931199055071347513849355551086952858867936391669706732920237085986021784617309429608695359085847281849731856217179874895238966805873440122609812361028098243204430889677800105871362420272286680053814274070869271061888603011382458763351641595674835476485589407875527927288038284008237518644087765115943135331197771432826261474993619494391575338414076982403048267620768462486882242705732775215125487707409202213692925461683653069293001451872307927350744633522782673898369159733476529002645678586778522896913923843534413753375490911943261526974068526688683756792733656387563799083398811680465204085507111332420463093420940256580463939233375510543330616740801013472650504352488191765795137727008297451214957758954825055046154082560433314900969990839891390909597330322633948824110347035021066620119621287265110595074433594034497004676138052615458169910451586899005039748062791675865122824074346648850685663045328038155546255267049915699296040775535330067566859672724193299220844417513630539493257572105623979920771714368458819011489386100381093127315647590736784461639647091542542783013134733535719751480153266567022345485280911683856242378901456414503570527558309369373879527285616044338353101360342093649317969197885103567926491642031141700225656861213585824946390337629238429263167206800658365929846321030007147014233369784411998098091093041594316170850944062547842679416711996816442928563582163254165368045587120274580646810653894967258522526006127161158560612848051365004692595265165870319040435710008399533820531251094354388537736931403761987563381774522462259829332841829476140584475697760804565618058631889802797488131129245760353599613356281675129246812385318151625042783600786889780579567350904053352478885535339197214948189418966646275902886067166020804241312649875290014495582401955740888424722885710532391819283042820703549011658456266775793703795733821850051908850339936895588175684444955587281123397190627181402102035579299242083311450584952475861353091264111335715781845885595757911231466136101446997229524197894145391098758952306844489668051460001057770240325011996005475015165281492981984617656023871971182003977737362368176800280626862854890221582456273984262000993605013229954325172950413797014641817439540263672963697792435420121675683640721258243817596764007335293737760365147116943366812882581359583751691441461018627325658018490301993725437209134391086337697493283237217406027783838127164159279293337586502707231130083824216582557137692332599672552576593074893153071913658599115466873135932973539239897639202216925063414322114768291968300433530526558783987906139055483093186179676638239476017933219862443587287238947408016491708863982027383289324055889323257825848568884182359529286670941803899732352010405959915931684915099102470912794366124262014990747353452217024587805380678993120491954615084534665179320528460503661782550110733678561248930428043286912269112274656118629379536057297319415428041888280397091627768705377912966375340986533825256584146304561083722328754823078249010421711399261660130157421299022370714008530505968380643200994650247819739139388592365131248741766214718335383199213921621407470539702918274478260502905710404850529910634743792266212009244745430446395129466417974325606014064004599047862844415990686526490243690800812488598401523510683387102451603949416714892222794512214578701299710697570404362245352374625367764421678206600675229421888220988729073477430214133077663404925741518006198225642283927346390125489182518270433792000687602558677514628845763559026105523275576205130236779931747626370859543331045626867877257379107074813428757538585079655969056637947596608343433912883159096891604289682122168939164262757698609695623668846070476523703038057201581312419075459195195153194801847846876304174854050236092197810019514269444334613101204248511954911697355213658879937630563516437029907944235024476867681738640229484676021169873718570892539099856818560217103636146104444742027222592576685647619505932946927439475625722655275722907145959494455499694148136855870706313578698538367106694272045652417711378956365486166145571076989479682518215454362240254441333472405549097647712053182178828178043137373330597519083107198630261417507720058291883245550630269708354052903674602083698525179967799524654323131705651519614995948919061349612463831999864575230607958564228542521212440823991184950419565841451596314673903694276894942114333452583647189200061725847762223742544156969398648120220236342313676960806196272900667227747559705669790853560112861670546818124360555064472868385972769548450085905595651580504093666961339281145864257333811032703118830854938100938593083247809412298813455654989409849359570469641343993300976724364839000460945887354137843167328216817679712196279968108704811376824602951293138440512317055119938214954061741342587245869169572951933005650155799375559758221799239342755196938071005527761679392541552895246238048712782763967294015239477805947329624132889128739927692756591748565056729979630816880837221902468837842903578947116845337507633426890769871678038024188170368938295374764566056207293550361200147964913700437587353462246227269418504872489724695042509187346499445429504312828531446658166836108110741523933290872889069995180921003289719067633483865855296647844296302506168244546516924547325873977301590275118398846155143021914679085021152817182135879758409860785106552734465634620163818645638899538524479406092288857435251938320872633418369479180916109156614192359540876137050835614879820936744347626559937912831466847506516630823989126292995381790646669484717418401536327254355519638690947200863365070526813541327776445811560444573518338302433128627049755416927019216857672334256129926156080049001023369540124103523497936922059225996342414502370247857806403439348642506254692851140719956895983363425545927926729133465194237879032966151553107272960266599605702101460573497699314067796236907396533885551811489945700499801659598375833620693599682222870900639527319181129567752989952385626580836945350788898613841813559134220843371616237595553261341553115580087832024897672853279460632088535603148285862596004560221693504253342933204626903545213167872879393150552841259761775394764030509738158779117000742957412496900882639997057748455978024222148335431967316038092889133893621075269741922268854498350629141379467450177038493281287175655585036838679248779270604975391263651056783559398907175928202277389075163293356576245738522420841214563054052760938272269723978231643356379980640295027189781333630024763936109320138025154906358408156408332583628932730646766107986033657268574653943052976940012394006703314313591198546599337329713510155796335208049115154450666193334577152429286885868302411624001125955467991597250872453604898461258395042499017913685158768182672994404770811598123565479822889324540082805637697792973789380231185939027955883936069606353076312639233919925753153791486893318237491471274413760971222134635645841240826592534653247513552728296089171121573149690936343544340293534950506765676864782643040080935269802435270756789053838310041944478925752778846525839666242448418359668168241937180958154316966898931523656794336788967879192234824434636520188618100864737799243006870061868437863079237681257555436766194959457026465763633871154864137748612484948329543496410265925593373480519370167059017613596425613260309363171023648335909592318750513126862510100527630649965899517674707890937777977677420531331155108799774728671468480967465982791250997806145051881532672439916207090178318477151074179691976747213722720628527594165708081363907201177794982645223728332723440268721926255487063655636440221550540055084768716322207404784593445778023621250058895613869334144871936100592809410464758468761923681721827525222567480860089131136361685893316175526765796404318712772592167320054465440309451297849901319899665145737831001415759379420576660208440444064943716413144164917008896553118139134366707061153298767389666251602133794470329042486133485801110077401863343816715881125762450604067160559405990430694720615552968576141228279840967294515654713975993142623239629060205369658936947161022370617084496421795278300975963666966930809055303739630227103665900363791958781305299101661357354565370314007101720393781893453501996924041256179748135404828705465267308591846067231703426814228817974436998655581497300517324524346820670115382386757159939563584070663190325583290488623894009906006494443918168244123769328795406022637670689641863271711987650928297143036975576464581788673982219933342848383350744759886688081266810637476693698151814961258282154717353470679898342392213434917212126129676142382272120297944525848037926248476888883217716993360174284962325023609743828168927706471740928526869217081834569159284672545600201201523176811540027967592629257539013370662575771140425084493285036837427885969961813369558489218623268217080398944657527304339368868535652345792204226925124049680271007494805214679920168035552830333532937826941239220967783111337462556405520203689763210837301255788688656707589586293544765008000544170498713566878660300701500942171798873809132310738342380551280314424229601612697771847914452055252682035016597247969870519699903504205106536517735182788745239232631453520351589377076580111482330127225375214039923889532186052224068317791243689070826475279369206992696043396817363664780298440102448560947906411322963950456504772314920524591570746515056867202306042118767182858898060419070632080822621057289845192263364972987411007288231992756176880292607229662032435674277410255678183278792382974753438252927809664866144323422367617156154398526549157867112618220845868748138095063909806598243613595546094338700298749698850166791742665166324225250285330167436851662441523117890011738589024760540767597266766641331806681732718334870973546255939625565575755811480750887253732078583090890751181419682893936640336217229098784041329200329448172177508659843211573706086026892449492648742857350972757096644422543747217622005541096324644818525225928675847228326694905926024094371209617594839780155978044136287088771314360381556817631018074238986991868138305491098671205311900714923715953686348643267863929419831865494439519175963600424741349135771930694714320093841062740511648248283866840024613890829211334305655414470435969213593886428830993652489017042501808589833871597497340716957221234547355422657938831026785133455490457875731488226877779871478664202077696554663430841592616820871563986325279534320718527813826434455218715195740030573361148397937969568490995407537510640292239033470245274830579790252797033742087403737727043863426404501175566429837015225566710894690495860855983280239343412960185867775496869789309703928388267267668893525062157151660748844003974889201743350178257580763878347945343691292343695188225205161060655746463150733297879577427264534495046504047547064358174503488599434795949969626365352498916190845060452078574896723004236162389388688363736054666768021654818698494192816852765124843154296594400369953478757536791786880274218350396998764614036338350958140583709259229648537500531634228832740530496112956793556235480256206468681416200088526495584385442343324073489286815666640334973685261172240602918406809205785806013941810040054755124948284478619690770081455155957911877335708069329576069520216914270223768888303899909356086720300571852971581467519768030053356341585886808959123677631926985407355744420474837371161322611178091638545748885165699901003974203478058667265866637806680431170720453047151380465215822101579623286485550717618007088324978732620470052111063842217006826792437789865940297608887373211616401921077798047795973069940074904169305555590311241693884898261904154057170199384733833445545977967157369874728652842172480072852195796584959091010864961185095586401782918419962370265259336872311066931566485222489156058209649118327846675931043839095246873311613947435085275850605794741020682383327534821532351528869898783905158173978665625591428262882711187172013339470526105978857338435812213690770449955338805861170636213393241514086177088085375824495419033344868359209045383014252877854986902083125369583744158023648670744447205524551633138481402130744484883166813291074440795341319552740875997854032274696264648649095495165925029977675589305133734236935529774167157089676477912550346048705255682147310660942497039436956677238796441760142482007956166318459040922517340581079675891343937597900975791417207819419366304707566347299379663282584227458687634919159903303552983914259862960807418223890676245650176232551111776152713578311145451049283223823654820487915586782322065803302342203380120263588021889376034404051452935578326252916599209074034932629020361249413078724979686820625132703148523874736267001973012957965953487948771603805045876014995813820713034054405689003299035231403415829714723709587305244317195642473421049169831411746406792638886753432407165079431885535626733051190180951460718493804338135120739158611459402513510675614915870403126385810703800423462122244704647160642404736103220566645534889503111008227684052999350147823183140377298372174620032937202580872919881932186782785209936969190547950565193658508033473199749142618499315965269666996023087908996527557993602919139706183521545433654921199058417537679672206502653988040304401602348753409142850770047725417332298664069421279139686336896580818836764299196072052566452620571368847982455879901052783386171679434367870194081354031766875550594782540841374142305226253645940210581838740600839647995175011895109737012912586065270518326749771664974133722999170665357960300409836982176915719891155164558413922980644702818444105423460800172452887728141747821186133020690299181397473149999639185380880400989557561834810240744911160096464405097984033631746071666929527000730391339337871516753716274616223376702206564970308130928223015110260713296565468004474789716455386299414521578674831775901709488677761551778064309485565024075790859826017442777401126842403990385622153304835059198466190111105437163356083119989488953667768203086890859091143081889865381204830901748829108000850504595344736486045366812627272756315090615420524456676615438285943639154253991112383171206905744222239579163170104975573589152085986617059865501304800434502671871042286745264867663476850595308409707479425889188083643521507021715805781174022416487683303751301316898108491340085494980392151016607994825944451993388528195468052614628888046110065425156299223049234361345492883171677946482222569776856374748943250791433571083865260632096412196889671846733236048493690126819011294533672015514547654280441059297193334174385864411064681720954448776153610388105913338868333109033162943062179454859553271208863944431184266578464563712175241306820472431567624724652386972366253219379493791859899149152148674934847451276534210758831705395138585681869384093046252308111859528995734339923478509663945683963512286028967189891994010263133253802276445015317876911385819835411930725596456556826116474717417591364658172731734736801020126936508999803998837049463234677927978549323590439300837905120918430806706493830365966354164571075915996979368943162901691187213302216495388488141967932978460966878077102429396581873066660899058410150462871168285107934557587539003144700226168280904155446288631050340882486054481331607891399568436730156105810407158764199534022570836891302409263351375052000495436306301773491551637557252411374512580244866909571744698539688235026938154066766938349899139574508634477569363151594774166892631280289083492452001679405511217334998947028201987178249353006791093703888595358433659510031660875923758355427802194752457654750660134772991771654977989427619739731470655741805524536718700071573926353127944825951762773741912620468023843473170224531949799781077967339054946932151595474583526783399302982105856221182664941039734894971007985128450005474604269039245646390834945415221517107159414141584834359073700526004269945797785512705072152108717704375033700990339192017188415137652377226557633846070820835356277868865121638248117437372266917945687028031289007378544624170188602090314301210879738041790951721485764159491121550278398626992337731792031098650338439817576880677885261605893739698130564493452325598735405509618732886506220428467322408069848744950459090261736296418074896998499681765737781184235373473698622132304779761619732622100607018489247748998476723803039169705239602924820860040134534727681300737344296419239302410679864934046532898663998044395263086814202668448032722761152292236345931270568617454996689358980360117871487697523383323882559270120016636845494937599419290539192793979833947858288534465354426507350376419125521631264307737108435607688976266147461545752313671506131245075478387839665488199112210283600165793152545569661027209109702211260627139188721689613482295413917235200670446721982384750911696311337102559706196400405497880389290731091151371723637137845742834556759882496201045122618147315053220708218025567692528965906580093021203044535738570895696305416990953952117598101725295202510342621010765407534436258173449285576129331335804555269684193485042408407466952202860552151840530104049938106277586727335597260778634875386658904201179479206385931264348210028327423781630769327631592473299110058368867884641478156466319651142746936228406292742369447673588228935898855344536305527054445272630037772081784654016905736033233617070127670726318481923590797690514557352879303115572732414403069187863156170173077071211563864793428827869002114119854501181320092223965941860474068246048580739143041506655306077027687950248349012713344492801675859524918192685764874579370302726949839566153117340888960763207570882204068082719576181438509078470467143712421498671033934825602923106915975946901037012103790454044104836315188349959925569991544643886959615166208410605936217572694670726522741518904181405218354148398884305906028989705304666009559582903942834791148772813729510473972438520031032508794861013873707809926694779759644897006013185986125808180271527045533267384178930805253220913860704899413560255236853872692482398350598577052675406355300949604277133166546676541046517861363104597046726953913665301003641156218803522452538858402670616680138207159626860386295592053740127404560863456105534965887667958102233828596891392579389472692110403555888569685558177306425816540257038495251961086624153345233149479171612871754935865838220501210292763152488044575395612630037058350358090106214226446204430009162336980096809698874653265073392657205641404691014094548303754929925934915044429753187158090758899021255831193439527687367980966669290944126963390493225930035015242542972704644748459737243383870572669909044780138699473137866385439020897770995394303854543711190144380096367674046928031253228808942334779466454537194692368121977624485555127000549764249736091459040214444104917015799886073936016969327432888348964153028886170733344645220155694291176442446407104911237841634209723756835837638545821118567728184664637448032186676801614960477684082573566664841704836937861501737614792721454855933456069226765712740964409693835249054920418934361359921272421536030016638574706565002792925749753589289838230970813797316162954795426485464340944431934386121633692551835579652047439771875524843972302268905754430237113204672005814424573586060062093790763265151782730889589092635242708561942760068971570418724762268758254954139879754000567318127574801374808960654826031655179473071897540403592933626564371290484334599106974069015763535157051267235446221543562951492002706706567009994342925642887052214776468280697493900324230209948305183223814801829860127713533416179693812577212560377245918434649638969649339808101248936798985700780477730007060918053313798395456609376328113339442152168190986061918612036296129485930154836449137600049103595703996140127425152151859938699594063100262296767380727244300202111348340920877779126701407263323966486671253870428143813165316488124751563300033733934816006223378079796810591602091882691701473375211917095403963599163508549255933889778945031199330797493790816687368896284896368457271722064221183782518813637960000664784433793741872225422397862124860088019983130266158988650474612011120061336599649438059120905095516369085849785817958568410041192527890577484074254862797927844485278094020945418103796960018996194497575380845751082700636965932213378169635240742560767963847926484796329975325938370035103246483063539852507286801903950774917194378103029334562835522728508691170751491306545465267443680645562444188356206021021046057753929226090414912604274861412832046075567888196025601684414233828215363654767551332707395584390367520111239721671039921593988030706324473645780001663692099383593360743788732298618893559616452599901254884267463566851867228101759615632748368914226154436657634625102708406610845742349181696635380878034199413084476847349554888686564099896837056675224363495657244224451060716806870995000900451211299542518105792151089837471557559642944571698382018532925845186024452042979473210597627910728702014972866834409715756440494737850786991206142653834845725726383286606187642894061659402517062475326540914590024256606645456788143145539769606234431306194434716454595147658085891745200955226206506924759234635313531031986644521608974376394829844946307847046017889845440850267419388762243700232779780669366048830771362415078730682712564952829931049523445986399815068081260224419368062926678023104128647774707370267519315162804053811958626596200891770258564096811259613599802903262783071487694593866455023532698978223420701637040848874623969350660132795382885912736667069673819214952854677776665443099366518684918765695782584400169457521433973691268276329722449891650180858954619415483234330534168636065466963493801697522335317073357114758128137682192518830724102203419400912724376431020447822799844893709957854909403238601332471862553756486546356806414818579311119402987192046271565923985410045959237116012250685141497261633844338070132207452026470582672950223496989311807086549057656419879312978964736342588888118923427330675121594480559182319799970699147022749740064276589416356206904817201472781042097129616339191093732492486466765973159124205330772169904622512119741510956162921176072007934252461405049410549936110942637717547947247601064454031112769838516990656853472613654622576923902262485595615433616240548642034464871860726391235429688549392705014416300865074557856594092921528168153934262232789555552104143416670207140095297779102074338380062285515321668303083941308969506260816578047930527522005333230658483277601333264108411827582093143272284020113937473572007457110434430806838241531147363587857314486826234404578054235361547379203347254904785155718372741636057908363694331788223518200574929310011866492813037814813155301385921760137226378297423210946224569500335529042940548568436215543752059135384000342047683740355813113456695465265632449416723782132810030095132447494584440295533525917743609881476559038008580028446755418317904097210754203649949117681004239453571945540267204102003929500013565186282129724765135834321584547894936817044969654247608735364933949979288092810693543010513745806598177466492131650843908897034263529813126937746267400078368540031755212091098564414267223170382737488622160264547948852962811260839892164243405695234684206531665572596867168893759599653067871061577445030063147114861766544792000175850384661555418838832899184985081431377204173343165740706487850273095870497451682323308330960609209807319750331173365447113316491976763045341046882481869237486731534546612779179958661609156673062815927068131431755312262972274412205809843548373024255521482529393297159069816247040469212239512278146000422493555636540868042437820620203585194284851564184629695378793111538997160045638272756202108585389037325233649804887825112617876867049682883106987643617519255068105277328457311757737290478888825651408345075063228379509759108327584760225523808163705974487369870619249534796324497638964632773616512329999660053732992989478988380609215776562192910204133388502645425586654666387518748057834278173844396144430108725245512280456480198719458044043644578850052068606330118097246640455056179496418601106449466173067871741430669108262285873035472522713852181565061588140757225753726641035969754578574244775789840803624919986587206126797890511344880068311783922835220262049414518374148282143437325725590479385966559308639620732173979558543179117141086722333086858696942506936688750882311282935291071555246763473731421946799116816152660276205772075270865926839731780844780735980445603460016928041158269136028475729178476448392648219259420073687830811551439378608815481395868261093122014516427704764918731739905009800789848375038297150175783569213928305663995450297245394940631669561138411427149899079652851062864678909406120425241129645584856811160234744666128000175139312711091456866929885944116908555366104089225302395130075002719755954504324477946997713556494306928819047993526826093096475299047109453330134864206371903918742044896849824862762972762718319934465206508222730989515975514168072116771882603038353763139859895605746108156416805327207195422322122124467974165139530140792498860146567491254692022801500045864238868409587094410524207112111704495780675168022424696888345758920976746307188794056444392876137818912329203680008821321601117817514227168834162082996741115457649594371244580008071389085312668680192940700188281041269427316422205565399300748742349705519244613046682771862958912246645174124907660937786251198513986214549303978418691461002283214804345501479468182771819167366444218261338580840625911280549406369565775143286476791408841499640347039983700949035968935868214990554140355903339729886600725748149400960202800000579229673823806257568434465710370733778458892531497375206375061552360190076157515367752910686617830838672399756179189068177215488287485160118322183763113624248051607294525784981682618420115249276805221400854113234899600455357097097250227223888369937050167803871958180395154977302578114813179739302138748139867868461754474424944434843735169006538688825948110080876822890960420293433013181372497490178491884172072759251094650551251387867103779595219376780588036102170999945397576089266262652345340154073972970203176314354493623771158230309436054230178333690105051855999780998332237825069852205363634432738721141738494476930072118347885021109324605574055327873538986761815854633401786622667425417789806713535747994239563667997872346732140226943236185407357918766264694085329871904437747784388192282924185771122544271710011053258940233786842878089872016655857286139379527300229807013824199825392970496959634014952864438617270806876022330875471868448645389298577635428727366017908411832395902823454960516362009667425221394430005946560068763498665155441755267996996152480103926014708633659661784357988352970164305710395582737177985602417345890003800184363827629206539010863164685047879294567641943381532517828673021582590716116030733946607481855398705113213108559482209860952394615404989962509212049962410142560069950574917698454796628855603253490174246776223470660713008061359633194941074014928832842223360056620528847520533483592380633664925032078022850070308972756514418272798186223110872657482998080447061976365680774983812265002706884970059121744579834423092698079352903567957039354615776777083674321064799054499148265080948994049922438986298513081660316884452289203285332930267204479119314031339849125021192747515010783503431918830538194090645567397160765326396908059497241147210668710136310878382997968072722397375265592333877472391127970811210827311058498706812412060707850269823228046710575689242869367038697649993373889717242844030939606790445709054479171776057707096235778649168882095696619512330685212919193860592555717150131701832085953093195687283282362598244089488481188988114356157574294600293179918406929681377864871562420953584973879715943212697649452771021662608681713671643281394381998484794955841058637274692269999356279852493784586388363345456024464429379452226072544373967562407010762368057865190425697589911733805019919626732137550047111652371878222012778404417350722581959754377372281600385287299360864221455752670732740010245806871748827874572175614074087755914346158462837214800378205510735684444170788716486769212734447900023811064577464651978444631331148933365092798064490147234174666943467997610796004283311762513677687571194723220273006203519543081696414784470606582180873157063470916205625687229995120824657368869950558736531939140883297216734075447170063071808285866601070809882344384350984495680704075362809320366411371995121187644349194846773606443471720968296207875416221187099414361705553694673931519099671101213779346045726680603762053321641263611085994932943496469063504042040431372912969991777430038776014321808314184732822507312647792351615948985266428376565857671857369493183635832989322053696491232501302303484139989795897979452640404369557452981179500229690111955681218766839961873682912775926286654672791602398606450263970340480196695329101029409289313435550005970603237640911236665021257843276219861943249238307512739139077947800281819938033714977007336021726318877733641452416240201938325671095075202989824901016444188384691180719193791592040998270209057799684279661053475681470522211833772599333414129645720337913659166372263616714261058807631455134701126038724530136687372516764261353288672702876276932141380105984464627239175588110645045941928407047884913163779582192320861915509668198077400273047659391691890234965933466049700524854467612871301762132476402814526690531469660652536076222999436607641511239895468257334186223011417610063867379069025193354389196520508168333925753287270123629871236409006109653629716590709466462358276874922978579376608999804294388409923516403840744728527534426767848914923276365069716387441484004080804799110948396226745218581662628225257870284892048752611043742050568144849350788631315935567267717100420964840172519738068521754335540748180924350892535324198901930357485979873536964829117234505163856035498543066746323525222915557552488898536381807365585152565402972437873857903630637857166033250599202083594222269101886729202879129234479342901728610785456188266896150103376759133379877938296082281546960480511602857921340558271070739624079788925598854079747036398218627610426999335012898619933760249052737586711429214041160413869150421377266372261536003578874246647840133000803940346588646001350798630817294266472351176608711111506811858572379464296445610793366714109684524310304028281758396251890886191291776461380927499846904148511625158609759086389121430637463489985655029838939031646083259209469913378752778080230459701377524083001871983663207323075814843171796953771624613776510709301137573418964537764060867771690548644944780138405820057813790975599153431186887764282077772189402823532970480824018030859862774698612861318465590910219695250811083111524151538660062954169217512109020442493656111299135478232090117642820235743097677050101511536404396296341096323616508259773065333680849322164468399331070558913366241910796493700854240233652057956481654541370960026869347416868245557334879206670574379701789983304255216704266064545913809831926115291831450437350199873970525289801313814274397964906170862871585554442777427082740155664485763955378420356609481287800749735674601082160765587881060369287561268207257279802443850760160900014497229049144008496722888777393489643960336862972128420210934888825092112400175057108436868262910238103067993804517783925130510545081383635436362293587819022442322901750681761167218249495428804705017724617542495072502258589277938157117367940038778289367183255921434921358136840395611129605717370214596806431367277354869285334305128765430791951405395464272313694386829856880929070834013785305891837192855009293754584665603328076649954805704308786892652149847590531675541854759048019199444802438795060193903462575701327509096887945831368083241737513815845729901014093537864526791922365636259477015956980692156656311197271532150644223108925308609297428878686900841699507164168922766150881991283704165519766201597207738973314564435327690547273402681096798872354570802688862078269227758005452672234437882237541279636131578035255462484159373910352110395087252060121020611950355102865047192254611053201256847760901038322168892473810972548611105539870055891636561691991581075124226244147348345272466514212945304584923368440790565536165408437929048363359184850669247976215494519523826963347648790515813805783666522466983618714994141366303252487496139295410457091238142175655164343016030508241019488280114626214360509060386205265753933660368082177116132214630552667977985195591781626466353719762456451152301252673956184276335899269650863710525727967962530688114644980177534415274348817821318490108104623807925943551096191359009833173889996858730110042254577051121789749010857060979867630334140165497712673632080441446826289144942958177424382427068077160983409223778463363915872329589650593266974204198387484913154106400344673273722870538272647250581234352740218500895915079661571414264210866279918467515480179084830570121769922499160510492641658630564270302430372556655653315032496109125652609475336878013562801424242184766432147423858030995984976407654465837473753368800234735451213554989485747885174966350748738790610757918968425031633217851166453597548648190203323236881907382856466693149784749289428910959775878356308074255089891062128639252510569063149068053847613818619260430777398339078971369273360232743344336355459253626019431458901246163435104723815201551603796212362395466118037204255115779321038389028729143592810687173333720001564379533740127339658721117878811996324037500538551702697539433757265941799173703972799974823426140827307077061120630640152045736028864184807483115474221357222150827064570812165679493593612401929821457919742556841639611031842283540975866885194298110814313419031853679031233780528851157118048185418278554930291437753725521226126020765085512099335995316624846045892078737162518043542075420957553057091204780922595250803401528204642253824412547446453711857457020814808572073983578709217329593392690815361309100088638683194295029867384535305084704333377774168810945688231901974307178071544345360480747564079146080587744094489619825889092910654821464157208257984205034620241502194220190088556154090350669999260007708503863521333346374201637072285585154228707045254580471451315884926072599294861611419160539869285543593111072956919741558341105495881723039183978931719871408806672730409548906520671540803924386577907664608372481772635944080067561071456044927481363111399934943399936182152856684768201314897540287741806971434573476962944651757407255255855868836028415981904212289159940328409102867918359756944921145514731076146757015629617755885229387453895915287271547715950929753683115013853253948649887397956834720754938673920200050711504401240969681624335752722060032104517567163476245996922470338869295164057706774835977421155700901639843936501860021301303986788851220213026606990618485747660761553362849592808843770434093857449768118785034424519057512702119244074484693900506676101509900304977951900388725756444476965560250226519282635281161141957476020313065393199950091680394114968372487960795006127259458333824502446063481601015404323013153392946172517765336159861887179234965188264418403443283935917008740780529507905849533161582682560995148301143600195091468647705162677077121583709531111373573163104781250761877102326302200738868323697239422247979917223272014934526548207452682273636459543177045823946243793825343653280785882341661432704216405112934650270756544624808688367503045865797412158947718000558669530172222313468614183558955886792288710906327381290491879550401187611970315077118346129754638787149264760731833353908676225039071617215742204993155089014125816178251657310248864142229018952546977566250808138592971010759837130323470734543161826325419817477427271497806661589913406433124335656147252730426998056116189409953740414303224504613771139647307559963751639962435149850347976930741285938005432829569593602906427199492853040129163578721725625570617946700077500086474511678507470569330322706782811604118224836306562279099141440249063462161417966885579106625530555708252049203385835459537866842043029215606671802557873240056860829853286427857055940359994737569418073684274199449283573835485239869429728427470301070577471729185429438955547885504533743890497637707287549860520188306388913823603397926063264702539377952973854495496813597626681083221101458011853515716421761012740269753306760486383422827553313513796194316999234970318017162346138743591662039989147963156774931899287000219634205193871815335500640267387513307515836612534550624787258627773754293689223827924299407693690017461075812102558012090324126051047253400983128515645106727142636043459548247264945055012642044288726433210017080944386845241381368949038829963479695910617778242043871210969575287123287395659702336896377402342937829536667357544155725546947315598588222161443377380384482599056909383346454126557201345122921911225306925506811526388254778649243928804208353698744089242449463229932522613415032059778472505315397150998035046779770207343753563917467179807030670005677929740827606847611029684455950049462369070065694714487091917259526971298163411129152592925713582923441686368910122987245106283485131793752954955464234930923953654799164043222278457965308822332376158792115538824144188851171916898180074661523249429104943107187781349853771628558806095051653999034423938381848135615711401639598577671964079011240965001467352868683938817451134812411024714439946313390163835685406170094867653127945376473247181840835474954111440549614586075103982507788148063457748811481795224571735930180708405875943031899799019784937631215590542512269393474690969754071372560683623943438374189735292551882838008396008536102897259304719712243921668328366907050893257559012421945303728508130844100113123121132660462910933349626725966229387286352625448316456871761090174485539984097568877716671480284085206826906721113307851045402606309218542376053587609179962298850681121480025467524762421888580890820466085478122539930682816483141088968341640475066998371464872215209418258889427615643649970415197299368093815626654533954602287506903694746631322672473540733615625815368501023838230057606299318709180162966795159147688064386774802511423715615756693437313825880907049676466653886814710135734299074618095723156525177097093115484097042718899403856280709930347353703087027897934831867620197051706133318222028885881096811772652945817950488302489810646946106607869514329799340739456292668491014296092600132364752557440720893642448526044591367102955818024970024057866745991509396558911519517714019631914531938467128862999127067286240603146674720588573088026448714797270192180292618939109773172026581138519516760543338675793577733834814211974076834051176790751069479743552237692558150244322175772985376215648598176954605727937455471172697332458969793552537826769970638733940592994945152371820561426330776613184429722914038738799086812246795269947535373463796939007108452000422121943017900355882618633260738017740780316369518655438712696678192974766852188302125996666182430261915396504047892312273417807638073206420150518797331027892944603291502021780712310234996232000886546400498074606517676764344698806784000605339260430903978239990351090233963365815450769746191169781345410675783839514233384224624623371565198519625881115373702272158065413792923124145531369482249648623429127404825336123386897574469173662791317158504995557506940147392456843304898607258161226264500188798402149628833269682993161508030306351436728904653654764727642156243331021430718337340303782280136625770797627042860364176540681597335942681176809215830806420113711046324219556203368038250104804027008548169121636268972253695434778627422748455861911864872629872118075647030343635321530910164108991788598803097541203140000362243060618128913996315177412249635533785242733859893895058111042279364885328764256091842896165410686625679598760596570639820106650669482764474689915256409539808042167726521139338414775589218842880600502838912999525499419026497626351710922090253460264639109420878308803086807223372028169646661287232370491849766950630506726280592660836448296399511478304256099722084667899105404812968335549414295772098536966302029063687633869269725638345457432734944757688257469926649657766867360845590573353763439771830678906888953054062542574046125350269481996417858171401602984308597844802219602218741763997526555802327726601527107384489480443523679812107928813656377071401741238087525334614239433266698672167840863606082554572722210253135908170473247408281863433507925083308428963241804852881209518350572467517431556383213861177529936334979317862441202978939745629584162697671258743812462924553498268160765668747969988470224798896627495333712595547992932289057661983567791214717995584980839423334982078348223315455374001842186785163482862676202685367823105937566159719317763026299421664430098425174987629087464586628842180494868502438525135561179971893563926413313902181074132394988168718510207894086189011519667995374988041035952604007424619716271313757632747718871443873990689291843771193848052529393720061617093227084714512823491561313255620024305182273581499329955659382521378551115792503778852850967973834128751280539102802892845215220462636071677408033634127057979372231146380590226578957090966619985437816785066226039215945334907672354746338437584952381391192430846708187873132968791418749194821681437508057543105744979745338370719331270663651671774534552860129439544331836095960844117134510194889555923861831275737772825866969513904522156066347611475268714466996327976945292694293470997906276630230673686688980896690973367182797488356312517248471433566971714859662605089975404758227721048456894471200662357556465522361880615715947839236839966645008975559268889358209228414357864067635897406129150007193018513637578846924744331953659551094607452909808620484924739344571371134157361289900766249676236613111960214465478079070860788046953276237442496618579957485469996409716934639230979118432505960049331249240922260040070828951483944941311651817051950249864064825177491473401286194228916367428937203708967601971019722642241263939005683104388732772566890492790015708149553253064396870798208349782740033598405228499455997774668900778221704602386810000491395063115905200449121786852067102343680244731966082544749311002873457311613513388977108388601680361964995940336485833266917154203841804334698908863700673036638455699236557878047811301745335733929311183831658423438738044156824797991669002766117997504567242404998104077294448186242702388680426282869371691146335624797510311437355410787446171745064587320426309664212155990541133320331249501350962005177811999195726063786211596978351508883961083523856878139672664432269074804073678213280622526040835840326879337684510868494073920554298960636736625661406297100823477909115900635503041742977266460924661284519942654783998111858014987265712857036726008241068813022448047714255564093348885819870284266895847247517184478371579534363664409975683254772063888590587099428139413752508844442572479879162940462069215435161199730469808446132137673628061199259823939475916153343930186190676158959746693288643387810041593940950217561103875538589905116559615472404319674176262294579252444979660005464266639092675423872111688203969877681042138242014993977798115271602366913226581375084712014198588472001888964990506638005708226305334417268733884463395922942267735129611064635242575912034383077070281702145759790267211173358025056719098627548612228985162839353952758432733443611544694760184069603591329557344376170013815653133001342184507413535278355614001574039363043812119779434424379283085268436292958796923190948203381118725725554626076075771481771592950644173331054893328982516043606591679385740727363249964000247720870161957023651308068590924606232336812532611469216402005467205169322793227460522551436102017187697254113870836051702132983645303228550234556407512983197261909561092542231457253113011132401920114089583823019840449940491678791415605287109342898533957483173411081772731057970828797490445936342403353113911151091935378197868045636788493196832112628092088850833180164741420490238118925207629102960251697207866814795102181312505422636089423603276528554956515596695573891497793244936033394008741876731177091558877156245047512316204798538653353184712578380801467606380434603421991718964352510911699711707049766947573260365282187977568012404599168364528763071552368684171704911368671558470006863663709381339407143483058878589199984216116134993742122342319262238045947834276259100654997242934655269571926484960089278454654552937838856841808132897621255234146773524105517528081973545965437444237469836772081885224567447459981440742672202528343834608389957403043017314217784054391986374323500370293377916257286402134450157981792949780273675352148989842127305143775004755438966325047457756871594272237774876826535101039488534083561542782720360515333411031913798981106441692580874733934049249557976645248012695758906277653158314591253372329771736207166923471043311796234889342865842206340611894645894251933999501858508614383719612745882953778655729197295156383005048880489597987186973054337428699144037377885911138599109577263886519969281314759012752446746943387020494507412086791486628784785262669512136532919099015965656926071950908188273927061803480443404732888945610990062864444192983862127655161128386168631879429995620349447586160464468201797773548912921119777821859694713847342535506827638750039574500087095512041875586125230720052444393663512170547561569664940331511682588991471471315634239188919600995453463815990860316957360680470051656044291248595100524702685728314302494642721517293902947191263160702466090958558004931967134478224105845757432825865644076778325422733871829263043993439205201589722317089960427647441499717355065502942788954294410511224392871244735841190230384872439782502316773748711952605212910512491840601289697451340833337199609224761803705958000007406795412065733853253161588662408015428690506896558927712290624124903680586321166102058167293348412143006157950784230113658841867772417844499474548816728344705511902261480779439078174070268969269167336604859064888323796079259457110082017425614948740125507191072315937935687880138608868643858882697660402618760800107686299807138553294412553464171087930946317054812174106393227886551292565580157115911165215943675777635595159576864863503352665869183059716690863220889283960057304159362040869714267679578633752727519071675803102885398128936453900350182674221620427897037576570530187250538432063056822614423835142386286607877723898985597801813691566452173396422716780324446175148657453129373333768452146090859702203306667825789067365435930713936711419319561620359159440509108097141412103093158694705617888629516326635871683421409540820399943659592872540330344506574768620893110854063556552136866622440060107382382835122193612123917580555844019611507646543824290839509131934974715293883202754880092845217603957653256560003895639902448066715640662314254031531107445407573680789254080724906878017571242325072769169732758945316195025564345286400298894723818344008100304777848939873386059536823400933422437256583949597758181902607829531571847803424933017817073977080770425840999531618980563068875728482909221534240634547320560454977578831447054251274663190397569279496299882785001593381352551952528651314795606879099090494925191697081505203783122762379465043522986903119290333878931469550840392755734913244271560990333215735544464099293991800073850196831608949652375992970052327930684810449735511772592120935705410848523590628460255418947310127281348983470695656462044531731093800220035545449281769096318357841035145820392635545668137813758796050526412189547144159589848615542583839868213455493660224882447132197030163789379839710982871913499145022131605252197137753309896363449944613634905624111654296825936514758745694727401086248595652278580542360397555193275073017438596937255327759489389618079029671730048017218364179132721732405428358974107013363918934554094039097736647944579848803057509786918382842096405787944737859814863590866350337657870755804384564818611982381728416723065173343093897686890972804414831519971777579912772546874775444001659266713011510876829500171954331712023689045336304661272882856893588739282788067145550695459443792396366535334065060165261497910914848279707001002268501935915388114482377153062884550601689178721549515820912714315160574765213912287151295526052654843729344197863563758802790588797504716964123070187536432676399972192932676540122492447841599059955926323609747775259763722531449941343113915307498835868122113043947757212300582533238421372495135498537403612402843265995351605404266976705851697207587668954832055221827651401318209546252147703726795329380587583270912676380342715653174541938635502777041973574802811822919749220848391098995979859249781932931841475475731482173616637293515942630050088645109823102508310829751185689107675330367741543051734516550193909561304229871028881882942204959443200279979289103859470800639235425287116932221362330140938052101208083726996057296884269583904983945423281042973415334521719665427924152196405653663440438836838888471263527727545575103833519353729237163119795515827811443225804352488346567959985943160794801164696883173096492338152537587030445186643970543101958976987222232328310373831814091013066592459799850141837363572862686739467944690145163646428599084791254731475899759711356222041239702017306904997762609195404670443115555182274665432927071458252097155296759963470798199568173230699181446351333601914709535049330831766881418766001550140913789713449615618678672212464261828552363358093043299920773527402307090053501011160174559382610436356967646481300835054962409646364112763023842320487387786213149245495259428917369292054807749514395360712185501760114370395420229788118973326314601908807468986062373042125506630971639490901253416013082320294422029198668120410581146702640846369932307743052091633415110252001738452621971508239220960379862669598378468716812753216654792045600425602601025919865812416555937058049911611051287004404046001043552375468218728736750427486168863076415967275804768609683822153251204769290775145206945887469019852732446033428259057330219872138578484740483997733917809462095637125707398167850862312505542754777015069087645216849669304046582185687595837804317422226505452726894148399608328948451330190865396075425886838354328914133528971221150513638311893960206724975117335088951772126918183340092001208784125459868239085845591286301910083619702858301784887280140459827128271557736946698692962143409136673905997339053636047497031624899742257354254345711910348290386581443779675965414684262231259995936021546629836809093534240958721913051704778947107488542238341212449288669707860949269258482432706699835508111013590760823625495189438455967688632096520716643258627413310719636738568503524589832633196440472817120111517218185241115640311299961227052621176786063803415447470814742443616848416330510147650178898443866464933349381259069592868681567831128436559176568742821466506654316416318521292523805378728284297133705221363454480609535057550882400910775867755452392417004823993461414127242480450035516858835071571293027963108981042333503887685248379273751081348404685799416771920897236286136613917966073034427994100563934998292516531300080304587205490261278600809443542736389737394508020739131496844123760578168472167617552520849660285838311139607577503120272191418276986654364408222827769170320293178207651270203116291489494546441968099959664647246147629281647070922027564210468899888181779899463987819411137573926673462915244035013639425401338603651546430869524680688895722691647990666998457788792124565398374211214243182613439483532850037246923106088567004408934721959659059302130937547809890773880848464142170149345603950890954686003984662566339206124330701992340242684655371681638734343448508582629877844444687293665644534778038318826164254329264311373829027369932719060791007206976430414637435879456718136383009425713003514706219495459373642780632032178910947216299746292588122049393710227736694823643286279346353203679356611832556998529165701452968451512517174954709012309232406333749794312752225762079115739642438503328564277171383218805999543836643692194357222456407533271538741518941925236736921941750426440410989929242352678050056662893474429141534897591171083000659388088260048888711374556644744063699479964842217562132949581140296637910898958172484253113312791136856066714265754877907475918183071647290008925711062394273645668386876643423086113220842167178155685044585064329547177814160988554192584004404256176184282634980112829923824406706798217886101910040786846976552124379805755500990624722504325046715832395412726213337680862799564447656440950590577189249088013621520375319572579466608715611819501170969232842987433325127670551369404899274465496038137577388004111088998095175816976126337421004666739637746152944181857287606796924623867379099085944661673982958476254715017564808801437852896813086881032490321174407462630620396093380700400788037982687200389416890321871959691520598349816505965342468501257202398380203173505915373032551505886123138807530795777069268487312060162934134732730594007936659729866784777613493848888011071153588604117169847916519857048694503816379932930418764063134270651012899765614290865464999044261971421261397176019448442426369312208268275178158044689382785887701859786659502223094881953547680158695054901874663917492083405823624676203012745178787275393074496548954802870857498006901094578219392659938139175415458238200802513931365595088933342631325024049975152151140207867198434221733119388878314706574243294667667610303233690932198406560644554938291649056198780266033147122296857213752262978715608474918246086508781913454729958575001259044842939514961291655622751568342057170812257279991146224463817115495788206479343774095580101262462856205351087513481789596973638840717108297763810233304916045716830101949418519465993255757930777218576147854594820845186739726089430887481806945056250768759065442934332860656464206398439680122321336901194912112483723867660131492251216876614998942801138670694030282698137478480994750776615534010634645053895471433535195611442890986292010848325818778741395674042066454519541771769741561350692795720313069359007962387540704455484468862060081448972935759061131576892839260142634950410216541583235632108267160134403309870254551799588349698547341170445207136654794737003253366784177784774377797370389639144163641723029180033614937939561208776985815084013602605177548449640086791849610943843229400699623174100046030577492695668299211116009633319566505525249872543156152629553411448853410948516283367773772321198393303501040949229949023139126722732859254210769310416768918953503803482887365949440845401612138639445031685039671308849567979093596365604415276813943806102893858283134248525767773693828186880016562816682847422501423451384058840395435568629379786398212714087240943203723045021978999048858333681187987799141638970576828125716212310959440836983979003606035461197849579154434119954677030056350828108449831084607540299060423253768575131092634521817402447277784279731981458212967682708768617455307557233794303266622216586328071969770093363509686595186505984562184942618314350836650945338316316620259913773749310187890139795635463369006552251022799836760838091003751619714663823003217292764927605571033991315254013134155629421392397788880017468644813061310911417886313070784026355917189891766308674031908237221529437269141370690463586221116109115721360158266808477515481404461363871330740820467685777934501360952329969231247376254119729593578999919283382004226818838804712111230597720891612641165120485544612178495564124243620280886920243023561875789647759195638496227470048689812895019978447181631023482331478627368873779709848413314099738014695284108268714902152851093129649528643726195694569864744060667675215851888366283257880777785765137620477122911610930840995173144173409521789203005263031453549161072579777909771043672835295746650042454317530024191897592391721702043090011480406669807761813119772949528749893017178039305918866709353794328227964176195553797667429811755004681509655820273587124644983811343034303608136106345928858117760024086210524715532570601722381440570827910259571141484925988138787216318364863422528334458355275856917258583517373295652911209495200031208670790982097395853120754047484956252246606835711735226018020720423864057003494503447356703421826139363919306386310534534832419226419380442667009128720776564961735880422887289137063797866018529874077858314295358518388998652381299930208999261089683309174373304359700828294209073266487602605366521621616169941107081534314952698509384923407980738624297110809228718547182433933599765703054206986005402561141882374857951355658960253279276900495331554393218947676873993958763916560611020209828958958537829886988057352434637594587483691199026522988142099730361074322119623870212522872628811787802569484264412525532031420543407680082183148581177535602783598650455590148230192244100448969399726918998073080825554182396972363508438466047189510614081859836884802981633566855390061708784532651958409115988164691310092785271179882126861904284166087860352296403240257065928564560150799286868727232168023353793473891982527060021826382530246337146603281203985154431501749830863982872931372425324859138668914480214028062686698669308785259740763970109529438669597324185268022165483684404152759963723703218063275464410542763473160542289898206700910710382610550257987631052725378372054128816233241790369620943724173281241180935822949881399968455668730385699327257990895025760781710800057200399593749642405475362050050879898884388614499810136188103529396577281804088764233166632558064272623861207775485115506510998782476738959887173152704711969515280648118903115201240352730281457624364814288862450706781788876046491480373386718070620340050665122921331838447981459057414451131308166090662331133345984893199642974353434125260317872290454495670086984185344842214138283674379729559810323410463766948938550280455680388928869842639273263012846965008158927682195241286389668188712531624232834179261298327764937936182074039830386858939754622494723483772274732548205442322382026751173888389037815112126888866568631194949033855273359443234697319121187106801093927595038927648156102709726950344857325979888842211819829256360573199442355873245422846870815997476667593691004603264907891592350941688672280147682135512782065019050980873051254895735562387708283758532445670235356187385253893893511720815519648330874745386927404655578863018964014153676144934343998782057080553691756679292967203895231376953472272290788781464720075488385186575156236793455921993653609261970310859611794200801381420792426184348635107839690434316758036247935936804945643992319851803542880599590514983593416213804532850525851078554017311369162418199554276661555133654249159513271803991605976536394348781263392840993764117718581084694815045528214771077786215241445633503744323649249349089896638222029474055749178465592701703237791433233239532052137835431933474115953707971488355369599681274511127133390000390911074879645979180079217973322913306334200691713557973337314389569312895231055113600004208842203635685645714103172240579042117198796247105497003691786387807865393597871355510670270333421740943917341708144113619849602484658583508464613659145466804643728348456974063065769769129924719756312189661997273073552457308345786988905526681951314286271801813096368996569308278066959282028658830679908197041856190294615413995606335088778862140402499492946727786734936229218998240842875454289409588185119526554454361604500995163951368165076239066777505462701093736916400103563570802331880100414543520083711870897727253622113237697810378226341577675079720665144068677252930741596115634223833149438123404063483979022344535461852555648216220836344485899102704420422383036250215583167703844315909632613474577490560418562489865996649415285733492751177861993291002509950099535024053048770707976340112047663270511898570439314857055941318606872629149578256974492614489853621627034086726196664505761825959000312782077015249847815308680991159231011026245647471586659823655610042556944250451676383164355965276222624005221493652418587483858885703827006497488922625057510680247196193216808372990177813571100957647215775785018074459291848465705170957028841557151978789818483030054158030894211836703712954771462818826966666079221790720830258444125050099577554431300153062837108189464675913330909894016144447776989355844306950069817672169274966056608861909614104006766906846208014645760742649290858967342055843562116345899213882158595459333552962835009063157540352933827139952599464833705844092100985652830032256495592968986503293677514609152111182631394439207511332923401779124173696083519802875024337595743688476523695378561288734006475796768333931668455551542638732356128919488773756717208593826348091021625672154327397240126795917910267981424466412455738065144594383415549419449863054848256884632604652753046322061173816171971376344346319142815055587273903248908845157385206682126356499441309643331662736204216465833929346171967357777952056907051666532441832748318629385910096194184258750341468992253533374846543142485035615662327019522742976925674776808819687661732725316511482918883406484245043599119805829205918894186147426824449577756780316162970593445258648647538773528560157134265022819425081307315336122771461150594397048231599214527490598530940226219081887503408963123765444417585287294846065149114306624945288962297403474121140398721003844334527772724105861574465935392669620264018808317311235089811348450838166091616473772494604285169510865535787770643687631301580898953815214045604036568526232787134424780950727708872252523612764560775078017423842733852876192443662663535028248799853552529227616234588249922005134299211337037246940753400637753501309799549976540716009452818541664982404800386867295147255263892887908432185346534966430361424203389943941701234034623104217749235274970736524699918736692056345147142421082122665508807471449030683156424195287304511003146617111190863133471906540878890102923387273594632871110782277901759878469075044459911158898027991772699227322437065097224264375391830598008361140704365783682165950593731504239234757424039738015530338923024078623243869520951197535444144126124054185814136076296101565499959664328521026784999669262164157323347535503558307626062464474651749437408820954512960041406748850481331431084830419849067388248866874353904900352128527817079360581531555119463721358230917797320328297702316245563697191095580804656269235629961382874272726498763661563723396242620668635512909979488619623063518222786978347403175734635841964824843729338485518015074194367860982508666582102295176003618465502294105146185983463479629827819958429790727270826580672024383949113071135884175375989100609447834701928930398112606328329053981453974763245374375718592349437276538588896700152225255689465269114899013500754383784698234340369264706325284953817037373752845258429958712632163045077211861676258607859311880610295089622003870436184527187493922728902931907448410512684714647080297343400565294977749538326779655301898481927054362727550077663803720022494306802781351563997933614044276236247128757702812770447476872570529184285814621248998281301733117360889415552842561486677244465622798637514624033078214941643930831257622846256996529609269977814990163017190184819385368337413139446999155840928472006298066713883992009905763009664124429662217916842624641591122631008482674496674799473304253035259039732015548141321040892858973852348958836394537192739478100675833746227477071241250751017514896690616989833159864164176925601660006531273274008577630755640778457321485534203409186816912313003669309058092104095495559190073037211292740807767695317715132213946153673290934701733136427540273083960648098985486485816869288654291508336590802891177288773066215772009487592171624816620341017688746984619293500159658113387446589009883652191818449082955335104695132067919125217110952362022961478842960078163821464678463970247778653355180261542604205810774573414379691998797890096955732310459795663901316889254882660623721228845494948575789279935416630827557455261049845477546872763025288406425278650507261363947426474379935739187790392330562055759768973118210676023438529597131813547869784072242623974002747410211463287255991971262801292192958601408304699220215975048471339106517933285684734109071945628299191861523216821415433290004442027329645208826464553272608574943370442636614070547780542760148185445481776651232189929512929165945980254858177557525388587431021294152377288484268209032817596211819828657994248167635824705919550940431345249771745638401914732490046152435570682303043403920253433409589343584237463688680258708110498057088411061535440713511433484856961411176511784182981916541108182955211532016058078236492812359534268246838820422095608105335952227153224370849836294131676131066370781916380067270913917535559808440674195513832385485070770743230880769962191583454590509827124512655129068853999312583287377219826017220956632190140892305925200418527429034826959158808195606749686805589345950209812664205812269204009444556362263901811569433608217423522607417622259113337795334321419776676022044850153359755642476259848406361853195528587935377648179287880007303402286792247921945526810262101866587728534891363449928887726032012316950269775048447791811436853120346175426904404599375350284455846740445329833746147326464688728908914379266038622791826619278583440661033983934443375424926467212972541302453264431144510562074809621211973262493603120392907639039822800787342793205174359054101939797550305312584887740388841115860952146644831375770864878232226601725394027008042738093449387599294212620842010012327636212095260858288109499994117878601178204910643701657876190305187815377982886627800120441702908259121162450241404937539651704851440347569694862134063216555401567709457845305396863527599791538225175942710511491242763374108190221638157454661348490201657523378847865903462217691819328662997085420921861757423358070346473520272464789703939536619128358129627760091576981792616376960903834356189118398752094292750197408474168791273635818271569444721560836257318597848490983138744230640179702021906207675947599120490429114279143307465554804702559853996247069265076580814820506302895151938885240834434627403750215818427200760145718376759216260325987734332901729233343440945188475656045501531816928506707732363014545242610799242537026752637850629220976971049664781375866791773178025419620255366597372565579473459142192300156787492516424409135595466867002907531135205706111972828928258324625625269993258902397571924367595690343438654685396723771402296402691079721744267946438420869118700166255934674087517897569856922166026025668746873343429848967598007038318491943746654636335132793567446235816526772991187461903562604804934310593071341848295355002275149190464636574142798882806066889495588892798887978094958497331692583151498572189558469541362531088682272823184922258021917548670140317264492292424030081412534205609055187565462014846864883314854414505729742191349670922354671691775427791413334620240411900308664720419391369712762227426408402654567135959587858878754536097128751955834299163717569102816709855242646508870248795863293325035745463968610046411223169959072866519057183842619882739201958992921965410881747430750742258953645811250362795072141599213710562986087707786758983968363353721227841784476730602613197592514048278069492510626762722306731839963333092201334692291547076650703639760628917162884362819042364471097819882280724758277892330321192796287910872119983929130006362044844174129074670506168711905270706076681771603660137363708815002188557342834863772062520824974464846427844319935809798406245762221295102337794778129544620057332786650514856507843162401473865444262824011573170039401028236901390260257615261058771215731680804955372032586154622297766779572642641114017269196087055530061070372548877455491833289112013127751841584370087709743323645102021891090549390890644682998785787914994143372982895789623868303023151385956675765256950097881471259212951701836349092855346011724694243832276121275988018245327903399912568801476025828853421128154735260264457020563700488912198969088438478937961636793188201689914017819300666869282111369370904942125536473069704185089311458851671555885685607900405923128606762975268638137493199965670271783857772013465973738863916363646053058266385580386483391293754171960118712567015597533663674667489876247701682766680167909256545933060632013315331493755222930750589216816929141144463068229872900187329182924508484412890908993956928683685236053547799277263370935637797695716136386267777599068926853107780874020117032168637690981075366760739540676069394971444821912320517162455024016709381744909474907653462852550112546788097275357902833493960805119598243794244969477574780882059011238846646364034090130420405216803548139718229519329864022400928119674717372411106441538722081676609265450242981122246464126197365841509166162106835623500898165740328472286361750507666314578650456355746320221590974124115702711047853883389381915655999087398990952027004981452242209188942864133591315814517266710690278688418090341144131882890781942710974955055875604093862181461794522532408245299510070988859344808899163430350094247781096443615887107428524241933097379997389963581491210655890897619687929653838234857481398268341619623133924087038941865509277734991139878678107226854722708878397285215031532456577746772450569428649283778990591502170151064010291372374498993098070432121657685853540139082468275961542731568902920636252777286020066760165638649826769750760845793550784054998753267819103592854023468151378547754466306020314488403412142970809673814781099412491337999011710885752478631373372739262596582613688145093644520130584669191619037860597161163494019071508719910671226140367090236381054541881397195374619145523181836363330782074995189231488160601691969233614195620532008590644560961628225228365548628455448330534957143452343526363473933764319839722340533765597128529053707953318049775180009008172872005051777555766470047386423956500923925510657017595254204259622883160997151739130877161608032527898325369074889261583688373402912093671684399460806284918754389091614604494042334798157893206646303995541512954223777463291855633505265574581493868084764654540551460270250879430464613401244212715915135679105679311732672205477546307565768479555986187534362250649465015002385355798249306428002432362901149549352793662759993293457196607322163450081784408289560825031107611799266221302542348367834439982386003786173854019228970757244302836096740433210618655741293058960771131964122579777187150940014837866594432086658850963121040103102275926185333058288897159064858191418189083844659896886527993914242526320394603194913852859544470057847493828734782185793855305722815898224399969324231929231415333988695341812094233667379826501215237460141564508000000563619525883852807919921030872669148035343464304092810711268949116786429629836121495320232354454058383672084125315568766633804404413424071438981631694602402337501571645193456570143653415525356146983163342770890354208018772413278889577246918391376752902642212288712174308074815407525812798492180966577235126708639538787125033676345271620211857945352482606681485750801781506419384598459212626371679965411500560494690768935161052768561455107565884461232089371676809333162784848817621137617044973150073370727816346892053780764999301228092326342428650095719626392658873458366275971480936603955407261143956548109881531090719392641758260156090795583640435767885346214130840808291008178505155029591972563972635693647616421619990742241924770833552650732522208874886010030449123490689895291816255596872901143090698822051944448305439450445645817832171649191966438434419953043851764061133685101126212673625932904941417810331941027988608922450237152497051635017260319933986933877337350117567440016722706101114594762987689063107325132393280364420120663746857762357550812202417327048080601959771483731758068305455745645517304927285418941280752312238737715271561054067897203040511680585612548803290465753633352592315006328729381885304110592466855389391844698382945737074785256143390203325490314908643428139265811621480702690970306876449740323803171763492844962797132319400472398376177826274270189836756375476428909990706909055849858997611327992056129322636599211140996820020164862985527877995160028141202692900144151811589835369491440261774470737632246055592891419195664792804717727085662676491824255535948951363312741759948494161696942896973602761396772074761648097797373812579416421891421781593143222072285265790408424819373311671128938949170829926870149413095315012615815579522471525206556794404938558081637245699221296858846546705221561508899760168912225039387474742983832846179697901629884068407129351226560617680393089571385595635250358223046241157768347704335590000704517606066996959456916210425167925432407401548697675087105544572878858566842070891943770590512429825500797327318659277815015708523758681466229186441199532679126341396826355851268145578037275705990848721533150649964857501490019291024985801030896286776754703887722723233163241644719449385823544733804690657956453895024836514470799579448574896590015347842850621174574398683977670132222306435293517277487046710411500969862224156169239343274323607480905114916724047804265934914050897657066914946235890485008984673031010540556671709809591013611738269840797132119513650921188298851006912036223229036945057059461252320166556237946478165312247819284109730474039189196793402213062591854838192375197098050834355662469962934859654816178325121741215638731662966463107018923933017673433460449046946382997646923539273578167287170477477101567564017732877037608884248281170004587147769993992270104914017551153658699921672975506479468464206528653729193600811807705976238973761138469203778282520270599022043663497421873460829688647548130790457015898241123458317117125743244037015673679091512049058683599842208953383432350585431123649579937881818345819752267274666482571951894706984290989668415605890706789380052635594266343230031024587373163995290072291382477057117837910755167959455568577752280817449978013162398263061432475052867265128712273900023630924179044339797164907605690902758953561188041273413322835274248050150415724584853055055914616576634307399904897617918830359863296922061078557609366068268999775603361171603266923238184116886825856790366178006008923477521176573831608901463474671228554452482454539776449348245403790495351384729912858116334098139033979080151579416533431249427210095178375250971550198513539047219524258054856844818645101682094864019596779474879223099416884025548863544732480161260096470580825285945413257255389024440263004973203795329346546248510787946142848685515768217075892073036322553251611243258183247594953061163943662987083833281495276823887660855933521877420439395738735273075801585645766751483512868676047720363236149804700823694384972764347744776790713891156572544268644478077671077225618625821227726756035763064382345729807480037779937117946127465039760725112676685364721899831891713125985233155526809424936115886790679305107678381206310490497445889838966314582860298925937906249497560883080990889780069491293773152231302567688545745835112271365224051193039607098641769800328093945950731989036874757018763347246377742868636538411109757479521278872161256997064998366103486178545190366626313777261121560418999351896886649352160214737010779612598240091077076103706331340751841384680748992374060078279800693760008545190871569395764700070076063348063165068450805719998930038821590771504528017311251696160911726169077730296148556525497644930747004697827565605347862961677059567084061273336001670793161727364763674938260982491148398301256464445482447742035188995253388440053133050555779240420360046283886025053784931336708882186828530651511341061641428804735985730640482517821196147073288865417765972181877586214148806296690307852149000728858536723984229938299559997128386071079171688253407262360804128440210289862187637296440150620897679963410391048151032530683292262078117650835601161259836640934368442634052440718433146254208486319722241695493125454130970585710121760564170401378030356828708162075921051465025092232001734539945891451261100169711295179737672375887243218564773155143648685114645970968508985393045007315895748358961008105766334176497892974239494066995977329108012942824546811827112189957595093687704227890831179585201950074193174620676034615877454737083696942144404546621509656348272173746521014044257432424802836891091496199223360667330837354610537701368639355483809461711199714913801673554361505822585914158044335840198950187928586507655683117019606057163718040228330977478630248258729671198467945294455324075913713275970775848843343181921366822680625028571469117743266144862029001624431964747735892369515363841895158770353659025500612870430388783884164699241932253385969112878617028532764651013128339330630719724069544433203139910912368069778062534301595439797521930717284698656786160673894139833067099304511596581834807464109074870404590078487389906674348405500341326209043764797484583918332665012454741193167810218113830761335629530999969620929428384498997115436131857006991682279783242896262261028666803528475436974629341913055523176116613562719546469905637391682655469784706033618924951258853494902621496363835025893546961303504712773394384948978450253240430251690161341350050030549061947951978785119134040165484342600356847620769329362758182821221688312504572751412689063368248262514471848150629192492916748426998407207798163358498336300035128213292652107755285458406821657008297158056580875966113002057382162685007432368994392797862311048758124215833653487114294744860688381168440573051504562276614461935097757560981655128586643656393283989621667236774990849339744668646100269921292353439996961477617921361362165215055372289008645633467521352091435791713474413138894184671937238088639232165649912394616151985862290896907880826926158603393384486181608455524072059900594331748558457636439656297056892418762732378549166886405257825778946736253126716328724944767505265694434572192222754613803215117333284405362528041525136488904127240777888221825249903376424922769572917447251949570854306771247887255075743288138454386306222955009700009300680559832168385495948533253343820815361702985577043656886056138055029875200597400767503150751095444258160881847323530465697005441916480140113999203989593751293209584264001049553598655356281705604887306984558131106154563412937213354941211194526985209146691295341158230573254666716755160162825374975948166739421439330397967892666175983494111837613982039356668067906137224851589701001269947052840524360005594888916411072414231589554129272932782550713482232632083734467168766883952036120699928458898959081437621267254041298887268901358050022631948296521275080610035651884281964785250362721119113189315087131337478390184941202571616005206414502382755000641318356605070678356075243489896051249525780856588382859999801257422601859743808389616606865628352786415903604164602644849383882875706183783185062033182086852516785481698650422897792129677048296005398093055413075139977458754507408945405832333716388112014078736217543470250967121894807063555577818689390987477047259413041173113359438199355543501941454932352144083672515893384056256582868549245727033500476385408001056036058228696027402717679589354547601978936507273970626864730845171280867103237087078577469272166870995290377599289992582094095236290610530139307142112404098090572073483349708409217296146460505172677992257729936632412653627576165245290420085239312075962092048538780479740502801037040169566336054517263617978862088512242848700960316259598529134172923597387953411855491411835332325308891010415066722207843328816064936035896246844543902541360991369470031850656948066643405952088777155060420302946098583797033930848100001872580011138155679511759588581438477407976943464723946137689724638505250225571547570907705733324675662789746234619778413892380189197183391370076403313940926555628262189630666875097488857955807121036114490797577253783575918914244418772873869323796430970871782590369670285960679026389965505038521926425763075580397859819901740193533832838353145266009905277015878213654823647535401657977106912075037243399090011536818020682632130905636392972004759093392142328786417658245654074233415111969748537248786652272902663332720067525320779791999018804134753859930960193927827276996543438773494484870343249475821947419072365434250008175139543804183006520108475747088453352854597155889399942009029576054201287698400355915847789835106970555741301703346015766725743221827158160310216821236912120124528630325785442872042099236450230932708337707177028987781133827438756394942977520725022009072758431458069970597765061523319550455800346014025746381867040104134593413847715555739297346246516046563207428010490173567630354147911120713756732687021582754784828336447887067069091239708828901155869927526915612581255546081438971235912188936244142856957023847965626787140816959346249757105254213848588754891924834146821849215322119645719486111649153041351946051453637670780899584873357478035185185421236999349677627269874347801997806435069452357139185895614346254531025938421866732961807023526339882736058701877953990564818197781520075854723789151319915018652794456768033490057117692137418636635594150430901538330354292107830357372661022012097576596911327638585204850654614508171165899024083704531339477205282748776650203507684167345792853616192252688289389010174385753405193681994503353919894741466114439097507867879889397735254644396849598950008137940107064656890232906809247891605616178051549935790654221771994032350420783173053254586719321781046451056320685371902439908183683031034417302692460195603713339639989546161500243751898556901630451433462548003172095953461749283223180852519425731250718705493926396185333018637267590608414296234294740936077020619592875454960078697856491688667410391639525584101073801915020899421808567323019497111264818552782903825246285905924811653518885911519291832421400025855580448940479568082084209751740807083746813626954236060261127178369360610972334896660649858585531010013597523180479587463860874506108253871300078495984864721299237990277545046406961559607605328959573325079895943218897634146317640347777518495143276183282835884856418608514982072053598275254528952236289639747418895719375229315836842834795190054269050797123031944350884617406703868982866544673120499646332089455207421102988840125632653399902996774968134013695555592451147527461067457516346295240730140116731484219433655838226991700027176419231245829051262539307715515270264957175407136912949025834769973570829263128572314678933095486862422124713347951212902046240041332119945180156199877503980704992898239465477456027852258914530436144447822743351201176914013282084979312548312544857587680964986215388775604837363315731253112683429297278706134677745709275691232635123321698875024211052489108823158953767089736504029173395374942873633170331525461730956523677141463419236545161469645902113074280131127445605298360265195661476152318428726069822864270351909110233743493266936176387846628605210497775707117833712122859899820794446757965562612828936687969493029977723494990170819332339376660467601590417319040937146847079892337486034670849667640250144575039883579628225901609020679401810602547012740586822133173246108625953059650035899112309945897504233649676715663160581809213203795436066212761276247504333228635154394492866929224142605064624910461376402943839322665643915769099888977672781919417851872388768316512047471400594914593560799974997998973992849608631638813486436265316064712831172272965181182661023798068951198763132273945973207296515704025007740100906393160914069947296461111811441002189291716420909690747877764370529188816662231186481539207666423062431115887686582829540696555296977293608114107677343021329343690773257125510365325326635284886415019325046410475092388698841263264565802694130163603794267997141832636538800188941339988069899971421614795157984396246167999391619247863555322106672526555680842265146190967336725908984854259033294937719243344817590050505916620171607169712989185816878285417600807968967646085976254761648099306025913666672802479521930111663921479783401407392278369145289381295910449738582415055707284536669898558789355082815084996858532431762175698724767778904576444659706236786770124632050263444245912266214472122168054460164763797267516775209491649332590979455696888076078117555646673135839105520225730987312415270141858688853936472295386366673020810591666170537924691552614833985217877276875910155894891487467140536986306985185217627107530446892559496431893182096891697910638909686291085524748457688867064278149570880875016685180657237992700384383115006327034732265930978996092986859838857897169367750107537357133265171110517804571882165487844804975833853116693033995826398378054153980380958294337397118853447920609914231715825285975546681488838886346007817252226884125246644122606301818657627666949772677364248468546141940151158128586987943255758775580766434484104233327349466023686134376161826817185417243757142720652640829003436616833995935388027197039473327015728342796053128012043119107769306910135563385416304015567238090962331197755734905485877267692058042127683403808238841620115227683099261630240256192226471375916796334958792427430771717544188935735102797673065800586988872698832131027871768530756733156885086300043120863713775704158064292697393592804989970943306461471789892598380914043759621722076375535881936440080265446152414788249627184947665047919394996825862948619926957063057558734333232151325984724527385013130985753240657673526681316771850058800188893559669233339465029043323342634315214969349201591646043497329437951096138073666846440492995216682833925458366194813636973720576563355822929998458916698883822085431035446403905642189972031882350449612884325471216324794380863274088295632656373256119690321238305620125180306370644650125222641433089430628872853896281328976805316910674651227416360732078836275160136911876176521832640763653634246970066074030611189501217940097287138825709203942613191997369054275972771121035825963325447893311436989771681154761980478917216279401812735727664504528573702993850787841054578870066811548288059201704717738190369467642302764656087689311971369474231796682694048998255487464675727170933883752648056704974889869537037753408973275891824337718847449352497655048128529385454444507566393617071071349738679657302277407383092997681711226356452359553024342886640811061849809871098362705036897980343396833885239810183780257192544557889774324413138055681658418574896983314084733758041079918776822813730544664533861621190689089181203930787263572177848594483118670386912320801468981258728772120410846146739721046154954835267377696633752263036952429306972626392231207042097140862854195822553114755797906797832595410648195663396976108474020617146264949877931298624976020471493615049050195668086264658732594058922496235194415226502814276292314474951221827152950506538564383128489435827686030312150744301886503520404614692219132992245433867040657575815924341762544515106067375742065930028801627547365356749627508855095216106396562192013414077843460612949374369212976635521384242663888934038051748299866261411676616214911450943692596428296328986139224749224335628788872603066970355729662455104325011614483284647431447832313096560339565838336910670032296241874753898176260049498596948872397375786871616680087765762885110755296628226253354279135743148868202413838934985917249900381588353228444796491689407486493329335025963359879727255621484657650608029177616236222315578930496492603792800892551770162724048969614978851223181389009364279507857119215900724972701372495140860407639276817830719903081509365566792577130138897811404809074950642532912310526440266451003826764996623624864434308489971098644721284415697458129602503375501712388519592358734918355271453911633625626417845318678237115816001994239850195215615290428322664816922718225084089711044903921127639496625288622198782801668667152949957102389911879944593888046941800429406550264095759621372907712242115005112735977759671868031132579330295789593730861994754115830870393071374983050160032259332833865897322375290689723687528014824883047904316570629956701931071847364064442305892725416939305080177555126628692220827511661525956624447478716528202923127767737851117920729954893991518568572252066529411009960218630647272111405281820765807012829185352360808993786673471037261449508858512379990177006296846689666868534952375752367303110619672337304484600483560464932843150107784045581681819697991112529249477853600272387537513000643598722212010386648287331533020668223025946238824652020321349854813899715845751673044995823290564392293670472215659280816754112502040500765354076498305635911637747189492699421896766646800770266973997636491579213968722162337846533021997537036289572453479088475114647725965704430319112864405691537650248865415745734920880023343934613227216742657914135186446482034195012273456375054559550772315631035751535403493673694600331863172462587105476905061637493877980188214735704206994073865396089899475733399830149625158061931758180573111590723708554823135063663642053371417414370645339291197800401834200811959592084731880646661940970666026457643048675951111018530363353572652179710195540215908549833357213334877556323730476703373956971798444450026956061135663839836552206015134248137842165683126175231135455722979477720633030981741328869424287691913247138755865851863455581459042187303013349464445946361820135618235231056882568834364680559439579494731641829303654082750450233893700282774957066436527098527636853040715482197790313207179455083674199085515313326012929566912134416227423369305511510170590834393564091163268161327162964767690698140428298464929031474992358696094323837018431929496987850419396065442149893001476353814111502668439784509489480792480988010329521758511033774714600728916526295376267524588606542293501778033644934450178190449083185554345741017702304301785764015986776658319451958828011499763855091199999445216934116029421544824256535943372057032967321057121694385184728366768270256791428923349798206208854767496015992914168210296571808290861310057125888060410425116357793102902777477143796479168746253710291089624153087982285277955336435414049984594592701717521450679166090081653718290530467879773698937474626440420435901337599016843337105969417465490947113579657623861731290938286809579305047495297570286954797771377033566437565934056260867105354025067633523331753850861952151350120376201661715026094207290916195967629811468541617087496986616272573629538468314395976988436681836283185418158910337891428699035717705248883634320319453301810654542513090972942764285371849914924162109533639270527806531800942705061004664511197426191449672926141170147791882138534085738711150060782727600148596069451372221499874931846476450091071799240382508863794996085816799318214634986952651385000754587020258259920372789997890781895346347712802597154779064278659638846082693171531782408805077792739538932149174809813905277904176475287533233324355999884988324932188529507553541411074312313699155594667620493283973500487127239267013640217060608583104230077795536708790161056979636753443640536313539927607367506039436983167553178719802710414817851461520388681374862231871653516075764776761688592524013655082700149474131422969147855614111846603819406671230020046294198794943821637531490058687603505063335915133296531951302075712364957741099627618849921159424694173241394742123011739167942912612355207077171649367220700297793092748495473479097164734155724317186383057924277164940409566223201785638671483639566094149642552729669658086913841128285173801192296658019287003666372731825709975320156586029028600631003684252287247040931709610496127302579596913215635570509805213591793760851741128908488816811769380840569942444622407636843154290800769902191730423435071024533290449778205733136848230484749099986257409082277971027170276868603815164735044498185299611413418469388119609810718725482606208798093108098778720811594196631023342206067924810235045947482062563995629049941012298336122059911306596151256098286032499371944826597159974325713920735658743671989893024921044397002320282561033600185153284734770933577754454518613568504442930180730241519305796854046147627476074270048913233746728907604447622278507797038367191210998118499941355767371122599731712342540613927998772569293324060580598819549588561099110383755503020182268027079753534031969794249916489933462176144051396488353131903651893374473120617599589019172644715314811765275075305663808625991311362580109514903980090068059285502935896691466813492034433312893616254273637276055439527818876941524741384935979904145302065936683659705774426394151316143721139307074851631649988881690993201279370082906370368443499879670075730787396032495344163693693838170900700812287472228466366966590217394073235717476339681306464064833106502524135828167083367023519553722879569470927061132329681124207673038444823039105971389966819382546292491220762187527519836569796036818095602429320906803586989191040414735341449873098719345264403633977331196899347243334100076491813167838728250119662936472675404094238824414823321890235140753337823544219451013882586385524790564642816924782459186514257189853825936934837501532945293147500837762742120643506099433183798082265579956643800270431739866109494939062729704888185994673152980006752431029186399805405369178044217006166156502800573882210202231354153003795507443222282604095037008304738302974723461863438505494452413214399725634408835948496804906773834673583705658953659192126614914264226447440026448799549230037581839144760300581928766049455900304201614887718902682685518809961798751619313323156741815490860933789206616099554629171700997524116019774249823089602739403464255963786028134023137936507034956972688836415991784720339880886115132533434553022573229414273011092689757778784036614151740846394778063826556822482946617372272042932711169716481408100559882468461778665959945203132954332694238974776976947127589412015210038703196856014526167733041919943621887609138704796658894617533280192427511009536733921420817019212763295302196544279685504774313301705021080674779038528505692382717077944224648505458037790569434326933943449424974368927049104770567507864528444338409371804974682803619749069214747623734484460466595056371473303091737029880842938351574552560212483746431369512892112855961681856236715526165673537723493624780804077299823615142872220978310411056352486984852208257848590720141972127739410686427213477007340577652788196193744161005790800832343503908154040003393527062528931548053659624826836063273618963738777736931355955608577882455303447743333784942786927711806966544132204424635837455512371120368545576114338502842015002979048755668725685663088248984931855103741370455380455807184610178780695826657076093556249466255326774652886450890882268679767820340428421585819316522585873460816332823526939004291336677580416766571332709373113269482081366698640391311037010684722213680109279225056791441706229942163415417877935145687306314022952204390649387414986518403594960744135072210574481056287604828292457505630044080991346917845803156819527691106174893988149825878209220112140741330111476789393543743217704641571583017767997487503933410461341972672406732790682482385605001003241474789880975454783303061306511592234811192572681452763203016434156204271442682178886966028359935038141326699895026737072296492960223334473913014367466311087331929092951457749236922737180953111206553516212969542573952064720582831320487338868265679553419925281281793393497534793799110727218859242340693046355084491954936800992478561934172969725588459725911767725985671599170226556763273667155290024229132903619940690754236562425026205162952842552438944344533375500410298993982552901280618012523020769366568119676928281561211577681133616776556433083596034145126706581235270247575122519471352593470604648876727733563546280950962042774497532918774955434203740102774998472330911849736785438375998435141448637236255871093473507775721829843462726454938530735478776733249034490468316607759531507366848549472921246941692637266637386180891446084271518992427930622375323640377182994797263537769012243498861380846218380485066653785242120758571882731742583642123235639616345678457541339079756812126512565721064828223144502817874429574397958096527527545942890997549241022946087155984970127434116708375840133579401980420828481609677762805556888409313439993899021050556407465837476037447333248632741376352815981346560358204465901733327031566665208041132108357935538806127564159866660912611557081133805388331634867178110149296648864931160135978527459262702305242238496883509872623478603515855378791864577527472461929612403465891947564913391766478051980769986334312145667956544738198262877926824078949311907404285487315657813131410033711088970116475235382678046076975845962351970049654978280941757637713481237620160036657165695353624135270777573479853716837784655901529414504508392973883500559723345004501675620075019428494564657606478832599603856571606121311115845358516962846355210450116706705770895186700139992704445947433528899287897211716513286768801835150984548886063225520526710228576208543243293425202032905082022445531755590708902585918716400731745996971784526947827633109577195429704304446270787534184940246636108196245462597500900137948304272843834850830532269819840355057283712573993693817558101543019353753263266499496719474947477224750061707381672693830830114718621521053083619158400547997547496156497251940316987333316408843028656110871619947004742304966990053651480284313970439055801213947889701219664974228017935705006074762356404752561973012862931460921596504941274119787583692242248703427656311161761598761266282018646191230499599760234076234621670388734140417759289275591310501076159123206539701995648759073170499712507871233857179303158880344652137877546911008668403587803187574920204846127088589886886925325551897860621683782056945001260455787506790199234000081153432123640956761029409181854267465069161393501807013894194708257643766507032170845732271836319479436977375637261546668947996625976482806037838614993912716192164761261878853989004416973725757800181208318062905596232608165032175343519077776395496012544261041147914704313257063384106747525414587146150193859204535503055816702680236095344641214702277526434761267299821209923870824926766094243098991423668587560501674770263660994693310035298325317138919512376104805436135442278161305862918147771359791828689922355208361057100153743108683295224551713662147244285605443869842725098931918043267258899216777243524554834779313144653657017624864857123261879944026255460139687930489956624774475280053328165564643364324931187167692359040130309790148389913970269310457815830327809110211446991221510532224555091520635833368365092421497596256671976972885399920026619564870694795536623268529650281812792642816539083578399349988545748570594161907349633473945909680587046348247393237638115569195949173527480291779856481237249524656811304948275309139642975905700016245195469876026661468532037298921518655435722173993878351930701255060558281133714561215304050374521215896988381703329320849950432730650417227122360375003815682302377792654595064832282118384500227887576752503403513888788232325180673961829668814577648487231264254550442666323291777890396439223831570717130076739047554214441099167294120016198541235268984725761572254150756362202217729213140565951641813270228406808921809415831893326692205498547084027059262776950121212895926407490821014104240610357811644148350338187754670224192207932474116402298765662082475322594021381520524682427997052958240568186501412550112580919371489486025391038197577062521145728764501414083224195924065718467160460448382809987552898735936161734618328586888167948076609725800826178496376799885364909352190195204846484741712034124494858396696347790742562435156274896147578193834007874587127769976981913062849337061115283416735338907881605365700867844837210186690739424498829746134083331998917503644837799256563617551754827038668054884320062639378966156209878244155375049921905824126672887217667840429142699777219358299634003035444131950545766427604777725313743857118780875465283430906457541047903623729561845309967995667977412060505545155204429729223816550185014322729692910782918563152507050275105941249361914470998882284330577901798725771730033868772993972038682806058529628445024130435768046919658918593825787069283196759060028085555178713124635242066928553223904176127786088324842103344027751736273419630008698449355461067514003860195119282757329506573314145224587953972904864117190247077319231878153225483904790477262068886188546462328987510524587735451356950033344699953216435342301466945657428073454377936458659722240120180524545843898122670732074782155908576410974261091874479051891797217806514053913952680758893453287643847125858734398808133068937399772217047918015348995212685715573827599563750229622101091495451314071122938610413768754202543755138832570879640685756247955495714574592505356597817716865761965577322011138108016884462822371930055026115532520558702320406087288290109025176862843022504037995546832784693747306460262927006896571226389580125052694188944279896611457980888776800534949183725479460537842405147951471687854385746342099115515526767144510909703353277892102912161600527476030633691941332404916495564069296985352367413423302822320679259101695823082022118522288462733492796532100499616552238158933381583285959682589907507555941218833388587643096564195435008546476580252586501261415029454542108067725424514766845097097681665226624501538837691030463933974683607710049643527529368412930706451901649239618650155907258640812897795850070901444405537247918192730303185944296204617229491208197312818630945562586803145305422896304024146816021811820049991090243537472678981137350289166890059277356020787311764744126907274081089779715262917276023083732557128252386969748262773727068670806706744294233693175246560844362420889638720212555504163459972183357300234171277456815766898837576589781170429347088763606512124771000426173435365423776334048068781774746689889912618626334967180706374186632585746926501626378326340858708940627307501288974863045091327495988955892210904470034718741688634657580984022741196109260199798779545494159861880474489281056522746417235680541241804043191888409864178784038462568520127273069069484490172001159431969888429438711790642855041703127614005367413639426261049919703012202682927645925839716235429208010542553367917625116191539361739249495652515287160697285115872556438481741682872780593936072391986256019078838873310687273717968673113685394513731412557410624203169689375428257251828751329977591251986905263171245426875773734677815131754664377344225859591405379269540468039985527105238992313559757160099272275271367880132406592134831671938816606312552505362451759295634686051982175015138102157474980251210277747442889949009098060033370388167532258482503637993292860933945558455270617957768053208800403551301912677785806095194595336245830588579983386842903415263425909902691350764775892163765987969770393556604225942141778070056798217386478392162131618225727998101092554124134448746307848026787294148148997182476230340874441904282208470443013944663936714491262472098637464102649507454102782623168490379905187910834993655051874906859013407921488541177091194996977246267006228905469941307147084250457640187328809372317034449980339001808649962700109315891669797006407456895605159295204981545853584675464519710154727857141722012559033518518255247694154180693484642298241745735189762297232454626390120508461588615150112236324177396806151536487399307936334949837313509648441429988072061604342767919562793158213437058491185756923873497911694982112451938237376887533082550823988063141662757439585513249647876323956481640822663816768549049841412549635545987923561424544001447012852879653863603047893447163162405163302537598706900023172619361642403184158041230701805342324189126670689623838729615001057934325631850712725209750156431070064384177116733237119115355029188310417721857405246296953347814955831371063557531929239962338099479940506926096087253927180596147511020360123240869302238138196375894745931852856980222495936697568724735630245529175960470225611408570072590460061511542105180678039243782100683166606109645249398578699882122657121493943184566634868250264404149539905983970938886373305916913415297569864787671017391912794047020015384889988633232982365620610329657630915896018230893428649476144494422380818569247684580152062669579262696437516329244201830782267019216917025604155413558857015937027387465237280298040434738649032349226292692762582698933596640187539793310507644627562795511305269960914587665919320136931685565063713016657162355918775183325435198610175149972921092781094233631897550552560134080600736916817756414819075137355112305705119344982165010034553023937382973150943717785509405080922395169423671622766129716884768090767934899646392892725110041748394737774410552229308353835392098480285493744531133937506680402181177704407139643747134425236888555471109711524696813065924414793421612681712748810396659162699406330184965557349565337589556291030960158855929160262041466543206668218929229738277527738841159148287389780498285252673679912396163829466506284835245350709167732601910904730796526636460495083350580028335538628413004051335714128452348145944757863619476195727995613764274752283344030768400895854561933038644384476918918350948014335864572861659135564573562901386037669952856688124285072472286233457563075845044392567230875174409270412432794001627583403403343196821560212521315318803911120526658909998869989450738663529848790289712153329235538759999811784895015004372962378078522109545243220419247387665159402127911498919590971619665105473572187321043924909677935682163818289884368942500489592063600510303847829427232445767185950445637801879312972790077311466351223507332780463863727101087993672990695128586562173345373725437847492326418714968228761644294286436079061830141020799286701172807687433293496641846313872710396995056109594190536790646939196740185537989108973012786839831255875525027856502807830131693275509674421525559845428277883876132339711165259846933583359459423411196896247955601996783362599876031376372147637342451069543303358667835466500645271924312089890452473210065965003587960158642801072417409815785112961013001708077841360699805197861111381065314648777599319840370902733863514979935161405127353460504566015760735211713500433320213718735561556291919103246291830734284166262618585701427883518819623871521669579269813728091513979233679577849624498736711594557540719313993883345027994701314056853338978345403062411311879552572837124974740264641697577880108050885298413906086699089264459421818388875779253290489926562952233208817952365122400995272196229807639529058091889094451672091876537268119238924522175315809141432293662806906488400980426258423686191253255538024882609258340952980948150942806229988974615459277592301056794452223485178391587922470510850818506448312193051194731898899393708382591639398288803244001759987153295737905689850884901596890227677204115481703063837056742783822156341355525701344072614372335687428578242482248509625621892732190205232746636463529323124142025814708288840603927943727040321853173199110852145418925045935730949093535056508692468781422067399200746622320050275002453117004503008406549775611672634740561342566571503238021378476424138469334837359041781369725044185344551744281541606355868275593344932505101705826342468164008414521328310015654043708142723122486921503724695816677798574525799251401100606921458171546796663913309160048129885028014900222175610825521536999097588693146606648483369023601313613205496157306203323121040429029022348391946551493819189189273174080070140757561765423708749027296906302966269617038653844112882069848395594055900094000799300325974711051702312474003885529852327910449713488747982341177801037620888404616843553970956419646288644107348891433622246491383004747881982199309793801756249953774781935271309823566228536320756502860459339711633683027971363630731693217182265095603191502882147529694170027846451713576993878566801824688720034019804666116262310253265791679759038600662208546222255846215233587005392517284930517429245455422920160638605059893397217998380926569133318206947871254701648706603585502921912351311753681545339595670608889886535257757720100104051116288521730375542856418581869232481164034014667435193810917362994858742017545016359525876909872570927118121794683501456871084760676008563213043880336703969615422931334330230218797101655889032302849487794630646525543567485867595182584278577324874911157446348464417857631439027068944639635326812600892908177347280590005776105496401596893561060415506437209438340237663843685401532038403365778093501957723218267980817713284297946457889572027141091580374646491406906664227561728442173080495768532138187440076552951472645558364722458807128119562076462704078321235590243925291614249888790868477034521082118800250070235394315186832430390398375940719507157369243819087361976985643624390896659122976175829205687817972973191638227269508920610333547793680092888476722892520465409125269621285838757323654451469236752694795013510138696021737660172745617527739222242579328056857898154826015497232980098439393409574125497084437675407616406196052890791031322135735263665718082462560751716942282095747372505890731417467990330753732051361263825356617757866232912164005339874978120016019346633162809197090746952977695702453839439747567954866882203538928400075910702980523435332980362117421254581531584246533159818248519640535115574681996478981110476004083680346646410339162421998143595632741983350618125114597177286283425565504597093942504964054622525662503974228791623538192766661737812781650211067477637313437790017647706667314509765715225403470372384846551472811370627490468211820317385303819208482195022643066848768908870284423531741932850845525835899827343652157882270479602656690156178977029852957898163689735081088946842597599514154692496377444995104753340260694140221480956525918872812025986922265443865163542913755443506524921706391162504350020774147932108365041773229219085856824796886229535047906066918145722506497882623598996765169630371965081794310911782771036745628132509189180914978461254855079463654856637289193175662990761386636246546817562058379396232109543579873376746572163636570561398987886533459110783311403232558246569828090843976449037932474592634059659017759695701052128207323166349425372104063729029187202945898667316078393775095601560740561846034600174548138472379365711384515933577511194845137485488943983146422154072408747576752743725803651076892967081660342278539873273859336488973486139101403732497994357659696206182607411811183740291025529246119381853488475416683602824460468180241839964445847406426029113981505590420388136230782657298928042984902908332966925326089548557084620449263136786684068519971840679276736585609575841602242394887921558787600031776687070999430547014625217870016758337065657888660967623763206392964918569978709170914189100507746681254178382992504052737728683077519852929392375952982885509460878247543262492095231598057011594481833915009253834974326578517769362300899592348423597499313097855967616520367432728622562930383465443546265409172989191884895073974419025666474457275601058180925031937252043770769213700248889747522882523490714052169598495425827593060781299256126216761746907879247531225781185908810682569475801384342250137306563469737586394406937251009833314764673687077479965130171248874812516828025197764625463431156203442128617930441228260276540991525995736440712542003434155662971514398156660857173362123032862270725615070397109316264345017829100973043254299106962748198308091047523268062952330555540471429967639580649821306284268911458335327716179518118965141488799580413200744633038555292451763836917659510751965477679545525066981105742276057613568038442000547077160183087090071533134709567302662033950155893459386684778810906962979302953417717419098279388623818601762946967517925574058933409710622272952316646720121886742080661925271610537536081967684437208443089030065287977286895820184266976476778224224663765662870608579321412511624464471607507785447273950010584551036129244833200881833990544719173671809431930505006743614714441650271208420554114208026801953607851673767299544788612147912576536321536125886145576095688082339978774106502510273496726094460860325897208671991068077254507231061142513657270288845157837775711619979602542596148351440821869321009131993270154631782390095069408517280517088341602973921253563062083273170153554327154388258428570366390171838526303302718620406583154213265008697172397916950622481371946393497882576493102516054434309281429499586944181258174113233559363555086766089950352695362077616844926544993010439331964335370917353504277840364069623867046764534123126665208885404026337085030251067498837011118173947803538074452565792303305226582688380869228112582150599338208265504327394835442950005828653657128379780587702450632819005759450183941489303710183650820038058286195881778169397987723442603152568931464275348000823981659345772069795002194501524757753833511540432797551529636454533486736346076736132128436305423190721626163323431468642616017508775136209350587115748993291647359527462597912494526281871425617099839358644929430034651783409152264763848066885329363843961383443753216891686957244205800951565892235495864305187772111558468480929396908987575409660674704271496144605995014848864259612234177047735339157535751665605937402276507171273751833987391809551619360299723997968462318259961660207323690098641684690963238138519556112641940039627753394864535557160820894699509876148693473915355113755349053755051493421862064793259969909955516539006538737112297774407998358923707109607287092918902864571239138552263839317263497961293852352360843731675127704547154972645854494590998866875054848982555140357062567862418624452907832664136964087913718436565222312917981462368684875486908030444097163321113706573548494886688138270024204746290229277594455044007813305967884889811732834475485760722908208477027171392277878084914190702146572086800284666465977313748387570076023832685931847222721313428146169003991109284226258497958891714924093757431483010359038672138511043603558400613600475773148953015813659932494934600638776594451629410082754236475845299109795107509353146055775515942027462394080706969808413273714186753054404240076254791852914944061692902083653120940519129626060195521409903969038521084643804106204332956372912112006735029640442237978432918740392524816440049591734227102052002494430295145981319099189850066407973332546077895975996798730772578353209241624716532143880780412966573848290776228598112005588977851572427439344105303254702853619554370791965144356974530739350124115600920002716522404754740302525602229069521013173891514780748542392671747870001265877411213250967422896610969073085378987450305863461527182450244005794061993027144976122172530234887040769043697805230355361644491927372118618146688161397806577090644168326357744920201481510145829803371869607849541853837290173645688179640857646066577215307849447576013520741144495678979145247310669874129794028240640958618208474729135213142186891806123656386372074077900692364180074637804762286867684250258201822792093274572454335370840312129257591445787999987856530172827869436973823128807765860763607506041503202201131166077638791753461190839801736787353527784914820738178615166943990149326741757368570867034819989764136254959508563951135102211506325886100629470916848262955744661591411190686597813773724200708839873270182105650973705133591710197632599239144252119654098031135482697200704193187051110406899953731956995965752349283706337658090639617803798594212095724227862403396062216117049697170978628031632632876222055428406614633461652507979326115301462478791534441042261128588909571746200425546343595783557880806669592403483463241072769263989972262890946924037838539465131861392163516324006319318990259230846691528277478651667480200935748272854636987814101076041522104499702426585667978436366002506459664689474531819679895212648086524999060673284763983993786955825876760397079366515000677480602139140230514775845335592795134355485955596877921502304883592925845137985970662288777623097024743470033131943418291966697807087306974215766599171958194902953378482319264718655537416099684350151106628338728408501035583354088884355884573017565520830613204467907180796748348658635677349339831025557483429060284881270061565194005920632624006545830328282150141705880082387058726900322799787104260867463865134789875041826591154368359638988198763598178070979819038213853801582071634313788256564971849581929267546351955342371473453487700160516190080576415556748107018718193298104342168616009011075777341109900914433590725822003056758461289057205719787611754849584322155634400575077996409805184826406667490645520436092330516998067981769115846311172523169695180965642367286524818111987828839060128960523923285300196536001223240507760638363068120103033650486873067888176392859025620045138961711927845000849336327701644456416483572141244266267496271966757448929888861264334436460156348067097393708695481528729302902527804795414711769772985819491570808809675934437143855724420052420399639825254233909499716136229002466168136293976780682645377847807414283096759607618822472060549410830301558159626179954650374198125959397055667973629970041297617719308886548249837363517418769512637359348930289519758972009944198542960099258588170589613975522198374936782843767296195986988930735807064757132362559876724368081358467043720544944323928480339845399199801396297692321554604954173669698101018710607339203701657228117613496389139347883556819059699280314525952229463407324911428783339134369452389764956892915628843195298025960641406013060046583372738187366647209812643155031011656829335024620289631402425168299897000568943452957891011316978553237298289478273481939297765584872623769385497479807609367203825462305817004714502777347713835511983090807147391596616401677012449920826152428294470629635297255285825398772145460657205772621100827998745494966897622210943825283879678555889376981229132079558794230388929416221312474457132624561057103844818350894728883888821851776852642206027586203411141221374428575867397751188905810436933854363260308855922816064240927739671299154338025606271694653875012071395354901009628988712868649171579681611639342778550797687544014497301741450470273022574588580565849036870856415107278758128191185557140521037712415039364456144215935368681753772080277572877620872543670935785208523026727398574079076843085242740156866365875157748457570922804543054669972134193141528558215030316720360095703299402960499400027241659640005290889067351196604407631293759127071890816733972891084176591630693780330214794372317569693680094310572383531048800152630277524102603501317988299774409629530362536807835683673471047713409595061783040478922707371810130831935600747250438293364154998673943362596174434858779039814144757777155611681293500534392277187024834524597131639557104296078208477234964155107503130826936963421762941628652371071603476654680137888880324599211158246648053289250118402788840796999717028252629657231422062121026980956959258173397408188127277863642382235241326975304889840596897500252597577092286554445517397327805714992210100828406346678397915226186730195305972457511381041322513858600073584973666694174435904255103706036847597323654325101857839707664196945668818629617555356207610761427915479951297202148408810957743490958326746952994939809244406160865461114336498938756238907922619425901023330049892508614926506481012071215637568029671546358715304420534013734937140527635037116783368849468659822295931789085966369412920715451928182412804031298960997039252072160891594294875973449290256301929255071447097962768449489002432679372619999524222877856143958095994532894413752442816269254630993404559615878826666354713514175779240781332833694465675151957986350109634398391738133289973476683643235161945468259135487395862543748014804881186949298343490462507319874410738313977499363020382949437325718123676968375514586327736343740434795926052059149638094270989532192713017626031291931583693862237727312785948148592646306339852114932159909007566156750783486014679053513983229948117472754071928567847003224385820610901471929100182806265781902076039406475392683995098223622413091218384490743311407463255207793351260357036695420803592586462119194907386303608150561131632742175865251701735731428710725282942558161057330868034942983531245901594259116523209953644927955759193655698259204846965834215461594185912628124814453924103283865745107984997402691841584978316113428464293442117635520678195644932829874747524743030604499188106242777147963126381621613698885520537284583660262148822239382345875529369372361432252287102190458086292093256967890644285822066017451324973708919066638017522721480942773947639461783916591149963835729209918375769844857408630720357878186665216365395847015197857123501907604857859164615974911064362039183975534246462066664403119644704739869120198608929044286346501584509235527796898596838556538270736722813232751623904339856229168932066956781718391845930717506623975112130692818280553677969279133087425503817655822499829120712600779472687016815428488107730230736451872725575494898356597721073246977733710533443128099238145554048118263963688995310329277622365267039016321792844073989842263435313732670996106047499190301707307866624938205544221344227759924587432233608991434247954827102027721418738519541434738927353503072355160468614847169731929381985490298879034160494997583327988867124691513152379772143241602954567388377774190306455583465128430695418331546065291410129640026788651538689452458420479421194793478845137131673079523247298220842341963566257323189327253046247803188578987877905679471285826014761508421237504912412301936647748420915445953892624198897548576585032481545874428067594926336609419679040959822779948853645197938488141980520025214741832252884957582138390616294986630791063910569100010160269041022945803895153454766351857682930770904227209905707190600382711382166920499713857190826716714660070500736634743385370773754044711647599364695232197523990558741365187145999270336067611769337554113454381859678238681496385565019933304554968492534902721309516703982251915459873571609476964823005987166791849324006334706618053429537982474272632858623004990531365899869463197240090345455851583434590826350151216626916408358931883544643795324952057811635401794041640984642418824242782623765699111819245453350079561739949103010024672128815144139087676967043693033091940162862135059290468613803076048728620873741809684411408222866871138324929003055937281827329008551600628273200882174774527195220110206034832819916401548367714089108232339333326975051077171960533932592543367399307782873264451629813441202691803407522263941877856456142353287454734025423140120552829177319716852918926125483925644784861522488056950824572916515743000393433144569110205512557509350712320433618791698487424609405616139053339767917594282211486853854208703191416080706174929724836197502712862686840849995293075823753565677815753610454221535472215231179364337109175342814448066175275671129483225100230689266420566138792783565725389607101530387550275394982589154279611980824510317206108970275174156437006828369365643572163405833602276452769020302682096083827513961815801356543915324487062823654027220974434104323154672694975717549537612920323127018723167160671919798063128070371028096746437767216512979899895030349773929485681040178248299764760883355990759217175339188987993120487744831211917254289173813741074903413388205139354354711159608958415925058146682370251061244899158524442917818612135228319584937425580799346963849483121399297610423490644664498307927425344706486282032990919902413753809253618322572151505083923182486805028362278760737585330559698274241401000908294603664079090197331473044153127443756606161638354395282150844470287257961480984699698777715100376132103762172770894294309979661260558366779164920962879879771457971566243286566650981756663346234115100385573466955017583561919549086490355859632362234286430768435831278047578772689293115867767639873027162931668695039650481266066403497331744888260527736528387079226930978118879922959961050228083210466326931487163700153610777277780412468361811538603190924317170754784671902318308970362967515406989578284444587803351133302169884860697848995586592770635168447081844742811582444019561455260857842977112108928520817183279871287632345944929680252027416143843333952521991513516907180371059341637991825222280479729086308249875187659249961038030899558472654605006470047701028377316594355092171159842502456810228650428519715335660007166485449861366989337264379356065202617616393713855480086579546989330869025856814664352232819993463006090729631354562295935775219631012846555654336407884575771385950396093219253288422390946334565500575477541516729620266365237871266864785068932285249049558725595947968427885250867694315959254162863414608644971131080912274049943970929941371193937399284302459902312087027167005053694317780116704488719971423778532489343947705184558335678616077474070366595499325694757914771072075905643621274960749301127401037210781900406075123145187078775558915270070792543897119030723438386827258334190212839800723229461886891487356538693795839976871717438738002607819874880468827384759741376284902981614970088944631702139128628661898894998424989574889956173609957022360243047792495030417795312074842788975178263040854162474518567496745118647935432978813182314365011778201273766589689591961929866287660131700139481479984984435391496614429568623547159706856575945259446286196775551108630026631206996406890484166652982436719068999127714422609288820635467366823292471125452886116348856290479405143480663366405789651680447137937746241070278442431111281075408919787152157588130315428837857971081823995588137231495223527463334946347222240479096222134189462095856682396364490823214584579248139179910509793439789178748628414781654587809716301780762387405896818360697737059804040957102821263874655024547771824355080936614553365107971565453327329104287828308512213688568233879148659672995106383317830383864423380366761456244952668719354276461462291958553036714713608714593261500467598554141021500429655961024666575377754356837047075431426891945123360536235812643163388183914581781546896491524528906815036244466730921047245806486025460670514929624550327902654668734086636999086180457498297045385902732801310146235519904365032926006971655163334984301255243416130606470226398698941900305012294132245089207349045805989858814663232894255833624511960659663285169013419894067253586176784547269347867758649520067376238191041675985587245625954114480751856204343196223755099533551681179858081725048563824383276566193642917866034552418200918033293721572301073879594276070220746300790839702191712255903901690967022433713450218539775102538237932724696408672273819154414928270171308073726021969226344976402747266368774575117049853192948051954091190292340652599094250641854794451044078263918599426291321241644366831964141847007173398717058714297172752762608870091781811766225241821550892405000590282372887690464078719909824045450601155114894669772405738502290858994653588643617219702737431935284384008560851011315955083389625280457135180827863437219550921060951941405194842277998512863535605208778849409908063342315569427690492270426429700324254045805996510377380133847407337652750216129011456610619005067829220619138050885313291708217796756674521294235822774120376597158351566089264690233956629474099381720219574274205821960452029922890103821472654420646521068586385566339374433617674418669394192037718507365428402666565587397533480911393957914772826792382863167456626708963928142881062689395317259733798157646933119574108736976398898327813381360027748858359261812543975410204044184852484115030467418255634233241536617364854684212574073536867121487099028040743987884159115743538412049567382617247106409418018209700735438618784112996904102073576023513679496990097682443341289008031046041055329146159713076410836916010891885310488724813237090335417156560096061057079367061240009517031971022631915257526934928323547045124127138020249529427019224292470520276879806663962973175308617627019733189013040913666521767907517048431114690996441152456909266586406288365587194342095662058792314972343337107733049197685721902096246898604692648333302318845001981618307372677925425926239278703378241712535623107065722503115594791918357302999698535382830057812039697677558365392966007920127206276913738229567343981571301234919358765979228536159048479472585096559297581117582488673608923618177252968901275206130451362556568583322098053035063710340014057730690915047663904448504659524334629085999028981207276296148603544748638560389032256283179942481142581785930783587444324922186247709769291627706181311202858482514091727787940032839665826780194614556022837649502932885852138121917458461801105236856680641698830864707623204759201956564411761118673866310751998520253973457727360248298482767734264428152819031376855530444500262571422702361170745224222606404295030909794282853866407067045607047863481695614776786622780110164859139252730564966160411179707689783078325533420862798095807530624458416130759489075064884249127109030209879314292802299361670108621967836710507692866396392411046383494265359035626052096151467982985080662106542410170281380637647154517782064723897190531171912123719935785609728846554508628933903612870513752483622100694638757771500492536524815869784643618361461732600620751807063206380928377356312925080411941677848056360532668436190174272742293783198901132991455313887576110435564276131256207320095606116098605826427035504527433064943148242060738483441414682141487734923282071480593331777285283809280174692805231377060271805150721388027573987079777286160798772002316907926758439093434822799933316415824671781601849783922237121875587845410131883822033311189520499531038087846339708733038356110605476010796393664159477544677249929717601143801015858498813141647734756479763735305053793395005106231875484868801338307581124341952200424705870275132111682017063600418567017147900611283958889419684868987888419205272581796626074772005618104770377510621708900089597716320661078869168802945047457003117851794700923408219397195283320760355122978362070331560821765488827665830539254061789786369624196149656928307821702570850550481381881562742113719197946570843520341028495836161383634228057441931311807525557547129170407493775044956199571325642492883295795709090666858754873909873573847203532371786294547627336051242350360414498507293658546663205550424129067566420621164811878135777967700325127397415201967217504093883662488914101997486226356909955115925039875105191219782136660878542160540337886214022743322848699420749615866952404415046490738766654329581004170126315144958576437309920600299676421393404532137872752914444458602324368490298115594923532866670898974821823306231526346209617938804267103138847902807448864369675453837455677936105547365957476198755583718340129470926978282351549322805131046588435718261627854867992528871683542966697190983054607501670431985495129926549617061177642078854341819887128431167560671140432960637083218844659401558099688642250730777683574219004939540911428633501341454158469286735843373549528950718783995960250535532453498892755345577637977594781869857361936765010718423823254678430748426151573724033747891182729151212919981984864614618566908386923323125562112645357697867647710215032626461019126221298459413886679899496503514942263823465289684068062640059471091852469791692515378127851945621949765512739158136337366290829125205404802470588217101804105356752262479218415952606244583337445344159393642632540831447328646102731775959306043352583106925325127791080254233284588004740610438590664124111972459812290784761902727127022008652558411306078757232529413152543148960454153831304068037197832405905623157130280517164064836169375117177438088728726653131655274962862312676439905181627506679074327345916491526823398835145430895851665073706106623728128165002848775714083003936255749078653000631850945590693150996453510253560739424406345564773039173611806453565822326812434304589547717792113312203116077224146512346488284834477230151131005586083195971534986190739247372874025553901487773892512256479206575947054408748798975223127268984177585876276403103681253830606714164329639218764259701725188526206497412260130869084747973875203854371327330665936322926485379919774726117872417978325582379386225375145068088591095141286654852294556929302058596609834318257700084002481395089386408269897027234201792274411019701731190839640670531543855931812001579433396086124240761829734558204233790509258848268263264764243912003346951066432801029737925711814748876981530104429019465031480070916716072826769678702685514633792304573998085200095863767827569542604841790848095208346282911586800226878727817962692838379903882468764652427505097151811813575094882362679312933159792964991660073838865120817950734496021374092550679104435954439096902994987212496825431740801417851379503518324433258071244649293937868448792590332680130829753197405660160045185603296549043580582215489197806284779988378786911921539249729228619865131171503374016869028947192264293024641891729184638505269036391153818105674054193113401274270155533074078527478868558781080563504217238868851129244090342378616632193523956472059343586798855885461299538211197112232681038195067532259486832155313013603807265780220297172294249354578941832579421497383371311014061183157497181799033360522094837568961947029640520531287337763594484168230345530244635742936267845963943347193269865327842018260436836405410885450589146469681849447849456293175375095313196774474521689215806609864816801114376861166493347498081544553532546335940599563776948551984854406398075698847977731717440033191721822567652352646444499449265975761738755728003535300403605861778078445952512827395154477401206635969196486113596538937193070150985178585373789690867414876959727815354081743895280313934492054571745713035666441864072310079005509931033089075610127335173068296728834694456733878916249563934149663382172527184861149383425957965462472043124113563350423949391368942902598782465063340976014812152639153016454013608287519791697215416193706358050013423565261714137524902724398951632224856720798572348397189682779963651282831070755555306078698192767406681375129019167264661415788455609036982857951011289141136703344562765677226369094377862074140400174085588766399629900853337852292139785871325188580795113277797271946890400879280355468759287974776107480027728048111176823564709774412968364522280708878496215010282400684572585837950346686342780054392190950827949522938577408246633035853420431334975078168519096444701451247799325076403139307973026744235220710395148352747898675028594571471245454769577875820829866623074527250684833666871739462311586413554106197298024921101654875085545466506971999156016615839258098140491299953853030163770416105673036821192712476595607990870071512613113762208738003550378573957779658823907236947051692514929113048203795800207808694147644962343387657163407776510946973807383036427840037207311768031567967073511327568577199429444701720543886780499284982925378545573014856309489220972037212874556215499175198933139307280889651640264933098717489244232966265653338218969634921566727858705710364786956059554428558321202866634003173823853270735478975653343700307195277471567878316418883608562133021480985748616764216152350976555055922748794995219181103805162572515078895106803497903452674180487760534950153836375980802253355349833304826130782715020895152589140718336315474739470470106699535964286995055313007783924340598007741787736223344718007782832313125240278125427885800197863700172389655146285786692463870248587544733176246717386108910947100475396008833211102503960154339023609446903349837380956656649901747809016238813822827310758305814787150622871556727774069977182923716789136548610632679578403844967344603455828691079915321877899767133742461520762761499532948765850452119178262866306128018296305306489587266437517680064707542211212171215929407417143861754082064486835802869922229018300378656269120487943054180918192752056378804295596285653587515051046261851414149153517786448535949101301804276064446448171252473791010171418309154729104718977860469831230533467374260588064453796600310368819659687228097213877102918519676263973092594769829627035167631129064798202981684356170095194147590102579103048051153057627487806846121630406294747413915450057276721540931942958565028995818464086594292557917289374467720097435758579648838809501303550784795859362478352823928167891842210943093124655362817302513871718920878135628145522666931288696215297349013543330764582068753229354633869633228925818348914516641068947259579789591980208623045838300444729278080657097063321639974519769773371244247239311519009744989899837967295309890532397648470304248455975631783851121779969085100977119146112060687439845354423695674964488620142454889246442100785488467987364207308198981327912186049679379924782142329655403368636853391312830217719402865947765401541823675247898499892588310717863559562235023128887992519091170405929865054285216388963105525120848798762156324555307175525581600744871844289853468752642618557646589731860979303278952647411527361003054095461118020417733079833881310194494186680529153929971287016646175924279938109329981738468200891351539017320355122891493280537195333816893286405832888309064505933737155391376383131645325731475302686658982755740871542969412188368516604628299197849474356610225218688450988065484949643094661178161453516326402524743676696135174220373001304038925586413745929003933702648760201232435175580537660399148298063818604241773434642996466633912245414513694662597504633592803494304979852702584395777448174690306259013584415662406977550753556288936327825066630187970143316015535070288179926639008262354414446822021653598475016291323748369968667062162586102815726268593165505899713168176779359961119077874513930083426532661759926793868259591356471302543905517092245225177121960982740840870391152952646856616441693960295555483695207214981802670992297473336755432786002723140796968816642120362975905397806333807881163484450450827324458928237434242939887861347377113818487569763450804377142284899429864359975301914768285548899702764164792600027130387300066743115078300608596162157352024921731353256848595330535040264334503492330565142187611060061213809950344936895310455118855412792367466029271458466142609151009838896286432322555486718632245342374654736732016682338069439392327815940915635438446589913819080637371025297214100908623975601234807513179283213962250867660759017806808922893526466070131720074713806439877061273326885765960902451575394937420846148685972688328378595139757373568958906827305455868466626834140161692924968453403885290021588459046809410670503027841967520123338273744553038418976597842755253497984835704514371996962583856634209620155123226212013091152864995286946539924851990365252683512044465119637129984918202216684580048573389198310383148681002345169582541843375236013117626400324150397938231999867301729865140885863575791410989878740243036600366578788814977392948753033182198011217711482226116704140449425329088665131930295011464088916866366516093593431226674806553535935155375135514432008689131191913555325320542698461205146658007006830753470640883871322295298535136482840435031629417938605051996452578312665878570382790759325223626403780067153467779693800962161533182322895578686177401645626797131394548847649972787100406233569475177924291206841838932400293760473974597516823971414356218151662017952858672526035106807273758713259498815170468354095593711618028926906120524986017226241190853184780507501460769947995007387397557354016395427074285201116845892243982911308121098284169585996004837329967335427733993329698791152389443758681323535245998710421822718772817662571676122791433092073620281144669471528569643552982149010839762030891563361071166595101099458403124737160878525155967456316072931726648355947126150319752549259125789071096235085383939504243484062350010662058134403963559511905864978549273864935692038259240969693290093009615298895488629623358412635456679712984094637010936009665196698932342134171575158424869755335564146795384370804068840139336601951644604461851198870265335422921845024886578700139945289841621823159910081489934281964224166660489880503237046184417574133674552750038484938422480627561687134918729067080195989564275526541195044651274587419299067472951895861742122320602883333881907167051858017969530449672600846540904333520427461742871657102889647681802855939747211378408743911777367117104536500869487826680288913605128009507975772157315363539740823878116771869074144138441883686949466669583063650529251415325003145061815021014040507814116753639801197902886212624399511900198420566189775065971601613681206368892267155779867242602284222737046975190811587561239797306895050702221020144438222255550325809297233978104255213700889019178036914820110710193276868931776707951035973859992648260400130866297629888908597752641377534971278017255432221797339156757417256634019144623797292339434447299272205122473413306911333230995073973794001171582674483394921027388249049849692554764480929787189879616542744776262644984667496595390345251530307886437683760179401467474535245484787370101231260695498403494289988651939353616754729348264928004360258304236899006565226702018467432931311972946721659394025212940185576586837091422155198108658217201677325558033567805445567716787977956927860383870980214287747184493492499241985617393436427458685533129678405460421085754095549298850017435169881558710214524672808475300101550489856786964374493909516616224248209927675626284115842887987340045006172167085836041371570718625727231484919253029841784321974280967056129419179673155111959672998215143809206583234950413238346308322315436336986039764782334624951503116888909530554274810227680835886478171442309156099050407509134752823946043553035160760537797203830119597140179254939762619791067224047778064300681413434442184638666850786643506887362693080405469206489813032523837704884067422810495318337649802610589629006289000694989115978659057527914309558437567789057664084719865185188601999687517304093812534936679087584229875981041856066681560872985882880332594094333507245878784193495957938736761818842809768059597778130086703455686887576569540470604702763589783740531190128196620775703846018000357955286732434108412474921293494049381825958351646547980896797465415451181135146764229670942476578905634077992182458216493727191823557935463672772439063951241786549557548908546120691121547125082578115771222980884339131714230985385678716912317247494239153811005926890773922858250576287447486291275948266902096844404600821642520994213965955492266023737464256441395509436091189752429821296362052412845214232380465903391111590705322673424746218993890115790552895666938874208633015492870420612287029671213597417208733883577338043723241976334401434547729539695705700573881186216527290989012279635894140230831518882164783492765900780196822018132613285522554020254388966015158883826770158236270893004184768979241701414518636040017325429302417890224306915058184737166476784980239123584812262851105915087894878924723925901302477288900051345757731237675518869921215421806619639695208786081008336336324856027634103080324976488707898940089432286531644515235071701168599912880181131357153122765323868207327038228346409051463934879640223011359017157887581402934282072665733717437809775946306651922001185183552778940197058059217578274048443199212328730087044388704179342268636525653971364239125236094625989472080054711828258664038054748988415254832476281613527963512057700694585208257787851857610341451045008096810211231352058869063443836085162385371871120833982260062520994840817108368416549620513789409523574875659687599464698987783960328390227891506607436506143477432231590092227289358862299708269181423016797290480180431942892786282906214423956556890823306066542018225928835776236347960078004924952071662577873360709807068700509984733318664410634207177117545711002366304880127017796583323797730087322198748249799094937664120328497485186980745579853477084835756767877663464494106527000885453455774754984592618718570440185995929097485724172268751945219878269422972735665547035723671091599363493698537442695696593798516795710130278919626938008911706705414247154758575468704052982948865104084525094917310600673832729334812711703217957726013892391897762353640319989611330512052318210135662646854755474760941651039131138475331564017113551942390934812846751103013414517393974369685069618639093429744947723296448580133959930923470344035297930875546116420491345791429531837312166181279644712652074324225472418359116460399006241691238760038702566769481209787853717803888375255539827264440688160140068035431130622579919743745254344916067167551804680218450173687094773443870229465030864132734138486042591177372023810598397777053063695615097954173874022421656428767701403174534790928617881927823063308038109575569559798810138643202019781405022733198940682491498834402516874776279286015428241664854438953431837991533428882146861844409559767635893081326560297752737137385910593138762493938655954878622518624346067907824255447027888253902358504076792526381270621343277643109762936778694396209433358076404556043729647024624455171824989439109542207812441481520215478212126011981672463467891545224721794248103374336397716446940811445112702889843952066115373609455930796354301752107261587246989604169559438534461245905318732599934907242209435099627238694841151631257540448192095407546248890729507683856595866275005975693768952251882572129018844464129655261866484724808551192799937346825268289363696226116482140893534658668695107534201351929150753569030351700113539301802855095141427616356180850226171842674203439736779507096816708009978889226285636801921067763022969261874772646901979504605508083858065589380258863280765514583921768963104703315023808770761823521337772920587106233605640603739573592228359013891458264759180468519832319246322745445229097265764135679412215876804757649766424627177987950840554170949345342588543581880518636638555469038529527080827990029243541708544869553697612551729475074778648607236313691525215617822295053237698763097123534639548688055189800693347089074483856662738232144495555442840075451994704243232904993114583077553859521052982201656380588991855077160248294676613680242587305055123557196569727422352320612277866471406446948103796911472419339847535802196327596112474927807733940154210067331209415964861499641959740978232670210102218207931299984686436378224550391907310492066219714495258602136408440007796524850621566973395381166739303223223401761075655966039526357203853720056560199541337873930084617716335882855672448204505975634504291079411832791975678869586535562208810711000084888950593622880498482552298029403747963403836481515855847862910461223957796501600262618690272261442071219110563731368343395067575624502388846791996652180231592859535999048903446881740053434795601129103850481997073160235910518481079674820092622217329225088428205476008739198646033636905486855326622343442491080930156383753013938030724055035817445674585249078811056008431441404793004475381436457002462083452800946311397402402443809662938599768101756489079497573184659255649528356552934162457100491695477724120473798005403726504225347575392786291150628221201821050246888754965121007227108024250459647006678950101818318826501553075835696303664381522687000132865773490826445131434155402192749101211360810894571167784787494188382860702376248170502162294491081077975742552928928254214332106664920588353664589361608676215377413620934053243562549386069943365298635572887733892635313816352352836880400483492896414041287132884752708982444050339779941262737269014650895814788602677105636598789897678049155062130805418293550073254252757049203697270153802857620400082644177686901586607916228775560597604932305510329041382513739214273504508589669128567570045221706665518716373742313279193293004556399856921072476437866158944796122943421524184190084412493147672809828830514208758228266886948483254713926941504932136052817752860866025496427436070598579377159532975592956297205992248788037840507972322033603243887468137943952443511411774850117703205992701831546728776498801990460682470312939372200666392094552669376884344473651457996131191916051619130285235955519431215946125913149954050429417888262494395862784960420477562772488740563250222265307632107528283882399873402516798904247616912217407577901617715922018404807383202961559694470516893847873967605021763043588495701881866965277110574821446427672284243776325540187558664540494382590863781060687306425640503310685329726194863730244351696704004834267194340310254092996136728878524235241516661657413534811076988432860421625796149602570989146331683052087258534212870144667001762059233305788355119727172864504472497576640381350153451226941166390401188925417390811335252688238375367584515205779563519043271464130481514734073367308636766655934524805162068450344223090981588887184299142342360490298929361956041480239959299053112838837221933840790381995358456652424805126114928370971492050403370661147175623206873288666946733840795350570474000004702416199171599470631066910412328591002426052038834495618739646658733095071152955827219364602811991255208899282329258376854448678809449019629514825899850823972348227932149223399711376732077294174784166797479279280926674650072739029093055394049955458984467761609508262253483707066579934967936327540131815541320568767099294618037460434197005945370265959398965133120638502207409991443070199604509987190908633773832257762566087503400177229957366404459625180800153938911607097369197939672790195411910737695851982205992086760677786949264811935617896230300892240022223042218368398324119159205659740008377625220336999517134040312207026054814406266152648475405730426024068242412610880205101634728939919269248100162616474311274057218298326120189927087026342721014898358509741041310467888890419815596174746692568108591306171116482147016732356878204520789363670214072089909624894987461155228365058472457338705471265740658159174754601385863531101644281444788388834262741129670359067112906234817302926512276242499334164351910580215142871715074475196731381810042493733762350185916047162566293588389315570736078913249098556019608145393989089322899369563288269561683352864309399096985469597464830504886688304218439477085167825034922894422489201368533749783371895548036869426386340143495693630933415968062389381408000207265347484854152471715425685776174136177492009441297491813060276661443750373600062291192207908881968786137246071348608944728350409193120387796926462057768938798289460465640529638434545089863446721154156843159345672920601501641884581859855298326919734565743652992399119199232921688670907959018718530739293631646957409156230268925768394810091935030979221207561087768398895683046796992852478083059466978760577146749420044854959936741303625086764993802006721532791307208422049600276539050291113787165641212001273197295993868315617672736999335642440994638046274294694387542000825482427986274643723138346767742082564828794187118271988689181317361608810072303378533025517345296065354430451043788329236110508885263819107967394981318022937323113600729363323350751287166183353063617888722198546432018607549413696877546568853387010170437957123892771841360919911178212227341883455225961158808169262214776578757224053129508407276413048891412576132837366531535934930187802722770164649431208009322944044139703024283596021681732100700833657067301526371882087908484673093837790185518164562618658756246006227618188441363695685961504895065818096855269523256427547724778532001578471030649833231519606224543221031633017155869550704454083597526827698815706231512578723404370809036696877637826339210316833686972447322830371452314636720296839944283020479358218940968205420942239976568740910794281810392690653424767498591380079587541488832731912363770797757366312735778088992728899956673023283482412015313709752382868725230908162352677891774904153702668242212189066089341645500686977401434328650291889367923142317855114863919370209205771823396045231166470055822171588761191250744163706940564698304456463742356784357268413042992162449837511549474884103949586262416522292323925589476271023931145255560046192102021441925841237585200493157907010654292003354653894198201597962365355803555139034512043977433573420756586238653627966792663721119594445715054733512382345672354458455953546945061911239341646430327437032515691227536318307701306831858055706677467885286632661741482868796632795850506800919497049674552638904041562435687809932411417505604703156003697074409643851899369858480338141050184742552312589463331994373675629178067729858844316755411602712289184476121324803644127671017405400541431539264616668981686302961377728549945830266569398655760755783176449734925733196953314080404044087132858063543362524451455611804202799173711784632154682889285577414039301361753294769880214799490769815966302833254014082355530635402711934103460353111757898668474724713461181138063664689712204405982956171232003856947095016025706719700914810450456518730437731906562954235148222223673437679901420478882409882055510377181672362479215360327890683543396239660899920175819522121682265839327884793848512643071383900416608301245450214770810672525636635224367106160197295648415729130532941495348545190766410486277741956430278363396594049704284264637620127293238465061195534505821348162806927900975110835801510447819822254819037656178396217140183531555153682832425884047987122987881106425764877688342665829079832009958133320182306820083813141061303763239827568652952827132382409979874122759231014942095301992264600864263791735290578682654816014081064438516291405563337262762107385773113800105496424128527989896880532599209131991595820280482535734926545867277369158640577326681656843506722008326913600157581782326968305898735398769032931277163717600779161410157739352078210917814596881448967421838210763565623025864052865313661723672763987772448634023793921859208501287997288551122742604325798154216478928284005833058847291211461102763983992501669935425763456681067677859228904685229595363706970573599109850245952976465677289614553632749424672938995143399033482724017497899301166935896942023075113420360275405259426524677360824115415821251573830115298528452374093427216268084826579899431328667514593833069068714207449627274863712093040689091131005205726535277118081884304974420991332647917351345176331185316754564796062908097488332837023763297464142996751207763289437998276016682711462175902632416705915565730943096108587889969085638577429728241198938789397746164145578957275285130206225047217590780076325605084649880325348077964146094428482799646890954555487313923795606428209672316426714313750957785086268974787735855630856988011109344054772099620319829233128974751591999748921602786234320161253571102122509741987573192945870725222396276024037874005099635525702661925990210849964600851645184501100946716645194857185731681340072740394589539939827656382848288898752743058407911612941366764052746716486055059191323557770866220045476470183482326483749630335910580708498595462883364791157566260945512746776761680634251142662224518205313644210329114806300808865427948114697314533320431962635982055947195610281072008398035324653685612835410197948022711085958230103199421271252777215941054773396866653448984416794867068723353747764600985531615157771195015700953048811158068263906883059372782845306021677394650625699270820697232742455438713731923888868115023315993717779281426094431288078000953692135015767376079495755915217167324938560476699382505689052795733278140966238448355196197714077770508977310011300760391549170550768311093369634859833896235708149758480438001239953183631625483935871932134376131324688449683159121642858402059196557574526703450377573723174035939344721378696470620115200834878530374104889151762073412099396973701162779844160237431481358283160565284074648976675135191743608663250746165714534956511311255645077850011886783436687730405713493856699545527194355186582923632874885384360133645178618909643837935243492754188630357036577556581640632616324499507639763987700697627234420507641918154198969879202276671748749417729491150196005844377113415377619691310597508228362821079364786481440217525632848245007862888553938409129109725286177123328022113639974049528539458478935561789709861698320307162453274037945654535598627860412381583679625947799097632528496080365910087137503852238943145642715652559768001597617498143852919341483456225563217414949269269093735311624778673188059939571106090540426590909196503025683881475892209944274045560955087753521446491564998821566525140726377842930844260368052592185637256006854983797893178908679487317337952630848602572690870207333738145434594235577205335335452648970779156731725645096486977692198510721316164014972169608188996049969461132949620590758105205812688999514923436578196011717031360696984785819582046297318023209030260077803920895791796099486557074822948256840403166814714302650229520045152119648512972644858972341491016869364522985115854262657970310071125924764996131053953214583656668707924090962473198420960430327741975979383598252300857587566016385669256002339280449391301182042366944161688110492268899690511348708789430070981383286929866478123621288972734056835108289374401394684856504787101961332590203326510830023278213821713093838327147324665228676658847795709720121501667512398685398556216446639239118814109925891727111938768018664931898357112934153798251481928405097377137856651711851546973461729549152068457151810380936271971302220311620466176206380545175642093208385741428967556927025430907641809486988496844496852452677717374042883847992925686616962864941936614001008982666148783334931132111029124363265305639421176543864315366599494884686385241645274784537713282755994918778611481488834550442499991951229374199387124967426276345385762667055047592283658759857095739957718052368275575204506798100657178889864141353646710429848783447849290682028372440495172214785541239205847268751587460853394349413084541212232054965388570684422320147209125405363071904645378997907174869990466917652131051499945522698778231087351063091299630337854064457076012475737878113475727957612111719468747200793922553173029147560178179996260298032920827382169490334376035997552714101231967187922125514401286503388973647066286210502633832093193591628346305379998902401769184774531149160874761799242030497263291187157794821079515122883574313276131153382333513189529922942364627349937559188150704943189521119526870065829898390785139231801114030992625666512366320110445939119858686079944515512557981993482877073821812516796276409129280924441203651554505174921541525790001305417917592269312732854235158342805495043649561330682138224553314306207058394702821797392272718336065781899690524207044655426196634410404882316587003566404707486507961419390379861945430435865872291838470765179005554442142387018720928463377820313045236534336014413338579050032162911779484005818384087712590189244965734960120761662132052048938118026001766622544824309646732501329783140065325422194850714679929919423237151171005614706765537261577479677771786106914450658326571428870821127315316202183511505301097827874277456501978149377040562052272618894330919012726111016386927408095270369391886864177719428770917415953883714942380375572533203995799212891408589217994325278480616895447516884862383108530208368857504180817622628696215276190996406091379124147255504386896297884803451009987230533699139599967846438537104074839339528505730163761841824648450535625152107058329230002843941707811095586217465368494288275289204057888968200090267815806274634539999567462056000924118086351090600138545885540411802983107189481595151259915595461848965911262665632706729088060899854909843636554431557245239244535178582846459037343066043938313857098129450381135289897635937323996052347008016033486913547170735490355651500879265028429104917694003402133853402043377189668294720070155389631949095499237937531898037543894746144540277511195425762739452435539162343735249339138653080729192064221140390351535244412166710720422372696114707370194818774268518700491204788041001719095296427732657945888676530364411278597118686867008248821673154414312931394192812916319860359938992835393200491819997247708103253984647758309942378478904732353348667831664346471173913861495368968052735717187028981329557307513830468223480893054499458927466786940966292007263576212239229258721221799617496799300261308182236386620683111317457619515821894300573312183536494239918172177288964099658469118614957974006085039685356734001029976093563025815554489636010400772488875116400695058836430809394358395538208916818913753324576131658119601427326696939316307880288772054345371995160384177317434178213663938826674143505341778639948659899283325241962190602142701131817672555981033142371437225374038284352975724319638336280313486439837896623481841364919680812381354234419810289608617617647158718306716570239151769601253713137759677969199318196574456210315109753171683760423435870471947447607513159326200977382025880586270052676613683945138190903521872886439699524073348038144512347300558446633652923894923860244686043761596841511582862750966225194565074302057311226914108384931772094660976095663957827739642740997199208491440062487247458227493225078489161939232857878914759942300896598639031696522992019267362312357233473161373406233624944978094153435067144903211354315130000437875969183810144608733135419838670297492051037534575104698505493426500314760822900279019546057639680583750221284066112824033681922679752653810476236362836146297307802344209721816176645005057094026940628482273993551940410323598754957792268496227298999556235073942249015933056153666514291114436324710407821272739952029176207348090746433501451961770205775339336919363679621867584249733730938268109331777885571880561759649359436373995623014889602802070280922542152718546244899217341224340679668178389781785537068517381378040338854008976103671070423173551005041712003138231410193731570204758081037383863284405243938665735561135897965406667760976239719147993681824605448267437638649903134160179357847929251541409473866358759047537124813530012703250118917205862337620904019663264655314793787555129210637085621612757797736137296250963472487002790328763498797242815506445151153398078906940946179804353749139843902285283540812718649869751592924479733125123706957647218563791727543246080298861459109877263740890209159484497251744904209921203866223487458984208959271747469753291151981451076070267516923393658672656406560454754121650582936955545678411192925748036442652855872553654428174616312356169011463778279738085304091641971623959812032776820417689678803974165050332157343345123818757514378553787293478606235560667265762846286155600759935058038576250052686945354680590214401364796029771477517659635660661212155906268987507371475082224641537754427612834522706175895164810874611796414751390133672982525116318588977127394318750547725525328600586462022480900007723133875615013797982949653596196624483646700270176177657957700571302781730684253950792899906203985749249967435886790587070028526790565490263122744802538643501450989432549846565944016645902643574172945726900324114753084618947292222802168745904836005268834841726871557635811903516629982169357460928628450466002946333337167243855542435556056080655717384172500952055506596342148936173350179839094517904945198501883280295646579544496161343381337594248594020066735170687828501900829284763123804747795784459501259220329670349143149567368277034441652355757143097869010495827541395122902360493548236890612540081964153957769988856361005274277538085962064714266636100407385152747936401321999167048201004809226176767446633249219777589630241136206720092996913827041065398310925699823484843760087921874937593764298972523191283053148331734779309628515725718228365949838323426389128551505461911143235613303652674995920698262382386254210693739765002685649158113520968873631181565494233545132460607753212920717323393553958985724897940783668793454634044367693360168192794799729846407830135846108992345139017853751508313128220224722885611321706685527495510937571945205006557108971198159828809665371365906755467800532099543672166634417739752753906039703148809271057490926645625986679915274108496344400562510738587792974454575804646443324669954958815227469761175653468912980641945994330778307838334704125272071910899403535990732849031588987527239547366662430751227926239832837684569118019174694340266675763268034827059827104541439619476600657106713714281975684954486780502138291392070875697769610767095488095285778533264235078533609028853765989523459609847717449203916438939905528775671995165207438492733030419301039006274063678324699500287151362962954429790436502673410483663556533639795109914226814511984149476623392769252840052862484277803098106814119257887184204969383381543700302585195100658409772891638500545681750509999223487088334575347714725491264514889148779895675300242847821006594068259118292052333208490985853011646860153886218104010969115096806636089435679455377457941894627373957006729015755705965195795722293509204267414238116502217938194095037745939262311304005389382114987679045360242125352293239990115315694898194034146628236047391292736396150822141011895306765901124516246824726569609443532377520838787163864617184375370648353706999074301132856008277119044782837134418169580860879969145516685544464644576532128141582413015621615905295517164693996912274043473573810514105378135089245566694993434686965919974385037426316336337863631655111370850872476163721401712939790454756678746192176147347254917600163074552979931301454500192662074171001039155012724884009945605141753395195459858049342573586835694748234741974018149327269009546608348001143099499333409900222747983288209935755628661057304625235908601596617184643075564176339410858733812462414498163058844451761402229916973038155628122206581910087538007193035445078817964396265712757237407374652002934339033977401899857369150376975657714140578598288110978966439339426006287555149322737358645286446861439222425326605741459322311595671392117356799164948492116804692271972212401495053941173753793843926892596764361544686720737511112100994119536105431508104265091744289743359267551373353170260949470948176510854020059076018470607862684988635292368266506379874275113883589232797887200376721058453921371660364136148253140000627398824456348028995077045520435832297702661904712338425388827660949132903412239252562870089342073235122980613571919327179984083182412108025597678842719219839177807291904932926324833197130027899954550638543485509048496559259259964062598097484417207174948955399565584564071001836618557432935937435107083461806224654412630798800333136079720335374912484751875039640929096295986929352358136628445532932860172751995475461033414648295837339258356288743980923140822914276368959967778442585609381916513377019702773521852443755648050843407818050541774350164793349805880735562060648822798699963007292392231357812030619777894426082184988316294386080687956921592652139649338048125982474963269563007485916717237560477414500496039206718915439655546593397762956263690368447352025310911788077441132657194805043246209335343172417741182957445723958547242252240540704966749495688034037235079330305039479561062882401063078136394077601393063918728352677108515314927488511307110794605067881828083594286326040845627315655518885478568710476277741236720993750809293391944179114697289360381552650255917265211863907737982778399327820605888526135438631750970736045377812615968676768259129513224953363667604649131460733061051466743272745087397752487079580638114881334835486136451419449064944566859369133734567528063743122460921918222148731641024234323512548456554879101977906317982001572669735414413283070859108569799643820057259939998878979050247190874177229456596877262328518508693314269703975056001870897220249317787010102089850709483767326590432488145307867537635578149895347892122197565992178184326159429129836811500564011165214372063600865119489726880258956374145569965152188610188482153067013885281433749805759749608197866984896162736536883005269346564765974056432086875056783371656066562325063020125168863992899040523821653209423490817389583778637916051666786248228901255476175058198887748228552387184787101037846924757410684889703797325335386940633863516003387025374689149241035656955783904301801518814672022971205949966883928561086938708660794189964677660480136669306833537206183268488876031356836386322502948028608990911628157272841198315822469771209148084714517743793463563814462660417910949927024189764652059007285371429019545845149613761044084030023110790872670362459380583632205128303104619124230925068153425618618582155178459709786599560250293641179181248849339943216801088576955169913445291862579657697544658721118355634292497210828148786865281746494699180436940891753790275992773110507930642490088329651223792242738952631350310789944170404599461687598528684369952726150828146574833609175433010635289121784440216641142226371691104294002837201814154144874071873840857273287506041813383678602791855868930758304193545477877009526253501967340653157825661854065605572969772563016127549872049145807315435050057362031985433814269497881671552335184339261055938044997346173603086674317457991230254300597869548505915543150779868750740144301988814676333751822272145137307711101088291518291740767934754341925679513860399376271498817472078097573505036039061455227725029977670333804108158640137103015510019546095854898853545931775845167631687736262672559547569549047608639338737148642809072713386271262520990855111860869571613727353419836533974765309168716554368882838977370284110869913309703748816777426204365776934161362499234193701678735722524164473719248591750896981468389303435748903462857482780687748877440910130593369555910597250932785454345590615939928346283940573581397277156651131894682132871765157554113318968430729561022508918331434606364341035954695040979100573888000275879166560703603536690235269973422556564219061384319019313136222635995404158525477530356481175133027523597639047625749103300907766041369911109256702357244995208926006988970424176156004685816494041002776513156855665271839287097741226863693035172114124420009160147543764775590780332270118994185305001282960985606019929722718901345405722987904732391988703184024334042605839523240801120510707378883990325668005392451252207329230091181351209067468501037815296239834282541735502233202377714279631010466523004902328733382151823029312373706851855799434780462429026049419232003728987932039591485712832050619057541013925917322311536979484892678920586429804012477510614961259684890559498865685524738730101512122414654594431129325420526605744832627943843680824269784422661746617745651249388645495402423630238469675239829082931260680027150702785284326956604834318124047073795819281232922459912716416908378448699989481737403848436583678998232536451403162449801155602366496227172598388337389629523062596526330239550543477213361183917285727685578402573905476084167814766991744289278824493934686936206384267273112685072381003982271877617895719464810273189663158101123139649994155675937656252952578798623808028630898224435169577143721387576847991913252906335637966618084972414728839299286475244551486363101129807781964984092170628225060909705598139961780411149370094753031336738944833120320004356090783223996101934481203896366327162684363997956505923986774478619781038448185305893928090432140048500355457139420551437082224927979315735788014519476293842265942260878407146115358996482014754796336653484981365631445699304836714196755880406101941056877171955231560485692519489653430023226001273886319776314011533561126607760264458001055994786274110494310285478295157479710398025972981037968977698748844057894129226506743586347034830552309145569327672948295906355076964493935604002662316553325875209423861389304149308519142946192910324428049534024504859321198344992663015773049759106601343359546520095617045959735597288304614645860205038895319322537538300527540962933123149129649084769601417290072864600642870104715029854139469765255519788747073760865081313284217528525777917714857680514812486383711208601850288513341506753023764979650961126961935700034085621153915879259128893827524975279908765864050116201497850257181281328695273953648998754738489270178405073179660668554970638452291048351447716033079229138996073485125744068260951390259666175162742448670043763269813345052676606922524244646157164328052415536273460820495505220671800041229040749476702676552120943752918726575333352312297825262539736736459066651205171368464589727879789226500611182386520417572476337546315195332908365440004737664807521591281466640166028908426473060118340182991517442766221026980828292081475781333927723020706420057376485764461458079292346752434702234379490190375833566471006968106043624240164061544507920606189982205118587060927436508018014492674484191858811955279864740656866363836129039647162957334692966479147205709017391084781594163167973769562083501688363861977822959629564677397254874669009567888381500209636756548469965791558318429982329326982282426599635560678739954985958435497090899500921661003896240484402843214327796398138373356154435479936404881016579366715854545782994799289685373279948836212096266501693629140610200648242418062764934038605890134981444489473803400234647127549925698699261274656326657853994071501415274505691187616461099847359043262930936734597400763998004923492334937645148518041348210734477334193943989443362738737152653524528962301396354656997930703552366768025246208301083724930270912851675284220626972262156866381493255012437526656915926793317145083163015646718136001507059715134975031468348007615684600344264748258501642671651395072836093763645207202596417778324804304105256543028686546516621084578280350323562601894083858745046711608129382932490801490938994736430125487467919273433530154497093820952811961642771353327133509545841107240253117213689196936910461979168705709492773801614167693943081220068423344555611850031047171329257551971518417740443823637094061569645659538504119437220290214744862306687295349735165050417288678515114869910920047640209300408326262993290061139269197095447647809965754317300517571878609527781678135028070317449545768857700301637557960875766701663215486947746016164445610573426769946760131344003193395074610573389214451629359301377835692216108148160582509478802978978152306523620942686072394479145421034124861647727089948350523473841146548608394156314742623853569805307110835179601732662390554807968600374717358138867479014222093492644158089199587344792243874333497441004348666805105549859221525542576650353520622465718281408499439139815327364465917887250443557383890764401964906923519825632451969664908173326433552358159132123884623339246929994568330503599248049999959369789590504706245377847790860850189307487022180732293855211207203857705753606772130795347174588233217343844801879388543060351871588146364374874107752809458045697707290003648545189107363197832930026903866403174252621182842035363456924332877637258798689370134190716081975174508862119381888913599001491273575995450165276476537415440949519090347573343975359300170969210581002625503357995284307598129575616729437430328907706484016151475539056073294479421154821795726575239034466099533783800019390441922091467553786990797868648593572317614223350994163141413287478972254590280795865795544577328799287634043479778651067048507193568565491185820047668842161332400717512519636083794477247196923578755123781180864129118190011271714504022618049615480366912231631468404246853563481278369178373030189011945384423815408342344850354381730455163752283062692246854707823852423365160456148997842221559641483080689394131346981189894070389810311709553268962345990839205834034799881410616715815303555920755089805069749567273480640631528826184722842238607532743250531224433474443366304150871385085215892086712480377709255453169288906758294379155967832171197031579890701633219423746558937069631570396931768025168165431495795470019461694911961271273998659250647080425327210822886447286924008717049968515235248806985914912904458827284306085283439683217444250872747931393287749143653401890196091596428363149396985697197649674471956687132608797468945044472132918202603251977322586210915722639409844361221978091800187298573729062448657776015873557573364773575660964998193361642636285984937079995412623090790497750393637970321570845317805803502275033521118978916742603129907749619557936778010475733925155217625039377199648115905482345290117113439089641160900970015767834268450223647153037554813012874272169477188673494909170551197398645530545010273217977475450569070959289406533521553140525993474660387832229785071003684468216925558061330478212695318322445619339734858168794709804526112451637874540862457474238380440805017707359825578368015372546776139095598659352728920828920715478778587661460569324239587762118904872217310530822733783306153000184970614589608473800423066310219712400817286614011501190379033207942175411891654320930874407281663781065111186307409061731060880777227994956443260510966874018896870350701687839561403205759512962181352356257019100546092745321827847577369969628307950599728836441702209494198386300611289224998549478870121042764799898512182071464465741446243293445156542803321005013794532301707312457684098768194731306900935438680415823078386148070210991331528177339429126415630587851552657974609028565665605534286819254028848428374539047801171690167508392699858175244967070657188582400769809030495677034805175533975290703903825237326110967107845648816300643781832623004228428104673818618125454388406717852332449842691016132773936289019546004099814808667469891487895156989457267239788284307597065819157645837029187766066914485705366878116011720909944424110483054532565228369528215622825673148765059767766129592414164795071795728092691279410375474637293309900629567056862556000940855864982906917846500878382995115092692678577591698885345529101220261505459872448274297163169403889309340881117547632299738809659746432304789979511236400807968721603573230610867441999797471559838492249741832432605710321112416985548416769344895160793917662416419822055166112391524900635438021046483332289687597409788555779305146841760729573062524694588397193365616241268493093543888755587132143425635186403840507816634831115942851552831021570134606922480012502137319212115601678550858478323927580729502604146686731863347029465344001225696691713082690281512639134811158335057260704018082306438333506158618440364827898555311318122803488580053197188061549902232990147447467708971654792553045413795741462588706035592669737269424427334263270206921378447665472573833456328341244495176852335294561527727034506485786545829406530604289768360422407627090253065898320730833505072848010958148900146663440991431417938551031858598173302181996797368402529490600736904515280972862071319743857382059989263172757710943598733635108014923939172266942215497810250237508857952096723531537030464421138019977944789730645872183699119053697384323033046945182459333128186288242912455311307304958124078826616169547989944811008849738840281160355003264181881825066112651066400774311560656523267760893325786286344999227211716466985889936102008316766417931249644890345653281420712375657523594008082051737541495865476879645776562850990610053524617540232532950312511891783452421501435892845491958623695331006197115062062877499452148456913825276852053166848272659074788551642634162206967196852772762599828361263046917105560804402345518594500309971841725679317732629753635734517321623939651288312057021500093572247114709243763332363696739688188013238098204768298335107142126486576815025496283491422298648939967113043466796481516563262558283507723193073867372268880551567458199141892721342774819731910955609650290288694858555401359186957117780379612669139316586442773165094230258074937081809530375946735670488759000966309902009380923116905663301413396824271929913920906008521507166545260090787745135854922368143033488579986541756986827518541519748181493903661852034815040730858884622873033076297803667954352357833662992873148513829621920741199936483603271440133902213937329667496668269108333934781081110055574775758568517439950121960666157408676664017737146268532320831500205246005953354729668531693099256432340724558314460107393780839533515897595233057850030223240193421287034748026760220150666567562358244678112906554665426539257796403852651092339918163027436350888028495610420903114742923537050723904270612357956961299613018529346541505636943588479602440564055591175506570911423819960709161764813987506488907845770255560105753943246517476412734302631501910413217081332250759682128979659231716603407716989396353228799498107943572372037429276535668488319219496499114632819490384508989136699044969877178688718364579149034327947747391471117473275783788089166698427114373183946327457831186591634803625536706821678105377897746070555343882687286064484814043495561277624661407653814806578189531812867550702443230669186327508825150735436687209772921171917833133899006147055936526276323606221919860143073474974157603979324449911996065591099954240427844069832057279352879819052245145114912072705688849048625544090665527166088876527761278806389404995617771237192731980579067735373770155865741703020986135831746376615914094472160568792511359453006047706493106736852355268924889216269180254058985561538945825863460031616952927991477306036089230284733638425546621143745614793542371668078949075189446252590849873308725209754238237312577843898893903274514497334113897769059018404905446546633266261354253185242267637696953085855992807564153967510349311474420577899751996248108070047574642155929932801368988727484990028701692874678462568385572754254381699357783962057733024822586553510926849251802989687962325839541328211936376983364377179982320193376459529632851643985078008663343745346208826071616511631939931748165651734970970934899340819410415605675693537016022441868232525408925362511534654166925125579926664910642730577851029584845770304614482274238020531701455016839342805086603131840132084562123880825606555888813905676662272051729945935673669033254581963145002658574481815179961846820517521801932987202849849794070320436497087521828730639587516891024688888634006548710954132003808289968380160458910148215212644144666564866906358611309702275960931943684618800980117164927392973424719418212967973083477768076049030165905733781310479698148921222606902867182973153547687861834075073818789209049784360652931009302638815682479920719663742631035097151048388149084377263261194012489950551971318658884586098446103711102053266114217558035135844842367631978470608593902343414527222063521484513773221572991938436717955855914268405781205086032900158984963520014279232469870632436589473144138855837949319863838793557472822990510157131548446957902500154382362147169409327376338489124839555303000396474349798452686986983341248960980412052787471038005651696848686943007639653141207104554477741327672012252537039047171919955391322396719929652969693390552654983289523292066158171412137638564236875803105671165701092103485013482445218434325180276695229720910426421508656404224547905499559733305087756212264525584482919009939108459790823491140768018507178091052181317938057764569245598567199127376571979536199953652973680829278865848221705631955465627472082738069442298160261922107610448440336665501195570089324753634241192975943150495985561335683676182207336383599913230889454579047006534489039877763735806778303052824957875889161574232122673183649640647927382161112348867240822243257204943995385537909616881989597302497978795320925723049273317497417754145304351913866510430236513827842956759885811402910908293806479983577451772530965411742976868428478554460096543143548627444341021920939418748834116497064993423536879966437246833765058439567895248151940372464517163024527496264487571559786338608728541462046194637074543518809550894264047032125361925770570461362574723987801146178562391517538126497846235228509660560734401339811191492963435179747107077197329889243885365461770931507498767553776504486077806571467515167458386702404584443011531428546812162110548043921865172664659644670513432119065731740580924366024877728752095718656887352660098415169435523161144634521727114681306964207531424274547742238271169789155497188756256232230793144715848171299688996327126228314999330013317182718880593290183462636550913251206072917654653866037411473732585715124198678163231064496925692395603890520353165601199547421915849972512480771078952244009240250497568414584559443287099976716452950038374684553942555234001731460360515193084456145825100438860330603234214009126911311441755763819319028123467390088028091357110264266536144618077889752724690920901513317517094605732814638364642837274410688887272972779343517049385543874541732430586034716040321586120909193483813034786094754367558383558202059431395178996606006485239615338910763335265251247293061706451350166454888886760258913657388376702142541659167642322033667054813291788932825060044914386976318446500163097751440289014914186423202677766233146731052420700898869479678856076072480532530030644966053680536253598344097703215929851205435625982399882434979964794661038295093980658832111898224099359581392977553421986607144722907884634288616873732365459150509661820030552941527784670106030250705278070801876762574917769314878943877805579149287975700674220585980322131503115765490421858271134663154955287823950745951105820851636017332070612293444076610507793136397577760384394312085774268128626135947893754425461961066582318167553719955015526559423301290306990754823423199992188642062029949339155087860933813419812505891206226236576510959731342344532311998204820208924442680327764299005001025336195178576201697824462025568336504217409941131217319210881072521703920942721308760907893203526421362223849426421271443047731995543995287776239978040901509957702736210279035862036796317155764096710882717139785769404162213043601459200510252586333673596055365533368642136059369992847279504421269670116824147769464568823139179781614038317463073565133580183729705164791430243775125070005737046081822967625635345822630592899844693083093063014459085817691732731044496957045803202861161091347267601177130137286616285244370124018725974984206413105950342709669810591166098288013594101965459482091641543627601514747316490328321462028167410126977618958680758564918586688782460100311357181031127388003546828907620002321101992607153386668675746132078306924215595839614544170178743228923600300488054817161516208064372361643404208724979185976593944222785509450025060634207574295939457596912006577530400246001563333085630062729376801564502938808723645226980256154526055114767723360171848562470368206324100013714539391634849671104903361406563478637276328425791245117759669903820691707436684861957616829168871476385369516707636726084645562724436106147519050496749540293822990422938046419632740925214755675808448235513578017552288852049663442022399534341523550140686932627298940176888796302791826812448859950977460746618431013072014343674735227408057609642632549334009239057665772923657447555507634993105909187667439707026284885216484190497337207225516465251443097641840515306371758164239406848535444223676329891570271062894241127013199146950470702207973240732146462205305397097946194652835612967552819732943488666265856870761366162398484741796917172476883865269649059427376687175537853501705048780596665051373957506898421793337307742534170814887619866769273133365883825394676152016164532408219097133458440848767807926307705336307912538202541421118930878703714854347817988930547232262578210506395795040550757178921274367436266147038506344717704396487897398408732769006414782338182475018643725238585404258330668537251241604865254853023744829085589624610097902714295495774616357644784475685008977991225473268751146721351417233560036716786338933986375068482031871549112671040001463656332832929155409136164921289072801885063965459397614291766962435518835501832202690850620139332550334321951853298084211891029894064723987154940862379118225217341022277988113000029113314989709079586010653676579998357996914241111640274878547719537953380785839372638424642158871558306264644229062317005564649254769985870125370518984512113041818235452593511021969873345789501439865042752569183775169897055986738127671379611833968225070682061284652740232933918478656942998293250328939711082527496469675605379804815003001804686562387188967561119794954490559967934816789385160531119312468865331696571269469950274164591154522584226073772653943647388536493128290586849092180817031656360960951416264020953728111932947799589591192699980908737767512388521754339891934275005447881334035244346034528324838909105160778553820611353119747355764840089551670545153969813435749363115923911026964294885132522329404368795735160818712998667044614556506180978302611027710567594749130358706880752458494063242612402432071858477226508723283297763772766375833430440753618445061913312204192107394549163381186550176134705688656491055248801648325730002746147754784319290296435299216518023039545518348627866223316753650183031262219848019511401309102011257931096839592066500657452605403894415922480784233306063957137312733573141161638442417525295891892715648870874706934628991341253192056434119849480135977747228649219328707929760352470014114679547747187591339584339737373882395361579374507442170297116121656701784039068348320801152576072959628977518259010016070334351044918007051972400091824249226020051808803037083601221428878623567574765041376686202101218828202114670265985494322814161205725771972242662424734792909468890930646574023362916274988207298523196004876754598982383489121488467632449704401761338650595552597460271100371940878930575083608758933957872815281113358604240662068445290074672374329614220725802077980940150087643127289653318987144645941684509000919400640694933635868894156495617432335313463939099249187917369482033284456726664046412407247598244726067143651397339002577598994447856784185872839689453989602144703902454440413595177965447176819151665143376130942866533653823871652503575392880407814231783144680419746614030916720265602370557740442979025678835316340397533827261101973200940594534568166563501062832326426701604077193952780875102827476463907635102924159855814513755340404480832951047631975971339828783962148016406694938365132083560494153131720600965038040512215060615743988286947370547704159461237850828444988764256356735189797643591483413588652675976753812017316716764711754181664858324171185424373914727440758376680355985485581627043177681524154015365882883311592522811074364447089047611528554499234353101896975230679833010623054616862177969370173644277867110410776489670158031922513959326508908622150702922001683188065436196662929736430356007073669591489420151278947929024863938085518072599387226195391109078634544977333457514653964267214462062448623834625733873144213154461698114846677186165454326968994407003425716315820430134478486836398789284695385765914802488105126544817308491369582144789827415879674323824552007419256255766781231867436916672806913554123939604993577509228184369524438328458079713808854230053678373357385128233784903760035433602814795467766432513032050867501420153093594236215536699650698596920936935201153606938522920874238726852140347824753018665243780500462555582148337797392940388567655729247703668953217438415162215090212500753111993073875036190474876020043620015955203839102235184930248999972740071176537362468765650976840607161023686478357889878333968134697146234623958244664627379417608248568325607666409745670030688356067941732101646455876185451948924619923152102106933225693848172157295599652497962381998972492457911402767522738733339209569583540432237915967949832467999477840618595227311593044243390594111677538563835387210284291536404871248495518294339126089269168393534452068298537198465605072174808414757166281224660387825488485244665145634024976220776858414366551820308962385366839836671418840895850224804557220869586287142094340294384353023008612030976837362539298277059430564703438790459551186603195360119170437685698988649872901878432163561091318180881769777107122961825643847073736479079295582125919731772484711955729400303143320100305899568555929528846243869179962674090939926544441907863877162584937166529467474514106975129700584429333916678466886125939534604014798137144641176650356195247763942195148645287101746595346517855279982301375047382940681160133325122507363107742053584258122479973779830891110415063140377003842511690263742022982378123179448868152306526273993150902790419928677974342272749803628103910934869367212392718555711058757869232246691330752133711937055446443298290891253989391737011988979064739348106556450927187753561024457299768151135673140045005822453453779416285117292779576318277548911266799590147354068483866107337360820598835802800168370212649579533031696697800440264037468301057946628289747643674781248637319365747697221853803600488155175458900527660743528596808790297860702855771370723899399819142988243149095485906603806713899605175197859122426802435664529628696799079018856745679035289333988022264660576926553130435507600033696673605608862452355397074800180366595360833082002938854555568601842047980629581920562728054172269411622547093906068829113101268912798335022652671037630864073329592457057506936818962211345274162622830201235498850481150523158658067499319962949900557001558750083061956819811177984530061895408773805285154955034241861822469523675513224585595012089068331368902503046787594756278841471566140928566475164038610540613260778888392643531897663063427786546170575560861486178942940646357020640108510888762093872570409368444398061270340706795701113007307736007450401711080384486786245031671178090980194113713204961257141432723390216989751187900986821038104377900310794120577239349592588305618683569252376346310309495819614545905652902886038911823389595779195526266292026624840821194130294292028370901449932566378788820574469749403026735583496833453056711896866123917017394541495621773290046693251758909161991452894276965249238685101546522027427576037942353938340500598864372822512575107406414007916579419383575710553914307658783400177277960185254078442146586540666767368374874562990908397037844349335841697782192020797856887922725028405158116593465310907492925743754129130075205883762000725423312395033529081553964870467777281458338449048589644341574259981256596281574804240094005364862550408325174277384923622397690814618607435556582663991500695327396249788515720318303906471318319264640501187491758708743998927495032280683332943013211645006019381847913547970661806889858202867150601567288585550865873726493988046446005165089261051087797222250437508969134861284566494484503364167213718504618112837053881825161016848517535632877952228266671344166273828733633158561341059938616722325217667692202234854649828482674755620857016841424488621735643336535387002023901804963010606746472420528267011253166938246036614537997626205863631582463322920947152618118523487570526883183472515848386110279361397709577640830289254206402618656223238323828342236796157838656000148530468189272122754366509044437866068956530112137548665609474672618559427003133693830402501777348391967344917395703345673857431832880024477803128024158192990368719988646485912977259607095635287495903345851940169249791980664386871961500787630241393265871750404382687092755608608386369773883647519906676209823485092983407028723921085150724873615280248912534008331150326312782543508628452610502178283491500367460272096748028303698388028759155652971807281777358412442960636215228924338781437791730428356638207948494915412500238268385417312768227995220148130901338337617506213489663616348496505117507462301392162115579355098146498188652624973823296838846576406722038590959568557100942079618510285948428501630269972667577277701137174098042748068006611352782869202900730821118924337968639066926869690681320463955778573099127138428602716783684213650721870878437014735416808890188555915872479307482106001429116796627486235540950423556263613662262390199845118991945320094981967258216091757170251767051755082277365800191656124706836507371812980866737077728224780335735794378777891832434382016370912147034094469123254373104029844704344657725032914570575814536965303698223006436709597584830739641609559912306573261221435728173749066038090743380668583618377048327073035864832625538225894468963192747947076578225337160326550445785043521566613563687865087973009475346704176729582950829773934574903939508834025617646093482635653001372204688039523991357471488044266450716442822568974744612312697260022280200301006907164418127392919415560674164771256746512086230268100115494222963042559397278585563141716587552449405901323427398235704744145994752474894952490555131686777936804322818886647652325361197642470588157504396385119625169544611121506828529222520566685333662111967004608448260457668284985957602863127722050213780660543902649826637315336556721811546473515886507195699284187428332764699478610280428300144687885503903321263458066286574996211999196175397886482295501742602824773719813544400459123420017139145514563342681598006639839164353366876596363778609874610133431813324855059217238775547092932314764568411664155014916832258680912326092381371330735184440498354827570409832338432022468371599728361645310116569453135334248060442612720871129331499289146935342083302022682105104649941365360877642141304802662826109654804195955227556615109472887152607385045575855797222700079389984868850606085188735164519269921934203642773814942086719689332223510950180256731343761316691473332481462469751979830259118664370262265378050303249379707054975331900998040691227444583220969521313872911530044564516692531127429628267561814414912366533990359732719540024598990996596187422489669588887556576900898116461582192095894410778015372515998042170915502983410004135770840330484507665232804566430218839165176751340292971697428104196147407608332095812985906050190295754000700449537782580362272912487421080151870035759704641764867008262773780077063065239925384079322084991114831149258365472902800460734472434226013257152618038139285643293590220375422295545565808151866144785297582645970233999079811586028479407406922659600840389652439973539707395296686852597313558598860065528498057908231599155966686372306065020822938335365219749809438681915322033893823204056649861363871020503369539749117570526390433492345807981521801092630005711543300920231324957656473045037421621402345231183126678280029086598591935435869377237210473030911123719880160992650625288385719342924799946246779348849814881346968839877625560241013266177342902211250711581199700588738455966420551002106894475664337670055933729895167240239571934537908995640432277070943493297338392595450094227383468151536570471107012251826406209525057868450598942920301388772046768382953489121864926590858754964981332833806066011396626034349896947402308928949735124136808014312173275241242269775801058857961007569939800744431822189608911036236622632155124840073546443005033819741638675217315744353326991523979419545634512042558328285152937816587299768638871234946085628884300217518814937794290822025157306736594633870566090846742546699377846657605001181605833512561551330977491287871243575768349380236255209489027522436312773570670096896621259879897153043992278404129458934395878288927870066629014353974558965102889409299799760802998244497383909751783986526198287961323083510653677227144956265198976195805142057716672015558783994289352258083819319416332170210211161017209595328790281993026667808548080936310458953638112835167238877411592116157212787890698867864558004210843213324989985864335690959306483209005684795622793494853235647516074217030628274320860218219219843190833289196465444218442546592156642033578186034884831893758032993369913009852441827703554075858463471550218776302650302205743487173077697400496985371133766286312735428463263624674486101234051798831987007145070003578667499127403412847135126367504180610120380770882804886377723144406770644351354166483947850097180334203132782410631384551984008165354454827654328879531926426810814327749461538659163151639939844003510550876484709529217070331443371300285983071838308657327672907410077483509990380222739972058343897041791014794748278616250135881277391860233594271181508024969612099888021812765609528897131792567852594968727900797311593761917736137728636757160921701305317631872733847554031648118444236995498949096494331571888075968595859861721886640423992480272986691769999080209956216344330744869294912961644190336869447458017066504168900508657340702247008622090468142535793871039247158935990795902271670562171931257379430683383701738067300326489539126412215282198904262477864393695616743719300802076369625953600505163588832198165474968684797389701804605213525174357600892738638485328594772858187898162464336347702214482937954934765464296457150371826641131190038986046270946121513514490654244971616593912582906405822345132809013653491513528190185820559231968693491254835715245910818283425883280503617505900923351007280367407966017619535215763095448686203681081239190431408315379059479493385412512574072142902252210151105322180993577873731182945622966554321887082984387909652875283808435079606865982558947382324509291358377804858647197594546583244627929917181820987601778122834872790957776457391320692693172852635138178648337533321121933680768610157182538927460415648987960172210541328492169271807870589901052045058627008229506239922903813178851366516394349632761054182839457514808730124161343429284871717289985232459649989028393535821790868089466311225514683383781221350520835162515444161711040050740766192053541206642614266845530619579099108423796617237234050512601612037739751392255970869913810938396906997890042573491405065200813319159844892300234220962941742694082257234066330510659041501522815384604106896496216331306359465475238759205819393422546258656293981160713125192866578435761610740145156049840048400159789931831578062541631717026926766067537689290847169937040033443037475580191068255975980815181231997889171103620427043740174753568827356712095974655959574540631088419670345571416271320372385326825352772523339122563764846667664994050376902545565083047007282776497849278183254159305117916300369797249525073108492653907763461804953733121818063887648939857689429199602446301677544297141152885111357243014349774939779779864077132698119247162213003900255299049173635187717629518575077191584681120726069007150199074553910587895413028687239575257702344531315773868069008547027383905443201713654075848114442264781018457045895059019962816478338872836230751457005498421583880697927888992939882363939703248537327155914647077980372002717810973959036073847466005822290677356514706142424292786709255068925593543501531484580502064426859345808667790748698444073247799158923390798505143024099740431304314097151082589516582054576333751326014180696146463556622149089401209512193505796780352456771710523253496791724827722975890000565780300906529911565103396345920326027545206517759397985132959505195361535685750286402859432499159826806597232845335736394813461755621281965477895534474689621775861002840372927413163914496263564325529678627588359514991519468224840796779284263177078650307155053941183095233270546771299831436271253067436989777777895769083194460637132771402123357178046526349476217796115736404791353575624720060307119350731397940928423962149028522135705990766765162324937599265823017963258757732001791950183870344790660992192502982677181730707978451614824633236232906086291911826281509548873805785149335850816052046566856447022738933587163725371554763730965618679496414017113558195057385557450706181629116060281101034915061767895084968522360647038798294462150728481858675124754031524464841000628269404630324203989006757129004795472419530630898106887869122142071715276754981902048063612624881354584559673578217955590644607521396912379809827425659319446341875568345562711789031613782198519164173604320512623702855400220381401317502733630236596460065182807088415211509928692802806173241572960523699476742769682689107625569480933325237853319783450927599710712217356454651802044902352271805901213828063176045449967037525813237567583931210869841989374331947265519254574442034476056930601437061526275649099932867579023385008830000456061439467087287389441735315679721515995043433295469533411703797770013510861725242510605551233491649920523957214570353551571297902842196937270662559291814586186024612991882682536539149611854465511747451012315062311208738137275352706714340450355487054458679659048064428692342160675000886443278403723109249976515881411690743808144495081057236910500019567313469861576726959392138262609814211177400511647072797431104293192426999731469949502330960123077415483380929739645029314309260818269437517084762196450473165618269863555585544723472118682366197662778374785045345574558136302468960447608928443268651687503173156826852561558347956638326799789159856884440760364567796148090089060056655654028618375249136434845877625920515006618225008030016072006943384565280910409277910366934932279442420036838253811910304267958853738226132875582845812975917715440484401797892355680041279438431150558763485289331806575554001160959236516764121061665290889977837712018255040168178731388445630897160079804723676008941543896996426349896983932806165777813633023567971162085859420467474625174114017222307881160401822554529168140796375641352326815220457294344413046358970276959661821047432627667475509457614797678411282222717857905387140218793627455361015275017692317884060757180313570079823824259820231784537119079048012281970854148288393046095986664048514750284944727182393703747373621614562486013667699227734367870352162624094576072590625793677957416288515201678426612916829519693252947228899828820068358038043574372858988592569088552255255579502952769734043175245894824521949749590727659783520719609450611767903007423580543865589940145781199830406738794997130596893317885492616108480349648909503304649051278037283079622455559532114251053040902964856658197098676631915379288526053190585184209773632516418032531866838646244819293439394453758867021369234949144692736616174834440786053637847332959613661461252989658643416440394680416614598883985056807404928922816854229013571850471172681562035632481763113712914457970495561354289937174743213923038827004619252333225226454960917792467708697525233511581184292606343711723101273556125446789799780340839688262608302795512911294223484264690740791815528283850615640677802783983840187159270247628094218486599863619192136008326542623808573253563838489796406876689484950688996730128269083490869129489102439826998445621989780071714205194253526044619337661713478644871779575398317602708109310446825528402998841370377854654280550714214747648360117965958245356396150311371811593202825849729063266574828498818062453978454246644742680187021587528177706612099134801539210927196825418862948681930159159432486483724039945963287801620576580183075954596267804176396972065014872441973536090824104565450542274492692582972835089485726764926811217063187871255736028250148821845290227069182918152394956799933565456249889171856849360470025641065263406886997144692327394238547295463609127260070290039870121398785196876972254215519534983257658125039309521434063446238735518905363973432102696699231000893659390316793174694861548806159580837847646520391362040592005792435585265248770925763656786717272715669414286149091500389343219664135857120015128916521866004483249897937341706788548438420454202267672788480132650616516394458526834771853076925430874741690164570851617068168013795165446993809940593671142936352577710215510552562349194883671574559579193009103342607244016347387186810294270349391851325625940438382214395493033326352611311459388018938629769919023295850168550324057998491115327583195024323393852552648261696346862404298370370817885547407817370873119677671136848152372491293931465691325188813620928653939503417292376046882757657426816787024242512091911205089246396655684566104883281706164167231611374326808695512774780140026810846919773345142067238582938378353659457762857471453725040744673169823053329243182144964640742723308367410764625433479941935877673168600215285561789098057194994454283278804074246126383529200120236779726849552350969520442015627179958103325240920951600305799380162677422199646112995921230025588727498334238288106372609011403755202898757432958012281635134197630169087718366943356299189322525739595882714132769129857192419349908493953080610795466188870145798940373977741345652385544483733392137294297796871563408988688018544521081024109842755601522657731386375556218014223005130189662501250824279887842637706534946276745287576406272916352987361607473602870096352646832483006433697582288794079451892634476953622262030903575752983439214945281117868439510802587630917718884446177483941367047491555658152008093531199953468096584983202067603502978253902086600222407931233315683698793620160218198037676474282576756380514060857111906683355717878608834197022887232556828678850097387503425077985570558579297423271086911153114441621006110684914956519082276315099419141719936747107502392471678729487116088144718328733477473985172688519664932016048874755593271185714285538397191309834608165724892547967033503036926402079615155131194463778395864234472026061529838218757441681716159645416306997697127706187227899647204335071492718758354352327117220979081330317029649679710251646374229638845099105398101185949897282952209121899512415539924711323163801655398831460033215010937970663710493572590934404639385954299507591121152084228456090861433564596981208613737428944401146955309812698218583298508673965987158586353181797198813199045807315903796381517631615542601899465224814052302205862862111716241185036590555657592532515344259790632626326743372735158050655918121018290736578705117462803852324218328942441885449827773760472739254846688724961182256217368433490331331169271982915705179424509904268073455442654119706765333509383473415105680286553364610391984144921836532251321521498988877466147226164660593738109740955719353824388053583895263377283865399930718793396218999161334051335672934550959263240335678203351796237522915994921234299950535176378561559198279733334943017638498829582164422363782498571574177331453577117414406709193348373692743960172098529843431000037751500863044343847410039453816855467759903538921772045833993702989144538036395442790279313662930244339105273776486921575564655803534913087007420562047935112243499881261156527947579717223633002206375398182055966308443649151558183212929039882331166248563382584486731665153909412909892588099202733034085512018517922691882290839848747021347966460569820132485172430412842584900781825372782451035789467925148721982466272296786722786966082557935814794783906306993966518820762752639503918610938832775624312500925888343968877106822806412842565924762250717144875159312225641415712409618429936180796831293712256086655214865561174612357229784770129964191917592611086297010629005277905556079701071005462810669617334061304161637214231348378334652182153894466401304818197408324949409021791976315565193443573540314778143551466910778248263859995127799945386798892207016499591375557830702594291481325009591439426137607052771221036690335735703166977514446040743871132188835126209064835804504932144261389120785115883874652833628908297397963585276806944732026579131696422250518230238353495771139746926713664852431528137094790326034494435693327858017536734685814071050347613193940641332353428429824449641243183788163228345227877205087457063225346930680652198010934040283007986779861698379603301209562226117844015868812863229066315559852204136497430645564100466309697781052117890827039455615007754964785024948861954716155006066203704042374644739759324219487581121775761324621220348634107702582363359334022573949539149131407187987435770847050185266990113533483415583803348342138020172003146604151658250365318694055844010178962237888705857242849114007415821964632314955371378773464146694866674905448124879258428906342337268504951365474813279406448200592222024103958991479097098986183107897951951301068177816875115739255160021119138351335862906240090069950149486033105783960994157633413736009828594174450480328877870517763540596049262673654568302802555944858336752164907302590978535988116406779481603407175197287661655824255021558754687710370322582538112437048246031703495024347422839452379106762123755041696702241182280282738144418040692927162167630444804678509231242051178455444195963095836188483258648195248412992804324663783773780835556763021274345292086158553651787814560342768901959541113735675403813507771092357105944560331926963137168971870367746016117909238834688345924286195500524004306447403498089420726956780764619363335620703747691679347808756664761391189794399121666750356088376423253603387842352122924982571871658105016115238361915217837747545998087533843324100153855832991310665545694753058301274432472939780813879385481378508620175080860498856927368700992480375660904992198005991433817448897676644284920149095056374257193351170180532245559315264461713797962019886201728039246958161980557445553141223515730985704170794757714285079691127202589285248083615981433910631956253818150580186257034577292638153609668301286271702204251422098392757113327817488935925670504439553150248954116636277173213236603704731259339459081394343434690143076130684824664037753700059575498752935549168702605755946545337609014847193195773045657965843124358942130469543455579647153744654890709636322109786069523205991681700422188918177408114099731466658985899907881793527126522521600159852271798935189648117838799549987401755453136306478491369307216783812285376855491229932238945818227694695650742384734701422851110640019052119221512200597834804379002147612380377773649356637722201571242843182406580154638798292405107840504061875505287353949468517427034159473126698629093100951633839515764822144727434441570660387586260936878825346244850703380844526795133605598461897016029140893413467611356986822862687875150195252090456283200638685407796071931586663590351539902540124934914084678495319905158089638030120275966602778277568706445613594556442258147719629016144362203988216442850997203027381165173174027857064074525286893993057939031760182472080675719397851866724038165028282777404280072955303915144575216878375044346027439528594336068341464055806566883850467969814457281553075333182485336223712694225277258754208759580720536535722327441830026104814645081632627514795760841316454698143765772999737001054261031077856172220134427664441637483056040944812415646357800927618496269326280457176044023556228871974449153403557813174481575308387658576209347399790271577932271654254583965589116968586360545276948419797115702886910799766321317861174883049064890337060118047710744239279288873906407350170340693343094690236106414951071452008620345246948614843927348521844378228609170536795951970298863055127181674251660062761047514893751974530580950604061517600426334541193484763978413857096712536920385814242531790462258008342677658042427122654068014028982035625813632494994975815281289969188501610424438392457181568329650575949835914550653161178656261295792519167012688519626172688350582856397984827423167678221808389056378913207701781475090622972784884599869555605251712575837451910356711401971421389355937143972667938208011606135668667321238588486365739467095389146883473444441226016104615972760030387931113450286828904013101041332733142674347384581284709397925602849405570419217118161154118117623740102891231680081918656045801747962287229535078132050199593357099189104901938586411279748236028264700310258329989343708492898399047366428571355550849258097141189369443851154154579339883996957408528121171148026991896715718821480661939053008643492231422399119047404364467865981794765856577494793622814457249187439964424703645720752650288863027880203283557299472754749604074382701431241608725739228141947089657445234006907867947496622036561594797045866353476383494735285864104506697459664922159187728707024507470444059613761920724052052555022353267648513043753462900756504180463767121333068140541861648434808427353531004432759470728603794493288983577125604057389806709001430693245434078898396894443246963170084743136043121301520633297452517657483339460761157937532670802654179351028409667492673871572535537230015307397365824202908580090055462018316498624315466431881640920613203248870222461358496836049736363851749176321799640864709846052781240224536464278795626974884207855063009173146499556553667407948121527524569723563283879567099671144023427773983574803426799864317610122328651754887583508564099256751111164016419156687127926861612254784493078281808961277173629557854084408012701732918549239011103579892299707727878104421587862614924101931665024010601046221128347057386858195717229133868489370665114721728952704562902335631976160632974478465572344872566803325673763772391900704029431328783379712454905240517189692709968584920833735501937456370301115827926140348454788827096786064785143406460681840023728310221144900870096613442725694647974624195101868741007728061734123408300891833598048706402264470120632616736307071348929521496885139012756288852576784431497572256957228260798006644449091684884364055987397432603264697820414626856527169398382943464967276653436288400461754937815898454463945214902735824724795114132967525348985466583602143423995685047917638040777851583350148887883710599848551563708540639486728921340344066101646702285253822365480828686205039858997020788663094427789589815877591843050948995679742209055289774618275520837885960175606620192774180225580840543821403627902156872108200083389651974447370439802684507750636386758138057247436993900381310328066330582664637884687293352285720420265180534336608922881292025030326261146886365247942695483092308108754979324275480275369519314782790332349862314692257869735726892974617924873128878169322603553010968447437397886565091010415874648970252259981502330787032153211664664829939756310566465518195180469105925654746670966883123304677668687439708039066463704539370532053879311064474313636427694364550278487766039678827244500680160856712450770778582687826045218156268409669223445985439988416895427225752763539770612494927230639425921978765917366348679232570010474123239713383669976888837671701333688682531694810172937392634385512692724135858880680123746539543451239832485053622332124599271633584629456702069679198559762884458715349285063842588168120342691345233162862149508443357748262636996923516292428757613742603738820914461898069302596519361455749844234715128334523549937319783323993612405841106899716534251299901215895622989134861797352781507018867843127537701689466523327046038685761427222600616682617875082338099966618986599681984990666437404326003396152609863849909947956450164334198110989312109191163083491193080268339887485964955893138198605762374258189035809375537314426589260371063690447035797745578204725731707399485770599214647597132063230240687871681105466475325354268587855628943451232415184752466494068831068336604226604676799719904719414674973964923459927833060378432347944352133958669434389798822501545963265212582815672563957176461329726404781817089439893532693688427994545426395536058728469321702521277615895660658403216693739285860952004396252038245830796951010247137760264438013456079370863045041335076717575021601949455466544571983945773066311062946530530551624150387229848192296976135406595850462803718178607082965689444029530942635530664631618128902080923310415277881627272094047133018237700322415316715488894337400537205152925011742756416055212227160327407366041192305902782416478149977042461748800202312672345092261262766551847173015981978271063786812479778865542172776408096605401849774601113098860850825530356547742348305299404410537068699520701637684886559679584227149782521154298757213983187895279052096598755112257624488489610364917361606354768900005974085246464940439479026052064992388637411916912761781351345516864394617408889694059779244246238476059826316385285760874882633699220186708177687713103523088042675594335705509320741064725029325504227326027889868439178344098161952473597934169766086398288514026122525103612150271864061036134985434706059261130528878955097618065825809754157094329007399841660539708875694334915944147805449311978380286633331883690208173396812909126534425273120754836712167241212370093755187988162988164001997935539196697721442106406346632113363498110325032511086362815981350082648438897255217909862974733985339844940556941715236556434104732338763195984159719248309721507293603839936572200103228628835345139253639948976706858450322440355637813114092896182363198974417011853598574675276358543350232673706778722801672838816004911990152279177942393137981743205326564782966995475647199712458194578503326675292626668579675605796159853196594196330608652476202901628377368174376257627586524131062788656256543291173163544165967700811308061570796003551858031641150933766810708079331821883628035448033469407720463935528841744004798376515491028542976716693586201271516282766694011392683441609661571312798255917978785711011034242781878365457049401439869422304308533589051884792229288417962821838225765101924559562733884357086950786327865633228462245613827390154518519786358183191981844270981368668891295735041029616591266551018858219203408148610435986666031477794522654179310018642466784474996674001748696604014067820731476360732024619556733941096458872682745381284585658706933981074302460590546183334413986053581571620855084509322762813565179973395725163874902436334744727202975919423639276550908059293110965212183494777684050804838574984467406413698766716064362391649475166397675458950141870541541148927284377564093637826208817669162074445926074514810078848502637732377237713915670107544504706191843959795222277218474254957280546520197294301070812980021418891795620715961417905978605709066465865921340977171381330556638031205268638103300245205341410785732630971638703422828614192698994005676664282688167913950297115646980346237738507898733954626679774476013408288591748560311179769469122293119208441212244182854858132823468821982361256985119868584528963445519248166471708934334704424141126975188962564684022213717054358388352660388003385915890941408791936639515426475053474143963982005504166996823923047903278375522861137694333258932677026717563939369781779153751203602243060963765053758405760586021964443827363862469044333992496529223158148409857812839493562326582799319612616954891138258027385474791246164885853489793463293918490652692654106553184737152196405177510958672719949022064787265152402469036420613578316803597763982942541794095080471077045988033574043676451696554124230832325210237483610345987137042368406516121011371187193360412491048885211279034571486267947942638021168424947741104950420012992191372614614185910477393808332720454097038439281650304932905782580890779643817879595700778828190290450544890817049994675175680673171998493628283128238139780218349028726596566730341628019360663452824552254464512841436352083599641999574056294037911113489464983052086425798423650127165720582394787756525130200807121749822209956889644517293726831256741062140188682422479570719558951802369264230995618598821710131557781102123437387100161667964884145281870051877562461708597754605417365059043839749138645689138636378490427150212281947121577941506773191391059664142643490579739705747596661985699547330804286848781975242661342079203885180608653396910564369918328321445273817800673141350916259730308525823669449422013694241379259168755237348845964863229677345963166768089447842706824785500258752553148608156483315120117250823101131287334448175296374374249259363572840878720133940701470106747392102959483851799016918830409339547987955184929046158096870113405558684483598409990907057000745372470597439784546609813492884807095842329530759778516827955698334205146966201983858392790780773875321600012171928722962725988363238713909797444040951392836283723395210664552049612987283984525942301517837261016864108279740590378907961371021088797670076466274891918889511680787642839271530362094416249705651886011116881957555176317068444812152802176128969371832308361381841399691822293392993282855549597179698966357738631716215156301289610618370528416005858158100149492619231490059005939946635395022194184496576304573408280543213212183774442020103385978015083489351550931555619845980559851203794674327703048269074816880436210817151142544709741651571353157388595690217956129883160544471041714251417644279824609176469724486254126598066308909301968810875438718589945089066817804326978047099919941538569157725824022085526064497028188718575708266148150098307815819254180630436942917477272538310774833927870426438297753660433476653902826693169244937094564585664138413653292999159851423784308497737932057440479374245407557650199446491751000620637729589250471722233516365706610493000137141994874349810395184467325979041819983333771473696651982012886548426663012763938141991295181059348745839703075699225497010087886020928434713368024716414015341873488296073684174743329280664399015865007732083292883246633733627293988961059618852632553041380075268037172590753841856688121090272090862456598220022604536289688237524782589213435494275772139442260294930837575700243934409843178248642196134772963378852956069563822238963545001972102287447085029827494574248337760126983873313079370043025184148540448046715557945358373257774988795717805697807233589814558600673608635895992577715129735406613635267778002920135496727958022783859769488913163963086530084059604440800562328463689130461780766446927432607131762867264475894533505769190991775485700430489508719103541909260479293976874574655927198906166056608386341944020900409410842029014296553530679784404246833000918594175567314554474698914187640168200843099654025718672069459260294991352628291698611202038630712830474322694327487091419209788964699044200273449487176353163370370386733281473383109576159387183188205094503583413504577839489438589217066264703043341016638987568408785586455922854202316946047163256775610496097505468224654305770836558896264218124704606532455166824138580109421266200158088288794361585619722350934814785998701073433789210933116692793473210956038639976502532935058375491325122815813991299752021698212076273281971532718571571507498307637056214672340421231703413433648046382339054146159561517683193061168911467102033984111712237350773337990716667310814627427791499663403648106365594856122664978078900581492883607539856729702386322214816866382687041120265803533235765756982715200334426689893162119069282432651082204845495384262780238610863910252400850973200506113365848636867521804422160911544258539819676762707470250766617640913308784097984983024673928669658891353562290380785177399022486434173454174785847579282319549951360018314696899350140531017548669646564755044951762761872722949899941752504693333581665627569976259285638031519860932508205241241634742860521585415330154241798954022574967411152678916533231957886125848419036714639017201030697702031775862649791585612932197453450444573671002671994940229375734263538589552651915174570327604269857164575169839347331874343946178573607979915564055791236914406061625385515229987379384824272204511145312870838758917322517987903935443260661967342470912980167217696920423244746313884004373969833956022177969952244070604911698568571909905825510587502696166374115927594917276500101537494463845693253045258174529933120696946474292479330935401095779400263894372839629334459904141809841700322509544282746372668075643890835301100658761088981064808863360511869213831311851527627760518531251380597129798075551488896724301835324871768635053208325826545310432011921270589927721760275190404235539147133121053191991509946989548377498754623963334538569339747147227304925554248151710260810258658214734001371131160919725505503901810391725698533652186016581577426864966681782836818466276005491400762491679058266669433980387514184115167030784664966541680986339818302566850169786018485410839070051194812885220321103579035714096899620781149697989376813776393884607792821172218204912801011221436584307536223888832517714235473225348535693408873772818127092978362893632289258892867093866310262823308431417337355038117042486345298137837346323512411853858118043663743474355755147619875969319679917482519870336043166996156740988057005139801506018371001010358195787884232177952000537090152095252346464906883441052468056745251408777802359730008211555060447218416381534857359299141070725469315585647647393239944623267515597879965049804529719530783764818331426092548171112368397752646257489507087630904544522383518888964790118559665140528561972569067748883310812440186845209349021017203016696959328134729919396558234800200480297718724161581129926015953193843895460184971555849911479300827964229870793505832873280772910417857238770999335748572055907817261061939740289709214782147399883013972528502679846053238963094373269525446384951160539736385266436478408041753536287403708728704703132334901168237510991537363934118854776023565089820351744268746609399861408695206385122266880921360211289797184472052435154452034070947420079504229900553371779394897879145961646391270216334955491629667629941018239758578148314690695081407776339394711062346276489609071273726701820795939607510226743339007831649769366195360731448564413380038107820480461482943789968347871468245292863677807864774952022559527584677982640542672192938043158806570908275389595697323999200733509576017067210484134563089938871041614798995962466115199024154828210923119391853006939915089579392620942184268401589155140916323738730164248609467855012922320104011437211560472387273217414175033662727248267455475120068710624613225106703755446164749999910456646095775929352355629997100294926988008385628458587104517983105815272414290692815270790982552656594511206295371359750625403010690378238122860257971302298608022896436107765858193583418649783172297461937110104247472242181378703949392885351575255908787309178565410328018192940762778618769795226774146651047897093149447308006615904906761909849138072077488802740902689710723171364753015676227201600121770308695198944570950766000298353307015438566128516829562196561281515051918563757504128232963101095134172468551406619668573910073730555026951263557789226055692368911764130051514525379529793221153224645281231987862406413324291129913606717040970013536578674903703765811242249201453016260366139440255634428885131916903487944180735093046140433407139924652942622367742128091912963650360022226661809707488334658275157970889111347379229287897659504981994340997614662992516656618377052236358186391731372978363873984657106769183766858158370994455151707674522638306960693729107247149106151174316219990876826975634962978916665118128416489391086421170024665731383687738133527384689624772183971409249945171773742987047964761322423086706350380089782851580202400167813524810828102034339631849985431852023200717837004048433014050298081350351602167750943218376561120226052021751429759831036664755111298050693248011552954533665421579387174026395514868499638189769888201188958246375022260931071979868291473922909978246448823909882425667770272952582819669428193386174343847082269129222820013941920034322485781920316074791628495890862035112271155957338337969208160478197005828461934713525665259205760022713893994362735792691469388716534345522419759631130759536515813524000985206591804456882443298628355182068748228332706538244205517837935574554352655552172210910274831509927462972181528813317045965843572413249945290877945870867494621182401750913785352115230104155864912321618175098282022110054608357798052445648597317556384187601965236602663756108689809959616758710890574661304048620884578257390418017043646826167043748735669043439533412499118941321668834748571955638308530881199735414766989842699592947354213881177443915971236578746715650090476018716618675533445595212031336016853511416839686843583004901323075860405682988714094575969543203848457653054194930249074664856851661170517914911486791437313169878511553795369403875233117414659254128865595294416624257901583977076581006166134261227923233226674284290186860389130679527388334639018138481293410409295934876743537193740654729889489421672545861578034529305188999909584613362517560365664683384060404144776403864013785853249883379343408485818199244976844632393288678269642542219129490298254508000587546071003874232114248709021500988190495068332250560626691048483583572763667408218440495657385410962046911196236163325490413872814031954991847856879673867203307429005425877590472517086166470867810104181867093214803326978537688640044250837721431208555444328295986962263836356439316066816550282603805368752141795797066234000760232006278305051704093861459888044727461057625139793632506012494029912956105004221772045259462801414999631002555066514548309501754605761809401663960140595716069831993781871390192045008888023985588211572599554635373453758316858164193776707523212704239498297889196201343966430535502644563117020741627850364152764484617590213886729785395858641806925104604901810849854253186792597182715415924100050682074253299708683615045512003419681405744365670624709024138033789718304799226327537532505059261074860112325313983269750664949193553074700825601663350029111976577926170080164219877444640902439178101840333515044124896390263521928245342103692497943763673109318586294930328177382358122461663241717248917436955590377760188528323271541074397587794560869889681436063356292829202043463991216182923969764761691259924310354130981985425373914715693524994177684794617666716633913164457623540997612593470772709345895057038640584880931288004565194908483132368750050007232043559327962573519006816206254910224987246551835739211540946201535446579028996686595041627436985159418504530579132997495323504120156996038523212905477654607222118186728142981490397597757195687987833257919104981981095664220525190567990400023148107442571590935002843389360038257257943996091472187511346220890616767268744617620949389742914676851160278772784959066273484727236759897041273607987269731251098415826949693708476211109446337105428675151951993723162516984532319250693456418494803643819049951441434068549043910587489314773501802081853697799777832909232440248588060881136135510880667448418997288854455943995781591278993588922239157911993205855208635575231685333141824947067674690939234600266049756279667430873546596197643979334229033622100552266601577944032675339771149954039614566368392344389332596412906134897921089256609676622343700063865669319258090759897459944627883452163911615246977631606414984822125944705338773289681460415930112293934989442660273720204310822590089175280957242122492019407471537601412264030825314742711829230835509967254456851600501740880133396232923573037401123005265182136507018142188349040183778807249481108313291220358802766224355858360440198904076367113116657878807490547302396426018407488089890011792527101830844439437287462093545731846228376425145322403532099870423237100441857338881256647181860552188756135629699839495947365619982089419640866104281509010185846649011021573958246529067527383441582661822877924592007390740191251952527731102952997481369630761156151377405480447131964656207940701042997730473718070405346465478043343503160568110275624106000818498695115409537532248709171898815076131514952003912537780540435565611324461045059927032423397043084163698670990453614248169229409026810257822067761533785554476014131156905055286832243391641155340575821972664321267435219838476220952719225595600523164236270962973723448765086067386111306089256986576004457241374597780445200512079601704410987815976992257368364326144979776876374789404207711752375717706237023012464189100210264987345990181565221408841859160897265825052079714498253577411392483818848276559642632878389321137818207366416893636782862266145079543017430462580574205292117815822574681140066805782596453192159843867705997359124152063890476641314684167724590431692446683388356592555142697910198418798707044359401866443667389177224554796778737399845120681203241433513462535397156233166966972677643274763269257935187282030093891883994454077653202361182014350918794548439051914682877475529985621508908424412326129647431528003692210419616691946950465487250630001143567366344548124165204797862201808155241882981642084435166433176109845564813414158202261594204909209413252253829236248908786363336256358171224044248706025902328777995485643583659628638222152718607911805822916904991573379621808031323111291511337524884576467650866076151555363304240115329325132530414961832754127833961984047673851373625366484245296990675249818480279644737449868015613317279938036868717332582046969558797170096614154836604092779442120398444384872919571474723756661379583864896751817440283433678258825683674160387438036314943848151739985194494828203114260946794767876744161754496848685179621129252676455704038812701003224400101585416054071282980634993923604730749425967641241816231184324194624751751327853613622477741135315920972759568691500888595240395556162657876402311102844650840086256639975295999206650082598297898116941253990543944768709798811721831702415136218696916780269460482248867516953297603773484696907244362230329445201680429372835595603266463673164575861209283102471652429517652000137569122138993645694868603142387932002753300647936042009818336026370455052091506211123298958682461939184209804604451707756397616078143175024368467670552615116966854578917719760943081482175287829337773413330816859961468072677488478806057366464000983689779138436098230316005587115711754092338537388271695655727223333259473010150862565308624627998566759688942926531007223740796244080878900453806274174576158548294909665651643811903909142932508020977969604586215493405815405884288568566569824900836432216703321098714582455834446107492406574483103110648484207378265923213604260443018109207388108960474615106237303414973173316374530657316914145583815140242923247923491993297199878799002055236103228014809746173335393878041458902962084743200734452259741541921108156955673612864806470886802337324352196708968923773178249117379305752391263922175073890558710552313186518432502472919571400303771087825178625409030990950834419061402375096371872770075918324630401076736825016238357895075423231018543431298738048163286916513134417162161966987485737815441693555981862608749288274529140809117126309016476080918830109037304040745186976837032003064340121313511553489936359956302872117599469758227680008807550855601091008205401358776676580087637789931978917322143491299066483220431539530714310153257952859037771674909661078610672192927305426187036123067887314982217645177976823181476616355480054245032119217605415089254799113877895756402177425282688111680559756992648082303623398230792366703294611102204653675232791714187366959286717593824027579436165684481026367315051127461270215719815123505037412406061505978439001914574772444669227803240962159442443640629378925446740164352020509856060933392137435784030564136664659980549330966903948279961671182569023359973393773385893114515305920129616389728937635288469417996818178989487797586815811634036318178338112529442435707050473202717732951503601078332490836086938921460464151566442192986863343306731194037287580277049117420076437587887226824587643536985741597840335397404256550742076411084996723994767118221844460452301638561831050302677973390059921037053094684665283265238259533458977095837183699601383827113664061550675055581672876415219091143568403605021896832707381141702793816377539931648026524996458993293681202103669099771151730428562314852912697706750682376892705392105137053225482848972248873677793366294016690908760568978878909110552566980958953264673110451005474878438363243731043277526428258676892515204762647685673867104982608592149041068144773690305909593005086023085571057902006437751344776670401368716439227310831198761565275356363570313421068629851215060613830079713109540965843463424049260078586873381197810547982697562103431025745920829855737082983694404467498619586768201816293573412779435400374709021816054788790478256507256425970581667707871815063201367862145081393458965873199912959043291406154143819475115542860527481542488852707883401641869807358360236934620447939345709973905342318891796634715973474169036679203271141127441884434818892114100324872334375169386255144881387311193062699035895996287383198814380238603059208261044904822828242337948170726894732741064927746336435664345019924339054289110655312271954138265663534507207335061769470872835741322527947848985572538093421395678449112625931005737672098014379002935682385605792232823615732116487929168232295102997361435217166261584039562646488810980831582354245747362123070841264373389002182868971184588507994196453473700013858903540026578219704841552580626464331244544459674976807402899938840111809970828194891024839898337328255114401673455059017929543548295709178735629115390826427747091740893104812284010749743696892171449156840909659843488365777715889036409866299998227936276430475985606087461848844395172083466728411819613329803959215640966813484499275532118048453926869698152932795254506796318453339144732642075948170455287607965434729949323312476565056794362427074974611459220154907498360852914552237457096317397330258610038347428289695900040662703752270781369213799997476600830277754163563505778779423001594502345678415038898869965058561221090865188034102400009969798130916487286543213660035631151593383183862569315856639102054416582514166304873650246894063996078369566744131985335476668972505894967741296395514651525023214614477264246349272548071442873544038565540096881420428685680116426714466636239028584654775679408189232085207159686830292991917605690569013507264035444257733430773134582129807054602460648679747558043567738642775827437556446435852497991207288541760460161344167677472485524015649919105395093867351957160553599202810992549054246308586239216942607419619087240109500619601253606072958054786291815392629475915563799991048815660525366860007381620993944284811137703667499028249420129216311252575156771251593975601258607550154077397473061872540457873518846762248803678175464313595316916807514337400314358909613391346655311435920052753228340643933647416759334453913434791190167339657484434553118399724032142631284563150659417787881812107603137497223512306198488546560310330669697030758154477068679351567439117319499031305184423103179606498691864256224630053412251342548434929569666677620347639326545219509234522643131502973112512120971553278399775823323016652132667690152161011278511659841124494916247166846920378792393126014846738988327438669417187508397089025389637311662412663444123474295502950043246503911750096891030570742575673389287745579391619474243701137888842100539522928838122510999998212118573531993989132747445274442089556655743520827795990203753283215970648446490216773323251577928036842846854713191757826024904822339759389503938898658467456615697914584585333332868481499031324053039854037397292562441322566792122769659736299744576974374084867906993273288753401373466640333095145819939574164575235640285386570333416148773510118744117456033520121797197310101246635620215017192007889772350842805885893769600002042895522885731039827205162339722982245159191917647963981294325235277334933793336013703765537128768245860620521554720770306688184150723283755229628942020525725352816213686879863910232333573581211163062674318089581618908151200836484899492271629475165050997949292400659397420972611465902401599173586583945376450937315561795822514116593019335468099367769284628464838493824939466387701145496046186320443044383167810671458645010097491919328539459640248203648040049086816433827117616814675667624112965694759007319673756098764084846811699779561796477366017286349050185180996497362240854853212658502343620784794893367471440691839765463502839416591551044626825296130690372926980597575660569475390078757637681167340160612507618787494266261605388258117639993179055223802370208145252195868669602472856272332653874153444246734116998725362409573090817449033938145455192867002348623147291452118044110350152691241981865389332092511802737970942946599446134706222088937134230685463174105656080668121220000965843109670742570482784366483863439021405363826175700842948551415414449430485454126990201923886596629072995919799394623527312774407046511963978006370579509739228082100551745593285491722121280665321255180429511781714168041711361351686085677526567429946143492524068535667869908157859486214630046347069748094513848242105244736890526655087376825231415167740390908539389643669477919357875421908234605491243303423123453605438522360973085355003542426822937128853669754003945980772786133964374133850700327327520007390514441962154060668797999148967826746731605612861419333621706407487753015920039651544621252367792397958298235238640609770359668802832682039156695859092601657867807573326335206607313672306494492646252115331364271847049176099633072326655117421935892297273052958045646524337246581075573286643288218822328420449916784981466807869983521133211224605837090742850651559209531980940205247021207504706623529110584289313688948993438536157612394859663464604975166904141242722499776100797548142418363452276482574466179003599328111778364420838655237783329526511030997473017539544696053751052109402150260964962612675478308576128780001862786032065261720396732271000896109101587252738581093036822321742572077237437094638088070353964245217254073664867492528314666541248831341663784118634880269430290555522837219846877195713785198880663275470545857633113922848445047251677739897266395388744728748373691464941088839178105991115537551572510520116331690911561894867408663242697169033702248979421021390151557405678760489612467147787615138717274705339082800808893798068356739152386048708354442960951800764373593121500734602364723088518634098332075947941014683697604149125144425496331140595134974973158521359301071098271564392152262341928326906317663926093270672768328537752588096734111753411562233032213276264091805970113559399805173521395298621552424042660575388591192028644230284649859679325864671841139518663312122309579761023793930343448360418358706655542199436669578499315588444764348310678195034957577300002347345040954427901866441077542679313289737785087441875153363449632569085230500409148703392325297474031467387325410615077427533513222436520587834497872138978399706687007800176682020562264957931683410205721409866537153007256927824007020662124926409266734134220956644418246293294360475987718017648247799994995937858063048973104337849191826898961939795579995379703680498861729741750661171755762299827943468152159495184302060136423407628114889850812735805420585013036528919278425677524098430778016021341367014539531216980180688897796206904296785222735546236071244855388058199618388466645200237126902483729035728014115862498981547056327100546880717645886275822323161721633295041454016379248371779505631725487102971368019162766930754934388592289407264480509058133134839299503496318618436594157591051699102470669997260185106016393333347525401562103880349660702127871263925185977573795881289888093755001912575505538663182297999662876300472545909517427632265887372850871482352067427441688662148838159252125532203642398524353355944967122288669385487407218770243233169476385008605379002555209532922050204320449817966594415219085893948764548931430868095308283648276745804276336607056444832652118176776477692372951650542898388632605549317529037783703539141980971358673227559667247257916271882595973720978340201884208951599160712562452022817771477269149776561763216864199002660173023267525525249989675738669389469856522614971329610358458846074880684191329649412233595249120247266497362539156108552064032530614404556220973066991321464771323282520101447785557932378832967982396047404167924884965791672289144226737740386026968586894102676101158309052439032902897444470685059497001788350038875641734745522024095024789347193492231229155060046086416954619613921638369011950757923474056242583959507063053923446867195236263467932080224708665342971096869016425001748446475251045605948456920517660938182416381519905767095151419545284555099143411725916140794075930575106863128555495770479555010689469865062159308436505072248982701217531791694886971307838212046795105433683024677690055519083099634361737159976370109097233134980575097345095283837460988087246045648002106894779813342693852206340618731241566696651228698748283872643084652595115345713563706372011498846979043104004204825480796425746842577396493918698761478863246428535573939157727408569757381938176253624989887889793357200985353929998870608743299382205188715759957772816898510757019855452693173780625834076913559243421555944278469851387800538922770515652723405948386047312558697996494101324524817054940080405937108804622066463859833738721619142494577943817810127960603157090005720016909794199721834405271851526082814671519178104037566245756312429117355058225054374478648576505961017656260689687652053855613823743048632816039184409457897352890120419070150714195542585975044946206288479851141636881488085517819980453385427404195491304149327123081097538183429726797004841666894665046536175807850003826794375744052682141918859495135672456096656986781020300962523523141214435830161507902312494602966058246660078115534022701254565862221998101997121798101387024336249916383345055074248245257471962578460656829599322706965915647411949726866946565073834539349969456872921827503378091659363077421779212200908689763816725078527630724091533708804823220502127338838108619214564508249061104969693585446672632638525195845653389679432698924216058369025797674964270835539529387804586426516418488299209947708096230767501085014768574652261164293023220121139704548491151413754167071844819128938556582221788050665762870059311323061597762740365323933869414400486594363239911709469724694468389680046048944388841812650870365796180585312078363548410995167533346301160748326084222754787537261509041219462625808773291052917555236556824458423338128210816739459078458863450355818787735300782044568614468232827110026456698073168563068385339313400509399179956105074464360330130127485823367898807476220188508245245804876060370870464867496202484239225922032962142381335077315960127808198136406679624564285679489819746893210286728650223473417615388139858611358892939128725502329449100002968990716735389016427745608417007825479900281137839461829102004707424215769013744393956713030536484014902168677772596865997662462715471514146363930439858042847932760558955548593011291435944458678592183476637479540180504559024954481353565342756672216437898098202215526267081394106355333840916819328640330384566556164195685460743005327007998935706310791534568272503132230608920114474820428021766610893625937865566880602620118798401528554541015688449720699605014118751922563577396772028094274246209588394989544763922161634749810766577122461707469150684983591185893362229339777430247880387532901144931526671743473744769721999385785395065657516931994216191495994695070413802841551153430153211286706854388089831918985813737481309450694364708778237708118302708214454786560762266015155275254565337101916077646539166491743440662756069364815407045032216412339640707029526764004331226415493697226735679450497399047983089961237447743299828437238557611840622837408176521439189233427891295352784104550552527830867773996879546458312608610571622385835158253730936066648454841545503010535775817943643649560654940458915489821546168406889880583809943975622178931168363847363754238833839616430341180439497407533360900603867507128270192436452945621074161294961450339455011641204099850718195830260831114176352963438263819869291156846291286507484538680431748078739703268550492353225953026032172320829251904484323719278093871010951666752147998607518620066653910951871997604341865603403396933674309191098707010873567898481502301823681660831763573681402074567576885200135046902524172505236292051844515521271090490027423236950083047691394042859431815073602224364075121507802041006471958309940908100412002571689774449564053942724324103202752154894088131924837712746910989935901603876545695665562693793496865075056291989397951889510509212407024678499920052918943894063585300882246001564702902321515269043941572156998248539686406948864552265176509404139981236190208724160299425992868595720216651287709619490370812106014381206118821371373417339134917382813132922956404478357718933258227316091336200251909698032602023079863749483306131038884347554805412947061415237281230498393418050837095614182098864940929285238046741440459328134753277963550352519621795385831103720423376293076035265124808573517722045802013428633673082212498040662527997351918371972073651519574083443361337656281599151985601584208271937713237897412109630695772509377099850647772124730101403206198120558617825089985186308189803420070866628325989847958954830333558412114910071326430570803773168342126049955233427139006579017136768558729990045477236883593017015172688551684907346097606472410015448504564971153587248531955624493319031680399750167961061386672440097684684669906082596630326575391097557860510916694007238361239624016467504971135029622689537237170420288874289364822303482695987069784942237145875935723005692582341654022669846450585269215342377934766242780281998786636193999298196245056211785220438100784205578008391056291976870497387335341057793545291686753494520429160390126327770493881957803664455114965794974488935210722231485701706962424607969862942691133025293641034217667366791502836028885319993552601377042048108338323689394112310503391314297398303803754204409721738136417305161299417764352343903397208837910118056083558179671863127824460746146782995814933355886840761629787997190185554326263578148507947552824568363323755069179500521707004680375687059818132068234758521430410248818516704526722633310302637866397805162993723614047855307997077760549216263885301230260333846790179270619774882988244504638327387761450114642043327781068913619932073933701628519018708660486547330792545743128941605516505475663411147750009650639501226693445888615254472317903820821829419872997132810515478111384181940614249749559190674938359379880131794032440552416097291901112544625665991410658423414371471907765523251081384655026028395765762740333217430513967038857173537731183730023468052274373454354395587980652226076290011716352188130077170212144653103365757264884657007735287231343619423770153580475804493572673710181165647699565033554292974098858765261455660425571042147047721288803037283406209095374641177698151463233315364110065711912102426502744584872729125913119362456859213024884699179754991384754923787630153730910725073925677232275912079484536049908962487515485886094104170243876839909468402059483490952451563235308533615894877507988648857809205918092666903169756663198444896209949010370981885006669601592497434044344511551639004002460067502337687572762920249302621670512299227523157657825989212712802329561946515105962370969378826050108185564267016456324075436322769437924812292903018166529336669715992114377059325745104856438576082560479328074205646520317962179016971826582532115016061239618681784473430901644843038919938011459421109119500817147307595762666514377075631308710202687338992602201512291416304725176377818403336951853831318631927979737671554156946706944227070172804794417840955123551249647776313244430508304888878086068734075024237408473223625486420172592773659824993769579834051676863786170435344881093981191019231948834818646861717149987908869216741639161742813422523770019176984621326531301951338467830868277270554903680672474862358606131917230221631451211702073293873744916177390765883640545096059022764820411613434600117921823923322651036878546163293006928709333627330561542580770154771941852495890430616625583445601011919790984136636734236010254532499464602738524068671621846238097085511401859066031017299815102600503464935931113089392555616902646454452197343558619865492334144939740055213636637101522813862909610074723421859972861700612268611433895810543467241155015384451040222636129094873552766650308827119838330194488190332095049840844729777795060415458830204197600774690027196540074652006944652372398338850243714770426935013895939805372924104015875020187732590447048299300727030363095732966579095435896391675122584653227201980484387288615112599019857303912751287157673111932013573653154587955973942179765509827831106937032598047490596226497961049230558926972405666241798553702692644077362776169655710217394637546361732917929559781345324915179025512927394175821865987036777692043598743744494945804656405530782748063574013809877020729706823472000563597107028807252308066817701691924415996115281308689594970596551600487821727319218955902978294620189631426188035828841902647364477051754553987511851106357510492646438536899417095516248149014272598988428093988532940305202996176032271799178493997266365506340704011354332760308512197719755925974325206845280487481498023462746195099708233778855457657811707477404166036439076320511056961316153604423077502556549921085879007853794941261069306476626346748491314774925333054410216269686390427416657154982772601807711204560291121105606416189097414226379922380733815975175927936441688365965762313715798046327837723310107782797184541725570599521147223605645040630422995983633683411439514062695317035000549345876524296542862718457115566628992529357169598149619844312496343445699161627351601522727991702636861142451498273093452302516329820886181723006690317576367836528137653424656450480799974405996824904208739464157156366241407419917079317431955623350356549911680983531712547833586713615345570520237216124844497434473782870608354574550287914673921782559118799013341861308258229567770438475214316003507021990980568637213364065173535141080447235824841936177931357223057793257339525520663281454272342464355950419495086118457168305224822360421304745851122003709471185832726824650173331620586835313117411284587260286066765944098542589225498152980081466554289744578711136932635016023027777144316474723367258800790311426961318981615190252980845474765405805723999149597733623195858163503178151275762430351204990809999561728297922102103767788563679147030396955256649104562912882055299453846111915943483401424638664795645526574654004389944215052565305264515799157249232896278380067275097586275985189072448134788855749598318448995079399349945256022149661321560983915917501344701163089865574641035804155143138595990372979930122727608523642527528058396006627591308127504023727212530562216024152376123301446785309967037246864795837678774506927734033064804027350399958955218914615490603619932365462191362055008067171564089695553779884418304215861032188992404026678649915487990191387220078569699397911357088986501905650149662143223368865270600477135707766211191393017021179628879317999065377720449425125016785988146991935334767827598682387931865695184928969575417385226450204963654528290314935340627297898453909043288735083290090888138525273482653683707298167005674845689586919613295555719767726235055042342004095509418334491004509494457862204645145425801619070525838070347399125283297006639832580205601429704307361826741217122132011131235810462930907297179233790055985949422369536177773056558650104267680515618557904894597588969689099365852428551603596776206402163472418711864639776170647097985873717276667127139206650882039584391610001777456377743619449617708227210283220327998353415435597618976181014677454881585686497901245162616616237092160321524637889781687286228090838079509720454973902585641759112173062908557182218286634974593529524020702042978021201424553665234039069266494342968873555144206658479194014175151580626662838127876341264770094819932185753639812629379654474546981768213473652332123685503882537481325691975940828915371259809066630430312138364853270037532997559975779254546190986466710977430572469124081873481211731634707348329850188905525551256925954206824835123676540770748139701943012514864223661138059558985727835555055562892327170751989605184198151585222659463139638889461828433435055531926598325029791245668101561291120734113327242275641319564079178918010616518987389751689612627479507825090946002143735868854826364092322037416600688856125395021463914370002201922532875439183920246658580781804305628796754241430886576719593936599117716889330533594955270973666872281919718240200312625675202596362375963021173770700425538067825672275251493626545752404663806380852725591266523993860678951961170025959371977034010682589650811322114208719431576491422946040705490149985586515571615018482992439382742545657447670021995092704050182062626544308339957687905238307453393877854237977012085053842523371635958775702366380130265833904107920052116189767517613260235323631149688682889581817139166180871796495884175792904003938613098704485215598505982229578607847335624210815125053109728790589327590213320370794909015872655941686128523444431477983611741966822529766691695474420180783027412746355951085804491774845576085393711042094118047310102781791107572207464578509907492297942116210244144203510695723959151997538357952206783777123819969812952619127359978086002406222921762851902507276237527235314510361380717797146355515125443392591239903060452819380357775134744875996179805259915089504048914658505102591181973297557497967462139234871487097015358816029677714638159076959160473974025898872396257467489491971741878848261777687159090756786646641664960945222257334818428618219951087892680652701543187756366755897229356707429170989406635582507933203779832236990438055943251566996468514185831267803942241408011608209116091684963846346566038014062935101488510742358269407568039349736113182277432301136917980267741830215436863062522688426355539763299290505603318118035366716369582118055900867132796820759179581017303665635814856770117343671465773806319564516717606682253061723536108979211300444199767726327173045454252152455199892877715733598937867927029661107708988956534407179150703155148055372491565679348892582183034807277708570695096562913024741792536535626937820133545241780475732211169140496577376552531458713520821462828251445153528626300035780360182681487039996693718412876063789588799129986582226084886076748509508746812043605403540138400267153113223954103004766132694323621354196816736161084775889567507339539752696441635924485248855443365630117935242452813369038628677718004675840764053847489998461519057450560306933105807674146685772285543830860593422757653055167238148206608506766652180609743504102442544388530089941113884410833495192680103551011704340151846836557286900115744316211243434187865600999213544538014000096709495618752788942426659766940262204607745487209958113863100413739340703134175877155137795613469475555676274717238915260461642746381252952168262789339898268566721706934275602162774003696435804193306881989731601298555717749308887681948620674525807768657379790907034735358793367160175873528890818742461765637834107761621219528109832547409992545197511101672022239124357673223464015817394556620572989044963445044213984713911730598632743690496065944535982554199873275056742126680153859055663100259481544924165039952128328259364617159932432856784987393344082789524595385922189934201032816116278583725329158890893619035516721801032469665388099010763507499034104568796329163534443663904801414375072180153999875700239749365503398609874316317374827235741776385926713044889978957204612545103282876747730952599725339950231444101721393494245495529906951638286255441903069177960004554631759560703968813817226791547069304186834441153194057359393466436383211451631407405952463771083081166080966467680960812728843560734634635343450684928514072936310619670125167578682667397123338818646210254411632138645084870569154393259038007025588770284940738898718644894991013586843008445294674495181862019458339037644313162685661368483170244767364616790448715591681452141130874919044792347143871785694963956869137285638573993526200070779944502312070293798536653565043533429971982723328074261032899196275112742031952696464535991981584484278035855944007424708980500422292623321399194816677920214458861364348054364706135604644420571421975257886691216105636292401504272205509695805930130749543850162409955933423708823066116010822603650077068841603225210385610793797628444500304424728735969193939577738381290382794150895076534427525610786728614831216046483758344037762534041388270253777749257250006574551328654141598058139847580245656585892819779675096935771349409910221211541815601792497130466937378015266843544725410190946552998814641071398799270068749315014831115822956289797032422151859285101959451743329470700540730976344818736387888640996843105274443527602944181776686420288909874612773070533110253604732095418962363210513040568395429296327972355422660818988653427829467415543420244089864345546402298739164209430872490054107400467942364324224123816962789200859187054231520165472101370677864162616638901292597219870065600546204461918676329539982249389667553863044766673903919121504913485887885305880609327962232696136596314732402976365428767033291705455168868350216328738725572569579507918772220213860818257754448055799084363264172063629335231686942203941841283777436065602287341430143978761911677116387406902589077394416121328659533704568968183453457364780702739033569631172391161089483655199881419701337852448765435667121076472866431964917120034611708138802755641195325761265331768036499687367859966874136111912127713695941787704300617704362066688968663448572028786472247325415949570166851791165865413952881886952859876391587754023503075067664977731567945231467964740478003489114933062717253008071372632542724666400123970629677858799355237620392122714794457139902181113424273686802425738594599530178307554067976864907330388245997062559027447345014501257487814065450542822265817913216166923428220526632865441640201642367098015848261460121036278234205387648573260373162732949902757760290389629599214997761196859153262257886639017915623848173164727401737207126644793765462363671197320297213277430175622990708082903993132283093218927502462638221988672139156927526058668723552110328687394951008872154261392863837286888456698397288173932020608128556472936817367769372922667408278382039113358128066255935882965266528446775162378083704018788440954674034817937426482032139904589383339120726324740602819571284511248036091469932467680008748314050564964304210381319006224351558606649541269354927242106550283691695769286612631074838702080777936167188436198840464554245960767577667225590418200624722908696706174239764049401853679940685240970009717280429694979831447122071888848474486846668299414465818220812950355323312945435886453207483279192003240293059436178659710106242321907037238584748142198269649900269185714144580435156854136845327328947641316491968209905260150421831377136181795036760499194434009238677279007800567380182389596723922292134171420497813925481540815343745221363079136052924534371925712432357499373407194247976967210916705935353681453319301589497522039620041623057946794975293368197041711197463631159688949462107995144130986073577579849919063799087811875122105801637470752660044215549570140995290645626427154690603590830847856298464134436857442366086021645899993025680516575493875285134621100789639792535732461572858221259667962386733765957994793938546823054145877306240503242481928662652857956820380288019884155915506545378841485040576761051102674559511476973091704282327713539827168768626621412410295937065225021000963132781939949194222532032743520977490477216528028400796067928548926838112499867877416353176538613066122215256100388767153955989801973289586498483262897286246978138076179277394985979346503357913095550931953151914609806273122527050965068637856321222056819884289593085587883271413506964719834660096093076714410094996540442805442917468146472886400296222065604518752162408172631621129749705683190779883757183867347893132253494872589977793402684232399411955727925307665210379692172644434413407268155725649941870905392918808374262538877223777968370504812598808163095865565628216068015626311471653850625905249875183812345027207452240289029065569458072682220956927657903824362690202934499541614292144014485476168310538248298925345425562237926409343892429735416811668707335280671480351553155139143385957918185362828524500253177862949841210460395412349767069458825730399569692190988266155571964619680132158275261965274109206578092094711670336520080695143865467428089276998477195744239252276265938561307984167741371006275240395467426284609407853188699246778504153159579755582256782935977904141932831636429386943500224296663454042606880043605981952311624269994201108671616824684565478034745308086084194702072906946113922135210803114595641540472985722370609932059211780765794101033315870538349028229767633147323672029444843955743272287080378884992114716873621188714610567888824193518464935167208108356245720762757877472663017773217568715870092760357726204488452067867475355068138607808518353246278836257027281031479768722284510943372760625533582173436269797991022154282875281312237916394927972614578261132975322668482320978540038349061026994212488479759828074324834223165964483170421492575270366929780606501453370913436002675781851609558951314596613106668235868759528315309149074261178494378576013186023406326448034081492844522290312325199788730560550379446887473421690389076798372148870063826794127967124255370567928125893432950944097165048507547173712606970920371589756145379814041546981559223116381281558006675177841095035080877236671088871044277571147965901060252098367408888787400982877512615125228056588710926579053336530334744639709912241572266726758928145174561128698020965822863437603172002969735977922238945793640425828647613485998754627492161237674749715917073586121373217251294913249283212652933363327816493331777686324945854238682954587716872700127574551468437583777765520678374892326422489439891852682434139532614284167167484648299629837304338858405659298440022102070856381582159492122331676206761389904822544591511365730463557255695008875168552660124262609013232600606077292477411515963704366942492361629736776681259534877415666755746363410310789266265092204958454992421622158312251950187945896004262960476290520707827070501169891609159710101960503205908467754477979331954042969159133262497352143675596351929732841485853716491548867707804486115188231744809424539778978793057916280181139374536659247661823403096562244472696235152431621300566030098983378241927989496072707241826218626494456402058429115829936666604443169098239391618167772589904160141936939587708750149302499288035362418412240000219709297296173618229643684596911162095787821875391503971334113812684777931033691189888187802387316150383848152455971724223336645949234477038590310565909477721769510467994257802801494187598259230906233533667085975146499687440004329445897052533072794975685136537897866547672200370120099785662863089395988614085912260831991414244290832818947327276133031000138802394864546454856770122059492756171281680198553155375248093402521822938888960486901562906441376677639497607658871875182070555664580996141774990447053683744052759279780709902274334699585438938182061690010641086238381501130844240168823667604312570591051299573710607370919086930273439082610175814903956984933128017720604199187615472560142787825694909867638447459214641421842825388986347623309776780426193894436705180562045284836615540420097192754732685927325363896530910436842742925001352413343136574753261144142256798752494261169690420641596227184384797992543464231758657442866284189419822505057866331741973571130645942925465336879913042667551062921754976248933759621361811252259321602268096007373504322977542199717045759259586194815271596080822369401765072107564635708344776481962722782350535237609429452789684998785031977006878399265902382239907974198206473241532002049761389193778031642590152988073659788499482510449806579963648124669549307698516989207642321128878023541318414761886270865739724662468798402348798439420133968012003718494579083758321519944157480790964026233466377108561197133442671299166175720047439716704571651101814507176437992464936335295397782405541170935883912543721320705690647033549850979208746859262785723447894847935773433577106404347363644403307738369563848405859895297165726370450242572525385685948048482636477926000419229284462037643003748636318143754328707765378479988255933591354235493037844669020155083110428058990597456893812140983435327883687104033016073089482114176873658981686592172905839686672328694222653446197744817118200226384950354414382521390117449536512998516589641327629510810636156911006475239168012426218241778857462584870025573766974289346079217275713660622873485143365339978961215120203077827149055020636707760075004373727746294690674377142411545347683727030674868909812475865473408121677212317971395638240078346121493621360074561388073563004850505791835993512536239954998925145893976158731705184794203119065031231212685892611371372623618899360680088795424975022391032460452847149105292388352618673334253655773108019422586238618434524320403638611739550714336317629023264727662644255565938674089338245586717479372360173069419584582047616639698762510360847035587871998824859063665318461486911695800199139373766490602369767495526831943563503888763500559185771974512897582477352185889528347773463570439606575456849252500498552093061691863602779927345486457776132219109996910002076455650211898532810493789475053214312373668646183902124768798580744685986069193629261708871725396375657770779383671615697306579828709039916751398358676258622920312665180624179440978040667520185818710389865529596551355882504552532741579932657482081627231682861209869003784963014690228292192107921774883168551157661777070226423231109496670394997302574589238646662981199955851676196117255170746313184814311516199878707517879850873612312039565400826311545642680202192676029723774823884036032577432657954994316542261005416955911029224177284379834573214759220595133209738368081981711812622447288907476410751562544240381619108790561145519621160946571430003776440992596249965540702158665843848525867542520225313362496206267741553750096866438214432326114101825587712449901216755540958583306943252649336776847161787942740154184507923068452593676662111748649960602380493298516662631951416754338795970788586182932244995784430478231547217729318462620140819874215346184275990319013610520839012242794566275463610539590918408383057884098573888752650781106166267526970216741590152299654808946441089032089403404820608439054485913228720378068852557998079485225572369248782095206836715939652121118908285800954231850813862502694786973051030470691105711620667775572879564523461227725524041872247091944148196703222714594028963411546414678055804825372327161890181211698800890474541703243702783064283408886600212472531446843919582556923506085745142643171423850799732975754530034993736221503014448302278906560892617367847243113866540220762206003741448500464310753877869282167353903331533719063456446599653912355613775007230084080399938127776862846480732756034102132176315491676083814643815607088384601574352588938957200600568697453115854091956929248206779211662757286708832259468290239747392787363507532934769254134564440321778020974862880864319030106458639703504157710699564093991826293252019033421639694229680977911741606406672212539647445457845254199242619165921998312204461957223336793666539236539235005364205901803359539635925703976202414286835114558853488860307222053070662632831287122910677244929095827378208239129380812220060621119861628437658334164664181649965957902062128966302437283280196621814988387503109041331137143913504847351910991844097449111001613782638985594465854524000121468115456090817615834385790802908627520813927248014922276422816679463875459325962053256898179440635497647910177914552655866905284182794820186171131952216046252168991491844682649299970715532874072102313288121814708371677699009898455666042813111961263462233536579102042288755333033129749994744579691845285981433767098033663920366326576348876659788259991909724146850138321660999211423944352338294410191340534079962098070491032821925969872835400812605185059020412776270523750717952084906758001956913417967265149041381866929936668547014110066519073367303328136831820239758600110011593356803194968722178257653635100900185081130172240082548699304396070069988941758682643148750971810625444634253261661029907557619524000078720018687766114044175920018365923848192109154234404532239011715526715093038589273564084281128922513865320216152038561342203134024298373983679497376226649849747789108830775329571494849432215147112041491824540366448969223298312819666241676164664886270503170685806846722994765431208518636774431449447071455520251144083420704745577925879724778741949504600611957112779129184470910678798958396003150717367415457049539126125722579565266727274723928755549848149271591792877200764123947891134429523638172979027432834065018792281520824758994159142414590540929071451711903531604476232277519628579241080812887583356203906877534631888121586192785858084303737486624471922674848688083633770486623755087634405340920377357565678200469330119667658541333475691689919713215193870172704714758344238738218709761492998703244399380695920303940281682781163647031133419168861995825967564577221717683359566805639446365747399473230759749425762269686552215834663033471375910369655787474548568519672155569163608646106515133436872408261751842115047614259015873539074000320068436465761289874959298736417165642732286116577622751048419251456969422951915842712195060580446696610879265124018869759172893989532677546452445394620022847134081888138659053952458039698081462092710194904250199930281904034052665799570094493063702219313625881472698418479144259790279265332160750832953777488294906046769235964465729939700951646801045933555739861133169071421477245512819944123566254504200082477397864031742744237611172715398683199432269491959622102627737896894566267886013230824846871924835228748502012599989229009001354750427756122440108545392253813586901745776796014888633739878143968711577348134988313842699134318444127502716133728179861146339657218149143216779641919657527063152819121773774045772205814527469357126716638421922035367731612587024245638712614660276936140814890682091855656388114432730321605617049307595023159250726175328543505511015983708960875115212590362518782941048283120943685758251429452377577413690052596333570933109480462628705785478224534520127745439069722065027284589356298229112871867067589073918975585551610742540667617602608856301247334169827877781081021341055866665650014505832686620879143062646573177684899411751326463579625099697624711660793008360755559555657132237266120342489209068226167847719549306264223248273473579972898055139733320874590769558284641007459465233832980399205264515370502506994240174647192983086920771031994896918898547883869732967037947098819198401359124521274340307126477443539363803609547653373724443008076739339862760130338856937871430363868459697094850427952038317620225438798172647509410432764466241606584868727195855602916084364039138525104180478240544096433789419687256443511109557193828367618548649969360041760124814014626048304043804672247239813638916727413941956528052840660294171790970490780946385035203245854179938455042388366428702705874323385761346276926526236376760905887993223034378536301334062714983080309755077202497822923791110784505402550121908039951602255234958024718803618810693552103079959937703089981263561452544236327769510958760437322247819905996846414307371103067137140349104891559558951450904393526834949911202185021970248197582132970311342445728004307480291248645822297718327573173254044508224582379621470913480793066677344771390535822734477242670615179244519912633643205649118317117789799045889718003209917092760821487525220365372475975607751433261700883994628997564863887418729836437386167424802545915205280265043252715966219288453254538975589526110900962779386384346731310815797189556767928472856963703143738334697273191439729960596645985816106544419740828138350084175571443775228701519777149301261745693693448308621741393452742090613910967390276631316959615287146451128194684565867500330616128932551516896681846293218690015230661910780587236280410200766293822381971487660511135741294713609380877831629962109422955422297640146394131372580332675901392947706053087615596030600211080792036185538951075602949441814027331692687666596862864752563832540967158670724942693398532638682562944038075234092391753310803942083454339348212016927446257693935873504723935007260958468605744772341538297779466238813901084682446767912503384851222187258886064276804682576567568809161668895487576466362837217515069991252688407703961886173846222863965479962910280642002094071475962412880118106339885359929355097590791580473795472309696120981808741401369713470784103796605880996508797874272337994283262080308723925294820455825500998005186449459641862403005048901406238753846450823473085017272575072052942282381451455272768157866449216690871632719381594335117814123896689311431126882022936390446268890237703649225608709813414541063196392268850170847789682686206441652377964353840252614603539604765807734688516743969362514385426268132789617799046536045740420651755794990235729866505065478623237486009398788486509938422647410203512585996899098722188266813953801365062632021394436280552289977789258316916846456320900174072460406366516882076399859276367471586566453266322879811326359570603477271417039932565892712635287105323853235317615643560635581299534322139245535047073403396269868460375050987203272914485722983312272989234539364340187475843806225740309644950681695381307705932771321130562974446151822388731236831434926529628153165507000670511954973300211676529055344751371219149426348875587063319036288451604469730975190619864379091996403926256376615653961751089461738849497673755434549006352392988367878695101395696524214673616334924301905224634850419260170819907664526538615870593259970101860282327681375394660751045220071019151538485433411381394433581193149120162364883985654577971585143724083181729873442160647457049925542132353851633529702766828513645253745015137280026046336931185984761588521942177933430721604169414836188758695252101831291580332812395356025793872746137249457125058351476977269545167692013442780720172145306237987212654889114260574895106518427651750630597854460484398662077412575868970493065908360419989857287564240777364893877793586523419395623295451016402601134419069020959651017508373672322896450382646794942974618049578786352844169789533306608198600072698774169267453937766315631836243432314473319264017178913480279988741790150137557486533172772906732484267946967471034388771718746980991648288735388963482634890604897841738194929355953156349219039170132916435397865080104887346078644427291788813119849280312159356983768939289345437232853115743931912424364600566429987017876425772194744284920918303929985697148779828166849162759977640840031424482862545000287898369777213505522023080140751076802516405170061174486130356345114423652694773713101627257430983564946588539058550620333195832537884819386069021078282226037550905746678263074935843420792552975765825342325169600213641138962026058240844838856208121895872474612144836798216998459959432816631082729488414142094121030688607090687924525534976314820650405864294484172175880322765355386335479896997574784569204673274072854992158936036506987807846164725274111635896103093171075491963291482132070947114633200718492531479415677575666452400820779152445493019997141328484678446771827961253424370841130759830582012449625123654519302769046599249338980233777479208449282012795569164192198565424660531821530232057053883400370081476632620790527631284104041787134885968622011275573961586365168067939318086068530152828497129194820625186729024698503632121067769453275977077488845082697136762188380226719989641442523866018174381751482560738830658610273333791411033406154003614809903400840521492098685238323164397179893574487275273389682417916921767323271000640260207498831632656181403442182088554559775232417717127912808762937997438011618792889112326425804464777824056910576496482053916037549802155511388638258175335707575952532291238758375130509966280162002881844573669425673568703853882062529429638727594812898532050979829160111511047427937982445810783649904504145414643485027852127427973732530909270912481031772049766004297177480912652001667512760370666806791889367932675718130285171345587754024970028929989889808015268672851711980277004210135148831997053496185425416255550466466933495389391736872182646954978835098933043614395948708573343072349564380641785224777677783075645776464782771304597625651553179901999472212539905657793269432937831637818998787198233652865878228703368068174295108983310465003904461372158143685725662277423792690970498847654955518746192671398858746798923955841053526740087964900832476297191754677387133067564908666000186909547110173377366229647732346139505839016913910173053666165953149520073792089676385089750241559386913153716656936689590467983404414667657088083085705794284812539974976673170720055886749395916928896920386277845863772895307542095531283552593255443555563042390414932144492736798019616276025743590692945006546065913185494561849212586675278044584018881558766190621965597423896669148311045794158651725696263182143064238038271336351077033952525013063417581379433143396062652963856860977748191348019341671396451072222481391735800217653696607792828884398598458826813656633111277574645138434216667042786143796696673945323459686589025686648845288943439083670157392881436986914501239484103284029730875877939492542873564531450679203268087037334548692692091408317898537242632195859622054571649198769177922884096295316992771097116932719461901397007083897745216632960824401879576274983888063776115190492830343103621370308959009477281668288945015496681013149939777398926008892419025661645823382897928059810920023218947728492078970689717146333573337882157436000525056689298103410871126810250718220086804564427978699594891115846509317312493341484510101841876857443509939792179791412507744632984415577863243649562011552835533476347598418038070751345957861681988838830542877583457705824291377739352680874176070965960465380581951439444912646035242661623696204159878763280567673184447230659326079839793429053891256472683069217612818508657208284250938417476720202240093596623287721444986066454466638021228287752215851484571797343898927245540099089324749127419309495430983135599825950217834495873190787446292068272032645338837088161964245145314930780695708304860140986924675342268883294819533047781844668560541865592492808451425304516205022969211351610627707646355666629371121085885069304651699742852656039525010757244262514208216626645899901429835871097562925916768722943378993739990390705161424252165886037992165444796817181718127219549654811220151476671868117404476883090134163210321738112238394262707208819322363664553114610729325894991010475242390661496231496474374623287662787726904665416484473156948193810971565197685351139975631890867029697684646656902706445587852048831600481260689545331116240641823961497145416139446842985683351531031876103159150443564365410282975082562995426776518669700402634811171292004407307388647177588333341358780491011442534235967538928804632950050078509854454899316493078160559120757297344933875665342357772530262140928621951290903666702138301040067576746678020246726014335047008206826503825432287866484409600346723717882576855425724150817929918726545930593601559760275712629428170166891347839712463977344999974243710869628886840252805144914901496346493902079508048525900821995557939184322431495601563248551187854500155375351317103278372934356292372299941505559440253666055187677430020622009122097071164612701832668059703562832533310125885573984373753660777309760342661769803340269400876394498291444651192752321663283898554761159425787989365414170698722057035428294817241752664883205688678358228572858092042017646097112099708033804185440709281482669885780980664927414655691845419700967935630456582909267718069096883398764776896967033671393599448861314841224085571531054746727661447450031514682587982510054680759921240597580253507424577670694394955603044057835100593768798225286948710786218529836780321836101597080907023931939596559801481672968077454861154724960669933905499370482487932839541080788885470133454587897949812151657570820892959533353206748180014722814942215473582775501837586758911915710677635663433270074768055280489776652176083635506679579074457109510576698622758771054844395609132008179082365468519885723735151119396890265443283794075230085255200192424514006711741021697899849217410193453970622649702620408723619579195334819269574090744163542193918809140021986359561901609190201695248802054190066833762588164022760126494769466474113745006487285149692041954607333830104174885192752720202526051429202196663593780663030892839316490221616804765595285023788361196392943699826012834216792048396140794641443765505950563839649043690101961841226993490808158155078441010169194455137232964065596871632665628822414837423719999024685425071497162550739828077061457676046899573821564159107438214853292843732757343509174498558295516169349790780843667068328420383306691878754668172717687923070592478254638868467972781544175370330946701266304684698160069849421110436508740250920922675576160278367890924424012310775806841617515939559280151529803234621125075001515036239308596113262071797717569386412200605999941729651517985585663015681481697844098932171160181838903019658796306843794966113820127326390071785354954187339806584981110277142368505120649415009129521370235691711878355938527128133486532161689491019949766056234145143508484681028756994560396064298218795357155701141582577648843903391019557381433781173360905550945106169954070722586762039894554298797289455742828086583801027630916766967618774013538242646538361293030453755992565212402298405218739746364975035168988848855051366950036154023085454217608065848650426472047372701451707153029138789742492617376355348887544214311815852790179886743798782665210497682047702051542412675854390375450294740857536327082956757327140700649727723654725217219459472618547673289966584520030279878216896069613669058399296750904005640217385089307178033075714031664298293684976092137089481297342149044144436684837725149829967007487040191604201987277090681791167789598253777579123111075855562539599981717489700448701814576004876610462264472013817736265593438552930174608424485454111357049238455918042007901927125876284049009966962085825131933926728706999064305487252262237323073572096039988426885553045825199610601343746612752176377328773693532700344537611283821056840372518416222969302622379205495899575495151620632677791710451311851774811582326593002578039707073828158194831450188393166208514387357178205330470409995451245030990902720719175700232617878811173520843913717498661512846676378454845508643586547559434524683989874313473531902437841290083926144239240968456411430598118353235181120628073652704725952439475585732948623842728878431178996785038940150811025514666829433469304794941693615140497554121641348771341325443649554537939386646253226918869164148624879948778206071044386537071461805202955104877406430639499317637351760720508149812444973806092646862227852979467522469124616121199187157779382197615800044425307896614113182651623246053254417361403848918513705565120240614298087588011031714409503090741083154224068278220294653294046624068911361756389902287357952032819453698929484192764854465269794559878182078362847587830927216774214500146940548568717436796618580204984250778216817532260851556600295887245362897477079507101127215146465947649049457015370585174044287048014697295867963417735995887642934729581275713395933488459308116205525620681046404317888599361283932825104507321566670680456488212407103641588677542145068115322838555362171222366189987587335211251365793206868857487508197605604186812398089199693082446247571019301579879432181322910730817681007180852581123317841908321905449998679626735042180189392926680333236214031456177710817241459827240710914248604471976718038320796245262375808784197162114916937220062314791375229686572720427276056967320777851737138515612657997743367115532190053880114706859185199809007183736592193511048735889201044386183682268753644742388377010275926581097784227898465745755190407550952954718611085221466170423148035452076153786702292792992070842166630500635290785289781210046746602048261363916466064254760304915025622343395796233651470485658862376119403916596366621839913649775466320909337455421976677884605364330625390749263855751690689015399402823060312664421463422893625107492083181868682173492146465447084019397724750913762019256507353050346920865026944773018745858804439225424711670118151926730075694603598928130308678170605944013516986746512725346366425100626439007244946826330004778637364083974262427867717648903433732564357845429447885377256466741235802020831371926875685941548223106216887426089601239071015787811924980769051661355036186855764610469280949036440940659330516328274671073832916845663944910075830569271546919332457693175262401055593630320441167863524405378094707249434586051603511647789927502928183541038371416224310583003843095883650199565617135762936137620870211412986530861315651960101844566787073820141170913101618471741568481281022204923528356365927384784735069742444286498208289379245553547099457937193448278788366624922581237946712967461734746117946183680427812344971326842432470579764861557622061162499643577226097119145034787310107522185620756109728682041095596712846356760871453512888461469327979610807252118847646294800077306814542815188313367371609816637349249808120870923475163495942212663389427995110220642452278374545402049820402758952348011588103477114894247564173059779835240090887948313184433574366480702291949452084491727302848609836772088972063524742046876948256404409856861519120980068886159824782491519278196048238052209401989980351252376384749590730238979617722689734534643068463599176059504515420599076771415989236150447621783524141629164809755153593462788694273002235084410687623372743882089328992475153018821880527094251368032065046899656434464666422814610447952393900966263119983929544510690535494475628070300519467535714229117566022822659487153949970087931003012562152244332496790379846353933001850250698436909003536458447870276437037649362267498592717615587586716583295863724943322610526222538341709576532891548146925253142591863022719072916912059900737546332067290662868954647952006216729441113590988443860652562444491209945428365529403370136253900534503967437644917691719047028086711950700217474824544497211421918122257190686744364257953314484890887848227461910056559865185982344563349157330555181592850263036851379551279280658005966804003533016849486550834229769132790223961542694539309684656608106567137902234597930523331798121760788421634244791587359509045001696306066414689495206981540064312536193384864517824754666869983695586975914529263314786697373343214756469044241015614230728417678600539300987144169969853548953756847432932566960363631208469998182639472923378384167604229563500332378776339303418760432261678482447065880078422909268383084885575704096207919316066292240575083599532639093208394345795317812720937428876277567437701933514232502028383485267509186323805902774018628059009050317603231651817920875628273104046228997460582001325443821597730415292042608021303590470009336050072764203947882101907154458717580122086354869553363258876842347322292731415359701701251547466255847543651475349881760225288086365937249284031079053623407864345072814992805567136178198737481040676305973232565148129821615877389217637669117800585486621451481212050703270141669347899824356527886036659263312311466348903549886587237143526528066150190935126469785404936079588075724599448458321209274235473175843299422636522805511377751054634956611078358482868141247738304161968213506508154867631379173092382149848547437753487677714695212555776788611739804671787450921882907008964755843191085516625210261025003954571543038980205618974856303397500599800450081624823407775174767133157402829343705999223650020953642709812107365053437270632125927162066707078345654595261192628857120465849423721428687404198619000930185053133945046238429750683814227033593533853746506758322415357511326949418646633018355532781324153207448959215108251597199785295765394546522482858255769227517001450787843195929704988517194002811675978829429201532493530995382852195579190189760088090698436039926692978355994992903891755128882579284738767875966911787628215302764106142353583857500943942952789503745502092279446627822859202562823464902412345577970864139141093598628688430545970267902023545696234524255548689104850685299050807786701027541017589965068760734875448398646175585763721330063023280646100805436294034195367532818936711804946465186143133377033575358352647260306434482196722159297945823862508796686608313206288515722756671835433750064843238149687739994624870271975614713521052441890907749296461877950735710791197114981372510650157460294859972315015300947786469496068894303687431680734508124546286708002590931198773072318625312428837988840793901340201761541565116040244921867283082254629717082622402077853141914481221266271237586092279738182106116529835842114255999676692347884093697346563736789490311589601563972559436655594854898039573059162871155008672347504234664533472486599326437240326165646382189267715896754281506552870756296751213700602445376256028581224144617719637716215892849793752735225948378382107047319925725041178256303999104693293547244313927381780794144850507104892874110659995484509652208300077136969204320901119056888222461655466479368101735806667335370720736016020641808845705815968298663539990385101062173449713875500267479735893211169384820221569534941624435574139366097457032746103009446677397933159622125205371380353057945871854607763486992718314564324929760209107022565245432252883390985318728213238664294905610440112780654703239136199861346229064139476889235075035515727176236336433641993401596722530376461695211251098964041834811222159106871155655246874230479564051898395566816206847220726257564183796331377139120461316154093981740517337587957589587079291670181829070252276194408757110535873266580484769510736461580652071500890946909697818908939729036138839923565026395818643464329961463393772822785263901337925693258430148148645128144675487570806574024193372765036209924487785485837048202050744808950109906511117803814512873115943655053766326206506815125385471157573578476638114337606364189458582076397670612697520805338219010284054804872775724733839490710603311594943074054744843937759506883612012760193685529373974304835908981491314527221082097072482361246320346178168693844426087545701859573389868838744581206947531891474121047553353128755164508111529384477100637102045074144156524172522186479749615452073308378063113060757118004149899875203859821202488837645115895731283956283189223106062789880671817187561465524015775305314946653304578177801138655109306982753718347003147527842722232419042501714742207234316599873507596056718252014083612046255296525630936015462916792295873394915322229213541064422594481943146564328995263590124076074412910874536489455293381146407856741353876857797930403535665090233522803313068064355961437772797460240877738909069824156735217877426578756098064951970980319888248950848641014533331142752707181927039909142332766271984367738796703445064742659496606205139172197884980083479269805782715003861731703679578015101380586106920924033573019521172332422240122008568240756763150817506163510646027448255307794122481829718417186051217126734415143753839174841985482591900227097828848255638537914614683078980405171079264161310136813355849012590474968454065940611131834796139427346544731211158794972364985701892934424068452158180910165442608824558288462716790910219173062211446998864665403612954003256577121165634529163092230862977957702199805030834530771068992150017675886290601044198784251692484746600430197294507632742106369672632491646405170864615405174358481272465491112129456675459938519747590608016234302129862099586326291167264030627959505881899054270027571841993004430709592339305095952289158314263981659472069641737797424979640160390312759360636859150505937079326090614099838810814117033570628639761344131665306730791391023927187109225980979278773426479617764142448968067873889201732447938902057954900833085787954330140205738833708715187857881059215150181062251238081789956100299643553983512898256808598849192175434916174079003321004934590526749188405516638313547649615586457851379936515933028123462600740748944070360383512090977471973889741867423596355413821238559122703320613879054285078050408264539252387150447725398088287813078720506070590283127744567571757122877392931201651581306411336665319689307477920060232812988483910125965597122931283858781559283774923713473295734030746068749584069569386819396828011435883519934015597089747706042127653088243350583210022254695993823641150117797180047771511073375182894277453280269617084149922580255813616083937438897182807075845726945643908476864663059717432445698864645446564491617300187593676126402304929605811364251497444481939719269271814968653164032947339396333031142055845265682377641948956893440483630207477667755833177708864368316678273386648089774123682749710994906873069002935116234352771252851870440605304940294936703805782338983243794273143861490687274300572193652193258971002962927469854623122480779350592499560043374610521040241968515317772305779951181271023815939858801040559339457112044353535320853923945685034467377316765981202403704100442088758451305154676114383896165734319970348738220343631353169531617561475791555099169390527980824026314976036710603323899872457917336197805171239622541873030828778816094839888439494607756835777584205016207414499151913587595739393366632641772311918972532766778430949940674627962492699668044366476948324446775284461118849575135276827753344075390122875928834970055687360507143133737082651847941228156757384199921274214169977804920530072326507726709839687351061238765370540075811665416986835521406947839137347845919674731153913534659547301237882650565717780612690372747165270448286866213503836501250726922688643686622038436858716282533685340170687459632673481947847394734396540489219209381113949171839460755243693788031799885858325033824776054619728631282123363365675868970114209517912250637412982188536666173044664589803591981702583087884502380094284697652126715058937228079283698689255306752297042294841780320375882200797239629852725456210802373882376742392394710110210645913789476048310397960423937368178709684872906223582311458452504656818484783866997402382015626681903269073140900638457643955821899868420200562023737246202989838634158063204498820930325253825472545461183864172503941393209912517202744823938693081875817954079056345870277469363002975994970234014912139868565437532079073403610132306054476492808081765933815393526935572425181370078918987154441902970931351805066774276815848264892054085834132241625660113693275141477345868686787880380324401366709749126619130209457170533640381837750322933028699467300042213877118873115852907827892384500845112731977448910329299107391259922027346878759172707305999289464387217741026351659891481924252736270027791446398006018882172318935961692556229315097607545658179173843835885552190836970077964634920488775482525406235801466965818257508893217910834100561132688181921633477394375795443457925674815324505864364767620920470285145609174554435812296328410773436563035150278585965211040106651461271450790254771928584878341298697022025659047735242475078272925131993039564978099062235976914610894863101862856812843420946213585626689816258026498266094182739652923718620762862591525948906081700352757255619374580901870132356728445799520364732636521107595143695934511649748629559254603556510978653055682061212386325960417958922488927185799726853218900518514508603722255139154592125109275726828357900272112597106386218720799798652166061435269046916211941950519147390350887370252997540482917255635683655635087203101344768773735638020423701693740861059717789254012481738493034723201163355797861045821909248699903381781508083845622244225488806037424066065759793930596452969492886901734376308141333442481258840010197478335528224461842312637181329524913892646203128742763295245001193686057323542057466122954422323222995925449702188954516639514602370373353320530768193136972764159901963817393232026669738944312346969880159387258780430678909372093473623993355247246090017060862039776961751747701537056267610526469954718782120585696316505703665417424589406389537906299135775295784951974047864893888188770441262219327316049591448489150795553092675801035165189688713305353732802475691413701841753643599687676250168571888873959740489975372276137638472232688593695545453688225773160541284340690091673765969026206422036903648647805143535132595106745256558714363701672680243219417245330346639610618491856930330727593644326081617974044048998929471908875049256821651665050865763160905851272563261876370447299228270924803788781280734555071236183856690608130297849275563677294057897879974222698439198401800337660867382133546445119261796235973987038096660359872984712862788520815114738551455500891912445100528461635693805145226758672396450030794233440270430123885689419793819488597819132293431764903274749994079446134697123169635761218168206171889937778568989314472475330656407356136892071500158008920070825095704365869162271895346059679504258036787206454443505908601506604392019693141440769506816462382023598567448542691907483478170723697659280246941355017900987055183340668576232523484896832085644319486612279868945871981849775585348650221878660022568179199426921063349932736698330412407086286909333963002308991357932492288976065564971387825182479956085824037570896423156193062886577807511120035444891670715081176028294075770605969366280681581092136755999569707887789823717335560329001442817241031457100566677795588716229636630539888129763606890167274094141392832134491698030205694031663164004029509384105424495159442568525308711434482286443992208224787631952181733254323286796219291725765671226297557655369432216729762667253738277923178117395491231845708391445526921357062223428517186345735576940042302006392006494173760016751654954342676605162774412896183916547425743067505608519708853467483366978928276148560078352411970059586016248265195210272933616762163798361332744541068641934152458676354202127046146232894012261982686315618482328805956719521393563537312929389794282858963815869999495698914184306422572435002874159498659973892880634844054459283148407012778954219015121188532105993152425454740752732110133739848728974701234373083168685035181227681482424809617971204314051846420362439511313783417389510301786101376014672902480668853258393626968359533176821140361380666276916196702845842128448057285194938005527371058192559118083824354669646376193915338042615508527389729082153528773865833436198114640591662022222060599358380588608869850544724643180038161911606993325456729209292827016986400808546801787911590085813179267073052764438017390654143356116435581785663441503803802399075059515344721488651585591725129290550056008741053555078869644024271309919736866569988482967726596317233213508369114226496292250328660724048580074300619956045553592008844374356161549540493593622794901412833618554272648296427792162451517861755107812801917845415049918560127143725656007374035918781069470987326370300894768713860824739325247626787466176646035975786997334542851660633679034511617485365817744958539812044733947078231392158078290430755657142725172536562808362080061579244146081607044675855041746601092922708861500351226457214377142768844480701724829499225497088287679764849199987178793789969742108072573645542087359381617311506368806036548105088704091963060095442767238046081316059745466273417307988777238860716891690718654889727701758734303202285755503583481099834547514340280182991003746705274241296883401680525368721898505895611377922594211528736159472419739548363496424294880483849682563038276136122896992885075933863762652084522939552470346559770238499844326774239493142380138389039603990858276706085484973378833402313388570368576505904297695448011698081838334285993074573282582933725347465278101729248592767292017313019628689341856409234994500681366509829502176949023228116318773298697553720119577895033685215182100983198433799931915787340031968578830624523933068959817188658171769234870934632413886231038409362432472551952745388594158974760312863724007296039107132016997871754128405037946503333262665785121655859907490628393835168620010703033693745622933672289125085847447070784254164350940054205638787806599676485289776976541728261711785352698499134246272903752300213464767304360287137247110034540662488525949994897604528848116968026098844040526440594920530932252211034893664356763319310346250688254180246204006184887702804645443032689566355887368861322792208714168061644719981588839369041610945663810181376578908082493296361048201384982728955991067961870572615371163818548100241836674967143371627346889611034671663704210114380320333224699951117247341768295792439394767448834650448894034002417164935497681028828761343453551657268097132700903953602329111883175047030622686462361869205119999376569941720086502374305844423852888680606194452016486642180944882371572142091522102141297395814217833253820504245910207991690663127059092123866716907922834768639659837093120274460101001827858216039430184946517557826190570155590034257426839531832162069251765565772215702779277683472974055310840410453422754465965773096848879886829593230606674863021688990096791702045344521270329097566693923544557223558646338959381069997560240871177147445583545467374370608929304112471472160047330423374813111924881597106308129436650262775153787566350583264856978405676593736658817444481576431212456959637085365791688773459980490229871299833058080317892383699851636797702095435843027647735295110693592145872929484709809487440315709988851911191541464169616905277779578087777925728573140119600805714459320168075372581358590720248300765868607218457625931552932804078363460801516953134473216578713006366390278307224173915741370860765412647719914358841600861346426125825426688435429406583851406143013793215519474843495630057261564264975608940481666671473079441682192836464873732682043579078309724108869399863292116554310252091174510235792973766226703498346945881919298672418621232567204479689280169878295721396572108907107922346048524836361017904522713678211790206111334559711164263488954110582186576269687952766481568404051969692563332794083189523775569454376258419505637003953613331725554772893250977221314801283396211469481308643902375160921406361510619304948264867701699490274659266364873885259541991251740764723851866073986845024916251086627193763314808604841186895424454236047067904829957655854732366724369634570362948604827259688752255044326116583590984257646295852326237737071619643311612993762809726168087049007151634343504963283545394725862834609560808731914332026995706977329920416902564831698294368698355259192628275484086417382107552034733660006491197702499159346558191020763762732798806272281348277469995044176001028248317418816533564919809345665637821083870202864069919563642672193567749711945333216865001219933057725579088336907195347800465685252463626169680247283893836086984626696040867342764021684260220258049051086039309234489040402153962654998641962329033082296911703988882616295261453341827960908707391842411970634798905369915013618838711371082714614736244958892566032525623782360735634261722194746963173722364087884722195974204409183019016915606058561530686584106458172745922497123182899440153482462875008591281688343300877415496236310509188518064288209100932004762105364168747927155999384530023874643772445325881196263181771948728238509629094244408168825550519737431379095565705929935042883736919222742496683773861547738362808494127525072227341394024963816905633650343855214408383006127201769330646253453768300978107370853290915395586172802520348220554221071209271494769080543658253136661357799734818468835232318246600254285162245960945532262695373996360714876790815451794731761576038123122823267748317682527069228662465221344971424864069409482768250588662073294821651218308498876462245357641799584817051592321731894392923369405485690502163266221033405970534647215881778577483788954363726850861850571496229142147238681371116629899509839770761364480597181838435889119699785508053852730915897501478940330569276622876607180812147212092791137641876033910134160229032449611239879907330001384847220533543746340026198006365735959147432628983331102171296321093764793876027027451350144241139471746241356335890556489204434048831212430603183457317494451654404185499690581217290200956947533406182762942785012549400657474151564538180742039710578706330514857169409837258391915192962235650922001553519019949800607258214307769586221727941913983405000550271785402177860257117702963150320464446115440022760336591262076877358949136465816308781458977986270924043502813183855872236004906200257512459340640469764600943299979190242591894366596341163794584704461906749825920287992074437373162688083738008453729142973497621991870285688774017093912983854423949450114384690169405221726465384724770672162320454183007588253245233025565071310363919554492718253379857405158031295019390469797550480075742583549039937753059678589783714570992547218938546464089433688408249283858604526747439236567119529324715633978215390349328619981663968121975571567680123985658774834971827697881900266152735855942993087714016246633348655114497759032929689346408602026772926176838344664610685099542517010244419568061709044558917979938140800514996748272949363430729618280517967177803496250295825924843669330245020317397289085367284932971465345696421229552098554619682746809109609309437662625393683427696727684081158472848612361594732004040644107137416492552755855440152190551329354704205864349094475997085816275137761154097715065906949673255327459895949586632474883566563712405385823477168915531792761684837488204191177327041117374343426115217257171228658421714970683215447305407204662171732339744482341599260573704307390424589914713959142151229780798600847368354812790686731553011134914424288456478268810108324753510154037656705455529746821389703670738850223804252194310195589039699405955987897851555638965068465486900372943609982937697671322443660696323371602391589268817165386652268437872473127060499888753903799960828679814198944097874734420036620717749999647930092704797193415976760671578966257025266033505331944632138051506502929237442554007666941452409009384933652221493761025013672018118821612466752001204557844051096505563787942091649639132492214985177899392354294271807602429774194677017948753714945953009445363783260392596444713153804108988590513327759495200283769774553523070719405410785629243237375740099948956709642586409512274843975675701567029294199365156924248230123693064105119342379481278388015127043112359735021021306407652141002274481944265751663674230515196506901978121879470486575591353687488893459437998139416942195685458980008706027121199387184048136799883568110496481841080839632627024433169706003630880940824270653831292375200275414195251488838481168076323095528944244063320935007947302520779095163656432812722455439320247434712594622147631983954282070846185468263210991493301857876624182260343322963865126613157528256024999967168446552540599782540675642645153291502625924405607919964071087754301299728946073012050899377795254138667758505969801637650311412034029006276192004570500174158246002126564768651080641393446038755695486232763348595480391668544960409457639527570415989106356285998560499305863142166458897282465314262431757543039598573606692859722380488568940518099649497491372447492323008937566598217350947440457152513293400129989653167925062565270801150034639838632037201906814360245267422910238065510900020107757602742478513352385180115829194332756331773933425902109964212649773114184563391460724184236010335591753424492094507047143574047215626291275477735779466619883857277581152340825939598466228491602665799294664471424562993560185086453531676028094651668797959450912525797943778386677947803215009915417606452185997222949161873577241641650705924180065238978124920004088895689931426749750672927180198674335104211442458388528203121110877493424188422463772296733812983919405897071869849302441786015893555554652183668506034810748849574130520128998463034347661171394870298423708644071393105540939822270999640346671089792599347801732395247950117921163710592462798715027193506136812746900588833801080508391892068893413197900836826079424919758549786552813130522091252636139925497785177972515899604167061282667762445890608489563928996619966569862500482956822583369262207085781668858480715394692108035942005112150096522108786798962214661544231316251138101342014939114485634243820862240545834832903785958609247433443912617100627234518017279390972963030529220268930923601950531584641412870749550380843227490578579970268877772595670746609487215102631908256445066587733882884625020169885596958656895639484321035665858076678396177596110630546343228112037602075910505084582067352993279907470118289716821176521006577274561110799307209926138366029244147640204168031150260360054223475719139109086602050297190278703519069033662355450457551283714144348400089024586923929967469497604821729661135792396383993094507597132395880710301566211629778076894241217951679958112776158574860795648021861732737122082781126460647014251398777797804405984486994275657872095148017961764386660803691819299288749611565211249871046411221687358554371174158596577392953721476652275998722011164900953967133529273194827256029622478341019980823696339847542614908546901399663925368007349115357989693352382268504008299637437385139417298664290235026093758368439232133336380558084070616654514989190124120271164402652188443006930628137176387611977140227738914838725693060855575779270751519659083488783109358483761379803235703236038111242706821713631187625492762314362225568760084870242599269063174746603787761536311422004385100183610418916366134979666927754381747929053951160820706905249025809704137862456208583986293142474737281017632264328831416099590954841094680035396749250098349722920094342673318723270331617810817255220577091168161366541924427387600842309892437896115257410993680270161956855115917599058526532817134761382391987414975686793668087502400151555376272964030467632273038869564845043427809718572906433667665196839706372331417118729375978962840096408847150506801319844725496763439260802674374369835686716155557853080107524517391779250902218715745095733373942856755976945434294654404758998488839969224339849179509234549864633764744721012248139372247344525955389192150341339443291195280638276816382989446575954387744868796366191495054393990343938190539545795061390784019822437168815872752494972696117427868046159862120807930862975416244792385630310776342348535753128193102594470184651600647457144382323534118688032570653680858289365091277836089956039791273099073335631075116744627673571020675866690546230181988156375205102855676216511031271597432687547764351694476523074043531291185297543620965729517091719081013184765707915396296718158883349165023817564514453206262520160470070458573590081420389233928649337598406251197943719567291935411562480230854515717359258771437078518003229791969590177294872394009224142275122942287613183735552479121717887244868939988993780324829055427388782510663148192522384875349136218041923370071532973107084946042330942738429788170471575997816810896869487013052913601730533074381793070569827258470437956478717005508440178143055796558245595150291072390471203759528406520794613843930338345451727690959983516386363092847503703469076376511586091356607647335035564289255130504906508037975705242316026508070688050157481399917555054496944325554308849127259936623703949436373310040353020702434256150391898581404696638724314065525253205469955187393890650366319640077709689605042093453666547969707645172696097404507905634452286144092549163275937117292385510100193700071112861297195881445644012397829317850190987633324356285302668756625369554053330021656131849456550415910617945983312673690795154963396162456260245869595356181791703532303453489615642569582963776058751967521115051517406037976206365211051086744003330318307032242397961079092597779120815061746856394891104626190496931282762755357149402200225602956708471139993476942037707764580394846443930717702908178004407522593008375809830452578461622319894967796721492883140556704899739129915713213968020218828426404784142147027626845492255121277617837468787119061067308652309816737491504637271657593463005212497318282916771836491929025623948525649239328141013009585706159348868469411153826061457565370141951986132723333885121918983893258891580948273505827342780377102652265273474218567040725137124304089188271365558884573773584968027859452210237916543634804356457571446974572614534979439175034212079184007188154961714659633494320770039193838342055948199945822014000237834310544041614801458208403419832697988370918406983109814656338321357324710875145999051284711847210256491834805165593423579909132486260657269635948293831877648288110150371314646522973223239485028686300022875656307300771402162321259178205736787938292403342244921197553035444991535418690439108723364319085508348452136233506842789390090244363173121130547509373935679361109120909700628001445524862247731397127831669205945177392730109536346591262684535172494214453411992797754743832979882302113160808285241693586583268503841293345884132954355926610031530007903859812012229354773769442825588691817056054278700235347205855957703111455338649929227283029474616860214995842446285413037789789559110568795151519353307386120607899217978783404602057204343563743980493859124842818923212440375514230643343241043020111603068872672505434822827521916182457473892942250923061127352354196912056706445330201759989679335854018921222192218797358642750196724796364296761569118138103358345158736545938147990833877027164755222098877456391653077801527428660028323656175589598039647907577839925193627534468446816966174656056747762881693806785941354378579088382750240276324729557918702373252275561053565101490894490242712658520045554026707889975605861680349534059881690216156888493674463256162229659391744472258811546752451162034220112854847208248446771746990801386932875823278015681101929849043632990386638389117678218253993418557104464094116676866536827075506047091915782783075631709831298858026360286450238058574079583967205952017941712578112217006607484790205244841034929582133991912807033221825263777800039692886595927773890766609149036736538543772770800660483836289604946760190503443010739102620477824919671346248741240656643295406332980949539924140440851284756149276571120063866493547227402734217535743686805470180866315868877524879333631122359290507488081894827653248760486063073466917582486560466284086728387910346096631489944484401674358245004674798678883037118765231920176071959965219738156546247042826042794980220425086739456674475889390336210767430987824770099314211667136158101979491680878396412671169701388942031355684753728978243623261752093528865002625397635098861748454433893288987610186647371344040803683992070975039543825733210333595588275122780709209577247658269294380503306282423596568473536358421696239339010938219991622422115639448529607065918052926304844046295499468226791895442702523964337857090347197486380924153577424424886040617888138626449260540765149522269435349341059410501167995194934292827653590017185952023833972143557590770739095023328556410522459220829593513667676534541225290873987283348237726067215580922659523982169851307623956641891406206342858010889906449996161614730591436677140139554206325401663113027115964541830273414631677303097500393945180936900652583525699907006740795092182563494308974130335480548701563298948344769799417123262881467701512445996368227149710454501677178782701387684848619331653665337557396810511321822976896441387093646002215965663701033953856731338585938721679619463748445194627672386478941202394033825174399852510931436472441449151059588943708068877543115791753093562607595659317489421076421228455910878938811895033865300578833884042672670405028797759216985209785473344364272505999715429949515896242694930038305236926988108474403467354485568847429926590744236300952478590254050056124344881666015623219782876213079130320534269920357012638552768257218804820783387979094315095731030125415486069231755239434640325004732901918175509877435798524731400095949551010698313140473388782078748490753083696150291191790956098408442258933735143559241090568811304760384402351742776211499757957195004648810891997739671917965175465562344563998599801477240244875998959892373215228259974798327554776650346978349437861699458203891805357453829942824731205211211652110015491739091638238079504547159992307558215438836457402324097937430686569858314961725749044171346791674717269038339269467930618243547951267314320588728074405153213120651794550490754638106292127513915957121585686656276232670487517862675231502798521427911624074540778097593007745452398656955717793361887020078287947732368596747239373828358609419240777871463884066943710904843732671868199623574968759968264398328783584358419163665899737266310963326291456448712155068295414112759034734492035686858868413054461018149609915711871314873950966315440333032036548126837740667520978729980489374963212288083616427892813063647010650952731881358345240716945364584482823614328343309678852096007826783058895342578371361894583689631718103795150741486347660244562883223605056200199235867368942896971604981099460502812027613136704932443406458100328722989497398948749607241757384767806147491533353480583706688242787042340963264983699673323228187452376214775542488540576093601918436991294368684470494621111416458588324432474126967823912992307075737862887213066430111397725543687259021967673508457154050274536980284679024745078655046102552806606083072881117191103066646636049604441503016842784606824971967779510172137158973034695173720720499267780448516520186757813765643599155459446136903282743657846725898129053389483734261071283207975746464316584932402232312216688168250100080309759588908050284279627871135056953127462524843434686294811674697059298594945256811093455905038732470956861684849783123458792576024928192354548160437425715463453739607242590183552575327746207092910340065384659779967861382948865909478672550109388372061208171742818758520569114678177167583310842215585737290201163367719679687685272663050273826976072409421325941917354284218885829042000725710884851591496868697654310609176949006939026612963962885937237414256310597559677948554082338557021435344218752723826018689112695475600863785356147672478070559071702037659191595927416480669573675273177246090404953050901334010972357712729732010442957696012226213519215567721056518702699213827519603489776839738290764441347007948182490738160476910639551602746643298907716601836809171275083740334310853294079165559797874680562875993299012950196531388272697028421834490702835494629501037950800908985442015397648316667540117577764025597176270494240902394289269670682890957975451597522233600063814716378009238607173545883019652891130294061158022275595400862102006567801111075361039205095895654877078603061746468083522670693585430213473945358582908353861330550763605395273094888172930265737233991689793623432904316539391593583787568908622942016324473984480832649794475804598546955121858221222598344353749192455568033905873171977460798663893932008745464730927370996903782455523223286861175264398555329213525369552203229550782022258715958470824089526833987230295729490998506228814809071813075571199107222925908121662024946837441901387793426693158130949805340984395441463045968352427060688080929587047465493962726046537401565372605613098969342453995361011536533917010215133208442983749072273676530592203726951994663821306925297062422634285919172374702708781054023544604468148768104450008823490515614761897556450472835045492053256168449611901777220983382468626622501664593486411820490104082506999173643350851050099909934028657141543769919383055620446088851481967569534762817663392219507828551256861161968875229780455373475145819843189370712032350861205980444964721869711434201350498916091961387553265914078855207887167436999504424310889185828773701762349122680301354461821454823502874659903512341802483515885146755318447593812323402922680559122866789833167995655363653108089844303185442218305850991669562504041426486877495717294415894279000817151368039535456835752081392663331874012304855791112713825539120599740837325169496540858277919459228389017361995237151394658351329847559594424695269374359964313752519496163127000317728191433829494260951438980739255551031429309812846034728626387558110514829191496124481806727254253200317954371468754714977351619287221026977828632431709971663394124249838676878212005824261974851147350257954302709545761059499511403439256738253048541115442113208535471813683470256376762810501495803450533325639071920468255130596152421134547690299933693948604058501563602636073185242178522833319413239458366648755925068235425577771216031215952985645123215616941722502037644072624160690286866298293652108219586153799920821898909674546738891969945146027427400347334632034047480285016453349990694837240863651247935610433899407057788792045130474931019943161462870359015970706046115283946367941890689436612325027330661441566926843541389075600768352021361806341496483135016939050056053052558719144308193382876902197094263760756402763144078978737967295189838325299231774710220016879903413466613780253286538476142873955292655054662510130127207701454234283292559203118315696908985235501157938516485953293112179322171882179558513932663301771090827173440836248727006965462348233543485036825571023100249238379735092176640767318480182885922944752107539820321516532340818022803539947880930861390237594188475265845439501683944613162698481100220417354562553323609078912647862262580033293809567204662488918500871930899060781714265841968233674000866490005004210385095182943065167733266230924696496739686666545401379230119898538223427305720170533197848142664129044342089610973796319708785390595726175329829720357279064657316709056336499806376247457382425920445456390163961029620817953448469618419007733807428024232168950606520909869834785428759270546296074781600698633982162204486822304828055688688123436166964075652215174948777546168984684853461194906240046387116004944397411127293743570147364496676443016276531737201719356752090896825764527711769129354163226669661257306124478919236827795866314383318283683905914353796368081238309485478339931063180627129163769432038927379421709671303814831020821960809727450511726013102690556970256678243074832642456816110849316877579701208866708289494406363756073427908469045138625499172003740566543894827233424747984054555134733237073692143909383658315547946578944651860008548320268961628741411105398669437059677835583101459987798965470603543152485466642144632211569993711281459365315543857218303767011452793599855146395084769420462261477420786325109537357800742483773090704818523835063173794005874760647008884647446827191535149017428368745343718497703070719190249477369284600426491187623591694404584289965319857045232487429805719285989917829164556780854309950546013690417789236484237914594491106737086021194618405088589091321539539643445097408591562314844923825748758309772562796915482105783841921269065904329630571063837000651407539140797937140235571068270666911546666018804411115238645438239248102834883605343936612147172062808175204636741815243382990823961712522010971818643230880157275829380604522717511962477090493670469977741395331942263817238862987061426378948944004476876340058018115597359414448225561220560490042905796533386875954306535631722113457995908395366846730636450507552729605252122660746838680131140295952361841491010580339117014917218793558925034010627977524151783736785413556596482404909616329886981733603409435965925973905242591196445361211629477305412103778655079039965760928249074145344889953372138548899463434805769748292345517826538060154266591081481873828648742294384831319169892397596973124424876215764336267855347756638746351383888095519400045210234382536931407858415933557471910708367895120915659888280002764475068100879850686969605248883064933176552445066339901289355066477253738720706273291240933382522096558833852887535371275412151807137296302641140934309869359213459373404493828311466657496321470802752212991457030887231580447963961603718617000497685357745707218442335901885870625547779270238264428334927333806391654384657785413884643605389575796097301392622916598664602065033729435538391127638384960472218483982898684372714816490960372097687899992447070252582652295801775030537782339180908807596856903191051734692718434639952714341473420027655243765056563403952539454289743019386181030752786054131392425611103980142477102631808584701518030145228889590657422484111130183653894372873094143450729334247222406081463673235270160655265455591166128668969598795325712344404645597639405964952028781353487268731725533048650940832263304634201007542398300540799306149285073315309666763844554052481966821523103812874398239947117204170596715783961833835201366476484382792972436278236011917470580778275310556491018513816452010392077748355620457774004228321122788236178045855069442725356775282320690275880712216956595832503637525002064002946968020131920863719918354560536507091937323771611694833278497683264966299157720105906913394511891175367499145353362264864988977168393071785700096569650570490172707104718373962401603503187268596277501687001588830488304314852930634054977738913360970748794833116002395853964276852549966183061173570719296218447378989129403726053909727025348719057107526270283692806802640105277808306494976597203376029017471095476242652669955765486704071175457532227300119868628257108868077439404262071789088180843709768212615708382237828528977807456477064364150583698356121304148481775054138950879252338587555969795596639482240822133997672970024929463462015017164059838137664955423574717153752664715556162805825608174154438131291782737713346416812969842400685498579226494801435698004106232392411104432416420623809911478363997009536971768549111888592473196715969734924191206057447969987194229657976910243521854343224772076070742398526030424519491474913943009067500743723452338983591832350323195797392331204308755044626374100698729970176986359664897329940923372425978628787024793894566153058814082227577643512293099266349453000253523711620251742503384798893479631655191009693433769332834996632631699189504165596691105015239888549595220131429992685543994566385240293640095216291018786910028678239666073412860952664243631163710392561753701968350114790819168095234639659198446432862471145363679706297367383999528218807439873599055815942645241953295004429287705872368408789518269007919376992881037572076902800022180903427443384386244104179584141873956523588122878862391303046780516119204939418056447459487136174197099396463311361107001493426302402868740884405626297009843192321128627835642036094660025477397385565222631035136751382280910900891907283975285617594033901352513964239142610807489538956067359051781898634805836901898724528285953774873463912327411275366651532669699572116814217991118462217438263336766949182052181832516656672109271976515174281260909952494479622059578920164806723539054317061371463301738789413359683345743264004244973940579723072299325309318735729409717978081256976507367402740126515999275718501138718191419675592810784970198037686218824994250338043543417311815200528990557846504374091033231095044795244519509732274373087991197220066044335102000110800281497115552987082128470297510775797078845022693446132246877029985424010907640091024863246070046658412999456669525902366182218202822724984463109594181901320864029656815291997932591709792116917701442677772318713199365365613334983360825977926299047040574660760611243004397593378580219360098846332718865956510010755768883917475223709377841666203997051273606175800055909246482048712120939006048592636663057419618846794027854977230882395473364968549464151562516541875676838278035418090480219652842282777729843608082916715212365317087660970054336455739302177592073590232595626988873614140705969032670546178202016663817587379300833670073236341701182153553044707194967427265435813862511952208444277945280327008706394419801483025008299819647321525133081933799152563582503585117899000230480967469457667600446563663799178558073787823148055690617835349497895418259210861972180941926339379435470179164375949650245878098549937515543035196923081097424737678886660353768506776950086034806192649287237019807588639449247586497443252247057233039362627487400367253581798939954789157332368553641715566370387830152241949172795692125095973956151065633900903762261316878625896992280315129255596270855245165317518611315437606806528044335707582845221153117003346973209757027987677799986339385960496938932522934223076578869882602731178235013750609797887672256293098190086530119845377125471200300684858274231975741703623748697889253498958417596451743199864485680603087675742510558907917917549059029420333602422435497381162820798337416502168410642526859728651098416579804781788450425729447234095189258842916280771635579650418398390390432361918114208907131650521555446908198174971354308887241176994251019537786738619235904499033394119578305102165506080001580264871960299033088741268588330562379542861176135923573650957048409789450278953812663447839527650299437600553782279880686547412434077729801749051723709824601013703838613721536428359371346540503241711811952033473700551208304831972277674494610886144992559551147701337534293972545170391417511120203686194329143349120441957380260328831136383200204079336558918561510285100541882092269425853820663118437830415350385267227004483484509138278327311429335771378726972002783794668256015234652413907439960988792577535669005010382339001566404626944105167886784458278906340867659291831177536402034773385881951064984167881589694657147999565059751977017056745986623325241907092257452165047983948146908202053010934304968655244234866960737618970018285815942814842463051036083665425599341080963278749966151738710037318948500521594615377056934315113440426823624911242563106639357376832465862291268766187157604680979409401033083879041030805052780945793827687938476180115309224381099763556173689204035990449239220360048548558624409447511278605983633320989226232870240572496680785393707485574042122716331965920370760636840475845420345260650974211973230374865664469057613367759529873353235046857638949175864942533337949178763526510036264046290176736515314317433030842961239714347486279168267760271239793930672036207556467201385353614962803293941174013199166492446404609247452977425715058880386798589308777282074972996124085468672636256582040015509418017422901437274746451025472213087383707563011912299926689615747690479046189616251937784857466868016590195700321155212531245065604396045207136414440771646664794858513232159682040698807161825703412349498913053276414498873936493188074159471994947779457026599450771638642675943241685204746929707974725895038116058949441539598278673742363772699837656710155255639151078837841831051964944508087773833877067254691544971535268560880596712341706933052085898039046930740404558401553602891631971947823552575251563173770749141940052643584577313738374356558989961655517381681898713772634813710776168401504359987924073873395309084728273064730904142815921466674264601769563276474085922141762104212689485702250665900264229140007008406383641957338207284854610057698789800224533950930580721961735229243079931446136421411917859598147692184284752933462830228267822630965744612238885691979981566598904292441131036164885239940791424230036782752957057911599059946387596683553412388792625103109373062890892237293636002046139318132228308128956005008758111152516620611683263628028702908759749102123416205718994222560621339800831036350932654346448834910330513019113317542478371822727418736055245743853302743007706524594629819308573158411017875136038607846724413404880547905023245819453407519406573102707465250287666420899274193444146701040642748968345306077372709840286728117394086724572006767736810394459797822621325168062827958491385706407339001568017642842741229524647182656224874023334441335007829944909248855588916682755405731174825031530994927594214072204147431236067195612406792935409425238175201030357904924391929544326124943996994643582056104968226747833010957180795688694626370448666844893168544544670779930611970613116111784105221687403637874442216252373943627663365150856203187648633315999592085444564303223590733741475407358191801937439062074676367262694024804414796564889985910553873276379275711917410292182422148555038749939872516071778110964296097349412013296152274873659034848169247778177088114642734538613986692084551418095816334661170526828582974141235591213424114392632546282216755656271396616582664971551418919544127699704673819352901201352936595966957822146001394135552153225609972062597994197297971657485121337243513030351504055801094208257609171680418076973533762747182123090511037373638307167213862075187596921934894538543127683848417308435249289113809892112869530469339621156598938352417014299258504507329362943971353292684729195840471794982382216055693652387242266037331207052942862339672619502311404303647540731176990076448979053652417057973302582411868107856400488516086599770872274292771664299303287056540594518231553197262734654845073025911422993529651031467055707605117299206533510503540806568425853326413562351887573966293483184084309947690421253018005892800195988214190247302543278627212883334664058231166172081833640568172862029451917367925059889680805796820390847558688597647603134048472313887928434431657657449030696009779991740327932850131221740322275412408068405813215645321725449747332494742384944443600470748980140751957212134658807196547276382546120022311107073410601226210684290475670310725685984303458134631135108215537106672372816013617554022525361224163548059215273750380168243040323640268864008709812686459349057767183385683526151437910258307177579383937122773636733882337444339203111333404064692333424172160073278679788973747950937895465113769249218692077788589324198395505099761909595151534762508215948028166465704898442918620549370035530712444442802680940254021884197973515817899763698928095564664276061254493413893278586092195848684291147980962662137004501013733917675161631300203713011374470052293345897017660158812960093834425052977309466046543950689368107092591483098790205365091062624266460529450032777981918539967043191047242499954347770522761615513030856761818043341479014956695713885630851407722702074859874996039139640115640751881309899509304734477697622973424575747552157409570983010016063776854973169371203845982615230932278008073897304856589671170002424668145766969768493123785635663451959543156485168517593551406503942297715317911287472878183844204193148744515928060523428819933530745953605777852138134087981918800799775769500002632664283745733518371853492467587662441379022038401852867620557560781498394028213820518119930354794201537950936755907653628588469412268423806368250396911846677615712272918762047267938314608254396123691511923835927663305073730002101726425283542844515487762342845823948584337658650380922744302040980823665995899275017837053969784170332323687023272116408343457823245797497625107792045140207893323362268330951406027996623135850344108993940096391714234563740983553215490824488822750353703916962665009979038771509968228807382410369162168587216360543094072486118529476553979967450489391042768897735449161925342846494055349708498972259072710993061777709016438009821927005962329668339823096133601632644770114490859420097461108679140781504886467901808709161591814471347708306801925016008463107106613240934576527916804228623414545933874645291082368511380552943127395730688198981106715310212087612780593523060209835223934288589496855243543547101956093347137977726015181838417235012706855387466593704217047271045134776505891201840269459850642055729706221424635477869103756177968672739845422241038275829905298585843351743072911220152161022368324953836293053080905284561032953584756846675067424115087459914724860351996468464316080386165239330800923871262333238622839943818941352140777974918979993541733033705459796212813056191204316962792009081931698521991728647609038686289664791479475439589853010166107995095953013515458958386989230112610460773788371070424365652280813140648111027251096901001700071627671288515238138747509710558892076667236349492926633441013698836737738397100751497394155351721620899013008598253896253438550126561141021141944400025276172392671166092657967379141650534892488267579440535612894227290980973806156113312938302422141025897187108244328508767625781491154864226230690051927662454238496156140627753924901840312105912851903901090104378273996675373337675351552843321261719407552590155616858693489981937670137985273780975157790161597442795431512348769120320171232126431648784824119656134080805748976402006784608244902930058386037249344305073987210921612829672176941576558405427277426482613054537566596669768807770340704207114172649264658938472978330005991891322202871064857183248992586152820980670280576631661923470619156618110170651799737107330694835671015063823831209101982207988280196704378772805887471665482385566899970284414445414058490502912461083377490932107888080309412729318849004163808067338355831735288263650176385999554864031720333774189114368628907168915645425758683468794101773122079263414342804487540148383733777697766718439060849934015728178210531529881777218119972644757955688750874874159123526861976518484815502976156545271541762798893537259701658732031970525651457334214817898318024565464039648529150253852449776180156327446575955613892450097288934764089715684589021791943732057439137625228654905314807301351796843718804283974276677858918403305075551894124271275907592941144057469501552671378911398315150873024488331235601165980813344936508409526547979696663751887247654311764844288424067526196789511094713093977408386068613820348537939176490329626542859529224171544977402915257417610731883221516221708537488677734415541475834985296301162560066528470969021913673724833872585668291679175537475811306273858391520932261846833601280757409797703833405141955947622779878663321378632415283478450762727907095172558683168702394873944173117549303100939384637250231752924190992991712112198306336330066465453393683840693786518155785634675595569487943308052260862729306181834182414123267573990088788900700577173867006650498805068383412369032085807184223430675715333630756037552850456180602551105918394858828231140296884462933725784204571023191899523355877355761862072745485286526369315619110544854971046449137157742862745908952345029736548589330903307994446724701682114134116186491215149944710965499797726694308970613560720207325613602629179256221899850515891568989866320436926799183564183475802953696973100293942893839149798756055149775072563629784855445646217284998312836274398498052037861478518809854229635381133149060005356128029680897280631328807967635753169024736913956090042419493738994943980623868594036412859635308345429206019251693431954894422874854430237413584071644278027467517777680618837459786550825002708714533223841527294493922064858479996042910696867951776046022661608759723116093622068347971474544681750528827415762879358862485709936782139253645859311301049650068301412160880020007090085646335081538506368745099425167664869289893719588783222380824163422372593495765543868288378289361018012097434249064540258580331966301866383516863955907758317870732519999822228758549390325655443268886545565566977210913719403315162043244908189696884725196710016602455345892225262128620744322510306815436684669806698063549158045742337663100283979411155145236257331963276576714542919037361252211213107461241788633996582229443582909127050484188971277568291232870013614936162357402914903996124352390469278795986452020113576321864901104158953251100263375670654843487187618771555833619342701103802748233392133662014781328908872469928182934635560780444279076973654084096977239107208703303168428228860358768292891228066296487335621455583355542240710855645118557132972201410488448240531025587151525450860012573637599170969324955068578632637778878589739276425402402209733363442122561051255817962649342623821991225255789250501259760244223487743673268992754877881624351431405366992394308868318664416988084403804375321692993992923331632329597211121473308468040694628669070894938644965959214312489743820835894891165832152117307314032569957666481042531747038536365522122769950475276013972733828572187041531414646640663269577565350114783137074637763572711403074589341524265897593312279614800321882956281203702951871076068850924202319275460576087691059771722799657665586536672728598836731872425011865459946464543238427528138192562312058956041223105573545705096469361665685400283989936202069720326761018113953035667270116858696261931525265691892067607919622738822363021465980189274147731048388420149713167332083991837937123833960130608585762293655890018194014059769043372611499548425868425038813422686869478596571898419771771807265074277087653920407498070844402600235944211713643856076853068960108202868400098765820148391933834773984446581167261010005693295001501945506483948619607540498605427931645515013474378178769348139693212102205883208324906445547474117177393310431029703653030538941483706659066617068338171071477175945462097726184946158061181720048059800301893181795900584159444918213025616175923672595203399217444126505931354708911610601343788478581925212133842809586851189210400711983101583778655578008025510700084946637042306237759790659113356872645261081322113759086761363968319576246195897159190035597626445123660864898054088737284665009492995772901837952917614870656675932935431531700493878076543850663465331456807503444494535815337225977113597834431729897608500038718914664076560112665652477389252344925317374359731433931625194091535224231597928053982689683107465164435486893030562856296958708192204791698017366093427759407713125870205842975890807231820884053921659892523697351244257227381979454941367089946374245006401100117086088988376002173830077733196054427472501989370801566266746794648878251835903930087179597107044399898944070111766176850043243735550443776635713173567982166219621019542333936186126107299904301130654879728053884416647556533149487639586103459097828803475284157412096149799554303903855335467841164403240183471510352695322649099839130540783960435097760051716230942273518383310263433088721785616934658833538045259560318627056797590064242019049952373589165485153892281248458208582027458504426168476843982005401581684037603234513709431970469803737786135347427358806312714556780195664362282095596091783512081784852066608282186616529346647366260898840207336640310939870777150854469696239617699333937239181299171394683109660530658741452072955651524870560148853016612002696541178810726417154259521381874805684015604734635409653299557522719445667357220191207240556725712476510632298501780970201847516242270871446379751177570941821062797936853045370678235836844631284815577465360710957668814803373621327360037823947476663456801803563028589675058215391952592860197676536911892477122668835138040938229931013729565711983240634507572735216581874445305603524821828275934892223242627705528817708337218890606464746759789312528144702430357849092491297569487502984940413478823959837062183701183798303362337365107648720865810093911350284319367663137400744392498293244628740242593628440957706227210938656643554070083633475238917044721383825359094452666800567419000636956869689593976523878974892521984616564722440036734029223491743424797704273336733476788271088626542082051229292312197534384315346786475742288378341542927141116495736935019798335497008668221826795598277511919985137967618107620031742984769107436283128710255905203438864106896797793626674859276312831100712624130601101775922630053599500859329043793482095419173933040612845921090930695850367598288347879404607926027699056750812968311864204754258559184979260156014284183694048894434342435355842239255972961288840506041523955732859850943173714855322918003428631095882343837941813286496064503966217423641348074740545270524800386050987935710018109853509406002463887676061001929485646341582730192084983289129965299403242007060640903805561269807484844247072230455756127621565216479061226510751847781835020788404552439142233363899437305384870805815574186470623977555268537256165191584618542757429074783372753766195681689068006282979458858156518846890448806551427117277825367636641086909046664119648112274503293114283321634988087129515574794389093535173652871928446506079628783632636855319940807991744083178326685336223617680371760687818387234708871743759396324449884726964005920780791634867563842321296557092480001903521372528975844812195427031256114388408221630302704150846906843195438213537908387938391312755393206182947662078525190190924174434770230815274621839276367064277762444078012144915192157534036644869293022574190846744309339182730527514808141315362390618967859480269880518379811808166130018594993912754985902941578810486593255060247737802983795465914465193841067357095540714210542512812406235676957289363919274573093856821269058425152697635426801681295655781680258983083290804023057284752137883681775347549793679178374938103143224239643188838035341807540260271665751457598356171290348575881322134788219566689467817014919175432430589199039077539777123413258864900761702327990726669392361145719070226184865547481004678918589825162083590132334678698631221594475901744740951502144971904372074378390540473439769380140551929966109900377989123050494398755703358749827742805914754532087971644436223343440905212385635334647982564446709437039636579649130725481485423471888733266969949316136526166163804659422866671004101094583764340298418012702601830859019521308391664148917122120480991952776895389255919753971174306617974514527603690111293655486595270540012574883072705128998261056419456849202793051380687496901649937949002413962165745967030498273215676745089175476318844367429194761861798591277591729776502871121939595071246629806856078394606406691043209062452039388693147352925050916861484785604542638494301967865111478759190584088641083317978914022331455024574501482625006625609753112574555669954791953603960371323259041469487604996221310464130928823105306736146190406375493615197594257667052686986026117044447911717242403129093231325006424757512221043027979252482004077257263934598657965787907177061095937634465136699353130145595788230475124763427263320008005883889237864101161543328811206703389637342635343432238104435402063003998477714074177900238199896594067808423028877360596777251256962417593684371772502716240941137226123749016307340712320175226149739076332638587934429436368209943745533586627207335407286618968256817527365744589943118643500328883186639657282392094094482153314630354985329222829733235163627452190274899064539012504246322582738789944470543697342669827295464037593334251048927274958061097593280389024762131947067038829143957362596884829540223364986460676013643610262492865835599676839730181569602002073784979178814425080128758605059095614816328358517670742459013822123813522268027147525748898643805585172269897294733107550646689685664892552643709646190133973112862355995295119319066241438145244474720635034664690374520568604843211984960951515988735890390211593701056882606556564699207101948386798423985188727132200544140008863360463707325915236979420600837447790226143132125749344986697086086045417406031330101616152885761461181904459386025015209586455685147016256274613963483179796025593728785181500951614190515786167009865178593779260397483901746644432515161676729784493748073545124751223044825369285829833472150515232234559978858643110721536015052422844306174551089279816344039759672859233965004158005303564620047826234883342947662916257689937557383250740256909702453095895818077922461257424000695784502968194614098728689236557299488987792205117543570630043401529161588441460028265174487861474764272756106127031409880856131942187798829937286853790382604367384862935901001434551361948674888588493747480863487278956998453685229234155223213895593335648786994266820495712168583585661958712684799241513099570469340830449272036442853191364734991800646159338155556484414018789600312142363796804275837963730083825330479304479607514686859362781062493251164642938274611412841149381529328856892647166201158754659801992239209452887085836679680762103914641427496919656257531093548393270570034384489854413559840982443640116417075322364922538561730967535921801252211685644161948847908151334356663347704849713740444391415199166648580061690516420233830573183789844283879243284256266144675992435836226603739398835060730653875526272605934578971593382092732184927255235248550538206793993040034834322772334076465938232257779116601650969558839768842156166822872404453165205533465227218975022351345433642606533418127339974080132935767292153991685753296822676419550287265794919407784686711986300270427267833804586574506538132608203555109238493803691369558686585738792934788835231641889292625507908231526348679675032643964024929284796398157629064677755629398983681151365347642835008190581613461024167243523921511338437638414685625971951972230892084812921958829927257766502268447468813848998926549860749834367367931108073764313933845449877859410114669000035032188876370127471841792233302602248336718791861386028370314171496453894182378784184396316550120503363729310763879242513446126754907638149225548836874469004186855518965128890982791578079872707038941285551773089277310068849034893794873482955915657956018757904002395162739437746187768183474844365009038408497696365816028063322264010503636067778858149597965585422064768804415977882594385381841970039612816125423940620547166132792772812858844673490294509356623298600291025377357001634037613601903574943352381955558703815749530203456802243304981677084482896606882493171046890845109139441581282477069915081883845236423260521033312364553703116806016584504600293977360155402685093037478424816066753160629084162830606586718864508625527717226745525588772814731928895863534709199395502154363932838092831703732421282328879686090257096373775880892326976971691171850777648350645418395051855110420023534285402928098642511412758591806077049574353932744294590655409995565705694884602000322654863789723147250442900974436030696867187393728955811469335203936000928202207637762857337718819806893249307212722696300577469292673689175807328513802073041517730195665518838274314796680052292840220138312496252447718010844784207380316366687462252434232360221306589550606571196085695855156127177019054843473004432978265193747993793295492930015118597446450304979446565303297583038435177004657934504890706388816207662139242449610314608480641391938860386140931736775151324121074150109110596987214279154467279029986340973873671671004247908534855241705489748368539415517798559843490370283340156707866154809097001806100568940843393278858774886264535123627303545658532068286657539120215567828456090083906139153701444671146657321530325601560179026196791293986353139139066352705188566114963599003968564182017372929457283376593720551201562841039951896868708989823077819536203294600871285211511231440546188270009136274423281430504740990834400431765050167934270983904751792812923835219048655222774617385047507130816948509865673373182486480703944820210098857678936088778121785774244987989607982614203535831258924101649979349297101153490068803731068593810045105872542921055391392490584611638060509333484152011182865413877828500787693263329874651589456955670884124395513494712117541781399364473663797548868769417522607648116605639650071223743935666819431298304013501186013993988601146357081510136630259772185399847880192945765610402248911516644520097342430439180558759307158073119703657144761222322921153989032363777458980432468247288701157561986239389729268619505786525833359353508179521949937315197814504551373870376297982758356363804986211361628756732987679972788708736844985643196934923226931727659790063292898455958755778394814040837396948178549411378078022114381166522005055686510865290775989045802466333322795620474093910983138211552826709853875959748991735225280063169852534172802806717442495744332853833321974257885100666506417147871839191529628760432433137327027981013368677410477706891605336652463006343103461954893693714342033562260581940921074952157472265001457920593190758140577827190803608313728118960027774658201893556970373529391454651308475754920777708043142240915671361903914628185357829637094493041622827478082176159021071532270704321445423546759591458108853028820965571969056057683315702412322863219166447309718114963416470719060042330596246255843110160736152713184594992230770014174450425221931539518569884491106539532178966386487796683640218233842727114270784543413106457660861854157861016099577816481100290783158012765135538615950275868589999698880191694165389001862949869557323497381465242796338404883123060292217225075340202184887192008076728591714862468978367360395789584902198274288348971862388511852918160883398701160384131204619517370435010082431934600075645364064579862747663045311849381550524258254192822146627526706919519160205175929310782461271665125258834964399290678969981687579294474416847477047196688369294630541914226258655308706994210687866216489526213311757812485233519767446503427918052182353748855904956017821888835058589158258958913528842697642332385815576878203484802360690405174030831382538627048396906559921303577889945921721109519380005386736297864675492821681383780582194540520774942158534897397699760626419044928664482315735692632863710011672238606440589304441104532099165308872586041423649715270145108920208759629628948009776688977207981323025490549279175696532257629345057759289281942093504093328106044609992272333727079232670094319227460749891822612814286650195931250940040240517633779483665628944030110233310440214491613414248253374810857614575312791607961792839094583253331693356722340094266334927064765761408860667870102166501903183510719249811736581558624449470805153472687890605800473256022292784001687339411017870402896543238215946351174905202284919731096268963711982130235216855552842506475603990093638700315392755797633436374356601968970252868490616498750581579814183989856305088380513844214699364387526127635165864708111504138135444962125186719637421246491107048037676797413556515276334698171935032718061253681280732429334827571548623760672571314760909984074943984142713334263490584476283864533865647799607430969809707482730493801716015948644192671735426741630841625779348332853804962949187746676852941395271980980433415344083022279317400515982347762485937033549980205635756019501409334043999263523904647300135780783035551556861026199400908470497768669096256755599238406569209530304961167692340803788943888662763096503917447983223810451791368287951696486514333346393280051511749151781288869318400231356276577207940465493258846182965992420689023825011576595484004894930198387288551285303736012864394445054584987064744692317568384565844581013076907997263258825268486346727679525402645898494372634321158280306820090967141383634419216111644160283448802707937958435188891825413522720395228554230161064583664009546713758989330798620946364628982757955078771804031825096385898884317297495080039397212455672388692151006549026198211074668496358149918798033143343658250116571097405687014831131030825510027667729653182227603924736637674157394825282926857065547241421595329026229780958121266737743393900336498185249313542226642014310246581190804325007304276400333285618462140956227825315183915330317372868419837792714980815978721312710050386708421760114373461323089514609967801952842703552821716141111034503616670290268672420475132645538614405557608822181425561873063789821630227118126146573929202132369981896488148068775580624615804759837088112006656428527699622633677698373833812530464354260200449710473431118764164769211559230185185878804554428836816877769521731932101835074854444855099125867719545250252076298341936258594543129974023360176486551680861292944682248797397552877589224062788237021832665608920502127535817379332631478881071549678545044333802854153517298185771154974341137354171816478894671242553324787164209211459198306107610352436196049257264862468244158881022236710762596413839033063477669475576165322265891489853438116699269245567866290819808274595879077641475552016103148987525696497569117207141248790055274258340702624983433792534834618956810239945990227537946788250543367538223802473228358204648591768017321336305366647584981203453613379744914227243208944537390623318724168202007811150958588867661027791276700104161278380434279247800830503206410865785593703731482078817917543792801563601208118462844320740361949353842817126306113699336231450549470099122859100253230531752688701747470543712436341469784617003970551692598713908699372155672680442814731291504181029914493410028379225951551660355858460851049286563017443612902853467076065347177695755982211431252758541138702420673023390552620407632655149092058244831003484478130716146088491028521459409050793679022773083105393483141498481666969257141910611725012965296198253951559204595135404913030717853158556083145745137464057344483738175364624559935274642310189156843518334188373329633477217196822264668307391243648037239076265452575363591062821444988418182453160085469607851659414756083090079849592610074639946648788666744335341599908910621967634289571432209229605223682904931472671509525239609307312974147303285876223308417350333616283161711047149404618198664418065766193465122572530948028666557206320500278525966218908879177521098328887517052375904124145922153870527859209369615893497470406760808844929953747491681653618306250338801249369981081605155547561799157264756651577478741726987747891198114832055716081335161189456656211035609106116281702095739520976371868916517598122064544881230550076446129006124862548163867930130659256955007719621362890200033470959537054836711796847991934046509343856978985129891605004299872233375954165665695295710251085882771348096513773539827261607005226600361979485958643144620028097565256853994400111209080532623271418151365333956601453086892301685365600696002150505734821836339211816285162717320112869375672403279135790087951074096174044959602692170699574707767718506209386674324664786880233398003733700755202957277664293941439597446107750233504110738636183320381019030069430297978499114443045947140913878730276432212299990256709158077869318431802792733674097019404181326814041414176458571240723937929787317047178090779737883629510758536328081170476386795896321137480431460301080103189916774573047819616015198944517757132879304525857038361889904855362307774907919581811032429233741393599888255964574875926742337505828891945910289579809254832061728933508314610309281298025574132061975523187803088914692943480180490963100192742049003133190294333097322699058722709711059986917442988697676668000512341841989999523167395172198351387070182436410584293582036995801340895964422452765981885673682104968485993780934089776208293578960799051432736587657780738471266605421182975455770736723273393795597210129270427026314659763934425871180747968430710659795382319671336305009094528995220735228612023756498923597067903218620672558431691757459317263884498437225164776643218760346172460784073958160098572810154636843480694862705281214026145459773721587898675988406324113892528472473743134404662825265033844982289833393506748499415110421628073224870937920022556555115710686765630992554957531600582947573616637963162085075795709633277806175389336481032558448849876776950765620164432866610485742241095297470836895999095670481288366870237901152634992600949894933597636264437079578164318382101084991412864580169677850814630051908131763661801908423140035753744972949071605295027501258188718419860730369121067734502226413699053219038233615795731711933569717465956844023542335548861285841431664839909950956391777845572042901827586933280309959114710306565004597982887798787519042587637563736135730294185640199012828098572868637295716270933694021712562543633330729214567810203730375449846616100803107142753011076050066005865487109133502212027891243454158577718949028663104794872857325749850926108909619564165869641956737333539802595500734198181343651015712840222562442055568272141138225685442547018063900415656118062690130796592404026561419747879805383092905879557684347361767268504550927967861678617802265936716340724590534970086365150842293409685486285345765746593180797816501037318286402583947529073804035478232749627961704735284245096129565259423851073143910919743554252376650225876175172680285914770867124035823624790239556364347032870551879424384901410455497396449037414610232183741881906217534569929892403573208754643803984373796138565218694015009519693742634518566970476256551810547434155168557631415624666075684328219347718272354471965635898959643744650401054970156808559807206814889746012113128994932148922840479933809818977536737423075885881623669694339527237290851693403712105946041567022170850736864340978871740905219084924175156235195291172270433008006449436369569723400138496314027694858492955803593937046262308304554849336939721967072333121264180678537583355055432736213738180532630839171240214871936064806349847376895699153255491434222493924258170699658610069661953760154746141799065555169664965953123428026209059799819504297276458937482265540696833857487338915643297089175150176352074797620615968477252623286957282044445132811760869405354577863620740530740523834185696619186796057540421364093017679998597859482724718495810531119362396973256334452144839194378204197931040250118861441727796683326917095203265624797540637889430319173046449432878521109352361589447894882705856181681279012183911850475637307273673282198682792684411301408125599140362538131723384811542106310986340070457759956992128322558175565680476235691845870725806062048225722890090413145566235800123432309015423303808488574247982078206417969169624122523384317776774546432645277470538939599953183090911751775339903768227745855228116343400062149857231145695773224570532276662403314859043423790384147793002101530410002940634151006416535769141999995986411154032450632749054116096599607258648489221191179996249717364833822775420766972948840338860774674937539542323663333528276020363137103236435690619511600358997438214487769165290581754636282420839577323659082639415898369299144309820156246027739147820899745502076764189224574559250223164100013548116590563395051673121398092914243883836348046479669269477991469322129423323864350208477775843554437509212583655115211239193044271786807732503192878527522506749689253701647246133439058637031160662038614787262517639825662203869709989739048424469891366823089067080052495195946201926840435809037418581899723127125681713485417513163489536474629991608552333043254674749846532910339960349113280847586140053328214988898120994633201338451382069179197809016801153383408550336437681894615687693051665573374388657271372823470954532088916112617995559881740696900589947297756932817788007878663587025965479086936603968797861619798649234057735774434461660081957381252948238477390147411411040569312336308295304007561222395271467068775170401768817001053847046772596204349428926780674476142408158145382332153547691342654210726016139978860830430532560622748290308369095909332568353054434511848466456238921256576937943198117773351427120987017085298342292885110993776365748296133415176727523158681829691465411952616197139488440962239702301977557716435584768621534892822191450617884057922943150462939568886863407469044402731935523714853200637061704530854401500749759193129060374147553956978759143614482325396958106969970947158639090144766394359958452420069169370597612808781711967031516442961673926658637173038616349347975316384304889007502670267239973481439183337068911530859610899933337769786712754297909668337997691523908562517126932603381404948517420598311531002659474259509737740673772453588063178127510064009263053248763058541587078794774628206848424669949966806972464953150134198428171628165528252451456967736063917250149554434700282830184989830255486589253707608760626690213312736485546550816570672058534546718797046028536066454312668726888903734960868483600494929851976927035559651176535466525628504713219777649279837747539535080137469883277574828017516184633532710760624593356633817399396654084756122948406592952013511739556765466513435304433929227831534919543124885699990246241197175330611940426096107784811750737713996829404581191447297492222839105378887060897199460740724456003364310421730266620975717791058849376137088569213877907366208452982605155339699950889684735306037773376630849821779378060045991294293028612756036819930801086653542637642291549151382945662780367956835532736221178720605228926086933191472393931980172054437768876074422655455212914214400997945931608202952718952750818536055246287266639119907334590459582591044791037421315047093468902569074393872129541388418529624952536393382451155749935663114755181455056894752098797130893539738520199761421797673766179156454805973903572172545119791349417224549270710255192856804265828041296172858105951975248208165816229649624161535462419688682101306333396916565922976362427925663888188518483533719848389828351347637966136152574725410442924352843561572434298012497470178178377862597353170615831963167658991588202785545094279100636115144233243723652294404620976051971406413493539074400473093233054763033549247267195059712979380018654829201828059686519755849816705493941634698809563362802566586107507795344153019683767132831384895871706935648203049564237664836878540435640115640386428527688293247225939119841187584236910544802914916496607501689150185741332400217318705813870707755805477031205448650866088827341991714808719244804533158175250762721907838682203432016921333704606782822511557431012993271988487431767405972621323351272593021682790437943736065599275588588238692812169179092452117398903885905816439983741898137153003966078792806178549531374679946478724221184895231246145945956279239710850790516501377279818923732763133661300644226765267939556215530900526350177664058842244441809256326160540086909024729104219003785908951032063131807702397828344005909661291876812594856269330172491002689009545047123039816789099321227616906720291660018644770578830291091492187587330107715263023882784512588100383346174710668470518266344079575739704839222835351431007845259985290864121274157978938391005555038677606678355751743316167525273872245239252518990770934381748547692889456337720198582862020804343577710905244339166221406517491251719072356533557049017446196605583838786406742443170893796899133857138079226740973036891290875735091909947033147769152677774692237916812287387221950205114640266898713295750029087950934811017831742709693190035215432300667915789792498596956359830256608505860855253307389972500803550921930104874840399907157424467214891498654042939701223289785119654846149109681179418463596427454626640115498920038389978108835921220869079413964031028268927657623384717988233799819392980098751374658472794976164480129274383726336017101052693213201087115116185831310338947799545759540570721407813251364881286420329498559839334517379992091117930465881131543130815809512675533840218457800453572430112521937241082527810546834932608821599858602216757210093351670190920666312238346932501052196223650874790383110143899654014500718968093883957790926713265239946840350430021275031403921232160273305839706520909151353802121052287166882120880300418627986715630101626809301741626162314151040138191319876946208633261158977041656436988602928356262219233298384869385558346935346945968581269019265209418291284322678723728899084230956341795290636817100852299287313742565672285572306450441140208950762134237145375925811582933371040788490212744216304697587370838966913440138332498728293728185535776275649049209942818824452048309288100794475428062799976369451106047212860886971449476513791559074052702492358680170282043438904636064439628191549859257792415929328284964745115524797162381636864818088561717590125612165778489862963932504579503635162459670138983446025076453008053055010490359466207400830784407676266178104863202644433731579393407279629258901485825275902662567629159355430647501400330182150222319984066439257992966918051693814542053364938270427772461112077547934398615957793483797521879554091875984206672624616906150715445113130226844685737741461432475699467088046437181621261686264809418049470610022916950206345612495445389122194189449819975425255758771756915698439834936813957949472251196291660786339217229459632609805373985774109722046814275200912078538023960627149782339989913520819891543428568215410170963720920794414667072670188617222725629787979679940986034245000338202803615987280856834629225780795779285523665602810264285996861117081689219026080940257364214434075472497876975204707131976211316153638973405042208944273173350107152994197835877786842035236093090463291235912573298892357330758478012657897449244707989344097495658776993261425640347321686462098771452217248975854613641262667705562775814217868533495592426504308721129719183650430171356473983556879185443626115001742343431802532870302572626809621787360240120687898929732191291606916934441269207989938932877973695715372984190603595178389649973383667080595024952064941815464874660352265669800565172859278484490133772315595159312153968493272737090733577398449964833599134738159900842995109392076257884327955574409419904627538282919223435141880201913739043970057616228241536381680774780811516339882001695022975095263473503863722747845992292223345931815849932306654406012013556755614147124554770569607458063001500811321482115700533691460403639201367517620286857990094311465468683999170828234721589404243676188895371372250851213339460124086128561090429017728822067369976180695278598006691504683813377515413078363773942529243319989233533930663029438589147688187253960892842518501990048979981908150010331699096666713938443367158980831271251910764820764881118818813243692389516281727030763075987099809707525033118222258710515993425956741045741021225080825277787618516032169679579521262225506259569934756818228984791030839805132296986993776984344561235120196528806885993924533892984953490959328447311168863744824022677226675160195248839666931544823975437021419948169624676414834388271334961071358383101759153879026526112160933690783810998810802796721195436102963446870199701487999866092120745099012409977857614640087025157601449653044949926802865272251825298404175142322799327050963760749837144733637888823369401400055114508928183403963110713865800544814115088000444314234456620093232632613195161940134065165095805072032804118368713131584068770868669627557988857475980442339324022260162255003574351384959434240416507358433686291300348513359881217435533860068697272877832682891801590824447771407851832740868402424078074750607899444344116437212331500839363671494365534651666755191329630423509976616118998403910876421143970852904650392236705754078028529133375228358543466845059232296410584757495057902171064114244255244966318464188675087844160310432989574000978112968542448226763465989443222212938955141959356668928011312452165802338106775261773567131144220270660141303643185827995766806127524305671853893118908632247139645570891139942030996399791928839436624943983297569753328160993029130684624460949198253699132667750351501571476495551277890529871328044894203087653509530916992537800614844102743600603859129006577901520666890807010350666052344135745035588001287896507817238304651816652883125509504740622527066770909195218422003339215035050251463998029322328656522227606127563534475354125921810358106283233903213565525863132412405329586401111376089992446317410771160972814139761812362836902195290134319748993266913349612034931279001061650347434334830337685976970024241998086325094005746850612622452853241504208377584731884641841227145945533832495931497077541772732408709403958868903453920342405462767915075560025655564586104115518367361619906934884534999301196739291673592668816240185798516200779593774667916356466937953255228942041608470977929896239864509581463796083797106076191749316151778819546747365065725439985032102073624652974299392184763983335465310127885153660543758904598688473735318540920718301407298347987617161896373189335819533906399531393134472757613594424062637717264752147335939734685456867427571691933969191697253304465562540410017830158262091213217946731386690583109892659647807804351268261925416970608292598562202829865629962047729440305136093691641944989688759972686635839502454405109397222579047890916246987346269052471637410548983136868143499072231926787946234566573822716094761563613994872419561686315492734791127617722994982708732131440408897448955373784796054625704039922802036712297053960466624490910629759364428698055819270178110866573325918478736071007359062340031063252836494398505632875592819659193052923262130282942378230767604952736809655119347880989087349297467712017387484436510422089920314808274576281435583720544704744214824587656828114876270962445762893479921395394348807386524914506371873639440085369691576688933882924006112829460044184953472661996643925292187961290110011542745043516717817250268302566957509581236587883668319888332059976552901454547153693038019598750051975451354110877333779119744422577056620031326045831383923500859809222113857505441579971727772806051529157177291502172660099518336225270172249549114122082303803718245311212795899073960188250262872475661429061907888791356806907414519963188857072576494115973710999201979075802683529128890609032616246412398366618410077012292153837674069471943563713674830160077029819362957862052115249723439054468153105225356772461590261149958858230707536284324119295812819457980475130179579159758292749328082464881155109765875821482919292337751877755077921176641398267295948615394954594653264548477503433227213152530478298170790361325182773925245028841761572936375140054868386925793539263092790406609961968242764234886195407485821510464488197047068670937247377254303511142995723482652195710037328333425495381524165619871257721764696640920125498383047319841440364065511522053650854523348725184291943525747253936139226487364502134920925524865757157317136383006256503482659526237425591558805089852887821167001199162922700043738519028757967166596096728186006608071218320325318455399162501944856304519628693350135571702740868403420761675625011380501887875822129705335288425111200240813140500752918201530524840999228094445681658674175723049188453980052365926131506990652542422095071538446147538442743804782273745931255784790831251135265439089636577508409872740706602748528964945473647320149319824545239174874209741245443360774327628238299672126486015101720586823721376640208513182249976373390805109545101330857497728229127469897357352532632270346938477451708479058280372734266467838787496356373663923342667913096408712882733912534011116028190506572050270395513090256194861246263934602568669116249934843471425209272516128886485893232854520914442490408338105617035206068862478027079897192609392172750916875690584861327449554590967380175102308307609619713710726277039103230318314607193879078753298359386218458188865427931119816022978986153125918389435245643727479220730384858477556930381917341077077097452395451285573901633005502794909126823590315041306708114549371027996518315760545163886572662346799568077838861303283400999829777271508541574025533026993528514780333644329411174251680773967864643039670821274552073532068477341209915646102196050629268100412940084680742750288849987514485641280504015889638185482884903477447017873019851985688919207442473878552059270629205239473147869851407652548640659122685419535720150243257705723767440497471949650216349333569848106818591234026743169793336931267852031005668668553218991156076762662822767210462382275331486993509896874925621317412016451658186355476761521394210769580308847974900520774428367464932702323490572911554854176882128891027488212638432954810974057220393383003770111301193659176117422534213076340363447224478362530889564595797640761759409289286057976423647213428620890903047006926042371445583000701938103650115526589396527997041767340691110477285584179545825754612488059605025871465701947697287855496829608277116492884733979452074616484078952322905518254404112600515946898120250966468865183586200737840684074430325722031346924776377395620639532347237013211716969712253264123463537923644216498688947335761707801137068786723524947357170459716666389537904089338587002726574963228307630271534741732291589835377539522860509655132445695098991207982727554705023365637182507492057753816478979126751225949565102827262449258037839131243654863849167721190424502099962611702507983821897019036748983745079285051202284579569381475810441242571141837870859927993211631094071288332653027783941181383042687576485649356690607937064109276472206512604290446535657475858997801218680709114619883937450053038484951663105161739554117229956358377422806790690762651417285146879720801976709551010078172105602546853663492929560625563793065008408363401795893120546242142945158155926873775744304222152698740113320231753983180125890294295552500141755154971222749379514471057237136872458129720047934862043201312007129307730760747172237783620835405578054108815422989088875945202615508912075783117234108111049493340078245426126426010587369027740010549801518421292968634571313463444157099309222633798709441772249803508038231959784490726484591747837412744257849453051445112534615037297448763531713544610165193040224635980908831283882558439560814058558126051747730371896756507584881836730746535280799567381357229591297118619036597078965975594590795424718620962673758422940764391441566086206974012566034335177996104567941424138198167492117949113953073459621879289024381873186786246799239267952711983259107794793184605010452208633291850947354835325682046467034092514690947768318211560060943251954975186926239490550721749978667058889757439610538974148375582008545124146888122688252261416565577459788518959223490988787002278229264698890257788104209611636733932360709283615447349030580113360795497676203254255972214918377325859754660700938638466526683526123474725414814743089056365441517916913679275171109072958934781982009570093659482942599918979063653681439490337081177483691298690265621540701665941363418834728076543895154529313005581253073736649457531121641150838576701121258191259219538666294886623564758481433956881391922625873557038404959181569915297986109932990474624521070545680945174251450423796611490379316972007980326367254521520245338299912672831179553803097016363747446775547404370678475267928806158348124239801464526065762491993478503662028921764320945837053171796981237023518952462844699193938339911687273353903633372958386266120618314759098216480565683464687118756999454290326643614793766349101515928352070900330739719045249010588229240976594670975327919203043926879926522778130129882588944004996705537866625483540017062539457234045864790616092466719685422445839068436478974722504021420613817823077927498517241938549742245373802500125571687194054257211172883867355325223344930777463025958234537466364577602612210466800626437255157086343863784568850239945885432988189914333826799559561919271820607491434184713492597783396463750454274473852245113420451524481016056939054227961159321551860482106786708577515792057694344715854605591907269513550549627602497026865505900509254096541770064784736140209313464285716740212908240898945159057785640510801801636246172477230909504546338682657416706780172105746393695158468764631924337102454817150062044178560213798440755566320512030141748298174992405041023711295490344303931345113892880756776343565708832180964542279655264127113141493725007188605727753567588469816764893626872839238800181830192106417267681011314266502564127265113743988319334519433884189683393844523879814995735298638029208919182222662237767092627386994457660821231035172730770702569817389821286106921100792829253639113208260210531854552786174134595935341311641469285749065704411248355289795733289049240082801628054570448327114165042978905727289139947710402483628873714811590422479005455327458516518747745053951460341749118864934681620802451034267417633045505366039473134304751606220580430762606507002203149206877686862428450532802417432473405083963081006778741031198549059760727626588454589841080880884539364308805946400928945074710249996196742623385175524388707713662202574647788220818124277652577632132192614872266523765257360352375903039630441654128912780814988105652706472480305382389566859027389836157878371999282232714362860100243693470993740891553277528474028219885839829939571211499260842741854494186421812945682172500970066346907942641543048442826894541017099117495948627523434177670416450657271496441701713562854598169860278585227540287175106187484609181661090007431542462353405164445469376665217078043794784532398200239210125349170396309042267747665265141252347808930218606394581432237930574433488484538252742677680966504359665474047678691658078574627669951447595770244641666434413618246075762436657013297889847916182210321157601992939219749316168582132565165744907335860001125318340813528324886818023039105264402329875074095545367840450432131711098855388114375061210967816230174206150106554116329362694692132185823996658088562608740498462122799709119341961483333977650177250996026147897439724884802321237187549586285090417888397718842450131863768152786441388822409540060982059578432115273615900661233814257602369824701752441777791990829549030433769394174153189877494817361918846220604280272674641824584846588817877622192795665092430610452888539166276043568979532115814844056377696623610799654087977415239478711170988559134272023487398397434733331341227975507891395200803500971076328393207768460996438414485191800396470278922058353396418611781149495758748136842085547349199153976647982195581025875986850351794384892089495505407308561866688092996824091170818367345333054754753686496225161972842349860400489826390776199184499461770152235707118971662836506769010809608645970602021292749567410588131208742118880492371787256328211362211545296318222817639346219225165049140523776522289348087685677121707384182457283510793466842369742249523110303342191371433296520145319694574858057352114769563821024162052679157222319899906839829206501558004528677150581763056710034467174988703804273085143039056447595197349283486967149458733875233172391341302437723048776703967801667728200994754595197497685420708569805283166464520315786472176099842666622673430266229728542418609101480284880818465214744275334294173624029250624954965367193464744715537438783730505224892001573532987083880571386678471354530528243667174840049235361202145140069169722272546260518243101262554024294340859874425333100197937637143358007635300841303082716245058783703890080174231422030558195475798891319030597540899466616421870498623147214311963288746284175108719597193464829168098239020394072695733969504719577557515640276020535606625546892003776647153756851780817199808105333206988420590566634054479836845413311723139599505143223965369580101625029942892905760576060689103849262048044459389449242874127414270037876320532939909975029251147116354909581900901155845130688473090490180879444067063966424212608195668162887113250347999764941900800339897304019935060642483008646487089283056138141127040147222457386251314096019213879794166165625337771189572979207918021985459606588575350105474660733202362685753488153924784488100316607115628810485368363168939663042680008537792663746889839560203617958656379761863017926949930075200629804270068602932555175648262056582682962246956546007338425839103068738261220503219656480595821646330784981907366550803874485060273158803743378678045749049749879989287174227939496530891475446389884985653884665534056718606644050155323286793633477659244522021013092646770302551126349150249478615972221396272459779818090208585854755739406963836235309676035654866177612077352989189096042055389447014758813410458206940277415827143639564760161141977128754712063275784774188215383729190591919972228023919952841376775104748923800851902111036932072244893721143171650491483553879358243397045974654776364999286407843499622317764961786269822831448676466997947618132868709750833598799114550283388584987516804906691404213215475767137988966199000216942404742473258724214960621457891113023639135124883254160279840543215605212875890684456874435337082473460466413325497601567185675013240148570620612044778130627906936216046924009728548612036133238472827730415946211727453627802804577998380434208936189065771941862988780447823562474173225202996827106812592001929463796509620390173436459160048987777624224226460411038317416351893044546161769504550315650242259627912673930447933016090222216124592660688470593099792571691536124621939427377231431408794796108594933299897737976402585908730629410534330717027500523775682165030722022747805325334210728224763389225822812883944447353976698661134066855021132331146124189253956578539396746183074608013232810823281400397114747792406455948256739258727317852386383604832213207183063939127118403090930191706948528783064245334073338458453963763607730270482991979731648755754924916977778843627693807586415639600917825810884922052444346399919656264213429435883171319528090890819765189635790947073137264689992200418835158211371678600644079194851070347409606370901973151704393790739979206021772567831901041745815266712372387819283003831700946376024092624364061739307154151779239348206505915279838139382034214454132914765709775944281778915603706529341135839580494873882862078025637568826169311879283706917782178449754248166863524895132243511974069579456173997708069312661808931250053037131249314044513665857676257523088817480242373391269005350865734486113819641969397323082138287828320941623429170274409132565895966831038168943032146629369923092352715513739831307415157490132120982767288561527991632288805911548327459546844801535297292515635697514871422560458944603765487370363929608465063725068390610833833828007357138921361722901382407059160557936488301671199292382926902978925555290453661321254543991276141453175562221253884660239559952506882688806816018346255825985932655281196159340762420066377922231196572188100816075260669406808281859247930711706168887309389273369591360463847007802643701988023829279938858536667029136652742295884306675924059766311313576597922388654898497634735634345816794731993658591124107408558656577305710834625787185305678270336296701698201711568805711838637643474315250900963727507466998097132234186030030931703043205256626278340445417636455292675405836136639314501641615614434882608596124231906247138591412109473690031464064419046226520030769784729447775438496856564989668556397099921095877378259261258558982505582489171501261653542705420280778639483500534727384898973873437837446585589467795839847044053576595006090308022707089463651353710645207788321408838548782090327501469071506639849815539085124196548886561422731366250948220365567665216728156040784248487472776051343911365970938102395355362657543022002105886592253583836924154092061072421961261508835367709896819548511261570664148888794135168915340403811115908079182839002241444762183948046188818537194799244444236871758845327425274316499865304110488140264925957075077376881703314261369923743698269754722522953461899684411393526810394073914259016302285467226141067502255691403802322681546248830827138846620981929143035973548640705142175922429054281623339835711158908457862260907665254915518135447443515320636385330532238798571406017813963250054499720604550120313791479339980062940255290270061294363239388821959008556965265195183642745970634871861248696361808895438341660366918071446454089900757610774067555508070284219806353184330345104064092466448596489057155273955035821785290314814724972315872607887356468331821661850521700920264050260167564511739501912768954633674877814835533212492480865166249716816888770137468793534301686122134188108061492347005208093914191586656368548409513245037258039395887381073452730998207431654985551641836416647022534237282509814975972895508574632060089777980129808389249558030527617245908590128254093709237929353301406509739571675496271997046690881474273998065575846581875443151546872696718859766882662938495503902396903864410384126403428616849027785280206281115099519720383061909688838889878364410333732888705432908275664241699195323282219673856521204207355459999892880798583196166018481839077322784442652445010082033964485276092424228737877659421718857779740402532503434498512095659798678158937994052652032228120499445742837648136594669650180305496743788579957116421844261285211176045862800817149441305195541735135667645438177255003136858107124719280081163355643565486216942978476756440097657389356055109731199670210219449759915043853974642439340742328523631023801695615476163987397692891542525153802449359925783933184299136405753813144465801856227869105916562590860166437065780638626829112900247559749991076575205159820734561051712134389449950475960649571235868711160147609983404610644439179538272300987628297794865101553450899339355205174257934920906439353339459056881768308758251797341366254735842063548277668301483684172525464790976607714524393242248574178629028303857798515424898976641897658480867010447796511005865746901847152711263203322483185855634682309996476155632021186762837355549024052757902607052374414030983406874410589025125285314272198090328752747922417177890175804299502880851120206343279339129632207588629346384555530715960442326956026904511638371307979282546097099493377136552013550595092097054742984861681013702759079508266347951650664336331282684879914113191949746504287780379047010173908805086467370235669917031487324962066569747565572475551254490773615778888017978892465857243123937641898374581716102621595785452547457645393003598855372999354824379247958308340310146564869568582909299052326411837336087720430421707447803026853134885364012387779402968585973444109905443394359578486004008235883572427632961337862272946650588854170197978993641633144115121776768899241265159465906648067278185492223343280604352914613102793312819397375218946048742390736237614910655307688836447153344986889306768567903776766768575861522639835120303539914189242609807820821637186804555181736652186915813525432230188769286082301693638551759945962780297398351971391212742572654334826893282734662630975576170128214324723095410817998238922398376536648692877492802602116974204293333089797654703067041012982049036583399967451334462966966241359244938279720363427156325982062736703810306646188526618149310667750651525880422861074444289923125838249719471834347442686710998797962284339509335607044766125642806855191448620791469904617742091387381395872827714287936375026256976823771113467188695131304981009495953555767421449571218035528192220214365987905246472908109534577605722662620427006297164278952403994445752067807451351153978835724443450816612051097644870506757656002064557200480201278411454851091770771265076449290776717340516214395710589087369493261703809959369762504627894933085760580615195288402092049668666233556405010537358648737685568671385894821371897519013011409398442794739568037609799975879508164451495275958262383380333743110435248444702823807405519317932056614166079883188329408525136378692536180189496958121659535156079499760080631835280875931347705030184149539797993374665163144067276836924688390567217603765198964375399840997386368844555592885169080991556323979452125434030099878176415837830779827206151533726267945759091980511016738868641759429657627265258782661237138815741155039413425094234151628143027269999172353148547165581501805879915686027218430900700659271245704075584704742084082260446837542762535752410312877250960083223849730466562212603421839541954001439846222817119244156257813401300952088674407043563854266000190400959561842385371422736027846380989021231136497875797294804145351296682215571615372142436898732564208879159456978271133954456084465970231669493597833242111390612836085787609583047719611477601705756778143939267841715075124644406823372819111369275319313801337713722284985307944299218502696091907771914455971660580615617218393319619000359833178822791065696273889282778457770338865483502772287350766193888956394990727695863154054642789014170220659282476248832187794691059848462052945551748252312871906894368067182130038853203252297982360874676540652886367254894113185634397021272811953252880387202825674879882257229000926967284337225260422613882078885710513665059203059707038226171311929888224540084505104421550988756613430995132890252310614117751546920452038092269832435561490608281042201216174692163803721018501643122724902369341171133272939401924887839957975887490571614578680387951598833564553426386235755422435893673013884089677566843309467917968257691316443145496529732473857347056120329914877967454597216629944923235823254423823728913686011260535359336352293146452209852440300588180160847625974045848645220174982145509989656930606657223627760796243279372622469399754900459967998601130125464001568523172749011729098058949294366194067266570958764200946604222759335803829020748000387711039703486424050091810175261424467693484305980788496114008744741274721482824230167016662275289870903047027632262350671925835521708004227604358872397030070539020404805588744363755437253446700235545579947363319684998574399702952626503705355197255307703656043415707832023642631510408137476796666430182778862146360473790740180596096115375070787663810065825974561483357603759581889498148807699308064205205612366919140418090479931339369921724021001228995798744442674266314324599374519237944250502096796086836162235923822281840981976486873584460296854139783163888050969703173370140550199244333444119200290040877853122331817506202763243179057536947042442180015270973085004208870652397244052904655190509604249043124005672130207199694049187711126497737754597789595831977704935345837392280259347318448815399012883346961402739938382943924171619348715460982974966358244168033072624871085221783843404904941947344551530777287941072088268999139467267866522960886705572907408181752099572433976979869117643295917340451312380535805496407465487425804622588344645839216346926824422190415816662875164281558570776210870402757380205790332504308419191701315349616197624832620462417705089674978115367079372395426905969136974910370790829872449460808170773012348385555275085145940823238190638969549344853481138105872487258963232162917046934648008655048063634026685671219279024515732003390993157126871554937536849821207324659820144246135569325148686385682490437301355411291269863144490874551240213126313169367640453642315351017335086468357889270440117731918290885510029832611490158698136659819046646578613958421545287463206841778283399963904460541133004796029797609502428730402830852546148788575943783260798701495478441961315394080634875863351950141743042243024413418562651063227333307846074013013585869717875781324459664410065811397476897928614476704668065503605835617362993651818973335847978595934723042530705832911982785681674096010294456548350636401782621813037981913746331567070314180231912570304458310276201422431374060794128342704461806253029745205171857018407339500333495884248855548231251202486081957802065697083417417391125238286903317508290213945732400819878892727211207228893977547841927899425132330696246061886737334021900728191773737676012300005050303900244546388127974780875226125543974822151227668448823010048185018395266941329737169783935277359222077871757980929987484582153648244800005632481540242204484724785961709216024010789117771204151061809453961707857887928476566136843289982710681173125334447006368801400169621016778574145135083421656927121284515496891465022407125948826978603119088863798227650867026886663575643711140502244898129539860919331191806846618819283167903149645067134568230546465990114297564397105897619110231542586990875928356877039751879189868760373011447183570720692281303074690894683016470895660257099466020893416508652778393297290933644642676790570786484959847096279137857960142719736255783177037331508722475320271779073056838707511861443316989949023653038591366705367825542686228579500562372143696554417134656607061172493344664497809721242440432666996268327604628476441144057952765411812096482788305527226608841173325550604831885898124488296359490534206315435113293845016960037011802118736632216325135643199507362184419208854186626112478757729636491428216884311453865680772807848293765117609980203357321816876905083869324551914366221866956236823894288215267852749837080145243508406957529854335664439329696852207425519736357649199044136829612566563687921967408291675897968948001316042403447107245439819440987687110865920239005253843386746857406478056325946107279931558585676568369263989803204526321438576868992606343784670956064032250383028028347998916457584124149782872141632226459399080440188540017738822076004904660776417523935036635227645270382959775887850401272188192485368111611965011213139094086483196960152319444492581763329485065956348791508816145167518557366302347817920755412636171218039169351827032670164789883650014410562655472283774450836587850775263376378072017745385234831575084408178793413773194071906029592583756129109720776132857566239400239127500422761782288674276182197242694487635988251443070754262988208829217975842035475496460592817864999919841790205891438171831652599273957398394597903565647675066559700714164029114371131966145037637626328182627191377007754292838281961239361208346614649100887751082526726389370995239550223570063120163156687856176293684355256258060812524904642353655340127865277368924334907505039037527838643862149991811680068501326502694968684122355181779088340831114016909678415040226508655696856787327367080273671440444127578320157685579631439683879252075937429451716026616205077816905436272073181289994321863892936357783460659114977261025951993610363489636197911831328089081221929843677977526709166684011000873194300964316880136397479554569715586245849278066734648905559214234505643164227471151011371053194035460626003039648706870874155552417225847273081205091460126378137919068182388562192252233387099919694352190436650138315371599804773306212876689312008799778609229309114732692433528194473351530041448252784849361030331261825323983805735979512640188178037340223545910843317852615585529632297600410506374332473834156061630139405995674149621462862265151601629716823053831082759769603768257960001850669786239089096366073270888826480768927906701944617189779725385158832937562937115914953806348860788539768968512746296298681355184290091958337392765801342368438552388144639368279009136671135282774157653646643471222937131960057422430175681337146985799654741456209426510991176097729634254761805076189185386756128888629640545668819019272699370552762119282815137792144306151685952133313916301883092455682460508030752867217688646718814439153487215428907007415719016673522140846161455020478906199736537759421621939155511913599793048991413622317481422780037589325998346977269464659388654517277950119611936970796409289853061773749340309516869558029362437042369361391149111986905319953284898484263613003873695699511297877662841395444244503105278285184955458195728969101562913344359019561452503111624246279760834836477370083574072187066769178523668313465685814766936256717948865828780024617322179671167570231310383213213802603077989394181974217263808233562800469978651104432852653227631924025538058865798920409698531833139250060918726810813742066692904241852891794411671947085594598861668370712525908065738723555945247319065460371262724577952964891462455698237257864092856602486068673880527365145433268329022556806933381713588685947507443037097817719339178918790987168538608395721188193079899546621215752158399698314179034843746293302885345706441511856892560356649437263969957598225447261695158616255453560362167806760555843829315454205589682456579181830721661566843354981687791381446490412550546224531628462674063266889156890292742133612888379058405895329885426364378320456293886752010862657989629096780167446999299505599368944778747672647245090725301779161485476266173944244531736900917566991409991005311701450433322373708413404841617509943313244735932041818332145187534322844162590823426998553207657811119568229170490754768539245198272204607839545528293175607830359612742192034906004938790181335437716185483383710878172012225301305667259860474633899102967036241360849259373240834555029766846476466829312037059386143402251987083351885913578745295740612489798871540466258337181546562236127069985329618406248682619742958703429849639918625425829813726083784046890679502886108624194743570203508498575897205401089765950675632697137908195596953879251129252876376024155987243781840310049610874649978219581454084276891937945825412781830638646101798487479972657745824482785687546573216061063645057598933702943739067935551591521512932469739993873878106678914060183860893220390650306487651580974514370540878613902503535164535250056091753162781076939310523537618651059497452918575614195409384088675330047034575976445835124017033749671031553125830828575586827863263216153578197490256185142640098357925526270776061923516559833295255369490854627743915633567400718956202177304048427946340400611645896990786132936710308781924101362975212789507581466445105076505614174361537187850088064669388970635355171120457729096745496697830181413033338685916701862957537036374091791567996372009117725162274181747388483090525111477271326063579304878221161771777876643644691503505121675844418783790535333846532827620199467525537978364905648712157181648805800632514190529629034487063985519626494285966114245098033011335680851109746198070018667107311947788502288348687735066223613235656751984167936037809894282782003910227979779081239295835803907045847282163143110332415884691727762800435311007503403387903544502774111766132557115760918491645337542647878867621334073941164266470038807550904462211020444502543288542407676460847694869184494069823510441063458209938903656451452741692177018648230281155102147309893359639803313679164871356613633343977595816683409881113379986293052900666861116583110386814961489702858602514602815281722917053853794060151820655968575038808064760323072888590819876415620005781836435479673337988266245696702334108133214153743376336834236188616374903756941785217508505589465835634450600025518540467827637643065641543492635998153046766893396419987672841300619106628619923349899619961759120335397454797327255457846579783011532322702431829146576437722602432823000281600782439822624620434620474749001506933228274946293556024240899863774513445617861964560389861688648084545043670912255489960591315289852806736586509497749982154286785590483097833741895676228229740914580582108123592381983920386667459623435473331752773548275346066381789430383407277607713694857271180925121929510543990455705847343391377126048328145912907770804745929114585069789490119067657909345571654551814443077492220973834714463117979788963291525897653709115211002097335126664183877427008011081061034736765816175560794991608228173426462332831033826227551893248978431773124770338337200184378401142409351035504349544886064355437397827037967278307205551918092259870294664092226810435026096276497829592594393744812239236339857171570461567386435629852659474385200706449264947549172780819973736871373775787654807935208641319730975852894611716694106262956762010466055319303029899720673556192583049308687005823277421697513710375530119156620735147838867299873916556872330426468705168346810432736337706785939331354025819379903007307681370928912269316372970128146051477563408042590285946399137063564312491859293097736845377411882009838644802297989620388094957363714441736239853363321691456168283577654825918188923885677046159471378500164203848258767230552640591494868006261053966850267396025024361663147259526356581923069241201557639901083452601874553583350681812566234205001244477382469755129631572535345938237419644650024314771673891543508260206782335672029003135884338022517371845976164741221462576064076366778344105631135133984978069406691616765585468532479214092098798385450896104266665069702594091076599005367257375275923486596727308866140783690379791946395919840784789678126040333311756350914365387026092289393496466837146092807712858159773145912856843714969528426053976592128829054357366687404301423951673593373593389109790478205292594363131656168727019787198925889455857002397222222167773207629406788628432547373505582893876259215102625962174234777702294199063268041255697759493624575541595150471796460779691419693892689272076146474644154480666510978343523016415426588038393768766752480926864251996832090502518881492928893800255071158519605292398799926810296004997772075437199295926249127246622902317996711343821989566757913012341878229493080667950976207268586065552999508972140736199575655339845794032732706383194596687305076487388386899795035842053863174498798249744326094192533924072675564839858419404426086529140885504833417302233893647528513741318727259580826857267612229590777302922854382617818114185329396346052010280274041673509004416292199075374468003180046602675074675884690801083929912805454163117463726065880302800287454283637023111218626054022701263570339825987029634701002130888058414359400404274783075589463234802535574411104580246529787296221873104710406658986436488884941527618371185198159602642779673849983231964609712555748351742105971395394024847469947844494642738676735511490892170305410653584554645642945234138106859338716046248006219257908489623689291810910735462068537133858398016717685312236596189092558995754482726166612763121971078359688269699003776068085024185409637063300912890972665252130682036598546308134550052169450318586463692504872551156373677720887976667943590046859966312526702476320512039525059745643483458542403021865679187119133385573088548806641940126182352485355634720789220416946949723910341681548614466914316187018617106377516012673099068056608298852686472474788751677330365394480484546054812123366662282026158767378046053812418831211541660176244388940189794084509048867074758715437543005433322069510342127002427348273774842635807003504372637214274791355736888775575070335972407547060692284429161668968740404174639578135697631752359820621377357493586389472891873276139212747239431213423373417517433954748580718615582636173316256303264146324121818331966593743939862752536659017659882305552431321132014529381001964602111706047147360818742889236901303159237430012952247155166161689691996742445990562617004012722321871842879034043758869668434195588900664169437468744265159670616918731512969866171376120102366722354318066918007748143076705628584442331705107608342189778600122205882487974975946885575140030819413864482787751626744649660279843775506651025795057164862603650389553545892629417303440119900606193641598867860142176524342614261373395623405039203213170783503875686584717416573128789036604267535572809590126915002951219171456805851809967051595125423913639126569096196828016829136539091394771539523059927954514173943702584233241203035521273719220356025675833948219415275561634479091636388930068351877286875579877989345643843052391120511431806262271747658901195755293111958086360140134613015038414521054936466633559380904447444909507069793663051991387147422540170323318812651856227146975838076566278958035354562756605382225496161876606708318954225948673928127837864377980634718307923424139329018128821874280497427510225082262319263319786270869113599980630853238342229079977103133748041569228908450988349851504442276709380934174013015506613086056490509569156555342778234682170650956625956543658577049273335165132899569423538005716258338309382510125829789580456924030011118154306428066725239794529655003891787052831635313325045892251574817364535639245747465675487601278414031822239998572034989636924228891366501242610379476632866533692032143358857218752114734311900624023720680675360479977084373147266177577098267865844296951311628530985898967882379229486669135739039713481772626522807808952324657886827682942682771793871539821309328894127137702295924983127591828902590276526507795661655444348176437518999250104281335391258517330600024716816627793716867266144881816187697810753243878325995224280970923312462270429700124133689881495991738835588812518910423467409652669824092641724850277892316561873253888894686238190069609934537243055836252935830410412609800099791325120733784407478302666538167684832143276573747148002081947474034754879989216715071375742403234083432861120768616209933196403875887793916561073125591707211139219905547830503471065418102512822303116390034602747820441046599074258345137679233727612370239910211248752219961954816328523552194830231209157145275396270521442916574967829635937222508104584230193518765277000313915862446779491236890230122461633965076251015226677049406602953006171525549658578376156248575000213294676510912310385862809506516297926195005294727989894885217990679577602944498200523057467515167674039957484396046789792365698511927960184978088526324615761745549259425589184568321719582012830086107199946127397114825561389718633027087632093904828278821177419306540179874550506230830456982581499287149950758509916242977472027571557809234895715862580222902580109223379215525290623874684432344215004137820479383697331598991410638616847033164902105092459211770642194206462818439662692883667911595416143229884580172630009828858942904855053843945704009814435672966096812932616177647134085836022910107845006890292557417072510930655433696648956756237486833626792329007793564923038353437110068058331558095290089525662259246009146379431831550567764129556659219554311898693001172455277773801313328528467072428623578049310849173444335388628502505862697021908374457885731584939171958637673801040550083757309480884803092822229187137764895191093305478210552367881445025215637007377429634586537431924391087831011685934532244213104780061063494196225560589784346155004525971285719688125461813857272522462236336406227776319102380096760058149257212041946998242445970931673088810221125618317150509365924497913989574266720655292432675086219650173611883600036673437217601125491103521773554213968077582512563129336378839881622710468417725821851633813316463935270214405269325407094544842793383952410926510991153645185181179271788486611795883284283849266237210661002264072862606007764273486357230600470636794213421405240410478495376977833259326298224081528655440902977262978316846659518942697398888283394800194881739023907615525996405214925760144727255933675119834712463147569869898514213738927115436214065611501246904651571008885139995457414724827035746217946707520251005292568568395375070255457390374413511044755109312880329300020452587230787693440972697620981579155859768464302523871903067566513777458259302063938587433087520598224125451591272228565802389530054040222634100085586567963468746193777906595918818410506791195241661390873904943923970281671408287289850476868610140560153452434990246109200540074903213848892725457999158825726433888406480012563190566557050721138428007911491889441611508493309368002029761421993639659110697046609406931130191158003301448005473972443198837516697941972452609633127084432415094275343147760869778752639945108810916255871917228400428109625993790898458279859571765595334899544264043723119417248422517202856375973897878703265593244608917529800423770458916843457453272521423288797176769650784183033792886576151284851320964987724545685585739530155874584296906545534517601744561579487945182770912707359317740599752926831181555050887962645360078044453517105361885857073891112637091402704202308386702090470453186158269291583822501684242882493318381965157318057052108208647419241694178497962918842886197307737604143368791966316257274804009551609486360156469860759005332466567611367699133517572677806671464617201110305484813482387041246375280030900085032509045972135680467441782770490498819585173669874561561013416972210628306857799374077144386639971422192480643294301397242172674849898544489199263648813899263312889460222706169979553424573072438495293317728272318601352488166525756178089637017008687948333154498221772204348018977946119643775757782393460235237086151671446234502466861589461571219090452457553599828462037243088332691437070660119773279130622397370234014153126003858429415560017312452824081263599069940660415644925039007786479469601651519385575371290327294139628325473997036491417677197526802536979535388966237788012147326432132324520202269000601073410493679611381650468475914723867197402820640829577262200937702541809153373541665830164745874521013474976346075057197557879492947945813695222773123833388561482362273177484585708711887961678833105968541825473789082282317263605335580770891276248197050802455308274359662004904515587210333041501170580472547265540078371746807112713589533731296901306716774744040251501850610170250108951436024390272105779852181236826619918028387923403376836051505782412802133105424448676850403802819028020819656845858080855262128498612597253388778258921232772667288232526289863036138049893891893438834027117348690507307493332810354828775343701202491168227603110789867571708024232783617979979641874197491868980011952513665061859044550100565354876278471765657257388618912083586530339588323159374311780768324821373334614292712903804068178796584253671069761400733418099399113747704426553602627719544664189336419630395637523135650747157525688869866180285625929860456621623921931594279189911690377305862828755409904562607451629769267178000402329413756782055942985687678495568129592952768411910138626188338589197297639638282950190360586286038524798897098973331755232069374295620398478134807859959469521740293418238698338313718219828073273904709640713211423751487060638996917696418480088433156810029525594545232183721221431706363030986706858702549933052691777461972135577207626535162505655413287058367679627095269086870771002493519520756127584193303849877682085969610443625802780066332829045499190195943054530333787750247688439729348430551634131958765317539930653996287671622614957470636823838459476136474913632344852004253480953862362647821077426914633134503150862621525145073852741366758742585595849465874935478469723498901132235837003428228004819200139536599073822311137630561646475609424245405881976273601886757959848465519596377695753713096545615085749798565643986170632544920408327554574930927420361481949968340353170277804547667472735676559922709117932721217714987820978031544655641868284550066163169913644180503416508535165158178070547031575153178644183723796021900548806322097001160504314916853566277424403291068064275171944634883453385496858446505107271685449647084242793477837212117326146732709923543593151341277531604920679942689920407849283830328549392464215765147255925848207903063607353989289399272083306070444894718496355602607527458619082109655443951252163837282655472406791882375534836186850815449542556633559252642059085327788650082224113474932076850013541231369042434254392412107356392286335320934505863506875775252814011581741975133631700810698310910189487489896577102882440721348626304293385568832050180813913610406656011013133687320874628243380541990716880161484034346229559929904847226899508352958380160354406908211418362893451489052133520876494911457652623301316420132726071040868627803477072851076001219478744653403921356819438812701315648524571641003459306901124111346290614121238772674645809664493867534911484860333050983048587786697499042354050183082117836939202865539061958697444250047703066695921608980844334410264122558744633236107026238722967157006507311410468081818519206536735384117096670301136924682777376726481984706083571789738072745532112028257931166010407697721203127152945869137017675069418100359397815215845124917582476384571052884743871516179630094527838454518766714028841724465480444966354569733886928438535462713018389590429351273211246176516903411101352422166278707042960567248266018283508792638797091401977330368652501424359636178157775805878063933252561689829660385847790731687340346689641118193167699952049818913028976380685296448243977018658600998799750647547767788663457236415988682344225466846374686385028648493433891933964622401781522157132214920215552690417865890594226595900846289455738399612500909312855070998508291774848089652885064026978373040642782467359265911223562911820511919949017568628979968833242080205376253800097487375932830383456932438868036188422518661779624437908730413361518259641310658276085515924250029722837444917119688853945983858332383202110643126890022997956246448952119269797171953214710336591287139582189331651336125500606567723711734142369503379416530520815174817105924268197544190985598834369361634957873950921046885737893073841770282338998463326090762760370247925054019937180859111191729052173183522037682509731325068056689866878768551491780049177702731367806054760591780404084226179250920470400199875207474585723962172934655283165353401241161047276114992040318248480652486225363042043472314162156376910221338093458595688258875588815105075118605459135930928057732587726454813129761846493080592211532845133955745401401830289120359748131799397640820934631205845460444621202644958279148768491580220189020243349880989249573620322731590694802973168331300025928343164836530764601900109764177816284154807434714792143243547930547665039120038886726177839202489938640956168333880789903937970703316860413496493184196756475129513529165122648463711442127285182998515442722491578570111195591300790514781951314110476990863270762919388029287722948510856440711903424835821744363052661758469764213203866671781630613752978774562078103149054911757456967266066839896547858590903243151886599483598026119439003287476710818947815327091808380423754581157195770442718798853233233023278253670380431968919925963364175870625533093036826444110368416330748147052197355329479730894894119697747776995790536514905260278031080938602594500617406265095871721478302237700130626541633207651110088584362790961237405988787156438147946605334199866534566725294815533728147444202336429753992087518685110344772423484084521174074441853186769133921665084675283227314061146290593251877505807847490302507822404933405212736180022750853974318689583207945814852147679021261603178659996750269741252887354106802737555004550041267227774682541589831871859004973176039846548151035496459216429231480888830749176588130144476022385641653690814434434058738221430877945518596305472293968855483986042477125113321776735547531653428448610066681646312245245483800229685758955187417227313778430991967237415496004032794862857089370072184894399343851427868933550881301125008949862678030072409861845969526196383674011293877824320066304740939172587443201011590880686956620392830094931614632815108013222552535193197691899774528330156659327607943513144786943004036862113588287674238137446820095588886428346983331161133504117200676242808989988479099476630566254199561876848279421430278007483286075476074731004549101936390885231238192947868856906235017229802298684152292011382477867271999842803374214906234695839375688732195804842443017200203709050756360076384349876170643406015450641398820970096488495150238629469925164321301896397032060093725343860457167761855549637075218188271041928315987487588230613649218507636563333709616371262814976035244670442024198766776170146871461134028805473768562815744140131690995155934934832996066341345338406260535336302238886993357195147414069831211430871262835229301973661743681605967267602754306015207496050622528401087179190334932619582953724761174878745003505872850349023689419261193151669635295939100584824910496453374890685444673204589142762166435463862036095901113381296912742854389816529182493565192937304140258908530054046456685532972747393405600418135927629779075801842191260805569212476314549645913400362787298227337537161327124806626480236937627527228920542824034547856064352045917188745984337221438043634595107128546420383238426359035808518876056000218581513621285142603004170089526994732842427136708150786131949964157704819401098040501232554414448079926311965562978374812235600502004668376973861615543897927895722823842668067738199825908167707816779155914263701909331320935621052866501355449486309213827221365309376185575392049768828784773584835722040627877335242176663004284867303636868101879004013881103222210813456429734120807085284101203860477020425473073605232814348644769948394815988269343176093348881919039473612305446856937465059633980010610301631536749895963854106564125353794531633031347351580547449157819220203352232633900632669145983901288390612737163183317154091359411471663952120008629244346668694450343531169618134681457932597385747680995155409643217119627582349756240520465422890448122738925787016219390198048124886906445281390246248396014497611773814585456706458438649586240072735656829499223687493813676438466585578369425798071297265711213593732168476117204014126858078901830444527701854910435907698502346277128080910303604639234700419911273645649461719921045893730725082336466729488900463716170900631460729785040259228176969325112061025947382431651307162117298822718100230015224016298126779387080616591007455223884016954770395038768274313534947917042292536263460554111019550964605732438487824719709574775737075487793336823420704273837848692609096284313271683231715588404684519834818422144015133180247590939218977735495795109375802249092315622169696788797766846808085737737845950348257495653622234672856894457901883315778752923710728146139192836608803335344886394362565628030825123740039509720899050155629096669061221926675725241578517029553744638308226149523698228544238769648462128173409329481058683780293344564876760428302926261199639532050645704713999680155701209223458930545641506802571159840910211583286652335070487080200391076427715250343350561801561142489309004487806497236880792427568800723074229405502314031927723029140377656318963587649858833953242808574296799135029660777818620724814488687117210036103022039378414967377366933700899701646495391498883807286667672026809226194546916772247078093065963527965246124538257733135040130883301537500726136172127091011164732826571217019002138486088834155316337267213298927304105421312299578702994081539574652406280978830690636794049381945217761047687454838633583254488189691087520533806009321159899175094318716333272861049170948436791746482033220485132890241959435466410826354114844557348802834149287748504817445537209797703562957791057552771959002243659544769124736151962297928879822394690448404947067283761134327692284678223048559949235026362510136665980269773528722199060791154704790436149759560921975372077426549874794166083940449546969077048203796005396424449034263535921339782243419837244099449486576058492440157677606427808690799061976352046102754656009854113956783050034980058722610696777001189542674194615606060514350411915319174894921370090609889274787500978571773669455360673951271907487915549722725825717786119643216346682189212770296661839785084141800436699398405305309951617937240867116696578249547831272697375936402281401103761686587357635957820610291954335332797654835924538927380549859716069479679928920694340258108559849189544637154087001548988292236394211696056511291048390109595340950691730025112071595225722326664747437822144089801412010878040284331178515588462023271923549224732942269897775130820936057607564589493161337914303310983910710899705540956242948139014664574104185223199087727682528150214486865503172346567628906081194123196258605466976413574588561113291573543841397144836979746659866395667286354873338658655328143944751212557903229039984541896468276388323693521092099027493166115205381402480876994995664796015937330198286010125377455147027958388226832076025561325937048570534262333551157751779544483895645222141343872356720709561638347230197336994567917340367440372577969372138836467338497620844895620055760094605926716465651924434664897188985596611867788391579519355398676764354598547235582235757445304715708965264810629884426659304212424723297323826672388320916359937458159445390371157248058242287885101800584645407376196169469127132803132055386074055219580299832219622326726015056991678159653129906912232329360378124657119002881238726757965556892695207075234408199423392756496861888904178526850652187831000978532062236749966576092090467080457737206758335320901036789152662063610218024702867337898512073821100298689537510977777823246795610719737590188851494819106178991405147965830481610835680464263720969138463457376100787945737276353899915580059817368740514057274905466946117880446865311983655171698698350619165348286824697523783538298140745739873741569581592960520881592715941931764511639342195058602534484802936507873703434450931684611521567687053972149931240493741686470917142305687138141467753834969159889449179479078967228872075338302187387418565558503188285039708879207968360503778928178022731390157310298184750501631834730272000585958977222640909981314235653501650849125850505808040343982320645026711096798268360837316945537842118179116496014712166660369743730074062440630088335906141642571437410643084549896372824500995263381356514074840999572609431939470469882421854566012145860542359608497865327728090104386096329818334704756230239601197901572761819099922953287505423968119442007448588773011748929021565002898119382057184200833834831104280354175473088564338828527283717748059245458763827537563181958331182874863436338492920216947235986259177119065302200010312998899441155980879521372801914730209884321189911737684986639218020257061459930845728708629829730643451211549871429289879043126112147855786714619648298986946495166572440526243870673890595426914866773281538217640757962079810376701418738851046622662136282512468661551527860372438605950185806953538350496593396897814428304528414745993492844230911581098797825216970528389855433262482985872046213979968375054936586635783982898721900550811060661187146759792227649755684079162482262349238649663069785179298466314867571019431763171316815897283640792964768453834000186235509384530813514937876690968400765420310519218894059478264594881668349480556144799059168265743517461106507660985461990781044899784268496846699134550988862430095088390104492825482545412842507341331250100830095528623149007085856786293493009177707836691306200425960102803210112569882931760156922257542063649567785483219727026267105078705009432910819119813268335195170510568518979947234244137040248794627105681356151477918704781439922469669490686174292857361662359617932882370346414699598159403151023303396221596504295572165379195023605245644686965419517614063531223382901504961303775180536896815653803747667075172634945858117252264499947140020465816058440394853022336875527390938797334063029544363624331980442473082296654735527273038316702173510913414258850798538404691285910609696875042369382868086048867409160190201149071970006374682125767510169272273275859798316284889205135229968615320582246782850469670212345327801977317819148213023898180962794083014298977602656276208791622391213763347043766226922853726194398148645351901084671333852232775138666817350703311972886252958625318555899446633583970450665810510434867908711528239346915627669673926211397376387786185926450690648774883761618209295281545979064217097604615120075037964478802249613904007797924457630316310532784713423355783603967670717803067646759140918337453308006470777484213290593399168141830928547428142041989976796637575265491223502171683886842286268921724799130050129836002544164034462216589536223519907518234655897055144062253856282904071540294048318462538025201260855067387813689925103071253040453578461057043824140164673660478785712571269304736829312397975795954200691469332497706542354702083442060556998769770382854645512250383282446485637667965510175142697317337576884038599182727336704966102933602364130998886289455752246826134435279195810012494451651061873528036248174595399885387314779231792955610146784840500045944803346636161995778327496963148153622794983820287664564341125774236567573721482819825886681601601080354824461664690758574391570116832615979935562831643204451453907421951547779592373972457394335736939169093844710679854781776423426462102484186876439505676271130857066844958318917816853626349503285628354248688887437920197717342368044769254802168238030426670268264466504075632777623860480664571857375978540814457315039903159799901027427215659084190309897667159964697450957511319749596857081427327599161705426589566496047121039087966264431197825846380727727538514263802057191385615360992948586884310745477879586018388366379098675852487307025474567414902713766174851744229682116376690240711303266982266242249651954664949328459872044402383599887468119394222682006835305135317318638256627167723105811513774688162365010766613303761571025480826367762305544682938637178418639994791815254124785800319616556121646071835734470219044562903747654989972750047331112612050976543203947410241764918304113392977624451284105615351043874849057718413564641771179620184491648571863986813346496281032583640636444465380254719452057970232098792881878202407728745527755939686289413416998023908616892626192252220890855257461066654813099890750816359242071122438269367403119178803554148335361487432841529725767150475053555848088770074616053835661683206126268585652601186343665695591425887229655036575884052158356028069912684659430357143800531880098133116829309552733901893531151761716961301705592769452122017743219327347836504846019663638354470078804857875210759211233393680903286200497833363122165293742944562271809294794655780863125903523989189592378067807968929004938116167948153854475322103847589840195563700734387528126383088888051005899974236086453438597638390616734399502884134023726701792721132114121764362847964305631572345798055248490416428797008110052710783567096561422646887875577314174527349905352704188162225317500941243125884513518084844868590745270685206912015695632282792118227623578367617010338224311401947876379499803083778760818781685286100409416604944610927511030305820324520103649770611899090544691028281061419339702185514034467540867094608467224199817920758252210229345279419154946232871526393967201059838214468601480715923159160615576614619639834136922753853585121325666699369568995460996227913792359989768720176486949911545000012706363935875938943782928937036990676900189398690706690268853853766839611816062753726826989400666747718744357502123005394109022167502730618533324706943994344973619277554980093037677197107546079443029542165232980369242386678674802596594506937825145990127186876419016182739488359751330694521178261380641043827546352712164792508400011937065731328234192002252465847435555364852762816625646533904591816149870025849510173395730805262968037968908450735603438130041801581356751915602712848913443481230416279662626064010872023145723265348868284621391526824474667337150764900890939770724548208184972389826520947740098930963980724393082858021039557793021462596894096275091254707020953095881247361413058424642512016798008266714872250604069647684585571241848413743616681502271219424118098341095307174433899836121814277478486007483388021678501589529357313462571519938906054783174148154795490089263561918053966613818681029898366137722182372848862524394684128941186657379861168179518279405499730206801095411485441553717652329467250652667516166878026270814480100923602568610990116403869341974883977336422739106294808209490872077688330613487378365587394951455724985583150183463410898713545452084110795278880845867308404390615639986564294024746581202316283925332399317267957850546559904281089110150095888274507849196872447029045040458469019578261837044770094835113454190271870994759428644153861054595112739265072243815806583879278153522544614752963421956426030124063084822929411374723874574336819120856682214878792156168463542935333467057767150534123407797856134816868694827416153802551888754959887110432833748391034135212326465716109289972028275355578877132368195189210832042577690438252711421820121119463120853036675915585263201051423989791581440398648428364742155019444692978819845583940510215180699465853539836599681556880490202877200949487342896969808016658204441183447390415924566791823049594986427020977592073405958346477981505891593635677770286565881844185537569765540361454740166560797153191150634240039029110578297257529416019817390043867427742538202108464660331087168283955337973547292325904423799720681144490696397692881515966190386086632529929423759062220799477367075038725196511062502743430920090322931408533631896992068480786131452645770860740048736728045905822249854053951254129785205406157118783149266495774908618674693782843049660489954974484010177843224274178624240260483410295648796768057260303643832641654506042981228421325963990434781100600803225242447678616634861894436469640868567591201151149050180305959248701043722580311695298601914780040420035857095956161631562107423423407333311817649861373848797315321376759225160103277363301862924174880309839239011583329187425668697875740377861715752911201071637000373869790945884539898193024158302786120812071269353772910835086868011392992713371125700625284085211531328103552220165156343064339952421918437221279199411525626666680199197724259819529803516940019158989718408772064338211123357525516414811790485991863739030131926760875542312162951084533184632927567414041871615392341229890767492600268700577975708833395996826107575811111644268194306775122318662643077144626142541396786514687710695205906137083099652696168291445817578212299622538404544985718575194446169815126242632470043571977578585311529724928410263698086660089053893742806390761991825347857631331384192733502998649066825900829164933776044994708710920382385976325272558847335869979765666922064847508051915675994228470776224262475343598156264783495409792081223407359661378839781843755111751001667735831632124794927984375382899434781217954811414341148143787287861175204965308287140415727415232262289589899367933711486012058596637032601772316836145099524871311597965616319522727802402045809641003934656307307077238120625980566042512529165824980651146924941072592105745431308600601968644127372529685882257135459121012376236046109570931494018703965448012873085309921194876692751308010934185079706148872102771840257203946288084300100112544906640812871279858579002476789983195153683458412255263012363138122273402278924645565261535092230683419074746572461651087849252496489193939801514349108128910748135774319381263051576088623015039258210657273059722970970430822792654550208246566805768042170820716165150015230241819219316240926057461548112382530256332909065641637983788452764871439739687048299491904163168131518711538290344592588388337037859186620192331176668861293147304676915494157639703254563771314936395813483442153197549742090024511946950843505087175511094777901177938044126567039595848652704337409537387059771013298585333122976295327179360890331196584997213308247713499882764886567436806675485137476177800027267352497015937783350874103459204926669450460941690145342526464785110979808283637107992394418995921976106343817696551706249900290942543499248925843397366758321089144666506529736188467264450713500353436726976616746272680161848882613602429027206531407479636279217000929141385470539110896581940320225464179497775841267815995999764993092297020722081605438237008751087718339215902421558824199979517807448913910454132955444665457500683572226608359124264345151986972542201268319246134969654750971517203668176752895830404340599842875688667944258724304006066937771377489687684670232796390283413537705151101048191997526298721222404946073850255433698135430973190307719983262648432594600408604955140917107595391271282379377571283918793050531827528634383821122159380594567774401856418147457274252163693859518139740434131373492695226600556421192671070789088808263840020385701724572178205627564496921926339354120125119854142052649827275645108418391772528303424327678650833475308090775741323101229202714053176943537268517555382004842344171218670006520100828947808018847575524465381196514168655818673435229932092893440857804969202679996958333622847141286559745281377725930297147938117298337475868619246882340145531579206154088768816556933173583404436660486852738996878813306400574335273192330300114664158359793658453386069012954166753406430507974893847878424369203815420256259964527304918599904959676856408478366451359263457365021379461930289325996194036823829520344683412879911570478992558112754741824271287958240753046404763239427842604701806646116357629592525856464178521206461207983990324399968144692751333462917849712517513078157018619973785509857685564798656271700567581560063614357335059680130784174551021225726494744314179781224566014470728323063582685825810537436777359036059029043199879523860060365210335949197401273519973487608972067497508251712167834759142491167672393632141803180611967573034454046974714800025250060281677999113731715155763384989715652829825364760522876096320324671934639341579632240158576461239426553892220726304258649359953393226310822091022132663282812252343995246591180769792630156054382830697992725140234407958190542503245249778655796591860001542729537256757338133949907640597847288298757323586610979749102145765233414659287163588455230015727530856420488385651051326729431777604263077980708009461159302378281706558485605392191955446217596443425747482563848501520149886847967553334331775038209765100510383457352651328200786512347194524599217296483162828710358818621285906502445789619007811706833411504074632835188808030257000865092657702152859102313129131769988703789071710479818709559553634710380737695203520869857479980135762291867833767763065773139026906381719894423646232888312284715783740601165682859057003750557413649150997435743050209694715295289350218129566875095723036481720644254128802410206123710812308462134560926543969699517656869841111296484320801473878800528442354023238256089498054799961964134150714334998479175324375386661339097559314984015821384124615623419110679775498562342046996969192656537102599509368003397576486121655461823362766097341588473595824157750739916782224175312583398049494100768321997060123720540861058697900023878933202608062510586663595547117724751548312996918710412936174413929499894559780399295962357955936042402829801322223620436842452848134397203062562115515916730187367645839666667178232610132993107717506796521896086761952386295454914143694097147451760789439240049686572993579857877376613821772285003443401722230304786525590581286774287002130968646308672177740337574672728710482779829983367130799704203556741988759952187694146464630360018577459290202139321919104350765740238743724071936186617148115968407933475962019340917479102792018421421126649075552255993397473369827821844418279172008360555807672957682377895739124188912437198446017869159067554472850638459547024274740558626387166945172649582824501948708909918315405936193362638788195100255529551293958645085116665649864625296063102108925108301302458589595347046999865905815196355063441200040344613444057617914688457306168068466499003857724797978230804947298165140975735748590733726007203318675493506743103258208135648171386990365567762684924481339617853035361544586527614923972522571080853063184258554033336572684045871996043902789688265292829060579438732048165337121413295296972074468055318635532560047997310811008455280372715989409553872145287909728939206944520327911461658860075396163740984253214385121221375358810140419910247091760696196890911603157507468707996408685208880348172773417667916134932893081976562201666197753779025702151878047355910472904484841800104558424512116356751441348059943941100383720159623469731504814635729990091537773638931797614464109869908131120220026416986617855988228016280897827168393950428194276139747826860859144974647532609873620737996665717083252627643660488800592506161138907473201462636485738466032578524077443179395415016890864508477767456162387375015992246471700216822589026638676479630670821562434280047916042066848455548514201490146243113992105815101081089915117701989624562946989711298732714303741730129702245762836275433685517831595210213760480474801771104959995790270651660488293242313981379184585627752144098646756017257920638189711238353398103918903407745855402260616933773097957329609173178358846412478266526190333251323309878442424614475716259957964676017691482480226664403503970584344060974509117475252003705737073750164340918120104086816553430837222292377585544043080965300529423520891566827607763709080817877049828048074948151063540417009187268990573726360011623704664261095007214573424086405512814896987986247835891384511034392611149311518262186231987374175782217732278903794708600945459268169851029236989947763010202465372444622315880235320178847311795428091969080187445372778161146298184614748941941884361609542655516045856811035003934088981565408576777148309383747009712800434645224827203755512140715948537182818060970735323674004582003055502972938458900085108462870547660290114012095998328326030366585292215766894556393337373071790466589799163750336125081717253737649242310885157316829469866048058392938606741206665017227202216347844288434968805549295588619915781613991275547600608733003016684616737061785614139224289017223335532342690486318234365796613516518551352281811645913828652854961341519220998925944017624749761366266689351187383219038055935020249331098561063735838000595068571036720157536008432218843411437410553181834343578872211619299613897999485873827966889527924347900028305795655802918912948640536280026541009139296848790678420727529228701479602189519456695932087829040115598942721380698570448426328687164596772275155047449959332441976952424909152387038998953185706886614120569393130385601115693134355271790736787000763664077369137722945223922796128446671941311094180646011593190270975037334304601477956530989936021856125560599831233322883065768626371698712444374068591490758004598428592049432917853430120202764755277002770043218082643432588686516718460040031617925617873552755257183226699582513744344171161789476192063351296617264863258562345451014241073102451565106103078842415967041607493740748732282161359019686080271353994664891871238703955425427716451980524730260732526778955055983763679137629971548809951258755014822359174730034933175145893776907228695660853172594558770108648659443061855682079961793170178996105999701569176456256138212887950517524058277366010553875423766328921087181380116207918419164752918096021295043440933799131958491319853321058974958627962151471605148304290972972646817573044502661481749326974237952452319356859960199322731795392131432511006229803823995603940075072634400546976677970214520702806786804284065068208597473707885570732108732010105465531919349624191796343336480015584191965232216798624549991739735247321745985302086169432533584026910721497875125392738450652032641411243525964770049578154931412321147373600952288510831593607487821104523778673686512916410501312582904847625166068054493654799890064874552939913229688733361283345557918197118989761872618471633326683108400015634616798274565600289432902801998768329175769180719053344490112336189722245574511512076304549100988087880542059512324594440236462893900242476706553814741834865460615494262296638516600897515304631715397743328598656850913506531654753235085419877304333550705997364129871377225744571610889874319718099756556202247798501512075114861228230483287288672386401361587821649377029011653105273128162486354274662986135854726242568280192054626889333383764387323682762270704420252751135341175844344904473278821663548846900534689776381402617198564017376952090105012051733816067055022697252408087094849377377044575507073707776189968188956639186224835861997739005499254348306169501946356287346204635839237102687904090342785220035214292489267280703477638788161859907386836360530192926789519273432890021834263751061058358883715054167651689306372937385236696014447071164183131814397354388809680976456472074352529625288505399954503414607683281944500165978195261428230025641888450223166851553575793057312396427232127414196802469161106044585849136406387168223882149810626793010454790810508027223887016260850294439654904754102402519877785391215066446098402888850717675975974745505547803045946014830450154134282287722957098884233330640628072104705492693944594909284629377279939903812336926621136495397371297290300447248263236225692697321886026045959952193876078094634320863668426137733417271678933336187779169061682807223978298512115114360577010910713333448823617458363041381969753708682600983980336734410673827432248841358411015820942692425477926429994915728862024367432349055526383691356194436790048542456281365875774078915219336109859690362648838736611844787572110194281968323566618440582719887254363673340983542977607065845711061511136255711075747562548922427303858509556520700914333917339541634599247389650855772144760520322455771391053567355862329753786607410996527595134006452487835859993269358294443890569793276564576134112957181642993567643107521644215783585269272383549191253101354063611573338543413603188707609243487216045661866743908018372857635371328175728713329195195003063039630208799093653016324653521310296778603201861925048659165465523410743984752454142940576230240524910351556545126859838243565131971608975241639489192857779511809170883872680185586184150963762431445420287496193714783678387535052250771324466306877930403335752048086882763986129854569196788878860575277770117115586181688330546992145253253415346490042907716992077571634347474152345349573080639126698551219328723195655875831000559110915032103733262296897382889605644439029092995961394663448319329213970482290545395501890376852471855224494910181937823722239235654995955728473428800155819088540439482161665498693835926525075241625292083467499525947443302123985754149843550301739735141623431953645248435618944492767791653939973652403903792953309384480587519156460439415726875709233176445156956706647098288539138881308882133738078616326504032610356081258076927355308931863704888130439804470140506464423343646082391361348053466206801350499850677537664599821312551473085107276416314522361124235581494394250776503024786028911006578410655344520918751559620883808846338556847987233791872161864771214540291860856160285699497567025314489918630315242074104261802951639522157399970370385565657980853197925149774439164909097938490200005279538847927755839955348853237364625782622372887730376700254234531724271777937116136945084685696453266358388393537337334256993315488872053642767383860043274542614568047166568035559941637997044165675724650274285062288392616225188696119629684592285093015741732478273231121630404698501115507005389252874037769586356928623426583804060848619046341371435640515099686319558836645333078454403956642611646210991366622707655719541133817139602461998827054089958139655319520720290189876523440348480312664894216070860063454150628181691891225131232469683229243827369548095937806504889857214714703515160547232262428315933963646703944308198378743156765742091694483014347222570814835482935312151108701748906433429360726759597260632345794693478180574849630481217297143646984247531467193424896178751482519764655119221076150568600567143571789563522401527608994161619805322763609170704090446617308700831952702819221212474007370343060398658111195569292081221317026470742569454581844101976054026390571951084499342437980275214971084267631303452171009169160129421396300904211457365399631412938385847437298743140707639492154750634097021468351776685451985174209076898393196914643984904088833441319157275149754491378254673852238789057938720452186703922591147560871502255083108369760013453800881699693847991658676729483415422794650202010224539927223633712585785905436438810079593745676143003140656746122400580082753887967432020558164896750709039625152933855679719773261681742395284842901875263982432323842010279052591482934211397673190758524828726736320818081852118924058636505319964067585001558938447306828034251421365380710823309174083553914531173587707066421702285463570474539503752311453771766271533575430076738740270470594027268211842243630968716785594382647782885789042596604591004996713326889116864476556667450260515227556927954637681673987170646514288171628770572953234756058073897508991749710140742659996906801263926816570416117945592926271341558002663405062067835848639526579711414951964075698313081140470327511500225637034146710099018920389165613352704578591847189586195417900071333930856083088528908685411079396585461293649753852701318468684599016466503120159741025951038790459484929178985953823725454060428780964095246933969608934197796124306318098972510954299364877451778322391495796826139961933033477690558298485163511568399236770434196194975071072210326762375059807201180891775422384380874135816009648036473058428370169215150392234130047094226038271061964159933908632608302000087611669173289312717136836709344149821801688116292009261282743263058052307060645292965300350687987687815135371281277007377144557652729797729442620421292147299253393563773468489764658774255363406537057638961895085510138712790393050594326520083404223426883468514806998155232787604563107660923029811900407306339174084542956586172223077288546650629545580454850536392414886455289088911393754231410262821922209306800935156145672875529313100491994466369072662771139412100377917279425016656903217844867154462282044204116620309207039162603237600345450878030961168808709559475588724418515084401707052140989801458728167300455002828680693686190301010579688030680393877621457248317728819852664715298542311813478907593147969260335430726706358728803591674015481184406735381688525614229585138303520695342172868565558911486391556368179283606136571561513642055240667306662562936444681396577652428956096143020464722757952234682666527906151994015091626337269485566359207492503138842421328896943226476451915522835825594483950384427572001288525931325984068896679801598522591556686175178083981512338634354262234773966074243074954661821200713086223637174138145695161536055913805509244464492817335924083137581860340792201097563622118777782265754473199858391207775435710625476151567860040517470913002991155706349691560904709759952220877566097058336739392396503990744978672864077111363670513102366864299807034482746805810288130734863193899905379306875508560501731783163328801860752277155557462005071134087149459921634221387220220572359021000466046908428244952935296488547460107647203540232747743396184323858239191644147915036287773134437359131610963389708064287958472268060190930401046657567803221797841040955681307931288614578149092497165082211706994159724507712920926650289925671058475193665096409352377073001289306804402262846555706893447433578373273492949060854298642063975353334003900580880647520621611042298122392266189595219575515780743639357936506756042558520134163580273733300510998271669876186879701498991212154224365156553367103435377241104735456933575204725692187240906363342507194698936554116068282488471488603815938411702652321196013936129207482056952113502126572208840877886293803702322093548363059774311457254041402919068977381260672070071271538055357450837142738876992631995018355765827556688520550428832757725870052829187485357618064929934226633441194401356117051309070416814119984758629063427790940847462352468119580952230749773887680147877137479863080338352676821981615368078214929856581258276178851024195586934490316470807389286216857923214218660347973600601385604254501987487656235333389080449693755904334845125314031420931158631384838990087964587300001510013275451204143152162250755715826645517186665561464422798614394190979803527218021124730564988002700042065104699549244599924763952388975671975442783319998225556795848685227326236231562593663386560942443749998542757112076024916417450708949961074376959993526313838202007670102166324877713553287140297239085175659963021176139542830913961500500994395202803554860267078632961700596373210372092872137253431027703083333876554045367069421635733875490888037312936127361037812552783093930341062612571052692271051070063014221133253289507260504334060600556576444619976632032321415289471369160671519257362605355795478425152390880313510906104907569041813210068210751198761052815162222290617009598417474682705038434310296391740001465722680042858340662276527538604717501683865840981414877778625495435426597250567902346292285569084821569351830515584751082534827414548898051068733037186170777882493895865433352272443104654377886492743137834583684881477295575444268746874316092379738208109945180994578641312192716289108814184694823216898667164938881671062557374221968823628993340562518055526577719480733924538476240498674210932849804707912614668990311550874950676336659431885636565983668191854059419050895983455040832126258879281697998939303994515599014638244510412399307611522902113530098952588314450829535481968257524296729558922400263235094414446694781516292241236609455233672273363338548881324270367843567655512339091949000504066564842332470779946001863294210195964344239427406565648174140070854789894399860568066532078462564060568592589072684698444691242659645161179304163880875657057135787023056630248472767257390531005251819913283625611475419083811049219715114519477753370842786556204522232179506076707638715671725819522556616637774519340145082043232591787239195981249272992373734459619714003431739575459906803692085100501368117197940365877293326298067406762171968202023836225321774826372752249588229091543859202081516315957419810304688703529667252434519899245109804969021187464641175307413546947354991828442880074881233357396155652612985580780594560269807621520710488923504185584823539207782205124543469428546731350591146055056305419593016150872840683522170097272108393608178814237773937923536592130184551943149960870840895244833315552688570636825615017497044693099563383876944808659567531967428673457942737640382055400128838498332783421912702384004740804980431348265599189324603467837009618450551563508559880025120641970823251092731551982726379030411351012997588855950175941203311217126037659861620311427593125785631872566492514071286568824209322146447576148642677414942145300598852456894895474659509131195692803219423825006730450735526323137468899870407403094160441775905530798311409823492072702153386732372954380184593345068525956388432950872321057137464085039453581674196128093536867111549369867350336863273857507930046304754076770390956607718530499488466645564053710683564909555647523921900257458469062505547358303331391867114733308470198437266399472048639580710283347368332779317025279288384091770711908939495511485166789953660120720843799655941508017290712786203695877608782509440585057891491679514413796371396417127944786841878357246235072895718318395908220011714681677648868156820036848827265963390065273247252726929944756006622106778614035116866339251340355608772101377012049037939642969002346991207886022494311594916421850925735513074151482179160915576401678887129773245669944164777829622377549611832054741014611282826431645826497260786490041925725040876323014539723952328668186864707176519850866692126739660456551766379678561899398426402374596688460888029544073499253386542628305379336378361878179229541881459671954160832737836992847763326052716172289287592223827672431749964871098831984379385256821866185036185014200947502162828267717302447604129486762832296443050273220284224640566744903113066740579546765333212374902882114391349408746505144846611729397512435005706289511890706148989509914975844476233389864202802654686329562001623470200475072431567424276991493582449056021242104329033093705727771284812803626229359537002655329830236541389532901315908722989001102602970032031500833869142062931547348734416369975676389680906003986715819210512917692548238376581929709063613990775086026910343175069007862787399463503112336055329937931078127531195239508331025749056996184099356372672501558264013751096433010526645213536264511329517683616131996288278580041551623774997364968502664570473019866016072958061702654872306672108043027891883705012825081974754991169340968055853082492652119260331286650801319892995682638784089048970708622933327334523906733970421376591898233138213665725138432272335894026212919848628095555451668477898527786479522764553261776400031988039640649264634974047781832990548175368266533956167714358657524313461241034196350548643922012052523098310266396467696032506885403618739253997081203808792003643441810704813732706395947076128911757171999530419960983339886145384190296333079338472809230336891817361729055598756213798921522642374859326130664584384297411087366317785647262981464742551874985941471129526696398123398509727645019247847385603982555417191409069851594567395407329606141554284922339137409772311297503947368365234257978573953719106567488074657537594315208746284547970100229046978516589568165681458518656773620985393266005117931434825688245701714309280321308330855999087532220213011746482351555554132844837645769821110888571833574662469764204981802498791093050734064453404949042367148926965647953437232339185569348019252044804748978943565816911815086107347483142202862175784544445095958033516410896603194308443968534515337447965025070670922749154695608120908975828993083282730230291019393741151908834161544576687372931658002668601371602790782701312115409780050553587464790907726240178310132042907642679025132275642822760030410112139999491176024997018925637066922612417582134272771075076847697662336948597090075787160496023744044856138173871996461933556510632400120025783766791692463338644493737875787002504872727810017870883476219101623657930630284146715472974203679754281409302797826378766178229906804907445888629877910347200762591431856016153426108830268947815639265929570503709159722267175542647553449579489054235991128616035753147508855870222996903806771400421976536648859484404568717294854948518471588630297955431944074531466743086057464420122465090527255391960260491417220417290189444958311589755848502129672324838248879840724590674721019101060550832229353371682570739896500688567477951306724320728720200543060976491893644811545493294173596933801114462402134085710134437867220088761539221378922692078563999287051520148852301175107286204619187565802603704725672983733580156662081887503818453739490374312379522304581617342984838495612329959436144540839807116115464801216186857097301428470204497366139148981992464525121862772956288919396901560772241568181260528965251626468055121879271567083517219356800457893659240792294418169645867575126530853594838011747168154816349499226876509224613353274488567664055674609352291674403509499252184843157863858027971611613581507433466719207207651759062375869126990073936060962841550895144958877917857538505669044442238325555185490482289060348128391199422175504937284775971036416823307485522480931160113238204450608486040718112223580977056836434464682229893627731450318894547199872526838985513340070380667028767197238406628611818076785109815126040375957122347906198971411521269481897952766524834051187156345489934273371378589534286814517591702027878124221582001419554546862592952026559503337209934864635868302338884932415320083645218300448014657437143717346156689689275058833590031820110249864915546723143037492321098373245455090137693371710309217138757348552514854494939554474880361616528472518909863486569846960993323480277941650085126054585417834351243199797228475195521900941275827898374813845081103877375116072315435305553307110886462756336833627386143524142168862314788495900765990464874328262673602209704081150883316476650389720750360281646504979424599187816650400127105234979036059894110149861761482878596638304771312719003949527168426242923203762280176819385743367243293720394333526920561506129130251186075721529408671086388984115976806638538505789867452736233485502258982375248685222198127440091548639971024846969160147909033556351846853212408800337434593617989075238855093771183509461238538785934212177392137722573846521172856105795776964264504168758201425602811212795917816473060805838908073043871496027881845396435864239477501298961293941843822501163093144013865873156713783433242952332029150062857329070572412408229915932737775956108771433345197967014881768949829425196721304694281202804947375448217524645367629179923557018715969584096451661578076816100935447755232236543871923128294214713513330277939917844588306962420780893879633252137872612490917290437647528363744083940885562306470900561620867549466650352499534673593233868204142036784588509636917031107526438402476458403128692939558809158175717587419684351317027244101513400911436987051534809909233202979493537757036446456921471110555176602777133241626938746339473266373777645193167960569690484914635774713919855158820072551831048612348692966328737704375099237485372757826928162495704624216252668182623801617119256541947024241235736070264585063281659585892373331749632224053599837347387929370680760936471833522321428189466029516157572769865701102493255316639153071092027265450380150295976500291068221308063720452733821286025605936000556637200651260407903196731065138321673843417384950856365741211806403900139093875930410435389165222729584796978165295857702304773270258661103766497747300774134470595996069324444110698935826022188691636915616362051482304321614401250953757077455204067029245061583193292432490023927840447673492437260002213324813603893996836682445366823340169277291652546193105299198138318782227132124700596397191057226711542335287976284229126120624942309626763986322822726850606797240377465159948133672566176794470386220943111703864563361650927933240793210742373575320049546668702095349082049016359853086098136862379417453682021112278936474951554657762012246201000785392236785745299423963317300169736225744439991050643313391463867658932894436608889549582859499279331514933286404058558149935366976224303735810763681670502590545379125451941364462981022205058564712771300578650065100260417255121163996027460460192680116496135265147160434122030448554392731408402050548605351466833521556062761380872326974749843205024409930991460058540858833152381805814148539462757948767008206575322783001986312669084512543675177567973566584313339998246161038411970744607361034566224887851030040767066366572601402187093974654867875232872273064055129172228579798216898481964269484809723265519034513564604416453054416174499775425305035537360614890396059478598466295074511462520799607953113882324183136732195549466917177937373620495718766394836854987972867292302899239948329391900770985344163545615029969540520207382076925029859146185143739706756502447404806382304903132697894614873157978892318308630400494400445610668920235285791345389339166248671216406777995859834042115700993199188950388284858468975357065135717991138470807369815024533666602915218539269097334293281101386727632062864972200288264121993655948159429547892121038856267655537267860213828088366022271062811505954400096963952787084441181080431720136533155208143130572835764646463308912861872258230618297032942364723169439041750564034472227126961153707768506840857072925238060801460544819717493572144763493744726640021212970614089262518404300114919326019500762014739637598675496674574766244120554307572891430150075062489071973303629939038794117990689150202082308027580549337245741307002469698858057020156410375342329162634878183681890344520562656402707690770472188511172224108532151745806586750783347255253042890685280456989588193002751569697068615419558550028213860984606944588874540397438477812270108994199639304012677721398238932450128299388219520981731519367097788366010014179170199399631076311736540869752563370897107406966757124718290925428246832497219310581366444664909750843196506145233778912990823580820211373377036465879843556636070110482255016371887403743653909104230570316217935237567682838212163304606395323861122379555914782964490583082521339577069521093756512093707809394948221903248507319861121331867632090918188565948958582935479786737493533858816853531052030421027492998964876287862648320367437270368264308967133946110526047457570529985617792635381212754481048597156392450497652991596803610327995106137049174449271293797068146901409194675992500445578187528606301271563961220609713628664003130804085550782480228232082670323770692504466154046283368201925182876024688319968948339362925695749306998593222220267214597864109281672451180897939451907907723626764002632981803513592992544026285839053307915176883330920937112481189469946356015142241793804375212266036323076309518610055122024396915845241378793237177400841170541960459457547319314687930500764960051439430894822814239961125219975682856161017007901483394257786829018534209096143572547111515097650603191945388347764628781491731792879825316663763624580078129946247815180287716441816819723839870823741118760092175891210666270810250480850533649840174463350919157260489362689731586481862824917457953848819996697107275095894417814651947733471590279828865217037955051081524142768037787633529917381251229220273141571931302287295614569242395570634317554591250276610875300291267784009789183594070456931444089607314820024092142320383260612989159463336316106137644635005909877213566077267351739486194531276185987094877078914237694020932343499345814492434738178275508236423643850182251044219008520492660957097983078780038317169204464623025741654665066982473402507912407719099032735462131601692766891330544831845431240262835461835927024903912222492410704714207977024513257132226489537687424757138927712341200719395278068682582805608866752420917338191951728981205048703777693419025090854548611046275249457069974122133026695363690828767948161570260146728561433257738309894079824884580075088217184793006499884257607951505676439685862825632181001409583492415389418997084287679367051095946129368689523098041614733005652692700588811748946439161892358527050980263202388915495776096023099143479085854280500786759633357974755040618679001239485078719959625369054224865167023264438601223896982323079270600289423413379562513198858861554726088829400389900745358037384341667068554851934183983186618124576146061586465789731755602276597891014545295234025239022513891648466074944333573769347610286094362894903899377781830308537470994025778568826190251712381814002461310333880906679449141717013996915667823418984322264717051432537883215041211795386428154110975322227220112828938269901728787315665605834405583914002875989384283724266882242382970754245225539382564131438704357258902310960523386851610792425531990173244299691772267295171705453661738386127997479531484857780810926251362512976027901638098831159434370355311231867499727473922483504756722060349537534802872279314910686222495093494941339456891791633949293043401273036547795034399275621432605050179593664201267943407291766958847992015590410263579235689438753955411942207395604115546034483862331836263863261788142443140726235477210401054433573564920284210801444311205503671580204385632393973916457284176637356644376368109962658729909500992188438964290430164686196588808435713116091131472136218914700031582085154656596018409285418117480093387349065794671362416411032157164876602519752807520124360587888486283534737293182407252041013733850205173677697131781043652843614803149367228127626342405664963604603082175605550899859632054338531955279035999962860778307817631895267460502311827231448116538290270335966763219920226353216309341833632490730477009294296426953582186812080716581636638252252569711073183067750131819945693231939246499761594761237978437827356570769461450282942893578494272662320571789788311922644653815928361210685511288400894293622325318514705551513489782496152012197590724257251430977368303272226729825706918093958985808921407226539302577319196535696805788692777557927830931524169467235959821673370529820824474016835823119578415550155209619783374781647590725580232514846555682454512362774487586739149974902389001921737292703545373134312050204906029298813970175969598779731422998031539084114568761621442900040261009909650307575280262550992110263595845800641863156628788874368142214000830105131132151778808548696904258143567250843121356752137398334711634555571073104570971161790091731229740819911326449233972099668024612237765980631749186571190719153956318601190763190454963754582826900628851291718556724034375521510818150161065430813073419063582264079906334304455843309222901585555910756242237622794806185022958568785695354294540144488733328252378611331183699855185979739004896344036869288448985689945448740131135297007892532072003607185724003508109995370637714690809677319288528357643710346349620392034692918093019186120439359550354516402278191975008657605950324345451057137164516538360216967095673411803736291810449317378303012483157196901898660438141103206828621603021278143770050054387428104504749085875853118978398446432415243817594695883695504382594806314449365625687017023883173241951814273753773575929996234387303783620909627843359728739210645278991818561642655229923622263005907165899933538349709584006153470236344010817786852683392009325030169099438194462518386504916226546421048128368015443398298446592440038214600627529005296353427701037305168013650445696691398850084352597295538827305333415620980086088645970893243162863465610930937837179967116005322304397928523229154489587571034692992806018125109513323476726706466622385276635459760957236920342048226509826317131007633203703137591626502078616477623148848307757050731123406063129430346230482470930588205894213217253968469057974909626965355519043680772466021219501728116113866234494622344359643230919788677016997182486425234028484309885086647610707159032641562727515988931595651373207437724799413522476930690918155120279814324004111123098345816702966633879835253281493531352751948172811494646862302297222859826580785408912236529192335022666858967651932057569482003808133728904418763141508889548016012109848595450736437573583675212723572858740501709299070413014278163215674658963080853889641599221891820832806934775556615268995625978965025129390028377557320896211655517804689922377204115878569993834604509603987490404210974582098824047698462950913809990031503494537333996682006051187321243290408453705351521791679087234833883276665788128843443220404898099092830110671782789129493761103250191887370590181107490359152603284109342097206917281575858344333727229754386789959324206129993479245429169922096854970490368775723466640140533583230681476161102173514362913758594485509296285120936401185660368197408983449010833511845659775693868509768783046063473647293980717733770093967325733935611421493382942652758125102843224373696734704805601162442450314479093558824860534216460522709561875837285812518065523457340971238614669037660645154649622649494828104320554745782391490309572668842349073775709911014605707631850022910939536832950856921515186542080773645843516423925890036008429272317005274598354016135480889101155257949044035269793396556296415363727377949682573434548892965473100919568307493891926875399180690711720439549851936251135980987440887204698355053020517914410970588606793381237114479574226055345566908406040274381326253781709072141879174758981593597955524674073595185054241601914171251110428306157395698597252678344425293032905584625785676858057981800075015469644368566891934572206932172248720852559784917638949978808415451005740867203960443623230249648870063319516442030294731631747979120638179029001821027797120962881481481937433115763737971347854467842342621371291271757026076055182151403808622148039839212866695866970660843036942745146700781431588122870364438755895708391763653493584751930283601007198821318753357005588384054112062409519636146455994989412628504759859679110194278315573426873880247543970875208899514921259463792845885034031949573248661837512886122190409082341887295444418516696557847483898318396425549111701546559130348739483351507486101374246324300389620337113603735582474241845304224437458794788761310109136397099381036956862353873066065365718179336292860145819276995848301102014676541669092937919269058558252569797985762540423494902651864374030389508959332622047209723900107204097559654071628569267420341037266935142131548641047538259848714014411440736853074262013363568809000559323751628180358488166354615934811126102451597748329231942954588677299393304880248326223376875095874403725774597363428487016043147158134088839798590569188797383053056856095092152947598219338305323020254750061904701709791586293495826054463443170336545252019528593412967356464010618503370503474490164780286941256500926178280654080329891851867010342361300201732625551694282849317366887555715070690528598511684633218601063114525670911387905142738398990897116565705392336272371224571875507154132999695255083357342679772073345427484310590975644811598337734717095318531718984244942219286335231796003514607214571924472566516798293604689965814761594463012350871732141017169095441149459172158537239822691957101507434646396414391456058268804296121518344641208772664277606771035124800825744917083236940257675681154891645846137871633718925237081333843957837608363435089981182012480846866899443451701316028523782444974570624750152526776519466504932073795497199598252153322519482564588202372973024676193588970204827905186531011673828426202806989420667438180310774691196727373817593992367810337934758198949005626941801858800771132121709454802345297920453287030772955950323066857686104779548825107248693352401516579539295151046500288779210401925479560522711580477436473412112283126433355321771159419607335972922600569324736990727243429516352421663954131333348033938360991382272069096726617613439868700921578917395757282582841361100003495252627021268374423556071474204940864258553467868202648835738708650491116263382883274627025567229413270665652257476312811173999619398865395168259584115223646974455430352414030839029712294801993487611807455469777793731739951606379001637878736104436091928100347383206258221113479804011744939183008268219180222504399318442453116360377934934276700657129505416131110915194871300303745251324391129610565047485991593818792665248675255092528414787158102852500810537606190210145271796316921448830323342732397980397955064156106541799977975628892197457725217004767407999417840115851253112142220703095563397093013553658682090899036172014566869877680376326669817329498794012043265680160633588310897384236936705922554500261448960252631570976325305695386989876887227063939703819701680739012727959418720135859587304362951402691997546212869932913359233056675928441851037662712603212330930837201839196156385979880630238423027662002169310717483843116819654278289619713807950453099916512209476135695893602603431340711340637142417351850960724009948287625166540108930939094312035491559571187099852168050505332072209332898865841181456278019181070908436745614688040654374064873236842231388689322777250547772793097085804977795720322782790585707022022497052713935728524227756597464263231125739477708437854265656670280528186614644235371711615556732106375730672285703092037109603562178849213207621840264760477942864424452834943196074871757942391596619087440078435468292271608524499952429134365187697596591496990594399245714401043866938905713489411775133085528125083286315217536026591908203008715841130552670512017020897916344599347291836015205208500098553253781824718101049646875961128055639430182361985075280051271389602581460664325309526243753018943780836594757972638066464651924417876214135730600635945140023194328584519991554374616576673374507958303165211461453402850860690389409439986820214488021940555399924947332016222110500911312212193432465920151970862435705706192161217578095848175909705870246474535751606909476308855283791465016304951011213302642073696897254048397109845253168464208635506062273066219223237414844401162394853362959305200119897097455660280764101824296871814852796854634284488126880594213927342888478585157258410427706850886809625579730931316825200102721383475555685785421154292997895222479881217074585293818810247685818304692194791001750432395164058993223150135235020865441696687816531797691142250385652724576475062258543993436513301937552112826967090976251486119138736518423321257370324591334589829920788432914345866293018351345160121560239572678140997062493311786817313731044192266341208419969105747822240577626991377403989329625186683073540058997540224833719193800763536738207303933780060630473369224112552980432565500139582112705498087378948265349394062809759641463209726414075723638599831886298111425258804563671097402701304051133235262530469301151761590004885419841879022909066896969876499622527608949042926512903878631186120219326403325080744908394025572053145649924657943345264895052251247414704722194812217500344853294249875287649781902024671449678902809882483905132817884102438503919544032373523228227771628571942556047217065475942174851171584102889107363932773458590074341138855328304022907786643258939761697881681826454550823719282702693276952588876244945400316896352319377109496208961892738774280461956102090277212857836597892896461246893429822279934964335978102042714599690227921815917987603891829809169867225265168625099283438394809055118552784613836830314333417990269942937778857462785363087001920543628860868424008807826175221251285034943164876326553631218983356002793694834684132791095498810975221678494219383377011570985015576726823188912179932567325277034574251055374783746094446577810413409871398976102373895928781883370286990994282937960847967418742851179867096260724750787118669597670030555074579601795689988746791648389383599267121482005488736637122883598508884581126077071671058420656658285177569166155178791699499236569826614960348486826209376621850896734789333030376060547662116046645400775562373093970007659985078541557577707084601515845765988461860842559012578845897240457522545168763801966460289235502390083667449972675834823844821088900801925276342461112416377932485254766701294234347316002919485758829095259878741980258809474862888812438535716682749411837962867058046805721398998780598251663130611875387817304318476480937530668081748501267780677004109075671457320219649040785733418663290663856098382554856094848412082797320471002326089583503639576865647047465525387486658962686118471635387011835115745277551673231428676375714709001096548120750510099481445077039561630366679584608855670952018791943578670236655555812866702336188408098108283688583637461213410250908601405568431272350994345591170363104661207562826792263106234377465970581143178818358979478586939148707074650009485384836791928192865476506567766971168963413171357496576338838459129799551155459044244094860183291381237306873394345816318343378845905938235292097386921474133363257637411130278197030377030865692201854970178781979128444040330874556347768356024841985158329905211012202585716702203099625644719509833314013499603634696020380182694907508667765693453813997077702987530153976127422556828350113121264402372723328974928823710532284492393082554289080477615356323855758807596588350191820641677845537830070741507726235860232410483872510314178251010220286752002675493094258990557327227057056315585510148590397808824876895943989774023758665570941132597300255557409026270564545823085538247810004694143608189117507134969295100980474565666945953427637468821153853568742788920711728237828594134129766391672820855151322159945270473031603947211826877940747050979592694261315144812628879230570580207813356760709999285741798857029713738652246747779898583120660591620199679777393141412815738630618574851630950449686161273271942951149592739924303444872553504569760351839718936945481888794142509555643737457890797116598934755434641115157449283735490793633704938181163361466730498203454863531781920793854958690940147165465277293536933969791674455713778235806709769262723959075763752407367928177920673061782849348856403930146086694818876719339276881163434855848166519756243943149062767022572906601323087280824716947099755229340896967409411348501720888818417837269543195957326898225784044489956390526798735825062977638061765524359939149121978999016451645461868493962278210129783923056529027382160050943333941764338825285171417399446199178515680767028805429005095945206728287481830431315027918082369437531870974841556959499039459063368800106942665503953575046069950152566083271059917297864830467348779087147010209068573843554199264078830743416394269749714946436392571336401609943788141467167577420560511810748697245010409210285701163518658765839846706086177736467742837359049053735235942290477751593211669185748363714902884069755127071226817650180997673931387050644334868012267913831462012822129196963182880874359618859457517555509881269499371863721986825534689387102024135165011053873509177019747185260651771878616689797160010438294592771722896215521806147834665845828735735747427793372303369939083528703255857655066812523975341381538478216382866402433157065608747486481655219587572727626483040734210609302768702377423252522269555460782236551545692580432778975830425320390501907208260301179918748876113894108864479168284300040040422306255172699774583783759893523882092934324565953101208458084104543600301489605021554971086565325790360645582408329789272310340175397788075097511226848708600880937497143237056313509922070749605084094614760888922015258369600020203866351364770365496909713359040918179503923088995171310446647325276731434647018951049366247287971663331091733883753021766101651315027794331834123138625574228889804813068962989616808754751890672526806880070550493738233368021654339408749692506553449573481659895493245811223454584348450898035471164346863530688902204164289479686792891901940672827700987143971566756090323535255786903628850318737504292815655973564105845780858850923881916014858408453137016427375111476204639309097915017788109369003090815514658949026086044635278803968014027887651214085232992417855092162887308153220307668329884134561455700426852930659579004502646377560817779658630433762663402638121367768419094854418992510370848154755928487763649951103087322898439577569679563892052595561944696464013615732957977670143029654568274952498586345504955854986958997235637417413822720607385700683858862922577312679948613070472014910900220824061528654352897617181177495752534565440485636057926153444847611802116471053780338101783837195616481048610211798592263874015217654671978314542137330284295766604144745783026768179305631346531163521275723789266765071731280932289973179010651314644605529267428330562102259654029811409409573228573643203178743254837060152574763495219645811928021562460108951552958025847420870886215595547596364262883469303888462120815977960033106305399988615977098153199641370879224757175056108083455389947776674323260318339167139125166920983418640228563092287892495679917191820119894287737205086082742086536858458543786844201610912787721541116849709155675746119759908869035969169786912587180577857122478533013698071676714563558277246859756694019651577836765652013462441763984918129646451335790365795199309925707499282831793240480834038666901241431401491728270058892361688371296404254203111490033055570711581418459999957792384354288177198760665132600549328219874261696727593659311760892326402003841357790964675136356058756958899707453073065854198515123832718917421437087722542579818601705399161805381158262440630422474595914914381909401277163431384692005325891754490545380395556260320014652314695832368894010934760355683313868698895924875931741740353773012913807069975812181123907882501262713245253082084536303794782505821861367105534198278673161666877986748366354551872041457141179015879553023772248841003912919817134098214076126131517491181063972526036370682875179205838411057068133347152207995297985517519250480510805830562058854966676273975680257628711025660079001353533092471021489416294711042704293194332844585370734836040834018414059373640344183207098652766521539677026210937250400096720260816823190539456806396612344658382674894818233623998301148253157856058254109294609076402371975801226934300660032563329503660569168825871939835936586538529451044647598371018807211345920121930660342239628824902397993044609021611024723764300237218057282901210359147242456899432326677861370871899112264259655224253596625771856049357583977337168548625580787539647898952509861573893721961691834946067649079254718069157731969897660364427282411417168607120175627130693230527744988351905948373665191504179917721057150932953530913923694698550991389468965905061522266008216398941311852310796811563885591589138357470921844745329782235156660236924637608304723132527740920319333212486088692250021685360623233868358414200727738367707366638313010498367546316247671974563030338599242545743446847441641326354243423188170724768912013400189212726608445716205320273804603532785657867876446433780890846066498778108428995381369769971329754872555582777888198823535121120214554627018639550307861225359952715074441098636916390131782741884756196357212551564604648424895928257289093816965259956380908934173704586589977648220995970810285786324051918186106214613486015283442070869974807251396005174479590247338352371906152932482885728862185936924869687015858750366096231406389314795894704524746993619641523472257756442376514569145860679449724658564899114774528279540677552124778289347544167314184735385507137643355199815817021133469927774065406203611978549167096759493134631813701431428054949204221152048349320043030443992757499093549017113062478434941722230030484635046524186220406235330010532773967672911641848812465382382019660478292402834151400186658654918970332645949908840253762970407713651966833342580758799502923565121723708925273464980568143420399360832453524327436944502951323649811936624304729504408785056967657526045587213876815318803883301909412171754702884639158927150678377580029980826775602374352412401415410800639051124195641013137070178708169730416853681555862226237287583980246719726059220815049340571465999159336034973312398663657589005103863305426769326512790352917218840767832039985958562321985809876038268668195831075204457584267963152932158448909293718138176625327220440997896364133237230021563309435424408578756777311993637464558034978212541335882375220921032489894164579291950459808204250309502207392177902123207841775817768184101328119198186696439157156130231448013230767911012332207734827332585907208213839022953866956925949327473304976180075016081296454809981153757268661915072373203641603928785142600703225134960689125484129170641690589286229502110775491616070520867709955118972464533327409617851613973695397388486973652950194614946615592405788606283022340240925467480480973575466814374043875948582742308108329084065872700729277350050887830444321717937604947825748829550552895217258432052585412388666748298648293524794600676884784559288259778010680511209282856727741034594729000104718359336769799205373467659861366490744030237931781922376777006957907786051265333428450117597556252613466143789780165985965379167180082356038821466116775212794500634860096689604219033653153411062256918340693053566155266878589008042733152976657191460699459758525207857848928484389598820561950188752213411928913771932699316225887213697046017185886596243488152301279587970806967857896292502515461583199532196896017244177805159871342643957482768734696466032176881740667138842483718276552674378236647656264696575201548651673478040406169307901619842984248228421440490012822784576467811457227055555899601358284001606885428374233097689539006009106893177169723083795283048860304999498752035994521511719366825687723889504500204327353190123127208510622205539701705731378136446944570841817714974844682201078422589467723261494080771126285042690029493745800193012670613623356115943056661281821201132992043587407154357891647542528527052836476619688464749814223372435179170665390815622891293883971019383639911307540024827762364592219575684358076150877826655741312049500399624150858749736627378577447322514374225425311039045440625970609813192314953975522905868341851744766486173769965563454159634776891199477170656730321792727225121049586595850302681478457662756653418531432009882391930217673893213239665501389280324052212647976015281391387218934075870266556453181829837213667798156656032488371839306281379688978281326959638935114920953975094097273598786912460737913046949565727989393646136693819511391817891449820201253591234274476475423420140282075959131257203765713068841980835512948843653564192756247294624734469183289454758560279018122167860396909319463931160472268246719677147491710938786029738857723801157179535139122940213879854602663619242403640324516682109285909473098124867387136905927330393260275800651300121843838708223762283929373633150580322699723939345106087407006772002104624089727661845911738907891593491074800800107792486296530697484695888938114799047106606174059728271654086912435951169462517643062612058195995931662523301416420284339784958586591766019718512552968396754441595308663978758093789464350951897590394164844748296680784908583444700854102590924031893522503201704805863520920574430613597904045943025434009718175838910865364359691764561430743201824240114676096271743367251779684695452991814056496390989579237182293269547969333930743817934127169189082171824621233742301426066819346916950948724507557278403884278360374747539364037004940699431184553603965493681861410211066026705028924589989082981315719439764466088923183687902222704640140954093059785586935674310223134310522897785958961161577331284219824798710580121446976387337333544958048228083491982369989285873562875432204362275545186394994854710790950039470594926058556458934694970451161967898373547256607292310993876388662322157235915368490821207348677396316038226849222306666152984920345249500851778951769399166137492402311494652599305125740891921474751427876304823396532216467838988305714169908181239787173734899395418976092079981231585278780057513356529832618287251690966246487627989593872478032581613355974747246858505122418137412026826963331339904070202662216697602802620075790846006527128061261482133413871585720872798015597479081859006046808464528408712216574721647709303966581290051877371564302274993614688876427982176062249472068375776618354734648680232436222083208634123436832209673886779165134696010780033822270871198038126727541595030333691857099539492645372218467626244075604957890225800513301944483886494029475927141738077622702503233556541514699258028498902291316656908333604827622598804794522476896328277176886023557003284810715978865779007122335622596199185020978310760906861501811156617917612074560701074146245264875065511234388396078934115829090079032478402249473241888580250478617086330490900759808874879736086678072438436027628130492189190112065577760887777696402677400966404352073066082160939233373064449270618502705335376470843306163857720454931476457207581611802122518380537664105155864433538181064927313013616001944607327430236013484503372336758821927597758273418667629487340594170706207367691873822458329246807016904118776088336539518739457495911837805473082420920767401633146792136690758180219273174253423519126353999434548614696764818484752895436484003969672636283715692782659581097152258242214790833395255158839956746573012945036359633185184804318446917023364582745013284569769555476166164066872257057666324578725628142548664999493481410017961633702422239002713265840102875395881170388295888865975127037735954993759765316877110442989144343605981403130584231201883907315835032946607808894710379326200530094176662918739471681463191521722183765593052134455255577241089337157308935612569259848191910747695851136153622234846731882616931618777345991217524999930807192892348576095680194073095641675712409844050219116756339869789357475442245975581470593424517146789883009830944079986417317032602731066464356754737940564205482931663223861328171571496346157949649887409814278054933216309302400018142607461316364028246917644956081358057067150640356942644927689714402688571569359580061833525171322487694700159094496919242210415911486950987372388558490030493021075046782861602685381630202486666905149943428106631421239633005903628384497073785910571364630586586780714959509578832664871472610496810068061029282771874878865713447428782788328681385955339017508339072157709634094614559693547885413588091859793753174459803073782819026421935215657264721314136426345292231156077832229442591989167682548499355039436164849303475806592952793360431230763589584456233615697169484825018632786209027020126205646289301021124568082332459273005290267488255554494927970029301497598868573130721538787723262296974824322355954078504669452149896870862867468781077825762230537319235247986731847999447702223901231309746634861071083255723949882841480080715905306751585205910335467490624518940373796502078667417728222314242848968934224099661416031326935649713199999701207248076024728333597119677796412750872662397842693734998629402263937778502020364276864084532046651576852270345129977274212945927495408696665107011521733443503547565342765260179564949653964143259195261995121773578939023636426887310607326415793302431432874705577080304654840420997308873501649168972196075148860739477172537442149585446689224111711562374644352529941755525563803237376121442037995251147177886691854587579259688039825032538575749920346172264696349377023808248357709875350071965973936161229870413779350960775324061902755884782564676058692421721018877493275887450325623410953819037536454828303544933672438960370302799483278040493828554912786165682514412381982435844301142063417480869011147063218181191864258424848652824928946687251293073189166845582353852261996860876274632485140329348778244282835358066478527166837569707611716111250010617889053021067054032800153966487731301322382933176860565252867069795744519496254331993373556402273343404728844760658635653832828924350845389089083833917195496778451169369732707119796113617847925283899208040652603947022009126325657189906649918364126063186211435479119073398802599516912033164361031424995221981085922425541062054175622925315348073248092161164260609544691286221666589300179990709091681265747994471666378779274516519144476585064898123499584042461294940513778911118685845703985029506071492768158457371402052782794524663312137247829189086700897562810757041371854847683785306604661776084213730392320741607803665669445676641190097735751052215595910594377399850012153813722716809576009597644116694932329853813414603988444846819379731456184341432031852273143697986441793846586491011965255942198312456011640533850987183134998261596051411634367928611377483576065833939419872621118532395512985154806076453154998647367545359215388919862459469516551122130171864835954826685214482274419535502823889663252072303708017105456867487855572063759203594061790249238031034374290005549992511927862168255087728466219562708511672455914491428394613414183073564912276276205825859692305504091245098368538542557739224940229562417570900660964122944213431605211467605807764915570395964940991014188445502633073375460447185529221954882266224606752282043372458185497013253661504265374368915826798826203495650888117484618706733443201652967202724832393631910285867783997620399245966672249024912525052772407317890066367795040793405114203329959005975189671947949931316778250699819218125184859189900710380313119435506827330624390283552263647152608077464047865265973646251471909382466131396649187905665682264190623128546103620782162259664170513617591536649274944767261585471243178152733927735730241468823686943821886101693999048907091963565375717181257387836824492467662827933118413820945616644397126570499760866577003232525638722673243687329711061367029274629764651462148152891982542099355526136258636623139325554277414428031389702526123288808211762890905984346135102811111666162104129654747778263473613684891743124677791425706127404313217272237985351414930936876451624105907209164386754761220266734918836000214854231141430309896606834323470821807009232324807158783183678438667564822270181893743198884745719234857309395544356797504056365421194432180567319436775466212292148628395079112621348646836319128419687153069846643579413597675235036912132293897432745699065622430841185119791919517546886730538183916215248186825340385169973548401397739697938042839150938015317712658560227472761928869822307276989468042522241239504666334571409170551424830327654891221900209610993350823999485465600824026826604684411518085147916232650167792105403075512478323205913265133737842412548914458635059589107418557004807855287483447375457555815894951644593828107296382322465572278091420377120359503373121866297523277992583793061337348489027213629578720491174217332594399432350455257276781404336316661174075845991145320481194830120026435746379136974484175571387327944676856561884405600017054488893362016593624740998804157085903746580760288562801115793161024630704929034940846600824015338693843562712610172699349100944494452047639106295261470765176245297365090271584253532344574592065047527050243281819760170017540667696263379294210416777561767746963357836932366826770566896491938050808107629783454454441362512698300334952168012496742281551993937227466849219344708472259599081619316738793174524521976396688958715577423656255739833045917438428908424838914918032698187161921644073012947684616472289372943946389961891253498669537665731742116173713070327214647681814101104826702792966711051295032602160280151673613240669152709283248804825548639874212012707264404037536587729136409364147248956763666873222307983645797205442676905437447479243777963445121219024175583532111316988557198828676760710917126837094814784071881264396979838199181069857868583269606352863466690005330216050916279866643726310533026119200446986264065250365222620580826573177934524054490836177309560535935358893063161476177118102612329905570064599980224329302282984637071342969245812245541250771380159433374990324433579832876361175482107582320065395010790217217346596382729950730503112716957559560123950444915890983699945378868847397154431325110455984742590949115555740957032185000746884308195929658206636941384074358554313376973216733165113667098227431246968523895462650445500992510530761581481381451653718824669727658536031040308258342962371055559400973131700253172355490478973544218433473013369418139153643799132352149858957007159034275026257473214852243898789206690408434589812295746991134052561850520000133712880681480475318779103000735762512012153244243889081352426535463871222428860144914180552661235289866612221226046395929817810350195064075924542464756392153243684272584410573763156880942999808095057592694604416254775603642053540935573556519164416960648932007425070623351219874550229594014672074313567328835306272797181168586695937539484201857981761900356019583987978803676341415467330750873933495287679620905072501881951152601877287896305037206041974518620291762090531318654489875689896672770790463124615081033939844943424798368542135987038827694695583562332935893756912690156040887031940932449733560381823777267442880839169477154226338304959746909996236576908107637674846393815487121753223224514683831056923087034273206991346697269569239831913371956183915032019501249587256263734380379584271249940012657107531249366353549508521851373030940072659000993475467556426186318380774366442576523921205299150096010867296192661064634814627451931100010173019506954535675124035311409186562285398229767942131879765393699652333209548780392752413295645262874171290551263458439287852003345605371612600082903911239714460739853213682470784345458307842153853236836575511857011349835168105460348430348593728989573767656139698632492835348831843213978614389357791915584593513368746552320252167900308742343727392607013359240965435423529251712850149264216069894560391571193777379542589492785340670647610899861819125784291639852540700581115703446760031853913197046329166789586284810775080931140768196506569043579476468635302216290313879242705702654614072434175924870523597543239126171265583624871252290172774830532758114651662604100024996967003168276892686152897570362683079407974310885262731238140595580616204570378808930066004763456058675270151177228510436534811844009812769302800040411116163175751333920591878014469223714577949251094636662872671190851005918100631053234849754753009503281178486516767150882648581911068254445879410456140727119538549427864247413552015438987193042513412871975217027882277671819941169775290982042711113424867711220918382638382285532411565432227485663827247072119927030302971480041799901673892849031831778050389761567063561788915252811110390274401442890998376763355273610165829885703132275054486161758117657992059270637134932058567455080888109056831603311215198333107013712878657397502399929886890453956156229369764929766340083966546141497444040380665674284518950341822452685516452302337189981360560038374743548735950933494233047961301477333133121972491675811662351246494272125640472809497842126952480571840984956538525243282657153580161515376986113652440749090387580438198592015948887021362035871478420005876736607918739072582746082778889730064684137454388608546489375819199765212340408466113978764138681411215145602202904736528832425429797310155788537163336816696390101414112790156460024355429449770690518780027587454220462933530398786094486657018457761313495309015022281109911638162193141714242638706340421973467765435872104553850939368100261977008244291942667970603291725753147199931749957587768577237583497798319213362223163623927087210437834785064686416991995906604333952744798707650089147182928335050378794650038028375994296848289034075674241916385661212427772547230366515841774140416088794364546042973286816847318009187198763945932796488302523293696754035302312262877757841364367763117494079475339104077265568863788562434125624426564494138251465796711802457976737437650968005679605061770130344687205583260839082459098423403871131674171780359468071950644019931969437906824670539911023672432496256876543627862487073491603930913427486120184231973444220582536045841604941641951301346417846278772157758804469713333225744343533287222753153436404552614548281883499921544983773447736853233874829047672151701212162479723846926784008638123052202271155328089077415396951275745969900910275991422014047703787097007172805968862756054738442237127000780900159921608803062472907384547995253804774382581466208793304234466155255867898203165922620862995720699012216978127105393746270133574974208016500421044622162758711809471522166627717156896604619359261258489663892420866417223838025417477132487961406311688994015944067588817760121251425264699864426072095670508188554609290511897170945133524186432575685780408076683340626737890593524300324666131376882454864930542884584965156086242234555948743708583849584006107639395164957618090069266654062093162898018578514736753205390298288424198708855569491082125899558211138765276588679216899201444943939615189955667066671980028648847589651241315184414701124358795281514299055507863497061701030334895412115990721445889625928589429813700535484828763121194778810407462113970113407707239008807835938611695835824186983677182871052849046594793630826782077131054297868679232335111060789551915461972002153775945449973332058202042743757115687420200991988004674564663766948367009938273156195214055015213387161647650450876132741629297083466242937345397759642865369919630547549242175874360986125174332080807697478810197042240106890083928552903239672907447198993653423547545687493801793203460126340612760302376359322134969936567072481827659591568301403701099680026403140927513427241669337555426128823015156180376169691930618223217662497221547017920315371946494953177121724845505691163578087646381983418720086076605363620906839229995187388036781779988633850625636671482454123140582303886007200853344500735960867562265302012032274156441177657654410573295263668502511291280324807549816274912494554757829102570476809637151849600399858113360327055238563135705753888230793032888985033984505004963115219650997707256323329616607180468957310397214471940677477217536108813133330122257506527459345846202559216458762407683635137397871243044321503113383473785412146870590349428985343418250279384377802879604658249195434563927533214241915650334783451680259818526433026608237156457978973043184424576670171304392288576630314775049402865049893367691965081471692813350954781072139832000498826435428786706140610285660781738799727926533208271698531857060115088860272265237269838889119681284572818263729761056381039482360575521842848939319062766447949256957439574703056671360148031567530228124437816388709358532615165549033529353783326429251442445882068969749925731563450335891283221185162797851402824909980374193971191003458293664903087167617845955792556019687439583943745417664232615119905461710345342101997323474193032551055556543406671144691875079897895245411295329195712224268593712486470432965949844572086080576879349355370662023021339459145909459505274827872370356865693798374956277616836922285482683767338853921022198188024455554149350833531440874235796595765637852939225376404136732415688442643653228786177913482040522834963120606680209329899738584606492351298440327613566188181720247034008452728960553730878985572717767376662945245566393477243896784331765339444274823062520953765795891426316517278178882151711205464441638727363284119742199474222116708992888022339557508299457932383480829322526927424041095627988863829059513353376426485846695559750964715065593014539244529213053620090950962729114135987205086314209002434723924964112858505699082573599666508859695861580643796402459369659792345497132605776216005759410610922773078832890742923088666138669512051987623662104710601685597667262828877856057744505725387705886078718569044494813943678525246123519602741799076379345566641320299530639630058049728760016625355619222362870318103037350344580307596587784320924606750786572832654035294904532030438969977871389062723209499127374336151161014208507440904561952587727396277843229081991746039821744150094290023906009380034366612565110345295358556862280068181699484554891908010501108485680827772611719118799231129581798147117351698844028658113268707477137455969173960022309281401720315372666716222306625924690680080524770007393940652973789746863764529604533300978639144983527720314819184653091786944077858708312869730683850307210503538387409344703937828879626952646861053388304887380562531851117582495453252248297575197229457714672231389693585874065562647224918106858183653556747965618985118056194986040649166149568548506289532213214264215297990738469971720234171806674388847089196593079547554893084012101721306998633978888769028726473402644232759976036329076993582697801724363591368739726424773887827433145750459809734299268678644975989066844925836196244757367030731253042855237847523622691594008526127741620564845355010291075850504202319261729574674411662115252072884961641545472455180848771751454011746721463963107088655427591489520632885560510309822423446327270945226935213121208224774366031399637511220170844760789871893009524669158182737941622852146615700958901494801977673530185441098275376606356832737463921232145751947220950873212327786481337390914617310559809423446258912640695396173542193178410459602748721246930436544311020908577648896528374124770462337548216127735202562430047920913598770456513588550323786106749925856495291175455922819849323401153152723319135413886800572707549161553012161081529871499824701529326309963841981343369589431526462064307148003723485176909909530928349259810913009174062192327696020970307249455482516645335379301842473759175878040450489714696842316893217280923109102057344727444197472020545807544670313700736837158535366049301375232796834724114066283332992110660744268175101434934421890152058232079074769750282778536009713852647516629065915268637269591264975909087109807814170902262382161277131123824139859561834905715403597829913926826496366856878474532480552113292239042910921843468764019988072649002350542164176502914545958057693490223390046752181397282079776888068506712977605189827307833392009585479652471157274861317757493420773291532515826867518482448062262395713350655633984603851235568340154182851983303038086500087409369332222292440400158456178073947906460375062297893199374867737953615136582442812085319384691735255039529672261963643180635596089306692615651928222929764459682443138706363500977982625962616453475845862055082664749556511916865429692427903626582724097458186280244163593739198371302916114997068980623720469654497253691679415043535530115044126243150798553638870770425586587965946304687820663493743409320136577701000786919779961748083103138682874872614904627406015502964204677661651539925335880248535069774523621101948992477262827072284214228226402275104534322534839269165809554157464019218504915659699705838134200602437067713402511254736640441393044253927966233467335248212711724430257599131381752590404906122352702326362253358889669003333893032570370943124831869478861878338959972782269020727168884796314347121667620910951433798011495491552967380824203660148553405665338643480032327738760758350270070366153160268916921186549730280125243305380462601347310013299335650247056248115337728368269390854641965515527376048540344194358574962479268576421246686142362238571113393642972773118413901615383187372498043069721137854545730017503063613514088781267195091094162098331380582713423910975558445120280953336795117780975524975835081601923466050817061175210554360716762415074436213089896314193474243629572224983744156129464667329049099125056069921428162485806537735493497202642734904703001869192992760390318932257278777655128453849474925466339407505113514969634313954172298932585310134547762091164060945162238066328273900351241605856240444628322716985637287662979382217846894112289060047384189357688304431416484001976057259405325344765549084114936887166611442216120531471057953318412480387360585304238583857924959402500535698447537932002434838945982028613893218261372627368642703059005679543543764960185458380661470793542636884503121275605066472785067340142170417880815253245152600223014344416682406740355488611978287741851989415592032213757312857720836382892423937142426860415202028776484332148598063517064238349699173273492494827731875717732343692548670956785871801126887715172066192150822776081869577825920214449984528427847871347416897315674037231115342718246030011175889145624383239713175835505360675829468352585217459426829252007632368194756984655951529927088765041759051548135558371529018824786169058471771772495492307360880098413837934545274365558398293143075639617823890390636396589643497732935682724051543415977693806966139245309568250923677549961572218568201313035722976158248952836414128365936127496671435296483774298516694091256826721788715438525557472540230567126067947829311374334681970524194130389225314065712195723877592024196946848219311782846512139173976641106406770403214310798289852231305352527698259749207582638332346448241256817887073425841000898187288440111868158591540844444710661158126109767435460436437792350269835665152836751088698757739482098642924280315929891052335301881558218977777723679085666149665425736703824262826352802824425646672512011676109729684864344274135286343330616877016756869071236107766601203664528915784322034536892377530306618820529108177816624894573042269045977841084505848061180910686148057345326919782098619298877732300106944691639272812536177959657388271252418414784268834669934593610127622385494543977490160143239743925183554618138349974174978762250514689202530348900634430323140631199784207891017203997531424753203404934848762080880502511345328500196055100841290459448319981659756519543225104981954064404439348423570193309029902711209814751233818304319083729048224417641301484800385012213028653108493655394816257034815603151401657683023544277897075682000639935135797775191523055609291652225021821855466896339680356737429298296214342448143058099187927327106231401428119433237214397970870142505989538627013230538183740857384662623218675522739777016443079807987240205017872112538569125935868054811796979291922671086411273877837291853171971614628485979225215044579933132366278469674005389606060014536589272914026288793444146723360654663852433236328331899343305644958246343886511880618051165562192970032433278825810587732110889122123601822679651816151324954504878640295059343346615185471228960470057831932805239517348827459316381606871692381041456854726000219174878063679023017096019906844664542040581685660284967478563720885694240621284502147789422263463895390237121914963887193464119822240366397802031795250847173143726914235775198006685264303151921319366228472081586826455123878734930238296733962256741769862305565193569452830156129512996155980716221186729310194645103891288722792823631731438422096282284410313619964748592571604264643377348075508833882561873035497260646343369822875054420861528204603364204555231351613597482862630939686371477418108153285269147569357240593002532643371774474367600260654912435478608612484802557532308440572917063185006564514481104896725140464650041972982570206674122860594956806536173667263027855720363189968631414027315688791507556758591929946388349802339610953551504914333447215185472444214693110405770701253473514187524955041087300177440333633414025803200626270220859551266330675772993280613606848909473649383635601223753988141661248354941125179709402869626978278532138121121462491281151545256963576431794796429061464613190142971060364431875256293229332542477394872182586840208378267560079747676620088502836370156347299721971801290197090724585051763525441834520938451207117932540217348060384348046047333644232782890012004231428288515266425520550275420974292361929061808127410778845591422820673854471259428879705274162728469351851416761526912057147143474616919926315947839765746309605870621883399561112021850560311108707750966206121040761844172474919207295767687747501339246784051402001553011834866862279723481606066381565269667487883009513523728246795469048489622605076183220074047086389526344380164171358281565323526360245327964758201481734608174609504111217247232718308261035002221902139836946654655445167250261146770299050762366474675964882921179202819794043165464557283293685617687066337606864351436821772446996598886081424843573298832471996288708737344303808850785838883277222920626612555485743878896227957317056133935015312156230563435728089356702148207191389780925837576390763943929496427231938630708088572710567895399065453074646615888355279095392590380115082510832484587238171117991531148716288138782673617023547004484239181917830443353827457011286698675666756220056232556353423281546611047236734073138081686614722256044686350907365081605600432157566922608693077641447163263465314230455689806077127102023225874367390596953298104993971612947214502219990989909160539460862265161566194819075032425661008002530470406828542330887080315969073734601772989368798857444485152988044558085080250174001698382773602148103514340911113421191817965766198455293416109754319804450236440459932641429301868442929328668229185760178170454578834263495386048832078271063257582783445371003502424987693963840155695394917241432067857027758596631027950841280862016005865710707589868732810654761019231700971845561984459759801057761051184147851422444113803448822918824950448453010974780086711883445508055918025734207386960583191757228389649515953397559008818863620954989225744163642288914714164116441975289318468842823111066269028931422786683247125713424587305728485453334071685926605746618262560569291063017843022926308190868228682888369546073416156904405706968138632273861138018718708391783391881274627115436117331260357036319005167478143438437082858120620185290674094894362933811371729950437218432270494865513726858103538940144673324538427204092740688632038759012147786563675073585446650891942142234206407489743821872228077583356144991315030692296737128459198865683671048981483821899481446548862312848863326300171332007935698034800605264631546306872427884010541478027398270055548637918335056679358929316349986627025376434354722279058765148605882521971082205736044271745918515915417570869986319684918666085163301200992524753914429758840198167555294227453793195172157578005048929011920135670933354209148920831416919033518727657440332475505712402176925166569652025334731567856904107282060933664577483239116002860007308472048020042481253856404014647328223336859536619807056383152054396578799231113260147247532333167301855259899391158814302227108292397114044182863779976033470994612000303164981485470025054778376083205834585071837760767826906572023944777742715353390588775309543835930913132758701158415196047919905613624214514289491175085446904500520128314548458800791857953105821819964897168550971710299845287351930325113700225237031916634958142031917483402452838772439023882288015786424647295563354111280137147592833226850221880056721652764416944066552768322127917446025169977658252329320611254462884683091229106299720875464526462846360913738257307167451270674238737115157981899944915819296316895473972616404903661027620184191318406247685690194151882729645811701878932192801686732780000346215941414902211921025976540941437460135848810183520357375224613777551129914969987845711219093673456556543709377643197511966205422153382098370443377892723320447100911006085010341114453511803850417913044488688070378794300679972218071069717951425483291265670813498354069477986070346400529769069671549873378732491812356825179989841355941645093006726633127016992383655223791687523828008483428547126572142258526452611247272094806202906839740069757175111833212239835261944987779316072939286797983787234072272443874734278571266398700602053913572358470657291495821597659668187686600631561717599752401462366080537258186771235913419048021852852558949252323976497393760662853674805148258800452943282001891180479151414361239741992002361259738132685478909012371654068395006271566788035158764171511113181906641118563010058600890468961245929800732349443875208460917119668482998089393457123922369854569979759837409665311023882310824410104329276986855354754769923541678683180859408818555480209710250952257258932606767895681118920878663670802768050755467172902666830393217749909515428642428839992143958904399520760668781431858996346480225053761687881975717159728376260181708552480765259398784491459132837922631211387383935735704434688702997956290661915533368769057540233458739693929780921981109606775136387253315550189589714592226110634443497569618598846879932371896407312854286879219581587098271760734986366615172259340697647880852730564684469395383573311824530613854134447592739718607562083623168688056676608122987630884844040282944528333948697797608063259438913846827603653030497399196000490754733012916393426174502949903032552919712789775410106856635521043251756494035940593519176111658206226116489091627982967553241550688216478227148917628963509479129498928352887406895790773236333417733779327182271746631382014555834255055047883411980475642660626120925145651945739008876462805608834498748019445257100832841916793588527131920898174344057949089485619079945997065779710525391913798999955540942197032820841686254548209619812267305082625880853466145300665836531421927487050224779940093478039119678583418111937227705343584999496721949924352957827896106896696933046670384216120025652648507074134155631344497484120449871815365363125688674914487611102607272352231773407232053197948048710177596094595862375160812546882723923608223046110223756252101278029994532931250891655261904023073096750131250038054817195167441377860454775557010096971310628063021720610607391620504790383915104558032094260811775269386199382965389097379882030257719968066332468747247189227656666631126335186021080118503891300809669617188645476796417118240220745413743353931189750707420933779988942835166930707604560847147031377679922867456937203835104273905822895116464914210915314339460300898122675502889133565771230087226657817802181847856654273079157894391746898355838762688441582141970630820824749175936590301283066174748072826279418400035430870133576763531762140009064945597364390803927062442883381083328412622905440365415356819499568871754368729209207545525485979558552432611763613591721088533662346607643551967180217437713743671448585859549051048874583411904040970403877839547747712683628441806550075350578750839012436887822022048650936778740084184474531673905419427205152131782215538090997408059791063444712000466657193986337174769636046105098047605595974700029156574637945445042232768086211005343912251443225338082815439752454370120595173489636545699766475001003733114254610709898374075712924553817968168426940287974160450946932328373616035885340156938925929193318263017359167939863238291430568594369152871333851070361495475115088764592510765352429847849300023916970276911253254751896517938298201785167982785953346973043132481567715089937187329974721624977955742353350203448521894157824034163643155992347007853316589360601848755363108583774312426485889000826574097111353832256920759453444312018698130247382855486044882382260780002151786027350740264896841913391370403872200059243248259772140949152568710224737552719878656246331197021463257895979148294009362340962035268561266701828994316463982805245557213930840031862195258084076904406777393335166647436785155238022578657092000648025530970191785549041991739155835634042540607057817948596826791111902366008606674401767950407195301018978849333393526686522982133902822310601756371163471206683916090082977497967150839422272342898111219730632607473671685782069578064676167614249832374896043037949904892596309675092215319637186591904468877571797318725165240607106664806447431678846249016032880302491366980789416882847425811733194730168270456886836593420521097684079315748163459111515040975828531355469958462176387674002580787640329437694428846514036276204213583791466930813138163923801256682740741995426357681561465570826948616543502961669418374769703502430866521490080528594538240267226810427488762346758525134050264526642267498683597444187503002287127286095359888465389984677832409105176732132292724800078547113003900119263786151459840167109706250919149124385804913969453446667011825269106128306234411667807431496313534564237419585351892760506221370862272430160088833172303011314419474379140470182651434795076951398435672041726325625805524794822517206712558334227594354930480620654385845862283761493076865009767808065789415548069999149182603234805055173227798498098845438165940942919000759016636950920420681433693856810496621206668154909665941655780874983448670543313825045314096031142031446672397252744794114247365968536650227412043763605868485310521191331486533034903990288230832323472368842624520627405824412587847279475599943509334172362818754145797679147405796027532970052651170592015336043862527134628856867628382299715983215410309993688317084577825864500497756201497845115072532943414889352815206823323944570540420221146568782818599042556736100865991549156587287784787670633153591180948673872050463689080715550404930628455325834393004724642400291915539171405075022530645107391110508774526116979328544116221193344204782779215120132057104589637901703277549202340219363537553936208155518081555631012901501001087212465267375982498590461237276593472578986390772642733495761498006791812368565874064614568821464728444493215584648969085235220720310809978320936298024728372109109126630070842336833295066191586772276946673151961430686934452542252961930042351897371932487898044341802060143568110332598725318298481103488029474383583689008769144710918729657192860030892143731463675337644198588863444331457059016610787904113600590497093071702650712987484223671182666884607132931148249464340098199279218853097583214271641749930053035594395968124246518690662636588109923440323389160365648699059599214168076487807828166852023807145567958617873898354558636579973068174522203773610520370572029360728352457679421197909742217882377692419850526513482182213673299931342317131679179178431578759651157237578616676040764055541752885132652058673810916487087793473048680430382355004688475835129027521144570283378752016143940126507641897187247061086859740500661558160864789784049420907931811710045921944066121603746611392375822057907052760711102317638961025185544549669734265761864734877214565853516781687426805786930117135804593304375674707300596160080246219401113486870098467018244625749346603563131257778666707973127901680082594348128538900582512651500618660616510474517226473088286913490004645938428803454292708898775184867527221347293176140307629415811424403506987712648724685741396126032321770306446681394553570472046415636202651048705381750697347098657698522678492282735752000722206349125077233310744590841792668715397427522167738822799707813545040051923104273915756038529475154713949759961006508301124963595003609060734388680559531468765410123345394655820053635947685198246215191006418445906095352006974288110332563895725523313902080035001764862094317283866736983212828442505927315645060743598293650779127265287842028286462817628431123932710948474454484274356460383899390451228689572039008213086452899580125015128166881765272085052060246432407496388235976821571063428083166875115379863137360099804779201874340159942087545101338217429041752483945406723188985244752771731567007311624328306343357678585356724272371628022384962888743309909995098642295059455899831823588762840806113917782626383115754168358264652916602673448676234409508895947731007938650711241223309811803505863042427297190532409650127918183186151462690365650978424715775558376918063595923314784187674864888360782173984215917172410547424523993156356455784230338093156821772155093481796528516108452931494461085962249174220055947213868616296971391585877843302630902712936520518124139570731080758670681554404719850955025566984393523048002705605997208379699369901230766776273717280631147676977998520243868112456716096680659183913114812336463704199365755701452782951233105541503396924935685265156222882474517831319072775013563057675417644646763400879373745630005827925206531216610811635223364902760364496369816607051202584484257274550943699007529890886217280016754309224248191347407457867246612808029526832958095985615015779443717326925284352391935789349301107002875160634836450142690520839118683485018802965416725887351876838525905958585339827764072611358230462319923221324025170335166401186084412371676739866289165763287423930574749674876938606620007992757476980624624393522646089294545226082508230783984454549941116988976618748095845272421323269454940229723423980153311842970465357596033943720677866167520044864502212018125833731506331970753059932595830681252954413260302959372849916310604005921740765950825639043513397777453809393850254418375204630192308865620452317868541702083476361363494084089141064255379889217984710319992666823059293212829849736690235061708152076517744683676906814893944751365494901023226187396297548206365735547231035586487376811616771638773972823001308160636703898180547748795474463767126768120200105436557984525352848243826342599470646985047323154767327916892023414970867634752496435086553115022997124897798195065894119873852431138441119810397498693552961771169587009467611046780247119478894387459805005734096021703014780387516091945210140814146105647109225312521359389987444179912829675826959558840724813568657551232101492023136715351320582225005071501420134532113287833289294691046080932215033402499212174030199578646626929983171927584789760389232370011937111929700902439766721852867164634201928416024501940954970710073306350085995016630221322089389436641651802004948483232866863349349971785150911367112348414488721042536187727532715807058404828646916087417514309548026338636923340467490929777162146598996769283001152483128035041633536255650671015714891995934664241089808466009941425634877310398047469115276700471868121332651293972182456606195418386374561373700098700264133196720899023632161045137914674974137850737104864135667680929872332369446163264575992361468146927952179818526394320587130246170745453274602981447141060468988374417419741185737949449413069367039648870722593520209398375461874621269086753142382129326077371632755729124842606866377851331623422500070563635870560883485549553993682010886443009870350383223050529638146995254328308365605580776282410122194186158633236222528376548161342149728968640828430448123814086208975382619074370763900677999085366557128045512635744570462126362880463452313810964838089778929324405280207485697572219632143065384465481736027358047318774967104988098368307336516971164286373126180530519686839155768631414990881355853105818147203199247503570276717228698644902717662915721757241292819555478340342108982547822048165348939136516223223003985225544296901987670310630687929254395199464086294656370092274935808723425792733794100725570037230811017639474173459505500951978310589796853173152283891006291905307119265637381655840670800609472903742041801706208360180620179987270006830575961391026249381385544830180376708553543016306959646435044150192108445748682116727019142073719793217380109789381467940607338582825116614508327979656206702616722446875508764394851113058943518771460512677432736450654844547095863187756086118673852776113294977864729283521434738428880719929248131215467690135324360163061136113228905911194069729939613365494653526260381646137920590000042775613364230238727322289882919918028937615105154739141694392001960177016576337889890970162211029112245675251846677150970117236293036354367867848806187675976836475873771737356903207108485123824691201764772456741729812869437300403086189798097105416213173306904009264209330105919805065119877524666383659385947013572947618582050344636796532141546292016272839537336100049067751569102070457117038057668747138110560765775612059369088467205944268977161984458544360775825271712729291597777249514272429560884721013402419820493986342378183232730235294305294663611016013974391174417690522113801451314856579719728049583202444972163505126332902994265004967344588069688769133609710389026880207903044364057217997847850921073447606255315752401220487918166138015688981646427221841061377776732595429684525972990277729153824246248322569696475822908891469229366113171854348241927449124899199341974075027279381641351220618894286708562264326167882931742855446267552405971785083459891277877201826776194401563229341996548169338084499662963300747872747296145292338745879502555460071424250207237648197704733861549579182174042736504338510266535252961079700041060845657144655333714287317909981868821236048938827352508954492658222728513696038859757907738237259657266946052118914855213337797832425515153516766310572988808531502956353225073743794164302741315944836905291029053775964007563257261684018100502087962564989464963094877766200905726992184110415029306781908949865582469482765141273537626172295845620509110229273023235061530176808717272175293445670820236467409268481702969955786400638923369913540717070374352605924377653287192064445226806159598712110623981537055250512284694078940411534529687360325557859765616499687738105326436471535794853173219580308761508090081829316732769503327161886397954095345092691295391622350243216869940562082154950629351496228353721476842911077027500211231062405508846212221204983908710502381872451771081647849091259261350067351623763331494677455137585672720006252364416462986728601353445396604813180150760529882988945377625328761903278524823845251196245673664583408449739239050122373215388628748081672133206439216938023378275454656779436220605108728532952133507273722867025453579735635386227260661400328448831716272635918376971097208726792532402396377485306527411414560709706323236484408940802123570725766130317338368019543757077062572080388691617519487071943403578181525559858855053215367305305938062719841632425205088930275995579129306614413272255511527527973689405604668708160238021401256409076273190145775073607004693703547411752606974056438008719704065335583220332802720754972922689371823531204934319264330595157426833601955656726647369816752151373077852849595864664151401133486802572962109355467448454345161748227057195303372329090873785888024915275154659885753036891868456586606068686735994120163467115882623657433484490500067099735780278586481515027996296384281418097477805174474818930684998983254499539663572943251330738436774455767854512276136620018527142336851460633493732848405910208320778686375141965637049727683180372929131460057404655085430910326982306475035217461708024251448399546842178095031187361058029165315003384807166671604434779655360590082563513215784188342385901038519445415163870651211089200006407899216040739022411690337204894588861647814933322190383542910975320230359637168133730142219421807020160460496980266123150139498557438606844058792019219719003006583929233590978762319219215909642216137978058679481628074409295337617138122288764215646156167919947618938005805915707966092859453891352330820690414745699299965184082252664876711000777299354895452733861221718529098615178619941906923685541291264434279992328031824079482131240788561051048462003344933630868340634362495723138341356871836529187439991079368707421817254040668325222946515629511734355155854479291677664537171622936649457594520676942168081199698244535184163149958608855168528452946884683129928889643430480405603502853193053642369861319662004203628551373546207360379307272895085720494519940422297545940360065012752654588926476841972624085095915647848122245557362154155899409505766385679005857697103867754974286608914856528985649991842345531004980391672737404079129706237264586482844345128223756218597760899362631243777050500677332662245089581190100330065294279293828382383064619577349176116067318327998342994319645554578037414607087588976019872663662049160337932291573816888467326792364916865699175731951020731944282223081031565172606723348117158029016036964405542819480135700641764643173487759772381475211973846892375193011106785007870035125541419893226135712117175675482078732774309667763524070164311602165600046412279348255415162899111719566718288811453545722039202496308845733619980001522474703372803703947027742415498869107410875566647124382584953380900302049303816296695092840507926739301448291008551396740972407169872403518853703175060880843273503442270970338689824681805487716832432591507033337583423830169123993193775024972629677997768537199843793494254616947363590882436831406451534125009037356128637765223684394716329960514943341392944346973343503182472036226366167542257095109182541097978640234315438697582183479020774556246567724739914551611727559388113639419222813869494167486772698548812926638979633740175632568706288365603633479511226395867978094181006452193416660160806060281368766697604926722500047953517935261154992223009649683654593241636465919704862950640679078713928404432325138703402906810509728452450444507175844011423320838591836122879243715464792040850314684301967223181679653057528146927500794176366573759270279734149079240441694871108126700727730746043099953880283464033384249725144324840801254906056848803079353758825476097163076406351319420268071595940110089661125226462868859155113564438360816461458671064077354184166320700143140691810230670588105207707332010356353253027718148610930707086897791030435398306294000900886991337088032946688515228626948946125108652440705909905976646716227380689782293608437933840416371282544215570880594780260588492222784702675560562910306175869527917273864962620242292781742859547443285117833482638172397060021402548066903711502870732861170141519078370065508325166286979535228745146933322019124222743755657533030666471966293841856235552751094569575376863272769428481959886056553902954874322851454496948954150122008612510174360878286802776447783793201819463191071718187211724929779170843317398086019825439332294265954415386996426223346865770286841432344990824592397593323637048212301573843337236501463189602359934224336692346568850596837737056331476987067140785832974513888345484486830537972991498127187719417349966188727121011689269520979725570108406371995288600903201535079658451907202273181700494761351329363252640664947633299787438780974585999679724437572800698613419519135131426645274939222017071792790020408282766212676719361059431729326122601126117416657601999237189999075149027671952512075965710601978334676099593174903223538521659716025735059912227495197391398821496964629578263932170311981881130711876710448699350920903322116661899621117508571501117818326079712014193612216829413622933626258633055132280464462334020482540934934176538099167975289757847483977453264095249932679434933561813193658736114159665239982771367973305550150252680666085553209337423727767961778259421203897945519670793897333951230269180732804783841555057600359895807589147036650910815675421764060936689599711490487519836065194094250223979415986417674818861353839248475966118429972548110004448999737581976600961243886325121107295616412937354570830084300452380899253035782019367341288589042346104574747109400885471065990093314893529968238610483387477646943164430337350903575599910181287623409994615268258066656208310347718838371428531224495046659451941542441534454861801687055073247440902644199258269580612054549905647974973251414901905990398807611012380455573829866708285717211759436178701129025882234571766958387503956585686631131748342072868190010808346939156169990191559702434313600172776225149771680089029866939019278224063745192314861549850830466095310458645306580533436782344279133838820298717789392669714036983329598546784171476462926728730232548921175318208266577344514664266746883989875237662524589226758943294516206816414486622305656128450694792535343522920577940886001961820797767530544508324269465399895772838482051944952874117564712658545664261480091773236874397418229460917367942794032775667427389673051183467427876827226321716696806320836981063992357237975397606853376277211056627140315971148805861676266107614276633906159762139533279259931695932431836204038461475712319147736501881839654248077857271070119304924633685689921304986155211374651062442524218290641913085953626283134099024249689482304294190536466880032054665723577478838545906872979192966913071556841740673250973431046313033221829705576088989243643010497317468591737657859195457256190464287269757387472418975036699487839326157846379466465960276079136018787001582092417236388219787093548641066026315089249155893267891190685557409071820774608600430269431502235439015118828516260218150465219392705815203538280148164453279708947722097295586712337706267682622639295684427462464301212190942303971637815275049927062160552235149888331401150196614735637962284743202635955570380167163707281639437804857713789846429616673728674922045051156060951987892114426747487726164617419828261011047249494036913408951578871345434134292774131340465902386647370752465270282498578878500391999688274850357215858470160709938031245711564404392755180469036159477893214693854775815918353890932104445370474698292303920232305362251232109033498819943810343406597611890718322896835745534481210069144271502638890980700025760760967160819084364428335618584088332841211724059689068282034674104334730157362036406859419134538799934416000255374575048779559416986306686938205632313156790284027357507522833666916916424039363591428540954365494501004114393912263166374633120507111018588354315039494222581328300142260583585170208576957908945955644690778910305294137021231560463403917343646494920004986391384134337554383498715588155982537362054941583166123465135746957277779665683802531432161745262329571627905485942050408063341731916344160376578498491643163348217621716679463325755588101968117511677598296222730272279854452433544439419662406338005129701954799662740985680372413804789517876687332463447497388873367245895553967841527229185154189364034567180240094562012058593793608298775218980419233985071843359966056262592387546647499610420804685275385166238152662641182122853803760624286067391561740539972074656942726773816995767327953631318759829203914297937328645740510557159164239578359634992046370618717351186307253002092568444493801127335908016899775294563489016181150450711154490026392981072409967010752252258598929206122474442970048339199168977588303442398925973427498597932001560128508636315682241798613976441693378956301432893093463155507814618123166227479611831933497959836117543959384011424514738955587863944525688757551144883878562414796626356924746961484697808884870649321234235014139785050954374521818842246736850428655144493917902519475439099074900106049272069496409908827204954130141842361735504627915631884986098712886517874899711323467534929679115838710472333399924363006800791692218083507818246744735696470403456164703022305514721565268570711846535282522889010283446465272977609949711412060580142692192290286158901737221417653803808903302059894497118433774483709642046771362078559244896700791537980464414601566782646312646369571743114969126966880030328073534967710396482407102028036594081045320204152550825089354936461394090799837054623640672172285478537969025375015359091249978269252392611239333814810350720030263826917083828355704029425108564554261012659957221834652089603791814346143581775498888337212296344582605934644196586976941486481176586660073577005594813374898120512969726323114867443142548749212209081934048164517770861425889265915985136777647242312077107798696140196128370837497369738173050106948285682357723745163637025604643463944730387688569625715232823110267656127135283954755641964110473602918021023403419340430647889301405755222789934135192746311061757921867056862035225518078857917958319144486590550715505227006609431541572120720619885425643382544294171345853997936449663771186730969089096414895283129106890463971588102525005458953957373195408504133956065055590840787508810293597443951827659178334159541800816433975151563217876300647407574969481215855789307850585821461372927178888846397663258866335243173417738496448173167907039654302394066473978961133937138358683843916532105200755939846613660680796890333479366043555163039722834894082439484000887197261911985216146925244741362302515524755600084900930671959310082482841270485965097043235860075571331924958321954139519879195631799632479536190563093397968444174347937997266193762383385270863417652259864614989338833296107367018094733806121581313607260437337038382481441465304608496307761917648462872670314333457712306633983861874512883611028372862374128554362348547844455903436503376607052556725214826252204590495148230144414028318279085363653252744599398293389440002413896080448501029100607972714212915019777948389820375986845084252407034864729362561385021257201965649264885082690727906998109436593503086920805192352965573784018598721577387052333545818772777337834459289297341703524718336179488423651779306792690606679081134317158553793563703499142054721683159922470631636589485861075891194602620503736548307454116591153784288539990789152049260051856388460480634590881847471495265618840116803031988034277233023861966712110619378936519760126577655338402051008395237573091642287305317424627504705532113714330325859040827621636847921571712108346048819181553589263578105567985594873937108976713653957379235268718778754643123854054359406416485702477142887771792836136820939327556563217408266201409045832137370563603588985279706894441934556539268285322914068934968348421281924192443696962300552732842482115251428318802163696435289315425549745195498059318748647839559309816625603363434261297232236197286869891388993014195786115203608385499895044537876204043360162179657751599506831546825951125475913222977421268859454653487208551506800191367987554101116930617070677984241022912383997442629630271879416520060262585673280113576631859221421059723699253993253781298897515645316065607259600124299117143200349703990172208072696796549361285242035643855077456231469186593538209439106468478630710339475942879535865766594761909628916771374909997047207985071982031336164475034252665903402597173597382994123770285042282588142130529368532532433706353044100221655862007522300259876057733383176257681895884611690034832691260682704588359617389450868710008669378193462125779437654683867000307040617537112675150207611122589317932217007873403264057814168925900350689336896935417250767210859461197777511686162495145806205502436125830105935647839767326866219599166836435106844127258307647754026989723674754760650067489091122111269908898861275680847910610321641519406434351223784893279709766942352913720206576847136731928217946814696168756782467848061610791882257815085288566659385311552738233639343618162678606474567890361473982036461768057519342329844306748419393381716826157518070311177567935512894540877118708287952386194425000325312287530223551044222163939598956564243539780893435165378879687478555740378772558168111676718868332740334941034764460594580867038511205255431701453590845997518619154303271844466017081458514357977263071022112793162087291696310010527226241893257748984776218994016456181192961393915466809096223878102250970864165819851937049402422156773124268528287114755284848288985768126701719662014376541531673461609546037703574205273580088008227344074770120409030897165317796166568732769926102779835091362261123582516664745784961413183745487115618005514996057802449121678498160145190949628566469664223135826787110387966837070120282057756996239170795433860563616508692073372995031923660658979881595130265428818303968710924023526126337428423097916800920743747503192092413508389221112293660873795736742609112523888457147807550988764349700565188221152250659244481407800321313467838049351633356215414616364265543392208466348532369300870853925200773575220315382988446240951137557317746985109852367768548334003653645061503669796152471083396830341339754881304788457434769340467714850348090706521019022769055237799830841937505664479107727065271098354541033638953767341703159008106783359307146644381355303032011301069687156917236559502496160436949925085820095397307530739411269900607475464609194086184355759545093442279413529873654794375176357056592946120777278574537165335287405032498035151727330973952081988907006159616286977183398199833234495453657821014195030235382409425572364469882814379762447749409004255914584359272567294055997944586794584341380605056001672865479553489022161463883015392257678280444333109601641007517195454993748372000889786055831754956565292201399733753645481953218002808722034940870542104396645977425593477878834968684745601700512558551721190501307165616403041310374309926534450533731657814881872345615812747888986242034176970226505767747784885485907682224458465565101645563801632536260801444119777151664343041698646521228715647475799296068845511467995148831405401259341426696078728438070796541941519266233692942327992187013453754068971757978164500970340860586328428250123912519635376541802159472712391395812260300200921848882972303947521658017795643386538442746765353222138432159002535856867865264084549541056188395386569857247197894372943657422585945880709896847017655974922770242633787316357892477239584471418085929340138585852373525520958736188955656799230290855022354300687068896189537666613811823502551677967163155269857278337663595157328806202968870066784057501352268864055900672995876078974659746899857923061100117060926787097472724972898381517494199746418563656348187560258567088732919439273722790256720144769102480462921477707290134602830386668065620220332991818172679277463337304249871417936289366826986935015695247524678498707958310903681777039054954413932763776575516725607641713123878742058671467902144165208557573451733572600587486839765131871681225803104487815254628728758357725033187019696103848611157067630076725079436805972329512176738691921716001840849188571036167542918022857711363554165296070792732601146558255682723906706011011367848231839442306306363047466635708990242643442439785077812164701274913325671067420496377433768731844669258651644988815845722297270002857080855074615185294947444706354337329847138516416010348916532993384244876389100658143753727109537636806924516211062706438660562250398835262570945289331471363484619508713876900035909584090868821477381692317919210729367893158754510097822393513803982665805140417785661243161945002885310981312619106869385955105295680331912851415379627297525169680374389297106803748261567842333795841250880907727828151062264732899571707437350460967196648632912618766514933027876513925999474715178131157497788455441246838841997835336528679087234202666784483537169812508706065948624311107767989771019517758929855474640745204005027101932150630238484012614690944543330447834597013643024491847681614743977474588756005571810321634227748448740441947030225196591273134853970183749371045823924031757139569208341724442574821125610427988946673091442943212844250496197743240091279188129298666543099224820301256502967381590720158661675446272624779550005808165570465106084324562530745899844002985783892473312358177178477928811236155598262543887480012223194910552492584356337340488035642462404166077346042564425283777387426397999431859276860629310619599530929460046583887581190239574780563239263365865181291087776251039710584741970874138943674909324764346061720905689197013316204689720738208744199680081535458926365051694950350744808028098226973830081835899633069066731803657088901779281964230513998558518607457347505973237545572134589946765347215490025250107446025920562390661202005322028123550948600530658643367971795964241468126202217243712379782127987413393121135222336707823592000179125545199199086960343230240527556627718451698594688712739490323937580263228391561113119089644333875459447230832359514250851825866472084901834693988906071755606292895586049819862758523314718011979360559006470597637036440632823625896325161575424694443562325065845840921133144595526731612303371835414762262081236588920757768225143622064684786348913704882685979050807280900379671942983509072289091406938204288097512890703926475365515480122300596619769149371405088138119309299034210549953887480606829669860856305156902547858633754004211838470886424713089938893961655544069998800665322804827377337904229488797037766028386487247094409674242001626570289749701757951242738472263626587997702925552043460445648696693188679062029382250009830935831937527917457209758445772317721404526202464885068928065419927302820997611637727171612584259838206193626912861530569127029767705181404135634801342998633827681025770316350714270158878214514050228590470607413286176582395003401641239198744611765261422488646603700689851444001851344750018363850394789454363872500975789446696429150154438944327298097892526521357111626450104817387364632626520733243087602005388917123413399830770128591068986378799527582312863245216898648415380632603943053613994119396328374870655237710058659752854592851637294332102280304286639831941796114056743399032283241041569506957536080058343169111890022772092556236372727211112809611642846080254893142882708750740963365948220400691337245963875698765890897976493415015718043358779805735465307602108529581388732691745004489540569575778476906186360907150570599631409101757320160269176561769805785651675136962392362444179838746969752198365491653950904268766461746622919046955038574569192433606039196527999629464774292016943353699624439303645491373888477989533042553486309506836459853851516532779181616728251946424888719800505555941761630361785935189879596490544126736735345295892879867004706606291118825780113591944641451465386350263741329249131766081076094510879548102465452349797922475924732662420719564310343495415705117551729412024546816673333049841580968533142113972010831422328212090279751655423822144860542372421831470549471735420266123315224038595626777331444609284692009036259107320844430393518213522198090211657777100210540240768337099037484095820030231136203581745622767239782435437257923495548157659227342627764113015734360685273409986865757739254409128741533052537065535367467842951320358323915563351383968137133023561836216159635532125742418079972154832310587777551356289700185377828379993248024791626138393294720468936480086922130192428696114187468694174876766680337519263638874063590547298972502141714080097906361825489252746946773962775778930286162139392508078720146413145309892984467184922354684380278469023209774275388111988659321123080199046932228256049131575820610212130837165733526766706282893812012484599497507928066675991327235650315114734380195854088109568037766090076313913580492063763792306491279781295571867348070879752169034675280576796293875674287348585563360460298661202264841785174928044394974305631376504190715836931873592485161848745890913052369782808188217653988221807064670783305140209159694376724799224760947321265417146728625703312366445325470471647015944866654114184713477734914144554287173220907622560575182227331079492603138085077821569641259558858958091147643003303937676808554063462234975093847539163415231847527995530394918739739441019645338292616728659914524882248927739331731616212599859800423454113950809664340581967065372706912649496869508337134964816535997379743344012899920389538969824018023753903343171840778460383266706720033483653153936517887998895927524723160435768380130636096213368788389406430709265263785828328497875340679166998907993888508613590777842840350423542047462026144091254414511305691694550473169968728098555064881543249042383483953013105180754021130284725219474554010037053009051700872088304030765921902436281300463968864624966851454580471806106861024497541518185878549383542241547171606291355740670047748153617905703940917252748564823173916341304525510304467280930594928918076526042098014065074499402250490576177832951365135488451216387107662709707226127313028428150715761313127400566852563498199199703748718990340793918041522301928628157764259547304892023757802260458543803490733276802896140956576725388998096344030103207280011165226674831441017907732488915723155844074285239640414669971954219494072232178523024041953385619031033832121762587448196746931875298380644863523579580361387200187013488263034483201780001432828613287629966772544830290359411570531651314088034432668029394558423346055072894755367023375574465953298952056790820919881754693103865331868654833772787759863985084163237280794305472493887151733657060285894842216164580110551261419761242404643089309707217686306554389440002848190748590536992547803261613384793906119361990465429379029145206005856684111976778778226615013167774516549195425403602732387196179568967110310144938301461523278680333031040317737169648298705887258456864450878758951651575928833734888001010382304663883792214859263092941679952731762102672562682011235301525727453203273497468552341977462161342986220345290061136236799968580872372041503894739698484075318395791751537029961993536454165941604931457084911729054312552582202796120197719138026943923837452731754921131241262956126071514630330062939890872802351742863416965187474742005354452545878640822475352436874949355233771293086599741533159265488311956440417136650920871523378130955341368990021384251851837094153018661718558959914012296568655748286378254880443644960623898593399199964542821414786387752798092488491644366092070777737953018497590265836629631116443133145395000931517763187755782301868366806955191887463872275657973186622778120609116672143108769073504274332442685927937675215731566231058818905629690423848057291996938064681211617765847779616800308240949633513381580568440752366255664737064021841129541923692374758210543666008164403965349722940973492334586750315209817400990745051583745182781640045881991911754028460591257910736065102657989673309972640404356255027632554450764180810832823068747698060781765050714814598194346687770734755211797041290834349172106626599839216538934269826731702475145220905460950765102518321292236562943500146622852520135793150363243097070408338434666005437596482186342721487493789440511371617462509808526829560288406868215042367552014883583960680059595609844506326124908014484224198451831654691648044490678040848369604038127192809978627794075694464347535957093015677783143368677567097111387237294285893299530765374407633953009872158776009896175541717279924125254859812889760243944390224418326903371643463921916477450519008317429446133428257796531006186976328460254544432151100140478265411325138063692991382251684099576800318598530512384348283613652032294415825291079517268425083191815019847040880701433881973010686120529480529766163432052045819477377757287597628492505976637105897397162313123582679959709462095384393137010336675613674900789786844464235003378082723237921549335317502789215252641326375684684567182870292245517078397352814273382293425302450196645886799187560766243243357049147880556973411142162418357987374225113833032933989111713552147093359626832388822993446061404286753382932589908036516259784081352142315419130337382963534630828068316679376889743789911608686968418476245144536598568108095535580926599315881003680812046019810079537296024101553613216096577745505726563177342375065362125719760276273660169344833159568850029682172020216979068054621980502555895988848640976550249498242263953914605073878092607240070725957861999973690077870207753669219554208326535602395789129749417095189034377094798988462357932150884282677676569470945823504769489213315298975021695213976897489813488582876481693592105936263504540415029259621167135528533095336047059031929298364221638519126844443136555365876220445285111599332250189038780820614781581838451446519718063774072749423506687450670771975652892299850695470182019340684763890926764663523781001877947117091594591390900674731440274292732506250812247116570137564939035504525892829298858373969254242267886390834946668195788376697748920181937154138081768897928237015268560151708629664488082704935116377874941899753099716928648096784475199171378926470003932002889820089096975441258731408545971874081863712690671621651469489586890199803157619919946042971690159818286239139475577521266796645052566568028813683669011241859552319720643240163820904394515732688315396839041019806509485600476552668484084857549886498474048550211627795082369445748766630522017096874931562764244112022647190931095954609941314811067277514015527174822541321791401751469019406099809171084449977123631269888076144124794764630775830132805642193734596333478001247407400054760415269457418637207997996107352393181724379377907547710447149936071589151264793285813317408947652939106866683610936612142665634417629759665701158432852473031186291737122302815705346864365330485787714815583906337638381387239132498910626726798958084454866388973095298900458994652484000081814877178576133515703792921207505036569785018267053530450060839728569070413402706500010092615674341064113683548216259944257617918985002833651722676655866873322522181993055200521882125705148513774403374316975872138788856846143812068868238070513927497561491531734669418315078477032349796749020056584066434064412430140542686847172310027436257669546908541534909461547138737896230835849605007430976672503381604349308651280056017022421021362634144408049649733918685906342265035177140567067434823062872274877405150396859570950091704196309723008177116478169533177757177646765310114655587025991280177042373283271412229874676748765801362829081921174152625536023768686893737582552660944467875694186867601373507909945626484214245184389127136725498157368860136490084993099913766353369916308054956257195761422729979336912614507583246092880223295370071939222873254783027504981326280304747567038336515604553780411789643467551232859906502704460115671485232224271446128242608462357944483021678880452872762351785580505606228157391002682962981991928647438642030021100262569783376789722999457501695390020769813497801333186010515231049446633328512383675755957613846637873329017043820208454249632435968916875914469113240573603738742029333073253738901944678640548995922613624938373169196091913012889002984662917921127873823368394322131446816899558453763467897556683047335516574384080173644897347178984992229319256655967166570276173533023571569985634217708308397832589678544503474377754307259099549707991760697147700434929225946721541421294477585265679102622532502521310938534941046820869645740876092962481537443820345910227096548030134237291982146123944386330606797266560691611946345480454510224933575506112022192537607192231483804770926821914710615170059051749419818623413515562090862292344161500147538496208844959015465296505859684903806534561573666626725842712489894985952306904185705341154820388171392790481552562339884646499293330207443881277371994612357160085721371685327629363006248169046258201812257647945129502406054059252764388866942571129323191202856046462276208051913489339118173849818201291021540533997400949190209152608286624102347085831505004057601729098216699878269498068200185458192601051886632595075588044660908076803357276757660949220165582050063290614434247828767858456057001289683310640911638921115809767720864350393268401524889532242107568381964993421938125458789578970718613521714120769361369941616736008253147986067747830128207112933855413373892866972059765146836463619390510732275091195898131882120684883299105788384985999139246345729428126450273234263762022317979805512515631145496467319654255726701470635069572783701815844519837845803117024739961266203526887989893026138175880554768125350970652849787271010780864018814956102853182427061294836471685247257713331071033152041654359523894328802604080868799951086519273264307225629297728535699135205678317788112782948342052639313302668947487531148458279328526354000637582714006936629204253104242724169008438256708978627622151721361064272159843807076449174887940099557211903387816758538265356449098809899500833298679857726279143965291292995864522349523498599347213558025689616026126284548907423464112171339794471979642946418192822157161497914099264229554973186865212286026279545817137717513385522820847317364959573804006584373992578125735617911704770201243327997280581669579467120494206717788657972616065670898063067278345959982122079073814603613756009293699500929796403354935109174296753779954066527246337796895582343411271498975439601667665469330753812325826194422602922417760247051900352654686144603958221254285017792938782260371067963724690294899643072608164314526690260438588585376263874150669856879165538116515513313643122014864229054341582068887999110278330675979309611832856329571824984022412447595484419008999322680620982974548375753262107895111722516507012398014447424231218399642026760430412082780591730976320703776455356568803867121633840908463108500042433651547831027687822915387289905980546160868205761072246264719624534555976700057967470077763836729134968536309237244713991620224265460997105592515710897022846105499846036672864767064079164344992680533242737996368067634352681338828901858983114209612403322074139527132939908019738593434150224090276367691591717770512074413058495000641379552706488430804305230157258770806336050294900155434688094592480610338515866106838615338306898356471693042089482357817078341799883594398676489655009070096510846504352949578676220702531135184309885048751817601318468465083191001301240600785121925648467917734129684301628499940436685185576990859881052131052721990241086460873813675226141770051263888801359902850997397878080444620402667766541249047396299259134379707872925560056004711236388589916854247289924149994392769310881717648293346142172425103110435434902678593266639359555414735888525784593004011983372919061402793346772243798884756332737274708180846600498879532800737693246784168776005137521981181254583046214113784121495989951706534214688004042879630457531091641449167888453382701925537640879391928811700025037696598476945133687385316040334315404139555814784036033872522658196365461495204271529417607392196194284709489739232920338049230173407074275711394960974489314443536005823622788801008889068026937982324308957135146772021246685953660889182263478403521315412997201000308968796265012436757774068774248847292548672227493282535518191314276588280617067035864790450835124830383982145498132651829697693329791066899634494194686917131899810754244331103406672188121939738208443764533561865378154911887211745776212034577999429044718590098552006958668611891204629762456736695220097837300887080652162052027964152729347976697978574429316525287155121616846549085605812834430202473384372502176958569465051857275629655268994745409407677935473702805158255469911109998826953905104376674896371157400090265317183543357902853244036138208497022468573534425461775855069321672412413725562874977585409810485896128855630893471573806883142983365294410062038924950071955615162979054409396496731448713374304485335228278131131526093287572974844612518308139750988452461644097578091949281102379666583607919142215776325532815857159234024953860456637348035618993190809899443463910293557416486941949017053514713264523159811597468844885649968977562263441498706736426304443562153708495531502152929955785373386319420459932895834463744446644733874220652358284991209830270735283521751878753820341679162962828218431723710618667207105806899605439094083495368553689721168886576218470042310149382249960121212288678247482456459323410634385701798520325253555211710267478272151540211038580533477108381683900860914792186371357148641019701456106515726210960652290770910876356488328408350696357332097776449939846517119052830449654794540953056252657635788954359375781563104473073318746821073750931806092000929986331060104540783368094703049636744600376068979174852617037406546382999542260661141502777207909911628254210157556161688163270226818501017465533385630368530865092104305631229965596912854757558602789527273971351052296368680329392380511691073712012314698349848285869714666467125061348892981333581748697805706978754516081357610773775075458885940892355774372210006518489595269773070002110633276162512994129150844086767632771081508970037435119263131557531764725964762338363995776776416581582760094305421970328795133676175799995584506003861067210681400456631023351987626200788042187915490265576833064870772107311529027053898326960235220531264338743756232665984737930630517403545148066791579224402902148825981629235824492341640843782235242474783390883320517373229805478746818022222278451116564728176164726749342566887660891589206451360369870301563243270519296067014998818894755461111977151435610904085154904875397357311740886482351035759537341064074088104076645216496088580917211524247723662371282120387060496001764296174098174565970099192172480507027385148350747350739440858911211389456990680631333034342951993039470052235669313673528989019461660395151372074012180278703956346999006555185787958835620996289163296804093667186504471888537415169532212428622307868770292392728597421690122476236336125244793753818761073983809988187711399266002384880044564412420144973369619947197186765076815353157012248898986644296609141213931823761548199133036641264679097512668729430007879095756259447314086620465604414705470004013649095336067037978735515777485037465307790821069612900504166852617329894606172997549412658785388554808465828419977019365154535184051961277298612701604567855673317237730987360266034448187068896884400577237173807810017643990975224423102843270512106494680116211953069720417463827046916818189709232940888166429276361677396549328331842742876253671405873448159679675349074593184514502159466895984663321779208207736075803664874567856035897304491868166608348011342411031962398958298405707997161676578078997285406934334177267380142560188021012177740113616401057360427096540582332933612618328766299383497101799658693706733592043747712848720485980953403297909826776951986108189380413078814234266231115719647572171983214294567858092308451098668647728357345307658758564887435983030477887742393141456122790994928084639746704036921603614363248479914738628475952150419852006217364056541358579549458890125213180930292743056717090999842217793054920190727578367944571702359384569418128479510646405813246862600172404078310430141410933808523607054192216678907272765486056934392518349133020325430764160341935842183100186251176539393757472922709429881419422658284236733137992460199491866709400554016134242416743324820702227294130999481637710637820827377817156516664558500894708200036658781233947265354939028848902609349454121820778640484064588940338320606657767224723737514306880703739596216495522719388050048540609008724186521264680686661802105875703973277643450841020604249712053146913999554648275953214269178493582551692723238723936291201329361754468409951746705364473636854128789511719497681522568070190542502715070452576992651813909695560004698368307807605073607621288445103128041576016316652530528770529181356395639776717871492423225365947602279288383234911233846052428278451727844675099230840902174437503874964095361925363572731264165045275036234836927062687383021292167533463375318041889800198198896597889997736395391419906015737237793969509817924379055315899012377678137574905347718099034075290852218939353450580917863804370170147644697708575860068232718825912777367871701349157661308950213218535087928879737051230219484659733516770112944860301804162222685977049528574597132169312813624411172563053076770090167705649820688020418248494352881333733325269885180044429795495175780597099763491170150420987194433821091931177670348554641744818218018231106271484910541355677979442711705091695060735199473065919031673146136881693360165791165045015842569648328743874829833638567908573062176364189414883640971199794428812822713020053526179041985424183787165237399520733695462361699542806618948883804999437606727846945330322554339115217992439105830013181610530824369851073967831506318386524679895620729958395171184156707303492471905995922620919882666305951288553136810687353815349752094586472423559698279580487710705231295629718248342458290365192118025914451750428134592421180264599835319135852365128560348067165532565252219740994679791799889864664085567381468951870800785429220559686278438219753526376393546103334237795671476733887916908599525473153118585611812207853117283458827302140224731960279627864217911249862989150658087533210622516862495745787043981648048295372428721999512732083859324298825456231456148185640486733846582895129945079865917541778356240673944391153753912402936807485298852793997587588559014355600550574323747997922208424600152436018188510878660249823374508034940352606641469510483837543600747439031864933913795047655723065523903799735444422567558203224315256526442718066603185438861484976801296201498821080831729977526525635817041687776359778505114379928186540409494671784601443077353941279387396524748252505845584670081527335376431266450111272911567641890248612934731647338462796181331056421312487366561288013669199249468284420451207642499232958544577767310512558888410634146909904404656478812578061613975913192573660112561120077925324474256183631303107734167840555293470786991892679910106520601094940547632040725420375556052743822106609864519361783464647506648896182016616237733262920458438538033641931094238364959936330558632658869893402433276349341656138368389202626098770310969116170996388692039690204586183659870663107996363729575756629851495154864625482075388727136567162254253353529488281493195650968054270963932188094164247247283769245623751475749689102842067268227764222270417256819316535424678577922705790442189820291935166735694883928776461370966752101465382942114439451924591285614953514280215162237192096483105656175273200694233653225093588334877485149976694628892473674278736191491083970207802895383635299091514781206577118323321643624584893388926213200399703581581828961498137585099636411223693942783708714267585489232830943275555635408312358835308604243450013138997757946942699152700369175464258984576517074522443951922412800732891261810745999282667185878178332725109646887801186671583329715408795591793078668516413063822310917670552410950238187310286883267353547184529104902228480389979532833415761585086286599104252908550410361970908701086065921607591257717467116997873115672274491372890070035543418504885748211237481870276251663031562140995999203541986016527812062956794203047211788121387437333730727668614140471570638032281173968941703884870642202356592097649788578604185202850837252048728956486632012147436341586923929114226475913636661342500184279922244679054080927653822528896663532746784654480450988175842858293258286142306316195367160863607848437772057266887587989422606876807689762640944795771114408008852535180886699603968808549268697904355213801490492679771496447618146951351145230599031085914861274494027584645922219281355761909529105480873207987503036196636834852056707019132329183691731812219614523047780155572415409404335379521451250629078692040236501613415304503450294633706637679425413987172305681097387832033301503418485477141056687376895524777065643493094099300133885641414661242973585599819707041492342612860786754735621468723264804382208835420902823670158439747088275788852329116627459756062009928257958832146632264684670117223491111629657081326098830432095715901796650253794360149532407352786123341836781567044333876722636574707478697525315927866249065229838647396167197525923764298167555515518012057234856217425232077582261940565189981920948946935939629948288783241419850864949774403675123859658301677664650987940852719875046639312917213484686107439484350781640128793108888135931493807510068186600928883739436880501383927826460912492006995626947430822028233407085076542411247973909389299238983730343823093966594675529312558620843585197220278799668182090046273208887334999218427533647875594086615834749660275702175921742682681673797516226689736186479534439507710919464709247731282511975293711628431947795201407232779552051253204295733772113688736110556631302949391906298885637306541811488622935033717677574124304733440453396807416713709868340289170732746172322649399689522911881903136388274002043733999782943500317210624252443318284942895186792313126786647118134869137489779577927825664753059984487080005264075873573287345316799710963208317304351637871636784050710138055286106476089462983134536407581626071714821393652530415403702451797324319472369468108467744054397514655990035648357231758489656433235919817978551654323744082696738854874357939735651048877430097319431070277853841657553022234453916051634055083150071139978909516847331698563526329179245881384485207267647705615336046969543049603786785960082535571100828340157466007989124453171104393870262332025228377189451246454168540140604057550810317490612080145694952425284241393707537486607684234578110307923521631729626134763826611235431072351737985667084437528559670150332055717709180944468110748551348014322937300573568795398159719320176791700455116152400544287828707362813853699180937292777856103998683912791954454478528937186464367972017431315255949581206707921442922593583522846990982605469748376432015235290476585677897218703840761764476491197253670286604288769743929140858443210131709546406381357288441531651344029584874366927224185518966824968456496039130787637636024978180423783205714876659481286876676222843345773126747386798975082681670506417852060234088921593951408010415653069380866846223401405210899970938290623537471586303199757215803979967844773545927922028190479425299445881892650479902468026890555361172910316485516817935321799293162950089082774065415021860876791203115258119700399832489693113875089019844788371500394355029511855085627762725824603475406061269305516555948775912397097383720143746236200600266223222599721159344316405620607019629065312131243524984425709132593725239130399963599297348418744483141048373894726765611953909143423195749069581042906085358786703446826517036945742136362351693932466535179712797605781284752373129195055819646114804791110587057673765432639938136057498308029744131199716650168778470129905492018931410203689208998697972632534701867191027257544024073120503528583714736890156547040333823161859381307451605256849324466077523307536703821369493249732908370716586918589618079374001929741769931998637299095216895260287579815628065945526542575248940368464901512725694269260238166917973309636605057461181122648457963847301753365027916555427878907198810022515596978040683197502860587510468052653746657639977547927550179174964390180646893009546473680573745939196392164918478741284844628488179331840140516829705721859883880188114897635197997561807273676626207561590182425594072351059454706258760676789344556830820052135506399958621897560269209133539436488346664244897328710880061630091198540609964083639834805389517864209345444520657249563045262139080434760849260909367289631510712840649344469313962017665545894326040902762714430987121651238637431583613572054902582382582725188412323272475605535213365650287884913513189061717702542362161895132695905863499656113253142617245839530917525339900573134782653406138017895508774789069538190369031643402974802092314793093786436569285062717521157718536008952972610588298005680540935419945266168690984744467376486725034179727877737022427231167056497360625493280369525965477346246132427660575356082727350211022254504034659324125334056842483462736291561058934843923866765043102495398024085260904885861454163409907251343915695338546611967273773475124347963013062966833787516071559500682132808188033252580933507357356614317961881355798685604688276284839798445208134850397070144142292165562754535428079077636477568274758313968482475880587336048596304373473371979403883169309599340512596992358446546761986651195408635287239451862342655062152595639572970849622087295235954262245824697252715788529969065242897118157206889638826606066630127589057634432486541299506760648039209822833029247465680402122230422781347105437793476103306815064091173437413449388894291420921169295908836241763285690270393844051346473651345541457976159666855701310013189195866891503940168494120188710823720161310355943997095804263627375187660628279581751767842199125536094919411494623555366827220512004041157080678645731394016495505127067179858129123490096761643183630939786615192043495281087258118020652733957527950954416033158050445445097906283665104353598600346467136042784777007651699574423171106808752841142013365975825684784112672834490353363742463549484608995665098791053273998630467930745028888905963120790263576729152544212475262264742195768449884660670219122254945474193277712515069397256640428852291333144309171243963571701280707317904890500054896568903147679495282983020890410174976839234498693417545409510372695908569526725392882376124108691925749041850807685014541575879428321841981282890729608830432377427572298198585445780850564280486430084040834558161295258854177975441402624952429095262106675949842322797071134825273723387952361268612335266851747707762666361013684952828806735009062654833957163342520369313932245151811984817376398170841932133752844799689384313353609129015062635550122977375443593166017365359595088912928436945274671464876068510622124418576880628373120030877320233543581059083834003087542546051849708857436639894814668745872597804367884625435946051923838259169627750439384893598386959008572127559512501307851956296421889832219882629169996003363132544948147363479698297982087584775207369660908002077793252972190152166468108194987440193072965888220641821622687011376755095491660095263480263308841001267131912686519953258921760710696699923785870024425367420939753964588979459824760073580929542964863452891741473595660814687445773227210477181303743046364978718401800777068100841146658117720863809396090382933547356015550207215502442017350268151760389183293026215542126349818184752541161900223042563439448203680984635194974227987476108438403757903859783116187792721870352726351091020797304839846455296757446855283067435995825900580694033455742160157212963340576900679059578073708005989334411231128129206089909348651650108609051337565671192907610391955092189787709551183924039989182510053905568440337805211403255346594207108195347584219833877742934655290713611490394925673699639448088139257052401569690503184193295287613757298046421846273737351329700624700882787524347044125297768569078855262527338463315319869007875238058005630941808271830119444557926024248569857900472474769155211508339955550306028133399264798219492887540098167454668831774560189586605260835267397535824111876447092394510353132578675178038817764990492323581612622015121994736685479830905104015017654027352746697092161696525706311684019086183854455102869012645806125948421333157033240551079099054741670976381491892388631898329999369182643073907841320864725401609076552764055341883473140158364108361712635209613875918621557781630945865488401993770105226013513498233280533043531791088530048176345541080535679856287916496045977438205511822637793692720628267984971605081967976246638038524535134557599511301320908077337829517634713726931518963105551882267656414201488554224904815096928054901038387103448979834692231137340468193186108507470844394147470225305220826825109543115848990572888623797175166415021064448025062585798752812646595652475480595065984883647111006916541763249162456411392938171544017710293626642738723077600926875048023338065999703298294988558226619587949809300725277603779374566487926243148308319454419091056409250713496344483253949047301254740006587431565893718521405776371466666159947678023851250458625302956437282475811023145425295579848218098436894438609876212052607988938564354735145148034357606374747505860757999949819646400586415728838952669482029091062526834120355021158189840426503189178751169518135756612432323663499795331165339242699867157695946376235150497269570864546376874798008748920638035348270124853935116896677383984530727455690869098335444855965008592464057213658962259290798653081203798582759803592177572548193228377153306372864034892000571027034843663767018663598022108866060588929052149040250321193651396736417268182247577255092201334504515477380325646362692697647776091859137202960349065709513596603805100103938671016189861397209039978756464145390591760541325250148409856235999552164048575697593047768865905674878053860194879294637359440220279323820214051502318174261550377503292296808546405899403544598933112131187064371624764809835116191392740913320141089773276809845446842397061456452155019436993098122559489859932877107807792133457873532529269989760314996143905890291134920778372371122283746619998039032362862932271716121520145047043767365098702065993997156282987484393670916546856171264026782387035327035790442343145128622203474850704220997411761229783507322339615046084633519672417342265969276318500213631451194299852624874660886359825886716289484099532574606399150249974981179094537747893167426507874610281209799185069871116485791948537329834497734224648655050026410227570390079675396118162246870797301825091137667607018761393573358927535284401757461466941422087955687583088221037951956062219014711711267926222761907889198963870191527399085655798791375628037096125487347088798454833924904309130017805479342755746261976490532513358250725369578474427872457554841426860889482958021168828008793790608269869243113076901577280543628227913115229349276715461057811645677896225100637439990869513671257084209485421881477771092061929611942155931164060592633863242713392910527060441454177481298200663542730521526918796895042900818831823371535148430793147750526603362271766629603732387834483059191874461330005440395385088633170073407369909966560150295646154355433026316916289858088434660380326921435258210613364203394209028538048900868120754075777751078983234693627720043873874191049929269339303304312636330490354302109077833167979250957958678676235445631886965163559188882423254342958579946414724056109246670229365803864092691174010618368797646851541348400136228324425727061409860171360350823392533238868596189075926895864780334045556919049287225974131179955589730464218841883031934215239867783728476657751697162643789857558137280074917764163058845305232643590954932154786291700826682623357408195331909817105215990070449729100919542639876650807570982306186755251279555400969446020600910072115937321608770596554334501566469205270549683370522201324257044787221266810260021766000648477588816764057911330427981418846973731807584574826929967823677064146841995849831265338562802741701001519492290707516288702807805477172184676031990844976814685011964918303265520675446976251308504566686304167774202632791789952019324148019801112988018819812826581667553353531678976529303351212004701959075203873407774835421981078626653380113674594355715290158367856859206534357095984425904378036428079289909952092950240193131918623496783534298004806702820298123491341767790457815124208522512939957238576859584969389951232657715151290905183967024833434354313248407835350130348145904026555853698616883421236956279456214453081814197314966111580343727056904720068101167169784882834204845455312940585695929235553975066260918782026630668255334669090287034863405263746118280381970805939091748836053634026237540928897098237882416913901156860390490600217471359747935032351864262260686849195548962508024324446478172521909053219074077613190534399508035574234901264714705728377631522539883810402113743457801161890428804522250525962800651233834052759129275017710921520737428288818015127165463167875508748098614496214348863914858857005475136244949959352229790500012378487606005024684281393122755159421839874608611180701614642840493982843794137562451094225740884710956692276495923474164583214379925469920833156921365292239198325091302470039511942770779875775247177856109604875816866186651384151863798694265585509531623193181695030320693112623770056526669390020979040316936330962263483313770172402985613270288461176551758771617520612522679895155556630510662835548694420215357281735848534240385460788465400322778357286137203024257919372360942002490975497902086349472561830180331899733049349061555048734221749869805025662779671171755102906903420322248091768036203338242291249486714351819194291723076744318453428371931456554304941926212913471964575855572672281185554822524516071422325944922571116163064096138053163186502201423867815104266894938394721318103599857314814195585403260754588821339859858740823745351886567731344950140003811521932667539888419883851735667248881592106300325813416233156096539061443165579098397129917443060195688522213643353543551913651238304550968862683561876568805493331178901008468860304311773644685315189185038359675168776708943322142103618420993233633265751234193979190738562537952282447732510352949353993895246515332983727041857945807687881839033483356503503182210968299565785793275393311543990930887385181704690477062978226677613531561584666939633814088306967978876236208403817302515819753950203204491141871048453927644077887222395912745202876430472119814888160978816653225673744296961103929795684136044510474263165138853218731911448994071929082491411730660253629980227995757621862055314902035639054180586949099383365458804616757120898911394576232784959230281016993594522126741144662544646981815374883529365336843766340757052680539057261661595295632828525753491313576484916031226198334530314495178435300459770715043376933026734768412897954454273140184757652325591969195415063065922626138317084879371825645912163112887180814919425747914059797518607625326780953625336233687200990703084024772977392651158019241759340021778049162550440289790068611775966475360147940935397577729881779887332674997955890278126017169422424731163726358342061346626400256439619314077668244355942082893817562679438222239599374675129875843627923936875702372252830387809889910803609582223561236155650482839901725147317137549433985022744265638375664661762719709012874428969254878049750836378253781151058608050066891319736299701257296361768059953390349103587282558553483635663946987232070589717034663064487725427571502939477636929917553021199156623192776410936870935323794201233696830585354566351864980292532130537910564037611221815960635785611809496149289461676181811414278626137563697194535536682956550085286878039107059942193462247783214308719814741554942606831107974637375221268499728351737093868030353978919527560051698126173103192555254831033358208682786916316127983710381481205499674967144703844648455688403208708649903488108204144618427657550609295909057815792203182172729704584047853555609063220874130618049512883232577084827696264015300404585982515083030448655347588846122109151648044918428098378600174274944835760452272534648001111981854452037968962320876941595440751469757659601278233362424932445741433768545296484380006520495742033561045114260987731751505858515074489705870563571517743768507756263088316150965660504713303561003734102786358772437410346463381938851726213427953896426759529316117602867030825447611272298722872289000159767846436789544675314524502666675094420517487305590971068304047045231138434545605398805453163486417063150012301114712720383259005178980649719571825780106535151189889145381727525835567479813232602574165000308579897393957508575875736505911153627775895665004868063184632403250081719949910776720307501099211541132227009731848803654432151216498462829919791591712212965722090353963415857903896632089421158156722343916398019753836293828968284952096262275467575482539279248517564682651827809046652646306976019467614246928328514752385075817317098673599741396398715803348255551711946698003536619209033531704066351993756411050310792230922237096712077903585554882809761278553469702858186163681116828847844735211531174621773464988505413138632124226975455080877727565666872564319451904150251611432617384417487853055945227337977974615329080214897345693401704237231516346522176909617537658839338163936074863402683226678844947961702563816630919001771053824035828254434874017414915448126988773947231656984289851678599786450884913147479775526328649130582522778802073873840238976901983387407458781474777512746329924873954912089345821558913681801616422936280108675998730323899735142075188624571083076602280946406302874707027759823230073958047400310648797038211643327107164398417587596665457457358355151916259103903847720562501985642997535290029677340643394194779942336055989774164552067646567792642036013034636188419956440091399416808481545647768434553976552552081559962523588339543606875913084225548145043083566213177838494909356887887353800495825079832926389259038402304544319940592019992741660494839777217997600281254078594460555922847811542714505606010541418269371535960451514657351598594889584493545173086728713668967506546761458600161043551273808978912398787491739031540329000137365840962032488833009507831282625377942060533815433127820993982349980369339824582640685666357227264232810937019016592469769817433749004062443607423852636730479510156372693486047560152075891378968743789520073433737130717453276204170231753279173031281716147839468862287134937301823612724088945213496562858616440088403635200035908892527842943422848326469660561751014516422113943304071979372999845012938054200133626034809882767313488354993774016239992815536615937453731665783653817024076415158147431865764836259555272675990901275113111515407531382160699191052146936401272114336585997571486952967794358217894559072659981385235152457971055465916903180018900281553446991929255748418381979975011381327907543140320975267980445609188056403202838621993585192355199602014339198392005258956567162226790042231746382964920531726103269788440965643058239208581456205987356122698730750349744983414437191953181866677994252273673319547977971422564047280257604650211221444064376189007483017306710606437461494381235884302017945337864430177231359249266140581990673088319613879530019341592125858881993480211402250203915377718061791245471659928297257083009029844551112053735613824449792264752495237722741272602373430778178524429769205180450520652994680491217223601247045156931139107574632024935958389127076817886522624034819614923945251608785618092045115082455191812853961841937599539961469980510933714595039335595758361575867301482160543435462016698424024083037318224637085308785020651480714879557885882227638818194504238241755038941021520885906451651988021360744325989041545107245738524530106607096531432713199633707669370779355851986142769302692377339092717689237911742333440985337903438933223504195180842007706464179927871754986050649879486880230940566550963436902650858832546791232077731271945568967145725340976212686127704829062422715305233635272689831844250831326439890457125299588299671397280924976161429672957130157537364245626451397771610528545192329507727180908016923176063296267662609881584331957326440970293168481165261462140019675335580206501234713439883816173673676938470867844094799283056554450741140512729237612784726008786966018598635078543968241696941196723699040589222731108180352750651311660813818976121395723589772616053213482720717178771642802239035750614754433092890572337118881482829234100896835960051483331916816976048150456918720992537168976721863515489141174105466311733552684934399518669414364624017859101798245969902031695340367768561175860890873243601799664985826820345547467911828708237050218139886895762576664377338620000696572846744701420482749759815571103081176275549229792907679209655097433300608171357296470846426429459922305978612723342696133527311986984540688614964652733220774674018404566010096208310374674796738841759622428895283296915919352354408052391563567003639977835440391756816929592906553712245930286639526347283443091024590907892362993506397288886668052083421598904062612227688028376616923862186005929714344094942652954698274684766654854217320569951029161246760040494400221012829775555632322747201633454019392608696183319733804152501478251366125280950371552664906097297469422512199080919588332155192051636125604852712732603163182465452089769457999246934551464754382400237826532321394885534832592382498787644835587741173331079398273645311478335955494701255921073770304692664356067210051702937053760436327624959147589579688545353769056850763528837892467248432887808914430729541388789275368054978774752040553292056131391981682686201015757793623402049932269477284540757424336805942980311840129124907451196586708652584642618988224341141751158764684107673154008620647456477119612523750017584118457859985870960200416426663897290686421168203001191406025491495901393299029870338558926255620695441576081285512886715334882376643881362934943959974633428273244539009924062322708098983918756104445993089139508823816131314057908024169621241901858340221198307216897175520561170222783247146497102834324461871006020768552798345811638830234328271370792780947877726316543465878582305666505905266120982414071646874659927183132485303975886527520665307053482501568742602818629131199530392556278795636984637770263286507077373994290381728144301795500392337654617161273197163035336250887410842166642607370966255119104988725197496745004938149588060071072072365051850676628073010638581574739295045642598906650161432146708058020020544185506684057501215284348087734928121777827768126764006529747631972068104860513576621562583159123098949736695875911135270182544672446921161166308149793599136706459049910701530831551986404534279721251246033644513199565118345956193057038507920860394003752275670282172842384618789598445439436669811945226660693068610936357987283969583387062406243193441369472838527262497974543409685212858749810317731800369441837073905038590737145084523146231753084413130059047499904716703913181867702648355548575388733803329160202202080310783178760397451767658235704410946768225322001798376302296089158017377629033754641140046400021315685702233830349029486276219971108820584344854158457181569266709782741973120446771624114168407133624927181355761240755884035955146417730301736076585521314902447486313734089510913992538052831110956081071014147088152377323522861568612233902166410639312291091736584616466678948449140134187422287475430964217218018426932492914516643454763338359274570014863090067638772381920916164219533482358826600202218243003522225461335795997595469207711386391315896783418218153723028491829999524653244215226797124571705764654539231554831709744890554342467801306638981469053605821914139061136136113098306018871394028007391461775725961163720965511844947919837856601015203544591842696116501307430515816124755986160120463539261950684512294656554948690956978546351231535986788209504741459255461661498183303062735476068339734320301786226009105634976095246325346446358120186991130959242477322824324240468089838684428985545488600232986552505888144618180059397367711862735432140887633052327672260390428675103754125458460388772083927780981397782750943504031499813281302005226518642730443290762778077017864965254546766637217874401239693729103396703070591350727568403754368299771888459499148147103122037261261114693906806931284706085431117920250922446250426350767381948617040936153732999577441791741577599312726967279436243759753817176767701608556630830367037840235359901951485738194481285359229073565421096418323041084643610408771650610155689275768950119481326859657298716992280985536410496003207068287327028650716119066560779711674018792983628032406096376173576205412064359321620744667230300674246723011910562673267903549422847901884510973559388890441227824096216284917253729376191002878167551510484757951411504534927321328661970288045559411694586285022166534912166566673091913282014538407334731512670376980652587776567083702312168068171914225849498310088867797303411302771332235202032002268797485515242388236492843645670024762558153516843925837761735051358309662341881766025019288772216312462090023497808519042984825191497176850389609521619261992982486246675989419947133248410599814333804912303900910088842180071474009155112840628708856150869787208603560641793276960534472966639751617061793946485050141497090834480047871840146423893496443709838589140425641768152410771627007955105601772413325564563534171076121176701650959325918478654224071599616649509278171269831256311168050616514779436844112051855605878375896814423048925842149761036967312175212683043410455975546764684211670304453783111737726411689186452331438155407544300832568106847699069204719806543392210033813225609176000936865099242507799991856376220911748267547577502391388888291098912336522156885349320998801393762853990585777992984742997008144627339755420504992025859260253611849067400478194848931461943902051965297885039487377170176410930386767877150245809121984663555131036061828850858533593263786957843753216207537312341042045182514995300906697103687038879383352498169555717259539404133687045332046162209579243277049477242893433493891086031292580101149878826161359389371676455114236422011728987951523478540409875215456015608136954691236376920790778078774468943827514764600764753099958259215514333453028895526338800455619148034636742819854872493159028862525020114653378134222294990635962675513868172077421754072679377043557732056798029200403445985198100447754309084582616409375993884430146158084436448012499422521924044785702521900031072101432458717325665052844754159647776399302418300586533572088385122166818587365434382421994627819474576846989079258386480690806378241983443336345227674273668199267276221420640769508737478277749781760470175641343265835619297711103762498396318371192724744225116620963858171622339758191756147675121680668707489307593539216443581553100247328306473780673789107566249594285544907458207100192994116686473367281933412659988612032462937086757551258423232536767549762825187788732195376825158786286498584003168449548377250721752273581244318109349419243971731160069146275746711238560483697585496398699618079733220968171028834038344194528100228247943084637054253329397540336468967825248980283791790400829459987841590627191428883348053364176623656019731076543675569996865255830404649687351525008879106761879118194230237780145231500365408601879763515682339220255391800662538332057959732585298688426469956670341957067870085663400869953566540689904518044034634646630724075602184782453851624708155540425613611664707334598414228614733959856313611505475006363687710241251710776762235369522132260548064124664915747079649222027958935553303546121284167620118425399854630782974003031378393366635897326878540797571647468502499014226588304536860813552145286149517914934935304173377531815388190764913355004812615871219073597214546380531111848445408468676945596808378454184712530342935696458598134987941461948688203042479482780359817194578292899335330465088007827375418484528634509510727992886638723925437208176421978171891228264902239890967825430710040496642713697490634490208762484355867306856240462837460992061857442222259177961652308279661449197263465640583052091303187532204887413696510290977531160657928034308467542474477986452886451058278931370489359917125049496744029988039203302210977958627994366119548080722312244788087628875652211949389033515243770734260272291544039557292437414856388504636432219564234771549028617175417261177096498773447969876145397067019117796490921855217179638252780329606093730635392717440889980909303378528815559943277188841484510960850204341409598198627793722769835702149239098664495832683167456475227178472461014930407946987285350816801711993958901820184665301454575713353346051431872051309463816825038752860466742648317747662028851453972767875525280077925886094420235578447821069088972513202710938557794993534430625268835224886261163374886925281628976986709057636029322502697135182642346254160238956159494426108353604748772821918375055342949712269577841317294192698795850972265022777854904638593427378984846659666826925160562304938873701198338035306849185545562132595524728780895621803541812943217299533112931780120639108750564297343762526860333841010748217380969605553201638234155581463897183502147944777669149029543181833484513784518857509629649525700796525047499569593248663125934005570593208615090333099754534246167617588934650870863403388263931668463174173740471482098072296418787306858721922234825536678420999080591062987874047230973897872221469691954808512035722495136813418961712104331854319154716503843384420300529476798143673147430653735450528820317262481343114153397449927175389948570340919428108527866853705302634056139668815826814727327982501787167731139227105811843347810867967668902796920311300581050421484707101612183217726670682897309110979353955004946160823051089048870160462343180820030177999264196977574197176216840536020235578475230406920823188825590976818146875044359230124106980105327959321820530801746504257483260630365909700293643844653529276921426567619810883908407713588633886197182927322085649215417830940875199286014741294456894705443550388836615011430453574445554228183244558620875725276740863171165875440977307530110348163664285919863500690052116871939822030369385767357646740151762179457439655408274710567166296020739886964130415659918064244655453468095927762472522671398701812583290197208910678857633371330593022804800314533354291086591974372114948809033737300063614916607752703998383224423398515311970725893435177555368289992349615215527761746911838134033601403580176115238165265639595918925220077493957154450932835501272767471395003459668534245506836213970901758137193149355944673917039488200818713870184332591891957175546729640860383878411254473300569263039109951023287015067272881223879407548684220869832315147173868300042660467914291787797884857733630506533847756484875505479037002113258090594234849703295951351975915769024762047405989791110727668307677015632233970571945451434765942545575151478797352706361596322082963335370564317130012658297428312194451600690789021260533595025413941688671887621786526982290727331522285173119857065546099012690664852769147377124038516853520398484512676751224477452012089563982251901349065990951263045515723832586134996849805955170273868544311320574023987118459354889190625127643931292124488684511480053328724998411572590874647816006535442531178136706546226389635498605146826546223716130848068527623637444706386233110281992161252512754513515272708004869655619176356325064207593913887173207360656698534278391259654082427234578898612585942610934034753926624171517922586605209350413721785734695432871339147261347489740450612764240192099967419460127999990552655820474962180326806286774444179343957278883656692993288311338390215587571386264283889547907601905955556971817901589939823543072842768842242174299628483869010975460140938556709631635835578492702409433042736578171026428858576013912105972189636645522514775264544959234175855167975833619547590448472657932517599817143128384276604864920176462811724487185191454896268073955045703902543524550310400509236774034045145752922987303096641834281314554185085498971529533495385336705614006352203866498947347443523707145638217504441009501680499782982533790249733458086254341909422906416095833539958916110795945987157856974155928629208562102608132556696601492962557048154519275731414568262418594037113392410354286255433890304732064875271734109730159658067771886464939390854324620728190834406806634353744378228889777353757882731155089944056058012891554675593002394290408445955388257364267709515518802646639785743164967594114139686922603764057022842109747651513067282004052212746419696378042439821050349889993279380204454627486599322019758767402702041682107438631829087205886698082559752840416278345488730357526253720294438283296713832280375903249440307297312794174549987905928983685929421287807129526977601123431772435507044799002435863455152356971885743153820908187968487974807064618200493213109206904681684802500044236406897348482685596713854178108808243723676559812569059952509626854476257126483596224810181420671417377670068615520878885586780793253856776177889282648849502641855742172903022655169974248802134182383538089077055927946237173242031111152459636892577908922368474964854073823849506316747578469889279638553819220173821542143447258207476789376937836315508617806150712293482632520226597641748225869580121362922577898379308584573905599815941254932177579143354064725221403831683346970666854329294832941028192294925576918827146421290616625719147795894454964437068351916341149620130754175063014183866366885058411937518699423443180511134263810224040398787111037230331533623065398874114514223375510417108914896166565266337635569318611112810809346465668767365176249595824824462716792447470769930527906830240989191340782293663047370236225256803086052712328975500281023573431759638797096909906513753133320557974684042452485036364618544688549829076948498286462176591258398446642721847761254169332396109429842226247935372769005698475519148135426029395641218983248214907171927311576808819158989264090968302034250984978269197614689920022498605926910012786359304348086624486928696404306102198064937990542823061466344125333711247836291092140771272335452776407166249282031148835204866969097765077843293675403868894607941728313870692972730454083426429491862184227905388469512655699030468645116202283759232647741105733274595659642470570691797615890181020508812069806583979228394851134984836646599836720266669707303583708176943234115533133266368710251869809576151552072704994065157418166651224569129104284988231290175816960423197202263640312566868086327272126518308179957600691838556250612419531737599113327177959781892642573471342953242912781355361775341125277858401874488722546717634015845992766354790542751858979255615564175563018157347507145135963523591089490724377506032558472173198641243268828642188684997993122836519470619315208971145413026831010977871187082057506711740509777509043165051762498587077904679590554628862639059016439241531601176632668844579651107589789431130960220617245741717224283161715136899008655469490263832833111971363228940872121345975895888351082620422089277329502689372399921318746802376182603731302665847331728164811859838496357144577161443917361152398498473687513645254244912728242082798112436686673042941612346369897875331461674768895333943816788665192366785708379620158223642585211876068538893354213772346059047158881884631630128389566312886319131415667553443200284449403049073726172284551560535712095929238340867151168093587432472336674543069648648700212701704559039128706229665257416227737096443844498031412899214011291643738706205838790608381454734953304415379790012347774962816762284396674671474716709863260456542457397683700849229568153893509644022881922604902996648783829596909974442586385582109933149562235545804978904822988735269366109650235728660436988218526968183171118504486809730761149456603335345246756786914720889346828464959455036085019393412595238318565735134767389797052984032332184482554206596954130345388881420339342199274571962286989542298949399851492234579968562944680386595859576454263559460104604234929647083980260075089137089656688607937281826262972594342228916178637957473691673756108282053885753077145467453759102946922529873902092078210996721407437459556408493972047146875591134149216792097171259030740804313389463013165337538569476429553520301372015904867558496655379433161732864145228992401177313372986604912207507160934297682667005224648354285689399100447620547395995125428546233674352994967959576252326232741233345538041979160056453897596636717964618485926715552839341531997880223065260179783119822429012351468537110168107749955460058819931556518812760739682971339062370522770583128023901959148177174143489596834348899806209582106571927261844698988160405129768007789166886308864679836597515763338562300456990882314552601398836536121998361480598507201288847513225186942927201199411279060599484267275832583140473694020904686452958369552255715186911310657549469151718569111547963994217954036897656912826862766251179278091870500479583873845033357618125269217220078114921341294129504160315890494815327299812770503483932575707645107273652981502549555063269619901737717419289906995547126262871479240225740629012531828218676399892240125245243716114666556965911632073181144165642355339256118137774470597010906690075281605399382778879398777060944470900655225576024121360853687462589858191334364237633568757806506625213841893535018707686039145944537211318095377469172467463634465006815417688501413004892259424089693702490145272559605599888624156183748014608039699166501786650969425855397393862167193781235488948337105158333764053582352333142413766156845953285641087585002770176688242538707323451596516519514089791568620433002433494960458726133149467532864832568661519798018266795832243872281559038502982051801188332347758474059968449044346725708612509300989112374010004743568884375721086570261530508606612702410723419631640844701072768620686315863795302182533354494983828260644087460064631147080433700913434866155792286555425528394460281716265390716146891551706666864686146591986468614635188281974245500778342762093451048458981875663393326942926816258559290038007200347027101410831751346337000883050070964755671253869628118178033834744874555672492594062165211239182760634625808105725304085741175661088546209028302341992511703040078036943610911055893357370446103682662076151822163101874001983814621754097110818268824746598599796483473662251284754371143304353729394300252313120435121514271475849684672756952278685496449180287991882855312757888498103571028816621918359814869825809351096218379569543119402360809731705847817333056578283117118243151841691422576872654480692367302735892851482633553338567907341991959564298121411244698099766879999868601524544880405352256059204749301597265020047581018714122138160835310946834372982441756097372319821787620452166616575355247258007920752862162104095597267842188566075718374430177530994457865623491370186734369492664171653249598974544928793192989308490902613485644963463132873622693386141186566726062587047889389761261548943538103469507067111537176768658436768614146405588848911603781175597682230230931098039658559072049183372856481081332284570576059538062957986724940053394401620964839777560929193077801253635349338418452373182724451919889355168404956189248359129375924555522954142976244270301856906182868119859068857890408212253149375133071638475364085824473468122623491489217537598589348199816138163771776458338558058352460260861668677687796534532754645606729205896483213033806287301867984932936284273561507661257814829203942074021047168473864307289079856229402395353267856892327939659340787367109471299205699432225035476148448950450372712385260605668329070890372678569718741642739496453944389567711947122318283959739866041130875768824895194542384112623631126541101765349995260932170465537583465252954653052865822938905665219322580617962583712974754587947203750323249808425602721066555998453084651347755620026582706440948311754832385967620929523275636366696473349958803806463893113669646677072253738243662967485717908823779499763877147065122303393555748549188462037271029944251223972874784705292119696528006461576592038781213609982012300876715155480617102402175444149689543023946525681721573152970601295172595538628825628041668365606067192278061056071633713587199034853196828297858670027473541471628201872827417405836674344763389530375032724252006130888446974901164613282968619325723854503489969441465383571117543902744843689235114535928079050994135136183687444817461606120415400199082202057866384929521036981446510714112549021365546980636457978638142696333694302207954892670669618422803283661277071433849231912978674698764237860791200851709337417282454439895658349779004437527151560468442143147278166053989469367099704874787924575959416735186616798857990612250145358077980246366539765670356305353245033308887502346874841269915506750468638011807380945353141228377421773493743326030820754988983413963889669261767732245669330008713475832955269969434166730037008740549414916166920607079636222765214973061810483952334142893968931405585814784933861141027056478063488618104508859595963100721389937833146421664046383186446359948512426895167168618199086651126175491009226470582544709166443432676580188451793152447599144065714969479512778912905803600591326534589557020529531592450693706177829426943400203562456873693568363085491872550750473349528485019957600389079873445428741397647513392614087825059731496495161891142317096275620840336379572526605619484525770917895068988749320327839954559395816916219651031950301495088023650393247191537344516701277933934125594889955992247460082717464744953116126117704646693583973297428326358957334298880705894392361173983817249382838276030554571078858921779032095328937900433592118279657227420618366167112538700720919256129463180086877435579748501682461753876165647068853673819592362949862567402495948583496607879182680805471525454793081919873337675925182903537484469454492838134362093836237956442224863618697179008833272821341568606268884763697864499459361512983562821991586648891348208705872159529145944044797598839123726432466246067732772246623872468386370937441943439891292884095542837438579356936519565534999563649641126019773549742105317961277526683939526030607941951859223174029635333921259379317959619953747682288827516392825432580978187407759963355421737832379399223000123025650384339954056071066153227408241268349457570522870636811479545381713182389454292812960797000275118482208438177990538647088150391357288108780748144578009716971117176398689238679072117421187038640120966924501873496454694769147074602826468358851422967055026445143325309311195102223994682898064642738983551435562667992492611941969738720547346219616086053781319891010502684276496791694399903988956619169383948198065056657658388106167887874770485750219435855604331185821966141889570656209737617957249182398791881927211837947879694291877251253799801709442684666999721144238263630797660423684613402572003666324528724571041402849616881185320157515298188643534442635450693488220782620147929794537141162464256950418449419964618276237347863833604153547757525980016001345940180201451606463991123106043997806219860476362713031078907724514274746488690439870210070759116104783325914505423574281436718852649235494194874126809683164510431098881186623134217966293117710771763338176375351499028796330000814266939638864114872079784315600671455714131764166139431582277773746141118589670175538424641532629442450676288792088470964526459323488775581998751630634197310231697858016392272223564058900529194545038890482699872075871966741352397422961424044496836407495551270712808753826961337416380020485600460671623580197577207242959364391923347415402139145685284339339207348321309877558437008357671147028009373288141243693549661880443239899191701973101057704189685221691345506044308981987271456106677900976235453708081326581049659689344306626840452372468083940819728065151013116174755348845943064515975272000716716244360804120378550546710566074700973295042324757789106158405467149559597177950964594954223352233908894275238850472181652827790568327821298916258393817504555396110377949904020140357130628752540463329164658065552579351709265541388441639445134470317257864858650192298331615921151447389781748767502270475294534302725186292028529895544843159487860080711342064844852548771155126867567000433065135293008867431688146328631123537606475022394787658369851010420741325656876646476724350968626957655128973768573029127200683361953616798947237803021844238970666940650154984881222981665373273994184257621909310220659009358927633991828438798591077151224913425934845492434739081000786223086498026504700785494938122320815905404176653576281133327922996795911162361749531170069165825470236196368295060473977986927670463861487790897849694173399054974317706911610313010188058990586903051882059599626717660910515077498487717248488661214891550711423975779603134694838602141605960480401049002465376328991896171092067105353687079924650463426355087959011359669039723056607994383509749656828305859504185512886450605433097251976551567022101063240580215131036943710871804903894746956682320043855642601953833777051948086551904719604465195451799104094902162386289195411363360256944416472055873878498694765370916565102230278209357693785650221327550660445168270537707256215245978629813662926263556793197563627651083766169805601701512431209925821439626372616464398248411394289125539396210216243389148163975121407576569592015432097610135439254871365841240353792116145469688017819591197012517962856465647340436506741164453319456679825578875463481779662104972751437407535340491819056808823841599487212848304251430976271908316852480966380032898655688277903713368778611318246046522714206372240645991335977330822023558562027669346108871309852674740853513287265547852339145785212653607391750475856415385475158391117416728935612049933318092318857109502217262427598499416597521525990098789545022705741206690533418224849694715738095585138780445983645044370402781006133004751757329858474164858896264740328122749492271753933326565963419376288541353562882522216673290192114476263113353194355902987458511071761413407858046432200840824997474831279555535901591464233830984957100464784860788203553282534921256101417807434780079069451387265313986598777195274015630811843542779600683079368110129492117025425231924692704334075174093386997244114738294865228874132303692728293479133326487609228727452646628954464014777377588581928858213597706442843200202945936000443000610415494943901573592286174472209926571145342419493483223645256759281635863069843458902049225133510653522019803920354674254851193767504174797921108934695491287464437907838138462602416826642638842283449264628871557099734063477284852227699673906132484934048056314438143286018170765889908793904425316143589355937057586218583449271376539166159558691547856421554420401815015994365818046583828367855287574942106144359444677045705430073547827866730436069423268443232265507958016477194445365251097177985901508858205947527317703102132097934546323102369536403850055688920913190022472634033957738330888165720591132123599536474693333964700584487572610160178840186573603105210709516562326265412650868268891435796420152703552452927843739083152890242885647570575842791069065885100801658505230486222551485467954657463908986160050066868249492501192752705836628887676647698590423207673263724107477638189945801050690955330302971128420197207942915683313025211286539038537449539543599316161432059075812449361838406958265813087467305954076034251936052378007251899577638247225283069960621693297214736008938263101114865697475486172411388440720503987825347394176407039410214473463641924341781947398753644473985466089705580373242487095660239134894579426339113627245994541389124423735169281909354341215650005504273321951340358837762111213047534072666332001411900117927505058495452544886975071787651881465970325881560136745102402035578645348980407948481221062899836728154277192251064059707129932418641318958630076576738531793963890205182567934766511051901196514584415030141543393044884635777098276564523790878883213872582087654286987977512237946364648442280961952442314706164333025364451312695382330043567346719975478301749257297282016843479041564601492017776721658512303867788502164688437043622283358737941820039586402669581577028018616974080008434379070755396353329395769502973784711405245103503291698560129012668158362431562131628658034574594881651525117099052452318421320482308968107393554842295364028450674020003953113653633852467936357524812535427169292707366318473963339994775888938298691053340008282312189967844860396752304307440302168748680826314147753376291779702621924002605615852611076094618215127807704361072322712484084249315808354409483708333208699061068127518430759248206231362370955364247724379045496833678579449498520838954389670171973941182176257859473540582576650952187610370868235947988196757534281913181314479669771105084003570902986030791068312047585949975730424423322057497341521659113640380840411894522318703393481986812597966905050029807849823702921428367313023673626416336698850410111099492047018016423358183716453260170912391025031792452506820914086778900617485688614891026514154556142128455701583185218217387939317512154468756213911485945274735353207444461519708990877143068130950107484891102693785752297828572034601939304072756121792125850281696612000465526468612464740173094461589130663046403208226521553673523558069890761884779121017810182151888440391997376911654085771194789015306902349987488480251977424373819626529757367694157068980097801798607973567473044409496385831622954472162127826157968160075673910332946339134829258729798393989854159563620719553677674782474497819855346492869511674292009432769526825456883889509947353641599869014358428450007150330213904423201980928169819261056137290137635033526932153988634650771229472105701940782585727154826402780790331436474116676139005329590125310718967105756335481160089059777442974365130906934258788160581881381583385688760039108563506250961335178618386785720966388098707266599833857329886253012496902905079891249936391291038417666802249403204100643581918889375039679085554082900146978434433155981415025075829492117239708104805002736805667124866131557241180764864664606959792717878795616368920799085952764434770006865100071140851987506755358575046124356607308100116265909898790657205748498743832938151072294082508800000953070427808016442794443088691719295089115061066308299717362963423617760802270819653044986812720060270895861039903324048361539041412932754113145849078025942005471733617947997875131940545470213614056912530572203091341767577356188579704066605012032634882615635841745338154834401493215093171380856250943173551688912029504503548792877039492187306798685835084938358076435402507958537977879540895610453002553952437731115332135954855828695634117884550484139445184526940713434753927410862723326623758766354328889026713477485842876172054377879055024728518172348122593238047919512089580471330873497764390841177133655428924873830743096864967857752976271503998385965772806358598151437307308192856757186544434800386306477200562817564808719085326981204378684867234129120977560976018009428624204049732779529856269404657104767274507881079091539700382094024617790048611924802319127590744959964532449601987903232636516343018217800412099883320233765020369699923081603061557068751623870798296269435003399809789487861404978560513583769782956792722759773543836503394601096407069229975874797522795978193848419054614170430318385553518911388285005384362845210418653166252831651544387991124794253160413894928354909696287961341879233602882740647949544223544294779993396213651428940789582648397631727358734171828278658495332993429992480348199824558677175257371623821653325184672914559041886893998396212261381328585006870121051742501819889847391007058517869042496954664307760498714539892102913534083217529014163063079479263077992773892468947631638984864555147293242338914476026557953448614596001468400620869985208727627346120282410823528799469915588010356347396178629110743628105972139097604433173673894254813196195179987905765832244054993185971336674038774703290726965260952610456140405797411033246164360609835857715341721612194885364425058714257139808212006848091638905027176406084733020284517546694432501416139056238966443466208561689061074144793234173891704604537242025374295688876449469374813247913143113799812260324371692219873862269780457083591061770728382411936197770545230662482046025360528635238146088829606958265499621685957047124712587137696609751147128275930935203153052374784088610845735112301860381167422916133043092935122875234386908738634542279645318528945122172654772389962260574533371541855729598396257069545260954252186856454956929524090027811453549612618888541173817564785154501444803760661163017541595911205063831682730833586284869162863636337139260796666104273426114678424271769938575956558426470832986331483352423327337520089371530646767422561628255971558696838008051888772945925062600700071939218070750227488180521064690325364054368691338183828366826580033048195596803498510508386014601732682998146664586169161139314655270257061442966655001586051142841313971290010607308515568107228265648875264621489051189891295271897997818492615300593585460647058852195153814689580144369593879553658965463238325705185433993279171317620307280594370536506797141207508632517840027061372627325716093020818738861277182598136824842655343923948219662143787828650557438445692339094341427667890283602713716338575284662324404798842610160939880300426830662678592418582477959077621924710742834524409891070523321742532560073343097612315734056249869086671880980680085935111958015322902379105941272063318467611234244653579145108098493145042892817768739158145492311830989839456854994299309402074221348539500717349771807913798435550188890846268168879614649544872817446859024346110726282613869299249381484500837063236213312864087647792774854124817052909076386148993739308483649913431737199625740796084700426818952805598089831930093515500439225129792440734733620507337972150880341356435278873900697624048645941947462390737702520247532498685763763756033185576801017876635905183333191994772615537181353032893270863545641232621178600187927771470485191938686297983576988178850818577567247027853877963308930304748478033636656245934695539898465184667579289677349827078678657081045962601342200889519799183581079061962805132541199257889143403811298390287740577807155155277840060954454593041632916172602808754309414891019975734594140525929054896271203943116865129858391883396013516528938654585217188181264426668193231885213638621261302686969895699778480257011686690015164085305208525999311792865411474573385163380115417972376140966627823030003334388926066869253316489599374426019007979551052857645904765003599482363649976487405144446085214988478231379461202159982245510881315845886666070163896821699463277416124191475859786315445477376932552996726318889557019469536867481760692008157376287234422572751069059118545201382335048912054732956999406227163892174646493387856221135590089300397172542674944281984924464403659766987046107923578281062500787759681957639710641295078985037631064089882672041687037453052457357607289034561421454971277031731168439479588582871158413485663018816057733149914368487820530797917579064929609733364334833487725823840273093416736569261318307009867828416145424630041601607505716858900152728122787892084386564336148647572010924761940460160615394289716172767033395379289351610094169464627153622259549864393480167739070455130022668902638448112383145133272023389347888835827543171829290762339482534638202707797289798838485893477558149493423698693107075909696752946302405493527297086120533820963771588719581847048858688321181193077106653936944951567417848646498937283816459706515189952420533863020152678433677008526417480247477511067713610616153991214194071214313424723000773752062984494856693874922577279380805067610299346135762052717729137509053126760070849171709220477936027537908225915198600056583785405415378293110625110240760686109884732058911654653651177599609238722649164492183837035109331250628412627053491181347971681171649845038908328073902497177968062999655835815201906092679291594866599671304459943488331970656278049815601188147471492380807207017672529968184039890500187489414520267955578441188224263874795321562228748614234664143677480692981392477615467614141169020508415437600371834095689914763369966133676706757270798658352775955839274818982065623681897596813206354335315921792877633727230480148001968581074889770890986359599298237528594316867997307471321106819838204462762511532764258563562626531956372832122974582403695206776614826213812997249143511371692411006539786192404258288269375940379264552345506644399838757641253588523180603108696381415108546013745661188804111639920714615025658529002465029722127645353715496874393820561933898300496218934103004308810083783571959749701401835033689167041441829077674478172469163955372858927772704856471810274604500969216241082741580172954623754080342072520388401827523551546698509301098762040655947569827450146169864359010249969898828076458115957420454511600774992657635539793451068435772661284642785833581262430217883075207449198978441223840072663020319528604224165714697182588278572928614778883138407196790379654693679470669794093350503752693041617725225946161208211709842057789720250194491900303510067364751468489464220204518288186372723782771196422570246383580344698985600827368705062151343374457566508317152822314843168127288253387317740225055235969077963216526072316656910579250975351825753043722436282721444709727268174441030947738879453152875943277205822519202315048118403111989338844506513074679166143648591191555940062499901810932639553552543725479931264211837406916120760668198361690551824452880372012577680024730459009114937868505868506234178708400713423030698296968266730458549855469374821492347863517171646218758776884092037445055626976858295490912444207064409717614870830965971813615718896948833475778272828577476215422241162877788616012140349561902353535272483742070608800591519021152044266537246241784629136653678405231110654815115986900219287295683530197154769469359696504024467302765443867048840334064762226001705280150292765571820459816335028971170646090093369917605253978367989331086794764843127315059826114169435785621794401975610844166597040701983667478778936453344239369788353967368852029142858955952889786303591508957002205070182971500531083973063809485512974858626907196482651080705911439578417788402252051233794316507485503033797496597535781484682492537078766963875249891737470507143039328498575629735667722002804452383053480648401381751273792194183770700077489775363834144451562094540270087941085787410672837041591283797357746859332870136603993672138038686823124522057587858690741016925987369291486241774153264794412032019409962218685314297573139343173479088040601162448049146651488351837502746902260776864229701030740875706590234780680982289470756798614933683211048880049341862116289702957374076071060096188765760941208816464695058023599096361466593809933866220175676292895471519483429136109343029764837746470082156417583777340402139691792016449970740285822756855340851833189532058291027092669976987815079115532294486272262121324896957842607612523515366620706212548468794577022224737477742014659901274616503877490580921059743867719959569148206769332730931998982217416219264188286046996578905440807298547444849759332439473620863143000908987641090101372323001747698866063071234503517481931969368360387865455823255958662096490423702027914899131682089634214594993005439965206063942278350147869824459610067756996327354652568750334446032815480519024838912259980903848059562843484759053647988014300211458278372611818416098850480342212502212020714879663807407632491337092016125477357879946621614388184664530599615644376512515741212312146436774526227302359351974233747756571097382813677505088191831967536816820017652449562825898097823189557835092961941234001666789373943630373837665285670016088058826650914565041491452807368230783749013662098883577667646341613904824346959215851149756169889038321898548721094407596061048643936678143766892510331309434907858725910157756091389478605839577941894239615086085154253818380643553375112909480034769863858022318385175503413242018657469823826091390529586798410379965359525368807028815340177432954252150266399934987980998783734879833660264910268941979854341744168326332062123434864967352526531817353368671878694027150362500310810874266619148996348435345454734671149267753988841075755299218270541054490370360424783094790087750557848892752454682684852009716478990105904616280214204648319878802969656504363575788476502670233918925613690454461218333231078058408521038936752034238569703055824632702680784266124848991840398937358337927547316343631783513150814034733203761886954868601277530063915463266063966618704484268031872178635754582441066923660250449524772060537100396093406766858736315920438424163130031762294045049278968224813969289009231162929015617995092706275771900712705566463185020983580889475629571591839879799971643663151365809420676690957145375637187801627856308590438623522069720763511569230699078877727612860868189739613127019945482617372186225744994288925647385834685333142037290303132246462894770632254101985894452374650382255229949966933017656020007017292827579771756426659661166606413840742874639174811966084946338666837428421906328856296040738647222568237127341785087101336079260542592927373838261616107412701082845676091207436301609454180341303343306868962078434694435595159072844787443236995002580815172376644931791959441245615566710579055687929578171243898382574903574226399368450039962506611765473969400815734408609265797855731255978793616374347240049999929421225426318501033478654530763479283317345499073201074332028994469504439924641843529213584575836754710261717784768891300097705250589529900426641522367934851955934322110854096090638909106719644182598049419724259940919406628366864275920381203497292048921471541929908456459938597957494582547841707891457022962567456918056745140129785105915350234017540064480329522989548561266786890213176415380057321071550890456147256068585875575218646104542433357934108320256355829142220122292932523023934165858173408709724409120431441040957626740075074501185354295806711304808446241901391814093428903083368975091775744614538540908188679158707363692386816089440685043175873019350142360886672934174801467613071350767496781594681337096831929348998682128701303968068681146716829129097599719365056347485112648046129910817540851243221883806762076213415862358590144128590122355287434424227105074718876734626702700022095675526253673699622980976588810698201787568777200047840758980197062993229955106138361709634050790816028735905889852460734673660177423686169960423520009511039411569877748708105030096103886815909729937693673194293915005400023818625944042159125588017941238197667468084479237524082881374919578360241034166604338962966918500137102074050897629080761606226330150634221235321700390179061687704977826576503315299615105640002667655773584189467856742658232271914530332423043659156163540549587791022047908255022325538564834891721667040219871286965060469324772122569972571134295206337096914687904452611724697476439808155675576588684716099752651904190178414312280196238964241545714967198488910727871422228831186067258061938629589674040269015644966311615579792119848495025997690548891928647747510386252004080724863916355343636401833150737318933355483942590143508154810840226388622371379387077582129829300943620353134069165638488421570855689327055695432652566537315078126709960093331043003446980759345216692962537200186719911784513233286180534385014402763707071319094122137292693693385457178142791039137517950513195972915310276028514536668471099302199448998870493858262732048312815018147502884053089444076858372859897153868622112716171229487957966249158529759628172982914861342385086774138872677699415255122238147683171441451301115402381386921062559294723152182773479470126977647537892216769428929393786139010230852085713580010568279924357367042725463695855555967923637174646712029980590842665275338065217657186269084400174459211714646166004759785818567008382959984240763522183690603313420684797548968844316118389902788411681413018977633121974140806979919669422191229334851673756076672704632224535548504946927460599927425065495714619425778094472210225512244052529728641500508958838535624338272758645400121727040287768886148669153281303210134622335837579866782466506840706448975566543889352276692329098331361886600942421933927484226356057023048735658427728534220666692087255721598163223395644446249794173234122909696811543889091566867424883980694246858188035077809473672796517859777508526986871839423501168426011269401375209019782847148449303069097222554375218678406074936970761714131080025069813647528554204711622949031262283097576885323290795451433886653275945989747022132406152615949505878053701258865353053794952517596773864196848997347786747871291051695197306459753628286847404502667059090979555171077454046754662408095528254302865047472503489554474609501199028241489793552446097676328132151718341229923774513063592835329878450464015093751772135318790555059488092088849916857771417301607316452715290651138644575986691748052110999984936726474456591291290220132915845597921619247723398231041904705948916293525667832066443376350606962848276298139142948884388204046063716518569717895604502928959975101055672002545829230159743901035803361367750550540720533085265387241009537863966757482391013794289851354119957446028217988347080093739332670160414189512041068449375646753754677008500061423021829640711171075231450482274312847417728133793442161495023131313683773493762377594913527848467225187275642183793857280010327489515170682653354402422637007311622777063231389521317168892819141851387186814685183445069312246716737518538309339983331752237486970858901172035781660298283271061765484079357944748293978382199295101537760328054982359693562915730417949129707842275873468417354207491257689511331071889719339816803732978743053854721992769855887737885016501183809089738813862413993765925093462604731049073419852416861685114153672536712378959907095140392647077330607756102320108578972791859488957446319293949466502741239388191775354874386529734056977593904129908768435045544435499476159728960876670697379656242550378622361659281293350644670518726616572476034131178768218717571612315013215817235043186364485178246405385234330209225610521786667198629798935088491071901761148932382271791814560920869721968914040030114650418274044216032993290905730482147728432194941138136437495566570824764833985164698752812524923405054089001403420051868547357679414862534819601700744681317360856897235340201339029172410484550619129453999947283458644607374100121892338353002125112912536994863899995336369304458987385355754058460910367091168895768433253353979026519656968504543363848077751580668392400382481440300314311012343229744053642892754756631862530668696924203941015756384396841937960625019148781950644550828145848001732244345690768743662920219556382853453335353067052134418909210198623106465041441422152237122310286178777986155902168684767536510164921969364440391176293868529882022514626872657849576189935581358029889570600487662849332837599809309025760229346502390077123536735378865166586294128074213983660311985519926524303322295497490041946709023268132008835642247128910971484954739931869959884600913424049506902340066945717756912280242166634817569682761523238770553524167153391908591917311965767715590278813858880042637138628900659392078338407825704638166124735747425598536308269937704145304936464029548978294873114764249834068776468388292827270986850963669213926512451188221238908414490361454806406645629421759738416372990634911805477429891075065649704469548129113585067706661573657312853049838346985059970557739080890225452317213708719673029991208036053910488432850194437037743051602614769166958174035481435689369263778557502096544980571013982276506227724572936607521728856147462514316904282064340627632890933732618783372769490445705335932057846970756113032206279661949783236850827349962115913171846808177035558888559959764983276108937870934409582084349958351716516223934910403571636847441681917154026782167575648471818683613468594902986194852408129621135436897494912434487827391420953773631894354734843215015571743556348539089141369532973591929496415283728363669509333369240146205969823192752136477142184064784648851148851111956283910345254028908474282746837275385810532126362841996311442227263632661257067040760263397338515595327631271647223981222495161204172045027482083581296118749023867754779760040109946739949399922771632722883580015231334022653963556953596947519621083033159345307788463925993917859994250523804185494252841702188716651950795895132615271704672898777195042968044354148926700031872691301333802328837530025628488358011645467833821658199215537494651245593708442240938361863110327721508776168392423074647697268382354895441314988683432787217263825918055631721875020635321648781810957406709552969536590459689168169330270189903271548454551333006756911327713317164535434530575750410668260897123904548833306561302832317523822111985698510069258402516781257067624988777171202893486911487706443836869517606805689459783666271912907424023930347489042297491868638870600532943381304064113125321648788670002626632270059667463781622670805453343081426888949717372013905462863457678641322700657309129382558398821437278963586393146240063504635548155809042013128121222170213887314302466253655673480742706819419531414091382616520823579665007122501373141175832775202841493633389908086914780342356399947587203390981817635977847833420635633121630357404267040031343444827158985838292983315722675967692332521909632542101507102526668824505616593357709695584199053557684345502241758060184816874889622248008139495964738186093011774889475295244877023607033049096987966426955092203088225352783665043856229328545845713184559711490799382581651105746068579295742115932968915738306128532360668552356529642772840404859577347882485435295592755602834291783241089435045894666626261108320077070942099275007624634877338702039226761374032274218992236480694859796993652525493515076878458334498654372062400650267714850006439031204536478078143097919303258193087763968536899186282863490367372496297944034030908267341125121887220006856403481107322010355718372243997169511170232924858858922621765918822560077376033104456107289427529542103584913120393068974167491568067939950678501122884628683214803342783272989219358797884712463837841044595167324662685406855527276083843828541891844683948296429458069673804640200068933569675446220906592372314020652845017644965695428029459494424515371039977628229824229491935292876830919707108116414385868118710142935610012386089329469390278972773746893611189235430218172082192258125776030219990546758622234741487293762919292433922863176662902456488611063201840528483770351414404883766089978980646352853403192720073541125368820079939690699075881535312939508162947700735499690032923226453544800895640021360044536932004455459954050962921030611087719106752513795917927160876079945240008068247181637871102729523125503566358351241125825201510864867317059296070758121993131186078473101306842140481596892918021057238681319294473674756385885424601577180663951588238880862183987662930662793705348987918652620308400352547820824365222681491409912667752945656064394115582493199334142670199584482193966996514864542078515993472794859127209266052665149793991987187966976626824933147413235852176549352208943769246851992397981274133976400757176867034517079457697476128474793056393756501021247309460810665408208855549578978215922285828455710293418036723695681458441887720133092206315442313231959776999091800947132340175455824673269961139510211853654935188584452630093238103285318490005508313502387325835448515885422164281314548927211608940743791093421353609983474099347138931612014233158735496898679876198141741738138915181717041487991058997916707143103180476540551333087227892960968635304037338952077877996752482433683943422125616959176085333444820574349530701899689981046350528198556740094557732829963646090982969078845521560497759361378426540335674733249608476145969868515349738590768601807761675555146937255543067865330117809296326509049288325899003513721745052122416831003524349677748013095518081630857371406689422502986490001707196505248212122368305070909014055491268576696054916357307532294425346144567575572805431755482635231107102613354413383310286047128224727296151884594884607614615709032566676004352924907496378996358258891056773538089953495717041598221508861658062239322125147561497052363486079173792930386776340526539609632713373440315786421658309244739341744301822068141900133531353318302638824438116621258096088462399259664230397341675554790861743218319277406537179722101044178650382148015742288150355962581228075519553503419979819582643712284739798914500263564084430860247643955858161807818737569602584058337960084468530152367461793886700724544770577123468680643200334321546025803428113614070954054298514303999635693996230147662783678085845103249051751758797498084074322734089978939210159980382315292474282623843373408202902629283260869418660363696191554828806131358538981281457309347266429250491979515996299473961749517797209923688300161700549801540317288200919505200678603421973645297569785499018809411068977851000459921847129303154808928251762980129499671364436955668297791013226909652832419539402061151088395711657926957526749620302011489635745311854553288773922347943890699940162149448015929497830789721406053720664389922714966669936406897124538028133453605779481060080058816771492325898675843051783236296150002401860104210524734643086933027712935588588952843803943105869085574945482192509784706661427670057427963658830816226023626113985356908398099110634098613878499390533699825082395705850688396480815594440295303801922613606945470246437620558761773090703224899959414007194032815596418211037288040576981661378285210400446555670439263536160115964576113185897012627312075590901186800494907399434468254460334712807472488386741792269635872337931287657991232203525962186671807552669234865844754853675201001906310659201906047257842902719883719906476189374279945539701828648677909864054962643213864824024301854199002677264732845843024547174465846285202614329214960828713432615516482512611093629861840117901704140659573154804399113129074795762727029844541766100787063679422462250941242360175919159120835546889308681785793665997797981722029476050493427564179160846973035810567900598605692634885810453750874218497527337588521238556949205478102708763444547832299721662393321078894454848101684663401565084151007418130125076660136597313700734405467574037637204584736864696340766589930789931981520374792447561332404937172382436172900250360055014267752328851374329633555052091515434310608725120063855413319086534827046132176557986721647272618570651725553898131613269336849202822445539091759406789176839114631539133784270137214547614803497958658935820982974280183034065791577347459623887466612643953716091297520532073185358415758830393146795964980660735867853474357163903758991928694703892498710879017390190885949406948223658836209479167455761586719745434508533008906013988480656262272271041022913708266701893927052038953892466453291829762797978848482692717668787964516894911319043904271813013866455454306305495119516562032545687827865429514652571451935764061665488226680233141178381933086994786209211921264152460162734373483537110772840283299955753627800410376570544641149757701862073662270105639084255104095137611842065939193620807455376285642315985627206090064353625607035171913175622957723769885345195785974439297498212087801921614425873192149113128629611105930321437863376104235550928648140661477554308464961377203195947535104469925255114691590195133420803995117797429169913264618485270335953202095260849289063534676634771879401948221841078836090940471656740295691550577946075972065533033741364177196245184905910529195140764194671049485017634406815032490062615138487186634622772697788475609359682863713167830690633568162964835402243785022502681399594324378959743147414539583076843465744487754220335351734659403252573123588053765479960184583210744021062942349335280152286237900541310161448716249670065721773897748510498815604300730655843914168923651087345534053167492355744875751865446851625700180003661055541535899414612223982963030395343033098780630729737411300696282508965283340880052503784860541708800436264284723200136731797413729062825706020982234501831169093220690512229578513135630658041291360683434537575181397133662274975448050810807288810928532034281549911677532768993280181908945201546767087833825853785245857052174392067801707618376132090930171357727493427058703775209497528127984858602038707294478810119121378750179170377032718886997035536984366813380883146701992418149961250582767225712103956513322469567714317814918346169432257076566239511211399359484330242793187777489969578497344489133867022569958765655073213712856224001818966479076893364160393058609272047875503132858729996448925849079474121244959108349641205012293046453432985454153365042813433874309221453458138498475495251167743633536235127078841569480501258663252875225835539288846723910956660811618246744789548806828295991967429539394173644217121549656350488638870812289496792015615213050575499933436151839918842293071032713297831251019228312140070298853507690583596881657132344795195950979559838348709432662727524291324417974091438996570709924415438624809335462263267464435027574193775394013916519475201348633348384865034229456578808589940192229834393053027862182195666793476574153044396115191560987080254134950442524029793381491686973392819114460220201437010183463444708093060028558464143890117737636703505381718602849616485083857305555536256917237188704590277790085213006315394464874720040955528359733620607767371969437001941269941377947474839018834861098649268200116654601285539627395102045849879281337824083890463352148517615403688676551869988239165737501891287925175140197218722466381241813421024543689473384001313330849693675025358530858493295333138069880377068573941712449956090348413182934193945662632212241219693929676201549139992476061112309009241790063825814106578383667026352633316630392718601239555468095377787203740686294736663276478450832600697738208923274127306667779938813761477136676360858196212560714890960453872753120516627477626536875334793178016018354377880428843846924134358922283772474144466258192979223635568074418393410365263067408496119641007439595665218020148632618793884643170253854058490188743913617193641825575774827795084731222984561228879088158229923359433007359082186566845939330438283029219788244373109891662638990286372582645400476777303252276495053241213879430220314492779635687972352542660558950659333717304669258492145735995771969011810516728723805049811618445227948325616669225592304222436724000450722171970882239205081942592164388702245436641961052354253889016204349417118565743331612945268596503574609713937477304900277237319791867728016559504321547998239468446242137004719610594816213552359445135783360967518372992845995774673018877395298103450255252550317758603366188682873750387973913437658858602192497856953285532211787038184930365478729345983280617894163899735761419105562505213295695351599457276294725392567500665151746706662203935432117928340302986385637512462203150171107790229374456905127682972380406851012217243579239982023258722738257353313282222450993227867482451377478780847226328586142528135964733366684832069819116385987398624167850118060850482692849264146078040674092985772147502594757296692943606767389908325153522886359360561133715884445709739048460979371476520888055478019236302278224053069519707052989659683236910199671871222591086683919035736135717068386978964481274318194952014470714096101403919927283860619658321113347764121361173642158287256708662805075240080849668676079039223336263498994197604688019739639812227810261466171064512567389988717233744695511187481679708163881641994817045933879907173664883339069255408730213102115901544084845102052224035621689021063545040829660234594478496786547500166085648908946916748066865558170472483325341862921180977503383348953949393168062912480915752013845858270152021927999458256592999118075030523430665810233749093018934542982257657413427547557547936145023584208729614409903292702275308642985491755131167169435672829509659553716431115669842801232810127709940757705996709045818163387835155167469564791075217145682496250295228563262265285552139482605468141961134166678695499678983581742127959197814628488534694204017196864222939315357906199293778291761584073253819541351638892807770306787057036985018914934833739384970427144648040549181425092845850954237821078214752135976844349934640718856013464724063281613204565470894413318368029917918373757766152631467027054217088449206444573162315882761468047704491938559000567692730705545544183113857455865084255436743662193984837414474653332526142221535411196260640062585283009043057725567696510188305796826725188125570059740316785953134109266680497258019930160753940892495282054187273960637843068694869645886172178247250194191345799282420789216036930807183776693985784916047840759984883618041631542516420115825201226124025748324417989939671750956572802662923592447819548414041051461963241967381108474171297325114176268646069779925560504966006190076124520009850379798965728803068160101589607231218382475542418939627008995880389676408361870888493663686337645376305296971886612903696877185395953249122461495034289427758308728918307358443935029046156985727318232091902085702275936714221387648753188900324368729685713246458056681644819522021633718027024011632994905159070293782961048886693932800007907493393978924849038173324449795999666435685525642971872399561326384543832191748096099568949679252496115010095123967011071481202924226782728328343081822954622673385149964274353241075233204854136940727223335285227459683235892869834086875803097441956008302133432510614824711720808063434462301519870838837206398142348996176931873046526370185900425093138832822889664285597388816830437699707003868783343904843969629646887256289336918667274936010670262469979953060589432112086976982401305302077137750804178081684870202911032268234120635775442885246675890391293479328623221340080561683444247707181759017979344942404707700474305704000391540872731559517675937675304846791161557799487110535726345417610124687348000051292240329951499027147021994628338042305321931757285559404851167535177131324357662224079942022702389438875170578296565152523925647869257186845779853319451245903691042347248612671532454612089864755554412213105001244687887225006868019206067757125143774372256775728403706946952227364167493693533663535151920881289729242575209674850704142790569475739759373877289622562460189875397169552155322169116860615372590461582011560370902628930883840700485284998274932390209785258178520223847861614906410149401802626448762754262350544766222204445579661788783658004444388190424362090776051397901321486781411916557450938834700613915537160660256451870180004343003188194505604277287952579315093316154174844777821486540710995843910862923462152277681910285769722019956249581257603585425999215607549442315123011447777887289847062245773094361731854584364874426976961433398968228844445659275079003759437204536653126263820311752878227886705384745349969207209857225213207732832600617830940386014804096786518844125002805044741344614734120731011939345286163306990272743376949155154398774827374396475080844285022075577864956090529860053205866153475220027659964502005151705944748889689282594705188167256877971061673192399870265739589617290415365877724307511114967682045992226638856742716512497619208263702590300808050455313972118843542572116795796330611503693691000482565111949364578548795005251633244793314191668813125121490048791645381939819655070288192445674063736196403321141862303534861220615497954322535823510796808933031262951626066069933272754575443266819430474961264905627643997568124835377302385078231995054449279808441955117504649041989115259493581405392640464665271144060052184757125997515484610156827593557350075374008567256777023524430644189740190783421366309097131111806716393695562059639107171440459658402429716442157060537165623506652167969300363020578332858195355145004619646372892368474410404394638204222842102623092877355250879717491541702892580955289342971281987449187044963125432079325637349302332334181686457120900939908003726482006114470447912114413599137655125101619168299825850580556030264314791720934720173527695184916097161065923405566795461189496118913621649597318945537078060557183076746666372164681672374866284554006297534362168432328432945153100880105496785133861677635839050863102084310917243916700954275669144828164601550409382084932170502212929983662624364822626135067560507848586122701294271742203112479365970194007644574857546051074599880326985362429441528253211713729242292242377451632130629919449420327119361470948770167774211668953833233160948986881013095719626207063310919198182646498586225040242996595680171418587856420203877983125595973655237016278225998414175645167037261691343043113399914021887394105357866311967472782234531342801107016075633252471056374557780576779459668096617627490087775628791284340124216867089221555809898892339566568934115418414485877885914872012630550906766873430545440767017635063801011249655136254851995675388630435154510376409541013249024239192035632952134816314806604009889419851930372718678108787764542977167617217212240412179906674369766707398485189816449989546672711579572285336052745102477305151073576862906451464813673064870770130538522685893900010740415687514887736040142075436384526870449194478802653773348969018894482984306161690946244576640024871536084445604967676992459316637608001049348242412601062229450216448995106729357803836380195163947479556346878938635640446622054499036839487031924259832521547757180027167140712617266717783018320292701755853102364605619280714853095536217337579076066251078874644304436219257196159327445956585158423519694739070545558349950269811252772304541284857305460619418384010049794889874980539276720514225244051145581095535329608315965059205341277180429356911336332779685557785892140049784973142406466324334116100099074846469563972745054393705770682332128951918070047056483796082000016572176671555896827595193587084585240403846821735842966336829783794296775792974389612778844276520747647814180749283654235588286578748703122455640647287868327767954194095218442349060917374299997992032425620447404492623285523065332997218208407141195279178085457540001756526440093591199520341860339303908706131005412865166281639458557878274020312083830826060960494579062071654196057554665613103322291221132837092614160608293242333422677217918267134347918502605462888742670299813731536546976202737953243170442239144113113769729095041701992293798309814126733126722249294753664675695146348558449880671352491773242603036265084681390169631738140209754423867919342811365696473603374501903123529275873163834984351256232498644119798414441434383344912648136798367724068294616515540333593217076402937607921502774906619643017155149262561186303961865823283521815406160526599503004152538549627226884606422467611578618865816719612396438629792239503272344260040688104741061343611860670874163918476602224731302421020333070767078957307386591031396673473659969609784886611825773040374809085120781909287695340323977138932504486615560528676895155129674635477506946577641021977171053702112662953973305208022384767325682271316385572700177820807444021218808453234035183739103064832018165769069999171781113006998155818854194882350138520938133085545091476795298490261570580656935532500735764958513533161510059620402216315950243013758752256272396787317662684652738789446896662944021746305538407933633600433087522981511884642812225154650745367259934937299328541149829564914808140517294093445908369287019902134293808915890342172970718694984151253309865955669815997609275829541466134772763212762291868820472640993886605995507762767288066656523511804928813277102615891727513476228766427685052981093359789496368508734223288814052004526091356718721059263303094333563663345615039715763694349261887881549738722129086192890628889892859866149578982467615071602773805937559953890254018781941118049818113183929781802365497955795686141128738330218477073967551554336404451478726319449661120648063986907782171983200936803636780035630296835126964565317591075342434255925589943188556127781058720009081997892723470649563829744882798011326225213156655027252507581190026829793848556377585352271607018430943110932045945746450768657005572685535105813263793229226738474140823144048265482376865078249676450167061811482023150524242784116087701631110069804690677745554982547768324692536935666216650254746335955980327707496753429830895170442608423956826004748891626248236884270414018772374524308359356715701307768530626530365638125754404812112662267970130486705456324545942583034246481665285973197358230678542659330745929995527902878378390857994046027976318852115537659281101897976609666406212679600026927160663116672756792686818856509496766068165206954210814645224468571633541644469295608795243253479672989743637860662411707150163134500422163192766409236538705513664186491662944250289741722896329843506302918797255215548906329360090783269370740304338508642813988359079519584760782539011228251835897763941137671768572228512365145181583719027457914167583461374672996992668338634755348051926145457255617368275955574673274502635227874602577282370505344247805632971326300377514001846086638152661287404969944688511183028440306855518143936608999671007895291692218657185487242233651279244921053278205401663333240000919837219290170913064411996729626809149238417681717364547666756412572538431460615342781347350103420826823227884752447962167314752988060579314210464992155386461486283613772782977486220308118542660949753410130364844729768420828009428132916517292068853356689158767620897173056022889699577801830273809262651112324994137397594806633153904473892017538277084196146142353513327084803771785684110922612794901602296376941561603813860368519768084833433371001931221957568131353569503120707698284753041863091749748548402072476021900318399815192516486033528489619144936296375018079048293793141709941552979621010858840401681566235207704027718473387565967616354085412624708866774792986159675896843048279492225664205021954633611108588559324851143371582185347821897647178648221748130711216585170513653697341884235521963358502585502547945087942771621944876517018487205999287526588656436355585861400696400475472803516654041851532656538269287059815078373582087493261378304523363415294645633972145799540065976774487767240033262785042500935678218445556782044520172406928622232491184479939409147365446012203240892910757484135512478387971710838300165724872002900315961792275408733724362163651092854463617419443908087808418480543051300267732725658154492702600383547851935863551206449571914704050359075237676040309275196922940664408033836094140527303060494371087735370560533697552797439078785509330830641213707892604798148306954389829728850913012975607060115743051813719785150037621487189108545179395396601864361966878309286283465821904487370945604767341835208718597260509665881258551542767561396149114982104339262639999195884813257185382064138596276075582386868882527623939685118739573480388915457343776272995580885472425586177214333022067820495594633155344308240098777056522949812145800808940223165518541998964602433579879962038456286590742311990734276265789236953567778704832887588264342221455158650361539080159324175567561600176927594084813470717892479238067221745724837165750451326506527545741030646584839088543384206799423176951261621357835182713769784886753622391432052535499532489125986359770539610836096954578359752107701582566713672425676353960797285424983904201236635988790849036954487934580850497247467066480741350929787367157594798836362033088219870770709220036411917731356071679992523844195044244649672158560362562835409612494962088809718314523008264401838916626226133615179044084987119261453130804833056713859360315467643129185221318869586117179214477288382552664404576284150210762711095393569715987973732851152239215936943250766637101426759653955979648753252009180948750172319893046032500945264627373327073233535129384446787528157228131223399148766882648531139731453709908509676148025018008707593764953855217911540867499751035434753688974600985795059057144081150097073737258907729008212496060288272090150652754207292869425532307730756470221774194463466522730484121784755784790812759717293065403125753124377287896683216177042616078631691073315517034177680569031861459195291486423623013361933192168855376069608823661109176522712738410948467885902108187615834286417403934105669515167965436850809134346288830181263267128016566074877561579956477607497252995571182093825419874721812660755185985024682411888610628482828328751554639634775281407254356999662369766913688904290347440966089300532560450666391742547504107227178454204242310594034439253974246141494527086923601092309107167887259882664015810284275493930942401629825833857265825623073186399936617760394781563764487655647690660908831289731313633154329412168947027113742172763608275568513088178123199722917065487102273832243999315860937595131231875959170926788244140875501497514937573717798074993700887694969701034170234897270670423109222470115886476716280441293590381904089212951300295679650696452059077067275154757114285615038737844569118652995839937289290689255688329888300543995042864782111016272842415048935713086071290649480833692934200003742481921022672524605961065382082630709706071793664444588535019106230462598438212833274212852509508805188723234194061628689371659780721248971658629184898509999229939608325498302696874435551970569184338853374849075782190755272952131700558057937902113849795564604166563088311341287416160377343598773805484942648498552158315055214228926583773423220720666050586977366929084073733348906257429189054913755891042653577574980771311754904193991573715156884242712880859258944390671167701826527130205734313909223606689179123430033589579369857193910327580534063825784837299961407312859574390271462526264401911029617584428106196035470384815947590569692168418554950901078391273565970865328278744664036894968758678361921227114517451723964201956603826812896672602729918304306025606429862972483240677824846968524968991828497687079241884625983835197179423131575528038126312940398029038054829735502681313039390126114322242770246779545988059186005937172984630981065603868804407509504033752104528370809835522660813374998578366719447434924857636918250739584122785689578328096490624492282583857417668467656876149045305922110356319849159659371595223346454927414465986146437258363163187373779939740169646025998662304552406106460979145478955499492333144431491291318107288454669715046019177737090858201737456522905310703745540493896525380534833029433657577418945003826871477918384337593594083195075129279933857514271292774819627548275388274378325533977173612844131863949523287451677349941359582382730536365974701724642193361052481517954314350429218447031136964627096598085802080652185655764509285463100508773659700567017056484427743373397395618120548311335586781945843982762195783892856066574505273870475378738652005243601899130324743478849414280984070212424106250653730010562371634859682043248550726080359583433623531518325764601874850944322468985712652541976053963437762762139442245408506807920764932712742098109886379399839675731120894344821013917977606680614683004587220977316087376885249522462794766628260461415074365202871508687302059822414693758778826125430722024402549630230123472422830241457826633017163988026936677353174711489399190319659456914086790559765251096738708823642390019715554959870535995297886188399695194638509958641406435050597038811530637762194528742358964613369972317791359040379160521087403643956578691199802235458918943591425680311618641422028513186645152524623073195461665037479365704358490151009682826218656935065213178799677874030797128017182974304488243358009904336574489877833549685231199573768944109765517304055792602381253654554215490678833827282195016606512607727144084103088585083422396570023440783044954822406352740702128640483778189886497285325459119246125000327320652378127858377002262621333200427362767137331070263736467199393529167495360357325256301759477210569378397085324363833338563035496410261021987250942712637019363783849003192170802395333294260382471590226883966086621483074499713059770270328147095287130600163577740312654737077834882599290688960510241869116595430183214285083309920496725159922173560262285786623943156360342848020309875239861489465491327785209171044309263269144264008745878606691691047685629209714868267270019343125261713711248288409155017934862482831764145946241642675513541907750782901338456679511376546302340693317988906455424661752290877759042571508365896055065706445603499634475869834688858975294832992596960593551141537523351589053506432658609263453170721216631573446934333854286237806795218278062967293510890721530005934095496168797188576043383701517562512627330238708272369521046474204558362893937535151407649073008390452093177916402648635011201034691739066578230837946113334922869579852822241070964162618093089421346060916577273450435080635278000217287050776876262538812117250813681194674886779421568870000054217324837805888425018285973229826751770517887872651150860580031302453668949301133622611090766116978530803734190594494102836160814246592058109700929572677423393996523614498319699248821136304785865893344069273717480238307170578644635547259462108551083416835707036936214003652482307890034782680445173536666321283112726896727468530193497580948744995694038121590525362987565455811894085814533716179629283658846335135188278229519809031445028220097939089714835398822185303047504878637618609447353304014024735447682225609459153897732654767931276238772585008573625671733764031089937526169748332802106370203936497766114663479890481990758443048287695304755563360964713138447451392370554125425090640144291423867395931036860627973769886402381499357250962063145426849183657240504010107494959185942667647494579073942732657221015925138497125705693656848852286586027227165863594291225745383646179260714708556459928695481056069630483496744793121306617304065184433249093627696211201217875763316653646098742103580700027672966269693105959773193640282204357710107038682862282214256879195069908837202723757536547781192913250418949107320382848832779452193960445580890950563172279596788314907008184322415127739335671297836058571732875043351834163318828854426382036022280157838380343908044976948805491625433010764000831893299340740837659015543170152415432214767146248829655806643661497075915960364289840358815441618220274091538130748429214460558189425439229481172719834670708356873715754953143533888023401126658565743580648170494949518375533443189639886706288221678895285450989975010215462075560330588546861803437500271293529037685171773776681846947284775170351834911889098580286114701046810844985635255326066916932451907143356295297875392079829834948781975289082307635909847455448608218083864079422624044548944127803453235208393260993829402170109467077670818993910182829675821436401618615693579873192663291879170401840052686549173581575503744060883815371059472088530702436340700591763785191410262035878452942449330620042604690494788621762457271554626614616859226291275276567238050469385832911092003019788766850192746188431380440947963171890611718234668954156879668006028923976323657174189667942456077536939389434968121178924454221325003816276341994341639929586869270629139400458970567287902212528502002464371607506973760128673240045237422876913655496412227009095285564457639557158870544272366803059945358534270354324532569506047634203291194677079527574445581919539014098819914121824796662773847821887343239864585991270081130937455503003124089324879867815033268650192982603224393944351151673928492988681593793278263912917787256125009333097608410982796421131839966394489767796218219612339914377804968056528584119747008923587753986729198245929660227823179563113280424544547728948806478817983782092360176747836349359698350686739211200986136854420762899247450367945531058019394142212534768428957062773450333334580971086731969999617356824859406450129947346423543331856433387711114091705314761618338474999220299181330277639423344277219914179470559348898337254262097589302893063394818477904471442124735426144122169739078305375802058896110766209784509948170118450041060918528002084089911611426048325187971884044817270082957960169976496391260453621276418600500113478256832965180137714252207470061170607023821811636844591354956417902258177549975223473767555085737521976063383276321428428944606517141987390223427545293869449510362407418913962508296645099732280692715626842086015011315306192490831940036454389387357931041551567566629051423805894453516309611692504007337911490788034289822222853902044181241205530624582038924020170551155052368192631889952951819404723117030481145642990880186070348012439502650612211640743713051228559048417363737143267014564403165987328453613136103854859108263834830136995636331981383489768532962756319840182127235025169700539993108407620509691435470973914772470891768084690730716954551419671400785620983528386645026287865686596535227359925085942933968193598946247175119366691038019962575808600835077539612539921872745983960518496880787958439683892907793304670487942570472225703813453862338862784437028258694195049170588280936134938784448836312335288707294550524792233220431633291748976573743245041283638546915568171026412598579872960189809636203778408616669817024783728929714958061365826516534319609043875567597262657990629004154586722877083300982338655672261852293726128411556088427610712496854374055213670583201623578054213040532971712749193257219542053845407760517188574259621181158805428557266404401118831885785662613433899577840737093430407480010278495103053748634757331198799460857208381777920349091442469983138268429506819940017766949808049641900513289155149845139134478671961452065657203814981697948524888392936687366737159424911373553235481587562858544346408913656430069387161907408000795006223604301991394050057909485246692749240721038473457116173414468507847687619267819882333928394807247917247264565203605214098663624909920582991850554689054722084568949624393951239435174878222874727702296998651288312897050448168372405559752000531579108149344243310988219034489315063773479521631050165062144934979030251163619563000904873453172426426970747676719207952985581893330567504045750261840590277411988748758314947995022765329311737354740557733948479505836023093532460464733618917687088017417655562696688339611040690378470495921642227913745246436505207228412063897832124654480656888763423621898669382617091855154163445627082025741928649055575787459794760148836500329296183859267835322866260376212971273514971733837579169676332445980905531719420677540656208970223374216117166912290476795117332222000480873587092840067271922234384634039032003937538788667509937636646299356112072409596021144331696128349200148937838123115682470417012925520391157759245466436591935758202822076432552427567393285361540699341182635265303270121169054214422080713973125036163150930232661585390793765489062244962696580472998268684075717025445486244683594210731656904034320816382218025214568611459347066116556730460208532190563167530030314236140630189769722117037908587669630626489978200260874427600658998683581113799124263068629174230952575733763481865459607468125142794909203029417245014438640642879018927604437956244056800094105495129680689624612949670780523992437612004285952944064867950487152229676413904381777535074545770459146239650885981075283973613675957752232521389075641242247615571119380538990590488502391509091757947145090332537046654287066717510594369491977865650955958797956832065591189638016396160086513858453175040454404558876648587984896366648899453679530634132480112503847678145768508069435741219867883535419948481496158540286110312163320806817910534794591461258115103462347597654074147309135937155777632424177471628789782249854116091821068685585287971171844451215603693475945372193373642865820412147413001735757942069076873397933676552216675321387760759260645906632938641870338194874230302340341233768725652153584310223744432962666496442293844098507033929021948006195921615668297724972922533998220539349873009863136826028338032998940826121355366726566535284149682255052529629358704084958206868418163120845909007795193624865811849351224065585441511787310310581659554261306605558478400229869111133819068358304311012221220641245824645553851555761684799705850387232859482165286941951333414851145213305365022247827515920489355592327527657910326429354566243968959070864941556003574021090991142817522319467285053810076832612089705461324343816987632184362780467121710919582078915751482401772158333651226617996924861141866621785577878168640559370217153993685333210066531349727038613455571533864598443348334692345676695857579949768250643741059926087168899968556771457483952327929567572983198459673914964563166239025806924709514347726535420171501945265122195925299276332808183047062010523583563038936781698688792180884865296516161350236396877346993049675543893062065135189796434160631784874202878215515005572254193706715773975313478908727756051710813637041719630994390950928646814801632553901207616943650445205184384087695764999107034196661354415478182178200378803533082949579911175319900734430250492654942832295008906883899099117309867229357948378554433143087404351090912012765695825529674838676318842322417644617102338599460132786060438910373509434273272726018003393705586294326406672146876070320466263005409938041392793227999465142909722365212924597279528184910384557922624775339416602084510524189943956853267894142419370624333900987203516518561186572510144267785490749748396186051481693328188694086271623522298847899038180717434448860979980598642039847319479067928991420912450818384550558096610093344938407406021699575376224950269790887800962692918911657947490929230553148347627559983968322984516344746322709154527789868057608594820426624665030443429226919747162425999371128456100692199841159406557244949504499190922172018327119361446835479632693045177682339871441126806689389063260132291420419021976542389929652962831511315833812342700392337552897291613324810306196527888918983214130448281780253316225961147818648816213771106981395698451014947815089817577507725895790626305966610831496968893678260308548679178341828623562635092264539990356658547447758627246996375835452973012302822914020072981091088891105040348537779042629820572074552630685531057726735760243646138278930329491052419213449054720124562102752462424143391341940717552667411861534885793713571328167720830007077790808413114034473769338007290215662304446218096863260302602557912325441598036978703114412752473098627429454042868932943456927722469940709280958570750272270899926550358920819112179653485829112291283035053014582646730739633741485355164267308061796411418560456936106609110766518911931018361871195369222334164269904705639201185907037546895361771907756209623996864134793582338419208522437466969923340147206027352694946181337255226418444038955751502565926162344902596389317939157971950931262205893721118111946686883925834841886459090567768250621931271144639204478786633308254101488331296813189604335810410970230503149028809058841531937486237179571867486366642240131652525401805081810066429173693763802819301024044040891257027970240728410733292062907807060177174758273656832898317454099848860062086556658133026316133588691937549247834921428077075959870333521029962632413521250094908535545722975143919105215365023899199842398435845976969151147181330896781275908678361539401624325476446838864095382512035021364075814776344468170577855246137696052596154769926377143956424741440871284677438091689348773022733189536386022770572952858501663428041549992964258350409139709332968626565030407765693673540214603348506136571637755272155889500950429068198966597172824965469630283726728279310182722637254759823364573583150058410891652145587266488488399591741382985080267592968603154630895569229081278432422376547966019452474209618348342595741147170671238502424496791847163612627056710070884129567060686031631564147971973486309282498447069809810811561911019109705347096782950290374132971446093913233353708206286218649558348908538918204557940531131851149258668917675334539010878460088123598509795141461012324408617755700566952241237059573971845563135489395618140710305559197280515110229448748912871733041062853625525973515285129103361710790768559913107496997329869909039205095118695539959872468150375956453990129022027603523518075394266781116497935407100803433654187460487287468647185706605747140045717335853837319216207909558273844810527739192050005765731597209196497499598344802192794358703035795922445279895230799947681012228093832564997250519099995711902258036910947108916577598291017269980292790684981730111789887486155053999874502114563067994240907484497488601899061927822950635023696528249714705211310723033783250293160203656542835144315320237126741833362059552913717380911496535045463269911918187706926466784705924476543734102979034246870959682691556319377250432498264849693167410658117138921944422322337957184955427698007092474607110597793314249908527361096751226048390271914428278107795751337184024409973019695794251756344081453228364855203672637381505697303979395051504420872689206726774728956182221540360990071522040188327708534960625530814625552683939925447108788178630682848016192298895481384853553926040836384336999139908587330870155462683323289873644612191820490399702901250179816487883867995245330288237955021120627222582132034950928524807135340258684771073643380364660915910032947310282774834089916271401345417747972427081570028837003707162945839155542171904348101726500232918566976843475107732612184233512108793831400721634995868835705498907836584774314614913170407739163759766221845182648562829621687226824967752174989900967174289012459418028968046734143682768989049239604371021679842081396862165302442880017386295555863597964898109530667042725169494854276815638750959330104937769502408433050616853299970894427477701526746748569732800173768538161924656747716353972398506385856688348439693922422855299806223099663855149737129940966594305814486463289390787494637764673286718639288967241649410585787281955280281680711338269890292243304292505124472143606090735921320645763758861530004483649058918693821592047598368670405364299626863182640521032224817202999274419756720992144232645675457946848755693538530547601400791809683165490996794216153653334212110980077775795112490120075393245512897704223706404245861150901329509198056881039822363075417263861620509392293073975501988670340108297963053091117773590043734266024494546944476567797055168040819636700872595718291159419485963893748022704795255220735812398897855484969600565073951187042741491315799666036752579823370171490152490411706080502891199246754546567759853437760360615376481603006759396807683877714265251981407561347510651572583839891868046416312811520155470878491530237119199811287750996543273703534450317097681928845610849270382550324735562414768428147590789948083577176446625501242943324543256263979865504221134047422666447365432198352659400708708201573051486933909026565048861109647213765589070435306533131299219747152543381858638283526576579932868999410025901092140008531234291566015558875157504971230653442930581373247792205565791836299615517833749264929276675742130575560902645883986383867831076791537458717270939972009920248393277943101700479867852885235190604033153062927504217252201454419496872099272360250648096601414151566632444638784158162786446367574498871393430985133438837980296210549248596656042661927546685420659048216043877862487307316138136461116514423931167645866285367211881455284254337738868988934276519394313769782901472929608153385912243323677993199487656994466051015886840166998914982650002943692059890295024557965317617144527176605918618603761369022074871899538719635766899166735485181122899129551722696376254225537687948386491241841032989265617889836374784190927815448405893560833109184730564007037281882483206043025799757053268836084184248459628221256263864421779071162081634173408122400401983466989654097267435282208270091518716269823671007864109038231236986616896733735922525325889568700955038951993262216478520222736036274080099855006775703641014350950345324126193341330689176979398937080212835324153236259579907280685973670248280725318201831014591496435294704359789384287678591398900770565363903526203244474069939839715487179962591437112430880937265471767433331404662385079349314353528655852476339057492489949122183967625062678764774131397971210356660852738156302519308954295624603636086904844128623543785541530452585342939577281501632625850439238986035151107631775784602689584358052301661726455140340461377651521675542440482580509427386390376588216423061773895128784730696942270307397146650534307826008668201760044077173552884198198993254145588690502568108248102707955771350996999935311580214155854537992553007856312930477654025948980516539399632497304357348650474381189010773776108621170481202585709796959599050011064181679166804914349338673014687898968684668927420406131674652771039218955950855675493825935862557725026004170555144979216548363297422273878292291523625188917693461215295917322062730666998735591071719362050595916641569252992478579445068052149155324740586297428903088249024207203833571549692687114894963547108649360773102151145319783672768089118274657919390829454134107786625179804414229591613029923478950839606377748138647805694092375944702977316597436166072059008754643317004523669768741645123901661497088952601619266104148287473621665036691403876014718850211820112296140152900536970573220092543097426389523916710382313682022073923573972538770887928843754988506486342856778846828105071200226629622930537181108836637944695087931444664561603203195906665014589595055517566618386267704175394351008719049045855044795577452619218113978122658988586388786360456699357531629185773737986818083770887442537826265629892131619351511918815766622051336781501530080991585302696053646052262362123010791283466133717921832744212272365257479156622431798357523378566831878781126482664570070506669159695606997768629887990207155864500656849042112876020606078585760048846224662178730563564292382694035194650662697992365037283547515495731862915910317704252960921498204393804343782540421747068473531557672606997121815248442839779122559207269623921588840052527931854899976861040889995902021665748068472427845021165782808687504307463576905153669333920966049390474816204054494598610059128366566732581313004473197851762504148535195736551668400962429501051843431612857466860777152920044201090370216129272137639118366077992805358972737114521166390493751728215869638775087041716199610413295247869975739786788041964985037322945709584781100981581039685173152788978157190527547622468651196539728203425648710324246192745580448210718208536626956346536353292448848885421303990958974649800773954764322936021190955366643926858122163223214148466362696983279375090289202225982363529101645757293817570405314959175368810876662327989010163101424150755881685436019322853493515782990008055482687669564575828988372523833977422834073393961361803861490439123226693077729767142442494473308724997728282440375772258681246826513646414210179608114865342349484180122726110698872784833447387773711652272744982472835555455430161157380453340053996799864733501330999832861129393163725585017115037791158092166487805975928939442404143603477562508272944034289227226865582608588151698552873725513951116618382550684382060612351138844324922054164935557288631426400419425292249775826448107650195466015815255307083594341093009525279876800606324067138288575672444428683823725334155215812546695144730455858336087168754448884314755043644410074246390018982628437494479635157621199910796798010031045721504808103080709135009248017510069993038864131984577549749373197861284771430186050230929009603310059345559098039119763327694502668398226449272461199916346971120296292262585428705701082881993276290090567428000122643362560634836397888519396728404224942938646320204874176703308412303528732563688491849867410458185175761903303349514389882910691670274198186712680150298315022950620099739503530872650992010419624077483571515997706190393115998732682966859263701389301741323198161745751517793193545775672348157002209589417991575345746274317768705596658055576265691340103901657437569103821320929994960444871698830821900993477287155272564694056202956814279908652502250688010023296682429564705643951295586630400566834354944205268808443790022701612152194245760115953575076812664008319521685321437374129070662580631776782681445901145429731437175150796314543432340076467651422501998966296883315531060455547652698697354653425516954392607571906524324768735924633803947342285660917182983031330798307324164641426354874972680795618035475759963198849749586883292369790970935142955788453949061918018388043575482972407046064986016494108936898205197290337604766746920033987534774255112438496554972858666996713010080974222670763137305901777096479323148744415948158876139302430252499822594924505647677271297749179054916031305850086168223067652769812253253654881670556477485078105809507461291567876377784209163560845117125178967562184550700455013345832412289821830595015434429058653487738938114191983878327436697432290217494297519444599789010318403756880246763360750435950386992215199315718122614868747747484451753349060885099927732140349025329372508916062676619276194170685773082937989454316706806643204382359626753828633289999674264890667690051580677440993551868982952888129028636076940517210663406636754507936018565720781431511982731716381813268293556278452563802717955582446754345270138101771857723435091281443610992886938736615098337646820659300209202933326467910855290438732256742487670734528446695316942246428476098763564145691811731992832819299302002837487766499687285220321124512178075359483086955104713220012635545050815885257587042713957196608004624072346192874871832677882435970213914531685103897627641019816559875967198396583541715210812014393472531440529185235046211242535772481819862516477969196786093936970418398064779204473857693147693193254462357911409144211610076443293783457715091169352278151678087780759360914269828927080034700821949613507877680273024258740506393356658947542709093374814824967194447438637023426435750952199344029543901730646621839838300098338167114335511254162386803720859119197127506593856829667998349954307064607452348064380095948578507673245550509973345997578810046009865707184748846996687777740256739664995112370376954685819250297171169461449168602758084488684144949233617536841095528630119540685660056713861220753939875973283556308305819706275325496760319283795431492212114799165320851368681301474660215061624849357434463538799045618486389376056812898301525489465707830487895144260274473145303332673046646768224922279680249404570072515182523303534944576267020174228561453974395927237847709297323075321837402171544050504579446839269621925246457673668620768354466928610837885076487282683597520124483540289496314108104629204703949493455438884628535996601567260551458785934988000756915614579167473309113202526853924915402504970326390512200448758239386979011051706235616530555257014409172112994266330742078040724131605998504697419978806199202356344457458702519187903744401297374707573509083117194691131919530751701837999005758900124142650625163940470788743806249839851149592129777797744828833955505558865449679414575407041145204610083915733341066129474432753096531161376656416763041363667470689878790518507439343208306183283587737567440451903630998815804033693841965227219121155413664301026322310723675024124942493092584474351849808477750760148282085995816826938272028175202388414171609856262738030238523355288410087852258287284765459809415467001386605634108023703195340073166868883509093145013297239943672551014018109258825277571965754391447637338229629791138427192661844773361717304837681401048056843034281127928513945205412374098825335661327631121599565163078924513561540724944177684965747435434769161232970923263934190443146010392112324561122705593592801494450930273977646427620609939716070521784967113039245026918454806282780913533052396638619738726552514932015801441030296309031524982745112474154580417163999861280690946541197490637950892661057404529254727777871976067080382348547791286095413335398086849379029213562545662803407806419730802170683458787701226640617748585298875614365512866044938430494014419456212760701070670867090738627071936963865314988270296695082136558158145015113106185501422645635539056436438721326803276122024929961569334257212471923728646638183607903219457976280979237909047016940714854850673527451693988658678240712298743358890760532954173671363760377965308356545172006520040110781322747413847439100139643222401128679327615512860215215435294344568913228900272659465654001408317097817740746435045442376839131134072082478627137163615937277515115855602144940347732563692932660760951710224047373400673017416818858103423101632081871478331842071149506868946434106785545353838356959230330745964261992791743724542066362139532807432171059583702110211750673669110860019246143351822431115940139563169202290818760046109146322593139785921497419765834580657197309612128990062982654067645183972270428496130711069919445563790156033322606469425330965181495418907390233801496814101018557694522144536487648846030679859179224551669290368336702283979594020537963378140142902604796392765290882328804849602287618352216525893957651848835499931104923579030947188951581805744499708230786865559092554000099131627348012396552807918111721008494154635650934803110613144129873749460664363407247718628423162184279077815354201331508985550508017599790959254798885117253626198293185312927280140550330342571093672966868652463560029649684919187261761261609107105459310780836064250127416923041011278618151407167465558613018802785337553001189669009157597163165107689276223740037371425197242367895945317169390620861442872462999344747284930393710846859908959520675660127796549654750272708058610429753190160708603027790700453397344249207634658343706974239393786216287563948055115680928048012869326484817469860568255349860305799248616075942895420091360377562897664477440939361426390865959661378743361886021651679588301141404621762406697756648899352109576184899381173603748741983517545964320615923331806323921143478424426544389275298285437461368491175402247350145148351904722133396043855594673708324618934960070026843015062578259982022723395031565555656286873392872476803016912503677937270404200759682492994299225332556588963728175377976470722970192157207021718936788245160452107492571095329564777333626590692826066082260089775793975182368267212936024596041599155036071853675228474459400464926057937591699585514545105231478086433756274510204518150789490926525910198918629870437966650196255251515551550527942478643892903129211686013758684256852158799056449876251777011038063790721643438447436852963797238086319536171796207779215236160460472326453228240623896702097383812523411279690032975308775266921375693104061999312899612725027959529871004270742523930434312154987511517903876525446984989514106612307461936017791818307317072885004687418355430598510493900816815670182418710173592029741372232777674033675583956918567761959237003049870923005719068718044815838160816414125750623688543839744183090822792524673582478339032394738906666280855507691925599878791469324186957971577837326908966820613401309055105724171270594671709529336148816053023450578164354230496626937336525053964789057032666927491155484006262709845528397570398156428173580398137813441924553967315714854857083138896682109614283581774115465330541697959013476358452788588452371568101562439433264095252217383107254231518533782991094114874352595598677973529819289848049036614225612549977369262675921557186021980332929486273704037338713161192729092288179289424291244266475302764191672865299358040128474418497706055328360722586589051266886048262327324533148837434970819682961344957937360471479545310715170015569884664093076779305375997281977743655437517968649819731722217834373177667834002221036482947892493129120193012667309819289032598446692113760827782037430769545922744343964537757936124627210632658889445439050456370558950209647230167112514111939133847018720258860797463368958494043059906598557260153898791247127229622792623762469261878437080957359067720870907660617992040194807115863726947809778782990148273296362625360055672079051579622909442856946356130885644773293192112261353053380386664631909187078491677083187615968865954347206079941390403829239313127329913779276464152856573176883191864447096787626349132512397303262995252550838768160131158152429928466485127703742142421131705802677939794102509643906512229955295127564249899617857155685296930703185885699329269622647240984899161710321554019884753025209249961236860904855077383521753717702836974301757443914969273480962061873999768400807876168906779666284746849232787264437297788517170270096947451529474791223935158656053095881961641282528453951481919926742574442420392981988602162129693888592181135033171415923545265840339410124629953572304838527304773493251981717859946388406357881286556094570221243213348710580217962236677815239747257694515495368382551832475186493592290354429673799241425103633482598565921493060608163562396727015673899136128815166588413736909425768464987839999169803121430254280314345831251021940858049039801897858068663431853482203771529159575574094213081654182081013224497514733762472315303218492533916205127731734955894405405930808167075578258080145106713554668193907814919692994753805961833564240919451469565435644993686952990014347899695704956675401883395909036807316347873582276871416684161512017624052645633418570486220249841530782396320295190361653589657957989699105491901362327555857966805785353514588228623985880445828746511324635708463120801325889142701957486310014126493317529000734639417157521089727002837690371973083737837120325836398940039960896108691139819877962972013095690024167738970894145305541139358207480599044534300059809891734822845086396678260317439615782520717379967476517011833357112296855564903653683889338011275159191319595336631519222068039455686297710333889531411966318952329237771630401597806711368933396505152324511551321984983205446366921463987945273735658931234820525192892246921498444033087011415190503284092277182718962764927875117444973567876512519840526168633569507202367924620020600582372693029937740534312365701118659421949198045105488494779920328478034144372879023365409695794691611503268804761255735245625803442445773628049758209889670605142070281082138524657584423586287176476498548670787973667276648164532643236157750076351405232564097841622507896534726670106132399569596806286212693986514523346137395107323581029821816459710492272731959076482341843724808650185009598371631179745304160518964472637189420450750827894756627841721962238386110351912410010177738925660238252353372527754605607724023376354050276352611486455231150541300540242601931285509999228517960794811858109705554459031806538628419315705359222940076319530295836512219126141075684017462709780601851565498403498801714380975904007590428196760971928631276782477475104825256301142310275200742365521202567180006419827013707072694892937518112354976115511249987201785364260102156236885607774666397252602794184574988660253197621062849093236481897432244753358398757539914359338460297924048498442534017056818007324550251768098540538006794211255535168609852509139134229825548532437279534725314916225255815514684819536574522890562733654098383818419410727561102529133725902879506716426184097759304847913626102685466720393815352894223483468457438338641895894218795733075884784286723039248721221553276687424250487903313273545486654168991411009642595755024922983468303383681167022181382302491118214686682080824762361683010089442882156683546420039918013742450694348567521174456023954414548001368235835511980457261520737626242192638940938804393666738792398339193163911578151404406631657273718958744357923879543531380628922152514547271062252608714086178302347639513440386266464109558313718816513060481080292842385650191616656853152509664254514765580261063034849618408553472367129489753946154436111034905806213433392503295268455113656723569357149829237716898406814605655964649983222270995955541620109071227244475078431046147642785756263143622558564503310585781547680456565693397703110691205723445497320254055246935606910303691020854315142237862023477502196395674493316540849312693964161966741989721742822818558200443851734974888840627632704725522186379340623868944972929220890685598417935861506225077706920945191095082228966940600191662931971738655520051387108503590994197799700077542120032863099014110824187384547859409222176207089810393222390402831833738351182177901523685464805879389829395296300280890869627483855143105703170770167418202002862873546489760658361786996966715859496990934587928083213148140895236866336001528331528304597223122405109262226979342907645824778279949228705570596605937480247664111720678453417910044034483984399211091301074399238575407471118931502890093753397282871929983689861964753856595833296258881964955223743889792296438935469366850571219899965371755824062364140788842781660164742770884435600828310161399415520573101197357368369119024923484119014616587600756768198103761965358229980627847460045480228242956565874506734793655767906944057114588303137843052088506478705579242111530675098114213380804017746795506408862717146851978849505696767354653699776761239854138976714837021087869010235927535808925775674878590321057203072170099548849743589258707020860964454281690587307154800294846692575889299829619204311597662991756431445692008333464716829112254183662094300741911613219479412316964794652835406224708529265100008421117172151348429207770201119983503204732612155187610860219374444425819871609722855940821580180478193198069416795669521506171948472228947046580102646381969641458049196608833330101890203342599329501242750580096453491393646076698617591459378720805795140564844581539275150889148311748680744540613648203240873561529809900740351313467571841349739254264778001153262574584222959409914292891780165559735412725703735970802505357935236359519052485216333722515069754432331366724903179730180188442795276432774306027046537824373760604391656802130755442103890284195086380567071133057393161142383711449994688325093038001231181987683181287831559544753639029901141323608798749676260420599315997691515058429396188473163501195458536231620346406695833550537098314173750664411640018422539510934087392353909138729478217462231489492648865916787507864540650996538376509607263346335591063440889896644735598254782183747278796117809155068353922076996631725704250295357811188482609116772810275508917516110179754210309477114902880895548410271514806648605861734066838265629494820306530070619626003258226454472689038692537697835237350660625717234423853020699438342202815834860046790984698919135345371145522977050311363688074746615277893479411219433494113888008897683649256634894044522345332639699991257412607310142614473261239759226834121510857353970703151649475631411576117940075502487275206891971671873512844482679503777910409253543614637718721313722185259527149492014600408268772651416631695266620364073936015459969584802506624335311747062869135541746348637414704995929280661070405685653076105808196517823140834979045504624995528909962418044026086786351192138300311498210236633753691899916556138917997262788425202896404895540085483379659681785489093014718006023158919589069995064883496395337327471463163596308834726687406959711506168900117312544469683910842644677148209262945724924016070738966229931165588126673545034962504671400139825195011492640985224870491414677527089207877921727606475448156827253838860623373189941379030746724130581114974693954986724726902045444551649821440584665247925748763361850851751591162914531889308088956976492583005468413452678398994596576242005868549476520904594412979788396262594833915417803091394079650250030828391669840934194967264694946921650634786948916940950778969547320603868676880347384375064755103216319025656772105218086736128011141178872403222002510086363581189815816763018773531016733610408576772924415415466588830982179174552391859032066616715119313210457959031020731185811023778144253906229705519915455443389799040249386307081952797742542884286101140323412467790660619067580936621170270808872354420051034019543539710769759348215792667155089958731265689109029978356545414861235096002228393842199516067663882390827836906619199494917536602918820402474274404494376115096239276931190081748251784095591689199215754366109526257327673734901620321269953261918796256461564097548502633714239569038753401119011831488673698597476142474591780545336536065150834462858539277543745305769781804658053901152984257791537553552207809325333216239865376304018164746688769044988027154442660098264180111637200988730417786345979740872614295881941368761391150399839883905634302847597168881958184560477394855190801876600327232076471093791589062859745822530853502696577147856484608581107123262344150417988188236849840189054850202119772799903880123622750122503722964731816884818621817255503611704598561116761968733062063456799820120622456070303378968795309923787303341616221756195593538819543298731693817866303072391143283863460183995115296589387307116976674919063517415263051688418882823236230634594335149111449317158954677087460215364593368904642721271315509815533078370429281641754500455592105991262953597106651014334249602712004753807979199447273078758948529562524160603987697546489575174029498893025697090522108208650139306922788766948866750619140330388707194472638451522791463341701672632869240515692142528132135716874166779711374280315997956382169206511524294254063418706553310285304296728917708678212239858746567838628475299697230399906769488945010544222910168945406468332206676508722655591360434848011018580865149943467725967494541616139111109589276832473302513864983974766695209033577620165010192994189168709222030034178093994053548242289880183173067046920348246599202046079877121520373100952353749496452824962687428238146847802005593084685701772337848935461133560970560784301333363182580434691952579128881546612893146193377079674218734381492923831158321458635005412794707972359014274457411385169077787330520678360551881820642410295089558307859068040981779104137820153935327173296382933501607583907105015611994839873508135125988711852969418652973760670472496646703771940721625494950209369983090075040029286734830585460407319039870970377817733153617210934247186324309689385590383361278881738245681943990830583638591015033087582448501186545671726966475994695802293708476852943653583436657361096936081879498747099607285302333283168543793997292049348493664800418266110642547343358625102598658344824619248803872028996350250142437007070909991455790392988997089740904921389355032345926289518653694455283692159658704630645150715194116448668808519388364996832780891623192800067715414817138286112401595324106128687173436126024955486958167402122777650730552891490112349034678400276323531038012514746409573717425089078703323307838570727108459799807810383617585589603403150035694899046976482695963172949864578401382208413682471419035374821015797197765317039762061549187147159443065145839894665975161493944962541290537023964443921152288439465840782052092805770346011838119000697677567229380709331150746642878338134363219596145808334452034517910045141425437307841699951301980895945921082759849768072970319961763671229782037822018793274444724380514272747013636487692182414344998049661007402241631321133960669193198662382894309165286034332759854376243281878912493343375077797092976357110813619418354447288594942150743002447968417955560512431683394864679536032471786243949464043969725662279416868970660036578490269665839868407030146619361767811608687076596501387930429575703303184531238652484326906349500815644438374048063300547873195132315718669181698235994082012335258503994297762735780941978675966555198578331642452446503088150109649676850567214190184085360129957654258725496985140044350154991901826707414059484728719385416352634900583790556546752192375134332114126972156725331281306206257559068128902010276909143760371471294619756199688925289645739490744121704364008561432527144682896452905274693175963706057705636651093917463896987263561449526270146157104518058379695955613904697914009636252587813604223820374708633842534911060040087585953855674975732229247839586043728205064762869101825129747080597219602556280958083754695373570979302013830235755197333367056898774801753389035911332836738442572594413595380290881043061447761863006444459415214876148685862584669307908194633363300940553750950431628833289004919705234715019491724439290807358532149833204836437148506013048636870566226647951382106758882707957796321215281161940446872573374790958602027080582064115786834984254940671839572516592168154577855557181972260001631409516883179708119354924641994079367163660757886951406058952289787647528748184251118765273076655043255589146519502615209765135852990951025034360549665041829098983962971877164932507009136079384159634271179351779698052929420214341380566913964539226528435785858271400457041466282114476319736273396627987328508004424169685595979605668474323466191245238480416645072647828318896493385735253505882780890707245524787830083110469842785078410005569810814474234099063739106225125641027709824212897431954127789844179614597227732839057291638495752244042685683484643993121363596968395504522101249076565797069056540166877757855421467620189492100132882040940894751216897559703699805638941064044614106693928252513996845908352903814748933046145282619215828076455120229823447757254391452327204129788178513902188728829489247739610605061033371352200672310651623195611781417957684592013505286822662141238860583408250997853376519277549609799614287750917765243171676402591906539094747798476739203506120325482290782610223887148116627958236872785487229068176909409133770166479646051020595123670032165830939571429642990023573950180907118716538173816895991261357706682688319318745990678643010308102659054768680954685730831742250631268063046827780569986909301156474585252414199887097207439159880714727605466513718475548961546207314242445162669044539595837511396092749365693831603844692889876433612838536383472866950017135106874583863674395123589992849815875831433423558430220585839800319634176162305258018636951522746982251877366792915695052290954197648646029277583761631257948647619216397505649239689131139846010276817374179840497909532387182615926377960094379781647094408700752962429221399639943090299739339917515022273272141861069935907575176465596052495108535340657423164866524271108427352835900593172786371043624265770592257596865341840021030063014892082039930360443359207340133000297934071463812095215299733825029435517062685438075388757346508291707977658772102825172421639985140434669641001016382991473079384757115885402749215717224189313417948449364314811799591939727001583791864802373766180783955533563474729871811852727634661340424770178379709366541512784857537644467927722324082861953040081505627424983297680669459362783624867971074220412668273439479076263743448532100600771625150681777283778844336228350943243359103114189557978686236008359919766757930427118548503415995680547758290352046358723505816999499337760387127491956133968423566084787784105109489082571330423136589225531788246406150025502425365551714906811075675723329888393946413174534143192554721646578786376465833072776581675033269164352754694707614663245675319756446947866008930642120602828306916746571160144412665302066136888570878426125475661953346190570257263271903140570413193077964390308393548911997677864272020730935402264086256605422472912356963537919608224892529818783836137768809622536637325919893704178759413305248605418385213351180680424723616056746188089499283648207945562940120847027020114925214883215286970164416837071850422299556880147717767163287941678453385946544590952443239005414921446264339178017341330168760418668348036605781672408525544973134984434414036171769128789105913078036697679863148842942808835643092822408534760136056037238803820756186438681572705678424209952526724322473958458438144923388755484632865618121388012495092138963817742142644378990519390297622903006321134008223069598015860944763048859403362877718242769042262595910720399601876860169073992776039648597439588586321826331374162898008082391529322531093748992201017425511494270852657848704075790891587244048758005336742885265348361122594293718617286677583938962436860542776741420871860598478430760427388419142212669968034512849609902013968555410147307927269425837535127539280742980406470669715397691054627281018150840477635999095724388639414685441097286066242060900651067337734985541809045387764604618942559930048069572680582712352837357604371878932333599745179684292378859324174925305264569205799322715659987094149266048246618573922437166792403778643775949293212661223620748392739175200551228909689445867520572946741693164987549974226138441706289403918236197479355408199827312721178494949774991861347660618386312273843602526497612498044273726008270634102632699984248133161023634582373226551500532558268090945280782082303095999524820408559829770389661971111120206284615294819362449774998020187567058823368832559697929611871356953958693478591351306028577448856190871436221466207520986054541333383128842675648795919492934369449294078032582115331903387009455120589627460946101909124936675565190837454344491940713165678640397662580890941532122206474818177453079740710551667889713059022073084270370087089720255555934157888138489967075322548437226683280570679702888717876690657009654659776482897556211031192829870817831837466326954414677293460965130044566289108768222679444974417001236525435081759944334153918022555581612262690738522776422646216876590615465137941675422006704542690799599110794934806367565072894780246667793759402062729091968800111519814980848855781028194052277978717635023082352209331352242612070967929723849249048725453545019348420720196255265370736494880947067316680812682234076385297272051156601374967072877333278664967579922678096469894190035127511762940071733817042216483239049679397282329140976199112837030211155167731398882829793563766934057128581929563468922305148899354176825270834954084991890402578471071999149606037454747423982411289400534697325286217810571162848370080289827649375297295722169509421206659462857287919409209509604044324928545663944694831312224421669848665138152581106870777777358112623240920966219694386270579978055932266925252593625368219749185666101645437335181944574161086472191957674180826972474253560706852062128601743563783788772946510200101510106171616017496465725019432842769699962708405095843313769810907016042647316657183298844759340044812649060582603097891841158259493264506952173738530642416291746277673386062160552821248024368868049012798510033538598396611324575253302073525440773168223800903253860748276410029884367114063310067965100754684894608634396214022835155554333853583491332835375768778511728663885724542803502916984316589997785005187221451284950297115439544470150446323410412364746951253019738575254342696149555923034231633800030338361707154388576321531656158780662130989151912286639106885112019695942986084276445608065695923124457291041385819603615865914733174561582696558153389983093175611607301674780296947965003128458580869300669974107125923325932918567568193481420660264172214231149416273387076342774430611325106461072992115043811554374885373729672389325087875287515606056128656571481264036926520140757333384820047077798499124194107224876317424714858811349450094384463894918098761461225247658682455394872843426781683868890978178400389306313772703946821662781897638543047574445700782451621811327450611055476690156698488957357901314510852324322812112943491063213671703661764011818429888651625663923536932353866721988669382785083311207425629518854801490576253351474595564911883732115734164348679639070116051640740767290448448038518177373541490630663857902043300352124351577369996445249179598003338773818275357075576899400160698095357336701777207581059678956159023896242748805951000874498410355887443818620508111553473790013429849170664420773145166676365208745278220241604003674027247756761047667528098609147984748204470413034651716252443954804973817762106829183441908740880423988604049625944927289900292514637298394898674577685171039546809705461863527282432544394747472663716026987549264820086937919073027964780296392950926173342917202318217747044463127937338269998344081544224807273864271383822978602965879548681404612646747054136557745195176527348812342871661115762865018830863403403150977603922551435554043334449479543039509555260054798809053723677832416179707951471577070082295541786994040210802523697897935209168366190819922070152237945045397216400348902676383333713844290711578449134725286282770403580320727199521397044135160252116971187590002044955295387744338372706889805080335307845956981119817820974334800104516585239644776155603966140289759212710226606200290331439120094750755034496628017269100259245080726962483140651725051840249896082345336156022859503939813316309416735135247514575660201051901699963592920084412810300369354787463449411542852076342416426885784523536086343509116358577231784368991544281266669668124983034844780759633811153458277503806261266623381677343551106713196871070191271297435159966213720895200822023216696096479260479035346238984237439066408693558159443384095065956888519343764088852519142602372109531291860545196716005256626824706818654105054134149771576931460867711309303331359487987793139332503530043401126795302189396351981340392208798791630909458917004716167203561415129386557816061374390429735483018010524970474255661813407988989716370903337376319491605386322998324577087457388203538934252361889594962629131886733034732490452951866324984816662092928087566991384090854387472353216278243990787980192156228716854521725746002683528449509284909950760931364679651052230782259353815122443065559910369702228141624580107528647012103679049456996908558560734337569778045670880758450745690903176532577026378408314550230612835810312448428233886002504893467147600603426713043414164485532022160628638599372171262999785573979332854907001092781144924498157950216047639716002494902391020759982507114008499784999664133941616460210762227925798427024482169968144381241843807959304086109514297773474346390152701034357656203740015594221662321400383787848660745842601779605100684213454168157541696539594052003898694172513234349940457739967085336049209299720046617259407025690237472088363695552653253111241131360312498797277798604928997688778293804158309311721637212273917570474822463638481042534862560863340348704703892312111667209318117286626026275127036148873813048788499982742090513744882681178550366119533705024705329067679749810882148991622956326488886353186040895890697612235839770016789127058330769130155606514958990278509629028038398825660170579998361779908402016116118287642101592236401873400265779497916153672791655847058999221697182914911773430589960306844735989707771991477134399111542739867155270438871088788901512151195038359402949660750555444696071354651352301978968874694088531803595714732332499611869752121243949559901078339609053326912093788531329474725923664047324757055745702833339863570554402267322541432667955826999420186012980390256710054678310581636474010280063116004836182973822608963090347031320717390412392161032789992388253465680999714674626963223846354007632923388262805110560764814566923797614591939441221482957534043229942049726253332679928176899261714102778559800487693681842489342068803762837801444421040146564057908812940992017322423399373556854340010080902897092286233752886094272702940708233585548800163137301329938423845403901105537355806402443972251281377205821564692765598523927314721141124781100885548013121498865535804437832297584351571726423902873939264013701896653179220032763428460030059425861178288084732273998857777987315520113383416863312166772108157458561771229582992535998835798604597331156036802717123128943402501782798318570721875319480528307753647654302819816920486215258989343669333074503858324165689694734605930146101790679515310767348012771042536407957363733851823389715844935008294322175048738134928236423287674985820457785938617400021950733753603619120565677029393707178375408242925297724302305287828416651268047964591741286953203160656921598879487196104071304627677293067986092809142266076229289208617538661248452027854159448473608391797471162917638505154154151755562166226705345799244670843580244077352097145997401365681649702252995661018298740940216731299530071051693792170318212415249171211187432650246668943585041533414263513654490960853264319359052041827355711922855309650411096239220850581831531322863251677674073390256544610648050195613513101180148230258717455535813185075613072217316608383743371979278316882832374232726552531582609783330543228384298857399600585795389396218595444419480397679842614815209497212484262194879235093950410075271350911016370029115809456649530214440379385017620634236054721752113615119978924551322353056272673995313137987445900845332855726060544930879786377542980125574728936493466200631751817160881050010383713150585236856452538333374319238628453682290118370975060208655176793827133503087824526904779369185041233787290587945825162311777185160354946262736769323750473680947811999932735070389906588477854489676766334662185423164172438803444827566612992439413222974404860574284260601313174385232394551530483086480783303503976917843456071188671555603188420839627116126669364072590380109139305254591442311749867992414441472836739983522477048589775413863235823404107876750014881742088472804575168900119289865771960726372286702406449204085598932441880208052948311222273693609281870231324184296166029603152704107957168874196338024963338870693534749568914503355490237862722742161879607962659011431587810280704634829253309134289479863613812061442681101499715551330036684757595778812093566173854476589553478213063704946638381810299365638643373376100825408751803314899059050717885649097527771731675662383844636751742590150294210982945906764259918872932108224250264081624219183843524293062197348695386619389091095481283046950087269526777512775452766903066986301058624455687199465932484174353587386438240875399909531833488861964117636083382573133151756906764520645893750757330434549327576501140024389294704445631898291337216687762941645512088571759177020298022168216283863303108740860983815226964171768603487692981838488306084624751753675093283460969085979677336385316055674439992969796367473899791242119113842759335955023587883464488297153052524685937454021681476447419557065204172813803807139577528185113673852350231502065591896266110867812882588466628377614221282934297934034267561451344224368619128367793611735489314189708938427800319375214150562439455590756744070544685595331149357533700345769855021887918362429469934716584739646081963687523646489847463530691226919826692403792995588442717431571278874807985190625201248213837773814803529794996816001360593461356312550599774535895352657846551830471686160091097330485024913728998569941441619733885149208402596513764576355172705091722315543678688844143360959246219941998016880461445175123607316571275816936979953264549128732949154265242835643913825745733970136803437676813891966683754500337115011787397854887633514233997631334872551103736493484754545507800361721025851365601433335665297373534673840497964301608691826633709177427223289756166051750765630739024325536564783889193256004411971906203264571559293552572585196853588804243568090351540088145840299888375068374941009309357852018112474952087271625645909101902637404520244691128552885215893136033599861878756706521949978928154474450431056850376941539424422976199498914515763206259879998881977366924453323806731763554098456588767576654109971974059123799506653483304869843551168583485332526342792302688237894434912078413266713173389084966290782192663201242338653168348062263499411061588899460832446234491977158966717227777788248942546623900595058452043043179742709124727587144525843805559894614869476947233538843061007389657134134661107236363131315823316912139962992135566338915508652839616379935081711304655470721406576148749708410335714195124857272531578928768835812131515547743322741550171473896551835181866241755394084734102695932359016362166463040653384836891247967148555667287171060344561153177594909848455452082768177624440545275027667544025715799970140760488402756571124461343575054472585993534892926812033553887084773300367673714099908140339397179306923323762021888190146644674963872556163493530450134618832042466553128788020324935521440988271971422837150635317718395304068074922099601058479548687653478746330443055525127037839993587338233463159725069140032448660726446786575427239913344921859518870099367387426827555009376748446525843764959859254067482476591101722840404629194132848942872625476457698535860457329750506164013425569526765452411259828188825464847497283643927115504142560616618749759375531470144788226557936908018681424414947373599686717184577715966196812493460020195238471951691835718682890591414466095971727760258449390936013483991804315352976293098009544872344696285218785878971969943286857813055090823643588234677987901466009064328155902769141363259914100591503619213764087138141176505220042439905251038277780988636590020441135019107581182274533849940528514742966353986395291493188218988264445986220934034170335221757237272250292105303815159814758938112945025281877580856262544415983520838424824675099504666041068911573671743345556571140757506698083836349914940159533726922276619593783643743083258095614320578800317823866773003173465972804705147613199994350579379892248603812456699323851501769268809075400549930062563154119428440413893265772823700503584057639802378439882605291244287990217586590407403961630908420356613427838908587251778028716971162752325301855452370232339152591684354373711442080025862451694195443188133282649173568442132829590307171849630086538199389788428235269969054177324507886889234443720429889616588175749867047652201691712967446677268435717134813530403416928554009401941607427112868242999392930407835084809252093062180515120395415583122494180313962585500002653450004359184389349528766326173880838494635208160147473799231401298930623663303006326132344513890074829836835190551779329770170707257972222717172118075656089283713841975798406172413989285006433379980663293397985324445171975456107449388026756202456140553877984502453414328879781880807831784751966318404995470893933659292458750791856595102015323319454160063740666645103413634837674485478427711362675404126437664621058649573404678399541748190877930104514727409146836618959366769716559374853218430587616930194285533176661380009951998590145991469615869013528342849498869783656157906212704958929892387544338477785787760932188073804342461831598192608039922650132833971014094395273328972245622915777829351767987531354806717402559163262964431327797190777421552639490162771430637042113740028815898008663298608567929932321292627415908345103233661194934265101058218883754475258751803832138067315619153155791053759035299906814488173238751026435483096383190885720563358359495682540410073722018474395509215628865273397506229612080083218242658840919744158414373757542923661663682598697620402802157536368113962259066347366861798650161962915550421928354989155928636680359388906543958572400195915703365704239838268781754296587817760504178795412445359290422653765404441336722581691383743730117639207800324931078618969602426859957485909321547532258191644067152834564819668120593671058311314488477174915229880506977585452100385028990569924371345333520326182297456564641193383660603511348823071089551532473877296087372582549817721878246539634083438693946161071072562737796471877940854616823762464174505911454017527563554995549831582334923350802080461294235846494903901082274344067342558950208776006437994688210134837457881184159029410701484435332136891464069120617229228674910444679702146982825874859639333839153893309346744609104043768885175335628044632515095312148592464334488352838800000064451338287417648371682007414765673615908710204964459441351150389999140331579461416009871327360482942837011625172648437436458850550815316951495638487053551305608848576858660962525453048115292533409334010663923789196358213355055486569027903382649883074195429319550235750864327449139209751220535566373155967391472294367121272019813555077065198487919086410918962802636001935132860183130094907834549671025994577973036895051907631316993004224207486890662523347301812239501694234359992964974830117657327666510567954476275547172046313942245491771236999575684552369029373662707715620816332493238783672181060179463374726823561100397800667863337519356876396296356914352235802033726408847720332002446875734545507078225105781640384938119799247426394477808340921572465170369620885498435038036563347817729674176364153024259557429065942161760392171431116713370005546407303746342758197903970399746356228345606269162762826810408621970148709491789647010176220371152851527866379877087769192043091527030173140021569617449698465913377529238997729675183116839674764698515254076635286478302727738318214343933055204164695675138099848915999772435237255006856835578279128749255142264529303907118247493688140599244742898143849439721695069643035469746812900559659559347641155565463807534198561670209908168632331400206015890475760954092493578316905524841844988250228353337012900642244313298320382813649993842188865682533376338378587982133158534326545653099394119171144438679413147385210834684431502163871547659761293436370963181087028612293841416646124900590717907507053144798652518503848455962395491862251457492272233204900674044871572880548922586679304295276034576447602679519870788435695660369296939103684184937825826328228060093646145284142378358521009451034681001690235483832661201085675708139610102555873793592070131114107121942634244581066631911529941855142266798292616014424249653927715292837725923639664373675449947763088539250313702643843063650741660792861665875421884908931117590210224485780766263136975635434441895762024752419512584657309309377283376448430870186527966350202516011443349657581931645235589094764418008824592289829563000792744149593702330972279423370377252282769933145015708155528336773520268864133043308756359956332044696321990888249317531243680866019655819781022920575731413440944788991716836338101676826769354585562667960341102719704713283570821926268962809175304988399563040216036146677692919647141692514838209216050274444462071869466485030180921788447657770425037439494030006684791769006573689528640262125472696612344501241570153043030284490729997467888283311137355067114054143976938175128091370792805671855495484301240722280285128542245473130103665106287065765192242028553285655144755459507127294706053532622791739091564924382995448392752739811949824765443268104387593325417000106041571022438415301711687790557814634761766040361527805016384369357830553549418296981547250541683547210669588456908365604586249861288828022328236121704294153632907502150103968719109412707028029728013905129377314304638915642391961174455746260778557519199949207800323504933161267209360967512355810901054115835232686970432316689064777680643213255218165027275111507947532291496795376893934574379097835912640710819262074323555751698624132419690620917748918153762910737125057503005152102370097056334216966343827244461603794582100383390829904815492319153826404870192093576901569818986918474286469675137882426385132176971050195351228365980195772576391960594608041883549337250182577000475895080703896912103922657189056393857245803945495484476235678319783797842045836891452626291358219960933644990484420800921924612485700318843795122218585215735890909731091835407674604409159375623635881406430922818625060682444638572552501036305793011479026992709260240560651306112141380581834512318517118687448263795460115940178171841071748677736758826798146516047889444036456126602974302238318588198973167884963339381061989607000878792371804252052064707036780719749071049127947795932611873953713596715515363320280340259459487385669085177171277025363433221152832850826582244961474255660994347375454318302064593566173736164147003299508649610039217665846265045880425172063992543600151201146518600342639126905674678328467903510840749904729109944785654057728357660083332965848025207826598932043443066865955692591497779381811779204363812276826218528671026791709817922270409038176872767162241824037845778259049737074437993497496974942367880653864771361040464267105200685965300846010919786689745801922862373175267941653237523378675061563319884762691174551378446475901721860680774134372046587849050587587578801358401774789646193712581733662162063164098355103756355332657868236281744201844332031789207518820097757543461643911150754513308369153585895529005532384864737033877580941571681266640242598689363915878643343607679252601108049866291870104153244972285099066930526666348394736745415030182729932938042076184721213701737830724032126511069076090039395942733048852917489284630439962681978629574868848216937552607330820789289841267862601776743933926368804314624152179126315224074883854181580886917117806058078731445692103620082021755496432414056112635927511060033680672406344916758488280836981803891018580409507358571704027342001669093204793885612169650106618599712673429733225716046973659567198969909918696914676309471403341704819258795627950138348267351659466805509279786920739938165730699963337322151856989532480852223959173978919294235945047748158158310199542971764725564186121994530716242583931685305972977694529229091716883232116972587395367457798917263906488451142266991132889250180318206812216837985412777869353471100615244317591566208808872930980002965114478852441707278067111801671244126794981541443995248949417329965496852514379921499032639164628138530192454101211186169280643487560122169978994129281011278565468094346231067157811744797532698939981095368275508083499898873947547552351853896416145320272419678884795912933926345621760801723765577472117754570799230292356663264121398187854438440923521020855524694823416500120768263010985216106228715315375645748589697635336626723204777489512401132905064704889738773042739721167940979832217952750838029795623353599861772060102603794521286606924743229398011596493321179256704912209935186333514238562023294927468815922486485819976652369510272386112033117155671522750321917859089490682637407360334960736077379156479948250201709572002897145401005285709868348137224538403355333969846798855356043658525210870371257973217937396597422375203415112245324604829486780953065740303596044736063866219899785485930072456563635600986107414516536828616542915367404914451564490403853463652020079684363320581017366473273708852802758245940891098446804261609219687439454691908678113189077919729529060292509788107174678939106414527131742744992889427752109717402854701436579037300505431513998704165490088843558384506475848722135640974322584112791673449343320798351471905615022745925320584857593206272437133966062214463729088701926904298511090425182444770842938607596214301541731258000409176605257715312621814694184308698180198799705468096141593622585633520730112742564653947982210031485131981617051927095596526685311655647791625189223085421389977270231639497754645969140397675304674370292660873574798151882439685352013176707353192870393868077626584949455699709669042924932202645469356041479610548606900967745511929428166902427336327798499332855926605796850392127282960768945396444378980749727606296447885758584314247129952061988697259075150608299372156796065961586851878846635846716097204328468787941694916755584918230919789098178999146623489772443501653218628445954523305435336532405846465504042960465291712994037242394400014672395766623366482056140720674263777314356189005662933744491992083800653173046205140994720948809663041081415753958104787670138776214241330182014177064296275072691202072318444949863216993006503507865819989765292092449361984908129991713994056302207550614687921328106823717057435243443960318871613498709063583836358331517862282098619142622971114257845089966945759422013621497298582193505110750877951008109831457300022413695093031958112192110667741374532876707135996713042453396502884593801403801879523057572337785312684947327953773945500553538171154876839615908647526110266452918870229022986985756537592338710182674336645287552018420848054595361926412348037210386872767051040391218464779842091405128404286662755684259926791001680872324662030208202225008493495225313728770752238372206929259442451556620212402573668608078218466952259108815554313523410279306342890137034737270613662471606421254381013025569945852097349066542373679182230788777130173232088040928733099260460211108243160804754032310964908275633776540391683983715816353044352050617702219534473032785977626353191103141224019762366733382961716620018819475880545279388454187007970107457363082647070679090126557592922976724179660549147415712083379252725506364955055255833552566463182046421194393452990112586213285725727202706778141906572499181265738899995143135162816263828782942053955626941278893571661810308225580840325785442085295562049632775134548306787337472273002811494596904193741677060541783051686114476424289696440214335501423554713103881336710927898375117314319541700507290679825349517362088222852555226155750971477972564809222366863003127244020452191342649067993412932014042028767870457860738770867521407157433916112461721824775527715947648694705921657048941793758243915404797639821943992135212821460308145356602096463104341141837655105290292721181110897226111925619515943125476398611765773296604196797728518318576440689145619251304013692339601074214729875256173393925958053495102286185414660042239111211803435070910980993849486589887135692586200818139331154846568376281405345824995582102086950950954309392393888940246045627440938666860707128622357541316216956482029287524844735692362020682786020856963238073529065112368034259291078704620885909270545251884772446011197736869133329477792229161177618841580502598210694609861702477481131391159470149931340742448145230094276879926013457099212667461714439843031837163576471988115610557661109272699341532208014197951638025084837698723239862061936086761897342947207738888562141127138944409726605216512648301900277805983969943400570787254374491413459913098075026902376051662649236366563642187809162448798105407777032897525933121354279265720540308571212839694317157640090840191978417952694393014094417651387446466158741341928107036881534892036750174664752883313052768358871609490482069756897593804479179404686704122419165701822343122597318696723770736493438662679832744962714621751943486324058277260481553825654662839662640223908670671805073222377560313401246878982826713625244125886817384924828473696488115959511120332887720184037043492621901630431270559538558210799991071094083900533777275574557853116856506917029227073893340977347524175682270708879558775436759836758910137686075816279952284543597512225155994804814578558724754942040611395840424652357871071624338755073729327865274056159606149379461130326198337930408433823344778492365501616510431888622121615716177655882341481646874200134024287318209067293929851958224791021146425594943207443968294933263910943215740069377681230031813146085221682484949556350054876052711041530963591792244031982888362300839456153833192868471410089827486173855746288941722214245320264750382173674558661746600572023474336107731904840430356240123700473226177356415547535761926036934614874753240827967875268135907485736500542899931780857515757596741284494736189270626254230264738472959706600501388019621078502524982619397411832248955208553230906508822331841142443821679898572898465065833064394669127153079187627096469879398674891462931227843847034272348941954519893307614454179841890535579934546065801323792321200590279049352299750380831758536358964883596513680714885255201768569199241018933834924889893656576977010203472878514919744196397816080543562392166416095685785986562354429321388650990545408979051549206168358044213592483783779248270811766481363154786374155551484486915044201961258447641529135768142226705576288731128464138640171812211720322408351549899653839055460094976834924101362526241878849304638417788972362222029690768881743096804357673415641147346405686869834112522872273242331320847230948872385295772435179250408306340896751912519216707669062135907854581084298136366360339951656631101388466576897320306081921249942536989614691154364780456142460564008682146558644129089447387214267400540886829702876712134873383708997379376753970429561280874666586749657707544122878848881933059758559859090220184454473980601646481119708781590156973255699109246992968464763963697830963449154876844926858179041373753329418131744840922689997843103344728902989246901551644784482973145755646557264994573321069144998565740068701093341624899800808172158147643515807124702644337073697176602695108306637801879095820853833138881501163246259088613739536793785109851025858001774137593506582147121836542581252307502708038876110915416710012735762984840911831077882433034499676974248976291958393003330960062953987027566065867619622947783652257543898575123969825693416099355881551712614479916249912446832661068719742888445077298700286364024334545745099543864697165092394124348057889221632029531790776340090311493420891210702203299402104753324349576015248926794866087262608508792662222159277247324570253906753305859578100255485996896444444574715030626476382443623984012552418799689415137380816241382082673913054760953067275759099644571659615287974887597995580070612914843628439334464985229200768658549998593105750707201141415425685949241132923152876751192262457517032551060706297562699761310219838659855862405787147368435427612720329920509517572168431281087975227764075697723046142310955429008977451570754093651401534167079408599861215725134214333467314424060540400629193590288572786651710012437238208775947340435684282114498248998351305308601256319133983150576382815475364162411878368884937196458608694740697185973615319142417228050413452633505621091616794689224043744906016524609413944575533029165842289251548874931465111046831313435964846712801054850492957092371752551573230200553415198387919512489045603132407210096371234871910453312954529592457991946982757942177694324228684880092242521014703428977365030073332578807347693250057996433966929412046265183188707777210568287649269754943444783752284067540138723809732267975768816681913116099765478115651317167645083497045509504085527490305196394930470265817437026169108413279548876208259837161262517426090146978404559032604811271852497245188180618533774466901359180602384100589857738511845743193065844966424297555118124690271055239506708114219986329170496713898360548944121017712372052974337260910113766775169462336074449886049290304349024345689265293126395435622412306988665002476604778647091444762572137138518289491504787676072462239652616735456204294895760640794932240497517460831585020794675795471944379787057312418270072053803514017319784678272854475099145073024206443015901905729438097611247351880797305957129524902017245328269874692846689930571134924702856111522487397949527514590551909409355771124524952343456433274610160207441006309012413747129145468089139408545762040302463262084976462821511919425983539134020667163574272286986653921617681537997225213667812689625396297064587252734646967529938945658436926311199250542039426355805974791803911193768123252811345035031144703463700924097459032855869526370092045017548913799042887725285466582959528087203257821019384630774495785665352915437109074881469630853046831192983767749827341614891333431486562334025702457360092412410194573334768122991514114742892331327816211391249773407546721998671599419560131251499102626907960003387781959945832096251121258766562820390139049353127862997094767267478856133174891456484558478831453239915624895301936237273425160069450607826917037968864497923398455319223058620388675503937528212715863806215000420710998967710702830320817339031213916273477831544811838648072688152069183059350603124203696831536413727542301094972538673518059346140054162548748844209397123256675080431277854683290295547656086746320476770025999372360235354193037473915304596569534922663965828957907308602103852373599513667839992635258827959723739777833726137682439914965662199645189058790410026904602750979623296069257641640442942909555476438062837485179155392455107162733853554399940899751419649562010205754465425251971117902541412270920786368587324414152535014258997028063883072562344289666737371999815245365738006504226185762470380771801462628014703776690282011046902465885858827651839691491043708653651371027621264951714467598052940817169314161409604415822075234340736863549464209611207450661438212055583568461642918015936145840304913367516230201449973510548439636013331461669422420572333578072676440076544314702688500436207030714597249739288068118863892787031428917196164729916586917771985374394879342043815491196196410092307358478539771370282668918407095945095302620715519402735361468627854598064318987820012337705409217952470568991390787354922814123838399923379336766618357793883539704609781124351954658152984043038197201400224268292665954830467932490142748961049265947269376527660428820710974955910714224315279862787859430146108114370859424612826198348797848222374227804044736715146789765753708310900787369076441320658592863287639334199279275490242380137215433873047085325325018082121638353585513341157752094004772351463396545071057221493718205556441450665155736130013188211771017245530321819142880671456996182710247833712443067783589359780956145412868912176822753345572152547165796874160843753620262805480654593769370504669734028900202033736610331891064755917446193171436556143963072598769073368775126272073412348736069670410924036549097287090827133345219730698883195585480114161432630010701598761579014662567825383566033545820913394977707048935036856484591218139640210328351605007538815633104134011645706643352188671046285255822721839333046459515389620486612404372454761069938307128226550248184021483671389387100134546299885971330170352221943214363922147928553651948927502044255635428259667721717510772889856202582353411791664782212724816493809015998650569143050306949436835854817903982663379826084643216822585416460596116336504510011938648230130269770042529201298289831644993984369772576019974881824871627205826485788209976471009404948203924509524189631476326506760623327443956619752810723566350125640300019708271801628328601975750543050264489398392590509153591285308503040898114963161897101383762388040859392692816606695498930562947573811372301640113013584820209784681490821148628694671618383164020407717828914882551241006340535750167693747103927962640337062564779434546642375900257565049969533565090707717561081544133615554135247693685219377119184032901056381448441918436533092854926607667244188125720576463692923624120191752177722551200491316391547500027485558522722447390641597385531657686515961691792516405540612751981655805235861037438794252755703618249675998293235425128602765021173385180962353066124591616311089230249231723296872814724498098316878338512292234808568603254896728754227192286186772551728484213356448299405737671357735420364010140418060653055439661668418254616998175045872666926137114078583637396357237150003818557289849826861132208344459196796589847479856467381648512697708801338585074620960162477398148158419704505481607210475487214114236443317136663103359787562624274713350470681726755101978352083695484740417097837159684555258390911903931490365945119594483165549993004911786797122344230562449677224535967074561928799497627331886694953852617803657306312494741674700119229724587565607650718126143244178716792424680207986238457263397811600413034205952128682608703918971751638207352888632709023909416272117643464591431070476506268769787596194093081239061607919088944898723781064829170690112956739420072466212654573799055012678159744719269409959353127369907559923415098315237951585098827476032816798840844558270785729523467890142056350468372485131098690884628720005128605436128670548595287122093596296194925437093192363081807289141329642273247519563913233861059702559496814306907749587974961824087363967739061316335843490884958100132830809906159371225158558293481699003919818211389932683161442405958538714970908514027149523424197471524954079770802819145887267088168104641929160984779758861942473268216780925604118259535726138360674543739213849467462721163774305075568549456697919423527577152647892519004652650036798536443131725902413728734961658412690531541316420027239998390339716089266987919435767273065218615452207030081716221806419878557570363676775123151047545795571545086479245726279798448499604347975659797004080646850857301696248790389721403168837093114927769076501002972896509062575628939010715070511488996190317904938481815715950498125080922618461209092077004158449388008203313941335193978134409274952473432412194809529441792896118122114643454392580507545282327854469677809447577463295827728108459846827622248537000876112503199029176339400932317657588129430705008799115404811711130301757996246128041037883568965668209013414836507256523888743412080184121061864524521380932059353696552151198819875404063060167407392703809778548802222637451000149231368943258568993940870198744451354306753098074044007800178683178265329298988151057859617493802942652985534973357389998045629722218226560111301794245985159332877353166207399540835417174567802719229669985028965168534869133943083847183162150183025801410648892483813105834508518519300047571214279714573292693904177630164600677238481528264934302418256564162362483465361559998486374455338956436809989065923949817416959094167423997519066580494061215615438859514730227751511991073984311977330642801282548502482749588364345482136887056205406128401073816435039816485366992666375802126413145173725399355396956578442259438271717323487078830080939422338246412468708364518286335715885418386657784747168496425514213448584335236037512921179860533201735755802936058677145488801794208191825342268933643626592902130479498663833290682339368875342346281208805448204998267702016866934641957034027579340177791885575785392560723849273512949976688595515547399882429777001622394654851426492122929097581239925299942657926348346300909134397368293898693745925770420932509944062896482203003787718993089116738608413105887484092225301537189358444870235577093781789792666214895583608289466028388604680473962231440897737890483898302753080364769135132531451484025142173773736580821242249298559443289370127238053070248102058915853002542450066358403633285934901610265730322628497264524860635568990486279807230818480421975828881737814008783446629184133880869849395931989112174228848392793774319353520116848551616767994426836302274535687871882677469208175445467581451258390573942549153087325655260259718406483727470158693454716776886321629412219692820938361981454770624494156431198830942110947095585582498354457011332436818018017759095930103505031544924628258775482714223010211833936731898292908459760550878482470328092404327582014700615267384075078504796218834276853639670764513948154541932402379787365334082903249003076684732526162633350907777397803340111959972027738679526119877697438127266216537054435494245940092327304571771231955148755312254906224351094568722876848626176211702646402445360771332146889955765935809832421204453527373550914940890228440771306356672315921856290246075382388974184565294424515344446390615042227519006250439824019857600919911646297555532135523808095335868431304305436913308519577864376284115353944635651382380750265953740193988643961438717970667810855801754860730703115664730577105907785571854052091609047917253428013884817951600160438494933891287317276457684032470417546287372773054068811522010345441892518385209914701097074641696246931535961737438947237582747336614022635426253673441213397403888067781213539995369198366906015047475377932368006668422262419964572526416994390980885907787538376130658933423288967755890590273155101994988519517932842801635487986572590808437899231173703423997719086389504544697800280562189319901678258402690722759042282185811744760662135718400535455197169508867929584757421028669614655528864933094222002140536748747262272860140436452532468960498100972201852732719731751365961384206746753401746418946083904617314369851612043505682505286302096081743821698371318014271799083485172229999889970792913190657468664478820726648453119473826501811180391910767262924509206777848855759696764014490277629487762510090032524246741295850739013851049564003607239942581094461356650390463673648832613280728609397706591552273355139217125954581461287976844436874533653617180289371418213352306374224005682649094758681003209302592043302903233276122057945391691473792379529629358289366909450275876924694616292731707224290302834480003322165822355238068140294778088338536075895633594927828863655211897632499427706090183606374574075078525204392956143691458973779785585702178866297169625225147111123007223432559714704079597175625531873434189787735699935523030330432318821466381587789104124837370364634539552682905074800427907873932914115234595266102374414248381228397150798177260245942023578215370611941264897475133951956564488209599090883540439397210480322345175191949555776278088115051930075478039082251665294225598199968440475466934032465951971708207627932924903338115398030537717391445962213468981531323160068907489084116047663882876420163567661749234253580166965019058366452746175088905771693174736663956808861932651449989608574309539134740592233363381549514366747377812686812515021862223811605807052295112773805279694561412992064506531248104733500996347185145855278600381040481151319919007076163526968496331644514679947592593300138134532601168503863836091576409254950510590235070069428190555221912884053524122643736103750455429650680729104036246580112905715898882999342606666014794784016094847475612642385627075836414338076024947796004721456413741138658920669734757570098175983345094542238952969016493397676225204440212188802684947866465566566736945234800455529086184207932878918511439285138751879033347443530415903599137196639439424138691194236229226334368483556148453048988651696809153027311231434041465946627807067426461142086585981039953938481444771041155056012912411009749001405850170418562358360478643638426777396983257673009627441399021631267296808730833674922846303995166127060093954888719662859941592675503502325914873216128533684781958987176092001962255319562507770202289080192321914897617597348483108062815096191633588929429333401317304668969382166925526247827112769446092275600811119438379118564459405202282279268851664580329952333544911674900519185840315637536688270549800121730099374422605471155359828846221039468540139103938409498715407198475115176431329118265073235347075377647263181796939534029061497136951397256087484712895530922977997926171422761290056412134777231157784529607388404738715503369608639317639885010255094803564699465173400921490782395108213464792422641845488755299603289321203402501177339440534139656819359165905721157612917033331317834795763336408987430650532635389836493504985867727579523428718978432964262934834202062828882780647772441264567408778169611522040049551943700892288902664150889977866839293943370590793281141684391957450876855788679151989884855050166087058781923729355861116005397838158077096899273769079268003358826897794325324503763497867446460477583635675261518794378917949238130929187140420556888085697334440748613154223641656758477398071881545051711193286253788704557820804087170140574348420773393756190450849010216037760823944059922846475362664094984322298247386970157872429280295614499434710513753411852672477250127024483905058407135893516983687134748809713419530448597115704545205944105558833486910625008847220029351227941282833706180373421547285224485864831210818736016760877013986110104370166133400001704687862478658415347785315938487781401937927321319154898958782395324190950073237254101280661488409724608841827716970243801766418253912890837113546390970101834303442303933425388638510909502881540499749759763680517025812500382688464933080246765517388859323167779868321600140031089105274822404151121412190041019378087998681406619784413727318163902555336520128020146711156342260539318876276979258128437418014139387243834967615957928795855860933863234877349099297905719933101051419764462802657788141407042469930556242020389933022512131401892407647645211950148143560970674128519524441433151951454976657234167213123428943184771600263530656357791969727011453544200881853722482470964340329570896998577594950367463439008368608424197672020154334954565948327250774636694260872835038085924613136393369112101914992057891488467359405781955440910822336487358033858849246601219003787704886391197306039998739459357901347193237646456526913830086636181269089680750025459762163470546500587854992845483574749285225728123032937603328116022434940180554639878382313210500805445495636740739348253314555459831407332242678576535810475394529182345980424979299921783545695137123843313455284509718771307551239208937250655319728209051858910068068125974155466328952510102525279680427193801605618096635419727415042715656432005516132107867431077486999048648743658767896177658294763813848182543644705344658988344031171296173496474126067268130439839108061176645188296137954085462244766295162762225648160186426238397892155376630554726067602027944346655132223863089051997699186476489917816754030966493325351501294222298729508254372714860891341329322656283823970390009766391578445826344829450080687667684570653136521830983520538012011674690661956904467969006543926654067428820109888751022858616918155032002371479215156732069504010174552802516122340868017651363369927556111791194889790175187772808670858446017978091330938303994776969665198024110753573372854953162987907937361609935434557422382183966505815824912316279112832265753713837932729579075732212013494564927653764375273970225385212542920431484951544805395361062062808035495285315567519593235362733921583466182990742451682296614577292973049798404029831205448851092230130133454045330635406898603341635020475409359892641827239793987757252575972818507515463355561929245789313753675187294536149410774964483809531339588719636030149279907208540996884982315099313822667382136917667966271227676757069959308467564069792719824407345071067419277812130486350724883529744791532500859815139008969780748729667775890776537328975991913862943358514003293573779210491632657971820142118963262466697833935309979494293112557365420684483879475428091410531635903773110740061681169046630745528013677982771304510704891949795413091528659558783059248886684558842391333422578121991192683707661216851239981582690417994933921981476066335940297226476326429516672578396052041758703279009318031081672027578041407374858818291409408442496737448425060114108820061725820516651309122086240324128938430690845783344585129099555909176051270522614902873954057633718350168102853428331046576403400034795609867272032883869236614669055461795367860864192183727783623703541553253627826410687393690237696098304229749523056401360330943081075587706339581262363173435850827142145886937034001487517944410806548233013619235584513074834125926854349418213034471568900521437407387209213513838113221944471212433460437429806838841285170908838200826989873006493771632403810420944619513610391369555290849761728586044349263792984780862552991140447023098787157823952633659529251014375348042131327636816949177714505028293985238630178238355269827469243451591569637321244145711324393513647411433849661512121869015837655154693274254711898847667217583947346691466270703105922889824194868400851040899276526225157522973587111740504521387037238805246042867380037128430280237684519964884152579295829533077252570371388836633271037401087183883831680435960269710638257017319673892309048136824179745085709299882088763006087979451275325112865790022477996026723214531992718505358927591836640064182398883483953550943856285622424851816453424802962036309198182352964646627043455210359709546520325460128698734302056594146977288272174099133613887500695755791029694979969372444903056921987431503102663764930680568843752912719161657287540069372470484697039363598559391825214498699265287972633985367971940090550734832727969266895346161544530533351695983087019491082917625946767199787681020856986801945152519303021176059712545109792760677499287764803296167711696552288544628942422147604060232577284579638032902766160144173073939835057554191794813821818319920440417890785005208599770790600560568443502828396604797545619810194297491056796746312160250883437955924708381045684789843914339603748519158939622924989677450444659480883207233962473325177371944244469776713895046748454265180437695297813150659406671782339675110947034188252420795272433408450200260840271937952094414176438273512748661565674094905651886583554370778098970583806909875195827751685181217101681582453289145874643111274573703998772874625730073071255308134522308817637778505172141161537391233641942803151645383456932092732113302627851783098515117269526675613489564678232105445182980144917130897092709955687752161671116193787518544604312382881776927953757275388883991305368633935679912883974642708487260565949339873752177032435029437365341890583508232973877576040593448826650794075827976302573615111257824259722168233659806847649706467280179733045636453496306967850969855543512459828335874514637612821550002960828691684231821196191643006959079189283656908230282103537246332687457074973022786687492221053706768526136144456036305031461122683562123086126409826643235180717793240515751706181581697515907267002436508364985420909511820525642115490369882233540219862109913550071934976185826738742215109925549940343165461029144483505302097123223325753434945624668421103156476155748891528827007599313788176650753548955960693988518783256450049188976433666283357994699886428311195796970086984350368160498208370070670071468136714113681247412040941368604646612604007968580055395524423374067887122579852385008014067173297337650484709546938458979870187864410513802608136787202847854642421176548511680669147898837072501015741098477606376336619902457444586033416184275774873087524566804209742241981124066557686466445056063480742769037223168626740396429696890219519230429269364793674299313989585327170685306877543551081515432344497879229740370795440852041177412560654069867819576674569871162287031668100327857306350319300771525731847068243001308431070103464082792729763174896371720676211220664945754130005518071436074675112367364933928388481411989160743824843752536699220753192502318145116889100899227403636539888106112169036283626372744313348713293247102535429040069002604611854905205732007632071657535023039767215058843210761260076162889307828658852506030231316532796374052015921142786055642817098792648354634431441124827677137803824303072847692037032673907545813595786592701168927018509787033829093945832971442391980131987219054211632520913582148954268272357499703706107967917040844950554259367318799057740317259826408487811264919560405477826337417705474526243539704671667677889512160265903051718109904640478373235482171225294193006121029481682440801713812414160641696786871737296306769291281596338326738547893804899105958589973818668285228713428860633128887219852937843076175369584488737594227502011100079873491039434007588402127624208022662015940702058197709868027208075860663823315380883651276996485654832287070574347172660751698332587777217951161278397380974508203952440343519607603950792944958678257070094842470317621964525349988645561378095508391114524403423201785862238228689027683754897548213689361988092602955413316968475470294390389804904339758058236971107886095647842812323858744808970568832816287232021048018636852145024722417622435431803044259481539504653229788611579827858853231640717031817239961373996124757481437918672293263700400985472872860020068367241918148746716448932108312036759660612331533757365954191633615995947297633602770110269485046258128410880071844776850261978064745928366819107920789233658329226124097377292994011226625711558811515692807610917543519373383767013854882423699246892343766164301249871738974662306687254669512872818002094202913330015304688161169880243414059925153803826809865548622368268009400316475015249375492107869155687355584246386288951333635326911725625453959913287395486565773970850292004380489292230879241720302452857128033092525056227830555660964707817827077797460821973079305952456025353164004064093170865258265893423558687640622619497575674109648465823445948612435373612869949340317540872764714336217119439110542877461478237517885639763111517977667413808105430069787885564438076309552552738081533640140450069332492479229034414869426189097462630474123836486441955094985722615700124362679702483592932351794958009554635902147347304905774923480635605808352536872801234996549755919216713742477189744108814599207813700986055129738558419404663861881741922634017574242966987143929246760013267413317161873322191453804091277860376413231655828017952011351532307129291195618483952146692475073095457399770188657805170067020457540172810200527623775114734270813271562807737086463762632072417843149439874991647228862267290328307657182909933644400811232770475341670833577179481753447982906762921474203218677843850299433426867467265262235784414888817412605086501775526133526439609560721939818300708503859965416748976610557382420601722299880542709863718491616149336698608005516536051717346292567586588282477887143280427819794700656423465315519962605820500780531263008712957072984076799812441733601452833443314370694593179425880731250095705109801708019484378990979723950768525584459739607064216019871387185829456241319563829169470543550708673466763480309415432984006873352549272920421252519591091638811829797728645832426346263690864316780693958743501582129415407878522273051707781610972489936346562974427886250976137716780602091072656627819538979595919625987468782327440541583563337581649902281822946936004623785858327259509090641144137888904938955525612746780847664594600022271252191797008464161686238267038478921738517509214794645922158858675762667466641818792265426299398265634948534565005579452931954633523526495278518821420271020908345748595123340210277794176699936257850069653135448819058244284730308255258739109363001339457877149649993119051190990696840261347686206415223824096276680162203244807741573425244086196617081789492040406168045661723919685289894393423311413081473613130672200545650057051495669920774346349031757104150957626129430409897220437934738345762764156261834800496037083945950780409999833340183712697696985005286212155527842137941034692690280679298810427144317906434655022182018777392644278601055859212417120853566581088294198430264173835835322459253770367539751129412415868405062095098016198428902898706559868402091796189514366405481795246516184590659473957235227990541395826651085658325933872272260578335824707923912493139107265905188500022157823937904962677112618326542552604408469998275513972515032481912605764520851322392617703436794454012170800194501097580873879649907111216506069542414367075894024602266189992188120754423693941309419194792143917071700763999457018246172748055199000431545088367804429179261312883284395219122566724043271096966845259288616298701689874786139179187811392628704700607235561342844722791556615326497382475694233714183117902669094064508791918510230732436064998828929898941238115955918395378163877782303923810889624049983807355986806065805241714128632226161195820526016569239434360542779586652509806430848243600065563972499715724906415868781439392487806299900336530511912243695656016978995300294943311767031824558551075817932739824572212224768520194057444741944910441254227939077166814160669502221927338441387008133176870747978776661513940475056729926379971869249371373489503911595452047079107280904893694234114723855768953559238932067956824765626716078691301215809600377978185995510782186916513086456477147706745155735007093535075427437134964778356752262713891129274160709622675983419607021147661861927539630239579688278149588073537407064823067484524447455444807462850653136246750475458553022441928838493779763997076049197987618793080010833164470104428965068184584526362398589481677235091994199869566323943511139624520500375373623625976638582808313323003268899213539256615893990138331657871814947457038616613900272603667127767412305052213646331910202752016809590061654613662169881627047651786580859914699034711477730886337223629520724290857750806022639738513577503355561639851234124886139890586267357869035075452649604081358181565735848465591005129866249731945950375227223621086809214653262750879491377920525188037873092811376474840492514690781777347229718604880536451357794450895131929171331149788190492299090845512189422247743342608240565118068338627146406880806290089306730248206908434450751183047534053396985798865458329808512982579949464515294301596503029104392528522466621061281790154890395535047422311080861752156537234828081103918952927407711938621282479413862739938395755839675381263846627729053048970972442895033723899393427661533140195789531013913258818330126130153188024972503778342021827804438132528947636610176371085631076052737201393936893606925892896976058949256050281372920772484181117846791322492120421640461573329853935508765645471447166229301062741840129864749091402640436987857667640974777786941744548831386990025770486541087582502995591816273125740283697887366110020271895849715590910372117867143244952445764646406519830195265131034900234227908881023176086405430419050647384682948518706416015004519317984927378005242121000705228872380929444602973868681513649426450307079980586629917514140264057255533268145415520066405695512984582036290669069079706585932124089568758801841273485809152537149561873470307507821714462750825311320377674080417814388903423608156532657776516131524218811040365536072622917762310635685008053417736017386695306921781180515782196211571842289606794001138375889539526228816690024669490446678332535061853194148334755428007548677201972101287674199505997452100956814022195253207203930970487762202797791644562884414065006156606515174087692530877429051005570336053007709701123704763343609841220708295215824837794103863729446121247740143347185660088262915108218122673074394094104503939086538230618102626951257189860134157707279458322048033660161194228353658274680325988164141208489728904997555611990520734716940141760806833127506215304146676273201968652914736071896435665117062489018841754732501189144032897855334809005314359388761107985171142331405408999202398687385210658839001182813250163793975946847445630939626361295621878307507911884550864782256268673757699537479621212281636014402105414026773426299244078654831132455196556597940092894889866294917266935831876984129586991571729569613462917183814679996779436088916243159046730087995813849592523212769135506315244068597882387010035137405345170708505258551211071454609088151057774481699072999352170448941531594201168055212861906008892086800411029067270508777880706509126819002186559621832435398440773585003085396065307745340173081378536104557824874544131255266814020358113105839762329174664805421490861748792440669384899335926169982577358656118219530401338503107938644518877504205372167402969068996604802141545812658928833779572822465884017968999483916895367481832869825233740609247945016181803320322532844074213148084874862155550735096615903470197550622839056831291716587840521457684587600492147087663755876076015118613489274726076137810994520390077454481181491507534995215013724818314868673857638078175144176094921390389462170175372750847200431913149026347779922708238772520391107002541485071653239024652179905071809676880405626593170747383936399891881949286159233329584872564666273620996047045952905033108299672652471647240728848136997369561536656124166593292850596149005638522062394646195296315163382560377415496368033277981530370354458632956781612472869063283418741473147674401420047143242724837485358152257710275075707150254023428736131214771706263020696206709812055553828580182664759331948781714186974904269096070339356113506816086016853612673056399067446689217319312128989086307855817215446761534988119706797032246223503737737822476897827591976246381010550953859954029848836878832701180073351037042532435687585728644191812841444443614953416763839274148978220621947293060821520321863034731089203471077725424590478019395187925946604717031836163549988446966663201774827978815910738155037601213220974041676860848211106061558946215692260656779648369792249162388207197649985652986709159726050228826532501670005267131436676982102179817652360985409541732165256239393786630995136796838057777494301981834216229097254575159692003962636641784720544175485657188373930547907337346804919957123468086772486972334656277375078458187724607012993598530573218355136809505313277375745942080956375200059647658923456450447219371260187685690191448673037519522162076615958726660272852246443920091865227446962840338898662387726822130861001333715069944143098673560808844982062423143815028947711021010554940189250033017658628786856407182513077568649808664015486830741051094685544378064842822018803489597363190591772422373849209911674728418927694637134732847850890835151808656731232948430522369270728929305823259107792480820071351029388441699434739366548304177771653097617521858438882692047838581523461943188667425554942155489145677676323009039824341913231491769009270196823852704636682970992660838491850428144381398912603721806211396436829025293208409616207569381210091201189830688581575655641773888038746153936907466707610244525850058722617851685963749215971831464469419418608140538027967929486611305113002593936430479553150319748589222099700409034798297062836867788356135786079723332450388068975972483617526401335612102771034687049241984409360666738619089900541457854541410537849342332496800541350491541698215627037975199677074855525082071949681354108592560932061524135689187604917029533740144504959328902698116859645215465078826285998919951922593650717522703895928234956118953646629685468446093942559421594320384154444495696460421974207486931912304842587634297315471391435342742319442580537644732408563165579764267129359246012245564667864980258990542183711679701684582064347475528261106138764374154890388424313009012408963501246216627950722875015903509513693188604861592925155587494417749045592919817780280764807864494803683862389474704482013934023169369808117510688125707760492032983250768785012904575467410887747104800134113033692790325967281759003893501585082720919441791606352473809837970812981728614144324678184260564556820555157542506152557399589587484329122071249616412383026796651418408759928023157293101126092662351101684419953904569797518191988227538300400920902541877843240742707092168186389973044414778392485776601367390786966234710152572132772069412012662197484760376543103080553833409373502299794752911643128254597210667107107979076829917987534721664933475496715376634500717104314471313192672997521147289462014348529348199356833293887390770177303902163643503637373710802823106211735506350942374718438196836301935583363676576427360302863685693943292525363853562680082972162715655920017289069248183145822618257280565314148763496716158496160989456269900542888223264355432388658010867601108103201989848658443083262676341817081213540321599532267682615647422898595272861862010048023979645238680271464671857014737273859779119941664268438215218003093043027013686925196954135193422563784569910996478319137475908491998895252709053255353827957361512003893168083249539951892941235691212103103271058971868849058341788218599742311611069980499894305120585536651446298253556934105540992160625057650112709210614016248348720752315953541758254116570085009868144030663287246371841332930835076123500858698863638048523120676767039614473846060884051059913340580245390993068807913110710913469106084505349809047967365406897230506936778287265855736421468079065261185415332420948109361473425190308453346462678527428691049769173392903387678337258668162676707133936409252597650744893294089980599660297543772373475217334075194236685680686790684181770478895541830466757683808720188441546211161516145241596267592689662406920326405727079983987555930519458815370308281433145138188591045625192954838204168443952641100030182458852038474676555123661908404828989575486010634203744032961516107318503520296344698769556533622437677507989763200265253685153631959431506197235083391822151304425445452792940358671758756675344454605065313418963760765159298740001117850252206237133822922157059329135638463880058098018626920221966870051003950226588916356782430026003484836227506738717452729008691209373480905809790144484133118094540406278866490173426102064063810160636783821436648708296720731657498631322902672413189966091717643058585754113335938547473599736100071229093096320146538808760253691692511178546017711981566216813728179460955427137036625674362416755615502867114175386792507893595681253935237947711701191007205001913533897743914499541677704292430026004411679366857520605638733992239919563256543108249358094925015709081459257583627674225225851096038397497251151072026660060931761274393856854762583475504371015797577056442638269292919452487782515732510678270361804794547437949777020384318717440372875289644278066411011390879715198139059988224110385139600830150481448063265199679953027045951433762641878513053268858234360625433458793052950795427554743479851881409613034756298038317204801579391223050853392725942327076754500999057291765269749642171059159892780183944710932895672122551262533012225358916090277757153623424786152654001392153621291959468665299576113895807228302914304153995651414546763477457548985707974820132182850596148484094521339368449442217686937053835056249693755921616662187342100177436406606791218092408788787339354761193201350640986835155391909310419741575388895072508504187353282873682373228188272321565790190558729642258771804389150347312604343755562432230503241661460426530914218110025387449672775020950422739143520547959201033807152190315217135920904806966345282370893314097300792818583210601579948511231321735587862511869515207965318003927062673760029296238844823083791910532836341324112518495755658956531605393285924964693913508658223221040848896112339313495914091030382924616520898971536820448466749430540034754001375601086154508727062699750230372124299584433694972634824541010290868966924936771382888790444177318924515475450279065221781173855790139992394478249989541072685645925233354971179537036575053640964117443436983491603672393155929965676858161401385433149652403645073829280399058383952185927839254945720265837971308921867077860769448171912930837566404928137407156760448837164129744364065065886912076578144268176128126731082341430539933709476076647593061089556314283463891083655096854661278973691743906946973930240966045205102707660494796870718354129087183878476935506990640097444193018207650154255191294862564807783365536157576230084665589981104932352636839211620023619198374363572283059752866013777917571445346994942094966993163522699628580509298559599068828252520074576225002202244435313539136442626832313717079023172349663963380468438950559081890568849958536984970011460285141169014763309715800896198892227038310508710716487186482607096754944364316177444848477715198361011124298627960420243744922067791319111790308615425554985510198105485245162281341172274629715308889154773890356193273508194430548779084567860649968472919631040982105777090436924154264943217181876780222299073329759478023555259110162574704367327077343130091653588258472082369960441869456989807841246118630318015028098925054745555811785985751032217791645990481745455182606437066366664500157024056856922746363344932655670261886882037918429857415536009695907206234615628885646452067123112601256861583628738713983450621127124801178974986078809095287442568054805592183147700957998147979865793706198312161374391695025892450114431169205919070923882888861976183364495707303337834829863141980596899264957536609386040515999849511878484969442448057490513647659840843048205099346964160501005549384393045687678123104667991441619913193586852629045752028936787381280769566483579722839767514266506436755185639016227637031331990247961470212096192103684338833226746855978455163327392374464365382915477905420324052504079553822648760840577841713139624907382915050464486533372941533794772829566362276878927683313423698121625018343408084766147467646244616686523252129039523147158010085688427734194409758337788090266948075487606420198267858723598187765393925989425820026807043468949640201310886830238989462690630200335439958664600164334903565263360145733021224975894984507692261298223134342593452835525502890434407057122422921474494891869545184357451260019697852068040860703461696088814282787559561169602953901290382550480747991722876773693526628946619976999859629205784520616285648282572093243553943081707551963216912905335510852052658864987219441384370979250485895316565873509776011536935089603826025030008641051801194488410706488578417095719996639361216305611788185881029538061994337676815968364081744555168550095121210425771505709837455292107687805322499499960809378422972724824562275215193563320947989346066975187917178185775697480104538862097550120537888482843517367111734810082656219414968763605115409274769060487467826540575783245993798806035174041693775693653632861216199999913408086734206330699191132170935663047691150095445725641177472109250190745269815602644816908978593923319228658834815360977080786159367960820875633083572792347403530590177473259236967305369309857627922840893581911889419884036668760021143921585450858689033187681593750586580776773270222819914631935501673723753436757297965128660920637343174650047703503606958853493697469354384220087673843560699157709117024820848018924275801359245439797747857955178615916531326273060050195610548437206506817910172040773877257818633519719586474355426114626753938235724296162416924289434044613833206525017888925832256219203483879162781634325243632003341144117678110192089748744844287559757167422509069295151088459213993027953822050430764759031905099101482199554162389461874244897670862935785469060530620730900870265241026197986578511459677980799414528408516748226293747881605469185189970028703481067777390299735782084984429710368706402947050577616561358340271844370321845786091150107299202341492165212566010221286703370987366775434871437173836937607538125543780155956779067566033004387994986069276442913307307865362972319857317110734004199247032021843404661687556594432772885762370784990019946761240685162254821542422803954048556719775593795816755738565801400428689511280858763895425315285916034741524244678809412408514485129958702058867633424331651854079911248035796299914582197050477489085341468206348503803083700698705310721651803625924945597509293642373844749381875662882226323066106201464218538218387050849532276701884427250111167158640136808090642331422551240736508010394927190410107737967162213238132576720592750261537381369926601230986692861229037159138158375183128782903316435428331656542116721981212925137177698348028027683363879979703245350318486081215080039815492970629290761176559616090403393140261338855619777507726741337487388118828795645148075247788048173345698440282657817489954833465201080403724208078069741043607232452027277614236263285134961761040418608142282603489694438339055756737942491539233528074886096357955939796956413457446032140605000506227036689163220782949602477692059269055118046877999098420233980375864060861631294085340933027058806022335250839424532735997717877711450088117945029408166807744138139237485569433086789072258827531609647792453576571389387942255462805579765296364188106499254211065411422120157070094495716411138974786766060390751839486507850377127739085958426319562961543830153959428207695730987003801874002585145633440337047538251836464736228932524386564637329321168960684255631767537898539765220093616874523827146453088527868092063784096301019936204574075867628167649102844512714822513166040674872813998345025504605953982904371476983326784110604956984879122603906622998055172455231879940753117557282168640286207624072560582091403525562170140914463508031704244111181217163010322872825357852675411838399715442453670933783061569021929675113717084308251247906630428799953771244423158489543038239356909742015949658851195779428735396033463005036339426042384794329570503205387133233903232951971455624346063191938225261539283573098011383112325651849807742104999680100544666655814563959337533344754495398842867055354761228580232234816524325353230646779557292192584602333648229063420520648246019959795531968433693621879079219058742858303643636402438640807478795004970365463740429512363226200079406642649458341073465510136659481486837055783410561952572739386644902235966138726725752863482121750677844068063248288899326956668853870030578305002243815268135543399499055041157957426031934907511190327156796155564413571777011099666969770170085484600718658632561476341490457799320269773585236014947988495554962105511100862721195256136386660576011785925547648531381128458435811656603096960480254917315244701612635147208991167325010024380645049588770326056231949373150909654620214443415247537412895818715627484013583945909279363889440098830507922659457007796991975937492701191168276617229934543835968882015557741145118341701528716068084968754456644427753427500280884909415560680290730207845644980070673623809564306396628815037221761640462663682673304627575697239245895674604584481012276991247351880718921482805812016917640835878680820935147874877455627963049398671280708239788325299856510009924075024119987386381036551494747859896673363362671177441577363257371776732832778802658045301530582047190721775166930796348626123976928912258860623394955130079264013736534345782123648481489036090763022558378448897413575227768644468260933617112272740634678742504280461113039217673308754110825005262902618349105711951726011897339443197264411844004546634750228383807380232879995080460328668391155191118756783460764399161502897837191090859600066426084016548519736727806338594071312236261699379580611972038315934885935749790673870182635132211095271670167262708289941291467466574027712202119064282966869871307470482732000250063301709983446401099191621054155915602611212962895495585040962381582349844155892468629217043976813197079188291921923302022612570992880155596991330556742062339602147879820192067726750049508012320106788108320865672321002075948386082175510525975996733263836548234822652504357416568377143206097902921522164657820755801888902460574573365172435235560337782342078787308231384487113485435840713409903202109379390874395128082381418922503294318206696450801708200484338381345194086692908831892479704455142159990177544063353025207727530128156744675633993092369894705797845289574685733226530393722911073985251427439144575340617250337045391561945927403137427924563189022019123467667085532509887316557197824995552564817392824526024905518090900194318005246036760787795820188843613843922457656422767285084861938253969198746768797436767191421030488083029026274254085057990697776523844893557772794137706855762206185845526122120255502361177305228713719740001823402651587414492659047251249244085025306935730500860495841688553870848723680725657811796365437888734633982921176711912801004277939557914104224853681307502952798961668655800116877765207034892603421177137672567715808468886937852710826342028762010022190586528321210801879502202240546969262945188180752310318276400340767222276932229800779254419123356582906011969321231130382773381950363180233385079671071734402811903670728267319341235642004530241634050202344797958131605334268174457317592373646371819573804663466411266519906448259112680555045400503722026941822933693185353520355266134399137905096013157921857939109425594271795832668503802916989085584324838549075414812025486362420052982630006462513725833162148851490553568899702911422882524729041896306890316672329938131485331339925520997084911017623975887370067685235613020603327906200260518931722342391188824889783241543803277533005742168528240166729870422206729037399390349327516097377497380279566487501134999699287497223890153413010784996399100879194124158651876668101598495700709119822644971772383244741754078036742897171493119901657622259730857276628365219001787327713982337084659197238692755153438632118215281184653301220963591355102062114624279159124577173333200551454999924139243269598466586579241494263136832265066556114145852800039141165820261915763670886785246371245527145088252682992290411267659023945248616682725667138183233937462457881436497041791791246268725528816070392682674215195077114178580219698384667842711704466671822585005696952722937755927048524680061155039498962988040348044121560231299613964006076590601090378601122693248521029546344839575460133840180207098606767850735370738461340983423442235154459279051405680970035478126864471504674309726081807995584933182396474965305468047769765034905240526011152106448243956531541388344742284659211299435253379404114017304103680446291525362847931430656039478645597234873798925232309367816825510908230154643200923969342547613626673354249015543986465686745855119826339858132751911585336440531290248314292690936105543471832748006204793978126452415306262522513731238802740382302623135364682864979297220268596898215589378104058656496885926107523966179818926041596865044433816476450573635059003713499468650542718173130560981715910835619050342456895570461250570194482545474373037314386815635387856104907421206487657033308426898265051741541049718152353530082369339333754610367530217916206563496541052407495449218871307678714434267373103044215492721881504976912218133441037509239150458392470727037646202750569335280386282581729719647650143425509109045016624617881722714434115535810261571413001895015136709457263895420298717784130140391448532169424811332178241755127080409688526328799442530946543780076822804859299331858393428387510622111165104092456892054689016185357048177356235168451605798222995619274077648654936151036305969416925962830002727544816952261106039799816731799154930991488149935173352453296958375184389458650953999890835431674040465236329346049287183196124641313271229515360880826354452453247888688330618957695647518700053766564832085618274360443603291420975660156685512307703783288789861613903895471760480866563137384411580728384019620541132605197643207552965897704455431979550379169773830089729492114495770831738540040190168336982340406062893505034618347218318919239609101612899274270287034586539563456784506889086801556632754314818469780689335803305853042101743889334672485993487900113440334721126166072543860699770698987050881992698368297181606470718133239276380610540485191621125118079240623980036498183562031447660287016784551602242064799748582591118462477974030051544202117872995432355797585555792173433308189834197743346912491990298531949602277717254947929899395166526996306942068246222342710815915119883109913915344126312062249868065317199270139003583015897605992741703888393618301181027146995533231337575870959771279766596293076190800312775813526396207752906172421593469533727936231602192590348094695800557312010509633252257345332477693827131159398353753324879149169982321120464417077405534208215963447661884513677833837307933716758483111653126999383613152380413645434033271796707589806414773823089625494771830210414612960278669718161194821203520691546229568406235054557384631408112746747271685656907783214002220479454074366415628697169921573373646404985384769701302573027575787820633662121474000733712976049093630924716320506815410267860320168264737620845723642680075731967501860341093025991882092436589925454951700174372320103108674604046336065072961143457764811895793607443702336236360999712261083859179520684679248985455123388575885634185839768782170815793561789957750123680332758109844927556706568249689777280078867597189200707156540795136293753874293406639708322617695500490496633371516841058984486819842342814857063541601536281604495533163274945016278364046031772562551591625195062780269998729072070699818086361934558718715129462615362782396393339897248972139480861109545413743106691173944501640912634424807314830089552612193967843741504667037346781443186679542391424005140581344192034298923021241126563981477088472864363928706955053908788602738351131746919780619411733349084934129106536365450706870808887025788280175069859667522355774920177329543842628662451557502465612709615354869802580464754308565258651373078803946494072548131982956924364270246793608311620496202427451133377734084832792954151888039600404232665479758473674054928060261158132468647602756346715149948845714802420218538834045423478333924552519748808581526471698069159502844816713151637128031321672707822035466425622046138512556948406487894747213889003257820987721005168749033132561803788686511378389632131375763442675710706390225500915364720468412322005338028902945689041090536450493541493866497736306814948869804558070650609514700613125591906854805358061421606220908532713095874961156489931574063948801445024519551410032407589642398814946964774159844757508459166955711538185000272272803968910329708128912876272268472212147874258114992035216508050608114026407652315134823545851227154553489217642330269141836273826595136063257200197089357012048456906088030609097635415587700725696625854221078769042354932727767921795687046236581294809673452157400310491436508146763636096673628700506820862236817280555070468798887165103184958155655798361330300552868138599347426551827602625562093450836547180810195538703156409473198486299723063347941590796996201371094342097230686892672344531303185068244850337265019492215161996026748779362129967232123883940668154729519986062889684135789340620053205961241617907346097230561495007512578067781229059343932921922024742912715540618811747956558236859700656368225100358029721222060651046716779395662759638079859581098824716129351916102119016809864798395009537414301902473694548254643234034060743989270362870511239702508959919201329588838052868683954344915224966333709377252458791782171185562513552345506216493687730941763311216322283601922003892255337505356967142639816987921388372737051975833750276724031780068290361371623309849189878214600040922032241042238412181250594886740621973152148813721174223365451511318096402091562918099787050670917704434860154214363551503701219933143890664895221434521403796417665892742770805358229691289251013386381875523878766427594991962940250764188336691801685992037959431900871001770106028798867474778449896830861890101096377848140754630944628267416991352300970890515502157215241942670741291311091669822148821548815300433429419726972351093719922063244287001016978385400353509817054804045051147806759561173612366527399501064780840226081954838185492862438640876568079418965446934496911219374042785682447146566627224035560327745635477465570373838810003609541319657005861186494229829278126060796178030818893012519852371075771369837812684955393129465549622386655050900139395231172977358915235664063900043118337617909588165188163578939652128424327867209881265913154656548693017027734927867935096493418539121162161472929933155343866981216772234958587218666266622928592452434223790993208205849030446627312004625938887293063606230203428415810612162580204292441655985265738554638798732633080558845596657912470711338915519769888220735760775025676661405298577573469553465582927591789605535547949771599829074249353925896658330824222025308558517831772708222706509181258655397201067710365443760693610160288023627601819657568171729248756970236797827165816602815285647151291148004261326424787430471244097913739179552691075239099832093987783707779666229271094723232728341426668811901825795502742919918360628109206434011563999928682385604610931967833905552672504443882037083960637488201075876313145017788800457939589193056925865157919019894434715353256919004428271951368812774952432807240994654616823264080056008509487027296710089883936600618973743721534907998723799682903069377067774511475763333712575845368018685420147604558094030834569177531394069479289041830344478079330621829329529618497229514994062115101973153190069154969580737350250837398884305293223577795131591144375827641454119306617100539753946473936630907522532395638325539460043799818398813344690887284839686611819919709323508540635239552747016279417898395933205309366643322554322139467118210614421911452623610908629353520858716857076163677022900225884070677265056581028404207018762400595343976892857907859163825158054079788514828973305207454170421738509047907237210138930029472398336261039817051965917967199677358562854007714430468066703292678569510454682275289415737541441613617551258939040346331682868359740974808963683636198927622354647287596208554306519329291044388136368753962303883329154684687082698780022229837519702602485323872176401569860952718342077504101203067609882380285515450993793473750464100443020739996935777659415323607499825674093944419758581555343734998946273066385012659763623581179628084640003544865725175099809290494010073368134366753342735778876525095822493007559228083950210728269293942706861116251349067510762459406807664337770992368398941105249618313992315101962187420998219839097683514039213604941577990788325307511335736217085006347095136494355721390137997552437691635697245559611678333827720691678144970929998084411458713524816801755030682865022537501869948546458642819101705155516697370965572609387260073905933575026333935984492997578886174809906768652685208877069825063991191321485642828147059932382597557513886963686579206520478297181481915817668824626778919589733311428054624774330531893335061652990660073888369705494233247140312725471895790228290458815796945817474924852482593618591191335918317603396687315046693314929604514069990418950271498736186898656418691107819339864754700959498813830471733521272153235498557689667075318482905637851706093792324174686132994757324840974030691094069211625547262402699894371348901080697603524231884942853819073730078558558490127027120986576190885219630993878275635493458256823629494518839071825816409950574192294133410644047183106698544567503050180549287658060423482273111176403092892223631357011422722556138176425935632115055873313507951314338186814306322845087693739535022656774351991632513467810586307372357672002451086109617997327097330304206495503974064169986552136286778553457572242243671395554655126577496356654918323557646778749735188339165877358773117119754821281792084299641068185368392397197995493415250634602860231006707580314516841836892864530496846520942372873608369538631745542979396108263581868819892553385189697861544854370143098495565259165282118556490260446138656280011567218600935224531445273204921748043749302678222558112328229719691066303919397477617089934775085128409234210437162642291491244403058373193726648358348969224716576704362915257385397715257938103593701908642832521473094122406324446279412551230714932070063233383722886778441108729582072642874798358463577718542256728504537012502493199446925004153459886098374073279346275121308230244860614597383952683842184921467304770738745906434850952978327774097969784436124665452634194506767025368777379252386029038571430267594796137733252975827737552254461160831590946828620778733966107274093825778753955390141000685107168892088579760156657804530395202929864884560642341672490327486878415565906001471217958611191631822171345810299692606411400090969654437513904881832181095436795422845212757253673130770089874867654542877661915506174742520442366980625348921245052145772037289681520880875086411218866219486262688974542006111621025551442858705756498267230431763238073159764867608945126837443015646305541192766189575940418139374019098832735084743609704271540159223681063963820692895839982157361039519103593162261113285324345636983790742971963026493426485747657171558464864333769522522494318605491437053157773286155672198094234612265184598653128242534111922217877385820680512633784184544672617377316862040151398943407148468069987893787268879475846289622752667310752486971425879418030061201772388457550994091777749075810262593208003444559819866634123854517248211194672685809580592711742345390924346359815658186728823399478533045617453025503759380139623852115310047968550480509158714803493982446588414600132132689922730531977733675345953848785693800704219126631775288831044469434974371547420041047334885970020492192443239923554976560377868399736814817881511293435318307891644281400370481186856940716721418467708812382119236563232133849801922832069530385322815070254040206765607989758775100384551356631298837987929003689368811483145139754128171606928676942917762989047604911915384724525023468640395412397462839544194474194836941924413236118954324437259820402282218574082721727648053900817561509485057367040057082988886198749495375389946616011425717808825632222313878002085085258698197775745910020280805160699342770760381493047687371268896868892894157445528721388145589777336958331217183474971679447215243227531686632026784636506632354682556680173802932398716539927973532218600909650320006484606521937747662131282753162542342428602584368451659714852031977488866094460775666391928717959870058998098409001498730318660786292588931952597111172637353536410714119558652451565764129145249865786149350801215314671536039674163275997010506687296127672021313288863313133786160252521033798654885969428140945678027337300615378240005477773893410299556319262029564100561219385727371491579185786777272275086833695969567942294666538763913675632144757824881106363284782674846845726559486992006959841867846499669881400254942587736858719287918194925200565029114873715841069752276145917658377788662029074935925238704429268077508772641443312455539642584214431026131436139940211818559353636325606491113707726870649929647104409924836757797542323299684680778113357126749012793634878607017415253531456780906097746924110243935743907367328465634301339967630772697517129823038846099802969023943766492102656939822672343853188592382540224006571420411627366130012224118178236457490096280945636710007993723948234937039399984886036300111525467643331133204128042556604992012491182262347081409638827467491178119627813808732416574347169900867957164860060422203065202897873126803632014290624681215731611705865820485814346890810677388827747100091118046947852151442987582769568197672267554258166702707157680313479011407611116089382800630061911721862425325834564900320938347898309541393732762013018947794699630687925898467613983803213396994139002715980177224552833090377060297647543304370888142980514654125638735913516599126310810409650222250008096931198497065785808864137365676818118787489278812161461588980247868061072917915788414170129565415105394919831769832953178824965681952291320135024548707409809974063722928420700994233817724968883346821877380177011704379826516139677847867061976865829700771505723688614241238457532948487298869136329935553713058101257698236464291630629686063945790092441573691285465010996631563819347538674175404323215788107630762619779655601723508558467215214007131879211922897416080878419501517499477483488625892246702779635439609010095768362058595889101022143506877925033341628420052275351150983919072305200531997822241164843320288403845120146647273082117508473913000432830360007807856109995129771764000603424719286384826181989097055355950499923830465827906797419043711853284837140141756345328553260683507991041931569630933547160308313413856704077963571067555069484763581929135768356502880269027255974786197799691112604142466318867589827074929904654189689467517509055278177363965422449077940611198959302130593568484178118107148329133074185064618948326603185514693293926788447844418364636356550798594259053899777433105192398208289598947914975866095635405324626994728967329616762991118429297005901124255269475763118150810467410957107177823223919329693141781060845165335707880026365547424658508239405882744088871553546730311989033208046716926862028535613173185374532788798421465407002938695356819570545615488524077168390901117854817921763013526506002164665722957482491286294277642802459158562352025364863560027366898675919766810674668575433140412267592909425442780328626425975326866551972452292900654121117153049550517779270917440353478746105785760356027604075858188199364872220366120259668259896886047772307225455671030442967211807026345175805577674880337018996463967259041795912375902897921473744996237536876816374953597246478107255346270775086573760049683514361167208058730024338908066844941883424568543916039452083645637337818933536216990067205566639983731144933265843738573467135718655715589967586110725866087654217251147048545515761705609052331198931190864637887426854563864409513994479025898762826621893693445876195119044104628225883753299409767115782420678826713909632738613464261108418885642389078937767861650148762085595153992841938341144455275234204761764842436164530745730204639820827421141999296543298796805095081776225744507838800429596317273865192767297679021234356503108293537568354224090536851558833790491796068751111296283367148825161077099787615049926691598360646171234645453039689462447035016440633861500035427501361558337963184357371355247200234798563232706268450536742726186576979472578406954078997150837650367531899857367435432254824385087031824653582529148080054092411456616730572681720385464555467847229891881134256877068211569296604966006126476998825352340160952910796220229679896079137540654500631910264239327511670612565446510611682961358480283045056863976876062164481409385574684694391680641261124909504532128527864182258227059069164762863296996417246452206290237091134144770952204460416592641269116934525187177851242829590474314724338987050612289542236365820081839716490853571984098852910021300486128934738592305736807432456256264381464070340453247591154581115712716497627249875988871444514646316718308223916346623567404616497049894822655769399034914571958517749028205022721786581655864993883116677450779790232928807773574309745407507788954190993263106806337432083364873858418840316544797961703688188996472156135313931259895290436474539457153462696706801101865907772049874442617714083069342243680867442572942529898569374412125934558367021998447320061137107146991105205143043859570632931492380277303340684232125537644669371565935810176356947103648315221612044323072799989683453516945731874036533322947530798007181274000470905530300453168084947230596916254053997420650451012538911626676035099279405164529963978779098502074832074977192933422045658898361092367999837103188205126461727889354389806878191218224899832554630676956237717301958967108439528541067337191555227497872076086933136189855193785148761787783567363720377393849561036130724186778968128862268616694228757043215841074157620331853977367270582235063860493241997339036590495995705247589862701743198822054723676933698172677000224545560425892477325421609963361271938300695536962924019597221809210600904149747028549127535093309193577885716042219991379584889283715897341703451488876798233706246695305280447071523958303699409917736308522693848750476239905340649602923939047789095593184616739132453714681628078360489766529783609022753544406318509891016952636292664432877278939073837255302730663164967614094460033807560144501421901293304160814277836881556060592387905528089584719215938524102615584891978405599113096853113576378173899123497293731615812584224966392658370050262040530299478530657899464819627501191700381033118706658054185987473283459032788120060391865236255852700919876518358086691634063069565793936200510924820209862945154837820256381031894460918609118636087651366039846699385033365157203482403694043172081061322509405911276347420846685667233583310777311839282013015189086825575047849465212096101807943282309074524613419320483804432016529284273782525579732685772065764612760926746047702536084156472143739897032973654867482524790238222859028923764443111209642009409939795753039313425983405633992765744389897326684048757911369531891272543532212401527086974738637824885607080605306720034813298500490413411636720580937671198508267078718813372396674516350421051623642113800668260344043168386205132295252860233916064230246794710244227011253758853213327791213169410436766716479482826485366276866595499479398048503823574339160425644254319600334956655101647990338584775931995797788309645029461054785791486578027093182247058212021360567813176667119675165291880439077384181148213635161307901417077059219553355325937011964423063741359296951841838345323354544142338429346069054892499195770506738724774669667299051184343502880899069947473962610269834339208081180416826514199310137816077041636733091858594558239455550130154310812043238609296097512220156109012170541375336447455889823519100360216534178948020323996362736843045523369871848239954315215416676680756343964166774939052735821101921678519816439686493691126323846124003376004999327847164839511842378262283496126392887277111750815869483995921716488489236183836083914080372030561011152019228202084416435825248197340003500782712615983115855124365909657311614332132064615482079428052798543473690212933478936810490560355882055095793150416774507839761237851720883620007587344092202375894783787816687746228010753693442617038404465930706574239422784644459551279221399592225057979943200212183828882757562486483758081668596191920885377597321039177621270607321307901664280291996907917165135592558163356892328862460751299740977451240246755689430374590195885051567682024476516806712073941269685587826689404645410401241017925023509859685681282625084856187670053101225519346744337842527610193469635358342814669898881935704374564255144319528651363870594343014473444066434631814872067067115162087132706020437249044437608874641645450108122830655859065483685026594066758961643392445764192153884843134913751046481928524665473210874811891771102756485758575870017466710421871227555409311024941081508922739162036251936902579376062002431724092404817796788298909969325195131407893052677308692276269305449677731733146406569923070117130151154995134114648775469353913558832187012904073310639332454311588919909571536411970484923272789430110401297597565881735352691230468138383752139508797993130750855309993198718353508434369293149618625320830848565898646188506299209575277241084983111977663060823061738881401026101061055404608943972896058285890987027481347053480634160517601270667152462452544646900395701455628645513515311167950827795353858296466747101827844971302493371556644500423939266606676622432516304610566596926575707568119193231216801025334241666997536497926187324684007899310170088473999655338373671293013176251421707248455177119397086586983800109354235199292470804976628456806698972329043737652107884611521609781626205912335258586659525274533298224680808356326978817066455654066431615027734765388768392593587286223567257255886594837373914024188368461158069188802141401209359813431359657788566743301520788234231609793561587855218415182955720328769247793079576769909751277289161012561952120927033104682264192901780385161105870342589534181171404946021564273675264802640951536321990962965480893089954357269663191132510394303372531053957649102892448521166005123312108473966315273358434622194440735132580761523151055318765915261452256304541812670927744930890004148758325293770815305029357110889740315369768181167634423548693658240098412101121590977339988924062838441604901978027924307679303429985442917483057690216903178569234496734305437307232884281609873568048292836830575235399306522941925847239822020903807075763679121946856279007939055345792689339338684863878697044657589965465456463094730144704861591541007010307078488784718481736866211684083607209112490606797673190091666756063143706113166774811280145552235116253334515255581624861814106057788136266441264304413049897848007730524075343562618017941882245984868779847375720092417322088977886763104942457098072850132019821585865891889582499315693558644554567695951530221036282348158203110317783773241712354356462537525385901344314967681093276446661982519972265858215164742798286087128715129477101510316013636445392129961937135386876362872621754659720855857295309954313882581387585437559655157956006417295440618744916322669438873778412468660749783901631778582533487896077974975787486713279742245134287926094406375586699895701922102356697379053242947298973530460148353301664834619250975052785372830186173979361541241882614290447502228964683372476515560019444542291290331460303710905751649529552631182015748592698649472111411378109086744768705881804500992910717924861969178773369021577748923883078290281136469703346169818338756096889201292429296847431122133827934398170708054715361975771223962257742132291482494998301318474770557465425312777590981269299288223243174744160311564304299775170053305350960661945506604512453509541204275039161209967420600955237925563463192958167362840807562278598091647765667461018135392830589443439330229983329874075020754944564857656501634922060502972271548244673079285756870733392136894021343034676342312514766069355214693475709355794176961006163179624874908943346951737607364213589628674512859518133806813250365466319187444805074758644872466037296620362146011621627087984560122422800500521654060248937452852260138548652550902530350521616533736087516523420187552697307768403048256998523875858853995247281527540444729673958661091012638814275414968023729137195986283854446963542370920053416306157068584703230979014571523582522105602947943975550597846309899965836988371523047282437813100832947316756940379042577453690756493660142236298561898573893305909663810740517195514366410259700479895340396818428754977517645152866484948424896622175707349373928595586768553786906140336150676864680974076807703553139890190006274945583040599400655946583806282852222457234292863615258409185904878199063608039444721724062476653587526836862007053165785932421335471675108832141112525421425360501782907582798992288912197662962967433881133984102266301593967527385097772903980080000084993428324293865108343772079863437326026717716469416426043655207333643371578398976637387812971961631717808546810073471479573870104833400606478681997554424392870115532888231845276849193479519082067234899883941430512440776973837515996987650811937731245913943134360242536129409912115879556211305704484184949065864035462734131144985438729618967121127945152753456320890904772045286213256575102994678459005798865466605333725377643490976744378856255296015247217763581991210605835768425830598983679916036389342740794404000703649374360816393534690375366099610696600590224765465117442338287114053500506867627094049731408027732391320581189786905548412650336171760400546104699294225822168163514895484800908873233407756289246326915344042904378039461957506769525052561327636851030097395690408096701288598750214972796029897235596380621069087371745793740834848482724214169743545557025677654473570774617392205891575757401291021998668998076849962733320273721515866009260648618149119452158223417574206248460044591681069572319315200177901030157260616893244708848603695822984900874390673920684321052738913974252398195597816761779793734493891269343995532058785459303389488820972298792163854848268499412260665402296842442948334074095134289822207248305404676341549616487724005854471180718099386490731989869166446436546080262605878438596995318659518025623258524287869020418728277033367922966419066857766071206855190332413520289959546911541917999404807215314302216315201997666113467361406888066910367202801339318381275466349427824814698475297620590161568004068528298989664187015058412474821969352727336054918252252096659926655308585414198235184725738501380921366694914089762723668129463957919166593420638557241362721271881397778857000466580502282508267031525333062943475708872095054019016242770042453371595204194974608987822036081980992275867856361653580505327696893476003353969855958476942293896231444383556616759801575163196192551634550595382312296194133802466377079041572466852827657912380754778388313627456202349484645926097107266040424259607896981277353747571642370577472031010504924705051767204852886204167978814608803585758139493077269429137155938786669521157046851052388283747009636583595842804394960144450277636672877241688164096606973868040615232702342392302950563819798664512001941335437960686228342817595417952111234213585809723091203683410431077504613448562639217262342240203689969651310791580272937582069477282124590196768833398267576011194091192828560051321834775283886572936186186177859211437038750105336726101900324468389357803444794012948112799600366541275148458781821689830978696684895080261996589393284140904333186236337556452895973393508694820632127030038276988767899633838999749372426340532946560651069750597920604278874378132166961984657457399257932863708488827424539306720822675831615264629175933098107007144110037991015179149183220782691770562622559177428193099635536342959159940627974890181050366544490775164850542367336899848955750020143872103983155283138620743399159406580651787015218718688827082196585748496982679813658804854772219303080555303482867350655896120489603039316929659658850409565575263921392610999817303356706580312335501428267755190948566875104285913933610872661039500532865204994776091817506548898169621743365416117018836807286353204138478031836028838896907278725137947895098507530963753090185533988591430291396296921332735596022186844008763023503460298245505675989082977706066881364824578257831144349254320567198921052883892318560985948048350576113371820112681633951854540193802717407482763013337884818148001246781601551972041146872485278384061815478134523154547637060808656101571932587419622722605104250961145109618644902510720289898087449953387439618320335117884608747255701467263528000042235958075028192155660399545423052003140826681399804532259958137699578773460831978572291899555054203851157822195934463427715903932849186817108472847462403342315759294342094577468545709663116927263004282066080838184611654727636916850807495342893177947120361226414916310279670640833399520274620590147338358739407362588960563933092968247510562678853440269385880627033859124026905741247741651227987428607730011971324956192560714313943648468119861741085693601798055419604133230284709883967902000659855511859672169352989597700240327691237513919956159220999813885375266091303335122686336797848799035335973993917025346248314857512547371166346049318805863282285278648208529016168853261636660565977752022890290169871209298120771673390643636030828012267484635179009359688913938091720575930572113358201810530967071098953644181429649319066833784694483688856914935938176170356967031059746542769160706899219373285489996753314678485521263642404905396612965995576333133876153503873099191226675487147458931872369228187610021121157848759522394082516472893561829812373553773405853030460274748843328164195487954923602684654653885680286815488225709286311193529802284376332666662624783468990928660514741382014622589642775456709306231740711636288385142303694050342103435781993345369726350397414582547663256680390059549551987126450528268387176062638761911018139346461702036226560241939389705662836232757636794988021496993293796667155675396436722686053996191551504597380965400654662715405953376327748530000564472429012508427999676612526698325698256641296247884526236495698395139184036783073804213181896858027136341089749793164960486777802415088677334631818496909447486627531905348591364588493461744661713606702050325063695668676174724566515005337030657165284716678985171898151610961591161947580271623329612219440534806170845979308917786948755589688816578775400186823963178244528254817642202229995172704080239621507074288723246590262035293175181496303442578234209143306793902498805273276886133193042072905860516102038495831491729883387765468960531058051296917094941503121994819469533585841331450046895167403563929877549792517523055930483576150849077921899227703990700336480873642085971337581946573223556134792581091979287025773989467952207808001866222795545310943237894739655579829264702060224891127339063167142983653857570801288814317258978325352315634363417846796008757686120284826774124091188801418620444740287338026311721507083027643816309982983614065294135120147713236318190032757663667292063654755837907535510469171660706023014371918316780415579608167327559775930526777882534737252586003841231193029071046393070648417741780129161515460926725061930340560813143851131334989747134026303399084824517263025753364396391031454533929524916181296849468874468725358217233940012157493120074783171802270336128160694918525981322572304120746571493715242759516199163958318972382095336183912758491537561210998091961853340293120596296734566009226181908576369498658473176030042789090610970671942107583021466808577693768174041835942650487989162500732351444979019401327165291668810942026410821160528224515668368008576256123055993279603964190282453642337609596565150268537317289250241510693703790607950853684544530191475731581841532333001475963809074656529798683533419111967097514324346609845677656548306268928954130730245374159468167460061287515728930803504455338274801658685973329745970780023549696932686829308523703165236549071578215182688257932782477620574325764859932140778955006082450211036318651240770649788209993376485155920259690142041653325866533359713409405224742322986113838380451366433339550289244824843093060630569416948326937827205697515996188110016845201786001380269412530371795698602163387515985408924340263456688815721355454031404114434183546269594947794882794751038166875187750133458808225184919282396558807386906625250386284005874540916189529356209583140594632969599115835035016828305294320759466063360231010331586393028980305343199895607147796192414956751518750351699094121146606443499168009472341446895503427093932579956288810601884667722364564188203474701090093015150791727931970403096845745284817524940792545665316971749156350672337497295324768508173096831439129004163470332743798248174220704439923711559862678013843349927004341678617254778124491829553091936681046457067871058977438402424967716947675966789212668211265481759925357246353608071385876111845053577171540289452687360872528483861360458986304696877552531963462976097523159545400894714646540647153630170987518635104571487176180931205339888405514401371435026842403240727790191400470048376917275977675087604114924903250304834966539287305465621980981162868999271640231337274450667052088583303634176846884120742661318221548826330002028535066691415682585999670825936349589771736734436445124870838108098637350159455754515979498203064766233842060478224032765471839719885945950399284470996372113902054695804143891654522012202680183049027540417543955307194558136305868857105851383095361292236650561343900725967250358828515914858199986847756557947908730874051696445258980869066788887024666114000374979508690227330892446254977985135848966444612235839756507438140361757106439475626338462407032692255051668159091281306419543877701675055165900680722470429009185010286236559274022338406616374151513196111356790668884400189994458292340673230293478431331166012817946753918064074767903423981575653980939577411042249722380154864413699327244019429859061765212890116395181727408362714460825291718012702510020403463528928927568081729960147563650582586742918739048285431174444926384652466749180071483970492104770751945909074585952246125777948078503621930381830635060502231211540635072395779978812199399653493583407996641096962079955957355972282818124677376208999799874423891215337838939416761850935658934021911324658902828780408004449023353815212615107541076141930853575632562380087696569680630640045259548705300009575845158177575893823093491708037228484528018432269546518290882102766627843215776305309915175152726629013120927057512722119601609050367656472034376820962089120692765176058182538327519696848248334971338613954541230843174699763575807346565941794864804545253963783728245661366363267059158736494436650774204202735412857977749153934025320865360101222876584718843840862096437594798397092573825080028819786065927516894815846295832476171444481938261775328796900274071730389844384909572041592836483377168110848466229676231450826606625709549025366727912775840825215457030210889854337758305955638648001704370006501181596999127795801033777728693907619377300780364831215936248400288525138242844869749137047663105689310575966232084243586517007445845874157450898276275887991596991254985402213108792720408105068635445880336297988065619650184082943103245907242594277675662965376538311834630976298267916053650389731376614536561782023740951496192527564258955364501650097842642774924828261879907394693162912710379993472741969172639699345334165064936912060695346289508047313004630119241567265031729207600692581856213665411636762811182803855515735318106606674072725804327716919460788384427377024520013866036567632820906535578002856359140675584595070585173026026348442831791027068768898604658647120399493298953272018100834033395662753433327572886820947898214606765213703394165825853094090689020533490454774292332498276793238814112305271292377485638804595670200947422700576741948598682939853675113662615433931108480616970196545963884283508976122595199368232610378470418530433242951796382658196750533450685781364841161487993307517407523353204163819409674014819875468169160337259841637932363790726451150955367515169799684182948786575300179590808199880860641141236488783347904281557246972335591608856687947829872791467797491462534642050007767384590565512614586473619156945594699579924996521179214391546197526225905511279013116770029875429524594753906044706225798743623300847413276668460160757130810095197701874415043693532150411461940614237140357145957186938714216705689051274090886239517291093374111357600202772527270342293055610398059597128558857756938077111256129788243913979685773185554943026443436621086232823217616227850463274538937580664075692854073248179541187754546930687386624700849839943046244091836244624356601544793900461628637630369146345789943589109004815803122286027865060355480669948391947914796677935324056904543953735504135213401968355826082502884536856728006182057618529311253529123643523674538833638685630031423893094065891380090310974705712006948587664148444917301229563547879410342976456829616954299800726987684827737693736669722801327291703149427556360775197196662920280023109801147696906303267192578227202314722005268642560325122305242207542302653956132181946581135741505588780324416432973406431621871172210539782232794060799786903260098719876787726197251336752444251126507173527299765650263303034238057332845030157346388180321877120248942553291224923655997908231481393857234212690198719879115510247369314031273027770723533203735380937812808449275339490841165068439040916798732252335728464611895619510730272686459406339346390648697878481430806653357556707043847885892992691896646317463065856957118895799284335018793399430510117179825087875980362447089242985880892501031369465604311689487520769277717229228901196282457032682460280931523534227469364301015498477606816889602856980318720186188191785564833364217244194553654875205869696631942317219426341480519852379609420636651040301469956731688361720235751452159821809523955183788031603383195524703014582822442368241247544694146345903770016054376432697239271008411647850850379531881921389529689391552282490407059101157369963893721296001810116960085911790226941340236121639569144705247265666630041694377191514773872326232610834330948018391687458278794761210791026772033723274294530682706324090495686480740886836294839169649630160052525981627898178204426719323484902187904310622661478380649795553912549191341507156071814308465100651778985246660969680136895628604614541937093125165457766297359782877624132068185365677128531397400907475976202462820020772912123329105680552563717042743357892850587040259825633223535297491274541767765620630532827675253538557624736477977948174839287049527760942100914366437683838975755578726449157651563563746153816390402507510929389685570173994297170830156801312227376277299672508621028804285338571899385250866342551201907457861058416769765494856834298594502907123408670452968151427205558075831445809789997344189231309305682660599025768394831849352998638919038256080490059799566423132453591328034502082157476743676428125698013691895263001490007034103535776708139058961904207987941325411420726059887288135916441800293752036128918578821988037396690856810404829464803882962175197400240052881259400917506883398431205863851986926149858268250880562065780446615866720774156234205985806433015339325038711380039222069529996226475130687545284172326766308204520426633280119111644557713406312318624756527330375306918702027546705891503106529674399957924483960196894461563675860702329714447885359078854049070737734990842147537226842574379101876574643475076641627336874562131302712757348808258573426025128207407960398390944139195034499176243892406055153976670171668690427640215340752251316493767808716465571395941967613320825427025978566598330660469947356241802877929044830743619480484471855898298534923592823540182967484367695039645711526604008180353165898982391585744391350934791686738642260472138110547900379557194819363959721226505173890203879043373102198211410850288925568272355940789259879289685617561507328699920029353617056252365170030161990541685921858403693533475541120841445516587595650857378689049570129323064032610940490787066265913033595088074477060401261562108598339638843136988242672768267894021290300301488560551653354785896156449002511556764481262061216991636427215540627660646276621010763693267605742399124782017709564306462107396165263503170099097271916461818993813144450604105047346620542874330186861528523020233914957360003032393026522793335578261484657316096902438109705480875044086878152093828473134985593741584864717160762923823582934317797029046268143180957539842481893538388010775565954144314365103992816300840745761240370204940323040468365895376911731347686516687659881289338172402999916518924618697479486725488040340478260256422669328117532724017144250227438641068473964862203436616281589771031152541126288668750804989609827847615049713686032297604305978366546152988075762401783222855699626936973469622350942657858119647845653972806551661409970285556024785628992326931655747762097550220667531960656396362912140557630710064068957439668646870965454997974126006360212920818359888135345635746612861060283995752997760226771469873204561109979936270658099647855566441100846843881656901766918737281180547072456695920608387937341844506529365627217491127858589546510829842770707626822610627667967239767577290687250510259330840143158335513139988271882284394324965856221635814364586879662936604379574061024097244951842608376896443045337054123342477649204398276169584269303673073802866341744417585369962033406898857278734162304688199759180280600173228626920264533818584304369861904682753570270240158927065530894734078261009994466678304529391369853131058043091138633114348699620984300640414914395176083476007823222127958474879675265930997029900075738384338262469605353161142639429412612192259500538270337710227208413717949739873311308963906557724812541696318216206549074279944332463383719132924261654926735361445365719011712444359276540928763659646555592735410151163435397446285997829308249847170424793417665502751963036029194041734777830927429221886724957988037387894008901514852821699952314876435296398863751306837459215830067848448492492459428530062622781808220969993085035047330851304488483964012670079179556550782968458731499643976418383291340593968198618480923970398547818004162074799388132359011357929018009907466422094970790173986410656982061629096784338517710718343937829737587605202973119239530225992961272241869979244755036969193556316158484148791660470863278765209686593908764038338346386589166271866093312058981347283829742830951806072300181169422148599218691644992164782055223496308868952691376885542705379332280898536100692634200874315757026380279152512602880232854158775107357090913643347876986508419111297657939803069325241983201499435235093614190675753219533276879642587533153555785552431423324524731734304670663005844714246174478240671102128361725393976837532201266144077713741750252405144507223257177107866022067455917810811993059588864699412344649966287351796406813547684488837713558201135481029395878912598764199984532496542571804281785519787438201643600565058315775685515151803883188871489653523078759674239916108654904450016643065066743138262934364596642635858380619783675556589876997196307885167620328640031244438965785570431827532481765772640244740228946130597198402873685412507462633956625252971083946696919607466797876849015210164835311445591181344682981640899931676121207695632935005120790180132089918235781065945781668053009802303218282807116959001564577821629761477888800053288868089553298202038262591654620792456956746199053521003388733605075454275913850377142189968286589553191566201080192541260819606137272089553114068273982983241941972530620781615854750670214172270854049497264733752722630357671523003307162010860399683872742119311082835630881718341910392085211323380715344026997791772977317967318662113173562277768462225561851068015255780151217968437983380173103859708022986588655695680401573790848373423726340432931362473246177331565760686731050633476830855320829338043419995056025459481863191624620328745519228523324983850728124635832692604137425036090437433967636274180152608318869884148130979876914581987939472060832905878185847455144020053223266655605158161349210712358235964582001821006297354409965510554769089627014114930299980941895480760718224357164152936173883128639169151955885374599482803061660387032709435050506956036283433248810372220922488526236565916191223471753912194034564875586978957436839801260657107336832273456886651159736484825981055194785652381632701494672679909041231575490099966890622009670749126116023101225175138657324229088453100453546620275130858957418145928861604052334667675032954039122756279888345752130606095590754761566089387640276264650375003390866183297799436896109504664683477116983170555683425441912190172281000142872136343819960024187565962941542202435541978496736570469698961223392746158689659052511231116126529587039139073805617685296907750719856275263132285533560147715550938288809572013655966835988210964075794530364210703546953078858280936059660390051391949154205674926440671080875313237391780759873426536744370047629738841614652133297347148215019946219534886956257074551635659917409241353695894808501284211951007706902193482534719421792664842362173227960030773959771159104154963254212389782782033294357699678574369027844021446867332442251506244918457767515984549723492685330256245925529912378048656152216848024704343482429288774380524381107121284341500124326881484696910133507964096397850025246087124067648137212294565454048480350657998968376748034304721340879617962849856705661958763660066347155386260435157021596630315032923116471983348627312707966606152755370055888822664154095376973596591070295467646427390959104341055882504176063418322064673016628970986219940970099415930042431757210658466070366084914609798470003328366922942597984958404925703649125887142983388286919680306630719015004958713359316748150945698454892306851604692936275597404358905817575971814390490397368700571776095709054978086293507327289861928841148685925693031155319793735363378684200836573904201489670560337360135673471706505615345894169483995781571109110449244042360342243887563277910210015141439049429783022250333488597388364273839959108490689831509218722861760878144398640155557151228093729950674178050141037824035734192817724147638835553100142957968346415545338221739358891121037799420900624272721668762907407469526784814403739945749627994511739204820920085711974028753357563780436578151737347053013924621077977110950893216539611058311448402604494256509635872390505111177024343953372631973620595200644463754196536172377736753467638185710187100052401900105207073776495770622890683131144135006326939045897983219840169934428911188240106363398402004383668161847397373636895878033555271918407996496876210590339234140522213046924552814944220868203205798579138042856217673665165224793932185309679895980646452288034182284635169884476652980065347265582616405344194363723222723198491041857251416742743255187713118766322622721909752927939955915124892451729262504923807804175627002267244080469854771240799019541658426145764109100410042495714397885301261077630054672681877962976572234672192042472268876303135915450224820684560604129848825465125421191051161473866298101702812536172539466268192148296956337844389118637291010486848557031534962142024999815581549728789540693548705080764329090663459157181118501962538587943904245830283511596565828964959943445419163820753469260115628509244116575706392051842258330174678098372464355692601046344114968270014175283441436317998798025516511564844902765151465291650455264159160134781018566113444315952800654354551610919287066934387290695411845498247846408372930952537801670787890616900105392928651689929345001424693466979598746659337812370579642133893147068622265800702739617742507847174838901083404730097751410456792196198407402318441312391784979386440962167544948501172066464617348461008116421845104803292723047831135198305274801362736766521301642985939156167787926299040773518295457144441831494879022717484335594879312986175777968954212439273069754341585768264777973436638917244658993609300513433101767147095558578165879074754087254373882484846473375738349436650817797113471045237955725586874188251670971076685533564131014641791929010194493402038505306052755975877195605039255206019366550532909155141576585214376139073085513367237452745332480406800454019048154406484207116192719661854038875216207174092279827671474646516380147835394034084074883317511359193756515257055410850694063174858697698856028856380142461609087948586634116605344046993136609071797909182501527622869939085466296499067391865673242140505790871357441417609030816940049991092961985736378648363952351848002512656245893967998036146858994840144745483226576033438065707972486208678470469831051733629161671354933336083753287758878700402640894912922430051052789471093680485699716464649250649425974759140998307338203485311514461323622657029773398694993165169022492536939412328579136781826785014332011764644103519025790092260447973341907294327972698121122175112417920957962065473234857313252679405948186579079928598062576169107162855517596415638221763636645709130683491470140084266725684841441709790927118532253673046039669964770662991494553462392301346588512538007105320293641826986064152789664576581742834932048799926907255935222906926905326021275018887870925899579055664231406719208761894126170212767924527825876140183867807534353504442968666533702089487725974444268375730190308658845026279165845191867151587657268198570636472504666815156917571448608545202166809554847130621662717581926096281769581571287947984616835212883572604395638694353350305802586368627147785957516414014054523833177837351685475487141175076334492890455820972918847621252822142938847674047144178836183347266513851524848663553221919672679670540882218500577445513874206342602613613471569361332628046899999038013118758016312881100675637352650220100392773122421291737026671227403712441526217321764536485833218955112228836996814901731955920660494319681770484116848030283823057315843142267667969582233584086994535330157423793138463658382322492749160618402448911568043808176575814478345956045814094714795200699435477539097238688285235528220784690208978689690903692796931400690980947175730855371745868651354728235493741271295842158835114707557677719387060380140495724346771616958399617673758242583405297354324453952030102639787691614954416998610468370696913680872132482712421833307117824975893613045878654867385081100189407793611972222054762564153306110115317804102521461635337956832456802028175807283498523105680775162470800265095055752374567633634464992648878613533290739722297601707747317480596700035994412111357555926894306756460209215340746287922043080389915212914688605338463118824057380671161692963971849620119353543927199840552877496650198459671542938624852835670781862288982929730040339087718994837882673989478255124740640852439442543063152095839008647949146983289117182875642465485553011838044531417789515254341956747774509875483510969813081035072628013666663412261806941194100014374921079057252179049110504553477853854034341430625854893754071278235849747466201225564694314160820532648518406744917228619307995209841226405675761593724544285171344005372170108664828150422015512794854760894508334555917970164943477441282910446294574953987545112220319600332192058070951060607025024260652155114594261234066828084479493572772771969920103410083521322314357490898900349632658240881861182438512966363894212788014449295441526324909280527193725409847511216806842644354292471634065318221748554594279169281820588079733701548926667924465933071088329401456339168171339463301538953106924483511634150985285384031174902557726082622490160351546679047378122482344785167024747939020918180073239528788002652846926753927210400411484162384840828090802222641564758080445511010104496110249851488770638034293376579517901359194730956565146497669184329976630582853483449503572950403749395566254861435185290286722722493764061816334414270600713853126631553319792630648226158668510928187946069495605278395550654632217370785995910126144112876237760502506214940621578035026234831768100772049866535790151124238135492646816515790454846841869333489525039959446116860825059058055930699292925969524222731452002817285495550535259002872008150757545449163406020204153179917436685582039322902437359741936927101811311854650985860639972370227426636093261576234383399492861698512660301346825516364972243562949650419351941829683837808954628151708753762096673758249552582451739734063310288140545503868995601269891972977555122865669863412662254822759437725896310697334926987849169804268865620289938529568551395604988263754773571237882513098052952023172307176461582963074745314535518202185131028429898398564013935315332479477400513704449954405502709157055802623611228493701630760674256508737643212452857381609299818876449521655492319327482047003346911677924591101330085173605534154156178786236614612745393645119679001019539315247961865657707687834800191062508757346082317932827707315464489546213589876024978928271970477444781533498995148123926186820738413173560607170040035338055137525034007895883959783320013585635832408106075713162148542239705335109374332516199786972231478777210589993679699980072032854468270719734929247334306879455834197949305000169774909650240084624729762594801095543799460902200053594960943791503881401848833356108603445670087464637658133505183792883152132827862078094197850158309951528178314146275077037469773550624031053747171386490072724207061805014347467093878368077525481970086780976547049313127469996860967840568476683645524165139744125921309501534527098792310223621865927639597258299721686466025580153866853955460579210718849202163554035469733864810234270556421394511727587276946709098341233339230834267756388912689121040306685216189030028312850705217471378140169520983468339207355556536323569814177458997164589391238814989745971856711119442961422726882013093515857469941701385662147670935626782144528272234712282164657487128773356770284329529116873669232204904065932527169874057540560705577933539297326345442071219597710906783999741375611693868425315817364171615379509665384225946729350220799071351486046870131266342539429298203179228988615629111586126005508119633634818637705452844550558363046904330186518985292663382278065986141811144761947221910985793045297618809223332715768069116426814000873379178115266301407976704659131669764634325283550210354672681972879483628305027211553929314191757441781542910652430540352209975235768942059257860423362667927647867542756956451925208267171377951992953662019441334119515517651098148091298753982747570443586049851897482712012222633381515966031387706646951243692702187475185086425054771692588932037797289289434289275585958265505693758229577811587097252745029417132192259527599859075560466270349650518827581163730006971331253217964336704048110494251727098373929285192600989849313039179077279147667069261438835299234916183711438028437435466609012980078181030173543723998483491668513567344123926039769491572032561257301718304727105475873890649839785134441997512719230502637621279467210353471512492374996061284032977711046674057909219444780082113091075127149200134403292796821926762970324257232470321881905119721233770008686417593490951671921411644837970138729235937087479084718104884676595323572740934729708060639125427391593138069564753470042503862008118485763878312864455188963914838012169907970249242475176778099748961852184849967964290746726217893065128729927794678037597481558250107323188667683078365693029403411786531729470325370155685933580648116015796203137955302976942853500227394975978793023440595569586241990196860428762772361991819724367425715319218432627092463920573376573268477458685832536621359859841472905713282807379224097058850359941210334364394732268387901455276999779257470128684397955867437843946756307569676456592559575677656380811188355458095370192064573819956615357869962689080207124201356577558989403914928588330155423268058298099330157179380882660939866086993159434634817360282613213393046204749574503779440707429939075075651804976805164905113499046855026985144294233150227461219851249470004822670594680478961301898693223638579542850920982117685713458999062640909235073886078352918094617935054200592288624666849114184113643859964235569998378998640365146743875037525142836164524180122398346307187931909830184556837526236618658623347941433259642144786601839695804345588876898200544447947023892934473396142769378589844357599181310336804729133726559722395491922976282295145640347005058998569713857085470859870740033791554569264376757785011617434853147902708124849481377787262347273410243538333110348051731235324832519943956207233398151490791123811158692643197688838761630206444979631178676262850525270025533131792492093297878868155957785281862265100218579697278769557914145995480449072007204142416747339471268133914165823881360681682108251987221826770190291343036728773120986284714501001081544390927427367758803638055021583562464446245964805401582882488359495611479188792314772963677094534243134438803793120079893782641837453065643627100528615321351942448813161136935149272888727839527266767247751968132801082634700794929489238541602134384358134733674215182021450917564751715791863838033231119101154125691335328123511538650001138932004998022382390005997963578739478061178652270176839485903492549055894783245191490735196278709079601493400704052392464510375334316565441810627386736764107006765095148369500566851395019656525106422663242602581454213853629910817109168951434381405809180729985134425980970472912040044851101364014289118414872266571999474056066722746085157444260709768552668129557421144681276498499765416795004550589615223446574147920438730107882267523880477977466252383700493578347446148156874523855609036538754777494368707434878303239981602651185898694456603683334632837108646618014228500568522871507358638341345788709475754699479570445040508138483075735919622042724361046255873572693591362268418971115576283051053973015985074656762020168319565277874003850066148800277074264864555036935050112032986554219231519207715173657217205944132927585620929376064820703859553192965653362677765504150745785099938908202516122765989718724985403802945216466354983176965961191400219865875048994825186656472810434884586141481813391905098322992989838192084888065304471416938809185285994359745143836926808594499502603641325792332638607559745296004312610939039497605288887437280300027419026805122000202376275149538883529694960676979704665983039828625459810689785294406629819430332433804904456477717118266142967315530961178810648586243429632840658035182632871005450869379839016794513421126490280830828045272808093862290763045355516662757820796427043113972793652242832320567988348644223296810255624433812998001276355725179747170173870827934971824718046289907978392261429455203841165770685786770030821712521485462173492251748846399067597467773931243852103615328834616035434846020847403265104418699003872330571468057894200915511147346313345069362495461202734393325118460988854593378844463928628730520943482255417649548984850806388582313056911157946112736752733971391215021172904104338566865953660577206174552105046571320570212155513736564445677793643548363489294717060555857552160583710865389827750184416946750157312790510739443927040270325793728097668475662971551266681975644374821380712634154745047375709214880824019423586367822851055874560957178118334404794046714418852112239333795564297967844537168725867450142611716508797146327869787761081078312334878166440810464870702110401697251362295554307318306964032397777077072072836406987726466485277321327368202145647021046334121201936572681734950628760411161109857846689569225523407681725316546748161966151866843029352964888322630348257216907546724521953965936633333251420886856139180034417004440342083891177781987128219896694577819569519027074140691386615740726192353774996665912573834014199393842482915515400308963896779221887655989321414838230480077456354999042643181418209216022541314778100940731548768134290030881863077294784626692223940286087556700468153989106325522580529696374368919036731506398773004739199863238671304367530374129504838946012300842656392886051317088379575346978310615273458570125075990689403206275532557054602631252723531265114912969023034511754849484503155496037223337521133199526196888102349882170066999390998807309210903835734838350512609011737595874810569273657319829525453312862501393420478118308568992876154528549454190606750912947811837341201249381621396990156222371082085370871091023254875410653670898186470642512675828074052422136941538334382973228574687192196409976332024718525655733862147823427253786801103084418169417299962802162182445571082401902353811605167450291231672067322969486295812598114507347175162831693481549603461498569510672558487131405803819742860182720701243982481848842619950108348801197253308532363063401867755113660269204872245899847364960277198241075758709147214489597688556154861740714301816863642456157750643036441671850337299951315957356794847692428946240222024795451849210399350669264815268283145839128862609891576642612333072853971334018409572683157777725212003592607368672377845793671646384560375621084552931811630827893511434421138128373767316589947546387542204216955392260194847028333877719999429368257781007096703059962463730223662505360014429513932768276457871864516046129899261112538395857892336609959237331603884097081330846761232199524459950660616870372878666289552964171126994252930168070805398497617208437806343632172264510427580191054254683518204381149146337295707078982437928009353162706868460781000099560186639226044045583690553564698459370868160348460503226580199662872328015325201255370260586057446790186344788053345225174443772578011624001585553174087773376899370075992964880114350683392534646461159433542342363362651911900450621858877848238577401845030033911834366640399360765563540718748901644150605000708479238744445247775191707854094647231216959201079790442191286651585146830797948191082263156152199107884506242160023427169976653336010497531879841378704459078718325470821193576974282801967589950018567979358433348248818061339725707550218985135965337501761479456677293792239821974488396913676203029378458805171716934856318224112720754092120961259673441717307032156781162987537112187205359247436044894803587867218247692642518252841528471706564867956918405336988463785727824939533322838924793185185419462908452327319335922905326459054692600356442401125819842646874361089410386742743094789650425778288573457698530588136156268733549961468722789304563116180596129145086601758031882818417121725565582176866187678692455403920142392945811891846173207760523423488866537514404674900990970429495949177105039914198414883185150892306320756494090871513340456259512661307306371946163960040000247398583611069811614988634885464515456351159738939953754892041077020745980361629819435056595072717662146023522134915348042534134845359449445894918675361081218874008361848752396440134511739566484274010419380967321911186576976779707820197658036666154322826919777137144553571545206967082410373694993749258417418092674010708888258312140485016669126280025254730433081696432134440517453323943910442055491611661468146670881909564189753422148085640351854009302848721576072797142195871621118419591784925222699390750679875508378423372902193588497997799780829810157426509657860263946230769208394966120269896826940933957035489361456353066906722377231100226514681494040841553196090425081151477087059758518300747554570231624679043582178855109408169468678132843260074627081677989238220015318878135956176488448482391030083368690405208822794569653953163972047236513049254527566528917042732684189194337996038426786356095719567571079945854801416034248648033063121358848531099996570584806372110371307763327449282587447368653787808627749347011548658203085743846778903560106069407245288062076160210278804731737594747735506384641561036922806507884677611606191691813182731055256527751136389487388778325527304891996607401730502555938685568230383309737374832179019102124542548441844099880625078875749229940968477322986803907607958636454116298103156844726223710549281883473105991928020605881585266954818586479292090117788043911458193811584769825166624393351945195937313184283703239285553013234425285229775845838611112584614195802386024166237060202299131934076727704392854781276234810741365224670015946576759085140410967184232774325546914435479242108048305337956257180225202194182247998881327171100570558755046381680964978518020938964972067009201838400591880803430411280323381467472586327640365786531956584758643913439106542458725578421180555827189525433249841927738549163119952062828324474306558675291444544736717436104321267017152734252174255892571206454362668526273486480121647915931147640943999838405612949042484839148084486503827839142328211328735316982156391587337040485690827992218949016973391605752893245483242461834781323018076144794171930319213593037017495917088521903597119753130119376673550534070017010690417440555583760687909731897987465468465957874222398998602894335928161609314959736362981837139018804489282558353606715199804792182966304255614195442690291737838216616411475827545468463547672672992964239255090298893889824679061718281195337722623320779637607656887830911216627956714982280863139848275392178288796733830762650138858943125370052218777292187069020339639349014057384425246470302146917579294321126339055369856704156673252363627980863765976606499830363815194009035767782304018238338010328566531650749006113738083808648788670845222289832919208137147621501161906876830373878463817888904522773216863507712180474578790440727298927468307426778016490658148586588448968771758112207917121825259970226064613480364827768818131654265673957144544459198126867254818904270994755325599824002347390028636931190075825978418944952315936544407851322549133425234874631793464343444329424245942902470749458763830971322636329949663916100702295710497827952587074229005711908955023808053551449368939163269764655009910971284429174103542914117651754509364193528211033138314473027799945228601685619637352864876743362566996768345901653513584113199367349057136709496977295755160777524986955436149927629818706607595551743995076637390410465653183437476772684209940637227080556441473821219557605032084255444928038769723727651961432005229146386137048912018700435173255513516172983207636619382755564647856208067464506978732654611811224344397500644608774568885224989011380225184474727448193923715366629986150648854372955770760008663721534625052283737945211502877026532726478854019551913229779892055661728740720327831477566132646354094512042617084443208263429172269242814219824632000587774876480189062021437692684682416606300368427480244320702551548147258110870072040307889339065734037487464546244063076105802626825097539367043596261560069714230160927484242366073201916332814227919994278638299949338479310316264009669537391424284362126676829820071046463099798140071816608155511729747269060239609182265088347448395526253168817167056930534633253673157599647524775970749069273674519479706115416668305630911834230987808065806547198912261830671944450542904440719569545586788562452945846667558791958657106507719937245658735576876339737341322112585605933434572088562780819232367173054680000873660166541618117848327657009830499838189929807877064765457482892199087298463741658191495295324042531641691816119967314445388964903816747367769625508256766003702687292842314561415711199092348146640054471090897651953075666003201716209224489917703468169207436142045449192266524378982861520195460878389021027273135845739845172072340146853634137005610848095190794673032554011044991317742276208576736628326765921362109805220602722310995771324879000390628126259675503734588593506165615676437521058153631391732958190866312416930902095244783546029931037223569178920330008208964636780484638963379236039181390182187022592468758936030874397989878893896308775225801319562168399127613133888708247237001113546573842424066190659409162838408453012587208421939351547447169170464140813653918290947456242742822273995177806834800590848075461432114225584368939021999909208209294882828065041044724844160220700646803557096710483601660127503667002085686875284502587449057770922942575846874898289747867102433564322402110160344756212904498545361713370321607587165942302176514283354763716833375187658818943543513272594705830471186449112804562902013538100879305195966293268093542110306656834570474941421775872102139239659035649663592400507479845553439354591189142356095362163807822802313354426269270692128493215757198541983644142520767295405040921930408025102967442860069791805222610592362783363809813552291473012662055503786268533408827700135611466298739873543192859356191133581782867315290205184444188785867220388906210453077951224695771781975822022758181100374312770941667454959810338556448365761305310863228664699743162338608708907765011979855277457084401436755862466513988710980796035416796691591691510043669160455604118473241977828429900112634901547487135960264890721625369537357551238886141398832430519798205209549832845584406126181572364635394834299928289341813253720761989894654525384222773161641457994395678237506250319363942124819734991296480338810810208490079884100497010289686876364628428919820163416540674910987974068491929596407376065968050104772676124732842006638809035783522257832504568060475310545243363655022882300980621655297155716271391649562702034314171283652864201958889987733055235016262618154861253202797819998110589634141793635412928731110464056684291618532615119252828065081579278055679993177057981519498573798358202166665916506119003177809547127831757848780936979728304391776803752393850796275717543883769450014483577643201005266700333279629952254269789581312767487792298836755258050483124390621354174140446517941755995855915751875747620428586549035165734219272327250467708556757372652752549487825523405028228890587294132607534804295223393055680457378291887419546311385128638642068387216097299060484620262023941616352706109889167674273132903494659012755040599434114063718606963823901253474604849117430853275384973843552731794221301698926346898525668359744488904262507414829921290649989778354707305629776973366305207326373652582804813314670516051352684947799685037191055937211342047072684427914737240003547530446745397629549133949863337531622173001179959866269461748960626537285824739527202883968280621236095785874430724791381337487697309807578729969596820080949191724472450416486959388158114445461830525403997123793864506557027103164479105557119270805185665002068694852974002795218784964681175108105571240269204406946711719553688631396999899508210532443395454388178735111104354539809833999673281615765612516118371205244676486246391470621232067296884059844820339581110165917795480337487068537324967252485093100267036326988136470619175937955660843735277296220359318278229941686614931013903633300711203029882606944434203965204961434584765206436554278986732949981922605213500160993168937128078366261899955607025691021979793091569973715257674129070483839117127548948020142617292704935876826061547121895208488996875397479208725318131426033910193459166241631077863393755803007488761431014543930034909071335603255316155617646153319914821677293529027112422629081450206276795110553817811050496005531049304583603593927082606906503185086495527158409019301293904204055700720864786425458588359909386198263690319163447774754638484912321427007222799438060279847165394925387378870652848233926912420849573748330965013620558634369317768424630973566091664370869340572504009555827016956539107725143909442955031983833463844128833583899458422780532835228213246088934055977236167655817005829899088842284750089660660074979099744122596298684891902344237089880956537706640798777497021827499662203332430680897784568597314439560557575291288898668873350477071712334699160362839715105139871107358855869040284769798392836757618504947386745789131723377436011190939467440806995488796159476419021849015467796647665134416585698604794688282931913461006902973181058324472784601367771217430819955401890359899294580149281990100877928925140756114422712026848469217854937573290240463329132851847927056844543401342160359173890507191026678813548098031983937630405351718250406219598527181201363094065040086533365883146656178553081247589917995369357297590846075486805434966032105354189788824494190773451716425480594400988754441469157541139606293725166931273881749276786397851131082168203600410174397967376832212377538249011362795156625313161704170799692205326015250657239635027439014763818365986440975437006607642872569078171813388996639523936790234141399589898152407950017385895661448609294176262718630386117986069028284118318476184375214185061992639368546174574094796999966321859149935603826493238525690030239249251561400508965649047362663499431591965289025049776648821656839693211219091738029903854688747911452175055623352645183166804069634142578313709540672825182823389406928957999939098416160316268499854914306655448159184789611624327970855110109208967212239376986353614632099431404535035031911217403707063354547719410654005281185815805254764899922327684103682971480102326936353097742629682814058341143165449631394189273621133263014846196398409662527148648400354797672065311506312425547504765188307727934239735806794509996537873742375034309650528897243038667550712608754670813059002186870569851942092666554726027414997590738488895470053691082093836974579678070013394883184466522257729991641819929441235255882643779445285657386093129091194769413913652536460932466244785058307727290061616918775449193031861577707099472454747255738588880603582477694399243570697421359095264165339365699694372305063431397940705324563421990306254856224539039757917273751960266331827421683630324544528181638225332698173346285452694870909081470205911600961050132748711633354384376683220465760892100098050654090090996390910152751323042628648901249015532087495791851979275006789539116616167195890517418571737582073845282231445990994571763151135860337749612285664523658042754776006184807160398741212346735708430931254150196514672808157727389098072499035089467754834795650201972474674037572209394209148400129947706147232221842839628146207082680250687307204601458784780845377796576210781353199292340355448802977925107082075646507481316860229534888528063135497030768680223504453273635005673442763818674584451344274585641002588063534482994070447184805116387272471055971083300787528706052566852244277606017051423774265667969031180165912013429362620783936372974672813381319535637870892720944167634772039845773878107371258840066066703647327683454104008812390645043642868720223277097280199804881515253876640562879056448980194848504402501865809899101804905613583778329023176791684597714277570374155708019608708764167667157491409794485475833347629693614008233064118133201230805769421331164473796913477695687969350680513931958463086379406688242323853009978735448352491996218024468737025808593827725977335547655910945443546880679469358630922214115342704327692387637819912253419250134904695792765400953851628373358537898402224730271534164013619446657923743808660786039749070018275483335293971465398206645637709056111252735940017733887905323369877420656876069513637129687670034506289848235009391722384086936912745740775896147963370975863706055714760082245463118304713813667927208112345230261835508365864240361793184105083084366797313163352190641450738800853680444885998329504408467513352360454792888851655235539120204297408059822065581085781233303482206891955385667885857784856282692308235248688261508432033157641971943560074026714276376327212768615307334439070381148386832508710014811597528487118342867216715557925963302115467964746650650599580255765272480796073884529404727961346963139102753742186173726053110624649195861863506012308306589077433263962103512311784185951814189372284625369069013882729888018308072284557876438138825232277270892391314672211023819942327307759888892036601359397513774764676240345268922091599706472878485290142551912775875695960718325782597677489638049727567191157194852566793606720112364842116403818000261459526578273544323271121485074058400699724437431006702793594238429078956620356491038441892058026337526420141684395021447806593732736854865562208796929565861940706060553608413451830057985246157854617687636222793837812964293758581993419797375069024923072396251937020981232097409661511511961993194563941458394131634186824259600576046538692000766139515782913672622556137516338349359914800466441084848742764800342995592086877947349429233106773462048176883859524933448225062697127184591383676047146832348820731028309077233190756527233667530010081683883727485923042072177444260652007871780865099609504457884658050997776082579633284432877404860183233252753633573548323000772650479655825307288303072916466710149202182476869800002189627868473298185205930262481310148906406749913995998045105704049389475614299404218997039370346662892746048434182443662494992998454279115052847013184822243595992410264595178266910036632872389717146282605548252608091748745135714940188316044267984947507299336300066743685860668770628286449859039842885759077800494875831033457382849553206862851070435063952351152715093374780901713896760176177140420162217145897018823972589726490052295957261751018573633746041547605178102317833145419413577455892310565101450868374318509153024737093283360656432392791145402014027648355595115246555510902050614463295064191171844145076645185450504738008746837676840074416392510724698900422400940795548633790899117647624165658826994618020207711136054950906920716547332485029447041313091061337147735813531267392832362766337818212109447377861691200347080529741043792618507085056844106983206149666616285743085639050261655739143163942058016718667054702750331519569754787965209156917371581582294431573659975463431275153109851927209248640313136490702855578593853411129148014267152610327654806288428196818538078413085619982103939404737055409902178509044535764007910053496372602988561039164119207614022885929345032203448673986536988839448898336959907265237235369393295816851082165044164794526896385135908577409039662309698746325507171725546560185926675848874349346958271684651044636338390455216528766158459210276608071878882721711718426445692135108765396002698018167077304272246133433019862123901256242021399750380163236571736066512653481642893985370726339385544322775371920209691036601185391212195080480319776107680295661876001961521928880004459787809648224288811486198968443240730780673889746069516859145077309182602410145555550665309850852510901545348215704756903717084845498732603242200508583653769756867765801581543358392483351063627077060503595877440383815871182542307105917260006298615486634822983311402338040903447112065627255947681238970346891262361120005151580159384921536213303560127924918189544592171318351539390312494265583689868953396330485076220454683179589437484600406790140002894818211555797011146678219739592199376541893162687708251616259700845120850535350798198509563135360082996723651593351858567820154176913037464570775892429803697741610563139666214208200293225606586771189105312494716095497092824042133436517786728018968621213268185404011098052190722282979459116367734662721281848092602300606814121592050944838887334193876777761025804863225285815103821500641731082957640371718873311736199490278697196047700123185409586895891460383338547012396279728671986609767392458995373535243899218582299787518688154518309762059648510515269239981296547914367042115747024109188564828891948602693719074090164493400209268632393848054176400952406007915383373877028643864317624474924132645728683157557955905830368137241584740493628572869404702225386702340159102929844180817319935945888986173059727329061843597607717320813342759645279182401676088194382334964617712144580462024083907645092334054237007061821256604021961333565900066084861701924242143645642856081372138383272465186278685903855709768661447447142813003557908806158841923352014133029712316519011148708805432868270654145908440669134179739572642618414252664490290105815925544693493504586613240669561801642996260264052653890429184110356275856594978856329607188537350595925421492287262244992386970230691615466694555560221948467734189279880265945347037873105126490915088157712763745660965175495515241229454030813978641416019153948833259997963040755053726561562640346179102703750778580477206756339118412418923462650047918322399623014639110319559387742479728893369170880462251125936692533501247819321690619776616747561544144223923924398854921562879119615616991763313726835610211128772923581268954726645598053568069962818990797407956474761330251447610499672150380019437869669336484172461626800539862001741385750366178018091981488412812963162586530982028232801549740478810928599599008880933284280943373772639419136827783840116585714188534474343802364197902537511783055999644132696422144122319994260385903999280766247838614889899975925238888863255421552325213298824166192331345380885226694161595222970120017085936155996804030582794956927325263959039601787134898853188052805571669897604255668620002800315456889228416267049848628190239809721675129911731044147914428830722216030293048717195271088233208552212300379305927291293223130657075250467555980644178470835373669885699868001393809943717968910116177540928348044981440811773528210271841637560961339156514129003693328837060670103467144882394121043651384262589853268553822963041071715195076317372751215029396444268848917740286197266857595996479592007130166719704808822713100103025968614036266216643243555393357122928240820973200144493457181194643368475164712987267770689552233231877594232781834597215417630750767674801654235775674214441319118628930769407269397146859491264253662212583500781450452130910095824781803450721138345093635116594238545070786237880237923759051302182872129829094167581476467225843338997804653104896830406116177058522464150191783320310609757049192544263857249895817365504592079485997331768822899753810449262859137857650389811715996159573080607447357829704209726325492399537589363643703910533536556801252639622051134880261038079777952637399339975637728684066007534339576151246841816420564664072995567612628311531271555236341513177123794055396917142131872010981636473653823008114309907030729893927753307872835128563190342381626421895415855017094372773569339615708054991243158439931454679882049393763139485541306229600148286111467631375141120528259195946607347662025858174721091418314367523905062354463251974707313133691227012282400651278272571707396979290402181168248186788900052716966108689192775379812505786878963655294131755436901088928118835753182266206584590707519692814777313162933579733863898025482961154871075275746889633323541411802404285243006820352515183827550891739829607461167152264308783614416283906798052260845360776237532729193931014551269383151337860704903944247377333768105677994310963015079898242869771443238169303234239898834572265658173144408795588836316121188177775421126853920052199371827504167731067723763079228149083788074015614283673634410520741681217402023694710759733129951752974409216980273557033860003553062863266457565120774740709620307148267817264417103511022069238384409581688506171408081595212639964338457399878603453828518766657178932492069550757962748544588539376317907520114351231018520854001743573945376328522155061951641160007565646627129112881478321626104122061449364522050070000195024096989399938886302408066767838740488709592798012943196500509249214148831824373069547625425534698130651523269092490054638396555997592954462229850523925086663036398160453318306551596167314747587909611156419927285218133931680708292156729674251421668113795410439615726454928314724062263372520237705803443621167211410650040999948236932014961950052711668788370408377805052104732562524344570828366398095391833839975000015426369013327448477098224533034306571511245429353549911707951710682461906862455317340828214298517784906870834380100688615444606074120225973698094914043608931541309145303795210856357617346583676727659293721409512064333013852835523152155227133275852728192192386064266917183379260500047713285247755881472997581977689620516953619467695167081928243948238386740217692900146608685313138398694845832701704114747603604176613698881249125490516129834216046251848357696333168121015696901250158793498155383588581933944018739555775020344437228062785664501168450849716396922037734181151689564890367810914874422310145591468844402131027253578869180082304062519968190172477714039434385774788736815269847592591445412456645707355528294216873942799116018529239601712594508761648227862395844950135784990076852052393872886319086249137047917986372747362467064943442272732726359074878680809177739760393011595864565137383778017026945615540570817342987743693772272252783422545354295282215906883181904962693598124444486854380338571953023474743291199744486141003900739135344062435576966773740289487199014996022976133852744274525874809620601588707481015414506616697381229385406829882603549597887472721862611757851838507867257680480294324204811599787369810985842377292908586133083865925477463167420421509074956518345839833329305737367301937932289723999584627267589609884772625646689332587846914025955905230738800263362436444727610634143170137424713436031968697964027501840151663378209266201436095770812003661644577975001758573967520843109975919379215227574293885436551361713344382731535668374395058944794001155484657832631551002000407620174580008557520342537644255531344779481225684136058999146546308147695469053118388807284588149352176165242231142193685719183221272288353700147600714871574811605504081859771790619122620018694723765060289007893220728524922729646016142924195134064299367728385743339570778888199878453224685641922512550832481373123861972062327210068754484514689896016474104693041726672089968099133240054797600714990930265329216583413925215797292827213028724203895174176805099727933048412594440891336631961249851501397278803264812950792542535913777385007464771985160869667423415284683122464866702146759920278814876377048077648329578885511021766522200684701754795995706390577081860121634673550125616410580178472807087822909173810619272432287652478327790429117743482747049329301355795958506546651595563030162465227212450327620350907689589175281186680096823530631040880630460189580315732562092054528815310759368334427376873579878265780077557620403674920266486645674491055149189805461069413491468153928105625554375337910429883107711004046666419251570700219232396419856966621305141442148459312604517130847984823667946252642054280196979963176350271268012173219540166177096183644780965508732360644288547043721449066690663408424775795786995490483535380918948491850676916221617770307923057339497405223467302224495800707578133158055202245126477334186308830106093938402906958798106229608154690667633604731167915671605131851477433638710964372899801881352265949130714458407901969055548559557879951503380235845944489364498583565534271097186930484023339796592397992100696929308157681728410479953387994339798080038251275542881876449370511841374055611318553349523376191640544369318933747208463932463045232830978393904711258074750928459164112313510502102773676091422494538416589768314016822856826273092690295645937824624222072027245896251682381023857838253911302665270602645778715209457220700504661774858817934238505862762372611908675986675353565329036798311206979348522352482085209679816033767530489700489168362569899651360257894304329356300487649659387420107987560524794834417247927200839380971252972548148855656845986751720466030131327957214691499178977717408071143942336650524531559694791601710674073946593547403668506390160325345194813206786852249780882395202091931898274203547703288094371874438157519915693495559003008527282807191944135939863013640537889781501668476371211954196258781818154826305408843208976201729205272485459190941786507403698264280989741448150950057012717419587339222500822738098797951193997215839114411360170275909171385748363678937594449526908173235201015288583637961903838118846840055269150558730721503172652897229950128401320500962072925255168513207539216863664054126643431178397806433777632342732373085711015527357075503444909011520126539119061498381444767582803614759574740612873283985573676250742970465784496622012766091065483251175567867663566159939669529032090188149644966206880693282921520503180713138593143108017195963593912429771644054415854942035610323878862656444614492353650961050396202885249911383492161037311148940828166238452133438174995928454004130943468857188005641884071171328163757289454581011509660896532096729823203244989813734056324421695231345748486521922201916619993089044944565687079391171957433292726669650323169131001803514974846667146572627915190439625478777953185220750327916337781038347932367323473731018086461973525897591253542601955939549844619405222898398280228677075815896823049456851757192512201120658812626537769713316600977206968944165246920161253105396761685370248075037103380080400373949802245958902486832716765744116917771055306611508210708502419174325441450022960116267538069800750649249241231457134824000086392390319570007269932555063379066798415099940679750783306661782175218841586825249874223230661635780965237323472083863736736634792567099742783143154033221981683296776597365424160556182665093816778784863456387861301434702925959660688144613647429959691947038569023419707925961699556600870529280101054278775875296516033221432085938432541385157266340315830413736080659833012312124357583245281779342227454473721933657121046382053438888611841862959017699934378667783922506080185729463546897704748455059692244599581039409214077759786241047489441226403235564927825632249518101736038804078779456987023439026322186863353817386545893290423831318692165408241667293486334658364876952945365995904966962158957486380946126307990785614455007191020351581521778108682404675910392435305938342119202204302190950948006352537262496839935371671031789173599676392499467784337168363485681743765642915868193171731721313511960261845724306955951101088820426475289163215616354522120600511459984992934527730154888643823940194747842843117562997260448218945969458759842576371853910215277893503262674328380372132177100865297432310613206392272517682495861002328951655306824742848856268013195931566469280303595200804233928533111694269810545202973489422757558386190008171366563244435464623028231738945659850307367565864175696543322124098102624197733858399350001633650013359096061663120385788047541839007073186221972733129754292630375895342139566150814532179819475612474798079145488367533815741335683597676481400290357843014483976464579932643120720340685536744677488869966627717668397096308627139231144498636143800106320894668886576362402704060820177848494443236188058331602162560752260598437191107424387692773568093319157927922377916099637773979952604869683314884317412355620894359602133130332016982144971046286621048122456616412149017674205898136879911450301940321403288414488614359107456978450215141937064185321858270184783178549875542898922498559057830853159347969343958202269368611549321014877523799458003306109035055971623036371256318883438433537274159984897285186090287101726199594740558493199296256273815046881421800678161681066371271544249273788000979567298789469944496553150808040056265795693726036888111856027152620010612655325276988631202414872945453594937087728371722802779847725357442836389996931005080187184281113956849964975937762007062937864386528040872852139652999487356357032019603948202559659620816868122422735209593592560306604591618440734687593147202881628586769016220033995235851128940790000282210834023099895327319256705559478203088018258849240211173342723081044741837942675687408391765108085420016858120581903137835313493721553831891438230323743807175356668641660333564990431202102608786530964450439474720336594060019720668157715949349132279397403702884176070889130760352906222491430253396851245050694888781318679830969219810418222834870510976579671153204699201107650812649953392335536243575416771757948590385482739305443524153699273493912170973128936930646168393776320807357659275769985890009188985320474795565302598921143392787398816135904298032493775000205921172421537911461049805526882573755584651904153977505009915639055891017041457511687299047443861470400765921983696193747265681153623556618359166832706611056627834952761624909196694719267460288818929438033334894309611199519866132370198788274998402116546975815451394934977456112177908538774987004435854173984455106511841985869148380206241617214596751122560289141979183614628121295276874094249750804380890310991505216965816970440374428921398786148741657220726196244364252730640651817963756014839114430300902764204830472248830487518296894739649118765568565771150825652027420267991678817067734320570291674009958562100278890330575248567747085305687631568300662569257638572338649842509402659019228182804242822570495335774809473939589117518399035312355923382694855855639123170271921776407967224193170243236765991826465366420156696419247760050120538129651796728029488910044695614236946889030738942903270187680168483593504939546857538380940029141274041513514424362422058137756229848503238570255653366317610886882349514290359383146379037303203198652501753479115765914669490787890629326172127000893157117842051077626498169598037112661549728886900408894176468869491160368836343440886905451752305275876872286229858925040424856195396367719167208981508175010208402913551409094745777494594044873840769411968968205262867796140265526060940845147958258478332036996639782562554963004631958333252856962027654957411707449181959519167821351676892766255966966265651255609639435038016770252530450685497948171166280827607109785836461101313879600179896314286261850790827853643789807952893888291019948975704850802704848565082983217376055561018171091283114880282231559823470546065387258164349515121733940309225277682094269564858998409331303919289216319548814186838321123821936905085939638952636512139516817207584932870421894160828658553466594262863138084180446967202781358919345853611426902255302034544841762394849520932104990515167308316878876950795142166105814418349138978794276192519796938124176519630977683412632241727336494754433465787167687788850035373560655141464255886322288941775480311016857539445240698654476515552013794053260790883386629659444638623784494491333962300859601324335547762007138341429146810422681458709448507637573758214793394049208836177906260124722255587475133074203094899300932864026991877192600304989371608334785539572913769561869124115406590431422775037412953671070137447175371677732569738764966762230168308507187767023911798200274195110712237458624256503614937061554937315373610763021925652906950953299041932975603442697225193539418596825816873054263418962369091929098688124878133690570392053479151430328300899738579459643685901544650670863183408877447319077755184290805013748584647434220012728502041525581829102153420749856458753149533518857583095008588712567376164833050930521132538209365418397774887958572002911857675963454142635546396252121911884641421038573062423110212654065289758331624718349481015543550857162208767700588553892342717981965068001662501275218245388216442763936093371143755623251939501720132400821407264139344610520733042054268008788379880916936629144562858331305327300643656314141789747873451191403224941975823988455030725682124833146267063069154112380463639469092829837223596473465221205559760338615428661637111365571904532970721458681064918075451700068537967713934112718502274107497970882577135802698101405339373481369274910678691049900620368711375783768323876006848418000760055249765606470717160124188109527129118593822518930929862175522524245139917683891265065980688107386732811829923309669294566580587138671467082338071052385126543874044085790718144014861082325096793832912207916176200197895592196689493851374554488671278292578720289317398264484059939535836706849338029714068857955429848180833828672812640991846542756667575624006986195620952029791949720446391609306118020163487823754181886597355838062946243494546564508366288047328924298454906555569488873681631311010954029494400808896315283444899789244279220642569824114792518711898702207742719504093021274297812364256267574115389333009683697079042351396946834765870301918043271503113810403599831626292624242030709940633640482720447680199118353792902549204823322624491839035716542131962853769098823128242917408184494771564899226058590196254429427135536950124954356282194313385926762727966308368438481156990402821655104625505799470261976324605773717435641319643176750910419579403969033998621451363577626210425674681067631749559478081190250982649840383749176617976212037917996607899740515052711568928435676342358418708514473074690361056525534114426445536345898638508374273020993504905790088031342097214666173840883595268497557247435815549412646527927886039721400582972951798242083725306999235452317601060340100096069203956743216530694006505001963454973278703817548854294866897189883552896929474251068415205602605135585332469413292167397335171387832843028238796370820207232629327797015559171561240950718892469814981895495894980370795603162204342679286640501515987081091849872368778218345306277060184381872853799567547055222018586926275382052514938485469422511684506207525407623879713509603515216725399316854010173770330018356336619686810560813039852466122678273155719918680303081921482075595674915372595307762199291442147543643927437883307994265831731063407530331518848727969917882287980170301124636605355320321210527857512618823513239705216702436797479025662873373303443196982029753052361872922788711285133819774351267284422285896082130940927431473610296383714048310317019623960411210848548234111415512195027404498380167640010152550436883486903722906971155637418205527433253477368289356926527220814996291023899609602062979644871763129578019980979822504075387239420593520320736461043139674948063292751380253308230315979792217984958959444324276987906962365653185275568621768944411813717894960218750635711124507904084796309332226289286945666386103205338444417128109240955010366005667711695704793298890682948833980414419042824247343495922166780266141706549953781787693071505779542362169163231570836207618596894440015138010670151958406666390201241739615542001044729935742588697161940276565546103820217533845874630812054048682958417183405923981223720081800576820533527302834991708193668220693814565307110893575294730712521530214221944590662142173940103074439814841286150125227852574349168577769151451732970837486076923992999390499312333158225888103583016868733085077423277615675769823792292426935644164265350382453258502842100731807988114238212267606889300152608841630123859769492554112323659186641153869778545134847339684610771808153997057032241966733255382900169268273740679332710504462889015222847430318176007759437869574962459329401290373816273734463028472359229216840603914872723310145126959605906993048134529815226069163908975583728898270924348855305913112588375773206672631490851092294936800947879358157324676973997110863467391713295555479659552666695230517900618692192409445472382133429362347889081145533048246415525256088643404903253811449198875367233035017178536154790299984480273054690611272697075433268960471486644353909132889486333518676387761749576345925578787162025048051684047119755194107106443036105717827882139945830113369746196127825234530887560264504925973526998159666095607685068197289840796620269226818928100697865503710382255740132376185688753159233902419520021292402997963655962373631823985019419270959639734719572906433558449566391078971164624556337183496696104066747386395392458035196423772944186815174856043473325862809517430634347985877461081595151126136390238002777979374836312633402017645158903450396328338311059744621953946001937665127684390054353911250612810682095127488747613681391094736243076189805960678984597312271639189139274445851897084098464711276126940320838908470978663141341317940139915536823164194197398170414356102154799322597282077149857774005936508116284960307304870137474480200208070596644451226293545032246775847008258427738558323944591383701113836952869781532798427557428871315974565122279919453262272295261488404971915720756267739926889744206745899997373390406739229509694192602472359175499076135785945109055149676448596528496983924972668526169820637061692693539638329954863959652854390863992896080524301046824846781467758046973125125809308731116176050883032628439054066744925200312820123610156972259284508159416287240422130226170844085804497933079503619162771059493244607265152366452345868701592188431424324404216006590388983834475487035043949767975816247433736796850586086244308132998387976049010494777029889779523818992890313704547387375004745475989195521003842025868559607448374266260162117375375338373260100957608393860069263924629490209116290433003328406613631924649561733061146362105953342293434283851742346072898654213439803223629052003130273398087930033560596287908986943011922405166309361321379867253571592450270274877354931340263428066118744491668169211783409656924887380814224327993841065747421015831640406141721107110931325218720081237323400487573339405632788827115211581333629165818014173140612047625361211144681387345860357454478598110753201106135985877237062875860337006933993530340069873079436584611223735529513685517698844390169509680415060255957741635442832608669450190142842547064593126098657634967150599230509221324715079101036198933292917099868527620959387838292964777911736076779829174004683550430599443683064568169973075764220349908091259617425966563970392468964190525220240412863846426981287547903694037275998087782783846818291219421533451334524690388225627262761979108040810424175762781310305505401870831522322585213377668063295725130200354519113511461808877341950706894056882756872176781121800723363210988500715196047497327946951443163084268842074727170455100282530663230779729653753774758776028149273209371838437852807503677089900168413811815975055576836031288104399218680672073851170744554835000934830186724844950132956773363633194423659890215015143765612133903213695763241463367117878921295408426536521390578801148819645624790474954045115325280916088613174925122855055959530037170387242180403979053436749366033812910726638858515668505521740696718055594580523331922599526569316962620163758370717900075899330489243148587508468175349898878405032162362967428814078449202187712111785701125373308688319467522189489719041288225936425927672202179268963472912532342914520551141341239829763145308689706789311754804374553459136421133034089272274123191424306843343241458263853026871951370562366928395564885379863679048150528668575784877776476128423765338961337285584557140546539396457856652176515843906962117941649127660143289237631328662148986499808499597759624671651611897482459698839974927519110919969575584906008186150368458526407099819346765127984433455228685001747035982000463708688895513019651736400398106641964183061475268311548295369232210837163058081767086768820592043763436536797443808354812338260926976017715635449731945023319342318652342779408583430443537560064951521073214560952357877165433075046651092616875918323685156262970168238359832828109737813590688105879923675640045237467735355234143906833704263682588687312458608622688773227687284922890030839306942039039021249699014835545200583117688454261362392676176027518501913242499697887491257022623799712753144245170447948317470643465013656699376610083801301792306065614381972008527895188676959227633791753373987650623638458089917130068181521448793690667108703757042720435409432613088414889060029733255289719983566960851991942289657466459755456563293129399247040797216812634084882129812215270894422471961543250273599822502747214794523519615801628400470238424890540604943541295268898125988606552944026689758681609399271955212914521759921533614999573232040995062641438460115097540354895357406072476105299350455532781520466673621534656384000153089433819077643126270621647500208434590049270031184358168749048203491811862306858452455193007537731123831996950405867707766829451572825216164211865491660306601347425413126265374105249642602064839749065340251934676775860765988124691800723889618684442842903755262593919155048690789916949999136498381423251987101839772763984455650304099918455563321088757723059715988132024868224500381307186886672611405911961312051928216843436665172027924361286767129297324670176831618379298962589110297755575980615667280229547427472744802407332725748159157402912332970430598206506825644484913717857791503391562628261376198951345509340372820790543095215522252594787661670814710676608268557737424443298905695469746553922388351109071309185636676757067581188272277612330109069233445342421966777202874057912711867497160307777053150168973497169104555206007506455727754019979872384149197225544678895336782321470083829508173473401346965454073716731416436442800528600035284716906045217068114777117309585598629703654615437348562705930915747589168034353217366732237148902122940703126091410684540683547262638859867757723624143760666358966472932951377089523535597821944782771570526551923170700642914579362363769886130287497848610553575574751011733185140298605261837525834950850124259941316003623883309947310928862304942889276689719492746642117154239599132256007205402705815703386748048250411367172453164458969056957746796998402027830971109214910717276724111282533117302631438518459286457942223380018600968584576142604461140494434692126359140626160765499150703410482759342934811087879746564222672342360778402772060425775491576167393673689631648320301178248631916689023663757757432764240540012606394498411800163499599835965310519600482386747999996023913956870130643473362045518966556571538144784742926999457281131487508286380427369185837383933774528002045131791220582766437122416518281992705595163255823924650392353613347788970063749963952033656508815431768865000762275371349025958393777872039609487102955485200483701433615594951688190590416647724594558573074499338711946336952492751487638178428168261823191521307717234146248264545220314911430884865586108328978045748138354690082891910591965343502242554505388962351673187952109435420862446311506220256122289692101801506924445158457954278574238506245740297557851127527166214753857722978262108720737108564012625863403716576065954575819166982743283743213032593727486595041893398811424979635407047039728905702656891950348560017510158541462234366605297719760018455050699366230035236156018301626625869117426849102033824690206407568708770628400183570599765868807211449959287869040740981175007637073813564672632994528269254746006181652214530263362760262611804509646926828963513563727117263922523384849984338518103573754558941218083277932783751631972932312098912777229439800732173954433955460651098105101167358953383405063217709488141861442196251979006470271123798183447152504377944888045081989498245138824890578099189834772288308857365440146426553774164237036590926813552870590235307606957999136631495887887501300672633795650916140422577328982496919884604912129362902242835675790443874241494069574408641941400191994622548014103986889998082516691106584344183671154940760130448933902107036536364558335618773576389263391297914512038451464061199529759146943029278931977274487135404888711563178102789877470050284123130630665808279245590246611787571005569512631349289760820531828453694293910709393438036860935875535017494273210431561085774027440814606982550908162233538953855309010839227610403126842267710613182975002427482312001554079637984765230715149955904113220383159245776988132514072591453740914215437125482238567115989987125001738904009544883154674992887427865935687045915251459251715556005824921622529111226078164879554993437551952398382720626332640824283628520101339911746535880037778292643275980052908650544230059483973169957636793260043256254944661468282172652105939762239470430519983529880882539860091383441181638246934499772589660360562836217308578802806587760362826452859166219948867780525017887778260518134711927507536263249703384592956910528339095068728571844752733354091428643954328415991111452873495812245556185443947687241951073855774135496186076251793705318865419147597982087952107272027107180052577589672709289081680515455355326527019109841346922238048182110783451306601782376787448293919599210178082847373625786488121143869988614436752099631898498273110656283454676572835448877370591620097509904334081076126731337924683210559065374877524052655792440738411523202462643347270324966091825882692084491680961537007961525016108955199305701489851085009792904972371549040955135588820871388886365267289895362000809548916213060117073384250786250443413914795826209579408744071255504402693642779703294214035869945759428771832247215046954687430303504322487360993153786089721597425665219879016733119079531623015767959745099611772296913962432267250892577413009974981266759047244280472635668659704384417994676379295889935713362486556850082624752636705141367670475461607965040627070310564826536542572210028340359226130328674493306098872947888047099606675802460937353468868161750952779638793104109562851349265495403317961105315109294155580395170612569670286842144993436868469995014251667041587323767783555552044294435508529357671386481790481593354159218254242520103305790862158419788378819249682947951191229714945801695497178465923532815940058411452746738601518627571899098517391742794540080323097530854765957716124619648540503159898955690432925577339531336823856889986400816360444965831088730286895100353378940582332430005467619716457207636808509396028639801346058806141495000815497897380665135267936652634112435383189617208826635054434148845998058660602328070271518914824742424171077598223365512386169353986940175969476658485248663824980783146788079974760287067152337668980594952315017241004258232473724971952377236886932670270319552626738898908299309426361903925537325182051609414878578612304993377648232411652873142440638712660794478147577587970524192589333584696166233596187977762294127392383470178459561578673080792707479201077781882260127723154430531893320620800424060348074510865354944155698958111493257040594492125442777971307231838257276892386908202406227450019775655844514205246659127246822933280139228637510062672665681873137379023709309054400504279384801916759041658472589797222394208228568094118696020099019448731289665108925035123963504063057781266998275634534778064927319129970212003910891213715065669761965755546491213932818490936493637097754110061092798898587394006928247270677487556420845431942491320339078952433589245012361781217752053934138207407792097095175098746478829559266144892873807441222855810013306937047830803311019881254939480196695284869668597728393151351709978694611399073249014198144120918421772376183106132064688779991609211731255978847041011379240847313579117277270024902515939784869247453232996959068429768276393806594006962544275624412144539055948129974579950423218291534943954580441079711322447937937688846398273083795755142101334222484047060150031325089961563655779177408374382169037045500738521731606796405934602347038368408348134744939697849379543715070264542337552388315858646150036425636890230991022321945848836130513404340490946813695611098614958240772176439182395638087277592971519982211922537526649925249818283491272831336444360253731321326800055713818607668022085883039243366155288625371727094322100114854538469837799663690923185531387680625582900643198252005440362202601304741949064417491416113716704640117379960618880520652809887051771146546955687233904212211482987330692852315588415094781075465731943391318784596003888448530346008004651758183409075491228709458674515571642090163012337228218245269605513730287881853853437817598276143923142840036745258613966887927403348480682507509606668717504173443361175518071514019806221268349861587331242520202535516638573295949154866322429666489204090617853982404907145900067390047217827089166611802396316728072014927312720072457408471833737910608045680205557603536576053318442321094089600594244095588284840200318193431957444890455784440375826463492259195995184963484775434263990918012069075180623747315240745231316624961415349027658363175785735029521170144120527686678121889428506596600043959772211398528445451025104813812281783183763114540834708043149057532873794709008895310057918631004901364118282607006548943451429790959966238320451369283397936384714992287503948223152278085197688395165388707513511449414207612084895870575049476800859184325747997948191756920111883586461113413549665680946925804574039017630950101539773159942375353974419545985471819779607736141371250822584633879345885865911334907305610594284599764703151947735804433780657452458055312938180158756478607526422075993275266858646825833508842759444690337591480724356129924808372454474433470830423574519555263920934395216904589080457334852701222893330078703158873320290815218286014280789262623891942675303668174362579933696136921929592411145355831459358157884064942108305739036993197053121961055417662550329962653743369216116331837809552224626343312449899243636345673698805562566566660973410162705528127250558338340227484896214702170477948552019644919607040289101270072882560100896412361324110250568037719364280333704409767235061561837563394540233942170573311278852939654593306660924297586204449369178415410668650347857515121126230362029219460048767577574035189450636699979644125317777121873403879146442370039253797452070723289012379195083764495011945825855033535554348582209194587879668499124848817615048964874538419449446665084328915722231358284658535262447990414014854275412059184771942206392124333070499632016266896593479222056847843683227913362690246506854397073540855856221016803414514490007118090003591626201343013877104044991981954096533748434365250821880172232944094932914073394795993130975124076097166005265835939208590258618426875396139646470585125587582419459722126868520452504955425526912412331775975777393440996884486782685659461880853418278075874825232526652727010403964826109352472149946106892488717505369286672157747138379488102831191132126358449620340250854325618166925644643186741764820964355481585117973791161632841016584805367609491036705366963511897371497309308622849883228880917821158245015973674542703577113296377870267167528135887300183234643398776163110561231467834802307649060749818455764197368726467950258113835682739023810962431273353192052777656820032867905213773011080156796647459871649466632893576783950482042763758935238227674315056752855114566765991626324518572788589787329742700426268157451583691730425303748147256587075223427830209884756245258641889630090369507677888140960424801696208754219057485181237979144634346925407521658313398967766022195876329605878730265587202306185208493560005747407401117858281246360855510385079267097790534997709642960470698811351935631255184467598216525370099582797577862018547992994175202747024117852841808612223273335846279395043705297473975983705714761073533240184091855991969882553347909386565674559029073317369788443343281421973657560869854232947425049749283136224034933035259976468827756640611950268368108364277828728263430644622741979208364687242126060299357316520030006305284482146591509868620752651446710073568608230688327386832551461250711234130479884651753116577662406830452046034752785047038415859923949948938172755413376405603209556944601654780390845532691036469267138287007243819699083792885941509013411582363605052544316928046660411782083295417213846731589935616290349641489499805796894331199451453367943946874141973783482848504415082450917509699090421847834466649317346393573123716962757317979036121333561155048757748759414476170439224873830499726802755014188722927864885662184236359328385727371809907932554374211882434984662271071020851441903269692712713606898755245215402874684496751114347787310917209409008034825565482209095558928796482911384538390938135935439632499030553622086003828203731330395429595934761838105565850872409494452677521549080014798404804603597267810964769381903496562546870904227066686903621983470086505003282846704891125234620329599689732355955035846505105968630484273995615337705152286719100951332735508413822523671960490908621481735616893285177853965039701036822092040553364817700473328377326582281835958307658919239439324427505489277480346281652721920915189756921722282897026190366471174987019382473830889795059900412662965737919665247852722179572617369456055516968396875488074538350398375600142283929831459931539600684030686084685181683209117024365621425375158253947073120771089029576653927389285429512659907967496750864650202201337536535073278669378579238270295605507339012964888368867858672976707443277840168954320012981423811998322674337151522435751139934213666028240974679924017919100951563620144381936248103708664786265885496881176071609373535692459046202288874087827585322542707930962536971268856777535996093617323323120867883640337590196495905610504340397715940528411128359603055166621186537858216093999765114293546616024938027093025957521335998762770104507207792384062012114498237995796806245356291238272822334684300797733236211867547050986448669714845645117936881145523044730008201559706168100614644163618531319797935172089276051875836978810436742854207387634649305489295233699951285246378125087609232093566489393948780355905069739567986934125461293596954288703118121549033575518445735434394179004967634624170096209616491080315738141272515162394232577683277999414750910671469422460478249328223550717288731824766580299429089555055594564804760831780846636414660566009173382909192150222619943121448346283482131662829668460584238054491471436147782456033176563718699889275980256544374772553472052927094378675628418827777536442424809173940431278456514074060593149958687798908181590998282800756537318547763568331732385542204975771160057383176409122959730216280029509217808039289419973988380823027521649477914079194793401231081665375036386464257591057212821175434176262737506437064379001832757365050152886681793373539184125683572738260526070787847998059023225916343668893979330460982825163633097829221775401216897843503010135689689531706181779551536697368224857206050436270615089353449641522626830763004733505078127472657792455552618434817675271232362189412984488206626978204491810029385634835308627961441007474143415605033179321039765758479388179932477329767710982095835843127789847188664686441278240651741738433390414075591502147782907025489430802502465375022148851087526564982222148259226665938077640174672137544853013744410599835307446833971420666424006998197977504885388147078955592143657472678142743920244637099351948051679324609085653861417529119950336892495638590907857441750933575838584374078774501939911592584730465533438732223411713440246755944511426510233963437347818391621981534005704701274362872960465001217845410712715645320241311087365516427612689997438568810519330420626382850961344192995732074265816749539231898641013492041045205109437142629344781800493189701769173813236165995681542808826374464900216165876346933454903757397133983353311131827110382742021257838811753902845048812691278901187033965379076270292266491402013982697087545194243337602183766030412526535941465361791321160463032051724935956737082321507193877627715078350104210417030303470658913637195113216163496912329607612996139497089293043876923638375098236626620619713023631144737274328992826764427846770868479990036065021942700225590656860594225988473353435750466383134793832028623366890038144689627144413282169054491870743589726330337308115410297283075226474652829250157315670923530527973413346421137137756386241839455987258448063981816986267621680173910520958948816107565532945716102249447155328631214385622637312965645348774405423169035001754202904641367595587488589967227605520489722715613921959547391377807880328301258340453250097285054349150705550458710047180956055489240608598897798757770319057384617718313340453084341955734495340870284421993133952108076520121509630102242878440816945831964040716373168092465382801067705512831585225837764517970294148492680037289575969806769191717017838025150811488136447259831149161956357681740294374568670608230934683321898737006263668689091207385022265342695877319070182538661876310799241048937392618855497511626465111012474309316836294802419111206646882007944864250957412355162956042102140147469683960451792555681754079535248311254488538174774375940544193469449276095014715146007726361250454359510694095057566499838960311412032616410933351671247074934788744276586291522698289063115145109051777618045663104856586861745844441635024267113277967885177117699296987583655831482403776524222012845398977075415152950769363401518999022207614264998330816104643794648120169220599251426070873541826552721142459346687912710826835851136018431580144913965327262859514057772113577748150971108497328386094865616557542529957000338411202951034480513424115859843130214279122818567557356202671078929061260204513267621486871366896811770318425627705079354612882002492175934865161727783509603187904136021610938445829537057894042037766531794196174416368816561515563574234136229271645125379179167650137736408192279373285199021891281670124911630621807381138896815753249696358542127360024689320590330102371507346207306588996569045861348778515353670186269030544612255397228674156460287760103747394406455874733468405914298470670194574209276363679630084672017943842724158863629692993885933773878620004951857111012107048085383703414904639077223148838721659857697512186171363915635758042429426158989877657807057888848145137944530779071396530517672994459995649649591135105597489481832493439677556763842351191036899221629999762223112724958953141180048056543208381292703751335199074820159816397709863386999735172923943579055375921930572325665564638719299666457704409532671354626282055371514284640653179910559069809470490333316109200927729212266591165622313237739202982332169684166861923709716429136270762530803361042580268176426514752955884090742313859913916953202955097842876300812963640825767913833979813817966146991795285270077384743853859934842359705822356859692353095192138995165640007723114371541242530710487530174109757658880197642414402316908281064574320419410739111165420110674259225560597110757543247703725211805336227971115398727146017646477784438345656295671578070212228760589434716043910340820271229961602858084286130013647030962964863384713635825589043407285120766520680231659471331487096523395469944225335516024202929847183328668690033277188879096804113359143757416524732535742571030423232662312966133565475068720397184751971230401436770199747125254116396336989762709052929892307994251472767981464970507104101628253789454977636224131018758444025534582465420407108072646415738520521780040462945219527500132118643580501739542772645255378633790834487558349038925071766710069091644585510570241984458348367397434835248639956739346662314944567542810787515600765327298677965270073388408259509290418268955203506953407910211753558188281762208648812128103954264773141719207489735221366700706338626991047831844856261070313731521337367804852434965916624177206716258950390185399059780332064759950953054217221851216260418394643464946069736745704634353627054286848308148187946167511112039001422510824439577493738320885176337110210537543584129051858920528437994495957373027018837958429287610285857422773424225904763844020583334352215089332568148804620872134853526112759792562448266802821916882871358655615998867793837125568187793117251052917353105109429293868497152335394595119136803859427313861958040786837513021659757610586261624900156893051300905984941698339715004240485862552980584143075942068386203988258847980123907010554284111936736438418670773985394000075694939748969779008235146577143372294396619720500776862459858843575623601504934090796587269110622165723909343818324708979145150526964679709874962545195661109634930428335728518678839227967816075715186213385145676494305697857646503813985139885520361141405976392379961247601631746650995919737942010850267897066725194948963896925363984982321645380807291452204662900861730966932955613577994551432496542090800153231914262970380530212737357680228855043623079536547697515272856707243145882078456099738753354665968960733470057815678034559016292485275056046208660350895279905799725616937916997767988896079260832308037931928021896030444172868684724548762948865663926052329462372074721967871007420349027469402961883609397560718616720575898455784245968138587674263903959246317411657706358664873276538239974396630212267822236686654031085059087523489785139886704353620515707969325948651550922624634982525194404718130445765924234189035036290593678535894781927049006386482983768800350329856462922081698610744933596444533618416956999493451004056436637761973053784679675065921155070790434978714418955858917871588889932655833647080387938367612008124256651124511424766902185852107219892197038747067956804294284456817062518295377202299802811966961513384330807670591122149244467411744045280224705032180810364483772199121757657026778147082790463952487027274924651322030136192611991329118452362002210385114836421228693583897508777445523365621747833730577597610177890694403080519140440031688851680077839179249494944022595876883485311209815249492849349309047865394523738898845620887839613493089027625144667893128000449148366424211771219408120779183480469707321900469357024557106741335905893847114573233143760614983643993217496785312973012636617738726670114301372697733838037081248309174377931756650945624806575026772968863146192898087573422567983994526592924093837352523240297007541142967961993885466204419368999574068575354076174224258753330842505640397315782778080605941203244036003653430914644666904570255398332172752327944200341168394751727654483516130315405533610426306247804362274505890430187188407647817685416569343781520459967519840681371204724538307358778541081747497981560998568462462299949130225819135551414460719178231384162926401054837657261588811699928640147368020902727502202988349931916117188446874376651505957461966014413927292981505784233587142616277748800968891405822154953410316416633339425597553532321009371078605354710165022290226980581688554803697309699553237234460822209724794718521200046890727887140374130080813483615393831089823170147165269413142818271300396550795242118023587129515348967900889121753629078944783060878943725698944272372799283405755753914455860055047205997751935887498976963940258126772825994260620926855483021797531768765310929482096992795132638655673453308105045420330361669021939237961969498174757687865947393947711658785267009562080355696169012338904769972795777105897590155043101211415705704510773009610040278896539648619281449977499570804604516274165124157922612721468290791888275001064281180738234251142363106111171516827261315037691756486865446390335268140409718629114076515217884641450500084633491774908752893504550920505735158788473727669355115753361173270115823722084557168915747648087150434693004978165027378226334837290230671950905005865366349472551397421469995758104909436951660542505035909769791985803319459391600470666678504878553899475727071401900691712141910362460808097013956177005503210328633939946166859877275905935739191292445980970300482401661131647183918808870351933874839703429861711782398207822967200326507825055237599700030653724239145499087804952526343001312383367988552254823651878269475493118964845019939479661693605551373026712108092115942278145601002059051799374661049534102949609546745456257691615748028925763872725211633523283253561024993558662782536814631699190246149538979577302744294550640438776998673754889796729132124929973792301000565249675705335941257919461182782852870006285534368667284316816023450007255923321714353399887213403126203210129163524648426984156662620026779377132788637824230156103072440354035131144496276296822991162116924176078479231501381492519990012921310788268349879765870727550170189207535885538802122278197722509684161301829714140345652682588575886364506927245666817599644569621393291665066504058598568235653226714972473634226492935900554415187020687523833763640023134555908544076269622554972574583649738913128586647543098613060923832752435756678520804664078775684759916056488632709693369625717577702942552461499027807289153993589012994826803440662797961002205232099462715987805216866843746156555332637018901462091064549435843110712113405385537237149721221633189489763130195530109357006065754570099348642172794357642979673467760565502044743423527239369166153411898568490940168618925489257751447649393082910829991626537718766688593062388696324440918377332344140607697168655075613823491761945479626353507178659605024244455510671074075319183593083401224915134853201118951264277196557808433155555496490135347584937546927402656339632628580822351740364975158404860582855774650223683367302169772318108230229134537023458841206455878695169850733261389020372339275617905102917772064777684602668897756861367147359737595419373830631897155378726455120209065462895553043166656342481914139200920344978411216126468175338816207763722868128958899917690437634540958917709914779872900356264864376531246100089018353694235449170184478967854289027289119546539129654702903523666382902449786561329549339820813736947446907478442609173053103752021121413565284372707406887680835523989882271308246257888405646500927463738495662866271419944182494900741875848065730311688613699915704022807755080083054750533053891066439174127868601150665078520541265908505225478820797949629942299877565362846594587790459894098018441333452977571867549142225827455557471069586910971466819288171308188778443635829975469108299811582595112513242050401148924299751385212561150335203540373693478352369030871889639368513811881328459864161436133482414176824951723950051697210030370814584532423368014761150985959165341430119817329489426871512324853351827486300338878564567783496342621705269332473643710150536477448784204210965140480170543482438214404377245727228402156091165180191750871118575822485539085082837424231064527776143258278211102464813922725304560246666164168200156347930474976987492933672060979816134280983411413564898974385341677090923350068073019781395088371939727376949137777198026059033206332853527895049666820479663829384003949089603903496151582622663478227659621028417517738400382797011437639272789529627510028881073991334845350608765019621532786004078672485879259917477813133830954369430310573609824581096298405510329813173726899890259615132276939107359577012267567244086734221146901489722034995812597556944961826263999718550010263650881687577413667945122203970455552213222619473807486533811716936580522481940653575785066890081779171729116551534516381688342860524946874398802272823684558334793112759409951315962926617941189288694218588164102983544405460885615433636211080322656158529444712281404734372073072247824575303283268604298770174572267879846124386336871237378769002291108242907857900617548348924438535693732495282308080230403251663814458533649114665132315002482992908778163335350925954981014754406084670993646537011228089964350818004706337558545855573821263854971903503142277194601086517553557088673043857205448781352826317527837402366055942196394050230957592170005321715351383401325476277328204140977364315553935175117052550256574048913426365704130733504124785940158030522069413402040831430665506111732941783663160253726523348316098030149370645501235984504736256538514248343755515566982021340734555361716176756018222034355996047993945476609742533555150452241168209470636516499468284439671498134755696066696946732657639559499929075356401382325735605010260819988628436067219456201767578645776312758794223435463227203555646066938423790912338058576470373779473427073686292857849375956706362989149923393495066164479146782818645602636520302356180983119231893073296832801280194250622914590353416666447934349975929087554941313014733757000381044487202631951614536158232431284063332383120124528237785998402549907483065155534810645878778597385180141835660446694796518376297852114521989226396505236911069024037941845756526622295756407989205497298338935707052796860556473143664053572354495421769794293869815661719059842529505173761667100775034756121912315438160479717182444436728349534689014591765095322316995940338222016892076863732237565729418256831913400486067492146340881653095239688179845175310270802555104128262648252862464960876748103124266055575103196227155584916951807907011374297916314109030981408056197280763979115833460188232969717922003123410129527572991637716024636020814626244152407112745962224720399662146499721287960691266771584130349045948547037941705682884739412087851017183190154521980977047279349673897012718223145861147382467365379853109526189106554747331974912427713334343216749860327980488876320355949673135410739346817139694405996697727629246888580086463405182554110876921371672289040037399299245312466365535644405971538866828984903273787750394544530804441064354513585365720137498999006636904002088397430292596807572174335406997539010001211232905502175153910497721122827445656066950107904619247100434834098319096463761445482666797629011242992683146319355114197961560132211793446492082467185615943019170287518949107620753730086217461820954918595495245550993474209867301341236539827240286969722361154342598923002465848387066083742002309521639617011835637809589457516105492117925476913951374278832135062397527594322154211908655287397929690534076117006668285735943500156111550217898006825395387127265412020840039423988380224046551092511108967219750962284860044198335284784948558479790325489919067623009893939945082305385195046074327561465512628511542958692605075014835026340667152543486776932180836389899867161791990320498208046097116084014650425902234258829471536684563516101198090396513448415026350897328778830489458597502605197991596412626034780361115614827704526238312934154472352648887776368197410274759578305050933953803388875071703540655465775316475423636637704574400034501072998643570537710086213228827477312009684509340363888146789068198225113340533006677395381237231528854355872502185454120011877921853747445464542772513369051228133264226417352613468448469646538251164787475943934051056384860098375212057097380057092555954153610770879797979463193077349972356143327223214829015757958284930774731157415048817241512707730328064435169991327685781004623995300773749501670657224744717818455137015233032933479436286526012835027763793709658042208082368057634090329533853912524876867678842921447319030775757092732130217835379260897862803909869076209179432272205354556419033546130625103093700252117946352569138035655336060109073397698559787218762448581604338841147195077168658388175026817611407216815258288586730612367190109345006723475241762832547378868074177996493067884046815563516062775497709153664973597395323709272938112814872018619271518190763657161151800996564796972946336700454533612245763273590649677365008529219760030637078815180475372981320212412385003828137475484748034024786658083937612173792707412089001967412430796329687557778616338357724148099187203557246558694441363420691049853189424740364112013152630477560817970067270760088757734110383935148470951935086445346175680408125396703352263002976099542210596209342291547328683830769651488612665234185165794545171602775036945694280788575677867864627985812682101048540973963823574823619454297511377407730655532790170118874054570795139301410467851453682759126945933635170778012055371517768227819827290390584923870018735855335411759845199160190217274309408794755553534168075103256542882522260247852466176769772040297661819324696661180482801422893635153235324521616698260774249527889972437859486619294780021007150754763441116457234002829719587572494936396931492005496989742191830084966426228160698870338846087189832289110725296130827941679037563232931469043280537719228374995585153725579685571493535785198585219485744700461455659485506743941460897923674116740776554311805302905455132529063844831403064166081051374967640786947012223981528886923272843972447196091066652191376182265972133094033383313234675182983793891755814533394820574470504726780027155418906988896074643309044657806537929083327796770398094479895506122496954614953012477554606851507890892434078751477093133825806510438059170919020362341232820775158214183107440170938793607493107810038402940149262864909285333275135884211776350571613868739611423260952979318331970142628898187622767702838795354520316400387957495568969491430783596242825011444480848207686548294560443755034803415241338880259874757069524970880240932806198120722739312641320598991860659028257512579372923698186537852843533481418289010141229409085062052487185275515366145245859430206828293001110469092642918167822902866841957568666316364901318732754547210875359218777025599830235958507387782111801356951129502649027322745821304510109151254064888626697790947526902947929876952535716971557053528177154032845511473735344059376865144856735231133399101808461213667681624514784600880515586819452064347125935009592455494031121925902159768645478349346370090903892704539206098665781424523832344093358534598443019649468800653879519637448336435592815527543174675609344432273839005743509119312452544921955484157644941734904507559526209546970700712092750974192454004967547886473567353685593642099255161487014645039148040206955341999502369604894483145088775555087935807621789191716517869514789756227802597089761136883071081702380661452301280151040256346947476204251160542683802494941185515299379936671055218149377599047182736439687054947976088945713396900667741906270335214328958494046113685509202536626947898029841391091384055029176313269313898314451504081055301282779160210363906079057705293469760413671472264400368404446348017229189342834211175831837406374357871366948538174186609519916757683439480528396601792321846765317166000651515522702492014407656008794960132222606160537393117267517513125306806686804385785729423528483471389964729386651037281265461407905051903391778281652266402339327223052759262118772189203012244966472872367603299274372678222165098768277636164310065849185999415723325503620587871585697816522045574295377216368562399816322403861627262449816685500133226603191435399520942121015575876254893533256390804706582835362644584284550633944856320482589212226511519940347732180870969212356558274370185373391074358629715372530295979736501963798736653163035702808612062593886001020892748350216448399767771007687099302146870759360842366908693059352208198363579223002019546748847537057072030891228257963193625667478021361898946647253773815327318325130474504999683227910282006468632267103911148280655188210693552522155231064306310597382347481462109339171309253490127264315752836106662219141197984615724285636087614375664636035604139902638179688623818198251912132770754366476518778239888289236955488514846407737616279125568637544560336992661788049081343576493356397480992587662926634758654458672391766042233752672773825907393414216912385637528978748166877375525129155384664899247418879997026955730177528259617752279350523793912798238815605192236256395478860830722355355923393963088552674911123697081982891479274460996993076303750310016628521159605654975500850683025944765784653828504262461145569031582822033738173596541748911616439249335701117033377625993212557043705800563554409369974990985343673615548728860985206981775740148665881100125064710595093478844208092532279441057256745081652979237609915452159687128272367474741224688517429024438953028699121274074627125103272901459428676078967003147440266230078188720860091195197392962125112533707564843737854931834968735118661195387448210930368067347388136843335799519862865813018659229482406340454782138941976415579810749601062584734207797141607250740415622817749657757035806479321135930530474346657559924052635481111631511963955208150399768250205995021851099329508952396019751718000835803596387625751981924633364677849608543703460600047921337317730696450057586042694499202832471185865426348112132728821140693784686984543743304458251830827646575919232605390324845145955448953960254953014423585067916373361485800399028667525953218088543708565149491398272013035482909570885262915688334931852135554635617747541477743802179643761217369280829241869929651507149601862394312767016052972383239633600879903788431437519794861228882771147234714401708256832843657002834290943556644576133953254451122127609106570342228882367297415265007370579016821770357201469476422902124588053486813258254629665822190849214144579240031687623925590126875687561040118424107627139170508064915059811528420396100076373421520612949116839717885241754649056807387037237808881402628068713040938287821979406223019630148238055006306900909669802833370054252704452544910261462191087254153078498620095987128181069466795170699415869179720500107333957563437926230539500024348585449648882458857907368645356882371698229089902528781940819415231066425821670025375166179004146059277118914515061757695634483921055395846513938201816039724634261659674409310647406216660799454385861123720886971336996339094937587210702391304293341574922258464240160144322832869196884344347110898132786148862763693586295825636124453854926794531547597169659151725566471974214466628002175011591472482839746786404628610260221979393208025379781748167975571505472967807357654512448634392794383288644200481171685389413663661000249124115166168924358309177635004874067731867638916000970488081934496095302863292923927673635146540942268916514879150925169833087167145419132755040565558309268211339960368017240089648898696333983541513808585939480313382635683731483529391775363028321836965631014161884129763637837048884256109198232159341315231142457699951317737716744687634460777256802885705466116824981392613395391573454917240990767925013301400194919125695767204503106294260463498762695132251266216047583968470394700248788250985333197889018457362089524613690943718283113649606554211629816294730793385570337076630438550422261740269703146966667890127890398665135571993719023057096630211388091844443497214931010648122480919168628636277057983482343171142851111813088901339093002891570991479793172889274179219714469346897833409732435624199230551333942538550126699989595027282316851023439051774320574437300014204822860227182370452408744369817767150201149814810534361376111366844318204340371220819454469781489413752613345256041382599460044991310863611306836102713886674168435832810178400892991723513797840166403099573990583021989503457849521469446158612194756285794496852430351268291361230204529685376469919760981864381733841765547740242082167330914900918746558817174854791132884077855263041633376765611582504930508900725839604427134696071036816973253617166285344796051723484015793089909822887124070716454382860685298889946196341616437437250845800166299104444594966853419163392029122387539061122032772357735922820879295816703063110474899208021960016725251538561092488220504186229074698739041741423914753279517330630461761454758720557206877854623283783238758966152464408748851184206381065078495647552977209212143396892917289027196530795335110304208766829974861234922978705026300242105320942452329237409935965130215539445881886134380451700963579195750379486999057922938540769127298936361502926002866637487026435431244296592038797552551448716833590151547426136932211225737618636660974927411248943336666583858276686931049452841915720854770712029226779751564317297273713839930586319198813523413252729895100355505001567341611465402983279210703331635748926200953360455878488825728656330394610158503452822063596900657516593389547030253799808420005370325879176229613841333535978702780343984710827345850277052413400683594071933641165144723177169375712159009859838032983082081755459645391672397630912480686160529394529134332507253472544896316370934482648283840091597149101633028261099008582368272303519804263981041695349190983007504153549128801426709851770004134197511415872128579934628598464280250141607828405081698006145640172384620693573726458114185391687655070457992335804748714208034346627641204496607370566631230093951183110124460174388273646042824616338331766140609272544444359085179476807565184158175215656051250299109095580915820858804052818081300530340920481329574188560086362420831853903102025969409915548684168491846688992767643494847980863798001483671469243673116775613820012417234693150995288053474854487354487592395431628100076914761029792133366846009245326990954944515162371138788590089308668807284752831550811867874013336354682549403941212510402893192711980695635856687916580941313463538228554321701473685254850553305292896200934997464541815561194621136162578190533659230590067870060059439806581423478760986838155742000304970236805068549449248534500947711726126418420421117947307731258826924217539258594641369847453816423593074913071221073201745806510767716618716107748468382478769753379980566960929183230317943017770151828185081487285444624694969377434984657408310577420557387683049542729703131799780566233501088373640986261163729735380283174160706668922957815671991797233027164427026770856721649778311525566726799779687219575692040828666933620515901508782802822818993502370304083477430795575802329863159395530535039521833905733259403265300938195001288985080285840165015182233614562519919750088576110126341374877179177087718887657131664980738696666967000614249969845538386606085383550893730237062511014176982970217851850259892302640826789651433122976394115708892921566248759507965069093453314883705208005249024215526611654995720658101217774728523996475919575480284640568078177807327157410441594520095152545257712028110435840092100280495642865903939459137607608118295941028225673193335002566960151277125263100709771891598534380578398014965505354691445718919080221859003052118985827783522239303292522313866931685577522712702273371076570019689168763591758525056589228791695668054465823106433539130881337774868434279760971022963188559054775429953860422092694986722944738011520717425488652750988704542356971781643863441981460318158683153494486369990539244500891814421668257844140558259857246115394636931442548888960798034300804848374787203091937549296110432230268479636662462479342591663936133773720097350059949893514425041273464531360851606371592743346069922265884263967011355514388305240499107133264250051814145724146501625607573259439290745404180891185453319255561623259484978146800827689236919375951337814778810252778470655156494616035137639141521423232495729725231132188556931262809614807844200672918669701468340393138319834276574380748203106863375628191301290764059374030890062481199393917596073173838329898943056630743298585138012337497944014350276399048076636757653900781197587306394538672002656592876595526163284356369942616632992430742645707018139748853600127346598252700907396486520209958869357485146813685301357455230179575424347606592164968095293696184230924774196733679575590381490549097656519910549180034907532548188495605791629596140069125385932281469153148777654384628632857619379512694279280362532368270325064947274538638635365196347475368406744769021970440560553415307535635188841175539742183401863945165378334094033499759063901499712483953388526573668303508953861538297584819637428312772448041537466221924924694538164455335188053418137662861960462602974227160812120984783919133049139604958377403788000545325557863882937768072681099945989466620689917634518385453600317771799870336915117841398206722301104687980598528002156257955100776002023978958308222496122444696724260882825432823085029603519259630871194050551863558558508105115849897267277754076989339890998854416392876359482764999971022269018142803334679556854528220920636222284807536671718572270745903920003220043546529794296264769052400312614382112750234617747079214413147978342074500033555258091386017258252092219988102238071125008706400890907563074817661626271600260788420822471945129887667540416321960723238522697118843149000532995662971130404745293074833579071658661982826960999126091261742074662044476168903565284501546020598362151030857525157890679575068501451871140648971661523895538768997214056064714682181175367046454503138691586552593628270804708615260800040929075597533945443316378797918388934459187514407740834073872455314997990907117112970569319167611076702311632737896190437920680017034399263284953765166488343809609813071003810212057617117122794164295536746904378974026408298401680845410924822259258263118653402950903420915235780278747629086982748135778049334414560204749039915002186482074268061150404523244064937063412070836931867191922339676686459793834851729748121187175010344675735438635488115131049710242960618623756418543275641516595092293338125829252409731741994594362851826555083662298589209230504315844763311931412158989105601129204827422936273060434832925414404581112282558810881187138182960212738310396741722129859285621696780431836501022783705695997775334996662722696847916051357008525076771366686732035090994223693233561026053769926212767407958349602840092055757389393145171212419124569611711452849737449667432908450803703398111679498433067392735234748845042290458320217710558409645012973265281477100697058270141098534946741748985957787026130470813245888984706506650452210424262847386786496683551981221320465987927577418343160434638432258216087694117590938444807992107528524701172592879894343644428161488156609443791752014584079525285490107975420737795724117153566449523879963009321000910722169741031138781150040571599122969543040447073509346922030386609930546500872826310290377351322745761106956236955527398747080524707466439804099322113838342240078656662631944960783325528946054652563471875212151452075811003142693697278310840009339012291081239093315745982852492360309968652926710290135316956603645201789962086512283293434235221163662591536514133601258167170839623326285218047956586172129878010760510375482673522058772348520348199855135571557666917432973825588547736065690416520695794340299904093448758678752414475904932153326656516755706602148659397110572081229873792202499257711507261703029876355117607167760972138783606268629017017780498884176710887653994817161449872647687692824436221779349722919936516161055858204782261872785424890071973959219679130941086625884378012124724407867836156818736542872167398894112622369927822389914597121299511499840433516334218202947177543335578134093614252941022041053202839497827819173165074707626315552916920883704777078056206055521304451136302364945358173415198147598533809172883250476602640965125313605947727730776108925526749387089475987063097243056799356597383758339963437664609055395713044250670297345456375001418901626259258830570978983508329146458853685993589784283544562017684414108427076423321007324047086702656339051191502740226830055213217399237719057356530574670282724215825684698239740011145187878884324045385836196828939761944486037119318519213759403293936700858867121390625717574568373369352448802059449453104046015882610604844637800817873299747539012023854688435901572464580759582751373946082402839865534722551317603907607246602444729180111403493924494041610294020388587142884269461731503809636443476284444763592015207553521318914384450133550247752471723839853412391069343042357182680874553372544751494513773087058758069125043004389008086639483149453028774485880910215779754034905346289680122123059693843773355214744415869875791322544227059683533833078886123147124944477250549918110896684453936154188608083377118328424780192179577196288221901587067075844490441662318490234121988799709775598140626840035900688854788128355390024119523290641655136652772035435706018316787779233986323455279895568921722061949615867002865822953919358825622643311203548094760461663159239789009763188181376189375783587616495864460320669919665771477953036679540474222276972788592262438071706947516890840544333605949719418626858603330343654392731576914912923922634522339766970137962399152140080948096705519377135869929733793305307678704582345462485117307679378231332197112933626585120825822167036411372424380242753721624304050177711500802461313941423575649250512453342478353297952892462817313655319644034280559333623763248954515232229933068906207696107692772064725535467118249118055342264077936656885335274112698245981563602232297995855703290127559858008125184316083971367020897643214788083182617943062453311149087510226177126487942088683256583821877339326332394186537915580449661523978792853319128236848627355429740190273399587802514224537114186221012705449161217593333279587280915787854836437289884553134018996214747258745438147656850937795852319843360518855697319787575085286739151250072428482958194553066732092570922297117382547503294512674422957355668786133241599806006165124731333554579317742072660411790420646197247438733850944893913382793018053373435475175172566372620636372493104340271208305283896515860910786859172956752027641903882924313435366640876074019777514742000919534159709625282783386999878902364312628652704083898911876196741971750613443636003472370193922844982708377461430389479440736922475939846784493163675492091434914277790189255997159782749069399193463051205246467647390498300047882690182331288533386509358521322625747341621996775111724434861274092535578140884294846745096028057336121931829706082084129031432222024749559151435394573114738673248922950590884529385923005158896175388845862204800832635828353302255909965209458653640069081133040733622892078553958422351409597064784629692134776725824024685377347289332492110507891652076550870879233191921246057224319715372785302343758214330008370621855335573026778362761616374663720053786134623711352053041902424653262282759177004125767925261293831075469202447727283965095342382927260399577517057238009097432703004032152893017816063345678119463795996819935133631243378639595265194855159289665136464007928492754830993954864478597902092939704254314892362950972157853821071824496831020471956299897023841491280873873427904026831460150953213870422729771356079366854706773717191787701262576825602192528993714387344729932002674521888077026178946068228848816349258929818432913562543176166069406980635115137736382877648320033874315607174072572904587882651184892082640344712466996799168408202667114066200567757713165922272420415717702875364028371317898232138776796070611462715125013301413555480863179328920428470610641819941543600762676009559288896532632369196323167622004255077701823634230035943798144056879031310986441120847494797633636724091309869701083895171916911585251489458420699220957233466089124309600375770858574430392970161027092943447881433961491995695577617525098357484753393440939523421372089222885218042466521939005514890995915572138964117820344181701089302143041308063109984019392557003585410884259523632757139160802108199776881343051469689711169457345201619852639765434243845152219315442324828994277688102108851694837665329123805896119366238798998482041477589125727453953140069785608632980407364727264517722569036099051746219473699828987098734299714460389783980315488139344679810156495777669283466821270263100332099330928821656995048469073032576129342193384629419885063711376936065980390919080949615641504718028582124885700698079357015476425455816960326041278116351171052229359141000981161029536662221964819336286185912279487823707029255968193006090689634121099364880010273782161674784789966753195264441496092846652148634237325158518680296771937415446074333851322606907113547633343925497645971118561619439458694599301514874859227616513317647307663054563017715373723884979929875334830854028769716354815139696968496984377819593253830169421633529244229259722244297017178890496633016256345248023152431848925771666581990290259133950617659206544342369150047003031187870122618299029833518740372996201975037327711854205138561725499615233222164110270158515068238970348928555532789439973438167750507738984467117874822761144434859694221548008660841938427175774754430874082895909914798267411599590256445781051271107654323833698856629058679666587751029953755502359739522946862822246579818271538541355534137038854361611705296186120398050192798712698667623680257724567639533040306771162850335694741601341524035832216989131980502025644832288626812573415031932634512049280180422527616944801283213142456626004934194683488103920986926260804436687519717553199868629656379285687196874157367435453664926124472639323264460640907500035900328647093167759113299252126730883590524469802453248255717371105236944551971124753018283291124423238365855297030278129166935562755402099146249134623225874228095811207186570266016298389496431797713924273754409862174688617345306111214218127982319271043602434486822735775993408908873846867108984577611894270595902016488690711371095044585262845481736662826447705926571116636154763635159904546939986054084819757503982338896078322689944822529609637530803825127786865213336822268294977955765438850996835788515094640688072652825075049805212448267674758945526486884915957706216180007219713394961036999901779255983572131808586487406797608933944815532799546330646593217331816180632893383157057618855195822264770839852754318670012289732409064512647471345543032202616329693036735473421061484531515492691109366552072981893444505976922041400442482958756902964380904507087028817488573038149669668520560217476025731371696911587313886985472779476230246486086879001734394431996835019342663179025635506962931876238804161319284577612459599575800986143907782488214817427760809364139375034290619303743398023633014221073233201046179920715667619904321250485612954600273643812119166437087432600346582944906420080362603161152087672467259445464582334012527135896512862054882339222638001366273151425061741389117392923058851716538775518522173585413554097357720580016827847698250678831318595418897903203113171250472202167496777317977985035415504444456123741170278684823867894487228563906493826966049147392720396366865423608226406180779136604605521267556173475065259534785355201308790037884908771908174898499587908638753275806324496971090582646800383033323711878948523449847127461376804369563714088393200876569523221854459734450120556893005135868752129188410171878884673547032743296707695215217170157393273129788131896755050422208629506277036579456624035249090650631168833612659762606839851461307529135316548402094518806068700710283226718275877825461337958233553365004553286354568263820890682387628112861701381916968997970332323532491509952386429010191884904900675876182261193864702989874472095282020579854419430790044971397543677618188622480579540750831586610903787627198038277983719909647726513060836693029402366849793135230996335014999343220376001170441025086752581726438452901209154600193838795773894641458091732055554025017263528977914523758513882105846985382864706619797103804285360376282516368491247681684437704182769449065503692118493435797890892715970319116268193396017344576645606146292749163407397354634341691502490374487706266194467124376535428824814158830581195267787105275474578755478502565900967923685976822191578023852812631161312799128938111207422544042089374090083676686023898890597148122048500118932057278122080443616820395470519097375464345294698357536230292899002039855365254013048675760003549147172597288920103891813834543709722352059031927636095745735055762128054953916812353266184705373079575203320842119136253441421766442265529750202569257741001932767510678114337929137737729031223304123409091233414378000729597181922496322975036290363342701772755007036820676917696963274521600809761313563872566562959480848696086178444279420434386230357269335467481947959402171352272377771356748314004572017683873502395519626260492354904763644643028501812833278744841786622217248127045825907537100997291796511059285420485683181942070760904273615087759588905027059962254735619037395112145257696029107695503511768129179797428116897773636303735706910008806254429309016304177120074204160662141560166968365996081892826518454918344201488244321069439215829531764799283823334933530210552712518277046947048213093262945307440101883783170875656408800604337942355903772028218089180429671733485183370725629515272967023386835878110473785090815399862725470732594448950768508116164519111131768825732707872983917896850038359405872710018822170159173690958776888613312910447330110073055102763407242251851063386009776910293233331193892882008612836396322503256025562633242327254169472265824757590628111830964109762985884714844429977490333211473682843114365582287580022421866836045515785766882196424848301262171831009976801413208546714924031338389614900060571991284006954934551757642409835879543843653419310807829580697065540449068022333330196280467458324528299478220974958902781169991738963039737481493615844586812659354200879504356622005274740101959699946419511139759365395405268384863684298207143496945854633930571524152808021298874941836215131298511093963341537579134527964755993992514811172440291997620710333207515080059662167084895322020495836895841565256096935746923347267201566112596953280252080878587745027836367776626676609467450747554867458619046142414069893344500384291827647638251372245131616390924648795255919757492102190378923823456179444694658469780856923869122575862550007152517131553648017989673489830799323556383221019077650948377951110818305508372456473003161260155257082454488171526550964164340460042572787697264155287049731302896689146912673458491881455872466895197988399828965769613343740147618487154632407317692565133328476744409480075281657769413776247956409728632243199975240051173383688615818695465850208199805766690714089038451978684089090461874340437173463916568095596479385956439617914109318816304010491052146220715717497429257816943459300275321553578688261684996079597767919758163141097662180561950621278586459985999027214370923390591638540709900870937897985674567002123420771953412936291179023267405672965564130641988869460404273547200334665095177780847515478170179392261817463336407828589228355318158034630817110698263792205305080999677214404269504251017126818331434816848083069827008167474352100253088671144803083584112661156923590656231247062194349370911046702576228315280445016827425879003004506935346809414503837233485464237473558143536863894068808187907222151551404718764495959886469597754805588800649738784940566155269826102932783640495830358349883980378830209485592980120138589755125979426103776561398804189467216832262816565833338541557659453123222628720856700680227397033606869951250889104863864115504693801089670608845985767485159863047144302843662746126593605851311445612352645842611149669414373271226113276831817059299691910385205594517522629875435663260863949130440788772398053682716915463142081936959561966397380708542171802592302977843753943668045008762441569215528381845462602792749368244068275047599605811525991921560226805594894044411267668599588548468269299203110990652459505762273730163458017048812587896594556555831436387353999534883230105919430616037982425750588890629384660510779662613644723632373449586172385988715125680586955365145704647215474969229098419281532219757807459000931982515905763867165894884535525638118999760537673358496509843218913471571702262767535915589789652213590836053751487565667101651415456419221099578187321575188338887260748251367758843146844600393214935564726575390394159342525772972473625618802461189002341479690854112894714185001970760456978199580116049649871602433182602324028831399131553206325645396067760144088345327247534359515569148589639210847151854224414507329616362335598611148189757336741320825834169607909013436553971789541300534690878206942455367194850377406657131588160646751887406899415656784497124041040550691538412100654905756471380630010609952883115897654459207057642035845862541635048231035226407793876586365152911342789973983259073306218480487642689303252312497787651316160810182827012143702983107611592188188014985329237025943165172464208768005766562871460872578260651054582798247451405398901161545739036795240089620428247996234145135531612017543654069574641992236591133924950537971151688693449235977146092354857599540397087664366436884606038703819775676526863727292342343247237367002150659197150618154760345802850849834993338449558906280873269090504717035967792975041754546247409447949030951716247894337894739618360233685106927954336827669405139468864154471104335937666044044678429286235583686647067895928410471818695628818640979550699003547234449708867484255074637452316182976040188293755493795508368599723989262382196683155654195806701978073061165147992948399465213732244996486576231142913467342593722391193552113465135419507477974985578682662604543962716605495855911691502050763108051812797740466381458887239477797790356721318456134787393954187888756900004592908580829940010922368928385303694742537182538395002369814598631622648956733398771247497966916970817013853405414577230253480615277381818107360850863974175291284641132473616755401123184306320632860549902285845928581366799355262799396341460811883248307909703342771199187917031350160496925814582445628886539085640928384534812049352588406006948160941141643968643360354778881592453427378382996354327149148754837772486808551776920558706594169845949588965330824348570813787984284933839146696298956240916519319415511567470050686695110569517428710183083553144440051009077524467807351814543623659525006917875731440765646545423054498662474171285366016386397507685739116981385266241745801027064843660296169806494878046329011239323481798723618370213917692389440101259090067179465235621393124689205418542333812956655717918924054671032797214013452311304433846916161046081771028349572097943434371922960388658851262762210762874367438836102628123769122507889560675311339887678317027319270221581207329259703566276757407230518540073376275615644557358843339461250661682358579580065343529927724159237577878118599884996676987536228827050823203087311485230300760416534221068058228442336159620591185793446917288472532170023651810737646458271052718829211534270117028164397429109836743999431680822425703226593804470360526981002361216757194201985461968799951052551381015174548015941006960630752165831453206227618189427625969202792655507343715548297452592718238806502640582973374404457500259299751506994777270251972258886062900023736374514119145897966527978949987702790432761360809817233867219005123417277459367835260439111709490400995191616820995778390048978670566234790430010644350798685328382700359090577225257161926304181318789461946604266565643556910299238764584083563557022122867918123073874546135479431820128468915636502232119360417730890128091780830188720055838881413603180453500081997343773262835521594333453845707710087797846995430236744325185997549406496144448491828405437700815438537091051677281166876628719791948369506013623493079035929251891195838023368068844881930125674884006949503279488453021251803211923642281501416642064443942662391604535034444957694372788368076744594581684252338581953321487386074930460121035061086530806255917702763581517815496615945338460890263292153650382607806689996012898350704935643621233497611683766573979727646208034048372405928856651036662430461845946322098532720469566298909822540966281429153016964518654534070588132407526935290275612501782109407596543100883004388562500059108513076880094222137365314851640171698498506506020303341256720993511667173108570220966641179776733557345881559510450704082032850793815785219553571345126174868727796145288416933997424359678466941917018123564163869778928034838231325497320339945795802964075069639298824233921003021562453690245457048607492019231216220520032098733312309922538020562218625073806081894030514472917982187384214130404491394175246830607739481695843044305185215596563414266420818602043465609150097740600665260456144999173618456038711155183266915420244195928343711617231954368309785461073410903319260738205716352668187892616260671145514067584632512045531553113195306113571541398663901672725140655314509296700846147275391623826066567242305043801825774526867428766099628457069519403847409522523185015338615117938206779935428565960358036417659220244554626277877071240042567175712669346055999353942444397238184769318180426029628035093249260989409663674911387067120407159758081491112943034601448671304633566446993772663338566644530055393071439869179722119508768388769757439944485047294325845698377073805504795081530786773330769186245963464601950264766958107894562052731278334606528796355800246821081728271400249036994149648957118354481007907753582749783289527389671380967352920253757285464882300863568010950097971537284986258147846880418372945281925945660710213792837854461116230886857312014293736352811117762125135689278536264040931179051864651601009865699254820929097197161519055945892137323175895457746035598584540403834658669909283168314977485929148095050338455597788720977334452783222110617638965478194373899991687122606995979556698220504758841628765301392222385473242720652576303723985859206991148076562992553077785779287998320556617545117618586760897098361647672502921653454838414824721239521256825320505058082606198333917150482797482453828288762894788528743992906632223972441724606446708841960795032636768313927266395376054688365330085393069397041352621422156108027208120711620692557542025557396149876269657474683827751437627152140075201128915458612894156265412117690484205028617956965390372350969700884180991468930501519942412682350446376192447535905446564941601272335398107755513067033511574247199907674948915504472202311426092716108240264805614515358197826625442369432909876503132425136987905034564742858449063679194501880306725607259932164724884162056137545333994332189989581462133040637251971976258111274344208809078894990231521174839968094216215092881377159969475400402747379051389274326919324669567768524342486739697357028142206838972128090731389988321429671375091142820101531117819850714449565436666065334839281460759684314849715176402286843836266174818363185352243045755582133908877722894384027602449325768216780581714233683339901772630460717844817413377512725864574653626079453814517948080259547473379836225323847830897767467824026837566350032848097124664727969632578968243530703996522028832670981304630509863468629205733262952943955877465786624250589776246334923841936310977678109698042764922083378727823867213480739207110273163153804491599366086537071279237028149120876638668812210521769985491315140887448953528103486151909978557322166878932182333541530737101290508909894725670513213593953986945729102267566347815981324063942064027928518889182361490265122787119024793082004201094181117161389194308300336564379317473576181135357735187281334468478231131150571727919036098609902661470439548294416391029066306277741024943117330823269993137465743449015015932776241498622422925583162710717880913802112726221010747026842579314872275022648669778796255652574695263482712615820266440486697156742973987302088963711233991746669172569106502083708885227840969278091924461454158690523553007751751490553232086363610435858970754780823055087142558249105651005131751839021474027522970825270292393907130146267379618897409477409753503100617724369097508594073050126066604942059532876665143278882667693292828550472783488960662998546419948129390048573575838674271608716193697457015253303696411230801209624745536118769697027167283885552270809077812083140881172461383384584765673136828248517620424737764195680546293893662403620750724112424538012028378121866852611263169824530494421592956882282418284956277237034550522432802844802964765521855875346904032284359016028562679453644395860138974534174555561518623954293931046699070921901490610821123047549731513873237153880222691595011396221767967396490164449795062099269151917260387258693872792992583239027202037882235081553088835499910911180661583417115031428248229509353845792868770174627202928774815197580721789502947541271450632265398486513495690019818215709985490383265467918977646012595594569592953595725828206936324946887344035697145150257461825387338307740129226901439344564774700589630451422958920202135375411958996498652078071101511366217273389754472877964268619710270921733244045153987590832694630614161769712878977311141131807928726146842055796435259927303468526993959618996326892340229493764567389478859586952653048423855439780503781741615344441409353794134601578571601400659450029106198656964350432112054109140211485521468943948791045942250962354751306296612724928451999692283525626625107542164825769542429822554149389867767225300900817763322854738021916828407837233308704474831873077123401998584409307124296479519741598026003631544683784755262469285031031529410488889900457260113689749993057637364631963090303660352367517806509292172072437287075360128607979139697036505327193574302556210148288757737886369420943700818617797994167736770721394308828974661231450565450088283459741661631623993740648748949735200007968288566651806692895315798120195893793714107151834859043675729630364395285716703290332148939993168148302485500916075649360916714342283305793633425570541467485453312212792886651050414772509689203204309256151012496672120442501384152841635249035109636797713109327901516362898815468064057819992792628881873536879440808908176045991621104219578716909894696980636318971602222318955710542028470763673385251037603372506219341556129741757377102141417051597532797065860927241938995730942150761748863822690442659654869662064289050066802010347765679357989746796642650373222079159555912359735476304204588272680595307063326628395146071671176182900687522422276652944861293105963446542798489881210105191070339544188507903465247255387697333964257392122539023022741564164919689691243029425067605760566080473736550666328446583005006408111780766061297937000178315407244263595160302828445036018355478904645328802427936758160297943943924472268076745919885660013594310781541137285862334267506125114316114106710045403670976386807558278262628144796585825909804421387884066391869454063056696694631072801147680500693490292906712772002057408182659823517788547257198098108007784934120871773674717862370085162859224449064631665294581701239815468910342727245836897460940011780608415076884384323615560897554983507149789268077749192173810014292300197290372312741782735448250583031306084269971770701759321803835907499802434140979931357871320456326648258463580683766105801189587624880488252160451858101605413107071953837533671511498651203922911992503537468918444149132541548520683166371939839843524281210208997476264738428753002681455901724638248842213988782520146027496679868550320621125441072617905942590157615405668513096486930881107149759337286885100703591893155101368472463440532969943612832423372946374988724896407397290696248060827773462483148773653658006253409178162621454311897601454925044096326113571489507530368511279124763523847657291901940514833195015285260964907656132179682355641383135654918704055345154896994059501457248498478393407541984635280441445263588116981210757237595796326603478724370365280430362598705778161467678553159103488142275570451842423890881149552384697479093269824750945275599558164790682743115274010623843320405377485647549869596309423995687898864360881317446315800009277596334544653806917444536881208597257060475204493932422253914975535700298372537031124940567317280234986372455944435566856711016136092039382412887941023884866084989105656506903779412550753656071347516639481429258693328862764112873399222156408327510887875249776139817180574570632365324075579032760175161460514812165545771038705630387003038372900085847085848051957237243065486661247398882083260698613239577979912262660440469842724279178156922165222128657820247275969748519966929740987134229369011092256936558139094445057530686735127162612846422546268021515824715495088441275265710467940540257677384955039898988949958219649595560957220028757350063861013754398354987409583694713689274835369048154985252513410752801040501996702198396331087821816304550955116776975091315759831955398895319602158457322755941853835137782256376137630974119989341373426287571860398659232907935994352067072947345967435855329299506625202384057938532626058445273839384435514547206829727329690341297127393531515783910359873155395381843963819691739426663246027278886127091301624580999348031671679529064314286155785851299166555168557042945215602431668843073051792236561705130026903246541723371035922640079434804660080196786164612681832377120459117778777140159135075869144068100392598176743111086822858226118783535792270348459553697851465678987337777094148210336162637566306864767348726083947804744778743062958458472874708286865713241201174064226564221413586476181135163369856367092387267845354425743411640814349601645825227029459329218084896625535871312849016858602772536158515698537484879022683409483845198846863199183391758273141629024122094972670372300036678696126559210761657191678256715611597701858673494405354327427892278344474998064579123743128927785076138733842224004642745119991870528879457806225319474913352704784147710976875121441040913686923911068735807410272517466980939750438814196724715549020147993164859843779444641707244462667447917526993495016504053051394256793898760259806487255790539289275385169786270247798134759316412507526867716007253258562786895225000951878354583517775032637009566395321391305674925342136752754542852582013548186698315430092025913716149279942325476159299079854277705640475966197959005942255788452600022075847029931934607928345126619168642432045885137046427667384843693939317653677692847767939948274312645484927274613139050053092658463922587718240470644982894717985498870373075759871647624532150495306881989501359391091885813034049792921947614810388949646107063257210953555029987427453342761827573775825281677007718387101195459181813897144883069258621324482843689033762293461793011682035688524502070359109368675872735210217305443066457805892972509577710111911805143905797971006193114445056127490476731570335690125498438272094577093420393200925567429704704210154108805181952105544901321276439700441643798250109773693714039367102162788642626086270641437875041863307232457425509831343613788275472961795745938738447057162031045497542214779355741384293808945953791820027939694336362897803093196333748277191736761525409979324662448439423601651361667583891016392275978117128060144688767874206178495420348616411522788246671863476187243004677708011298224736758147105628872374045781946074814357163681919014606850670490769638510019857239168666207854627687457087107060520489583205668865527786307235266693075463313875619922502039906154170204838469304463793149786910141762895138030719964383090186373646728800051203522503174074556554094879193920391278864338782350399452623576916553062310184834130195675074800559382888326358693001484449686020576698091752267525794424814561830739646715466253979828678410808276862935984398467121742195267151047370546804650707897967672106260983680537453391170585976043404758508045947690134540192038861978151037802064895328891685742525252622138521584657184115252683346726293246786423252903553019132026909355406653484083981750255287096245319117536118619687855859428689556264205883613404572317484328085067010958382014330285437396977644641061561827562953922886801750302908913349098058449708540047898550499824999995921065890128683949643887445939049391425468319037580205096634436593179505184526395436988061757909989741238135924320930516203964789276632970308273802998323562958594282270471564685293525840567582399595789921065368416677009295443682312532619632082400073282925237842908017632549870253927257689635801898625256202617628693786435839403588012409247680493214140138767001403048839437280481180700041254335650251490874423385029103296543595888081551733193210645068371736539048167436482605470889191978782814148403690004708165197737323043474637543402036832458511197676058551132279467348370089407369416176851254761697427581686904240987610474191128181286828158282693891545759107894478947770713702866796369051957512823068900532515947557163308109840495929660023867362243199119775738972842398398121846636726087487172684462208964635712726699670017704326395711551427067574853296963921245185974550008896387956276949497582214102026597496172567641810363950460594586868389512597345495520185317241927920466017320141812637868396383989341332739833488873590131894656340667259769338927478751227219382564226883049233947705840956192819061416338641807378820235569980944982586537133053091349631978138789867970357552101045958949002480128163797094693512966716805646038908901668704699121103781441000076998101472248824279812458422279521239202654450369404792844245394466465241867982892637659877518249194998900494672589214255402492666186757751734128284620952858214471443940201253143837796930448958279823664216513096536198531344357638254961999599263425669643656689915874872577563846686220965116745199956282488663210811238032597235817210474137117518639679642679483915704388977145931215141663911638664466869099708952746889290407799150661094626516924951059239974469387649226588363474595810583265802072154472832715551354157974561810097534415785609847585629783998607307078624736512236161318723724142128523229266529575296426355888805406637664275234996812715560189400465440768355831542173161367924254530924998189574114146745283802922401445823550361761585749337225389535176701441506124399433319766153324490795448346263909981789580546476494763275752624610426685728917661956815513854256851961733061123279904545903625336229487740321576716950634759921349900135644620672934628289632963053729317286261408248796302858458309081625057308774017260921201360482873531393490691389482057157020126156904654517154635759459569001429028777776376968218086836225993784256500368420509840033683095516811358905546132737515719204770983477634344662382093236203622164288032193194864363876049869042327005495973000083066149200173354322923082021837830160858313921083359318873484942902412395054613435085422885562697701517411808593349354849785310344452884728288373798996815220962874977682424008124775689359845091484631682262754667966772068419639052440226424036562107050441660227735854586513118247496600289886446590609904460626087316719453486843503979105048269325318120741472179206787398866401291819180212274152630562694554344827533911764997649473217970147817791810788030710770903887481349215436634302120943322510142306897023310536804982656635110679928440655468369717400249739389029402659284398240435522723451528877095852632470420419575544397339763612020527007882721803701429832314891116525688778791259971891845177253100637638807851800065646639056323375621185425284449696766932672465777902203135701613643578672532540484259039135962530332614686178334738796547709045067324851010555431769865293371338420011564579209760812962756408766844408831057228940774933772199371042300891979567509514883708699597073310615979784055080701489104813833927800860538366398597781649184569374637113204978407898956371760572748625487565746417709975231799386432719783803446006857197077156832261031398182064545228383402159810134151324508643761936853624528447131151903898267743349428913138317524056627014176241263449864087408197670337343166360401568859324756727652973612454281801422539079248191312404571187290849037830682452740387610888766270974180133381589757930985204714164156350679920323325383151015279387369462503733364097049108574490955504383908978968345626019282337751692960132240739895569454177092336004752366533044840482061200673479434285233962038610688282972776372049578642467689133960162430274353494588843645090146386496869442987002841624173673904150077006134099127485228696282892006696173407588436266082178518485355728780628915464901198617745393018381782144074032788911615830765065399397450231520644927080534876724468173153194091947309062526540929552646893848086487512368302190077953692222036287208109700477107318557071088671280434844590559206581785341440364237365135825799144331041417102917708110487814380017224093706169756488070619760578347678081121844904037894266748739048570210895344494587582891127245233718812026570475266382280573055781361981571450893089815466372669505385492768375942302061406920014351610398208047894908149346728122859966925873996190843514312696649797028183761864068552711995172118548048173752633286796497122617869348348902309352601496482228827945861891556925891628802484782629715438157690881726249062554758084899657009635247916021658011318970403150088155555534805417212031154961167147203041706176231344604833185644803313343444007317607221629692707248649845495862290462939629538491173380250692802479235200622237408491875903815996939596966665752481589170240104659931593906998247360026545765913838817908871613691264306909688651784752966594292572924514684066059970474775419291360977612256910608914630332531889339453503265961069031880855930853036175231591136517980683612394423349499293308685936022028337458247928483137856603381767401735955937148118809881841056130132983885136383491509272102890025429960010242799932079582028532478048095040963750431557660189622313706434020326028575972174007653479795222080731091529040618393281388578109132659677680093901218740780013890429798104438128791408095153895654086539385176583808513709145097312926709113725483484281382526856322128431917160873090407369100949906271739267631924375696241504160049219311858192026284716009355669883349533048664919521636529645041947512217614809201534081218637565786529565528125261755654352827941110252650720436354924204208099091776246654174161197594251389083697334781294846330002384385911159685068964314514473052865593448000534362811280178373251199762481775014007729500042774789369961938518930027438385889537249729742136327664379430918352468076133820383134130123939007136458939957782360849373749751444385166118017881840146264635284599842259277613430650084900048114327652333659224677952393673323936091249843547536946930042557703476105480391560532118962997150845823050780749852259943168778452039884644655366342780469042955498138961112727673478793025675766622319087570630796386821122645846453632811045155526345723976597849226112208362024215631605624270078995182204087939603982578241616003723994487430200418247695042279562445960387644346949312675089059102785788776620783601528179367380509908768515625950482469899348148495157210891036530456199097989203276945525052609990842741097546503246129270616756993837468296715729665902407536387114697317658444942109230196555343422593058464018575429430020365332897937785431941029240735475817233823140070080210612827214946148284864374025804033028460741698521638377913026568758936688388493101634630246223520335459669690046145221652624661170164208426539502632931605208181760867492308597393551055040843120668439748720412326924661018451266028088357183549221927248368791188264821862275654301567788498796102538089750920055417974781152564774060122629543298565971235661594207873493853841185836735613664232400495265499319078243380235293240096671617593128259439248698725134790629868562422904882733667286847313407430701244650387310624369492977252992527615700587782271193176284076649124224432966931616894789345459902183782773777897208596970560567734474511156371312945040621150368987958321791571816457884081313870909480638491674531861309999315133783195419821233362648151877226825655897832786078744187671933237997766348427101121580583227169917346748730517891827198767728944091178510634166232768785909512436595555606090780090934478153701067679639066232534179465867099838571179422197079554517513660494205367032044634029162809744718390049250536484881203194768916212987364045050887358581853412003153436400727831814587691072703857891199567876679411874827440451659361442858925832622965754589517921159855388455148262391445441104208993800590555321972446928449339301383421997506270215415151382579875542800236287102201455195400521327348840164893220578588272637268816300954799579269291248330425527423462522707559221273997027907516516135765598910205828639264335473070389439241554750039079397225022458819070488685863236336917228201543794863095691209380580869680241717211664152084627717285364914220006670605138374275143875090040126539868252546745273662255300531168169022438659584485301826955590094348331378534456989367138510369395209808541509795029466521294375064751823072671544115959432539355433766605484541905439853687952531184021979467569069995100924801623906524482355162247729806357082040856885974481858974446163175334305788709065251319198424846620074382634138675550249283942799657215553677207589923972480117645351799511556312096340211086920784168624971902874528193648973793161869702330474779752722685336062918808833242311341689788981486304436507901863780407072865131189430927017253123086101016630042109364305111331804899998928038781585748991976876257007410031682832846189287944079790412160968314716310549405032659098089879133956768537663773137833621844789376895098958326546667885370363781428217425892884236179880079114922412788276389643123897826257246275193619624604111363690274603452700695444822475331047767702617042727809938388778636457565340335332357340891892088548460405872840888409312158511041025969503413853105981065246973375776149613140494922316679321973178008428485107400170530653894429063008074488320075415473403016260642227122681255040627870284556783444719776722749905490407687513202524023631261027269849482935853254273225176886622025273430177694687148109883829361081474836233842121774854663361841028708412895162066718747804993336554921373000081399768717319367284673453191759236240685137879793504088246684295740460637697969429715684296881910609070355003473955925826935799839438343913995460272481843843488696155140008190993442967725625248928802119817062666072037605896727139905673161846022463208811062727562072302867094482873713876422748362139837799631354388080567835676634627550961649750176908113298703563185423371843819314498208175590573291765794709524240713657344058164603263608294572529030215826805105708352225924026751590287833216574762206137231324234946576524097296964192438657185472849912897929814615970295603136981524801620807936614380120277490731829565944146964323222166773487372155270915203451158834709529796754455369768951637430162178090161863934601539860757809505053653691385191790755682598164643905956104513981544346196417523628555283983397964737400215348467007271410535597229537853207356027729039882886053080815688895715506097523389023693059372239899746326502161867637070161418489034362031464199756246497907776681556434701228052558706989642979379046678994577966832339685667374616561278221688941111196499221565468189241491406162598557774391483962213256477798991809085721962084433499843422310206919107551871325127518832630684379957242144096276822082032861216554780381358328049756839000784371731196304914525614933329416335513880523263901642504893151434297438990925512234518009548039093938769295826368260266634756455204864133096715183092713481518418022985277804212483357754205497224105572235779176596047456321360702027632995961833402610843697035713742800184858423655338587990277221587348737300297891000445073066081172306978276981032734807040867374968179710574487612527753475533555384737100241483904900849108349934334153567372919468758143566448120808608313842426659269965977509642644207004070143679162854060977878205018874678452829690010046856135077585090502215183118625168383736028376013742100644346197908947810819914515929337285474372195142831122806191163040857501811914647981138702379533443123054627892254322358033227342991975890198070524602470645145286882607411497490625788596967802780427265465482415129769067037768713802928441319648977312934623179952518468508551766608154718540732948869476804131375941356175112367053870024989678266985585812886350291941282542578670440317754462160115195904597383539580279044875855240601333075651264406293695448938522708707981571886355594468570924487187141639139466678977917584726767028663654951296129580865961514111222678670461086021919732614806260450189931254428708217787456980592101681923335243251996737351175171949314809932284157517665498724146676560267299412839031651620153674733131783471530214122730563451065082819531179234347537779253398713765120759095766491020436850994019116626615855915281975184111665948437695265450662345780402048771650942020928979698723355685634876021501318692857900057236604994230641395035599189872197113244973050091635146350857132597357827401918031349390643935874605307481939068588465379609448847004478976430700305264104461363171928607982383018026280686215997698315266835648680273522017476816825914880988929727026729660130757179678017183864082257091646455102652974933748014984682239658656869350047498991605191346995314966143151698384587601933232215118133747454532787652185781120499277141019162469171468750496085373719248331765943907858981990504822742309394077045984686921425028909920230584279118114893865085018140321616755713855328316214750709774441446101752406105438162819685553652846542059629075506847608449955849714013797979013044429651790093057751584350128547679110859037873109642260639206368508699381634527947056012591984282733105489572243180311853251948812602535326751265682521128481259324301817548174833660432246690445239413149333636044592921384508903985806622119743552648815364879815150368529661964502579092675509474340993234518700735684354060373868703905815262094002290353286751442970080953270781792437951394484005072851665781167165509753774658686617539998980524551890878729645356544935057766777056789306761541387327041359536497177502130766880891959490971531039756096604234206468472378666890095919345460776397550895760021676350630598759672598053987930158296018300748092000424218904423404014669685623977423066907097560993016385654515129025992520506321390371395130853666870581554890096741999295094892462155976762354731158349318110128432528127533914847462404034709905515450700215359839714020155539253774602970085761911131273371804349205023348307201641071788669944560338964615741754920268663934947140940332964182013429926219271130288706092015586020223644978540239242438690085625755446602786374051335773123049490378113209962731166914680683855138903639016301658389698900868152619925934189417123062146500120251154495081167274281821310586532843158376171689358008477624310415887803560660643680193430660901602804669824970082955456197399687063225241909688777856046244739963564736063683739064286157224143500485505847366760522954323299442036103498879546700560227926539484743679690421812805164255756028061426851159142933590421398513311948889863222607342275584572297790361784561735510170003585744120442499080610745271391733737750194465354158548836762095783739436419751484541366700025950477129148668563496484161580093387441954870849527895194484456548685412412206002385340177246177264368003539465650119098930141580113029829756236577769685065231547902642538402073690495645922645358341052610826693240883075995928910133856752179548677793932905713080368863627352734443537506411742419583654204174505026114563875350194242972653115551312577404300584186963203802401841928754527643901075772391681677337350667059593070682633793966802185603270035109372076085981756860124520703008587491079675851643586317517860394048697915877934734766163286165468500656397052346390904111539558258381232460760925450894078496976344369846061087102717437573013347377590420959338041526818875593073424230059601191546485610501310400243077072243764668339193305594090622349779776027055039640070145116863357385567754680785290321107305482285360248800860742062513558965816628276062882173066389624595441512790716788205427993322043108181812332967560198259671452972529101084971503328171130544549922066089804197137933606288532067759278856029783198227062058843820199750562899706913770126893832747006590995294786098196351578295031564511368178748087775409547890056791873692507526769046822921304005293827753411597087680546100800271369497600676642243460799702719513029341502133813129580034098385856898017830848772068722778946560357274046960771713329478819086709019468425214715403192277867828605216498525612814027342368797595339061082240820933611592397005778048718529477782630496865772264804441013120790062721881340630709305976416326312420107770493265257777874595519877037707465905178062051701077597591961187531049895400100018691432107267819599902278637078864360520028773423214256850796062076797252124085946933736215770181105070248130453676947962025680832810553305043910888211415295162274497690984549437414486159172243431686541475275983641377794037170368878810792158165212852019314367852240632002590512151877428952653446438171129436838915131432250326793652236018565415794106210675357012043911190497319580432110814482855406844407474248636875796209432875256856997944663062881320394577186218578948754019463141870955826467169669406008335173677828004935845986400342828697004023782454412330561659629000835398048335019116342732413074529996601020567068888762147296727520383167195994279506261783556063963904904674117074779679046212368177494382859531033729057818309308977744974868512691543896413246787526005008488244316988030910069491260618732961631467459818786559188813908805699850692210732926031769792726018848500786003161604406064955623594308556766540299900381406695773161081640294522189397374314535311113898554710205712527342864346997864913150385867611210551990617130237112503260241378132039764209626291666546492874889267393717545624934936058623211954418027864125519903277540254415208012355030406354511874233951795249739078454660075458738592311979645950543228323714803519837895770802795818014010449824854006950279479146960689422309376229635353485480561470386520044009480410071345300258888830711103111626551556469999360261416406575404924621591017616890847638273267472309883923523964621288634257570554328125593116605528631601434561364632603090728237004815945448006132547845256843579898799862119798606311069806887918665506167230902459939261891831100918488836122819262493611247882529871235550032835831342558527635262018911194391475188778938787322036181443012623064235815148193220955506855771770191378132281621302541347118689108533948658471732996273905885126483397776620355901118026266292085082764399255623670475139841295831498299627629315068076280358503048662218303688581134409215290729975665003583014958991145969513430208985057627331948483685519817701314470053096179034379614848009035712799389404234223443360738954222303060074765963940501609251291410841614064632339932129784212455741480981318683184307567694750562692753598104986431984244889998506259723996892339668897272407847784712458895669619082954838826610574859782117986367537047678823697820160330301752007483317737397400547226727908007856884916205013397723853197498967449503280871605867767841701058559158948092555698696410054475741141122241125804972983854321393686211590647244555808725372610211809570835912001484485887915769847462601011919615397914729009708855452525354138204850769938962542388648190755266169791119293251309695119346945595563631124802154839482545175275729156099741954850721041424546714582629575946365354348307730484994083222681802796803180439977769897752018641908792897219014896897747106143455024073890319508903589453489818710084306075180671380796565260729355982313263683343066042735711322902799265046966492703642365154522753571883192696142759965133697485805323342608950816170661956946850368948920929058591843702325622190225521295595409639359070517392017196882845086192901675151788963683697824040874199175215424445461354524402592308173236621659002113432487728546710218994020630588702761110204812415233118877157712002844433207038371152344471985744929932103630664937628550972898206862434152738762870649909520156896309429201248107979194471371992935483076993475446006029498136190074448462622903929365346332767067313852975818297351775470038801980234203085900646239680854273637002634949764121277091075035477772811839663454344850379012228671611680930848911245483880397806415353622278212131217691078950530668502992549270499250717757634560844019717698917770537951742638626651424469788783081892040325637234164760550806159687597396967361745928840497312798610567178993769757008045933783698119620933898624133876989449832846384634614040111630972683722662751347830075720161255346228809641559047111970172884644727999966452895532698157056884669566646614167994166069472822461187547490587180593721056659886055826875108523649564602597314108570834461324438712947197397548168246180096636579175557275066099094995003346530766922809939724939210251876918376504369498909977136068273021151292465815390274187795305029003435223320492703475357595083338341575305430847555596992031086334376481494464928361048118036402649274412170409608343932888578136198636090951225317279422386932470718996413728957871007921020137172352744357437598219940279519776175980642436685160340591430985643587675011851574007458924866640309766209206185895618369239232622365094258976284282054786900875013750211858633183750456635309142297347972500578986470549244078735380618093964516474850875784946506185247963057215015096775310376703954795440343684801956372504282777995464249654867574686583911344423088503543452116153695514530128461741375924664450384109720182704795571018272566032901020432126533901529889444608573505178238503065919055266719255967497499524824389071852819042761976657117439803236345051537623412751297489521708453984959115264825511895763707230765347700687205751978946227830473867931097477307922633365202220954491982830610368688108473413887171535111358904954983874366423533198904613852837921236549855498970860948327785150648612120341786334198803718227306770273134922973871656808602291982525735941066689660965949285115402109236813893663968967636364084821069409058229195747839565036362614526816091619747650883383932100457172277568298969859327395354640344844495518265836232377979793555965681654566230988714477279189780768809712649045755887891851892256024839831409447074316054752056454281755660877978139805815994831967229216506845930852656030594015849488170342539239649730971178195649697601810235989195215678778585663191701279961673986903749322269203369438166566204261171856019030121907955663568139283224581468335006369366939090389919608671709496875007321662010480347537091068999287032790633017041864476608699765974476800876225324743988514333002954085552444521291949669798600143065176748361381301865088098212886423998922910052225550276055520070578815274920556438578574536615345854088292547488803012739117337185681099454829106933859722215238679949048110695969162632912390678884709088218552919088207009312765946652698651104084531436997313562097408616974492916397907452660466667290326506341834913252017207975394137844848205765685349430207816827906574262877428274390267884631795208597342202893234169717685095465793567778133835725300634877288904510593159402036354903107577657155426824901069473890903468476632374749895967935846968691791043567345623326893373225605153626123384357730543262867297509813226533082899919709351126937171215252711449702166999289644520934441769585493169119478657160008545580027505576727167158906823453836938439997661957015179037200190050033528083840174523100147651585975734097602888155536655505024557204208133048440261123257499969634032132044542875119135453959418331447594532814227543632937855660462368030328177672376635929717335972605045111534017936595725533189613855836785608456740781793111836815777418219611552720333272063820810547227140336436078054054432530011671062288198242849062209771689683523694131738652161751989978244141341433768644187193551971489750316696490200408484247083011744770243343546446884534511584184555066742382211411156223915506623790419499374924690035289974733042803122988341191978652351423229351506289675119672857731846979733021025342786905150426237141473302948606671980791219858371950362853317017044142345984732974162972013840210590681474500865879055330777371835128553843758843963914021369367758201468101598076725552602244857251934362579485296312787118511620028533572769079545191104400701759301749444852188995369822017962388667248055270345113680077435599212817254125634438828207399361964556863375171918915064583007560717364511259015862682752086361999956705692766749035531118658234953739270313089018112389668458875144790357329160576461141541217005923490145940584617030034622903853793426377833500495983910643224112331949375376108850622886327388213316959602725627280972070048759086239369792347978335676914817132984634356599512960777528849104744793147735135806942577977534624630286256936925399623510429652109740070546571970450776155783307040087697257131125530095944998079469624146119410907643949776830320031451141300200396258016152192621991217073257735904393657495519581366094337431357919788985406042806352276586551121406809575129999377292938323287049432234658167425452827315154327070497647899614824089672720723598320648630643339733946875418672986083917048216207749448578271760201104788383486499232360624489323693810803656101207394982833034589122724820738887673447047801050684763188956200494116091260820785519381982325015290651909799245482319874234190131705094260491478232434206066589813876149492284975669404032714181441065371447887837674744824904328342978685900170125208932854567312956728717921789130822257842226025558529450474745984911489530137513781527500860858972740112568719849490214465673517176476432051164487335279712672220472008201188931016565522789243956524055878321578074200583783097550932360007315262790051623905502208483587118028920996557159040805633171714768807476854542124612094300131430343997222176016540592371901704601554729147926883546924000564148021769339893010566378565581702560466396335425664440142861265894442605559129971439557137639388095111045371524449550782169962281200610328636526212479888939686946334716873929119080926896370984542109232178516499856868940748182803760506745637319252680235504365578405410425641306837301375102191833907513826739514243412370728254108304744565567509645977837606293631456510130374284702679410491037859592988809111899027084497109782488372530534566979230067261491522624496481008165164552462531956678445943792488055139968204891647204623953700241040265503124197015088939537400872380215153698053394965764041120793264106410291222389246167658812888141011943229328654427535135740258965624133780632710210250094305257992399080710264413075724501119975148783208036095781107517441777541245474530910922402367419055196967797086420828102512481610888465146130526625004100680242441108365516733802245649691889116170902662720022591486901454240009094528390121467316537423007791276155026752809620365651194432944879799870161135844773333032993388641751520881684926894568127344763184246560722001381135355570061122903105173515252881827040522107336074226633039308166758178456055025173287171993666216224836330648641141138918138471219118099334002889119617760063977467660761016638546020059044543396834043816055625401728746750777802561207351990890178722634505838407353528071472876428658085769396364023794241682779912043455439347736071145853443267224329964388967258784807341426628012940809991652399434324025965874857705093124210896744088833856561846574414772981773978583585599928436693447527439256118205565075404732926955086268750856851697408855388695508990040108106618743205744265440660783769695032912379380944657365051942327688381911865056557079578898300440384484066130276892050044370874008338518373375989551324672857140552825986728846519971710224321299256549647702180891455880425893518214135845954056174968065421771069289368477623517869832541854376907919370682327887390562149645499828861748499958431363977669591058984610100462877304024102012920957243192088397617974666709258515077830844391928409746240170195704060361801649387103475957132848479501536715644972829923334781142002168208057936727358008999898574406762752603248626860703301774200259539365324900450191645557594202356170255593562916439602435036027410824188965801794689800087419571760483347940513075300973560877024722580678418020434217664280329939333987837845234098494340161870061319071281856870176821585908472137260601922453153404805057391548493827395931514595071621487598224651123740957239121409520221511550143428904237051227670463703893023144733264154381276939618809153629150603263614656804834454979786979410973050467133454492088736502694849071611825386953275870518329033740327507315218509004433293216085473715127168418601064143351301511811946461032089054961702770909642213643584691277939120636099930838875529874382883977426741311513568718674635896873693166828624101165350607518026269638732586558399008906514544056843221130401328194166993016201973237147117392618301252711002235869295204863114164173332388600564629111430509171333198904292553745669353119960858000861673190549403597794625840260775596001273212345996822965283176431726268252905955226756958880654975787864607208173778986346336779123393239571854151844050054718394081573150019096744915490539506250993741047378605800667821483271072470560803017406339196806945988220667631269409853463771552382688357107168833273787114444872088560058030928778667332347244915197995962553902485797607453682553405228667463066633936504618614251253560349316874488072644158682752091484748427520508371520683461088219067689121591689003190480479262347973423888619896714662813471937545335470783118288357095331540932784182270052552584985140087594723241336954063967858134126418744525311694511385967381285032769711943522273015836210964482954346219953502584757848544597627806472560267765310428987561189717248143074754928963714968828085256548704832094076981597540165096513133952719247616161269225338342196555200286982950529669796114298008725192766134754273831086923099771109051700914395918742037237548788473210909182259478299841597534968426983270069984528406350432624908038115729653373230721128044726538579310751289313553734013822153771515898471065568770682450241535231325517867580808632055282990526944550403012638291640561442110670463228075346719993069708494436342470017852738237460501342466918008843944254122692969774665874798707069948149826998142246970950721419914258116239374158775506676292987828471217618043894347341851663215321304683856061160120775930891847892341252888353332241023775192320366328043875085356181338341603953428277113259778321830777644235629952268155937301910431273014008907283029137301832467262450978902089432225115678439629574147460489228916432666999757491917836968244772815934486302050874896359447828075876339316480710784646576257745965910864975566087309894842267366558982477595554664377340201356172014724691718394532612919257283475768404685621277204463316188424023438513926915561916111772081641439634225518498201090336398776761200430016224454925312662763946504878039375887183092003722358250108142569940253880279294420479050607445297362183618679644416642349544155778901635189550988305777948619811432926170873660191573939008422426724578736648356437331447045611860907991874273312457074866428277227062228748460513433212590429014614797011262536072505857025806428878805377327714924407553038524085944416321416100712053891917278895654092949367168787110717095238627381844756562640895450118279906845355407218952140551113872508989943733253042713214642017795379458560593473588362202914884669707593577701242921270075625677928758009359210528776429832470286134385122261152026378192583131474102781204433406587176113223849093629216249035098562904469443086067510596701056941567107729859480786219277266346460294713049687054696682118712088295255560162398847460980944517888662429982344747545678304729377825074825746526272001207417627649953007847704878547295230268636416272539408470381503907556910630463752039939454792645404120624683918547978339218918253522744033824112637157633275890723180535876138727685643405708252014689994388663104059150699219667269674992534384887892751713701023819190859789965730208006542778312515219085702055153906068224664809659628963350998432028916699224396865290308955505697480318698867582857646120648372073598975635226155786811657505867500089202613179433869405803366014348771746378744288223161267152125256543696510506306378279187613569816697736229747864966036567574260044606716312504944385060517701939492130344079533364490611317860114265688502306583446438047102430395294453566471812685428770026110987808148610837276372922137316172746650389910524660746347424543813548387089020144979338690887737237299593204306155585658767295845224610715445541131329221446087476976063573247581488663761529665898564654665585262880942066868738062674176492304583731443375764837083391266871301812903407523999819714125479652117069402362314551130071541539623015740670007114049702268671107182603986020943294163315150969387225918766872895588408655874526780011073930601164506369036620029764148588653012903514325512256070620264409561770683307547889181103106006568404538218158597025876516939578762406619500917570631196167177321930763127971066256888354558290681093078200700186201599464554866547278975535654495227487969003508733749071683303597693535350577112171664099400610853402136601399950777223459003326627695726785988353456530115895767216000076625488377398561069286290474669938618210007351047524114368956886355554804194992673080832439194388779636065737718058212226143449724394056774188075125958336319506881304961118302040245311165964366231957202505498401523387671511036182002683785099832471984535019290849596679374272712180008049040764972277103459071921452977397160582200331371366716855903314092888158948257820337688913459894923791087965105116117802376204173019938113721901343600760189141806763560644002848216669780099715155546561505421420838883751494562302419155054778577243738508925023325768504354162753872732198178249912257231411423449585678860351593955928174009663937232395773512098240103770308294871583328277749344522514462835286389792060711327710359823494032429280836662028015779037594185107003406882868935721297845968136569298372822180510980422593754838121276606650340896445190816039073926489490009365385912727977349068734050330103690136330644612354736314062932106870523239537918773398695806790628001970621666402924174258597624054669557049032322189913381964621762814229446748407639626745541022669607180594343245480544492505714686839015381295658333464394872761851233938420068804470914522800621914180370898625406946059748664754350524294648255337905112040103795823236667494822159916423521917030313952545055980397023425881035642770639447150939699000794123725863821052856032723767086453194572576786898706073788808289047884926860509692821341710158504854165284937821012565757612927111791760445718860844171002047114817576119637734707168000357655878058778813024287001792506983596445721309376783516313781138536149185964055411217734585275502236490734787261189672804846094684029225477618040642916794334829421276153441215770050735869441595512197617652637329696499401493967415644142303033440600757915165051011379696047849250300555090806010940622972737412523125835919250146723347053699567493397561462503567815409233156376893004793517912863057122947143113655611510351496858938451871373231423520457694757484645378659963136782647369487557239549525853189503525875865168430877581924531336350910834831613580579604467357145643665048258830848095107448703829888128066272584393333504908835924367948081122883419347449989215831291718804199066510307270185229444201935633569313637007070329718233163255957434309207649976421281765371649796186600445739780762086155721754781818904346958680305434330738134978454266702235076151913434528762367196629976935350908632279459642297310568925703757295423018680193662328685447643957707821350361466988618457083362209066024552845410181458597828750098303999095544578914748604824060701099734841815977878014859818941184793549947657988396478686142923723483758946363451872580697819090173999265625221874603584478990787893304628286667089613919650667748426323667109229955175540550809668019497274403756840557795425775007238529125602166503233999573291604185368456741502625795875685261994468974550002530803920794988294251129853154569833333858411175955915357761800802134354753039149904687100667212351569879985582797233019062749466537213601693122589889028056880344634595315076310682667144110740770388445422614790897151423229186559207853144627075940026541924466526283619320475103524209947351736185817890387319158017186853872110388692708427530166898308638513375081879052875592898310561684999127226639629271078130880014339095921751316965160327773912813406211054078950915792324380849610414468423107139868078665286362870939222594728264004110171516544364468468209375767850843592631621676516245205334258556777698783213156015995972805312768865442133498341060729825417041175265235980254720910299699735790011984381862042762026050885554490389572770485926600006936088542621081536306948073801911249151767944097886130683202198126389048991145545431161530003191781804972976382197039150353144298170200369964505256760518940332922779830659604526462516363053166968110718346337830566273739079676341348876386363562941651266503206958642580590471392850148356867911946745141781403541585493923365725111379785317454491644007749460952213241958070163387204514926858595916987370623878188711374125221188515124979023942405476816620074648754709735536463182265927356228443410763815225051098549424660250815415372067121835036570021353929378174484368654681061083574406970170823190341158755890476174360176660828819836653474861214932762377163434919599877460064501668706289549418924636889580645802308222395344213600906912041764430358509201227512703966151836273658270954747359067926903627986849728277578622663062119062623907416828076845558088837458234040527968491710109595353320131712099597835042755307206841705465166963390804805320267270028668165352790608446679948944480348280130446939807589409084168481293537564252443826989740120356862471848973309803806726346709448818806972258597902853275635935618588041734468011479017399705572602479716399246088210663699618269858432608514966138287812930667919533034282777968886366762618400034635689344757789210070843800396176598099094311883870287430361763373396579780743487758110018272248644590085207569253631977640195489766506242283532123097110811769983268434881339923769503891906384254366579788018464286198105207686906644601399325757468295629991048451836635654448282451058192906552066039790417742446605834126466197986105303826407064629083443071722645219454774144867092239402590764074613127092920140756441880217222793462590050028172907545844793470434918216777232418282487218168432498220339990916850568494722845642129605279751472750123835792924338990953239685164226424749099281712873661654466581187061346795090060406471313009643557385730404791747233704940912179872144190990699748950828160271057028711302957691012789545081674261588362624367952276731346381486065214118811997872100261980050132328227078009352041524312735072275164501202928252621800188430966353259836846374719427265411203828689049406759578255141090843936544202123643144779861413185044743559985552507523002695513081605204442363949741443392672983303293228539747864350898051913587630742945108599430225899176732764999868857934236025932881075915593062399451294223398393138358899959270681246656454721069159685826908861203642951437338523323561523041770411276912841005069897502449697913962923897852599440554696447886351367894610308206846782821167492357457047983058572156647425347843426738795519233499532684004183105693455388481364168906772828782615652931613831583756444989116192507349043690319373142582698826026464939557215193367406504231754710368703941718071456164287105814270568111955647073769564278562786872609616479420054417769731392070018953977114992636727514517323464875187801986634390772110385127888248577238081981611799941036985850028825972479484302564397717516804364549256583607325770916756873771182647210692231948664732113742583496683822909220688313008749258425574893777685701385373674518644352862825802772870440610823086937934475076068226108146394726049916093104794690645125255415297833861873748539123599916019133544840293569581624209278546999864489048233208632673714842515713598186470140708127084070222366928181353568970954406510351711030517392386315479723255575384861161456216507989474903461621590844039102734319842501357873983224903738962722415446066095594013696832239101403831990461993704901963340416796839871962171355067652656751991747849586151585981701503914216363316343183503519328976696445500384605777866200280181978375394536979674356340545677152514347055076432447286629393548496301038180395756260788713073530332493194984010950781549752623723956932745975005149110942069089971639282034111399101567099503099998558799694978815643301154780331647645815266403421331715721172309687389382996428725383798298466953009838162197328387141840827350475415637623600189861978202183070231072138846134372130789970686314131871323669121610032786761598229819006380737215943623336969568287314315161327033319826275769983830361327532808815107137200186391629042687738719994133320461641602933006429741367911480790177192820306791719290833204443153802326487873556524027561936928322642094938361277382830112234899743829323379412616025078825363284424896667890653040439542642091089243741067234908492335541393930184167626238128746860330780911212948889474671845795775137773625010531583688541796633984926332855594989193401324951780680504011275141127963649680095543054780093703148919986938343940045090525977791079936031649031259120019475931099908742404953618626917684849550946324922122507403408466496032302815578541038855422611722511253339626280389570847225086467693749026547210548309487949844205161329602752296402944637144348866745507323548124676674651174047686109428320316790660242194529129362529253540878351912432561072703185864223599365132295081658103618392684021174294614181602686045469612951653111502483958561797715726470623076392233582843078802988905011063110513581755339408861834860458110583619790357447118995373252608526137443945924697375491737719114350419605947170100033519487086803446837472500149631890502305526545510295049091370624813331191188785957846805687066522268794621684972375521033992718459080196143827636402415996821892462772553303420593126226729101453864930569864448648645647769830191002831767521522946421816998311493846074735559149933271345021399631101673113060504001953150224439694054019351803864751673869394711327377790194800002359002358006373011452092479965981278267593693172434844533586053640538419794342980710238521653317790820717695350628568072356912862758387352772230242910172437099019499825436057989379938611184835283367025904529713003066655700475860796748984067747703842515872910227812181622853781311539896960019637563900181642674160116196765126183998150080806203855639371298504762525758066412888615388448531759552658702684842668565766154400615385183111847337999290341064337871803883009016082153681876892371087370132743916822414171899381861933650842101897610580847756730357007547632491789747867752209677211059780630337264327548585868491270639738661930374048748927246347539634819730321304888753060187550841018509404056080150569308540489648630723994969239639592082511262832183310914869173251100837957194397008973703648822846453601834979060258393889525394819856067940738155955393171822401179569782578800463591827885683288464772794084098228577233253852938703123848993015184586708093886775711323044624965727455705991838080603689110990835498556414956231787312750227496211396869339910900825008960564043392436516573293968326252160605808854309591662245618446336561763966217164225429651072657858343470722656833068881568310408444871284733061025418260199886918591366041260158860360078200464680099347943558582865483965711144016980839727267167949738076759791404798827472110672034035098329711859228272661312533020962549187473274499739245554508851984025673375955996447169516871512475527697335305686561134557471401910632128148605768756670158118373864423191040775786803362140213098217941991219819533264005848831999657452744429286748190615166319751473984489060691693351229204087954813029148283188984092566526024442269084555472741712826097200260102806353211257248677091408345688032150074416019089061048159619001925254084958794849217688660928687986234414178896796351924273700776203772234785972198166273548924928716427192988833917276640901583616284000260202111105090045274610374233034610433276212135517580895806010387336823717406890777252481703575077541769712971319245964393354733437215128697030826657192326641772171922665000070730683092895494020641750021858271020781312031626284340729369734770954411577371990010251111496352070781737825809912746526805618400126514455049425062245100718781306470527273765541266933358957026155793553438671509267802254450047433371912955625757925586793146617856826791221568930028835684660695183646182223318427478489410460095651680361545098997287396844190875571248620539539508024681064912463002475606525596305185030704542546947183940799890911556956707715077386954700429041305025717725033248394484144949524556701183898489445983042585255815226514619217741451797715555980415266267092395642493598097881984712060794251409747009315084090057101883842937513832751087047516621470414935845156648636764779776890079051178700992906111820637931045011193619505731761752291767485432651355352304798365084456790327386565667197184188162304921635542654824835987986179681626798329376290010416350572984714995195380671468171647355064492543236052916799143685602917269549670773656005741894719578130495204319528726523121728505072455296957740057036260505886309495664448229587296516274511462441811782514236689915188995637204270011597008392862271115600331473578617352162348456287826325077285959590992545209634118885410206213726177279085403868498157136219063260663726500781861671374186854229793210374761489256281021071350553386425610660409976362307758749173417332069798620085530130599576496051452373249496998026158008305077048625302747898355927941087642510360282146670966576243000285231036962016901054032429181252282338709086062385160083193074316239276652530645885636960844630044898140286599994641280693612320052813396358607722440171064511286165060034476824931645453505749482007149891792768088525044982366705991383327293480826794263929876788554279317343678579955116076537692651219195098656204363367922145943013837594557579859398839400960404535525936157852237406676048120312856559924480001957977651083604899301474210208555308472225131616180232147139681758952815273531223597980925590988161041932527493662326431403127695682015227881189034284669327487449498753938233034113052441969777827589209833450341030732932912979631482058810037935643416661408944216864109114404739907246861147059877923813024948717674036861987784775393897280485110135588435803264535499058646936697390982763126567478616863540007583359924906137493668116334425793042499394023625295549055671273145245116628283324063149732418345633169771271580068801836248957966243495396671448362059329207386555646383151575085945997468724282987131467191652736163037149701071518938137749188642258919816444638250198933656105488089550608442816260693616334850982815728524127404277953660854427800671727069586487892829403970655623519966660405167090469573419446067003741826415553525509228718548954997072084156951967449054579626544732185681853975046810756426378214781417281571112797518905764281067993105489095111446813878191841778964400854775385080598945070089942554456898407930885228410160586731270179540505036851963976209454709692651487881062666742361257733181752576118252809761156258029417843010945642566720578795657365173547505290453134744052230247075760065527154352921859878664362006460691691181450867542803525268403925953092949554149174697832795645779069371191795548033269943472828676547769660864739882568433122299080872376528496154536105203127533005935230231147670945124723364405893412396931291080370096049388166455600280434526796922150872021067740422012146940084033598854365892285126583524103122532639573182354173573814629128709498368973922520295544745728179579264389793580816266523277155216057191500862991432882225312938463661244646803654977062891758359643837733714357220890039484235453301523045719390418874721755125765649310943757142404367281826550301666368707164369249133361146251750996333635419932586562801470335269663957288314870603430604591377190694415238965748862785305359022574014517257272369495623141174331792568440116405541379233364340239801009958455961053064662407140228977631682098852117092695690226366038887505148161760836035407554733282262030752226879254685811011649951667302248013540551358076975064320334329561470408136715863023362195866480206246220627836050188386636752914349713396341967890680190180101662820262973812322995054001522533720389476721850504668741633461690937696456608805633163107347138326277037554918797499493799253661301885278472230276036917527537967872588573226223189054678545102927565938759013790797048290789626162281883278469152894525604247776557539119766579601069170117109047026073001956571462406411508721691507457921658027438707320658943019967300550000705014617637337137034484108206007711187909277472824966803254457870316375433880746773706635809297783569201967139311723451063708946544971714804147939145769239081682588355882602400983333450046272040627553732083567967755455312894366428751159744788705094574028157372840594780178658600264086866265958792293037820488008684297768233971927965543381427264105355602435115507914536855667095957195180024200507165766253706718718752374211053322473123790200481650087128807150600678770254119276388520249374450763665569817127677943657648901359177741657151621824471011457008435737424602817759482081932050050014688064794762524471392342342626603828319700782065859328683617426652584543375584084387956978304694756210881161012063074266663266709147570839632989227672744612609668613392647292005095980821776575881016546546521598096331434332453816561405787360428027500786839495032209107430303983003506336813824298980158265398054102710443431538112486842138611089550598808677060297475789613259179348634970733863305254829332790603603416075119579496844698871375675867921526196707016889450066109063822878968636370358721024091900487392086320953709015362458814703257318317647596057065726243784108574504730627134795242108516396581289218874299216728008840527283162750451786317839807141504820410257156631158550200409772143720159862848795361158449724131072077605063526183255649674936458950115055428876675517795302464095445250807578634412295506542749922272760784614726909265126848264743149255815025282229121502199020498001426084542157177777783824139667138956550060534595503410681114949158764779861793821748024788450482085611483120020728208799043978682450876092040443748910169532311325630222394608779910810980721907887917699712064539358656616262573768828487408908717338695013409275671586618826507699110495763484432153844576611162600815826963667005897601509874994534857214268340202313785310181919388399209702529841832205672054541930487861881088224746417314259941707066470999689087281591673335838326761364358577174550454499536222204342879984351787035044334065570358258207481638615387000910003256281546144834782449760034323634561675245119746649952170305868199372268767264025340842214809585079196881111974980136534956185377589596020252356655008590792353619509042090486634588104283201949980338669334811525180872812074396376123783566107144041584551517797231903039575439581403147730620963106940186417937874945532435252177840962744369726934691397818422213853128942757153352874608997522355909952198209979526814356678278060043641474081460518947898234659775050046810577612214357796156253516979905327812342134148604096134522519128141737028484344015770196253342116258972871665560575983530796828905662557524219836542557622287179772314734670955312612657708558734619132999711815775544902545773095477581770352949588201160768436312066788874990035583620558871690492334290333374506987609299231689267848305841171761678759187321656047537133349709388204371891420505481409455045305322179648401919601718374442890567026041963142422706575839624578187428121960343549632101870824564516616342060887310163691039766655275468139910990003607109783324246794754759832233354846198550568888595263317918871360622408259134079877127915223831288802740079106245734876075491696783572003317623696932777839961844735917246442528419948834304639449713165939190728633099619001842692745422417748056616874082607690524893630053139672642530403687618916730657601122855772589837354792958030065005718246359453464969996386706063535168340510292461836324741154249261583680800375316550011106771557989061472913151384757782473380667164933218646925456663568433780639323346614772001870438633749231021131801412116397452767666682527274372509683698314258081378501437850545542613262814870108451322408388162382937357245765833700030128732264812336367129856677545183440161741517881912678495792355078374676564560657570712381377908862248908889842621692909655218452645710293288269400491022232319313333417510294351456829048200977234644796012431011102613225128136224036634914631579736364066178606886941479830999164621046908480403832676325254350696854920681893945704746477921657921537024822684983719270129803535638705766712629459265649085497744950662773427747108769811827280907891683617571412519614108047665941226838082687602120969390317356118490281708022625309311869366204543208724395121369155407509954336640352147906809368668852580964556512304648238397981274160564911092678926128577258292666878940760266412437404017915044934210535660044128328660782418191783843176328984139025896179085526613667439080439650945333313720766900281900864989065011711217519609084449478209020300532271570412230254419289984081995051722780419441973964352521459424081805758941031060973181387006697717956331728377445988060903047209004430745720977099143784091895906334863618493484376075798754775462143548678431351778129971500433316966446747659937860395215767821976330062931903348742406589493308525640122016908476143932790646637129017613988356251301955593303624419191307600386322852368347370919620796232209393873426513191619864205708345213339356427798463332415086521832198716102135875532225388249516766941453948150798264013311683892970482452924519563170886698037381222820072922399208052830520136525271664302417905468117606547097366268044206864418146731900962603123962813019523973204473317129222903813300035494876908230515528458325458661108803499699092583632322031516278605272997596200711391199340012140954777648887652346404564014558069130598696382707949520186392623592529584490280767935544945422444723778260946860226317703765565196284102811683142925029634603268022591343506378240399354535916711232538603817879494052620553281687423478004069320069781433785181861981634014974716292964872715007234498112307788812498386245199677584601565540479319792768107695015087302672635647352800239598443768948072852550394546673969731521130454793709064642720941085366585214892683086783191249472941037021574083241470144676848937965725592424038009482627505139833887964145268898202641283833142044756961393565364371817456900043719315663960931589710472446827490754250933773534036439533182575163588625620859849021683969428694680526950993060560199417407711506705524759344067279653123222244114701685597499315745888482172209894199512100796230638306768816901550577084486251085635554237700660614168282354042434062693795880429474809786626361016592152135579417412024547261959199300116349554640073219037129501602286283868707218231776487495132270993108610312268074804763718298124238747967745854273316719393015002055410033212054236481965745221676991481331661369131841736931010760058974687541989369538171051051992104337203760176122867228498872808266902648460685549506424742318274608400569157963482830558523207135911298106305310381222008122175763389790387458250052734037386604735007552248891858642333237653745778999063172392151704601569591083483836474139025463084052770032988413428814918817388007602709386392908353319894666595561179615074101088415531943380412947443994486679274998868547509584788502630788499774850063694428034129659872588834459123778213698860763832360078639511328532558253361373258271939180471618324843420674727569064215212133227680953376767991703739128825671149644187475932551729981238561353477513829405056786778015375471831823560158620942141763929862983900801678245299117290859499162835686093163981122505610855111247540526729018589443868392318604866997480244667835806861542019669285611374891745229456034920209034351635088133682963104603128560833004733043885023567762880012764028946305169054446542995433387850136866186577399353379966320539147468472484570118796938100907330467023543368580121581493767463186657726483978386552115072530766847643655369391607612614730137871598891430008074999798392940553237865175961743833541753952212060795216697762438971678746766423494275732594933360631544846675293320678605122344885666694429047907706279222131299021735180525100800564938586342774290617972310683246215790271891402733552113960568437732990272966967815785773243731889714532123312875319159584002995106402426570048321828208366276445675920095641328970918205166928551978031725125595795823195321661583672541404627807278843807684668849716789403831574038105624513422739781664996267479624333925842181495841356080644468340554923202942018231084468028122147380883763799498574935889626536759735120313525206757436159304147133515587097834434816760808422652513222514927986693775030344619238943700441701252027994327932227235196031423475753959782282778650747679362325064666477734126160730209169632181033795706643820683414833182568592009951808299723899232321123276117570304961149317248334163549142469091063291950089968589068260523884192922061933441303833630280518283602624400131952551855732939982138164028246606565036830750864716936341362291998748723283346189903335843168802823851853799747757675400069888926047903489813118817869404193890812279151922814995467485128626455924787831086333079152260308584702959704000647796507179516228012179377961806142999461878604966707997357469980804860588623074092316901964065820763434748215449565779915906967875676297005049518155311306619068413810464620674479009218862629197884435290175253544462543360367122294374026885308449877451084552102953079572380694208427690909950787592440888616550457201598948545362630344293018321289883193313388170657900702445011100628419451673125003801905623879992730427564381665879929598587455340632405622130289280811047875806613153899180163870402048726473962055129741958143508046597853020412866409917761456924474793508978184627846961918580223535522459122343972049538040182360512147350085315579701321705777071028065007489234254211209189619002805856887041426602893731133955372967895815334981514211563974650890005390000809244510030739873574675320969518775999940976470624947285701270353884513012382566027976575518558724184619128561108101426684408484308557540419524937838747060227419513070444522414560803759094278237376565675077786537357094958696904024157197730144876494695509763452064860812890027555040359587386626949041567228078941034536085053757175541969502555626500627318242969993705806511116875756708883019159906573148970007127990677679749054490426915219660192962008684894192153162485020103439537178025970032154171120819800378474706377063666876227589577847854439853878270343210630954636497699226612404813170234203855697216210307662788919425338867304073193010818175059772258249280120085081104735138018499494610900992527900695215177715919949920423845308815939447515075535461536909982853960667583658293272277035975271384126537932870495888522625981665849190950667906044531725218517891920748768981693895973984111594961575911408080234513801105850006913646149405726672583262624005515521682581644041371290070885005735917756894201805664723363704463657388597687194395634974711720230089617950178231651772545484506868613100629386475426724687434006985152346913615914607551709774275459933083574277837162242418585626200522193359951910853442459386335032564888124116714801692931391242263413219063194148179565229930089715071270373013254650369503270341954659383729167124927290864137464583436828296536783263271494126425273236703886227306156207130979142120627457057861140065777554239915487200263297974975877976459202666658889860126874153623562986386888884855682270334150935808973245295626855061443337352246991943306883687989893535870261733811888882990046855131483476330763679256190878725611086053175520219301217983979047036934916403082330034122229782511394918503339669592895464453344692368409298449457216491016273017656514931175631898899470692524858500844157501798469489437930271784826696633896462925911873430861968629642659887963522617690593857218780832459457374034337948291167101491746815126421601195351368887313656180003498804037667172121971693523550908952895104801542182305969241111447466499103496326370518351887620142648262038631037673086855846468927648876768802145632617299839557148204387589209080678687253387905302198341685400456315420927916607097779006462649175936083465655503824444060763192530218516267077868773828273092048505471561634823814917026410782924477098027864899581099662049090371384280802616124936917933046011032254422126963363626100105633492511795782766627014997852689478446092392921977839236195719564289898202759819911195305321020333477784868158329528730751864295578020987153631237790107072167651207898435570537656775765638326111080565215761948868057384224343032778196799045553154050536298309334925669884302220587016516392041130778398521569119755058815479203607977844635549080439860576224616983600083456051160663558133533017761161440128942008809582811604218577087248782632220016800574628385137725965573586935870152620009573832728737346629904639501525079216703675833294417274016705749748690450404402018339420748067321277340454317483662667058514628557344377191917816952424451321240018639804590133014510976469289057830949085044969476600249703579723515279935930163046988251916075908196754185790109169018670963771110620731721334529743027643669448821202574333314053747532775947276337659409422392081816700386311628495240551870287352786480686363264390922892488454835033326467533189692429717532655457198083519925906935676192806542598936342278520876897657876460478084351186999816664259231233644831945985120326207319033357512243849553669557398910348745932284971225972903609322298727481903321504365494406676736341131123994358402265212474337064603034938642216568901649622599333321247599270227317563978631150910834576485434703093864577333324786453278041949743719452541767683131650666762394364841826390878579464848439879591819763964141787766986440051124393190491619598676349123468718892503709418657956335797601344862630182039265653540706406921571351731277931514942531519967077451578591958275436140623930168976770690392730421540610025386506575206065638977837063519525038673465618826398553261695436041365004460808753094412476826799953682310730988087752398558855393169075429816893582012841865784904233451656832397187702463677248300484969133817661591048726057230700128923686519022708269051196163454113093367698166444299364244452293594346289544273511239023162525231695249324827863256459284602137890674154539653792961100383567385743903640272090095051381191701963376546806629723999184650966156772329615975895455436101634267664687096315600078912724977139679703781785309844883773793005680480633182540402870881441350666829696009319101052827307648612168484448716213287007988110044009429018508074705485771307499324377843166896378137450157795397293199782714658864131978409652227507237377463522705723788368409847289341574780877907639289097981784383993004382140354567071915694494259503728705683392037090655926194649874885688678418033040418118783684224378943418586319649520371520518497440784734279147370895096750316322295071634033644272185177608780181332731219600372375103705060470223331156451269053637809424044200082255769438469372976548811018641380649939108946748935953716592455619483138601303928809089239469367193409019434799712396207311152892064196989552996025942157006914244305540304579610028558971714546948409310752065852469220663620886672173229392156486579390617045581965839695143182644199173246257943448023745979453025180757280518939877674882476475832803230827931991247224064066773422459195865309378076091268146279150190339317619750690706016063655924862066233347626289274287079486652161370241249824862479244224967542231322217828717826771570175295913129857523666847866244776484737352236758168227842979494396697907579663369407744881208655626109501199276035652299277383120910073694445253873680528011689409432713833026792962490679325289053257674015395961741883811292256763876277729751471486470115930111339691957322311495432666361868127164013462523301443036649899827029750775787295004831819699160700155883191363749342782124149039381002000322027463597059504821854348634693839172703194890739721054869196349552932220100769206832622494068538441291233315980444802686644619484937830245453761437767473133058744625485175026101839204971293620219919131809305219365099718147478716609335940846107078776622364476110428729335623760999961630911483350860573822386480517481962034713525949422251990036907139212148983389070071384809956671922158571975837561265829322463906691532357837094092495492169042085817536738633498317828557455769517302023577700098303468495577784525861633372830277207596868774761824385895466739928540724071062031896507584591105377703369985286293710284355712013195588282925783029219664874126820051993850676891282176571742657077230829631291244625327682314906535038453965344809014604190638659727188198076694784147479400905060511603695006057631579886709368061928378220545543855353289787968994927935429174515973149230603958949140351333593821110574981392614966054155028441647250607541588684326913506874028818517025549178847895179309228414770438372651687287244601928553096332151613846359776822875284983004816125114162902144234438719386122027201071166620470567611710494984971618840422678174672386463970931908163744667494458357056253482972828410529954833919241312142679336674810593937637978813018423436023171357654117417544950329826005834023999338153158990185241775054942449072851687773687466314353116401287490884921007495107133965906797029009178713897599453960638840025129392583601321887367892858072115745454878795673313573193209499569081751913926627263561983468882100519419969548337379774669070214583441638122376876828955075157016530313837692359313539950484897868921693903285993724485533609878393851709256837127069974495690962867039846161078622929688092308947283528356094715736162310609995362906295574734934740143182037193987972067642097332155866334364131548682792754223005005119525021974449792143666181102787622621718257293271683092333885833328534436572698777014934991027072420361228728062242970169881080826808359473200043430457260129619373215497845931891087376873108175625147168168760728133905939006439559019987407181050908466139804154379221905297540209721259527045203252308812982148166165886160702086384559242577648454365460965463583484385344837204161576569634617516138920741354693818499341538810462359214566598131275991830946686818261007810961656787225418348694671862364964802460593423111869581334367758817611548818582346041279178134418074075058321634525620734699731141920814186367056523794007568602871123621150669177491363101615903125992020169117921682292655387704335603752826529649347061184037015897608722608511289778784586010792007595338381433154223933049344362212220533811361832169976849844944097384772626851312681648127177654056422726778158450004638046690154366912326924473693916497532633538145016370824780978883771391581941866140472979850733860990632533313294497637383293588263665666968452770016012878439116352260186980623077597798390167020138340056637712099601833825472221222141276318702674836113616352775852117407278610993132877433096816604818890013849684028322943160860140606981717365081515100019761211280448061990584429894916536166288940828489155794098929674027229717171329018544782021613414836513133852744966412719782092839242724466347504867347545412158179259370650539157732065277122424165327500080793903407580561414826562157537241154854886884338982417640585187635328957792034515665080192973520962730731375886243233131084700176255402210481356805278923324598322657140657583984543761686491493573515145703716438972313817420216713104204871687732453095361377558969708786033892597503791360724629883128833755471308254883085076224816239408574419373263758018505184006369733889701686885776786076542275256079542251091030686115705606799751774697157637020269215955541988406222651480802041440432107484950249515080083998091578715292668487134891256799651980822376552510049682296711796071970745839254253689374710755997866062830841516999581709906577103384417485904348495539153344417555946156862616034112203985780870056466224485806595320267018643960893110002763768985563887603314968304422962557149730357028275974409720011128739999750844207367824565294506294617352161029578744892834579859407409993171905261360628227085982664638182714376074633385563688183087886563484083770405331216554353526907290269106072709484317686340009259886734248673570064947124104015814418837007995812827280833149456097581688268374653109884491695878279977043031548073549472329809228978228025910740808075179145338994277339908592226317392163907428847888585661158830176519889502426438151759118386473885775492494842858958124551262466134318371702204964912383178107782555985735643948517527690430535641950207200610575895801503660604249398802776099625787882384808910421650351644896050341793513932258617964154053872132458012284419315005744140870891612147864537975160146579788296913173031881114637964248510113063921081879751249906583523213729400445357077516832141036839114449289312796802958001498860685042191426895626452561649362961018990555427717465497599012908163473633415161835193253988295086194900580387395283236450353423153838017656568818115832733819254582672610473947782981204472259058644514175985770895142841688115368121628102490168849470259247584488878981409476657393049947211373978354413226943426307026163151240587014927080721654555874930874998805077909695049374745048307308125510461962392341331583215442116031209255053056379134873941195088051392910474794718728505265819633873167042153406029334284080788546903142968484288807066742969094695340979377315844358665124263796856775907429996529194324343073636958199603458527941179939846826483657389049016551555126556748447718063780404709659320752191891775024430502483001351585782755381800496065997244686702477460120191396216215352973406669476438285197980782994935649033554636320580352432350797493754686404268778652806051972439055526307824510343651746223046839901080983899219589941375139908049920597070259799443279862700031456642147004930494534350781272538958988291650042471317265147657933245940346649982991720767127338570051042754400134477793662652396008807802257139883902179110537261478552356033847002119462542996461115213009255914310149931447132598587603215814083844550034117557994828960593769787438567040538365843014157912006487467575764139772416225679035074578374881630386529825159234279264794412631800703027288263094643126369332114260004907539548314662989252606135042160797705159283911384145405775479819458987432749872089722293673423328505170242368479760908929733311217642129897670561655347874139699932732959937138374378259269730464808760704312900292242118974509759095931936095109781174939328669684862674886488198085035510598181702039623305822809258106603326534881625215517264268304401021433989236773756235554504079170225891693282576941024316233119321176713501788807158452827936347901445986650089832191911142078119811271436985341470584755665422385649080540113358153985933035925019634189717310567530816161285051554164717215355235008682539495405334321955790498710538625507580464877999080567044238556532011452352084929647733628209129751158601554979274708658039533419593801033608930768122705380442503284952959416693701752057776420653743833474687047270055180468562144675107840573194854709862722058063798816102352280773856529347685842305526439399519274668161625219582420496521610640345830593955652329599161828764125981016169589995299890689405750973214849509380165574735604705994754858794600785260989522161784825304236631869964669036044634437225506096488687086113249514055673025395162313141476243074851676237699559283666911352628896610544219956750583827195791959061080456863467308447416724571190066621104458839180841254561765262194354952887050299345979612804079769943715539143035306376322510497149751179145626530887048445876196755071291035736806110222172476736976373429829769544879825728374375207211734403447525530370296792059420122561607823503026721267473467818636249301922543925637051025647903399838418351334958968645312077763328903404444908345817426459017708604303392847573531660716488323169757742145508036617815474275669997703900929618169148474849295134206490004437868938968771727051259076381387426060136180145990069831253168254931464766540302715377345815166791952910619901865411034482618940790032788427389939612238770814429009459909854769119403690041561685474450255032285917148381881399660507492064947975018750178237868802891228925006120632357209668731641324426470723373248286677644566267397395539431331655618025063933123127632998108829329003092038813706918889861098823776405386964519031904188298204977106707258053147513170134055369129855695736864149988573522302369335789073098449634634088388740434653127107988554354999917373187122319553472590538324472401641323840141058681647548511382318488231402762653690261299173644168888434200390287093457237660097588614439562622279868366899138761107521496420966798933312652774383504346063774591944252384439061338031099025276215525685315777401096760115189176170304789398728567784492010771020623241038842265760149305272801433856048185852814959811907400564941785986091581025131459972216704280278631901530731096270680659996329740090500591420217857419099695333788065472312734814810082341879476065724897354229599726794457078720327239125584316575103898967533572355408627043212263500451935258864821604119520492097518095766612110679482774522459165679114389739602966509055565288780682869316330989910983252598522378675350912557969288847054609308042270790102646034402238849174247045765248476008777692453799681318894263870835843009764800161887000688329271639938940507283042642485961978212420209644805219171186432431527085163518388363643406621445757726527851193812008468127174336211040155997377229352191109232020934197488667046236851802085031052345670632084232020985905063492777284383468079748291206665978023651922434877679085942618603516535948714749680615886636675565044547260830678297023822876928427292932763185626664055001240962907255674758246264443992287646495633729998078235241565846805421117915225185860515328739461103765668902536543801531207359620045870161556153574177007171948098161576772121693838442420288233261031295213821309773578229282083555111062817507447379932756959016799911389717503542530062252302349646969213714793784545911480448183268922354721605393511781971715897257295936047394555347484498623601294584118259033455841545112958647735162566584107685580351788154819063047536139806943286077609366727636971458036541126199640705878982324392155779756902754139163883359183865542216987094748651751102798565503048745356883352274063862538879779294919744701800986344588264666451320184077685159986323303572947026734588009351857897861417437201127658920416454939443053535531299761470414520335679129557345280930752260883562289110575954973909362101900616735365821673920352116150122243460012217365676221423706112247074345723673662311789502392987457566420173055709882174459531197569638392169506218321306516360428437938630642924997555399571661793452358551311861156979123651906945040546922810131890551577935899835821169375512077513380540807509903789139567467260296982780865371114041785793146447621443817614642369667275504227719559297774965897546254643529873584093394613972418649102628004003740407508037046697256132991848915898380361808779838101538992616877406191404172982562768449983034504641659222746840279909761766978832312545821834383953452875490649070973624648092577881091783194796278777803056290405220371186366743527565067661520018057136103780767432919707291821028840017506814714675031336948899542248030522195131892034828246289476724039968768417810635436910229023971202022858555558518315987618050015788845895592092981445499293382244597332640440217091785996412667818108082925003449541831742016178191190048214587965293317445386367676902905305358430392583794888398814663138125269051935788854603702842407376055457522286830783821663104300795974559550347647769561056871949224209747123647414238414748676479709967797043084287536730242543396518754277001832991137353469701054417915112651899493246787582889168573594587838891134926430421062174239927566072424506692149810354407939921432331386512432563721718354099785641661303389688167952391762946417694747911229230399738348102701515204471444782202439663532219912026857369116430085329702258780878462791095885841338808972011427750831832385020471437686075547166214390906236535416556437912334795874375790113413818600916347931768472531759782813438463350445058626486127076302242483011116719065188979305003847974552131040985429514008538627557657533330988795546052562169065191571120869144865092561105879163971664668424626349797906484272054072426329499945761290214839533147319573898810470926706710824921561003074116295001968419762278661721171386967414561165680366268698908242885621156161340684056289853933087610621254737905874968450224889279945745883106251209166910332462972505374506038532876298789798981818479940125070695725941828785155395347734885966301268603439129977562379521785425448759060751126286006135094869065428421280830190418060165107761462316572945007818718059827391347454097776189030506453495562820825948522931459161234003082381713971839672136990358364233254984973104028087961609206027625616124496878708434124781322140805840399146246975195042449608096306585586607437772515196464797928370949864878150086398066029547579739159046563933506076253813404715038874976009945077926346702742300164414886702094271834530248453149444700296424843392908111865825940070186796921366646482024140153504009994381810359214665468887946591876505957145985801668562267949336246786363730942110271198846268821707427889116541324015915252578993703308528028025747293168437664830256136072341462271822048663026971155103377927287699020929153423266369438479497807496457716405805471127859469084226526060437058432345988006184688501994009463192779546581770481161414183638176654115836606621245551268535861675461969449749145085714897069975612965682665666097661461967539905653229633814821975723864343206045351111473469695861143280044604970985528407741568496974808625408257868920804955266579867738888444540337635403606097026340291041435411586855295686181106008424212554761625917327693628591484965764742853257320003395252828656539840928125526663888849382887460471162433441392153793010409993632644403634533293360058123338468326637897905893800088333694823591061616589810617474257097089843080452938095199777128132339840441819808336178241461955308670667621476800639015726115058025328065070772068936475259411333636575299329953024161858787795487946484522617364722568445689575079266451704992521275333080191332937852173470569150633917688515349749479090392924800249932979152528583110388155785720840885092427586243172479046627931866478521636951272624996848166745598222290069906280058036033717446188201017034777127953721680969591539946342611079805623994067582275392162248262580908690005648434287075519380727062988763406808375943342247605667187346249386317354097388964784339400929428782705351338046700295099120761546042979820510562301656629260877501640030529970163488413256019868228671950824660065683375463479886190441924686627344448695204392863246654051895782615827601505242415623172682808513420557746789906173002822951496400809359429541534154464615487970827601118074586650966605806715653626284270003847805586434711852194814926452863536236644736348274223243160535352671981903867189552062879039747170035080656769831746254301665282750797999321120148025545892316294567960842995059651929908193190874769491484457984182059011585111268145986156877606861501502108520837584608205011628768906954410165584372202692631166125873630013245339814452641584642553056712727818585143539138002529134266794603058667242046969482759329925145418715373351970855985097738524824410100575330418477773465888193061574272980295959030935998442627537013385295369023653180271081632414871078324180847644202351048628427380737094382865782947305225731300048829871420157962677768803770532606606655149284256642576667992751335737574682136697562622925910910730846577895636705518646109771233683753982058209862810410135934993876059370470495684461765887559423210657259802715700012681253625741792682527983753821017862996837765769634496130114971420173861160336178175048871847261282457455610191963519144920015055556295602359546305411105975728246134667287206723120708459748442607565969917933424626843361274505565150277458261821321434135816969924644757484839771396339517001376896896916250152609808000156577578760287405015882930728976149405892043464062968487764283430743972394878666968856142535284156179405846230445339725273666514084638628267183714372034313447345312297583590610607820815282525616270324421418583861096249952058540612353551753453947371265050777073050862763719674372524143192683845391578879274526620833967519848488827600067892345695495791440488156963526059807279212726690820337521695491664903954139601918781881058071882957571008784205193892913087030594613787470043239386610798473222164508245020355710198400919790138278728116957777881825781996031640761970557066266588444960226081267558252755097295171984734714070167124844957731564178145284997169784570868535685463201391383837752137842335281656444470621700992174056800306160720554415452554707722772175444248367599809459219442717514827017658240973721170143098603305755314180850340018755603155759263302474670619485139782459237332333787762017650320274603419741402314910190395426571114763167007492094002672197180486301885290431846586527625745198772103338146941767921794074787594235331423796992280034923849609358238413158186800957981089833926472815275179153002653702308800720326644401846250801513841274519880014199205519746457039645348128763099935227564152949326909972844801734479106084484838223735349826004190236108130752377816417279431839772227264179443473959709558787766331491873915580071704175669253974711573041795776917961986975828779172107924864252784879878119854493716443539586078822446720063307598537355885490656337755887269366540332298692007117886253937116371966724803799021775089419083093461398897833328606189512902915801471541708699687729471817727963888767963983519230599310461552024092292259961970591490429874490946227336336073325316024924849221435408150117978507800581739804238731842668117726355039081798196715210106310041651958890560437953967606793203103287471824025723233494445098247670625711124700790811945207757512799744732887738869636430924043714289568397604628789739174417701121671248594721925745541840502497127365889765955237143956212451956227887247574004377140402704216896177749910501823826350988346361254152654917759290369619776628462719864597518486156332621619511865534381097164086208843076422449131612309185634481313341187958432356777349721378218025602088267851342562999450185071390945514284191634942230559863754826020348197725232369165197466504772032355822598254658013132938588500331157439660296978866350676803587234649473491215760166855971967431927357102206596621943703218469012365344156513724645999865606161255743428035225916091627420704140423396726751609318082524055823095614185746283412732172324555358065594335895695049376880278498585731113401511756392074746222823706729261182036557255531420640593092358710570995086823509450777617240086510423761637233974811933988326653567912175183347123659096397938567388178812753069995617535739145897405295037454221628663894246883706113475398976902498441882344441108992872052241499016608730344070858268241438456022973545674014955775492379401877572532936422853916276190638646756125254733535233601599977161971918835210254497504546878685976821485623766386359861767669940309834072471483729871162461809703459263407267489326179269899899138161938290751135049002996619946200162747428387636194247619204465666387111035013912510800247315128368241352412460255882358425939610994701689963625078689948548741481239814281385250483065531279317851359792861082048015042353956506181078555398665740925635028288448213180379835424902150893957044828945397759649198317300664714359432858103102290871184498102471772006321937411408876888058368687353406433292050161153696909273555078576287583722123003143981519661579472039893056124678029759499466417638217783836424624638335848909105983157922883522496908987204087735680217274455874009954113918301142824964426570080385112289638340422467193043093617244550646533884376267105251681402438478492299038719967361746005817803830273892652650361827846559953620777887668357673327556358915505005915748958534375034694830140602294311347865657425230035530031112675886017857874087722360290241173085334194301212079576135816151994208675349424304976607165064333910056070340030647495403070328508703927644114781340273346488472518459149045228528854990327024573392150776606670423310314838463669655406329414050665025108784453936708367093273367016816609007286808157778645782161327983583725538790811493133900220414876873009323648741052159715790941387773075758840362115550134541245311170124634206787809514161337441535616160632286885668994273036319432694884980088997304952291452661773093128110302571039117560676435257895356517997068966589179879377280941446213972114605396759512096884252970722062339048230333042973263362511914791446464333408644867823749379363710948983701657629069938775114522942693648758496239620470174686102344699002393559401065405365411072381969403040793317498119261314034869090594804279010325185603159138698021351576959997054065368035386676684458308853244279897818800792673461813159598493789353474349208734508518713900615457051776699850824927726461284942561441136812035290933570104388786793115547701585384251010546662082942180854965633254104548731855747071961353292616713279080613233906420694971553415213399363208283416212129506606749775162519889211139425682363515886768033359103289447005704578501065133083919228772240194439498091184942518160782180867236614302117979740876909306396466592918783726543323057227620582890471727823730676715229472799931000163943741434913116302225477029421096178615117914236765171002548697852885780889659638637841223534661857023632549128794730059214773780714469090321568519812597542551440046199498240909646214147122934688704162257294601741897400472274715245507718295376981659808658322691709795867619305738296025730943287781663118205374703413286045726630772604177256023800107366743327308367371209586065842166151929781731782867530390053352230167630113015641260208101468303032824440822007072416337068879935174321077353176663350868593756666045049575395891612385129803749654004333401523866193542667987717117828696505680524315496313332335895610086109971584343323852692215271034756020485149738292077384705513170161954440897288776245385998382192103425471049530365522828111817271294811800293666735764118836570884554863774427075946561813433699305433118658707533480559853406126078152385318724124628793809249275847673300520897428155601538193083291870153941451266499152028659167194478806154197343833934535397998864836808190935983508098724988089617336541025431268018828674775660351722866197967957963212379795612257944781698860666462980099841344842435861875701490689057507200753069486746280004333876655073091728275579840656926803902960959634647543923617069465702579678431722272973136197180126983997446211660833213257141680382764017527320554531824795456832995008842640101129976006195929415842443771577290873089925831914574430727520006451472837645358751719190762646196306285460922196447067168781118715192216935880891904862044026140832888857433794739347037082527218523209505625681053141014635299024712128824747513120288784704066195799521244674641454114525755287792279744891805159878178024020419592042447576153674045404988182720862173272483768477905962942209851826367548813623741322199845127622196831233247573844203793620812571666274700083068801673080142840458736876487743408080460546484350117654328143244325719975006306288609055917302723087130323160555817515327423479507297172158308731239793207881697483455642175122061496328036509457122645968694820615923115638184835576347309694057142654242946295044121478924155959566053679747438854147382691198427005952529755486203434781359969358289193498227449958127632521132901947406320761898335010934836835973650720170818108139211818092092741456870297948381555743635274213318540757084681212508081694971732760233416524781690152525589206447874634038234637253126463805034061518459372865995756243186175756590123206853340722200287377027562413410834365190674039845409003044045626263410784169705836795746012687089594028685809872569273837153666621541846113131210453914564268780512814902683342607525170509263373432281840230053568118990743929864078212140044086529585098207274816764883428716497101595989551269724706648699565365298934876284839970226966500353561787330947661441739794580736076636572160390418091559267556998497383150850154914207027657788713402825997445122530065382088162260784970424821471157137032588768497825239097986855101396520009991634430286861703689781118473091961791872706840346362921845370549694841981885895869066604536134744934209139774786472607359673605277146872965663125241579442037856459263155594192539983376797813288380172882110883974653109272469531580591310391253438912589656857934773089657111778131222800812331687951702592694471435616756574193520162885920813490837822120643084464452760479642581804842365818111555345918067120941686502043833925428773677657927219621523178200001572552632070273643220808586082560512806882200253451231496393174895341621464639255723768528231212463054849368738180553684194437881175986735226180966525412734462123768780044143250930192165288300798671286309027549926423906048824740822990408988027014577838681287550956343471880616027023843994312101924356575024892879904471839117747251968029173097522055330141111958226718061241229132915546656270050884417717003105426777002137152205020774098504790913714284466482457026838031022873616740854252344862665346938908475087758999839297714794067751639809756835090302220194823841546974072186550663086300495740439145480216393910313293969685829257309103308797705225267775135659716556163826350527097391365906601185260382078909738232986228658522913895235981357003976011432357305955716041155202826037308248076829360257856679358455765021475741632867297559452871179646072317017727871655865367551145774965053881424325839288959979546927068523423883640762085124538276393796925982649357968437247447460421291169392371951716273466010539076861871387278621785852545472185964970992989999778688990086277535650263834467985082019419193744109101379327599744211230171236292657660701899923920650918608930157575215740466267615245250666505684548815177527916041830402665241700297551584352376605687568141235173634756416628363685960209429598750638060412645125672125334333015447224294152635753202669162232842242759951700144519550528981320747316302106325685737523596474775041445069810212516371972338034869751124819294987359968896068126881047236850874277148131982096175518987472376507784696355358196354938720445102195438862082796841535974383375857420362736277009350860788044483042662386404557418802044381145554678856332872312250977978129839691301927206094282520968897140812867608586390620640346883943021116223154830011966809437232096810656759354181677924886649567693146278023737231627249481373122126597842014844562290369613352188314964639235232270152175735401493024730190678086586681533193653499763717960477829379108585500474236730065636870105044490532758128508911025644882999766870551480399758880757808952108002551458026501237392123291216623927012775152771068616242783686162258055311104842227956184444349909422353706661674142627473627640551843450564275155856247200700200967480603850980637663723188034213317712043672858891207805305271404775344035711421923000724919134167261812666566340303048227214369914131865027576655541492538947934933925647480427002892648051968382873288556106362993823962753905137481793427703667805923235831717278939241711925785922904137344314047399779384185350342278709592531523091349863513227764743554378163641998037175214333665457101352672598506053461459938179327305835828275058391234508339469081718107444843359221354991940301391394834553868071275321557373460347069869640136397508316302819451608100751148004863628664732907933098346306833878720858534967758321989639347068711647447820390555181671781947553599687178890627740781927449713253272363767361953827759751394004680397577481802137052477846015717003870146431539128252327571634125939790705574845004114471248761351328006566357038903920135987284343289583745018985967371784725083114764292252620616062885558849733034304335314095663605794800818082522198568533976190048993618319010720902057261245350656997016903508902285116929301902618136470909351486846312058784325885497682545373009217129459518499985351933837333731770210624991136259852430417634322685896323465919654262256257640749531467849434548915679544150196215764678152655518661827484671162322308005568934980267761571501454347837556437909442270577338129515504685122204443032728616405740583270170170645740539326450675777783882194054958111837877650752668336937250755505977290337884604644815388416336307635610266403032901304242724196843693628513530817761110279581011626474971936005804658498282196705329318762786350272406470336674601598321503670045429459034633873210370818157927652053825210013354221734181297253555481578432244992418350382209405026417749430035219854830522293517583666281181680855449541989614725058911045726552423984126921900389220173678780293757652033582417829784068581520977146305001727070729828075246617059561510656965565621131703190029580015683904106586861390842038399017600509727752995319780650874733224819857567807545460054676730097636548066931806225751906410454306168926441891016112782148513746108317268580657511980278665678940919286537335134991662596700310425837379566054541140790794887462719153815614168880579886176893753925472838854840623519429408729512731175680688870402212715595613848508942823802670395175790537205020845899547553195057327047652487231859964416210794977602969760364165243486896922561519963815447729451250135345062312782859949814014831489054815413065964860088812529683318916874820259770763664574247382689240427628756914564720011646107693526192774031454114397118647273206129290578379082298911415686256562062853121995428365184034710692874792308570898798243753266884067403258652102055310392317332546442357043997711931514338141788008116988363616509601603281527712613421366419760200485137282512173788549756009883105004906429060025179689796486494035481576163206756460327468412835991299245973110403890454857468019459159699442288968844299531193962378144703246286240161979868870141005027173712325641509347913269302849629910336204972890697478988580747967219407387794065333437425926929892798971701887114336561545509742177540669078650435125257507510223889046764458976004589476128479536761641790561370485924417654881164054041328003609283755089425969554506804991616829553753713534894694473204565161041410055886976099272109388585752124095884155779590450302051602122872919533240671592146661827334550601595999626063391496965165573271001847699098408796876940776478374362621350690465516699423228105073301855275741169101289699785781742978053669024203747002638577474146148429382987511016056213048228731749646624473421538274665527536645722294397325513569924591653529352576194699233255473237943504345424717372768606220061524070558777484456424643092720917483407112743144639589591781955347516202239987689707567864256313782309258822948861372026009220443200483800856252827787924659766002184686013511434323286645116234279471558567037592661879810421830923253550440598442193454659752391871987344130503499354143588544820907549101047807761786066744552404826554336016419633202272399536008081687847849470113817673919276498889676464384253049481575574974343137347328934408992202372453924354108105111686174556953655938867273196487074971216136336945887280007902065209926243373444560744414373998379735885619615393173345182574647030217946166463939212019883386378504033674893222022005479190673444351988921205878480513417918930771666512902340883820867832651963367519901508084594520586363565031609603973532283584404367354172837786710432327930876699803754373445794224631306055437807479972699701706768761620488759189615438050623839828551116199894631021903514317814400244720764553102141344849684780473156739291221208495469919194623213299008162880875719409288308324828999882751621759773672086585879189824159603285535154445002570880986723952212005790946007883211303804165492085689217914569901303400617011668530900726666974923273978914303854036928537491385565622006639595860418734487839333757302136936854635181197326559765823302604626937330943175329112178907139115690200574893087856225582217348788018398028762126931293379447715470960403214666987558642488680086539831458985937404481121641857129815749970574706395055548903662941061241704310438101966714359114089249138563316276457219349544265761806242399865571179252603287899096494213414091171702026192593696224450095880873198331939548645836856302265331261928839354255102738594662071527515686917330407128791328711089862053447860759443923249950951188646185700275057330200915613258520895930436515358950334132836032141604583542297283841610798169455815522591182684105043414967079729046777952330431395900890549432339340085468242367146298851873500259188199302334216729741229501806630133209901946655983251610407355503056872950129045458371514679793180336261163099222256184943867696483330204054612340270635185832769576909435182595584540191709536509097257239207941914431208303750972448293745610706529903814085096793387641266726616901797011981977399609524221890742653060430935209359038216748265022666893135752734136791000518716785118119801086042526794780455857759029147927840849753742485164550801912159256518519285254787986179640789794912046402976316033939113126011348898943741228472246943802783787202354566449546749935163343513619184531117929388112680600185448846865850264315442166087968662320723475157266084337886993031040676193353470187064385761651096228831368610497855497595455868826427509054024909133881329010270018256384458402965882275629361621867248485710212682425615742817701027140551450202260756262646312963576288222122861146103102305480052998948086608300541319244522336903067682966868491288369748279125901987076565408572353680768516605172760063979245119679606935916807380579718022392253342639060069838250632214629448498756694575838365805276928381488057124582930554733408808016967508710216511290117216319138944941308587391087777023021200975570257788510394087181236276968805269615425331016284931188518021099997913574655044530495304094571446098570377779437926238970139491409317594811618140159380880139934848813330665102450939933064165311445399461046467667481482487516592801185513532245397745505952534260169425729228060177543104103323859663735735791474003343042877820540854159987293607257137632931011934519148528229014440565142113590138463137565538225439483789005013050744420306378748111466218972264598665150671383209654858176848873460406101128810793260792888124860545621261847499403062371833807427214022058671714317018932527167009594309061484398536960049615624074655378127659036452936034509423830096777665494565009216565523367536340977705234161818836119852527215062414889600277131083820900930079569266272856990622829413268527017741534464243909725768776912860440286228121251034699350782903492099407579613277366595285519125523955751574538161927505925805377894949814842939811784972012478232653217119890674578318767973313193551105201132069816013389467839700676503511722111442299696835029446495620425401639372289854349084134309815849068266016722685046157628292878278352342747546774564439716420583331812241503469148529716380143952060651079578458084463550868074189931312625565174363878316216186830971636895710369996252927116510431951808598629896271238526994113337277029487036014772831410588838121466215337104071324795392783073890060489897467403044329556391092367819854756282151655858330304402186934375665074941309915236269731018924203263264381261552958069522853890296782654490968324044276485084081881846225871617650307867230187193098828440608994555670845504546421341962638846822982666044321094907269948183499744176570787759384200462478485872697839757653265256699431109326917864112190828550706820704181601728969543822011542298240283773046513468031363160722562380183424189596235920936189909649976749542750458310919213905608141575714377306758299805715759300883520527049654341920201558825303449838258029257490934626334014557959638724567336518977129006271258874814492076148893850824512834273080833685658114845133022931074196089856773032221752689670795124294935138649565389848462691884461786537903672526267707367136615283771827836262422654718227458387284621711926856156779603404958152439929798010432725806402609640027290079558133299112758888122291784184225717708600186427734309768441517184972663100261345283771360284937070221753761382022213037530871594673997832935606760412380599766888937509799056636064160456507423886752798652312397661063681062323134425040412641765854149615383712341861923206021395864575536359603926163155243635582707299533912829269207927692137991973160455586844962136537021914684629624727606258027749923948112103240907678761617613843850606842070066743417059793023164609706704244317958883103842093928543939363607122484632653338160859910840196955503859483874582093143264435289525477414886275515902903892587461077386313742225076600762501141632513115127689411787185060374951579451928006529925738978142797293665158116051333272080816309796876616442220910545671519231081720891462861873372846190991061948179080622939024625849605725607934481778513139170213036192600923076032731594100875714552985585507228749558322159628931087902445656032843953882458100676733953656497610501667713862539729079356236527083436144201348877289331080962730779440359613060314059672058000437230934641039996373569861820775206233055208694997095744915633550039370375366982003305071937719728354189590921060764218417550341641179994028748616797063815842577895966717143069513635043715109160924221444488881646489531030300035868198562303935018841590660731895670462526506285597894148378619877012142961407366940535736045585559116196815976141181801214238821719460334967000058978473530685804298946989785846259826755045027884315623775278489973031554620246418606126952396779745587998682994787654547466406085044281824784552530584616464067799555001748939941879551634987523144546028158049762901209764474266305013540718064044357053212246020664741914787444920302832266053505833181015295370473963932870018746734547136863117186592902236745713077037544983700616755466449552479150603891455485721512858280772279406331276758786352420494336414349094935614457904161036248535836119002765005352553698548312041926034933114590460055869921337373565731668750740909616613879497349676171122651419394928556382236951258566605449334186023524339941366799893437769705962189720689537045891842239502188724322108196299920542903520308798772737909722896923448439822119822535968089929845950610855841125752172131935015443776480847426182673537453736369357965690342302206347659184392778754050828883635072963757171060676457952707906492700445946178892704009922491403739628576668170787538330381792467325855546067992798624157273713676658125471090089237626088153682065880915786018683227533932289870380234107483828420162497812533649503796514515432365922622966261891499930189941098234255023067166629276302334962416329756426608391435539505268320944462503611282311790476406772402691808551890547830987230651087353090668284868744903853928461538604707159633643165021753447640853751325888373847591437215194069254540673663670543220746252644035954597749149066660126890038301166734583025451382111500721338460182665120560591940956219625216782668451433582276530223881119133851497043205655930126997737350221213189405634150673381335387432994899598678809801709959780800057536010023829266015580978614037055053599369469718213059463622836914094001843181233974320056904754677904452701029230061234959107012033485990877271870719178877392607788755446331927354266211711949859290854264814091579247098550597059085015933355400395732802500870957211843342910164885581173983251902022133779967338840886072511027074117471824078148689065369298263264209082737752881718391856715853776192755869107270860146988847066690874526770103229265740895957153143403669621120294805616951287958194467432180253501508422924612801697465087693571738102453585730630208507480640108697240112727125409966999809561032790443149972380154190657661062407326996916396341132015940039987392142493862520713444011810153874577898833122491518764613623793395909784972088635016833085820266029782556228774458419460650342619030590753077469001943066594043406372729208614789793933639961078248075004474147172484080637805120198976724439345473293909870095841742859793052631516999559227709369777217768259301384911773185146233131702968024624573464898556516159856768505315196822609575679785912215842522005364047460533915122733173783397034158959615631010064616047898575576385111738257079411839372854844122061968099529979776176087900807665898947717699169345608341098328455413734664739332878193340536142232020923878070595378874259135887025697343794370275182602501787361868695597238470486954670448923253716138655529622860507969332390259310481805426965866393266013206400555787472640238096804197777050695138693986479973938480246127905019348437543324825390868591090190072118521006820899284565968494869253745304576140353793330814394101754402193158562942939074641546022871964384394296949754909934042964732231153331840100153399905428513066948643429906942950952456164987325840029907578637671799808201838686665691954529402442612125105134491221010552623185454587796557853231341935477063531073367411788741965971101447301354555443506270250824529983627395962362322074261855733722363154501868970103964276911173288281200234045892422401453859125087804958379667712520406463463152469278606206465406964785410524204500101427237596145873297826727117112938599702366048826908039183173322135631777439706259611410059155871341937320438798414375786644361931012059782900831498235654881962410255031559323668778472115773947437382025180681496209669602261317842227370188962981217800919744954368924869297452345607382517086384023066323906832352237704806386803079232536254339285458689787577513608632015313740084524403197508496992004862799576043776447434128698546772322622954674910465081770314906369755979743778731883188847656660162877821659167505070926304833745433785310102818920283666612775964602097116673332281979476845256620109933090918508518154418894932149869013582665378426242781004705898577177360389497649876422559488263114447358099616519576443326932158232687090679859665089134648665739427082857032013405882009246481072470546891281817665430488623080540879791597036079091150391902621626579234220074538579390812202576477608248368833780645783825145020193129009853943728969282869015225357701747081388235526373194420626034833967195027940128385037105281091088291620747861319555239082862148725569282630153973917103709530282389481626102090843513722294609437999495073904498337109687926197749745994220030851194154225457949150363885718372018725249750847871768577410114881719583327168859505329213416550299063375802633947868732673770277558981404910955749788598388714988335847995398025861333452816058728567554626317444579876450728132687555750400075424658185817881497821919188823470703201181017470943176556949556927841027753091939896422488752629422718056017946987475375752563801967636941113118752470373921206289882308553804824459045016885621879372431899995362796690631572498135199717423589218072788258404956503721038605100887809202344043455369959860664808550513860078252314992542601933592644499097026070041525962240607428918195218512954558387310214898777510868825632382425708240351763928490351030140974288487240910881549042553358902082422100675397542748188275253874132242413476989336551809979603180419712852696373126635773554074244770338760267247560497508106018169551997266290880568131648342091095626180411685443228513549339253078377971601776466206519522844036551606838118620312705016251808998282460111942980214326090931626503846564161961995706234211588215548093888454010214177124841924218141398727449361395763989977866847722585017741874031484075142803286087421594627133435449774767857539329506321055329494010536460582838315597996529372440911731579709997855798298824255421479935342286485260167514663268184883439599463638217855367571928798065393282170638201046021275573090499511053507931288839184180307550170688277258816356600354997306154494842185181968909775107890868567039890137794699732554290334449074061936962523900757075460438995892930783218636118660405521244564738460253657315389898146132329354539618381517801140024045997308006868863143923993990888191982709434739374109167367396108207399027830898270748302498493708650894926004941648062301707041900413264408940077866465014173022809362159144553190299126685347626969162185259997794666449317014749370782275078970639765605150218712019205213163217727763425194841442675975891458081171526585773519743148582323417122095397817970166149020819036173015507555147260884768440266937214739127419731100829308248503069647456507079888397234066423524069079870941012828786151209663081284079132143248856531022363383946428239864851342897268521136846431763576561903946285103321100486783618966572383448122218965644860565969404548313460766163816567904278213981557656363800987449814412567509479713285919812718868258762921020744803812241584861689877400548951033228848659227042587328990028207525741270795042249667151572653057437287401978473321879085795225464487114401622954919815954496318233921941078968645814881653701414045437870741733458303315351877036981101124623582718244683383623144080141743508898832284284430359886649306019074055106003894007005582770475450373469961034168913436678771842928309769748775484588562823334080649318990937286381859502121333941736923851130045254596936879587437911844361065223161879178982056836341086470245619383076469940264675557130492712599614948679257205461742319112176352291214411355928512339740294297259404217564760847364545096166541942171945879006948812860672986077774360964069533870320031583526305024633493349828796286012054716368756908748846501198440307774675460818216741414390903847251004142716982510252422701859699994140016571116247443797775046782688332874212435521925773808306158262689985621000811019312697354538168034314376453120442482080691884765310246362322509461851824828098676920097081677892901345299167311324370530806288309797954635012237405831120484019864011074905888159118634555207329951207454571276635594091926325297668194216499150612946304362412914866062279344132908939109390653852350558005932362762190362338249483156859065343452732169878807941493742992818560633639969452429662167219142673094314027185773011769615792255118065019820726162295365283158959171340612515759313796312404935399485449505875721737797139510687819489646033273485950630153347739733056580343836252126888713144960270216104419309992309907062850406403525433065519864017798622326638393582017709797214045762185491078466458344411442272536112459655755395321260052528185135885406429608268398190940965011166557106077633874536421883996277010214310541119961585453758512626856504522532495090921273856985267000337733576157830850188875040359981435654618104457959656636316829125099412188562460132256210602454015269323664037991589792340621200951568209637248433534311273309831904376496665507495700196943853818934615710866947125798767144112796062367067323704250658716093989373711507826901411373513830234181555274569546617442952814957824130593557056457858449817274768093224111877578773705093061859312637290760240546237632027936762682589869268736493352264606637942478888022310340989664239706735491525687189700297543338143039358262426840472509857680524133638626602274558226734572784213101742398373625385341712915970367880505727323938101552059454113214951994319483266267177424162356892068279462603347053546512028153239802607675443502476436211009389682686187608724334813209534126957692649980932032126911576106761788012478946094514810151144541952645751161196978624028925159480465974026159802828044385515793385543891330863762504475378558832642443700955242106922512025007657683911855491398421098145445817272606373905963603535747015762737366806427137256264035080778632582905842524247380423127305344649263834237986033918677907422409022457620336103319422730614633384000595245462728025727575910501575732164254018966445396798332222039258662587097518230495984899151212431114900156041728500084626480609924098982612180413626980642839353108348653663984485376155897892418518951025681429939504467280123711847314752471438349972114201955915601119446271921311529646175172425661722247285388261169579988647471733748741237489868652329764976110756789728793047449320594541671545545370230007658241841052618996233824330445820333897102331216688501321375633380074965412874434252273603835230852524938644478277681957913514170737295539123470911787775413355964727683183000096805446783163701725588676979730562137929672029381030756213526962225254948199573798015399531068351931550538365944328863553624541344628382916791770806011359597431386948189190854731521327128699527313263203250115969225951328679665503273350255201705327197343242139998766718706438930770672903027877065084973696254681364471544802109707930102359533243343324648149340932890426451657667304390575333298077123215990768278837999620412551375295206347220106495939289094160986060834095727316701775015570280054558511478878068589926854569852823767035477181719440292339691203686347044415459992160478713245377615857108366066428344806686768174375220936234170907147893077056052393353926066722526131643711318632412683616517484108601188320723871202902849540910081822130633114845291292704345416038794431358842962253877359655184921745830199462621678523157187461201774889258349989627855882132972120868458525306330294944706519093457468360760913164435995807612839953482496175087254890451521435917133035180600863516063993284442077666482840672197273414297628333398948595866873575683110034204577110410067976484836965667154448693254968938802750396488177151598584218497726378772699570022636673992999289939714375319638679583904174838137352549189993702350205052030497745327320477928402223059623593634750025240220567555458369110072423246134843793633349059462041652558293073993579284506607569552988386289894049838319462804502190802943827342721079190019521525026253890618848998534735167977872657216358288666562082538751435038514985192681532094667428698090546779416702917293654981263388269877735987304725759067093174876058618986752945433057885214003760284823959350874289757689450309991978109281493539239431376746025418833696922580956288107501188069818061036295737367261978721131109832186337723817999093954157055534376412035877207359886333551398498755542503212745270682108429280225598378840944798297920328683872722313632836688361683326199930669731255141566729507386678818311291958673568589503736468598394107023319092558129907464235416457622311473286186359106506064674989202231891858747164434322838676205371058314072681459065145704670017443613577427307183622282088707077075636256007966153110210616377726504175784795463166200970646017954470116611836227714548489924918019649363110511988862007546424442761297404132750560488784445714172239539233796708637090759982317029243099936950474223837066947080170337802111305729699429264217441143736663925646395891803122416145527408827671629918697693955774224076501728564259381233896155869622013566190083324199208898925544029037090956113991056330842015206177085368767945318049737674699246554041925124048090312515755170987467747554368162636289495521923056980444013324086273935209773912610809769810402504621886632399705009870647840471259861467575491821452012303867949738161372725574509508039725075740040022865162092798360661463710613815276774062631081195754227525593151601159756364081439706125172951897658026817418463483820394332505231587158925393764767079540704917216111059925987051340440637750277898042335417903444856142073457195965300171087250827219369303135414782753853765764085900033851954975594500043662645149082880919165032645032002156663805918961208448001289518613390368452760296950801151769614110153163004368492283925159547649124866210744364415785738240145751437444690373830690742299335184640821691435012797763113613921416726263592055507258248335566310215007832747885025258075155983512468662529292600903366742696303078052470052694544041934593921260424951482597585006729038444065763169775610605196940969476151093137688209307270500956619222548635303923495516159245659780457064837048401286066676622125695652505736296484732283704416410140227017777387316777308702745936340858588466011988521996104876485102605199924619808732298047876973682883764587164507242236924326905765334251746965809131421334275084075611869344020148179912697926390896976553751942887833179950540416901651129371852526553067599691826964317828584550327871274179929878088456076422575872062634604614656733892423820082133951348996600697705076989702958601758773906390842144417569234038913486115158627868941280770428231441971452653250170367883721600922065769787359335484346464536179664433081054212725360302045088186671006618681159469402309422695161514158972270724548832735102039917829719908451662239027726266836699307834736764296341059233410572022361157787472325390296853430551029047308204622213122426569148979587638679366835416960488086637956883222530498676030089269309155112293084522670109730102149780781204950791032397397767610339388980059940208102872744845511355659718169562110180909343364984017346130513499665112853829877145916678008350463201343651025682602340314064154736454734562925271548701768263556919160520234958349983001820293247329352706429674191351281528584451720151735998396127170352087798911996686478657979773434481898999297523689106475739508118147688871878385050984781685767992272230655871613458898203197127567492156088847813503641368960934136599938642770390981325005839937684435483011335820541185856524490096428112267396676262618319016820246132555539628286115843474462838274208011282371068337992943673426447196040496965812843733949353150835986596772691506415299656282674882415708887650637983049438935380114826161945870551867607277019421176378214640344339123869573459524955234273674167038109244008356846353334767181387630597322436025206342639257692590276169881455900886650604559610230891677428083389785093998798589843126933528276725843935113792959634508202495904234517501397482583051361496766990331701410431449559684498176052402566873501144771421014092105380341900944575108509536824466304740180019576854918470361628641639536632182788442280527564866977187515970116676555066858240109285210709028981578246267622924552345170327416734916897554077296056039524004957399003969475590987079826887140562938003292764064455228536443047918104542170440199145076898807538036682038078356490258672750347708586037949462745946282233631225704853670316810814488778377554420415946886396897429512954020170984496688858554970685544343423884947722415732818146292338927675877867578626526048819610917416159940018260790877344711071907714396430990938605824853256194450000784489017173121620930288638638244419528220833479084305317217795120436645345910795366893077383379359311301519735367090601513987112500936748051844610815757971300268049160445125734873969327698832089586241322740665787373232452432906194019182522872418432566722117454917379430476519353523017055539027423694906186711680254227587301547618641654141098774621340862998741596025090476096587098026231203564874470124559675169389021162167034773709203226822777565157118403610659208284266226121250717530894566531879400025090751429060351577293886517190617561989996238664717092220683944124512005640315215589687363385259989346789726012656722961201173214632752187250525456878358718184223172713622065735094089652537504197969778729267187626409357996247831347147937844964333730724429662934365256652256726151190596770149783720829669867741325636251635902746091473363154945937398501526240786084104414111314470116551567695449670029939536146475966732202780538889854339218072782949194817887948972128699207927408610565402149304006969037195015266250453046702806031037418810347435271173230993183879286441899296057166005382381070590805921510027472324193837544543093659221581494085189561867703940917969377985413329399327025885463023027272086737805026789756060880031948028067079919286930276199993292509108546310658550654846679770215059746323243864347337872210975351822677514966788498189445260477134193587815145727567619465945017271541035875236869671111006960331463272359038730266018305220014466029935735441967491487105928533939035379847232757501933486134262015481386495067617991725880922378032702149850874898826057162621013705657302854579930651098226127309682753592668793064803827379057279513939958573434428516959018571861190273642414786789748134338871222688292202338884370204310749469131748571871407869490557399827702074790939499934964585863665074450787526682514194841562219747878482224471339909970157664732728200762119091226774104579264797606213585699687705534134403893077698113773657117060579796944975715571069824429817015156578412233468313646791511199691034755292310647400091663514186493153731372511397977822453449483431731617613534883616878438940812591004403522634432153660515377692390826974057040123911026701483320345596227599202620836091694146562821554977034092531336634871160436548251989098503220752293430690370687723148248555303514094292909817728501888102287431608194039237327254670616675486012754861628187393840638102413543611903716193479926893869153798950413540694582158509970673896045491505219482127959501343848269003636825716668910352001808517490961654222809795912803624668818929636749977723563967634126306336759892219224969877385759431681677014060035767730696872130590031075473389675678234166024364537316770916583699452388990468899302586810178009833416779028802662997143135674755564904829030024374765581052508334920130441186112728220952744878823419520069470037992622228272685037307124216376608490905746092157093731069579034714843708085525690945733714811379334499699371877628223493337032062358923624474601105515126322980269173328464990839954678476129020366817401945560664521574372301804237366995707237128535932937068225643593831974314438814150476200694059729077788344142580610863807300465357330553195956480454058717620439939420071359397671255062137839947687209695036932985345358933866501100695412675072121717016282920847163528530654681610257453789450421930367582505054114348789273491402105867896901388026355546812897239221677524031193963749529077791046277508284445238701249132512398705282014403921619463926903051466909991222659049255551897134290759404474492157197921864890099912897932917950719301652610803314794891392408390451464282070059743670789778372731210141452095716127536596402326337167734033307238404341630610138361309199762207238765236606513783174891894406911372508034782580575893598630606090397466950240072873178778483138285228923658092430553126934830657227401353633929134692290982755396083459877719993239068394907067790733513407896870024924967109294725224593297628688076558974905018778325234848855652600953413225544632210096158170818277570689020027530692087641905912597364052602456686630905889614283893743210581079563752312593576936186274539211937036605070564093151804792833608034056202748163528665432881252362590525535128235552597660959258673288336364291629649986993901945821918804046574729929911023353621094182145232131134721920823572258878796858165321642755457308068612726754455464335332248105652872354636821626555295576389522123437993950284790736675943681077930214554328256157685136954492530228488663310154826575709595227832319270733549738064265652870140334786743644742406529529478564738965391161698326797898412002339588455986057461003183674140251425806906882856528281217914344830210073813224205150623120175656521913722513389493418347341984023981385493582123634865771438307877207686424220445832671762257783570873520271540231277009212150450023335752648387229309510051727574317396400193557821878022091714850827712052336047821516825436216596915266276657704376355988502981614552475182232878746775042155176206482071978741184764913222694066063623935604512761165033165783467245958119437076472926886223383864133562101463035869622616945532644093098742038374931966331527726822508144930242732619198482837417409004985138030742133963274732429077714826149963553736144945543132938626014302838953406411949360570474699471426812401173466940440272430867240381859552917372469739709667613215698109290736844196386026810025123144388153835159637904764546004518803019690021917609736372790355935007299132540245602883835233469373510906212829075530320190744770015153122988271174350304126777285407099981988844153238195914339241689954818301867442683027902974944145005816705118131664660188544173920812086436824870492353918477587378470974540155838636473904889414989756599974734611393125038442062165006693591287820020083703199415197450918059227457546355902360171769176347946950169333629574632294614527599998775703598573101733099830297996478737054286364858590261712218622459308864338404482145857063513457126226715994014461128451673195008797334767143089230178165099977844411438870831727756419771106195358701348928647473083672096059209917419122601913046429431629447233050302460648100472114071678906999145952262609675520096566965310934166910126689029271825865253618223813733438534476179678105738637499617360310509932205191126615273617888127910589179591869168382545182745874043188726559496319135796194437657231591630229602219958750723550465773995414177209443607521816230082178604108736354741241023308338625222073846347550025511497107642340230217233144418961440076862335948418847619124739049016772697522626206593544484284527339588453244210775199134897697752975483255750561980048713650776653488876900358642696490892773669101820797149191913412378576297836034960856317444803616306318179664154628639284464202697817436301201334395090357925710368099493833938851157177915934346367247217073051998794677170684748031545657866310025088990998535705011503814918781186460538537701647972512612861625460399110826241102888266592768315732886997993519383996745404965584725341537695464755431043856678401983651483235888242845831346867824446601567893828750175085855198957530937466686023290130679488150015728501664617465163459107991904623183460775015562615306644280358280331951931971724219935548502046360805442683927958186786821940548194544230451318657022798285487040090983581892365144483604724267472840611361795056092102287740080609024666756552012232259323741071821459980440083069657619253061995579124337500553130167510948138762807774621547719359092374401835513728001545378587227870678434377798291558592824337844254842285479974748987143523734005293192432058064140078972083420123821904389054271367298647251832110017259450012156053602944743113890174276314487062154689953258914015727838333685457809092480037753323905340698400728050474237475956585919399354863554366138294451813602375787293575973817028042877614967341965443698751352225530317541762595553882206200365965935452067749549756723568025611179523382687810024207995953301306687304515878776605667622139554350438457988201989500502754864853046470460893197328331632234304497825927573152085626384437055630974941640200722289697306328278019008674908379967622320435771169626719859614579805565603621756628366128342775625742410097486326239515693223712960979592416337216998512002020254468951066399611836597353602589011703392190861912361303929903282484529254093217536299214847637439261100510872089757619210106451960451476107770022960267507845840893627398857179101817978912579130765085791338936733093000232564603955537462580539661681658472257871644557815942169323800136523229989945655180624364368201989657019481570578587005866234633983684344282347896217310199918868774599436073403240763841159946221938991133199973180686517634181162874256196577865194793459940047798435543770209177556424483562253553598265032633383792693303129107977287162884928070449162584337042490502124346645062005978145979909147565526001233935864529465372243864876968200652907582502820818387286035571897462547204069722683703784814430239981258581059209838343176453454929529396963072663455476455787689403905267304057156197929996880185319747690629959088014936268382470078253344115010066246468607698283573279552254813526572112822186984677375972115318341296193033362199474158690549487481076478515861452679848720271570965516307479264989649978205535886008607623442820311522786461776272754264939862731307729854724243384279739311985910462433386815856832849353195530826458431711192740134789631353612035622216726699007500134527511394546569916647739901236901658704326314270948974609791207231746226217172047045749281955636358887759959102285787042034237019729104214790441424141257900712804105782215290954752104452531439060273894879636045544135858982124231783743308855614992484208457956798294671558406440445492734802414858551258910449577785237122062740084372889235862616074277271281191472558221612831469091553674270348935311337380863251275375943917335704235125077840009690457011801119792657435440471073642097039529007621732297259025736474707851079363840549665995402238637939317587106942844742180384951410027714137419225975197705311660747492058952858261987096685354221658210178732729177048240606081694325730019705054321944083925373047503907816273452489899298593887744114428661622872430820844198989228530989497566775667658200448440369552934459714699366857926264604235575869408215107218818646292972895738802167571116685559846901519631499356019620776645278804844619026719664201592212519563375530044189293709419801563440205587067395355085291627038467487997841642981906312767899392864052683681754015109496171937885848555647359311574971334714771256316759268736937464146300977490053116907544533688552837784465007090509331431083423812933276868439465803698169919052759087817317754954279965457915645284717532523670346003301839210447945146232520685337403350847630408008988564412253235839321772513531123180978807265633631682826545157339489954153008083182034463760590759972899431654600832757039812543300781887979795797267302939196213497123060210569950855207594427633918035786018986858067518848752993540065963699519473116303663663227266108910395033698938010716957155916211697801691757150771277562235883436489605735566659633603909833619344801073633769610720992505609838856361949414474043749121315974277668936088769987482989521286742659296175602787718532393293242094348500146638468764546393828405199420049667152812333051277664805677609695316949177998967343997690637169969830031917198086597137759295106755795632723198825138735082934387692429141573358770664159468549899779661550368002886738763382221198230641992828754072856914442014524827847635980241972245396622340229892650554918124441835236945370081343159861760046987456489467548796662102544498298877805433867902301854413552312420915551185701061415793194646150202089167184023046735007064742444272322288662132544754639638667380550795407041367541647850513876317420034547675152022116091139270781639790923648570065985951771101867350314285208925665286865044608073266640177099277838690181589166944752414825278010894351673920884293818984945378988244256916304003635493269574060627469070539822434118474479559955755442608551854565426250409565706010524284827356557957086015757545360303732353699002948503623869227006276757718439247418361620486800312469891081564086777316540869466346927386916467389513966293809631706661045904288800100948936006734058168476367911491300414335716502498106472772673520895650197744313375443395067262019932988188483719597332330893463725950832423496416392566516455817535616560403507222477532730015966546780509792940690014079412068240615700246911421125757782220668959196662648776722201092330812159544037419070689236048755703076611179174049410829129945984667614429866304160103250771351302856141862204961401829584590747881774512338908076744557864548548352068277913686449393288876487681912516369829214962250627161649607154207439997853657597853873002164137547751955218566124194930746998067551122746615835371366788579358802172461846200324892486089707577281504050286105632146823042620591407117884140250550701944495521899618855774359062776650363769741297892312193139753154921437949249973575750637175447224020161169520123316616494891459376519077590720948351723796694673531281017486675567354444562499485878146993546892441530403990022994152439336805608532983212823063763158225307888321935391452290688207545391200324824313309488062148830192024941773553962379809573908480592892107997990077571133379413603028359984254989441244654029884704110230117650482426234051640820684222718627377191536463090842440780067166578341278365095247264057956280885518574899119625118831491480790200671815058359315369273705691996388475456089473765035715800648725924165632436652946165103091131151285959380744274486524582606509453599484762864498345534162531083937197288335471996732082181271885790710728930837184156873686912327409289181189023614761443271611847218421829637727354944134546056982962096570936136147373379841134839648854557971094684245637408033270698878678188160939515093556780601854528450528910674613008563402407480547771386084877358695832622704417010145868405196642313716559586669171927515251936841429406358525380769391776072365062367173629796284132692332835506989095439357087024963334619868279961564743795799172577513559130783157610395163443948728975060214383903928209043991817715672635045041665020814518841601932687148932897191876987780299962204671483110227118336862347182505474555736182403960053845608479382121975954791258418805855328246992818899146804433847721335805491080445302923373326553706188190999127589400260886574478964138463403630523763563857326939033752522364958190596038001791251249649382404176605364342090053043950509592883678132549205704314771662672258007311713439986039029040670008194260898428798440168670610392565578657046056149051737537095202072899105711602668769291976873938615220584728098681175902731032124585682724018041156926121661270998057461524248990583109065055755311034890604624377821747952594472458931967792089612289033758427158935890676405841809473494968583321951362988514302021679588356987048937064239082645849848394779717243538928317592326330504636332435747228629536829543939414876172031291787447230140305625174045451476959449770752547886557803950144890354000040027084689226163269604289244596819419207083468620283396503079301264661257141418840427797408623062271229968535308093147327979199749045947005764495294308840324337121974803991483980049630194526968514918325404794171789631569521246322982161632429318458903528059797918460725078901352347952284245058693249473626379993697294647803828577803698615241344744731308533057628138308238505736220368812413574066828723392784105463739841446548840514705987046258007435381833738756329129150117740874850534171880100711074595219931446055890940338991517550165809510472964328222796942773459227792805664435416455095630931628763678851158306096496001264846502337618510405012226903890991553484558113519888371230542030837589356639313930724833871100314098184855520970819386580862247022575552943556406310299763452185651734668742864529670139423403246356261585311530256224911740329903461082748809552633409909455303022801463990470322586764388705711460290407762420666315847977838772579840025953281511198146744114609008555724065955879902816967435055588789949633685280866347558760606155204587313450004324821792367269677685564685473564648255934721439261971028316733962110820108215561929791328742483510386540917863626938366517857368402233104484781087113251336709469350103818510657328317215050289542732429147388090851775520887240454804412637983710533623729859408159769179530583996185497458297996929527134481694765285377420502777928712611383737462862093877570035808841616615928370745611551338657192470381648388661852241433852515159440059469246686827234972726227975899897450912796832809742837857680351471639202353460798993738790882603675832963967092511743045251796412653904582751658379062497726688219747841075088221464138573738492911565088646897580728029267955737558684996019460196642714093113512750110624347325733210872972802193383465307006582605360805372405209551266472893754369504041410150810886859461115198976995414783376064693032589202847622167035000667726699626477952616106544781187056180256122657072978579940757645687354560522382516975589074486593367285147660681175972627809299713398835251272799987022061257617503615759625370098290058085038529785762519563885632184457684482207351013054008165527233712907638755034405118573038941787988282988884549579033891251711296884383534564357174100626864516303546376717480879166725330950484784887580664086806865221560529739942506389187864786966180178947538468435602481593263845264343968012594873884897360685272992692023944235757154298296375514353065446316753877303003195734379281641286948287862770810272780997162115336135234266600309789384927203600878027901398323386911204855147072952091339629432184131159070088018383785056425322985781784318737950377382604553311992930657325776188284667979481756571307918427805422035089094867492613402296313226831421936756542146325275862567389113606794447368533099997955328811193051020594349624608009208697427925568510839493174810755910747042507687639050684463869252501149334664457787624216775765341094999972722849285593899926189016959612415932753818010820346429182782334978749364215124823394154919336168984940976235949000878447599631133511119239374801865715917173701229407546455312246632278708532355794470285343762692162665496118708709017309176741035673335699618483375800734576402630304780461784712532315101483694235900092665508597542170097925920095995918222334739661002664034756141133060806115350876352005585109708559006331223203820775425217642542097809004025248696341842011307136304345072000626702006288795120356678258239783473602359216282764922292286228789278594605562563324522679380103845770207068275981069064808393806107604246061335179225662852376846111669606711935476193833425253613048191535056872057868425086575356929531314758474362180510540066025600851273383204894322437920426560538630942948560761921275385175033616055908186135019359632583262266368667932248719080501143100683502465899816812014445330052525297944923475203254252179290269206002930265729025560868112820653448835529480778286306198652942912965207940884883151818444300088980946928639003535727667806383118413032271614932233458041906598497109072998422690100240247644583753258226489025332473209264017765766773128171273355699225972043607231555297376537772382307115656939522001235796493608972881195173280722470097624411936883421005322997341585966000200030715173017567780358970807894397507014082792720611689840295535241436934466099482150681251667145618375953212130336361405606618456336959962940770040766723268215303635989005734425228536970988347166962726664960340109181153860814826579077553663821537343979961764648481898211400189809181059342681231585571647386966522657879855775558229731176212525855030809614595797039163923071502845268028280147885107162812300209231003019177216937891451654087405782340637686611585432855044587083615249476586620157778622393376111835096509586717237733140327507034382638521038972241817919426276777355585307420171245402817787335480240199785849689468749832379820603721370798291221405729100153306799321281999690814511326824741631642884342348919135044045848732190779063388999980701549591551111630947171492584698682257931615152357785019328732337218560896943931941434086594471424841811359788547171882507928629437006713093404792911380481225011379451133857909399154443683158541574025688286927913268201760614066002708197677603640367482902814073663104405382936083543636331160862012274081962876646848323107963296404126120167078718559384861736717399681444145197025997281112786894196447319293862584683384642459961702092575483281574410441321654530495060898887840035876510378091351664776840381116595696440365363988354866267485288848165723194935794040638282630757950590358849890494772465394216512625420338503750404814599366322788030546767779754972653085032014158277947931645600593228059446759217603634031100746123197741789154526957130686096143825246004945865217639934435585449547562231520525382236055811259698983530837973995008086514193513874713636208263401887666443001093279037162882496579750357060065990136008912321810895246518101684373495338375836232968083859407787785518042343589694907359644541734708805538506389336140928589462001924906461968836637485241665168430472876506621111763293263650174311205817158191680235034073085710328098171422079873740587138435182468505193403785583601556427755221533995838535754773474482658616624641150305211019894693900127006148417871907856471459119282063280251147019129124769176209869775986829903035759838676605294159381800255616956593502968363374793784782156721248659266255365106921568558330792916115869641959659992006341707456049291720019172338459806796411681660566131075399011636970387753855321699368682756723642580141758746836963310203303466917508583902942888823845944383624096215927678397568629693011533569978540568596051995253370449961096239432462119694072238999716637961506529479013678769149687114068337196434605320106234378658116363976304613289971912660626196002179169301900207856698353554689041675216955325108376925942477918672208028190666415842941792801388923689650100036902329656663950177633853721648695229491581690349640891119192213617430492590756620915624362215664019600589645833751892748139489055530374970712168516023469355800544081853303400132545990337466386829479358221204609394769690386731428295817432013457138807805461313611002817596566193429035504621586123573100942984519520160809881949621785367501724103164297650014256072310725746504630765872398795278442934279359104651677290846234986803337501603817812017846464330847595501861808887696999218072198013420805453147622466711932871127364987424090141442119756773951635032914807030168659684741265556890313335934562956852634413839768233435845106602700796863656176507602384369086659797594493165171155702952078249253671757602995180609089614125121628993347838234446265701247202715655777601837411782877352555702700473828204272504651807723832247090160767135031707224594779577662042101996900740505242243217899937490304955808569877749556793945199106545980865470805071109220956899533420777941571824339323764338369218902050590980345214797385079308652898840841625448864754472797228375579304619433072851533835012927790801831360099247053967438671094660244195158267689332226133256578352252737067183889288526817906867191393245628579816646892633840060553642270876484732177209424915861942931131442164402914593626849081258538832681015490560307118928424953004869888819970886702253877111985244346660000322662885218405048682875916997481718374238820777870760616051062418992073673564246448628356474116497675961684524948632109551975971296081281696227122321009357245437884310661686065703628779270273606912466215844774106624489058744983112932774187482955964072949557166715262471700313078477510488909807864829430851392012293111769242443674211565780466326245120281775193277174300389195943178955967033556557081742701919212793774284309255399225774175669912246548628935255632907589809494666075951001758570533537391119077688539180215579741344034149916298779376262600680613660755648554593214741034896094149877009555174257732555146248588361137008486648883240745022766210020651685477577230655204514681802925353737773617339976582354600221328286029357085872473753155214249677796032409710540200371887740815955499382652349286273028084193640006139026012783351068890739845385866114589163101046950137739140710411911395245167159465570550477011205245394397968136825220718362708332319089220282971075124346528013108273082826166640021003075695059075549551047765246956341962500914655270593160375910152554464872120485026177417930294942692316254415427732064293721177353981454177764506607829722536913050143658070785452985078447312645171582037981406222527476057141292869539627186110643396493133150062085637578204753584396706197136849290138065490301209625297906011695414486221158167034954376450241616725444059195278417332502788316671396457979612607443966898172624394554127538573786043524245544465536765609522626243884320746634219881620398811475799287333074161614142442441236932261261005237949438697352840337424596142152675158488154799784111119181267151906052439076084960098273338907584302514479674174770780605205947266862666451779485694224952377015640673342559895342157590437537466683291368698557425653504437481882720469189838756330120155503776259975742210597070732450924155811684811050429403251843043025183829456956445579513343326411164530941383392935265669607612192616687288658356022676153860836282320123009420165186512533959177363812126563690240235974636254227616777285817493788883558769092323497088984431769997587590255792219713502695536194356324407651117948099393107183221010147127586934158997507279443960190408938543513210531513388992444166326741591779559302025678347355800448498385785951209736670334508699131359123397166515736032160737618650858490974609438099518858048481337543571535741128633345670416047014580169752946878441598716423922306365731812030824938348496863780624187862846251217265616743036773656564271768825446350082607740474108607343559848662911922696564736911763867874428054346640681102877804818499986943047258720916821565989570065860975954137792839621993887733605251044133464017816760480036538218265246635137571446981529120574992149610938857650611555666288518289682784530068737498263811788683769649032893558036732425881582672486894441502228125785393085889932928908952781264275786586101285410983276280319291289553665143018289822342987294052356946603202421075272879587836315341313641442984733525042662635496074650491950485807343396725442575801915455427443293293571562445200348660486920361391675575472304772332815177463056036677300637140959098985166657736696469400456651504798474745435932972127394674875168013182673960807545581071137925667917247335585082513299719727342273799563026975781988297200053460492477365970608945949742780944612978817187616700737554211200716076083783742892422762592407491335242758796722108055452600429499027032840908494806115580039685987657998429100617946675546982253654579861071836045475982340248098153464797677885707542788211295396085400861240980200277782030769426346539809333992958150824549346204203507757994018025115812695500473894954257659919929715190121502975483162099800830099550235781854510585550110680484730759628950909909978907107174883273682102467993378800779219918341980956410297940653895872790281946780253160476418313006895002948985129886859545950458006969986012445972933303590636376286876320010138676807748777064038942793161894565378581165798501923704581957066014285243490314281425941673910402813489112373094696406481162058110803515853130460611380205116802530532802257231406206637478114786239860236268178723977555161951435955101784476285259727484132318135949561832108579378513358052574526314694590435015442477322246980970519714409279404243377087969063848802530778186222130760659118920019483976720784002551871728497342909113140303783419321729275995311262009923960831672144165715731418615314137801886065550250447134957661807246033577945026354418874808259161693403309468874820032406885119736329762430836462704372863673054798656051159786035062307128227600553723264981431085908099225990016644790527799732528640569365701640846013976728236112694352387141477548527659144392328235117030127396375022673272113332786241714937817734564911234877552378058024348643069293322318642677860151074425247638812933385994782210775286027383617291125746856838281064621099376432411429602827645730996810807862710733434520981640532762918429603022179151205329573830552090231605610747241033278061626691741149544386745545478905004348027943962081588977880696045039818944639277435203836315399829189309412460037296708750970232883431743965600220327312036164117326374337879036062124631576724659752142979125808689991107157290432854130567217817525714601542457137185823192819936274654383493695063720833525469476322456980661457729304520534551956003150779808034131532323667632316499552997216934990608909334820622466041443558302316237531820107805815990679447114895414862426424628521459190294450774616750280765296479350364543658779563595325660275035224945741290254359780566600862741208106549150077138697290852853570071796101463654710206058686743195877306370264603449182736066635693635468845444497604026612871243103936890500994834252580170091673722518399959113842757987194672783463243773112206614159975719205742826284480849575163369138725023938992076158500939066283555370183877723437434471144780763136175999780195657832107455087608907817974216940017625936919491290241570420725226945943355986742207403801838850793466968360181049222867439220443203245642092173871332104418897278909593819803842363015583412978777172013486121477168075108898135949493305849746571048074232549283588502715193355363214604110171464892205974721260356128664446462818628474649382852307865843753307354212442678456318066905302820838191141123935170515047974574532303995621985240507846246311803193421003997752708072548090581107225483234987899479327152988909003913017653250521852129386624492677692507662743286827161791076947373485734671123415216594181774583604602657197253378760743711257549022741741203447948079119734294063171351161551874207621577099277357767763764378305765820508157831460314802418245468831580535077067261396024301329097930479261590909720258039754351406275717777934794219968687770593821488759772131274311770825271391442398634110739268339693897199111834939973516273955675260060365095083355184217584740032755597699677796909126747608918295389609908266309464105497975087927485821266828366203664955671141664464785980331143892594929108100229808550169631497403767288240684315974949519937842768209150130735061103732552233274031461603555303357593270305919596752016101782271484737250184611582194892297911560127472229675220251010718111893627927631369301756933420357132609005905673394520933830152521524052257639836184432949993568829566313561063571717942753070417208409346082627759917535918587000350714434332640845504216022191771069449082939447302950439056737793378810461677730337834740280534522971901267266093037130818410955879817165557440896957386177508478786746748620083828960912935966620114865995871942055205932986760120523854958933512726497325389214754198678165825644100291559627431204521601837136954788825855131270336821136203252336927347708482894999144111945087082413066750123704425631008972178414138138280137724348389691441556491163860561863899236305318495950054914129017905452720803671041676633803937394069695045254382857753171460457432143541525314348518365026599512816633987637446786653886396595570924919757631754325195709865107344705080239891260063367080906577004254553483812274380165096891159561138726675529406812268520408199406629032381809834036239701826087296579493224083534880269656436532623185840120972581476612642004328485320653586494302710451502298131862411315468549574446017024965891000839855933425908794313583215808034712612183755730425862815057992718691437520602325570068902938393462475814194109310550298106800328993697741198020346238390180436237510830999485681640253838647861904205919301192370442692541414833965489560482480533868527368981137689412879369802534532631300186143393763849558518167562451560929212621613120517881221861256672862326697546682549763229510559613531979913983357744841608514198347465771437044194563691195584850847272953491569690880294353582904640867172513933740263638150590967953612417943495205844388164791857981632675718980565964572255495422429661471385939916381695182762677737887499794818476884721321871170026832879308041996545732767582617027105981235495222808295687754743069140923255968789700436839498689229443715380638252451185452849686934527970948290755298453385192589266636611435554818796882449273618075954758703341002193255117618586576410006783754995296044944908326698453424135257871943895162739659066939880626670019291011837227436284442106810923264210031466025286941761729206116007853340933388660726149714215364490293715447352006388451292396677595448425192237273502500274920466911910198649450879882535959577026232302074496129296095910503887166010594470643326579905550328933331169888753294335736726268700650896042834393881935519410066913987048465937156909619807705100151079915521444809265635779807887374450592429141880849129959354228483407747239087526188239745883593402160989263608644459063871209369606927528302159371131477561688054281063164519971218306139840099978016214342989111419819734495065927636917283921044354533132106476877266095462720003617849644655307317376744599692338247063398190957603528581467252886342268885064740350408665324272952060619265510754315900710260063062768007947893249496856520778921087119254597688851547776029126096242642415658231771394465081900627545080163300643416331260894905075667584554694911592855482749379950404487379469766863862398856237450252808083621675654931093191093653085660404052976144879378459093287224761107074647692273062043485470971849883296361658395138925231198029669129550801156334020981228268509951009633949253906795123004353889525659231599905786093167675349318465861262303457388527570453768659846447828205648763948406346890400796542369913082571806802865498321350646624692354441736657976410199332759012274079653379539512340940030479476349199709416341639315770909137483377949150772473121636805949505937416753636878801826100385765223952091249249561302750793919562688353060417338104904113464460408027518406998393865188444736041019423978227665266174968378046764734937737690960423421749638213648159850982153349138309975792666796299512306842943739183036164047005126011984693199260110126690023607133580172457181622548512619424073183920501144489472809555177689952338919330648848738448866101339191003429642773096577745850912602853577234662392766694998671085343175250587321212863990930892866644390978649995524982439960108373055306953962000686013149826663016050602427902098340799629949573657954834755411757742399860124043619172693466887875159286003640872418210808211756426577213874457391028387835005767525915028254406600825937983754985482373236657793057951831682939314077434093520466867151643311791712787795480124449823534260253752975984105368004514285684727334716868779342453815526043577344187985629786243473093036734695902067771621151522963710711785600338291793908345688893404376101793327798934998395021105282303381206722273417672069521374356044521085506208887570645692614251661080324995007294015354723286878369311705760404687714037389427732803300426739322317762328881787622019281830670786525789878358779939218571707469967538771117379381629630738471975610287256075401447675457175539891204305999082185147493591864050495076558378389484460634036825419249474735701486990442592007958695262126622686904833176621303949936162100484923887027534995533870811649076536006857463787231805308247658667437111089561412420358403079075011287968198026112811004853197884501820603917885942189520167363049800784824839554981659781082802071583138139623538996820570531934303302842696608969598725881401049039692867823847991838606655614234001879962971631277855865076081117377443355012740402343195889387588641139308649040564141016715807490966164858755830499648064544509089965611567481348380667096828692985491796187040602240078614711110429763654687696387179462992845655174158790533338545158115559387687198673710289129728055607737406691817200534199257735994226333175146417078979455614128233306489498496092044006246593153693927825527618134719775396612695747539480564137710935596066806501738718182850602916884278922027676040702539262396931866932917504961680445832714697569990042414160760836967385836443527300920065029020334447998717407738955367450052761391698775012584542155431258838332389461305875192315804203632902174463529580756002648349499718602919351644578181948590534220831816929344503272321827215122922838243824222796715221938110942331417116569493530277357170061172416513410019553105654182495112325775574567682854222704329479463823426546669080668569137160593289231948209417043532504500449402072652462847252264887057058097784882036996006118118221232362030938606474707631165772421934537198115895227408725880484976036278473489976888339352109574503966323987010557804830356466691517084107764501469622575181316992709852052681009598762257640789951980981699398630570049931620770455428317890314033101163445499251154298136181847536766874412124356924784052950780147123406140638518575730505380298797607818496113871365535709761493820015012991703198041923822691454776810443894692046311731329406965195862818567043352741451397654756593127944733670860324703242658862491317563533913295420157364700426005722712771299819026158192606134498670439795512174065117004644410465407916990385120729347586241636568310235017499292385637354056965724693591213073625276549584973893864462842607202331764552954646960025788923572668416059062238484620861143140676930025253817152645605879381910134472260218466076574433139478896005408388714257535559322674912727873600098586830829500569537037077784459476888858553770271195633220671777330662678843607075466610353414571532716632325644211523040088884777476735242758853726431332415979647261445802289520774359703800398130173317017035138605594693328732670338804532905290964936699393697574317372730960212251229432142915911316426231357958125377035704175237774043340617112874422930193070793727509945962395224581406112096463257799352978358139323740489156574138751657516252220433689625437031270701246884215355784580455395606232820863539021631096866248247772880488861868987101299918541967757869640496706036683558984404500050293733209033858468956042341340812294290943661778291006504660245766401296145022980804815424948223181949136394353484145564517874666709795184083873973985093623904991498427230354866074289351130388670000175142559172160203919101795705004557795614026111257272783265343854005123468560411413101789853175168325418591904494142165343718749147736901119133496309601660261410292508023422011721090208021270031922310197147760676008337674824998416382644528961285931316007125948600828531195936127335500980308491775878896381322693474051945237046493501202769078708983668529583917187007616524397037101026771744983550821177157821213914673093603407542192802743051728187423372965973979796802558486678527329455826373713215510591368767396605947696205375667283958113131559796182308978201104906057197124586260442284094707103500133982488349679892284776021027393253651154115765845504813066775953428607576718278882138258997192342304183202769402360879952951178596209668973092642014168619366017857597548440807450940867237593279468400878019280782248773926369585404452532571645871832030065876155321099382070689841353146914724512901799398700169901859413480424817478395771932076055932114220393162988082980241138352513057453375822891637407365270967436120912839000856723287863686207834152542661160706991126632537583487952497278734624578449900336712632730757761993801137516738422880860619207834295805050939520590806607150163213089985426152346153060234439885960522684933972222686390668201547295172811934586432339323005579915601724910814010651443200584440090885259151068029257254243096783912402082834899808462726488868454212083291119427749130416056039064206463841478244633002358068683955921041936581192022539018791604909976283047295071771546668231476736144565749834442923093987485556973776838176791568404235912524829801114193566912034748010901577766816173389551343176943577916647126891195347689707318364358963931937180376186355623726182896173583035592152818886197264640856692323126427413811923103071197819292161569207607352993447680862650897826036278566153406593516558010469207333469109729102808764234454680930315285681407938527724758662572758082816815965420625214636228685970535703318131225508267623610009498670228126872852993725281665781839207578329238801136523026740577253543874175667631258627283086940406329533056326807596975697844935666904076587944836050665182707829323803652992497092361830368329466648132382382742491776393108524001045214370562465977628259092923861164136896404982225323552947922057883853082948224364984310101556052980079240614706800419309272253309671197452620990306250080015179639839328653944803593414576305440267461219259143040403551014303129493713451735216005873994856231206409853800953490183842032867639596568856468507451653078701819608387667047973203115812739475807594711909223872974173808025116065533961502333374948583118084010464013281728951761426432215080609900799591621495170790145319548763310636421068429179188957069980363278340353373856938290734875004658140524327856448072060661592049542934824783730145193485437641020285227017737443289825715116575482523700877009341049659133894784860189450632833217217684969152933378041900555562768737736402952503590755027804520314327915662857620405938159853232633829103493704169311095365813164743272683404061414327645659294880176463578396220568624951043400208807046414045060668473632697877389706469804599534787630106732553100216874511397164955308931168072945397516287302245603943588147493422141432170582658532436361173262845219364980576651947857151575460650051006589198398809542770053779342136750037203888812111035171779998482075576451998122334295933714283221361364879235320604178591719313746444892792863713169281161981044336606091173790838278979014345226936165181118098502126741075022133208316501335489730087257876650714443341075598960584085205352695429950662234454093339828793107684904563501212229465950486245153398891004184897182660234716854805738343473526922206095995778736315463039699621385391032365993836965783474850370494190596371161702069469228323424025772824358151189098906384606198921132631181338557844731371177937777081463504760986071129930369970478626272742201482916835260858991404043598530426395272668055193996321575070373984206468531530034338732716630626747596599079547385335107683701586582873126064543262892138036684993556999218835699306080016102750337452622978984816844983381657404496630853001289875908252989519606090390301328197906137717648277094752662415107092074804875384414517122019223912499760722984361012843849707289387136879276360464750503722524202650454479660324696547899252029709805747407374771215039247735820382880891625667936896418641015336426952234588044177337725195261665355599271214944258852381083177950623195479231894617264108631696048188010255695040645692110730312146968291550347168974751793294026819569035984842725732842765411841010462182318547907452788476249976485987802787284952537552260830255769319766765005449547925223716063425209346818739122822737291687679277857346518266401903560825281379733714891430456774711113216808788079822946138525963961316215518840165962429383738322832766581060316246885855787615470706577823435373313140293921539640041628133642040988508611231490266734072343582038489552166054669385841942887515334217869611336528474875852066852789249092100882250096466297017639534659205892430391773556006256352214269821736771496759526435821520449890745734108938804848690675109449126116209379048081970577066816258335158357066423339655586416641919056953680589701475908417621570694777380251429748985657339548026307127313974381129764990040484551286852570465386281847871232547249180807821727593563574360380124000712024768788363113850806962304705238247316587961015610996893118548016932352723190567553221042196063248855127204917347973727869235257253966304292446692312378730592474841978261160384378047094757554761076944833324539733648619352821720497657397076563276092574328261561924095488842119587244209021831472440065653839950443682052862327028713085851135808758247030181897404759242071046160914925306543302371151738350810033059632411796429626360025947708198199882295973637802488969869545356038186385776565479108665191075585722692201703176199567195758126111549922102790131007870410522601779384170694623799598368788530863248382171056459365774553709057854116933774175016422296149289626182541639470531295217436834973280054879706041581336435894273709306912734713866877239336163821946660434635275537070266742088043176470207377430458803635912596506068885844706522063155854514899740312181473969721545791001128899631805162925380467814923561460127011297425597664557572297566267357497486530587590426653361363351376184512918721224690162622432181109311695259244014416859080900746427337867507423538800787854520313507802324401808361693153199886508922918597990503143520641564395915244207112257861420392927833366944053634955125473430895690044645524256477921991567994113491166405299843099786557872864792974307452488488803529560298553888502173961484720498602442313505698916350059048368869283476947578371786073829589288516514677475832689808677335657045461292539817604497573711303260704351220013739031978739313645237406953601792036586833735236567419270159747732382541173937788664657416630313044785879561416948365819511213722687492482877062990847763317773131673874710878461807988023467108469866721248121736892009189915723933209127560937191855023154555240003345469618934357357269929301194222614921386583602509493349287865436888429940509869832907262670408834697619197766481750741473264654065234290930535798323157999117223259003537882693123338673936526119748615314601221778548745349949978909362983477544413913341773098591808942083671033477529635768040711710621812947383248009643080715894491520219745779089639547162902989661571836223566225385054575042981057118637308719905708099340090403727747540480552926959198466107492242031456077580061606859564542328396323913048866482577182305190882576675026100449923709833110544801133652904900629378810099775836114537570317223390235477474224336721173013816717663157678014364114938953462076041638980263519091031390912952869662276931555601286665024675837988029243493072928821118917935836565113008476291910803881662932317323336318489926625985413736217384504010955612911266725102634075300117979773153803709649868571637233731595643215103435191003634527288184404612243766794947310392172365155537148290146787296727338436511967253228005933986375823612379770371359073994675659850746465224798577457526599018151300169124734271817899397039761328281594577553819689333541202441034454248307690617429250095645948323700673625927735367765638388117541608421337765259538688479284725674195006466290707630868513218408038557258246405894491689586260466560217628288256853744786232724551906152755555690448536412207475133879751524092327465762638089826182372306394220863448035470835328585587502161782396117644799594398417261739809437209084493443434203805458661992145419620087009069795641355325932683272911128125022016766661268098558348790594738301662683572632395317857887735991126545440584457418173051332925021844383548043369093131186059900041080994883253238731911936905393697419494317353294256076710049197206088618624423120872940796251979054709836543024334458034490540351665160924780510518898423731310924914021050549171969388505681325187013156520821363646729247062121029216493087463608659669630500536828444625314709553872970948108342168805575393123730271563070682719290662525885441355626739164523297400876244767225026067016065034387294899003065589252311547756370406724948007492527118363317956517564125001731848371780511618144291624251002690411227915780465428996624256131077860125326600896754525765346453445626530897449923050057756983094443089891000531973764502144617271055576063896173576600341536300284388194453435971097538259317450076503364535758995783713077231092476695686507644758412059391280841458024421885875833472835567829090810225783056613042974742769852705280655251399201990429717311118052424342584554513048583846698562021731303769937863340289261542062128661688156941970247249856831494460331076673832130501762018893210566848960579036004201630634443012890076197510859006088699207281111670803403559869212129670804180444246400675058007524684623051688030811957340728838665341409203425104809418903743419774016917201701744608269819566095748697274560945269194373638543317463909219272664330839535284657449255324640027614662760208968352798476626499658534130113336181076468987354258867378760924039283512681882995178989270804860244247307044043334080819694694940950958147535664112641860197518449039020851276754693670902440612060719470891550376873945694213654538650253049373948401350447678018724730673395321141061182338895876375442884577516651100167858031686046084212893994335336019259532776896891732445527583319246744458117197451852844696807617099265294640519218080190832699945053206366557856415616933207865224256881140017153829597274989471534947176562558746755316281168604829624546964204716975725913308616078208590941544440845050657635025266473270890297524522551119511528512388262049161232670022079343662480051895986094097116717384854819316077122430706829355352694169751763451444234810022382164557607483239054586721747478699557927081665961291543361142768997073910813921595769522287593971054958248139453434837502088617646724690339452772585590342894010714060452259016537616963034089101542631078802755167105232798136692870617646313758200235165796489782901754042265848603999838642902167855211848358498483917154267801610846212010538654162187261169247913532682861597131416108110103986551197214838644430441387337923327640353800333666080998211671440911386607044574902816141323517412642441754593360508580586793152981007970550509852649622137473349650591069838813048245213813027115382903446055777257629397135927292007991289035826765719308592583546093092342667033523191653190560250378274464947841283736287335422936380402729432029160711443844320088469786990798847606148607368676624445872340369188263206984599158945968171375393365758440317603641117440348541821809706620541042853080111047997658226133944262168121243619863783183806090898891205275747135911402662893653964160572476872632131229745238988088130236228960491266881357037522057517897404416163881710591741711181931271807452297694234491017170411601696740820975913332082072463981972956414586383839710950524406637300393208094598817437269776555572487132974953532841320254464433875750768561392641392944018880554696518526747548199194000676112521635758165680832417184009180850958949469660420911826474933928352433075773872683456837252353983119325886518337979649636708838780105007637211155623756876952676111286132441064425326896913687048524698791087706314929944625590688419590128572469090391998099193964778244760147272538893949472238340502882291080675650750109078598805497861664079688288831027365562225239429347743445822918975027370145927263644718144222887769569281754764174359908590767680024374674101334626644691650880023827759225310308422517951882750353395783910705193575315763232304388169626595804201388585531019304766998330762484375606713893126470485566537199921772974364075486534631525624557733673994349077873078821240670660727238252431081569206408572041387129306628697607549769506980752729723399092393175634637782882658599093480070397291554140152386329238182998949144113306238580493250175273166123181903669521963665517970900596669355540805010183838355400677912203738938685181115757497126227855850383914208993745387256369086481051439710720937849923219946450297273868952043427190524696744348170281001171288936132453048568144738658402276595659977718681474880930941688878184308467135246489513062829785527757960873849394636347801223760394685676057054970183846238893457060707039362167955390472463452229377919695672347888348629111839084365917811199790238139099636375623884541336308269964719346664174540723317815741983304090534920517189041768161341339146675316019717524341832850026292995644931098543204226582887507945584393354991868521788170157053390546762995672705135169337305798028968050719111535193238675421280594490746962736910658825797022107322021648301680417381266542394869403570123684957263554316553432009434497687536910922571954373569530371252299955071972572499483135315396703168311659666315131890163854800137420941098126514065747937782429359808654416163409499159685427187328446130965820025298215783017334582905704037643606721833125975731560066413997431104350531659824979401658410621298960224456510047446260943571721437159202441758596269964070997199125293644607084389592519857566099239337047304998430718446261617398322141111653008272635505265314289044344996961331679517461636952104599544894427406013576240015888516580816759817391449112376563050370670981206887258451756148916140659684884114590829330481836445053916359186207313650008494433392141846420742646800672283272719792875875139161540851922105693724159545189019255650237773385534560142684039353945102407593822395415676368424577149330067042923659546697698435456658531766686349289149858305465424481343807405505245946689774290924264584926040433237427431916509246412453846009289703682819343025389680246706932263490135110006317955712858693173345328181963614075943879119667209463779013967304193863850047640024264253055288796832461765201387713518450137133986255141714323824041487952412009658790027594153442136052072264845478780782142392968804366369326865212383026821513624772481163371634206210523575983952762283546993923114387979216044011251120934454924013144329392492223478806549987637816189046714321603242867275346287686602786970597743012603152775558861404485038990375226440301733454142775602687026217249191560971571177992418326827928502328624421175738256135150172114058472018621789723810056664633982810923749679773170935427492511100863277353111563219239231154998010499728785690903940288695723657359461418054364337362757853838919872099535447515628908335606036498169570829331859338388045320475225376493964997007224373747052052662944290841673737057937100669705835761188452081830758914755450459623024167917840009696067107785428641344183427570468136253854949613462583933189813548838854917824497631495879131167697545888692451351093591874510908434369254722234447483062671561733346185033927766192537705090350827410592964925269150976167668638201107332292589021170410227618881206471007912262797951889457253812612903743612592999243727845162920658488403900774577110442972836527514439302466629505353765221539972936842261536671045913685782776751905508698404380076515974443221064898955590244921305567732296310075050603206585766447621027061859468360971749915840670716862982238939844301922747407222491560608399026256891674739564284638281881114978502239221796570303441475452426398744253125508540691134396367381264503860138956873441066615414165260663791590563273522879065236796541215382886511354982841448365731446776475126691038313004453598949076649580563730016193535170776355787272151044110188427250178093491114495556514455589122893581628437989137764246201356046282136276903656016264214245286684575270387633787898259378784304407808210797022790027658071863748292526898331990508348075777468373909828230536448342282985184830543983188110482601758407705818533493209460875367454108840323392994269087338861876455921831994405456191476326775084496309631423108288279832311977253448855829779998011462004537137488232535819875319768221833432262620553270707811957000115103538072482068471136479424495746537228364982680967425326132555953483850820529151196519619296254321624332153043356798589580218763321151435801450110517118714423664140481357914599933197912563652429512739389870756504268285539639791745095670739988162187551031693526271495077079080420214848490459298627244272157831520018889562427824005254551029609919007238660170980253257228755889019673142963385150878988240878346205900886808544425667579693170161390927660133545211504059960067707093240577306916818504608971589533329086356480429339515885425692522829317000138011539737634593891753080445519470047859088310609411565682890881420366875561720873255480154331587651388768368969272351178210858176907939403474619582861278758012896748203570565338725059225925075480411898682128612136946807395805221196126819300803757475030084376056748285640197147631358744340071881195536270080963634035622926824644119224726978103915680793283098380961312177729741838286415761145250801683119038281902192656258385440356563553453348935627597102015253597385753608910871010423504870835694258813320706882930569577470391932458693439126715084286359073912022022824334413555766733324142374941343467407382989655064743506901640527998406695377716185357186242350470064182287684498169599734418261616344370695568831121366485506740172919915501314027186358571489412522730989172302174342378719183154567966604331286903841082501710505378246683383142219349082203956588938412164062124058891415793235471645731033804674014210369220287010259363668952573430306034734137784095015847283514275457203489936243577062788354564521594857290590435372463209915834079084705467886984568571883965437285774319274560230292578605512660670178446012073634321161042257405159854111709644340900138409147559567144757853056304791098269803560355063127188982547656070085515814256628416210094760512315178394708428843610799646657971022449131450758584274253183067476175886199768076974876791942374243073174361579307033272798214989881854253593797261435016252304018444829137091252929847405036954867524209464423039481051732559386164987522249771080853907838250938403331480258708439867331671108820323233445715234743830955700436801051944828301034033580935140386420366342961220379329156536097068377551039318111248844710050643160129990761219156365656811745834026680378003988318450244226980360847682580349130077478942136997049005610928297253256877758518358022749113550669466415200804094998845091981951655982104647501345223058470280913693721351404651992778328165829375389478382269835152049771431465729822182985441733610855260743104795048267289569836872288222774943109317116719931913882221410345103260764393665333424522067162806266523135468092284866127043602248445964805352133167837199344241038775362913803549887096558116470141524706634403584802892130650436950361902289928822623909263568948300812660624734855182604714462024718029467315451694112171854592345718362645846498477149461668733088791367514988281787031378021418615845621036989941211839185941960889672685397254692593683711710871249986763929600213869677571795450873439273589315578058938289722569973296080129635278164852916585410523023742070392123713309694908958950585387542431160378393643435108814533684429091219955691772461725546371262572819216611076377945053576899017704320722395148353895541938833207362925141543406424681345614224086115436408614850848993749509610754291662089334591858647049547965345519249222450740195583442386033123962445772218606169268167234721863847783661173339353990635061302260280717454648545867070396317229392261453260993418616823707451347133066052725304216087318759850645181224891790861881111032173508470480582013897120427004549050743062730022951814675537872822813007139992963368338747462996686160599147666389760700897127096418534403969889310352331547752834999151546442296298986212906134473594538506985575753014351041323235378538906613813912875420098279383956142055397148048296214921312043049275442989847545639574705165420162738599180254651187023032204453197867040490952381671064408688152688368386368939081431713230584347361522177185425918049915589208814290084976438881675199873837430177500914263252910292668184061663255242187677109325284858992058384749786047010412340090567107378234472552283351850660728941005432495059262473143420017037264449312390701286143483270365753982251759414916738564650607286665195377285836114275389915448900431736727998029393369085741570588065545242596265251856882344746871656468790762816687026943455827960751916982254426587351672514281128174022066069591327246914188855135270189891375725486268983796538932464748440878397936123820971397002841697486543019559734764064057758014689825738450648088601376854812432788209304990025201178835534696847169031937607362457610927169353043229709928731948934257172055718762383353212865103505059323910320262063661660722335585883691184853190547044872773572692769119520117015516332136429856463676500232947850661439275983167024422510374155197630776399731459741108006286013623573853737904621627964112566977685885541947527205104835619683334551089169022537114266212912576546738869613094876073010729554912558448960829121964130160325057354711010935621268184054234052925559415397104375229619558011513282852523192116325067218125917163677584841783347423922071810044650482771601712971260811771664697722042268104236446794922839691124074028498892901302278750470490276807447309232290812945055178316488832741182445248863969172624218254387321129209993555765081351164211045237964552228228386697757668994450734286467060044144443741953466092035230124499383852067985183980648734117809637233429392850650777776637774256891225482030612543403240577871617424435516010318930147337867201507632490488410335404434004225194765934927706503680904029487466891222361228819524807934408945005934655500470166203083789972722960900913108809491075027693224062048641419357200067381331616136661711986142041198577948783970942610669774795840141381728275669655886645595466969868729401124305811352687834410040191858148740206389658092554868038698017833414047219787728431223967187323771735904923430686051429070223680909618884574143141795946457906158297714108813804161118655629661712194423274079472079321435826745329563735927097670586272978392688714646504937157820929440200053433649587494469743201223963096565711877994969732023227398453856875373885549324771486240528143451285374390353690537877379974071225589348775568925351516638524628117682252647349037119016655343109052981438165444628618616778166817855785731182011935449393615998428792251586196920827104759275728211454286605769404877085498120379540234908874903035994585521147599988427662758983853594851464790568948111113116209570257624350996375146215831285727500019197342498952919301819954080321321018068596629688633284156448854124952581203126307492832724547413768407088108181477559282830317711115272964150107265051043337416207054557570141714871677719574252166868681339067204846948291772415739140298097480684437158409062432754592880784228424246333899595876762929944963101312471624985518202933902269624598586223771397913799437428739835224439714426271328736995333124204087853013934011800675105054549648326444833507111769527569129854622466700639896768765624788458869457851642381299006907310114380355350271049507118744633366200110989775743341449047593714113039235876265005698164749219730199058044183785786343435527264189740293255167797973102833315434622481388394452808329719670294363345561161836885637742936473866079968410814390417722103079214287411563713414926175394815035331134055765361198396961408254759106226906824469607187595940594813667480146787665311158544066705387262397581735101529620713323807835249319980013309597047401956728721738503184697335402781108401824953012362301331858507018444881264895532997522300447938043719129921870142753755755505639475406804311427445229166720904934195862865713656426349980131175603557392853597519260339853903626530752091041116293584852674872243071165269267133475972823688544529747314112651072443155393629874448239225370540997785971739446140672959041034419771535955654927024308897063124513986958449164979270001535703665605433185343955940119889154020266426634052079962514647251454372722204815356562140214514788342297889271432157450066289043933980861584563175292011625744117450005188541327637893408922966821043797665467016721604890178785176319926715164417429754338457136122436604682645187089809743457419950349740082660801666741481941440296980015043067663331287360279106909766442227443201122605147366466286947159800172948926915030775199685803513341045088845967813112762260160625797440779476788759262399378496058743090173440762410468154463595949589866710702537707773753074142431838455426278961202577993339182129191812948279459501366158868090530621595060388508785876070759555432573054462926062694502009606411158176016977300619630126189957075428936136102394784524600773657468448783517218717444625677564396386016692306093921782724339919702281213880734436718731907956235818560195913262623192933457880578230396297939930041131299647067915566110836322358821943338885444297822535964512522591155097730365835198561892994899877175593913456691468871296692098764803050694453375266335880870082226518406776489942609859211416950905690708679798011566919374578406601740796729229077236160856149626944223935694822513802732409733921710549518871706487624804673032745154593809411809379247649069667763170276704908470443143469236419344138477644823321047764701504695058911613604245036750129916684732598970892389358251859211955838156305453896705560840603484841824934996974159684588490969754409210971854603045166959556231307736179683585105576484813781184335256128061915780566493192821049316849964309825410236306646832681836674025014193753144645179450816527959077913641289515065803214204352787744332450327990198888980455305244350881790724976583791239792867290955758623584264837691052053103861213651385172641177484519160294559310242634610333908662687794307220692698678561287103366979123226981955326010613429514066332045636576375102249301205835349114700264282417959258256862619744339634025824142928311309674944682711830610209641386530452944297896404287701619743100547994468924362105733984790629134276357765038553896653534849708350146899661603353916854092077834082244480642243916945997894884628522128148858505238972492458728128312492760689725695585042098488618909671068026292473964560520565528627050324068926199564248002789588951283383765054388913453176655851266637063016398521551754080238289090566773288355678516646009705948126455028311238735122279729658860015944444783019311660692517369219715329012333031149933585974522104220359761212930652678421563477550927844736674530081586856171712684138993451425311250698126291039998699815778342860288724166694979239906423717583435074371607333758709300974308283489779748744694487579129645122716799015294126926279140486428560591487095449869428148289642813476868690891809358183623325628595067593499711101188722071845988518054845518291056472814556045210635056468403867805933720249121091270047089751914059774193854433766902954878279632791821908846184694913287099442921656087733499732916745437170506604369595807057380855093909645625802514489753565197808700641754705931282129352674530811144219936797966577308951665505931721407815819165291226975621732101583096649668590823996170578395732726858493823749096013938772331397703260867750730465536620882246307579142334668688472543305453064904660269515251640971461245866887302445187869147091882631490648149412332490346964401314957651261056518974164380427491052494891065214537182377423192411118613771102826078218080519520868389282870695465248453028175527559989097783132915499822336089496834105479259008685743949405201542638976124787671131418798351720479702915424064008513465420211107878033484486520450551873631635559799904203125838941548880101416174219950772982226713774428067568459605890169759473080738873147274121857976096575522243380667428543392380716116419991973104540873338410332328896184324505177996456248492612016749777922565898440347831489471666640512326140819685984762412521395065505868355354747391511943951286848881149666376704745515588921293363533544398022378933868127639654100302999760463132533977125380757741309535838891360010180064805924676002075498385019165468038928068034795463715637888375080759309082879268944189490265479377004345753585705802103781932064893182991979342387162075279644150809497737729742790301101609355146817229999897779304324442051034420410688192870225922534358367318170704103330092105615061687578091587438213397177200416639564218291840104817237276666441174230801800116217904562554114261987397960305938345014912855808559910227425649308156818703565369922682772688140207288766352581876862298402968712708377944587021523784512146538422670702857927271605926027824013725824693282549651775869577940986546496729668227203654431213891500933002540568229596246607772966543337944568457253183279266851484012858078460255609706396656464122732619270744537582083196250324263782838062872245533063376110588276990537902819047131174853757505052982465421351801549963466314880677255506009576096563116485701963762969672257059937774659033839186565508233432084909455161523223315351841258384635498994129461637961567549939459507614393880883012850059515597263334135928346053709094147892002455181505729122323678618634903927538373205474118951228915933699187043953102450855212723315790037830645886896403177977496297919676630743598860360424355128876374417907558872388900499374503581776340520942473648918709027574214025701030027280598553858073692319058376346086774661727528214692678699331915708276617217747322707923404274310733888085966401593101855155768979160714632496996729218197103936177487554724918546277819699827202434820300162609132612089920982087559496993303960318304142871780582712386493159272509112489286492918398338818095729339360116931922696909092841959746389819825282358906585886291018597288522541845925415385038203378571654804602780247427581899684457068362915748470891185749519967292507230240469632280042637035518619775017293513241843811619510954720183602133042768652965756245754266659635310806123597547406477488685590620304707808791138149033095010042221212608012364080107564402286361086513861150220415903583887748551702902002100442311432434708863042079525530089038801161870889087681932071931558674009071469760173300311272089859357642217875422164603816155483321708399924372372591694476735509319841216244228092783514195611184023640965165071368601942896022924595497127480029818635661904189313719638731712159148457647760618420985951950081824537378270202925338639565652239733418473301639664306399437331489124465788524016689880580121955609742923680981415880488425994397792431899600640676329262251912899412709535144310824185319307878890016842008966131766737441667089584044827657509948167468850284950819521249303935130013690236323053949252537127497572327629192504355343205872489676934892157915786786179770645875744187924247405859839030153584585995452963231488406436237991361006721141611219422116961677023265906772852880181368944360374964637930444673600526664586010914629965938285146503424497098861800886671802255516449336832543640660540950114492108495503904995670741011518199864062172933534735041639547921297311961463433527379841039522858023914152004930727170381817238177614411981135485626847316568137253226391265099995731475221293139215268057514680345246677799212626651534861448792327633112501541669501089309586495268945461528436814499961444688695440783625817015782230909363771378389764056232514274771850981323051799602447472120329579106976668630825588284618616971807680609329158077079561125000572041303987386623334534477350616679533269449310360467329920734086597672852652938851762337014104143619696604987908757019439798231569761753569628375818533356296954112288599225248582105179962704178269792415421729769315845623901584675978755528567953906852046484722237303726093743840440385143521453149310457959551539400189474369051346918656093666463348166865092374158849669403464599994164570533559401562130194926858828107187381362859356636219670215266770475651582038801788007951169783562368478109015959493099555928351048342205218508730368531455895831596939511361395559224311380361283832881637472195135099525435263669087101088012696162008441920487796444644295154333365199445349556817448094359373321570718745951419844393397432173564462253633182468927090569113016101008057114535063335635736009999896303278655484029289866645247877166730182937155606677643291055869616514720780408164665570544073489103375273723464333108680900297909125076877835325411030061374810687569070857172390436319660517087941740546036072001085428066451554008622196988615330615291428836983378574173546592882691286686931483195552817408966749259245689071840418597050084735818694850290905733546896269429558355841999182163504307725390477923560748989958441660244913188148255750779341704066825945884084142427335607484870187294640609481506346675084452963521765417335550897564759270434631061866282769103586594032414923539715957552287909943513944730288307059762552809059683531219138703064489422367676197548235476862376947367090070074288616460371275443350047911666878564412782587322869285187049784777958927910764274841333048469107187462654273344340762836549777809605276191798635431711085198459636686105060078905569792529464629667607684822219167801535802563961033995738559760031203811868995047105549565754168800478777950777277096009886786449632060987199062247463685791501057621577714710834783353994368273208766658494599458855458538545105973455174623861778674609798985008251675255991119924049220081420625260044615983345699316406724988656172407539365843234976897542171009980118996533010851970925715923163203204537313113231425765427486158804551376214569298600895874350729065702425261678161551613887954921161645481354863502504041015211782141838971159205435528730814332189314803402126513341241854971965848495554986439485289773185088310043228630346344775968027606587263122050484785633341442338273702099196002950787784200840493997606103626288866586845028234011843941210302966416756730141149631195833771917082829868846117682602624745497848302541549724806845507524377489818414176653813222338993987773397331548224308657614449312387443307998283096614590961237054501552722585241569697395061460813886978102399275449290339786255484493450110005438271673296609767084839676487758360796368499555141982258051671855153408865162110785167544282477538644872917121727300175424205142972147748217141041847701067952256993055380346742123359301127234532535538273036427467385622384995905781692341646061933243035484704706658965449530314361607615963481218738925109165115636104849822460869371246961156044826086212331620023529834659615557307010264075138099263253243760909056811883389057202520719301932341351812830067033529104371315323856031335223319580213688452247805718038640214441267949847724630003710322792352431643162606019451463380735205533681162936945327484704173432953992753152401631493042362859219590379686166616615451325125964979491581515689690853472463248619760715231594318620494426945962606214378045308373184805927322591262931114823591794176418374559687204495513934634220214313959722729882967011894256995599871360319790354497508028816433625394903377638813311061092404264477777077572447965804669854494546740760109463857592387593845897021035602789651204983433635979657282575432711200995940530284999193907588120175868257309901169957944311688451043785307403296625677776067708927330736664312814908358028377593730845242920113802162234569590220650024658742190741359395892292327850734218155698007484982234733105974596445559370315242908678036277985963538711810855651776918075685114052618331833831104544806637468102931070072814022390566738710727101724054739539724012531614269398087457510855169528752362801192072601445178659741030929226225169665576930153126916120817966907400584355381356133709816481994627233745201965183611339319481033246035775920432812376718961509874664748848004347699599272651635749926696235610481488899824903113371013750206622591885596742185879485627887236308328805842157474706657231580924625825663244029800765852703797993030352096758610679707858998601035455865230328084888769710843847570692213782922424583249797578190862804543425905507968250509854863634018050904999574460718259267470320481484240769845118924045928278425756319351061048847596269765706025519356762504128637334348922521498939058140051046685430867813783544428297271614190221720450638309200005251532695824696706170068287801413012599293430238373384259379847655868896433681446700877942490254373934434892965212398877006488841202996835419341494783274607762404938362407203623997347066255126074390143859495878634571596618866871732001679573190686734971189178706739708645869173220112010786179587159984074466868812783242575842471146062074225147070839934392470602677242729196236801712650580263519619781172636547093103074289017600045835635441617155352522583641749670528224292289877481557646398815181155563816563618716141372319131391357738123150172469734793443380140954572053472842923178405011130673319264575887410506284576815024138301841385563182499380722675424647220586801909754953843644303783380594125661959979672599127930539589962342110435369281499578491123997178699430200658403486276468669652945079916121944063278848425316598123207178632739845929670545823030026381709796158914238741300266974222679862556552527606643900869432556912009094289624853957722868857073488559819885410903113764291249136864075171467207784677266004783275634832521941761489370971663083853135378371528135292006587747143945845181101536068298045863938468388648402106676001077605512168321990253811241586379142955352047898810446315488867374728874238838647546488871153329637599196619984698568573438188454844910785882510412217086096056468490856323079871483862603370809714242896966166816514305457517933995918072637675210798492041872306281880661077399967973012303140765864124255581276875992077219898163113012999261681800751481428893785092487934468480846804646159982862651574741876593319549477506287595601285892248749992050416482153354612007279483108957859545975081978700666708286195416314137591283905367445006067416303366852638083775547980739710611902738563556466681752207015503117487109464265956878561949423096760452449213687944233653906509912100354443349925121171790350807182858775199281149711468535765824925653972270859406339942677664147324700294859110612265192833964680678707079022763070998805957842352099994035653649497486384587275503163509924136013940079547339007059061297451760557752148114470283657870510010018386621159192475707831017430858564992665186137514741321894255082909770294363600837655785912586041092456689463593997717181171409992961945523523888309162102013301970219484565919327706903480316643531879559004338709351684757080255652547739290582964240597274833928523235681313674248926793573788357743667273319018234236181820327666848862592405224279751398207971896732119932961623990992226357057098338341460262818045000911912194151395326846530147119412442627788780975352242549005956237867970950492311740151391706745554154803311496330152106870569402890984900662102246468026196183484451630901885167509996453286143680829791550003862002856051171528580463126763378365169041447055193136961721946762054380661062688383558595440387247248462443154399144939293039976164902743853376025379434753818621429618850536381948534741281139513005126751227219234957598131385677607028614750707409159559679359477452193161538134161028123338308183711901228858596980974916255161179228806072704647340699791572147717344849481393934930857834020738819078552970126550054923711119995477377652518703804730703305968185409445478230357515239268586197763225592391493669437366933807850468968715483107728802572199054265274734786264522565853565784036109795605842652949826274483997057308453250128168372518718367465651356003016958346700360822355718148726289814940360424561331726909759899078911490774722542808214227936782323333274313700940166986866041235928749860358283506139998630171207854549792243864777690668939843914358540935061406402237243986187877865655633813617423315386548235217477108789954552001253972364727052169118811756620264209521156046965991492908211033004745187767142743832814859839397334774006281358413619326098052877825475631309764941313126550342517467544201639539911227355350712984281038273417343027898048470681724546408115685827532559821396626302637425270071142213530669993666823198428219626137541095973278629863625382767730678007706492901663235558604632769701218027442158191481768203279906794296822334416688458429041559350299028030397976333629370911933370497157735060009134226123196567388716865760557888722962153979500670006372036475850931622207015530325281164596410431254891920069766758974078416267976031373577502397123120356277192183898046064630878586585810531799625258312393628030403090635717390027935201841866802581440657157669675001427952177059718169267917516083347682357712164225380408065692093495855018258771917617374720411344846616717027910697047892773762306500732942256447359573176776902332756209727852342692024351474894132473408013620114821502358071872605343282981950174270859988393693616987298534928184269480187510877682464623426177829887176460774553015176144822362613603675023339971164121195588611518595049026427767280475096565232832693203645621074108470911726334544242411721691010995389119586373703578636993958308852857294055753977314603970509623462322433492666409059148378547443442389807508951518906693706565806908067021496806913879627685919743876935021166873873154603322931437496389222277732896969448331795570813662149948423858793279145919125210693342228633726201307735288949533602250878420482479764474639190693329371579824263471081179579614168687336091190229390094388909093874166424168791074233872840610474807219350785389089533976576778182189110093850034389510998648665201404690076435677775128012610187134733874418003652788742559633663972446202346174741099264924337941263335451205424873933007654557751890115263824745909017210270885367746831011311815463615662156669950633624429968732194566498270377326511238200173937560539587816749095883779309902817946544508627513090463385569305045868257207490603322554522139488090285014269799130135000410362644500855719656151013779787198110332591459502959778709448133571266411911799846819779162956067996840272197018889265566521569362005985186633780806256431687471369843260749262584760113715599883447165502042999912785932479024675786443892102236121661646788697887529141665601992940124689276330341406237345472740465460194473158937684201079205932753820937205723575507564964060026336722409550389111735405168778051992641721240162924042691065219877854473393066444000511613353487317056264909283621846075179202498006519728617597526495829092987122781460947363775859478541652401226090642587206442988232360861231841427069747788989614386403925186034208823179781329612838859055852922732418154198646128456687414342537475204252222651148590618800301503134669969126250112914371649939955743779528397911925354486869183919543982866916914984074908017068391890607178290856713074757890503207784013275551992843698328580305787613918964488787231508511459669141027359672165405129716115847110478340828006718499221725705741652436321730749017613861904835418307442553851553438701515653211313402560669858484089412106308932303670602500194907241205675732491667016954473344934261275889561518593224166921334050111253271612581341916741117199857624597098544541438304867371967859500728526952503321365116675879335469492953885354787805785182662642563405796136973764708298291526677625402757841598792475708317503948382060539580815052957614623403752107032156838396573692354293270418757718562801193341573546539269534318489806406072077658288856582524855366015784524069512855360824353218412358666017780753130116759483770097723220528873225643700498313569448432261814581868104087157083476711954277515249967714297568936785850215649627087235812984343827315336914365545075215953911072990755128585362158825903270944242378614263786875474834807562041864085501813805951667552942115854417170333056519181988014033122843932058338644785412147940693350143229268966813212156275165465891075270828196278573313814885806726379039822483490259095639654340615133314799131270485462164255346952840839292750599389763504109516297708304693921384472215053339020195808649019178613085464145142636305437525271458636353193830739321995512004969449819339035962406137757751107525202963631502776230260356841769441793916467703990318706309640255912258742094695899312958437819754120568797360863224093909122504661718442632995816445115128010742660489731772794822541347475981862570923579649600284236214459925416364815604863271577123103582444533359909720868053153331405503612994414975095044233709922101938308987219307023976796719040085078996973941488440361622751664719515503742224622049939192070829524359489795218694901339671496040172167678141067987925648887233859374950912929547090916346610087673778523553406005836990729487671193014292194352568052160228757249329057116092455375772487722248879848947936627756994706627277055010344740086738672558979848950671426487607828473832426767211136894093569210522471307565976100804225375906280807844659675190355950949200033511778488444769972547171204440297820773515059099827249103749309921553966896899939625797482922551484509654304093985357060824664882530462579229942557163667098565175252272623481121076628012865247432029971765703112515780768007984602364929023494466855204260299038007685807055474317270818566575164216532321906295379084877622373572805187704727361632493419192257860449774104792061197130537811985146600617946280842585484094584405981125254065740026844661674962292457559163934067939247286089397059875253506825310574989431199437716339929600318314549336785322089110748907244450942027689770293332433949153902156211685666196178730013652191915048987168167000958457640755444792665845248751902781652604074839959160864939075951090679105707726241069935037443455004403621482820295661827087678836603476398913445702147264271642661327915197845626318117526639244532359989832999514403129402104516964493337123822486303236136376083446194229623192250635026567291614066000780263452980196918827380506330710653045376477547807036614574595963001939063872979233545546982383205673878205829049024545388206764896958058117517378150189684693607095761352939672055116851530273626448883961964769379608895702121307904707932781438721859816438232937735934530568741625916641195744299947469078886635235828808021639545385850876373522294644817824555728709970654934163200128085702051892613324128935345561263017140136202751977432513193084989443308967260618268263688298428276822937301045763823162206921908409421035768933266368092633322417618187236227491764887400251298594592517698720750258622312375050317486187953667940540304369571989649250502641275782843995244345090462112911720511318802191267540376316498329297092258778968067902498938869865105592125092827969222491292763822854096319540529702876923495969409163180893726573408544871959217243084902522053248840302473749251513078688189177090410688495478247164287028409784340597105990370429746675339779239935218300643276028748368613215007905782952301224005002655409437636156327896019453507099337657015007185529624697061564529723769269716132325943860263485852992346636841144055766704935562287813150110345624340571747709063621129762269241047412948796633525545587275490885363957630664196597731916634998186884933945319684101003764690146569534612464915581955134309530083985973022416931024263569324960802812597901367426747710561574423781280153558344849273872538773237115984872765476156976324803681090818196854558578994732462637982517654852540902045844906027176315064369027071482808456643693611785197772932912239710232346402578862652472425139771972852386956974385914068064239508705721900125978809847780634379866419854551776993309223094143713516034712226772497729219820582896167386982161290376638813002230118039462476569856186646788091227292590241850598888884514165165233121796453851657608145953528252853305556286112615360516363530579017256657288664984624346931525434342733680537027878987170516075437237028538356660560732430489099718377173878021570876944693942117965755244441363666269907874907644809322883248237881725794289814607483712129757086845246958533422875222672043565021007625608389431043301631722799910671297648803151298951942457047236683465829657809719408589566754662865093954883187290425766443258330532831627764122545079321672947998436587934919215594807549732418466425466076836300491392116476470648071152224292477641705075790208235985935831740043892916666009698968535680755842017929699447061274755504591100837037677590890442463559910685867565913239711068937737493800225439020084728791551113078410508047035690245475169460496611460913984127472408404856159093690323683218636896853104328501703036210538024245846200827508082813077538179149075056603124617918339592325617642382539127218225174246609103912121901009640609716461315370247422364611326023474751110294305359579246758392503612697140197897545449042278546806215854523360553492499187733119200153637229283998886483636929985303267237859865694542887870167115914666417898811682291044433624088846879006929684721149088761384790205402898940175057082329142210140265103858067922579663880073344149966947416924341700546450951900274762622266247247294501039957726831520237897681102722336202715067754745232139819348683391545980972994165279574748774739885554416160527446337162188454184697190411680452317499000754804918402511796125859615686773283374842370600130217600365417353866853707223589334727987014284447662688115681612409829528898607142181375587949137365371481720475377184133395203576056548283852895886637213748388685500788104907868208471513885275386233584087896579617258452103116307575680889232550865303409500330843546353507001663558082352165214198706308254816496547813861242857138379069892924171467411946720481301897394876911149745635423373968088503405045894580411850115250286615276760994167684187344602008274860031160501377961842352818811875152336957840724678562055510976463831290041365202996682405156158025206322665981138786706223711478126019437187850158925143865580474965494784927047967037231692554324059953259534955017048800815153428657385867010286832141570033733914074679859562041894208157053977431495367757937532277723302365925826004165656419472974337322528984369363767150620489204114910240533591889353326956555595049363237736129093414098746099462324688402536264787593044964809458667512723045596012603434831550552548700456037022993953401405440229263253374209792737593972694870395399343097022815258760796466822994728094137258352113652653201913114345200847985917241983192829801660700996949273562797028163746097326799802059454708051273251991219944439269548820294581601036261697842780123631853038221383568265752031221529780573125839685135789039578005291869466746691545974592607886568997216180363078660736537568608895080522141326058264394563737179423221148826122691772391335395437450499921453569569094667852282080329673052153785604737867086443782511597858983890145991486711005829607256143513058987338038346576427948086407497245259550559366493771944777910446483981452305232055724448975961437647419398135698061131682604149507208655916921092954186602162707393919899893285830558492631379385407998111850310257055694279630706994639762393409781600175220856484206383465427946764854929281137174543983765479967015743120862399916956507787252138425373997063028818144487796131258587195809487744007419267954001629798725318794106204352547709703340859660421456370306251705844176691610850175657841644147674720115826019140250888482882835701315767375144198630685828532176390900982750649452706961748384503379946591906553980654893724443672800278435249794511873430237818672674141256736935648058507899952585153572141831921568784221329425612520553430790695849071073712619482722898503032154254632117230395133498484699371173806341491319848520617762394923279609846147411563624755117673303962600743507159413903951785956524310243234377896730492603480523116358752958997366692983173354409357300809719068737429856926778241193441337524684118375515481640536800006333442141256732855864020634451796879432395415861117148496413364544388483970870583089335944702112644052216964227143822565370740832031353097205325351953324391844411865057352380986082565187670287344151843339087477353123749868340374910697243821849788992698748359969215924205813912621547907132488195554473869849173102026312438591988856847562699632185119684127761492013204072404577866763290422677126941611289346605002723201913097411183262826054944785871522785080264483706977872848177979010046042448655534764698361724959679544406601868247202273442040997060559879439976912204441257257124330028559722575625389335277954380848763661887814929780450166778332329963764097104554331574487766925770060740949666686976614560106850627820859662924565381578050070363620637206593034561683743345578677938551072595942227418399695313610117501161622737117429431978431460074620119235707323526068947066706206298074781665569343043654413398031032357567638709089088582011093366424813999965967337025386693789046923090492856808866747139705591206418966134686086172664417667401979375176549868489010739789277956625879864444166184850537620269986024700207325665045328736404069961507289891944916710046010243763577674316342001072769223922169249300034380665601999909544208469459142588898943539294447769475644681477282883890635963554666530696554307793099466033529637206792440072478154905647410008823692913069223717586020044071087066714235372522949228977991577147238211371352942568602540335627418292076896751612787102214755367168041350022679865528450805627833584820995732842144338561736672606731759891427000135312658513112523416904742851790655549925566245459010291322576125979650298895434865183445499659260079124185632800729506316567302529661020872744259254751465124036178025793504985818059349099677881827984512466130260416377913406567433814586681045849056066031289038479851496396408818778958106596710921836976584891866516224381201760020015371485197885490095144255519336027264346863782256129056032898463479874479703102706323484032052773034567227100437035215988564571528026201644242610037986133044238062572012126025708134241977277742072285968943715319199921250121452190647637538209444654733775729984612943243515750310993836469231745500879332230379418507806471417607539320574923460695303228492707685958673907371204195226503380446232275266495447239499988085410303738248576875889562970311037193166801387180857386711406653812467095667528656564977375292914707413398496374709927029183769409420346066934747114397620228230692149107196939812878249395340647260935853590526723980853341872643404620694390421666539508251405304917259133462666835463602079300199882814914204412257373541383857682284710595168993207020107781575288040704364181596187475073513542132860846481596525735882059059402026030976448688128647335990076313726799455211412884935294457245438671161712058282192900206821273612229346805016608258185734464401307226965102951176215123177039301785896150133829449420684014579731688916272962783762159781675069780683535062752633102716639994096739517192901352144316701986052969750463158362706224434811442101182197052359615314317265399773421577317553762305324604747723025623100598925390586869002754184595218913689394213021003562078669271142749830882026025196155961103916667616102806809324140292911148843753866407905307656825233216978421463831374479265391175128932067824193721575307907877683823377169390344092763067632500146190720262725061369885826583677837968977648844611435289238999494069984113043511603102045861925342295870107913928916674173657828995977922597988762495060020690179223170909864761480316784676360545108887584107701503622675442502057668981598131734954220437049156808039581389711958451223531943852377695123929435384186384217111795279196958589744794168262828566985896544053419695254706153661165168750600578491421237047604501372547351126341821731965572816942429462676370902128972801236449602620802947066507315440772869789905603743376741251615371900168361675646461805608977178912035379168340188598271683587485828995329120501428640590099950606154385415307900525978019150116481712265590495347525589949195814659152085550164811963043018254077589856343459478705483036342068747411466352040481274303842031324894435696685601123468242138806166677569613314106206072946753789141938328721703525309168545932066960384786541987947957352450706970948098978371847702080311005790490344811587029668766146825769622699679792671739666997297718886734207230545246150976241525254289431819630639108181974180690005921579185661537548362611559880450555197575185750865548124512282861209487442079924325429238126957823919360427856334653445993205741264414184789211691367763133028282202960522656843539339663967292617071943016413955730899404377856481429567201069591496111876453549521190351182540953105210647894321665003681153987416894373315094775556268043046660191875039797156911783931701938062204248120353903804175366050235996864670089990458815488920392248345554112605223177110326251530528584269562869618872840207209028977014320304860171554386846510673818968760463852907809621790979179173292112761185478646625296012520938594121957238968236591161089654962900675633883801835376403758474802595655398119070496157271535186875557395254151791512361543722423216391869570612847451805250818711524532751152533218455352735412314312261917368255124028166501099504309868569036828801957236972825253418955852507257542125510666812365373309145004744946010334452534732324256324497123066983397605854317158547445205519933053270354136994933230526639255599922741385091625538221168558945051822752138341201453925677450407141292883812541233362901642058690252333584200858590578890676097368938084959388575507656247551365660420760091780368829479295895312756355053405244322596726263672712742789537146987293477024377314980237359062178086296255525030878442699137052638602145709684533883908598439733415637658469836887016804659375198601584067410589566557984840486622992846589512936845851408615369333707208316485399490838603455777487120140974220648682973796413302813210297612185814587555824909564465599670182304622324537495434394479674312651756124915067472907679907727078935179747091042913562274032657458755933024203477635109356233110357320186216093214819897580519357713738376350125071051113124160430480121983906737677561807366821655062298127835165921536550008544663857897877770383486394690720292714538749173169824846643323545618519645920158223576694356033655408521106351265525254397493458346371831244782576684502162063153674878087200770579090339460542033859954651349392457730146442973110301940982352374697407795862458359970081762272649581299794279334621891297536130492358426029491461848239336926167386322387327037423465569556235188691600608373933725218832177541171713336954603273386134627362175102632854548810936931289161645298212566181456620672496367229904651247213209530309909421600896693936215546233187073201694996626803557624009839631435692761530543514758668877856380209965224729798124954278501542427294179392934879553016368946279890060098290480034372807770780805656883243422289976540018966952908427595713563187951747097170113472251664119485527404193133334674286248451230133601678171387319499055002119961840823047149711166434027623269326240761452518923396600155675147775699376187325977043109678405040289389809921918838432967212531995328364452218135279728751979994762172147534321610304812665000744489412904826742048994929518856497314556661420382504581150534252413643003044658919086587186632494113749744040600705291300192310503721520918897325281828404501712931984381861505853125891116864425542277294007548963538983189720786827239145686775444045279400314514851160709325434454757341676003436595198545742416980887823892108561201724666639567457301969985582555056009542871216809548490673267184863654296010209319111471740800361573337540048505026827732078550884219768689932959259422753356679933152195744296037470113853355783829628963569216852717705373755251636054563582049159578249736592673453986928400948514988169263284735495315632759979093390684681909961204916471515942153764076525814950953671294691621076847404445985007984093522861643639151334270305982846383013512190180912568405462985164079816592940611264372956991710619423267319180060150134759563303904154277462637491186906904380670054247277683123048656911712225244929352634475630127452211943014012092248567826971935660358084746357623196030528493795010896450385061409841427748503284059077605552029664771910592695937629320692981054786241788782375507890287777038912321736543683337235068837553562739948600938453983946980649489348633354909076991392585394964467062370098938737700959211269563499569776601178419740245578265907358291319052134769665379405326445312291155146110119381937102714001966682354609332656304893893369690547799445714507151067765596051099429163949196912320007427927927079098303045658562998478808688155580458378604672364008165432780969739437250224029217129399678863076342849652360455069152960894463090267040964674763691282415154504523952127969135235953095186848262533606281810469048755791453958992707922786176379532033433438726472665844379902351267962877937961288828357150837999830276526338123004281765775642131329633682515547655580168548016075460812021859187947855078472699046783584806921653952749062033439731041553554547415266054744176142220203101460820951797346944306580988099064962407772036125647496214587887338523185774857083371691578635940865995339705228557195157562327414066198171899579788676035856563825639246593906262429981757884680297542944080058225355934713804276745192485456970754787927849511371775417731408491958638485297957483031555809841280946201460088342858563946934782038598068477300966193945669877569477232065976674423904788780372792042166314039909146248480178585186606257050325703636553653382435021332267421687611116025511774743396471169943664370701580163498039222098614030526489408289784117765222654460410899161996833735100091047409559178377701420722329452976301318626223409411379693395851551993181381048894629619181189669969727455430392849215919662355216522131240170391350600711459891450248825103761440912839933698492799504909670997898331588544905807915014249863428159110861927340698727243465902670367656852517680813786255017192588267769525968897253409933096124156839124541043961731628018209035245411820137323315530440691733362872460633514813134889565509074859665337904913618180234652534145177002286699807371347638585620006614854901842980583320603937766514915799523205854300890464637243659552420210149776019500421881683628411851925729322546597564901760758690387070857901760180420608309989596756411346632375202128840031642879040721093853233076643297003723679898622106429777718347764647469698360096943884972174621763538438015028690981438397164664033414325327333122276767708621162806170728125086073160103595138938120883921142014335981574287133373022177193799016358028314077457751461893153618979585794522334713862160670841325093015862784609127072766811053206533857325509039048325014897635404357758743250840999221564229591773568348865729124765772626619664528654641829729324836903742007673292249822398067645141762891765055347195436221135199936940865449379056112893203940231278441939890058784777261051465076539915584636001119902203502097972643650624730677784826368054448359989563833485735482551331773122039907472581695299857045797507650591357768341635038200574599601549317833445056035081244463664787070467239832409477820545724100312302418432710970648626444315469541055186717252096586988894734529029776192645580137126408478513709559231071341177705300352377856867610112114645868518114185258232312087143897159690456428925914366837371557352049351474907828669610499904765047044811729484756890993632257780299654522095582761018953737403043368991860679939608680017937031306156161967206191484157693997600339130283448556851111207293971174297293648907881163242868688687008783839135582009610879620740073370995928987590501388050085616077394849438980455328035453991124643111828128208256629072071118839078755421272792246510794855388520100995279991109536622993789967074512274010945720242788161178949552302560650093920858794806339603249925234185555489391764135409616190867807176353082340999085958875317400727264779297985901982917591378196751886644355179753681384699306056043719804802036013641867407260999013694862639934222311237850107351070229525287408859021304290271236179714019260906313737387387430118351138294894849010113521825538368185086457312452153381159810091505364495351007956395404125832378041510061321417691065105689436001105664780038495273019662430627586081462547076878417586743245267613727803869750169214802566629054481865452239961880978695593187121013773241950484313564830103520440605305561631456106923385869738331341986555134992027658085837042605884499158315868272370506298086354861923026899998225971961922913733541798216437614911225815775229434236418095370604474785185635034430124671691208091917044649278776548584272683312983640522945748614846568233898746150447635164705518601136148596817831376387471650544200314175012259825762905593897952669161834418745436587786090109104015416856068994028325431996837848697961302400445291110475869433761726106599778106602482681714868361948478785205205202447493662564873465752373609493322029530958993256574905109537200118444542928065854182050556955272587180828677744773827502607971292965808673718992799969270306930653102895191300713538498222762129255662080695828259676986524712835616628184553110759367452159311535138379241378599028758239319130231241267911347529527961883469618985356308475068192299386246324651833619203585312267253446615915412367446008077942090545656519675337960664783749653455781404026974688768970811219950461843154280385973088451425127510500264555966353336038016085326422956320343510588947966657231475416600015614869033999140699465447803679060819439657334151408662579066469167863809181858043293854665200686216682247616743207203055623576587418358616374493157842228785996787019676537015381081352958346880383250374889966639506425839693217732801627249453918250483603782966794774168470733614914067553093841641056980985414096094949626858574292910180930605589033870206596681139669798884853404799682691051123109854589039410910284094653043595072130626911503375451669314781803406599359417014375442303368203328115498068804073938011685357982942416148133736639801596595181810899179908551689974313600731087601759734558483573781586532910132534597879497849179416292024739519834745973491140996678854792628339402342254122628451603104269660744315143789998091281662023279344887302041417326781376389770719389640828335175822830689430981602679296130066697770642134776754760832518681074484477804629910437641814325652655402303930491084204064140223133153729680595406539358711692850355824693312815001789098790641571232747760693173414205753057555497292606775624436425375526421153662063091646974695622407657624092026069280398365032812810416109746746522695642134143610642343037036074297680704767726666960678262405559033436975526395420522691615429310748414270216151806754506727882619351021936809688778065091174621754640184754394211241172963886591676934984998676405703784616353049158952831273114971367509550029468412432615607596526715989973065203662567601622930245157565364579427156223587419535572741273515559777633472475402762734594245089472733942476224676292029099860938783466211845317439216667212783248349088189595867676389687730028358684412817777690901243258520151614988054745913324608554426244433921570134756594537219284129243619362457895787942724657211404312534678480185686096950192789358292679170586460237240866859963207426972242574026023920707071015577611043093427648305532378376882707152399551852172008222512803598502646219511641116177362515244332800870638073805559232402149830007678213308349236089415250760250131863275638526513193228044592467157716065950751543084541433242391514883285150401836758723190099541124743918870715031211455163114485843591957151729655694087983762991702642042157233481424336430897584316943949881780835315375634649752681977148394446065577340502729445419684564849330753764258790489975412873265105104814752766580139738967328900793941585550636423035078323847318501374018270920648945737339470618189653001929226315364410322121695893512728372552418209097057592420614005576107823224817737786859620929449094112191203934965951849027788083376100426176558515577069867319375591280627350152068898004848987415297463060924931061965112912963538047152723501308436120977079038568655670196448307782730318903010260115078961084674059003694090379546245104468223479173184222784264938009313370919346284438033581089332483950994315066653887332569498040623105069891385503774945547480964826969643129788987183325306427446688444969992052593960297745328228483086892698770752846144924946592709499680805275301686283795987100498358418725728633914052946871665174877995684300713697161141763144886048188610382219389922751914327148802547387496023896025800271115151546022695858050723103547494402498808165853000046853551498622914854863156581615366130127853344009880380325246164061222793257934710405754296628901940490987370491128427534170017289772529158105028159897155397294909240575012483566285296953512848388526956306997247623238257724924567969312067856101092005120124892380840089941357438518998630685032130814767196072692196706527492818876799418586571135410109347437782711899614872575844061741297431332825791801673534573581034155999701649967624008718525790290361671704461606914642365767930170148956260758698067710904438508827890861473734048559686161342520775466774597857603611074442821270319087405829055418691470013773575055818444300882112876168017122998234928823321410813674488977590517824219252792683652019811372148944502786445677990955185482678618125517658747847603284945407905113969390483308958345115731564942248285278599366277869869742588517745894844723979758870184613881201883214936177280186499763559893012941683687139969044682665578719110244499351281520992530162023959393036243271803508675286931168730788263967191967118419814670315480925786625422091671541990662027933962346837630967390304940177542224328697033690635219112268947381804051480386996291589725612411498822564963840671704546820713635744379052555702051554653152160521830214282267723158202725720156330486920424240977586992838039647869782235952883740391098039676625994926717068078462114936688854159589238246668159021758311157269037837806105828047526602874038389466192660355894725517851111919468217092195406952732751925272909711395112100330653556719719220856905356332904667004869171734635936787809672843400560816558296363486148488572204309901470542043929192238096828591130611661475205451006595448668389324365853231563956102223624546673056774316986835814425568202913622439708070251099899710539895841706598824726003988484904173438842028296603201805622583394340260061258892197129060862061134281979781207832032459705609806803929977068728285269414053916447573929919436286622023762062387437874361434762349693222176085878686331817298305655043717155129945974984690797220350228986791766298869643175690394370345259663975688847622655880724339656172309636475180018576589074412101872043425946920788786394609880011491287902814786018155351034265932607854185566105431429781188039549286177023469689414211610432697452750892877861479061740127282098097916255739428416916422392135669231309216955809628472672848937884577605824492350687802488034683954238105184896635686851015059136311962532279672792098686727473472663900396689454367136547844481154964125553664259851883717122904873812250641625217140862777884747611170427751607736513296381993257676089704206552711679473424355918399317490307157759689451157321544101406715286744259998029387362121210151996700267659179022504293388431260673372169714683885177897916334003691460626267896469620901158246142667591370913893152406165439221985869024230249056047908618761349095426474804146783015019786588927138216724319868412969005354478203550096803919150425400735281231077099822804398393488202676581317679210760702894074646193108056087372217540446637054607501650094539664609034603988017405075155089211061291629877497901929802400473156871760329421593790848841983094249853647162096151140496224165932795859155805995609581366036999250476502808119657559402470252190125364807546685810663746840863334269762012898507634622086835951089160787277210609020081423312783396889075858079125161257311013043644480723687691532255116066832750597793945194500125969466477038122321223833161923140144231889645278500756665441912656594172673968285784842435853115285690718776714665863144099374710645521332006792454138119773764122591147438682418591277815194585888234253631489738735930724952855358155780768536758889111489156076800084461474950633560678848678218795626437168348308049038468407993765918211478816976133278452559057090674247136720193122159595111059004042613343949573145041416320300603434628748889436310453707213812999039571161361568874487896336980997598762574390953583432975045648010169150392758462007139628849215601980838708798915257864568869478267177980734166466955840073138493299519510645833048300461695454169819276947040165934819000355691725435882912618790292431499182412774396270297489038127301305430940531982315680219228754503461643439000237682549719520387458355842889087619264717682875581473920923356306472752322926495034725397970773946222447699216486943720169266311322174167628156913997780529794803680968786166100732343601086897819539085171427031340810143254112887047187488341566262143418962833917240811209247903048214008604556948602852140295806600585526413281803829897704031403949157273855521999577823882082458171819605784545015346522061675454342532991012676006042390788478925465027219045355759929510236282696660902751596154559541822435790622365128463872964094796171089422348006274993409822758282755777313190179017298612061294833481521479580122696112057896513515450010325199105767698959003811655011590108407051584585412741320334835896076467212063544940833236334381752607231762690438200246918854874270692797372925798644091964459755524741137362446126942144471622284097577579731644933390959507236724938269034900774682685586403883096592374376309982154443396227320181857906048760513762548796217403320308065005590471180353018052505018007190191293397507654398928209738224889617613802433635447344668335480240439690649659693629801169109977238408449730574100939637908968099405965719749696167877911141902304543034470522250539046966609885820607832968526534834615788464019684218651577930314608531868236051444755167870411048787389421995950223162476764371557754784712134895299464891895958151885215025349333854717716978461311473865677043940193668555502883526972011225413627791903062206189932216246954085171849093443168797677014615711577978022512358274004985060418857760485857886967752091087267158054114411237660251675229763329586944702486245449602155252026011413962097273564871955688737804483613174862253168303452438797732234200371366138342173984121223723820518887183724639046579356453879271864105421016250320952729087918478824408529492256548404790004294214120941838419336440932300549028435221765100309382832016331587445313587971044312591705310887111231801725371979220092072710864633316168109137434218545962956557053782194331855838016846551166070504734171813252910445629148132291759656802599788012139037732432264407270889729499816582097757111009436237688589279946350784429530695770593915868835385761446718375506190156907603883713205438550574102342219449264632474312126581978076632620017855462502490377076902914844285259231749910914752967112402327543911085982443248207652868116521820499039675973381843310159201352750229906442025711747581479163857173165330339562576491972364172283684106186974745516524447292002636607246736520128506957533875643839732135112014580957707879494394537215485257237299168541792910516619764395370282095185888833200801810074851163745581461114856857828993694024810374974699126970861054928855120178313269633691095319489793037940300377871053839107926203222741635116928659820813229955408305851757590465777916915215317408981766600439506265708783476419969999987752189388254623848832789581665972306256339405830148925143609437247691192610204564427642841880049519889606087705019123032282823692440453060972183277640540264308073276851800137439999045322805565001092935303789666651033390217085302093831591577650136259857515720417180830111027774661534987608413529463263233413642168692686770541376483677619917452883186498648242720514390503786400015074288426483554224559982250943323073988229353194844196430962120954641484136152886635945379991313116398287018111928280275608283857219015082431556798198157012450501098202364997638997938002424995374335864880565140017374510931625748642349319970081264299378470738487812200896377423309605546800359710119278399602811573952373715401858196889805054787416282724322494238601214820213968565813956153792623718238667763306487888711864058466853371828016811781449319053115457021079096410984936200524547326686071430289086739576826950041220245318721427666510534396090506787283533503770955741146094828592164251020379407655621324892089054846706022304660932649158528178430416974183137162523814828899056122455903742489466214103810355721148086569978666980068865618019574583689777277573182999102189643065311445202297647338805195462012744962005278647019339513112476995723419881924896460818483210063242623057584988748661203546094489922766819038851596232161083511938727228753885233899210490278903833913322835198990512425746782654697063139523625895610956246596834723303813020829756930633544374361572975570791076751857091533088095862211803874132432127685231481084267663833376031674492506194153816360014318608695929359829516639134354893647410622140434240016810078757404499531502109406184487871576228149702177326176671362956000042332106135059154807667866668183355393372813036817633244236277845622850130985450781765888396256084010916215340674268482440049711401573062059554054274706670360387465135734015888504904522182796341946456577401319448059678231125666348953455028650083674697292185322436225932988232539421763023189738370798123438462803092919180465224337537236256699839189621074886175571364540343612400622589987935664930725086225755262737489349670969493155877977543845676692374574049279498742683405675783716406293424089481628572171949374344516077411136766606292122628277438051907649811470972176117827312684791472792926480170884928024491390807897070549137705852727873277853701519404244666089614495359289727484829758476262321678371948252432982971643437844593348717323480956707589537829385778131828532891833085292251832490553073789371259809948844566480735397600250101775830135696688520191615078952148618896998935200849264767362844092823080735168315341551458202440666151616428703666705170637528055615954304204275257868168308949175877465521072268769040491598267974035175189458690994889658218367813172270786386535748373683822990022642022381619209419222308085403586463328956262631215006087801741288087757484325071192565664963257647016869485980565523419001455894414861879405178129957833507524020438759781558441986628306114559906420387651826347325130237164913693816690258506046566576981214512735431965655307144281443093250273140112015034736203390642038033893240255367102194075438258457713025624298654750704384149947767280691592412506425951633077143418809456157791838047399382281045059303749977610132670687578092885196100603237950895225880432662597906411458989813254930711950873987858435870116800741325960153961754789874585262369579210166657063594492234663085050992404648996543567119232936435876228367229570170227129117272624590948439493589965204076191632669676871118206359584501275118713020511226394056979765800594901515797185298809508809254411602007106850763796831686719025516215677010458290869904573809481954638938458423400672385219508488908209504446342398162109130205071442213595335362134024803875184938222134452695913220244816650881876276928906875127920066073796324330440994405965804123058021892912747118955008677449356949779062577980246237285639036622572387341234794775459103606987467643583565642165077626449095440091187852728388723204321880971281492984039942534522127536982586676023317179845602263172140528320337793399864898697380912792284794506066806884341869277875206977342960932322220824309745451233119496723198656099174627297415710432833513717987077949621807764851230648012200669782847000739430414626989670991519436979249056232357675146022901917253740928291036535091276229767455032497148555512146613570596914813867630691967734321974830798265323522065323381281724428265028904892494992202079827596212125906883477477557614008803339531983762129994801591928747041890314321072018128857061477056040511631432424273734711052045907144068499430093861100010831452161172980041270079793539628113003546225648595071145957841312951331775468580671287542666004223891497855367568340727412128208066419379187582877154615530687868595897579758679137472255703522903141072489531967533930221041133897042644361132169558363107191152474344361126740757131162181439330480571901959831811306451234110433663262604789814808586175311787695298535817494659249866360668935542398315640545387268629075958463465589899044294112127826331827596953431765910962754681276849493078534332537518508208253972955492298902685403341324728092953737005363946494559044400924302889491215123921589429210205403626454374119324758458506751885087570424190544295797294815292050610684015987102718740406766481782994116549527282015893021460133124747855753117345635343912162530951313705231958236921125279181001659965529724293033199770094023469977746911592864471638974128459986541231588695954336656428538541575435940719285216300350891580370802777901639206679401625189565809045653427861827946984851551061877697017715958921202703164848405415055868125280789986085885787536358797090574855549754130597721156679536112605485659712609465409941229439808916654783564595004988162233163925075518203355701558966427348836299547678364166385355996907239666362415725930992320176457051887307941963569334011679193760584200923429782922873111827503552165815598485605310448589997975567675866247235563585148037765954134230522617603346860122863319089951560467596598711952316205169957628279902137416413369588214423938784110311082881565507847094107760743057315807521167021063972125826315055670847102059360593947100323002728288547819624227287035863389515168125176602464126303129855706833945464020589326030935496927309308718991924325047109805305616887940203858431901429339509919856091046333918838687889065561977999828338716769325820217481104937466764626037548939417521587259468253295516571115283959444754467953401919809668158167386881736538386457474390694567020738199195731462710587248138771345480190869174693265066351197405917250561827135280231709708659320482806474792751209464645758375067600912222285835114923541098270696616992812853902124791412246664360967978819330291970688414188077682235154720866556778330391021819606139105352357989556038940439223317736740509537977741173461978165164805609502408832530574075200767101555458593611811866678641435906939816913410685699122154406701781655282510632805411362785176028279646094275644232610349558394942091363217100465336335030001451200086310961742608224309272824570662454468657315535370300271880273654506643792370079298792716195559246255760249374592506633288999372200199725734456374760076642894541182105515636743347454948776534458271881847053791336702954970198527802790720533920634182967664646055433936364348577302104913277387075255520993667870058217835766558794800660444979484030567577798098648981632068260719680249156712945732125912163130591853063625264930836563365134984427908543574047650066747852519240516505483786346422147604083763073811143804261394086949462090094632337150180009503163060969195570165362772436529122979316095018737510848089881510194661900737654391781376371701050121177966336777418913922039521747993974024316725267952066585832042395015315885602815529031358485661842425464622608295097174033387360485172988029809180918301769822732483677362598435206456929156907328383835803190628165151122088505256248304659700700518652049803898398107185737730063129333202224089908328890996863482542600590112535873465047900251702950013961744555174901018178348045306875985233594940007498912010381002904320190974495827400911000872236134305497791650479446201776233563370725250864509875944455424475324413020774859815233609800180248805340125473893022651088350434482010935348478841565393384284962384427671595466201104305030121533795886338463646856536719641511073357734771188023756418593458560006319895421322076978570717483329117875999772895927975841127087615674515412263662381392772295525744421979048552366427647132014432363072147650043273869115012379065822361585287355657440713099889982551784377687684865427580012946316766326269449327155333111298992933018114549110553901477656106853168546817967769261302905706083012999256421351227769492725038686875692113815427315745949370286412842694336366840319976712559535771473862240422936957535705539351503054563756912574243862826326571480342279238896345322941840894059224148411529491893482864998107210016052758365189967547944373016311233709954311712633366797675714109996484867396625341378144642769938135730440478617663848053200167715951556583677632277657430899520722354019558140417023949449908114028838645343932987555025017321743526197251047238728184339669527011426211829819972202680963050167298513542925346820111098832836296272553113161184081593827602167064183821796718131300056262429234438093524985383027999256003116757988220679682052709357187726754627434698019625334175862385494569163269349251604903331155870280650867950921296434731254255506845329408323223649683632561814943883811087697086142261202220835657271159939855520281507553203592566797691662965509718955786357159316675990996503738297292365036672634269481766872442010674349870497683475797949385824450660205817685522713815649571209801742895843873602692104173568822827902080118043096556169965788443912665831237087298315716538008952936709440497601441446250365644642633922142973564821278096327667928482935883798018654638296994943842873246591990481589184076563020930500126198722144986503173715454486970226289959005923809546234993756331197098858142161949483109198162915757702027712538826283369343670082448900523588328132511057980208428539359717121200783929559129186110390184742498412304508973686719495529749156944281173345237271839038018320002131168764188417951336678632827142844867462880218667574771371459363767457568210142245307909516605602090717664431112280680061549842251808554422166160965875416526253204261294030077416926445474838297903674369076423175287826817174516664116497797549830379393180179192604021054533232577492243596772949813736466414438163349177040804342658026591415440738536380048716419662127977630606256069660024110247799358306969769795322110870862031784052997241081527282350564604264683215459660548433804940359869569610844698664548095581587900782940653202026507077152568760163666947287150356584801178531955159360042297027097765284844322135872093881662059530353605245648705661340598226063547306965422180980382081244074551626531317180307078591282067917976194631763134330828355281003499705293197755500132223377049409359076270090845381569503390733612146906447656795823420403488902718607878172683698194970678381838042420685055978923629039890371852488983892678332610997848084781449481945431209760282248698119356382757390207740222703558099676494683483966168742018507896479671822393714631567664858748680879941958464458235082332998278235212023667559042920973828818998318789026166753168475523510514400060453625984082414007354295687811691192870732028171267451745737128656076211840525882916995807552580676961283627978797088769013438325546038432264147177457178837172525119955045771611893793074882371670275970817500431015968863248292194833661267748296338064106743633589943679119293774501545211608955676352318430393700977016676236256273882435465331600072006687016194999698066342042839195719519931856472545054721255980068856910658967225560787899961965549455608087380023218845435047501982418021368853569145261414365058954641822214813221153957188788578261368297557858575529241925085895793155538914330562832330068654349955669723955834400297939131913960537610582404299334069040251567456894600868580008634759831992027761709239948846090588229238750190391296279027943752417383855786239820002415041377024928686433721192664792795937103431788492844400970268695226485683839341679792861460712398190209951874314299655676304176010654964323890393503413874972410953039377762097382919534749655922764317109837281838295119872820176205381865986646848067392669238387585376986998185739527672748821015618738047290996639260088551856760797303076922185409940812766398588682695849351077298377910923285937662718043943212997316380423746906359423196692075939672524860161599363518367450693321630588706035162204656669898296423858813059312789882847772153739646023152599096289872826698941291468560568870093496959278222971775550577707958531321058964384644701953797118804972678701458439874818572037960610412243120083725678127654833238398049334519250031672239949653270636067655008179669205087642589957020067274886993215395950795337180188474771028675044575475083542927000889860264799046022340953533763395480339275872907553446324541132608165687254203413836851276031795214180861777541952000215641693600435158362396097663752123224448995268720075253925835652915124026743323985399486794177723683261152049111847684384059431142866275235363668219369890286510153759957149618249231560474527220763168434585975182759229413170315583411831766294893434632710959606808614582515569062814459157606217984464964595826849754619563470425646847616469542807604993394205409159499252591713453398316274117676677932214024980604680154444751788336113989601767071114193617544567156184257195784688315750331954004528741152170707101910818416836980768811098052375289356243340854343302322901845547803738990458165768517280993416080478058602041007355069254591334150577976382554963053580013450101300853767273782037724681687286704239061678697297629710480247923749811473956254050615938795849233903511035873457674525454382931468896671040996929869671747338565266546155045664379768367212960056747203112934868772833909067422991704742213716799011457035371176800874697041541956133309427168191024457197633271844183084914668599481876639871748732391360644614653071387516040944937654238453454808914419209407094196428163225654266026736169720118430333117964693369696575629389331726726268786102441232361200736721457384138786700775210398162205479422306248080138156054377796025302789349587959371437819891139780043002174269157262185096864236081340067293035136109709510292693190518002948052596448338309931325396337548758967557878363702476490896865719829046622253996966711568037796272526687814968160821757236490627933901117876624618262407318207477752404289498863510991954800470473594200716271585086133412276769259810985197888178895508037154410151209708694207542189221504561814176997110488387900120434832356801336736139710943341867567154531862949078115991013113754023096561511292984508014983322304132022335055927564737655919058428295801187328471706460777250090815949633661479850171798365286926640399715300213081695353777840381234231904348959907424839488123000707546985349508334340839604771856540799794649794148559234211865341815282868144351355076899281593223788831521364972885020253100699858677771773010783666246472794256090690549488756265051096515737725455775061795095070815743744092008168092674791387971557210088178088594756085016985145467737851570473106400537326728732856161126882608310172397216096721887184172097162105018834731697604570083389222147555173157372839121685354575547722061969472148384527494880246386428981102337965738501381017479907692436534601606209416527634720148038313687796486898957972247839896442872517332497841216721590181555849038916358255682671427307046831904164274526565249939526915680832505600031803142863890681158034809804506924342214931793876556511743983021449494744692155047597511653003102070154527409890385505692822195966104083018670004993656275056198889161608851377049299873568965524413294457544079167243429086462941654346193874545255143180819235415918861952941435097020087954708280862475909086756504290651633174272035629605884791465174307040292337867673703325660641041453747884315961922191588505478864433267179135246706042763160449138831621851119490987771880694073004681005474931101487236064335584851185478475011162430338230296778658431967140840134094513143405488351887314504236302931521963145982241637860088430076061130953466541701105035925729686183632914270541163639443611395153803392418811837102831946821569298296107139467538829418080409628123914855638630701970598095472902435608771454419815945461424167757232274351680376850992757820320095765271090434581572393186772163377380556494512609597675979974135448172374915386633547100822857319114011359878836569737396049283588835412369804833847140132962578873584411672014448899524062400483757196429038592095700106632253219092289551934130447226825643281771208220973053411705492712790023946822845613268779672080630589264798258282562819083262948644206168941143759447114213309744499740418866580187200071552262684719135525824515415172839321145321349819482395976027519060129095123656604156644450265714780646097152802047668024196037736215024165173619525716072382746023942549521061891561773842252168801341720611001718466179939675462078360788126892638398189820540780230976736340598750860781402909165164246702681445554991096939456935300267991453830552320670382731725856188525705540009662655186148576348926110307214981218018642178002036925663134799597496537333604430176954203317062496091810911626427980963668415474939801822127702933793657609897082577172614096275886577608609168578844259162489780622702533368866120043865770370289601589917922921058276301278904400565075735469718680333837938572297998246763030516156241016897918508605439467095089340798959912847355457099577439507421853645508411432524737978693187864304751802016832234101100873754584461848840727534676589534508979905310093522651031073356348964092647858839417751620728048722749361843366553961570153001563644561609598581799977028862640488346654146463116080272416561233477902137849862631907420876917068636677111910017154599048397535677449347327201042459233218329086376470167784763850990116319605599581465644057828715466353624939035250265213786476724814485626552354103848986061505793360435665409748458170775323704985964759120186423306240760662824925999437824325842038899638899094484881230300341044649655799112246251884353257952510294154202645174833682770938408952669724972000181006970714306819699759842216979500085677879749094906560884207925270418244894296456787168793580246059017058464360222681232887208592125173971785892610343253415962675949825822282822511990747300007917656677597382435534982505104882597316174019345136080189456407006917674151788461197581592545428346146259696342890956568668150327670889482176784267318994725796802298137188239334477486252884809677094254791174146057813330135549248794408314266027942484471874264844730052495647972219912593843174156858649940516499611268506833835455419022897894175366659891439308164068763636729799391795503486846580394404028224353265595087018141592570657037442177672673004825214666318578292560831065849612215644691050255164929195496825278740043844683999919902901601990381608556237651326545774855532355026107784740416843483956472651357541369574172938178597847947656571275523853815835492194899368291606665062626534504781219045796344448428065049253966074100698609864574921729838958254602989700198169023828487112643879933257608067550052248209616516695491030557032759986963603906149152752803993599712701011270772228334082362901551735840279867142314034408753507660592623351437570851284719617156204563351664870078933814459572437635036116867478186445086101573925186912678512258333166778367926789523100606902598735356665465411231749118372957926706500345106346075172677709167072357638744032184179599803851817246639185956994571646203951853634111947013995027224455113562569925651824380341979840493194612466180065947773926132225256437164217848752991051490484377090221976709908781887246431472507228136483702241458968061477431109944746351528091983500235792018265399550004633584990566297225419712785473158908306130972570589139670585324535680013299346320911480567255238015383805265715908247671360334575499507960395465737090666483004462490928124370305007236290762255949606070276353358492153852934111789184778287383053219192421078652773773972871008551880875234567897239650536300771207104361725702301129401008185792258187538317158918029847857825754535338265894590415307721973251895344259852483834795715099656632045819776229654058487262207357387878342257258351653771845484523122534408826636477340499224230742607191756551671773226891430841845150397482811485497518743491278158356417785733033008658875293722744074909966404064735963780411118530583806828904481738315567411383161327804228729089671225955250291465818610254853989992060658986035426181100693364313523428147415050249219834455452244044695930373088577895732830651119005362669218824826792570508596093586669628344592550599836308397951091003036870466936950869435976212080534781081915083767334876003682871017255400891432090726119914715006057907579731681705787384398537865314384983278737091046384783175430382248053192559216628179427304345521928275211675985507948347638288204109006106589203207286143372723971490222114647460630014261647232812258813976881346048636994754690270544800170167506712533730346617779828594228229446736285403526806923285324381818705107938557718962011354065701847810463150385674453003328832595706942264041175173950658215564956398560241229561454707376928256085843415786584644930308561209744978815345380432965280398873110852356681614344067898232409640205919874645230358562745259631165051234136246863534604288244948267910163744177967600803762213950422549563563984414821225061047121065151621761207263461388734938581582139384611448140139603962645582110742433775672036948887831171124182220916602451594552873904218258726456720228805966366531470927079056957446561269019083113141954056543252046432541797820026000397156920605121825410850188193479195360906188377390118542214146330794074213820603371696983401750213625661417063034330695578936747286688893797231837068572626987946895552563866117100385024834825455251044997649935174791553511357618396857423372860497925805964580038548052960004040188119071950575904124271564727548642055372962199186080625049438376030222073630788952920751303109106960284512365431403537554382235998751454155601219334355280995785350300209820270397376874132270503664167873527955564373730502633014283965049454022443853494732671470083040055533788079001821426002903347121253460069320226442048576027907733187781129450456956611474761616979103229844290773876122444843705406010539722850019532589727445780652374436968976623106362643969018369594701658080608572078056583371104009262406013378412248824473707693977494238553054145705910164139373028447341799271989650808688335997204361330544060747959699102752578248401431871300783033274745303109252383382473679797490801277135955927295775581305446226104759421097018084101455147707949238064936127774402661359411625224503264878139325178561210448385708411649663377470699036200586218209391942567947350000780060857049689571842100141751063634659773781672083484847201893130708581025296769079560790760648832851465207528529541381083347308679538277800414115596146711552122617458664693362950253786661697134599780822694584783842428343564604867304197032438686736261011007739692775509544529073932263228478370681137714568055926140617219392017791727805373799196453726739952724888457873481548304460634975870041626543630527180232198179588473378448566931203299587345489373869176884979397074192383709856179970134112207886555195138144255758706439903272837633895731395395036215211971291892129711205051931798441289021984935701463967781070688186659455551763891957803850049819353238426102820256663267134189447725185186505280622533723628678772169299135615309003515690178843788942978011132229075704919144976498558547137342593881634943205287070452284327603082971738905748280451063059019769571245129949028504988274384111447099396288124368969864245536859865775830181768960729045275405021709342728689463289514028583697750833350200923842862536982583480591249498409415285617900434024822519582404003185890040686600123204769446363475719229122000355205491138238424812327048688687471284249534658881137585117168366657707979261973818620781447315266447012168048184667201230694579938472851641490849213816366778096942228349382746335064533177372434002596974909448829339266077615880480602056344471075524036163479309089782310884308851687497777230057343433973287175286930431383519237293284135634874866903289893187185515829945129135269792613772684542605430340766285594378308000037130786162415673865348260784691889976572290956516337000532739865132495897253990637276456313097188144376946304102829642829338519015301655804348482265567222582449292843529306453839077365292221906441878235641241348305789718049121295505438605365343934546820192528960065475383636606356910651873299450749155499042592838269670375351548574113274297871642178120898981135872634090278396103783527263069209215326594431997255076818260426665164320111545606622126310741215927705360895054298792649914736478742480029455663151479850175111396630010338875541459750714138355399173281069432239457370140185784431427383427201736044957577499474537641523886438981580291815271502831293416137753386999088288672091540796836068405296338011308980363997033080662841436580133232502117492852345161381188264640559661507402663187214189242494513966063318146130819793821869901396730996105251276853728358421020036651767212372532143731715031901285451583255163569323471339470331595449621899011422290104035362523289912262334183004533908555696919508890165432642161516110177280945492575841560516566050001998767953595275705215454096255873435102074777100152399013864602195951038561754092130733843246207448715074208629404786677398115399433371783324021039260408249587801381107772887086250277192934697647900765502235852644811392861138368167326406164138751106553952081491330017777217565111630108011557860166073699138502487186027589256100742165070307254605253911328090904211543322213871514761404962563524758743890903586322954537188050889135537045339437929356118207712763677478996253825072972449481726426564184131595522954085215205585380875388292585130635804215798502310992187989976065965771614696304977773323942708004543915949562629670379245115774596574885522890026822891335058702879049627683946518098207446519364875140469447017655928594143053849411814285329762267615929172065073231150531733546699470283524906537935024687251348510914372259336269363341437052267166842542766209582823627614747358370673653836840449783756272417652334890881628961704721880214737979488901172168921352932358908226292254184930417281657813401060812273736330410228258135671235294528839565717590378084863377255734465584782400402701751786560056888202179995732938206708387922601972320859896326086047244772471760536162364007673140266488260360955822624000559725504842317422708420148172451007347263171517234878741015879344341052606127106737163790020817207039244708855176180560205710210002373128875410954736397869229406013435459873694316771636158540677689393763362318186223046393612094608032982632640333564586948158991877841123259452429452965890801324802318184175770983092448192138669464066657675314435291886797084737798570095886776688956459210758287585341716993742422591536964145469236033903650187261571473686309175122583897905101423008430300102574504470507073423307238156895210805797355859816344011653230656447199715100446606507113315435956324011271933822729401028848870580585261262629849246734897200641109005239428726064553425830625191128845572086860382312881995114330173491914025157939779791939296642248898092857906008886684782830032529015282015749160462320291543449942396382475703917979676571436439201358067979891417422828773827399710355432337496432512129433944786305703311730133978286119412600769924728180990315808310788896875235847898208137776486249819750015685130733525616574765751781173333867930426991292923487777072028722583992885863758623766706969028606295372542736645007730079672513964888224292382817988944764133799409529743893000947520636308210838465304053300273370272680438403106120633004604512451906903610657297701315357813479447697778906485299060980515500191231250586444448196097239586611146110663899695613886297456730875350168656990488536444673427170808833318601004922750416835664098819159892092481289791122654353306350557134504720507908163589283527336507801529172121983137581811651237833321382637309891889204619786277911686238469148470568181649104144071906318555117347805849837239887724193717585221237164969488921946927839042108067735565018112305199949408606393781980300190723152399627283499154853596123954933096574758747182957205212522415461050198489368279863272574752676469820710533455716132551395750653283137043986448834206770729124637047151777210341256722578320065010030266434590272169286211949859432529263641392069605561098189181826805537855402022111378975701686009438395584792242200389136162286444081198216302854358544563693062734914910556877865617944545252290106290305429582971414856191584981382192735577287517849423118741598437784667596751906576729340398213405935323912812699414037261070057465903340057866240207827850483285077584112012348899696833210482824920045316326875211952594755114262238022916187807395616586949465539768188466979980225289458820167949284402250340840262636951822865162933071631843067542546984298612493531653660938767605884548922010776804901913150692569206087335654464762295313215671110991225792609524242905350812096135458839728130830496774357650295864599702080363619305192288797478778379582437343904607126573701855880739771961946877348964783643830010453166754687233080284703215299104264145800310457451634887350473798017022112532699083187626705421046298311357551426016561938789742200930966683539634923167927801893877046631745619237444586062037299706648751799140716485828806279427695787221581440527629833303974758091406707041112957913868700866660483002116230315138555715237590534376671699318097077309534994489981463035123946482024501759524010522611793263959623923757976753671139129957172542556617883136208511628585606354188544245478540145795670633963329141359670616674860841728397943024606554822106435879752645741399568365619052616199708525046859700833350577950774898414832582771748077167495836141214425494591206109384425447102656953442391844429823514693476359669536354685422131387983174395617691790025588994214719839140172693908036848905917940514067235847175525900725828373757241698554198540932421052491287454484677386706707538553798857269973354238974133255965821564434236782587302800197259139578078597964423227231525467102424814435617038368944997859339320229418725122928678014701064403099959584754716032337681344065393222005051205663446761366124431789600882519127841017947585711580642110522665959557775183577332671244181491930927290465460833439401681356963589316847999282219131107105682508997864616916412704468985691247275459809417463766532775642691716911130470425178918373074498806075515010811839353145028562191560456953959916599111801485379960845248739316242667041002329634620110005768492511003516720321595309994021209160516917526674888879923194633699547070157450169233004792940536653004167032957994290375272960984086134930994012019181216033989749904943582627839311025540438492739380449603566596940879374493246648967736090681429729110532099516687319955587745943937230396841858942463501818839450042031387829871445154093511637919744399887745947471046973749823869704938615975277302048309397666538122981269654324628202789945864822616493095363857121680864511035966385982070960584271150674744961538199355743704191819948181701660271327143873710189478114419237891762847257904654964496270858434079270823400123245814749094663198124796119480391475613971399424804605973374801948345862688579798754094475851962397333139753544031022941103530035763887243471240841174798678714841847400893975485945620294828841224991388290621924309620979313805936029523503201609420679625920763026112913602604645692709668683468348766179354435205557744044115900399047450052119171095827272483970607350250157946767464974655341451269522487048044812698031668340233784933986260456245588154270894913934348058463497229624327176873334499508513265467789481161093503592977005439369522951157514522950330144158192326980087822641655977755958197649027572330594031697558326994138109870451532719211612844256991141870980794965108549877519320852739219336767734264294817188067023168431846951947193554556722058031278292416971779177421349950342250996999411775435890463219900700892074889446268509916417475957613366174629489850426494549080007716639763879621428760826397801820321982809346982962977055933335741476717458866071350434065676070581312127233831439299313867657568766360954233054554444080927031935939197395583121912660786839385849907825809935649879323921759093694592064410240978147604824950963503274049351245270418572578569914487301782340117546410052982363867069163109364991031608494474706035164289321328333205268605805073370554204743994236466599402005327817043081108835782039059389330967129215642749056784311350662907206675187161475570840600994310348858699170885018920843535486354005772768466456028831910218311771134635276696254990877613296479491390205148008538488684496407100782820304656650347424303270623042557847783056483739610507051643231713290005914333347665412159766520741813836774935114279749307822631845516130604867852193111532479311594734804341371773664880838952096148091584449938515722911461100747755790910611720858030084185522003768213748328302729317742605785923324117564499084257102494504989276682233436573171554512671607348368297326993257952661445853570273596653971712339211116923352015033032008538069910275751052207349733337550708405013208741240487486442200581422129978589013367843624002331886419382008925492315215299342132970998883326528707236299401930868717247610652405185382660724241451093808406497873066687584690439009271246810476186777661724321965021911461040868783383754091683783711981146031994231973247088478023694986849153278338952377135845468063643448220194601746877691862646222994474001496587049382734762992729239254916943747134674945170721995891031325395467227316067608556332730026721219580742974988670444538411323665961242720989288974003468764974161750603051886431767558215002834978992871800446120162047046241880731619674663260561465875780108048590218035399938134180290587975707348662458975914184604516369342192678515615946506657447924266518953119401800655764380364496570676092745545227438674570013153486367185292166862101465357666265851697786416337086461868473379199614586240368226495261612479603244077657928639784853013866716811914018830010039891497050182419865521197884819815936832076547459243399512172785476481845997363410436379327341209293392725094448304284651438274978032546305087240578926610796904186417333559437971922975438522030752235978080480444607832762817736377115408169019379942188787191532695935936719554648214327433146690808207936277347636491185383377492005102653025964339947141643127807262945983312171231446677081055607827794069485990019383136391299070108910264462579149633935897998895453386111908749681644524522384979894112584718262021138024487011935041801400781602635598965466421311887320952267393052678453505610602985974960650695955926164644525801925996776333546759514229303686463502647629151384918081893589791938482393181692533636826048332237519577461454433223625654763325405605593216808448750434742728657146721549664543733670829122977721438361525474884855372949894469557418663781198147308809266956112321125517270506995781245943709224123136963172236817843463510921002805301255205286861129083799163767351857600885411487057499066802498455279044642054256620117811008939944862167560810333093706082043088804354462004042245998525620295530894647285190151244752262088668266560207082163530779748497213749335974893406913345041734918825223016663905780737498058429616506262305928303856751620659749763186542951846243723753144063107111715672341094995951352637681370493980996670153152838607633500492312478315927198769279877231445349599285046570272852348233758678918445071044969871956487656953539947497041114296850010328976013759032596230868433879062075870667236183683826171022756842593971852364664308327417056216218414170496829832868150506736399231560070427703479412110222556915418232983067474659587009026713674521941195224133771823222647333555164606156495992878977502480166641395544313090791871410267569320760390978050666696932089066444318615638143722499451158288804041881089713444624788257707706779371592447934225030069037440254546632022697590717700527634222012077575141066237951558593605797814795936020833245023517884754415161400133757205130909110219042792460582270834365486731784105413363990273270089124458617683120683161134589087959300148601177215973364516217951321043095027197169765518861205899754058268914920636847715799239036032268743695738444321034964064156351523503632735439813462382596202018586058164831845546635637849125254386098323707884792450301933601861912479794847659238843726270015572066158645275785032495383230313952073040074844052401133079564437653268451763421408975207429451451470922938416718580146736364006257708642540104471193224442949945705970969101366318669516049774991161931974885851055139724333673337181631600579625925496626298307693398278318865662333975217828559249681728314636766318075580886988489116578326710822668239534456522338917205965941145541803304184033114043764299154070367018825272673291499335785686074259569208596338039243891806846083911560061021560505584840658862803273841770641346480566599764172836459871054294039588073167461203694684159265146624582322403161125167376479277899441748735801318782635551554044340997507553685160847390179690768387012866307432666667753857160583735569943443187694149719330604351730703810110334424128811354153011353926856939927670143813193622070707078638790482691251759272886607501850279165409350370731333929598776324816051655031791106083080933701139161215896689802279219852652360154385936042215357283987935590964908733265177849156819410003752623308090003276749423694983838855395194977993450608070273003380821846579734784297027249004576104276001790085545697260436004595121614073616265847812795246127217934231637366353334872407212286287201129758833622428930645855082792789483693202131764416919355122581383537359583487951088621791462063616701733697794504734192122432644234007532607298642869906158083437947480708908009917576987504353112889929650893520245926135451594002251360409119646760468405104943748794507117941051566540585744479847955142369227222723775956324393186722491683173634843979408152566048103573047412780542441896531481483265225515255130714288938282308076331773761578031488802286422175057070386030898543198291306312668307503740981366771842198352255512661007815610845628536156284929123812963694997679363004076848983705755898444658923158255365654297978112088546837573053772159475725211002529497432004955786132427080903062091176106740504159875215053105969494668407366089725340394301355918682023711604536267377256631146543395952876060130244255173149048171666318489119716781487544821367939256415739256595443409397518853931811101278622270522051425918761119354442689562390197295564019839254333094803099660411405495568719755674256756891423330707655086175431965983456563039883077995647822536298654435489075929375915571553071522476287909867091339462153857955226188548395156162697366405364284228109527492773373905270038033413222996079633470094787366138089346475012220915946995527344143216640810524303212609639068504815881417466933507746698185697208895572280549091461169996849134301161956075014605694643712012357216181716822970062275715671085146760160521442408088333512711734677301710732164160840914451063645092844756032195829645720171181559077437121671288476492095699823816111786939474596763025686678367890221342186294824623293357272537876570290548232686157974632247596041460594977678511026943512822963669455129895308020892039537050518766640432765259693573314865672536656258304620267212710538444978994711114199960831750101943275661479475046533796250468907461245679225572282988548154872973276370393648436988959654177745211334897753519949648648598745785977506213080974243264192372197639949927425742343185046001094397936024725010480729872736057752365547187656877259310473792695331455316640765106695425880362497408635386698313675546470720028312703443600348346733031965472875524654438406627484474302357145822333447703545033709789840791768623014170687813266599028283775288177857430569087105731546372242891939526571511516240313320620244898387479452192796460898474888078224768866930885133017103621828175523626132705828917645917544271442636124210995561841104395577259145111661669193462060673263298794722349855081135864731818857845641332008868358586406903524568960738937474994055775237381473015601049941608909533269269124385134581781935575021142919312095557692003738243935309906902197754500122196494393861527915692458670538852325464260626586113233100407949785756877147553699149256875900549150974632995482437163650861865444379853872648808003298447553373212474210002582036414217494765407898517151568128529335764593019541505529977794970134010772517835071834308243886648200882456217847481345946413482549340096840709469142021883221214048838019473613645304593104505398847425691882622687683182104446541975857056395898580636591768355387755947931923552236515672548516291547005696314676810880745450451230740910722238858618661127780266288927993475203680133853856449544747978862203887709764262534823738249624683110025653908039328334802098168977979271982426334456037503726740759592516784161422158332581908744899588047022727524097657293517421749321324904732273268247360460157566097751062297129126148432830053736242988991216025857600264538171155318827973557909528640200999600100418045827590477570198415251293062123602419048729153803590224326369801483978046568338690666421071086860379817804537797724547373922428890426078281221948826869596551293539658532451677702414811882492274221934828473462244837254628798501193921250004310056771179251062327517911558653311012072755526018063398784451969378884910321500785047992168453261391024887577192774760584347206868129254578131864727561590882001709571749777835464736695891717084832310075348690676261780365787362728668394282894728314796318810010345970608824911815823724756379392510762786063004302052479095060404714857955722364726220346378019973041955247838306415210790093730954194822059150887471572956268613900984290275252717022010856332737432960715681826410304145747544948487439154273048102277683271830057168473790685038838317117943692577629493834133412064678485127454331630031643452519697226302395355645759131257540194125518983574665290389153355700081018043929428500088858942753493719170926851522619497613728258693278194458837709294113049855143599883118454176990688773745748463098268427059480831882706975413494739967946903920225322754703065837115534125368674334420805560497836850716897961072719453597196886954369626661060082285099232893966762258266136027232456810362618083049777362186068933854460766060061046376439240348100290354646811133589019036219966555959284596189054102424170133581961374345184364691236254948011900022332513755921103498023133483140248370117035217155988428162496125482359525925045642864651887508285518997240718548167207392005499108401358221793369926204404308862359758449568916639924478013656549155046185351244322162530698707806644911926194359350201409989829269996482193513482677546342636643027818090036902229600085609182467574272044083586662757077441351108194071396396729088590011583216475893848062147668362554704463671099606131932862121124089636526873869514825907254681422525659940001891284049996569997256724553420875299008551362402722270706605595810146557480717374187571644816053604382467851205327484719334219060122519705230325506543379404087023892250758620771629354763295785915644309621033937798512483170384814726565310510137807929397606537950822474906499437826253587374600930325460007830197766330915001392124675836750300366979480344262929159045626383020560209735265071886791528847474003358248681233477347883655102010363867996997333143592125874217192941533539001220523143275865787216416982368579708565218570116378416379297641392573925846953868054368790488212999492726105646938168944505059173739486402958058834046882682367689361617864247653199339404692507390182933747266979944157564351803636138885395953017075436289105021106586984056384623383355278091512812116314748197161910040386286541643218621660924850970678084400072914635320435102229446832689084595201229368905792706254615689734706618987990054133326970239833581460397665613638455689738131728970613387532012118042808378281489404470347696537075476777800862337615791874613529243383405991990603103097983072835881663313095146442328997169682416807897745499434710761392528253331186175197689097856479825257110673014723908275333073042528514273947343875722783853620329161412311167676362798929049980416726625965221829067306677906867581121678692924051488917531526149318272848106464720138665568501646054334568992601220434890075220811580365907735467439768099333366540185840696430998609852171179487960862807668026682263421920210076893923508646996895748156389371201019307633237155302386380981500934177595124606003032614691768431298650738038561166309085123077039854588125868388682893272675365161667324615482683656544381896628356425258705318352134686213048955793178935271903270154986892660480472212848331885104287645348467309856297371635276441373680018119092116215328298587609465305130211907603169234040251211170613757191696328391020766259957619754081890945182945913240067254581337105794703537299458722570174976931541354230002600137571203971338167198315222709771193945446715137545381269736780421962865967447648277619562242427198594230065925160519821711067313040947098157914094478529908721679069653626580204506642492815356591134942377041302855007978045115782287914323094160932752141788184556327571951186805161106528198499152730129551174301107197765257656385756525155013517512609404849486258207147357758042595868892856716290379147044338310624658643907013650074392241335152103405128837809636974979952151860486270955271151621235396983385083340077940804436998239410227538319239542007470897054461181012417291582850265484140341450657866436297298021295111314771905025801245821518098199853860348421900987079676683648030797013521747177137392269837784171653080818878110910133470841836905779306236262908507989478964197416108506356763206893136977460812936118625700919725392314447700767093153660736275507426534106219420971876631167603842705121274257370501259039070347598636215662539700702976964623565846418471782010152356532502566719905680347734945659690535779836943351645928873558368969235054283494520272006987574568233364729790282108789128436486873543207601099279652517621658819707168681453648691601417104427472456110786574803843651816543231253720477561928156390348289971352104978499640503741753910147563372311728578134156647979273024971885534942895842857054211084735369604367401358998085454563357528223672695658189451360426377267713902139185433556086100476248675503241418926876871659097548767439693810256868252386260403401012279259881698939000519799015235122787394189569590142003125595527024155961952975298087872979273649256998865169297241570359697965536196791252226214725988657121257206239218601536820909005078609909838332924023912238170725616780200965954499598160211189044305230822597436030772985835473138780201215251401417673464858056838556653498449121359284832849417972926205827590317581941948032587274220075321167591622657619932719039634349431104584766863046003414523712539805522276194178317817405505186275089519554406041275650506128303895065312445940825242009979897124585092845000456855260228354847405208459339097904933487871877824913539805670990634630217823970698159909107652595801148940210413564527736966780416082019861704829346934766238472816721817546145059308185118956570764994620891645768333885553218147450044891738641074216081416990182685627915254273576848293825100638208154301108247006830896057080411438042243904352021735614923045885573695169405546295283132974614074039279122520289385939997730477458498274080647538855846961352829522999907969957226546516122197056826473276390063097637786327148805090563295294609246023425690168470990493794853579072062760205151154606640492674635744583537621470061374932601073399750840301731158067022484265291834235694922733908293204371151790622842432799480669084586983508598889376449614631387188713388676178732991464770945592133267518862394605547840040120346907290754820999732587418425105413972036354091031707139013860127445061540711419677414754647529468591866279882687389543474634752566214815446702582997454695888182002245435212957184113882414071104024368095799860266105218587052765627362933658891637066656353656830980455309984913126427999876566255919961237462269827730256657107557985890438612069955577530894350109822015072226964358784754738319494483296890229119654408243911083063524893432429384160785778098736703697929498731915120542579061581350755296367710406178008278927429602062724041742181182274292406142466780638914432813731196606507463845259254190867552030671906255515829672863342762975743874989074332190307454124171884402266203234505012101900452113329421512027320146514365174147978563275196536104380021979319696741857292565179574587806345072850514657827275626343760206733183491116533276554352272834318052988304011789985704281546075345645694719791412853573562563023392983538939456761712034990244222915803324307961423052233603531325417960538193183315269555267787894331425401334653568346541707469697725463896502640383404575957965489606270894463397868714632122288353305393660743151790750923920851894407751790150140837790523716426305536127487942117494482926393762278151591457996338891699631817054088780100621783723361178192162104909222098515707435044029605415507273697254847674382783447766601181959779475608703513641217436894336448572118716729065349332639598252825730313835055478377591895820660525836942826386333332250847118155897803408961321208350306705426269547299910493904094300972679190300982463056076386064330639011324324798427334100915268483082581598311644196761024245268951689581721098541812203844994570148504925359903390124842365217665890650538985655365483879460176855859396760616611777789016517009092344009143585619054787630692468089138501148947608820078679098788876988523048874719660716464994703397184340162928599178653398208245414781563970420079461328748925427080184589968409805548874040698940476773207869209417238370406817122878379811783401523819911537479782379724477318179246552810240388990465716100443255302460993328335444776174376831048304058260812272859900759095034787715755322369541195361706479630553384114855191380210678279046938206719302237981235634058293614493987194725478752327039374376782586426274373158577124054615794707006798628551239780387047542634531755242841285742173239411748324368690522577794609549995130779588910724674700945273615546091446330282055220194750231613219203730489538348177832602786027555564269116067842941074224685713036604543212209979765321293650151275046319159985356900837688120127521272065540334422863512273756447755711880785194315225811855479626922081217879944611565677077227889813939503311563085010085525200491032878209970650396455345817905907945445753483305243883226768022736387209652726719029752260604773256882452377718104848554375677156661578839749436934396107420434697775378677441581232542248739604937991243759110391517495561069409221463643971775094319275107988982366806382316075858911793943327951949502669139507954342665481589512464029467084057121256598372444434006620153246854621481391605090542605224641735583532954681886828013109158064494959426921301903940266948602708716612089174403030587037161343682707236229582197918375127023113362979453667259544661750641019183161446260475803464202780696200564242417314031967479624749159575705796719240028649064828238858975195601356301609427871247248592619995401861460893568059792020353474173352762939373006929923921327553629626448933134704735448889589660415384640336054495802346045591233053970935023827635673637206195096972858505427822513626988601397463076011416120817626257526879615622274513553264854873590270450623971500141472027753902488476677577184269762682519578907526687709711545352835629403167603950607972494958205918007695619929292990058301805771426436263181951300971172526140497709036028726996263848828777027414392966148467595867185970067488920428909418843134307146095864925322317757867815028442978311828643124846314346346736345366501440030592609607498060295746288641569922314273523477989063734491611549399326642775207852101713353698334882666320786266180578610304083927175407937901303683703880315020402532071230455445462191066946433351970613274919696346118699957541584289561190760721651433915146745555343142492602456367820500203193262927856515221103607559095662234641171184926027718391286775992102613439280974063220396248860625816099147664119944231780378921862544736893258731095335820094732047252570393903858837279634372858344794058803351457119802322639645882359118255393938496885007939476455743378838604380385613710996793342323547237660936465457176477593741129062090099943922117608072133631010110854878669856277714808470511173428776691814803293941350244954945679235116266972685475676993224674068938248490573098399154000858983739224368009906815661278323738165665227926968138213532041430215814585439574486718837707494873397053097027666649591126810327889568328714796636838257727931206026955317756204095909723599853852099330674125236431428865760863316982951452657407141978807520798946898269147895914806004370683177407367134493303845321860128586329788102075393315587128356385694285673821633201704481980249299685664001878553511855766901818094937497497547893944114721433699140948790025018827928922976651813093966201052572548441035493254702398790840292732635694495629711365555723254929043610031420375094079660289629435327075851069759360244673424254335429955310833632457102377623519699105607451670510420564614733971728209910835786015216155408604558214591926884174882606119245503518861786009022298350708465548435565435291549230312075452768474905676437878821836476302785636650822512558655913837274545809910414181262930730060146956016511368394643269557710526388402393359533480002791316173610825326467296788566772995349516225549078729560744618436501639274129744018865549100960005169615659348537880871665919230520128403174882521247454401030432684447436679430769894907138077763998494860904293386837822062050703912351147185231649256073613957524555501411862980717292893082203548777405508782445196427905199995898138146074485347042916196300825451054566914947373231820647840708245028839877973292912418015685117881003051367057525193027698828656813043882684288361179718033907729287641241676727094836002088089775988894245887187192407233184935047289271883314947301722950109861176229632698114075105777267388600836846971905379635181073336563049927188772846409290345403243510674749177159177505686661236236989065395388966592938761575085197444655691471940357270732109307506402358908471794272593900776570653232516122020201311592822777119512348265171467495366424779627598725405802026458188977618035352101134706430825805276373015413619908504114922099263486564385715629309133052343919219069383668746558079933077947418053930822860728844539719405186259014371366422023480312156840099534087085772645133002232296233871448287543063601038806143388883752301700757966731532412510553093891906044435295755472917070051028495149764432291002862535230199295745451534255241488712369678487870415913483812704626177023812700108087835554760306930067692111235394615852602559936392564655473562197825366709378821379374585054668201504282921258374995778376054819657873355310158666900477707344968343243490018945340999827294428094085652235954851734013163186323749524211835300804681338806962731017549668401941592448461042697093171977955343026082903386072987938327097424899946406868232843910187077047539767147241219728086378924718111365910237424399781969402968079486739394165849966457244929480960149370477578637237148432499116972837315928306049075855728493463049925815001154664944413398876902685333373595637363998768393535073969772850091610090447879463771038034895252810294674692858527581017727486054809829854850856786709689114215651870074867213242638659346050073530978011853186741667914382591083622462352986022628086802788776376404273028317286941287639758692938309230776335003569133302275411294607496114296176459293979253284858415436385876882036362736294440225370106048519978015537953562265207420936061831408194779163023681700930064685553687153678215524725802541832002353811166014958938666275128078404087471798413968643898411996364459997912175395146901662598978339625171110286761744706669065641094006725000657970970812408111859416704568707881648636773071314150713876086157454424318990668895736929387986063065539081685177349461069621134022832737417575581334027980450456468991006612319004768331834030181980932093906556899428770427524478840402752724111522039840560562645813238573162895736648456147949605640620352628005115368771210160759045269428925433070839342776155503666512646704577025476062999955119300009368971752921735553896362775641518019504903463626874860710032695586059886728508569929493875870015975260177515849598024455603142758165074290632613729597068775190563037832760257385453594025499132065982811581924120092167084002216430448286132540656689273510287096643351436414063666481934134246600495496142024677833688573401229335188345501142082246504614141379024865256133810502945764390192670397536895990347105089973289583974684571873506247704105938893263066117728997074677128232283923993179907993783319865409127534923970765683515227966860903138672917261152215012661425773888777140317897229107445479725608374109278370844739825303980484849550216681783454415533860137264674477584381632934494281831099029758844131589282773645768966593092626132553317828702330892775527337409941881976832166806998876388483145263822552606167649269956156098225360595196997631105671441758900189369054383553351934262284598199268293299645378382604691869969604010689176906623309107337094687112287002602542757395989393231969512717037287196009554865212204628808622140190891733529989407771611886404951505479730615672865959698631541852278561901852542310037525617455220343772158008450050413995224933584741025942972566793514613791343422643632561523306743566380705058941593103795052887068418777352901086495014369047948412588233149832870288485866462576220944773876467073954129386300529641671217362178065179823148239564910648710879000681714334370729922365744643355284028491643637951531835661320125102756417637940410723748255532395342413628046477546959426977675802483540310481633934277432246927769392073493829588496106034873541064546664350828615079457394750154066547748869147400381331935478619555972451433065577583796246698293540869989169687523537897213654689287125180572822976695780006948152844201778898977652157967292465191308069410702405933574622119932910858456488642664561023735896454555948718020003906286064522983833275546481724269542969418877721005589041440453681713716680296290664169220985790547705089925141344359161189305765964468939127033359575712702102906701520613653129550478981838615703158023710484883351721327702914529001363141481211269844882710933824142433621399847795396710945738438435958914283506316244050765636778846867560861641288201243855528085402627229655308991808695488085907265861749785923456773158254560816908196551384242607106115193844710401433251230135469602524699929856304324400594259804892386774408013928063511327193385216989783099204480786254773646462624412254612663122515980667599709486847903704172449097252510151574751335209376973178505612592256660055098239112277903932468723579431656779050929412021982471210234910109399397361578528256917655264845914981932295133271392128033739105752935879996842859138433523672012005065670832751953696131059067936743316263821423546254149954860744802095018591450303990690286765582425588616417964382595712936125023831444969410313048424353481024764484336502547341358793474800987528569966774484194234468335700868138363803387779327819977176044181483570965242679743539776372522354777700740814878217873282557501755742247299070991197098707636745250374502464606467836977975859242972026820316096936228294293051190873512493996244184500131882626822352016929459708719068510285623912687634030308375437339666211370317015831166674023680124085432341625242062137641616441128455114920147651788045789995477176071675579604928529657576603901707498340938334701233530498082101418014752908418375352954558303545730312521479610482271952334094452820083456093691663010968387902564728667235134524957219717668704963802472352622070910613872600836672626034510916985670867303608862319893638561130481004934524680775947881242457914246342444546090282492059612193667233067971625944153457834105633995130852755194503334980125814741851174457806039752401880157484121245016748819603098890129771667583921838216065557920918225554969069427891965407644677195584424029511640131745529092936841138752603197172145141755336450556575083319495659506174456472149984929882214883802744532609765459376154559981013195303115589638170460783853292350405870650070802668314378429027071651928869595062301199145460122927085439768183898724628635615709601024454316152540058224072478303748927517482728585971953559487602933012466118563005335088176205776263490038123013989125216711377598764262333530995159951848695201864862534107156775289023887649346876180148889118706241686361533915759628627581776337964539496096097210050599960401101355100019038308233686867358310189756589045334095445567603776077922758927910413793595618608737414160198942533894742741616919527310944392170486884446735963154687446262604422627855979656619479669292211121397796193220706988402174797115916312077245300155069138739821766844504977649795669691978680082208945666500931960152745328437183622026815369901654585025747632585228173763445275600702640223027858189180463562385674303624874419979509032776006062138400162890396314082801858918991185360589531888845963131699581197760475535858816574824155841580387059818029208897146947399560144266720705308691945526628054810829587007709725221986635984876735070088209586080407881788428626591650331892418935964180504442484001235890132161204959540435802088343607169937706539077218143394442089600711949271734760411137800403478940048262349451788448500550024636482724471760024981897227285568669996802196766507165370494227573995775281389432301914019342753226242507403720034283615604910828969719378754971142890547402647262533349836785637324129800866850238823312024318077311506407565522699669366228693749459672014516591242054331031147821590066568431732840356557398016631853606069672499451400197130280781913297991342097821615302430354929134150422796650253222194555479550014326554685199016987439926830787354130337642822992322485146451312818226409694843661483453953708027620673390382122564457696362882735935476196658927025759123048342750264022008702713690177901448082323675466884399204572680993284687652579308161111187804146636406585100390272388250570787558700024770542641965596754342320243420808737114252077138655806854601561370633237156707725281628704379324507570945751314869114305439482502378356708625951144086952262424127179943515523313391128082703054891323750064575808219848068135074374542091624714451638838997591636378394150268556834817565733914804204745685219720374252162642445251711623038732753579441399998696323562277350160554756463039021136436738719030503537047276422492245687663104536072258350340399829618336117585615581510392872739889963290931275970508781514288319059048691181484197448417012949961569319857194985203241741025756914420797887766272926559785751105212805197018546764256079985291835221804798354465165890607711059569700381661622174237909353011423980982663666256862090442591671296402906398722911555013806469722226017007246338019689137706762251906964412170294172946308555183764990744758102528623135875105941232085675987167243961109561028135034738531737275115159694860564114161254652674257310849987909314304557739250271728000014528068491317164053268622617711214470190977860688328670998646970741202576227716718774670364697672482799043203173309187484241450793165463812570535584039127371611535904475903961540331659436377618590032173785280937235163686286004785176258719139874170509176519722788438853770526689165371386103307268450641674935013454279096147305859515817901591565311230721788049046191719267376380162104187175237387589046148137551870941423231546129032644274684200355413773731831032182453584739501975810617797384225949341101653929966971542719599411210480388204232225958123064851225848474139446489106275053673320704123521396277049003247730966188234285541524000664271678369186245521174271106879623783378747770111197613613259534243289947735937292388658274635605137254260548907842132683202921828842382675409504119430840427443084508088607912146492158955477258027983243873261910065371572492552602083123550349060365233997411804356748257421768760009672680620021928343859135297499514550958271424803478286827878657536404755168886545785590916052938223185797927831382830541693763169970390604670363940652025382853776543408201867707164289194191478618938819242222782936559626105048021664392430061416864009141493709140022074159306545932135873066866685171596906185039148127154352057677987474012988704781633161218260696248819656391167440178337479555978565733085730963216405051461338834195067021495972339699310749327333847183167755908698262048425409212887291822825951740476959582916492790278687579960520593461398579922712547218372990587888009628808153057455540239425587757299285417725780635755570022968329512232079743900929238168013386228828846640226976233563240290902163802652895793770381897202117096929316796159556010166686453120215658646857457336245400956736775571381992001475558782049982088623221196747227443944335762371864156715515185620403308611682098556790225833347303187065816668744983665346353467717351544622864790316727779939341629338882357737807469491301792216141653330329812707277347306705336257661328991391360845054880289411056544522348422091566380175477284938690128360808981735382730411298297233062410090568896552654977110160115643972399963644762921302424396592208402155807505051966185348224486206664778626056997979809222923205412414417269157749438887879711427537594939928665802542370802048651198119371495434322150038357874314551306708532774177764074822904092732686997440971362047590655567935763365651961393367595704124272682785672332130510531602136079042667294726433326887234689618687647966693547038395305946447259764419469692343623111695261479654676714417696987519774896231645907005667752240245958434250972168483274123101672693894180274416822038479595395482491116860576765170797878864512576968915191236124226470627351543875672412337500656540232769078163228845504930068654283113733100718863931304835487677299445306192226168131130928123489355648835387513697691214446395480179506739221259422299554533292464366769219470047353804722685080289421130794978858400790499511394628561313965994544267733107465279004186694591148848478823484606603136091331625451059195007988175161852385641821518838747751609581079211763209618592551213034485571355831953765099860680625725879900196569539337057329687418666055450823590473758322592226449937087196778572814013479687965930614928548421664684391873485598790751597093682009975579166250925636248077917102182305463322643313638511831343489669599951055794399737621326393801711716533758447093365588255438599667438591619544901273495322721747755609939178422753039834691000733602444421336443229348997027244979960593175884622718129964174184320263379103375726575834104098761034997307457383869393357507719515319486377813804815589630143514108985409888791942527126143284979046618725172266203745870531210681847870963695225359450838230977208611201216456427335027741255331715228078265737689350870405928089187430454783363056442221040390196473084480133010751079342533900968091997849063313581049064262354080391808807801290913123495785401114105544590050064363372525732397261245171516772756691148173199281239067010123106610952336095870813069572573730759701728157092422509613706105156064672801599818017933754358372285274591111510886282330881081689055567176459717958375203178821328440355342650903326257241659409902547993762399149165925511387514639869279615237748682020152044222778475272079444969661340692645761981109458319761397299987422576532557410718680815858109796038360232814569616941553799315651958899504292532540458201213524905305648982302844580178158796696627444840691070936827035030280798223833564235405297389698042097624526219197798045622357665286704256781558272545789460715913679913460170083662493201665053586955108268394718112986513337027238201338348433458772304173350395876240164016952277994270029643479031075568965553092139516086684020267074054636517962049722502469722953736819233261873882962950305478965620655944829023322239960712311781364390412271687299195684293841140714091617127482679369922256504343236475052378027437660535121299565323581251526578102911733587466118162387920015653107798686454993743146130722363647775066391749256326020199771165553943266795181602765372700709646741621282584276457504623255316145322288650858094175335603888662881543967384825194949382962855349560632629073224761729688584173290702345205335617865727853865010784698289888942634842061009216385748333320433438533929800601343578934742491771294955163796294999050398604977566240485664248335514797972767378946059326200085611048521255448337721352056609756402653406532740057863548467841753225819103155135865989491204552623666217415261466067216416542905963190760853464795455996568426760973900123116494788385585962371721985657545501218057814074125531299401121226039817712288647671087916937743205883330778360512234511893097475277850783593674082611397709535745106894647915660908521565240248820006539025109286937954163392668051874930357960457654742574273574153935856745246299055097901926973820685895152699598525210228736639079056579552587318975814523228110562433094486593432295847538911853013844740995543529258364553747529900693194681324049887369382402005443418494723919774246607901364193729435956087135894952955442254084250568410393052075834791379949509684780644106270888922882240338291589464618405789605461000407030014126782622488350534251690282632192128206503865649417735195258112537349993237926387741933425746921039740779699740063274992324172936390170268787492936178079287254574404977484518271394554003305714664570506463862568017275851368560457752981866345942409744267669680469680048945169969649569136983274823484118825095182560958481673147988208281853781474840761973893780102266724631791139503048558373920647778661070135732500804267551309408902951572653827235497774288878074005386958500408388553216114349633741565281080097977279929658726508854742476597272588471932637376218341565544231638023493702342946291456275662456134694442956535376979046337287009189734823067683105491566235209265533867926959803799600942552285428254730725064262303716199356971585576581780775875953967023476292621494781496840087336788777780341523847404741186415087330406366150522500212934710854895087885402406861071766582893419092486079733641439566134011684012095548210199891894982220964154073871919912077197180501141578536887678972836048661124272390383353141883975779445267484979867284094431367523915771835188699185518228480596836885130108257014760047761443618069910897834355595480673289238413101180055791289494936552678841711297561728566717669707536146943970478453468114284596839351322169133760731013396909958784267162136343093608462137545622579222332011842685096448670161337707687238563846628352288530494847092992178700027338213806137474208138369111363864723124708226707217042019096639228778902037120404214675236067711960290886441331152279893587837888063248479454903316260050840274005070974072246156596633140270549336320517144336390339178870509664948391731189969040528482182422264064154013400716728666624956963291192132490851616048990805178837257984956410023305868427076561166545241212616594442850732584414136414302051465536249600411573817068442792864960965880451134420909702008397082439735046077718088879359736271045675011386066163601950250408137783376703474679953242080405490116052672972012143950193599676150047193324219545620892987981001133381034334348264398164001128067080714874378116355639795145314418200481786352220510046128164570896596213881065907119193866230209670040673531926007821808399625193781090841874803003973943452849251852199952767541511168963605706251080960257922752363190322706317246988222027089259466239150782787204353155861837996769648559882597681714678566425645317048389942617513116131643557242416889409776734030054627994395716463157912119518265963714027687277102723478893744297841575347293562744153199575029830761480064786750635445065456919126137132248091425042481110620085392082201896694880515889135309418273136930243898019234098175806272544690124687036696091475545636504770733487814857374203734714012150176889850598634889006392610987607748198917812200014280148349145861608550617655747948120096105281051478827624224370768872710180790622899033890257332771064391102910414657533710455991181613531768050223179805859034621023541366929175733242806361287767751324759143718221718710729873885916601936657317554773651826373180757446629716031648953288417250960941420267377685205235358101735709775816128314343628681873182959573926837096882383571558006843456084037191119627903093080214196088279790753945675159598980952121926965092455507819111482795422868535060036208257124980315848379665851399661935790058455175650762565798908945373085696640159467559389798902714846529105348997898737089255006584957724384363439538003267213751480649247089727513233925548307999560930151337591770836539241043146098508117056723431378756116359226661361808157121969743595585840034705278693148557302130192851026555146128228442213003098189894296851605277985882219953981954878051947736939130061867704153067234209222637579024557598381981402737493937054370637212853581128689285552742004947097456957465208446141553865843497517069255237837139941912014170818476060711939555635429154033024881158740657009440978814361540939080301199564594413065393279733020891171902852281771650949715011899961078011667994708901567976740511357615584511332206205077092703975945134854298973622029980746381886927828248515198595520744686587701302305150949982435882828377291837099193583908808870602489930062230450803758541122998544874291952359616809710967690502060073398156972113793228428468132625283716875039109161328757049872668942951671855852091720510903374677877758274926875528956024357309264506728390354651435448603918352517106012509826941862843531941476358502747448750539963597870303367876319763090444376694691962118847971171196913306041896085278088990953875812331969107853835593179476505971155093948331191111017286738469032213213738470463656787963196347926862082627886494536742906746863081792300727360576703678069054670160068756430267798086980459900998733121593843866592957442872857184200739868284959927474166089504553859244136628202156568721701676299925729086397721074382501743411426454724306031467399222354973892380806634498303056062838515328737530400882928268523806940189417208579762724456853031013090585410637120181956760626037985899817693278052849026882979221325584291052627287984660353182216630026065223237202970483776284363533976116364804969692109678032004798335479836830688355709365148690826168588913359659908761689044639243160800400691914364797566633848132099180913909728888139776545598648730257129633637329210517431233069394567756829794286322414601990620985654263742152669846665726113349277948126347534929588999515528888991502253730275928882715204544601597403939591494775314313208027501127506841344998841948676308472834328905280055495733654311080932828961759708974461819781945474524623012556726314999262523707613951355817787455283102653429960273258687472907152025207011934038995443038811005022046790559210633064271954641140725762869444335459208836901941069805617041251245253235908136094731800204938866326454553660055202548927277477857362022182838683562604691814371373857140488623936633739544815713394260930345621886962622971573805210830950574526197742529912231112825103760586749567303165224443865125724405288159800177339725758306956334818025407037662825673031383897069602629994969398014915218300200741200162770682111520991265965050840503901056176677519724171076168995892404849176468405419828294976389890850160178502879053409042631546471779632621410004149656035497300582163241711134644212115262720145819991121192454316676768719819382554266628010389252001886101746587443433311165754469615238674433749042465025944272264705732719971972413872696698096437121653502502520511188562481740745769820708404620595127863106186731259928653418786305392453684699402265334976120873757825592076159229471062292457255364820863987715350611620607635748771985042745175402993165227668291480423048241279418921211171112790322978158133351452931750636527585947563283704912889201828380545393662698866345892760527626650603282718015693344093028548992094695087501413905133591936100230083944231653721987816375145262848645624188222922756255079587617997820992432334443390715223994269290164360206167493041272474059326289075549512814769372745561811768292848924039467447345739359476654217646742599460876543018659056409179683773692959439803584193499500042466131392153574463215051261030890665881092559232533457067953047606258047976388258744389493860513290972770877088539027341779745349506368068720504455504016962249380143822773595344681659850591483801941358388456659711659244177630976969454985579087798423436958771212844805200491726240186781160801101958584832121433211579558521878611505337115263992914586618106253422889976299559779708913707631339435297682270913112579200769006517014846892512577674373036997781703537233582353926478167039738115291822576548637618518874524146573567476527063337163634741094998109312875922265871710345853769346880007890195659869247546163627011332603403085832175708590404982573366767427415507995491480523904862365189409210593137252119120382084261505055753414909792650655944827799226179291518140393151051284857102944189062592191862522867784591116213918792391749997054425328463109060428666695834047836240397947945280490262361368616269887200155977232840379136386741686570379242838071652906417798077894710094621775830619374749684065034024642985226172631340751060059875320067827770047095327151012277402034009733881761080808220834245190595949187112870872698404667735907243696846663652056997031917104962864222163782673558453513611567569360006061434123943343909797156225962205936000450425892675566407660738909687698003071074768601946219041734306445088725405279039450855097861180943049191297189663432352784284707395306165505549549501698009602763745471167171808922063847589824145265660650018709990802444878863266845743935138901066287024983036036782458669945244286072017015233965932528266066628737061358949088317881478773566190771517764801936971165762901682412713862246376724631415178115648278060890691536454049816056221172243930528020828902063354701233052969973010338317186558708936168572000790416141605637626385706822712517669949839905029413170125198980257323255018366721758002019710520659341266411788728044818194341671290006909827599033865356449444642059581460071544979709285048713316499418842537384364988412630584369652045632063281602866847059647054323757063419361900891200573962739950649085607859658214573653258869430682092231675470149317565526807911372651524882450590471814416029945276071312732645657585884307470651232695485229089272963290881887795547462190215959312817256852662085742185197193039596146932948248734360884955787340877404312421954628120914212864701258394835320548474993184058562820208123214036350477947677703971699029990896744383636401114337280073131487072737200985435923238349195524678714759618525034565551490424746517656182737999060153569119965923753488984760380430651666373023733425504454041024242749366811315938185795580793854173177222139836812389601450328885958050775877771303965380458063005853595266565678071753911527979251881328842638337893213020349917575005743992820228291392225354343841911136714099713764062489281987821080232687008914267990494794985742939018987324777934307901463431770510947464981676192008728269124236365145112109372256192115651065773232407370039800347255615235352361082247136416882396286949921910730385196493630296930109306112945515455751978683681269790293323103551460031208224345781074237119576769750389331796564600660949407343511182048784425521362951452796428136484178651181034744747644737489148650191272222191185725456039326170281929447099882715139183238187376728925720555503281632428050125334560789196429482132452395581099942673791499382085072523517542051635941094959478882113618865645521009374802885105571945289366042482381815381265811598171218294464893172728329376402614612143374305078028088893403346332200561402865623844302689600229348347037960840242144149012862985839163106097258003889996581133858371723937862561147194668908080447117582672520636479459634806002201538460362966470579165934090789264094631054024875315713386393828500375143341020908373826067354540866000204969003953589497989374793208819996411417217263083477780399593754609982061983922812557925472677693695557969805947464234452986144229219908614975380500042256494141273957422967420315522851989251467056485745334614620377468099205556527492999373240556544904715969530636236022306136317166125095406166141871040786142149647579135022753487990684258800000994320199153555304398233398183996748142562312462364437235458197879342126666644547165131486827796581717926763476855010112942229759870126152075086778177191743869760890615924626738547965776599069172191384283385277783233257783529258457856531816077752744537087513546253320244119250246429153640035302234234095582326085686435832221831580196300326455734363341219222581195656743448423034957501127223128183296173570623238026129256928368617026929423579039031664565030854360377683347328706123334983774871273126141964506564543045889421962451405546925080244569134125476001186143587319517487273365742497170475290978555806480172883677192601537424643873791655698178512905562686630985243586337725928658577831037512370333784953171372379107928308768300800906344892628142771662757727438668026381607052616409748788808497221725119478559000921790431906761175077213520624215134053562266847091180881564778493280125670470815950656768960055028265695578961896078474152854558880785943983120043202285194942831545157257299040014955635481411018079120795799183194668240947890421370046589846331964722567830350158120695654069277666825464913294306747618894214727043902631510836781834498935976057702055425440209681671139470019392117766909937362291022753448505628886816035924096369191292762768331632797444700260951992793280009474645404620585856449340432090885959106250560701678314308422088750363802846007945180078510482931654109918917322555746326558649121283378423899230804619642913918865145028922245210394245579011884350978231656167715171221190181032644667150779855941024421991505071122242675579127286239914282849358949727374362455024981390622654402057396047685455554355786147250022131926252215621590395837156130456401716298015821234415387101588095682110539174576873612123360845540663906035737428833300214763314383073716979179200705989195690310523003963237593152069192528254525826478580238298354405153815344964560029064752116875478542328377031669653465558718007020758385123992618175452113147645972502725420729895266255902546637348998831897377924945778630019133058814276303491168011863826812247663619327859163028898382160408811152495566331083318207508982020039932623951981257935429400620377187971933512258633422090051130656798501726292662028260915110182889483045066441091203999971380662066440547993023900012246800285260388672107129175864791951125601418506512461197705398366972363023528755233061001404331585076564291185521266166661419380424917547590687572661834599461817595913872551919714013189869995160813801297695039504661807106118277878071049639281795253674777146386036259177540955885226340369506758416013259225827008553190379338998394125574060735754997831790574707175124882038709175181085776071894822797433992103133755759947068259856018535529070321542665152174945930574527154881887821942544172471569589316859567322600746134422852047088096534378151457321205315178499599715867169887342193889514814353239114361631155509096547069284714467386493857538755942181061832746059507344936302823404188211411519026518284375430473180148907965938421468535126684563822699684564661235223935617303289364569834884692779921813687619561900000493924773585971403977340215192619955603412008682193691237255703531763658554659359475226936339406464525789707248946140940535834356025290303101235932444956807661064720344866076942508142277486147400148749467303433750516199721285377616756962881498884449732399853369687885153174949622683462320969406495975097252675447085470638883963850931648108047228154508699687878764971113365364490676196393420334462917631012279918812234002960299404838780210340074073017243466306769368815289182698831804464228346498708041185913340315432575035260453291731382348756999690995208597607485200684302470248402644884176722852955269952840557736995643375522396348133307594076849395778489124388821003916640135151004399970471671836600052104946938982677837220211489603232425359075253218447531535832806488163961211048869734689721571414264077719589936613142829490135643807018770205648021706961144701785163673223735555140017865851491714257413659696757669811407185747313075258606681900105385720108660626697660233902034789498269358575104410997623883397091569887989051428713596414024062754888151704960439023971332653325546531411538387336457530749505086510715633878622497318076926107749430222636287049056508629056429804534291787536335555502645835089686864479513115330189384691337676483760937508292936096326351710983232569204084787596322070862573927133395803438817583789243417147662815930004199127624322754667914810105401644439174085118879382646047943255633123894807607147940975377349910023911406442484948118240357053124916222825403755953596926112629535447580178977863289497561326999297193151861116770298797936600628407165868410409397839401423279545320924454805497156046405404054263870471487548426197450905762367680303788493358122120558463436548422016140883043372007320987034401675220460203398440874443453934635033704204946716548694080872140082711156922629130372365070213041153632260601570374409922370506634366026644426279276649731186521180236796333306348554263450436300806685381301940779159336836465613697357573482296818026689543210179491533881365887396895813819857106924082054167120636576312183975445503798945956998803375093564160770569126328107661733689090512357806180658777051606852544594536229366457938287044367097760679674095969453355018454678820201509129081238609337636174471552914570478696095724589814347478441582664380738608621071405301904017782578738248162133477935456453582659865831177952486566553513595962292687239001724828566882844802770078760138862442824951249101007883214576843030717120642284475051097975719314010052831328472317429105340695021866060144517860525515896621846722554471352472371007376668247582288176298725072369133243268091883451138121362480453261983588220836546433513629920528692611476463083609457269690969438517149888499825813215873034589787353358178210944729145739542800530043486376209360621892073805034311525460558863909218970724251859252186449578029082179148265682665818733506575293975055278653259815128840014405422421702764276547198483245294322672614550240114253798432838995524194882712412450084191530056056967896844803102328746071868617546245748432293895645906222862702067981549331791715993268962503647715056508865505595010436194380324559895078822642519106039707832860657379505132306215218031151968663907269756560577987978710647042680379705642593678854213676008932757153037102997713998077128187828632153341180090047496667740474903728297645325989711393143860756385581616934411476499814938390066048584912526041763239558182711500262333202526800974677963142600106547701616179908773355149891237348344347096061346514062955963712548078307332407251323685290698274757550691887625678167106954316868198914630905680060557213856085029347272303169093149202950047768850531856248962391617266206730922540583206420254175018439568898701143624985960658931518573371302122371538420914875452085873124297601677282877686322927560909854844186440984562260421553735693221390249278933739308662038516962958098844189583877432160757616407690172328160987583126592251576338250341226257133424992675420250981322120515743821864650492986850228012804312105940910426609911461175483454076399063293505765086159108837262988055897858655309730077339892350549584025535786408769631398557631256796657169579117575027845191114911698411073188224686315196524349253477222164189309449547806898497324827649706973522310011193782130485169808513088713622716948045248759703956341661456084383486619974502304049993931381882798270152917092411111970887907895572529014037365209970480118304136678691079657151557691284006015118236554091317584718047107667218669199345426517144391133076631181944364895610911803645972342470915577696539755844754436555909216198843004353391780892571487646497829542946102064185512372767936453757870737636139022273009360992802661118198485127430919269097134744935424325423029171662221528647744768977111837706175047269221430720906227182643055470851698285005269542843071593942994922273887418213927338485941324623210453621763867588968221463121179237361911483535829615109585770767810670279198479495177081257566435803119069774440911396597415865143666118537243222047018653252299250815415175991198733765740301240120262314677568895017278329009718182756083576498932078304921115880684849047646895449052543449840045205352605837083529740311757092613461493984246051474473069588367591460266885406442165162868241388759621790380795263379912233999702897154579541277171273351292519067971874376431901264002726986384858424154110198378502076483056860444668583399370532209362797410879944413508261921978080757657720398722540795732777465713306419533581074003218698983350528280251402213052741088316213243448090590995552891907668712134487370682489375947861914273222064532273980211620994045875744778283551637739845798652182833371786199146005217325430772318743009776644295676758216119393608469494943020843167926779873466912597615740332547094290862571343419813130201531047755316738241712911002140040839152176891906420983908371782012913311180473988005773236630522500883167140731367992588824710687856983448571730246480137639830090047671902748626555317158898578743753059465308580291715754744140160453052784175942992600946046669753990319695754331197101552890914541106926706514421578296421152135852796374957882214677180085983711494386899281644407780640490444538324403953118879595527790072285139175597873311171983260500651674046332269893909699919840587120835281782005788257893997899517965351583507578027701713046504272653743618332036592040709014688547705315289417363676745800844206648458041324198729542371630802696779453552576376228558368062416310797108998219130446259108713941014727908304591658852679671875205580496057079927320909969008937786731184248725974064090523533368953414162782761005045124220238213321135425777601495448772441852518103437223589369349898126372136722815486040297339282565168104941180675944261550464739719842606405660316801415956189031664812186932718575176206597987806376994297405460735165342169703200041029472532773294760878195073832116515438835269263610389527174127017543419529334885861541425548251571956788961961815661914050293847129869283944111965438910473138031749210374401843884283881185080606260527905664600187304548702359851477943013624965632205597764424252964586097588423227256613624834784731877860227699148314633214159057183087783084391609511850267318067102604634672629338471953557875890165329278254461158961909413342414379184654162174877693376263240148781158935860111930357385997337118595465243917143432092849546208521538041389533154715372312459629927398855102275659043741257583061761596840270735865610025830937132003354464209347374098560465675123399918768777358950478438108917897551970944482317798237597682650416000849792338826627601143749303230430579891545352801387181935778622383126034427637391653025933199815492292362805102640095167681016685141693570128241699328028339349654614882023072283365562843787201823160401845086473284730737875004901372842390346509275561882867588341708128046825055228847266175288110648234490708828579465084687368063092424076824001698252884635194676936006838546599447155380659232604279545764507912568372265212634813425094248285320886722106835998721088231018200264540037796802006662641017819218315129412509524022172857199313987749245251006863521681950782273275650972930664484330059391657103570244596832895267582082637123305888844442185399944538582149600378503658183808215606217991319231485611068190429619050743460312819635284473276696132871476474666472684030721936319342181237992399856832866173649000476776665480233855775979587573738911467904610355696055977210221684505573749264343085140808119944836443811295157088457615469664851336339717758871292509556355786536345874009714090342597210123811606717112208935167121346683866054582828291994950971244460008688394680051082849985867535422754285466255809509200450729643034413445270661276759755822320181927136023246033098256530023776204003969594991800382645881897515503572220047054584938913669531049040681993531836578669558435828607996760998234350543572478761258451219661091136410378580404623207366841370794537732793404667315971365207109957682750996113578972708317473885612814481185572000245247693270187982473670138458457826539344459118912407280003351589438362101324232451767111108638123196769340766757704403599530020835377324031256810746747144880128038418637611196458258346666947381416149679377934375226219234945528460206538608595571001185153983173274049161810963631412454595663927030062547964521069059648822524174820008845677131165865290398739492038836873828473713225199548016920789523217177329272951504815389382869640135382617641870176469345280155971048119297747552218878237714706395262408282810200680546689436571095708119581505235599703343473596716110011032425677131714186381481432656563900247799371137143879156790044495664377183183130200225086452796375060142273647339422348197685046808026531344648755391321986260465433907270270309142773083331246013667503476278507336052018499097254561731091320279286451224789909137910640741504691336278166711978587878080038008991205024589270810110471575983582687715395964791009526647418576855718229503719846396768053604365330947708381417697278008585228767727277416780953045572115177692501295262513555862816654629688306633148897723906247180439300138825382292866872601729859953504751192737501255836709636794411749361518266968978563385218738099468661657546776272865863374175195740775877187171061359662038714472718134987336076959609611790068676675859463119072750401571955909221271780301347182441047984306882321548803920897040885727791677705803906590040276641110013949257820855419901441837825968058082389244000536222406391234941389001217764662811355731595215737201426816759885789449829565067991605130445325707420211274045722861786622607098877827087543790615161372237063419628352907944284237147340913205302730635292524083496243491550318831238567982222512163071495666781559948651218404760246236854963877460661951566163122263041334892267629727546235651603958336478925389944104366435639400203018026382255469261662346792365881877924685809293964460228648373211632681883038597118712736258384085511003530938689247488957827595077407607266313678695098009595007678158940803123438796154262726857845064781698909091753161973218116100600313489845784864589292164315027084585380260362955023554478072161556357870116855414342695569513939284293040172716569147701155525559102186893707750538186262264409793090933764530419171796940854167215900766192613133701818859342025559424448346555393541487935328178525044952995236795574973505668095290661163450545518910631418421189663259715555731949079258671927942973332274074654335652070251259490417511949478636719737680730619079912079668522973659620147099418361758792908262996778929781007847756364915797874658576681408102395463227400261974177544864016419482896830738089776567754603744917673634358815074015339705246128307507685286664496403011236234487491516611041484628869410032843812784785670369131717085265814437815695166190325413200840496627574156811380462660055902752955580681623460144418658537526509817504390102279005310398624289300823967299780402865391624721788392447211292013102026136907831301457401629318302305307104686822826148425090397346597896456180397131471721372430312575667466300930013725002772807089637029072285690851597610996793374529060401200442864221397756607591430375307793786951141204741341340055429862222461962811358290137929646658516744223861664115124088920836026153081348665874203264098239422436434064594771642690466096796461471013939572041023310906397641129593809314148079937282946347922200917320031442326221343100545843305597545436001465684717737607782832708628931822503219789582755313743803984076915416148053700219457207739094808657093282858314599908156173843867329712353028710576355078546673410982916341570771139734552713529270598509120355208553321912871367867571550198537009861518247718740075714604948290571024814772908886866833785772701186624421356667314107868677910562080547850983606144122251394767716734818526651434720763601118291480437702404895014841908030630759040702870726257520490823320344046160382541419832850557633091187251597260599311298850143690675012323866711456456545598739629268352679991766020054529369061726781475064904589581726685872368185278762997575640460120157883471946132404725952409174608619755843312873396719054115157400384198425368557017178176846275005625079211932034940091771787066239051258288288336082563237234390286184934147810507071480007039292470473562997614763728281110451110296409115747242568304778572515180500056463506907362232006173896064073521732947537590800169746211736006066033604876095089693478542137228938513811015323117584117726649582990143100256596021126834088155190461127673644017756327417246062028681916341544848813646781680713511534432969725526686847227522196785355580836045018040705825624220985886474215575425646444885948613597694468353678049774230486255020532689362450279967764212012860200110538790101204874139561546028051176887110785128296434058545543893995903414334697622291454306276952433136597493710812520836116916589876777813032757554911298762610722119878249693663361319646672611948031853495035611212452522823408276836922470506770127591188758524451862353843122038264267400278521056247186655466550013020573793700994102377479351851123282125346336883443648560673925332184974339506265474374936527986976725899934148566878119787271575171153735672211193822701925349782980437620135541346807140917859153025118780074039008558921241600053462465463021293077770892235886971429320978956233132889496436034643068096721202843884629440216215047108320583512532040884797111195431841948359560388346590410294374277403730406935842153282973501715377154830436469043701435044514896020828613624336071947343811609666614161234360034369772746827655874030499292381921643879457992729130121187667792484745217924162104781852397892831782814938654696873866333852705989519616953503628070967196978006608811185604533246084246442865089359778529137676708730835119241892990814965657236278237969901570419771583287617869864922516711064170196956434208564126845344761684391995109441468239769871764258103894252918022602422067896218373427303902653135003906217750235444859900111024826746576261364273863202111315997356580038993789185508484408466063962370985025812801605874777340517779244247672158160652731366397028562115169255768466293795148432881169128566310214335195853482173825081474576656843020934080152361878733462968772396297503200979806463454029553150983493884379221624997116359285751848492300698409073326721209823250327809019480707867122222214888287614728846634765115686563659217386484199023902304877654947471638997931019341749332768730311604069666740210554886583918284388370469048805999487382218613031055070665453528715862079167866153281849786530936603812921545998720629826320598778909353849825989735947521280205950509836795207577188560756638175469635387843631521393535997029565966542807218372198304208774722195305853749411946501580647389623798627486138508573122490866968657264100018077408641827299242952985463210028461135060176468110555294554188731130927890958862947494457624674206089381193965077609850560366123437447419814149793864897735469620068785610254018849848110338636013511234346755852856470613798109276721950166341509379112400557099544075910090260338562267267605445064083687753953369375758890081721638471098313359725291147494579036946393779073400203227851156098966443301444061955717046448707548600797542096665592667847193408015027359547236821842949195775063843102418612678695072576348240346580195350440488900992272720408654624647261126908256588911328008769277107168264339793846921824796094703600172346330042729148868360845384335512407029009978577824734806185814558482791075975071036723242236774823406792607037099923696530050789104677293041722224270473571142959953818331272993162492745974577063562759582902596863846030032104939655699315228376659324849570156468713848930909409793863664093518901248520081096305558677369235806476379956660582281001284541079376259054565145344256826441193240997031386176320067065445517137267767009210451877737235465611781945616735819633344205317729518107756588571264241278162944970607017398886061292407964327742973291435893409441200249498478819461697741007289881062939296645808874048712584218945970233767607955985664493478587447178883856500260537518543705570003897989776495321678260410550857457421463977230795081053395413118069606384969310256372010901433396490620424697494364993820236720473135230809659143743453990967294101276594878525287754906423204456006560315161933170028591166498605411139208645364527655242773323452405636109867453092030571571539803512049746768448900763228111074874825488426566617997296991333887702071459727903752932306123420829082424762364961039599214851140021673123893989971263718497380027717317479523697080480488513982621283176575336739527433461937461020494554166150936270098170340551603631125699645622795166196121047506938440444849446915523359772209632496437313847120715540692657990261622494424222605344575258159916225382826122487555666039945047760000506996679092886265687352195223152858820627337710434081571149293503765252505178988442225288261845903717670024434053938824352358215198267418634713387928975628204641635805224577583493135060928734969917113946315774204058475774490984077857544541496336988972565624277274280330786101493625480163211544717681490659016672682778673192082606521177746256153448947030737005243550723475993234831866718612132273444424054498971675751297806491283773189657609810065123473626227528739332106458083660390168031402678115931802572595961018856296051571256701194061262407708382855037697195789211723964531826006479545994768957235887123669196518687826170673814712762590692623836055373581537309539006973070860616780780074572710084763631247296956273133153448496685143155607833162836393950110090351504819867031540324585943214620458528130478520873090597781580706533581268570951061949985432080223136280435232998044065753031511406138085954790570785531260262670104546420135474429337757207349638049768283769364233342545300890765259318144531368639650191678524401306923635759745327682951078306725434219270391788083802675824842183465592080189716786331686116330500717377826009577159426735767301856506413889690365450433010249745713142781145001392031126521219598841602286672783298356814093593750335396664410396536125332854219844755270201176625175290479035869486133406689954380023646874579118259306346241694407495703467144955853119332859758892532468568571516999715094806189483992805317725195037053776148652026007183901298809500466540177797155866450955455545812095140735028221359650974744536029216073764854165931682510087986151609716532019648484014415192163741648872050745545445692556172132778086118655899461878772408517543180681602896116280075916308850033636278596355159009515467915065483781168842893154779102164824089369222642649379121204818356492683190277774009002302278004645449647924169451699861762762568294667781310479335932934060634498328025582197726945001859871817871242026172925112140770933239694302165290100164156318825191725479318753267413497585480328352599907377362481014235787802209063758010116663969944722969593396474063544531875430287519092973712330003047544277915399749062953092960667214330939344166843791769216985655592960557959036088412967721664545289055628709760907491568298546903835534953946917599534225939904327474939565193529307435100094156871965924308437901834975343478508986963838585834991258055564420030051860708933056141712051199088961228234874966032648788130379107369841862553185714109780413740347911815074498329624509850440417416844955199229427235375231823776422692543342129894667722545812910979586117962082596455388661017347359509739476963157668851483549131830374913375043002406370214804956766693528824750598520741760480951343395961034135494054314727022276773787098250835984513490991368415745816818265710403458769291316528783673951433417445890592114310123227714781447073451477582503790261936858941584421023421130400720781607405685197304544637158198271593977534058084718483023180406310916759468150726902357292864067034718725592598299360700483957881996047618605838450547499726660183833485936281500544910411907124023182216323304370188659366920039440721287914733329393351303732910143347662798869761587971478340258225611973152814880971056715916582863337879014705545925166799752097464157777613322304888459199829483451321489055453404626402265228934379727340814164806153846727792448061410491783034552986298104783048693076584175243288588444807171817999044763749149786586937548682988788273910619654714294195712772094943957971850170315919468514101765731969458080230707725504185702311323097439553139694538759766232516331634472644161595806283219150628207660724687301800065616547893472681638195248601802956546211713670204801987180972066904967504451695610013743964912352053144322405659204179325690092709808052336721065848148925618088309594681313975596137740640659330149975786117029422069754573895716665775021057808823678951010655046717605501105622568127809139973679579580713267207380123668170226674855039552448760308911679557327173239846552521569495069488856170662338476515983974490146701640013625126305047050704788609886103718996187578233458437317737843748910529047458980743796277339383718868158733016974499942787028254301254508588764646662273659233873011431144096111476484115821269672409121668250478829298256718758261972842003339553938270222726702697901833402573515259550474927794432191614238028578572853174539391615446644177237449611689220363096669408889700771504462137641607102856011352803038621903227594134922981449703502572823013658430504956863071041859535698195976374701018402602129718293082308922557341109571983103231241297132717454123184834687530983383602683393251109119426876957289318511332643427948289903428987432923878176349316953118084438736078431202060244604979966805961390747939716488921397253855213404196486486262524645806984982918606822076023476896449134057839777065220798299787257034660766927559286747372148105988145714275661330324216219120493684380902655758029609217808857553044518714299882648638511419053229621478809887543596360671976631685946331089418847673465204172715440159295062586008748527817325441352630240747424844036708207786293993839992433431583115191652269738408013598381998795371181239600669429101962975848679146608167729346247968603571458277408238952975972320245298656892346828858780173436567835562454301622445250765699519032922653995142968439871231422083746343386558600228425538422771786998484347634554099964529274238165188272169973140617516983442028316173022150653522428441909452293344553090287025046832792123637927680238049064906331795934038888670551959786663577112051066734709198310574917495094042177104989988354041748840207659193859378297297149806966297088691007478926913034698547813836732124396863913775554316914427229584457164411625472563171844195474880849619257238911963983290462039397400419694729079378300975181560611786284590396408825765304391970789217052569404106654424559808963554412064828180286205203913012443622545083801236989214896880955027647094772901978512730592830764973871891186391970362059435565160349445328575565703824823638144017738006163217643976402775921431315082891043515820619665958252486856730380182861463520238073907102438024375744532134080128700605463185407576286415593961791624405689801394390269172271141790345485133038676930566193272456641568866891891048190802077062251117331275064589191384600641118875628196917651628828452948628596210773901348420039226117981428098293970420302662641613701743472529819279003903249117637758892914920269684564064377770892942698555134604528254315548500473100039086154902803167696763539314243297719252385478054443701019430119719571767698345325851566596995441362122192350639173873150161332387874276737963673244190385047958779514260823833779067224416985348619860523085662871902861252245041076599033167963129648713651115413715671625185333084951008853588635499840496905354975719769794557231402286223844343553678913809515428100929321709485016104082287120130306616490437706161925068787947909111829345147348534333200755455041029983658369024718279306523971767138698441775344302871185625957096371173076880735027891648917288049941057100393583543606652161832431228664271574321023460900467382171136192749214447641572559252764100535813620298223127720764851446911070719643710918312406846150815915478519139033829821924084528236808426659520237352430235096515541868579786015651926192887547088142089795004280212610581422328171191515403292502922090851794484585332652626086139925405431763879375146117117261767430071712045539218832206124309648225224741467927143907093304238980914446572359769004650109071318571306757108309245341649888352968000728180059801649359404909044532731922002905404538269997516960299810688659133125228051859395231738683457527359400507274560119349421998800299386100494222478518243841386417618153497699941232817945992579884332774618248408202466912577165658901768036169422986414056803570974906832380688157693883388005300215506344984911969137764514010307868125353721386654151854799063024159521269265900192066603104672487162123334438846732671491236282779326172779524028462629776794886926360344048897820220073849632215513843825467388319642670594273342787129730469258113086355738973593060379037836888331367488533947745981645673452775822475867999654365595366514222441845653070831179325034611624403899550587338882955478581263697087789461875191285611350647998069717107720414777429078416222709588335101401185404026667030759306260116307034215653720608099688912477853588538041250494143017340841324820046862948437196760115721467227124871570080521616992559323886300538540659888539227820821633889237268926206220118678325867348973646725453971069014527187011438867063471567979148844681848379992030855339906489235507704097740163262970768377964457564597044345656403196703084738366270752705312240141335399227609620570184993852422865916153046513561958450617730372346902210770072234391098167490683875308989671567040812684725252528295601504435627339476669275605022852475718023909303252457179272832156566778442622079712073346007990282140436816905303339294792937838334062203497928569336685444830305924034578870441288289493920319485023697576626917300236240152160495545652485164362659478187465716061137308419784486079053989133202985422441112291154987810000802912481031705119294172216038045051173846154533957282799363202741016808722956100143815342999684361495248977799494304120871283937248473812385860243097744093284020314061062906761554479889114664963383536030826466679336684721512645177501011500707407099336764379744618960152681034923489464023725359161844525879826980047621456929103121234520294008415721277059613325950109705818969534703755946334960085885201085737457658199212515553926474386171662792525240072690643878331217121578418036614685252378132788400157451437625935046878389579912457182994834131215742585491517571169264848067039669007675418110179193742391734311761820700655558619582271415278311890325259655424413305381208723402571385348164458403334935197593218487782930775599618338900817739068657918687889101025141485668718958256593807144899262945620426647148406395482586569199713828257005784345223067546631041713716001029448504607127550432617520198663351390864262053483951769850304000961353040736072030180477199048206959832516391483897028088783779113355446822522724939567707392891734878881308593537297997573273791007480586846939425782680916596763015486547545892668659656488690396413703033388841831360624637043395597452568138076666334576398407823452115990176881347008473258668371320452983736067492505706050016424290868910197502593485951574590428343546314213563344856940330703383118968682682412364855061880698556571028381016650133275791640556081157347999528401912091911328966691462902634285197484316652019431938644946116545271056076079851317709322332490046748979322725348870612947832576030386153317373090770211261769653373574266910357681955318535094331962838857746383034768307156875338216269280983154123794207984199052077493158345906001053433675435803572517696210578728291858977433678320927093177525395227889204502085155562752544223911036456278672932943022074884560482141015231856657423138784171054780194212994628577113437671694809966500192620424731340197231875810132756405879299064252428741828015907298687606712966309925961048448992993984406820760166094952998271292654893933559846485464682307038329971517247691128431960535298559341521096505510663050239715524770393792200426949706135491337450081336541898060533520536258662571037865701006390068624488406771955868721701614276030560450783342650199525689351567696440647126718237678171642986856123979755991927234119793883336992574265623741758327751019711977588132741944003855022684912904229163542308036330654370293403880913561873562203632036253654843780212120906168277860545579720532101773009960250924367959146148894153194159622014776437772579454001084535054667133356919193844466942997036486425077212352485033381174023527583807679254351561857558826103107364413000272341651801394874581917737127091495777254710857226314428105944522821987966754564780799578910403798549601668899993634591659415226146763269853467122430133625519559912113711815365089005261081592250973404924587727579764089691790783053324619014938862590027972372052304198932758612067560999557841686382597490862660101384184863277175423933891511929771474764292962104649687826936423041501042946104831922458549523995463234029188793571792846177134314228448858637743300501247347756325491210691813248580725082453804304156693778176637657509706499014773226348718261205107191524499858073062924508650622771820189905326358815596698015806620341402847393576210099190505636484294309625681752838295959109047217178005044965241934292990985120163610927261303646477698907992401629987842029248478631796341698999605145195285105676543019119721889023279598807705072220584924164547095446008394234801361221137481978578890653541184368205444933136356421674899106693583001200136399241321024780032577516979250230432491508159287828752594788437733726710756796606624773509372771595353678848402899089362374327591476834180160621916799651276213556473374945372769758252522720723299950254409687143138592846172256649356506900636644486566065514134518754451233167798229280253446928367476595045120669579255977947955441170133208191864897433033849292417670176590929917641452494992870767295441929552716446062522568150186005518106348786437910964765896962052820648090806626215274364932107511261167885351517102616161215769477915257805104240416618532555039203663263007382275664252894555007113187000845526775391937499342353909747185683147661099451150458952115643888470503163285280259926776982617117510043864422091852330721905125635759412304256758808760584023039543047529724198612253900532765082893608500670892058441994095645829136364223057750272584475439194000881426887814827250066694680001953455376148095478382160855980776304311957331069357817152344659939464434921149891462846191400649910144072871526524846467776806933071256620026502899922215183136486804717268853927071388917944659529633236289696637111563645996589614979443806991566303256367115047009878680630107495328372341754886358161900239765944657938369923816632468486895317886884713313751829663109450155932547139637192469382091704511175875880505859478063285816963173174115058859339695880704721705038128623473253607294134068914252357450717573490704703557048917833932498527354112603789956065681603119504302476259474961367859976195810047275393560356716718893450429844901460468999413526852690938681170413809729717103606215950509739408810540680068156460535097776955543395097578468330956888473958122364215450663242914280056257936242457082412102927571285452822408986974782590229156197244663587681459407588274934735247885014455281901194421024860926017821368326632602348151074554005708459189098822142938879730838626434842065837356784741596961328919909924065029497400837707288161583494607547824510224812670276199318195347391040680362763001822350078809397058154729833276295336585085809702239597126657277290566677772082898238903117031468078204101260432615712854807426192194407396106413688686662253082905201157053197232840052499827295153261033387479340705515637036216391708873613822395002714320767732636064040798021526026119369308237625675294427177827688233891045072304451596380934913757579177715593760944340321931053743964039263220332963302156809153849684617005930789908467988055877692588653206688959886648208832531643509955780924153557416433549187221815656826779552142215083888751770454526984718765693180177724680207912287738500206605371945526594115964165510222164329610249446019487687665705103596740245880728121378955053808313377668713879797079731482635980258519691467852540853979122566257467056608457817341005865256972199068823154441994454250944551186463626717515751855959357479442372101968547351022619878741063371386290019687208421371815658450369486223990994205101384404372148688821784523026480543513724472267678178196713925235124720202048962580442058548421929965510732143846339791674754469096114909387901526211471349876831898327045376135661701224661298982582811696658024550806729700695828075418425595713094770686200109609295507183511317648965901389396219517164886219837725156037326010888442135303955614027295163917760935146190542053488270269034589151499670235372333993522069174059554770966326460097517450569358244508450246955437216913523015215981392776090123218291558587392785952180534006545383541804780954284998232338895733887697475219159860052961661050185589336196835724353797344507755616329111349687131209651308517336959777551583354170396805215491809786895149896315594459079239971443781536769895154793557669405423563041019393826763571165855165715006768038415345370506784930627315647777131462670449535590765339453529791598976861937637163223208553344762565823566652992853636286861898093444722527775985060290099994672986920637137073015809620784003037163411190408464558515161166754538759578669788150964203411357515875918076072322377535646712176650754928656351112990176622709387031605410551666875857512172561939550428676395392292661853634328443098305401759867462309136786775330710671140747647943041152145024052018678943209282281285368376934883497023384648131654465106550352327560022486397496771358310482341840880359603640145042796285595332415220830577916817624070646194785740029358291888123015350512926426648879184665731157021783186658196256350825488518789462778952979957773398585065323790125668183850427012525195895462529246042809223491336617438822517503082315372778046576568986020350855927812559359956397421711339315288835585246270737138144818683581827409175579553040287728429327494995628003321750219285620998244270660599167146222436502745363531494056877818424191562383989593092552453713223209404314252053946256235319292709169762852488135624620375721242605896455929914473885709292442260867539705444571858536414565737248315260614387964507131714774850726751801455833837941270221873253690830740442692418281353755008732583356644846101196675862599367835283165421116644148784261054440286235329570971011154265032092282403039356148046180052058519545442366909354467691681664296364187567948778209946491859689985609580660166549331865342114816898360484448728661237728601554531823130318175283158162790667196054177280756824175086671468867969594601055892323073066294991412070169786840357177825376149575637683228256430791788841715269137602632140265831406608448148929641636690417064355535685183854773470461219029098930301571928219643391196973924702847436663991048122479315564228583461393348118451261670229108348298454287619090527006863636504661315768897414439162620204744959482736363779760685840672789916754940072513857721627456386939604753180053558780545793797129692427479531258630866014422384688132459365170418310306959486838538911406592562501485476465258005894178284422259320247073342891767722192237638682862321172470045583711192449981444121668100342771701235512551506146175526831923209696762042586376360857379946673610440053474325320418228940379271335605912232475530145023227388281674778489171801602435101763289146474380205810965162228908273141907536261435967938006921117477370277087003077980394366421104600267505712470513006799204539390033178430204122136220239811856822891071316503807097222003892729750577738223901978611936848255038075069669131705071510565501869646511735994146403223182402429094460031600011871702545406673644376840187246906276466907045001864576505504157440726574667744984606901606840547056632634481026911047213306052866578652962672412505585613266038214299991305271348116853932946927309039857742555460149844104954000400361013654951327739268497321589259823775190814770637069525410901096392304272299857500505245120026612356980160206233948112730963253955851644372971408369055122605178579645698485224360012448843918495261953036488115922085591102831956863241211433381813385273235931734796583299922815539666653741158602256239787760152010497761779047416152726405376278099227533547188883391281677382833254821508694756539992309657954137107972705009762229727220599161550822469383413527497771039933654736748233404821826484777121714817076917480465472576090192381225362415487099617634516347602242148043970804570270937373011225298074689719213694650019050073822078315733270259159905609301082381380147968421306484824797130760507802716956914684712858161692920072086506057109806733707008460648243996679316014287976636084590760874308800830246605699048893198968973533682414522048933012467393513331033621599771780930893380391635665401705024976736679513406159828670284292685813182263661258486416766835340421164672502895294263008575866546079192104579788320027492358564336530263991691016045842345066716243231479740710507722290104268951586499437659678400232335913055108438814125547105014565063137385183854066834389835363532862628860739554984237078926126041319722376102303218392701026911155180423818508500292565244396983330059562783489761998280374946932085797501502149909527561985065881030721472730935398124064639290293375554068968829119217778374967096663504556279368449888571955863661879752030078775109836035824406121131127452240736417232782748761666320749742398968931390909531103339020957049497515993461960979289819108821938160476441517202391967576756755658900335984997391627638627376594551447916254100104718892639105680670804467364242271954807723519029260680829358033453047019251769794479863014222471831722472510574375786976571110968642563556936279877031466915899212426539735889280028181696620528698683882266991918336597760461189090601421436487984807390102345734124450809371064559555391709409615293834941199764744764838595374164410137956265993420561622184775108827445220316536096093734771087258879782286124197070406385149196984897589057389599106022091408533000622188137295985491068040320954597883650183180703683443187320176944739933084867962196712722529403374225826866936589753367468070196048028147841969926606232630171415368012533147383241151000017798356847186594245143184671529516922599281616662318520604005526271628698208094910933762361902997598066453048207623771672834603079373432091099402267991626229216064643452823349150832835309734355134116149838679444329112680537303225617977896441247747542188331327869894819468941495199456924845866665667209028357523774862642147736112424931241849624114786501591758089004219044833736151694045600097568437374991075026999696778431264369565989844148845227066745241171686046237643781022297718214937696680232235066833479052195120920659765956723024189481114882173470190231053235944106128955078812856445228063605122257003222022129131495520820878489657558662905231476347543914735858134988012855849606624840314964267720151910747647743591457435109985761382598899212518634855107507644856596607950039981412491686621242078620677960986251268360452991315907597763663552496443562940177569717233762554846059196467656396072279654477051815799806341940739115111856734574176349161778719308928529156534359113067797905194208640622340464072310054240660249329740702885793725235273649531656017324043400946630933812857158147152124669687042629239378406096002911670130542220410243841190160228695963469747677392083235007286773949790885613898799322429453588961085324862959430753409378402227264992034043247395167119525624143817075783938450474497086072526034396649621809382856550597474469751976730363523863915541997720226219979661357813005078803754770051599918338044786796786416771737635546107068091793172962804873056307956004136021496667768115130487565502940027118348472548842860356886845381675035020992673295203975062125391298303201524874461144500302380628678653268188072885867227782678069551104179022525840248804948097008681181279081659365141353957759843868926393281155230579072868215192686519512477201654678407420665557737599367320873894517926888468555962069192888621583573026121365589518732619714719575665556657880913242706570421103769837479358578259007564149782357743459863009805004897126982445669966249455491568527725775039524172332180736149792002527830923813844945492474171703509219403879177660176839066414065119620918275735494076331491879480445805643697965530980052379101400847981293957724191157017995731314516903825867660282317573227747806036332403769662625098220164169228018436748567957372037338739866880596019913021270339606932895257515895959738785058790971620293150063589288276067113171328771947411844538405837152772431348503759943271796775253856181433249994900343196479610913175821931268259293510279422770716838540022623860643576274240351781136401289084546133656999470155489536556352715062734306926069401521640771964514575800869829397224808357885210436123568053356460074925504358477610641170016705377536510843941341364404206818521883042757251596548655279748264338327319499204859019593208068222741403958493219987933066953514208021673565960868318564892257257204570381007545537805560858772884035996581144588584193599643178999044640245363979209574549565734178325546530980216854507784743436186070523005945899940341886045109791497196266034619281441744587471883984235421606696808937318807111590286923168510119048293874022308382927226829201103478097184580059457037338145264543425614153473242676805832046664429695000231188157029638863338393792599785632726811316305854175695729138898219201761539104889699337440531802032237675026926749264762587519805970413349899215285631378773778142846924718173798801407450167358838968488908954036803464515197735632740920683304858530489618760934210602710059481113048688340178450020248561736178860819832262134156575869201052967789306815182875616013795452739712980193439201479395796899040816797098627448320255846076045686324812710721377291818217933045617129947150897902389034731688844650002481880785612846363549027799498502003696186567662068161220393115465989348088395874149128924791566441398017741023245957083917040118773654156911556506209318446815275196091000239967942324997783068594510282085430351892394363522358985798961455568664535308437492229054286314778772999690742743932720374544125886439338573971346654898488450878477361747573412218192751223750626431224387591765039697096935711371390082212978303869179815920085437115446832259779475171471763572575846870522150807578947887229644677745713150366857367261727503929199431598180926784970064154140143399975156516023564388504498804163763426305717618219025016019380942763320402352505129972586156535701750016118061281196409541342990629324746629617696119746229805481779536115702122238359566611445966375218954677965529296681393726139967046217448149000108392607778895583920291595893473571708981641178729822179826901733631150407638218932468039507220027241181430593917989178013447280512464917595933315819527409858947420528504761963162929058761597826554054752128054959393998056309892498130444114870188503384546246240297425659583238803344419246170021256819634142397304582946342878882329829538977981743038538894799094515046200548464783733300928834610736438245104534904629708455448281364277172161806501817968727499467666384317301358199300632567447307800184190099243044666947586471712124240988934442717232721528209828234431936945139069441360846449687916786423716904305623813471552692619157595357816384788248490866683982512375877037265933689934181775696679357896295317445967651079737327701067320581733159516288353962365745453505243538166780467322917786254430807655227465276357268635808238903617092982534773796805932335264726018681744657809600418667775644935122597966959590575390696770849799445495270845537696055666549188625495370704568639646842767369942667564894179431128748769663674461768039268860614272372505472289089426557787042911006852180777929588226395462084137920992286628320930290733310424679502881192054411965452542972109236352704521465270457113128315162115626134609623316597117941833891443369151387473550749931937896837494281447005060192632080759178284788729717789966482750182960963243479020617282593065320121432895357781905102244687587130653649831793406132286454447725679501938103609644751302702248534616401405793763510090470712330736356174989176650018728721137908105164295629241178314765371261854746782275883965098800986388317518556072917467843331308594676366050392173441557275549305378862490265707821173372964049617235289561701440064168137056656149608875189101172104010297691369548211870304457859603350224661617927293978781122642318170198452131074288147196951831659006486556689175038820274084910675620856586759592026695087349420109391303006966264211067272856049815719806176560636654573525346765763129928861952034231668925545310484843001648626455443988484419169501347981996368552194937612438775963712324153592754741592261103662119615769422225644750530126142763424695603734420595996168106822076688196181425285680530101262363996881873657639634105487764619402191050660481914215133356231202833524614025598540996114374196672883724415136909462150569584759494131844790236763728318468838866750623647300940972715793374120023133804146744364525847764643670271585513634082410290446955631758460350258185814754386085762923210189389242891887975562374934340657270414953636312745687504332825075674807839102388288755585925735172488368669629282516699025497209680916873896532838018400359970241028406173604375466685325702391871970646090607681047905590732973393148739139853850313031473101507146656851248227208697153078439979985809177970425087085248842905285733782794615462047297519999657090073122372040926322654618681243530546043758925933751347455036213891148813050739869798303351397047991384235941268688305304182469651216155338007670299592681866404413927902444334043054604309953940197709795441879589905513852298691775034529146455581689701170888367037459693126680132157785351620308963883687609683986202437917955246254896987331919423272893627081502518860805579317624984999151403969799726848207012637158949158166533498602677027785894241245035501095607332950702660912438316909503375554976186709805342457863268311666267624018561462344911198495531709065415559464267195835593178710761967973877953418576782345292050957781495405005745227527636648534211073211682068813788539196194719730353886136973644076378830138065308806498766411337083756868282531801387211408779108285723307961753723425738061526009351934194514293985562228189717750514408839677673476037054214284269925799685445648713489317369175230666117707553540867332486060336051729675737140828021130992669944630274122599171431559745733461047006656747867809535903213892808552475678620625790190054437155607288966317775059566912302337179480677079672371180642367545757969424888678988608502534384224441902746292628593933893104014042163735161117275302714057148059221731077361569781087004814019582589836275174920729101353094319062865230829260256997493029703067284014753712707770380068365351468855112936044272801286155282092624696305048982740842646417669039020908825553654667941800458083843011962152351527385977349555421357559724543710634149267179176980720283279546272643944724570361688622472528926585067403763363735887692144953559044024032575457240801095340474325020836735720476172755329487639500273514563882100376237176251802748139324532378745255094971942364480738083488413908667882534661717685969763961614072837275928708834197147071404370652433125622254250619182055588454239863938805904210592402789673937955133191451832112108389906406366312821960808399022621454969249831031358596950559427394204666135137839714154385075239503504459324717585759928019657344059886080061299582090469552728190827032266048636174832764730058760692434365710734212165626960517884402387340660594152055965755315303873188826550527769741058235518759158812234532127864292203702860436610755312388043390756181779254436864894898094323401305891730410771754448931486778225282972790767751597054208456533833256474975056112151204546421711673516993260744729924427193028139517690015570639529478580750219340436522426740151497830059874765010933332795552426161826519049050230825515789774491766246092128521889677020667343462816396419874708022015170876637672597465006750137186142226560428874546099330796695717494429129111242968653025182107083293600322870079679032458733629110360368807497204103964987756079280307489652866678473149904041700317588670105167025672266036185524451795807115196738910217549130144728517116514644192026058061711492582810483053788872696144858993039035849910306384865443197765365006087175903501977858319451610688643441146371608480624308112301238397896721573456153523445370355501713137172094904363879589869817778593238209281767774101554147591991686298657489883008335732785941768970997249891838303287374292043484018881746129791344026933897254303227793604370701307468403613739275341400990734371880602616724566544657880475929941486952590140642338423819217281268465111582907941881384297214685263075753195547583608948146539932661104649119331222600269501825135253461829399159244136008574149137290593413823176929493746092518095510328038543205119979834398319430336298912739653678645407945251369859563438432068019832043912908629464488532208041275247563914009861087240854522356740200580583777740384932025855906938233340490517398664996333593480843014819676165614313641516094921728861608247886927225020618499855587181640708671968743483233483637515586542427906667319096747659794223210408115882939375431087772850454060684579937618809145294913523392539553512738717929245506971113106455452692856427720625033376282691109606700598453858463842214062998924292953579426149834544032175077771870536207902378198193796220960802540481662557712938917738785092823944671338385403456712331379279157550448115131842007772623353699109181642312939158053430523749519352998074920692826852482592675008530473679719991663091937763638279758686343912705438391426973422684243394933502379058441562417836629019174057810883398573965546216467796859924325975332769939444402331789131465088363195323740219873679732668867899219431621366897023795639480496947117815090669588307944463076688969050635737506035598866837536006663024160341774525428084316808357167681137618141273945213297852230328716160638985923391831881549823539151071208098108618238761842375674779198372436222009829704502352174489681123364360551345630854297376227240279894036607601818670609154069479803092148966512469616767407854957504240749984912138326072926283997560150755259419446003113236735859338262762442944929244048578844865810901948747541698586178854052882203110893530171669119129837490114376145723253249941986528635587923829396678680881670898496198750385009116235603381164410003393442448541078909419010409623782803614334560150872794190740460694094127736725409568016872753687039313696695857074364274198303717236362284415308947157057921866326085422040008601844295305652069382330804920886336394397376972309330311361152108894032572662125519631768734716232795063694450442774221351587202539353522241002311544789449698687079848642787505180129515968353504354218439528012874646465126940415253634399791119260671560777851354438847829059268527698912549213895631168295013155907849336102725072311281945882109816361009100129281241083439909013343811342757686135969609254012427230683899413388545850747052574189370791074131518091137042158495783651945538396138948473221130966549350272972648784912425472149828949962755948882838228183783621567631567208776794289562561041847138743250846155211456320375360775240580788437694740972157826180329891101091715307313888775342692037041786197887468577712434793067785956701023608797601491870044197548038430594005904246366998764863794181020600303554502802997985080457922804496945466336823972502964793008870449462763718521848296704451079410934965275275814454982722480927083677551351926531394681163927227803578790851890733445208936993640987680309652908764371769748800491545205961778778340433036999121395416874591870415836449186918559433924751545253673738049784977393809887596378128355965727497359542232465086065671597006822235852453955833247883752109244822252479915800370729062617565790361045340890661078333695737299771414148562076645516483278380532927740310904758706217035004325790608018539805543401192920084230526755548768389562746448710273800657070802865199247762677595311616847370104631504311698596659953352126428992554252026207210566660804627098455333524813070639341327196585053115696242877364137225303322183169215603648382302714699319052901652522219835214852305453150172990774961002944954246256903958327066553221143456328078791732742428684802912221394860315835100758457516715074533941743293146622583209581045066137217817375545236230397405171623807764177213603332689641579570578479537811388410612729970066082665734113392315501878168078733539765123453047960162201036933531902591809845219924769361697485738934493753671734477219909361137761467561602022168170850357806280914664667011825944271795452846639136787101276782818492788505399844279241061373340489783903213761125432771279158300606942292034445078950199040888079801892388513619564880941795394880063923913645081775806291808177831838622699507866233533566968892759144361074542876360551243324066544747612401566549183091776802631312709266232931847262581860771392634262142279256225809361435556348647390858314549809762991792692962180469593630669382792973517050489086492624703648785923964595468073505189114684523260224754088027047698892289164420069529943304627070961817814976304851693952008373697266336789172172995938778932186181053404938901154862737706034520637176566359035678894017005650770109948914816930402671734863249186816629923294967573145313204785253794630648374178994353234348891185283320008664869047807456415195491323913267021525663857026979957121117569135015865381205770488389360069066333577984843786994458275616134720993076443952796285591285177545174189880770565320083095709346626968609294584958372653017485786189498963028236764897651931966005411564721120727326759558288434454031355510238058384030291180996077869832514174369593922431399925135732644278284474203460329819376265885156467020695629478278472128133801618350423434233653621720775729958848496358447523787753950833505267074494892179943784090463967287789396070643459578566250492886944740156962286842189905202769740570328933594063819470473181445359878163269738280218522460235585650544859617663696888568070233961358804398113502027982683913237370324334918934090916207599927200677813443429552543720748885956229586984939016577770407755624397545858152122322712254333221775856549258706080296730776362881166219567039049981561150781605635276451380863867913272158303216534508049998701163366422775512823702024972142760955384185062900328981783131489010405911275347660515910152958688751105290555156952329287200438471132842816848450350013285792095468451645802759015783673462028103538377011470019018306812800684639296638625476151135245368987902918936596854966768749397076933038965874574127857948768886940343369975104035378504506757097901927529332213488416061294895926672411675599879781789214665190859963578831657008600631540454715433109111324448433584653183464086341138364230171143220272321690239217971391860344688936425661637961506987937413041990736614430976466903427713321710329712149614273464358490722857077261012056410559678994789039702921895270750603934689054131556686079932634623439507868352632454521069912747624218912617821154771504625399383282392776609239360705809167511927326938652730763896032127722527618347648224947818699938387564832911815155621429603954850651514638464302903648687584230438673251091858612992496106261538171441469227288328212581634648819988862737218531190011429352625983906175463571973207495317279999355478692800382412354207558084327607142210420100351861146341299232189560120315491288393229639436352688548339346827374450342492388484683643473839940646974374226153898685036559768595140519376382763353886241841368502391290290065324674829715305578713374734094998142221429766475004808187641249874155590263058577522445335027199991568315248566191068809065716588611771889969999496565669912547601953661370856225495178610129316154666460107918642161055254621431284198501722800008435903154159321152007556325651472023263745329866071325650680587807490523561723089258062221256788858039717271875050210492423605468562774127867794173055151915261840352584833566331054030290893127181737362089830625780011573538712336580850998558619427783936845411440862861404548101740472380969914703091902957548498896138932458445204682428261058082635362833239939189578280742230636695907207536456848643556982671447264536159333610366452264598728413582939319408383063289540866388579278781965242969919979483492902911404568879516085989213686314666091824678110834825889666649397221121799236827179120901120014780556331766500383609707048641386677486816463694782010121528803452515151958598481187540505296204736108982897996301484385848314791155171527960668760363887561787020417788520064664089640651707560349450479731579115204982472033076577479902384117405950500353907599620276126135754390670690518919228225149655399687589658340093885800972422184729802228067659319733475206321112341522241326066926036359344776469778403726744780241959465330556119774603010611398693801874456687515704638633444993087260855068333713356858902796395531894211353761957645019999177523779259890749288627411455942227840462156218937351288551686847548328051118537508572992119524144601773138939530820541915838697229440328810918666886206433668008263135950525291260341226417981103527921852460188211176665215796179868824815473490222954585292414674634952124913482044983812465568374234075679427004835951038114849706321924999830890326192881844755788434760673352185410967422710857407520799570514119790530860946595729571473501286797667620297910493527416038237968945968743135947532564624481448397002925335240332810614641345150913784152138275986266289294207242719401210997626660822882935137256313340250584913285261197454256757332880225194311072647938627243605887801324366744533112468261513550295288243465203994107224394355857058972347441723833788022726261395539123161676618068286070138498978765833441446112900417255496866215951279801493210597413032096329318237963278540605230628402393914580386435060208796731316316649490271548172744947253884722153603019098800411813174699970329081528184276098709852371613437192257868774233979472162072555918371670484858898146062776541900246007350341588040943614543066800670428836475952049274219740486430678219497693488199995271881238116017895248662958149018298068685739790488096844205293810823071835505376485069021880907213009183590841339908781557928744891000141087254228375573237832169682249867305587884469779382449992199686652444716563761016209709433884598627611905357824600418080278930296529001135665424763366426210227989404714046268405522839539339762263857115650417461761843609342279176357433816313875358450680228826217933912927782041662019184123932894069241653031434622750404737566916168011049242411109842523688412170315866237886638150105841405705039011309150288446027399261103592550062117118416396573334642481087941120962147382036755824914964959462057289663240777346564360264693469592933258179615802907168804165209336788755149508182416883721655499307877010720173171852150407909641754522955643067756325676908277354431573769361388483507976326769035206848699039154951737408276747823774129068331328774169190142032075618858477838641233599257869521718606730260147153794111154070757317241524600292641945286596589591426826411686511486022100317453760463243677043806686896956138001722100840230851654298500130732075334528424490050614642018146317245518008841296845775622275953517664580112768554407951968921347802983927250914802512116151612894974111424551708254082898300773872338806995909902246730752978453962624664333605014057259178590059120022196767642355358021484495989896668514019910642442871359410568103540895929389781714930218667635769799074848635792657925957870978452921336093567260306395093304677067429900931888457770307550953028640866963492354494982244317033144644498340764404421151793379281929806758774686437128185274114977865932021849146565230212848277905611025981455506799186841373871369710656160236900463448400633239348178730789543187089482322638712141432505891667632795603867596142854645627450554945570061046306538716024319555041611002156069329726946230625298999704727303638096345995751589522157092233999906378799773058762222472802176147064511067524404274787299642766352831682060350787706025557877808248727416413425275407680793582643601672516093128848256278174712566215262567555321944210012384277452109394665443057689692455293419562108664362292644152210046820069621927320150747900881768495900576621282184999928010754706876230018388190915377883807041368201422408572739913470069940041251136922160526175655924068930919292846725355243562467532743330928979907793333169257936957833491009605342700116591013284475249159544537854799771877949529224347929727254062100461155479168467284803063186297418943194649275997324330604993898206462822644016600016561883622377088069741488568537290153898969395551593286276675755452545119889163983787538581841256574848033294064031331527121077052167981329386154359790957427261893087893399729405676102537008053390933891149883649862512786421749632594474630047207388067875530324428025760101781343642760944318213677915921218592653072780968606261617784522426243873733336647444081388763627539455928551499195251837325453164909324604926373914949345460032767222015510369813507736231593611894669033160547405172942040999805224751600434299274536848002279939288476977560006945306836192641609230275057785320219860459683162869594872008818773615039839964387156095078225835051356814865192719318195227741392835699387291734880098760148897453172028019123238706482264964122477610176172385371370933700079035716626156935594992383117365536348188371940055974546226462652399230105001774443668832040673052286475665796038298864891187875691625928552558576856844727822449886553327252562530277732399419422757162396158545572884295110232868713915529870401300580883024047457477861150024285649683789144548681660234036328708959961194882256150393699962290112479082902850785898035200629267832618990329705011705206611219611608298066084003141311957873584921037363346152066275192228001791458686402289958170397063599741076162532717621608234012031242367458987341148173584939499764543546275058895309313728809125729116386297162396166115842827721076515666690707976693671932029526436506612907467236570161105827371213375098430053567388851538071617383147839228240430293508408697797109682597500391839415749909397774368725563071905964319160595812590176074826349985337599981466509873937185239939604869728324547465347944813564163530310130009011734348626961190465666377634546227605951727329886619240209768470700470943882562270664783199464391286508706783720644594381236724682611236434943383734674817066612343052888083445509144581302640429766047820324634243744551867188663566995401189675319220725983265286012105192547783465553252644248948375247488094270382810725485190856550777690716004150865903258920880256599950889732842711242024084804059175597619685233061014875989927868695648673765399721027938368909538476477803856693114915231709028733987427925190244232252021026667853920304798927636919907928485044679636359489139797542267758538754315823721541110501252103972632502451532426743942712702786748425216310520069852725711484190634421830963175119302750288592318099109131730658521015331750517542439593462061335388693508731686459800189234447195264091036854275571239711159780857772908130113418880483740674911065480562924092442451077679569779725872398318893528700300979582811932950029206923735411602945773647625825657681652247867187955578868965643428142149702861108345019392148360169329091286117233379217883691467964225001737536697429844942869731727387105779258547940767438021962718711389801912979418403660781587844454772343307506685692598303477633866723976915199814377038715776607590269094907428455259677641991548093935092700480692566871733942125528462713901466917777847476234428829780480846478986439296239902708885212199499734488935299029964941197099395985602027416259197606675549575796872369356158995207247347449456527463709733897374779736620634839196516120989965693441485881700372939137255847657474701321583530560364411688597801275095217100924123206431597994018502920535595622117198946067992630940335482046123731954924124923479824233649072323639784159857348018852955393993429276970435023797477985989285242865991139473538881350184138701879607447087434306177510640107110506500836182611609112659181022080268525043017794661536663904383616655687908027956921810872984063794003375459364833243370472574710971506530092817800051522370757740306944825890251345761913136654019111761861472986887823341072422729882829378647314312403900644771428785282480499586378378281604418655783673090520555759032914722879443647270297885786499627620026710139211767596008405456883896327810401884227316414945781345261112425275239076140067798180113062674702595501313804634084593788821735106092422627313622646932799060669391413574089859108424326624330717980169922278734172560843426115437999347710459473296730470919023238709147304081337611850796232792187598959972451899658750688921271761676214191733754601526645319851656091761022809742695368545261131001222204570903853564750586615346329089838928374093237673880831191065041195454043661021531859956695028104225820513805030248375721822214211369454790662296737596709257057930720454158779817777748384451557220479967987241032178097852230822814834578491381179051870862783033108726626426829600051309864997094036361424380260612805218136386452328594449518169154292423604770456155045434054001223258432673442249968249890644739136724025097856048577628906797432356231684746183571111476429853403878182997896437657612448106798729516257845219250073884299686879289794138397786562340982652185310969618287949114229115371444848526326185025149778891187517764722822381584963690501996025122709048497894658184424103146040810077165024144642333376483636409014815633153454560288496728588464856250549988039666177001644945041288393387611466947740197971712558787871743365286561289876642423609362836698492405275854454761332082663189875171206656967521818556722009339986241891186489943042135794097487853256821808002015263635891972406303815364366450709316221503505610195394421081540911954633693245575213262328048383531562292336054638779473513371057916864716890575630538545167879583344277483743534556295631181016356633312565957370317463189969782616014558061340842813793465923156287084883649478631539364527969010546158978961437733578005519379491611160970195799909318545478757307529956865876406623475541791981228147390446855005908866679967582133811621133383948646907286601156925713278996496812050321445720590310879659159467682897282595079546193755360866640729629901405118896019174465882940443308637020847491591916238645026359980129921423763486452505637481585219731929217232129485223782069750905582106530444060873256497698677075980874209048442372166918090059660021340509745986150256710755016527520085356982583798029915279531527450453703507234485962851670600425067898375412876185234894418866571427787905532972694211234097397312681491097203860310054703470789989281978850329281853637721439799096467546989695403373418244833549194115866993874596743904735094873503666602639016563628477839369101505401339054144212378224121373382263802659993403217353641046136650055086953042487519180905003773931860035364609673631716553532948013552196735998545108225007953707549934469577970421595390919647454513786689202193841195209118144116165404659219162537516732514125491268866089057369651514263961227639792609681594348701013879220251552892767082658426597540231120673188331587420075249710490419206130126975610675215203479583625404399380503140021677237724938623218627800094275335744258014846390664678969293660961202814966275578237384696845743828671411405337338963313153717567577127968192944199664842928150900741007207240801470998232747863144746084113559286728958892214214369433258251346934535065672784738045507582267344663796265708556271012763069759548538762124476684092511545786628305323741747410760948601119724554504749416285391157869378479594396128707078420788919430609144273297588086486082119287812704682726704596646973053574806560175399752724910858925008334265142846977925189571338643198115916143429067536300187323822003575067608048769573782602441794398998242570087497681483904231785020667328814077896625005799956365115088282407240970262200389294513874216212751381682836401805620201163960015107499231747899418937038639393646484543979996802702908473872037231339967174019536262167429180478287806924903721830763256940142070269682301631940695453134994865896272866488602452755968980978908726190844473950062801665791379917029539184043073951684234484660461686702988983211998853324711358113458969048305492966596130701224101026822219903721998827882249985794470115064892094719853410802390991979627621336276437133524665909120153854810084818563584901888518748736630531249707787875547177460857044987076201437576083754602578494591161410865609332093011114231597656001573157652043263491573272161385001486774768220541412222041632468209112474461865053708790836995054190532517547994202871193889167960086941335590909171271301308675871429647991236171371003376047288797326837449772881670016659571435801483387178961345842681249239773774495632359446213553972668066233568987634252764384197414682627053993412294542538999342577622063106982429783214675087022112729352844572805543787172942100228286306060498305700434547441147235082228567512897527411931122497011905694224066433997583326170300697954779813938052685121742044346565066361567747604974358927412834654394476254960289109197196622497177212878302017758280788567178996826276001456665762705549259864235416924573533905547852033369076937001611474563613607409540609454162837830041616905126521615785196201569095051245790178229975548662459798419177188753792906786880110292163835943414607368678589464146422255206478106066968791612240238128428967928818277263298178677426667343970080621154008025272205487835849830051340498702914264188835493827961750126301852721629942313252247383026215995445091078214452494629350694906039711155073331686941529807677352209697641889616158847840482494428736820253726271613694481829484673237237350696539021129250127614302128278928869369685128991576682735066202332817893103890846089798390176630568314092203445560805089345224779934471560539761256045602347310967377687453404519492172292332841428083643248395651888802681952983438372173142012146914840631744578280917752748927582206807650018804427883852621015903205482099340796755034221849745276912973446213056073423463385319917132153651834363278509263522270351696149361017015916998787295242809209176394284463111758296997877548746370805772102866840560602244023424350509567166101653113674085942165197826741788752256162825550161740247714695003709894712144420997653870811290451586304719207638583804400223467224573672490659203854532077776804892269127452594431401642022354415137529577388551192845868420859321045155910064368304326401715859590366222852203966516088462865675573752700004476449832658208692287893999084418173803730607067138894725256037161434154382650594369579731070450328248771664761599370465592085305718692402265632474797255138175157141704700997941714790414467098086752718756274102540139486126166661765356771364316327037145648484545280131653214168179745926615019042924909397359855725359920522281305896402114975785457435124306968188876684760227014395969897551018602492504056760341851652780082895704826082603537567886362563486369760016045337549568930903228554313168135694848579122336507285142320761432444351651783174344044149024641036856370284417700384328053164963624483510616654296748296650565324567966463079271485129860547327583547193769906540433452311482592712131961977898423895614131774325650304850476965708463200835390239943348413729034692682868588598346791423106216358474584042722528487755833798196059694888594972752343587897164616214261806974382650119262374891696436517860147839569189946469736368972074307046373349196754093739449866581983535203023247116807131021504856248748292759602376547549879088375875869209606536091903524741621116022847629094997532926932601750785024785317571891084752774053220875347773195863093843377080240805817174887295177585374726427981262467442133359326293540221954268838708967441424465275547444852606550455075933634469111236583202227079422295060556785869990352592778474345816792599275747229889661121874768132598792131905355304462746921521599329151112000597505020497525379137594322404559604697344682366456981288054649177018037963302193339166582375450898657339537095599470450288165661309954196394851043854511560358679059024711269564511142335670453904475237946437130270502741260169250432585337395597238604156702021134243876533379392740120649835397100284883870194396298207373677530106877374573617076476097291185668265000088432558109030569353785311110711795868360847629116178909044263823765435412868003474206854001935560780679704255043942966322806527205559722134202282065852469324368533992560786082076519188829476743112941782209090934266988811981823531029098531361144857401014523224791911521233953146024983236107521250744654393903999630771428357339394263487979287215291843107028686940662933719015877405199991619632271581469863214279706922400591013911319407978510255383331936736332388433973381640705776646655006249485284542558807414289811197225845158556639678753663367519247642612943933772215866696806617963863996799739679955009026098119921501539558213222551460793348466475529403996252356121609662263724133193021845906371248877721299851512442003007200739967881081830727510949040623951531179406936567499949016013769806943973330815333462010858966859893750612604153490769787117142894872246256230723346423302898010933256348201724638184026692982268468834032676374576551455130872604591133859124310790972356245023705846248057004285432504539568367929796137723035702684064853724131959023502796667464099189614040656199360825862686809170301840226001415894184812070172998989626214421566245138588605462913118395702342956757977930431409661579713122168254563656331556256307963069090890918080498310316368524784058099573943762388074294788440085890986885893718675533664517622778953182935516528660668361743312670485322480601537924607670025558233057840379312547602766149296536075454297775736077825315781430321752404473184877130724328164390750020776955669076273608687345776241492386561382468248667128321405320453578599321771089815074326897951071621005243712750079051990567334381221430682037545553215661013475504756269062669888181665797020379245803659068095541091418533577400511650215561065465556734862294664572585773085981982168711107845163028006372975859865168555009287098161398031130830234735292235538086264311572698614771558806632792499991023906495675755138084640505459173973795980548221720720369139489574892127250886498913823133320652633564994264555263282661710997607221686363115835918659898175538726133775358443715849375076923147647501219542791105980156903469481484066708399409504056997344826695538509455336264244409947859174068329509926234418583311858985855793234268664914673610433753627437739005642032381864844719909809138266908901804495545980425161038669148835878539525124848208917102872217410627955908252547038635407450073570060041095782977373419921739532071679094899093325106326804959973298981465634975728403039053452558786692036907984575836460350900790172068272042363093682214132066476209961034379688937984223777655018862809825763909746433773946777751462145191826368197566464631036282370350307060198495086102108656013258811819260636857545671461180688671289075697714739203661001888160644392313372458656042116512889162521131546125393512132051917980839075542328495894273187651363550897976587699850438740043875096484451472689897025166196024812048690984097819150551810969518523741646225888174315632785415412489894114640584859347360499870391316810166928180228084619566913264386542053554523958805707257628832262746275257732120083044016463294491372895700821161531274844463612727768390813610145552156241594854048116785211973883604375763779881644111661688332600702721522047834786477536320554194242932549538726832988659297903619313595878095346488353643613263775617768463760125012408429795236542044052178749467237895318267242666592733988404937551250886982133719683599277573775988175937397815100351653237661177769947455369657847974295639889747697583288191506729804884985742854328039295281941024850281066564211524050325303520111630826136102317008089829636487184538731821717024011097551418834744185474863203599719611414491387008321537892211938081113282163640344677398043097095154195812630400221538584646811570181399692418754484862789541465403199358298156904469159838499296940502413104514475015681916717317168891338313291298398608786768199319906667441916594335130524682325674101030315644205589751598962176038265027200337197356093255499879233063775542110350092122834466153197937899406375805973184376062607133198250829403971997185090391003793197389000915881792387274753461023641700976207576123194597645173750665283659385694477857790233108011595788984900644613295876085137375505238795761604509352628066229505684368274508928701560147641127848222638664750289218841387800535538262044720505001083498589904295139294202145004372035640715202913941751597065138525057688841038325715703055485823648526126467276785039169107981514686406928953698870417341900512415527974318099936268300989967956900917087880352892012355021013428625369756379583109059594884688576890535543796252592472846120034743085976433215957256421268192255216182056347738284605830397579795312284873258173658488472456935034319350986632051157791874337990384220524108249650749472085671391052997265684369808119692241071432463713802442119350568550512682953414197554010292428870810552202531220437546758061088123254527458357239958335388810640231100555048576948423753852666419381766603251774922573252434027822673574650440865170274546031145640907526022131110581101794952995675536705883910051314099568657415115003937181315980625940330161774261017857336507625657280245884414351023536943000896614189516163063206121705340604015019827799698725970514080480432044504788106493271651834612851475420457437920467269728398471970674190901893048025297794517327029118559684142359574448427493370746402723497240261368274350706663319777969903026962754402130139452196781490837254085475616325115711621109800653657659451953645942784963513356987906724976536858337675984949354835330291696096438050453687329599300509147914397927366216089853860074552968867022598261132858876381645939996633520741860199127773817022950019801595371639200866535075179827659053802428081328219429175113163023811140436169663452509374147586658298215570361830169886677752857202216923119638667177806523175634979719392223824123225781571955864392292275372154456040078284567800243154966423589636132038075658665423235258832939624095127927595814747341797790713963577731213313238185316294764629873420515300840365893379038902968400538466417272083555408983286829518596381326683614553488639403216127080684667066679392646010541168876545680806857260288203802635882288770682205881081608296685442044091309978727493347354559925209655992987114924891667734222800900733668339329842133545066038147407822327335613153335555016599336591447207271305886520026349317222659999748793944600017438023156938829450934475352463105255726493296298940726663422706938172719064907182636317029127963260527886666057551995089553314731847901279626593790766631886956599983201546957535157224020253447164796395170664080995999060219345668384593951571415659251870530972353931208737985712214286111572256993322005424614732219918245638222814011579712359887269565432285023235797201921612444072213454306373707645667813211102891060809045503053207378463352501995349514621917119856264295138894504974774599170935790672869765440895592261998400587569987334994280021343200739539253491244362666778169853065489009740907283837219732148387604724043459372894347828278011922451519103230445223831011859724043289182758653300285028047023050595139783923690471174758456439782438736662599843183139225631689822476234443555000089145835855258344094324492807730911280945076014444861903384758320561308511437154554547791852913429218395249496910259656824835923831252459763973063736929846669272627357421560248469234832208908574969010523606134667156913501224664172427452277389770021555346452171008807930824328052944036483894798209197944635705706921349790917501301240675820022715959340588060614914521980985194048891938714506795808880670891555900526697915519499143088560236472175405876847067278568372711712368799840194472245182323912489701198863273486267999812487351044594933202383045854291429393845202852125341189869985318272191633764519724088039942264322096484987701437684457306544926780294326403393794820898156974848513546766706979195465597847119904504524928220216891392215887959320831414395751811774791226382226465719066453126279724322915489848325121732182394572713500911302564805993732018040767239478967920607801166794095801303580929260355054135333006987431897045121017526105881535735817104894432213752336197489193195518645067178280173807031845041199029197261114251565082989656212196030312753322824902024571370208538304049806483119937970586750486754875728839608553711540806001057615839031024155601433061410213119525366341268036885298875831414193356078003867036487956773746032240429726449182266053227444759124872369062249551107045775672204618002635957990031692421167966433462282616494735173533269261075263771239305597484351174852384834319417848926414695222122578457459775077805065048785964587366330222252994574299925915073477984621355640612553703024677706138763248407230859865236072067925387870371225338791917393614204283086883721818727686909837867188606855440344636665913796860530489125241486898837979780917374083051321246564440507925465803901151918051467490912044254893962791340172660472320825143071546225447799873865560543614949865980926672709852796214367559401845881031222552936046935590333485681170137415674139324260282099300857366131876082292146207772069371567013377422199193981147192043877729083340449981375006908975523268361814522537467514500983711926389339148275093939587075813075783928667293692660108805152141514097568792126817160724053094901952370884911283975604825091955099314207776178677793400130238528863333292439375271455544875040370596038909821624770774764683529827658688846435919656261905051778004735249003338121625204008151437154663248044479414427595416932365790489810538795951793154139117508958352618050262762058682426782155065070625319711539441700859972346083501302687963363551024781482173579720804037124209852028068444184399435499343047661790236010045661253225639225170039209471912549930835851849148382880865123791268574931866450194887232162566710024526651923770960000313099731631380571021618304986278817627071074274940120134895230198397361652794204373742378025815527418772022848501831893527424792836688600819053861208002889780883942488851627949929312685907388721209166425919751180677694563561123606298589899658766264839017556369956339075665009674805300181747325369464437994654694280514297964489850113664901790642506203224003216677210280856047993323775124456648733984756366318231374060699388466828458561461340343537488851942009336362923068961853932451641838812959517306523465910562576065307266688328159073715220919584754569323178223844759369864696078441247692259561589958055179450201080211278027632532259972875884040195301620261444385469151040561140431116415673494749392234518593640054580735006304631480537523191915552249597918167522164957001628891355149327014165385273552653004928592599815165106504752459113857916576917712450742164372247967805257805991930277890655093396265210994511645660181982228305687405428609329420080201541905683040314860938057421923456334189756713296011697335785781388034448763899791893386111847477264906972929250471881067565303345920788114087268953787149666488198949625164017009388361177161682672603547446176434035209651091226284824721972723348120369293984161157778949189350100592996999992961159678142297132334694238283593316211438434490850325693710935687909962796689692413712109462573560436761241714518180101195606658045616992999055764231869556965221794582849852892994806655556902351454676172145671351651421690013532381540417571851232306677188174571340459656510008822309041066149806069156605017171668160865873442221097060661222015693752628389637271421226495251293094990219482086531546586928320195747292523802295232765256568257458981272197131014454600671002374552869660377458368904469742384524616042293415468195313268072659109817139947134353858160960199565138654280072534223473073235253119487084155103496384060078846695914407422065179361191583280374147108937215184347005920153466521524029580981488845601631112722856206113786261972085562796921064468281026550288115241935128229511835396334851844889902873625989933789535658422088669840325012954613926602823827909974264403547132621107967965065751442094646277809281247763421001762331938169467630786026872698272435482044248710348937355604757103920262251113873833884405522719062395136541999579785742644567273165138822955575354843835594386886868189463512122580622680815935939751814481204229167610057878635474440717309102552507719613515736450561786162713370170361035205103482236906887612123954072522368110275656498680760784911392860127763034392277042767887781786662162455044432627634048023766305745534017437691949840123245566623071334279151489758785540313392188833522768018022691913948146848118420546531174023884344104390349003881102166021535499523596903306472733435413744054601473645006038882980921421433519848950039421494229190299297373974761720376260480895770285559917512905783628854104188047109313510462738424679066256474891245922460964690608769536720099619071252192359802791034873701453960738533319520442749068076177158574466571917155186207490340603646191921752625285570706409796035039617858324843328468703419000170294947075258455970085766665990867540159640102277606698966584539087483783010616833940363632355403762756677324422148417037177002909275972025221440024059430973817053362306837886575644170254418439266415491613563777598588845579831824789746709583666273532620170355427027267913296153882706406211289586728030598342231525785111966425292527347800989282055408471123466610140114224481265691092419315779765889114036999835555742058397449833485356844990551043715987612445892140986343764997967715817487461889883077949497069545189443173694246684843154160454143221467430190261603694983423654508731970674913468857503590463829287391398910752397457796177513711096480745766909599787661758402893924785659454251243258370508911862486588092562244604462773610213403600119205279413171780113398204052736857452260423113447237557660828664155166349590077811453297271281473586217076489735306062835301556555601398618229936732203597751693465271185122743835112406374626255849202399850231816474547173044177132653639404452447397678562290332614445542890991006595866456212722546301841104593751793088333954809223014041379874214612513805177377269443020654710026244796026184457487212529967695999486012133708656917613145764646422495403599344267087558791197747646558889713690140234900531898147955528259402184278135517366111204968257798911332354861723750053319470116873276753476508351728877269985178760816638617680835600888242492316982128013200569978162750103778920388272386839891920211718123079722450870009950008169579052271407572757454912994812048164695595303767926505020705330583525063697685569800083335802515670925573941448106475530295419445972467684259346105644419970638285772106638477631481513378591259865908046526116838120516417732370136907174075699520370821277985279032712432399448518925333081329710090988764497488067553538182235914889952248933951835341478758583308160769262688288022539136090260172554641116133433104125786627078062065531187809266845735979877210985069727478964914888621013133237347271044678481117025283684530063931061420193133364432314523285041797847448649658046841180798597508211379168924877213869206362849366439641198491666669726563857274176575045714937065526908695993555296549908905222301464088042136285580016912122422586017698069839116877618984094654153402009817967814316344480370548574068798154292862784332983115370075460790314044422623714117163532550559764978873888949651335164316490710744154965691452420903825991376166071092465678553581101843606244609990849348178652594088762250031116485407954143842036054407298306551834510640837653271845137598319594801297892080860558887640062464048814967743905890903662988303706711073368360499598956473272388970988770563451097605261143089899952112432305511780409705808133825496311374201824404797782541250759636010951711548711707077599693318560451518456750674743900479450455470933677000176858640230858882312561100161247181231705066491055001829458002821128178168276741455917800848045448227255879284158680947728209012096697654225009456236121031414749126936460948158778682071912079691833808497147355550955974868558205865489699573361030554534541635546770202790915260691581264775912255751767490249864540310348273959436246942797482669433201127658434290032250040830320735527029532471531651080901875481688997667360757669500791960302770522861078843055651113482175045712143351716829347084095608722492881173408328472766195515014790697041254274547039536794919075153729118538079664933794471530180685185845026213842957860020512485297395453145818903081303060326348935218108735662860852174340797403043979961842382358051619920759377914908296080744823841586174122671820862320106606733366620693591258108661380804131711163398439029363206520757103331710296838947204273188387155444895608625023458068593013866055175365246464360575014718924632941253059910136914231331934280716707695539066835315112029118627021490743653381259670502644865483916830443424949217809519194200631376302860178106501718354581174072479065711060222763267291459914938551720178958445078520021397580636265639011379819096659987492909229227730625158920651812342633922361272503342251828119262081436613573271568320072742363837109395609713325268542298414165321486921510852203377500435317882007801623265802906126235324280698672814359992723474828457839577746543018968917298173406736778917183663908671967074238198020684443221320123575711334444280525012223539732047578057790038377957908591744577609535986644927565911046055346717595721043334759409453959593721927818794895247145095052891088947002805616502065306216676717416055230416522840086172671523741287952685418666096830936262763372606032314209786604199789048947988071310784611896820733114074360144878896561065635756544362672424569701361796776062350268586049690023210864527787129035806374147970850794126908600111420630634135422402077630321302230825741712656462221641101462352723676008328077296546061526895500740776308353285918653995005987896774955809071919050626706758718197673051725004650555993034867462362161953654884645222773384335857451551075073324061840323089515929149824378938594089588422044603913655738165329972735247127353119240714271067470978013537514116817550073960201171245647578099501150917564140017589768066068266079731921079929519782633338156690443319503122114544290743048080814188550946994181588463906472718481385612272053302361695950985759621364378945223444517399285313677706937637918147965617330690861448844894414602324638931793571497462365780169653780837057610172590783994810692153583897760372802579743861927232432176467135282531858953618867552312969056240825078606818140899182796977959625638291462608558244114130692316623619073784396444749900489681393242741426545980313283431789438274090679413521308094100184470331663245436769013632607164463393245185907963949723773688478236420296451780358195752132252618798475541696698123251305622569818634085954615943675090592944449230103283239781494256602388271185613657947588724311374454895887498107744779238255872174429879734540205178507119300868123030581070636884247611444369157096377456399179794057347555096425934217652331166567514997084387761931931710487755319092266401748775884858971188142945839378541959944217306307162693568199767483460384636689316058566535476495129484419431851325915185148215688329677557549019373045507802170659014194191736293936596713138853288994053579960047910467782293737882669885875297019885387134495338508826438870684148301547237837571319458843423136276576451247595187731782473461810873143804617969984427040999247071187002950007967838677883460380796674899437005129388384330730122112332789744881511107210962930490790227045165225816736715457779716254886870415983883299217231831612455466999280114015301732740392884984993140319398327308397411371705051667436866612623752372426625780775548959663215488921558299269583580506384498722822262251182619848655905137180949032552340284975292784799179743156643218474478431949854905432298394569872414008106842079543661030161791264390536778855662810203349720123315211496176032984701920334176109703791563675221838710637575277412179144648514787908406038428494007753161330117072379751404614767900315237376271552816053262577010194772403919986815308269655951003902051287019340741675303145664219501922859390787713337178820249884308085938576888684766087788361212588340561799102192227441951904209782301978169954484575487902340981861539312754763855736579250695671232192605301059452885706054580721451018482631212454099551867444555292387849897894762095065687949005983544386226136980196247620993873130629160496936756855035274633444985080225516711002174508599136738714866287264610326217897602945065629006143935983966211894633276299057317215490644880037580373085643022341676573874285388076042658685029038197163037372885522381399178263327639505054668202262464824151785939521885050852409220118074770879994865654416123840580832960602322999992915156088869305370520848981515875298084326625945761119568648474062608572388170510564977601494095663389256009525523763996329417208802643191424663253018329730313492503648448768047982644861236561416818240551205218652932938060592646808819010638120046048408566287414713397272216175124311178734901173728110472040256343954297704980138040284400973004784342141116621530582367295728891799995522416154356854421798169002285146430220128351086379109587558620432989851116052819653727907842091309810301841791612526521143611455188315887936275781967082628812765465340333452386015355959572228871981940400450980149138112707648223810929534062407145337084669828027216477136348111024880511268416565834585020014633570327365369504004476918422723448765469634024482787048633582610362148290534399177762756187038030147469256788055152306480634133865478738444167755014919539403061525093910790984174122768044548306292596479332356111407038855334859833232320350619599898341996277879445093180437437451783352272061416005883380025128335828001544980628950337544734974395465618995386526298165080041427792984015501882119829910227812839441219308186759833303798930333242024710832592338519922405157406839926483207872448074754661540488899180049010304048832727077324984796426815507129592153128946887841765370695340534368694224696598612760450626301194793849318878198796645543626335045420241984415834490668553496226616738644291385286366579918058012468471308892451657040162288168362171876952259279761629964489278801863623984773357977788747417961861957669059015337017565052574660653166880633279604714131487706678302025706034282689962415743870404423706977174833437608108767898089624722416195809493783388104637053991481755208820353675367058881754294317173407312981688416881178686474034334058894172197769557733045758600387913495425246458280730411523004278975235228329084891719498792963300635487922747947342657420872903056431776459327963799900307660076963902772215059454805611916255114038777810113678706598405756843752862541486062223834010527384153168382676960331314361084668448364376875152178775509977458226762645126907937372643924175886315689246346195707163057052045099370729368607475774225055347119564581512437284073503106913544655867985045566843604555259618226470172125011839224500728036334076416560914207612046250154146902655139683047675635361354862425250111152798008395646267471640209962157183865790452838725529433726650021032282775195498147128721712047676447214671196169185233944554040479592079118780342718708797904244592515232778747497085609727703542103422825463540936801274755875232879227531112348774875533207963903045443998845291768408022436012919073415051591672026654548718880867315118946179938552429546109779022222932864311925752243654297566246338803891544414585820431117399938514149382469624466810021806652050995407422528290800816124004649514642139584428979409711983982580161280603142671052308969552918606479290372909994354926632659274772654593706610816393099860117518421276764378605927635797739664564529923896761047159630615963950385355278995345383012698791845274424031857345593647555377190066234901295951345826477964722285210356113385465289161520405558715174063447387739278282529657083066316117178768150556939495988798227506355612970829380028194159679018895618399008867097121991202266141309155368699933519056045071231640780310068262003787299828296233995714476109792379104931817350105261316982876603764510108435761562763310180978269625401354450223728399451693514815286655575450928915344431214923166590702689021203351526516277229235971368783484794282736440864563219663056076947267107342046662103306501979961332242361492732677093628604027286769833795108503143201024739315631160500014792322399518730270261364035301769755354588647007029519364326179268160576281853579253676139323509460581684797054686831522570122101522513121220604202356508596975451066412782656383522393265531310051392430519168202225521036425326421677779724935331004741051397690953018206999635633919487416464442910056632286758579297939889215051762139899203270635261093267555503923860719121036280623043618353872470643686058594828215958985997020131132576388712263364055191613431186009126157042360937199290110437042608030559789757005266875661472599374648789048921310484215307686555074884939340565574107644601269620958433796349376046769826932314394406300043179140044329373433646538822568129663327500358169188568808494561763183092735416218514834587977281286028416771841547009320501317493794658140879578641721168538726311556181548647985211775582860835064255839679433725082509605968686272460112939151368763480514382812328772510463334600730188077337500903614897235602390333070551327618761362063903440146092082393561024097698596861144780552110307120374922798823173708314163972399665649813629977828206067818549636062199401621307265855139390695212169704747798388489901278516051819139533328080154119478358314063553419650946534859482299937619564476999362208337695155645701192982059172683807887999189638825718116820388188818760245784074729082988738799224774154068654663640042791745853068723217884723938958054810748748412852321144115830243628697122042778140011338172794374116675048561901330535405637979553347344875295969818698793255760021648773844564979689596257778512178420304991605991042379458749936053390400157832123651460470244722544139305896647990219869635644641427418311520240742509477674416978601301727642044332947481793328493284049441068359668901648578154780008094288114690662876900812303958925904781340893746876112327476916227367069490524212843851575525776287502394441669708751671849384579920180829326487608637475373789341309270689466446142465157722668525197027360444742965182379832742178104110079047575148328648520341792282127211334287979041953339561355659156907035421997297646315111009210072659197177068171095327861731516223907491791336739495051472743444916529921344163344881312357834379912784188615492295049124630094949639710903090989115791837153408574799291393991934023707629591684935758697761033638244598574631286019563567477673879561740376217548647490327329238258875159101095684633800938542819144363802164443188713605901916740729077825534515007937398666002090385206636476248693872755048229881241994854182187704660997967561290148820904804457851062334202689542259161657147840889631545510683635057162255785935524275388430618075896498048003622561146184862925836644815251855454801693142313775807614968111794077532135140579849988920613195433112022791236673536835869614208875991598910834414999580690862143860933647407764593046460756740589828371833119177764482550661458285495100385400913699381444082072470425502881396346787965751565683713009270556662530815946794077169609403602158007957041137800771357080440461927845830271079949952262677438467788818238935355131498357002099037915046922819525167336286027420848698393737097648986704478516376529893006104957156026311355904552532278263073719334008457508861543126539366898881391584284906010299709219721513325297090816166941896137104644805123890705437691415206217636005683369380169441575134074043902653636663549435605281892676937486232248612311427860400556790854304515329168311073111508971933210455548497836220380907014972469521962042561190624341293922819606877757720279349250629459255641239682182956327527710073672333093337866887593154737105614910762390512558896639855011612740591695557559162748537939916928028240461495866593347843139375105127116020504539018061132582843199714982801770118791338271296630271762455014086845100911525035221692303404359904220933425923279476835571261291592359818987526481927034658659662140255537621147419197349852735431311128816435782112363373415522898292453369195169703803199286209857326584468005723391035826402312118256259826765659019589992765369820545294780147545445320145413804104871220898713204283583457165280793010395347896937803098575599548022396808864344414239657395750575601029052615868964844488278431761053286426451732097521676110710452656940071296955328176955481039291528780312787845975484503879311040792671524630713983039830822274565569084275017889503916463877564176020290927286636795326917342917176926643836629925892557588367717026020114098874740887657733088317802388955811369746755105275807340715287795962228483794842380036147921520280557058936442142428640633896159742218449541054594350848407170817489326706573138742537704551215891140407960664609764388252644897722205417602179193133504641385400784483238924645309035443999198560529294055893549986734159944659756793699951585582994128323384984393170310989727135982937650653255779593984628576706927371393712164331133899654421891580942191844721911473218767744277089431078733477168361359565245897068843498811993964095731936058995397674966126700373909236470651151603659893686780688501973501473824735694526016474052073993031692262034651969966317626594318670291144552151837597022512824043796436146489842629574953409859365881994076089609632414258546238064748265133698443981962245965422680208893717105075739919830562505477544046293231962329608645470073854882167217833283401885494012091410100232021776413125689420948039508729048123716107659913644104121783634125525018662980817170772913175650001100610818144509746226714892115155926198237828559273652702388051413059338251936586528357608260972011086911785442482752056843086864645440187248928086806567437398063315474923500188386985792570301688429468486625128896945083085132704662772109355339521479093586026352049880421658827004199929103389112328965795056144170967305011960889040362335424788171313892238066435849409139250670363459872147000197209406389039383052630834084587698817407940806791406234451779000428472758577525147010880296963488857827349845206445401961082486358222452406137107153666932114429099319740281263500540014618220624233605918412162979095875751364401824873904891283414136761892878513470758544325199887783363101411058721738483829301540462104049639865227495851942937427475041063426343132831740358648387859027919150868203900222907497318775062287883906573308197936403548544108424634629536783021783182476498095483073218789513926725774638838652747887945109342737494211736290004276135448164788213936143076045599939995058429476350284429793556733315297480270941118185010268686640506784190781818550124534577191803810574432068257831656845708540954489646416832345098877643865842623168116811140825459026488535404076410600013159022444391913806400725392534671959568328577121576885202000488175226914097900566818523706275869686748306937207323876011141872685588488845086840104590434247123534258641915633996706558674686130947574898667683525828652454347910026613983930083498138458670001187602136264512226405369048980871158169337180586356332932474036170060747525001352184457585257452692441380092274597179903908897422379205817993127253959658311605391951085681456976191417992322869035528442975139104548913705723740855157981411662884005273208561218970434582710780641250472113712724223417984670558017256195606792520130810311514531456772030429879912401110896006462925965908182590483605328493136855962742564110184665770593183144269831477202751555324728637979219485428017905771804098834533568887191216987448271352057081928298682559772436633261156926789586716667001992732397146339341437244923859940715084269689955793322405568984682145761074025857654069224312232964868752132706290147773902738704782788759340070911359427142877006776530889802989886458076603077017987510645485574825246315527185469637047195662556951678383362119742896273403944425682147722883295301668359177581654855998113474387597483670365132073192434436506864785428219044210484007246242461330819089933542681716324936913214040282552166309718330917548570242921244954352285973514860047932883345112524389823184248947801623047989388411423006586499161348747121469951939992727762029675563521416231535450154914286985952603702599534486162839522611666279768174288933755553173670133749048744966732902262311668626742606233091456904134575042192200739263894959873366060333325459244665813898820883008974889159868696450893785286719492964571216179943987705653119477082861038855467285320561451027872737277879614318989068524783675725434679151879061084584290634668952809751007209369226035912877419415034956001889927647957850593981488618865565605200235012707570724872148344374929750526911379386377810674546147642298203650758528912432036006794212867302516456705703113661447353483317794669672896202693357031842217449932414638293917705995850287111253607407355162431168072556871696320115410008920659617647503884583050210997056967614798036806876939187260512795432299229294709934076763353427608515455483114317609991564166320735990440913008630149067598144086729403024958669777129499869253569232179892601838696777935671201360619656277597974569772480730906949021674794864598304318007007256384547280809939855907270679851768185970064688892055180321469988113625698854978731983343843856252521287380866695295881735989170372492986544427828463821819866158486289180898577158147824489428617744890636062325296436687649539830211878613137126779933723026569997337561842545297646478861415895276272896978487125043866908988948709938968862614585756289128108664307042909200411590082335051877280757966286279546886502405722481981748514370628128734555806374731442308626349473044640389055378071978986227211702563354634897933042086106189183851602186627558265877107179201664445099749520784408527814586180043017807526086315417383366217693927490169087306745885116217598684669030479734749709583811409575965286503665355473629290701984267410930222039718996657434782090672317604355508778465393408074152989057799626461639600309297411741951548677353794194430646266974460223601723247066071939921015542605898742526458605265189709845287821289947808219686353607933312596790704414564564069899769725778082686072383561561669538102077627345871248430680987137083979785543060003281959994234415427680668680775023196214990892130023243413060039536125828725861930449947948840317577960590909781974435298998456165040143316041882435129020283782749510467576963732521258538693958486615417923020370796462347333886611036846991496599221661454391131475041041666444448194246160986892610827145905721524329117237701552330919561010859764923527761111509476219360150746899759782398208358381999794736672323620104635388864919246253034449468305761322836598910172532114193625408762152245312932476919836572168385392206496622112127424482599938392425015643265882885888801099988353639099893331777177957079020220998367102729581053695076299450517130678606612902867549379251470637511044735542234100030399277306619582981465225633447381014835122998384263909806597960864281275357808167158697275370070783895354301931342893346575110378170080954131948300953400703201830732940594133964798372373022497069174219744317368643947064423301337684643356713062833769057123201485181187395036798531448325898760553867632697432497229754203610425047214130762481992956534745530006987693280626230956872582601566632620373904416004189762067642486589832809445258240575888643406716345117973961075431733495107272519938712529024813441570820884516324950675873562111324283726975965092228868977938053849988747991746859105359329869095984205257274421887404734429357520209183913232137222282463785989233531731509358483740329971917575231516962172579880433346094455093018917595827133156005060430892564837052457149464871565853875904025102489024756799345496801734493489815245584389738575876732469720334244587688219864848072488987957734511926318005007676432488625540356476120202975524839032966218016253535768447541294839790597117164915881223368001930492186906087036041939414732990257668748987383902033598956428055867944952754128757322069916845088499715520631278972554213947226346258331522878658488115845173075825986756696123622490730770848838088706573975202498664197649646908810190755580811897002486805826479093695910024639063804301242612509214842392329060983761959474019536925402036291038775420632514888864948803861883167754679817249266065421665973700036681624429591758143009482423162638391611868749979521026839325456354925114819554584643736034762128230560960662793249783520804529589047107798125088045431675710176338158102682555288590950428147939367298453715683246984219452378641372684338794202795135966851788730051458254915892381580636528248544926242159584426748670617451838223123354750833602684292629770154964931544293615408650151885440392753471304098161910631402560875924865778317531799322807636420075883508332622161042681549531664960493644303299729055891309510531061403145281985643814614320136428424272279623153184735755522639045135009711080769294388905122624156031237650522770661308497517517937875320582485384088999906735839268439369039970701268544299886810318055275690450211419804572873649405988208453272152464655916914477567783815579048478743990332123281861784388053626501058800665843920748298422820013305496499142421331497146287927106360370812412498836565553703839487202830959584679938970958993751512163363625045009752862347195679252876500213552848138144492061212532437411963540785551509973098209598829513733747723219635714892229720586144272642857703253496941283631511824004965608909377314673504659479358297092418094290996162069058570229938163217031252666788431460108545999180708926570345719970225640237047408913020610449165100533925356916098563323033832790445625630629318487544393782278928359401611424694582011453411420950005428636149002594783833287448101048258670819646970180250441156521632891208551882408715161435276645781022808123242979628357954639825355175120565855031812342778752765148593622743899757692364311844024214449912463494875321691194148991503559152303437079805793742678775914240197397206586716011648181315066626543036869608310441245209565155893278685721878310337250609878771742941203847061972721150934317672855861530564381407893089899221598634233692459350546892760509433929633018529024432339340305477027196932845486048714411936862345106198196997166407610585658824363608885635699737341092287098421548517394960436760780851163204315677633076413656239963820902021891086141845897766186403939148046870162904394897330151044598775875328436826547083712566621156092075237152423216403462330573207861120369738512512980189724366308398319915692844323372667615804329767062226288105492927883916594852561452902424788896892484270106182578648508328608291792562486860151820984544053709563085461035969828176392817978421353539008691495260241841320524076129038514311767046519485360550244810145683769831136574462602150484192411868669527302015559129941309018395999464188442011488803677067680662621924206822001788707300592140794272864321737114134524569440977940298690834470547141641453038550879495444234110365609297493219326372172987423716879734933223556148288632687484899286251405905071139204888405044708858553272166616179867820828716617241161723765802333015340864441517110341733758458141802980240421939985916754707116877434284695871586122679178721458583889388491561795183034648482144188678899766300453473077359336196448962002638547189281620352252104721935317468566220513375418661407995319836297614295859901976273088171395351027815430310234068409415372822085828441569157737377465421208672631249882096409632023421992545677293885307321123258733896422022706444485311465577844979254983769208227106265228427148988651823981288746654361507956239466195354225757376561650844162359054115423231416372801968044436115026887283509419040802530826488196972405540836278225444328106486462364593160632517780494395694983792794734430394254619083811250754023533316230583320090289094746066792767735872781911942031876371792062724137450054664563898240485704121932854839814183472704233008622793874566791063761006171132958930444611144075097632449366251956766031150887316427777126013461125178054973862716229587305533083078446792918045767389830797741757945379343552565620055410074733574841882918672982982651401714907177781573073423214016906694167396646402721429007241407438485888268757340425947522102548918287505140487233759684258421133539132968572244540069262639939620439450432203500463972427748521379677468380788742195542522767833479359592992432773090947335233568888295559906504308472862001356818001133885243229490368474033337643276756091500827787772098842643941128916813838318683387507533882460898907054162398406902772189094737496897025949149144517199844734653123398326029167832706696052673289371933515550853249528739475280933450720090259220295921371011431322338508856041230633427759855915780863500608348917315667495999054433041732835269195121733120193163366524184478212615634389149141812330513257514606998500052775609755187377514315199285899759318182450997859311177931858426459503715738945714298314637367375431097808254883664366949967242946427515966816774395876945147357746405323112081189132939788552903955459645497127579074044486131033087110186172225336071414497259906203617351118282356889509669753409122627450236024352822519474482384249753057890582235627898926649361418163184674047055576395505654548553501868455977212288460820925519192509557709123699797042487842013300769607532990942102540705892155415916847007489448225668092705211942941610397941993934607784236702984471983450261666416895237528221432296792895764165077984022842262175664405792239266552706533090213557878332940484900042557940695352841331336075966633490024669731893570247103309426758446636554205532631311506722593816725377310467492456103399418206989267958317449847336846324365202013979629214539450160406642010091155561069431874972626885957712451195900762847877163778453419576753638102418492459526462948725214982473700220262446314699452826196799059358991595317721126941492999862263994995349483674270069684593199977801077590131855400672396946591863543999171335778723639445838189627045875275662190495188673661284316093017397203403169194033261762776449521191529619147662224705083529600069439492752828220936512270341078129761733244289398781265125888360056756709735610040532676298600827157215971344512150621745302957030892487986492191740996973740471363091707995443200533699357402760401056965623658300142011701452674596810846698418466891582137802024149902055469175794192299568033595087641045358589435800134606259376458904350246700737117193554593783949866001439373383871828108152053072962827821212436221994625475723866528027218438959867376956040291021378524699791152643382293082032791774783530954660303110156396363211685610603682065715382001232373785375861096067994378184274728123454889615898328630708666060763885369107011396658655382916579097369366931298930086765939521342176357285239734293221068605657816676787610448791683962114968670117268559084006281326805952920359261856136830054019816582991921003920497696134291046125318126822589284988463166626329298662745433473425445403602498650098546778157904401993284728590169475353306307650847666537069869893605970275734514956019943300648324290070635351219560642603488735157452960656053289490231035150480100949294449790779958131315564107072676929148305912496199796206450805887432208103136608932855778294269610019251545000494958787494640889064296022997424221049998556744713582019715530532166732646854079116100680614319948618820519353915661097707360797977246848888761179141476922715884829232703083936764820631778586486551669633476305288576908868568799168944305842385874376364784801054036692435283739811117240649159874980388697807583693127376738992876082676445372451370189999366199967475415205936953538239731631176505240739361408402372406527312634072733637795186563211218636394718924690542966097338952009201948931372661655379667108061659172592311581229969792679491563898419665896829760490281918740967618213014895406761522076895523036516522333373719276681913665738566397510760310891379244169778288665056924996354894487592701942106842040662558531203191368453384724184346211749653605761837473648502008955592612223555371196397120042945633728387093946290715866866934022011801159124782466873654742050581366624889111043113801709459642294022476188474831865864204819958068192074560689072731056133899539905536135682809582744653332475408520173004527768996242988607895515642230576594952903339782037651923609510661294713308257604866552105835046191362314865079945923372648550707991647456139714261836726735044418274187362896105502327115691133707443981540578127069487977320068886584804455606266938134921643626621256477045648728999278805059153982879191885956623045027483525820117223909117791540365012835313206210521275839376746724020081550129032257889674791668397558189672638400806767579787367144104835690883694734499701446388535998161969737422160583658831392342098570231222295224608765974629789619320513183202378706744482079882042596157206311831733124525328344834551581668626887335052476337266378260582557487870339017000136746492729955741664603109170756187380018005098154110065675489089283221593054942221979019023332263699802196230052063099738753714523553563038016016011548560579896825131739183273819213309571270802385971878353833672250439777507450841158588944286556263935404995072947739767660478570195551747267781657315414862547243252262228554884200328026067664249459977403396599717457615118693534424548191783510699839648848991009628476303707716165765564034999855049947848046950163048710738614042525943741562731971871166681320711716738530186376512031453463546452646671126750769325945215900793720860733873310897997521155059356920838664385139084797544829509026875650179464905148535316586879046070641819362986867192047541130061509687506246293103824117173934685309790021315979655457880195026499142480418533283446605932050537547130070590183384861821186483803172586009118232688320393490623139351430195633135153071422539849839010594441763515493275860028177342389013992485913291016686509097247941633761267040256601110002277587595114118852120906921684261217450782671370640836128575776702537599273161862725210761311050490497054557699932982857405094246170344709607667808373562603259953229717866336851876414572185411928729386037131462040526029938432759801840821559212862129052229383917010429770423391145838913234510163799156769778077054186947090432713675490108771930507630436456768208889306298064185295164437399106601200260015053773376048196484433019067744588220171801886128496655317179857171084492126824213576935341373683304004263272924747954337202320145319217296836432378313755305203135538046170383951086892152594153761731912845456392315922574274279622394309455289867948374980127317367458884917816094153944978506786958597369503670688694957741949468530122375194628720068703606342214159593369098074715729797922936822763304527845868696438149709334521623419654229925420348965810586919093157391524215956037780328699774999624169830438404692130720799141093231197528788638250405000789109683386823428837089860248888425856422171840454855939146155156261326813621807684964838693035210659854115622398925723530958500857065347521035285438664787514943311574141184809132181699254357705401946282242585806843062080904934510872842908305021715697048495732566093769706033829779018601135367353058504548728830117318582798963333032200508523149879091868248695125282072962123378937338133538923338811853212254481696315921659489758401253255754857629481198710710894912493883990281196574313008679539565054963124952154301316138185804593449792817984402712130115250536632699555256540789462287666716587774673703224826242513413231151076535745469725975782499014161706710473211169705343126530194214351269882050890506907748567458588731964706845382417600978794993949498988956509865506416770380786756225258617717908287677768665578615130819911192777895611979847619720194038236383801511576797132827127429995411129956846790360758973942728806398443202393438746875963345135531162332144370868643882228776371780378353980356422483075522735439008666381184853856862279765912448315116219522610649406273958210692494056944540156186093642447139184357347345786493391701851151663075511698106328765364567675709139681954123773748831300453470928978418430263103118612271178005531620642068188443258152163315485135563560432455459648441195352384605402215616179034743739659192572473650191917031195783569497612727723198781225802263541606495659015866871035868756824297620228658825386359073946315380341021238254972007486035150823929676156545868829456679435246659681787799749569988456406781084867311041028433256568244978537969178496101560778756117305740530058765362324817479210057014706652319240063452729253606860614888689819020714141382630910000831710343043471438959509868479079266023161133149252898869662732065398488396547865468766797708034644180521576599232824916200898986355439904996760446005278239329547486025144838390228204571035560824788385713273144799542856049229049584715287042179596317244353538772877462085356315896658101882356953649626688526068141819016641333240663677687223729576730870779060024840450049489152091352690838224825607487582524641354096192421021955552220292942866534441154631809582882190496845634028017458361278940385465819273183041741455651998513512585224018345216511801893292729192188083912854418761186272820175945404055388997215753997333165137423990235452234618341389373451290645803919843891211892124661171943177095542665326343550231855345122226612676222230447945517969628476683194859566479085677165823734489637043383046665973284733780370115736110113756108372827922441743436457422621735671242592344028082116876098404213167798438500668087025685633715750490812376987183621681864342514070119761560246098743231122876478220383682433804671804802375312153606225311158980448215746494853229988501481689842905873273622427899112752229541037805521135742275357304448905346671268502464808936329458601550231998849897342870653330651960917561920705131508708632578373680365578653859408210631552211303051067576356658596534639557876078904429741753497853074203747168312490417259597876130952366483398900742858869992919046601552874442445711083979268578092248843457911535175657862810012826871196816650651222379973616960214670596835991517496005342484156186041382972837028883472773633795678379468601561559257941823791460388561049993744619775485636565211512601352086503960183890148949952086467698044096287580775617279419326499953789243258692595368127499776467334075282341699805576033799409812430267026617529244131593885678039647827547253590518237188175957386031354271949369258097223400923000246587168919862460557419721211315805068259570003799236663378137955890307429981179045787137558733378049242536460127502360269944023216752719698829130701444109447539743670480100804317482003297576627013705656291847665121538501912557754267502696705167461291373171935633232190671103680407834769580993846410182791572889320531449368467987589357242263453700821717763790111616664518740770875199945338799004355603669898829983753174892337903291876391466357203732225925039795854854721984992871805952700925668125586128628407729390658108399204510380879422690023111997152509694387483118075954265221203583635445410915848512405307775398820671330703488967761960688677271667320553811578778097329899873743651151303664877672846337998793141841687885677622271497184690932901764822211194646059326091193370859245128959048835360290349003103129146773418855317352016539040341341945764173938092679567938390477570799656567481751662265771195975476047549486148565298297972643089323863543503695610659582303989773349396245660404702240508732404439038222648985706196899427218763266494463234508452475548468210328645428189197862442410579485262667093409263462336879574334122172262667271730995644775106056846232402900265929292535173192259000870215197347359565065093344528670582047467242202607435797542471028833242399760404950587825299243030093892886283311300918004473787629540366080920478087013237429986142521060948887362705186061226704554512145426185103186301163279079858474527753838297570604298096726868126356719225632968363021138884877416635466007377192747014854031886013229163091558978254206767358893017910495018729763997564445961610386754841559484866176931015381597496728087734147216743269316563517865837737724546437579480290596560074985787258657586239979551900595828608462623738600866119847876876798191024823770982684184563789906515047855001315773019445214920429741127555367222766237816469224328905052933516648767910860725571673858893973324891821308561564939506778312367161075962934367345667423762851600383808669012609275779331859243112326237012958697605139411759345220772855141443079533161296085180598929536525278790862006142778004171590094974591153519617666277547265544292058557774123270726141558298355914173167466555148855750707375086227496474691847403614255784918635424733258455825728661597082082862583851748784263073889276452058083402856814198219352624134232608910207753638007210744479896595145514329399195020397442346839085574319330687160198219240121696126675452439266344486629578524109623326759809098014067485097274128650498536174776903658658724146875453748778044326904387959412758082205587749466032535500645011173005816052338513343363614702981942812036260848821055936780488196846751415653248289971464096723917255508675548676485214953920399553629035867851784288585583351087870198039234768945276100038160631666063773852801943500627724188525857503755389205071582782728762090753089562302507961486618160532090705093659266269951483996759710642027504271667977163376305288155416295845497614506341701166002581833222705919416480470898320196202616743376360813890818282797411924265581278944845544111062431580175215677113754892649654311373040262148720044629892739002633678407282131323082482560203293065832495842410674563627869633066170354511049388098201926064973582895111389913898034270622221480224361050898395599639745984407198266927906672347681222951593688664218045423536647761532300964513234995803299256050837768056641640688748166663162382620487872217690952780905458483160744363769461400113386612189217497176809488138670562886672276225531838555699995646706494352290961758791269312131305482166419025957978425468035214417811621744840531923342117016337681278398079503572656923684615426806651293802713790366909169330735349611033372065814990808674271369476724030457282279404900644387735166105031954193488362168911964084914373637556514911932505412948722014745927914381658463818991155966365244874364702884389118613179532638126448904477453472826768782402708792451133751879095746475453507640551263438489508015491536124956337151136650828572130761394693589023743524904299164446013540501353924384860823472147515539783995340856388360084946992836381986029328832628790860651353986753147000158742185717722234331898295820402356791569380862020021303551974705498123142063833561398811339479019489651745742347540994893610608327995018986353559174082828019557469550730851561740481957283011596047310553534686250437117551758294398212317586768084638879060207117520729026235975281276730661496134140500230542463020243058303345232204959131857322430402170511946282295373723897881190134833117403022045572103215471175924267330899814996194703057624943370598842291871681039120297854202777019691647544383688914879132125520828379114240923737178271444596345214047170309149492521233835711528478325418571106649502487286806302405043306149315843299808011512961118870501801489717522979742357052806657495211184923921458736798574885822039410788578394643821352312643264782109331168195295738701401701925676488868976399011033292318233337605335625365866571656590437926980826481421910798243427742383494658742275071096643718734210141944017374741208760249641995365893538838430828236792953950614026664987688995540622041843202683846523918307664521596554631269296569960238735786907351552481551203588970481701819747848245096843161470946725571322419758632433206916032564791652466687653523530379047582082593063866325824324552542357304524715428739283498602136039218428602257194821291753154833312511078451005146018749675752083127161207152517597937300091281823210340795335602295062826129904435885867532412143246009459713235040146137218361151330867159029898374641505198819643282171855678115643560771106764680369154095158267446817325432194906744927158166053382714972028532016369449744549013597595998296539456401019230783387137260263981972621992335013091240229995594192200080096214619796348979634078931250049805292736261155254826272838862156169739884915486507359984524603127938774644779567523294630468811438303890465091776921995805338156339666250388928439118347464242722809031508922210507854548191606978642746654684754232675075384020949440307555323213620150003120007121148192571590093168322765466465547699855180521132744722875994119674557924581664820611015218353265722599410948621816743202411806585492069455164985291416097130306765297629022695949184339246085894710131037479877444396419215158160907911805108402368188223708465244465367702299740830490296667950156133889496834860220350342789152508382542457151710192048050565533780640925786481346250730576525101752918684133874409224569918147353603735885945361764289469477904603214937202833052857794222568056896622113699302713108374864368028525516117642234241929043736520826950452886878961716808982227298394385461307259863358290412045249507844132328875026173236562276408630661374615171923707700316500636093740325519711710097388149553394945248930539553967256918926130576737859116988577211438104046545587688240938814772753966406183712030594607164365389962128193357599941212261637330864067701089498510481996564619606836911320109937416182717153504318843490250873130383297970576630797236783768603391657944791844885582087928170739952502125014790736719652961689130438554119831577059314686703416292037220127895445127818923151537744165589970172617930979681515759688761765294791385554857374310832943238205923078802618743138562497493607799109640424869997461377515295613508076970027206551025374179957367714957647516702977531546144360326676260240188113406025078012082882171828825077637321511280542559304220071396763093927566382274143958006960279549016261189676425379883273068560682265988708012436690551401252733204632809352559013952261649251918662819919313190052686566847700011850411671252590441044842182481900341375044635287136382372134178957886810680173797494246526733797366529649882441861510491080420127892891811651574800311255361498426350491400032967032189532388547313066554491975307607862166597149433737162786379330265875349732987391754303594279035609903654394524748470331330679577716748582110317878541620226334095458035630137387081948118924302940663188500529004073817441175845826506179237534401382402735634891557232311869024562565315806192579251111165949004851935973984527293204527020271776936613255696511217489346887561053110725345185602585039353138945069614448739432105195884141271217455717941106635090370523617755416969442739713453339597111442145562877992480100332508568583287726207860397002665751303578702831849323209060415426174744997431815791945228494012942573132933563074141653742692740791401996126314902836610552603537063333552223598725987654723155570501976504963952915835893002692710924828166918879694746358721714316419594394419461891012016301604880396649987635509593981330464330151384464888457544374216897254356729537156571580586349733773185026743047845540097141373852242459444150310889218936507500362880496758150779536887378310819162863486954415153354664334853657891939019446963511203939453573278416235672339418833061583695058033331974594104119649389131165748789671373613380154243908161304733277713857349274587331276736922122563616230824168229216339561616008586546905763898320914870281985638760665065797765190255042277518089809809184365276287826680037634216005396532138719645996250751906336132301612374522044787975504162177595395493842906448590262302378804692869786139495205253149174460981878951255331097247554862613328749807058606454306804541158765018718262730513988174688687341633421844552679746306710378256300502922453029608749864316603783110027892596940932469028755159457872612505628314319961124907618047164124623464197564509009867848251244003619400932902347425775208641347362745467105679027374856555114670638328714880781177516770642142837532234772805323154065302841073354801446344176366264574422778106450162591056927109010959863453803152068711066356192725558424955510451580258226913513699048692660555649318450738258038105752442826055840673690904494162261589319348590942223848673816416591176578283633123538129820075536851915281295923974124624580200914193046657308738643252709027862148731798939358917381106447755481232293541631921567455859798656375931198748943879928293638254282372027107351654952889819925480570153840258322355154868937283287120943341186207425790928979518181025875593026558011493468051731213709397039759878134325252762125025835322840417414235901353017518367686812514665312396582756657461254466618584213961263935476313780410719144993093964364310735843345975627389742259259623357157567258861645037681412375296809586415472581890003530299571806971459076601961981055017474950409985023679082885101490672461930211356875066116617697937383216412104441835179421257931100020047675871656643532978822348909529896330591805800047993075541099431153259896986851362125685264666284993836017718934843801451728981606664385202743811429658535593278893907031151153465859426891513843834933800983685339800494487461541850454357961424482008258941758396247272281272699786483870877431272030884081938667886438295521935392715269356910711894173605924956833011881051913503552291238522137740547394051468126947151416998171592283665946716836525868597088373296650099315715172280418819772930331454969696983693027628854606868481934536837363901793750197672934514229268217205712218012156565356670485617769036802240608227139316062804876582976442752388155799023651834837140696228567285893541158554912901968024989598165820628419988499562640128089309710472538266371031410795713966553484533723254094937791681227914629626266705922273938961972699527354178199345022496211266013840926891527890108257417150788856002079444946880665417576586124528170738432195140583041948911258119047275396522235566107249351932579392655941014480554298313340858666569630152581655292335922760701737742262632940124814017480796456523086859837606915859379266581637208036728250735140088817604732002229953965811441592528214040564281965933288025138201991885171335982637228058142070974155883796536080046371836622387313054474500262449474371457613769945705703957676141556967836316139253855568459193001770056882205805779819959611370265672726464945988956088039197522964925584166910676789019664276773937226500565623231486919565712431636523718006890863328709475229483019834699560347776125074336143836661173909298153261348664145836300678330038602270357848161043873009999735232656488679949533073703535079662789945274475307301000416602559337396016500429340058741441553332297223171415956908009989579950831713933894346623122878752074509572141023616001228886869795002417964220071853482407747936920952622771115270897830597799320028141974526720059813570924400209458783441591686472502684728020425274065720961406155386215373048771778123284842106570936982778604423064897662291897686835403035718743316829040134449912022531644343261425145401687458466967275213607475342233545943937319750210691015442274151628448205532271814456115473280046806204208400546377695522797276616531189626907456181702235378924215174940077880144236393598390048940305642606105520071237818148826009058104810447859104475365868868482061128832559200251587525819673673046668220431386824450458655363187581317729906147532595505698461363820438292100294183468562633378938423701686423860492770607542198190199529374343090746038706351067125324424854370593884370967638145883292903316677632376169835875415573853607321023673124611577982638333875850356162236494427928485211255052315951192516393949622290341762377337302730239613208486830276342972933144131827412943438634654266644341086932964553610425703948626219329220084379366049138594111731516194814514273216134694918690055773713790832963503159768941464907094880631940816190779956698419369711000855209680579105921595174653504317749607260269964536018766017622853323836967118015061897726127510545936762451107657606617140271987331303094406863074047043481045602879767628587298789530732778745907424449326698815117231800029810865790826641811772040413191890952148847293628493767553100683415502916262779807607540285765681450693346342776351090558485552313894186343478420914991264094433671560990367608154943214523453958822191128104525571792617495891983746934562633745741640655409267398388640196437842287195787331987710070411097707534982617292072354679984131900333008452559996181573265983495191296132072062143266523658018056056169340318988111695334355629045876339433081832540218822244588629614244124929318983386994044123239216326688401304539061445116259668938262998547118286966154301343365521649172149083797438214580723777205066735365162334050120711126717523353346361065996591878877368494566094922492219830198630874778288392151290563826231483577540638923591455948722468186999232871274187878751004432154343473441855947244872436312653899068625797903653222167449445100471969543419214328810445849958691632709009691258370394001886549238530343537595165767962129890693214317903547715351143382044759500790535616459078428421859765563296457147998559510332552620708064194990515278594310421313189820067050386322676757356294566987221560475717950430772638148400008614352031579922199003817256466037454130851445112379278733634090102031463036509565501810593865457126776675306858058103453521386979699381087115467712398301639169553210596028917944589878900824066216619727725078330054391190114416082609377165598500983824485207214407471581294518032509892734694648235907297575515934530644101891560814842028569548946902116730871735184299848238175720296812939209765758811384946211123299353426997193789572260069315396107937510020142106116761106539749390612433249784284414890618352838497649742618326408522853245243241342586577207282273006775466390948209157294051909677344001438593430157619556403562657814837821757042742300348850609653511735955878281138929389666470158049462634332025321075847620595870960228964853227432878609106456483470185491869209546745663581546200410392747224074122064194381644904458237521096926789756111558980042848651721023692189377945222757754679048735424542238474120455271959405232951833387209632681722860146214310532489380024414094327676973242147347033092048526703976341738280689293411167179860678030574180808627293937489855943769163574429622274346266058587635047228088386842776023573181590864097223857487375021728974307492919654719646863510885655485622784996061222268461503876005155063109330224771887884477586911945140361074096786618874963469003188959046980100772002000021271099085820883618990902638980226912968684972866157389732116980644823340225282069466964000286128592017000669086047920426233254708381581982487092347597595899253601258998881832164654019322567372387536377109516045634891600813333363248279569483808535738017497347213658789753621784609731693402167597384795966320839082999062488451704729080722590780042758558386852464098550793377603935879408566382015469645073952963763461564071327439265714315946337081056580052980956297938615571385644825328147338066741170133136241121475466094097877797588884350624467379567710819403613565443134923963059961353422523678643068596543275821926346770569165450471338001674734230286617127402182641314813892231167777822086397835932664684758774307945968200446466645164109120388503383676355800566505569466026526875967815265360082729818636775797841775272521627935663988823846696402373618700622160236118250327037212396623961276277072052169447281905653453170860707725593264092222863178029295126883999715760681554472217394261902333550821241756045623839243351741820747818521909005041223975881408975247754531927512222419191992439676075169511090458910774588177725329962207560520659851173697359228414359612562585134870871237711061613734984112763896192541257291727785753663077250630777488813737895766475082031452857447707803319196573816585410517251127905525705936545687131027704083492459301863225363302674148832702595108005462370818080096635724598694953589317765837722814270496056424690559844282616062441693833574357428287307939774424079647305309478406616764678544530602833578114725736511262048610554206093049637160409041163415747942080796135685488095095129046224263304514115969874206601964654173518561832969166898761596204057924782139561377998585545409669065597939708756969748190305220408994584863684836108870876153297475829618394826524601885193812251547703318664269063350120062890868102779186367256576706898890383179873551620973207702744915335279941049674068563260739035160707974429985095552707784438403653319056129320042576872952164504586444052096545510079836414227342961935113811475957615211631645566265838112365688178324690019147569506797341481551912400097223078188980094776222676931659375268804145323402233769682882807947261718491820100259253854162146844780557468038754684967618801992544795086695453374242534623584506442819166434297928762223717663249898586374646154858934180343031596797254133153832137068697506929394514744570388427651872559081146238401881124979732009015165303968379226321841705688093275887422111200388896257562495909601633704882026411817486523548969804778250654778028883878910925202534572698212259614472734515777853832511791321487167228757329983213466452394164454686185610981282042244028072247023838181436889610230290111919701966534109232111899274341536410036530290886332858803769665083505546120943979759062391338005716557850448974837015508673785251978309184540962774557382556635557610166939928168224251509306839990461758379477657398947663965228648962848370587303926602254756029431435337820883165356282815400131674119041354138100674276863149761206424388852847566540104671707916150041494876656076235876803906504909096648781664387546357130499988634535593538351639853706558170931843639251868853700484586939845370286256816882563360919968269136666274074862096350343736454538995285574671713573403826540388102032936749358027454092212130453047014502100229101139286287634373030041217971753348814003005543612180015299291182423398691458557567980241934561823435452888641463308175609718515670507584306531450837642264611775095013236032455059963746363762928281504996105639308830744757518848671450345015688684403293258165941120152762999755432808609377338104164789611855400080659747516900326193813623832211513835663284077076599811634757664061786526320705913890880405847157345843861559674572695949450753491673958982118085600698423888583970509039953477112988728188155033851400744050168114230172059226298188393191952011845788144411207035506718898109157241080927750954774202342931216313414317025818616138070748140355457086611592959207964673033044636089445166991826627600458828024751196797935352462063636722739395953722298842021022926800236861186034485306992504934000766717055341882414475021608106355419009940256076268715389284300741210268846474543194667020778973974849471324567175155852857941358747051437735004839091693964253398266612728217644377695375577938097540717383047791211260129318481009460578320505920147526636438992091479502620128131983085128650520786360630645824255966362323379305652390729530945830970695586653128037863209345119850422737609775081531124839191268981433253076915983423005280118180214193503204356009107818424728730256109383505959283460939281499346942153984216514899490039273467230919897975323973834955996416101202969853015682181306390778056555188353526103615129897672160034914940745448090434666938076855793628580565381480667296473550920559294758181912579649854570923713488286300038767255795332939183076440340196369469080100360222239956814131406418062845573852622290156816945491449392465878788683998819933100485903602375337572028513360275299464013074058694118784956504802877332832395898705478962903687175048257096953254919121041941755452133015856639051044157485922415355486034756631197195270902310240460732196603055968459469786612105003148957664816576783914975240921024667068411944992441490461244736102338357686560177134214762500919978628059095894638715485827863697966829665921275538784648016933527998159648725258299961675727773611456189858469363697444951269701742340257801678397379980244436472070735048644895206070879989003362112415052171177895456361872183547634982855766625331791195138117277068881509990007659065486146075155950655142741262623273139663833879010778090156406246388158093356505089471525493059906620657986584207980514317402736389390126594839603978486067162513466330157070546770994044953941416208200402217137999014346671555414540360440081733361025493710148999338622747102146877490050232995343051303457019456891809286136187495278160446872971062400606424950731901406166634959354393997199220885491222743238100610185372238900136483007934108533669159503347737536438818286403762414466040939963799815504986585768677969577140409274976681517083433188010412289785947035054232562654067171732712124931552772807456737352214043912633463336481108587419275620386403001885886902832454825241700749490674234417344612157883183553892819903278914013978694763157417029578164159291382674811797510923577494309930971586211483877736129852487696973003956525267256398697195030809118986929439953758635020623616785130298065485355250867100997696287675349391149224941518256520354706705780275961792835143268250395680273092091543423085410809198271067492490753760704962736541228049603440776890961985684528908562074900921796435675578561096634502591986706925284767130342098685389719530127128272670359675163131827694211781370453467417860926258526264056335509243860309659622541134616703233587502712899649925837845302090661166803823635333039816553178304777907840149430411810460551376788109907920842720565628862831541527554536226114674411716652106429709167807579532165992475210353473931561825787741147424428535968143240201502383593127678888530139105496356125328760255653139645697568420769264608013171241768409808826437746005044177555476243379160654702713197338242344619620737450171818948143430031559288998162127887171903305321568680660025895040397673207106795854126972343087968508331559214393669479272625141282238432273278628066498816074603015130492612964916772875040334687533923113720393809000567174844315589470361281587804099674667531558063757743843959526435679693554603740618980220288373871069356120091099549791903782159162507165691118181209329101985526232297355433339704617060765105980248234230486447985178809320058421219279969906225566637433955010232446190770670187711292972844888886179392843988653582344647816418030133900101299037421903487168211909729553276852717194281521970260830965736103233411881471522293193433329293761485414223992764514020813321580077572271294424873929979536402368602970885844254274202062126972197638954964517581804974771359962053764108674798926140560938212136165575822218293563022932732845490332923444082716572706113046995816815616336608828603283418299478937740582913636937448747027470731627765025120356536785420830887551480931281721663592169840523755208784546493257091534617856922023219466525756929407877602669662898929507458974212121663859039756479221070386955437713464874438491414513244275793096449746322060469984407260115208859949090918448276593321710718711620843548775541369218586762935888630788476484446217472705706338908128403624424584624753271963593094511374967993207889450099973656989129361953404274574109752705102655634700628216077895350362050062907067710200653421109793167063389068946754814390719276044074171251677005056134628147896675149501122749945788493033050278118599761785938093668012260296542279806803791911855961201564337334781643980089962184292293230560970910137983123203321793636713238215852350999591842553401540000563873140240819193950683838054835757678507291993586309987705184211540635315174673209148300684472979075387676395732865957055029127423481396219532115980121942672668503490702300227181701957305939618341383836780577569302766871982640699202447014296721208254207000109336754872707452821536176769744952983348363222348537488439748379146031406191405289866984446294340833987398415325915267245738007771962817088508116656078960563873841463442340539864333126704375923779970499358275695012027739114380267472081850128643166970462673545645013847827001500631582837091424446271221119008083595903710302489064108147478063281471372092112926199868377615058801945417919544951369928321236751278572334808096274058327026754370644936346337199614625960575383145108027364331023623276656468463763082126813817796418699469406776041153518868020239792212211253168988545274066224774188391959964987123400805186349888161832948052788904603423013778311776428430485976509822091685728329254288900732086388489060588124310161092866085286551972591145370177648523707495396293240286551725603358825032855403612126012148767527040476890072076789893815618658549182350965484823978043028990090691946152634190088201594797923864665418372713461076928519703685329711201487509282899288614956057298927075980037473867573334246482952658447607527635268303643555802805188659263589154866420364505130582039424722364299515660123442327246458999312446233142327621862343178084571037233751736139098293256036320987977271958223381373709682615789402305777385548412414939231785839466431816132902794131283352377430682398429727075598222511506671687197157667783298688029208414502458231240173370431652656744705127428096042309487728003157756671873950612871543103255709539572546414250428825857878598608788559034917988352412444615440983496040065941972645612853422962726285438421684415980293658539462469270936800024933556277275863279951018108558112538184554479568083004835139913991027759630169878763691438975409043922052906626616945016132325212020768407867246580907445504789696692303767476645239641977782209338358984870906190943135605494009698015307334781914861125172125289794937564155087479800824390682653063695089492299901674760716728315829147636605578584300998053680716142414170760193858063695691940565464733972605212419646324307410221815651692632897973194499437254253243195563769590814607416754207678478355075678426730084795206279920703958353415354328370909035056938183623424557927206305557333897349843672525655249516127785051396076275376800417459113149463847797610554028243657163581001290272818708861631363226155622574387618308553516030731369417919067448869766858005580181584375670292206929403318462506061658186622899824000487896692346139741394785155604255015518429540945635087300691990916053079346177886446331146716620457525571345771094243038951328489936227241955246666599982752287704054373049412200368766539484724617286677362482606461974284661582239904435550195809902984206966743589385584266666070669401626868923990559588876449755080722324067054330394975674058245707754663783132180123195392360117683079340323633576243873988410104161600007950298476791043183246444428732565305623322496749203687341594663388640329481205322568329444525864176141124559422478177840314861262696573193545624876198841162227696462740560553782639360612882324704935402363562016016945606707341187055782983935467609570096623307522939875676387395981381578771669992543996405360398158903720757656278714000748614598826699804133220417856507087442908497640309161582920521313044565360268734671234480655729713512520541428162201459195803933699468068615506136908387370251521812018060983747538002527338633796879955135809077206225215904584228728341064055759349507802062646097938612473279014064507676758652660842539769100339482338459327915608641127249037221345799274662978103882945091846928750564618994891047922436174531817795047041331363839458656078253017431674364712489817915154286139635895623329548363143919093311825722512648567592536907540352284272787667317846539107311365468871537124740328065254940205942119668739229027382284472987440683832005335955039246737850811287052974591445516276615426874094793126315457628638812370112584473768509792470364196668399978846041150737923592300843049142145423110260647725807261447202360808169409026699963090287980093662848732936367237912240388633085592787861531317295013918784483563105837107356639108325452842622120272419039333083809288775816446977535842263641252964764172118690099962896035443337986066575114486146562148173325246208072914084367951917638973049746205881050791619793998169390823082185284565173551341050793628215680567617760097081080195988279924622673287460261367350828188949379325863450934610213623010632379115326522887737031075006236314840007669648547488876056628386673094806008810731152057927668781430617638892524983078977064787256359032185673063571851199807955592478508723062654175865313811029474702865013139363678444045673887212507249606629396338083351208148055771627307796119123352275587005411618596181710752814324648532175893981639621521794261738907335581898506139176758145962653728059931008895872084653983001607235724213551844621126770177556201612522741940349529113637193353355945463351538134705349014555211833895642653747186438204140566154144387052004086623475021832021348737183730316836215007696033648532839465121160082276947826187570256170694816264217352064208137341403126382096241390815055308305740483705087841771334563381231935892157115275719286681588837698340346212363502876828444232384957543108731264124000624271686144010924079607645912492937202467835826504766780316645217435653955131539244575843113305165233183463559097747419383036135269027362694625880144745812037003219871576473587022681417426118210865969623249977182122219149070294400767147349369661702932748804728097182520546795707313955205418276763291334021139904624588047535994547135038910289738677377621720068124918498333026098782581839915825907015716870223910778703320568904003607659206347359554001138338434117840733298595316581367312983013018183426902533703128551541474969065953549116992719107416382626908961414829323333878681527433635827329028360764988017373260324614411769732242568892972212876580258016312057945103146992043513377545806598966007720059420524738462615957515761175427700046773067909972162199102738881653748896727112401494227420981776800978557894589282306466453396372020269316060955221634103902681103978413762157501944925489006538251644981944790883771850294278339641714109105162469620018756672417338644218463479668786332745557751906360972926599230601867293575391524779887858364094254749451711945674924958135706043768598307785858141661098634386243766057920747343301142717883707383813111463944717028496661212974122054455970906824298938658135639443777767336977929456796763511133189537229602209445266165552068217907240371542055562106910499418136320543484039766586785300298736177644926691616307771784642676094378428161705581879335149158116218337356462509265013680159360982369280563878887290002987685455677712835639807995558742747782257733956743100151769075073621652719213929825664295608555361952279896133739018749278264191428439271117599857715742968249045114750869886069262714210199843983637051294978918360605194637804761057692341632181600115529627204271485603276131690391313980542640372075486334507124260316781744352600687144104542151390154009413781044858965761528615011932918251431756820685967444972968483069948828259319810494878751540923205234541973361483073537622794007741511684836074019362986923368272239432376714811472792122669617736130184707281180564526066194576770913554360990253786689439936587775416456665805824542453482743433018155300905580276739771442051406770161526185304728237545664812063613023098580642092050277153875117612236333883368740263084747585940612705377435387770367877577999134192403544340631074425450387812749168694453068407552912362731981960647869579846345696587491887515015084758449275568763340456850989683933924355872188910477870098950346142463250991940984376729347189003036742765287091850424179776663604393523154956753487891782825720475894793562614819873434815030734017931293661958752254732857541164622002705338538249737568498944454689149513622267533339396682794157138406330509810247572926161958152250987005304840692063924702599424611641182665373822259763033521117621837175315772112717190719307305222069839650322500309251363998998495699577067365825971281248945530473606714818883062129770684935234595573335695504382598177240001076264991432982196082478050692492388962387416623683744706264885916164516197557406903894193589867674732287622776922876031340002760063481502380067991164642786641218076438584364366302319113947855218712414503927441806229147406805965438664530620349064421287754644460905215991744351448258416971231090083061944878197589114128275597632722801955691332992576847501032011389102091548795620854393056824548627987694084811737634964333952305057054380179592637510173850993074856168624576344238488628198232205694309415076586597398049197919036099246520404839628748909883603314900351107692143601049896396750448947407405667852424188116194398171572434817457500725555035507186830884034292672435670746581911153606554798876996784412438295917480910514655831589788948202759363250942861308061635027254218799533705486914227376804668605092449508003239896943030035783208321260306651806215540382165064097320659587116979240404136892602108890574706501173403713763546262046137335018345233800548336146483169600072305647989721241613019183023666409834031209476807001577854073046458355182602471940650340701470896822270145317127730001972430656230997379118239113793881064028388824506875164768132598509571029923638866719524775263236564613171473408798417166156950200928042938637871196251370078185380216072528846662974879977959236737876084912485155216694320722552911030703730329014725913881892429679293592858256212511318561276709300943331828401870190649989226409023733905009875743636847791641967744792469587914326969944348712350498208364809964001792518831047459694790491986529932328975118607959249304576362542849847413221361800656236965969066777325892080901726038195086084558151774360172455768897220170445052773885684239108123286887936415402292315065110336869415076938796477784872925066982967372810247535357066687139727240877110326149978540760337958145319936757373159985101773491755362446879367082079049900593019694180489810031635726250096039268294320472617255132194074202967373831591961271602452861360821670657172766966519255895902443616969601653647470430922407240176154479187374642127221905292838877699645056902505287531722318467471299320926168118834160473911646836642227391493214121634353099619168825631272122972732640872184154912003186686986546661159919458205291598341806792106977229601462894777199224032823549198203447648676261190711342165231828601105009196836764711311516129447423585443821938066334483866846953142013860847618029600306168653797783592409325367773505685314290643053718386454973612133414711599160916285659897782889651682131578180797621513260979436983505823782219886964641630011143119112997839699037849391987790602632047031785495634213852323710717285465590080172024012205542928229173488061738434283263858387192879959738850938895929593652053107474094009356588456063093757510193197385269412082135351947696596030299908049664009449546099181674604699937704496485451176013599704890385791237692603162894944148888478328698867006793075733039368555185411452679678462783753306513533477207576266556019920929283794588976172458960557575206619915936629105394172359797089454222457422767050105962742808850045889680266848617012635398220185937845858470729004508555991639763488978464887366400719740624666186031964822592028577789823946572056348507538566790109961232551575340053255099136573607303578095925447422572318914884501764750195049470233500207250674432324219417397235095386906099541320087231257460408694625165312438777298317638559926018823760800984742048203172934007481060909751126505534400379215758614371177222521853476745506100435828438361044701604842270991986238656375539620470694175378217168953341648369479322076396423237523653851492675856224238828819242710342603648618463383990383981308968670094953374413305480464010202922269919782518764572073987733851185852825396539048254698004887974098781549028611816338058572400131610317399223504719884814636385791657709965067841500194516594110690516119906605042273000101601828640518939349198726740889190967281770999627042372306099796731975199121110380712737214783840774649677686475039739865689213478573744449694604708079537073080961071912367998287100300371581295993088459380630097122270483611636217771706531981246829884690320495389485608671653125923872946161797294342972808573228479311102214852544238915268373264851486192519630201276795455972415945006702316942934961051427049420549665976882544803708664891352889556423086474586680895150172792476568336416663368978978718273740908930147619624216423625782171225411255136567427465999711579835607421396681380672753270111868064282973163489728480349245278184941789610332578864313204682056486900729970869199956878150751958931894033887521245053810249066011437280611761890808944683882206264125129452762481813581444133070911216733033549102857185852946963326519436303703412348571553823425512776188625764119065482380327453371001284699348423120825421311683609284965775795820681260346304379490300274573119389771726697113709349160741403470474977653412382581644222377504534287096508630765102433924712060626521460212721308796997730184427243391017721946353805717846411989909413580496033907609256194962305797783080614418247799396071743119153400479193049154764760895372187756086757404299631319049937675517916466660189363254437460431714602515660136549244129622078863951162849299349703681726113141037413466030490481002458585730336351793217232894047391040136168640815578702748087722112073986242606582977768525609392136251191717714996158529608786676518167689417507364416675112715092797928124728537460566450568306701830224446117427837246133947576201597207472323116586576634428869289466010979230278831696251034278148451684626734076364821828434003758452979947788983323155740514082304528684618228599768343786614588399618194261421143096006682566914868511422249079041261407864950610825562180449786576407150250635708004310104482031967383430681901214418509989042401536026820919209703051437286527035577463372016564884783395178141890456337223238912147330113414603293381144885340137300034356496320266794056037832004035133805638654363358945568384611621795351041084351848936413889092598171285207598587165304447014880265646807944510901475864966027605876590022768927448618223449523200327409488790144333130021425083912888315940576602141928894331081170635680810154892518124680500384497071058896228529119915114259823892180572177497660552677492811125206926873593712883932383881964100143623558807493428707120326066171187615564069326746371445454928367719561571015937784522034062439922732211810164269632844558896005835487288498585771183055952261374428145146355277004503879307495487122722434583253203123292820504109722471896447344990895210914250443505185225171016991157799030855303735972615148922222920102289793854749626870950531027836434217240893033484770178098835367855564752581545191478001658305043308771191124875659152208277253923662958936034195250889524029123817400815296181328197233446551199109633991649591176327345819738633600507921709079746920255454416044283323551917954119915994095546121604357644076298060772944160702941245537214096852483698661477936698913705725957180436389589578413490197568633991067281337338820574324637282564209742285153838051353388446076909968994338932425500033840949591011041266444775213328773807934636425551474548787593730616165241630782643506812972515970288937665853475662896001934421020210203951988466532665713121143303653617350907421369758245478969313693786913993451016732249892064811708425989235805467297618660579919384153932882831983263598143784324384379389363606195817692202085027414363009969755237864501857175081031591264260416591089514136297364414888718777411301408809172703540323338415940510205158287612761234160223369813650639568156418951892866186898777397025459917712997398774704585506415388822183076977041405051778537932377918491138647558147644053488125614997667564165715031268705757841844557411765171856640539563026539765741413755111595196820934971933470706598123020688130038978100741597172429903519406032825449513311764053557975653000910319431377096914100495990015807630427019730836656310920577901403867691568619713213047721955355155834297662577047445447906394003426942676033245684947530460486519038609911309344969306665531401642115135647475748814422754917779625819444434426233655193746463124594182307684722505894599498638287822816809121093765292636734572242648793947144476299192061335337740469365312083323302487265275059522975606540680414785976123600165289815509887467582783290721703006170852173974074770435419751637413223733333943937790786932438238526117774155874614086247734418459458340192406786381075108657833738523460350101731233011899975655114067837317020798779325757615005647093494022094480822976197308407368600395436926765014914310610427991497574719577585805681051729666496100943693690792935838765503180171226376493265647345850039605218647091572086018187999543100309025221981416575066582881104510627001547514162194983625207781975570127734381030247755376497567730025179119999742392778445366533991991741311201294190557442993480168224211764134037866260106088481758528629840322994647253619157459582557395973567689652598539617619450910692355346960526647824622885661356405596287920384586219228708363491457574159837440497361111346841946416702743604151083653414889271664517992850533760407800891041089295378720815634618334614664498796758016565148514380809568747423782407819570026045469407258771474458075538852595341431326005960052335848354846812222978478363018236956822523665024131524380859346494901849904332243227431432273885312051421273360091079253306353565196857352705942073960798309299070166339478554655952657786901443871844355693708232623648852310648824646129418050320003961706166583499120883858499862980434055225146703764638811939516529444526021562291458194333301873905809668360344703218668552647776128472925026727461534947348999652993675051217197157256289423835383125684627139685934791823958869134743589162061825082046597489511375826889646313167352633034815215896876931649022764372636591742964995421981916461312512370419062445263372552934409505738296988815539704527992507323441876142688939847838310246441138463589572509691772393446370456842702306863016017456985193554276582428054234220164477148383025015202455718389671210542590910131421993130750053434666194194538922339082853777229415188857605339125442436654075633520893312068957652482717393724830616212964277544915919606792170643581567258522154459172273215406669196206586211786462399497975815179472296819704924488586923187912742411770859155342785761784560996160732404798441430632329780428450468634022902889084978737771073783422111675899907994713802647791171757458197757088469474176538889740069612611927499321042995477308446627817223879906788904708925505106641322428983713507399674680911869439577555409006554196345456456160308326704423443583702065365760574688633986400687059817059583183983622533272571486132176639809050734633515437091209542388583062627626267353773070721967924576955407561100041879091358236787556268509155444177025606861450743115048676309055083876518969598830596175617281323071948925817669631209760561653806969504264313191681072667471323680240465333263610458147945001435702207051203741007615990726758633671084804673988010567095760037900817616818350322894828133789063871002153509071327420550069206670634462375680980679949622752022114108088831684521709950093675959623589997049449178714983595115647101631220354077528725066936418386222590126457856826931047220616270592418109858196566152360803135566962339206830832861418522596801031151902678912184599709237202150385032785865626398368743384521076987158804124854022081880531820813058009542377934623810485411594699351527344280238671901234208445415885041853300341277317613811823846456820784236309795415697566728338600179145150848347573060126626336654128493851186419061724121875643167145966774094887200835270287378671695779939035979639607334260712612821072748427370787355603527974951742046452085432846861379905955477163421180442432700741128720195184766807787601116787792078798091268984002732092674632859514088953924702758550150123886543800790808142117708420242869484130404262437773217105023658776840655259752404256504116106960548163351928039116781252870757668464267716159942211256417703308156153034397918597373372035172683567890669309920606108585714551081102477270785827756319732091970642795394923650617461751144889072883692944907743879332831900138062846055688435431581727238130014891213376442109021835419631088443346084598545827590700811828883050365125715727226530428205906700438479860709545219797729819284692509989900627786498746011595365482499607903003837134722964138922760230479436634606841782545724481906391481208123401221080479855391854045137049643394569026268686373326763282306704666296500687367218537184142742126994880139867900771530964066050636137345792605192494841747874028340053849381097878438951065590495559596838566387728208252433348945992885453811500396337752178921133334417688270018121128349497066261262561234052534665376851837907377329905591031994068220118127437007486314924046694462317578231568342906108366731743054226822051937218585254584235956465128901087396370847713629371050926574180243362032155209204548657504114137721929631696559652961171732721011416479972357674861503823755719245192752274375626816275416771320197920261684296460948876800678335725228823940423041827043976281299461896346862562421519901215935040299759906433197118317040482691071424651332273289688700650292329875613456247628392597172356965728677516651233335433703987082860899857994778095532364755678024804943145184894823209582118994921589417520083126830419335163708020299464586307687179729157501992641787624962556687709580151785419081036565481515521618939141709165406566928464905504598581752191486044852739970946486083870295919142036018361110450629066876177171157273552022751164424958961654170173393464684098490506746368833589601709360407117767531468853246942809050440419251194376930977483470967298481423844515724666393553311604502497757557800259580972719947203669776813368654722640068192835789779639923147053058185450369363882756229019783690185545360794170195131063982419454191726759832872141154175661407622116561924415031729094526346926477199413330834181985601194628859943105627607277390508056872830358174089700157208127119826953621935639745120612418508753956682824808383236489952215021431783805423010417076749407816401584159474120468061534995521029435731592128557651403992211390377969244337445151214873277029962383646640220746387642899574981914450485405657253265571262224170362030105112949923987431774033878631845650647633622545251976088578115999701343730088876644004689463895219399497954000960906127135843798299500045727591205662860452171962788183707800120413417650817714291753082102054907118604084467164080296631694836766188519784842334260468716158659928990582491858896634409775948350623024355917928174086591261296389381372055038551853709877782580630414909218856153037885422097963562404681184455432798486450975550811091216424152714550896541943636689410856536136656832639778601529920853154719399196549356440499661587555902886926147311181356665574950323599706836418713882018805379626381836937644362678577126246089778183078373021287458906792516716041633887477661528406217299199441209345592729754217700285802688243570359160321508991855599237880091300850937946050651330433415811820719466359653211620587756376719296175164185831985109573475236481409100875693096905862433768874673312008507664364741063849320048339190729823650153536981461148251493523442402143218782888132809557405174793573419929381767790499441467580991335339445077183937891036871202529039097754275232534432069346581231070737852909100731578715582179623128377661167603803014492968617680358729830041946860481656953422908190685058613995401676012854001682342249855732138515100873650803373680291118017504432564394136548238867766410755718254309601129120803876968732447864257258517962442349559881007768456294375346660931021283268459798426189194273295448711499157415769420107584623653901450107108740201703982818060472638989074071806607268930272924268620299932486920964831682639327157018581714930954567969506237111383897603923863552351072732753810954656204095099002361769943080211587868216078911156879961369155664450240073177665720728608878393633820753878126909940330643954658257281387665374841729138316593862910283018408749162581797910851011705830948089235202941770145542369064099564581917991388282457813689960515036204518834184400199396749387857859230443623650330771941841994429551902050976092568523770382923999593298852770783200907821679425184214100378943956623519717880913033717981166475309116380313544085647876393113499768231291986631469153658310727872294159625832056183323949366197048850916756543720526329232588915137739592277386922263094155180753576895554144713555633689729466154688499432305437881347807942594814258977264053338955768544998435488468226915860358623469456796944524927731192450990664406798192370564868671441098510243540534033265492497767998336413495128382841116204023125455833336037647027084763628370787464878276607041680615623875462970946033652920227739491417569082233300248271315498666496085799815426922963101779022299187565230643671872312429951249233038039114549332520780992300800081713040872980836384124014787931196238901699215082272218114854014742307720300913052285856194438286005134287250808420411947818967734874069371394109091440045754290014432439253042584233170328039246502447636010622881415980182314738335631561897400077224439736571209466986747090546643226912364360578747544396889715133039695022578256418599623258084295944704214787697860887193036292598501732861464167331792897544738273242151253937117742946098543210516660342973308418495872256364227883521374508278006104758806430978824045911834906322544394096727542335040692091490182330622270894882899655500620591571384512959278133935154043429624327858675509290885016974055232410374925619171231904445557635776792341732783190037547222196261336310287600072363216065118576287542554544746889534803600488109894634075266297030577233333114708045542220604571317539302611201728296975876290826804528667160932364447773568193946763014275355708983299179495405202133252466938963247077658400328901349709473952625520260907697361524983973142856727931596638383992925832302841499910031163756349666650871837976836584233002002192056671493767650996188502396900238550370264811472782047472380148041615105319655425494392486405668116323795577718055481547284798122967845263996452846813764615459223856348235124589328242082395120271068345297191501232252953992786659350423841646757592614307854232103118682154405646926937462042101327049280688388617455852857099002991780074416024780150704178015883623574909568165185924092866760862607347732538105153153299565193159662640692659850881698961927626167424719103726029728935727316047201548282022575126347402398105622141644362726292693468517311186834387701494831903707531209474551830215295480237484817966549920892672222081561489718933986556173863591281714313082275759841937247389825404553681875450840027423288127273621651076689357217393352841990186171580471733835781125221646756660684954027266692878591911660218143097494720754984263270923742388228349529807072418283960943439200336961787872174087680168149167368449879771339754178500079776415948552544947723290303110017465373991979670672218504114475647069087498527305170077487862500975326655878177692496042476583168857947835324078518969549740733103237189481892366708860741602633834590826496883169407980689762250363269100746490386448733312861247913331631822220529139493365474521061918163831224656493799382805541361379215093569351043448446743432924643726140481011308237495418988564776053586246004450911679121372245874770687955536055336430213642641443033671296076052878152156960668876097089042982099667292474987976003057074884901471326155506445353712944713195124757670790142750856731813646881154092613140134957987364212789300360590847310488225933584138698883684972576402585661914184029016029473613497072033176399718212253888483138564403309492080875367921876257528631796290244557147031938296698907604467438645137106660958194261260076937403092434339505668827616581480724542831787979432566632543379846882581980504780563705585782759777887979388350292094359099015305801217968907548551633081286805939809171611931054936119402709819463505913568697264971504826182332814961640701974574241812918578473613153549705343186789102819811646103115358191942089881822092911993312721771496800526939136247354906318269439842972370605209091026029848960864176904551116226287908065527355442400797041948764770248270884261054478723131878347236112663479738234455909646567638454889150668535516997265644608531088669484893491580615444769453565753032234076664918273384681109935715735601314440362489664527289960341444701276865569322940275098644244832152417410859664358378254995080329915899783058743862153749080442360768968047520301327427528147869317332782758763226540952170712218140924294689670257118500801600259217203822496843760845254396096566585242659471092580169296125471399381339268347994468184525321270468620942411205848357734425270142377136017067262605592677870269074929072821144790570057163302158423674373898645249200721500118836354554953091574132569041673464028875758877272241170956729040903779274463494785757829495327167799954644107166220193722721631456066077582706599288305986489900250348109860813099155838571702571586169404068571880138903576888646576155841321542790294503777801500794363577651513175747423726829899229769180385099346854801515054867687181983632338333573128104766118189008539608877622147528780566981923593047960408900308609903748442311244250242411710968266838300717097932137350643713184502202187679880501290884861726397654256717996198043948563424220350496177274023952236702539845409027121789211170952923009152721905144987298896155728543168050011845263766367394805309793308817715843633890846973306236517735174769944165487660489149792003590348162828233012131007173583030749707901850513547613486536228687721130719533434863929041508542597571257602468821380223427940936284329948389634183821191754157646902765685662203657943192659180387132993457918968660064498882276337606678591769088759122367537290774084398838039490777746853591063680794467134296480892714526359230583305769917503672173528350204653326250769111678069354389833172514478702789679613155716338908845873852600354890186899859032905301256579673770427011897265429577546023496454321815087435286833496898852054538039194843349045219436952807214324058788359285746146076596431482470523206158941348902378284554218017534392174836634370148691707853525095951171335553789013065651569240823221774799959063633801668263304454332926960762417418865139336995101228739276566751234054885660523155555407483417413259593047710798332790049528099835738495414004998867875883133025696051783809739776359999818311201124187295381425001884628934970073439555266174685891893586838778610507389275095588348610143948799610902555577550502623076613554584941837128145804872566866982904307146123267757873406900264933167250697390016051038516072130971807291225190886621867471691145910668800121369883814266063846799194554855657174488287667933276782914945113195941583396705038093440272462194422331332646222645637186164974332715245433318174238416558199436522244284673004883866574304812767206321739049468024241526706495586485717686586518883708910936045961374276592802291629518680920210385154551287324284172853534261191181155232192819937846667513659603932514353117033258323508336508838529192608348844735787630291990361012964002396470746943403733621984421779206659711031936187713327788227428878470400226905322859571669353404738788096083446261318635992829767176367074379608593676214773420937458142277418977927808607986066656733035593993803770680830801375482356962092462250801323297936626247538657213181004476898037968080160370201455860817049809845845951280552030030788120431867627410709398789848326460823996916085821134329687347512663838729712463340557726449581429163120301408290044317747359754239090078541570602679831756164943360741289698798891647859968401040631086940110931287097185592167288618383235899583084691276965093948501859758723059955228936295585931396629302563400003869012627455944602796338094589035733657924709089910441495965506400486309401903890471128926811209544189478079890964007255103019059749534340635845926745584415978104472985768661491821911124355899330433203514219103244036956667821882071489850551159992530264579534302481464146239887241993163009749646387660651548404685672044439052878477620391953954024827310509049711436267415810345563038144581085259005725967305542654310076163393354956286833241837088544417003972028657952248623519444176300904734632842586382693841505889632466749758713992380022302759635607709188725431664771736233059629943271891667601873420677863239636611165689832519779200426132877953809411999939630930777178534430232701910300385733848090669778667056825687879323279234493632143648588181730520588867462988110361830463683109090442528854289462460892567812729587000276502586387779684522348699243426588263309263011080044158607039216738839572964337533386662132499994875553015799005636041370213390013008218708193083331848223159242008990044371665747764009926177128653508023098707927366634921079565864828062573767268132160164680783918953361121949282158823931931010173347775180671850148845234009806156941944434796184604105195257946353744251202830075318524700039954613240103637411231284193827526459353974855856046843618374255257126558435851680799861338717720215354408807421183648671749663049071287499119186074391554492914601730856548872685582604730234152335587420763580948347972577330751065380869603107444265263802575117590573423256212993846055864210486445108746827411718846890705436207270938742425490273107551279644282033872397664770211957452456988232804128396669820276859775175021304709111423014845009062399536876111464892825790314927679020988208916308045468915900785230172241824345232528942098557452968043214758376726428923232846702104304967715233561277721943573416212305012756214223924741039760472493342471440338586026937167401701710749116934323966571480202931485804751452780970329971324396006511315728384865571858652577758580032837994035806075756793176137426736193701007412689655260841509535105741958118396641736605154141208685200045352702908854035132329715851348108222104283400760097213813586905928018617875560291675689542717527142908406019908849864053513443709367202826847989725258743072240296016470930190028833501510710561739228024217248535279100458943555650442649553459957860560116105291021205633342782848646437769531723445645075911132818617905962855629727053201374108494354099675978639842779252998207802943511003111255389978632113176202248030898493121042443077083445786848240621968814722574676997170027168846612419119245835248429216829721744792682669504831361219601618425406059071478001500824838417989108944659092635518675467614753048387906881402558334466706503805980051909417801685966097639134204945432849346252927754128463021626791838815399723783386498831016668893322273923503706728432233848625870375117189054980234640468192452250494937077215634817396795606974171590257852136945952351379520981490105131726866589379790887649192689175140716153208635350350725837481083506163205304192622854738479655743275942299104931179102353211562442258687307475786436335809099344838571871584973764903437390660648623752769279117290053114219078089853842461907777454289405100951743917826582759871242252015003750896295493583450299079915798761834007272561679781514187701964189026020702836661316052335927416215958405231679578411544668556766224461578726611413076613070134432577528296746244648450090095719841309492538263428773917849393563634103552355430825651231124892388205120149413078085746917107688647588656920951415445717401622625316649531276116809746407684459405576929435337064296385382536785267325960373435652353731071882459983388229569310659669177073923495800255423185479141313207730354817438503594265224365204995715445132193115435280764960557827314387865425956938165938034167084630892271692077718685175430618059412993944951492323694610111479959052628196558235916213270598467931222540565241224229124258278870637105633580970317966677812309246387035280655660301842882580498360845107172182906658147269887084089317369810611045976532801886264419193007941809909124787612315591665169231483997882430765823871568036590218499505668798054003655539686204283353097381598079066770551669655449128472549430218499967764839837786749505692490372727184411949599927068268022100772402703178666942044604742151660158596303790745011866157567985770670781240130835133479181835108867268740179895497806545203121215233754301420061649931178054593613259392821171431068230582637546076822199349785688120362477787130093231108129725912022417140490182994564679470699097587046694429344000027400951514264658947697238395150484355673332191811748308927853461968571135620284098436462640631168076970369934433485724324677169382702179635806538229415171673351285854018665338922638956534608493961901295566033687436939682328674274438359581078615754220480457676540124717732918947929076895475777852120259748405349172089944587648065825924854257818856945610918593505064581016277725708732190819061862601982876699973878401297286101059670063751787800000356930314632911194039709323990700275675064063415826410842404711940606450726487604941464647371270411152477914990161831007438108412576365629798689917561001226280192360975399162510600707573227674541931971155390464279063767144055334785040255379726903558964761707558646800395515171879668066999143877002548607690344042705995576621136971077917277498225467310912549784782764453100648979536979095316608215774043130074886837125597237229073721365491995173151029960729980254063932848307403481899422711443329961099939440025068237556470010083181770172490455963911133507530469812394704649170726973554305464214830607421724679804165465812764166665882020534589165352434099419185990350172409365927017048762890762252510953386561200728649953214126567083170892114458005625658592533296489088656517760169638528169143319190248727340843882845204646643682883212174507015120124034444435102892881579268602368521609972840423412300868987630092860338489430273642095777506755185545370544507993566267362049649791526571707965066439393460871619550152195061989640863269042013261950718495507238472635349691603059675226017749302947942735029656468721328558577643505969465857149410438149588540666673927206060360444317531933151618202945878845765790537790667471994807953459895371874736429913913104765900928383842565981135310973291660656805793108788304035721075762628032630257075512291664061498109721486825734002299555989405301441823712651209957323170909843499718946003000663647430208318042952891340377536136315489834068329770803658826785850301087762118826360543703532479367834100831935562798047241564057984037833919285314731135709727781034673216379627615727698141900038139394617869378584520163227715703011361217932580974854511828770441885355164825213689489959467140465005595101249278558210836279266664011121378621173422191852878332271729065658951997672223277759653942137159648685583724322774353743897605001991445732413840129270227409258243057363735057857862084916762114258839928188916703847521179568614114400428749803215607036230382159678270328741746579700619343950741595168209399809921194288010185900416059171057208258423511620579953764962920048663533699725122709548910859719781556366243261732984460532360394035917254205088422100580763451210860399001307815131585302894439727795457320862797250408884743342805085979097473556225744147404897645500637713168699005516963507816249154107993304783890590385699052839174387812468761766629700534553456444676122078238435033661645017785146843547973397185877129500158270858639295053652674139815592533502382542325030658618774299276150606354862489186958128808650668453122948401704221072320242327072128761887614165445523226306116379910933799561771956580646963619318736086589883316097009669450758772787600106436712012300558810236099973410283248218713297797016303449404924610664648908280083423824883337142721570045166127893377015005309267252423070882950789864215115811603074033727129399592194158890892106545939797896572187048832677510255594731579811894418398765377574270909669750317515813998681136372112584372799588523339580793671654486584852394700897085263040373569553645953705283726848426144294533050559905050741048853135750569302514104209691940625400029735931391335284356496463480744171919520245068734698037280081144718021307387182282729367788962987775257459754442209649004298189292551523552233419730351961733185125857350031555410417686185605330802888411038846345870378599298305401805490296358883876141214522151249730585620528740374365507229931590531992459321972392495991790674818910777055646232753343665365739177862255089629823246697994047012482001600541118325750099931467259501352569265480942233891460859819739326113533432966133290096100001000471021249424472128047412398045961725575625183367258215949476722222370933566707332732296881643709844524445937775497067349214049186203431225819698948060166077474760808691674489353880686817094192472859312869599203033274520259150883018076293426602327512382325608417656456281737424906070339482692216283278920259184230958032694096769152393367005548196417863195616117541453683832839624202076214705393544866683192373910747185417107718632899968842814928479509580340323206130882610675451444215507443167015551794608240018937951694178661015806914544112255686048775333528055881060952244682559994825445060799967456698836706630727616116714151313996343721092574408687875634156871542603504936516836890258649826307947707616800257897358010840284598061325680057256916308460060986717055434334233104089175869222312977042409254477028754160451875459129103905427104239383106360964822272622650309605610297795560279145923104435230744240547275318600384593596691975562176313855452474961251132989133031933246781640425019905083596634651747991794366699468397107473698539569258301883577410881681867525506649538665035261048771270449695908744600254183688319193589280406624488871467128482121422998561914889351246310242376400881430095011137020212948432923133687460778377483708126718197964940799733694672544422923315857703151478213118898904098920529904443796223030546373864059521381785390006075585486838760588261653249419741324480376351534399109010257054686523846863329862162002247925977887606320355159040829413605902465893726019919472452656416381443775661603184980021941707435118125605772703917827107004004694237256449884946515871542717324445820066874140481422981270673698793341360059020425162376531771469565181358089359781052355672572392018008946127207475065969927256157076924524662354992699287902150783749460768598066795422485637651589973826819664064582650422077308284172818706335225017685079345107813933497068051265968852802886352035770098242741761779871595568503641343997949782685808949035260144559726606963044053843883464105212960053612310507573704278504278701515387343559781162344253241457520613816747875218921280829998225931786489315005586308372208168941100149117084614896593825029708780384406342964006004454879313035870525427161720767829688580496374934385341188859402243360987481370246605843145192025413647546166165418969710022850272346541124716789283145024911651433852453795891703795943598577509648335060675691957622338472150853507487557711074869184669762974228217179721722055403700790875256368082477391882580410110489942554225180516084462701879737506648303062541540280073972436680263132372819506036511148011251029047397061701101291084131672074619815534011211780064743992195404154344667474915669644084825997338896954438135254047826179843794588508890472849312581084621847109309660290193251496772504663639703749240322249043787528933248133430340079959461992270814746211760400136888649168796856242518624218268670613786272261144864729616878209540179602095296249388063377114062265677665177877657279999288502618248952132902225016054757598718292222671241381340200688388280409974590185655727129205963930290481347582210509525518132288881896070166993847925206683591740307643350733547278153088101245449752996196120657844353056062347691811523989113458116179925536946639475426003582989598703140065580104018252667828330428356217130628175270444680328080805838233021445804034448829409865359110978986245603584509886786831247836893626490625827948718746976142097122477424361520799005195809656498592518096802940124698004573838573908817967286201665485384423549784026221082328520792333618031352411351722797025328698590997748933188535987915774044422947575798092977095946575103995289274199626493320230396688056845563781248802509347419932150271369539456919758122393166996802104478286746621494647299908359903036673600702381517809908302559811389544815619317068358747005376205284597746809020695132600511214252271862756071763453408650282881372294217286496886516071796947786527196993195149168611539509720937091210789005437570515062745639475911162012504451936648953665945981409638258449039749011364213810931743208979693283524313818026365565953217586063699096468566342689940034692384165663476831680776850675142294402795144470009676549317349683588615743051913996339466855350229718346065253943353632834723956714332242303090848358509125823995159423655897626121128679822235899638435711083555028583402519384110690189809498638996732841091572131593322650029276412748023929801568515662859136360190686596675124802301212048423037778937421577391277067611614643481863748724666828331476255590183519718931924569599291151678742652833804331571376236458422826826431785225115775569648048444689367609638289924514669450076074707389624676971865397362826205259882747218784631449523269076073622042946190645359532053814354897190516860100638654423992602533633314498312918025648974052739860858882203200900893535936406063316803891059554742213897165174455061214127168408716905996890586110446202758984054654565215931840397977702082388139320694178040988025687465275736287294657027665076480578707678897135741219074028135855483229424175050849247628067692141857954928381794652005158336574580430028933831561243051031236062556344029050541040609202973401599998215978838030643190755474084687051066396431618822994528884993941620120917306411575199993597136038236543206112237565887257459143609507819595463382778501872969275038446468284001935391735276566629788668551911679979229277275830444285325240783556938856802401558616607980813446581264006372855761660339723419984162811926563295427106050695422109566526745203031121292129903655805304256137122529708547754307267037316297116627352385799712807819375244001515656643501996507329871101378780871628743659159129684818208074939541215570514998140288714922452143413304832514563730195785591040330468291368050109198663434626239497634655450833260312397297957774384712461496227998225715942127038417981978116766751171572620607750783468134392636901378217452774816682868821664255964550127434939799915921545144704888958248771228098040507640616197494554983092180444548126260387642298581434807286022703361043397866424185554530340795960698119183680105990549838326267309936605936752987954588385919084271961914186176089970632586780746725477739102571830603568456682946070891679811493838786307678232830240994113768480450089071927783862795451683996205521243894085582792137021173459234376857833337472998618726565306836116756772967157013938327667054273536841557692040474183786776559401725243839344681317764094239451201915111922757445281216716544730335035706927293497602245326247050366569133657464786233242114199266327813845355117320359988943038449865765596565600868521840870651804151041282769066685501717561641038852680307054620622876599864301162917051719609464248430920266496583340703355486892805953040494637339668498661183947857276749120984577371893739708117246938308230671473897656758172777213262980287600974397962270075975679095241125951937365672937714365413009628148647009503029244693293956043861778295165802921855766739930522648417735085646759758321895748746640968715843801624509205714852984960527295840089765889635127506607184928506136038081255362382010821047805550925356713453453130539210273126284685674144372388712510455153286200701232162656007708456620014987307634311534880752011182408876577366049204588371120260356001419194170454421414911962804877062224261808839294655877538710319366707153433342867977284235423258005250127352282529718899618462649761070090685204112463069952078853513681376049398132266754428533004593093541539073681918759073566081213222060985802936326706102944907783190521192569888959149202951160673323306489755987342691439833412207273130709335460380377083539832591208701114253894011079159064188498017835376102672396774795793650641251140516691626079786796443575002178188782900264519938280208636935975201529918230444485873400711574791951344921188873018692763383569842988098107393274304092261873843431034812275762381658198870586379948201930888783100079179807398900375141040659727660292811253708984431420612595326390092364135277182083542211927401102867553473812677433272490900254556677823556207248451234234412231452689024860549161891311380346728504039695535796638418543272020143805770082726390275115264347441692325308417649306267120459805127884146618627229217081392014896872712719902983016057050782704564040104132440783173196286261916041237789977107483252631963239408478745335351042489289695315928243002533438592020425368571282230640561171211113890293486153056549756244217881458577825002996297370832488337950404176068021953502672576089400230163232586003439357031896184699595253838597301154098694566487234830215110319908555945140106337323879913109956381655120269917880771812500680955712103479054972532074254844018262358932902795980153910798554970958370512272323534891507812648533427219746390233083490351880662225214531284650360144455055909613324084193143555732599331122317529362768478341677043051202945184401193099644747612473357123265400172935556463186707297475302030849186602608965947177969882977505811861596058790913213370747434123132809631457935097393239324534276572230381804566569409504954581004426376951902418495018658532591368635294933038694877577775144470658345319041414966717251792205166422075967288384620561925597698815754384819089788375983415086598421847911679237275856351204462798162805005694226644640812861982815058044911904690063730051234882191816297250513394006563190053485381110971276366903933401966245762423195645721573084379779365107779533180598056040772807188190587176109428503593024243215422301671545433102330965778868602296634767634972431539666672468953689019045898615157241738464498237977597056732223403004110105405228458892908877879829448191738454911128587188923049018158772911668852174974398266989060600990673348355946018680455273348797661204080742339367476512819647049605787527169766013855074843699482846275659142878625574095904760635621184407354108506852652284771087691109403324097050778080600796796759031125744765913594766750178057429529148254603508802224223163993466967683205211058217364373237442066851293847066573601106449307516138265623560922499428880201116717617593552980760822418295954752645864367740104444309319580847963366072205169124813920600058397443272080507757520982221039074518676274157604033348635931377727525776597531104990840742120790344179084276017955828555826661537581397740163602379869673926658344370006969838898987585273124130535181244322131613289860196136900971214152639938937187935741138035049290654619830370134207145732568192856790754858916802826498911950167427860876048333377193629379695908918955066613151575889317084938436656378090337003930677629348868254209136001809053910741432697446914258851813705736266179205831562028682585278610054894300890086086388552220323475118029446108743476420477854758373339888200185687790022109408241391057404083708460902936490791699836512192887490045179499479382157313091978421679835397111619964369869162762800139863273024954908090102674345767068699864004768008415981458789537113748695466640901844130159928120372892209849643901166906444209698713512207892164644487834731946107688553514702758430502208069305271120929701800829227151369229397568841800873019618044563119088526634369443392395365083525066441201538001210862298912241078460249986670319120831102785991368451354684489888330554403786820687062714681535711224561192318853766138520650016079812161009045713825423620775086729389141234220544498088778518615438778743314957340093182338846668606306572680136563548820960251206779331043667651469585945817957297305098877117028930379946186763922417861401380093007971572591962843553040355267445780145080067314309551925403372728269068449394381505411512254101483984352635560437789624983290851292357964949859279095012878542291743199816758020848464602279685138521878624662092946516227530206465761490038758947412862274869523564096015850492858629256529358081493378837817845982631255086305200492407641786378771786973515300421081537187055227407673933481756700272994781018482258023494180880296146296092136829458157917989914391307449522321875851419708426711368427047909972581719170410747299681868957341342741391511298221376196169628225406970541592445788876735250232346824943502814916725923644704957576715747461254349471156414217700752170277963184406225079853288381644547062714288197055337864160620580586965059591711950638823222396663489321907154703379149801010370989947371048845190923167993362354933562194197515585994731439954336694682183820837107131515861905246554912837526704794821144039140013105752553054193822884672220292982058008174798998288530743411762997021723338374180697731510847433358797572704522588012471343448058164686410902275161656925505139591940886693282603361132373817681783276971579288755233914966129005042945253563601645074464723891687884496059954354275089973672028811780556419903846037822058994857124998318691380603176821076456610910941142950842328524957522951609440146078247806042446232431065707609834812695364269142782988609965902040278643205272327060656800871765734867734525445950439479229833154524344649991630691953682469635066971906210804096616776249355580403816604111758012937419061913491375088875233845614129651249326444075388301129526106658038917751787827100328418771299686348037362598361466619235403928584537940769138559390318387580498769373288628489340047557961165434314123363362276192568729448194816911466832066852754389502040338272513196169863678727261909660699117549912318878569175992365253615296242383527027544170856841106313419048993844644047149273460825460311236917936654542961834432828369279720341787383927798357038960565073804679227679516305614139143794108695242303081115564006918645274455062965954603762863649508838937448350130935021603996046783689130617995900506827609530742237390473382389830491391748714538144698013197043710146050343624721079678067674380193497352948711354376166730607529045780086023487374348585573393891587528805431710914024748984380049315624576486151298671295029171186226222964427775976275808697851528599174368742765302870134260456843803477793242602353166650508281820600585715667329418176516902574722653220638953892637677791653199318604998017928919198623244710092316826512222614496000835831736803251024408639311085308172970786901462242397564311079725366147558048196794778856677381793063503634708132433335072400556722609850578717873673632110957602936465078786779688200454052566215425290476280378588680931451197374991936146243666185838186233575967550826322510639939544547667977873932877646589023182937491430088303063640962519893516217675803975608600236711208827546019490773272505885163011775470484291199669934177680646690851827487895889839826183681753038395079836397837757890099048437951659330207782828934150967040737584716324823397785628026250240126222645822416588350752699178892407125350477027266174506013411514037720120439042626094863831027519219472440445955479688141180987226910093188899867185585207797264656049068674522144431258557250824762461095597013206305427825034585348450022794190069762060973264573950624213458085264535248618803960138093261253151189800215804692941606204394779372986268055569716538326464007687873303238168758006470388600082303522603686678900429547716488815570930894346629657170092175024877398706924262677618038396289326326011837963122470930144604855360857633146593112564117730637731323999902512528364058429343743458531205273964988557131756352584437385633232142283138386637528788233490964410266881103419082522696604752464643618200293662372948711490288715612909290556480200754269169103331493594470884717923531796014341832836570256061420026973556194684489285563330125427758604046246924617696338128292126685732681366325684086805016105665043005494100442279978851060539996746278157991258416898575654172700715666365738314078044491321740249194911741324405823676713326743073255246656458464898595496357939314892545266704217094061133525390847870061186646066161813134240496111311991479347488835324249824695749273879471867640709575606729311027681450682488562618306793108275252570033385791238672587080546337536757312481568978672312184071847633839877660135950743514401435821482755034796419152861195929164584021183372665970482112237798992319875082377907411280189606117063717256715579159599419556643176107738913290872059102059071148848560786931295978009157528084850072677086733269368814827692169645513138497574474965854271959923952945198335540602382537728093562881004159686243993614624296062391377392436449483963575784109786930082255851391737949731910595409085674362942670105718679033406296425400767356975609399158254734084237409296982724369600818724394213983169368751479351143486883748699049433218829787696775600021829942277805647761970938691070920055848471229009968517718228858917108137815552796673495311612080455054017911151789762546105004420407926501497801977122880547602928461597297582359451733489114624761015759786565004258039038310052450756439007510409801598241913316897922258807694989268282175136493096421056252722436986966946872361012089353984375047727174183962717957055074910406456966335034620680509495359689630676203153906178198904446761510850513650772929070607142540715505259209918723542459390697129114110273587682820849808754888466677595483511677183775684351474283601941586358113696665923311290244941174182617273077538343607179189915593285104005112561993686855409187769284484412616247304897915620727939015272976374421654008530310321666199416450199391625629300600639165606661212855853080159427871156030758052718413066817638327386473360215487799593649347559065026704073600730015275605702624299571408763811654301677568881091806677758395447327281010333450967084037173236671501341255333422095522966036908692097855173389011139524877498479402461518953763333050957594288224802694339593484375135040493029228761857469385179055199484191469060429936435899636895555808112908874066999329428363313647550546866162046071341275272877310972134772353870626231968412230151703721902503924488577560511552577604047986454418638275005085229837665536253027303335825585097200556703908177777395055793902531028267558568566802320177642223180716690052585823459133725650401188020277527685517284747240011831963654797800250457383401075213267958842397467277565553913544837544378211308748996739686632490684671215045932239067556372773623518685934977386955185260242319085881656514447936131707990319504758338188090552225054610988892718967977508657708285447608024003704654788353050359822458875215578252926357444948911714892896558328434254955433978723199368719349330416280893704990293952895979384705134646866670251072814321932479184509056741691980870824158559147735911314849444576318036668668721363532741304038416652706276830276977268756998252592259998220164462883692755385797567204395578235988996565397664292526589975101560215039098453630930539573668013680624656625490666904174662969935081136611933395089222771012976870558454370819528246315676933497438164951814667505257677553767949517075824941704918356813250671603417361187993193509295932513891160975028070873555738247321897215492571731516334892736140752152622233684452441730523404814432126086630812050861063433209020244316547231988114519758868388815515593723903237661978073307384751247789780195671866191547111375854022193334753056083280424492412438515527242013469204237229002963357893163217563882412779545991293351059778941024382887569185487940814857283970106074468709938978309108928310057773394234550535714007022896758755438834053241858208277755696116091238459098826375765457803356048996864605296720527792991621161030890041417639168233568766814547592523928919079214433713671753621635762687778876096731622965423054735442143200490464837034632818943835736067728435451094516375532811041377915743270730376693836364087244389013511183442025164096862954546696265689035090688110897543208670410864342526166278159280251842900663186088768790460902867781217933096898975564922285767457454807398617212387855918813855648498229985986250448685680201570657110595004864892004653447463595732160835163312686373080573304532458361872806532339099637311214370324968010175321684728709222726565459954409202174594039708117721970244446640852069546092689277771942674250053260061949424695477147585576909272814971585490257909405385249881167909504566017661104078720001868978161482703476388749241686554263751875593770593625881825284261852230690526116336319471552328638151798480203420499849016707607601044178855022586254250796229138679236000000684678141560858514974000375078596437165984926931661158180125961051437657835717632106649208466205091064727139114212416774988277534114101295180069590883197662268382794733211822869610474464295406395112471799638562153541851572678540306270817206797361601055345685445306543130877241307676537808374350629738487883988291178358181036451270128159368631888888842806849132126135072548449401558733728697862067657958231761382044856279701295967540148708801964995570919244303428486089529483851492401262261115336675398182252750233805076680223570002151198863369840702341269041901028266523846940601035142603588328983240316165530707919585189446240657925795759168055913090092303440975738904531605234269917712947515739645343581287200770044834655578896741287819413732336307988160127733734600476755761794077055029991689522565477850670163832530144989866221574428264255036742584946054049987997147067865470755764107223864023897340890807930624883175843149678774016332403230052056884631998882282891364488028447913257011349549718835775390543514444279966976302522892740287791174015762638182009640859861653183691562948080945448208080008377857439264337766098607850341813518312759953374601417650181704679805961507571355051257862217371639568317753480607128040011611722160740527564848815886719655755439971211678623717280206144044094287478888493452086267841399495960779603800027596168181588002078130706260306452612359639726340411808018051771522783756186930602578310699996491312633381029185090197890679040502553179394021547972593084397634609540228747106432347708098926239146208410173999474024687721829687120688383338126037875872173178713178393861753429615611368208916194014749049089687377405224085198621071348936367371634128136053258306218391159223587292680649527620767733909926964293717065430260501263842845503360951822177653195721813866301365656666022958167155275096184056719632368778696685243783003816168430484844386425600739394493654987425323426206785127318850226569641831831999897361033826291707965515836770023920927751095292535844329146228581280637862387318319058080513463181179800562246349749240339144152666527527626975573962230198549617023895913494157685899058120529031034019544027035887453279874814688968509542628218743022004545735620954537473162107038046816978666526191750801593376836899704563116011616591994603415101778635609364184890756092565621622814936428786737931834969563075533658165482408332536620719535716064124285713032539110972420758528702175684235575378894054810335511745047695235973740348412712344528435593191097689118901274192780143519343717436774777095516125612311443637589869617121693006962573114937903081905833080765175298642816460045764103713222759263045382823743440105961241572829935746344891620291912044147514816434646515568977783440408941840160578147145439662700906224660474462234346942137222336298250612612279624098467794534250212410316963292791123467929204249423856559189598084698890636988976805007243932528113866524746000386318156248919928287203870796014385052281276377729748443474785445329823660324515055134037733872152437963916304558644289180986151049955882789975129767022854569846117016140558931258959156222018411767904145263597621678016996803538093868412171291008853693024447178746282182885098325313908927177266192243349842941948372552588047900357539438444718580864191831567092303033396604812876704448607891266959618421620318024733032130018200357201655695314170704892477065854283878642602469412415449244316350816019983558417781455993123978813766093859398222268359348146404184739425586278149841066288683741920677883171537382507325431713730289931583660405308696357611537236649063911579203597264165737557840361225644139902629040677220079199217073340653572175757801504408928271439064994342777604815862270563936694206265339427305725713084295787871926270958592809482405200429542339872566152825032711992900136115402130494257573513917663334520776821062017072354323914573788662409794054038026403196097910218418190593932803246158324471996191792363359329073487703545667240346456697985817333773315405886961604923276343613036645120342699197290284756139080570852311410270999894489824828200750507679008633048702453335397159440588092963967038319245223896289101107558316157697509186388957607160052787778998267865982119927479873691161287404472733815937031172103328138639012528216145580958510630430427644921616716681134464712001178315149890011974391521053638230154031011327085211355171841080845486683070747702206934900450480190851112429539576388998890388655422879891148320653857837407564618583226954392526456850382605039448307738691729541690468370572153672805159798755443958335694204056205357695764863826681456627594172765109271525414061797512433118706659304457570484142622039292177297014707418719251803892761777942267016808536964691122110049655585272576427329258657186396296335056482908918520653572780865512186044407421887029835151040575201485942316033294900068372035121722347082315401354741422181147285053734342736506063768766310488626975114126401571505505764246135190760519397780877887762386023090366958060837533008292974109835295878687063492170628780512975487061081644381682025344705998604917828433149630142030329307150812577141900545950366773243032003724436388786379254647971399090914668434485235822493729600812406085653380896637865605976518598980925906477931542983673256310707052806987641517171658844241866837875357699912522086402062673244086759333298531355297202468873172440470017822289877844484146121177275786077837919178182604720230311583321217162204770235843285118630244764479206232889001232055936154989256577482849948428879262290555716429643164220164203977396234990266358602481705343805747117629362970019988687272268529399489352884692244845741754623407062069734172368935860514033681686974461801377786667780197264285683310445254772364732443861042386273848076815277358747117179814386272358401385038113419597193898279342609124543628809881576111515975566258482265216235237988725200765151183412012960551622274570241064214392994518374693371390684863047394425939087281604979164430212854762174852515557997365306772209363381542642209451779834882737069599800009174658717782986962041323402053335155300725146365936185429572560038067228378806412381213444964495875103826372382027111906588880704144509533696358254746974257977707593901009310587834110065676362259168420923867437341028972816821525109995444831115379185866996626491352352447603066225109691644864247981468451741204462485748773456497416420194638798701514440000872142766781326157644811916110268803350279151879905399462948672507303110497467631011234933864939879943448375060562425968813739187107863867732356031142194455546161540952061293605933756438622168169617388925557591621488250604346246136156446040908523398398414735815292949366337852789149427280514123644484052190828803770237575542478370526324449794069038539371781422364440303879936986360128164107890133840474156607040003072613759804503609923771912385329114662707576219152012484991423737608592545433869244663921975742825376554094131672917841113390522092082024478678855274206784497439150080312687792508711660063644005841036401233579677367122046935796363838030989655601264861349995670533334287403443753032115007913542043048335484141809318996417379126273927566409446647104080535439000131694551502652251719638206342178374524900323416885489861818699829821140918305800677258561616613511687688283805173479003811516849851620689454795401739993674829490057940411640710840703182475558344597257252472401564013798329394154454931969942721673587237944722833595419196756010567371722602063430461830867980363909918596785560074358045224054333536435064860831853413817290018950486917435471598275169740754450418332419163628428751212931813405512661234432941662906626456469150522885758952078843733293299192149626566071379817693581154814074076960967380504259166692416625237457664417799600885236482925527093633353843158529414720268144659977526941242150263494425343026531270189163017763582937101507111553106105175250697551395871913231646488401068789206386878834619145247365009327317968658401932734538775436391852289100283691858894448708700312928989247185376696876846223248360719302212651268584034001670504198474524518256023536793307271023099493479276329604423920061113542339023619332379967978516114567591071732161872360887912555684803451213881473308456792868012752061801836360438362157213132906455057705345581182673929158895378973969065186352994625815811710051921282927161887905413798615741827902075318969781037354934496076883639720650623902356117982196005724211034901667619175393920218271034425228319694511414281139937293645342016603049370693432760029417160086151574586416824683365972383397609105487204964876825616730034391064435285006357948941242440939729405553201952626566567681511809940422672575515146996290000090481957910800913308532616222438165603519196338443370473009242963656825021236596251951138627080979583909754865044157978805347910164832293434587036448902300432724926946466798448033241262851282099767508442786545830076222494601485631234721089610306025480133237552095483310870467223462910177929857846071291312361613760139177754893652073377533732804896260016326661050463150767487959159180497226290333121763545149016519302230887640601738784685154909467852826056498183764717198153521187407212939755933242072540209502473870017818430543815120694112252429221935863597183715016922844619772883006898364641660592355231255734502259785367549156751636960279409096697553044615213930288878108551224041596427090616090056694922989308889408264947802177792672534305582733204606768521952216566161119591597374846081112369982580378015420882835087941354725538814338015449721781883521502580240328226986775253714286060334291574416810327495941435068956852952351359674780828295693912617557322920184108216258825876324276832290932274993153821696671560381579390501563712634640986024754961359813507456581797233243569644590452141790498299014369410664027299961154136204801988580897828800713183626241083647887792000527552540782350045097494736372287314281339293802403367739291627019446512383049551669436642903748784611658288858252020967488874886716960880326857212090105550778368393805428263733157406081888393853904611767917733132363496745191402911853783135112152872077555581799000856313178694305870439215289430649505931736298226823423488779185431739018379661544700786395377010625813915295463637009209217043930380846042363873520938246792626820240773918081036181934730863949934969414629123422434665437443799269742339678885870062519536109207220795383287149036413745913175675650390139851936922057387908555183798273217267112993894334235439021352659857378800097364433968914994105600761869353573059721725186659754105419051648002016081143458593825528285635420738301940197141844165106915517677773443467258846709202767789389283817515961259521268248030645167142986418857883541288423971063136227505273042238114021048670218994030323563638174188826424732015352140104807540191204130671489145245425908252416878759052862349789822723370320967469705227206281661844584791187051346462347470435193392655879407196198034257716329593625890333274958835060010014865010419639290442065707788864430655838624515009571590502841398349079929664139381099937853777864020940510641055339973071203453894987398715376868045934496465160210822778587620401577826251057329003704502977304354860632783703530353175617851130431301142106721087184581048882802433808066112277614784777339452378852617315797028743916598181517908586095479438952300134969181548905317575643933692771364525739748224122965800553119285872330219878207426825154031299248818435761718819999856711133074934683453318915861735617882353137208327773788137757172682475110516526000824759612554405159393460142865073750646758456995886303358599579052004292813592752784763646360341173502827854261406072437218283710235025164565821005540634699209294241251659562207325260254319846421272053781173608235857865436622059184772098023378828330045993133522806442596966612085982708114876160179243508483932685498870164126798531191248785818502771930992815612208012815747877729631602913325428905018674976779520660328022831988805768915814957667626490746138099522567222474763394893917935629184163661275381413026121430045180267097933998734295856110582356364747688278186860262004808310082652984058280787140325495603052348519411611368329496946935152146435513661678341070267212075843879787815839404357874834904591976468579700583151034565808385605047226530404416448861549029009036132822649049165091093609309871099186418431226468080275279951078156526783220812752451110671899474853875273711206971583866129309128749702747493274586678291339812895162108707413868372133329724372505789547880429435254263079392679955730281854464987718320357212223404481472503728467851238222749847590667687234815392376611999280372124473070071366773151316985026285482804028012447231856529562221761500575839472758030701450228731958389802419867186323995709274908689749232700799406067719075699246135512932328537070892371507062109129699851840691037372707527025282325663127659475309630528815569783948019202101872869236950774755543998392906050623080145888086421191981782721001217078685730796215883343234698602473851991573776790480943856399063772857470146485087866560041082075827053456647664128461030756187468312728175934943092426851984566570322744358333094497750266600377521423141949309385408144768046183324315202813599504355803386670369834083241880086308137889523944009835494985939027595608525211392892063874502216865249278186436885398286514622605173495577045649136273603699700539259699105268556207692960754250018967316798095015891921644215036381652789446784877618512092640926878525054486885822039530714949294445731703360656911984921178096379514727888656742099263186282725217364118461670243487519295706975695070671541718703064128424938140361202043096948568289102896513573833933777885439746252998060997018387431618788350066636132174286815926456085856843118884170556938118139960096581234377115264759589628528763026333407330208434629068410007467643816059419141285970694075326497169201536947361505421645181840452661158211259576046308667608017986473428302557640395851907949637536724495734230312384932500710721135517857253725005271322485409438532511300190567631129329237739301458260932468038291260370697871227840076669387396548703859684205402682159467647013187974697612243854603582560292568745561993118315083981753002295510177657479266418379482477309162826313118955515836655018939513381326396678692419365089026564072334317790849756084559479959622852266703012024309087710538899028480314466150020061580946896579551411521695718805979080835243278536497058736585858565563202324090147124560150610813378538451633030650327375049142512199799843281658901068407556747297810005593326965507872920465217950345862409808938398704507178835788217506954027919327969352435853834359205617457834661265024593044215144141326006426514324934728735356648228233599105238399580958499708969807678369078754260078908395305137435858141272193085387518507893661781083004665242457137644874175070521770495338364666066138051357881433164777517527535095626794402115815597703485408059291301379351670558017898870376551363103935395804651625654557166669946821714752032238797185225523347845363016066138955776247073515783667134858590945957705107714792725786430323460219893633523065459749509983614808852311514488240146200164423482129227453279275953055314735297485999220928713138935944225882810106886925158607203648095423615909511639479819503863124076040617412367766569935656807081077964319072012799485976222264985738771933764833831723517451320492469205779988982912931903859828893117917581968749521889676801061306431910753328977266010269242259863327499981078289429439758992778483180996971786247055936671545391447810363058524623124727485177362225323471380609491087656978505156916615645366277443909237523744540339833617323005743689856273463434652029873054159398584385181338171231777808193386529543210052472527354974966244659309904508386319522676439497913373528283800050927067072656449766575919199301048942504230894496268177969035528006640153227008560275531252863161924223069813955811348064734681384088716011780247268511504629061634671455773753317677418458409662333432437359120951409385162286056525996917617362307907220530260562814761608812222270357662708715965207435411830114064657851000747339452683704795833917681739257310210998590654525065789191217838332863492488002907919993384467607534065321755537653434570155192466090072684056860086488382000913049318657393761297589696659312868873483775893029994121504413698642681302193691944705935260740936598914167793418102142303331676666502192234280794781434770710788001718394507064786583266083458517945981395847809963567276692346013221974054975961487092148015759220560040429031030734646950634015899066402063525302730984354938199568428264744582052819894601975756576531170768179949111608786165612900954131946914525092905823489334507454942592694127363092138037917447589984617018569044182088962521042615652139786252887458581852453834708578880699990834847296614231241260922248729302830324382485012233080131741837413479644472519169508164691263650272781840443585509026755942211730178390570786539734859421216065404112911936576748924999178560590520921725256003105284292995370860840941837074266301714912128964508329343744019259029948007056538777529849364078984677522578561978554174133872487808619776500084234255502912948397357029419071251292058851337478266182272114448224937976057822407236703195438849879938583039981824665470323186401343362050377622519714046580372141800224014559507692015846767879427784736668091890915269815862288355584571779946097448827873040209659921180973091118139165786767720312602201832438705054507533221157628383605710322079353148769118270048443892327559293370808849218103046557764054701326280187827408475902179555446113201377074278502910773188057524891837940112653891374661240581952513295471408705975753337538602178724044950444911239189226019453285296515122872778808508930305659806704556732502901228565991935862927201026231116461961665855562440767282631317203483300997753340668932193921416724907764606051997919815385584954656897416946452511287243920002291911565484583725579597588662858025335374046683532692152584641226791867111632206309852274786616999346500753000642530328562999942804555891594107927531266179866540304916375584871547367302724959309971400183200810264199772176669558820921601952900058372741601063978232846212276400509658559288827721416376162550153942399289840141377186627456310782426968238450988606507323478699245231211807259651354720969206754462008376192872083142259722847716659796321602032945667784815980043906124120954896745915137421163132563470535596466613885549596281074299810418893580462052942127608252922683977874140823858211226700702307330281287295451311828522510841032972363866501457314594906974565673925782316296129729098612968237293607195588398498559173126637201432386224807550076373049793464942622563139720968072592870319604489854309557780851931936917709831487557386578454106213456633619650672420372754618565612243011106872838515805423730521560217029547749639530835862159283140584946514787842221677525882149860959659826616990628435920926624026247168378841240515626408805974665133564048127033540285337366257463603400099304163228871501752326168653505136110079575160486767847851698304921406555611324393970777704349609037734773192141873364419474496827145083393325953509190788586551326534842740009484238980011192143920371216217062088475145356868389592016648743959362764247619093314637101659793970913741471239431064213164556719759986341562988799449915482812366174126050567923141327195781421014908156169930245731104623883202685180070749859427698917527846238836536819094379465148120607687228073043283805532031469245853426140964516042473775676541354533399197601896277256966271427267195342999936033673960342898222913971006985311237393377405850660933686569407539454333457846839944118003418234542496512834797461981314534973208459277607349863207071070825184129104968182952830238709926497374859890708532096878469001092255488738713574068107092310384304337096224641840097664885319264045468961790694099977158225696346381707628777703930620724900817118570487479878908901558047982018481585991260904323047323876483687412774053295397702433538400152372484809077442788157783842965417724358479359580762182463431715604832259704015753928707585230533197649933274797028704134698917723109010317523941780212711150207969015044643982441186784172318548619969329583307313140071706233741607460517490772151709797836578668700469814289310973985305478842740337345648445758193646764992159153031395688292499184739975877304202410408928998925394430985309551118173858092406968314547238621564235110351917976738875237170298360183900408536900611875518434467503670854616888308193610184675978871443671085432242363826934577768830087695405749606018067527553683868743875173766841254993465532271808943091952196479410839132116452764138609888858872077731736308038570755497859007001083045673606740556472809944275099504429797258336268324432069458111219466903758157862364778332211678463970565201899725513692906624404055419186726418125555701110754075785568944301399589189416467083744771273866201402731548698271175379973424669121346296096907755682721750177275744214072018949591762505688807166044498202715796264536380309349071286734001347012475999250163410373368160436995442606217189166293922403144889865263794402108913107059333350613478537995067974909108320044146623193083234705291094599040040378561236294266519552998380207149121772067598069632852997033466126181579495697992958523923798838846651021886253556828878928308386412102732616241345421987635171237795777161971279144037675939547191820677852505839629686118226470943347596082274262621995016119313931413207147993862282714843230387263564514069164827970093059277257694121672021838527226899151870662269557711551803189991646239550534823661545995164894211065980111157312647695089375982186544106164833751796713078079696767710509485874566623704697266949010825555681026649286427159845206516376192358046272291733695897825942418421828453663003958148407921921232493629594037292040276175770629733461185028782679467817765602844258402809511341099017531211727792322503997878879318781565111119431127714617954406749297805548070247072495200045042439553646270984942931687116909972183253590686880870119077827423126953257477405547557493487289438233990676883641516811233018210891516059675469627156248358577300077372639615496143801457809415884905221189693342076196576217452601855285978012593754529940722028404249102509999436784992581792188111106700158231586117228026352153585603192689932922906028325533328456007889410026374775347447322347907241493225690779987889206524808728611724881151701858174769317037811868744075722553310104512537983245900834738091177527044014654578946262660662621800948294552877725564314697424184770788726656483751479562460830669187248463538855415020975528107177457210656466168712678087743290248049980647981805901026070929619575391946024342760322052382109511315015835536326512103227749593474970216932325891436821056325943031713437600650600315697129431728191450086357049940722751077935642588667030532784088125975490394820736851404685623301686894732440441864932589768462526520475532550134218179333914898277682738280669449433178063354695814198183566240092000760477251015833473735239702611651173778349163142284579439279153455213967265749868538693348745716569356743747173567887066618639706884143417476945467319483272598511694259753632620289575460828686581354970928261548500058487496796856191916982865554860442081991331249663440564488582380034419686214826962145858853288804058037420940036787961475208389024876522996442000294789752117532440904621464031305463631492819527102805169590886674747896881239726373201010924494191918764988593137115716740004927836206468504518355781414479947513173487894545024350335048594718173787974158036428273597139386066788061693887552888073232953930235014595835490582568134011646311535351229792021204133177467251605143566757294551704483159060982321746927187950191182892334342733053204592427190616407153698850407377557956763743498984469084120024969895080721073880985814288202962798585013141387832837512889207026555022532339232176565116958490017300710246450580713362035510167023700639242303640440012731813714390874662556177677850296845133120478668489362718624469590563008472349678268356240880321701166783292055606545921898423696894682456214531879861082573563680426170132773298833864539593326183359663808489195005243687438254927625018271716715734181545957420781433665266298047977859317850611299348335715328733403699757558334044676819580556619432330749511012944940303016627848412032717296861515023297246673089418435150360250894715662328972656298255400212344346676691869331831578442348328923580947206439009121060190454325961057447770087914468919091490735850970932701108011590292915737204777616918194306837418420005816572229768680846573172802460628856972990719901178007776061065449509207298670944597720008407191501143422964000629319533630368344551362809032528967646921007507600598659075212265402378570747785789981484544784080194991235115792071226538884992341898000611353252209783588345986004931925923892227820585223592446143206368164397813511425687469062839188808543480285252574976103176759778963071393929303974238246247498345592526216599036030891424326817348656691010404741212982187658402454539036946843838822365584265972724129417732965585569475370688548754665995521060382971460441541121526163922286051200154302660627935319189438938092724740592717251901753699039716971769028147004860831436759540383657334596554180349074238253671763092001150782674442354735683879710763989415805150859562826085038498688894684561475821095261623300216366828750678156330183326263368391802724242345762310589145323915084535897548292008558170700484876427583187999849510629501716801346367140116540493631289579640212836299301491587625522086281025190851833518287974492490122213499989060194968022983743838056498533240820547339244375004399220852051839516657907003376336312118854390674748912934410720355134531971406439911964794234350716742138180125221882327531011428220229797672652463531761987666250839977823230366110717882564656442379462457571481734691353151922158818517841031926818152700949592556862671003555715918171502987942615105677165778438128407148142666314130926607582655637799175670151490033858451479712305699194111137243004521772196410663171145766583245787778589390252397066777213911685231484208416863225729387105458913152820734251141512100663499577004480382119545233512686962855782847223493960736756489481463172311354090238548559655888645472139214478844713308367596884104490029624936893145291039971551957793035034533673128649004716728527809725929075428618355540010968935236578567636244593867395687635062929457522883207253800448871321616208337566282763603650201231836762562065773852371990254854123871837155830590197625354881564228180852728123733485867395644429866776358060839129052936370707031005703375682047413101665282707844474731980112663677939827612342964074223908487646392563754081909573849757332357527260719321254033799607941459514434503724967437824751471618591204115182847845473760961383226005034255997919118190219710763618138255757920968819180922018752752073939832556453274390072195465769575205327621694023170325797945200801728077591142685676221584384943516586732604401598007342399988827897416955899208811134788513507766515739262815883580805275283061519416945329954987881063729688924845709009669877415265308385067964403308555160346541660869702497741683621288805071984316631285844946599237017725306967945572097097858095281048810369046298495116979936422909261642148680995896938375573471913411898426022704352612401602402016817044734733097935136261756821123384079989185603495698725946613732126507758600084259127448078205688613661471081155421939251586583683819039162406144710061518270979745830269883634791913956705410345748562867617182318831734797408407882656472422679167003676436636222672230409684342804679896824452625020136606671286500068981247095133763826169702823168907461929090992904443502217153898785397994036562927545817789991099482544198987164954784259380835612035048714966768222074257573665707758033291036236126645808904935600829617245634746582889224599678275258338353663985268219208753457435557396645196745731276369058718634731344521113695076669170003031890319151421741347122709974496780089381773486416653525109162953442022993420565037154519538900967475289639102545904327445880263852664850039776321580571644800684775099553139622585051323037616554568904135535858860125386402169155291874115320439162835156778586963448992844477936684912104940642618097290819290803667676983432173052047555322132434755317680053249521905702743262244512767657247421428098361169143902378573757986221363983362751326864311594978414007515549538675163284092712534051957240599894236120569598998532838900345433253286806872156588170579501935641574423148082644819037890928840505686667992144764663949677872833989019524281473484037967227386135521197524735886656348220467506765456922787166101825476712877506639228655354347806409136371222258281896704996138281316306612097152965035258154083461019830893722314427294198134438670596798592165199781394793807266375329903657611034576744293895877338792204272505237621726081726943769355554707000752493633551267560960975003388502182900929483189411015633157986232323456018575927638956746145982612735470000031896542163819065852902890697244374592048632537220532361494543973655547214661013099873206175526411472088180157129479953446543716135357525595872234809072189374995919375300427180299423195431255473156138851341479558509659669009814128233235115198618869123305134329160367821257981723926715018262064426581407818648141349663288464292431562533695621662310008448584596586044789144634374544456001034124273182271229465729467718505694529512914063260315729996633865617146490986760334430039058417419689040412413999228251579140884632538855456667776966256589595627179426030992456387390843036856226331174466883363217834420434127028000863069238713746968868928498042635596699112740981434269282353981429976191256384228802180979516850219652591708543628703684024010214041939894702792688855515428893143892757862603601118246258381828641612816297202696217506823806841577450069731390904198698174420743451149778784618392193197584802973796537295625992129296799468941784685419555921691621563652901768013904071089152793466058459320150018931070239165214708939115769443626521019130125061664179908720821669116848777585729786110777091999505004233196805473656311059313860019111223462847737278591428594736054575497476837563624892585547702423424507448443736701485592152092998309796823499323683963889259112404457836182506504347200650611739237515750035461453274601577505632222183553585946185268592408574923038936277824071340096118693673759532395553195755699620414828186470072395891231587537973497180405892288899180462887007533771074671054242929989946530580771460489597376232940730567712362775640428186217501533731757809517050184702391250349698965023209727017762302977617911617015950993157243360628442184800148881598101277815441377141256182035716077841430688277526347467409196224822001842633836757167072398206060258426507294657118121618814127895322166891210284484177146745228275800106609059757341695336145216909043426955117380044377154174251399774294244242104524587475717831124169983713819518456434000605348867014592605984684153791079374082728428554237549208727000451985277294932038189017967558232082120533099073981776101735081027381511228758852179976435946072883748379877359296674784487305132433075837182308872821085157913351973960288993283601358213430500520511911981721079284181862464366050207564429968322396604499963066435933508318648050522807076759901392332244737366626135052000617897340965111934587212130383534075850060423969504362722675809954639195697369504290040039009745241064292290099707442663333623415198947865522111485158655652135910598226255843953304650764012424889711783036461602421617472224810817351035783772095132760097278858378490801481000659507076132329203696535660012525718046780098811728308157279779358940807440857913516394228028940261584286198599827343768150490905053645087804694624251974799320896609816537782986464804691233526264635827238259589751390974851211703336335851962169467298095840766392318086330086090689686529335739427993534605966923438276239830586037535921666564267035598354778549241271585964713524479473055945572778821791811453097238705575483025244441193018813912562239513535140684771689284331104441383037009742596444121200034845084208819771258837712658719094043253938766446519348786309163131192409934895114522993720006867992458701129529677706258953062032293127685051573973605837210043742540914724559676154799446010268937261301631188064105307970310861036576853089936743234546442493169615817735167945198256304146406925035050862063826366964903344013073273201453540925201435887906360822263335937012221498692744920496685435563190210259841911006603575274003286982904579664865741394652075720575648981267400007895974925230114965095520809702373703958492511331118875419720193409252255771314224505042505091809288562347658857527691652187876645164179205648215408465305217437603592904754061298862381878443706466690420809406198575681236263123875169194116734060487924438972566768200238369714427892666052132375744860402548556154499963858322683405250441273747144318330623006282690222516483388483141654787315969325761902888888587576732233961975911762214474817009987591561771475965662362474696795763334058946685073066185060135535184005934823845799886382090626300826753691034529675636176111227060886673730352029905549910117530562996908526925472962615752692521059401428153646550919620683455713126871312427261646994952851605035562487557022790901454533027502551125023000751368325998104250393939408532942099733367536802290041660185672670029906577499558451108249185982170431568151900358989831421717690236321236946328438558388940445542656329870666954355799750400199114608220146375594747288251871817783926114639805943255744145813383497045554540851548200493914748957667951454280065653274837011070443669183531127860641424011870936588591458833044241483586665928962518018599326737623020390384814893649234009098678385680737902045786091554292159763208327472998729368905032459672811353298483373756481323422224300781274080796182033281824057676304924710269302749048896883660185726984927949721037841944176674434855065395390398291032173229995575940852841206633441431951482064462529993077755168361158050400178177066809903215422396620834041600746061574668355320044404345800051438276462872224041005643625868302177589553828960849231771258056891416908123149208561046812544652300104239886376517645451104384694483142809816857567744612045146194346527954425078333779971224184032229219503755989835670490149048975269751092773907889319447845570535091998777136799594064293680273312942140996038089495021791377103972964932666901833960011190659260698952453040942724152916250897352800841366995670605758960477948480484130309711393521720955163570632818402306906570092273037554739846923684845416144333748773516128801585487845195362914768797489103408156788309123703333615165605730599093050980522323183780585072964494658158801735162567987522076256288132697509316668745238334621903950928638718421920337959142967981332989873271444382980631307917530351626423022361801118462521928695609413681742463784097596262937773075944620999749130953094733079680387945973389436325823094399370175609499145194907728393507854896723584243359438040070208300245906465127612615903116086516801712069066371218629627835130912408667347064778426670466282103868932019285080820180227254811726582098019145360399162605214394188946291946080171284425312293226481095917492654720239586592610610361042840340033467569303706210160461325495848342321447263979996748508792608397019258537847674206864107228707511971089421664936385044916947160010171999310206342470081552953773336958184402138157942521520444130089256873597340112522046641779876261748856902071422423062671708984400647782699736595816322929363644451652498161177382024237757215464445663934726421892241040066560716833267624534477719190116838508881354504020122362583009627178333057360153410440966349818844343210404447869552496147372802544921635723836988349652910401605843623111367568778278656490157201951560985787918640123307601857712889692636743371802300504424082248193353004679209242096459103580674834191238751289268629657326086939457824095458710804476507270903630248200539554632230542295058132174075639821080475584773510584985892196809494916031347643569201061928679155827485695287932617331144250694180988312841848547220709218739741240562305514713726870968453094318281933000104716051908041868404386407202969241186869797327085052859620874707405996080979478050430850835839059843992841005087313032698960053370417232282108076117252839590643902567539244052298911504960531475402051802454075174395194510078292940358568466588303732697862628494052982476661173008094116754083690522201317152403828284339047683489962498912328897222970983824976624043790755397181654748841113407276947514742294021187040828223708992112542730542266282351556801824752576445961714076041980482171874940189095569482746384355330102142004380782292351128156747591884007886060322016086025188120163268591880502046463738704659782509104725033116001869489421784718069386273459076080983245201860718588454281360148059036097067184839229802306883223645860410505553903115891245337951117008494619518573491090831565618410610123351420150086887659235229444771265421075894031324472496533219466178392243042098975878999947966127545744684212563431443580539709484698501784118145790516878466581117495709141159460614534805150099984666399746170498082475923947831590188490681002172539403971348397028755072598044146963371388289131289680816830380059031411305944293271389395720511955562595076967479951612797420547691337001242442094543848726383350817576754038114041307740200197091944415616726157543601832419000065623221758291821971441873732097016386782983490916380915581477117359195167917851917653233180203581096041280752277623328015463535371587592887849030956388170949162001311893082039286364740918845339098090632442386664273277043844635337307685154219865879928460772812211458101522789794183278734843950601315036779201709201478154302734171114378544733488267268043579180313170524362682974233622344182650149386540700113678239916545554690244810799580490847111762480756144618417155572804692871624321062663831668311638708920886835342437754210746954680745615924277519371002383963121271071841739256045762203709541981372588906873946459424174814678436180295525228733919241508911899387178190839042492776411427834802660686162909639153152274637215756170708660248015935693170540454389703492113874416780769551216454839884268739467094333559791032679425171138723308282576140188341009490476321841838630744030937480142139579065132969390394080797176284351790059713947354634460448882391354177635111235137443230422094717527756810041174640148257335114059415535830168832278206761374663721736184576576980000990589227024469351754806629691825759427876639420366109089232528461736372293629653111046496735741387477523293098358703418716049376697380219475666592123482694098889359271569888172755291438103828707563650930419179757195988774387903425312509892254803103342684757157986535983220802916773454999387620371616158158445298526394386157436332665972036975351947652029743887668735530876897446883133037290721749323465945805239137837965307718752860797157477114013269137190620181507295972026927838212045194053746664355112770920138134362972541390011184391257559436334003064153818446935178665449484534225270095739460119449915793917287692456635400228889475343036538851944412354252010373854300935945189047274557659823580683510310095357283433766707878733199135362959384727833391297896005568832897641234778326833685107905193243719074405087291764898213777200827296005384415756312007865456402360221879234630575251933017556930501718862152598729253498126907535283631993077740305210587572586926604263434837002715569746473426917371538229957995342507807344234529115347737218197399406279547868895778401646720524413366507971498476506225689418814929429115498192526545090149474617133611357941649223249507914521956287775634343569300726866023332010465121029754198648685163346764721468083357907632527764011292912407088173242434646651774484551276749242259659418023649092427978952170936970697143644136981358875544040749770526303612605053230799314957075351541274774771147206411629108034152764721263902385601607521230792029548411207045657733556191751191007119328838430560960756612771932538790120815830819361496629455522239842625429307466989160073791283953537834186760547293066440326445404517969656939921496982386122712046488943289665435085869377190171985606290578722582966065561649850754195912869597056118065946562477802200471671251824314155589823383291876904524950743360320989330316340396276470828574430935883807788855794878960628773412573472209603594989028198501058311501560495380739499908464450748216467161863871434987779897091432462760581446257600625071065336262175824209429610391786655774952741499915075406175357268825265858903670880603773394342073578908586490036007542739175668231505129469083098345706551278497769327054968248890677666589574817249750636941631639807358373993710419859773292053110822386823775547466331732877217848869864509670355562471480941823985811173962602533827175128853055410282070052926082230449757209448495041557284309193069256016646299869255738854841202026798603251438638013365122292142270394639200000179202799575330370307646528631301918926222016825404206894139351941581908928290383015539396441356750923819227027409435668557626474548239801527287553688370410339122536530372517909194179418959928541430378689231180489501027131143905324209751524662281146280124603118783027764184330838785422858486738187308149524547187588449098380224655441083993029251240736512936436800760136313902996052499484075784253928722401679109880605198360516057820395539455204497912596109152891274442110710402644813844134020370401020094798828181042923481690899297090927247465511840481460438451024611820392703561877214132986355763399623798238061500798650110092222400839855974132165120269664066448505571883297419597801693409523463881646209615337156574791554183687748748499099235353715983782464519408091127476813179444429153170106192410446868129796744253935041869160468088981097887873281909819973342274787556029157792533422527081585812466554239140779185721914754434580344023762730339929390533464795932085442301509686826964318676133980920446052246677121750034036090712052343760311328359488488283188790217269235907239721742302484229828402865014914143859225352686021747069716806381012185258868827841967166045008027008408974238506024488737891078322188238164430421746401786943164921487101231388924310378595647170901549646222995009856584821301419932611548412283429157367656304961625806277323696651609915243743988664053625347733625743483317679890493828947804920349095743208522304264096479634303351350763502618587551648868145456901241961636223678874588496856976391430051961961102386265349526264137304525993041720929832699654718106904038232089259239598426153895214339476836171978475604938596845601052240082337601253924435500457232856255349411144150627109986673435031791919384292131416272112814137038030457117375908200328410427139375288879744653979635805449894547650674975660756677645894520679791363558493594669001083881607001549666787518845936699699886642928456632602791501042340697174744398753498179817100836236958973544396500205316893682115967329387903419563949255727842558538201220720143258148211355567727515517938906496902785301587211099157354614896905811768162198586762169973704598249145553598603489852148924807600127018478550814048019250471613046096788871607263436338302899841877263752187160887383571114436123957723947625705068378910985474003180587016378016373423033864694180667682366897430340455980056287556999502663114397118812508059123564080461351766112169539578307101144126837163600134919815829028559818541760121694683577068085478865214370414355935107825693161876765821917730717976799199052513920725688580322780175194731105358637154474342564601653076683474464948962650639390761256882324561987190873970234440081625836423205365487185793326524682454381969991244125894900114097723646494115815698525837956042931764183961695856426484366382923994484649260659328461191505817325182284594063788105396338984523327625806826694561336076232483515645010225509288724961538682943858437152266613543288388416916382542035802288195886848131303256463554951207657796681742317286132636634829991133648652172802617144228389514565017058527642751311432527710786945432431798568297345879609926208716948216538115511059832522598888761692071573641904609581839956018625458457642325299429324009316793443669136039666242207586231488937947651182326221521071986094928073183141900987401338434605289195027835470252622932161404606158527998524933444307193323522920536677377486000669549043022304223067209772240859219895453590446174164074276169910201596310058841340883945713314752115634466002223609931730692925222935008753699785004413164126106084563224275157040860460958060448239955536385727922615133890385279127249533311964169712747978196487687363227762732759798012442177969344534982908875744785155020322048674975966409448689780327683212728150325540197671022955034066488114795974162023527507976147165025171352240906928044456683966412592506254226291678313827982545961621075537570066198063214483912903979698280870924182692646640775364675039605803147320245323758115572519258333258756581483714710764021283560478572369596585197760526759242387326083167799318803857930980090865527575992257499934426371613530200281266086911280093987970957273962142335985205363448673998917916106594634757394635831254390630199381343836106444078984054516392340465522155329236392036464456804757935442705398904163998750547063634209497394939974274414582623862884715419612647397008531867676598207849056596685287605491153955112703178981893390497265146941955005012159684664216067487030015649574505299417675189419765485077260279661490616793596447649730596150699749792082815772866874449975877001057362438050866055863984711360608061624789842721926333295563027191581127818796204727009602583261564260948150941507115464469056571581833638629789688551928589556144420145820623966553780137270350983825211959698113746333051183136027132059669599295708691101243738912241892459185863966457330518474879271809004228943635215582251105300907298973943968880995184484474004969203662945431549300657320146225868222233099736288076579168796524663848879706649010376338370092341545477220546890103073926040157697420078946927928080297647708930341834389332201744525468616022754099447378842092698532597824859230004318210998214448095724856460894092530879834609893818028330598038775845927308222664776048635906280011488023081989782794386553829466320822551660085576743450780951649473896504597079272784971538688401338143964604510952660173863480796235658603938267422556031538112843395018515359273909646799256106360167902098816651615189311211911013627016546046070161037203492427082132235156699954028037422934071726821782179286015498785153121107294449104301533514190741175649844932571065138123747266388346666592541750104170437681714609171605204126548458043891736022010407958356965459282128850603839571397915897620622079915945089303874227708767206845016311453396210355189463915019455561011377536788341117254778908381364970604516374670777076321682173977424914790266827661963656159690768033282066008434273772841617634949261929530464733323779512658887339131935271881174740819341308521354000581424683618696106202390668642597419841744678878081008974042814455561696792538108664695186767316531481158337775757615231629883417017538408968051013398614761152189374098134618607007484441222316011052750913713024388012676981385980964407792271689267930147509157710405747588995494488817902399005737423418394955398461205003703816948558800052145819490048257760951627499148275830090729456642954893416499917647780345326276190136502255723447819582542929744365401442981816499376137070081882400220192037190497744310651475819006385033763493458289243810734166443263559194649733695716212352255918704579005940800799159699407935971196023905405857236271875659271110059185284747498840007622374578171139099226311878750532032740973271438615674800892329890877332692361830834160561007581594797524099708283735477351378035914279864630778057286449708623301222177934964756819295568027294033639341679629648097392510456270164606884827648277370198583916389527656176179995417218945625984493474332622576461711904286291321223627027547397578117182989202628030758478757020485689579709172704313223239277137262845544516741198152115917850290075799996500623043978405098430855727398386755685229013605121891698271000589839388510820093837465268887600662284420056750868002548369048200664733181923788191018102302056414321789416365664203708463841088880449286752133110552242457733616724510918405702617785125666875299482286337849012723131386262970690230439871865425607853773695463616160814789939105169946204773894719983490751193047550422231588196109680717055493557035714499709055765020878943309908251348374301563522616612232598259971019159110512568990924284562456966933991681484649378056537672080612876375150553959907365126230415056996746945592178438140142596741706619747409330877693248778122327435491047614356836462939422529863948448166685889663903558326227687277790768598494318101501584289353683125374513683720843512753511604620763804273159777944202440525992351300170598496541357542647691685977391208939352079400754585075257046938374333653895906957813712857495199634663805096879589418151040234240175496780092620940483050335796997212199848124388054660708506394064482437102469512938174769325395181097682142583738336827953851973866760083789689944041102362488514358081246265925837962308716813232107739817030910930095809745314397892065237762453792318470503923713913116144647556143184074626154623516437657500174844924782392067001842577417665707143047003427608076906859215019011407952838899296019328122832831648485120637047606954259467713416848872730267614456387335343396939225819207372048432249338581953138044301830639345044290350504732262657416983104416597534911098687708198660458431466459185556034670776930144453854492844273107121891443761139106271068043846130059269905260749087314571482355846405728807375006874205336575195885226911508479964766484967699752733920033648456085171869876590973917783695474488376655943783397518886849641167645657549717740479239978635565844922279589439910083040079716471324928097500066586290001700196576555098559797275216729660775566768055371965515705719537159544604651907244913022956937229146088616382300146018065023902593845641646622393934904523710465261227105629804129179963328736647042796398765167473027450627042378331689700461506889215832232023396014741040516661106540560172728394546881703684542061549688078691256177608969531834091859935410938902156501922554589632137706738636366802807478500025550625406275918419677372795325571553858707464799827426381440134028116155336872143387255769064097850703699397152272273580187493662626984905250505143849156965123461131972275300573274876926473295356343737691937790005003462621163821153002102329468825636860262151059118017770370319755411476085294490422136039358478358867884961144464154643874385918355135541556967146728263860722868970394710413119755978760244697460690737964656709448327827863142641859859824477799011407315822703023332335948574801407102224689147319741259757506600525812663832610973565772976199245885099122116112391588750902954255479108980303632796097068096021764324569159168061423926190159885241051701877687702501081782864104209190799286572695252916254578443390812216118612060075646466262758669433646650652785592280963999633863685882698247580926644202378624188057662239278390158576532416056247217112328717089758524810329738415203501728563609152084699885200157908583108031756366136351640714006142115406882479890579597997552784038479467314940887168096122563862320298868053475243559165898228581324339456949589692253434229990177964256449553208141427316924355746839901905386921708542901094810895203654162877068880785419939153450961043316954050763098282100033611150379720759609845624513229142597423243310127699153696749916560419796252651478113054778734369500191693439039373961212540616517301580722000599980488285177612470348729932159226428319150797448883316078079339895036361756052251174368012597887073189787099131256980002188680309171523890999127451798461729629927783918854315834323975218652418953725434429229663918066505665711876792248445527116846125709691439014102684342160281358001208532685890280913327505734867166299400470799240617774297474504849108542453092252321400327582266880608874057325696964144268469905873988521355279103941993591519723023484571664935644792605073275688853784588228438656875737423292364918687499509142976016812653386443995106644468566337842701000037086174876701561220119838413765372820563050075860773195309608145622647622081734646001612850082318901465359074199436029170095693631196953724938011173339823097451208186139234855183192264758666243807573942001714947133667815225518060603738380971928304955528941858923444567424503708533848623796179109763971860119153571140624771753208979915733824285205396925708928483182921995721315962437963722298216844822899320609443895100435834308871631996257189281137178914297403579312782562421883430628591933481785413921750097303713529944893641152265126586925262630578932146569381981966938340837262112646598460238802866608693937625524178906496924630354567649120167912732666625023209056664974294627067264216059297221137649915759501765776570046118980779839735672655148897469703822949349058933681480023813079564254434366702442856135849881456564195693618252580124276043888444051158145170061085814525052207708767748941830795092670072427920183210990502510097060744534160648842922441331831661950746841965716985021945305115159878729686296910563916452825923995256072109432647503972949703896271837283152801123805942790072720381928047717516632831631306565865896079322533952439798109850590005480779607824962344333058220321868755887964083245440510386493822237371098165015464328544729789498703859548927462944965821729027885507487608736845043764744177248054420141834231009905890874015253723948394168043620592123935397141406217415949888383184741191588747636086397649110930810308121695636152314782676682879024715318848078243770681347948531186535464753545961660517329230159624351998304191632061266825524556128796606465737976929808982154652329150454117883098514431861622202282269158788694619334631455436077247144997066112773184425023852618170238174066032474117923749254192927465782878157537542569103639996753806131286492663091981962477101873044948073569870667500127384257989329350918060014535021575993172184133344635161463812536598158223305994835289639628484615149271049367781182700194892764255960466481404974857559386819080916181619879872402967206822096324527916396192967967629101785358286231611183084518034914462130090471628175832535354496376069187202227305594789999213667299408563738770688136729478980224142392867174464789536130520848260748650941419210258435289063767785177378733524093290095128861430038645315794814455470896388504158455217139643870138598344134727798680565230426321967264998090427491103223211791962249196396247488624026461192072377264074345174209629875981307526447196595160394628555484768357484960777701251158491077023834521615136870523330899075141099709996439808747607682099235075029810680845924267281792565577763351365809190981313333321659241061777429406409828847014932985626822854044333608883767380344931715484938544843269255695901731342566410808404393794229616184828088616447076490257468509541977183384938415863276407735628686109337297368958903171206395842574266040918131465054221946202521366284465113852946069748343914563820319226469231665943578499899293634562444136548051720362267736985965912873819932773286900684667938049644478779898844292819629808157656343792253780913415537420370524337945094555666525298958373893654558510300315092155420392637084042836720435215473574016025211359676074321977792225137301182394289823469245783720039128280706524873776534244345975420033326789364060517416511248729527085468299358331712045957848802588539175431131607199691988921153581863321790357535333298002091179134610932076383757359472084485151751199407477086810735082678799831122200737661143195411979204322150726303832380147308358099271306647310402685147022558513282062362620997475644016361085412011499486111284259002891671836309472994993269553531058154264658964998827640981840064909937135671607476288849999363889119365060968991767249502677368017545829065210977383838042873837418861867827648820651122657721862617120728486300947121406335580926839511734428409388268199307572722351168062848206331712879026311340731348326854841884307563073010878159561078768764738553216302729366887957105342095042969361213615674644761870107927217077335571132656828276188025899342254416891258530051168041213111801137438142974826469401865258806740314286556607882286265608081306732169860906103605015377722919289767220949460054964210510592976924703800668979470132641020141820503891629065295468748573810780787551296628542620342821320067215788494613549660297368435987078232339272443318258082863694980939707596727691128044964338819946481724621429889937979531738223972289233207576720720921780116706001231501014482484726958403191671531114755008098379890415177787391685282538356621488005424529108561291150354149015085330984686499043619080519850940859013427047011831081709755902898569562095392777991259632286897066244837681048588079355827649631744059186155081840138673045885865607862550311740494314255720355663816550941280829622873838863656678711820124110049637355034725369653047738874766852632078800154253223074035845653668354981583788052092908486785872516772043529199723114339903273133280138050689174454913304796342822461044303005531689260360342973990526729449181885208391409538522702259510065856687755968740723488211072580896113757497948659907946059221844107384635760010690422707977934991405008021564540404942768851376989652936005794990221204789634892351519633383381454482979837949974018973567285638005549477007771822894896343614560138538492191683777551275842964977663582413172747985048843939586304276676616075642477150763016527697052726246668421115165251554985231218865280002276342255752041455665278057680613228517132445998988022255537959395494567140615000902231837797810389676966449076448069287343966154254632878985217841845288253629534323459662614999602425544882565801901543591213070292363258667637266603343606915787109983113278496462629362232428689191379756029051014615452001780133737500395264268781539796716480727978757460213215574915727619923589061973007579936451810262374119886950284892748097012152590217378936805338093440594570505128095362633398787233905727083283167643401822972319792127047692853275937866493493720042839801666966406546611128752548419106561257365325271209966406118565717200707238570975993880385027548656417608995648750211527661433648975539744268177660562418485523635248356964940279204834443421998422170383563565014750239340292306375511959849121729425282159033450521975645194829789200070158477815980093369185581968548400871404876515006765291542724609339600597104223950182165418880772935046028198737853210197889571559687081982429583536926059567581216778480217797160362386939330571578302779601689764047118226054878163943061082868544444846806971754864776015113706157380176683974292606432485800705105125620899513875325092142542912467718809063320590086446674010222715846909644182786371306060851280357894825010740720880779368381218927019617317735795689208927616834789897862862841030603140443741559875137592621579810448194962690409567276130468402033315861163997676003357261698539793269245633052910769406982404642932397480340273937998489234395000990091267437787029238873828635283624866544921216774477705113621878051226756489906589101343530991883889835614138191740102443016086666080699159325129417370575139345374475188556336020346572244571396129022995677440504216567433730600986104480197220604981211906671865078873410337498599060031325037958885751801088410280998105777322839707073869487126104922066718881550015140840235310416779324981202375908584014211548611374316895444724086293440533696174114389546016764541307604952752823448961454877255114613703882816780299946966492455468299372661182361075457299947656251780963424787850349591580471826680469399267002762250692802377945308844856068000603633849171358720784066136066309022415197685971491022876540027673169502665398076275916325547593993222621582303448820223968993949770070954800306965730786423101825389851887854663679709555143009348057841271605413164004253783331993901159437920150313383672208906354430479118692055774291990016452960702500875225747595085132534625022141101899394479652856705018811948001473935142072745846264130210097320951469318731044704879396205231434419275538297536509468024625530472463551056978470440247888116209246068467596444481135925400217024098276526658065162813666897885686875331614643546912634093620513627982087376447598961592442254693991829848034833947889466249253315437520698226186081169122702521330592302122295697099541026005120483465688336837956026092429508837900088270327702179642040788957777391177171055082823246193521596671870139301360486003287393055089100134125297608493218848499238147793140931661193170323063450292310823606842710595255176615812546759374182113610923069196284896862576850446704635313419822718214602580927522828974292764949884703322594918912417163942528559448874836993263394263040072484453339932497217591969112834497855571521385517361902705357070183377683861493249884723278588723335867521315214675635960144342026356612415822354830022609825642859059529110509371731960377346248350111315124743202873834675278291600732061768918684100315843640740392318710162777883914000052383538135334569665189586165701632525113537338896655838455354252635241296673600019579335701757875374627792303918054592046510898226254369112981637006497249524153645976239188518069158079008989935501840726919208251739927429784052105149839571389397252576564083979846605236967204351006975036220591065434231411310446421928613985639328068684275610246835415008533008443506578830555315333184184989977686722845337717836301448957864193359685579793273927068033722738532072728103293682748053569863908258506157100015782527224015198852361841165856516370483859226965678324464141712074852281709228825880831844483694631487639271514305023969469096497591304095273802984125641767020124745156055896520151437066140084127102148977683925076028362533450394610517714347457514556415398333448044012506692355356325931679657706295659653878015623252696477032576758143210421874513813036270716881737443926164288172363611155186105368879095584340346770563547421909877413409760106145638715309649089008513136768854976110776822323183677836494990706237228149913347415553394697289912609872169618746670973691038250785481490617807310426269557985428647289261548718258956921132631912390801154948140539718867480861464152963046270841643334877022607390505460385423837037980856960392737954411145398906666956273200750013089900630714289363526271974223105372058418940706669208765164436267883822001222316528314562782346722798990763595493807351280632727528813056664655716766259904009729143772590946242911730034931161345471838638625551731232782607056933725051234071069359883621564503612774714388688579335673258104210329671937926904945116603138558852969688384524675399079766451807864296206478588321919556840324340427643420052129567825536553865954783444241266211989413880381765533687797625939019308872190775058788443583450239065058841654065899714130479818649258230524538487886104242470643085293978905615032633751819355428149008933742478946136586704715396505214775779992259633490775694845833301249634465743868277450383232735037989295588018751870525579946645357739588794430568932532526613647461127850516034187397673871403942611953572517246405545295014554356209141828444416362642484508128847365085702312000076054791672815616218191799165257921746542863808932869471632794849685859174911880592199815718724741379939138495960365087849979171407925163732186354992235261729571693437687129593248923426180776631963351242577953348491839131507422431561715177613309741727197080816648854807842984321060504242483164134069272580759191388660731118901784875873618885629175222721933023042922160371665788096995285378861778873591991731913574865451837394816071724644422841843589290257274197267789468623010727185604298894892678173542254476830126500706136058991498591414909237818181324336278896695302952201624636079981605254245458267302487343909664527072070121275383280162107777938257959597509273724608908158431995111977672915552045544395189273700745354926704697477249061648891663647173798746773376138036252180781571593185276342453621026193107009448709340693188961057806404351935899022581703045866684277620546172576457019926378833536444967051342603832804537306922486282708359619267489191929447944773929056045218398378167688900768591091871439096122429686424964119454130086474250652671943677276308369588089614146670583833490905021760000978836439529077975170103841810114608835806326616809934611248370562188283334267295684492301154905588283619037718893222190033122687492980112681678848421243245890364154594900994591986562661808654857984224984246958467313323464067147726675694575810700443490446215268656265486188478914302157952635353121449651290435913583777357264278635749374992490973970912802764090726577694906652269453985131784383516559778158637705537634344802881135114862781223090366174901125019478756393447454234075689570328105860951648107544670329761362199355465639535625441003648766468223303150455448384758711975673068037772729860330746763577098358999833320382682042455380779911193317113516355311780818820827162025306079867120317157843259868539108324946651497479516598402325115239971503806270168787965893541185427364987586078460977417482115486124535210660663928750572214826561183155271751644063259555650363704249215976709131872675147706701515979832656335205359265960176193087995198691858757716411890657189453542192175438228685165335788154572468280758208450713090180189867400692710531032695331842940553016310918489875630982459295768669435269578441039311557601925479484381470059483400514544222765576161672890142733621911361093949795201608531419971407246090277660535151648068229066968367842685712809478266506230719854081459089464811629067427645945231945172947550269034727176689859649429785193856357622501031169190136977299089275927290369663493602955449634467869889656449761539376078109204437822748533523286190849384860512086623817538801195239222447037626844431992825624389493497973353409362690342976467462351911750267905963894733719514398393484574187281099105077522824668921308579892682597280713907232774286603128474801365294939671324083324295686108222390783572378084960335008205141342603270469103897804735502587807986577978598067596170518964827892730696908123325664648207039712864162213478288329025743705398110890211945775398458509405324294958609864791058637021372914043100648122361188249323819412034847711433430801670162446801960844490130554399459658651590767557572817323321276219386752807816114582359121969732460441742982880430929497035733960601780637526487944594498476708798491627466060821713207385067555418594136259115430142519494007315795473402366015641362113477760622408911449402079779873725424456414061249138648106216329006569256744210100726723188114065355167058080742414629995641103659417055403922942622101605591140193003267059143160584827866608731936425673974717009834448622181885568528447123775488534057893092647052229443232822907124100085089125252252577936969560012278803975441415982292887139426401338169795741122588119561638838152536387133940580685843162626375492553442605453529280330946115150680298431088417685025604983790620870880517643220178360692353423195716262830635337512072127093317202336247884651909331149630289738489306281735533502240891976711942450228069560463009100710570374555308592878986038462232330785809582803943130417287001532756601610973414742557096294094434855687106801826481835627357914815660788787262859504505627273885928772609072042555630232671770496413498069753907542222603415490097018286967212981970661824840100044367604391890407027623072793617715630484221291202422881071279463835238282589525008356248786923000007082519580053915695044335396402509716260685202119622681757465132111012722399359394407555310055198661469929609648585285230955476311873368000091853307236306895960583713916337800253726412247927564399854318940664531159173970617383455295862798870560338378274354919813999063510793723239992644076759749837442730373808885829667866882862327961188439087341697327651407024828373794785409002929349098593713584618392659255245137903210148679902580604183186013924110467742712691946734177386542582883727770217445639946054884347342349364714408332187238373584854780016102599093079091635418201339051111467764205144415929948634091853781312619514766842978650377584367880177402052196412146122296004188146299741619384187092294720598959915089821793981244512591798606293349844549663783210592189722542711462845307977348529523631487354430086025946727324756156568163068663555670534797698047522991464690674829576522719869149946493997356345809594717569073536541330685618189983581616139796124900294725232138415930356237869796637488031978039278306037282931925912929739621006471452822573854819791728651231821916623953038450763037053720935696201743536833104446467853916967316546478172749362083782313766725768368119099765714604029758631793997818658211514292185043777824707492156080119708260674434500929448595248996178856428529764444808575888949483445520004566453385855267918186419984254823728827755687928660613735730607852072931092829719302488748714967626998196509949394312868831964191001183914885120964601078393064845885604298181735105430956366582361344515206766338144405783401009065403219699179666246658549852863259574071214373414090438086751805697953426657094338695725084824438237647939418912094534775483097413757308028477739326257293411720946742658390319745293276917453296572046054140556599686745525229685071650144453668581380904894795196163475462527064000673046601652119961635997082150721247593938070457602202340132355764595248305240095318829266348117472525318808555447209312956027792825573495847233967691634273301582706387829167295236384004363952653850714872552427054018230190016405534735679114312867252149625746997743895250125854042440902906133082654052045855090271840591633830017438336897749784380632285487219128831196398825451592585474425404223291755141409622746083324222492824703093748846074432218639890153973211099136478169056837462484876413941684121147268747321490337731557749158261069028514205232082578779711442891714059629879426940855158605165464534587848760456775430994800191865305626046881720844744581513390991474557376095378253535606648868642521666575801176801103895048589301893646083651407457912704938479126785089971510111086635220285043301935603008330461258470727567712730839447649499154448630140315395344260705813105051099307983125124135459014158338213982450402571892057086954174495221143604004508376842676119060514236629212838597584909933039786951895488170593002081127621023149554929460783680838040695963661000959424612845163256181077207561745190671388978462144256934633466462734986559868686060978298918166750116112169311961728906311144381845790923256320422174616061498379859155649901335460520675672619814134671078881163638564067937928111566074157666762872840632726151854813242406257477837510532199435589232366787128634180583715580011405176249102616565680789589879114312982639100827529083374561738901903647048751821139109554119634955008414493105357380629438607034459357791228169726464486405867950352644455880350322530482223407842727671820710634575193868909021626586522453036981665429469207426347741749390981283598521207637637398864348336957618153864188840424358374099571237553800896187238779046299771372935917598253862240196839302407450560260982143545301435350366047806066716688060366494182590497746152240500798886217386169154616486685281102871083129341460130931225177878958867211093834356644520753521478287045132941165523981498876651977171720061269501911538977275451715794841573664174871376839166606228354455160086018882386057192063734630186708146238672462668859704524888358560254167602616693304904431167301981867797535834932067213853427661502376852927537194168332568214055652959591871845054113132894697136744259156889312580627118767980668474541438881178324061791356919528754899749346909890282188865513215912949057754827692728986806808478809681294897391642936792167962505592615002085418216258645233110905242264428728151555154677273299433187438141750254217386394281512331292113867778660627856026890115215531414872804005022347549511917425738847046296721474236504136195187045702640426479640281362177497310522700179501297508053329664551935593125756883038150705862884222623837610873858004550759811640790006131889721179210213273302667603662812217244301232885038448324772645348586335601537852719713495342872756936472236777076690999933787687795152374302791360394289402675756764193160662545902766766731688470226982842160348355449944864684852384588102297210989053262258622345872696180011778737647090987311005822255161679257438527013061409094504942594576354825509751296254735372475006227021405825253246370080249667450931059278219198449610292828791509481163292647419540619575614175014812459819801390710407817101644142499747518376789357346664369510320321139744518987749767752613978481293192685872137402144757983398174327711835324543245155177953021982166379420525926313837520408674139072779011554816712944771337390298611412767179347844248194595407021140252771548340218881845402292126209223287106869833251184321033542413544847727595260615633738372267557951396765365588815947078489554629328111692303048529317285064917250469948523482138915106967550565737418449110076558551317757469329590230232317198035071370096039062526909823019543820844512909340349537715958067645634396908138385978149616744026172045008830560201092633896690035110832337795236815442671864372042771385410285648898792166696200826545650334910144044192305853890192637370423112398290885387845981189541251645090924953343802456187525147721929395052219963821377266250791377119841163652582451460133557547241859734637900758436391940086911013150718964059147380465779411701877847868332709381497560079799358481641442290612993078832263397089966094113322760138299084094177074583970592299078352062192353865533979049692904227334304087772386233831166699156569512298460211129548517440396856141097767118150633140206698798843657632698957090055368610630424742506761117035961764257299877877998923849311654098753484782175992761583953898792689490765535818149552397525719883908691031891549938126063926182639996788851233625643911784670295614629939963310605272078541493646534731321158058491816119629394448070733787970820540200959930015332401112811372041147633753428572669018741505552829167281278315357093868533061138603865287485482634610191312139195859250090447898392530113609825617141225021704220695722029831377501494964332757497665047030974204408389530338756226864997026554154818407605067800631059224242229377661392346328005756330506538356766953976843611067141877786040161459280100785050454306024664306348663420534093213667568832948399155189900804039972260746698025906038944031248920194475756420398436099774408961623222864667743850331844566475037031963616220127376670186062039921959569349197272073299947272181070555571494467422972494374019391085117636088452333302806228498846655334122044416518889864429611549189909713184774199700911494525070220291038116754826847870929669819066657456407124483773501532623518089649546885018488005203046798229767710551677122925687355953306058229283070914035443842187797808023012997965825646434107822419143334212507139243760828490058677926583922629255911898592230650405968984363059005588445059348838789643517195852430577688216197448417480452394406687233094980102910976444432252008131129284681883780152940420462504685522707635223862803918084598248382044004491397518211799826173573771455779535268256027687924177230260717377582892954547868917811105193634721360174819302443180750723062738459990884636397534224531802942831307156321472434255751807568621635465911273540221767896732467168049108999951093522594462940009278588108096684875563658146523761036454344317427308869158449769530426912568678336629892284074062222083316665270692992562162855042912327607450854858170857932452147131509037269452365395177500648389067788929541378983557840155972642777084335985936368597936641492282031439412895323381789455449996404629828972384600780012304903449983233350543570178514141807752468315206877397038489989529124080949986453901642054438034752897411954085876877915218740222350120442757220075363844032928358507525102863625758939897669243942686354752826495538763521409557725801947656198015521667993895077620613050492817284836130006354625774649254632692785413039625224563230108972574831243402667951250418110683897920028053889287363384309029496067017914619883257235549494456901961190671033507298057324944178817273171271800993068788971310054898336265458352169707093161423092252738762949556917746658672804338938179189903595526019844962603732869771444874348483750637686193900309910390032428859490960614241898531298875657012210747078031541017843031087836470218967188786446582987103095639175250718010152183268665976156428783543011460781251503371375998608915673640420955233993703130590981493306734515075779698487470140915850256112810821918189459095036666684699564176236721376932835362808836921472731013041310023040673611391712995888175492712849138976732106284846301553462797117077666895722041431695322886255166070988817442268661756812522714479236576652206491682029411685799618454075685372825988385851861993154359819627242836108495510302170583686879841724311068114515913138485127124954038065810741481434900696021855467379177696682369827460558664539297132238983592991031123270190241822461003098330539083251912223749848930636135094351549237660202867861466505287001715810620066765649582499035368790888042935424754074286517798519209370237724210112763582049145314820479911367429473049465221641231166119695756787501590638506354594477131539695464242821978231764417976847571194690708595671759358829794739018702223168234648193760239533597782527358311959657790720106818700305023719919020610086101753665438689720093086081198049330693143128646920468413335708322834001845331263823269125872572054534623911036372372848082722736954351676885743688130356816555486538343639427313321039122108971059203527844870238487578587154016408213187440729347622088305672321437013494947053001288254104170404403261444804220961871536023342767827020139598857013572043936407385028248743959789381899756941163614372648936123024749202917253161381552668907942815843865378068606862289677909491697700234297829384931992296583070205309515910959450870643696396893992273651957309969235453251582116261243821297629733881099669552703843026763079072780114514483188485894531190702329366037449124959555259983601117495604426328356006956078661274608922511741182801078608544479488930237306642513247064465002903939058570609860323876716892490594842525383443984925855600790107398412971660327782810919933957477119143013533204459086202792441531264259820912901220368059187965348366585865895481077570211048252520269999637355806087779441605357605465475567487839769093558908998549349108105272179315125820940716313790268177315723373325307524704364590629754343195013207359726774958736373245674257119387318258931700971221904907151621827299643260200019108928935184841596651920575580735534129504366825536952213779520059098046037033449490701136092501336254424146451124432225267346762421218377647660136910957993213660638757028845625987845682910808720989617616870806883873214610583864270087831385856746458295379599224410343406817129112803242373877662359359798912163697446822605242407108502985466014913677049839012583494807032928344280712131145928809866687984628814822296486362445346593452331299981765706121513362444224290975643752186762954592664013951748883000152056030329981946794445715859294962979424621102200340627250036387479945564284383918694583959648150338660271223530453007391801661591723755948027170963685700706773682204428510244748265433759616669365862582730805397479980679676516472390817223743020098870916823003575555807657448236297705491251861051762448637358357571918218946175423114022326542128577685355406308007498812366316446932198766002099081267433966572631759363737399021501052517137133766252195737709469929502564614491584289696015222887108345245923222128316501613437834508982883067877230462882150193390073792907068182795820450719826995693098624579900774310666101655467215519186031738652250821785114631443058940130428610560095896315184671647505954131699953574117532688828013756565636680631813108866470534805129324690872124156160326031912163545286148228551888885019985141158403290014484201458671988054147150181984604921701758085403015201289681256537313151697954208216358820548193532233642312278707794276383662480688854902920634272315925520781230459373455325914838476846005441240916959695963862744987562164912836568771546613433757844615653698078946552953437270487918828334485623303188288150854129253019010703080915884407969492926347423213219963293103551607028143976479761859139381682503993310121259503019659198038657641749654466620621997537630169346029345761032805399354945755548486166393944637194051426182283847566461709291012682118089775703124474436315300380982894417399307012215106526475804467343788785766373526825634433974034327452682755796036716737048632482921572629776726304984766654647603517966709290341539460621840602693778068773818402510277123462753559787531368828710436305763048593805649409215688885012668574810190603940075488106606252402015508299027331015247100161467261709337498050744966301350085634710047048173668346144826442126455513235090964661465688045651351780029399035234756300544954775966607717889137251656840508819194706344344671630188289538031902740598697609459961954605384365477404431023442435080523887877236616875519075290789560418172905815824869593743161946029244130338788559555831714870495338246491139907419245988280822129763191762953648000611850003657645879872576685673640525935141145033528775974449975019964226168883052797589176593815425649301899667097968144331922167061104739330153936698057438345919990806089090642768773667871525220615057553962342176531051077836789077936663241141819040290873521380916820736479284033982025443891360224670584029537753412110310453390820854091390604391569581658534398773999264695252698618534373881637864452664008149680188117912522764225424610525184516225427768139250892798714877027708973042495710710724717357371700109976892237847658242984101875624314483828927457459030087458907186978669142349345422900533361777964162668311237480163846352865395902365239762985793333612832394417978265708664276194780300642656199497854049713542466054351114202786450653505069385672912259478143861903632255459133659719577055783131583460350441304137683702941941459484116375856116679559201383829049641580230746776044453518280026263230308795966679484508270640362455287884487276007170425719549976808287350505786587565224477083512773123868339137284347374890462485136970916191489696251762644454305826001300476789530227856316701244616579580818840005207405881848276166924851509032162774865837802838535956502800311552125060097260746089638241561889290972118649312195215664634749594830047435110948337940721269716399756105845142896305823160665131329263481621403874618925715996774822333680847698786446713406990215343508295398753795136668658937669258973624460635087076149028197304297939027856770255596854813146307270143539029900206407167983101339359551212862024006526025038976933310837688790035232781189592112566520889271869279777331072939130900917125139153412952862095610672506983905002952689840097322704156634647309797420269038768768901105123961296231392659711798503283590312469731892499250254837075823479585498253719270358159806729430822096099947853604521708243107656008244008896569329093896695126360078838489799420633009028799826712380277090404082096127911460655128261259556333764683907980954819125882493870919937870017024361021401768237223060138432961544109822402642435943257863384518357647028094795252512321563632651604596693428405110639772934822095434489251113902653867957851461032699368758425304317425711801692400248774206058332123417453913135699502887198236153070856018510326416753239872295281431345815205628313781433769519512339358627539065418111337381177449659636597756957967962212082264789396693002258143750154824878037538704772603964905435850855695136212647267336280266298108540648661448249784389802673516852518316971039675544126340359140925318177960797923212620644041234431682208570781438657023063838022361774217891665986041734269953865638135542167557602549783444030795770393888378919061873343832916738942521195975016808979773396894906177078542133803480894330377228775439048747102614749756527907943907080819091048303779026509326019856717610116082691336901486595575637547874350018096796430214359173133479109228506657832337703066878975554536887554103310557492126880482740935932713632063860425288784824782984283793111585633904846089858372551016656040316310254984000220697826013076643235076862539592119562791170644566818311382945206731070085862140377232670930797829722171857654457469141356358906669768719880588581934169641764705965448927774857498833862547482518808171874661671790798889874116016555711878263430439868892434854328716586766487873483430593452177346907225180161197119089071054198679194092097273868152354746623280042323980498872442218188751275794887739259910901798153574097302668964313521176221070977925121723237975796034975690259624653400431810423513787387264047175424060922829948250810178570050971087992333418803879195482138795632240308215943130504235990884142489142787816028679205614630405931683388545042967031101899957423293083962849498734312375664567704144817172118366389257706692437304140860162519891783894545225585176804406347113698837095465511838824368886504576344869264462880491251794764001125496321908952389089252852451729161266452899580203815840809626715113321948790601838397887155673140936508342148502238798697759922201781753243493887911135459965725882507327790242669839210506886585157857312795867726683898595723342435065965695476383018686443093680689422625940339420220501126102246119867838703913489348268390905336689327292409253810275381982207061977487189131112740579023198251653000514829231765329627272164634939313144811224161120452903634077958489528014966357815614120363675496003814996944630623567042914995040011056083240510508407133624817747844649670429292778012338696800031024255622870999702374556530382201523455188589976996748773724287615412774290456224448643027416715995801475331304814582879272791876623524972810835763348694203586939278696824604254904926456304850482916349343205113078729770530160796192007942137598302252267295597574493515406807676210822081480418404210394034734792895004803934339509670190606533988498676762647859877410535018895001199514464496681950142554693246661465315874005028652645619730891583479028359799524258846641435242568176146746160717683883147227583862971473659480015726515126186184045231465575038394367442883955986431201116805864435682201534047875176053791571102714106775453296935324082079296966476117847264725229743320882841298228876283962896494056978488173931378884743794735396264248492969563101729179642246270004299117634537981916828864761119859061589462083829261613497119033149873505199446854361480153154254360745231793754939658298665488872737683469795732465923163368115146726197138618937317842031298704480047311648601468367073547727010799281568195210830127837357577370350144044013945617663904026894118981760764572305083151459068865611830637582404462702491344753337017991957821909000979525277389992849535737950750499949872706903313948142557268440426369384730682164891610196531899200243515327929825159604005843543345936354909592682160960389644037442469724610249271330631952643331090345468716044172612343708150878424376061612905685430669767551763752270362666765723022480559819390449125207694365748262683001263155386575519716504804672580469707132030511565247841521096539522934799937412102784954790118085172508061886689528898135492438236086436336192288759191900200597449024399877961353158205521588316173300904021922143129901663735908702469779726953213785428315476484391742422524874173104850813287371279311095300085678777870673192299398047986906229109420842604744717976698065911634057890872562263826639259069758891234306538255540932890474789456691415133512193643799808646633196914800576889965416399960628376300475007892815676163867281910891282478006804600807474096872039691172465509450083882200545677555201921392463305644905507816283579135116158662642578462357630630463795483741237234943121501218831146692435243673929994683493295970358697153213741433191807376042679195874635341052585608160658109324585844046012641730009281042817979283540138489491623710699444805545712944208436186637366295787074294433698835073210497896890246238602671243748562790681872805867350634275941345092586983081652282700013728617332119439332506222502625745647005870129084797497341122693553892218959886219747653487262089685227741782663499671979117574961127525464248711445758880489256637820718157280014206371479741349438941009746446912183474558290243786169355314909678238442442305460081552264054919421895029397868610184612768349237964512038702613285723716983979762507196976668182577264574057988895862648696624736654805455176649835044285045413566318896403580592717480359534097942968956785922870148620933275378677715787389053553298745515185506807339309126417367990763324270472773657679949813011079023651010691347044552370179499984649103489832052883619896512478242529293664825919112897049701356228130607638038966617073676654604366110248153753364861393520335261491017375165436108746051104821237245844119517685033229395128270514120833535617995364046173461037167156545485036883599223953871698390428437344314259355843317981353677709343467593733045778045307394079505864770186398917695966761880421655146094459255128980359756060792623876592835770813993322964244237808886467594180375082605184768036873899666338880121875600466800036753077552315021613107237018122327324626313174655079798433896860900364394937997733803783077448054320655143032190607890025921427395590807287150592556992757006460402059292472831106279641151371482649055613914241204840913170020052418934451565088035893666069780684216480636026879898175785455169012125261882904499071960353428305588569970458680329393174944692455585083323167608234663329909172640900070793491289814665582243385637686184642883968598942138917376222234594103576489436290034786699319171780379228099608073690882467109548533642728761932065332327031776139257128591955261978494037645996728698881146115694361994783231399679191718914718899877722082847506059406555372558542573363796028059846631087489902024507469815784344157566614778288854210220318011696872882587891218545172861310152154409863570686773858420494884311088402782193057601032487880112995451664382668477054648992237012732271063584266959671726949002642294562236209097231092832625375837794027962835069814333239144801634937604414004200195528125817759964293796653309075174540302800557470809269490177213082343881071595132377000054966617617117753817564501582067428344264644804858399375993033145953157238622002719233801726069242339753768966068175259119516669191120524065950651347203125409452376624928770644764381478783145835887818588015049423689526902428858518778808027105693823262640047804683981223792136820640000505168065755557539147562854858253032481712114705938028250498814638713907221052292725532852378725428866309543131125962134936245872942919046273070512988746915898625448952616832330687712955830494734525996277425236190772338938217893932612473543893837965816960555645827177967957610769290563657982249076791437284617222499830259362588712869323307120089523384746081222621486320610781639244739077902076034832694923798998974869437200447051979448784773375034767656616522633978282119205008567341207555480963621651585861224043437441085311676530557328942825270666288453726281727729133923274894779167267810641359308235061835020891152638443400814230473176548426360615738996613194903864018604450984033127791267455399274889914514394942380325574978096432193336721052643408270245582354998086243913293444534890015129732954117116973437393213051163126499291282789844716514296512450650383810525457019701858857127619707579105282739114868317380221691156593726185919950161054208000599587701181125104519811384635678410083126795308582387604770901714743861879312298689302741331938831948399129755020349908225270406603411788213764559380400503763370345157160430524561412799361435820390330611742735034177308038279306664063716501920150997130552618789732665739450817613561771369454529451568860245022879231874799151221092616061951965105031997076842217335884745715066945488167882732800980631459567186014438941923960701687147123098815869450671002699601830461802067838110184652870629979814006066343187464740001390945072471812574453415664821157929702962358705958179044691961494515800644193265227436099739083695226230392774636341775299495658405950248274792982350772512852086955146722490383147834875255126776610503307859418557250827102381217776222910033334421107561889285697248194674423878973228431509419930718778896693647887546631292931988150009299355373381836737471751563816260527589084929926351809628294093702733796711613868695349250149966773160363052325090722331012342085418254732370834394362247447176166479276556733715353996214335891210194344327424150925914829608824639923079125885484783995668121311825620903107824337764216371350120184856855043488412872317537918131146366638399110434383828353370301479888482805254519447627809547755272560005407451071636566718592308526241258897492460046856998498546573709701052520464115025505847371086529800765602074992087143010417978843825540491847640256308564908659680044080738211278741123007874852237266907805533521157778252295278601433616802423802573245256867440494857723695637363663423157619058068555526901748717882205105230864761695182274017033507948401225365818433424714559193100635696492661902119899411193405437733684087854580401051390952844315697695558978212803680185724923970484784311942585620032046321339627901455593800059690469134250067354901932690857726165740453612753526480196026677233900470316765494503585523327495512322820201402323411566301961725783404622666812643600108228516084814601622072835298021762962061941556936307494991804904988639404883757887189283773731261489638796550667317497011241223847786808675865944103184152224043848742973133671594444594818165959559117542166015970540395247060494458662552901884307076147109607913845985744806424115078790181587181187556412062851473175813178425458441015166225458689104180312488696168661577562386935110474394165452437378805060290541912735521788040467130648292183107696868057730405022130531311334091485718091781470980350161320948375524806317845884022708946619953572277228507664842107932634772585172352539375825818090003680324604743930453926063815877158706726182148967628667609110905504713166009435205577056266144803676523164169705727248368982603257001343775442938526646572393475189904741470343342253894581627702022311277554840739546499103143554438993162016251764940821927032330214326376123163075377470720180257619120186170347445054434239366795579670212688370361083932161368680987143656628174116580432513475769168339534778709951664320155047340265196860610214956384204492628052310992161836400180998725037741715753235284859006725380154476570607003027878622821119800029826466573034989187992499688893175464946583354547248608310954045410380701539338311858346577457056468192335768174810859127832579138033352561601406899591518522085866611761492355801052142594037064693426761705778610889314775446001945865003867646114846540466001048028648919732771459789709761973409707341903246534641087518279168620038503958784034196346131195966206349330424982595904344999249604712398748467045292393113051196242158670232342042869077475055544258838452368552539346762454000205783070165176423416414382829976466997223187665311278799203877556062784721628235365816236322619851094519542404552549556460024831598818333768346464533422171989127604820038644073973669411540905498907768556867885682642205357641785030486429793103995013456608081353645102806008507309615477243274573426806204410696761007703792219433297026705686237367327804236909885542072363961698717849318943658713478106743446044580295334168761789956804476410490875698197018654792424971654267069054944522911863298187493435637287496410266087142505332247002039832613059959219990760126731589702225082362476759760193410242410767865193894227247115589596680854652632666122786596511116153720216870715262773939920485858720066559057207385298646982328926432253794259178166737720146347122989972555046730198102513218812598441906802971014917513421675444676907037611431633470903538288376093325344802648988071297112768801673873542595353244764067993123644562882282060027663901865186197231247083294725322575091794974830813004827091674767836788775492493853500902348206757344248502388485779822143081709003394512261771435982014847218093061851178094728711085979777564606243822773981601614437621034895042363968588495078268709307200553943311168197645998302010740110897361634714920889602378952188159715460189807111940317004208662888578999641198245840654800629888016887245295863014838399556965989167937055940144250422077170753256111252981482836400853438143857465089535242085852887577069010133699126977480916277706456192820037910527675134507068656363327689871113674307911519588063121584298974912404512596406337681160561069027106675951597437291933409024393870219510376236603787170536029665333797264274799527808093206507744875689124249181578559662214529209069062579533022921463557365074908164098655945244866560888164912004340200532153267198308629318131115292054962620284633755302219969017469226478010823897779402703663015786805763414677753531822408626665445346052013399754765697862995203449548731980633031365171135382878422131009634938677340814158611492297038684137098597095989265398228714232529116180794118218630648666588205657609384851766641661079819477758888656460914924369582205288341709390063793844684072012742516064069649303083213714367801909710238460808156299840539114498925570080319623814361473078414127323404236172482648960457355934971984250005442637019287966463248299387366077844061699629873086451489845071200470488763820524469212739592845835212228691542079135271968117564592133758731230539006165024210451418155390947600935626015461584297545161937912502863645699141491001523345808136769316257882488913713989197595303937150598285825330676567690014210462203851042605244410066425301887537166237868005534811592661074134906887526401589416760585943703118315224296176822935428693766287559080718188009457803809041074747628791972812718812160785937234029047576958111896841976511805460058315653234423563887130613977526038464153454204696939958356789380433662875230254390127596972700538445478467015757371842421930289060610317406181619236239260864897149938188649455409884884873149492375443825332276686012948877007856170844380651613012580538070571407091348453836649060176623673991286971832271160026485582850780791050996253390501307906265610593797867605733414374028005279903417311727121806192127574897195919692184258043341795285594955733287740279572568531853444164200999624488150191969551600500016852278860386875497203225099244839507207693817869074496399441054194779256354248102208119793048288868563323885432350161857182575912232546800875147827242640336482792591627316643605519642380209125621636417586621005419615878713880038248406854120903741102542843935325930859305557303066010402394355475151031416828535816508964380648565204843400975590477420020862507504011178904134138953086181959336334919354821029980482865487195172326044063312348253762111797828276904861254938602698962129578035696015771513415999646156010478620797073997028057330831476338172385522081674908851346313033345169984005717219563743085475603800305098359908414671865271800128325658013216901565000935607042020347425285691391524703790583936249197735843801995569565167332501517460106399265125173708837421974158444026356615250808365772930260950436319913346704410592663817858370482989924830337430849072010142479831436170184623038663336292968006591052655261999886741478208329944484076424881193689802769944816031995339890324703487936134318977334349352786915998267740164247569286393621095227074738905983219173412082715138876284544971005614879370968177885618859427270197127802967844590681153001908888021863329254336481001274187316417403225308230248547359031707729696263318437713890313402344823195733867987646879789136808677230747554939308017008335001139182855177793650500277029345289288180782600111231671012751288313709322599970537609344341388701017114217191724038153263310482390645613248426558904816421701909055458898938778744412228833194568512011107988040179382584078162978784298982889930488722314481134629104136994959319105731631326014908451785533837692358561680045803673559106736494544056791177943118519254605482542534906394339587368895153135886278368152318349027105071010562413356940359285039069077385881312502259215510747220394673259525816158567568140681373346407010600504938565449320989048895902350030800949771435629163700164590722807917709480846348007078808667488204229467946739913534481390739074683371229519531193778140080288006736991097214029734546654010038753281961593373624015925860838070978386620743925905489364489929174993413602679711848237860255080818930050645306001999699191347041436849878940473225793512445750839395818615521253704969755702179743500551274658481016745356241278905994070993477953558698149171156152313322460195160385809361833363344756259098770521213462015510226793528974665097409649264297715766209627924122324955436097590871209998677415537778832320184568626770725073688383824137533816333905258054863582036673212818323419566559763649152854106206055117955309403153807733954405832912963838223718333658752644900676893833102331686832239589852387465796372885961041536286959422103235249551192757865358627926896861982778551818540614728847995264112765174760807951171259139782679401510645302053217646042848080434981777743842865173699438878848139026257956447861796516092340997126971124559976951856311888857644306130770907492608606937358399069564188975719112294960442730724196327063211423390325099655937670475066044674392530113461960608188063541981688739555919795108411214479474695815563429513523971714522259191355136420862666036023369804940959673201050300217673825635773476017816180265771654903927380629740034880800184777878548910803743037999729100103220010090297022006942092574588201112146507809644422166977964652840841676049760726520733929245671612912713714549174178037771841989080698987398685575846255482875814894039983762212517937336917649950120122004300183049363588102276533342303872515550399166879748767790769002438092328763511674409817501264192707123018939984945971351652332264825358541091912593881849083451694204772434801722228547926684922939457554399095755974160940724493506933335916535237485137786443678263327197015792763262296215864642685028850211214086963569728489644842650278423967243908115372287874532482895162561982098780896493112534364457975956133764918520235264776240649682848920768246208508772451961308355012614626379811144498790934217547924378325928135340980924991189519144542123130418888885915574070796891581502619238454122817805697047905416322849972848502789412509793077647830891896527170714888671536593064082262906887106590709045852711307230671322853991756134797021055909915513803518168803262240995169192465219480109932505943092265708333824839963013899013558464173947716500978601499426745419127951039336535036457763958509792875501308647490987760118612070026705833368961351687981106723312797038325774819804461884309692256186855985909797658039496775375168611686853277500250586942169625650345139989600279356028788584079555316490238154768598274323646782382725686977720744193906298901174657685125071606643125255083194483486768316504776517907074178244085963993558938150622901702083152478418349914962335087452315760867856784385383523761856586354461391617992095117930136781005066634369960482903523149144565307456664665935332252265744882211380155363519194079283189596439463126681003900465540943992053327506153723939553339505297417203145538007510150066534640959774720371245663133894875371720996577148232486657188317967950182979229750352427956645808520781109215802652374414448955857440365707780152169036423619901333902925344268631533842395634012113541374430898142536209151618664495586536608080533098044533931420417422111290098437345027884913876936484685453019047488021769873325963104609937604696611057065200119639220204698665626213918682441587075233247107832745734548218033348791605644296024681332244478031414321359627790137169426230787459861496317623299512974620511623700014472548419666471646660613047048367608940046371284594669012281162261929261858626544859651243006668864944206196718215870433390812470135565581547195659236586810344005223404927445257929727034850452903063259830178704832614398116838713960017302800232906379503734918205911559133938939780748646722727033085730332242076962571691574922098402116865990785987309945835764637712236594329755999039736993000667501377082521194152662827481287572797918237022486089923306815239477679228871211718713200799907450895458184333677985468056137798668208654988734315300030800906700724295741307054154950276521466478506091864096898259158724522354959263198676265908495560844743031608573279019161056011113010933361704667216529425364952154214915477090339074471603352091593439151554476222311219184751744775132932036922326646593819979859109869922223319897008597573037151536963736294258380000765782584474556508085958598404246984452660353891132983186993462036762241582920775595145898619939207535157373031136490169133640182099913617287422066798269162104715377299710544190600159759988743788063522035983481097611395575082871413512423658815481262871642738604994039730184977404773672191604935948666531776478407907422673519658936490885641978755628015074131157177878660367100188770931999392671396228705752455423409759476325986495276370021734672235271936329724555529200166629755471494359477088671703855719933186312383304094102062561456072462228359679503313283446865775421382817509084259268023545091065918381764618663820186286219760640336231832522565185108152212580617672701289859148154075856046642586356931246822298702621110337593324306487228267175240937668641299246168425818031620654466212260851739247658173566155999075454566664697687200019041303537861927141836559153772305105479692625280827618268344683688421240882980787552613095288453077971010849564868329016205527797965854199334827914999920225823169630772838604383704686236312676961867045840667672587654605319468103335616808040798214667959107680313311644626837445758666430313205210166933313997348021969853739048902344053157016676465541177646928051451636405146104442091879345569464307236624525223598012113679845318735652547691760845105680800476281238821369964771642146935849496383007055769088137594369772438454709350689378546911498573149645555501497247507777309394518333627985007435774514433612862275181035812697532812107472014070591600886456865133746973654550459860896282814958153057893358017801970461245606421568527128841408616452383906359084626616538952916285827657950950122537726563933215796930414550005108766462017593932355186378578100530531658401410576275137950806005504608957004813960257490439551813525814425891310650971018447473819607657588463787427803947708599142066909294045089354189018230259667834952840089806918007415899567389241630549407563090139279448227519161885861608109961791980853076563057654648134340032732975466120081690936088989135324262707760429868219765623051176111164240008307834901403759438618595795931737399840523784558530616117420360012291509832203245575365903386076466726869522909815345676969543223798176090254840179502155670181276617748051250375186540721418872876256862458923646532110706709367269792413898236117931019086766677671734122046823473179774291266371548218427107526129270524961873109936680856074983502244713144618073695944751935660912816635852486345269917171107740230846348887786474864449029717977427510200457532074419372103414826080408293019624753980847488286610273372335738182080477628570263125349894366710489561693055870685856730476799626905250187330936538679494494630017834309241945425036251127038596156496852508668598160375899620058063985509767406838318245275887152375441582116084640411309084690706818377208428150490987023663178011377732472314523614747847923130417616915011141217075570473999977655338715139332072263243110351395809950803189255967889556205358501948893383169029170801144850301007235596138496682412617448500263406536149679705400166940760242232591100477157307678568749307304755954964766956266073650633822786031297750123254456798944443983695937055067136066278610302555545425358909845281107286732127356466553968823005651672768802422685283084350396785003756290913142744232872227318208770634424183700059887967171189899075100960154963587191389026156626938500979621696484746321413093185219173914773237634735010927815294902467847300751705166695780087436759565465882521349888551298736180189380370023818880265698183356824952920392784945505352582757201120286737912170883292239225276477944276721972329350897494368311669254286417108867756903555664087021957841516527821786300204580136739719919171256032772696519448910272295652158489937549792063925560302438366824310381196783803320668879914716954781338161933870176917244616475703329817385072450619252480514895067959848744177519750015829378016052619053098330472957371673490907281495521484083671813912380208653895586067334825297163572105619748765982551758109831924250110372389166050661192245379964586772245914478879547949696383015133882419291684608045124682328932129478204481482121149580846115312908509986375596800239753468047115795537887343214587875182917736201370523115257188787123511164943751925990800842453796038734189630338089978697737034585246829883968170100607577391770587780787608869471888919031948557778299895259567573572466441258658110088373437307574657837898881918315037070639391881095466393928607606889881202569188999833280729545451312955235805562551525145687207404229731812187287952576083547543339344492674763075682848961772263783974304506971485036889755704432029382769895092769908080697732797252454045484458587497769725596553424558396854941389390383015338071248170014390928979334606635320321287853756174492268336897786932383830572726960082565696801682785633187200982494286134938848956017601040096739003361298511456294429306340372776634863393852334677661618460403768540900607529002234831581593050874938235254506717431208213786697894592624170195359286254865495319724712070338599641618885307575063430448750100823120980685474910429429393847171822216862804017639708482077482897716132232058435212136804485457661166850776028820184046179725247223301161596796887500894101735498565232030479549365634312530786525117426686522285810070809641993692789401721390500010237946714313340055921005979842623332150954638950470858567813839301828611000931503469718488355014298481164070746049039560045791323960673756280460036809715712074967366780441976246460428344607099085540369422520514221274300476325525120455790450969954534571530216050504097548906338605384610303581995015732342438654645062629078911407082653773766984887371769137874534458409379300847102426896356246249649654687707356882163528363229439830171469714916668774131561034929823052140669494029939984467108359637352136107483821410395838007797609416686329514781496367763551970991922914845381024919358394094220471687210235391501334853591142673031806881893665736917531802888475449742157048722443520279283893048878087830445108904334858913155532210416684451606693191046776699649290901350666155820859652763211285207956576672841667862147503420954641046340393262847127355425290052090364311127330820301692143976593088836923054591275950264994628169510941269110006647810504946216982394448252975957880558846304831553117250352923308527855848337146530402404842654299874986876385794371938696431573083153932326087406723974013322145874523029390156002553033353944207232539193104017532479014306794699279869376693969602557629338632009350772659750810932851447611440473735327169312876504029859747543377038099964790999213838176561786499421834197606404097933145902235767819044237441416120675657166213792018924009201682687855866942560526960631788743406147560114553375198528035107256143675620183167331591052751608284183979910788098415510001800124887639625202897064584936436712304622617400968521901010428457379385656879009261533362586200624946579532959348140561692001670108683367613107889437776440134812037481122212821657476299825903066346524811976200395537498701341502330072681442904739160741823441562755345124006263263233315644800000629381157719772781105319292288519786190633518725865348982349654853023417761822875204219310241848972256136077660026990863345075206874171042010629913070298091504621785068747522496464167938800431150554960502178934747269182469475033138491927680306637755271335897412259858217452516504981665897815247603650921619448394581785765338665215227747942398115099983966471136619390806607550360458420716553733080188711241253146842089491861984634117261771217576259009384529793566584991647873546490025684999038629605043064874483090676646729246787476666957226202824266654627455925152421403996830964658210934715875258249070030447380142683598486348271974342216406061015556410679614725498056761923192921854281885617879861640300247221579176139723333942687179768472651803507228430098980965355657246319655174450714840296016317983704128234032166587350509428648247584628790594801561260987798260553660545351993673511320909630184806215567642017962369708900046625785806323226806052928743071669536649811088710690080069177108964781638293615493356177858150688339202307595044651858326152939407272238434973290167176046134131849253837889844683315669988582361344239894706790623398381560563820823232982276551245588845255036327364664916352619353704343897898750743921340886759216662292249984550299550463223930058709274272591485480675807168238689732431708016319492938405484138576859190642681184989016741006761745761846696092090967482026072770977041437835222053969083318014657651296389391456748749218981989226576110380500966566824927064811943696217142906975416430013728881014128860256531171268973817453115944242232765089939720635903177987636716271048812280851235596218556360504545524721620327920546969453600496729406280049186182049512074192976087154333038562157824297219764585513529985733694093174674316144737723682761575601874710069257452466900126104086077413711496796256768137356187988137704781378443482291515164592507748554742578736098502169426443007625734727550600217758823935320619181938089841880691589840837391301352533233136218063977883889157866850080060987512671030445161791191816245054815575205602969099211086474363313910858173692464027911389533316467602874387728775089655696720705145167680006317752750566671139331596758755632917733211494331853004099753808209186649902109648344375316226850790803004195105135406769782320063477803292658008009995815542824494719724136257646220960228739940875799092789664795334510077004882979503271384961101564602447438545507724698663072108795459447730828206617133965664233511678024350566155641116913219308589318994202283974259637954984457018020592069411848466328329578543412982060141863967746384673797642881862647372559575217204032627777850966232675496991279882908993329282274804883244870588471591298120306676669383887868022157207037678327857959963081500173029922190711868692905653030252754514820890655491927243452525202405617030949998626653456937928446785133719837888074895068328234518218394966611464623003904778007055063797729819554037697078243727659625932772635503336841986316679715429741096766132133584912217658846052051326881950987767706126509954778656042028527049619563062074612385373664789701190835805809713896475501502832736947947781478613670811792788931396153731432560963290647311933416402310077345698654396543503936453393267891829584280813957337740104327378941263170676713409494121448071552004102766920839666338661672964587343740783215276196323187065731530313475462173113626215311213557402411237072401053722034322818023090286346456553302329575711514665269590970772637166135986591221041302619791132044969741971610593738110795275340406727066018782998286406327185787692353556800212257896826686827660626187858849499952524908526345585996765208515998244988338905892840701906786449309335206123763650872940454630176988793306504138242241830323129212816995157570297997845048808704720982177965273038209066819708801517483540238863593474982851181417146405463925896066812240162820514901198610356837579989548261438357183737850191375051977924217471157808144060834319280466558919521554757009849743748191831944750666432262359490645614114179931092692439118007963530397255142299239255261773961941889712304403755911095163376383695638887847329574355744681661590263013729442976647879121396278503028524719430097989082394441300727808429851002129911898884595251679832273568342800522063275236139372493178953615701336051372746508678819278439896192114203825631202275032594893632430497999552322246534422709107041108854117681438552086819385453442901309710627365771848265089664802364078263498159606693175533112082262418759774466076169773128609862237715834922629634892199913757747251784346060700960174278691052717948785913129621092486344007796849561590590434487441565860106178845512061240900282908822880144529434213459598097725658813277275100447912012802656862279198639663300136532363586159343894808986587559665423550472235430028250496580788237196689390661547107608675385918954517327863222029662203002711340607448299091532255601629585292870696991735968692033938376286984060464096649410607794462696751783369298031966922722002723405183397669511375137276434165192021776603491078895101288374534232498162544466874344091753217588124308590966251948532428311695494283690330704015508792831040095382125578145938334355375979109311791220308906696833585094220300179781407094499358722867333863509973006231135022735369453077742908959884724045656060438800154006883408166303720637968618102447444291017881552305834183142579990108898804943533445092996590577470056931205536639213767074282607234097871125086259924376191055289538738719166818722365053958740634577727749261419783290876600403085309855755160678168694932363618993276816075671012782963641386520471752764817322916908324637793080856360860451603874017883120163289023896985966942565367819312838420959369513418411053289928821652453509395668481743020580791089679950332469919153012267398657281302571432981611147965886693528941503397011661958687059014083889758457789823706651511747541215453400499880612082389234916792094253883846667327276870225324978179303774413564038176038749721552704327323628172789141581229592540671806657277079429589848907969329600605708666845660733993046643342533088923891160043799006151330577599958126352029953771657008662630540786795201692418984582994981804040583107702469028958895172040812646302650183628996448341777456282111710509435060551359826788431557554698395099822076398685595069151879229319039925913377147267302223560682370723583574952490370371526599174292070493519504915656620791406354028620679545614175062644431827204272098166897490159541796736558491897245101581654292071346119414667359343722751618247441960123518492784362568372878648733489390888040798670622507446423442268167864807122915241377498196579785298040120141041736493788150675280646293868467952350861833077816263129008452719140276590229186267915602997864123138813795748491690661900541144498611588412270312817225720470807877289067108752575896319302376015763029018167209757053981380483116902331461105409146726565464257743579940442677762349884627837972585005828335758815171911315017891454001768371629942335316393050107872655429113366632495056303213667338802492864399042294052695231418687218094458740614715787060938250048632404532404819228835270319368450275261042123444055755349511222267412217452639411587840765688678182701249867005919161332345975397171441577333695704787588478753394178477575784856121714843829572176263240672329053555438095368184759516619415281725069837652462331512102406586221384490301532496579682871553684948911785171970705613188583174678618304075215176178945110293526907008872891649064903384818468656168734565467655466223645585688440690444523863624017575065980450032623979832025113644224110187393946667775271663289982432245814914824826998667055037842019185532927764182911661208350135185097825745097882104711298536909141430620008276245218077167910632334350504451387775064765965692494112114291019388013378622593578762038023773246576464358716566219831072805804635321246031477921169626851400987536861995276934995769650963354676278831116774435664087075204090612598593397291135845620914504153485651685648843297639330257625299784242020567122378236279994322560863780129862510866847336348373612230314144799166121040344402298653070079246633113983503118091881819545311423618564224992054081418873810111426499727220953058867938785560128663144489354002779872045363772315680905339588437366643244961569780804532395866799420130289022764897263730607890313918041773312773556609720740188195670675819438511043373031581112098184531642066496399680936143445781244479543878927125247757660781653586600241764614538384967662242510435566407238170017289369006431510662043249879039036955674486303430817835917041303163548769943773729657190706712045224953826538490792845142798402347611130207077876534203702385030554495280492452194424188370244846756602358967745188291532571550934392543072801537827970095585947203218327573996593681665768744803794421099915334790601647709011484472276332759541498708170306516033483239974688087301012363361770355716382037554153658755087180012160577087399186400852420912132950648767328154981446582484225641723050136056012570130298300960973520027128211234551239200847297738347304447489631413367873779845832797435448512285654698240781890848984371260307818466169701844668393344085624634155794450159967258809584579866516840570985430584001689370977946998175405200506400570312038015921231256272211635529809236422223568814402420648077793452861715005893901415327240490508259767686155276596098688180520983751096235244205010828642170795459766874810694958548677042895616012166970674892183215231565719751005856753821862366315347758457250695092759810201902318665441804855970479193771143836040641653774828913479362978808783332574928753459879827670221590806669750042872017790856043055753786822726176211142711392052643617376199293347462601375824523663554474408521406556390086056887123340488828819045477306779429611504763018297910112593923535933714094334073432565188098620324276754823144539686325597508904503213087850809721430010505327123950949326201007123973534630636105350913479428529879372859625960087480848648196605850791328778021606943088491368347245609271536076219310399086618412980281570448763982325896890010570176614614307828918174739659532434365077232402638255014855844682598501947542351306013939608800136963642016933570385569809884994522746800937331893299845531265215785953606375350526218235348929333459240130462906926057812560860065843823127127342949317396615911698922250388735615251229866408955370313565180457576380078988640154003354735503112018358162756713377276439326244274326150774555727717812928437575802660768254024549547991169192390919406322292139960215417616919112116421474882325771658274769140838933916205933411301214625860633643730789370282593559631830421658010828908092786627169176325815602049795587236210982802844678730358371166912953098103618374070427590421711979892510563042055041110467409510817970313040067673178269068275793035419453032783893245797095372444593869549576487300676279542552162538768158574203691296638019376241276622898394134395696198778993861829690304058317470376056461921751407978246964921592323014914354891819637822018621902018986687470609646978233609664614957063139807476824093366442764469206782914794458810582083255612923012371513536179416057934272205601262135270087508725001851418769087808789017983841508366717362095045382606512543673601435080488077751223610222758379497636382656130571748630840625269806853495989168323057140610672218271642164782816839590180378412859502624855888537089427781790597535289383646018203476682890347045855838735090292790046728528711524332584736474160795093065528044151721990184573829406876405550059349793502268338175981333646074598574433005033855501655085550836960624263661696701268159490650846688312715179717888410104767113834400511840372045052497264568882622806576500240289617966522836319585136292734904063538052057371144160697826657027104282792761872806433386806910106058391015064072984714931485954628703815488929674552213371364137517654940341048289849384552334646848560306602118463557255851065660852623700856290456970334624402231009857278162045499508904629903526595964459602613293406948212458523351409822192383688007036233258748585788394397755671414180194357719002914072886412225806706220049339801571268804156622241917436332939330311531667157424034738134781340070242314557849078181998145514797792849619975592469376316639535884090339054949415699851183039483574872838223324709646255658994355444109967229665256391321779318591637773386652388335071842212176234004799604707216747029399938616542080052500294080459254179793645434959043796075700645824421668752888732233024559591216104950088977379098441977269112627072879283635130383676966142467973860650349804682206219816361029694390871823953820598504304199225208461317364408639283335739538704888809221511003762669203064075431847592881442093466409084843989731761799364852345578021681877739599599653948629156559203294958524281411651172307377995372346905200370367648889626475854525681964160528016555960053028786645470245728851596036516867804295341824034888586741375904196911523159917432001067415079604761348932944952701003717981437999484568185775496664534448207016413635086664742168949525041569668850444891976052770159920417136985618957898680567602040750349693341416836547164163742107634973394076517566496757466157770329756669177337807418814493619246090106955492305044977249195964800307450111307395626355647314395337149633902068565160132986084561287955085450950159384541153351186429818419825671909103254521147684387581568968659825197872439430060744481187325682277945501521128269229249435678921591439366509484179929503981417698043784182349760223960227351805191828857359447384438627565269505411161125370201571221856614144396763935947550545621295206111557098304537268143684568343419371938655037072115832327529565997625111435340188144687840729515880132548809802941885164847205991913174546405637623607089821921214472295409519265985076283293386570239234557951730611117729961588706052679739165564102393792192565364681773212337157253290411253932064359049135088896527236254417334021425432460287631692537801950047024782809998166572449395563453806001813934339611665871686089260804611778166201625025402579876013624045273944469082953418520726719843790403557237067008073773692209921663804732922137797727708419430165894104497698184071993273678694449088892285426955209779899097146264009905820620761009105406830417401916228590829714964427355019224568430519024628739259070397072730513733519238963970487534152143648312966621218157833466512001039269052299544364346987450054316137794088401764312003840107400481186795050426523697953917083197736915256618275517753515741837924171218798158390888963696891086580513182636756032812259602205033080427597524928673167589528020787473455194026218814347549463182219441828556298335156656066160367359105641221059023597191776885700430614594789483151389162049172048514766217885792951787006148733672579098738312056550644140967187202135394235307413909976509332980802989380597005476050351712355138407359241158199225129911769051163680086390961901251386334529781399627255309920211379888640082929459062495797299289273586260727536988007663890258958168400841485049771196148006230901251087459089444733887067346807586650114288017089989412226767833555928417909823631024097531539020709779960673865842824805472140512603480434822747772420786209012915654912334543121791262505245541333109807571382952137075918593044197277719515304906083838214745702862205182578038011315784979015734561322529588868370475472743606298663226393753744746210596121581406960979712931294398879885542765516393031241552874411550463901469858457185867836613245765948975952590831959382392801805143131956373130642153963737993219526324964770995162532127543787724838832675609520391351560866274017777114387624719298746285873603711075643614249540949770223672414411964604914393290430753684942544492104363941298592808667409062899322312152748391603999807941551577681284253154253656737348934526967027511798838334175799404973084680769852544019383338840535154873951838045153212125394303244771303941815349060663354492310698671603355954302522038158643621684382394623891441033002662144032961506268585061681505765746701685358268824705294306574849933466151366415648302192449945338814856592790818448097286210876121119370687037905927779520965235544652065111881926932954457121263145093180133256046486762707543489378431902091378779177821677880660889318355542260939616084040290755128300997863108092197335209659965116848300172119410856026935434051330510740333797092332190436882258794457538821300232651934891191211511602718105367108232938097575482958599679701471265199608910953482952506638369767070685874307092807274476202342926565019072807382591012378386061317896151123782065505928393999191817419771613820483638242752631005376208763799163765735429363954971459722884049070828049640430426548331197861926469676282454463856812907659346997982461052095352508943647630983532000355325795443491748150302998981860322687954487444037522672606470947826192640350921225820130623638470888794951114845370913643160302747519244201544069408416325643681020701104397614533014324182106673561379234173325706017935595436926776553910192888461088162296282110541296016864747695027632192784631967534693389281976930649904990586705524620893578608757801131088371313503619383344197784758652756810425683151829638294222270540336909481825678758871979572449243558617380265872084971295560722438861610936653879421852069938476064915537328259400837991967377471481539889728301283902365069337692655117223941817496018027025703129601438316132187527355260635638087851597063701848268411515178530387878696845654008380415520829786786203505663991370062566114022618976298759609054088329208230397832626187080712693031382511393567326488118833442580183891230410364648501893616230249241272127179464622417332687480003696840347527531699682673985769800082633237527131775484077317849331109927495732945040215923833004564387401850816348940479329890625312155660524663483322057801899159868662779270649350459008779244663191926587250920509567041425096819531352979991623365231782985514577610763549629262178693855938319163630754750695041035687410618670468538379259353809155116819064749232992144463242073394019441932669927756897416637298928976535720840666972523279813687598619774352643636981561066289279592766587429853446811281175906008005169618550217884745563254649207456161970570474940866804050005103193038235864977560872583702688919095186989479444047536718537783129966189986439649294169298453866902942144182167954082361451935048150282525125833411267516895187098428067895158400875380744162150924887125928887288090424829124010377670711776151285551971375014582620335971583783820983830960257288580940082171841613864183943930930205162278253230435765495681675806348805464461374518599309658846095329654632938617530586702256011933269879634147249982929881366050072074641349799341401386727587304624387357852566440627462311303195658169491792348593375894450772829029460617897698239337376196888104866263626224940778814325693080384218652035011690617892825239932175766617306695337610679775063552460123124915189223372790873332673802942358065049816803357520612062890220248275350227426990638293591158396030040669888244528427041467229027552070985353990736098115902951697205621490330110712193823845773217877342561511892313180403361679354881325071679597320578815367445045872618171537412332662972185423139733848099843091441875551112201355132861588817943843039591168899695380934454214027725470916583958458432210832436652308623799862777000778312969294840691199679386798775072454343126269920940682589784426282361780622409788192006649482099062027086963550836099837804793750872079921346709712268407940373748789873179492344100819454024102635402624205014369920084776308154149245752461169992943136792398593177786198230555033196769658186170007008102275230102695954423917271746315270209029034648553757842389119343853083693509689888312552051954546900141664738577972650367874870405240140734092627260985647659570785338716368002480013736353865598056838288757123087566285223018560821569890649682211704438806552707016010374161066050566800780032966776421558809853157991594653728269606575444659249899602108729056455541820265384937282367353098858875794202452685625133819649462549901812352870621513089783052860451026188185342824787224408660401689377344571127124347256346663798975256829124320247073498545906414663309909070963984078398569525403866905161191139194054818352593328116632555816650972917880487354410154811685563614172280773379582271419567150863953803727983831267131943609638700748528431751090147841878347612594127374090906599237736820284526756424546158062428583696611079442632163196285353192807281610388520973171620453315752990071158378985489429293751374390185434695807830585283311159935580082644194076694624681113086513335342880740110174579653436392300043451867823721274397424867723365926660156972135375629510627980345711381361795386507355286802373929613468543511215563748482631459411347230502861995245036666880382798000677481192283276965137122997862908872025785968465923642902966865622257104413486745593584881554479927127993833339323129716819745748323327502925926877394588099515976345762951479031587392101423723864339531917933267585262105941814018167522690394754585925096446204034168349668248409180969749503624615069460514754261523747332284562110380009544935871675922473756844096567046979112718375789629887080940830950608420299390304455187109127011199525531560265384482792411483950922536205964948135367736031215652583808314464378801439858008857794719298620703764679492129790262998907459092542338835076484381752640184907080065028853030363939104521423752987021543245674458285530779502246162347855933370071713398524376838009106686865003340926943522698136854674019119192227943885110223961102394510810242831704456904474435995059132845973747365293453228961066546556169920364381976734599862100196286450381010528784693211510445120751503204864000232088233523613491478373668773452675922634140558529796752594187209555804912094146545160572518758510703925730839107630920154262856952818699587062146941858163802809609872590861623128416461930064368604082016311095565279365130964875719234795114212016315373198540590321428114035174616490288775165815500164706868408139365194966921375914228276878329913193436896878769917122842027253368619825694037338360914393001665542580108677777342709005858660368887725012572311405452917308110992060469875976013176565307207981501230666743803668105166368201293268158205981174351356894523994868544142429291470743388103144644347195257857221593818358373530836915950463493812847569881338265459209909612907971980071675290115376641420349242810032224714508952570483848699649066877603792221105130397319660461499724280873511734575053118575656413144931798185231734119142470060065880325138244836202756714651202963831465753939627025294982595258800957659051101633595851100192336739322326039726065749391080061507642564810154738517958072381905905694157003602243257898465210876543989702878833307323783996423838238075196795368824492118791404004786536622722007071805851686490599990672435530207262841008341214304107475366048592801691483169737210108148882721612428690310175816586908184820354505421455945181813443615435802342168429906315854751885534247739037257981437999699756039078257458697074050154849134997127336697924459523526029447145633098416822371124209102278408628594108110724202630337740588988914406359440467783018625046445065560472306575717045587338833656755288717452697860660672023885242705979627805477825358743587250204164158532882721760216811706421422239859671117609849862664587401719686474161810312527206338323737142453545588774686270225191497987084920502011257389700645128201580125554383005495770805529489241543698987085393501370011904218288656856688223553698234539527419565876549414352646206746029698705801101153400467511937193503693157320586798501288690655955096354947386463310802000843754293725405904794533545443379647894162612470436279782535002849857722912610290393468204857748056602524824393410988218898155544627413209799691719482024301923893624230949615590169033915200218012676705438644861456837094487604582199177197667129843366587492525104277028333540862958424751885899989342907720427962920737548039717225440919920863118523123680889302157541858395851284965116844185089343633562096249586745498101537058993049694072217581421557765358103491739602198030211136927362357683852333750767577583844117853625198639227068405929154751931012438752327074937759048149158970819205874497782228636894805755462133815094546418704579364827733732529892040195081324178536088082073412943446181734347199897530400149187083595447333906957836055400769529307858097041995686398996307825555264671811085613556844032702714291053142961677277264609253204041213652765878451663147451706058050368958897545131145754748127897727426843151547285793828012029590361564223570807388197120027784730732323915109305513808567596733229662161226703543605541691129976741663984207049195610343583348677724968752550017004526193599186537146509679900911456204764570602268325677653362555584613251313224885780700279016279993091834731277908378182183447939653930862856275949950176399302383190886332328919579413946732873330662856371124901042864497840021213604203145662711161111641399952586993882692509379612558027045635445343239257254498440511570375272054774967758617279783332359896605185539412124165221211831117496631888460585422105099626795445006520893081440384483639927771780854184683018408722613924095673830298159551240291582130251755602529924512341446702781511540948598140863078345614618054022807866794208567286824979242948344802168145368393478576386544529413462141101936902352987741812764804952453718817952452676052493786269292505650935758666837479959958701781033588548155578910994321506125546835946736722124707260798609914743770056055708754156369644835028600811314261815934275803026845271880950619072042373082482699885387608344922833613299363052156063267852727519998763071884884170637367502346137542720985002740966473139207005044224772026104631937806007812635571666190289929545072155235189282167883741330767974328844788966512299233965048882455347262396854039621730144692000372209285093791310126205008093291470791303831511339435418333715159394740237510691154376514310459676749892352169060333917187481261156999857583024446800377025177345013920124202510398564924445272011162815541214403750270414604896010149744992701924629270210850476518340021938082707554813267559906030362722775060911488792327032118071533381083413410979325276799255322290382009380313736577904859796240417405597317612741342224703733699923546554753210900273842663279555396173052566946726704375340514924276896702142664875144452308986093870667691844130988155470537760321200268676471992214000407673242999905887779951873312262081688252419171824235674983579398636213976725241272049056260317076041754269667779957992376303648177516470694667651779997397123398267940234631824676993438014759484206707677305889644828605866679162112239340816834535240248062011824398933511123400779712241188856868579512651270323375628221862282285399138325582305491292327327272116394739804578357298758300479598875405152982770839250879391446904520799618875169338755769248460041755279212646895726309911532124748258065033112924271072798045536847789648907732222407309999552553673396156978118924293424616008910811352274392409723914686806901053100462185072662519926102968126574242124422741743350545899561704799307535776535746749960126792689481514601266341547620257640193136748978510260089216674332174406936755171574224596458153528987643184087781474302302671828818546281774459017878006090042659743931780164061807665616180065485515354345774922215989808746363252182568231448887690754370501108947583986310832356669020775434628556337975217625199259924607048351167212416677008473517341121494062793334859274176459968407723203453638861707768772510326508264496845480027064022657051985157934955925922272208450495344799422869340139108431727181447489738312800146994642713241817380244708846316147812737086152358975688648240802734261272863132987489594168027630671216184920274127689341408439299924085588528361704805041728370512746370020986298445555204232770754826606786766033717929161842504647987314235533551529530782393540796167005939641194531677830052098308823546686886413706936045585638638595719135613988141798933897495742878012058899544371415687602792081810143807405214242246920064652700256699610160012529170434786922820137330590474881557281390980262013324077820025159194745934431224452399712786414030016298746733531081686885280211322203688509605552485576725715353315220625676206051384102830307827092946887264332247101235042020249940686727998286045901481323332405530080515378328781100049663537256324886795941005732251836885045371565975412454404413271139026776760100851482345710680875495162330363465125961758972968361005254498587428359072994038811916285391218277189074967959689564236877943411292966504390312540763228746901045015758655922249847682255775316444997013255585776960800293034449473783839658301607395844973801074237237170864238740909299743788850666647987180368052684235303227901003242793478128735938727278408332642048422113896312458613055881114867353512863603422488751406676346385560672934282482222756803591062660025623541058261012843456317817558949820932059239347616166733077204786390096026960323233841003057180340018030367427666005550069213482809541544855667213142093386180143263595820784261111702157281547344119125929847085863043680609794527277658612481487237419131494805747720483149440594330732869883158500802780231341944337662697380250464430419456945777699874123741167684528446834809670323883136083989118818992766308613024155044094515736106585500600639197031197102057228573350825198301547285080239086349794742397990838028157360969843694246086214645376369194415157731799416836955555031759986616629968000181263685570806579843642809440939450121931250644223814344792671505152443789702306778356783374816327533085955868126527413633308992528287090684407433705150389584606121523159074971638001024223596102932024498705949692988546258522775583738867020394927221128124505873831520773752921831532288761288730629780373875737954955186352553462544254358989173227372165824577951818527350447584951426308577462952536657708252504575187820251422824888639005927984990395141629206640748559246630588014401269159206917390593647668314933564437862995686114104466815719674963796464579619706604834478165078551959477706183330157665785124598962193240814463899566563684191237663508877314569109230260386269961412249146991571167441612781315140483064088859841345711561847405471859898879967196985306977188161189257513201636570114416597503065742196355486014680764027716860053101088235069891175440871114643288556941686040680185448291119783560343845995987024236768903097932238194548680319330209742396414927394896042481687246802082047321298654429743218814526737049090803308897469973664272633757888831717435934928380698195555463807547189392805463115930586785847906512646074588383290522906172935614421763425141738760744991458564666100894360343275248304273033300875876613472111356722990644420675533237821457493334169910820912390183297401895445862314400991241093769461536843657501774729020792796663700330692162173984059756017566483389312641067948682748904875062514082325251751392959174601832872984509140515774326168947500561871340645534832994943331405538063621648339182141887087242540748243700157716535242058141059824699915221799692760757097913405549628704946192200857944650280275273355864954276766863931337168466841554549681725933312226093215715875445119579593040719135217921452559483005923797665406547651747869006566133905664531425982507811259728728872568066722623032569721806028133559802775247417833071133722429137752239842130678415794853589108729345460553132577907972142856665504386250440649692496416342160545754355126793986612056819015035694738146689027005090806166532162816004114280607028567877747300150883025763566245177262239811120854199406368878114777359257845120741786149608526228771376873290800763220647129904853414376320832797240853806986527661917194907347544070910018978843757094621626386962191703276866532815531180310559558720061989686608698576141906616842191123017384712265515327002760883287051266679917431676949749720804553097918431583524871245956363728957302024601223312449906440560312895440743905653207143367283961531914547866593279903734283986668091509953766607682279253125267942600963470409888831341335146403115500668579053207479963286842252779338961362005928844952595178429291393645092668919793673299227807394889522024297195015523466357955404962057300378927232960794500762651752885189790047097436255059656734197935153317253904360306579771214552206403821787574248512207464749386294710625797989649061418468445379854258125460272783965764399251524247772277942375868136926097098384941891749770024436642840864668557794675205399394252878853276417301843854038059491914088531690847355920141023393416177203666059217231762604840449279170668846009385728546283201701813712377989312309916897282732199853469917058103687319657993050035715654690614109423228923205562333707671165047653674337658964284065789661929920966673701780835935988070264226360485112371892849168573677500902300508321966132281329345092070500620790236558376763006887768941219893102756204566455207720325664581159981527299185239107304888550863683743067390998455985782247352589177964025607190807753267596454291814710372025453489098267679684010225662769104306279880731969408577808686476000963448837019662878579022232146438574167295491258468939867875781393316793912976490689516705736844744614941122240970036990324845098487011701650867097665012635447059175798112747540457383284807483534488458017585205548740469162425972911487601303868929019502005219786694995951034479589369868707224053747683678282253580157274210344123587713389675900661414878663066252070874067998952619662804133577613670831363370256781665704140291622847506792073316448124496787387359931814143100819311471786090181474445830567506542134026498396074461877639698454252403820185153754009023387262515402280992040410164879815789823126079131954742305843944631510806601017534224017695322316671975087142971428065874529903666393580382411754195848632919320476908572774184082396231008634595868385687770464496847346346248447461311805578443669103951843495066840171871960502705531917265329986252610446205064816339777194551148137093684362746130942904163917841909488480492696172452085920114977436414594162228625294212377427758575720521537822783765243238638998529665798127220808242374285369872978639968757312090437306966398271673587285428041712041143394950244206743693845710862527963089540009493276397764642420124020936492855388566785391475141574339411436292211410817226095114730537193598347706747447977851424428174554661677339200950723869948122140856122983769601474379360531715716461675313269056849545199856380006788697016406684439162126833812556893003402523129137091133381925865389146573337519882397530323683191486309136810388735128946489488091570974093830188270242736793505297746826651406726518968000245174951617660700478861958082061380588145749085869724214270359376828210123044420489240226251626640576794359383113283068549469103168670394759970924592321060046783271846093319797761570793524672973456089985160890082529878785234269102923814205963229677663932943819786941688862959744455249814150276625280495677897839323682750099906196610413819210890971914061703899956977623782548020864598047248872675692383259166274039364981898309170021198114766224737603976780463438763275362411141002926143435050315835779796595265514409778328822132227786623120950786308729391231907535401537670026527670025282024095847475975045196859762454864070619160495701210232653802267653408445897045230479428282579759383764332646218375459357688508994582119155414528267396819806114367494723173387458362699264425289420186701144531411762703669913663467689664414248536095100529144894660875697801535487089473661201994554297966474914285669541791787181048153330727082308423672842861843000935713683352217312604687975883523235602680282182348151731998561203198733904121635407082588941155295572885648250607692059689746771648195282300629169237339943629240410690767256672227885893516772268467843756021797924262380009035998083339359582676122867462273768526115760830200956026740802539471877888821814916621746096714248218209159488848384541032714793747191446395039945355742022410873762072187329411360474250236045678357727117995614242118721899781388432452346744595342377915632327671080271067062200766873977622548421022999567982132309096812268015966450566173783714317573475942671523704931264130948812720208710244864820400417232220474241994162701265100157802879300005902960141260903177809337039850193983966770856687934500915697791013519173051418924433422451401912840346135651100607535314160987079953698713387620087539506214600757349923077421748420977004366768270743903981242311373905383089889769426715598082954531868709480651415018080197441802034860162387733525463488411217106005835284790680483260126498178054340408762831030308921347348319573002005263780126022705559128955210846258622918501407452250925003824267964847490612059776226766871720198742326587034883474396586663624587433158458371120057344700370404081345106345536135525633204565878979158790767750101245386268402083512210878346681555007150886812916152866846091562101319059162194293606931391063236036238075553238691512410292347698270504978877004238615231632708640145199808218617627159998643175407351210070204486325585686070451409019562309200737434511704169880493504367401988993313801649158557358005825582129102143090225446403932681929570510512507576076262529149968663343235629317794875022357232316887734957498354304807457023894900405236914727332680851099635440816607002033770760473865892617154207995197246468757208824366294167820378148703936214758495809161149362950428495164017543814664342437902803573396844235882135898099635096739864857663482474095993930172634245219923866882897328856415235138975700397228079298839995118368708624804032692328626928642675517142796182730498741259974527262736765117962324560821839913055703835532400435922589220465108436743922268583651465785737014573814623476078073463267835814124897614245520297884022947099002973668988934764281005736788516203058929569736150273676145618085384539384791477943407442054078576090551758846550789799955844002191565784398636977179344028685640458695554154058058234721102791559365966422327432560135719045979701451105059394717262312375336514001992773823026012492294565808656254650798213888264057073004299730067640874038200890303615359326092615386311245803150466114901378790779422151212554513003792336209676636308400254934258902505665967794600245550677682279863401300363672227372145629773692157595740180886652307724661932636496398883309754512541341471864854781635183377869957191897389971826348008699187291489193655938883077786084910139362556514613610105252579243545542330489906902435817437127577433318470627805556090775572366451791162410209544995024147530281481894620615821861768628054922552326686437180466690936568960402715329621883452470238972027962103062372478253624287592984231533886455897547046043375354158817906155386591450201798457331936130144703530452178046700287036703184236592474987242012259430117174147222781696400046682572069205025496959353628712548058467607831659472495098020593878700233125318102115263868004368557117941630020627782288702996248149310804098795304652304273183112707015707646015756924089264521104976416074440226418554787808200238637690610506569648124671775452889806838493108831645664581466480884248341218501471194136261008055132747092843934482041438062886385407580965054215854069463977745453292704649483552425477093261568184115107525003116060236687129056045702991202084475627348954140653250261280328352816397175672644921344541500875301956443915039002411728954467044800842901470419539386819951491299161647214387393799455195782331043983810258482095014490707138760216853695809149409618257080642936691145484301891911708266850628286824905047984364002942883101607757790068829706616609249726646120779872644148115523627336036453230298984558008226882153765025729122265347906617753020407679156018019464689522461337857412419562413558211233980486788408880165287792302202099177981980083851637680875570660311683719340793064165118755381234737931605897564568693138187474448155265642880254258674851624538828373636998097820392322803209823171468607949291627601640018795493665840803273945512844219140285348739702664381236544636940284132980309330545108547571156074896232999668776499316756096402602765852976828079896617184178961483685808582322844342661669664967956408479921523270686235239074884279785940824842829291753389741859237516135253558185389899979473155034442159624535315187272873927508624861960914162155180843069467963341579258168818030097057777751654880468728496419752973506874452797516983393554882799939432718395190021389328126034721332672432367777561054619310964909048641611609987404768121395047930825833358824245316892873494593314870258685867258845641006827475902622492506228405013991815396569130907280094214224919887205147131505468253996616646523154233689684203218774091525294670087273339846858662148029397145555449444814720795472161455573771066210989039721176039437862460505351273947210042025044276574846457411821499041062659914713064115640242800311712925880617397356234550568251272097430752102809122411056044210979759663819316243571865213556292477300175289235551420883352690866673495572967875973944603612514198265456566916839619888085863061272326934665009862835038786577047019965878507728932279345926492260519229689516170368058952824941421379093177057528141798790288976404398367734638263554435648948122060394204976215630903307559503068266278892275465885848958510616010616584380516765476179321659967365793119281941617437591026060706103769282769806944020309665426288363372604827867624344479015924721399798370518049131890241026826674594777891037036881775049539488162946664832144664108552646317214593616231288432993326201153201026294571517682024882444926752538395689306305700796116200785622704935018549170479613970966196853232684625867794186194954033911065401931485655460887221956208065206793111351921640825809253416707455654627472555350179378310108822445281421006044945248829605806329316648025133037664417008236486912485246503499622607932994256776600568381945250125304160914007069959102821030599531398891523159330400102324678028716381338876028190512554261067768872639196340460169715255876889583755818421672325860720961563377074439490877913092263560147586379065581987983954518787940251164339596979239072417973889447242965424131068540942343002681299487557449594469541222892549432057229688040750847890651418057047826987311294673219756566699404553792961642645863299924277913694674080640976209495809027898584529654625346359624792098046253987693132422112743132744781610889087404416205242071131569136680629677036651012396288326325685847314220095491176578589285169412328269729972934819476376740602055295114571438024054773384255566164220763719919383636392119748021504632810089334889620788825391358598439029302097668073573717570345475510422489250388208147438907356152539766915240492539280874156968594882167272406317027052811631664172950866616220009437050412188355444595497482975002543022305611606977084221330684489315334927302247188237991625506915705329516783085376384012301873712782757341079226732501308250686608989193333687336467314644106125906022761819656787862694572321349849472892678591850565458477402481994741142377800041621427224213920148751467126049869166218694025684275634497454976902723645704038239142595031034736223211228967110154675448834662529490568444251458585248525837617302824266783539805115324998965697687315589403780199036848198819696249196975936168819286018706656665551071808409161064330384907128818992446252630229210249192104995778281496016435392109874327614955740560761128009471055916981982094032229109888833454992252093739594250793838376545427982266697867644722375294494720855280743399246133009491719549644343226833636550209097913242748325478706603924874431441190418043137911084713055238099791134462885508995806766418729228656890530551173243093638558757995999584558866703872067173559011447140208979201674173755674170691419926263137601061555437079398645995171168884422344284303549973226008136013538164164449285700483315824907323054363604439509450644144407383047231112816555012281728246238840086693138380071289363715393659149623511722385074436307831072678604098421269994497895456194564281946605485043631310864169224795109703771354359911229511798162786100719318696284517324479118654009685322121751541992581097591669380137940343589794843096281371767817531653910680196840765739524997320184154094064530021713336745377637712852815096648816684778297879250756720763988411811394256618730290379068045946710834518853325162106927628095664995743335525655087144434145782157869157045457459304505531439953655168069185934492235876844423436744849756354621713616400692600222124697341621333519620469250451716473696768454325691804439765943741728961767358417468665282589456098204213272880411085535569463394757076410629032599340204031634905170746470214088900283420049747648297064101790472681763366027417780644790823474837353979624031102633407483193657320592120915327983461922713582185987861050356059724256198914960929211074845006118758647108497724343583906997633755264327070594611913570226344301066445059429192439860704482122327987061270795164201206094782317868489631724705702541194687993511128269858398146463653777352377722263049623021462940805898414999860525973485561903893007376976049816168127131059562577753477955655726262714739408360000633507337902343377046536658266062112332241036763062099169268041477122221902898551906541103528375680069099968489615014057566220145301806685997271995800442060999503216993177090336166946094193407933197494667415317783038008258037713070498283047446288109582538180099462300268318792059124950314241094095915665778436810758471666402396689494799378049206704214187641735764023545799842204341925659124755986683513789141682334232185694048050687935161273917550725361183244077244611907305132045037504980428248036885012230176505496475238928480265023207494757667459643887325802163545305870213647411245533694489823343316968856270509425110875612535788968945444200404681112880007399377668720061900702929104745542784992996865882335943219414246634346592147258024773177718444512457136709516651889271765157487755272215271993156234693869083446584693571382860362701885717240574438639728183778341651555859455988283817151373070327750718798884660695276867587792520713650549524237660612256449135265692271592600224510222301429477493969898777583925231743699931345264681734725864506106824936016762719151873531418428310195594617008956717262083591295301762663817371414770078385378765820033855536753287017512180105787853164566708144105745342359905498476418172976025639773992401787630139901942149694221153480884989069579523012434042745112750056964909400103900153688153138202585768520893337694253385391461344200392942307879244382930879119354333316758062227335345980732115816709008991080695363214010226538657115089674756747577645539589685677643833931195847104421670563696459253875558705548726691742685442299071119861073720508313931418756819906812802416554374546100671727147348393108071168799207667620928266304253273740330895370040202330044328722227912356323991497859073033142856292003665662610474744225676922470200484163700257288653051580805257789485046199587057282751273170109571585816126492408717070666258300107837410387338959357704109798217872308835613859050996159404904748512434791881652768489131015408051369013515302200909121001723775330131467151447669211746204435128325433441911107920940419857118697063148615805832089307670615015851577854010495616490201392578459163275606882445505561251511974087760162728365264150376388663155339642621792711094390013985399698749265102687249323539328142526379403099465120265232293976806811811558395927949799824847403223149407814378468312387157750631515006530705413856378461893757831796180077008496511912507535102638221175191968745759219460281540764119146995174680186297498019453704868454633233276975214696016765270194936612363114549002987917061846723661110688007162580832145807935320676733752137260092923500716590870283698339224910472543202076374424836596670734832801675581048406306699598688933991440034843077218553588645913149997652274187016801651489830607193316516019925777145854300958599588793765176474837992148609674195292320388118241437298007994719921311121777546445340681218285237792217598297738775042477326869778842439832783024330486527286553653186386545011023070992570938892525251808838254496845624891706960741496777186586911154071729666346470899029832106358076558561865416705193811614736120213706753804152395237052752528655291190998421647255319673374932970492245391108582638383779706281913816827823395527771253067366940436109064027280531416542075386299380199849850927007909155478089157754890417006402774539996906385341878061542269367038900360839404285661404905308755941458401277971423514718309950839506619414526996143331518744236416880349862943104435164968561201847982181286690299779359347812466961588853145314038980697809885965257992798214094682295786049960107722320036656492287032117705049928764428409634805716227590563150407787080367150640980454382900547147871657950350940598148889478487755422357759925319667151063048579095356518437541208518123774733473280597509126894495060378539265336195190146572018344870983991141495324508497111110863819125302090681132930854792678217454616617848023282601035397471760791609149652138582065381729817607991381064934500195671578552237060056072124631649198761883757933954195170781448651881652063587169459788676578314192027599615252509146722519240378600437262208279903887832604927718180307147970090237186033607828939642403882233922611641671960392562907572747614749232949716268942979847106541219190904296611579351247031185287002220060444177413227327781879284892077287060548472380828759322981597204340565817810994064217481600485585253143441289075520156992770257906733885199646320466246488666283175371014562902914560557158712235739684816156104208617125794958561243959910916797195867606502505880500709608474497026240194518426152156676882592309391158171534924447396569398074425237929997705132867029247201445887546753827269028521723816032306993723255951876397465046512741569980246529689998416237597907519748810615648857086436953729829789412861713171736968504325781636535087156911656988086368189397318283099491623075267825360367471289524502054749556850356506171893005649798064997845302795628447692734644621425729773017929930353678593194469542055427025809426375844327425301682664073415647309396641158765359129251260133329755480068388003994883556074891125140097230590410937698928354223276413292093135522332495744606043918439459776299850250276510743435075381539681510193482698021154718536231497843579738134399164024134079814821026192743315231663349210141914248850312968998636661739442360760590795475357211722129157252846094092397685198570470923455964140403252800135699576811594411409426052242010712818469033025742057057792691708003563444877090191577877886052009882528562484741738495759933099276867469427458760204888036976039011377054872059758642191644838401904801674394768064888606052509002522684022846676471907100622425162646955335494943426772095373699054839514311477984707378692748850003991579308314046707149547251157611227102209380971853161338780745405095819318732707035128800398360365840051113200322416627587347956791001558534660249166800291889371472564530410791620162744234351648019431466057253591531253432252305721114404031176162862037637806099763061962545424277957935548207875796354077012903438294300604073227083509589372673842641458110160126150668992381823856113453925528515013629618031035366534250448493604850564040964372954904495295468277984462978967147155109787286133815877741403099657532923050112500291117071640356794950131193414119725212709012038075959487857712156981700534996440785103149060314158886715088990272934459359370243042300740085765953919636606685561414353250450616375962396849741653550044702251389754388682357773430760407593200080972162321140282758967503387093853380147484305488756094508359524977588070772173308235774530549918046628713481389244102853418660794095534127438757996035530366793630105269346820948433028467799665642440706670072324694065566833956794276545816489615049326265559482764695260097253663885416554599736875932137042069649497214452898382499540369227750587228962957740737219697032439845416805463146488934801873490168227379577896254179721181863682890245557328687797592078294587862237917847250006762037930161036352355448659513843211796248962181048564679091203337754276725852301755534732053230188967578823401189821002842622992908290029939412827596011394433497367132567552802575485378371479664254230747127125534874683419347515182621430569857931776298594275962071143713625178896923200426879978072788661868332158509105350506046334852273495740954468490905330406046626337031369623579035599168140681199771890607468781489062769338939708995082239199599570341026039199722602059983639586765525352885447881383851227445791432571807558309510697087008819643597482519711200404460216005139505229378936941943673681299126480141558470351915296253027066831509065695320083952237687579675177850207294282697995547211777369735097937325481521941115006666438585358892403808544635892129345065640859269069290014334280677513706736078013158411613738543177452715873883058601435854895533291926725843286206901339663814843851370137952193282145497795552153400696899724026600750843276865633738367225709647767970691154527581840608220099039862925452441538515727178380114764353884725205884942017467053871639986033204278196449633260423248592121792857779631662785235021552641328816126635548263302002675945131384827604665232552680337788436925315101026818995007169813953239404928476752522833973390663723332170530822815629729803998777736639881647895545199122483181230233311795085712053085409189567461275024887166392607848369073472027301474579566586382691652851408149511243037144809964788705907322880059607343403737011465564475866797763990841549532433013804061029974023270346560169312674720498460550151772811183032865982518585188941951800492116167411044240687826531917274080335064640544700694046044940571096844665163861463797853199590315986845317471157507645928980315638150095991133542167462845538715076456833792275798237199498287371163442214556460943239961106131286847910894458188071817863851515587101112186275001253155311789836225790467236719375437664547138899714899105273352237306655825720395951076325090593393366989350528500506590803333043928389974057406742377445737937284870767398303087550241715070070888679298573080768578573905576097443999009497146765901773387660521035897480241290825876891444096751637358318585068176778981112217800317810629345219036377266142844221209142989562661200378342896986744973455904819639453458264321668957648874794018570735273053710485427414073739371797933186573390526897427527729749236182741034695727506309882777751556846025195649897272902583164040630537121603692879807907293819843433363917227746490502190000993183622415848155140325099838107004549271993571330647763163329624130343785902572318935008373369843944898816604628921541313598904846109053763419544925159241172194181978644164790824928435832242856862294424847078015090374324549562233920228920041689002889224364929704413047026034249706231466647590705867752423998831870336560941141988161772496951361651065730904733796882924139107226324804273226529100351531462636752229658629349996094463330455075979362375944414906409149865802937781732042276454424357813641337508640307887352591426908815927006528142141108711806714752461409791285398864768127902106074360357049706806185639285061269507388061558373473104332618482258178024212345010764093324585992894518492635479872347682096247502120205124917743489540860150298819737508452033592841052463514751070617462091569736035459008749079776104194012437807705068072306589640613987821138679977408257368658629815073882475644766668671690648168602590166949311530839729640739488968463874734060583160368913499446199070860709991777219823373581799969131104270153135311827252861832306849741976475971797324951738141037518001007918762132981751710452967531486521537279350476685347960937764939113628763969445878689981594912427858962778613471149642689691881443368479460648945431646922741361146358118769142677487013570175761388805967844771091213564945217266629007135500588526807475875375076583565405808912607852553980278516161916849464692366970999888189721148374840953085891428847810455769698372915991247285570484269920311951159099403320061508888299121544912054453385752341686965895854441444819720784945953232078319381352548338728212408366023290023228688064862335095106115176953538073362100630686047439644633413914032525291842446562053869357811568987471190282195304227016992627854216996329474122686543738085957654525677029017077507677890903751095339677486042850343559565035978938604270211914803642222490585783145626104407905315833858372108567834386022989502184976234161217306501869266068576630998625711629641080616012356010821824041846187446705999842283218353918654207429091230545620460194395269974700708688428059534456351993509092839121991223361058848363384811709238072442400246501161544230749166535640169720439717286573669758252155321587898621214242672157603922825751137874035695008788568845204808067914394407601438679109402473204981487061189235744317928386866705296930660717601122899460200765812062870690751340953009453620154778075134688814976331716075769426194132822655072705779194070967820368479314706204692043357660649054690676487032749350189516012706742273683693518296130997978431445825107296338912793133794062403256252303640311370129247865151784418229653145119108839993273618062153842985544668365030292684082562626418818268802930223371582990868242034163900017733858325030210998032780494781152236454032285669916880418713075443507944174591606848341720377077426696550401568716379883336166499710904313741940362658746811776476475847224051040924681384805357172465256530126863956925561309860145919515136183108047016417043962923262917347039409028857742834796991227585311867083852038345313740999508446909979519803065263254594015637575700912356893051988729623871774160008022236751505705325543192454276127493819186641988092486648300744133877435313110199648639996402677839073334237060254706739477050552432995789261000379251237573789439524324900466903374249066788464879472193254990687543770642994754816261648041364208524716859927569430363671604241639166765245269723196089080648723795655089704058456056054713692268333920680575012347755437162982977160320664166647102007071928251511082827935116054428594387829193149554856675536711535206030064840258222372309414794661826225043615530437467155125130312495116269696882822095621224498429156114770605669552301409416306609667953740980624031653750783158296596034894399476265349211137480818862202953650593473148565966806578196482073739757327263032199282711189728544856772442782229005109288504854832555269993159245681060703688737811481214081722521651807660015859627658156584050883727822494009069379126179830441002591501744571253617844999578506894952681090037924665000929572981835886602934177226177382235343528386249361932075481419582541643766655981286520618872949784353979957237333983360506403028855887110719709954579975402405232710881121314318964209185854743796861811475972305356372258178129548217436139006583446997778269791930487154850916338035935661991544858073911039408898575672249393919624056596614719677291240966523521585258862884650553551583301613405781283759273984741658167688263407710944819722783875154569555053388691703171360580293864155798730611099451231244409441860292890497823047966290349111487965546702758958700436170699066156539643068253462294574087846721293177553587593832649037110574593611476180565004534414366435039656436427097656307185215346629078874873302846360839433747929751132638324116993333399182202658807735019254182682489449611660423388350591898100554055940849704511312913264845481211601019175159724950585806268136631832156359201258755991152945425239613585263430844297262150638964110768524316381797703162887747635808805822219701075319069768770671396655009229992710696422492138682900548464892543048488401952375159844210503026667498140605737562465730210488288996554872009350504743590967917596813149476199402519349267282666828269395204990285151453908073063763200790886391136802906752262189131427463994235149807847704956854331331306428893914700237294141345421588533913577549264018363388579294071379196339500830577299786574916309727458581368181362885091001454141878432942385616329790359735269616224931062352400069188248425499682371483173958680026937418588937983612853299039766252648350992454351484191159172895742826625415507695512353669968807278247070416886284757399178294591460759582469679121853369334081867705869542092383920736697981250066899875096186227692834891439993508132902248963796196674418347571752346271864208249026968866364398871931982856613008177357809013638963857464308557541468804190322739408104693425482752736002609988415895469300279501654678242898335925458877068834389446596225472116727084694045130392137626553936906051509131007774682515560269735413237210672458478099500695691353106329569272148467182357995387956674002463383441397638772853177545491779707937104523730289952122998382762999724512119294639076697429414543670259286228224249761936620330993520452493449983199428964067190402214839202391384801788233626620939015248884983739425738014495874888589464395566401263295382194867286234906301389482851023923328613173083439161795894946365184345454685633347278600118854964961467772896171375862075631846103918093668609950405390690992754099251209382246925968046498454216449772833200324953371243257493797669574247828195264589946486320738461650590372043910761440211224010702098157976133687016645715378120818833361878613424346109722237339869394303766536261014179048434061066046924492823068100023356546078935954166472474056249721171916087143847070088772476204169358078504487626075031327787992683326741283746413935886881597129245667791657500311898348427623747591728642814024415091218106027016246559242677138437020156601117117631327656606862401613232325931581675274194319188464129347579924466162917509417119563707922928289156375044184760632027461318348188894337152004783938450508953688144320425596136515505078526319742506478509265638506284961349714424971630025637727801310267408115516886305448317889835831675142285259263398118817381134388798893189656550843884298957695217471588037285167466616678524685192170541179404401188580712090351249225718392428088817986166376218421708883519740658581393215576515664637624075312257982119883034713734187962589992446966963959344695389325572016150197880388598122748798784606333022636573990968016788057885287635697534604689367572530587331047153381187729722524153315555119854060907242463357186315517056521628127226845230436478807977138664736634034373688720266151850759023814182399919997622654857309787350166181411471848573841854356662213430298246704175424576296841359779455586931950280371501492805541333839859885610166110676493334680567470806670757058659464508464682310658226226729379617219923178690103016188742810364973765912109031585184614091643201937828814762202208716502577425744991784136370916318611849867738492029700905408338165766462650823746487567325716526431467217876733503042228867552178486251589312799360185385517759595273095631762871135229455494178628293976118543682469161055369512992196012162228515995975438933842782374994731159080880852937302175215593549834960595148341524721027963814819771887976760308983787970904966665658260736558166115151725652936755594701634583779119744591521454509375322846838369901764009298988339129911513573190511377715026476349499722555534844878022423279522832153852518744466663541993541659331595828133214700041435357592468109977356245318225624118255653650352954915871555837065528096006006229269798874886222277663471787565523706030870076008751469115592210011163161257550094502012031313926185009495988019151873129008458298717977227530741027196430282417844655159600930191768003040901991957480871931677758736654504466596233646299555057982093611277239702538244480034301557454884217053092191438439732506154521955378141404112489233713551909946293062534837381262775311020418513662356842943741028835369595176693148132005269374599536846432527289239377182428098219054882023118383316196795547537446023894205648349234595293256524829835070308784537555917804540572362186130669078574806767693830111686515575543667874905757346429595507980180915267220178582594879131303435181894109375836216921421384168313408947510196681880945354292310635947524203243802622966511431938785320752946532144387598124187208338978766027353562703219363703180676627818534941922573327018352698350225234466093482782662665804031891321645322563596481606387654598424928671722866425477411202400192662778074069320535456159000283932400138853468221075816705284803785782204925805894617815715407017635790590503034144592947678772921161278889830485819333545281389455515925048446758263649329731530228228856187419432398464707255020200556751236166642684478465223746649208145316381947851419291181596757350356374135890126512912552648414751708535126528419529487364057008260377184925658649227596511280757868969492161278093462097430026403326184975034103790280005136906582905543445225663656546880112120305860633679314057814149395861428842443112539064868740525558350330568472743626058769602323749954848617680490538784660303973082507184352961277002777077511558870499625622155659094083795931715430599617876638420508238500958468318952018254402417405123291245779402160855503647077740641391989627451238766989475905625983663263738564566992540403774823022060068561643650320785014104559689077308240367650379854707752978550189248253161567460470699799263894518653876813006611279792636457645735236051857120884435227881975077145984532152196080229542320978847726140756737626767557104432711011530406129861228849901891700502620676930268488549307578263670706679006254163154564956238393130399268828372760268715853373844263456563465426226309394776448682697625782169193828821114595775381988210715437238641474858645721807966463187712666681263359741684281942129173751465469435663305391211692273224170314915520625482031359801757152537477820635081190714125865568640647080576012449309600464132247158029960609740966987886195534423068627953278683226269758183801929479957005670705344266353130696237298029406156559521227248442259589046096739372583227797008738919327224072406959780600114588008480396481499365069824319920243005188370209282791917499056901347402370476210360741291875333859134736232594368332328277008973857119080690972919023214951536189212406339063045799030581182277378739789516886926202747659612290379881357034179124365963296219834284125054330957924045379403751644647720871100583188982941419646387655957509617008437279245656725593679652041549886716578081316152421636264788238787311150914821214527243630246857990533791775845376710244451295789491834194485756055667768941482256803901542134294618233507315007147006675351396372910228748493843714907854480114958685635230358389977765880968728413290474946174828067505415423421854005334340601619212161701601974497418953596952465306899981135792270539001305401637324224500982683427221169788796076238783505446952713111047065702666727808250027454184480283835820164995775999688606618313394494060595722306895009830556112014556613520511728778017185430495532480668613294726897074677383260970852707948803291606016800659400951974545142513830101402514208639306514189999663370588698872811609680868889585647197453039289415731316763210138938354925561727154216103838728412861069382621356197698019115509933946161674603192347220633204272542727280631715763061652970151830969407554688867693631559504217140114374806606853019802195948547186322137203353570495159607676560915352587666197051130298794052886281627763345038827701432000414926760266501940332312543087526638367983727431846006077096865942961402090234765733515694674236498695533285683042372018513367621503594238239500676325638064382690295646548408089230666366183086520203396200625827125579739097203839463686567124524233033406760856497640805030267008044245652199525819650658878631659113914261097072183930665802824100375879145916696304750397737645601169819323075965487347993859619255779361648724644906791147131627807564867194529691768701843596060482841345193266979040041319943474922304307002197762928318247682489937841313121932185510410462927151227256118191231284698917503327241452733207240861828643624116770967630061475196696354546624490313298543701332088545646748286422902202916966589450705068033067918290000728024465933281980956136074566551944741603537085818083632123955724600366923695907786299230604158938930764874620993824105272981042565651289103332776517562953605440443540568840532853769809211401111953418591259630685695558878005817580159537905745247145808557193376071944506219081518256292418084280937894931287340484439892247935670847328850540295974283827989123735113200734420499479929692063296178750294397347621113183569464449441797016205017876017547372139622438585497529629624483613833251999248789671988222337799322142074268604747510295171432329582485890673359506945191531875597418942215706507354984279200016841119988879912249955759995459845500799543324009175704159993303025871795002049690327300013746437297946639547369552798123706918564372430120129850055666277302712894127414442621348638701159057806621155087454890686998562684886459605198888862430520654256204722574740347255735037546051593768339131929100006271493657477786857123333193895979214475682889131733346147627632656953985870274339561597244424762733491167230222275128508388507650265836240541061511717034977509969167539365374786630972041503970646266288430197197222893310260314204251507101068618131564548206472004137187081257804922499663635722794578184167914363790603781906254580837265259607602206290525751721144999236664796967763906372231417929492871917368398783426146532119037953268529425710488142826163078538676021621285246739378116398066539299046650068751235296678672517062611716945642839563465821978155471183731075542752797786725169115568875448746386412293330661121421641502538696067196806534273250370273205706002034249529914351993982630566471901912898724924841535765698818420820840742533162060806761124187523531262498400776223084904925719616642245888801380637791720519613399762279083842817094958350868455978948167873616961301970943563473026774522264063490357082039855229180716113835195194373045995336343637756885011372878123510059060984694565732970211693393051544668951199229031379495765185131206205976135655956893886125178473409219682646286992887139584251653708785211692773105557284367949558603630425364788709064044388100335797760744893025329009875728822592209827848428040442286869676436959840157058441937139391258193783937114155266020803298426908173267260842242050674359555603532327298047108141948061118759691108556947376035401713263301706518293765238687195779897209065725730898109419973006307259079661320924969084902825167713323144331058361386280978836917720424547498550341468758804342144896570190964460851382579686529717910549046291267121904570148160731463985019077218797379674812683526052264759278912555251178664219869030244697255794140399717006482003778066348808190748544366661413893708654829478858033750792286668813576869407577013031070289279327181468743445801161135318420922263457713782827832184468616415330415590418632284023092210257452987880788955567578104351111900409270901678308901722840324541455972642761196892891794329431865385681355400663143213724878451689956067931841700618521339278603557240154117306466227776426944747220823352483090317440287330206949392849063846973961662793060868984647386376732603889870176606323015899695226862955000061356972375079004439069464948160371939608917884488270563538629579975673865460451198429884582374168023244089225627400822989127234840497681807900522578558211090522655241742340587755678132690626957855913178755680478563193842899091626120203887062297759979339186485141562820388621547607830129387626256948048945493044480355667079629958051206357618035677723174428242718276995210253971264914403356390436297227095993803680306469683551080237704291913340218536306296219096618104388479100147135025694899468381915041804186336927971010346494165949561744682302765322176075835074201112912753543568289463457137586766662599570644877605441250564358528916411166427561938965020198077717229581258060880026076668326415072510885262087631994006968394924594405038742349086880588473957300748946316972458744653117574462888305281493301051356115221384004186552008130366880694928059821647589572526330508684042197116112913941225510700225521844947605602422608446878751336626170402042421630189028935896323879218360173165628696886623654739649047456888003141924780104019946310412069960893484215839034016453117515707598959436223119178222843917367856921305566896226898067573809672392492957480248456616683252502876251885461396462917248791137195864322664397564152533603612916817687669457471871702972223374097504831815626127951458972885228141774453099369558264625431337528353706373057361265317488302383472600497785206250777067019903049254306608264168055699139073037379090256924207480610379793848173360782242306954822836116021081915442326226413417450629192528760156067024657017277354266294141652246190174521111299266703251950514399313423032197261124374871638627718744985431670579870670806215520845026866308447041356411842639746321504372963473326896212374372437989464308756367461344956555607346755468992210439491833011845759878788429539400746162242468755815497248152086070201893101570874306136731832114189459751780867782848912912467862828215621282427194691817489549431279489482432148207521482161456795889855109203301403499174546315034989203275840201139042188816219544049261640312295180639445985597380644947965549869325635090145940368159136249850499006840209648755827369686318390869227799322096377647319990134221649074036350356490607537753217370107285569721379184131905264398311794960342941854327230778468299006337942225517842817803986316648414252740584096112844771078771283065226444552524703817681390374136348454475255971079633288231753143372280115371705401990392624515222002434479419246449617506846934905357197484683573654570438717200412184999595335898089904599390219672767799662127428163018635943413322546796321017075768192154140908540709395208310013477671786506834978645548917557277220579867955454247634931749120105946392066491655182517533491446764575046018329750950248658004268479344984001623806045134179573053429076089993860311869413827687691294164615539406673491253127969311279804142997164773434514273341518426766978632132513927994218217222250839978779076092509787637922981735176524596912780037269939655568792129006429394184549449622089177131418976970029848126550237141949390768722631762960321853764408907722431207856301482872377050865587087719374537098081760954359681120822816385924843502108996712599441800899774626657200284135709794837065341087686284085044870862896891188719332557562020302448225195589199951253374246057264556493155569160917057544675459059758864344877938025083916791749370136509480968356193454468012306890806501042697891575228653569652415155447939750488407544115876097264232746324894506758118166030507206672624526951526058247335892468919300820742476086655326710639585365170206321109611098690456162384936304283564238724393606258473077089964692674602020538134320224396277624737133945214359770855096674772308912268122642608688800443842791467563195609217241916906157386102978584273122507494266114032278727227012233720480476809058344096475697673926366418062648062009637233989347492597803710103316012020296863130455939945253073389995181384485823049240882689561159285786361941942722192531201778002695308943493729558808573056043656324156609190734579694351217940829586052174369123970555555062958509137909828388836035838200709893314399271766108268906946153296027095105284198476847724639507635391666156470429655226705592788094594450273633081315151067063967618749283746927893483205265292629901154186387300011314265043140192869725664150412527831195841388812228541696229013422284909951584744109845888967197747214236483376490306424620503175690228282334987858757887019531339088546602781584495551430668054471734556605849517368728602468398323646325923815750190663535920197698911541676425606867553477434514363249033705991879705092008029680282188049061870585946975559870730560235916712033640255121185638395817355459558481150246320061987753519905435177080346277820989948370937276369504358201713604384068692455091778693058489546658095470904945097474003960708193582460295920786848659951426973720020514273502708104536997347369926552255733067516819971188580127619333339759722274705303284102084439426941635807389165319142062813951960469095901583250850272928936471544425543546713467302948748565596562919358300025698703621708067211543620514849419910953914259843372155138767372596348123285757182757882011595302926766193648283678664830493595969326121783073055707727298357172959323892669056014746806763109014133643972910201112315051007893163393907716152456628654783278316052203476566831894384450478574681368217881423826781127249890593785763142740903975813991954434253866101878856547451292368678482868754384179779882595054556121380453389884721430012079981706254581241158671702936558130240501696360020867452639971840496734295182185569737547959280702728425766477298416191735342116078048945204262931436784053587881803891682267415867175053128074062827127758443673989667394413992732452570374429016693163134757134530382003131217923691395481357928924770668687462566304410206479395314267118343916760609347887125590488018726083957296934633555672404349750287884308960298861923798113726604238153779795768721593481809248619460141163499453628006999977283868331567845861519353826799344594088347841555653127543319025692712228734975036999521066352179212250098315227459728208556529389147531210190184640015752333829397238105435472375433493830434586898777723530679287067975314339622131957292238805223597652932878585735832810911762020981891914787356910647139434778218885623977333274442049675439842093996655997480655910945808289050005810227614136585221664716853720246197958021864123250937763061185337301184289482277744194334366927493706150745498786849494708269190039292031368468630883332636275638450080178582005755737719174063592683067719775420898922381785110281692019616611293991486273493331983974028313855138789756578927087628186211933554712258766916073466870059077724854134160114052357826706833408200495689436389530337129979073648992199726369435867936672905528142740654317613785824852489820214796060011682059635872659632220443923351377934116995889606273054173621042845869318032444255362879222399809523888864878541059682212576319882115460244691385814325288242329187791476111860467209927670544369445801841105336892752799756536279507625892411722861852443709983115750916210844605011497477575469573666014132223399107451044531122226504448775908343370377474586975200214039262202808454436053814318324315791709342825196726638675467538641044477335445277344993783100700225510300745870386281830028016972816650587450839798201490594248589166459524549095892221816711948668613588712927674632364379168687054149294695677010238741861496122609604867588365625485979155094801356944487440580637270268761864836764804910438587242583350237913183296090058655893817687970848003184758626781658029773881401776421253124970287396010742426850988108630328059127181404461573525672414982355545199296838372086174928831609511139533291523539294680418404593634233203175186007286773454507618341266549515797542006865387848635487318611607875345811373393848916010964283597628819297803359081393355567844270810291235559274603796775969517649761304861142789479877225824502037573447028170229423578153090728583786533818341720429296201561501271106415928132287635780791937662068674198639967098097889236312047347650429930180815562368735073433336323899846242550029045862133447864004683422970243795774526228621311432956331967547771076665403919762643162127512669455093677006027682709455658296019453660133213835918301542564831742700325661074816133615908173886821033699825004174730539232288397591428204677533845307919916901895731872425078711873476729190728779355426033151741954405923440478260031760511927678474180025653027012505753603087623189672334863275365091652873176616350543414755473601647431469477473670581534367758009190784020489841157985344763796305772750915916256772284651306401696167967703455312757637580855087433557251473749567195194093964383942985848947175772110905726769332641961747602152960554323262425287583257729228357982088755399906224616260013991356110305452120021536383743826661008403701075922914585995924861302363817433623724161526662376514495897068704439446804669706132998892027677992933682515473831532422042337394435720895335554201338514400241410785723193594710408248311416888002484019339704820073506733815812664704812494795314490593827890133913452818491487262660159972465135834325574008663982965146478585812743628570921491069784716076530920791092008197659556635340975943093347327634657160024077351743319627657304577645346589760897693635330735883369443594862799646416987442743171617618458485276827494733416702318192400619270392719560955262235993007493732564014612156679935927513921168936241453589889099002882876518214867697999234643087925332672101817541242479420307405328310706842418681060171719056194391755359168508236058733730166112585286718962285892397337033473283363539953719963504375530052022202337661387675031712255842706445292158099091778899859332683709521430262336246469265405329996420803764143045100304689501511375057697548778436247951496247198665917741534536574078704737779264804088013511908686620230406018985271152938043523886570921923357637916394858332079545994516252064892043777257988697983207975228553260286543001755377928765544007663670493596851635138006560658499922469444897549092355982883958014246505035493828744891902734522198790676751801936332945355416884250647758378781542220883280452151434726783573292433132943911479392314094645932738357523155363074422081689215718071710059082115744376477729959450279754290736036936747932654242842888641685939140450283531505639102236935894210902544350055187864304071977018350080153589557286888535912686256460350646661815911930480718584111089472623582004921728435799688264352315244803262869448062300656411188194929243802575157086826896216971404204057955792656089711115453913462251663124235207792221693335608826640071889442157811945201341138358833731307644625489711581972057404237475140100810508428058701892509571922529322848293525960373011021698534404208723994914444952242779303330747208847247303801635919369844768776533660893570594995431983554845791541439424145423569671172144663673649111346421366161705588473905099906553687548675982114207465921839466743777419807435654858835416597227320964110889383007011319154495886007843728820190344645726593413898263329289897813144512223700793452311704210542255195968889753195548621513154197204008282063404189761790528657852948890869930360026820065950810801182460449746168170531072506427681883980610314131043319985404086295073467833542135955952612005202537697560791713992277824401495634972621193131710813481201382592083591074437284602143379988886921602233740064834087692210118247075811499233355427619640592649850981628488670870820675091220346331105446408293757386542034728619961241708922283058433317239110954482735420450776824834144276174415533848219700295222835772474912350868157465505019557898853914160988731685886482181706558831737043792164320545886285947147738861128611952353977121323676490877159930815521510418175554349361597824494465283938330458676655739023068748333223804247839317719032541321717691763718519660868424557486931967544794952094555646149341585836187727840815668656628814421304676917677520551478225171856021723099147761701538959028214192935601231303237079026195228225109325136815129147784779914558633673388800864637331248516443559621115766046400552093264596406724525838654651886668174531170002717309772413648255944038597337453059413720845474280060613110243807033285608575117723352802818059709846768643667230570076237660963918047477514853873293303448191116327040203552004462314066316398877648582886642331093229499758484581143406138669343850019359591496062367483798929106305676388172771661848419242747825504977783999294405607246654182014427334571069228645729088310119855313517655664018689035038745599267364566634430168679407885823086370140501101259997818074522804250634993147903541501919544212726376098041324114714321681069313105752127990572806092244982735459220719597988052390769424258444544792981847775707138659820865559955972098016714429639612100163175632530595209915280399245971561446200360005959149174585660237915942632799402442760552203550009511828865738510415675979771949230709292525121689046528780504038484994079350136753560104257374700655246972097841034903060223015582120686063544761958522193600036377120764803188082236260207440606257207027694897389464753021049336757887244304360131544989147418745656109419462354266828507529487293821402435740104160615705225034023129027149097412930594104187824685350907649737594552918234677645589170944961718261993723002178880975638264009428061993418826370241666407606088400624651466962554146041839612263951364581104168106769056249078916067012035439795406466140965487514701757347371570930896699104378932963818530594190398311314425800449359246446203139837259517761307077143969906603430920497851189338489204115336024976995914581028970562350256540233655701553009231792484146543314015802401871361828660193391185226126063580476366729183401906621343029290050888695886670809292441730417745424972064557034708062432357799453852296780889822440178808095236843305051243164355211006047626403208638415245457382180147095718324773254385310761805605975814217296626977108147649921555338072818049494281679011991308595849763751888451816585204995804074324382213675323320395321706166837444190978885074938380160101041539385097280612592763796808272971558955500454450263232032787369608530679394020153007047437959391440010959951398970265345402851877261311452672028123838097943216926117658037492647111004406726156357402098817593232613954988617186200927103410099357344586445483617487910521045877831727049732518047649371176867645079452418780728325209313472996130673213869687766729661328280651070440045113625790155491951623390924371863275292733101000733256130537865142834354595262330632968070266269725030939905712492130678534029032239596753275355608520301952069650703753520926527653154393568682079371278971089156619699152773153393696587615123564908602347366759235043301796390401796821318374581828284907872921153634360422275237392228879045395661125349858500329881101462204614936148987064516413199846020779389466512168751189423999526427488173372227823979626426903803411447989745111728883423649961841844618597013525267992548553502583843983282180119719866923344863108866957855197704711941964637463588158713186724222404291579211439206549371133936821828663042715562337552834262632276671570711003953415058854978162606538330477759016410247561042804752211454507420758752355586462294999133767093131783585608818720163690318491453518674908403173723024153086937923784776132098064239622531379074344063294375045410657560421202932379166704299536580730883956754894087989060482507334915316997406652253905184185224614449810080252804133818860696012562449536341619186238126463825903179622360300886369221427694364392193406381799821093786177122556991801668267603806334597928681068672648337628097399459170608301019792276273673483876726379276955930998412057372393066825541305695510711753216618439677744984452268657063093090719858180326917666048305052703682904698770294609491509326150635124959124683178482561477747411698676753955170016960888902335516077802775729338350862045692103296434948361872718612520716707037740561341646049807973775873091041832588495594730726101064390138007411217531004091935562470327692272425322651781946046100377015583180081795048800963677154088757431331322808879829837444351004919048052032444604337880559798625825491822373756621419643277986856136971412930724160627033051180380147173816030289211083533782980785059184809172608513790981186271319456527354088591160623330109495286032325012170841027532529267960250535267748638868059899976420292494075981944099960643502049571179434161898875150340900496903723817792080059676889663072746719195754795744591703473575682677309476599966594848357981979358532995894566616081858606254562787485603342677876321625201572121285571428425539220790428120069691691128484460580201863487707639067239698934874255108645905606132725066705464325461113925853193738652834219238802257520110715308289866929063543318070431084850461733985102394288350015061347992386438141097553683504187655301204058520015307806417264260282664343238935670755662913930166782844040814273679503248520653826526085911206674602286487950345168796529547005688729460886042415340991514365950285315805727419347742199265277306615755856413544882350038274014146758282989853127624290400093338519715320223329940109262234827560673142692110788036931009173466617813799823113863776480269953526611637456306048187195080046643931769621918267094029077033579565049137849018730531677266710363033184483945364423014901588840758756591637079396368505640952641104134540566497306926233333640709601441170806677868212472928540991040251658124281893233220905045599690450769052585886429651958800999257508851625628068894212084259522464487600430527904967254069732831597650357363108824188996221653201088696837850592862587614532661803934221108816002390789429348549874259733780709736854577574122782009814678425105575536975409690591511605881267209492199001353735771084637480448424847782861174975923759792345880260327739286518862622800929082969644465310803670017098639778882408904557473971724507403307486190905778276969919014388908381170492930711695614150401198774871660866108320307451270649091830098165202287087827728408898061082041966465555999958297008266661566905521698025145712441649623049310096953572605162274577050283648166386483168847446245361223335348128530251911541765299737843796310370365377275760217080264986263586403874892191209868525230368934781096385482396439868823316567965420615969249209757231043595436135266207734745066311428667829000601885720260260628463174305085353648414299124777622182428279295563615930577379295436187905892696109887180367750512707650576489423161268139438271547265907508604218192720089560960680223337699309139273497460235697918249059337839847468238982121696930976275345721891756450254161164011085150814259445517570380103056049021617763451274678161399956508229451573889628000040073702268244790105414692552875851671377151303410509935095423213186690787954830164876353411058023377246799677624666384740898680904700663633143212479238132044435602015118283216588534015271157685147664156766819633633298403776327870204161856866388394070448579358286452700327404959212910842300375053025073898651612881967204967844206807110216401688764453297250736530737226483359004354311417992077152141353656517543790894906905739402490058157828783491375249826266188824166984510048241087606583332074222981971041871774095547249636685929729748675989345039112294496456502246316596710807828543272814765394610021446500512659779298645441570861953315586563168285084872416704636455709642779858259216718749850055604447778835665423268004959688717870029683070099436616466170658273900585809588757205076838867829811219774767773017516251023616765485998124449642458175773889236360574088437203345510009742892502540510722455951390265099139371819302568304545103797682761883752460507072222774749507992868694781478705267691613367609786344084964468071507756892523571914596858721329332541270628862086676814492727397909607692102350451505459087116771794278681178148041738158884680903705012221385473507882218351397533899988429294566269179169645273748507139759509756153849235397017417566136200397387289069249315413794076156501383642941261501984004393132562378727854869205073158488939017911548630872030490843878893369311370312205990044138425478260110201282493135256648743412737734011457153082303860671712388446059900725300107306081989035522045931391745135544870772746801958232132037035486479888481619801045577986950705878751870102620498600620951022276268999384524860789937213786223656727527384148962179567312239607515921073081056166736710751825651515376908064491616818976967326242493532047918022997323497585239303111172326382610856783274356663559183868566565083260162716602789656480958360570037789054740885701778649878830786785475546363945560774524678559188133226822185110487570662773569177595610404401890996816388082577578889096201231719712117954722877129668552573117342448192781912547761369844977885153802510429758074934451496132821493484949411519534777919139142011336887013373323536276185642711004408080985075101374827467871428363321641012533384814366396912566086896785233765088969661480682550442752076917570506741943086886659299846146201493269517666005313764545080445494130857032946797021944953607209328276771078789275266962413288018170693164542355210440131752260552716513573922452210793829992491042454212187418255481214665215625088023186580363952594088288155581701182650428365147264935234662090022964019830975799953704960823644948137251295395261837815796219942950095042573925552218822846144922244670126781418775562002514867293504018019793902989099414657785514975460414305382216708875378879545934057188226397086176135074404231580497381911993870481438570954164775222048316685866693828472232406048351082573635275691234106608836877755655977500683118488900101522471264800310145303135550377511334661949108451349103986303191902244757872846058338271240152055483589732706800646767248171308087089357617430377994958762648956890075606173034854331415837888252278325086737927376559940426444322113668773431413036797421924261179114826089020863255470467283722607554059292420740792261254452762223737940801242611879854303674172548910097631332211153014306637010752561757284177469875353499289022052674221273581364072317994228163426439072098509044229123727201848328748580391369468034008722440227976430060789722669933978360771491949903970935460786747878438597745976844145307550997668405573740280387319571130261923306464948931146500481969882581161055434795637459706950582382738913793982585686939897048453128845227148982918545856522610460640896348731530824907197945095161065435133514510860911881316993466754360262221278801005263562891906866896455889808626018385784311296916974815135851148617338966034345236628938097034654597746454482104220829195953396364303943932006531813618642869821423931114011219198454801257462507655841775678297512806070994347642875644842898382724356264837969820671120684738314782743744733928360444964820821200341331401175590985547855596646846580279156634702506547634583093958381733922885611260691841407472751576444863903251598633980995354212953164286795356231630344560118886021570195680146079477242297577079151197376989624661254825027620023733655940876031690567877084674275827022512743993358446786754889007911925779464239927616630297343076057333646557204331614181302975854408973150183161096000557823279788120806771787204686219117940088933864226333968659726336498629704039551275366166019088481311510007766029331358579289821608756338987320483122432642162409777098822694628941809411185423262298521739810719988707063253766779886921614782499502389045235560309986021517602005028510686988740616665207595877915295449682729680529133082872606806956329619168169248559561938131143253225224440568490267680353388177396457074587735526357551613716156279219964507619657081973650771036246954331175730203007803623657083058280296748306922627051932081168307621701086218855611285374756138718838311753054279513846248926072686647338955533080010263163703220534484704018768703495113315840042167943343175288392464960097261813745505333840359665890893783327683758655636727190885460054209437481298875719813543787108762005670641699217803378348301023508931617558460485220560500663266881207781809517099801587183571240013091921370398277431901505089943934310596555815192737526304582605333650724857085937791387566317706651967518897411642105067267505465354293955142304021856608318268689166329917981507596092469739977145151703087143470925769508149617715632999651073983977329898111066937609274860198975433435531387303702259687217496627490856560504595424939344506019338048622908343570044396058951066944103259583346486310701697335066173808803492959006988148494459944480799517185307362901827738975246122760084811940367900856289075242330630859829487146233553655230634290887808567680996733825090340730836898692379232707597154695959500375767750592935967698370807292754252505726390257253769820371029601578497603823209462186651928144496700337120524783276669995840246350865984198588466819874769399626829745423275699638442981594977736548930735274041716337359776883799809639513631004556409327315310799917142691486909202735147405224455980744810546291102871881660420763557486893718807129490283459929650377361707974996448427221828455543852975882839359774791748070462418471217615623587796375610763762000557241513165266572267514743655748633330760817452019869846123694107738518226732289685317286838695854276219771607188855850301657431928501062901996522702260185895947477327861623139043403447619547696045698119501813646119446713493703849921552593070285922167797976926818578932465665018186847845125002752999849776058904436381531082955018105086925538958109807498752094111871290074569692099407436117643159115644987822353472217077371182775310978201806106117968637670237258393410012959891985622038563002159778823100434393799480735934622732198585906621625778232963407741584912468428961840485286029240806916351591237881394568883330331083373810476830765351337226237138484602574278611012214576117050654938404968815731281046819164542068507273681538822791051357546482116693824373111739445422549086216481126334301805875654000244631163021962303761024974304219949105017466061094338859624813508405644010724777289414322428224893865107021266211411389179479034684995252049253715669960912910527449515763030577245232960013120389214743961672412706244058123709708757881642475804492052352444302557385645019823569000423520924111284392440452890255707658707884386274396577599279677403830735965617673817845166028324395242260760020618984517913296692222385398447731428638055307103872614987223529826770899766982437494903974259528856546679142756468166490246900251852508376615352537402133837809309341758366365776716312249944795086928344489389817586092995802528641128619887989609768630268960619275463216658420592441195193869416450735637615265425558193917962554127906772936759199333061786910155213837899293610881369748768682951845765581130306268204154566444499482509573137219861166748119391417465315957825403695272252343308390414888925460522637668390181293986203216663666306766603325885564082899175988217274507777818025735002169222034919042188685766316853916948584688571728751295683241560839749459405039078161678003808211983652326258238975391870533902210499106550007647092424370722553474448635492675946735246544867932129182077069336774502521590766141377886308683287611442382993923417483595525809375462170976431709686479996423468245790862727696786835577965030890122107203089486218678038164396288768315122137389412887136301762387972557935438652685273248609336849882665698632025863955667071249946836013802848464047328456711433020699784160174734645659301680591859236191253086480104784591639358871384994796243019044806540322911575344519400811742066187023215843870391811659024821484731453122586732996088010266756504779956745897710296067543919303248821252052649443836720103077576921679543467830593024849245317936432154244054262925884445796369049920903274170177562848468989597349958854204148033360396988683368529789929906607932017682376404600812614659763733677638931958832074586577314285573290716885205246136225325601751782100632689640279280229115145255773512528604893594804131771077075623467084457586109697553132121681956062524096770058888416553129911997467172034288398260539709206143254035100398815325760896898192440738259800395638219828625671617313605401149393330984532537600215215359741241895696421919379665469351828466306993440767852327915180371806155658465773918788888001384794448482362207335582805453962200486455553056640400111897531444273528993287258406199605485109131473343041107445759452373894429851339193026596665630147483893132780890088976364013564950452006304487895847426714120201781485297984691714452361102961322358533816333247965950189852281842830220903676049020532996885091630693534238082859068880211262426445611822713544942840468779818964817082425827658916222679194147879286791211969685776537704785809519378052839535233690129963130397962891482145708613498565837812462580289904276411501678430676875639503540850072118877472282799738833803661688291805197823652659289138446082091755304558159199775009167956409111645785350309823436680425621915733328991893174268260680011626038992874620024067878244842375610027194682563745225064585266182034191630655738737062392735601814126473363387656130099885752754119003202207005997517038534126569949726052961138833206464618396074459195018315950986579781730780394131524179630859736029863118765543496461577828287309870376686255194494742899998004237023065591102939779951250790190725245332626500864432116618033128196452744049849118004882786474533490358585402535351973148173970347601832037941117174886942562948861354207960808265183526650286986955083083271274897881127769668055093107760546158593215475380806211369632597558440771484331518073820133903210640573918793907729142883073685013460501241629222998903411953792607124390228658218608563404200174001724418131737001877204565195391108445759009172165707874100339855175068096788039247480242897443752536178730858483727197809834412618822232162284396819742580206177885486119256720541668968204117309031832287080057897584461398371442585709429982055128260194144367952296509417164894758070232536766934979358302754537768158769287102514735783219081658782161086345677721492342889706227879514306165597471474470253272107104376526498176872227813239509086019782252431683293643264446368214416521234980486933715016063623785538394889037307791233690105989571687743026105952103062120162566081995517812292934878078879520455808961206111088165284270161264575277181237378103947063360658528256123562912406194929845561067351919968234225635248931318731693991692679387324347909010143072811992756405482869816186930336381710667616787428202589831173980420777311723301612285843109008053133804501007681352708205002111550808446027560212426639293790752764506895252526906105908598755640349651295275891260855539426125482019446094633784214627767980962498183668544788561557949320063987850244559825254658223670494649237691063408424900887734336833087630043824985976033554445928311644592608791933761059795182526603016348146414567648060575887120156440460839683691234682522275574870635445598824011124238640956169711844769621765446991068688930145722962806479167949953981363275173202778265133785782724898606756761071994531704494782159710099993197975447082839608178010475822061979033324893570331259931791949856894860129009970252616473953513806265805384942899502461891292475019405060473894751448425353145117985056763953416512611039140481452667873380692173413745830494818279377592703568137792647140752656300976301490976833314877046808619285374685117197528226502858918837851002364631172640330293129554206104238609453010583585110070664845885580092087766109739477083447382140545001333497567651409357662470360326101614201314075777146054997802014847979453609311113396706805387235905078270854658218699665956821295759623567853029904023254596636816757390202260350883808530008086232324553642052348990648146452529726575864662161003415269823842899148065095988057524765306399830251371840821842673600738031110900639671375299372056689159329517098231999855955456447487795781425313459165636439137624275969700947158608173397515083128290420269910588593245302655133829741592895111328705501661315163145125464610642774993755736559830117612139318011429559236309736271161103547719259824477974817707914742271078607699447957942997178042123223564623765561722547242316929129735282805569601383984120712307571896907138894314161727254029418977898877433331450907545855548440443958867706515888075779102576336341284631702302281348772162414377322972151776153211565035207832143097719269693414295576044236392245394127251579670700025944895690528444780831652393825125843077811954052208000668348428813258078628906495675793158252332541473170247911719552576509853130489189743691643498635589732982903942341287258168397801417328751720186054375541665830644617886340307181175442950260826428079372682697362960287418970206125731856210150899592993436105119903006001371239348292395880167941848072285533935701362572937618798099458807125377855373529570995862448044898579681428306271844790064409550218754245151036111264013954151376830712083703408970814290316110130798241263394809762313067970632911408668484466063350243601297633042222626616115130155311751710398401754407336894044435626704583639693022605737780320788499830079692443683862710996595841345554921504280243520895988416884103685848605208840778673572801790122103160485931494754309235204449867598291546730960176053595122843553622424065970039485361949123781146079591255203371632026446913305041487376681104274209242752691082196527430521062487146202120141706562406408184547727285025882030045078656880400353349148567016503928653193921618956220546337485043904878234850727673266789388894381234885543614476645901886607039568348955373847074805672934512158586784311079550348376482125259158833465995045170942427849241376838619832275098339059782635985594313274038074090712878050825601965876711219954609348880785658938261624946740572627785818149263798974422195088459519371471032181233197254181630130480024842112979401103887985019273527031962330343636494800018393197718924276482417323639396269365304231308668179082298989372233871477926865923560719411083121489689279745872321386075931102395527660522064346698735625587157627637317493230030191919471393713346459275759159542990329676908890786558455270600983799393801743403977240097526835419004999739317088682363622526697719575343216578313263357452107357558830573571093865221554562837740842330477365863282318459685227085033740946936470956074881022277625388578786854478671658941074730671863031217155109234329054348588145570599714674144607750653298476453035057552493318566494359854533737061569085632411622643301002031919173700251761545397929531472147782351459383306542877799698037895721571534327312055560627829423204666875223486704436938518666062236528286782142205873386950952676001103183680873150135449013018945944032172036683627577434340587683392721906673613115697503508230015153272336917618425560032635144595318398371919987767481014299502682217805618604234095586920076003297331905083670086297471722302712872748296133612970851942458340942384080749409810609290700566339627583528381396627400025909880676494396332251100052525121527933627782714398125889143644193844079427506352311518413044820684720336643639359256994034453729792631115726793778795606216109446914061012747246867496239826499437782006970801004990162883321578745862540948538322445119936578296594047829772509780542288113012638458119468598238362775258573961225086385789032559106889350523850487203347778830896117935570408912426757460636200318170680674713750770940410532499563429489987029944101518835709741998089755313459042673767957328627029328060271203893508977677260681340919639814018098228017628871612814074343084223361743207723780921077275172032580523879865967911545408154774936013645473041437507645272725309345132090409859923996647914488998852839595571082816200071660515918576366145749726203546202270619094033953069852336834844867133935200458694254118635697890010283706263960899050489781935235858628806472093708708879912383015948606039869890836512555603268036730273123981761448386790865994710800545674773566178863528773652060391588808246794514695473146421531730933357214733734779699144009341021065361558274217828389164316013084301384432195821484013773685621311463570348326229002608849414113563666566876286145641705441760449469096490491819398248116513106765570598239289824602577861874389443609114169867501129512148006233249179638678932904593129562157963336948887559696093944695603655586250767185933757133676265163411963189877867382775622795916837683925808168387529914174418822970653035128361867086537892494466361319936933363946228703428999987730482373459791701137146020281466458730014019788191448045311190388947824403892997727884325728820049054276665462213809735950294653732184795656826920474006931121124028064639397435757218871452467446174691026966594662316043385562379399577768266254043067305707156983020578829410880752673073851934164727557836493326399730471766219547318388228598774720412006336123807561437663448523770502914238677933932726118178511639323493935572967265973519278279678788583297377939859272506476466504791577889320984782758575471534451120906714561049599423363842393610285895762932117773134449416617998414968420181552268506430298110193965767307631557247632415850730937521576958684399084786891511852329692536401697847907126180900208075322960136000542271412177999499543216567029951437416006305228408229498731075386561863276739372990366322783319263475472098349958148160314737468603229400565952611003191936447246117439305593824595091499464556578098471120874033414024815734852335607549219470174351077456521743592435050344999593768738894845384994801772742973088539948354695940993059883130495189475536690645883366715523879935694417313200302486430621452148193070357085413586273024825836199558808737659491980722440939154427450661764772775129547508576796483629550604593135636089186003317838351195952052901704192820287150876908415708841821219596331312029761504115951091993393916604113112647445822592608933098654467678510845989513382322906613463091163645548875870493062498621568538090181439454479079396062763145021654370704147918933273023005941822022012250612412660802697568023004126094548600156095650764280381544523793494364480663700918773300663227099424201463012110799680382949608596024545771380500258860455863688793725946819158783396044798377626239866739380685165052957269274938306912786714442565133430447959014603438105839355576501753407506299842393415903218024301646485180022286680992910378917387096125830794088940364748864004403024366319278666431106677389453261541735099874009862323124009778654764340563068657230612929055538975345200842655780703746344566176661456009029556836840280793551824478345405915472728961912474081525360306642022651966822422459178956745035014374696538033288077158446350054863674519809551022879089678144882128589518904819017587799173270897889355710127145536801459008208428155318076986165230792368555290885007252493340682320510494076676617002690659789535607205583849518134946587167801681747411374220301670094131639725777827585425157395782086156688036202272082266922421341215600859383104961592257394267610407635413992766458611615416467967362926316841978500898229381331494106394191893885067066980645312386609423996223620436685938948542646086006149975157829461952495776560504147004770830887608973175643861027444650674364041703830981488153415719798409633988675972714230830813019018372476333175457313808758312770238705104283176386523109686334030920426986588303486243207361127219091621639785931488862386808265280144262436083130564133355622286407710972488866748377496249455862214656675231515367444819534830405018522152918272017849350257423753344835858542187327948848890208224643754419173464657865695999251676522425924556372457142096217034595546296474270764356656354781545325350072010762945894156715956802711263231307296803549494886516125025495085375284170416182910875679461504065887382221479057606269398148954622482653496103486496263272348830558305816592640484261900622859811090632710706894292976070037225019964652811484620824253275947024293050390946443200538347595184497185075425554463672542046603199293000784357432764463892113755224818815473852742111682002540685610606642615414052489142379488772893418406765906830417273673708567357784433827844813973287176605741567410209791121746365362723172981469591034503923992909437156566067644694360138177632532313677728647979885445580192175183684898455808205748250256157812436073684908540938773926758449246887361601068346974769837504448403754457040542045326578886834365222931499859128729940083527187058619016549698317167892466343779390241587527884779963378192472357043653713580379897590851087654026617442850350952535584464179807657844525226695342868444834072634003626885222478132978302460546737573650695281998031176981808054442301108164955766175593873860526335038754887535636221895634908839440237141052738545462172828038685672728279817523089993092632408635854743914918248617982363384703038930298042529460143338983584259258261754486286299228750909977460699586141563697596193684684195149840264178967110659879098011902115543203846466867164183298924833952578984775501167615956519828884958256223473733128947654178951509676207014870239164827127273941338451048597814848835762289017794357664218692485979181034740089013424305125631241984815661941435306306593807027941668309950267124583993889754732304154589581594997861788420367339147213606250480873702934344940752703570484363116648354043824485238956732101446123366862715848657802257047900652390575891304158098375108253221605159202635377032374857511287197316465729409366925026151326903173342238013361709081331987663235676574171684908042365651428023884255849390732436984201301648981390941860366747630953366957866372410410803988957509800996281255886263345837335093931347417829841493062368411269322148231831370943117733077181658982882468529842961372394339862628919015175962304500041793267323333034774048376738497756204731600175123732360774823284204507244242951083540401695016133484370235390031275647795200352300881964849851965838242715528609143883073092118885300182626727960806610922538016046530401521405574434276060453689295566813978323255907782277291635481230806674589038182144756467275937609924128402015313927086415270802351771795534714054306017103848197303819797331633828124174931083501576368180256343419171040053229483960108618354339873645395067954801530790531302492292579340739960977114291327818424179394094440403656328874095409563867605019762475069583887642902857943148233057807238786275341087601166409558590946382308581278144530264676952800086741585728414352160809065955486904811503017386477361625124985034000767158290761390153437246030327183079525103342377871807721691412770587842214932523258327755053603340137778282075127724329862870626750593045593296973480752674885313883862740717514332274818710710169325325022407095412632860566450876352823049768112035167515950679169358165697839650902536486742806475494859740671939843640768574609225890089913588103037576958706738684697296575155568804577571565607555731086355275392165710715071975919013975805086135068701168291261487393753863224266850607019770407331035366749102208482413192918061708588299263405201079717685525619935034629803473121962513270087371101848690256947193530740780420531923510846756492983911257663536801936967065459050760547725530105460558341261544661717256665618682647047954686193519484004620316171870826095340868896352661353616363635573822234100850791665736486309890524497042697319517910022735327952031395811780473319679668719179323711001188283975656032992367118352291593523705343285580461217025254475684943920833532042428232473310529346818153364016442486953342665950862023011115279890276671926146593886987441772950063706469684321251783015765012333485128059054423310899754261027561158016448915108620390649803302699197965734713052558061541403403479501288483354112740962716587797990745137649520372713784154592237042565702177641129898754949113489857520027211561089597050644357059031787873105394878276994901248057322834266150684427796668733233516752865616961664034899559138933773619859720452058689700296632911546029551872700634449890921720652812657893482604906689656776970478061837673011318160457562396119228375272583739492200468200126037845663463702509367530601088734709144127781821605457994486586584649458002707173079273328447011745654317558440748029345775073677640018675512099970660445219647283532039742709279525711574124507305794555254021603090915209561588654310963287417460175523713489623049298836813119761310148639656559581478819918637176852530693365544873467418597223596764263727195942574675009527054888935691444575647925818141764848640153120090910468108325536325137452593149222994527634277267165367311952704108465861068675751245925075631324072602626477250589051278664024795413306847237995834579843091331041699980916923181480245663811061402956650366349730337969573715935811304407530441901021005932594214612359200705714585705388075502434261827518653523459502302796550027335640089578076356591323951740686356363899092323862467390489175507805275272670311219497245624717994261667342329415339106013714096256482916682276809100502088948462171249954591423315989920358760395163561427406806381503997572844851027297433583538240155673444825355121806076453100214155217002499774561654524142385404467860368955593653542556182723335007487800563693086576496996622314243999590518849021167949040303081979794097126279392219994147644845952958432179390908641255122528691592013915226526257469303276003090215494558265802637629749223540886230231870611198091781587258019300807118327661544190756681518552905493201963987632087767514882374249647264689273561793278294799493378423808827765656870355746830298898248920098733399678938258912301327533477145247586732485593784552897716934285312964656549035720440759128027660281818210616928976023045800876863093129756888537040830917293824826245314304857389443904899107858524736526639056286822331706733315917503747510632345133734671260476891734294672529805888965857532117907201550848459830032820680395495103960899655935889105199660657984057189142556560242242783045726109390481391250633852113747316296415252482781899763912614390337851927263792221864440594509655165840570603883202169429669850392018293481211900621356469648238340626623164123376457839682118452984150521377439930563276651726003308390666989172912242165195638190928887179498433961181438152265424255792592524702772166462589011094920248974698204173843371323266895651818563835071295788228301410316677802864977389897255250072355981236195869293598083236575646563526392025251167250677922327594318292551385690299746148215442548409795548289367871139765229251898960512760867634775681223012702359095738885632263313785763963506195486263098447451845216401549373237074330491588063260698417536430906840241027915643943296007422107113143445360608155088576872363884622269050882631001724326145696553602191565729675699004856366446084400076167658322926315433981805592894466425304987303480858563137291453452956269944727954898350165103403145901590078683431095607932925975615422148118104757585349026315211284958373470153390916505536577261308449484323450360978978294462083895701379253609161604344031702653294628895491225182035039897060576516878434564901148663238311988059185727163145642809199930916064469191063472916542429931368264181891970203688241107101593452416291641728131771804714549693071295956229153031693975728683246533234490227168448292136766179075100864535510134410407545933816910125631527367075649139689608334193024583668860751026370446378617259557692168927474806328897879983807921123148503005897535996222564482806890100045579446327273286326532392895793055352376901553385483932339600397142485422279874753296205612382035681202110535028627589061018214280884180703646810218893190991615158890012154877868513073828333566234755738910633821112791615600739646558799099089086936006292200165766079694319578393385668941442737057214657201418464449974666383356685495198028036009029994264638458978037247726266268160251673598562829768959812721827907444328001835357576543412633616551066053737580878733356011669522519415473302856069960926248085320405739770770611341126852317677701210018051063333956487472201823139347081766347029916140835352201183283238621154364703297763450124094760417918014572979346709562050599073490728110227859864949635271254025667768814404901556553651071924197517984984581075585359461066998040773614985905788977745336964899233761941008634243927850144748309881779814410902930000337887698883332687349422844764313100642382592283796504063559018733488702300870968179499628634880231300251915293712986841343905946814120137385294323549176275307753778587906770103689110884938584027654467955945740742503972145399952201894526224811706112509805359492398476521507891596860680710556699711283889105183883428040827284365418253278695831759378035716557434937900990655404852694644754401802975291190999476584020595240558344633029841933168618377120186280781278528304226060747689989577753542156866090644284672479428567693131765175707827628849634715866069152343247102488070160445193649839009468410753372278599248583509212934726067377447263666846185712764519050214999148021407120227336617407908954361370405730760422460252871975725619075101279192970765463592692716445717913085018260282090916777357809990192402671827087144101943681852776327617094700067268619166722760642280833143173122085895521913283380930529192387750252038305165029754379926612903243209598653322010409776976036955550419683878875106868454648089017114188929634497352031491148029918974580702485598839791661753127376928220098366887397875101686357645124333649039733749646315367315696091489549844599607488521239191484626527719139705363068982835853150908097204373987955479759447734361562870240802661692488432763017046054846198303211323956186197075742980064176168642081893953608168655044818614270012180874356493351494686044329114550172179283233275528346461092732440030345780184175899412832200111487499737082361576861803780098910161500053442413611008284877636293580583265654296371255740804687781419438365100657739042792953727170895280594131640228531394220948834660899932431510171679333455780911570461123261852557139693133194589689787155651798242937867879697474182702476499184355190097097875866436217575472435861257985711490185422624983708575304614946408423902760663642470595394993942104913196582693353270727112299580776350157323930950790849064813084430386397995252523660600472589487098894894079664409356336810377500491085978518563593536034823382893486968217702223600170268189911185865613920490994078445311355565663952057999673733281624165912167902743980690636467250916524666705295894866344295622680821202360331073888669727040230822875212646387428897637846017898944010575609976834130283125944426891835696646127849855464738760605518556923101199956950099292026542851951918143574649621067914469622655245358616017801791615960340585142870232302300219119324839900738792607956769339939122469039363360544786947784545057102114729161691743364562589894180174561879950271194287546088479123596482805511095843301296449343769485255381456996678243794554885478883230597888859652951971987519854222353877392624305898721964335608570712494237844165992528933577656610754679537260431160982297111289060904683221403866124405658091326644169911785112432991311657477081729544957810434383898630511843273381947110719797164900085758642809687735576607358798257139646138940246580954762706505489360174482142381398973513954805860850978753773998016748518866777860040598304591736780873450604581493300111096530307222639098144436299117145544017937673585954382345109803757320934924966555708583736208900989592042847856282630154007860154046387616705034614914349341760164497371260992188682163769445514372592280047345485614653011084805406453027563353865703499052507130568231519427104671773637150782225027135985455300550902619800899454807912666692275654434368907516918142469743846122343950628942132051593940388739928133424440241228592547438245247705247940734685575118414118867869447995934401064327519357249074013399373054729323420054532837736498174749917463656054832087698719740791004433930938601547446751843807693078775013084035854134613856678564662071753923712163703642533431664415139466802138796611861254809478293278985954498591074591391941676185868865224385440573027310813387677185119456267363491233587571391241780176832426005358586807108734396286104341570855502882825622648387359076256807042800243450833302055046368522409348564211528597556187655647050849463841791648002418790536982281197028429172304824963056456766877548061238581701975882086207355366799958267648176804101167732221920134578391281370100115445871513073902330506776002937061029909943882741399089081399493559266488873053086886477159334072130410667613719499075174137888942056264828279081596830708583155924861200098851798883998862478003874463857995338631809823662207846023247870353155146348840390170086859879693610004530136212435927213031939245234436602029396362648113743973504544292075987584849087145030469078228800805945649604052646538607234857965949608991712149958851754081955423522650088573792720105550347454632144485399751209265833675090560895639235820748086498383862192749263457025055219961848934946985465210640273240546269561728166589313046959970999622862814605132966493100690373894346211732876107213995939826284703667317135790411073504788245039740978251140733837932619146435913812452220854865214720705324098382844107354049676035540125669787304600989677781035546895509050195337547466924281850342804246676955469623240686699713728074711183156972963322233990941037832372267933162840270267464308499867159531219001390096791285330982135135276079728838919820756410198541896119976136860618923958860088570515717665939399830449574695099994207958467583075515485904338769443749484542872142599507395415653726557331043654833952897521421772995451528448061352405949035649071084717909119350153507813611768538056217733081212543101151091261616319718939606708394817769473260223186734955902192793000582371495532513000543772099928920405303438431309954728994313558780983515465271559050205937055149940122586769962638185846345393464718170452727185911142467920968925790445763592848599993762500766706146974648596849984728457476566278605635379225370261363126427945194790273952509970744471620207828198320751018358982064338094540699919158734003472783858768503276127346724565843915478257481586079914918350903749683847444693925266083926070066080296847810939570866651308963936877855698940332591632317315835226421921808586879649852024950195637200873173226200356342531656698229968399234691989803284529945604197863402075354088358355834420883839926373714671875445643312981964326557820607690124780579112308852301123500160592778775182227636017395363720966945865414118424970996662590041541596755141416326573042625732356360611930926644981521113228045275911858436232188385406205317331597608097906830329305753070184738013341403788712334733420603492960803204312181931243870186214309587981936957012404993104184796979290648686954488993677326523772022729934056513246693792860959407994671759979935331892050766151562064992908573617610275727368060425600223094882753730391907638136523753943999299230538662736440780021607257791047332208170778227619329312136250915769707845900297275569331891848097815221501152297014186723943710414174895167312672149553139219616651825817180967475758647363200450009770422978153084988646737649351619842378700654699133952291120829257027705089891117915631824446973032751631952568672111374570817509655194211697631539028293488579582444924443564194488354175879899100618633046346944853879560866907046898402548614111491454786581352322704544894920858248840442797876950176681902880359272995625699372157374671577713297548921352306248901290138991007496161516123766244450160460338121177680136795906488030921070612275036640324088907463635488226611707774320462962502909097121040544213766269836021456235115199222474500855538793214407779282671457240025466104105819843662100762809565478301969481738389010709636806794326107622764381744370907336354736220876837026975419219072693187967172951137492575166377534783049445966542951995553905474011834948854101663615428308350361732454135194778001086830102158666187749996550535272377856521255841367917533230329453182644232170369482416951450307483915821263594615138925972901277286364468961305518736395628079625576707908790772372755949111306489704710511604744168931135014423399582322737996861275547844418269875735252053350634830891755925676953696942045324418881932345781198731168146536061083881647425745742099555895456632030518249369402701182118765143333375768213358610908613231179063200698768419335960650943130899268111212668640126125754664201352310477231900709429230596370241133483464912571751537843684468297438464859188152903685298089829133535793214475078333090082366860692228803193895118261677339965930147712002038782371056650957464221910874809879520321589311051563949389903166665624875358347335677762575982579455327666520731375671494152756616420630568815652453160458897217817534067460676789079095365605025907899487734307738838265291373898115044293103575135039827049051309204032624324060015147363233520126416570051946354339496844242290004306508345424070097383435480203572757129800757273994617967673238096717641826298722788932280361708145738005906204694529499409863946312687584415672754239295919854103202108250109266389096813684152666223102533003291629824411248041514161365485838286827433288894213765420375201946258549296440237007713820517050747523631171323031797278834250515476418274258556961581854982764201681774396745551149068253275530589502931064623194967540919892624350991725871234356956729487460625817477462385527052676796725186520273619052895234313527875889573845333834792990322460556236138533635213813972753177268311242168914426132150251251263989354666005448107715396478458242930990027389269303295250169174403715619144907309138633271799066950246599368277062804374613773294561465085276296314143047209760763034739522135368141078427577909054453045180931021320433083934770760692575937034293884861445227441894924473300630279672707575743466311322341085980619617962077126313120696960616851705636839661688531704344223494780573579712477293685995115121340399129726063417355709251094693345498458473061980781243487548740178613731155836841510256034529405208012049989798972408406302312093366744184558338340709013727121804227814746174042951316222147437621524700872544041908854471696100147499907857986512013246131697057357910441931387387749677659185602777216304184709192359708259730251813524342898084563602437216716797813391254937622785567139321981115270762758787018551620147467327605539914111123448018562566800141693703862483123323081632297550730335905285522685621766225121966773576469937132724293559293035904950059660586718229538069516277727748214319183960785757220964176947821379015863423574200258284581934397039980103452284342125278472298842794720091847591916072889325564005876891453988583375201279049614616471134662193383620106944514672630548430989340961300163437852489846257912157471777356785474152713936174531884181651746512844419554680600385283145809318423091599280892745088116824980884302686027186019909826035513037493747805511117341063165278287928862583091715181260026458572711207549845648136234534124340550670677925617675216551063737519608837877802805847469960330534853474439781620464165721935775687913631818315766106893167937878612530181108150918858547978955268658584058575160031898380082667361032587705286090084096569239771329235008233524843038940864435384814145446730519093788842463346130693457480972994910145419544756807367851722158124293498855203160822679413910070283425162085642235721905277972875784983232326861507081097527078436299841789887144257383733026384302746455892774022142509722745864022170003204856795286814323076808524853481080133454263090566578070631956941902936498912084473822042670569757074379904472197209136328002022925938394924089005430589285517962994620395223971632101858740688922619786846081739999993964814500575672362524959473170838166818754582721466363826068299613033546702503548667487154048672772634361155943625742609175568149508516626520365936021820071128302858963806431999853929682624078623617258275017976284742338802959170572751268110855217025094451511097617545085845265408559893879865202549170076616075913850956205435926224926134416972948495763269452568876895057740073105750049360942076940907871674013359936056993127860236023625614114956294630485216469689319599962382982975023004124522555152821534353459246619861592741926154501992222575385460394075023121144247942205999918162448013638309701736056014820530944010153774251408097738054314031999781037357226801065473799620427954119999978085924945162990867361283876151788259563700513456043101356582064776886016091427306089857419938530468907671838915228114658627544215587222028027025459965541594378315472114857237864830812452513488537055334848640067370319261130304112876967117574157570351535133172325787947811298868994905501634782883824667176104642485330494147922670390257184862994360636409775193238691240769171851447865405598616257135993665564051053270106773700657365141781314462435191313757529141311912767472085145359846744821630049822701033212143358801939924986152855802129199482041466950248459786769459595880876193587877405984195209921884328537739127039199217717653734510071237114816119984878007965648074658470984588871063216107414591790379468391102240961011747690534547912601953283405279199729618631384679798445016267702274278615096854925006871637765964728940458661882851992295419633775143891276847921848036355651319745242620406255331077601308554202879057803354678384709614539306891045707094603366555945484397090539103945884080730566745831800361560024833322672642222302086280336166277893887556635949623325443830335758000681213966124786434902740001247193874260220519662214614965484911355076694671384478851911325064189110382466849428416496985177420895523478494942117735969351729409473227426543028260801262811936236031085581055869371676014749625520475453498937449473411956221717808681424475535163106979873539656367357488164596529610381178031731547294341682686333809759549827284043595088302576111832546296426141519721213151384171376147976958394790470490352300779654080410843958422443220342911477543264044097238111145357933886857845573269181132251849707403919731746818320391468773820759456127380961072756938619395350733819186148921829640640450839889418879081286425547054891640113595191130542041994502774808256125889367972248958531002648082619817978737835203200287399611559409582225333845329102627437362469105095471462960131974992400310526605166718531595889060562086407473029382951706887790718612132903397356899555235352674881194594440448033807589187161493195550877499276206658512189953106597368228665784863978727094432306839430582538932401989087483684876805205333497298757017549813719383437485849664879818229520905783988396298510483868930662466408191321841796563688631577932616892077098202432466193187539402681441603449251526433698132505333556873429852785243911723017550259827272799744929060863753962609572709693704658608383584829647163826338060645850192610255273527486597213009438949973203097952635089387006075107030971374712048883673850818629454294501542976988530963870240338977098438909576944346452484755931087508197565602526295561759079527126331094989263005334599047864112118497522603912480071926680718145735533360245721044171382563006727564365562331215718045196346672093660399472459218581157970671800121376262130276909897224573803722261138430386156568805847684690488431934530695319810600376490504489778896755664840881670859913299697754237413433590299507841438989506237988337961358082672184631380862537769868682662440134216083363950832407173636089725924309777039316816095677919326266185684567969018417816014140347733151805127049863208484192249425001867762692292458867550306275732562811062357986207181592607034200437396576729193831291184538176909865666542345159185232683125420615584269607298185494625592822505722283958135849088240286143093934302785907693404150649277765345835859621201552362522647714251130275623724049399852814660609015229321920928261414322870041185843674013954647070940277024855920422441632193868180997714406566654374258090524100807239016891496234065727223886862902436525670108686813908791602009488100910122467573285539314459028307670553562388240474388471155082766604324558653884631035857104159145823697664640223561556045631712831102508997811758327362221757983644861659294384632835639730451814172501055441858857777752431669058008206150418395212537782150780434726801359121706831938082667427941691464590178657128267146528362182439554284982328533016702461089911591239249589474355537132918998887066968304819363271886789098344534762074397307536955873445659756856101789842646284564591417345404865014465723944944457265049404276184125399341436644129493743902965601060855255540819117851586421458064164495793786362171066166877435798421906788172166159437935050600130923563294866894827231766398348238297491949981254145350574007989262674332234678414023885218892280682027037969710814409661749415978629346458658576631316300477577652969233801255688322861507671234843437843845857851828395565918378021964783077831619819205745139161023126543482078154081803531002433859590982334861502568781679864302636262695203026855160022146730717895343047740253393527537709179565402494119584691515344125237285286336327508003148419629936847984350527127852055357051823479047897338105452701403877250409806243116521491836233166707138459186263980630531516984365546391729086996385793004082427138890158249169908055741588834178917830619146302872374621567915152308699630608509339667279114087682185457605948243678409307663673178015803379341477397569514678651567284324730165016618637417656070566734032792834054910364346302177430886731742455916290051927087984801661383655862512575694124837761150252993621884681725757370595259132184428860695216354234399207828217991638490616538168252031952243611691820531766941182635187206446265236554749260206948029304044306690888934930108479141047405066272159752050053535427086584249547378409163137920568071409269581774262055407463307007151398047012521864595928330645311324827276742003501664992585683592731659383888207790453334686647019156448949641772617697439727256429254542608357841081111700905204192606908526361330970814400546649706741080976936825747126789290522099850282871913753529820759202120742067528437603122985274821493891080049242627162320779028184941335783996450345932944314845988637850477462453562699590004730595524279278595986408666041288707358033367827924060208290594230397557939743856930832516855401831982408022785166520407328030768702144873348654783646755909858253839266753045576212708110440557588403596810819678999865161253069921879820139150936885543524409360297040711817395682790748417278169192850515987729437401798608810710155374377723176030246240405324083118275004548540069520594137969671554758386979329211180977572407092762281596301730617921605612270430923624503354983020196612971656667524202983992797262399370803392480298639749048137817161977433248754428652919884088832097365328267952611791837110603612709805313487126385348813102123638508750060292318484128724953105620433200419769472345251761675060189757090269402889300076328329254250190028261482646804876093136385581846712461772005884780970455871436976875190068577965592684674343048054265128966919752516551724932733280268953603895859814095343694035847068139105925083031445775555765357764800610476441697776699882440034807996132133665261913740204690243277476505599971924286638213803602282378918598307199130309540291195833169087138117087283383283979102685274455667786008776060383908228559084672034124932556504854487264302213153554682700966143636120645029413005377607745924902455883808112049110563498827585617751633595151513141561636123621631907187473516441977724218858044318738332040121787725745239525025801546326128289498316990314034137808153961487886847759727947793550708854422663080069078026568849244440624916486384927149187122371999432244385133906000241151112527591928887558333861158963406432763391620260615334025848100217940950140719515259843568698601426975706942354090106441285250139356213708314266190852620195551136108171809693371959062476653097915142497879597069324717132466265364796823293805237871336989515992402926409722928970045667365849064381130994969721901406486199374407078914610857102899774236428469604991252053824442114046330618445535554951814867665355970202760385821834128319783682228887224879094685477197874071799795041656985977879129542680946841540613647884051526632155607520295283167048390877899945149742430441743723218205912471039196476816016600097039875811962169019076661181685403043833675314840239154830639651489434895607671744221274822522975763390251384118818288984525081341926793059031180240297165850802688685828277737675290289528700234789368962199957342906604926857851655006645168889630801744783264941639196017072899188041428513306755538451038114704332738418049228596602583454044961737220347001455086443485630350486404029257244018738151738253522115158783846352559253132006238722749541048910686329737271497205080143426693871946788076770338707402055650700713187819646533317821619114889164231633668535783221810413928124678598385669136851501059166874079755067302520020501868378735021052476445669614926758556633645440495528401711560863602057635581571298417051887157365754165842749830948434773348597445651505171948983105469835195721593161365127317968610525839102595243210053922626929122837799082190664793609056469821854281561216277344267842686722725534596751249400544923119648640364567358832886971184909507600893456820936998911085945950140940780072370405989589188896070614346198016303631404403129732664457009336483189766369456029883371412261884565675414760869025213883342614220118562998432199554359427650567292095585646231298705460586601911408928802366642984719598579536184986192792056339796674081415427700240995728577674758020787960375677962616265100901021903120696923710396014360868928369097459690790820219145957082091874269180683536429526952039841484688487231122151676332327545160172757253850550816036010665653210428468286171043077459361276866298719194568583959665446495696029328804779253994160295625570898944206953650718032675437736434567107914363800230171288915205137911892958353265927900081753474711306696481656719866540891158413573227593297163778984323299394102234775557295325561720054448975718519587036629737964712210197942611688639090025525991566473596465954464391093466090521703870093574035681934798590719868478261343560108608239189847963064870518084799857734334573556961778711809470915510961728733198930783477138626122751966584963828205887252377641216007547330054798005029150813303987572555748184721941315192970246392581504011280402529623782073877155262950633908262967869526968623147122067087361019691357362722146663437936026366173424227879027499342074967835905334912698315806982169821780380513058975188457590913624186809806780758328435409299929569920611323142071162084589889789418016431095241403612258207185547726045695449738951414334320423991223808714281566286716093885991329618589948984217698987153010149863504041408407917061483308355681594091124489536595052033395801399297460314116782883761471242765300433747993032578490044061388514409367862809807651004726044070114809633990720724672031824797681088488612953572105052589801219073598483135056538602384560407211535545514926518395581661988231266235643339727749724153226613290611750360942183231415388703184094445412582871805249512227774339780049392588330903780069326415656011384805665577751439736304806115367502070593829910839301709880964863574623973487608401149183633096267929595712046942902897802425882383934829013425689054128609470136521465516818201474792827202872805552636120373227046987411852258726321777850673024411464718004364353710510749463487191497174199968912762907035254078746796284132001904659609206422615001258767650969822513725942210101858803978682150994446497969433591518104429391298313399082574655127249355114875357943591305090223964862550523815660855421411149309758221890180625811820056262485024975983236352051722881078063432283120404026032456738270088277410075967005655207880224094571403215526247599613779150467507570605090650682231197307115974732266131198158620053955366196687618732041757481100147619333734037127798456335641565356960666146843495826498922883386434853663769634255794120495238762257302965512652437842918247678372580668460876510392779265271351640616884907994719663644909373540644898868852806134157001302436226689299435322490553064041372830595892144495750930317800650646299527204547678064535126756442973421112605750692268557000253781101760147383095108159353278722240165035584442489507035569019681911400724876799027247074865756609304152806105337552444245028108810954904433811149419448274946491454590493642459254830784626011452644535070023939484629974759084699032783019602850553443264217584156246356595429647639755929298807152134496457948573275371806478789191468043456345879467727863152435585806379353105666157924634688462137458856882838168929368215203822617754255820322906978522803450661588868816154399185404049121640087060067847004611887848030801519785876690294212342254178896076682643664968178602727204195915694195598771743766198362252551325701359356095404660674587763415644146625412375352996819995428493499642402020040756524986869028659981125992954558893505327692263167352478368867265062094772297396283094153187302089502320922560297048367205872063779842553493485317324382885667032858675790761184543855257459040681840134878864663293777801641474067384944683623148733735272142341039439906106037074876733611553332341561531652032423435015444426291563210078591664578255619145521679083259443892401688965015659297404012895447336046967223143072452645224209365551682622826050858577626134323404133325239611111258104846328999753466119460005203365460360632024933888828216171220323997262849525349859379943320594575478283959277027422290133765844502472516330480819833794023228852459546586468829612794315343206916822273920449366749959183638257327316391491166742927837068071242528795655852626854924064139478487188784824816897215244158292036086647480931737925888062252802294365919591671844698903028813279048660025787346398604198919886798503505867945272627957128765244692145164877685337011770132162314357644359577399274133607273055471145472093928745357589551979010513277743464818852881795294212581095260471142465956179640795735267786460243317531843924360333022416735155126328015568004057155609333000863908998830689094928349431533143970063241008624273149532053070894896039578820383893849511625092923726205001417277330716512888122701307246642293407007916986058341674225567781350735949236833454490858729072107738339199228362015182576188226030725222451140436735881151298111881393358676327466315002419687697718002853415933156547888125158692886539442359279938149258023031842101632768785351280914632966183715445981853337124766171162022225313583324471595476631599657173092190413852623167109149590347413151926749506532994782758228834911792132508307142023912817436532068312518595940618701283070506673628434315188657646977913283819236641301997620181539512851841442724038890673616905044744302543356054623559941239838021212378036714782299424297530602431989626674410449458393645511126372152444284094560575952163180088782130491170369068146926994740474340266554564580907645976133991086321250999686956015330406353750273855735805343883662520575936661864025670250587675874413777669563978828939809066847749554473606833945657843609757552099364935019613734670121638929217895401698860387973371752081689465876866956335080786576025419715923992895780752872862712563786747406556264585469005225666479204996859622725001925327507679568455844540594615925951082319075233021022098806786340618234247524872302740125096124278371978570227275743090906222605293558935895261248611320199489248535155055194780977047358462709345906167617634889235815780839365671618098518196886406622701955547286089135680139827286435231540976723018700703886828091139773852249654360337236434044004415106677926691942467459984834451913886468776564182612713166605870783653242421570761068467027979772240511133580378039967859757561793215753990097638973300168246239508348945689793160944983267249836445364545645988577425670486393946332115624173030435975954518989456324056740659544625620392235420075612530403961943476902833672748842957330749431142662610504589294849595578926173242341284088744827992974303825663961567968554418990901400854226929339754641958509349435711011201642958555955674962331908822212450213050467968278011921709800723685723498178776862049288423593937093475020066622716072263569066163510796039931396040367386787313908092718176544240630629899698964097432485945546018598288044013220911851227372363439875392747689410109209652953799742397543581435317697325256629278514798393400011916874844563509683969987345652774185895506868697597170877090615433157017316206102702037787997337948069584230127649189442611140313984772180709196398153538564769899630248590372512647201249527180294046554568434936371701891474002967496464649136838288923300183175103324629835199277939106124814974910521963147024351985145343262888848156846362552931453087711773158967228062634165753234001386641071232531779066334153660019823973775891133774489088735227285239881879473252590537145725572501746063989121130798786271539040919928429534012967331178927745435674688910276300929692940343526893530629937108752373641540406865905304505056932681536930836190210407482749292925937135176631383856587751592127275535272307277859497475855563815492307206409501819288677179740696182237811312542694959264834214636220636877639245951736096389608026671870810837977287106895627956448186181173730481323018547089029439494602387844018604374970213429335852820715411783464666616455001756429587707956211229063748937662432121012240892317158952473765520742042976095092114918913747175961798672213504553453701269671103751556949678810687055327844979395230262204671004624242585577680871637256891750220553425521061456968932182549033157854998475559101969169209149360084936633286684834683383107933773435402410200975748285451623208742924298305683916914522085796768891528610331025879955678340168434973584334551141192373446930894134523227557775529380260065232197425635590023513793650786188901386100860179590475666468551947962392813147862457182127733923581557475227272678719543485805370096454345979183162877491038964812351173288373535419362049878284822876984496497998415472982830494611819869338031453701513748148099533411556251548721700825777181690535329358867667463526788713334226955378655043026396377116326594780778706095338775941253688251741307601166647457548856981683181175536324856752399768175819004970889066399829823976399177171067405726971755210018969331315593114410485364336512043477321314553426209673471978589948607516893256456965049825564900337276804054289660889493340129555174439007939577775702541276568767043730572965448502048099800051810573194643756761938112050587155193067608372460168082662982354803656281109693836813601932857978675139092094675532440618474371486050280069837469896839652103358990670153774486922082660454366050665239496483712917264053405319268240566671278394019198014294653859289849384519176991240538251812923662544352467547980782623016164705193728154937485725185746566469844091795393696141088638062537085190416135363088761744214648703440657574086496016408507982972176262078702085402337508298357590753099129658133479116041251450717766808475229043248409407161207732140670261473780385054527228465001468764318455673080128687095428690508577363957709181134417884043393734804388867870474069202668554739169000441171920901822797870220523962561508494592602802408160663884128843389016223983940406136424121109346290728309347607596797427016359622782133000055690981511192887135758859054585441925065310659107391303350151566888031773619740983330691206473641119783683064989908385363011264716567154558844398706198213818498742482382232650274576265113412455889451367740553755577864265303646444334648299500715798559356264726897948801474389128739898743882624060229920021589760048106822056641005640402957664957576057688481718499807527421992008163324681547523181219957520202979544416047071066889718921319708237422824916075373010669791452936499904006766123045171219596074900573957766924486537796495572009669233503323021921079858084102577612161010387297014003030033740333264162488077973072579503826924885703608672081197711904672876079542740713988065777182741183387937577673060806328481029684187370127861593768793822002272161003954227426889721164449281960098504429391087265118899991548812653293427124864259062190507669806290652540176838801170761409540423598344340120781211632821070890772171910558209047820565992071543332327232890355477963225018476691041647912638229759698593804223824788535270273234760749072192090885546276316975377124432343022014678809066871881559908154220637839940004128121321261822669994897074742159152641395302746270580504914400469010681756667662548752273100002580182390323648210324667914550915490511999753537140766811336638329238794099255422128007642540736901295157857022737949624921451218849049914197393912117687660462807801727514208753558697064104426064167031274197362487767971072527697136954628228714507651653868125030753968129067932190266994343456682850155362989661660066625733604949390130976960308529757664006376209162805317257193714656833446866865628497683900007524025822977468951127122209014725807826879068147277706126246044733458295124382339365578214702357129964437313757378727592132839690269691567312200939157046348348562109787111117412524534539406457731175204867514857138276470888790258036248345072961144732125398618244732421106699249340942033916342545991128679147495811996042548633105514460705612785420377173072707063162722931230998145535335034309012090659864453432924342199632174599044717943647421092896020138276556244861970210096030732959704979321450359356277356361848941197822228325954670603324427156082693322459821651663851380995846353471347503304413852774894337703749875356839770951737026622508516340476652730124807461691479759485980483440992580146324096200161780389373301751070819101004795992172578620711389871760867788658616831034711764100192425634751247317964497184367907656176242338968769497340655130119208947633230350746400276690382129992459700585902897701613814831959053164113506813680953136537266352464687258439567920380146865472559818207657037532980850692620466234700039996589177096631523432309353330439803131974481062968986332295190021319657740302744476578299979023010332298021930254866912944894791794336663757877650948243510992104604108182863567400104860332607021578714261887044892047721070928930551073298665358710969804112713443216117484406072132610628073514968176221894908406942230268960606230345825406263997995010279517794584214934063430505275330840271592150718014862430265056013791281574786191116418172505377045350125364255607141929601831551205203339061304030270846459571498531420121670933220851583688092606372545203927695710538619498297490360701583686457422094922641567270350544070883893775783965780637914496307255479251289259729597008670503164542474527682770029776380571255690489746103194386906562322045289435959789075833334575958006168636465000170919260643790585347641657404399999484641619684837246186634053706497653858053990907926269133324045584861169027494011094776998490223239765237551805250720004073350678779456932298664940054878832175505958523075437768511422228025007741124416624178268867747427418271866003694597055708943727918129560852417671427056205641738805889349880675129428426841927340316212541471673132536383043877944634109861847906145618913585176966121025084953158670852424475551934148117175638417149103607896497118695133723069955564628915668160345907635440652576902253586176859317830614538382431986775313707461699830489735804787463548597273281938371079446904790139730026762874226078037421621888274635570747844490234200379513276973718635774029404122257451153738282883968312495695700548576719678355333714012171428725003094013692253480041247008819936909633112713058590942078290400610848713377743243224468228036868863484518588926702890349471250209773153891150563162979659158696379928734351774518808807130130795793885792422202849323290803410667830045236886993140639501069446640882353103347608769490064138252205200418935978450049673000648214389264446093686316299431356726366115041029832686999611750183717935050078223287468199488597864726649110509403843961426000828879014988964165525951676874003946152754839241868264601375387932226307648961643905854093524899241253787616237534011601511174482035648022841908441608552878582498587138330563411846559040737136945337045367830071892360304407709905313155405472351056713371358947616739078553560378865403730477997437074856021543162253293627248827504233582578245588212613526267857665871226608516246948271303007051165813239293637671461289909138808049183453287981765625864293859672795346534024420594595679068546813009737786104708526529793482708824965919262405947082766580581740404604173353555710660989490841956615124276514077942531087709798275121570535767117348145842839130762334672632492553945150380120466230525477632015164379029239613571493682850098349064883522548845924852754065370463522516206852073899564610416271273879474035106440446707528688773647755151495964526696990992793131760079264085665253983569749902716973518630830959556914075193163164612496227911685803922235493059291203922069282843165947347519306213574145930361420120855712079347226341852377223418006919871833322609231196571387265098868145283635704792991875847995331789338708210936478471200296569142115550852773647319466558678351102311127599512728648150837466187430661875207082967941829330299644910641438647874464569003724012678900161051873861324837520748736784005143535484468098468796013099159395699634631379687600217671575161192677608787237648790494692911366428605413691146562561965560001045707258890608162376345779821554414743423198029812951724747555572975832877836145920285759473186146426662959957577542270222991074480265470722382916903161389935039731132660100151005867920011761120506977506766515099302045136279307362122305328687733626534868104659078633294895692118664262314540520125507932281491294831488169747081863997489791366522337869618488523436892602847598491569201143128836327516375808673871972774961266353534885494378800184848697100212193964590455094522765218341124272120350004800200695032037934666718035708031050713232564842777913169814069074243624255925029171948262733026111367783143295663527079453461110700692578760694207060774423742443320597710086735269951615701573162067166662769588992665161931350653199555063892662426043619941063337589404866168135985677879621329189421535498795339123793099727973906688585942315090683599989711662341521850835551261460955864343570705212440584611029410669722415780967893266423906890152618794104602222883724101474098917738998756083455283092422646172628123358886937874037198275256072360321356325419707885581940996157133369655410271135246482028706500438507447941790924125318140370110704126287426400904676137394771037109395948265894647542632156331596992019629150522474120928015791501045917160575775261862121609632513089021982505897359175038406217932451496467651692347467100915647831290824702542976842930708458777332105229502473024129883484201030842749506970824876002734625960836557381453662623314278291309180287583699418434060849760871646300838272082837400758133299893525519480975048057693283629351334465352216803261364879926762195226584713593858373393775307107398670118223165771402307845966969428248519465267041510288633185487510426197476146947771555828232357321251688805331471367102923058095632461277108972001947300156820033446013634053577604379807703431920417821797517460052390299168214749121298266822156356947068456989140046276753513542701526700577190057517303140095241229225932428742598550089069858580248047880987972608122682574695979710413131907815702585526244987024326550040867697738958694903627537851528862412165112233767032204530630909833491532549382725098791353077246876069531508107539079447907284376608947701972258210350626200756155099273501324399549261573388226011670785660366982936105918854007020430622235742359946370105604649620941401347503270220347625810754052245006133480557435260501904748408035159022102917979877369623338658547581264286399234133658398004649528125695665984781447611231279329283670762475278040351177566145447489614400441495855850666803776611962878859085694041145213966158759677343091809536435989945256215489240025046857961131036893467902053616709580673558023344154407005876972817316767761306416411797971492299067706177261441074967537360857353054420161111024063741581098927463498679882886558990044075114318660928290448188566863172483186459986756366712151020028239258174818272782040432473755500252492626229124463378343573265486301241496455256643720921842556237877159464325260078844921290654971175905883796241971886587151090858804146898583217233126890847493249080775138875984511903035075724545767936186714740207891372130035663480514777706903969643948216399418822765092386557791601795000431379240757260063883214016212152959044913770150066152395017331605874373684943742492445384254518819218149684117323083652536805086157685948416382889698442271957379062305669097107215858695597367422759789283978534776072231600201985998363837931861323539677579103085932819840984166256596325643763887441655944470469081018637380176138519567996935693075239086568064204978853560284567359311262488516409881185696111189145314481078316697233983832965819773405115386456450175860970674047018263973953116505861345690365922020990551747190518518703608750840972892623850597314752527082105834953954698085925995974967034974852173878177223318557705561869340238694893506509324966295763570109347508412033102056696733279123488963739592596181575820972977953263510095462102589685893576239362717155908801634683380842627592808378471820064728257685949733638511015024017243049131824846561394620308176815596173751058168106022528245394374537248101881008939837032556396278175888060195056817122322381431740072121820829691901060283887507968821498016398736534422222230337894625788222235868512794634562456359923846357582898925340485579305897072025414894407079192291604213706702653089357974205441048398646462103677229911334232758170991656085190964371805861531638187486072181123494580916751913935766173308886076295280861675541408409127284505942289763819630285894461222955200108102203648208114246329600801940169926207822705396811663229111175683937449390525848663980037233247802613980483266807548955710578331756934384478940622080397466693665504790232320639223876579160425616716051183634215299885039180974646296680198828315568292720385060913982077101839371408974441253773060277958542251217704656679945351842121500825027723094965981319188665901899546012034773139178777267756093118408462081163409922880911455848910415793607757709413460149698963962582814861303415044535861563374605346745441758816567762480850269216846572622944606390884210063875262726330544367099080661213007307752690558030674949164814673183081085693578975924163178991012062787373005522605092153105225917118433503145533031008984159598255157077850469177152277488870284535133728427007459010765041544361025437664480160168315648353722763671374078854041144409479980939141368458414401729059843090824240593989103840624963501127588693281280546522408038674838758276270201372101586113170248478964500684316287026224368323141804179656309503841309413811390656854953064394854173048623563078277475086112800526356534439330553825345320869771376295274495693373705287874756514602369023600433003006026499749380532711849891090553141609023109200440039005405512204526525793603412486714265825360435638800577566075531423515578693093272846940283567172883232054592337191077782054193159149745003967467917432072557310517303024452561527149626730350094090422047744158570507347912244101934995120655534182926430523029529794923554674059331015295704462367770581889830872093788296230646418904696087464570266315699801094654792491585701211901111658599782767374709963530235720929413241449562615066616517240574332304616294905329871871498868272531842313154674926899969850523626476015352501689308588885728004532913582488807867982335931933225192954524314261316216151966836484964972815217577801598821309615222834457639798830754638330480354177502693650197430084055252473696319898350374358712276601841062277762409710649855904250366170324308482553085081529124917466911154959843164927421764970894445417862404986699046924304869368554552043989705639987062194132279845928596695233892966448439298968743357128054353707847817145601119524366491107617670844855441794668353222208991713748909167918582351071976573243942673820533689136956366639012945174238553178077417777967374857953805443328246371877101228261415164243475114299399130835443887949996365576805783362389907943350004957274809212094084741978399484656438527562682893310904029257197016702382584473285487079497661310655635488360573861115698237045390459172224303902543598303714076902444514500713366400956654091802815141146008651258438673950000676053586643754068080336376606685984393923422695552476099700757481215967966880352329870813460412483693110379047729950591698297649922399830620729817819718154642622903150315341889332089641603754908322225803732207177988087023827668481237190931369341641102214590939594901560676156498180830364068938889863278342041706605607153807516848053952266518896307717560153487047690857040606727193277074309487695460788230077460793451656566574525131352344229264567894450823520178539572817842445351160254850900945522990116740379672194039711274743595179111417055220681704809200166782130752319099099548960530840581201879903116613621761164670511458142296727682500972786895684422974169892659130205135701788646918905842308056768772941050312899189347758420772602759745559880379993854920583008943665347813392946169117752211629293073229938204491943702138985691673657704657854563916001252809194469552560017256777621930220109373953914620270328603051576728308363443513300806734257255448487498900535633215180155604274477625532770740593275971284351213985207993180630905218973621997278079459788231678164717234791908950941615841769294026671137660964576538528545890417478946378355275995696505073039983123892561843429424000583209672877978590467522789808240378763170800144272000472776537638864492198643899464664846505743622571946864244607072263542136017194925989512426101200437273433689652291294485393250964319112430720760644255587128774665714651837003727977042611466596716114839998006170285121222526248218839136465982404875848012394673156239622128935623125786351947097882599572174171379678434143748190476281699426990954453355999889742359659189447716437412124783063840986731764764803949733232452667085276274490656046442056380765864521177858605382632696461072780205361553573564945266971371831199023102708651230804789788036738131861205014199520705748763392183423162166951315241259726478823886996210416362233220603522620425452531539815525909827361475750679506854682894876573806513957289904069853147185864857689442407114883074491453403505711380204346218114697926889296679875590856511828791742057888290717370521373827222907229056037606144965939784757634509664935398036904483576982461855132182589090324526083404968797678247356677768345417790169038148727226913919999722591623547274437431373512671389659745758193907259344951817471833782928829590810141641064483758451714665252671722622830556519858014439618855248225643392072576964418111807755957027328718426428640504712294994799074603654787970745122407304933352118641425447066011366295723695103017845997165531755530104359482236811954412056360131532459636356397922320669523550349430662877944710376491469549245886712045350651469233513677661481948107996497970758764063116963508123932679121985547354235689338661167919702553518728525618008554137591867752759256741307948371787701010025156097497867915510934119175695290734628943099093217227933934413926579554802266038110992961600898027966526821343133463929644390778646287680143715653483233408880800712365133970320778158901687022333955462623138132971699159193080959268180728461745606638686929996120230936754298850189453976176969508990411822024022754244907794820126796624619908552868514410162660271887241117889730686514821079458108483701333140561440941363941316248232844848417642114252862966180219816850487518455343985080740855570383433871101707623099076490886650174075891242660223899921822937812320992713842882449290223188160125466395993314654920740417242539290179994021195813439831755382050135673396461658127154642331860964619674513854601677489602429353613073295704040932439485082734831759143140349758889417270806518309213731664728239675139523073967432778985284459633790392252043805650189878768145811101876526966646513734067604458784255975849099778233186469310174028917054508847514378836119622433100766541835180138387585008547157222452498882104036274769261698651099217744892425543885868050240234982241057915080649136282484819464301531813186230194370792539636912629734498589344607975339306071859573588341841347976793161757279299931818454307079464506509776050341589515515428602598796033274903101098266385498037573985928456579355463490250407859113213650376999811622923932770553593115149768292660770865880376310228919472631954491805855657217368143394559001026699899504576212912102804594507579927180554516722510914180599760077098280588570353440891938894876564295313291058958832755945798653422575887697419938889655350403284839353743592560272812256401660802912209089239389358463728631727209275643338122036173863015166612940598528014471535935365591311870237987933014267794367475133107044902445454270618009842982388988587192860328375749494652420033525572985530449110513837038226696911018751467533827135806383361851980776235479974556824717118813768811427751864358747286289127774889892409492821324683624687028126803837777990643058560232265881748025698660111537648913849501644575652802268737637930191072744688805371506686773370888672536938025754464151545566871080982590529304840943353192734379919439611917972039341507835087721837431986306409292653522157523907329142022090682208777885677077217902310811911105165679401884773790915991541352023695248131035097287679347605458424763621500705867448585030530248594712954190762063021744567092345266277041032434783777207960172657385753572590757320904051724172048874497791115059869417395690209145486631969876283009169448039013693536615100693468186830867520890975037032371996535513651591834120411119749134815722992165752227103156714710503645003554104699726832644249486579181331886452337783543202738293495834915030885646878186564747558190563017217002252467060283552323945138986328771896390149476456236168739113826233213458804203514485730336301392670661966452586918114407091977213347608380702362652830160310240538296307160657914073243924980807911942429956145483961582916510124195226752535666336866174413621246678831133348553006284118552547829022008304908446561015075078604450671048767588644944032680344237028672345350031170199008982213593671854963627867811276600374608833454088006424482113717718143532792875984643231774378667865784525606508769994426120076355082621560243739047374953889776024309611726405855556366434605071099143291400215784366028397360180053256629952748318206215895125215170320540476155506952760881844347687520229746555206066039814243307171261853822058660786782233268732641886917957825586500961975180695365134814434845235854554902381695303588273410333414272618527925540758691244569907064669599977208100638531540912739314542747278239796612557628950397566055372718964835239170704758056633655231535365227833563303231471186260595640286356050197354524481895956492139534227747720966306628028944553883836584714666303803584871984847165303181658207748597661840755239765136686374636285183910658587145230759221376644028987130596161340766828399071741278456310305642791018264788676450487407355792484818372812768702729535784692176174393143996635546549186644830308140445450394120583497859065247536365933045786046814897080756093146310345541514744974718930356715541426455977074915556898250631247901982652886823384989926909739210335889740587266745612172906870288710534247397061564807067103182008743710577177911481597355174290276966716885419868744653713383930654232072462624519267779311841615102043461820838882314510985836805168405990883283746154427236786262619011054112019313346100417008851475489874471927484862266150997849106596136481860406287039052228369952918380447174633362468773190484536268880913533035874589580352851474664601724679009116973459182382339674088815825823073093638786439706515844425051158568564941551698929253441475939330771065643148255816706980947092159311375305731105360175488800017933753360253341974645578325793058675303267396647841709627110893569695896518044097141723973068233509366487475462153550811150584111543307284078388487463065158613446295045387253292172124718878025020372394362824373528781174376271281054260013863417674225269280710786858157332661596160691135013452371675739027443201429525668664124786183532538692589429455022312534543263089489670360405641673381490151680993233392209910434487867695273969600830236111003133197389171222820036064743087983311806245855624941313208400905727369759378934374854543511002441823049731946734593725226731933158194073721284437983766439560234092103612898869223657859753398174030335602413557296969589896524901507383734208993048432334298149937809775123058262098555882973719826566163570502892936576368082169470589939174501757506444298148959159485814969477573453805491413533755840478482191874977832289948583805897855483715615678850754535526206777423321552692866322839107908579600601679466777943614951402539556819502296101090400264375721104937049871834397217686803524968656410363282900413464026646038931641214879426252696256740205689889296586174206801347096740228302672872989799452090102771275883642058830751846507611192798868198685112736428979181351142262145949014667815990275198139309364614683089149031975627731292098431086184978102092182649392823550893850582334509076925560645741408172372744264152319179605220048873671530791689691824839657854187018534797070945180718014341579543851487204445904408202545024897252957079918162546370226359848655765815462645004628538853161765033794962564055443378812941787736851748458373766121877557221718663919645496584441574937229880322264292878144259831018894890156472955842969405135469695315210505988131813501922838912463626542833861188014392488261396766366747817286911770312281166071714581960444914072005498326149674765614011577639022393610790252284464966376144569499647312237980587634066729406386094088340705219930452135065132134709027612242795775252382853794803187342449373389186685939758781085899842080822825276990292827237106504663618474311392511369842110343270849059610454100627320075441153336909737386821234131467458946376502279930280141370378204125482232871304195030065211444950334271532956693837392671873404432862855677536135798908371594873796994213532024795238848710777583427294348402601891405301555992300356593224605694608170079108136863694434905147196209030753152092011131281841016279785917416632770983337234080772446304117857678016456213488520894032165301622171619230220141788734641721283654786174359665719452682178006907487524432938244018175761427715311980100971582539826186881654108198344795231629878823154743244395554792886983162185940629234503503511832570360891758709319357952984152303689977282492081681207261344489610476421336329516516709174465299513165949105623308638110575117345960080299312660230383595734284957648710542982749805267510442038337688110680526225280404583336287901838028993941531621080403045990396960352450210039292521194558603706755075642790511070715905910340108593654564039224580168140429459024030209953408365595767751934104199078880409978072852381501615648467124043988190632498196629938666217089537048734029025060424968691941200256127423423865456083696972340617090804623731427017535483451387892750401445376260925204510308756498281694697197060412880141529140386384437024268764414732500976179549345821385450305467679138348839673223122316345916646165910489536301397649011589561276605321090839760361964991168759806469068383459604581813489310528481819606307885761424595257374586492983747821474798752515006803498161683236781249308630337191670246245898228792648166463550704017176618356309683720378081413312346134946750024234267609558080584058712771055759012524788317155861666496851243519358440994019337056970494725954520244313975471742987979876396521424413714935285835572518687195483957642726934633219183541104556134758899983245515243514063912370233368301943509684631315356598854881615533379923462700693636438144579656752967881355743117591187954036248715010495671951026746500734662843587983318523853344279935184409138357585796129955471929586541136206339452922480593789831792105650413016174238018088228339060639103004451259524270484078324257469415138634433261401833096766672536458118757831028929584453272825153444312373519903949621255807671081287360869794024274770695397043412587431102624094322123821751491533920658640316106312806437367516538092955377874048362052837285115216870678671463042904457608227394108483120235199652398502748574535620021638519259044420926325324820032415702830728707875161400173274428407909067656354537306046258698525466635339486933395947834519929352641016708789214795378913909741431404425705823794728338302364234415347149271420969255029267058404267337529488767951290910380286277313430909272633752635397421542759948899053446009138670686798346612268350880573262282943181688773288103454952019586137888915475362020359980649010013580869938866680004171600651284094386849775878810751117869100722348870810056180212758401827856576457880528640401718122844880677452482972549687376735460266249199914562126982851634939971848017864619229843132063446666797643617469530261999616079854970685354611251150970857577727098524827579249657412269091388414712391521045268762673640092664452246065026641010318279106859437792874577146884033439267089446419477265617365431123298839721302673156136269306853507331324456928484631944782480444370908984292349462803088147414413635886170780770697692610892487655357618225950447585722587729468263548743105010807989044688404307942395524185521938766203688127154217657822015083829047373728527524849358855251359029597280894955066260883180938148616487342871309296144462484544641929444891290737146255081544615083315819620262815243651817562114231354847946600595581340399364509521987727410383023545201708182653206323989421387839758756227410300687660602628866907517439215826939302148714811987397608536360971635538860122616419102081556419241454677568558737143708439809809288772982728935399023854490271617303198917322719268722506030883919568755360798448559856641637424578053544370990770891578980873782517403465061730718075359083837636138003882427194771568810296735636439782917196763097286241175948424821630293625963906501359053391649541575136751893677795811722728563769070707628390505924339599280571836298485114086932576342707047140884484822736989977523900977164384136307324760618199972707562148443077875643192295059017519836792219956679338769101061381510861434963284815332771697088788577691940385431970724699870431422933640484602452406717835346881449944093133615332712971729337332514667882345544111647912003502373790459285155799654142574543187342539658236908189485627711358512586323511282658674656308218489143399989965242277208372212471943714235309628494890993772410643952597627639794397056886966654656183298548554176520166016750324270054942307110529544776456750955140485758089184178516095888870256752331018861217073328167227659127825090767540262937209603549450998481233897439506951892440010462215943993972468541652728117318329130448158603331937558621118839698192381504604310239628894095444923248463946059865159289794005803747215034447393898455136946434392225378346720032386497959230547682733243964246833822179342514856351779223778008142965810549720802268961180031710092992055080230749871753731930327927901703818494351083560266889126711517330265851520594251573254814501902596868362934090796887820817152380674388273948454815151323227710160254500349500467402372478979650148775935294722175283301448182815536078062678594321622706800232571277070397238697499444778020900991797125425167989872066894015064184557046775658243003456110079591892166423507330254469782163307114252151164746321609153563378448240306126589457763571068210627862462223450265723400578259759668178704727481161508641209456275563583686715245498800548842438142401701006366250801647824398349856060831921786035071185884491151581720498299843835928962626320120482737139695457903897454319040677740667254149563190643633806497170508201440723884423453759002842384214977349921158209785324572510645555906956156691979933674708753252975587855343279556234875995669037100664523087131697208717497901234168950705870260197432893444530283234161164260239201817689081736408726349442491572487728616131680885640774152963311278986680910733400466557508952974203690328416356054366937365121837491275127017144095774093346220660610099514316749060800304166830560487126106945101027262262551374500498530910164911409241607133739301717916463202766893360141534114874659178840312279440510346294500160286758075157413894913409137756699627525716993388449769653115477193915181785485660412622267703032333765754712441326271290012319073656726058524005493730104401135486424054583337582904236617615807687668417017934505196079925107065093086729348242743587642832987173668737814572844719588840369139818154481621409358106453811819085917453347136923042207391335225814426980974696983883535149500501528157485897232426871474713482572210313383439600228977896764397297425391766885224022758475377468958815480039961804515532344984559660358465605646942081989922818046893535022092888487948157640959204447235726647335264893050673069585479849224835441207696670681288453108502401690736583080809341245526889077216846863831119263747738899732700876745815481074861168072188126559054017386714350607462944271855287730122287123486462371611700692648905048709000976767858751195525423088062217963245403035454448944440774513697095441888848100886316395988258739754267031675574629547965434019514050113078201518634856722441878648364613809295903482037424177517133248885450095497523182923912423562813444529818834413586208138480590234302720628524316503339629121941058359756388505744348107832976946840592798359885534835877011079795927729285174676507427507162606779288050871640886967979069316452946299564684329236933135566727294111605641344433922790291059339077547244426116638162763829254329358756883436789691943887326775740519897606240044460245467520064973137929253413747913912165072479779240735361528423171317735348111001483208377535745106841733544841152869878876974526532909169098408490759370014904110546489110208993073876267134554730675750694916110671549420646159414890026535799691303648061517967139691319901665502585571905647465026525661977156322307517894172265928383508122413413487599778495433311464087104866432788535520016755881154822238025973717311680386185871669084233969435089337954567019383185047334618998486624439754336945522488575013133592135451297061095338550352140826046306339410318455811415699895985069745678233292900228839866706116956423993004580448416659226181902963195528564464116002209192682055926980774573445983510384502983675684152964501676831539711311138534765409318718334199164337435719861717862712440307414480225198212124118348501922185868618524133595727524160413453804110390045939368339740310029300251170955815251560720534161134415261585984630689663486513541314491233069813942202569989342341076092243141880136608770498555982508869409690471236640698994548608083524710026261969802186288180197760639740388051087581179004397528295727354850752318867457135611314739952187222690216586140850985669747774445257150699997578555008511284051070350732921238483557297277679381924418050365916794644496857473453939958171529915359449297034699737779416328576792615743985964561747320262481910766296813942656618579592895026368977956117315950208418492649568771999668340422474058659811152179857434360168173441464787320039993256367195054480704961789050571055216381233454672408094685192355004173188564776910933988526656518510286976809497306458785103236917975944659203865144451529076109440178313770854723569964948042912921856002495175106028952662190879826974924907397895953867384944710159331344060442369187333025281457814919499367481940715357883327929413514472954385180886727971864331742443329343367089206315215152022719684333847693508115416000677637467942277234940939902220281003810902276139121261262644252138790114348047815552505196054046406867527240164302466377794470672309250850123104951382392247183338841412460931196866338755536117624044013039647146385240799662932514359546877811086522242010902096943007814857912195960682826018093021377469193735547608097094375197526187289091595381567938705178995520567220909138355545834450574405290610020382597181414939411747749933065238881116187652670421281323544621712060459256790242152702929480508973781486450106377761711364951340226348771067640674032185105602709895429101810365569940752192929881638250117886949631780733155490678333404480628678345208380713009196381291247490735911541394362683684559302195957218805814713317691006398688825161109236851672688713646897549772973396678585729011174534114468746093364299719408980369606577888080995103879298978748271493239209598522716774296929528660192564194533100124786683182423598755072680993372335468230107172284908739376203896255230760708016344613888887113815201801452992731997412608548340997137102197271525985355329244616108865443328538996056182277793955822098525645508736935110236636162764667689708387360354655733067162672267907094740273353519340203321213802262863130233417085632298585894858866411059707040859376556651883237182584481567113180223067971316810190102740074236807916942663704390057465966589104197341957148803219208778004876553828948795458996703084052138557593768157248075556354956228822765608960389212268082397511248752904302297804414460845577302388782483895798798691782617450520362024232361681147901666857095132170942227117794809213976629324420735162187794010017261367504202970314057995213697161787576381226984108878779682264138601815151177799357129714928230152718087636036700072876872894733384001853416443118713611970881978462959201967610552432199953142967872511056787341084259885942115099386392226001548169278273923617168190094047253549966663930276437008850089412264229888516556163470310546518690266167524107248105994740253342613499916837574002142501022115532590844221768509962984412592016180099104545908250902387615405861168822543796043741900793426022883472537366274507108911359628518041304870953366224891012703174044145156190634510356956453456905325603835947312983661666268675996780991717595493955422496332892207313648345292024880608281017585052565183680812056593853283097542536477533495127418452666092954335531556721259098276140342109122460737961209764994976753793708899242313988156284968590989452592711315922422315431795892348125708866672377737864648847157750577920377011436258119056941224850256586700784171356074920685653880709620815338397392815206400362146998546152388987641354122889981526561742268021450287694062434343149195554199955340916254566697750324061920068633555988230115469585904130286987449190047416446157076028842949836279827457926292158604288417890791175297879379844828651786087965763160164603865057935437161403885006257785330360831237680802012989666768464735081959659071343919243423768565159284570881321313921333143428348872595789080946479705349111660688906601367644631155326633913389623242109558284903150745304691370454036677416263155619581794562636117618663889253038888873928844670752086115282264715066950455960365806685820852707892395921569424453532517205933786154570563580840418822840658293143282300485766750013246474771981380320284506323884117799777980997407379240195545922248675207730674853262513749658039205460479080979407022021997659325206412012140216363434739906631702344128874195185019088200038691124020620318020784671432154880358557770183419704077644215677909395679212860048061025363536168988392407865253830640961334978186832148526039534376206193294521171949261366198757778987435007291324090532522984550015416183114143694781946429387150097074245861903735938818935085266098208330343799188755619698150822536316863519741228069610347784495880225204663756439534148308823483218035975246124484663261380290510328466823547291188349703761879292252955987905190235537126369983655234961700008542267985640158990741644400710756135912785536928081599170175790871687715129225740419070966236908606902910924465766814245687880850041073284303212731293252958589940300575982112513689028222974481193544169603627403269340131970823563642314221948608660683257435448359507629427688129445118740938691900875971810830973536533604538826904555868550225214102231806978266211518578359237874246530072746122098255506505664040960612896403317798518442945379729917596136875968665317703428101112620645339142781092294278878181305634667578021949275375135521481451062112371612307894690298465933247128314915035041223804725310827530251492609965687272422190360418204656126418583316189043814137803736630124880754308855053139916015086588717598173209733503175382460855238125350749817944483373071632439034745027852104894851952689429273499883883252668001684428696013990608459323062644614098458560085043909999217777373555867927597148193536630524462889168468413222008311380333814796462624974588176031784251288092965504975887204028998082298162443488400288317726681173754106908897158991313554181344711822582243068737979288571843799121408167917278744502990335210397784508397685142951373111724110191307826773113585474169905281265477778807532899252205349407533511448145407171084752947147953475154533113491426544100206495873111837774296614450380075307264827286809576500268802058746535706169971219838596399926771073907136489411426073407786474782538023894044453942011159586430933330876962757367755959429443517495712445889273686588800759762929296933190250929368000981415992360062880157252886286327273909164454607208468310821390719041839227689005822246382315670197334549192315543923703819760262291255155993459821275631626920760371234741287408120859434369959693580074083447977996436329183152165563481866726971386876046978001511520714591219260214424333141121006358922077833269020849378351518908786805989450009393159222109453846766936946720294485321985644274025628546625466642837794977121300102994761725527481645900935666873223226370130680937549370944901255583487077179305877422497968237000212032145930063240356953975264723496431308793497654748357443365360529680462906534006285127646876196615991106074981466319609530513197254791362782089420429622627179459595436962527876697357162864116800508743983724601254279179916954750852299436326849166039593030208021408569884543133709644187834779762270188242438591930003903157242364719125289066440910301882946074027107369774843312098162730261539346528783251184344059804763044627008724005205589782197138414479330706110643239900845070439969808625592197976370046412360670999138295227932086471572289851418212018229931204111134860925513103901771727177686159874943702708463854383297737052604845658822017883513041662642814428144215937296513412442935856749934905870337393294540157504122791426382365044318247485077220465752933796753129071838886325431372888921714665503558969560609481727448382460817716789958276062820404628806148938982451023642419133445051283012944557373457117844985661166251547113141455786297498413123393049369900165241621312072595256173501164296801331554878804239736834119862601966347819156517308541810681314159448840587431520440784902110807567018287985898887373234831752637893346526458143685541098945919811472025742007698005421745384038528118048952077157012641187763023213923447489821403041745463977215079219894722732140314476455573295256767632368567826056690848746110255112316619408983477997077571292545460568628216819495524181151116528130101448737159639524435065328068569402209057830874179882464364588457882224160576946042487075174947836897863917887584138990803827302643058262445952935342125542403473237013464808337472758149067378261917504876045364189293895124932238412167413288410287526599862490193429844091450148609883630380460295062066289645970209825630016049916173843829668475263387053260353879536625014462215990712727437974695433840786492434665656078712670414829804604466194530096017602355174872938711739859293211222972893666236116182881501187860902273298745053642676035185198816874673174733694676512700256423516829989191256746420333757832464643853007714684454107565237742937151088317498766725435799588776736469690629077715242505948022252320021648644562126737080274998584032965176149210634782208546280116177786653780215980916874999258165150645985836136349502954866832465408248519949173012847939307078367171668517704315101039188618030596739090335807648254069342404505572984860897064870869255267039666122070525693035634015887482427066601295590433934900786855875654266220450414792785193560073558000572224496257798668145795195139320256380912441985737295615747552847680333455854792947353164955767750591812395876778238856483825943641183824032737332036082074764528032150066373912544129857991930101657187510152141083517443002771056151788462746963810838585045460020744844156102257576374666909443601983418683614125119772360150789433972578237948128502533116331544308572035689985309616796635346498472991700134587343065327884377300289747505893043072032235543869203987636769273427108868174762619774114924185142507711599730365621343905955554927450450296016390462091576959057637378820536126144415208778573339612364357712307202190200102784459069622285951949975753999007524718942434426240881405745797755391426619452151498759221996056364594921308419722086938553515064396753513833127578079998892726541465366782265905971690210388651355308323295534329612706933804933499789795161906495012225454421171834010551208300361103590275721760628905336292561443924496037375321724709192960243923833398167803517177060435745387777048753182793106727984952688381593526527265682087833659927433944939512078946174269476008086207867055770953619369166516127095117941949324732303193357334805150200587260456230688002918234580684064253530290099918836450385847868328005310327986100768619315856065746168795345424428193615262069717189046221257968016248814641984912521720770200240393503863655883248605405770767181922200883134983865859400976326364137392364185479029930828383959750507904499532439151630616494109993794146952415432479928721211578905304888984956707544691591552654809378897360927701968540836257810509221056068552977071002807067383429479348455966404328974097719909786295528589976360779849530817531146609394004863807261019478922270043686583908554805902091177075605123153739591512717684644219820186118149810130011532301406770563759905264631818975581315052687737239292275832898719141830625952366835971394297334352182094660104964807281187810980048362120611250156898224388067052383455706720385240785034342853748451023023121721799437535319794709335284786638245216966805607705176235485557263773057254696223699702375654303027866988619128211423163402546664948299050376499309255770135257051852478443320700156796379330828219945452242515573980104518773426395348103011055072918541061118841687252728858123194019049058188116760813814621085160162573171639548532335028910989274890264179099152784920709245861329937175883562953440861196702607286060158415842321549564111297466673406871022662214786294509655326345315063562872295827536046588745494140223604248015639225437991633254514327859312376351428999081487164133559942760122424938277769040480250938543019370881078083661398356328818469161381443073483624326308421045811188201468746858306778952070496065508349332505636173307329105543076858295804759555505113165586978767925019384950275558814984929286376780303090504359765018286674903204304487318630396131868847316809541718809220154486584256062265795994658059129615449242525541162978508811775685796115250358422983999478436977545732188515552896987867598688715916449426804110244735715368223082970634103600129693806255121368680030241682440114306995099144234754425473176116477439799099723919289046310435715754913268193482398426357203324867182158215100795978016956612307582309510605775529461580322348564245826249130297911086345979372784973361447541788243349952161890987744891912775582881803208305969565185608419754062562502213350983750784125869719521709564538277696343748778508543896402412833570161120340343207629295914593484817981466802154088951448332982892471306466848951058565457756027120036964371799064362700194963749989783412999772558832856312400912136552785649379535943585795360799991777569105555524053499325410248237583636057446209625185776526498734073100311728697289873786294930937992737427284762365896420721488514052370935723027614488741005749590232435360695266021937513393551629937034177108739986975351175434258483227561202801206636855253508264884807513765878645114799417891735142591148164720693423223110226200175255066496706804775205017501432900688356770306031281338074822574559590727743618031387842085321991369854310755716084075582381310867348660891719254424763648348491883517411895413070669641919275189772450283845899482667966853995135797711427045697951444344036266243101396872710872832259879430852612497142156905908386028257593241624293440832843152193893309145252836207277576481243127161206583099918236602116283678328491376123689340614928412496166436742425407717989741691095135861168995752957046932747661556116554482073294208877846744549961298395091195066030441547574362819788278453385502565293340192960718523578774611368874116870209557607122541766778947858227883302586094632747083148111051928789419023789003839776090454942241824754175513446732437801523303180482706545317661863682496614585100570009601332091728287734257727496369074532792441504048254741613227905999683145852245511946862694185403205013031514053445552125563480218720625302826906453345751602125717600314378370731794854991487565582984699046193092970567126580688165173363042999789671013789294546911078165156141605291457279330265639084510947509375394541504173721555638574817143533236415146633454830319937055488177645637655901025688488704735743514253493321473772645946980923247142554098261561976176384852398642943284761578077042279376889248174674509996226830867141163904307758589165341379139152833825800228632423300251963279847571463589677919504020159104935109339709052068279460576241125464417903059968648743753454143980733847407186834726466063347097549940655335456164358034911575756684639168684537889035586167480241445187646042947435835701944284629740274212830948940934100795713728245385591263328127923195554936729723353082176528631212427808538963712406319862601259386851356907107170261005561901458476953364972932701987177764844874499711579014846158512279986539528773640304120703211333135888774141011611006475460507693942680035921068107122682913484714834316093411634066668761215651131735336298589922926924295657965595616876131800470339188828779429035923220413726954256953321409272398452394154579508903523360370238525614120427739940354584027846326202795969879707527299853832567915611973519952367559672398174319038580552254562091810848509439152638763845713176340040659114549523889402009650696552011823025093817961139298071579149092045488271475506963606680583456383018324421263397009387892694789853599869683565334401638373173070751879566562820905634072985160305153654741472611004981589927368225189155432778232121160188401431869949970661283113425138887548885843956595495741720596252397761609632821641159405803228925602879470260195259362042827333594538133621717133863278341595615296433302432791389135592075553932879514521108149172395687883631301662377301795052709617878728090121872164151238340212539965643870721675811132748387135898375807052830605355663245537909851224114020941183597589802153516727587760377424856031558101520247486251881696257966473474397901106706629008586097602920462166961773484675411697430763176007389327462994598097763960403308455528680606496997295283541764443348682435999925484891306900122672145597921394782784749375474722802919360566467037082137007044445512592948393947103730221758196042501345353119648264572478561783102884228053482624086809296932470470368481599680078382198778556314732097625229832193861927476078993837966332423592259223830064897887740571801755953068936777709277516525952050654132816448004089630411492071534044919152703210928117495212190616291678429591834436865772123040758692389773107792195968863129867019247977847269499103458143368105311927008832435214426914726777609850874982627275390962643717117199102442057814168635916803097365281296584957808231572499914831326930720633993016008231882510462812744847138201225373075755372398424414598985029852466107842909175377313633365230621869057227616146958868027747601763935113440906088260437559219330194007680731322792725800900169967343068675679286635357928606112989582081643198736582489644802929010147877436580442994141471998119072343168899889215860068683593113742072913709725833997312065262796316094666249834902611230109121253407386380338399524126420633063279874905266578303837715070125052028365956395387878639694615672953532721830753720491545877826418220871792205705261691243780327059971040095977868980898161652765984812520704372906399506520718405444471305453530488909418285251816606737002593714903644431104364305625119341333846579369029024960941825033308941399209944443703396149750145947129775768865795145384379017807877158196279930593332828332424072772499701675637247299211731147905277543689510470625847559860092542393929873788178175879033026140981345026580380468429472544459717134360011676492505598153003541150508757280999038476566330088647990033201719720455437499653510300467863733409722871836691214032942520126862133423458158298499010855480462950876887103818221238841318084518237689080642493114529355140261763023855629362510780564620202573719763957432287026392946638660610004098892822719503021692475161114710192955493289017393315642906664557096535467806806166951828150639099300755520879015459867543421950056032963552481462723201205580887052613209589463528806554161837071964985113169896985727027433086266295300274414845312221506803175526271037108762275889468593419624104865047566251897778260926117327859531727807304999376514480593105247208582160474229591501217852403402450336127128652954601560349991831801242585351085281497826184453491658708329984942116282558708516547043145572080263804606972266656422027017487894044004329585831604634559928259772837682684076898110352117941262950815389886566263488280097137128858261655244395439901162858126624548238376296286288030097008650413649453914088127926634433808294058362035009682765181175694297104692374655792003897799467138352159107487166673357688978548043014784248285744598262701505656047542520340005472879729995505320658931284956811117400725317121894416341746215832968114348646154347282121192626276476462914281360100226037028991113050991873069759852104498692732456987596873811658252600692775509479650647570553880335770992934927520014360963083153425474066645627729646245804961316040887334524515701610585113308074724982295406590022841583543937706018957257855568323396599992935649213488478002268460914907324769174407208900514805814295364630254335254102466336059286745306592521926182765539141327417766030832960661251218554155525965678629505885320795951611227894054051180875202124640101606132725547366558719927982574377244864692797332923870842375872727587677110833511141898471042618134336241145513045105969397288543110225943029150394923372473482936581244096244396201839199794556404232280845018284863939306280436018669519142336203813669958228910822398026497140695348866922889960631793590345142477279579592763226879884590386584613806114987647437675574139599008378381419984399919801182730753858353016241532602979960441777046816547126781516882541820184277218984015170979760415110944527392519871717879125430534922151508063793270237376259010966555132870894023851435102935001066726710518685859371195601197478790460639286722689686003791215483604452481974027403554464825309119379758921969961685561423509052050669942589826872911864385836042800926402659660014989334284759661628001558405429999040925033118549403211375085167247117368832241364088185729309534964713490979498943036905915316289587217129544465780100267144237030592759159244552983251164544526038869368115680058501247088230448745971209393095227090762700290682791731895135392678338696046821017139741339454511775551103465342728475321090443656812865665714116067717867369371162634294605664107908361503759862278729337828950509696200570085704536332133080159733547536798866191073828447812106224546934627334768804504504028633712030098502645134034303239127692765955492867828143563303725766363207603143718403051341042214175682851785199714258150441878921554736400109302866111420534228866380807389105259314665771551923629476929368293269231912995347092200528563960579022853661913252852005671732483569777793841992031565934906620064709508309729846407431391100029426423532603682037054573290409469142599967966452879935334473716977768612107466263631364710386853769826042116278982546093294485022870541729775644706598207066099370639862685916681364366484815804994470371043965279573570116617443884293368477040159663752448139982998590606790346280660790179476328718184460476528718225716547921990719684026570196178654898937898166028641302256418837741784429310335592996043760188990001128534517748521784510295497689399565583737361698229092180608304202452758112923976633301925441777252940947055771944846134455320267623291514419918700314852420007310993468699490837037378395845828333045660506021250606731235575149080689322916186659837961528010450790112780929278753709708258203044015591164991827584002366150897597457168283725670108686335528771381832064673770246900732306856766934943199513582153099760837169411524854989752496494143261680570690725822369169751550252390444963257719694807176822683107542967275179808519199556448430917869382712432367548302654842749734697759669191187486917821805518534849604995919713544680553450501899400252024169077026613470540032501242725923257524418369215619275065412584026628558041717530402963459726501257100624935250114370993708573385247329936229335803817332783858709340152649714630147707852844508056714768425233348045607562758811933382593229092039697578217376018304047231251964599885255735619195971273437474212316816137669926460211643177268439295284157672812449239597311344320502283722505444758307522462801328133808099229759186130870012890628622954590718795664434327718114572829118344208764670938253796212613971880072161060131926602820305494116288984602122899673465088886487889386147288280823652389372636268523200740800206972699837059267592723947232695986218960171764906129741982594536038235377242286187198891393233783018943330143274684095275715917728621524322981173408162794721095896434619308283726184326701045400603203390974382488816430366473501450934828165525441608372667515841441678395523996981548150571873821199038533597980715953545065545345844566934358779913295366410747591519117409782371690943044569495230035242399973802185737148362394567188172019244971732125534343281611925249183081964526275495213589166830899226667020983064939338452916171791692347902871433540624536006618064671230219838653986284957204700540432370119176099450492210746555852415842145709929447766893878239562954320526235394231122664594904185910416043690313350406560110342781454051836068872651027328889147819674799977245261873700534029740295106368332586557477107999971089527362424887421585524353028508996256452905330804354564590933383254697807548393913049642360037945763828895568874817334494563899475879233765476757958636060800133646710336961752102407025661040658790124684220434652078961009672331321972860747542341482535758558035238243590261527544454127641702770177350453573008317262179438664522609777114862141987946089464007881640354248434791253322531861010534374038565828040480489399011637035045191449211939532899453674774834557395649794835355983802655723072496032102675799119165626047875977395126568533815477020933496323985217170077928660106830274660530601807261150408932743102532669389759799729908930124077319402273527247294241112868812467010970434763059709881721277804617080577915291270818303005644686249456104740431074987138855639591026650781333899196258054604655049665238231005897791913468781177223384012840437555235738514914291460761297829639380698512201033317759312524114656363730878089903489552688195251171996518156113710455441614224541940240639050442602332079123149790431449230133800688897100711313654743711330585911355824747764286002292381823479408461163102870912844165249578073835132546037657104250181432556427254243164043675378124708411072898426127043121089762872126628267421893273002537203878402355779974649324538925137196111654892830591824769453281514932960797321806625160064818165295227830828272045259901231213991679212766638304495760974196140509539696541841870155028476276093918535360932080024479967369122943335795174220515391533527708491378286464986265356185053145344344442214410469953496177693404481676258400145228538767622746656162229399735922560823401498187266266719767189472735571546061308057402734815961442870509012508493260006169231973580275931245479285269824277921648743559295943622438381167171956743744446494221714137432653771913750412706701790000975481836975460485073645199771808912543755916931393991450934282422486982761215505092323190802397612969139957425017469443146273835951747444949218056234007618656463962715090896395547520674925168521123098152437751101110453854932301118243650261959427713734724709157367764405679966561428659081555039103985433993660884484540696146217204620031480184384170668315880476077630256106919113028306960260676387592847766627545010669605468851104896250278753831822220246007923243179605817606291611512875890248513563960384748944932638516242194818672490857964420430898057556759682981020434502666469024908220307811219118174341194229265717241850673323859248994524264520959218988845636856407775218255746283740130592723618051346904720993804660363510545562016495805183302314240260275066337051831134239229157079975257201508524401728581806390714557886888573086786654483829930186376601969844105487997842541987070555994135185670372982031604140404918127530154053107607285490882293018344251771826073100443324768654433979162667231846844101715966437459097822070583397339501687658727976755122756453682093826660479740049826593449363742541566087224114311925322841230866790483425465470070568775861077982252916006910231979599637457546555796341926021392002088340737158337484175176115527680172675728246493079368430366814059592825490746910880837533689259253747827400415077186225325461436611212652348475009593889248659171983856780356172536175711288546144678472785242784285035523456352644905846254314877870614116128718968812860127649160135332714096833529011638111614620007509200598672898692488944730274490238261930126476995670762007516347534727411133399175713031028087745442850414448278636140184113159647670801182943510099232952306857359982127434557829988761766295171012390775178785001150363872301683657467732196036855524126521513596844059148791812210961094269012082249554124309331215409439632521038546854749531315557184187156136220938022331344480079170377777235605051028443559075609822138736450141622057623136109610053632596287645175415236939185148646463437677227258620323310156940520990186100073488484199597862716888572189346982240531287828270816624665405795878341412608229439846870022727932886951958681687742736598828897042742961532794788175914712584980714783886509604462920883822722024571980000612556250553963549317600068431824655402800887395684573633989847166735793465297289382480674830320599193544040215145900255633069307917293376090347493858368602646259129192057613723844300653075653603627371899437711700702039038038759886676522474824602825686735414339946771047342451682413978166095780433265355454128254563974994425948333191682540584101236601411467394644809349502357287210005705444058212207298039277952205288865628313283190151065197846703022759333885006266251219096450138571894050699569038523937487382955023143653884679392686684943790974915706013809194069355622937402152672592720389827263543935300804491225040189203761333400727861592015535241288176521015060290655466951641224136168633431369650593760438410388111291208656955896630528650226106473076313469013151624488809493607207360087236777358517878266205490146063548051991814334162478958712567452260869466185226027483099330401360632437611022053934579956133794469080013233843955960523269479910699522744880200008035270703395066679949399262160732802792220291872113989838647279669043910690031019675102407066133111979020450237627154014351649784161201167768391024215600456591433195754121304029832448371453682142161239359942962849399744243626073828831659235924990361430760941899367738169468666512827198239281439725143412890059821693103996930498156178315834197578180964870591475738295341865820875524225285748606946500666094332911734469355932538133961109247082001040869521838829661516512618726478258970247403650953885978897631094799715256582226769648383594680248708330685176069646091562769977624401130227134410741188543086022456965661902202282762235739921910999240898373855523646575475017484317552928151411799707967560521329241697322364242927791909933195433484339955965340800699995498265279864057252794747174742062670156386048487476172912516117025910919080219066610831965551957905349456760721584342576052179753667930279533334268669980205973048365737302257737586176851502512658809287008144753542031780341094137857393820316376225852322913069134100984312305147973096380258397646082710133943892181667925217009584801765400276096451175530094791807925504087806155790437359263784917783216695965526636428650572182827594360959817587347774591570683914163547375831452095462334818402670196887950773053854633237678192032474960572363649742643834632653010167859559474902129744284298706079822103124628984730366784185470824410440563999807300863516951323250474718174976182596988195989559895587275923108877687726809921488379247528149983750260840434315575154049846572323515173246498155977885847684015740320559351021181867833785269391035562157237720950447828362942386249338911793964447520903979212019966355891617068873884687013084902418768381993841637972560759136821333658876142012317278939265764412995772181981467370891669435357025679398281013440947434337441404953876790290684961606154440982093536518152165292720894391889711500997641712764042348581908736636034340031811181680167503504984006404153762174305490493745736483103775601750784298908756408199061834878631823799668458660047757299730180278721329986133816967003365957158505967444940260623098539624187712076146606411615254506254637005804905649660647035345184954947884701806645799195693731613395841025393945625199721617216989838659530905760391471414227577877148941804263797269435842812687506559876535464977084482440536018043500203181344993655624543284875687534817486066099557321565062530323494487782561142459805576076643357327137864985585768918598784805602907595890943298843812919991692767634466794316331284833209722527600624534096223035223374498471678153654468801644212665518357586194377451472754213259756037041956678118622080805992269927867955362656054460056879397385645760313748100182139827614961930142416011811460900222901928988415149827384296050995550624113032385032015385917444768874962624570283218722799477866656703530868524565987597388930867368799978827005056676615336298452330154647873567203500386093265423556186983494763851871112229031668238867165911736691211463171035779444952748039917330588477032268726187141100417817602351681478005375894286538325830347358978488491927301262834838083061870027426482044148991162133849321632032502625853707354812832483631861574625029564706247863258590437770881563542761698147462721212451561541161096139205743646316179833623751939569527523347072332202918378502285846843398965688479042771208670677536754829852226201647178797975090923137447679324639709487432188547398310438641698820320226077051914494896697143776582152140406543947976374053011145678623101003441438554654786731134717994281505272395742479374163429913425165298965248888053647940605743684036349919852465188411828966964623529875773896345084946864951591805233487625783800247601478077254572501151775117127463940163816849812426367662478871823059020242709384661130441103460313186515187108419161369120286087932584450062042900996763668422979371557767377217822905942745965782310521029945558608604569580569470373466426115217756056269678003401760206312327588779167137696126976041548456872065932639322478592126761385780051863207514689696718104483751985079431852276618410397421148017604087094807774649442717179732123763281348206499102934313782137540758191492169003683704543972383784718524213621319912698484870002913966422980762560284326288948657058543246055298692326168074779074514534059048310721303405369420124513340667317222369289978579291834639725210003042240945880377888954221985443930937572707722719883191880038167518685928924680206281919284540913531646420492384539618211499060915226233772821564631191023912115703932149515056662596223920170212906320711936148588070538322257850533522236706929168524810956336284986940970161675439107183220343953943540794961217732649981533482288497310138673355111466823698759507899187746669224257914026219980395617021765593536907846097042690166442976084910536932883488703468586553216405307780732191214392622234982895780537070852241244849686872866279387358180232316464414607722051347262481305899264287419398118207046152969862188758310297962597750291213350499293748708390630978063536777423597265906710005989432743477095098185921272693453155320576891217166120762763840139692073301680929012004034430189012729279335729150970863914110594760511577544239307955556598136093627250715477067941927696235643132074774114653702716540153185904296010254503639279935240808773664798672272908830406439438076516737662385663452987447939448610892682556022577666893240121149796085080370640832592294671318785065040591847247495044140716534729641764481407493456740065093313038279754231962028522029076965517240944209424264937804708419614363955480366772442386299604680056807800886218723037334275051799474030753142684100902519395774822949880513706080162286752116007746475928980926148852693857371586204790022505758516533854310813210933833889951274569395153720707325600517718497837522798863060206389328916449909171651727771110474726637385800090959599803411834652191834388376958288964141506927147801818903936792543761233706708290648672886053914768516248046500210028058382248124791378016006889432055848607189078452692961929295687525447164851868427216727143212240786369482474927226842858072634324101858116528924946944771515089951870811007654339240989281758533542928105367662816637548909069603126362481361432174458680325319407645064398333663861736709557082852850713261865333435277003600918344758616236752818658950969318149179448354728118168301575760585254509938005906408272479883470647023592655313553671727523158086129911881032189756592725929564408525752262802233422514414221839632657112165227879604773229476266069102698793009378481688148429157893241466493011547733242401768007531063878597561678390764057996810521197834058391303499893499321786000512752621173408150981704350541647020279817072546747502374266759246752676309724449973533952450091740706056795545312869817310217313093768167035670668640915327751685177952328254243168743419568244704774231397451411007296551514138867093709371663386930931299265755216386667822362937722550263040653816508751831851051344918265702534158596695137345498814948665283315997048638234874922995062028404980859914757986422301414059649371326553454696864241782676007991413925010742657902731248531346889189696512918179873612202121311412697865472061811972338513111003378159750285720611849082470624141059088136521386624573062981251490066489164695747244303849650986770906163259252155615611762962525740115177592699448590615103695507931353428864075953195311929241484141523759202889796373248089177526887696342815100976290623912177984456028274953492092359240914281341506916722171544558790627068321201331691247859932246456930153666126403340605143835233983786586066331647559904936837815090120754790542614395525628060016934003371017238492108468939608124367274934658223490413185956818696731905104690841725342140431455835735106982312263912377486336156008264913078428432979976972414025124890143056433820735378022036306183671803200158521054030458417796900652134458569809383552385755400686314110460441628571781813020815300205153443112801617293508553589012008809693271627459082836744523414956002123045166978568622083728490201857686728585059466789049236957991298697080619567234870962994420840715594036161807859920194123509072812957359737491979364068355654073959333246300718720556828481242654648420929528422086011861434650553815576297369525976962219891195732304308290112254878763852438071915139064886285168223467107787593202683873629718347699017921447946432843720109948883647920194195595676720521572099160652760337085625119814982283422963823249708479496024565589815316369752478652791997971398001423750213914546741115319429116565305613458997203886886879169246295326378806156311169391874510880010209048934401631052361800547507613659634090610775421131781113696434217660425857718751423859350977663757635699528193097049227543884884698303768108845674704155199946987509131804305915243091268444210372042452819893297972423411143685615815757755982510133008086779442138475870635198217769569128868805818940218342238806384802958147352865652608337810443672716138568145621718069042497465755467903630763756012946532849491439595410125480246338771074331183924860933696312818237862140316233253555451669136679599973022893277628257187728906978267138282880900093416232212021641115870348810776909751975608916518799229720866272946776064757736324756221015169106899698252080916879574463182736817350737572802788585896287615858910611150823125662330223144634507217766324411589927041671645030132699545448031555259043383591768597504218368999552868400041486974592348226174442416048316907680142865084546773106163655314365665003865982132913637866225193901965486785506414835786042179572853103178252376978352636716999022356853531141808709158708505408550522646432677284210485408713522370574260523770563066996437733550656819192573205530401224510100086429895165845623455863709505682528863646589106122941211730110225227420039272836244190838484948485338242282934561516236900259906844634240476372869634539530936797650694568172183898289416811305528096047932395267493320785978093566413926518136685659584269352082693406416463493486682411766558654894426287306786794845415265624373216873301282848849444958432367999732450969453074278682200031766827100633313346267250853955435669496996799178121507511196285077438279216992265489927842499041100888222351424150264720122569988815424438118584085515228783526371867924699777555867607101622143980389054487537640868807845712786766869459951560615765718103765804061316165928670847595600021039638474939204078450137687905817078678843025390072205327673490290329230218898264397654125840424268419541667683139301379162075827549459011123140099982441439379630650909419110749795443077755278331053324893612964107566343354573219875945504508839142002521091739007090871278716652690926986834860546556428089435820807733489795651166535243166588302184846024037593577205004308479487550556118129486277720654346040110474919482415646197425529788974009055132145974893034114505389233030820155088644289696380951991923475891714792421615816545213524505896668639926198814620989872926921225105554266630921858890278062707743618624994635233450805977548637375761632270614329805048575346025389115793270196615534252385781125053364453527771310250415422368508575182219221443794927404311614683853055655752390803750980414627208591082990555078050555341167146956660063964469943503229626265719482914447088728570029326245352519155222447831616907162074688999200691316216884871716076038068955431272945525366170516820678197346049866955164461770000929868591272800947134341838867619927466298287488095933220203587832374183688229085994566808572150049751816870100965138747851887844582940887132143600137967468303946808549954519667342991759727877116378907676341390766593512292192022966645461351429997917500111784850667396144027543926151104674294377473319373126059410814390193147009029263389586435014952669472371640452103422238557830243502779577264255170949684759423831400868626236967975678545035105480148173581549018662410389190902617698754514224512173220848516062175750646185447287613780172431751454114328771394103716039451443936930517438770954941344307492655474925852351313366133631183767123281465205648256942754366638778925378501869330715033168004875908091272683634394910914252406603549076552300831077249546624500429936611850100402171888775251202548950410837877917574200524973458141414622893546114718560071989183706924906910788198538572869944520367399152960666806637090913674506558826313006419907656066203193308661829446347869256179492860934940188805530137736110395452079247565202042383244409982565733207268770324937003349449590502846717092750733153313151687937456175061523928329735985588502687435326615108963578121024148385907186442677128935111805531717115968814897393963804771880559342425337287679190614996049639761619612766642388158684537850884556618954594680123384119881746479614010598254246351388098499263120801442907314553764048362442387308257930793471925803501215159186911147900907538185552142262002491110855412639902510442988891672411590809991824077692052402317149436976011539489484132283252494930125327592165730947377466709879097616772106334459081647773980574847731052953026151362430120539655562270866690912932817610841680561268459550339687061864462642714763322861884839865425482288091656133667510088297460330868803173243040023325119965772881943484994494104319209546493733336264729725149587025630489245366457332983737626920639962306106272020261274068636679640187605085026321833273049114187364372952156906952812059531540562249625295157064605698398914140376408109225943329981019184952101129561126555462071645324169501127698661066484260855809562783205945277308094852591656830029260692004967870907587177761623863038203829168037701409780292743731124911630767054206610355873870153190679478136325386443415328342263649936062760550102977419126554807014087886995916042089201066867887177969663334683839984745735617468504405655571051353898223642333689502729044678050008611085321295512766315448835583833919742430025719199164475727794588386223227665613010426054139948991661435857769382276184526032998381475758562788859969787686292826706491901388118179131256305531954286961055099719173269748483582427251600547381410858626288196656897167308281054027598321236727933834051743855714974897509829855276414259849329808417136145590058003307775074434524982049371162512287571684507326588619720722422734838271760703531508574624144876181897535865004799111148504048372955346893166442623779931931674550886836853469428436685644947040648502349931496378830438996509748855838230978853562683310095588641240471379341252965850509440737189252411603804038563342835160170498529937937220016428725741805055556447464294413568158839807565805843943467122572517330001821166443959051784815932561613129146651206885856369539472029937460412055085678322827462440068606757660733723079261843471650754730868784986441660248897388088773605067508616862443416672287206317973430706012743922009300021798613107311096966819480693348104109531522441596401280025550174654803710563458961199649739671232763968926041220529978096078325567882000800700830908367667412281752981180875266305467515942374861785497231790503428913988789039940014457783925181660422119252812091883965221444526125246581398477274282062758417597002454518224301908896958642014940868162998283155848981762996367811418705784176308376102116560558762426211942964064301460513950121957788848835211558077667951102551527453211789339713966152770292405173872072843896029220996610962105146655658480012381298807185644739705422960429877628026385912126201884629819923048521172939528611429537316186127707242265116395294220582709774550074908065604837547707414329355527003571181130023201751146926718141019805735385541042290932688185252708231925545924187744085674181542578388981699732518964929829647297928902197186258058567804115931084641395657715148182416816774952856093733008024456377516885072032436727646752503401666088559121101468716442290567188212602755802121669053453381548978277444498964004728247275858092973195367913488152936054390521604554664624338180004238395457494986610697751508716854065590314944722845195254877554998610864361826702759661780214512539679783490531085825456415669718107413445684963097604191358454220053500280992823003268188495228593374631473725036375836862871872392670328416194158502105904053232593273353389154735491420534646652977537872508878303683563777587782501494407811356567035197992349956568227687897799946399852603920539706304154631397545125774010723400137295111888869601510792573301699402228053158505234549673656779113747127444109848292571512403932994167097172653087905290311136440096826917618229128477819088714192046632447308760600403235460579656764371958832996896353692959395066109546074220398609186027516105944809360552421209005584182055802477732223393059280272709863128158493501334939211794996937405112845519801064584500635257343208419843369851396371573422435257940551841150613892888442216306354390575660498610302645613150837066596995880226513120658380067807619603278696451490615082975209869615246949740992584510364809530783151092005908991449067342432164048482775982853870341174077195481229925722837194266961865694167020889231135366652062297084184340846477024708908330551236771383063741536283578576465098419137423022459121691285047291786064761842511567438114210348421088171105464971650226765280617907678217726588810168207357466656664256321105569049551519866752491622685950723407040508651176178493859145197186956208052892070402530067890811455728857256152476071696931921277063049274660036889998357894430155463471151712548736683939060937328035294857285393214099656337105613971232187290254988832733725246439344871651013234991321685615538692728370160191654272347421457884389511531592427348208924720517503656830477225006098847836688176707928209891205140650832598593545074377377736723226530694945633860729411808862525218106766411987562841807260157381035916934556343147465560348872355832017600809044385007231794270932066250869263148478734119947353345165813241547812076284703389648524804418209770334344144290064115152153833854970731802186465791059099954170950478417681106688291718535198081395714643257881579450597670497945543850663203663939455052505730044567347011766083851478513646818399056395836823253771974598420568244045526201603977234169733456266773466935146254126320539064373139950176605844506780967518192246423684633204143437384859270662169663717240397727198235313958283504452535789446277274804410715116911403605006850282922146949089204534034672156916991883050743123705262133009224926508576784762339703038125548031055294575549904941440421584047216686831840582597321655684276284837769481150107824318375911093681245447578625618452355277403667321852499204277769851622009817031989335481170024906866710609010121458356648526615974021621076373942582572001495542394350040856173330508018452609419981808128571476611087948284493100513001763108847012401193214393903988570196205027677440812022743133186455338078646345145858495025872908142879091496627897929355684993576499927053545252896431522833778076417156090349868204497110444949157564666076550306049264104312084133788382018960406280143394216960378187782258200409425399689157615751668593580221582759803918769298906223083567131872945633879157814506915886233678944779449882880338314255537843586956231381332553884266508589845685137462630076650085022501258435637263184790074340579873885060463650199049222189042976002842484396556647951638668301342452845796804129984341151494070766782237437068898140841120279249732763589352993889223029299816805089052179432348649638253982794954589330421004416539160726868234460348688163955701091702800672180474304690670100160145219129754415214118663477207557940865099357316150772565012414509044209414929693666130648535658336524286319906245283076750820114210616741659292135849920919788942553566714285323014852042987453425954633258740636227821945338048038917987926490209081213703460515860693788857774414759941461126607258033075864076314604858534757555795675670154638839221373918205794688550960382918045277776354118197528268592528991163202898665174089747614966108833043397781095046406308827838655371128968451453507208384124617185329823106421169154781976953420846638007213497622901703766377258966739549317540089801463356113215602602821783613571635553567961212839397691602007224561029072914360781651104145680053433126372164827991485889567092768181262005489530814000805027829521839414849240932907033482954931637883995998431116711223898070494148554830618163472429961847601661819692023943234975137190970932496865220757780880515009923563368422108127442328678291837677595920807005256932173706383734004582049363331043197694399594409456270958119493689459797919882324765333556722283214605970233733551529414700210237594591870007782023488736451458604931124037619261531878772691031540064658350256782621463534546258090870486427681865453568360445023756990681006042413374007092690927007673754009648906221058820902252221748751220096298076524373057453107985024257539892530100743115016332443424130486703104725654304146390296785763387811659283221786310246731078875453267434619646811306948565650134871462154039692085986908373258418560183914587003881177647297237382060103605000703163876344905894015944215266555408136410016454772879716180022855660011387759949031096412784651223287934764583029400725391113240352296667177213522104625777774757470836463325701556877292880941091389726571974843850762240717197474051721641176681308313296705715397594736309413525776222764478631950985298722500055772497065959992565956499740349519055476177169533172251669866391506468592403794973728468929709587086457704266688725509498721206872301956790474874691776787157955427122617056433353471580025513044937399915933147716814615991445120370475973799872246865490964012421122609771368445869386862219131359270043751068769526706207889258987854350480298048384100862559341780350730357427859172435102305038526692967571157212772921464576843229998669738571242066981323686550053380660554242018740254489317106945178674399217587784249865720844164042732026219400513775130432274795458446352082919446225161076383809059418031937907348557985364242164579550544607826824682204787674272629147048176800958459201771017856731836148770198053899897733047124324073043815589999668957524021174564344635757604231657379638715171708361780508083910314280980313059014307391619685072240967595247439462694175394074929006231050416529730812553174817218025854560533930049679218509809461041851241339353037942198502819853509950148636998316924692908546639414671221305536953493985841238850778809214848156277500157289212693758288889063083176283332669897766569121106957730564541108985882152597527136215627145917089020791965129352965410770165487695955130308343920053871833908638186500709753766571142550889138515796595156575504262990389038205191888960232174444355984615739660048115064685367198424680702961185928342461834023814278178839909550088517673338844385066365259269518932640721581175811921504159681844125279586264809540448929719775129918798058679221098636893977208316993008513781234774364229952652725380335522323964662842931737672787034092400909005579038310984579664425083744827971845612914121512457343952304226349903411012756797986215852329935374510720400462338943919260457311328065880997750585409231744081837552226120236420717293105593428695232711329154172035573677464594814754219509993142553715272724147500516882491643674277042138198149877830518097395800533345612610080314273427130214228765730736601909130852291595026449557238643908217990592723188455888075326804499311229270626929048814995718259257855834444024168245368480677746837558621118101033959116932062877413076677253754205693612787763840864874622874227955520494185438286127747132635820012763664922486555883339183851158841836074240545427663198249212883938086540053745899740983194655860951761160978797569748917050142550522702246066321337292200450730434417179133357558235580096079252955961993004599062652817337231094369904119497694736727921526819502469781416810064339947835872214702347843859105263882045980646363432842035572224739572198519696664281947715859065779532537390319042749881421990179199996667910191088203474422499187275305785624075038909946128916452504581046151032010693037094952384142698697434847045047599614311668496381355476976981474434145252604986065544753291332343504896320344453938828983870697141322099845702287878669597071703877326201178731406883226408476353464395926429751484913819411833040050588377331545354869444284388937572049199244867600641782410930599112860178436291266033337796044795530521264617195998471398059775724080834821350006455800173401809366020148956905610129834954011741953048424330488274780170751306984592810153424552786151700177291436639111724311223088674400859606643694264585197188130784342097765803326857927500329343697084282019017347343605767511587719079585242782019617158975602755074778765388795083043488678952048467352123040497094826999367592386391214750052928162580818091018440930493197111391113010400323046031278578833006154428144673864487453646656521070370997175738954229509453142726700896088222601899622971082521388488290983378437804641210338259672860686262130231673196724669044683498278470937259565769931583896962830106121857682196283237190329412421463482981318940761680243511427970734225610420545121158953662283412407958865734823075143360607663276118558150298423714379098926722164155437240748467008278284499163954561750022004340616798265067051540076746660482375457546919191450260645443677364205530983075084726611334134124698639254675909027097882085722909971862676178181720184449726220100641423305885041031319497402246195631673027683797382435390891603210626230521775604072347377471249976198925649825516460267490798672187808492289911419971926867178838907681004958349392989846060324787611641697231068163406784457234488770035954987674313395440105875822207333133745320084212826848291377560454389937766501759683722949454705809783956897360347240888094706679499077225751797513367797646190399339163972415868247131138372138243052779618355779944134662013289712794428841172786092277457557463106992558998896234311048708173336103850514905612237041372435624241231943312277630184728000938255304526089835206855465198830957982968235596239111215126204937499942645060233148693710345941032016059578618502934817197366775958620901436465896916507916919230441430616948851644324661147362188796799317758377881062340039361025315508031961141494891144057239157268366339003847675641032873123835525212719363650577333436637392130834302057934233443098139145376571051347236508411962585765423852687950846090070954374145824540696252900584531847421002771935858266499566464281212441230659265511698876257408388945685236320548113562568976827103047452558865885150204191552452734362423656713919073568553595521721841382223658025415884562241388209590434514832798349541076704658574120981272027359797491244997596496130808303258928872980490233775686868368411000551547992824358489507827983478382369212435850232916723555163430274589800260173469849376893892827014346886504396941404493782054378828846747412412719132516400068678804457020151855128810520987677392570850747941453897897410382086630316828680293566778101247012496966349580821002857385502697049140976372931198197056036024434177667982732694009620249628380815680079917984466246618793612891847828634256240058615322301824971384774008563856223958847930313447476870840046775624822534983797059915401015514007389420074036530472581683088698120269716919437558925903226549677076445233266578853675198582938468934876414281236607868941562540997646126240008042619262586847676977645936700572838012629560738385756010073942273654129283320567894041148626376620778696307097373554077100601405167235253666673062598763737069719959376767974885316655229909465099189973099977320913322968777039758576099350262121434848243749457240667395495795281090211393674803087743730796066374185569161757149413382628130119290895249424431753484696107714597151852540150449291109140614425613734286853374044445468546593501797765344612631608637088347299789967188011114006663317188898683121116629814985205275973048724237248054469912450946241743249564292918878533310493469005486744658170817176150465605298352098235537820335556674483481967715643333464225168079779680334255311852736475059969568140506888276510937787147203938032847096992643287923446546571940992548077634174830171246796062848087833681601242322164571064007724951824150698686837085561589178671673058789910442864820959402128712771993354135275658816539313235982576483820441418079581579282751321182189878727302093740065038134118189183289636081782586230536570425796801163966062356173244378331095592836907796026154897419060295900125585019009804950518381892008492893857728679195585311589108834995946430428351341954273627191092998797497944080680315757294702298251095031071543252052199055396223013107629063086849195721322609915537563782457517833774173431875786078354399628987276229019358240033329725579458997989008473164821731221185274390141815052981315543209438205952359520305034497746866108810175052774192296666561757639544854452782804441944657589461971301650831894970129981982303742181291325954312861325794110685647877742495514779108382339823420074061349750004532550155567679271014043575846764820501009150992384544956816672502578541321168005514536207491642220224897097171906286623965562290849750394159143346904245749297303728737156325924126111989786090265131756170946656897918474872392241143701857543727875162492071214383443993984389481460807892698710127047601400427213189144414121163586235267307902658225665958003870987884094068056665651449528269627891013862262896335460673967393353904754638275548702395030205814972959490300606700788331974926006007165263501748832639164127295718166854116526895583544836039540956536846856465308859905764693880468553047772808820712124244257923574352115776811250504521758059507557047193655407865727065506450801570452995813538356665691593633203117126874400635414985719910113000389363202626615733481606316177022441761120681410649123402069273739229053535729586558657561678498929001167213874602470309111073724476219247459398413072374072744367529554469778000055049691926824502796437573295364264214354445814991310885491576929883663480930859325588278653964140885025885608034450364866373750597978558506147172568332537704782796415957237543637511231539281317227183921019700722556604591152818143892718816229057323628879117126890715165264871247308654783597898373681550205190947247705167076771886582739417551151914136423756361796572065259339328389761233711572413411279713155345018746792368666530027735024908617890652085441762926850059448715852801364402305553753603157301256792061040005778893801542182994715440382169134589843245766309281152671917190280190348423531339913488998974050522462187702606312775719072008988045437193682072490606648977256830407681177822780844149001050814464365668815528271807901294734228892745088535088402858035320393732489885896608343578790694049221436654674247740910971757086347742443808169946446267601551845926554880088245088845513541814436152370332607602947727007123982896142156732494999025597430903144632182430577488820073813843039968247775521793669661403636704142804053901254178573271963477819693792852845897292341449796305372029248188874034386670196459273206149486403832286627243496259138844812095000877967362946701719618581986629786770340433216356677256747342816899047290250292325298658057442328122865117942595713236125387195270680909405322341388942994051847799901372602058114029116548627454013025448430065448949329485020822806268036594960507582515165885579769794078005507447934039710748064219066287514258895467889502586045346271210149817389771328403330789295838090511366961596895340674355390985551555787083370850029813934219565451080635936449531827395560868687318450924913848584104365638109267952912727003539364314478226859791316772815251334291308740280707516549182586230884371309792661839980808711208569115010498623499044497837170319679919106264404266295759205901811400066403432736012896612232554737101184252010921295216372293066204404161371386054336203857320439925290540905181748265943995087514349647429606435858392998353010666305062259247575641018114152443019677680597609035739186806329248518556708492671615153726435296746386912856596766337095308374719086400857576422922854333039697646066879220157541120551865752199999784532214114557625678910569431052218599365362259719866239896181888455092740825048360828953979460185040273671359317335182135927349071077249061895233056116658250582851054390096404998673829547281387811817003237117851045563040617730368241971387566477163972641288858353053997733453408964942656499773521869162467276871872659253688846884821018286982480949272437734614049761134273120757940831855391576394985345574859881164813146086966947445001337471343217131185066717371236523239561636817553935890544254935989075539395788593070776621759832578315993202492399850413239187763406998753251036616803432778048350440390092101017260839727097729195419787186749557342425358109663804940262602567268976733907627192605355167801733777553481513654944929634052253445343203331233157404902865744250029321146705547080274713169831295980722867478617736296751503559476522924585595402995442817439990418468342481240253157976546804397507719754822080546431443066499630782162864288865967926153284311623781902624667736371027489869050242777782235739184253139267021243772705732665763498929729163439597623323783974431719573894398500627199368051200010371052107449827200028872088556989438657425556250188905313713401542275171295115289284869834515296710646180127520560365729013402595416986371631966076412090773386708126016492314048862767156869929309663419288829383362288602508195550332942168591224648352212884487686785470676301795375488828076898172757570738735315563916507003920785634265037037027649235191168470770665704162994060438621275884109706424683810367615041088224453040443217291900340252765786650419802869158011261816783471282420793501250861471845225505169055689375536594309989793687445817389254007268459288039831652090206984805812503420983075351600128209266292918184402599269639387512579850523155176010485750193143423989478959982423090129621519483915808214584389088003644275659610671241969830244642398334348242246498079616491695444031902033443689804858513253352379012340057916941910515872589571009468576458402151545504379752180010381378721232524058484457848308155749110895784132606375100871469806830962294817965901084654375983746164524291881974591348604184543628335957582657492569836540836044280624870729218443640849492910837862540322140363006964205564161700144384781981520354347198632651422600226866389947153363178837829077954043925602387039699254229027254060806996068736575898116597051231197004933143326766121486884676891256395612653982375256949752095162539679594960355525312829324873418847844840972520783674172400812248551629335519066071121097843488899996959182514170148726432504220677743150259590267262856936908289912596528715503142221264000491023502901257634546108083519289441263251007277113535603862982673643311264367207736762159644015694470698568217100799224207678829848783177694468132489062649924409631244306066753283261629510854919998621673569895945585221356452809976368263665789198798777168773581668532456954222620729774307106871956328543680029473183511550905496298809366521328684860361351972015789895285380164620551889294497477690610866296833184897740025203995753681791387812649228380815018957691199735471630785100882107071231951831315851105692199397634135253535492588854250633673874548769609351640795806642401130141937446642269586500460210135756960132506252465800428620467482043835242492556444203605387560080941810194984079863535302923450880821908961803458938712753072431041874446718010845255834787887143248754924183630036325500733777339883032470088018542617145381900649679547064726069911810314854403342057532576922929408030768054363841363310129701231381377192691528014438392049614803441165169575708700205388240983819520442350931740666044662721514238489320885201880303085957105605233494640629552619807594915081065016889210042497156921377563739465258026674414769174186231599835632319335207966503145144200489112394560884124225980223009868943655169604302172989784976581796088095023895233454991511886744888089496514331148212342293605058810182521191488518199719520854238386294302351430495060968690594891869737685233758932064083182944427877812527841019616359046580922396604189851980600608048519924533461156933426184879781891087799913861435822938065102376810878157323552682949400762822968744443278226193217283240378487398356095523614842926119441434568849427702863825747285579587566982328486204040868874985547544844825569991433691768653888167195604078861529564860335936574141551711366875607809700753815719808662756831065621795287197551240220664024061157572096243660542746973686865491166470153546459140552086831531784127389975748857326235851182608272662443367988411997890186269524687359762532177564320696497810721638546885124072330337372631248846101865781192635840983671464759698710760752933054521515684753862206770846584487899058568017313270455734596769217643302175448948568854149541401048650224301822814392514660725314438360307188324891013346458508354269534066692995177294945984031467096296129216639571223148067582502032506558900425430060749683838353663354134625251013619896786141666481219486479226993167929189102058257229066573054935369232371718565309291688259635917661871473839499584172452292619522310791813613164855989724287908940419368728449077671343505673827761303009225020756474633424567912439815686189636308150151358944273059667057369336212136763138175336831397095259189463120704256687443336299836890176075878915740399188043313314370183279370328575817910731867436419433762602164589484130312792918604518495718821531425284050913466018596614067647895967006337146502455033352982330813378067749206746747610401403503563623968810371273638156252080810034726583904186440915859755681923505798603903703832641318456060038655125451390081750049247552233644341372326034095884555589752412819541847475033449280521860828073848230887596510325776626064251536970105311505454901858549764900891072829676682066345373506261981985720838660982709046860576842818247251483498506920383010788959316264142837380304695614269323487254481958092850329839875525561579991310508333795052393238253849835280794327568957777650085663500272505776026746125204957536844636385281575069104510712660312159307899254482456896664756491684550837006558853348899788418049689000360287035481075070597509475502940062658740285561104171790969981237211634216850488311509615348304497194641266742838576543133724209350085486931447947175281105710373312841013469753391061229897634931604904031444012915408522850777194872207293369641064413365782070679593503515074427579017509298478992182783380630526911317955950831559293460429727823551492845106831884202882916435731881034678031372337116860719555276467068949082904377395724245031640546488024246187566244035847491844893940115606697426288915265046706109859666140216484661115855749603600610654975312287956393150939869174400388930878698748771441107748552667028421804853129707286818832970560408366609441084175119693778828249046077397997102775614004950638097108837096165905671814087569402911175294087475603872102412827190260250702643290619729035448515608773649766456423739716158411077262011833823602169970781745081915189598712923068996845689825881387636980033224300114943066252118155253266873477626493720806969895140460188513874157890122360338888778555544382212576688946321112417039373251034615993459064728827742123049170895916882047648209586931585315330811179727497563381631805140565609542930908894911336585109310946361262820948218460835369447332836934373722044984908005288107281528224942794371059635331545896798566745993503585787993155494419402285603858917052821627783622742046246555379547289828353264026635004551388872013685885863956508721720722349048780179009994516820745609220445101240503295746954127292491580452064552319817844301461845358588735745032663777020203547683219556877467641313336435658444456944776340443127977541649003123777405340527514560618452245557321956716235229479965883476822625570989790140452707135872481342984776519674863955924817959179446775630493880848473774652559478649619045845640109770501561382210476202085361744482666731400597040172668255818625548685498753077014944962283021544824639776033904561983009810515334904342061192930164484947455294413110993181446147775815932209135118181717261628854086061766329065610266421717446220263591787620104352204107388219916182600693679823871592834746288160409536266386562162886063234209177859984934027571967347608903473066375487852548979118442459628741607574216847222926550675166157764247899992918245258044870225776437608031183171814755846902180885452624421497750170539540061331172245306347675576916573586922972320999620504977401159083532120861355742866979177299472209512721391617727619170250134129378972133270107985457976876709732590497644731840115930862111624596185625703864437187985331527270416592029640437999943851762335729366878111383712109524791053238864186798325233468085731119394680404538483628210041530613102214366121357939561256818902451318273777634536912113341992033926559242704213675682408349903371043810569636309022104213816186958141908206265177890935158116440904138337468485750847269595375487680476764446453587562460403373729531479433960908517000409881092607575883866788835802019527063610124522741505479605220408647878984411352132222025924448770785014963830544552573916591704699329498893443265963958817672511109244008040697172258207747740471459520055070872593860865905160800842467938472477826341196820065582760152296822050844174863113805199492240421407673098383899145029565012418141502503950603331387610395400822172832677126786728552346313679009783121757676376873451399898593575003453299914993993902553836133397315443771936416009493413712094065860724663023609502019154137709273830811790051059864930692879565425466069871383952440159497592744671020274825520670747908054038599235658873379725927726504229281640746683864278923685047268452618408966617524683649743033560000137895573734352024831271053625066573786504357355866970155174000945842156510027971376691561182817226282839139915153362955635490799626887327125639599389490948810979062118619107518951604298811081873827889934266980808445365336045701327538522815832733384390915753571129392357509404384220185080599366536077926539581931508483256301680873180468500818937167527381971771081508089450902271539122236080113489486669016048142364957224428921806600148247179068657170781684666774101713421516121886050838609202569586928413349202191740594517179512959931728600433893509378314198543872482109500908351716393865412973348544425654227326334329400940544958442551152025148108168874472203598135044460265318450883750328743299298241946109467187743216905624406522739529012803345476761914633412041031822628672995188903697013791155426707324448927893447238399150112062079236785982354412123614657382372870816352245942404220628301383182354846297424251818445380158492456839061448284893909748066050304177451231716033051327663820431936958055310903963916701743687174911404780277171038158807907687358034290167973315674770355771710257521415896581793610444472158640816047754365304141472686461501604212101978453807580191673328944103856428343328205832172760830538675103449321814473949016666496901164673649851850866296018470122046213389309368163067277157387986270933757981667794775672903849844613794654444279609884631390237001529321593626939530597399018300473970849426567038765040365824002746838157460035238150656352828753027042599238522584905071444545771197858938777852643416579372445320847226310847414586574847389711653505118730874018951570288981474333114566368455652202446383391101267428921258190120939967773933656472012673843784014825483509880819940947716497912820011152724840161162040455722991177816497643913056853085690607636289358013827389985337847407684001030451838395717570076971096322774229254086048483309284095077469967845359186517734416928809724078332481385008762755921436826312710718726383390268646432125739781976859533409341254710392073814718430020586113142839893860972353674057254066755203578671093966222965553710937616446003233195821546950198749643058907579836061628432234039672175906982142582119826190128290400859300579551923451921972644107160795221569516561620623334318614341850391209510953606328695015219702951203991136987641198335783672234891149989075351451614982651741024526688570352906332657254898172269646303777077826514374354496174116386341839587221543283094278811915436677460855405197452829097199421980208226577430103796583970556484090399549767384744408809148937871057746620301148888684852641286794604923754901282960731561199159814700255491865031735578058767438503920512819751957342571620279392274663700769221208864407973201487003999880689197211657451991259044525573742386184402795873874134694209187767743025274531924041094026877728725067811994019257847868793378061991372224067492347345034697315510213058524692592726507122441509901914004731149532118483009350430930416861596526668220117458061856421425261842422754237627659779417760632344421267124485290557347987029346963619677713428584740133403010413574275548439253905008537343159490277661904263096324435279526965090345947189196694068862603094625558867841237800072801494662370633198382607836067032015247419642958715975173616940891239286708509831738758612733426767432810210897684396010991947473327562410098445498885307551618887746371466485082235574081848582964976448839493510389772166576189065176336244681731589832997939520413159067809675854934618700315102113875294024696634043374144262776987029012581379355120177097212384614899503809042867653618322538160228420140397249532804081719738690045659681935933256842875554492634953575478478001806129447330400214255103194296380110005931677553515047348701744788426086905624880992749024597308263016538181074255162787216959145161835651057031967342973637611689020021143975405849164839956395944663087142787165948154227296024589302508596489202239603657432128958719575292739426575702893286204738305103281004607342666054678537263302477698379323379766526440460498019975153246030279313935134465542980307519583449471558512805173946725258208160924772348166082185097962000436570097314816821006650272767415065568882841010307180103691706563910045727205780152489130613259630838136728316688530054424038141288577869719127507723585066567555321204613712364706555597159623650214083275175465346808150096665818019894624230555721817589210969692378602102011730878370351398498011943114681896905937972027071494474000788236309104316584754822245588005371901443012707639480489733792148985553544389525990688076814669549964650388518380724268329135294493309493953475306853050965700610116489414898818039036794329892373187125797039900740259156241370222380561278054810117645617336486175095012068922000074746224848485496593560910426241851421141092352885182400563386081702224004659328199124428715068756883746088716179897492904669834847762266053467125803743292462211721652797499144196000255930076136499401530101393828705164234918935044343932049154542454332928755428601868473236999374361716375095990161470887918027763908713260410292836370440750213375331664716398281820468900546336854586839729731041358012579315348109264382375966717212693388846543962383416163312360130418422885093943125014387826352276981704947325115130160439312021326553924953869060299307619622454060741949509240988743989278411709029539170103476296823391730987080737254932909466679125412810159636265800131467862361722231741288758947277568636411440794100275911947973796723818459986108550724272354718209699132308460822230089835799949830276460819487445633730135521184513988590910784926625542162444275907063296441861761967754854060744928208048386157302806373694701894359705022035163170104945857376759810209286270761227255224620739123030865411449265243432818790020210142328912258613594771822795245101746692944983349153554930433175973991729083117563489085728213016050677400278575593876688742956263991503953040452466222946254467829157077916248449385932702449086097771792223757333424156827149863316419777956076686973128466644301299798666516259990247578623178270049495813347635064104863560367890182619237373047147665991254448863370866262506302737770177748251467485549080912231712371092008577132657146044210394615952205366224114106122411111129685147136083146121811909879595865262791510040535740535769655362782386551166777570609342862370196121762908230418730996026940641585112327216228127915652055041473806987036033068111637095285787484413143695842370387311735015017619443099509741438327657333277225651336795320460505172207363854147810452842898589327341232644651135155175830603853373021700580524612223620087208220126688929964488860745810024051082238214707937972510117365126800113753727218384601192712079691135169303343544373044425508978635376970511274439658867339076625513379932056148276171454077046808197437690566003256843450898974101085028737352946758634567666221245901990442441992443378510750274608258973523823192182850162373670958910588791254722451253481726824619310312515624516009479733429048208555665311475972447676971961179347949005676799103218721456838154564976187759142773353019229039644190656381041081491317633785208487541763412231868827472219312238520507400508930905079721487380886592847836744228679468247749927577877326358693213750747051275816001221864706879137391301625823098926965294972708233856722625039084148118960259248253894867626500234356883904215044359263085743939648461838605686015854808198931906914504457397174144499065393188230447538661204890387851683722767458832123573677827804281989676010373146639456078260059890087150608013954366343570708068068627574010892585477365116884478049332845782204156158990951167541276271616666502071243720903056144236477315392011526902081161423231660063612287143550709239748073203838602408713375096198008204443202100121144427350810677638786330144299636625751757768923304381667156951753223834329100886282756517172977216225922901020695302285448301891629255802995881497182453774460469316343757272263214678543164495731547503451618295366600864914246104104968318620257299013828470629981681817285829526989777950786036106013986965155788947249497624575064148959764150760804414052430424796270965862175778447797378180607084766755100929363102470836612041513591565604909997882672241654554670651244658957937811792917614648760831460220770779681695744626222620204569093662198420799324008569804221782893896709170376113657390930244321269952142156668517670198760465671811895452210028906035760823243895433958407747498259800469637653710920263758687861197893063713358885465622822884504690931229436163910675440409922939126560176376338060468213046295221787871615223593677881932935098388153501346403647414236278782218136449013991728061243863961892246354639437593589395494822195125184970354957110415979358775578939468366027933524111962826275249562379336233610022897075626453574723964778492838529625949966192688710024675324956282771861038205160427504563177817990834897567734402499076864080364881241155248596941655357937069437457452878206676115408802981594257024332526844327120832702508895587240750825267568092191892285350666275299438951223073152098114437735613950877150744836557063752329647726089540150296303263682580048088130458310504436468826823192603572461802732879033364612891846021950016010236640796824429725131326151059933603902694456046978657421315514209424553617693601810503017571901868253205708008789459774584512714633175127054015616643428496345260080287854242848832637842475133616525035889432810836434856692476027615470006609619473708378957391635491378659282109684980347837632503227697132616447614107758812184072233025809343547942482217525336986418642501775571196352693622598568041050832676900418237848746958766547707347509229911077846242721327232471775379509372583863720681203200888200776920263339615860059030604900959953893354676620110638757012865334701629362747071942717296300827400289088780263068388025772878568799744197374313605314479277370390971583966885303478495563390694918406828471086591043414330776943379042678217786173318695051427657885579654136622985595044771159541672933589255157417211189392236223061235011591099227987024660252871438258479953263139165709793933196462844098896839728886615280408937633892400027959824095623006027836507326967838527985737422322916525524697321596285989525781272619316217155561759324375297169648058953684246295663693974795125244633961065545429347938104180693067002395735824825067671828349972616790586884536073312648363279666454048961448652349929332583036381204570075877276885953138952937488878161147141674180628387256204180499832418507914011772846221215218518631363810841669098615354327231671279591939475163837492917963509394154653022855279518260764588832220354871097937076538177346619674441065998780240753769271925725302631701370087332985920311894896495454525136130123374531218016955635151944584391653804325003838400174882125951711562982877415102724373785441199381108069647808157536509829008366828217586906840301639090316401812938148967455571540965981337466615082171069661889199127225126735546088483150051459293157524055824719389635878532899880504238819095631338896863903893330524655778084296834876451814149459372016568992894908314777150579589318355309271480197432911839934703772372286174717764776532078692726256954350490453431844133279381246231578468246691651958925688085317179537219100774396687570304208556884801719891067671890703493493371905084824440395888837048818378965394670895665178711350938424619321369835647532852932729764286815459756344304719663846860360674010625013665638132939342641892036184367471947574566057849929806896762434953928518346344285122872771230172051319932931457374720730949464521487142382940308249632195241147468236889839600118510547669472495403995214537997883108529138031625037334189017684457972450682812030756098663515407689207304457127854621463024704802882404319745501155770759589448953656054581039501504497716906179149094103673730537658148352310834494720955702812444366325355578519697654857426320167732427560355961064731634935002509461434474087135031123768684967704883485850901823034708788467700482762250694040167383039422645003989882624892762346779126250486855580581562955493739070572475065868487597149978268462646396258672291453670820798782717526447310813563170253818593830412623565693069446336549306711356412992783673875109538327698711740007257738942936032065802015000391632583015631792003945956746386741952194125202433503038830676408616923827420066514599004654501449175399731832019922433963167911759699600606964448217581545307543254748189265953484882604282958632260506815401971528200477860234814309255038851909208176969845862742476400844600322089574846693432432352224863789096933700271401851989454625575682771816466618308900076164764803455124787004026434118850944235008567982623875989188809462756556234347345361440307653287685627749697220075594709938746648130909838096510520939500058332252698090602802798282297987295267222339665952938514674092361223909920723697059334566405543790013692261057620471251166147613850588571840005983701261914246141802832160266319896696639959841949023619756864264023944871893050288597347702121857008353641169565825866964944892188561053803758020306052946523543564911287243280025906633203804441367047129811523782798004587733582080928744036534378664394539527839080322162126522910573333212894364539967072315528779070247666433395542028965026593117726958287140881981065163946390948385935425282884926270783494972131348260895545977786706101286998875966205369683878367850643562847863276030657518962494264049119683806522952263466278394864095691224913084194049978245399693102105327329378027247507045226479045584155244771291214489133550927653146025864799065258589922705185538373736855891953797677472806869887833685702311362195072928263080311478064437386641597843979367749749162519025590878288742456799031817674572949523418468440782338822458300692850010851206773942240840020314483462014076149757262761083493500723840151144371496540282939223277532048284419109672071624422341464327677639761649315266880315682824453032385279024264068201872284889675458937555804579041941707523486202398443714790209314594200066319629620236631260954707827605119829481950607936502864689140762338228784037696907846495817160356467275711866524826665121304344749324500598043313146972431715967142207182767481020170470728550649268803586291396692934686066817457196427495875663696988368627000893246306643837929593932302909666175270452310156930659316352007898038269283478590696004845995351426557640803106140366018524564670453079597167274865500952187256990247715359088380975346075020364234702641438562938326322198082838396543119694700775463523203656966126632151157468772420391748090100540867399407670077482496519042906421154789207801898128016053013839151257018210250027759001991901546256631986129933187036921248589974631122836801182137822044527704924323711741597325975613312991063441435126845847101355277446476116055835992365106570774162005038554837668173701172629712883484867790930474573323464297668071069107840038574890290051121457068449088790569214074974367292110619994329088008414551984259890832757305460394840615347230324347671832026304460764946232772483796576991003602838149961493830465260308195100232573855810101008423832101163514969428307100334559249869044242020392499347856286939675040992941430554417716215041027066856247916649273579875830937220444715567912218243985194151771292971361034946929833262656966198815223291771563375729708208404457219560738453889656713941534365864128499645421635646711467066040056792367734118406322740976226973641462493104412478569569734386615074502636129461210616735806899735811555932232150843905624172121345798445357096915380815002503639196675816492787822714714662644508940202867665220524625319048179966508089585354412240683350923758907065637781346083061896774951303791114991812220839316222100863958497952741098870355819339113064123790272678451762645424232783616510477970155205360100619499468312453539012882715691639489755154062502483443850166338404443912606943534989661501606456337381151158804626110932456976995017190726622131442565156149975258923367227938056984412544109642458239352975614190080214580116786010651331913392544535311790092678060653844573181997039203347804918674467992632733478581417968668388056511586187297179131734985560710345331739867905774655689307741486523546334485077045935613927022027043276045915550934860646240360746022525101383859033324407628695312050159125549739908118671739510192863150767845065247304754817867540570110205402221631544289039767064727399688218711008105518913952741719625112963576453339114173978940291263825364326203457729128807335854844848463207163862646676284624304193837720716024772191734068437167557676305915925222904659273882051816986502374818305916647156394859401461997819011446596700746041418393629623277079158915705673743997842220229073207443838028792680002711458496247471916988749603851503645754720833633602531472356813062336276235751073402788628290977123908846746436145671830508285996048817924994423123379983775742868569863042662570756501794363236677580651251529135081861800218975485315570724454580420630173367761809229516036345926336748684403244304420285300063414964660197882295364594834284541518354505325617981107379016441722841915009653592742801527620777411685651114578841140080758437206630672236809243926302304912727465783225346225489532614938326215332010351509089356494659580112019905819027999009215050965056917516068814402421268682992808887576670996020571728142687052800816705783431681422393456476924014567107802507146379989734870931111413784606931528584426102978078518421615593454650342805335634432713829902942532671613383033385518077087084733093729186264749153274210787953294182133221770770157557520754064727505167315829349694223104154590252650747511480758389778719643299259646140209444148972091110786484593559674796706944858705238954557536263573672787026899000190559019183821255612313236631262282998599207769039712392249629482927919342333572417980356321892985646620111128879054946408857035223189085864660385557961815302092816661501254484055256750140494784426291367573703460291237257537290038529140189265216677738737012497374068656644287968813216750776112351076970229231116724639888770992522418593596954444749960217259472166754762291190430636507027153072639056788997141111624299924952994667141071784716759676224707422543876226087626070903533325255281879912963097394863733512138989751563768693328226095212379926947215770943126796541857631356216063308439404448404651272700460125279709943673466898786538435695137702492499251408038594693780825834689774656658554406577981995435432276859487708345347077936698558350341342307802289950135993387184059373707129887360281683069203185132439056123202031264935485493774819052980945283965832985231431906026810855324190563679162361462214370614465919255878940575040290095212273688206800188869930655333487766733608026011035652660007498390661394176888844996402212612923730506646073471350607812386513628782655780054719557929078712571352949342899362993853870111695523299358290590600613489121732351909369001138147614392272573927841713161079208937802734456765706251845076853134166041325803949786621309898885353557710862006820013272625493631589695354745661005479106560456367847192732041080159187663105019781380638552303042683999336646986384712553301655557760452359551731910255182984549438902991619235207370529440513436501367512999290086804891983295107755390159126099691658562263073856073046918209347374209892943043735421495552366317182238992752293969518490323642364182784078437358114449256659172705180160547920881929169080666921113276801814708852417120369341460949601316463748918199027533138061299286408493854258291603501906877439063334395673682200286470991782519524368025153769510319239493253000436949907680385465624127454496345357064560408453023560877846684489666571141799393884101981913530286116329735047587203419329239032376954171398706241182410257622413799933766584920130221146319389943039146629049823112828036177733872225191510339891391517974974739412685528442717066435828078131068750663428934982177370834102665951478138803944072956900925177705296738229453585931280242083638818408785178293791517458000689566213331768130362316014073977319794576129188975123547228573831498222395667777646152684101197303834927631725564379824143695530940488317133546932324636710486989324685942088087943761370829269866513850784427034668966003553724717383623311391881003265073601136500755040426982627767153782526200518489645738761832524179412831471544591220149225953622927364859461291034372011104219406941263703643141470928566222478882807638496502359621511288231949152865122980151416756497362157905498962165912953626969654035189957553704348067915901311449156669981226622014314159075099794546295484406546039072410657218026000290967482185000578969818176484709774386517490071451343768515187767497503357946926757370806093217697485834033468150679823251671098558095611279005323433021696848134411147281843563346704252328492378106178726761422078199747175994698827193113339479536468821511168337864372036352489318349041564129603845262948120053996226032613986691140038668075073261978407008091468817500078109088438873576711403431917322670454801492225127121795222357883371543158183419366367124089071050574300326839816661190365667862444943788964770585085058820917347841880197794800928395913096371275126818430373734577702399445190281828219444418247249725132514511801497172699678928988251146566724690467118496281832223774916906667873905407639998378758955447403688498858579403780138670007482886811012130302513681166041634281001294169997850771993989218442769755484205825605626614814224790915626991059416005477219580238428357271194608932786945654396247303720986225791943845765154791847555402989061074544695784700985544979625365035450284240929512650340949267954878330817437550914415829143351142950018595548453994483995451296131151402909501610972233285343932537854339674162008284106617199932982128220079242365977510309525287932550774630077860585430827605026732136684595231946191655607630635875392940531212836057994346510729443215672267871225038966608416173994334112294178985525540166876614516252790541557214398611325296178802594765439424649024603090795052047996982298161594680665324903371445820239049479952368819457239120991140698811372226940836750483474352532961643298190107128874740286621357702085693755154340640495326931231777868258642155353563506493410557833954295712455304378404248184593103908546800651882130204515616995958292657093219432339193843316890198762653511752806755542828018458305084074034928905272798763971729563449964259674128455379353293102522982135907858362224521906988204409282084937187286263908495572159833982226707145801629388266232243673364922541554527302704380256821496116929438462413459481444288536219153108616319518615352370881060184551902080475397284344572949086345605475406674652306641087028430743092952712485804065972911063640931788229989986862245701924686907209359816802616173665885097355719224133802864642453417241546975514953546691356806284978289154729203447297451848685296573687077453555574982661398217376170973462520729278758242134969843418326042712958437452644971662493379993808541216479844992482165814212926104297950573560863890494506042720996013241994657658529665172239922798534878512009606853724250243669901289077401762828643636131584011199876143831094074677997425621075558546247329002823069915035991306793194611147945012776969054392827165444658476677645352825983262000961033993745338091958925716784190643650415426871989656162635499881689408585107788933558079504766280010266137655295258341087505947263579945005793606893701959890365793386694971728383988707164296026003409182241703324388599778378592706282998808483095664130958173370037854518850975405063762548843926315142256384017213130259928894027977640110333810566815889337056528831543731959963578851402312139620991818305772790589191225486801329848467797440717270849820712184076844020927706579458110444738702154348305909400591863128714304400101526458993715683535807653032561705802387302968780914686622856479295061195674710659569757098546387808323734003470390953308434948100130947513398223935339534917739217168505437582532623718071660693864435233808907007499951189464537889222400098309894528026058435957931647455765904582263555086907706021805203092667373296335638260985719320206335893281607401413981324854264993816885407970641897597853101829025446431611582786799251934243707170838434549688231108551274649298849272170576284620025580725662805271074047360895560808895033585810755829497164456628150907707238238682452048758007783160607102485208965987246045036697629618923152071348315195492879623735397799249635107731437266786748204192435540514718824343985326088265674875543118818823061717579289817262787780254278471255652025980440624920802267570157832129500211418406862519835171110116318980679432826717392899441581823038596793282422263898698826687825263411100192565783031116853470032439317404265039268545164552282209184378211164280836047069016600345606781496002990081975676853754541828765672495778259371928752222183288772536969991631576928924083451254012903723683632240473070350980086993527274417565261077504838788124600137207457746190943258053114154096009105650040443084309375319096592173105739570585872823432061509549373948130070783855922610752046621085937002651003535547891884598063673071369902164911924781105346052545275396685850033666837715691622763334197597789416788145679838386995583245925959579316094026797594133911087379406327701949329293161475493319831891967996689430591298464867810240879222515135397615499950003574001662707917383561578545914724605300640915446675560471157186527785404390471519987579859868643223761402125320275577988203613550150920516881692683537505007390001568399251561599587675276108460648373863868332182398169791105149868360420646081626270829162542583124060787847325235179939346209227625457047402573554069402792959607904631077384182492179860444153555879939669166767428815811639998926693936951783566567817888117853296986265766134117580728050511820376613313407781946858797002355204912685981764709955714462122353309891522327519767414427513525618511675459897507818107604220875336294165103787512723212206113588771775078157328959785067282866630669202456066428600694459952443181597935861433285530368626718998927543311685343403278255071764883781449901046161143629326328606823868919005475420276325200152993496650963324380241664279019832697213751937255594399871049059002702449394793095287429924213773682326570928977717308070077444746821429788960142687426036117159569437003562140616533809633118956345960418124575824703733259705585977718764909871641574627142214304257639842295528215286934356599128209071778835223584251256555420840265585429128877166646552975095314855406860656456534218611789128901519171071279287420698271571649711933081611950629390889678753297848973084575851056010135333563696938095070126312430253376354460404072440787151025145266921220188059365209520913640337795946889079104071565580209875162984111703641653382528240872074317532561820560641550208743946536419674603722514375289872858442776840347038356852245797440564621608056948486379817816417950354662000013223030505193181725182272014089656588071800056875438309817053638564507336675982186096691833445647244832817259326562727452405837931341526303025326511902518567925016707525469539311900956850682351416278019408300033987611113643445254114738734102119179768535818224240408417186806522676991824820647403609609709343260363109382810982031848268250145126599390157246260559484149486578567273163446039435470144869890491325573425460463334964490482292649175455202285189133380011673849011857048011438287171012008164075240935651585291967088907930491273530388865902911349426166670574481137152189035002463736468540095337004308746252338371226159700993392637477047665881922619524470454479114011303463718279938271744905408129560282217515108619406878592555547133626736483328549233932133850948755829347244024351553805861692206486529963355612414484200404340143516092812884260150721547191888429205822370915848981438100225258734685108488877688337202076332099143717710684462060116474868604083734008708300306997843208492141052755451221872686000219363888329219274097885539458255951432357663958067606195032991280687152605980298720498612838791085720939508309023469795656292144608722532437061055207327707577045370587254259624553546365996742943975167620658489807070958824594735372057274798349330150020794223826638385221054653717385107844778253916717898026307572433562259860743224534733472463688392611556194829591555412357147257355297399498169369803565183738515362504251796877669108541694009208982949522456562396050437592323620876980929096979003828485769025935163187641767751192141350521589498110794168157136421570157052234671235869649582178979282184452634054578051008514514213495904233834532656368875893159417074851280522156996486861533097888410752883656399619759317676562472685494913702203646063279169778191009857527258109145720928553128042856137556037505554944849989800224391227213643916159128684015320341487469001729102865697115798644528423198773399136418671587480276626576276142291616789252053074144416702242799430803029278904276888519448848990537541216177248536449789039195586801414312639087891121121418385620004363773217053638087752035592036044004991531593825542238583714709024739799206244748188805441660475413163171952877441552580943584532864611034686811198554079708063452674267403208877357339362935563882573040571298319278053491941076984515148318517147637934459606324529166404009381435609470627132769094946538640858171600344785730502805500039373579609491854153334965385392243967721962548295620717610538644937150113586063346633273700500441297290572112837491257752423107235994158423949351951621355743515739001992800064021612899714383015717372822942124827111339471701604467848298930487431469150097660539925290741880564709633925507091253187235204868712090110178536562797348188565105247391412643763130758671887310379485994501765936165586827649455493535895516688971934298135849848184082301902855496516048084937433006887882576704610827800500232493590055328428485786861083045966025118428678715396584083054320664121037851564166998653649533881956875993072978805095291588557058191475962244279829993597696773828077021873095895072849035969279690248199320239521511058136996316060475310998938335498749664345827997361915111733037803985237538266617695337550703785702423520476373834091780898631403467441922890005624030443377388752233643522074505767172993250308617896199741850345561445744561628177339137691000779799758021791808191729477706558298832513912632864014323813354860195019143208426036504209900495914901828494247349685580232457179777011516324760464144785760386056549620338900915841067186674236569737481819781534889494372382444360889788802351573806200529307760981715519787558790945339581653364595951496420458478508905963749507760688084527567592841304492189802357523096617528123209694730320017957913457728967819059575762601694928440461139905339766291325337424145197152370982022053910201437419596169215029522005545494791995155477764405703689428884438284696670275049690476194222380897538746125937647001812551668550898968762034754364166547809590247340038783608951038147707882159505836802377104276620496389143959624620912429854662209003260618549476756016904121351650038802914658299071578912966659997979941627732708237423456182590579117889718490729698455055994984639141063393467801926800314401819421305399976630856582747665422783065586351158107173889877218733006229041236897367187684127355777163486794052699387643742423114911515858058784046434767988328017787305375119640716400577300576539838698794061718517189177325618372120673699973878409618372116585063303047001973393767613584894510993062601386918449688784472991463736918952087339199112227581713401929215356852877262578455148015831159096933304513932406920673797108688013944496176906203143939989490238561491978556463610042156049352632944939542044752562658242959020177726497950067973488795289911805364191643085542854055391864275211943266405966457221294704519040472585547815208384628379321533142799995275773083186933239860300609849189817972177195155926764721116391019653497423980911921454032002009005114494311593304603983980081228820892165462849426015118393067829287843024772549140969127813324513477300102561488024834653340166046482307954967652605948150187847806071253427712836324681398762694941227164096038887177512903155913121614045139880105889884763976093794826161689796123677655550870518588069134481529432999935988859986521606380598600860430318228783849912932066539989291213338201326316133214367119580897526895696236465685932142872724719417650791769338248126309559703347056074703995716038048841744683828293468906861800573930683553191134716723812384049026658812143273868109727545638480533112905466576905229781811175550114210133049437489689086437723667886634978782770184853423932297019374713162658102613702918055660684987179372714291354939651307838938953997248733470054564284333068013748346309077037028786054888403343915182172758466444674018082040018008926724956980847285600896175433765716031180619626737093171022147452981285527174132278964922988340080407783431848669553268509600457794947893010341770757742972335036401897616962689872441147984125644287615458295380142068191000360367227014023444620277699754438977572481726797585997805631602311336339375527392718334023375904306704773195471336438472680520593895583605703004548744668600588932946041907178865303089044405630332678742045876017405902750506531236474315996459614196336609398718011919200736528235005797100768868464368488633171104741400482851901362613706066135813389675418248166539524870714256556128381342466730966767922383811113454967705541289689436383067531727388355193870141205798660516804487473270786200238395276732537737570238414086818239899752687336685447450783864920825304171969634244605509356322846922947557240236906480824190825303785728031634169213920616788727346410966612575826035041061726236808157398424273493811809732162896458081740656950442209033589892424732154771824976075995268981492391558754370049254834666755489211209140130785223931866346087274507729643526409223317977110367215480153934560946249109532069107850169746294906718316405343230280707190793340823292983288422082543025679587735855155418658242063979773586412050487975799350950819743751170056997298099313737790695836400543226195089667412256578604459711068309471355959318598820983306662011461035120960197128656129591018099357385078072981241454639795518182871005144961813386639551494648126081426356798883261153916734416022755572987768906546863229321501379542832162371222697955207834057832318961572840055071101082294875110287959569240516842035169600087554250351341183198668169446070060691562530532887828506484828004143991318967569819260605347972254412506784506179585106709210103792105338452570972509888985781790650538996046881315715958536831089262530855506837847571487402224319869988412462479215337730819391543161059708291298557009566609461083144500038525230719925328073960618941651531672529277079411405141323591376745085761993345281016992709794808564665940476972888045965913494781254755876795680085662408218076444951059630335401158032410506016192714865269209157033916455737486487935852936285045301937690171253227880974505566664811032551024155159913427634129839995707964602160049273379695360125569178541776250966218497548992128767934261115952811511782097639425596458181746333431027634301861492739093160625400877915720735906091915637266197851092006970428596148014950004462410480170949700023659554250458639997970367983422239047010792168962510211972866463213693813002785597125491480650341930941102257425217888808630242945842055057089517098817227354801823869919066546516708163643730671814685936203941976628837752211035469447525790017195361559277729143617528703721624444872015352498037487800539426114492133581858207328980859907094767626193193528770537972237804890815883904678433187206630304874930607031261454660475080360344574816773909610570790689615724392792100562973983821333358334767275399915526939541282858138408978856118073554847754283559456231776392719716730521350809581164547946215490229342410443434140618697364106446248963696735093942458522592219956416677158333579947627799078047048349850123454765148890715540016159712639631858881599191448788859804767639556121913297646944890062984135979799987424870092438462387947316287823639759458435353574601853824742987206495839126617611901869230304627690065067854164820600062218584861008278542827051620076813028941607243918038952558379268204888668782316727581724277029769263611495200579500839956058362324147805693894621337046471561370592278680059349157089131648951174342227840276756306913908457922256159298383239559242754310100587513719323617296002742212823451356081993678418251984539799623632752204022274254581793062708029932230193362843838995483905957511577512029538943758765039447506998146558383121040817878223984342413421904499839049874678948364432105485539255682839352803398201227564683573952039942049277226501041912499331724088936182425540849703873181670834149689040107167653698466081775139680581801294434138596908392576107458251758801910675160583646449656307448337860720390371521725971203913802287365957573339810973356867445519353278126107893925876431852926162207108445890601300122320074954981890939712341165589866632176892371119087377414150811401850889513150208628146036841094105200651909341700806325459022013079507223336446118239642763617320957269727554457996933588238847628316364476299160254160028529890237912001044300690994400031591291788118806449974401599870090561158877704180985902838299121200639083119996680019147577923603785876413973803007825457248228347013129111921832999531448444247376933308969488770412577422319396102671652731067684611670813927993486725021392737765648151719052478720232817145988221906116827975506239908122572011995204451243420694433491004221322418113440941619788953047711731236891720595156310321629028082925715076206864026466289788845489199079875270592199388488099774698125743755615887259920648852567282261735157186884319297534187384230030079338345053360201815703742395409588807338458015365529854604652703619874162156121527874799363077331705127326393735140017240821265062349438584748132855331335334463283753209050956588195864681812417283372034387825973986424984077579104098739728292196475353032264155253057872595204085790512114527602544621162227084987555390377028868825286489232236255407234898451918351229003878131673563430935353402287500724074163541780493084003835436687092624520337718124072836432863942654261169614989357565240548494788622163031258249058121945095915012482161392792342204760191556290463371493740575746651307744336876414557874541033225768818247230160862803657215564309237902453516307545293165261541246986960974079800533478169726227086211642212012168012844187326056062118921899110244459025312201272308132090218356778877740871853531771768578887197892459580952767711714540398670602553559978139475996227851327850884304327778671434312038916111052634740629238989584726100170458359814390968321604244534896883359798010776557612718320914104034026717382703494500449873554126271810868574455469874849923804957670861961251935017587563794414928648399107921225041404117872610068787390524534928023351326566910741621624239419795571644091692152020398056938750480995808508428156515363665020982862862334639077311892009570198476361790918018882533854792641243430112802231505849972732869151052290794486735515393105481518530941983964920786863317159292576995275305998154623259927503648471392931088718150953166845301306354797770309267391401385080204685594292615704582698130115204686823888818392240710946629685519974001775972685240590468909056277193621380607878158831420279316917418688205233667103086285609936664180902097339041078244234685791720344386097247872845785832235334604130182745961645723626110742918233850766740403704813789768113092400063683922421248595556838124990172101098300996431363622655813213631292504390485419912329994737968393270002646709059046388383039043789296888947403272696840910820849460901040545972549119940289444391573589165443742865028331320075076000115424199909251450747431414531035760496212451835052550497611694505291912970390250305649311542362733852238684884513056442562502216206195295944442468671484906632886336293159772745513003896941936632906220388068099811187213516488635465317943635723453539896647174285446212533721031550296713922255635856968025097384308703884715238366912445416815548229652384728721693317515010101664507489825456850598347454650705766219118029918444786337503791721184930498595079136066935746314803393307461613276844166159325030538837502294496460812618126156607614260239761889901614859902911929509983380645472921927854772896497508423432646835765112260873367269412863791724074513803695119681891916852810714065045947220233198324768426711629384226467146323507500401073812872260111985151510935147163204940065567778959487696326383130604438144106610891073713441621734245235803954139426619831349287430963812631015096333205274649135540214748391083582744654331162496291326790883012597904445277103050218049134371328094138514764250992229945259925685179008438477874371748067609229747930169518153852682896830010336292391055931758596394303921499249933511652445180315825760009849855364604860957169642879676962786065171503816035376155747469370385817419669545401943327677058066003427358979483872663664192278957785676522586068109961917431244560465635323955827559521981928692226145510802864373657454067787277879963328712633580475629869753958059771271906671588348886880960561297719116395368328405029828129081647260082171228880298629181483502273708003126769161246265298285422100629270184348829180259046398633636000099078484686285387853647587687225451474994058197827524130632508463888744082218089488390703155430604813912110926604177059578385994320001235852008293523336741460404970801801986697254393284091489803134299894276614625510958962273250470300951973365427314675955556013822024176553679532642586006777209862284818663225236819423483358303146579526716878947546873398410636487660621752950230989970400703709621994116750804004410882671361484537669542204386934049396113682231345570618535367432255152233225512942557459320057634442202848874930366274776640813224651031364859074352730634771751697472682065878372757703146122770768400259183198731932025854010232702412083949134545043599005790212714402801017669050444613350399338943266425576824357542375890688546168307373288244636824609485789166161923047361305581068945014970386694012381389076596737749710203502497139857864047651421357634852015590399605167852093640356898503239509982472606649440507921977126760633227830733091318581778585222505159356997745374063534497599993410338172781191461098437798605487231395194814276213801161045519474181885468174977863383415609429527562135244010591889318556922604617841090668055074296977617587863111878160938565118872081105631343851233032327995874291843940552340777192655759565430775942302525635018457786599050408444633395816489558437300882023927071737232409178445668183135173172080785109144586063861225294661133287123921182115064405841427622203327678184126328198270870987148347629758050285777378891931496972237618195194891401409485545848288045755139697474700526991021029215856076773569589022925390451559096753596479904907047799194626731917520194043476392429556088833524072547256203487370125581372705474295273219145498355143585156851993942022694588002556624300741214035165391273089283126008618203207855993709516704420570571302008913098325860135558106121357671174226866269118012827297614771700575367412512941130966654743371656997500513012183925048883576039321269155033865386174787057066418570624249892836167679497602507042804276836546925614357113674849694767702594789634775560244812625788581630697387942701424201665105388608565525759741265862217897185040206454043038015315425848321674205938447196314445606022112052489249509957777427074243284979011983986662450468228700254261551871861934639602251675728625251822934408548800008794191082314715014967059722516825641383762943541438501045610155300032125411146913782466252720791368033537206395152518303688401662156177686265938143863407205269735279681689467858060896395032472552671294658779130512505143937566284659508096341481321333874580916250666607965214332974853090868915180553389377925236942319185182590513257490081185878287665157129402148184454641463123994089878514629684921146629205337025029660893395526748853041914164503139428951824456761774713382360796395044027835233010408310587360604088482970544344640115017373143968624123060222592910962618507563858194465605868207476726396995659291547597825187401282395924439516381624580405767680916675618666382895660372709458481030002517438446915306740017130198148692702953519173649623382074523401246329825179086400866968245855590316689299464267065217467890782399852957246194027944530523437814080255205669200987442004180381715505911090541981774044626275346964014068130051074058283317613635934213026715338502147013832561926697984835152410500045507997256657539817932050207932569021412881287497608481325819352373456817834258082782684203272188308657941357500063557768275771489887815318518157840510536908014427255179840215904914401989342467514516121821802493656824169966546469748034887643779692193173802661490771714634020178490199631254292440949438898649437025791585640239652353431493242545038545084716780706292738073506230990832077622405544021429753873314166792627684774182370421782978623187226973939825421080165678733528556692123733530763307279012789900520966358769554261668905926983218130361196310872468058564644527285280090797397108534277864694212725572849070682568877889100766497018714741072704323740392629866718690143606751374762256338732635208149981568804734136702851982240739949544680792073505660965823506146335731243024717847691078058781159026143085112763074517978460876077022383173795478298028033496526712323343218107616999173013269725591540544161666445486983610868623311357662108596699327402849326424273976900129637674874330807679063708843842779157161088755950239932295729200388264358866038324383588199987056210460783146465049899719643332712297495620889422972696923414200206184859244742713861138394922924333553601361951260658751971279037885352120640577709305818818440219095266647807572994357308968142465835474690541628566335665260912499865572174609506130782252881700453364012884654047499000931766403474688331801159993101488061181546958731652509837283104163842331439223091970982746558350605954453744702596468032791690925410573160834270855081405869156518940861522508693886755821357395351725992655004305781973255439506960239715678796132833037769621711373753879967670865504638959794726557473741912784354573112826920393164699672288942584194886071055697262090955928203994183708042979560276375407713803018648499555001482520557965673725977239812776776448706802122448188065277614957750340592206745127452687433258830353178545103954264393233561142381799416451310353830633668229840937558484778145297177628246537453481458496792486939964598473300752678543762797721590938369285996682512686525441012035799913704214085307841991757150274163003942218897364853295353151173181937555007278920965755949393060049464035021660349703436049869450846595859083405614212980673465206660439428895402741483852942139380993291140348688965825665413338730906888295150751333906716488097646392697405767555514921906627084542390370916259423063140366968704398778584304911903930929860307528125132462875461571181113266534383976050519783809462496588309259189757165731251865682000648747875702322979688148749029502469833292896299777963486077225337617549973137284663213398247252875055978490582933442786518323452795274313968315003171765569502082965955693666787471854948563753881661032010120539576190884245390384192484466190199188089369531966211897139467897997084162554050171231323127248199387925471088682615864433202767577359639615792175656380595838787049086219805019121823179047486082348826101529873560287541061439771228471648785418223241986375279853946962127446213190971478128614671193409849078626675048560038606973443149850901543909915555675111764261628016902217451912749916358534009220750098185650808068623029739285206760967998087923528092591460811740415019494409374687281104411612022286168727240165969553781182101940679266665231603922099570902831206186131426438838449267555884220168991982376121133701940461995597936481810066447770378978068284467087939354174501110473292073007582106418347714890816417355598242119635470503308958920289573153279461369849360533221024248750179078882976349052483336441672272785805147996437353496901669710800550521218585573980332135842990657021807495911503157461142304087195436512761508479346331856357631031714633218476089704437060280101023341889595800901456396852637537840874516733481490730227789694809920227559907045238290687598645537520697062648692663484100632007189676414070009188902300766992773353506642259328297583885611790928229744925062551820467329331968120627988748164702535162385244368903229174240345298684452578282419554184818797059584235202925274392911575235293325614024123605224112637928545600190809210426172721675646903544306114780438917025874809805037584810013109605940746873387418376979098742834922990728144498752064773068975628083416572882337790562020655179521390411149441035636363983123527737127307788983506126474198011179924922597662364720962097246159359024832738029320118356525078813050005279596520496364451101067204871580710142721713493146502918611861356153634587683620790083845192871784416574450133468812040162915159728311069612113380722696320584421624814110762129788838966374559115847773346263377709681973171433935786318435474687501394622929233394524365048448866449465944003552252161935558704526398260149970975420693569339127720295099793408043499752477061821276093262608129506146707286625395633650312759686342899681806298043800359219366820273308854089646710423224674215572974085620733317560971700549068157109975201342041787134013508973585040117661595968693696637555118205173796920304754724788598443691157079266176552228753776684588210139552931516707331936607450899605633847352032082695168536778858512282498539872497687058271579412970755450714453711609760826639450408378630137864922641858977480852857725799737350000474977398133722569652473524056810861355222557217625361990694822780209237001032668866100445540192883507811648880639152198881321820580137766716317259342683605510676078210816131305056174243696649976052686020394137379752805730762856278361767180440549084401772179515319296513758662390718898145864641477460936718744146517277030085310028140460961736024717512935342243384997186791053568294892215390558653527499567448737253543536893494073320090907387031055399880257040554329485788125725583879507155311608421008560584073795168898423463395066876907752217588802648427037254413022625760460370250954369577415559064288901120881059896433340811954551078933620778472931835238297019345954971259909552155091460106228473406340829890120548161827717677025549632750918387253381139991864885420075941350334565768666781046172022939002429153104637166073075573232712882047334686569033072869562146250174460546045464387612770320905414384560753208031023940024385740569145964169441507390819114178848638571508865995424981204304110700477555261488661680475218324576115102169753660089481283195832217835836774574654644234443762617815059694987098035152496010228683267460199759492139905201950529813181178440220414569901793969546943382138954571373861683830165875704822980398889086845538957583573798635596021828525646585158440956577810942802050743005917467824964287018835517617872583265152201713706992995430178164902292096970572178751439707339057488692814276535035618550273018766471452871877539899429507425949309069437489520818657880931755120876210749806591841120220046715357440917385548564602350655984807918228577614868511981235874702705270958609271608753196244535009560557989484898414194631604904110062067474291091265401576288531939850711238703715446294311405087735055037705400168481060001236529221500013637548228302296570139673287153678773888582893474807430969942703604303630671955326334682753427117379642749068053589093598872586195720368517421816825718293612050072093510334070169982295655944807361448904103572758144288539906528343558482268263029004607991714860102912521844381835273186079560594704512495595675637015211246204948214501077721198169934874412293464952760445408721132012651732720206478260798702004924221075960174605823150499980272151200551604633058030734150337097927585128109578312709376210350940203640384470015876838745813074860104396849386787855581920544549827499158070999233581552628071138482049909502906509713984215531807908552746794259146964073832574532167280219784754364981214560149894196345433265270583106403029675736739241978518150958161174256884019940342862950879096928238969469048225842067355621492930427760351751719728433661596259762687381102689451754735979530736538765507803157862425217146159084478300475359589618959668883764577063133750731183166011772160158352404188765815954110876961443510362293520734719107667246398064189864181627768411700238269665096432703864839155788735732868084186480234091542793922251959095727647099446377077243393771177336855454161797171981559055311369742818571339486700247645716482969251843229846494099426697544890792779854780658797756611685173558344400860161443884925862636626276412967275244407145970240108587892628803829145308950374027123944806858212004482808314262224697932532951486162613949516876620654724082187871364598105941505663757638160162597412934037363892853537832373410823899233377223196949618055591228540895764229164290180332569581633207910358463912266149867361340629121728137671500818040669923836094936288338164453487197836001823193038330012275409933099224500645497008094078874107514542866893184443481471399780518780394780729736121208762218900441367631879521949782343480321539297818919103391727305869419995131640508266515156315406984142274639236462933904919839129967054152966605999891028336346917141631691178398990156657723137338463644673229440676438187800420588368013885370741990049844357969646513487389357218120848422736643878269649038955982093703471163915675523394147684098544253791750078653166080310645923340358561703261890676797848702937456415670032920468586214686630894567428613556810979968710360252279451585261068520071958786967662900154154919101917024214905261656822560912538541307115048858341225988909902043719265981234590979915210924961670287008099545862447462183478732089461310104036105395276339981684233799954193333384606015220622361119614202063092061848999783400812184383114769424374171668017807886608146770299416661034357990991309194503652253720143633737368760099543025224046318762569407122564698943411497811953217573277861563868246508048006692442365057874464788338959329892339755024063531202496211027463039140032426854636071862928725787361375699453243694523602531389310382460093544614149643165965746190849452479260154573546608534089487641758913944594959142104658656381443031538935621763388620412461288926560343684409149107705982486263480527728359842619503720458614572858294886023360718522794928652342924437262094358042765990584657755116074112148341284169879669261375723457089923288325044536206670031997951599228683875990696098200987604892963086782589581726981814902860725383741848910656246681060857850697569139293360557614397846466640062532282833621843229611325375746097490145779283841923966865918644941180889483111225456153487930058541992982873598759940480151407675718323055645195521977236720679714702655310302835634647807203414880450409720888317453762473473542330094994255047946935825598166266879149246765205845107752947501437825832241721345260114935322206360409058089262508354743848360208502849245186864524235418413409429402344797622484226504949160465093713440527676610309244698941284992722005605218073666064375786686601912380664844550597005363597584607477366143588269892545920832619785504538546020563590263557683661237400904121375855447641219166458933864173301915021510903521641077713973839623710743475125971957101233391177792017541845866812864574639132544940484870617017573663960450331805145908681975489287369369272954442534882212239998742777911999654830641812032382455546627759882427064923793533523487691279590743350418213281011597620025355966840587529640019911416277648215160669675899582650912928913805560482421173127004092125078169470779354365827602654589695046668399769186330557062378958425568563772229477464033365595635645917142611053774466258450689269722310836122348574347387968822668098523432245273825397351376916615638595926777293930979650209737455690579523963156279010161339370400442668714493061571529410372221436913626958268784918516193815037999422875850126316485352562995956873580343600771771064553380567156084637347837958857102636926938112411726709199220912381726940413829510768341614208280161585655595821640973793286118421784313970418268476402193379005487128508976730931121620806772792849646887716251661829333601013885892743587313968585761099527155604351996668821174081001632766847119219781999785286539623531708842615331754345617052708849204295546734596590589986358478934915512707663270608654491258319403076679078932276470047376467757839489099342574774991554559714023961779127649832283288019343953316751661201659608333279058306437700103105640864786951054114161816056800982083380744858740286546055419740999719257283797955566753084415084863117125268412894980882875249319908855310947535258115559428519264866942445073004384163627850517495347197018544817449332926956385531841660166089499090632580685791836023265217925672174754580378633636663936646570932205768469764981786718233211967689570673524089711174575065817022332813000659561250078247545322520012523107056013087637228018529803437600229461033078996268446238487831972479768018602690040196329055719410589743697456689050848078779836207361234133094802913111960532487293159713250398107244003728830106232298389094049187502256297166447792761988571566753900002059421119953597159978408122620152773362632360581353716755251118819488133062308622908910485269471776646089850462402092411900615693521933270400337083604351001667602005693261701325682837114072406843889259676242568902950389869525896134774688403247907548461847074984657090010232716209419662470699405166529710818265417727168902441622454233102912543381144462197911611067347959349343173303876294346648897225726745030404753650849100352667531051209435817732694182309981579824547212850200903693492668616438539495461516854940711703642735579787363638662596066579366038383819722932482234001971358553656671641014072486230546047420247726231433397292235189469465456874764164839659516653454547565835982588736400777443749596132076569036978280650478590428744980169587813807465734767321057349653749737782162827291872236232530647250556598561587742648478352259450255212393269163007940752508163966042405154768075486133219180316882419391657346739223923398642687919482749073975855096705860897530295693129142038430240364208685337664756542366077534804896564667513436451622956116573191078104269657488218728741551986653513324373984709341960402508311208110625374863275720016036055672828059742737099186249852932331084523753253312281085674710350240320850451319306394533374789620880962141446887989146897509420565158050626657821264874467150162065464041227739173316047777446556242969965932740388561286123568416912658121448265149245380020632409039662712840935478313539090988138593764145350113948600472736047135992652032417851484458296122847083633132834439481123699898645341290857403219428940516079946852238692451574532887087678987551970051103851052064622144073168520873804537593515384165949810778381864472213847867709184014507818169677153134237857001780841551705223268066987462964943234475085010618968569249208971822251963219594703524423644389602866254863208435580489435714795147326698173008436562632990240777531299565771195864143807100073324944210991567380736278964597491509670589281374074979145168073484767410907907864700460874882152156305247039911133276387861135743312711302358232913941215122095649356657081315183904291504711126452528645639664715606046672652199341860349624308236124267544681826369327701368083298316889259773970827223546526458694161382309288987520450490294025054521942039671836412694503272097123543128421721062075559772208240165280283722895428632721689330032573481389834585176463168478719703767438871191440269890443361429080285414501835299401849908156453330082956923819489051986955731003256039818996317694797570614144927317215095264134482661250604805887930204815666121524485834021708373737553850236749940965755111749954895006857233458172759872528278429486567493444459138541962279405845265974415519569651491008802642749518680307983101726022661781245311691078539564746007452638592902022990829085131788868721297420834881414244161324868315516561941412824966148492318470415787807128076177176740791703193498838811283526571272475054164726722981268805654427267610392059481010196969869257491229292408209467243195714009761152096781877450446065692010367122049193172943832072420550060091079458953347822537014032451977932074118797867238861143968657486375893511807997639212161513847688018632423966369846086776631067868435958132517228616400527918783307705439717859850630877006967251527864929898654269451170097394674802501490013698277770491643922333466043246308229371737448351355309356749425803572737480385105226335837303630212463912168291126987024232177600031226354163426756733069438531967209719132917484714334321443523989790141353578933492747266968130766543166028888658522247495250173571359514634036781924425733271924846666744529767946600894481546253048541229798798234322610468131599936360850463957310335796113088983420884373551445516200467949695118279854460314908974905666726557154325503341867996110387776839797891201428320921338751360615979154116240876499117691946571009281802902802778807829979232808490133200536973305168263648212035572519609102986861723192002450685653988291074496114079733944061982403116601397515540091636743847613045774649809976214740410891400574041839619524426637416219737049491727314675129871837325901314814280535123519859648511691720365165618632243587836207828200933524912586265537319087890887647802325640947979918470620532940164321770741388860484049397841040910491675441968688777208851886409830109618232634568415372829196398976515013913061075002414423893241327734606540959847965284348085119066369617616171341208435661721470206147813983179793849270077910477343713695494193557244592248266995936195447368884998929796189860678296007681686877432573603479499598654494874862145240380630936767553631473896812220048992080952289316961681707344541915901883223654203154684533911094903703637525863219907246758174704508303667037024696458860208416362232979632973006874411754873925773764035952771246393092349277680398188962915395037786154871556020509519917488079293442124044557819899160095056101307958869454172231464928842234965327335566341877304941070953272936442738172492453716363338477285114119603520504680186124185381891574722916113255255070519993845668637753747263536992773776866248082391812611422524847567496648745853978019750651789505596063481433904459476526895588692860927295171186482426722695514761454051237144748403947903183497455860828056103483217532983968015993751238877231819436768842030569306595241398073900025736747189141311884428950893147230513912402679293182116859240652859032650039290349703855984589484891250809339929871493630243131695849867503843234980361666459045734934507526040939058612827797550574602514766405629015563838531256513318033798248087435880414746799819892695886672243116308675349599393201533234956823972765040352949990881043250007963925058023480711718707639383007939103530142851220356614262057306592110876154225675441393200476755870218422042719514035364237280912056991390133880131415431690238045572526823550245297098422567384093697940583602943910406484178460578961071468765464198041187938771403918415827507432710096092248970340846679057155537135594772824387270388756480465714139263704569635668221002120051924950979007838102830068257131472622442995909518572714435858315680459957904183964879273148416618102877429294556894071841550602602291032464161595015036477715473788325965055901221029621581142124415906500908265071656478611851371410005263179124299336153717827989097575356836783931811196629961990833993386425393530274028652167377732285037213510310393197575010639823583626659719939731464497903989239964828566285759460997700372830439776333375439114120043977226645514689898292119247990641394499127671838158920970685625245043491481027152694065945701486645496127935191960281392950102845820133870041069732155078674528842047015182591073190333290373392363197672256880527447031553344981655794511049063649404487416931240033666114295715088840021696329081614616989529420200732486711181655241417139744077905830205526283043468003299707402164078232022176296638910203313201628562083110776969466912114004270071485284759952795744117071207435882142866993773564316753462054532932675583879410954674576606163836477512647574282511621653392427735121843307933961704203417793731900093479448827921248392935932796119796892685621589184419515621745925573918236695513349193296842179652064090831512259282837970409848144403562119856228803947136481043816149878244206541718250664395173756209537294396847392154655565256380896035197283444558833030952934288706063337266132739037545451357045378877764688144328277414811717834972942457805053512132252817017960485071359446615022742468500819018480031248417698886344038055198897186044670897349353377092375007173984090359960712823402499816073275180855293768352483383621616076540778363045300498100226639089211265830897082326512764172641473606442578496673231071708515367472219233799305874719160747245983573260661070158782985124694744430653814895416767170850091658342128133963127345811329242071155216506822911797955090353127155035099500669514980817298830845849078597674877672134706436680475364298491146504656319256348661141080891102466751610452887444066746601050624466128200822569230736947384877201521232485230108649068656985532422770269456714535092630825945101794935611561933501183811929123171801090732433418772242618768389870998876210648003552475844030819782746488064618560882257985873516494345471518173079765843148275840270916793582135196692950786555577476484210083439210434597695980983114741896241157387813455566828892854211631250865636268116181286693312666350111305425512197577426751487158109005025212060641182257157930552917734730508036793400754734123939458580493937188763361178197406178776013348917166950226880927224287579757132712715887731016781837710515067702503850050550436564031183544084183566092138881664056548695231771531945305432361657081064039927798186013037971244502721330454628008785864910577721045030049033622695930919045467130591811939781696415151575000403430377651066723082502669127012167328133696853482420101422806511320173702695397619344197777147017961397798291154494962202408383582953279248543837852381794780731804077046849429325881621323235812787308193615664122898905276884048002123824904572219284981286738656254124579729318220597458893217116215345884348827746069922643991752814139336236236346008382444928833125414572397128932558070874677525148380793011478068420136796310143905412301456430795248262951830741732368808266210584436511939932547963189475308365696747992543071670468572673498166215122271829606191677333693115894785123390426330960618740855059229041603336741333610177140746242230742170411338393845450953586546498344797157783027990511371408590206766366820401241802230948588002437176246143425033322230247494057317161638412865121594601016308564347745711495642458948708906294606759568208773430096050817654446508519286044165983940952511309195332853185116545583281369884070257312994668763232581380451172064372860472863561968476512348508233845733598187063115065590774643671752086099028887497948328583654903626885453069430099290720535515964372948279070909259151470989169580352549825271692082828467807283504297641486447912944298313332644200677292273434617113210313940569121404825567220337684131640014328698321346410062183121167729910077989490955242915994983655627820186135138518964422496471874704018586611404781491755193011720610037926006152397909522416055673190870583490235239260979331664398803618819726525770124488170702380458273550622015732968160874087423080989698830542198018808617427095204913597440057733854391428538420585516545279907411349649009190026287553224263698606101162232522607411803725026965338927246702494454024121476518102691405516156590924947376967885371497655855561097432075120281904889823310065826360271371058119953427036800468845604335800126235741118121350201053670190279520378996318653883326832245307098874743274011105981396156801921187224632308234768566049155165097022729670710254308675998279219148219001764114302544702746282567785035091605364002086856520225000514632617949424168615157853349829413782336837877193162903043055698754849059252618596715454497220087986369453241725431311044730806777725555820261162154148358527474402083663800091465352600042933122490757425055566512414042985579091150614257144123494630825779500815892621610800153491980279043688450314227195938961290101626940141396467268902457280212082149381249664901904251044086232930035874346115232026189251227835945043906465551582012194104038106610399475898769660435817052847047398569606119433337173298026162196612283660634568693142337163184672133696436468130585809329878924871772844989368533605960202038651222228400430168678231236399576674375891390571103093335083470161573541220563820805890863857386074127309317334892825244423090692906134756516418466401190180275436344272162961395133801566260465827656200474730480952516557262199049767882569200075448074556004500883836286445785811130274702581136653849743696909436392892491595872704273339678666799588737899569398570507392775135188731706648826767876322358898319470616336582846088037532864195470763098966510119521566940165783626469658247332131397612332233976957660853154478287003919444908278264201130111636505566927481433863270683902439444504665425573012961320209610997576957818251261953893137906245669702816252756003057449376068819009816705593337296548729646039781919709170703965255464443656174818867287133060564971652742393315471527539765622349203390572057765454428565344841687334227605695429364761962062780524694478362837869554067015660532100355399805236912657079255544197254763410894632628648539025583905641654147986495444845514675316411271376944577741871651428781039582948017263817137594363956983536911942240504332439211046363098668508070539904753900757542110115869891995872902544138943897756134831373975592419773806531344703939972457755506180306729168981955338744242347000353719625795093776016215309910418349140502373172724920369260437875504511839529706328852745736334307866441866877988198557340645813726523286192517694973385215578003426309432731258768777925832358896867007582229173838307540176643674212199792696268043053635635672278883920641229518512897155838818889022479934138269894240844717101549193223440286116992042811269170951884108810838645044952675605799508843866860061395394082177805520778744154397657507026611095569338515592736710886605562315663762900370952932931916065167357154734848134414759028661759194785409446316539991627090443872786449607315262473927433112545631527995848793466187036307957041188173613811550005588824972218748228740778400904758298088928877271632121861723666641443989388325176395312224713777009538299500596349176051890111973742741487341231840665207885935986277960251457190241494968252874538736086363024466035978924359098625773115713015744909177510901901986816679448736540676454626437625971069725837570822333064280502959895082099716623199362261228520839344079068812197955680516485981644592002644808416011872238451656216981836092775084399154617474289005409293385082853521387719252631101856329629143758895963653313159553866641677566667118800802603148331830578300723018753627004052677312538657491891563505140531485475737276491104353056839782752991196572712662649767750828255181290650566418097997716278602778874487753444185624274536141379000670745727755521924485809372629237128368817727742160717678375363840600087679690070156047904237113906607521195501988674706179429481290335769058189669466373512167724223845964630788665114469658176989374290486817812827566477777685013619360038276607153847047898383172619622556507531290840417362051687281061233278936710153357380360403469781370763821984971961705941858666110694958139138398898907650664468423037431120712727115269095711259896896495234195650936299691763871550496668346088148359222156595013253544249695289560785789960267400761974230520763107381958285674286124642663646881898658252607759189013814640932190821913666265100569387327360993512298693725585146015577489510979233852227478000486563565623281989352367516601205581656342097052081495898011638376218086564912623589076575463409059771299554240961842369465336552469859456785262298938363496943190846204295107256925928378361975698781329669913218354543173710879316614040223656512880849501239229982734175002113922402730485442138793786254571611180994437668664303768228315367412748446903190373506453318240797423704502705479869629797408475720486738792358578237115316186636949841758690785826184342818309398453777455103540468159952607191925598416619649436613408802778059761050741013218946663783439529869700926601423359084120096553225951601706654118550738499812178099813147658251917950145715114340564068323758364019948666271705304537575425174512499043947132886187083239808204792084088292358781709546209750377796710426951539458557528813712601934969742651716772646054153476177554643780202878963008034677733491578275621546360792174761141898774842280741537635580926816573194122333808794548193060753476284484422061797746842177097839636552729914448003716487330435998776896805432699256134573721297992619349400093096188483318949357192072448604904964307360121998713431257504301365432771448400351970554757913483626826303256040582230775800335007494211920422662355259206079994850649156114447194405075796087896398773971632573578968222881554759720553008210754732498902752980750622616673326550416834810211418255075339027561868022156009568607286136984605091243529500889446021449177640450187108484282043742647782420082732277693033324992026684765270415500379999156946666485500652047621213548360587674732536696260206613752852773620404334937664556622403390573349182594691969036673653459649626786979713254173069255641007116069308580878710729028144101884794971324289390993227984488487788237025077785475253073578508369396729922509243438678500216394976088863284834892864870843864503464358190571275796794164902384064556529192126773304229689764156089203116919984588566071151464122574203776324907919851651447835557754896808115976871009288669646355058399032625041578861788283591952159157143283000282096820430775290543858484699347131174185530850373614156247306256303238550955408578509730192057323407573052931617263112814347900398914154831957422152911788957235795262453761149025079737192189425137713154217010645543977896834793549163439904262641664637378017196713543863724839780000837979459125181279601482176126825932506741454476275701621062766113268562558298029744216850491397548473968437236115118130464264796292769497680066557994119270151037621284318993768834086542632284289011804042720925602611210078420701681076389167428525976164516925645496589331706352999365666340510862498559151884503296205530541218972678488139336280756157743880042428823813452034852021886971175218185739786139545280740432746440984878832427350526495343034045686145427191172730351104565631661582066179797918630947941763082336775957061423584995719442274278227903417611968168941334261023858976375980532313881423176011593051699747291521764773828985348290236483340949974257981432785851907051012243461207869265571959637840615693309259752733846965527759157670662996876085968925231900680284046264510213039993415962544393078420692945898473601075539861058294862851397874118751389101997228475498914537258161672471743713885476731502015385392364934259695699561596404965518075959990250271155517649659618209693837573978241571729607827038186462367475047203846498600029958244136933363557233380736156797836282074428493946145410954787219004679987749059964322402485830528890005302944924122993321926040041313185274091990718800708846421516220452006090992330241627356078778941862206277922573424399529817898367344040049643759863066329398453694117144368174913255137448071859579123904765138355478781464674545566230756899899510802880873250851775201493295296694052083466170362676530120440575103419888481131322522904615082334226890518194108463526399948454144738630097871956863372946450976453100238353270326103380493145552467003774822795611265141955265974245663255777450486916904490146970409724758517641627965283255921775792462751858398441857056629889086605660802860352092762340799415763642788862193818566746852969766521009189766286790082071962581178030170146106613091967578961279594443613659768605702345364368129282018318878465756518777384083743833172700630138341558997687966547664811896357099936179652986131762870678534966572913232381199510178475922158725366796951037554763567174588332316997108813273353631204081878217144237139463441011172005116998607871069693258949715893697775469585057583834946471369744006569749053299388113742160985632247459303548715237005665989437911827438486466580736325566049935268424154967794003720589282605034406888724734761910689372628659892723800220179945987405824224266766766147417959689717043793550513033478492434791062833915788782908844514172748443292230611427923209620050342708487774757602202813381916949197291190894953169052119347406525868485391414622662099256913801084628772397289846452512413763488091035146221656302276772888571306123287968527234544652910362876366160461492632580617961655737481491494751939983096149849998855902023648046882427171804951671517487220715221783967214792406092659386085830913070788444027865130985113206800644326436300862573785204183205326086807059762419379811336103614115871837821381488583214828657705694353961456792800442322813133832953835199955924608213224139075656560922123367443922674278332555005945584588851052843439720525160502950726463910568145916536222037985820381972038236556121644505722027002958647184643392167426730614163846462813420951135254419909855908247087356396227637114413353125817631693951058103260571022029155706525155096842271509292396734443365190527518631300615905609400800436132608211678754863544665210769981610687130166360730735651664532045351455834755853726175448535500063206094442385225496669384842995830130620027970240881064899588492865922675595044461710468292325152929203869567898609251090804402493611077884653061386029236648045083887511325108567911864970387827944468973976347608576649580084033932982562470813504060823214572707277379614176782650477148894903176641879206887738672339362941249820710911596043106071695506825592065743070970650580075967833646853548934855627748436355997100508879929566813343602518219193452368231898574118110436611245693515422004299206309647771357025463691641112705724372281248379164369752178276715276126342398208649110593743835253696632544413628602516398261493420048091458672284331580806793365760003302901056429342436230976932634297196391367435785146374599482722792508869072586737575935780361351323518353864659753416269835700684593438319533194413440315155632109629519004260266826357372410661425132206389690080236606138965727627282938989646001413013739253316948148883399456477093350399925716750046169608721766790090933470013767971701278340778210427962613746507635592347091812495989420868683136199385791383286450067715788494804055962016632082912479131323795501231879307667119933605660611415228958283933427383231552075075082220966186300693036519598392472894563248648880167412447134847285034539226272688482715186332587255762495305021318191067651171516013385977153993233400147443446373365637678258354198549541680743672392340833660301798394528115714157883532326186714985772472109569684547791392134258364080715935784132636080034387145014153930819308404886173347878251143971479348079082178706584818929181105378870211897417020482764974801801438758298631796223723676910567570544654862007804175098905368073411577769175803979334549244099824267282622112162715989548645390689787594607122121200040926820843952509330739528684034160816036459223248800654603239888268150934974792308073872256233006207080518786077966931864734991137659381214953912601057471374839395353972564178345140651287240548935075266303184341694365566261529979526058147154192625292208779045364617598943113537800459600439311871619608504383782305474609500821179440001317595519308606357516911785968263536920581083170588105017637635535644033065967904888839182477854214897077651532027925870268355231619826018911167923441482893825608406412895826196966510887194080364178698805557656623032614160142805308519980401399191708907971197200768482204417653501414486346485752652432141245630392164357340924261934095667971827647129625900320380974975123004656580377450900520238547935310954991619668773896813489727545575980013409284405765988954220237287657604349409831284384351503784979044593820142983766307395463935172865450967912502676129139447775852828982888684457641997995668437858220340181627948297181796946852040222056573059471299987946774314417357337754728952482942475300635356983929515396094641723932185714116022970286245086074507364663215234325067862042046915307612662257874093407153394108341606871446012836960884500389451782454249827522179408003874050271506015863616589283009444849562694114797814109593187380083146306817650037475927909146985224076896219485558442339745777522587555975863939722158115733747565688051973967005179674691419760442261160924078299010363775344710115305162374124094366765031547907795880455950226050994270910993589421025277968863761889909376142266859569332907812651723142201437816050287667633317148547316777615162018067631521425160044849384888013180777143778258894058094473374174172332915550330289349480012378793855164424184079182553525257697211767355832355648189908145255220974221036558619286404432847825859955461105466794852410246350788247475586267768593169255190186798532152233799467247759515447969034286741782399773040645364113920725003902554432780693614068206443422618613904798461480185281713604300571144121403331930159819303509962597515902534774279614256025869091960413576089476533668311418683771139115273801783754870036470895977201406850141592791917285443895143457082873996758493634486156528899195006857094374174809169595409133925812351865250268434249236376201497969335691647901081883688304042421672689464993533040359891587708872483073727057509188807679343614685885030714094100497334959361946955944411002590222958719183406431018660585405609176152231396479157091610390270324153375853155521491423704025913381527116304260209243871753547237549090126153220132773575758893224123824757664479151240401346951435873338326049795254216593090981348845544219203799694350766498381517674665602540178143317675167263700095964069041592387636747274623431714066882610689794472663340101398413600550266101868621655233923520531420019683029880724496440983310257071809762615085908290698750231367423817291368287365634558646145815907098921933686725058505575763506986531510370431517333734727515715950843444055195127085403009836187751853413465270693181470678194473541164468777781386286189798997259345983829779480830308359188299981161164663483475585691336346990548983789742038997591861051093174467144270905830928833000964348017198316052230929233755757708881366222268468484349541069891505683310242841823753969329441271809678972086297268009035519851309254812324029039730516529051964839742288122643785751907278245818580705672932550152117063612373518602233824727357427038291011992840847941910608672660421233711876540112797794983902044207893210192600905537450001422475445803145019547427376058420572032367641270070677604330416200103760455035484737996635606942757636208011538606086338474268409623602956555585075766719801112979623048475806832663624406431134106210092816470003747774515192740608777299800470796541963407603660373753865015046327855944946117270172894300594737119406832395924904004933825220478031630771173626827912775316542928321345487463278067482437139012383567179296197357770068356478510017152833229186456743347212854445623000712073304714272658873875133240208890933034553966226739305098941900578315417279072437434525688897590770361113971025930435176658256901587903726558831420014384152427092778443114159767626202976152358199855539587375713746091995627749127720546870046219436551362699305221707209591096584326755587323459053527573335007199555927933399692953467977515324575724920811240672103590696742542571381218257476409061901627973383171749622005804302201052712462466757933729052894003220094609403260020636296024502407980680071377701421168441903716513496896535093401978690953438145909148069424661079242691049734419498628149030767780731113883045706790588479626673328597828467069796613441003509688510757350937331553612103040366996927307076997976610864115419649635368179613039849029293454424571190832782496780918782780536440777074881834432733003683699005526250695488157906378216465280824137456442933902491638395436233581408456594275350707390841342905431677196161178263891834928128469547029160524821403972767302288310227874672974305456314670877150358095010971161536689886416868577650131193809675959863511112882717689575854434297020698856145484733929398913085392334348093263530761483969225775408811802861028610513966974868693752586152332255639387447937258478684605203887636413387107149189617887752040455341748493162923062512430665387116384452383744574879637684793618965561331364132489339395619375480262673192631153534440821120185261355902146460616909131701277472388771496823620588486939625250886261557195178536605613403644420016366045229684401672101514531036601026375166591465173358085808914823764121413167408358914352749159643745532363222334157577132785083215598536122614228532967993932671184574714756342896668904002188071314033964618232132194699871856471514912782563046690700979132204400964085333667507808112779581563893490667197953561531964913138523390249793253348761085486748495391739581995577407720326626954523693703858830406689050890112092021085344600697012641420141679579615691491076807353334935033624619293587234119212217542729777660639686125745834540214291151821920177718190442381106359637324593415857767466222840552221048502846661550234707056698638914552532591405725628890570913000838105903660064830914972752668993161765582883552097262799180521020629325680744418084051977360997032334313381457955429397233953756778222963504444589666128914661502663900225762323692975790048839669021603631710973215679169392979731857810547238812402823362327446022154323833579200340242384034348081310595994718172393263698773497555468386141101643781659719344688215560351187754360879644298327657725332193268162157351372826062031994086173332744666746678656895824599734337978274014707221418664754376519718586763983689206179180219367949633646488991478950269747376270305865557360017054096621709542255959394471171341453953521892665914641889843908961957521018134410622024328437395652711535550828229897910217184163291154719012862307299808578103244584396343316342846691795580445888892171705708088195292918828021061879641394620257889389706484556964258209767197507407080071728730037005282899476631622374844280345804900792241674428823566020617629071851472564374327957244722717998278303657784374865336229359447293534249500619331389686683620598866901419762153441910766523444437120633858018230336882161004855366005468258956119109304531094412991267147077332231266020482724990951989300579025331751034345520653116957211833020322431775809694544311208128879205828174665522327156395863788729564225031099027876676040401133176876628557166027600645804120422965791840717685270170698534134878665475716761272678733547221026663655485647626683047802025397028945011769092456058317844340375247972071318213752721302633342687464623320423879075240518934132692408438270806910146634193545168321488849996784839767584992922525535700783744817735902654545064733866744589020296937569583786190185170083264116742073732127363758011551724114204724942927087700709105904382469263669706415391071200852290008206841999849178252029777774750866668058206419947499502884151824534847773292803863651487023998344115488845843008000057960633718301593997330313501686913088034046268518066614339000494735329001376758111155114094264247947670008367500055591067442825279755840533496707463234819192976871874407465278339111875721166266972213650613206991095964675100956473347894966917433239865097361669354367406188691597379636628759764735764766605434636506180321825060976943415385124758172127549632641915627879620482513194880897768546418324086343065580174352513959656120946914278424969471432903913499196539011292388963905273394788544047645625503154189337301324557005667756772981087124942268164677976929924296631714547490907613113780193425511921029592646228560977077140492095663955005678786723455009401542195325218886773460392009219806198483094341590568528681806465127278442564756559088750603141554285136892684919056490999331663735351432008695680657058957424073383348967436122411159550785618569423156780090921014706283831730387396388499301809852718449296174590418403097374373045410282946451929417910661908608758010628128878749998442525469469427874813746682122735409796351662093137469353174200902310140041284315499903938470199820204964226808660364146246484389533501803535896618026176674801570945660817007780178165439930637094381959183430199450502936473765433644391407650721025917867775385944605317995733837064818330464896591639826200555946003622087252651986831122250906349318820856083822983564574663700872852132556721411979512797721748326498015917995447426956622904160057670731018627588856378752055333412217859140937704532569981342867823363839306508184168699233589740210484714668560434821897588956241885194068255935737184183951589049104368783972073956406290024859871364466595632590031703898113916008478565904563894361751186153892614492404376454684621429793659631834340978018527417325756466843636661388340794176358378841125067659472151784971731346469573551115449649753664527918318590929720671957692883995675196785546989485470982532209957212925154431471770833140977466835277106352593336721991140184913067523611276413864906560906961084210942542611299704319041711419461084187025587006304351750622793088748805158727706116113308562803744050115763163649042169729464934335084675987388365077840225871220844810558172967192716221809807442736474977550065698841849813620169589742949135521234259984180617806252789987302398052800466107026696260729108824235218309845402520387573758121047759622161417614381956378124857476642808909268930343157550653995293091265642164437143451271791633841023234080300296240252953520966845298118268349816542567558975075354503208309232269314978855214255015375930160240724816712673022852793519933328506943751284294113441457881566867764583931938962959727344183553748508000271081877160088331616505115014028225017554394016679510716259815813791318347622400716706572793047167526318758670022932721183784940816988505469313238732584575798579423457999148997918410228677855159943074994458907908262704266586659820251152976871132617823638281984043191304645616948999497620710448510001240917414471371024023078181318220195335351072012338707090793410760784516337813011183255803048045280837221032472336034773043341324552542286888309504017024783598084352121661782980568149442271589824490700678904530755986980027972074069568648864913741674021776396425426161847055136233848948035009619983855867628850221089526121295384573100205118742683507098759927749850005720468728205985577001475212274549258522439908983232056419407121117337812597038530001246102695428872636544465379825394576513623555402838582533987653756545770049648503720215967926238390445264272165699922139854809264144476555580526776482761764959824496201923633598582568787106820374521418568038456583094844268693713053260110940932560937370227510572478436795432575997745353091900234616515422455049248943264089675943886771471232621355376838102149514987016823821013859725292555697207255134549097835286338958329039560390061271180890282902159917066524696203880964455196422062520773418648275746669689340475856374364392818643835072031013417443693154195472683721591711699092301004343952777510354185296118928605732972258365565758304041973945402711921752492165331284484556719892717163981714509000743630883110869879970550907065716100282222545421644895184872215155565809378064846101372123238978469994514348410323758200080544686426394516131390584521983933244118859967978139154320584534390238284082391130680671914916706936115982130754358223596537718662703710556048473287352357209675530622916837268048013463994582967737322035994035205239671426768196475003572220463851112230563696664647038919334203944694063337177510055981370175909582919461771213570312409547370188633185316452729646339471841445306817678321854977052941809833366300065570762978131702273002978208110049400785887740007826912113142805070229824482324160348620133572235011972928650222565308348009127354156602564936019514693290192605545131959193260173540887353623468689526178712603952322024835125770298912779420177381420185953913645787965752756650238968834393357772717726001287316995528717750422970024179919596146769104718525443176379484168776302277438536339874431683693050505430649571366564574845710042176899751884823501020314444945771704947396354450426385764577701094127277353386503710826061145799131407734799152515744428139122279351595474646711231792076181253419779497149314917011425093655496531781188790713954380656714128276282492499042259366816406147548417635377174131438618596027753932724591285511384783718726456265040050599740692437582215026195448064207160027437481268269952716160254640493710384916628838893737746744836158815639915718414999368303528321708130437225962533713069290909906326855408529328185618067447686683701618345605752493939032152196758306774336123051289606709638624431943487093619878954500667572786927778570924676838731712212992526281873541984360139666791753196754276423704704550184876162315383195946504186861425086496999031763714593598489449545830821558096797068438095915790126105345470662621042081483026909695099582447159011661274103362787804473706833089700001198853662907831713893756986308447507191382139948623826002329839479738421045416859734335651621535652704570673480624283988550969525445331745848646637680135103902014427731196604338855471503165176457463069578457849850812690928285639367685354322337485523520229637064149389816418818492385503526381383144590119928968261784585968662453208744092074243187906865188540620273748255924328230041387816526995122080489675050811925112510758881669549331107837616374809980242115663583965144660526294869044881232930390676339293119474226795303644444060467995966922139622750680599778269458656551235707006664082243159870522825621801580257881102716304835889061318146454527207798389663499583270274193219920583945507835504635730750757149238319025690145850496417379039014227176740505342149906952580106785781848971873878042007078669378741923440053928753329322818265576447928884201497432405969583183962260248360724033807259416472651528586201967193739597152598484570258498752164768360654361199328248440716123565760173308614017005466275905832311378180776007260090108028613275849742468174818958560282884425415200178599525534481515860625303218523682184924833765367052255913058862113766860289688052795881869520050513899878708680595392300345184026231551038899856678716313315183225438551755647248522605642936581158204346465162616856439786336072949174882570751174149194963146855566131005278804117015743379083981240322796598882169144978577812467275688260768863163748156204403030165937893689595418679996297926302011596744056177774936277613711779066673248044347263025964403931703045707356400026616203366338883687935060621212110111747665775392172112650687479490989401108456963364504968328337310255610281336764255293742204820743563375344458899035474344719891939022769820502772458381926977428613530134877222773289931681790848717041107526340428663438424198668291546597311469021556263064528058239807612256237497379742549964189389171901088880886190942788760686391117631718163149068275495204516856739168331473802968907626378950401932175281821235410099016964135637330773727634650541274485432427007573072702390275266658007241327153135312302694876627085050862674342799717483796438622790956099271708992521035763878843674763575342106978531835093374573598992726380857009448909241965185143523286347443833902451965342551312002530834092227177198318270261338567229027476650071367704671484130065896509936059324839110247686731667206313020597533228663438068027956356455451717361818416785172993870066932091588213433258346722539746188810901072657225392811728660385336341334325491291184538994743102540968960939959270369933146816425571401770454319342341882792104739571734299075744932867217936286088177369586452462651507641817334993964697806004557192501706941608758358857369338396302715487846055114113390550795119980306967758876534463509952591408038372148378617211659211345510613203804629921380582452732131882482411732072623435799028493564580624824067447406246377374149847675296652676735768069529682228274088697366292288957581646384987700502918532650956070580372826863809149922181046756775505376094864101989039078133111797249389901279090402996913265084418157495881876289823346079946703916564004915985832587268986785685401991464176572797817142870283695291991658643963088427264380198441058140429629309532477722439154584087324214715897349038696604826363123778086119271155395610476781399545925322628034062200215476194615195815996354354497686619551078030430004100881455431501058121241343209199586899313614306837970708965209999158042440252599954974184728140446677663681851931346956855440531957980508233011521825368595642564654987678914338420668294518361955648630189107566432825931336631261706043081391642957502979843348357454688670550966025055935267010153826971318595354638166320330258218989659793761502107651317328971884012662351397025620806755507479729987377422193457261147493809458131784197791785743804273936870084217882561280550598139992298549890561932702120846133048454607369139361034690378957536625400200323884775746942968753127024758690926053746454338437419614761450367823643871109143635501591832814023059358223632632377567327669684434122777999381299900524015558403183035454941724455210808883594894240475242985640203085658339266646334412811168421934582681525271919898919531283307633025532266365513526890602909418024706562435979895006796934564170112002651349949937094471747992465323050348491496205263372113651553867209368762787991898284393350028126254370019025883809306628330860928587431998790587475807470198775548252224030141176514690685302120274678570069994425859711591359857249356249557716505409296122060549407263169857915363835912362359842158490091341669866663879932185405495070845387264138880473435970835058621066970903509460016576362248692307157281603424425274109653935270845894836646143587378082970785147494304594156747621227716461304429609776707030371259482256028310153782384530743411143778031362175002238029938024627989828164454414966542815794652666527333656497975837518594255916965680493991021535994835349068186423194476579342197792074057758123457867664765270488091639735191036081891092498764751599451322188808139537160616789676367447272009182906125358910359591610585293870644448254154988067662541384656689015188445368652813691232607838532421442594066001003935180218395705297118152862090295004994259018637021054363424918633489510172103220913250084980634219145534284369697511035093128346143546509042404848575262238198368350156456277132234571215414864115781069226552116077981859770501841417803803565738441737232288338291485749879583486357072188186524343127635212431616766696546660153449145655134977474926085977551932424271879206978479688240976339573769798103050327581011427871857652963875468142222601922602677534250778161163374857108578808640822388665849442312676514976292022822004564066694935901897082434317952340369961254287667177661734359129713432253133956493298299940975874086465562655017044111139499400401633878130934383280650348096574421968099386117869606968290259931381192344013319498684072708518311240759505325312039086661876883418298194861116198508259504240978039225963792071051131396540962764057339295045121945442729837838410765045813179639087138402974959554419089401324756132911644926325915372781626581518381188513648312229087466648893727536483555961358535124829534515168578234142840850792331761727852671419011768698667667595981425133398794641938714105217819869146178611644705411937617255751885048779202285244206653985991306872070198677499912462611294549697764815634109115459374205294437247188959246290952129835927015515752714643735820724438411704848743396510136475645707980982843101416038446146076291333832787293242650815805330680080747612378367921539887616993775283917849878368355098425180020752105718865340427922280190825252836526466844633305339076508990503280209320481053779490821190098709050760820612150450277672329943569019723029666056904686278659491280278801358609547160056924200159713386731273674685729906091914338709225369560961019737848154690453681929681704846421163404182119209880100807805940260786168760336258117280379137608394196964558013985570986887035839902115048617978472290563673550175106985297223235921737656101796248930904665520874947076905332504837660181243102982340395051840365677093623947258606272575267089782760777449818371710988630350487077321294442844577592733666507785323960710234384577912289754649278105781576629364294830481406243384843675961864183413568851044493725988094379750869482103405931430136682350351953290448179298618759773096128046474521069612065597924353281342734842029051626225090000200773245688878576736316866805522109936048902319430604519552846265982081131108410847289037915197928877847438165783625272500656882202419069836386029036742084351403591979724275241641163976085804730186819790087694527206565366753047761696236878792363691796016255701272162285522922842350349094957863010070934813549120978329626730387693358117943618569004452847500717455152681867950301322197613438703519026762547791488848922387250264413008770243924196012308686612394625409086250494769553237437981388505774353726809460205133080555660514026996005314010713490591031360766421649591740247186711502520358205533721655944422287131579709946545994215689972107843183299633185799088925988869292217745408796701775511397601768817057764874099533476703880085275779639473723505084561907676717166062488548692329914027124927812832535908490250691305095924106236469381897087439708954825795314494090614587925254309940702693558590279369497284095851953510496606767506142581965981684933592017149106342591879126614199414097008803653355500153627692859185137164930324371849308143789244239466055121717747884921905998335460414660561318386626413475177847243085312071454567339537396407124151874121093759791690629059143045804952726032858573690432823379579744297782672859907800360779222495654535188160503161008334982191451377013853475824443305490576847335036580395525750364622539247022341802906909822809971659395944986464181365121641762806738773262024914984467206553203188853674936170101763636900546052509652899422711703750786868760875426211695256788210157879945202765027623414276368228669739195338808776835738227089390599244804668084498513937709306556506080905666398727238846458162882099232173908008155890143633383709847566354587757768909119369214783691233638337125655452742110093092396096637541045769870937623100512315050075677751061775836805662090962975779307575350372858781952630586145599250490406607134362836313054659252518898135693883509944499336566430720287839657223149115144135606984827379069123467844886996377331134487593049801625178693678799299700332106795660575647487575571222040466070757309954384529026449971577395446241331962235896897815850441551412565228760675913212955329160694419220237751887709971827133915602247102983235903606161259227832690637462555607378887829229524969521641904695031117455171549517026022331022153856994386416890222657463540186444408076057000421260664431107945479392481515494722103684816759414783880356424597836056339638424113985719766412715454875246435270861615676030132725851546593931969229271644649573919411077315735857228837186693188700310696575116555341542262170028528858890103990962304338266879995690450385624617914551176766133195347827501696137712440599707661746763835028468672808771065138573179473394461793689455203057329241691421631870012061151704378318399908314965869333594740940186058896187358110769934361563724304026005299926716584008914226066854112200077447829362606700429308891521372312554970425341713293823028771564471469446109832744145014295347203434211874363868329481839979322683350814495753792414419007339630441806024793792616215328435401585880800775790710162861722119753852158863377939942283299884280622405222945688573699926612607788231666077540045285816384192040472824744661037856849036917124244177951095100647753857323561355022671136683339357175562239212346245123489698356511368885169747922937876461439304250649706107807196609464830040798432018319446325037762282664169325685495182962070670937716090788055827037621279758666604643994914599060478692998867273008928497458596149934040546121128861001084999114697654690752725779007086204987642518331753793372692825994469135393874763449806717151566802373657740300908791949117770068644669090315434103449098382701550856200700587122595613809699687668160733718998379640975471107401628441897411158773773060331164755728283225816767482066914323721451376642266975418617648740004528257370811684279396280212560762773802799394836612876417625755291185482608244363996942584112305848341823645681383872864692653621228576929299070308360900959406109630776364564103630247577535657181526318718363625553089656955260041076207569849193757676474900422801660916008923010262966815499386204451507085263078692201175177551502599079782423619852370951130103995124091896489261984247716152878031984804594488207196324669749613965981429534126217571177900701854767955181518036446030211834731491661129298662337167735470507404158720416180506110871605609146436056302004495938240087766785911845373047097495388993391208855698799742381753162394943513531260964987190671623247655104658296265738479911163177866262228233394005690710002984660707811988417031305144895979344406226560180680411187673892294081805867752714428222451564101581375045871435257190258437759579896947992465961006161130153570208884721827627118597148973085760330948087672285410061336037146002527092886926825227860965196361251085425771735618422195926095805789376018411474134230611743602884512017526879952994456877982679105735575271253064374202291747451881164244063143406398769714948070077595740701694525088886606544645374286465029388901485368390949441214959432563704871641098904364899320656797728917570219096556864317468015799517334290225726273460247970063904293517233724598046611094100539383231001806353652639786345312507626215853268842348128960241319355128382870863526947970291431301600258902118991155735043873389040334004707304462964974641122702998286109770944897453602461534083357202268405639984687061028066655381175453776254077433169003130681122745027068144013090726470325215965377880778506629522593645290512733217660964489553328055007459659926973055801160456342823310571712837360265361570698942812349838219471199898077633824897798740489157042856939172864164296195996335907082326081455609614959100939452081618270868031872157890595968847491084608659457100867650928424862682778565034289675344810736084975535928093512371976323023472498409384296937854171166153706729227778965369733656488507311946957256167810031122194332221074168673727570686490154496297324491858778632191221484490179223648332386826071236206761488136009982421096119151873295245550179727580953225142380124540707932691682293114611144259429075785783082597102384680776708008876801311217492320572746525548944562927890667372090143056482770353297684954010755613356115376310043595340163701648213569147825632415017525737478675354997559168219694148086484677275153255510016360673539566454124967865590237528791049616543692251631233044946498240091679393989689550322218823985362930030476572031278099618086967616314107908022280495177641700470828954364391126844760705867157713480049845581337424890342523154052191743523779181420887104860266069240465868384122533047779081318981091157615069747904967238756783622477433552930209670288539630572821558599095683965811250960874934740855905880896897086088735326367786476539254007053632971700043547459387884246756615620608247566805784758638671140563216275490808836075313867069441191660290989202528130234100782093074616120150691105157967383062965077425008650776539810949504612305737028131511467967514756940075368666867671522453620283828439877056051403864509038540521982773628722244562558458175116543543088110890768699900485622108947119293932142787820512104174593262842232727538809875582563931445176205013936430698780449435596464464169056846026062259243842150644434164614137627438356482812463474241822305323030237552809753227971434861960055946447954743190889659848859825607236963275857316251204239280056595303265373092650924786348409448690852054134544143894916977341468465636988819026266597766541732640808950287404787586446401481666659073385593316707184782114268601252947733336559557477751620526807361029843370376747536787919668180088201554484661510990830024177378368598692805733208828569030783368252638418969727925380583143455537386506541686939549140442153701339715997416839419629602929477742424757455984755294961864851288873859064149960586668232688735365674542145007769091519011251104947955092610976032149401466860644177409712356567943656146964847971476319293787620290966462557365792379094191067366218737552059616525059072587667236975963815662111117556189602796595664418162621182318570107362205972250359743628377792599499342333119389340631612270165442943768358645389256251937001735579555521856817944752088244684693601296159352746286847558492856003941336020669305005631419712889962004801717003871461714132285464623932987451939440821344389568414666518692566195714411812448877753459998610707571339486812925745659256784629074555911905869001786747892152269710507129339970289502881144466827461142492888589871196086771831052660195228638513507214154623527178542270253337261785284356106341305398032847857161926110293807150006734792234916092441588889635847439210457679478403511607492947826885228291566931405611637651110872530429700565482414806931135348410404451303689713792954696668368381932550211416690917120026357873614177321116030341848366653938399356580270568690220453810398505786841459510924380691600910293406369833571327204955023882506990804488721804225223418389516096507617663151469557374756073279624397460084567333187542185475983524535853921528309251136271027579267734904485317264806965107277455136684385935216109754155675811018121851093767768165597956479197094260210712744080708918709500823073933955827794499535066158199468435790701432934703675030360091124534719113371567339613892624877382959035678672812249538749849811012766199342661436532370887207906995152825764436591744255305872792967061291680297725515369734640349035656979923885978996439109417864735194066712392231339011408912546170931025277720833812408358271547716393686111715003064914536410455875653470759320887983892332156192990986760358278907619755606733204202614546529403730210804021417285647318116591137622639965101688545787823497587671917381982408362838753313619620123870381909119482991636588503433683170677868259393059557592304268099701918812433304896773531982394204502824274869039193837975944944798577313991005523554132527460336463471905084761813580902987393329525171054556764560169621640485886124854757692425884232307200307578147253480611445186119544835591010816448057897475680948725798953740800258184123333136416451145756374789867698405801058973677021743738596363431229100447291947381481759326744806616824960811368870794602259343003868339225808180137237544350837500316097660678773425615156860947319717010409147790755379556134560670537488834926578681314292832699440231016844584841655205144289619125876502729288048885240310362401434207182924020149673575862052754734020971876588412424802617510000755759347823384070365976684707658663251246398514745515449760946140868527419730952274243381259120708289083868784077859624877026343828540527951582543043019747954113025492439665518598722028752383782811045568220836705144784272897348516469562060419208079166146524764114370191624689697668195454849020846890705143078446803920666625844963405017227577355127857712798244291759305766746290916517912170729507917385142220734773344139305051342185794560238858409548238070343051221216228590870762750924339334721807468182701233350219191034363676631119893358300312528964383298360807717699787139478774779218187684097266541032955283250025378663701887070978571201420557759313170236957834721248110951134916313162563980314337362086992604445274353942373797305148834952621415040317414141291458527802390916149916101487477607558802671467675552976112520280395259012880495352870021592222086727592382423319556785267851516492146895587838618019653386279428738426044324614974878453790731076651825855820979605198244168645672953479701975913011655084988598826504317080681351084735007320267829717412807134627345243085029412725688411796300306571647960189471302517406358209216671700689303835505511678944839887423308240356001964447219835057441938846759450643622798269893761824422566739165912926117050463923030458805249573699869051339127781631350239840529817623971156675807951913343189452700447715996588451014333462141128003900790142085012180624237126823382700376632960353351247584291371242173198673229103551614221865460448353955098722557799829422907305052246607978344750849243846250348257056154049061629738644542218068410706749280912622254839315517901203763495314220387271801376693901471947069089247260525992360620875747170455167407546934338561247219897331556004416617833524519184394679693967293149702226757137793066814857599238380431345008526263172771153864844075503930524583436046146302997394226204194860919797487527632146131308095458395874986428757453613601359371964464357234267342198889059548758641092102242979005003760275526766110359631735387298902431219348953381819722003276498481500782156310032702732321989528994208236403648148912425261609908733561211200772219428588746793876821626641751339579119733793016631717450721758454444920100331128947934086331656410210911692053788707533697376217309102848009002907573947485897688175274846868780782269765345962920404343789027414025711691145990540419619433785200594401625483298369684893183906710592973921568652984367184119109079841275537252512686022912458521804204105066217044382326774960642108035907726845611131145562789227480185748323445882709202504761194844884704684300435187046642365644744716795628761798135903782184513592819563581433468186934429637748832231801904061081083696750404609369144881577749246776548493585837093029936708352471611311227583369100027426062652058471527415183135769407449085461675936331245070590815660966482053987130521273315324130940080380351804321544186545342851870281439404141512274909864952203485190421506550518071058806162643585829101538367743949957500322729187807362771261032033735093007908771688442672568340241145704437996170588448850351554282671903744059770915085284388583343625776880197352152628418871608871721427576510121085214383001460459502875799029757463360883128444697743873548749268056400583150159871876393734826133681563578867217177481536809528249557235904843386368903369103240988922510827921145334356308380474256430927557976003573695165147143372160327149521609613283660836801563431718244691071282920147369934204211461792856175286541919134037548314312235621736994491049344338149181261002665203374689764677539542594629706078759762515564255485009766867145967626959711144423115432685953983806697516762484171377183575565972271339281950397871334707025867849257971962976596569022332519211738219662995269096056337496715608359204295658835854260929421783710783926954553147244449588198947426451764069427192314358454731181474542966628030436006547636916712442695020173081025048161020112949606709007839769161068860523596002511055102629819499692732004591758334439697464975843433750801657855971340255608769806327018618048203771447410498511475096535755282082893246108873622181564334476809260128633147421445982569936315887477525504058986323812291466610748852564636812243078515501822374271148373364016831998610022686659065950656738020900131489757111196457975112192298498579775922880712507146637492076470905253904497598186750683184655284647506658373322284214351177578473938125213147527602968716262153435729686425113547227750386060536889537923884308619513312582701518718663603399540719982234555655811957260543430804043542729062062379429119059702912146288656862582024100069216145608139572425302382256446739020731081308716647848125827018935106575280278559945893550691493214720089435807808232886870162628412715768603463879941032370301608618825729609817533314931685440481223094206859405259749426983223217842757897165237807958019924438688370601088399746471750165480442761181791248883287337552885091561326084552621392055216843073663881385240084384877224891187442670790113467404828882546775942852030643738554628563938761130264484846047718778218967415658459013468498710162216876888626731246196237387200444081864691120255426300089023904967019202430180443733862100032882257212722672367193613678152960592056645614358560604578587994719672434257404874548221753254466548471728210677770720636477381484745277111457039851407153652968327045262187735003207238784181619795660030742901083482097047095201792473738513499794749047329081169026589198066211929851685255498693181920806381626431777583581538496315549721388468418666437146165602738896337480484514900467566209100894466430677306539106029743087126493501212524934629519970290056224418087000477066978581908936209061307474714699024007522437380466874825408358055084797054981184304014996633654408465179158643149682511745197555698246405518414517785031134321935355978874317009276925367311513779987046264651149260770277348385887219032376740305800026676741104464632492631857164454722100031393706783286836096252387680561299025574913904343048917866356501792756195173412877032673999173108470567925838908622351420331900219598145975064573744998046651202161592077059286225753233397402972037750216814814474818289768727110635711993096750003282254977268342375057271591854578610823774016504281922374975975110833305722911779600816398604345866099012796406021773593361059241527873955753993562736858842343115016008022215140526803744254595453949265646760068454500193428529346001104052029214286659392765350432722468512886438020533151271944148899010978512800741456762760604024356194940674050224037362273305040167287086149040043400765071709905075787654214953619459559552263034255984417267944814606609895258615740333401631302313204269240665687675794737268108075999635576600245791484868100546871932061070875936528550406449232250048152412092445218953957983470402974357643359269263701108489682589227058904074499643554554474146844550214445962881270474083711524843212998172805997968424956426328908164584984401369564517851914644535920314991900676217748959780580287493112641755006443181248907196825431096250047806386768434206446403079942743679043749077945928023899696787912854547156987684260185171036619662023936692055104960535795302326018816759985427306254687207869156382710865807436764257534550752747727142339200379841659551623690858993325451829293824142512239992601902597568057454546946944735948142246894012012657446410443906223715783369647670282076255400628511520094218899043672697346609299342910432183660453288731280236212910797966748721627441192194678689685991888224538831441335625348707486885973469173213372435224832334172375587867689156550881464555378983032751768920553933054439801197326752961851632021310233795133704127543790746216879904698576294683469939361559581806541415084010032819900859787915712504379237426637767444167537635608620988991572670432422832720178269830618069274130371358915000356359371571759542781414400763249169671962586612691277223825121290969682462474325902550708573715971315045112404735833975226884805421209935127468866782876297799882901577153662856441242725952779486064467191905043183825841972892491452906518603413080981361322503006365160444093039191431281712548395009399491474205921629673867913010784001692757187358509399537800464046560807473340916811985590302987303946139050831538207346495537626387400669569627468822018176965646955958900385248924365395387671505092407106932088790267142691451838068897297603112727312638456592943671451826812380613741737855541272694863939670655733629779391697801394302523334756854903426754347207108813555984567797122427840796770212638389731197873729198191012698567914422749180843400696570286112317746505314080705373487737378701688135634650696143942205096433910975926432679642910692059647464787376879080392839176767515745852000048441002204281106335063989549812074071267968803874020775028293563995734194082463314373852905582703252674718973592191120817239134392845978259519220594944917219985149220973666019535860876628048367993586057199517229332528134239499390450577219428973241091641261971244175708935125528680326853881877914970359500633021265946510387534170829976646273737149135900173965505378692479697933757700347199959938417148719631423712827733908395042263439038687926312295970008336056880406722931895281904254554193092299224645993425463702849082407603567529313262683214449086971696889845472453919542388779787194259580431582029121822508523522719332040254045893249096489869067634667827732668292765446280215207343319874312687089652656965860532047007214153308675665674051958283188250683020694405476198846452513771318456953887763771197005229618011443976906959425897562768178126895210864849641196999631387280796585292047794043631651445880208105959820408389750138599370068733392557546136817096730176523860907348808942163946638373773611859936776483222606991698521939971433369614553461747404127313088408786427920955721784612308708215907143849148246207923487950721683722629040991456590836475114345364524664363881123163579862187402081714851924748206312762730878586847349347353369498336196314840478278740819410070451896915769449439912961464189918248463945793873131479241772055424015089703005657349043858934655134939452682325212386482556433319923121912623807309152663504151398211119414812117937438919707991807229545669138942251912416729563000797091074875453939497707425164821078900624809675470949164801705537088196158031155891302710885676785047271404241806083311720727158993734037954076500711042495969465174126441002639413708091190444381475643192197406425222047531414713735301886720788396848908407715278203987729649787418904988134821240037853427966463686447475067691832425875243150131435201564531996613376075826496544774664372438688807501885175455708018326481957542101139232693420212627265299507556886669942532524972330901364103082443375929757923405872011419820097417710433071916361648790978642534457074870607301917059851838079946674817289812251587863224226816351734784699989196565676937246033389962453455364712448883060265935544057386584030107667597111828461330740474048501446765135390563701243054337688694330751550901423128434223525218285065518997660072783339437454852267191598105527178466316120474684172753643399594712253116788203759950912181462466023460460757590643973395659959662153129000659416241209480151733338912408638757171615626516349449380186483987052278393348514004685281960117270467641732358751336988733572833056139252160538495047612405218084031267191643786881727331030093478785339874211530605511066054913816255019150541403613405555321408717873184855609876691933913920686641540318969468947636001868566618999014271884678752525493328468211450220057715360257513170397914364734864019809966659029668748785319199103793854985429747576852759468386497422372670459204108013333888699935536779793447319742240665010290978085180295816973233673612502083618881446309518275639896186482622604207156565690633258448459798547064573819500583618722164767690592694250306078059865977967950728820295104770989725334784582928829314267235915236337438580852807960384758403900996301601080690822111965348198983234655703851924798479959924297693325163394437173727135435809574695336491619972619103243930111805828336279781524461403735817334537831424843786311026594675991768956031801195679034636187640739558587229033499644500268204474891079526453394978859025162810195956359054879387112304105650331912899524243572538867802010895665713133597482506815655472100425616858081203840648857916582419640471181574620399552415272830279502328009099095851522698504408953826116361696094343605197609103789479880485059011321161482315080461697580335022851345757138301038504053687717273977037046933099999669927294460059503559281605711860891139909120012073173437477418443894666873487218983189633800163109037285455770319752359008717480572599931483228670943703333475294807814689119243196496402153182623839606625607279088973326076267752910613268435696405823336404267330114776472541806759607629573802171639219261007422322621775272797767046194140253500706826310629210479208519158370853756437003786868433275681631204623625988769803773230195873615386561996592891618287947493934978107899794434218795295075018084307409286065047109272573396915794068407222815097392254443214441967519048413058209352569043476264124271840875256575558850152824088543788294170303025333241694872457587601701200238803425428237128197455551312605559001680953393771127787331734272181949891032964468897841223488598734659502576592750349370510042363345331251451127814277043984440244679806452746559342502108996530188695435032804326463887699130418988391627505538631701628516001287057662292380277435149445049359103670750877497376682402703786517299217272763560829013516711648818388438749192593283407610587970076539814744069489018115330819397681978352994382840317515698735712470335452184382102862334885094096668833364866932308612449910123656774677103199712053154080314067414789037244882490392407343906178711096848843364336547121012095059217380828480589571795905164073743454534176570858282140323579737192222872111538452948535042840743884386128064430717339002962568168617041343163466761155325484478640750480647688382203865501184582705665266064314540308926156117697695716116999489501247739226381770831786719097939563252151306818797438646112198091544218644983095485115104047732262487390412688531558046859961360541903895669027644054218550233489444006404731002151908091025039664195599097430474552060877531738139440479173618803132969911687764298730487122405067913044841576462947897763145794110461662936059573330606919694624623360019388372556787485642018609116164222154649168682137118999963748755577800438463878378857782639954254769796080820119356011901335137753520561243470846007204689607580669045900361639103360091752366423446348859524551162578509243488031558846866668633786631953518104026657871391339354989937434956027990693739263252750212533987599405992668799817792663012745230605733560682677764795274206450812580679101888301968577529231873025338875371225951654664201764154797658729142608899852775056538333547496204465740511439029727581199853153774587774722244711580262410246123597124135723941726491496933764195383226252206202768098974869897416899947079330262201901031685012998296316220004742077100844595943149412578366697996583393822793921318865474093139119978792194625082251400339391144724348716922343209479417544568553418336752619248480594950194294222762950699943061699968309407356507100838129671064420166636615993042101588732510367283487922292985472162215313968732272997990875266681149001146281402178000723601149650943507683546837541148270640971307507485225718493577341904426587848346558043393774067962134639302215111727360562340180270455406912545224743896201429941397967411841850895359701716150322250269279546245351304052009854659862596461197472577945292532764256772311618613999298401710530204711209343173965094619938214638100492111446965968237466189983709028590604773867685942829347474815781202698249563861307714207727065231781693471449691699169679550330950417351273850990695786392819004842787489073278857648738294173545611109773223734815364393070220726154104975365971566048001450159757689408983033122797749107455940521400336453172048759875475148630158207377603126705731358362529318760528245937416731017024143495788121592237982197183952559389444047057846097398905000721268591895826952366111662350163391985502769503251315557909224045442894249838482316051474941356005782771386229379207351932134417505705502637711023146176892981133611612292263022704070951093185703482043788991037245778939374228361934288618089224987854422465224820960027828043045809302071847276039402389844318715825505009946876693703976868364963166353332468148929426334905627770390703004203607235687767230810782563377739057033855639444856494347120596825269798075967869452163526348364076042893623348440053419130719906882663832679342089870776617133339337600628835542830858680972841844045729159985331751066391009220531504646556269658348132453567423438918676620849750291290619890767684310985598111675003289823229575761654886327521458121013428436324135491594270580416982650669770992467361809273745271556599875174077496397181111685953386087811138122397366360874188085385597224293420145906720796818634362973058213709975073974437426418114747651992323091865955715084954155866305614919358337128846514949847364760529044206160353555189634391362482287963336917725133773759989829652716008604668397969462517521375564606514181743810321567996342616987441543721976119808125800978809460535659262011204104783860077118822302574677438079014733825379239810867590141796996636186184062737070981207315604523493921621653016769626267827812300377637942423944393716926160726606940467897147386039870932730509898355379875440528325542933958447267922686131660899035270393034829530873508578101414110511127039647396271372471274659206832755303289930848504379452253443854757467920708574743628294262673951128401982889120041519165765898237049164014027440568204485741517761536541247485651492946009306470149390573455761774009137808901892917794331475811029943700245287447792402408420939783332117872939768491768675233627529788855010086855887899279536726170537188202948638293504853761373670940709819121364247043391225787104653721385859590796490614221982707254991980906824578729949217723050030569499612538797016705653856038704252872933396742844546990339657758462451674819623173956669115554462935976428945328845938748716479332907914715995779780048634709238711329281178347364097285222862816953369625762104100433061087975090726386029045275130388778185765303743003002261876546023280797940637705349967690450769635980031419917781566870500852367378503806531558475436697852991767633280902914968079079624152779208104081041474278528155771200974733983217561670494281296982698003229461116975951183339866586216612404801241490955705572708507706938079415016701908751017404767066528096702956337433151221455261028860150343579360968663641519397257830776801296196723777361885978869968440489443005218342309590891562373628595630173599029047650244121722771726202109582401899067972465663263946730093885754968177032258051766637233913073232377435258668051209703844978695618639674650700237140130129112507479025889000144129525221830153330180624970332763420857798732781372978058038756853036489467713089120739315270043631809235401064922628712810896841670088578309926710445985143125363194467430719698706179052765918751770035834130011312468801929047156383505936858030792152850252896633700483712569208381655037406602111673120345728517855708863933645538495689182846977665042405183428462363689502361662654989110808887174752865457083691535037207768054839174044328696756440208843191696870244038598969729184443056083905304819561617435249295956885163195274224712126326183816834186470430743996487358477441346010412877550802298304667237996052374394964515843770280435645459684113069542065357513948660501566780735875214682367705451162432322953422928552623944364986796184334300290625549942357313587368297750295716506190612310469192107855851578613309015596686645634744731420326051071595740311514074866375445001742869983477987901772202750945435495550098824326175852362009838277248797855207293648815930842373419372961754877268729910263009796965822555149561063079505878033443257852586576218760994236859204936425570478662433284328819278625634439347116980672224283964030875525266128773882709777256846180906569388311673103933556941560701564196024097497017794628732844549690399660388974769764276475104153616222909496779119364532420090484340395224320191430714621092653105478460136147564363154043252583431972530348434349260505076028080222636632564226929258784750399389973141791472158736442504463531530587837851026888511419243856607471946747668246472491372668329340741358495877666280243886838836982098000198401116581905341876965516431194516872848390649563980177522863863096122663702039603891952394274491401319186940235970036911562055994682451046030268929406554193724369815105261195976351424258021142296728062995242507296240641674411009637321116813359274004907943203750205663244884971091293440308265803506054284280710429599609131348606041101838509824022775993709378951717669998936089016616396266988796567882639598323281741514438184556404237254187228538945547048229378059529046279786032591443871324459968376515810159636925272674507877297390078050952711341481287151101133135470127106379179039564715240382737160152760592298441185206737734366132181273397725427991803414615564099406815160912450160867729474601801788311370350435948611934203715677573208350563980116394291251362043534710766367044552121308219989680005557938824820386876557897630212182187858021451872226003214483614917688197452814682031510941763728095243998610192466219997747230244922080940678888025773613194375275843033165030120649037212149987643379301345283602646444800097269516579417474186206367171640923380612698818005829877779432393451925379377104320270529326502371626075529134351777087144250751719343258642993054054286339181828705379998572930555074396452067324313148832140227200962636499104009134694866534915606709750289545372894683730803574516094994788793176266444528237998288880178799836951034181770355330031776401055712272976985081533565429683390280088444162543441679427350951873688345886328110622666076424600509708090158212882840504151194951505999512275168291000944336212674744696481705453553867686344445519626537978889237679404432393087723175462017164634978258884903916747476186720940396581371937480380775803896988871533445871957432766928811420787165263793170746577482473124440496958794463534720670537258381954870993155699183115068787812751670073863232125400896969456716876381985933841777537508448422214023625449139458492238945799142867253240970870321342196917564614624981161881995084096918984201771384125019696909468718131857425372145777513548223918072105426247828514260359698752086101236630361720010482306232795191238052241204963670162383284803730932846811746448714339241504755671308430312867228905880244429089035472472719331906638796736663197679841616100705647502466102960633101894873460365310433037689021304169238088220227915976575880100706965608113503572119253710699591855512201559747968833104716128183110204979497695873599601252333231894455393591943434758361124919069773782814189690417518289475748132223589782991622966449643915774297650342186968504284985642023059903691983538325417683709599557471248838257440262848386553943508980905497111543656742905717852798403001727334190438851317497405106810136081791111053842245162125791638709213517025695417600035010400118909558543112836999753675624634159493209519610302494600257115851363162016075566722968284599370668376820347919484685652029476693617627924328643194921835166648055058310694362851231591355256307689482221753375104479713179167001972743108443085263888100022839896388096304606130460072781144684145150282769003904353629560060899784471657752974535986856707510257267275847945712043035056846364744366208597571240008898196937738241576052245321926698787017886309151067936576049155323123089467856118702772278251299394282029453088388701598354569405939095493827817655474339547226195215269699229480194175315174832219112735590808719677958501934878088462470984730291506231285125391674901232643851959842331159736083602318613247555947616457323932646612762814637061559627169385922046027178799345188925489361094603325297994115221554434142961153807216266569505685443555736996391026746941672854792303127494608005408542787998672169417223898091891259285270021029993913205009795972318093388152308777705136454514542133142987014134657754906410759585464567504375001300163891207118351097809539000373055095003077510550727494989499307784887634584267583652594212588820573947335182487766000859423328788255810188807177127051910933573289868635772995048432543399523692551621861772982263233732790330465542000167550483794106865470523128335878115267819696559855532637411955499561793043726440492252593550375563674279729882147619743817188696459911785883502883496749638274662282505786467519864082240325906405454980810589768053339082297554675500774235800313720574895499754642711437383882637140643821285729266731396925505712696999738031934994301722992984010126618251585163353349682380513126398291885046571685841692120156886497294107285711096026390872988609191682429283977955067113032963561297252851567859071052828504344796659970663671235967876734689566266185898138351574449625874075870811510000538696790542511558278260348587551133956379265850827590282587457777885189879197991026469253873967165696864538908962393818709067885738089859020997246832518264227919881433926581209407073304070196697457474500313952980966851413863535653860754965593557137101986595893594992840389113247145398978022120767706668372998017421745726532898130570942579802322041953914567887731125978512536401517719622443740474527535946001903367107028095129265112844562722970903122732429665495723775376256209551768879101507729242340678020108656869335547749123775117757910731005450975585143253156873994969406786269887102407394054820832720747251909668001983889579186569304827870769604199300248772990495683080501602855740182344931282083148688016249790621694011043267045264298736440745258557789422995791098604267160433659708060604374482104157526479748832832162307331856677094477495180714262672912958789907760034489362975199728858376735232156083863715184634926677164415038062249157818529230894162470076058934937181954184107100290129973091775604935052796436303455947152730950647393485473831178637876003892572472974786369291928166826500309906636147014324925569722304258791323270227555656090224133981275914968233778761304524847248704943351777259229395811313831155683291458596867676736621893562987224796186769704897351148753514446762335223034352898037365483805521516547712486881265142524201611162064374147554495953123652551350056107218980452041004296614616293208103260907449390865937755449899536271289412490259337818857006079468139477507011490429408771800701441914535628089661606479076754349513081920577866652754734791412845139621357436059104577873859949540070561881293122715708427975065514083689106469150493203989550166246499525941881194483423529995579522154215579402603130080117312125306163758144130579012190358602702629757319491426464834037095251775477975397387800109172267481025957392183448475633889471814627927353250750505995873662952684220816589627797616290603354088853334714301139343716832078105482931258114154652441616766896214044372145402430349308089593259778756343366813129731543287758521503108846472356264356318076690126082466297510625807456981865874098246053058935753745493373395976122906810915138438750133433881769166267010002546794527338377352998435930727013690539257829255870590202978158269464751299310557772590863111055836356386851847041100407081552030893042833281797574823983162801042190363674542858803229085157458502430126337351865271491122181025141995617462039704689406863138572862319321441437649387025513818935455467846674482053127053185162097922770293101760680426817406539546889790616897686531808761534353563342381369039439581655367625627152747646104737258301581764194345734959056172490855419979736692112405377734229034519226456890688245743215890589790104315012571154038940643491025447600275832073031797978888289582218751364357727810921951401372518593768257573144745422110578094718988796726091397954727525731565483358544323884635516450181446183230692656134978646958216314043816010393952178522472473662557511601818163736794422799356617769599706420731178080676536295838405474082598153190640162858131916488931385088939884274262824282135740147476946603264059263867255075439397337868717455576409671554691536093846507881792273348278819404555658718712941125192504693512547303482312942893016384242281536038218075604400869731548175968640481839519178243996623562158629471954795055575621495204136276566455975987657154853355817496593952732504413691996115101768173314533448734161849256913143069418236348050490718543590619372178225209358087421570061731309358532806122769230459511534311856518151995314841984544182885554769532333841814811997855440760577669816310592304679122088214235232634741307217948792193427802023744563701094179578192395626770547756448188233251603664861143708998920623766439494518972449919899829699471301135260667673418995597821177490598732321257607383909438351375612047475512709044231181738002080519864334452521478055751925697705783383033371681875082900690787423094456661357266119778954211210484586774278507004148499635427140938378985220065077352671014562714375658955951877761425345267212434862483963324439107116514796113814658050931320298505839085378700975959965601800435913967356302246007644447780669692606709819971005178515216433808401156791040204748622091403222333704899732195874139698197043264065564416061737373033041670208984175035621946480102848550595465703435717784365177818034955689930469047905997316145343206770993119358372270895132732669971055689535830167782421132451844556321685382239105913685088249607312279565248268219382471754880666571701531527468197746847840997027404600904309036997612617966166917896975014115977514115722345379894166052685720074406702652920220856157627520810624709193753720381668451771886094462409138227272816898335189941862630796018318595003507064300660041747096446791576609880392731714049473359344845733824897438277142907860119761299864429117684981372956052766286544750940129250333166355041342586962236694285883241500533053737898610436770352256850552058854123056194562352453859400916178612316087608574367336799134288279187624376508285402281342429299941339138262418060085326624660743233481453798824368713729722026557823311327472296311117092738159623108548917783692215595854387861349671519782894480598272075090780208485065135364374667830367983723642742485892429676332955583356954691829796448208513086713949224539299052568818490800892034956501975286877831355882978914192091497745247021903280706256453704851266029324220998167965353500303960489911778024204286375069898815413780400471329489830590059329751148319650432632115280894105243155112278934312113751370611088451663782522878196080526447138219389181458003812009843572856295041147375957271188258149510505275536627619321977166611976148968273563946026233606396912888548456898156178624663519477054942084687459973230534813739371302678033973585720598355692547095269544493667191047132420854018820201073198352318313641838722465170853284637816694884420333265909348976577791272974227246615777407825077562116317983775702107663017541294121435404123188100266864131514645262089976469038806873735893621611267507899792182069337874139765377183862848999975792665607632697928549655327734412113509813126745163619630677901871347954863549294098576946728092035295773234983636656026943460824078954599669115501321028281324720275533046482301256226612378218674636431327098403651806945618485524843335334758846237721501598072934920784947855061617752757150163769663448972402840095120178307521981139922587379125503181256839330002199769437307963770289929716382253186866202996729437008359411560811226301196439747701741966501552559699930810733670188483470430437097777208673982968269209200699246583585340762763184795934521864660678945981455131552611759507576810291435112177475445098318231827856178584312376502486121627747937366035394331063697384860066050433425090785706625144010820716311979151131487686272572569761235244536110677860584723310602052544152865040094976185675322616004475748027612040972687593505158306204276220464963988299601384351162963393762189027691440511787171646774295517528703340439233573701656261817494637047809182388428732286431913840326570500426528917817361285258913816926947703757690926189938976866780505250060278086515607124368719472068737787176077522423650980653196051086544042096140160688760617198866073600034240624440544257159635296504202969372856405107196743480444785049734146271395481195653940799652486577257214115527200840235484531785817373716093291426055449461127158687910675254680808486508332188108612053342885761672688406358831071196811581278689249903870757936917017001920074915418857713321168127272869829823596488344769350580398805466593886853862595690100034695494376273413504760150526293693952931750991776659968692319221698774550917450694608242697188962582172085763083742657423213649043444069467043316244942187936191854825390612396749455513822007507911788370277445720570317654595054611335466061968689502743993003681664292935757816426155784555891976722976350965390902137671001975894458737727485974747515352378666480320786470921892731293868048430250251232018565426340162892416630528916404471721362209333475332282554009114928433690689182686773987136854433165013472598183870374015077446485779868129484648615003505376832908784735451834822967524098866046267140853684977480812851687657943465168944168531061912956828634329342634320680215479902777163276717423871815566684676066840006869767336204310403170296197908205447893869896182155850745431451019523802249391152304738680407388882818113236609523844938515758226487397750547134464523724314234271594757519251663333844880569194358760790365229587293254356344662080583558270608657703881184183667446058635532216979300691308094413947769822117494529979473972552369533490696165481968901492920041741782460170555952083043171227643944104911457788649940762821931686755837904047685146351044165125077968894472548761740618905345158816999183740409139767232754549860046617707256311663410340774066706123734700592182120045161197949964755532718058036503495367502222213588637720938835978743478116379986431119137263569020723351906168673925308498740900619415813859234881277917974327820801427426485166742312497755938467459184226338224809130887581828514587943711027238214002801209152854965729174828726373495147626104404264126916084069220499726427504112015910813410995335179420964520339175958001461413606335982623086236441568055471542302603785997653152229292530905517916108134197382557002954928714136126576019132255474864792797129444394339646301251503788983993312800719328106734213443782120695768254993141440828842480387670446898827462761482093921106927406815796045601617558526507809800852570849621603019238362614713510022790521627060376190118095837883975389575949583985132654708861333156620890329280770384194075304420412762125233271078695307881632392869338368674479766724038505805706920858653089599212904351685991667640756368007131780893677127028591844732737019528856750063699016583342611304510165900450446152174949785810162830203781817516917010241909471195704725480558625926377466602701666853382732287530450369606463962013419972456825164771535841713898902678567203058487440352856338405020375531826114970585461518367166077258645463214271437414686530034420752985576348709573395938160784002817009392949680461871338516524437186911555439578178919572978769323079643467319295317546554808473783355659530781554457532771350009083583922256911243636946344602544697454823877640421142129100148203122885555962502257153041604262140991901266197193165455807739765939497214606722002756305113576577428942891539248207513543032895831738853812484887874637226444012568792559296380679655829498808923661883991648418806224517741359609429913715619493208917517518655668065069170828326753444899337661242898075725963910118562429723474988001145533608718353697133133733010189593428722814925539459621469108291782517043178292439708705520995203383539612285745903234042574375701779674349290891056719621454789643522057974213789021772414186047593529321250906649044100291392358339285939271077392607435389281437209026764183135380928572214619336574879794878158677844607071479921646930893878560612393043451447106487613524425335742950607847116717043301258956557014549750028254470898895972210922067409822328721880220777117761950517840339441574289201868191728740111748931353191827296499786555724646306518495487925301746456550555807391484927889695755427633212999075832869658751893423724475246675985762040334806823568111508146039006143248990817381220458224176407879557232991402353719443109401031188341945724933715931810044634069937067035938221440432830907273312755768470561007910601603518748628884246437345601391922734564316919923756140389083290007202035817823469498339677935644553777757152953019395621363230922276564026915654081262765457745984905734114447411755720256290196552497321986995311038601366190026643993355283742713244349598978862835712581012994215025607903772238553635894549592202173430747757507507372625684814750054206704022382729268931263782328469089056732352245611040137564858277586631912944315426701640714041294269087976768554628256759822997847875889987020266386635535704556729675142628797473338694029740199902946095855041741401667032416677373619884017391457812200718293740935389232047409270393686311549429635259641173289261408257054428998639826188556005163465105856064321876005050294166304561974663846772366302576901823455857146634296827183210804443087992223498152923565036783622274023307788119101589609180734660687476797786065754299745884617024682427154052377484625651910386735500465335551872001423728802756635115445754626778364933460604818050458478232096622299182162017243989905319170372084451088092751450719569620981845082275903368176400194300436372555915029492724677999845275804682023743538446217680873901250013443225300001486713652230843614455438864647752806114775293621651325565953645405100010549936290985437609698310314919325028583622914226589415312413206914190685804566135177280214280845441307499693347791863995738664208279609526955396250895501291722356597689910610059995084906514062779318946837831201097400405413245231413199705514044084744058836519472468559335279022615844426090877089386329260950912401880240167608800463625885956185054369510066615124317794404558082507146132447994577750300525398499093023757754355716379941499337564114899479736141345937598560229718724856951553122524313725826595112256270579710839621914846904013166013678108873226984217602714334299319695592821507326071024983763740890335399919200493482386055235866277863094077561071837874595585980899840282094930605723911896905261298343749048561123352895496924978460381458230185934291335388309636047176973969470752006456174767298527240129732997869758122386909909397501660147593283472519675681949717221324436877391337013785803567126576404430631442013210553772212366484000941974719131475639432424666302383510295007405187623514769279187696641884483726634154423425759810414714916349272047013044331700316140097277886619606956298105908401036819697597414261466881732756916156440771687312037276422515042417034919914379550961438522579720339500003174618725568201073102119753077226000384894786140482211619483164279819128553701709057930730368587885315465440833099107369699767315784139752839026154283865046514729851871995247788733144442112553001486787519149806561859737661298301097012148854742389178905432512577225091169551555536808166582338103547337251810536792903483766705527676188437995749371818510003332715252587723236848074576084657339565610861547605081759058528695196992931346800845051974902816784823155399873456805555862881009438401224727891191455264197074230470494858196047894884885611223586869755678875360617017739861636530177763141466547695048484060343904270855713258804769291856062068448744828996513715584418771991728596483680943391453703456859582889839557039731753645889157770491897033448836013438712636916271240724459326689599669059688644698937681565460881417575628828029532487651626590887458838755559440300238551930985757428920748934501764209317911344087047632390812657232188216551264470221253450966309241816352287022433728574681009298755062714102837136615575928979678361604568718202515404894356841066767055941122874279213879735476298858638946502857991611549858934475058493180320783853351810091671820048238466451192752616582297678305702447557783884043306068454330589482842251820317327947657310909829210114354673256919751641054831314342515007342368775332116996284050733551270126694458585232224228161434163802505775657144349125786532299924026292323998228141523928471961381884661747063678283080060886756179424883212013695592728373772176952271675335214090492925614423191178620146266738586308439369102936435310995673921967643539289160731042424547374598723950956523994747052812103122829138792479394845740153287784742891844380367095947800579939551142466034217614529464958013476821169787725235174426100234295732737761810331152437202234222558592416659154196376495586504073551096983104851882664036295032288413633272756330386096597311518934295743695784565351683520257817838057830174240904440376309393390354332727524856364989587835055362794169915322410020119482805158417982747578723751184182947341368574760259230832616010921029128548039444588815898218129257827999641726773200039452876580852134230265537098046122656170775370064444579335497305807510289849250060867059400116703728854972662224398338166699170971309175918557933526499834057780821040242305122672416986328708129664852975867732393399493438861204178494911104465578248085531366391307821545648956786336463403517881274939874308285984925271883595022801390709008082367739439301281664810742549735710768892463408849309192597295389212150333413024486444473196504409407548208247263014041010523761575206552760231142212834697553692215283767694544023770679386973381018246364280731842446137627462476105154167489972233909097083838847029350593394590070037357987530410938290354284520701235226511795979300089117355578822185642098206679901740277227207394421693735787941987205028867449049773116102819772678099929489232657978450005645181159257159086229685564237838825418849542482051671358407485471090205554559712122195152763111244130371045986952496563532261816883055355507058365137284630829448780910342062457871944092747915912721821706141646091563317223499144072070963504713866219872806639849499889171306172426298233003261429450388641049664521376908276743768418638080405070002857670243013420103457901622208606087609290006318288223184183280919450864570554142142701829341153256452504490613844543409732844822597026399874662126213517834311767411699809632944904818152984353298531851408155624262135408142984123353312202425034144109138083498649187818249360256001105048969201696628522753892613746962459603358198717491109131233082902695520172388842936646496175358499382204785599033788014675052734026232742222937955416695051949586462080392998505434735590995462674062727165836418812168649353997626856424479390339431079242953906124154904315595537624247181558918048177191734563454303969541983655791534069230498211340514912558468041576145683197609090380280026972120438805207904557803056400386366277754487305629303291904258480772688405240172191020969663062895584027456107948648632225019509450808820767259019163099837506786064071012136888074036233258178669421320512571425686875236549467347663483543012528868183154053359279349980541880235764891636798691877443289017798236550236256324987136261730339394167023205519367709146429918303518561090102793798589812546825344178977170882197396051550884355794693365264852065432724478773094559954952329072794428699537576247983503400879336911869156267469630653569312621411916871181476281664260339977173023677196187975320916018735650376139059566506110005113670793780143963673483728103009207665566802742687859719551109330007857782662927461652133949229819814625781729178108796254232787487817256571036204351113269062686106517779318494984867984164009658052968734178457671250589406711491839975136173884471557279180535377892575900463671808037660344161628938813494480542796398967729123632357064980501973293398106817506010720472995669636391828955746724587681625526255754948051503340437147962658255928833848484947660630831338559267412784968270397269190916036560090889340407157039659206876769572566101368561543388892642842291527270594942048005413676150217723677798413225058830635187045478659538518313018572447517696474408338144510311495649567971991855112444382526493139310144043926083609496216611134363463486084582805204619621521741725877183051164108386425666515469650878498017262047286953077562476476299360514728730246217069892205934407666162019281065234390375537666507461837354157939857118979157335206098339761748709700362644872218126706957566904612783053874970129507219098528118007462985869574175175865014508802568166996529290452491711898961965577218829575456286151591823224934858653515354507422104704083203400660432800473814549727664504894820183341502036837537917969316522493557239889733449181047368464525947326923431055014902452130246374280748980794461885883907761088412985275066233314626351054563966492495348056375932175735909877598960879912717331484568899466218485078469252340662791947464763781587424535711714833362601971717084444225942030921980015801184399667426127279921336588372295358663264208823924289118618685096520511203244700802776158621686096484779903330462513087721403063289803206964490466871597902470702164032168395612481095959900794331209930142359161552613969253543260105249431620659889900267259483462645391299286133259104526788495924111255573674439560660457309732018768572636882708987164470481128140581200175548230327344538044588666618602867119050206730625973849162089819565354107814855607683840346038725908832415298082382638228898058967880657651045471054074525513747098714765997281304698098740809716623931832973168431663141586609581391142102006797247726320719845486384488672212811862665748711382303680033886149846120729151043297534743015067393083806754144330341976793436034861277551664206191686162113774368051603827548600990233776692090901839256298195301880537282660147952287754573103394932021502150704961086518349097445852028135506849461244377560854781701170932449493852611588826386461140339404499297942842388886552376225723556470932452004142204389021567159683527280604952306597584572119145658016459388523335273937848722126348857731182338573718771022556271531015496976449835484003681032005183994497161719395283857315313383896665365484968615355516898165201746753634139539144007355681118269263221046281921301409294233322882648400423927665856221533007411298436208843839828196474677180884094156777297465896973359380603882330740122444888774806446380526407307053489354247759140857500531283178524535469625376631645410773617263921572178187558283095596342666440840863454048832408021084793522330829856562670766168675440353996538384568732544310457885851118571175289323067900327374061648335754428909437752211216645390649491051094076066094055238943251956214707297153058784269091031941617416008241037515019741257396246413790978424982906990646693997082711420093948203139469641922698061640207315317002725844963980735198507870851597932902867792145920892119115199406907935341764688235648720175205303971622830647563353795935342945639485513258832068749189367385849841827527417054281358305058410956944706043955155464406199608781362127773072421348265221265467692932007717100932634584605815439290402420289836447965766585799708197524654027993365294025678440993886328399533938422138172904448604709226221012655160959853878263468739565402399724537347025736952960453754080957186983546467045420186759664237753246959424221785764227538058368140017826603433885689858868331780013374021857663549987276520304189826801473323759784899980232413561394122023618412202941175173629044899931849357271992455552675618374281515653972051770745843205283809629356482918084914499219814289624287065771211931287836132926873275605816042526653544551051344014477254670680985976371407740408055218209383249572818138776029263654802443720418975139105097621232991269245825131333454518781312152042874214711299750670118943021307346479559938044516185063896725682400611979862889317009295477207539918610451613545891981419494965469419984607253178285043524983217307860482516822478206458368964935725778356004678605572964160061566760518832907072151603169434107449069404610012839150255591514010339557039793462047802522647756718313654512515628777496991761700087868243847815975489772999570083571539557633009856636914193758738365293672442506348075212199777971041161769585781572535300622551069901603481601094377925062055365789449800226447938351244003897078565223364111029873975546476913191668220805043692209904465050753346247807019224418464583903419905346183093365653102426726981281813974313367763878903830835846969316638534966245260089424821408263150055712404313541907885971491355264771451365056891758661904218669631306795481973391426734545849009926154192928236916497509685643717630720712159707963771614807594834884261421442633001726584485911435340674913482052307622056399379736928783682511717225943526888575541695050187247097071234217101840936698801207511565458314653644831093133389441640710990632171525523868286493491300888177539248487525944364702513950016085889186440919313380828289351811004788532435083994994907771775905815088547506656793357997988762940470407623615561853457097610060392711069805119021223779648241384460741029300276997695593805078175376480046297745323487421069010859981482643770937804791111941973170962162330332225386574481877893442847910480431723739670666437591670106569852223284685924744919312140197319712897952583569088143137570610488761979417795973131907886633643151954421431525105779790453853011584858275665630370514694585813568088349381749322798195007966080190969842806827483145203635820296206550649515306428354325776591541336140314180093747043936860504883088637667678481150115139462281520820464991111779349516261930534555174213260208702535493713195890406814195054106759938990337286176807007526354540903890815375098469576696145008380178924994891621400992065613437582402114770861385220750586861665779081426441406023384948394999248847482348950497206156635781872892293487853743495992463656361735994288591147683005515802721715493528392646754397622934713524764883191255841055339453256622227376389179620116410225745524482088599501775970258107349369406610450184030219526842368862220379388608792505649168666899647401620765637903642113381021587050615713689462448663234246509889990977134179603762302896700296628918592797397024331469546294106834001596964272646798819907869888517026528074685793400871140354448474033652243763905833583706511023771163200666415427521060880193126597145089970761496532985922113168129253459856694491400877636873555635067060178296897702908624259851956737652594468855431235548564171511435289897206594641243648353815428920724948533398237708828657764242946073001682947228554864334904778312448410410202589491626030082561380942522662779761254783609356655078230673146240940965808097830304839254535420287312084129221169957060299680638830274639721787268587082773704660815451148369254845639285302661763700302022661482569724979443046263853492038912205019351891690052054512517839767615030948339393908700125234279727728007912552187182196841139222357271224055305917960401026001824606081742530237783618553967165087000807203196360744838871126741462209292282804452441042971899695635677647279979985669078672992392780144950786853767745923339824671824777194618133681104793391641104999806435352085786363737195279991925743827698056952591728853646692959115874686787923968827758298702947508402034272751999131278629115406904117827461329781443424713426040812403720019424028281096928682842010931817981389857425383545901428058367884355717811713551498320149572873469662079113784119079654425621463513144142183602823505810711669460615346954442408595136454790625808574078555005334544546095329636299504218459611492396369871384445801522202868330463744298554409563121356972900788032874936600223502971608991418884052703404542361611052200190676539793306166242317806307775139249632856784461808469414504848165315512749922022099338702129988007414012884971371676211222770047870038508237135969483514858216368562028186230424070743028806800189984582530998465229557152128489755740650126145464231142795019817204108706139726835884318979269098650222036356465802248064383413068011220460977411672433188745862847172636829815320859669060437358071301181437635366351976615828800376843875753493155648992772978301502910666628741265843766067094744891386608249782781359486986308135840135820325329795310033714482431318941198406978072642837574497273566664381333216196002513335170358701229482210854171889408016226585140522545955215999180302317634347675645332102891648687485793149407010739510912327604948109337419466791912900360236592659665664791176755003088998465802979876584742516613980112086557695527863817227541920961452026638875466864266241879119806502468177785760588513133826027945873967573956266603345579929763641006204114960270635696071270485454988280977953493912874088338651617346813899979860468450700956385558569478906513571265533682081488884360779794084825354179455024003194467657202047610496805348226410219441513118777666400353768130605556602191533512771015604228511359683642321018530720361166922875828782371183563959092504849219661249342409217768217787875174084352657941239705092217500264322220718493243359443576640815589944040865932995635349880295763788550054400163877415131431221115781395218876075786792602071509591458498763235966286041657582888823750122703563076605610708992581214889490362161685497589276881525608708113709080048239022071418334568994774253468927153916162663064877436658990574540188038514777245972162458193024795915542801758165367147738537032873387098340836485420801050360287315302772179975709791698776742591224172747700220386720561069511449883849330286626486733280377887976002768240439873330686694106695195279047244699105676004762337082150551177158473910243067687288106397477792873523955990879084137327731352706183033474183068367164480090642890492812550872241873168252669589784769754749888999485358538825435618682143893001350046675333301748386392258733694731292761953442846829520363876263903285608529224760290643334565256925451380894532628658787834592710780144138704839146147015132694968067406272828542790777552775729860234843178844232932383719498846818793882021637222617776864796862970000966833725837919352592829253140643060119480954433936482613325076374165911507635273662595215080253008117474719096513951741418255914076589107782407098589214389387624080815234870986556938649416152422264110572925658022294464752068819356457233583628864927625112407780391489619875342631855994083032290327033114049718523444975786958106374865729722908686299851287025024919924545018506371289188264119917542882578216080726196677363409957364224655632327442204985650030356618828573060279704826199417886071521268860281681559162877536234123822232798433271810064052046781347684541452415949716956914387125184991038948161066554966689932266432917899082729931463071171910411157168858766555961737025467644316034221941454741604356713517701264969664404620099483902567639650910427331327269886028796335792696496488298120330573531913759064088824303695617003164055877596328813407664848095011773598577974354731003625631940488273307411359246852492224837329554377674015391830700094767132877882643366121625990210557596835303697569845876757793088286873624403614111395329232522081745360436862928315380782521023735476621920017660703624256585140918059983879207047024421029277667397521685348604358516311470309237620597559459354751352044288831286009916221169711874468860947599523318137899832562168157645272448710201956901783138872592291184661506288408559276929553300264712764899170273422400940867350405069769294573161442792709799144091915815081533026914188576570876632565026962026237168973972714299462196359825948844903362509412542779568680205886323752824505629932377322349711269156123454017336514573554662515237386243342911149597347072052662025610337951881390814382322028929478081007745877149327718884033371741016246598827106587823704088575644050194020826428120217488128811068184389082036770909959706014873250248721016377850226471364722395848054573008227913493430846138671711531304249930012551711668852843139280462383445905789889609975142936282192783813685399758532473792615362608588747596814953942631781291534367357717847161032121039109938378692814093754089437935979834356553424986544981044244772589873646240164835335220984730296372775240476064389242911119037974220507104904252675270884330858727996929027811525070138052106328056057398522903061846149763805013045521437864609536535569480996845516271931611813539088946031216174012805010900576005019596577031961851289095994139158373525922551287538225661499579320659868197075369003634266880208352316278473596444541810394045577221499897844470778269048858678919604697385215416210433509296368237910409220417197407476904853346662903979554222660468991860052468241466535980113533765650082892276492782686894526196371311763226132795681185878057829157536247420708336806913905100268163024791049491305479704266232662877211874691858534187351729923822704458207278572386375094386830173814708733225307506688774684094423001486460197970398313885288497132707878617167331480699433721108206529044533078289533788474437041566099539010216801361847821768365296060436816452635465465312144081003029511976346163844757393708739494060929349938687305079611375217942445142652780141104463561764283803268825126995851088194551763426485184897435631281634303821955725220455758158635679127844226575821403709006359345029778043924040016122979387845012804720697174237112585941418576048931815442843089368103865139387235430483104801115928068468585197681646153173965968878321794755174669492372565163225924527147783993292573697456943954037759549859372599555062238165668136056223847682973093937780829387708306673264446685048992281787412906237841722254946887607229334141847388788332484179602602643546354407684134009290765152196579916115919870904939783331155607336141895010159503649640141593769643845928398941660556675226456347486413983291779124261169725439606302046135858186049537906316120787789040780986051109952936403773738060663753932137363849533367892266844465609157685861395073760638688547744284115035806331971589017212192062858800842192978826841773154967613991855652561181705919961756022159300403623081181589324742293149647246607021069751708717079111969866717441706825727706320342461092205243106032832579019468137614849275684160279168125107064830518054379337129638522333343107221543917830436347121837022370277713267681236295775571074127183697209748417799588544372973488650418638632896659803234868206621026782960673100732639701605848342128589614905095827918875278833213322532419148638255438732105129725655464717479560383769465886457631699745326848424803516170664340828915817186431977926570533834049374296876874180070881955602189824119173866134740459043526617853605322258885448193023363851431664099915965635104062736923229453172088944336267224214372316643628182721464339317256121542440433217862722332901026778349514392765012712963195093552767530239943156883817390485017993129632027050751041411530675759562560581210547939310437112218900006755105334776648895404118461823115209366946072060496488219618314939902702513301815374235098490881700897442508826765990751075556070932259741779048920233074211885774266428597597265667187851764681047968668175790647121742093933971748654380153580366318069245727205108447807393452376563032692887981744876370168282686470178699490266717222212140268665286228842360917432788491905566751025916751185687268473461582642255946751252566230710392922376817415804112671535327725694417903180957128648482373561010542381873978636641577541871075378392060756202216403307723061811963110980328698739476451127288206870987936068864574449111968749124910982454634843338655730688367695048672758617672957111357657674290410841485469090660422534618674860367331910747814552087491732950936430007431333728135124990848073162858404767191063993283588536123036234071181442520932867682976908522212626402230031571783954730656129649679101330408577880504702600477864826437404383892241725815716900846184415408552755421352301496192301116836348475584070608837907628273037317521187621084380778566084663465173827337881512285325648524679709919675440725225859468014975979334810970632456924597559062825949364288290801688095103604958486457609082727998034949374460807130404357641338847046397658420443218108339418421869885607039910065114750845477921133713684610814052936672335027254013690846069380981071727060572099360070288290602971794541310793578110356096132038232214285432417685378237686432675549416946225858508724417422654741475452463218520138392421428844591319261516481786149108571001924974945226958635227211948009853424363305143245215991456031809435926067022781365872460461159149404881913206256586039914557723763102411099488526775221188118091917088283074839051566032316000705334535122014026484835014168873695639322514466940056133821142067259143849891066655721557543603778884517353386475158164265876256869618734008941235363250985323883675129380231539887294454150528161189870221557881261034898823133830456762858266045872469342068038800612180726134785916816888142101849914754055672382811834208614207990319076975481687082731565483015578861341953672970012152417150433617611610877875292637439987624497084077588893079718470553684281221170475296836550943940724168767826232778039755007570793682500192262033707518117301296705198814418947102128926712453839376036011237111585295548918003340101235901453537140339114936344843235867713328088474455042108021152506161111292511955181921390569401194835380750250677802370810577503290140104773101371635085349981053055103939367706502378433903320139274955143247768412540182625096655839983046391137517201422370614345891000964609789069888003340110336264321724895097178588373916373739170785120311862716028518709390797419438749247699201763397800459875338339203366464780081089766551119646791118078951824922405526720985884166937827370328733794986645167232410822042611115082268855485776979677630258719462914342114984751496133463941871261595368653572904471702381717468860618057771396913449784244224653530643327836739639827449390140486236021121811500070044247410587572809813999032705789168129799489032708231949775147316614912143516606258101817446182520905280686654900301263732932576573043841856026639152208188420546005443326474794190511628894048040922265025615327099759207143147011238942753886544376959983457603891521792455222500738212455549279821813076923065858896825862424998954184985061423030986340848616104047431064047335770805678205078073316802280979691407683712667417744979631388050721521243971153722411307571498648891131584304273361446108399834771222822352430666717625221644398855967971527721365796857175730463591302519094342979171802949785793706225463992902619779794829317429192806691791174479399990941924465949275661001806581310085051033481642416282291870152751376082232716121990455165824085353451361699310520774372759189617966349035620273451605082716782820706304857774964607451436559644144627569784697720804598831239461011429751748190220546390721215189682949567428960350331283550475227462503648507276487115003578523930004595191440202654722042646644560428848929475652385485545006786381034236595934678056198968160868788292729837550405729574791011801633709172138935038633274331534116768388417511414300519793831906591631807648865278184617108974278282132360395807861631518888251047052875884549926479326883033214787965171544076553709317589805685496465294275232448602363475755823168722265142327422676556518906297628545360828697083258943309512336108629573154180007874223482406814023895682805536426954894578732951684443969646249208548981236423897181188267965950041033013338704880810377664259545254454075023822644603969961329548284014202250502895060449431076317843786169619680195331450660199614116560693475504536933032125397687762944716783634105090166134009689308293228748313523488464140995282495198309775001923931749949599754014797772065063297298462344672614726725800745948190795439956518973682275083825084252206656430891248426413916289370616832624925434544000423850876354022250781177895084197784539004858255402713129284715225751394262764589009800419889945491587625397209545647810868337221843273415882383258697932299784452957313382119684467041666154486866339478331976169385111335659363159979374348043583424679488180293752239578734159869963311692371584055240380201023085018353308636423929130050334903697334473593188052746270270195075727554947549466678621879183346317152771914858894811780455191381942846298092609507759248252788251222790835705197367832934613247199022613583202468756925846910074828780513800845021887107413876655991024202988480990868297908418764220232979121781060940933575171358605220496572159382454704186435340575015874832192650521304530695449391247369397375432824217974882691870537517226547882176469173397818177966087692621914412642552856446560642517682582994276573655534796305478322094778471508910059957152619488795920070351836117699054450286429262690335723109593785997325175634512942442244998066397950018579223096083512186188527394007694209101371807243492198384422694722723258392646418032865948429359909306214061999110925397545211419013330302941083530805475927696737488991756401120129831707561511295853023359775050241540487307706755691388654434088863890696363470821886493298838666002685931180685949433975970450362627145955011156163723085218634146171506400786830380490894557967957450387638021100635953443736958927649496797095593693612443809486124878281150442763098336956581663544602669780053519904954521175549746619789893417735318927330128565440183181985229259765469247582780476411385343014080945805609347240793674390260651734172042160812585969207116633430868458219101368464465277819962082779447129308728263985851781072726183600090916001456500625170753342873725821587986064110921116767325361884507578014603119081642835936275204159725497622068689264877555620015726740613465725634292739636164210271184649149176616803177892305085807324824606827743798231407896220336007700251675681253492768791803015749426816510352779453474658470527614085210612733338229545799526749534675842833181382659934769451104279261060671823829197305017074526488081954830364477128259726930135659675748516003520118069228505557287501656090089395732175240582155350788850492051974901078659978053897969348049184164839496302442532162727964372692141502487860793600893963298397282888185245137933820813987796564556652922243546261531165233954759577279198462360021757916834396804798047401822797847372487432836733535219361960884203227870337651544193362140124742667714030280780683853925087414044664948920083389752790715842631886152083946039444883219501924209686999150781849556732327881563355164464883973155217172764842552544485938248511285556521866076679734212502276949923041993865053854192580203577968859576722948586346641529150687799370125433735384095818102156157914204382063882122615819971496942982864534664314117076574365619500728442898386310112261035687140866685449804265819397850048316992259832037810356966418790805980960654236412024139005922989741991048243249706988913404106059644480178674188126800242276608101593856953239291055194827680011757632452050295721885217189965386696983691583649460808629524947146202395910525519293932328772735245664770905752324034025004280584965556950623832624272408248297485682635511377619026746865453054013729085903246411586096153300013858934834653202260817382179732580217449030665001190265250571006142460243501853782525330319091671897133437631821142229372788181831903893199945581839306896438571454942264116016560604472322494323268815923334553662302258868557973748965526916835261769012773271265589790687006001549816805345315458187551175537713334681035144158627405095861998623826644036093856782560669674013371581246578729177955285969195535367491291474083707846049301541138592236295333090652792569192372102798209991526339999905831946082103728042407113116770758261744266257839183734646719142981267954440886657289377925000573595600770203502449608792912753390020301708833082732839361907349996984416697571525428328869621293988442220728952162028924140717868431209855172632086634224119689732154130678353925819156821898669153078555334304427445141225791082704759357216153578430044661763391826213206694545269506450308597196961197623664526682641795804596003544069112974288966104893329035369589794319126888282128983401547733959432565364742139375719747030015872924124313733297820053503405871955604281862143828041017850631943306040310596100637079894039596779138249950958860390623772350980326315944020786378929243112298942227784299187850998048070734668611569825547796100241296039923752361685939926514573674295297255343539440670510428964373537437972948047176174842772749100190161416598658190708728916304703987529782191973262614564553455721075162846807986156348595688472754321435108342537441427628228412451653132977802982841513182470623156917375490361243977327619776245417185476080767180222934020669870700440558669144106708957395472241997488705072856246143689312879632886462106962158390934429865560515784389306182496043138009860465823271866927594956292384025371974376958584137245264757106868925349171770144087388357312212690061152475235097802780786741588988835012336018893497946948269932866251316356872482829745001093730761682120051854932206356627936699373124032848142821375220131762844458987108131529563380730560901586877600117780558174967494944298159965106998140596471318688293900409043305419625306077220448996231658310477968654452328518513865957898319841347320126872332945126678372468115993950512404346332548718107742384697454874375503628496938019278278984189086318737239444318124850818283482714600174764227197349486560890706363990786325264260446813425242749339548608807523798588584721867674109737314137747552640967615496209884403612288054560484851257509887123047495321239842450492449121168606211536497277286968134866587748892947461660339521286952847491502740008387005300153477940649221530074124942693057459722651596153169358413968802847073908346201400799986011586823583577983888952810957741862781458882126320757309487437781944790630788283062866375952508560769129066856371487105598839355200080273071559772183717313364607498843746029437794797725846911841866519682089003061781293504940426114178127333316793010298125609367159023566780476514119661966682847781761031335667802445440639957892125882578013961530307044412821328687853891271271347006758910728533826205547142958144777655763835215384679195336671749281238659866227345419904502488303283156602000637375136405050682209942502628330733376084686889488999862084849953165533456732841177447695114568678733066217147994787500287097091494557838190508911886550356056603501313949266082641649786510514130030762361607670289275997382795828732539564138876322755225417331728737729899636053888799956212165080520893782062592859807692122354940045758807649611765059740074456590701801241186761020101299899284192078044452934151166789352759286714579821696415340156117649055112455423459973775740504784511452385755020141388071837463553576600573175806571700897955439724376296701362477340702000538645314418693947512641358734950699580101688935727320234490314645547168552476875229135779346390103244386889630483502319127263466807213135511029944790996225524182093372163077371540428640414623744569559192396650427148017156603177690009538953458239999327953885030955338632050837520118919734164207425401060944303884219612934230503438532652783023137062087719176204456911548062286579980876187517185385465255248446916791352702786426773838949193701384332641353916526540873493448887060813579615449903423106253631150114641527002585395654239658180241012715683230346437378488259942162850635037275382999991584770967149031152388102177981048059389723461097351643174669145843798147972561718797530526150548066355329690885589117589759358133318353408004236698821454839701244634422226164176721242833332479043990266159981491257956231324148105627930999625239688113233723134983563525972519910222444215857638233964596387662863811743851006546710994646912498238815182061773589802510481949693611091038971482055947626019254228338198492645668031986815417692722355124993573020345209116578699047970112906768033632677373232115789414110996580561188639056485783954678269124919070891053714089179375149473862062519186293632621591654739445367050874167201295971073687383339589864198559113530458384440373438842706989227025786796906784001145859903476340692510906574283083019498482911027216949097863274793496384419273684290920654792147273254767267167433492144959700745581872022999635680749751773726955128961561173207546655302062090012587350115662903126502714638411870733069840847402466686493431626709098473443600777896178667973191199262381138467743805376338514155144289727419959114912541388922053330059230813712556682163397440684729022598008247410473097441207973078809677375440260827690896007415620490050654858651353032831753127349624000041195280075129165858113088262241524171593344573280358151299048334579527241355659968125101962858949982581581070736886586897527134002373406151699515555926575945025095191843697793817864753692860372916953522958739770228991895200266694161737444122508271753833750259134557294266838822081420468957508960982189878234065227278046282085477537463751674492810951318418472563290476998508602104599740767114096566399354824458985370458535608586323016626458737956488943729803355986991680994981815988147364575224359031392351167318615926177947571331774496136121296294466529230329881493857770831760698884103819277177433077480761310488635129786298046063452290535312482037006404392280397558481282178618149962651570371909311437253909620624123631828383955907755460367957324546817875951573115222646923900887207205255282157398873635382003149544138309147742506024872252974167637590852648548366948484009343153111276820389134292702026384062824619639631766131569867460978514464932386794148406512248534115600506244444632305399582779119568243922459585068749024480451480711894891575158942691855856986616892784297080849967890867526270292135049458367265485738497529146231649604796148623528798140290500790473118064640571383400850930868663465385782846216084509351210404471611975328488834567305504016805151890160602395664950063010765372863525466676857796580879639164828880896736933835909483079982405049903411908509044482118835140230873925604895173687750511791525936550543517197108046970736023095876330531082703968797995347764593723927142406906768089162013537406206449488029569026005310819916328516396720790110625401156727152314730757609639963346702442340993225084300416454172889884306113646692822826480123345108918947762620946825258958340525628949013331102371436910085571205866124252543499371625822483060613871260437655723083483143164825273713724652038174331883491673639740363441560743989488158109508743988890690120915701552073910086509219217338586597314073682438541363251191543395314593809905906454831013953109677989891283337889295447429924016139788136776557247406649462570013860243192843922828172234371796769964619605880212575098853436693244227830799565859483570826339216652878942759621382910799128379697606795286142554839571142772119549579922004400678119873154784585269426774384077386335283594213822614907917555793609261489201567590087316036528400190014411521769983809814259615551490779073398668377383909943471799119589966356181690670405695842062904023524138393461036914366613314794162536896174243740940906992820334979347219396122213011968783444427654859993541159634161588878099472470541231092528747252802842837458340258427797873764893797078034979381729999430998979515029489367195678517421202731472017044286283927123865150782281750654683504531464387470527849077616789846294852057738008224771852043993558396621501394930570272351148193349439114341383410497479465678942736294691245547448903389179124261718319338967218214241477454669957488451040062618129284705909086559403681287614011618669368344952900267247134363400649139254895673638353226694344219317759117542799429366968268518362620969505249041687511866064149198525595314897301849406424857521996728190573442854368441476740195553598778165687039158971969489251726698376517024115081328902141739799516826109918192745225521229625670137032003852602975481776551235996389421542164099786055544352450551806212727848660393479636312306457610900749687012759580573998493404425503521555065357259246051048506404275288799125245229009790214595300411260149075053686616536585621659022115001659184755674805854662224117484874729421614301435807247638756608954870089117697507312746664533763231713447051106085999587019152706538891539103919018257294457300712803435516774752918797796428965681046928258414961178564666929452269810540204206007185808172834517816935622635077190999120400216182675029185708328396286553617075439287312926836630846441015108644605679262447922486571790496588335069337600948349008598681435482448735241624103862574867533636186830197055102769980495193153564990436979663396510087973887663490792025247804296021367418428906854912325611479152709565238882755861251866410194568324343309425963178013271000825984487607101858007018855913259735889111894590034746814709397913824777345745529932485414531758116379970994646618583553081062324524900917403056541350419437585881694456418696323136895838640024112620697308081878331142942184800148883294255987435907519048068119785117642669557400352646988558971520297903216687199681066321443963851115221213098010715055063651732647719745962115240336362280514077069907199784572054134857326656297862013857830303835834385598245591938929424369734627373403253037366680286689714882401850913882322421725907260088687065786594443332232836884568079623475332349952794884382153711180892991558661797243193894458967963019550969738365456857906112318495155795518971130214736686754508653637229891178415648810681695740936243170322291405880997395052676513099212549387677904169165652624829509614398485469281483639984533265434462321423656811456474129778727652390094176783162259067404604229374268688223372685147878195599091042760413017464249371664362313850259825310847872848916280852852527269183500637650169556970027906554355352507437777161285912979675633482485991319057929242311959035902342147358793141697705191628615042535473943095337171278984951767911773030147590566972411883997886944612909494875557777619266067555162191698722856547176973734413632388727042413499160863968208192263214179997003594278821019818672179574809569348464943520532270165522344100965050500718363820705426723656064530536359050549086861805021788161745895491532348819053375514592450521003056271429288462135378621401768074064416654949824841928021150260274872797093302723924052161933070505000916082558107912048129240912317820583055305860239020263747904230388339650667607611750986490946709742446660393328920289819658348334864153106452011082465048399132270592110250877548945143283276633212865965436706464709502581959077573704611435098614400556173123731461711743026797568096827622997199648162360511671188648037552204883677476900753795193858148931931463888266238803356471680006461832313686425263754940151506858824308374258062948619300722132191485479640373753412688747533548973744799072193192221263224692224198398933661743456960006100745955598380579282916567395535444807159018284415603957008681212098051733734687761200427278024326066674497568141127488763790907018682598548016901646059971822470950801508314525158068226720649510569073473577303881752506083570770175953876110794503805906634957206275408546024844527360471833568609554558715384256524716911430569895971262267705492495026309344434974525411702935869029471907116039006666441563167044928350038669708381183601998088524401852864381081024614873139874190870633677728480950545800858296996920666649779980117121101281525628651671558034938041730302928110692091904951075329480369696216497455030241641444688297856654922561127508185664354897978846889334556702079782930789772449663934687313556582465745845301144574507261817481113478708028149199258728768079200500649320771895276642287909538391915857897682172076740739235446242475265511191941902380982234798759045481198243878781595961608845560794181999862934870732036631676441720235643727705244258914428264306429791291376033179576714422938468686815777179213448680986311162563051342803468924770307836658113651453338965692856518357887138329503200206492737955696383976421366167091291334630936916738842634735027157944248730392895811665600394457116023639662389012175749282207032014252149881393848207308709523061734103056986911679407857440253654481728703717337617077210185655951682973623281176830390138401537767927353836676175902476419491111180467753951734737295000188439976551467678944949151209191477728709543121084544133675973782234519317388323484846927904141742668610854093992277422410206842483279201516610706626385809418005007777923712724758099367653589351124850058688303440852730647396657568125254468940845649695729139308649914773581545322673778154140402085884059291868514832466450033457513309593547802593214234234073988641287762833141118217505893745422976224349226136288079401946289032877989905334418032817777946938332484110912855801262035378321856737988880141508255026651199992416028626417346411015202336967991351367370799471377442347369000384094298255050160675735383419686061190949372880126756120833843744354769098423554023503461323859449873711100707432199049953079947211879117313349391568182578264233576255311350700132910449345744323391179515303486275161295170987325863026169778053713930015827819519030592905540385369906171564091032913084982828209346253568193744971234894086111882917626174911716185463813354687788602078017832669639256184065137859432379012085999138051641779002052382113057986259836008622736977663551872644246236245691608928882137081576349052263770000251041760003694783234729531414164817639143376478904276983182965145453103557011516962066506147740975479493893636459268412094752375670550694262007150404298499870531545262955647499693117866291531664869678354224840785059662836785303339071864426713106553592480634219175594533756121984238105230673912153981330485488051554853937844288768301153673094465910404411949269248276680401268373965962083672735789412422535725913948305271994400779198809796512571402999219431056365083311669404681230389525322757028946044336730168947761056188637489917976158169310035011806074177147727317568639357814157574016274610463720573127430813491677354925035139012554231165845709428122442722712961068671824126021774357013161866087948563305455282427317071789970864869584407591013783819761612498991180712866811696315418839267700815355367086753230418943335751808743598774883283489530186141499853090805664941231575445048459490533534733982140002212492503733566320678506431736581158913755047743616772151302971556688698576729304182423908573881851538701841624201449725298035037293563219821319553132228866579854617423543403362068025868090728177751104504936132149869187888497960782039319603011336567924685643630539264528989884053203537915659833224662803590977985250354718891765863447303651301305910243420891704783621575851716578975658862677671440211789095764022242003155315607574263745505256225552831628270285027793802230838597250171331725797976931415955366927249620862537494411795984958282761206737296558634378905102852296957815544538542893722108611700274785331044970101506062181513370384087438422781593168226542929633676226621315587046993190870235286841729968756568026753781160819910153654493757684520048251166912105171443824138617674942568856020733378845058264454018899591302763882344621002322726720336215404452343908744386012576050172047707688525820583406181131911354028059924099196469640995901188404936039980359870253825100129924303943655501656839406689685058947788433313651350220762880199874382917249085507727963374808352789246837444453707717258543304029762973497398612007133956743289333320059565524552302233370704434395073268657833034913163424904705047253911904766462314043357775340259733895660762785814313673849700917041628848625811655473321241561625141977047761409707553246882222808914217580548848417501830792827332659263179009051568286003845952970437508886189568413842259742673523822914387034854174913769361226297895215214567354660985163065172042391434260518700257711799529566891823394736667774114061259177198849729554403821497969459674029828383735080448444436010953556644533016106204208739793637081907926020172833513468485114821462933816727367199898067109972868497486460313784175054916532404936008675083156330068061059531377223696723001140310754475479929793567828672881901748751442892410483778778745573410550760464701567534577444469399222133116654608433436063370226467606216950219962539548935615815586911889747509703586834359138456816126935789339465794447948746943434867463889308581799456610472518045415435211364736814297744802992829207969281348207759774972965126106512022244967794081787655234917256345649813557758588580125202758554884551533348663694667848078132128739877025558080194555511914580076078218316309346347649264275605956533153504921618487181795618922614089515596342244106317897163968578899226961157786170343459810349357697469635040297084570021511549883824496507090356387687403187357044391007947655963411909809017970972284843325439384706122946564961326043196014589720503505910516579020212830565155184566806484815771104758433132874902250144022941226171074058778976333600280860373484632696922530384205505155095161390199976030722957390320748873938834851352449539738340430165909447873884473554765549994479586179086526845836157404424591044040673457575101837406988518464770973975606043984019008514439520624707803674205103609700523613428347407189216426782655412465009994249629519146838235209682948568049191557551611207174343162691814047436955914924283524556784513389418501359488353004258336097553639061551402699482394340630114743799122560949985545507148566276813058431981877008381222800657258906202264611651231025816169587916586761145255249580491996688483614833831835550204159026648575466311248653583829724842541724589360242663399492715778914201720206966859624141825313431829822597830063815909981280110845545903065589697954510110462928003675805208509229797276910054320520554468886931322509816153411085677263978137920644626689459935308463924711480892927360532906853286025744054329676025678190755908057032928555463870427163153478702339612785674397164085191704378423944180419945310827340757235920646053772646519478932297387277877236742622367683656501446054826001972385451935870493919748245605031760797340678614415990720466674745343195528389948196091834891937543204652269425792643613373238773382381552854688912295473500543234547836322774340558335418499529457784163590664154738367437942530806143228310397471025286791276044702888597184435685280934295213870140160943249426350044250541776361096920307791058622019244440918871759106329856266808774894595837127951114755471821256670465629742627674702186802332891965699294219607451516117777990369633059853346167773430723286109990305168613110457184217106728988460965411034029187900094540564851575099306318968262550411361604111674678534695747549188493095289383182592453967436827741125978043438772416148319337104516206233353102357858815800717327988147209183995428207515730696750208635080809809008761416288021858991612494692810460482801082026968314772746383171068216851324164557594006590953585994746011232275032222886181974972577316099294393243631754784114561301393854106851067037219709080223494045859607045319933878085336035682195790495154496068477299533183554607020066112575814870465342809302227028211837753917225553261668670258239483222719150008497850844740025839221749666531347559859768734730207014684949145387667646020556140379618298784845455294364501075096380044218954053078150670901341511517111811323036633048453985376344801025901480496877593501625560119474814355684242244229600050056902925937815769197337932693302913753543312460334175939146720657185913933060980845536949831710375204862749794927800237415749485687004705644031033361790638548374500902136938051688556729098534466883900943074248414673486179836646303052595224875590339266879768706393008263398682749847852949962566249079615268308011210777724552168556762786334679340584614829378838508998310719189451458563396346638136970572907936413367263546161925804777320956061151941069811586033998090506736017336776053846070287638758123243827776305918015963560082454764776254847643753571739068445644183573342952575360949059145928033022807248256386690809116681740846404295936202366696482718077770003059310715598970044103892822059779618120436014957019981351758601339177578701036072343922999763409366817831739737722793016140805905374787957795520237234735408765798855555459980911452165710000187961118088593087422144685215472220873362333287667524345891181987901421751089642306726120152968936582612754243561494868967340103044441535829301774515744279815274025223688942350980577610875995509182253357743055700358440975767892240521702574302437486744158977181228674523964501268048528737930631791412339491729983803066119030208959057147829987720640455997425272450968509373244604473689013533879169834374688000563581491257620949016243156364778024656660714952878610145326476993672709973064499456138097925398401056332803702207266465839630856836875696600291855558754251173973291873985258819422323771358822479426271709437477496332418401714828420716022811178208003957762777296557556818577724399960520299630199911608557786427217847836198407274782010272135383533971969009342271745519168844082980782684777107049997301137660944670745028508772702343710251201968923865143739581709658015827665383073467813846766129981191346239378877890073293083740052586815043722861648780216905502333757356140109150500575687260174189084038497892725264668356759906758346889667871935812815265317998529804745617140638344319407225095867401018108472396799485539517897971608702192094608659984208216000632366807455089259983981875167982743536680440027029550829101853915071084919273206308180309346013796116778828230448952570571199149688045695794896199661133090540881883006140908436763380840745331615062865424053336383182942655821225184210523449135318375264486278145404967165809991564953214206171000907284047940675765149799776892090650527150900204667857224982257228929178830486622708307739973969245538996962366110934923502288998932326909368905782447345707375028514457642070296089842319268471459114890988684434273690635042967917611729639509516199973920811377550471000943236919346780112127127475277966163949285613457172206914067785951489539726152245491724407091253369617697358275700233429960807416445550034465331269094043547353182203854164249064101237431594322049416431448554557821202234615592716862402242583243488714516890424167829778118019923397447759649620066845248159491475934546145483817344977230640933248792837113929062892672387957644265428613446977400717811129058482392324933066698229026657064496241245393781666715995974159485580336591448625131179685165235026453374969276396007024626764236523364679371225532745840459325895448888056433765723921054149315347307362640020696928783238951965732329772397431218010523704984263572733100332649309964586970132045056113735355413431987976462858480668980448771779988977472692809219600936274014506820730375429171570407267985032864768581609949558666673431215002176624562940204662201917723560511713757898363807067598059503543125239260493524991106283326188147186034383137228794134245153676159352094291543787303143157760037749949144670505310822237458487948958990749946643836406841291358711936832919313606987668912921332074020388205200569176734664039345444680460499440983599854903943684005802785677990206185056925963917467281233760912137227060550710938395725631087573885715177572829785394571291971263182616388999917422383975913374859392439279094888029862100425881104680634683020001493570961040533356068590984441614066230580677604876595662002395423653920003097444310729643989982865639257261234438478332530684595578825726252110440209531623635237323319615846213473496032604444023033512883944102442075165943973581266407558482202270814290113861327934508969118819310710927714834661067132863773171650671305277625229367033593474383264121142608946051623972149584487049708128279133486263676239651892159473391028173771243280787638305023775215793371729898542430361680621504683796186676746623920553639863904573421613137028646385321788590065808594559571142833595576105144925507591810610184564262097310734957336020502548772358698259847391606211281932573140382775451913002475241902293482413034883511861731096999479841262184372796968678217875132102365494149778441747993248405555062431628809522773883456114187680995945533075345100060435617783518868388386332240290038361816544797541082821196507376230884708749244023308358763848185549003619544598305688197655829674436181949027791661272022750322152327107200075936765218621133770365287261940367111344496991215620301444695167018748533028337579012909885888097808583864919871943964899142574629039110638364116034625630435834320794457436942388074668807182946987282720898877473368533883614353300060525629488943668706662715853585993327333008545086522666580903923244226909307034707586006463207530154900800996474124372303219242651599605160222218571566618928281366527053817148252785137068205468138314901556947349802895713921834798987504483335937579495403933643624843760725892085666680511380968868462362940228171624593958914741174843456061688175614343191244712017444183135933573235697578134821641441832782878140109588269285416546647384944787428706872048975521501092411110866690739271144708762799609992272215362707731439939418527112779577466792654835426966900105129840726976253474015099550627799865495977506398303361679336464560598821974596873673247091055649384492594765784816347697966932557743291994081895373567950200023699439426166753312784968674651124256051288733716493535006244099171614374853047663207841769018768313675116902300056521239365724276327850603156860476779718846834406978259599542548645599919549835290609857941622999521560855187571113618465746497683062400949514428345480706066056469393386672223255832950053992494524944662903780055448869209587182425765174841272692615183045332795424552864896951436910461114322963153193827029062663286575327498730232688036760902777027173816980824886819032106642053477084334234745668278968833141437951616748708246751888164334739001085969457369581386385800277776170324832826291348252811591466545343441295987113836959823134733808112504775552646327263504520456723487555961156160840035988082311929523483920194042883892000905942606000076177024815365534616022025161652780874080416785457359070529874684794476381250521103391998121780587619042619446158161203948718006421332823361601887245970909640126664916488798904065819357551229900493236182232069699062009478881275626446842784640112953668593548531169761520280803356257293247595493927077917515995048859615294071073572396450226080022894324251135253655272214226935732010269178962080914779888261772763691999702268695535369212699900672051286954501714003878262952551621606480126373814985769318955489130706229436183262424338610870713754003736263832719686271703899949881714780625586148961356153933772582540825209428707787732036569661667352129067262646184964976584430425232934361590585773085962852610528265613133558561120561414066743274212819584909226181500856468018162135101299012820496512111397072903272758991556657227154748278381550924078645796089549432946819208134568199851125189915806150899141318669071632199127938469088357382509856586759901663427113082164962977015147895775237025099138292618177663823631965550599277579599666545784089837848024114408495632579568221511025143335559314774660078309057447777719326064751582064464733786772464718992870750743574478318473124743108257302352894043042128672111101730060785497587157463532534099968584802152315857859950836688076665237238143483757208762524593777067298214830083934460801468081438936101921367670627110905515741896585408764476931739414468802076928142307253970992349511090411812692948864150722894951258817955497516117264444378304544137883368761967648021598713181583637456793473420598264618657725424525792489699348460001302103940231656208245686712118708677673216552421541711726584819561351226886733864319987800650388763359264126391313744410327676683851920081715466083714714845323394579788383272071451172626872750260878096978695384971661023097147965333583930757454996921470177201920467578735873107777055062905939214043556220712532078450814706816836031354685553181146092857102007348782811689897344727650406238981746545179239758867940578778695359342448217056068782125985171125682206074668371213910436592964585364900714357705097659387933936719775423313898068715467606407099389237205042232304893664968058388853788673077778895328409190663740848630135484363838269266731568669073967428691116510143572675309491992266189615447593318109633702691243079134466630192002480640759530838929733968608046955761940714939695452936173094602627262008429382363856045036854859943052009916849183811568555491450183488874311481449600530133547776039384952123324866649181211393812449041480626301452760986464503255701646964597830403385780481423966335055054791703285131684570315226291893376474537509304501158672629933154079664859733127964800625760328346793620823392283332005844259289459938314095642373018572401434589020319065173259327583237678833025415669399511821025836852978407620707640059854158204267457217784002402892892211022882651850648992589715626606534109297766481598133235108143669325529278162527961395996568212502923845036120121191607764096308498307714130525613663493109298406693988021415560609929783100856804080597397649176455004633800681740641615222258060994466222829807526278447313051772030594376524614937936325592476635898076787089578793372217972820522815547881603583191559963153514471584555827504136070254550634256300983826734273303775321313048233225527835696645096011858065913917093600385484035962803886308153636818484388286486278274173656752890644249906133070979796418125860798386046615873356263062088329658089879768436865969029442657218840804733534617526625253933051627005106229203852270127083603800492104071286888676555468200495477594432956678583913635592664542232235123515967708742960492813418209848070811492992833939538042483119929363057338106512929856673837060577054483573378464124158338802004286521328773752511988784476803336612903408439996193963813020095034187848672050456327708313962427685509229260317236465874489317529151070542951121932078230435665010159311705222517953012098457354861645830938306265520822666589858151916746587187951240363868127909359197177158746605489408697522634917527696542062785483539171427603965723303349605622644345224310782459586678606487852559910051299831971245700374170031765410857688097045397712904371162247434084727698393698235140367867064564324152237860324519256363896517399095587475948672053616215997677050887324689598213203743030503470158819226642636169465521586432988783189516998802157341114894412877887495513406944535916419482708648761814866312608937262321289505207217194613993667926372918063854648508416958026373400752487627095450132779608295808279694900363659466702461311338421842546482810290100855196859410604724341915209430372960950160990371702279030290185031676514907207087430187916901317894792046464175678216138342507201789337656635601603336423464199350012390226416794105672158567192404968120779179415551610839947264250513561354087919361949620158524229897700784742189768191009747437084116400272968806509910650877502485230770591346764386033847753759920640945346853031047913648052367461180599063834265026418148968166759404520122802349091075125125794901191968070666912452637781030962437069136104829133834927505018233428873407362232505807229174211779069178456371026887215851352301091983156636913241204747785038890613030131425360283027911417677440677413075043246978573643150377605106678114259527616638007820525853344625030298492285036499082004037820394948221859670261983657539605297147953025915538438087897462073120426103578663730413116548106459419866488860122280202355694240088832040620164566305995926867649326570363783559004080418978090839406131103797672625953888635354858723093625609951842046551616356158782278664096605600122442075611893125762758398867546347953022874427384365586704892026658540910249963966523939494992541628750857900088618117226711490526372040154895972915412609580569512187788933204943081641205114096393675834431249248962994784390679928007156411093642004254423529800766112605728962630721025314987264862029688886399789445315359412362349938171867205428178621646499413849906166939715283321973034059799845689236068085777260501374595410857169471509090061001911359712993742918795030927253590172524701232844315782205629112437431109022289585383053815079554299732744446752850610924984449303007008920308623948151399909793448080840239284403868729568582715576718963390703141738093140780958354912551767971984781297474909137958914505522869836691530504875258611069216948258100412952140262844312509423777033535957254429183860828371234810883342415835246461841905228656525403818871741187386177344114372834628403026774641346698281443679722223750059949600957337175836371106069664173152347212802724324593299653918659295812600506654597300610724285085024361243679750743537673358787520638305393010054039542987079518863157188743433468046117098859653751991244112111920888858438052263536032435172172114155358828967111131704469820650491663923344466957825262107419723835208286878752556266170153477649020448858013307778584158566424773978045363409084911430674249613315301435672190636552499534134625931002585535596311305709474611271371053577034135936111046467386560719871612486873166837300313305251353252383196303148893566889585266553514336263784901122463163092788428108799432149525240252332111756526261030738948616293125525787577580589029849453861311358298183051670441574271974311592929829264498617166641786526953285008165508591499220069083849449525291649217097366261880606150529255428094409725139504550775630450322733501879246063210042831961054220646875511418837355527914119468707280181964173923578189278474933276645533967420344738628923931707521741264988036962594060089467906985203894568415635406708262027249238413292747608420568341715869117154656837042441971568735200927767960979192367836816692494634642440492573364100935400509188285827270020897172520158986076370646115629044107635590443581827241764454727703497501355665186248333891855263815118939660076965466660480490761622009977195414274833881047538886871366212372457565416311339865173352617360508878827922796669025678603081334708271533646388023856767463690356566640187311569664436842565790682197061764334699533950458211969926649014928238249255697752136967093882783947036247249360716958603757040300329367164277530443722828867369517885452181340538764728378204199134234976937452169820045919166408423201743071033431059262380361066503101268753764184560794489860378386286835513724932629884084451568394034026956465871317162556054024077669419656098082830420041406294716071025405515041946847647676720482099981197371642951227059277138536996186136055620365111130250034193763474757977883613065374614323275625663197608888063754405389502627160329685202307673281423857493462729552664450228749693846736351790539027865684519949840435038504007037263700638506689367326402659432220030977465000775937130718639926689491979074650019159901289823960278321771093953338120124838034716001430411930226554724926150822382350890594299857497841689471845658037146120477719705256554587083693937686597233404255363682958260529983672211087432469365325819181437035822916284928138187797691594680872359336024120851590471563755513257456905989654002449394266763829165701827443273682757396601559894451624018868427566928164672007630622776092758063500384617745847492832752829145128035996684621167814124660431044949002749804205629442138048047371217317253554015898993205870526258882404056267084328131745778017462082805758983669242984379520183721060433579478110195687387047858076960357776122319417277173165214350929309948899571470405460772410035343539583924938902370031378268814333975686924338717763683430355157857527871581187582105375184637709158986486563472189053227942399195756711973046588654297356817676740965302905857602892353408915551192951070416010687655742884976066582276156185740456476606303768031910244958739793833155441282909787520423304886327507562185048187406828678005113846291550037400459103489316532091644110177707884927053074672695340641703234449433277674307191671132026930376161203369998304110348972858639424152375081366891805110516165643430122281895092977709157293691816170915503691050556095903431038510226516739260061476786268788647774168054723589827610781654283412936962980547462220246881651970908895020373117107221578671091065787404964334429049539030695577446464506997991010030865143565740317220267700985936596219042245368313360961086452645433822193565778698493245468661097820465600100201012545648495013751436616793960453923883345013516877452778527497455714935298790720850825013365755841384971674236005353351924800176000615307691212730674679024212423326232468943535372506575633589797676652882797173765623574387154096042709026203087825351094538135271000166699742812366421980243950273146735275037824677622822301285219741724690335533431214328330296226285880905285937942066490857281842806058145831226932704934245583737348587538688295527769335674423018570451233722812105795828638023736851853452410562197320886702408608097400247227077979364113277269453750026475712977445151989015536347946950680981069390552963401190936904964446025987314326015110015681673272178509131974685741152845401061031964902867836960153793557663105429823601472693056073445520207239385024072393386674274890218515299641770803226670941643826058038778960729181302509921921758715452382485587293018870415300943119674607182654890914480439213236347706352492092084284932396101326491206953369241408426777594654790578209166292743931772772402486307289431777469260055571774084034294117282913021018862756372412696836091698931663966699554187776998899321495421542153696040887806331435031708360241079701225852766335784166478124868467470277362243026631792611798279548021703794095742811044630268989144137780730799878839591251735120174221262099673134757998309323851780748038330633307046347322232264151215327308296289770719515313153818258128918158056575438883432906220847130337744502264622243960563627588522937036092899879852784059902049297497758529477996148505783828024780997242138995471849349988628986611694513974401715743998306597945067605842662500823924388336040992884513622442969088945847654773373244915505532337079089607621839316260695784728393171618036805372975460086049175663245625595784256396146283427272007798373860654139817538692439917420694359826962780125376371978401047193099647758053963227205183471641931208596780895151146959073164628958080046513150447790231769049436892636857870445962634031143374949022166966906265804197199897865632694358368579935056697240755526177422295057152647535456251604318860108961943785790615913105522601178240469444583157389514351510228704929314760799216229839762689398040374224007917496181574169682602295808762977486691338675978777926735524530797753483349447331256358822299161368080130382474845184511839592953875518722860068881059971993688376294729997126651187667613796764720575303501608647421666665586818135352382776072484228500440558961838402520050698763614392209304325579820189390572584588952652546898676558887051645495336959242779263201042831308382491297658389262408810875248967904023184151162249820041437021106907259572535488708249734714404411146737583371048742822793872283230612034057225164082724082418860601457671293277691145922871106640319786243085006501669931304829352031306381820220506606916787510920069801089290840742393706360062335110028365023033040110440162472080727824887836341414269633557002554223152755731608499105130018465970273913243552851617264924440756097035931851863522639703308710734900695969594161817661495027881476783952541472694406785801087342355056612168856583230798940353661699768077769299595860259770999496615166900317879799998087450500785111437299900642508082831326338610989816501576498257578425391380838013361664431015432501805271496341292956223502916942381852177367835388785305133783026877164323077956889424671980278744796527156995865735990641653495719230137065890684393179780472551439226104947539673700743550083932553980137801278267850915684064030051500866822089581906817380350174362935827742133711433509449766165387593766834649455106535129459359451728003070014969271423136707971482055387522946079050858529721144166978837043690960602123221745139878977080298013232895742793467618944776070275456451169357290285607562408921645176251152205856765789090474607260094346246787452646585537659700843501826226659507640405524164666839504317690229261787301589470141016103840812895284437070403071827047584403691889411340296790838125358179407360478779780122129990259485295982925353706439764890605105108685784551722057311786188778155904842100765617649678910619885039733619478059610541737217629133475148708554337960325490347465717481830206782644614718205930099938886421695428295193812106529440107708723100144346907606616179400628853120647998760466036764145428479581526388909547801835422308758600075188913002252796315808447675423458411244697749917275393981630101456078318092316691778450913546749964972142556122389397286540168619592727688794065477659015277234858864719735481957850554611271006883692012567765899431453197737353701810182551413713237019416432427757538897770577646501191167002501665683017863468705030920603498390510686313409227112078520400448940115057447700660140649243441547874888582388823557221415680601384671825109385163211280595426085896347222123435319715567260840008832327329810510536772776638412507798327348983829185484782341712202362510570706665936658804305185303315177463434458169895934379992400144698029090393164927209932535252793308226900981702831762297905405359364246870720483807943142742950145566329146174175823211776794378388210906096234082381547156606214608598773334178473343313077269676020287031022247253544407968280020152860338996248502683111779594431021943532009877212914354504724063003442704238685834119772619854858143234320800205999601111521837943140034704921552996751057226314573947015802247546958310778722785276157731992148350674285660277426629363892815492870439527537389835797122599429360892641930411346381103032487919349726170517593885504741062757365067545952461242323559427036199730394995168274278949582542062723815740901906236869447618291431010123127918700946951120572767599378461597434310119340085048310991648017948667955440324317607860550353744816899004661618880750572966634453790818789720622832552581652354419503210335955666802752117131577997116744137264702380880598845550779312623588163564787833228835707057666096384441764847509978675578660336918831788635879849326458080564940299364542889099353952624192046333122862964469504706859979089692491570518587635440374212852247164400092548251059786168110503528899642504089923945932160901934468736093373133027901877000895233700652414102868608280622435614159917726860898322117671397747640229960449736891801265557235871357874352980029824770671080422000581055748854765149024528428945437946322413820107587746938102066587097703167604144383549707581452982924552809670524476965031464545417556541894592069288992950094523096790785920696254719629684763188463476797028724526575843626702593640772365361248684093501329198438899096714515457154562761854381294795589821595934487627881447270212831376983739769653983425864130117489464841331530433749534758604991120247629619704351471448672118021310842728358553059499098479317900867261703973687964698165619567271787384857497885390275734923780749622344952816825097990280531985752369412204529050481154038567239551724037800600226065738138150383340218559794036978335718128750942591352425439882335476545879583799122207266225526034041779764493921161817421448823392244392192639869416751559609722910827759790514502663592717163892191430529030465668654249118162650034179024261769305952087562205976544232083946171924743846616349457302231402742899608584055118060045712463656431629753133714311052354407881992665729083896814877843344707368935250071473293926433675962605161892035831163912492930338218363999360214671632493249703623075843754942427668503531432430276886031466826139098439640762550366720764166258287253570639850876849502988334173009555972688827028270392832662862923590985329957280062142597739879488959650101401587547639372998681081775356490223187854905849053528920272709224631715759008394637085192432074097092874096277955704299733587006443685941195872423406112443529489342387889255973953760704651904987071227610228972224851891649367391969339582906822856871531009403800095959780353087763201629321445809742451788931781094501747650234018194898526368535854525311975348090263525215699204378386594897824254695288764016056368650780996455161971797928909850681137932546493602196148476032347284299689786811074259260915796331975808784660366147882332956229782219828121542309244766759413633710959367395560870639864121667873143952123402060560853603318752022067079666190385336497350071099353096880115433673280602908204337832409997701912819481557073208642111125593011525548703699630582959375158649309236091453788038804354190974406485908815415124729077369407185081319828687331957914281059855551280028444772013000509984383970907468783741355349325438595064169050161703291305439051958588911763518225717297931058718359482908696105678260604692197418999366280919493674741409685020634417673046754426342013505618724073698390791064971116498342782833469346584163816002880421012254490311591933271756512265006401813903898788461571716574261072635877630623884086528265109179827273049528616241717240810926561880664142171042699838708353793704103093535298630496393838030853668033357500245907486788690595935067999512273149401884700834062609116152134419648883625018348808558003807834313280554183708492004189919594282395704566509961849506710558776731829108771575494515799264212479704873044466355278245420697187809254818527348503555387501319137742758692364395292621735988981317734460061466011919074342817737230576548386047147002103049432054618247287584229923234317860821746620686025278744048180082425956449554940672034526048738466869944855079454674484991634510771717394953557170467468574962275609682680003513927176793967085387631504133997293031721168291446728543389928044937734171644138601652926243442080721637710820996569581430064213577231314013589167402610619996487621937165785583363397150696278424521925082610684086939010968448567168036227905564022731128283455858166350424294936710671966469752810909416798468291738680828107584659464307555850052490794000821277451625394235716817145679037675758229283192571302318828996241758698188976939871345387251738351656607396039049279249462184087943089709773047919655452153485475225806162048603275549289866971458354027326642290163597479312048043167782898600404523848201974079758758089089943773960457586738234090420329850067408956207120350097843222988599308518587073748770693877222652627107850592301018488788331031713221489189721182418044269664969630174441009157643464122679059779835357080791831713646696553485631754606206608988137231544844046399234278331395922508453223940108180910634167399916992990884199744233242778916419929857990501285141739299104076014020780683472730783463519705878916831407002714719002547141715932567248657874144439306306855102413929045591801372806139659497831706550560467459302653858284855687267609660282500920151309419951984548242244549053747082132260684420791519621141099744937699048738298812944237180851388218575588728897003765907432158623330113444589690364322101635928067774048541475843643110446272845967449854331009482294995673251557423555203930947109067585637691427099163961355734884541660103862219536288200366790251710152031187026019505093312426074300893992891965633865419401054246217433080399567286775551763429845207277565762655258034045384662335048286498686648262207031709577982463681157109705915846510864918636338538834506508002675535901759364635826755553189299970276276475673107538266269985120642561097380807019109187562748405314221390042047151313582832883123386616794718814440016797735525891476762503544375302440627155377211593190401009908262041596305754057255927697229408673762788223022175462272405304976279075060518520635306215385690965288827625631038027516765571285863289259347154638531763131756079852855615123130182445221554080274029832484993713266330013909327194651852758567426420711783376486485475040049199690613106642682756344985796659336443987016167812495638864503248240759845086503844949759619551565062689926622173703346540340388647797035054720525073267738870208295897029862150221904500256576136755716614308084128905532590159429293662452900695856205722109476863957302949268411792158456292605255364278922964071168381468589472985443446863295151867926725861964369717693141489768642309745639617772099978494011816028689338146353955571113702463059389198737574489888696540648170558840369584257658535571432224946195401747104587191237456340861737534538447075519815588973979110190460708434656252030531593157899518054285505507841667224846632291027963514865117069159472131791965968127771060328578820206743923784811509455299157200312985085223819996774000362994634694862717140628654789969319742167005405295839083642241140932822461655153508463244430235354615059104567998886814740297756175245086000753359904032280370085307064856241209359143088163554661538816489353564893088423934494174278123331305545916524466228512318093240817844049581666909102181118779115873151788237507796370071819970653749335587248812155009383110975606002531876808213335992395812075420004198117356480489661233206813986053946111610583900392734639213712169626194317029618515294075701895425160868674435169147303079733741467790235071017423506593319865765820925907715530763417154103828348054477234117534718893075009110948173639339951021422440298252855761206233366889676639367373108609600261604278192409265088513597582294887711858260920613603906610104628850318918024817331868748183850970011887257598153069961760276352029269285566964335048080541552008001450496160620341340790466252704933890113597292146241326817891669090275980487113282647539243707574446160699688482856537226083702127050492966080132892623536001296653769137335294955043233196945144798600895214566011807223045398856571582767743822476987583217926916711474008700229601131239378694120009257175672384583584881434128084508135195073791138484981349922197477068536098726723060867143170695348834914047128545722407698708202522100085782421316811895898831294842351272657394199428107529760423972442777200065998820943389812596695441153168669779330032180299989689809928414484512275109173339621334335356776218227762191038444118596856101591673309848198085532244432814901375519789190562019292591086220011614325767411089852552269453314391027753919300602593590075956284200613759826950275954038798709203029687895864524639240358627807671580818484819667605825667210086983147136857422305575019311270229077407738677968405609412111083492860756262142610384784825287667550616125764991714237031763907007368668399713974090248078713166295200786006184311850367512348672211728148557832817669892340431129619417011621304780726663231326887340605930767020707544501574817703011284123819199485231068520814612725561694839802751746362712991653319673916873514931896747301746975396480076108125763994710546944618030037427054274472783148275976738826665671575796819978747510854990847855965851373143817016426904998475258003896118142545097433708512231932092392062974911670432548562876783642946321833880311724819981343004451440912678112983444603791892901976560077519706902649718159647383546460170417531616544929128536248102771142478454085031465867047840094070778689138244166857178709290706186967653198730564885275878305718299905835501115677017385119008294794856044331542605505593282919259241794652434482678086709433452599687773780659730403562221341437378357377999748762654797633713734297354300891092388798095306135113804603883215001740572344593929031475174364234836951175648401224704238142383577258582331845303573675498434437233190102029142038675288145682677356036723127901853147439092824506301700395024181130225884520833280588103488438636127309743096585179470189688682097860177498419133830229915006382375036544497310162516217801440530355584821280486033398641836049524269257589306375064295154884715052598039787507029836973485868513036218678663442858777379167290564012109244161141894356889433272181897401499505546335569519959894301135913422839493356790421416474457410926372058100031214182655459530693979462221963882598617016637110811777383267390137147208731084227140822712416099650017594825867706450435075505429893479257602661980778779798507814755789448268342448522960297849255909786056915033863664527534898466593801179159868956223421953961119508400890567700968562799682624834790414862066143666065651773093158347674607126237657934256090387727606005710959668194175403414154156729191180904129962052891140759001917787024773448741167151579017904476650648848516738963237402967972512321192443762424364184329557405893118335217794396791643404422124047972306197208809757095454787001578854991275680627068322704887078282280443214661404174060037941894806031579101150263811545704455423008510036929838589189155279070115147077067435019262588790792973731230149491924689582282218668225147122491577889279698322545243668991802123944382675091854042145029983555356127102572410381221795289212379524757546864919083089810729466449428439592490839315542623333442675054492481300855778332376948167357430570651591158627673855874361945564676105085031948786904136814602853410492459608332205343109564892575126300928906242350463490400948212217092736645253654034217126705121760112784086620929385496960034712836617018457087672978499789607562287325857804381895267148235929414576770653064476744028266852006396884534504867389648952737345278094207628247797337891147823613260769523471544941997289039042829409341975928519041944475990506930523333441846333654422596059629827339582561228756198645323170148857069476412706919152631163627351157534376895838689442705113989311063965333950042300451346076446817069754888022395314132939339767395666331850634280957118364969546566578255616499453433006040646608718013518735825519189200438009558676985202897845591424163892000231403573021581135641612659887506616241335043491758145812431755824676470643713194547223946103760122785026530671549456432534238022434123226914899231291981653184505471628735128166810368485079480653103617416242219196522785695708418345464176508042079495189281974281454087697200931304637858268901144996809408360384971145664662860279413142625295526531847813381542908197870472415683949180075678991663126520231646806474536837898746967598092381285706229240986841140753418165282734520923707480978101425734033458266089731971944125247677425523245559386475881275076668274928343008946587163793756494653771216651632888155065471088384592238959794730933362375095668636177724345703737016271961350673640929682938790952232500081550543936772639417465357875950985330743628223581970286504731512731535721366447752349383064332758089765986070320222609738645816956778587878328793856706788197962207754994936421984414514331019196200383678551584697609574980108213852909475529143843363703297784248533220305529259370578074900805729465723723129413700068346341002322391368206067411761045196868772078787207976029027259978688401090847918184932369709362870673166630167207639122418595363335709469270209901719925558636550719633899296868396398003413700362144843626916558092641760033803257289525598254796315945914091116485082331909001470334015991443469130098632143061043375702927548856441755332803542897751455302970991649848378697193352326476794685127299816239116014987630840842859151632941982564718923833451795030739266785037748524578558679010320823273368993109938490651430792540606734928942453914658588458507874476274098951171563104038622288798883244655963189522310581983651238775166276008338528157151412617895166326271806889722109406734241879685807978211521458294612886327172299614333873603718463268600374457219109150253223243192821047196536926179317459216190976532124527847129240923610065262528454538948324033218025319442258078126262260914717462125188002525414683636276799271549030142549223927941800086815096916173005229159811384067824237795736400152498062421567126584808514555113448527305017010967723346889938218181876327292867304204140785623905221620791284117711255674766354847534839300025182774166571570797012360204629088253100108444583757607340941529911470877028371948681903654252030388838839326898634693775559576564584238381886809994946805734707943306521321796914251594338896141736902385711301449859877069394045441227863335286896418287634552696434373393543754515172384124080975861079420006530703085661392613994418688412459015804019802763404406485369326961332071365549933554522499427465226872614099448393905989647379674024141566952593087286632069965502331510621158802054400335319582055414559903263444386367868216915138483430868866799188400100344336533463164508105162902225054562275958410157114687413347103199928824634625183587640731977878245403003770753282031614608781222580670602837926548874314944439256619114232027766401880969442728323972340523581065720933823487526289493211361822329876893144432520980312433818547085812877798808336701630168484217440143622635008893588865431465556229385943502994133698636698780906233721868371147468905873993941592672755667364329665405392146064749351625849389156674263643574876478655961268500081779415732752219455817281260928355344413142051991037318471120069881980675245394533447360778352263702797925270917488253046265703310271065583675038150608704183532376532208384724160946181224680889933093503725439603677169046450447985215810750369637512325388647968938803588159314897626276616839916397549511551697469367446905371476794834579558818709160291670616037104399059528121671602696588337072715265164437562952529636654107882606417428477299104808704331551516786147720114245373901309557670704417021269840538339472769426138907413983930265448217155064213285545153764365004928250801972586542575427656865859605297340997241691107575874944681960373793579111009370994389525477187482651782172540474025013517301548656947655993786267487707858264918222176872130729797581640513482869939762814393515539912788595175356495494707755212889716294099408539547619129735334419155027471809197565705092991393900556309550627131665556547548040340767170902741001699160414986932710774436796536181004861739907071470156455027757489734398196951067297928061829255995342360997527192174867471640114886149393631595321264817996223145395769767118838989986630129886015198791318756250492679786689364509029247185252054653267366643953519382224555153146412358437086251293085812021159165861664940431436650336139613296140936830565759134860012245821135729551014176946043215520915776528161707657139745013254166094851386379903900706187439563610915017511196715705377606231751056967915510530358444558228992903175129539778860938303756501980932289046948737479441579675754688279093328259586959323893345386411668959541653233633374274616577661609282189958453979889573744131753294372625841193032400335249439648707178060173366290357100772804158878347463926734323871602965835023830136797391076941142504101514832319546825861456085224869196390550414919198134143993938528369236825125791677279575393299506281343148332334535471230668757643233891258225731975947499075811997004464009545581649794237279390453303694317205034087631823678468697222090277709760831052740478254103358202345740826212386189233239276001950458090616743576235378402686116298562671032502326934771686739067604955101081581052165076835863219481001525632111955298973182823353731662814817593620000194753620900952582881868782774545512180865445342275354946053196681002907896390691048198699000152569477468421105298894452713859912520825679429579381344422703023712580192114883472640865083138926615323326196319644443337663921627912780679823096487777085213292830672707315227994652793415684537605523627162203407886475472381502384625910720696798024286152210647191549368162776615975642476054695796948253655689530770957105798891139789749254112024051879675769672844832244306911874597776174652354558492013331796751366091179582298411016698187497252300947447528101334312205455696373299597930061950990049447857851090030714171917199571859707711066038815710491967169438471344212992783834900255262030527789974115986686238418334975820457842898415745107316709871022887700503218235243612536267462374072839056599492777800656432311467345650877859689589757655255348455047368017663950581077684969222148121798270735341043214469440713595579982631041046325767574962729308409329319166177488473811611150941077767216991317343040680334384080557456189858968340723588430708788237707426669675034682107027753694261107760193825242110478499347291133750077257465922865248330724064507312562783223585900151638276032731958697407249502500327653312588182908566122019212212915873614587314254230986346247078281073966464578007121870521372341513138437619934192871466549363117393322937068145231760221810472689365128435587417365084172431653155285302891030328526240849141135871835053054135609184295617793886698156438463690123834569161292074768796501552229775979622933770270292276971900607353373557172594113736151093102319179937069050550716636032095877938172566839923886915356550464290591841668182738083475442085415448605840384883714319123848443513828205321997176677382507137732981866524769704714527472661143152528328848913616480198514192133847345584105897000189420364675828506041593014986977285656458566166836267147297475152923663440444043252639241504417729459015014793310383553972487499932906925350623836157611581869253151295597036365575874554638599440638496962219286883072358716570212755197792770046560047031756932928087738312584481248174039007125890128431587357842783767840927748242774670851261617171603804300511437836649445754085564521987838711420064118129603013104094741421497392933239927259014266911541794153271398558804203664472664498031793750304791008622769900601804502239396172426325537008607301501080470021010142169935396639396457131535012397917736862279488105348608007257043346424551901670871728206029711302748391645995590890820445446846977949046631590331939858792647133673705441252548824123044750557883152968366492342738705497478543713609050793110064475763052459699352279655557336417249884472551197615044832420598914475080403096501825958345111228393891709722421617612096169500026985922549402002020746600258009872145224787504669187422174228212773522665152411815672801891188916655160288154954742942367145041264937336713328807910715754434697870019038673006539042013691691132545397688202212906680643004466169977329571353542124908665957495296895821675946897731022588549171417765637219176587524138079216175765639915788897584507255582499664741384291671525898437983732369978882651418071818912731106599576076490303441781950225965130868734749566335149608443898110461577213561589072834289166290504947550632534959259008167596506596511383710438456822682293863045098581879559171592684514899896429915832647656217599114216331163447008279686179385796997603087418916099707744293544184872744955366577628932071992516751769690126668599926712346065658400664840512638076978418111695364946672637796695788538168116051001501865995412444171658596563450071998714872373859440060957512371376614728406148379129673917343069224258398121433960310666119092875087858264370395171327798443047411433711863710553701580435862549499322823148731862265506602300216888714384046420491716521004791923989809090311345286430435573511352337970636821090540437548075018174506490180239867601225840965038484488499978736144472164415637120701933661793329016660803255654743119110005124504404835328001853238278080584937529061993694264404240625314988518199520754722092897450421196655836252567903939402489401061838721798073955321920846873270060997623760040722221838943770388864558535366246194600140027881777515408758933585783054710248483810155315366845526363132534915039977284586937297099139803006790837745745966751839717859672748428187743239655988882552624952384878379101203222516795356920415211420496543260111466276417128014600765866223452570864559286624174525012875670923085033945827664397820759443119016537887769828241031489739236200855981349279200044660053333949897053990357838671988725195822951736908140798988433570193244715813583476523303496357427172445789753020974264694532507045399336071549786425209057980583825497871810893024252844116071277012628189515074673947037097508407122836503230517047514797734221315009225652449642304009028974108182975841967484487306106165724524066580469869739286950792959834377669849740601125401852205136480192486321860088803618145922906702385309220398281256938099954884140355998457382663667018056644042074777710616019914068112606279312690238899086146805705364808416004941627041092010040874714322946354699963384921067029790192936059897129381427175967632932062390243168308983072364614168956160633259213894762100300421803841858776983133639110038073705390643961376069468138908265260701913083339658305842196576309619147218802386422076177110566557819656103247082050498481998272379505858013977614255111113956163271443717702505949637311215600271578945593653072493732702837631152872597380843022121780505037785502957946986240227731063734729661177341336432559153544608402602693062299013829868167059082408301772744808742268911113315650215414425085176029169197964965837288945668145976474553088926284825122131785911916913449062990770552765323267497266210494122186666348832996087899770781532025820032033960132496814206959928866137005615677467597671661234233891339272062826914876912344947960946951068905918844349551671286428635325615152203852190249472113886322400389995533942087450252375808427741465824393003914817748374878593513186628687495985680860631046189038245722141506791226434771245588274497783521177501245057584868794334364950337815884567267671699673162795885681458792647131011113176456786445132128261447262627208027862776889985655952873807692881457512423628292870505262872086844447086130766525836731518744715191929629659440908268911577546891062347826227648073997550628140666803737656380198310048348752162948198975327333112249493670844681134867625824614139395260190956905262690252610781126266565262749996218137644387843279090402584584457260858093112902243756624501526780211174031006397714870101943600477158688268470830405119670356156754199244963081472347423257060071681803502822516436998509308727322213188092949231095386919624573429553700486205978549805750547996331951265463805057635180490522167671904321524119532318073077930896326698902828421496508578262673625414322071862192357329105114112319487290613127766735411724265514264259694297264759205297298793587229567287059439054714245282287380221451814903890289653281075736082884714696219866855579262170031635665125002752126420631617680209129518665783914664078833359650822157549675012187007501173611532374205789479507513814148910824570132589311862096522662847660391683777624518955029611300867799501434294804556250140564648393099148442133512162269768889964118886978702051440741970625933237633699768180414466423920222989326458581633673739241445248021213534039696862483346648722085233148638447693755090909304655666720674799076707160157125739824801479307844199208672956351244250572682166598981772221361608795099738694745976776300528711011792202605412897689263669865202088173628242307469297321376078964913314576647368814247041132770353446135845830818722028564579048287076856612846867836314797295289157003594214802612151654084260358650139569726376382259423013100432792026392252540129501573456685244510630107381996815204267584934598274717887925089234693304439780874897111551295876542927147033019841807109287822592947552802195997462455271637623372294993588691838044550307805805290885915284236933483829463618234587736213222721095303694512651402800587117021400741155367420453791998591934975499560605644492551012736962383242147069014360355102393865427652772357811645581212641453886075686346590929641877686938012560371165815943455588025566927759524182040145225239116087450019704084964320128961786296042295400422432590269514268060792225269777664161357467309861767855976229527218850283422566424427993939080700732205435873006728011688827520023821960126444653329870502856811534639740752735252572330566635750828563969853700857453642955352844676578196936350224204951020135958874921764015010850027368131611092456220527213728905877428197001185418001769392155215500929926545313986913709187497244476344189241496752687832485675314560242810522032075836727702339326828794832334528244285516686525055486386583278643025199100207934180569213271201897798265624741835127786583837878619109243097854340976057221182094768734555062258170004820853603329886028572748474204053410407013767318187481711480709682797327701555144567102604338524730975689980383454457766450154615453488848566412456315289315685613791304122009332357817309290699354201093067790322708502375639658617076764337181681498851954946033767519887554059783056583549363593152799490929343447875643587447072551117877880217956598805627982966353025821745980617579069670620109403469123589447041168114244407751568184237500308278042425219175162621143990838238124023417226693017461072995632181203792208982665990655944312625877420604290359165788385697797866399838004767999415006543952091541735382300937571309736566668083013580902259702951033121973958684424434731191407884487408482526740700610133796935628444484181829107504854901814683990470781621003171215841601197195559685309278957488749256755390566184663174311237503445218973358200730488152737758845444622157551294198244318666381470864097501584712613639703868125795143160349825572317913520095563395426335605729235642100423201060976719155959034508634937575379801018479620586842427835387022856371918599322094933333978718179942710112966811131050920866336604566765189742006118258812163123510042741629332008260834401824198113242813261805730744283356227887311070074752588573703900185104958422906009711946772706687068550332845951736287454475927270772187010405655166232237627997733606905638658408252212774783668446199141365925433106597831235004305375516746592584374722509395338322790231789543386779617000107538889901478426998208822682779901773563484356222197420272997362497447109489843997803649578909579394677695848859799849737706825194705691322901395138421706646407308179777582419113693763860736687344843064509874080024340096870745282314901025028281329005977723278354054790148467691774982485573372926796009467925770277208169311311000535860832415089011559068774837213855598496957217797757045485943165448731963146038980902525787398908160243510429279378006886780468005663883472205716994546059807492403067072662636411243627585601165932261500951742212882229625348174040207606245179779272753255069230224285540015501598516571019547670995411884389230217709960164767739639687556905601530579163874484254957343718429436637629549931202471901256162022641375372918067519869652220055037990238582002790355421810737726271551495029526374487127265025448316872958957681617741493431830487694644836407813227634858147676102251136860508726744805562939340901361258634810538449520127156109670554576041927083136016924844830880065371692810116724554833197416539945765509192787614127521876364080756607945813782321810095774259183028190400810676949833582206026369450105646793214283428366197150827544826596897870604158114740774829481637849121365027301818580162473666776025332392669414136227214685429956262756567905441144787951254001151321083636481438018192622709975453770098654268052413297539471859165833228622357816866181690073236834157056634019496080180450859605408814535364934959317198868902450397712274527403709996685425522001292647379880974247847157364042483841120674057168153145513247498000504378499964854016268301491882864166269232385514085743282328246082875967231094171776453712898879475842246364800142339941714145773257398604771516320906195898292140986094447707884937347828245737586042313485389807360004165353918294856146611024536145035513024106695202720036607286563189695324101275406960664907254392792748288858477127149812084376166939862220448510430163033326087018718840645509071189333509089541660920553089448280169433994967896441309386666078758933461674501759534136883458478921003295072597998558890420751391741946813909858759658557277746649363230815227737918142648664302790360371224234850444616018959258324524136691830933708229305269106819340951781309406851307109448538047326708121803433341611684157013499502716136308651746933791982508415050576349898173644499687190639802924622567625325825558901696698543750331682458491059532542457789088492707081920150034235246417237819386994023324139329405401042115155615575342741485101840553128280772128449307192175047344924322956724391497644886326034564568668449512000454225045279609102318790531824076324616889838360654283113335670333351365415731629277550992279013660065203506478037550720155753322183821817367995471736833941855969801594509986191743470500632991903048206442766373056552564034956076915274600545978165057259348554802355619444387761012494456877833357157961217973465167904885886656310227511087713634006136724078655554227734148954855604288113724687742820366549148531595547063159276603129746740987697782351253135878943965954079125008311199868583688495409701869394418522195551016506989109316188812538272450568154329437311316988488452358278006163402223312136037480144047964515788007458770525391917211458053120703149462196498326208009839602350246482135768733051313412615202941406213037483588848747167518849754892483862290909702506747644240193896978675459441628635252349899953464466337299426896854127274179658933538326835178711689334543808024268756070396923657039353672395324653150152135302622187913831934832553124709378730643982966546427261948384932917443239931301957306956667041646939769276484515636915935723184795740482842921278603390066643888317136223098551884546309967907345022571273901056723414615801803003629530177636044380318794468718630270988429702108979253962084958472436553381035100132939353754677846615123779320749441333148113247625342953341869192803742131952525484382864300417979547145047815308874991984470734710438524246090542148179846604315822296156862374877850261982174500457417613489490742039934458140549145163535995854064897388913041790977999267500790888151414553872437663184727747775383947364273521114101455127436208829248317798751371197922574115475777562858309548119937297590708035068641754535228756708498414841572817568208803591277074696917297001313903098600111450011441686222098642922142085672228517425717203163416941203371471853847447534111170475124567461280060546956610817554006329807327019551974959918765739037024093742040707054521327789043526123798027377943711291084724091105601274582771513228051027546487585644335362022563550156391442511350621966074001523723961088898845191544687070520051987102116357629676379595063236775610645946817642747658647123421469871580455675877195664068153003906972021882593894363248310109053123847219487384275615565216813333644059756277978378778698498715210338544892650305646856636394113630637763628300087087221301551645702074166244605755259051410648370144067082014066263092605038260854064157414047480158712111032274910076896462232027333965782185611454880360026889841326004861423997563472389085467571009997004457044909715251011618081333966989835379307908490627878169541212387145478867357344499583950507229134758935535227703010231409011411416459314221981277847835098063765622402047312200387326366728935242586248460438923125333796904636575490669542769427708769034982522432562917712692422792107639776993607773511975027209977326684733980859436644987030320878880523741228456735291456983224926739201097529213136915188027730203369937013887961517473923660691045464710759761866110277803704938426409894241229374742181020827380628956029807400568897763103656318238703152897905149396366478121243125614000398902271710603194602413828617797430401217610928534395833650019582045829926718637268639672636981162475972833536106385163212038471866253990499193370953326930382898076066043074249671788536799323355181974267944091802407885176809964045508997511136042252258778288746586403858111881703060304049159231128897829680834681814277360804423071094627776668925727378023641282860730816542317585456791586003779990549674493030391944799183873971324933793839023701099442406285750443572367799298686495830295273043893063809070634830989144215067695202915841918097549164590379258811369912764534357337999278801717112444053415648330827657983352958457512929805403057485776164051150266761697802583021556170694040775609681894733251791307438167188180088026566554792833212035136988673792856116220729006215382546593241960989170209867680469455940583367613671957252301904554165840086944003693075688579903467990018556811866390988340693773204405962684472567455317803274899472711358851119768111068327268425594182388678863230384360289411376087051142503916281749228933082788932848985111978377355652156732035960555248874715590325651760968830501989368829469492445765229721908270554385618467090533204199399904459296468254421569084408903084381514332399738400383973199310884356645247714635440029620931327110626422574846293961703658817969332610525881951586726860341063538447089902840240665214326550816340029780219354857176275826807119354652619330227380671887713779379013481898743885506332967577084161376247087004244208318307828294058898226820706590871922586980238967273242176398696550164183827322428411888034477458648287344122660674554373181975339570739329432397039626510418102590987783164780033763073319898628900671450657397208094386320266663396772724337208541516180319183242902159312115494551031442885889674488291799480906324422921978845494200354902108627329762669344022898442248219182778219981134411023442043322752024667102844306981441614846756106449754879800189881255421445137990677013795915703155095556486929091684630517159469926616377754448523042011994005359072266248912701058191270704833085688399960022610098262594006454316612271310137430151229581906908620540812849787221212825452024221304227730483782368092538648242426055248343303275660993653560725255097570529704222730220955655182389043876270936891104888622724601856589481542926945218670426498142753226087633249188760210603520434315505748389855616138715037054552132501433400662829008926880375279601506943621717998896081195138979512180364547231015667532839648866048088987192465283093228887729580507841188599066079689995805526265534640790136878993222531025811297340740706149196267762509470352190150242171557185974979615312774263270118703042130726992618107691081833517138432016184855148888211796008977684270285781004919223853081763898183770922281307870552976590081229626106188067896009711394932288750980071940364828375043651675602586449137124182921381356061909642351984636151558422814232191807998485233769026223657188555256175734358403945336748725416924393044127964203829169558098490141806637324993802630924831446763935267214110618333341904704974047197888431307260914296823947995276523456222918380302785843509871985884882774288469315825913966597984201104546009077426360860353681026368187730435505161140636543731087471880169780481420731465046219653009094271398246688026137291319621804191591691877736818352580621096645951758516369794544678083899250725168717242778182757279516318692223615631469685315539348177411627438770735281873954652517524312095415846666194553838353539109734058387807757894153909564823194075884327672139393685520550549171635993301182158360926331259591393562349341526381226914729705529364293530984942861393620436587015657626315896373848634051588219045876177135676558730838379788211978573229581014199606206543843099485469278431519636193868528574484871334461936138626953577088806588697371267265305457337119762122515115437785543991312304142089708503487001554373827309139320224003068663138606121525348206435453075445552222526073389845981815541405648470825959341365736418098785797335481053083880981367789390843313407269442825373169288962826185948943740679795198639354847181811133572719337781414803280838986413927596462215887440635427568791269273399796643698972138481143876164644672106556389023696348780789061960058630272079394372204434107005355436347665294490423392519060089870434859836600157929387579965874246133449025166967253885446596140836408150256684905357330643554337380190939395138921408440236987885383090006163279049135670842024733985075941007305721098147234819865086161307097368389152771564362176118827670935492246895221380083528747251344249174076997450288635133068811160081989722944630390585475702958022354971450665720190098485544580669092060408398758239638686316041032172027526224124624518244954025263803155520477206363247213867680397583389521206610822062880285583639611027857063195276912745926719656357880519980771568473263042648320953857119670774781758719129394872225858156544009224510952748444119368611108219316383822194405476906353315083867964063854588127291511912938092865703552747982182936434382026334661004835629165485086088466334507333901835410273761322385542250168798242069814684648533238017374809478992347489171307719164067869917227932622253352001331185818468601377820742740955211264873951100414703175617535974324247122455835948577224300427777320552153661886255387303512731166127765184788138420952081898210386016432846401223901519703703688717047776560784497327025910107230431439990044693943681617834814345362975398569635341160847218651964514220622993097769196482752323780389736555890941368818322678231762835130851787924707004906773355404461649285410882651262564068004788202593973120065457272989513821795524822591213016575999868425306518388585802476584733462036295784310943451531443345948049146429826558018491291992889441867099751294889506364672583914908884143312514323016002274492329176407153981072567135950556799045855371132862309725032639759354839772028755362292474683296907496393212681412674588077285647812915555406101874224077820253056227255435791302103739578226697089710491285196443384581377460628110332618947930556537444539753104924431358559342054651776325515480985782007857332527146637807512458535438145794767771203563286585175994757630482764800673619567412992194153436791296841086834561402602167445343899927749505258553455473245281096650664516878678276878825314356659915071652223977806513827962314099503500208761301674431878957321159700086474323392620984676580589973866947957820938886374954082557296566194525249388432023025442297210932963618544916179796497738499398546525840669347789964177402801359680036485978213067162961965128961852879052458586683339233693643221950367697045004970357431145379314293806472134533952634998835249374711694535099392984639244018472333421227315786411759012075897325279318144656274127778167500487960052979651237959088106521896938940198217219430541840153591856350258480760570146882744713130804754135228936780307378574101284465005111894655134226914658686469410546342412346525902534413982144386626820771704489851762919547977657204494029997375358013723693589137225848366464772409282034298074842108402863337941944723006965820521447891475022571970064967661160086284143461502854865942350025546016762343489512999457393301606948966965202308333137754338766494981337656428493371173137594092471223672761755319854064546468087408332810539531029156820870213654837775600643081026154073378068920541084000475828924682584299521157859654273073856330860871029868066804470498111175490870597399064994199495015479373507370376043740442107140719154395231386701628554563695156621235244870947198789322006660117985504892263634977897770978903861083452743419448579708590844372750319207583269738570898304027314832541732265259108257956273234091078700573527293359139535772672970706309295011729180021986372596039869177912576013514519402062930496846803089611742695279460050176526626319186082091261865667705139969313845322184496045605255859636461586593351494021752865967747639343451159709972573243507430183189141420709668425762711278098194687587867787577120022485923219265426323829157689413360432151582246517111688588433766039670442839667474980841784194019869568976210445801353300588600908350076160870267978089943818586476616740753508726969422643490670534695457783121128053176802893596339036522896560651017358038901169032902778189163717287233575703665023860690013561870146430822278398985435502146503387009264016703985751307615539655819557565245564372467656164070169330321884611178319212669580907408919205000193485007882499914450358978406317342826327955839898396652300294919625144191673087793816732452307735297894773672387693677252771721776572422117104918352291032060383396219384439188841359354811637407731245210149823462455904555651343585568180501662782235400658127048210635223218227320061269318296317592545056084163960429840355036364317489779862955709170462567255301221786308260268399570209809349276671258056954587494494533865249702368701983184862077454075422713658443954718800058212212925060909389236626610488856770210496191507536283708274515240024434429817804931930026485702835330611785190564436870885726580361361666868356601395558801690222416563738029495319724005505311575045708098136010843694321448057608734402275047664835775357326854938526865815361516241682913297040645997334969586195726737807523351239183165874465192039814303012663707540255006239592146684301081053285652502737262730571557927436939957182424332774788710808330975421987120734113788630589821368750622393791482208599315958256766624464840915952735901868103784061624019805653574236677493703849191725553028571939351795135450238003640224097786489915049355652509777075342906113294315457823360917714710186709235942404038510777084729016797460126488397867799336960338516376814473155492626093422147696010681052329415054188021543475697503793525282651859165441308586100913917516434276702313821274976090358100898166514002702818316458736340469839421946674342962715694535237108647055586281549416173117013233396282602374303600071694793977050971863040733999101469659537344558473720784395748342504269928913166449386688517769039869739735357123754322281410900625925013881994912688457797824095338683504470451014998087011124631955923297780635168267640709309447174077023855080304674887326247673908821899042340345807498855563834788478898346875848448830101436559297282148385301600647455590817957364738689382273012105096353335944073938891280623810044744946127484588398470316657089412064089478507800608923426193261681736218041352875837706374901132465765283079650719280188747019388240962638555516913122549458880288456400745544541517384245242670221202472040319252826293565055364849192071210374290665729787264703290668000254286522341494005660511977144254788157526967711351178437381155620026565209729423071708622074204077263208198956063158520805389543925403335171010996680993028851008499173647472676364474486547051496816052483510075055690367698463327651457298869384736549064085384407711107349350206430241611154964274380939433231191145142277385018494422940045076315487261484147098928055807470382932786941796004644976959561403654761416639485444516767509428597923028601533773634743761904903956833400856049438754528914002820330667425933730437242027259672286949365142502660352995054464496979233328534655825209223925217919231345019510839036356287519526815759987685866324147703340007889868604930576155346292434178752196350023838272198530021501878143469824961317923068912203907284976179628926243348131803177128718157623935121578014277355247807833595097306566247349700099254736445235424579679609419206454624269166302820539960410570441469815955266590416046844058847075767663167360391860854316008932154591192953694403990583238007725403759756822049088480881521607309696654139093323427592048968169270804671275455498760218600004976392144401054436028820231170835328838210137840421194694905096614486049870679739511958045319029643318759891910605732138067776401125110604854987112725477902393988710772065438046140495643339206320845478044757261160684363970770167038759294949369031351462105098813725786665789931638709926568190550336433834534887796778889832274902479842754236598013339900597233063202220895206906526862992454226409530091969951723734257000600613204908557966023042228465108799885065369986419350600732905488676462674454176008087187280060998326384964856212153379119421958843325611066259685880252896331665087074711033277381344971651518663052393692561784341874258666549872007587587363393451390530696319688868956572873248732263305072868107338530386869221445085384851688807789831667465990241838378535363390944130176487974660961317833667041504192472326725154010837848017620718481838981457609193916811125250147170361373921950965097007534420395812442782446665029448651011894603348603819649445203038655224508731163869200545088367212643011072598499413811506347572956386850032773881454802726383602891362110599298876129074357255884441069964708120946761019659767721613047805193848764464330850635950301825214654774390872149889439395727956848999769373531430072628173639764547012626200472615264839321122452988915610637590849238471449665533533503239457218019745637908137434000037853033757858536226339279833878031373178081792702781943888816042544622002741553100852642009703485773820221881420685413562077005318609782602668615894888733498908296868817470352575269492734143573110257119161096826738643785171536998220387448829204792950460172552137298793549479273962319199426853561244925075285042617432121471633604231603792355981204545772830445767561000129341139502673564012927600927985436309898275546195068418016809216158832035495284496606866748730423592063395502228537863383293233385286171360923750734140016993628912809863557764348262077832485148007284831962455672571038162847800314210261481667068579340442741201913800562802102930396376748990385967486763202369229013192316862421021750708588696182981539336523292305899261338051259400549808066776315797894762094568661957618508107460233173352239758135029490590709215524843057030518747930819875544977828697010478163448582515920125574426343063782159564849284327302825543608866771565259756431123847618378380500284745908644994753488380942189731432953638022533468660993912503187547565000256672514634986603075296281369243580560255832642266155102315611375983321079574576677324319682582684439322344483509761414573676966602299656441821356927490166191689839765567044502811954532908911980616867176685160451534183304863097856106608174415358352413253137654340420682492175649080646844200919973584364627550674457224792308216166646501682870688005917819136361072389427009420138933797561916975299832714551835091732477489507453017860302828858090589677272982728311079829949440804641570450185256842360851765754386039722984834050998223551068942384031209416433637020751369445337420057775545800455560611004479644282220178481250753167314527541782353007401020967235735942921587292740605100371560246222243114370620460676280382733044586273334025360946423130782502092842843145445066305914776045072010200746194226167665921534008328045851827080527361571197195914146236350533755176666778911989416961042940249224006834287760841855369576606297339824923404356578187364913246496142655588135425548685117311590692772982973679234255004103214602658973455291026905746955352734563767858773705466573381064290946897446939037737031651676832376380448090034090988238267770272374106893466260672251287244577365481847836305747681913217977635949888666690876732852772537286787709587701431119595024828115370552982037978544238519885653362196871198231721408742961678957441409683889347913789309524102712122145701912873474816551692111462604422073766204107093321539608753249123493922070630912080043852455386682021975811939778786032309932698903061003227105644647541132521465444202154140105212949530562610533838070275126258993406467891641269263931510516732165458609569673792478114124473618019516451365504961253705331692429563554673628792705097611915288299104570044993512225782471351823363069610377395946840235242009503233433645282643916828350065281032250886222797067302423203822546041832683008733415122323282949397762743344425076948220192970433098002120246251452340787173947404520108724285086526536378739722555158514318248193823239340539772681166864925142199534191575382820566429549093147836008168313771957785272616274875020025806761929273778259277070463091001728739373223530723873622537940361656451589206159948996222507470670918257458556258974509670158170693378043065578720398736467967399920440711712976091710911001347686090474218706338505120403522800115653517458699814068146538366383684040683589768534910174962791660677495763034397772641487413136892664796682340062569828415133597405922289042840135439561819367088923050603071773143009428747860270174465401541435064466689843193314486871388117203163168773556719131707819450922986669649893290273485631014734698831701682336313764650252807674246320197566011799233698785221411397008793889910855005824045779114032191312898448880798242919934559120029552632442958940063949899402707062832976135436117933357998417600922326329476263102536533816009738770852144980502743219908342598442539494162113596409919207042685624053939735167684032248512056084229013498374003778537545585319833690534240463151963897610096680980282545058334620315812618417946584059233925252320346164098126654117595446335073198461206647967927547091686965941156450802241052701358008289358198120608736343013786236883556948817028712103432171906796267265974254016355131822275868624438060511580981317055501373514757656493848259067865323106999386268755396946370636396814059286209272346352770587562939018774803292365863500572264268025839302884877344658648131224882672568439881003004573721930161050252021827952239822996240686099755685283379776580839462726477118239311139310602814273756168662327027049505408919754617009800727253175740600609789266196839045331729929534173931748901750791234653835962532433034837248644712053261817321298101622418911242407311353410784053151722731219439346103069373352104467638104401039605342343660555863904768375276206873491344555790969115039091201615060470183576868154160810659677626796832345019745680158888380073259365225000670218218385725431848750065351111311677983570818895838819906722285572101548809138679654705197968601615057074626304096358787863398671929888193515742117376268784106422358415092015758696583421428129756628293726334533200693268398946605770821291964739530445364793429289858012981735415110569782336492704376707845482869557198864901335812293423108774139866654466912610334006456246129545684586492834006191821817439268144346120099242238135205570997808861213236805338654952787288156519841135059770312614886989406081336336671053067238014598930511932290796087559693834409222321245127443527081231236447913595038620597139493986903219440248638698985063496308653897259022423079269785497227582506972341419513232465517308744936284708619586472855234615513418385645715352134831117447760677215390980589743648063654555208529092703365201761787820396650330942646207798953299327277397709120208110080017161059209374582957407424578963665906897872751778349467811231810947732898877287759622276331890449519254727029078754102153567262485930371807790246633073818429188190229640607848486291386777333004235264098436138302058195747598886603868267236505528555952640321384995542549729197734248710162292563855908373512697220437319761138020882596896258093870898380804583511686010849456824958022515807492342441152197178923634947740927297043918204200169191840521450541551280695042262992524648274989285486848643128339449118292060481157679196314874213334894902135179754712473824082920405542425663567634489876067918629209865599208855350201394747804407455428827421739365788554137329958719719597119104051461217362271037484552718177957515858420708018290604480043566590954768634413492536480339474345353460065569881795342868467266536910902586271036524769401922589422537719986241539007265835731415201097523307804733328341639529463111169084948461402508774322929285990533007880345359824440882672055030100036391630226047427563210914852782203471976670606605797612788149595363328679088563433930989982643198076025378417641657267450287555572473195617669453745001341332978741454366234597588946929425047654488625519857253099832622597054224417805124039459135660829891690347974455887018696337043817921025809196380225785300722190504842775950307603869416991944712509935918530794499209576511971393097562207686077955393733211655882417248611467206997751470327955125434489309325035429939220204587464253843930990834045022268919843071698577360081293800318133478742663192155765648017969632434025742361390536391270340635039919200963664296779896429355688536898767742497000602017035139974701128503784189915890399139095742199920113696987939533110327000894535486719810688620673473565833005809722301117644526134915950348444296595470202243928308040987007634061462036524242344313991398195863246700252735031275928886312699126828751993282428327927991414916195558106717537097249568355252115100365364300779417712885564065799718660955482672482086699820730938684053311551312617534006362434267671569910095872466870727103550661511394507796650237129149091819155077745562233112331731973763402717248332182105765724952223947234371254567536208550522948922405534381870552979495524980431213510668461891781845230202899258174270741249885716919570309386365832292122631859806872431382391523260049166132829357179318830072407652933726975691552556150401293388140800103494511018664495213633463954561530422750566816406528406360372967301228478388030298865112711270004995916754734618946074251998115412511743212824788032175241352193637114417563167388577797405142237630219014984681924226663136206024722964396199211372582037814216648103668420662508709089766160662265646080181483350872044700995652386280802546759274443706996757153334642216164045738455841925236424211332980320098612581673077026835254843300938396679183222414672506672735889518461569730175615156481005015517343169972253070132957089993928914956542056445001436791108457181627640550412352004046503414954261445542648838162118637041163130291308524489710675098692139210892773408979308390567672503270341473946686969422219721565622005321683800212419603671240865915366139785564112506973929240649607763265980289033138536221427850994032061179015661482378293889938220576447495516130060661408899128939604991631702429557101354500691163904646807780321448537624923979876554944946050467379390734725997318701881961890671830984161194448866182074727114434975663623124532844345168977123556324602193754118580736593265544726147205649111587285178199844052019680967324641311308456527814826477534771261183020604946830200931204446993267233994245630535046239728273802229459561793563362805369380387456750866183875935333705924697002096572284638117952411298033281370013219477739811342810885509069455663389148691533215496848804698729353930444965129598050482405726030720337181799013216288427260844897144543963610154708464395191377605473987140552417812454218212174597875686656008904376901128297035215467829631290739976539960122890999772692061289931588824410600156806991938151139735590222513145897719570704494895800779407666967563669447145038581742672228295366137427634594397834455724083043007068363374297549839712924748473203773422819009552183763264300353343692726534699513539664426409567002762237109823503962852714120435948433590923557491645337064129125869338139357460160249482067850081911940078979028891264883665199147086955475403367642041110540354352022428220006812476321457614757866260300197075468489632789924330838405732854960142951604427712355490845124982822488202540981584929197513796919389844177454835456318475048982140593771627764959498630059780672991545122251909074871279622536425723662614456907599680792349962061352659086404518584815735034677322522785163651837529040883270472439094506166601845945828107061785847472269358484224250487739400496599874760505656099793815481965382924172551660654637649907454963026150897848345272445804774942949524315790316984559256319197843341963813939776148860633122254177524234682399985537578041627898040402101423076511051192734269386618680448092189278598023786455891411850651305846022294917005539327539930256118248770052682319315103211608426683290712625581058395690169952723727244133381549287597229080979169231686207790034275733897173585222221274585263224419519189758280183893194050405019276203025563382803640948364645465433216879417010234980200228573533297007262975112805982971542937097595782565621361873860016007658508246951787162105866288705030808205733965850445839082467714467409058447284715740609820258655378684679910133593453066878845237045638714528119735742173519365731134336932457321478420933148753544537339796455360209376256331781551660339778666971926585294262345603014659626690522839763928347224344268187985302843519609801704105915755196162425269466892587465619410839501584839385295857036790203508291266571858461613359593658835260323729861296203867604536521837074755228129380187550015718316947156643933296182298766784020825069605395370756469540841087079537467410108995991850847258364328153141963366347145847703442314401067451308889741854375963063886594882953431031281624142258879339461318093134329490963019364662248800750446796238290911623001793218534189177066566653090592694904579204647237071428351386352344816509092845695101333532056057077546104848296046706349471009977609979546946037855865406993236412547956270437046209990908219425645130169211277527280733370125317633706820956259492372026328555414343054834150060434660925696401593638681837124115809046629296911912027861493237053261273981482225081765846324540203909293192087743636193061636532123616877501185643238330802087267194558238743693352004230201785690742915629069933090780271425632950973471746707363895315097073542609619260976966635079254495325045194793906755169595456157004964715583100953167607772546106224238021193916286994256003190897824683761304950553678918598555364642786610220578402034046818583707376137794127078587118613617301258408302193109077982986196818366678055296263113376212584706034237247128200842957574565258149535184326441868999652732962287214914065757687945065500111540668829560500356121766827111194534031347022666938328429199293755107730236825512352192364072763543395210300441429272661934417602341385227881550043187794682312602221348804442256142247933938494872455406532146529731275563345592095079297800238347891154350845543592503098143539297716670790422171163667925534717434079886024520052684367445306886485874528438553597992034408779290086436521514543659189325521671510967092773926315742006932068730933991799079873699974756816028360058340311795483003744512608798446907696112772538142881524814634039856273773617051385683030871354365978273359080277027620669171494487047361008354270730598758383271599544863399575703702438198132819664520284247792380373063746458447130975348603570735366043882033339441845173328496588813617172262615025612290501556522162820512181398197508125883437066584791279630296832800067268213272822759333460514320586185463980198863261450489341051665230693665687015771272245274881889395359435392368249291959284282183814702093676869047734474565745310059398876513828691478794951204863894104805734068740111257278615653471597083418213247861719837532820304466919790903262194194989936552223990480822567814709413453304666577645586567311144436503416633807231744481042277761432014118005333033820542535985269787004046925934521964131833473129395954074487781275820933014705468542329058599075022914864097650707076630339062137965344842618621779664938703713253472562203983894314901066474178966524580254027809282366998398625571166942881104905309382001976013113537094047137834844650371456080644537339444723226662781384365549007716070785812029772998799031080732581636535334553552125539639333592560916776929881393838853789773349251582853479473730996485737390194922754520573977133084384085065569376817002013243669980115862309962980157689067948529255662681758705996993104016482163638127304861096302937091992695365894906936055100871872345388102040533669805769641940522085335077968165549909952440405480101918184100224405791908288672726395251178776295598917536128027853893341553023259419517781053832130254769290933169101009974047877730367858784054076042685906901679749552489328753973690939372082298399555905007156838965554088652469257607182887373924507964370989467818124741014843986080200791841129293584747700589971979554428147721291680745384782229126497777437115646968654815514429546096345096714378699073045886620316822511887473625669445580308140478956043834471785686160287570052887711315574256190373158167485971445126963904136841358361026251364821475304973626955070774455101135844579039072144671123251696090052654423028540739803214303858165264980618387952524738713824938648030623856049348405194771790548328432821524269309455851406607377440544449815390775596509174964583235270042241472738318085504144583944011055160724794359531524950739410591898203955091245687224400332678390010197240905921330038747659788293649477197276110285896391449551347825053160012446337382952584762226359719547507274882598855031372626015604709604953828244848517343194234589893680398703038279963056085625026599383439438436226134415383725556580983433408223958213722598340008799583018146280657613143241640625819362206436571817262908480401969736014274150149879440068863724913329527107445680289016669344400542155269592009457516467875045431476057807667363779686019896382956036533176552987682351904701195468794010147117836054992698113237443684193567328389535173479260815732744483558989926178063742419316138354938726505316277508257324152150505990802728145620741786537369965290422498389762134825262567965097496164711101266554919047029529095018080710669882572966850674846190563668473588733423025144243486289215335431974023025584763410842974962525747729550241386887460867939445628982003948509211585860350553034196525872452354204678095358040864892223701152234849707383678857811619219112959254478552027572546491355177842279011747567513258834906687275849631071072393748038790111070777698041436445408013849916739839240098735614382213589809549774941578900559129124333869385927563613596525875116296504323034330419113335754946658246293931208493739102628867714639271846327026511708054498226819379468102521165751854788280621632314945297224566147803501825545359583838408398403526745994585178248457912805149061708905915502862119369542259193471164847152634635614341564893140304370287593967908642206988915077619744160358283472595014249292148756228373562862323078996530639366835823055024045695749722225842784992564219311340688925933268180768955060683075913475102452088902676118262691888077194325042815262061448119256436691062466332112724591404213563908681118950396454621017360821728233783481983926814926402355693421701389636164231798013622695376111365215006097378387932576435726435977661211053572557300095493476496559161732208208766616227612450981998231501039620812755590522929878748976539404639705291042562889643443517725538116620990838505779876201004978186052381211141327934676279456360526976303449289040667481304611724661373249408823823849500239296998253355102363889154595900054894850794674355081565181634072735813413262888865356188330727319988753687046729077912433515499690749068315851972883018164007803150520122781379645345272575898801070057913712031465227015932888129654980252625691273933242942607506185226336413840544729838773721831865217792801548309428917339002574571853035947637730008605281841307142037669085537521460838890417833949453262724550412370147447793050101493226624313584294730052465510049302056405097956515491445655956764592401906307189682699810011352002699360091013232262004893126731028936239949380474690822914774955710180588670411843984376130427675043578122579848697207389457884197458557896399342213530542612697866206290554372170704327788471486699694509359553014354935120038527921831608352759006873098028061595981547481913262978203522886712051027597195996443028280779067868866306874958154406273848570667681402646948539923144350058728822157291102245918668266182744168198463790891891983836730743068339268063176665056490114932594851874025873093148933917163671055642187191534719697325692669061333051348880020752783724386696991935118277467236135157830731769935681327593086957098613868729974655110424425452337853968504845177527343588681027307067068269160288280138879821137774869006311583910701324887578182032701525723022781566047344569863194483464449496098367977573712108456885610466346873254720247811500277061763232332104171954374541886803835047232630382736567809014312647897809846245504428893452054080797857360458912438947277614311122802873775828230345586133251083640149707651748258932321617604969078660482763586170422761089895224961119878689955793018749387278579869439055621665947741114891091180612387315209768853838292993278376483422977114947710748965341738932540690761329637355167365318123393190641644668959186353408295123907125969135603756082023392301447638768851619777577410693750189330350611270016802743992964632847877591479336088491751288030585275415451092371081157840682342220579407696534424345383085022151460803653633465954388252414102903073848599039597563413801705606194907647536128754799729287588737763801369001443153183841174756158187587505171136764583831580917267554391387421651820478193959303528284239579272747304476158938752045813750873547847306767976772699937978007531245786952107223799387098311416004198235427006107711146713619569277094400322754715665444971946575359118625219253096421504989122981550860165350587160178192146172595983945419037030200186705654778877961688804225583406165925806047613283817690696148764804300381949234966280140400326340785598415225709441813825698789178065028338038458658845807702709305448055040099738883773681078513122891712768161752310459178066810093730375031451807399649465801528317420415929216253158549756070865082244360280373224567561055129485682196357484233441391987403408447750569709803774503661653481847179281258094633822486825605543169938301919764425356993849270763610697645885724961058802739884460672127578751078604040308741437843318886721684488528557553344630145691390438087978372956226889314072901982480114790952390383603123774581762089274734393661910032423473187385586799875396354339593682410647260450270737792707459469958810694481953305637484280198973266046546786116905423079028036800504283986603096792111614927689358720171983457206519701650476831353560273430540022147693555766252929698699657633358713882321607692319688917963768837387025451432946820395825814525826468357328874265660700251944097661415702968416496242194497615379458672736349380074508170631307755247973880470301577178730281420917698816661118528210758705566602184127540555465269107964717652234927064878273208341299066212568870411327895441530729080268225891430758251118398823699339212970725188188053912876996354681997524965217529699274107324576429990353914506546930683128586700379636074437998173545028648721801872974121893027682971673355927708386099504795012595837775202259516211945108873759852816853245151189784649574884964028191415246582440149807632731197579389161005693623684366322583921802379281404523768915338743267966797659353600780966382195271327616869133282692429531448540349815240920741660443411869322249342754376264525523912423143857720014026235563276420895894017438711782912910266926143376912494770502339043987203211650474069605231380145575538289103493981119201096921050430816329211051712535073728604674109918910617569787643110948061892870723149566124552640491530641817501787396723658635888743308912262390828833027005327765607084567935511031396478762698473096298793580932529277379491021860691922398770275621989486484428169647949560170198138761258520805290236508784626349313603107318260822294833155535290672118713482605300930208985120155804667001979413139989933333377157091282839770294337234281647097495799469185020220707700448606604030560112765597649172616617203605458345876920404976681718215486044834988054364191783783481211285231741179076732057002458706780287391761168635901509292897247331385741322740324462130287572638964054829684361387297200364671989229022811819025789247181563132166753912606002670071155966456589091592920104826221152744209925988091513036232858532251796650847565516112900322698497385012652236378206936990741750240113287488736081436106158220278463088198833967803016059900381053687761149055739731359386028736114619492463655896271148368919338926260659465862521119993024624316840125691748888011915803971256402334138785905866841821381041325904457500135664279639263940436228399038289682046596566345913228436110542308844944412869234652618723130240271366233124533729989961777583387763516759659439557144375742609823199379467353870170253592263241552867603106841478825291707531012766296402335973337151826915062096822479959441701726522343899544072556384357004183801525284536295892974431554803728727305666824622406387712003740830818123270996696032854365192136737936895513524206608897447888568511230350254427437025807914215059604433016352124730302343006619736829680780398467243655578267690658545421832772024069748135607403633019516368236775281435973730146337889212814992376783437243222601352111020842245178516202745834312324834387042010233206877180905654907585135439156583202643506206103449272759860650090773271783481036655967729114086913700132200827779000263921103953119043820158725323394250917639146675922960511193870724023014657946694570170230677027668473157396120769149441921945012368180287409641936101010031099238215130599305516408191036505229841970673929629526578227278246894673029920752575875464741457391858818288190817308474600424098913914930368898732834745041243542768490065432316326868289160841877011411202854966622385776170537316330964491223975702226898043432877309689912508696885671224431080989711131559316820530883232298513796731848311058899961079406975038493348536458528995502698976131332024441767918642420991527031022906465182504216677051141249503778876648370173373226600841623026746843503312167847959722209001773965389700435290853302220483768764235189169095282249201757295422254963617241706363743475473422046609339746499666700872448335838760660803652892008301317373366431039288314074086634345148635969660310292581941151377483791773516810938040556925625132240579511724626767428908030156948524380492170717233353240695007317664440400887280881208402931581765726525135055527745349306712955641670174185206226148635133826029416902402980404748627254250323397491343895305977312170438827093857535737643153081330324250914663990754205200265428335915532692816062064923085477473494833796365013811747873383658825078112131666812193997549026706708801884647267027051727384435404329555287044339864274110176939266883478914728066005963144025785267130542784309304621469662345233138585994585015511970141391847510557545790945461970880122585877218099303547697509487146226571184931391545847216072290527863067933476974753507586488016914894423724305208808804172951713434263323171442372353719272915955625159270761246201747180245727704681561558588545506828028062787305255212171946466705950836299221526445508733749113848325978585423242360344736165057797617763448503815130264711319411992134955933837694727933296071187484181386672415078691598037014042397283386962939821400606873891087696907885138008457373342648829171532586327249841666981614993328049310894588801255357416469700269483833059180329038774478831696443014093592105768932134665108413937208695079078940743654624980059302364936928502643616722077186492169743363234989076041832416326087310681789703273492437888082926760376133829847486143840176541111429691939829288058546974571363462727794050816224840545721832525221807396056957307393495370242612377053959550195519416455278824968261602248411736734979608393799811464268764020353927955057564112383535861633906166734858720158403181649312662311837122569861365572403059445769522684242984275816907430917123533404090114284129806519020948594731553367042724231004249750761161912400524175290036120514420145424184403631444625419128846731348390887916227186745812133723446381017814475149491157197100798271388604142911856117692224459153875083704895500532870685643293658869492479107453607596996546314230867046046007211509510141856232994161137814221725380712955411112216762883038458094683255765768559168845600877885834476244581585414793716231741306356894994639128376267540715187667503398518996233712727751010579027256124400104433080377225081992229765417420205765909048450479602484466073705563062281021035389535852221536554767180034980952925851600034097578375830504022041933494796618752032161284503658309207279787622057646321923205267118619117599706772273170784014311780376868140079550169263071532088821583785168070085034350475371567157443558001180374724718229928350263325448064734573784525735784762746152647612657487246132438130494108271672762557904349867332158527434270259278996854419839637152764135124990602894108616886575492284515898439885099783487332882387724289650957677297234007682155542057044600572957485672384033570701279585148965056957752197739921255661491262343799424645991180651321799883322622781053849620703266285419743963925325303129539902667759060922567110372078863498988484574152615407209140979633336009567253493568451238382861098355055881777283767224397962669963631005583646677078552191977823787307621908965340175757661709244323491575129100879485802368024208406765405193598741664973970597081991960376304441244170317708295944957523511277018562349500836069548683155936620190607572964585242809965628924436056582667120608425964237172426007531711139450595125562088180199267304607262715352386935743096558959800086093961067877336028948309143087997214553948642987664092441305183260683438042571207846967251384262439493445811923222500513840732722969825175371611095720887791645267799307176085135667003155158990551503918370331052940196055487329649269092773309669795492976879960428840559643577144146012503505012668056535012225386825499726016949447718305910841735512735521454254422516575758078564169393057693373692465159455050563946483622026440829699092118166066327020530765636427456812513805083626820001068065159267376914152393961653729232149080132596886252430152522828701310776572420287145507060925985783027588604737725718192318062806794933901253864747992264202754261932671744484727881685353211819393922717537026939174580736487511604933084371075394869026182855856391891006582379614935593115912641590634477590859113732763200315237212699169617159515383655764327202381375652803969376457624395064279071704256368285725752700564136034700280570683974869234618685376178755849927817151554989679270958006126654537532432232227667186164355742001595296164740102570596806006152697385656028953213117577377705300077968140077785447749734673812087436561746464819589846953181784196719224839148167204622453607461614136972897876823526025312156473574926085665544590257279150509913348302942502830173196416677017472401005346325723036639220682215780999315050024503678619917165476736746620613602195048908415874060968895190793326998316143824975502072088359462653744151795834448398586791155551184710116803088792435311481749011442652614393185644592963202914672228770512093748422976061856538622907796541333554410538733944442685273021791725565060061545264152632690070348831497646259518587193461072766461074702549281948533326897086573998423912995953664034304320572112574263311525797574378862945655112389308160148820040567449239683007815633876929214585512438371259455166651167860205491926112519381108051338493002516702586799274978175420635586966326798621451886504300907720787263796208517077378385487641108651331363559923395721511729848804681650092992101431200906799721242792947370385284399690581621914752270336811685725239728806931351733086132881402128674390994057782472972237644973626281414137498014291981459335536728074678056147356438321733848189815756131703624327827756576090303099259135998453448945378536838484960059653201079742859172118387575510780585753025932419315748916057209176065458562398594075433039710950380136262126313766255300487546992511630182590011812547992410195910249316886299559811989406581472052404326807138316514879491015350573346043718134522540036673170930578911173338001344358878873381919423008501594051744437070432690683702456535619363779894860978068280680787188109318187218140464650090929024459824236087793983297715559709134664037161620717237021453411715221421057016366160306213876632735241577645389523187181883619201753042012512709781204111425912271676157273712305854295704990028289775348045771470200563646685381771457519138163251422818543007050838411268780447292765227450971846888392358448400917760763084579473106439440778419358505667087140489751580104075504408982055791612762960367767858417423759118790486402340083587483470725478696714480054735894436893414094351003707139562048739956053628938874013202836291950112400105325539527640323651953972582398232178133159011334088634480646629016792313620599349434112273400932015510370758010541616410876520838194350230877178896623780811407047176373662565016621566593455572790449856953170269403315977224017246743051532335527436447151918332227743970389664033404815081990557258879264819523256001481666170254930825198142701559996402524774916795979329458785628068718870218411428313810103623809722270837348633303857614814765079096132230570949114370785923833297107099946447681196089228205410636254663663567115613787661354221535438679277396679888901711710849279401732681274846698738974185292971057054026780928789532149086683120881797651701232101280609473534603441215022924838473908567031979776624964786350062741302011183467903075166555832627590864766890640020152900254792232404558229250429051303410525294692750264008183685498796745272323504157973826946726852441227171675793518474526819255427810519829909201798464698740933642597144375454271332638535234219227291315443860475149834505033753702411587420207830372256524318904032510386317140024725343867357243338352520797888727614965442720648412925052631800098041361593797219816220591290016277383536037369134283472089703332592811966921888070734873885518644904624178531150790239642891444119988490934957607089139353912365398028105252985942152438000000157920481923735163800654785646417711499173273499015956744718603791365603941192078276442979295301188389476157388905712014849584126286539993782093828542971852526776646347554841943579479057582870299890996214957451385758627731129504407183063530752920508123791490687767707829922115741303444432768566437760594505607980178564979170619266883043650198141376225835975430260306560783467278487063212707913864834274821144747755332064148042267118922990140649265938745968994920677214283485672449604516182332235240485506636936035480369162455027766415224929749871662051543727819842439777419400631044703706388883229195844524389654967032819894882204160915815014856846396450210650157471389535106065698617680389083727576466152788833567594894803583592991616906539110611829063439229020175464116984944167797949296443253878943192925130134705300084181569373885239643808209847356993335688056745728220232484663342293009310830341270344414026686815242412367661322157651723604175800529701615688927377153369401761063551263001276019345345873460920918245201647806794285853753491772180190978969246924084388435929903269335090394839945002129561922914059500994188750291432225786750297833892219427506802511535312510790035756266328513773454389119843471891539322668465056725242750102473408128067181606586606005008535799602631154377787468984786868028085387695470865377478605868136244835618004730269678437573254274495208290862650546056092858944877927706639528559730957807985865866592305055708278389749162380448700830724746393057116449923094090944996786913010235518442679205746418172586048686713020179264548605643763585880190252497928618808051291067183182082196655547373533449226556895137217664354472189345310580905471600267476035880240679719452248636998448838407707235547736852891044502675325388733109937741128851458276030210592298849530346932436497277630839023796879264652484995458623811195181587331283305302357243899389356325180131756122604571543744795466733242490365475814659377477119230083309208828359410820107654492920787666201602087486156797803881162633048458943061679435960373057601267981115822244640489887579448190684348144018562229836493830331416874922431410583013512818081213648062982185776485099929403247519586118817011455976624977226489811575346054906723759591004778351456173943722038775181207602285382037956122223904685940604599113865456545657900460156357825944297458881552146370473983172034031915900313089707729154317940323092618187672564963661027888051876172845202244958216644357422109335923680315620283859124576655000917484041726541588173770266289935331890783073312621981483253928923865847910584844256009126120911594546874084305372397196407271491996362349327726111889613549593240330102797607104856599158415645129164365552301351011918780240601574852704564989643900328865291850895886747504412252298436331979201449731932967524646333259592468735334344310040215697715427195073896346504175780778999862918925934374953829899000023623639339352055781088214995384857113921852499533546467472633307699007675981271321895953630299218917858229248207406168400515018710484083147124078039270715170483328570225825409950943400096012729382892216877989257578256860836664127211932860692596886601038569335141907271515478267252078429529117487959041640679561946079750621537905911678210937987342107464951312307921836070965153846184933468718220844066071497183082578060225883052162281468958830848124628990394094464125404138886911877197407745178878535141621740247289354469989323984988595905303876735304383822912881221508344652340459460531379599497304726686432458524377990182093076867983798102785102629200824425318756464449216035540965828697785153044795516138364008490507539190607312309264001463333368735728893023722240206523397066158490131117700475143100022609640696028766174272359672323115852128973911422795033803426680163711576696450271056083262830879147112074755977925937906828015145987765129109222593492778012743974687492607246481996727842814345642850731549536444057282851071005412679527773744647426303136087014829197305255421866588677886319391458468977549975827186304405560598372297461589252326879224964791913825119800342384480646576413776306631727906342908061865876672851513878433706939934374456293777252349771916760354844486849573258688164964141870509101498977210479477539927501588779358608141741588537374239416243421205975457566796789815190358941352236689416147466164177376589709646527569397552789565752333134022779691446351675173623146369859395853714978353214230124316754012584897216914846499353287872676976072432386889121329527922185805673640898040367027112071740658929139257730626265659139352959368387221965876552759390556963504120767054256214621806085081076791768941563721077644635645713025894872079665418901478606563836714423845716208908800148318591424362133972255967653366843561893905652465275951149794934302278391455737570693744860368460758846310398204278114040649551536245635340265912460892777971254818302377015762908842055368586608873766806282618651237093831662550428681198113013039639205183536819365776163007014947124016440682172816908212064183483413424288219519925868177823451461955197562768400387417676357860511941997146649681491454784740305436091496269349028247815023787805831769328479756750937210793540955192909915630035216856594389697074272788272071999494218442267088379794694272904247603796372298830199556536969088622991911534307014218793176425382207043075746292887993974394560931835567448209973119854413442303371207974576881204787996522441346416761689887404292067593599163167136958487088718389438213789071935156909885844707201690492135911161758580885874178206687287136256367752230719688751335350308200430113419453934672592952295194892241357283674413141452019642190421800939632246205712674379980758973063275480356947566192871525342976772385569351318773758000340832731951839478988135095049764948184073976521993650811649083264472739440399677000898163726001100889327553568926148694667206125293917997536270688078049053003927181120955066065582055947904591909782878889074357702936721807779102801818531750846318786993822516165531608677465240380175069369141736110082497933137284374250074114713612484898858397216281938619519985826562455947548917868042074807487624444700514243941139918654805388199803753096503291926227252997381556527430354706606636783095236802550147474352516873707408331394514606428730420710291376807906187405948540713494076648537462699676185732137074661983866822661332582494754443869857277132137931445205167708076272692026493802100033779516547662370681248314368082452958299694421785216009943094502441425079474061761421060322381597030102056285622290052086217418283233871628486449428853616149238128670108682497353583837437357653838348480906059069012476556150714172041125909842269627323131988894354367171635062656560920514764434961241833716191926891596684044311313411980304826308977896432013554796483284150935917298327476772969944854027140298577153719138561199201218487209097612930659057590103723803826651414272551705275215596521413972037965596441939455576059240106602418333586327804630519476811796433021545738957019028270220598395992147068988839491033416850779581986431121172446393999016707367021947977095334293712195684029583244230704224191294787168650525270761717146712483378225715622494728147729231358808708477165814798718851004790827347336894315084407851557533646370380060224334887180789847538204249980167677800259250503253490729486269829538982727216734885867713904480293134857580234710099966702523870872868287345128608224459928940696869783132582232197844408964552684174323021534223427913418422845904316105333879277621066052532487165368991397660337903893406531440368876744464193337536195699794080869480856113643118803551052235398495922400009530885868466634948026852553570037528045902490238776835427175294847092603230927020172502523843439935181054425840879839096738458644148858889684680232992375597707885284737590815210960718021104435333745720658001901805037530557768790959938921781230983651917582894431834942226849800998920612873536183422097467236748352097652343643575019449218247142902732884976800492763018500018114735488608651156246786927092524879231317804572862730648693644973539146038442116389042247489612676737580183493202115709048938767975303840096236310003024379468042740359502049401758405284618755876997201356959975648174629911229613526842420198681899081692404247041602695152101492018161628420090299218765220957445276851134548913265266816714838215212617744683254535371306163063307315421678174002585392194805065964410798214503374006799026042233550148072579050437245069941297345759574821841021085487432058107331115151100338241296605200858535022543431704918864751886738286071783473412431556802167733246207106342741109582104039059246800812968194969585913141394389984427947748237524588877362073128471448199129546192752199878934338198169014852769066951685962808303415283120633645012301132172980861022885900989575264381291763759795323383922636864569406155662451773136121104688920998938142096306943060797742009872648948599523710243445406428339106950604037121890926152406470163312332702947906033568231110834516878292259268514364598829015150483935472997539476982032924476747189581625148631750532909194286777971275163301350785376417564994309237880715119777664180051179433405610923830506906860589498476839092223576772277897024130260535353174500329254776055118031648090305088731225499122221999451644784087824972984544800653690609721052332951333042491979695774713421641795903857811315950874684109995905478423294478127229607353923055339428047286219628203876499287912205985290838559772980138898802034147993177371047102452410553658113360763410354187294283967580101695356091862681262340425329289691488408098044585713229247989345989222528381904199546241561788732292790041508250634174529252237407981623438641888776982120461053282162338081069724926712527154717181387309888075044466201800700292448577267217905522383847103692352433450607517232535638848551038890132555539623819214198351032745844842312202624639660384702807993623653983575943438181342652205315071792393135593794909217918570290342298125006452223126936042268692281230112110535114808698461312297086326537562916930789585569743696196742089627239749236028134674080119164856094923396086620392918896928404074462032442891078160104548862259140463581312898587333699737776474055788263046488526129855306388790953806037579976406427346485261304825043047050416181994748914622446647923180305189528266152548088660307078993367890875485875288088483607719815220898532299064624812548068670963656528630755218153341278123991590671353128177217380093328511422325140935069572125971681463062866518790634708738662485721453706769044419630109776774353008958788080271874067288062531168990666946102830305978973495751333997748051972153177244470433105130725835683016325086524856544205764525971254204711538625384501209933627805007044885082576788021164201312695841718929719953067236348279734410377328714487264489964614471974531706566827809192083468579555053750956424930419718776232720570899250080173921290436554420455519562156081058305439960147656610024402434084738728173593253378476017127813994067487118596823327984013113830433467208621413185729093038760678859087387080384125248286667214974572711500281571418993128408208848739667369637077144333996865350543051928848250065238917512352464748578259937585910603861565510725257268487050856248671015844589640401304367029973993770703087853204866816780985630830076953601140779374214857038730017440823642952271992870858963603096087182964968302693495081710866215654219876650612639127843353905929687245328174934000567575715072503759393337068558238691574658070995622426110512196336957748595695676426035709572160833634297586611227093974970056045902398946863992030064289981018041386154478213964535854608169075630239350368907308513494481095563350943602229167311083894559872948960124333543283173829000056766171168323199392299631342816189140835929015492623945451409115249862012648085104764263345283089016627006144765005497218987385988031656242776179243920882616195478124050827786402218222052254390242998837225731443621543947829377823817696468154564428155210873830266160350324897252192153579624132002191491194059294930069612976207496482795074473915854468166577537572734607111081095244755626147787752598631558967419138223951059470779715776077481716765755190031402233663444638869932314378110599224202966172569312324418938474096816763491174545605598029963238296346992939525857912676959672602050482610461393313067881601411131184932643883921527434378594271554582531577132012820234855973383099860188385303308280852593116120057016478268778059340173520061738944716894866695312320521449160514153543950192193971262156161165521468591272657909032092480131489289805130518459783964882390588816137306844966429114624718976148373437390735678916075631769925282570085492243952062725977478361205737374805919288592808627926471763015796810184804618434836799501025129713873204723721818021888530439957213116736258688690565420397000663579663531774881470970284998541283909693941544573799006659233798476049893008926149987029323660663730107426449487016211721291918230173359870870870562047553316962924774966811308823935198599978797213279502271202205284565983911060907556689713098464029708464813905197377644823666358439961484890651631225954989276796627807524210502159233766484072087152170096279041917108284259397192966830056613424374912728951071750925978712008800866461948594325071642773784099444140770096541106688150705094695962138568480685843916588940906940727057058434086861523975407714044326214844504731367813883136086489414296200683911512327408691962948396543077493953868620926429583177094212275829035148153575939488731115265664721326802660107255300122651175818371854640940761606180737485726281060258568139494346251523606885218128842503193588140386906058918740477463728875519697463777904581268585562062549038587946838051666150080143715869036245845493280066228461358309765378698784904989134745116605637296497490059980499863563101136074177291161920110938135785022787220565849144960784004256672167546965792964351611972956393791488944467109171801270457010926291174673192094195300300725173480338226112993742380372148842532104185192870758651029413831379102062279467500076890244457270413971353809917282947061220654271504712907225452027563256758186550525401527378974866144017991612891244506982291837659214523972735096099133989021601594528862081066580339730126676195921405362456813103435317652172327153692647551999908438219291914734310120870837590931762749386981980709879172788940689605702733480127200517652187770755171576887475955742385334976447630495996686358853958878265528398731767726532222974151801997229010537814222701740732544402141699645910267561026706685556199862876191586420728644508890545919146952461087288265515905688518669409222863169337913836048395775092046550864794217572135322566968305901515047045199528049674238327723169275099054501618666055896971106573682183395005259816067168726886150234079022911924926023253916679159680277534076093836680061608436884559637531525665626694783066512139889577311392303934651674758313620131942699569757095736046222163502608137923499111305909259816887709841305747639821737152515703038117680593884876900152321012374945009821390131155473016613786951883198522482112201079340357091209262041724342329656431752378252969342688550962941595130095693870491973584704477338643637837592788483921252908586554498677485004783587654412992306895518799081201236520787658189139269804176168830233970496478137855018855764344811118732649626655240396310686235631082205796528016781746384289910394062982192987894764894310276028210891105590270461557986328383992459508212930468320381355537794822008482075360352417398204637789150410881555132220466358401018570175262705384983067374000058176878291353786852089159347463693082395860302574272949822974122816364359191954375944475071532828243441341349025600242575264384125640714040233139002214789191986849317621593902207025454974339497072465295863863416462334629993420103708314137470238519397020903697902962494037353595477276066476635581113684535003603179031474819764774952859782721675744060673721911010704876784652621500730929587366792538489486570321078214495248798399141443459884638654614263280387419743169558775921163950632242290465565580023956239408063604526052750857865443536440268520503846227730112049306412265473012001740391057104266644515946735854789195406577667592558727365828414684606751442682401661790776280102900290630694432674542100266486989195676383263925248193532211523568552078461242490026214399742861031765589774708346058337504857053489575813689053928026779892874345620298085217318313653451548853505572252454353362082163794328232501735389776457198596066927681080262632839122109770422770221278278165443651708984814369912561336663318777338719599724868770966875340839624207901320046271451304957484004020909271544016020134936826926756140641616509790680855007747484222773231312547570079353108377374770131455500877869208546912424534696245999003597367585876472707218099313724003992709240883518955082652618997473808639469566588554713108909691091715955697783259356011803754751819503858405155004376989910803101168054473750387957410821476821002257944389655149295504178196055876702940859849613706419779908366083524831477648818275979458324082804063808765136232111088190549972134824203925341203924821469414298968502427535059135847188349574956788808988535238221860927563850105720546303951651004479299811497221749620746376860176399768736843604747831237385287719982772083813032575377344784334568063026436387031826871955115657132355363183597407794116835765074147998064693876340623312114747764058431883266273839967892712217851213053328212916042232924542018998422622988664699294160078702043383837810412086440205208430119152372118334147663493177152475363907321228592977025485596737246514352819984780410887314086924851853130159908750989557768357119224436852225099162901848969139321189884676996051671885647579422650359941253387389933230995639783412434175353911748887047956907221777052439964251589596441294291349330002185170434547515857836832707570705283436361747778013147422220858078198390571869333267426471535075362426632187346729139258303498186627221878049524421750914580077136464581020192695076398545860194246437233360512491643965659466816704381319036782378966573869280719788740845683055248518381425943154022129794289423293678902256425227297186398190923860296254137804926324159073057675218910839630759824271269368004048183450484859169141137429339120825060810977997488684089838904836729887777910016974139579677310517771013251856799449291827506798850367249762943473385282241309977187779794119385104551495917553439566060582471452014176069284057538972535739731099467158167101410392510065703892483044201017270664282894091052138972358580734105826500585136912762583313488416613399324917714607069377275393909345971607033676706527420516347631236373365586996909686876856567673757851211615132894096358520140896463697468817200043676755820933584577469260940435313114837939454265299995635007278815182110639813282702624334226372849851046596682777110991670324138740046732769048882362907408431794619817966092823095500421590578983394639032652820278803133965952674740157811502784943621281808760417065994598739685248585928023722115263652924991112014048593804992389455882925130420446598017805012589244156349367201722138522299934701355491173185483725329241887119556184826052813510722356188867015075075699040910127979948212983420812259010785385601401124495229485582530662766510875954924910423837762520782429617185490487015094299616151861519346334557659853270841138669580124261552760249552819566747101917206114337769195113825646896479015341229048407576090989449876398822242965482689447957417118601897331860296783789449276302604283066605268214012329909811325975016535438392440728798634834127175592314360418433575776250695012749073561008429213539044801166956726517958746293598611011959698015181104146673796290166163605889318315512280241319549468780588296091245810255284953794966901333810650158667301871563480182763258462655803037809379399621249285701038086325328999043444151233889621336593918555652455591867632232014040033218932027785582192333122728026930904769597401865771958411529600226046304410351754921874042371270169325189505439259315659866399904689806886016631985065052077607434755660307440314112742007597098138839197196748438080843322881022888333049952272224442971961991192854459046322736242910073683708168634802373107187751095671482265780504269538849823583774656695398533098725168750101497734155563106060972388373530194496181084749938191875100690848189160889751251456608439069254993472390795524643933126006736592848247879897968543185335390759372621480259314581092679697944242093929677186978619021967031871118934097634158706786225950505581168074654676310696936787347993229332678001071818357024645660762471776007796801551459333768992919883580433157039286780967930960594781489887368044292424761302077439120702944142869045433071240875817902328901713512735941599392397436923283442961257823931124981369898846820134693351677675433643499625100868331454819287929260049239288669027692858526599380667767778332866274780353424294436363207462006419449390621072322066134262641891720204804939531427990044516432047031843306867590122923255605845930163336221664677465520503275538539376080908976554614708485054315153328150087143793867702350867066433166005481710366410591450955069799049598803531058541439302758551187597564375233808724419845743318010457389942323975106910845716994445091319706240027804572934974073836374498731032634981013487551061343446778363258575279460930520722668658903538742293071455743053599663463305516495812087181556567256068481396405200195736723089010480623007993476868730921686455464848001500165708862698552652120400829303011707497191248270598571577734200232183180291473486518592683615509959991839930364585757362566666452461443477367525958027462748221706040056770021102454357329974282937042745673369686445033717880589771364028768075817304888693365264585743334018454750370430703118461732134180240140326544773920679432720165376568303136706643084987495593287085061483326254106735767129882094983828074550333547260662334944434158972782738602146381811672948889932099674117129149806264627551021513046069864976296520505987039962088777525680119479566447078475916973526460459935245704597615222157318039829668754420264836507251348188482134156100059909164930349165618824656230832449820350589016261303265003571511297476004128589880955290543492566432212029571767500016244381261274547818163857927514907033173040346576186109918025377874799368216688413316877678428905591422589151874230499752773082432383280513312270026425078322476220789801559963809691720018096647617282291959591320719642619946399220814405621076597899763256840498336520197735921289791851323509291685535100760903098834013836256007270137307719931021011578238805929262491567202227169803266919137469992331446384202610332949606756973656090462253752630512757126513265671194809010948266229064390637752891875652253396432995368169499017531727168834638146823456374485573307953470635588360701224976144103710518312595618494907826908156001148910718377404013475923132721845296115494735374503842044095340288279491775364709907818948465029872642823896890523949011930927101588097807717631854782197845776122731821552632516382719839139713033022927297447928085687219829998753751982312292283494279398340315444035802030084671897869759703430293466675964583478357960177254443430829302091852270129900252552430683076354321336226524417985154499107561979742123915054434532531635681073968755918011249537892846642944818077924885168616827566888892671370796430348606196319403662747466289689775754886255615739216318200251852756088328652352222453260431586966037509050477023315852891409473205788959066626661121662520941799008339651531163085902202337340847526708815835217024435837667871356558854362274276754801506274375597057942526245812614399859431163233518488234291632158407834894300209758635083923041860813423543569159900814076733744640479482693978021827428620748104169638178650974496427839246468377655817259127170705056452075845798359286107079732427545590818886694088776584155589671212121576657705882408209494546429430072546370528156264236653243357590112087370883074431400552261476988700437596543715031684128426076588598244516437339338286860552786837901559345245602598872657816262848537443493114445666834910254165597736403607949635337115343487129059447837445767685000332124067095582498466945306374576796492698611505895431911680328744111157300926229840123846010428362410818698589451403386867734118630166374085575383625791211789821160254921535167332557363348614911369336237528840744205378119448472116858882958807035226677673106155869773278579522242857756081195492956022363387234259774909648331882067760715069012396195973074137506592595899657425764431889877609886349722426314426897394371606547883939485335892677459680481248207464108045269403855897100319446256360833128375375091435556960842918873187595058318012241324346191594205358828799814437622100349759856788652365945020549365384056388891044400445942996565317341446709057193710832675794087586628748833821885753729654154102298105845817080603266536520084665589852886862745349824216199051666944723212007157611890249190218001485403414250404797068287448360224260219476117604932991495436305968324949019685006369875145495907199271932761836109242891458912682244196688819213660766152404173907737423221774230046331282963568662161889365970022176261300768144898402045467599988159744693349022549870933256863721690145015041438926421544509065840195869895707652907836276977343028331043928149034649215873511161489124437603349657977265132381749372396281221428969421990700513381805761916051895946135248618172042954839824801507864522990463469758568239022045684131827832574084182557313321913593083971434681962056800874141575496154207003573997036180893782269877757833982940100055882429478494054209079662602311110217447411193906636480102916517029384039958749782263354577207104866724344959009122544532515666834326373463636506645608331690354431657326621781592826626936669690225048486321179643446180935309989912576404354859214030092870200029068343191031259328208201248498640150706758476532915845728663802314955979761101608090990861666723001080287940819332802201473045461857491833874771555584337212605387884641422968419962520110079162912013384549291129612394576014154096660926307879363661475095705145892477707317474472579118759049982067418154052223014447223135836819715648018801060525286169413507726108164810331675579962399164607172243175903561543030342308774203367125244900846855977008394775508335272925745988667711339523926689445586275946266062413508112731848050524504430447307253567340803457812140834403092813744340404783409013433301010337984011988694869409540441223237414731039511594363492106085225674097132369540274143385243062943753043787692265873985947195315672272575204492081200177718258451641300371359381454616073638130822228387074976936603606780090265638112079962518107758534926373607877106540551026332614127863980229834950100246013549840860025454005830100591267769225202559386999215249626487722195088808656482608889217396624355383033491906086199305131030388126127190416125196663984127180467054521677056194537152495222565094061664600583840014166850745572169620820955900666234049285837696692240469544486335796892423407145153760435381844361149887536971043519094681414940516887187463230045881918720306064217970024433535113583038172572986951877396625898995661754725302540159275224219189695344639148727248549364103774755723496917252822538952680000285459394856194588358291918259902570500272662053760968835985529530539784079852456767556546895351732633593295486887265556736889771633779851241272462709571339490663538136125123106396323817526743892053406163047299309998108542563905312486526407559817553330000801849357717941459610734655579167592927149879590086318202670853230688614110011218284035995260138248858659359691565836768767509134045286973758250355291568246630771722854209010202302314408497768965341322907620033261951260268369754653239557665442721271009566878920100543837803573970737812209958357857669851731220136282048333012388436267494696387129151200354672742452953243243485551155520868967756726215020112440907894953281809918323859469931117758725695531294843144612291684127880104240801252574346127247650845837399200473208807593415254677235466875393820781866473346530199566610649802597349742630129332825960502700750758520220398318544219636482121165737588266689060826979160682957759956627033177227208682637050957819690652321459320972500446567576827510005379907724869222036992744490184208462862024498477698011925772311067522207366732405001015143560538008385137027915518031824308364292343173950798799133982316602806228808965992343487258925409685648544092935181923622113154717898595944668480400436327476272428394947728356162379880424683870451762302852951341377569445262008690778069347678797319395736743007815938116415668848446631250157823487049809885921640846886243062207072217668429923850028548043232392968991507458146969922124244023146236186677104757196875032390639260603760679472851699363506990194536051390366950987663476893823098548620023994314588193807065056138197651110568012516932931383444011324262087476760877234458535705285926375849122119450844159259504907756661017343616947885613347586832018354147221592212737924675548037534344861991515220507304568224447080143647668341764272747025371968266514409109710387506631961542220702963167924146691212645907349383385138169273086099659026110912465655037628470086343482599636882811288431568485042276429737277308684473928117798668586166493769407094117414130247971806086660067024424266780527931635410749338059632358241182159639674705029185347440519518824481161375036128709940100754326186094878393364272608150324956834632874057581450004883548499607003980178524651367912393736883880206072071565935618708906558464696295969255006178432552665528032062234096026229023235705671874617224768374337641199878405687140094342076873418275583879809468159510537857693287547389290984688012480145975987057707807325983298766729403067971903392134326943161136030735252873924173020265658670052276441122359574772854712073029964395744148244787394548179389283837325672717472260703510555959030880739446062237166532299434685108328099522832016115411225364792461979737207186442484222328077397363401840109441703370198193302881101348265854374262665977327436238568071996541610188709357190831064142469598638825870574679049488370795821152914275673679850866529514792299848735403625921996153979400023974702953768380287128960655599104858770786388405431229346038304369520333301346778573009433903159626692196106465425503530821278758114505227653284398378898416734996065009320998224445144704045728142859002251361868766094893060023498270025396536998852738197096059873549673738322700072804366433639658766981727926060473829840456885718044149039490128760790316870627879458606165891945833765050793050770549239771225892279568943925308544579913007974455303599741636997031571962975034597255331688669798235091305500829839517517212117909505414837198798587838590828442657527746203880426316741974523785010854280785096136244045321338400994697575769599742718351137520866308989124207107181805324274052540444784790646714908225174953601572512645635250338716365698648982789752386547742652154404188376760624893553529459500498397345087316454529293647889654734284751458231283789339838576881112885916802594409453579724679793580584688713350114072344141086566009523552568655654254848925786210573486513646698226875817308427170325075945277276136757894359227804852560773888278190714562875449408670609630604009265664905272351003801408630533506092229607862334983203587738008636688017162563518495782065839903966499515741897760592965943662848960047524485116264564128011792658416974194813764577877849388807058516264988784162406906820365654891434054425146984424397313470191236467352688351084757732589297697966822569864497558801956742778833811202806554942671428076415782984733376793772679559955568019186505336489859776818741634691591027393033349375455321685555248276260610684763779535184696516685237861895712379231299020412859751657568539776185949023516934633721871546665549873434171721205175178831087700980644084866856347704995373756204429492658186821274561493865486740000683045121192358307488829751545052793927332079753391489945593363620757526012090722797736256285271141474546817252890748923263344718566371492585850894195555002843856904622659521840004928489637987078137986437471106345815263329451206403626327064680268491965835051589001351155846377653485087227068860492559129543252449148042124877953171643655080155736391318128437044878115712349445185094655447679999161979296539080574812475123540930518381388583740865958073711925468958861410611068836280225082096891103826679260070549039015980004373748802853440697280777407603373224940575349070072230799736429206087907230934190408758252425190847035361143328855684908373054458306265963393877535769713734351069147735610007872393688266439039419243114500165915123840351056650270692804465477338528344902609451541604100482219754414918008775677073095126712666115119381410424990009228184654101328803635027763816606147104394773036199250958591310887830198534565797312421860821025827216336396442337585664282727930387865735208368590529807966620725055727947038497830788696848847255386076641571413425817919976237001943172431686811285401733766311409334820356529399420360833012291727734069679408677230579681568780701161366791495251214267827397195673747261658936518281734136673463272564299515402286087393984978370620263710012457504087544648652429889756988477504011204287368409787171224997701713410724200827359959409154587752839300080493732308739484253830529518021793800023557371454239486192563938790187376284087135502968296957455687103401476443776223160050696733971682238738505900838153170014896279356051046858762275383716600427660367221565376670361488144068291194861333069167033568641155152769370997758968865426542515957154310914779958318588720858696401082989834061005841289562455014996883996518780355399967253301399596996545601582981800856581074916480447272910082316695859098118640040492185457325425172345574925411453899830331215621164505033901697881256897443003658927910862241730350407957750517645367701207090161020718290714269793436536440147944913775417324022541993336882341187740399017091574745727237177046297953191192972208235381448677144130956244329694827280739052720577909973860074421859158098152218163874778357308893253761303166199350219887452401725390649502260056458705720323117014281560432344829820674883353009844164726091222408977119803161624265538142082982113662741811055960494815312361537956504230245323358567683260735655027649550348742261898641209110832737614641719834261953818789188573960821529283131937046614519704932496819821702872009002718759259905637471166894665856658641185537381961134645523609093446727225629469230886804761040290707819232746592192234043449845865499116182497536150446169172804261444161928696352635151971102808484500815091259637936409571479387311580484557045207835512937517292370231526485182737772520822730701836528062450141325547511495960564049147869240206567465044618432143087222995993576262263573095504628227986172974283672913952533854126668542405016952095105494746095873517918108699210737953075595672889441257174148124736456735133796238422178849410334945491997253800077461705069082802364868324215788431485926498884539287102995722029819701114334552354465713200924049933585319932691435898743393490743042519231998011265939013332840584237501187614728135725992015777910407944221493499651216708971077513185770670228079512748572727949867891501428545840691694076052437806170217485021673990692415585815534345229014076923422869468607109513947983806432919137197805872135729407144543971047621778735150967843814546449329259696074635331988931442046744822599639573358158314441616321084630822535839734077872195496200218175971736985489418494433924133417202276665980418948391847932091871798315353127929346575777468447787627187849569967923782125413799550885217428764442676773306150737501102421938609636061056998295027452169459417895113584455371615826881310603494989690429874121732341054544465597041237436639372283732696148272232204611060941513317806004792068926496957799073158018317291080802839321274527717477649256181661563205820835077085194368057627102158530378931997484554086198846551586201164496601609594862888082173420787572573065853209753232324223825411942110791403747095922235161973538024985484586319582481754097759409682474357408495044283381852660303155739073317869538293265104186703450591123144841910766580979221435273191787415084661513717423621583401541617731601749383434713248748605915372406770027716136096054670939597166800343607324208399998300903255364253762270877025002194481181691248364812671208614660951404798317960483234320012493952754012694029777832400167490642826614092290892728565719778406304691874326008462832322627611779367345888209416825621712077844939793917476241345167208854056038114961892584410984892662599460330245521434700944033357710644491982660011350143888413512261794664900936001617876898899946443273918577756983821620518543569630168077106411983516037918258116107954540286972739368182793500117942354165986508103500811796021491411380342095284822846752515494238662037911353596639749991410654336592206129579824891083069263013074197658362705341769227309067580770402113730624864718984856377713439885873191422821246845908304113901269715190024144235380150757436567465707861727542181030155953837923281159261670020978624830010529689765859204620207229839369388287565727612300866697637273128134857399307502743321515424348881829993495927891485769899925558930973704104114663699633461338718267080207398107854620513224096892761236599059784113657991554111563025473438517077025539944276394845371034504763849341082552417563668430944780546334628820644424815813957220336400019719458323858857942431958791317563029353143153591556382901216746759873504897421088977098081374534255372953000062563253901396335028340603144903765611496164105620142842642976606620552046373993519264046199055341699105180405270872944245489042789584465565891626787852743779656832684260939246500411293478101319578846337874375044690586721708628103232863429273322229777022168671680000999566505990338009696632335683911218181829535325538755090004929968923890397558722179542632379897145323309175878313689073493425123279214580831110859746045866630718338594554160500454759786372861014482485158612068045140318070729393123019958354086036678546651664986328754985230979805025239330606829213247766927176311190949487611137087224865744122050398807000149677505157345176882105981225482909218681029448167857548334659075558331570823183306227915617056699497597361433943082618963471981845402972456567600602736704632414421392671829463554129849309637766032619702796512643604772483252830205208727911094101366569530504831577294578775850767590214146313654788674621797853392375554885533284207036145106035167832367484736753077667356569501368319231384771016410827950944520772903196740481353883196102090785530718950189284384739003208850445027259685174306564533948383035783258842827830207713923633737392333372420179945363337764654312154277314352789926835214002454316471468032048118039005155151053975734792312054785271702433242956608070375538586370672567708231892002976137613840618728879989878932846680360071407482860202285455259150130171114480697694477639594723156915672699144077133700675168258690448914979107207721075462077269836830785054172136456476277539844086955644734120014324636850250913126331472271349858046975282465253471942406328240714228662131310994442654799132456152046816730548713682693704087403087970980501456805880540704331306936819998894354473221878932246105068778449062841392658515564553364808008978159904021462297762139871618367839198817210923895257117999552507113511021848184153330507386738639919837331672466220793072941148511710255609567242801127497956358418911750677064637670085261602360636368743572948830473860628442588725797905871738484823923793075339034325058128590926283823745813715786238925073913173797618218665817466679523019040015604983555571413657412892528145723024541774047817144145418069883946801601676404512340191861822299556917242876369773998127222515891414753614806051793644636483175052231789540077711319866384409510050017576528419537993154751921610936103937828625195188337187761739912100394408765075458252447814328971062687314744750683304164687422178145060944612205633673300535068947838304295749605529483887198109590812697848826042656115158037246793683475941900320470456246800733248493454448275324996427429130923840698035343349857935726552068109967145198787117892065752352022538689654863772570207841849187109493879852925547416683992162215000390818761951026967722810256431040367211789761775880671964828584776036977688730279952326803732829539594617204687154456796832153176027777183600766002206635635636478625026707714070861390149078831255458238912109293747544127451487144868117093783759478957838528484565011609984601817882612343935122444647350302443803175394435910255677145743480204923246471601243896534925343955783379901256346648444137805674657854616827724830706289340039398311798703828547903869221040854282622097537064651087945399912540810045061327195953974385567916879158561046143265677237317097711706394995640080820706316354579784019195766081340305073260331193195274512150487600884140379357311662421004239901585865678835648262722318891144708221365836984638808627088111311143949270708044394819247677283880416005916104022001851113911805602964834118001277711143228589689860947404767073291180869242000887509280798370971951191158646249187716943988306588924998196645345146791212809025653442703111154674346721671398787257800712766387876393667843962609067812190351741874046621709653312970063729755338964193609091198490163166411739753076206443521438116552119026753868712721067660802035010786340342777394096403291304069047930781928338489940087184952744217990982506279835911887360743203347236661137240440235799174358541662341180579056123663995720182226364596826338392529143396134512207976214799404108170499019933647478127391533750669035467436236628514607647047250423812943608595130579664052077026098751112327029202326513244504500061008327038145769432665233704026379496711000419414172851949776962471589955552291112320434760426064950123649036659989570368366971343936595563919189738619918087826191746985287330296792576461683030829192706715879208973540543852213066691895969638898126554256236203084767894251088426544185338280039168870407837134246349064473342563977519492866468289227434065558717606902944826716202943077035819721977040941831320158351940363000553090093127056466108375793201466048594063250569991168421274042182285933883641093961759384067646018789467760560576485398735869226598124653352315267872661823057514305240721761209902559204422484329555963568181568570934927469037168857832876052146103632192033982418216701240600762535513170662346647661641096974946770627767001370350479695352723613962608594085515781382941376435860175545204177314762536073128762889566835381385652727925954116325763002482215379432011260519982571662913155137962158558678896884890718186299095740200376190066023376130518631167553422972285081504905966313726182509724090444457939457934735053683192574770248267618115921501900023904584979433195967522241904156312173329070883471861741621748590511842725676905234814393139741606227237773279648246687793813331984072205268960718342549840403845409625930362471028605976803250217195921994995999840045821648594672153745859293453505392932331849907518823590173946031429802363754222160135319318096570299325164977452659421483123902563162516703241300536137563101618696284203658341566186724164569633235811511933703474527285361870431629273935086801957437339734737662931360073406064864294816072594717299416450897556317112228924629521192883611535389444290973031852168534053353162193872673246708296051552343063060153454877015725717622811829563510182369488703534626262360617945728045555706081611775694328357303717935028766976858490180526102080156538981632298482440661215153781765134743223265404060016976965607346572391885338435048716389756355761311206801039750726457874857943692556242164316203534186171586364928017675637858053467378860757681841866567860328877474272937588025105978897063684867961693849284088444344262640237587843930362295421139882172586443829933492119667200929388094626659359876301238705152474789343506076977982701526688370930985315237368104648402980987138396686462218164435197421580235720480607649455302007693270552182493618547367739604807724323912451864863424007627278031436444789378723860365726893317961454009623913887715928336331204892433168443837301852644142673857148249527012154028354888022632727850925837377043613420680517276043798247538572498137755832380393666471227289320588270273061803356714483348505166067344525226039406119442521546551989187562741449475456285676767039013500492931753522105374099185637270035486261878886587493233275405248973826446971999790574441934321556125962544697490446778435172949503503915092462418126245840116050409849592165084117152286612346635263859050842166604922956054478952000474728670698915001876067767646538779558646769153390281341227025505556852021848531805108926781046396035217201972485042684133599285818547554333259031576262064358798925279065166630136820385352224834934759740227853005004380846667131606696414751939996061125693708882510892216472983323274439511295772318382536287380206413100613425073194531801299287162386961212286372579531718130682529848575503841626001476109054833233424030605283615735538091487260221411021896337243378349175508329368968596954418809234369678991896484228848820632423235096089780248733546279301896766092560029677344341536718821978131818369952212802165587138434254213098418698402936417484722281136096155197862595179720178028966443700591699015970879934010300134292840125543987273916644423955115135246358822257386941644353503729350450144578033674499281980900147799446039408952096261339196236831709759261117063021262099399329756140224498221007449067146647407278135177335383897797912063961096481904183927182079651480968736854360385512143334669140097209260741616801791020286836703632700662985450637236154847951754444572380721226531863726376668689411820934565632897076268147367809215358435770194642648908726152941749360138823099089446993252682426857454237610494287774809625622349102491622703494889311824796846220627327578791935598744416358026782289542127310804461967485347849692901199918702247229389991794167312221613436344075574198645726152402123607840380145571080399374617294928352437707887040879432473625762143494973096633363199436352473153822133450763086290259807662342141757184226171675217975273422402746278387585514599616937157262150998081371012676868552527767965823138262739743345592838763403174822142429712274386712368903739015795244880551584106060786583382873025410142115213837255321672843199637892457034879600399346725656411792382068836335967155146722222237166411325127613985465669949256592588556529207395052645217661355524628716439279981935067094485945929538614830848717499710927250047453933376209230310569810730929905721297983136369984759372738984227174659463028686090243406120094038009942219389925328654362520546703037741811170146827719235574606566191990418241980345924287170819654512114582142247745534276292011437734574187879375231991778462420486249369714730211562911967601989685893448444529399640824666357949287032074827500784070302373253390725423675752413542035415619585651246773218097293383379040392177029075713332976197050416554256128015008590456360266200888854748691902837405129547022031530313258087366579440869234700904074165299899908363482095869227808110032052714098857046633921340570313577581005211851528576126929015133899787961124930730987520844987657823513357244775731752498037232882232286180590414696597403488780263072392473494652649954760550289552785770555741860477365237286733958607133881960086336202894164831056892631525623105344307259309638217994817016799836138919215238149150270742840388262037305588294126462611263429050657005388595066425820139653795736401543106038008588925384003285897148707438777777788477215367149440467829610251499258328574208547996499295118092695741439204193061759531011468127534205242725253478529456287191673881641911645627376887776215865440848241845037794309159530918718891104886573408773130164487026791066410145356348177617010626751479830951655775381982187811309833938091388697301510221894797079151160427721707932597576330578022939662780222915540024971800842469176593631602459398889623231354270929483822648187347594627921377714091845239876841735521597700551883901411487307906194716257351443186042188282663032095355024118571638898339260525129719663888553177017000894456056260667310681991997088442923815801995591420144354750410524174386636057977411085755835917593151760232164546379272675099524497795633272583033902440946142804659053091894603454989744717045154767224087057309609293783012115154510784926279931390593565068333557763184926485410390627989251312930001814186321640775426900115025443607148620656665227421771308208517050282461818830710866890973054508530157335739003722761262461732202951836347816821776835281137352714481594490596843691118751896439045983924275629505499332697951495912907537593131297494039050912446486722642274655768784392689658680029024177961857796283367656366766687077518984841258783270990357976462095652516163788157320968579598755883014058193316600194182918402010401948769265614149076403938584330233225605544145252438361544257085118889473686894910384934256384405734945443475910823742125674461940214774534087966279417805530929403683135112806295232619754847930716646057775821304719622752692863036906399304777100988007266216651403830288980490701255474329262052297100961609844067545599692122959290358078922540223432595732106877031165273680640054425010098280657240991342672393271972919200815103009460971182657418864847214804379071977490419992333031497187973589146061374707924179942764337599540861817227687398426159375339553389712407190328871940106459385333973860953432051708769574921658747044328164886865583035407427089840137119207372586113424611650661268989844910711962619304486275725624351433305675747332438247958948002915841064749943795560735840293002198079756427314711003538710274271834338860441297477772826941458738197938061472083475170034887975268767457986586934255397877864320456148597790803287732998740145465860010851562466827812336391638255621678202300415995407491846694854825618988457052705896059159762584817384193802883878443612357676729442335055077660993569812325177448300013870821107042578918238583922620509718323031341021312564232367468316804869867207184301255458621402475596049079924755196747964914058433275710247252764071973228193766677461498069103577285087302446831970234049720973273631093062703391142266597918054317461340612066600801086696671657417886164493255689769063038558439895203439672025113018832064420345744357827917226196566896192217974099590383235432664806227725784756771725495268957802626095652863654449951255464699955807724334354452249779911823457464764177610488364802206215958487761274927275833963756385803307427293117153591168742614014310162284464860764941157600440082736029439157315184034518517765036998297249310409581759201758199870060316486938203063380611473965932245560240156003788490128989274182629396811558051091790164306225608239587356653265223664725228181713502991368359119360537079993280223561177983032932976682943926585408090089719800539685486576532661327202474202839376348196303443841821911173921281826451315816221690216794530496258406761712160369432007349163770010184585041185537686791119939748098662780355036866435781171541401460092649008737375865443506698787943145467884473209244557129278546996149202834818800335878849821220976832445265564656181019235626989316821664054770882662209653625938285856176172589696249038325300037800051899478646262243230955232253699613205456015760936548571393340601010174528762983723415065369956024445184755512600584659748312918334164148139034831407672864574758292557692856657567096297601346979550646616715345524830940337480407231976056609865190348839882259058961100886102701073066323939186425121977404137678847792283739390440060407095563549665475995116059292862259086753682646368969604338179598147197762310997891707311778266560511471446348421981839232601587827821473775935476629027063081220245490425597773170600607433171342712871450547299576874177453929071919280416617197321339573534423686559545159919785677732404531917443413906094166477797927450324799312739990488857306492027463202636349706269659602666576825638484801891693210395552000640868332312246039337440450863727616110077348753920511102409114261530119313513875072941607383625863927657330379600799393871681412772173061778705464627484419314190414285173826724334088306012169719535562637618610231743904090635828974492117764790113726996134105780967795864466701460999162086262883475007707598688940491469111056851802335216843958175746548107994339659275010802570741974627453760490127097057938294007073286321840313864722073879185225269245041542301870614280076205297975955146562464176086509766196579493749318403176913250551715686569983792529417472103854344381389359600072213409798505793176802102635719019658228072685198446858894910333322612347370522231128672023705698926935690155332635491060693588025256296805966225563324118329966472034462849747548593076945911296464689391321547253067918421200568849228301626973951630920460069402320410778679526703302880401181576105455692473949806459106489905151250223353837899460545852136203332977267791910234794331727224661578133511095514380979341001357928487465141457224649385535740450385321214599820514660081166858040077136236295956766703246476399833060225316287323555778645139977511728748562434758880066437379373544450085518491683319513256883153601216208263554211051808304411955057980969543409826927876882569997075516735294057665413140888080472022836019772844602785463201563359143049572575152451584176837749254467208574610193348544501992693474200874191235030892288249044296396140333486823598096536548167362161377361173403594181210547552288274685390193935537104009500419702002071115486861263559193090965261865046894659661127410713940437966017108530391130884645808417401027253163863967288703564853146722071544719811826529113456001846250747396392696305965200578211218969973574108108447233688593810801167302427878324406021424768666173042548787588121972081565882321352025979744945955967647929978202422046548684348745169142485844527950068611572389421017420936587281181228889053393329372549897538792307363076018949407878460722168448595737875871970124612678025886577283840318407254955181451434323115469110725386134163364208381678071771892088704016156241773070444623328338619050799276012519664059029450443677062856143352351279603292212596824373424260657321599357351472443059572208352835078746102418621528780837510129859366181482202574243295619667328092930444458729115064859780864086643142719059946701980204663898780760552724812592935825373665763454749587499842658291380048759016654783020683708236352902098933621572395786637925815544781563866083176406973193552111328800686055826083679296350765706308804405635876305480278605251797635615090967689393220164587909277571505184847444845045566290106253381243979626931817917136758464135318023059106102758843237029388731108588008590762924641083982286377014242168434297638741476899459546811458628658338456697167764474129833267839165514347349841526101165222493811183301141262202750939990644209920940641141097699928213446979238092407327198631914638050382035821062968854686184407806899036013448476469066796991754592980786400538815445732634286847165177921875567263867060236461678179128574349181060701969617343494333012913341562925449441719743190740639356222224235010127254494273965289761053293201563545741758276578162020207506887307036627397639618799911264448509967925913500773488436046940471792064204627788312396445736580108572944334301833924208936598807498580742203916730285777756365988023230185757379893338097576060124356410183456386620409072420414176946179732848939689715812531008027917433172641627375585951315559897493459526658087017961656693455869053405413444499691534060590189706590015114029858063243904232401981493866629417110464918061799764342732734962221876170258445886865857007093421953630034282859953501085367745761386814838101524558887728205695823574937019055098772762035304369488885672317164357361732375013224938194019884088656020429035377642972998736955272976316214225998778862922153632970408347563276979777901279932747505795503397050952845742634023777449005950999449371000203721486580470253141082008505673146085324382152879262841085864182368587982601680964980927087277183179658338121105515232016773361429702590040987600252969533759108293418884568418750621361176098814330819479197389360243379910702638435928409408852809362589680664006370334704617432630980789668871954765692870621252750678297425323187422659543922234176418004850764743769957898571755223298542509272345557385792136950790451444235292535604578374560422335689746176386177421443145264026405375583022309957879553240433588937543219895072126298919728654942367021311847651416017390201644376260657026459920264261891223617743203896551733606689607832959432339880032400414096685541643529028406191477696240922903876710673398364854209336575312366545466820973282136749353183144522283378496906360490302279766683413977122577034621999490054093111018168805411815127675503793869544198439021316872264838265944837270850594289472491623450933324298980984476678296978904270526338056861809460573765855395939981090046697881831262537594039674779584882361779126253769592901105996733865885773416239829952348096474558076413949510156347241510109943140689034042972386485690981713947434859111965852116254238571476827994452174825000146286706531534025526967038583047961773928767757981036805908415866442165253747431056762898716654062045241470272162107991141197666903963624877824243593017703236543385722795285350415257710601250113128707741097398793065987082002126405861776866685121160405750571883133702105236884279243087118652967574971148629187267787748053409757549040842163794785241252950236604216952905502835123628716276005094419510177682269492391414220364126730503402686953499477798744584245047275349657746881237906521819289363693766616621877706854218919423891082459392851968049561651366466475399173111983972021750593796709118498388518870111769231216697424139580096135459301738622702581659946863397060004845933986288911352175927555736253930801578718150757843783880559285469628823880438035264270052538641955665625154370925584322279480371612534432838575439156611784990195757944357636032208950359075299990153991766695580573443014046589805197519716964030221090720347473121983758016054049888361914197203197709270337095190975166791785602846109049496607762508491811106966189704623232771828407439465894795193893112945939090119046843720077025034773827427663669287758081534216591969744929686335264138323405364554199986680542420110857561994073367085161274024976316099656044828184121520746013390880821773904008882240999939065013714715978288784667494115756312563844708960975351309275778734258256644568584381678195642633655383265913473765197992812192886719349850403153834345480925480746543636025678034710575071253874665018356845974255737123844536441326155401467723051111727271392287424577234420489500459032308917282317894815435858636680974740812030009728996566768526536262095980259851150776990570542508232014801801659102529471538350232238085325899004022211755148847763428199753857510507348866062135545157348823523611494570745364559341121923662986828108985674653830201753117229901798298069218743885914490204931149655218966529253490157073538401605550645098856700734066582420484141181132199396231853176281690618229673863320149680039549659078455538331918354537398869122511205890272446452223434891884690305783722043869862042228033073712192550809783597528315690307375942763881628941640309016509888753319202160172617227692409474319826526593370534549440960479132871252889829775056671216472726406033594391821873593710011895984880609110053528141672338955092577862659300445396307121309770717976999298076121518667564082028649522827730660155232246227058966978492104992056767156773426806863074075812877218577470252961197161221279041019327674488436798726179850534964156815200503428424629274421757656294545539361341228340340556710935536160639979660480710202012702006857134913802004981666586361758110443098597824051179409595437643065223072249716727958981274894038267472186122179333238917859509974684332209703673866920117984017397237102135521570838906027658878266286227465594871513360618365343145460493837795903755578870794572812206925655667932777194070386873167535126162807451372544726099064254578803752441839805174997054000285571363343094132215913379169928021643350967234222332127371490795767033347895819029709059425976719444605756659741057652476218705824976729368927785626159224417922013633675416781331324277739803653190113980677235721100245314476863196069743746314773160648837108459716816742129867610096862455436555108819479147582209377550948525867085419182002473738861931839383911014593434665646281482433039005625988787063777493741379879106066076573577403902823993499518896587866716534544450415187886952770592740619936450931448234138545585650952231632277625302059828987640778116603329475319941139618913341761217314523226572635192051057011518183777815493267234847364726240831735887759096417287737748468416637207222840170201233529509557600731056976009932642101270439297606426158005668739829844899588419084037160440724181732269153348513916841412147090175645182914154835704449122053863409165790357070068262708604390519147721088206138688427601641424155530024209847214796013570765256283297811306862141405677000300475341312996433197174289486044241457667770733329883325180687535007697552711699912247773448658741841617227996878528910827990203497351718340289887422996688931311672196371504488000057608954559936689411324682919615137497122582138428932407459871138359485891449028702159640431569023904049543421339288581589915306958721312654570800390997476652863455581051250299812404403325087968501916537911978133197392411986302103331498580052913143876063191651235932996561763120824244161484405011787247864852629619985048697969694830101871802547812954558576463909313741233045292683956373457391411401672741340144492051172568384531339781872179137028275995852774186851988084031237684823941817127250765544357503786717150025563140846425679884668418116651157029631123853871471898730500951334829466951641447210866940490154244783621225268305263276329341488068139586333657045602190027890291742766413953532909569671133752608727785570584057261869910428316401164913900578924137714172399925657049044663747366020849908977380228683272378064866283711171928988237399930955430223346741099003423907846534867673322783399526955048124701902421597588728408559962650922041091259293091196873899903978095816009948553924707598320575877176900638779809196601459559674916145432387859499169689056997061163186372590499260395155525324998781396027705363866794462378124328782687727510768569976640474729598932221925290392130353278257602759061494955284543100722666346376645784094200409621499516131014476457151309758384524317428657413603150535315209188446842317677092116369995826817876084398664117012966582253773337143550329798689373791693716353313179292299945853550275554401065410114687025810484311158856544890366080635878730543731794803340700873561576842051391944827701446987439168832629871298279341695128787518563712961429467351781246831562732113437369505959384525603835167954001688391036925764482660330206274918122807636825697686798808350365863884459431009135393255087989613328112299156359039315886187409120643059208820140341053507825284474421951694888856201978089793855088622685322300984851604711162206299124332953011209924919290489024613340547316644752410991296709702380514272332798331144044069517808961914179174551268375013279290936972930256899993399059343521421739785114619413560206780391070368432088854247358675866848666706040646507675163286098939454804647593602086938107791644297941701178776312206224273925773127185596645503452702838146695229242948959011142983761151252059625126671365159415290819866987139511668093745300685697356349761027703063858447691208085115778352514501916166983939884760260756469155911098440467640748627957202169048521086172489035551301921881674779170432620172731067963357318462458928532738780484035892573734120545522583610323360589513534512601868678922476586615480747919714538630455014265563148603402731224242819401447309156618625555721242682227420803351442486054763056726394771038521318320160882818057664920883730280849430840377493477197513121984732655277538067000917281986369078877644050071535192025504433517022711318701710234996169363898975070114865778400152165153814194120470847873932271596385541703236990211474129960491961806928978448387100204813852278083535440510956842746677821516616509862578894166888826670566909871903709584715906987520653942342072222934050411660133778754030903606814995035149720111304484706084675039702539647554562553726697998444833828509342184081236090705835967539856622719307230240630487205169815780350530813658521705076103004486660060343835336818726882838396407725141415664544301933522386997164767054396398566422597474126326964633403468126686455470112998505765212324827967861006001925899771408014016772177713597057789686925055550633785516920118083422518730809900825341984467155514029600781256362433750142711709194689810553133960156749929303672754271960293969317589335054139260481889645253235822387512179902275840077114255611655932166468612031135742288677347963289818689879045602064056462847542865841616177743769074450929077643405074809113275521383360009185623658493718009711134714406160699015561466667755891236037851190833773447687330203885841856357572221643820272558058253831335592003328134654856779912351625276922860021608564383619350625029408339371987333463236846749122269928878073196589135250693029759752032020829077710253020782270484037830167045594556108004526860974628662221886983101598980568691103714837505993706309226380579723086347364879213782044627367503093541175056058429224650207955079586383249553807170046201523144817914536068599620986141406931840421741907685605047416405915401253987639848974838544171238592886580210995827496815018602859568041698361299917888266859020710987968202747045419143456416936032370577983718506432781881468915592698831533534756519768648781530502108788210931251408476861195900690035089381636985639934085132738421866129879838751137450872915050130157855701754984463979881530414487244948434557966743688282767306408085397965538178762971901084449546625365218121523043296625610505105991690011318540507280056268890233033264636480087958136409454884495275982324525494078240030270283584653848081715079053697957075442390379077053221583632807891653845052929685939984615297067476521144981945070121331261682658021144059723890894808398212847310647841664189585017571213066546286632587570926537194864985314763581430726185214158726809334945521536411174387875586317391138692779821222741863384160180105225495903909384875773529956255834913396417967308312598489641206037110208922748994991323227442148160451409799233860061899591695419635089879128321780106314582334526327994745048905662777584217672882080502787463954074658677792105284806105000831448516194874563522233950618517224702000150476633629929995575577269549360970896258188968891535579483782603378755856445930555152394759278856766721774813351320215054953649994768647366301661158937860432276312771014547632338071959801621731788589778536413630191105606783680338912610132721988457647099760505260572779546421153254878583101518619130631059667645700926220006700883843687419688672183683200837330046336538780733581073073974431116780637806662557441107404539493475704550366872920053262608654689293583389112526168296756853018236574632162074907475783163798702794323378536648263961991445157344752482718878373486510636408640693300348994983133311052207382077597104926096761901774077324026200339635186736358361138090882635946832937855074282139806771202525819171248548247069626967050952740750837019017876185231334140692761714897524519811083987353090178095916809947671491712788400924354296730789168949504759639358137371494076918237597704360881113712050279539556004180812047631088326308107479255655538775316182859674007122815274567313227752812017340076896343983851624680006414800861932762440328999972018050739973217615437157373564831166175478264537529690885682980381528411756926473529413171460502448638467724240137809410265950937996999292559492410631949279754625852833011024039360256887363980262743898134059229691475436305562783553395036257118523337145623650205975809453735326385159198285476998377815012631957492912844641622049718898178398148795601119172970473394253457749801882909908885537239027304643727439200203051039072848998040400177752736297092384213944032608184569299280958783457287997424177827026387266958113031710555649886776109083369812698302834586858050987419794667040999041989134546477905587452150632208271958383814685916610190927629537933907596623151765195189990909281774258207800539998011120494446447016685725521199127199876198349396166704467549847796498625816194797789562209270173261163400444861266983287735131176693028484811034853328558378163220143209070573825122268681284049314844561626166102512457206410734635104716205209399675313603708744402212289250609729688130591057331262798603579267657864881860689714029908418971141608930890026700843499588525952538699999414837479476980834073631906725068193289853994422696595689262990615816972121240691930733809426069376213030896897605804475131774015743874904621200866990818679134328289864063681820938767867548026697719036304288128349530815727884022286679593690830856819799765925269858996044090459382453887636388084238430251586937340422367967300701642327121565813296564133742871428384755331334444936297440400984107124348005981407213579667151881824958896694259601097616682611860709465989833345864328069179488933192618695281188411532722490003962288336831936165074954124461231156732805265149157287713756482057962838655687228321412126786778566626811505978769392617498507321177330623582592814323410958979047036253786848766961611446051187417813193526463712706561755952235109748699147237940388912761459189155025980471765046339989001459936221160201231128725205061197688444011807942475786254648111593528424254061339660191373919450470732905984504432261195909591584117465208115970513081404016593616884609953739892864339600358026882618063843163074234453059731066807633046018215659518628112114671145242416465936205983909822980700313948159283215235425954830728416223956361349069769225998669186982780531468350155492520259938212199145479345174601240517628528837872936740971584996044393442411579749067069675580335191816404958985973220198397539384151640411434919959551274034902444045402148828596289267136007418977237166294271711196596516040699524669866300084412444754725167934138119930747702197216962442352141529531610293488743592737126144049291998661456551677419398180950798430373419701576058938609818375272020362563117908941214846328109301167953120698494241739308201012295533594932225270392208474422588734638156844472214595655560459907955587367911826036120680627438293869728295325584244386141154405469149791849410023734466570445426759572308655972758982576437690710310868638900438591691854127393015034536930861358561920064529843908142849276129606215248248247766998729517043555875760436436715167291886261359428216835944487819953570438834810927120881492936991583502694790238707012562462251849452901266395750450505531333063605659739710185669911455677840999503795786565607770332277422240381138566662683887846708646777191557702003526819502050654613627695708917765400967286859055521434457349856551014868205037062683242535248064423257684009403695175864637551554932726575261540332665960886678153096568499835163528605764721269709199440963180198762750366488958563937959307536720733450906801881712861176208152056453196436270463029869226339124757571633817107211793982118992260587712446534051325718932445101568825478618658531156145678000916859136781002116177228742541332993471849710786432254476156178919015643158350680281229552613269392387216813949468811940825606178997637326678876495257148172837389379215669153578166679876774578698583887438377596333266965834729066087236971101459536252793506449332983233936647324098244954346813015199969107630160959650578802064354281884525850901981021470286950118226051937860866213569501786607959614144414609796804027468823444629002428115324787636574120266393499571135051091035678352352263451184862856387953782249105996193957170835693680766398073889936064975106127687438327883405924184199937929331990890233402450841847810452317643469721966066562728532199279262995948554849015545729047124860973190298344587198622492364576381302504072059811964107164424800429640417511718540855200177345236998400197519787466121265556022351270044144101130401053060263452431339404078491499122674999051457665801567660173895479939642257353757409464629048978943909472507305670846410155301908334416833937621733947402563715412064459691483572231036402953150366924735685542265830222313858056472600466405884625152365450226553316163964132253851422720811214237336292722602048312997438540580004126973299064019278752005503146821179723388472110837021354472870100627524541543298574039579966195080231514946393312442783845366430723526400673402907760877481571684426302440488716222247323304243565672024361411942222769826318959696075076888864566732585387517278661586213978169407496074932512767796351657339097040207283465005745006167314044682119802974946319626676074050531761654895154253578234557630595741098964157828021612555571811808595503746560817892557232512118430073757455697812770791284763015648942953333255106927339308977037744134572715036309375086723277699141869892006988505628588110698364279692156865585443995950434017355994588502206930592705750504290281808160930397028104191361357480037138507430035091159505975053609335660294076808415999603101405622265550021703584513536609750652098399848963818300260799460512357450686652442698968164152560722175049004889596201866027199315322369134141950199121599892323224329660553180487769262673023718477435522763517743037659451083628671343535401269366138601365141127151276039441090532330891891902628177675402627642671654689159769667543768668706176066154079187407824373102118754358231222662524863634306480648553940162222200223482827753864464328002411513285604833830638448271912705088982187686933294283812097258259504969068161428201291413549161825110674357519083793725107883458639729723336980159808673108880164131836259211726806359121973028420356008444621829025571804217192033918660464865457537761078507982852220213793291155890145160088477452691754746464257660653639428516162168567321173869667020681590517568835034603550186317167441908437186142084953478139588917758673730150139467114349428950567725365172313493508449041133763153972480222202557809994628050594535579807818537859739791515605901728062153954321286894349172629371450941944298680140318663995701077686972112612297626713029592256979483926977988489830065523131061126073853643699040303314255022615548651545858804543504053164461489218280581568435107184012144853136256983874759609172732543954718497027242928264539575636475497909397107858966568014495268300196613650885584743807869977220672144687014081052689801244070148413663058916950795215750865493033859009476810743633385662419372175043059495740317034331401201410786517745936151504344658377094417382207218237723560012944003419693140401647382610646764846021142138592916767889043150680869346172238150203870730139608936683413399372275553969619523199410981948323137021169636708115106234212594108305679927854876463670662707317018897801793825041109044119789026623048346982407045406939002012669004381366557246235392538493780772891159345035000341467732136562885769796199834388958181449620356880772643897958471261922435031318094857722349066447267245146857911290781023968780396919003771853064988605321724134440991391668876635388790510071322201949060906096596194439235756376861870775955487220597852110004080410472356844354621927290684560883718639550204527291271905221510630806409476438117256267424279671059838461030240051332867016828609584450492692798459497930864866040587005049287902524337597397879089063089605845742976296198716566620058079591800034452233838105288817109285437898547822063696916230269107770859537857099864624527905812291889207948819421116072193527612819764213593197140700040972146841786749426912107453367426658721983795463161002540343720378148849554378778518018023488714387820074782826389828940547558276529212946474806266213886408663038630578222962181845373849461301594853338908472436670479732786959359246222743329955454335602150505993571322000600690744933322245658136024837176957852614403333010850397954045816981828876820247737908809987673502805932047132617120855402930153300821319153992291317649579538538907847548915799831398463945319974806569439975259569774450394007748947408820427722014217856128130927203145247709394351779781283815462954182217869930700270104052546607817816448890568423581671463416658557230243906225410919747496642282985645695532006581693308523288212425634121240926795283288425745865084250774685117977633258485415285589264915512023349032447366010277921251095710645785196500875414761244081500653402986511562666391180156640018138600915337096006308747518388219112374451788082506438031432057928251277278311406485062896404151790570896033395069256560787546307107226402031888296897623892075060752923242431875062219848157015323433396655912736434049556779812720902175590046693890513489963267872685137200159012160877284612215382115526440737889323348893665764936683069277982573876514080532293934874527626937338103427833236207977272904709846923170237355165329994479503488657837610613806131515883038322430610955711430474361638834360726087813173274247490550344116950325180385541889954352734630994224949782161517378496708690747036094115746180147534993670230781124500367917147860263432114320786945299582082082625574174817800394096106177514416143713709956732468422686274982301379688520876268925670368653549350486739810438261007188165278569730059355499787697272047515206462619035104905530294342290929712073482351247675701972723655232189697597800239324497437399205476857695621955914731364844604291095885599430482760303926076645106977421121392066538442471504918661194731780478868854195652230903269145688054267007104971935685145826632116190913800052904176053184699783807723866007910661133663562552403649462973844010680112343444028777276997296482621792101242614386545095039670568226251867520505006321191421523445557046851068112509848081930504419252944482169033540811573311452587710467977915772749931868275946772400281484316106571380572631902299580888255512879774571397365988832319316798826874055772577946191858988797726772236074956628845769199212275407836590938171232239104808268596226782165335973170950658454179503824763279541887572680789258666134515739247637436560952275466904361329704512844085105377451702860845630738944302748861848362572222817222130731329043788901590113930375807631696928002047449009772595114158175753224398705472400367963521667466240836798717785024492433178162436140290397300293099036167518558174011499520824088214404433704917490088304468953639390893467704788694506756141871756901488177321835812881312394025241793758569115277370847175578765075021270795134729993578528563226595166881602212117167046795646629876892564934247110703641971020011743770544445879817619227756555345004442626109348057562290599711189629355446263355561578058409702376579853271658322274847744384168956078944571170043856081742617302289368033182857817677433296075713075349355756659406644457230534200737422509267615191706053458140968370443184997608094613950397134372125525034412451490856903429709847452942284510459787043978206564761471131996507864943097519123816985067459296001963376559383518515246837971074621905943602760215456194960567142867939043967297197462541771221931642749089252288737187098077902821351546351763778539320866280775503694478911119275842926647778057001182989436252351554823097379050536224293427956140841540476331899078465149496049022628598099557814527046527264715585135524227676060489172161075449786471813345632787457090681928209073121922246513932094469832198297228653485870133551402698411405762515550908072795170643079039865086305441662878817767609200883928255552153392039650934283585035701753229752758711137008613403848962627180850312095640590497105538222453137304816381367560931706458417028874774367383715177232863647566134629881366346545485385490866698441207996183902705174648538692891691682468104410801543760764550983745267064772518935432953324732709987037748014930744573671296904410173509460587324757344196302699684658253184108609609455533237644337109096063533886014161302622140682743227385866373342312733390063101467378509764149256377205438332517640226294104158519809696361288134269003329943829482408898058285459584015572869628140084177016249632598060629429162533999659821312597303442321667247381870727723037870483762644348605962332558377566377576462393820948731879450081015983018306649078605124177103036475512151167568009670602106410578760817969212941001927774175831535984875315128290813937741927215284577308050574610307624503479331460303295878255116614003958222006213220397272832954078917731829143100664174602697221405721483417747388401397002721295560206469223241034547945803779330916690822129562020746465764535596762496325751183135724831017674309552764410911793955907825930228789666352722228283158502214890627888541936819077782412962924283003398980317100378211982651352907583520180612210164279250879286816667630193663177562278561272423804390588017073645166986818013093589183711037568552826559417092206122979858154671498845533291672518256073848101851757778978321090762055500380777136320833132419337021712197576379945942269355147508424962747615177096049403058546587256125663009272791118142949468541656634956796343157437131201953047663178884548739404098040575847354044222635113890437552328186984873549357918892969683749105872344402430947316533769848187742033847655871977787585833680075583889609625984704164411877609158527592822026786509687573779557869847795538670839059941892711156006684849076166467544161673901174787088628192571676657999881260459301969215815578975241558388773958439186066977608192830249245549239165378657894693560443447535621925888520360784719295796327027930119789750829046079941537627942379214308522050460179227963834479680246759377369344892150687857623800494246328399896018296436383093003395349668937052372706177124831826227309750678658130804336022710018244829231646184078190180736734535182836373599677101367704945641848321830499520322744057867211633038149641646109155096161859326976486289495456140807969381462983316956201206643207649617262429029509775296435051393880481215261797017313621081082984505297754872756437196807102497076095670004856650810274326655773631569657960306014224905023803229701469311109882180954395203578593159292429741721426004975476890078501760403211173079323353451725750634624703171434831828831500075775085316854142316187317899553214629736548014243915978852541068495366391869901901334640231839595893135746457478379616233906464389535116319032244843794280537407489933162480772092816579119974120558729855646690070986749677807825004176575863867479148738643852634139421358760392961703876189822611183645491440762586978586304258694004576702696515716608223002739118739704074285927308027899463866964273909754123417599551850407779011047582659424846278697173533633608917124405593766607654263872497973569573741850971041892397924834689397588485155260553847783179398961160459156088624466749305060556307144551940466993104368574305844514277655792287403242493895186391824364880066322108482671945956061077769706885463775033040190859311709545164079472215803610336611104970377278587795768302117293055260197201487899922173026866612747176520635320908376527040272890250454871928416520427383851639920865905173765576159769842197673037606124214469861464846681091708637382884053749302620869164985131801973612246993585194584610417913541586064045988505593023417243354322867124421017910517633166410796288362253540410628506490048695567607243234327024546721692866036185905283833023091718743601902012799039464408460069110984608160981738562167634634588659798702568990745514631539230488585785098441462514215240512130014463402525660463852380599680453362655985649211001258011026144307430117323820595044258686926978623397876981759184921278001729563877174265877409914698322278051705036067012256984613511943566273876143693210749752895733893630687250199332077110894200582596172561293508638211724868079519388454601170357636379159627588939806075337243951023239278851395366836618797434481339522785741624707348454903419129304798530363968633835969412385742256798583267014716689972644780685624989815697601396243945440376592084656655027521202614991677324789280229376777314339232603035483434388241682475498828452843214631779706835142269419808236599071262792933615298079054969498275405601892310425222406710099181500609854421631134365849339382547880613253605588340902965448645551970509628011635448023541257118918502508563617929928267488138977729572047973126236551296551260242384628668633933142470461449354625639453501021633002116520158111018919551407090233710485183091897827161573558606686753421230304982019353957075519963549576364838293904570983720960647753472597109324712520791190444542755148391910096066973075270162745160770164258357449849296481281192451342260876726934476148841297298309851327542584289313736197468637364233976892868244624064912679702241281254592280645789395494957010717563521452289277677613971798479138042859410004682767844127432811977380853368273714592075478929644304612500638296092146448382798192550773687440382387068251566760931974243486276230242568076727965891620505210797008082294993041413219726665330774119017585808084527537819449096928072853958235341984076545316878137698681748736617176134261391626123770153664376229208357976508629191695646448521891995966223808170582955980245238881234643408922674023808695524196007189783279129128670575097956861119944126484185214827286425984611351068989753516524903244508610501971920929740872060355890464811557601099614041250243830972004404220410368352120824611897848326099606309405676284021714382139466692442239382914700498811519015814895466092710746946761683605211472641229305462294832544459974204704930654890854462801036432820396615951888349542348648623406389474348679700845128954315765815523318611360582726922314258953223941888554019341508204540117137262744207705911177045788137987691694580080361969472187369896461587182542921001757414546077439120913101849459926770974422779421130461129177823615691474380559293524142205484485319353571268445099233583978735763838502053394860191131714286134000253606789277567189448716323885891963123314818322952348957850367063451864021560000233506335403012531157042939227967689715006247458757459930902481035928496240758610952010279042245773712899670638321031670923112705580289158760660532251922948003826704184925133308672228060241860938138313551504864372052805897602363129093771229578488836733406074907427980994812677131708130361051512190518608107201924551713519022785896090469233006012913308679904898804924169408871144983790416514688336131536704327594485627643319527996063325872923290589207469619412144897415335588477207322728912493373081026555364836588796399397656025187749382358535962981544288180634637642759214994065206022018186887670970442367306817209650670354080422702861714166309019744195210888317688651150329491484837913932896657715612897643528021138055309680065867749398606047214837876252976146542341346481637482231432704183679185597186213064058797255802475037530302948696940304596758452456912464596166363553751575743484744923596181491203387949930395709921732583906450164120307983672591260642544732991708157843068976454876918949809959338439255540835792587654860649524963047909797566203063021504866606527520807111997072692686922507678803130048271848595016130903883787707086721976555978564835894202052263332821978698694365537748108738328077405575359083342782257086723078786644960873768957158928057098671739912588706851730912826488300259263362727463995439479126577048865194249701339248374721489105515676806929188389233003312892232083607529518064256888583827948814359115606032863013729584341516633910418182948374854913188764978010864136281910987076619813462683934157470869085423131365839725383007999268200498922076195981583578185282289940183226857461038608256542264388156372301266409055310623542946653750945957985278590602034131267894850278010451076029135764411380019170464175762755384412938099754771523324874676809816204278864057064177655554265574068137049935910757673785765950069675029295387507618047116587753668986851952386481455462847862159407380362689311882282532043475282268723720196448307107604001730560093466741685473566617151865205339467187002976085462279627340045422204535733828965997129422062261807785526143789023123917428237210424096605213926074061819156835328394944144925473728679156040576288001839750829386591274183680952075141495201076370113536279398197825638560452861283688909337867177651450536987132464057479671334264710186094075295529895634087182919226804971516477114604399138020219813578129420133548072698593743940509526545093827639899451390199681911443845982577121757206187609814801835920935633759271809247363940014349567519534887147340808594754405220192787185372170818036633283124639131808878952382899337261875693331477756435871177320046907133824934449569818840297211515574939692980036061604050759739926696812638929648253973306564182241266495390150295117735388472205411637563446351446524336094046124489139268391606566377800902024454004022425821404876605767612595332750604065834700505870032877173083055769960230263145109264380345415487714223348278943866472661059049005583746495288420176156743452989556883033413780205875197086184865622943255628399122856990273333767798943606552330576295871522507690293295728154252133625855055291419196611657591750027292846918533558744093806459110164421760512494994420346718772977579775719276507596277461379218349409420583744503265502673748931393277554387832102446335366503065320832708329719688542032893737022480588590198106702461323003788634968331928484926291885215317603761583430115403150690781533057144274647638726380661263548164112139712908759465067478194721931586585893406341577196212307140255946250678526570942312742555254327255905263363224301983285224761912836919408729293174675772115898939951816317531441842643101412810981268427756263447928659317233980404474065321339271045564084826159466878135517014380891061869328978775762967320859449701878437884697943625274508171842888306358549010163032292182013397378084178133171703902965832067845947171150339959487786210078633776050450213507137273809395788182419857592226964431405862565556916784819510228305110588170066688460135298635612846939338523709382863243034106122993603011706161244792021759942918916643055875473604040099453397697112641982456782166055308561741218560836115762866061263014484645190664056882274422075026339503513135259110657015468366664950887982059268236391893206495116178981961972249197522612951584266403881393226464338254358802295980526158209319997441994619720256988457665097046164078078616223661494097238187220781652711228218635186071755442644483724007607952475937291357215860668673399265888937791228040112592096653864548438795919303321716786109936815025184940369357293443941159078659827220558166498355005595163719965781917888209497123762953259093764177452054190834556332697402511743705047258063778667105305892837749062593618576952146426712569082688542770686051746499148284066910817979745147234102111220026952610975818251562891139104704905885567870428585962252983746807992373932693466997510396786659600964391379645295052779298949208155263393724580985080433860636238463384701976170333905359872570141529359781110108713157772283270069112277378894782042231555762568677775547064545228380186269170275059780171058795704496240454427413607492814367424750837582210714492579751228580501894542033908909824339686995936353355349947143309630510891157721749918231222793358748496390197539213037038783957792040194908042331866472232839191057839662291271612504322744538550143445196178361293955997868206968320059594881046775337080370230414760755480445630444380386801016123362348755258687784893121966371706499196396993179162917617863996911890685389633446697873314566629017827970029155749275391214215806118709806748922042509817070308834595328180640253620453584861410705114047322744740477675103087036720418699892300353504978816041503725371593435733669044685271610062708102663551722951698924703704974294045689951318086721422960829385772315620477081271841219252693136096595175952520131065692177395095739082680907660292941802462093415957777149245558754720630960213093309040147859996833180058300871333135034062304274027713019058494611722452224608465864598108294456708500203085695050224693412357360383719454524579764501343514582662054971985922481274937886790622187124656646199597930171614287583804051633764254243541968690076950627269410173588130250977895597251923067407776134398829552808526899981479641965221486369312150583818452455634028213409231550361673037795273777141259407613824944559526890120071351460454227764512975040363967960163465633510206023489432617105427380237892642965209458308924050122110693153699994817739031571094932057977644070732728496661978664587239430227486544390577021254712749442881671922126947716278586778601466398718996073699096654053466254081492326927369515332979102633727165169672714454167862975720040059277883000184448169386316616285602714113124787382091023376547931018533395512228385871935710948065870879112568837870982637550248402366898892095248292109466027146630334329135339010950569120331726936726160070480925572610510103910594703974892442451947355248322676571655213408983206580777210774362132104676402137273027884246845487198697281817493150335162360872601903816962276118094213628202985610615971018475859869652251698653001366936168321607691431699348806689527816833365964078114903829519816441195574883076966445259257629339701372045558091312568220946319610256562844702652781189516067404533597794426089439843870248323268392125101433746110510389240115840471476720614962402270858877730384722052957577280273375553834741648030890944772061011807452569830357945312675958401540784360945513253400429186372744655918347920406414178302613124750746277925186089037871680889587876925142941282429536782271759973208299619193474846309248009397652996298837189371567256214909423040534194003201742805317345081777752871099281709361433648951772661995458427291385760359186793068744257908337921194604454461080922765694121673957017752218524615962444615234186165709152700485525374957597987640966584313933420718403670382950884139726065446609940056953499478264327670618555544835537384688592651435514357835643521923609050099857237643146378578736439618426668778201951199455000525712349689554310404628624281694425544016779272849680931288854595788242691219934219646901081563110063683105073933294161120966067866620447279959888792694213513989953778460991964678625486380863589747302996869772885945334491113108197311535270601982513532429188256760922732680553766168391567361757432553727073273817897541694431015461606879502393621631284451902061699736430108124854147592590546849245247866844001080956855294524755585244044115038999119799361627229632610042740354865977329816057249573291363057087890837050843316828909038396364151079101169459251660254800295726059586719660310226691713712929112520073512824327243365495906365148046583696364329863100805742419219990425916973127312719194061897691985580991216168610744349602988914643592515055879176773452129800819262378949512926970344050338150369957706557442520866005889365255644844270849300659007880906530725680874816665226046440113060399371881130686411334029567101141948495471251185353126310484837982854698153022883041133017407206239951468813802449106075790189030738320603804706983834471099659468088876056499256231450136210501307097017712476378629681129413812654968758011955490926245948718937746082218421726043444645843384008332090863143193899972504221340150182865449618039767069089561248075515229607666139295929126986431829486235866401124373985614275809410251746994437994628321295293640785696289813247363049599732999243670337478069513394273645582126840853789475864660621462676354562357225690456123149373141774035686253974846339358825963533006697426525230965153071021090937236690979092240389091545993198799283159274481015456124708226162149508971824289866625805489110046551008243542123840254064818042658388086158561298190979543501138274651763406978127744526619636716103607257628802635145014334433802177496719668733164472296168742697610039540586676497945442921966675953268748774523427133271891612150544645438105564707787326191115127432030132721481787831544839403539029284102064564812101993721361676936416594311639786167021995305877695231435304992381493030719512775222306659215747661345653774520146112144738955943393737930168329476028407569259155483248453736445686693734439199544745908851138977407609609332390778938408963405517674678506068493195468484294505128363751035995444183506749164880786949145760350225372110183610186109166985157416523449461897131119848047186565639400664431581815048918228702495006181879292559307736578786529997938787732110179598690449409750288268174524824938455223507060728563901322040146024880430626230013897631657776712516956555796341753565084903439556966124990403420557140115087725361686436989081753771845834069771490415611361833250508728226712553573437544891375668938409089223662464834895525380301487882511298523208440778367301578301691205151548365261927806486682420236467376376348580931079965628819151342727131269109761502123312596168853273214363744251756281465807659444983837661667566553495507093279270278028391077613036535501313895915112928985037186301614545370110726611897780132817969816064284690235910649142857983849283223816960036426487632876829498682735319758590449949699125915193802866371919841081374791642384439067946026519166288209972768034076539331818349508997456472490751598437959516188589583392518101954389684519426724940888201169778237895849482498000545878006847952607873691130730822907650858289690796666241843592467125241460785843701183180549651523303870990072290774977605229214502337203834849170819651784865047570060477822682132183399652483263115770189870007273439469979220587168393862369406348679463641579029616630661683156253636377956679916999813046723396803350638529920279673631313654296409490182212432324322825964912015058559086474192077979662538741588823459885326505164981837714816509773644197678916598845954208424730911844031030129086551966137961521013700590485905351699851196940989674083552384706766368670670081653902093180842362379883262922856234662835234630961287618703671812652478047911553938126184387733346583549444234471469146223438274030507038435275777841120051270608118668093050059723764693617161386690429174721182257178871790257172297940869173462487049704261963905281035881955347008254075894932160517769042600086279800595094131745716118923739229687304174036012033362612776486433369324553085787895936618413278387003418033445474491322325679080434517706969047274042956016585120667536438375103234335910405860655730700814353158230771390145568990284486227177124868289929420639150130656528063552017312635680589288713697747850129979222640823370430996319533027964188474064772323233967341216724668409842857644464793886975774748356397950278403888109961361657640564745199445339339476212752643599356794310785401260360713857325405202752081567430626990934602190885947550745716804761045565253734936500346158343240080713607960164630028082068755778436250836352561556874375404629001775039079991917904535629407098047480976649672682190398214476382038454063294865948515851852113714319297698753360431339969448163355903110069881302522205185921261367103380135496352541341173135072556053921589414077031810807977385270736242467138786406416439519518804263896183721477983281726842951542185214055825030105449972630394268425884623137578516515955527602749778813971002561713843653125534060393321993503530460428540109836122357120731102904366139690911030239322260578252702159712557240138651416110271216641599792508680715441553123002653038642671077929797064735559965770531255314157967436097705508785030042323322447906908530914024319850942776693679135797444663727328142424717459764498144340602094423369352724940087822964796060739590048705161784421751744031758728832549857438765319972013744248675500184151164171701747299065695329309810433252172386248626884666868032535007807057168862295210009846120103114854703671073770543670386014642121151544195711936939746644512191990956725654154664265936794971431854215253912581353057380514610661214869115438981158177728089811924715328881124420384251331892338478650978466316234508128625569670722717959514041347068525522786514214301951671301787417149256711288780859517373694081859785294128950340234574191002776009753255980560953287212520284389994921865120070712439952042799448219145228210089694397005971158020274307479752111674139846392373511444763218101791521032860839376024893031069964390653379503801373726133540043179639564875846068111144305954070369145047920173927096205368287134749726656387293435235381793256518423133432238803669409912880191530424223983753575452282077558007067138263717513390927609239427109080677524458616068832116675521182561587111298842279642514062697429450181912389289118492333809129223504655419368841945281865228036815398640309657792987037490724395942084844349625100740385334049962779561200234552688019896619842083841436967427962107009123452051946276351416077763530824871981550402118647900496693194882987431650794639082253340613947156424573641119621126157826148190226657634393470926261439003343381551551976973749203458774445687756547699971842474051209224339522984405387615607796653574940932761036106563212961925251113217137800023941950623757568491620405525610086945724261922251759910893265166734205149821530153561307727743333360767905373872153504720630189574720283143000557255736515097496482690897805960309759230621458931810440343540005563780222672316487998761972010490999386821060161230507649917945165853944940383527275478913231140836734844580155900314704995791008783800739670374424429259900408038727481757612509728000397934887238885456787107623329560567406198531512843355842343573235530900268395738403101697340110846273830346550449906291631282756533745853207145337985838978017315719036343073170762936431944552758673229108538351664976359900937084234728641245517499511750839291106937095459636361917436428965125278026522280659889787246052400592847050070228179400021475965839270530824703422549065708914107695824164320238787013086978628052082036658305141185024660486391815637064863258921607240761470753515448198890526912227073767225622860368447511761772365134799773586185590417026534125276226729418191915102047859278068851221164173601157753899754963908822755995141699320889710909971279443128734271124175408521490395239971831445210379900513934702482695490652621368534137802582509780414235447497843086347595086114417130414334134520782857914338190512899395839461145304087358857486790811696897798752932528647307037216997835517395810925272743403297230019349414072443444677881731033336564987027653988510363644925722804071711498111551672091541054040338156223964683292061658806551685912470790200938908518600286055692659247067060120942822085460789830923848533128235143546620443356376389080267670162834856524998471805384248009365890024043563251239608951448174953530334266718375350558655177593866735855110970385417535829960272115662825886435780834489032580153052905788591949318145148277434631797061249195803298125431726912674815135028631640513695681483413688551104641596262335709102097486465929113344783862987202082054640182340860710398942154782474103480617487577349030405464124593737033837223900289175919830429309515189135765398390063218091764353016851512391936891178790087610038866557209401640191035975434024419589148320054369381666523309535942609062521318677986544876857474138574491128725458526008686858280266787717414288433483849713682343685145323475491927339399459651334896614346552833701667100992074133060433039050576154720770774793409092143757048210030843963472681802164318068166813337938239976202102348576110228172810666327007044429231535763741989168922408349905741852122709641261316295244355326961932252579914016724895530093794257386989443301679041727680771094582964075131163525577902657635708628878162239861327849880470973267018068500618509277335766183232305219247570120756665835493059312941679241370602825833116603761424148773014559861490418549855503977437132317572729637445855925511532270919547599561163766266720335424078957052489632979554263681895865624096897880821333311311584209053897944529077731175005777805605017862587496252616033689059357245617783277730918076643435902651588466966163912245743479096584407191542003566449978428189384388293550429645119991990876022121236622826939651949159526218865830766766204137995559360274403180691902553622671018000356070462901840631705290008982184953985035177816719007894860444915744528836746986786066557477070931346765370315720368439343854069543765081104828879563918422921483210753134663448583176890692517933413115796035203129654930354052926379303799977079587547525535986005860905471627054754643318595420571186792651348404034895284320952642211536208527035934167927719023779400043908945439974717865309775028396069425455322903731269433795123121903741968869820694890566384400089993526006148211642558557706999709163130937172317996123544338525520895324829604851556408621723384869497525410925362046786037953950633691368944923554276426459034438384056007321136478179635573122847132520733528758163514644693326015676732130767864174159449973735915839296386939613779693773595324416399629662693112120798665101443300070998224837671020989700572352918603945345525369128444716803538350289973628325501168109598456707038033036108388794394518017873767104847212836408599599870877776705604040503736190063322822867546960032839008637109481305739790066336755456599623149783516752170894521304883914644048410487580651928605713858280447251292396711871184429630451436099610609729642800000210946362555957974152979205241473068649553527038677572671047667174462550399829391067096451614192770517584672212977998522628174616578068404950479540705696993790955060660494558967319116217090779802340652604544918402860410108049427961549829262121641193387152296656974603312989247103273881929404442977756658352642610116442341057209567705009708929207979716213574028545902273413711299237556703622659265669598732787221577601818437309768899419662569438373859551213088538253090443797155024521643177790691572417264102439257336739527294696014485887040662910941300939257419168737353542815993921428572830428486537101638814103428026762018478836843683985314168821254952873669692836836052266843614811780329417970739442576775654359593300890858367844361464061508567495635197749585560099777613045039054653734321209396297380789274419053536817268231794108028140264107805120873573165904764103623329150463252790852632606810630399072390429129262749087313489712220795861754525027779879279429018052056348661168199202905387461027265432686772372366204312099711936976896373462769283445405694720040653425012865844955057429694887973360159811278691221790912640337635115985645562606356416707754589932274950800713047142364261109259638905489378520407452208883715851759663082930481092183872672610828576668238563557255906743093916322628887805657492272013281067087652153917527860372665482600978712644382506230054815244453740350593608778506779884976345760987201527972167348758127684528120673689811567012648225932890101147851515223596335047546383839044989992637541762726554268982254234183322239730702321112482788282060706056620787665737279720614402521595956858653397061959625765498599636703047002849123431673403046702897000140153039655282947237832600362159517708167487729717470840090081687785893530799956288831755074226137090109725101660582178592962258425580210230534337587678769983466951115157527080092170457512694246125424679365814971665793984108286864986954451193418758219916014176356806058406481377213484848099374754417001933742292526419887797623980083189705704088501507450707522905707512072833234583595940558861584330784065320975675554727794714783904778294935528586920866424810582990457192653673021744396617480667214714736574982471757831689781823040439489051005449459997385027020962506950150809422164079522496182790896945644948572927271352400634638675240534402093825669321410428223658228975896715281980207416489516800877968435247982876092086900362089647186599504677088855836003525559424395405718076674639880292773881368781761789291682657549529605731027217245494347628833784108475941488640795953118715600916569490811557370462813994802095390262094645189107209715813452921096882816464157335769694141672088071412863704613674112974684172156011791348351234202015298819603894743349458093677196949352658759608616556617070200858916693828089618700899486147959476832694901660288188087383238640167956643321015815699162597941301162509516258798370736937609298181658955309154675593817789561838550622564939009015265431357179780444227656427297324169323987729205229379882274355768797077019198953551471414952055698468661691933568709519834505018021905257399696735978388352968378519099091551654174908463753947904419060688215663159721172323620256831072218540040607153773065178420277684588620359003072771547240997267635880037829670794390603639482645228254039303727084968799326752486895873210098776145617937582017708712438648424470506780022064577974405035979576403556157181341604443653345857681597977940922378038128476850537657411423956142197363310056440659771414914497724908099770039245141269288820660908393541589834063870807196916910858555333297809012689263627320501258064171421601803620642640276188733337145807274493065394771463566708276201095072342263745797449574570207421002123630794037801808005435893109398578895243711663808040659013125535031382304920287188767758452453194046275334812376111758188179961391237194662830168632805092289031291782105142182677194594669782616332333159897152591979276211850920374314638526133627469103637865432915600703242878384618424809305285484220632825285180254664843350289462385516880884951699526254089716860702064881098278952241344285055721102514913001018613491026690822598280031854140107337007398030513095946300156365155749596721967042968898125626168096301424687747796141852708472655146165878414161391219538459543360586121502068087587640670360229165123440060902336664460664915756374122398434934512494019274167046632486803475243215556022344837818100645990297885266397720648427151958703572884618346613774539805058827710886482852583123257477519489242748294255166107208055492963700780727487778871804696017057076833443395612664258598957236435631645438580447852819279753750678354725979424236784189408642317053753048174710942308832329989582148742260504491444421326845735517322754577068104923320166816998115030275971643609389237161036568887693035229488897433478937306918509873223441355024074659817654941403411529268765857514574001955230274512944359688842287013584856017228507975185194820389436808477871912784235748328912012838909037161484365723141924504655847042978686986843087314266137535927672122132621714554203001687890176797851721243587746490469547233282153538901956791869385055128390090244909868916021819406594747648903184963702093027886613405481391605286197867150572937478508616443136876691030135324985522458528049057492472622947000058625083735032255515284681223899888946333672567360182559517005438347514018524515451282379301951186637453809212521791519421394471408534490744206148898991404345292755842087928031867723047329216745622070871791997755988089054895744473939804154203190651424517613730362264500370031646219853128180346509087175056866300425924937959646166840012396425735298590087216820609479287097009062235728432929892504081189697388962176183455605676995188570949042338530869728007993272945196366957159813465821739180307079715810362295822311211694005743138159547823260755162461416394559594199241963073259826419372152710662975264676028084791869842147439845706279394744906868547780599071822571995980527879990234663622454391040782418926168995171715641976724748721638047697748357731944488134078258952561218301759687835152243661613231556060999206605124167857148197236925961801498830644556245593846926492493712454902565219210700235144871357576831582663188913091619532998340017329317213893245078408495355056960095893073308716205728037988297408028497885437139686032911011361302403257636982608472241290408152873825393850645116113907904676569514347664016627786153414389271457097320579274405852063230227262703016540824049082193162725673726490570950091668327981931617479581757586774551057689635503377185179192239927911966452721693532347278780080266943261665386333798696704255282609966049228255547699566958733485035307421866373704568521926354393538999578864055294548075462787466238383496310843735935117408476058765467519679087145835359580448640449859779616904135961625616832345957908469589528074381539300133498218261650470447069695164955392571358088940078865884545265673426710987535668231555354855488602782445022789513763560002415222515839870538996294729640717359837539753796621495594085222565661103657759350708114106456288846766743555375123895574190718388322519804707487826840981716656906495344605753212254005256293340280033698834978899275837335723221651075003575187961170181772818914370269707571376276133742180990201070357448328116507003381090819845331511656953535206744969132486597558164118470383596804413289850238952231879920672972433002018021922124587909203341854327121086848643210207223895869782154012841117353992860192918512268143246790606649071112209572312570085952109170418387970502586304458910986701742544071975672541429073408470208192442060169566553028671818403196341467461358466446167189582536130206671097509544922286086391339972738585231443242384897824802150970471336923953099065642716841388931677867703857244881918102392162712140461437749101364442528042675716061521348968581316975961655386959438136161617498983651060731214198625913365940902368416304187302067583707335113796751877087414630043127142905350797398003650155860033380104874694136727168185876160189242182571013828528583804361548297766063112885827715017212585518000377008131070178704536679749967914451138542971170589332444475944783839471870116232363800316285785193052834211917732627745132926645919142360735099143772605059751260647776109367306353419857807213857346218525508281828178722652939371064607404208010705845361172204973688060894438567961206678357130844552092269747431806996885023482640247144444848524405730289463558725911187792948605451934736667745350839786464668749323736192780110906677617742465818048956697680437430155159057697459827886961959102900511238043881714207369715263319085246312749433471882668346145937544111055029678710368793537616961698690858484406919554925919927574128493695634057045549179582177046238342056678786512368222067985558956177934626389688698997686280811006158839939652294617848749602582728556484588170840271962733302951660719622978463834482019427796696429952354271177429596720446152412590030162881765587786833293762682555557090139780296012760083461794648558963785315658110922755328099760333274566895386180167361219683111270549410560499254469214490706463499029684136877611970743476233928874499314840196588650431902092875312093494897755867747575855495592049797280218112428978441405510167756632780558806541040639073322316103252926630812419719498199406726505526528579296392464949126321155429396120924763203460647659574821699655890145502889573253006972784502213964575745824997763882827024417906151841340939928989326863564758192148132402931506200424296327745374335848248827718839146986870726178833233927796351752848382956402413704489922711178339182013906659206277768219816641741979805976560134510129762917951167567584753448546369166018743516990687154528197509016678506928572429422706789934662936075770653017770478652650121631850470315685049879948808320046814583902676802314040759781922880653818361090216010215531370403135002489675298251079977423091889319970585209827035381902685554752089460937000089790313927366868688643193298146243875085953055300828171321216042019245791482331170555247311837366179976240588643412309806920651927746470671552896233670880247402279257374292344814240263228680189627056606076805428996591945440220629585403606069905202015983677322483647249488144538240747181681271357833571486784256499036485159565628169244246247700505305360738650996283544796649653034407521441615634863370245762120898828120115663317447484270897516708183570051220226658534557143267571547926539714049526774497088220982209050240329315412940322641303491286836694576329345399760774995130831517629244947935794981716013884763607642571878135450971249605245898970005567980866445576018560247186021595550612204138838316781155520570179578227053705525954239050578391440215531295744204825177827041858417400925700105114216111090829338057759601416073268864169444000708782188772691870896036121537126339387081523743719561372011875570022195194485517567274518694739498540236604129559724796246907369595353441986748776488778133163333000735064689014241957317495575075622551647174402595923809745458042396100138427795737863665335636805212150446510650747200449951716708851209388062267553922940848572350237693021993084127759685904455945625548121014077967157986229575272058666454361419472618458842053760874140946030958759212868773741720322146948092197707629398333995330126259440464291940972052800349212153635486667526058612840627027687113989273610124729423387166160222262412970922718242047912592577093321397451999322630798230249071244936932743439901009972902576603525651908701477971789111432402798681520489572891486891274208711607591617700951447653575009110962458792740082135035582501778305228811867445429602509500187696893897330951615356300372649898151324759305095595624142114361012636534939900315019798802556497559543549440336644004407281765546549112202426662002984426509866835392967954883855219092205248628675579766388461272585837543862419570986181623801858235823554051575150158369149402180814144175275193401326572882529822188827468033151658717320094975319303275515039708402633227948097098497726294865711490558588503687263385360203171604295776480881554207901999503773830427776325177150046333560239929757152529207442464800061430799144149069154482639691520039960839198307509840484887419883664005536657949187081681373388079941565288722552506490386032659737234629485505459712086359888454254839670839425859100264459797134520719050694859191072069136026592829524624281589985609546879073544547345572639519840988550133546680889209734337216306863874489442132571306888014025642322084063381322193043044108434272190224318627567076622491571280539457865191553047106385015602067880350378233386832638079553722888227526770952737631910323326019795384177612973199388320112130543601926823960936432660324297956228851082172157757390301561486696408910004416286432022563640992688002086062733134229344147976067100703442375453738274424694529639249868939592514319056375428486579259483381982801598403303600164038224513825485563178627919616868819052203782708055679608878859028624729363831045016474307025742134145850061423431009335733304457169889233428135000270861996823259717984504452692425896402803473331128434800454973839079558619441689331162262119516425025974393823485885063654783056193361277154496259415769579860203024901961552455210488186134561939381750994880255398900278619971786363171254711623497614323301569171295362622408077775459997734850978068252964521926895708518806765600062707352233617854270538080743469737813942467691907995246556819968679915860580716255485024059816298729782281096615493628912877556623935506244103529639671751762775322763992780577115516890579826838158475317826145690529038780248035614429369786401812640395819941921916950344975249445647744109142169026880988475855944775450193716772782394241202004482584510488883120944181539574378048013934608117942096755035584379372943600648384843444775816482943479807716444397979334813962958456903830531265234265127822590760500289574847298791166059312173835430053033618453554890564649156594008888050762188308436898079672386091687806627684569871019181241166591885932311089457123792045617784474602566993874774207471960457631677809257519956549003296751802522187174235572224234110716432905335438054758354479386396586917595444665786777776042656204211277526710827805268460253369245900321885836582292778914907635124215371808852937750827628308305251546327582468831003665748916380928060837061414486888205304232107168404515266382024283436963776806838084449529977449561934637891772781741718335844214771651557805536965535201986396679893037998729986319797620176901608773086007255940264616730239726475406169466558601866223906775429852927038244124987432480941964403588980657381412507968703736052478542210029547090000252000929823655842874630254165131081547856735473571072466204606226369465690912364275130274860494404445625962597378307155033779953607050913316381326859843743866306487081125800620231435357036423413798540653032433644505878919948502627241702272341300446159172290420319891361262616161154613624153449445113010698156251387808391163407919041593136477401540648676974454824695743278742215349866960347052266358752969718209660317807198878668865973515875765352034611088307473254018777121727553903697079906071560588226475728386702930478444739100588747846755522871016106655721063611467880290952410609366870404959218705720669428015868733321539182517090553796294925298316611854988398589040981521038205321839403744271026045670400020849743984172860851196129435847467707811815980233933688191275117494851933005489841246799781523471180711939531387445614139292870030838983176336640811733958429803619369871844823736291867505181287901281373327234915621528137590528027063388452039802069019992346585370119688121277510125964513101685974379968422857682012969551631117979464760641723989469193415924289265322370219720864269132416548842353411266291465785455621880544367540102796544947213485126451468113544398472035750482426119563825634017291956919923916177509386419663099006331216340421582694050347342194895268033430444807980992926154984687800053845164756559261845572646905180405008237156022935855569236706141011321619768114488269303923994109120142061975307388299653019573072936764219633165943791180607816401214230809601263132761481744213238664811292736629979021511328825469353892304597798633191324346872717351146534137630174374066739161364385706009771700341667049434622665706989373875190603575588715996364102931405152198406568615384352448329031193809415982953661767373818206460509660288108214825690073770378508983160221488352475352352980126192409093116284816648789030351824168164743801871366185704585680038863078439476990275174498541741901707091890720091548494379184410257560180578660171199451549758893883963625448752834305122212410768481815145451799469689571114581559678753968891096075483528105479348991224451590305871527230342833777956685286010115976015819207096421758490158625213511770374552212074429573371791657632746005799215661500160571898384717481405462853320039151515540898824684656022811700681097451686532571289644328776842596544645270070332170795622824637768075722316620593970967965466363517989429916875987500455952978600223128384162690583398250762896285668011096843524460190930286873034921310188946756799069346674607370812492204982505921986638702545787259236322672006096396955404535895731850740635910377577343168370314686950258172733607346292665828764451966357052251451714674559978555753836329118920355483372840739544931706177629452973463218797633527152307938262477874419594845938828596564825176579464788141232841187803773478227271034886212889511046557863941445806096070855433586258044746527131173675257255839308374492742485734093415128903570770155936261968247449009324510188617859854453095672881871112381039557830541590987517595656747170528734049824824715890023362835516087121597216212833154417815480956180826980365681792256150080484507090614236500976305162725293357443447658068425957557916360251818521512149079050602480829795120933572698317234220755891429357155051094363045145344616839072419812669672361314642119071020088063715420844218830513008281651451592405120275043295064942259155257313787100884718020250608278887756793359464057442504269620314873902135149505992342241858785228306384443719427777661891079839763750449520604229172714796611332626542569469613953531152149095185393973671402613252780045108667068445264280608238257237448317591111118561490638694258324415057526899739652137577373068978386984826938396202151953911582447014358914271792122362590093223698784724852310192730810639207943477174489881547644154020040646032049920271437484719825857482257399531919550130350693792679528317249001684251086534859978318682026153330923926189301219312505178902750762797859458214079916319940064939722644098002566943727398365230115140949312424909429903951318872106701810822230652350239059530103802387876456699725725095682040714276886757205611191824623256715033031025824151214784231389892275070390609095966223463225767348175727242206991642994943522227354247599770156434871910659193354726999894131213662672171580889175064552380607844319817276170546257339543246134349814570691186050767313418083451644729269882763117399573891245224446445422108085565770717767358568496893968785526663804209868642363384298257475474218059592849810986565948127510313027081639642443278924300233081043301121113261077932452132438114748387952422484637591907819693065069674177178097219550417032661595388921405741698707048843745729802992031661964231354949571080642072432148925511164707246308825828500449161399674656589464821558386943447073818343331968572043105682292419840437520585647882185100405668269009067332600830077587897152684638384523065497019628657003278997432773051501997165849140253021093832601401512229246972830986886089987663179244080532427396295370083682027032178699065150369848209813222597124786357751045458393551965624480090349480433866735094635737642301698121023198777601750070702952176387021809828486499687808564427109415374180161017950859182243340421302535983512330837198670508953024763296449856043389839287418638461352663634626248072550304030198636933841327292806729383397618106240966452751577388776153762209634083206375061982402421609746235824070408387147771608378596589684889886800929903793544452803265334884942724389942778209235532766894947213234097878576142092414007395363623065583292622359031612841158606777885455422862304608861058919816451081306760702073871337195797234562322938621598993345546909177918460818969018624456280905149434858847289160159429243881504873600530695154713277537591162189572459743558857658987819075361210116539013697172949272260839667984792091389761850818271013972704263927672358179144240242265868893651175233173031103429821516127517618468839672796192330085536970793866230645982565421025470902076396510959177735931596918025348940554454549041145217403379434934400331887800017831308978508476285362786012600626177575228267443711866861183101991954370433731747734296027929390736232997272737607426252561795138694675349711724449364776457757454656552614382302205555642139012028747485743042656256264582952142418954603052497686170063837611978246322593539057383238567579812661469803158188180577165958015202441570280849028340192818795362982651155118877082079530087850992955267484116713186900041932875869312920632969213531425453070513346289696604280591902611046201481393837396353267619778207046246553736120997058552791013446881629860258380699942115897057615477718723479929928555905575183680101439437014344772664039752122811537120711577218371258672280130048496057665745352315126702021796700839051157073639198886077436796131090923752899541948926073540879384260603578236711926540730785653861661191430927864572668092779023378039459047350675297300694319420904098455383060800943781183106017509920320937206854343958338454713024058308578503747184318237992689620780552624489468794904455948976856803241276586509399874678274987471671667887399369685147387614704770829315298859056848530361180241432175424377075031982736292185900028043665963356487850787021611138691257004854683387163884305099040229840695468040312044904323845688760924638753901760842998230916662203110826297033809793323948795634375432485377984419884025730420360504668626632479357522636718496607048035611238460539589509376822733444056381022759942556898181086885780839274485928077204136527185530507595959940221851686140614106628345518555059625087307520992973970435226710822772339823639218635389005513389556910509922170016246844874079379440112978877760225500432644417114351498089204469196669367814750535156414734078893797121343095095845327871603849077406377202099700829450450609440836163933699339996877166068184341422331633133283229968709039191460142232817692740457373018197427350613027801718794818975794216113899575070624611983254615827951798864086935254918368544593453345072791442036242559031050462931341177010382441431459151795614961285735380872936404654910898049436252377887069186203886450764908700061003006630507529593776578810064021251990565815094870537978239365233870817598728175296239065361800664731688632648579747579413732082468804141935778202150037230067682797392513476889076756068596096565697290559504925511550884094581750376634130928653210260795617789388553302854003572009284641327505090027639981818019815214462517405491150494459158397040008450103248044531996252221170813807108079107619637138367092141629854230135605375420701554988155333830629056526466556703881961562027061426377352942371237852556220197278853135228399373350908915042576390512084030237790910517445261329093909034780847974039567858516622095908398515552861736424452979905141239746978600279291712190069518348874616452150005412426314576732012453099453724523718040079393803826319760768752858566699606760115097383354052016536802694127828780907161601160398187667099099106948641791410720338659576682890787349485369434477530220221075612907748475252592273822360691297612750710692351463964977450104008042587583062320877606897248049148389531913603290034059477330440501301052288307998936207010326731902801336655042269319677814750421990950372624166895739505426420495659303239270655735030137703353941413360640290126926162946555988766512350773528676585686569658286786483654113754187105715996179414949549162047578753796337591269525640078148971149965620974521153157764699214788872886487726136809913483569348118171609187251192620309844239079133938554213262577413070027225345455329409632921164932784453271662668402938290444049077925722232956023875187495200508508479084918273750361401931218517663716856688982190871890717925187971754326128359054299507144489419825309312139546495110777787963628967901711358946104829244146371088895676363864286829202985394259950734524447528671346215898481537350331254160512901050616654846768138408380048963635815167046456624621934009901475906966083220991738172486834472179021345548016897019025474572118915931548727189894269723960286488744528388643402621135671833932872091639048916907392758959620527879590958583669663938849539693863698063109693274752077910440163711670810020599699028083080953098612464504109092547742265394758257200759595887820263647614364134388959293468843371571125648474437489954018134249105903834199748739472728293684539348089841647440980812702487391926932437304453862886762368057339950687257193828990815248175000203436399035515265022092158948249123811773135429332021917481313995547847839094305843823323317050349821349848455913403320118222330800084707665004443611031861269815730134500706381025797230648122086384554706857811597345107871559047165613194718571275358038680726961228862049305064365129661741492010615520910655281953080438138277650606552604813027085162898861006067572915117960372091004913491379682776260400417611661225336064742467536752330843367584287641056859745423040739208592889770302062164900248338552270906678236074588202460332572441199291431690591781914349441635761522756464488226371998232392918107230461357527306826863751963906726216286262019396920927920366776749211636916060945997945760765060247735223043252160978608773984015306080072145979289811124888465785521487729173266671970551266307646871069369211210171958868811039050730750388008964160559693825010702670123798614681414302467348111746944868983160209598318251480782594861424185761793816369758939100856337486564369165025259258267951294445192955536211956991289726839719320425056093292592969151617246505008908304647835920286796222557484319589917850490174275579541275633130046190521985311193985187895397013539248235611356511189666190389362829094435314921544783019514262711808622040644709256515571430384492770057751844875012466195582072981176308339765293699806287333040667139379325907470298492678881956683547478657764290808458337367438234285065951605384733732846230975519399597859956034272895556715161407802165587622080115596345504086527664172193767918935033761446061298726538377133597142147283413619323518460440146984903885052924870323606553566399487986824466959954886782074576572481973099292013395483015561619106144166891089818386223171095503764527144559258864798802301619761924136002048280434171002649585084860982585923070544812595559488282923371852471842521978490630628187538895191695248705633230268832038591094849518141950358820204547666230210787756435857145504001700771321059039654464809258447673104167965007315527370543656548986319666308082676760289967420799495305917023813800348544708160435816079638735527474350753865878697789730976596590582168174527049536716444202462797346961949087804637419778941837064392522312046059730257647594636627114100869225785869078160698674337145135683161798319107963632232131072747110313839379426033265545195839742025108823177004202850059324856815643106299926552320675028373240422178824903402675146610528218236436823828309709814657930735123570973182791569248990123268339953455488412635081458888682693717334385799478403883424362950659158346589182554529920033725499465301706818649030328265457509083660563879362539736873305642253418308469716832825097397866718166585617050303414193995309651624086406618554097946137452248419088144650653622534197736144343194604974648183411182376487180779527684681099535749292845253046941428852851568810755654153931869473169572403168513228872894311363798998132555148288561837193275300998970222660937038348643257661001151666879331310891081202754511091463737100218109492929304782250801725779830548464924337795028225704541407720114763339094690103847117702678705215541692260253822496614236146997923182882781309855532946377555122745560458482901120325696577297806281380607919851415915151405695674670490631245349910517319893259259166698954109545144551706973089614266167706111954560059442225245796361525586852874281190376835784912483514682580345364209868138501396420722374374027539104313220145301662303516491206443611052177211064271326458767993526545069066911434063178094293738839770595289021292121547114211797742733574757651539128518124011556020994138400315763021365820907021898525447094410427698160535914672232681021420878565038870828515949607258885982459317594628780090201537853020105736476008319364071910311098120154504128702927968237634868529304379921601851222481487794950619566533218938635231428154749534717268384326681954939901547247660062171813171086903967070045797070421457312508672730622355055662822659190246760982513527918401820871490130568250085580845952757580432988487315750550889359831765478820376428633453734960295765124052070037534636533074106011363262118637810972502292199980178667161978895981333043122665676987724715288970037172088662198045951375762553188982135963968331047080987005349666188419809504065507707930317074237706313971158357459030043462235145159496842155341002125449474506583328902601061991441967729449196757143946910499716418000987099444252945764154696091371326215057954569606593975004988073950053084826448212475148529085982741311661950930297569588635461697906736635317364754877380718447977654447952104034097174803578428351472412946126904030129855964428968426102730937847239593375983660828683422054773011090232413234870503095336769077858006404015910448437744259152689348263415041924486704073619766868832979463552726410056166300563406912399373002554592852256626078690779180957552722401235567284498415797579162174530712832261515477908500042471960512811696264631093855683016028655544673038338331354690100744562685954449926073387042401202617287716574421501192260702544548154532994689208169352913642473148748371463824687042201505394266671681031164309644518997782226915928018895888923254588302129556646462124172569481810166224899513563070797958533734663449306156522077036212783469936298031098974410668003296107666076698661998416301810734262757138132272275883201052386416315903411788411729033030720260800064739005785559444280436968700760010578619986997577599252412344307807074122712283015104013996280815552499709038196811602785116656204625027827606514999963866956354049918325325815212663508057495682350564688100536269332975324500997897500686170978137369362088591862779723281888668287666274716082248129139148223274489328554377386327722239259020668583031123995104859638938539906141943552408005238593946756956757783963439977227787840037287887490434862396792933408260715231103656394973868164714758714416954830086976064622734759458192426415662569842047997770920987458225658547768226781581872016056936464948638578283617737926407959076825502111822371902537072205958339093640748657787703742473491928978050094182308371279275372807368496669351558072750351929814209743418355374622982851303227130731210227911729826624338008518057791375628745636653934602341503265294349334638003197479784229926825440188460256370068121351974146932956679507050686217818744652272181979291881650658195591150938895875224341393384050108771285311301192200130055365524091606965695381695745017594140800642131061001439371029933973095925288999545441231405018603379792205195238428928523518933650101402769824550472130257685617436452929623620014569101299005314410184688840126725261070926961271976815963131562123799423614168655746543169004030126252139281228830730360193120654024416396884017726524195726081561790618454044261726894259946056910050991239302689990916412833564507333124913874608410395158630793071558481608058599101984872127477667080336573368551501361025797502406317203056019131592569777432628485913271496906140533836467036090104618318212080768580828275477708788394488265114931052520121935944690789072722681495112008871574545105632629767546408737600644538124359156265187546778024308667188539282197943465512863589281868104945884494151741897648728146393494279559450863143810427067736753815586837968470485543080096959523054700944251782205308930479210009577210931907621594329199757602557285864468942020373736402293547532977139587344872926317757983682011874921322171487648388219924784419329520853443446584378500271261875744905125305156092732240231868905428684752668379241648469841769785281003283155854085921349224282956276451620957609583908329020567587457593576754151801122056786462977425695125445417724546185446941740758795182689180237166515867585772808479069195124906492891227157475742604339002291743368471508695717692298914785779280191549664725148619302937955629860046576662629152637429807482037327253411686064707301379311749844780023865718766307135865374004095882709052921674992924150068678013893051129333262877670517552226354050103306070779826803308269599776528603275381164129684003906481737208577111516459912199169985927823385852848011103408441972833814232827017250422242774640456663016434597066950832589053546002163754284873078649627473753711365875125204685600547194009926746250374839784569902668786151587037422577182596776307125291828646400452774713591147195124341949303676151749642543448952404820425129748647983085821184459035213698783466833030687667633607845477183998276531732430711909380050491986803734633657310573294467371658058573421942926781020726539762571818432064380822490620013332149782515429468026219981864895169209030029335590563026448331572694382082906680856441467696617888735094447219236968828602362376720529840163569231207665775685158551075770145483018502692440563749826869916257881427974689623493725470798556538689108193718850111669899886558829815089703160124584440102126471127878843375286708554595460152266626045514272910016492063313007160325632707368745563308516491585444101518416032438922330897786810652534126992775609294703915099788504100200777176575906934968411257250838903333111862576326574587697933684312251576389751468864841518029861743837715411031111612261741985709952931061014485699348303453710503940003999350383175814190891743304784005074131156681061478580647646554134643006584799870512383168706559203389918301941287464618816050752150976033625541537946218539397619390858177221193111352772791434703995780016446408667682708222546236720221282825366759321567803680229369358764579716232091712390119077274276028238066259536855003291092962012493573945841886296577701374935272744635360935373991718931453677748210453579218706892530684830561908856885412889369128244012697788121347092710255690899061492893699522661260113798794867512560993837373979695182790525271828159356747333980960575126803176153107902533765311503994924075963367856330055102969177118658683424547027845193678633901604036131697203412237981879389526500408056327724805260365060735910664880786650158013280816374090336287402287968601673036751135953133299962617857487042317870018017850830022716281523658160560248938875620128004423124708965635102550901595496107180781025205568054379605847823622853595791008427201520288417758017336235645286312022494794118302727411818990732932796598926898529185754647838118238101724954723282320778215977931251622528754282206775451703959803639753619258862117001242777233255200943719579136828781516755245652610086425269847980755718700411201302963056896566798178967918816276145612834827726046849342717931927287042505964555545850890373683690476654502045042461070554714201187363759047213734242054884495116962169070229309436778545737392730141314673232845253963426545223887080017854344263417861931699044190639959923404801919988597621247381852022954878154909715131634160080542443700815265917597616170586221939053339970314642114915481853455503351097638090123964826768914772797165233974947116335418889664970538960783734722420799807635374156029384445910357059596165258406769758422051601093422350540071294784090231774236420564707365866110869474598391156431744966408434864783242407998229420124890818387847278190912337283782646269056695872264022265526761280277104622517928261365123101102291441490328711160321250396294745764178711934452301224609653218411599741059655970044717050881698348948940594753899363881947029298582295338911404262831270473131169998078563379398091031524256193449207368890764995680698434898112752415583517660763665698234617748115091884959998699491667307775799403939602203170688483381601835469186886539386012026332954200829486422984967713557211922493577814679714492618431045468423185730888181523061954660145485094090293412209360460707477115867725475095977433729532315415631911188942962995534407314668290983528178247606404443410249197505521105208926058875854236215400783899690487081196657841957547955365466240786999922089782014866467471808856938981834486508857561630623164922198654069427714582826515428610033345258026946432397739017499874925543751369300250745348758563202770463047718026250819756617677868953921689583118214211834784836823534821323755802288980310286087863705593785956970686478928586495295706217039821995949763927179898849346705162517103608642687423185981265059441859027864026308951308123997951223824922496549713734940818414667601927876854053430290382461890794049624313538215610053258283572285157868032918140993218438744908519545654780082607717235995544603991073638948814685715577254201091902326826700570928115955725075988174136924460512597377482433362734959029021204480277888456587505888829980818306198574106859235140189971094674838680669176549550343721307443649261857477854039068551562847821618020641510736172377244276176919152158708613561438279947335228488888712653556159749905595281517752691274645720667096059174249001670877568506883486146851770497764751025716515397725319405865876216187040543070971899334524532106048363921773785696501198411496045066378328994580988264996655816870847072824565247233997126464224657935279730545056444003529007541696924901041956021652422526424806108808787230155803499767649474683972804039805239758946000345346444268952215035675271243386935610709316804337942788890009155129439715415171051342294190300817327243712350998583265203602290985186635500638792269757381746570137092120753233457875561764246449176855209298520190089509721959416922304947593165310385308200856189831895139045414302960383358776155213375228405677156435446863460668233493957214045052979557209841086034851497787163551920109252706480502898036830328271098362884002014409546687184077133077662087314338594608205615475610321051499884871405500967512207985830643394160176951191873748740097718502033729794128905827726784696212918027565619156262384512332738005537815755306838346163077892228359275699646679532837447244727665336043012468661658223120601976364448062141779571001849860551503445857818332117338431460313477501909006035233207100254196636628784629739060145303557033577957688514149509639002780262458512536076024471349891786228543892109646829847242524011099148767944068900612559395558257736583520651462706175159493605131112495221350443133631041561471537421691194099726198345890835664301572398127051371262393639901556331313207817893146829593461352573554716249930887167112072919561852433424450012176803120955938713897287461118193171260262192087276790976009729897310007171687088004225632351446062002889002661176967135689423596589102442922497175352947236552679137534210970817283650203788816337456988645858682369250920330201981936504151570878723101496114659597016983538576934637983242978382034943028944949896847595403703115213516028515030118935342564022140813262085389925640957803802000889768040648506520385722243542867631071154963072787867473205835182579380736464882714932289437283592521610972550399502751998597994674578283417293491972304404142234058578682832969991726033945236385433660455988944420691607534683934401558142896026047996756008219865209131933360755408560945840187067777384386084018003919755811716694069621152681819831917520685623953172509011536863509593328736463677424834118050000337173940311392218013864953755433722356823216480324934775248470331013751718421127502773267683961614633354074660318582950994574981537617651718818969007176344001093448197878409869365621477768314746452750404146392958955045268469332052294466225783699654099428003180995413264763705929861569181089362059073571107689001913928216258681709828684496826536644934818817321095854583542693214872814197321788937978707173261955813745340875112505568523740553229683552632402162354991309005185086983609435235969586440170430000781942416270884260942166447532726202414427081963818989950973925051646959044131042987992402703865420972446266977491641743561120908598298957348225652126713223551469896157594734008204467560602068927134499398039923800071952785911946777808546953147394190652487744036634103772600998308115680266142757856996061140692705384169947339370456923155239406201426197534393568822948967280676762979022900206059035536269643711220525465051657941220891074723627077577833936253849067318823584849291023571736468983613513643189907696741001329630136095621248362802235378364661887080449743328861595117984775510556633168046075717191943668326309288278146099868407916764658952054146895207435782248404718336014458123979673160329030510174591558800522750373991985390487596782508694432206635770534901921882984684036799198398160480187626088877118076352219128363031261652614219907009681837583472769600919010870260685142876932668971015370625188562410384253516496637437109953980591087545362395137874527165150106889391699321427018594229973187355712469529075282003038375243833198578830599467579031430202370536671166260260389509859968619895868136501634273740906673880430999035063436191462524833835774902084532400438203512206435288515649932499773652791895122031000481929696234789275971153244814591889341866001439763298497688967201324536040158955419962321602338484911225539096879118357531555992713521832594225818849529197383696661070776912191237417594513306783285325341623020921349625623735526408864050906586567113370336912103345574317937568367301761346953177353592073169071741449174460084217807809380626974913370971813907079417919735230656898452327054070468428036474580796404977075412040370105674762260340045716128876120763567466047326574519867162245194424006337855723412392410975729390801995493160929874670792018613358777545384945006989226933627967020615196992815300190767880193182844159966968228181170167806302957509441201970933296524475980706487257655449998761601285494418861725546922027851160354880641401540761016199716355286355498450475421908608679453598617350030618582722834766770237571238604847139740037614394094481255016653991748038192461814428816036710712475804672348993813942614415074122062522175850931186716427453995487984969755671839032233122325931081495903475244910828512001943497418675678765854854977955231036605093069934658503257079352800084313274928915909926301240839693924887228488089550743261484328695471961453273937828507469043574282719067339925873694776693160213196601901652638106818710465024637561537350108872805661848342395028168254062227769464418102072063034599509950200171968986166292144041993994109021748183039081467804042540595596482137936341074210571475350205400708546280231092835070021245186686804768601548124272226454719523896117938698872898746303365007524863287260669942545986604910314068760433980125881728831574272998291240102885305461197606918151740255786789085397577485990867602247510770009858786633747326163827999030013205176077433551934550510670956826240120276435766015624474611434058903482182634674030709441532648704047761125536251691791417519615643538625379410416629589203940477555668801442554712820736034976765419563112543007227072920577231868473907953449980132756973042117596723409888281853882636882990368509746826277827599054743095748136682520556963680017720996812699885736223910627088376977750657929812235961987676431460913103589519374513993201373074406058356617511393207689040626754067902416472009061300542046584302510875994551921105639255193282348271114357893476395389958108252461487274841677772962008990650787597717271527417760330884898450733016042088251399824633090806431049308285981775055110361966341511057522044399384686105346881043432046450046304324564090539433535672442763614140397523341852574855477492412957775567405578438003298424835516495444616482676677562193909379153070418795441912094243284281833015710903027468406905291614494174145143679316593856714510665336756027111778042986448238967347717014896161192721528970123356234972732302229207897562727895996650396160929153794107704751482744761307626595884024737619822300002003828362551698373315365109975331786267666304071567625977222008917739546684261827423088930987683806177487312136849821633880876313750965635573010043896257514495863449354256998031803044565620687984070490046318496933782397355557634879428834453131783622118332210359629766801639461810846690619369768400538550570817314304042609675417259157279201339902815135089492184616332688347435035749500445926311449263650696968529134124402966733207960328470803732846901776504900668836401578172124304412695914541883892012285509725378246969507818141153815835080048987648116616226200808499025099526207611118485193793454010920055193575497125782646872884023894276183069349189864284518584186139429979850239046914256355903174728880357840751783120250464000538617283940434863781589816536070212950125149442678856907919068132787205574740739895302128741906648043312425432113942972430920158126916147728031656881881528014896655374444420502784462757004306508202794791888098402138557207443894464391644308918737199880236005001814716354712254951359299835384069868493586276217515652703373319172016068038538746297680331601414242129196013149857151546202821473532851806255138743621173284205145629759411676126871971108841833594545948461591144961791904808293816995965738623102059560995884287430852995596291469328988619349270998654448361538161222952880247898834062413332743461352035785148628838334228463766906469330731846539303037998616740169019932421309884130693382504887389116989340735039146109144006882303375322929078294089704377927111132443242910170296064317956814998386040881431087164196017493317880502767588594687158841299221541016800373078052787405825208944556917075820824615103768562295282404825071577107125158844427052782334889866397776785694801690521290566230718982074780120363963074106604571636312495892063945591061817305958526623929536574971357653010416721271269910330274950426015562283478478093233828889562737562186071076183187898248617242681535926843294135720101465667827981678273231273172599405769240904763546124392524187763839539308472125310722611484428341456086307258682184388401553179688195725404705047113211485123228636970707345006556492963130117260954165275235960953665345648847811334618359966827716015803332740874516786211861841773842636052296848949371534770160578777070852539901424031344826086598737304351315249936672890703878610439068018613093909800842222470112818907715025096659237065452531146069108221870347331837532774491446822730120419672480217630637199684057895222856085705817882602328566957667385881618739074297599165436453481761621156464033954581878794419063458443234199726282786083384400062121170234460851652051460240221847787075001007809180291719179837239956506330341401860267659126982547642311979420417242874970622332828918941648205662736013164224527713776299703333497824605030266684512783472125453127838239329295430436225387502959846111254952473887455661655815002199726395111047167966070753510070856806858860491698676760453898377060004278516101988260017057068245731121965525322799192707421566503611468317615187952779930140101190116082395500118835770843795792557267808692727578658645641741239828213929066353514347265886401866826275152798791294927472693599979129095792781942111033155294536231932847656416895424608375286858470374975432676688091301240525532400152449588223116598199782178415316597703707679763416402583923090876266366320198163209578114743281040762672518420103207726768670393972468965871984931674845644001883595596443862785677924449688186361313411077596621295220800883968325364807741833801423258681762019534422527643111314434648693241634487862376723254503386622301885552087980263217622355050593431676069711032633617458449533149260247589057443242584884808526991064301469128057114525221118863545243868103041110034376434488774581688893052299998634751364390429377643558271688264450061527589484925396481871570192285657285723855880426218860943841059901192829658709521819768429475951730640738606753381855901046861608436840177384596012096507181420496013038912475387114985392537676410535757020595006229631795446184992319285825807777970638578851444941478943561235590218552239643079427134538885535777368455497921730305680657819141896615661426473198389127425860876814792576262990421573836237856603562357569670651509201771175295165173973935859053372077853952123195431581314126368641180090196321296196993340431122150407389510372611810852305806999396591488849544615210724771840369189595443737054740754005919313371912469720972948740343951742002288400611793880353817803829921792883163235606791383424386996803378447725194217283280172767094183525659560766438715537403087599336472209190260864236096362702753792026975709882097346586590911003791603527788017827899793032381480064759148842241873241361676420782298414525002055574286501639329548451016216041939528933350452058694959672278562431710498547334679443043604023221434086985695017057333383168670236228361833551784986997258870427193860381430995602722580074085993808159366806210402437540969905823803393248624853400639458100776190474762585086613845909998565209972977924737416675434343328930288491985559159848458248872383056577753458988712638289156737032327297020338892840311463517991407112197140828128984655773421788212098171468800184094850248048156709687127538065520375916384391596135253728127590926044382614646054912436000086508086231565941829879424575035948502061444889757537669370701566442222404908380713190935100124113631590810346723190101076510834067613387756302847881066109125640322057469248132196991065189450639546914147520243660470792466352876905047717096840498590687049600120049592737792778876838416765293154477689567740305231463817011784074295942974125894422077862795778819233348867197085835647045962237464384650346167484504040695625212241500920408802931948448194792448008837184203910251229882136577717449099948201022214950107942140331932430197380220899382677268955215289808677135135752520455404353502766673939111276258806494512432263201110913229351325005114734894346756670946783329238861307269949373659352016245394022639701735594003153640505364953804556085945674124143710258375575715781816105617238532971030723335555753216009867703729534362567072795783005577694102259820871397303134888570656475433676826921965453546781943258688660116243815336806731911450206882860437433290729398275220424160320579247787172565208484667930947733645910469538234310193341955651550272056664282926795756855893423542992122648712427394064866239035742581786007757237614694720705534736346275888238441588036274358486719553516526947502243723003667281942841432233774387910789272225073019373578212657512690142467864124313951936112338232627467408689103240714782872198622430280464777011105388018307024236091687979516775416279869031879721700325283119463619051178203454793939400330617972954365211779853794364353142852037268924336533248085897092182143716133522195468994295484577637703824658265030756150801163208730477117687583528922756140003051469744444994087545547956997348872538411216376088556325835192589524365609504188566430284447195186036936197063868700280072316859286064229200136954644044600819766050314382501639134236071065924156224130994327935312285241722708032896069934293297879498927259045438237972528820272647716890071538406132290137745399595959365018820554234814041236705204644223026064239588157850632879289210424785547450619526299682315200912379984218808451253536107088996181643494273790101278524941309431753616584707676770240456332478975286909257873104806217285848599236737582437405959248483799954867868297661462653662412241926261101171519438884439163696096615030388028213352762166909555755996799338306603709951635112655169403954651228259277552138445863865356208813060638673905788429188374218769384298030599694304417793646097684269763095995482344769251482845477562566899672536033888187153111192038615484723330525598480262127231873595386523612472465957098352633512240070015654779018827125309208360887632882918716990521451457135303212341740033910182059721805162264666592124599886157156599279080945684416151889035516123773064122374940904596701705354555026412307930534879399456318681019935295311684297340522743802318842481854026588785553554458533550731151325821969762618848145839158707898632380093636527703962137323616584130012045430340544250907680793564216736631630281230485979777405450059916098460746222478570413457271451230352904536453846278476392669963302448984809792241679711103377488543482386379431837375484015034222540791547202979757339380618604207292621632031641828052025590388617432742675872739683046413941502617033681072661000749213403676719947338230888978926077480314702522975921127929272230157864105217504368426825154495755297778473021742387305342194963668947365943824778360608088112665470694984340567515752018561566887212011394910890474422498608306568156139585762652416522272164744890175419953753048860867246343061153505493047620804875316479378582202218948446735441769225487804275834256617378227009931460474062046105101047116916386808002213406018969203237139763406220168272342735371356864502712142867695865908916207658421861685315404445255398692602868768476157415966199073616324181723513590571264492182602064786766094077969570854334612150497825463138771899044220759567385410907091484782364824645784179137708341186429140707246354884706024530526193324243490550039209889703395460045925220110336692749238414729806282749444013735566872447613566743749457329584654435348405403472205897231487358413985832580162234218743987173964638443031793807656809485624578729429565498652050626889690510317024766131462876468621145725242505933727477155456037631993032545113020193408978324066247072283951176543159006528501208802684077836593543887051418737615417757902661802416298858650255713130133666279794151579493456231537914016260253183448855625979381614280559593856650468207836353751516895335630283713274180614506106515252691962475751731464625302902362567202365257516112897343804438437898269647045868949432293947539754470644504294413330085594233334927668276199927061970785606055209798647299864912394325438283835347735450618232710454780560337740618944494222777066834746312196195802386410609944040231933034719372470205297157335335784322996266833416279069762545479270107811547707797251854127046525990271032973386001070323688505643412633575707899525519352407966920451057960878424127378521051430239524670508197417436986740791714821122059926475190220267788830120139019213180770814083825313408214088889609731136683455563690178627320581982393340745495671253727846229112674220004941307070628164901286452059045537012514041792039611193737988844292227922454222529235279962546087769664718476301766341497305119416911279805221579528718291750471786143224539759467767518360206028781304292228878223813475310881680130942727915526468276523415744427135137353876288318658386656239743858023463369357151071590295584816772476236991410526612714586500678541320718054591331165365014525169086586131358409821348896143805233685359482213473853385954205904587231601098856512065126177420924537875261847819926705866680293359631043845445912145975725346318881687534761299987988458145202533258324114410477718394801521533563450383557576068869495098196803696468582431377756568422068145751635942342360612827450596982120665585030698305811083026547230314062079521559463968396056390418677539724342223631631018042530444181101690416210351716990615454647152313431869997314925276697095624293845840746931842549578132598007073573907598009567732699258400807016587902885050916914094647149636177351558782023787488880993629390364207497856730898884759232474468556610503459433072619943149942008530402059686317034953682768632171507551098906250257685082139547188230736093125677087340367163713058266806744995204579247701308203262681076464754138208474416530660388454359793702846541483276825830270510920903502859972636195569835593751478353636987357857376944836118632207619902563651875779885814934000959429985126941564032985969615034218810561247853802838320144464269573368112708938045557327949360264699363574006030349706348688873637046843963646857170240333485223870068737173221479508105563070922529340364493956779635132519867752319985071364994673201953878253642549895996289785154014852845110619705427105563329335741595172579644204308728255821286120864177948057613488587457897876817780986852720186331035840125560295162025631605655537429868419848160377149660361792534541374143742014540306173708014053059209006627305848667934203939208148384058535513473272106465577916541758083514843732137607654291520678414599117776891253932320032695093935629469769197580216998564971342730242404777410308682341911775363930432638903361804572385941755042730675263851811702536966920521692383894932237087254956061062109933152208385864240318093079584467423800801268688713756157546758280644624252951853511393710397016422359208005547966682092132513720381271332874154253299196874830275150340146970374978919517563574223024186788667449960089806366821263238762723295607642676416800270358500352531564605006868002787895402110509982608877992723410440075347030842457022150548843752297788174201618002822969226337216705673447052245104016132337989174763397480574446537313037626812727150579257093595304672040256004003060069108841547808932427383210218537949585789046301312355961692389461202923195229545875691115388627775490814316867307149410015123427645476836042105074016088727881995740593667388626884874200360884839886795515933879822887974433941685681051566966807281970321745141904193410815981692899206265532970519724873095492762360839557430497365037689843396655672266647741105684924612467644395786769221683034707313719423097225908677054503877528317330007912277635583804633241909830545428907284144080036810970692707007645222242678949526155874141851259641518572401020217352630325047082060949279623334394785985272646396621348274502756867766128517134290035652053594406701663241881603576433949666148204943246223157125143151786459583740787935019964092170556766695708802126664500054004960222102319907988974575247784013574198725176106530664186208287996841368003991183786784629214393072688450737052453276773534320006530688176696178056705933631184460319461137011885697506327859935745140268317704096352539977054130921730750435418876729221541205789775744121903474399744892357039201671872035673170795800115310621393221934646593697632983210327510779804791860085134123803317335743013680192482544579836273099164745059227572480258592732668205201176862227494398396863167101729523757448307669421739215237425093140556247509996576891239074029744060633018292324622077283241821933030123766846065158901825651848627002360517245520426799640664278526392509343336776056605245718006058707682372231325853556811897559543088189760032014187233688077236514634344522246981229438962071993620874781792599473992094940850702377148662758705970185190406239408141050745012758135446926389974587390832867364020630035187079974333056820866816966463606515959452975818361423874670041591337927030834718089216270479955750825483578060712364215494705993250413551782879811085890203720009846546998423913658149742154778255810040705080785172839731087264587641975247067397332039334518940816747690353718200664379035100005070625376617562956532805159740305596410635915540062121039643115503511043624091744076299919639655507289323879997970752434925273159159943203602592955798544401410947121975555371273410010333959014886849199108229483022214444929197238043250002606465166799947044797556627582393915363911305637308023820580923167410580687204937098940084230794662673553451761730119090764878970637458528838317074681732799233022404693300014266490044914368871918437613048550918687068387320385138702666618238821314385503020251781490580935701393591943411713042884534163501098716559062006694330478657077518394376678472283214897884954682507785072197363554985880236642452900672221815763781518051801373119236181831533929210698533283488743848008148550854651174357828748471186165569500396750738486423879635904312503098388112833574167305201307140436069024454752228145043556221210461348058967854440848843065873826225742342272101114029718452079378076115272708064274926446314950117447791561796050642707354987271158529228124923027139769320823940198267555571055369116943463263056687141086237382216012178155111508406318186077318495767942817182184002443568471613187208526624307126848045725342529847553409561012155318156351500461854898322206746492520602762556286962017778125380107520730803238381753753552999553985613625937086513810716769438394399194435154106853575568062205023511737032616547077758858004472512588873577652262051216681000560984307035193027694052852750419046420496110511407130822701702830330552851534189530491971745733071023085635809169289913783960530949510369183986804845838652786931926471687659033274424573845621988808626039721659343039719361514183026221607482729094685060249808355657446365995035073499300796746265806739714859628856960577681846488104263591144803071824241379960008797541266806953373760959343217329773335843201812578955486817797437681665170658298536747713151106330528347477322787629076329852142805656080711321029235979231954003873144629914681709723797062598443563088349883982294457658610262457300125634363670182466477801112582767091416950075200038318738112530670114645840664723611371977503885783341473970735052512414149871130483794364633503532755431096491019511162388231496649390704733524708406471101724895498147471983668794405415918163538141935062359425200644678526135839537416114011829421506753470911192283926508825739340222689447552825652076286116260675987289406455502797119201462525976264430410138162319894461202266169396367888020662425629185375431418973544249953978496474937780747563549691272428001256028887317228508897736483439042606743087583519666324248998786010737439972485695492154929642586600878644371332295151545666801345116387678633464592123451751616440914357479568364401209229863638746530200186974955176557669957229150256545698077305559996070739157844931192664959578569715596067069648631963961188113793842012567099145182852116387257935359971392903404897886826965854351809619608086493604796301248620926936564078223735639168669040641246837690644481088920462399507129198940609265609545550202400172054128230344458912350425252151556240418364682600696493583339330426880850545250520321147172507266387202261949804069890252191917533272008275136415485703060343267304690024687798292631494994602644977109050226685622638796108841316069737846860138284755047205987868271222201061296643080098997772087048862152882095871000965454942810375979951289104801169495439591150967924972277508517594786311167792023392287996687526530326516521114343597769540146177747419291383617373369868757620803275789890266367973804233953800320600679841165458554090944785548152877366992232536452054090354511708891354171826431127543172098725416035530581171458383625985910895579954039191952833759292281679472747538865451125868143440967897224798214395500306666935369743160999678223277412458024750659312396035671827829322918372759920766338374001806523948088467244765568498622084213824841819912449001251702889823071480572240890857975482398301160400219626249188947132578632482203606161721832050448440787582836999305623455038099514392845633823896381905762502818372824025593381275750005949727950404479580512506792247201600075112257779315830171952432894201868699324830278821278004165763802486713657291853574355605818974918086279685517153089216432137280256855615699415991774815824373798683845601679614712210519540082597742495968992096404472736056606673556189104583044886827380366084975800563824942472019374444254327179752671040355340429472282755522756767614668686574607298201078391872648832030740198989939483047799489320377194070523344448233478303944427505882136889292227664051588130084160433024720794198985198335279973728534576234843865370006146470030783138973963995486733626512803324802737488580095638119253462612413410938247977746520069173866116237277837949745775999087137010045971759938685486136018155603037710776518918851528319189383151846342649155893407243834733808043662662739007548225412639457743966855583548492590928205045248385350535673026947303308553834467560982563563979353481900773902639882116308507096231833091522246407908441641302510809045646586290338269969087712218869109976725309069599964741619735679312202296565233257545931465763862420939053427204290247313256578625730665133349113355869609194695004334814232954742710009828198371244580231985359806768040740328696060026984129707715720819830965197012002251113836271503922850759348243430213039529100097248402485421418885389184979854904730333102563138317968287018325131783962926070861470683349335221365662721196673551559736839736551536332077675173521903959889667614150498642074045565821820245981705946632196970467402284934979062884417594536468493022274442224078826815450824191887131420968826897742233948603408203977756888154039680092244649497669443381117168574806626921121725838094143185282129607654871673546448379300598725350357483708071195047345506840082989916617329231408933028981027927771419945806101334260408349992918458640995108346147363798471782044360408507407143152242454845567185812880188917819597979163703996132151137722207438451965625108375112407081203950054110688315659786250772426946346522914257192212070899459956300137916232197523745178768303057395122345701937311145567124548196934784958764298342174715733053221319277029715480423335775107798083117831018152708961664121252094262943251730588326275947268130266928213679826998967826231787080187428847705899623350407743790756929238626380217843315567532334636351582626072054081271670972700531761059216612886254671280390243021069734586112705699237427131076402442865119433015481815568266196568705033708587266895947817226293497605743644716883377495890293544583948793678387282712334117181560224078954197406671531143292101196969517903460235452729300815805162796909934190399657148515314505767712684525368693101575961018551106106306140432074926437873748651669618728868357137223397865315926975359463434609471906469749244174623736150911791977839537351772489848423071986114569523107379713451142321736353055611318453343550679681187262840936526250488956249469765008598743673722290464906308106833068870845425993826786195230266115781142146897162762950524059197625159029130832264306924802322227032474264112368107687105885917486651507507328714674122628233802618802313194668286963495143244183607909222881133722739122602997710303060179390077945156126469093824982668838184278733640556929203757101138905043395020182125562998411156878023189283554406876309396139336928754265880263718947103167773668940916550190730195024213163726739239742995612265441916532480650740111758707223323418427804442398465644336994934307135089636281739349986823624644197314234264772118980496534485403552842693802557912787666007967893471337432603453697412444922692393411268965348897131200976421006015891425009608255481734831004489405291320842629513196799262558308328999650844569848880208629956277274404357664241009430356892118262013972678771225458921814886021983611647728071309487050233645910629114301629926964334554625162975587345586520350857148054595718807039035704155052346286951544441634176752586772040562272573244160936292897656607950290472364250232523311203073412561141526932345213979961874900519323813572086680489700571894688166889315780492080080449187928774755255045666938311276865777170085465862675554008165537551506686866130430309351959078604195111068546304552879244360233790658802353383570005264319812253159529124156000012319914846703849217970292511494816024950184159599105759777775916181125210608733762342282273755604809612660204189487786939299992794678117147851321621066774222739073942301422063019956390953087985130593622680979753639795433315407534083663297215506321260086192047068492111037389802128887968292510764235268625940364848857095120239248460578927384968067038022560853118495261475327750573971358465382865587627639701940808768111846681271441372302766385736861582230602113569885486632511365973875754360407864321075008437209120202409342965547919451602959482707156368423171441378469908708223942722677856629535962750114982300174970019842891453088888999599461736081390512968059513674337289623645311569099892385365736563786625809499464679384103526810273098741197071763451723084912050024211024196409100599226332204838662737651700634708880480877858976917820934296812556348104974746978160844146076669127663014234696862031256840966964482499098165706218821763153295001197494912979651715313920172448129715945547113353462108314480236853451805274317065086582479652934803232748038900344796307987067034789239405258400177835111987340478123682719524499069137179527032423900769264225250890930950602523418507762475585842904160842824612978111861848813211701331471449733147281091571614674313264904366060872650253060394419295662569311168833885015023688349054953769045301140548680118632659228584113678133486967869589186924748381749144551671297976934959359460734326120890491621546598741700097389706241582597925015491340067821229526249536980555468133858883615931359593659177028209615661887761290027047601121334617084619127594241187369377053205202456058645207470501052871369088459594866688441150470444943328864005644337372139701050408086548261105490465613828271425406603703360455486849136080966293289115657123197254799245318563666949594788253214847861767537797378897318282294232789699303056858383733924277646420978369333179133149656180105378805055147118731823255942550667680131242072987301925718581470469219389195294445689967349032044460554082325762726727288242780289127626095737842372654158922799547305178630903589898922383592299290775966948956839083473273224707915162358046971942699548258792013541244193876641451141453257620594878945301043990963217318369059191675790312706488982055814677094721629203157881874959293151396497608911645760997038689933456014484492950482542845219101822572993554515998037197300847810927242529230994032939439525720226117046382416206504520084831217796936041371542611931188955541642619218063694599670006775252686239252150042220103219597163445119782240143654073735607054376524872873583108184848873580086297179059014498533570314093595621638537541295038385022803245240099838869919195144955373611322127895378960848117091391564243930333421620550739177494806807718665529408066730564258069162208448611797164659897595398146492708275167160572628955238438907025762273121462561857230964929850078182975594216202342115913224254807561747921455677392803286685650668620053654611336538805422747122681994510313019123667648594771507013904367255839564939430960215817690784113253731475371532614056769964102617184345144302151255305029257316191967952327964733016200803918981929078537029412761036405579299437476816006806685662783120571662719746576590125739683517875492331682686594638970832793317532126307655071261056400763486493038098815195264973994650650118194101218992905338533907275853230211059731571404727655250442386793915624291379784828850095129728385361866728506734260256130778364898017889481740487455734106104840317582795050019780079030305510386495900352126288369592290576120621896341406474833978571742285924503303818258525717561365149238477465422264939630926473315787677788650076324175532742294163411142770926663265005253125216867596780095520732526125762729266764877521791678152341457161709358774354005356201302325561780120376218159073862885252422278986252909378668431285184939092499849175928730415680929036980858296623513605561555572342289297249896967908144063849886733409668307284840322789089275637201107641189176960992478846049894789568570439366377242355134775588885717262691772751126312622648341676430202012134841105682693325449111864486965620580385193372574056655307565776443500172559276506580080666309613596123959526401183771266191111648888770165103765201540432935896478050565498910859394398040337736428986503353728654281741675501426556951651730857731520726544822202052204333576419461470078638635714633883971555568155762791083806081356390015078556138204745301244318602892999951769095393533543459287153826444748525565562994868290974656594641167516638824084709244759304565537988780240182726747717520668656447042764905182368097816870317226254091563339319225826532421793476126957566116491683091000037280243678977524008116429435791233989131778588951040787010001550850300962589027141459269429788948827922488936540679819250899205378901844368396599005599416245853195983791047420035546715581327563647743699106423137948033220354866787742421401882377594188978420771363763979842876476317561695866017339306915478910469360295120703231290897191949370187576910870892122746405959643035923767705311529133143570356000871000104316134877596730098481457664538485062713925398206315386102193209716921624801144885830371807800598702160128919029382551105870250822691563824762688218455726083422679011262953417608407081940666378347516623261344317288085648520604696061113087587541697324142159332523701117117344487058369721635511916921781656512076012923877699682580966907650020645394453339259029470167614967483148772143297240318518132808388475404757033634879908635887242493978519843638613773541254481420964953655787997086016215048896808533626816568037598511329052360089630834506704098992055172803035427512742093046166634458153621276387122206090166265238550833438945608544227553031790983402948028158366346117981328287758679900883132820753841911716388405415802776366342530912037142000349497011080100447688710455770502725855329455902780737147290884620090514316074019265546108397922209908352017303311294345693533045856228272371673671875680485735727059787204050072846873852593527236209953290278024010351913595312078513313319898469756362197640265427707877906046404677929416916983675145666308210112391170637418755050266086166823212218308852301439562465529707919934139306151830302789666543620894427107264605631634186925494563847879121462311879320602868184364632067172162996897916331717419963699094664209906103069564198332963639293419493198374580454199054266804122587280450409116798139410040318252918654621006997942183163890271073805791270860009253875920905780782586507797966169778839657588559313518830068437255894010764505628682286842480348435878470288714167420003173930360705209247522851256772080547536715440036744440292512487220482660009288619070138505496481632648652804071744284270294322353178356898496098693457537036799689265415919666844366962705200911935197807892458178441194927147214280510846313500017083409759616231671137500902008373865529207026309541841087636937846827855591064599499577114089713933213299688171891267568117366401515367950376054207527252172919914978074375227661879199791791312877835071022037891687125672439132652004478249002415937733416091646052181780511264780449996024749871545770728358316232779233125720774371833205586727854691909760187329895688394943952789566065301022729763166515118587899226184811330191537652485054046671216238873097177138779678567214817967430106440813634584861420384531848653278004686225041778941212481909704271061885960170343202324844633302562528680216279691540316360568191983900601489352392884944900467830992420309474008970052419926698438076827845659284466186849405497877443644797966365678648553448244303140017834059378887419358073015716120848313961803864906074622361720100393463806849736015695347116011778791688237548332093370764179130658812685956940834223078032827686340957151019895522765302284641973664259358829532288846485889854145899237126179549153966274333557454230612188657097050528388857470835318933887726511272906869249824259566286930051648172337780979549607224717468532510283563941613439247481591575316294819788142366214359848010807199430077927577831869505781034069271045286082967934831566654000795084123565477598173905871747426560984041557280311508368947926342171795419372726269753699601219277187505402362294336729247039945227879193315406257351946204326007198004837635523936080539498017624236462566742583664425414413699750568795159716517343350216109759170589456861783409387511549368905872612218694038622473200639959707406132560460573723641990280967044285209353797694811110044462972437787934095842629764949334856003459642367826401135381495391312940715045136523987278228262171103779988019362188651694114417069010879806712906036717878888273421805279755190574563581128058023159496667148681499989804751757878022401064935036872448656420994611140565578792713241110388982481942590941565811660116462888145803875373959540055218117840845439559784471031663227026492424932284495034891063437663675216245910672735321643168418576326192222338864110717319886306802091528145388065221615372590933443636109524964781982701422144360088158350129952690178406940678538575674620233601635601167102175829110014757756983129972467648973011892949624716243800749964278145709471462068906583947863756442263396113271448142070299447111325046990116831499262257334238336170937732589654218392865712235902479416348776141870455191245673804723077513294375198185188568703415251368521752436119038381754406251649645672971503240214404289721648453962254042991076596624222838057201067577126612313275218264001445474877263943917464436327714795579970523394015101075464131583924388930968626203410299640960876394218421636970558173772633901535524996299019247727645572130807627420507819039255946112049468207951712476381951214843687247870593004077523828116021735648741349373828568436875147260082307298915092243180745643437655740207362869718757240766815227132268313761519861013147108612971679207953780569248008377823670463028305868703389287107217042893358327115975225824307916674878557282393699370676555030041724877177171941192675036343607570027633434763242289711777671512223422680769267141355005011526657319704256826032961062135343902461151660349520910203901203372469781583698421553036980434855752343074703003564360979848114899785654791357406068472269594528226750193067518976369691501073865357322799129416961178440788352642474368897345747358127047506003542455261669707024193684068761468585051137844282896024948633851369081282423330902093883797604218228366572219913349085871425480582361135177562440325060463922468886984856931065424692887198928157539973397453700560348935020214222106564932458685111758202133132712520911200208322092688080901706721565584383544912215210819432731392191977052770931993003475609485851449868461556393544525746224650672213164405342256957572845352796548842615019627072676280719832532517031013628636168939280418929342204063555798656876911008526128871796104012002431593051372797121517341972074547981752728698889758496667714600408635192015378470995320697776790325163460008854281610942754409885107650812008126335863855070992219592024863775720930544568758215499517202071028243207456067100419520979219909177966998613192567695433187743713699111185887189263771360613382565208222135007981387625633226930125084134570162781798922550959455100559256834787475553942599395530440494251838036148863510790788845291380882157847980202154591517640657855943065706435351106218666065692475213757266290447471364036344769000019553318648218127915480832099089518214526256663528728730548519039478736816674744589825958918612206048670131155892006730940504262199943087747122964517110681914865837491182238100918324435058405768031100532058416563080482196937969942570458078811116088676677015930595952393258366945703035073717279124903240574557948576721409084215727242895182672305698943478129714402993579546666910621682991799806162712930981129193929914248573919887412782427728650339617089629476996837440031101544612922897814300396523851683459696652531034317901262769494931152801652188601099157850791425990811618346923310411821467145660369805595658205854549083433884250111450018662758886758501927410467079542964764784624223611791170507611027434491643525690029385904323864278176350964398458776182314376701035273398257745349592805949538424167302723334001037751245909382928908496177277582002295831641301566396881974966391254292715106911991413190663263630340165164112812792460165136686090320320870931173355093128287462985909478150413446644707041616760150957400360275979097304323014805445230306012078893776700813105512661507330583575763808277936479025497924882714705432427019782411521527471164500982911866695704137180907531256847976541714763760788624155438470539264611698167036754316361428516087934156643232854358416018521491063105682133610651978023294366936764990311848568413403860280215846472444156512173237386138914604010699120901983175709868852706893235201456373834140217894701351997839690093720578088383860028813402803325898426312188652983587747364857616640395361104050475416000784834308857325650172733993657152927456178261526046891545418131148376681285248404275255105077290136241648681401229954646499137514890312685516360255707168329684963181747807113411833683284139483794223180915901561895221883071871262958528092276273602832253691209106826492269996827426090795353502045235547050150952516636186859026193949048903245279890388968965345829613010146281496215993767710798677388116455509085676315361417629985306504665543220299326948509692387485423139580369366475930588020487974445317459420920709395626877407096562464640019992750687535614933620697019819550737377923742362190860727155612487727570744183295867475091924535969230033768740305016110899201525010997259142901118700230923362751888597337408869915160162852877591407063310776784041863085310460043775965091884839454631545968771390010853283796108417149806915172542465834776605745227164563348836310239646835534761651869446185004485064321658652354957154553760672575653157293460668882166944442690911632381133180599460463405551505459180590526502293450409092067349870099305531149057640484425550981270006418045989117509179111501511681215140369658737773797533653078483890721292286612715591188867203557873409505567626007557507297279771277413695823631434047093369089140610872557700860488816000409293544010517949947891931278674146942133158142890098458444496338754104739817536002977822481364578140921746414985489636298488629527208559851906719872921815954796293599896747680226304371086643221220500226831390599034580697946084989293065366738252671381958456596041648264388662566414732935055037590013835305290279100631939005016694025064018408468897600487221962460372283998241347824549226144918186273629510151501028817434697893520780337623500373783631240271388428012367961241899823697933440322213266682413544066811925498114641644948850369833425622399794968208252990863749586307800739875584902315604308044876393547779153965182923988634805917101186592245698958655617376102263000844963303461153304159737941093755211700409494114838002741412928158915298265319676411084643076772451331844644665390685727026457860627630021290205344310345673940657263637155498834608480821278764019060974177236544814405118978671071362621332633973943002634685400594853249440570741877514721571874719423332163232905884567724302928445042775100365876122085931563319575119356220562581449882349943522480221999139142058047982418756858574060402630727423367542595811840059373141298851917970730023328485894242900933653348555691290713432896216627571809783273264930301966772327680596621181507625426701546910244799363966592886283496853748718076021893918557407206828340781855031710779145110084213332541970325080848437224827568589306458425509368802197709225957337750526529210701287390102035933237851459599775766659303585362320035917409730803076495284079152844373303454695441401438180564980729170282710326043260548307573201265463526961931561264624411233176473559684641708442463981717473240489809338034267218754178914049403207883545786881521239953792132594234417489071833073369091385365315508258074149846186265847721376933557165122764137965470126122441340905983632234823992836392583043787749419691645380947728306628729620703955586430938832346874160467333509239474377378649594686754812509065773204078447736279791839206711161735534897194070098034727079168641812227283580290708925844427495362459100838995524427932929741382874029475109748309095478569968594590585030286507503073400582541956080728734399919771427782234084386724291346962412776975275103198078258371793523958509466090118760956055036835238831543208184124744424559548483671740086083786621120322746510991427277269979214669393474552597982339416563736736082712315418374759366989586529825777686787652479998045751063385128436435382065916468484428958487468361003829248270900026404973137363426410539015175239725936974151506955652569294977710926400103438208488394325878450901256673744912714711081205415350844891361059157635901844294551508716888421718488603836754711703178228657704356982876915329513206835724451116662208433696864614222019283002515728575439603886525729220305846842655408015845148077103286990793400688477268117391785348494035724162793243359023371111794566766995493962075405928517053767206440513275753407641922332108906083266049191765138794703367409247129683448245334930281771111731340144557146274077144652569114143400035562028527331743513570749964181023698895151538692035665655781141489468992176753612851775051068924192359202276117543956209297211416343190127339708341982985132876209117592477549733119023200337921171013784237409141351134405603751485228316268665351689863315290581833945962176276738491444098995796589263280985427844866950439588905999057971903949561705037344766057343531930273732053059569508201822777177066928567283997687934985140728878327694085276215064654442380516437704480102185981873449824915417614028341961939169426604966899462494518765791671741914717736534621707434487222957997917126252687869039206006564072477054147402813192631315920071983968499837066456313339862890542365748716023473686948002603109715361670811112460433378766696881034038412533460345080483588141786638509188116017431471699282520364194707679764361282664047041062395653004035476600982668304773926737747076795085029665864642387762285424460052696442625982939801480185360348318855177223731360577085352539196935333603469597626224280062840348940754439754555277300990857695622377471374103646703582582644067470198062581208353821777787690719855591291134059455140249932810382074014991158327614695141732740227056539610861932759415286641650909943733047263899955735456285645818222721459935294370312198603952712559823618543411551432225685409658651942789316737256650796461749889438057207845252971923289770384131968090033748467313896281438954136879518206635621829905413513063766018861852332591536610936329168650843217552050927759136367865546859661790980474426145346149424618801738947240321337268567421996245735739734896964868626843774081247173695905072862727053687437229250013213119984415870985960973769820892902930285629613955708895234085541890801027723667883230902836755271653171377147726119786178034812832002596321572088151388217849805725894037662192981792167462368734110127076807054100597858285928700433576273277394280122434228497946334834162643405037803010964239842272535547936082456152137497187678098916727352624623895616598420370372647793509295350332946838059668343007075810464742864785509881180774311128664164503333632646464990125550176325087770309722767491443318479840095256487133222746759454730052111379266362253097823443189483405198552208762015256487216503163108400977547094555074603753544249596708931689949826156412711924668816645208271303238537275371035806883952951939788722893236570444488186787415107259643927158328496242839214829706295277524778334098916105116194987961403772309071623957477439114525042596314427949154509218785910861211830981797685272034137746188858353477781608357816943544116910218417505228591494802080451289408100297708397609370120837889734157719638415010739432480630785404354040782127753642170559117522792913387878660504379330222155972121656752787254643806596060333541854379888308071847794093788503752139543807325359840117372774804171670489138544052691514444468678730282757060013261790151652933319738243945133617969019852993184200202805611683014090143992514428023578443109668253964228182077983461338846380268071913168343124216315219117070826566184300034399956067462598010477707778732775539775394754173069691910784756997291066198398750343288071510758251523103063784785528540224015986794442001816826588599763548126022608878285140892016614521092868367327615288488558439409741841553170338215162205491350456361676408477233934436579478302510387932552811067402460747863276791110729953426278088046969539420836034218175987346402589461676453858230665314532846855493463648893151123076647654212762863102973040247885912010483112129093236551268888026215444987667351610511392209280225107195722719879451551410813415285516825674280750067127646101734020971448268973072870927743008374668720076890508313740349837108653695693801223466903224237802731489708507132368832292392763999653935269196752340038151650490497145584624796716945453332268809032812475915193774431808953664200604653934620354131120049783065180739855844820119488292957041905207047068713713260227022513015730520559721711716413794780112329697498315411603871886926317102888559879345786328158414015489546815932775137504959107266900785947982571225180593868399018966348322121820430875623218414963172857299465694033511408033971586892180641007395273946188390310809188450876598957543459735315401564500924680045553692798743554005748871333621291045653006514574740996688124197107964015682400224133281586427453985429901660534769507628287263840150415746933076952334336995538973153381034359413535903140531060412109803314883060682545434518678129483026716656453770954185684999925773360370393379106469703685923943038257025166567636068377704063622773411375501482789531586403255387443607160809393435419936787414172662927879672607503082021709156100719456362196948693382225698300159821159836131886968831619859293185560653294300872062160039161128480496992378363284864974101901876819194453859195976021144470087371166688649292216837971135288816148716280096723840458653003108126314787626194489807135153870815659366592922692287473493198749918286930757411149015174279062684465571754194119345677875432626791232792488085577917445906283942705179293726633110021316540714319016098577836826301590750533578033205865994517699682274481936981622093841453980791518532340254514730511172221684803488772790130473888379126880202887773823180420022329853879593919096624417910379863078543628913513066704877924144901084760459250734533667622964649103198550310944968864574109452393178529324392765609478858108770745138683314284370017696520743758647801285690737352635765350187231061121652300411243125691621916778635382715429781198136685984551122938690252454289440534513550529988190661876094756651367311709348569828607996419597811448237037618553318500744070428851410490342927484671490167450219185617533441113504076007042924615247163064159099898988360627696988944918023896063486190129852563655574720386200004787715733538759198542417416286807592617470389166004044887172425160823398807507828410845961943127765168997489270910067858468229906038418401637106306489105687587680554135609760817144569285671209111860575581376100775943102212058285696204831554685994181670361402503331330030772759655452873584713997145943333735202615050041001991284047811610224996475824696326189366887718590025503412087302847549748530858549659374935666652155563252701647243414806549208469677707479025223940736415464144375750094829137489203340546203668419254866593760337088606802918769786439249394194592527308649372860947168700237191884308076361852359728903129660508649288649341386609445787025458079072906023881467098967300115901472565257677975297131559115465979224314381559284538097986208790113835002234049641903730176937045249809583071986835679656574808753345357488268360155053108625176074241012124151883490559654124526077615004501602781663346025140042420096385667217874319912736317874521531075641535902623867593549458881154419349552721193389106533429898022285344882023105554423501803510584885707452051905557481746761934924315767501426157968757626023540021410002423479435755273112460578627734428089092620017959102510061100303615917202768011338484563838061539324045785773062904120548990930142470497877748067284498928282756983270665506861424828590672175505437143077772917288593908512916558376639512313150456916482652399018149100027667264843866567054527005843362494292580890747992873096123939764796820303761442010952559886324986246108456935822977983938849259378618104972298148495085063712911734729986794862351201353985511845652204315883518201597531896093193267546323131916833256213191423957895586222594119805178334266553758656707087072522228912531532898755052809241389912200909288092789682090189711500209708954285919962066236584740137246071561197405862408009671927792508141563576139465544654531929896135000817798204723766989653254572010694079445499045829034076648217139456802838794961947204059296804369014682102084699811187525199486313956663025853220434028363254187357037917953821670429320625584133015358971303511087026117989796187152928255180107351263656028386741824062703633565759472417440129358441052646148286927826981126618782114040724280068244335189958181598271025992945737378496728234268537540199388536133978963305384232550748219465969140998008481714276043180904298579064604353592164133628327824221522452608185728166213693799684943137361404458240246514556444410772554515755275702851889386037871705954447568743500782820472339234040027448843650073107199062318369862823981201290365313232261120225862973454849444170392855849301115288221265578955150376963770672398618002420991590008158904293816167256017784571158730304998385308523550794337427153574571277649646562074736005739792886204983363138697665839726655975672227818166900369935758251939849083878582629520677735308873992229350507377484740520995851858825097853799053799086325211412185995276225610026961031892881305704183675924787436881743969136413239253860786879069381758568753750870310924192688655548978947935460585285977558099144238768069551217333883880718918768917816610536539980378313073811136568763906201829811437757284311603163340199708993193849624892112529624464233395281343288361654311386063855255673720210116186041209506203877996751837708859092118126405582386023624169300035327653120632182299453180762730091120579060882974788746091639382189872465213883719496754022709718720801414026223797284420617688619766901497031554997495256046268696433595119651954836228728803325772772092452369318305730676802070159267166082350409165415516349513081042623092976247590996437622617999349551331519670400530578724489885713554182283272023034311980867227087187375211226617211654443128352284494558013914659751682174666812319863399100949230490713352065908792176471476273695977907770748030278021149089314125030270674049713354984077558857432519847898703337782724473680902734805987921744459699434432396582853731086500701388603099180451716746366762927609573520137315205058364223296225314007711978495427969422311787798502257859311851248755925697883100306145475463211575411106473265286470990618892110486974868351836270555962539072783084968705798023916728213631834830270662413224645640971155968985978552177235177008218276737807709224726806928239690965822714347033686031141538904206197572938253064765729727911138607833709215627244911438140323992316227961568581674761274108531568677450198884268034540449468932365761389288467266829983827365482918412227185954801384554897397708427057567624288304348138474773937543105264282697934458537622547351609227149026851482964660437331342752426985291850752213154713644967758313595742403815078080098763720895087679757711602489219667344069922324044702398215235599100718538356989358328109836283768019803412816430959058811217848351659150050791683316726933245785430204322714986204815218705839149348374632059834925505022496379351727298907802721266262751742437553477354110620529386334978382024315735609376703316604640338420287165783715229233773736106903036526763701592305766536887987430607778541262632018051784733247832889540818243237265299477081208354968820476641463786004461518668513246076546052333022796434618292902005977900298126971112571547878408883596517563355239669821329378413247173810004590682832420839257163108366849155233470065595968532933298536951497707534308687368041408057010867772235134222935693524291285707189320678968365560231398470125105056580347285619058424233664287962669247150593236817925426650846761946350683595051052689351908146342086544012716826400705580292942327388211840105452229679776070257982354142460025747368954276551744183841714232951773750163235386925249418828823923054308991377455287783630155787960331814893003034208746369932984242622504856993589884657150509239328450485287058253443434246822881039464625855854334631340404100561030730802502776381945192005867917584248543950399377417753834782147377541513578799452235265938530472904801393833669130129331005020480213788836980715259295786088484796780912360051126190009921007268409093804038778489327505778578921159155564537478589577315713142322555652838390725794179430152718151323104575953151536403448799758420829495045915031481352145820662013868376088876827260182653612558714891681879984099747322099398890618137418781794037962838105921412124947602542102561739509836502147701259371238005430427894784726450062867291505802698595684476506466600411034745457578826261755015263328337104309563486644830509766582763255877778618162496818867564215634066872454768699871529663837323967358381288225285181392318682889379641829876716787794190680165738431153019447261255467933515555874606827381455950988279881935747834762653974960534373806590850711737826260629170922039806671503651235765742410786512784556226580119196358562705651308218888350794010851355410215053879772393355415792757136605956467778853753995283668747989973896393501025601864323231779773052821853142021545323742241915202783956222887463929515322455255964721588706392749037777407316337550012214928367222377053004581134178825102237637482427739931485534635438734384088089215905116068996005621708318931488950927937289330734328017427010477743460155781424946242411367880358971545387877658776847169153250144950231034225666074980254797248121735258569494694015683923254810373259102169937865638780365869349182189421735104901281602471463443564749013545894888957632132919775970758260251499810955963933348923684634991538709475477573318391673087294512523246871603891292786107875466070028997300161005579705918878938268281111161858709810794584115782570967586192953673202992869929647573713047503060750067277579452383208892216197213139672962055840845811759594031418186802172170419800708944239835335639949910386313756510193047070416362691945630424152940237766819692177694541566814572254335281745359112613015358543354597068850671511936534025529116142819547214081690042766890730829781273673549275529862084366572339338462099963499175783747252640631553498477283708848741544639963155030015415861551023862312592584564060425022915067375857480316438594789630828604168956122773441258221402394832166208394293553333228950267597148538876766342446616506816296906078956385804905524087725931285083308465915925496630962249631198886321306156974161075861368607491460169316796524592678905926494005705749874825165362237753137225907757470833267702597084700822692643729921769973904161049240775654946274169229448775491319890632951560757703214257563629551619133534258305993008676109169481703541913562267334675847156403484211612390437810367690494417930428438550898427935587358520481428986489494859423956133752148253501530369909262997958745554242460388166301114991470952814269036190074647474394607727777757373059087370418460286973780331469588016140883030516452457980570499122651005307302624813666818332142045134511231484837632750562763995610078348047316618657165188542280631464983608447459226379892920547552880650827400606253554743755164278871359248989922615752927041158108298386508708720251557642866620341581963544129152321607571536790277034400708977987000795506614362282282673988114394205217709119668355487526645763888761463877642729443890298212432526260695657858987254489830277159977041833793400756863414373007825643176739709922489966468323287183749003236929677610856596501585076886077137550475221627369352389808743680440539947103693470075778119321220943370995161433866479656856445580572777984261048341788832804822557264445165025243204788622490866341011202527238160575917543960667720776996798777361338635149896065951906722770273911081595546096026825897867683414190980749247539660346646518728188699161262671955661331889856960371605899747857427360343568885124956552830645442534040884408472213241756718022882925517785760032918121124460526703541582159359858312372046223535424561928370924490974972892020101823115252878277104102665313442466663373169615089643942222297546941159871943936172445555492780969855241379525898144451587117308144633529401058934051357750014262284928367525437217433792637403725988937754587091719986214679698191389497744950467492696638602149293468137690967535443993586034089126091794961213584908952100005308289778344874879066010459661732228459297637941477028733754264777005167952564177110343112719914245000391994705799388431603076399219603870321177155160547222741831880463072044054706548574528563281705505717882457724273505827190793925986373056032524102519945904536188574697129059664038709114414576905897829427648407956838503005764481701825898099619142214817926442669111003315755768564491445326941245167625560771204551472356774115808548379490886305192077030762567743310597658276376560819821802836506425829355557145621147492350964195402032909230164723754356450124211070458284124289500760617033742836119640724238420516032163461760806735838369776256040901292709084390042391439042850259770571793471421820821205301444258385304801793776081046945573503911829197322506013154339504364631858945428578597692920522293034317869338200829296242514334256444425010191576418100206635837845654215883986907202949604140796964151906058170547445948103496567775806372259387224901688080710652174593691722196317596078139145137130336879680233868868120105111484339529455353167602134678003258489073398323598486148213282192564024341672950840995582130651772206202865607436751964981441041365997201086493470112888831126927946482337689064110363242618583772313108001333919692062336428474064442512319085989004711244519898490285084612518383026718024161053467493009028585482995224227107198992822167587036607562553958722177629976879753351218951822805986473426049799495800217463100625146092747016686931011716361203582296419101937392288404475914955309436268116144578194138283766572732246835002347848299502055131245224203238882384902717240911049574157710073220039411687055120048851406893317108358021210980319380211775478819681615153773028372698112727335142808397116585077965884114520723423091488692266698516287190380361509473759132406245562195792111200661127305561539228163920372907135761835819429973394581965978004934274774621730723644267512074775643715117549547875904139273074607519168429914126810540052602968544211591643080443607560657939072439752504825988543108464854695335839161487670514260003465761391621286164374907236971405363266564789432950386244893006449283275634248754658138143069525283211768361365907500159894958939859539432982831891811175288829931469405106631104771776115287581973942197510892334819991265569061074438540221272029792354083916605478673298094172466392310703487889875723096741756674735194193669042233208109683033171206889889086906400648226021409372013897182403260125835174304653940696647655788873758540446018354009300281373455570788453118465309126511921364240904587345894787564565301657440603843186206221025741894109934470085374274774989383383886704640840296089708101202982352842603634993998767977404201560535962080494160517459816952295529202266256381608628517589285225062247517623541815178229568783249528870469719541629509065528859754246502864496940768454924468307129574360240476589020181526240800466340560920506867910178261864333644286925171733403109231466383519074524213185809965359272656287435348032377249926820499791343378833965169435834744685344787642070786414784008854913339850692051481822855411398110681842921901345778439386511650228063966895658776119856640822013546975391505461899165943580863779688568307398135123430781567495031147158036304573776052659391937618588828496558822253805396117202396558422368008157280443775804408997956288087953448555225898404165860434837691659168187920312836241328547649156329076471042762474778054514711512738259587280996595666886370435043884480709661466931662588068690935802568000296859067653963939670006107179029534072062249122110221130583543650856045366682219373083377129533785737757785047615326229687911352978373926777565444527810186825469516820208838198519460183812895082713285208577678294851252062151409738369612625989600016220961466127524871624925042912144246377153811920451999133420575006820984630763008508481589767372898555184448164925795923671205366510792888312302886285104091198279234353594332826881825784225787706891321416372531160607046470298349737659963595575801759591187276697003286955026680502476670086886850732060567555919719380199503302432251049293017655967289912189202718079295680065205803519345641932385738642464227057549539573401139281780613824694385440334249188329929928220284300105327148460929412726174655878995114157229686487596451830105830458745582793164626857547050838611023689194917827350481657988492746595330994005559761325330935221151927839674461826566214650410036481680062192647592841663778257843198326267982172773797585103766058363951810478637501700850903084417090825723401645162843280408800666345853210538586308509684549070700700094058669870155371443058098665795651887683437588672802170457966476304287105831442988124133230041909169581763796437929012770277026415209756853833101885064255548824468003928977727541597442226167521568667934821355384553703111128306508529992766729500739897370945254722536266567117644127000358945057888593218257761296282525056059427929716025216593343338461738031142410649206754468428554369040813299825125940057069664910118934128441057853224077670564871551453901805781429673731185732212262020402250558038375491156219634666936819607750429642510543920827226721710808885528530691207910997519338417932327752785373334746243752335387919437176969831411853169554337787510697915329747408487017977607005351614963698789711801667607177262711309039077655415630065187038939098939883037148025713190452626773258346802562199602155005157975449672428818697636996160532759091446745669096454570841156302565823737685834355638336037339605155496106589350580412880841656945513029263197707529183313810015848377632756773355215428608929186128466317065848014271081763701650528164699300171233435691531606918826835271576704430935117589050624684491822387794686369059859103637202029430799056137079674679625202294736932038169820862296864899628908788956863328800503020284522706419862784180235888499777103370977029000765040910934196655915718419560930197342015246093166538197849617125120404277458524164098451489423270455352470980669712509584324401327673858697945702530232766679278720282661812729858682502500146646680334095777341503631272242415617929150659479343985562902626336402459045996927313190001032046383988256691348261777895749102101276646605054772236925719019061473550533525309963794949883238266965256122326441157114913866083363135225029811421448013049047381839090250424309648753158702919202970912073508907799785937716974824217243564969809723059155894292143345468996081329613788764835056253765960587985931299948749643418211591761262740554894933049501372928810319508115767136420337005271095495273941581563333141012290741266177304931731980647858673762150168132524233063782209265093638463911516465174802619444388781393677621332029047477168147989877850852072028107784927855706876767628148925421218123806009472551510989153175105412467901618552422223191973533853536500638939918164364500535804522511410357120116014472328110618060076339675193808036387433332395629845550447932746746028635489532296995456841357544312586787701502104172495784300386244580902789876015335917334197341758692644484841361429084583806927567136129735322721832174629323361085904982253536233306056032716991179522467330948647089247601050169270980048158474106369297763250662933428063934306896266001638447137947722291411408458261901880729480558446392573740546790468545178364945436570999968599453727551785923966696843329746897525148449304016423905693639735005893504422124363251088024975669841142014581879787971763716722009564928507685641031621518904963744853501209295253303080706300100621632867093883042187856890110665115666093787657133265292817554998084956758243544339756871150748552423571566928825823565642869260361744449588673578267648323752844165019036516842347868584496661622539290984954120280155155166892795058736573335161279509763873992280746656682478153048207814801215121673048117810575609148647896444735716337193590222913032155528113036517948146751465621847569768834056933239241263811719029966098928421031674491753167784270850087985810176403643241206887638419533748155757695770723681246858283358263778754775312552734009900855930845104963572732234443827420117218084865750119892822031191390283945303091954879583782058522688551876106876376457543616491777902726241311413526162032549016523476536111681123133309002982139957324426293556892069709243758477867477709065716356521398685943507699957905628165340650310561282266478842549994749593032752637346433748329010818991518876426981026424383100172537423233964591883742547857639051976851603528353980985632128661695876335366344696026145733535051610354161071592557816406565274641743615704285881166491902040736673455425232278558540159023126392226859218939615761816913895711638697593988214838370193104976103879017295426521276043125339075888099224387658723006376403212831522614080044516235201716471981644063219296555473975070092620362215232708736696775152228077588603266103659316718530435141460821810149564223111525365418935998178515119043802494023276166446357141457037149025053558191692923608768589908463718898102129292939868071003720602068544386582807196643285259536091199006604342481857553300292413125598339022293593762315534007467993720864832215474055870405733877960249193958366207309536120245698876617226190341510186455861471481508242545112214754033935708695154126349857450845056977643372587846225952959027644569640335424633818795560519801104877260981088412769876331927095570539966264109229725487915362181525065768357001584133126038376103426913623280255107299560424438715213919487909752433721474211263735248728301193194978917915931740059586875624587479823226480887957879384539720365571764489053590923616951478287405714155184472427410591044350171837737527667786115155241187625570180270041252514208806314913865665503592701398856722794007919754304865345233690247480633552731338768290026751819981270319997158982567993190686284189546746719162948707569490520110010772319712452896063415241622502873004821916216688957268652404958137777326868440508213276749914884371494018158860014476328689422248241445114248703699393738489777717776011001969155378563610204149686162667002040059717151344672900058908819960839419795698985681170055904822087074164405164056944410284517179185012293645517646063318111054828055672209938790054964829367584718599726413216325408328874246435485248051579912230423167680719664225809139425960716509014845863027270455326564379453549618606386446390936977846783780617568829275029067500070222202221020999035978139170262305263453112585562083626354189192281095796490700575821495004006823488335734141165962272104153113397923604642190952299485097991952237616660909376548504408383904683797116985367827575482894905340381713590935862838870645613702874802639381358498948664246533471406165770515155189581898413336805241568541515484646319364534940747616522241400377445310056462668903028532618326765559931157807091773800221295904464175153300274066230206147845862743378306936249110347541393754372121836264162276869009726091544160377104994297326318320052270426592445801548936163846134805277526259128937650729919298285302416489689448652744351880891284999950362687049181260009481500801265164385411498379346758777344459777112033321741461893219098579295239917665974772116717066934703283076780801039490293432274489358625627944670499141556582718239016483723916640192521504858745073904596294962866926428284060510760666039384973248760208308618673274138844346511890166713614406739408310240976307057903779367232890987413166923990581120371112954146372818752222593509908165782377930846711360949193075330755682401919418978451290797803667787466506175968806796895198611846570110473421467775196536424003510064077930741667225154350903480486054876003734161844131032974454789915709653721993445297252818710832015815390758848073037512221104946249951759605421139072308928007345267184285439364625320022489443783905019400265948073474183430572277478706045767975067325810394301919533303707293962443195316574306931008670257986289637151580973080208958602605578331661533855184976819240368379455715263560597616000118672325790313733717945771104410175706724434102308828584045999089258513443947354210862533569993313970482085641089410056907358984544042739165269413021227516734027237426294229798764756523244845920219586259983235934513372524847820606192999560009347281256331003527722226797788026128833875478715678818853121496270249378010189775635767208046387289777637345734258930774621858066481626323478656219348623240242934297943750139155159882079441424413965946395161930736207317145731491205702114310318405173087337747928703343314835224187557424441789542112973740757878876685134862611033200594715345954827622522477283069828664087571150172535833423173784295201817445057850097691509305828360638233123452477096756430095305836915276079390269140836854192891333736378264787862044732254818703249994371969544071331190727994653056411191814949596193666453189650140287747329094862802197813369121699233108499656605523314528006749204391524787765755617185964073858096290178116299955915670311505145378793913488902642899571098560140690853113100874086645977943831038025326369443538987614691739250290322938842880036364720808601290677404248823728157555234601240640240992618247782848171138029490300770551697679749337321362224018215814868349144656957320102789509514170609371261774322939306330368514576090377650409533936486227797983458064949744106089301520854888755647868466798883601794292055017185266684083956245442731752064810787182080542527280218045709706425915105609122639573557594701882649624781932636129994894589590884477010502817647788846007442747374462088456112474922352287829272400136572740094550909814733708100217377133387767386005079680920461569604460364711038159394430473973367904222621572354149648842618817425442633123152534561365642379124223120019708802131433949775630299333352925138116922422470142633989399920542539066704736462782765623527980014696184500079009452348338244276168134016614641826335168889097661045235087732633896250095119804958238526154493617728718153315009992121008508981481504621955826001759119253544868084847447943957081235413812130469237680290107552257228873698248095479880051194008081127481595302346172011142949770611891725679351003511807247734143281554252049949786086854446055275872977806127915099949826871423420093169402717828435443239343164786371361545978012283378937175417089772830553709250484855863737462191597788001599608533401605983671036115446298596775026697695503416384017533164919797986752616270642526692557366760239838406341541513461734585457811785417029046721049735899496462432489850941516436403275028286501772315302495029468835370765686847315399504008084669076978951247054427743128866253625177192802615482226353962879295050174402703297728691308881961358852392232867159061155623461920430368629412980461605790557173332483856224840307171834354959958445074662649653947996516686237673608747173353990439614191762680066898207040294446210184985970450446099790229069731104871796806922989956048303378084114292802796892758670833535212246308917801507463023927363732467564790880359533355857013419651367949809221601479422145402038609870897481362456312947546886775231296286083550177885896932869331554131268722685017183970645099558910985855145389252544002554368694983006839739527219305448858049729333020370356567845227402684023933905180380855970718330936524361954309254349680041136672547344998082796199557234981233818585338997470573362860892411039880701001022113344866496027418208438792927573038409115461124211035361962958312617709398378431091502244584949830739685049834551570110767714234065461013923802565925170462944062269531353585070102691275849930978790838272668674596672881178387094190579876835768811744644414019724578776418466619803597578648438558466515028129996246430623818001212176716865096976596603198892822727710583223870910296355965510200214052436018507755800506679824984661542619788636324253477771155975058577590851166454904587425581341501161182728268200831954078410907285167909152580188700550989013322606608823698762774916920470864759465647816402083308985973476690199134218728104839983941465117390852121332934831428642140033323348724674601604897363606146339146654179786190139421251207811545101281826692181819799960964976910697545492455359281921209698498524635453751341445056875601296504963781833808696934842254929473996642590013512126778240667058389755392790225043868736396646694746729343427338298021236509291901789742166836140264834787799505716415729948582737624436524694252457169420691563886291572926123459591873499436501058639550788223015475191323700472935209809776664970359366766934610423926758596149489659443708493246845581410961597469293578717619088368856846669663452797916386864125853237861157915466494369292915681731594441866940312195388424269089402019731041464477775753023479311232883435157336080817927236008583279970321978188854544567261526686788483991361136053812516913198449346529839977101762684404541287065051430008931057408507932252622501726557486306472973763989062383860113886960173980357866597383010453423330835833040615911531461187019361661744273686800225010540561298068961087280960183621027563039379102392189315461202892451514983492937101522108692228150865076048958241040064646852208421320183401036741581125237115501244460586256462430986502946476172738972127288829147682382314179173636449768698279663182472550726225996359659574546620838263340378126428082823558528671625434964587856787399486620140843200845766717428682423008813497309381019144481701915365031774595480799204000003459184450165573692721928914255501417843245630110592489115824922220885128585338585441249078621889166867678207199009550325126279506090573072423524103010370138816199556249805254859364387929786506731471815225377768575592992309080854847781925411563036429675636588502134410950780400546662535945970130753273259043933463345383529175276812975101615663479026251080444105454805831647343276979064543307674086243566938954351173646012253474025823534250071303825543893128224545176566637293863003735252659136651472932868357148089465449235335522364874996147205381300161979015727815542385334720097985943327756344180409274609372183537872104236232099103137534696654839884987982045494249631415312607637961140915824641305015770575695708607592950919115709339897092376312289554216859406391999622625988483560880403102403090983605747642530971356324798258937313041042255660398675261846529946700221893844355584430044002241634701277850413968048823699435682849496259640430924724148687959996405539208785591099041907791216177894794358167966380347520795185624402024877068472310779375622537486345374787993539112198381421946948372646443048170006455373253287215725791586702943506816522894566480006864907715240261993314897328428883955703243351757289919215536276377439697417871604052930881014966650130184492868482910259012017438139932137171521842682983285416397850031422715679180271944362184574337324572991286184879889648137663006580195926849327654676271541751084749518654796743142362311680033512195673383275675378339176355944929936179125932850625905620998722551187949265606731756564714309622027738915311082237507236023477123832653901315511564490159868891646111354289487733963495078379464301501195669248719308664323219128316905168640309191028930018578222170324544653262337750008596537396893481221045627821986534560898708519396810990453505802612443888810164066239549830291689922835138932590072617940941516308293898854875166879819861107228541373353346605991394045059123774908526251309823493694482536036926817637067685626991857220875381406830966347764544176453442182801176821595535661709046960556251544869448860769360082370931489916410383784074602501467950292448838741124305116384634981227877319328793095550578430263414415303706950602604065607056209939741839340849715702208911521227504293678193148514716807133089197011206573364173520507430271386722556812077178321031040076425051479658686504339919720847691128997373021837066119935786224802635928452116773848194057101104146750344651240461831438810401717067225992952876946437610151676539771152287500493396874099802767222480866704024030915203777056875386979469054575364795795624375300851265016667263717357926079876001975706813287252583915508138407477038741633311040852851402807190484087078387324804942548145651547990460399477942736896603173564519164233758328015284910358612783119250671117294798099152682619362428667637561543039033810725461341484626397714863054136720322069371929034150801075841978315332638491715996208076208965902973318235483577307331553663390978151720546255969585578674864713546875763707993911781094773636406445204401453956692883913644985656672340733968407244034257197789809903270239157804073345401270219935599451957557766068228514848571675192448490547485706288188495166038640993623777143641562410170537963576978679166365474638419163488804807604032293709570792305539107666094881526750198110386812568349189900215513746939657885101290813788193481314261791883548547854499261369101059493238598438587823940922860892975668680299370897478795164212673604331051233600914815510704788595380035381010704801517225840316036628923340378856291448414106327141907813351065207541553523178597844815784493906167526824738436339210770132657915235941568254285363713511249658423772238703888764812754125717548992605613604492444855523587510429245532364609147118052735693522303700575243447030922576641008489121989653071254720177136596555365880107437104458893262704731497305499840283325633050960390024730324731411876275077900890981230716032053216567219052514758901016473868881399448893347319757809046271907139701945232888459834434504740770330314998013494481030664849274744775092592066678753390057777377775745520351397722807316566475318132164204967746691514110923412493909763250896317693444160603012153797740297385629031056813733389879169776621953488442830903104158170323340573235844487146244050268208764389501689810303322365097956548601348948454541221097613662915580258295671481142340227475179426793661803750560510118562106414049370451580863794884550788039836724693326925954930078518278698966146399530164930559270024492286821800178610652094791079785294170980743504601950512248994765487546550609779188515068787133040267082244799933599712447543259224883474229957499668899139161449824669713905434796597191954144449772518301664033535590668151621559126122774843583117366275509041003597792200464164781415722216544569855347283830093023179977917848705948812724955214456590649887411889727573127284208940957363531758310361954447835189202869189774966975010462054550482976316454948281248944306667076654739210902702530988312010908243871797010056175097347785282926781171938054293873043139780696803422240877686102435939691004768820468719357314847187781790047151775791805585215507208057866499873456014517662117092458790873755522966099910349315660605317089236378627742116869722259102895342145260426700774737924972989539931318322339955465931645085922595977339601539814843877631812414584018836024828847457340618826644947801440348685620109603562620754332474941042901471078006583259561525947355416157878487531896899681442288835241971316868845791985685250371757551014993225739380427121500802483553590564021401661909414261509225879389392441275924868865830750154911895379872947478178190079366706975928766429562285269638042197367493046008135159502709027063116327438123977136594444376227333087329410358626470447533632701751730414223520097101739151461318840891365221603243817826094088195590821578599555283150000939057194535624563173370777418716704115479685786779389158017086144154707336518385564243590272727253554615707855935936060453450814665009521652245940625303642695135629806369461952283061639225174055055759972396096865851876856470298232111945381391977440166833597963468951073432744488999407365743036191688895832750430472045524616734039783933930616183079269410645768696073174663420170203311432012896646343596357758771478043063071631631435298882658462956181582326752882998353294571791927902628212132527694734150500838521176173152618284246351154870674413627090388529020318840074470345791560777841686556306768451702669760864411012794025066931839037148683444385203310135707479632790607730049017542933615123637095201179284076008056905067129424213971034904972350201001710317432307293055149856944174338301029580455728842534951405731365385783664210811271424763120591061179308734745316479721153844950285677449518373728576301922670478230417279338604151020316344233904353725846617445817393095688308001276327113532100758184306375903591768102923744468363454832136636797479172109062828190477564844475663077846213364469382338616015360559449434495385994770028388733520493490274107756594421195588509430565650792333319609792597491970220167047062294804495655468825013500971079569076721373164169872277351086404779527873815470542750953404109550556870441252584073933135691975222888664267692640102898525961994318253835792523587096768082496025754002099409097395764248347948001971531328817574230877945111625683603188404431226230281420611947318832907426501618944099316606207269540780904700565369104685094059328077010448430356419493294090777332727425768908639364892052080413116464914687056364717014394329898947332261304919299216422507808083035166265771904056214046949794653016609934179537100012880146752198948560886573865941190462186639738879012086494564759930886496049232196846445317966422069561111026177393222986086961562420867449803663605736702275409646233189939001257443960023457255657740068899171692362253223322063823466507168802135164826144575501441465623703731608528106875517167296389345136444422944323198980747255108748835717863547807569556779126726375523428571296531603795313321393777643815802451023202635784534068208133388493739588679501950357313252504463685321448971541335678389489477118817534463844312473930744292425267588281723343747840619290007885422149397372348992629930480566335039510546266421362943660599817645949326583536438891525836542230841132726976282742325564431629076435640654038999615233605010111965195750466889366494816049957749691082538848239378810674434347021979679605126771845711250911105263378317376748770756181609470932669592097521534156748418793937765317748211134467204130638126659623518525874630493270574804724534224376402937363307970442124952056167525868122086419453521817579544698510800545383180358600330623183205695243002840977057202948677636634929781042271404847112252021123610087034981474481688239920471039830145474924685335585622961151179920888911805279092276648957590524607983942738489264249312067115948045903265171585447047740534929645870238218065673046674277588717231795979655757061698765893515431396977990716923490867677255979947873673772625449582973948524729334444829366101835962879464839438075367118700798637839950687613206420773952551678308087389624935498035901846444405191717728919384118833146094613955612212080262941039623146516873591428961192706181038290675420485521500680057564509030963139534860091279955516867948365556497857997676805334165027931866475238059110072655638079906458559944720564293918279718553196696430108304572658637295473616101052516658561720430405080857152536389720287824243953795545314267553047165627103357932469930625143387745633078478886577758055286903765217683449226504310296869520566551735392448961903992857818259772024930624279883001175825166048730066971034770806626732789317539763168261977515770681185597041789296456419543419648853106266555495633928720939478566037811290518069728879845765900288763059351884117674347077504254572708672576118252176435623945035884197588441203033991942236936343375892721449955796278206834870596767197591116074529558134795578476683424504284037461046178702716688775192589246540174092523636828239172019382298105098374697747782832953840992267099864627721110174347538788132777802763927647481833957150301347305660322549315668642397841988783040171223075305292411963339903870729914799722827071406029481996061056022881019722641052655106188816579123934212877140120033676162138716978562862241633641474865368151764056902629706824028239738770194678574535275277232850878932268870274765934379390842832951929890250876105691155902577367489611129556731943193307901350842128015904224462925311427578514500865796812369114374706847884191385681697310328733502394744114099847853799889195992245580137185082057241263981762660746607179219425524301271085801203421543949371336618476951063052321455384700283410533481211537897136857001023473361882417684999842103771501136645480182602171333742091981693485702123455644056592641260436820739889945771009946407369210137698936551310144380284530552413232601149004216682241897287583413744589642088979474852962061626252741950758749611311982037620336334721033067062313175480678227707807083498082720450700864837150752348609591919789168778841746187430486825390117944616137156817949270092440404060302166072317567900183948898173626696036668697527726413356116087967054269459627322413353849834167248272376283555376084309370891331757500139613997603163140874683911094176800240981489631429427456639652213169679073865259156710934929368532210388822851926368095294934077711097672767215125404870343650582257702535811384135582114297867361184732083330735873002389087686023444969862543122971639853506684531331851112023989106077980708823717866787721199499242737469010560839904084263321665437945829899627291609331066550433933896861630801488615357925493204130651951988417549227210800170281095956007457241803599618198471911994826769812236775399481065856279513647825325353952890441743164205236483891269186786320564524487108739616617782570529468437441022658759044809902663844338126571607686350380102826571721655067762250040504342281153837925056034060929059896168767366365427287002532273116004970544010364881387350266755070334754381994211045579597457709647821590109932271943693845817075053803751558175024330108886185312673070280606663293826795422055280130306986871996896688314629697122745496193270700466817553928545916189344735178602023010213916626249979610780929590762578502556471317697957665675136122687363019333284493486825984662563796213625842931590496348336347178776186871453098463164024010850243304635197483433270891093069081836941868504706403563064580279267093495045737099942786993260751828396141146376142623484659767974685040858190486163888753548355407315452808584410467741351004356822962891800222594013653872660605423949306440176349466669202051760197304270652782419716399262192459968776556218970036800930219248805522079090268882559738461296498329620457313635299172758634366390398356356380479804621415537085158329120092235713271673569897295080079058364375912278543203979418548018213492724440137436114022698897738741175380896668332874978734083260883198933649515404542776497425751179160192916778052378990407310807703649662066339679979922673258513175906130370228244791886440249604643339988224978133170403512955721343581386636422924494733565161995601294614641330945703140090253482862298466298108691587124418707735156009524661510750720635544679418405823229745958892295564378075089514397307403474047238351851845451061985046744556392186424711830341094107149284612185131196311204858094702885936239714230303410790257927730912981864977090756891892970875726936516725275491539831703701898741599810490969400113351978826952786070115481524658670013866544250478126811452228585488745374326057013422265032495005590455243250506834912279995008270733797944775615592506070730900483721013650300407370094840665235037928355657785000758581961058827322307324193491096991129879277169027161337503980546274138186119843536313237810861809849157919918671691763532839791636184342212986749925026847763749019752860250683271018783146422498526046266469555439029364039691371891236014621421468640512724935610894842413226788654196893738756846729866766331845917524802968771165544336813957496591113220352053725044134735566240284052479624057164802849776025174126836850404339394019826164987944018736277320842956809528279061570848892952150426023056750416416128137035094659637578543565644040723407994884773123349399334758252723069963695060736600833742615568825352799802838345852676145908265876882559323564780171727762249797103675928902498967086300270059092672881325344824092016814486211833129224648061682477215653557602522027970991129760986009605733512782724710638476361484661817700293929335075362903852988121159316354665657690343904423001587903405747236914418686986467606515467754979762707168183376369442531491334750141958565407787972548278219304387455518941706786582116208325075691521422376321139109744013425296233795651905769701831517424246811521519526231220262604456476077633784175130153847652214979892449223667311286336170167461640658891059934818699694489921999864301994109632966689456423991455029585436883805618908469529168864239869691097115593319588005434270821063816982590789037153667068435444783559414932239453454738236064720686799820238757603956345142496102798979415015369549742291034832015332590184325308581714445225672814793698007164350371059990494223860293999142052977055496948734674079919038815169684175368928568467791966539266141984857253405043507222820281710200337170800500372414447661151657919932982870557567524804667802309976916368701399977182342532447126003196033250879361357897931756320833352087301576658331030965292041692302753639448017069250358104156315059578280707873414218503958449029011225010258462895785586092835478476100298068639322545669225736562876063094040965189363649118645694971528611305550591271540515261391009296882397549778406031365541677344241381542529469679837370779061530297786149752526601132832610127541211533825947378743664308425121469508336913820274857975727188814911158403476203807913051526201346268058352817480895298088602480558426735071853600717057896944503925931071602841637217837948770227718360655332377208705327835698490013908885989043146949470026516096678418091093730183988279942530946656466703958914517163778411746052742618082629675212011561578418241143515619942594809549471845891324551626496588030520237788483565553979630809843250766344981137758671917172503285677657804441427004914887174100654997042985734903943129353566131971230917901498311947289812961154733411564156677719957604226592421623333295422562787947667428065709402133028208315635526429247540495886881558993993068885984257886776196091545509319491293582394555737789416404574354805163394653925663188266381769100822893520648168854568028630390610644369667536130617917563567608919160510721050609753895697679781483617683016291383632172348710267249408911698008135340338534780952074965601349523139811662260554672768178905900653783142101350025236787232548264237174907048064906838211890539479727230875127367836732877517772614663627660009766508744367611753208051664134604021023121895226569642420835170018539121505720530140913411958194605710227873421084284183564023220030151017381592680153327775256679083949186915800888908321759201476692466915133144832167516915334918517725681712272504133570584344835842914608424382032038463057238514608858526652431217834556554023723072482818124517221782996251871594686448786385592057044490392320620837827573395665203749883059270693413921852198728117944393020865359617878916776143465146958422364484711080892106482210701831044342999930712959231076863808907937341490739706741211532651287433317791830697154386142654107976163378380290503115996590985559333445832087812231743070146706529620948714035316897503421136461335764868732907472380249217632308873477284133302243089221035582082905447707497211527830867924478599289613482256339068275693574924730854901277696739919372253338936384143419227436010878398666366434576104025751543660351454379066756964697213271379744597793989931948740006042049328632405944422206309492528679892736503621352525359634674509147305040321090735403266254562501442828802707600997947512518605208454462189210415614416857033396222858551242388722676675745383463656095970630633073777025140796482763903152221580773472301187958789847862385910983996685826183826367982587544448944514401968095844587445093883037842884715393999988542016893990537905132059300486505682750107542408439917873189835902074905427797732581839351229487743592534952229223216626120034443451277871885093944371280179104154527104189830938872195191312502235258591319250418595497096267300969780054800727181709481449089842524100526213386508057659281267295565779447226272111870871095303899961326019937053845005549801064259269224883522768566085920627481362632235618000955442860829269880150319255961205741065079906607444458929741591578114880993083739012840492084156819900913653443777877194689975456448856048348412071022080137785817589935068393954253389294533107110060961331022270089419449745070945879859262407071124537230152078949566926601926697715678006884534773671289040744736683741325882767813811961450889797118495419785994567761485711553432202599671197944510698465663096693613515347874245231194534473888470259531862239209420595652217513872927699711582186671729018282547044408025580325699898529669935583272382566501343669238950054531399756796320976710518617539747654770444243529961135933461685325950338104745245196665000237424026708966725127520121979890936375943994857006037727431867150767025467508618096742752956168889924385632486948431705669364267828890790046019758756373534037344121646713997710156299343926973942352428427445628806079154717221985484306403156403213334897604258175164704408729216729215297365864569752080717512232515576825642419330475246086505526832369465103856034677576279553304740874687236414342556509007635664795722599639657916154590097010111845965995786436773476628543898503173543164373505676937219596941677807428658428705024007309631467299206199618570193799791331972803876311292525205477746878594529828460750434504989150713135333885911396393160229544826028709037103571471350051316469752422596592985079011509973793899012025257797389498381225955667568460996619554689238846078867266466829223199640112916448264766655888599209888704454563991379825066622448458690332390604385586315323070849398808805051676612600160521266659195347082087555686169277060810282929867670163315093562756317763521784496540355065628655123123897096189036969875510644853882849406815893629612025160135263692269440165881343454290830619024590696706454395634886476785706646069795265286340189817453998747701686816980558017611463400002239625049493286103326991473631488481822758865407231173619702997218536593490373168728727250014495883253082941253254365572706705651238966243256054442449519690307893825448340167104444295507566947739792417343794829981255107029725248245566088612505942165979507569151024198825854368080903982967301326688559300955311761095658665183526707559497835009547629063755688601889320633371194502085385715678154606706093940461245532079559115972644184753157356188299423697674724983771866737213523756495714348518781474427087417916986349066169838854003019682151072312030717809925897681730712307760826661076596667762265472577173436114076854319037559816772144804964659782735741556524248293038315865787099595875443331593847875400035415484091554485054984635123361988477535526402635432718684112215434732086093715398165881325129577887169135781405557089576288261026979523235937184408534382895913735589837660650322215282777649625783825998491147108857566853077404673832290919465533022686441874373085961729271344338758947363387828630622419471000575498261000154792299836265145217688107842117540955420563285395701342168523030108574895613749955154527451183738685844140100174645564554074504545092639083386976693933767002510216075345196005069120153180303300065846400138695600250944316683772638079446359757314426976011398115871332934063413300166990877835535971817217227912857394445695528852570179446188147663562633773770334470087151467944732698911320099252529692787810396789926012983623667536600391678258918916249974637422496535530793923343393914096577145657829193010010471005889454378148800430645855372206498403864083044750139757603383172930744337550717265176198196969502451713202146434875789665803222111456846584785014209604659142820937134366339415973074652042976315260078798562020433096584496226916470410143955924162405769609269132619644377599065350758860082217614014237292556030267677017662918608198788263121333514839807487377425722601785148089172291561872484234475603309102912124216790560931825087400092665838518547383666311410076398069453377705943262572662510606884747527051765675852390247780315395411146640514489128137176114777577294052726197144179890364426174931349509634440146303505994527913571507131232353528371927775607295776443632878720869547160126101774036422356394583435652775246401781842755905196830136335870913943709967872135729294239368013096434569199452055758274091652970430676827303360145855416908161494897315049322581131536642362033340756298213118600269645391749069859927634179958157752775986443631064711173664738975359827426423836988477320897197646430239870560594842368440156456106068883060437315236495875090810185909941420744808113911964951160756162374233449337077390494913925381756226511516859151284887811763508704502232158977395069997519624840870288339300685810619870778643863292066283856693339984714817224779053837968760740810133365767875448759071181807292670597477807920779494709405575921497730702821633631914749259832257720490250724536097195891775193213009501564467936219339302681278033027337770745786072249703581185750309002362101447617348776948902712186664884699220617525376405922650601358936558508011817225138267563160243324323449191707240799985345558387050736782054866269315178938253013288121741498727965235638879425639699298856941676478464847714649062918259238854467744684291231729976345060355234394515286168168203226963866259002809947184127933492504429479111718365951702000836306218354194577833659599089344945826496377768372968589622951322196550338818840847602554801884998341121382913379099458756914856599527065135429661484340012046312467900886779676126961891156958391980133177414636145771857006258641626599282932131131934549345721450488714907764700829539339239879362429150985927041731869745788987991689416229893835458920365750958878112762219913215109019642032706092245467946020157319380960619284248326381593378984261493696171464154737194690350708015090101942360968696002474135772588429490755130296190342623967327602052971348704424299689820836798475626681783195579869587107771258382361012595570096630082345610588847927818077466630498788759040027358179639633836620243626656752304589910054852615200868946241996929607473683134010634922801820576320155354576818371314571303946927292735940185034056810174804669986686557135658407256313360856590751250951519570721364567727488080409311246903890231154086585983999508845472232512270580744660646182378697095174531994849074668492698880056272112907635283871689104338023650270530454291737999615586739909267121835271064576163770896561101547280818579748720353581053855818577830669422139129497097476583452077559342421214248096063466943793288806587807879578361122357946337884199330843209548409693693057260117394138465905308440829530861720939618485150856354307433144928589410953700623111024575125779130441174863201445600359524526304503736595243741754546240157190105356143085844183846877630315390732770505931166479435741078104900222657033521415569506668320661357851354582008853679236765729040527633677496004216500333805310999178968537743909433320838615483853921313014365684616783181882343672679170678948336553670082335456297135257104959794732651226271918231096156815699239401832374212385830302428601355381299256854142767059100832996252792165409255082259509000816888674537777348265857913015451140610822836287313526506003556075079369537923390624814821707482729180850662537713809126357820152544117783401314221259321850767884919391771277734310913958217315219447286628371901648998926351759252628079721856923333426415807564262101707502711957178300041601224540118844542513839251865868526846439645134679009024511833070135392778917600071213245835634957120819321675597149750435661313477660254828316285108729194141693898179950307767003050235068483396994738642203743382636622230600623153725953071569912653581671809910393024834697795784693185045136913878988738536893855763662604194121821009075680249784745203482538494199414453472342214124642823160811179584242512586196770396936853656101930540088969999088091746049502930445554066268082552245154680295668248898737877902563906974438909095026165649886182891793898816964475331661600819104271778090954808948214934530579699947788376335604421090903082742563911957589313966039457985620301705595606641074833360165033097503009905899075194407869625116642640060669665605810065446513466392572255491192529737919802119193408714536743655076540158270062287065395078368284708406975071145189695968035233804269087394575049173885859568795782869926180237050312574660343954405450515284898462544511636043163767628150065144007107019786561765612305181533988408417610995935368248476527539003907657405695744176907558400368864188114436057689873680866787069217942893897784623849602442694497885497141130540243672097255871207858647526804987606890705644451169144588050168430265655710177755624317642288228669688031522283474484620380826152855934552497090257741271418927362043500373918662292325853602298897587854354035248193711288468380660484026175206169424480995056284898271445125690405283217883077483063415601714636426683825151554480673223826356670161907342050535286205242412695588897256359992074743246682979896665629726439998959641123279086725322032027084033692976948480315499332247591975297040476787588977920381169935187520045974737912447161774784268118780900833763889909307370085176504432532168394482139717594602347644553585624084688449247725484264411962716472083280444582576499821724944294556878270505361337278668808048726695220544240823650308405408146698079439120069114262848173167435755161709321260540980868932152470005360751965451374623992602356335553328382152742031832626927919651223722821237131356255435565882684986673608992639489960196481692720277217457600802294806509506484946229990869957713336271956142882965502253352214513783169079806487419858965662607538347617555886444825905276194447355135825629987909383716895210732458348522118071875982026831244495235394791057343608736155155168150020583428812871685372640993695731562902888338360736097718424309498227498758878423902320078772221406790697320117727592293107135704128099690935833105748399507501524463885704473931998010918500567324115454753316912795204380505490638627977527293561597923842928306790187093483289568769261640002783199945691682394642399114170891080925313383646128770264524806777108214690655581855188925404632119764766245068960710246184281397802614497677541178674077513157196350218071406077048625548906648025206359812164095766755997645036752832248439944008498577647959473279451771040103523125649617556998077627764196822349917735054542288736439435466951348687962256067396492471418683965063755481772323447503720234405444037351653175538887354486220675077669051002751848602144929847094539408584496238357483437368219302080275372049726299465744472164688899993201425485073725952509249711542376235994761005497925723891765562806338786060480667174373167662710591867791478916560470023875445693474175346570874446932991952174840940786650565020728697166219016831020870604056466489806820606062948642464101898279238587511569872784207878797533935241682694561332128613577438828045469419202782210417685781148637254003516612920947525974956104641819989696709063910071523212636082161903680104116146223016700516581697407175980237966877081230121416006182843225403848520164204335239620831319744166136604132193360766156935661163159104998552093357066892967266529284748865420607775497380247315820360779948761468170384466192832271079316377192814809621390955220948622788898553485960579152659160947454238965219423842916941550608077505972067305804128057086313321157907414339015750846586658031516725485358753725188633845496429885182906795491654426352112406526477619516839650243803242124681127033472541779670455399015466101345809856194906992712450019157427864250904494745061000460020351088943363262601391128610451169802390570292356858327805773109449786276085973595542983861839009326340113107007756380332447828389160701445678554576149932669241489366778990719042819810123774386805424095136104849121747269934042931533926047396950295946768861978734371030873549379540327003349308247608555163074323658210124078956683578241976596139826124054900326909213719966423306458206889622777938690662782583821267405742715236540818943820779104617051378989808315563520891299163156543432083102539435123594399496164188455299089823881768428493979648772770106655650683791228146017759367640794383984949131009953245899946886873684488019119303811687940779241077190033684622471994848156599139578144473817024088091808957580171400768737677710015395799429634396936924908858827595484886969066706342311217736899212501694108155595740446935886026066752842491411716988430730812308550045221731156952953576436312670425744145097473326112381302938907885367997169247003643679045719462719751847348150392424002387199141974936380536419798954352244819819135034712426694301240065439209827457215762520065430564963102534263434153601576147117215627142212909816417498803017817166953400683305280615008178204252357858165099632225422353365188054515458847385794849290301917563193945243014534566321127371206523800701259640382208509429190615770122914202404489514403441622435540186854425342314186241683163598308122946112065592885119716891522709285582679745443152633884111432132361729421814173151411050081756747471072921608542304488950865675421264915777079246000863761328343082144470140759288417862855052902545848448579735091036174645925017684248047669367195844616025447987045408518155716297205146112147328599745509295954451021570594457080764570539157148535434710526030214346035271498735201581351588976792634252091644290306433413189837461602144694692944277034044111171677198177895648106500475345527062735011183560813744993892254953534131223843592635937027634461780553096346667875390542571830226605349043188758081751410064054150079270579773795747368805617565256044382126514992741044657567079504476994068821158574595843747056770994436158689216678662514523869100658934569427593039647351838710222578472372400269235959180739046544633431173701521215422580109157124252297779975590555001653290003535003952613308313345367917795036553350925035844206687096328406442061236444828187892256817511119654929547245786288780239668448848833444832590221246655909277437546191364090251437326634408631490430753102705317296051335022395386351826454106228911118027279149931651347060977636786864926672332328819428156120512493849407361529921375993937060653093133791230324228518313988236942974644786515402654366902490491566007426996157096272601256758795574102672965918334238460213614087860957842058521264055106112972860863319434404042226359223273043383921542624751679851940523155255913049108990260952613645400023792166374681945088186480612811097136679213306066018369660677054563289194850575207802282233529608394866797596516816543663186666512987104224513237134510458764585928288037998016352527579887581477761243507237025680336702457561237781883100835504064895337424860134944618133078472326969156537496094641127016347350883812142861193077013050582151320719739533568527957318824406733759828464032019056309573002125273263514633150930406846412116634938187836254416564497487623617585449641189504838573162168059723464323969092267275956274220217544473766425764961854615776154662762892945301632461438732073656364863449627837731411662021952243262059218800762025575820800652872565775422669464359393898063266784312377283526819460372796313299384520859406880434506541287365251734888542209867594398385657858438664624888828700911898631251417619491044684243900365344909514271009364757479010003393856328935365830109783242478161105469638242805923786032661050409532336835438351071906776686312285791091162083384563457664193202027036548089143285109242592877790697583150840210133391640032089964163183907060426302715395520171316643959801128006689547668755969483972526228859084873905730016168994606522277960831534894966681179269104001723233656495610031160645830553271406528616704822031947265087933191689168229253287973788233299562507822898431517674421372103207768491136795538571103571852376513173653133515918561144537870822118257839211884266184858821248037177823407296611819028826214237686171521312577394357722900677743926971852309064017829095389567088362438259491048320791871292005632793002794841233503564407534165033935275332296912032510196042056582484227569525573725748920749453637626707979754872108840664898539806136015728129778313643069054584766164104528861059106899275664715520811234791995083909871244491509599506525384534436089104671132442150196020957826307657523850594272149160846763058384290400455384622149692337787220723849138501799497008799595626749087005495715646174342890859465963857096321707037690435673338145510810972476641219175052481583694045964290678187841096395712906361857448772166638357752191571812926462832419950836455102542239014334539132986322784874444881506248897239940566465124288868591789374329162942088302487480452432115665014354063293279040311572385012171159340517687203603967829908590912128927624370756821193336184842918652364099157778409988892939779659162565826154199906378696114503464201121834814045684209585289755227695176433828766515166532235777291751302823169886075648647018147207498378947470038693670554601816368435588727597651888065451121918558547715782249572279867046764693170992816106742076788931052352199366352276768948453179914857638568746723584371507932319914352714842669791704305138592124126932349190790606394458469743451559524646152867456993457131570547961616566323521913941865232021654674201538565461779043429201819111017342481531760123421610075789631197105786673574655547165632292548456649973464129445370975853204497411942186398423495117782108958809026043606738692973359123234665848985901748883224374496983178883569707074911124186066360500612499043854572663014392798682684311617838354255272200426452419893823195135621486631133705858868541855873796347887757719984774299081049847338614576698618183101487308622052002239591288801669286044018760768825527246058773946014511485598772904097326835711244961144920300347676984279833765271797136813922161319991853224789389613783668765020559108428801391556389524877909980988373329700712427036911375345513788553336578847571524503900833475832267819366784590213363961621238365770031450873805228692947438419340550833476750741316340970128853660155247087982354263767034556762896347246719673618786562471205640880107407434845616061954695518509545012420078283171746617049215975137428563378107606979654211940709936663389894756007856532912567202171985380988504962047866491703329844812861048802875954666544718414049104387870525092075864390266184504358317107529157921783956731607963496819814419839509759410979008301658281569472022198876561951838330527067322963189951077837648263801988771562379690061012842917040019217672124082522627016393123762649864801203805930918539834760078132531035221641381563519214798170233785742402889164897290889917811615811681935847329984627563660003652605317210025590135698376944374089078115665631530878409008381394680205629652096198324085220772736619261969899408820481849009209405127286041513125217965926876580387301971048517911142522565505342759472521787486336712421684296987000440297787654834154548298174415919297405012631633414496686684930233153254224100590067565250552757382839003718211593728374240256616077204836395768305291733095479943866837844079712572769013071818361416549058137183902205415574238630466137891190290948535379103839328734961424171731609045377866745501481196781639550017022799731343250186296867464972059320507629166616489840593284654109143732001297271258471325289190334798923148696616074660781698847372989581393414960687383789661351288884984979787924346606141917116045310477797957301014748600799650601239717310510392928092133294110704949068514940904909782014414443057677015855288906143725092684560976336826275581076188328643443524625009151632316526997405099987672044600313719835638719266831998904438966777899661714545987617562297655664700390503678689553413019475913480078458336071802053071469376802406784254756270046049201865177426922952386065179885508618740922447519670856050295269904838155751726567632947263937013259871411487176788439657316502212293741961777983935262191685527601493372851518802050209456646118634099437880650708348106059153897980093586019392546500214402153920970495921777690583672712106013749663416065271651725546067812720435851195152543061454007496727684470569563978846002787201117795240986563157203903750021944202559410781940527238061026673920633292412933374766758229627798770561643930343659852399219282786423163488452421081867112593650250229926132953237571081402793161847276828798747582725928635841830525896255140469984797574922517988828760270146735421480586152197999373581658723755408308295438357010787036206435327013710773246987879540992208607738967298949678052806872968477059739416149312042664098365228924101435830972710936537425290990137240742253302171820700682754726669083813415547445542586714183500444780774188829375943743123631881795886299211720651688897090357362283527553607860599530748181699327275322421359750242600066847922986335826255307198894638090588510616478944943055488082034982881838223615842220519488634575161968402488707821301673345121835479585386671998460046023027274407826188273562974606939045284479496946257748738403954352784568667018601974526981722942430929692064762193805891546418348774090762069545411870920073014754557606612049764399015928414995226820987882409055243969674365260847682703943067162347909275871029079302448715148375007951584373214729232430009493804487774495458987281785802555261861647826698696585097887685292497883640542638174602047534004737190540377879453565845273383505100419605192967603213426440403167998401320712113767141445916106032148553871426011414839906177014239685501052279995017442682405803792006362295542310671610109832187656876088304201817794875825967073876059134607486634846127962445194213613135265047950990921799353797618929962630334009064647039762012234654215279387375764061512720279365813509553594163484249357908704520960373123517783556962220565505286813554068962668388795257335063516327759410984989914390378959096850141831774939040329705186466550618466468239447937275044114864511801469909939432197418282110279836377320489732134130568831750478318004537788013289776637535873074466239659741794713787257529146300050945483345173689940415519622530792266185550778442836989675295240897061178209294525425550606781187424844710179080464595464914785324817494450167799549917570283554475756913470501569965013101542530184096525378529708790900440947991460578027222953460938607429472062978285453403087521151110087924123441628589400291661677915096645660178780327845873433811988866929876101585663799035359748507129505312623609964777784192147389922967957187482892123455560429824782755237668974480594033534832043802200928544321309933365280470501583829790854755616657266059490139723622193955496040863806355928338519386304031600127397802698252838060745508079184732526374570266469384737182794415633268883224238512918798670888826326405882687001297021532174707843056705446905468008597351167349231191809391164114014084004933653870542875277189106810563857725862950913587392552093741837694448708383147905137879274440243686784918516570260903344273451330892288478144685772489906583715947966395916173275694213676187068024842901712917510030267184855442972294891585006625220352832745844822460374325097397189354421395040566563850683904716289731978006503495432704825929216828167183457802280671318856125089302107353646600725271559264751010436992196910589199548477674348446813125937003289225124756835297130831895772791371411257285080355182409418277461126041788239167926175393193470579658797389831443968415858354350710123625199711481369599583092836895846384027024553602967365063768125236321080319824352178835957626564700792017429714649730094160137277825541311868342726400894213179022602566855075239493270562284441397035625949468565095225861763433332752478824689618177197311160204686614041031420637574936007048143530808344052612424294977321086877831714299148435636353698394195635063270345163455411653993409106376500142102791185642379093369792344406651885695237211910555323522108101624909917090051974495296808182917048473511844313575491018065829319143626325929829090290451360722099797314802898572155416682667181527419562812299389012460469194910089532665840580497257907435527358519336536649588504409542898657271330187440059250055831230805997652685895209277236890279339033771811782833408935927724630415679273848899723610283821014131819117821343917135741586803382438711729467348214486450324454389039332212284554316075265548623782422858966174884781226738173104286554312793005862884676704159125987666296258121782578358886410814799704988906072042324417377810499401082215139446227573231989965813633839187673746239612924816422972526800690996219095225031195345154827373220988486626231506231881741268830556689861402433542548008326035675948002798615232878843005499217040423554347885748680105205812904721725714582097285228291478480237051742282058837828327092344928357132273651821754022833571233473169768910053939872438113771866120689098562481082947723922071271124357687325524573530828458934122298788005187552546637265548964827974183585673220293150081269211992398087830141188394771701937805648396137202774799393152289958681823423853022931813376060663484331701579909827045342355393092833711704428866521096134783332254897844302059240818430679757369170924040166458230847494515055647298249409567100413326513159839170210294672595750084570538955548688818131720051733231638392139964184592171788722848493824250829257681055246253830823478682588734130689946913919226309252439915010354783897072278746709213569113385121250379552310582522267713514443635613744763782140046689799914360545840637913362309366926346196809393001425499471300144785423038186493600029034226872180979658598536195603340509108011207048110948635473267592925689259393072390306383508351241582920610146612054702473206583259312793147171082241287526294813202747763404538564197560192122292456488634824524452747469681486001289219390692211006076347202830382539962192156721465477405249582795919823818321459921612524436472261808787649671027722399552068404285091547341761032867374776201703440551618602941281459228219716201971478017643187061052748445129690675477530080869606221451756897594343288020820310776053344921756189767053199201975884925770182713098311961251928966286014143963119244125894830629270769225898793071760820323921230847193819203747534384126759648123332879920586220433028601490710263288129413926176643161030919550111186113397555669673593162808174053594046129331865503683025321595756200723391472227828013232925710234345024003179363756696426033864399504609331355806316381743721357087254404323674751368510295753442439173086912820020474938888505134117824563355160888105021906964638579680202667738878460321348391330875813976053580725679095795973704095249526555366945655528042435257630016458111235677736003054074664768266973980158332120425903489891258378399298596901529349751382482859707926074788610825066218082337225905148972442198894121910541650135550786670815097485573938609071154731231707434348694408436999755969456471029440735141037038668300149781378788709104216438389871405215866607034229833977476417972981292365350280042408720019999715215263497452398103920248942242239593549769959025050674377421060502674926336559996522103380918208673199862518120984026403708469460240722070050627583539131501637171326133236003809568298697800154315672632701521916824495670964066914268006608421542268228713131079519501758294152607602750301460706502556865647377655611975705509096841794185789759767843029993965747497923266979683514625784597525757039000369214760476662571852032840186742320312649720099777759167632456281748904150059055924514398900109613212810621601260645794251811858550894262446048666496286261003222209839777036802860669180990510631952885869219865110374199092111224066245289432444752270192496725624230470202695019245343606292826496056901419992675646422897447969216125628638540187668261958475310340189911512141745594078047911914204452135033527092036462594393859288838266339956679581080226567400996302938788027258905852923333347674752955981997644430080829404552200031697797450590761961063706846077050758224116261293761870898615494783065996631712200029736228899697828032395547894256454338395706700211167726948903286006694854723499269541761999121006613544515472226862721957773039817479722021729667043290635177573030304144455109577722797816368408178957135190531180822737251249759105590335041228117096598365587596542715500367761078866207314614730777141509397474896372810359892556331456681054158531001447155547992646913616944716470209332002692805699133432839286965767285911067460140869964582482119611062729457999708380258945677473492212529047476636946769368218140287322142010346232825924083497741877873159785932729848653575563385626067205800611750045869078419131215915740471184901717476420985073287368352596298350901592580053944364060345837423677033588720211304827721707318497629874693463014531634276826192184042413087556276732325152467837122688129750379522758847149499199131643275748390056895463689361134397831160541356374784557075997998589330146601393936722722043673056153735085635338504514586574534296216667875548984042918902496715288162610409715105885136480588013824231575690848653730741508831727976036485364083378678903184463903959578109964415695069044898857806890683062439812997940800016849348528876630753833083564673014301721697388157886684545489104639811888156116259938670710323113346368522702047106093881368750171782069820151791411955165918495923949256068604549578506879965281019523844018435131746553912632241975542350688930823439084784408000501795415703326631732018139443080929910841514629391108905017776791864685935858635408261070793514102931193947692776864371849344090940507829022046468028291808097217172597891090575056633422869982611570554608461799720146334382697194645467124624151282208064843041283818858060356403197166706448922538633198097236952074407292538557751989971505325519629071915045003377225785257629276344764841512717135817254711359322436217911477011637510788330301923029916385911579682834431660477682303656680061322034792797977428111085537610787602299478462683994175061263983925904877801525358236690624818840131230967816801335678998254055303897956589193916372225165262302793318616636182529347145887497459149425422055240252103471124416032477179843456976460584776407989816939118111639136940990073874069554039982041837791817486984383406010018358075834747500920222823833977694236753392793006977336630726385734027406027463633528051540334304769305630047012108747063887317633855210948457668865013058000274958692261902608357177052066918648799628323484575261548015804533305446512856002083261425263977062864589439266261432774027027973114133063360190429312602983996669405455671279275142058655951035898500476431351516761721723069735351310834549494892610283386544020977222886585928327654256818310675825244355157298837599104517700152081160141282874064046272779362072703044440903380850299510399946045736211652170357717713424144362061547802948285088013624937974037638068078915286705820951644385420161566745989000210533651040164205271456251731182640966567591192733724367537454149364397156198272442229752345684484182177265826370780923864759468559576744102365680376211997517677304129481623123684038458662606637853363093334083479512020681987511773812127016322073853373624506889207319786915962858821338157451178062033199873119373845912791479246321142163856517349380174485709735407269459221149675646319850892494962922592943313975734696917038296304017310249004930208469015986279228218859339548229281768696850573236849866566059392710300109341997099653331109290084966003989886649302602708135098827364165395600174064168867599492973407675047292989480939934300992121198577430721947885353741279936222067447393760435889528213077531269221416701714168026912793985020877941858607608997834157393586519463782246216936352152733594393044660534189626992237422709486873725227211776852746443008077676058289270289661057633377130453061250889007595973963873935879350208944729296997447376874872504657851034190997975688054805098310400058897549937120386797508437418207949420438996111054513709713742695541834286736285450574608351217900515864262765568195623384195635150488643046207415083538578050000482675593992140238579304400133774290714007230840488416493545925434603819560910264032314099805792422871310564952869792241721028838794169148858685712205988172232365571044300285631573964689769019186675715569492470154391216723922419586358121492892009180999365102788092727025404130403464308285961556635474771423326316832387399289564871874280475470378044004718981255647693725880266277805599208980233114931193510245088443121625953784213322767207333410704730309674381483913818719286880818332855353703802947616389180934229358799254010978086503659972464111941879683038525296009167917058822058533369965972587216317421142421591988844227579230848150532765692515295342456931649267854082524369386296163824278906205855200379543282355539162888344944509675332864643137904146183682725507759918169338594062429783926450415533978073225001534609039002869406010951470666432199146424295568356669057185578947023188747219704356725978953789105088660682263922997332313584759700328992075660364508735979653155029497432679254920304827662572710371634834941113337683133947055541536547637442207901737074941959049193877441421381727126385741931928078214314714813390539004468514560124899245202252228141632122697894370744444279038722462795149219354868460138609199445339295070920708416007046118697756589958950748737420210975825516679113234085158543762880702047996060542217475665868554702645557266116733031849699552348298140679045225088470709445414175637219543580535392456002387372135701795505332708841775813926325251801308356428901123395857765987257913610211114484261641013894715255312616426871505450252994463267560757339014748123316652480867447631811724387839793344002827522147574560792019055758384628050387277497870607371483318818558315372249953535636852672791288016021412632237731031963234495983783621738480601708854847954646118078761137094712350340602643557492388141566907982785138682755279876937110494062840161353312072614887066640708412451503459870223474516066263311431401676097593343882416661297656093240881261924059726528602863451646333832188195090403653488301774487976472724601855545189307188440810761824891775323654726314700003034340089977180963755615533684627075063257307006781241503344672824275775692670261532125661926246534576350255138219597578279948317386083991337597938719925691452970388951657700970021384731652499097282173068694395781975019083187162015138167999840742927973144732297323205887197148419343021578916533120217068524366124108410035391336341973048313170856612829370074000231107577328084776773149109805860812147343517508060538573437226987294974669593234908301750105082544358457015564684075275512941477764692685129753442737916827944469328084143615764224682579868606254639716203468292234924082550103978399572110633170197067958809437340242188234759954513357172872110697145314045253144653647224314990462621095792678832158725446985320451430411675986391521773792035441706834316467049638924344813043305631797215437030287098903964868689547179652929852094539550212522606552112454534742674142248976866291128479203551425062658606847919008397918835851528815457436959004538897616447567443826560708511809587410765019618788827481090066788576298554065117189386835226995977172911328962747973624348386304048564954206128169337448099746015877273401033786019108279104226656548411682405180522590737649389644314750378148458760017861617137410993920706993667802948055310807166330897259594263609303902809372075989234253743887053986541144870685283636335361455181620360951166049855163703676599366949933031397784541479125945029986139456971696278068457720699322791446473700658640360810883190654876864524572274598596024299855776349721478900609108232914823895742928259090404532588589009828999438981536531053251288540235905028308168147752193018953712047367967143740996298815458842506804843074360376441402223908676757908639329422274129353315067542619732174012274026050748008659967941262091690902096326998221700457093037211348367839420114312225377155416911648457453053996654388838645613090893480068173554215180657106380876632248864024814382226477726628285617948218452070409685162605960580496139315258842298040702111896289168172949041097180983360860643552674627773259075471951132841426270662185069922800038532971397457369775958175784596972250036171569573424044273951018989020973160889951880983328167384646313926056090404382792615215747318486960527349475232245737641224403489356255824904736929765243855094315907277351477024133910714935252937835387659816038166547709813403281009952296753217921206329171769728842354502902646658810088556763994480802198194105276627037574358746801326672712443944742522437833421147664156032905036515389758516897598646835198112663607868988140169750443086658736797428961896993479668663926320858892964265341163956360627765738228962179436827190150081475992558505557067909150862688040984767114529956950225907021210511343539631771600926583976389743676351181482882748463170573139735753981626322963498453411998800146742607440166535858502902873349931249423455421849848339330403840663432423269245501695954552793414955870910469301861072552894385480456604542299668507135615791918436280207637792513030293942103634105214201073894619382002286820111514368575993453969501603471973998523269202680828442381509874816374786994105427950117579571108983874016437855742120412817579647630623391544941492007202784741551139309611643675280460355033071447095757245425615788582608418051810936695989480065911018555960899829575508954793831349514212828235818542879083620120506518034891994927508200559177876741734515951548046345646800675086175691343618400219596092429884154179922571594696399779087739239944884086548185648750052731550456559426222310631368471179373265451389151728082249055618881917288308396498755868908673348367954455911567655329099279254295257546975465501727177674352615494463402006837255342886930531342577148511034588880033222779732233025221776668682336307196363028250703590985953865900812871404923697677182127442216178849479173424594205567270904525369147685253018003046672038506855641689587804545959531626671073370503598060541560375948914657260352091202823247928551321972493440062738939689579633345419167431392987392178646987599213756764042618773633339059626340889693832797080920234692107034688709654833284622634507584619414728104420644121354942809052159481918069421982041300418148517224498148281084545364249726523013571997678417487531206428848055794902928142042056296795571907877486880427331455582462191298564492678416222987933501896579071770163623216949579709058539575615287670349621759316597414481402343226544091778310614797030947223318131982229107651149623292745248740154620722103611992118409423337254060426982965757952010074725049704377761697480971088434796164707982557867827036948751613797935252285518573625622502927179155201242479909365548123304181191996502018518916733671092944650716269452498772413197269275984192651641260399585569180460128914960287166884490104006047820445061416506181611209790607432283260546608788579428386992631435759662138558032576615153112935098427944771916676156905207253062016335855460888008056561705740519528838484757260258228123824230005576105066150181302100735599866621157104596962785744959355794632389554875216438490745481540586424023545888260313969630239822052378161820046003000292267508531996513271633317315148969925418813463386523040021548915560399722923128979965075673982718962118885372701899921537310244536892958422103297773891059430167044859804262181609521495122619466343548321205896766449182017917779418567021380684656400623217474318071814612135186577967410472446292804410576714043646103504728273520700256770612484073348505551761571705511783154962261397927313418683326692226157741518045317341684017143483785497603281746089234182037951286671779612618909732525683840066022648830570158959838065760604630785621833787603573361428345839007027189902229807331869555068626125918811849719733082223620742480681024173744190724993926738745022130426748641814032978016669485717013136034844836226961537113619444548455116345171680718444560552079644053774453387467089605518895749477210180791518776353455726393248187419831167294124329533885239242474730830934939774520547100420723483282267339078541151462670711975628879898047105679735429056662472602000840054108660161830879406680122607599482529852535910173581565380576458067813105254738257197767432823388027242120109275100500954263094261526714569046484906127332206857301559952172190483589083710684468169941284969950127110596462217714453057496466681549785490744698611242563101981629665414149367373378941539541184505639196254400251890605661690714175874834727192190020724764588016190260069422495738921791855117474153488028869125457729933562124025673688688033670413215753115107526295459187738526565314539827596330135510961453549060967508490014358934694206320269904356356014388739368011288230890240079706014998909875983561583865694596521431069471930584020540572444357842654430743770438011003235309615001669082671304382951115343446340690224975073184467294534738297578470636454389884077598104270893961113993197265543138399071288772890789117210730931220238800667513580307033573203229694260822337018793273211724272902305658705581180284777908033709512003640278432053849105372008490167339521714087992393769425008500476795918607815025246453362385262283758420658901963285940347883101963658601972223980185777586421431171874983098310966027852942779010420943324384115144672851028696930039572499871374173490293628349271602477610373851772626485831740374264760582265680474891007211789014939441050920769676807792998323427922454585071513873414658047320077887281287096091765713215078100826656618742087418551988214129334430650127338595899972670234879535885078650695783062248140460070169070120097208666651321288521418307996387551273999811620331670378066874896155473887234807171557719456879739611879864048369897369395378083772906266234116032995741285855736887902625192803895170488624561913622290657774436555487763204676432908410523885511395224410059099713602010003149223514433312214832792359923522673788376679699766933131942703663421079580397864335327971493744113484839218783467467601725238686696116581070958720242791019319823782092079550366773714262920364432454285995148105604769830844548835399254337438534390405227545779888066640859408027731086534796463724485003410742704958298388775746337736452693209621610563876651170202366351491551554287551579109198917137800278189988544953726004068655091467525335227728368349112311530664208328366244735867673181450817293939309696850831182595825900675004312382295357392491349134108728689539647908992724190212262806659824632018761809010491145774653516480948109542836630678426655819367196932879283562588679090373455618492126620003168463419949672138712885610620713181913352025883601620260117547576827148501233702934976565351150542755927672805431055103100241394503851961605461733157416890580869660539756451013323762474950168968301556504848212732527057727439845884298812826254870723271574042315994661504539573322361152479875808713262752543779889031690241960390172462308361099015433327458841042045545980654034378339645785116255948901643986729982633915078560931148808305284939116370782344673346462039966664802749987629893394699363406905652370822460571581478482181303390503935385149435906494979216788800055353529528989490521244577396309320380276698595466392203116296366256665774570069418495351033100644118152312687730109381847760338716437075744285002051324416605472668884110512314281936815648072608342115208675153825137201586103989756535418479446295050562729879584099960889427217683551685567894344008140638382591124080622150898793797446427185091238857048918551366020072490991400665820385761028616374371955709791778564242027611304934830147954664852678152088994913959745145303828401669886688145097550698600674455584770531958581844710249527836485810736044262104348780592147629907261821879096589008313840411349347369836641004988445353331807051709012590999510951344682468306113635502727890470097744417457932707075666483079895029408856817526451792651232170105154776409694934750615808345546578310148296856434716215461226947864239878435660626825346511702672991271775501101634184029914508660584369445288594115762137198240196711263410157039387365504945790531981387240087040923966068516626913062687475585486913130407594291411831702624567768284971895972260677888294672030407878660284337565822812147441424950936240825614758066279579646264548621389578370626424793436273010880722894061150577596758140471134397583932739037996242430590915062687542408278388667147096745068368629439442944546596654915709927566004749027934513170447312795140865681795858472264181114381912255282334781110288312803542187859327085243932608373006546353165632265978886678952971254945852829707329442164545291315537486742914715512897559243277417962162197750216208400891150371163294507679188025633398164348324855037139491655750069547160939092141224513741335610883176310767437781013536751881003390080812337039895836477402985581531888017232998305733634139949511628097001378965858088974940844820664844161224346900129274067332729401663535113939985668263751828685098969818586145242269701419266192889353098112613547563017113591433660581116842596710911977068034350374218613105976297724836591579659439622975783032499343820018724704041198570741354019103567390631073616971325465518080571449750122174769648466839154743211134593615635735198618610875266818227609441359125595095892497734536122735257370373731750134950098038287173890568059089305228784163779177870342779624936819704414971331216446897257498388847837276833641332972490929936380465190538198605066012448601111370537762872024428681745134473714043509961837470104288082166027530277515778152241905554682400339544749164435239298272512912945735347432704207552043254028059083627159799913248703454242512403784939152501292046764802729876655017520215491633953585231397815602699284801925339733645797255870148624653112729128869405493435431085248739126016615879215359336534165599620302954910039560735691949001727871748231728137213070924019844205738487718407592291355002778568069053008860606826440495167392505304607753507672050648703433568340418897498956538762053911978687879027223638086361645167546772858017915684478985739925390673421848206084962543723220180545389402673700848233793331836933054768660522850040392190739218826256372466104144396414583172008702618307520131255681734930837509304448353388161559845683420073637248981879209123610247292376750954660856332622286778969966580318229738706417552131480672800475496289562657499483631008501920084290159605349135210710251107587426490816304449346438358834850191099599662230063194308524644438039477275498771042105504994356838018971806154819535045674841238401453998998942581679823477581970802511989651996185080428821578286282669107330055000974380267590851628795964624029171418480817670733617640043512973153818920505312752167489497640141342595636408979044811301198783644177704341060871123163347827163305693292001552006189576179281438809963405709634613170585914172709030551931760579898198647465204406065190166436026873077104241088308870126728250193973749202547489717872189843348624673226005976566368103139237740598079042361738159155753212711793431386259201258516742679641507306694754895308680284919185941565736986031008518731484493679203010510785954136367548170580838338237422450864450401986902316238504813735247368986645385253664296683137130380614337993694895597197277852762707345315489036998133146708414946966677590949040608836358232474636657251076081327966255584294223610842647485066310396630574165349921021504449016329604214210334688446333323114288600539346710756263863652823211383686111086046350905951678732526846714143499496079896348102476128790609075299100468884915737836101943287431879880828726807041509242363303618492360237326142921482173112684075324219568402403866577401406107794951165062572334842481540185814855909928888182284453141567261861659169323507580320735631997286696420700819065328301800630460477098192752183344418426039391193714455527494411489502974583338811323765191339345954799403587556394529970794696645546366655292894285249018200909212840466426883060274901671045486568883031164391192842376509716810529557579864908849276190858323851381020552754207905748619550020723578382482860198690722325285562557331124563272668116075811230172650562025718216024388570673789217186355819680932509593596556675236134050012316989834992209064012482374877268958890069320011360033165390675684887638245068234933627614499876334659247457411660313759850258510213376985007761931661743228162229909180087279386201658213961516886911696881741490711798315579202333015194770821996175484723309373161070203502003456313482614232722083710395839936791244711263566088368879883160782013002532747703462718789639983313136650084119074720465545740755538274383069404429936829101295614390782860055793046876281270678919341348077451679823426091394927670857251346756754178055057788452034004260233220741298415962707430463186702802440167249803895334517843050438553330420403484343006807150902093965945790828802483448923774743016175839341444249731625489959181186558644442906815405624983896785606164852848906904764183513808023505805703081902928295050221842167739313931458821866338480626725078217603806291296575498749890069847171308608456151827885566329121773124769453697276665728075268710076547000506011010397252875603450368933006092259353409355556192329960902413494174835548879812692154820802422003141913066794415938413253069157770275934031861253278474793354758257596340199671786233041234857064907208333211885228214942756416518986176511568751095368245862870554040945750273861910680052519248669888563386271319777691749180094771798767273049410562049778059262882819815748868096393216946013841650246124785908872238609119982910265988670752581047168656400296392722844410011636831735713010736707643670043147312928731957991119756175606550013405421675419807374990842873544424557566103769979580766749935600685489071903552105267563848690660154410807266649312159334486771179642439815363659728670211846334012115574670504007896447578061870887492024551333506131651882256454687540923928807144684521232335502157167410247134970425734283003769315321515571802937004876696155924676738075359723956051703002304091463563861397535317249470797443779512120327749752990332582460923190990724763287779412868944130632924939843455162702930745784494894951281116200823103606291553388116386415802123493397113872215074544698467411305794406266450151896576471704920850919052621663192567494820186925569435340328581446125218195549460464195288691171971173011928374567295759366757125045038377555805600041941625496660567503745248378594716157102323669505162232942240251903077797689907164521385370990877565862389297416259928340650124706487262767324119866416642052125668818023003693964137275116870000103848550217630849624697544512655388482853719239934403294666619653431042441699509896308335935209005162020958701036872023443231130073910656001866461638414681521101036952039382495842007414511024722156895293224542723144781595355196498344123867216652066143138052777575767432165924485758585837826425949674470170220457399278896733033082561223203227517280091427904563131352034804153567646251436201645147581183101265283059356782507032392706135442947028121348916896219187061370235444592954706969191136301404689067311335566555342646181643623339937587455604353605646213467809103288423418069944378755340781332981860851166289291246860093205381048849182715292516803671398955342334792242965815615008438561915520665661206177313504565111333787722631105516243566467112380677547558749286980423318507095531153046962912934194076864363743282243521672967021674087782129151170151804583584099077711223251556866457799536635391478415962319864271219267099485963465472643696338207877963525160249536105866956399593278043413761677792647519671651135852329788826983256374410097131422687005973843462961765021622706194503423536202899110263966938891695345211588370082853151416756652042124638537324874997580857929035365090809577715867411987276592411243012986890621586307234999243747814336855091125986772234750396155537502766320962955375608270259533984177468381808300447623516914991694785463269804233133293823012138888229032477336960690426044923128181908879662707210127092952947800119350074385027296520210542615140761444742564071113660881916056729398830939026243898239049296595595049288537100484835254126625499998664286784620258240948941782734178135684466886056174638613381364548244781527714953887933315601125969983980130035474281756729981427130375463821583151039523976490008494785472591986769124801615728518921390214143268739145931606028035756033374340371547306695039204173428290655341314095548800803381764218133041184518393661227409556473054492082602069772632896779778330468391473267737171564653939013947099279020777571643666069801127935896335735919054583608191745933748277346569330104807089458595930351533261175476522204153550546611361640884350796028512123762744188027654868226351549732074619403696055493543582700275874201011009642469437957054871439046550796952561207470602331693234478692709600226443259080765857157238104532106419782123613741223267625360800208542715989390783752192779475739635480687796217901479458316825838600267552749433951649446778752174661692666133737326520597363715311095261506585759417993825178606662444616729898740081918630030831989958825398998119435205554894105087485481379580624786491390829343085359048137902059306736675321862276902551239327245250298740863490333144503447823536172394520573791492025537921985077658120812459230737367458548167247108422916024387557696868125580665431067550943981269355469645962187573161941484631994888116269040613611222189568549404670803229924226591164790338455367190785152379166781627641467759244266031081366730445862392530161655884804659342513261850439523687865216750921980159965007658584018650504299617858882133964297524439576349822584965964074177066002879573587657907397008921388943035218418002909114976792910298940900770848956204871269599880999593963713200453386086122294077678863926555155219412285006781053574979456189735636956813904417815175367108320648214950866950723520042739654455310420149909278022882795150724779604870157923605114442300243069747606000648275946994205667676922833466994939573967356024397807220017035360804781857030756284542239852602642989052718205985354030556034062995592576797374196800627603985636038193807938882044748836934484165548785196748497966503285112490512797156449425622096586579498583021918756240259939752251245129556321836765265689704051112984487474435643745684708178257333216928087504279232206941534436963221515968639354462092101592853636199724705815044171045547708627921382251390768212973587634736835523316230871925463326756050245370544250354908819523218732546908065115438110906420593039728478425729812799502732415178794378776740593326904264258559051953746577614077475347912408919441116663443367376582522532381981544402444396348075377196628108964938599225026615431812611002065504167908943511471113252327111615009372029616002215521193398834868345337249711558905233850933346942107510249719252953040925240956029274060496357851043879037147516160423986650355029471184395060956072970646423724729484013045548218852122766054079933938827857395087098855149149545015783272617660278955212869241942444386692800159324736704671191122756422479639131437618400403003820865905287578412635989837101925548769262851515088152294591548987246277848754746692858927163880116771782729454098511273752340948206266673876089214706638373135758110303509991149063108442075744014733871796039431316336896244034210328478855593093584589087454115771666086064817814968384435139220582260677612956442047110230083716872867625155502494858986563415199304894200617839221294322113916799567270164780300436638723639172428478764645760701009286801884122447694860012892601760961014248656499053096612298432962270456801743316963563596781067056880969910963294799631191386274803156857058361416861817937928817162544518845019202588014784824421114161565196071172511373053910637799171795461358965746715265888148802922609391885406375747170190355229034861460467855055594495227109654469108817856071294149504645536569308962417833203841038008604022724761542328675698324121082163961782511296645706245583548711169233586457911793263604186872345298190199015067169448043825904702561760487877478956730830497398762847481965091160056391933303167746815244326362544388564886543896222132191532503369882052188408922289122410788395906028383177537819886071428753777931241099692623194761792352100401208482886227551026572138558494469646483841987909592900752721916268919264957138484451945248410749007176314289489332693538032797025147315352587092669392405481751734227394453151797875937534108288787349576814910276364601812945666626234474104683301628891863641725342489652885045466406037461434116672182473062455974723561266926722317334952079576798347477284688378010751317691693916220561193752281907009525740849900529879633375414377991799379139812421419669945707924521581442028878324861577180956873756888755494362966897306948847370983302145317096302726521087305456871301357381629389625915564425649021463773582962551861743975790909874294335043128998259126817764211281121107667030685026149744600867102289837659662768125166219438707324174891333677989192489472384900139566340695288129947234554438296238538620975313374495810600280992257618373433511724367773877149676820309338265310157758008257679898427036055709635652119570119365019072931347055439215499581450339639407653203003778165043522909843703629667817749079481792275515586891159516112699936149183945031499748014456079415129307925872571930639225189199818434853290238676776711894437863015593886423900667508455766617406946389266283504061420671445033132456028784121410882220940852317055040162769236411839730591105282457755786271128559719154651524382188675019229314808350201342342557177264394171057887500722687430119925730592580259255346638443796592769799049376992626846172039929437922117942106818107019090998323328740701018958528347601459507837863227656903747943128126729138674165715574299773527568050786611933865253670472985364176545247090224731699255817218556449783704206111238999038897404739530935772110100252575390165467429291516427938123928264113579453889390617835796073416569776586622695112608374689879627796718282250329155072913102225306000813205918057174001027372240455070739288780723783801652166718752773133236160110647695860182285403429648240117427137485655215587111413718595024261789422820263246918431386910914632857970681940545576927754870141627498907434901172336059810810565163504224467249821147552638560715901725615214024311194260643041500382971922042259605721005490814572997009014138662594551707084240217248976020317784899863604592661022273633586536907069281262453326578316714285193477959553113121334790998360937945484794334934908751157136711909913497484092297567612085113063357461289025492171948621189832926043884319530125298600792257736970323606265538240692000158555596581372529206535836023716653794925711385481563051494640297085784929420173133777591083087800228316723302035397892554375282660729201852222419389436532498247114073102582653143272312105539186041860183392295916160819104537021704811620619320242506604308787454681891288037587874500973841230902577927390371525319139076726615737403568698579509873865112142415171423198724686843538247785337758296559184491240196869429606827604352928645856144110883744026613857447169349127279543019686560891501435439765122176134273524474821348474519484097322239113298423720886617814988613693046747105813994542445097591694748481358112677919918373401169895147025655063037519125965703590819291158394106766689779699920811016655716888440779302157915145799003949146129846587695110458544011399184198309501715602708121308489936583283481383324332329693927426957508582051730511303700733775920982320174620777866439435253023724198058650151043410724073765475639366297865349776171781717717375912087286545311424150026985609666336371449849995562406140537753055866815693080658635584121770513050429729015102156195414916451356704450956776599256262853677451321998508412758629199176411773027892452769310771082904597813213909343759995092901107008328852638588475799847115049277265551345810723592239256814555717823496549413503373083463913590243582629354532165357069212546341423235490307476321315422944904625548765916015913998863480352183595339854606011682895624760337180658878082568181190030202013889045893081531966537168206495843470489617412241479286843497392579021440206366230393329040639168428674439789376899413144503698011832187969861448356378502703121975341345011851774279437450980769854601392516830855381856621183096575668317844074811800128103435980585758986844254041371012115084337023681600916256500125755755438524599934574372219501158139062035537261455246833542145639296103685499416552254793344208092981871224637203029710705940136374364982462024823571345605625575928290849109439731292807706653660448549544835895286522728321171928207341859132712678263713445282695619761446304878188252800100179069289623807228240906560709003168728114513960340730839396393298381236661182580574335053710923545095534016514838647560425784651161364387941428464858941652130992399449878458048007738817944303705911336218565754322263555561495195225785524447271590364806683642215271950956074100750520020199564677294354093083208875978134074742290803274156217219995499071504189499907824319086514207421391071053661776098985837035997182044169092037278022836138602545028618739224427649828864173257184743121673636822844725088423124759102239918795217840451506903532149852206569107764638970051149457490942792111975125680446938945909111532516719401845832234720270497018842363320777690120855340517125073549237407075127685191960837352957423055623785545956284794048431535758824506535221772511028578223843425592808548765473768125851727918947995479535058372236314307548400255948631351821914114133449471680942947192391800200673713792539777182197198065631218885475176997070811927059203004343037170780733510326171826729129819159742585352260982328928247940399325528486572824713961300350398931679357272328335881927882299349367819973506538760018245053935771887371191297583549895318119211522056397603069264231947288238912096836171536406363804934766489916691865934223813421856960039756792054828988313754265338923337100040077583272946208703941255756155636104410679670558795715274103642988415759705686243922916931476650182145945293226444280611891896971662115759281895518728242133637582106406905453873095777059384986875487057069378515371752116893202163607337785273896092183043340723656432607222700290211055107295479468709590578971765361989619309406763244724711108403266471246243425159150196872629235371372952981151420154526192265669913330173577351199137801444538449458100564863082514751737988018114713933398636639920337041658124681324673694798211946435534365771117023675727763902085922766894136165181707016392564853075381937941003409986715598315452095948839837862389651234850578345735087361995136884638970941217362006429397016390260852796161033610416203590172935283999616000832964139768033266718708752715904109587212947675620727829365734203674100026305948715312859307146916810179261569702981639821003471732751072797393355050887809236121002732397870096716956408917640294311358975794546270961618674550508570226888322945990316045481569335977003144301750778445038505055409048931423534159351023969700518537264353250546188740542022699172214416319786759000047867542282838231099595870482865398776958559228457292482762662608561412967072202258045793711150210785490585333933066876163860751343184560703145085651585507621891634023752687229226247034144730267198664777061012714592335258975858610077447407734466714248008647620826790898717722932550833471421190463449242267584731618529585351640926154243811558448133827234083537322248273485487856591217932996743133385439575543143457065212304074499268259556660879487381823193532922625071275121748068330233496092126109172649781893775777414714986300428656519994159905270462896979350604421848728806805595615667373450249644518354215565712419993838968443933313866952905156832496364616879411664839645216598790794071895489121226921621779748188690443717751727216070287036127522373523200097895570778962477548230399087376840808684331503668160123223768493517498449234102931520933224898332216661893577770867415206481282219556607657027621840947943416938285132677434335644813378356810562742817965962374572868964068785359913864518421847683179678938026835862842979863222653740443804383130993857145498088751731405938452292590923123441305303200579424405018823196597737948775798219910498714586197514352511248724145420371210528570387041576864659633272168855510110391843233725307272079889533932489162075320566896007212202692622363269521880553261098349649508017097483575602635278125019144649458720748031183613765697500247193173848799233545963563697581505592910166505100271202087742153152580049380927896962086972931626324488054190351520164474724955319989558725356868343623724678421505272281633688509282120129736875304001133053814086571422431889881778608985844422580101093613321532977345142369455892578809058414293731543153099041014383373522135286461490430928988693178468652737050851520331123157920770008605127099103958200971608909746098635173023202364655685285916222900860980252900934274894068690558066865696637388667448238504688854882213169088514603862545894774924753562399353864222514625212210343426795322078180137356813906850740118312147299566049486827237878401417293793788826978643579962701207017539520801165812064781989203031574597045153855718833045971731052280714594636042908242002055533227231169961033079865779667775731658765620164065462714063382523116475305385470784361023092429780528034466691847919954289888105785192877170682058969747757640180380076343732663712856109804261920138404374915839271976723312963405512556434428053308513385830203348107676340941017577530291233652275715960057311808858710824051440077505745426184355616114207391087809687668492248832200211394160400981102241193672712896742442509068376980280589217753235534843705083208837403486928310290275237065904721086097470858907612853007086572806960604638322654752082024424288226158727757470046916115346119871345989200934397423063475057465672707873802639404213472243663361609507804741899335192576366391609793421150596210400683930834383028849592254707054752661361947448960388126359784802305461547939429198096981071518520169973196178300565961197177813104773966001698530323152402971978209949347767358254376027727001225856010502820145114164991872044466334774344237692654313351476509547126225535736046153722347206686918900103039707147334240448387590245280580553315851042611439670376946606244738745221177976907106641951242425674848545533435011079096022242768398226808995644239870360781792538601214417810148938938768867619078180177033149092236441705814956634476791793815093851079430984040891120054721528868644968991877869327049727655314377400901314442446616058475034718650482248526597388856089155457822727897716186013998830001648629004975425563631318919751506122426662487081567051102997072635568263102733390611976269526556114035866099973834412670212368279298793318788412155131283074839190475443569446014352568508479054393470355768848142937096202216038148403563419229068876932876338847615437898187420031092844651415486111622364842344957511350155466449636100620677118510817848861682779007527394883589770701260444921004076614879540015396004801951649992485868029636908376053178363719500791748206685511427996079180146972597381359474092239421487745598850069872629203080214783431336943477232571043788207174379674474650449797659984513693981623719504211960983693775110378148769187285496064078011128418978070719422680488996905511835599894394059661697936727328205196895947633566638732158928248790735726495872666738992253673716879418628347451780455260018629224410360711110221068720951226381302428884951850725370078715784331010091941725467833647583004549327292997107164872963542803514847195888460166667647131524973180364299199339858761637892234059816575781839363890497884272376957963795726016660031457012955405578729031028357939432248428796678045830552616256203553174498662939695605639978431564757764686856614647152871842991999641809960869854954600222677231401923785021432010776174021899775521189847175264652599862593290994906089809618318377844161791254111047307301705641689749457683825088388342649674256269003564702938416368809614218649333798350100755611661596778171661212576344537237395335665320369047847845141772687457565677148862449175213357713694526400437863898451791900131560073579961424389857868045360911476377718921325131496267158875282109059739211515670683504551275090982397268302900978735242557244223499277337019675752108748081797374013240946850754824681558833917957167413968621237567700870087963791270291101932124557970040441039657581171441185192731895229626755912425185614110742748869748660014532835085292506693147389063984863513645132133284919612014760753999032108545389324013048844691983941375502108997751914129096759073341967084804807705619912202625644999407398488864665976145517936180780630211709977821131495205327703966440609653003096139772545063725940253694642054549980607588771798784358629171721695242044456133910464090827727033710528037845112072572739297616443316992876962152247880324592788397944036774669796929273938565478127832867512400326159065294969863244449871373823378743541074956059578545653184528437820228916268033528835064981961635368317227300230146424224295812208207318992280536061515505993796183065000261346548894237367677817535935170374200899600120111516995026211297024214261389405808547382148223464778532393641002126382258098473834015246057902164909761497603847784398011845859004887816654206925461023020854177026646865699034637820996557093723204144659607171576891688487674084916355413530434009563094670600242107529362446642493786630050408251857061168716067423073912796784491662817441059831527051609858290903451087025672585902764002765299766310701521544040960724934504233829711774301992838843721289760411835443222033764529393062107244947511657679687599938774481434437960221773703523685759322222267556283549350998103395291332043628079316944710147243071427397971577191255408682333504294347283562966338224274176564160541022552701667275195350003025063355925771500454974425167919011248497693463842412784369029003886357897535908964903573661151349912370708342142773861883751913683370398034315346143546345386734599994720623680494225427105517890741741667984083572780792520686730344977536504803509942736199736604136183965953068815060232472506836700786305240827908758221944688821649833814527745385156624353841335281820576010862311065323354485810670252074092165262956542435522784321676536835407849314130854006987242401407770252438009323872785520807573285003463787973371058751751578923061799853521258110077368836302306391764804545455499607813477128876535434917882015908862962942379951544488373019327694669898228372539115022657950297191506025315897138100491961257095316139556889035419471743634848056438415231577464429357911296216657379822567476093358644693265856531237605925815914639510837194551429095400300242353736739301585883632930554176082713984993891594243950074620562378747607147121536857530927238676434025621397335014209910100864513972102137987295576166122063442855695516351579059010023322110842567474048709077419996381759793696382724188531337479813749681587595347211731005174958316763844433205638433092866331673524194677632638433302264124118385169894332215788805793276680062215480939128397653444292030434838284766335022359102805717612877445084828186007685640075241343367976047042319994097062312784299890537961997708984308704200442621048339916406233578902742085803001762120777643084750639358932217712463979190241314910102517630444080807876838454342714448511397128318529819493764922292250786720102575533836647268100617460561103114674372551467345258903076815709787018527995088324231600408622800280215839947550266783815624988722051465652377022212087901489855747055476550804127873756086806311187978061203581514348772828713431139805083636683252584224038698901292577628508653216640248866061426340233576387860735134194664403511038723697868423546071436208060199287650369282058395184610062893199496655988398005553655843411989741320673055267551329764631033890837654141007556914650595338412224821072466615422648934843891710725735997565652086636661750594790767055414738049232822789495545271899657635797927177850165774996566762195975773980166116126167071598122391077241580155049238704734887227186490801624860051989830872038707557857415075924253610459110992726912177735795802671050907176717273729162454868496974422329324579578970935737466984491550075410309394023410500797711289851563805363427197427323564767414227348101549361520487657751054831639078514494632307783804316220327228371855140154342390117778023719086075954452411012491243549451368171609039735291592343481213132656711292253385533637890605607294894057623760307015564236593045022354924001927401331875780562503649268269726292073941056501451572318620775172178335377929428170671058224286365987816219483273005016015927482420238446372597791383052924069573840860177163312305463109748295382441343653903903977409300627791291186131317565993548946788616546420522952514797216082509429109401912100708062806868265597067764849804385518926965385269406096405597850566254040742793704317916290400468845282048480918677627466782788374213540422492274625190157103600021576065485054739891462312508869019036149497051151730869114264622482351834956544973976301492367430894990498328901304347632052592841326924358525224219476090464532581733317880363886011210471058971090712384143856202928008986711710769739565043985368635344784832770126270760491360932473140714634930786955226478452660796398543547869395764935487733764130840272591437215867912983970013176353398113961216417929767204282174497112295165319114181703757152344477166682526438397024197578283655507793796393415829861652071460087227194016801744999874192144384055002230353191510038933874504061165194286614956189343014473755087017548587838277432192698486399900151781969281660302762104658373879588333453087070410047101549011538174522730061339428741166220026157364162120797961661983766220356374418341830397967833683784699108100969501432976173936736506808942948768771494393966312797317577118703284180210080805649705894354676572922534785304945591801395775630120396212956165210273535605542861646103829605289556639068902831176474758593844154455375807612573854693063823935203508242807699543496588933724928467382180430419740687593127532993537453129682452888358323973781711265825375001385307393494018467338331319924976899529529875509698338159754095455811637268457725996395538221152893416469274558058153743360367103548832651147006381030515257934605998341300749383528303816079211382874181488530622362552879014935623860632313028819795024263856021839765166647265494446717190270035284526878279784900834700749707434576362860841416475722649869069982314930526704347118230132701305625708464880954590529601154089599567087365439989851876909924280859757730318391148143782740010186581403222069234395728676907175403663296934197032138516381272477054549425395519590449782995846208959133020893646979409435648022244039600643237475325188283903685466068303541881455197432737453799996562431456818704913030389949622738858945363840149155613416272223999006424232448699959528871617022864716742939045068090430120347050588534222852452555069638707187671977972611120310806773783030607636398647917237264540024296210956988053103685953672675456020989378107849787820467854098424009547411892180767547522999803742751873181631321593350382872552474046117788418557043319826578729077231973630638567971684914228407859226527805588790552668481370661883016181844228902806013584994888204362559455303115545817573625678013586548616757663675723927771089307157048714994071973125628084074806434613297737172912930304094999095694009592699915578684946352541843241782514599286823796506594602225703372233862820817920425139886566986898648959529436002575669781402031829015382375924287349860875384031670946253334489504088990497959718816971866448518106994798587593749239122594720433184321501741068342523163839555607029208890315006331803836366019874527799354772751027879837149615478470038581811833039905411271990358508725234142312371231312540240176305979004063467633897209663419418090499540432653166348643646256961460949529676221488730445925671662945065798839106790155121460146293678555270223180795410615105285943808912360563293497841901161052277062022354165083250382902079235300061075225823791728066443437535254319797869471184469672714858245314886592048948151347473271981382265509262764674428849504302937211127855591909820425435105817939895022611268814806327608423738043515090868285474569984519825592447141801148406001402024964570380863631252206416666365414276524037956623143884978869378045112409366390560703407261556821769327484768020282895556799311561404014874943830405683963200307148756542842630884836931681049623039971867404299088769095092970943465701037086875158221737490807897097994533333574170717448795052638480206865710277403914112918654976094039277148464998520028447325967232039319126964213002338953814528648544537802956846243132996945120588116906745934480551891454320829034880565180153199712956081751813909275620047173411935840491223148050556220825950932828448194419032318030210447492323465398503744828517842943395563818305500698141419155189701822207530147284489079232304146553165173254084420329291282087763790303941090401329691749833249760347811404529477424102464110031130029665493035124344759340041848094659858762675927212993434394459937225017232536506882247606113430350179482213349888718036726522449044300269185099087081580853177902693822642764946076736331807963805712396894501657717337877151455695786937035705668050013266206845219055450542187473126107297250368743028637299952472393314466355300139538766102446275094369337466295062691068867713469411850376666971949700153355398644286355700258261756044211135296265842307992155065667995065565818583248750067625583538744831634707755794964155325227029967732932224818304665688699970772644686133834528436958582655979036873264992185502753814852303344216176304989920958008835569628974668172204895802462727375630092490725756424585800636302321671759868854294999603839603046081286396602559670320092760551088342000441039679706764853348461423266386989556137326980709302239558692634187902055355638296473481511165830146602610178569422932676320091017772586706371216981074746696123627357076170990704249004789179683966489524275629152440287540783919995172778980889359117742736273122922129523406788495514173699381789489689084722257447800527504244501385606714658613570194281528190580684332442248768508769844507448826082811258401247697072628055662976250151745759016801655330540193548043521094838062273376512022845468608133400372888839746540637127898894150580179813516113801631198905565140122126660467120486563196837340494044613396018603762311874184772301133987736097841672783154691071549782701563084748340661124573716736407465821545005603613309161678117160170440775856432250436104035998002973481034648866087783625078998141710205972165403643481580244466289922993240179217810497749149951280689066400197634219574541870686238393097751900126292241925429079709159838414991946426290330953115179560175126916036397525246776156675560513579308956797561112537274045181267211620522537598164175079236455519336604942006525581370053295027411375530170430831243151912462169752186553389013537525814934411571214783399085060352318824223581235363731286463382021369283767488469227021941893332486091885527407348666728912459665744079004511461706947487076179789471913480950148419468245294405942758404188880299850246882677484902350725249667362859501256095858196028937540042802333729774254895940008956520444976178170776615802733561951150446597852256449649330306104231522323419438471491715383707165627865538563362838265564489730536290623396070376696673306000572892351885868536516297185429151255764545196683710281502666665388407373035388423011062186657399628640323612937222406663555862667603705509735880980840375443844894798039854436517831046375226497812062775258041522027680546035676313057398855931928713580500659306241777566658276773310559549182070573031441860673112400767321918065492488036979354691132494027130648170592357703002381704381331620882622486707870783669223333068574913618658683413902454574593221870594573642327275462635621270611051592744298047777127286392277920178217836010600033516218138910709636292834981583409558568142881747751827235181591223326637337422920977033964616754639746827175337730212599458959604273724488814766143042689862819375524491266041542364124394898614769177362013944113391422686529702543452381170444340774754915503382069181377043601953117736016215503975587677535364143301389983021497594840787698441149888731892492179547487934266417317903926059274023959005489459967365745309536601544750779432528629417802965647460060521051353937229100284958797008213373926095978606801473439739833206131660122227581417297558068987213720091289315170330832203761110805929149242984547402033975884369717288600186057450810346401382185841904543695962361462914197883761051613559217029902042293383214065087443796668081124990661410061787962281033259240573411394196103124885798227240330088326956655624541309374967563465920313786173970559140928953682010985267963762340910304285105593355228183323361521411715379762218639447356078593817099584535984738564844260836190669048886790445280216157962428239645468783188355132150097668207411615236472822232942124216868333135300535784478557137018068866643403691185669857148995123341806666763170604205130947752734317965768307629785051077243902864944414478543715449920397358198244075133002235823415151029934830089443110127693849079551707599427641269441197551773300879963915421284240522988158462414905298396311113791401948204008946641620873175439353503195180797582355404981467150521564408085187523987027225309328516770902648565466498494278522695528575420034063592276990197059218963153037014457899417636258763338868711719493993920278902324001380484215621183334218993612380536947939192854812073628721558822533401831695586669028102499425994772326276233405964952960490865780110856025144232273830522669738976662798440849287867798145972965870325920257524499584046950068027143127305095242798022867492634469921110195295144550427793416674686315684195642812589549360298762164309918325419562665659067171755443047136955746317725117353251839408422428463708982575376682773987953521769910069404902680211013458792426773648319250040994054863605945853023073339868936020621314270685820878158494358828478189876484729794855788983545836623793940391952725523223983714521133061206589152318404873890652209390758551513765555965499674571424450097707494631191148941592298975764570913688945433722497018685024244472441656965389493511230149438613425011969371319405384371238593852753354614051965865841550480721358416217871889454787336745371820991304735105248292929895181458067642237753706307012944465406904997758061357656517840376641479577005384339934006378992778995798558724407101335919623888723428043464190468792901543806600672168988944042696187059192598540480927975228607636781961714342396295203177124540315075273451928341315719856387888705340614919671532816347011587352951554505730679491752764881682157273677284991252430352777666383816863215680101561435652812546099237143558379091149053161297004550561540631581999975150745519142894908151446852126680836089553657288384221665191277831667560302668655414327364138802713305520190983076143369451460630871916519147661429773005338661448247862750525869011863610203103811104555300959890473647026241808260537431464635299203542421397787685199101119565989263483352876112360400624542010638836125950216850552925516309169447483680010572627243983081107804221215347144337401704384082416068907825057645276932667855518598830847502900486178012485926532532891372996187830353325973746494148782593344104822218964502082974198641911530986360529739108985777203481220925980157677203154208684558277262138921865226171684187245163839378484344862271262473517944742175964163617391592290018576726673708581842590739878608256004121334350018558731404277075906415955260830580142634812143257038209743497696808813058030394204297033735029990638586479966020775148055889590087957636580865140272929577172666881970606458339346747631323977434088199266858043616007601439908780508975833648861734953959889251196997030202501756679773366788326806726505690162184703947695612513013175081422527200130487848402477027334170411228987630701407390463913729470980873037569296650533759233970145229039775212503613834807683710840031335118321496885566756572972599472638779422011174095299697104020317650290853209751141597777133288211544266913333836239806625424936630217807534293907134190350959730442671650139054305239090287687177844395750884317113956200833614002955115230848201302826324403036244900120747890901017650197006916010865621292996183221393904880970692104351282472476886703160736598137037001664456405056401327193033728227729533054602538901837683412155454135382351738182559886911530680222278901814125374302660876811288377808427417581924033716952474446113573475222614064496159993994847258387379638947194285701591254617705559751785771707152218667344524157899338518868763543331783733070616061084282978559476551130424927166645228468117908065546055264312101037902401804228683877508947178084324696294950677329531688839267953764049197505087889346819384775420685447446067574799715389912917701655522072259949845523973756914522631117535772189851456437435362887961911958998190959313752064523879794138809018567522510649384329392138944834092016843077905746835817346671249593588873675997531881907271168898261918219041821549348650458564556893239283258097439325479119161681301326277267036698937569797651529764819864758141098134504074717021924546312407400254543264518878182443851436059900093477937923074934591463596174917548688137982112860658773676732043038573447409439730467783550015557736691985389456914549640219875478792520095609748490094217734112576967171436976982211257937758547004836786619797506988204752299025269628281469818426969105381346426012792573389975220182989662877668843632565970187125276948995977401332076214848556066711527060052670189286185424663829683125618609157165722844227768568747285622363886578188947200771604692336484966921810177388164179306525161802264276697573994555851676156228409494243616950244228864817146265214757797787728341078609555020194864787464946195848699132141109000677565673018682132497395889728629481158458101866092045339715380897781013359044937248497599748246289865744256472236651797501362395522152677240444215180108223057324575524026780303343383734643455611640592329743465861491327088638374687171061849253242946754628563752998412736573424408518614137402708582264637052833182775777686543835498425248648885006143853587172451343261357529936439798585792125537753039889359868451785788111927571333049296116792890112531953595454092252126762185252820072262681587463917652048186616131300634531139811552879375563290798531200708182322514507968789690798158996970620679791163972000653896697279646072736090843430389102534600730932828116872185502818603288861041389165724119198081693845477409901567900098590351420171834348255916004088494535386589338406471910864479741029625895445046054901297387842507616029527386239329029031921050152948753368940898933133217831032790151895752892782907578788068861744613557504734150973574869975140021866123319721735056487314356126078974621334529802182011593978777042052635936029242388124564700530114839910880372879847330746611642537129374150327503158228449042168091722186924726584081355352811938678218361991677265300592557702563458648878158767494449297074491190744736135189351929397025681341774508773447557339735136468019088521890631784953769779465006126149662210228175283423228812073297725038578513108384099557873952343798574945044947670171417851162085743732172322728153045240808031420663685699583547658353773415096337145568189615521960200178380700550563564190776862713045607880747107519824536633029682354760097802863876833550143063005146831209499683549168813559109725750144189159072849894398703513904905566689911369165983150440054752282572135653754781310430115904510103072354413838513716847399580253198988364086864384571322188684362789065349927781134259619403140740785844394132611416323303802629454904007920275333891804102396191817027744246447491252391761982191757489115812508247781056468349363590538314077604923036457625307897438014639047428638640753861728523696615880905670866054949891131968122587063501804602731017179663259593763797441751347108526762271096063111013573685027840523600305417662541588939124243255914453608668075858270837504293746768958323916126738584743574179990404453591990746328284641189020251679532808843109809690190498598742991652747479867733038717784330062393847616523974389490125227996605148670095274534699942078857867137543861055896733875442736538935790396632037622118517303388989433595902465850433904542469298519890970228194717493568248971781694004151353014145204274289887590837048036692961879292324734943617560858784642825077596221111399353447773124529620355427070596359513991077487452108326936508441036229730027170117549812568641008857676011084408672877960744401468039069427681611236697609163144115547144740155884174423585616610212244706342846853433587385214239910664252917256814214545586230296585512259090060465447556624233806460148510606635526975800469828928451888932135745235001677326883460597483243558969945557372976181372695128658409571079169706762842005382144509886051424039484770018484344268437605941580225963435134363998505865965869832895405118167590720233494865471787735028276502885510116508308559625981481766121980488374637361942130882170703107497685300577309940918262299479698065323764738860873469368575624391966270129563141463102943409260183829769512595037987270697066260924808657065905689217889466441752540446575600712048461080537375699364353853808586149684062963468583514871205317423116673371266891340352136799242167340542683053891634550134262209621450544661599475930554606085426969001758225827947960134825604201232400296478852528782132206030357792451921223101365634109447715204389258070654743735489359415814503321022881544178276386022275529164106179194121319797018369877923917024753440668267207893207404764513753519799779450900479439983098225868790443613468278241963846077876432803330610158707535139479351432928160120723087505064492790515268044690824640616175052791625961997260590107421772797758051831672627805653150387745938311124738715872270465721864281406971513705085466699044339088544029538396805723649802933649881856427646644130265081437674042399220068688587843340258640533360495497023964657095753709724529178539324677622285492479224879713445023946897020031074569695763648977154331978804927250880400652525510575036247946274027786537474034585462381452570126386172614088256240559493279096592678171660080010707179494252255634705503345120720005513808678236771009332719510295599242814124543331110899118721412060713777776091924878900050538868916355122536105267640495159170802469281191831911421044010442212875234897917959914092635861297817002684017188026792074450077457639397206200665109563034391331586220714337251614105289591030381612088729174417660630933414403034219433169583395109603471960686091870727179643174829581123639388533215830577890912749104895425030340338899297800317711385373457862764673038645484782686358871665947991766140492281882367878194665088108252401733308485343076537293774605272302042309362049844549060347718270918371738844447856051961004379074922285626940168735925062314314952468633375719933894848094776233424148509086450750749282805127199733041929460684003118737275057311606608041284490828146676092018335943094989436459336911116592544395809332212645609404013472432970673197756693888951178572986768922024306720057084533925302289193443423615753780158252233532090506454592606229843061704777637808944232368653364732031618363439784286964782495005189066214139024926060744181546412645956272192752464835280845911705343566975044548592827742307551772962199102812731496731632453523587953443347383802076944300904557277042514812151349070010453134546954562204490017194537941815913559794811936154554749544314058989685636897544795924658271874660025680349263328550673922174621833391573563482770430367723563167617517708375814865830499561985107060839989900375734910077272532061180176510230168353987382446107923590655351842264354119919023130051650509800905817758957116620135086143563040534373098776946464379637859039713567411804973687514459120465023056077541837183991022871444758737900066633076036766790984925457409905057009306232643158629139498460251124725377351540328768625312348405789076139771052172067337910859154183987076829955827642553276573430922655902756644096994093262330472529440538791010146055617309444880167537647840625981116391839096833572944211574316122443418278580134462533538703092686437517590389015644473062026699984795413946641878583798931313891804651919399649659827731794962280327067074891360549474810670024421306608189839021649742253410895405551540378291575998069654113726176909982611880885998792469595188557392528496805390114230823348532656805759125081177871651252147012734370893181503572510169036800130945779300811570396989928088015117280445966561587696809804071093333168987102112906368504247902614102535492911947612860074460183822295244845818006644950495511467499054397722246066449727064168515026547554215984162679531064864826553374776444953109659324229668538419748171915981521874669723711148681518656276799913025513065080255272218912036536888636672001472366596289425346450806618792092875978748023402975135404166692898993692453180003655066194350759768638015438752947752599192973496946708778130380738664093361068742880583205071511072153026844494164895144087418713150701438162616720560824767214784225830530053555641851302273940431578780562163881956953464039914157007462758298079528369740659144622339079359490611692167824845646712804373015762232081036309729410779093112754757780610195977336619155055376092191619127450101708739805695059642363564269825029627385921110539693407387602679076789180701533845751232390992816825571790413677927508140720660617717777721166842605172117609001712538783094972378905585698074707477360998765753682028058235369176914689821398501974047998446203943514331049197798189688201179479762886583579484220076163684913163424763318459159684340011745220328005462438718712016545165744864538030646431939556987729537764187361132889197305046226162018023706339683830733055843232084248654477167538690508560008240904371128563949543151624423022913070992428516219438953720619425534070221784345475466089438639034865670068748548776637131689307453989490271436234065345509799073785701311645579644595386094953841295475654350934099862002304290736237957189675545126162276089707305065966779705163879289084782975586516813552807770468877038476538252634807830190266856696968263346683778315875992243480562590464508930624928989371593085891178080410877311154103192644486388260751572631359464226497622213650716738206077777286516206339150799458584284308665195587084211722531573385968820864894550604230552973253586242049708229209442589425906369408446231067452593386745942925487686368525467704453279024788581286748656754309841076467398685966415296821575194161493493372725738484257032158478648789498193079547655609381906748087174833304765710105454118232215702784153789442014250042771693334618324015499818757518300401047945550121002291254113387159407456650748347175738998790698314617839807033456174501029095366504682270466834577130069403199830016788500276098664987771301806704295986380297759902974538696361065688942758327921451733259841528450557673287766406752194677990940815404180664579139348294156237078001834397942190322438780622302424415446537105951299185664777624840959241572986151119320277704555817061543476036065977668469448903270272924340056286482054026422334502623676679832764761859624161810422996900667048645192087487240728615539043748525898400975720259054393741223100462760936013308943233298876657643161161015544870243218915359884277226054653866593093019995728302043011114742950582558519576454930498473380925935253594784808137053365469403447006712551953067173031876827234505857418217914136200255218023370181935391445310518143127914926797667875629081356736780428732435682530610390285100529223440608635571381592082728635305395312817234023943123719902777558307693946625526321554019807709808843345385616197147444396639877195904892259750836574082620618837086740956345137445087588108988725814923014624767146342930120663991423926355070421264897965917837463459544752553751512891588616444775622520323593106253369883962518498183454360327754308203777213879544073527763086947047427988250395895705385819451031689922672497295223599138513289726185788445638471606566455418051070292648418800646255557681760023972481509852582601545173653146392850245162785099799347841047870221924248783862885859668992204189353880057361238726491318138077268744333383509891902672193891628816584580163174421665501464429316204624965393428836697903262859041049233036583601228176187206277941239975009735628227858296752546285676719384985403567015803733052666789310675741409256724089686555243436661415411700261967909998227607965295328388028426416594663932412360371417917091829558005517577817766848189088410955906158738430253139922227906954073754486574302918874954110084981244179965739115510933635639079821259869523865350507585835518936951497589214081846456437579923223049116496389574863113582953631492183330360651838328479984225779241911624101557345193912138067340230245201202659518735648314757874066283785126931859683430314574101129201244396076283649960683688582960592574553898273713955017299498568935499635092892973652963055053843029147038500678461127580437202258291487728328399625630247627545124882256415061189842164208270714324413325747304121553697639433843736958615254888970619396174566377152947066323674317126133181009258593219801339541503686205328087588546370820717025041857991402891471037789468272895836774371043315212366496249600645267306467969916364459755752267245923714295215676162905860306337902297921799786302207046746296875521068309950103095568326723998077308728249556226487868923744387857524441259950565528976273736706766941972673144373346530538998753259709729976973649770578441313847268930537749171809568868748140148083386026036952583728023454012574198663346733548271956904228080759333450781833640088117842255598799774302595027983534425645893130637016618329825907639811457058954290577807336233470580815605905018185161919326101363211032617813915430535609956394941512907957521194880512274161265271815067276223610834553748503378038160952348396003803298598357523869922607073899920059877317938196577531383720419618067594087916282631579087309172696651223748593613494294716011981155697523843587390397211583733865412726226119347157830013313103517015956469034189142102880312470058829024447468179613954771907643134461650745649896878568685842658883021155455067083721788260840583471514062146913023980517740548160322661623187531495408538598578320038349558561273090720438390045760861293876453141130584094233636427947677329820574093939187293314706777225220686716127530117207795298097226112897809079623875676207336750017994879412324738101330975061376824908889496851905353868019070091874170736624918871232749827740171389509128142058553363520230449391970494133051641807647081460640742646317829551400923591012150765018509373979221139387713437021212673799877233691140613743052732962192491086372222133727360564680716448692005538925072420248486920088679554952476243609240079399787928915041822664994468477056597374139652266410948965796784714525305168655869917589663052936619502528285290571839872057178817133090951649306587256112914498186605828426460429226242915362435372917150634697078635579126067724483378601398034571173749010545824227613198299847093604779061649979585995032119503574693862647616759304856106994127529499120262689457708749564476031318824363034761913647288423131020256943875294599054529900817965424174214880161183115699349716303515256113341997039459629301446250555685562077707095839667272634740803530555069340032387385460021446356021376413947198554870766438902527771596793793058262830337367303136525765907314314318264236290145907457825882574910890832636088632498974901340120126379865163276232404498263820485051475276615333672603532860422664087611672398830159906482996958247239575087618938433081823792833614592799999374057590991414249684646693171612928210513911441584235799940545712211824367530361808382643465814997453888681845874515988262474141871187343953057358601714115660235245635299952342815440824594573363426567096974244184288289996847082817053465994796626940731176929128990067892797688112333366623684918874198534627459062488177019840328169782302073011081191731272552372102753564296394353754230066780186958345124826091735018174193083495761816358339334933403776587368478798785137072959698226869701540643915796949016836702667015235416672528360220328413437907524780793170781916390283565408867808150677501327756779925228702762508148150788084496521301136843974977320012255614885906778717337970315227001627361105806183711706657649022161806520538415132372981893692290787528818065360173784683639465369601682626589127562889039196505242623336899580040661563944688308393006590689755209358670481600416133339400740114698201265842415648866072382733184044508009168795657610304398837793805567109309115353713162846208597623696837909728492683233456088652685421870026649306876612412035393534917586216201409906135999655528845089751474800959914220383669286139112676714394200051168402982294875614639363682866925432944425585076202833924986576096857336601618219640107169238543053264233385455502895120698145823292274702768580906749414246430409954487308588450045670695484389116444809318877803989093755777654228888523701135333753079076168871706574553748805908708096458705361789100948908405371220671089186559638450161715798543349787761068547372343769745537176931434884773757417142192793855962333260281230796295169425625698337108890875533229161596030758359427824576098301166032499739291202689613466168120526654757879454565709772108069590885890342059655802050121857021689720245903328661502061347430719998331689457150537291570997477891556501205724583061433400533454828933822075789086156930576975397991069623965083943521300413642534230095841903253913486390268151656455558771611368188802689110248317550507658940543627847965707334901245310037953713137872234224093707280355749111026769515598266626267520170808053433147301864801723184731921788122313952255927024651195441201814408457717251814596529626350927613015020491867737390431120790250330574602900875872768099033011837304051258947992086350395571436262887473849785143678849847710977178259938409524688709407729599993192151722268091580857431403832218063702047067703484301865724175416437627262859537230723224213380940141171930744922929505217419940743900147538595400107276670091101931683055613798886395550312818550700613832210804769571018177336673379776813499593378419105113690234697136020217099596878507476507464655038214285169584680742587484869489561592395527133205221171597180003664770096021993267842752683652837574422239425731186190108668215786328626902252122918269725433213334343069441844793068422310513236243989978867747209964643928962720082116610005133559698031213795275017707903974440234903875752103310609861202558231036726584110361903092282935864341370038571691751538981665742749062423412283612364394521915134642448738700781055235056718304275902198082559473452137753566911134242414890581048240923998345789583489404830899593305425785035344222023506828858998353790866898858599861184076042095434727066668296437464726170647838122631265915712515484847181766040573443776172139505232657670148282521094655338292097441749889215365441993334437768743369693231965846298729628671029088157782976643267801122046275996815351160028420275739610385292648588616171084181946333401396581601662086201199996021712168287175029057347062734292193587396479261792255520263692378079800894893342135260788075233186844426575077827095795290374044442725256654112390958785668504073884931622961324196887788462533005555556373523526047018522809101935921810192007097801949763153302438270904064513911015639622909518229165798149569736454790559619557117011382535348957497631723779180547602605158718888657099055737314309715450296953218899489670197458965216175861792085399617570641410970536296655039866510881388286562344907604342650373085339346261068870470211589500761388974979416955959841356090800577697066815011473102811704094639722556995070372397017796664824149358057970075824155851584201145039937843930977308435878547984742979245838408448883010055469886101315825018301785926987407660856238921304804193106845506322719367747943717314324738327285561240418877256576945171132347542982149946641806985777587673117831014758578598710854447210689646628590967843901371057822660052743223358397096905053788376204810085817608149769976438561825500273064292551325596371440100243475378766688673098459729029138066536750140918121902400702746670302845658411707463393048238287842741549772353573496221744646168545556163909468354873882852939081013958472906170964096264820612049238845139603510820412789843651729048063204302452121811910212645028836621465940001794055071408890696615939805995770354890507067217079046181163715299600479913396110588908551918256051331624986138416972978443517124513288038657780475056222061473889942919175719295997540151811233361916639239312968155706644718778059776947428981576318435697286397647874253186154525753027711378695648024910788832391610102716041279739747838753173127420577646083995066028155172106605762113981255596543461357245926109302369685286304226980297275489756714828039742169509234411126393883585536805901692414199271307636152300134304280466652450552144281121257286505260133616333694746976207523912612833435635069425123301950448047639769226590477294055269122372889418967036359013349802946684451131458940342856415668936157239908133851097714737646769252813625401094783155057058427147503243608621071740197014902514719104466490221997960585202930811201264132322372543620099484277376635761184101095735769970383092491073585252273181033829662198029197509176899194960168721430852891281942892290986105610179600231328282863941855397891992286841085661858551787699574360286931012070827535563711747333641945901620434726057804449309907153541100064846884272639435465507586166557680596901207317616059206415588539948090888934729003142258883306780381377106918759961343314910655283110426319486465083094579004672200836619480044048318237014342328126774867024753711751993215684535901544098033465345765570698329018920409247756664670063465483581041110564250312836730456934382769327396687348692385250037025997965328371264695420876602569153717266707973198580864945849234619313892575906293286630460985335416412547741158498371077261491140388809011000251459240458097045654980793697736867999859427930218518726300906218895721304816800995562115385492853107841119813346960341588795088697485289564368435982390451742587203968346909860693550491516528831560634450076185935751931405312572027315951269637346442358004961836462120155573155545227931515037381081668244783635049210813714266573654360922136917763510312759577345600476212657641583624356347197882432285525819402243913291475353018725358686178483306672611634088603361000377554911726439540521372270151183086573479381053553562658090778235879818558771191404989991460974551121469574612296006647162206574902835264352565111252040022739069365382057842877222383939971970295223201582538873904171150895677762591706054796929391159782746197329456458724263311087770774320348597277954919392093991179023163671231186920483929422275184238240973651729645972100596537444264093887451566687961387548315903806014140188692103853634741488720443439828639364642118366254783967535543901814179424731454183213647536421122198702463856682692080283720082270422112957371334530394518942756235879271509151434644915256104062806914702331607937759103536148884432338703346720142721178963817543044757701302835405089443064511261425812425454870733657376880180287994725909875697994083321236494195454920100799064714553686790004254107002082732677355545268937818838995404247786249206619617251536602296016588646914420559203530099025840347253993187900492851406922007338490715136594719107479867410738230542798189072504319513866590158390198011148795394062640818921697855420727851181132569539263024963466236733734653224128092998549687518336787156547796823004488084697327818309496353727904274755822294234449206231723271999102712805941058140094481892610240285458015396405454399292471183089498527518283687379907952969010513095910654085491407019280794873191716501150707549639191490778028416130129760046731076100768864088657121712126725959295464547706522543286675411603886567000988387756844393590394978585721615857075620978175566003813031744973262232913650711056985047943434642391344005313287007931964001017752674613330129560545636459350505261600391982302740933002451668317064666911723463448026550590807431350624796874541974440571957002277012035962436630536960301334507880021354097376170877540521261708737056373527163086215786323387716992511847706802508486665192825212271086477174645351247119220166285050864605892062806191129470424277672049043047513229197338011037197940212292873705918681077374652267350223458702400310366927133258650046900622209197192797171753754550552801629669870292346285549501028630966549144544627897014146573789608579673880186691448739178878583822733376530987875047283444461686291932134794118099966681080157014486387333744190321148118470067553276118277627648828167530466116708967035402184220741802782269654240462215277155343379708237892165957841729573050966994819128218257951971444597743179277609538353504652249080470866689322060380385212669091265170996224129162616268068797146269428250545210071250548106784430993991389217407134949460601516298638836801985576114831367534739702605758073667301832273393379481435548385620891917821907006621228207467181335444648177764371156389608652651092632336699857349276583062812633836031237046674432976740862804901623515822160089363553159196170911715074605933163916086018650703233519593020510681490369628124082810083892954942197951101960779294518465757365461077277010421210456852572363846689519647664189736516772675967426018994704891193364559168206178171505131747552054890266689155049808130323639656109389555655609034055762842492374307409229488628478653221841325897252861275422831116434343730505120954236068244674646669856682124226622860694950349503247866336519602225887762192879962469614136391773726176529116597757170629857748066590793164556666620440663934803207741902775030642776116533037711279417745984142151627994487482522207262233737984083431703385379679827354592788299720155753682616617870889649811342137717649594453345364772275367106853940815918080452152311250547489234203078060837706722118688231642950299533010335817077446382742057136979536418354368952324135840101504143673488788277034656912775450194952789052585058570355613793192709446985430170009577615957825600467672358709481144401988856099718420329081782900504384462288034609594133872422178679277161973822287603825216066412372369699924386388114180658580143404791927867505022385323984378351571622871835128720166276288545124710198160674188318531549371308052420751225779736335597512719531782070349369870280788281854104875896582514870769561120180371369593467680796789765920835377880270923296640237728518397307507364983664947047883555607975947063262183469384174566356737872374288494026226875417160497995282920166819369585050915752078651093263320248720344432418658354091260073060797439977465699011833865759631147879352556895444747978738135033615659956944750521594755143863176449228730003329376540793412341101032015843208745434701087466699191313174042054085425204249740001041965765185088179439675239301815883728573858097003875852284981803468858909229160132552314947967726628886990015407785665584262329080283320635929491292551812687978359173908666133891142802136747834686454763921145101149925348001682616131039424138911913334859336029005488005289115076674700560974576193814446321617795303540483179104366557111366319901618371796422232353055719127940128588025448987144638064823935498265656077992903089042247464657549611666922218956350314900225352477993589301983930894841143807503417349565144161614887888554533473939788309160376961410767975743990719232400802470152502115073552532848882783119665520000899320787003914857612469012961903832378111059514003091416464218068034450829185941199811976112484062182261510624372294273239822554166464005110669549842673389457276498342288845985460819449628259667666531760550631325718984159121516731124410733380374545783556960430917620480168947280922436040501222539098772351457195519791071237002984843228478307031038813327116546509689309985596686621305494768425014100101515733943790381235125291778776191145059046981280354056170380305097706398987719653633412863747045676306493357188838658302331139367432897410144111610676911981441134403491248778765319155879523258702831155264948689465281433893498867358395378345913678816373016881631407100866808885894940155590192027859168459668769381850681717594359272109684074582198078142444524183349039737685309262658247128863224307865624232876673204106086276121646676761242677028061840044897173547099563393310405068246191312037057632243325599086680632445441329946679885473267085147099757534241571741563343102734648516507128927617973501155884580552986343210701549371496212194958820430708932986637475571810678503594635967516316055264097728657561981596208280715001131897831099181060871089314345255736609279808361007496995138737243529996664439929028939971768092062164769345059266562835525967608007269028670648645133218167466892273276783160704751786437831502326795049538906707721521272348437461619465369810746650212432793443555687999574483849143688945267620852199939517418558023196464505140881758356236062621316056996357254888862441718102787067670017943896712217284497321048249309664356291028300663628628523561916203408749881555648166531356726533878631539760371526702349937360884268511728273193750113071043435131472775512708563484055882251806284479613738827248317854656936130734140293419274795176985215437710084235000277854244832181383319404773963302218632033264201484147524943427546154389136762542423674329473262026153614643049505281561209435453314535260305278532274179652949685702845391242541509536924866623365350384994362017300663373038073039416064224017743059455523639891529519628716643329189947403686666894101347651258516099702084216048388742396834721816079237352514499982968483570702335945204170580698854517419811330246159280271213561420295285357805489211034800802964832054317826737573668141973301375869748879703529268921003934380023980612901221000202467600622809270648261984189790761563853046118586502369766450115825128554785104292265435560167459482734848471265675320923416442077428238325212461502064934320947596303238335878538153490021738913747190270220320054026404985541574792331596366588292084972615268591418633678974453228035973173650952680004232033490619708505766351777692122899354039498881754828469337945101220120405124460131970113904037926017778672286257326355522118121706435200925317100404054663183307402735349284758235303680353678166156647075367366536306460912679550204753729488224681581788898295141853711262391160833845260700735550230129233612555374521174163114825906936814132566138260682483498535518720099757451447232073867500946133345312889218358384218501607508097894978520272131411992781172221366215156158419964809755955958260422175588701517122391030989209621637428764117794712041594451221895628897586719148325488252709900535063848077982422322694806052123043458644991465808006485246709345111197106154994819356999546413184115046577254536200318606720620339876335707742168363347903403055880103875828058329441171143282819785292538661394124940702459588502443207278323544716724764353612858128402020982487394651976307773094622683370489185696927656256435369022262175474961582321342485855294798798722402184420664122274439276652501647005342856106183306530085794288055589514963493818679581151272081296192440379391463186661013367406054195830894435106604982271926224113939002570864583124901283486166541745788950153268587693014388282085199908221797891802994093156378368797113936093026754196862969004536729142432622433341789526561669325636003421272701921362158198792875270555879040445716271973428332611817694046324560782776681341816313801665811755555164402173078079779471615982090049876404254557241678530165787953168742516457954975242046039691264361678999974665979230504862289805457866594972555372934853911208647820101726184974667173788899696332889961813661368602425683235011476129202870478370323595201554542755162815253617221809848634245856710798107655980735098563394124809960329508988509117007791548028839127362284961127111894841261465219763585595972561581094690210732751807418425075434719970826475145170064733013205380520145337906509309440695981275679010337064936222053770511633842139939430711567947751673325375577081050389421221382846083751769682807892749632566490074453018437216446010523273170692408338340372368650687955848502511514896096410041276574595264660932597207671269290253422832386735505406522484828396725378098167741043247415496804202227848092849735360239244493056066222664073958556732447600392247888041903690352706002997034748297513160786609632399454008644537243077068183662813362997912424829408352059531199889092354584909118842187596099778977315336786710639926306309024247985681696548247050376308511537767920519962742940645395806827612266698023335108117449220582566015745624770741697236685094015075168060667409580570223968634351841514240406951479183519524657245136162954724322223173268272752055273765466502852938966726601153829530676650128315572979606061790321364145513453105256236777254866400071364340664092605083441972028409675854393342881074418574725000175965802396695571132857679694162751094216367770136750834534412226305707622249451780300085278902867571108838441884325015881131009106236388693448908072621662638341717499491409802806121385980947233344850677708647123717787972927605846160626262481487495791008805069983889079653968975181860810732410086265693874221347532214100358243608038615405088926914126350417689212789610123885670790250270361281477217002762875950984626342365185783641137018661329888776041618238571855596530544458229302588957478375884242719269955544749205103127519046119774216422573096307179541921272084197466000039674696348122016080669873566083521343806108181631421429699602336337370706564775796282016740322690392067192841617003308772911207760931129048733854018874031249979471024652614681990841803589694286833574360117776818301440554323939244910343287797196319744777562447876662030712767573405186343346230435477233579142271048356363694914313274602707029722325470793612920328536475631592818691194842811266147203404780079861083535995352248206672501568366644561522159082320588855198292591018448982937498147772059566290569641430318195111301886901665210847390187175477299147739943453452818157882067766445342397903017540913039123138546343534521139595728323479470073323546211823854481466839580894946963773836801389343866965457289171733421083613921564002009670879302697768349795692914929932431068183340555642847276049064101663690870522319717597812279642978049588899107525326839133541807868802968869360909526791352307027979475115489320801993225927740021697223911779013900384220270138940108916413985839580435121482527986991097775365201156343283670470391932184713131440893186845070188122548391824898387520457384940609243304048482581771652471824181000044524546767765289826267642630996991683621512583919002240422939436213750689638717063311319041517435874167747843882891270283827555681920130370740602029234920900714443281806289270599666442377483961758443815203086253912266492082377117389820860879210655860737337605271357768506220399865675352360172787104387619849467676444213702998342098731153885607735465314227116073749314299592275813050480111597326102236827369709149099842592908549719725499107994550475846432444665205694326894348652278040371826527258602983416984011582531892132347337347324610010056558154816841375384705023290596355346152887466334266993520818776705204188638221781390132097927463134347841453327756959546825168904096540485258360078828191547461125161871959076576793815291984557820438911470919701650899539283387461875282021138034009775745065695516233454371156320911250720192355825719639292867918069915175653929899066238011371217367002435529218352435776407142999839488991587691842130137631182235931394064342707838277741801198824474627651444338380350185121521510280315920772982064930522049833143386466648209572038108871792058492525635467684956651103555789473372954869645432346655843608972431662296633714369614693790332517489764983656087168602668259442958229840601220512248235577649718616050485591244526441149325818201870524854508280349065494751425101782346321296764467119910845043240608017763170520159108646989492853431437924750346056128096641881878976799533603782921815616723816355479214587519194111538262661877835009779454180886924859016527881129720106252743780199106742724724016841967697070958174371817956922914078654909033873712430285266825248537550737249094266577121495426196385279754209976115620351422151530877680367690318760113801679409906379868424080877169760773742521862385702561856822836596108703230678521993797187283148665778653541495198526241469364549640269666036372664878273612529693556868235846887089222322387536596979486175136969088862427256202825009412250458097269299134963799964990692820835415912558835614053201897231352223508023501341290903947457763939838742192662310894411384964179396625125342520396430064591616922702171713968245744742455081743327100189553501074029786426380709383461065756028964190630134385433899938942887009984847795623602736621341562159128943874730907901075114595932837940338362174060506795302169989020704909969498608074933985530654316968146416827475952718171094332801020679482373613826930408141195310156258437142101643823464683542392261439758522684791646721012552133980943357513012900464367857976503555596605653003388919015752326212097477290529229489592337582680676881930326219129415672087508728824638750950043547395357800961850025104850289382572184574300389083609853168991309007623060598673344942322704611482559565903036020554368274296173826007877877190577006239333734853248634940153252935263834060674296110530305018047805447862775136014453423710619063706245088249944999946268360651926387149681316874844720398638326282769440391687769121175228591703936380865378047315929693160405121506636134205656285577791551822194770213764696702328622716921700358133702993665056605695097966547349322201618214098506231987112879329188314855391680837675314017832946879894277683603918559935561679076967900773986930759088233974536439371784260422903947520217410292834917560098382621037046984466480221698661176386073584391012211246665076854648971188341733932828568998438640808776712765855247419378887827887222065717426433116793066655386685966099522676621057308794081797769136675440015253665744606208301674280095800806117917195220731751154674937402699184010810458794141069555886984667330243112412422147192223086621278249607479295527868980581170176689934010904894958921490015736764121089701879073257160804331419462482355044771763288338613728489711655834301836510347202931652423504678381716781022546411963491524195520937725666821071459445866992773985412358882041849312497149021463339817996939952308334401061938606204186725118047020263726262446490060187665739794010901129431263344901526164901003711374274175653759264751450919005504436420511240949599660481618158472128722501112270595051627075406118175347603821969952426589401853141679253398384172693627048630578058712818758732754654429318465012484204392453662897771364637033398394890352194210019739965816026353289490189919191201835118189060571277552168285356944601455925388143872854047576028858626762203030778072594710184246326287122642719398133863044201308005373803297753181328115112549878879864701798732408649453739218916042883072489866113622368195782521425946722802993421831069938127317327963177302480208538212375993770258764974481680571421345892560809234813111382116192341726034498166553089010334668272441021823494411329413071667756957026461779714029401051629093623898098394446322868909545245655534439619186584018807763144282197334868452337831410464129038226725191438460429072276608390178231160679989613085876234062798011039094889904984944416320620738986050872221826082963513465171352523779502971550830271131534393758707508629918291087641427791406763415788916348753377566637039540011627874619419693538573788355277356452035206299813140782669490918415281795908416085955412282239395611776837078317406471640546600131396435817092713008625500606312004936350747226135249707990028698278759125639821693249619249018089184412329258800117556433891382654896600339068550818421035666276204421587072820865232987946330583367610424318791191170227141353283240116579022970317853584894196678887831186509983720793038655159855208851196201140228654043958084958764838271106376600560110947168749936468110972887749980432782794658522663913155077344926637928321099791734093268321058506352507892911521953851526826416715564444604840691323419778592694793199020304431772260543289871534939924177874911809902425408930689458698381547566647432944737305331281014563527252617649080098883841874440917582672419600319580749980524159358260087128756093104106100570164024044070881685856176298671721792220539560299476555272080134295342079624668892608779179940508040438301913537270610711410209776195899936602510779396570299220512036882918271634009558476470083910577847705764375419384013516719569515041428899463684259737233276593714940290426614969311760719087306592465684246140300332495412153750101212069053950197760447477438531935626910065601645950019481008347305282885792558066131289053009125089483041842147864209774265368723891344406494603557653070493784671500146250637846073535526593380674313308029455954738127736379792964773978462700244351515652802367078217786538469005670027144952168598603199509973636338780760022143386534431322208902870086396156965916157814837908111934899636962405675010486075860989823613572895060393151705230525691141009714417624507305082698029828645193508481704620062510146696210748857306066728045411786618793628929121443959321557235212062253926836879350935274720417294069464447370387757998531319335943766266365811071125860057862314659259687300875938727215883331646988183763070788688670851293005093942657835133767589875364321167917350854905504191609813055727052877660905211639690174806824477493059592554657313634205958236855336411678653341744447158762107232803355458034900521692906445238837145851017201651645670461133234272195437186274400828813025869401402175507790967555353442222684029262921827948962851492495639364621882549922620403640085634137209988911156970960951727202044443746534198867500381593019262367087582938965667511618529381206703057377930905209562003285314553374149807576099662637889290865969677697475322301189879908650062310107653665248056837836217162476633304687750686977045027244523609381549898382233287592684859559038997659567503379939311245583321322951842923915771811617407634700815312657887501041856257302461713155530467689993494313220349981609791481657771248647092512821648239242528316303361239039688510815174908012523236906427448807395176278262978110413967630345732932302750882113941034290385563385091987697272450905647229402062482174180186560039546013828634760907384809490912962816547184292830325569708330527027374037719504310456056474562175922500564198001970587584470975823581388054632532185217821356842360331776380854344558578276632525998214400709108019503597160199008225525946140002309376058723064664169474599524764702451759067464050689018926761196074270442674449192213082486296229491321875898890342632423089718186179009613994553908812426690001377923473847791176176773002482490619962166146650227029386192435946149891922168612496789516883881969054301832236177251056973966585722366834953167082837928366955880332460451024316743637482682316464554191344356152707374871082077249126054038448885828978411702064913673221227708030539267839060257657072014512789440184250043603751453596404419332008721503578676279046972571558607517898331137617213482158294637493921916389073553539717184887640333975572632875838176890212748045261372352283385601173045187366106039955687852751640621408828784992502825146263902207343770069892261766874605411816351859584892772155956786792703127372173301629815921294164946021114588904911603997716989530090439451298787238569984726053790537854688401260965237189839130823727861318325626527362155469010592140092959384316101696214415789450785011773418668501568392086772816711779817098057500897749262967010339547655368404377558109703106148670318087704412062581570084902887770932398697216695660590486806009038656244648386538244638573344250959041270905025037634866429054387482763776721609526801608564666613521845551595103800863844361620732522656948299826502013136976825180526208476588095738738003203414434509422137356588623823537491560694646957985711158580608012379277897807114464854942319809578385973019690429929187518089384535080308098488729979399890437656722772079891785081250415153301608092548941792293715919423033514114568184676705980069582524296874799204441607112753207342348156047064915198860526226167170308502181341752715973693531905246415336960980244878248554696399388353193955195918012751455803525117179995186880322949100918295242813156873363719905205026868852316871057301248864115367459284836276872423420448210007407196056007095298454575136712388956522176322631898265267093542160555873007402144920007164978532938786438905585004485000506498516997913374012813327656287425311827450431011189667834969909593595125462247541060141973162319317308129165001322299773687389956721444162701011261073836349359356990671410739084667980325402938099042185486727209204424718204579535734273526095645843441356638578415333258225557466259476985505168163461915682266613922835141897235199605926762398078999159716246432639060926569730687000496688930204496825692438563162221387358347987506568084587351035399266225178316200110455416400242040511614658780442950613851055955542478768750306030000541654711795943141209388614173885774592455382207822432447262318034474309892294357199214073926625161159899045927584240100831636423193290629881067165468034513207963301539878860238410326424160861835316164382856912372893039919049328077301244373518029598213591121233321879356714787290909544547675076092035576102443424353280583664418701501955886935113527312080214280667754048226859559321982196748812948417221126295266016818411535869391143777618656684515806959083174871705404103571804226318043110968948072723513874619044264000149530952137189909556558161123233926365353882245441752183600355319174096970088913308633723267466428107048782345365812836275633575001853751040159545166981785830916216934938639527838975609622599264952796419176334844632695963514240196710846644067531155101763428596550429648777554587621612473618185001808187080581566738432751683072181155795121551102776149364973530179612827198604542952541409078730653214403181897896408475569706162814072487713502498682064555065302353212504867026786948507853739127405565528413482966336670129479624701818503524164506598080696667687535452038093665760162090177002089682929409890130085920174729092555434645233192021548802711677811681944337200946801758768398588569014297440707947116296755919573920854683876009793673085480791752043020781486708442060912121923144197635620861971280161462428411539129076751558009436737431986884847638830165127461046914456254810785712848301254076222209215058986498123033365233948811037569886052109989085068112965884322300681032436606361336414281737404225192094482577913546004207404680086215668049288155661906339685098187544859562508763167970996723438893782472642496147337902244092866093239470888201233516669767528669932513081204457471499815109705990551545685336732134273879932054469675663524379322491025446806176358050343706566553202549325806525787745905097066953955692022625752807318821296352385596018601352539400451505594261213819474533387813072489659231711603242742121397238627248548952330343567199403847220413771321697712465332693342419261196714899831548837213469438188761912787522921149943702999229909882167837836919040610698166227392513948983799307712425807076020579489594693472945730811817464411441208312310151685960011346725700701450722898939331741421248011742924666561552658732076785949023635287783176461940187554819891294277636755585447768416231748842958364669194124153603355246849895929104097515959120089761790659562201450078423607886297107059463158121427084486871426823137702093046166346112492500486856591006847887562163279341255741324043246532819546273205866775964592513846676525622214234123783513522909919093267770654230505497085826888326478372927136685504867884249321102291224667690513258465773481369102911327444367379494413304293379113644738113444046155881185729733719191643742400215016459290262074041894097614385717338098182302202659076776260305270960328952602064746733987033079702930027277077343477062309267818749158604549552101386479569361509296276799437769933652438081522505505740138311451885462570603178054390051525834596687835076946983877354838083343459770698097262577284333472319044923609523942660837846867811464317318834545847902803222641250754381353929519835416650038339544039466084756514096627746167760592575758776045846685639421026709703518239715897889568782976405428755826977942768435894304886567044547411405594600482578253721236530546501488922876261505717988128711018440261022901407079519785218706315035281232589359044680734874910359888052969050432256238215803775746761437626301738824108291527087820542202464567400857378916311074400804933078462941251813275589012070108206620455211579842442453849433618830007527790206280617986553250575194411142961368439145099921662791458808648167375975252352078531931896225553889831609414278732751018358475992025736024150816419730312066759193997024942946680303535994825893689976560322952592320982739584893451521940233697540320753400749002589850685859876152422679707241086401751077385474815278526966955386514898107674585852542156162986108126485815232444732207133103955108935756795473675754218040149845991825686520393046631783599721011001866211170004752605980522463687921309996370563419253064122842479877078513321059102254043380936103817175397353014155791423973631228896694672476074498075651413974561466354331579624744495399068364888054697368851625280817049759013551997987891402831463908920660251929504026636606746408010853273403845734871642146474225205739177279506347014521999776675323885999272146177056710302120739577045106754812257513217990439616472648008637609789331303742810492100820934486159134370534458251485107802593458134005932841454321873965726026058994900318237695998583493161088625222695244142032859344538736614229514822735321158692464475416740524240542494576469095811182160692890996810387217391005636121853666807856209933616048387515870770495716962732979343541833082713280229128491861032998376160807592044056607299657721736064403113335620837324114167728697926818333025652681776509870194133187649063361514687534946290839930736278018539584054661135584917457012194580618970348773371375237855350782592977850348883590598055414723839785071723948732505283366600210220621414573509586992231808484507150809641174490641445613854603900339895913641888754861277077475551966994683403728277596909249321548799238022084675801912181060809867045103481930550016747690883733456841367151419794327192530036010635244109216953744181696718426850680547058303372709195415710527321967449284940434688416255469783022010972559843803977348358533045317713648267122925203434815414366858560445408901366147245521136309611128831173342817886013213900819798563462409434723146998614277076913561026833934540957489793411168191479778274201789523307999256072508715601501844980354893620070489277184789367524759745678807728204431832850849451340086519792942214384965974613689594798889469446726408975864854329668886380352817308677614800918943436058047197224470937868155542911851843810501185590617085689228717724723189974912751876580263787977320708564135637796218578527910024354173204152948856740817492700836234228136999493914311404278565084771061760342412832014194031233612959764673490838454511807069926902191526135834939639673821611746805448617517305713589515180186132470938942160902973768596802497009656679498160452827221701913856232190626908883930722489431188389295564559994923011073056631292713636736404246980494418489831523354643656644490030758500099683219499394930820444043414710769925400919958910675532360500151714976816025990184386580013678688030630687937979412481883911562326785289910551819514613350459617831068452514786821146223028249228552082898839568705017951571474184805638330222634749159556382612637880110478082522775001827791209863022072752586112105230216563802709362348568436344279337480697172084855916911963409565887080614184923695849240742158197489496666364475819662495649811952011600846829626842311470730982539282939863925106422789677697719976999500720767328974980650332753873041880750143153490245329530372036662474583908637191041518701015889173205927699224663872464330656838448291432024546127337496928477964823745637251338081559433402542517926831951200125584333065103510280699537901259344316875519395601716836134820392446916748637774213399603914019188587258089818342421450519584375164852290486777871165290364286870761954873159911815450861012652194441410676215099754148809948850634314541000109919054634441184060332054679418099296991862617206013647027140917674387937433754387712698459432186816449580285940186749855671579682622380503194782165677691711076927980368625024208406417289569361270028611540237247098089297643097233271106722638871092746107484375661133823360947444975007362687883518320511542498948989907186709874990464093404979024406809186452357859929689724984582015872882552224785651913962104265336391522199295203869167931857773710784642764490929930110068079003336401684173064591216052057046425488569161140496885979844043622055984538149676758155184974405311436238855792680777168826908778485824104298541127780405603672182373485684572764761708051287267375535286611658367565942476825875215502515717792807874083745451917571112003197437111784439924833811968766319681506840566754126924964938449205666381793863618544380922138285705668107114129098300459193090933680254972838826748113452897122674265957357254242142124724939277647810366289374328603536997968083708793558777324856822782408746108951743347573942403141719969943577709360349916763615222004523804869990826117165030546790643296898887183195880238929808703195964442795158624956767230632475449726512291023148913360954620001061539889994842451271355431169257212330688256050909310559002989148498262290965997874788602631070287857240333878244860878371752630989429511197786127542109797824551382690309596596170851340197338770770864350626219609045929461285130054974744329237339778542398021584007642734952282540549799030626677430664488844941614621426874169660873313221610393708018335065746115407012419646925247479183131948359964802476316086585602175715559506189214351299616955202316170419468994304411305524673314470054451269857510032133018182513893315676834958442418576526593461376613171254911398958588908837579993007937048632237636855562982828408546452708222757447696482079525821580205254380324628156065843998190923750421198354513088722798038369724114068794734599795125168052828686684936072635423048972393508598273272540161867620846219359564436062121145405467584926079470799771184571702538512300477053428149742397961063543518396566313329641081261940907884743024513218559436842973517728080723176620827353309276829185925497326968028348454957467716301462505895095137157520842629089957899550248005684979832324063134684370417013403501273772134164124089899837485576883910484477836686075872587942026585119572356253819636459735370766835759049816865122156991383702766186348504135841779051689045369998519487895884552665441761469862953353289606061594123490528963248769048937898091548142976406844005408143653579005097531638876852056356652894911704247633671605557710021453264802502801913091504397297059679645693267120836680860371651754394442499591273506314925104779398158682088378053847569620133947940021914034906095338926065587660951621226625508206555299777697728058557654962723917998832739560596689806986332884329796538390206993772785048510813017874854039774094897624083221668769766226886629893422823586330555326836445201852708696463486131587724660439035667699932970310384743006624532289645282425113092056299496687219980788052542678296830013775211156224250378088335280131908881530221220564248436092409197133429141215076142216028176984441288075559910180294685264586183712901551050608213733822093059971120691476955477425866775775689561594806065975111569102681652778950874910370651236651028158628661906447569317676280903145354192182344531638254580102868727263522142449088567446346174215590910238984611594474695866087250498887835951222267642779150236515601165271385722859114019615883628231577573036193991928358271387380388386615678876077442725743032610564877357230154759143964498171419502420502777261952240309251044240928623211202138505659440661230760033592658737940322779303771772274393048039025554186502715579455248684288921426291804208620621709030061042994800985678813287670671196181244990941479282044586551086171149391666396843362825166852425894196315466324426954214965071591620195336307014699364700370339451085418469888462394449334486286773805514387126880367710377830558024341783584330901450443081298763101182092407213697627123603566993828068605154572787296829330966343976531247475720163560158692087351300411267223929350002313767094970733153459464044345277223341016118007903578927117038173918993762351803320963666447668197845135720441150539347492412552493534320511582369251524624839925368852256499695876834469019495165748155652638258514663176079329346682647721507778954405149701678107762426908306567705737148992734149158059471612610892663037537433729458555344080895786081887510588976508146807288950696860288527069665805271095967693778884596952440581540461539103106549162652229587051550519976509647454748502794019386134412436279862838243837486816104728343992635096045564726926450958230437942403703595656755500181895749024601592560983104036819592142844773670392247352749242893540469105820619025480273001406443018763363651063313585019934031352108555103734759703720927045847945690620513118905000628759622501742378693061493061789436677472330404933122185514214614262549136216637915611977869549148985990393927647637669689813223994123450906763471163685616269347547636243501650146136720497720292665837124096689292704161674189926517168810529034833052911619928446680302312009919977150084095049752418121865177867067343700689831826279844628267961246212955317279683369074863667891549740535878069736273181301764805329386106254597269868353774139222625419369482167677904071216107665790642422522367458824218975101691501088749709108576641516342011932821399387497216927676341026494652255179105949074163358140645497919982643002364247913926428603687870413851097925680292739359744331882256541521080655534379875264357645181842625317557100291708262621027364717013941167660762344242222074285667055891763888302469602453606483647841974822498610739036845394960000526071427502094108650290233732735018728039608910952673686474500612720693422095055782942722633962871593838110394971308087435902503279100853865931452434233802157300574168984601140715533892757718885876367800166988034965632719167425998997690651174553825325178113857194965490737633216865033785521037746968850668600189884198653955581630195467550460173927692050199219600074254164306255867708388899366549294520352499122024201137716168655042024115234996905848580667725147083770688707449469202606004555196254834665474041696471330029737217336300264194864788369592067807542080057931259516933282035497043346078784046717361317297436875604056252055988142970900239215091206724829084090213390739922396994602675465480737713850665643111749080177462575203798171635630253804039234171391646403626930836096452367358653372360945046484033346866063651136863160171651739415299947762853438740502763524667541619595690384157400311720690475624956445507949266307765704470442682522078145079730551222428792784427452106315088895062045938520736336217013318314829866975618913031155941606821657837938665002772120342266314670002069771639602667541416955147341713921469083026661259836551602495866459834003789246135357043500167241763572727712976624297979150035480790070773222615044277527637490991645161006510933432590990956863434590325612633070060687737982819840337107437147182155202645952842973899483140954108828015105377188543538550359003064085531346233362635882295459402697221847169785554967693912339129588324208187253439936479272750474118663984130184364013974893866728135742718167666025818097741616737129701432185703093736114154869536075385234920805721201316901429153367093381438207337040063218108702320332097088628343505445898893018046275603505113985676574710169820539142555378457709013500251650663791032761369296581311252313714330002633315113754726182878660936093839015855693878257739321461424350952617641145254335261744130671629194854337250613313312450908734962253279380313835100411515480600804170687918288071368314053585940674993742779093356103205509770326293568931819950202411051824258290974953135472946435997747307755072391091621127651747950280406025038864076642591598983241308770805872038169491830672035452533193376302565692866831407558939545231274583631537963179770513003880205185321183830954812012204942088223647327385505081351668090067067223183589367951349184836714591175460664521043315405340860957477542325433623348277734457254493739848432333127942773699884108102051621123822528822956222486798852535629685352020777441125392003016976719407115644203473356533699859670171041887338388240052245890781744350137489999256604239448532713021742383457626091129622847683721319079390301686765187434128860866861923207716562323509398141172046710062771085318380912704070878604747557654942850715025499878374793128889696714558299840457215728954158303652593232292374946262387298264893661660459817546424992319781531286616465220574008602146556315812044164279986845317120619084755098725002322804995614465248435790006181603786168073682413348366892732803674162225291708403402318682848926781915468571681624119136496422253436419300274457456470543328658169329835337570280238980952873469938826172116272040813889603885228997486646024089837482998841894459211680472936582736603810700045016021061076893004489544563972607332213559217659384137212947264436480792479837351250078435662431226646251010155354191215650223789063289053489622207509585015845406816100271162350449577354106664796198802309789438849208554124286061121613976745000497293492030783186319692101991791307855781879518623826566788147773508047990105121376320630293277674292889410719883246621983568807558306890435434791926323518975189010916039390241393396685408973461305422381114758242261547643912255292387854598651849018754981968820182170496582007199503030464689184205556372114560217744088343100975647953960327103696307727698172392621983568003516265181060330405494438671451062140424940518154623372628184027852228318687413958526481089367090967676983273564589112447708830394251730319166977035528459422748096121223880201378363443321562743110430636562859661748399953869367855628523521718460675515953185673819508955519298745852182482129055269213426508978443024103994749783695375346710419001634652031444434122575409035698182883007572555954103587016226044499900273055785091423060250030718473714008532237949847286377761137665435982881056462089438438966343828070698927193674127580562607271327256183706456136255183269026437496852283237099648965855071791237833917816950294664933930127630199057096316275012148753981590610415467853410367059986583666836363533452455021903208685707112373999359330735730008257053930703886513328718733944979932029196066677934871080702079381958071836154710833787009783626026116388266030998518111201335170243125534807747311251595396508446762743175004602859020061859137192827434964152251801463926758289242669156403495797233971952872516614214714583706591485017558823942746994851026893077636259730452352449185973148592661836808893920003577475659961784490852708194286972801911026792694182691824201505519581493537750156896729523099211608335831203900190218388785311071984265824519831686992928852607857388343629458822903853146717522988961205182615144176199372171755252320968122904329174589610852316376246453722380555994186161470292202135417236428112932262676363205930814089087069011604787312154578842359942801147903747307349775328277853338395726539847890329212758556596241084938480543404139828644928187793691846160696183081923939882562734630440807295211696452402181236649010303509843879710894802332063246104299822114466914326970744333624271785063983347189679030831171282476573732935132664029630058717033700328118384914216546982703099593504983365813128935491374521110873792934703544630162171387111927699989950413384708895664502952880680020077786501509044160681171000273834362132226656192056359765747684676268214224507535070714612425289609607001782097940546068010553139277363500709149348716841615424589169981213102512850562830024926082489433164841400359745381711593656077603467054260240064726473458671690503358438567182480544496521246580822095246000052816170768461153556072650581768200608154447039041007765934688716729919933416289686912273259645870752719323205953059069441774978327437103857275569739178068323730156707938190600353232143964187205228909908840353375511719058297783543963052579201900648099523115718296534916025805212307654678682828432948240936201891227979816159577044949687230599807965778258219565345121037630068587663207896162363216442711688286270934856649659300138149683967811945068477738298800531216508705282464388221877162432070448856898095107827121481219900917513060595843103804682429083967827293970123741736539124731450017946766786157173899633978173565126285308358799067850403162018021809866794157421209235563322601869789727332175957210671509639376418494272903370173383817071392461680548008113443145360724098136325618426802863407175545747624509011973291208035615236548569529784453567019200491036787616284774282270107365809092655764159591592778562518340672727824818034797155358741066027153212919657250296723508146429831644158833579186565342464844620231465841951151861622573368533248728080628727601207132464126883842509580996748169822799239829677678126463440717657268206510287210237414099617680005602835416152448264205683698896951753869163189089520480105848929557219221698428702873915860879381845316330218984920209247581063434926995463685117947915212801957698803941027724578574423573675351127828343678146695426650984750106851065680555364481187470423410429206627037866077533487331577058847433196818249246428954158384408071092946844998262985624165633255641811369586208156494963083906786039712960657124508021444411809566040179452323628131875207527116550895690582807246489336966701591735031922487776555435548042249821058024313546974637235062229035362396925679713639014254375601321381215965168440683648089908549562214658188471718136925612795499829612081160344205672832613561977007182070962400437243596982807060873603098801890857667608606354390160153682734306831886486769477531009198042429841819564061159141140339503052887113608051932255711868703271575826521737547806672305336867715897164463518424982278068493926451181373018455478487749500132091587812515059592098481153694683175748838334473557274073579160089180398657939524052361682521929634622375247550710133742205121397366565880289783279224373874121174630067217230202843743316941444254747623175736193290781826016959568709464790144550088516293289682706271347460787294757463428073006580261086796062172483400122302927221620280933141662068460344520149779732850703492136046645114399850992724146123612015426209842554919694772970588886304856914921367996173933592489911388012595749937034053208063062118043243420475102377257356006347073105615598301396164842657665800260857082091238045108905665982751137796781892777588749324312191144344241196379763445497846652921243774772138497433514200874767987182652914206669345207026857247629267992601346943860192060296496188433811216610882478177952315458407646007343372060657345019633690009044494438166815128984151625807473256654370091760355459067836134093119449559413318425542830193026705981159349705241238235285228425072961473989333058136756198602970900775103591487381985353549985849556920882791721762054547839454322792318813832150684806832845044383104434171428902264810165771076110845952810360897564545253618378664950236223962787154087992560745944637744655606606353596568713604637648769127301096364977989068846064808086719884169636646190476101163866788818012398902340319277931872391408506160480287673294584228629427558783625514812840935754676690556963999849831180995054197090704855794117172853771538172348357861420181216342759406335312842917773876883534236132912745489087876678962570900961633420006217275831418739348169322896615184816557168252616366458294358930305197660705983119509663197767527411358224193189692362155960445314171261105116240178440198403286212010551768049285231457493490423123225477427458023674078388497866144255472675980211304757507289699522085486191861873342636356855888451233922803926237390428364402122258385877583171661200858572382848252979437397383402169615843239556675511169314461283336885219283440178841104250397740044952226646562456588631886327946507865888620240174103244024812902755207407292904665714604573718772104214551416684442282143292691069865225327188874481268663155296460925315237787667330092828288823147100235489708297231067706055434534730898435664204420015314049349724238984256876644936491477171639164451359003000724815001722192982514477729685322434466024251106138707312380069226749326419154491540977569233468010483398936407275867932203689999203761292026642407512576401447722472140806717010101074620619300506977732134280658017804383941760155423649328743494363557833647569983047365014697133656436520910403355673105907809667666207622480525379181295529390556575115833944366997942885913779858829718134945265339902365411272457466200327820969367455175556290124637534751149228056803927833194021330314096319512679158066677979755666529484657960442252853811070248567803843278509708392375484767198399558860737807924003074501160029590386637178620281207477558070228168173610225760906275780658238203502246667864581426516750950595692202467967252769481571296865397925615102117145280789390304890886178765489572784088906212307419375188286309755889292943772260686001768938955742255037790966129370063940035906103998579516626710213115201039890244981072830372315551733190279555310939079587504407905603611959710703331871782588877533598496765716928013066359479778522554251043143138369756890245354308848826212386628356400552111865102948895077819881501213259329648894129019950336783346969047881888376651835225853573347491833032849174544364829064091291431419481805088764873974269733453931560155874731093468398931475047599291622173088103178247808084697921810810107352401818585208921972999889809233435752891783671071055315096318728413403121883973720500077001729481001801998504743963866004384257334126306877745311201794929188380087491826386763816056054745433909559706540705828560914435142058356897403655115752032018072209274677704900952038072170971076170794626602754227131291468698487086768992724015281018758485497444314702561436299820903359715401161310954600554199354308452608542519321047347028335280725184924582939067901971316987850796200332913415426401656055857992516515441475285533260129209491392517842587906287334066584327209687683292661540423683123685987912166701404405035832364402394143095525064437982811381990453948662969335061641357227566025187538178177073728960908876803203535743536576771177591338039409731577436149762997522549849122874329857120402641302946230141327511928140767967090418636097387229277838520009204898402046490182643608308958405066069673776471489794541965291930494170353279244496039876305477042876097345594381958607119851363324552855385948709886570714141321017871194234417876805374893151466916602119055544643897986533796318814561979087747146681090092512187028955148755502456768907730599201754747184201504291666719452191578413982140856276553006203950531830512079357348915409647667390715374809292551479255895240619382337314926919757160390494789134021663648745266822546083405710205482285316521368122310752632276228841046053600507682513085870915202391810470454791682911107925849234827411755695732931309622613069344594026390591999498600465030815719823604846627415032426726690072868037470873437775813855996713127703297617102524424383072344408471334198111764754356220349190131044472994635527750735287539092241165665243374975367641425061091503877414213913767241776629828449403305668612754337490100432576206366925371220825512205515102674227785265437983890431526725636767943375831776380503944495955267905296371349893924735707663217167267788110308427802507547260770655008841890216809142918168239955915075270078982175583138928101720280856974230818699510919564289046886619590876774114263977055515875708392205320610958354068227928849247371107080605408706914729859409343124577815439507880809131085100712951797446154730877976249722798683687225633943023437826461447947961854752507063482617764078777745502363365411584185533131558213523789619362202974537568209810759960245661238429870678418849829139887004778885154103610777704879772690562381491210893284436513531502268908996562786119739976457184507681764016517356460852182167399150278579549123207328131301934789900541544100891149381886031413119855375234374490177952056421770618563759603353610158727712349680095947455017153087648190138448802217319116624174494214864194165053785897575757664193322526598909254606732465122199652349583033741171769091529214172509208925624465099110067286757547533571779965321945894489443983735480193968231338300686532588208875534656730065159551871106347677902443300244201058754791472557437962034362566576464488200056150306957861367828132133401627183218419442479315666126739126134733824720598882273057020806786881913999505871917205848261775833078817744594273264931064660883519316703955543030039049204770023892249674280641111651126620565833874872883212954889703900516450327224918014135186371054114710723894168239175271569470143018379955204416221558726881866204452821434971425884350833047099343107685340696416135937332498200620003152891739911921587095550689234193194551981763211778887158341579019710207362521992582266344406267667104314379318745566347175474244734821113828846384863861018202423765976934965714711881461291863298730002194027190937559609007817739598855436770677160217543557393107516553213443508513020112918014544182285688139769647065810914813874767105938865044117615380037125135609770897636533183755677774024163282301071581197474358293966851887587659739127727718996146000967574600674632664844441358616060880632586388976190190758585661677114761553430054524297284031186158970646658112555687556576248299566451955604866846207426118462651353907970827806914409416247603453018018222998519945358890806892121125358269396146977766411536107173744759138579414747072915366167897322094116276099931016660513813323171323545091086615887208104449861588646729680342347909336316315984497188024615365806411312807660581824343891005655314767065761519423208375021450043183119715728527337634969933037540730184181078051219417004435150188268784008727395415180703809795363830517819621048549513402018581609997653192871859111570779525824781518782161847771175784564494876899036129566284400590268669006135625987727417201191620199475473543847725751107115048718078028129174362527799881410678040698407222955220849102448648912390526796389018612061677414888406179499606275254989530326256182785170003303517363337466628815213956885364134433579871965157206168761971455115347671103465417156327318615451043522846456537989120607215477057560746585798516160167531446112577640984037040134569380153962863231983331007662053911864420592646719403516568393464227908346742092569458332818547112559438047497176445751294615073201937820337116910248530733020968383362853871007870300658258884608111549696545875628592677346003913447039642017654661484931708037940556372417971433633508753146303909815855912992807064414350187888557916969378328376149540920429490164835083407302704726046057152608000726113391641079604286083112832420041123230987436160102277903083308774405513644426550871877428347626924588529581386205714814894291482438451645350206453650168914325355732454568189124142423855733981491268065399173139058513875982437512728125355991620175655929414175273906162215371301895161882994213565858975130350266403609745245363987705123187242850660583582231632029834793972018815855953548272500474956628655441562441676869758266664618853466130359512478667747977515407101517650181702108602765433031114137312555253901841105085181037725049441376548759218137711931040062035611503681383802023110273407171774337264652386937932245268033856363173684851548769327218802378667911440792757305214328932979893092660160007214709625057899341026730019946589611000671202655335448590116434579708973868977770626285745001908982580863409563438506333157201813092038053692426062215887686406817333848111849192225404609166547864636479848646132716836477663424708303483427370687886517155293644368431300857324971005040892405886633595056130683978132260234740652979075352758273378483111687281864203845403431018374296458216285974465690946825617445153134367645673969001748076024331272567718562305238174280980406310186871409869197225632260202542509591583348889835003685270098259996795786055676498684893960059768241558188388860099741658501711312720135216163302927087450980035673875588279848939037088243434995325803008195751217795025514956099419966876313917045956604046935513473464097087739755736064982722470219411704554210093522040758343866025768093743052526486686985458580015619749861533437551671611764396438424997834855634918436771805690137495442623455166555956782932154911239607482753282329551634615274098804520676327671326031907269643967413940795345967038525258329103949249986406346708563016606063373979855954915224054423395250044930651613728866992474368974765961933836943763080470755762183695948083008837535941478239198755521721557892649665962931914102925416723470740261574208630835812451428665963212146200154398122120113732251972597932373504113825576951934441782408282853728987438013440888365144821623292832887713013079658648246941916039021965961950959474599097613095674838690375126525695589374169044085159425997126574507027383064603364861883637728156400485704059618195479775426711404250317341639410545392460919107821524057494664215013755545848773751061000268605240776869825073729066361462368257586814615175209227743532931300710741112469106821568422261475273846212135200422995895045188665428174968665179821889558001243240868742634133533769680314325556219243228291972606031764459086673416127282206303223558543449397687392443797947470758277293674837039478601673310503960965641862904951216028604038769965666031863943610707415814580897667855449085334882738635297511917448812183512428300329283775108633268855551391878229139730816460856900244306482698074351382804993889645352791494506474473734098647671116827620062970224697264675504427532378303911531550740927062694545652247644655061798369007891831610907356122137769808164872220162283339830988111119284657426984995758269441108166545399834863969950791434295714741739981835762632068245190489771986035866551309066990009877068293368488365637206930392571178571509310222087143902620061448085869032750366202794632239399175252147120332712121684235744095310438389775186297859576302081679806254561895606630564486356653661318379846841982146589067032896751063512006267986903341966497253927497650063344429691862057903872760512256843155329132107564042059171036921321056709460956262753287488119111558608189616365645767378677268203997550643526713358840574881111994016280636699632299637124801146155078286915462962443715175595472248482386890908375886017593083616870853412498325602743916586339908898721532055187790103735464489140246238389530128450557471796447519796592553375540918732356943868534138724163593913393773700256901346696148161412191546240021159340802067548255823630656075923847394823505126633485024051052238631549225817249025951771136545931719526926239112039821408773769163034202440964794209197493532195997455140415667231130308962403855809012463399999189217260628299399248995810407388550056893031175196070778180567078521886646660949482826534955935252746557273653421005679297536070010884524180680194990036455624188597110172185519192713329686792737610642655119678529688714871424526582125403978148221574457673549855185911366485535587774560750329054968540034528451000057901125731743249882753169275386544405966061171454359636972212559979476011679286475765760967553757501803912781819761435263636575075957985642791710430540871270012659301445465332041762301461525499556001343110312127051776888610886928788886155464276664377347110816503208216416865432879782559670115254736525663729609561292501761354017982451096941004621648610300327692540148212399504664097779242198556180087989758944210870609978899622925191475409717576840217238953599919416328695787705898477991154773687121458114646849018434452523381118514821883742749671827094618455308576628151814619450775560332251453886836270807797848505475076034228840764511384749890979173800096550839039094205406170136782325856495779532746085372954199823533816525780434339581742184011978907920562786165591767926977885896124244193881332540123913847712150989988469704027499894225417488463402083272478166555230422556435131135905582912944793180821324521379682798897416166590411521807130619519353637937100074654638919270612425534393660654749612673660667529355174383315269812074878471260310168158504835659556640210532665566084613493505594052836181091849476364604905404283188312645464628661430203260832722177529841601541287837579457427733625932309275985331600765960411884193285396267644870082222037856540028106166328488378083506387457705546036658374727750978356780148330907867600404193349752653087639954962189859005443019343394618386258957251579089986541353761297829986569509498751567517773112466319267741159868060995904950263309711715176089333666651439944271819323332072332466450812178127643363864657827058930089229779261090849923574409341337051548295956004554590066867783703265687754760241013507439909952557945545701484854729560969833754783289908885526286065635834616068370228538762251849916138065395776753998161102078176375763157279587756333220199229279006118724742668473694697100596482684606378475960515164710924572924437145364256200849691850015848744092206926938987831050899435665507773285973286591484225902605537924491195715970431672871544449275824974427185970370041195703964981802472571445876404382417021628050471904848592163775624934049534673054171773371874818856457214385048120163912208982185571684340172108252333455046853907135367151948983582482659304361501457732297886330337125740298250323676260050443948177546293027993932518727571355528750351993331751319892906318003245225208544945940074524348272009352287935391996485298862107951841847300208236014074533477750484471617183134676570808467396884233811182016295170880302208266945756880049924712387545079395911181823975281690250072219662330470340002497531059277076156802574828075358460825057631127516095839005644194086042130684076018742729789296311858110580234973980761020216481864429717815209768453508055604739144044487426502079199396121200000622300333050540685716879241433527080477817983608772475917614322338151472599339077537541642106026999949858003042090210477267887421991737149851660385302361323539760686548444678914271883133543335146935114487006524044475526515948249264404053871783082077906874218202417676408691339079287192116021367668145909284097742479212685172132400646707164026990920238388252838717595959121614873498017257653603876263200943260493803110020111723988092618057649172603456356602649668123495475483729445037343971895950685220101105137021661488193950340807292434740324189564314427474770469092944824940475176853437914364404976903929715972255246733158913027328429938257599364005040931904008223507657771548151281556577286222055327425019073793278504170642693097060079105485569136157916490089293538434292994813425093703749247146061895634511805293156100057714751502338795116274021557192265074079527790072876796604206860184909433042683654326544493849742140175058172394676659851437024396879355400701443976279730952300978233771408290299818068212134951545159146911841282052072403330645663644528943485829902067357231169050181999577853885151960563196136491704030413587897440250675607383483336076281193211260710203153603599387627171833466521881299129817656669035175674528677297205371969555387528091289636502127182650733200477965643811821171693144585210099580797399684944355842719616076849744549623436985490911991603165308262604840646542067560838029675368749158034521101104684846738559539063479696151475203748791021268251921999018511595055376651378061096979726395516165176335128594643619291112322253643555254143220000475646575102988854666369707527130542578788346409775935679634882438254801876028747475131368865751101917487276592906190086501997470653624521106247910386097917943041074576200544946027656488582139777496235435624679641430590462056868211267805214505148013726826649934964653359405264655689613875862140014605976825277508638173949397808803341378240086353001490697460688017392585293743370189041866931733609555878544544610180349925394681978869439336353657820403297843779451370511131168132955845543069645626821821662984841404689729227225694150991990866196415958443838298033691992482072051650985960666627808565589840681283305307341088200731914052801464320244897439746824632140907646503557018389878238145253054245536242216384158929176300558175533020661723477558565993636438149357063411193759458897596612439640940320108400356443802801052580094660705011339035789519596969231711440353795086393881570873902812660930099668435775053231846452691777907663353646081307260891242768487050363036525304198715857105662578431252884533828650541507761189900949000607952555494264370329673308571329245816162819919385695048945850133958000016179766180329469794591849613673552211080432442974528690505357311811816213705744969307014545068299554580882486498524297226478033920630353078199716965319765662993266859474339249700996943524080340992920867121727614241374604470810188394677289697754042620028717669048616863761596489138777985676418041389121154246224823250473981924324596135556317815209714738742343897415406785051175012550420081786454115763064022964773047297698900889512113953055608430278974550874115694327217538978092851812816336817593452494139633915874011745787561373087710051553011669532160003417596018668311885659147333229016471655013419341419369108954494112218082686929242468282188238974255958757504332722763594400386383272121805380588824115473380069900559425534114071921382541804131132013642711383076035242381959637766639108749985813260563236164991261413987197322697393914235836259325908698870006219021350199636081346664283997213919055891607627966584649422474255519354885566571117988001586449961382628117296691486169108649891685108133892340634734373296700746837347617270596798541001439732384400663261161725092417031864661768442300628362042152699028076132947729072107549628377659090373244935841707538121646511064600231463954678304131800604399597576166346087299749077130727690729660389843885823826622623171621880318623295251107481520980013136822567781328303327811044441520662217346321922277440118481141452696999299263929952909477955695312813375464640243852428760708188347776453406771083180757017080822153264686089171297839180093464882075551248912760145704971738628267120523024264317062061353036555367564467115989474723120990917249825851669228302834688350716716585063156216633408133735805552443103903604570931474685168258268967219014311541962332752037463618516783351121013349005922087580764669556277785162916676503276137548775683622227454176448862934840367979546743657325903910644088006534046558054890543987181430011221655556896272763839218971281678964267385086917663945717848220516968871708637453455192954185656391937898108557019203016056748402534048588413178275566819825899329893253093289195210948898302103066934333352593833743676719066292491804947209896953598606844779061959475065911391299345981087419020630341452065240071720337607421952303414021960152699346704037780412727857240103213478828669826691434361451145613989024265304943331237052122383784250064363173971493041004296651721263902712745946973008957897899310298671804164794599237608530527526716785699762437563198383887471191989524180034289170030719955950384829180527503347961443455507574896772033006310567334902485295924411258170867187521045968795556627793328788161291122086893270757481378633066015152764492980934822464701845208669772458608701846656046233446093474358279718565724075433818970721687769994998298818254062062060200547566159046236467224018119624973110687252450163475723194487496832763648358488684452513495384295792479256666033649153760812984269821427365593751305966867891885276954381432219097568270838167496600977960783514572589070316423419219470951230800652284496559197481699535048662825624240951413252092593028120896604692053320341780408604554831824695206914656589298123284560468008213873486694466406532542629321727637150040755364809986059716712752870389503573364115034547914528363216177967128539376889903315542219268104903395435356842093623178392276281378022966872293112103879141352868031878856409472332542343374470953409185118364210695125738466219555336425204307518578049851266841728496758800509639798850452295911162075625415060398601265784776916266839799730798301016287193679557028738987099146719428675245538849134971451135055520517005833531322830630297065160431573851276861462928854081797710648086315812333599906932556165217096881453410924945193173334786118354206421958279206963746114763972565536098351339918145086973732551967857461667222714451633140645926830884345534599429667701390199261222347746669101261794693166004031539458532868526505536608758220185587639269533727082112960462853508590841573372325155418259068098544343728902076565398347795569426336894999900746908406609042954115113172695123477207512388166718865129339159816513757252399358506859058066992168308326672796371130006335311547525282852805222292689942674822146926570601758541838143007038328505304781106238287895341802630493541818864760174381765076091652257939107532852811717834172298144066234097179467078770647934696219493719662131961581383259507989160174399473223688436195395473713257924072944540886010306827230902498020808496587927292758787383070513578511699095810738334595619330079325161040136977674198317688903269179715078510549372145477209375506212656499708881759562221027452729176130307887271404720925929564782437117643762941607700653056624025020372384363025658895425901657121063856045859076250088606997750875634049636540681152337754957609566808422098429464888279320895291744969709973501419541564313456074900231190331840067286944014559401794308804439863700975500790810137675533380204233986385863445370318324548029372064266542074262093138153478885748067735972431364217265576594283709033426200804218252341198912235628666453079540108147958133100607872013630739940806163737855025795268203184837059445109896574173960556512148901761970993866284786327194500074833168036542807101208991770294149581486397575158669464768391470468803546025424602203578049036619034922131374095253853181275486327675115021675197969037307572261337036747849266120179128165584879561605317963729506129361559494743981954596167043486130197935666362173990029460701898166539626441313344433453851274457903971866264838565759070474098374701732434627848428969600657963907808639070655410304229903476873703893758026482034065128348255620423680555587826300023516842618533120460973101653819639687955110230800361141098539186713433792564320649464383527204580449218263764701387002300497254402684530738209181594920748133951781671383341669443673421431534466919284271188482250447723721311268978797749075918780840553417218583230441411782294431347032869805685529114273309262070814593910673937813436876137205379051432108086071466061248893219135994623918389656576251375676407579259807306916358467684469633828265642842559883660602936442983561577570378481564298979175914830139124826410135321834801413084587530430300487128907221427404437303755861440104456352535887690524253380481967432344627661921940480536613521781781716851327266902820914920677097544870850756904258934449220588377903223820268570926779860681783141009590220048539378237015928213616977693325796874517130074915555548317999587424091623299202979707165815319055097685778012434427515221346576886145814210862319879545951521472465614201297803414392051378921664221933276491022515113705080785548788464682165483871059410029005512377177060911524390166570537309585449081724457661724228161598671588684700901531021821125762433903296238915550113295087700080129374866260179872235768311135384263063909830863225506012242737430883814740676654437379051123881997406824172963179127978070641129381031019641025660904078994457479574193741520601111009687682096332238187884796871894898192213446730916303338360658192382843435363544195276974422794878284617038896472133254678022308040036658086844833154671072579809300243242339943612912082445286881261135348260244674515031495419565860581171713310322346186332242430712170220579096230295269664426280063505159257709271038274635536102121915414299189717293953945254512615816802938407697306660750575318463057695318330885430645093666342381641712422133500998969050518412637463757802533162229705835082175646716169237192423743186106190757389763394257465833146280222747669589722133492248379112187043310254502135954296735609372735362622450081110032769514744850214254666576566552521686841981247902709914923852971949011546719070177370235936734407440971804820726673927978185399105588111507548691871459450048039544770891680357089799733939668775368133696728931207241137274066021130381398648017168736032571057069714300663129741447336685262525841582430263924397368888065766827316527141261469888017206860038692658307790996232633078725402623887080209732412769814158526581273070652502966745680383699245973026921070345561758851036316626527775176811925596204244579063197116304841719898884546639529461888562735571983322085396965026410867348998140404509492933935072132060701263847675675859240572184648843542286070431607057599063002116634413712069298264587305650607464898305825227655163922449512915447289151611025955105584599267575212173173230522123038822719908959512861251682884345713065278332463631995742198011968604455036478083040483234717167642888829441046686226842918800081140513133577717265280239973701545874986116058033462726613422265731396920196120374152127686384700520460470701829302631803355308388041393886076163653067246163052628857658691231657289313880979536596055888072536792763633325825797980957933771621759246886344947486324487576709805051079565036983248011964462510753682339487905644401573782240922537824069494973616455760699351436205808617031387662759708793534637862799766732793220772511306640921155511505008843719759025780053885234739668983433045197013653622949555715164926048761756242704247459541180986879622424933434583409516037648743617132003483872700015086969000555624242004392263272804115309675385362696877388503484802777278273832122700753775589396939712186492211611922905435260383557812293308000679311714909183939299973450542285232299032798380004715191271584933343138216503889844481985723096942410468444507701413840400883896172849592609774378915966534130730789974152599775258243126705501844642214390909179630234355542559546647391940153136637313636068706445817627707846224275079401335762304798369817897825649578007651486153041697217879897414391030074965017317178341173240637777301352214331221026350122430208263435341357413817061843381407996500099072183398697309365766830331128393983339108162055725752789610224367229972667936505161681799951117724473387785935034922156894918871887407817123577677290173177676803759785195475654488072419712371255216833445668659885488476587227886473244967982136110223211032495902553706852131637714986828884467474623239001932299422998642094604959140698891175896990855444030764902802394067869255647248147524923286689753888672331307035231622993055417598670351675952463665310170432236939428566803012265728054089243479772312247796345903439334130843756270091649368606797192855995677663752782447131676425659355376283103315536410543610210980392034691835263443047948789453447342928124414127458379732314627274290792766637614002630358869214529012234217988309872072249578791591911921090855124787374106542217135134860866748106662828310748904063210993775240906312380770318404129755929138803400667701558815155430353127743053692822434879835014053810381787849428579595755330795579898695707539345854510279847874756643222911803857149099107057744903759877666387722300450273179421495654743881061230181050871094204431167871823871059851092020051537560141514492837072458366907390681390136513769824635492993782945829435219759517537807165648378256594893587662121605870305397403812069577732592107305282754495915728382654163605935460372074859572265669088093382434319203866820387607218746286859463874005947739049566476356576745597048710163342547745445060987198059775863971695341919393871125602715439425247658428692199288533393268648822613268112165921669209777775678441534826499630006453654188608377200697516378536021099835034427726639176798181699011871473305272851234472699655007115678491651097755655059573796407548589274342402451068082593738177943510053348012967868970618209213598815831509079692715310990258421595659050158000806126156209819844178928377748929501779258993248696453195225671092740783708138685533115129711340605682081276272010712259245693034885815769088185858716041803570336279838532175545991743862865265336055297631881303874412455032447603946940259047450189055633420458492174748757891156609793732065397573751660792846607077251370697852057099344091038120133112034259401711971932878155373108962526657913025340254707491619341069797671978734942590220659713112105359719523342924578216673924505674848295853821166225290977553152245775562171286067625686628490165390733409910386541557937404555141863086366239120664629938084841922720322525806471262237092915663876893564148715966485727362601140546056970884302347349810286604526603505158716165092502628725694094036730869015489980405885191549049861522561168209988331295541920155623562257375890637398767644455131273896459483110321597397609371098036407611188371271540176744117885627735258614893951923289018445005705519332637550802205972290206865039315380936372181759702138511172908124906181533651623082032199093127731657235977886460557727724772913567746354818397805940640849070359332776976454884025970736230654460320615593234888681031554273408139519659080629763619248525869799018525066489463849271104541091669643968650750356550409347456956140392654512297081244805720479022251159731496165526694115508864683338512250495432397600826357485233320977204970684422370925719576004289176603779505917823849983256415199908920706424348143286269468687139568332259689155753771763050951216629560975718489464156479771815263670117769536547091129423928146486170351763939406291354840924228909248086211797934972733309423874380617907191347717666914826569803221457151338196925384671260710186505197644484215040317610694831030292362033748423811085571104177407194905015021047019512184825253455260247012418314823979450973591051243754851385283504673994772228280999437082573009262714903225985880947252440465628952144662600662577808376061932918456172209002676348106061217706058247447201881881201655019535119825390614767883436163259239382043012107323068736353185789497622771897729835434196400585898346113457629627277882662798070521130424746352688000946463220947850296333643044488358036945236668083354462251488024427112555318756841503542028985073817414253025667788631637867154371822991592339006181155881965647195928041600107283914724171550911024753224807286362828589910177955959500127238093681130399453309845176207492482843837220501610388050944917647555484335625806816944240989881638200299163890423166000808611406767614771376059010684410865874854435726519649394794891852915481665879400484596467657316208437709748153501084413028783578517673752933349471465077583781475740142946724762928644653005756874541989801076288357361988727924198847100050801164779545458753666578561638395896140666613716051398602587103038466740589085157290762413902764779895375253807240061368669465085981611232206542498223204797425924515318246882356430111112002248909699441154793064070904632409520929196636318325845749703963609455120901642977031828112762868419000654832014543618251463453755094245423056145245063366935167455556369500577625234919879525597350018781294783817286392269663980817939079193077513193724564353948088488362256784175206221553356544613027677609949082611867214187062633167523160094254021212281061422617111432818090036469723458348227066234635534472438201723205778437015757104898383445252747427060264648793050475518631798176609156566820837941034944546001221820838151719429122054894036754580195139703959604896549572339939791345071390997655850116572651572913737715379589090856205934224900795213152259044075945324841010637233963429245057482304789941982753678652209974888196684124232804526129776938558428273643144460294190476912716785913072297969359134784051067828103221873021237109034422769058324938667895461495696289024745889402875596414716595870678330310735421590491305759605099652439335000758583024378023410552698093444699349169037940763033730791229284058544691133035589783645475267920658797496339671734696807205244150008739659819256721870119937044241266471397643741141737503333462567703354954468625549134013899909611182919629937549978827863172333840377296910918860296270337794941610190873987048945058604425947090412612064475746932556400636109131627569420787603557155957313445229227755008427340463361254948127625314762683489569615435041853005019426731575664805112705132879062670676111516268797966894592377091705955878402681977485724616921588864786113732484322385976106109073546062651877728821017988224213323075337690719989688223461650917133458032619076844980317497435090088514804049604231601218781692341735048087659010641265410590464343780806552053571003810764425642545187322534485365567602287693254769592104178780826696703026616444841779223013024374339050358209987221231664979683288560770873571912257311228713574553464040341171382238188982666494175981341922300503275510218646211610642111843475600799810047242037423205419604383521756055046765108623123049295292925912577150969992274056991738888911182640566191747211762867643395131752978841238387780369248885175150058678858776599701809165037657947519981929933241894873035439119081931841434191009617958147175163340610386052012076895769896296696225775706329682999837994359780399767162177716248404378649988794591224870970706298906334352303670673780671106691155383582225838475577279779324404557299073775947180413586804706767573963592326874609443971820857752729278726093905198105280823930468587725674481621404865520368020605955052791510469147929329472297697511623898444278773147620762829402312968054460174928494241554783604029817419166939531124389343932825902627352387351371792041823728404919546241669733277777897602778813977773259520425109618806795791224652404704022497340865666435528222103818033359364884486334229583157726380338123362226796798930649342579062055043712809306609557048161702031201378486642691017726961794934411359066041661800242343265850722328415452947376217930440596839655607369710546462517164791720992546041824826132013704402062104055976400086370966457672751720095357300528908753498055635119451212998753718849317724838088693385458091218120304993638090408082918475191486977144780305008026930287491840174230564086442283660386684490914514971778741057672055487100444919497404523155183337465245618660749917746333128658275636574510262132945371314500796936867904459973088729284625952222011780977308241640414820389048916651959530157131682756900643517614129107209867159541001405061708633974920147377939872401257320150014927921151649520768042538704962449902008552238973831183949331228491134480683326277039213311739930168597663204174116176073638935676922237611458437589768603254314212385802833551609716573324166457589674231991386481204212598151082560997044303334966622474662451388857769192559266358706410258720174849301815844542274909249497599771137070286174756386010687872247791304431820456123595863889971981971365370483720471379511550562987740561619598646709527700001865207859031240793823103911197056801852220174818257840328676541554569308691504065765135595420446827679953749123509326022576091245561575578273820843886743962406592788673297511500282580490566073431125448989362675618764403022498769018385611086169400941915135256890608319503611759329443956365800448851223920012206130901260672609868133930130574978361534258772052027447081775411283882996934491342167731050420717060656246403415295305417054320230398173078787801453800629065151846596405324381763888546157443297478058736414808736680238007608910336963368387332632162492065534710549382634856201903623404227789744906196244268792849654765938741442682183215568860384804251668647562785572450048340326452800850365814861720943141815364399207006777809717742706440094984611151358983172166650414810184854662983450432115924773920287297844411788488795616819865128484207113679588531380376106006663141816627389436276856496260344880764946836804059178985533781403023291754446364618819939638744907318680719433632192087871620070137577479055747163578345823116139068071997693855189045571682068282999463630618133317276226826675868165775120748024073180095986438223479632084046744432752947416942581950281945797301314756310751947506010192823369830929656772275990915208765938333249916391485192211350091450169349751533539160854335965149062857114911046841825652963423388072368126710789391315081369146920828545413191599743008728293065127121963306399530988538369233328145384929090681267127891993798386115035339776335661812407073605718039132626411736589518775029780639058412499637153330299286619747318149394833115641033461641016621171286392177722959048313759414633096597600509718193538149936940162957119234073987572393577211564341850080930970593723997385044055345201415517299890817415360294707860126397425140328264499030842304090326191734212774790430159415174958359148649564867129223427175714178558502615939363175943029503937073796557233827195803077617987302846210484828362953547630171001961876150645846443098283989737553596881389938243084751600693299951215568005710428016145752479500309631718232120692438565075276981862061182947180369150166495416360866176064624857270919288849085225885955407881880892324190641593734352254438912878817869069750707108767400364305849516524404759455467541878354289223166796167122308078074245582334913991289092090286851512823071484548902741409849589242649639516938077245693506596861409389077706872734582830088036346556182022025809740063756316115835817764539250155602573053456539776156928732277240274992024559528392469040283088363038566639435957751193411503348734241550709478391911297974667527841145387004572896595616142272503873952667637235673719763225231143137261571311889431890412775481729845677627397692844570004220402612422698862278896548792955108204905871093182019105720093244569917979225326064719858920277269041621533696386902447110687401395196008123535694323711093810666214656072445440514010552744385128777131052240243202881231246744982762572056869939997014214533932590209532684823107879343742931072636129637226582268837074446990927379096655327685536970204871985151319922442400138455131460335406167854465729349574537845770382732570870970662184698527099974336837080667776369849557316582711909050434320974125786946888097685485119943378436239189468545629177239423422716189337076642778928090909283682543691199888294873905345652401698863015344434382285289298567501376251834644078957818907635092064845813107055616604918247424574115277470988008142897017438362707163028259002914241826276723319086310595171064253529620264958061822393480967961711991124359725304978589064461646265078378298733299563669698958841961706175391500157704983809490445820450886869382180225068054975057082251818799278554944287881968343958806013543501042388909835087861451853190039705616668047091183273458556406928443403075533743241229808405461774913420560136951635947387232149401795946106332226647358557724269224681734901890676686127986346812126845746778637684902540354119618186727544127061055280059930739171981427501495925567021740770771275629913798644482952258412799803970871994317816126728959100937377422927428122811412702931506452836657325901384430518558095880470381704024174364749847359374009293744236860256966596877381656800901498708101773900486782813515884915383164198199025228569037364265802154389004228636150576602835729888955774264571846529895573837400835276758036405509803053553029201212060381542062859056964245683563241646668203593106584517136725562872045044102143567479406883610032005084336561637606362667743964653562604214188939521517903575372509774580511021361469052563421623924154486343479838310216840126973171081425497610825342846630989787615582116025227167658619474842958509119666227559575556663083040498228357570979433088362662003256380574495889152195919669607053126192163261754564529086416885602975141872972301138652361227923626751418369901110049433490082383100283474946299132435521057521783393085461273337291698671057125911922196129110474389391780718520186084663834959470811266535936506728905672398048304704561082073461973028776391516208396808206330131567976647325707301459960658765400743605573153360016523855652960734431385253078217656374221501405519665468068548576870452370895260492558713059235873502266880049033695033118252551213457320479199715743771916803404502965299967887374130735889723524079481845921679806911497670725029933877618388594972591162685180637158651099587850468111877919981434936559041365351667643349808708046421571775851987801327816064893079725094558515795630335283400943689940818690581167711537953982391660175000631703061129151784712875908396259093053613686333181394391524212528049694175790285173299046577351187318160081122486973743908007772754154267117294270938839061230322013008311207784320000326566373642870204772127964869459653054228373557501823194274942725237793396707997594100505400119624384157116770978852649988836856516756971615154824865045464594265031921245104289731677574395930089222804394227369553891200684455192498081215491920754603849544593799116431417656166193834340563865094870237986675497540241965598641642234667392392562661808712718398674139801881039365316256819468585374021511236614233197320209550967450331329855112751491312129495424043467696234945942291163846595237267227113449565547521273495630037224141199831786549788757596932241355216898905940306095382113930119824336529733204683471375004564832941602741795982776693992754182007717470122405551172270937351261158608301649068470139789099180575083269400205930415634725722448298137993539404589048572126866743811303683772664399882510315888389752351235025042451726922927016227326331211319088937639224471651561518341818138957837645284129166206007205958882751228690028504575504139469391386837596979115841932270489206235244053666600355384941861683436675268889397741432037080557252908687582953118928465495493415613227356940650403739653551834389680669740648605053164227245490063561329225822677349959540576842041362154882249546028498312144175366354358126718317704232591617218007316291165020089727269756318574004240504361590328388455244792930622881420109990360823556077026766218523160125440032504180479237333168799511090907707635346239871733149197578514987330119795184331376978924591674849373551348642981043888266094534245165968459247883973421251064124382320297184692633469494017804470240640278597272024743170527954744685409356410154273702984059807459562676311229081950468120759129242740071164334344474439418960785306331331519541694397910559019632361447222533476788655503466116194234491845157559594393883585599667618259025317714605478413275292915943118589219623192513304599082502082954572339155153444013337918636708895901916038681932039199856376519589285822575767159921274200916859437388496993751653663159684438985380615950590283681031254855363782740006424578230682413587461699184517372229319811170623900489708928839688190277260990066145471121540796947264051667644027807194421167762611873383217065269555211563647384372272876876401557150184752907827532249040509238554070406527020417193946214661408476566282534625334389873265171776938324054739100067757856978728136291341139237166583995878464476793472593932647855328031530776322940508820293124811799825138222776289217181933201571647698492120008843067678505364976559726341651943065211001712400125430202956445958310920065425460291497727645626562668986509437938525919829555776765106949455458574493937855600091941801740683639552752678817190725469899401271194104954461562094006356557361463437605888539182533843343136102676097481776946108688555508362705599436968746836570895181740359808211595733856383594175181728903442201623688901835283581987459482482646501388601021811250123273964437207221041336083247557887363603437170913797594486360654443816206204744634563805502840941950565531123616268104777915903911348709463495851367812378381708690511109133130428552681471576964954092730185743242182347237296078621758463895778628882291647127318365343565980156534365089145004164423199812264494889446905967038879387983436485199783648363113244371088175087581590017136410131080558102137996334390804429037016607744197247941359333306672225473917506014109786878055155914337792149443929030849195153319727975724805442926936563273381268435590194837494227502880154147617811674562514669159476634330673831428901477294737575142320859014207147558692084270418717833223703983704179066212284160305062256096872305800043563794864105918897505445345331370982051097763583982836037380281541864487812080302494150834308166483907374013821010035320695845836531104569516135427944146230689669565499417931505948367331191475074232153665674683474782494461979815931309736277306073795325834226560215936773363521796605648741415486702930045664751392156129373111484739131328970806767516860066148338718816465729254260122190640559001072678067673117022108816154054826155251128821291099482211549109760280592169433462113924277431146722091984300402798754743954626663763569766296318912590924740822557335642566526354481734966063836440767616571308788726955523295069655261245066901219922455718143182764365369935445464280320482005302919432550673155140690184746401019626467827060818830295244421489998697749746159452140248089134644095199131618943449289212895625682155441142184400565881627230296810089271369511124973731028563433425404081813913318595090804764542299686842139215837620532666883176583684471450440813059063636284944628665324112744709514771013703570635712603414727327305021278871597079804216900943673708420866397162366024185176046108228583752035575007002707985336814441331073394409400211787021507912266875882040848832429445784577678638269507786847052466243900618656210480872171464791387848867985691952313652858308682961633404284356201160029702967850357748998982121411650782132733128880997078105411177181275682540993778236944642261456231947943616558115688627851817335412149063766364287449675993840815192550219619191006669187793154157198191695264570351598898864168440451940426332856075510993227737393805825690400373632221586075862249989314857707005693052148094368478901812597604309215435410027687679551027928267775168115228077721791026547268720924961760570131637546082492813900227962540541425878624281500707163586795628991112657220823653202649091327455724195700860765457928067324079277991848953762058686274785353423899542092539347636384190452278106305647051377169114389883073285053335424812876395576099477294919505293173427947532245033310231265915149524417508948292699168018971572205885298688810444887814873001913590806084472223277331829753250787881062197490003497423868159785807564233173898397601331844238249106912829259869131132990072587755821489921292113695090751708585872971401732257717048002920880342974702391519312824933022855739765315859487003942295628025765040215752210002344818903430111533809999260412315221727667938137552504690229511653170454774004922183343173270181343867177567436210799288627834649011141088578356891561442493421588766001959307730608024537778222200374101948073711131420546545410267546363911222022896793931091080476569102195432566836152661045201126852491708153566249785601839581427768497435419382393906919020385016511495542771782559348118309418440215136464330869210110588431244922934766425639046225242859990707733598930846111580964836393779922991640014914284975942725165417501350070558738570199488135303911702236463526346055396301767850693374375738879998876558154598254882157314423630062945980084581289589583790791270532147869957963087875602688046853495907035575881858704078532883756921448049703835636884287341595904974883134337286472272881051888030484873797903708982734004191088869938429424412490841840321098150620825065811727768529777742480716404656814995382881745331418314844578551140527365496023906827909489996542551671105852359194446376960421820342309088540361278667418791766222195005508701618811003797218751951968131425920905638883273239022422520529149496909785399672460757209904514808850933510746364651875951435878942277174443995788524601300101675276762582195193721187008799349994556280724315866038306473813519343818797087805271217700247613229036039303837790679204721710928259305905475854236663960455825329904778945760484854128458799808237047409789994816880386075244301996631192921298557541054005583584016728662455066255524769305722603356754857977773035346219143903341266670930301125296331890214837751705957685463813492831947241717378496342825971770631337563858837338054197219982014981091817127742554846591943487674725567867300515804779606266222529910207301230593245336056667094754714608332665412166265521139293774723297226635747369696854942672584218003255809121004123126884939383907081763345120859837771611235672170824449986418296711328406605556890905946390263020660752680128908443883633350514122970686382572767789516417776019844808634220085689341558577914042122054911898113369658422479973578788686010985285909203322834795482969497753728586262159934700197883446924902610459938754436629220970621196447218664294275178420420230511697945832949323145260160820267215066435677317971027270099977243860216840785807776912437626130728547662151835657162361492757688156220670966303937246642458788396951571773488322773978996835694427397843018547625336531786294327978575056048765428172532014333216318378521942144806627575492011402434149867847272921239785499102629357363128116659691941573111975258070435562942019399312180246094355780276373877445401192056521460277704828158488976720308535985201617989534448645633519543634898959597550717667953883982488584403823972940741588857715484849174727178558020747713866728406494888788742554832191747147462086419698645246732225711567790821392591887747806861047792102348255098387306373234420148076689581592617245701948542919961969991857891886318543865380993978628107439676632221288134371209018329943772423848926746992339213993735824511899629749063594321557330911474171016309938511163305297773805084120016790377194031112860854007814417296101064168710006505692010485404483493984106047364303064938870491949941652041622585555979900236681417170066733546409729024000090124008903029161838907431714210109209798269845452472727780901773954913988184168644719221440128498060732275157984308729153695202793945456237581607593669453549133178132753791157697784163542402178607009238639212626844444029770059646208181020587715744638691916454939295264219659825203188027080667423998128451454907621051758602231554134926337017022749791896634661578260023433873284951128205955745769618553965129794518132490213848684412861566445229626948452941217232333105123179595161051283894186860665781649419248067736906888898842493056411752837736595894428341170010829387956747773500670789068900523072523591786234387814696347216349406479277570986497686283857082408506249290838413712567475294846745009783172588292492588934135685685710931664820219920319048748993085895759601910459080148944488160229100073277921704816688488636130975912432267705862232600669725050472182094996857032590421348678800908046605646563762296076847224396156971127857185969855557743935695545499011123238477358373878937840478036455052147688882171087276108146167306637372411292650032902343231384320787062300408057410994584584606486928274274056861259623506231014288946707649999069347595751957236480840777697337295912883812327487046967315762313793070718103458711931100488942679087004713644725592489403002003802091929328386552285760569903042848902317095569102925325318459932576726657972230348749331795374554390963626422472282808624385467879565924003787672194700705407666734886756731070684717700445907995101829415808446212260634044294094356655976477959269331140893895762549062501676305687796231079371318609186192036648699294432355855403700213705823187907499101974728947273476031232293979987875525163326599045783918439262143622730994620436350712585024248516937816571276693507643581894476063436999561047378734230647716996555096209077089447388369330495399787065581164225248851338770940407329687779656790677321637684740939282040043595723646448884302159732872879791719249254166546573183784366095242024659142373020167901462222820450733003413936058235937260978390168169363292014454331884399506154620051811912532188363331890774114971323106847940689382488165941492332526037137446347023880353398214250130512391522121977830213239334236100127480413110887525312763115625011467775177340094921501711322089271763093190345707889847707165225063257040713421787819238772218847996756670263586348224826236102229474378711110000420037744988830989579948626270641006859260917948243985589374641095339046484180015515887686599736732028452390368365923274897658560769761815395326928997402052433553727232686419039956250864183948369372844591997206430437641657433399326200526550739736646374549577403013951166270758412129068012128316849427380744253019614266261835163192872461464521191677641744082459384825381540191553168433828409219250055697434972054153310637591892253378260794885595400944775859013161627681356044876830584061300216400395195610239204399963731629537347164445240318610153070134525179016858835679267988633433769364989873903298204849047908554150461009379018708372271812490126879209572139374409210009182154658370963509381805818438890785905635645872011751322476182378913853108889616426562768000891420479282921636512298820352507954851266267485630108965424465384560143179356284875916868971270531454911356829459386537234301089331975346417536982034424412798127178235693131154612636714126435825593606368812965531235827226808718024102451563938673207747916512615867366544531868322628046668507303110141343954189944674109361231755864118051010426747142076468532299980661534903352962284067798369415423337335355289652389000033383240716872407493522875801931610085349749767413837081301270197725172885922348192053215507994107057950001015975735031554597974075972088561842063921087238349095952630576712613908686084819118657840168449205253978456004724468614101282727001815697523208935472669164245002040046258635833025219999264976478084514904836182435255310222447523268322143810257333915069059746974984157326012938890382505079855855128475560243291167858760116506801416022344016451514943292245301297957939680433292724290409596470369644029879739973054241750495048031131181033833926286026368072217250501965835230325140018758676339512512554940905809039366571455743732380130943456354896815231712562268142505698765664201867757352903567580122363759681655052437804043437227942840105019851578335434640732770200633108163462144567622399747236456709575704492386432063566147985271897427231956563763493495764214614692942440496276460065468388251755388206247671970692463321837969546950240236933121720850351722498972874413787927112194437965855731115937737634437194785106799601619934507959436944553213511415769969871221438164464565295209980090783221605464576595035510818808260786078043911180945038787315483223505811382127655359549151730184368823022500720058249304602471383423604119916922098879701466058857264055242316259294512645703805326163341483239728441818699017355010905256331906896438565040388151721684372661843069178808032413320301696368864577311551827605053252873910361063870775020129866745619426185522663893381785785329452158450300479198371661719424183499376116595712421652228041619024975824337557419041373868367745588743339008010683276980265736768211260939612689323235810987489956325166359630019124658633083630039711456456833376002449159386315832075334296284376071186940875078494630411288318607539193170815019977533470242289520425311689160920931382330027650840627282684496962613103032460785176219934586391066198976346759284200168486600595725977233915881439734120352764354956699852090048651046007157305269946351733795015019219205385033779438932461773377601657108397414197638315416929871311526960640885996249154686355890500033958585911762028786502647314992746109335887068137463037305749320179005695824492224181689001651708065873008396696964109719413742868692518353074623321770384141054591021449449813213976078658421447009522229763648006007041590882328339690430031697259015989288353569711871684374904638296949848806840578699257341246401815578694036108531464158982206450714151732934277377849558749496441308805262075860102159240656095104068919829877098939336215890490436662196659082739694261382315712671188214298756672564450279663309813901188212117791229133768262688270987942572635302926612136881490633563282578983831352773094223480825790621128911605753858242418470987986891360809988955347688890943486953999550270099928053790381845956594287303786244298249732687003529681517117257322431812850952382443304032783643931902636578590865542753240814667283480798857700388949017200829096855873911327232656717124347447081441607769842732104833676011074805689272195240207999333710009062137676212671118241311568600599775749182468254129842474659446609467241247967678967632946282699443318685182793405172964300026869334642444544472305941356040713210650143159395398140394439204578076957246604303905548161802478109698319105431974281922619513881104331458556110112282001817646613510800204294310841737335977216118017906937507987037324088536295910359069411060822691906830947614110990292060723581330782939582125635265035987010482270086327211816423952214147019623327307916763606438333536875055169755493547668098747485467497486755091527141350235072163317568835596961202446108625562105632102024665455126381088432453451075026176504434055687913885292485497108294981916159029706023213619710593041814231185047820463760941173133681633748631627405231334413259027389404187999951690392178701105451006887471177562649945072161071581131224135702499905704744811405629899195370629589760917368422655280083948016408728764754119359768644080893453593155894521617007166120825389454612444206063784542241644917217829202641357831428021984895077924092921152474808108522311940795209184950389646027149658572622774705013638225328279939442888096102140540046233703433891964771686401665593688938263919196030826392629971550188109792455473380944564259300057648651361800207514340399483532582038287007327430224658067338470135231439201546238064235830556603584825872684590636858544121626453010723609885167809157377008428916200515620440074869601077398212912212369909096582311528574764205612581087268649062303405024215992254801872525919257854481565833794131191987847101500966336780930232196224712863090562231249756662652450739155933632809456634213564309968118927535649571586809853788156201049575368727376759749707053313829169520577420990750775897221422694274154227386090505909996699263396775636481244643828970143730689119415971758853487857768112666232355396002408916801590706551799045833737310203462268378859526796759243983731849592243310926942238118725943264940479472307372995174856498000452008658295787745047300883698419386586790683842652097584472083211168919805557940195666453883898536182064867884533360050963773847748350241774981608181350700213233895658681589401683339773092833015472574550548986808919370576330074613945330070194866156028408208344162013351336739171968694749627599836493025606438678605601259384113605564465075366829834722330919874042228600179916152704299507983007345203884114640642539344867736478787576993797672762705800039731088366032936268556833035918251367538250295742644837650256634115751714817919211647295708782408410791813353078569918351225584692013469082068469631334945225782151369443077333198362022493143267872129739051311586937275310961971075545377615881249948972665706299231628682790218532587642723702787999472387434549200764920636234142900414201307936415704670438129642321915281281214071181674802631221958749475811347127678324383256542098623339074304842526733083718906172174622054103456939090670451207693518884790669334757246084482909623584193766783739061699313944303622042159272658917494817337393577336419133766874822966917468904979570058175814221727366027211765456817271912883802198739272400419196095876170641183367322873195579416690429883439891151482494224996109369313579019784942413704538914857453468655547961229656582060604330218846162260500746436142716194694837980675495787596991890109864405473402875301873199879539677762280955675178110862235453613560084275897243719388907486554897729190391536066659358959479997477868089026199814231236872725462058854409266435375316592531566792067952166636893167119180485518774943605766459460952521801346431595838484237299232087892035602532204866538686307377998469739163119539362380203143812288368042303358651409626537545840389744244837668017889536837240836375672651260113837325641173713523073995448750165926140737819488957435323249695889547078691872973063465770476807642974454046195918215203300737069659422813211588591457017355022671726457930461874662653800453157130086469400099232117266903002846458992764430302161511114323974871174670752388665941806134366387459214296409095584211307532047997715541290647175578851879474528074241026034652273021507884803110031191201989002445892727038849201092859730334786628642751029108684987354090040908691131716796491619442116896037434048328751616873761463688153710845392427967527133370303740653328550726655436036131119987388096608726576312811769251130385580251830116279967248591578164476983969433787836326925803656587903741714339471229093594913761085510538071685503642930547896263121430083151122547860235410430653213649262690288075378303683050184385220501822649198483548896559790035947854427613988419154203822045657800477397630417488774211699969701837587288826122405316542897474749501591494476051608115243609317427514463835641988082338461650487839262706929817912797014809098698190988738434182120329920753543008066491151823728617058663884090266302560299900435978178382431842796972590994486591701636803783470733239727007869424991339650109902310350457271011639479449230576103584787742502960908926832731477543110662184883162730087231099722161889454292061203096160456616662277710466827676979861385740567731195315109680962917691059638499499576595557201203575912458744838416106985965881068592965920473584396148851881309195824489854086633744628085946195919173038351435084770856934795292335588370102800026941335547331220345271546417633766456835950677525559869878684820481060843575080302887897106973319399943372032545787564498074700104333014170280051871999507731145862516818980283417523398957591927246490886012933645738756210597169829516064066577676965861354767841607473702522102103025467635851738354832335213710081490410833075745372805669780895222950051350421403070714070807709546511949187874342344921764348584170863823267887543446498506368470209419118234819040407674923008477291862126931517160382544023535124058766523451030087860834557495310083168814395418888800443005157476101658579925601683911930386851053942738414007830574748123521193821837101367678225277787480101565749718778016431620968859614659823009618809159803750915917422537970522041666591902196731629405767455225874648900531303943156558676209124086122293580081655843166116028275369343441527619205684313732996005138194383460385866578640088235993202371086874798783140106728308404658087336103592028122603138326875442217936190069590531108196359426011620795873915291159723676177419237096769534199576065235115244342352450113450582143665427902959092698756930186232601360192318846613518002097199059569564720678605047778215714954715030413146784338360871195275061641907606369598295467091486938480250400538810984736017272964903192095030875430629263719917176685850279211287178826573138337941208053517309357060259819409325415608318134852612870623797170659996936668588911440199028593889353435804065934615842767049584929873691683408959012514018715227016221405515738842425566099704562029689278007445062157211542828645227545742884257105266377244716831810876437452970869035501950180769335554511359475658904054776379502490887054827889216120446015714067407263475786086989640887127591983214554846819900415097411974886880558038433237677268256831809356702539288931495142699189017681235931949186758324006100022017760876725198489823560039376896559810702429971243603134583867136741907035228450717243728494852554967221902366848161025205753969229017960561266971540565842953939704228181023377903569086175445185843634478342342286738302130623106443309923457313822841568228085561500464660394318292427074738751729455197764129444545376228263056645312581393425064114564982282583073435337215957224726086498873793396138673412433540931955641267470105173982267593564045513502892277442518836646415298634284309177601630453120598477504797228404340564221784110987893869402667659885680457931127414337780592941340004151747377352780671004361300087433268769044787822177510298508775232288396772494745562928726000355039920054882235819472003136104945994297228111750521584052332687788576029176735294195234108252822704525849464499438428017453809873833971542592676828717446000426588729040110562230041150218023142314006932971040810363115679509259853898033054579014170830059284563855506074352545318691523085496984714104474681851167266432839126404795330861071850614749193764117794015662478375416775050617802975731416080002106310997102752984499221145296961839720221989205740168433066602025131403555921218212453150011399409061621845236173423735847998306782348601946391248398625228433611564413287813207858146335124047620878032171814334723513188216246380035078173650794692855240711629001962984428760923449597932617822369516280834351002505272500216174846028267531782110021633138735635200638497986039079582990720952247842785816942149276751502379289131807483311023229461905074024868503789364132753750988335228036177416125085576684521227749369766899936077609294985450197249763557074567086874065460043696563695399018766435067364400164656248496251671553506053381997910092960781878200367028051342867652652342720850043709895242300648711505114777567579505926181816375462585065299931872881836390168810997310282164034602785551593073048120161157032006515914937896294477921602140067088326000239990988348266471798238293355060951240782264015867587495859765775968918604460476335333765565666456669933295580274002338665054797175670137683174737780772989826136658934779729567490047377931875321861168884692261704012130283860403541386141105079148761797712835105056498874039860352168073505445622720545547995873283808668366347959339198766278366258565924248657107867629805087162229760297294035576010427979267794831804387609094765417540568503488256994267732667218132479016448846809872234961760972271071424917292846784697541823863400445374347068672504119606606829388939458771860592414978523381625816164963451572060217502941887543954851053541488771795925859340302749435679658166201112358450429707162883910855757232085076208002015551703894993923291034209072694775075908043620835540583522693440262822602651282068744904796878878096769603121348309856281872877933369750817613055288467244192987432966377291385042547572012465166958541805323780480959275962657579061407290419259217738239200763107012357182166119885293044983427603530868175448534820985919273634651783151439362844625000276821771450036949564560690766750990824352927294742888344836151866045693745524181214373961140988218248511323686579842704198352479052831916555412055052591909860136214543343907388787353139994786559680909551319449484183074952370494334687629021105489315728736850797666155428172958067835614164714697128911587842759575748645850722153468871731786308380457798403811565844028996423574925595562629305618531533667714374380155848699636679213012843977850696421443776918370075020750693483047085340888748356065039148199301958628120051713376019267104600488293188751549937609097224379532124866078418500722953207106287045264773280747695753277625081413132178978033290367912345341191120649953674634262369598716868505551771301983512748285103687132424529565585987125001157391819194380726850139931947753049367954750784449254575738447718316914109329915243742348384124415280093163994014759102706353865130158448931170468240540772370663758376261683392341122774002311225749854932028241783757084821280024072559055276997886561198019767328115189201399229356459526318760551057865547156150641916752139593641960925891098161150525995970835510600767863968474448624664954625909252154299852151214649048134314913561155298299376493550544530874197179800172232427810150197723726872809775104481816655668616922388353070019227525253919298655179834516260277420798759265680294657949743594592762714460988782033387060566807483929820578395705244523429569019920246161790474395026189456308204228344109476800087452019595636377164258454581753234372729183116265066198586291196044146141382383853090882230671111764972779388261670897166618470944949773097830644118111069988699042175376336250080730764438488277174727078517186504650711768558629761459522440000401562076966574206696557217941101489596330706926680840153201957447391728401827283490579976865818958289673004050059857767139535871891951822642124438230760587597270619687347816383171217208811522177142424409778557629816240211107416989202918798622152244136114832214456924048540788949420872340970984385527785215248927519618659824450458901114201789124664356196871513606849593545110442773307489405943842423019223746644670373401777382310953065611845463598470334763501677189050576726843019770356080767931017740173834321428532519020862318227702816882806411255023708564677168182301979513038928897837425164524999917217308835008393454622282973329657545554933973050793068985670580653373523625647328003721022201763527834526707998226959980625279146774468621006481170574052143654745435560740730468677793935149486176667084939740339684459512879784985619743139670214757417508501272059497543677716373215000978307902955360572506314675250711921963100110727969276813792684818909141196639537218669355355106598377784480254297780532458447882665636238098790932648449627491017321941418505440371606245123704353493619652363679160769253020971820612191130427092835635177906041102929052995788874815916844109865847770493584936740526751664749005063005910337174737061458005766307232337584718631914716744482448165164290667097779101254402843559579590896357497216171219574355927929869814571840562394952041836462207707384693511495496079338802696125312309273066263802879321247186071545236323950083518742225006915472449342385069327791201106503902089073405597009307251173306586555443586616455750616454182068874949630666596102903678000420159511121017941491895643271776679021396204197296456810896732330422773921414552536197863942692328188575245370246021760158579331282938992334301864058960394651558012940265196184602880327774731487443492999532262541060840686669675503653448416679042089037078078185194485574776885325185188898447637756637415733049511578264352723520367407540955753591555074427903415320263691561870265170951462140457563091852042161142990977196622777016750030392168868800785555708585717048619001515572923895544773931476161126216062822805461887562987121202320674003866317221048569580694825890332690434259771533032088895200572737560714323725944513107488530934367945928853662821400926580046603936938697392405697803942997510764236751019397741465188879455463897846034865854723966106052940955465609139925401233404237239479715235287490074934428307308528184430046129705250112261582096299088722154037203271390128867267723458745069324412584276854175424053102835235966006801734032771938570197925741929773262475610256840700868386540305351788854306031931198037534323579941269354063010867519970738429565049418816316926764232845380256442681061796148063894891197012741290227654012402756918737218772541340283753401697095284991408557715115620255136376070866789398773935791773696952958541210212369549630930435561936634798438614931180788082081701279842570253143610426475488392252981619665830111138685480290322577640337245631008485304375761651884841593635802920257738695600847034643110449051296311072457106869910459068647945755000538237249200223298694265131498365031089901594628680396398973165832402995346525961851139293278247883396700432951808629047777212039642608772310833149750092584230052466236981827066391564441608170609093143505187887947537775468897664955594921200529910929267759475986169417509105626699520573395527902843807632293006394097373712736623066485403318889599019426752184597522201163257500781654497076915348974569620418225817707884382128157061962883414408066455943719387882276880798993456239565666687939717102350184374637474707606083705380774431245361960445003153382506486952470255748082549699238377612417967438357936242659988804326640313288726392421349062984143240935427627553478749202028369223624936169451463600645324523254580844309242802862221459396735757448895804812467990114109315149468436323032259330731299282779720546609247821416310201084452520171563507389882458728649505417274302126732331321796406214715932802393347762942179345808065737084425280930955204766289078891540058159351079464939161792489146694317499113522332245823461071458031042434768887536619989596010103267370513758852417435242895763264987364591295999956750374261168920529638269346301422434472405283515251492870444213725900867609054344271272861072754268826769953567982754175734441841874833100693924788321553208863698374133309005421130374390841537522906184709702742366914919538139318484638678015818079119544342422733274646672522704092708874244606083431217061384855936750831533511267948206088837149390670466583874547985565033644421300356086531366602468399702544804388577537765957493616769436737078993254967030130981434533632567240073815438871988109572723605541519295866730209512488935060189086396436777399875176124180607331069977706294887491784767623606258758291217250094155781532407571888338992906832883225016447921223214438440420252807930850648101997119051362410490387064590076803538149730248916831811584632602601610862891203793340154812653954630712659794409208976722331674885384968706293911398916694083295191087116009027689713914053579530848168760489035809760696674621235193567049815618172181847962740318388951076684910457590894169510125267933512083684074412167471815433769701405561965252352401977894856437800361647868398329662949006736148522220311823494946454129775014214774084448339878585774219013454309870421270609066375989915252060221300294791669412536640727653677940976400308240235134777228343397155781283371491817723536373651709129274712989179930367080133007773464630365196823793380297467278257834720512122576209575819583679436886556622265295643858734340531582754658586567085193296008622027956801192965362829095082667861363020735796719058422002647175167812008755483681384981303575827020133141009646331039995711364089918220190234999523106443692754318194356855598835538384138221688180331186503221615162399795428502063366144019217918304549987777823734721077710839154457321251681041903390181116076050854924701530675192974757317526255359646264191184692627839085907488419535602872115692930148888523684731198235122095753556119978915647607496469016336566385334145695092679947232038428519364241232828216616740595647134982706273808028480990642146621604618410777902066308541435660275136138276234280409746166202949661503465650002401142599330601428380657843352661732562198804021594035684728837085689753783029329170004966849670557307883290158744193102042439608318684491139614153677520520722891490786738881700200732575963296874412901483892742293743093920415223978446714788108047942886321155405355765384351940810133800524069544638136939591723944124804683368908297446198532638425156080528304169458299278930984069872067671760210491517432074018811314686059714333756620655990113116305046201292599344653773430017518218398575984057484856435550416695973598936422429006113018071265603331981003977476590407517060971592921394051020179328856404634289632319223815587594467050509218497102432216751354830722770873909555713075127968547687785218489239601997502497021353111080787433439058540173380136600621511857901027711444212641175809303229546709081917973096995364701178051275234005130843136511345055284380967034164582067503932032092781785164592324234525317610775495399377725796169413970823998707958110763495189545865830313982631585875316140133950287096584708976267923304318264800249194919053320958533146213283961103032226867904918248737133827315352554889372086585805336477842681936808877111672773285844523735109676744722052041249283839083604100722418786203693459188341500851388665344578384482325129647969963866671729134614201203267920557482586010706437947923832989774533848574894280037837941150795555142453841858102178240545076654831805013080445779500513465846910213851484739205340886600389913353975851678741811833390482130041085555154137305029264727446000646964752421833388010133612370923517542713156639241176421990867668697629451596612667729525578930997525585352752160551532917617558428903900775951310010681000552506433810201965189303145163515752874682037354679068509344245788576339122005946278750110311939520760726136493060820578004362250059911454376121517647856199487611658517163724833165214031831714784650431507534992642087918160582235528788807493179616751910554648836624837025874506856851808135531115892153230756450150535969489833408232732483903876036710716011075611980433455950122548104980069312070841613250504030954658989214312829369895542100647210427096996660282557529448990269579503959112523388475095230237482679322847429566742943160178460629104128014172028818044419434643849977327207089339255181826356492033440430553337092714324011710246343590118815028374284732513312911315493828208804069263599707552542290862302723707818802164764313584298116744118775017045464319654391566536808072929983916630066018697971988998291578855062634497234451871016399210879225442347743798931947696930456089602226097191010205727793642697568574828438947921403779190956477900843761755083660842272208965449052171190085376812189868161724265176790063637548055301615543801508811120679254845307690797978605286261669504150399638346127400516705469841386538701159290217426959648866944602054029955120704842663325982520278848999865197210948054420986948768135750122709398460709138468677353682344915800528398239127597614136597584279217079081006512647976797826356622844649967843868694820196548571294861146876820222654282214370819894336534918202972090659078010342307231130901878876773829818448209072086330355147983068626839296869001201379372526309056273007927577703989819522890438150843984491482994172786840407877877199986564128716697464631774245628279193460920468067583738488553778344255208213658640029615070981330274420752856546304423684034627765042200780717709209150321313860285214684215760239608362911339577680866988435990392180806987846267040923686582288392727319282506505515870872273819902462247794369135721828691133279706388302461084792152367668055752477993133003233313457193414327090028099057718841252605271299470712687866527994925899035699057296666852667277858852721916816745277696293972286765492578639773800300632622566716860862657679482098998495793973583042831031223089756893820653059138534939317222327787951791092856458872913501593131556183647931400367229778294876047964136355531231016539093534296765729920512137316238894609414492696053716471466978051994490487236501593225684198661887676037559457498382954967176838678817996108337962304919717989749904353311511138721429034828015128055417256304326943646101055463324282392989200699951636385406474628719823653291296230940253132595948264599201374572545851054024859480411681424793640075796066738468966021537650744422971497619346644399183220139394171267801099634145086881202690256794016477917930067898005113450370222121734531939353208685923643207532574782294785109430499711295244421207572580987464638334311888398340445087304940530944143535191567478825850308803420824461518617596655989507104298296411410358393004168796521540725262553537447845436482131337298067687018315013508215408739541669672006911745242596209498088009371627458773130667540788485189338522044060417133965599253309721586949796157926488489953733612426489677444022480059892498705320917966421994612963727689637604227491321191620150072378740134842804296005078530383117332839336490500390318476061100446047919027258387815575286023882925461084224270305122507554555419559816113487347413935055111325370219688032783006942864331949803114316496997178930599186519760103907818835290749635224923530173710728555358519543320262057884517267327469152533427848038379850659123395638209030125929396474193194991656775506014285725262621336551322105933251389478566371364613614555817426153458853461762568899211402438856134807359703257840872048774902161576367805582500361504909158480867661480503941195556534377570535695340840699056618375327215354584790895309123059664654475004151457576793557133438544089959095038113107499196298226164259941150410482368593132474136239763949732197866851801450146490138601326479681339371385057725293601822451328124480578567622686720221355421891413641118648738424930619217199717562370160012509789488482964103020312399007760644125013238460966127452472805826959309852505195777785371271209390489617179115481999183604002411478616262788494518327758396706449569396987278068837183333674927525347764172671742927957701878992038972015917249257570198493448650994111895353480555381980014786198588195776397887520218833254297575989313450694218499529754832460937713200898781426365872199774784951295543607553960395890953263811029532080908807658853128613846378871156113556635223149422003792529751201459839319948402651750930547188671785865617499008255118038180237809305746796507455659559084452865663111187989059921350707033946812952555846696042306329880430735070992978847679214352742559660301811333626939933760726959108683255045776941164132967681412542140007462294792726109661697521796280968617140272554297158520097073227143770818660081603139163192608039619050783968310489379530631542560687009905803984409681758465312787482745471109362029781992176151591381826004482534040190862238925861239929566587510096772066907671994557532659187911872531426383728943938015135326242381555036475010227837114116713989623270234714015965054592820775263574008254511554219449277061601983814512103658173137709516461191675450725172270647165758585054177980139466422522945891063786025802576127247820273513385127785850582094107832300518762088636047561775556540993999269506751928229474455069525085931060197636492525919557193065530306923666206821534946954372638862565483836149917604340324822082792779118993233933218972785786574567157437919595056544084591519306860906957008232765366722570811506241932262869010972201346002952496694430717308868220975286996410870880452099709029327528849639398870102220319628844032338579596831545205901232977683430456960769466426933233690634177770375051199426882002313747306708509211093187311851369049194081632135279319417177317966470784600575930950304439478447941593527761819760810654985367877710630789826051457768186435612906620163576367167409230248044408983416475878922610972563479439864265500051102597602532121238829516387249853739906746793089729277408792256241830589314098795324189964174358803364141662196164746563098122969985020180600039104163845394645166385353691094662256999325438955324398349349383617626782278850417939241509680779619657552617437937799686326099022013312799184677267384648647284908092076943894132706388275828858406801344128180517637765711529650077110101622940328610596402636067017840168084729102095896586206649678641461415168124861128680029586677533671135706011795859047286729052282435865598631108158565951782870962872237291117399944037478448687504190188648539586462951938201108192541134418775976114820049451808904510849806200400294123492647452977161619508856703781859450227553329717575915720351555619776141534442300526278321692654482199840190977958109643121624304197176003085618112102212633562697654552238010450184972106922712581647374175799268848920629448338355948226716434437371760316936023451114462475034491915746336889918509294325429759572560006348262384095023821171644030826411805053348189487073755337414697141279763028190020525273188198560092753214808071080546007561813660827405168829706065436456162347458822924162224235085136237979459291134578308708194045477654717378544774680968577783500713294908954195226766235773690421802596468790468488561801045892348179928220786487845093891564522655872241849590402218084039839868785314654258443171123829976389447359708862844176412332000438804968907419913112268619872090230146901807154093876174057236133608217903922065895470797099163360040584776037510888505640844439565321960877069571133462626214561972833817659820554309058208309175451928070552376447012780114750947621117809993246744318532063694761261004620482334141526936133387212521852492724397678344653709426724765775166293986649241781806838272506519521579906136218799770485807546305581350887292135600046900091215002048996097593857469717745148006455030851746185824048566596560341234891119102931928436886904174286918935756124657366951387131107418957309346689875755384474846236092585373427872273582495494341523083412371091201753766176257659738298717497733499861616443745206100608046376728822715769964807591964178417312616510927977896355469099497155180945602060634491842350985335330899226145377380710416072581122825046927618806971800991349854098292467471850105484034859613954282900932733555514826145280919349136091436634399808473110968611753296939973568580914508174110498832048648881202463439978434711433567490413492582791814201600387029324761312050067882673303674062628803464311201759367798879734182401742263639252584546676839577543550524877920891008549046981722774914156527937758091906321879001939371529540736880490049442742992373429651955727888057647448701411220881638567262491457115824480175769249013185957456406812278871222221338370080171801338854132707056199476274148082775918036921740020649528940101653882267485722009640827947938059287735259017258159346297800147923385846557926743140538958032930328344625789184121703037991466850708033099927587040029198900064885149881950079857096904191606449619929139120755506741541140448183592305513352152036803873907315986536576578969892927925837337380093806157554329738213601167402549090847068371591027667545810946396539611105356947955043071501450858271110754115361594653721927762286775939224764316849631016488919457787460396261152721027901112825999352561832544046826357808220262489810320675404193725481355292822806532553372064116228050994612919267603659293868254318802732731721283092237788894135667430021338648791038046572920235016024316891822138696834123227948769636149215156884764456720260139822260378914197710727306361103915582225752043770281813654887385279024268935298768960397508786564518232358982032980627523991970420800694199316719492219566481358950644845278041158504608429295448610374620027302913033642107176841087394661156595865174731464637091351195070670243393018576809628771826491420011589806998714598591079821542354348704012942246463971901097796637716769705496712880009672831895045509837241909470815528932295598252757448357354223461072393935206531053863414835985045746475778082375020520694039908913812729502454078847683733967759044009161691350017023528916735788417691063966366221712342896942686691210409312348748849025686544270695944506896549463613851949811065963540662902980484981350086906677409921420679257150288290848651807367242447827767777977536673071943228080267723736025956137439780942112546233686273597528767800261921867376704551727458937376755825190241624038353026441830364896221526696701273504406118466290404786346068650984754590654039488766625165831621989218989475450674677501275985568386707231558430708420295493784982344910320391910821819342784559130292474335611516006385953153643160649602639059416807602897021048425788008419293602938455219035007220368371587304925487447693575358572491757331081523873115872272834851900620134546423496954134578187361828738903288410882292316410860183518475331888520777270269769259595814686024606435876178375929523332644259239907277826833465810257371913185792722675443809408036145283075481374480291946157223634854558560426922371247727902025788446015489200712787806616195755164115810957950262182391645027376491772081363551556647468072260911383993697418882251966204109989513835089712794735714796804323945153759658860859877231130350233977067691127601145622170716514113261496996503647368350974275112621963387031073805715112770195299156523526522228639697302261153974472084440388114766566194544901796366764115278524728079665106731224875290306951061267075158131552408707887898035099097117044635654444911511862579945573274011797598815419264214302799473918457117626365423440249652878579236584788118782179739594367014013556949735446984789039969245270278848454660166425469795006919878208018982242035641665199138293947940791574564017363228358149094855021656733156984908635411918080873094299912719583690393362172966300745248968218671998369011081560863923728833300716961708320836364116734137598713740442170452464876299963118121604733135190524540799136990351892854615245157250357814779730761637201073498453565563281689957698239135863029468462100798200878366914275275648089732356619650759845960872642526660217109715580635990062799623846385711335574407572731737814637176446206266539782184166382614208230136841333286822893745747314877337482006564877372458010500267012349324319491373254200798941762177720439683640779765982490906826448075502407533370392650072015609898670938822003589767454111264281501526463260579780644207961419195201635726525985796111668613805081630144227868674634500433354182490023599218158532383947435255188232595919268990491135458027907523461654080813044975683288772773550770521978722880495095079708250629365780871904283483001671266937355408580692388735097429649675528854592996205099122387628516532182877782291672167763093348655325481684621472815677292888892474353827677350736514744508622108803655169074956683642010055972542497482840654314711605733131210625533483318515147051781305144560114783586018900939724123715662807677111700885076036256006759074496128568675929129116886262630410478778828286452432084872766852031063078542454574592750434834065736503286449144374537457352453421665483839794641997283291972644054690680529167896089644811995598487357344068379041563772992719106221088283483601302823974255764326196870905920015176654639050786743960379757420623246922132237097855566639215102736565995010843501027888163572800539550507464791954462442610903896308955205583794784712758120543149253173619870019391950736991038586268789695825721424135950506490254927913633230824910236839626907588058748906065692738167951117416465731898610986062218920162046978136100959732115911260165075213707133966302935224804423836502016643201382664700366703277214841542762920843429637101976828317006309489540374433477666188521575738189737652397635485094995894161185650172322503216265449036687588130609619183019828519745088927214286934701218303626547635381876130990547950965476150495440680316216900283521930405612468078217654931494824776496453021726643424797374224037705748994771570423497929412108173333261446603336817419892880101719799716892460587228162994860098098033713192511198213177936001834075146789614673303601820253994678589718282143558657382573763121516557110417703821665970272255175453110841239425693886451935248734213411397267177428866146894346199543172834839101128493579122119322140538107001049842701599586109595237650209818538903006857941904413148512426524559477615281454251210599055544455141284471525078304786903735872684824433581682081939182429750407064614468092735729219928219069021181188020437062454152955811962821813849372762527724388238462709936197838092414905636455580114093983704471523535147795506053160771532963382636403534781439427234192306837419945598751614310328214863043062245842681734930252452386191622208800793310830991965633487139094667853323374744818991213055307235763060871220709094720132082458592161699344079952189065916799246745757344227842815462226996075120565665483739134093140110840140571029430765164463749498523326584553998873956477527354757595195852243555353874255133637037710481839814109457866358859063786025177173714293745696962130459629929495520288990965329361144731222724299340761529664994490367536958485975265348535090702715502936869489897230920991736602907205517707475780312743391707645092439214108400275046420597239673062574286286636650090249519768106842295203546587438128431745594415427485813326154525405136711522511550652452693390028282910429722313989122682845434265110421300142428718217395424219945758856270509222585272262509244932371670833036684392136405960599073318905216009943592507990664789880575585246894425114869638352171707335268522744835025506959346783050323671035502897615473991497026637511673053257314898582072129822069882891949990019424240300884998835146274813422431483134340163900749872198830644927514363338568728372203268568060035974648810706229795648021458207226765654330576353630969392934468016654390347148246442604332709578516609332665965014845132852774923646467276897943345585454256978001155607202724273241278506641335924024665436516412899870450201938077347749681566457183517348408150922288040302984056401340466632027836842869812389743389767129143202878358198632627249131107535219643271034380615109659133974013291368388108078497164921130903298645087309787775296916273673862581365720587560981588308224499221767564304738070122267441116100726531343738310862469968138400795518913508709953974621952479577714411516485769702766825675670103134637664124278677154360794263880052479386758627098415708919245167277136040521011154302644074569399289118317065225864860366350605658784870506241824208940281606163358004711611601741890302798794547177804739911682614674727634971530389090501179959788625222841329806166297784480536629624356640520858690207041052769793577622838679858622406729733482628295817059882557472993180634744735857643443317032961260357362223948243235634607413136383090547268025366016617866948482732224261401854194008628364000807912433520873085465595642638035395905057117596701013628365495508243345925462240155063372909626314958993711010265317009404684439053921761773455512479690926597275450566081390677131191397852706841307595546652917008119912034240141973394259199515860904798914147295154627002358266529582025437356757090765232131706417709444665457622509943083088241405234452155067765637149324040703887620512326908193345819175219991365804284270328509344751264377209316058668201702883558860762367521850645830765306903867442927261380998246389508245830285489184931905666058629438846782746064702401405067767809387964821806290631893744280098800943313768162780896828732690343196355456857126875190162373140198510971863509833806486326056300714199787118619551854699586176258876413463686596579325191115406451156699141308435453661596224382816983383193000136539880527658681966043626665405700571833112000380742663971261708013552303131707283606031856779909526090966349061378119417445460856124497958051689428535051919927347051086331199669325323371587484369336880840334288497172132093919363019530756845371539280928577806532520842563016759084389397793346302294066328705217539218119028878564493296624139089944001385218206079936022811368275390078357850128729528461008783267744800827471480253098522270285169751452030917931249945689457984435230164823824547265949789014180684856035523394388505418879042034218770441225337646237267053830978780513390100214726836370369654367273001989842228470696648793575786069635293684550645361051511316349370559772157126632225928076029249955591891101097314892634283782601393880148843006103930946825463350936477021692750297418438811735923722752915276729733106809284555952284349766009686532326559930748955012455290215705246127183133456426354884250643573247364276582241058042714979555914753169896537818727241965931510524432182050346010549370027137346318026277153310612427130496537654739206921238879201803618707315253995728207527070118859307320303046593465681691811338037627897432909385701057708402641885844606705317148463971355273631204112757446428231335621939542708240230219067585414995498690663703815863150747914377339543108345777682936232045113604891723081988062994881104291097867323328716555781911073804651279327136519477115868941809739090150142728128304657672461073834369591425446591286526577075905052966754088859691066519875541334225275737526003776345996467988489593721988554855572798625377063078274230800211718270864996995999188044152531730799283586735911969187945223322758787534718129716150544897351020938476169029445358233512406749748431297514609185131688625420663471304102831409438179899546972388753907052123024314774112466653760218904055880565686152664754654104751213572608154719719694013172615800338067782793364522603817408580818063809216320775521564986990267448342285927505911894344106519085223990484403238368118618523560761891095995294839921433349700672763476244357211369128818356565425843331112459002142084755169859777724259642938064791872415812344409335277115777308468191724228056953156114387179183818422188829748112529910992599144014022629294595424390924913995197512310321117499236765223813256155878532771798507805051877241650062059618976587970410125664895602165150301069936498859751969839112361464221198596518385534686952827887665039594861239134402391513047141700053922628767567463499409105425458367962919472864321241588143405619608443516854297266316977571669886748951007244409389078354335161326728028327529554791077960496950749254858461993172052434501507659841654466488305152757561152138877741898902853181522785937049001346730969439001510608453805548472117057692162480586941464691217855095279217040108564568201285641051841549699378611504821214623926706452260612938213070422248726280210235742428232036414888496365352578905511769018057666670991925530850164552425103640933965189098270390600313494389827531882710706807899895735704213316333434377611242024480093580075657306214204233079300660128582367221220781084491321629698708334165218237211571557560927220059363845363875251071793681803598181318255974305698398358572752811289518300789809075405018547632989462941191172085490005905907376067695149470011136940614506987597633461095994566329982201759736243946966570225946718505656819193262448296714928291757088430034102938581832394414089942583747749778916087203436197695336324934679425424860632912792446473113915036557675138383968168031422678366062883380726246645348677883398044498405390130516502474625857851259979258600050461710971646695669315464003259066468482280961160488516461275851782587685944356452982790274009404510048041527958173348899144252219609159539807524582467013119610837865590265842867910956609643142485534604053460260789283207135792241062766107851688051512998250191386130921208702547650374285547460089017650900691742182050722489795354702768009434918413811817310550232454947190583326940077816541806245399892790112794158932495073685703498161023211611392673412854500224998761527639789639749027364496232524392153780058058089607715682663931341966819750002770012394837054785423052584180321483461900970115725384905757670785589837508107434009886944536316584539011348110461750335456375885773198986484979614621045763669949308558001727745275727147297874664024168305591995708053439447161745339552734135881694706545057941636860363266170812927191199159010422647896036599750596299367203583784890512546468308748692882606932798311873424759887155215768862159024098939592885615530288965719237567530684913372371668189469764791390157829970742716581766206174842809697700078499753201165655116030013530114007257831546760357882855491135318351302789909422517040543875891574084714795453590522206642872877061622049963807758030705885299044406896933996517374941945149032344829433014484602756626072776847811419182928522308697469454020996861419401349448073890851685227892581062296029670653201681360875772126515820691251612637463370823097952283710047301031154056026947574919183150048508244141256217353925186258833219198035473585990225849522722586543358258894542513221289660818676380095021297971274091377599260411256452030630843272815519243406662433092214907958694248412118122827446520861101368841266439729467499462224485797714197504189593343113308924355963968477580306660128750265323363089276883670151364905270229024501740962485871416615224787376384465774243618260620916139622742829310189121211343683077958838435155833291468658801002966647680377671485945259030756471731289974641162509925793358637240003640355355379053867177281277138683092185225143910795617381263829436692754219035951969442572864440890771947798144377596129712146507364675005022047154955780805283058075670570482376072041151140946534644731385795922758260004726682904510785454077877462071042213326934067946931113036363335208021932205590323339078543944163408004349263368307380281877352699978038614854360321056931429566647226110141888801911540904611234636249886063145759735051275529997810750801254643264551877167191566645936675552952053123474054224513639241710789816083762632623108445391700973430994551587020198432269521661013032640844619230932225039615391504394377836499909693552973605305649361699879385520388646098183745386045659891419840990701418694878393408706180363707794832158176851640235250253725428693006565955239227969093102501320908210682251665840464601575991097578073499229585697637896843697411296401941416543173140303841386565907509934034520978282175687751026740831296103602243320473763347910495750721315084372062022977279178963149441817040679925901389098184966642213693673338245069621962475035659107728830392033911263713106008227885864786871296499374111011112175849726949563090589767863339554257755451430217902384280918816253335848601378489993619330390174006747180340004921159033835952734888321353222421815726794320035508019521434818369937917028141351457621864334706602778326349462981236158839941868460881331697217330746711544508741003334802190496107550309404033518704885720990130410897827661454239813745183654555284517154655333984736357392645064786931682289674043359644504168662246518349405795556669262405437024780324729115679230388016924737680782921386053530023384003128892225380617623163697749768468389644786166494289402649308062095692998791098132256577693236659603496963250772474444206259565315124604846445258026051972043979322105174525505623424509176667424559715440954527622163833287855164903404286675982501072412400942831415197807356937055789287603226766307095297362852977249041464636534536887826544800386142839850829482334143020628208858836755363910685296939871540937878859967338928373879708711350221349321362831016901550751243861067983817369834855289161866361659736541106827587653519508104162701024466803818828726789111881965204755592455217537615812770221391255982908068593553275532252788185760224556269908059826691894503838967616816651143163146579406591363096455029558660473811562782281956055061810777780808215387171281973039292120911736191685930136450907616304299208584012233252833918078750274843169846017026823400313977384142297813482956989948923151648956169824779976467225324322761047924198371755338420139184610336375714395301218694811982129039463643456830890589980745155069857352741292306784295371919768465168662485169902127851962848240116966611499603096973930010705257498541398198640059785529662730564916934269713346224534533460777016398269711869555564221008978268427418225109130408596072621348262714475008771933332244886175520388065803481965663263040050952570406970469999645282299175137517341510451572263518040974220963070655561889428060606863528938057427649375654322793203052929185306146950419760781049370170618378858869015569660558387885013717555004755232000381205818319242869560666402231012221475601821024950699691225031073771269282046785385861402088482105348883350909187418834655023813021582163160692923598411744363405261386289918829295316052926502253289797207348594426473799493043558776580995250881173111033535430857893557013420689816812577924455418683475383308370148416092435130363803751098227400591256467967602722376217575561394668339273417835996415110196367713638397507705792875414491707946817607422441754926340035318574191482410678490324145477089881141863156140065311705199478533259845163232341899115580283880342716752699398802929909718003847888026507557765667927336303050331267951272361155729129848112502310778330125767028235346691941517302698678965755244786405598660307471606195111786308347388234456075756719110767197604965899454736214459889485120711012301123828820772681803854198095040850910513454380892760555743187543868078844245952627267669435746823021078661067725042538107596878295720950300307100507652967554706950149802247700229713402152300444837703233441883782980145549780012143994351026875576388707935401381039501951517427807306518242758514968366488712261527014034417444421760268351757205921639853578636074029645966509382099431423600298561234210508964029048600811305773238602023711722826069217016303906098152519174045621945156016485972396750436567466475523236538120067333032271288970918186583606387437517674844218423265627318922062300780017023040254331059460879073233589418641747152714728471062887427238075907732148193637455476440430423936244876308714661973073604173640694760113884701509151642669722197733030786399058019109589858409581523493214017138819419820254649137739501469036875733298965980938459809994835504956707658512017293144847833764245422370613905908337244059365428397519262760204478947438942074085851771071342459631277191583642930805096212205060820265937275864213615844472933632406246422113132006646623898154633925952811539168143072946667238196656214319466193296695666572888921610780270771396472059617000818526732755734141726979758597747222462882385883499823913269077412558026418466515145167469751098330686152671547110875557414285558528230563374698203932392884153192573221180018435578623125415878605049181702479036510628639009512532728361378677201421715147993458035740593781859668755604535203226449474135304181428967577354308525392588231864202841789123219589476499999003881467348888250822676930885263123235065994039223698639859667539415019679671780539331154010886694692794515788662346731143481914995283330276237604163613480616280870208080101366132376055695224886811302310396383767979478528839040715060647103972004279071093704453804087109866233325165791475089172411655892589186488308042247529786426169462840739574978094872250035817196659928166611922744326898698814212194542112319672973931748857553265900482369388566807963602892724477660351264100037363746155308431872190632618811506657130529438105976944229807758319175528430506171875371106332497696768407131617759007707702932545021891326509066984218973919252533821006262187026425168820950714726125231047333849885133130655685044141272080706829973770403745949814280665801487370809248364650720083707753126547162141431575739474050263761966374863539472172661529955932809285550780190680641913636129874506720481525737133451877050335148317514614305125947321344074956065745995086452125081264834451940509467389565757867005728668057696181136470890279836225837767331818208529611944350872642989597744816774040635546929202740351423710572853084051655166628700480136291796906892769090738324660646439717879817333776571097500002594320737028548303928794725972415155693542027801875138639140172895683420175121865680703383873811060361457299337678559508410855386052419429198310475251976359785856813496292448974114430113034661787543699742761406968775452857885868924776752361042182563262474726226703240164386256167602613539303155336047888105495110949516834705434440869737366544602015080893700197082036784320647245310180331187785076874857295058591620458237796534708037559226869485227035789538987569357771571202871384013043995304290630634591525311107987384353662503086525499175104680771024087606976617345199221683206698579711146093550212226277678962363584914177124790507021839325225695855146824061718300853512342453195435837866669454993483725699367378413796713888164699122592897405647893942426151936197687175595826168840901736404797292661665319359460279868163554473070841518771673960487529893270012665188767660917331227823254196894869838092180022269378691109063580309081175816257683272092405267034205876770025114093820835308842926437522050317966773495350133166771712366432874413219737138153348622383842231745914981109127091192891002966861468968456835312836679209995264172645870347812768536290455997613971008656409912644358738777464570321868053765152352609123394217775070546636455131196588650253534316788343919245716687022263655480535497224281192286829261004480867896190109923724278496636104482657568351059905417510629736684531222655718304711970999335529736044622485939421991510308308952768417469316731421250863861224244173766205327749159439602147948256328017311172279963148061228338522114316658053083927335789383762542196491470621619137154114880559591502950117115292855222497155891941241158889621401677990115035062009783314638817952256026514362909824527940358297600517227050402477126785823445585951590298985185665776172529616852806789833348680928091517478645243579611166073972143701854179971859972449826497493822622132276257556197426551648262879999022556380521097731700284306910226894238384527950277541002498344659353927341900276061522160954567612946115330503666206866234948428207524642047828091350162035387550960596353509686303105182098817806361975192552227517607846312596507517441498020393645967031698125993513621197578150927466401177113687687453073883131573538831067631498530997636934934882031685327635637515712768374081596423120891883710331802497183057962801427398233262612207492715782836367290371360674177598101518317781055026309802456501177434868127218408664627311332191002178205325587190568449298218564265812606444713333671940178527229493072089232169518348867912208636202097737270069558070401099772115271195010098794976140602301282437409497552799181934232826260686455670698789059752253250048259011668810232236370677598159002532170999230354701758391844476933117217661199836436752946288549994035528064185029116645239801883685879032248401824866994755904768504506925014802699302800206946390504949528178919817873679944018236279585285913860860685667450152625600786905637435511814616099301683352085694948176301774895603730557190772589181326469274981418392336481985751150081606801120380534167555271944518032932903310062925987567644720295366166494434335657000213115379149087267264365578995889549174006068919075602100533112703860480655145756605539974672234320894679524020311673270161575609579946183470643175307086519012148899812361710444001097462326714435299808387736139545701425780268273977423277783367220784139289107428256650227137749642722102194668564251907462597236441132920056888042352220613895311429869336819373252278110451014774668065096711232511499443923888555887809508074878465273081810377839027642971495569804431476209864661551723485884502580140943783512405069532450546619997267385213150578461164834563912364144555693721976795001629323345727070935346708190249638905099605517238385488582858464825006785934176235169935096097746048642513746721679778943026049984274099779141448568079146432026409037401017870931903537079760166904321444260928971427438988345647818965445468235437632020678190029418014301363739790121526349150413258646076297906357235955966744129328715188652608463890692542912723220846432768639018988905774725887613068891829563773819372372148999760498530421583869563046022828435267907504396543763981997391403598015386418495108523961006001322821211465027490350312169215277181285018010161669233960449825477940178945699062586878809930848359086503515528266836425697837409228022123364733867632216292725937603722568301894473920288356961499241091590848267927788473591894391330638116625649177212111388716351889974056806032861274651218908284964953632053842594484607025753655690469364526524894189256945199699709866583692642679274411523335932418725786205428500403840198973364589365336177333329849697444113087020393217006482768906672220206701340960110520234229419059285887536285513167943367466409428237252920075533037119821945822565014579094652660879552838235093973182656927717291243413634832603069108588465302980484920988130122643647540585955710401813431576025361379382478866782921592744935843355150838109439993336659200026401811260298593445271698070479491838284454391948180006296712883405658728913682143033336874239157448052611123215843149896661552429658793515743298536285829392939859906493764371138487766830893938713191020342743463581835304181354522723256464573403628698283018768102418239696940287669033866968653353375031317792625470282577385958248919312218786491174996794928299216647389228290450632516092977784571365633003408958860774164336424165661159824300029430045417107917989648274687702924374605018797386549373505334891588446531406719473839542640753657761337884743085366224110190342508795307009942350760520372855843395296654263728570894064952767875631815866179488323124106580636059953695154891377420334433020352795491401153486003715866130554948778849282163150083005729353750222598737757635889773118835566035293273193597337955456054094457619797157114375135215523702601954136025927686604826827496050726788509549936967350654909150552731031662585574307911666823891821179064904748919617188954124285963420870668120172031498301772351569052955354906976319612867357599306211655846430118164170621485370767272109180982899895038041102519121623561936534815767402300738871134463089420218967132751014252065804680431499922584496394555700946102510869638083342815419740299132750222792854663329162361675863045850609252406545976104042938461757005177852668633985836158445036262774149373448183367986367187164651816494246325922964877044612814016140601434684913815712308557385507504269231342973809095555291366453036905524128666718991049043383270737686240361995720216290768116012842273454928315272079386156414900833419788368560766950248366990079278721174371148786215119857831786631621125782625199106045900691220958106782834315214701800584541520035766194056755681625773694920695470405598757694529853006858110057549704500647098384270894367481842561737261947911015044956763073618575165195766599772714101629212213571203202912256096133724149612496473299195180440326357033014840796090956583914538609102239604642107496423117069830749168063916494688696650651520850348033025317144302925022156928862809052252237205656182276332939212593512088032447498194650976878742937728310391147226765843327200312741813546278128396920157533833612252639995370323846247719357256502232387465733220303844440479379649643855870805105196917607425083945014868703329348087359504131387562274652756248661845858393703987776470638255482541922446760831528156252567448891859949927413489575518966138746426650583396090266908777544074814284292548470270940465927509762161701180496456071923866379851547107150030860908737469363855419714685480200022310417120992563927671360637316454421129874380468839434405698897070202149043788844254143736892070814295574074986698752121004966066300051646146654202128767854527926190455011187012988713584857562977482624553793826299717085661901975667273051195662825665909186654402090656268625250822040508709845819394935065274593810081689516037890824803414960618196311868117152452668334494519389411064860069219464990131044814198651280063833248077505632981985453980328702654299557954471335111680226148189124880817982623702979172059939863794630154977715035784755099489258542607368446219245176568642823323089161347820573965645587799413831319612997365702958131376545156735029306199983683469531676973939397397328680357930629122981680491428423029715699398045589355911173747744194443431953545085697388261680989871283393031796483229048187948698902334031452452475276541701645632172309175167545366363936722012801154089141410805285001919384831682292988166325880986882432299749121725976950063080588042595356625987984647012898927932882399730345563166817166882618406215906245960637223049872740106244483637070704024046135690090408713743064779926403590877366529898169596823507042662781985477736993063790830998697790148541422025080327539368355090454484551888043953277490566670968684659976354185013275103456731181444917241678953271766163619053656381427212283864448641940628597159652500325731606553499171973113945916825583453552490437587526848311491082972339339258509605108471704164052803705444020270238924227491489260250334342499747651382026038679790573503835638029622291153201157891334634120403176568558652002878200368259986184943882082862064066439953419809571471890629684530034248773865188310635347036921952608222702864523324609671776044877688150071132798480459393206344081077509205967433168946632729401264585084250674183793734451078586397524432035776161691174100279402737604315424630795798848544166604732052530576086375342473180603096471817219463889347532809000543034086506609072574828689205550767717606320323646646171423956959681206883640395616185580200608972227322923936942470051438931726492230906727082553010350603175334449248785678422512333158104187549700599570173582004446127678576851371325699136951552967525705160700435487525382463299648496919205685209835356352550884170324686869387099250555692702465703328099161929636480080895818039980023636251144875377587127055518371388057644024285498084372094431728718257082956855291057504168346301572554491705793560599675301405698414364082042861577854935878451137751167903415347936788832919490384277188078793074252411066618513667670033158902053034743247357810779481164577875210719734539800176597951636122321353393380355699390974318168185789865882934476805965175739229318285426074322185964933942399930315631261893641972150109773603937304924202577249316079975440706371971891201649250400971292477016354206052309863344623775068526886167759484820172266695059884731875692965376990851268802088187524031814403738289664204260536775989224685363389147421610735717323952026116716550553929895088244881567311536120326156428135961229465977530638075962987993876024520809608711947100033930969894538621205796580878089493011008220467142609866399709887905704968590421132781448617407245570574340163189815731348943840297977523599654190186575926291765541204733583270145332617900942574793354239432643837139365271940762367713244478271969761784118437750468880486635184991725576356063288677780474450451318285742362510802648219410525100805358466159291722582689851904859276124355746902052931698349777438802646198410882235715665269903776593534891598705016312178290038316938320589459130487150239258107121423078053684130827674152859056004565569881603977255941590974510731013558218211238011344403003839780797489482046233089368496427381423196409566802397791137845376578708924367819386040091463064318178211579236219347388658972905867893415812127930827644919141710154310477448507329819503195775029743671118489215261694009619809804901621022636853891583515807114240347259043848298859621192970896901289582434732216597035320099416205429794842681250941358602159399676970679114365701774639802494391356986642503560491586701616138904818455606294457963564358231910005330150443224673767117006303980775672551555535818216079607719776861333906442681125746832050464975958783374468274172714768582135490035692280150203191644032420993068736204532404207798122574935075140153691501227151396238487963795138726953579285676717849117386864025119608058040034840838465348956574150119526171611842272653022729213572146880258766238648624239010022879929233335681722119198650796616390867537758838033835070835087256491151799980945374020571598381221840466537902039895733713435793042620012701009901433585264025895010307221465717860684564568201813778726845871501851336624860434685406064694371166804739415577651692082660556295268495043465076887391912944823379782023810753797375226882230409280950615516783842605533549369306294089582749970664104061524975188937968604903220254769173557416457480750476412438531056872954897644989685795455851436472681798436636221518802049281791817194571431426304161301112815108414900575119667346500422597194315400739458761666408180755665655930765147775610101811710733691365484348991342433095231729295501620612453413019968226180370082372465893799191108927767668756949682047232450269504451968676151493046006919093154678860712295247531100481321792847123977485155589778561618545416290879239661031617193879077847980910517245652574664012857025900108235104162222234687563881848976858126986247870837927586890719085449234366696458083542187831664725698171892284283412752444555400294942383992567791292687989899737564088616851481809239922195818429012341187771269691009994514580289832948002089429092770023851810155718114449523358845150843593595364302431861431665214144171212304616334564122689871620929550922653799352168878967571794707895386816291263820138411939361873233254803430208600465950368113740122735450633713341276797731944153995268219154027988420333546764271030640514770902253532718379752259166563697070346908637447114641252091227298229160164159030724025110315695101167006005477689284274424987603835475800450192877837202718183338129164674087010477176024660938246602265254925270280360938151360968924201621613234403195088077930477242294538005474639896187735045432174080366271886410638444200793855612376871603016245886483655244964272825989251398275314951938690112821642642247181238135856726671673952155801122075046798832090741498924549804827714412569597814958984633375195546196087212603242342597516081069031884012019939924341890600342235359965119576194357025206298532784881253270394636770783533935227185964254186405728555912891811610999029787025199825656476349413337174317535651566324118625621671774016756033733311900519323789835460301026650320162888791576519464332898663822518704458682547829612326652442545272765223237194326079130531267584321987473458966913298765933135605096019686333689448465226481634768963714260428322533314756728005406643125294034313822697586970507537922986019165157074917658883558942592281822850100340850178965327766842990096312913241114220288356153570437111001971132026483819695988241067694552730180796676350712917756307677391461828863601808815240437464280359692093284940816302574240081565357076825666479981932622011166478627433462215330081259784400922341942701421777901828530965973542506851029573431351701211783809281081432870007079718020777136303152395970709987993804136361092453428804977242904804190131712960574762950252438596506312967042771733757629548044271456672244943098074012182912491820211163162592375113649726924640677150102467207446732372442408588831483806647447838968511499196010823010451181555409015915494138735245380250015449740673835342955360377682790191987961412968766888546226984483211096848111366962595599553008738594038450982198716383954410892796456667466724262872931663056992872416489719576745338925845589598471294056039249242427975243283064312065563792494826242732511023849180282737715832839171509088647683810347033743179884630581347416606205404259490412950378345449398595868564944280737165039065025054784045761241588439812208514444640059040702820892443732810438280986285765670545606549424137988165983418314882283236513854115601848922497542131191922334688291694704737802199975910325007050252332037892047982513653946260766753510277147851226709440794510582868980308870741565587748427118669594554616398720905051147861509433136222401540693925821374620290918673772450312067555474387657741197084827244980353535498001981554538033378197263114517726723011391017611158621457662244172479909523287283480065755613448833789264702949206515832727162919508870777157483535406936743987030577491274761962765989045733635043758725420657300398666562663728087591835009287111759249300610055467623459027504476044439410079847492967425540297645890730916912778786778637831958726396826887601443294645587998613602762925634873966627830150356867271742329465620071315295315542883701779969826524198940479319162687785269653020038602306918026562217549843429079313767767188682614617567452272085578559600051787092040946835397018952369143652630403504816776138307583341625798136079803169473183762309730536280898367872658071408315843980231847264997527649546439210568934311054716613321093595999859642324292108303521209183614490166310479037504561948203811439947877460765810060189182951548286853377949117779906220307899128539318970398967244153592890720440437201595753407130629986438932512139338583846052568159749132828594016869371978074858745193070722656789898116539787685531894939195993408056662323523239372589619904136388260563430137341244199047987413202533978206911769302702730833577189912626759186165059494572130942955355446385819869505333584071594687998673780699456209841467224996792502238958246996145811551171617875734750414690583532913520986896114301660699574142480613762379440496943119228163479763563334646614669129525102036363503008188977673462460533668171951218842997084866829168051478469891053097428873681522938960675535873777158961135229058963553586074780440141819802609074124736435854370422293796077335256126964318714935306740314888553583164334331164890014140237685245406957301764433817977739549668251324885857145522306861670390933529470439661689970900917534691079183928413975991596709733990255186927470512693751680922469564919769799630927767053489968505007429337606575222978632213805850398948276713233443458731667598291005390862003362040589825623620488587516027455415966218695795088698686166996771822786134910003271365322054749854817084445753201298481261161912329347007770993284502122660021223106702840434118618820638071685770239771505108133218437092491539108682202076778293009200209061465412614733291203551418455943911962397412658100930879365546331548553117381854717051151994806007627609445774853904464171870186633380515445515988263261968154981461010642519953467333427652944531746667068385217960057308655839931945584972746040975784437758755427904675244045687460813793946153429843688304851825257434995143637984615841437055731150651918036340887169466454950841460399814495284676816398484461718092226637249183124239897761899945533046996312820756698078161382519045547012215311314627646466421574721621007758605581455620681645933923709685943936855863338216920325467256208173285053943642396129515351505446131724743934193881189695030950650153226139042130726127273440810151686120905707266779604552755800398128466546482632214238611796641964389533271458459741663446087403262914622655033067798936587781605507410584689801796582912643020583003529602396335052911023056953171926201092131054439322932020410100726397327698487645938352258075163340373560293007279649777808112658215276966138043520002097572106938621056790758039446954029168432640091463092386683541040725882315186126461522403629686758711253443836568200615063074018263949285359402381730573598548328347395662561027664614113061312460266910142122035694609250487519870164605528762764313988929585797767202109744824909339348073091564173328443425953591488648966166184327267116747055815906657871918836305508025969064755911649877308451836525763371616908136412076429485631025064466702867764264667573211771521174696039307264615108779458281127117722730739267553650749987705436102336796161334825336614977196822598402422217974075659955990050624612651573572571287842307066883329679149554456010704089515434521478453043336281748773453549632735563647029511316394157942528594889580983882818065237134141974354134503555553005718182435688707080153457462564610843148284680613858978573669622952170878667984618024735692728318988784985755588628601661110269149317366489192561235357001967493737990695386959651246687812285291764681603182566456941322849732432812777832215168911122315532925592778376355956714679454341982585284162606962575480288827521113118794969267000363577934342101755047678987300724623181620971343888924264822068451581494002004459304797393386860411942872555707698430207365905163721475685597930475746161909120470525054691432729532864703688206822954897543823176433444403416505760949811295791440052298178816974323114860934633741359399851029781831380319860772709349366720317555130756514977165071881676925016753650506251417357613472427474077507883329658835008976474838425513061307319366108273884302670137447574791838474707104806445293101141220525883578171504263288454951008572865740392084176929741278608515119466696940077593843388694253485754914319325190285283395416474655418388517102611262739514836260521037297134854321021860834687045982338922642137432819433434731756473697636475201333280721823628761833060492146092382752573843282603159689165199815272219281820959594696099365261023116424833836781612666284100896467564348094147912340315061818850005220171507575637606904564674724013902053973528028181381315755687390320574881773354154839548364277405355061800937536089200472860774798673626459784764163045761233962275353599139333680518788116104189616243085545985892837781551656853213576620836131494966689377239725803940945587731003873395229088832133214463356273273727803287619583523283660526647235903889907645888251879471698365124450614680723909167243894838577827931113117355584394530042688260251111836006963243038188274896638255967207768717414824203893681709279094773463527788098799446488476301317775230495091168700205007303467686982122781560903030077586698091176293390757976090987484601774432258103518726882825150818850882945695874689751005687888283967564536133270710761549209586360703137267827813821061145770274319450742545954169648764250766201793098434350841750159450423633639339331038840658211468599207967226417293322600912760969025973972575923391390080048823670515496169388686801736923597678994165981925528078660565206840072090058913967085891754391817810008638611920689516939977551649080501702140071372826666356602769098736016627114188116441952913613184427332873061468374364636104111096342709187251975484859369536321096792001078786094692802110113609671923730793958302300039876645551740413866337942911582139580367659195099802676594740781575717516771449831871747934707608856741925784351233433215886249838482369437129349005890646017002202777578615233662997908827007661785811020970835204273388436599556029256638208813753349616054435874942306676732391409525020439440634846217058709757263791235842522589109277225881593911028305883450164563854384172011882293902353798713825055510361086302376480299528919332099357076203732991254187930829158300145395440570807916031648807064377916905190335147896806281298162695455677853455929435673832844559368309848937788043505477490567166198442519171216198790093547809572051394689567800023154307777473393538055901005829866408270799443641349065295069196726446504671055111000507552704660136977934628314233733286664767479154465110647535255343559738408566052791599754759571292890375246903205378666599857461031047340333654732501799441830795821895519807441990095544380736953200097629948074285111169414929918985685495048197886229233481450255773127431769524930461774366743087982070064550513903171561793139396957081421179015416973921363799811915479424301033291725872181304378067348268835639114498391289557465070707737850236124238739174955000638881480593094908900206264845344236163566889254128346869762416019803878977098873010109860246824645408687988176334338721173290844446059005168006094407958683662468643069750398448578617311755554510483346236472042853580391017284001976045104767304558989728146620542159703419620844202487339448472546251292078997483113792638951933780642178227784077753163926684232529546473225316547882768312500869561003408550410194957835071276162841155617848837943991130918948875065256729279308116234773907144327922677021336030004382587566636011357290395949686532833971353342146609067377988150126418373204366064335195726948400055606534192451550775370292701745032932938326193727760897977835284671250067417590235153176716762906324071901214014493890800834417573089514364132435643083816858873161724597301662387502735105237282627511338882587016329723337075388237675008321234703913912890690419533366031286618402874453759940816504996033229722429947623720129923249799490480724436440078827100479447204134726895438427893363336039120957977106875127059896651370126499670274573491375099339172087338611976002601225142555357984167166412640212430465944638845072933081043311330777282475435790329537747018556507457973080802157255451053021546333951181128774624700135113297900166099655793442353300210347767800400601663686941539209514102842675651028744067388229798007314247435631383897930215287363713428957861876473142120042837713727641802379761606695924628530097636671669551395533224183213401597973431425175391005217309014543721629054569649145432331508197305201702228411139691875123708604888494853004335542925601225444021846930560390210570960661447878507847205843865160097760941803667406675276739667374816560722982350017793815465918099093812090424593672001745521264650225522697892478111559705523436893885042553482560242404762117094849572555750880752766249361262313717423142821537784028596872139892130759901580470017139976642269072621806646838325076483292007693109654296674546746691816125328935808874973376422219642524266974681830144938438397913067681078613579801215585642355663424678952887552841013049192069636050799912543886513124026925720393343000068274141740959341581462510989815520040052823624965407529411737577179881843936003377314893339319653022760493889882660243166382236412655580127953162542511551322729034011157188599940392044501778732099564767916776259658336954237744165496571749441078234662490354504727908040575476576354259792198301288837655092110674364748601209127835287623065405627888075020046304716554658845334083793857399051419098543330182192111352214068954699613578352703073744690478493689204113198579213841586463087113807282198532314519927019624312070917717071830605094252961253848683578949718229890084625226236133399884693792700526813650294478667755048230343793002495870816372540841010627145301968070490731569302085803567293981824437146441583524517289326942231409440247773882185024291041929479344773302748468418134421120869557473397852522925376477083728204376290665648845791624252663818679330496665696461366174492452285801509723817179050648359842715104383351748678962175750152081628552859901996414699440885802830998624140572701868209311887674724570484941178436407624556269446902535204737056225656471299588225204088593535373153530374944760251665552462182415956771748585149002060345192592018866261825309776288266539310793849975467259992121872739692525747866409372236777849849972435738742482095824939908724161093796770666324662169684742592830182455808737079260516865265462756429862689684056615831069409358821484308433326283442904229107904839251437542390759419759732916996280279331546357170840544132027396375014208754427905789885715982095850014512247479440614418158596763401351503337576773599777012221910702117772564751092417874893364111027429012975189104436132461195017446919916148377700740208165573370619782530353526142611936186557334876018971574316798802540667898988605129471710257220779252379631246771217954842935022747473210572416396334782608350851070245082286894867149577077576590589211217865881346834128532098281768597764409305417684979879446348020549400754489249892198146509049891171225351727088782051467036112833554832549621027785991599654372287060346763038046239238375570345154661567098151634145794293209628715999177208262227499849894828491664157394092895025621755747383846967082902134648770592367877051347559953253120126480829263304627362642347103350218065781065304352149285916519021833993387724511122164269472706309540662119097160753223719778965480421178088307381887255951544260441259766132143744998420930387771268772567521766010170545941248478522361273460811293884842518475074391520738191526665601660959685063619247360414181598496882731333513264531317861113105529349038909810223869987508277612536439985307383482000837019730640690548832841865791402744239405450306851415344789514000483823842243710779994664811042077797976311916935836024049900579239118270226511203524944220013790302053295784244286171023488181975394297035720320790685548826227747183657344071115243999295528683655411833483656980738463859007095853249218020760034947217360736494019742060392162647923790873657852001478685192061823821492703559482315886615513344966637662135379878567775960825513634791205287717897125944774250353458309227783348324786630054355085333728756632965346386597105519147042120278038622403111552270096320215485047904202027167289726772871272327869870761080158627221456314776367549956652999429007578035178500845614202010823016163346146440360717205110539111688054045164519745145042559486143940869456154085704360212934934902792255514736151080804467779247765996086234397065435876945907316345694435348276487714509535064469373970667867714708950670172372570702786050141055690749803869511469172413515342923831006581600143913377484196825495418300415644054079245751036631960897599863503577675018175951442833411025150947327624572974717186215302191197569404496816397922458361254408152352609413182083593786406568473593372764354728118113778650321247831268067498688623979565760648304101651709242582619977478498985261651027137869070983066570541169850174368335301725333102379588392584090469507201081686041062122242696880725067952108716864846502721521555264949492477225714052066990859151255470515317884079638547333201335154525790872088480531582363059691646626790623022884153841508244490154021027393563543857862544829225994705211471953176905175181180328902210613307407575127712818453448665266723736074750599614715813403452797155413006261851555954747969715604689039826142991406003120583259367903090157045517703193162774997594716392597336722006756030902365688280205909391577926446004335452601453079709380249358779163919453700160893868725265751088168772070432095342829582830615488543077150256111501686300782067039145395458811097262867788971369389173546006200254574163710551880210525783501914772864236800534032792926235184673667096988523707746877374043722851541830911991847099928461468867908183653493705408815145874901419293092066839627535579291394253551203918751679542653096817939354884027762204052305857115736300186897582395127488873375203836803993295080491186209496896096076414858429027925441601045513660090229053172615177661107406218469213727295002433053725419573536704967214081571920444274707192035567134979547297898370136671169926980297593184915081735564586405449218648717726109517245453182338472942814581973851775451839787247129260750197963376846765712707619477188434349438213623164961912159929333948342785867712932262715331420457880750370739286433585195489922072017102671232286256886241249337882217252660265355927502093354451032080242202016960973783742894635987102710068896775351414330466113463167085259048998629308331173765259354067871043042220645655525278312995657516987350711508579313767491469362323047527784909306849999962901151439723639595597036782733100289144438461405682122996750935321323029522862225071914608251511772564656670502933325186134354881869035617120964473324585267107948355440180616918706778645233174190075129006352683561110174068478335849499811964741344269195039232985828917057660386096817261432908880671112285461847324303138002894901144120427258376995490525089830440667263607456729987623600803159068911286175535414549069991815372180763642008898735309823684105356863254345405051489431669548766948725895237265715157355762974373901713944669752432343872133663580929277516435890650998679844414820633351166343986343594045912513448481846679458813122764941930770982415052857164775839637354333048070448634356452440362926896762404339826587958095675178465194264952669313419692007799333732444065114984059289874223976727125805309918289803796201395165363866116872137271142583985168467693255640221705057960017818677746189923148875376906135556047687688141543429137898899365070172295350207552085334334084139176622977718810752507395397997602430445340551525082165421188539271952634492689217105660294822187454617578900288941952590739118444992310686172844693356768757647464187926097873499425324726341371193758451503260644341319681399957816281224733071058457357163878039639355526073920038992180290074567184450420014002007709061184320195727716948209484806346311392918411328516971370240014951346974276119796825394482212739261733554856432234975397315319914800044537086772091680468076570249420291154888187420904105536357233404434471588774452620117251221721267339145298700675853249568028020098171904759594903724287790466608830771166642092375244899747034815430290136470461616266668426254697251400145698121429418880909287510143670001326438706686665185635645438857039723921793584268777644067841856915809523799705631283347015058539433955750628847289362606731905675819978783982523152222745389222585699052723917301474743715286089303060004652857447257139712887643797823402888862736942985268962097725124285770609003921531084512085529216989660527383139247724082144868357298575927212008068873930573604102590088737272065095909019930935440596690823232613024953415810543245561736358736096374944824834854873603324607805957465940913678489913800630665717211883049910554996436997729545583730549737344317598599299400551817688675459771715679022768232090360619139332604522753842238578288989215402852640073659422164806281492931330211226548263814989711176347686784083254354722534620627761817796773189299004747462333071310363913437613418071542962355643042816129754280931465485136983247446924863373962786023785203105704324742109911634404646518166558274536061745313740488140612029112127118424813264075142178938797461867068420546956961307753927997353513686014960821641424675052593234817516402259817599333066923078611899530162691078237181882922564213877275680804431182329925274070598213275200175057712987690454383978504914984990281088420595579809234963155303917954855370915513620930158254665858772707050147005210859313185322892155986568825708470732049476689902749893306129052475505967733533077647662384062506546642842518360640992146215045122675207897614620005575018155711313253513881606138378880359492755294129456878023772274500136062676262047173978292285582149175909573134462095003769980896831594678955469811958303753518789104457062244920591960123383148094993735591835308924381890952430388380414581816972124990815986392003086976561905892643075452160433560415588174993848338461078649223141410085795843170399084599887665057471316982135544573064113174371612961493078091946205245246404899527300399115364058948438233777296882223780379872956982781704891843993714799711199949858896622033953798868714488436533405719419827983558480382770273538374201426817966557624532139383512847570022982739332182963111963145607141969371228671029701132498639313978172459358172626984907791756145721854211592556880916256769793853096013067945486988610248019002711755887446529668603494156704047181926463494381131271186373712961313074874677306623845323818440359570768282804735267318106398440184170414234425092483773356423379084161851411407545086271903153683721525973688074637324105588399986364762319534642844024743134736053891280011808903316555233199825928730841790878429685542256136821063448989777912850264574095828738989492873183173829255917825934558368416797008018965699961636659403924428193604469350495947064112315091334810761746459137692823559629793786435713000870858856993138773512399867028143837843647502255558372218137360167528706997652024891667074102866671979184715743160235382616706378708249118869261304457939605129982291036885107288477671954257680578053668471349242116128154754783803522902296570612543925348650297176715902053449269335887436459150075934224161475250063467291817004206439819232673005104796147927568726187144088209138095797246757335193280593500914180717437836162150333933870665272498910289743859752055169651453208803700955349761048871022474411410440638766129628792566158622589433218338430764567221741292177047749468871799408612150353550930354783748528621445384810391822919039070276627370258687828972015894242544246950358289590738171144321413695198009861655359491993864873726659438478315285249328482778508822459385832613667320945556604363637121133243542008375447366275962791021954593266698271659778645925652086248490237453484975115863367448946089732586250677721656730097594944702231543907913834972526391016330022543718681666473891651792729229898311744934698162295925045553071942579923825913080826597696876789334039318396008632766851848644069029336735140663144144040991220355089823899171432483697130500912935572042944731898114747431189278163801074981972545068675552888863252608122463327091224105733252126441385973928691245558010465198245557936535387145624528266974692619149602353143957776008905653723881771167267925386999323312706450591517051742062561691868527902775530574444400914937707953802979643430445830867427805429237764502766422129283605914721288758577253475026032369481233913899582482231204090746870750846070033944004103674571206402423795920096877910335404781059250240279154016599341116609549944212829976007531518741888839453384375921818358935921143882417484807999595351790091821923308928627728543031791752357415223974605339045824644234750376317143454217006447395700943574020024296085230092241248581571669725153031471124695216418425749039674155638617998943959423993100639354409787783537929256141682903465356525415481569911871855312284542291483990302712681449494440534713746868613821948099730431834804157510246872489017462696015600898002904868853058902322709413944990138835349601249235786785450014866774970483140130684124684220922371149134668791252624001408313517877899571236866561653045966299501195300465364759068112386426803720772151458542023073759474210658788133696443147656482459317407687283133237042328391210576586018812666223462949229182800629266403540985905644538213877506706246242165913756911955488135611551266589963639429516311516520202844875748139391823670265656681870737309364030336724904353055616420877696417351139316994343287389034702897326342495726343818456246069355611024321229230040899055690241241683687545592114821596183007828702996324907155060522859141011942726116420495314202823439915027804739685208430909555285763470729360776931897786486122729852509114156622699952332993632301220202980905947070252824147832076489129018828923086111404458739512359128322109464096007145089610665646160426038188342677011148184329961224123891710124055594337389730113429410962620287759784428041600497024641889013640425388804058865224234687240320139214920520874344332328338584627721665732863621766030870516840253125477466890615960616117604227176287502905077516381793052972102439734032852336435331774804866257740373015838983995918762780280373569353347582724155344972938962881581290293664897669465742271577585171462484272148629519793635905959460456422607463645228576921445341178878768684350056643135836972845890754127130915623493423714808001263546075262103422050155153475521464189573188522776712342515564729775322654926151497229277713307655687837961801739476693182375445355454527761806351633425380386390897290661462513262072806823448833349350268800387184979833766192887963590918122049065031098367422948925813095974410832711588924687985589667453175627845290609965227894858518305182760807631395070306904424043533797921207284226556737459875671868682477529325029759171535656521770391208829442948913975247119027549503103186579585083735910796447941514755448488082397336732228893096700840106962489146963642019835049338762975294685144910169767255898311592780430803340964332950137230166076109858622987887159688480086956350994679562440083412395035002598763861637860502059852820153652803777422372538041107188129607504159930222827711121136058249623242770879646964284392647892702332883333792786633535785521479104305614642366498933920422817016676712927703954040014413105000773888574015199588653286303615064063518385688046392579944335790435726696132070143327008908002426989028063612833477976957680975982746015527725278009756426649243477638834129114303547647241929680984288532720428503334871593830637619804223573525851906375577540359360176574038655916133711746012768326761926818097689398016333835453130195331689173611626938136858654724689907434943431853687878774691934724516984357168293198225527512853085554777114215430513404898875923914320549081492235253723717314514980526026594156224622840096099635616341338720745258302902861978786591400877418944463736978395117101195506872235935760748334277543355873838530209332030359145516587745142382307504616388140115142573036004665803446288903726289992849661999063443756404873116515541158074605785130654089210810449743449167753505845921882746324261401774955978520582396883461732258919553491446280506577386283982937891308516456816014005167835403979818065219953634631649448905898119536555650149952520217271774439969261253424809521750765144532988076612007887979266918538211887274684055774745090682414083922057069888129978935371640695006455514377458576554323169305310681351459958175223815962400128752092737061201979169606363169031172650690516666849291066409176132819034186176985864717192614407563030680929849891300170787554118777620273601505546413274882821732910945733492263632735255962052920357716180694364651488009422048572792179138684297699109221280558999899106149862137557929520005378958549417458757680231782813047026116821945400208143704674738890124092153348952007908305037379302880760462127920116942124137258612701569392025899700307869179635361570267377554482751940473700988398270763902769886866796907190445532612023153673578952487560402032851776670982165014471917486879874386967116866355218149496986387690853347092870349905201372596571014648324151392281026302720707101405782149052627053071653264186617167999177940775391624056170422685156063394829345902086501189578909922142370271966811418175698847866817275833863977717112202623327780304185970753730302429686474517728696407877561981744471967289932246493242398527452150379413374441411200057586663524212110360226056950231013899677326367138947441234848957366368718678096293914009195236055056027664172089275585472365264052475260540501251084505357110392624909834042468350508222047648423893703749682243139365305999134999245973737593402852554856839852692296645382596869627807876063647017387544407682168944007319425838164464102311712282183252227386331589658219093244932461032636344647329480631066245185595278618619356441766549827488833850524290145736979537895059041179286448808462905801671049722672828476780731042007393817194558329254732205022479602329994129395039544211451953127420224990319630642096008018836525556022562853826449587582042021001160767555320793096760196246614467912923676551229928186261511018550099377932027014166418623473835297936903609078319809517654169651493799395928255116519202972768504230471268981276642690872333037587252500122410429536835262577045995342096778514181960297829776046566150960807449942716403035913982136904896226344604298965823717001030928551345483673439336907873460300472879896450673011317334940841795570024836746848495445080712478501991087571863403561413916272301205717086353115168473954084100880732894954260274926721299714407581781684874400148432172235546636834672251787318069641201397870546055660490326305476618182629437931126653652416996483926876384216395557369251790965642664258231817793841569476959938404816488037773495896014128576841668743640884286157991240451918570854779553174039521043452531153335952673457239805803324646526342022257629173131550531054949986221526523474720930309659360389031866642126929065248879709997312216422893542632107675068416367515941467755434784448593680177400173067146385506492471804576337665271625328597346502953904664724210454998048632661316640305580536637752299633690061017625101440754322775307047495336323345925934648707876159187494100009026036057810631896493708267431160997023460562400364788662711947192478767320376725737160382498425219866085861312894553262688186722641799991709272989865672383373730545861460915040213765205717203180563894197418810064997224270594394442767745227321687956467286809138891632375206067375051258629701429151070459360136208493267112315060642565422019122897157750163551058085766074820818057553554775459672853115917528215828866918476459206860026140507346666447064241192593830458102947772012184259547208383300439265275565833801217527864550110137083463578817332054344590578029379160316626835216140717574217544362532817514393512877206090719871171130406112333408544305721922295647351843674790247232774444275138084588363909710792684916794935960838875684068986627946649975969686385559124747972012649723558705541055275152896782811665507015716597610863429188108013430832756269650755979968774771960055405823794704011767343273624025479150338868388318811266784788136112685709086021504883505882033090340999855214187312126687908740740401866876563419570551963647528699275396691781962014600206138271772860021766785437759218861176973404186677105289438945640977112684436134765745977092754453119403458727188923722575893952280878293268681695541466128075228603496914579681115364673885976313186765026712596578633978037170624056213017355226367552569954666041729714779502072947301686338772855583510264030012170604676415048967676395125182282735776333105586047496134662093450479224629767640220936874880765573613087321849393853121019648704416883841280099884040200271739146188706395511428813156475533369362559157965469781935064159037725828015273532271433805322896735204713222505706130328943404299586508016423196712666969198778907296992362925281408930335061436364940457285476702444206908696355551916190643823790010824115283790970981571675890935761064398986123056204607315867772021662479248330105085486114085392568902734963695810480587205170921874541232963309540137427792645505945223333735212137608558308105270648920812423611902303812270099250413375752799303837298537512797860539290885787239894897827044348520582199544138298972494349146752144265658499169794158185267369094656361680404242067858220079703345396059921272122278854031190107767051531320385938681681522230330475193452937725206879199122280941287786070067240571411210053869014054261379931998135284586713306430675828461070770296627148602849930041213875110652814161685117093814994752448466554516043674704370584335107904893150517078337689586163184468889129519415033596361938782292607976814078745322747341890634879035060471967012531372396154916804879429219046896683735933036084565381219972705912946408146223502629492533057679034888808572070605445029129105472187671986902710214484452012836082646561451881053380246596145101441500868010113219791349743308712328403158182680903948354578917392215773751001260139288281940957507114791616876004275517421123895092450627846061595304695699693015609096261390774854316174528012009134999764181276195718823752795571806403334383821000558603994978918830824360441889901082748729522544412982776620555308313908928598188692081075036912570702435743238007729520831110803413608694873957081946062593367718329161061362238190940288927358646682636656100294581386540912855579146975033082565491994752319001118783633832597857312724058914414289980147152332784459007878619793977108663085799381840367200494246973559383602593884377343569894570840773255815038756417735487294014881271390429279317862668412406669301216972210865953482650258121496207852092371874105057136216386957126450488008464012824830473958755580189635998843584171563128135740490641350773800126767489921019240317250683836266746583588365849368321796207805923884618034408347421634855316099541459845020071495131113090425382032914694008373910044078330880966400265976447657507931384430043741412091893363741585752018179775604828790248111645634088481903542265940632582956111107263540035835675426254363771770094562085149687255272578768332915489755950320817825886107465188255901196732786464515813224187521034021964689871435451740192811656599489439626797549233730995174446794076400181625499707234558594133596596486591424968301566785473962002147772300299285147081618594184484141790608071216116035876286069134326362571791644416035177829616706322393620741658020622368826616752297402765559928407470175423229853702502847466855643008803417012479840611634016514372957799927902475548878405965625770856341995078513130438001749921578318046146256119381056883343815663687975715969716622531089786253493321183933002042216427628572638038530289972365672163162701105977424824705117037989046775478093034071396236411256418508196938771394598924785306065344932301302113961710124457608274577915956474936948696458772876477692561762673803606337684035065767228836391229918601772796963943120364184583530828821763007657529472344929217056731594700343732494149377498007259341760448239511984902386887799001385443798423209600988487153580679628347055971536549569672531327660891890581049013970480637159397198635297635129957238812790421517657398649976903855395216154189116666276287506053601914137882227337298822472060678622364700489612609051199127166214190276211077934445905842931556273149170320069762328479939256289438615266525865291467221285179886416719017931585582225460213117486226047182468320516572369791119652820339075931067282073989568129505849100216527801193951967857021770776368432608836602117228078777199313486958982335854050872424884516016398702104499554779471509451162176586197974036080503368552242644152452491930133925232833291667367456395509234708244961086814363578991561437371887178577788343017505600979140061476968574351184460582036896508426867660051655493090724194334472919938113829618975320689658744431096183156794771654220927818645699836843398601096970581033909839261572271822469641604970443602306279764565095944737190582771851314441516435477338270572548914661331039995329453113700994873678694221645628529071731907022531133628525162549363584469881678036348953826058188506719432928518954042703236389890124480645460683517677278801391906529170417461663072346252319341068450912326931300384736208355866538390871098024797580978732359164799568442951069716890898021489097017284037896401285950837133552010817078133435245111763142530677286291309226133954599261115577617135902530964561973947004619406211392972586165877141452376142675936471709335377751421275635267180379685974196333198440319955964908074704355370420430242099824392283409645125877645187241858410424008075542654104738678711319992017314657800062364624148100544883344657964058208884262253281870904350384226756271179311065732722104270001996729028367703278557491381703003375167947199645925837331498084678114007029031723576943289736987289962057230189398789762640166451496157416152538618845271480457341514428977386015965053773703008567085631360226720012266417316259011339344171428846869537655052114854832742244379246301992760484626483967917964479645484529607788049783325122122492504049330897873755225408140346496384291670915297226111592784036227834736668033063118670434726580966417189393551618979526909135098462348236068774499258321324105045115683584178838939279144830691406196151996056973679014626761379938174115471005332559257748714174043243217608046890803153516882643595052917693852272691081653675684737706743930648681672872442661222723632886252553221843398960177165742037102954698214198755310872392394178998063803412668409408105454711983018973935084296550982994425570939205818367609391103830869909616136463523505842513370174587771226140231315156780144137766742633343605370728714195842414751216259144708713943627511763619893612492289580087373828655858149529715688284490449488721187501000922733123073190752251057683024654499318045125534066547972521940912408307223589482953275513242412147821635108948137144847097003646308844124357221729301543741566514488447912037906783889770547163009131535575739998481313644911081691249327216101641574340054293307074854905284318294137396997074029516812904759124900527385293314634134720938116980621284834851717906031755217708913791630658835212897031113342383022796890732384155219153044256279137523581008771267815284666397749265769949917842479141370335141771881181000441681913108504591727360955996935965814687825029075661944652521842276604708866530356413786867031039283630554473413680197789517891198365267527639099279469058541983261932555392089239729361025457575498618185000181525564676795588620286220447538049960140365494810602469901557648590085127172549108016625075766823978137807287331982994813150679867373175230653730909040983679400051717630062104294049641238928055172987262205511902268771604263341685563762427408721751959649267777339280794951670372141142018974462673240661753272421706971849061817547013416086647498110378847097835924478809152680578325512492033284187392784951437066285622647967664186535507734250620154836031627428999365575635092547719376909767250032019881270520043576564661632044271226693711839547367579693549278803922428506062614012913388959735614374475483081616540623357060229180221755436840983821806939429935112546297731597242763683737508758169976565966929509358063069799701589758306760997684215495076083886635716357720559749171825083506375282262880187716863394114594526252400493289198058604035671959521708856762573113411722751001820234892608652190832402250986624220018998779503100594868094824169756449820557027495516028142043832098064823486315049515253002296987490818522265385600535758307258475313352210832300625102177827601924936555796628098123673425094263541619043024982178643127748611230086906291307490613954888354129689295051367770595356433155491012142361425968162540352090383636033248157522844999408597930368500947463762176709082369983422948638557987739836823837872059012214160137355147481086092369101328380327695685672346957155043846770091794449274122604987890507137524380607356824537640899502578668242357971596524510798222538083864177192391925549408176898676776798543443395313134152804728558299180530451915578498101740728105233603727595412799066629640118519498086214109838957136925407883401591715923555280753716502333980008341392542515632953249003173046264862089299647298586244935629635591668342159569155150767447741687125567799623794931202560456599667188833303660096714397021774898629657386903756578596620097435993910239824967742283031397696179107894658250999842632755303739328999310148187474997138896596375647499129127688732677872097773439744863878686263863928879484059415131091072358734067184520159305884021636993930411529506147495610339664771683154796438601990593391024316184010976420007086831473239230525056393736718008103989605697615277684282196620048489081919925162556488848217350606964909135402582495526983611511759511964043489075861300196148331484287339029382552273010959587963469376022336330978631839358487651823309505204365840682527569904020895854218533134970543132709594291818546375023568358340673343622600316495889754184895539999193785376066699972148768431478805731063143017946137600295082461736024106162612741660200223193609599819298175223178332486982987788282605505922651014076852981914938952562359575797417121335734123042149084238383383820767912902034827713126817090172166237994895554646900220094406495188653493821698017106366533017825495172631312581694322978975149104763466314513090301342055411785872297422330996932967025205216054026113423277697246434411537586818196895113714795629936113936425449715936257041831475554287234870101614430307915446151749736893040674112148179414752878698292366769036028531561549329026721361695425002219094458649034812079652451375642567711727934244697206127185896522343300664290621601094327095740721322790342577499314194175002841795748626152243641512511491683362376656448706425806960672826726054382252098109128713828800743202663016547371738001646105562953346852347026900194826125238262663353229999594320285040567639761280094078991907929431902485614548274927530678863178793693289750847282748840212401354653310652266150083208345471018333804594841444619316759637724858226322971136500607407168119003907927387880166499991612158583221872437459950452921052430475846939228954042683605821519279295751674786124323882528460210675567602683074409765147459822025694557338193075271650996321958857882123193795953212352840283828683278440339173960352884163356973795171697655930429092474221106403443106619755264936597192887191967633051009910037737886342174082621644168704018232320201949270400881516865978945380600463654486637256104763768348698886818925248878651630514447683227803352199714083273627997929594512137946269557551037092674688586542044202002371378861242042605704048675464153852384437177614804386318832938374127073608822515888565561032096753848188203652789239978927284291592720178015471621197728709777433199091013549033387137854207229959248945777829609910416998233818498244607881757557554868264881606356614541841174043694507087324745424904675543894179875356374676291948886881872502024676268835419349599299850443323309491380444903402050179392393673674656568937394238696634802038919759327827940799700310850048437302016032569735147673288556861664313823178619747025147369032460545138850755505574031782052232034306107952795192736988377563484690620013765280212546173957843496293419337692490879754566773485101651621032789214503722690474138053321237286929700509425392509138175258004840375095354454743244704770543134841866046368187469497270415939632803882008033637262678101974736039906725299778669786337543848873415492136676944624846450950322286171980435229583583039102645175772582450024500802223553674865929233370988120398643044159033566831222731867687797945434141233459398317678270568817693265072044941647222534887804083356647303019736407080424911684975077384798932054114908785217091546436616508296770364994129258315053361501348378232549771134583410310799915907838986863288991853909656474946213802084245535064900416215321600981489476821913146101628884737936608235677087942364092661873359671334709893303603787533859328578515869412110448794338733884637775133900302275648134671682313875072134927493423729896668174085101609949982956057472916542374866466861094074718756920470291937708893017792010904882760104773671849576715466984096989735974169075373085508339864904936533339217240005474690641171032537847878966030781004693744423738333375440487675701026168016661033873079061817439155011723349460551734811878086543527069927975254037711809028235890313866602076362831111912536167544807598674620481583411149911886008334191137807426278000135562789569787023650830126123055532634923324732220424093502967554564721628863847000033738721361297321986820195902954932817070661092649884074774352902617530024270753987044976851874524367093553096431697171112406366632202833367450068600516550462332512486355116804603758558398962308232442773882591257249627680490881638615566496223035818500918675851357112325732278447983780979300237437903740701752950869897319836179214187577329570685531197402277284157520625978979809660250527215873440565179042117802869887452418516532107311674912825957201529737106676136794323823326258066426255618873301007856997309627141640711815047580829409850190749095998813247590066184064985968776267027144844255991174050253697321400224879299506771726066513204313345470357388147873264639064879983154213888705048401261538261133019713863381459731388737956170556793638724837815915990123793624611981691058781274292098600735569436484844764961235111057203087297020759460396990602943470714512810009215203356677679215049252505620417934086831655685938439085994276737232589674448528016013120140093064933211053653736724853552356221903820522347806090983071279024944008349385828622826085063506685208195199953417324300726817821182906269722400261284769409743020440655290386339518330335317099044131195417961737341044545352490261918269043456566693459469314268942539811160974470943773255741282666227851933265809772276717530246649203641225108130874370068320202081682552349507891430632781536289763109240609739115669565648686756346285223379878060784817901820076102380968946050625181928371320917849403224881577903771051866236609520845082884128768285490186140468514760506107380992291408843869622443166508465959120459328900239211214280674408030529345483567912267429209254752708697269201821693567659913075436515054334614355898932940320506122735299768836449628089149854482517849102800403290707713811402995415903659706017749530628728449325975302860738041838583602852860901288939865969274962413979759278386460528786384643948388995592551120703958252750805272882709951278348037506656018847156434487265709428835560619223541170973931638691874905395569171429857712135014225612562611134157334854058542150555772301225293950748250449105846689759846184161231527522270744436922111092361223899254202670518300784038122467797263282915958988494640959884351766621464161116154918983780832030539316243209989882098749779492581793863995357460358698989666912030578276190587152668596652001468642213578720946632199474738199678809218245954157961174491148093110202849659574862689548583513267927834944105906252191036470771832921375707181655776196502478716245968836726610411421925107761081239085974620609487558295646143732816625643673545831704841180176291165531723815629236705517284779654163676959187981753399538757258387762528831191833434429332287709779001762829761362565378213571674229471284051465891007623489049759656363530848393217716845482186877392340972969416890851529281774815297961977908781638964996802214905793694413832978199913903506437394578966060166254226511521688598515308306838803472175262005545025906491922238045447894157256221637418701930239140995032769232272982691609755456045121237022248170054987538332950066860084451096851339824012860692968936632970780599120207417475134655643853080442618441761474642491296655746882837224821193965379967164591859198766099097391848929954718349266691215771294609321794866574323251858466474102472463017876145073677081806719599997973255521972201413992619445671625945820984899379616713281565393692979233265292908125767356185113322637623288802123297702829608266274241415766889111300179583862603518778399739672078719883562587007426787949259918847493992798305055466145805494161014160441634717793978134300937552314286413986997643261440342384700828650991818711171643454406763696853745802922660854903724488156027890216834196601375751901594118780484055348250940381885281918886988872525818946638264856767821865325865868333179967840954051734469349367267800021117010484243110042970525982424103818563661965307882594311279342936583625456913992004362409169785040943721995812141264382515383009392201546975325071436959827738238060744415240845750287141378355269961725954004632835220565667634288826482797108795849067535512416267873403023791219554305481404310640072561222502749355957518204197485232500819530469619093821214873663916890573430815985432242336643346042573639527819261669691761347547774590247994417218246983391442404490002065344197794989017947129301620291603854503563535778643351332981785126045381568615052437157995413791339832842880934572934526073228018143332447479218257004859810435914231551368347518428255653358889470070336800211502374279061357680770125359908811878511478710531049711093836386390728337476183420603991333965915248836994050668794707853326009748427523829084380761931970869937955109092588002695580268833237499470214719526098803097234476745857699654525188559118811020573736977289319911925968876561448090598574372491607195873543680681867470408358927321618869811751078611085657528222380351308733187180858668309877878829367584484745562394721894753945028680208288669776276731137413072042242922951289167731532429405160173667951338696264408119243031024643111602657637374576478891866260136057578591381164409796422335681448727159008093123129797795646695017992789690897234063926974476546002907768307476139178697292442676161511926219658890665079065900821939035418363527698327878184446935157566900019068920009259204482658189108224338902708379999081664302560048355408398876803417808495162789058247839993711406285813839852921062464978113229813008858733575962938838042543438945343889106694308410623996492012769308774451924704782935450381963582550237754099555123870102501915090648123454758610741564354387435365094722532752116056872560727029023510267209343171383587456962794348378916269401657652069748572312594041642371707728188646159545246604348230313927202266111209499403700103917630919156114605035378768774670255470051210632029142542818495443331957895280190386633227898076864027477194587095195680034719273942888460715057540238251389983490162922796236994948426713134621054756466957884994216996606092296890929363634393253020239477104236391399284948150743520252637989093875814809049726868772008470664372617139342573503347230770857180641086237027157552901038769072070711281856775923007942424045729110787215050989639666935222023912792724777711715354251827105179627686964497878712474666491634656128254467018949425007950474026847629420693720133204227002123708031609614115769311189794798510886258019149379068438747799019940830658078691512967490215944317917248440310673209943291828261154607435462892190592386396173805143392902255067979884521356000017288206677945435943590963690144795472011222882229857054900100969048043493417950147857821393028214193700562057051275780475998078284910249573577495997948776332882144985081341191625691787116024910031125621556888230322253408924637341250773038843807568575515465845474302217541786247842856604675966589117167605406733729391775575041668740383548337132858911667382154419076419935895644028634775451831079701350940401794346015678853341440718769222744405865735272614321679557456154110928780876981098351537626637875617984761746001033211839482031614519155267458520954272830265222474195411129466815210922232161201687370944313030861069407813998006121129866281246743912494245312151376374991959480110912009096451514180107818970004701112189080771116085542776651411691884677290118637959422705251213860024177780572459355509783827683022399175815679092917559828707728253349896704096939226718462004035095234432487855081961559863549048090342504700021764343311294130737201324499076089468645717519624832214631771379879513776834806615681518138530350814558157443307994296176310958221502558217761696592955674467147240502472569745956328034722175732367870100884797990753408297735361032863269557709231820516492196642277527800707028378617573825102530088707383276295228477566535062048159207345851709849460603380106597513141666615108300017427915474084681781605115560385230302041653148151146093594716807176632991329175617881368414333350720821573790522331090356560965047178131594252375236127745862924682431154301159889404830329601392439146018975734422072121067081933904044733567138644193205060987004711824426699998613607984681374455038687377522944697316922944813938593515545423632594461821384662901595313276826388938766792703412561722513177854457950545092161547851749373831769880233928453816675430853673968161194157462921914172148870342977031218878828028174919460564464382099588359778767544149737758277591789543527283990281311958424804181175671400487421754877659743625169932924111189745233936890655312123437908839480708881323867553989591703946449700436213432917316765398934432612159998751461456805158470405299038523368013800999200710364014610752684688337564197475890203303136191320112393747870898364531840259267817165074723432941290781198263764876856386075518153266456803136002123111811745743774696889918289654885467246064109002369885887915754868453096693031901549875121429351115405653522589193764289537502944562331345057868046966066428136025412881375997825989883317315341083770005903943832320556914637200433809922313313076350277165614258587366691426232172601011068677973630106719762498847529185004897364285299718263709792460262877414966326940005653871651228633253818545737120977108798857252770047229340448356232806306793104443831100848408413314179323910971761615370037440970540215663273156772283290189967371901250090897536077244676189797602024198485430491998300457342307588481345878504832364613217311624476783978326534863792967737200527990562791079095581046047164371361159879235476009100398057491374061340422304692708488753153430722680041757004509529943396634157096235038991304922629602585413045553274200254691732724774683656531690500203221572132371625957582264211110806161625746813741063401635724237479531284940472822882891739471191741599290033535913584975616051610069371812786562749713250400276436309288763841564337873952039464389473865427631622978913810870288466914971591697654427860137886664707478634569667900770751492635212839413868971787632880734357226290824679194256166992665114306205955380527073797937583814465301069468706346990528050358369628184043370477758753179630079038177122410912315275375650083821653996768150871766890317652154641130912826920910887431638318483675139750620793439155535039524332978273745177812874718976318335844708813714072455426483623709722274184305362132694781710447212438880775344851100939940928413142595272624548233231814375975541199365500912708710375348611695704565837959805531701161717191617026512620048635541884378050913574144525795561452909630686530693266055908632372083543598661041728576219324231518980049592152686166111557086297288341438750849556284186361951732366242055530162899235065358595391917508126405452443156371445011894547366203287000479701222387331408007221772904913093645738824530431495604800775798929094356703493586876468197998647596186646678314362669012538301278016610818775183898408432371260726586897727391260356977945439204899472649422999736861703392732765942404920643566935236682666435057829490379892709312934612489903459519882117479053957974435925004765800445837214409967927964048385875879785548761839652667835395892435514859085107332659482690934112953617555264577449265313585657687395095304625774110332473468774416588512086180411216627249146860138936128885257385562971376771219375493542272867598749365997639731671522123606081247087310990532881845612548437493042746385936033368657699562299522829772218629214757253209828514985953079001209286239810184375010272130343668189901088422025590857436998549260330144485394508437850025468594813545543401791234825548923142999315706253509251915633539774646999061740147614496952885019986916655962979969148308838861939424667136521420605956982047561279525394573848825341373624031318798159237690187692826829148150186053961162036734454155300857665747357863619665795917791676532390542657767984306782909302337558086996029130738378046604433673698625959935448257536844506200486040272090514588574807658200410064395939090794487753243019266789489247976783416259861723467905377682040985008755928207154565083714226187294399000602238552620278924588893058299510082721068672336603950341924704126430755993077037730807028358356665301747734539347365749606857415393732515961736358583252278319376601067706915394213734141776630103528765837451315958012369571131366268870912065816555866541396686351861794436182735382016362585345305949173916976385645637042031467504311718922461313933698309877241607385433942908654938961682026411589786497919505024748970870156580545711863827257547654701337796052212918255235335721647387347622694242738886986868268582640616190565499613282173510785155425504877805393100600970637139121091759704710330911892668359340208844489238913757934791439872183392671037327609052436791524930700514509537406243610416191814455030908507112951586870697310603241711149287495861073757734210931917265165061455446248764776992387413708716234579063636107196222657049478435322147605907903051855079441848825152231014302275913582761562370327736479864343253635382599567683331783688787638948263802743681466363394269965931064411388597555570718876507851035847445317790497258342255704868010272977109628595737749715861950689750303287930921557648096098716060176374220078174953402834879625344904245521620948619829330591892028131613943949850569962603987894443168746058777364651704806509643997810866080156098625670516675104028804385585832898318730422839775091796762410205460191227484770438736837391496861429967487376604160904670221888483160828746523199992914282292089121041014085029345640492865899747023721523714755254897106159772664673448446977777446869106718486374675834221633569191245089357453556957253354301231056417693672267829002965186777212692486019811148452761680319003695375653339419544856392001432012288884790998041904239103201219224310121376196272504094542747546955261765479835208029501107914435881860433475935963894397569379504707557106983220882371980585785065050620275046207362208874015579573295885927013148698046515892546358835514924912022740357465652759053691780493034513246801443520415566080467717683596685981852599245543670375360702287040491587069769834997631532307215887816746872408623570693952857591691406688829191578931155082015143376659899670918358054969355782642909979411070810047552436106433757421914603220736086179753371931117332319379885275545282873414840719872511143265490482977340389306617304021266223824985533922249247620088992445884674736283519607709937334096366562489861896291151127386492862786315523462053459576133448916605210130558629560423616118368146065131452923862896805227370059497814570628348430587462327731015770345295206920112355386102239322934457576536123213385610877563695229336693000138982894354743476871405428483132903773792741186848655522861761337495507359852678062113194946105078787993119428865003379204791586677959428718069211483532305720790497632978516447537995182069682323890208130302458037435853102368394360898747425430820356147216066032756043250856932690613264944271505551368165609967967281978361647821659324966849267217333538526792374746560794743021052982123174262339256348311276051903199408721512909754978242668011912213570673867639069694635462895791513606837487775538567098800047425882271918573077480082278570347016493219410851752392273479404649414508593606409579474706678450716957565084196838637674975793308420553607684283014872041930060737507715279778778770881257777370816018394548981247698986712904538912368753266380518156042640937002363356720232398968447805694843565839288138999608087546881209662337902074433493760665850842448272366092077263687598744286040834176352838234450912150127033146259967966470440502519630981352483002278465648863941059229601392105495763157306056472283971413101692839313805428878992858141034904009084126792696133595305838604384262022041919469067400801788232845311402750393413372534435482488337846048001624054482899280047882718376900048898768818722238808078123880186986544661634531024094274828111886162993174479733192418506690736470514289984923757429267637033404195187760880601926586925553930435214090808759156282275157292088919444835392710982137495202551448377253975409753736206299348480804122063868288434917961868210441359767769186325776804846979118632756906582883370914446036199630137275908929730644284409557877746211666228439298686152026142494324760528933834147580862594164054253933662350835050276545400539343534539585456528499213548042333881303864297767574388885433984947169153593746422776412338376183669074612865871993335966308098985620358121904811404710984166735339594535331584817579820766760647695119166616810973931232944114925523123605665065801563013649758051522014057795471216091915325632066993077614001162506336065364661846664989649196127922735483160233735637765936868229109926867060933466664504880195414917626774071411486238149415366421677401526750356981596117741795005504715363952298415965015816963350722163013232807670538873937742962816063795621012612195742065034000882631748603388649064456582981468214845775695863964195814898330043038691872828845022445084787280959284180281311230583345155981023279369561295445413293875763784650050333297336612975771815203000119508501379267374574495299979504493300130305091941967891392131135923805283498749597934659697858368123645589860665208649859999598531178007417827739892141850458935411581575378170913634051456737531164142495040631176956253282417973697099041368501713617770713110437233546542460960050122813692050200193846359108011007212886414939681717749947285089220758418405239267531398142619579393144432953711006498289711183114448469112151116423059679453597717013928427241905059381183883477667162923578015540520545910669579237128717118093385193472444082687226490559060490481548776652439714475681770727919638785692428664972027909577412775771145977278796958348404452849104795154593045336704282685034885083693330284601153729923416540997162976961529737883853094757102238561647928142846003742855157094231167550031224527351281770649658174355076297588479913391884674745556304614908167856704273960755826655366215087152872402444154069177056419758070653019567801443372339242310772334217031193173735420351848539550376530184004795020546531996636039997703369293763321220459778075283254645035125385439144592577134090831536383416702621519465804159885296017631227393639482440689652982806331730310651241741255473319023537281209965441483305511635531385403003480249551882664220038597154382505657676246749440543690314732618854481612489676601497188213120187619282609418294214915401354486113255039633985338849747864122820409066582344738082532979852951308406797232257717776900460935174622367585332753711314809295191514959283142418712104774873615600823144415222882116498583624067551113337711649802701252091439015555882588349008655907431650785927563313230266931885838133230653397230014861271486964025849518307579759950388152271793412821856548796737505509331249102733828865908230339163620385932274025646230703207422376955522343777982837272372781602344206610660608584002752455614904469132620271935429809083454451721184700869920296249078783409826381581426698570819074707098758885550647843353585488997014981173814974707786872417618520130493412014778494859627172196779853347598051887329314896659647248600134599124883721063688370705597170964263204597608759284141743944977470052840089280113169991652786962062012930898239051170755529729037000577189762984869787565962016508827779824955150876540041897456950122423192591510812444502209888814510438463119658028895965668417006351851593790368836251796409042720181050418019487804573178058275377865403516818029104170329888258487104323089265942757245016970031062507921789785254044633197751853949140709970136544854226143685248683708741411584039401007427401720536420699580366661283241461777758801978612995102633108748627989094382606193101782019041562093064524235792133104383505939738866939453616633543513251918266191485597077960864936352726231706077062982714907353182140633766384358898619090999500075878569450166001118283701251463135104032296871508455013829351750294756496561501890586224403399378266347155454384276880667832862883530864344457669485223749595168211550450708671530198983986106077314727896858751040509431657019934665551100287898244189997196271174671671573876937073478658449846010491581177484320720020248126138461925925952985514855883401150769007272033896242272441059968314767840621440462524258885892554110199634990975978808621581106067930239909276812337155195913284948282711470938069834739979105561948152474306382955611112987389852584528257623130130953390528559299319372054034814691567675536473871549381929541734922550029656676851789869632076017118758590028678075997784933009554325139434745835180478717040861979152086988537434454273036087880980454547757128311449332008263668767198914658575919573527189308209638529979655881479864430546550262674365815676013402083094214628297061998180923072529358803561537274266690169242331691993455271379538291228647957926907515756850795487868878756794701599696774318581738989304186198707378583278823406210918796388914596698412668925186933429782312321250228175263597881394595872946740195866363931482478778891150859528679881986035818786702021799225225554444940466211091715648445379785547010464603845693423349816116525371120924838335839178711615919671897998445824933529424951396415950827704904316450631369108945565436078842046558534299600342792919030394156544496733482016395752114717873837519964434216188658174822742395193325800538362389746400094444437148049367715862620035598576058034068929974186040202959484248546025981858074311172070320170841574008551423033687238297147141452199725722449588313930113876095113663797107467005139960784399280386174303795466454719213218167034089332956044438601085453713658794977731649442886032257052781405546544999646789192123391586250763213562285734709053560031741265076136977614487306364723618493017394771644735118860441388316767660338910310546858173120994906635469809259160202472596021615344229751164690396965203224906496540635562964619897376781840906486533977432595254380067100059546055386515635191028401790016740547177589674987659508063228386656612684735828917207828129282557278931722696578943876334564891235075361105918171465434511337034102750926692238608489017621370399432689866548248445637224995183258246683085750789056318364535353698321592069062251655152409689810342816249758400823212303620373213161303342996614853199667289269181779984127601791604573560900303797596280555686499649060169868489781803292642056399712808363753507968421013514374190188529617836128254161678972808046647836464669540068134742655284523536960439053534408111804261401073493858940428273518184963181750878359413377077736093528290431782421338778254052709041473095499703641851468182914749475248454955358510550968799130079124967558952497209271050968118599977616673128242694234923185849760354581324418999922251454104572390074199772013435756305751402928225703373771018902847992055990264995688603586372846294511586493089045088052689311191797266431091065654941859212561270365014715067582002805207325864868557339226707400946350476657262628999062602903038229343409643003275852629906930339044503565420465771945627754522447551639811094101352067839827331710420367947652571264681289514373537933522016930300009150955747588391553358391862661148671029920275114299999088464625065806547818004330164057176915189881454502159142921780719704713389836103657063358791481246579679658192505492184705359698338205862311487678620327814088046386497161170952167309589263708060833495270931979328399111723115345824121254410764919503860232517604720753505809044043995179913403247027996106159630922316975062814905289589616659899049642682668165787072209811616060451899669230768526169301521494513306841131127265938927635109730563294367902756427275493906510286310961763957118633629882728098233590816191526660372506136364316868536710129461642848419955685021839417206286388607223014163072354000376900585614347852003431684349643027144378328330747438407712495128085714648578941054626463703026418017527264036217941891862183455084155562880962634988218429135903362681372818079795780108783558123841099828959054318561507176443218734057974915909942645031373993968011423998926546633389024577154893841717411156243813243729129048303042135625599180703387364052569485318177789307583396934708289016975200280529610779093381923899122636073669902726072186533284510342266567500688448455898222725472646822972933716182283458471962858179841045829751146719714855491650500453143324679424642165392407577577740169392137393646241702481827241759507256022586626552307842975180492402396056886984100461934638856466232888985477816040038621176660752020699344701588701993263913917712950017984426396026107052557681144415483887270030386022626813502769983976220120799116065479790955192596064796689169367237161379729504218022866028648036148007777527065560179273930429406517946622242749493721481404040215042159559089315033625978272923319432151393921887863107853662976351514320034856924670688142816469442699348794926860283690518220484327892578465497176949989303043725122300599409793098142499360733247273791559207027052437678147803966541681584965364886457881190903825994896185289844201261464005346882455759066769666623270813760142717255195294752820133652087812629494428112326894597251755084684783055133914775407466828477471773380230762131750168997896441526926093995577916590077795372818258251003767328951960266033553859190498003925760547519360800924046762824033138144316120431908015122015029050235005229842523220821083002766322150567939057922728753568775806693053040504219557241959200359711161971770064725487749829135595715604875230693323661200309161925290510999974002109597824372481232856033836051973527927069200633878670553379025435501108670385371237486565063068168011721758628268977526074784716858343084147983893483515631561636671646470121872158988864735675181274437217696902270416262533431542308673105860993694210409499576101257649271950366301050200568090376502598337285665374396057129289093613843046379619230150481552984977096895358246466890291933402211179420050323066007596484036610710767526270095866040692379197894402146507915274387214812810442537922168108310495564934093791493641574242183949031612796918948147417449630292689119738126094504714282574301076973565862173540703093405238033419688712484765976708270753233571920171720046236055526217354250425785724750236604355133488983112094864761796935762330510459113242358813747979360192999084490734301393002682891387580738309807917455210809992597568292415314044181677689061820091352999375350847200427897804638341543892150844424249203732501237850365156157990924000377757230237469295642773939593730137860660677139393950743226274538786619277917282822102540641761094759724196461713406303206476661228248931416864059097822736511337687691723349541337290399541206580710937194084893578713088403963371278187612187359767818702456240809203003799673945734735881554072280587792142295259919796453005630110169106440820271801844190668357709976029687742853063868743183449872544371412387300468614029687915146374962782600050522352406796030010115257498788322157890382336928625287134915168898749036055170502177759400876290170751432004562296570082913904715731999930670144051705436918352980132752885969413808470621191450730860557126255215862513928529476999638086857934019591948880419637906324520294325814052864851906513207702762597610773351113223895757646170507982811758415812309419508513126331653629585434942601732116136023790439191840100681427616541230500923408110020863508436504608256883486397895325439637618528325652884782089120237381018785542568294901156243316896084141813171119715153285287268620670354646035431650927241391488110649501872165956040850915831063979255423402902346219773584607049156381813571874256530693958741707375199588574112936264677476094225998175472447279402300327276068830258609536612490234571702088139122828833026707103344768184635320114551195787290418633349884816675701690855741689676594895075855570691396274318116787566939851294847393552580445021248965194358928389185461602290612594225372327783440556152160740161364974467617368229416557457820720412611182698117638967399568738072142660953500568187057299741032888082188742809203064876832626878179476130029315362117976902132766449207381191667834426293309605944830723980147281289787214799669778812528851869664603965598742774823582337734099094228742778790681716869808128637293785602701020785236487518143106710174614345026602628922080243983254060938506737949882643181480567017715116344097963815874034764048803321746484420036327733567034427717757509247755573799202554896155724520926426482092909493273515911849752160250055751084514061331115758737365239582590209127947154968945472890274781687971980714900271046234504261726872812097926596965915615700261781686281773795235722319655461266773892282565075906403061363040563440050084732748909815697249858962549773082580405169074146597482589548602061795498880335747028620882830213472118655349744163483531846126743256521070032279057746456157201249148032384061611035016350684890484068058161087865757123693430328067803021414473435074115821971350734148568653085602588853087186483018465160828145388931907957383646380713280784281125192202225876125854348433688860952429767956643271358230753798996248529738384250424254674817761447789229772007335161541871393303865343009678306726473071715292330398560976701610952867307491858854535454872064044653497879761942983732877007741103798070328501883452737837454189043381863870279350550802000192266153828064651706962379315941409950017640822101576802290743109399561861311747253703583622394559280034016678033877457606681092956419395579887751686847863989524781709562582414217206328438404134546775857269528159297849110631808239524295536395452164889448449318274610809096544340364998974074136086867568174379420550934755318005580228738175039251224915238926216878744980263422945984565248386005324589881940109107975771086512368396910325329519889372180940635388820137691690368708426943305575551588447187086077201389788142618794924850442343950336048234348827790044565787985621764198977512604215471012757319956183427881737252691104179635503062723310156146659788099421208223319129846087839542514942839009601560719324298231046246392224578728061053448852733905005593006822310708564271074936724527518187830306826834213369237939229556393614906582962100636406391336383301453353778822806331455921439924719868457808993069295358009919936442610701041794457594798513669715022728021989015728971365204251040492847468535789672299480815771726522056679977310613002075442971066428346032784305711160540500885101064722368892934792722875123635788968106928491596892608925637823560250137762732885627036230288345205331168014760211587160936177129594726242467179127262661570186280564981290558669657475206441774814251924715328807020229145039595232035216410548981646466679094002716952472825329631660652840240377209831232219118109239478490350021611564921435298997430815260966880513084856744543471958217301796033377469224100580041780023508840665127478096636816735083468647637468954137426587639104346238410950207064028134076098594290833154943404618758414277468833999467070797255899812979724921893136380189282931343217723530696689467888863707553223693680488127773124811851357053423127210702197910342644377673710184278722641244950653612566733844083211509602101345930245325443930011832423095078078722802483061756934327863212437772805412085403399639672118510714747652044856510583078152220262050587609200121256751051675579590555017608612906592867190337986110710261429731976370405490642594383818230490071857946194093091365273390165857324064791896043537338394600302276878321668539973789917378731198233966188182482923625552717203206472363186894336642737343628760498811849112312155461326437298774355061410951457411487068876799419912165771774572168118956685498537065897834702690153943351586088346004644007568613840683353983049872987574800852715975143720832890597001512820387160229024600654929860588255769416747680719337847983488288837446906425043515255942029166781979790823341005787842625943253285073328402238917017992355677406252513687862985816955743627877441565783902412838425142883873424904627622984711146721169122522831933223526755318391806483549000109208532262401487429840264475512883696467192361487051815701045692251792472093886582336603218054911545583541398554792445743072755430181947645253427901177106778304946431332882850883986981685915964066950294807685829575530081369887414953084822437024289256741648521047283634879265085177542407852825501729117607775736728442837844580099097666320092358294156497700017180883037078091129069746202777175108424447769167378261901196292756422471775997789976509605301960044378261224946483192395751659422884871963480767383854673663420111592368191977462385896724042931148847586064819541328207547814854839956456504218461407265223385287527598427993010969612512943059714555201887007640747736981459171822015676866403913625640373988895102362907971868787742992152224332220279855721179172851136956534987454093702236635695499397171017063103101541437737636112904780936363043955217119968261092910279308423430901513296199048310317119596047425051793041761117584443742324000126230363941277400857399626335263956763433556870320409585691659310271320915689130193386872264805738252930354784776485859130709611250572678783150561002418321662268814057350346704178146646296800456348023729139195195934800479758193890835437288415965971330711439637909773170531684774344029856329863189378077309224429457977268178975564361732272838594000471188916554287079557087304577418278154090064146971050384105229434420850757747976415227145526431868997950228229287349383080620975057273591493843946924681016535387448510926406402809207739508013350836307158344255150988717728767722852062146818773729084615814419367176416902196100432876044101749727914487868374953108523230829472324593794013599554183440034258129987444607857623928031783740231431151113124539414055093728143111803653706005606809204387409507172793383078660416336006422213797932300830798315668866854724566423828141985920932357065631511388316965969410459057118272641565875644047239919375527628239131758643925860096391320965132240396640729693853479242097832394755354243833263775662787696079069669738462099633260307260672468471957603548135817687507012657260180317980010873399292208285938782050738490317847296287360244201795202667252412147738835485025850119963657134888697947072577095022513058610501622566138704572219882664694278529256218940643150943035981882563361789158506288145471062822984712647858094037505104498840563805457305317227457578633004070884091778748598873670649946313159388219679780296047584081706788869460965424869494505044050184272690036692469640587004544539128233731875589611706668107035239037233080363028485257409810980750569108057458024267016047738348184379943815416405339827915059338876904621436598455773714525014941303744085523516076922989012716116612479175483963760871413220708258929621359130956290055197472264112789085822703246203569752656145824723131719078818754839231684554773952735328959748885629284743426472085857380509012196379022041183318453671465833518973361060908072155389895942697373513353899361239258392521028199001392790797826763628742164888408180191860741827165735812829691900978177712948558341837677014106632478075564025145351261608482237487301478676711206352348473470183848316689827627485358857267642568149195530317111060439424841438996224592056389443841761963210443772514370735446575388850962745419379836284667441049705937549803524944300514099971284175596796470201027184632963698942136044127570909751802185880630520122073826339913217651895266851706041776135177139260533256222470765493409546593941060813392012989304669669804964230838562052013054840928167835986588235258934486404392662884827891551444293355568541504800186345382217149436126653374695829590880250182953367865143201621015996086243000606322662066582829819246088808830815430861362388889202287985923241035544939584980414820831899828000241179375613355996209416832593581007747990670344189261966393543558679599222414373775129420889193630762298572895987725658146703541495524839112632484831270373708492162799589166026256299468066112652154440837613852412646130287132013186951244545927159503169288868886955067823697039190484348881954351632796479272474795937697332237800201870655625649674180697655343490117284100327078500655036369874817602910465619156975195464210753611806872164020057485402689708072498142961037831988566662496258346965988757268281607093058753295420292118055755656600937062335197109584850479795753277180058456793311071424283180672766648514461763285765738880593963630285718571882861979499321284306533746463791596402745136490718471327841184655854062445003705173591957778954911571626221874119025234217564034282716888594752491978218392317319255435418111736791094460764786055501613149031672945388502148626820654382812437268029750672964898050795892024756499892351644544418239243520799353310892602142680301294659835257692474963885911629780931418224290213670184854001411508108368830048240664549381994656207223812106591039775758873546350583134623347143949897513046872843864533079433625102477755892640775213146795292198382562798494318696546192272564414417637699748416465014841947531956877276672850768230687918069260162269264004978156852177863180779081316335189292795944839067667059538800988689554230674914043656625735725831656498165257332861725812896289211473702933827141277160880034359000379189338217032279530401896238590809568588592297597013461392629502730661112808328081214858908987436676904843288543374243908056993243149137258535019242387138065599294053686872232075804382835480929644645081396045286885886448796100107445001987074881560386551352849124020529244918287811812044263918342994603363668524136038459756264771652838459029333048765176736291943506161111165810501576626518883612414683291626611873150125566260607956295336912233353999004935712026651894926132093074667505320456137901678375798498301509628720829128399696318083695587976439312994747236942486690880125504004975950474782917781770839522626930556795603268560723985571718020028791737703147577360810815901346013841455059341193192781494241291946389505356077383129634216347004200950511325217905113186407100245799195829415333772384546764954539280503654786977972831666974634225583755119069141493803307797495456647111826668184808930180119414810361534338418503130869849647948416120774047289054075116264849654781342448307798325911395706622526015011558777744609088509121295152626152859028364156409351809586682296359347572445460432088489967981703797638210502091829424749760967222527364413688311445113168810774013515633686827708199725818104973974762434719221002416963980322940281188690625126189967389543753865288792565962487901697684894364810190443159293912414638624458740854347485376041715840345464095504735430416441205703716009574080050590216719884840105089852175573074769927441225456281719572751725729894442383471731278191705816233515484726626545234948508837136807464969283269457730640975959326523111293386720886181043727490810920202818499721772058569442634236527681693059741623330144563134484782934837233035258059662431344949463035095701197806975975094365192938221799876076963885771164015090239208805923297987763668092655061641978192144095443889902122237454852035434370980146244104908653049424476744569610275366251839220779147211461896113992680283544879006925552107717002269009668069901072500970498484286427478876912801077301954688208681180760594741454797557479827893594095804930760268678602887102491823866315419355425997341213569469558455618875967740939714565371079681423394471378367363922431642585246774282052489590286400350553969622643519156845119658261311898270596160665097082938025486575900201786817182454939886381389941879238355925480138984090083218372069306531408268774386576791971046860422059928671496559481054243786678683828515586031521525850954118693040794722603253610759476639634230145479367299539640552956514925702568655131946023633175468671092580932155485885180418720890430593712935262365245331048433731645425751406860932831224834202970075399874606093614933881881562884098038476008821778128963475993735028202002164737331084479228806224779659453883809147455402076361005630011636506727757258767655051144278958252662405041902030430623763405717927631525679537084792246637234943079264039539670484615570639033094997979324600623565419930861743718948647957380721598606298407098965634877350883977082585437355055074070375445049710516708151147170644004912713952599148471424469501196604275521955609506564539285005702164379782691941131153881345039998496895920062025035210805699944587735179640268976368823000811321213295322205407823120170236292734267016682980558250356586646866658256829651725375351364711552075976322529446608991321548688129387725797974964291093774154485591148008381695147474356311347227439530550790235751480624714151813603830366880060250509111882925123142222552997355298749219274016176662622383436249908054504628847119607028307721156984957620732159518355201685179800992168376764506426077794638936767798821183093129120124542408741636519214242491549129255316584378990995567953789553959314676883495017574993552379983367348537860569770171684810207736650301619733089981226167411038683642725025541357211846888206406793548391935571935830363019076757431565920290616926123707471889665076448035453919883711040518119224950911793008734664458174597832945860925064784923286361979069605969817738154442242557825174615471335727206005614265122268645742776936567557099752072024250933469758406399960730664466926740104714788514884996543664726649028302937567605967120866825525606147105303287225619740250300569284638933331594460930291871492027651843396623664630803455630857055735127841348559089548363598795670332441119528486973651818243825183328978496421331158574177351258271853915245358854399750867803138864160000540276455631040885055865619027682319444137798244583251396299800209908478024186232621382580108492618871802703204954071141878770947846757341080757021549717987701019463506288160840647260224983965166928301176844814770752218909410153352504617053697703765390154943446491532665503925129989969600065573892336884769871309471206344933536948299038606484486321128280183965876983122843679426058808451242744234199335873579165097663763002481809409702807191548715388845875758923126575216059454031909020357561179938678242440409447293196924366200020851016963559003111142217760717722201863091385818983367927892579946114604343162848996436757814822528782001029890091788654207461715257690228672235938013963690549657031208040997456460250742255262073009653291841345481358886822956822574439954515119135995893997790331947275619744090266125289240803161138240543405561723033919031490317071890416991561937925092462079384213752022176870871717574728033179318312952274533863888047423687542128130290808223821741313630211401117691877110165181024650768230191573906138334194840392178150469782944219321688602276169289246089945195152223656881618334151581612343635960589473204046747949133291725911415945351037056177320965131024578975028529070466458306564415991932124233013566361578583731285576936375345967615593379762169302048556433505474168076895799049510738391001585966408088715135314889271849744147638594826171236970988144114928785285745467555302344314487292795636212625838387186696545565482542195083397015105474513517875867321191703705054942247643120673340282441794764656306782900585458087428908350842475808896910300319062414787687386398839050073213892910120470020239394965282865761164054461870557824985710226521051147566505651393834543767456362275953773451427232219996322896543805175076236473479089652675800636088907455166095786423489306205627127585468908729887801928279528214224595101546830568551350556839548609626434514729141356493490999668582724203598677845378325065939165421691102464322836418060699641851116348614770603284668254042976256946291743429746108838665387482054972009500542421673555160944467900410035224340818790168289169125385778549868543978492587954326230738529049749132081860473006732785063055803507601776127206663770320269609454541910716325788815630052291678565257479053253874924946026738859447841731362486588912674190638983961094327631896647000600521846823491606230243917526197840298822209092366806163792048417480698211719392490426947435954247919501613393081534112499839056710863022299007826470333602017925331738117417202765969251389428785315142966906436657615786312305760289874869969608212317053300819858033748733462881074103933976178809916137703674961194810105249982352738579222096943435633227082962901399736287306870826913744984243498855815268535427782572385478152165450956008774821993349560865842036936367905770252339779311932520929366337662656129434210045467857864392283875143539673920627753014774445423058902948896859759990618397371600795766864723468990018309511934965162209890390819203538330329774293803730987227900183420374014504946447266505637853225257620130602234562433911757365375289011646789187717451738553952157398120879881790496717538835605762390768250931127538169279901342368094608788492497339954691342899056613279033063959944333372645069094396368268404734837066976230321875810313859772250987823973933201749680546268888336943804334234803060335248433294306822500830549929632214184640374678428490586937993042793883608784909857159979574642420418507566086532771092772613375780613336898304167205294188729737854606646571266178365106286936844878005479734172198089528953656013477479583635640966917632210216962909614032836135912752283226722885640547107137989412371646046732783727272637879227916370672055734497869159350530483808286551332079544172744194246700782856866114281024005597695923830347772986896643072456917982728729566504167633818752556095883154064227561952559297186216133075790936451351200291953947184587517192024372869363515829354578899890512140809927262714078198187658064334955349793776176658945523018850110402621471240451556075527535102521315156765111051956215489589276276880836193927844684242981782451166320326042396764990756111472806606829492384370478110572623721688298380074554250934754015861367503925567883309649467296873422482863868858223637536703894691686045455488252057318755110517554450707639564678782309360059913077818293597166419876746787663593352410893459009964380178410606854479619444243558699156225682766071035368268300274042829799198331439695756596960308806737588795015854887166263957786736134147320404286290286428250120057310485610451615870358763386638056022156945761775940556910187467231675459601639267378441501907864934028081744171412045827990600099522642709182857272247414813027413957966042901384494717483645045371810128046539946734622563253963504268157434435107106330878707322255269964902628627682667411053077789885747132514956540423930233844647828348565168195160298608338506686342438789173973201755400307811443755702324504815142062300701081955520076814310504126122362929982913619615000732373912084984121038270955794839429490323695956293237248993103514933900459041036449669229172228985188095257952063217663632051351600442072922137911961206563707744470074723874633618096127065308655392182281627660923907274753192871234363855368708711492853740900361597433976854498283288299730678242595288273605919105060790466361491292352338354092844916266392211191367119059367103302167185551831744993934307202129698539176187838500462601603423034511913684692182348241868976520899208202329184925505893027733558359302173236608903391887784132190789882670608330740646337681013918642333997253285204791326538510519852382155189644594879738650721935562426749695102523337256764249368383457239004873463158845415679714350984972872189621484330413891602704715263136367234393922123023009007022425122782475623584277248949194023047111810956918266406752869112664886457252582087842299504645482032632366802213452023390390080100186372957919419099008521479292785093917849319403750862751761453284963436952162595213066162947650908904295512161786416213296101696754542766155270875149070954751072799748341805462645908032524366884249525980361649092907566933790511563625907054766846360217016913246949925143745030805769043806958549223107095316357631473451462686708857595694413600098541293203512177018389013478013843650652126906980571221740437661827777553885735824379108224493369109778480025004628442674229778554117161070802252862694788814557275953957609129030096694657957599461355003520510287552871757143228849511320089381908745583550429982311588726897332065024814956176637058448566462424587943658244319244264482069087863726799147922223405015489701589644623599088039723960879348332244674128254459475229133646770666617790846666542763246596766390743343703029017221649221177024335695265242385543653758455897910387705998794535675861527112798963653873212692007372327866929352690520509895011966139749028966417871511610782307173367407101904090058148671240950466470336169964196006600587500497402035775147788919233467018933689607301829315810511621725880916475800210334776549764472078142959737690161043556075751262176071467297194370069437420104358003770622337663499359203007409336531082571194538740206388374552504712792636320885629419137006766217224412719856772111586650947538501886500941399596190626108657193726948221388266674561093931526146221445750059447694584582015700810457613359731340016840151184497553456718627235918383349606120428354028797792395756944227426283627761441047234675878468516594580517420608274017999721019967886606055384640412415875140740117386174779435705976372622925581971147645537878368774418725150787745536462349019273467860539296348582304357984452143392796160118482708515821319937784952385915637648635992013569937372469305231193493702819921697495927678669258073037317299848320976003486484207599853159617364270745746682129802337635802109934615416227469071557034515091656993719455740031967429866813144312421119642922350103560962251619186469871282897914334322276650399861592159161970447914372406601943546205577697509709700681185632416690776132524293718570244829925483601934471000907833026518520051405536060642733408245632735586118309964306396386467342450430942183967957038662361290974771844866634097190374532976809789824693379282394852997880213634558267527210061170306510796225807072389976686070355039185144023366690779270293553108431572604251072621572988752841667549400429422513762907833399564811313082798809170554893263054456896717734899280434166478695936011397649249452515762524083679031915891391239247286991931075116067090269019673002013955566407002454624240693918407327262405435796032925104482735903341812324272481010136001382185528464965803366505172580280194129105748627516113162809254160310646192638020606628162312206999100795203834630575466823189168837265855140664435894374210337180185510403255408434132530543444416934889258236044099030167019514468670779725158048279164649173100594333720074262788167885672451851379763962152451941426052389113032909802862317044196443435538227209146395763902298106945933377452758579566661374761135463615014093421054018087410820186453604213347087013748704029342335114693835136481822057084902258711405784363197877754283598783479771479628414875460357181319682824198241808150333121469051775258158998756106030427862177313406473699092399600642929757841323132169479332270169634989848345543852208009092629061513992205003216098862210726317106051738767886874811899453672350863376088618883655382250810617949678026270124477236988826702273442186353556239821612160339397074248845688657202545119006281634057796955607660856361827648290060461004174011377124409210624392049059553947471852252418442264416735609226653825605749732466984763953491067154874979529798680784603685872794278283469205889475579289172813113453440008594890147288406016399755386378552114515389821120756538832279531110149359984635375746419972944567095636693558510621429034469306026977627461016434775540916876836435993576339095844520410608807731474694027852333596062033148505211997696943130033037824778206387788812172195398330812639685283916760256550250556565099812184576148028290369280834257974190147708512819910241552847766320751366970344355605572779872245102896571025588829433277356737537318707221785333124275771263110540706410256147634317685570414474237426248532458267755078924269175675644881549227949851259050501940713948168126711429586423595697614601350774819147163448470739766536347902731112525714307932077444563948828832315194250755464060681425810866604061988900595094495975840088141443272517033121586660785797328092065099815504375719268695182300424087405263316207116413408241960311859332357989583910860638995597763175845311165254896645133964955732788335230839341232463908937028297915463183754624466150726640823245226473806577758706502538283904632973522359376420653427332982162507290991702563895039214548509963742338380048580690273707816064926085679369998160072805675372157424979575548804934389422361262752571514407499373938998758201285379649771896046549177602773983844435601663379120516044784369641156449366426275308568827461505649000574140582977356279320518969023428944349449001989264615565812923296345639126367505437739965427811485055293037908946488448386404020556463198911325222388238921298897328627096222840969580924032608955178107653954168950938395473839980102964957279318079163781135629608071705808930595876135234559534086242702432930629414654284403631438315277975232677601412673110915974894859175819716193232467903348567003543691928837440648434336802677672766148592031658061042890358494602637190347296204258952631758999154511565678197732830705093695176231507427232978917924215745123698640978121776391482932368942343360275531706336533528704362744324278062868767327970848656869235558349214008093034334016189517121513293241183814155075282452383608917534266208769154938476094186968753733096931749200612771480223693473721833391613884760715583379458521030855991151573934836610304737795291808161916191532239852062959066665733710854937268716174317669611403969191156886124275600956968449108115030974362754852710079501939242715211208488267181256471489546877211271409889677458739069076866854246800556777426603919832448528159981976172061334074344647866402838260204382174823760051268453310696007590808100684952145139217527506565276693308885920246901545527577014824081679911812214865189706645227606442252875437839096874203628073920062444315275401809543175516548616375155582728144515782707525371650737509297265807181823035004497221642178214846725581906060222269378658491893196994303801420897237382898471656804870185627179411231691714343816621668668113051556297975808892967648512298660491863096893325853918020848689780668917518888177902180934477656510967131339678031787167581566659762917281523678454122001964222210229168361027912442992493942519537061988593527215038268594378672116292959672000863287470978258705463627590369426736813207084439193760271358854318877908542964643181224354528680201890095351094048082622202717284625730880119534126131771798475261876352434997977430475367468364192103524051687393228376971352588518596576058737827531671337274160427276363703784562336769847388801248274520260245350206991548404511386606151966926786063500953825630851554653057275273697980329197937455743250373855652728626087204273381445039368927380506511776802818320315395192234400587146334860140565970134648526994474946143519262197321572049011203030139482908775579141153736380492796887411927023806719909667154166655515660864114702144533796901613459040806709652522233568653637044124005826947442896538199291906533589725468147675089719608846263300797263900408555253949299471945487489413816304945573339363020119008366176604572489576115650830626932869827175628563331739423848167446035605655294354902222780131992173676431336905414529798525915657968387905692950883623472091550824747645412500104624639424841963126617535115866008313516863483405181534140513749224344659956802968125457346828673448208368442855058347557938695135855910047810025989165960826118164324227657780759953793557568206720730852405357957698999099926281760977751650710983643136097116525117277838800895934712002476645507304116262565164107039195415476717983003457892316245800280569666138621882912349642901117990506515917311848651939444687146492093739531891725025344007620023378746028728644281994817816495261892888897878465548325704582243026343985355831198079579401657140652348072084623399670849556740462363038342140243604969387647473560943861403938273407676860544746965140492599382861781912258860652062236371297738058643663008650607089465662328754570269312245353281429566856755495438227351757780967719062427102167088184516316985965079478334582241054122755463293472903242681988565248879094096150676660567924572787282012918989507701386974624472148430081216164186854621489806809303341576460978152319034517849550113456045882254505738305711947422543514328540353457292057497247989576294008766136019260755079780311790537993210788943899245175986312226913243222996889274034145745312747035629839861871933961849913773602115803135065777143933495205364116685092888719951094932216839593328355909279794498005446162125965693077122258768589880548707668058962563189145305621704142919461122301934736885952225118185460652087651812399319283006534246979488609586064903685531199550378190806997438527354498984183516860432762922322020277799648230149213930291716976095079670576064093366577843867996284208742731526075707961753271021055558318232799707410681938620611340971529978150904569583838497962016336547141226137242521900844134745410584727176177550324546661307156463986232041074246448877370058015518753568612059287163959237634949423389969736814170134024688194748153255392315822885258571596194645350656530552240170105218668466741195447985280030638440595593845616016510412083655542350383562078670523736633034055878215087867597191337863371491035383522629908819064863881059743405108737735579979839494483275938979250215578213564309588331993002762325713133607859563662974861241684104689478192075314826405434047716030849078443796878959380405845294710954615971743065684787257451209390228880529401716778642360442844294941137936396349458907199298713741522337998837631434433702166760119308358153227611056131809675476974181332599325580018871925174540631344265416035949974660698295086452306828556869136539402822558489855845850412912440725386223409187735254703954277452408685646112646521463094661204975768147038722702777261070468008188912196439500561683977368192195970395002925951441569304972796633100349905628128175350299175100589250854202888322961711258630894149354169101172745034893909450449090181634654076695123009250134940385819495795498537704165129256773771032956759777305312956081976761820136471624668268058227998518952144239464212391328737378894419634897491842133229295738548669366643096035574112400668821079834905540688760309382129153440494548486268189758367891373358828241136174958622819283910761169974615065937698505474686082703166096072179805671527136433989045569049746714727387853093483118326660359112676030035122126240443114674032450858003831829016941704132371809062011445701994361392548553245528982818589699374793601329312275268062432256132469422697162269906267239118657240509772465387811190126838173673656292356456245073966342118089741795967700222116544098317153289036863498998733377790334180718827883108596330687577184365022990235791785552463132920441954140979990243012121525228530001643116348181161246587089071045992709858114146731873574737970000135694465227757108926608241958997318602432551230393888755608144630987301449760393546519731644466417560149382415125776500992068295183122012702972906146133013993934202548469080447275420081789893791744119941014304977387198820374588560409955854765891292891089209910028769363179574911994877475148089680933003582511030607472029106578105111009804723609067624858918341080024237998212934697794057613271851304641657879346147105604909951173454033870072714603898090928935407345568900978152686012632644950099064498104218474224414687885743677616286481214509157017395872364228411819145564138516520685253679270280280861797482178544773955285947427702403047899538887424945327827819671944427666794010505297712489168472773264539233822639124245340839523181164277083445396682226452300739948812897217023119637844850215772678694598452686224522563582885945490094568105270364454165768981477518496711093067743931775670032620952774456788992267241039063093326355322936461524031640736384309035109577605367070741534471984110225734001969939534024252916114395402110329322583207688891528199625152141178148193022045428684970447306158238511875435572223569519387296716834989451253901978089625635803110475315676773485620187660928725848982014319444997362072073754127747847496770350047483048722315306794721751127637156451671021760923030946531471976193640124818353489980190145085140816356592639138605914135351397885376277514105976412522285072767020804720536395600815506966861380797248758755354380141828510097903662264842248056684970768286295557538307884785773797459422034727663447427177623327942813116621936626157920293839172237997189772055868269637331431996558896869892547427624879782900291785340667918157665062581248984088242856278704416238896758041705192315787405010395089832974162902119594121955931658435460298815019793644570974995428287861889119622193723189100414078842634929480625993706395126801038517014825623623801006799968638884975706584505630843426179372524601154004147725313500794155878611880012833546161706625849283633096453776833050560576794879841840163450596621107756658648857718736791512923194695595630152726739841299698464050064337654275088736128096326669089396972561778419636442993272352722886241391627273375911788105399801272517754883504590802452235496048905384992566114266467152401253344502441251453132656691937450665230210531088062045416157424932962039148144743185526308270325993674633740596334189569017799378482668996329296193462229364505604663985981718126970369932052161645582844412895078351789393771680924425575872272204559269122487322693445392470327441354405502502239105970150351687227402034446523249110896580426829386424627802575626430201142887214911183709715396355507436876441338411351904707708937138492763601555224318984805167779671783125674613327203750045828028283146017439953451368463353644676601156986134513254592596102809083808366580304734240199077060084381269662432827415124662148300816021950004878372808337455003913735821769906380098367874153907652969878997172683294195560883506718990243885182497615609110325410831904216755777401016831656982045745234926768996252971098970288285705883771408569153219580463555214170351211836197153336423881713169784454096421778565675608363759398700331461499808784801825161384725765241431939221780458389750614538946690613435365703207425734995163608203000216257991381992870272879711900421233240445981338241359790083395089827890832239934816320711054424642089858742552284756406093152327741611640964687104783475522612174167358504536954773791065587504155802306181826166702071528605217181192757312227205383161104288661110058879870593481601504958649446728009020142508899054772898073194893940150031182056872707159922640303191031478680517818327133740892216778598737319467081580346892432834594091979377459929809528224880007813076816961400231223912270576613094011305803268398894333717737067857248837569069716251029992446080753042250384962188650795734640723758808471124414503703677784289794373835841066750468368991084215630160912526277066185639246856719897992188187413573365987057943801076940812933689061278749847316220167717682589696334030216348185822413499080501769197131413067844723979712685222636517195154026875841950539876246188695022653703461334293534821028197506497737277129145705602994207876489164002592062000268372351186320571155331736430958620075186062066038867381680073113752554545396366782384053881401301677153792739701574914952250397712043491169015704775138102118225346540750076490228398900316535358773623654506077607642950364362453579311470342563036045569542051071248964898840159225290716343431628034378936954001847634782187813693771997650930183589253504558868636024508898043928119537568994281876801841034774595875645225443837398616127650908795226103566781619491139862853259586572442218370607607101325248305261882124256737108631971228036176924395809135206452908410710599597693105882249946495919068225554924919461773757202443114098940714810728392654132765518372912070519637879022206204868703691269758495077432765988938145798147918376426682409727673572421926041037360062412592194036405800688365691153786933947720790935318826857287700555305862442800729255901496295139769208659440358828763362108168560346663110948926118374113176602239908852389492235075083242687161117369871944191290340205678023539813484267437269330369147929827555430262539966626816528136331520396977404283553010176948005819134152740769729595514996114370499075635457352593918458784637700325005931453430533012207690056752972322420603117080934582145133726879670912838492885876202056886070290963968303972255329186896706787981675165958088688810403561194341088554181527234500829700903066213293546091402024606134350194947189943926934302082531492097378660353885564651705762971289056324913768365332803491592199662607474547861826070891770336192228016933305995237657454048475295603778341811699022403957915868640975450610160271885293638283490094109049910334387898710754090416652934869692846953344659499350207599807684149711831872482998707829237301341481717397452005159742508656596660594705570681884936260227345761283632480777371801470211080742671645056360561871943199338873907616763434355041930639143353586132596576445955132617031265380564474709590323273577399709565886420557709695101074061116294171046906488505776832086678924114839264663942103756840440852444088474529116512453617149438975705573068368236595271129139525999546507460240759935275547677513434407446081961501642248516515327307991386314872543223851953166239011785558420596292818111080569128782819638337208211032731228145746400228842000964697978087964678912486753448934852896462930411034765302512022436366231524812321076859515044183460872052091150255430421151322983655731863574150662055766728923567033278497619353212262853141988379914578495186312007729842154038590677375779610133606812662292568259009133358540762794788917684635444365290237829750963504000191211990130324061205199747591101925130907266052048531137625981233428131228331469816084334322074290574456911199736055443391658643708714059872200522903907271241934094304450965312434668049307511575940609060120736936449223691083835386519199665125685736892573196922600776150479695322590508601677323085989575747479400982819973203382770118909516896456675879057677180100630232825126590590478761189353774537545578494765026864463327820891963074882234921951049900824539527070353787199027180121271956926766143352741125473079172701544801515382931973126239232619340372825514884130817900522131666248567810659595740191768894732826876987528233583387851666207084600482588521419619572755479939203917463205284947733176006922020759899697154066566460181751602010221453120272079371694818635292204556735147053275837631897692546640094714908029695234884792438925894531573010584319834120339620384251478841644805674095457558539414855277787427742764694668456011141823447978970185636041668770832795578681389692247445020267343832029484241415576192095398881304656519000027033103462598864909498577362394334043509436196161327451936173197853581960451569649312145239239614480182550236480216097776967638106385727844124902721407320454976658465047159260862411318530376094594621802252918287662657681805647388741322357731260624241419795761791829876799218204860768344671402691857447864993045480343520964289571813347041808545054537728999221592244969044978373171325918581381092861950415213623323300733057233976196537576954720030893863477327428179831786017403203660980544517657594676594092482523659352605065317995177912936194740541537326373499530643985201773263362696504659782254898740229401602124039863082555983335574365528099932293143099333904203257664703538633478396262466326061531409609426393523826906017297568017350085843784278546687133801164697672419330182730448690159578838389250713824731594852799374204212534744124509076744984252319466339688141592512809637122549410322051583662926233105688031463562021351767223959497907151341604989215667872101853365345560189607309789739752010074406199581446506984538999401135503975468549324081887313402967028707128195125415201112946893847610616532544667877855968236834361213711743849344988028697870429511281992767616829778353792841265829501535235969702803767907744546293270055186955548390413858987870661694142316581706899142865038827290187623868103512389898454645624102783845604424763260859654144256595952257088204831198186355042262435283708068534195072238939182004088416728300591486125417493784003588716221151500192531909924640482957908650648555481312762471082736566793985618348679816089835185292494821755006779003829570441733424835516741326107769657837593630302864561645502077335458679085980859506323535006718086437313265956717217626289394360487215570762688016286081485806989685665924245990948709057986195651342622536675186483604289254142862192650060712172399870290694830834484876773173485152615923943141833239306443128700211376076960290259766203104022600998297869553645711563476633990951792319900333586655596417612121189787758235517226491032476554204589736208187807914717308178466666290463550161763165868933561674148968641116541891767631539392339169873972139863706225003366011369148431318931379919002299126186269250688556970879771629229790851253068250608293262631917012418532398455885769556308715839155299933328211788928789587924419248583901200615311163545253229196062629470959234933041314277965583675579930137016144851302702074963078655511106438995557873044804687616616605683437014503431725199379700157413272707627032122391856396778585089401827850630075542733908611485017003495066040144083527003750633738784057164023506021166375888827664842844390709137120336825421814018096999077885092593155613521907797805070491041687313537480919240793912307721491108387843395376757172041969314890190023367920482950184593185970689819131429549678639413513217912835430947748542242510530250171480425999942921586105410318224615822707047175571708456078931932311779796619293582128066845380549535428682366306867536910671308780979103835169648593570007261288433717116182437870782557930007015288415789012323981083803162298669947660709159046509522283277422269762772962038752869424147747270032281745643937589031564472412947307445239729407152962137266960157730761597101105523482956137843310437261646692584419036938266711348780380598349022893431838372384689846820563360091083953868577771873125509492535178868594367516334467882565038761957767126603586214543193229199743240700396672043284863952806809855029102405890030884598385244466808424719307182300515675975564509578998049988871120639901092501598367807745860352136208707161731746465777617834548755576918744934498867026318799504455792156151610422736479648988378846560069520939968877060700741851763423630054277689343719812433903792448601850237745609043740903215414390300816234515657786315658188482457422819727761047916815958898872650796894377907478355889588501731803469289656045292653961766395556001564240035137325106567231666642130924004036276309832617134213105750734986311868381795665084056083282251783829528826189355958831579951946086637127771375168694258111205203308817978407342891404588153445025786449893935382377803641031872569620049784298150361021978322491436030722564866129431515885004492236167528569862236807177842896765784552621808515974027242424490021283259862040462496168226237261572110534626545463783358166951322562699949797538037706666246116107839864789965054075765085478563407300120143767386401991216410679371879004948232769077573410352651798506900759801424172299303189634264665269321166942987625145970064323031738182664019994603443143184456647736516621454152439518162998564736934722556632550340826332849030486355790072259809837413334231507822568802417189191935541292937593298634799800926374286628591661830464121147741202623613966854683506408612722257928734048163942458617560056124420456385283722461143257686594106952391399504974577176491026872872184641777301525618659990539890187822960831563814049186854862979968840134179651020123017789741901788714404570597088013422489365770137703012828295556478683922454823044758738086762568485882166916990604184563901680648850233012664755396484314778844094666023719280891869649670181830898860947396622334288317072516163528725959954267175716790961284052713161866429128798046356018837533137587420209000633759029059408146350130495787477960077797900431929833245663352012318022318430882941721244188032378689720891119565857416589697123349718175806517751117274787167813514396798235723174940417466728540798316427419159101594732350219137742715328989397047423774697741898261491907909820706807965437423867624129377008833355602443587269147641127474140999438220366776577934003085709048160944075714552350521070652581354838196315626908096314742214267789713360370462646180611780114828730771147753200513549235026544945960811123791430296504454630339500880059816825395031434749042764117608084298600611629787783905828585217176947582662839850495659802507896621722676908105364036501035641109858358479688470134825105462085506976869775719305886044116256843950708696466120838426989019589435855745896826234097714114746250741421310158683951841864385887256830096190663016069090119108825767256041332033226190754147040162234836869824977544316930258893719250699350582738616049240245926708349480398662646863194520002890997375264010744104903148251767216926698933280975125862989970694905518062464892488528111689077491590686970839244940430470707781260996363586842000495938001319119318358715983722061495011232856538985638195719974168058997042487073467961834176572225959350995345140565681142961530507882368431725796969393460863147464794005716019090730233965208975579192207161171078973328445514763600639551105295762755184034276666501881329725899051376415225702924192229922315740324943716904292694501590853648958967554009990797584840742692838573029707147862376531220481365989930109709558598387574898921194416413016612716318111748426056987736504554746037314030946916325568688187513121618986196541526351083189600838810962263780525695868176962005316664410131158571659511010944578211097973961917533927066485391972063733284279231975348868727305938331137980771177409935667424269992520257886499835676614143773493953009074309666802863724005289626930273056232463397678052315601477804951676876259140124377645185099974936197559164125726372708227707841353446619841018656582076771047430420684145457465715094391902248210769709282953290463479908969426049562969153460251591730383781580548757341331635206145394932088411460816048342230225653644479882798143067082103526900547828031722457342879134215067312219450836044849835808991973223553580771496869900723991081372408520453945862372855670592791526708983393551395508351969944323236062374324466879840951650807446290775730083828453406430121786230225547822382898423784182834433755380251458991329042283312208868810884705666564931102191328459287251698717612539796535149075827561540158730418313313142778099997804238837712228811978567890192256108791204102762629872704663037718514502537016578491655058077264636603441128964576553645611345350346684758339700096423585738927132315618308012793764328403996198763814574384363045777769526167167710164957866904256778894447398375050197332718344828298087163974730752326513214864961702485219299457354615383745556520640755753593615412928516787498391679833947272495250926527814481531680929125716716877022102322933245795578343185283291042684227696103833005615413701978024498044703019677486227939016206375393528315574553208928866888337152605851480237216938998915824548146396321186272630556677973294149405674823304204889916231575693501234727889468362989648742888928537529992912136968930629363517933046984020025866054271862352807599881012826463191997417843737148108023407355168506858466018873600363585346305148499062578880014053267863175616596457497865442895252719990175830701079619262000244873631633350898884862348822026432744213532773826741148402535639543440258997138668688474976486146057204034567054825461632660208087347375396243250297543328924240437647301370992289535345528274211127091556583845986397741568783112882890369159320776334647154881207982979863206235415263244969030178956676349796645578138078981201262756967060767298756511334537994193708544320960144488482227496958002866694749828906772679601716711409932587426781492998505456528113791393893172215524668295901790267431428029697777566801188138958118735371541906060196367866862328067381541004389648894340527384697734845214835785001255237693394239858636834931223744388314996377688066732459128688238111714781447152583322649917827826912792489408076199359134117312318392091024879038451708700802732348482773860825998328974658512898032392526463550147529175700845198660338619757952512565956899135759091563872067446505757261845502723249800477000310724810375684193487554931488705605330212500340212789612860465359979123733956773090471948755765512054240711051503329520611131883269799405958085016685716028981206071904790963372159715705749707028057678172279362906367725334297570780912676736763220719478072849015983937622299398994138429963136714811985474397918706838951953060765881168547288084923010786904664122128023585137990577318843672199080682934810615695725976523141469678060581310876486715566123049856590378167218412235992422082792997431690740616195661517990971475160492716791902071902700764362873367934672359237945995029003351968211679921682389788615801997045867489464396166348576100246039400311777992573478592957900616578981182657728015161518275663452232718112094198628451964218697594874313717879178259406098907717808341131278262488203060378187453795929964661659885342534836415675231467567920628644354997091843351855642679042048694856035983773625950603494990132193257415477412032132358953055481117721420244263955827301493048564401770984625354734763024387007043733996283171155433510904257362463114076883310040402197636264297053057695242571896741529307785183263228981597353025376908935691797048907032131618975782180950106104219647532778607641515680249143004460709191924903463901638381933495115591719222059426371574925400534572428084653988696533065033729777550602997098591388381903593449269842420289518984308367523048574311281351608950123954723156386478889393846904851542146937099858383727895262576334526013688045113581607923009533845496884642085640320469306855777575915699102999239972279065634199435591609916876645319301311639814708547506766006002653564882012517376924742063390924653546013014370076083526156655768126718773564161968194168416947937651668995058445700364533073910918409088974913058967007793039331911511148394130506598437495661423625057386603002079895334583644792985842493215900717469961462107515110925085952821492706949849599191921009404079386641865010649423128097595418962238938365934800822964044470089421272050012998792365150668278676459228406558235440715020359533984101508467479269577601434296841178621352533705335501574075568594602794230270456956502427526304209770570878136678027985161294966966375187179815976977617261121935035391765214220493152354867177899022817572970791504193605480341322005839403787848869558967184679272786021746758848252805144452414642523035013612684224788194181180099035859321247404203811283488401317031889877052873154795463011401244771814595148908802208761634826402867816640618241334159948754982855224603797853569725445321260493742997109934705573857476371042708072700471041892262175507651280297635888667352857450111060840068968413486342600390098470497887343839426938068553646568487758338458945683095544343745975843622285339099753050358354492645672275308959572631282615450860738316768215159286003624790038341450941051182950966396589364949098552460794279397880855999356328501653880208280353808651346831168200084008060230222859564725192303802573438354458830164423987107183428176431364437819651059910278778465263918792511070248626159409134227514875248943390664519111910137766507039556343977008260341880023588711325579367895846488449223618517601143643824568762315705817734734839998012176964438704456288651030431964881354631921612503267255877145151602070549676797675194645499281710059756699830912208146865355175547125971340559133986600681753131089790023295884290357923654085831889875356989720632280330288188105589249457635672229600775702555993048622395160733382127058529343065398724888137611811941358986828151178753873930583282033671705084357811550388912247002009022932040506802937346446644137673402154511227133288170845103137199862122089574512926691665935982964067974201089065805115409759379653895131965192514073000865192107827468955807001241389346386995871954024879683257219154768365391122640256683587586066200043366242514596563179177175729260201314055431602998709802614791152794853100768803142201424125579242848269022288626348955053059811628326161282151319171169444499946542893875900505122814833381097014450209026296044732304408186810696912615886190870707974351483425451910316360095440785103405665151733302751512765133735123172846680584186686840050840489372163950711972100749569230236202383406139907392952054603647195809729386264882404925800917418313778957182348039619096229921400775306859034791167648057997912591957304005019565152210637011611599816895258495629924192438532338933925004529082572682274505192470049843802866122167241793992863116516283070235959006919537562027955319093813667678854466136938271417338563976678373189232417762754614300537954641795472511932131817259935770663963466166501610333316165627983168987821678401414603994605959724384202200451414544346197825696562173737944305874386353076042571671929950593036303475101067591754808582367464321847693015648105417621722003268819300195442555476320810345012697860500754947065186554121594409292240825385560320533340480149941778772256732398206094034971336188612411113353156844152172742191070526295310633987406928790795769989670853009422206880368828454327127379238561863926526910861390001663434887354722894944946462126428956968609853539184830605012002225299319914993477213035532852048564096566770370262435503277951480653023463197596372449668629583989127878814092674137360654892297801441957060487996488663769764913773873875769153897062546525951949987159772164585302146140029642710471329472487756350300143356273033407433995566973648822511640629833403806260991735716014071993223575200181446322369836345846433527990819255742451326004050512280482941678799733543965463630662947095893174832533342520292254359998899276323214826652378800384180145571610629376591362540606567361736425992052799771261156293671465027226875603091144600007859004182593194384825941101770635606500702013300993816082552597159958925747267720219218433117896632472294937820929446091042491406869599719889836685349322334453268970496745429459754059844882095067507045262431364180152475133777006553709486819298679189868143659225561377318051756998521602605333011858000169413957100547637575370074018299298702993472582506552333971772964028465625736204302701528127130289837865628135792262975313718402304960905481016680646991301278903590756362275942493197776199396520492765274054955101547502475441836473853904207192946983542161800350416178216035144818152165550338922922017292233446353009572445343785659373683820343325199175933620391031600433423251811484372226656790577575934655100554518728508920442648229242011041490003288350765498959300129492476938488788966247182752482989582331819289900366492729061732176322249882105785225539649625614467388401401271918801720066524388825115430575252324480333469653565698394327824937325418599519610417665816515332085285093108099621070441286453140925858765135697406282441987477247615572750694703300741788273580848454156676392739423745827600598859085654878416334587329074476731847062860876833168886884249196269232555451689337880629832620908849570306488485432318896547483731702948950921618285621908486663869520039307361150051608414643952689803167981764676101857935483709999918308410936985424142739043929772628282652621016442223524108042278188309850534966365130123143581386830082489562612255157890693880091057976102863836352516308688143647730601773020647225559065132240656754579889961187969489997782561215987019048466017206243731799445776886412146975650730355920373186348687103128845720661154219299864538464536219190608321331677175718472184247539966742256980646253355807663591532645382695560232867896425835889896764967830875487934043441908211938947749017869277040699108027375017014054700965369182243416951856395449688122105318737641917589472208101945308544492118049937793987369055368312597947751661645376204348394854577084640086207352464831286944806748149790524328545678560492404189282311950244727823920844901621265072709434493402794123033144896537287021360917883911441085339363434677198480905233342746245749103491745150692979529088020654712797990207849907284420898646258616543713842970273390238711806683036390351285472114059311960201169253424014316927758323806485728105371641362725671513864805656743533760107630485272526018696900035089389340310376850359719938974224069380794278826185166315111949105863067429774085776454631397228097914315826119834816692726965706635232067476000956460754486583672957169226338976166487321408268758587349705147202694099584360196189461297542904326486882221083885395051432931968148006419769913046642557988053770591055716661869395240492061515655080025488268664140913148096808604403002053475736127114864727904881703326299551450456620985398865285476833711232275900011398549157732913327753220813471132639372228281926886489515565743681321149955056265886969174329466526593449597681940972447485867764273479506238101502114058539620825053078607952036285138311402872658419814270831705335910375508967098609309014963439076548193539578325819798347150943234924735461454389576976550846957165659245863809766643355996571267205161291006913527126023998250852124273793916643939454895679581546481214218521552230315515185563414668721143387303781203100249921719480493005120511736034086300926462676367273639402945108643312007830159190221227737849759905721375748739124461684221466669445004583121410986152838330375328954980142582003020227306448034482222917935603649807028996735906631069970393382714033018714549027132677686027430306020721328807302684405326486009787930832855367663161061971234940287011456947183277754294114161995326800050179348014184424482971885521680854590064823062251090598736002377737795994205738026428720032694836806741405382090836323331265841441265096900532758814846569855237207912972992382533583528668879540068080954984602407965287916396056226181655880123869972352250337085056321558876979851772052975862144041919264490645955292609229628819172832096843797002024282411670339757428709824866983381071611071438205836324767649220135093196824007132640797949330691617507246992418385945859914501152628721573489538389956816457175601296914953424756338094036574382042372870068500062638289191858870476867153727930817656672705034954862963869514171111795208315050632398555579569625063653816621302821655466924745333542422704943895104692164651101588370549362586825048096335038710275516704607796562148296383681198584079762443750409084113832400912622905117291608423068678938434489764760935469590045118215576366979235770527678036142527335464341090640211178218334882610651537896636056904269201022046424863001604833826759500755878529071532464078599038508644627182497577434963689863438592187866192708256272878703000354881315803758373424387080596202000146475844727005596783294321407082030789003466858492370602949515857991519456572525027171462930055028303341184037237370949510474689794163904502874921047545526828284179433399477744806633649276980303612751956109951698170013768482259339009168771402307897157617350470348890986937711853466152067452341848950682947200873915408724412306587355079931126270453546219894447372210017870738029911284057755112312073227038510060484818566170147274750865868940891867918583245442172555884289292067016362015411735079328243598477889399421004140780863331435391738746131335911796685015584184502417026493161006437484692900221965221270130089553606212084065660195142459492821398751850061527204944930502839171992520179908240693432716231690109036412540684046216741061245760812058436341617436066074566472070622558049825799853045705595584314552505759601666737179916404692083278899640224954866745148743087076686405266404126810152901514014212314630986602634352292354690919816945379300897577150290637017710523881190662695842911938587489044332083215674571138756544859995207716431942229824916999377307061014512537959713359213679047595377544495271789306103238756070971540628301251926303035841017951963622799388727321280307951690570747523805221875139196988515362943444686132090470091021576971673980920040928096175348749540343166278052282307966532965641992019865834365239815971799712821429609523508345622264078111882900829650308530072296827527074698643349813646511742607842317546310068232635774665517733399824355103073760686157176796917555928601761082592487463389525699677444842459972586817764344438803187637773567888712250111476499054316492355709237794072632097834365447563069747487076092005096217681904591031874833925757628651139690984334762018100171967930917949702292268979951408813372351680895836833223407527028628459090235125633538404204396990896215494407697032991849568974676275662760905940140676919613779371755070730812594206060909849139206055392967593290387193757827693240857854877741323428708509574515781155036974904904333281239160426614273216448582003987346381459833481157035951104609079771767051644558012577035441064944208933615678195963085764573730430111048643702053493402054913357395826711748195866365978756348719153858048052964340564328398468823497262000891396461264056400374541976354080518998767497589748643679087431693140322895011555087518001252381507386674976130853839624335110055733978517459884711981526970782693601498455090878204311825150519651588719954810382278402375702320258865199448457760181856927266425882549002453348393636973725903653142449252850471380240403107382005472733933993220328990771198610324437548666019521038545004182945297450050841066998406002207418543820610937358633036605637559532129500802643881345587175251772482442848215125956048506996019411040888307219080632241132294331006141281941732124051526139061813290803900201057989334069305876840200726927744800480831250556453959164273630136795834250425832763444219256910574760216469699842923859866935901872631346688689238239690722451099645432145034284405358090240967671398540325705549753054722120975859376445894864451965075529932726646398722627458719996815395171443699251834573011513559856261095768009103969659441087239528949991422127383415843433572874038542398710418693232987620906244591289877582155113953150749241793862164180919686162824944725366725806850686461306924338182166133175145770206834053105963024975221148142305836672087916932799618786003668742482872282796527924836191879143039459968836187410425677283374321730908432744287373272137334378104592459807328021004940273389274796947383001203885139339235476860668789609221814652718514619670126783098325523884579723647628639450247940869368851801804447872014139477104899451779645614001345030155206802076679171599175370376391812509701693909096815066621427126556717777031484251408996709727890992938437222636458400298201544312078069754678657118156133832351192026587958580885059191485522700349366852370885651959952786132715995521772675989330859252406284840142881249528415699493862994229300790370065421139138912905217084827377613621791477224237446709644807152513108622562588667063832649031295781377250813141668371490244228734777850163102290381441430951693531123238548774307802715643440786728076908610151242804390217697338121216847462775091826019796636070934804994585002407931665655157152453593063032854243513619536229273851750415708393261835397192338275682295717806597823200219718535695681775006662841993740241185545437621178223239430363826437449536891329826535413561892800942396393948770846820165486759792766734937539560839044716504053694357370249756212603415406555718785529361134092092555167068960905329053829603917372822521664896423490190745267812991531392457460038667462458139829104121295672353387217847429954537441380364774469003731492953908282497679738084281377166254365161800910130736169249745792353384615231328446583173690701108142672909068416990503499953016981880218489557885977550519632340544871885499608491087243644032329445507871988286392461014573837836530450161651353839891804984848571140601328317587131150304354344753655409629436621993397243412061159850659567768169694561186589422474483842449740276705146193371420407203390502655176781196973319867449427903205660281819907426013417853016251746252004360066834802367438826372007145996360834849035733090221349248319227558311782584659648225844953087188986947902198135125365835066764859008490817587689248814845401527010410556014297620498155897125644128966410867000098810533421083372232647349244240848347753201602341207441418150705114583219722764954014868513307204149354130357609770985042868655001991183338038509089386218870379841098943478538773480678522878861141824531116511575949413632190478438933053984946064742012085660071351885545689821635191345123909774529286706175540029982744397108493720955602560655870309231259990679717877953223564334563619914313938436804959528244536651632292631513810528628446909211751002858807906228571300435319082131461419656009536864874806179773639485256136801975769066425812285292916360791025551547742238680572660687662401910106139572647421365646810737563367543186163012043662846819071169380644089385750808303958222540870118256094969192341382180346015511045328387022823399928120238913624586767603037548888418066939363770059606169920354049050239940516068836094756707725147312269851384509005540303821465165310474238407725748884413163970811249386221713132912299224397647520163010729192271154796923953495188170427282332088173437958894248771648529575312486839538901229539208124043823318804249254079663212506488750131275175849189543675397273055403808468353421544075620090507498869975375063152572033608482140652869757469767263606748060638809660292669971282543981891258863409799500445066502872142073332158054033022939047329702217700266911205621766245056464956572560133725589316916877939792928306305928935904352058677427658223936979639694743445419346951651166142702010518243409533033197539345835339541371709465298127333004115676092420529079753559694305226708640291185499562963072079230971953625089567139172079571800695242614645632022542360383550465216066585164081782260183897520384771554546679795291011387143029525923444602532171976968818334109644823974228886251405320311118157765996489590103243338892673173625997622102259307771958840712772544810796031394677090333526271279562198870393505928416598516435624866119882940805940109810696862902956307611976221969043933095158315500835737354040284820746004424826027298703739390111112174886893322336787305266916552166330553780028581733532420690269849997496874989972940512265558085817746215519526922435662362960882450134629755015609860562187594596364262656721302498523895741260217234131334598749322946052725832879856993591159245825076476887938469110585216069706462963079555450131869265207343960202609530818979822588266701180185714662638269937097648576498410414947710674209869335511095384597649893181348102002367636976020996446905745573259535307565700628860178107011195573475882660239415839923874644291245980919134876835090506800527609432518909239952984109950400051130149215231635860685539110055384650508327083345581897612474798326141079694688374792449664031110756664956110622845041346449852314453503169059169450388635039184036740842619164945688274164987319877052558700904150076322052016915612844847782563800751690006839298755177819038708721001353895486656517644677590096983743298912450929476382473846887430295033259214045926105852385343020056178170434202267845920146193019041968251280362475164545056343734949416795842185900645247620943697378393771798752905763513643509561280823030026990943244690936648388542095794949362614794016313549560603410175903160867512762122409337997266845954808184837742411068528077360961929002131961359740037770719485407006152115115038013701750773036322513735527709639813407747915883594447565383822066356141483640043715146712799004781497079829116344994813393025320187055589654408218966541184352484482886761664655556766755968321456894001823539997232499079499779124384621505018746171425187839659709483280565440981397090794822804982494246399217120529832277334129339384899422726356538086243631375111564429268296719613813828056887076447775543398658263776756794403573226352118294350322953758302326549869709193175008272226252819271915423489508313854150004574715822839231040769027651833408570342318111263760093310769659385665349538283535937536562962302818532403966913193806228909775799717927835856720064636025649376344444247426274653600083319572349053720178057917128322432841429740646818891085887330206376618666939131615551985519838902205758788862480454691570134040076031346835715424267648748711026125401436213390450464248456280354874421759950853143537419293625528311354571774429029226075303817180180925639289639378859571917395117538034580476931368794727097791099370811012024328492302841421165444292767184194253605431745453583020587655538506927332062838067667030209483529911638716681689601396966191852485422278991491258015320286082082922916574793608669213439736018169620434798767569110656102431554736430165849627332174704333088541634316216019050777460580730193887435696462555727406627188770791897210471023074264239675426101730550466658333030280204268836048703941443234044892937230030553448226082942404093545014592645407589953456024587833715800766682585061254076963903842534836071061908365288119917989529035972998624274729525883782826219230213406624330519784509125230923886421204920173899162973969792260495169946521054295089678335226217780221714060892366072626879276427656891712865123958674660772258351456906309055928811933596136961556244023437513572828573473985622882138427564982042042880681526279262208449472221731728843523091546956575045310789586498625612004109300879745603394499603655005077570532966023006522755150946328564903227222218840671053736695683551249909891389124173863539056649760756518837840607818624530865098338073760078372979726991783655500533506638813357808279043116442174772801384454084561798431284491390084680006886080794232582232353116987011017096673487838399211572224592172765416844960025623824702559647488974924439511470659343503630880200524100691569224519200307805034994151232801320010495356955672956224102276248188581062710111557972238891889215850863641180715270596218989342907620572420835268834098856536419267853586341346228600212742129212854453636028982637502556965742571360155462317565497453102726144122366106256838676999436777473852818874645113648364084837089456348062337413772218469468512117680426153745821841264899926801277466533235844525708843130369595161578895863835203385754171301458661263034858604110715489271746272610441603284595825559008247732766835276510178461947817925425936200460800686616257537960911207749263427195314855321033081577698183820419646493314932772394460378553829933783557475305076474229768209662446073435864872926352916684598113723079138420996555133398036909294100916396980880440913018710095695911802945925394060251077519669020945071436842482312269491149373683014479658069067036793595237247877648851053002169092314057506942266815704356960298408894687020627242649855910498484969071171545591118889194011887693548267860722511502953966125398384958901883220508544433274906088620477590800341715802515112479104955942363260848375694786197387003635637981290332095406660975850134379557083608306433774362452121210772755175183752764579783774533928430041503683350337649493797156603408744511860939384159586976483955940204819105118668107151950898933856329311670089039860791372211805989810693670557502870893145497570330295286850544836434816856395790440274781605804604081782461621926166375921542470839434394369007524097988981277032316694535745365682221087034788366302584915789428339606861353514243605524774204350033528551023454954015658412639148211145187104168490984418234940735435749945267461084297831000819123257407867486515002852948267004127409892506912812559966600262672086860253491089402535935763885982165534711980722340736129525381306200515923093656407252755450729006993252597824614337753046355637386080118317739908372220379757111867194674858976519399812859456772881800673147489985015996719976572080730038071958987297388977604093389051902189742957435293007519966653364308001764523538509675572190769427218481415588071644782000777130681378427527394556381387270085518171558761842383187351887433214847084028623991388935223075798760916106257983007313103714856513221278162395980505215462271142915055555371078310085057610360808652606299465436149672680167970261851930545604743995585349747007121399368130136492338667338773496175252618524781623046570394937653510679386721816809075445271279365293857004658804333796201979935985849832714592457009320554214760670836685938825868198035572284185771412731739740578746469749885653818983783022968898868480058867595169079259913800521637153192054200248951229036243026730312608896078328165344042583854597312546205854357794066807483435393443443940448456651046387328957366197299726284245903554905163841670968570651420170677731049699126783135600281924790501705457958054557963149329063142984867730412470318530513897265874824238391711726259912438896952349916111743236706018874158246893151756870817487733054513350096517865535355530840412172570481613321936534504560049274599185998235116320071073184678244239384876272882243540613498086742299874635124772140190150244268649123489132082849443435085460382975342744302649703663377477432969594748553872222589406832763374770513854547080335361984915903916346538640021908699069697092288955145525842175065861404196723027519037129487943721806121325197542321856088581889266257356659069228707423236862102571703439861439952703680527582412192072158638343576964446399824587235575120901343546547884413824973943560323184206900263365881599229253295464228716275680701072338425803503963863232384919418364625667044323679589482276168679830051782964113303818836100877087747886669656707199847449232127630971767153500403951041740961319483216325438275391099427133986766452047413571440878595404760062941622395864849546721429425749304258983132823107250482709260117112998215452497218248072587384814077131289129218632578328612144145176924439057004298604516719952090447710055185791708553357310719450808841286956279632736977973903371294351982649938317020045955802109154966068698980734407946874337640978442920402121054407409771055125476378369904681350332332221478942649167353599318727161054270315759538772378135030400999538642370707383893891952927094554018594360002102944223343558927517084912478606503755788382941601649010154741192582862071277763558646272567108997669154782259558744614696059806517827824626276764823453831554722727904207353986739542576019518348459818827994715012273452191116970366208076614167428194224728408628032652973784390520083422453475168250568389256256251455785080142179314991775148128893191422793238142098635248077750271646912973407865139078986987811550189443311007754915331349491653045975161658579789080867290840113237960865050581513036767653016713676534979940238724630287134155742657967064311999098838849630087655222701243627811116721353439386568597771255593038489172365409465578252766779413973477204316374684620372836241792539889073977940912422991649834531268764152372108171816724096110856135911631144346220546802514929575790985304372436168476179268120336998663657065256534581876741611283129794235022555436966462004589851677299415140626395123085272228072091422723717309768120804960833050987926472345749803804232871298004998433805943557043922484388171697568769370274086086251609581710878453596289572940752275860872238802845703501845074140596177956186016914994316260464532571195448540444259324882636107149575038032727992382455093828100913458989207090372615742735603099856311536768562974709538760388055395446767549568119564563620938937729609278388802021150185123710474167866351565203704322918362681317694021603924172664651920844024412540164367845483284206471323421247843543151457760712976676770384113818074770030062906541011305969039092997633715753968108937018712438085847878285225816299160170620791775520282110879197245263431288857759676845907083873691273605084767144411225594231789955328496383476704987471414398442463006790030230670932320320032407990474625089653397277988858849053523898184268766956127431486940294880689511224750387299867059455917529820819931100179377452932424571420820027715732961395039168413952692286462770353189589638304332390323138797417140724127993349215046782024773907336402927377443873019089022574863958612368974246345959740628447169206802317262370590060932451564422433565836404814799846841477606825004004875795481909195700226261496315597538863999521644848408418545348018998329339760028313613816575623540175628471332000880142504019037121783916039888943165098645409832662615340002598315888392839676255116664051848571462318354240949908703637586132103006498178051752864124506876182328263668782235963974080919751810355800592427754043025562193667848077772743606586254690631846835754805763559601149447909186515015111136946432144066697725024710630540662425385772777592583876867683925151675584477773739570626899047315755637329874879602338194701484363882456426160208492558199224422437261977324719474083982794804612222710772129930920895274303117061661643725470000110833144576310761488093149207480413653006246637401331368979719155880817949379893077901695151915795909640837753331943859946203727460475307893180843304081470909531128693249969733111705460054981355424201942344903880953752509619177889200386506327839106844083073545886600081682126023839702947097867794979717688161941547934254825788397347848140523359569186993163340197491721427343700764100080268681810392519877157492784733172269519068818665281726449423893380339994280441907730788524097869799450703860584348415286637417137973328704284751713340320978602934187966108025226241156621440245912634224393038412102847473107331759506281185518840711968734203937029836772819007121644748544007782848871066047047553091131504899170001379520239664578739260237540182130461046590389374906012458551524015339767141207038391881097664376486688836876625649917081652244077675314972994772220098659748443772605351885323310989038731529392380953267256129988443053469949242457519482382183729459007095081194805378720104567049686036160582016771615459921346407789689799064860979908166616873426156559066389841299818907713312668912287766125037177763301930424384106960209836651500578651141421371887834453532635257299393265870512856160717867320430802884048505907723483292855663815594560624758828815381613800515741659347762847377891200905590379433229718644081414166466405169510696522748409216221469065550824769004819024766457009888302126202585412291978822669430968009378352916074914195465151780046151628546362660787189831852088104628130881853933431434557297050472543513994077611858967652198820746481479459817435606981341866480791864376625257873433552033947358560917487846875218759864072954587449666580962686464557584045035650842653493969729426447160565630380390550116385528627801371260101618917535270774853083745031775991284843849449806974250371713905164632355774865010826510712800822982601968616409339441182268980331900384990045527912775524739150907161342421855892676239286974347303180931905728973611552872877335256526450841639327249581910906397336097341614789254408262243360530415359192625213993038010020791034411747914066335213918184864654430359938621316998884516807345832899827328848146186486365844016693812635350452002381310467557199282707287997489411278386672494348789993173923129474641852278242650477207256708366527272512977330933818755431570984994838141005054480398173186883640469821171491156398429042997126404690131655952371957037840290647803264561048227235174104161868449928918540478169202134134830719391918710447565498907296913859383292551960268211542532429631871633472417022789748643146797514778801725561738371795249127694864609101686086712666466201158940825468689179112191854310193015926543150246650212249853455743443950652833225261309256830546660746721914162197585254943933382036776113453897282316629381092203553965864227369502248084090827206439618385537233011136876511689918267494224360170134377082902045453270627858381013055111716470336342187095536316983560700781935483838299978066889103122875642494230300719692208101594748400662791782291749863086506881147740601190560628541420706340623459552894460843743627490944955851025137762559226540402899196634987367908801383015779952598602039768851179611483781185581048290818312070282938883415093565486400887097309924293450272906926771563189265033349858336184838848438556111405342664217410563508685687717421621478937962635089995507212966181000196615842895432930549219133896317617101829871969356135592180552247589428859420263275175400476780327524285505322665796958970638362536291470345004974957791565471478184329619307060109192903874634235175970183761572087366867849120659316389545997504121110300735438842309525628649165752287250488118536815976481182637105710932590614215922746608805933248244268897788305481753395965433076706329304655051253626776887564893864394460635169310873975471554870459102294409881379921581602095816251549376941633379862666566397566178037178989380495346145013233291553440262831537442887968292540253439906643350079983839902775927139279311107683930937442473703614536907445383467894755582889144113213540105404805182817630584475853266023993171334149005705966896253144872542164043740467105077389272463407456784352747284888775376017747550559494624510381455294937584910250263999386964730806730974184650466237656906450472949800128185330190196967185121501384498148961651046766765578050777648108630815833535966445437107408437353448676297130430042001150034219387340816895597452765236957562239388232499197836535597190477265636335486916001943300789426125927851934242325605830182402387897676210159064097892928894144509486961421589641776214741192792801468144247506465666205713810651450563935449701737509205482985534202120821772575835048026278156224399463652775790817342259326561712080170499581628726956821301930944411493410361375312971462908306103856756787776824425447089039856012853004685533343327653400078844096756281751562562435721599462376704770412071358670846082662627723523831601328035063218944199893289885916819982703838000647507033105183781244911113099076318473302866715121701860231310096780295987700527312799046321111131326825393541366907908882093215187607131147524571140459361691430068619963701895671423724439165609444287413921916122531113970826200983435703839079361731314863999482878411952952977713445129154586025534205545978761256669236407641936995593680013453785810741563778955756832129801028216122779003043184269744291058331615498447738971503524025547602051426944537634793291436054242341145598187853238797590862307791153797483723051685492489210796363047225205734265080605904257371116876001631113107352238597063984377552390213994894832615081307262501742774181053357134273594267375961211748667478440596027544230770442870449812126882036403684806745796911204999504796623506457699802790905621051035819112118526381921444389037448062919042093760554639866159040047864729705497224472851949665318935147305933696115335411130135298771856683485140806194764651323812405664416066954575410968652723508113748474713680397981897308683928574168115624100712763044008296643159988384240497455208289832666918659075738221165140646516676004581886459487828044938529065857210528539447858894503927916175462094227647254529231408133437179780532763129117135102650259190509556921016660107410244112993067145066877151316268846683161824383962872992087008932625875969803478721624187592795098198653391043499996220541286956178028477157839352637987984460537502113917780489863725357228967798348748793089580419329495350127628235649083926391047387602161021872755620768186620158114727710883249235934540522167814736979503075888243234391091146113241861540496214979975762179260613271640282678581681652899554910019523856942598772376343094681786669962946207499026487863439950509148723870372889696359922152906352512594801174716616865114251178877943504912541548453689145491310770168996149354978503345933265836248463192558924407933843616229315326831180474944941761413841158775330754019394401045653715878255430521389866939427031348098172659151815902721195488927696863897964702607233777197848677320716352422834018253478512436210014487011785069089674979946585681287913200402528987810053632986922315379097682506506778968859784405494270735047166685081608691021622636160551466990314909687592048179527966861264100183864566594019821447936839652574106021492652302573423248456069233710779798339551908825515247478507343425768224216532092810355166621965901323326252327688104441201486683012550982582220387319104849467912244599624220663412252347145989857152837947674127293593548612162359077148477042623620217417301811591162841029133256380699877061302099520412693975706335288872314927895047366896003445882235553041035867762798609974405822010263261452143599884488757889693713975060812384571246906445841644333057459767772017981348468873951661372875155381044747621605389467749471475296286431138967032112408143791324578445319983605316590174140193445913204258496987341341374002823471139815419011035519817111254475832378711311866681940742742733009479691162002482635586735160821608509273614640798092709154021236363369762792235823248599059963849125965593943983429217043867347417970675329095867011418766284958482708942090778099294194386355176402770632866447869363143893787534011129290367314495583460371045816970816003637530811472508961083545012637154604465006910172178036217923328527884825070057067397828308247379554332694085467031905010646204600074027176294331353855546244411663901233956895986638128927015864261090476050992590867760856282797280578418394792605011508215631831246707530696889189661375276244910728970611083337524485017661810645450825768026991830517976631754442493167275827048375337052826002457053493628759801151742060384401344259335260504020487230131216746171518893081127836494904695796736213043438697299755369532285278697247238191874000530910500761463819551371749627397169185819320408537887534397793863170263222120040293173760811875727898621000321409701842721830693518431177466158266674044269472642859936398700781501711034589883245723089687729173980584008668257487508253930928738873529055692653746122298943011850238685702800904183881774419236345204467535910722647754661708553314377060181304126341866455896817177129805905807712677384283465896260508336250717295834352461640392170250334893129309041016093755020741686503286223425031162321467920116253108868637347841293364849848406386641218167797916690781967502305177535121929234350365011862847757649149173338926619813825037861457540094060982810268048510462532074964398454953263241755944372294567199446367984379070186826622723647570187073923242778157603533465091955594960056281345600459748675121222887700008796576776452387182040800723591349592746535329945623354722342530470592750175970636382097341061427777434806677676923129219971287558800450863938801511162281503088138407569031019157289576229367304449123106793713881175215521205412822772628892457214013869835924870012258468209812674290562940860353255045965300087410363289336658141028565724435275253097617861335064480564266380943789558329423926391356827930034586801783234775143443314249212535895883400162210520542115667037587423938280945905326206332589411818764802947201350435841179806905231213001424671310935480259033317698342940199862898417156877182044715403152175440950244705237217457071475526495045396376305616329295590020960356735786687761782021413114277647082269560444066036150575938647585976602144455895070916243490911935030962989757628490438789903485302646364179216624898098522630945013944758999459177264773328935322803526659465730231990622270103329718216167152894149333078832944877829532837164881033724614948676385142961350206527261337976277750659783238450006418140758245617662111807871205940349364248403131485374242751563633532456775102758899059245046450686550349785924985952432776411015864126893015554595633898320657218096591973564687533837474714857725979699541818890225088053839796235553242853936452827569048586822166400699524900833134355031256957379654605620752816799095377437686787974761902214388300069090029763995653309533805586158070519404901198384260579091981101993616124060519954033919048603115653568738150250067828585719880011561532182419873899734511158481299830269023818474096978421134652977976736550217412239006494985062769610294488853596266027931942101489690932789824446789956234292247830320575043803909137676063181392001962237394776891149088588494898911078195223261360145557246146637554725245563090837803052160118045922839989802277122950150702141813184056549879207960610575229412347831478302709292910021892946978103570756504683519505093805745145314768927998300400144188184391831424448736768177498300883423690654954761641147020781755213654396067237855876982487770022603252262152561519808161120841781359724549446311784189952171171508995724394706144105200485713505375951346939397006499011902928946216877251962618507861680545317308639006716053312768597024278718978760979584527277127024044966514014039391036127214961537535022113379207984248483840925470636469689197326929607760972326242142529917496510998120291641136118985488196024083084239442611428912044581205230501682855526027808623772392397936109742414555894345933535467791616263059964019485973505062708040106127658995398031708230035766579175881531631085264024500642899252919497589958599858129665362389957789097205313074999337811272370690629947650133225926147461078947505904026280799349745629783366492593362266717809913407705989792375528119248035428374529950374209109166004657190498003306199040202665133612998475916460922671126153409933165974579196485419374248197762844239899535529187607953185296876663245121008312235968915247654350753071655463433766168209937524467247115642664885540854988608830891918631863818973708868542100575951506646760845082957009393238650030908440591869582005698981686047302568288847085885109062109859982262574579749794727690808647257445357443312485986968863136189797756947537814133446445374406885443215222956473240593542603877340587487132069693100847023165852577907470558538582631135092533643466572398205164222920876087165571883510062844887920456015251121670689461862083313977592681495553961004788764968152431452640971642988281481066835127823530544581471587580429805780341712858666369879530910112695423842141523457307039220960223510210303945972452893867813392603104905885869082442017355262850748673909787845112325962589331153453055756209575017721169915174197645085683659794419101692581182699389277925926115556726770381358483791268607372569053864345879270330251569903127738617236809147467159384636956157793852739256920899876697553797690981358822440011928630646963557754983352035806763868904242024135844757272027975655424333111444865295660645529388578720185304404189469258747502409027408067429241398488975649350345950319336500047541568329200789094972798975598135805504339473762496690964645077939341409691455035787155875046554554591169060790680366437814325112679829524698562675409253281075657693556655644989607190059968118143287886405568531617376483736030000220239905040209064831193975251369978267208503345334535916657748082317530373575420532508850193840489095968103454473387892501716481144271001731111081578542366049446522126251096513321738488787882619437665438177490060505071553214888382481040970019523637740196050002675286107062205940337650366394002314155409630553299595915580573215713303030674736622789213397568542107482475558981459753833465688572805864936669346109917340264657543558700103534538944992352216502627039027061512608894824748235192350808303447806389300460381156139831571196237151758182737965624498792768427487441328099877926040166102859178207534908134274834612239857379232785233786197875585070965756951946502280794403470621514097981284452642892495058791440910614110087399837541631254436993471908313674277636713582786040115940421015092003582450875066462916761577343344756177697507871039793976419670644308277574061018555161235072888380389398448714684774583315954802055393639381439699545858681062612093671140078048466438369956659095583849833294835673677421386814949549311758650066885842332644306393871071550408058162311829301162962506146572332570224077230735740194436856892649497510700418432964503611824651562836604822277745062241088956452737999483710630475170607003662128551508530316083627273770092567425328494202404175873247909642197296954205637597359303516957890492949585232509449485327204561510184090580639846992715015984298580572027318123424275612873809686648767028892878867436466030793098449067365741567765441957620042640514048364887387097272745985252338689759546786614192517611816322584230168656144308802007695787143298982058325784605500709930742031287455517710711263547528684161816363007838969153133860637913396175370447162807297026773803572965153221722530091482318008029057710705798738369779784409499044187059984967915906387126793501915933892799611908423974241117924187464262768184091137420404494760774294515117481511951773818364553009346107968997145045884335756686916291134819173643589483628472375992746757360658356616085243711039747421328019465802120938793978770319143460726551389247456761355627297996687664306964873069292679477758113235852469048480182384955914625244526980605285271063772061742619372845002920487035524367801629867175684663888478170642344893553649942333219112838688576924361284942113913324970998637652246390727417317930646034429565422047930310309891630621442392323225052634030310552255455293598593599698991298918777714306857824825518143957101033087901111963617615966612836062397911115054639532582430379193828250714231196907948159878916471858152505616335150995727214181078063269526081848509488102375603565159364741910016103066185097374794227137047590508941829879480559423180343837911986247645205140715785918074962851099754405282856433533323505418844857884287101792326387399322700845956245235233770856289928532920723099631347838082110688986495552515176213419827480605123530887034048357596478963217331979166978608910933972035405244316691453086745317752539114856638260414490322914501713275988584225850520202342189745474158013534145475680685809036272885389788607896643033668138403269872350395015761075177585421313512538893984013901132674243295656903249440199817798997094527212090354465315419800084355756977242639857184850097360512097768410947910374535114692529321572120378106781713472464053921497527679969627801734609242132651499781910006744178651770069871627810693075311124073986074568942424803515958196591821390193275419714088766974863535919222462704033633924487633344856225013889263190161842048568880941895834644452697531463631884303145953429600366381873295254687837188766835478887739396611429571449728584864095880634612073241652732356786996581881271422668378504977718613114273358754169386027046760370273176678480314738529186205188542613289830374615778210624127810916015401300807495465560419121471010160688676110796735048599116679225559001879941324146646661202414779491764061745278585114202109998660490082713701497049424289730271343042022551584244132934906947761094997301977947782157258085168213729455185736671801992583753518467150914894728945887043922829781006282298574370843221673753704231294706058364724446102013234991384897307046194251462809438805540039144109079037336564865934046941277692211382083355819393736420997244297846938591902065014927135266990035221892344115470737747378881585333178364440544634487203640412373197084964829871414543268329431314426576066818526354809468894325481009709989044286001124643747703270702640463227336826332282691310095209147979854671987168363295750527919769783528524531872588281959672433641285520452432087321548994205976223943963858193430839753237402553347093407865903369502767839566650667682725989337418074571730512260416508735698848049498968066376589838735816500936197440049123291123662241611285109486674677014516293310828200261906919442379871771218371427013587329974440964482726533347112977442170013036600217438634758539543290021188340983810465991350049769496835892022542674835023526619988163188945030179581121690919399220742828375855905280048563332644900985288410094897197323796971482211346249546280812073883384199069535210440939559218507398540910570077967334697299993746089341540562675042471813966061961572813001015181288154239557273963423677890714537340005636420181566257292456476473087901451451546018785369071448315239656830216588443565305795313432755380201638263162389378325545942879292483489386667452205640448810337403461758171002494594890871332955004675412583084531558278452814698010947550279414310068963398215111673922008104577860546135741648220724411483616116279813455977751020225993231520452387057818561105381719042361486099984684702143583094808692704354237712810686402268130232333490419069173266581365403349660918346305475173011881308861273332533774465978932881064829428842833741213557397609948519267789894967384612003819768398100104057661692918756241103377926456587954061365777837794459159615106124923670587099058704393522693331035798365952689718610929396130984023842743268522065278653805407596496868852471528158570229503504649158358593586201964875052875661801908740783912647741710143691317004713105088411434271221251854964830720779851814000074201962115592789879302983518628061242927488653113674079181878593677238270122192582113627826718236180727367458344263687512551134816627351252727216552243094301607328919970873158619052331050602561323331842874944265133273775214432138578884312648638263197535811530576220779243170613756188477284353562481453248810202100203967579891406888381600754153586393436330019416027282955452827165681619386186088952188880038114057605086375778924875877102734136911781504557488626559136729202940957651089332264522232149705890498788321947914182357657073502280655200505728527720836782013853224028925981463097857483050089690817752966672762441326031138819878300936339784881057708633070264964802147711967927648754134108876900813303985974551499389218577595671045174132747501600892114168042762501691050012917759456320228979341385955486301257054029619023617017917053920346043224631156052217323995307875690580450071847494345814313609980099732839606344400116034361461152540809336755272565703841395992938284022501743977529676499469527169637368516767209969836508803651442010009902476621053862044906344360792379836264880392821645725016846382933439804508072607578731914182994057347093557796166644668153069614465315192508044513779870439038489360064039287053400317276052288020779094155088564286652257519688974473792407510932352717300845658403932614989455615187412689256761411812076900536416555439267583261535449665346120065518670122677709941282656520072648491271827541055524361204551986088673570253076887860017279359277036827540776094157642136232707465922550156003563897216632854774248926826724380707536019734080543727101217634563717996683302757565635766311025022092502511416523377839577107613467473283705908175098423879073163202545181642356355634999191639530891058776937906947602573260398313185906875367116312468503437222621410969748730793389519755690895643935454383356881424829923193466667498731870907067391398905670798324721819494890657400443654548285189664693495640047871402025699673174626304740453280997448252495140052596829518612704791689925359244650751234240526350168622927162002082891997216619300751492629913636208571012822763891181387267355131147518209622639275133519633735781559616181631115372389158494063882261944108430484682570956673024266968539777755167706001304557922781276898005338183872470784450414192739387448412575291035265769635064792058509917542390872524090405938295751715418183680352087612136022219926977486041443971668721379658162479433242599936501045072480868526490629158828154182512725160899888524110580172192956026323634481440185650700195889125758037774146490130170968342388075600801151556294969948317365707611217607018368215945631084115987442024745900135512152948459133922873773834146477949371553783418179621578469250221642390855171526561900359674616974906968420507745844347768004202397087828392311191677425323075274484845201356559530802443423485005165787592843897529307195139165639238179328752834997693327586306069353116458252164308018339351505758837784033978928289476696548954595182042068281063932215266663066337738666014154832611497497633773245033350045636409457756922380371945859128106910372313653773077579752319261172524306800723033320263485190983154905623941930322542982848650697577607945135796056634076893342253344502721261152522491486790890684271773845819737648230613633908782222940702325753782679942957501380226198615244450746268085016025383565485353122779077002981895097727614913382494647344537355745523882006508645000787286325834440280596780027752201181561190361992823072226960935470627474250050840677535244487237489545237586205072953607895024412866366003928674079976996485250537562897617139144743731444521533286050432104001573597217686265893782188464957977678870042581239986213171129243359405330457024346757475219606294111750611537055132681225255271419714387792027809071234779640101799838907981914667952955166483659631963857178908996227350433765307658084046236267848513859061436357807852142862882495416537565027345489605953884403191761248122011125274631302711524903574640249923435412120624778910345315536995242630030573296323726143130539549394918599107927340553438578285964932339973089446451960242286626077829111879324658522040814792011676223618273750288991277825953619737420980418099212399078688577121721191777620218817445728844540727610670761107368450988110534276332141168908251723739434900169664614965098865361828128988345567325485623205098142864566328384781217537697131350130066964810073033041214233402978985846305826892064417466285372241105801011615311926749339994951137650477122043802697572117057207527837681190002540703911227786158977876668431331308703568299330403466776790326445561245417117793243775980229812530200784980877549283246453340509202777268381633066481006910913066124281400116523817882429138484603736145845079460090712302935394650083157840458004040622143646919439767120147070999817027578202784623463581973704546235097109683041810246048589344486548103762911177189993215542105674945547385570130210597407819192799068266973389961688245974738362707683423610779111490441640515537178496664344490857108893809478827339987773618509836129761408032332945640312007118986451296668062315275401864658063745574539161581429525383204624794562354016274669124621293561074841105664054786603540037289619571192966279584082319280058199254275712037120137999387937669760800451017163158134777942178936324513747320840560784036730368515384927138058312716056622867463506154501881487032509523346727038618154148252860744924199999213737905752670694534442374905768321205697875964863293852108734871859667412441623006269960119543075044838607662408917582603729488948998919879865929878615208051594405113618445619274155158162076706094141531538614483676614478795759876754270291306852034255068760830620161410018778782179467057202580352476130533723193284858014118286396428491050054887505557164954344954736690829862465795167685011088691448406618734012514628965363944613775968474188591286497282061536553554500340208133714457557601676777057737482743590264554263427809371957071458472474500318624078976848178673996960363375432742097172533746997442023716591290800957355754453644918254805006004780280665318128525665465136685993363697569399822926948588053476501662387015083575338661538843526118888719141804266455030082124550801193118332944290518525643111081423000678436476576219928514438371627973967210309946156478804433307232150078271158666033328009075544350248651586636495996649301874152716311942210050236609471909418704926872705049457217664014363681405183506034856458174965712910207116008352253520615471173383006951175804184662141968642524374426539539025879166587034293779109969294311591555080586329522621361305159784591963916493416014686383659565588752045360646000691748180061031781423258337964929131742735329974492664817736316818530420730507113934624627190732962351900287667160393082528030411126969894143308951869698956942405265987597116893316851247443410599048445013569218702168864501095822037551144373638300883689000900853408128890481333217276858178252111832729790566942534602695992138611312609132054570987152809283836817254826463700084623074853462356220441484405363193767793204962090138830026192491720120894156887565844331574456539742390638242323031219182321655318867020357909080478628208505753443261760976303492697679590376148128320902883330423282332612332829219535353627695895698589678496651584059172461197191161270263727564312248366108182441650373327423002370369725914032866306299974304184650909468923622788338189129848162741384594287227960075374748813732628746531963656840163070004450454392753920860409466510643024627136773560916526040962810495567667641408371565717916135978106645499037191357567556347008123215964539465712618762797538139451713322072135163089445022545313232259957500528547205648341526663981663003742528282984872975640629197450496160042547693564119173347517659525532843275025640311867537386212068816599459039338638103238384320748942104076166883318802644215481252086492787703294265873046668815264802029847534236021720392899739998637336731084750788674046778027551084729125864344528248417080723401519453444001459673253645248373325075361914253850920874681971072234579153459616313822749094496185677370978811197631550788513152683912236779622265474388626031799515001914584170212322732520141774080601397397168070348584536703879452640653500502109848393138105422010038810786375390913055150008612737121970005326931339880223174728375688660056970061031697868705214609070153828269405976386139275646790039434519705269651881884874107159277855168026263254619582316738922467785057897849444827709318384946573268442432025425714078100805484264706115942212923751379529191046320312399475610409428191149066347152036769555494456816165090435048123025824370569902964285119184872852832045563206874574373544307756068470221166443746179812078029046534299627023571574901071153636821854738632502439176179483541052297422300950476023405451400097955457414466828245173893850136740927301684388670619168873760444737909515873994760320266192494952809105883118293144030580385743181480325405600605791130996190512570033394287391920779023586353449481533336504088626693230387261992750399649806515123230314135587619905043812625390236377159244389425113448398265756392442162560042199841646140792590237085220857119064830329265505906090008790746344686914760179726542075062182437599265076352666235747486867924410665169597013784905221318363611815196136094491694673380045807046976556587554613123514061838627697331651624454306368504359745606009422587725134230956646271608367351019262642790435229771047754626843501836439515339963778686346172362901119933060186744626105982352131119682636067765978731693810598945638010814682747328485016997641716851723313275482099273111097417337170591749951989079153699564449351414426572089824007272109109996634208338810673686066560110591472249825707393920035967811839055587435416509325454508722085683284584613173607945853021833454669672717834590959049224701901438692742033757721753896807657181683230857100558826894978499062112965424160650629020135552189174531506695344728989071172019591149966245289359599302266210128156352698619011931248175142194883222974100361040595348291943164266661042571246762741274837641510031365852350728072904471497288444109429357437863041200845347222635614524126352674004989328811719402789611309638641131158130504235149128538829382628490053463014401602556156929646640974724116596967556957086245679835747421779613101647664734288450462613390888279755442072948363232176181390820930292539992990279583389986577586167949959078304458027793302006638039708517569693694854850937786322960911977581333963032570561040943830505582092897081897648714553373887352673011178455634537108092840527926970605927825324546455801949796552739043227068920630474364742545433243345502469522968562289052421803015309105792705770960430384373193992316219601697154738926388075817690209328219460637161981654879931259933232904984710252066561006772064026308965988620090851911768950405099284039798031897533499157509027871875673265541370385326007987580656467727218701782312497779290696765629634244738503302425472767098181842351698111109535396980212476129349032228991819471852767492058629561321740809888532018710329464537499957625871263328196605319808047854321839034540318649683286692871665009942611671861660249992886611736612778643441245221650978410610396256687362722789925796830182740189227502103763597844608645642580374555149807856220708945907813279604736639750294122635203679763836660038387272137797591035261095066309647533670812752634297415727524054146623179646512969245906640630639986187798923559109347085682887871238618710774301683244119659730934034592410741103576595125114538237773922173347041254804948380498905127463603702285205605998830517450626292951120530160683984290147828937561220150140207478942323387599761709263513576347205585703403103497299612070036724681924415110756266404316104174526778911627799343881152232631994520223695680930674171497942661698350658733977416977323972575784664762123559634222308713862494919241070965922809944513709672817081526826235769937785480295015881316629963731902211872174999167891048585730257262685754690496331728633907930818283835985598225834922377388799932279082524041883555337498082045996859176777445627595305335011313777396718028942508847541679046195059416224584383930353986470474114631746188003883961266624448461148015958389251259731586318160586234335719998849028031999163711287047013321123319971527646580757928675930436018238407086097778277026976206224560886634925329677432848036191838836192385192017741922438141048590238734971603564004463909536807985888188773426829693721837563602533533195632299500072466736242878080309147465883999595612213084882425120564473391406037634287325741576685618787207032955720054978547737187667113319580478893497825698256939304117603833416718181853566347621995741014801030917928298374060960120505673056177143767288655074832690244499406801047125209848149825374490255802325707417792392862056923749992158842944425059714110390780107426805418284160116774203458597079190951644464214454858083643413284561884996627146970777219738428633954428247964919757459973904785031590420525471171184734651116602660257707895076221840311291959030887407695724418826921694618428105508357763534504599626973278019072099354504378142392740660733091828774274563239612815532828053166779687154182775827605674821817495992654266918073444111940234356413341313515820981897314901771048349290472859395683147400665830360011686161612149569662540746269636109850434809473180043863251505967529672403179952842456213815006107758002838821809897083235094022277174184476290456742848158631831000691252669407848311345907487569287672124046084980596854393703926812850041106814820816256149675295929185528758227170395951853994927966336011305942930083441108355306859550100201653705870767343622981577007812768847903185363961252442667364373835396650266874811249299312355917856831011686549279006639516588922778206617042250612953879147564721904069358922331272437327563110506997843911384609381745528242668380414941589295532161892891557252426432670305018681264931335360462399089640999718950930246778317328163574283696369400275124719556670759335915120254470221380037689212500981650973264422819839862861096587213901370123217118349275701104218238730768859375979252692245149881208014888645355456463508944437935957366471606634680898886623072140782983146149779215016785861525018080278422865378017836551969309648326735801587605058008396109837500506486692975392125238651613166059089445684107274530253661308311687478251968737763851538949726834687835858361064046097636170275102146160419276441316879842980412123644102658333917706810597796065765470475853225978157833527886149704055804136957175303716396842514761913542200932286967944315918955427429744299165138550958957629335270422274151147661903755480539567301999338755962836111552716222569035835661025144284277783669988089430091723626172646666314655927539699028948579450373534865146993457230614267883220443360185808623831916246776904314896356906978126804748908845590962633230267030537584977083635380925189933043572626193809465592203508538042536489705560929289182122954988370999272759730111505240452683554086761974560835301561409080681606156385654541714804531960138954517271035171248698120395702730791269510583587483224453754218445887151753922796968249110349260460194251191337189435707988032357115665532512446039320645476422634488219338653363257099116361437619810537610417895063354652945964658448480345930662411326004341314369774851814370059504357286760345717726346715022153973660971671155648394700110656840728905581533064922168832480417101683813952914276077944338497331534071715568523174093674018962080870077341454521334545417136669693370431637570603159944761584956906994834398837439668240453582542885522116437046143153083450993602719818363840649880501844291745056510333021062185095717642663559388779893610908888724725429023029681121488646854432296686832935275321500655607381683663247375693416909318178967103823795392510077205980473474872925634253350171877762137545745136902181569892681462677019445785835422288042361630609239804077649876001486264896215323925667994775196483382246369601038322412186328766111196689957397363240878447649404608927991865213650092791926338428929382022892641994620341077778324617654439802848093695582259050930757156256976866972078065226070163920641603514101337456251341060618117513839305796976441162271483345011283659099672210595724703940484915197072788772867453170159012380461411484705303906893918097268166879332004671286700035055619919453786867181936314750824914936384306062315002192075046945688479150479098404449697487616922809741908342943386463117282103146591213752377180789614775622370265275806285220805994038302813623998893909041382512546069890078427662316059324936324324619204841976427779022103405751092552352738289629288134225873834202069584465949311766790014121471861062041608279744516973247812715867316717416966514200599533556849192172588397122903488930299799138512526174807625746332230190108291328326820772007089132224504559076945527606851899693674327992822317190914940506101596675632980441903463977997422794067133848055146311158251685419515288953418307193257188118342515196519779407309482998216164720856391920736742483295952002646588044684181591226818830228786256914880656657107042911964784743356145315520121057947831516181113747709555095021636069611680185137236024150287255474207868481917440627115911255397315436622272352528490552509721381740251628411983980484584089782127809599072548887729106110195369708080164010346046506038629965931182270691525379000597612507509250779858861712521391945813950985148983226928405749121628916975318044535094505732294606353842464183398195873545472120113199334564728429351828855466627223165024424531675961772539845314462931695743615737234998765343800060916296157679007812762788098739205145377411143589236436251241738452450064224497296432517579630280167595981280703946870371467800976115534489899125711570151101173240114007385988513002807163123448361424839510170354167905938375623402459384745104449612797051123726887974086457568263826358101230893466577128917915466389076061763578853961775238525955563965877504444465598806022822549749308618091133607819621029624934824527358358580053200038013962379718555833784939903323226314886451975380848387139119581959377550061692333632496797231233089130817881787192747066605314188226021390943236289786460324882998238019107619126812125956074336674429685130427122199299253567843293798099035762352160570423607410413287888528703105310778199809463319483292747660501624314575299792346410399898036714356163748123321918916776565283845629209996922562239522955969767696092529813551998414576597600459628976143721842810910107430839025072044074630009019689597993797676461955893547762082682327254673770251530194077331018785634842470265537846489831194387698674381874263654511981771794567357859352352301281983214543396443108937990456640489862131870942175618272211510297162206111992370348351091184144550381602806589659287000013658303924109008193868066207543032264953579854340163464829560993152923289324949076115805193128074790629983459658465828038842462676306842494558221332902604933143407992093618816305932427493165127346493100349175556780431751861660443408815415940707700540813053908314984465735452078130878906928867390745076087374986034700265553786582570425115745068638520610855411127193641265038415390808642776138009140138931638959005749732111112144548861259091498813508773272484778820515671510214793696542348896534410056962825458169421606769617266673627711808555403188859387530332710667174625997782470509037508645376829152716708858725156565707358728141787116111820206944085854611075045429317238302150139482613062818035113698333924668477023427076691244636966434344158029171724990107999733758427303503686607906451132170245490121034832995936276793330865322268945141875252806717666136950796098841016098897994024069419355733540081182743445276948393772572780440823152161887692147218636453380786794776026712285221599584257748234931129629477130568305887133946665846849427558639664770969737471144419093980224661085025344329230528428569704577444765509828771739504488705945017776048717165092605185328622749115380571915450391969251687810176198077710804890056067715340507418753582755938694150976074775037948359663413898478371324577927507521947988092622657045263929146978393199841597749084503109830040609681067511679469974675976008537131020516417286515637392967147702247620654124792751940923057988628830696024770684796865991962256768121528977633839847831363010795086894641563637323142152373021513926850863727547693193656735828069459991055028557976351231015125097789561882588132161257123960902199518795315087337496149166981635600818388620658373497686834465011655311356235428620448733814371155278752028504997180254852279717809942071730239905217405796876320309961531680995594503694010438727583662332898825563140329432449968705771907106578832219622217357387603216387012197583171469392901513233351230235085388090507231176881668150875724639761221265805757623814083869935537390550957732217296161003948395788417966598894226898269970356228933324146502637140211385301573827560622498193388854795075885445309344783629706799516346326908915997245202495956953085191596065064882780328484294529156072135755269859140203848946317806132411430479268570391530577688985144895627077411287753860751073635995372560161620487801664746793907844229435254307992522721251260375482262081197434199581394710648240849437024417505971112526948412575973799273034664157856013305145237689311915384895935607507112672409512995808517589379736853120319408682166329561539287381388716932680370874179613099682881444139773266374781580007836064756161565412381051544426967684521076706856264730590673799279246252032411157579029975543787534751027412018972137424922879922101631904017965076944495924501512804275302257193041264705986574660448363882179199576063965615730721814659328544007793447309438015304427827036794549626570722087836313559790419622842394510486111499249247466471731970930490885036358241351823095811359715657030904268974884097387908789023985460009331077555961889561855077247927394699331202252993456999522316642031440637107054523716142960660977230345415699780729481814278055709110462215114970500150599213491422107039707369949074882207091539653651016935294315202812256052752308435131270020043521131863210694473391417148441520379497670811548904552208085735165142559813713582083406800468765383518527090875609167132570637552646621674274226971684663410813615899381785497970283645296513849399281683061206561113727070172644563649967995382085798400868143228195494602406152561135801029671236162859594914315051933360673809995479028050141763604041200702708957716340076283332496865131464507551393490885925153026833397268669467060327635155331934477690849486042410206006672494452545790994946375061877679146548402465893402511623015604856757750845044273208676168615579345817197416157101296692475617294555560202648612205422067626659023107892979747267199842701284844799944553729368821365464667711413213413546246834569339780436398705874349420252070026558445130252972925095065813571206506167603311907373640181796178155264150131849915231507738087376353471910980071199682892799733190364746553529312747572575591520022611274392271003503756243698690940150856061379381650099365985606678680518959713806073821104568216714742107837240349132938836048189291140979303219462904515542807897611710874598735467199035463959745843648151877140015524718818415497055389404534098926419410986979958358108650357317122434304005645599489649527754992742605148443082809264705029958847659397671105148440258976498821935969464113474353796849844102775177194425174118535670497257995460232543334594570677094084464319450722506543652374722415364519584491796505148278819972666068730710356550100477487105468135156721434473699784776981889033995274604218782582601470937809033330849506811810522347172232152766508637254155448205904506196143424916054577305001779303883956962495242874899328381110431907958837896318989527611713508929196787790369456078398996330955431226191216569472282452381181936096018364502291241835785094992832223040011452784654599672724764219898385932087656084182777424628620651789299791705469349541311855768727903668560020213929335167807789801892736969284169073267951508686042433246859671405495426297737819261677463647609919060349745210546789536656125185343100084405161699735833451793231322428899545834307295852759047949920303436839391961800646160581749520087635395273833710000809381261156586497581563171931547071410528248004668988926823607243666943273349507639024718166676993785351121112705072741740071518265683759733138761923962139464177939369691946975145673397724533972571674931396472871808239389187453422052147961519445064061849209749185569838714433399381613940654723525081581601005955096847847595987468105682103199921034657893439194623555223994800906486254887355061308103356875680907163299977880241530022198476322424078147312300502987976611191441397024648507446368613119706551610905818604255527868610473284362981827676160330477125100674228059565196521035704350154041273828682779402349319688562198913424756623209120869049290518750828869640008897938743841788401625395033008158754721705945647846536717708845233727011498158549366856402357516141066063105908746001863664956606340647873703400820884962976287691272761126211202204430177471800248819866369500660929541799744987211461121011492864891557910294403649231754493467392289332873436871604254821162376271876066105802221650731978895526265109968056723590802503206820380971591718143976149053998643846551923543423795279947252233165945258144622715613061883751365853564529276542182640945864094113334518152182221612862503357179024353631544753074920972994495438116238838574204034872431889415537900935135129805203269108148125196701941349925696542186518742858217902964417765825004933611260043310189437220785672602564832226493583760913514348386326813393857908234745984464011344404571104299230816616267223425871507172750975245247420107871117737696473153555018908197209520440706489179813157305382510770003951046488997249361563767649215627440547292724120838964749476764879310968438162130199931712356743968021242402383805287130432759699518463105166943582492461683316703285448096004060362587976247422587915253786569806724350858147825798013226405320596367434407715519466417059427342204833671657172854052281929915108566773521421333899861936805594673679674658230040790381013296297912519122372919398916497843715188433050021842317211369144978882378165176940732635468638959700496067741503722009010034325810257282561706667448938330881178507892994663956743869699212026399370046040373630244088893181584162740730526806142187532254130808873575983340338454873873250937633436747363474853793207307779231586009199637486388553870040507576804906860251473613195408699590838144258321001948983009591159322793100169228229121035932015143334430036667188631616688467850464506149167619125223134644503772931135064752696422999305015989751648625557737534752320071229871725870697768938106593040793572960679030249128903472311448739814328004481522213469726909867241910777501890775996067476645271669831061681167835815677497091699414208874549760828124429986603442301901439271454929554313263247717029488612844167342247970708588477801898797592276707164149575961910111978158201576257410837647740786181410295599388424862577557950245683598136044286861642721591520188153922313411161915392955045517178576262972114379430535952616203185884465404728227281647625749434548768912476371866860036100555878170583086979233629694770244110684566473218513794918236891029083146565672369747913946816568054124605011811437751921597294421357644832618458197491038130421973859029479752523335098717567762833733195366857674842361367533452895430080206897797966968790129617943403893481818278690617766659000061512829300365258460491909543950731378870914351200947028031814215417869068850315411392733296864898622056306632965272560724180683778032696995935860324824605590751973467915207757290116062743466605592859175243098273925586804909912619689600327539216737317803662072489012689702363312474370453588178952027990059474423721204511779255290878531627470433641615308111113114938502032484586932480245062403878855526687822314925425990396428037164944669591687570804770843283410289198374324185139971160561578654989330762655457352825084393895626688156929462683849535406284476051156509496252366358944684923794075677374000096779074038783706026408670260904161961319829045896180033833143572554476160844092377840778982363520505941150430288694461222529141316767728217917112363374156143348057406588536639877409618566058480798975110858448356298730887256737573172883878957756356032079235686922502076307020105035489692008515950346004464335259553292844577972170486698587403186376124169609960138878598780475129173457145142937195323659502570819680002139715359497003019301776874462180378545885622847682537286846811233493318828090904538457765756974335673950505957174324120514182795053972101188653383993526766065780723998911910379680509619530671352278620145915460850511952574379546770458615882934533950947123572498584546751015564343344909237143501223389203074615479850694980624969423207197136445866195915034809884620783185605181118485910052580938220246169344306316682231620417414723207759544944800225844331404808666550343674372983359173105735187378785302616354360756278213321772568558830282641277785517257635100820279679837002290814378428523602057628895892178197871777600857415218182520123932462320449257554696635617241542615537572642757976357059895026629671081781921462688205006446793897237759596078690103098558566120472589017588004048746461995178517396439159801504812553962133249511342627480893906957419178627802583951471734481395966004061826798359036241997273930935060376642091624713126905543292529166673955335356866515755301918220901146127455751513358719243114815856400822547546633798394637478690236875059522569382067870293018099538546809210424957095188428084311274250853832561057081616247994542184256393356836611203955401715264436771660326125621027419560770185762327237951968729710873594219879298940467172014127050748109886760323082532901107085033294727316557050002120621500068918027129995053411333247475403034539393345074949511078971132378622415794623098252653524741526220606283001707765955973942388806217468589125553291624262010760068258294732653689724098588172209337030069679792554185020388497366413345382819358552964559881305973949960018379104071180274906750735009471661805311481008121826182787939425563731914602163393043515281643230109184737961632430127024467789045183774673019361832596375896247109505670823178699289334608729498692244391975897044317905370496460446540661952839722171161431544659442896776089413041775781661594078636418411983200822216594550607371038420624586586602505498892909881056166973069206458507065838782106913434830052525191359972399421275423135095090544249214329346685980043663398453820399171942718033998185276318022433157974577652453198002654767733502743373183443362600054592177465556362789031872487595750492914791391431967143998468847415744582901070823704551205741318623390197102082254146369792592475559609801353284410542447160978409744601708380648081130344158682270969516016698925997223249026088493476134568928934489388911810335525923525062698200025747591217356577701184459180813992501797113404521831008837420405141501942187995399738401048860255166327503545501099701089384637601637405154984446034828210842905635191555973249027360029509033396930791371751097978009734967001933987781843569707409723886125271139025018373871382028047230086703403561978339718513981000435613924227627505905040920123049805403598204525274443940865806598819085137668533234048915813046644947671757175864879877209201210942660603363910170578596797667204943353338183776883947471646542000505595861928170724119352491925749078898070817497781097640364569903453522174248960666807475752395846161314613183448788038606453718577943927561802443842725734391538228344798742176842956134509382674172319935149309080886211647567579436048503422593883849715669494428529786507787506896327116884292120889749846274187383341007623453690272439890212937718532259018180358793885542910708814521230113393229612647899733072153584916010169467001121533036558340159703903285467870380406319439354018028997166033725434752819206545921633703622616675815474207013870976500758108357907070651230568069794630007690746063210710723501609319014433765061175419158561156657590898739378562374565663611200727280416220544623860113926829469742723188627404104365135685843790938687484523838496521989718326048832822965377976672660300248225792716770000718105007884626035950247274447736304687730608589469053592488260790127582246333356236375920526106576624298013881377534941442502552570451273819623860071510037103250357456293734308858058107774262800464202659263450215359031804590292465713335823702266288553520874615857469344572862397008244652122726622385741366108129795593239067309611043370858347757859329084556049538584174155241801200973300830388297742534272203840875313573885179728942359580576312570040541705457898294565666988895801345199138923694845326828546318940185820517387523627083245587860272651306635435056489215295874096825840810619651422566145627450896580218088010700676346660000006026212416828229837442890732046410030175357412075603851384372057987308324606551407391013592011090773471624662691327931572275052071438370338842800987159062594871135943027418004577763804285558626084933523557601993608744056375183810472683275846194314437825939657662550805975619949874990744120387773503003195514442372567869257992174594925621338950336354537800023786017917499737243369450980544785836313998363382027166781695037722716842043244667835700204203129002229830278244666570095870265449452853867662209509507426203907260097551769925994259123702415394024944589613233197074300358274677917344565668826323791626558361719865163891531618398592725946570619920359800017522487663181143880161356290119967835177736191782492916469041172197645505472207332827840024580735289958905931427910505969185219495431913715380611995194278987017443841998170464040631052688479812778655337921288335941785240056532014172564429912096156135616354895474221140373552566007025269269938108379989366322515487066725144701656354709720274933868071603908386874050086957883102941775430374679459426002707598517243902760007876372124087505474676460519880801788731471582148634075021943895796498757154289809821337843483421510222930372572430680728931924740547713161591928347146650036430474251011850757919569375690733325780556471787132736884667736927603174688137338797258175676005089617219171308209752478843525821812613025982284283959867528297230249352354948561270541198961048266853226423335100189208528499759584844685058562656936216220536775933855658830112925013876811746655666970323149618558588398963470409116067831593056493655548851869647710051764068140283820739691914260434270437182528817667960029692335267667042352447828550347694914387064627836951081892621637193923210647597511918811571593693950932220485793930441690187440975081648067486763257054084334421792267826228379140425808962470951101721086801378731607685686481099113349398937690387936309617291769159056607140033597000911819298297605810972036102031497228826800156711854425919827623246503295623054155865852643327532765444240224281362100525857711027642682992000430637106216719842168375575393029345884419439534766811279952372510329315281433385264213288206061640813885216996156068537002755769706420950484477411065271923565886434128389032379078339710550297963067340303861001770057867457635586552712264594662402587954028880000360095792080344829446311506234350729684446435161870194779473389332232716572698376321131670209389966793373015373625052434429867359887657748044048525310775806710432720409339841172528244629106476738997520470236099447875376954877814332256029711513152435794918913859942104238862401326824654342124813805199522130562730351042115670330554277564473697511353315728963255027472752426188470107503983228647375978008459716166282995863164011341383584697345216056200823130535094823811310659401231528277680488613053592099163541917026692360458437013888724976816715609410516119320965291481536686120259233142401195361281016135826896445485259825442369240001436483411593568737609862546307436958588780920251799696554163993406341928148650010845432123213476747986980018244186053286827509851568679758297145374553932393275395118135345717425905717796808805067087306843143569680733748501313385053383939227637279510997911953755322559737623381071552053312356673101973912750529939376361684220087399290952187608394363803294612562349337018074203629476176247378194397189425749040321865289767060533229184048517910613843061346537132003487124879970332212751769220656592841452330821430454018854257037513181613257733787910549280334769155572916089528699348392558618243185776056782056202008120354562199798540203788405688840031594905279696345729657325656009384471300184325003308882782741178543706302932693710658404118538657523678300055811959336223753262658639918536743964105231980870864558888507489071887214559512847994539212128711021201546256335741058591050705895982584556899638970097051388804576961705407753986498463249737567895218900267668996674501933829201149560057581246990021579830261873587349666613501904997304198241995520972071005176523076188324449261862479158314979438397709735439726389839753299639517290252291038321784696113942183301842373700983568582883039386223594679036826179372327624003318719212041514435474875833102216044835996303403358273717612883829014291757148241350154609916212742142776922668269152373829980744158582320916388680352898845724768229218493974873651509046256843983328977881280389632389382887503702757802510116297001776725720538340804978152400513309961063729749951591742469753257257459983439592120441033151052907088843249278399691558601255457376487988737515278465052084011333150034319534335806103843176057781888526213573501881345193826448403510602186684810964039148513539568450573427262233854436738274966557720746733542559351451649761815327111133548201413425591962136989947563733663873352244649330546271211534734704110302894981848854884725345412007664518143378123860149170634326988568315678809330868818995179812726955337593831989983372804178384844834008422455850556897956807411626594800695932567910817306931196700322170389534030265793761684096819058688110317022895084953021371896199899796933347039939565934757823421189652317603873434636003941281221729435153388808709494020931312659751429437267319496901162281809458603345114650197773564159657327875877262575977621059417020017335237033069334657819320821064732750849698748142511958978905206300396420555353489288457814577258844697193303610138294958981948483776784802210475706748576126095844165615491429097869495666946274162070020422557399827101123881945177173746556771588480988614883082240851130987886812249637247931985198694952735129203083316450622819337154843172758010671485488774146138168053367474652164445604668723603518511826210878891410944794243727665126733328137868236666110286479355865312273734361026269574594513486602950017184198808020197025493098989942495525239815876075122275223532224228124397489868992454811313235453321899996288898290647262615672304140333511169513856275924322372651459301812314601827121417762432654314454997092508556625436193057804955858593667417800662339774807968834656861117361558576347637186692793857373153879444411717234100917397165717036077863816212032705885504084436420926066301203173469829575431776648382596677881132191293706961035522674046661273485587335401840351618569462318301957641443084442569792199438679858019662322570353797150444936456380794601818293091318608574453921552351183460603907201089201834677069340543258950131823395634962620112554644958986307875664459609328317920847989403379971673040160331818627085575617730180008172011530930437334416249576573253802611990353170878062241876834157617107474160058029001502150238770593442442286873977481507342234111172730978210479831230904505264258102078735366244035775808623289720272851135899632912620931486973029745888196401793762417008431023086429258782832728117822033869083084038885099402030756582863557659638739744315427779227590428263601719366967831456916563337037169216227063818405995867846188395384086081087215923839337421843678220015533062383359853625151506154988626299844757475345937776440995828952622060906072650318823324312546734635662125796965949026108762832770453165444481020943557706914814658227281391729212775747909588507938725675896302957046052513376005570241963206094549272833852347898267387953613583866378152462523818988505435296583424227141385216605359383803494775919254501948792414946870891988516545348222000264193674843475090296040784061275133739567224837308207851632142097199404473709164331449755882945573036343220562124776818329497277322365133566850236209941799755403810999554970582000783699493894241639301410390249513657292914671206756327481089235911366925990051930637182213552714985812703974045697977138339506993381805622773241388918388346834252953620965823911931028434329417444745658465798578975295163910345039367903341231508871966624588092541380581294468896414437393632782767340778289335389737791443862932979976502669342119596551504873851733199953928235403798316414386747895918949639031349609095398495312719484956353811134260473010920117153182954869541735175554998496628930309292804229274949830546781009879202118858418122035764324539059900819269652439385648766033523103447033979272075961861506930010391736364092560730378719943030999638858522008354858658536518327538833205170092373605239472246775522617458871914502466192417686762419478418500094633754948313376519837418444217570346981009757004311088432535841583229298940418370939430070493972272104396563567064685269422393356056848181388931619636748773681018957862641158262804285069868745011627475815552988954314842470269148777221760055254408056188125617170566966952846863156980167768498194488724460099549203259445280665013102793927566599545459043628705977735716064673673732491503455744369388008010721133133942533237348306819635705289185003060487398593397686696869151492104106679003494916012752102320633052565412689676103332339181299485612027196283667320740799170503948722707062060880197585708869511015657884826509530370232934407432752317568680299534663871272731642523206448189983671821891178674120730310589649435273680645604224101321024079761066217388995015930530230892504369415053679269019413725705384462081082267192974773878273567791758355494206429808091818971214746720887928613085200461567954616204181308133409248030783425840160494584835966830681417343658886014977203900502510750511822679773221245847652021442512591372706204903169845095169310844406107353994796170575837919407912554342047508449636293899361079928487988870038691102076746999701969675306318638389734896053090480323103844366074187658570050365649305456815621518490194091404655822948213389789787909108528571427235735884755051959866408528886162321390349193214008075011624469360880127536981401369388273114770873198929148810519712077220244917357978041002625079991777839810590599525430094589142334906567333486058790689368734081375725816910626126635403437004431196065369513314992483834436191685119194256625304842785524019734359555109911549670460231057979813918038085514063089672093356086775629635489957923760444873975766051863665325458328784498070433794543607464653331938941089903068430623788220406995024652053155333204776944025524677942520349182818693091367827588936114475506653128854943193326581182606696211161227907075839984658281351223470074171816123543853100352064295748098090833616255063966071024353764469928152244783115873653363782044775913590553031115217534720430196293716246892628511385647183604043273439932877767681924932175255269558355389717596858001062107611728626009209577201281618288038014581399716796046407803027153313843396356645655504699244271586737647785554366348755218222515363789251029278996446112396436649597955836418489899287505179347208550903308386888265471242213848910797614469905460886258474084116357199266296198379183377824010646727679740536943375631522797253810391022278372931555592656147957405590324917799131224351464722868692268015685612592879052581710027105120663540900469204605667990780408943738693231569444609625447691347551873049122503560644651171058123413759745880373632063114801205038868544617429746906501321051046853149456787063666535805905398762217526442051281460613004977264670813854149572845935441048240746978024684974306011026840742418012431683410206641178108137708077238687156876628686212551101740221835296340749906396696548088349988700773162337541506457807939193463619736414536377288891713213500984474440493665151161249163667010645124960927961715291644138099870518218717192939882199662549685920520130412210463552540875771941123002112006810885428481563486394013281089689641893926519041287536095458838669545672443387618621778325211738786147908375492240402757706462241026921758749229031099222370893249404151162238257572105210877402344844599114607269801652640932442601703165990821090417325385820491044593825110028276951918775872018862869086311184940994875682117881093345269907157898974513365075242987893618122596825852123917113724890545988959275243013433211030701899734048703782632412069370085421659741527140020502050538945126687268196689194992662765430379707064711672014234670270903717423846382765636539815668652147802920402988731712301903680491382437121137083442443252996014356687803580775806964493129290605971160694077447565091285128603920106672177062852804172801374104104907809393632864923976916595652602841316304115209487204973286718388250654826061944700740880725527910813692559945182347276553161519555347047294782830376665939773261715375457426443618832753261110878439218925333882109865930984051251778524649760216522582128343199650108559804541448878788896706754435805339724187757488957118808837551082573708526129719134723914242803441633786738812433065647245020364502965781532612192640119243758258884489503275001829582405572033671428403869666462221396977322665838854421864227070241711665633198302083310475710062765612281550455326179137828211333393030581900815617258133749595115630833649071911179081900793489887794886082477581697972982681402713257487779043583270491683008113904830605492856947650033176982179435584088486687360600197903587717001192271160607310433622508436248688150153841863983122153571762521057096434491583273260911513012758975326075464949677742925753763722008192563144015735333456731623635051865024978651940251281072497867191251851231354025540902165395868937114135013338096162259813441946601415237425196884852903353195647621949919587616065371156743998223027276302357637612002363099302414267918178287083835241353059516954156381295754573739999963940812516048812764709220732768411162134376995519861308127933876926039328251776552723685383411635476448831145674860646215352670771189622047185386602306704835500905796502473554324394522477933564383057186179062927938284317842336057552298268237241306146095733689223860244040207564967377234923997547127527562489860909767494623717663524990255063643686548217787971328988097148863755553196679253049402422636105501104347510901869089798937215267711593042887691289114890788242554468141280771349109422526274230225837754499463021400251469923129871349325035195591961463965013439136579631819143165608833859317761681339691287497383324448072567185665488081950321289947460767872828728050632510248853335206162671383620813216339830053602297703737547432272770853246324694972628576254119487362750316748622078832823856754661105215531297787786944323631196045835333664162260922775201937412068309282126168371341513126051570575219323492669766280680887527950823494259726026893319287118298058645124782814525758345048239963055333346407659833718803808891949867915248562954141042103867598651610478354519649887897161850763192774510716213258022453325075009655575321823353671946944011926367593585651892249571504200176507086735668901063125612492673060012783241601938169964844073748180292945912757112164167638823274104242659084865762709036692107757270783608912739454152318592408917836266628906950717520828537995165739010957558634634046089809520648143026043615879693307404327507781477304917473643595610099950364993167355551819519356730055615483044056399551904089184690692281702781452370492994455107835742320122493016327983998380660316746971271511531559271807645901045262596671992203732308922699239198468144691304873704436448951054391947659374602581267268793495255485227496078811229754862608223132828816568275333966664247456895725564684064963836432719878665433790817981505786214561010175529139664306731925337160435779347913918536831138515217077781491899034440534289762736426494517121249958740802515040488123815268335939354025277833054067994327174359331161103297244387433772917315703949400967630286709267169109964960104711087412665207951830644619045604491286280171278865994928251559415871759768381667930935904232650587050720382420687534467005988017216108356620532105895109886095728959057989313932056772305735600910799211331473306769471894724577471700297848264857734582515859308222255565228384946510232245528683506472866503702798436765911182565940845740839448492524326485815597449770979679356718129292823513186851471702327284527497410276872146822857095372060114287032095684822876130184259705584761651266950023751174618169233101692334568600447082255462664729984044854967659559703966750193799269642213243945818738158096081886824964540977180833592038794690423811786032203662840282763774801302302883793789711666136377249993632882913624109626070584257211466806943435024304655890788903482445414782543481393461945447504195992811230849833998707832690690571262075731947542551951468499886462706491658977357220510476092108235432142583666496194502662586359263021015872490710502118755033329927049517185395973938346892548320216421221591318450970235188267001875812059276380465095280051142056137960961713343929124613244285406620250617986131345514073726277241642248288280231479539042456767631145931530516103896318248587731131727699392549445805616408476150974861908958225982853091119535476280842366167676393715351214388031682950799855358839263057453254126689099104555297551858947324667546231362550065532779191092521866367657676238751272431472597714209441557241180962138620456428410266456581404886192005642082932679649730150041449859923869278420192313549766730066675127675500332871117597724400221557435037465215637841623673364904098622245845494199681487186575572193301897068230702343028437726662709370735470175480938365905519898730458534211902371067347660351092732492160726993120234467158758460951119343546468412960635733079357504952062327481216036982882289788956093168112531162888832437385596214964153321644811212412247839458674583612897727833382022353244504081537459992343808014517039353191780717408578808871876373566416380064843639621935842380200541537241200458529700490931512270284602180872315206936466400724312160640964908441724959059303956550539887015545768029399679494201001542910069863234657500535808284950819446466650296351772171604332550205417016954686185103859940522964079403871279906011762545311217037941344976863759794289698524678095552244397619693116605773653389544361402966314130018352612685273156165437156984577409618667017544460567732709377649167784324014301268542646026642261445414713583757498966723842587208758772385072271622990401280954820666747277788216143377739569308878173954086747641363689512918003714693671134465660629187057042958120591764638485635588716941040373745149770938382769270222530559554864330147101952601735280447968221315664641351945610921859666811168579254189373141130282609258250214103033583894699032924405865641903212658012729337290170919405363447328158068120335609919411335185319882386605870333028913863382266664817167844980931400746176923445264873066915279568994670360744050983319720766838827350284204045235172240637177337891409701143836225584388827662808897353576513090313975498558647404163353992320992225909572886158826473506495649206647946554793717801779760291276193286540333358655890296253455078152596258638532746616390474619737034056891159400641692245980988449036946821267109971659681545786184437701664138550385610770634484738807318471048290068332087575580196004014789090463845844679588322926988352354691963232367549294268957723732762331896546077322904556333541766046394941866317605126337316701738369886047091244965059930990680201741120867032741764137059096593253061674217805951384901127815740503601747288154421182709702164077041251485999937157362653044309187138879687975289852472951759876645095172770304257094893390711020080904908006175183479872895474352083446766654498662113757687727844771813491125102469313667282784205312445491830013545690926874845776248666385000176059301643955191766255446463349111129276746090556915261486692870932216326213905090252756522912318902136152365803639095383543814307888464771499237649140535405565879296175206853938022765302603365691240358001898580568118843806408351475371984159048020725265253806069726002063277662228124965056932031681706790042620404566177695738126757143926399090609001247031158581341415770498560734624879510238165913502005762672016912037038114797858052336648607085873570480145455461257151623959787842732253643720832803406069119468593537910445817729745271434451355845403063135711298480194187690836030264786525091275940256481909155819505263542962504775413019525476586747163570764222051367642657338098120722486839678605700524656147886227206322937215110658693745931930737603809884161018964437700960047722360602396675069686640236870281713925640966608451868025476727388567403391436279946318693038244874288469380399343278086399247186971836919608957617624022026042147857238504332957345545537626215314197213694884571433530370810781041283198060915271806279952156437318991349850526298136550906568512896230860167568639181267912966202644915643371687020158366928863951462282177023562134317369266048120245568864586362383084406488699939202427055942806970246898966022718227706023138966976643549153730608919550921292619827922387618280721517250022928211909775964254880290542874644256837975635587911051818210560441408579898965990723459784208731935371485623209131070635267422246739430566606425549863012890998275758696170222007947705897191742051675998316830238275898164710872306526931441249258745009945044126115033258987303922227984123188770737066067925055120637275491731362704481450296493709220726079375047468609868794217436684115319150185347794218682832686095723220524146500379171782602580288390145405858694663524734516443544217820017031384317941047302892895551200816573800219061907076283474103202527594524444218546412725270902178771379535869933034625401246969792921788680668838842574051870943863203096847065242593563199859066063328386679583746826523075322231345678167601376398178179075798340933843872106734579320881194581778517020381775504577658783114446703359449346266050000510155099415151187692875730164669030909799422348654064748057807324332823284568105975719625273199081619832908394429668427599092153018061901538871993478808970259461603514081623364404886550068165470598248834967965511631757580931952506716903240283400657992613364778914790352956183528021357760328142226612447228195661021170080134825629667024898958304083955489604159798305767486145739662232960235995431055903529596018113164914857174316415397136571505731237587534690701844627428481161792022871211705951548905229402101165760100749369088040479499530576906619393250734247080237531518588547126048998666274400291282716276938623478563595330755236315778864240024745723027639788883910218352139409202292194635660048939230213970470955987378420802456598588009870414649827232388849414279992305021025729270687854007805715391904805098293474467427028841079947163740974368962203063910742080114673238289597780042165922893941846413864145337889907049039170240293533345883756362479590234852418260081927451692780714073659171111719139383197631726689046590917887954379978653426480853697321805909502570815856873513086705844305357265321793798324101180722370263057610593426569400391085158246666001158952216916989561555003851668926475494792977543534233271258950069993904865186529543671208719788274425627012636536458477320850739078443289990812661913123921316171970730770090942951773127670616045191575917677762459550221328202504748081333527282126672693467285522435144119053882344074682818280251159187958492914685253551066082837974300757592326609880786449838931117308509024128151917862340834572912604997162316434741129232854362273653877748773696051254040921304254833142153264597461120651127286709449988357558304681493834049817387424353455952941122829474371652277680815360604318530179889585428563117159806996631533828643503340315547141272816842435760844688253100327578814840979913243995153602337832680733016378411793467244940568463786569237388276985502816408873238963541313988122011602288818503842158656503345910558965902236990464589973129170802486762387573997858740578934551662917788986456977544001249902576876217084341417645253226059266720668265285168828590219050736963036344585344990702244548073326566878116976557399360338451791659050958217159931692615857257546646726407924674416994470899192856095765375779686834677969733799181367098790962105521692235159952015892600691203373426329636268037005971149002323663020232925624537792579232153988516608576141465673480523187811492187370861388410772636897622115379870158281250497950658931539365450728452027467209851713824733923470234008309524443148657685983481932422858395197154684581549503056492525625430147513869788353378129404047237861012726643441197151977152498640506502279585980976099451982186129316811248807456624801535494647035355198516470893452123027922653420904268831771149445210067233885370975994198133481737226487662945283931767611474324861927955559165560448326744223353759949925326144239528839867920489154334317641840159456402591718224130101846919149526219814981587194961014741668423164196478090169311805140129234320158281384115992724597710735978049966594430862753614527989252795552559523249376115788088002238667111742563006920271246196153270872351808069910557910369239835895712578677545799246000326096209795582022840965264648056213229191062216533056557810292939130119997769438683326746856791487067006560337908864487885451880131509606346602897280944913324000156554158952011714337515957664353308565716420882495691558962965030585580759892399826348027105416408084165707242320188611634465837867567050819771826007418653528248692672560466743896828602801757725597816415102039929888310093662003884417417884697215008115354622716165960288259780548567340929959852167893109827482375626416786479621757009134816549754421347909631677790248669833012978771110579499822076441109241173552081228241239378595653649343894632033956256456375145092596808478275181315859654044080526952016062923822760450997692672495014753132530433267858780816692830167095585435832544361301927717921930122937714099463834253918463964258521797278413919236189913856140554241406230408251580254556214665866133506615966174129631921422841878650948505234303134877920242246812193882724965268920435214190664414949758403944977618450136155446134867687960884704207887333847112944952638506647157626440440647130534824861543264668925256306477354287915920076169064914959936715744576139960178226327759391109125121743282130773973673035828963398535645601754125174019589857413293788653422954512918458254978009177485544653358003765755122423636633981819125523884021434183948644467045903621615024480244365757666987062390268263295829083387868311585389198663402304831071561213252612485087834600517406254335931215131407744017518245229989954916238649624198208484487944554344315181922283102283828171405705360364509716816410487481872744281808836345892213974227753314590765104840185213467968046354258183150418654559038333354172724552828785834141507707816760083339402211749528648539661725786004657579826281911405334626950805459627410488020141353570825185863216366346083015442645456095078257638938307065053527519766307926772786257724645261801855730725918061069014643563473429530072064691485566152376022365489191878223288885312500470896711585178025040041623738213111952455081129252845828062349649124298283091360603080045941800026807679423353728299856810449159809808954388672540342580240182748797349796129173842248494282514685278915038250082819935598408668882194077830714428773020335312659551442150139674279441141712801817697029908107160108692132031045564912348364809313828117736732965394495381922771719441384374667362791585769986176347382390826578449977623194772513583712210146342187199046168431945745095772553513948658441339506696999434994492608199072333762812155496694052466706210707231336714702955034352034882183165144567004247056724742547126435507292317176024350036439239513898257544677368105488380852339390102693255647378283332625122769915625420348646371426956638497766179276021164522933866823161881677371095871048773329319462930154853922240174265338777796138911800518619304904866322969731086550351267843558782152275348753352915423473709721013905657403777250440067956189680027890591419438556224910348168912703864430905034595745516026522502441608143129004275945569293371017200815228909987029654983178571794310037966555254341409458618298834442554552795190671541365214971956744612182739719675821254353001172706898490273187668112890091070624448152043016945103267782634523124351579353911142598149009770119148621475970330582382983620582203098052804550190911898080920451395354763174147003064652469594496312615440293890605401803091855084321545013404397662833028688761606903018405288096444494266407162104314812932518700561445803205184929323868719097285452856736570746225872238987663151182708976644540604874272702221223998827387198267169153332493672311771407701158159118217440876573109786620192823768195153457765500140698390531979425764814827920099847228887007076606671831748140727944175046490600748380706723735259941161355839443849623781704488304718634531226117342024480519954482595191123593682597905815799818055730592242151927471622243064167998644849019681652360488634055636027122244172607109049966136417810354238833509067085205595997809884714889612577705555890110144803387288595865782846509856505098158739398333505489311719738351794741043760371853106396815244618081422751177426188494012829975629549449470992145034159193501306263215808457500449795980621715021708292806001787568855893732275550476908840604008524014392388922263287545619697113071101237888740075132722627292363900043310267273691767919826014531039794599781927226336455917103958566328807575580136921623675049117811026250252298480819741600967165383839096027143409279267829652865341048390127331398894541341104221797525165523090316310022560324733517829250105486841520426218849323655518986022068730707405631989063558654502522831771569974814458281221597545351833817303468204332950231794621726266803135568278161893950192412533279349104351533790134369105316662813038684442561496516275389577971414834216875778267640111746622101794203237498815307046409953981212319496921851936126066213331020725279717652950537881266618349482093297035574514678399111236885880394321457464632530244938777931032257242034654122901152443458292860037520458251545134831420352274427137275893571203511175987307757781718849558604134384668274355104461460588763337122260739575074452326393515448780496131879656865124335389114435027564698995407407186923672644542200699084503351547018592411784897513761662038479113908715817229855883422153784801888234392574851840101470941250647190215890577197174750826269578271563990148799145826471672184080190995527480052214478529220093554706327839964411498225926427634846088843561201262212242349984406301560698645388306748259038978837437181593614272630478548375443873465214341458077029072293276053550969442010279829489183596215010739905010254601030844679532636370174233485122861286508351682958051677501635137806658377256808938907830466788272905420482157846370368099320460366371049866238495661864872027744583160472895271638349920418939475252543633420368250058358395833001912281010722167408755507795227265169117301082046078904346909188762997630129998035339750838261577792657195450022688980368051056507779065577088916243052239015700726346002697578051456728348498733014979038233430759392548315655548023050190852162167668347720073741514312129239308709487395857598693191344540445627859786653167545546963033209722567902628806430707724474974814576823372404912326448507556999807369550408747323890299787859229263632704614349005378236394773712494595763991994709767125169792677110851594189174727406856919596489008641809296079576198880406740327876041511044227894131757474284052484189809244836039041691230171597498032369891382136045597537378935490277862711510286850411319913765519328997042971894480858812581798915267781387108247387474967023685345873344726557668207546143183406717741165430120366218349380475007542716230261279625570579152688100627535017231030414768417230500650956713242608078477693343119596244530219882965804265509946913012932383432507637614290344756074371318880638062902410232630427108982891431121871046743468538785638292504643324550659808508362301042079093296478523740626447739469865852350296879673312246293741584100140516848918719786620611994085791549578783101444159862324087839986014286059400933720387186825938637488185419231880384337376254364811350770612631241503636461427037837934253179653979681343679033520625949414235483343300977230869358237794376705696732005756545229459574796779535233416616596494910816151802349227141698509662642616824994522214217370949198212183062162887473392545228093952763955365306094970988611824815646674979521629476249255350453154087618451432647365826546024567726182288548672209202982412310540377617449795149509536881999659395322518978388913240373503877569269930699180802148936997822252862452210547608515554954531644593732547896397670570629278692629057926815061386710302542619955986692407343652591171117409467945086649306103341463018425832803731928746230956720601957795043325136087088512002303537539283939400295999318678665828110099529743498329042679149240629864748836096489922535702050971343405608662934433183126895034252682180139744277049935755207942198504223195664170396383770811878564843429426980555626609749416313922008809228249127261313702047584146976808270883149808460308788411645471369528467420973542821445338811365103589097619070759312935956195534238978403777682950948066431891435811866449810177553191013275477704828246289090448843822147978293729163696999184689632193053707553233740176445790243658314418845253024351066787994942259526669491514882565414498869425276077860041345765529129929573129996793762119722499006296565036089221024312826172886491630963735244198921510395646131536773848707841027624604363524281929428072361307650630750919774066047344057092150527081325982290425822329990294474613846280758764704803139623776546570693432373674650781525158509268688802489087600761664685112164636276764093684751276387125583584280082972920519701960513933640661868429583859405575399233242572392509843141182380568876831882407809538084541702396222807451654630310154182002772290475692528598854713404232883639957756097914313246256569608071372182537490194940078673926288456192801952990203986515711494733984284948673252824045257213376299556475622643252331226608806146620083519976317290955486697518234921015145468753460306911948963088079756461217512612944767800719813160325247032259332451480198284925691011450062251497482895252036055284180571965941610682910643376752890698899854653183702344737457473375283004803286451765622327104207822458292501134560532807977104235748314882308310048349616901525190681675294534032561635676294005264491939720626979159944952354266377550572187482860259063617160936911227244857936827785156846476278035549137341950117850241810513304386224438088062705554798409203381084796592197748624884178404237144080018015913823148144943310489689895655330448245916586973568679644152087477139165609856121120135500603121905299758274131793998489221157386785290391980120124926538804787368555220954664823458419852312055966730291880339994561202542481319738555232582931198314603347040672691879608174640407502770433026103046574055477354634790536573410706772612329151165386580466754589837351414080246385778240365942172964035164540842754901848659385826507626081826779832569862377807620402663215491360529003006599779628463814575654236107020084090863279665832816278531906415165351989555660246843885222784508397322306146777188992010867997938667103912028315207537255987883107452260290920308351813465480492065517057403942473271965255904569832299878933606759569391291959217504413798582276182931100519616793313060788561221439386797481493898100698343274576172883473721588032947079389973674954407743694143113885714004113392447629292255857488395241678362680470164736495016650443502791794836067169459595923564903238937210111733155101585080861104970692204181002846508773263148203175792505984708978069740390472127791806306819604018071424748919924389721440118086805459799967010354627167179095125162624486271972056990241632536943632153954479276210893068735769686265680075098792058321820199265425959968657983697527357341299015829720921549274043853917529578235887969650663994782369114694617804626523019237210243478110754131526350480625592809394557176674192990535063476699058410570672586542596732194126782481156878610341366248147645944334857471786214144820510503927379556667634330955200056775322949843905596258501058948502808371846964585052149731037260127701121324554421298286868714186777201209287285423538054479464262951793527648128623134110865348914820695582681974992228148217038228226663482073239506117201917148889882205302188567075955202174831206847273234119959015231432844488511150554984008331108387379042790098418302473675467103713974048991613314552737572555817589093936127043153101071000437004000243775852269304378232826108776365906942693634207561612209640023549884539491810910151640434884027098461474700961697080163213108084862514263490083786807839011594904031826767772239492046298708980655916439728110233525266771544050132397825980253108912826271315146567243780455699162146026342830977332881304514696084581786063196780122382491552043763709985227429638099553270316615902194558937562726974714161383746806984491571421307847783712215768542082594065913037329273463383816107094838019131199630795508163539224640404186525601973823047227881614283879775282144229724784169648627372786643183540804247500566768094160561980171959446793102400234984511466398439058550184669592814768695849530721523414013529785996291714823933020420720478825480918269232996984568274912705203454798233494000161669427316215398015076013302794808233194548650755089074721922041494471928078474157606410868238764500439488840837285881374727952071186623024757698624180506453416703711235238762955827693836054922478686242769240963806222602452457805347129115140877023580368950225632809518875249893933497416102033902557808928286619559245781086267555766618296714983927385724513030569550030678146649421324985976593020064415855762603974228473191996452765122330531678821173229943530527485640209440973821709162130118932088882033626198063118655278320509456764988910699950231784779011133179337822524238931379265016899534969384021912504379095490607676019538914310954474151094950313112152113752905446863945532799165163955074526336510605523066865128234125660578805479136113489437216685551717331403539387891908491462765732757435618732301471793896124984796601559769642048169174006925332167051120882105981306915644001352751655245736074774473055277486258746560998099658505694187813241109978921888886404158097464061733507370061652756513514331731625636412221626292786448906541246484375348226896974202293255589072508748194152700026960063900399877235293624763462245045728426315022645911767752863042330824217287108609262085412589587162517669159013444338338332120111582889660817157573897622570789617882054576890271099917601413953086115911370291137051031141536990443835070120481904018982082351803429233855816180722665170552337934386136600901022351566478925402095360970048882861059452560611505082458144731016142509551460132196837189782593785689284215954444813501546486282398073019213848198772051635673547147689810305096967278963239827614294689981381959308706704781228704118191127230553342315451768659833684011544693697043438957297616583375106075028073183787765708404487915081453653381397770976161721807908502346984945102987958601475296283858989750150128007554306999992960879610577415993385378778608600215873127113173726587752787697696774599091155391054186928880781301609928791115074695266344026525909692509899618516372104317607510351935882760790291045246557953847694069084931979989717820142824120039829505524707685454409699889825247096899715773807328986613410283554252892981219365052476465913361159625645900409747688691009622252072687417277845075184292690023896870009292964352805729445973124061471931427350049360953576210055957987104498469784654106578337592006570898814765684866141922605143941735934930749695242172576839086733173208048345715171258155992756560161726342609216755265939790227243618157875747343964072906797782390698361188623890043193244202347054470473970055191281210472105136254721494336735370616314652892772851730527481131603532079856516514160346269552493380202117644801172968991604900643294048995396699426371852236147383239632514313793967060049660622161461161106255760860162176289153234874088109134953221874252756301485301776553741468863728681591812019345651964546100510764093162742402624351676271590538068621272434143161853640441889080243935358073423361472493962747298529061542266344637131560063899697400391537680425959518224719537473876759815894975572657918725589519325885079244177689055316611460009834292886665803710633702333677222134281283782947090409102610739984362319555047330239665416886123973998761937554718315291614596462297785170996071337385396482830631104797756708559705857402837588326479621900546226632092504820025653542318795985030034275710891681580704091513104688275700766957698284112296430348279026299381625179548985326513861460776273233306890616577072504738341596716929035306501831060464329931538863607524205484716826011039826889680718088904328604525626111314291834221494443482725705025177668544854545443056442724842533286128229445901591235951388461997980578004565438252935139820966785804655697668474022550244465527402875081643686979456295635922957661120385771525611715129634804792998339125642296738239173699745598682606004262630628223401422376455896448351226940091649238177055610876564963264299106643965231640231520094559525697808662360003561485982978259126434216749537193175815795041011397587700558926557482928545576022666773661257224192195573789488115514154303233104197247534889639906875383919327371760097258974449355261981186499229105656642974829653271148838711674660788588182522616348533745142175764638426039180041381159332981914231974008882633029570153818838952642814128517115429466164550967389219407474496770849233720961478362981008137547989499589112538455700370475038414311289072006733212736147546769593199209749623407808953137730533008249649261688735714920777571591649845993339993043271099994588186275752890109165956743819899900985883663809164887448438276512116764226830515066500736842222470159442494999054917424015540269123943610704354302849369044555142739230786391004128371197013180016799801326508984043873798171350847301500118709209553839442586388446512039914225666621822420429156290603496273096714691505241114056924587182247703256939468897424276006082993010506537887316682688180652139034829685757935404787952951859670970483144975787452250265048108488870023069352371992675769036377287690345506465671800435406835208917387497290030453091657484911807998882572510622240291981862064216803672539627730365071158088369121015177318965986008856191947193401569051669740926834360289387030335181944319917639737961747921402802373695124120183822849012453432470553053714003006032321730203487923382757352547944063945565192079714435381402550610081565995173218741176604102596131947460811248264229371765898690524687898958803686827673851760279781280487739409527166818365385234617801980377831855131369677042840268673481209601194354160546830999877329657549187776691293042178057856655444703597694979018748345872086546186190801576311620670993310748820956469873036745256911238298350686769949036427089191760779252382415362847422270704609035615262999744063529426876045421574700676812216952886671494836133884605353360506040855225670745946446676965528791436327295280727341674589350829849394999657551466197326082948088472119239924870158633344124805113903336637314543559211976773047804392499849649648179977051105347599499309854956617663011999602713284005019034236225457935231032267816031752976116928528132372494388585447719116938718884862026031904819002810604037325853347998417896279366442413505466259032879896211800329832844575571898619235516268177684696719268067808767829787777087204169430060632150389879026351750974303625334787871859176694350656497152347483195769327623352562935828904608896530698805430444630723245706544259259232477035881646097024790591719725907385274000565202004002643963524864672337261833140539854610500771632896816931371260967630158417188601512993062443608300030584044274902490382831326799448637446195442860724477634662441694283980698162994137585515744136778312085857326995324737599454996138148321500053082461098108189401311496759740120193958560129748144439772561620789253902907489749863095637684488360692727417913469016449529168334480513801192691731523880042554200415219743979494140363739823306282247314144186931575672024254542668165546821044193240844455295898056258188739167273027498631484016514862219286656908924503461480139481509082885507285057326831010303047071859228790748420750402237070913766564326813184376230548788471742279011921420341195543271074124028138505541456133030934491474645724933381043343157714736182615430086242788240870195614406240570102369355736563771121935095371983278564878653996485992007266709293112630956693223919126853636337064515200314266082541935920783083950501766119870566007822402975558957001415644181950882679218334355219525367040161848099375554625574753873849682960790203772520200570377669702714542298384362279427892410860734629961838860234420621145718101465048069265583394600440272497715201765409329083007858468738352440413427295292944021051805424261870953421449415868949746688194977346718053886400176204134491679362915117261031701485765014520736649829883459064822008243525883023833087138368325535432883417641759132257452225100798057674407425596802479198554578252772562324042112755995576813397112716626716295100324038108544811744977215082307357237887696754166297500762671423829341557016552217603287715361563933314807221660017696297538558107952702628040802402155766081719803423218676392439396604655183690204589606181641436127299386644240272384519818866595236397104900223776277222946270896021757001227026137130280622283292560827061738930782944112631094462313043727968543369281166818545353852283749441491408034961133188161391364862722332232431587475250562609203206163510200366672999516932445524025428559490354570305255132507508912707738349407073763876529265875404860006519481476564616174882592934996231206602968240434649407797738599924710274829820458037139267922340513342440673576481738406316784660649184644722307020908892166331400432898010805386027252955130258717645363667291615496703200978657928736088396695453121655643026655490367166365743106902771980600365781809506174523693155749735601749635385911291545641512144215247841415373712292405189412123214284116075653097545994210972151313532067615902958506477506303032524289227711260126116823343065687353470906926760932165730222432308601814464571026143632919876146682812285765936030927704341445257155957957904016128974080055477459355070257129502797807448834988207404231990609455130594327122331694997940676282424598863686542939710152935838089961936773702034469999260353079787335739977069065694298319634350073482474246214575566385335160754411590780155204879179070673355434495467627613385740837179834451318736748905747517608783852604031690849937405150013224072090224411129483549584326828249693497736796224463345104798564775250990123699061816219250580379203037622209820119547064791274993245292219821147875847000701375523307743528195048781113220417152361848072515148959703668041711285659908292832678615963013145889638828820299441699883007985764640834151485806477579175073272301608816884460389140866957119492323004396806896212766180843727268807266380214905218999458190642758607134188647316652703327089221659746846003387874331519058745378603243377497163304541220430256032775523866395426485561538863280063955123674823115485575123082128376464664604869285219643112518533781985617610636864015838115634976231388464588081378313844504641123448889732021695968936523552313059314402942583232066082239390330250853912975653212255271436463886848649845560860904321884001665605991395000679652450882643799993761127425594029268577129143361856161003708496089821358730950189615278940441840357321050601199375225645068924999595178761951137903150757469896704414603054864671291460415843803677703091668694407092967809584788449265116889229333254332597020170515762969305347268927400430572545113006988109511005644276474491934492476703084019705576033214800517644893635449858504457565816310676834256942265724702144362677863974360191034936015741680571486540895934372838513381929421745768032392258098353935727320728574342815025844855398115450281155630785778388454265957805627434189742243357009984523832466836995453634226948758477957123452134343181235912211220869004169221678517355266291240141082110229141042127645791605827395964855544230622095105465033732357853061653373213506069235453309030843655011518680175505846839999319389372141162075386162944688945034311538349297349390295405810231444392325250353535397026417524547289188087905651678969929494312113108898663028005836877177229037334481278704700079222749085259990807132159777415993741692178505068344635718239410132108728005889776478272237016734634963026606561203005467993596777307949222137012744771342678846821523157798164068508993716425568460286406491207734465781860183026459698314497971314293017408120161418202584888326145524862056797863893376433100744867987236518333034369275531304343754204777715478799626906449375592615729708101490575973299455291918839629265623945097401867407075825164675093901043516403994630018021348416158996848907610584436133170674953092250519436703539415831319206744472284925157120166175183535451837900065769888861684778855433797232691655294440238191988142131582556782421867307445514306048363658725672197928483329758456440094066716605480717925047319435130631177158272660417246136272845573229530979466371163448261089980618575123315205989896377052836373639008560144004029728554520200448729921454449193690615967485397629775303304893720101895865693050748544084888146628120667402194312276809999294632631520888345295052986158548469710415861864962673454574067088070580099022843703079614629020674104317319143758696282691958275339926979381140021882078243903979227958573847485478009738974078994654673954642552371749674295777998724757094592286040598931270355774596634490909837447256896127591423924779680897635623118015541464279005459625861546969226831689634377556506371899959491592418470392735354383696774689702419697894296537345299711061481461415208960013462247133726885187637999703015082912422318672556996167504727999716565848433332315153035939760291492541144835172479646330337147305706666907211433762700905957314211076670133015129881531237167210211584143840254147219801184000815993644642168004767574376490264408065553217863623376630981550693005657258487387617974655949487184281511735200818269952893310949774665488554886356540689887762276830647222797364255875903786753240428305355506286991291660380284730695026398012823242940887046806793851646605322068257460568111759375645539889568093297045712051649789314468081943790360351977302578346030207016134773372829265326664811884525405862797920449676516207019113378730186926680148816931067648290077606230905066232259767104907857690934149809416349490666173573068535736194885072134963199925139234351190311442667227236910457696311912472576095749218174380608582189097190796650348017725981484346056051843063525488867650708594386299427444439683053967346454844077785867545987733893535338034659013120283636558481257048398257319259638359841384168964990926455486191033403624180597769871488073494398796126321125617802121750568250266207417526007326412099910095319185457552602523341756203600713725733508780051647019912419373573099591299395547993097480953065701809115645015406977003513400848975301416067069661619421086630391111687242194139322328130015940289681251763393260511469919790681715965756343359790747390858140052004058530177721948449867158523037352101613960648307728468490490888873963297310909097160911738033039730503636387765752891644273762846741853340757485081108838638279265186425998586582204627171277971744714511389459814053718741179749043670781513390144053365777608981089028466385735851985782784999579630997090476305725030876042169663471072255413972073859050000166422573500758475249686242960153264255319756718047295285436422283589536007510758315970513297799924442801634234480289607587217021204036070277911590945578203092553737798058702098945606596470347777722045873550422723550352752729435455838298619332722252592387193637821894752743385278814981196679015298364649985715703714587259852521692858613315790262057022812601028747265559597049852728690224907943230882413028134684403023631288803688247597930126627617864500507918504057649286756291481287625805685607510229215746226492835859811302866279362713887312196143082946857356042436527939951546030499717918491514518573080283903559341819924339432104751080512957162585546686326591110682658147246681926123053462683791829530659459955175355847996218810167911967927880029443292693179839311529631249922519764479333463768174241145385919952178051741333321688877151599301455491249167077671390771880384135426212475864910149615242330945509562920306777268334136712797356033687367296730563985047041157276007755610317790328641320012010582972171642464095066144838327501024921440888119377057763594143691588320181252467281976055874123282274215150684375533919958936822950172062806130894074840900624008055699973151751735413118231406619723240182051060332381179670695369910778253878237593505347374723038184158718556035733383451666639903258047836706779689884000264774588368657408858373826474346947558008056271541563687093002948327578226985009819997538292330183059278474950377388820011289798464043080216633842825292482334009288682453421957855180155287093018668405651919665013028225348243455972191369672791467535377810262999804717615055220175893695400153628305611027402467982938650684154782395883769851060045615013028190229216999054066270980303110805351676558039213702003715609453407994083341155487970951248681772776160986964827410408062460916751194840821325191463456988907129986365672001689184629194324141429531530385657004297211884451797584477864012723498862043595534413682301891974531098984333129738288788775299454647949563271435037607050326892674112604395636576808098156725560342663605397912227159693047441385895369208783511412394970178349578564418642373037454790578036330645810979810183004213763608922299939503854898238674442593675447309539094078607326020029654962772393647025939194211791255819136718220026037453685713826009014976235465766764889889576509924173491804514353569379284031772643991019358792042794124993035674661567488336003818847532613457384416868288930375661596422871190120215273758488963317614266275518506812504182203025531342087595988964091929961180032529551353007890059548108772340114135442856194736085648338716674490306412639342259078835097349659464156587110219263237269217191905585620763657942577380483156830403357290243586789970908966299518471123635428349783126655583622962289704196836533640105220777956838470865623792095370182568136361768624866752836159601579828962055701798705937250502326779099733370487918975045563458841397020950619545272440920755941265247946967632139098138041359414367540782602844301210096214801484485350480356648178263266012365531184740390415506271979423838233182910024981627695160460935041952670555970903749463030161752505242382806119788906263543814373670451495982662385751313488360429678496308585535942066150736601991499929462190326455967259377712081582348760045757383373639426270420930409017505497111134602622155494989054096579735932035675118509880640480423266675732831958343109453765408646203338375814722650079365750788748569673044869707550725442263321026229342541882574490881713308805920984430277980159393656892803694701130104681253205786302455794401254430907715016136911319537316681085916753405517018751040372133861429258532408719567956958094855361591026823056453246101997001372726405152809861372503500580750654514945245269049051786664016907545660391252607851881025114060227355214887182365858340886892771784778809474745680840924829260615012415506816072456551347024079719970670086381348283973137989181242643929624473943767397366339600022500548293510272798980182266290834184459996279362975094604760277316980625424725741741351312531691594774200905671646329705972775841670592181417918897869282820456239038570312191921155119258791490136711181731275964942690748494287098909548077704860788795166411760935129096325914980547270981765083952447929199767397389940032658543336155854499291019203352482580779449888373598555315333995059515909826496741526881107143772509035841146960450117220218002464660110216388412779481270122659269556054527794211680583640646454735056278601345518060541097906542981340872241373202553204599918136043025826791616412407195256508977490056255141149832353069113149031113514891268285595003453887180672296075522186299161628059140105673102745821141507725162113422338494750185376429212623932705416079138101436366401539056382089704307685376179810585348794983694680023352491102524186669092153614719840760356830154824999195463827414430517186693592490372479133829638703328592979161733511847973340806777007601332036450032546992966488845686611671136238229631232412390775974722268703331483653043203291320558162238671698176862466572069819740388729939084403401118562666528054633146476226524122814034127212658819894296139246250042841781964511852285699659622244109021082435275736647091903457686723035463286353957180338548614700465404029676275934785574363810363035449857121289918250690450194852386446774808101889281406260650935188631116575065145525440271851055308832061476382001006408536821981672075127014443410628749831951823068156086519617388853824194719407556952626397508921234942395564007463480867508418341041053845564218126544912732874671254293801066431501602179564448350505395141768790971639558145276268545667778570823934635387607765585656188365539940140174163253937567336667528049028161546426694496592239497693484461149381000131629650233779213348859633745907940359766320373758610053731332093369450612243399704296164409480303784807913615293502695359410492847551435351091877977679207406871191070719457858134999380278674073373050932498889621464683955880837412928278721750428209800077583805012251768715850093081054313075893804073588589361319613718739600657354937822653876918252275395876513753310253945718735161487005427879099073237609900794704697985915670435751718658694930774853929065882829381525825591566076703742124325733119286712664180423954048019306777890338931277041043310993797269061140252946080164981407123259206979768166032575679558598935030714605492776248253533130842609840752464099894018177619256052586751598808068626523669190676780696654781249839921995181032855245875533114471206875977777550293528070090371994224434794858407137846285448158006367598717560577729726694079794890180269798237652034893067805646488394318386062714915775611159782206866096893697509677370687422614442839734352956802450939178839034411501031555842022983077347729250026682665968605625089002418332452717853397939086484489031349557790062957988807827237649740771541672232671801519210063417881796204338364536334765995491025170081657890815689642856834744473330866178517298388885583942150672891994873450929935644603850164804958084443135243123205574897257455674748161267429766438274439242241324216691619662215302756845510755511416588477196094195734270032967718519173848831607747752479794360995113525167441041297295953329434848453519572905724672769361554781115338605645831549900346470012311146774137671822304460829837067911899008058915333145645369654846666772773905290565805538988912339490315358588037951559126201580406622273798164420835181028568731022212639000243586621657644137353251561915506090499350132331991719448546705466733839285508452611321928088263469232024798610600555965548351184722896217288369354263478030787820313682897666618540561666835880041149385951188544432243944211507759967413952528436814152722787067801163691810009189339319106990274589577114769887103168817735754081330213504424201267049131887327219116313367609656113835215573012353408771819454771923774444882809567616109260418615949778213567197021548387573039496404786996059003493257684922654719727786032515320604787341410736380203182256866795417159432492797361771385168305373535156716717497762490076347490785357382123405904913898322880873894728253603944380500058314831855437500289232483759861705899698704271195618313708302706665142580225622550671000455722122565291059511738504497836558505581481991154090687063775041801057731940310335304338088793780153945582664046423080265880638691997637610781230250731514788252794595960878270099217546583894065245133922501659357417482801451283427371686120990502847692464909102678145148911712335930021795515699333468732697156403032826166585751382397624828257873621142309095767231770465388779537917060159696058973057906652659595742920374168634694316537680277519451705875794562487878861864459279250056783651407911755510421494877041852191937775686285553115760491889025927416787139597911017662794302169118146386047672565446514723441974755692401317508601999508836177086133235915163895432237405052457460098227773330110809137972817578572737950511714446083700111558595751570599314578114056618661109370546610969375053284573900064295258956725212454788449627138314472027329620012087518501838039550796875818475154351470923670642464477784062064576839808499405897686254362178965110936627892545981799734164059398224063163919205012422510764074289446026756299799291905237616771840805967320739091225951851519810529586819861196520037406406666708424382097950418831451202272181875089804951776152428040456113251127738419400436637874322767343292465904468140014049088216577345286497609444282278550090114005653901249862771660631394843544605319906057266705633230445205236084719374262060070140409237016120735935865509719299853666311470020809387196868325461357225264731358379579513411998972938569427926313406890424456727643275508304734194624738557535006365517669098583541678800183615606639735040526351181568357440742172667515228165855441236453611283266738455075946842748266901220648440668184131208671143085613724743727565631831568292270059509223044888295445898646494750776773258313131434010715620853758403905060487917330725111674972554355574761722880340490122320006997904902646490769026875690145353802883178226834707404196409243064345446941861050403092919119415995144128155282406298018427118390230545250860174001463068640374181714837722403440213207841127624699945160992890220854746791766184352931644840899921562895685996526708826197050673775268905813139318987001190017671963151922686337334864053972240891809964904683368899134100832690508919477942605679085390650717804441207949856454865223888333623257615842499427957879897156240056483499240142968301054989186144360208524509055573165248934591012222896506628733105012817850876762524081048345454404499613820632051859034585189209007516534262276602993500871329040105512369882910458379214889188567277034766790933469211444523434920112999193055450355794566012863191919474333740331805637146851444357880120038167158022967838732824248525992714854001216462041815020494149527120059705498255577515842899611007671087274569921570989701453805503991997896873528587371821063384533555392489539009832869006375775237571564921660311204203680105232119377494084913230156937127818255839147333308757286842315508499444305833057570634880754368022677637841085013165134230426064052285064714976194545318120556794894607490293667652117762264320681157704999653243119878042854652975271756057400837744268535861783151795389068050535941284949398161870591834401625671700198306401042024286391871659828734685718475628057815012799065698233742688238393356013348136190550046991758114245825057280166423998941739486815297589186118134943083440069586784634449094855933246835033858761699811243478551290860615450832268425525797143516091134999523424484346369417475309384387690650581405394116555895313411524811961369213989368340323472547032641282907645318547324557552317812634206825996288675972557435176862130101488002624786553935722669438289035935375069091214581749382279553785296863229388742250484714343937811170600952579072709783187166808751268779525360966271965527226422692838640507174926090636729063618086225460062728937174219721355202354540857764293205455906347780794771565827750934407397422066775940151549380771773500262417701570111973865976475295342699745929211208688279796822233953439647253368970087389701841481088022221815677468713459881451855705124733623146488560142296062627262750157481444940899272687097025866658382461256036667107642922529707463629803423081680721288663320123928823454128296385045395905816076550754839659204268826299305878288831067758889913001069229369905912198221349990238215374538631846677700482907928634317324545683808829392517185841542965290336649029823296637122559248452807126253133741243400003164785713921070968447755234202401403931368142939817825597489826734310523790747338779529598702105107744954777653417132386272096741213922211122996604700641034539562897031588912910509652652362631492332309552417778399499949958211255007147399575013215869438722861350314077267406167323198246278224137140209903891543692341677449489851991097178062535863596168671732570871157468543937943523573885802134850487360306373346657999708499448494451541020339703747652442096322352772947072140384650907428425164425971927331377816000513508307459637676030916352143275734285514021745421388226394039028744907690262788331732376665897090696449598918162802090102369107352879791964880571173883298388331993104770646803102296677220619201447628829917632530607244478048232642679926440615358139562917989487583021978877631727702485922235625766731332041269180231165901157803891075826192346688617940665104113570816307061275142934630570205254509688147790313831708828042897695476578109704186107210082361216933537901498151185050836944388393254985023904833169812753962763659232893941409778117282770615890914305025329924142382227772839997400170435052011749281693748096050776680903154339596735915950293118006634642109634968394831052204946782107628343569193342176771238596159326358052863390698345561038703988777466716698480154889880312432350688408255417727347245111817549833911140693925459345949831225717083857697673067877255350094687002234672332453360530990345971677820188846909122816618347348837051346591366063247872880185721732106279195079356313600267545430721133874595615542086638350396425296185177546641289275438209770832907790978037051044794860572385867736140373551003385861872354999466137829582347708685974174521788959915287669893172088075825319289919868095081333487125177007088367208675365259231742953376703692700942999509771013467584269923522072282956000254939101892366082154342447334004290792763336357111236140502214950591096722471383262883217624262448154620689029892746583375288236998635222388421325094202044883941898590077630653567600348917822260456907310153692688235735393063443273185745361536302970835843988147843713405605380819232108340736952640372193000478917664663899413349021040152269571744727085778298049054356044243947629763767990025296727473338873211978006040496015116290289599633821956384979061285980460552100965795575306893195294069887709351718997902850907707916360804807636396561423022099255657851255962217095671022116876013389518957601682443070121240172285814004791777071631639948222714852443165567425468077889889413815996442256085069418346681641003170387117689742872725890595724167337000812267834039333136812225132891079762427291103729939327917257607470604117366402363543597051357773242573255297461637839736157542998908188848624823107334990217246160390555230638260433822578588925887772182160886034386256117987078296262920978906855694012309079980744255133662657180116842998727058586912128055885617307855128005789690669736382978152939062611781708498570718104422255344832177362488469255867695448343450615106601283008547181940689088724164386674129599843579959686421126211247813735487941456574873476571849426208177864293430753920400950599655662144708664930509542131148321513161668457252329367510592368799611102889562184628899444629480617549821838652174039456726864397806128311209687968294950662877928910053797416742615053031023281523451702978217817329504453829421691155855905504221681446144184039893424250593540866789150018803480560596998344830998566180205732784364618191745649857207939000363494442412052547307219700335145308072986594465690135460880824034280730652072017387844618410147105683654767702800918406486053376523200930756941634257210075945814324517147029765782323608415254189076753444763181768495997097832966920122787058891958571842441509128181678986574215419409065050520121135645356107595689514083784734850130772843328300490559157298914575057923598011405181183356917068678195648975982050275843226915262734380724737828697632026821175387499894386280592944179178521483241186764764880669036042543022626263784708819919846461640547114207013433459098715355820419338304890448739643928370831481007405207983929890321550024057755565942622375972318650197914909339285010797994097701115001464279256445045848342982742891558335681077358149825466223604340911303081844120513761115520226577991654889832395695817645884482500504563440910688995336209089067416703849090772319155956944626527501140779538086109918458155172401238716544756506622149273920102513840305548404560694141646337326493369086784646703469986766083517575857369806287321107400899121089015716286177320439218366874634501755397816591702029848308119230505182621399968768998425623789069111758425999037277210980795607926229852182799974836123253425868225955220989955834472681036533276424343891842210412966748856887029993096517941264117119698823825293697953565355078241179395041474863130727411978501896860323452515796879103413626792650015430954345927599774974280556171012244840368048563308564753646894717970080258163493757775836270319659588528001044856180839480267466647064351272692780724183293392804644126725753655804499387344724366613929767557504763214616135561016213997812266911221661603532230989135131824180089575996783188192395926502949082240688324211756525440593669230581919292075298950688958306904029662518950392621602058897997377795313906444200250354650037946070678481025684852441990080808340079202019285411837760541515691075502871354097384811844657325535778412085946486149532165721584286502745295197490065134983306579250193628262564395468174243917350216624881105571368624420550934822944672513581672159720323803195813656793714775214043385039109457916128600033018782025680214242275835088258034699211245044024432755619384389352651778948397058859851853853035780771305351481790852513091029273180244290260818146677743684641718014989377352475559370402063271995819762578992800795994857972550616235609968514918009712968424276470691598111774467281293668191602218690571957008695700409906750501611193413527102320601122270426281870876419203055508342933056804241183947760352974588791875205590709209206098680843549728991147780667734881798031884212059353945949492044481623619718219804739811174644900126955319359502895255085495946457153210197264091990669720376076092122906146339383314181918800965884746357550323551063386415661837314123389429239617635367111658291914406713834042284374281474650514377578100919024534165145313600788242069624407549196848203755943509557659943848730471243496150370831975497633907824064141255820979071741174887030289028256789073397876188256739371212907360945082419515415536741986297026140834064662640139330890128299083672375551627473383874127418488051475745315822170285154221638993721608423439566583277509446340494367563313247224894617473891239034329190781985924166531615866431182790597651416251081401222030347208676412873193176096092089441131388778296775699389995932715449061730481434882760660542418243287819618172284146503864651541816412558322365855704205624347522361389741526238433364164757420252663605762418069932578153157696822027241907038051528874536049347925145019193824673376361483819071043499252773609542469390805442526571415451122916447760070910651078928315326862017132705125747211756573605327574948757481210669372740686047974224968639401164300255431675418024075218506849188396423276471347502709838026408565423139174447889481680131762285686433766082266287352097658058010326923403659545120348523589246716119279613598305535412669999436747232704572619822076009297816639799931970770591129740765165826040358677508286186630575315132500907613442297879223981792079151108031977303334874692093906422391573022996452030761531165163804072643191663647403906506567112545866333141718385283033614874993984205718151603295528996974167127919255225702275924743831527575862590883265365527892479797050817870280044297557302345281138812098543743495103393412397939710901460034208615309153234511328969787216598909658379232899692724935477588753272497557487697250073689356538276874890191899172776892080461638242687316262707864889415149172818375406379471033360310104661622199825489618491496344435007426902342129794907537761255217578026994053862911826370347116491672086421056985992200690791659069721426203921223465325992908018896402507714139233770048774500438248485039090165368511884848874696626432310981909383782150730591253685113935225909219872146751235929209665739904130408926288504743849909671860967471452304280693504696314922330293863718771600300224466792195695068912053398866344142395019256112823619219655927534936265683594562814127418600021876825701244194809287653623259800091397471433153039458856963055241723339198007002846840739835034600438897203810057431237890494742930436851511307151648158227698264550202908992681449810476878967274309337258082054261690439280059376742079922842065790751278009146287641212316568447676588418611761090013249479119436804414423021333353071945536557241224072628872801353038257737481551571940578142212251520576002999824629779618474978867210444664850318386388120072043513696806157084704917186292069719035615604408109314176208603506152304996943856439907237656349497492019717966062053382167399481123905156403628716626348058503895409239054593523116861415772822249066119492538022490300660445664832946093810275826173620804284796082871338530877059312986170076804214531583642947206596448276133540700674385058313294621335426981258272099267202606920325098463120328013288673211341700642705319602513720674708857822532047031546313612296060701799836835189618842229669664775274574258193268583433988722229218165258683428404145714387605071800505631920164629632928312101940610444928548515910018524232819843865426908173494949444094956417628716205294986496537647078433731483376075223047649937086629880209521524710996526697650835768138507662073748108540719035921966933378654360288791302291322250234070919113208499885484671053949334902561032885534371672841587036532142018157803941976680713110967331140677814911883929514339669409881297880129128837998500288780631653448146623509282946385362780079236150500715876671066839574344037273976587583221782629354861615399491720103239601096456446819027036096053537907576440034493708200971599833452120882818310234451979546291036836968381957929385665044351868999235889887739787230381690104453205289872823145807757452294333242208174740138116006530376786459910512298121540135462465961077512779350311401047045813486970740059837395644882280679295015857388936804850817443845254337024456953490960154700894997505215604485902611236519882393186908695870664641096126519781630517638663490943053906546168489900008590034212587216412080958308249254556345882953868609842806536204069894325122102025775316688761562941915524182275457958458523106266513959364532354028582717142326332938486589617952992088108357541777620425294796501309969685318138010997049966786797351347454110636687527517355899444066838140414353945565583153695855740685795029004607103470012276096485575098966350390290296251659276216947479056448794557785300716339143083159005911005115178915491682780781722057659762484566851347574373338280002352337267414933640396621751768584148361034869903814860023831057382065330005551043644625831692755564460164894713012397530642223706468472720326832222597933744967116535073513390947733727768660662731544566061610348680611227711827346467593391836610711827652530918100876046710327897200131081112689229730990302151221375263128505261891539969596180320641912695649048644076098942740407719026944429225450720297334145346793373902479297905968800505519339981801456367169839557112344258594341867773519985944990278036158391930895892577067425801812115673721297640239363162714743686981278473669584012955800623767429376072527257922603495730536901825206552154378743583106279627541302268422736044751036639545831164304666842064172765168379717796453448324991578258061958113476746688341895012824376674582224316739388444783844889810699051127576318766960382789415464741099748739407088887807165541403569128085280406634945051979846682167385279662521206971118639021325059159652358025916675026841326388236182914903272247735834573976412127084617939600034715675470853453508180056419370597988585565383200310549957649087720742914619086934721566141025036300453377899882827356994172271144222372443885313722514247120199624274913974502739193497592419418681233204263665744683963831745896322211144530514481055465616596186670290006432136198816042111699411421536829191665805876171051449849001916531573679009617304174312535963177384937154148029517562138719454510670137557299252375434781322092186747928791063271876941778990099513699052275811942937739438359776986568432559187540950097979609580515923010125512013903813792139885049671265748145164461601040860488199721266050234707002217762828677421894536050840903876340106310546617190188952057759369077016490898863453658293008763778313777114571580166517205244951085673800856438658348097304985871658896206404751008922867474799136838055750807940188673184497932024433882916564730945967781914787285932298660986682825473213839836720797875391756044479053907967654087696023892451940075707728754557227454395547970012962078980691714684380863938660357636280164856202261844794673914379077093779449161058820149054562707741082595089600862512129389169713751890278400713414690078294400671170659474201179949722232903677462315900066571916764730078339447612607914394965441572795727130396397620987100623959209769959353392471204871661408168607514082873579409899821027555447689682589042452868715982299241414419767152394671379894031417068437206141532990646992037981665825346951638754635004827164274255269976158436980734482827281802911343385109415745763501805553847523975245176318203810990507109223615197671052909704160985607254150708728212823884159078662757373556069723784432253654208117305141292993619762328261011500110036675726003096551674144679558650574306737960679158596689577701051865431284700664800929571639155946342239767352856021262603599419576982587514710906796561905825447699611230968869525423667629355507985028854147745238052402463809116373402940196800660688568711413625943848079169620443803224003262332237483764945742172584421269282632242146252884287471840164076736396381139238554790434107684828818530556056134666852127861129356747919939480617121486501290143982454016156346952591265431513554695449126874211629609714593694024291036733625127170127833640744331944643373933955425184233722190974067588280249423507350754735566723078054810005796595560332931247699917784454015309519218289909695982107095843029654607805937797880103385578592210889255746433451414022666359428010419355667437048370054273750284244424261332936638836657884338514954363792657423728757511050396615902342980237284120672648027994487630235277238881532352005600182528380851685685572565850643138440259451916206199174329409560647262268089117327190058903609087495276937914227568545616947273198031677684150881729430753453130841221866066566300379151903118702059301222897068802041976962099318994088381571248723014443192260219207664194028752154709215733234368252322064135373124764829437023296243880650699795582081728980029443627013114871128365401818836287218455551248694614171129637382111583765215304583041713887494775940800698990483010780921400858961570844067561730920533398235017106590955344207601249262194275974804003423532462529243156577768948064971366477085460042581343315521343654616473207808983561170345670975983314720926443881990270245958899749279336061914900364366432741081322311977490895989545644918529862896985787245758004652952324062499276010440525538975292680165033748438673361794758300604448792245567274150304334444933972156969814892090807485063161709869419665298804591242871358956483809956019987149583702866741927351814771878292625943196468481499627787321520610994048610648709656217077188905532133843705300729377785869737434882179118226978500567436633448619642557716468654620726876916986601505672196454578481288247441067525336871513461125744498333918288226721116487678633936294077108480429888644192488169568563315725553574321099657988518496004694773238649768838297345182542314074849004251920553329152630846642824187729022006005726311209782347431416709740000864530467344517321667351839840249187499170050296464114254066888245563481470213243796705440264832095602404218936983941858488676819651599286753789209285322955930627130168726936352412637799398251449236799532239209690990015925021017303651206355503756490839942191857469603456613740752683474039319443856297579933137397582997677426133844810590428230458559196817576591739764604141327990379877081084792174303516795013533392205719397016243371785025648983125358837232375725394915459905780187077766255559095768196663745692679411276955009616232891973774835900581772213147310700259944677391765950846838895456778645811692102498643030054185101239795617895776675737384985254298997314966153153508299584304259684280130312729067930230695537761681157043904813180229984096712977535836041155082391973919922538724914526050267105471220828033997199590959483852254720700218937168706965669171525765723507856556683331098613234036260081656427183307975249563067879895878693814991280767621511645419587147086135204120563250439865421196912288289664307464453313766891043132913212319055058005938904020943906380270744992478382246543446920323761304984067416875565272280885600319313718249958996761988144340965963549832860591630560377010597101433291196993612107861828196350253441980041361398867612040899971903706732543183135802231004560575075628981925538058754686588506160331771987071052622388467701979313821279677279470415532758022345593919726993357393489584292112285070705028136382822357936788409386688560133419005281553946598527238135092886412072763404585939823853432278408186984709436007209168363914844441846541816720253276862954709904018982695104991454760342470128866577456041825141352512170999254039782225950471552137193177342202909528022951300685384539075772024222245256932816676847602528263870410615284395107804208309837073059117130694012132843251991536350115549972165070209735816115504312640999570466979814679476368125799232393556612690012152442236901153388218886806785091125637173817501462550885399070065405733347615859887279132064526079844610567347469467283606172524545866249107034127689490744316095968287980942697260432484238627457281906759809044574213761642440464489169093824427655965531397918532603270684270761565161996390378351846532043686203935275971114690406143988434042453875017673872630063925208522680646786823937091942031268252733537923550932352294667456740968215873813675766709984855885340130362992036874464727872230189194878179467209035021685709994019726789060946979039674773870898922678254195476247721272859344892648747739659741354810018457560898889868900173239112006153021947376860733025654820929335601793639977026561366045154761870910233537988847520814040409046332998195484688340750880840501265438071498945626208915655748913357998641010361099575088404594533901859007050035803232252736981959211058319956143501512963511935775563696363764224454032490823778189739709274995126672294475614702223681807316593969835257175861239685692115420089059800191714975388661248106008681295429029643485545551389554807395868130068182434521532102296690295905980523592875498361120928765009398807181660883696528337569411198068001571394680922678827865455140934238319996433024290801208160766089222749338876507789305279044126083516919435067166041824763544704824613515012365594478109134573943783493626371145551410789112472903912535376783897649634314889685396221805588559777595345808792697490545153560966288064974092313109518747401508819665881090316494040183473361579552678051558156939218835735981202233362182235044464297803068462081163358511398425084057085045630580726226604947888585343916765793527290730934176816053238562815891984697657418306552541626333952747437743551287085841929733816116989325767688560283773434764540905982239634456713416317586371192463938273844740335571141995739595631270852117573799901317468730465105865649717388430343287600647978631196709635617136227271442847111990673857217795180093790944925800846786807732994991751242010592802111260042180926634181739456635776418682780806415220956732201463852020273430218949475136927483667467548585160249087408278652409625002289606658428388785687155281174205797309337201551945355741506699314034609909689791150669724935606224204677332392306943471604418849314284195519102788145150084687546003129955568540014987865704589284936244203370888500742086135050511575439465043874381261486046745637506309676434256571630223222200237344685663997180366758949927585151238176075724705306178889726516738795165751073433203524562251903357355810470607189623872914442299518825354274591577631832194646691451560744875056874664483163483350701638281278793099208503062555167515722637990595437825004713015886206232420320467753633470047829140423326270079286368097526921705985644507041526764067478397580521612782315990494215865295019768861825705094233829191223856002646340287664262402662411368222622861287958070558964950996207562140541733189193524974402765300941720491587895437940488924454954147018788173075606863031172005935098661312227399415604452937511130516641492298501771562300862074796149168306855852343086364721623688795505526640654204172751938137137901714905918948791564851766421956803602260288620537397599551382466425222909322956881616782747999520749768119920019947003987625883559945547444766110799546923545351690807558522688624507795108809664973453236574723622430702061561865453943794469866177760773919689006372312640280652553203593864859578220593211410891951666969951440608089351382270522716203050690288188385585567611889318596243505550639654551357758218993107492398391654807873746339425007903452437746955571326420585699378333398220158943072969628206469514553385082214380311616550445091861817534229570841065581264535510617428916232701588568150920766620005505730465386957985121430497715593122876246260830413191983286621366267649615507662364735016168051928975538939691165295066006655075491858748304903805833522125209426366778844250161885206256284168449733727823810466256577610672026253501228328361839273073261223158078791745867144933519120502153280232301615652352787680590628121519601008360956728583638138713597971503809722043722362720722242327601568085357549934569562711013508114783308927550717445591503107485112059136353031862566202596846729227942024302702777435513582588397604248142512212057046762958321342908306849361231710516246316040457827288304247801036994421066849824241023895009176383776874822084317304590624882460628399812034992129687372027037616491180966514198596111033707727669651856177236809922173713505423656761901790114748731223306826331229117261588997541423634262705861713395924612876313919611978005619537018586169556773133473398722036350887561671647082643260947987440901385313647507593504987425296089734843060315988683139573140908937379692195737977355969789908466718763555880383775808590255183470270620498692534689358675257064119712128106762540717326695099411060186209346829707794563568787326536298622659599003761533225120091140255891545687366974313591201450696960753233658417304402023199120276222193767493846873678698268090721573180046184696501550007668768222507897547476498413163815838547834586630493149505675392216198032853094250182088123443633225544663151917307829836702295798591191230365383246697174972724961807423555815626489205717084023841065505927139354930061799001116943199869378700591671239013921358985877451780205324243701097084399906742367264423406109403624568213484137689629158197218368586118453874346735707418714029338935807373138210449410944078473429172900423135483706601850220199533759931714811004117067150546336312702842489840413965011588564141704535321877407834889896693483472227432062809116922842893983731978344861775028227985127053187271127172727422782155369233079680396914904381233017249533573310064524473567701726677482554750486231477548069905292407410367046616847361364676480914093701765146701934817059483932946586855000557141411475169928459065616048182739926292608309301553737533112936579355380534333064466656762748688965563736034504865143363389389726653047765759467742512644011396541996239458484563830924418008019042724607385850080136610988253389628629283480019470315966145216352316089865688271312475202725639833765339545210720113702113348742154341496401221073973716155097371920315575941227679578870760901684122406044783379303000535376417078674665885699297016519262699685654775745322539194256562042027029131175822049973781696334915640666196854736026774403056877652871309194456887342015775640328507480751698572316555700854232705105618226790529335082255302209353469744782340350780042427952478796105489865610912585321594078478038513789150639485067326946453770075912408617986582055817968375715669403340429926990242156324255326148941898048465529329929830381896340521451908489955897750558875616120845790394241903114353501506373056504160941283677097438154992543316349436309799268616845706303075637751248569651414947531683299471631151455245433750627647745465698030526280819322093712483771180347948015856690024563811355481128142395524253922428661194956976686398225710133906851390610818738740661981391172015151220585845681619771937355613026440495371514475210528116626592039461579039730067883639960407744703480501669663963339892189297863036659949091371801445512300959174268964616150544682224434250954618687845676159922630653994833404369234667213321325515859195221326894476889137792690555250121367883523500779367490853708368122515731222211168241207684570356518225964407770907816002210055982830830641745581364420963476376349621982095872429925596754749069629094780427158280736059242689878395367995641157820482062989263804035983853866081434623419246211408450149267196120469516200981707656918296499214132616097298986251306806660689908691132198878347544795189941992590149410353863182055749441289769094829777215527761549051554016490296774201808804783911674665476086446039440477723613979517996991747312693665839636315273685754043745724157280219288929155413751202315119450292140224719504030159939479042431966251000275100798793842353252945194251262666831091968322317466050287983643391576406925047397591423107585564002284600940622841701393332080172023750360734095932609265242343776114663487989422407108164560708396555058610501863633341381008089291817229194909734539140466342069917799918667381547352081405604841181938411552881618741092250885813943109694790065454177933150349590157908642884647779624173300267113254014198478784313476375959834729395704417455682456377794965936466204313096363589787916953570522973939169060559824312081174154779072572632527662435592718979581417271867395868443065579975089230230062017807904364058722012993348152137226323847126648448027197708878547941833196863146922168209147020268821620679255060851568068531429230323421329622707628497989315412403993023026408942904647145624735487349639095752688710791229896575860791566149912462991476600590457419354942780818875099520481444238548575832808198284424457464705675946617867480260012357853800400361414330860407051360610740323057679613263390580649768352769598801785743682258288686474124964896134426760222727919285260368252333119310697045801127308815819605388510795510895096320959596257070942546081424448697707788462192027825393086543062106488265177940172840551894206725528244346143395674964193498961423715450516140371954479460855516447746885659564419441669225382987172257228846327141238924779754801130854009315956581431241236882023566772596142199724247071895023324088587600607096613891494337902568478102234312043272735240397402465238004834031868960013189751911364150171155789729696098726583890874278055353005988985065419874473583661178782351034856165894451654897814030339589501414446294342094909370648034542948256521420930946475687300298832372051876514185614112491258272356986342466404169326578886880220268401297373347792223555090231962399362129055890236842659840264300651311790660127066659474660466313752969200245222144542974308431938694772722527295405715494699057732907861597932368690544038132367496426711343490851647667359760775417251786855565224303292158326913814248249420704862317022830058558621340695968580137515571014029335181122055678160524303375041693101587797161750546415924337179311818859553411735541139036686042542087286261513066804286967570401275592780831956453127641653344946931235407710348620152179510609080484065166257229192307729761975510086248603448526148812323453950025028259627140119529426988153748976474896808690716293067821605696101885320646950070518806276875715853838754632618724184539798976787014437652662547669159487762690630302599591596578866136349789897897085644962463503241039552286352779607360112904638878744873438995998248183379354922749643699474804076243999018233355053572450982491241116187926224803283601498007956005702174864292435519603519970842557588450257599152576842450098361546463162123490536923930400402373172933622920902713608584553852543395213439614404300106470377055488250782138487099818045360173611254098881108469517090748086677018272712664702518631762121292431895758977583680410073865539412163286454369749291954148927282646035257768964307715432276868043510814862469343234254976863898026143716699421444734900542939580936423889049145403933509118706969652691532073072546906956583024401108635242274437156144226775940853128452331614893623419190229364934302658899370659708064820941904954418102465671996871703706140148129026130562141867930498902150095784114077674512660580580944978532799517380873841874078756773513301320297929379094768561918028390593578583674723889633238273896455054619839873879080877886741100665771214805905211515225513839176125764175869376601099568721934981477329880304130712378764560090658668815100165061789237123037038596535577077848185442227684474511559760215686354920952572795054620365323219248214751950084901865361425725045549423613739912286699534628766018092833989852883662858295305403584699523600824393285378766872873039073359129535003451135031304638134782322377022235654802406397651762349390542479910702978217399129060720738135016056233057040881647646554971697221780046436025192154403733188221422949450710963361526368642784186179290459971417446775644900129879308330663833452027180100967044932605416456010915671548655231928748666472640326791136071365992342588787392845859844545590295349908290531629037131863883103067630452365371778178670804945353842234222019872287702425689753553914761304955159764867320231777973726443150955740829868478505069659447401618984859454862865242392983451380852206282470734536499526735595968979285566484597740537041165417454733372351225756543572848083200391520220714796559142730447709806772881980588386960280918661693353827075530176518321836500140731998282693182095939236818351524452847930405038167237152901809656795884213241795645327345689086897026823693912519961374504833761309544958731718732127340386655913352167271457992727473142315550484983132183161480490225271064659566156816985308788917961163705199527756510105700336914386598102817477464195125198339487796901175192310614717479082975986485339204210877491098109737417433343146175639986440784326153647458908389721267054341326771102070709669629855502341793356743200370673412607340737578103908830390676206046412943640647296460618918174024087441184760206686298208970733603053830646036368039834419861287062207648284269698504546376878655637078632227289689902987772336458701270406422754734081310557641113696319546693567033495045792810386110937547045398569460775241814572195636795255377509715759431036814195698153808949774462462845488084476208613308284082536741533530458413681064349207310356979846646181736759951594040471378249524397014282423989604286638890968348062571954598587901993741332440187329510535468291781799563446922137784536515355699168466652351202183271127119737609494168097744528151233727261678442612070024209099303165991612272823141318406094973660047180921777799653294729419339414824806301157184525844780816422934998571446730382045970475906187603069531924502360692854615676817224361458490185929870395265059427424978734660789033868605185716878183569174072824357764691347942747117513284601660348869416180921389123460837023480074461158163941224175930958266846394866790719055607885713598344029053310925154954658031043272468438897831619262615971895180612780728017489070597578330750419542088522105309689275054925918200123888096548418107745584409111067861374728885976745132342884939444296174534060512837362931290162188993697052577820883815389071427530541335648244167007310023538188709107601509960776716263754463438549140817803367124685623317857841274873031499999028564158941132962473667244476663469856290081714044438532870806353755970244217055756817689479881555506506543695171485146994911544988809558381163015506485780821231674288085884781068561233263100566605843650519224197288923940987156739278773266872898010294351929628311089001782537617002690408328677373685314915745205226939030649434104889661008357710088881438425084617260495109143011953905735663907608862269121338583091387346282798815683029087257632993148675508646448038079266734641785196739724387809009013937122478351321654520078988393974715004043753827723290302762038371299755235425029822292934246774773471142050770183426083730049120789788396836974970655826469472127266246093940941046123549618263089677482419131751494331643023708872904659110032405326389304541262166698943520382418286447732923015486752994943668096912012574778464106482178398757954613422103453454272117305962628789909694644629602667748306122055669741301636982500121314572623930631073014567190599456262801116974812657389808424606484465517870476215355608923596260615655818590370650657567134534802252027739377001487825971277942949195104722565031171644961037989418468132258807874072161993197447162340642360326799414547815616307116237596637426634068079092556395093357765478204365718720552242331050962112768937842180384740700654602172815613251383799644192781074339158247497297525060205027762010426742916755761919182971609437752623573413086941052439646788820187111326257033462659422458328550458855816353863466554339114515421431921780081141053423931914289454109021860129069014537196715664515335052443999331525084549076407756322914134012531599796672575271146369895012129619527410787004673426629768145487210229962695118511409977290205535790260552356775264135747245035122146631940047959704599438753111848297712466655747335511509977300995229373091580281104462978239865197258762462946147359845619716441583275833144917504474652845619035021805332631010759287036131902108569667661065505886756726561912103474712987671673169466496978013841096406872029472527467202000361351091644679542442755957075551589232763766564067208926433843387574657736352279548421508499979346122247804584097000878491663654625663998042809098884317459781259182223462957311631691340182297065780691114113066813357817069257275082292678437041510379739760847548583652502545533253542441841000089774183641824953753810832817841654988045297551279694248898536992194325191807119397346242894608271151510511542039523088712487851325062578088598990186178894728100152715077151675831963399576097957896522374031966310237575361379667269601901825821433014784711261583152599653993122553512982979917132865014370216778490701181941564259976219823657921692076202474494768194011974827101157723565055005438281825937059012461646698218944419695290779200436285091305852318599573322198239122367536132919507651047841334485886104269025682567506923784049602074531956532259850129442225004723425875361322497875918046608078636622992091293014771482089219127600671673642965858033636041196135990530034297387814559893567429446820164547089554771151321061819849351499139522555991077241433588624286811935712895604251720839533116609431012969364716486145933104840734733590253747131991449563937493820000843513646733035600614619050013288639282940206359674415088640450285575674783746154714543791901358565709712126030942970684770495299913225931709497256772970116998369060235548927977462961834747591609716058817763665383732980107896576877463762411786967860675830028516249204735638470784167545447964435951886734090360664110929424049496478384156715206086962421653497858484030063547607268198050871430811160632551649812157617698953127129003314094006340601465219408514152502403495332130324388704617756530179138250960791308844598381938476395817822775161640191773611448142888133480032604734089566258621773377228509960872545044488771834587874691835952137192400898393724061704620838150220337443561223370229567946557701171175754182382977875627749207995306066671604406205150301739208528991410858095722489530577339797104591954415318744724384756904743643190024193932472559335009420697530070937231438530490946339175251771278735936608988522054780310374828514148829148732703665104207083687436866888640195989900585114563057625789490980910595088482296824728215535304343769015570306738446062193797325798562177329925277456859718012846361633201379142754266416391585849063010154877901160952871283452847267911731765291605636654954213782702484024377239190957181296744076823979732359267142823194225334495748620640461652780759668783833999614392229821861054531000746383513413108546526199708798857751098642849278244213800219381368074708719620202359716085207350080541859818859250842309899567967914477669418735330137551261130666976146548010705457774240627776846720632622038541390477280177716229170381513439874758743780109008602361944398783796468780042793398197542017257545742091551841067753363683663436487272809607778674059549302969732409466213736234519000374007783541109749545651323047009764902963339603099828501098563775944899385010804294362362545664356020952291254880671973064401698349777412712033832022517516259838858399372710881350986819692562115028836042850300168310025692911477122562762107912994008234169091156632415780666514294446066783533303511361707809960090660350960429982493348439312398435964995222184198812967858703334525221658978420580783777132850964430066637317445126596666674145779312959967006917022349299668329685780457255629019362221679935697877254998826523387065311013501085853836487146014868687044402888468805230169726908498144104994275483797479835213407109663890957411745535455385309617050975713613937132321483725947577400747151652120389051039612807473402746158458858792664081713218661912409591375667462903468715836060610583873398330966675410049017156278763025516097769740964123808064403052168820509588656889749274461782488430185266820474366893823702682313803368671014367239575175513018236029913460439680613013333051467229172393743134296386816727658976178099174990811783505401643990649221498813956731224869223441080438616182093527452988768876285388056951923575421343808423609292791686182659514770974383091428733725077334031713232966537792136679753446894679596327002573725802574951714141087307986888362411731810494382281908274426174336329701142282247334564603349642327802725637442424499559261918482008866847542057349984604883020544256968285669908129681332007935565063901019663225706954555522692714374318419306155874722957952560722910856354897294506298419392175177018463823160071754363235907499972361933285937543130636150465440493924696708410332034242837434402618763202314125091071099370104964429645414091460260153501406117063730845539831949117466502634080729295264066302901861426707730338984197804399293017314507490892687363386934028710008210525391349630240165487610604551082562363335437587867475118481291243675905197355819216406325948375744355991289377664268292048672787295537082825399076641227108473465563595032641488856023537687032289582229248598254958090707957150756485502765464903371924220256839492179834408952649847863322743372178271117175324708482934552046785598665058350029280179766687982275726575737984211198526031450454196594637132855319495903056569700298654350779745289193785488487419700767733452819834760562175673718831776862115329727829302413383873243420142763012870859801763276382508885418524908708803247748995391839062899824193158527398256404721342577581775906683475512516521251729940230934023977201884464790629463128746149469693798974788451753430180012815921101728948009971751204900147702799221643359074392872510341626522512697606560063268523097016262147035370824714680199900282311102353874828633098567037645539750112027741797850763322969686935766528161274953626271927465227631465591326666021499681812385909110734565362646281667017365012622509781524816361312436307912790667950565134522705851064608394395104356682478571800432553051472815590079382930513422816240261451444828647414571439659795505335939376548383568881954439206545626950023745143581821037409086692196525722068334187311798560407475827153947250099306082506861932408988926657406346469044624761155706868993201356922583567747532962743893009793842441320548543346070145336647605285948224395547573920467742515837106186493921079434324411797959228330579557674909968722176980726999700001582807339716770556625762033656551087176617461286935398426054841841485052655498978751231895801778083325163101579033601142874703912650480850462865297263784391967355956154491637571982475883952439397369917689876204476277394163161787742006879953606869186669191874204012360272851716380839528733005730099497705789237742890138836253364913130681894691065406300926062530892603217585093114702335283441668327062001533752277374860055003511206062524705009850549072584234241328807759983215770648569331280730777647529861448832585022917478638221515139171160269737511114502456307329859081682985916698373753458410455407374309935436001506703660666107578040784831008535694275902932998494670229522865029462120687104511646388400135909000898561445357370568011535936148076888764503581208294681575156008045207900950883173851148581053698720715208376020420972074707889795440482518893066984960145448556289812409076101852090810674095748136602381436206880211474625683745066330714934594011570753351542819711363321379433888114253067096750856330373575322299953139581425427740356395773165936324660949025399777214846423629575323842746470867232656331830106279835901757807458798500925767269864973338095144713166453410157725866608051198522997940778175773567322108299587300880146485964482698000608331840016745428554927693284655094285118299814012038163985987735745758867101156037293515841576596517143071821854313596872730301890978563248598539003995381798847261661839620887536499621522118251685562607868223101020932306987331613748302131713575957866203512556460396398952275669615757258944163660696906746291120914599538939450906635859665861360305839741954972366253411201997649392655839234425715472406556969610323592397594595999142226675762071716790123637365228759429452695867602344421814863787343897692667687070428955624359160512474567397737083293585853548021400677272265499847090657652926122518017296638298345431476428716667060732954089746007342979367259132765920018850404973196982736828254922960192018099758809373380279505528848431772636386397092723954163899067843522257360347808825874808674113285236568268865714909571514086638077340935491452603991569265129510644237661791432277180007958685925127223032528137349700599290246073144368659306422898356779337027467642588650212668338412483178815500431425776603738877804251240869524496175731952917078226688067246739405326769311817526051365795593447362652546780406228652307041433071368695146515895813229484009261489141321638574535984116123590600822372633304210048679709108098124080058459991093199963783068739947407868500380859352528262405439365159237578766295075243458595117519793493631541479330619237869862649753097885980452250382841604789420448197497019791171867423541759164255526703700934353222755073697951235993473552592627719038216876930252420216530615496717955724748322052617632572535109019063751842657286855211890071546933397440603921408078843139922349476881026092605032238489637074830252902258542939953155856495585325132539183984869655512332185840091921881612615640311579511891309385433879613966211128732532437956364447568686055670283687200177276541035963828876667599516594530507561385364354132557892381511667453999443471143426840671562842092186040058496551639052570401246592975143523821458399250056472528016121268722449338679082543913293483881440827089637944867936974615548339094862822834070500743357650144104253918202002035392656669975399603606003536231609807596729949465523267119828266640156677379488783291871170933932701154954542727205922766571201715452599090018626731596204687062808242202761298813497365375610184852463593978137591076238626381080962420802785742050993265463518867825554325110432078798550492531479179281020415982012360714147099417372504334409494425241094143127559092005490896118978013413143188235941967173285510252330764762912902550006927567565778052695388978359859807422905884772499016028964429176436748620182070638442356267841640302160025451617759774683017455806999799773500573714893263044129225271481392315637924393794388632781314477519509649485550806931450518350660905496156837342602931675365153142795401984769108114551174683664925629379844040022260304239786609512909596158963896389788619994179861614112198637046848005136615701939812273696274962935216461661518647863336979758698554637472190967781011484601751505813828103001451634368355459864832998033549297553507437461085570076549045793318615109094513780442218267341376114359162700331202955744606260538015704811215602725251841697724895752242456098376072919003985511986266581468137019254808581875438794592214926222753025547519254735447767627515374999864136388790530011581960262660179846117118433875074344015745826221695207251255318813015949031056809563346643153231565846106944655294480154727413353819382109284449522259145279911240355794387020774277370678405946956682630105248623962531816614813982516763218593696876324944664697887911230827799701106373193669069426048943003845849175899048854865592325389224540520049401796995729224448383353660319995903966043494301170119504406804651758933824955504130243116868940675968808580102889781209146843556872811229503287988525903897636478479334777560783408478362218950797409250561345787077782928587163077939163718332314261405451298790912089659937365750082989627203769723686694987565548013632420166033525303087338294644389261802648135505790601971622324488575435649522605201351809600607565171792126973060916067678909174784615345168909522525788464347139519415742730593943845812826755414117838677128324102948497030118256902079876093702785985574152615893359673586010960736599245112467603524444217704106791577989927578822785739965029634777264891404641993835564068157202246023504102180326782684727821268570970737321295646308854153754153596115497869458406860335986062445910713746734081565201862501827077089082135237973441418746370470983770510660743511594622832408344756580608713059934380496033029683541246171709340111908941613000194036552440966868454011629444807494376741299035295513506444728614091854406922832531361562354144459730445145845696879893894079974837238653596644958812095014348604336302867231999211905968287241828254877533119155432627684539789435955457019432883607234415751543229248126025851193353939776004957135091777706942619527681050087171296670674287450811721881330702998432313823229508167651068687406096424609556324476477843522866971816088394570694723830655900896188719875666845716536793829839461709427395662834532901178427838492684513103724320490548523742964696037189582957966106163845113155741226308205831419880311669545413989272798057306692909694136338361403587037011643639362506761000505629431555814116047834493053992531128124913824161563252773879938492495562063699218561546685949913975830524612999911640392990829969007594414367470581771049970755476015065866540098763131850133509826393309537280427968932595993911789358381782406117399206734801956656403991405593371396183691949269534338017420888108546607858197843830967863642357267391410291236894597276651978606665888258002214790748489344269012559165386038432373441199616131761621821138044187764197350387536394321936327947200449644002832020810018768284341160908985062670210798941840111693930432042463670983023139222921033922068816983701132450646926428577953794423645404870456469469482815656538409546212687184460652069842903048936789968302770086638172872664937257748758990535004651209645485714361982214298815898894792187898388961649234824730362322938649273142315302973635882882723261777570257492622924543711434753486726807206882568796954433188196545548117824603754455245139527191349135360142630531319989906342442589874555393671916761529601737518591984398985192638505942439634052749584812418351998126907820159625853388350983793367042198289795274714601448528601642563284724347955524898302444386296440544211431890691683659541852586326831985028535789585442288648367737173045689249035052719461854798514442679043621321289618838996825875760020419808629359366845087054783935096663958243984477486600472806062286877526474616637860933802437558762316677711920946548157436705522138015975434788078134087747495031575931944565388000073383706692688175465305624031218331797604310658120462615347151957753817246522789057366539872177858970709873109480286039539262719572981770404596397200891711704485905277599388947909395143522036352533662901767283652908720506213788720907417620631545394577452560035789509940410179489462183128341635893239518445654677920780845571960748409264766108154252274991914079540684670919149860177215312994373267994126644045984398547088589493569367662450216042893435169551367700291471073323084285136478021964524855563460223768575660412806211035833986257471659886001106637958731197712653515610485928855258833604139163698943823261085707319944453353253368433666217217495572437781540470766306214185006928437449790243134207377938870760181560996963108150878410811653780549132204215383729041051329586981752871652816786100553722026426614779806485216254218006354481431232525807265595041826935753532405194814235916166322085325005860465644065646877686292152595203662558140808453545577748633875181566772374476446596935101601160307110054188311729197652853456298250751959150480651698264749893314856712946048038071247796144235493620698710556354890575254742009866219178919937565285787434389587907048560037077232264157599877719584514241903794650544306451346593492396508786459976737794908556074502063549857895353986577244959427507285797842041370619875319533797195823194968723350257095948378572972753791023379309178710441552381897313475577230344237814132978027592343386752174787365484950600095050917309003024589965630039318246051012135164300851802962926625429380650543405919703537743116011358967964055155856710442411718870276863650572188575547603775413139209045754686836438629034432552368025165458018563316956972324404749301764214653870102311266142808618898574711468444075289901376432700418474180011408187575692109072720530485239901041407932273307509877770066835038516351004779349340401185950497551786967750081365175522891105417761351349738137871729627469661442074440781645185543569331057471325427974118013448034420031043639969549597226785286903419004421923597229148772603605414060899286087731323121721435489345509700555167128645223485769982175151535329931970874019472475160924226992435664949780533770777411611132450559572518132100606725141675562646346007306831740192912793346454423134067217464766877777836381067035109837208247033416601207560124012436961167821202477524898307874521790643744253943643106304442683408791528284139241109182854630791217159158176886165531718803834384965208588393300279011704782387892076595307117830766168354471275573889699586761126189135582250543918301108285803091186810331378309093019847616028191241439820012393971859974115347252682439668655300055423289500629114837165679869202818749554067639010209713060215737507797692226749208704794435601904040158046675495849001487038932814200312501897535311895754878679557979313470600557767116656091890854555379228819343005899951339947900569875607520009423997148496467006282821212051173773285470642479843370316855400004165939664106424394225093542612255883443252015310397285620868996847320692769696605843793891047219609332480537342925692834110235080952152647863320790357783212692538812862021067803676637292030144305611802587185159102059928065681772000797591367703762628056922356744034370269256370080661967765717464626568280486063529084696846578808822802083707450126502533097802528103153877655647588302648749337677388210759071704419289203707752341461896865736093317898532215699864508845100544574279104654182365529960998996158519741148685825285640119971807471465739755770334646666287677559931953240431613809999915743124045443577136232881068092698068577161750292198872515247829052456670007367537567170141911430878285173080874417908482606537173118833050228879728732004318470496427158428006857893147795497313688158673652637689245015527351755765881272691819176373526946923843906878477416655670390335943061134310449545584241331349738752916825184938861946648427580386380073710422605025552001020768283643445508972264219811376920283311629801196986010525834938345362412989968423986002500981516429890306321677484948558970904340650182194230529036852838183509445075727793846198942221779817378996233271008598574895501427297472110363846353509510636688619067221706805663163012412848274726560924452667731415529048366426650715407781564900288250662813818827672357184333851284396140671508334285085323197141987773451293065683849901410319591070436684659339066483416442290904663070014160341593923122958185240266856509601931910161952644194235790354221775662530008042519518745905383604564804731823620768768295760726060284957269124713459537340260827608800441023888914324385507395189128168200713113290566150895745553608937635752588415027784600316199460176207144976808460254528287824668834704612105686015634868231413281051470753218555577684279559498073994783444184102936824149419064092843270551388259142975112775425191338873625674859646996916435449338186120827857533310489930034270605597488125304158772263869297965084606276926365869242539524038188167351203125898634251663517533616366616919911327457887343141540911971839351644150120508643138734526856412046403887777406093863026969693142607004693527015806925928239929319488214785621449805633538053464980417438466286010064072573915156793993967613423808374327882590625839441217682749385735759045142593050034731336646398493955532510220375525210985509679591327210446989135410366493018295251989775236394374240493220418148837227771796374992408016100450428162660474203330115207001855082060664774496454535333867400861445933838230647724660443272810470378220981964605222978822437861425273835371083684422673748176682452908738914516460681711342024601383984377115765292474203075327836993115636999618107857384046245487425851878605627398270533419233615630482010568906423892303811129555987430434084392379472043355599879049252564386369588051631073569187527549549635487172642833816630445004623600134323382073428514092941662783947767248459214254143859212693810550143569219942700013695811546600451979108125701507231216968483367692578063207014599435227816114359618925685533579098366030188407460253381409003915253413795647326477789660104605074755156293965552313500688756167673289586745784474118730251092935184927016199926757930543239173582446731313907833496163939507471671081264730602426203991481936300970317884607495701351591886537175607839231848829068073627142350112993965481698048530837268827672452335559343810698844409528024864864281120816017911952752531064242908981460006645956337578097981163370108531933266916860381096881259644595288705654023300429264541792608082768060468034658710058605434092535244296810960088386923066628684895681230517066224451877048052529003124093523839790297505452026134898993187407128634953108756229611876114505896406158774109507678344059172259286423850372706522534756722512215517492758929793554582179963947834169470962157622905242836674136069099103494004016200457988026635636678665156840712319287049781904750209546888030614614040809324600601395895014456561119732169796302534341642177135929906226863692726566330346998153210146577302134991002529585187005475873638094203104421973541252958205187997660786737202471352128601837035477154663807589716380079764814592001165890515237324438707810593931215164908236150020831034737448824459421466425751935366617321908641370508368636603304243484363086604605304296701873664650710675294619172827681381750762384217114577054401096054124136702435449685182252988904712412217745272020342303714527508593407423889555678370209212751311672354419091591414365742437829726430340603972602870796876426271729970244579334496036480030887558969936220404129820751069468804633480594717166280507296426591283311434439779261250437740999168049523246943331869545665534932347095817866792933013233346488172412192216902295663827565397455727839236636835199621994884141968090348011521994296300461921712784297871170841073549303918162413230182829469704076590759514098426627362384139449168810194503115610072063508569651178031020163092622999828421654116852651506239939931526918996662702066678167613905294129966686112020770932384912166469652904510527620605538703288273495275122333255204469017875740200946356994423402993342356698178621904294987758435032876417825587720868814581209009622828797526755968647727640297615037819031763308666104764604280307249382388715820187427802456629365453517943065681764997192339251912536763540982602337552833399061304431490150827364119977785013688548033148293243462847676844573584566045693308530909836159536135314472591948406433595017299473852100897765078572341429549603024746293499299319477221514809669901331018384022568667282182407613130266823344414186391022829454671670313552103162808300018698376606624791621272781691509484109950246082832895792091757119059787569073495279058722242356652944552384611348151979024766596233042395169043312652312625815197176822001321349706079731083218052187848956870725215334101160326904530707058878029653931798149086211617657505844574760178228104754057585352756595855524573264846715949952723805775403138810509441226925789863268195322382892888870159585069964860842386254462387572328206790735058013447121860422058749766715368553483440432800239478683976187784537934330175549665676738632824889592866002305034335479689540876697453456769305291191682907124571615628449565524991261250155351186182613387762942026338786108872307341436618551627604064029126990260101931012615733997001615072639614483518179178980385520624272929039487107349214550453788983847425466216646742332180670433779299214227392033249195848021164085037997560704928773113987646321314078544895960995839365893960459959527439737391917535137772002664440728974472527151679967343305290436099143092556594827105043393340315419823509387984168441217272382688262267291169506415683411229628192210439562511473021130301432357073547011166903639319086632672246000208974727151018847990146936602319025862834151942611739381832550059243802233217650627226081720701542707016070551071296505991014716799569067218969552436441140341601612518269648861871030644619246315340287022558807259137643099958907001588294632069081322851275089275494709876677580880857886938986940438899238434975591452586519698050287534734660140879623225900588619699619638213724803236952037295143369702349347785971438669864265032864920033003696179716506251661084746329836115120482646399577911547397872972813936849705199299374590219411123599745220400590976951607265880379054608468535905953442009744885264336824140610238721539946727495826424042737276945928371840911833160548812078068087941960119766925471015359285069852896234855553579405029379838038890120787951619837761362120767715758923872576709612197065566557766945372757811022797476686715707704751855530986379032250812959271718871300583106933005342604709374134292796087689019172705278061668750125836192506030896884845945651129359944523589412581069605091353151517783913971121443037706213848435395817501374772603195823116272187681048700430743141895846542938264541622668248113087058375342569680211564291547223003444273551820018635875714221589280810112131051508283425799727050363866676849607229402631423345635708764133008138428471515269000400237435843849384553920069334106293862306025030719345274082451816410866598403035603254424525006653570342481794192129135444406146191447780249006963918959499299905408964381746531513425597119475602594603294239010749242559943507275865983986888423109585072081173799359229228911385258836220036400539694132497715350578112136279658428074138405637271117785347098576256865566093753928243305993228219669969880529111352383980726944200743547208097063704828897966359901894052687295106264104287046770713774684702160477493403015091639785041333487816744728854484838441673395529415040891719950392540722770305585645458935046930725236212483362288274955660504239822325699249956199389266205315573229304393138633832859472077122250729577048331346062465723824584212316453970647047461409271602652233452804850483486172553899678611975538253027990199760976238104832324221314307649870310552057880341861074867012451865376410329968909426919638681983615683477766300060705911793246628290135749416884194874812240956899684299842088574644489564466555818941265104865716528048591873797239069517209443853667324387895908440922612619417448974863127251844213492884475152053017440781347949812918204189736543519916270348210688980320464547851818215379955390467258958058545467755284388145219110548185378739174485529656353467399295709283367349775452155868799706120815093561695935596906988360173455604910757220634093249372957477245830253311562919561190467341648238009968993626471793277425272199383163858118828399969214448945416454829169679493374248540002119810534146189015746664415327739117146167478416659648967466992384918767659478096042610018969764114729211879881835973217411496997433904008856004227370333892212684935517393637818093289748402533545033716955902229178452907147252080082653573803965986055395585751710951659065449209892922442263177841280971261867137995114632295087509594222643142168894571415622176705465955531481092881549307931998735834271376602302136365569248959177505162196616056376169091305456993698751808788397281520950396246295039829647611555127641151602524807217437981468316919862314387804480426912133714976191526231971620055831097680934339241085273005170125727293387186255975166303769386559283557312966633537120939679955389918224319809708044804458272778226841452944594787209921692647206444201728354785140560734434495507901802114386506989370031308331609818227649214521191401255061301828683159075716013511088910866085334551069340693495053836213323228851043271684394689634765982057480954210630697327057638532672040648853402792764542579161697639548597123491517271146177862071104961569311805046407302110007284314113200910359159338739253709681264602277543028984185449408368944927172743359168820886978625907406940416755758747527263814552872012081582520314294253672578521574933180296464337471082444008937890423635657969430403068440123697203368871626911216143865863557261683420658664518753135188367600448870137557050136440004958335567753108041900252999879989341174946656886036497716747498132583870481995293091808312956388369280811390581023289596246118715918662665678677672247788039202640357209213864276700532403128331721309648253484318574249505038583727975416532567056454025548795702288932572335751633334131051633678148677065778511775459952272046671447503570806804783299720877176784298280509791009960608410133354475977815393788989252799788159298434860207488762693268434338493932236322288989314837268688603071219577281726347824209892804497495687252934801330306772895016119521781345301717389720173273681499285088528457027822919144878176083954337784053045229064984709127061311280038074832658577126548600045915368993032896744850269245374173034521832410674704040849492863845677691897360413530731768282258176457284378291401741010624669773077716526779015233433799924289931021880745501721801542819492280626955894271102112974201249103469907304628164624199612010367830780472608190781126008745034423428756815696799140654491665996361507139086000261794904151037613164170747627440373230015392643475952962807859540944713911362054615217712714311022989478862710550909856761047752344526066953219442350482019378303499681803328323200283104898422507552489011584196712837307873463824391310570437884213110081550044477125462810421092314605990291934477605218617395148670624533162157986340830115876297762029875315683461492978120092715998668701105109680044371264513447820903011351878404434311054902314840951108202731845115925324263121124993834446982936597394187241404651428560503377805658224617705273972272177312738399636081564381600049498999922578205940193111697741407332574808676085336863541586128282996110710362603858718402640751494596978409934627025973965926660906376475325336826888220993501495756057209138682494931576305559716519872219642597491851528168940753599786867295888108960969467854792474872348752976253151961308282606914074892777493032002961056795166720337430223796344422074756746821381532548933198251643296233320459757433916906164445404830025845910442924047153669285364702739953118320312005158989370974191993754112382286388529211917560482378258603392200213033530997466863990231596931288314891270738643523099102509100524382739365909073603714518105828451326112308872607651212940130063327928492716452738433875339444310661357269555019058735888484664245681792899015070455383035559091096996888094424171481763385164195781826219116979229919452277722449612675851457623746904707444775461239197774184332135506609671407252374830437794000513001660444975745184866531174040050381839968296489937121233723045005281217823918407865085075140616424453827271819095488441787695675758184588998256952129537245061407068438792087486365452161370566130009072034179336460208244745876937061293538121177105644385479393776450957485298811174022883482243019815730029368695072267225871006394172497895028562026244570684477072242862855761916051451838725431757680171827262657782932365365295318307341198920963800022451306199575495588425754487239875319498698551121962472890988571572030284100279802511276360035427728997497825172055750571655394630703557646546010698404829749153173764463605057371796244001447488605027519977288386425906291520818111775070884093018819496390924649575032967979656486961731555451291946992208664557170531358184373781311753164192486462194650038079049158444520214969586267545133781497172339520655166401457949083912424769932321891791715971798173947355212622647436736110804091372802402062666053542288161681304314470047647155982213443358441480765352288918203327934044831980234411136368533467886777643934682999253650103010410733095885481158789540400323253735307895134274660037163098002123956509591598373943119131950150788079790784212175474510272416161161521727639515557260743293097660541992202508890917531055562786417032227639686441461993492812746299628149814877532764025102171713283264831622174804516231979086764890118599750424627660369530462509130266632095418109479113163322458553404359231714956940578221850503278507653123736637951465899837198207149995040889091365214605273133231018556542129496169728191365388496424818071699698271930006555543995297411296383996887311761296049584641392159647368485730052315218072746256803675988674952031909472137498495964855095294845781644890460530158875364295124544749866646912555264631346102246807985997164783522233166692304398977809537758188143937774100931892622102659336788508858761935585928934007760151852904343996107247469745701175046516909027932420456442547376776664915203981623727200855402727740309287451721276794067440554938320515493210323561239392485929074211460078625463401699652125117225128219095862987231496273855796801705747607094527563278068390280273848634980802382883612571157258621378194330018441816317731620526097716174213967774384501996784031606658370951883608917521766600313178980247905560602484244457971249364829826775033209280495312646627995312957978865182107015490243903924905978398086193774555400111439356148089985644171357067558793036059333116083797105392369882333960211672947048965154965036502333162913531573551723068587370277873691987416812939927330638403963623966271181423722145739116442291353189371183926287134825162513906296233017682843538637008396496016019209835272588414787013049682793433398153665650060209197182220769562178510900842045589149829246100599113370907863844826533242698642664501810357263896800843934482673184648835961914400673579857953117023834864167574701904965568731760442308359609814524030225300797530622666902312877103704312011248759187548064341942176240154714278327552142320112865767102302276233503392216767047432886013691335463953580244474390369254332497371253738745001465223004667132682961612879994142062575885969665677295759969018981636034307361995346342108652610778044948677364170736666990436267180159831224888262043986470011679165840640073789961259809342425475080038315326124410683152722927186393116938062050429644145275755985946508854632342416965860794320632932461643058372132615991533556709192157961353064365431201083555960332313808061048408767221895456909097048001359434049431522724151601674466396593400032871422015987974355830827272796195624112867470546625607865702209050473219144357686441004660033467631920447089497898936271222893321540618236673142705864317089482896135468428433021837457245915612822604315117293671852263073419193847307023259509005011762626455074674300487595434289700158573112872812748192091124284333889547517313350829416748630259315918865250734358369863092000733625511124871614808621336913242949499000713831941562596136633925448356654776962950079827635240353182555313112910092879486765622486302691721628864357658188094345722034391313871152910649485309811131885879879734631570590524166118284926672277239623213738824265048592241690199862663580761325436430431842100251387005219002143190341875935915244483535999470385376599032364255870628203849508043148657830624700838765294624108049020716631226249154250303312634293528945545645021231786684610820855431707723522997208920801647836090559708527629025933080898582965794653908747389529628925486365302196328673490433232627479561431621348963764202263645903288371299335865536092595180029121926520424781432289333946378288037572138727348085597611779908456881964935254678581604691502472595681292446635476510172207002764327111034437474240780266308854256506604671571077760359330088841673298077686561258982054924956020632654382025638648496375177657059289256450373112293094815984861954854714981042337190426238956290996862809541151263474990171309824717692312490179742280640764056118641407564181508409033821738160755950933630313565992929322160847204114848008691613332892595000349713013602515399736015696114149516657475916990377081987083815958208679641177886494602677131031664919816949093630422667407973236813111250211093772539573243353003975899498316790313192076305914935966640339026714039605775149317963973739894102840311801628595494809301135612224619372185636216922302321090816544656260440518654519762286583192173535787619420302450902554786782581634709287278474413373100335458923534362015324129081854300796366969533293863711665691057934278706477618956923255097160346390425070726241991520824053114237985500702996169282570857092609912821360838058088608777087329510156506730011322586076503131128626037433400382282708250836402675586510549081279763675263137477114679564949217406439977023612767453884738858626715549787868950640514850972291677556124729045892934386612348856984344478937721106888683072720549200410990554117923135711332796531342811945735669301129794512290954119589393458386018791429704465695364524883753286903367245317500335723323360959798085756977049194845763440562924282487216825746591184482093780605401998222551323063158834150292531746114904120790801623098590377418227682908366303258097586230660836966009179226078901520177077904003613136130862883850791319867082291120572320407281208620366444060125625996225427835132002363704261324239155975043769889983880379076640588160825891155322611625268346789447933827930412907131883596811842659622265004436947231427916325628747186649359088634654386907250838428325418043547363243457257436304737746480988067841464859958216203941967578225127992609280599418685837643622785929821338212364853569794169982560739936546353178938928682827097745377671967626197915498073379562279791529642801521389066678193083129976568920366108464049352247945950413794405295303108562247599030264691147521057176872105366450017855397660362714117923219477194573746823607234939313799576895841462534801284973163555102094385680780096060227024835419307261508161742683637877428070937635718974126581517040206859049401306788497578324011449780341861128077109588942617329314389667909759086978414809097489739905826443658443164958329846991568062746015596853382888767868589086385741850522735850736117390242825399819573756347691230451205121740888092498648565235018834785836572506645676500628408390078709529855762770740726746997481171139356917699142565363844047838596955936428300006948863526220421784219794030184837909344055193725437744176586570022789670818261029477192166912937950436479163909494939812943569737015000440728545693628666130372916456958020742682519472669936858969426246542274390445450121912752211221355909256330452716832514294673161106999603981692868501062383518103035210163962602454179568842102175040317391749931615483592699144355754332508608462230051459632550332132789484898578674237740344232463131245031061993996480907284745643408534784873360659059043756461989695532027498606922280183292645624763812476084298688626926939864427821993953609217639970288296646346588442715086249902524339074698653380099463215102422672578854916411013699160011818663822585597354214879618240983052481661109350395874519825424790608098099204693991065295988914415174824189403165862490968992136514715733350210030248971146021248809942709615961742425597251349557409453707322057161232693923823247422573088640278850390704512671535945387851464970836064470053895367688971843360905798897585688072512640384532414632786402554578645142031147210091517607359352995393057303299996207553705804731515546984080312575748217013633262039168300678013733437559230020108939375685744430991222960838888540629954404127459056613838071533312459361226793595502288813590608045277371390596587908661604976381500707020451211326358301989324082078834182713404747138893497377358331099636431926983692348319477863807078679748179440317231209941885065928222616700170647632599378494405169188062023844287550496726218903814533673194908821628121199062558477857840297607413985476933567056789493739809170760896804117087422750778197987198368595411422331560528765812705681571336525300144792261287171399028010636518626157702316148440663315672367558257116035880883026555213561975028617023033814199054371984795408127463495732037255410679733368654768814601637216025392447230494402851503005593721665074244351350572081008944258308938530097793330980961909611768650530778673374384965888882546694175407065111731761897115471786685970385609340140276040682274367636782253862097262482643103477900685482937588599371344519833258462714261968775751138691425182562110995059808512469330763609000649331011509867516241524616466638497100552104638333364653286443501305221987081376890704350999004417830920232394286367579666943523757560167350592447082616665011340623218418831100318016795353529424613732062362478251743824011534648930711327205276158796505449948433062532289086391555948186509528397908387584528979194969195632726223517553540832717445734266162907501717408804246311024322263465236375055472159164166511107221870190760540537414831832708971754812010900883552690994923227902742383353078243423367727168081059371370762038156964874647341733188962780729359915693350000080426997896939880334515405363457938677741861985976591105403025630012193063835249294406441521779539307070953102318485091378632841626803309186049478195814189717455264122690995115679530993989250336172372603719643895947481206477940041148188693403380938797977046624783875483246455428938921862048123669243630303770542624668071308406969031173838256311652864733540166289237922142714593646578609794642211393442485718505840696887033995873882873777789812258483210251248421838963383111651952767744435507433880190666952392636154191386039116995134186757633933062462535521376617521099235253423420560748248259239851724147248855653234325590339059947142427714981378810053213023311657560167826984023372727361971899788355076942167364435811832601858236242578839201124601333175170714642071145175363751455234931680458312147238975491563808687644998285829950721477055656208438397357482154387308714793711996893287267419353913538154643357431463509847577107491324508261650122928788135394114161193492634026768653830691750422889710597962917987702146521316555620912548429359332356136643842949590507554786382633890276169456868690392346260136721344473734656085548852746919064968087437768632147044693089494528430576297794103073549850189231628318499375666759548069941662902703605739885296858066426943747368380668539511784924401593711163440444086242976455621497300646521720690856608217616258731567860366997492669766912234441156821730828499086526891175989073130924996148275313007883350809854332229887026764639425763604513619652779477964719644118329076265421119341151805990082838719647756301064120945303331404399730261947864177950984532325096636235187556717968584634750441061385944055098763848462039296461659453287339169906193609915111790814068675093939159101294385082306869767407698263972327745639176812202231543178656077947072772175750806827680265288339623280032534930430949815007206558188171209167273618840857362998797495470268805287307574880208353606325154396631695732970667088114057256270540374621324633563600346355667418328710790914955604118587374206719858097474472457447194323824710399939776714180828215466170988503595426595905603628484349742471437433893056237530496417185831303306720284579790912162443071253981743938266567644327961737499027801740831864058093627448219326313557636663269729046099900074638101759463566105254195285304351559437121850221158797715913859261973864384327039016292373790405672812707292553734477252072466112481734871410452073411758960730595375674892791143847196749569249025132897072107062578348690499030499017972308932354820635391106969440890886131812179142306956986913664467114970302886984014879371166287323318859082019682440272621169356883167798376520597340311739701686062912116072738257149352945652946445775016288410153685053929552955697496016199536541324791247980716722581830508392951537457125407549013579901210921167812144866195592364643757550542365519491639008199863141282493875616091615748124620515967152810547483929100128513783352764345775256180824406467359294784990901529489549173718179318889580682810118903017970562825265664214425710481750715203994495468385669464557054593766158389856472426736000046459374665697075817757315709073076479409643676766285369466648715628068028172501451890229022488445161821386679293195496043858740847044141801460438685615445140074680867697852273235085419402790034522750458522992752217813976332847960891483439034347596810241203936004592323001854563063352097313861600370427817775347415838213855157023651123933734644886578312003211380533485456952228204688431308107921212665948161399326686287249717317010553657811945563320777036809697994730119455659518091701462804729070264421185364530765782810973634277594099170570328426061980899479366869289137229808280766641504896491230215559026571593137731939810878411157805332341298829136021867682207667058801354875081966254960522207354622534352512006980549925674224931842138244977209783391100560112211268587224826301368950795928537071324212899127846494343637906708114307296652751073181504041737056602227082748530263290446474082295456943063604664979115514099278890000847569809259559649250640585284448115131334633220443304897060870209929488004096797907945804189061724408391953142602387176992872529788557004863126046005729530031069405695990873266789603562783970476166521196950118220237662390416910324921013827988133669355142624889343512720079474465834247687614819811396503921939770518262691689166024977180839696461297617321931965086250527077960245089488949781049258511090432569060757960551926045844691693035876177152396655222849805086553247792565528429280163700685689527328462318186731239861924590302488779408211153639135210044576943592736883313678736963293033680123458682611073482477239095168786267814338787431162065773238553305211046097432410330643296974576856084885425074438546020609625091024444834547839384742758484104090512821822489573245754637107698735003075214067485160367711910744971775982475615891697141679484198250862085868970363722235433411496526407385864879027377965277184009297960152521329141480645072153693834456587166355389790154402746636558419499088998470438771990136755611684126104091082145528670684418504254377940541529025175805629438923474495413232197989746782773381449886300019598031882740869791806697545381864182282102781908890177837237412519347945508672623075767402034222591044887436244299335312597124697867084948857460898548797103426220227384903630276549577775933898573503291140952737395592241470509199558474669758285819263161113221314964978107890147853472321341716485552330465686324410784238787506918665785070176143859050912561666309789959577147302843940169908918017101961051025248205168685978453416902915903300624849940197244166945664380550922798679808328308374038271823671349240436613904373298037680147052091001568428165380517584206051271791588673073079622010981320812359707994315859689833020839185729843032568230989108420150624241243521541733888007909344770604839494181243982156917566158423880521780602692881265480416907395999115541236568571837781346190561865787374027954869085032887079991442291208376245556100805117076788648028299014512261454975932596881696683201506406748167316223402055542835065788938150865830658867540454875084284178359156498471738901060843958388235574947371076148297566771130393273665203307152043593505044633849915703674069780568726914824839036048712023365608280997481253691748883651633681931109822370376931516702169003320521691491987270738725804401335403083599757828023100913076078823950481963767890187177600567112923858275669588887607909588204578228683682802375805980761461959819221976298150020665826736037940865500563197663940409719424204829371088278441092176102193276871470802241380733472171472911259764697653055069141336313048010896147644846227700317890610343693972312500813704947618012163680891251708159563713344332067961117684199753341852858664228888007790952235792793919052263695080994523128880658813895579322678706014914301265851008692358288562944562480294312117444325291436226652995854510514971481807171379466717563311667381505326043609943340954956310808540848862680317636678278117652146374675362988413205855651191204357765242825486484376018306203957827365904957528455433907712129663430777431092214334313726041944743226749237499391665550764776813624771390415286003262314351576960154657354706705578416801727801574795286888558229479506307855444646701226664080761671084872850856275327231131174838043296453233112564298562102761210114818494355109517679914872847121087407683088880853688372080755902245217895908609784846103874562479363213357337561206567101359702830775179923416999482336726905329893297072288871465343877558974365293325625689978341769528651909143415416842386214602413488622606879531246603005101236612434391704653173971844285844613002282226010949796182470286709746165335270249818349175760022757019463241660853836434820624843136851671926874515566754320787394719718969866114815029626589000535096856793468301964159727804907368124205779268769754824350541154324896744682975227814372896903495052007699901622241891127470411305114199548225896345643307609653359690056302818557675698577720118929677107694136397163285073122876664685366369478035617107623750816843429837732528715926459804934005269838403938123484933790852109169891727816281350318044653132926827225300149257289211512233658234293502825463627696641465621837182116670621300720841378604587481325924875666656058776564545449262459677372137516754749848011075924724337404246507649801756559149417674837227990760295154945322491940619060148367131171394902058510472768434978369570302957978650704248976307669888285022708897266279685454743070300991311537723269931452460707923276549525625053509394980930649107528330275523810925719035825113590196556500968062556175079346293435414080197597434958393604272113879845633844949562379021123033989403505702203506805270545852699311747419740849154996217341593955746495352252995441935194181908036699535752652476808502891054504290183830378566205059930713253613262133127183533003271409476460306931053394037100748191771238204281295339551268994220934458054394691024955134372782793713014281728914563603032963384212409313825386027322893844771913917260949346188353243451990333290230032712105887906944629736338592229021988831075000547264385242122179572282147550339735978630196238853596726390681581872248826354130303316719211298820020482540921936854273868239343038086182839692313109591650256232088207280244977286466405828782505924874774994405909197351161854764634229025188310152541152223842216963566527351641723150702687685000758173382556954371413256270325807816794840960789067270404285915181530037894529868387970178970048270773219005056333561065766358105554732329731147078067055018628407530688171833613929670553388642664284484185459035400553024931248425314290981288201082571037812853890893644851916482281956296113923924899441970303799842715772665186927885189349427366350978807505457853246978341774943120321800720884404301384020279536695354128491624909486843850737017189300180686903513348801599091351894344532636049764718836059000592854099799886078277578170014969665562806213641110972373610345245910152923670541378170766895146347494640735091374203507174853449002935257830402846147518780692355071459223200890508945271727547353805997241163340674803795047886220751259077207107121637554257872213382887080725036886416798406157323281474455469556342844552770316375600840800117240673791039165776188391897369484675493499526114890430216900441401264891889308202289333077529670932760090041441259315390642746723104163804992130015183537161137943776664745422180228908221562616518485784088474008828761049443734810506665601507967788058780934414207535980942030292715392162031923151715729736952565523417460903211487387209723531502969651922456627993467334883399308292415625167004483329866445327403379837528041857961873133473742714819718430405626356996039322137796254386189627700689068700360772692200702449915480054462895394786037706747816120394386181673617051862958647638784997002695234608219120152844456639768454541102734179698460214793992044899687367492437398765956273961235052022831018377938641202943319090716630221404671120487246737039177648103290506899225694568753525314718254735925658106334634717273349540410571383425625057603047182807046456994863180035717299648629057801858463149956936883917166903957143230329079681777937339878873351731266139831243279595958952132669541277358407832539296625211474050187834630969242955340858822055046164519478800992758748097883518115794822548784153831427688694537387929587505920670323403576323525305550391651858450595061613190645008342806973342866338334256951453732647366771348580207475051882628171212651868046258871205298659582934061879862399975550882058334230949876877228319279673976406137281500455437207884575295706050061017279280881474147779914358888830379467276008757051351031991846536404651550881424825168430292654572374611941964536734187582482307831277365842118848872420760257214369380181684902983224296409634685232304890861868057547935784302419692822180335972669600728565902721429478817753202529251030382830590086987611240806987894497201048910730585042886707977581487940239602525073681714414769409818092865033218798186534902938036623949985426245197125136623026460006000019999866636891391163477434731424112600887027408372654649632814908528373814048758083208749634283864088094529992634572958764193525488155321989824620730516730182080402675476368828919108711901602338329744910328674180483094397436089662737103293445356799506116457727539812205238053762675413669563862858120839163904739784608816382337030576492891488595990052611317722825676501501364925760301192677093536640243680607389864941991182165555298365625674851790940322865582572792740342914835064899121354536738541030721030244170742163821504213403978828566940409802790947583112179065480568318155832830522118940425383558233037558488489736012378784586469224002333012704764765131975867875913399705786742307263381295912569251702895379515899497203303489069409770014283531695373498601842354501098316631764034811679483513172795430711219649405225635664308654821592187243486210100302023263410420403472919989986769076919202698187513719230034305277613412102306039253153789427484559454597048595591482948089828384930637493673597322561395199611979587739792661648622781352432361536858176476739375119415890405128712587013379837054773778519944232923597296740779989315480268748526113470053448975550618591176504077398494628834964184184534844933382715800866898439948197541679321625872511052876221986759903312531538265000728295171327212783772578331591287006114199421166404096188171685291327541799837453807785819491159155205894251963650162788988526957024472250769680334365878429483521970955051840625263770817049004767603352012269851737646062949516251909853983322519640203506328056461487456176570090176222351472215274949408362140914197819592143743848907913284862331855380375172396086657850551196970686801400977689901496927711746430432326316315466973763570474579484172750846237536450369099755227072124444606389791284616868752394678412656722507687329068578011771918450659860845647772469814568507553350832866234253370721351775597466694501078052274290331122451805601814910177355016265734396394037813138522001040961361497914828319754631348697748514694388309313703236227416620179021244610063208707707149640103104004191557180356532464611618427855058072822233477228639274762289278236310177306836688601848024728163385042203218776933404613168132990153601372411499379488110968972816281605444593826202853909567904478820258233393501175868653041605947547600310062086336995583720852711516152896665596172783199819970007394120463166938181195174826969945819598281407561555541549721596562960259910736417243032233156057205097221135931370640927096552071866622994044115954852545559116393740606847181940448996447227110243310352323689803483636029113962207226242918989165156455319176695135193137475634685943204318786357406050580071202902959692300159986738850152516950717909411399800610456805236540968030553813093052301302744484241213347329975062718357968833892301115567286285041184196485868140549957635487303895185695906148944806725280255096646693792913687136046837844792514074913023270265063218016763519348001639786957941249666746075739535381458592044852189801561288554364173855003966234161264011016480081497560663297985335026367462405024237510800702978497727820535039300293122339953821519112557392454838771069487944264308058280785844251447646290174656121983833779779980799489421614658915196507895469275967125471807117538988955266196218292092391488483692758824500433142259700766567229635795973543330981249008055618400624896738032067937914242684749719613452873632313394998203446840154150966105594085532956759467542779951628760399859774313894118770141991582846798998177477586359992131103858483358270737349206673520354121212698156679922890135183610822985307728570083856840943731664939049878501143523419688117452515992696316853089836672619720769158208638086685147978355987833223469457033503251339131674821109829780557114153574761794714412787767463219265366237478158394764783251013576328173775359103721998381990836518310484014436435191527377209322745797765635033455672306299489475470553386632151266535531840662730793931346407523583813990369618860312585834024534201780643771999374592389922633463193802758485122086831353402166356874115793424092434170166907077837028774391311463266904543071605315380751603449357784651195345701856586447999340982469971967784126588079827266018718535586099636981252415523034261708244651549078947808162815699986383251395653578120192567348619904302139755922774755306012140944826826000992201583737815335055734882856863731310189309921030351296238000814794070628033064992035656901619554235184384366029773047053929177966815454151486204991648793295471935643913163915230030956302946268350669459152406437539372296158891067424824451659551887424196432726197835300598503886888050033097270707876520356871238529415366375476687604497234138445852389651928840635390381284235402658611780005021550309273551293066878414482968391529917743542217821131188605789583265195406974122963948138551514733983349816090128980477582189604559357755550931395694557643962935625626736217138778049840122734102428797052743224010354026345986817097268331523109271827880507231701207644540518763516213060770332789047110513647446823673600033922230641847526954106973698105122807642920537935192785574518965294881966703697056775722928047524268892969057473844010566192399538070866926972393523246783624302184491904613154211913102356913858851285065265686421420215191239312413328155622460947152610670369539542181537276128721161467628415776899574798878228411463542909421214292656969394513420577905650582807533008447172503026772984533308447916234047291151071298653273813643095614340164250740014287313334380288549474404323612287846218839850382126366010716175391653706071657001445139049464242766177956093595869650318787789805484488715359321503390659602834937918939413817998055259273014652722701392394831877109468725686096381804187812223801599156416254822682866470090686270131881198798093981482202436182345698598998311118163098171019898590603992273769927260808375235336111848685091208375603329986648847170071400060721507613146886228532287384127342443489533791333992199290821723491169695095388403086582207833383426675719924126313904001243982634854223735088866971818577734482493042579646123831446622417578444638043243280901537053656790071656965734404298794915294450008540538999477846219322333669438206843010863150388092889250388790124554209507799956624272195296445804227433110228536562943342671444013975640586012278614549400595024607829334028661097080663727201403353800763714477369935078370970065937464262857538696056782216257527927364552445606710245447996980609990535323158704107881647976957737442339116764208849382499694028029030568863145874524204166309820210052514762422864334812416136971195109351488797095039637044926370559042054060201576218409266858529502204801526348022662283753918306788288277896537032471852152016895905019812550386892661263774302195044588786323985520436730224430081598397751965563467835923428043974453136083050154169289455068732235398991548591602399875339458484719377669829835255428720295484670114479091623270119211024022513450603018123718143984375763805877770441956471864612130567209889333915353720440648800594470344785231179347229050524050057160160056989162832566321855105935426846051763390172016024566171451781299034402041682927888920277267434996162987189720015330747625638916672985163631664529419998450049767144322285315074714839900018830826921184223410569392556062560384989414283191697738511337424915234269421077256957123086546288252214958143326592175839608744848294453230664544430399421543669854761529502212157421714153533628059193091408974371210844658961351821134664415871492741245245926815541244919931440239264752487910752859125912305401954230227391116802008700141713652222051149928137290370967258797331910195714642443647707782638044320704423115550546266198302607321264767113754891079067771946815586565769547691518191257817549794355039303952607732546583666610510228672827950633494371427530985817832797306866634260122731958305152327285253102770960798779133644730195670591759714493472557214328176975630186302823914294548460979406996140043203574199210359391259722425875831516932814909441805823564154512992486982217643318419608927474903139111779505111091529989831176174822039698141538796038897093871019014488460356204231445037924604061737396207400058739660627974720427488239656465324526243062412227942800556322147155375256167744423056498447805055311870196515321909602177621083671654184172062868065725088855421380152353350538985819287677246006863791442838310497178254292353193435615500816276811615063250654696013120834336039904781557118767525826087229098109391016536084420128834973759127795526041208910039999729278116866712085042315302350084253605502838323173582381191395847265443591235820535231643745443545799371190217737926952480430175547867753014423507844738065434255818892017963903371550298915805812632910425849253823568325518210497186009193184265358118176621593526460264227658310179050008989854150851213357894058019026063873470627728774430896676600680231073491098835949602788037822388947388963321732560655928299547522599673570458684259834431858456321549516870966710311139248539571124637228520937700526493116898425798249365787598019388135914320153953435476181615662961444240184458031915899828148235303712129862050517365601441759143554275442728717367440339938444904801422710822305978551653860275642916232233536893593345026633378798584427354196755802792240597892007645751793581389838027601673314048066393591254104329517723147730179396913753257720092326673086456512027027562937231700514799067121438662192630465128212393932936005619716981834846849987036989750392440042021184630405534263657743345467821776046353734644236048465458443983149446864184387596253086084189455023453599151223622369707508813684957158050750751883698721437776313165103563851241832329574667895193618126443593746751954759734050319931864579896712741119537242738180718506377832750373332100915253511869251794296473381863345296114176290916764933996276010199950845479607079720671625903994070484967702744138876894159326658439160773803092157582584426395035744915344689795307785908518568830770264642009551629435836784878414475113299424170670454145405713866260919006609071825370710295509938240221910720400702180385355847922160292439521341101036358066368724498523043166504980315275963056384376627750617429819361433143876609008012526995941285928282208116099783182616726988821768709100119052807217078008386510988598749204067017821411216023211792403104429106814383441737351660867548046532313699268960193008435594610605824154670986318513537454506427536359667386352175601009806001141768494857361979433150443145578241711648933315872264098602099783719972877088800135889588444185994954599033470349860512109916633782647664922878530588519748793313740039365246559746912244213496410572034969613099704354641425819632363482566957430390063520422502321012072335753749265646814288378204637777834159250185027735301635474735480128695151640956243186375306668030435079669919139781291980453787165776924924237862355236821873962264382656268674238228531284380935767048685449542935424081108412658777175136854403084099326828310006366148502748139938667513939883158382996247079536196679648606218591755127157377868915475805318440874070517654678061271422195600523515705388072577399235844158649954452084442704036896393923024849821842433088038005467916286957414656537271890787154016885777948620151631740523674105168349357574418487160781448770923131419241078053615742958611998771264518551621905338695501553598318929539108545409826926203843577458262794098144808553860306812995590982652233005410547400463594917604695009929947200758794246730207477925218447100344268598404741110462996807307312908506508742061171912674539990632784631778616346775269138477003220414732581897687014751955989632618725745362773795480740104586549664497867233724397394815629869506237136230546461211391136519484610914593754092049178211864644919021968541707865834794882805623978112823011309523717598241676499455351506010443933965628159557390484712330786038821300715535917887606370877201109155477782472633117802667789737922830399922052958704754561942374544194142940912243776449409627588905284024597943188702071174916383910008672179058090777030416250782815163337304229358878399387723127058048583780092361940005281210743651470260824415220876235555220816621405496998716363593605935815289532873574057053576742221500999844712301376758072391146983817806926311067678223260509263096317937004991599806982934404009365907534226780994935349327984584187376074811558048181162115646122349880982576932809731115008061123940766261118194747503927140832474707265219287021998432009018409641947398098934541636123896779721984084737321785183914342290976673112518524483759726797724114611340890888024751882329812735777161052657763390992653085879648705002681458549755214086152844685413712233155779907664300181833093973611347250518522301925323803943372923918754336521623276484183255029937433660210861545045414010856882393412537292458805953634989106179010904031824426025735646078535793724284985450680108947834544482055109328514453275787876328959307530839164475556973840020570493830197142092478628393645742260279490057791484641821399183620861155249336222539903771251659226113150618624137132669879986670284227950743959712479990646829287606819127626281520558177254053448197963575461073028108485455762574652664262100701821283562103267134190256800913593764791448541901931085081218954433712098400197481102410301067342482247593907308420378943642431162615071551376386986928715391095749549809469610151601017813164775218971218461120882679521183738613429251984198345020277614003338971269375926741960295045633424016688165420557063832804688907853481132476928877869618105193890140497841466011888493902669469080042528067273482522111319015333642042909048260931985925059846120589563138977035788947866295903543012013942789124829626560207684860479008592240415181378360413049396487595183364112812578390853148621151434706293511894570765339371393773754165492786348454805848072998817129224134358702542459269842887448013968664264024593136303518246160475509559338803517792957008193805069657568575006530987251755056691034050025112053678494631666080483099341279435537867004189993288991035529932848288815001982319360451299506254454518097334749534974713203212123036066263400073581190341252093401697906604889792247402094063857583432866504760715718635943352432273424519778086784179246018682165367529521061603343812074943640479648579513281114679000455806582835256235428871927394025607252549430685373773961852371879030872242842183574200717985662027134761563990382462489011821241652196307589716541422263174304786171546714452120785755243636095537796055682658134438276971729507783678760161645769345440565860165580609251610168400861998151748967020309818502441378604121492226739104767899029393282542354735113205361220276297072859204964652178681899448089937874998317894212758981459211711263830249161625793655071660691370250280406284549415881227898104192870911226862177309376907607032791514062248061905611414486772747955870357192621811012928543604560166179677740489074373092092279752588305509289529198415102524447298588240000681514342410268053951771260265899090528899995852082274130748367992291368463597273309054236189433147150348823677120436144987118921965530611992368463866999146497196001862600917753528253134714152461262544280382764829328363145445842060942684753917609934366476136150094525963317815137227252097353683975920077914019555812324053114774190078471238396387486763892326053633059769847443251619105170636486478809969751491775292781209797017410182870360683661203228499998975181661275441099740485975004056104511906639968159750697409630635225598289297087416840910589327362814371233442757389240009173013982749134689044552853836660812438908949190065888742304983489827166424513930381621734246858713120406066680145634982365455141049815651493159827436046706716005925348323437526725783366147587710274896470208584160126156764202837425418162519858142805650771520371130544495665777094656855764732965926092073938274489606163617450774803821552964979866641362766660012335015699018637814133983124840437089156193783227350120660867223154716097079586129035904464292127750019256280872352717087685707279665815034732059649301985247856892862222723392953732620890713624685244306378283387195613083693649319201014182536491430984859896324696516542025576302606270924116508749439476126369607852246967859409316704636495715203217324475708340246303668998898674454251172214494528377444935996259114394369335456870181089111423592082048964734011837558783903533449355031191057429730459097685250625095457709033562420348112577224879351577642037929335476465050173134298853474017823745679227198833252325407042681304174084588046898214757030966086026745257027898437666906918321731513183613767013982350609583466440710700247905952753344094047541783676187123956053299972732937206080565546602700925103923582632708964801683006532724451025407696762484115844207167904107439222145394632664889929117556845787730221125499108143783339532854542264376497285355720856486206551995818391039870629333570582063688926441688041590709191426555258533265244135631956713248051016890189090200053723808187317585918449287874328202125224312044547809097019001055803149139814142106397041047953399449289710259226550983937068468259213087737805892503922818241625111487443463992260274181001107559914410760583755765125599428424453694814233413496599326499803880323680164478368123339398683306645392188488986517083683524010814478732506456066138765386858019243385001206082652432900401823786627773907384832571239626402639400492305826686086824869373630637779369298559861986043110518558326670360125001142914556342139451900640302521046882019199925321633394373636111087691161835988920062360078083146659673921495884976624390761687597397890052122154046896194661930793048757660352787488468388997695295346230984945862692252314776320303630923349145227292651953454499654822503755590006359892319909029119735683352092323211607851605987871564477587699391807054556004175078577691518607166969258901478827748413840264974654267247507874409555974560080048290209309989001296780751586971219202847900901002791424989527870495616281740247419156786982178238805644421183173573042760932072881924458892956326811852543332848818300855796650594243097846039716975908013332326696533194008552987613073316256028723854013687921869095185036565743547851029680003592535893081178473959677409932514548030060819977977293249366965618181156905393563808512116041419229701334908431064674909173791828295585597134446141885870807017763379294179051232895539906307856262115896730069275046164027673145903767534662592701601587932977992978180914512759354469554008367115560348192672583356951102636184763378970034382195960126853669409541482182424576265726119846869235843667098195263396621141156139491660782981108944828804022898357048984815061960315494786085670237530400209450610298805438153152804937991814707077043448641367339423708821689643795050431063674597100246689122381389463157949662617596513434961310466828449012379348403539590321197258131958152711661733213170415340762513799294886595946217019249283797654571405717844806768755360721645147793261892179249624545811157983512440835297849610464889935243471076079568802035343200566599267040857100872092299507057412636285118387979102518367363207599803736711008700612942380120985281250980133123311347127396835216077452924431309141665340926258010210034641752804315624439746575993324933785855922576754864866261066596038919157271297619992589769580994943790333100499008367682250085307104841636191527037869183188150123544136389892396514337921272938795031658191014925533067796169645347131955594560907213003923307864411461419101872873673310363491938757762871456521186386941246021185078619583641736386135399689164665302180170122453391143271076263636114442518602330261634029789770249675247548916852611307302622507483179400981931839212457896914047181066835616905952359208861566446087487881069481535427782531553579546258173534370479542994352326232404161917471258145865839760974448135606882760447471953757918512254617654958687052180289868456888051402926251293938829773388591577220457860002178380004860240308422845448370793354105451655903492947074538847170896638720630817771275444280927560608375676439099820959966737937087553105189397218183847360640985116670447210179289308092952739459103711210969214435636278446677932430200952678326138645087541842813098648881110104129112147520564617839825051229823369574288189340715692652892999372447070862800106659911503624676541757892874314700197290143275190527571486842019158909944337871013751458523310143803783788679437418410495621097456765533420528906275771212796421076776655777059963201261952400351014972966939849423259269075366305243494716104530266398972382087173062306558631270119941197663274435503447288952070303793396977252861224844082147467470233746738089864245796639599443342424511286530501100468009355001502944784553376214659976320989215240997240022769193119874766168414384509480212194427448228735086551325044833874543972680117448464009351652303574126153674346559803672578595401195441377395510514822657119536105634671531210437021745041315961739144100081227720885240613164605067027255097579144803196895857647076482076197633555109739264045183999565524537760388993808180813988682286445293336476685504687372208228819376214297188779568280319824749244224400884690732016706382495198840652258829213166235778194922131228072016971978296549614195123716801739485289574592836727443501573818345030342406980259141270034002248670672749493394916335243726723680539055704790696179201437674603415779965313709578094867692854206317020781153445965797027485136537018764198576179976610341528135441649459364266433169555849329370741596866972223573056107947134386042894071711271027948293599078644999493903821954720839940339483848223053633052275459266399373549896182553271679112671774549675190810419220133961479190604419389520185914530467801468869322506541001547764612714402297452408640935597102564558297439125712232982837837157459246393745416013887175944883265718593312065826141382105789206226439295275716648741746547732884328191592280585357472038854943743985145829998511222070140471753156830496599123702495235822549468624470756192250383495740263786599064848165117824317457564300755955104614744614293898197589209723558056444643833415542115618180016908974462508458911312678465440127908823913019966378047190408926815400579418943680571085189528154371494033527819661172610581436770530327748332009763444521012453659144869184701549378739428384940601649590850215033841311336735019307383894160700815051291233987357456182199686487808959453064887513566109837792907899916309431490653313854966110605222476189545077323943928137991375070177251047365206743935683726509726046275389019520697306607362611972972386244046727846896747086841229126990933956345699605630695300802119106503324862941811342662235029791353373308025820616876330254987496331781734243265548702758535130497561274885912522819811708376162518578765259675819056620407141909568370709642456148567025931102265414756747863333514146041633150310048910021598774653170849117505858120700279353165791704333600269662410033316543207696605479447908039671449617989924178435985523137104559620850338708446961718636896072994537716642292602642951224483253102552768585917434143417661255155152035905119841080297531606335018137350845731900063768551080618967536801840383721129640037990449795522296744018170193918509751053053594997236948373332796048345714734568340459112060372681989637902978621244370664168126201307430472552425785934097352205772235829463286455174373456038838260891725875835800813362124530416406361041945997106800959412583759505764619646976256022055400825977053793868389109334704445925248423016647956153127316004720329812449663029412461947263987407703561322155498283212905478001017638004737585571253535225772042607858730888948810325400927398968747785339735313921919527134985430737491764699720665585777331916143138207314515428947254378774909072982439442439123065562879809842641375217060137899306454161188667102022790644482556201665452217671417964974632437395193307894870948676607232278642752066528203006212652466659349627126491790800448863727175280778208863319693586845000696070764765050589333707584061696551510455250595970131793238581987821856960883004076442094614808097224424520794059339846605946708309304313730121596981847963959368225910828378160194060917983701018156017212663812540929864632229449535825925414228531783938261653100315355210947453932294362366896406134479216414204531718719054231855143569043391388688938825832615155366307421633474842821160288102083790656271678141996803076791307681906718589825445875620221841343015362033675785959799786020151089718776560591623625065170907544116691984040799573691895129824863312698474899023150416397963973596177747526265575196777609918241227128162259808590429656052601321744692768035121908889383565143918253994622890524375763024580818876051561889927549096358744664088234511693234114205802143018306801510928702366142881276098916266162583539264788102908821923415362603138166673349119876811252543203641117701545617426751716277317108656538418788592286403010373679428681680163143781286461514515903784203416461692607843397340581502432804710545278561344641628149092772789174581301916282619658154991773110902560324858174607448691268909819792702408551260553577615954789133613751197751841404733393216536050743729193942792480541185654085383072357978389092301475344335623270318769831192430742803389653587902517363425107489213641690974788320601021432034773238820043123874316968085445990594027198306818895422114974803478438466258723638886813594368142610059582979167860569926774312188136216568808824263009083833254386298948804670810826234270931715373503809818752002734744379969717891648612855974343032728954044612049415720321417695742058484113968028505375947383651270402435353956299031325111698470592390494405666397898110853015577620400355520780894840214431173714411319202793099449364206937246706888344540224896741439885454822636540971413377353420959485906201846213512884675391764869195030042829251768748140718749640158407426365095446623054803305108875689241550240511800095074609933325264622848871564557482691140685607376510115545930394951828903302179226239431505841587452184978159083228713654243209336814756070400020071827272385736361478161590753248584598524008856784484661824221471240789217668347996337402313504705414102325960646735893618382390816028261703452609636603442578706025560714754129927236417011126074572706558828180554776352064528381812330588147958715729292339779193479949305695026480721805647644558203446435244350547210578829248690273674690305897677824869700018106591059579591992735400721929109222535963570891592351593183789714765210146507825456207579740251352070705342317772768967811581248277261872187443872820675019846679993152976891989474536735538802541769797672196109426339142098102139292361361632246745476992190755805431766539670783568851085208002992227219555833458265878990594897878649083428983356404983018622299421689972897115252118932854789170708186318586518218504817802241194507518521955827773545045517880461767299327482323201323410306907235190726444938637226989891413400122467975305857896567333365318196504965725165005487253432340685566189735723038590371731747168800722668098362010918722072247025752036545040814366266920477723659154659480291048285949394426988763466114938962796251414236448005387466387452637496848931590908274478924818882272151834035606822056629560758063363495384248094933792894073411081595570077929082175829290371851143137880065264119708270885756886487591464680883036498757590024468000218707067141253469326486890157318156241243255720392403640255722919737364256491021988764461821935821881468138959578541959179949138229343865884504531267857162071492921937805955500238218578015871396706387271072475795112261101261715713222688740223418104463159232263453893684437548947906234666155269178487396108889520697929099780963713567289116534701301041815761484237578192315290103780905741289590739964467423375769406537712108121020691237954987428123956133486822307419233520021401220437621377280815756644726133821023153556229064771386344228138448030725997182308997218453598529648227369264716087376119216620533964773852815603634206688489784164008677679251662046810201569982700078418040344589515320303585909000613439279252053965613193097220124702244103973507771828526379731642874930720654594761736189237248835137352971980571264892093825399796802603163605351621762671494982414247411613732250087012308085512832212686993119384299659483398564662849901684885223703594501557830864135416729914539292745294033204738475477633315341070053077895643923405313436882398252084739274625367749727345740474083994723598095470978071574979088964661676051015420509166418574003646335874623913383442514091201416793660122161755394574490170771806280108741152029341959968102181714826353389001365047682814754717900694069513712687314618841611091705288920422168560276346565598899190713647485444978606836890774669836187825293265615228160975479101264169569029851221402788896925913497067469882331901134119296837691115211351413466067936790949338820040935817926338908168482211733877004778888109479729749291288904347824100911341128973541406605128485732312181201520685388057464666170252711859145081659527311304071752678862630321203894404487291561516196646464484775708689249077490261063336928780419848865669230502097130279962293453005441432998235656221405070174891448092131198185852774542562504360589117714569110280742422796764496142543649628775954852736569488752912707981072600887842025167722619449863794801399080811794194843738899605177199026669004850952981686775874902225046223830447315039006277458783312114615379967229322185002461437056681162284443074624967478458403856633841310373655366607412210867411034553625321750067911204646089163283965375861006208874845845443396741994132212346747970824234821364694957747253867058820458091198202303237159734073278852301503884971852972962379522180388750397017881538448251427326822304705656108400545699651944614616625287660547290526179098827398696770061133168331073445311639057210131085107677254307184146089311962465194404676807041541742891801731333589827983244380426205459606970460653861838752956136603841963793735171411701792880885915782873337296690872363048440747128137156155341025053491542665361394293708574566722660383494043782328338663081949679451965412624488002371299010140198275808844723387536660516140172608825941143264383552199869458837342705990081716992732786849082115030244652331099767315222593050748736423706365555666921580826096181509115254219930314697850230102570873338098521269390177644938177289101246100211838519166484688510514055333710475910367928237875664313887947167675357454478401029368976641893496254688403334937633619750337847848322456279037942876184816658564563913366010683838339830299576070490549075706940538038155757440352066220587561786792375890603357930313279042839182536443205768210901296405177167915223313166377931351991841121678939748987515667717955191463079658529142807949808446408786370076948074407586173313190055458957938054064200910747468954307929057543872656871510934431970342935042252437344379401752113504185465496126174357116811841353101205743730336458489018113243126976895779531986171024802029296377662112011490413147727359865135017505256613695702878555947062564359617437244150137488640668739908134727560733861195785148701473125138877617220037563708507496674489283771751694001402726612624371311897378860413193978640863064510106760257726687313452657326637546681150891620015953474237274109142431953687135069378113969816223431969384628038933976957210637199338672895185976445001808466828189823551420489115592492218847875260615050364015145224806836067137915086500265772434262597992126522544715185249740157178536990355024921172812141601944735532224570440436977935818587812557958025646653191913378735114809817761703504950893742155938689282179480698276076596273457424914565260285246185545547366048822402885955912529477390612334105573056088315539154539530771485482224030638636428480327733753183244582235343572835351551533017648532097669987061766949375519406596479103061406064793644735944790280224752748358819460383316622574149112345047033512188605204019386289026852534935468587486693415183047543725402403740193786234177735691100563386083588459078019263699016774959559977704756851778629314973857564356757091115526578606560622721123349176892109707376664365257723777595380412275453319843900368228431781841999365775492263841132607413166862196209289157073272400452356523936774234725441483463334408403193768713496567587960267222894294312252344068717808127682818561118879307367759268098567357253094451497422535360161281619126407372873149151614784718659995651221703988899898693208702914878090963202225084283199795222019541678686515238999138208648709293089303577631607535104465266832433810236684059164187084183453328323257016223954204482098676995629773072336470279043375386297610652635791278235801872980540872578552972151654781144847231145351854999811014812647726277027336612190203183147598815756856285497012900575141291199656478196680727843465249763886304588128030128881926360120537946860807713408581488565896833463578842163372052184143650498949788773889405774953142485975652943350532369052050066926512008258393291292438891499393105611926982876872143174747939938556125793019568314206280861848650003773894073825633063017939692441183414322140511267200284264434702876193434200447355177700692380095513461732183681392531716592670785471296289649706024481566942268870820843093442398571235436095685060952897267460729492556421491447520057033230750523583040786116233468479442406197452913058593573823886218061077558127226024903375990348753852493610735316891461925929437842124829604275558751348527768767114023169742494086145841353722376391245456048493695654706573829926887525794042807413496178888281774479029215561578163270183687899969324606914701315247266457048318545991103742652012258042387379032579676671222224723534493322898995332164853130771981209638992720682597922173338841869830579938085760647105108925831412052062508390219599496004492376239248746932158809115443575987987904020007012656548002006161489518182683716344084958070502961188219427193008995847718133898312163914569218670545497938719809069529836973114654591162751396252119327558623700145188824817904489148590983475855110424314894921268109173142112011481332830295141368324138690496478863271660255301822068524556153822332100921086995590108349569307201592873336273902150801758725467669086766762500582500015409702733718436032257201628459122734293022792133152314302456929671240861759882545979361781774285511395062882697818016687176275581858724210535262235962892962750998225294675973122588170918771625560830686914871280772335806940690371365958245600703777599793573135723075354273546515053577991572679481262960688713881644574963347589982540634629542436481766133384517272144166027886380963722064690768225433147398672956722506685619391225485039369521216383376085531628802203075800408597945093417743388794369508484027999140914453791505614554487334271558442669679022959492392054171959145238732790480763479558582833241083012611732211432896219828056157474086019017826555290161228697763353248362097341107573749598161327364723482102457736737268767793586896721875486835028772439756546060405637657101265625395200655059074821394874837511266027399140290504245409326919315602836440941287097267531915587030863886954151066347574901595980279342106792701445759602843626851438131026774324592150863720140524685020057438150882677958300929251484020057694152777648536577694933086730894426541099748146099405953438509993796496145361039083228810869659821773429040580282227026914053432786520401168596266678963196114774624888315705685973546554283921152198240286851524396727087650929483808415657686607021361558087563772330599532352079923401415769354017230938900187469109611080084932955230537862201079757745276921999686144868697128215751688412223154964634977580409333674960327760254671078522178135440677695512710535622068887766287105906338960288422528945365252128825791690608438765700316059239104738845834803574326058568649772486330054111603204759675041840212987365951444811891992618092082807053633993872403814311464260420049845840809772823652785174983528176270168201177078578169106796764084155496701616572692912515004674454546014739239576923508406403482683995016694253903562426770405087916306819447306766344085824196284992274859853425343098714044918409952289542982710598198488355906769455211066145395370454492207605971220422929481780540054138751762126868188819506539435208566584357138042295642646963342340643997413125569745721444083506877669922438878168024284185329792797114184762679220984048237127663885552843050353839610879122239420476667172637680466113272452601492469568217876085974324928620011034796080674163149951114457586769779202656253611980782419296753096261726769350091726624523865473047144643182013726800516073680502916138029982419315165462867365472786354454334442074015891203552218690527055529627575828647914760309839106811989643233698084277280069701256466224178402819763338290629289700318854771124460784680321581619162410735689086677914836393001236712665996755792452473759750778785051089731399574841361330574988120273365623210852919287061030066744609599188403837788777891463475289205504921371961485690493587820236761687886630942168420775952070002812833868382308320136278208782616576084601128358559275571127270242535724221759186779184205333306331046799334496217720113184574073397562410912103348954129322903017561701955057663674762787735821366082443005575062639906747245484021477194151513922308844102090016748677381817326022747868252696775499511768142070579350517166614847741120159310047654034628386708456751902186815361026313750741960037197136952136940453645747319274264431185822067464661917125282930042079738694058002930600627671871232920326477430892232071264547155820405413680596421097711020518319273355825550929321883816028622549096039087632610142425186396700928110065142739010187251367405125586609470278312721558167476569838887947353595081388097728372388718425384703197735900106671193528223224059696262743981194047690167563636074191209388772838090499829623622330862808382975745971755918005357212269269531581778889643165730721333229095191566976982076130862880061298223110273187403405074136804523744154802527673616178248333996838304989154865519705495216664933317829756722309587105151906094893807924275388298676432817743168210819600335556063760170279788614564307095360610000492019057720232286737453517634804658429547080920386127877935006505195610031034668160601832432265845441562717445473330044419205957678897058240883928128016851242250478767520023103025760708127202568775114905967848238405931091991756292257065935687558883400495842742825362354200591866658355710554498867079100006117451287362065388845772063967343570209918854551225959256483407184188939873856768472048710892299978570472960715256601258153514073412555524464058856209149920796792087170558655862311808939847560069249202949110149001415795287424375906954257823798949963888322217008598047342765532337922293476371013118453388251236941328116884272204442775577226514560400595644693533595467840715507281682608197765446881710450404068958302271773503645416908745074834661379354517872426604304756153525318395837396857184995370864630406731126647120896422683885765479008157479858385128634490720448833761673639572554449375368479562148848146465671714644464485566617274286745599789052478344612421467259468066196656935735236234061885373782444605310365080370123265827207832388438318562233989124297656140368333728102182098472727350196380847580111352972791074637102287448542430033701060398868349507230112083683932177884012347280634576669535673618194104977868299312720305184585492794120679685258256851518799832937523579859419549527926016317535532605995195187629879161266780151455407678248826660201098581241646429499373514200011103349589190662326663515176811106968885321610783807358702819280150918987543422593457273940864820165421050795322601791027564407956496358304826166298423240746510116900464414417171466571772146498055205952406408907780082312707478579623907000201111368866351672033071385702634880425005539321647163940660434207650517794496924156755787571635487751650164834560149865668429698526511998248064903098373430087691123835890390369896814332730998198468016020922867586849444334897009762908088522521624005095559170846860597276351390100137469656529115275783846409692337032679858986723967788947741958129146170592099311738729664128787518576751953644128077595276234169200678385279218849964068991903031548383967608816069296432617161990124327461005519361126437841273725258400226276182211344906347810347307205828836993900464900396240809814919129227450951670899354342659910333702652631820920264128984711938524000028558909406804125372610551175068936754857515788041556445271562937211438855054031238222855176793361454901603949614693050436955014006879689865329063622512870432652104799415002973624001220002823786452669427546890470191003446659955608247627969066008040710594445826808968816909164139686720658398914257914930085064167420404695307450583938089571303561430124752910677137892618987123124714191020522072854814394535939707354883207841077947290321457207735970403587512887282064801890604378752867826925983998929629163190842050855621787332461371237473689167001590075080734683228740093589429284256165119910873388439615447705755236836455305338040019048524373569583978196849854384210897190368291773269980004335950610435009920877180120397723494700003875462559614380505200219056130305572073355202389879114749339751922426507962342845344284435957292661932386297105604981070885033832998000702929232774341604886503594707192961959504918142296488918757974706569851525379924958437046247497192553546862407824915462402987660855271330611065594685876109411945304280573432546810946394527777188240157284989795339818134400722633517013887232215757767328074045551365014396473920803048084973973613802125172095521070130261667525058580970250263585261233432761081906673315849092492946617344676169346407538885868551971747718057818922768221380489438277000168890727687715798825021751419152373010895744239841079209504968459779550398062628021931535440720455445078083277964008993545924381856500416398141213167750757317466917772330776744547583003358120892177074614184216865456071893032708202779155562651171480168121577303201215289703880287949139487755584068850082994160109517602316781029854727652965249167245279004873413749615302478949441903568124623254512691251170768998799500512915184332325838413063161602276363339698701221695033613913936164394184596381721742373634440570151710124441394903294254853102826952896236116073663176383683869308252514603207289285966616386888645137058660734886131669526609261521851791392440796691198385157398836752331336583461013896856587859310633555898230860463800138774885326839775653187825103444373104544586954587677535520399255614434438012774414967552855071290100210846924110301555152573440395981749436896752276559122963823730602139103118436290890985971485868910872158259313660725579889458396896868731870100899159852051793616485243026009639229877999473780972591811811637759476106138595978554598282728550546618493474032657905777585280935401320254206333899725686143652889239119659961044142716086188720796231920577234978140833286945824402346723350756041402683571055958702547610761277318172778355449636454732777646442228290695368338535848091809071208968066006059879332594950135429116593214258459456122381247689527004718505273921014543142662027561747415288618302595717923240042624752549476006595024816166122186830384184402343697095527831545987478776735721403291401125281666968787898385395412464434365523630702362542613169478039695475702950013633647513588278280006616739681838159725392133011430243894984415762405801072261526214814349886812672853225599217658864021223472011476292833899310495069066713692838034111431996541876675460969658718395130500826401170011124042685295469312801511131509171057255180595260129923821174432989480251605976408814197626433928677488198671974820761821038485334543398845053474540379326490394530403923752004473606517449211334267809146694653997290575786584444851405637081279512523763860032153612508806665319859064510729649519872021941378553907082669388796925948248007366635196501991103255250876398441624649603618119053460304702826875136350727691058117797270856680842311412250714572867889228082290793880378762327962493350058390500519888900648396083520272224387910167905529818334925880429613471085161743851481006723942923248534593086407580853364007387912915016826989065739179245014076213225786686170687543089249924450842066930621445967258311523442921481591476938921213560067124612529432737192636980289006642100497616433006190536737469888211191271915273520149329326404750115999006387723940002624397703243094402536404650463906811867212582237539722648187906836196628749680574386861975107606174993956544987983565148861495120455026537768261052919027389819026902699585295423887161700749609301594629705724433071314836701942816453324795330949329300117107446267397531189796154277119183667157397619737979915648464266332972013436687921847323939365693564021509532528270351097899698519051989409960221573973918371912664377624436609831958959480982341107874927245789067998524810537204496531755738634214477415056266920592621007419343014056420475571016916311137451128687439843002698834064699861139677382689076615005121226774385275126442560610822168234533254428291980849742479750900839399780083262586974764207961422398766023883686934350067672832089841007775769502143789770567349470025666521224405636868129089738600431119976472909164545419172351407389788104941878743079677329451724841820639521547869341905430987210108992610218855291589908070130934851329360889447255298584055627303766186616516809683293419461691036163226375453347130515804306831391510510560886687696898337516427714733237240405286188240807256031695487797917129543102467784577285632041562422807254533308792513908237351540744605458505177114289848987784629266282701433391827471676392538809830411762851385249738767394540988413996378212610017910524082343800028711452863342663215124037644522808257708502168342720343298031347647278897620022859569726987544109191591269235989579420366236802607137776130046593850358183710291325933200300319347188038675148110283847078168796483868732429806085388714689212132001975186096300702659553909452034324735482009795071150729843475013946228739130355306622497342633876160023941132164474975019031513384535257864859633935416625404772289860793478139927641265205899611552791261312520453964907191792861462521729591903785235068044708023775216720979383701405986506474930312968439673232845636789798287694805543920422412971427706685414155498258038827332763756470496314128780862891519590970633793569702478129630027430718232404188227950676579495771231807076413447387740554255361448184751529396429547101239434745880979696863227621817125024868225405952137210628527145467690803510241909973263413562824776879931123990592790358481762092231871837180628316765287664151624660986731987884351286900290623741502790402001636738010733543912596444502682724322157156106158301823931630419117049182488007854512464302509472713934215593441633728142796752196869819279058225821485549269468496472400991452811284906561858404716225696007039423625548312966902372275077353161082124773566452123801107230759896678956283651970792424657847926048593841717322985405519134337158766443562542856041847431715448457015049546955545066501576645871887351075680702085049398536218783242085116536871433995088864005304283834303259128772102467793019813942177042035151209410751095256496191491395506385135233795133831700650644836333410079494734662099474436270360276231292890047993589656193287821626617950596263869967571606743662238374720105164304001898113810692597374271118494065771698639540553109956438444679229428782495921006601116005035348981135119652518483414662859598851737055131892610562824412332724887081080123109661523357507926771583744399255646417815978631661604223140948039658374186610431530055447128210869899890003932381169366758426057731597777078341694272199605945099550264250069411521159369393688464193206136909901465776145648743725693971158515082815465846231913545253954740777555610360575074094886403044163502580899354132664758508413877943709796781905271472661042939635296314486000298617479238649454095429393594624608419785148074467064099530263507190028615934275628598813773487947548091952788595576737370001301208549342016037579180358684933541818598615700553842573265422394041526106143557228630165475035687250505100396869384197372070531634778296098454937141957983618290386958704783702592652928480444085340442771029367015133053209752867371197381344535258130113421273908998406423705719176113546187874526118346207889493638006225197112021344784847153495346195117517467006061413744375739593998274303040738001304362120596006984075109677128841350474261189259124275101531100038833328577482938992725058277015467364619972426583217142327931217495491584520593629328336179623234872481584017322379259716614855031711153619433089583585066368946759151780077975440737602343858120067784045668069335043859749884524408732041423470128618938047940102304791703277989425440162832643951797586436412919197219090185236369593327054157436889888141936374492335765615997882690715066065966097076665742013016501345769437756275524185718333774044597814134834853279598284241349830615892220686785979679708311531327730394013050985943225980760932895123611503650092155927844194950199214849201977314001129753988937287760634876208922809460339470858418664392070173080370122043939941100708807306181653196177245022550626029667598235954791549280525044513650980494046456838806860140606574301267528487631408429978555814574385570760210931793399605744368905800283728292303509301995727499028654316456616744740117196990497858991062133511987815189266716237426057727704867280385845226490784630980959331770886648635863094299480838901442602891834370106261092756264372043248423659270117568070114367270106274007468330466378228864041619823413711889317345463241235657407152524775655648782312504462696259848426489316793976095775079375749429400117865901396533175614233052780605724566894483697736100294805303820981337751564142331538676926693486552574780791479115292342239495008157827311112881439154649269540389303923198513434847382034218593223563167793559065426706279568449536380098567152234428987738944298720432528694477085724570216498819598293091997819675406175769230457613656687153677656433697722251031711955246079157612996689346554448917727842893135246718026455631878625722039159579077194864796182262106596417683754062755905977671775531902422390588472486445374675685809371571187016622583031998077198404334463894489269118009137273047090319405269299275733652233124027566134488490151313220711688903211970351911085090168963694014598673956689992905917665595465658290125003222532765894334690384827040318432565874751258733714030935482760428232186030463296901626283238867054405312641247572573948138455372711343723013843708909233469952563930954612161821802351380620642412717230599463868368097295773949708332763599723761246602796639781495359949651213209429339906594294606096957748485328306387098579517595845165492053824247068872427227031521318966608167525327461838927968736939777283185826198124030581357389078960205105300243693903787898805505034369082137720250611213605789025435962701991649686362203679223192166080237659254277838369937897478728486180935873879197323033708188876587400566770341134344510197556072066089299401128194333291069878643984253854652989304824473270643898978255714321068681960722916993308118443596809555939344364913555106536677247671664100627845143195502482446048893304624392655791300197319197414355444413582087440251258419144347239285326154685635207584876245704776149809442739440162714714664746421531365814832392761608558754343654487625142131011797546969732366590877474804550055667105086466464056734123049144701728111676323423218378435183298730600504260210170180235212480064454761259031741606702055049233357760714573843660762084132389598091069083761793055210669499098846896953344592741487855054691213484615514100379799470340816228675863995018341594630888394218703812950259751369829185250738644566958683201891756554713161723578423939233993721251603560296133807132675005770984679123791015030691248751529346011439527353110763493870345904235936026897046870866698401479882090112403791787067588117460287661919181797661890027717717809884711493875333922436656873982359755152617641281595465321853625590177681381214218868366279297515923186818730115802423281796627957079757320316211211752968314139496897642901174286255415129186490400312689457932071600089371953729504618564598388401970026534088912357495755672266773107249730022560772152502586717689226948387534008479424765217302713650491007590865206606748876191855770176839535454275034230002202320962557862969883933063372471745463368312352138249232142466193498967037225742120546127065035391159501883996981905754874613173670760416622353425805215214207629747923963976456324240616297875393554951216431299982980056040965439054122074203504250749303962739508563912805833630539460226758988652316474818466025786478322098145109013952381915584545280720185315986752111308864414970597535722202048547900425647638331906559350916645054594302637686831844038295065003715812840763540524211883473904537663418567258290330856562236427307504065576507091103145876919865623558932253445355489039483216569992495676972677610351679309836175247809607185633279738493421388377089218846630290947344687872346934500484584856560051916261220025162381990837889351156872530811163759379703824016188788788371002499631601300786358840067529856171280165365594603235561235368505444339575361865129559727869870919777019572974436031358200210716399620562146332858027593091521552225683031232813850943595725858647865167472561192974987320401799691069092884846625217930185967452185403997246902991931764091293357840064121851698922275628397472624903248864284344592440799852512517897619793347995315440190627012551623952717468601946806108484876210222793227313602419335113698847478938470153399006852889449394678543426763179093355217094825511487902105526329623838271140792320392005760715271988305000324058465339732559841767841071269461166191056273174490121381453419362831431879021779081045615771217156517604178729446235432546597049067523433907811121560654477395197845171707442630658159050199837216267997921462679531484857804051956724260235704418855101041991649351059705651226382410569702481096636549226921411486143268719737046910328229770692904426057431565430127138578480772925327375203619608092103885731153978934253866677152138375122853940287304312624505474275295367410203939778390464615567083037693383052936039647534012448070872074153851450786062334674889881302044803645023477556677749925620750323959742130147594106497625074047236695918396807716868336778560395381927822511569449129184676467270894666430084825602049542284044932031841059403661267324208961663425922042981468860575559555635273592880232084805269315597551987880939007597717837627993691575828051174530665445843871166722673772499702668346147233315405594613560297049083821033890548352679580952061768983728557888775829456722587664256082240971414303964306021159464011328141124856082720524742115771391965194411621091049346086123330608557973850474775167400188568099542029598083544290841799404749555521951810108020633020508912515675623183157078452041167696602124151375320043142545498021619971488227194394233639744755584853468794448054129412134070900050479863983360662102967286288741125455771277457636434782403178507118754886861809403286173061110375739196395662711997763377548745192010953666252317466708577558131643622148820941111458156106384928290213307599681161790379617761615767537176002933309771026643006608793002114793678215070567583245913409252195624584442166829856992750454484393636270724086327963333823100943225783944824373291854023560123022816221171083580921739045969414131619734166533949133022169042866691065838936577275862360896906017349689681987226593472884756634258712325602823405017168324256874461125662414148375764018707508108484531018324105175831690657633341187265316197030357405075436436505798068947607734913769447763773164229643296340146660714111204760454392175582399047669110480889214473925983779092436130368563356202072912414419729040968685252351807577513885660905533247642478592284453550792314573879751479869167169881958236479288937599875070512601253271376301185972902872681552239618719087929829539800710407175221376904469348101240614826884292501090349521339899238695262411745730656142747016119147664760246639875170789145617547564010661000094282579325672430063598889332255488527393102455059030503963285058297309644335159881745383541541035208844846964878397417765828423953194850769678374562674780914542403445868366895073730969726790951510213679087513312865811764479358160844592883948996126406806700021997595090032900484708016957045231917474674281224054823802486066263514847303863260520013751974306055010220940625877822807813650121907605717821292005389365742297402516053522898697035482069520898366047710287578696952608209989361227679024185715821518966410040371122177988862338687656757494411440226517900166319218000891637761878579147701076271465862213060907580101145068252837157520608109040436098616032123475482732249552151916284532068954458357456117554428960410327971558393090537384301415218473353508718842676002163071841673663681159151861961229513563740742658021799177456535600869384250689316439238691304551308111292728171848961152668177618595340681410303510248696129536994999532089592619703387683721261439067794002847626646456159632529412652561162821452366142918030710871907564032975269444295401054776741943833021191817005651504172690237084022297914696967983697985535760154614562666432237928656057250594121799950795189282996243579894525834696045081274350445298840547161158424318910443657450443988299759057426328401702532976989642659453287166822283073688570420956631727945698746167509382083086445991059601753247730586932190079993034968148689746464193316533337692602550446258307893015772040953851034015524027637435164879448710207041301349883232281574356409015959210642750499246852662842048555209636666502501992425457911997522466057995318448525108650518399323206203904319622410410996118837525720061373158312434014639967683181985266295879365952944709416302135737037273958933159511644373924401602915627694230745087853150183918421723814948361232603493218983431105874592485097711882393554159858686662510922178482759041271437267546337595232897086007238676122265873695415591696566964612038335392748517298980921999677433743031929865966157465238089828464913743660996127447830530236659494648203150810597873408266661913526204516159197596218383748270440542579710643012163099412740077603582086174288430392197068931494528586440112856242348870168205376663435043122519514444583523155857748715626399059245541978984610579311195696007127815041342886583376775334411734891018612874053633806063113275224348366557135199367932669268122596075616705295979519995853410586676503557348801232671718550847008557895181712732357543538426165024303775392473264123804998400415268809603080735361611557521343307389118481128495052838377263435888399630152832105201435841887258580450194265454991788848742324844669841692099820646216197070976767385143976007730561839002067200186530013551232958793559702982497209694993189032414538875812462593723490368966938984665554398094794199667807648486387961138702521906163808377934851557670151420089090426461695056098879451497582106958046774926739874843914371950571407788959680968382231662178362761675054048036312618881886468805896374863214168000475767130352105405673514594199003735865577620408947911898401893581401464547165577662689015022320064919992171993434798166748448687154192618492844453766714180851010536668177660254349878895676166453214565068990874092142508843992956203785416529689676002210912552343946041669324167871768036750396489758201854168320308345260870741837092719165707977518490240225837509469266381655671884998348306478917972834798246936075996669877814038775872808523858251761250902538303874753463751708305844448470621062335034542486249986676989249498731625370985578581924040520677917002141218232941475225800441040717893037430208664530711652143257427855014209492463117049682344483365059342203033783135859341179413945914020490429415353166679535427350046845015803121502508893268444786982999624753744899921515695057050933879949273298992317931938219919943789044941424157657448417626167746811273239053982433960131348155573741811642057180948382577110477578640108381127862434705552422458021119803527908049497013160345540098821202015229299330181423339834550511092240294082559897208947193846592564366951830885984955309452871983350024720432075826508005888173946296046991858049563298907107338434126446307524890181779968278950312336192695681963084963372041426411197710188916415110505847783085141526491067283128620197790093573761573637414561321208586197747386793792929631187234991988887049950085447615159002844360922922441914266654319071762039228441098820731690266418493681605998853781961057495044862507736712108105517816334733922182920456573604622024678391535163778472762584244211649138397008951051660804262971283612832905444538179904217653515792880188780349685567149128842459021016420955394897234295628749002829634405045152761374336359166545373783197461815342350785900576951081111247534237117330550391815361404461566223903310668826226807171845542854772839754237075121332637324956070178907685439871080501544306818924250509407100179310065267431129435202199190618633837089207029392655438903615818355482691266557818140430193963189278884565059435317765535038693350848938614035682880211125634707477707825884052908954306597862415095146698537899739818146435586180331818695861344212863778559642723634971118103709525538038642192571646554245764836413422150528710652727108233369481235596605320503902683592702724186324968712243146470596869532925214810809679525066562747747848363361645081786682530706224281882466421091621959011886068144344041023178083884106094811316091226541340905985973657948118319074797408304908047581105433709566512998261251319233213522776665521276015772083067184059915057812374526087688915416011279343109136550024079919364213912791917187018579253251200112670111135241275179088321468704825834561841102501875966558264707936783960187361975786215137951666173685599650950488749128400903547445890872920982530852000309078746297129333007198699946407949984417645114155879086282536912813363629896724558189708298315360116952738840238829345338986902648913330311629668420121741353369519009185552067203701028426402691589987239035627740455184986960454864553412029550814300745194187480922232306255083511206052357295079431995351154841487886765424997752940829485108112228982862723566024911369299776848134063307712257671060917575947745733911722184534619188076051497736786995628537623420605712450900395364159803912080247264800917171516877875706318136158967716307003753912468309609401334867596182745792478500827191693525569204716896742726242331104083719623504032520533755953983571073927781207924085401413972297842080941938177907959677305685388676839621142809529468910752079579388620755916201187042669042220285245103449285076149106214127363966405452138709236183162084544397201721675895374968251951061792405466295524906632767470418163909512430684800162876791486285581940139853215078015916742157423190680009902385952635871754827972079793108557306646874019848653298256448228000217823946305716717017392609660275702013376328291885976248953480555203841682011216711261304653995274923861396266294688661616092409056614120943975126474561915131557511966046206432895847933204229635493256218235065498362522964806101986666074336635314162292602064834577709246234235721927088063714384047942664470861884358550732658200734004954718551819539940620084976238796083338680384485451654723916111474246909950063155507012722451774803310484247314149751078376383051133644278865666351583735799999415635904946103957191333773497912367433484383565411361955860555938386215406256506791353648972927725457000769996468411109193494676633694039751179648666613369394973663879542628697541248271857451259508207185500712637077728280231838806594914630038937701907795092511114203610243535947994148240569185534036965579116043564481697031802832051988691468431676457838287200757296973500197642022286768342429418975527234181636587704863005989745662715318542391127878225299171205504871870147355398293978703806384743485094296017546444669641417448298292598239548017426037413778525704201954596150463786532791394810977526135809880528089170211055080193825143781452382790867853909715290393010552450167529190704280221690771417707473009523105413885495091155184363536440055456028320273774436382826758559184179485565951593745484955816242514086901340399992107459685726248365243402947305952618370580062372809770239216477425502409056401090324893756557435165083298212966064333185665304889110379404363142742193382420660818085778507834737984412062264925736056023437642816093359555250526103249675367942114224014236973285668514464703559467073397435156961259032629928645623543144298008803097751008298704789645372098908434640513599151822599620576225088349404915332234468921773927727885980082769977161018761712768446341640268009621236499473552993992644638027096380657791740012088903655738794758977051771391673796954089568465628539561788120974442153481650906494475879084075449812870042504400635144953196755510865718544021078408464978688264056502085899963292657322316881004629168043202047917547776370658438822119158868378599848697534409254174705579585666590526449651549222663791357398294709011477035643616751489183016314542136871626545736860180344760166239847231758550151259203447937947217786600888417791041958063471780911575074248811238503862046627089214661430556842119291972667775410591896718619105843304090329211999070550700174090219306446994729498769080078592070155098591736525917582354699687582261613082427935123692933233459655866675639988666585445041743507393897884474031518829460154348066858702753281805806437682072708559351751190401469617989177536226636578398285885463798086254921640081778657218342746631030601175160017414973932038860965029011006375845074909554926313652131668496559371863743836468406390300084157907455712312425232157534493302147281393750225291607510943429305920557274946298565107313736602715373909602855853176964310311814493694522256326655191468696059599630549715165454643045460689943940506530736103749744717247797477394334499889443265147556233794169914605017250235493256723809792611540476167701609897067316641146186675119386200205361351586175361222336713169035700484104272206597903026566929298128376022280342453868765683223369364332680071914814969880210711591637141469414777249956045944863327412812480611440492410645644864985726619256813128098041393138690174400350066521066443173956637070601334813818255353932293675457981776480954258704356352767627493506932240393139909950233060479536908872368616281758101372139258364960683079890385789341398243732660967588078879500284568720765237307168109702143428548772427153036993944983978662627449091340776198665656361522435956553528161418699512667870435629966760385879557507708567040444112152416646288259684963825397332517763898293055146515210648379369996660074813167781823861189229282383780042750335774446635733783436750203710440281324385744376841387800920533180600642501277229378622314449514552764043654363516053484437151918798506882220155851228777087539698716358606985040883731340177126354273192358373137915190676044214544955624465782690803509046917660695503082813619072943278992806556823261877303346263528606752231518609068265653539476357578474758759094906519582681205586775452735162671098170757218702856049125374587592821679636522528148159411203859229413121365043234366453091346441356101206793338281559527773099538491032126128866413604078924808331384458669903323563840973921225012964958291859871405553961212432332509710729122006137794543321023062645812474785478536021828635050593276412067563471755205113148188865413331524090915203091385091227949202785968506402939387681487157748259868234905733409652624008246794324284619003628491830939740923025428972999860976778782040207015691610587260379285759162702216055868229584877488982575887593095938650536138954531422943484620190549683523180367827596816662189160834366767507783906408534417713995973970270966423069444624873819358378180033325745980831066189079476099053571437340913186227275228428000326403294819503407923482477849069976666290987170909921619310074017546416660931717498624009778879252645578671588384991897810538452626953164548691268255787806601172459124735268284508873247161319948337991865336622553842851777583118364108610734948432815493991032002129556093011329000183197669676181224130087767008863982878136459527356455997401233661016028432251521651839729223469749846735126782642030481932159692574662296595410184781507482422711041854196635697093839188726841283730028678887718080107335838322416220162668588465894909616151084469118047793179824400021745159093121786548226195094464566478813036335358126489711484763662853981528075225220431582838937626190509052592247644077492060771056722348025344678281692531600758122824212151772830955712342352978165068211870975834314199960459567270301033862246077275375459192694744037940062429380140593206690126303964152261327831440161889639909809438777705888996064955410950149418378135807283201536546791565574328517324124645812171393744425227896575688533317886888950212735696521833812886177255999868893232730483912600248630259163172236931294139864140375544338934463272275545583430502917905984758868235882487511173076057494218569757849387079231698322301080119876188841093681065115372564563657597128363732118809945978278709411352711124582299267918753158923676925220957143319970631149219259377892319031312273287143985574794816548510154999090531857020469751220623734196528595981120120365111733510298236003952770594184517850413666104867927418371534259365926982519834260363849933382608767114091851575349012246206882012969636906871797294327659154241534730607324560580716423865236128084581723069832833982043444082438431383221522668430174788698719897137751900176277416838142327956612990531714629218706335254863117536401319519004677474190495586923688640178319709230862069383569971878870900078009402530449052414914806134585590407134384293762443663511980766324231688368970743999149039752992246721017414084592725967280583277534186842206964516801333290930566493722173231095760757301919553037297823772921982657971281168016746130090196813594540896117825527735246268937012913951548225927161785878411101699614380525621352581414351528619220340199040123258529889353660789211832626762799539075532636469567190676981997596296474644573903228549356213196762253924109425316054357393504409769802322410830233935285585070647673617236277480168743083680910956857761253908304963393300165543061558213962509302237740964159374961486680227394151134685368924113816675464407545148414006836984523917179117299274178707182099809670564564875387904712474832366957373250804119402929109000291138178932556724782224257905863664736847108024149171213527110430466084494397333087094452145980049655762241082470679027580735679407206653560168459195619765821905613143505132850494098836184568684127629078994168606241759499071279279958295894348472164999566153072236058404713922956655685050845691585274618231568260471404618211827918824324777135186331136695777157969558099636396294338852807172104022088871168489254574857069261041846055934482160723502716419560496094187589949415164703103725359398566481662050256103271152156254037433699679465349868275093674463872562775584051572416826627810024518830213778315840899877879077824866503586704964960884676008687426557586722036195494766246287490007332143873783350089385407020119305214288841008314751091773750614156215149746800484220101636390780169712985316659234069794775839517652748165600523959541520057047113871768485147048049109920833761988200503868340522645853665228628650087739625507297933086890100273639707964144627002476238872488702617755998808202445277109643261320093443748344866425233668608263458516491522501880823047512467823239025190033240705641131498818570245637523724372976539250992559365660388619384463000776907158174678740965619923515770950550814763792202187761137291399414287173496558026349595858996920904011597414724269766556553845596391657549328009310747313020172161682231045784507664070334797480147308828225840757982691280030499355413208617849040898552634580330246885379833232387112958615111116242470137263486566332074872089050294678470500734715245491176838885517423397099153094423965923762101575865124926786667813811272483760264347948311378105793050352918416256306438124563030505029163770220099041886311021831603281307060850680155528921113689664874352164270647869884693838452450025274269092440403400700466562036387687807583736606584793013727543855515952597419641768506664980704297783453974715301407283038785637439135766062410670476310151576023612999648503877330081197920193467472820221881117543015871926733083458596648904348925731062608745620020719243590582997578528967562293821377558785757007820561422001201070232164503128328253904800055368981777668090550631168596584970369969685545979326601666787503201321965827782888661057666827309077677801025952296867999676894759897858673145635288868974405106902012961062025207847916413847203245176782602352974853692864084379119204227871183238726406628227737304014457541829003319378997512320262300723966074118497873282309128151432579179741400465491433185527211161805717899745664441867504914041169386614251060754610280854981849492219552865234501864327764559286258016266343216378535032358919787051769335559487719092629579712867302855711023655464176811006768417566140782977009094970365179850296009275893808480530559410737826001742409608665938597659438092844936291929398915178488395560134365829178189219983383360915644141184269121962456392482390468217760938675004053665108543377805465985216388391400902913668236194275406288860986990370440272760300142233892789367224941290921854585708042489107444312731829477104125255046056671603882854637708068821928791569001620891703512567266246954670488654308357556031478490641735648374081300704059907063753144774296454180524937042915583047673274943346071719969703172769138514217889646835732554494836406294578998201872776751195081705010375494359861091505354949181697485355842743473870742910667005888366794827795764545006708662003590609944099354301485152674015570711741828182259265473702521164983716281221087082743602312148440682348389884804749589542246033929126765789702941079361540702430153484610779350054539275976692801238920078912023751092510757992472237661169362836053011689927070154289035678994339600682026061734866141995879309237833042217540475240941585998129495846278779039620563947220775018011406749102545902392198811456246181753827755583391338879965763066162113499181126447075595905880919421941013685563181013555401705520062262971434125109244032404347380431750800392756460480534016682267129820481362736911660558827341149681985530579311290087712155653827905606081635554120323426213161835089305635079786051034423677657497676734622017030131303393173472280260680909531736123650747807270786602312852547173561868043612416664446481926345860632185490085278956716851956750069388694653612796372230586369397116698665892043823726651804761373314508837079579788215362797455538641317307445694401167079187645807484608546698029130869507715081295920359452807305814362466218883083843918562039422324626083696720452229799131449299025127437851772497301530853610308379621390162746739386251936064583149152846589037385185829624607588423991819752721948616871031775884659384058342091502497473487983705650216785957731777741040613018139732563185725254442733181174554511612203556973314894077715750243497687587478203262913614174701099579256058378738440668433817851549766008498681351162849821515286668713353694736840506289691678887491023156272436649525984113767108201015100157035167848102288178775170945595389750860854053621027271507303910304981893669618512189908233405062521307153891718741286747331634216930556135596171502583108967451334930496054943593809805295346236831076670625691921968094897937486309451295114880346635182580732508865690186413723046376530649004353208480265828319754483302295773697000732214955556503798963893505647937227110584445646978535224396485620126045843162397230417114539486091272263726563990288427835538019650562644129958879561408177929545416210072570519904074873488697407108131991421654248066275978990782452068426234263602965671013877777028089951482707581728247924917466740232158456340181813816856747683608233530817595178739686020733831262800830431556376231440339349422962034232133359465891150192308882039773049661836151648580966231048404005961561405113544782267984741765389517719778898082986621788022355920864664910809699226174407159138888938410031661049921873174264907996056181907411773416995032882842575801211707322755147873098724017544632068515823348141413563661223946263011274837806870205683929021452234494207365187661849173091018213265380922470247366194812083414000836251462570759576418762531625928715340832581156623915511022312019079619088622875790692308544492162039866507354717802041515091705232814438353614443389758018473641369138334716973896314721049747218538116347753063817620943710929925517558362764272209920838976062071414856042345281670928901043481741614493874303980570303720623593335471735193275159157936814725784092131994710325649176158234853879367429763698328277310096372696233914707994252020624102873880647198019768138204159833863502863875233126615808045284217363160207503752673872017612237514823984402743692753640896748454449331109245156040777920986178018779381427266586721333317073985832637938891848066657886904641381195010245315101737560945038144186210207504207638405418718481585420664221708789228773602636384563272232397774870636481780726221773246907993166310531066778289855716582596287377767060883096341773038025822424017481283053250495159599834829142526101102005943790050898443831639871946983806525564923576934358118315182604455818084927099756091609834101090811018185190636478024333412432176243104082855938287812166642882244248013168875354762624715743430333324593287235864771874947594110752660340430589915331816834784085075122429951840947443946170221444068463134210271217776549111784652766479806442743219584327865261351100250978038533056264506423961410227455509158946874497544047134436259897750404045458911537210574014634135938872665971719040112820117119574541950574733446915423958447367221555926572518967359806280696323229383584646949265490951465453445080562321225571238824939284551134342431329519158656349638696671860231492993934953047427273156145324344855702705085372121172137356768034737208769869672244106206437693814579146262930102230560905894908672525373411630183499317942482611395283917272693872565788885606114498728820467007198093081417795268597242681449607303783146062866746834069201741031769306002673534759405629423954805602467726264106992180022795871568631211680100358934320196048696648196324736353496825065036503260842692950948829574999072841385958587008286424603538354290515109365077734644076723179213279195835398548070382960715043023648365001466534809848192847199808840865980397040787150635503650727600404244109855727718982043837563649658983625873665665182011880947289360839000938419375245555781429480418174062068284469516568996426720917920018793800128699054310169191895698260221110570183132468857726720393506822655932614211371860008586524601968493072106011803671832802980011120740709536977714312251314844091669292847943108548997413173247913500949901757223634070519233364294953754734516332276897427436755903449372186534256355404952162035091314958045535442894739625169197337513657527607093406697638705713000903121821868126053103235300203530954432392271895454498434222088615742129426068080415615934374878306311184567020073474605457121707923172961905514751282270682038991560099148456077820115592370113822666973823083618142411881341730426507894655524892336006127048122341521255882579093447967559256052979865344953041507265356292631978310016731665107132100656513982485675823407758704660763885816700193675096599339089772256303353873259165993415931289755652278971694510399793570036026235137957027053351523704628103046129759927563599419433164614537323790855875598380695205598808052953132930789023280523273004953939051411598934466431851153268221742071182450109536168876910151936878498474257077408912142577639550922395584988325469501926566117567927128537861462287010409564044215606228429348281398379346406158253021641736449762991418940591801185066233913851111802796013524784514166312688314136011224373080701183507165055818570925052219515266385057611793068649654527115258978719184206841818684359118785435801557263918479959053561211809164856971513332859099604920508898733975892606618624016408009675949186525581359333631572310472072452316859322472557055429469086071267152071095248333524430030977365461993945831745151836080748542947017423064223886333854426399323011752026263947071762702400955501165825230380504938550255939527991054314718915463249829040923067207520211005519596489219010961393522380910475155393805092597442689353637160579210870427967321003728716900083830546022140678160444308846792768059630263344094251439251901999620103122422777520150908739011819099705054058644588077103283884268559988422487864038500596902134853419574513170230041179679886138070539750460469304377854192411782668726897151212991816951144385752895755324939223837597933757924543485682278963737772520969728446336796622825047299434157920340707081772884716874825931141478991478895633349134261299527741371052076437629339040742103808815783739710298439204389529839083467486924121956321910553509742877194501713137519572334590041369766842997566060777676831737235116990683164911034485856992178648567237179497066630657226742911383783357890822940208671401995116203545394126899095948774609887134412799729061022830672024659769350786320864051799525942204768619818456431153262982749037403267964358606980273155234048100995289824233539624491723368366684619474229693169581671547260992201301618718900468648242167097417933009469320076581101866578843584979796935664005389099761972258203764893857500911568872257399392890886399139993340877943880811339878036438722964693438961670717095216272218050708473897783613642804004198954967023540819773282939436104897501228300824269737324885537090973129711050043495247824618384903387926487113258721076744340965392076542562961799655284574767422679448756137058705027465820638135342726546412388639335956230591944732552850192715303134885264053353040018347201437475652148722523492536715838227812999223883329045217073888437027067523520015172115535824278738374832995702477617191277498387296505789392212894140461917719053092945237761349728872678299016027293389590190733835836884703601440202965937732703044159202304406275946937426785669539112018555782507804941707306481329704179534542869461744567794498929391424636564738630330504848374454570267954278265552372465130665505527573925820565180719785351450128853000505886506703555353943642166853447653531341427750823332345576860897934528959020815685617597944319112191284274505071721873454809823722808195509969656545651143313610499464619119662691551375113043442878621726416094562579309444400600685423101345954816011386168968474973581822034928134738100865865611819302099907091970109939794378485697299622788887385286870234780664982293319715786873525158278397247926870666128802781418263725850283345758868625643430723466144453423317044790424452076388887380075103640103359973891669414703104627706859209158904933195651987113245542968500413829128509987401999018497564386925614279428409471425496924627020386930944236502513167163663421916698854400121754466129686010789467016218689429120583881952350017801843154148333159627996696852861064064254754874181410089709757076575433130451938283714694762995083237124471201111393535966139994503713227504985258348794625223501374663298928824235933687430215092808114047771904752222715347999865108346281181695959721844086959749739738103886176273031151884172693028334178659386080014343840198926084675374050217046708368506299081605182629993955699531289001854618001359022514069291737303472721440205723827371162249459090436599284354190382667290993268779847553039167053272793623160036319487160671093453560256996402421363371002093170223484845244552647423311568565770582057606834225516250996167756692762246696459082599416394985342899780036893128468336219578781078073204159210169696611704945722630124923347707401637185310642960783837600635029801620610293467471821195349809901489687764938165783802088040107747066032827471595931794505147683082420112565965103358394352429307477433756619854755672660849970715065025978078605616052751252152404852787452256166629805311833857699309304125946059931984455562534019082028134863696659005796700633175225811986841482230423090634529592719102385575349594562442909248894740237006981938561898271845068618927851318790887079943986798090998776920330339585046277462133057494757109740096042210090285006866652526436152029025882745101002524069310589910429742822827710587079743792840238402170604187690977237512422888513273656333549767872420761836314117788609469248636674022470509971898056674130066368446273659447953361853647723938804382842839113069349369185130018174017475850543253252477308777941131691144206933826379623204969118557210082402025064626689647647824060287866536387090124482488608713793814549300138633728828356351089160068570529923411214318610273408463480787910035644736965520639306909656919366471597928437938219333053370244155574057680551967152339726082200686734411079944235542816354099400474584386420143407641510530983628009763929410105229669624431521928290855204397243251654269440778577248616164345515326993916471010195835689595599472428613687805550494870836941858672613454132526266615215593683699966884349287986904325597926866156481673042381030600562861084726721209717951077683271438939363175338303515192832471073953507092753920564481399431996846490169345338869026015393044832585386520289843816717062621291780319322149013261296182139887411325092180594369557762996796174473864514200630795871835612996233948901148803649180047155826272537659355376415676080300688703076799119236978428437473584545023911029027689233234237775201613925197509837295009187197651130599083001938840359340441771553550790102821166117039683550212261240293886235898511073247685428069469766523103139406768762447836682441134683512616866992753764719901274449290199074064134693026299746220423947739521360066874802873449719432840513092682952603817814612882417754607514621077243603835894885304684931431319063852943456301360141280172874263964957029010259448751311786231821711561674714527318199279818426935441158836265394078549460882621816459800375633435031761484845964530180429486348075631122919652415589298848872246809719299363539198703675132041226522097512621390028992533850755283370329692444488107706320515250477194011545452779280320785917572555375363843629418400752920625037369217438931938554642289135205221559548419536817655552095765900614750329370340925448388979357210162867298801763064978413783779340866777212024209143930639547833315590151942585471245458279540218695675104645793686017056419680829943353824148963277029123289497099396812112707128451709337550819279019548214932453629831739326389403811523914652355806995129681194971346880019102214188854645779549482605018141243406690014820321696485217877489783080524847500280366489730934171856257419406751954126339188001668511774637635814990113760328934930661500295617274136358057960651735499966240007635208165912263137183014391261237596163397173677647979866814929809192717424715281300371288666878335496147708926053297164550834874228176602489020464647751965135673470281022782470152192164224527737168809434866038642862954956677881331155487574556937667242198589110499626602247536548953841569204410291842466043350927373799895696764796918474942165188748083255439748913083925242087090572371355763815504831041627994696011620755569262592747134971323105137708132512696547188979603178112371186353442387661446656461789777832020101260525079423679749463682765786178507789055111007529807915679347369794497884103372791759984900312157665763878692201195052307957932748892855293406606891160132762822581643109766000124107605341233813723876523236273070038223553596455009297094793150648644005258355650808054157716152453126459534034545831131636256112116974498927658324991319403899047898118254195378756195362476010222906511447149172728993754998293610034081845547428697502307593604371720009411610514249522077692857800480340315152095754718670562112804849453747935815837319002334102667441502435424518205248992091373829190061523562314972382096295041180316681619867417812027286504237575082751037646316826330941950975174332462593419474538792716508626163498853947159108739543588194716071698806252725566078513101604692643268041117748951830465248500684952999219708799979139823959540737844424614612511014886986010336328425058318844676468587653150634531107090138322389026685069440279101992710897956158604280443272184788019990155821352217205500549319825407800439997208308531518432165682852918512535466209758646757798732363373911104660204866914139682979120351505116491099289596863205981916213632237304246039168795975970259976267897080186090631480862532386513776504915137298061989875794584144743564260277235853014885352007871253603095262912076524894073812495177269657121164359328788513421917483114097506383449316979159306809828425604798696878146447650076287831058772896445534028850358136586765074446881739545612150148903736815640488218297872943653828549618476245517512756081939757931449433236668583371809623810149446251579944923077118104735354020551901505416354616059826714696651228865583763300254128214042314087996989790697921858904276210495279971800645083548679010119331208146490573186712882077371554828393597672362231385151988736051889489827189098081342121349212811368494763935533234205243914967297183811984277087844288905701705670589474093645471744529795099161988465731772446927866692641776027510424452007532001833056474182925644436616648027567352732969861868822650205690291375366083356379221717229236089066844922905638724799488096293534294355657170852774234184174606694222932590850135859054650460537996740738823032950207328213067485391623623845832238720633574811419822756480986813336222643264447451600455941467687937211740395536043941186476379098243016852148812659952235880558324532399410780481063148594805988866443570650264066021119545168491413947309161713175302632425841781807750757168947989674870477003023644230275385237292622041909472527552257646962250818842429477789206090323583270518937196089479368442954802970597082212488256738423785307092115692697009317459464177318540014061330647003735160776617594979259012953383197789192193611978773535529405711867854012003257650839796449724909412537758960238222933164726381150439061360368978873000402223751445107851105170336207937082309110041439073883506040695695369745964111614977164513584982551920858902822323539877136789533437660527943424907339594420058776391954521682757564423708489079231488478382465486523542311698443814571347623923454262335347643232418289825870943825883889409907621904659910384815352846849122222038065227928715368195909694846871859249080366479328221179942270456224649811447681783294575579685354611365279587976791787696306735523973796835003488345919656105983474442987385782035065837722531572416523550415794238088379902650129536368108115423304248109577542255876636199496948122982200759752938948373990102348350414588416101255860222792809821578478784781493795690883955328322344468025597625704523774987285794268137542161996130223477228381736223040473951944980555869583016213367650792772870602176652629895947345551541651251165091586536596025545326470948597113690985231373039083312274702833351254394614878744250021919509234370414219329664318655600327985705865267688523183953553053368844837298965818016452205571382816607091029155013120677137772918078024334910885409086444683147129795941993034279373678887070603701050811334031269027747310941604687647452766081065697399602059392242204462545415896126075267351613843072258568765342291475883427777702872589826982979180930155672603398431544587080348164572872111497843037455337237977713150396958849609979638847380226793856779341534333900771743916078434407863444091261924029823855449058101837776429630495928776402674489237800975743887111556652867038016225773671552572325275761022605879742660547129132028473057587416330813556905519223665539276806797168320689071060711458726279147534140877619145267285525070370060982547958785448589832393215209413797438808043256953392361605917611994097984143919577781262649536039874602267655162219005990720999392535934911104676407821245600273979904155825449089559967543547392103441049967549356092037133025653462981353229738898173391358455700086910286073982632742880760442382102119774154013292979943181937329297527387646888699419663308479486566906467492938717585827927392827182520491551686011883078243126074079010738100320645104409798990473858568065344806987736140205314153316969584695076990573976647795729565613382424122457126888245556990403751394646609239158742279720427270909614615521502244040994377706042856797859273676664008394897573494989907306588857185423379612394876230864717869756242966672772792473510546710335508404863343211807718442590343391946220879162608111566247870454013883881276782688143749540549898726456475480067122505811959419776984400145171315497793629270824235275409016155960133111635257527193811508550180794346735902158540917052630003211962700194728892017044814619799803903977832096562855465468681949014987379732318061855962515062276693249894117080387890353212450242191087327741199136223006322751606486322110366259661726040681384679491842459328383775513798519035521685001014579585675602864515353866520494836853407222011550619246326602952170335471069928426880640912850021038849242433859792307067514029676265700590229173271255029567116767002693215792693010481181896850134692916001635828456560602837830119463091747846785334310564864601352556728661639445206723416247625192323817846897046193739110142788114194364852074056685464196798307038849161086468194565441509361405630816848119282066848186982533338300662574340454726624047485672436153893858843643809344160714876860626749043989806091306742129539655615037535938095454218360132377454587406252298381515460103046211020171128547551485722038683291693278398880614983261421042738617243741499493115973984546858224287082916617951230678865944829835158224679473117606178071396784095837605331561874495181899030068575277505643744690481632021753287300653233313508110833132111449819484240766441668749414614341857524739131161949106564005449736951257160075305994743089207723154637286612995260249914300261001276352949897456393375932537176295857151907799411105380169625176985350527824108436876908934070543129721151909349955240231492349585107006276365914633574993877439377968710208094639879222673168169044246926085414650344974845056020230243216183740892767138709764787814430210080098238914289223613465728078262192375313683324116430853363870419822575037233439807417169835921475377026868289257032059929883694806348869638338478016694201353164469217870155541224885929269749631457188791707291415597417594752606887386570434156414506212523602626139684437902409035491456687920059975043335352016944702498963827586638822527990167471396611081066873390139024021327230168604899879105517525165417223931204036872821673061254246254992785076265619429769196335013983153925613489768612190384119461476316665849226097716624164173703879516220330729858823506605594885880217814483023436688559390763917375613886536608517421188457787748098074515158694474745931758637243766841226465176571731786267790690235468962697776034546382712527923797342341943792727737336534712285298489479645177273806029083327577857585986883929391452237088842801332027365355942736692013334264297270696385568423152265466889120698859130099234600317009801774536059390998421839103639183699617677971995092155486599433575769717802521210792493167275650023032115777179832524956676450545468482498006958261310897242043651158106372579545145239618998817403302241999161923072321522652399716516031312402926581411412492693526610115886533019567296950034825856938968246456344258454381454670118485908226105783916792861349603643459826660668103186235775694658634121904272983974375164290042678176194552375835392670399170724046526937987353891531519601133157615347099667165706147814439002697787217681948164914665616388357159860823771825345368088534409385203582230100003717839306560949125349308018105948760640154630693529214748749692984530648692011525752636226398663411282352979973658516291577626434781936637732307440042718240846164121065870728155067856536769598510317233438131098601528782922856695790888854340544495625998752992687981300003966617602898155847133257654174181156629005313782824524504504499592438714141137138556020614438614156760881526598535990544694610482875295016761279682378722148519004142009446090592970467673304964683661493445357089702873761478101973183895541978467326270935145117802033264190498940698251463945150326511265985048060734406622514782745630759548210825684543003425861494731106165256699671866034913626584809538950584328323870735674590520422258900733062234123843153977460265722741166816881639086244011456466739262326237939084125523501285466990940954077612588601289425626065641274278793608707847627048959445965522844977692965628546596214190598574927343924783200899992715836098513301268266299921367078970655842990201866658198694035864821130711929807862827176757955800294138125183050639327911012782252162896426438974048733700518437134191490178614169567807865786171937614940128043079416227000665746153635164155291625244661862520704116498005219072284561526224440571194345867698943756535414893415906142511877095096385986167833200188074310303059456194217485460181880639716406010766274979836986632037398920912106741977358141427509920931033925669295389163973496243079062504809870718796530261385717951299106738128123092164933058952676583828474931922531247432415568650657574402338975725541030340307103490628445196093833865157245756206223365670160651309138530239654915350081189658501258992433312446126232171101232370867565629275026873247630478860191295442730389578449870306817207533384580979084716077965694324365253868692311481719514567557828553441228655024793225463918419417942402114703610064283534829769091662982285412918616531244825099418666136942824747578131794746320751679352025369713209333077971587301064279315498465705480494812627724593366344783746777329284252880336621728478405036823740732532200929195947311231168365421011963573703246083579859741014898582789219382970397957887480808558155239723998630088761446102189995262131634656860921865037245582757088677603128146902243863929152006419781127702793582240588379855494912803657038474203089299375879883722825261873570279615481091453044274741191241973652679855074075054657222764408753539035056173952166384707588670066635069596376211486127122255135036393153959525319155884335512415851019189272411470420541349707450982450439156935494665665933515472612238182947395768830448377181710574944155460858620273818796475436859083371976335398333410179312474688525429014728863100017509192128290504345389111004146850132078669366349955848067317413055578439234899261082736601544841676227261113459946011854653058816761903601419412848553634769992049385758476863190147366548014715493195055811570274838257060900319027242880010701001520307912436888972638281745175109380885195432395294004899958163764782457298145164242035597804843866113513134600451394238587101534543104285472940698485439937800144900544688717778533649610379814751717262385337328530694746599842056364293811389045115325066622545721595410816385529167854878004465784911526597641790386745517762497298481603831860042812319916026322440597688376015880344063948361433676458759262596113297343676854974203487981597769897376009932878268611645989063224006581078052560279481028563495809311000731272533412386557735912117017381825884971380279225318576671285525386892512569554980893786197433388429059904536602680347359211877565733608649621300121313438705578195887120411238042494167802546230049252107663280815783219028286408003112166030944311890557721220728327362288023702159955488677945057513670522866572365939921923100088641037428620938964642816947731929631913932546037102238713192996657173918571658479837335848894232303777441697592770887239298174558545418667346448081864861732708506635482462751916342550840408378536374891096437273038914301688240658802091670856283720825063066480576040555266124465364181958936358394037527508745970455126949535416460025887756671122250633153670120264360954596696165616461049639738624031284618860085431561694799362552131185286178155418180687409158111767153953193031917694783157433394610142086002458006325630901915875030001323542823208868732779340248709762308038420529228457417309970547164807244010985516501993291158008723342440998721642284161682487832222506127703565308864466073853109913667262732947401698606956815710020653853642625603858405540647008327598579601947038263065088309767998371532757889682566733158840337247433616062086092309044640159373189648999522609504738524087169692010676159189549105972702365582422314837931396545844018490793386889121826212868431177574491982471633313181071718407148383485721847378369250813881367712856255171769385070452186830890960483852664724333370501253280458022215287049622164764373322013428630837200746705547463900998820964648916216937895442443297415797488126669086221002568929518234076016114070675469641741931215810101198715335385718027008981030263109239082456744006926824813358379268938354400136671230766727627347092079321893737401540512549848671721947455912098670484198691734784210739965262823013596501294872589466917552688298691277646321863119838335775774667698181239371573020804166152592734499592916786178136670993281975116942849301125544587664426456761196353469017248242118650167728940267459480606083336907433491665019428663015079097561047009608090267517729973787116053936029242839656068511742873288496146122054778729321299192553081606834009900033573804683365036054170458060905938253179650441027102159663480725731196532792651037395920504896245574353020828435602030358238593427308687422924933665329354445924878866305138458967420281572183878865983263925190850610219161184438949225317118446667055327778131915248821525013131353987337871001145506337251181206539992139336639898708081581451098458974977444091084557312579327771536377346764169343581559064461953896139329975166183364833053824397633596721511349593526608407620030609084657908126912158135911901179039365684536591341252689691327223461795171493029903084711316897853842457919181022093780328889859722281631085606299030853431303827540485953894856793308323803815964403118361013523092348446282132816569014666247864949991277949645734735064875714582589785011866856627423100156963716738435544029012096427973976548140737615752362481663375382587573390709714851776251809371182975400907393953556147696939400621645768396142184280273063952893482192124697770027764376768873818401793210148576009731595754717016316693294429755525235132964860826964281477092624809179031931480845023927490984471398185086009592499582449285629165856827718459979183836210253095547611040543985469143977519837117708254449673057497730645702479625169378002239500554961418610709600854898119621907741124152147149680543841163220449329216025132339287743297484553546643520055236478617449247628792252474365463365848778064189664134741620078170050918559621461820028799892332233044170270997801319808691545149322805080261876334755640573624261518520530868067691080175858041096741517451306494024537969462574751329851889549623487704979056261876756923033425724669513025467180277171265244245694628303028602440603914462172814644156377580947173240370893173146717278081291563438485432782066348070112612451138092629794501519913602927546678282553414872315960882083426160872070843355387045338646730554463479525780162482583087001015539977272456733712717399173471792426789819591399489194213750827245652128565877463248395208808282845762059270017366923671079740759839313570084791688084329745425724765131570239053020749897819357136123141741403120991166296038230722317014826996898564295808003635108765219823512279994634892337734027900110474291115987746414127066128717925881836759022882160385321864155231789121228354926968432928090598088310463695815261525431629872592939834129503572264770878440121799564973415384127527553544944212506734081385318999801055563204231957218107859168959128614703563911914735317637930755120717132544010329981404005891540463467997745148543760465489783137845268474631030104249405581456593008990575673966820790231959043828031380694609188239303561725193392444089258299910882005025786201428517421605624087794808720008458584659538257478479909911076848869732200584527672611502616010386811623917806836003664847570041664378523263684708009527592704487055514815178824418986808416621807767713431162812318010151871517995519633740387356714153604867012304479692816034638346786794572679615224771763613051211486922888891070098367909627140904686472960435327854786719946267112559032281611869318356029394016267238696392108082321535118997985075952061565460506661134092057945133086269658299692175060245772892163553536612910202466026990537161165042457273856595283342176921395646847945398542655733320310855479560064578486464307596671317719310356196705408201380217304787496516828210139766375390300348193559158057709248636029424276382783739718117848341700265994212691239784047333449562877216994831488523352080096307008305170434064581541328540650320289725702860933102984991144366904439109044357875178776140383678159118481841343680760627622504913142846595195568830413395237851836356079055627201028022019800283400477362426066565173131138996934002832954650808084397802285881092204247169548710628228080684750198844614143120684187927861091403773894405154899958008540048265806830922794713229911223252102099130935654269208379883722955299978984761268689968852326766112155151347856032628984049966577178754158054108273509450973261859658988949179635464267212023118900770039215822740399358262745962405659094865498470938405949858600921192269102288256274781499352610173101198730097505608864509195545752753093582871883556959692846666047441030605045666198624954824595475965700407379606409545525067182970381889809009339615845683397893164434487455383803590636616111199088244186313003438402563077662725361064768694752927120045707994450893019853530244219930632399521105788821765847340473572018117888409821935196064512011174419427694334223793890551348987830903103954419357761161899548106671712697485267302648714730058623104936391157917058575040941678343938922959457938304193818504119171602754150542109955796584069358441110198358281078615360075308327400516704257682146748624812451991997803549171923510426998923973604536403218768508479254344190336536814224513571933218657026200400805001826125155029350568145875370850005078556062740138367385995712385641434625969976203058432388759353633829470891807569278011649444273027714960285742931778743093733126789839895058681251126628188754795715302631974264582953211853298187040230107917811514857756929113074416905392925024327069268194447757715092330350297316425470570615532394952102141695128231596143048685945927610333165689588976972467918233144697130037143495461391541123196976139232431357348019105315977759646051837153898593966020695454307257372307526169155366822403057893634308179375969596039125632690545719475881796725426140761151429293600121628324597515701185211079139083104526027575823716078566982860170944326966376173253515711793708528160233784055696445428019462727981038946972653990112751751757060843484278303153607940660522974919546028815059226056532371425467791060711984158564192137918173630900090287634811403714167396496445749569715749116418951567447520106411553077539656326105605902583277828729395017866476609061844964538950302783804628888503729999513143110647233332068541224001215962023102810214143602571829284495440975441823435712643303982319326796605154530366800100158250543595460089328209154695630690870564726473159814366039659239821880564023797882302901270073554029923578306643611779048955653345137314494768321650254242580957681942779539302472766158730321285052690562168389548226443787808648373949511407532576203549728962420833086155621193075944196019041710862978962249206262041766367955107328378024914707445438320664757483477815769266258335882969116965860359253475597674223664410542608817316237792107163542563351020573071959323155973147733725319572009742839660173273602971824277552740210753436682201031944599924386254278888499658247949513364451328905976789178561768878038535276397261606735827257628508766488996658613390899659719540723252777345795227421560625878578217365186550611501289702406921640615224241167851327546514444914085748914715160758601319752887505851391994228247679857053850558948388132572369778197424257652330003696311096441392465575657407005661853244712822899169656702371773523853547552485122509146444621336678148970354273210459062436275961222845200434379777399265434475379704215517191532719595719134577097657302621234495216452644872065594223943043140012945985438220372414472504260607712679233355073784514919470897810975532318382124789862676502271165459064518304244314720458461336499104389045682522574333720979266350860230012789307179449538032623925202153618549428626963425229770274600448354702258825344692555644685734722195559114630991830813835082414968504125253811492808514723846661731505814334412743728849409578694425214023340304278682609476367936913657057657874432509756254565925539883884465579495684517866246145940064894299294625683155891461954533956277469458176164756246545950835984888145439516289130845326677420505658591084098254243197608350050177048988651609257857093492232480980750978212131268813607539931959165161901841248561624661026499512777542833352012857346726591150430290633517037623294238892268033126948987068226405264069291700952935606266272305963276487440335530145169030193905655537668101544892512963602192809880227554621084250455620537981947018423038547107099201920197471972950617407023062738403866448216138782411308756597038596411696853815250396226769620766347605927468072897641637531850902195765211632844329954917917909495166211757460032391556295087383190425192348689175806278261108541912130814203106605808589325889133469562986391374957514713208353029235410296553598720970840246895273396350196457732430813879898046811216226368319036838231645386619318401887161770452645794240749040320151361181307170612266483153205858880997628634967073381406859869946421761839350274391591815348942231642797089791304282223399293129657283083709110291925988530978827310463126223021847225900678679454784724042364064732719091920651473926912808498983670525893960329230656905829294260530649143518719155946676725381513782864845092306980060380682532928031500210647421025339887601344462910102258024506022121464928924519516048028099030450462107691664755954952599150150647325309591137602828120377538397961151938537308603397710446172628341410593376078782289442329196394273697101915365799280958949877954336255780238550791622653796048016754197474924208006275408365030124367094038381835693765515052879501475877357967041721997116953108000846635777374965717674834304782474415078826334245807184037556894603819479021496298228557636399693247071268575989962963105590982003722637754000600401246057034815138705489260396876462660338472257506610770260664508642510109264370546479979683202176028024639151588739184881306474567041440400828455427909465666456715733879500241770780689856755834685924919066987037641713934873291572836157819822050358782714046856927721267679659548025344090601664092237717680893263556056653988612511406214837984655979134117688913848116156106234117280902123069285079012828995084431654888457323782204518039510010147247640741893319880716819225699327173333920054440254996564375272068362969986503531927056187288573174501406469602999044143955945667687026754886532790845256100107855522645636258627553053119902530736115884353212958731628132532410660590447677553631898573217571260403351504812812587870905360266761940487053077416988579711211261319538585035234819857564959302030435544165305829322308197069399186370843924249906268486577464513391645038363101249962808125789386095418043474410762487027357604258070990698697074549701006750907836984252065266450779392846665502597576812097934588473307552853755054145127958828226083896624137418160704748503893373869919926386838704744571327121054614648644786188439050183029371789420900799631478505282565999510590754568164780247765338334266501512458193265721038951988564508201484026929388247174906473555873953493245712678432975191495707897449531395519931291407135175383746316113991113774925782678845090340418629563514893816872581959158962405770099478647598676304079237921889318314926604365451366269316021422921974199665723490927227025062766666825832663515154798998725402286303444067393668956592486910273000097955678979540350958305590341334476158506450602711235866301982506255359326671127532427427314519567971122818656851201641269993234146470762538187440485584191745577517785795393542215181996011542913974987259251321150342802014524380788121150936405054729330269255833991082648739885384734650335635184179209676497034351514982899421479085630151587806798979054853828043589890920525297603526209531725385378839936718396985929747772975967833941232895479424785107492766785333725371943663147660561999518436112569581082991576843485899993086810126957335670609704824321606689667675988849710489164255341233981440024550350261393687868967902159712198986998957972234594703003929168474801837469613608467898660497826885926751730448460808694898007163727199818123938250252635616123090459441499767920664818494173727223671856096886768046308909937815945395330352848512673733135834685380537829401760036679965092159015631483427404717615048348744182876028217029401372864279374581377633807461225518956894694470385162428618004353520606888953449284060629532595102622957277858268369193529662588877428650938658657333284739807863169017119406634466370660331993275629959411285721473734299641007091342506958449382410587445679111521867804580408774391438377585344687464712890970298782801371926998834414960368407206294681767253111685031019730041919948334392338862454645315057283021022722106181215677402910644491265270414706644153586453911881779096853578190347234699682135640451717729290495224154355262387941314809114801320151172173445988660025008523692615431421392757446746720181200397182155610862690377647074897786237486743706698710891826668934809918867519912954647026195862269569550745083339679830342855318618056949486162191454990236314718198745664479111121664004540425417948403858981036533080371367190135207679985080911089789692108696233151006881591641613458280109247690432912368146157632612918810646453630850941457804327404389439501018701360280542998394352605048766742595002045602406019239301180484074004786178898829116355656901272774267733603906337513928100621428824397065190966790231351851040476274773781591792227595540027536224165328553965043550204530071219014135290929512389418826730438216390112620543870626624702786145279815762276795445505613529646205167594335051557953425931672962669712746273060237135932346469704701783759365694829334267330899589831305990990240012430638500588353057963919756584048547266618486518983198359763874010465516117974338660994300517878425070630197048643641406465183632445152998504729130509546424376929401115079209294387562609994583170899433560022428921889612236506122338721132321590432127246568761524305611515399963294980175026982946470818911124474648289435765171114286498960574382884625388074611208678089336685498901232622309052148636668617307711662357207471030654970294944521804535767397662497287228516324445264368207994088646994221385122825393383202388805358625948915078246939917752133529397735798231383215752428875142881956288618284712757428713016536546796202610438473125588667191734540899514691029085911645370470790883398012234701100301820592676795729599757700404673624036001607560587792672866005442100715876682490701490071172060560465322627766465806911509804515369706208703610441795973344693099178575692535622549073242517753231159841426777487158627456720010931631348515631426127958562112903630293371048897373357321598667122727151239916040733025984060602656043969500171879680533210719742687688326703871128336485926773704799244492591331793176738914434509174469252146652485384604210752727222102578452137306292149785017868689010911788178662146102943679586346819138683306861732885933120342172038146154163667653105926648937771469051569580569488375369899024990078485817642917550118964938414877438725384360286784281225365771173535586136542744072091054774545588048254835403394640455740381305200935375988918012386876556485123485242798969660078776077561958277919414972833054608586822624282681684723125294791542798540343504767469923778614541754875525423825648688593521565274294635851281506274088196079117657582226176445342532848567805266682184606993726168177529394844740607075181948067495601801955506611406219538705129485647468122823108780973838397114251621461477484993001351424579742012125280790542649884901344044033833209046832272262336968866520665900855706824605320874082784959588298204470619834838112545782608730444341715262462894316811212133719903136652212689146131356495689993877623142417960586188920334886447471403954318081250723456753481893325249934382100302615057223412693745010403383664846518468453787526074559470242495921084570372920918963826070735723897818745045474836846142505671452800953534879751959781650292441627006003300699850695508705478058046831070744934768269687344014187200851218146214049953293366956652427711850673380434301848013958917824310388963471715496420089315277886463270027727529481569985711861161356134523956803399408188091168455262658043390352226201068220889806469492703734193640836782283778306983951651862589583464804259883928540887370593425623372199980499769692627474879829238643171220760901071173653480103184485641468440271352705079591049013016209359881033499893880762028111340879499487803711059457486050858773440575764404044550111595684029984501923075752310716823615066196246506609209621877237643672286624499431933493487981338747150093219902265162667024835469013450204340235402765131857334181736991186974685283262951702935913018905293788373829969031434773454429460668246088523951948099036603054995087245487909725977125123550762087830613674415585302406599983002429009579660492467583829431190469155672835931902002863267463221717916961727306253107101643559696222780483009989545592322509602247835658789990409826717880809773431105170580810373770007742300972060545437567969856899923876055345925300177783094781687294514034504220851856210086812379789560206119207446995458571227813787004800624914749480710061444083921005658947813070993364003792046157050811212612123952693558588913473758431672239495100755960244742781013175466678797730864251784435201583198233234551745543099939169021294832069964450754875346659733952057423782834121663159738007881682799532288454393970627877394803021303213864989714276059903155252457362221700031598985994625738178437100643440371942177252203033092463555115376860082256528491203338086820558440869398049368790841902193149038115371208079773073834722181418268889432125629007414385119713317264091729917236596349833840669827208851737388918304219151399827818480845687419152304112661983709007973545011533493891528535808873801782769222090038371446716386005668377169835210459296823010372634331771339938021320695385130716356834235663677641228004818038818653966089636762339254019977024738463796554985571326092469510471571473329138328388413426909731556413282563645645773016221666367105267223883481735097216022278479562472048513208344754114142133138840656103671400925703741727647899274841425009720888531557366404164667659756370904393405199759503794220425835139738748715663201281316151729760855490447404097379746086856141835397861063241720643202473619794373694909486860413306073222659174104298012664691439099388307365116557449990963976721850269545897751799690414384691521313156753994477205111595458898262729526035178120995915695379693592975705239848262479296171114184070118282264260511399584795553140696866366095580788571626566596339786674079733153551658033057562155722338169834693364000248586100329631569753586320117197253948723235266058178444545094708057028276622777762368742607809529575741416748710273353774603002954618212346400178916460884513301462277564484202906493258097762035720893296011172821435168073999952656493362948511730464630362653799862217810187579591709194009478336714353217869314470136199851620294769232107562225031197803559987519705194311016376157846593664360244187801673547993358009974718811945624474731430637158910597110960906144711677578676026634678403022680938177171909725222756244891760234453930090987287719080783416677092963457851828660602221723401285960227445638144262031838606063519241977305635455788418868070152624778805410703499903013589358581521513133759873435206617613722749036812432141083118222249065524440867964272042302462542468750599126872595279800830936300124979115361516307403422273536470361326533736081408594948752029584899559947957112448423878376233482440996684213317627782684058875364133717354583081329576667911106593468874818254167889759726500091161704841668636262838096766706118184466684315309323302718063566598736063852426689848974393356785476076420356889951945820456364268498114585126443327597302546024985020644641597036675071588470890215867063354587301057490397035136136608352065679747775637867777867999866081379112501293026838289421900752162539349576843603811073461343086466197724682549423122629199288734412482380070837450027874079318302450557587888634859854379720226673710270289974073412351502335618061621960484888589561045324995738678549007192202081939977659581848160234814848880071510364432311402913539244679824178894558251680376064369438536165863499148615165050506526900316122855442503656623902240256212129948845257059667650007286485591042811169779465254951248435975874429752799978208885770965263279646415612559149559421511956552953924110540684994644807552675582297099890164010622375885835560246662591211897404099675129519591280350234290145587095944403106878231945231108314238250666959565919087641512001174591212050209133063401414200281816050743419753886803003286151075792975684648920879703597915762650533333409035997328361574228967372364687167192887167619913137786054759302523486902525397189510666039346399585792701892945424060992378321233594793067949672643940663062046860856273852972738849132394936764153953485111658046544762016060527617534220262950643520780285172705884365632598498881528338020256173004537061647387521750260210516948630775034334721879199944565359065394146005037296537319166193108480810603600818016914416394525015421883937584339161389050340027696409490083381806778817810218367838037645058222164528450283301845033725672232765419688517151398563101888472509262891077162130662432723211670683126956966827342288694321770699665595772954924846154193681086294849340556247187532509789667543880255012919574402164396061663011310383384735282533414187421682752951193751832117274248886201883201726009308745535617315164776152703376468093122014703084343352391327881572385219839178622404864548800851394649583317492078382590914661083682796647640087719413480152836969639210795113481948217620236023849484581324349534286833836452216256746853263345202616277624558794950117760802595005945446609553739823579311637577878309296758605308241892385912111501916179965653164686426869360903570981516869793348185795045902530296043145653619114709404487372632292776640795147917702508988098739855689462905869384439995089003191008234887447995611789027954945439838195699516839989244273002659024556396261973013274939006717690616296750784407667199575065295762968543921158121465194674092483805343062840578596558880135220285903127189420554025367444494903138736353066680913717252150407761964859565979436110274078467752664003536436168504064030036541530978379341693148939547563083239507139596556252871550788591727104644487158391711657207834376498391523593519540100860427921136510393543137151238831309935061729209371455670257185249229211210919554072864247878614107455887527952484404515135999316955900483203924557156608836703302109667075030124142889407657540499025207250551191204238494103651557896482329987264918907833983680051219178744798417832835936635863502588891961467019258923448297837067690943560630451891457540311028795100798163884923702570807495537423696518542062329764971757977698329492717152117858745904054443544834807452185031706616820239041686971207345401662161543343835373440483307493232240556483651512614707240186482248392923067525655970664882973222277940914770284499545023339051772906362982023278743683264076581490771128615097610611992459574761186227564840514820685732057296871152851545716718985316021560887774346216760604464149037688482804516879957836940650808630394149171731711081080895612307949322788597301201239628855933008040990395598728040698539198436766027657845685130995448791407727509112854803373676407769308837499055973403263812315086211279809832969003822880148524667955748150689713858858858575622103698225863479429712474647866282616972605371144038215078263574223948641681923287631573593239321329426620356553227654927871268097849756472601499305412096076867069951982516084418313993301283178042945671673896514132196824137664155157209827978117852287527936128563557837784552921338753377168476763223101810274297365600075637194176964693064627989408157698681855450508129820550135920644018926050861827405664251469950689687446053015465807238289554170946876380261151993574741059956531321090161578395280076777755359780868941607904831085917743042029555000721555822049406645400136429617387265508122152378050932338210349312139741190408725098139944120460082333663029006760840690713056271509796791939685243282418687185159913345494228821630496777951682099005157273179938030507840824655042621678107559631894735818757529187887402089516422448365440358866219373576954491851485418381479575395899877167477370078216037567053801851515615456415822128877370402280431575268933247295950393905670300955750355395607103170867121989680170727928554018381164256071944519143350263318434425422428314675490280668658115328008265545149005038224793254695438963321923216656840473311212036041858795776305372821057088815062512032852351816312017169426928380907219206808313275308240881304606728852655540561033524007211269502055200605682499493303228170367019013666333268262562846629646034105695607037758935415532760427483683353334155611724903168746072630757080635733077374155219569524695325630115270934299639150089544586389659237433482381165191362399666289703437807298900501991652055740837994379041353051761408851093588314695102517360275170682248307160753351489317047613856443846087973295741138846540651685723933355179952280488564899025628045763011456898186169585175067848912003285590511243845270653392929900974210301941726323465695734203439734553417162028847020955807141024548579327215628716022964791958531939459167935884319037216464190095137671961569930457757056303394337179507216059938796779558896531694652292042252216922225981286467365263835277585980358607479602236368756105227144785100096873540247745429367774045153227747375819173198372192557582855270752327941442478660113589564958826226569581728638556204464581056394505330548798208930348733020575123123816430588227788594079732893192323721924609827611189454207157937790174271864545396987711573195932023116003890471358962353083769840549828513179857184975935458815745159367984441481536945344372771543167639977264577736728763420963467667502266756748645176234744487465992811650577960775668242571218194327907670897693116937015715426326060356502777006501092663411284754021881636114749649364192611691111423997329468700087470709840279606219256597717311677444302789080703538746022750952589075106705968264247235959853757551115875373535489460108891052793370338441236225479054751043152380825991010526136643150367744478035624202586185773548440873083800885141031598001514777906140444247752179223032445225804774785192040383835754564523338592268591320618425348181943064603104259543549246408689374213299671852331695295539891138347855025109195087403482672359525832504045796853157484517209185459238909211026602556058619632094486024331874490961831146074210345466068473617263906358884449262665733413835624529871390183194523874397958115810115834626865248668628417303172748040786033477155372654454754270328842794517702535844492048300274520911396793155051970314976378204298397525980152125175567649587938997155269262187695345637697048079124680118422892623718640383024708014156245601079177870872221155306973307370560423196788963901730743657882746693736135793170511952400695829192359269065779455742848064938550588699048349954687136327553733414139617068230385851011019741070701656371997956170592448996202002939060098651761427343780815562555004469246774657458497853477670019851136842583221137148441270867323687854434357800260929124830004759424294689446429058686135048045756527056621207245141949547889203401924765108384631899012968534368293393829450083959436254732215364178324563808275302659848333177548823417558777258320484649649550736877253650006866160006351134199579865071777922527913745024321435792192721241527813811374302889875174809443958266164448728201548951517820466168726202821841494465302547717229927113242528850754409531709055855840782513592506767627521934905472769272988431993214306803783782435028521678194382793093742587100381302242923382989678085351780120788446467410362515331164969430832047206733245028958594499353406814648543602474368419562994526097596717791469020891291850624939781414727555739407159321348184792633538611653324709007150836908526378686365826586623641635110266117461482873209348708385384313109392160615230067780792227860055784994806609995815850956883520331782119193056884596376262265534156272033801685721565419915581793656289740529377138224005632074145000052283175146440898673998846810641056586834016859844055312226111974334395098060016636309217954790321931978073307553540484748412035538344581356871580079402934754667026685500548619346470600314530363062702745899905292538871922019519698506145127091239618264125513312060950645626387877011966647695825496476135726030251655158319621885022243307516448557349183403661456912270570634686093598043473289866823692247641122870389286542817211929114596672077075434226306359523925978542393072640643072041146473022108455059152041479716180418535170838925605052413232003959896580720504529788083223434900438283937172476808666042965101159347754785874631715393094985506268858150023672602582118372670181583025671584945861954629517173199921360441671403601411243432714614596996775458585888751377643087093175305656331584335324238925398937151896892664445990161970523762700464768275579519272489699006807561286621152775828224325409918823378298760195976048408861145526982818165849888232487105168202677504809937130046231734826256244238317330243950679143790755298756617275436974287677171877996109316614952530375185464369855945977164372477771046385388100686656368421626817778333905275308828195710304612464955828593920386912111059123104159663304084500803141561024738266895357802603577706537498671217123545826999355953724350235037890054668021787751673967463545596635044108935284236792050183037588964793525954936203322634603535140922567612246291851637265172285530525102775839929179698062692774384819356799859273491259061878772947306524169947573314366331946731675028220986776613977694468165994186139655309414724090865011663626418812667971072544672196360478740424047157088092541773406517445668740655360379662180885804437202579468298717832742919325554348959878881336214147038415336152783380555364866989998227646287624787388200864719738714472436419182053002652542739880954671977786973999512205285009294678688087189074646757160668386967942224981572163264683636045591640047822937984144478628819447199579577140563448289158217095251418544208777831486153850375914055990392669200244957592619527787835279275778131372613938854034801637912190051448425131777943522099992020054363829297672263519715135030797039953734605411722829841882558478984621221452591880223219634986233926570100625252445985256853268801529242672301856655251458910665436233682161150409899733554142348028218160823346736687906958454551317828234008751550475893056351287808437113983226924225623133483635576379845903596269615530826058581142620377620188919508498041401413747645404322270348882022389447276100389933233745646188291935257365271592187223539103963352917237384566672082628703258790409297488874188310822625407496599551123801219651060494395328562403720715426761931264160192558911121171705609922672578343420372122667949284780609057314939329968841095599374356051189361893070865537220254599143821375400358289179408450846163526275148641734114984084516622196891037036379444411772952326520326916637565660238012954777922534080492185265736843142630250086465857722952098241970029768818838600299613604038025298559558177402279427427717869847602253745066544398123230104576212456263468634734479246061942937967381050205137008147630075807970865237456970161228782123642415867581516260348253796750746198635333877061687273677148222312398963946488867520673069507795196035728332189125789258366404672957854516064855788795123785721336374092558168581858549840626859856324921405760807465577115156324519227329215037204867081029331847364091943525360587953884400322149902656062707639245547009638890235526717208573874423885828775250832469417964952679065521548669301360663691523985227362896643161560451959604250559466657462130992470852531020674253207389795919804013374859123442085119766637146021144822385270324564812673978105305752516636149815692870239768083098197237913306212539894007303942708474677356044773554535154769877519018286750637243481849034489160941210734322528656808239748773812845994621754760309736622999379422681946806014264295809694893648315376444986523318838654585758231790749480702975341013731791478184819923795930397895015033494495097669335621573157997543702098561239294624025025175611180689479099199510080440566547507072705227909808104132659006753352280320037162452351191850256993213828620843471075303905023409567996187053021608765446103779770515296463222291025349971098719864456478230182853452812534986246314646477421170331772680663124277134523066904498346857270516308432100384974484355427863820471302939780770102336573937201651990019869268399517248302614782133658866941345420586401670341461459701905729424328362989555184797896034911709363792701765795314708122890320237857548866518861808219561294170429452290397455409799603024681166776792092032496497644330451674259282614064177294041955754480311837943486605999945057337928485996168283079224120525167647831605803230632701141567203242130745633872393319573788696228983191005337661524088620965857727199090754473127959119707796535299464082740171400350272136371176863591339156434035625781794330169650589911642448647761447169743639024808660795030122182826176720753534025656355967518102070862539031044776161763641655016505636649759224641418745522261232537847705257839296792787945352922696543944362342989955720665515587680460293704929917817593487442768291784359850241032138820566847683551252731893906225269725902412602332847835461068964282640397157357915199170406694800883883619199659026002525317207740760282563093565990797546675333683210341823971649239018504483839501508905970679766444443549000663682998815434446524549127595368280800075076447802770106285953398819038279512111092031080592682987589614923914097586726441568810027726496569231218079340523115501852243460494501590525721298727413170225348579386565649180477158934775152173062024144103707269469619715563065802769525165720852637822646800880824013503786537609996570932686652978983503982019258372629700110075322561922614421990820473843260083109491720932333720767757061351739914822278887016853385700096623540751447586579661621058300584113759082677552910905892500495415889377639215667109479303514406337195998454194113693347147270948272268640151394663268883900979796886380441393381383256771256703838612490099666574968110591941615590540455430755601202243684149433097654803881502055624765339200455431408385386249502355381714158544952004962874429222131220951021149650577511431428842841852135886148794909281734392149514511752553814802898481332765001448721553833107191828449643804049145872039166525283743364200829197959777277877577509950081601112448115611730093248933476716435671868462837052460964282957608096087634797086886565948361643451386693982665460838117311284334876787978479055402996610737292065238098186967419339464792732209578739850449437220564021143687622017148334525240543455120343191147874392866536143061035014800605943200129642138223113883250835058978929999882529213131190524076361528750750334821967250537406076601004923924279784866513938262476265189059842832976304370369985910588119131803375095322997912397854252907868652528657860468979984926952277428013258122190813982736761576171238011971568745566722865395135440237734106743540895476316490444308254465773713417164944345164362126240064826633565152492765593341747261312145026584088588616424892702131105718520320258003785050412545559639557740551089829965814294807009968810985261837521250438324119508281548892528505657027157473222071870803051823491637570847140265630007906903231844046017736702406824257957557136498524424331871806946750471180910841036197625505924762232628008287770686937456157867939597829370948156782174716017282067217022529866444150656737358812163592759940359965336605186620624213877629235045989117832544744330783680159068756602245629686434215783521372636001354027534785688357049340243074386816765376959103823592931476252280855432443143893960704036833417890122066513234975740165351423307012339467800021510105524834718321715741053011473323714069755780628508892184905101235638971834386997324174318167861423129736371687262233667642664147558946171180337025274963908499032845169143344893770930137977121456808995003276169155815163503578971927968132105780244596039051654266757618042489078430992280563751948168385968973367699666377114141993183001285941438399498164595576464125041869561634406135288261907272367895516906247501654284282178221568894633104793582925588071147674478359730825657224645768801359133915739094284495292739186583430809818167245391235231912217693505503896892545354677942161190809489035258160620059458073651660993271460834163857111580768696518309151249103176226798107937799154718485342655847793137283535229048092789177529527892069158420284109449892469136127702409966564513772013100453683120784534571543260024182958688709890771960659755894523284976145415012439290605055877832715833571494071580753632190943696659444379348676469009795206093189025788823485946229316304180729525025040654653451485798366611021756458696276790477994403816916049813742207493092832173138428127858332612185700082353668103538603997683147799037797103939059224566290794144992164670226008069628810328713834498783525285663378934094361586792955454248901756303178622952397663174307895386454504140308106590528114015596676245756232845925301803021205092683196201616120492975509918877720001880211168408613209785230950958647807203884084313233174561114611126235595066096023712126277908131095038382114097921541428520115429818538575115167131911078159428001686246634778210370663717731768645231942075526110335080015429400275374723440696119267242746130518885871917398210629003935768573172951812361850103476767096262674661340189401472316897072751419291762356528717902876361349696063296615433222528769638595992181538632197184436952446586381401899002111219914304567782345264522601690840128390344223500161221995112954055810246537636254232175887152928613209699149563438007907228559176908292457082789430705887316277778481544235463201079511322067065124287638475819562446196620186730687241230517401212198697219170176604048091358350105203954418677631123317510072869437183154410287071595121464035337668581926560319600147671491627736182591518854560040447478224531459451544416474691797990332628212806445380138908161680009568583207058175569953840622286216193824250234366273476914345461332266554934717254614910707725804287514550530501408429728739375192118497244936924205958483259511029591569403097482246081468812253329270655045234665842794858396985240573284281551333116895787029972963506950793227384625892721766918029288997423737335638931477934587263534691395977595083876914629950090846650931511660145013988180979960325178686728884046517422236994734254886884055933167140638683909389171346393741643234501570897590155789654846525496543764080514242179738581177046999214305262572934877533545968655089656608237497173347554416130089504292806466144540523164912283046773237711545824919804722233948887811929801092809953508380819157224558758676451493737399584547498150470820980864523106372238931929717938687358233920753510597147768140551046474263697788820343993956793469098280680807426243175025510966812598798774586211469326763723674127015475000413251293727019281235676952870644333764256599552878161582944976196080981623039367286832011527693916264041523946063146893630108615205213137395062442561682373505840060879767805248069721488613232994243019802622727920504560867182995556391973665241431895953945864557056100309095326462102694027924383018029896306317780945390339251984794662144644393901659713057048678135791355842176015458269713536848616759361640917583127726343317238472486144521857195933693098830276513451140540969491247391135513266099243253606781736482839442913632630667826158243545134134934698398755071965185682782380327098306725984724069225654072381676645396326617885503253942880915608877153224937799628667265027791270393161727659223866020350406999516947400850588710545758098925887955134200074585898653431662227639362124139946391244376473899439573494069305979995902768938215682584819819208269563806352235765147243705072249347554247971207034003236201696786152403240917311898682268249093955000867140468369730927106223949079024386525126043570283623875642494858627590450670592299879842336936177557176689430100482574277119611453671396988335913205776236415819891595805701010353604047556426673935427416837536452091555852414545601419673626648860937786700802060336823601244150365887925322851791427869427421750822232955989136770497919500469428063724216316640694425061081427176756493842762958055261361808190760245105465844569585880897060626087445889753180706293112200996510952663879058240922013858398623089105129992345017944225166786685206392251742698253625022270241801508741249267478572353041282938706615374607164284101827039868596804499895937429226711501505845901434009804553069651075347377729117165029088893206977189141323942548661857778534830432896960991731134814135956818529696718173704785142005223507452082780034493172773010401053665553118132075649521136941883527810572534075422430992189071953683210926353698559390003292019532816826892384001688878786661209238053007784237343142918524732512608621648066515566328227971337645636924714995383532867752821837200512991377077115508094559670701476765975917687070363215907779903726027360256740015604302524193989817104316513914799507154522254519904001765782096248261856023027893476677582638213401138719531639570939506490186635622497587327483998367388150629620037446795701825304984133011473653477679332537110484613366879040100947630697947127678386096909811587782118282074026129707619377922834654253304954555875056750149856770879743096204354727196066568581429711622775091956176803731123988632933869232819193116910055301778444340587231106620063442496639862736458587197252931795150117219539151460675585504930743875271256222688549710057565303365384084640677642550128397405421128687421799272498714445798154555385443565754709804504443011081499856683075741183833836171255755407697053673244434865356835848255524207965876895790051820863537402952527650980553474367888569628362129345749998450299344706675597800894381732828899837905823593181879317494991943789361584754459753543480413744851323917875159689062541289986020589177866224495417379259101457331591494926548314704252084157191721479999689606504878084631803551993386653145480843438447894218177373651930626444055029896784287210448353292249304178789905871323974498563220184315943925328372657561364922868663862132246459851822530826383438541352411288617995894009841023288461868776927476672025571648207656861961714861732578250463866229430548123510406922172536710363407297335779260534832961176208348479928593822263009772097336948033911624153549376597779788398348051935980601084913349134921903656880750596183812269230980138437996979567267504235215433917943329158212194820309440310989445768562364462176807992164617510677082144284550480003654859574614008404780918350693004722570038596354521132429912192039763979206283717971565601207429798769695316291785936998262766580142369726859839196092437572274569185214354933095741679079264953102829994474188647347432556214338832829659938804611245582199171552600380677469232464747432530208847088513431270552562889914541699724807159170967778203734161848239939603359369377330638493745117586717466467635896922845802449276187710453057400022226646390365972297100774913263291285767181372253451098690639388353719559923604173734964090764324060454196051366654143394265322009284406206779595511220291232625812836818453833007599925780232921744339651717840559346300289498696758419705875767815581414828480366343864177118249262246660486224391207804969271796776342734991697050104217509611380008725523478786994621978740143427126825750317528950754914905241089675457931692002829335819269872349432985436852872274732265845633635007998400493448220178544732005823798008750025116728450566934003816673446306239519812824064763204841305381640384264783659451246088711943309068709153721045155748948097843524228596643112844313905590072923144747638670534564892776782479429578451151029574469896727496288358653981552446535495024230135439793472272019045440726945817871583385950840869530096043992999772067594755941468048710798543172141345660706463173558469276413941876032622303520213719524290133038904573874841770574424980289012727086680741849697178378544617005315691500188747496568199944708375368476722507095580979275151718773698692679333156676475490634367619067861048148116889620227834673271609874699082221145848689604536161333558060963186359820748056697085582164400639975280903565243817087444101495669151507537548724826344917775519497007629203510082294730039052983036303628940690855961240163029151672417235916361002824911207187623826793147445370058626790008788337833308908073181910386976099660018929080812314832564380533453939656579168066288801629766088291167590126653076401704945693878468769384960168242542450854201002189731964670192673373643390644450262764436887755700830456142235529881665343572651889414930293196654980431418470694551788729014450551408952694531321564432217464549777188333802140378307295649015165453200012387826605385513238170995176568861046146407988515282537718733989299306328046516081628311034170847423951814267889737346479972038321347362570405179892546417917196801568531137229736133340254374873806324227699602214535116904598519534061224058683927121575255433149747141876863163418721482330671991142316586256832184329729546313933933254859206974650207775708482297978229124715990477162954622008485833041128310579979236151148968825122903638253982602785886745470139230083393962621435415802084072505256785077780997212815096625707419677284121639199711012830410595595583894546348723698821494850777349889587009136513040565608405681646161277766472395538529698911767623620608116456270276484320134149838811556865946905586001814690365911691979742664494492389028808739822629223024186274067822845840904548101559710459436455760829906290653751065592308202112304398995905654336668562843321339691768929027760474837747930481430587889612769601673173517127001180841377424354247532083217486008338674590232519150149583403721668966845960019972626105870100828134215633752699477938944684079317567701117372869627211657099053173863954250690107925223316546810463162569264727295702680362803797627098482385944954787226933511623432074003399901204696914782936436560259522270753168437471151931033876208643309388452168162086512251821847151128523649813465476437142422227360221336309046465652941596914842642283907963226566201021848298976690888749354771635542185310775550541204289576921635009960771625936986226903210991121140998885267911865216898713326989617356465327849521563858024177750920654141080038241443147912622166844596707214057369843894186306250599792385675286355318773993674030551445174875241275834299607040939385882339299654075552421162307363382727962756506879474987798323267475394300470249510463783612825485027228571696509318826741119837098014199274077000179877538975746570547022856596296803590521907868854124422064425647370224418740024299976779128129450188092482896884455085479268528435869154673779609849058492193694643726580473629884539752596850328374616296974880613582653694031196245383007453457344566213535903682530223367038954092750837687958972539967185224978977423149649983619300331146802766880611821318844430337526620342902386917457031622763461706742935273854959543922987188515103372591432553428020469331231611285510404719236373085248896755021530548692243438000928933172632832699499463451463185898724739866299085443398216281889610234554869174693395138629821707778484509357320319898846842547175476143230995893174337886341008610630630427900528357601078211751052862076065991652533314013965789935698330909574397507484664428819615198828363665248006289426028112239711895815290653105669893465890256686564817959318611128094992884452135665362073220393051452439964268819075350891694570904497254377239877385704620659803070892972509054794783704593186538040911445122448450198576379509354085589969622072307164421777623858761913008693701874491365051649609223368476100804739293853442786010451691006856897501982733751374818632765417912455249517400086916109528704975298998002809626680815132948423779209842324204749836853360724922202131699789676657835025779003568444715337544083249174807217870585500929300761921510570697123393379622252782917528513413764694772725705084064046497866866631582214807308508215804527667144705444982012838583025674727606770755840445793241752123498493756596182457389433193750970946806306954019964337600174829102157411327425183170284544801847116042732713190424237253604126590239148817187578418407296842889529966581015583518345907625429833548917261462085212448236436151980383455908904051052655745955912944127402495672635518706700367535755222326999330790880245680114901833300854039093212276731844388940465760529048238305593391161574011978083019352809512300266359838256862725738715075453540724475535620776442954963066478604970022221714086082789980661834270100664080225049946093292142574608487617739653579623131496231513267045048275330996360883083602337249551254823052104091438406331422355652766821139163645486056265176071808250882627622233354284161692649338966097294002916460567631420818637322419849830333412887858637184408454326277686326722386235003627552075086116594176567373938986244288435676655485582374968962113108240649817003503388851739609218737684785528661929232621613824181459383335537601214782855710277812317000922276993845025792639567879447992566267193726037407681424612451310181201017899445185174562240507099735322022210716099988451261068951003502374593804961940598685854359885211205306422710187786549191446329826519555926012119590872454710364238230115838574792260036274455121277001326049134434384991544576732007826417918214911203951027184943682859969486102755894742701704670944495819355603958157014330770015021014292205899612039881679518501791361472270461812504253059985347331441415258881287318977421512334832754223154484777303427803393180460859527697132048971438941558417146703601494669878896228003119334110317638456774767903198239844250096281879064252182902217346934243368175493056952984013781611326435486846905088642467621807916614980272630703235992467768798500142631253819075833617385608124300967229424170475256585846242680663991919713026568697039237157248106261434188699270673304176592782292082394889364042768978135149921697846343619069362973481127958428124451266134194519338213821459431039555683727335980915808666774251052869740904533553656513224585110337516879360880572546869175418556083708609962561383158390936401715691770035271478270713135122651600978585826643117053190946340267181678236862661725247136088154961640743583477173026060554154345517427242073482529603382094836074003022084533359531842358677387554010885708501488432433623606796490603350544301036402746691503058323122419781869971291456298866434644107921430615287502861985583388594352373014422420836185348388896581313557126144876108272247171175506045036918469253374814934333763514622229167432027070470813498850150313148793796574426738878624766411999266147361685071174124837867977347651579374914476984497922772389499299777495945693791986751023609290837383732309178260710024933583115841599211193281592925566869298592552222352952553609274584400342240471222740916411813488041086401106151362953818427174209637110525119630407243774166993884015691826757238993493791016754976882419051180044881966449992701880729257156998666025437730113108906051455565059378384565714388565569894907371883298244037951874961247514332118369368161472946890511573022635105115321232872957437757489754686122251819543215006286690083928667321882456972817407877991685977138750692004752083423774164036876932672394689696657533710632580582783591687451687613063059160438572496275803870407451555776052624222848697803346617550515419861284770925481786896350201803958575925649604334327203456773996081543770068769357739119639183214245159554009458249089372272373674404460578427272232796993924977371612601127296544587603188776908136523275912517366650086703964920456775663337978515706510632260583452929646719569604357147145722159609980650172885295582284619382555443287866859539159615755194815442488872732234310546707008882138692341890086539092250432426655507035604714155812363421965094065644663502282832832661579944355802197880617562593192005133102072618772098855756721784878692723742140216877434301488216056217028918298820417572871292367781240201150055114319270891459054605440859969594675878893128492947877951340381047578491041560086263001950821162373484871840490896570421839310184360774553436466813707224403977471096469417472104280406113185850243133354155786190451863992613653006813189471555660323560040362365003514598992461706017075473768315190609379446187719255984724701280268605080605624925504383290319088737068971505461184602876693643996815333220311002347042849894760270466592441598998419066158558406347582718860535863014772301595922532967068058914167250102355010516449281037116139557030220302235053577281791527950926262368704455675413512936955748640494042355310103941576015257888630382376046393084373920633372017280294056572485661081528726013771996584907494105097691863665769927279922322865275055715989106310445754872248474651686641332931211545419660715280040365832980499496532914371320822279857838786325593009920911919651387143120880518528334156631659788470885249963768836690834428918995806239977382949763401852082778286463904300385927590259790911147467683626232919853836500648285712586538624879446886060249496185529052397510903180811871617773949915996094038011245555766417349213603648934288038262003256560074917818014805136288742544598579249812971242891255271378057304651660194949971711282434590786509838595988121331339292362190822879611322947553777630961794937790859656723346560194851933636795310881873715525234202920933292463065503599632893981768218282136220683574557296012595782574453567145818149469005220078011798578841785198791585715368468118697337327639405328933679246615763280670291436753638935402422707907743305302331217750393094410201776568150006925518921836062789698411868733155647311480461655474472596973978666145912902061112690559320651891565793133304104457813974060731418128198800414253688165594748696877041869787166799581924869282638390611141337698586557838254516349069790178711331304080701199917564175407544718550051511581710700997313950204490240709793645108920406306316935270479678851107260507465087780158167253778587997815145113685493176377738507143583380322017074043273174122941239467187584709380476950810491543149533965269826480173542955082932569915153755524514636819251510464924562862957796533428416978497007032987356392550541268300220843929262788084716154917211214870796619383624659656035841549855933815868116492052253816353558244510302219360902963697260513883416351256664985918656228646107281679026576658452203968919326067605966625144949169773344015200758449111922728041699635715055990210542903397130374968322079923158765205964328737236528779583761830392553830760508780019185233485116621193653366977028726177387713036400939722404135578263350096524229846639605508538888440371334826262757955689008466091970243000366263717871570045628265529146019173636696099989557902348408675116435902351634715097598948940973749231241366557815566990384149042375747262809397249485901803453307020887011121038463161555054411754309807109703544087562861141713908450779767963009103638523500105384541666033390539495032959404725344914440701026356818020697146623002527180794345509927111888539528895583063916485842272518415174699452910632639288071352132490437220255480667655814070398905695353215842845588281212426995729071722381087337744366015626927134214891815169890416908776604607991261809467374354171026414792375095740665202560953192399170395568865495491060379748161414428389268014388820383360987077282493882214574535557467513462282189166932056697477841901355109624242042972694317227955421491882782092641086836325224331849915686735469270810527940589083075083884437830592813757066532598743524866862021180833122380681314704669916600645221390144301036993663569590854303145757556326095736889385174399031178211673300492742747723210450471828821410316943086896831509235815086434177515107296939908492988137431319833225413103896127024127988669901798781009306340535714404775181355337088472723951153103142773057431196259769761035478608914096621418185656597026585444625340643630086794704694370103509814114590385060877481337426100021822137005901505469683376418340435467722784124668213016088690328088606125568263342497891564318690886286450832681623113907979417771994478794127639702450453730209557298821861466977461997993198347293893236921737811287977681854905092321125270239188383933190879048151385172288884109907584234494063497226246031265261106525321580078444316218872447804124744135992376035580611362318026893239454050911290229498288503557438147950224611429465000292896729754405551558045259064631682259426972583033727356872477736843420323122752650852774797945378325567563457989282935306549424584862317971899471919784814113963425966793696795809591523423547610038371090586346653721134331296758911384970246817862715904506458527144908942911762210116895465273196647476709721207757983191553652127604542330422318042888809072681249565082844832265100449257844216857755884946354172211781503095161067087621925856080371708815761677167660951877705045159419920540868727252484548823524920805265334242567273930831490304449175781377640584728549269377068891225618949903283710349780867782019550246670747591707235500096431867707985025479728462829267971027707134604778386079526142421389141020026224391353458627627494126645469961767180150994377672864513569737550404476329876485820062846493702791213751389782775763940925304535905530351535759530654097115111665304302975196803028370759906875121524377011804746335789033387995826732971608787562837207238837979039051193151855615039419635562109231112003442272883502450578214830561229750527847352714474668957516471158439839005853645824345772455860684583514037657012782902133018371762893398245729296892906208264268859438479137007043654480603579954955065129203570953641599033183246788290569225463724163638464919796758209569924682657053540281910568911133799805716659129424167886371682971123648378953629027427422677365605782250243823997882877265069279826179165249595451538374820578929554301554787383848404395851009342375168186202899251857616672594499423127371922384020530478438698494020245952490468261766924438853245829109080288879970673979607343477722587102065860627163266889029579587328519853916974115700328884497984194703835417476411568296461598485230814610715395036843347097022510755746203685859278883572049465175729290400920633490310685719793560932384606665031238765210439797762067814932855264392699330803471459256824201324383478356038287264317156544255693166512599141069589567561931774216136346655171824175941579275347292549337120002885625524042591482312832919211921011686998966649026639585322589453792117323961361483074137242101223523190850682725360615730057779742736473405389371114308314145791601659462896064537641286135215647877174921294165337254836826649768370936088531730377749411277397400829841851998182023560133848843304201975881959525486992865781280755029987410851055893845788076533607002472129156824100023754604540936588506354270061079614543856176569158036360481150490554852379390767067773096813262002008787388713867058400623947842166916515384014720220558824178453304557012258894169972274599163509943594073468141817905433450223509792076638240456655913888125347933511771385292588303243609892968047400671539082209394751119747685780195114503592613208704140078191856512435126979722538490607850994946301918585679536539466303623282851323307536398018194119054892284439237658356804082660160453642697368946434952643786538769796890474150003277258911357639610557519129445952420669410422639031685079059785299412292996028314358844260846003344577429328381296126874400352556801586546573780034395757844538213219246138142662539609082438127796262395452481840165649060930261289706518570307011089547984975958705607280383545768088272963675333776528963153015048952605758195506955232170755855979880122775245812148827877304985135923134752527044815260641863765310848840775746051873213693295823745933402797937595467553650562588904556128630513138176692078882086144986559333280523970804233319137722526425098770122437181984935280541029465996992004822704094741535766119978083373786428842621230808084490580347051895752164898813223103415935076686868832385041586725350675134998517987342853761938035611066167276159347222913455906581931001766739875780362942618360099753777935116649399239113722292036080533731561130135971723384328209666784167768105755277450335784243680069410336074501785169529186513245346431909333521271919319148395500568634585301443421827707215235622609488873513890102020839974538211013862431150026577884194301464814269890503442143215393181721219725969366452925379728004657250556367729253327406048315312861958151424587196962935986760625600942259596168763526300556595556858129167004427294388225357480025616926458504580129705177044006610129284126238619853267799909971971334136308209592014442515573936040522696489599660276343067819517807919850648559057488747060022133934614344239383420148025592574889071204141961327968652475291276739228012708133765393600184469107915768893034260496431793123114282691086997592760440625519680756902188536489483060022997671851435373838047511735928091383475722089919884599097467754009640575520018881431171746671461217197742466068898158153177207467702081454078930400967630305552639553706262845695721219008332790733946518049934664323221545103773892936598947129951493697734364217177452920151002291609430912813382493733276579428398207108206098062804995203253938836521120991318122566470865249056025182503762119628821839804450253659000234661692087243491510159136227907796202280260306981591079829990298079053332993796523840898038218209308692646308901403242745335214299564481363798431221214325928694154609973262105348795548281390838647676668367161452409376804407436724402044015189172080056204707954779253211075590274570202146262991543116621300019556338165139255399693816868870578609185126705103563932086020335918711467968943402323404542524905302855654869996197115428102538342347496331906659781355342465245421370155434245282460539432936644343295661791854414865038313938834265308817364569315973000416332685825186209859454425060778878909067463516082783065179140139893823113843272565684658120614409339714169546200277538232168872057138205231767691616924754304055165921487357894999791789357751348610526129245587165561360629424266624945912152521055561319979061164852084599243206327647162932649413018975807641950054928647468876483755827739264301193338804261725613130497975436273191557644276866503461276509275757467174107895262473258484641340688624944417547580401710790447358681101579514753338194418077175097119392208268405836188028004454760188557128245295265325939078340604826643094412551551072490155164029986936748435692513136473483409458633614981725712193304151520840528937208964814339573849784312588961579022866503810681622475897073177559734562015164831165193746404368140672637676225388427622276591970616173218771838218657722455160117579212882125365514497828781557043720290558660024003132855276452568394824341109580029408157826339626137675676696874171176710185382254050559917526094392044645516827552500213595391725118402616585595427969139840120042288463413831469520115441465974068873252363878064308767961178932031593411171894772941903273969822232704215607899507630936712138540544603225563056547148689416886755992966037610276616791435509777193592414448198565376382110880875386561936132707109322528027343002602014654747051027730524147569519978892378909118448043760072044585013959072707556394415758410220362181658319570399213257393644139154167691019240418040005580723125777759406099322202862813221252266280488372182113110491115733328540376385199980355151076960281573764687947195119892709540419449104508835677800430833055388647995103620607665243063367647383842397431318397355675063317519106541653270121075788284863388233250673479072408143524581671549752186209395868035269122679261429215648371825906064860878782870226638145912718761937382514018060771931164721833300438910082427385928922729666565947955125493109480246622199417095569012710803196900849726071921640652833658733336717721308569036655835288139606217411680217984203475856997268592699842667869329591421951784496119104828703753839675489183384218271018659456372777546112853147315202559538921986329570535401744140497979017106628260187737439004300558622325347880754129443008427723640324698029076592471064078855215427761402101235255416178253207919554459342608924933836391961974871394449318386089977201163733268244613533986824767651019237049965831680059709775946922447133156602662971825325976921532749027062529855721387616663900332022641219761346741991005804207846438295890990533273667788783224945955275823476990656369379074703580625452221521823089528753855371532920623092019742060358272393603001772560637565348714432127902540775182012690055748640152886268587693545491986824866697331067820285227225390500017377740674760040604865627939041060225299008629509097703614442178906468476627376287398214961490376684819164115047531718631327356646682142820563062207143405043732599082797935402108496194898818297414329586420567495727058884247654711760365545798460842491371045200328852445802417491552543809325998792294772187497571433759075174152889620479055233395342305770544520453713984437143297261540623857056930058143162482857714441020553592456439979512178963335924574635508133786971154721740865199502823782216338437599883862467918607243984030499837685985145574944919798702796778049959803569439362653114748951893720114200399266928197237479244773398271032548918957614288149325345602694308082353341262499515786489584869358772088682769189582176020614478050586112858737315408001287576316450186333080069351226430318629161884716779966264162824491573013361552854433553363657088218053489784392801055623651814413745145297674906952917428193955724339719871632443347992777163853610181837222114693260269295923716851006234734752365511319347479277870112624497398491197720561402027148071022347239695974728408077607337332624888801945084715081772545347391497676472331386389202262238780648330795432424689012203480051875105371229794905674680988862947928189024088327372359578252561385312833850240901743369344691087864284254630095464666029986189185571289246415993078878995367781758878710236162094669140395462951181485888649928669761098836994283455083867652000062097857024418966502614542415595064964901128496973342711916444920103821258209835813353163125244267667760426095485061958680578864759553205684179827744278966294004018889447450101479270797595244638850992238547185692207863763533426664921636029410708155218240486198893744374739355822013256912635166236761788470817456491122974432463945343057924899261856673124924100312793710301365385617611378034356549091150434712815980427742784193587232294732391419457268993623419572319062705789453019622878762004024909090889322197592165305947839631161695830928130096781976285026258799644082622979410898923379374092748128493492917061967234071274204310074061591661642334048487512092181283126403627841560206257354818817964085729983168896318194467474023651850987893750766478606217195663747423846245515891390993212303439424355413542817849740039173267827879835222096368313820535269670598827821925338401637107283775459148802399950408047058398580337822421158079542525490821204833814751430005382232450835898656295569538809646915038738434176536695316012291789556731714476012510911614363636199273696730624878816940750329997696230331195865814191138633962156877647276871453315954970542863738663864083815141243728991896046722971648141720560055043144138721745830289195841992818351105825518062388491846248702329259864796470861574386848167943215460794109066294253315626692478113049865991091986786680961649954936331811404619449151948161361178627188394861370114880233623807128408481004742154753419314990617455441886247568857348694689734483169356008740162116514871764212700713265041774836875143860127786862906913471944508336226098844466303290789312016505827367702011671802386587188367388538543770940112659433937833069851106500037040850264200062929862190019092995266669253580469626923873320172141385422509824432365910262060642634054796283341052359110641713461420150570187779589143791138998491145843393819424443505108802331019784267207598772540837573945352880540696746578908239264636629712378644620374173476064936062611134009962019031803660377461684310187420413495346333478301461387722921757991668098873581554604055652685652239189307952570969890172616032790833901777687329840177370800493439161045081276683398533417072296275637764462479631558046571689140526098711934119881183957806743856272684758137956699719727631003544471239903487697561874677752482969545186414366760397888685484935013625087778984178369192296762255160452474661541450239207935852995007504170126024650335911339663460246321464647698360335158149833899434367332522346303531853622507660667317084584654542347726619189089584336959746339597117359941119351239347767407004378424232884073315934531996450778528922738118754651047516863637976270374920280017798037363498550297948832140251965816250849844152041390188722240221197817964191663520575177421971787541625467508107065560489848515251611208484411502185638701506874957923423255035613515634192340768712053185398298942495709453554603345156110292352701485742727820566381339557122025940153774574363898902384318825312443730868908835202254331976850426047726620896381534956677083669037539084574362933051508476497021463660273624485500254032509948261861715596964053871523134956678492048034405945946102717381769045311076332155150863684284138727510973010670487469474930179427981781232125767089587499099090683328861791082725615854371484216756694302832627596982370124949947483278604138985015762442340501053491707506351809437760742467838882536552961818060109623173802544086670172141120659326832596708892432568438787493432894249756518817635078725457922097600998932625201309511930198883414915119868352033407223571905551651797352836432462484157523914052949922145277102367068738889508163190349009058936361330890487497650755973588376070034262942327927441415172166720460781643979024550483108543512359617034896070709019157690113879420071027183386523776365609983280371416357438833668295246438666238960638982830447447455059999683121725748171192618703487924663032233104402502620039829115324196454034147945323039947120731247059067862209170443865778610848886795350953693932059485049389993848515210250174936781791777465966399909032880420124556498689852987238862369188932719882253887585828826537774075777647871714646741203841435205092100493874450921832823145003740065003533928226462593637642264292338653431134640352857190867024850582083849122431044279897233217215704576827295966834825044502015035443884142208666709501724843397867378246191394537296078349470649918657294760315979361680475312719087055364988977037709481672455294622058894286748832548980402108062980733798684489770911152678749709856596274081208006369311510946347796052903009419857050142658187193067813697515517890837348631841951325844847771789165007586601362101431389707450622633016214222414554482325478585225167079970212986730762007614009162021594167164727702165098270471109855684519502471058136681256483630071451365883080610522483542284015319909982272064587464739301669058120188111908202705797997465360366865675083770696396144159710007343083579203722518167506020021802964346531362171779275927926529183568380975015848810579007585451879934506928646642710157090103428755574770562594230537132591913890897657063893169465004447225859519015205127260245820150001193609084444215312699269406347660298430621756432345796338141932191230161876326151589024287280086381730133259901699769898162961305834251816456552539086598895551707511665156959116062761078808683740609079692790181767626395650160680244106644365113339728437562034755357052045349974709412755960248354236965114616984260334009527806189345322540744633221211932959959950587332878951780396065594160738104494434389358525582735018776522951979421854995850079343807396867595912458478692302698729895783975829905658610781028715034571354947026228493526436439114320881337006087333306723846454741593842791882471005189407445797948425545159183877634903393518327420197178388788700458335253142975931877132624114426521291688076462437331744146999193897686386993737423700082114951952030910514213624668885602910743436364580584113208730511636331874222468411837519139234075472780271721901583918590783968979923188692647757871557085349263838624891949724052851156608016438530081673364216164979176806061564066402472507769617496286990458183732273441846201373366499611220163663622450772406076323948309686523857142927754444948214717822652128268920198680412916023292727476982215975851350477227448985905499502951320510408780418815698238244482964687958783044085004320866788517330347057792061412275800817774070177070122497269946070213869090912197649555047265796357694927433102347548151607018157789707507983959546060550266827217854983883808270910062016058317732012231911308814334397174246947273670698771087510826367236896697525324351888148773440989012852085295304508843109821740554345556579086915857657740770661830216487935977899777185795071819372381455594040945588646481575367579678278092193613129725098291703153876020371963583999361740213094623127703370101083032632268630886080714128818948236007006645100283674718013406766967349768736481409800515939690556549503351363085814379938934934783683560957836534084510626596485837026326078805197445169712762025422795375664933393944660246065377432243412276063582712079471707383146681877592848136076185786182705366180804680251047262368541277879193137922511325883070385747767535618804386817009044050979418112363580205472922746666354496128780805150739611937898164290270287494959762273784448843797560308552143735917565201902954763337491293470950630470786488773453947035835882504797494471634333335950781373421663230621110699003010212060345836116426719909224475964430480207054316735510470703467374228091884283604766956886887985034638609476028531127751226509019234926939574348672199806149705843007759753591536916435070465213710744000518203056470556554541465217337930385230563766275640197476813021949566884326769760750542634220953531987720082796540520015240767806532033023672592536303739424780152986518589213777630979908042088118840610116357950553524631170340870094107662788998337067925339541045113448560800688915279310303314204078790812414880374395255340437822379846135952662209055313168635234829082725408119130663236963129533979712560655441121594371616496122013737921756876625890460386585276160435225604360669770803915043691701072241251790782977299190888580184719916939946727561064070915413169593482090114415228883744349303512123310489948762435761191683476738165717351421206903915660642057927138186063916759330903000108249195962431687421309764893040416180089160099061628655706706440119478760662238529237496126708483830995890498361965004911451453269166468219770407699719898074440412598018040185035043691647305241990780644553883495716235324602216626618123844212382149358834076925033391438598480143828791728766933498204920954450137443473218645084744485060854251067269543782625862668345241541302200420102578993455582633569792304786098016810136815319452578939505937063982896856030523980027269463548688693299968331722061462748805099182154217314318825296982958020172687037426106160966515902235792141888512339539554353595734275769725477956766118688072592945948735712368065793732683054754274775332646144121328338571307685949566728173293028792372071425813161174113497301421060760306689360698782565864346509007394347093923000786060523929186152711822218401828839817528633459375602845349020690638446367780755183513124047909201265839421223665606258815981024027072327877967120744530729949385969967551565183916014475303556613322694890882966520785378699067373517501259284915257160599247975598478731863364603927524270088588764254483753511591914160388701262540318640742302180792491237230566526410002652117351078801090396061727903005872108365797322534473272067732752192232709050007530765481627755850512980321026082446540442320857545757618824240050732763352655456238355455910668180369672850995956825771951986544496919104917357873036790650708835207344303936804900351024496906171752594116416055749759015279743437886016172191033443304799013011400046313030323807578733363347477080233621423572251553637084548736836850372039847275611472595151525934677047158642630011343074314297380407911208923768756905631964593542785297669769217579213630633463778713525683432113214450252512756281030572485433470197681873286063846468229060812070861365641594543936635218705808244400683097754231857248732477564148144639073057592454988669623597519361498998346872232628782074661373030776580285750894069742865082568424472652855025793929845197207336167944942087844911651328747750476370737481431251230552874645971450145723000980219281363657629270989542272241994400112988481472398611621173278018459446160463916441248066716227350715541028730061889773905435862088499490754008961955789913671072574164758035660206765286884519191295264909651059528084288462285127263851574018633035402647261550787011701464723110187247433591886015117044316641385398349403850041228697420584327651487646874977765835843366564136838936662660647004763685110551996576267635918419232160486113369539209911481390990368475509953321191696034772087755557737012901857952122488793760269103943445066978803163282742884754597920065721161730998105582015536218618083535854272995013765776480140553153320232082082597138931786565966087171345351621758804764536374378994282749360457272133772932937561647945778890211639778901555769116041126838778940876220599161762864606548688852278275596570259630364789323939418107179428885270130573076184000710610474544105498482223466806177032265161825202687846695175982657372495886448865187854458705152410144134764327220212641481686018669986501948911927450115401185860496852332275658563877219141631333599179528942562809639858776630861393506620719423995057589501874093179511429171756019845401572614972981115192641824159905762228365924614603067904081536151868578841987994557443125884187777186756754448781519420665269207253660952766657119820478802176615142540842915991054003103327926465184461144007191664384669568403398739355146091326754938297951193519364199288129241870619187699722559915359514607063651312395072510744409608182860697286101031673224025042829558475647358592052202979713293584919971183683394030521979908130007364295638965766462106964949707062243684235543242640029021494789223256149554929614595714261022779264623438659760882080378840216361737318856744418380709765795871894316969463470069526327622924762265181657115741889836049532857781744597611993573827862474925036995266679738682362378420297975369531106402473910937858775833870376859987113051004597074491655522227843689022592557964558708021296343369655543909058042805547571347387389738679223098984939592666861011886524924762297944500489933208251866528870511835768546226647477339861017117631471125148439051568409381226589872307687447954451469242166130558236795525372006833541747882473095697515729947939373768739395225126901790594426882483443835954308087743747641100900377602190494347211029908384477450501802801126878024069194104906310166817185921784980189786335288844603574756706790464590779791136980625853332441483303101519339407531077033800628822331947417892513890889949135850221277344462898298195302049605609638789277532859900324117360029224755122677973541631443702587639931249077458650002878272810146101672640054418671370636204043751170399961590955849402649709581673590288320956487247006986212512615305833639608038575674902890314521104389926236623773428619425463337367309306072952790694781552807571857918540025276678919572192770983515992183126159206787653977799613845803105411444706041747917941053947630109038290723326608922871103242146923573659897899445240437015830998095597239672635673636556192406500857806401865507088196962578280147408523504030952567504568477975176122222529370244221036993019804971576071410455955835954686442926233773880841641769990318219721218333375625145701056696579888797656763631497187480070281558323113819586711203260273574187828534444317302465705316462438538207190795769200319057977899563232696339089781640488385123921781022979797101144807033634341314256917524859505448283984466368872071863401706419832527466437396849535712012226759513134850303422159894957031471735718506365654056524394263306833056176167664825032255241064079714402195947469939775612213346824792038360396237693982703578666498830901938226862924308871719501122539749409495215344937867627291660585359862707931432334253369782389709039430005637666348403077345577661955589113388806670243867433715903550195408014492274115553913159927837303873052422649522923986141033209390862753963730597262629259500888760605260475283161672656471942219298417980508970946906226748967345260687530287723191914695450940693125202410217076395469915081927375629544332915597575152528250842209981284727806893638695746183688249800191298002503856321375093993848273895874881816881500150036743800140845628381376723842001750599760424194362264185651513540480337864983130343600771411070596195306449907005787162601957082002470377073315388619599324626034850961631501453927483296132227055755179737481108340718621281506540805924079084931189310998481999481210081043633639645268283858969643253201177551348905237962703201153643166761871800183843521366154476040914747738264934734167540616883041124490203742881770785124279277535611297097787833165055316419481287849446353094783622240881803606081035381447310709113174487174102417093547390974574100283764795058089411145788141944819450266372177655400560401565104306978727894858640853890142443326588767178992658782186106401817814060063264252188670747274472183526644266149743151946845724208134919904213551282167112364397632033077780782250141680687842398033769267079175413345383848752973710045277726971278478914185231756381799759503337467833225305990952499007535272420030019817263345940476635896528827244604499794453784234538696089099903472757960618143871314464467932980781660106363651580154669889829536616868842982916576270768531121197668951691806907664327371798404571759382084583903687490058340332138366362237151172061187022593025188803111180366163533242222225211961471295700935871363020468463982712980223391887521071794843982978572056451329299840115761967124161821420906456240640789890518512738417117680813908584886917435288812296935811439882507926847505861644683902700989857088907236814289125811347134304517084396578015723869740958920015977500740635814734690568019088347703274745840697006145380982658963393451163355528436682644360097034561612796390253909458328947198986902314502508809157857696690108283670644594400139613569760883320601330836456454504514078986298889594152573321068519640108636572270468454771768215468062479867491371168098050091016898485265103712604788571038304231589928368489280055380771908585430497607139771159296559110371308268599892206438164658343113056237267064339739920688723714426928503521992234555849584620020255531067859710574150825358776708657169045753846284321434571046824656775311908970733711903804709648981372349659479155521183140220630020602670894970212142576847577162131575968464771818296045974340893046961934718281310762521528179426610077548361778151506136361808526382097986110725808471736848256816177317787274570442473711246491235132743591958262236805921856574338697236948856419442568678526978889964874861281629885255323808991061450854372608586709990405765977101487314865640157814114989584579019822782309846793229250286432865479227881053476485691949471289107132837844857120931524859071361844760951262446001707548782076433598949363463507135675689859157251338992294632126764655191370072234948233672095383309486254440074141638682940093714549831514883303046691256594331135160395429475342050597658439982044635966831517570118088933890599785502808237907816836812404175538712188632907784814448950798778895996868997134856478659929160246242262874641655140901708731076103769732872679320425636853585658052107568735090270901644571777496218191175227962740274867299362508711655314601573037136654426960044181431310546423785351357202509331552536711231639188370938434038234333037172149720187606341400707342667078395550581026694063704630432746050083528771311368313155608762638178087576939712782174591019414747121813189127624333189914596444969044469891627548198749963017822113886745466099007406006869840633761566452162601209782690606573067417221710399806518399817862201522453973788531616847517246971229656338786103732985040450673074639768076327496133636629238290847433483683279623948084688174196969116327625522223679285388551746247099131941117148425899683405297448082070972422322602024062758226631682208471008389256714204216622932418641613836682624574899493500936141533536096186983032698551606730522344338512278424328451592275287137649614386670019732298685169451080202589740512663512191403150777995474478559267785284084617599813818330393898970611165880771641905214041791271663302504205177198163487175480878479158494557144353805518019924553139379366910073489380040827255065040856641747421315285982549053900612770521585965150366164673454054345952286282065806719588590178597367713213191838032354444938511208431683229661141445850286767449045398565089021422000357082212120495025698392605253607724918787625960257321867839967218780539884767798774943584180195797200491317940703752007165808386386828229176083167103799428549234431912159838214496236485766946336394613936447398785726744926647512861197512621268823456238648562242305473004320861685674551176721099961969582654813941394771085846814562870688927917833132933348181374365984470493689880587743960825247840823076055090909124496646434729920412961039364216185050964010455818581482224978996476489383970311082124687192657388306705433708423503797569040412352512276173723296041607476348712616308338259202248087094153476078961897525551771932223528233656797272589835083259628894962406749654702687928529717215723917497843143673422729669294610786208223535497129720833038817202807371411144949981394951774385515687801649929060489820407276207858122184518344180301921564993294656042379865072798841110119924694143159446053919742275298811711340056196971483664519306326974113743939470609680295805319093941665570384039831010320697327214606377329659260299682836643512545052121194879091664715993868987935302772044517935344628940134345829499878388412463395468995487960143021106937209234951468667257509264903268713594586912755519607199970739648724483964674306083757750850335772405300499528350119103444623287941075238328986205303184836001028009299466851525642652762837954053061071104861868778257275836261065941572094654045260809753250333900414462291305517796890185566157529992125095973723150871751363068149250275910255380373490375041834975474862744054084084950314123181046028705996906814060312214027480888457684587884313188451278016113322874191252898469428387272604463380458956808266997563310789418703975095557771775900626849679788188162856147953284769877746552145040040696611248402137864851702287229591889623977280457145472221036019419781383871845170088809870597818514992859335582548828713800643190929433484432480145551592469640920971085234015911036540694019484614861452572677568739630198348144553930285226779737922343746931279813439660892453192039194878954830591664244518262797048359668224735835477836737784038329450205200956600848239051533122752410791506491795361442501804645394861366266864863600662524798121221433718377611097386473385590035105678217490454009357257478907999896526555348976580732975162735532859822860413857040226000852675440373121194413012652558535501858965006184136528688480779205460979028996959289811432347316780835141162638944411759979263624715698855164722148935177425854971131192884992401925527788613423723498288785312643388345534989026368390351359928133705831701627535492417049186145994548156779257576063224127411414715022517864493691863725307700870684326373617946272047967624896769517995844301509458904449428679765351451074894241850040449938305554081233553826499972604752944010628934857701075312163200538033006855045174238287071395534460862234098554680212314875892374280359623757949834458441921851004647534555011579643092649602885966686167369365069948734869022908368166339717458520672015821402786743084709623283742021296546363990265308934023204601617521310916094830911499365571299250076960977018795059705702030072757558111735678861664321787223441934672250975287432023999628763054512084406200369247964194465234809028710233370581330706775850895857188404037630915200076376065135920113543511218517574526475426244181532311429610502848725423976543789900782510448757721651143326005918384653291111302459714252403548052186445708238049142002849336590974040641277204718267158768658136011273176752661988846961615850587246443200815392282848064764857100367352481280688009510976472452905600030932189408369491235308406859003572126190548769587338894171160037129581556349576129140029807659428709402995945228488148275967073616012283554507830126165971392305434036893092369218135553399550726360277088902969544018761957348036360169537591429154539484361262958705896331610843492795711368390967638384776253203481890317677090203568263780587517815682376755993623698428440456091087706103628586760957586121881066053625839331219164439780152877158702639583620401442130561574017475142962400672326105598250329150805488490971253171792216693936782220025294218487924919944098822947423498118167139215440529809507703425275099096036997670109490575757413538932076924274407337955645572991259911023166956200427069799235542589297515023551624114087366554468588579783385714819658223510442546729482419358079997319660103469649692980146043555475491571663240195756539089798527004487923642195758194506477264803358619409528562844065976327702537337026636672010702546912805576228003819263891173479651605863997327473723986307182823469015865119365002596953326144165552249603933338950140164914666623964506055871129323570402503998596879815559661627423903074529521069292425451273086197994422693309203832277609795514467436447508811433390466016327594777270124006932822868809944806634272207523544248500386698003744371817593469273702386996237596322726160125577628087431793386710008766238544645354382013196352022466789249540430051133512929661124833706029906236665735975406142258620254321157938649576563240710610156157374942131355010699318293875096455376394047293068442350410665961810820281963103087204327647957045539693802764143594910017270144338058510393126537826393129690734224018014304684454265018546603201319411139032184775241723288084688011852377537435827583301597391945343339062478552533700443043638457932282650598035723279088703373321135966932446718077578599942979349289109208287312186881244843518293659392851965902143486798481943115681025709746463155803919862354083770015397693041974050513922969389521197747772010785092052488906018306933966024006913228670123865137871084776633470788774050452299262564525613989300861691970513864076229238051189352605522504061899101036744575833717372446137859092226248595738175662896396959248142349169503276524975147228688403483402631856151199975893528257104070665936291314408826334894157502696676607520756801146630492104089283584058987037516866153765441760139959866883155704794504591778593115147897659692810450142662078913462564597624622265246334088964542013458550390613310724312022416573588721867196332104687895645385322520328774965941519927905210875925443143401360487413574437609150696248099921955584586663043665169600910036170185101714735699036709968430893342659852408003489772351293413767038985786010323383674598888842448901517803452177517461973619223042895831608441882400675184521509447001769720393580066504941223924327501771117614505639404148183163639654518735218023179514667300817521044240724296264169201618232297859200139489108758356808704444901260518445719607174226286945991980200129129382791494111840138633306205467702096642495307434930893457063195911816696728872019345883716721358091722524145373049109101128936432687159007463178766973883734623072687557314695892754733346875719919059188190252959401167214277933422229652827534048856275099537237794908552862136441124694134742215043664769932670076797913206579454789621879620388440503032450796116801370462443084074702610909558066811717420196029970562459662290561223291656192283123016658022962631058264492745162338044731364159908177167602032769842735281431833744611592081977012883451466146610512248727875598136129774308538510897558353469776717781321352153203534337039761445694016776145826963823668940349093274677830365840061990468997690701154971706123260453194378817608811476066838918063959901272376355820298072528602793761358603146538110223597710693327431727692188077723351123808740349321391330759716996453310173094700044999168853063389946804588961864690291211467299544181629195578509466189323414455173244448638233564102657053597867706021287200674888425163102810963742995747167762675044988043972403505034818964391296277876846168017190171799268004725508775733931549265510114846012270366996947354681059420160974038824184673982545979641075501194661137983978050241737597989718206724715133509386660070768330458082345730759379636061882810613581162524798587259664268721755123554782140510229423052899437346032551759753435302936660480004564585573163962982327459305412939450257770715979674351684442296154449519875532183996898297907626941966156895292382200332344016905123057017854179563164934000739249744029642487026305812333151405522111811095839591192272585393640176448089345443171141325203145529934626069623288553724083268422392591838116466212104988603421681825490516004673030536082642870889467589456901968119543619915600446669310407699149637347715932496011050103807837154497778274355885756651879006588231772134708511511156815508252110245411108099192652882096588197965957295958301998986926764304973803904834515392121376771097770802210164799996842103180404112159401987407158722623918240679650035766157139409633860812504048565105447835124250386634705862632811338329998225693271854803251571060353811521770815374597095322578156356205826984255888319147769003409567000371787913074152877013281923292494618098885967130408627686994437355340593684957196355098449301320505120058437542267975544637774273357069059851236610797724497389423232362734629145646115661200055600348465979156551452545012416205846596551987989080576714617264464389289265326475909247719737631832890037525636647763132209051867893448247274412038589085442504654990661751035269429070380038845344202331303540953125732039808641527978693469125591311002499199238473296844283245227361849742558324399757685974011064732440150881553104720184818779064090059849917303431982624841053623261142663283811532271067355053935824251170790658352906082158109981492469955383379640202379251047177319776413787837908744181824670555271410864279510360335569689993858287362396279898319954397881146307888682362678066020041081318324220882731563631356233157666589180806843814747528647110123036499022945035213679428090663311250674440153968089766979823474004084408034906029747933594510227143299148835409957593391970116901498421329109868619286982380207184318480896111147489200389761951472332104380651516035319430980390381226197435780562735622991266541237976669095599252927317410283095118384814244971535181054835739254793416935152436375043253961388984539469967743506821805054548131670649189568756670428009054061811824240739109428411562483273499284166786929843016764214237075903760653458009496136643782707613042590175019820693856882025102233395722064049857224760650472503513158002371342122807408520130904131544088445776642722294974936187607581731889879323357724683527735251016021533133822338307813363851539849870412752858495898192130835306421610727339535408628936845453467730762806859293899759101404988542298805711466448979835652509291466746736855897486622121854829837340468824495851950026354111235237693658634290258977045194149957450876462380312055825084916992707348383140681095868583976369548212837187028082174279405784480476185396258627997286844395246551766157139432334681367821303817849041707764659516113913003273712652159726208281419224658756257430518479122777540830519256762948126871274980181585027806009076354921244657907519384714566184143981355555589273453570584692647170597632978270615159788710144890507641309671049105778520301720967368794312337546320365081862679737934878083208433447008303727751451192601172514635436063587338942144222959372198478473802946603102222581246046896064403670008483081868525982467493161492433766120701792406715444582623793612484807134310703606118158254065045461448139940160470603849487637764315424988748085109220056629343763383788617324753794232268504940130714138070292878368657397136624199581618459209739735595334336789528331103401294901756997393169167587505529701852739493104382472950802020393320634646805184208573387607354912226247370661726196293142285732491279669429199656281107350594988525010957613299530742550786530135586765487246569933177193255132397797104746761303575706537183491078316836895850277473325236231684770126356719519286887668652747205272938171107989753554216096969607332085047101275128068978672299780813483383370387231974382104890427171837627442125488065304565341162771147097966430522596817524161485129556290449579572061157834203610042270740567615372029131231682494764684282031844768511567859043424493391345395552907981485536667458490124399413049380958838422032812866023757216970704625553987997719151661655057855222689406702060440609644691750883343884880344755084917878262052935122839962041229021904087758524894314514978611383387292745075742836030267801077987209107738819785766953503245291797285719238329130990694470223646831024413056088284255236621004306918091205200936914231514342631240373228065998468690444477798231767954321977287458131539217995699332977836480611013645530603747242582990721816734431784612972625037080158574478466150656696333960522781132544487740418135694731329835084728733403378959623844315570363650642546443491325048276599474529125885672790169296208214013582631908213089237552841779813653146993138173784432197006022633155918570246144940748418838198730916243385235623445774749285934993586529649191840164285532289249741159561409564629875094350884082160472677647229887057773970335688597112558199259849084564006357207292594195468854788392763241318827435261308357778851602695195399151942521455139912879471923426418814915473423654722863930994583679080082519320461213503166401467708423532711478062913670420084464250405737865262669712466815881100431200825236821572740034765265067451607210050535817405891262145289685012831956348151498848503599101290266412281841974538276778436995190547442918751674610903765793219716073092498093022501393141007582911176574777234805581989259026952107318260618916404136776274149624087687855744503764260395012077637230129926073989649800944164034680858494123832680168270231720270661771303653028900573598553872464884991550854479655735950462419198845977320818217352636842259850378825033203366839383184380876653792582199058013726920009402800003804858625068812269069785507997948857277196978905475680120000320699069988765537792841137620626237097352089020243665865627789100376723615708806781662278569991999536304930189013744698520562771415135731906475797098250912976287363674114707826009246283999853937811935537698584603112303404259571754915831778008333850343040642230924912255376347548331786695058557925141478202678190195809173377377651550505056333985267869237260253841537748768460548390004040267154503735752875107800068252751923199015912009012856214668768597350810959588078799773386605662910308354430002604778187210072802824451475878302615621403998867163582312587191576305311008532835856155275891576594660725283121735797520120755854360593382874505447471964783304239922703924325706813738183892093295006220729271156846370160774515193723714720038790173113050216828987529472836588769501006625704500943821510171578407594230576742955985500492837475005295897940349321557790197515631963320778368956793063071806257414248591666207112791270705375071674310419474367341607935021066526506230122632532858929158654240772459736041853360270861418944418016144242916032858449715531393130290262475528482850053072156068088003142633615015564156193978808399438454471890637846196792622449010513667477226024567053023160767273253452141156490584576482262670884489468310097725929776233485213581078073877048184398602900007513595941580730995126352248216201748755284830275610492835855886467993925047208826667188252713607134265870639059469079957918107387371222232271090747741877295890738623946954248455887378155422469247097401089447567078227774575512455601192450934504273305245223247845927140591525020893923873677789456703703319141168169212752726742370363034540183135165030214051125240230514330625011106994569697765831155261054427866383602953203917042068282620886861744458728026390592987150606342302291309149395868334366128103531481107495221491263414125629841657212072486002874842500043477679138620143403715764030894285000830673114565171823832651824162283062394097698844907818617433290030644832735267479767577170958816837577321966013497452201607971463288774608216284458535411264746618944976854891214523255554859870189973155918713623435630534962269520280778911471697639892540574140195911927061814081231201931203656374055255542217974913756581322772332272327377982103753657263692320327212335063494921885809738337001233121814203733225826693817085106888444885376999181949739347168719028061254696525552471570212116502747367869051214247361586855298769193292964880417986452252974612073655839970366059380414630363276751657407190011645970054510087029488443165328046882941803392176380942504117329696321003377698330787909262839220702501965355130784261464736620237318548689218826175962829042179118511592092295008055889736302598363881233304892138696172023139200008107819799490815639250619168873093233533610429154723093224452731661412905568280341584168053618128993157428685534577175662368092872285500970834173339196419880734871574206648038427428135265100164027114217094767814027952954379091801779757600771029329403183791236203114573954099169163475052246346536777589908668529994288188133743273701305102133349650906959688373979887190696163211720839995765739544220594901057630291514720372473913035019945864089864108964689646312200346594399302859653310568699222545418081774928384414877971628768736165128450615131668971025400913674627433726805446770983254599722771917364803384138984131824455008117682922518699018442912173444614485559155048898509067651694583204091498993227061089922571890704813476470595281312981223321467454597840195969366196645979554895167912136900975287147612616561882927087409670123858490263395984213125350774844653692699302933653190416182495568809576283761047483615062107131917424009191011065502447508905122826660691743992125432838491497274920539227852572355093023581976805010939353706209890408998175927251928567465174243490669667928250370112745770600623229010301055507043617525002930984818486095875078513728245780173172610994953288678005587569762915911774097831681627544405750449349986457976967588872666194992386929412659454848448211155030088737923200915278480522626382961087222612272165836926507569015653061505566819280660789324582809669320121455982187914399647161381635758345529683119737293565186509200890859966914437702567896720451634225061689576392747773957797596192577708526602313261785664163262777836100897319848325127395803229487975835791360128414291785619565274099401199253955758651358841155007077682560069018340003189921683492114415208791552338221536831731998648993171201837050533602927519431359279135989531057706309609100560137488222464270546428731166100420251373062689139446266856902748482981467878323495251451389970480830815145586282812556606702339606016371127771243979406066221906924803362061286641467720699972924446239700506707805384775025440759578417935418526585029335529835003605733354286528539669773418323435627960670825538537980569331619434112682983205167194251027250388102418662402897207551685000124988428721126082714729739030881673325263475070765044091102789610705153413865288104772109244486254200889902546086568197338265504520791708142963906829107931890130273581944160144780026555694016444157388342355304466625002090206113869753779124177855221176469324956572776957406690793011749921909919004985563899044797071785013993866424610839124056714850097213418048551537552187834668393692037628278984589246809986649397156815792571171004416965115806323783236611564246926210656178381647304435075363197932648611289786942140110581683578454741458766391217794599285457682261336037718525251798361074858051357969314064728010279165173415714342424144957950513327123023167164670029602958773529448791360938933479740303684755864665791879966176081680274526295316180257313094689348182100414778992211836943423300250489249573133834829388254678610199050573609517901934331453824569124779280921587677068583468602466985023706188269446336753145205248135682992039119582375904877482914160155752640759086784599766236746864582587949838292818482545913618673382915969903432760437207195724750508830338612466996727694433355620766543952191266172129903953931733322191318688463155004720768061067789797252975262845246302200089475568374274902391216745633998874378495973898333405703697231546254678751720643296254402088834119139389283259901738517268010652205116227427220306484774090542509616748146399480275930184794316980873068866674731187487522060290534708887949770460929526304443312744704346038692672093210592998877907627089497707676092241016003714024036719139785024502928666917052723089661506727082898136301409283129038312234174473082640558427780408454946153738563281124776123492586963088788416468152161023708121211659460559350292218472284489052813508729979019567299332295765552918348433686527813592236913272295122340228518803672940486151122434005729303704701740806379655266531139921702543437158013293828056607202006253569370427416268002288657560553643379013418542443456721930467988789882010337793392719594706315256553392142984303275734683403582804050212465780296182719405714964003503153886648918614673169036626128379412546499324409406638976984965115964041204724550632487724845427507325987955531245815230969338200315947171220123200481997919384720412632019739738048286909839585163948074815629923090993248693440572199896055825903213712932543447410646408049483655056608623670671457689066603848101248573523339365144432680645688348177382600750343315020411931811126995844155356353934231089923330922574570780435121192392714554380994510300182351944116905019115732109153389936161604671319865994800449981269680586043002115014413842963401481234915525675161197404682729459817081907201128628662828498827124579314996948625142444622458726109690160383728096973966178948566227592044566118790836660977132555434777655957318131280083255011448907816407442058225341292045647287832630816922191126380641967293538975531952331172986636422871226754151471919867497959786198018963017282740336527856366153901819421860738430038657090377885440735339889845272931135711829306332976531910907702762297451891368748915823835982612659659093544691608841456134092140533655612233023224410159841210439879104803076354754682443846725384970165425477253684956368860470838161383766652461946887675386928805169090983119763583329267375047539092472466911195075193766642677779600445179041944782647567932123731108067200126956051788062186164914660382991214497847945624082230104090970637245225125866924895006714011438090136236755034540704218018730083700864225745037609408483468964819304141410129595526679558602352339830671367553073455956869006656117543436668278643053497984354554529544931123725346740181203302497898868531438644225935531875839040782379545884006632671359479108431385318686418976466838186290171867909812849280505241609783090994003772966300847369739444663677884907124288273947916808535578586346096959963675674923238288739587719604418858043736320712216464742206757943371627653710197764351720908196494300757863303963035098009163868435025278821016926399695426312576633339888823592011558553160330740327927993225598736618167613134408687946627419437291541876317555217394327127821663648505826538795615583063296706369436197238738151316605191257151545012301421940691760561700330499536291987441337243437754912133311507199635210659624592093971791569094610285585894911777844822351447347742806150209603108486397737015743732835123725177843320858979808073655687655941465917793164958427552521072554018707716981274240184350222491879815686935531027613178668102372496192919925206200293308253889328903353449207743084001328279950704176777960608268043542635431029843256210727521163272254847291440528940479755643987723309116275111007798353759287940853192950801167829973947158897915512757995194943443192527540471812056541893769131491695013594449112915820727761417608682446189786782807324375807589894483360293308399266848266506392318141817390255051621751526137709787167893836856570610067176879832504444638138688619457049463445117463265004940641163744703550975515678552971653793394904038705077648373625128591037894131082232944240047624372512474154569369263573831052992067366523580621376872150213276223983662754890281156318059729182713167029730951781819432187921095307271958037812438555139280859739203057444372867828951823443030182252541515003575695494774132612082330335526803156393959930733985265795196006081580605722351971583274402799104617489151452767169207481308029057350448849258810865939495818898060289784993976194774845861385125443045086316860390167390041162625415292284842131673589761998632421354864534006773201134787791189642667233080553863428775979740501356018664596882749355360861011984194940093168552332612262282993055231616213269152272211515821776422337050821621997727159659504182279884468366991406308515896372601196853261087785124366249113717821559685832153718630428253791713852847894949971767550130034099611260023923055681113886090260161553008518104230272823272559134571394081732289885472031823565450963806709452364337416554894497092710718772373089336908909202143497272779686360442697543924755990027522866268966586527796581896250003392151128622179957580764510130203870521216668030681518891080159131790389444526138126631010698731757930491037711957303494222120850074875086479627036383127004154585486988609714864638509397870644651848665027082272204451922934428953610343381519133438598770418187536826200246009181291970001387817925476122887940125473096499989843742873662290820243476499305971169475948283628542019285989700078175712691011683942736599555305622549721281852654943258328254412189553549927374016684311089655870658835759573134400633796343438415667895918224806202399302199119714265242347542768367029968625156087343963989635552176385868131735361255369028890111400656024259616238644103154377012995958563949261221779540861635088587736793463302249349993487925626646863008780861539265299366331727778202816771111302053161197947362314560327176641988328112997829744121782577432846158379414383820999992107794917324172147275411418373044700304270813462320011833372931244420280899359517897718633175548244327102886966766708000765048334553547091280106123424670852311888654984299362294667422338550159452516484697166464886130636410035254343231233199687121681670375533045556205307528448210547914133809280761077719459979368671733524163936364890378941489757547314251328743225647266613374130110585694928131113197292218974789317370748715246566454800008488656015955367533213873480238110170731923280102477709832600003355710296397709709524046571712875257263041775343562790478388635915732053147160624358114559219063607819455882590720061110642119819161188789677487636190158649155353987406012790566922524168437796164349239559960356779693609014798460718982812824226657908627837497604283114224207573536465551796415560242058383744807359122306728645672239415496485784754324077562552994472467298170521347700057229251966326573748147189518878129111260863674389374762968542691749085501851754752376162240724926750394334172446877600330667662430114753371661923655408296972831393420627557548730394335661246889258578183776317289542704623001289804007316522748419591704052376705350699686491330250068157648976421054236916408429061189528983351206958328818547368238881414224746446833705557507016447099183031384674169303912625099280547301118436812680860275810506013147650008369511033882648238788423979646546762482269703903824830700874509664796503619443804396670545380359037589651817744712090371245669490831455750357777411713475165044033978848643956987286017947585305856781749425127762207563301275723558530158051789726281234129968301772734469292321930905821609829314255689692270265447747187332711111873522437455175707806626339807538934041978364498681880759640605636620164858083932143045926067725574652106587108565180294150110985641846191489352176131879953757306568796247759229872528088723736901191414728394863776440060706574052399606019242453968032616152958599145921852941305186547534179050505148332101241710019275828050075089426007251031581086927711293379537900477900991430829565582846813670792654195921683486267224875869134988231511825920879080231515741677291618507830696275977924758712783993184321222163506214240664140320773274435067028912160756301779910802409727880849668340881667446847550489040988013076122133576831306852437803871573950545144729536641684252450117604233279811845945129068508939020414751641565355195396029585160884256396125452461637561701084707118266030598480866794642882240129286540360600082668540589577501057348351561883652475248793373901819502036461077056085360839705502112543322326111693652996400843321996970730077470849192203641420757489129212168223184804153270631590921843502117016866422375031301725576985937579798949243837870365813944561836532111710496062358051110145958854533072876191881769844496845724284166352263265886776818850279841943491039018884540755816947893026137223329208768546931283753831166491201899254474232861305072912560272251347268346128981314225943875452862608562491026785664918319177752570263109830437973891354358975175061909325978134780875624522446100316199746448422165099089047392402380223416266572519301605000882884179428818441063988820896911193871370800547412075664203373251902773247647034228557653140434507058312472749119975688729555133650291275955477753980578833901145953735936929146024900022641290141859816754030245474015462930566475697460780062948722765487307612712154834439102093021660316336703101456346252519656549707236017420557436191192433840527417321060042067482205604225040858799787189725178940742271781678859907692000642144711069773719107283328802033198926601598034799791921750039960359153675021965428996047574265979181905619058183059542804205980175538769671022746529400927051467404382818692287022730845418943744313941173821730850543819045603199712550941761405505835211988754069291291795308595728004973343775589368806229737333522231746697292213182284728401310599714835425793642478740011490774744139784075724509674578940445985550505366047644776071520275442356847349871709477383174227152244205514547096194767612959040743910623107635945523505145174419803031813598410503763390127242216228748468715507501626271952272802128115927288949495921451766092662705119738180638755136513556144212335842779033326309603758116226761339152628116760916619338618299231257440995027736644175973876095810314935680312060041226629522322109796179241452057180525898355026981853262199240513306027408741696802988250094803769334367574668162174066706313376251948584717183391896018212790250477718136911489711639653368269413260776713030475272524754814499746463701600550576983590664979547460725963602147254760226400527356674147156178852420733301899665121878858636367243844457654174686394013795718609828767170693393634705305897206806494097135960582535587327811119539493792179258761180678074504604220786978223972966848008184471873008018439574906857832004458816129002849120125783403591793033517465372860949078084992837645446791159491800058019693433380575022084474200954916379108408130590679138970302260599811686500556056094973426573827418878022952073461976194998858698341457659599927631327286756123952127144399807083859559435565234172712732543157119642656145898244156880380541730110605971591590839163872651231993149540372944063847618979565239519909860495869472547602778399857483276257767965593763941584541943474306112168047400633586881138827710446573111704130247303753558499587980112381255619751591807334236729682364229293913871673962810315254702333391808849584188222352816869893192479856589339677597693096544949651839635200400981964402567704973737012874915980623206545565489444593598500103775722109070104451110209302769174932546142846269905763263703038816031801619488987618659934130643680629425829165535843760111961319908591859870804585776266668669916078039865474190416437650657396751908902462360895366253840762026895634009074702438730049878260909531494201824119800551082973184154737757016124616929097689987507395537998083607193142901619026881310465268635247929507066270963954177425589490413963063013534309575451465466557167007572622093051694519478919181347305388078931979133954404037026668230452507870239490767463674571242488195863988378427222970314384658241072429039722120952897156114425436106681602362867329783676596810859263370001517812692515336630163017225276398076614240588301620864530102460123238985755617406137954388087384697576398857642939050599507862839872891133332936490789931659867342163352398210305005904041253511226164383177969799886720507154894213731434524210284075989264407993132243406783697730318029528487030021133677008698449896961285953016109628718887691289413266035117630498970572634228078863001015745408437488641457209653130626352975633761202410786368042579002767778686256465906700662510163048304209598124164246974222920070141433817663832821639059267464228934895555189407064583688854583538826368819427096731209537421079342720522951394225847558112069668640890674652368521585027850232577851171093967427253470311657644798787217115268216472363324348602357534029446109477633927643387344174637276783266142700944105431511767431702005392160901965063621322241537934225015961381399878864965595637256325279102663581841067207912367656142761811797820083242825278748047831887325218710900590270348279820768162716248042887934599538598327831382261228766893783233011558322919119381752866975251455314068161612045710956568454764404073403275946044268917171637090197973131005407647295836500239671681519692534293243443015783884947390868818348690341140142854509660585051499308417457976490893896554769609658221254828088319294970232938668164780123477250473984002284647503548898918803380243800146802361769792637848156484495608498092476010446726420901224944079709277474165047828254145150070946239143315122837456835790071590851914399686758308604103613656318161684753008979359292319798275556657335198999172101055118595641492020700798901587823361766360042880142332671040162089043369064200911113375768625038429304081812952909820586402668192781620110774405644983507026540146501869371661448300668616732852949809281550404068973392759948082230145016334619407910563940164501359242335755373726849093867595946496225024994413925799212937602692164713651274503790849974764218928044614956633724996820212565004150545122532113160596787258688898162479446808767499620277372047352164877377177872571237835745073720490126239498380745756868791620799023293195156515705561497504012032356849908549659802719809389276971038169332942674716052317680977166579638080369228603147262247036566509057453257656991607240375695025621908568284864980917147830748565840693370086727295895045548715416993960052031899781244660253895797912933028006757781319956086697386938273711520341337612632174745906510698750098458207019548456880366509493248256225148829783882392348334582865029283050135883637983920677745747066197109809699715674110389655426744940317034750873334030890556263858975070806672420179503004944446213413068205961559598986861270809264357456336225478062367537395901951474061861256307566466598154735338202942910378037232841194269001989483685257662530489528578192689111003629757252622257549468414384259598092733300772661757440097268032956665699800882293236539307698987728508732596439223423010211262510887424568535843506036664575597940438946566750593687223338512682425682552216656229528435224846516003538955507949659626778652827289121832642133584469446034029338285458432369502821677197474282543757440020467390628088257768143617803334811788935722077154190383632408181440604870837866818643491972245745877044919567144828547256109592912730211202590759119732726603263791610377100301475886682207608026240926225575081794136726405544072594387036925727703155355511716396627777372119997412617259184118161059702818635345927605807529038099425965022811359111177931221972104683735438904675279297872139423668854931291619260796872073198764087130061223811372703113835506452372486936847673272492920413091524140492870019671285899046742381644086319027644144251805319096113847486885427808373982069588855329480597858738976172772757886124337164801039744301915398066827737358720497446366605913813201123031796344188828639011698045645041688688595035700923534870199551067655758043408702529929936730469699838777905284716776965276586990671156259842973011242574001968886986557095071617322239607043452556819396664347021503989634072743389895281361641048678161592304839723666283776077593195220274159892243473316165691161008001675396270285540066708287556728382209918161057523607012870731976459240812795214332142396324339635907891138785983526394149550627624518567978969083260557135887309963744977595702407231279102880973240626102171268218775733742914589233561504212848656532657559184716243214908106334136909960125197475427359593354091144860475363687864834193416070085735060990561660100957722728129640408321448787172567881388187063309434417841267094724690007592222794962491895992608397694583659492521605027469105636378786415881924460149102278201662934312847263516161590727475862192847837096850144120621021396951334418647394760405816862426775360671810070917892182875248272751047037033323435251626032232293745772312262625961343779429879486448550134432629633105759735314520627803909140772454270345176464705155377133221152428773051508079571977282967521913536678835110439847428885705651106621136851334623804276335892118316472154351578379406268837215244436812453215597317622466273203922440590770504699447255007295276622683519491329204783986771638302939256195072827978841300800556166735586624277969225163710506113592360263591331583331076888733492552889685750108580842257025693247603973427369730828361578736835831083209193325272592813193677323373798620543615666056568977634289236490558809214592215093195997293318171001487729202975870556191953017629103203272536942340917692729474738019235626986689481928726468971682059548879145159730429608552641015674025885673809835129983048833327277768872821781834501498902562122422328269473398178506674961285741997880354479126431288735201088416089431162104725659513284995990306403699933426674626164930880038321237772356360986295210415908527500951556449802105663162850874109058792870340375554387262020755916765929748024420072930585459755417905631133289573578391444906883363387023345692743327793312569995527724753527197442961359893852762540776313203933827532598933934669255620716406304086658433898655682097776695662856621726491128456426125521824301604365255385687941934329831512092252484221474395108601294517650943282895630842814633118592324773318104768733003849288692190752635731792674186006984359058061303001449535594906584251296081650352346734548504876892825595361221123158989681536596932657185093840571124930380913532880320568565551761767713973161822372527762862838340528184684877779866075205293559722940484397579446558279565036652387435399938640565278004894182376628919841629939247812257318527180694886094164543182520561560358079987947044263406079435684700414615803283988367819468387880816375730233856960350764870463246818149220123305410550728376754429419552895823727580430146251620864932081101274958691336663543350581151576369547111631468241083822521853111880436065126749449356577307673768948116462492938931227643106086257039834924306893789201082970082268165428445089894028942587893258034803932389366844970550661722507854840056413716601091383268311369115292488357887960978288567507719326163511546069718823847076622588969211664150501037402764707577266984817896365783740085701255567635945116488542994431570972460987686131843381438160369301594614492722713611641090425967612118871011767252825694701792074788970025140958591060497322581405317164610920918758450999922679246292578756024722550686485438125694358857223126846089909648833124375712485529159624281614799345316733359285929174603358574137292278526967511681410654075120386873561677510747558067664124818275550905718259817846260739315797574784760791774340770924491992633255075291539123792863697268457929381633183118922496598654346377775081134370349345834609813459599385906921309650394319426375973973553644080906234274103336386604097426213755555317642056466132370929605672966233410758439913354754914073841941268280817216864328218026394429897046217635781525038156895761268018940640459793525847969222588266233103775976400650002065586731332346695243665405172035669276109427974407702157090959274585853591233822506350549133068757066450088423391502761552891258746499692403571033827053632052010461110404325757804227650541798778780803901095157865438447261461963515600246878065685602335617584551038900095440689111564399599022271215496673494326939855449957964101651444524379074448942486022276026151165609933826185535301453306243588419311466149935517743912357330465696974072417949194414810626050346217630528130072292753350323154214061736638217491509346094666602575158309350779944059124951111859449722102108908374335125418192119971396720771357858321446731177222738430044460962734434430537236932073139775446129682265612947459302699865886136379940336765125444496265653983313142469799375741784317250293286098935049323731401771013416817790674198912194513356763126359395604391910708799967305988524355677324719026886385363487164523419381035080943977400772692099978103685285042451162138989826025408203156729397624939120949079456845458802645097054144597334477988569251000456632801080415257384184808866618512299130998391487085588581889559393059791854736044365824322648911036944851189566098906764480268499977209038063799956307375514383892164816871366350300817307988715112105471814348015861274280926136634953727957164259643765355421328526269022815952347758768033465957985036343245950254248187015203957457617662295590097990989605227243520909016692247575455038606530645581926259365437386883658494727306794879414025116139370462808941256765601958851938215352409678842470475933429565610750140953828798834940951783728199062391785396896250157307172804040695671988587583904111452049180905719689386440797119462357819306564118482702107778868501193961507419225723295567154998050142850910057230087686754120051434894555170265354433048398517655348360611954170080540098107299868513039596823975343819183388250439847139683821210469913507040146131012948844401625787917090141384204345497961864538919484768283331433744353923439445619484609169551539288073795818652510133498299124945727526290434844059279872307882937421304046070694570685880174118641935508198522615342593085455141357555378542212939113803694687116457132897098788492772582655945218575822491667255488674899112400006973055901759891360366268845637233919337188381045408207198768815699529891063969675777795594878843353166839893805741273147561897063166893551262647308233347141835390627439634777977720057431387868702174401748797720902601336203220035391583585765243192508323661272678032325127099462862938550838887534902903288398062267661608478714851409454166365616466209556668486611089789273829148929885040200023249779103215169997317833478637254177974051911182872371877366522754147451650373460624315993034405925839480481487592807668320676109490907398133341697738919286529605600177515334657726602513462743583025711915224474371195498436417082570200273635437350009118873354126839269476733864878029819435037616813530828276388056219451270842150636880429233632054388909767835289928497078856487994805666013587609596767583724835215874985157608326662823831439839722834651686577126357669511288464574056038599130691523689954273925458315414801874564236438366825875645813699092374104229079446545827796614306206096535252307073698818421846690078818951138392368349848905525812611663632439747600073737641533535042354625286605800951437825055554327347481175977898801791336331525610228461953065397016191361405114052807954004508819244852277662966597709593129527548355563970566321858909763882951647325065184158144375402233339760352835982068050544384030514599953025099259280024478932850660013154545339376892023312500911291849081027736894078273257307937147197421110632953116523599367442282300852296387629161303698024956125901442328880238457930932729658410953678035301306446953545098157110353788390031454652938579651794559908183125261281810340580861577485876001969351615898685499035693002885062979150603364148052049432469693312312911068079531786098843165585981557268126065512977723987265524326055497659926623284616368072657543803844692082918525286873007670842899045195222298420750652381748217041453479662712519295204509413014993742807520163947427309749819010517083948004642388434481036411022851278648727664911085478784528513020855364133981564929499841234334513488003193257201113992963966576378367204621702859513260039488557295269621197314465776403373348905887079282957039154621891033427487625960052335935843261766605397839420617109266347973101450930881222279145732300654690340142045725074860503895660303448079139776071771154592015441570542938987177848183851931441482974025774609300681065389937552128313072887265435046181266350417924122027829090942760883936056605385323239236762014127883557468209855060239579779596750562112960562035390755873231318444412888352359909189227519097011276599077318104477590538548620348115708746398328153976239351787282749395642624117804415492693445156266668048023603899938495601464467247809719890179137664837732189169755624176080335651326385047103869504841794279113656712451733055738030807614529239282895421299331503991115266066980140384365391749036164002148253459179372506593100037876279630363151551720708258060744155887643747474744345862020064203183494980999302479041130270430085128312034747134605850210755135683227616153603305591158897657253894520808992210841876468620558526528015541638915454672100676138267079605691872012973406687326396246850429060139017253005811046887547914844635948151660946319078148390790162682877407383158013507891344058044495763428056779647761214719501698898553876588414535159586033258786381319486738841210827290219692843249522088413326119179001298194918533808644814201368864906480338036586831857062388708663097583324486106151015992385703713512462156423123721349657892161816218427768164776296623237221056137302817254652564476882574429440636662420041269110776199224159631903408179275683276702825021427733190637605730113351990978231780477714240975271092400420867744035171234554498151223384931495581352034341493291274812880527727474061337420824950808608043836564430597533123324577111024726276806172605197140799915457694398513101208548013550868280821965119360197132272947883707212243003973254236357101492050585498318938412632985497795531047656627620027725332501122292248868318123749253051972760293586105022648109453981655807979412167730392787062673683236342559290476837455355230160500515970970702075882436764573634273320696114007756824603455072262770721560100839488949770476669805541537239344174039000781841339229205892038755292518787586681257776404782192605734522161056806364161447383077869044657310204678776642572347503210059335395390760348005563733136888016447810108876536379771785679211895325342377027540717726179881540427677960398345829591171063308838738014553854227806083603713060682912699885413748073586113946112077853655924817504486101656215879173755119790727919879526644813024885377921722781672904070365371205697729946355159673875482444839659892816447816984685163112742964560925450919646751528611460317055554059434540015696049577488025445411788598900970471367179329713521510760808917901732770870761472594351954187520487532434103076547410453446992418341277746608618549961589108304190856455521429053269151073270100083959287720402491861169985405543563630697977016244372115839160284661637914412086540909010896080543600449641436968181635468880543044065343061840515983225691485591288228924861837791801058097225026853901949428173176185125371632556657007524921805560218152828271896621313792953643652311978161984182567385434470963016775869697372036613769813045550755542515768458280897875969173599594926554658673411845929702280236961665960977379175586522898228246686533499042241122121414418352160917119118167336964569351782259476153794109182252103387389325849399515438698133934717965012431119117790739320926461901053904811365713010094864831666921346385612341114350366430327648861376989574949848221431375139342514776496828961755205173869493721079508127593116221082924868630910390921384141212683576199879851072437968756154183993959323544397903849362808332832369138516045634514586147446962217684830235427476452801270285027499734460290451573240186944272232839498623205192293335214191922692972670893551250213086323021930021037033829557578397075191727614575636889908195127385515868876628538907455608206176047300731141588314186599990489440419975412032487103953581824085083704698687458380643361846470341865950761926622649492555680349851395715857447480174252662259238850664995836848872017990932149451908878106984679885309331952119200181394182491194484584162663779688602180981196065548733123181456684586542088023294944686894640486678321447447289549855069062744141106228642920519206909582654402833293151930725496270198248884623043539007714606286459347654481893373020019385655833046866493831137024427010504995478165385140373995624633515663588665911750268308969585672023255298683866577947791268729813212655600646399027959032352555994508219725787975092361638236354201154084605463812839832863848510760352883134897763661435302225701230863534768714245742687001050939151254549803632668139804305310250731209065758612231057959771533929339919184230705025616768172548550333671747118297402380952224398831221276942639766313855888723653971006049655586505657983062812166750775934663001784319559402205885139172144217580484094571170701692112921358682874750118032454458188558248560362873870519753914175435291635311788777278646408215103186074072109080200248991910904046499783255747205952126538859063660218904651757974284377063688876379660103868156608670939107361572018029002990028954240735621176259463719962154899001541719077263984365582035475171690524285975108840167138459914941056160013089336461163921102425856618450914699548352209975855852572123135312836379201381748075658001680370248424675304501674588640137051362085781355592087850066725875739168812826835074152802362629839651176997814856943078924201693512051112775232444379306438143780355795105688941067595155881433505962335745655760162350357489279752132389855815241410628024683803934700755970935103690414912494796387408797014573943663275320966627874886222153436434812258229491537716038275607070114929151850335829952151396018306340012667165539802293433836454559348378305183815166278987511924677009657159720136109315986704781218638928319335388025819876314265204465104160845063684528948571610992107151400769781709678855035713985032712334856881869402172203277685307757485547997813154646381721999164827209520055381031099230742567336885702065049689153426969048661052634148768273532604001869327578773311414094175153329023129495705213155572053730504129142695836133247407109622519269448700024152197203243593894582559743070027321631794600002034222655840667261515739063890053052424731490873037637966171618781024121481543138126361282421952157200122854902639198186113270357317471724012799256952084139722568197631315535517688891343040970476989554183846785203859419241183992408354588612672939221830154157360512884538832303470368402425590604196882030616548268310603943675230558781674022353004563623500779400226591852664323820485657227820136388542620949382919370408525404687790317496477604877593669205402676547336140954716572593459632550571457332304988615116860635274189375065049375671099976387131526038059832712958139938504675793994963279499077559266966239635262192904461837208616640956019005866788376993394463779009561868286384386747563560579934677116198838156198602190286710303117375678441188755938717078252719562169153129472581366808174627485908983693896101425392069112421231107010768037400602743517722118814761318784512071498095352524786748341206449080522078304010946763905672300872609697028562067430807074255839514951881214945567624491654190850035114971665957225057572323843946638050871533824728839872502812434932361605432196129283610658980068567794678149486021883938321903967424222474004287327965178512580121318145775613760207748531903294333597555250313654558903647193472962137129782668819970420964093107650092900421859868702320241661406809527662571648743252147413520016263266972316781267304219436539716002930325936110643638476047282012878467324472829301454625416690214107777977344659435044184882822827590609764573725872971016992899625155754484030573005330299641339917195716388404750907153789235514715958575521618175589912747889657063910104365572062327831971867316401050867603559912270827955242553136310899984909632311739335214376701325778933188398857455565761225748151870102857281256427049499687756902664380033098560008116800456439594741786479211984298389060523508333159030082996909751759233186522714203799180370843389056036723751766927782295137201466179854718628679901623769791092338939257601595038447155752639050344313349982233039245969727070113356245078005160526611547410710680838314358568204927896519757115004772090914973015768974437254522635216911239123017866685055901853632312104042306665434370166045395833297361233609207032864990615003061286517365970556723580246569594007153605556826431351770648886720331528168705803579182678708505902240079999693113572234989275553299738939603313327173479961150847880551810492103041122752304622738273437894444645945916445012283719247954165589538799413761573849944080249644735182596880074646117536321679500267803685160806516940994606288223969196294947900159095415249492930153141520483527970316813242663021307251767376281900419181814424665617938736988176706521761765862166932013159240651922564582389313133145092443094535949655917492127582910460674042876719946305367956417747375995998312167490200352286650659678128925978601080718033841888391992803896237122580138964083508217707383799547049320084886406855448576786302317146248697077111793423762003509521463008440153045002576826486262144946707888006513021251675078832836052921069157772406665750809465571889953027078794424919384032852413319112938276122954212697572458457584942286731502328324852897598047134393892031819150508148564277913535947389752808006339602087648053979854840447844397944851876476774594871956412623191882487165414466921999754355694262694728255628551975364225447766220381057087205448838909311470313719957206322280373531492856368595534252324429722650166592653294624978485413119040098326994977365055793323665978274444822032070894394225475927735597086503279483396227455093043732010282132646660948018185221232561864058620862755487248516170107978927353722752319049384822583707494146299995007539959458261553493446857331328865488917408169213888678987775428290493263406762372712768347139316626069419638353117581436031208513650764557902537636257303396846209341973351825831892448630147951990662611906416081292569311315256065974012006253339556694752134075754630867746644363795650997355211616861464567246141011323989521739452273158442140960021361029530533632693307329859786452907582116320067611927482942076217978567255684479982259428943679987972347635847956251257427995855553837979081129660089156149774545883133501246519897489846838961115367759816318000548927235746887483507184652307555089017745105998388599802302087174456155523238596173740970462584637942324753836405039149333805480327930537110579099653378837217640110641765574680060591056769877855082576811850942318478058273385272253683573225997902183048848123129845442587861076504599184305023108694412152925103858824399184563316494568170231405168087578190549058839968288225779151424487975979130232679219735614920049699709608160029774553395153923453061210388970794302883871247182875557658730905098599527834614134941888169230138041272695614031100035619666077932033970038756652893902166182232430439667752721178154810892789994502654441102356347954878624787153272589815303752673471812183681176048710833459091256998907009797982458464405399792622198890315776206544688918682113717440862678984245610247411799998516667310776247118175888108319586785456531262382453597113277795309452121020448607043633049583626254636520902483278376164742480938026353359841662834481097016205295405041030494863141482116613570507443786072047288448111722836124990926040270612533420228507893496734441562337299787377050253365381356426509181970071042967039023600088020519992976099310721049973012903252440761591070860259332096700318859741340206433739962568510819548396322846808940120067275039961736303506747035175342082809107292679862034500514245051010761718110715775433908629378360288159899066802957182873009749630991364556048763425734390994254276093891121944469421241669054741306759980505401709664842578749841416035542955946173314592415828817625998024385754825298766008111716887846715801645933884613211359964333817136633154699255289633838121889415141776413558194244818679043157117302903436451195155754076615834270079467109310108817379679720883736714118519909630809267347300504257313109329708431081520841582286623915231097983231316903110239251788540415765861215994347262015080094077438882134039624789082754945992203702213591085749641132602145396100736286470128943178152199538324796547224137815725776314886849885009674500577250035655871132294869224696355021736213921176082170030180106304346403141554476178924653548279455730066513563239026117944536393306686730492032596836144366438385978301842188172459859383203012631420606260325243251326228514739463896431554166361799590049183105826512927648056021447020841491767670410615006884184827049641022393337988734688789454866828492323773719283577616762889761721968055450948130801199168277000345792915115864694127182502405323026805216343441122716790242770117244357844181096619566729439659968152458920240351536262522792817859120926069977684556326758366194853309105894600727065279931413595544886868132168435708242851195700398614354592657285803563112809097098650364496274501010519528060553288706015059332648105673647770308494832552056922889583680669766336352173366521201164951620876455186083544575850608169029545883470206624274605211695292132676382284558977897489807527203494521953806099988350000034153191686548901192894802009346898687774644945231889021862949846073557746509814833864168728933392349153253663213190583141566699648524135617045439618616912263631648473680755122365096433953036374430415523117718236155813114019592483552600933606103795318018704225175053430206327125045198845796548894498810421797995271592809828094006578739217741247794747628911767243141804410705614953827015414168199204506025105793366229342489386964165699359410228555085468670057486899416182914016770741675826331997299522246766141207681522354650827843366891371654892368290640542998380896011139585067714041499270899397359785963171105324420204397977502797929130909793773940690772455551832938453704287450614899032037452751594834288012457315209749872468457904621345552443330717894713716462039342428658882057706102456059464974123312257544718684107554650909680805402025547897157867173102042108715593520897253226076387224131573847893974747494190382927327953379409834589603057668567177345197077181855609424384750368494576682992680423355765662632895502694598295883585007718256172118074434357618854214788430672395362385521922025487351873908801889314123579278930904170463719818166297949485480201454834838409233226537326002717561570350172684017238047371325417608264941478096617474578340611524098526022469963513368318656185444473220266962509334577914111786360097075028222417061543545259092574138973269319464164119035975555551812668019695991986599725454504585936956410577704579989902780949110602567266956426974660997490234025631035787019664987432767672967787640188857304517801900322894214274476227279309017767764913644168631454202402161839100360657474339030016958131772676563033803904802942751039862083513910150063928610070935568725033163178037054127147471536959350319158320218731961603919041751464761762055869711483625999849221860282899699310388475783445104182145049145968217454651999486511123572268889218553012260975319447728881553640314618699624846456715114261509530027269839957442697939052646478626627381668655614621752594205452888904991788092718202227538056356014159918131126535104295542971358352546662306109797596934065848535996214102290612474649242986247645569185525811477641691337420743514662689325123799968581717605594240424153503768327898394968619435197335740896445208348316327947900570838859780301496756817444451920633671296193494176993612263726444101396823307719426484675252938613467382024005000643243705830827718300990385769033025106666359626306637412443446542531493707273314603932569837915129038355416701777478559594688145494708797929103686273008455247415805224251375269165213001407136854472509632161482943308477560001599787235203778421044174649410235061870260095323478764222049520398436783845909886921926728465187422100378030064389142013121371483919659368621170077774147363201962991061983814060193209629820209666333733321192912944817091782813328074044789736122238926829806754358272891336528833253148501879953597214069449478243495277186223540572445996379138673193420171158495718888983424360178648173016193480657145392801127925909102490519819215125287322765712169001735574476225180827472273684978373184160494810175883640388372229718373468153425585171670512252812087661147299124944575879633091665200777895103080734726057039471614775283244062712834168405179265854669102385147640074570240136913335272485003081768145580745101834393839580323414384599137549102244511322380680069406208307650152504787665488618715484863993799635594391683808181047970025621974103792076111313844648797466867579446870342252210344574475271969314652865909068736404881553068208576832563760948222747601059395313936022376382020087082599702969820706779049293012943591937347964654333699928191160595119081090341789037031748728344558551600761420779835029809899520572827891703996889138768415225170729578167269916303805895999820844711095628690787360421134093426179546833743699812025389403219249123730362901016872477067862927885475975838484832852503097209939176717078682932956710715052278147856563698365141729699352709730719212182677267522005618963703745374050464453005206789421841139574934299858959714701579325157141917526284907299137282476196206353474691129526942284639778470251032689341184883036207517146486035248341945378459932317690810533339848783499832114226544215669015957187327268976308829966909731213237844313792669310160794736916762559295278285047290109989030767188091748841071391798991194270074719936564721318018413153994196232226534734430946293571638438853192682301652128639066291405625039356859570557102381407997686130197386471633715251446244276864351260239961538456706601126041965425374994856879883494591708578162181979097556792051354816879425570160314653364550128810773321228951799368526266889996282661878876628383131699213268956726399909101420674990740805856710514892403470308028847321811881402618790536079823707010304136763610830127567373859237928975738060551853165465096114050026526853501725626866855535320987133059650780531211401433951545047948195451224154989530038972057790952705765452953565404401274066589149639105314569576634209377800329377305694616819367114022044548762846545657702319056803090880100406097814939428904056198859544653217307180189062222330724926802324295034669226573357395221477437279325955670586431972835475123407043048260203083006888281387081252966288223345296357752823279905695511711916689217987844497086808137781837685784413810950343728091151507704156720617721938648556118354488551152541074772395356211297347645547762460556403372954517087273166099964544404596480488516943594430104106318812310913091959685874171454824668512335622394527049377240659988365159323738715745120034334036821976432146045869336681969748170326110532702271750222606372166392003093758499482963018449436301031393605680286524452085030985287663336301470733318479130390477918130808973682616979157307535973889849479061582201888926114585428240509001483816540687361898586500493195242066179326861574935821995009970332601860422551919656629967699903255755063397144086996187901050097532065578871084032286828090767831360034650086804681055847348192344993620903978390781845784193715044945260111829678598740243840495408328132993874992755300054161015019195099677226203833739659018954699979375646997972479615479538769581018398200474945911282461139493955240828553728857332275961492314784650665252247050206826571195367731887623822061316029106227198598045018928449049128143317893277397264499027664286324443855571205523036906379754264899854591289577198260147750328594308060701256889018937248163010224954305268740854843034909851318966632036064799643619038091098309560496014028139569655303756745926780115064357103075657136080482455260206497647026248196996885131899866370311810232481632829477923432625682257372002444590905668566348046724841697230526011810598158279135938124207078326156533228577115944604833796058289345736362007862490669612895611449677022782245685226438548965190558735267812117016256607602873624846337922183917575006347065393771186348023259909131157081681350703849423750634375707535056851389519051541271301223530640451145007491395171586063425499657351164988550105340385285039540709483392382417767143670513266493209258783758479339527805811739909590214400855112687603145280059488310580449510383724514191542656039699823253928750142844462188059493898813333512228587832819991917381609433516126023973390218368939006654302748059829906254976867721361873822511113693609057914593134946199128398900943359990669041895987066519705107007274135555642685513159136588912617458256850572419896299096705763600055172841852019163599747296016012346929182462807597578699879257637165098370276712632273533436756346274700109717461913896757687846122604767735383500138009478221217149466432142211168153778937101273689429698726721345964543046060511223310167046439703965053566972085460358122777419984024385981875605052980871051645180821783782545732005059029681400112307259422708199699188712135601240807427398745859975186709677787321069476057058993755879960475434441921539010113865053867783164089278879075364544705622625758392602994500193572641681580901763439537437468398469125285711021707469322583321575793549837761425234041821092085659846139995588858356290935215467031906819192886275883662981554609482611684655158870731273729395747555640080147697919216743130678581993077097444147370117897516356381303335412565064570257826118344460730976656811668718800609791678095340731375296335085398347761191727761608713457228678299884187312807811965085571122753289756255931950525156750202516899744977481854050745141443939673356872692011007305701802405915565737237760811725080387143433335289159593340836584679652769433861490018335660025064101025075990752165873885567969530871154251751734873380384451816010259961813624376147878839298258639563067853402796408566599138114944885173438754711912969330147599456128249696438557786315962057951860723827641568333717001378838013939645644541561347259683262350836849741363953104325730045753625513338841040849329083910515731440859645114545280613247112770744734136748968695581241483377666242589458002282880630210601533542499439181846863776100473951496646810193870691047235626804323021493196614754968586243037925962413152747777647826000924930396275476171001330864145415748852534911291112157775098354441259968184332932831960693221988041203888495482871081581474721576911458625528823408939697894386018700571516699091630850995139950399092407145600232191493247105645528050411594438878343546110753949798953778381739814767547214500730797526033089694469117057956248663921316668695068477963017478226925928839053585280229038275415085914345718013119010750236802180327425923819021797131253496107058361011014408401150424476624245272239086857328439763797164173322331046814025099603374819582630234425935592110686433985175022647554783783076749176515234846384664319855180349529887714577088575953743969036042879080826069767661053119780308647476993769987535902712967786021368663535573431512927064235283959463659094636717168965292222815882344168727456444262667306725533934254642652240239780663153186851397138828036372964096592083615521090338647526262057446633099883620833425486521543853429173707325025796859355032673993739854201872791723596344297638639128815848872703761784721185421962206233288806319551328744019592687691823404020776899785866395463729137841831911039965570779301190904465156524482595286091049266195342054623584426437312387116709782790369001755159954532318000324978672568996925418194294201866548608749815747540931407840425515865394330945253390605550001657137261317713955436405385516028850180984507159961759393230800473925631412805238096482253448641810410743555730106835070617224054178703824090529117060268766992894938797979400405886669403530275009327662910547281310833550503278678964347806905661194007769776093688376351479142393124784350024374687137217927422049524911542340406049974167344205911030410957865157996562183460249089988172181019617511519820533430862510183149208593297961885003595270307851431746609081024259067004817813556851717059080667598500197151104216283491236676425487500296584099001367315417783542531972057594659550661280220991830324564436440031521237205227515516612279858462815533205175570946729104717705794889101243488747637107219797903758427230740051987060885899989628429366421762924929044119261672983768445510291775947507830659905509536936874741881883892157273585044798256685936529337773592103385376341920879053425985640486380072386149833961895373553037383158374405541381830298837702646352724625145290304932525460924503741725940438419922668037703864891305435623882286761860261625723179358887398327777497316099286431688065579743875932437487482019508110001681401621812055421649194003446852506667748473199672696856519399107062808588623510485042680639085746129351102490192052484485849311240805789559748644086937603915523179561584228330220775545697669446094483080232056439856553607996474735461456016727954814757758104630070811214437816106926140704593934030743401308441681437415601853958013645197733416768737290366809676437767769610816313994702717528193282864364913673847882739343127310555087785677579699653436366857670325317513012391303370660455578871238363538390165554973908886516695635154239791403714752349799995633544627687621848584016245901977038582755340762872185156394214495667999583258986880900198891715246138913999564456248936163230653442774182817795328459643988152494131262822382623055090531541295008599185959766746578246873889336531589335060303357156904396368054154610361329844138869055375944214836426274716675389850937083166734289868399733247173852496115425012889242128961953512752826294579988016429083110152025059174464687107129120009515138301009944116143513429404072730499758835751465737649952554809343372127977001225870475332041806700177491695343613292855133129635536218819433379153404775558662750668758888262915506448218329193651574823914970734242533671429263856368530162844837684993706265499142787986468132996843021257406015528186794798486195599080155219559145167685821061539821329754836746031899979478029518730565624061937730765364038782275246757713274075503813675393122823255650081505688530901536176743203724955844685662187881662052218162473885047009789208830980845921964100805654277652507313607878589769430129433886510279669067692284831160905105909302661787697908809377912730328882207926913069620312838220473093513415890119665829787609120415921042942220458390874414093967802741842328377417186965638998145482674363502219332975704565885217649816257585789393076778438544871669869862858265827841493129380374205771845158803002539056334430074918634137322984774599466397384735793485877186371053777392242917895561575551670028669157569311113764501633663456708020078746523231219109455688135820837121689174838857236381581878953746168928015930849168621610672636551040221315187775787207203768826912246726280711405971145873536076400651289179496812641973084481845506255206271951486319672080749163987808784133688669667166653481285718234699827389563958548590620085606654302219712802146646776190942648825939108663599020320792712520693718789703515814973713883723891943663077169062964640160206644592505900352731057227354178243744261697079023414825265057053297203869878828071459609269263587965422603543785776628172902954265325830278037901507473146392661697695835002311377696875044515693923071827033973385419752427993483045077950842282999669425713331966053765809573402462800194205464609325091567856502625508293316084003488657406361285488606065056424842320374367307006924403976870742451513303009661336666535687923950163953021460295165701473514080875456962843623700466037683412021845749991384290824476783318144596666959860600937648937613327965858716829075680609610915630926555864117095683974122597533230309453722759950644239032801555397669633229673214962303166154651106523574731875017110561298515286411131215724673196887954585728627825761395335889999062272969677138701211259246296634748247842601626942028566159428918069972591095811612506568792316896214533042451705879700462226600976950677264114736087298409487680597619346965169625004736602760133860236989486646298510091688297067003692008512963134628888484470090183892814230725909806157870207646257004297856709361421389055220017955031739591094912145149255931317623167849083756456357132273536374143190670305105126445445375188822370753584708483155637126007204717355672987522532176694799964874805170391039912899400808333015875401898917456732278557866681652083991074539606234910850822836744512928908528323902290263879226618147312994059800042497735569028569495227245923156086826655440784605412184280511338676079228949923989652443857961001754210577050084478715146082755780886833163606052800979908621398583401708844735358409384959268881437948851252922010560456319529652132703999258619123577614370247873898949626447507917646577867680384840926015094770748228495550376946451236875345143311888108401098102015387216327646793004253396778836550426206392117341369901275365274973915597811910389799060104333772364272204334973857577745288025221016171141164323098717478216009089274379459269809434487608702903576090075068881349136736339763188098260121502291777049559439480247460775738000396015027553589607008971296898435407581943514530580711545888376530817716059266339706657515472748953982616106456185957989238307055503135140619348742924529544231931443402960866265171414646354880554786188490830554713627995250551347710613262242047426503719937188730706392235280170325693613155206526193322561236270874660508954099223491815602907212029203286623677184306911711091710737701978725565686194568291213567547158348137955616242147966104082107836219465673369913280152371249839705807175088480649165949423980087939612884464077074054240236516643841048133536813591682779731155539663366763147139037423268744265788565474431705902650746240188335466151309509526412367380081923483866017193813391339656133911103783159095872966446013117103442218664479425292742178136690045186868219517578331754202633353280553885152241428589590912694015527960854469875473655722845024967613124153113951077841141343735529050592990415727142316033168248027701188026632957282478062839738912415970943703615850653589467721557989230669649667188968021298340184668629692023657634950157247324519231276728978531049471842019522422962739361040550642224502045602403764551362506755458968361892192434028268111697914221947028056532997483616980728406079210366007047996928472964945049802151572611581293994215567443522971271845554007557079566600974947570069056708958833160266448592513275919414130343253152352205143199009240529419070067823810430203372901074429152845013790685181201090101809993950987034702488669071208990919579611194340736197835712079373595299028697466889097780439536805597471307353423055583398628403392386248104790080432358657355079137758870149179794220805401344326425133920758597080983883407962319355814395336539660168463737349027786480298241230092966966662776001867202351963768578392513081702540227636249978514506722703928509070381893692070219397865033569044126543869347453029928232331215033893135129848816563630553964619128890853569558200046636731341988163540936120317365209534255470356274572455930655313854601769282071260148315016906922159730182456971062087143079119503772887785027753677534632985342059606241291406740670709672117682497328577843331279484299631696552192450011235694154792736356790267033099281856607303987331792033720697674105147754135123568901332346700730387684312486415983478079857360640125512196329091740663468438398234231529624565276093599153521209901373598552040620408559937061430811536679213313467382874863239383897322142482206607021009743761225161672112477722460642091205404187425548991058918997274310625827682255421378894771309098119037792911459537955687154841266539871874686824733545543650317737920100605274783148476876808089606937945979540170681105329542144865374678712074742471872597273163271993769024159540765477386192186152151955023303200868490069753321704048993120884214391874099189493381167123589366007394521472677793980081381844753908595240496449307627145074835124566527074885643917564099911084705917991893842076908974413729401914617782530070448879828774776509631847395642213564289034333342446024004908082626988784481907206571868111560524921934194275852240130439616550883625922143795951181401907906818784743149988303751787605591900939027889611143592616619118446109287109899321760238711635328558803606871751148938414904938825620621552902153953391698141498461068579729690772750165272859955333713861101169894932438994129910741098526995022876097241881417380142064977990373848157160750572769246124116753274449171714544390415350589308318935405010914756368031745004737742208532274336189506847576034324218145011735191963588216857985755981211756114916634159874531795776196547317362009972738772438230343431687576311021851731946652313712216391546508032289469476970381003489040514401387444824312505856475042627578640940024516970401922818050818833510544955186012852949489026113945513528044058660069342698877853004955969141425247276769108531209161683841181745372139375231144426392891253651140658717975573366662962486723391624289159218726588778115351554203121571400478712183163206048143455087955034499407582018152483126301202381987856101923900223812075271402595583889026760487141010570032808491200990788124723410627620581043002999504443163767028945128773410725666299344481505410708053889297679838328232431909402263216171565191528833196318785427399868519285402996814879226029786176001086932151809538876271863201933330783475688984267979514471472170996717774144984529994113507618582708149450091368571568671070348100368291923839189496082476050924282488508381847929487894652427326815220388213896947578936237878227569621131995393722340763176655705555637764747725290807097271323278533456315424947370437593136891509287424709249438349191613768625576799566435162497787259759026832701490436533130542708873351718550343545935035010779870334122870281008678658275835629587914829704567989321142424967286045763678575916415236794063481341690049047646543655048836612773013344049192494516025410569424366571619700498784822478587468510942286701715957613026353613639904729358393016922457571764163378545689309533662127473304889073024184283385972811704869252314171653194701925176088119951326206376649568297817691416502173282946921746091799312018597298136546935164839060728203187591265939981070869615226760707134241862904407720587750528291790870794062823346320156859244544047179205771990321607056404708341459368446825789033462070082451067880937089886412365037051238745619597699953362028991922583090211724045930132153818389899716987704178907575643881764220014025235377646506360812275271991408322435208857741969697608570932676148887608890522276020574273704990092662694924695774488582976856342937601292942065820896858768315494609130334719622528438604221090317579165424886315712457717146780059816983153905774045941357944926097162015661248032350293974715107577821134824244225230117902715025825116460324329936562374188319359356335155753942257651125428323575418805872435547360378424989521640036398011756168989154856733632341415633761926519487476570098030579686760381679753361030855347394045350222805623994267969089791885324339034000929144418373049034702970527921283620446741617106870104409851044900071194063722824656124202172279971572114262003540806933091272828358714320557881692150412018852820288965196005859559840983928096230304795169533569136943890706863514567680653815199016344118890041736770975321035111262529509372522232091499902617020166239728064173391680458198654070086741263180331855909703214480150302703193792925069455043707915006300308162725505123552462070265044193063623728468412989668752098952262390179837316316599172000076274357036582115416451782792229340904291908375454935227156363193720191804365744456553101229843147098551529684260314994422943722203722354693188259535004054198489808555064926658840309644177440982280496312604056925725864825948188251433505745182552771438322157219769741348000949496836800527626398546674804657382544503244188174454429224809335349263339697843636566168720853844702533231644813527346133538510404739103419676954830444937928582269255889506490438997148759811496023270670965083943751468208377970093808908660001816699063422672145181500523061454632075574373868648108649566560550183711444811507783425838387378118845082956924071295905670869529201959419044442066854994084946957703879911863292054465022521577212490777863463391602999076419462182224278325072973797633642405513779805333313879702394006794878381961869149134575388689145983154206483050467133523743099296151327146916145610301139085843221766312868267803248968871854272319675612336243273175109059254103561138038249439961067571530817637522795457142143501894245081020263313896871579483787236205891863664992021590531677742355665162550142835375168376906728960714833986097589789536571684310372395452383459819104547236892043262612498885738931003790829337126090580462121423327103851526116619643970443412435079692947191086987483388150604567542862001606744077485044152034981483882462874568570543608533825204770012816845829144427517739624292836999949559302497164705956021141876185813507268489597989071829604111762106848137308309781494979849151175338658120199193360740429491452852339785506405150536008812127232055629701701792060948828568745667833285239081849597892836900679602677448068292010109843982302749962181918389919759696397074842753630083377572225474673335403808827034283265331351396095325525182132447257615731197044817761003253983709121113848534911544328166499829119658044114771558395113187623674599897166681420548642082440165224938718333742706030270011885255084193692342080068753483211303162329968172941764297144510533774489762417927940670200814395241399497835779832953162708386412912091273761782450517121381106259282066402541066502870681027532010433332723854382282777333910835983347040214875771257462899614796241926540569939466641584717289966470494738537534009033775764644182972770125458214545718987449715830715007379675435729832217751627482209624527485542823961525056723521444353630938697412495450357021722936599435530289312633749676107678641577372704821840655675968624262757876209109493553242136914193868607441078416034495190040303670353792203292061334959334759992055846380291447779217247469234467837769879302393468576419890346500692735868262673678132709754302746403515498018097812517734476799367885215206171616930389933397101991646056372959475671749621537087980779729882810350651280223063401836255753966556027341923244423738905776365847140661636466625443990919529283457192027246687969374143393307341563340539241121323016319500813837543699721992444965010386567396888268490324222177264866120760899497471361344839095620317254858671193733642149072197339999541995972682968461484820196819301768033282476266672956270412816603573291296680025863896644141236225873309621116812875514406507152301823812585092348489657869018758049516615087614563289692786352443325855487673920862838141072300575046622526125011248992543411208362406986757028655458407618507350387474792210406676358808052949251454489207537654888316681803122936020370950587694886737484641433397807594394109209054864832045955579840486489995216198314936256134284738189955911209038781233992404864270896630251015549616727793673852874052748803265041134817349929600153532788962067443927015532099596355223332901679981789893500168487558290870498432557060601744768572808714540326760979349074392870997696334779907038178066470803736371496273327471302018189610283896279133374842609904539604641153012905801361853737314973950881048663542753592348719665925078806014484712494057083385495984238219809377429476021684629818084266693061311192266945346655332172980740155818426604687169666206156441433520463773904902543802651543052171541019095699546175281991554040791450841468342999761362507867719482108976316969873137209932387644223826954927971783999152831189018510610718334427564160348511407442701538299796824481821342981552587529948024227928316926502930448731987336045618708114726997759011954896849637540810408552212461717535994719768014066526122487078608230183002655376085414481375783384178332828607069917550850397298145918251000085750160991064593644790024308858958953867433598353875167619373434898393032109640441771142092138988381812601441284627019392970411778965453577129805644154365156099575263073081904317218809201592899788346820740239115099194998694551590469719963715486093593267844867250374849470528273507449099693300903733149182452677141808077092822321433723032125419435424204081218568124588063170381578458394597688803239303033673369159472052127360558441706937525362750195419253468434372932472492375582333001262670113263575526513784589770025594433171012643148618196216676705103612894649088622521871514154428082259847163707472737794309801105504084449233543474709102139348949196466486767323213114766120178028419078403204531265680855495661656028448921020264167767555610907833875210155679106056512749758424479583330684045119635379818223689748755305609674392730176337955447803819983600872431845606277027259880383165713838643547339173869476635333816727420405686885308583328629255547688335289895842124361213033800237137941411111371897730654911626294550733031955997299390694501782847715613717444572087009665524242673194564479776399147032337875318789862029833549782560894072415606561560871585427723030576758552846572038657167736103560324776592856416722441157403908246451241294331308877164362344786446360061265617380949079856520452877182353922643655740054931361940097384953524423002654478173596219414982423245537604475445473322179898714248817365433627573359071403767194619145553542879416980665853156972803242938579534547218627026432847002833512300112678969026322548053393873305335998570506653336806999322988259792306207021609809044389185840966315338830888258282084428014324139921535348669152053308881270852507334473490146333714876967718617342048956943393581829535744611641249419668580348441289814114574663675597497305311221362139421869539309960821976463352874934926346557867980709514701742754313929338603449649418017055556916680496806374670810401426597040757155157094647033148888845252572018688139518812568279945042163966758522579216013532641970031858648872193835787823116188556381689782849304048022787111452631458971172689853557290284779066064555026733403562806422260075432796464891827551732527711922984324627234197117457233579535334593014142927232782938393027722132204209992344058569204880284515239340470449542242324985575735767631748728920730829805940672175776370035187930859128553431819601742850541576462667869254189370109582583481084697822540892709587633512177531248099941075744738481189162895827304879989260053668312687737682583442080935890495906073089414329131867855163183356325295059517836333471151878097533785060294963962359048432294438546249062336267798584078039138905205171085222415348340972570800477161534884669655148502479895340227371268397553437141738750063348471059466587111447933705064084901439294008767503776217095612560818656372134161276030873896090461257794632628332587901606834056110018174931514685001229810336675929181158045041069982562139941568831596748440997992433350346030498550472571492937923743368783594808194953677144957551934623768641657988912122943167711383007896739141834930565485438119668627232430796711570829245684353244337792059713961374122687198768063647091444930267027360921397865166190099502357565463721849907339207746315328536351829074286282079880429326943398065740816296108885113412041500109546366713092761999237092617349247256442070442569639314006716238298417821659511218881854576643110879422677766345319673877945305295440652331464548998303389882660602590569260424800838899988854489697405834857035233784347699046756717381740338345711090130920776474965187646172622087631756851222425809826012514225201096020142370695568006488308253702243174202133018895146056597036519442755650540420975948290607932428102309035801346282138486667335278669583932567847366202906384229810642940304277163323471698591102726643100139440373690116332917130795777363013216458045232755518095634209628003874957950803172379809483930489092359513518984786864346384979488720293898432926113545857677290083072204353463887842610655259666741071027651917529928941264764119558363567607319460818585303040083611891778058560566610203969911967357928480669567788207201881315743872863066086977674720536913827631557287821794524338017498766354190011047493368231819714444167478730676337705055508133780543665386330097394912504350849076071464107763684002270297730553600536856733044725300289005872041304761551500177405460266591283485698152195783373665963427460595411869620406384506358075298767577720885561917838387859894049724176224744114251918387240252787805384173319941601607614513604127300581302817129995422995796723728079910064410300180777377945635799167636831790700405339321332829650494675449727183544694303594147141811178872109270385015806130919859752791838624956001362533940561377885179715831706748724316886362124554471571505500475034050486561094187849949874753608403266299367872474739017332639110558145722754272523289747585535778178246593972842610868825969464937423368829729190183306339975915353777107252106266220811399321394371193808185164165779616152656956798204662830111563657875492531737489340631877398331074936989432935385402542865240190797730283878867580549603687958869524380100338016939083610770140690631883867881949892928179230851727012586388324376905095200026180453329694385548216595147606285671853034214374628092571915495264768389143338580870060194060071408245154494830999184884536588865699700204245355507759525477491915640770529060226829798394774061882431918281047466402969980780732346400862912626165095704870083112852939913875417883771100581033172478770460685829075664728241784136446038725538376231316401554039985599752246979346708264197697962845927312749094985267541249391731350160126934333927324094805643681154845870035082186255312702823506284021497115618369974845816334651017564858126495869420453788218135700453595801121514692394487613739913785706983649280269336724535148030695116509210665429923261009758391026582874956005057641575993793949054512211404495766768956373910103983374549984081723990519358215217574814602010072405213931688364984387126388015665943091028818444447518618673913901352764499096082979157365624220556427092628291094261753946131459671394462675485864129770217524105482013461670860557076321892716846436444422448199253966623202171814865695407583108455269253658570402978213922925458685535550879115418228662836015356588669469447391500632791094525626966469598500392700160158373876562391544181535072376475348350554988403662671277208235192705966310343655076397259973023051259583972075234072418028520283315403901965805175794405309979491878620112222150672936894182658352620831875584376417400611551445487652726504692965464376810814853746933380539525116291819077022958610267837001441270334652498399518630877387353141731074441297826878265973002125268713844585478889787054130152412295109493350288020944893312026753526329364679062555095611384073263970037641748988381257048786381798920618309885395687407080459725692246165215858728548809057571932910453014475871677387175322760709711113342726043241968341756349604264109396556095749827300444221908649238728508869275965780234736895438366567233053091504015958869533916873649913760958616693820028733024552546920509525306550087777507696649006624022667544001353499959395065680675305968202718944720678194508037090139435202568252713481355780292791553550787128995450558697072783964984549079453626512692581884786330481762843983669779123407419639626470177719738023865670736486290623584778194396128914592075958784950508459149949795174651273570976773444922767489667974122231531809277666647324765612719066671885974422186694589372684358604548109312735196625034995162299324176095578877529286391112876624227615080551546621396271981164541255876641214089905567503274014744946843261517413982156265887652478932550502340510266242473369367046236857220491450237418896123154354603296030001252267977132391207271111196424410512216976052507854780668719667820809239381977772496302513996145689202641799976034061852468514073416203423590808856154932543041023008913825335885161556225768695082073427355973383763240344768294098125285440154374874543937238886153731930320458491433441356602739069484494671254704987664602591460826933353945627252373160627581991577234885860750361150021910332220020317083799643895774733776995915575229089871155615591072393119088199784072690326637691611916471230069272790885985316822105945433454945322089961055108780336378989912845028125824863896778441428272328820612918737503691917234768129689090523961272512835583874650037136792898556017478467117605290095591437284038636459833111978767220045461026954988805225357125095777991452682066310000895491962489654639564338643641762556394666770332104519024121105978994285911919999316261541796356465901356155995301484137689127508938375238756491610418542830315983613358142835637171884366577049495837262611789580853898478022629011649855457631506164934230378616732713213566593998478764094873425675210629641745792522830857609063658653320719479958297185109632641922662332157392793064192129021911739527880854961866673789733503415325159600493311245942002245159084081571340013956800629651103034856346438780201178942381180588906457151297786220928716807409800860076289457090680440495466440249203200588052050014865200881045207275684334097837608686072632381989690256585110949935325523558086667795831806421718795911607867641866026636922064962724740659932698953282961585567217670520119134053213926843567725948828661950900882690951578704268079644071922417637899778328374167619618317120342688857215310033363206336711612524621684751317689604075775217157815578059175668518991257078429383645205945133565721282524196302617999863843481714168352820983026160614926847573088121744752822646315388481618299820497857517278913473646587113729647821059645728488281972826851775319913023122922681291475215602421595499017461692231971340134482653247045482231629580931311788430722980517225990558739450209133119726770499804288327559353868861674736460456280394936695311220078517770425667088937844799026192843782685464467769935090067769076890448052144424790326032062324377255367546338664373179432558593584264080355685393603452003685086189558959578192368408786725513644619061261683202478636121800423789423033747901353796593676004971915192598069560105054028402421353064919268252178320090500430478297354224474523727737686367669890151767598807287741369889008535199440801207170579107584289397476276700924744218485446820158607064519234654955382216042679155686180128522721598034393462326577405409159712372922295000373600301283633791327367888746741112474588832740967391624731928420690330609716666425119383691875864253563541700020369266656599278387891400502284924315557904384527642446781812145289567747435120857811956331685596477780109254239101966519948626221399109134739897382790572693911214240795753540232811458794711965843895072767816304398716032172216561365528485821358449926569380409537115136881079612986840809923861095968109563480400102017212351647854835757158744404299978768174070557631848005140334315255700764856266987686816562326706706320909943513453874090724466088921445783284799463183941656645186712421818265409177633756175383823584792987898636718761103877347461957986875428675628817753813084880535780740339352781066998829364660008393206349126122484763133001742756759660824769702852970676032695696654047625459830517008704491517212022870382699793081563172054183707185200380642228058550068058802057590091131849521226641051493341623404363166444367207278618141569118566642067523873491350752913662486834618266623000292905892435375924127562620551399704775579714108120577619078024248633920927719130203292297927276899897708193433265791104034378869899336102783634397763902512716537194981732711103324777139052781774174846745198873044210524681464288487793864608102012682993698004338660393070541755444746229779465699614601795182907461902176700246514821705722193274712020789569199997892782460387420283819759701255660817718766382996153865180665694181739626011578090509102113593306087478227361465215317398483909453049216291607736260642564839425543970992718618343629210855219833125626196861874637471937786107165912404714526519539160772798126928049904832552267827074465153730577908467477955499466194233052523164668924991974474524651761140127548112667282760344872460595768660644547210026242148608271651780173662499762789547067663791159418717779049830510203593406439883323441059141297285162880066190899907933473941504646548291379215446025536177650235239165838707020157658460930328771111941561685614533620256959323652116294556121945469084812077520112379155808484192603849732915745485701597777008027505508956654268064322945606476891101223069066289558482897167930881136094071236164893018245585819871546077935483138709944269621205818889282157504871284778960481642846173372126439232643949067174451356527003521199045234535663096293123782184804278324286624857391815728623884983899445893864058093178627555720893604687539494763799712422563181413816173531660020052197033151629406997321538126603089607044705461878391765776655052367394347270223179088158787578753203229176682398119367706825053937625137052628712664741787676690606796978146028508082321856052645486069390547913685077253456418875965680177323919037068715497751882731994044543691146227038729553030698272390583518928340438686927947281688356026899024718700814905094073825242650141553672745564400394713098485108447124037211388419424495420175582498522394983550600368053473991624423723177561402975139263792449353179457975208685694595792239925827422219609938824834986276277422718220872452897809195898866197245947482765724171459838082811537546766137534183231803247645716775277256062582152120312269776668144951307358886048448332982670954383334517763223390403983801915585789102963910417698555312005575489108190271357788611835658328976835363410189622573594157658191055414488368080375154759457653837540782215563143649775403843174969712162973351637074372914887321983196205720134925700625986274865147381618501350061086098687882321164173281446078318221427727259917190702541208112413204572521781284908871090555537375023431706370230133213722227709326976568971961153946893643734775884201074740728445742439894126202731943697077905129903312724957860670274349234857914478379617682464780906135253966971160567821613067501245486590415729930981693624860887976908927299435021137220448725141832428611050290277585170859589569880310333793161458422564324930600395121358075533539073543199411978706664239127118988677421637847618982008270536231576071779213755587846904167516257968105161935850862693080091602876458520308755122284219302874754330588807360741025758127748008420191381444382744854408063315878063025436892740028827851619911405946382434749747721720718876421607665697998271983062518801249541455782155714991655141765192037149404713103608468903660243981990788358740748346573339616310272506317656796548055218449836869147874560106016895972115450139291370359551526595521184845243372332764098601224924986126541749346798030899914220097476852473565799681054088573626562792167282370392497296440549438789180512448770730007123617073192515398081840824574576778396700117762540993919933784173338208698951441306756416369013106892991415565953026397199692708720619791154943367576099777193312604865568391180624866394785001421495875875527544451057818225470157457554043440752632292451549436551568282928139125460401426820299844035244199963447885592148802801198471575396869249944563926024880840982898062853300542373968227048641093883234510498912063500549903489656468080174127884670996273366112734412586395856302945155658486013871925435730951060571979516899008189249127585536137838838437884968019899746556571003051131420291929794745717032434080128107464890326099899223104743605334558686457308437235410918662720368943620505951351031770810708192779294067773313957714277199847805678802515234405273499110880396868898485510765136845746353426597826395588751357599121627287318065989472692722367634406500683667377462430849710858824284787072295040953088748984121582264493821476697292984715416232563206815191958169027331514388195194103549030238429430745706856576311610153529044018040646599718983765702201048441506249003189011349244931912065676846713353213923611221109519791362496978602712987362118215409582422337545625623512201141481095746976734159493861151783945485169002144759754385951260107810262772777252536841057258938689709849613823249101851236044613668875282027412945115577683875501490700699247160811249676850245128910810131501233124401868683429696798139767712510573134445483179500722361880068424556180055740777408508225944453498211183884393044842615340467984698918102072421631402634580774188912355133964747116498682564034114610306744538195687129248434507693217430553234211944452148290653014887716737473185803391331493706219254033199924101317492953910031659229087938648475874410454529226526094241220423529106660167802797993786639405004940653983335144029951859153566483841992691779870215068265660876223207657362393232608294723351014965858298764738628324223871609518981619748991504849894192049252633326533616729949349167044031013955772635156018022256364774500901110477837473649816239933020505173508235865404293769756951493913561180928340468182631514202151007713560439049074340005130804604699270975645741151221937213632050855951897860362392660169912239239668997710713068414204333217408660667873921959224291965725397848494679845743491199232545473884436121655769392835023965024558212780489255095645300814148704904838605735240307593044215719396427389043119407243854525706539170447344260001979293166830621042055164314999796762466004688847937497122094012530394516734784419114568082928443239243585611535017504715710089029251551443606332488033376016017459081845127274521335705480063412562375695085750899818085099562382070025480746423600170191961157428313816476990284195626250082224354500835535319860830606635949390288958012753126512025239693916522727999839533154952916085014545419117844003802462744398214593629766013696946710502532811358989083361682551105468345340426090100130687574069025742460184610184716368690869302020057604678554977792264866076483862439238011890341512441876221004286135141558680498832215693066794704972192130058623920273420024025020273066275126161263609426482070752769968411906659026610814975496267831180430399152064187365401684312386047574098479216341044342849599562431001484160671986523854542677560127565249566826093758907228321639296307605594338554800496726022141693225026365776957370421397276607872262323722776659435201594402335604150667021938992666097478778612058564751906202288201736132288757755436769659637257795992724063406130476730563951175226867558254337543854388930112951757383635429620150584915008293923666725789221236690284890538416904621486496689947897137254815830622266032040628563412942935143904729538650380086817176496494994096771283293958052004617796739849070438934718240287137051557221109774588586216465143001815455019898116947903095456133570542352403277469664854079162880653472406822675953912061646086825588134593523226164392777115241840712636281442121097452480544913590952626165063519714265323120894880610397083392735399735447555579186012814243720882287494713847533411228474044296837301795006649208430783713438733897331189280840728691939658242183461178741130812064550213539169503344639352082190859902039522464939333417264716917907992448000116165484125240548182213783775080041306908287251019143646697157760763104972338401205726780797069101248075104100753260705195845524596377864428318355500503419802611130432131234911774963619871908962899235813430967120425392166427075184204677827301976044036879993847272870268069109722116475266979244913988503767088634200277769961468086298769707555585967199934581397525263545945829339925927988964835766107676638328844975240253349415323794423982712715729954128657353008088834504268807155022617222111897628312457063366961026190348803139209121023590461040307198698959087523264713128749436860398437314884802084706005663967195033247876569835647388023178541030768863951412845230683554163665189115760095824596224404039007201642784866770929470190757310808915182460720797064948943142916485742674090620749355744187593427370258739340674533913211983867419596773368181828473596666317096535306992546587543765255806580362664622860716664815116168268553696381176804609548002616267304602105321155694664476417617130212621906638946188712556424452686215113318269472374057561241435222138091502955719853944426217310083134583873123960814386262272340994699755020071162698389327934369498344840818668914658945474013330267399836174735095231419132843437311648856719725489872802481492854379974883845520544388238460386671951172151146902727804296214333408931743579622527146585655024845976828416653400948219825334618256292175164382289627309811904252920373349029349047846245478345619643418033199082470960145706967652963699823617358953833692694604594403758872035379180384864416041884382268076586313760673794522930732360701965073836828564201579858743299038299285117791799178721848345912432472355295064376503043745672965659833581302876829169729362680878334588033330321988478319071207908235279825436920161069533290349223893099175472767788192983369452279381625468193652115082042770354357998312713374292384565256296984076476418748132560584687330702922041310123046659254223177559263236271737318346220294246527486355373861286665423040471873054329170096077805389527005296113613231546213472525481391870771560504569915973419743786155404047907375730514482119570999363128260284605570188920924690602895581444124810392730124447143241677461821400425476574536675462525336794257015996666895201130664797599711894932279319299607055839163327333633760637536637473002772657802989577310637693651474555094963293548057571405798149529516047425989479004159627874903786069887658581151832875984584391616929089450365302857505723855170107871781607255537887100673449145369024583877981667864631019928869663107975241012310634929089931957345546941292234800134886332138312107390522415803073534282546118916201844130237073548106651320862214968356159295887859024889073865319740607510444171410373298832882897831974500724041433622598785977344109015109867072416934511108447987816844798376085970063395525497084625003267500230867798085192021353870594504984140389527275600848615831939536318902472018466824726410431498629394290002902615644788318528195268252707701185527476383561581194014182057552919136281157369462401761414022176673303007004912512875863421365443226257507553219574561126546106589882135894308627053855559796288697357948631419749803126996295671006229768864656246573836169043833003356753547960990037262842140614610657976270225850155540135308845391241477231484097002661492721710557163412151348063525617256571751846863102056899799772434014180923920024509778763411057548282700243768961162348581798977010602154940990898900119435241101720814726184147555934082797467574985530116363970010214245738653584379446357073426777688759591505525037290125671935101491525415136029331392955253739407694237926939370126817312389585124105558874976851785593620484744601122368687376483846247295168796714548449554518688659694884140202415040161759305145913198656857215164087865674595774843834443850090917970093938420395699278273638113028000629509413275415148148469323840328938013922881286334487394785950413096473766312697734078573951697933819891096232903358342917663778398929850527033725771239806046691836467086173828160738783929075354985220945039316872592334436363075857781956284923696304191026080590421540640013362551515870271582592698818675768392632471039029912187206104335612921159894448144454973531021005776329935260909599186762356809546029412817941494980841987738360002854289622501658121334177784077636844511652114009332720808784480439727693980617404909245847339500192694518877267419496016757408248895308065566009300504223703395721291973492569172938444143557751501615047829287585032773526247499130594704785935127217122057071786138238778019875387694472914305878514681627375920632535932688332508325961859563395130521883167543825148137815188551158699647829490942999468394415674155066252115111506885953902509681317527322009860958121579418511643871052929890665701261618556276794276450788253928664472014912353440165480842059589792569646437761937196498404330619742620371241441006219413047430713165544906330138729364916846791378282940803500142640462690778580382685015805685429613430308266305035703024392572634235292711542939607900229052426554937390582597972052527330402620579208137771663380442070678549326930540694763425503444311456528598395600325964589300665888003038113319800900989269376550219144036577812352320390559890306046129359341650750169561753566962065519669777852113742536708862346633966880479778639148199484499848509207412518214756386467490873881823958005765650955555173040931825516136599939441281026424879407510501818038427739388683575876689472854962206398682918901506631975851122708386041306709990760122221153854405418697740730807129199102714951631189864184927966523975792673531370260580866338598567863716697926621474357798292821374106117417778045843471854102032931668226362169591565556219341173685957763668365995033235181151077852640466736778660751315841094370095080645179744507768301659540798203016952105927039937543735382896701378608333048228523875303480764139312721731457444286211768764704472956669735559976906994418049806569944380932348803737659574571264121153820639562396161926496560492758082718619349699618442097126425015260920856718258191319988031188704613715715511187541278913475713622719982502643313691524781685159031893374234286848107530926098842325967221763892170946662138391739666375490666614275753985765302860028381074345183197920548151850366502727048656221155375131333008844610950171716228963163587287353633277097967872953780833575608519624050709377726042813721920594215387703875864378762322341263408162644301392109470625933589299865863001796232592968202846091521261038558769871543650260575141793622443753246890739367120121427649332777944654605648567066900563469995985314220758141897106117239564604159897656339880702223645021469022715554488406044113470643399084608271605143039882639442767903853374998854712601961128303114944625769369967277549511559883129868082315572699702186080248551134827833817251522515709982871906475918487747519678758902463869010377825666467976769450206343904578721420273253744641925936388624361350424020906218228304205369707325105784957300422736623941482775207347965777346433217694842052418978864679144636533476048679926715513308344852040840246085796514829244974691887288386975874537741535858588215026834065469311587556375868303089125275691519708199688421425522552680662204960479077757263545734981859804196784948971579078194460990605360428533810465520179312250842228353749751235747997781098322863000168380604274905754125873159912559729597154612334451370595793877616974148726199258954269999213500510666988800677875934957049757670757342440597610406910376649381992910557149400657628734355822831221740224153855616213983714347265042686369547522400052397944691009307716358582934475331477963481914153485873054535459473210725155485429913690530753389839928448976540401752762154927457572338776162651105362796066699104294367793125148928692517023553768180538663743493172791389169452703667651763512953682770373816797112792923613437119131665711792269500529011088580695096379443447829144862766354822532177472033873986018747467651155593110125741606056872870726652338509603094046428435603687511873562015572216766276330959811803197034569629171771215558602142761528794567941675828404849934916473459470200856278142249350945874787240668083044914719557884629554785416738405037902171110940680923082032037654315126124639806847537647623853145625476357043387146232754275548053817123688391259457484837727036156413338155597672446733070066456277620832751632742324302041349717824065557058577685040838461966727406873344230927476134264358243989369866888055243287804141006759570187953218003088419925177137656085811722049901915003850990744597897766126734445977141276601872478998818826120627273163700622517458783765285927647065450399778115745123741270185160329918676045361195313049187865589101221733670113455010914100725327285149590449602197600076174612358154754519440808835089933726463415537870348363645590444565744619225942570213919574963218342721598561035725094123257394262406840923822070960614760455918196489281889104773513842535158959074633597882701377221553953823105604827722570368244928874189879923341109038771848667649961452857107427892754892818094092025155346739048209607907087394415881887645159576599786212341713749020270911846452503105490787441089935945435491159267103107772599768918850373360685499165288222501287558078163322233450231578315980395357243028710918513125193792264364118417593636732679691432007506396193134476885900236277064935991037416506100418785862148457522135059704756804451960581709255454607043513876671579288945167494151625294420753607216631926263358551958989246380236990741693164648903236603680547140518446562151068956104252970751306443644882421729808554068010019846468597763059484843147653545021716952510238061476413129065808888852874062336266622147679928052682968094702478853875647729201373650861221323039725486268884335209555202998819754336968499710732331732795060125065044521167418530764827562416517866555784676119293473594654874000940395789316175400328312188611952031396239646678158984740490823475943337678071478261737885753983758437801270628462439945823626826281820927628486781970711697722114798474959613526894159355795333443718772061072021144818788221725391639321247292225829306025147570152654014365591307108811826028121340509346371438181499901802258444741509196133179933127371891474398314417652226279220469013811010407257830660979264285240094895530402072295519341091284222403498692513322317383438005024043298687083654644518426621570914067030400957919855365401243936708426954714628304111779962755636021221454801075169965436979622582969505214625907382148347063403117568149575854163271447653265873590268448871207592822024943669562578861507380888493636848746298669622569820660000648176350859877763072314283610856151461945264074073288281474963340451248753904281587235315528645490444962905407086443839488512478564188541375439222969679076481702786071672693502075942673506510616456792492338440308495777392941608936371021919944574827269126742216278014321042067614428114818498571234382884884358195564290105255348123677477698834659005631022842667762551507810289587865187697693428518840922801322677213201383118011189023034280314290299252962698820304921114943247808752052447478421138638888371717447142093308762245067648087825102762047790456587350548422760364454548665422623389544651945142889332929704772787300387875270292071739575410688482488184811372678912033788977735043438538212963246685834031884607210972891870688492396261021916153367346473114221205147641871976063404544403097166494553455057517092997778210261110108798890013907800357783377580293148345705435845641514060247911262646153270093209561747796845688890123932611808859258131901917415255775880350798352626947737824353608551166415961603535903324572061335836658097657619792781742070932438452519877148322803020016073561396911344362926406712706889688654162284824353352346916423519656405812440183498052213602697303526528576902750009444756096801642867505504203102243434561254455566895510011105869995951648921523700061270860237007193547244138187518390032039244723185728076350761139679738906382463189192448953763493871118502335816820470222687966903815272335541671740877410325619939905805411779062823961478408052493006682288054924798125064450655513945438182827143259804506922317203337079782276705793015452387156351513056015087924965926798562608316643435254208901369717606136019475522569402589062577663781565514812603569690413975482397114494268758891954367357636633688321082220587640431957381880371504387205894829570784257799493035791296827097615748520096271541808949397598393618984048737372027282877431037813517008158808074833677681432537111516114101163187199972210274599850601428398347104903102801425854301548381532531470766264014684645959484958783464367375771854754522047156142153196068389381143618684938731883334397000868898710705273932776209113062974201920581086713134645231902630578872705640529447486296703345985288613833061823583564966682474509011355475641479911576002048503618794437111959735237877114207349958865498306486030401353046772432188460142113544248058585265204063153089844812248320650170029941693366659226355118034236273097361140014884619445090507767707653716763876037320344664495411182805367457891016916127383858421086184823990766870124015584229427233899414606692656034304505248860679735064539059111583619156185792863544945947363531330762444959497911854528044173704517939955447092851433824002473810854235995331261149285803569697399058773511161526146063444263231505960623305927124949070077736749039311216558554638627576154364901741776652105212434936894377649737659930187858929474233438529322857932289553596120822703607384470947296790628069297821588745831343541343933835892110908107179342129002474352150697993713913873725630327124219910385584601594695037899744682050583070334576749726394509692769230083412965670587125507412987205570009271463124870232626225046107023591718295525665050049603153949763429272986037452735424982546828870175879734861738363715133368587455815420160319342568493528143817410628365412506536779199538510036604184600347317600490395201721258114981904951744125680782473788750832810202995543279115821992172540913889023405242912036669541696830587936925478628034324467470932654625896715030619295125153629856967233632835841332089078004922180542176063186068018102629827701955288028105483574974435244925065129458342611700893231833124192846430150606979660104584442296276613471528360520877247830680904909818731322871006070615546898500381039619172023889394320911713680476216420377659178331126014414946246014401895776923088353291041200779805057957753346306490042497802304983816231086791667073647227143096606986340166049746101548097749824581144784415750665503155110177624273416719519436488515716892652552419038799704654962530707357599995663014087138183169597486456633998053328916901373233884676570288140757091718768434537382373560054011266900910922929569008920098541579043944417909809124298770679421109124321722583480690566481269001199831982342970494363682580238659043625689011671323072340116283503181233976589416859931394553377200081543258013648048885884743577878654406570288521247189469871829973748536436271930166357640800152773611471956316311677061456536443318704652081609780740170184729294153696609525986929285528630545905181834834726773873403458434308586192757034635030729556193097383082681598442300327494411108168942216323392875409766343703024357265088379028079034532301389961080321241495311048656963181225728776138191905375724673771420144996439436127615352726204254770949270092961048779698885804082202419659174951712879711468094462586222272877637506775090518706410900003493455891942838606003380256839733113317455820050561553702168129619451066411099591327565950326890342347906755408066653239110106442660078561598095326816513261251386429350799695987686900786600260485626191463754435355412920624233395750715593788134281326706711383794279726269371621946317878323170168740008000222798569835263438979343249962038427013556748784084433677423219522693029841061318769915149776208168746586541205695284543797210918159581429020171583261025522383127351201718973952533515866783194196659479064595996208793631121774511723909010822604789247995083691976083731978954033837569498613779704126922461919120048786716248482709717748040899803085470175776972921449599447914595360668940072509819070718577149755726737248218370740249815744588187690929591828635872157579236468301259758960894096695141853683001314189598798151511216993765573697953830825668866615738739417099125737891576267804663353122522697598592026594837943067283886940762943659628505285504663135600779362125561658842160886671019076560032623806187756689925218772815131608054851618668664536556813915540601489572015856841361794944617847998417978154547102159452126226968959877450314837589502285574162045944044649070127004594880355499305367179319346182722504122760038293790238532653035725983274676780168030085132794270515448237133495965321659843331896317050559381600512379110988277704915118152321285801575453236066880443760864632080323848365162224316687569016347644279130648141080982074309330723390957570568963795012468888682458842931229936626661575719888367925241204451011075511168526842757582444132287706306801472387003971748150408475144414869445558900536078237599838771640213452409032762822476509174634555118868481251954317670559109600393161278306796020110649956845686001709197782382002451215235165959941567463492348744017346473639707420438585623657542134639286893642320320471174714786947156814473198069505663635493829397658964374494514037821568407453485153632205318563345639906410591761327867331646623522610813434357038129026392799079359020858405755446283329910597683467609566113712115114992213756349403910151089501622265428006875632598717340651576193500943739427550858042702029248206959487738086348747906349532163926240238660355179985615757589579609707390060788046407345599854975826119490477616083438613415830204586586920493989734685528152286814741998990294843498006692386347456212528766870413344318093604566350400760494547685910688207610129495532285052916592878499548773814454576370527829708529885773205299220733790706759290798568105767574560087819251719697584486243477006910001664867837394755738474874114204452589931587509925235932466509324702954540013749045934721952770627761680332813364593945377786834115650838098515905643965162044427972502712936389847920973009179048619954099533335582178073391712929523491463578408619911257127902631924858917335144094866973672133406888636299441430849273701601963487354801446993380451748405162158908067674583176761421293978513695612553996903918815804323781428700144425707011791580357726852492017925482385185576182652703749812011481275633548634142197020690977638646297780628461278259540153957928376741598130980720338047507477623084436073097234853162149694157409985999019165931778831832485037922531180752965409595275663994952467880867128388614711707455865387369651902785063791591475185758029288296992468326450999634291096317072006665248720682142432635746603794985034487702673671155569975067701478674182507542480410689939855681270952793289362123208272478623165351382986264680516536317462357124295711050444604024317781464444738123125802226358801185375419479182358271752151552982605073713240300637004770410511450585216483527515274342608875845593947617271403158650081885792463217847082754791822427051319600686643293168481447431248428641765127859339502365474018274810937298015071958467199549787812494266210619417134879310673301956289110592221710807916953542955280393286018986332814501957765748564915689515140174982431449930905048553103943629216368567947688896692241691208831580826245091506190657210390024406414760518008319278809984061897346146591003213544529012665977631932085357014884600868951679917538207408371379201564916142352147576675002591743664128703493172407579779668561402376492872375345729641342731782190878184419515758989372086418514008979850931669598663318272564176748597486656127965013368881358263801006446016809455168053232859132801784064997083923033497806664113176363976514229819265314762551238781652334532994812897660717224524370362809900167974945551111968237039928665247630804051280535351242118322837070446050784905589652476253834586119780119484267655505735044265079417662069537114244899814473117182106750598225634691343737468945438754146291333842358380961411514476927236966802644189111087421144582705673401897276590415026405391392209179601942504756160860430153108005966444941283869358368251868762105036906307102775914040840010195257856262806774417890349047979052959488514285443271892226689383146764848235329457369565903346211324736625605789643507834810509372766611581816410682519255839661610990971416577390455374230609400496089784349895065760591077141163274670671083121752803101161475869208502096883896837943982511568624448598467378312248851253647048741548025484850729969189588867689686795556115905738610390446121401426303898285631860357471492517405416688688449646453674145157954504450593023203237784719645296069201922914289953789573790736803126570242156568709389714770538479920738889859829672543764589040521469697780930364828586535950310106918016962275666947280427148993316694219626988911481167658501892717947636680132357171355245185887332350088523196780932578320446288970949573935391064002928873361940826314471843656236719709785457640419355781822597464450180411498052045007781934504116949918589064269584226971833309667610240967988741403868983352072853105059478492953603687535547831980121653966120577418690327036568811121435702732376893293998791508737074010512376672328593287477176845822482734422252492364716303539696397274226170266448845556989593365198441538698555504476838557958300899093535363022169397518363352070637265509667497399275921501646823278356249746956517983059586768342098138585703861086159567505179492973732567848863779662673760228436298731462325861957752356911153562473362212694522188138401675273310662761969704394417511445199767901994288056045865859165167793920649622286004327486149551317399398988365464995053414861200556767495101023042942521535499345846536893895840491802266240417523725618673934234180968297559252386935659398465193101139051848293036640744216617277773660810107293461199457226760134917777527170528885859231037218178023885201676642755297112382857381168768848588781081969549067152604457796809954583501790494920398543336226136949052675919671625164310274748742332835817186943609135489024745929092397657846030126921521584547573314094414256835121311584513053776169318816225159203020826719173416518944716382997301960633203796035430502095431900642330300939522801265563154693562424128520654141669718214812570824200914355735111746982779056631214025371549909070977235685641424534719395305445999941909817381665856829099166175792467187390539211592997587493348777552273182713219572924796456353474671366651000078527302782243922833701665973205000602862285001056214025812968411144182125962351968755064383053983910289065477383659537988132587503718138507596015969820887135936277130795412007633228778590451179849230722902073148357553300419244950682409347164233798506171241175677232406455863894952759244357410179526524871781161513853432247078097082676852379025870206120290846581797927782397364663858015667528939232956820267613728408458785445328200236394478738852763026597794106410520696665318650988825560747205359041748833829126035261268187236091845975765914495955697495878598773897481102149738453843858005312568501721086224263316171163105302366407934352367715361225994824314267305765841373492084916239192726521391085113153483342266295345801424785031411436869565801865058330035181270287055072968597557957781306847599751041448186293679571040007792741360271875183471084909870218869415735154107009253005301655090765241947935655870022452372372247626238020507938462655158065296615761667068257396552652848722836075537147620212522538029071060120638427182228918434319303639391313733391054876703687598326744244144432353413589286617450455512503788544279080272058074952729375918503801216037940396524132474250699805522430276793147740675969800357059117349973868526411818492319587231376831235679327272529154408259610514300888688125630508122336647376970112072943716830009062225501280044528615152132573811094325741470370547144161365344853705787683253599048923150193049060564271879523733917835133395184633761201940950406073388134680629147413034314830794062092056793413249683555198121353231621373467579603508682048338961537215267877965724752434414405573061058442871773259229361112131206024695124956255969918477406574316563608990174880309514397789744291519858570964155686700390308555026882345617477111176464915639270869157203026265225368093830881453039045948053953904378891983182572421498453210127557576582785617240170857777583557406119450425957814757317389820522345007403894664821861626090414037248467724485070784244014317134980047358927526675945249727878078975120821887391780372017655173336463595033092167771827616905060492760795657377905233233853518065706599299731594756912404345417525597374904771920170568084803448682853104359633986463302904005590740585387598274331362189118244620103925406133364461869449286304611620048539549414564980310131263354961939106423641575028491103076399110492454983477876618398753013701350274395605454751413554531287157824439250597412841388389548022007815228478822801760720171157158358510083636758309576096266056559368989906077809052197416417043289754986293355610919285529499394394265280475246527693870290773982775293134347001389489496828840450956126112207986214835991924023251666964848922214370584609152382512460890400903474933625872141737255408629452450602207034088468922180128688414497963917250740351002657108258013218675934863767866347040833706793428148916873612601414669283210386102531414528541450326855706497769265462289336267544025495935619665464550353990262794912590583246879745079256972238038067836671994673749772549315453530877731468374722357346752328026105448262986247535664227012523628318511617541703105401150813500044195649614433189742480491233365324677876928966967194308265827460461112684029912335885120138091353797784363610985015035827211399243108016090858537865240241293031817646826575453675687888570220492335382976564755645394481856829044619345060066102373925117731421802077711499582051680543731414312996972168329502562972417113370412971030509393609627498046790469219166329963669658702162293137034785883259970148690951197452183910638858943781779908889299943866844747451727476920206782616649475569358049317658626380261506363130341899870207846425607965391120325815944687013830216546319400568283305549584448434227192460767035375357767654382509580086510881208973924516350862709764290955214653548412697257971762645871679424994465280199361322067036379044199729194015167903576907652670879631709699265889342958773844518795598457035107984190117671110499143795776654600448893886912298322875405634662637999450558752737311538148798104257529069373579782969651878203492195611993685250795134355518294538035557788399405596257549449551651694855539867292559194618161141742247465811606654662928521326452134939223550403841379706382096865391384310007904467518372190517141490467244273069692330285112183190109591618722056554164236970091688952667513427975591023638923684565338888039219233737340353368962293293482706724627297378010068950351928838380537726325550363192087422171664121508064926649798111985067824537653086184620865348674519654986371404990921006673829191858798031288371721209877921987151941727915201204659179280843274229712679912967194627998589592686913519147932514818488206155462599405353739300318193846920373970054472943665527506398487241657686918735902232762495411836900184315684781804900694662634437213186648474098627220112384201869250003115160489825480436415132430728094513740234369630060592392874650893528825578931051614690600715219353472183694017938805339923138004107242720876990408282102476877291503774037731435435619828068555867298349905931401014454700742906137729554640917576081878880941464351784747406453148206273681345454896292426685280486199363526481042830134137522109329394065605866880007068265962512678832113998972073636821776463612228483903459544200400645036501232815133869344106150881499591863077040233099634211564944546807350924459992325287030433893311200757063046714628521484313526417315319380759033994333953332702713542691559013925143621307428510538906658637364979040876604763356261099594469868766806508226784659029909999753264952368709759139575615130554672413033797827115687137471795363415552825341836134695075851664236891294191483340388705113303765532453656363430004678354692004221546502671836604190326283827405411610847424532007040020670720677143686754547666050935105317873033128733742303068910554408018936072718228353030865272783768358609453511206926534471585845832745349560170727276916910095192756993558914289848108713722629180534055836513688061457911777492242686162251105460592800827992421910358445981866071254848179897615687113136395025234389679376802802201061442477209351942234655517439778635381665187746971221092728011263561526894565636831074227993689916539553252743453278471979296756642706183126073058035893872196965118617405314512171531633238284801880831986260868518316583065052360801171964326387872750965071280406341602298107415926339424395973186830540542687148891384037287502262332267312816077351112615363043957185442030572357753583232324465371302328412489953336841892509408239196142562474085887392696092020139734415665671601564544427739998491306067359571742284478059768188602839864509688801317434250945323874255665694560434299725143813395559509267248951914310667118952398723525712176472488241176978804380277018030605165715311244587264020510491038470230664034117740272562136811020955125877909736388513275919486873443296762956995767370103538920006927882221098815149066689012393468096666826006262026943199820778775376820450131340443519142546298417400073337200978094677797499193706360784858854482381831852850344173729652416581024468914651764051944931878116623663348353879821565785651157344298808773802328777363205780345748684136940983997207588142841583477756045836371900246628792807568336755925513074491497693163300824093040984940298556939535735749816714018956778484885001122287198940588836962490262919045171314866466452285097167432649169456560389019829720284293170209334388296584885856664619637585192715456505888216276199292687671705291466944326371400631254623163582444163942508928386195759186072588019020325653927942898733614317312455279875189761179741457654333366866658451097024645959904190447213944009257960164588524213696114573501551314882567946987677957431458673303575042181186762735253326650147778239580598421505657054627793926192255043561715053454922550896769041706388488803609382365610328474566540012554240907962250005432373974254714454415146143299873585262035648600782739130905751632953102825646219704054681779173453872231375364628646464427532822599737854450750306261486427713824981074651402540913994783362685750252439074907434347062650983196757635522449808682469013051655522556940515605325452847646952710780938273473483903929091949153167186131532239864835505250076843295474389937909482972166544244513437124897677769391647738128634045432893405312882598351248687120184653263610772793531092971743716876297589808797461007723356540983491545411887856966120227300244479609014960749397241133364497976625878147030807909558376471167358041466188664298935735815068344532903072344595771064221917889616304837234271162815981888012156763677015504201114345069788812574606563518635373889938798348639522950639918309451609924887032801518950754742271477454282587970300036206625675739591857226741595381222547128214505503781362437614416734213186902091415898857921333854372396452467310790564724099615573167301212865746199649986965581597309479964962961773246891177488589548067840699320923127366869174521751351390229351018601466256274526841897429790168201256246633708721447633193860866436193958069221018734669104764747521721525617665567597947739221022759800182228682269733443348445783957790985539235972668929641409791045869295050192368370351786246797622429193219840995106334861925401386089628687874830887102858203014438315862870169148479666746832283008619470536084923045056603305599986325444796215367449092028987020123964995182452826249837366524154510662077173702783136074750839642503219223683949492935923582570099218891319366902860526700842229497790272903770733151172411070028207089602382804476195540030275780989258042897314065833366551675472776621648606890879559099257048925114247016881323140003884922366604809580402308843968516883466829795040260327028393487552612584829103306400604514710739921691701335248071476189813868560505663815713714906060892023938190029593717648467933630829661750809716491548096986868715247248283593441578895562625107117901685462021277814262260328590738221128207087709170478812784829156814962709843318491804574632286992392418755150551765709359784405221112894611240673507461241499123213123572670549782743278381800848211768873915329272771445859149357902735996194688916588525101931556717286274738802792495692019791954894822870514975040345357699340768008173965150452230981029097110866600128851351117104699598166323514578617674436036158673771648885939343024726115719943644170912318788402977208916721796847849156868419919761271926383813975582351184833951100330983051152478963121180305601769024430219507825127466228795433170064108626197701407539364270066190543810835923707660719937518981360878109904213353037971852916870265182690486356692819678280860640157670925735693231354063245384974570355616980309183662353953299244942889363816444767188902290649396393354716108240938004797700943134047613774126782222535682716834569910037344475946145335599994708402965028634295203554212178504795119586912442645507122626560905606208810011186621387572548898595958777318381264186739212736776818221400515901026560953384930992718452059923415665290858200591980208990233379267272423709715525921040902517292390857038248328181742413596751646054078445504988358268260007850282951375603538190647990895301828793927909834493627670441944570143971250100517827320012371083825333544215780497789218765222415230028369460420583765672242021085362687113231355786280482771702241275374832562849038690251446651783997672723820719083444967495699661292286008514057726063569199211504851692776373015142308474942944141146778570102391150811239534653963350002893691135998983050805323525466631871830940334604215679885991294091728879870525475281162890201148194763866053111532442321089848151114430606478998598544875039806737842291771622237095536851997637010415494596012805134538615338825731031356350842184851652609528772818157194163142857985988150443171814742054756122985198473823070941630308870580313541480749187777941378032653678425125376424889868749828669541825358769770912871092723129829776777735799065756683484582097819728259023530643223165350580538528786680214283919044892086125263491563226156039424840026124318634941798957871092190542276626523612657589073426832069063676007150647012548335450823181847633499299947486084808636860847622560817094312508615287734615029626291588551912063335494593462131816115239994424496166598885548783520744112765008889876510935699023874297664789475933053362270878893322800963902294036697177639362758119963481698475495034206954118702517956349689214619330698150725968923214488412826357065868932856608474057879501952365438744996727123608236664492289632209333008757024721582719057691530839826861542309057412165605443428239305916917364154685152301078097189283654365036327875677830276843430965753361204769709471678103167208813046106985967010181908474082803889965994981073161774745938175724546609861995463197125558774156103819677983407065790465740015699243741590144973709933343146082412070172921645870451687224840364966890218573575740455407144945259882153368390834085391381592899118189517400325278664880798049571122275564553918848746900760080111463084152782015922660000928732331486951578116594699996662670905005756520035016496277762525587654885783315554124013840184744660593067361454661933223926375881557233321000512507499756657467624068160403890880284755884865573821353086429012171764083095029224173633038847981508405794349016581066529097274252233452513627810992773212724052175363021726237379088550724264443589613079027889196136874515177322714444181124573622995404531579908684639154258055088267383772615642635942503405945123893951064174539353438321130038402973253107303208836708965615820407484683827223118791710605816277537706373750887565714043010837160762552615809798148283430167162257566981475038173144529078746066837910714734301155745616430611384005826797783907134521853014347933097985614838582245157831182973029679410852592594775771022507626582314156274280720796281101657333495398718662336943665703514823661914689475692456480198277093405094481271173163076792783046918157152432746894713216454254382839818222607902964344960288488709763602909834956597346068452390341386829430391093011905276087909183000645918529085095032500318493967899313663951361428529613351302829980326822316077220332185494134839608252441365391370923515853451970485828948052582354314363421720188145115276719658140058632751097228414860344110621247913261285376436836473881176433845719408395632608486278574378225291030012715307280998358542591873004570243817665090299424532259300174243882347452435773574435306797972123190892648464894264348452640003056934823566350484432452196608206642054689988539682647994645782230447108811390502629514969939200046284382214356139048065119166324752255197974891540410076547313227072408050985622647234116315861436230952774905371853116883614746770065176218496606284436595613699765413814957342035332349793989954493032653128713886332404876050782339792042994622856905915423116428762187736572669411715171592231221619272736241109168654521056511846554535276415085578123341130271174043057816989331062130842696660652952271625362531301838022132825751598941881510287679054349995757998421589226839381116600516732135960835684897382932479496968813379450485899479587238359831552407491715595923759684994453674632980473678947216291412453924467744177499965105571150039652892444178060557746941695670423208419234583097564704451758112123445648647591028065570600844963568203049549914784191106574638824795912604508008841696756142831186395443074366363834171666509375467391196239442036867904460642466897724622099626671004972488369558876117878528442844855883712537688397937109572988624227475931298161251325064410889945618683669733075131506909594457188853955456794157753359926247223205140268765497532587555948836704799081709011795681297865306019638947549218970721284246657818229214102834714498871870597493260199190730407238120330239956111583021493618317124649326452294950054013315055308568168085090948415768965595648174770348975964236786720914324176673806215946872239046635742962378214384611317000691020033120058592219632797204262504597536922208912998478274891612032923094354565058820751689058061950562134651761180894857877098032331199381074221042369358887627990490867391283821893306201286866104765413691248893630884022244175625663703322091488682466898743560108861027151388787636779305327908427014346531521100361969457266584028773559630592392013248162305019150104250313078141733808158277098180500506707147676884118144335702398946649147309175216377289454364197454514434512958067620557345058412242595247610296561262645800594131216052089639712905108458273371949067039557031294210836064740190485110166607613274705675028785297908078416886582917236004098209685890267383933666225050288508502120603073991324021391036600395671411568893137391355865838066356498199477115709525784170029027881726292161091091772567912234418627739431853394951602860575183575066289951026964406740450461049096025386103333176425297580588896324247761685762810002603997026846836509691253882200873737963552131369798317915949927504992885039378327364461521672813483366527834385107990540449330234697778189249316424922482965761353739390457947482744895114964674028704021000874887523571826529840868903727373245994074259136481303425126553755466408517082886962597685104185611503641186880757302341782903294780671296678816160319109175069998686486275373134329154604831137522762947575498352801143250590026866227733410541931252849484211764447309532764071852950178871235228279105086181782785189982953787538189300984841537282961691500987123486558980287268943691260686277126675768543003985492134619829084997670357379018714233883175678332615993027438879163029501851739250228455734287228040205545655616291854123790593200713195438022347412335181809236447449900682703208810756368817986047987777490347084499106443447673233099430529108487994843244442064368051375107730743378720054515229233133104135773431022612423787702615340798505309050097727408802584349654084765136011101051789678054588255018008853611584206604923839143949899769923261920070201406717265579766260683418221944603583465628261655425395331703428297218591241997203274325503257601225931847526864834183197316688540028135760443565935540005018862868323475618898906213952968871595064365378237383581259772448070022807052029668287114990564872370162038768511433663913822032906140859068180779877347268396461224092532671765099479188895685570760730446796467008137218877795669933724627401037737172748249847371905588596846927189945444847514180905679959546463788267531765603820321572208010688980176809833737190252647768678726101406079710098967869690068748670031919064326301780770447527157760260614613925448042580921160926242357047773770802064857721585689260133525519911937309238860368063286267534853165703286525791840290947446114620045142454700952313205991559083136515672277293203011800660929070429367286478642184081257995007060256841354094774596520810381538349844326955908554255844991733379852716760687818087321653595305079664539857412808202293071530842440899394885645224410148155852981618760515854718123262948597191650649478958872087296580266569529169794976565010463573315596787414019714499544738674885853430332602207434318795602728572550029322389431185449251279016451723702766817007952231946244942777487946503868596237106958324781244548875799236800491006121628749706487634533692305228198361641374039254938982327761847973200909802863123922370124625944341145476473040279322947318779204542256623832003988169904877243873093108851646814222080555928550171863225079811096071011437107939147461798699991742716952751607252719404747853158747635377964206440300846766794364100583748979897070091759297857317390502637552397563216539684114488084458137699798227598058026078712184595471378663464022446267341553239207279113631427810112997399436330770193057339743004267811609639150258380211720584876068489642292903450881014453789749517922483621688929195373539948725343636583810987359941846092472492241453324635029863996114493249329347257531222944068637000371632861010410711600728494174774063866390277207548345438599475001963013123566618650090854402687431185147239288928777038492134690256037645777491873488862819887018711533242360980527806917684515541829861793405322763102577973770601657065730089499499155559734126698494320369867525592803759829199217607902919786801078640023267208509815521247489772280983011644785165539502583468874300088489543472479807116048663845705348807715023823130121798915923937556708791737505042062040892861303654214363016691182354486518792113254916470556697911305340974628639062160668493237683283487428088925417908747166410970132881171441827579155655834102178473311056597187954984771360956672068335793202078629567505092064245550888126658074230123779884344363640961647212363210662851010063326173914652330348331940173527650498075540454932839832646654378531067354229188674746664235440195140650228535711591602993777366860895727534083078234260425955977824848465412998032703254089155865067871635319390249162472308148249657279421217516581223609904998245839369769307241375078986671282230008790704106330308062848347565399370138244271789545069400740337904638215240859425266148730269034903162883750127411114652128371881296601497643737960831970792657131349943148282519828704556084183884749640944995758660769444265115709426068774225228971133431641248939888383662267459262594923223734987529668410598592938802368545826718782380722936189659724917542006101043790295272028437134294720856446279258146135214241657753248286828161788167828529083210116135591529750944655645105566398379263804748757693444440797561706938450747868993156762172394907775181416485666007661225596367226344501670327468232034929279005051825044361323434736775411871655519660503451384760259318767640706223140741723785193035670497589545761329190491071806188785491150653935769556325746951658071472633031151134782547848785011735639676927934425765660576666971226780757755447125218197939612776307268062504543209993818517173107931409374961981256534412346658070021673220843565276409865435057596400370319480651190910115627177114330296750250327618384305231285909248223746074313361554038252696905297472446747944661691765580843848168657221014835668596752239838699595541393600738718002540583553293396089599491139518714099306249756187994578900115471896131743170967375122767747182747195794480879112171506072777120579830018251306679097470887475106889213039502175538571521704656701394875423493693502849467536645882031597254278477320510445121581821097023624032450491516794202292821215679289465100228465381399236149371344757118608840549778504374232814743611390658484693396985018814133324656933091982491260830660866030948205374328568328269126250029931102268679459108206627308215484677730064226525938963066888526482260746083584545027412381568246242169400436407886614561825894331507638740371403338987416335155447811276267692977990097687779074377526520007414255337715714421995262207256996372951285428109364542497114259291015864532961234581436579280849324019338962472191591182442273506444078529953151806307285807579150125085023258269380053422342323489414919258151199398523942952920807746053543666718290511613883137337537158235479659748743987637025378121111439760302584053441464687751995655464192920984816133257329521219313484595255900909185070479236625226219842406011070546264426339550270569479817870765246385704635826150757899770175575720616323436178243608604744373610790874967692878174340940399804489151146223737861069612120550180895029794146515531612440364632974402659391592944770457004942283711769268293100997286494147951009828762679536544586683354063925771552658906163179713723767971118198274398789831426507107534606294954613597200264624707847640289246744437238293329793388071500749933728694864610838120401259660430433882165544440253911146115137865946476402138335068333312318338273332299967545806713582572932898409640462605079287581000641248975575457171667630773107269219833948784334062665387895158456025525991932159975009215848139303182517587152546583060538735725970490304139109337862085380513762887057440949359104339861675290159752939942629880196775930650858550595987205943153090221561769613313264025995268870139459824619894477280163514176063497288964781688960922188544870942825513161201633463443955683508287174210641846921418482213198405953913885023996250710521012844220193445041019178160841106816287078961974140724833818645419179020853989300198365126964713670985488993054977619193386105081884406321926710270229634627550155703617800985840223808801971460558378849087791428716990640856543893577140907551802467575690582425724382017410904958497079545627311600123304255375225291417951734019673920434980428819466199049080603485000851573566129676777702060001732909873453820989349330073229341401406973198776189307691735130166330083500608656738221195413806770640467886547395080580656799426771840522701101857979726150637748898384330101885192946961945961379066648608925619280329816816763534401565264329207484606279869344077788938903528603218971669152700399510803204498098430176947865784317613671087487883991876405730439155559746603721501802540249311983087221137830486277831767339096439826151329360773604608692676409818621739905728362324045084505034823190828610330449669380889499013603852664563718906437585728800482652896705177769544371175187137043253130144793076642636036802229765344505322438798078437815779958007012069753749325635015275852308730259943359485062677437833190032327693126133637267633783904429894798883762948827515853595060706782240958178032537181980221208694886052984925804497310228045206020693690883040104766384404023898660299752341833677987176456112952011977596393777014218187910410578814781624969620905139447522698555519097722492592309651995634006013373330708950924516886134697588603608931988426108530899701133019602230235173377250423605367699886611196940024785432195045832624737590950404441317173425547156219555982261015987651771536604833129152808654013701968560781273776665060005639389210673683985552575588168720563912446790090264941625001961930099084998307517407821750500114717200138507652296702192611074146714871990475960682654105034577994531287978600529945839465996428952538282346277268048374029984436560902085744419696614032989461582966449405385838017357289176243675707101067441119655530114997299219645707033968671279236055549824022098920465958497947449450486114672296840074676138130601765588708022864255393748708691812940459519191975509175833913867953695518256166279897900721545865502826399281817170372989213720910448569894321073665488210618503045537184759205050042753144225132136676080595990654542151578360220256531447985108582088049111556687483367979970226317336546189577209909545650340744402670983657287757509630341990614670019194362983061137777455049452868627483438029795464685942110332484800855823935502980584224147018480800351100824079780637751133673384177545421194116292227847896350367246443260266050516913444200617606713961285706800569281626366899248322790760259263990231813963492034844525469264090056180203460744027996791431402645095614885142420206528177829989473180856219741776215746228723170307299848772823690211859688268822986598272533123016336234436034928498176600506059418456809257413896339928781625089534199168685846380303758360389441944281532895876624228539468587046060393169400405729732994379521091725319448731442147324323004970667208721843820053537366178888036762384235757763772926533573458025052013943445344048688551604719182563196750096900522175762465153303163716982101850720081362584632591398040873657241003528511345991402264602524191080042939720590028681594494233884997036924920073228977645803789020354662245013724240570068208582679593538130149325164943969444065072784794684126432741604461695039557073828082194674589145200553514021120951156976631709715968982025712625265337341253211928085538862019984057491641258918581466578506885994296857974059147429282184651676889908184454406437715247156517356635876637591567781771424383978482295385457032709437762511672894463135477483815500680857294188841790451124104294707335231643789937533850904229390015609004432748549888396579209772576071924468042322003295028615490917670030802787262793213714170415314667353525529868785189050462243005326603828658078741819849775100367040410922634980075706957225864114978157694114595597933179433778783847159775393665694064131969732921448021003056083690167118455941050716641474893697479595989498247023157703233655894353941891125735022504705205018730095701745219982050783804684436026630079453772625179077512945205315816364257862961137625800180050746099016852888589526141390223849356838550164826128220967115421021448943326302893218284926645837640745224008351125294066153529638148074776459022823437189203664454592158827821804533602766574864263086608207683722929797896211788704110682910395257195939725319366046023810895246704617725605589970602180771966396350291690471748375494595988748402011515065839046676627169666441471692883278733832987765452837504180153812666149091268282905909835479928280317428591250771879697766207001400750044740219343362242070253283773960567100569400233947687474590863968641835412536727204791202648769877196956746871893237032820477578646048154912298289648360352443050873673030762679168325801098241017089251411539048069491564194164708754792398555136717360287982752239884751864149353451882364090839985672095869530889728010229810946605759070442156965865763213578857917875952408624105151685545601169450085043001461470542302756992411020949876366442122416509399477094064326671355537227300230132708683669481394175745648916265443721183487828790293294952182578282070185804619833595635787488320749908273300489163825716999046618071162471195868135600950502814289550238983446817340602755737862618085424428438991774891705975727133354387286825388621455154725060560616669096032923602954631841087590182164078050566855573237736097992035467117329244249370750079290702706913500986964473036233462968995491225951615823864162273586834759147947087777356847079036677506237127827263961107178736989193714231383230189080098607252798445887160141081877315672275833693541514111436993857809181803163334212080338931334563649274496368953010882991699246764637096395157574071379190608258018411189687294276150706516737623920254831683568987344891749730575017587895814851616198460512117069913116542148723780131993497598987423627988781616848984769987622368866745407759035434697939074436489294662279819813807030625821682398223043924303923907114534532137108548993016721299910603392733189277782112349635527418612006749513787461161386235913373777620880494415803027472739147106915275686011163001676036383606346401852546531548204636807955195860899035055541568489860070161377613213154300964102416628400021588414928456045598868649686826209375384199728601703337524286512432914458111170003094226714597915897150492606530005419984234416527724871537416404212386303576483554240587433989441282101943038446874022274464578387790486511707153909167158966264626846136018176500520435025802639310442017126865173168263732942813583364833374220360923344680792982619218339538268539921980926125508500132092400582685086855942679078056708102038123845941971713027198325570234550563659471967194826332977141638571014998521226742908151018534223228609777418541471353895077150331254996785128700338464430661198740680230072760386176880154189447567982536245735516848544941099884090630739413951799223963762481677365224948166012991759065623145567414726148677581871003680580071785308563877400870804541395637394382491457159471480156401464751532829323624748289470460150243684971846507252409735808108930835905117291403747189791165515161287526294089715814362914471589103718561881006704303632856983582930492994437110833892512830950729612422000553011059962229375835922497252319480856222840200084049469542512010192759810461164316207422736263013660745741370446457152981858995496102335020135976979092842007887821853546571780351184840159308787278224454646447642224940527204556648398818651541828343148198742285695312720261977576826864944445860442434069291285938514657680517998221419381881262952014065982989475096503554233627856419101985485878057900930868956161431013844157523264550030321531805924535819344316590427729567167961322050453418107764959453794283859360768041749055526093303133567556627976025999848589092111911139218005066348180909877629366346682040456862083657781309878960256267001390137631898544014620658071071836051273826200776381198483333404651303511300160198374921130895884600273660801675767855489456377255903020847194158399338311851725536165631611531551255983420817437880611912857684787441713217827003379846541760613487323698481868688444700129967294398725465551226593583139577542650219615479334844318793792610632916848548240539390124299116838244761216872315201507954993224737065924197564757277639416519167473281853476494155966555891542944745418569852890861019053786180663316297775063572510724824460204518356960333240340836498469797747999520417895479445824110020418515679934499565568364946229065596094803209134652854195655780883384692167403566128104212081110365979772181238022168846647716726623974323024790196400919715499000454728567567438040063728091061167379515395706713508784183915975667274772136954980408185270981919974531211589993114183139874563986349286124328632911575034949856246625002657387525592247167894763633738965487732714180985493887334551066443268588842046706615614097349389764786774280239297420497653209787543767542590895045546499289388663709127829897186783180318097835691586490866269795164834388191620480831964687980676599915066465064124379295493801474670232707936096426130123301071743761275122159382086262674379206378948398717709574037158374817232865496777959934299868238011998790495817943668747561475593926865388449823100830698647774888750043771103825092349939112496562501574307256262288176838423720513621718845132777762071253720830762134571190916809368327989811172736350468759068450169674595100890891691887920665515820488578489631817156170989976316433293227876931844437607769420546928383379430118519953967380173945644100237421850338921121940481744327691282944147070645974326312505202566091202983299860602850939192839386680794122425782473422301506018475409327115841769434499495815815572183846811903867458183943483568592589880684392975192810589940537098566557795400986101457194289850615064395283967865576589378080612337635336599853743030400421281871124737167664804157987725342756810227468994426708724335250299020688224542121919244637313960426951768922620656552691716493822948701438920701830045869960719044453483887251299243309915527494192818868213485577436124259601244024928355627086042386068479250031260727381897761761792690843461488790295122733449273607444837317163629830392179919281166697865220211515046471659418616363008645399017916019440304218834870382882913620127119756278355348968976878392952881149800506738081752962154599954294004610869803085727263556635698434608540450795929281951543398340824192909007007901683283343175348792266595723040092872855930056462130314494407251402460038478665016230755333495724884966333763384449537350710181951843788247396193114948380554781168610686753442000035630825620890220222417628374720712300901536612694258205660037432813748935807828453591531189602164418309009047587154091030424598071149398595447261409411136202086028327158040147609955077729154097384408199474097902934252100989510203345351296738919529060130217430620195202420900311467633230313356556317880304927901530747224188304941212491341612071014967414862229666092174533033698335350866491427794846516123233417034061950303068897307816500661132502418080910655632038609515136420665702815254290511064238118119063257671326594187114042190580984572389842714070466016670268845915118396013618673727311324095999954285676553751135733124603956836146717080472058322257031051357405523877712928645498504091560512368003931134583475175349899749248917343275066952703303547685743357689746219561835173845243699675935524495663049677899200036082385580319631652759869075657617673259112849734870452083052762662673901622193077883132042384123829005989829677121511939957276626952941304899541786026650108554521584543678927252339962249314127953080583829798764997993048604320250168693985552905385996753034444019252608283084967100981213631942019893187041448476771878372727814082758205620658235776489088683654449388262317095824906311560540913841565803617283958311180069536972816697632562116035893611407011509699681199975399700073248580816459462317216208236706747332165684874539540444696949864835707981818697577424512553567003469275077560313566112733334443691063846609031244327144808460085135729684097081972273488402557342616588759611103005304350972707803646888014577730204728728293576847174592436369160039023523573703409411291526326106778528700018970159934614556876727228204316041117358567832968554670348629936087160324733464097768889584803893698886270573761068975768542271032008958231541281293379934093521793493994810296934637061674676167273830673216252199292833939792325594451846598266389133296071119096915172150135716911061019071773640642190624309808520630019160653473803782133063994845480652742124175002948663150457813911643625189401412159860416381521127604980410880844447901945427274487000062349234405295111686979055712392084730868221061460063436579570678636473144092195607887392018020916926567526700643165770375234384297578617618042747464373443659796806450059570301585349399175915112859295600327385209799554317841375687405388432671289375907450553866287179923207991659848742204932778913193070262024005280800309034913675762924709427392246413769772213042839776352453213622395483268931170376734481706347582359666456248150246914211080986931579549017794944634594296851845343522158684169112219509567952441436686120250824200818691882435991945369799715430554991476353232207227909971175625886216224899255985708528607653957845251495408651110145045867319938587411713877147175826667735284787249482423682333611019757446797019583855298971748141801584510482747353397367048132320631255303492448809670300401219821427682332920907602287729200358931447224303653181272496587482525448519218543633248876410749426096416648047574575679447095087037461009091295321327975592682673302948068058741055531552071192573061607171018691239073584356149795025458524266307073153594106775759105668106217301215051335589294297190710013326559375734665887298779538212867248371773975924622419081085745581943774461051401011706624026535843749391359874986281512291479388893435879504696082397835224680958926356029735145398727456170389552234264610654153774078186457314953754029682839005079458172190629810016866590975675378937823711077263261689866230400612322782837372297712793651869236840268339400913180819683835366289251837110057907307442748999763183359095219248111901808984801530205261110090622417958451001801732681519595112686380275834907464691927945037903876769553235402270493456768733437227025685943022323439329107786501143448958117070893152168176253869878278911643636440671294146267095440506400357327147021645081812849034195275480723877531885996980487443296652635009861762493827158130460827865201279165958041195373030922206859993385353580433870316822183035437722075639947260087789276904389330116646831707391277704432618599278793859405954489887997414906813391648492409141562820325462358453708951025275799124362290841438601389460472196516768858892071396473158641003420268647623793748393592085659368744849862534306202435150867305141584340843198886438648399668889764534809309791261213821340393709959194944217761386282347934147438281624165875838641772577702457506147824686443507753550351104789670352402453820271466005012426669302546958414072534236091913874643600307416272299934614756477939097445642481297549686943940926716767020212587437398091153962930229927195479190972691805313839278394810024354668179640203164135324219478753686525460306123240081924045757229434876820113817244591556106072082733026893248145266455152083947858337930968222407787948252041128699076787152440695272165178546731300484418694392796785701955798375602095809071035755316823247096855859583591182028290070492335879057883203753335669508448910908176192457496668324204369025700876778323129756639973610655696134913071972329812586377722974137495155099497542552785025948937075206066276757038075690307712087421212540864325222331880244119452393619909156909791689153856202113698844049700610454299445763169909523431642619468462778526260001349461219822943843374121761402490549503706580167363508323802600905573071326606807661846351808044191280688328841702233003329174641456960241948574192849957745050940913337129418173381348557420380059066638392245420636935542420877591044132044707969585338089251215760569920131869632144934182614803724886045633427168484128818723834152637843589897187519319164538142067853118353454738410005806190085862070324166308698018693806972297302596603538478275112468750808884223942304317725515113435198568488401079241367378860236511783856224589354758223980997901585970366999298822468461004705356764400569537028132745281660281332401616955188246830854131104096873498068938243737510355833794608970070894305518050986291121475852516493165185929864082646753054163440729265814305631194649847265569744549463348360016263482477336845994127871738761195810236700549174236675940992062217913465958214424148609923552861578170366313526238848907416699204832105330344097518319604502308415851482156887909628442820395997200752523168682058709339607960343751787340642695873298590213945130105559788210477774885162780743232934874879236286500166000310013689816291374702778255199146179656778572757620350082168025918335020844730811601414680670534919946080850750230473525225657727040757036217184755937591623312046085012835373128094516006216034352557562752945941116149684873078763843689368628251317488101158741019047240644773329876386899219745271248985784054783358053381002660584188737464204266370903409553144586814850715606083958660777601155894135360999685797463805530746691360964494761167842131377567580807429765574728722073621727276464114593939488071357109699050578786665567506364608305949022504037090115225150111948854873574940018947284938575487085717506519245292373479521542775254796267819898783954368335730459087557320193598050776489315377202615031867112555134474617692817405743123924751633225105464315924055737455147290065502260477600323714736799303418937018433270017411100722825534563223667997062025011446970129486576325032841085773387397268291283771393618338044928615080756703891189233262822412789340397225571163012871144719747450686480672496873727861215140326735079522983927257306314394174610559384040925827626463337958966420104967097010931641400460950696561825151476806425002513781927751273422227258246868032923216942234158242031553523183110481365393549016852664484896715207489916631809289894691230322127727723254382111118466317951010696330092213738379609397417221628438594545688160633275317032278181196362308852251624508685910299531342446035727614248162354483856698411183694993678600272822351509492233095960031988232519530676306977930481650807323870604563092536542829805598691271973881878117149362783479785500000301774153720173237216418772163443245010184353356926937095400465323349558632535302967037434767082625971049522158871837063277245056839079073331625642613461967684926881985300292569853697931209264006360184684628694053576876332820768185304242214921288732925203733427772758231355956933824755986688238619818579592114243473754915166675290005970081983184815648350781022180693916885670291998536815297509812470365654683217294795227227615462904778493876655035151594765949601364537500351627916209887378263265289959708620755166125955331037379039706860264496375502566659914416541896713616446884650576907370233349684844012100022195950290753447553521391219674772436696881106319808203093807656365199145263457499085266217693686456387983084463064185075927618966717248838024970383903318650380891014738628013365150904863327399445996229810745385012247929343080678911251768317331571193292266324531149212291259743412175439154082613469350330936626336486423133614500704941040382558501813035323620604072362226125385207519137006098412843636519783925074756726500569833226648604628517065162385986019013591376581821755965358862756510192043453577166279837689047126740780527313583646219546376014237652812576605439648087965610565211125960127120534243178510156670805123707877333351131089642575868327424739283554750000956554390325921278709426585658596840778546784252761552806653944654826324286846453116322242871350644451710450731786848541917976577804828976545173051051815091980871876539960111161744585914885298996013480257199815041026450283525342166147825473034982702618786451295116800831190755386112232053696869492465310001331657938863723021204653551730796203740206434282334931809950854809301425060723352165433298413750685102199052046028264313923136749006432823610636873960948558292179387698328009424872519164782771259309913667041876103711927714305594544769213062891349404758679458781181246964176691784841805277307492595080314239238327583141730361923136151701845083701604024469999096205942698684509090844692865949310295356648876769655033174624827344818210900709671784903394229177192849043351969884710172470515308358245484751320269879990831024941316949480608492042335255595835435897671611796819191283163510280155120533682071672746796753473205363051949367173828475607209664640971283423568335711856533242397858568981630843275246023150557296920744206776171986550997410330436243685133142991632925429534063275472016210171373100348293140149556732144457254096099000155092617031646084509287787283505241256356099226310457650493977243577175243502416388825173619953308695231464850221142331797112551855684824631673107956666636513783162532317155254983643491933384131807288020599581000804571545580171185086743732638391018196775609948933980309675039180180553717901693500646185469176314821401263399421015505867253116927071861738141588397190722299741919383475234407189055587704986584374415046921138335102840865169783001101798431842843334588208226350288018822479376360186124834475590260760382161278816251278476605741995914764439670730307941536925302259916143103354925017555112115270206372372817417375545546676658812360991360183011084909492223558025224134114178353734080567153531623157659508475747464865861283695795886865262536338090234102842141992048691140301713011097973274574598551811249622881821931853138173648692674128785117345520761469803078866237839959039306468387059189198479886005398012848178137283495491967958779789177076144993557726612742121450858396551488428308888546314022635297250190943698801437999741414052977776070469712733953585769407619929456298329423004639135711013814633899590562734952428266172029002897440980856202817417645882548189527374625086087204381865844482899732078789338082422485920936304882931240004879327539192980411550319397160758068790616181487221312473847958091034310694317207480477887023014624414724292641364172334539585065474833184550755707676556446691029240300632041402293481335503998564827773068973397279567755430061137639876091208131695143568856126743522753876267695765041741441981299489950051554840695700787987354671919877973311586545029369389736329240752189145773532774398539500421633668404321262994595018403078626579018690763823922302309528492773740750323663895735979470462616415676419296958423571831928110054792716872485215123635450659877745188664669948429531975750380719822421206777269280256992980132583743216959902540779995129477320324058597390524307253543833995048185407972419598685828562632621986787501333909146844349403939059211514224466680763558916933990478087291365497610623500307757622010515560149290967603580345898658539856355480677949827454558084307199513734598114263997788716339074656806910397103042312128780597868606876845509820258300666832579315382156472350547897702493101281960115910746142934872375967326651514323174778847388683056504225998183762479277136725273635680617870524224051842628016127883527935433155777964502488737156240181830024775596866551658156168446604514783026796478438534961673716446738687765049273311761903467790690215121149873603459684824536564121984189312930698247527665321116711701765597688208344978979072961211200738563345810943986154547938208569689728681632425463607589977089543766708920680559037321876153267423774812099771776854223926795368227325710067706223427334614576283481196744753636539214278518714069560066983191930570089934974791503525811550571935590716994136743765474440924645755275877555517231053110078106731212268661466857543943925907043867618087666898455825554285757289798325782122187074713983175010355495864660128080063556609988904849774070477353237505225922994271439271240490213659904622928786004414133535975938989552607512399900595259917842785489806556450414999410106954145621552703544993965732298461677672482214027962233373504393697728008433428521052671518260708364397189718071545206854040525072925598237798374214768251999605331619377088835041632077279143396514061029471369122355793683752757113343238440632326984056449804882455871079359938913688286524710830370095587177143966425885303467783807950272029298669678798574830933380533934447150780564288705742058126047769645801183888819992451166309399177699162188144033158897052134368807987105924288760439606296673960129679334477374471473853011479140184904943909087690402251639951537708646043045344933665831046046984619495091082036634560763833604061638311419183275016754858337008814370899751014832690224670127705650600931059200107835686368080874656117409132325552323635386346907881988427853421275384321532842536666076158613764291258444857724470899750960967965751399184653932849102922453259974002265855515844648581225586292587118701476460740802049521165771369352421023017686030248581769879771683669548102347163300393423053417018098724127566053283934022912076546724448939821282190600874297057448700786068144232810041653365180330397841771835656385043274317529439040736330767350821234736529917810974331437767115723482491273919490683105074905266227629460967543189860626842047873300124062425699704611627002565481692563558476715450230386146365966283519748164241843261269535226146112631639322079419636357135810398810073026958656461707523432211244994409195466017675080082616912322747564816068143015514472435465423271898781018279500656379877178859360034081939024092876876113590534346386294838827748856754771903554767225826288429259656558237887872764172686649919814353931927272391360829784601702064597036227399366350210772749582000403525936260087877468955626198617784756954191925869481327264031475109422322485995746369464400585572076191127452001468483825439149596159449587984703617421891090475221457049423550754181031109214445752112714380895268365244252494566524219981001613781057700873727284833277031269520100879775883254044843086139966739680121175614794638544460869838209383993790465522363443061297128421983643574107306732504171438115118965424123737716756836129942782732145825613617428194846929138224336247085266176333523965979610342327408635078719005591327406722670866829639465148951463381439746660123588504339364973930249321857444625063342150708310182631433105683530360774350607582705396698026677782915440558420754437744649550995180346530690664287328016067243693979358732306506350982271134085600317473561364299325040500961594290405833048722665273554901663427812117347508775126808037711963401343312499991220305341556986905762644665158390479124549288518763773258587697660397319415918399323052425057873930138599319914179538281006613849314636449977435182598754928029042297112204234531598328581910317209514332152870464295660528773812094465999324554944886859284402537785422584111911800134443009474344951616839234613316405827048842912014822200308125124076551398211008884937958646139435900633413303977058936662215057592693434033421224298876754183428659502116565311618334801632109403227043385487466046937881202476012707574085082365996573090265029796894256377947629801269994591525839284140110859587396691317442325962617289741045641225862428645656408760259177429011841494387734500057479570844314127909359681952266383704313864417422868844711154139862322916721466687791350547757000317055047910417769791626156539350498426699812107564538031909563133081718890290681051353347757421082015017146575157226306424346712521182876781233053636386678990853214077335109261811514022249154796463257201927113923525833287237699643585331433929228084384907381400552012872366208183875792437263251088459835124374902037638341964170610400197738589684351416399438913706511571613634637440165344494144817128031379875598719965178776980422053204702799980222311206632511721668035753225075819338167576961236217809459161519231932348607154854213110516183029910231703359484533042525802679088141604951425688335563887256122401028082258559277013684828130511921675340017375164047066716131786497645087573928253583965727343531670102376564808977914749521216935016179219163627185926633040549163564584490203127441026919181301093827421872894049004861146370973853563664663345666672592267769730410013965410623131683897541337659672426685182312556488847374790447614605989060150195364899684043097426247235287820007525113096983113047302858243820601935425838928111560426914160532594752844711893884067546084986578802175011597897744837417346148028558944140886947433262578440580273516531425693910519134655240589662848392159312168909721453217868640530599823155624357188763364740038556712537931626016774764816009796785757299695148587076852355668606387758807165239217285009858945426315284269305787828146405686313812906098699178635558705595184435460810716929537979497991025959202103229506242828240175979383345887526863841411748879297660907873128299618486340562758614621110050667832077222879516243656680756004606390583504256825945929827915732108291625386114853662739054831577559348088175307632088912814604853196775424971982119131481567066090581221893610715849147724864641472263463365337354256814875064360047860858788612264092097745454074648680497141086067360784151141482656196743492479606361719960076285459007455406542803025665982316586817315467237002710336211393043224478025026526628669523318903611840383869267854221254880753990330180295613960160087283198885194890705972101306748527218491615527813402297040908676436326893096321551322978167856351973218473177717790852325204274853280800156917748518436619253280660176507803058331887022921896830516591684868561502712645867401213709111803609504567593514035533297329181998661543008759821481794106606423507987211377128946987879467862447300812712028801054816901099505179073558809939379334849562881156091105684788010923048273168008804064723413805263890773946542652123202645663770290884450684995147465920968061258443402771640332688417191213844483086101929627054615339113323807686742163125099083933175563392005859258834504116581182906318709193908206418142152089106423380411424972809782255890193095207233852456131210104761882616947575363361964799307566293110513731771604247831054666287595292641552388488607030330497698227627586586850511617764769716084659955041814813073488654704415543962872576293604575660541235739130526537148203535803824827804674437341409259232553115118433975023796712372139096684117578569354039522288433314330642013102769875486644718622346551645864266107464018205220442637029857720988200949937346056676845284328607342726441615328230166684185014517921525786785103285604329590555757247629405532962940101880950130368469146213617169768185550761217209070990464223145782576545372318343690635273028738289306290680161730706132040962229181405278567847038453617382033303307811364032313778449306685278919852784165251306320673712197770400059723645202102996384987354930417237272403859243303702452484232811645775759795989939756828410688155392431422033561702932898306277383948172378009263856788263081721326147749582444244521631637130460073015834269942397509691836892646178718528858415816821237932919451434390712684641183588547558371387107613884187619319059898286016820109320190751527391118564595976637910132938185196801418602325163102400768480086525515252998438296749063554806058174467464449881571309116047314452720910635643092603272568008448106662918522293459215504086797245366713804020539386658839943173742071922432711185107972130350779594646477529758419120690107054297827581109123672012452783878757803739260189095880165331473321947288542214972772269417966703355240003973432507931319003006643639985694077871196831728295469136470508318339253440173026991320099227922142688964930966981815741905397349375530675827104610754597020688708875762762274932209828989036208175184711375511256285847604807697590949993578588927906528154202549149930299769469805852781924700637848114947602380514541225276453459580190938060625510653417515007763940970126526734657479620545687823982182034373821365542006687431036992098629207190195729788824312281427541375423172868473403930449584565960273863712880376730166383905783760404816931893099272751865362661368392401910545205104946892551072940491104301272394267459500598455882077909264531608954250976047740643825851841944215218197176759687477051759852430804181570016791335986771405226241308179657008666350729555051971091520540505132430437870215351274101787005110491012536536113996638926536554317553177408468962846308352056987357966233198706471279075190952527953998687498536335478801563955698154476032552165149880923295810462085650568095363445249362064924373204826488403462385110818193970153455619621829227829550946809364073235903819383142858605030375983053952803617932535597417344695876684055679055235700834308255803412990848048310527809810594226158641587783191727505677434745789039738989797872320441483302691759931759314556860300229835655033726490620279225523537409516537511780476685221941869382513921623605609300120868906014289259088463752922144597703889869472285191501950003061465560729702778718755414772883003522027608506574315538380480691973667108057933260849695101724492845817306191039419996620073556718952291965027040156002852044093512556555566876903440952825707543562654844180691181058190512644356864412598203301715835192083501910295315557307783352787256369634710241036900567866246965365705046000207486906121759909491814144211780347329246839653246421687557416916761883613000034887800702238208502831916272393865445474942935660437662057022577374260087750668969402296712835246126020729318348175219550614436827146983238715310575201660179014273187896892551900407250675908837705142311179730059811576597521198125827291951479060437165849615031592575298590511368424480567216705471130243292460257347150617179269104763128578955303559576154461174729072355221031431402052353859645421103992974097657002521179145854689785236030466962823559222617592690600904458017965285974036980734153817288508963056341051329754783765754602590130806123117860165261963479518472182116379419603055794461031317197874304324347546911822452583600932845156811107871939773513149029220811699643521071342553500749726920180156090946110660736517657231211675605233756081681981297971688967257722494522430793775660925503342595884413830703763766273239318104071489368818239712625784280894397403239844935889043040239712196803266251161187491220975467884614627670702248541865339590791866536513110322094223574621902451835079933694113725555445925157349534657101784678192929633573240677651735900571957496607964971473845158961330183931143645099305897630869549921498458964170073130198863307920565449023767577595672933650807971702437520180394847142676595775561744562170264087775505110245593382070016664981020552259865423768783795416535072353533664910376500687099239725161265465945531111813861811265359781786412140293250052932855851538602089607436766792686049419766846885482865081447171862346630939326838610284925618503745532370653130740750855596949805937862530412506271081646073572701180305812173922584671216126520704591103256537923827654745496777817314927919919717695063937094816435898274595371892437348979157804342414090894677238523080505111078355080707315760828864383369735749275545604039056611026619263351959212091237514943488383752015588061793753875418244072897371550885386878755756498120594247706929261398395427681603641018735568238990490063499382119993779766219427491583650912180320590449915048471826595529410767232914816081268597589428048048645170298899871027433381095355116349166627908259735090338712383157645415602743740177057410111042719150025593265226357435289627735476939337682589021335868589855214791641612096017030760249484929946380775235925289644362271985809580904233840341354474236881093309899078110275494038915348464338139742342860246061714696569772269010823712568871216781416230398588036739422688358363425416060820302969801641824281396374796134302168141148214281984759605459862343743106943270200383296741239498618849508162102973233144787580237010532411623246349940089620847551756091750151895609670994540947589383544189784416424168074589185906204871799591459897369818938726666663798793253759542775378284311016912337272843061404630592720250517171972151873976819472138480227430047723871964594209618384389187165806731062434383423377072330272708038923627398292668474427635745572309067820959181854051099221243380874979981860934754552927888772467423521256761801285719454252622092070563462489102239285229214926098715140679315055818555073288204862451599703571640064278484744522932748370583560974307435794118030414577385123986789038561591712246307308264634669849988732944115736848690291822599916930600350616254528441580756544285554663225048610797879193714343257072358223637258858384008826343284010678136009841077989236029297495292660953770317698641710462080500565029749944676431810982507044867021337164903339647910464849809184993558532493329076012479222685844782136461630609651248809012897976473578672409783151446896787361298813063922400952643264403647730777126982484794791911067655320820905127707214969681047033196980505088274021964787160472609675338563965844666743809387527225502922173208053720140125557663562043082392693192685212576910270506080433538274133873517573062536275033504635374373979670173204504725033288937522309724906504385586482056682469282557335884879801215782246985948193809871662159924454768989634877468319767912510005070686008442890683291473365659772881816395948972373746992298123011086445116531374388990106158248524595820998199823654703537335757050678959497224299436795142120888285055835392556570363338556548706903693050110992780266636313351076688127451447755040420518384591561538481084156772032942143798769148488565015690016854062917907918949012267125875403893646846405089169238753841451174774768735509735228936325840584872370410079016805165418208098527373259838541009364252529591506738898984216332830481910256103742804119923033400327370401456138265516300952877832160298665695623500383620676232988920645656574734521623975853033022501885651376967962438274519751506681667265205533055414043914889949685968671517640615676729120248965591566021754416008143944295295563177780410549338673443906684239231602787971323951810465151041674246633075087087707511496125114779513679019368808055786204404641861066017898931016789477353399141949460128297156798025827023115242389963557592888062234566210715130605535270050220416682072866178002681318385735892114625693524662694855026492132350256463817301697836508541537487059481101010301002938918478623794829034176632644942344310600333854792797929895246404151783392633269933592119982095576065138271212693426113072520336920285272762315082770653167959220137826003295934400017212046258464854550118827430927987146427924402720246185885108863872437918901851814744507151619724046047471717397042334553421487691661592860414374230487641383775504488687483823019005302101017468936445188995559950864576512325685763926081469184192940320821343009980235710808245362393235065979002928982384793544910423688478519507435921354372163445501264173993757245586866651090634797007286634412700576243771063764145927964970665532922697294982427335663251437395379524671025410225647211821646910443427084794377706873505170208088241667873745961929161248094637517764422858480306837108381762661578528061948809210201241754786313812730461181731302697752896640047166679635284282382747753283912098408613218403121986900198243874357561176547222653809593019349854342886369973548955446891858643147876695046770458258556671976145278962079760755690800009400962576970434102642863211718804104771038444328579218809993548265381799715397065932736912604329022102003904497010479971711685741279035498522063040258760338256617332336717583384827922704397485879644974319451779470953369245344792809916068505523235214253784992802717779451394847379479871603447702246308240214109518701127811495785977434568081477552889016270130970968868222124309530990653418679773977589983330527476301805540501132923660544998244445185367230263478614795076646595636922352696790387929895285990199812363678769554476836529760079691534364622978360024652437500196704001442642930236834429384922232805413972245923767088464112116907511090535012059726432683045894196111412616506769636177407332881609572918764186899617219038631726984626439046772453293761688962804901372385249715310232318687164150684429063351515983464628095557584760288089183054050674637208432762191354484964044785414970538154386584017013550824606330592822121322884224581091333638503846969164019218289690047445929690719017512606924811416864815341301254713256918874365389521998873588807669502008196254314597848332082979715479257645922784763325176895874829093921779353644553501120893321750848647143564306542728837336754511014532695657668396246939363680168731038774693699747159519366643078130834835149270877191712079141952221225831707048785966152400831598325434052155224308785617373212636847543255638253273577785907125799951498731372262834202327883460339589921662370780458283119291129429681540927595021206063330863695371602164515941859452622789542952052525514298067978152379554118414846776891599932269933056114852530467205194524395920172884798642073726044459885932205685342741798272017898343702625770930617035287835763029614398411118110697983698783966892850632633899761554523789092424309079840612389162481389230020569278178139372752987282708363900921844315791722158234075486627111910453935954686113745211538044449257233352824339117563878235487432846214462979368279664696194852470076912775314982346289113499087730280240575118552784720548879916921619774330925409679010041280278687119233090988027679870533770103862512977542634036026330986942440794435680217487803603891225257623014283290199095703144716648864052733423123070029175517361752599606219491057625414291131832360338873325471346690399909147594797990239140051950455353958852721325721789535713888509674507655999579280429385420923165885002782901932708444936746016942177108793220942455284146014470440004810156661712522298709531585405389289557143484728731343806871069084500422324465341819444644127713850325513388569150178768283979008170496444285013680694701185825985151441995168934285846931026839048740235079010354971512581779489275174613074572957231186929531350481670517119440754686845308396900921984917124186623405036447954798661432054654631055287985918444592206177886200317648343725289474711646502574663873626330256328193569630418907740704648376970516818486984981684891322098839036291354382612010778667987671860290933962250891238953657576904132279037649601412511859823463034306378522650007110885213245045810281965708166293366871462262681170616753145867250598781824160397040534577204547951673031557102472293181230099560765175664226284204621754696985227068385312122816339251282671294446238949952884987420370608643709872213255070313193090203825147398683835192754754417449578531454632821875370861117165796021545630698943344862465357278514027809720816941461879520268435476023005107569062125961810916372101743420237854194862949388018368043012870612266983233053639604029049151597799591010216965715367813661803781842474445174697893885124288252986240227196520662705035287389045057856278333190340799307196046410074045823042301223450507938954984967172120547135336075523612413420155275964962529799252101295928942362890877151525815928216570521532767464513970948961721132320809452408989181285446629989479379220398707953173466920952212879609278779718331624241046010831816981432210159995459355277771482505066181345504733801887281968026726173281908089352497871536175002991109067944931993872363909119964269739428463123308585119832337352888206410341672121840328843158232211585336997017271169113677764083573056923983529828839199398227578193371197014062624395276443711314824741517846821656148116238124330633164198924356096572662186807251490590068124872219416869015201508740166932177014025038421119748697976160163332114962629251257116717567554591155903563577052218763914538585084653233479155480626543486255247078863219318327592818434467943393014289829113343650038491067431049885595562179399293886746053184198049545511815833637017784280125232702561838633363714323633895454722791801156674076791028798899859340353070757187232544037805364197509826348576061667300746824629641315607948842740414649406920415540334795094698459191056240984913986013797018456819486784068998871589979359207874247377320669694958468164813576939943003209930114183828937900040239144927577718708087052336246355605881365950350321045590181744120952212316111550601592246755355939080294308644893707130271198066102298331031327618039118297202943091036410494629064542912167361932094131883532637738441724123866092145587666043156940115415219540299731745992274331886299317960486438918012415753843283042074561668578115174046367480461939216111413101578569710413954993779622006907087002880353402887405545480556276204348938753825339855099078005336060102197322254619897162763644210882902176090928542982363891605996863808035359586481351384129528432609514809013628025074764827044931299225827560272388197925987160040926495154029526752027721084880210251604577249606884332153650020517973356107494106192254176659330714325353634783106784426874836066878482153933146496950412379077909952785548271846946620866026731212242207686861782740761328324652321985020596265011646629060174895755063257971163899106061571501573576306136551527606613662665289815130365442130034257729296447989958088127631931867342131649047028000386917028033626872317480816578536314964911626914511596716443078671673761630144591252164378469921479881683931144330369745764779409002493782414829753861143237971064253999086262535954343466460259620013423232289116135988008917324808708426507555710651787080363187247645352203172246440665473373525398103025816195468161941985909415068334197653891033976236234225243222521068911866687974918355197917047693523005303576830662056928950786595616849209360993117198136717251803713811545310103317795085893619210534024353009022933325397404546109002882469643333726973851108406706334726574407486565380023730263698505735480959633723253342782396338566082471799772602868002103739206452272404024706184315882124423642414285985492357619168560872713456961827462754354801125172644591230002664366423721785990312032985758759660191418561393725035366643538300321763338556925692311589574322080946440849438298142409656609904554442878308578531675913130154216030863243259547057890206981160017425030760368162621466360154595726005279258618690443095580997617088765432005148235290075256251251954863028766999441081077252787948212210963344034276386732938784808225553722799585255108310520577473457460617087081536593686120524740447687542138754861070903286422176910906622160022512716315995907652013801040027318700480372236472325938186455221807998751503999564273397016380482087827333233322547723966712921297468676230559060734405020090696299973472122311625277579361862508534910146383458189133225239251873429118315704150705192371046685942171853829986452425682966700316097633406254262213359290450057879238992946828411060809015283709656918122290272942183846621186192142082632338029067800467820117396911432941981610921532569360775270924029328468566928023397223856282773674974094569418716531532440204998955228776722140992728199682069381910342507006467700750877766797957335215712437827758225346524532870388967890309411756705473192379344397811983649023189013667745085036367174769305326893129682405137162724934650169159385214555643891865071416066577166647209907053631469354552972771207859764868057327571808840661566026632913423605098092023526241168691381295189837481988233211219777415642683912140666250240867258279519455027848607992716068019733733133468792639570761476929972011203849577987384349130584578620445541246559805585073107307487398482078848636825061671494274378430717043514326163735698431045210431266067830433973619752433128220565183068982790226309618359182506079360918627703713048351436406375953654970186326040943426562959801039853402297674390851375517503024237433404750819464180694673072214144474633759446151079619623055312958210572368074724142544286238877393847374370968464971966216633449868445419122965155748259786788495437609342123799158470977334675449592914981594896963022291303726759803880021598429402277916755949350021780765008314768930216701297082647562865566355794551431779733859146503506602643029021220302621469676234481946955640631512766567335639169178759212193177155536101913698872722533187412978037054506624057547936247691750449564090927532683717698091801516084543237683082857725970613800424943156209840361690970383935379546529677415649181025419387518532287571934730200898841264686709748522763464501129319667279569534730267034897905255692333552782441813833498451258025298519578332430103577538282577014906352705388452463455661467398928742897631153840865844958830142569898934669412152342344903182587429913722384610484028346272588133678434599467787704413839393541130490168503731189306301453580779144067700829662495852879485488529810141978708702236078923668939003728936880391259272416686205936946118646442431767704825298337564116125411018331653563291161761430470657515022376045325329548537959401665893142370470945639915063552645216608730532824696690300855799820167585611887729078490515488107435450446996286559969901743938321777375809507085668603596376819376086122397251372298579996891974754522774646812297437145152400773175876094767839260642431155604444741884027095472257073869609533229692026076308674177329183995364550362213109771654737512738968190979589451465043243025737179832470902354076374143418692123302721797164314296101423261231581802200520728417547686579994626246372098830791888433444334313603719238191933064178285828342265238554019787935167540786215405457273438503449666430632480723743770162411216847511442008706769934505107872589440957065129416187497568938930264980197319138454002936219164972700413782170337231281030868693754667815236857298132878982922551936423060638468726201600952350309123511416324110999726214983718462121905175059855108286772475073844075290151645909000888146627949130228610910783900659925406924285614735993529494983741227180666931381226119141338108488689871903789085855560378452887085737415716219619072272324683175282763454076065175384741665156912139018431737393931173331877667643044115424819351727457887230571323389326872843636720260876272652733121706815420856642628615604903071416281258578599258975079627570118727185239614977592884403486692478963679373500101454541009620764920913134055215272443581017729272796449208668874604446551409224495273940688994515829193884291791985233378428690687828711963550713569924432669979908159540712889474167967279855888996911343114653742857843621265717318719188988235870171607488622360134096445063479819712612320833284695635204698763944862980356391024026457375317280648817950137261358377034507718327425608216643823942900645940179580255429912302470154797876986795497932068952734482570328211829223407813550011809543103739258868995513548745094881402380000125209635232967198375174248060548678862361896440774219207898579400302296588118110505222276408026758773243505081972062874653172330197787010788319776730255660428273624228368795032501338409931915516794546413343384296791002134000295059393435281033789639347788106575430530080024731062190342679826835883578206921838831186050677077610714725051040689869118725190465029028432226393377789987350276740488824573149636947849942577242765585048283389017156199320514439487495125698205561776684155062200524879153270987664564172453494409798684828404836571344431704725820170448113352796831923625614055863397694278722296813331592140121642388263976832208793274871447977323777754285801112260320782940333869996073413903305126028606948204234500829010065572836997817002090718324684855602999974840027211994688744582975016673407970476812461854389075577639256975546537014636089837290970730365474982383112560105278297919254399709430824939619002293046365335775072176979198303970909773811820468410684291053261462374180051959664386885074374966243577192671205263162381536282686356057831768172722741336007751873439342804861426604454428899499430842177711756596315533875503380367469865590715591090839975167666332622897279627488511812243655523193598987968620943500704888857403896485907586436749377998544215290220654169605605477140640136529301270535925273626151028914071751934315533664195896178326720524139832482954022658154845851912318970560164896140653205802173334701327473722588580743670857377273281015861636003299428413144033010334532850393451979188607414850132821065722990942778044635456589224162316202454258420606910716816669592495115394088377315316625502335794053955364141315798356278239588497413519351630811878530273988244848011082430149150446519163400034579986013961718141156153037330144756287327102808326171812468025961324062289940196236456278142006126997994613390820299721923042699417184052724045055587287174032325525227561218745694311138326825589878214034843224641327659263909928920880003892885132846134065926470960127746744660233681061460001582840539719128930299318158500032295232203876006008989525746019137045086226471435049886417113195511028593693792463275059378585888198264398736719094886663916444145502495049065686560415227235168449870352556542603731862815410481108156298482196790572632224670451883595537816648667288547004704942316419574588964011479427578364225848114665997746169484150747114694875811683921942839057956436903352358860413548102117947506938543535074652970785066510198380085722953310199232380516894682217080862010334781450157486337210215868328828167296604788057328498903515796665318534759218418476790077598283404926893884784199453013742245916510840457408429654333424920680335955150923882868193149718149212150079581496191716848334960441185554112261209226830134230066131948768875296450883262815976374638541509505321099523883390688935373230861917038505529008832906524860806881820574231576112573960139934136936921324611152285289339398066207853929003787099091186993091942761317409978792079237183699565271757185557150896678604173674140528406924477636662231664245422824189583612057733816108154155438308547729319667113189882892742378368988605736955743755433585989942995502949287070351852194066981105811453221903043900222561528655138382669012518568025519554184457824983558542702979952966734388358312025731490037846535883685728846898462116192460272949047576233124163334476484646161340735654307391868524947227914061475389153255155773705453399896294259752581232713981947775433464708741807082385641025185791280573219965433943357456369029932874158163677897525297944477354338074119086095842217285675749399799165462719285882595617805826524062622404966740464503813910912569292441588168568191379136555838863390615365788959288859703560114249602694235455542348647755654173059100258825619548409623044906211249402171957606327292477904884509611082361580678295078209476501933074783641325774604143247499707090756882163146268201208166970429594261303190336557738572872920970256361516357384824581978594753984857100615593908157220331537739553361053811786901274085265341443291329642289226734002850986442506587828198291294528934696464699518988849179789444303263481811205805033725060095383304898977761597235667215488450646206214051197375794019155379240675575222580606268204745092528414110265298934532369826668570241755966528296334438009005349345404937821188121671431527969746103301499954890420883860042551311710008235331915232158589218837455914287556426874047866257380863528331962685798996697502180731417669698211153175833988919989513923755860207594943036099193023233875658577090359407320932916197609487790706056491348609552170354432950183540396700124384514401454835195093206176587936281484580960381003558279179882932617579250851418443791745127892224021176300860214465259546784772501887743474656654531915293812583823425661565932893425093528643976450970183418302146751094436913521121101903680372843044247523362375594129409571176878831267135048738122988803463602700749519947609780002937861992053951521387612243342978907579236185099259547350949345960509328975677575845306093188339750819468763162380391354801178784502487617782739731243838700019999886506816814670777884244974282548444457368343700625142854402456231169419742400463403626933652530238565815077305621570211489813220798355569405644668056130952054747996697261367521759457616576746066405243982288473082661191971969678011747874360510746811433594654702371337387094361211544190594932125642427414769537817728009846699651054272856036179635874416821015403489233686873077034988099943040191737201028030145189853276583476899244168173896140893711035718276925190915306213239964584602738287282662391765481499989679534843683726331158474265694145374896436957498150399963681102526317656912754296313064125935870319217021000653305055470945620388634065383425402460859008790650174547565542147110671456765430359111339745031230343008485297092499664042850302601345893131786971846507782068017877458168408909950991897614284363238718966141213039795780353655018470527578920289715834648935800886153103703367629826083233004836220783496641406812349768012244408360042233693778881013929165548384219548576129486262978835596817321195946324772646025785258546158417862374657001463885935994248253374793127700553160924368161029373512232950088392663465365917848964169271738106922861066312737217198683440172110908128995781376100669460799354845780435312435656707998380076483348300967055079433326543269329262728007401854344717853125667325655120202630228483536561361879687506543728681516253553256355048547194775336442732820035876888759955549950961541738771383986248092956835152030390948951897133097936111399725729190277844522522760555915506366817307715682290589849006353779475860311425984719662377735754080250857827939908142824505246888455399230175661879706060822265058138369127884455741013601731635562623965975077868826092392333442164850435386940624428744148140478492802138395958194460985502959416552037521999761720199897364250535707688617752585806708492397951496967295917371748899653479400336361928768061573613933361525647423702862323170822396082446012727830469452853651904188083223677584163780562383648210144938215408997344817270973351725665368733741817375436234166333202354906022533238423447726989963970158621464388527228527903606240652039427684580683572710492544597926246077468213559588940756692508675042454588272398940939774629570607901210471722119185365005074980347124459777721660940458268752155380176937436152972940164404952401715626500354085618004515420208160566237277942382981425669113017948851268146494093839871316734942899787639323952898265511313377521777183412793196042851460629378505371296288936445340120634174139665076514642036981122451396386319323360838093203940464121547473263050875899489828334045311928870853702313744568581981489935529616189495035934193449922657573956952090696543816022789636035822410620762326712671671421506243963253108653192029699685762916677905535866465729775859993179390626201167289443002737933990667802176187992857110947297392415700137438756500782512265519796301169304997429021332447345806861967253334697001797217365500101254807234142938982782385548565254827072481825345844460423272794951997465952117187541012141197012442271044385271016870946971031593368149092867752262327521919953814195189655700108854884901408415341008981360244650430995664013809464978032941736592207048769208711365830424715362591561807764540456464055230617215994199116456770788750961517258454339801646600882025579505455396406580390412515128198949578255049796455559518950548828413597638954689322384556804333876870733249520628501468187757427656056557658102325182664664249739653566231222989813854851507678010937009565062879354967967720063744882562889631704474028895869055677620510704267768901743455973220517654371463703516476280729069185590645148167302432184305234363697963371555117226017552189794466662195873011224246678080075270417138969310256485660536478298691147363014028314821042267931037949120256075068414397569759411199553537421646625046288694842428189747752194262097611678650050477043510246231437913465165913324187615929595473669752110593642379387824708325966766234754494678004694499427343370393692109792199773380019820923470181779389086158763388552775241919316877114805728509878148882664616896898162600451457596778212454544375595596487723915017103786714861215890085870800102837803251548849621610538174555201694626293346711208394657217605718806460810662828311133928921043672729338088841951434041713071962972569939115144390212575534599574289361888571179446682683039141095266416962122527461642575271384474143568906020357969127589736756273830364563397388854543622720779888260891845720796067455437887979211306378872543315868198902889473028908598318275756191044561617809137229500601467144105946177170220865106326664489626581131972166533167416596140732159431068293550141956657261196899734585259791629006451468476469576589588116222262227678682132031116160490910402167727049216935062178349513250253583921244149270690668885039102485399354144770720049884288576877843799144086168299013178259331769179410676065098540200827885975230394238067457029757014475538151972555187598346978330384462335618284511847552745167789548679164399875565027107249728295232116125509292262786632797493748966263792922168117414958439655325887815515118921028383579304867957829883418128129982259718145646708000957754136937479314747701955113297817853145992352911817564848050116184222867105434067770154646358555986170457767384232404493729094415945589747183277483997270309979670875648249113519238436433451250856578411707966452347448770582875793678398835291715211730294741611263575796248214800422766225322734527051665751913838955692141517322906358433113420014871684202184025798334556194394793233609068746248480125271652114112616729290502131310927210768061903115462319891180890561036615850842092947617288543277476705082283218904370439220799889990287255427069175791247170834814846022940038242429432624585151429540060765166849828520542251054253026813713578716105792028027260312509432323294102508423745417498347291572851064721730300219597629803552175524310201312884235615376806118890598948586472745778566023837728468570024516857740942691166688844055384992225901861062904823857117127243960592883663717685548552723553052176664209159834757002458400332579412137271921778727862262757726108697968697031933588360264063194115789650461769013830986355962618164688179689947247608176850536021276746408957198038459673825355578769820592524291302100584481766286801628244769515954856219545512227220819360098415314578926062434030755360099295481686110965749437499876360465703670128760349242009356748608766779824744634241567297784035813656719773191063863686314556932277069466395443835665096098812206628346924550778777413053140168533225814231972285420762410444529154445619043158345886341124324874732649797556264220077611835547253616240762326134489751210339748082934276433026762102007301746868246415820546108387216219996607223850825675728834718808462132144071420103662610474668920095033454679362951346940020161784130797510058012702003870033725758711352854578236548188139201348228124445289582956565424793767165336989355105033189513666149468808222952112778303284744630681108560217251021162218167765938452436398598225287779532255978250602177105341638834112917197382335049906054283875409113931735619118079067532976714534575291409689283451208390561398679101585750421779277271625831383658459307701158628046131739977447592418582390845335375390614598010083848825464825649784705362780818148101835440284104410695064550254955797894244559166641369089843120202039825128943319988487360392889620239091866993850856174132988158497829951430296146112127289770119164390026084632078020661242124211439886904944750331251046188015538582459709829841582640436778969691686264690401861670927617961326212280401719961409482355694099074313302185343988248671477357205094824680267302193334903507869109973301113983784977174875949249304384246836232462733975515664000728540928882270803893845785717037142148862370389535395497937888483304456881816720239317336935721796061859184489362603318441198005216458279539549605697274418257784283394213113173915041588313260723202912093502009301355801635132382318730008487944648207636926327667583196762965741887594483648880324758159787133460879697048846765999391335862618669932892850598789825919507851459674793106383511201962170414166174097193779538806149428752001706735441469450547136158502471259208034621697120662594212586990417654972253347224150410020671475732223038826691371423784174434362825131229055227417163226574772989780422793121240734844997036771052070037745853304621579897883680658514095388654741211446637114150644760272750180827925596271206376179811439247381619243594256109852156583454394512964146602968121558972890493158663666436224367135980089085141849885592883754370911628510958027020032521526916589917704041197904797767802055440002229609656519590653061920904654679450315114208440159305665723886041087735772851951819625793662356245222687121519220187247516591100543327488799172388112329528261163275348480679395862165940549606012287085349600347330121802793690956045426563859467782872482978249361222241719387171707921685279005702153497393671256597876084385744927875886690649418207876197149172577381623834206940376810845170061864702142128455674671154781500222280185188662230449578925219660050711468326018345955130443705165016709852190166316639397186065237195539644636511024427647245966068159347617312810589001419070033412832244949397584877093920482923903455827834354358121441949670594828142639803181634688163512942233322381464795004325993300923437076445007298506820647208536356923582601882081171214490706062304490385822395876488249314992413681146503801773509047738365202931187887275160142832694524019495620114339594040837273338869689259076201245410544127232162066801184847157238993571242949128719039193134903445754713748917054851839744032466440260941664191181819179602687300374758858967875113904644930015366066417261176052765980238048890770487020900282248000750722623056965183866664444204351497824714490397054252106220683490168864198034618675934897166933210329411202278847824485893193154174496690221822155475108407412370836480167959300686459012094263282067269691212535380185424064642948195721188791980392718361197643300285972348599728694612880772183554048170357633151290948899063863853395068443191898524996659996309170512468885209200931813519180368848846482294736147739529347962238979329243322261779639296954507360808803358065330838679974046188522356856541739070326523792497189918547854492298424224637257442775631097046121038972335134923225367841183528788336689472934710183171710960074345022091451650017474130283764477208469863967592961586079501608368023939941068857136214571618128676304438619813645411798858025919415918428243379162465481001316778223300917531129295848325679266300240131341988817503295448204270859202570224357053549271612691086781421531489917026630139864443235212224961040900904015854116530984240574689817279697952404011761818228013229758265230383451694080204334232303290829546538831700395511494680670238266374831203102461483475228519828751110584099896478627238836413626665912287020450688971506699172257489085584511807551734036135265422375473517329335544598980301717159627404632317057217801601162436444017284529633090474267817813005198348025564287123230121158910635894042545614218360022893977805908753003907980590229251872367055070807180070007221422569269440496698157432393309476683659916860373326280515428353043991380332458445745833586333716686842420181838872567244188205578113806465764777387555335050798847743516714574432421200501061048821382966011947667822061243229987820844862732687424106212071787424856371566396026488960923179070261350026284932901039384115364957054396285639189189619761116821791798441184432894595749601656586692874003295595758934358797286729435202644232128309525359548189231118011171172949461355211141654799219182465729625564145140867272789473252811046620736588068284091241392927374037984276962123978079949865811745918285279811652843134102394160888108493716342825545578545303444844098122568576889683333009715816243179521511408270029695967322390912356891086974346153811845950901376284800455510664581720318492849302333309352886181466650589282746622343224824823450827304032741718504701794485709943794923684559402963329560996733046476981556031222389630524570234805150780687531764170115880481911129604057921224697163818136809277909487849920189199221235626726750783523680334366242018297760491874089307983605428243312369288563869302269895768938266745870930633288347012725386749754590376552931108661253697365362491502332185396028949821576855653943488196403710780871909754582673982043852589641804995228294275178203797114536329433289932697485880308105434312996158017022208024744155138404688751570656104729085069424986916168061446026581286665410202100999750935246439541721321429275295158205257042054258787440071078485771394278268298557959224399880846894848786796197596659074632508986350316506365630897117809573806996711804508403690420673504673268270287568084456204959552336035072226697041936431157708226604969775707736582489354461251623611103615129657019480955071088611267095029150567177081565497730136407192900037280414881885484075416172512350753109751944036022983008949929301681534506884691430608560624399962000260447293488096555562197374399974880365355045151546014406062650013182421748242037157531290210525951484359022864165214871725585174834302481757078205755604493224554673737511013228243473871598525188388699881746325017010897230250755262817403635920729925256337309121753266704884346522117020393166750836507785356381458857599062794895609206002091259692578771565020359524580152973919517073493345004855929598147935286002269819230682131412090423841458364752655305734961457373593784892777214382385464994220960107712531272979166510226364932183772913930787638982453443852973782911333239567592634856536748117862314838762781491937041413045328405839644411033611613641031142068983996316612517833109452753320661995780456359915765959465839744214921570792490253456958071769478354986877423181176998228361910717635293007759229232772697611479054347137406167955682014080430191586356107101533419737085704952879995377745694175400416668991515219275387057439615584453246871576632764736926908960506852822769919372141383476096711002007914987134400707276211185831292354007790658122748250511066951582301309733429843358960682292338411109749506839085129052790521969958194844031888978618926364761183969090283834502590926041388336294349233505699833553575826818847998502066935530757696710231040221781649500698173838633842083609620541183104013218413905807770796519443732430949478661126939728164709102952304643963360694704472260771900795861193976280436738372797061875159176857247090075683811638182119698981121726774083132947238839063390202912405088415292450813643003267648483569915164057747172140596406615156643424374226014267846292797321775711612572736290170713668327403421968068545726162694621513425927746206039069840379851136540150166926798074933292037006222408571508234407819189384263026265787228801742550758089360480433881671951996417240707411280306798852979409360563900155156747262018710792909169961589281878185474002579749323432655809163403596310445984104081761565233075788710009764194057902308685467666705723023899591108660769065535257647157555206142901524600902705724030417497872601510854056001321761367095752147641294680090366483366246512982447861875758003025181548183064418391349227071798737377962602366596310727015032863395243916962988691879881127716957482659111477417669804915115619215198509691328806636483925258750841652808656129237798945750450860345358660054738110038198518241826678145325866334593061623903679504579745400451790941034091072163797485997658484524394228771058653019297627010121293603160313760037034866357811149745751138761785110028739978030945603849099376142969097313815507578197581174913405869136622903912878922898993640546399249975933522719588985778039114006934865754982492045302993949551700913286181595839299130604925142723331708152379907832297110969239723403614637006099285305931735079551451360611446240319165048068263789640798865497219529721753674121036456949218672869426258779407915041883455938834121789820185239894716416633276324593674573895102882461724371295676323146994227538692213947741995176736532510257835985953069240685496911382058740097107190088851986988370536428593024865675895681846238261741381718839744575904915422734353087685394669834406806730593226850125136878083681488353858297947830518035884807281836505473806768578664950324452993122089377968799622947669240504391955501112095019440012371074692793352859237091600175653255972442105617783976271976626513790722703437692532605982520000512553159947258255960798471230900451924756645896731897802318470208409105815096838526590104635500947054221563022927187095963243211266481447405107566720035275853875328120733605621229026480582544347084130472137989592300577708524932595810773321834270264468959817250774864490637454017668039398104586525768545437805410107421821514829564094832166212241146616037707133435265850055194793477530934001111005954322371587899380625237445708777789510646845180481378819347007850059085225548460970195513034129361156966820693785086240697473794704785817395370143063042114866527149925748488771042370039474122025137791086486832466483058256203800554589776913770659496890715352994545875073776497356349225161535265696236225920090115116478358735232076432716961431176171804493938908926158425213782173879286676179840836165462823724742702294302050039171812166113202572845568441761764922791783717466331948014216324965318144312811105971152864204555371794326601653532302532690635327157129048335998458419141474450392435293656119236820771212868988349181735404999829747675001560593395839289698513660449257431027289602479112329959455195862979827755617591314743825157507722993692396496727103027936162092797297945884617481030429439309552992841660763652726088090558796358684005188538375017280678305822036065165530259986843883379304144266477548712107175706130505744978452474454269009909564195673302934704426210555594530603604292828278435348538680164489822973052383098644091864750727303976353298676057377843525164408677076300403949256827532062511034434362383263181537745326368543103597269914887529529371615891803364033505591176471777162228206780032518555283229786425515568576266527738825097397589859827738261416828261085468179677663283872791955854780398502488058034409532961210196026704141340086978826116693968035748007654955763351748239774217836316722871661062709823689780406503422204714163159355619847421861634292117089157347841253389859325983973081222950919237345802755085911931914516395820445350120241560878370934860847895095628748192197810998103778583027818202992836529907368298993233723257549216706917609891303137914020458356622925291998638138606862143398153554077013862901089327725566415734687455901981374971344344788705483114791313304146046865559574147391884810944980980766862020673850294861012158671836086488051028457532959683358013548739383954980461530827385867146932705579758254694928502867223963105332950021300142971430644083967863166976780553920640878765156739668293053556632993190959311155039968873321676932710452931300963280513421360953668215021114417017590508494886104495151095475591441522168755827318259999680254630583767661617878036048198996551321041220950886023921276350624113457637426524989747594510279121844206171557754962320055305984312187124312075711799000079890946619538813742888504177069726723930803917773544575056372560348031909075764272983332987861791532706129731101362574523429273221416434517216776145875085876584395295614668567886390324616293139051262814763268734356047120455385719628715124095583368990931921564780602494892630350845665282748381924741116060562641622466603258355823795248907693490710448669417357310596535603706262381912729690844408138297243815650357189775949389381489271298414896045051358497156164237740646175400620019784300802017146498857622501624227824634920022897798278072540143685888424783800506679380726671739476250755973476452638852819719547325796882125941722749414224615387110400515509534470582493546543395658458867747922789809178260360927217975620379335573972482455824184357975325578857752897392345284002111213282900002272661021047736624175455481343802671267583952570810269789672310683251290936758926525288526837234998443905009850010361685342050351574612785686774254597040965169670136108455278037925327882984784335574896796471044251238772522731149225134851358202001238081312436952447321253830700226543105743937747644100162024253699827168529872206625515592499941075853559581662601408060068156265545255212908133044822803169622900020549358733578409813466950526041487293189652144764042260306292678663885816502878863490479313731805682807426090477996125017974689703916103378644622680436246599592234113384063174618331524462721923718315461233652273658821526257229350478567828808637250996875267761937207106415048957148665450108798975731035071792192169615065615916701992899625668492211449135995517302008192243940851440008013709035572585984501770476866977252405919707302924721446320280718371933859295708154396854572599842386263589153276377975220384420935228612738690270790019857240386501809040045061493322682016602881778381658236787400967953114436315067027090416528710032514470868731134757215475792080265609093795956145007424374404555425640785133348504737094784821976903588687854875646735966159623404083409881010486135020366229263589530595460300725644264201387665086182313610229445480846317391375449045303783433009992397300378556437765702569223637061322638859662102556814550494439002393163730630711147438150058093916724289176756457757286606802409522845688589650832927549050064005382030337787899811082427515393968278215772454998386442441862185436432931081962930585564220418430526101403266452166264600139020154890614162636401977722683078200732563419059170375048153158242415039884331494365790837595722936176727858878466172120972046586731953317442450101051295090563349325072917922757411856162251567811273531912247193465927050782041027630056496310624031127548940452036408190074268998304279293366857765066394213214068200657708748167436803023059338720638676712814895546977080149552752800990055768441960975627259163236457994573183448100840205398263893888286917187071768410102130605201399850714655533087236093015901646218944954902905575984407632617338378643855991486541297092264613786225594625589167568264578805142644943307347581983291960947743133898208493205355885873171510368481898725290924971439577482200738952472707730154772600876370541561601836213632342747981142276561870349698913310108919342005610686458441777228103017779657937494631716419279626146272744058360399061019056927898303518216122830729565565466603655523920305811163363511763404169759050952259070883030864867621955936968284335974502975053802358099431232601484026691763434167897900418071080571529381276688951438310517320930433463014096166424245963899662132499612271795627339780309898253520079929230450089414336857727000066721754695652922423163533716476157292300242307299577690924837067106452670816169540248055932404252227295199141154027416344393477065257769824103795836287679376934883343107676054262575740047446891206282509061729256615660046830710636014170435174736430483923406168752012580802396416632117504314611215785333689643417674662196896064927780634825896733202262600474170328129561112982640643403198031655980546929990836682453528532999574243394425508132754951025237224247456787900561681189602260140377795993541913200167224103932020409475430276467822945748646964948410911757181499150325779720619932234598534414538825971277365099075700217121671816593414885219679497303455992171906221398787152934033660468244581012818895811696872362036774710776376330106583127263187115904548599725910682937556591521057691216924479676498184558847455394670532248687912667187569548913909661207462167136244082626897384767128437860668221355147702015350334048390048941243805231968020375895212188135567667317079662087830960643639229731085666056114599004015233215380416211574018224373769620803235519052329339674849499979336495218513068031655145419916543239628886988714242064568873953164840204691584249471734997671824040278459223326224558576212545036279870914448647660901801142204171941998202624559986743396209762343900075237999444271202779244271295466533351104084567198801270062765238297723304319593896574198925328602675681967174176174234717341358403301500259323450177801595988906930277372110670692028991233914781326661244339527661114688755728005819357771876533334048942068605606740059694059621788848772743031048667439689097731042197198292550545724857625194789709547069233438919985007022083750101605138402218075827853939613806131551804714881144527614127124865836008954990882542361270737298775903797682650694864707107859571775370477432466285713214750152762292331489908200071972667595386006720671525191673398941747749584623543076764015527385895530202610379998568808683215577948633336205997205405999539021662008100745970821074119219893492732092072225037866990860153467135014559221534387411672603576425124040684969142259332323334690609120940569785658088960355629789693094405225722119099363389558915471602038928626035552939368344828586871378604272278185581554914927179912466442289670679615288109322333566897218841880430783918720895044756940079264237008674363787124856540815851269080039870538191387203898104780307748035753369372862011258941485395165948882885215699248688216991087832318829936265279678650940842097862225842781166301495808042688679764251586880202371920641955949656579757723229354862336915804929486124049392397371863691776558040065352605547747753147885075279186667972475435650624166646742051076016725048573493083048446800421294017432605568950571346946391325467392790581097692888369126956147881142973002510359131418416876722167615822113025788842047157059347277782847678036154210904893485806158351059659766681609238861190903537131182186709536469800575973792108963595985628924172699273136397484301936670225679862522106648401390412624172577492089541724070189291711309392188129978245977645763573862656324302731143903001468082218946658464010801956123612392158427921261981355600681526448849872436578421310659343574481048511684786008531392911101601969909439572193715899946799578611563430792586028921643514704633065775712686159541597482569160795560182686446870508152658112711903917853514737033937060194226567071840772891824779512674790413228020727878547531817313484353121553334330151910605878407424206025944111377918440568825778759670577674427862215087679537985974406324272142045083544455816182712607421309215089550721969404430189580603948131554110786817708054685917656053869543897810136852899769133677262587445139728664234316481156175863079949623246571008258844797994054759271089443174008913489372059109793537714967464069475429609516603627871176553127373789317417958064869772662188342541241745046184479143921694881320026751120081462290538381547540985996427381396889097649228251630812932036715513279960277408437320603377446648759794511246447345160061312752706004924618344177770248923205132665218580443262870623085499150007685733787472299000401934119740284731625164530308002091811070205976959723273644327314981840081869574110045249524123404494531757078523746009949404403087140346065994935705807783587246093434904207535755399037901824411177918967098041565778438951489512276701203233029800967013397151066363837612468488456600669646863981797231867171271528017959616991752487160383043671449969709197195923303578891599330526717225372372902203303321503191231553406812129681807952476237700866578894346588852970095302153233812612218125117026401923766123002326741719676920610818434813300345076949172885741947853129003371472504125317072054686389589899558952496859732377527208210683506778243682900057670797192976777038873450814847034194364683420424776358034644131409696665986381181573577084423065678465281173652519239274520797798443996105730737451645804575433889313144437057198756605625593658800988328750508666922576514728453597139990439206481138817211797735650890548453232780287824187524720536268733493748399936089534951617177504946472399030207536761912367585330469804484528835711688050898924079108819993075289915919349905345497659311330956193099229894121863254034360591369464922093763687393522398989708919861086984856596292584100980593267224420357850905362064762907272658630563531284322608042853764416637050902885574883604995034149302195490907764234294750521987331991094409030485712524514902410410112467161415516687167526318192962698425030545558566896503108515555051791823578483818817501859598369864478197035999673620065153124205295756101367789993110629196049485908854841043854567976850102000655749584540094284016777193019856474782627134047229330801027535582456516891698810341139360093798524409034993502484075412121035358189819218655072619776515783616930453107138542500430176519535945549182219489937652033749000672233785870809823244837139069605314998799633406136846988811599163896642423318863608048785731607039644430359201407143204246148444142319176395452829569220282068464496573055445928728902154854583732694702533421031696788745448754460935044505921545298009501370249722624949150713999203194641738039131059905191184789724907327062608816472129725421307534326476193154751031636412479441167080987755886014479958810482658353330835247380415521549213540358637044532433126571430385846861961047346081296207243245472373324413445871428926781156601305430147177606411322139002646172446796199598000029472696066917176409195210391674895049218902253497225569270893691443449467191053817340918161629257181435667807560098313327658942087275451241157404305119319151093740141220133645398465576707515300183161385742650633542597579734870271589965246130777829169662220841494692552536716249478796555492547611047523482082807213166714703232036543632927584773085285804359691933867014356245826352490487792035734462714913214203035673209126099350828331902749780999470379095683835198665988170355243589715661335761332525422540116147775136573988622912819652640850670371843226566227447914143812168318178657997596178914943317845592212093246965212762263231628257926784256739081728959269928156635781710692061344471623783134989976457069463695578118759871937501055356727937904626687892778593880787003522113245672141702053503379123888507840416956145284156782343646682685241372665460559275727072295487968658663904971286565967720055582174481341349569831975474604271373770979271378936790427650958497402312033496073823504015480327135137790770291251774953794252521200121079514399843228092898408918441105470573710385265160491277524910237120541161216267073920206785499921846682353063015335379115773309209359586409072846100738990907518439235362584259237906862407731839214612157320237871262072838007591630516539808176004363074178800741924877000903686897518714751486671474923892803219996855589538497892628867363136808829325550916822836843266513433688424416561739610525727924402163068303516298479152574401338120299799004527353537579822845507918352535704687467735615416193377270999240260601723092276225462043033682595304810989362091329674647955556038117995469293709926498559411943946270827076261833537766192948659492069888016505874576773462801072489260347456533466572847714223620420982402206291116018454890773501208387332144164264160052670127711300957108898551994718000472848026455093911734861577006583162328746701667507788043665226980060691127469664511718646278048833317074074706085504320453917493767402843435574491091969720682317065552024080744162350336490422081393099231725788374832549767920936227091835983715494468861917300303454561197457900915177277262565952346493496209844539991045829946426304022629416107580637841756217161458886914158590787998280438039868654920893389197301114244061495041507856355778699604320196016046472578638811007573521864738097012970526121956658839498254643029877146909666587981247842241682435053216622753039949687486430485810027403083679468065691880228840464502512812099339401566569672389953100831101754672016471963140643573898761044071379505508183453180705336570958598379232756727552255499809798949196510447444597242144058349999181814179021847979981681992080397412671346776332142126961270358482272660491312423980941031984030171220077882919334581372423033316757421927818302247841958782646450815910468256319409342233984178681206376689491841996683394898400139863919524523834886353795278787169634452757383266419790323150265389644340208337492471620097066649115802343744178509161999008445753776054628921123016982527712860861101408571391094509670039445330634971133723065490538060411039094827919365372718336988949469327593138214823417019977873241456158476925720044836721458252776518256443696116947710239974910480165867703495301922148481128421755547954726025699483249905199448692401093526436370119563719319338395601352143305515092464173325722690204505356011519713377739462744417948860205127374232604482140790169670307211796584598567501385277026578955122325113832257576603664372659084389756643122577414087097399883358378990931241823768464837285791472361022525663148543508645005583398151371783495858166417752149115628519913577790665509576501256487682980776767017916693752913013867342769568970421100759197556853613591112219759681024850820541063213232060760842049806539067879095622301694097698760582656991827027555878910941480179596322369799483551599462941540192673613329223100335403734053041128529038203063398459956196362039551435490862285253250509836039862343954786386398032692489066255433413059734160012750847214064778549659065338498903582099398592655168377899779272318039651675844437838764965392972065460140644625958664045510122978502809945073308012226924696364328982126166054145519529606289677389242158132728700457793613714048349707157542359225376790136058930352314752120969086957721324712262969431251387201777153881264326588514112710563081086474169308857500494916272651983787889091732151562019867679460035547929159868673890090134618715294785295522123289451797133360910266844270183395445469140236096497203536627489549406972046207725529888129409714462959043929258961232783155648398256211335602726670351181648107740229559114886802624614468515384612525951798862914184920961725604539268486551392842656292482774233609488479625370457181925449903407660765770467280343257136860868013762190357782481172349517621823762773493222819746244325137161857769206059021998636000302778638169192332311365246314455313358235100168901288879466696980877387227926971017685181658468890796290623330519171640696199150765176038060933969444565433052799911538859718097153904311528895492218918056807428081995832876677500958906956083482206551036724212108620492268825232819021623739223923752945285919841781050912538809635900693979998942967503529881797328676308395690245344539644373584687765640084280030147824421851790562680083606698563998395128063352628431188884548896210666473550136921802171608220321428490770519572482219679221073995702215610600980988511958373545582500861247071473786670104487467167476201744278875059693063858661527380418763675257787501459730694474008302694452754508038247115930265101092937019263203909485526276406902211699527465956089621044486015159820704119465917295610814577450774325726483507283053819262048764932778821961458352681594521576510028333325462959333612034386669172272382323031714426695353709534045432662322669937860648920963618874352742649173055749131629127967596671362532364459866565332087097003802562900441260835625433281897830948703326832752627267632724029809793282275450272245829125960089563805754481512932618247126687192699043548513073942060432345721168058470381393957653356423828243808300528315418394659924061528181485334288977302412983910189968466468428311362738097518652477335223967769240606925190957665721600852283548103907832921680186453863883025822925455742094876433450875689441009327458228117702314272740745128947700169517402207689398964646107841855597440036462882030026226448546923122495426512063562271755981498935694259771786517361502225746746274147240602133662817273037183379268388000004118717058561999040703375532690661542024132827080007884891060634983520309242884196605826694852333609998324693173834364067349200950813367070055615226064564704951769185390812350636470860721591231198844566462213210609051332397510126500787256224932736099242232652095600983181090382864747056383357766931566149584867469332340364569499227390877844153049563839587322646063304892666199187769030459956206715861474176302566456042020464357291100819812330044981766361832913596259038419058399954334003439792541334696734828223907473042149903998111871238614716550562746413951126219829163741250709748226800416738935218952464428545709478381874998161066493896071577880739044652290761199124254290213239102920650978098680933571910747324613894875254803651533081250510679905162895251311323220346853161449497815685541752817386259778154980249794835871591089025007655271797884617416489365620214664351387452583355567407639306785302204416916988405511279615617071265174789822645334454426455078831053700750215260802503062524631246564017691712063143836033890550684191561062451454026178528439714175087596192640727292325614151481019627141902133874236123293173445867928873463295225756726518625274843063339410234973400374501119857035439108307149160207179163991645629703043927606989230548147147747784556746087191006784309842976876105141867635506302220498031738031951647268793920361153193725000966762471012702116665764721493244284631289271586017574955110278407225619698779506436343518169278386659564096557431672943328277590897021310601889283184422791754176919285730655093428693914051918900879040128735114489366795103108617136957155407935092367715601815948985816205921183160348912874390599641708757806005381660876733448355938522297353898039874425914928302538995452209391522341704001988376126404031950299515874469237290007697365095155951590692089875363586924242546950808925178790454985370526075354813216819301785367589473699371068753105909073361459026400517550702235128206407273266681888635667053970704910677601116581318847924231525674110808839576149536496162480792657351331424369174107748434849011490898518284272107897510952357452097210406255338956179015126479544225504979248331045037996691180081615256157943114699130605761360485661372181949103368952635355607530812993944646940401748566182558469046999366614812575825949113325255940812131877493167810110005553300846496369423571874017630641497945281770738917072149046715764107397102465112085228884125916168229317792023301043862551886502892729268129652576653473286583360917620257740628554683497126461251354930621483370450377631759135724221739857286908946624749424931213876598252242664937045916913298202884861470404938280904762031282574407303840402814661689887820348349407778909930059721973817354743956036773483424070802717360764368188529566588351054448366053974672154950353624708179504735880798361652275682167449888189745102474879182542569969539587405873485767426948665306918291737663840374055311763025988019699213097808871589802299833565230106511972872994376530314975530619919706687189923171331702204690228084939670201551746398933785101657619562393051929391525251158023368990846550134054734650758821173126131871819477203842071229599512770902196509248387025529517383464555831380089799070336576839882500318079246989494521146233406930084400565782210436940454279283831837947739245903164115538440434625664533788923143642693572526033466847872478819747399675359779552367374702827283516635008150049769241237627829018212863074091998994205261691856102106079008016476373528894881044680301523456632278911242804495454787042243503173451684723692526282123603982567587616129181568455539787269506713285069805268642982778229124369336258568542484809410089215939471317425724336336451157882160766158093021323750724160873733973142704963520059094767545902112691403508381685355484138451033057083535570564123783642454973212275490906776400649263518815269326025648829963738825636823927910396708865809276921744907486672159620194038637055954917077175804861924345472917221096462052412404108907712749710664931617214136377054068134715579734856828378764662228392166397495115043761964111352088359948445949932205072960175289278733325263850356051331429855670530374946613208798237051503681685571583335250866389405337666332224926497974244231086958158436065701305376414094065816442463323161127583039282600758882223073125549047299754030468299544482334381394121368693826676029797227768496783709022667535473512296098157175561685188733659414158608955179887123602699807092995828863217298682311047280943893481823606416791534323598412063688554288998692362807517283695465260261615399023283234527448095395050712334679445868519144786098330574134365196534206919936782387264046612926282867574322181178477359992181299514434993018733520695329646441830119775641253517271603074369645462577606377138239797298660943036200579796888894305536250927050461157034322434437066697474187044777785514945696448656329910149183834693535571845682251975631917076995838205361551490689062462420185905024922068487574588951675763277181152680341562846651086798983159529642923731896832599973517598932869593917037712010904335555711585659454259591697594618234825570883440242445693099245025988344989727320212974915348110545700148831466657229801345065924576786359764726967088060928520756749750629222380980515949925809110163815792423752741643559494191064913012156047565210628398289115963399503713389909558823817132268299057158869162367646987452070880775022802328846269301059389288924376903033544185923925115222068813540242191969758023647550063475910893228667104837901302117322533648597845877560400175460349959038962375616151798931418182331081776335287590376966613149743166812441634811504496959435870614624076639278107591730975377781063002768228489114759928380842370550530853895972841740559375476016416882725128663755321045338405227782514298362518390965076250881685607068449699446283757912957627055142931717104874075685585546199330691333376376985305736834561527579901082945058988923509999838608596731287731476149315744009789004686358301234486468740866240831875482338802431623917334563021251045889712587711145425820409572003497207808813317719302036542618991062899294074939866179270268135421043013066825942174511242608874268183098747880610276784149541840633900245269735355317256400741355119056015568064981928929336483631938691243672092449955677098200707361982495842861163909405498775500943966267319784293967011784630960764997642000355590080210461609277614576666762610852489544357303435826150126782849630278820619157492798128600629713076091688375213000142509960617621151056774980174774660474656938678545967424708769899951821891729549872986905034121063209232401697105298043264699687970075199676210547752588464235113337023657052799478155289878317416990423704552132213318616803908736301632705209697704323305648238375405199157005893779130295316612192580163527243927224202969024871805267139970642922961035279003890287841857847054837913316638063308963843440048117665115025432804936149810448357889192503348347304365354179313272241914884639682230164179506218459517752058659268922177877571399313674268409468362466871734723180420127086869608869901796320453095303471438251767091060062370054869197293954623087306618453685178394468425661160852531560712754872907444473524366859530565968055380307482926592424215458612928659895722601581552983037769710224574040733701748925171049271543476465482678537050825738303560599097387622755410408122923485513123414917305125205888626550138557407910461059147750662347143155754575744804081911845002458356678836546983001456543213367064812609453098046335545374332805991154571299576133953096503755807535719958628875348772871143591093953098432338790139850168901793185324641744364510955113266792102836686048756463373577644334892568733032534271636149568193073744458393410710489931958163714975633860273038851390033286705997723814177486793686577403111478103935525951843032720261734950154188197866471357323573158312409466535620875879509845822306915060705106690615713957321387756402103885299931890806865927521224212215921683431844772844980035689449544949770593495413064172508810344397500284406224220603938697842997782733518499006103108690979591004548208439432145763949208458001557189825723125731380266530659825836567203687458242072218226836129707692425134393801348656692331883431614544363684534263327974484313208074642939850337284218238632509523114069810241619838542955592639816151761192187311275863692867917538995000043156423017497058916071085274662038474165937298692291271469590940987265268065788210534029733451751774945504095734852420439713321144301496194617912170927127322686495197547056410795192767137879392105066968436785266319912772330739627333074893941710560103011689445381651469630379720037113845525835531564598727417990974903026611140232728649923588364720112577058583051932596816262614604174615698597437177930952282649079249318238663320475449642830696637857042311101534470410064376872624829447007720768197376438629769853786179248878523954191422825316488456311386649606275581199685097143899640911585882194331926264274591482834011982447148466893163173563143204669853615804696380607568396050600820487928934527813159788317052254180125798955166625865620910115540743656319786027721571158676002123552563987035966858531287031925626209109097498572589132014807631572224156082354109310727388821498721081676188317859485522662280270038095825669610904313047261601793202863604936397460930166749714346748067370980459995057254039108445054162158203828073352925602810503898581977348146853528377374219488232890074226395519380243193680869673141937689528330436604772294301513835024004297834140639969950779434813835254701295129074973052008507242604236769808679592937115108173962977785198986921198976703081600884890402815869505703558630705191910554395966851686571598963555156980877634417734321808093032949106489075631252862164839977537389080699057252643477088687576069895874568544107198354175751323401103155483072672582889665865808882884435532370178073131199419290173686862948125500089241641688373133917410552587000168699410407239489876631563167658987367965496175933639821503424173850521802627393045184501461097457800028664062719464170297157310051435563134281999873632071582613905019411019016809694985451470576866553499853707453290904667621000715286492215358741037932715765180644533782419030657488950629659972727756089925676016645637184976549303698315641918595515908389902186363935852737544914660562821535721763987429546640700499582041146920750206439697917834290851177476164554853902411624095257759359335757351221349389685165243404412203723038304845415523395617457655046323722465411454429800642096267791739803122181342938612980014358978773575769002695524841946254959964244469000666391188421789544715423290592884984245647412513866749051178515979060597562221344706882247755768253725902622596438891049547922571668573102821851266591804945521324439798498721362508396461074904466475736021113073043874585105597502131042093532504416223883277098992066865739736452881003155604132289253540148969000594994430594195650817086026796422971688884398326626693048646096321069201703579119583024052469858580562438399253205686222398210708181389518828384148472318090655213755954543015040878128794575763109493920191028996354600677578318149181526719218362960899639525178767634631346380031335922106053393573264295009782572148488089511303209121862406662487275993040504979603220132404283792657398770877555537565236823783391155912317807522034979900670529023648306829249995934057880416975335481141179244147761968960779925987404886812184721261654300685142870583885290684408431927349517043474623929787030986493962379710239480049260679387775775264166974590699350680983933981640021068412380951040747368705560911985459317908467027477433070439541771426912213342012192666761029645846478239012861917856842310099945617412316077265929713464663466280225967786456279654802466988495931270038682116264521720519314338470490077521562909233294169320396069488109970639724394701021250497244823394787095655871064692051647338730124114097947787095445790952025470497368623286181355068375388588886601440942966543271013840267132563317835893949712787246778298874438903113706743141575325409079732379511994516258842174349729531893042681879030780729529088040718103004725086056506891269174627278930729317061815944563834272526994250240362972787248701943335252765250870287839010601013730407413221330426804470510137885109263969347414683141047582897048556604102500916988680693229891745899683851229777989377144258236530744418150296399579636829417517483144098134577725291558963691858586507333991976488365718895065911053491007559555970103306415405015436030453595946520530583222926824908531186671599409641447196752901443322906257519087370251224765584842445225864012970237386353837548508351084116378524376878171257576905150487349365546953256908945406833312315155580590490752232039265265215559239776298849928049248610520399283005351145506622957590589085170459435979779123652920060013234675594084215493852437444661064345271345121955688101473776073938098010795387219792676200041881853753386288735150703283619087198401510075318735390569371776635878452651621535211833239796191487284000613241506142825744127952578190861773705335479493558008799199151848875849511161057450280037075720915688367400271811791859668670318499761381544787784188014170724553951849469352285826546974504412231419670277692828051342301412069379931259158373739515152822661877938762336147698574044243371844868801704345346597553997235196892744556974250373787494482949877061962405004697448176739074929711815018822338624828003095785392437841070537879187367063528468478415665839418780780777402511600466050828796945161221725367019668549309633967231558571514529306102331364531630254369651018236025144644582958262718355824798770415806326462025742609443142896041682179674304122055862633937587594174460889657945421531977258020306367807063094801014678274562022893210789338934469982480697725049915947801335032321255975885396105984987906987278487393131683603687587545566311125087139978315955154077686348121056371587019436581710944265714720526484338049326439481234810416289421921726187147713095757990083076785456799015957708405847683361597037615645049815579343754518272828660622583726537404105058438551043059827064740620604155055947375849691930210346800229377671334821896072760355290628028850148643493605286273570622375155100086402943545722324540927008526716543979381104596910149643231255879953134073379274447396230479402728646398260323014022894119414615716120861488701811621372409348328240821088321957094381748448699442784921351845378440972159445424476983094375833967776888191979571240317493549012086123409731420314200472200996790957129507694263070435843596764061099341573875460018094191041907625977689197796749497232851693057204085838538926209204713595782135674553130521655799133490572590513415576274896024053532195173457432745681733665134387701329353285640159611557121130214486955721491693453598873495305480562926157236380868639584478749151143240154519121638850478671907096608656730471079397504802564345238355831127957099302555461434439408180751981044370867134478537600207091984478557961034005960181120411404640067819698052745586456678210174830373952470905359619169579862040933481308217637259816172512938575275997683838760998772757126615986263217910069588804348432170146812832693081788105005520529473357048620756838055015938229206710102027524060517218554892192575147536559884775530358590896929909623680986210726454423955218687141946673816666052677166945595680177013450593629151460526575825274736927566376725707274684268998179041671451498682868756049824123869906967125081859518059292063043935297279508652894121045359423836064545930096213001123129348727897423987876128936222240154158263822577365544981580242690183001990059769034371403440000710755992814385612922475020061958937716564737149095127441399883605779387412141886109006995801806945881917665447277877290774593591683219884110831936571259534243565254846790969059230160420560080203192114854639239325698470703944949234232180332748943860762782673914809535986699104574902580286654431983768136630480754118527704060474744269618440723922958177562701900857114510126011537576589320075352152586109856666857668412589942447576353282641704554378466864541767951796920514726074143393170320018399703323390828000046743645268000601766716126611312721073573497310428662401557933944602055618682788347924986803870535940632138882367290298369639001740457319044560456550046532561463925302352212074937068850224896408169630697725389782096166040035294616990810189003563283300933752851728888588328752278367660020574052442558738538970906151874442799902059948149484968377126588956463571559363091325403129113133022358873157936780317472730958692804610820129503137126226924184401959640065013126867458003484687141619545777897401268251766557314564248465305742634800609191217832875391413141022330133861519965671567215256647721288700296483294795092522509073268481866509812815678467600476987196984002982726767285288643478762584964200936727678804292696633578429579901814001923466293250438978887996796087523222165646619119116589818485968980909061208812296061392441841628319530198982705991472816353344683348368745741509446412284619619256405850390040843796100010205183810142906313945125561725415726435961187832006098599619927465051094918942805604172313198046914449228887921486764094676060448529158165615352568253096624855932652411069745147002717225538969262403322032922824800059840580908056789443003906215518142460487619707627444708440504539521616677780350836007205630280873753713277017724027737940508550097393055962051435597217702081498433315489226373512287291970508705663736477750429808109766411952061440694180080132209189301385771804656093108605230386376162341513328776526845761223786067570442895068554820679435345049586112775640682755950638849062502650827386713639061231809864532831374816956862873670144458349476870964114609485897784337836168639272689523521276093954745711287237497434554624134889912219508848321999644318412535642321344720949456198613032442755212613362265551938631944306135457407721627489337134109812604766184479079682237178308627785416756591627169339847349965906070936551390323488040643210611340675395360712435392481576084359231380183647159991229402066893809165558610398143405124503908551571940973019090491437550367145194301076507657773129173348647234951299575304482591346448763259323784439851083342906373480461775343247607110654134217738538749232192604946278564207491341762950326086454322126304153889252230516377347332478482346344317718185296091230401006748097605305043122791594874479119082785326735110450917706179646254401433646842397316918348969791321765963804192016043378069371423900424626691746149237683786681555800939560834106971051719789491172341269461512031788265494418534901189137017173890676118993275862125027282434945946311231431473840674520265036975274483334206602516016754610014165825713733814278024028649269106005820468856884364418859922392949418854221084465475753639973335593314350766238122416808373654961600799397359011131658638384922844517192807098986838409205440489279802362536381606450745516722019014335794301946221523309205947088280304368912007915925060856792434195674775195244961238570721289071027827927809695573602074735851485261238622830331826367703814286804086081864649249705854582358455854977299201601934839589022318619263059549313360243908409585175688720827920775121692295014946031746530586484202995688345548081656677998301820985782765866562319230365397251868517885543261149497262306088564001364762382228495766981801174481550520149488794718404186464917528121301926843342995438026382700828181610686468503504144549917398535270042781476751998412261335979726093096816018163322279362167873420417788178730238167473783364611553369003072606223357566944381835256436111012027532875972898440868794718734769417351878159342340305712542888151761985026764494465089889429588979315514418647410580024039492217169678333353540638646791433396921134941509881703123449286317630408741444010873900757437477550295170681778912010264957943910975543550988229103355755411968779750257174931011773692009970902021342187518816363890958787954485196038549808287903295670286224289965976604903018356421231545475544849025977094640412758156369776983302590817532610114176738150303891454421759250637547699687920791007259054578771972954702367148757267761276359333022677182291996376825850411311065866100298399518477390065682447608262538686725225974300292432631061405813209542480563540397372914637108408363505680532425524584483277940887279688940019656857080997846138787515729824196847513433824880704026877707043703929041920602718130582419713486446693447208084043264575941744722157604652896366510123262845042891858541493161958793467284790572692232425544988351793489796869415722736428885606765052969062949089388117691765977609949199581081516168491591523400213867077538510813307945784676320030180671903159340820447502878816721889573645494009735163131505590036524977184234657878270020394108881711706149822516178472140249382347887149411396031042780795982560928499577385699788814941565901700563760496581510292145517556762983060167620287622300435726911799021103215697735393862860380397791783505577123191213371588998647787456540232841203625846987072095845290773788134007615748419151639043368314725947441128699674558546994710469341975769914441602917801774366640211893883915116945565587271343358405310881290784885290719469949721008000612549297444755058763417879908524188457977936037833847227717484159910321033239886283617101129483264652213344654522611940230442694293228388759633638216055679550177599165150220842423675953335093366898325326636774782085011392768625646585205949402694607226073410297681858520689768467555710213724358321154129448065603914176600244378073077304220967692561530358341018833910992352619591578968275017456197292443270745121112598104513088350203737255181570989847321841496342860474288597923748004550104398125253702100145456465542272824717097983495870431878068859498799802027021046107999043141621530863376814011077765553258191056653168074928111855173848988745442380359761102868873011819348489855271440276678403635324485243248020895923541606898011974233227124493312939253848198990253006507047163075130474376119532059490702150679700731503301885273615237758740725282052947365789561696610817917170051817642333204767249413631300061066354203188118544733940439077002206571428517603071362905797840886357059960131121787432076643794244707223465299241769744377984892642504772322334952857829810429928501804476668250380814485099606780493821196850999626960927218749907229692953247216504972816816035328893360138519251660984422246713019133232141354920566312281388001164950074876385363830834247360047073081960222508505972211048870958879908864156136083535270286375941795005854421050410604778231906778567645712955291186361094031528373059641568992498268728265635738865077686927808879005145207932080571905472509165772868628092451586777913815336476288153513170123572757548463447422490184402103054120794393735940534642099824871501836043369536781233903218157773032795083665120188121350887145359265801903717388564437993116725277490654756932711684499499809448260542144449839533332916855072485879040374281157869133060659690998101277875944618210574593570039128681848169116199068529485293511893899067770786909857835985949342197984632170735366836192476259328366515736310358107320609036414097047847689837272404110130339747073621047905827743240218777398847452922580519752459567179122518533656347148303723404651580269927581163051966625839929592364448050913753969493918465435315607644108298208519838954286662343186688531648763265460339879771052432472175271949733817888944651849210238216444368868677291725024315495611341732269800694608213602299670356899924032763726481275914751688059168703285359964620980270993597712468032522666021113724465653338976990986458151571433645064105944916365247062994200646817183929008038673410838370616144562068665966556073163137406186696839764463524176141703490106854746160964510874815685983174134812397866558524426047660429871512607432686748337060272093859907670227276435540646588747630924232475548362402572735719823777241045867542069852011127666303251347253846476788142395102556354692241647158476216147839374902457712704213162302487227655617116461470508113328031398787251061239764746939038118988700422408862097782383016836200113298273629480013856517937056037480967924846156118476500679953591233078232768545736281212878259341042695640545157398922350630637750760134359845962991519554404951515331304602540629821142706055488984318575783530787026354087528779141407353370927900455632908938307214729514713599940540640697367256380997021018951105581367775203206125840684209178354305395142596338559500727479076851175077501975186171649312400844048327641334809515097022157612416202449711451622620806400973037676354482192293972530821122317085285625987817686959423937129959181569327103695082061155364418778358572058638984540101818605750657138044237908804280770336903735760189055907718972518612674386837369354619544173333515693927353733894169762176744133273823429987100907412605174231068020259872139667841392206269857876752155869288273762788898933795184504892727560309525220790556700031228038243680433415040722087110439726137730922835751701906664651136695838759589440871511098371048622243404275570952526196055954899822687554935748864485925094765522311912030529830221861891643468032375020066265358908764327709683059229973747362786346487917255558267021557881043436256345569428208519853279242058618401163573515329279401552673867288402145336704979540234827396975508471341190791076133279037325111623755144246846237262298445385203742382408399542111586555667200317919368051088859023482156104713010391893296101286120866026022184764890542379528255051204879721283735662464010992489698862835344219933224364265454357510332991977370604098582827344600639211496458095731479851765115301878328069609681500756924188316217555892142384904417115404679639297890496883478730278062525952879342581505581891342134839571905749227736680471207225879417673330429534558948898142242999662003622845020999773974228684206724427898373392759888171332725069806764321854506354860134237296433479505689458964748116559322262157006854165333839020110029643577236450223909196642797539127823235887275320543176011000098773018705682029130850867069562272502259741562078085979635818750747022150744998122916703538678958504697895727140737069905763850557664809487268682473245026622765348558907660470466161394422305837844694093329403260967682736920851486009123058094076825103051382960645868274153791986679563777091950229576066278218495340433536531827770538077273040846807499304320982810664545912410815863847186836243957405524630955659902276465793296081096882086084476849667653084247845754142206983409395290255448990129334354829918653969795833338802988550033070689167420938056646408930912753971489264656906320135101350975633282549961550487750276786821046473960783823141411467260707067362254930067569228526169291163884177573284947430186209826408445391115136318055909555766462854308138722479385813942756627695103939195929441393184553984202383224109387436691954487458569003765607843003568228034175551288609808864826500490137527338166203414696758540972463984973533786204421997345564662981320842405737254056068124967440307689966049068959527124860819027660159947435931378382460121317874589263267401682379191246018507735219861080096638493175542367907626679946194166546155043578085606511430898955446948241488313971383122031167810252632784890804526233004725933767739102190625487237159446511436505121244584993750550966892554231348025567974390642480759809384639234903491085698365375456683085413389318576138119029574443240918026640283971736883099956393411298504211412707017892170027300283053490749632727363416170307119403912626842939080395027795058674480434520753512517644151626974549425320628057834031786046856695166022190651966061043511579460404929573560040942687423537463713586441144031299347735240222903368689131464147999562058357851991109276484678888268762089976153872716368771137932535464311161822740580384431186721734561915379564296048814700138265403856441480548698005624859186971707323333073827840040781160058160632480359704673166566479170679409348471303747464637918039938224344030865126761174313486324955125765845421199625212764644887694224148013038566667452309391932626048324129841886548868556746229798413301778281517346511654142232000549212117028405284870986523580812298488699916397786049497992557968006290278487918327412062347247637691018398600877602540952981457943639154875158322355033519983944650829662630908874631009122707912028765095735480644444269840004751745452953086353227559059239626561902243092053731031408581753933003340718436587926806899442086678470065899247787003654149626022159525669588165636101380848327584826662800911149744127955081937407549494301803806251635082082516030965477724498054135839881354175591665753980984992709744915265362953874049087057509557146494750172068552086510669411044636875815991027261895014416969040801320333868394506649623227342337345872872412843411953749834029832185174164154860796902634472876449604481694733444221012244171336593563864889978090400311056652492888514430402675482305592191956507955206408955576505123939587283208229280656251857846010719224606244795170638844253160138121003781829216752518997561318225928690040491263416977622400855679792010481487230673107845415918806206265199336803148492953987783263557730739507050557306237044581978965404843457014717405879121049276400048270791967259011224977197507583630041341292778286159234353134707096760562079549071887589580163857455996024361711863258644089696678949642042181512914508908359369610407031682305239885933656268616502929493585639389519313478218600910865595865154644320326215388907923359581816189634918800010186440532917965690801916182824305645558310660737766733435338435080815869371082972533164118779594864174615355056422579487269241694980170215526364694181070598010157677365868978884730645877631341110922981070675533015426666613523696994525160028967055543654329876860000909599873981253744758182522791888115591779701109192534526053326375735752265724407386022226811292652262625927971627434064784223611638923300340204878996810656081270722467812098700826743916159521810021707836514751231672596650338497582159625589922439165280779218294271939094754772212660864539267028837833447318683986260857245640737643167712347268336936970109548204118330227306324723017677453341601305456225687431794547312889085674409978544512759953327474730007110737688550609318465448224074105259459575986059838272483679626810348582759010401212576432245175664183344437949307887639804387432712522061528705031755905188847706562969228428393682282278372848323034619013148211670256363078772763705595545130146102124747983380175180678539911175398790211162432360769197483826642299271069956868797347623750023706606294268744745153217513500851430586920885445368069963015674205688157136381204766847722025025043332778635786122563516418661679846368587884831334962912206060661040785550922756242821493950133377775614385468005828446850284575667882736228813296028619554020063066086347594311156899194082646351160121141636652164423944408425868675958853751940841349766080851057806064603157781949871576109127240163595082965395200781161620794482504376412262424116670992901585516443828032315977701045421233769097575846951600243591277459241318792568451034042216782094920665118029867583626063820397789660931889498147193666259405832830421930449349608986937251546982012549008213187751269445463440455296202570591615115432661940931159991996869796519025255160160982807618843599210347449698467243662853391327168929520515291571525996815817448295210884739658880343803788875770414808503458350198665820134653531339252163678894703450713354035962031058740326084180628868351204353577870174385922215017338173201181425507501063979075108516280952469460075182652603669621727362978667252259319526599025206704134396922606953749047394619015448526235464780973486588884260442656564803585697396056117697207971500083613475639692094354399551818834624850787465100047661174806745767639066564893733358191445957278069958040567889062301096825062552446119316790314042968628193352248020160769964968314040973168571761127661032896707585161332918897031087203567009720306312377734619260059656812468432639147613398246502850659389175794823912965698222548694775702801436270937789448531358493374969539048931858802080074262304278889482496934303972636214131083979420967595612370060920529544760807575552479372894883968498266574086939927854382060713838643678961806637570767856065358844187523624086315940614232218851956339328021218362659369263330795703913525427565849992398171444964086541733567586480901978183089313371876638731423006935222494398534327123885535957037405433369630767805345081915189735820070191115115109380487946540688130237774623892537198113240202986066233516352211951762895832399092764207323883378786897491780836912216381495085576810263803221355437578616364025870520219653437713343583044704905142919863169709040927912416198399381234303058039561465970663408976794516984428075860840648278264292635456326539009412406969610995308347370670476327329351396725450620011803215616807259366117815426711101760138664169288625908757916188128317997987421047860660338052671353224392350667920901920443851027595948361580096332312993606806451086986582263965943886634511398895591036568873305676669063587702786752422987257223673851234364369920759194519148525064272684639642990963665202380724929627478034889412771580141468064031427591746224437469815903053341257839150930987722268492297035774162293779426731384376839144999853506092590287240901632798849283646414239392469518654071906312475745606588145770830667134826211398243518367650967498690004563237604423964709767156460658493154093568633075819718285549470802793486123462967381038240559750516698240315748984922742016172243696602650349743136405047986614875085381265095683435646570252798672512069460745949990718833147225366407271202181634454599310906454058014588319201251674646135542890720148579301265710809138620932609055366199673700747607517745155511022446213033538153736570888675895599202647152241313869804484802367918199264854630351338868243106331315360376866901348634025892371740413070946093717318631774515526664391534230657563301063902498836898117889492114894024012881146142310249183103205804718546558132331452779829418960353371156260649845947070817184158819167838408116599374896999776051728178874828521156172083198399946209066776609869472909684540003940700871066713477787512532871924287240286394754535509967452176227719037273948880109877147464262151855460195383456259827107558666631458524476884230048695819133500594831966648728004437770609605947827558305053703235875446790956135742056296151787099628847759982399252422870800607802380947213525581652874768460425419891974282688631778353204959654943487155909849542524607873233929084824462903077651482576087461798021631522818576341279418410134883160015357916375210741675848762887220628359357945709127174022333767010992720482727214886318138504365842234416726516200352282369152321963896106127406697056291653445968871383488085003540838727601472848096281847768938785083129072537462901386880653427258454448763887202810985220213928608221058894272734744949248836393492330308423745469766940286932136103025788107180965264291665294879372394989721626327074588952712199256721965523238303497541892125379825265252424441815109105058374459010821853224416467086451997207035326644637294751154803632959513835030451099687608733440522915728820208517958073229423357899602309283111712579475006324690996454361401957087385512366732922548553116289231579302311644154427395703015479913634475447209111516843006689165406742889031418476670775961281914752511286932640934225961575369443119856720035337065026353065671725304246887503266096415152342585898450817056704639469147695064899148778371795920034802603494735788051710765475309689603168881649931530842571471281778102155576192244516563692969535651740702958741825783420153507283370316086357804908453383096576399473945152570317337926306407374837824944283034683567364831233142805914725529772948931115070052458315580889510052881908856141534564012016869927172228175082082789546148199888977691407163891767083905377951683780831371827685795315277184520301963269358660257011745803572657837748893761681331795661924016002194945670671609980486002093922618008909747576003068365299605490293090043061693988267374674590609571589385643764907539981620313536760776938306518171385261522850194210844359707424831556180920834033304011681363618749828141180890997565585440980816394531513000987823097801257254631230685600721223695973870541894540383846510146519320579883437975463917391443946879393584694882066618780574070993530085751333849615527499588015551772203709395220863770115102910533700440266583310102035977899304722355923277831273917375362227908722323152411271459118001732827851507949376242119780216507389235662305090430750732732433000928368771313353382620451355898544643024637219364784334167757217768795863180130007882681299290900187578063726588640813814624221410886349351809142140585296568961405740545458805118893166613079128457725175276501622379129906269941669353545489462147617645990939324695507155870866784328592391936326956775328996546796099468295391007764196345339186670587009782583669015719497367086424063632719985771459507152113384263466929560002187238253386181001664368053310535206964553447418789826423065537448513567515708431480900260985429093805147945473610532278026732741474744722824775913683884394766710584131938168476808172593801401451032410521901583793992384795236650642358571198800467709902532128548209480119234020619133239450613136019340730895243957690917550559581584279534333332104275704095387418135889262983513876380516283921004853719666662999094114304245295555824471667966136306110453226452853390795197070140277091069164148299709097306309238253803295829242933427894437103656262636519999527461032475489050643671366167789113030839106038484317470642650560206824190285965286693249998583251480183225272681751846773614609742431394878382023479112692927944932420436536978974417515441337990670624517811306225827927732977434148760788182816940384104540795416395979387367749455567530532219136810705683544206859922659905135606050680781544969094247679765803286754378513767371562581444953950535997683208272923214755908416283806317922395675614131788013015060688964921640329438573473061971103458440844938608525490724285562487483958635176740659167267241412307522020016334279217929327498809381657838901857923555412025673373810650088693607695758545396410749487295642694720544301119999642633316365547747776827848920281920343161069627438157747448216602268891069250140979608762765664323503257326063521790814501927377743003653562470264216145227539949814786380762993569076904828002666699471348099231896254491600127651499467023618461270118851735349582935726250049916937427613058911261358881702235478121747503092398305081421413254243018390366894693234518667003590656037283877814054491786465134482620728228008556384850177067965342110935315854019830073781205813529646063023875529401053752913021185580605678244448495148956666008014253580576141483467171177947631086956639480515127202013757235910479389599711528014109011189934288807336844573684033955075011235978617930963741690005523552408016441601059464534235290782833163416575474142815378526135328869346005111555151717574202925833410478674560899850677696794908674153261318654001348864527928703252486417025347153597535129486901220801484833369031749141425904780982522547487686689258096691431884305835184461371331117590327167724321544422031427409092112201857595559569479271295025800778628516759711544106424682371744646500161584494544994493913707145460581671568147951841221597260144979346564331826612105029880865387695777021865458347162834997569962628161062353869702632021781184386601430749008828896647252646877192099647311427431842101770155699169445170306841466619307019318647023414652316709010279556544675966917904631190169958029270989628815585074653723147398095397762224503540529584376090292085870827419239765541245040271078575301631098600551975931591839544003312058300471389817044309578505228033602864781322063202923154247086897246850499210903015051458006532494225513900493346928168409981002153517753143778670217267569011588520813977178493454803180183119767079189445641814060408689675630151090959519393767019052314532903346799807777492255581823316984540454174828201915201514799980029641040010584832681183201438390024426271747215214365359690076645498305479503295683668668368931890614225589957569824639257586386209132136813409208344465436561617522109401031644345995959110255999789849406744882087677643520025708449005963705841018852029985932658798187376217107458539875919357206853785753954037253620703905697697211921261098585201446028081227258015062740265866803695511375810851876619817566668253480909441862806199760911260240457822360758585699308852093217228262917571292401375548175522886662332673183194029785353958709251934880748355058353041585565356848700117317696019020845561705924463532790404410972795975561258348140663911335878561699909325389320212932971165815069002140305687156831190817354599675326381095086483314617851449355964527400519971481335653186562432062091651908742969947097723583444556669873350736516965631149322137417709517335686881893358590719202288138393623968011816254707769078925183136650944918738031692402832514862101340344486204792189563150421549441096816672610506197395221191690865418602163005233917093205377666838615839418935945842006730054874247007288289200503683450576922017101127122313753319360375141610332030280239470654689722818490793754525295354335753395982912076068687158713232848825099624088737439452589599446622973896568457347459915582581303629626691595408371182226968136534059600283864499011702373714221147228911425409057538825104015748711943078043382387934230249561055859216028818740260511184283761707024722990817816924974475695500820614309322656442417817098728903471171126046566560035110734436833827345082258609522468514137142300872419217431524338872275046559273161385368723830649001709446638364946134878445875697638888233723426082900564355065141260932921624585245486393977319757567106477470014298774542119806071871727594373776631134797469088557705252965764259702651972348811482934793401622003755129804549485201180056429602861520121745821151094034364418094962714742824724238050889357290870318544538202665139896377694898335472006551443107090702499063096415147154132743108266041541428401868529782478370635889439547219524736899702494521855005461774011160696045082289587806699602619919715223893727598981546054247758949504778709606477877746336040190229119532624989141758145655270719765058534297600896146288917427638455396025447670145373880867304103667243552015043582487259619144809785636149293271826338992211773069493753339837736380689192354338366425194451082647157452820152662718523083632856725436239439906546292216227615154929831172927716107838021146003386475012211697604346548972191954757092890928351018252760652609244113474518118366931423820462394020727115350590389244660530034927770521158568003965539119782635029611780487794803963026497339910161413617877346152683880445191504645079338152216674169307741709042136355315324102188860506961975545298018465155322201582258722926481071904919869518395248945050816567898641880863247302661903026158747110967430266152284700992400265907912424919616626302461054252675704878288205680422202681085287115002191658257065676750418317017854322713370232722092747503374808764643473450304358682428679572703250134107421718120327165035578563510501080804781423745762031041628099979260223650525270475098092016637704765775978865041552394787256785627077117343191859360089315859816424061765654930549457194761248811050037358200642407704741079886459667861111195748774739932191394141597624610040490230613390918139804204026006744298132878939792368050963272018233522518760457599303339682963968225740941579415127522229833222284216014317056085017061741238903945643270358333307010763999547475039690263175118523031503606158230527578968197355147071042917631727407036386507105109093777840121500274971697859159710854455837557704625031987082611982082412720044413502824280565055990247616102515395998093363704579954076718110586873729920369628567631153968693492916350021844684387439328337132731518438259155798088938899047538539200348223215674847658687356208909444889586911192861232265571870472426333053078816036795635507047768433703908907180465856124231914236260389266313741954644470333673448929028508565987346340100111271987257571052875528825699731367642114599349106569521485318628383199920381356778646313586385922689445536305894330180415637507211464819847000086886100483296777636920265984675187846201207522187962931005809807734409689546796685943563926152465527088261667449991868144542566399727928224659772466909118669313036965850177864397937454790190502074955263513669033959564143623808267841843669198940723927741005275361478301624469772313442511434017746173216069929126173705107393964400878190221507527722705105975576276723435323445285569128512112964978569503055897127748687506452635729366646377278543318012187034417217046523622604256469740152946536420930468301821852925071519846018858955883732448796681217645916032668068942164269235238564660892806990089342818889842665308447386123710238941690359663810186948627854396119530517451429954531104370574555859749961924316394711380256944697368062099652106511733978957500313677525155731497122803629702454972897925214755480426902701032783931735778598303639049461453551500353482710847437759793215335528912943347370764559356605958945951520445689119334169233997368842916073882199927817076194109940012381984895036844178394344151860118271219341443589394522713196951113960569743020353603637287215093388561354222585589921398729457687051270812683977073624037538343595286871565303771470962852371184419569124413819697427537660867830022500027635583265436941339481471119045032835039288554993576884352013818558253659644941409798136876704920983783227945328650559163453865770372354463621988612578181498829578351633941835539587411325882835307356246687105286185600135298984925869340091353345704526786062331395308287728259258207080460760493934620562323246094752882562528346556101345013861267471644496288346129175098853057389707727211041199721535288458075559854293245155865250101488937039083460591857158485475799312456669749460691139876629914307369051767078452924273556648272434584899720528214215975442326699526557038719485039460560684238313652128636622448083169236770953687143313850689978193792675435443616031682015922481277635651611718280654953572018211252813035801699459518340881382520931214112639313787304660511275107200892157997999501034316372061468124483718084299512116763708066197735322533532066170150624043726313808737823067005349529124055212143141461440079104200579778745140523517568168565016871983090349533017981772096076133685722277378730311842312320696178177650226386593097780675396334184012989468732677032762361010708491155829622154781120412542019988540775678057344968018946700966049496664644017263596484935372884473414326589022460646633039946300478169446524437393469220243210953463477116188602097088952849264998487274648833369982456091910167554317528491158387361690466188077514970611047633749526329560921985208674044088838097358728496388333893445335089147168050727495043826548978723545594844921042847655088831592999077637975807525148484493556643121275072577401314785409164330072469921029154016638406913648347358699649346316761222374390937168261300597536588871021792390693625595688299176446978586109677602119620208388739355211221280164720536591295503306879632015258340442859587244528437513074700177747396589010334171029666349839448958493334623278386025659043460125451242301706545744252576129116580830450300489530577650285893113266559851025726029429540495760565744612691589228641792098585358952378342855653710943709052191883998979659185536277471575779703265892538740956096509786923131399059580920414344192543408683140012373745325168834473549942127883930933335377367605312749480168490524758963460410370364803072422407203305946008169787201983789445965453225861368851233819390620614877483773762975590303049636075769769331285632439787516268754166923530867703778967880938761323177882248392457188451001718817341633064964142328885977681226988208696371256739485018270109197438701740153455474395553913123169894703692634549515978238342981454238433043877591776642452827408388365175612397675507828924087616042034801709278340947803782729660617769583324086860619275174200529552164249786873372318399558088997263678687931439827741141668633188241580360857935401202686994374181581005163816723508983610194520535762424563811080857214449480333547693046096535720683300207900371253609817475364078704151449178459995753041635987648624178893832869982064079005976835478871583331780715392722259749384865038663783333738915704224695064819785237692628178966294561716503008906869067451866681501017023124660096713256229249780729092532213075415342004523694193237581322634099379726089599197078203256446333711763500134138909235914108059094953018730872608548072267494363279277094734141612263749822712709357363816983988615514336139561428358119090583838237466791821367485089156957648839551704979736402954700708402116482954686789589343860458370328184610198564154188383674965423006603695869545101299534333986323370975846569528851383835359665222705038900036480405569662529356199354373016716171906143506998140268124507573430348905987450138502521697449569601755240112734762361018046837371238811146621303219428111512056798740125214972469586526892302749555735128429026534544589011166414299423215024533275224135213500494737179819562900672137612003526434909692474549188038825270610543031311595086660369120078836187026018373209253714988568373660626464943521591235046976376071842628757257265036822242669111152921533999691123321182241082163827622986577783004246052718158087661189320120073691575249773672235473007545694228647154798787571783469138674328690392240477583665975999776552930078032799923422487174478410241059805433170500452918805842155686836792495335846976634767781187471814771715445539906282964810540489752524159508599841862614426443618927208993522783743235156024725048204868144151132069464402965477919052387734870355249817175035636923737705377764781799498615512200176959550554823265023260334867387844786238788587599300020021550886602135681860377504447752882364204112788239844040531745190223778377132918315460643910896431413672183364755685051966616855865258642410500711937352481083343741608690408827524315500300395094177187085123257313237440101129709937284588964900110698329818570130417143757248100534755308810941611953006149830749729480788415259255325252432755773334521166576542714221438840521639423725880685104896410321799338209321234873025511996203229192112954774880573526501423720310818389813680939993624360731594831631983018167919674724359126961610630732980698863909341047993130854523443672406351854235005331372198463370774756349366947683747391154112151326624655589272979688330944327856057332634673600356948147950392612557384022547108015665573365065428762625592715748523373388954333665312867817713124224911024029238760514095460809946277439429476149505224679143019219967884221540122699457294197836536687924486507047914481878169363968626214832855351451198095132144932952658326597936200183124125765078959090269030081467088814220921756776965985570707344452411447696145261816516680194475002383133078988533674281244689188355212249161440004343007892145562440624330294764820529864898435638408033970274576146062971931478568878782598225915654541341777293916161132495372951483886245731434585177559726684624447682527052602262343305009915205135144530729272965951822884816867640917765634010562079480938817425765942147254791248448151774027802628645981727426985303514740982456721748223146075932302374287071507154079687474360591179870976596998205807287109648580421997281940580853615201853326716557069969788431278496790855290929183819155625355700234865370061844379088121267593926532546578249610907251679921535118486215444004005196844535821722711040157165556649837433817756134209577639522132029452535003018993937105897777628730145160843649442494741728249692519479021457349750218080318777485371315366927317933575098612424406938996520611455261465191075589989764019361492947193273220359150981909504367854410598248929616371804773342446864513336650386301778951881643098041102575569191041064345715575585149484870825902784788951628064460705912149928443030303462810131639036384796980150315012308692782627571360038234242323181141287856200466746177581556176110256432924518254245831387786413096436196629360612648515866579394589926676019511573408538908838528392303858025993422194052456794323794647422913314431795038110092054832130591270041377181606675566039163836572812338232365831234832372096068260134561421324893496067779540563496057119914090226312068016056731949281877784453810870514373437479987936996587164071800020536089022257869122000532240945067865798948174917959991007167802395452490945641336074931781864685756284184556764669769995978326128546623549224318574653825391830026040507983543618864944790635187099995266989631667496361945773143034691080505971706676936584451155297350093042108665272758982029523230016896578470243272960558935121058767290421774795367826878306342857614280490847265641248849910751602543586533024415206987901113505842909094558508819484682244205902299993583638718047479140716982088973916843145744631106320386213199119856247236404404040629945743582261476941025819140156477750382543767434030927219715695780938073153676898718226774735184261996426585484819098906494280795344515954159797568942894839223931955460653280326581543235167268257753481294556565929739594337402984738440169918610837941821586370341821968794719012570327337782286796482223912537228284694453202251410840211191051055246522825379605305586182432355603157993153575240026231683422953237387212300712808060429342276284667692628730562919004203275513548290451985525233733294498536084896756731824531950763058315450442275954907064604798152428888744151972067659253618194767600882224124470984641722621576663876980247802820717778661471863445542212853226607871042406443177994742580956980840898012639431134304729609650004784500284713754819400147069486647839592013828345047022696632836838684380735677353523797801380800886998386531109143749620169586959407216963127781870260962356583723663442571989013722115654835226809699359285252938227592173907168338857937717810523010503148579296861238484995252810357469717983613395180002701214185469201694573205818400876151278767706669029645967899830816178516616930768594181717045327742705871912427209315384592427617953099758962528385374113473077403637111163938852867262301895023228612090698955302535197751066575179159217435581029130529727469411966004184065021299381903043847480267946220371572536106478286344885337739634276105617396357100895449710397730440379789136389490817234626232526500960673972252846913554823053002057962776722437453435077074342625748030478970125443130078131864956237747205626551115273572617548523276427093565341965609985263210937582470695768688128345664243253644904409500525523694317246152878337830670909603196085526270930180242810850446564199986372017694702420923935232947702905306897847587078555322265255810707849549377530877704539981915204848202334316324072145182282528115813422688742532842238941851472782639873646067350693369052822049848318907658574295956366710693550912216768380015398400704209300338137241204052596685966297527766810687062697858077121418143368978363150017465572697515330614178284537451066118586777253617750497568368687416704551646824345439566617081130131508645875894516085346551490211610148440703901093955110298596488174806160134251657314055637929540433308475811849515523475225384949861287643766165956195979030979413989392137778770548402316608905267790732357932059618313238301018683583285189573025643918348741624918651926557059066836359927307021876720136132547472103230372599979945598182567726026761826194135572555210909570683124913806952042749510789774760698356415285751340642472392034214629125360707388784151597670747305815257875129273651502735672946967397319074105140913406362377309786298827943104704177865478642057820673668580495156957110414650628973511047410146123302727207036000849797873609295475600161589496116923313605302303449844076473209505621732505760630876169319004183210029706226167170179501888166902837630470142190041795378893455615763970549624796371278772681386352504862048268995037985854806729366149836597675018564345045802461306146441311382099565641694471373332889439753463217945098507828752545740723871198655453198951324690318444331161647190641822524316664904411918844170651347244775273054790314028327670189246158896790850224764741416585051428444914244902446472599872708595023949137771441827541555392627040896038193135928789398236269539224515282760663078275458856947388972703524028023211015763976625641877297084200001983284449825564726591171335057685274919959255928301646966630022989419357154289845862458931997817519162182783874985196624621898384426534047695314352634666150193337326906261894016280995203402431398547706206490206882340141558311673583324276180793871444535238740433645485927476640759206608445440004502654043136642637807969278989833840674090340012950753016520733700842643645769606489216923076332355139220521653384191353399134820270506544623274687354770883834634366618249615500980424349662568649703254280606786788797559735587692835675789790042697026820194374181532354016357122518580324872748520570462946103673297954397129084157140299130993548953977240496485825163185367208571340012431601076203067211860188780770137284236338976812861271856328933146062015282355195174866183892668255101946283468353204711639960395093783106702121753567357842214109564303281883186904898459714758289297615738773293712769401345631294532420425428339238128065654667634332173810289013732721913656869092900111499684802322075368588632875940081776959060053769210181940674121611387782420483116034341504126159004578656866892052438606026950614893165887738939282285573969106100224472878525876003822345574474643323316423450969712405879658776552683640190768462963620446737554555929208239188815194735478447874687100482052453860657062732745340578474155946748846950588874370421874369802188147973366349752405158286493392019234580102655791629105172725929314787709760978684938840565099536336751950429833503506115591327348194428201304090640310841583947000615670272904738190320154460413832834147124132601961545107362331905065957988109461643423832770613325675838682983636153743684907170523974903204341365255684216728280138001832721174016732688146156493500781569374925492918275170390289066448789601876434575442567245833723893186582090030998808534757598123743815216675495709513226069658334325626296862887104022765984320940535001613172732770566309629572545032989991969616318821535608091202166495192180844462031259267031493349460841802590831428427564030121402031436465754911428393069273381090532780130839447458559039116283218875692898472280756625716943399451783217257145573106542526068898210899107608614863969414450527956547699399750150895111954482768964089582050307750767543489414335038719629417535562700151976560142317995041403866967207820846482330537172070852442006123935908972282359987873298243753171143315599461862462643233428169052209509003601022393572876536346047891886654666668603458004401137972983132464434864946953804208321213154219607466580078041512044951992977402062545244501741434158661398434705263816961293946629114195015118507934072817850258453773952908709017690311338404504712341041993912091208872444913291612203200767669620262258587309991963666492586904529134782214032814959590831195778204925984368259615626616955869536797676071609294504203994080770119525915280446659705705911735777577350488143773428958516738171728039215164287925062217284827575620414360212608649788199109110980069144016562851638882239473149893854880546462289383081109184090669169927107085384227001363334074858426292157148688335210574198151311216031886636252592135923178194621884729580019454152577635368774454394564203289116011393596017091309299830896732038543821407825861332087003891338262569271328985752303454495030538386995288176124585691491241932157620864059363142920526015163225692928430079768683946693192884148015295470605548520179531535216805031887719007348245018059163806039108697207730180954289280088902330196350180780485188598764540110839553824609575564636070377331831120424482774138204362272693106602410074956301083085509884818222019571614748079319295043411543190991197742803197468383548021446530434023046192502584660351628664018715013752715422401195024152964643001059508850754682064335546150059296163549023945640060240024696807282713550045282361394327940831043796135823542997248154950848653734672333273098282597698824427797017604950296617380500320204123548499483417233581272794752134286461773354682716249957932703962861481880054797964213274928434632008891063080028654519256774153752984031994249819488113819525330220558672695914647002207523567749024456973480007593739359672427717392657367818344163948939575556113585556891722556743923422013945008248471313126516545708725805648506493094628800309420290909491670371893340343835912755996614062740143911284104755889252114976750339284004252893573657888515040058885777035233918816867771150728005592932221835571537819527750952974951727788370232690808419723052898572567747749711950235993520776001262929735988277334428817144658959509857644707599091351773036967488773751777127041465305903414530834982929680607054413931005775420133653636681188123079514839339832212539861657002018559267107763046771773236275766729209280808405961591925191443526327884791840001129684063233343874480574299497985118320612933291982251032687884156508252200054633706230518467012223605253316670581784696228920780871607054665094591519730913494431649244409510791099077357094904774455243187437295756706355464960939964528171687716921929370577151182188995870357529273468373028489322488976999999458195676697957959846507793245041107993790118419089942154166456639281084669819551241394584358409596628339327872761964338156679087190701266711642234229905231487871285083919035240684980670410809163055110131957925717952709014594250859047596503339245501253782493566774111112016956185434431343642997610454103845305091591130736828067613247710127478215621771933630806811760656647783118068243318433073270417870758868301653212393115446932741424978926331802735898908333151782964342143062083394329939347442495998886170570406869027495533428748933902281376130984172147244666567542687784909895072039204919813128565257033357145828373824835593490232333054037461586932387806134879777447547592943170927078828870560574607180447685607548356026745780104424433335400758256303456377803429713659273223411924865054679629912734152269315375109937576728476855144267557372660128377475336801887349358870352093729965123250173312658488934821237012808125366936215019231153308524148881510645126474285264564229092252636163178018459022247914165329241845758182993877318188251947377297071742296426150975352540310942427183969900076519618980382104444915522069603683337727423813647996992653147587230990115526439050395798790333304903608058777973274121373802851810851215030758905226143807117888642925792570824557750815612953983169325057974832012046673773731484915797136837460643991713403541453624452033152855793144283015044600117224598890931391338293697565917926502822658185106574292900700319691834165424038337511352528008570104062921248852924626622839666383722192364881024715361645480666806056847305521743082502890471297089968585069491248510187263869106032049511816163659352723425742681714282951957041955333179848373273904565050136663639456413900827707018816432169783406338599437803683115672871116932275370904841657829970356571310874733891842569329365924643787201836130451931940476873961558290461405946692296115332433643050883312811776720954142822095594339349754026695960550726632820747078976401195983556155936902303265049438309569531558672202360176758527996439594766989108074032400385609235595293963774293826644589358679397398790232595839159962025993875318705036449503174537161797131475646947253609799036526051709317893477992754920625074460465680396076599118364014787623308065765608613207504949037289697728143665511859159255849841083642737908817247170636579261553945965899093422638819656847999163110607424132200397407576004103947899897242000407165416509006440044817303667718415830234710376031739865340507103314024493535169271628017889011492859448717718029567508329787694167133048109417466659075930115943866656515256179831918825079650618745758013061221087625555491585758857991102196472498196499787179226164964886414042211722222588299364173438897311776377203589554841481929928656717388965770984248101159181675955238041309313541726413850582371720148527114515762656441827632767554329769301547806186917553749921518200027462020559940184174388178396332909919209172105930659280629557458276753534144623735519352708745836456814678935274714940236677438058654310673417233826328652336780833285458650133599608405157363430505433762934992627211315718721944344280815152742775630263745425810840232554458359896117933350844113258237394090911710561764950023869245238636760639435329531877163655686693459584682550460536280319713088480665390058438743331338849964526749789722832596028348924624100004325905690528780055444713883806218461439673391162582364883371011947754987089170868329843432180461798145829925334004724463545004898897214447806716863853970160323008315443672009480826196545937181921441856339676581900338261363636561383970345539667459008038673605321801002238412051020770717835592532344579369821536033491476371615262731629062023487054691217377630510193195538445398248676926414310863561936299522926315548560593848297036108361126688130680049173111625522276957736580932446101576790973460027146193306557141685233188999131263426971678416119486593881686993356004880382433306288904952967580490756681255126352834750938675675965541197077611269383769953056683050172901734384659225025556494593765236899530786836644896486259798991519271208941506853870542238230013213233667569731324877591691454281449506145644841153086404177788243152758105223673260563022241005678168695981991757151717312688972676451851991436289010592158942894686112339248986781271431642116912008358543611160433465262637525451455351941975465797710915300384057156883364081654711265558722884699265714662580177829149455127880707590947431588237628100968468193087809444388776970387948723786082567061493338107427338460033188222397154516554777329297785035098054316380478273844633829256104979127581608589560444731599254499953746311089915471797542383163621682251405430996858595606147663739772695525867234505448815501444279726303463740642540039948410563781126334583956068005146408743623414667242346002625827124957389702886074168861513043944526528691240444070755919426626057395157009844327787885475792608237918581715667008865924486918809059109680288097604895901239293324497831944792170082745503004072300166492221456032082397937230359192981226867961989030035957120803549825083445234331099100662368797735892936655885397573259248932994442009328308751104986825441895496663561971904311092620149561185433738034374667658861469861044489043012601189520492603954284132686848245657601638083275750031549896196377260294258257260180369278131976994431345450335443205652608289973229788285218880877154778243919396840771100761861025610156053243479385325487860237941525773858539033486614235267090612398399302264415194097750704182667141616496089667932838140741546392818196953720354170764766325779715740741798398270865250067361267429383704402388733322516077080664345977439293907719476158628030633628196121732536934698752102917589180175639238639299626279692838989119462015471409070702986942945312570249374254282816706032678279807540253436265533473448791353103428947091502222015601514682584960578742048734052862876584897668379200257211280984014961447911077568000940273537855189634386465207109507291336638599282823264542331904285351290653408457251880079723346542597451028346146480523899048892159019259453157136344775280370155936627835958115614898864908556883976170509729166208953521735506777688789676608271538766497124894872399035107759475842224890856048753482164091269925987266060634014496394263638745382660782190402532080827801640671011836990385213071146410673871241017434055577637051778161412456048172704256472182582733526013600790011958780494942402713584635913267493971066611632226355403454043084161002634432715513024679164699167251897801072695281518125981863464363498817740494481250054533815374766792263032454542797000175823702345242439405517001474478071882985451064925434564836811437978138230660495757890986728322136802237749045830905581176974437283118983236588572414652689616882878390286450891286068185651361446961564824866536466454041335829561253781704315368709208033239519602728367795442501860377734963642348774746357396689468080052777213437413749212949402794845980218457197780545943604795131812697004471108844270676183621983138114889680123570224494866412286889196672820997204224660806864154617899333402978642584521284870176660933616932918080379499887201750853617736780815242400211368558546813775288144798414740788862010779559790921791718257930466844341544026659355254894501624240008688267312263167368709362429061991926657749511123507674905972086876308805240742496964143415271084055087221920381310980733009367180743792091562308291613546080751303166017954365379543256446839606195190614646163269806347455972275894916218391079857015718731448430151909478297172557461711680392100773745648041328412629479419045374393959588799054051343220354758315343352631311925007312312127214569440981952185413930498519897650196559876899725757092988456669775619794055211147663157396415506312877330243179049138002171130612706876733031866134056373445186729352641517138841074214311029419477813694173617625691199481386887879359588618287380684338447090423799180387538703192144392790500762837689210947036645906261743014821641921005126355383836576705566059974464626660720517654137307596620470517044998321056310127596688051784909600986510313840934725996146929830778621742610386363737370868761109679182923922440155557209126770475432312809462242519345598258712183339922945964190501650171060669783122501415153210968546477892563395283536844024463133077713177210888863901601972949001212630242286425088480342862328402004961742435235814564692414659971183322289899423566894315826278535227963350688787038722275141561910640988385766004204701380499513679083752059047665985602488426098106210270898516522271597860471327699695455234193342178382603171689649141053795339867361826490446055345193964119199207296600816463195625555065325130929169309694263408305846383473561569769476077635944881141900339859892792052396850229083005183512666532761300821177289008136093858748032543826043991304527787538305178833364540224730817813095753924106911488246100147790099551593359180424557472259256381143835259311387225011786577374852523618244714385763870312231420186394436014755472752266067542986475149212184366874127202372215655463623786282970339137453843839889672193175329572618991260366388016211177384695929299615675429242545280076958128903602697803163794657639304075113577009471883879227920574412672294854677001110146346489535759181250575875078396881125278871448585983853388609389298635414950091927867395900542612150111294093300692743983630000367074179862915821156752926798313028466865044076932130088214222547268704457665780713744496699006794777312819746791696611393719683072463059588359694245166496669461890948850717459152624295880562599186640533002165259695192364609329317751933069889154867409867449378239627405825172282735597738170415811829444544324518534253653458754702119877649048709210510603831265857206799883973611065094883369733691368799927467681016440809679084834695431224783408899478976423041219628700331733919989761190066475696646045301497468024249166697134327230246557303544883509397501102550559980006346397454803372937696995432096505321144542691694630554760437167994431588878068155268474548296333040118928133199204891792521577940993044545380263443203094099322086456245187310621541902930411461718292047040570099080778762650909440817758296841871836282371939800446334729344969962409277229998065365152897426740800720631857952919825799607936224610893638094504028507880068313231255594712973694274468336432630969068858921204825263495481280327900147309172325987754558069222130769719992730957461354047091256778115915187278099482055370679455123696983072407299706663890721362118734431692392779008588910178058299799409935894868933899874376384958308150094751801582775384308060705645148155241026720196296589569635931776032932466159925585246485367882591968576487041608294641963759663740168593081691835535971479750507176639477529417350863616398823366756219510838888768645678718981366088165221447811188603681877806206675269383773788172725946647622492581689736568443475243222667277139138188766758401369997282599496414170485723628888540946633600471362219356010596086855580173892546115519989067686307430681440951993920170172829375731575784879321271054006216758132326471095681911700935593414734477159923112073585307434027250459418101529899294209250964931352479358298820320820287291396206678539044798563591732657067962779280272013626920651344835940768169497611358169265208373609496321096219529583873203253790861000996887606028684592839599610412286283073724982477172842902983994629041869022912229504625895228118378096354874194260513797989710735776210388119460000838987116407894384871863985836971415102781952293317858482921321044924214607564570148432151700068884237589901264671577067677834761589406924788699329725131686419943911860185369443321634635914834283350616040863001932539634863766278677050282104696195056889208754324189159288587509852695275286441647781953804031728523497150900446997279743002079783238075682800872039933153692933468621586817141935995045852239884949001290133564325555980255061950620480697906540821536879753112632971897212832887962253839810507311489482487131080810813515399387662925978551380037237891965475585433256335754850351539100837813276884225446655701325930008949284986536416878851719429607182658728395193389119401085786728350581401360015190219099335511947552394784950685030467603502861548545226399824761748125188926863389058016464681620708418388517281828250591091893990846362641063887663675746332535293802734695428054566608158012342441138497776843453617311663459388523275185507346858448743506977909482658990118287578590476062683376393979105280822118874400176054976147122110110793941383409523337799476980865353175239514570959233428589130016924526850208359758252204168751498948487311824252572740015882410279732719366442799843896221030974334828345193825944840261390208593368012911136321135222080697326343123840998071031727177751222463082861389902327817741945391307572149984147591077688917527544435539397417475361082106779962848092224724064838232684096891247052282732131628090217004418535785232096281934505489415267564954037009043282294138489966834700437068502281714449196216464577000276810663708867243376124257896782301633014670021148599146567419371635894241149060405917869631967937067228402036646556636850665457623391484676573260834560729980149683584772062798201580848989805782425100459619689740738461352102661468501438018208201692867132980296756068414685501624489619364864873225430660425958417671662971248381278179324971574870405006905343149570936426660736795273748088902702567896409736905316742327108915827400944178459346113437594730622922261245831597166181840785796855394333801049819486750866718652953408242525887636146669275021760419943642947202854519156763415941030510763353633461370324299236748655560358419149703560843241599879566131246635295963167142316353046769789955986114103074586168473847207044657618286438729691653700837717332820484659147772432584816362617671096831347197388323368607130772589157875597629479884436074619253257737915543054066986807253133568762499889594855766626972617909478320352318460150060458550569452722658384382879111147224218730211020907834470903155222633938203779769429071960490587245974961503980206433811811350789179817194732282736934946094393714147768168877749588123337247934553809148142202959253700785631744935773677815933929475375303841848558872134360590286226972115261740787313713099800377368950896571402739329231166101508021421045292894072793900893759326576710594929254666958195029126651998217238365346591354919172810738263372076402503085824453322058072499070675321754570183196727479856204879135117068089492200842894606339302977132466105390681618528990368567609151461924426071897236319593201947011687785844728561482050492682852371517575838101099111669029187547707183552879722609705736055498562060059544355917694655803861905735234460516676699591089742043441546198653821494775185520144196063313453344745103515289810284453182870085204681809815539050661907094118018067614050309231176927334270264845933129234111549862746590828062698680899854230370414455669796084212186705447166310469920128863245970686356899220781256276650179958244360942864969719456997075333515030992700761645654020571081136401217851702512390984734378989114479518702479332881851352092119079427314626852434029398300133229823605713536022774038935222633367498410998134487782638501295802448421260691137953110510008140848258852008179023417516267962152935105514615203991290107856457086406553184178324080048230303576492711159266144233497449682021437743508710287836267112855364888030164491754170343984605832329165557256323727446127302077480359827986567630417987667615460497621687857557875865028202443678189132658725428518181647562600181908228164194685778469518469987893778712453083159243963399726211672603041932000433222347591434363266517658977580010041840400523956798805909112211167674885982122804837617054734074530525205795103734913867682035450865039052409220154392201991085827478989207497914282376057940212334731280209544240920404830319306958470861084082381134451363269295765143076514646972930280459117506718094334075139695937038136204111534247161823718362738370367800414324509272074575438923854551096394208608917460262665170392633783849961294544718362551386556638613559482461883790036770059686499401836658429774045594885272454247574720095889951072042940908567802021550129610131221851375514851555216110720598107925796993059344611754784789244974020855474982141211696310044837068337227027690564387829698628677050294682818311378139559993979447134181689224934943326921977811438831969110388197125639794501247728665405685076881768856243981014360225271221544271695405087783986854720049304805101869150060801571462256665574253909459701698830228332919542624943218384799703887955745740652055302023811976880138696926677768322782244546715673058255026998319108651100201676967803423459762979342891831712133437143272728419719276725295407844415973567167661720334492539801879766306744269542938373190172320619431298243398312329576001753223823357280640808124947173776393024044660016665038469303260226211448984106264521449341339213500407694666949911538410879895391630555880496898420146148737899793028734298422161216380126565338131733585045765626123830785564762117537613747604419387671569645277552572555058456062630010771088765807933186416916456184448593859038533376861623412704120283647863454339202021074605068380514850230287553229130605040835136627863880514901741573704098054509804261556734307610464959437871629332851203919153816798904021104034995050213475368877837342866119673651050854908104852365060029018643088215671237531534916174547947947696601285843013062430025214541057407346511442826937200187549633482727654914218214879123907657239894888370755168856499751449713632869164242772621697385570349576372676000589610193282233220261011039641168416712593504299065333008899273760260681262696721039475255061763375488592787201587953370541156538561672102991945346998726494712046199625950184566010445136488105104968484882071181241330610601780264207881181520488456784215616864468020975647375259092590942300513759563270542867727998527552675355859417316111928638999754112749288410617444282500209359127716444904824153497169794252276298277656919207273187941779828162874032138273552038479862741590471731452138002791047178994559244351273193485172878900354872323958232170829976074329749069870282286585774629571251169074006204774819828789788703856216856139412518772511685346030715420677489170277483437921088648297597853730657214381178566339922812327920445586159651354738643814050956287132133849472076490608782760031505891494391359916545611093977121415994599356127014447194583722010243800206908106813914832979994325862156865096334509306642708460809366131758216272921243049351103523947090620607194550571992354923529831737840380718233753635992878194796000175857401378782715738928008581080159301107512465011333662911860087714907822037476104453893723035607882525719838324422875885213522856662374752396077524731814512599971737708382886506497900320981180518449545603611801584417967183535212458608233543006953561865330354591720225772084358863097755197589365966090112242255836511770556572506966911475106345180074019910944783551575114388629936839275324873702427537536933708561307374213215073128602168923134886532528172825946896706036855595367886639858482976513373011590430499081831428271779236676461811377065487064888921016651204848248921405269567026109978545071109783316137070233005862437392552140363725093918495514402181270326113481459577315133749578193944463739349445755008759022023568840651760756174283633325178036808646625787035620059482358183802325855125168423168824033283020870162767292236573535631630928752533145418916447801779810062661430707692791228624136634873554807390339654584984613789368718556980882466771066563347147061864457761384666726684793668924329666679151595238888243028155355668787166196218464403896753921075937859769941021939260599377219897730487728012987060197217511555806099590364396406215778351046179650059169994635220690986756198963417302727196181865397768575866482555355576452406365362159287996107328944328807206417504602288244590621324196517447429021350225015825582649372474904499055327058554158788765014280426620897085504796890481246383302730000764267150968256830301936698684607436909711682283223893190975001938877763733882215299116110863859227990891694914849373576130624327360671252334447567615372947297130028404479153384418936970481657491460911131232942522637461892648789774085164923849376058642719132076194811481629733338653214559438939282282635513283712550068728677287000641161946827547856768826890896202810339001431336579953323118061886198167785846823500152006650259840819343679123579065599642382820888923953635075455141185154427714297656045567072745071914991359063718547092213815516187372406574127313480118274647333677339028971292420103694520380545510740724495218819575874712144995760021166598793623542653365692632828843291299329266584593201491867533475484107139547265974971364576250263789593330704245857930159112066522544454912641618042126672148579772200471995618477898511841727856211634508099874693502279876812114703457530790447697611967788875789223988042306185383541583748910371436829645141321043184467704872452306895342224824306780110439821962749116947507734929411210066138586612338115253067463000533707529613876524567983057283884314487678821742652921259928042738481970009528747460528672638741309409565190761355249901530550511810995848025050285227844639583052983557442045994331683638148312113037089084167117866261722939113857435702782002026771791306932427803606689330911619529120914163193313984272923459557689699444097481349526940012031297103031076004128319611529450940882866497477306207431048316546879667585429213243699513122481903113837335609211360588448632850335625941152621829193566138601889789683184995317205823763263527367089155162658262567830639475843152494680238284549624172096081890798610468500642946760394696004467447015791403658714144691287331916590974080872789861865434488439569584709714914167476524952391188711350438328801903620153794585020667475297885779015544276479658885949811865443229243028085913273984748963335959594797341847106165710697899077311405171033994175784916118710648168271004440846361584417672111784065740733067036939048854953167912644709417351327120337464384998938819099314002142246025658753910563362771288710065720273300412773542061859645409905304682835509819400855608361928479360332441597747781835121563694955797387781555266161666380641247396365569040809852800374778424066778305437660466658899785658717051758990473907263900348444089149344182075528291835630716353194263330510082052444452038741933858273412282812625532991833228169365769264291375045744011082238087038251346389743506523647274945011413466003580863239524009732013010014407525107811236169110384071488400767221892563412311362533107717524271532043664711052916950313873218907337312665381432680251674840848860388891430461345605632426487747818257629140917588291790296955562345038985502107281885858380815460751811607135724287683991643853911224674474382334083865303488233985603842214793441111357587336209555742362315150856724468564567835343800560846336303825878283707069671893181788092309396339104459385504971339239814779046634217388712853198782037079740083229479248380562004983018271130103482333276807759026957808900225897456707453687686868634037134744506980679796852677452596519181509836706346886203829790955520099819605643781637933683754907286309128935091886185739703385204144539613435473432958430685555701200249089000908594763977420290741173846394845862842106131698124506932827296687524360359008722388929538944395043473344384208124586331918688285066967945327078744503035309638888422908716556076438800431552862887749141443928456948593696574946842284272897448568585287318497082234089662865328864994631544166408677143876155534196364089363291075284138020898697176619634998148701678729083334630141988781676581464069023451180755472062875472003064224528800664152774108768311606564680482329959531077702821461500274238193622573901771260582901038874143165987300750510302573077695399494674035327393030702918432546796060487978186988042170075667113454376389101775765239790708615903600599646710409360907949856914323162062656573175712098958896933915885336172971507478752591487086068118477468158841595330285955022370079471026770451390231265888137178717140831441488677966955687138872752076646183213529520066830983507926678601000368047401486577071131411797695849030864556334888414726782336376416885853904348298058416253446630778596102954854898210250453799315167918015655901582903793649831293617076270405156039177887643479873106992545576865307446356652549772253555002041913246872570600137877574817687639868936818026098411147978984381069198557084936425413341727315750476915098786356582385079757714918398318173550135639295103868766987106467941104429808704571061312540029688546501409611935464483775372920249692769690435636801037580855083164850164947087980601419359551071056783598162981085547839906245985451289250922945013607075889446258994742294050979045082060635894530743249199347799984163141452970281641413710357469343059183835920162114315777704909731028553652231451485466463101027409838154102378032980634219170725438169420031723335362649691130858563561832098246860288215231812040527825657946665955682623951693891319004854688737815954598596393839930811121765285819809011871882453538442541624438315165089879624942580300425989393938354138157156217862393056659877610478551997134571634892617536411042291500025265906770389327582590017630651771718826619372675318412796219320602157007176702393983519201174146490416307793908827252174386810705385836098402445158785141151442040632837694418645509197058760095181788346564160372197609822693057564346880643567229641158576810422300138434984606527083927347772207484080509604076785054568953919684107292094773258375691147292076864966743140077907649807118047377709403792925461699213846689573560601541181569633772145074778118532069160827125798965501613393840758223994048082207993645057279104914204939511594934357052372806443164161919727438645747715026562517080341210377075981439146624935643106617879310348430911507003362662870992091375418460386037227354068707347023776021563205899317925346451887627783942393601960684430473807295839459472615625144434762917182059187038247472209479155953020242036861645355469596242064596495820939232691727866998765345044073719770221334884005979601349912002147775889012527016581798998010622882130297888492482165687600173542375920387320215426137122427307261951238437803716473503921734564537952631417549628339768020170920479555097344413647408524322360262175290620193896025769232480493521238596129498093483198672043987244257735244387305223404279148929864802631029331444781371092277783134424384388186379346388120052870565201893452123324746767864325580995166343447099943453879143538299721188464885045329742769789664955805448542958476546433825575860358748089230653381451546118068464414680931030838385939582191185426117951707935173783261358906142956341300975908769999320043648543200389289197848483901328686681781871166306167600123481947076339013906507481950199978442064945176532015382016700947426246987908738235018120354812342030078537316012901664214128533167179620354631036611694326535424290423504674346115989106041449105963539684019197600015034661509793529110928600277393143793487664090077578860581866559504233940072253824488973326355049248262044566652643851199306308668702990294072836838127336451195834954140839704333065317581647320003074639136438468328735276125247422539660023213005879867649449618493081922098844300265060846045987123323775012664229090637099900142454008805841407976674708368034746915568622908982219913821900634191572088568862979056299266228865438439285521002391710237846216746689434179747303616585883256888887233492832634807119287079032251692811897143313579558475685208741623172213856436648478732130978676205695806060711825798786296566188565664742206814592447695478399395519496277933993666816370531708279342627160446507588009554562776417229496626568168064723187849706826886630160483771653521246878057912052365651927810117063294528989980575692116788706498438796277579882039667608491352266509904558906971478460459730264966324400288289456237089896666788926218144109611357890334042780139393241968412560319983026090139784486216518413679759428823181249129156429198209150035260608054488285325016678329476318204101154691871654768544243216256239396657014878668450210189788700607634757039855813670222082739609016726589298164090456793646046962498805720717592412953672675628141696825948671355445950054035473982365539569426200475000022032908539437312958444720920914138943936708654646200797291975111612575077886675188315518404181392345962080619922304099288744444578175059640421091687561039074810218784319141887998719902001647748741520560309296017467578826474365900241229458307031206002981317887848124155243842563043075051512807574485747509838631089091005748673064805917536519945311717279793123217853796536348005535308967559648289394645919711107452227361297447186026235131086903377221770331021470411584190163573057342531808711503101806696704802901852734785738523315991770533631809361368940254546356098396263214569286850781598395788785756856427818283707246848404370811261445710294050593258694197803075948235257110608105261417478743713351869583299705148325219293864801307439357554901041399264168421166187467382042206555590581984675941838348405852327426262676438877414905804072832161936735795824033563715728801089228473351036633674208881014780157241393977880481006115819434900011624584149400309068906228829624577829663646191201759517053044836051321611575863297892609610876281227205098733339391376793571280078412746180661463640292559473970192743270393278150978513852118447323827117053936129522251705850325461332817470743548666012962852949943763647227470463564289840961622190016815340505323626165317446875427202120927329745739147697199707502080161931879412754832770474313314548708815640000462350191816678382654568613838369852222742346706069065559861188855722326675148748456025619490675768437131624585032468616645216886922088225860421141951927240680526980554144061755566053090084318369009397676257064221733907785555058805426755797385789948988594522253364696172971114531723315114396411929980110259399807324970627220393169792229254590322160124744441364478349201476013313933594065155415321871985935000885734088250153848059962901891892328087780647170044704639155838601540397231020991904406953564892999471170580607832211591197508596133408450216252142320722018583808675328425757397088350674996141668807000967068904890166922835520711916933820411179602315939073361067900872741819522631321681965041538722892034857228976344200792753422319712529344780711893962386254377729993267773771796515313090472807393977059022301330642460027109203840975312369622959750944173520119238246342124560834592781663476797819077511778523677308316943550939840627865846719722673023007690917422101710502878148471021918603907158010791426549919663407867747231634951685696157233377076295239724125155928764309232648532334172232699772260565825400526969767021835985563140425289084005476163772039469207081534765982629956649517204070282288226715252088096971648309311347307308058404744430291270696939830477594042134610350421082285093505611087315951919579996701032405433769440766950136430941538333618793385106228084267475449291529699703335871735184026466986191506767649325887425029657798734903427868241229274670169915636581726654503191498361610447439736005993297231330476340606867879439941648689826465615382494025091526246468350862350974610948356408376867253913873667587095706100862936789314891897795989414497528473132192333259010117399075075718789888229192743901537897610821937523672978559108083530191710853314437421951008777094134039780992919673980634155148205024129638344105616452496102709006255165424287108213301267902894390201800192397378736144288176495186158489916863729584979960519543617867812631619896235880282685558946365550074687643208734315671128711141846696800543476018273933646019314758301078541236450040538956216147430305385309481833230642174473180884903949794641857871844720981146855096985006750748126463929009704289594939534773151087782852914096665050166828054518979743454174169976684030636064543876563110238654506435610913280177402935668067031270423152417356247036794901092523084815520884819817208353489151680676473774963670387252399278244122036753039784526045232795876670853096481307879680162600354310789742114502836713219510852162434826864849292481305022776236021886955968373589845079847640964002758572241601441523297468767592747900955385930757270211375115173228032045953380771148652448244668275780484893646393564281587750220244474570368466617785437061381530896963797626408293324896634386509924001799489093109572054764808276008838966922762648894638530918917937263664202603558082850701786299258552974060104097278151118800667115251248384747313309561319984734323242293028034162318647036901712965191949278513268780584845289287673345942441779142328121338228656235557105240615143886547732076962619496148243728561679720386720246065410151303293221245680291882374101890748283229706395870244831265079658663418205834283642120747698664600856872654416778230719754158868469156849749563127363488529861010363885170196076177631739557136070884032488526180715414530824315125748286696194588674504330136440493968056206834848807800092598087762844525457914496288424791101759293278811454636263041300209033366242570717870071842150186314607309977345169427421988837359346360657485193346948035023911876960827229977123489662035522666363932873861678187579617749089759018853172442739634608129233531534143786402262174631066301703508901327387248220152155552772371926571683482079111231202091432234414674252318504673990298510487597437710373634370159276644120366843294741698371082960999363575557008132948978589971679347815290071129622630500052899057560440054811746514905252368115997140714485635708027285772903047358006970372859267651164593964659995390579062790587311596932909673506045951875587042476449699167060186265626794358576600380108484336183604309148263733123313534684622118820064430539497103146963597301670589599644340123255052300754532997565592558438128144919919418005770987148655121924976416003321773280515719050631124098732126621424713335609383037076810287937864035002668739469175347671661827815592445895447785577978266252121091011865102920520632055609128939160017462374224987549348960137279194694548428039499348338425251656377049074196960446515354269757564650956123366089141558660263455520637549202235639522264837509695730354649788696645173451722128831244849703222449149352796246393377025511074376914435626207218488405671418308828696091713634786861451934889339125328984281460276465114790151598441067685946623884652386898349546020343101308816987505249310204356978661033009358806834915736274769169570106130372089706024693293558174540502231785223243399470071567645567971119438495364982741482618223516920532699754894433898342790080610329868566658159482920275575807986044835616145689405495854254930052694431461109581014943195512356320267664669096325511009028060628033669696163183834331937402948960390300099760617463886331978317010088958383003705510558752384667665153872807448366659510362227640050910008133068393967133997687219482740474961349549622874958824530463240287770893023195500727783141710841712723772672026406097410829783625053569949634077238204220510388853668255328681035940866827732032451813534726639064249812990971960241996321940992744597161147963291755931597616820327698979223857146163068573533763906432061274962306200487414352201347760181278779972591214761995392466718539586966657241610164983495396644526881118873462213630848933253442448952704510001332315880493469113684636381408855467103133758821650394918316729907655899176545900928725565477232696323107758056756857148912027522770703105849982286360915822002126413589237097008493093486347536567548985316032263033088492966701667637883085515963943870959654036377135177280892042588323441644863591169490647269479832438197046624705834240136773593449524222329122468338001347676265151076867655072724407305717970296822208713825414877204208741213651122145180162438897011057938241063205191220345740240635354355207518235643429713990660341342036897731161836755005489296161584203062397931228413161755765767368924410434191969073121230638871287578478239521339493924559255199492589437394196541102045067974602708695484875290058880382786656195259679534232183832073860965631976812282560891908422381428583076680864323418527348496831614924529471400261630464276441462737130564821113827796564276257300016701886554768884354058984030771420899620318405022558705590849673726476807114835055970237825953448500792912709092620438501296097861069989987670294273732483856985080609051835120745742859709303999199660232395382029389042993139885326940363669002243608929885024407033634666080573243276796998371930875876837951913718490559933296440405193411076627089862600644496115243511453508153814471663177072706748869459099307280266159513075742531860006551527044220852321501378549479359226885360152309636721118835047226262704324806534792927620099364865816982142604893265932610399373911997027804182517363952226100598116143832071164065087683110592762473059824970791419040396513528656125493294903888127378085035798704912380526510552847556029283666180880571418518760035666408529947889383490359608554356319020031774098931321376781660290125086234533381650179183397831489200843592002098938073136567748385120631774612310388656520427655433530938711728131977697178860846848630970155997943903851489560992610395488775742027485249491009068609516075310932021823671921881276420224295141899032869285238096963256471976490261743307497356647916428109201194836736163377441738380270547022344996262963210959522052127988497740620040224229415352160678760362676292980031028556069603646728626653221542589088342978013529636274601735851207613107812239357528191897945462404969451036073405400579890650713874217698313832529620083177100359716573739067866019933284206830119932857301327465696584446407017321951760440969873047292657922467317057514255676073868039145768671254632846894318917555766938865869005356653003369826298739637799172762987072609332541045799906784048689698409520291231702835237058448090647424504703074840029001964359950894207363095787108217058889049863702649111716465202649672404154073967734244508517559503053159216423551552990914567981462986094309070691470313703104068277592840403627237447480085742552618659833583728955806943728908901103215275614113606064170030383954196520996568040569386962831259079575264597435242080347617198398956432649495204221361855574790558344559643872896353421665721514357768268246463612799044619803065362479684923337248501934446783901863634552682882094271718881707563903742218841433480805739465028782298691043774236095110374143873800362633265647135558769363731156779255842583208249294555218474618392976672080714101691040055652480396765409026722680729992317092055316812297590271104391908730707122258000219011608994551746216460593942405070701687664434207038945995036931657253612938766954732781970904904088176091805290521297659199362614938748704440303610697489999247094478108707353337541661950291697219296330590814244568383386872521952316429946388633483164450227997690328245930861031162998061448338071552935781311047624113583337895163580505483635662613918941244072630622689072504701570408082331370778338205159278764606281357448405361479710074965046809319712181009089832111762568821689900020670873674258943364311372111348397430692757459610207986179770584266350312226106395949255283050446955745332749084272318065286377934526080706247851896905720940302746135525426624934742516502931792517209201571689673579731163488130704187392764434758691715613729856840082035566587252410938869710879796092922626954068128741495139255748515965310398028686237041089896119282871746252555791444560189067254282075484663184090105829242321031965460591321196978932640899682609609282496909948251399032466811798527439201438539193571044709498394868814400879087095817355182725411405659237311972909176470702301630392808155684288163597118964556810097885654660010004153883371191750144920181371076849533518665557885474079665432492104758199536669277957592204713545736218470460037435186301777621724647115789182438584601470912199965482662148548268423507247525531970772151661136470748461953209468799971350908992399147457408623630815742584614852927114571930496854944902054097545625580659082676010459271152229325360364301825174685882085994229597774841348695448867920363108219799454888204876367696484584538141961173028960544499982597493816569225168566213745794225194671701074905039598976372788166945276468661521722074505420044512541567733734038162780335296449782597602565025375828727187928073657228690493789653221986218405268948970240118088426162525133239538126089792546123773571981930570155215513662627548614016403921988916961445862026480825052736497604484129685592259222771395596028077473239900283734814041469217875044021388094173182309937281000212631132557396574719110909451203608584293241559236491629368262371965648022504831462950393463935748972328109203431526340719236005400663437433716135163404265611271387869035054950585037733980057741902030828203607847749041985706237648508238307986586619544787760931402863882428230012995072628416941476928799823195931214767357391805272311862385641673642147725058237026985737965339693745215548588569436723202252456175718375928273274804458567207085922322795357482640638053616979430772042459904495494074287949215810969249620885799260560302807680343799116858500891446406351305588918981367675809426555562750690027755956296915705420992923492350972774643606789324190102715884840518383382808718896623352450299843163016075639864182013710625530012801442832974632285791279618585513376853205402847505439623646107533400003610970163854305769752604271346722867847390150837435148748627107861640330281122504599364815460066454240699093100050060359901970904397742581775989880913570862658286836657289313425129114979220239114787822162132558157268618294799565988198650782335523436919704629566588426679009076726006786687896701153267023806973748102549131770086357196431656874338851602302696248948032900139699800366030786529035932242737577581801398853402152627708751106693863522383725935662589480986133085569492635801849880194142082494060476604948377622436764837349756888207358357748799862574135647007400610320066485751919602173713295779761035643633943107806677058185143720000843199749560261094918548879370199591831067816869860960986044074655357330839192963708720321080516034126266764621790687231394568010099463635007315995080573658529490393321702717117933375569016710812891604604060092741624387855615389529647876187421093831726924505627290615179920198025896387257452746753514208729458482346233539755564176427469109695481323035518819587158666874046019646475916529558416556641238325956618817462700694853552937340641689214921849984699656414093219773179424531595922201064097476964529366722924115383200605622061800554752792226238157961839457053817986240330933122030962194628459484983610553557617762130211857679152930493080585020258204329831001594686461897247337686389040641416403390879353139654729050934829012520461445676184772565870302148681586800608702091546693789075166851161209048857514549841990214747114061995466846901619370283108200326988872688424289406011781553876487571606102886811482158401889666262346708964844507005624062974569435777586471585711082438372723732828468959684909390880705048782696587105570104198561978002988911945512838632851275300809119922537819589118006665715262047347330581823345240754409244668977516087008133523238139990714953632982942878196976802390721226370432399532672613086477153389137630344656056444769813251804906296448419778095418282376993477372549514401408477960990945928393208205812262488578982925479759414655103570470970310962913819545258216452314508724718264747357128810333522290651481492612691557454146181839416741546483419082737419934730100368492354351135035793343138230883361308826235833454727032343898869652767487718263241627680642075673768458778912210662988336059935211148282119774544249952346303323628384255076182706982583332935808036986967535525236840177904376776850615457471055213248274916608643204847488857883749913079772724753669601883822710413186422773723916256460501797752946895297737337887530078509724325391512765295913654632006975174233153350324374374282794723355173242534451258859256642822522666435928420721255579792102672488442918006795011131213163796320501887874191486162128504223431449435373231972352610133153034335046664367986737684839821704652471312464603918715596412062791071046453583066082128501428089925232923665837953263172727674981116271947457512674821240031084696521795443691471275433085699592215586443556840005141440130146066446900443950935145961229987207758191227630958008282221884995740658311167567704757872620583845658154003962462841695536773599495866463829648756893234762415217410245774689482320601389534515454756862647595391328078646844913837660821135072700341105135612571478738783206083340489625885481812587826635105430659494238387056604929232523551499990922210676188652420966350191387428650238821980808682777037964740804909376104872936585146439437514547986375685083284438636218589948631266460924373405097701951624455458566333775309538911994160494240378053405917129139814976273003747623582881733354826698102602145696882040523182262381709142191626993969080266290985006038904974511814040788715848834863546067576532564783707238839118394159167288094338322340231970221449478386046347627448293353195435449732366677817038307925571521292965754723746987169704018066716341954834087167452059738793174940881690648016768234795488821168142118542387310279715613588175505769352106902213194364759489636886883751932635617085677647423279606616309128439510666161042262943577809140003875259169360052391492395499239278246443697505677050013742092833984807597343199111973033912822676693613005765058573577957723151183527880270661226584534937988649275278668435217676219505973806601478038949829130626574894454588070522761737440134162038576726809053282863734688030751032600518848265986257956070346587075995122971331962472828153938413799088506243909305641007050499580811330054134287218224678114677519027623202023440832712241060418584918290971827980243081398211085496310367348366809454836878440717770866012635935197727899623220498009940349688004789219248250868154864250590040772676104563698128362470496353478779158855538887428428058900029103842230498504602151497679624763623625627871470775767458303659111983893820064969630593532275551191223060476336225484686531617782270680884873707077740150595147365661916406897299363386109718183520842940637928792430730195023242100453800591706889952876684257451721176290354977968115160379649524667506795607191016630085126420594336187153144646044215390438748327603122999326437033536198312416639000599475020839312354422306743170914521683832254580791301548909986854696479992442295239465358605361281735946256465472536829965335596036070095370726346883262178507782436680169299700061995944993400592430364502076454360277021799392004979543236278649717822048496013589143825502189809075901318717401363471370149737331192442147368348628908220399220943585444159943851470455972483361710156470519174263348666687581902188899583746841629612860275251379367233820602345362160616667999463247085315683775430939773615293764104999272645619303420118872889851628980352324380963942271444240632222012373975788681688089482687527955295980961418204245361604170263771958922259997536265618625985070383870537216661740506593259714011865748600008280278383022559126838392999878178606325013841091805084386206371210084978821805970016858845514805707122976859639174758643688043200902853241923033961871093891192430568836117846533814204163596032166290152762371446715139357055436793049006054876313035061501223402037574637347171722804298503089985376644092663816001648743465490777885640939001192667276540254565545925467833901414606601897986925139724944222283834429494392970929418874948251084082937763164126186972571372954945903583838224515120773940395024239242206319402410560123541892243986201976410693017959252528487645638951516488041625369838451633034619266637536189595888182020226234857719300412329077410940501333725778715532399461611885056286629162644570163209292942207815831242153763832486648003426664248025952274477436456770646773938448025982767329519391872168464130778208237921526339519842677562201961139970637225125586186212237783003109085571244627991807097708813239748681727664735034184713544952248421819193106101865543703667011190457530898485422997161672284036881415580188127293094428945303906772588458017378423270985989393965220485506480399676100335897664039301628977698195430040869038280946761968931655886281720943022410783196253074940484111303922223038080884979032508103817985303882230166824484450689125467662171729457990857296150196921555814765055663564501785771529394406133829488750460313539176448616306671341468190023950326701792169172256373704619872080595310249669401774768688157816508466704332199214013007859020293427295289024643973295317606874119824070751728743835191841846343557756663163467262186622211814298314337623105770326720471347792213445276033825241008700900187330779337712681245039857035158626065305799036927478803515439272340049793432169211574023735299982327411094439020833521859067522416005182403910130311089188814744588647370132558413223740519174569138223348172870863980026223583789439440855029033845168522470155734465277831821863228289600716145342361465660161146686345540268604753690246974605443107805875596725464693492337072661668265269095622754855950516288488321723835717740393576938436274891593965833233445477819668452725805487537069243513941484845755632856164528544616305621840552383482332039997548740193018396417899493435033422078815669034144381795376167330826864807259773418302310422722381898711488602698328072550634385243057484105204805098875249275553386759736807773054232071129378105703702120971400481569081961681645646567110175547712759398361520019113417754517859792006175299957708852397351246932974217188344870811150218195336159417767559639613087165898754907952425919808009856336336165288290039670595863377118935781078599953577446586282458187023887368490905980764406596454421745648487617540155715863576675971977698369012816736666789623048782422605377076462054629426666769074890148913492250936471316858503582250546144616467174915741047864830061083668268436334859515905485163507407483383835181041158373361068754036801009944352597835507159179135766436900099059472299683229734565313403541644436117144741088814435305715591859115571368699077313122792730585131082778604749071364069207373018571481280214879753500362395342702372478246292678247222165736841875818795196951844677551557772084894779832584791834885801601225697209240357633950928495459866994948270483755964205016655377898269723870417136523952555290732053554998319859634720020211552985976141881814154903591594699428247216375695271934109386820975971748352623266364459981270880236499276202105442930033817864423905716471239663304908909005192532488113245380272876968062148996851290946810633885304033147244881518392981094062148738229541887545767468512770294137308212191622921594248108750411360653281171891806189347068322084164010538621503965484383778426579543827832870332585899612994916948644532560060162991790970101984715773478217173017035080460104711159913220051360838906800325410934418718429170351358648566193884444518669727282105184639287533905997887726120452254812044027962551692076963790810676326345742911249558239136937063679961287939031827230659549283072938841386030676244887941217494598702137888805897411378965569269806136576610598225996428097150393328462348769029758383934822062850397079832788735705004582401192519718284307757604802925929923698983017435848028102746720126604569514031146345583572278590209614159998472301930257181103238549453459171830696297326371727575692853137006606403762688042563957048257221228361790329190850718944570799232295035445449535141369716322381486358433155257679686393292803460249099836267509131017154835724568239930048950041717416526982883704656538535838301864810306189998338343335380700860023666288407855999694127209467247442796411392029994884520103310337168833369035621638341700727238568367499915895747437688472930128781697693949019551657125385886522083090473198255045927749437873106305764090234790789663715240001729108289500951944157309184421949697226147766936299279458283879808592160645683218502207345866092782150054499563899443045911898984760767888992119480748044637932079519591845260456766909955471846430462899712881603701880977009783144610382802283470282383541113438199671969210748921265463970547872146025412058474802157672978960025731234309430148020076909635525501741741029641130025200156198917359352510852474719178917847612410321210325575169494488152821932680963761190369423830919881911456514331601791249880685350830570514583971089122858440702935155054627117935879884314520454796733563998534709404643460847283321988005668344111337851499445248412704252107747722428773065399163809246202289846149824001461073449189124682481661634273581781737037956095981240010980540552396933059989248227649297223233322057104508484633913744394682773782087765202403350404517160736947481480178990470367387025489639749314328092934872346890756402039012471541558531432299832566353854820839182907923678190183930119626397981671466852550463207337615093066287382758408576378262051856600812095859075041008764678893882660314728441771328488526318091468342603874623321449359566841068627886279744047097959754042348652615442824942592736819808577969150545656542775368721489963808722271377820910446794056653212334487650686061957890559932572721662292909399785386697226259249525090747803853469547555540337761771365773229080509365540753466832221453700664339936858399897904261549003181423565822943290673068492279271040554649212667541918663080267127857850934965277925316229660920534179743805384792601867227289848853270116944476584651496888404171786006393979920510262548486733884844062838962567575893653767218305120640117886869139489011478151795025014079083146273823790838563437890853001200832402915089725792547206432655586214841841620392442599179793535228793199313423406777110987807596659144311704320756878283480113728004794893719980764733329827854106805467972775588445572883081032889572543238788228734651209698374686667468341031237105747933475566703172380317834738554911358289161977387775586252405018203275757907283887491994332241423283695072466595030607245024434264249838140900352737115688852961210712577123950705687869143364620611099481168672835078914577060985327037226171564264083372735014149712914946137124518460922832227853409771151019524435475757454846531622593087766700065114964322293832045060386699358866109400552425045650101827403543761528386189942131702949823786881225521877672416818848163455530225955725819987131703157868977547694242215113957409244232304943078829477493898362944191929174679337046415151996802081309283865373813905191896127188416849414903307344079716297203182003021018797640939933062165758513716001499629504482615069144326723207050290429441530986313306535382194783259711168239253188301913290946196129485388988936261455048674464605532921078474462256135456146990684074298591208415091831125209620404309399623587947094950186202447430608495205463936855032120333087001100229050200768929584771053471828113996546846654811466896127626179584198923713513538757633674746147813926138656684593507690528685462894279544216205022977743875559233979560612536115159562941054585278500032129277303232121210197560568801693688771796772996473961867231787060955296139779530429770487666747066532892826538848197525209378524624861096041829443496347336997310617854656434904734827871211883993511868700197850030350316811388339201254195236083942144810694149446266307119451064123672666765250983243725420537693736427359350640859691012364511445206742829267610209978257677795439083192560981010130606058129016537193001761163230443900134902698029577185848361647079967588295758563883719397847574380563064673673233971003200458103548153534025856502295227543303430969910920708251985149485233447360073591863260475928000224399965601556293628853708772416118941672126646993977231222912456746909136994715333664888503487321229465871002687027877570474935345235526058759673056194788397589895837320824513464290011416192554142455950924455143186417306736566822388835250278114710973258307498714650074320413830007852860377276015582580995618727460841103122288525038319924844379870283606640332603376985128715989625462898487677967289472713944050810387412319796041774985179804111011664913078141420617209249471393127425462540131725101656936123188778270533081904006043410357046815036991399043657267814664120222610067268167840340290192972502644987563430125477764660221743661489106066291757978657276928524917034713315374856176378411827978025090782112877105029629656573164028763304843605794096413160416969150716761714405776593901073441326351998143298571676894267987105931651556001665283248363487975690035716291645019454559348522029533475845464769238318964755718745995272242518125403381349551048179846161861896763514287352399107164397065842581319653246158147745881056717873862126093607106114753005920170320053629613750800893269245610112435721913994786081427451218040466477568430877139133598850934759327882717473309782047287428885355112666750086040801761570020524542213653113399338316443805760881429992871597857447918038075354127629450918062917111598387318790917167819766470280801484614465840262167717607729400892940827105294298997352723286295663224547826721696461659577891981223824959128860821739519313297430611906434819119344583678436913604104605754437232623348909148353212778016448028743510024423010293774597175602491263717880664453984942088850341403384524378975478082352240059425593731895627386208059602284322864983852971936802996994070233993682841561861799545883420290415115906481079208891446881216351392697853877933952704717766046211505215947427646880400478311910436859338198734949910725517628121447178462989831177400436319725814378955164095763197479898148456160451039744886219994363936189251423659138389690142497495762396385251052974530729707797708723187847457002376211254660660563855090308390328789223119464576964387863692755736297852596373099316061865959755952062294688372976114027678716433853559501737361364377726233999690251567563864640327289541017234860204942047416541221630746925840136588441884535686737549522889795687620810577335099217043019742279133274549426945237828465635003288909705309597880434651414488995718518708866111395374771023379571431671785261382168572136984435864320846720233711988416060899238059594024606492366752268299348362522454286320427311769688862592561185471109053181572786041474264482869537392578547404704754578775630956682673954491777113546474878758131511678210102334715828029366316810938579567878040935041194498825759923849101356153525202233684011878640093601530432588733271226732652029766477041501583950809592151785570400803940100029769024004860677537933332587267149335299740223564048210656920125114930229321625327723050141213587100886894729540688053405963196162805118268701209538167693344060642635323903665116219481620983642672588746724283491657240617780793793778705742470689090930213761771321861776871826334504723630702197392654076758372368189588597426352288091230867940903117397588660984208187897545194553962533891612646486114051270207293552476025192744886660760082989397059947346279738693533671253220781823549199491523991277642218393281607094736019062495999699749725690663254337612818449404682679961497170638070919942645266919966600380036369790555008240037707860053115951735565735695963716041741097420816831398607725171767459927617104963508357192024789370152063264691664754988231236483468978959561607651510507748597309145797118261275720771916989131615613848577356670333526624954347353143069747427155680887224301932530044252007285720595156296571929449814919961827120209701631966358009435580386375085730813828667933296102069608232734867394554025368641429487698215576230394343657812967820550697811080010539230574173608464333682658429239445683410739988835149790794118023088551735500863860723735385201786963578599456284728590388790209220178442116590998267244092996958710458253413529972740909985628874709485697826516902461699058832939841052854199453196214127668038961750827657713663461704607972799569506111127067642048600788227827998221415637681680371584302066916296181294479811832396606774184941930287630355905738772625034127284302376687031940861542540804983331839906500616203867685674780823763641119103636981510210636244990090086151233199516922684618566469538382549754396387419925082527529867170544904345670211343409912638591513373925297108309311341537688454258997633284280468294573297189587045490963961867440547988643528746394225452134324507017369353669078362850187755962931348898992215069206954701451323713392313470422297302646830746303075495161970207821825322714172279741162805920337496985778780148555057866843268693627283093314391492094226195230791444850278974517458618175558570672138783157827913725507022122210364427564066436559739245680130434605134463886409810106920688649737371868974093668625579569219342081788313766120559847806542152827999139751724187890846373660490539763639672783783537878406375906945207369086596304907186396177187825775797069082929280946900643761016728270577540222896791709581295637003283743335633782721476070051671890745819853696022740834316976115120543546040825763069685362192200493785617454018111861549872081744188863048400005066040295324612202813904278538979990798623213502418916019827512798710961886046309555773357847282040617014763765247707434977301645961900067597661492871658845723500865787116581625088118298593497837363173421150094287523137000529970799949284307533253501112594026351419600475233484695923187940840328506335972842289230060595320332129993373497828306218761649615666551544391135254981755743623078510048356703084034041499609006436167428344547235205585595381099394729512678070167379859946605586803778737151635855964613696581989580175789295010048942661344966641665680067785232577376657140245571324145577441779526726503653593075592419151849099485861639019902062037238345003017131611871483146249748586110995681906989191459428668458661058225486571451139139740135587675146680020343924139231856628288018789091508323121197235511297447728794323848296407528961547824143064913790785041043122513727627159876734611100129937290755153501550804064647580248663904298104422048024302234620924247155761524034407677117148147267193135564143325674574425061038636176241238419558425417212140257624551496660060222589255571673135215498974671519344653091695603314152179180814008074413606475680633639943925388043067278534318494248769530584862750665717126114173057950402931114696403927254920906176589850076277653633149094812231209275367228458536142832466290942081794035363496438653406100202984493375634429317750288965205818198896031820733717843036504849165266368517939228524518420737824503381791251318637781087783355250366152523666202245413130008035106301638312960760743641508491792345937503409198239212013074208728689692486035666087288691524092229120750412858653774439211377009898417422729225727417135636950386711469783247481416393742271205456566289664053919244893209070183657285869316962395835070592033926563577905865786793647145417959237345758499660639216948773620559415473192750787621772428814597428913411577521545308597314558520481478817368521213736185355072278157704348425145001846555492543984380138962660997591437910557182772314126189431699200980932457800374790348707354554717978955247532953753342433713763433760907582614084059512814125403413734785504801164064693896920542717494496034842310061712123069576303010206987237660147629673922073476825885842272800587478574807303968916840343756747439314659218177584989910120739286361141532552596325922947755233753808755181882268457568048576266470581587291179527636198888303772491383660840513561785170610269190347929240316201520008825464874946479732363204072250349784825181705965799456828486421717694038088829004938963283119299374626748363364810857046067757837405569358642146068601182897427982135027881265604128429341381814157810869530171761703086063854056311889144553818403965820606257843247770704040135804977446056693349566912569929204202003043593048076789271787087648578312759802832788474603953503661114852452983904020586659151608658102392453045447128001371878642429757224662938761662916238732041489484352429724076083144421091684970096099201688822048112836025097909809051373115192642510418772834104515637971580167119409301950940075186452932347204617908686914499019465436777769468537599639056256856466236199713007737067769702038625424732189613016950706951138992467618388548930093149009758343833066532524219947180422364586433324225908844823003008843330991444554029615651632792105008669986070864254865673247778770826931159476345245198803966451724231197951186685989283071980880386854214259847966608099577896563116274639645624511860210893546880069890559977639835968890516553132259809062422045610610964633213982114105884887587405441656363161794923322916230648003956864433954762606163799962686065409558465980319029721816471558315549992541689066228919738041168022250415550256688972781250691076844552588171578880266669429245756989883494834677453682348863638706692923741115047676361523397223458978817937948073742798185653396967630535667772944311750302590214676306357560548259980274922234311913053667172755527447267951220346859358967041102312897935202379920163748930652407502096376386902493968434760714823208752131161576843257932156589684660175556183827416411227612355525547506257990683316994796021300460154579425150614586780276847045770995565152644262322271984735775958454258638896530449859363179480206873403450804932739330677746409496819866835162991673049726517429626589094147203574547586407277151786312834317806998463883555919663725731163378892907403539298592756951384473557998949969517227373928093122461460661465287791243342037157655826908563509276939874058256704810946068107257530337037735922215403069890901885596205126014732662555625183015200545766451534095210923433304426471007706331709777247723968374548952698773504581937684504794990474820032560230726597858645522295958493404081791650074457814318778463681103333677003209440215587310516192108666500045012271072487568123605759797231383720494880982573821880662841300114005454202263895869335565695334455989142549663422225169586526901059776205612374828646525645770364778657522042856557143722595933566093929539773591507957881439950460720341855565191612006254945183719024344668446260575888514868298338862387855854714155952324277469793194071527909500888474489525065489300474097214663479575792985592048751042662528714925066925327774705660919754748404442058188498833699823386492543359239282067898311328937972205757747758686641974788577778796557031405261815714051374502954001337753337401317067385254996810081943408855137131147595517513642167607960968908094408819282702123741616725540686631755133065750286781275350248683281441481614868071917507749217381997481613998335776056512261829610881038566781071905891168437734108268824942970614077595504283619402451911284049185915980451185419500380616763535108769426612401623909928022817471932685432584849651435012999722519610733793136666700009245975106066618948242661149186635109433203708667428097352855776052418742357974923530176128888873677771313529001548439136648746628258741450605151567886006499767427344987096884188206157695656454875064235771439626164769289575846587972986338680827117248999725634563694278922086684470994661647648647384405041128352337059996993537923886153667789920473410260054978583430631272645755905048361036813053751643234647850510551665767241762192712449797289589495526727739715420833430498016208842388072306717620855263630263515203743272577037962600303403024912427609838005737151985934959353525029463183093985775855987788774208186722195553884528816759774031059009433727409496607427425642870780210169377065218835058636029935706056952034671447912509126016447434717281633556486213457847094048288406107423940739929352608919180517876616339831296479289902696348026409968825745383708056193795383994042436105988499778578994903276838506158991033625551093467057112937431003810252869268546144778887980215072259556866942659023587885311879103562990377094564637596830880921370007959136231972801232995064457596802240796464663178460723326363330292898159244671264781620739445013095069512077091471926076738867813320025896263388001857437256012578187668798080700424549966354401100779362827945621526493514424376411004867024131653871187028685766518398898420103943132954840961089687164376991435462806138765258086616145360678987873055959602968302996175784219840580942949049546913038960757362532546813383089113588634558091629862449104066420565957172664912326338615320137056650474557574757753675608204522783364363237553861765087172759963909429332016808656712456313646370994175161425142614857959316372309789633245306697410460738095014554346007967772794761464705119716149602784856712793794070340810908961331337859533386425213691520306864959660814890535612652633671805360972443438880684430430654091024479480688419829633927453424457424941014765516169891768035332492312040265100245125158101510902012146658803330259409093927421268706594117936249827070042806184800023251868464054271316265944135139010995394887550473318524873658153018649071554846779956264593974364328328584351468682721556277453685247799763857322302507860079436785401062970962004658889179221385351202915004559111243916199524556055706445481634865142054312352547247045306439058280313878595498828129294546775285601278786744045848789087171130057333486480967828797467724253210070730080040959614927182839925249654774536746487158940515974273745279259641409431233316058038448988357530518049653745094251196624909711723980468182842525801973892313269385142499966971404138520931390062108486974757539946465412620507641817619748763672288836251831671210094206360848535810816053256388816505498527076716992107790807682924494598485180306749677307241772143105556721857557657274960387817285840434278737848445229955669100059574265545517390720626082644816824200943375297162087879463935538468118475591044939349039165693729147139936534742015399888603498296717306453005248503057466280689646696427378405665086629239243351715967116885488189987434960236411606185523434729785847251296302466874824011681307569258195261834221462276259118733883508488874363923985946646385833869811720353303273088192363252159594645559051404721881068160324767541975224626220199233696055761824232785520088845570626482325882827719153597499709438943583708225742221243109406968810717707837374217417285121087097422666033570572516730410747508860522330359923855596261910313945638687406769591065981005599418841526307910549851374272803436250957539980721761346124791654249249909314995723713219155529893227400831775330395516417702157228786922541608728125769811967608533442665289812251176113095245142108695751307660501750217140574545190577925374330926597553784698757466757304098400656102319690197029081357469354605257623505424013995585137861434948707881570048974931861936263177467593739836784413389301043856105306982699783997289018383727232538021446349744417524035678317313182953557875039472193186083154712822567476425423343309199673812259079517117991823155536863405219683102733771107997797601030095262030612260390218127911887950240002307604953992246713889174672587049826265413994479798627974369193486810546346227453791256873056746949800861482429787480642538982029361496513175099499355795356474503738061400021673213458588189508143149055067454692851436855827247143324725111332226472499955920344515369120787548072683612890896233827146069767138434577366655139533660184962285765268513884588008894999685329253013373331677032352531400813921442655152975795218475647393836836953343626012246115173415767959204881623715175482825899270447218205903173219965331363131176063614047183814112815903267816171879883520356211352115593008049765388602826367013300876146786644832418759022226527223427836692217620985142792542782306139538758913409809012182342612130564271372633249039133591197301545872452236142422133275483757625749352227388342469055062182637167450097020914630035198172323933354239851605394645464959496506316715992356056067294222108764544716837659138512413577757571182906268233914056359769007413618005812201354198035808562344794097805167125894763941627179798448180617378002167257533469903483672200171057583004776469576313843683105579927997468314709639822163787190598155337779308978728365444362325556553331556092830854267313827826858441804978884441712191356470952885666902222132140980077313836811746058826009635841738488919634607901502547608276371750941425279762673986559534563985750205349199173128305773026469950429832566011645920644826263975632004487528559300727223112126455588800055573521239182490662559386129982695604752148467884545545980773574531343482326656725060441816026718894823700364493753892716755925245475697452538165168329993090777422315543488361234738908019577682874425622439837135008772500774324487639728079103707302629015581620502703403073581280440568466180687530292103762368060525522015033348331222646732808367443073945880702232033553409064259708229623914011089026465775031051211355723906780371059801211738743190641324299944346090244490053634418827622803580549538954783751220543206673072761119423007388087675300170245128920975607046461121880822556234518489839514527088652759708183782732383234453195233198640591969491053544772290304718340483391565729244486279036935012049501077497606036356525093272720463303203536007912930788863333458113948097736178877649328647641790181075311089592169977644890074739460927640248468309298377515529647239533161362686969060470654280078365267737527333383889509111337747910250896388374028047828588182535886119936019728086343394188759951318618647822400152425637931895925361428583898339213570011601272895593437039185798774986748309558062719725360969350880399111951070497943814353445747328488329023698743796571270546459230024617471454431490018947703905889856214429671228851038965202598780915311250295263749435042743733038943565159919467775572850600085813044184432720034705007180131116343905316663202773369228498476797687859722808180797205491573376704154900618400196967361456121765525256563818209363782391002468071653694702990473996833515892499457219811061743509983329331496411846141281914837044123038285775944815844279262010027412658589624398739494145877740580809723236267898733022820962855713663513242532257934661346912151552334491332834039528071321574208229889957244371353172998956836294469701830125968232628311027653218136927729939347808944886468095524577289682795910461685114526027313173266058062771106644519398907959856698863740484271383589610576204312647570810147288954403798363803744348728777007444904744361915913127829140209853079289087857241717211028512474571375409086671997437103161677265815037459654568228331911225813797081938334436114658298674294417539567836358622043041800935546407575769660608568820959532445205091839019607980979143742077680320440549429432212114521161645447969382681232606526831901473988388178332579006803383576753137471547718876714691243307270502278429656878313196624850266426300937647825330482382778911228410340019552812386103195963039840137429249666593722489705838483508987399050170876759112472720736327007616528984423872496860529235490694759065310317602946579070999311727024007758697361599078249221436596253302067736932997107934807837246902842523890802036726357846987993153194739269722492980054228599497543832229295737084286076045458140661719277635845228476197611959888177152330575903321671219804126487891054976093796594727442073642789627061764040839066759183597892512373163581451712903357580232332868526522944965474810134592559288594788034365099000227650014179634906277191419043908690145049795933879340345032679438554273215656782877288041625738129847261046513800119351867212509294921912565262337988611373113094773914848333110697610849297374784069549700206455371627344416319405804802308204047572044776791371885530596176266202030843866909251470118993130377561269510966621841691228183869213345864005196678212335481523557583324267269153233395847761646768268002902268350315291731839738099940164245941517483355526897900137573607011225186784188547389962977732807382357698520267237274750885164802443863646108432287831411158749556954969880796027177934014004112643392946863190007767289026584465461363611274934617545299664566609232618322611442547247531835027092980168941470244449551877814409846409253309390518374577675032857745590756323440819560296025435217721411636429610264573018285105133799827985038863619357554365808000038562088902051741784620724024483865789128605856307052498229748179833234091800034040235879694261996513389962135218748431274293062880783957782738755541212775259427827695026339876549009895399814320230927845754807321584907686956402634628167682430897387349891782354374114842813918386650513475383567343013681297946345042655203814283286107210187119545376708421767910003779459854541816524135502315944234624369049127615820818606723878633308791905360741509583105837730922699176502517703778903019988677971818881065194723474990369716599361796600067295471398669851817668885192100208353111941654770944535235734502531166556488713139576641991474423393880671099707479440700260224463876576396687265618183585043820170048038661551144864799858366416781877689956217306929092233901126849607939364799669756195226058227877422790728726619153032919921363219334381413887216384177566191981700964799602542163046077967823876525863095663181972697002386865467252218120201805685425699163779560262699568885778811915309463516103866727388777607624667144243378026255513614350195641136573074878323084841118066253575282121265374122631479836805269791146886813256544964947038704689492074907705887964622020939185408077307510881291225261630861686479213638903773943918581933480873462696341038702754116790658887613320219648578175604869459892852716385801265425562568892121394393759723651970474397017050583106943215636542888982805067722748993786216840582660753991325004949573492174754423427780398959680831182035972489722940285863385890982105000525010514485358364039102791872635277994532369847531087931854252616186814729727615550851980669587652869459883346916246528601440319089070963634518580382827216783804687762294410962351860067178327480479635332551479074640825625754319030785156757123762607955774331346250753708338959571006798620581334041922642863907325395383019330629527281676995425959816091248695118885030250555980578000306400398845167039032321848600705034878066267092595002420942900318680544078475058510302631714385131416645709648829579223013120435634309356967032031397075531905261356711107223758810048513750469288797074386066391949117755501081958753950996487782497757685569319105798818462924138539616064317686582884272897393056983533197172677586190586027778561808075841978887922255412371120274810788723227441352535595500779580903030619348620943169985003808729982021459846557691767415836501113761969239538451400479771183804129199662326700195953228612460912080021783285516149844171919071672496105058035661404207732471990619051541768145872331521473816941576556533744672127183757311934243755631731421276675542950744516537936403080115572896102085533017510484723453550068146359727384311503254374147090543419741677818339088872016893292644497899333399299938456477856741383222373179691673305189777871159059804762896578746551851251968022374311433125332623973062814829316851879008115025308600294996438736417243712863935720855958920512154317333636055920470486554716717516117513940380444811044506767204154526163599805931346644172917971199691762093176639362014438099297759163860025201248782623719137579583480331787476031947519496136232949605751985935413124852550559530658672528081030646515999421164784779742789904802313592424264005181533374645104638530506745582373266488032475997029275947873813712405735153657930782513715895890047881439245968758404722610634092995155235439854427740592070268312872000821565075466520203057279971574434853383106030808458608803985334153342439927947355692056653889312442143778487424502230877595630596347573045547994321297211518584475916498235761423755980798596303281623003180737034399320873691226377974503416562967439626409392759025267551889538163170459366265343403411792348469220134829858685081259337436736041005917646033238665678861695620055254276775302215862774158756893752650969179550961856198139216420621631233075230302494861422023262782914329017367738416975111686569324630845854404750157179035938768228499268659203116092801083069354157617073836844543979155639983950095984728358584484336817165711962692990906631267268849826812647792580210207180877368831180181382599819230473071113356884972034177540205732833286954703728118175608649650384704772210305323975319693680590693064178146479152209695902538500829607213761154195015734356871701798074016131934788794763380638065517880833724988543110772865448933274001862419275613768197306548743842229044586206923888772265546632115275496067659147730107565942985595903615443052693739575591578803529465106361253677872575826190582667397802090679162392683532495526887308139441554852935331649902860274239051202159084533204237179587697154154014503701934897582030718731942694677977860891883413316206881314776290085837687535924505433265517744603108206703315480880441156628590816206113738544901758513963837444954852883218661969797745414575310052391155880660851046958374053596079460181130938177391725838435552568889183623935501526906858599870823168717921100809239809964617538265028043435184137967017942473718256533929667304075156577616024723361737419609561171696381554894604712669116248942352949469434337555074802444782679885671273862511940929543206058043842915806838909490548691893081378251017683819343452356253505341826012519466472791717052712553463844975951904243171264401439917169962913685084860266795550518947702746770372651223959612695936799522879706409244545439128357499972913307893301433802377106142144374031109114314957492264322349546932736924072105413637868367742676701240275245393810408892164768286541795173586490215901039111298436653782462985652101472676383860938270893606726355041712388099588590786865525655098228934143067739020495810776740590197723587628564949368067774961244078128532585132882733928220872900026133400045958356661724518810776452895186157134883418267808267327163956352498402348230093351204935228392887868930254526522829458574669410661315039398590441204480526694769957706855516068633166394646917118684312868808761186268427331836714610824430905650377806286752989529311251837109792862078896734298239701661870630519309941178122377390409340724805828720290980134914916818541617097018463070468389907746857649205544872290899362873482232099583055130791916905409608265277605629181217943759925133619589174312842786032868420643691682810686298228253024103127208937155476667258141447227372446356366877899951753713052535582756828512266700774625045695269775305889133881912876264937267322470904199802851554165326576291659528775940316255852942111114080430696188677434215413845768617125375379990541275679958416483618727332589612929370953262986667682924805084765444985815782305278228012354110184359706268216576121437894259032661835418779387485606158447055645943567831643022590875560485757083358267733379402156078774091015822992859643936898563775118320045294950497477033956352070703966497715592599224040912848952246140553965995897148031613665748017532547036394051227930834937119623755342469476466071052545029160628894458733236877247936143228608227498363578847379112013122870212651921489117967475458256198908546189368056035979099821130379319671413102397015053593412338067057494885066819179862610618197391625470988674728463160297310636168620487684420532365960953908021302520533735840874064042876308206424677593917837019997799456009092040696474925475069225472769779486772829199062070679100954917111815627781593997227763152104477419015563438199148712868883529468373766318256696551143781850014064042335123152718437950681878376746824636716000711481123673269871535785744511111526965433733408793984601043416575429050324113078901326836261563816251745165598396222732217751263930277376298450568937877048322168931134495195934224838908868105781483347178395341549832695495653719281538058607393388403403889171605822800722869083348217753317034462239975097727987959944571053766940475894850261567342216957505177919462966234632474569331702642370259885982099431936924108510684932382291054312556165230066935298282771401792648175869764523932903989674760506754103870111430197657264601358606544198076592715527788025292055957827885079739618767141471523852435077137558399159157811777462776784921391763213107715236904244520342928192302356778652240292748641665207642166810144241327998983342756313896595554228792910885380480936845444179429029765806743933269332762136682039777144449623235368959742672939318158755733032373033253912348025029224718708713373448485420209999532211189040602229057239540203983699376114180965345584610213213051409360504036688644643042902337846641579059048781308932582946370566206768227885469161132757919647200881635263086742877000629378734879095589978298864504205261817691732470317911028195189418502331413796372640054321504082042356414638490772989735213878771274498616845374050951292706000545440877760039292915251418121868777873810336213717560031274201693937063393610242347844436949666502988674232776127217220958923553537592108962666993181794209956744838176509903276017022526001445137209336105592637279592528927619314665405456927458310394742130434318192077482443516413161006552968447187716881076087878182698529181260025874369211522911381551461357189860218267865532956474159563976804575282557934629157717968684269384322092533061683544045684007471645995064222666227567603152713907313141945788330922662729360015539814736863508519210624011759569993668247140530203600042570646683217831242825188991976990956610433887267466689398343625039783986281539691670166989334008401281824232767340330531019585666641046530294368902879201578398439425222246535308040805138740587657785871570549364061733198649333354865580386452135169840933983031683489617212145410490516272970337502237959477244759257152993680219851533798322689687652788279901487233372642636237250004914120159694855878874850303794634236354362688905503667085556634650483222883525549076588127991639504080675222111460415641323942841334488865121225116437772681941778483448621234556963223854397684225161024958269295363328182823043700048195923194726029143009984093741785596422457127669320303380781281226606838641649844108139337501444613420431036233591394314287743124080596304887788723892077015829089491504992538807080117567164178886136418184779186951803219430666496451869364800873567673448143326454802289504983004222371048718250107555867884834859967672813516896016301401339181119476224297476052434766287868474847317103219501867899877544904120974270717050895736437405547762396266725090512898158967800238357602442518075951128773363996672760742119531448996830831678806651309710779524695021734597501177436535370576657920567549333227471288704541264186756696305273244043231660816958329725352177916671106980494401183374720812462153735990590746671486231978969829637072810803952718432006859343671351428770559535089960143547100107330239860906545442050505299349896384169612983204036465985939769234379157636274501306337920010009504141961458760727157021525034885763223210876222586557155413771943437409439619763233800787906585883415929268959747445630130998763672083664351085722677507039193519383367072379086685073777477814329836643112422669804806030492504729649720973252336430908640771087193247159193838696414111197384504565009428925978868095882482193734968686572693530616612834487592398601868875393944265343471604525267318176028244058581574240485384401166496998222098560620974433410655632751125304059433964036355274965438788367083543322764885471678934699835866317514848782421061069847886415372781847821314583911944680482766003348031355029689468499985465596254272572973733423231966989143024245825431645804678015925674969050019441107985857492963613807055838977039985234947633794838783268618905403110144843481603202554837982261324478025973168151958816678109388540207531959463777929744757919409667217842991450596021145182128477764936836282594203043877844340445045794420060653488426699397735268348470942234261835895599405134587987337638889463189572943217930957134854805087920671040862335624179729715361830527016255560826479000607692522689676155967807182074017158307982711635606777412277901800166073385278927636358598376429050411338807596838560685097198668485325408719059304189166336927463379851917025821428954271745264057392896131424176222338256789204618772998230415774452977345237015354964603014295266044728208546040846688409230180842727269927836144189201041648648855482264384652649110539626011057999303786240300112020543804513267790621745582918588512804104200325359525759685711851039774636427040109123776530629060110081312534380821934609211533885460277873698990056606023333025011183345119723637956748573506142767266413881942364012227404093213937943652649062610960324283330924611840266924569213586816370503645527839693446541749385044455929099720755612255001426788322993325204346131807788177910709570454467763888022956143959761042471894277915267058819377479384917916116489357188445915678443444326724191240142498458242343513511957967133746350867087228801489829009677230384145433696491905645667886070590176604961904930477900679457746536351599744896708791415671902149409250853493892570573130364580320962052630807072092973913828431038162573656533259063048159126145072873152732853015756304283987917508352962739350022299121674734404765217465532785482002761265587354650664086666967031117003813177329138849680936169961172892166682446843303221149053231588629899819313448736151104703124213069611351786238045982862277160029919911307606106163466359545936108953469093362959977684325467278876307061093847029465683918691973951201082530470109781473289571973830522591892880957289384582098245243283385398506608953179355413927620834744034399684837377206007529855858649940897201384655988013930474011700054615544394542967951124020954372739092154784913625944489484875814404242725886750355055293592755879327247301788482458293756874490041112239628547064065731352288327862213864955744784068273526029246995715909515488633451125330350334491126035385247384406659984633190511594760261597769442211536784574456701414649434661553274612425963461535304239970703871033015487068012124065796959183071469103723306996571877217515292026845056952829785231694806087011354464935808831814163851662944191703705033945017408100047370320144928978450807918632663988067172184168716923521864615592567851801664631486086117336445957882286860975589564474678794493588150326704128794136140555884067980221205700652177812445127561915494611085360813307880745870344152292039546071810135700880148294414787608564079206764071221263388323683508229013546550849069584361658781293863448637290902018543521197556980826087964796719569520827993169616658310014016042769274631529876026388693323075828064019279706040086198124313592570892611943533383392572085010616398596616173713677881158934056392403294276879292120024696282666329016609323772573110271361618235162173044317368340493796446866975006576301019102349870428180143549501620411101545755483732005296271517392838675257756785440159173991756911019764278800537347336710558857652364630978808230507838010826117413412060913496395908378393201171237204835330709010377631265009558721126921406681699357164749235933573539179421210020493888147464530923679324385225249259492449039107635598560458200576649437725098375023592796926010982809752338668835198477222693433753648216966712348841937985388568871254331873089206092910580135777903158359226925403765700628994113201470591928795552674993962784052548895470470838205997013268731446391215686768105810236125502471100889343376694808766376562695300793779272676448763624240722959173586437161067027529445563495741940260450606390033531570648457317215673541215703106670970755947205857578289414618491676058492810376668914946966355670918326282571551675765887981484035703239613139003459805005988239076265343115565004109054360042429132557380698981202529391194001985007226877359475103277257151794678957100701662634806548479689169772725126997923208714941457505358305319428281686222545254945477835677231010006738545869526313118064236707569554890711204596739606769446197595033539378878612588330158603193212441477015753712471551224054194614130136058284249194029255201351042075786010060773062366449389466709572194855144760485240892974206051507953868687172869273513138815392922264178617483864205238886400834900886099750830559827216073076159477062093052075500126912259436058002984526084628878309848212184535848359669027055170906744071068407578392635161292594278064747652924052182823736342696167662876862975931047127054969837830358578285837763707684676902250977314518097260049363573286288528783582486656128597757168480965616617680176303328945820774567052264276473376156537241729168175038888420472184812330595200460145729454258270356163234445650974291720982360067232516594676049364336271278419849146174669794978196914326017548442262566598128520603023865835708392882889271015986400972531488760181077534021281779963910562788146506313799852397155147623314485004492934460597099926648623854089357415786906161653789317236580007276943864012413736040366547275792159928379609164241697832293120728345629516978269989982076151468118598991829258189308317467465665275340796789031303050494422600518900192986344902776460793363440657834037241448748993068331984737606322019177871613216934535113285413309271296139740260308794701301974386970165924644889042138362939014712267673040086064610809695072035308201107066214753913890727335986009121303125134943521042991795482273866466964326018133800549133876038147195546516551302740199013162959327382707880971674635241860475211179325860550092766661420850580300781696560468210449405836877457356257830473304747691304170102842400956532249822175097157530887084297584660445136539644977819340677320996503166022991085068538588628405169621936335454869258197219652926719113322555717086682685324409830202386079408477093411607297883680719367278877457953846213621047534639612966355938150452207030245013738537017862240563211875313208193685236896273879220217649330617198724146727431217505304668388714815102631787953766536476985032006372784074828959759379161609325536873873233248135419095639585825762194871155503078915738617482937888794543026118057561795429468527890453472410401133166669673836603393551893422533234763105820610513618240909066590988557675412960730313306625696854704355672587660275920167451090809219444130873831774921323518820247315220264826214340119376901755082547796874775191590004794586445454656074408364174198640993112629493432878263871586923434532386720903869833386525278561511490379558360612689603511072916468006943844699979095334814056366309253125101442491435387017284370117547519021962251941709023975929334641698963028581593693751347590054168816929781686338617529611557382507208377729839264246092263806435483367096495293509281761122030833864777735081367210814317468057114309477788730307726831055673460722022984178253071334605128279232075539906421785375524089312700950159807423145416685670305900709675385822306614891780148989681679549398110071672112868358762721386001067300801338972707736976985570552456507344411152385190518953350738543743484124459352619523671853799217443300386219092974286901804604427923117093180209162669422045108507012013315580333693397033832597022574126367267710784753229686365257756440852232777008462445821213936247201465364845360443427004672170693288965491099490239298761902085885518097274113736400660605750561544180538385047298197405814089251705042606716333177400157008242827167663405001555283914570714386442445543158921047948610001261359543225298874353982004903403993391606454253753656144504770067382455869400852500990664809069536472475688169289643618612636603788519207632494167036230549790582733471163467782804805841675518250722838494125289210636899121117951798465350203440391192385792171012421189907482229952513525547475014802440511881035004898813888116864478825443444369340383670777513952555212150748171383004799617035596662906826971752819603579491492939972521475176758658810546465962987809206979891254850261208492180543547791376562079305834834400807787048631096499975274399362122157343185810870431890727423812444919097203852687134511305344389008198177642848693311846776543593575409218246705092387490638197872042664233208962795339952866878679074836293238037414112592495244354847463056695974148762581988886807264065228376735874675722192229774001872991638151763737333499728234890993345935007909873206688440280861912535142473441887880243378243913203643366969292703603070078412726016427676528007576250035859480370755524998373110941969428796125367103884658624672572508066635034831910303843992597089318224048137564105996652830369510172936834738286496748502564087387148011431002963898392654192362601571982526839362723378435985631254097719358103362660914634799519230861587001126166635952112803130021496721629703773302061440096988595860065000237164340983407079946455225072819400966740560430561746632362086702569308147589498727618887325673757434552295173095840870293348978651899445130585290104404072492124796502868891463688991873726598921365816345279783612412772831294355936919260109667165452715674081210655137046644930249421982256760012289452306214533618778413883396974522284135472556267917281235797788308147187549868949137258606996616299436198700802015221840192371227720143908502970291782520748946277506840084809377246373701134983213827114134400519060588936017011004254877555711462746014246285907010933292674249634255140338802174591103218483298953126360078309149170091017202377886474288426121345664853613677277262345592664915934165632931644942007810006502684183226798030094924827310474529849325631030072546470086192941997395649594492199666439898590510562964386261044790379040619519631275736855344643829909699242530253745382119727605782634423900399786081125531859393392794073434776800980448426188239019722190528894062086954601263930435852273677657412255195726973074022109121617409588156901028204881594549259684792898154834521611716988222799953793389405536395220931048534673427387506245329023779556828630391686571266231328185176821211713788066010461045910377251977604809761979790323838709307618965126877755452772126522329696832008518762434765681117923921481465481432674584950848506524607887838789940037247491985246059489150592436238147390358429093521473920427434067203706121582814899709934907852026235491883999272166358210686817382176594754051556269912398380645215676749496522651859694073707678188950300780821882858881001606138559479599666658237929024907401937703446798419523238116180504990843538548057341506558853238652545810904399650627966980573222950172445855089286503530081751544125331798600203134817427837856258616553288457768980032591929378428329953082639096552251321223306214372894016364549110732411573554265173640164826416098965819800144472795358508969710268565146224820614755890400773448086977866914390173077345542077261499395169129361526532259723978751637928785008030300163248048310359890179369439002664189613544318523007022220312861439651178343779598250886309438462476201365027918815882684916536148179752633182696121543024760029437812722454595159816159298488300969113863445399219646084939231485596968082608342506674632426223880144329785889508623686253494409501272097207920499844820009033951546423910706652441986548443640168132855192672230514920867949881956162063463797854548264187733512724448470243504603341558641379386935687752630664574110584006424855596453726926259104472498638261865618581809835759451353520880672894043917666571628837122783068251093321339453589057795607233996880496987073622778765607546324573763027212436753518728375650177925810730634697969308474396386068163798839513458681793216966145522706871852882108650645886334055638220717538904810260408831450015602947316994441583130785925679945628403899359818813222978476922023659517598642359847137696120321983661902156977689686583763756832786377150921056759467297658249186762376309675446935126366970345945444052414351839918049554553663427773337090900482668959179837298022331706996097866490381048191706609574734186040394086270143732610925796615488803340102826406936392761164565147606549915294454474616056764183200379623089152963999303310845500941696916005745914592677463959907188592017915763962165874123451250029790782327673880637894557798064935821984320795237833319423161549004687234633774065034058716287788440231567168080319368952012227873881719966617007095730621110596951982617262353080837606406166665029864999369321188716091687207549696174532613328371127557522874572396794374005151368452575910188433290106467102874956738657559029337993313239552919626176040401947116228048567297723946193117994282378639200197834874152958664986491679407612805545461423288188259560690281871537960528805180914883444027205137031735911747578858705213432663300033489670545875834834277797769844994458160353322786143877725164427487059709068695760159164411807407513071468207463526075919142915909859034454951743546645066143829725466947833882875341280597009599990451863209778613597609638132184609033371643638579699189638947624117103988966475713966297118767520396119361201253353604797311143356338025993607429015564474982675609344524332540523866161416206495002437712380622640487048087780651674978073546124013414586224438445922063674451839483993551009786624592558156873739426401022486281024589607998418407572457426316734556320954094955659560861784302609156065314274039537946999750650270199387868767982736792047089851387967707763397742469358414272781253292581132652075539388883168837014060165499029238228653647496595403307938626641289125477471050204874825622882370319247101214514159287916935219668400271250692716901395119493284166576519060449868845819761798371168119276562898337722424387907310417728731913146991565140431214665352271354680602521550760731474196840196437186144496176420335113894843044042603973551951984949173788982709690155702971220338818159181341134981567259379754607967052715728759953999675458461936324997023125172878315765062740764139990007384850054584645034086710919833975874076158666260931843777036687010021610601838507217855389014461808384552649427721445911266911660316278269923474251985869466570275297138713730170137203517724613183469435754883048377105269059246885039126335134334596665600794846797699866648333094854579349312293284821432874133837060152720470149822796805163491969712394682119688864209133857699778305228308797347029219843771766472599417931269428745478590463804799544974457529830795048951668704267850509889366987861650825321813788636835662383908375512820222227009517204165045779524659529763723019383743354765101966969638664207137632521018076980364363413951904932940917121736273358898879028143851135194707094710863310139435210797680853856943798956836735899956552524956457818355305094062368716495509477598489502485715433322725179921859823478653141953139034763174110326604228428057733393812886390888679583440245054200914724582250292867228076419239062501324028520272931137709611792930039619090704121539158936056909337031176917678619832492518805107590650272905383524104318792810359639609968742118955578052333271883124836288749022610490054817972899865463501679415118364365026985529095444957080715331469630467128573656035198597751935244762500376762270096750848526496318937660667120459702793207113627500226233409244935559876577626581017675557042131769346118823566773483171124056018401340699173729030863549453924193402680105050648253236021535246264794169480527228841525637641976672706164640056155064090257780160628544819046002908871525822063182507331347786392478791069039083038893672153420044143651294983646568096618544004309042879825871108920612747113061155825898811907542838060945201746096533859941784731686325844916744211582377882285026474307549365155626940764460856786517707317543270884350753606581482627499365977155237768531657467134407687988891580387401014961065050191733955248206411576125707558021828815193952140625222067931055280779785991969593354417203108853203070215801491813961803231816583894796187024920490461243592723890626340984571451228599498252344805874946530053101890402841846196292035981610941386749717351273165326616093823508809585437725836755343766747100252846427671340538282272938670734370756071022400832274788368058820696094444512595951759082413156664770836667296235672046598753818588283928827887008082367147429984823008473017708924153420300384775980554041359628471847870986264671251669255819833588903728573962943676731891095042633954763156690915569309818952419206178740952430954662074908201421912103781023809275276320324654460683368393073345027851583705436570043079654298167574675030885135288029890368570620311965352785529417810918056324989754019018040319910405523984683335305951294245608896281312345972052757149392899421598045395292020840272250599384212692566691717160629617108699753410525598569131455922052394632458086479916046675561971758585984049438925596762132071903329729693957355867003408934983534377566799261367088547130470987057390037340436521275692824408411208140777510104910252454648141152578341597865946110096910750410569022635290173664546238413085000357204686810257559735079394012521876193136112340874506664983943917117510606785678190418420010649543263458807706073150556652099669290311533083850732120992324906452317030183695638363924907381336956374883012978908504239495486506319497925714679635044413046897920840549251551601232399077549793787277411221914239474562267493399809764124914615690238808690482027065916220024392251228535864081475744097727915292951960715809403803024499380470624257784108721440610380580465422162625775558651766033092659824756572689471095850260527225024061162276602362185046523228042457534206786555944769537541196670673906864030321766977186836238494271566758617369244450982962000506155365379360498236191061073759232373781943226727144736518969186548577400240580250305190584570196533838679266614831233518261793508550577386274325825890972173943147504267996622500329479568049630206740522149019041764929736172150659196142600189887443665187798988093712053114560732448071660852443857698384829777533865871296971728725990355358190288500762026834428349682879231965036228123632424840856789238193423757440088592788886653027352548755470032230441890325262138814905261506219735636119411861628606391673152626455904161815778769768252076941731912788447506120998053217748207342460086801804320791189187366202965800291598280886484776441538927815222185669279433772994911551505916491993191610025813812962485327616983131587717161376978950403281562852423692694526107235201595030068232606789940280668986450665789658665245736690645714326293384960441866660002703614017772620626950848273689136353241897248237783316878700383909784593250185289809549773999178158188132526974533012123123758486824321568815977351316853815024000884774517420840039808981364516491541808096808389073416109362259977878037667135850938887424337499645429041623758383346499776252861152439169946502443338479513555956267750594269550145569872354731203283240529159836055831781571974505279705141444357849430611771418172652275736457746620588017481204321823236569522949133566604039492907930436829801966191808061138400306655404996528242437621461068903487186264846332550598053587597748601387525485850656729814299542435352017449925091614207079002700125130096193532885963071160638605276436658895134906551393324093757628758940099884875385123367775778736952350305527535768349800529901160906147468343013763204530104828336522785054874031758368439432707304991304381373491570047285033564698542523192973053295131668202954039524869120956525807657872429746696980295263773594241809281069790390626581335942054599375488519723291919495944454199379432564624924925493960507700871404806429731482454067086487520989808756104357501884947169880717731490790208553070946951166110647642086027894724484160547638040112640985775895087179495574800892631505615801925184712115793278736124871057655463058139358694217925584097323748010005812648973184052595507141034203599620947315008183142808609417431565689297271033186726263154867491874398544994163726633333950308801274467351285486663039976533525827322314294277935359456156436857450531235726160700518179930780603202145495274947355745882479623532319906393721143116326153044739107070765395902688145182416169465162016305428828223878092834171131434630378163753331921009243745884004289835831067250027544176142128285831931899930469251175911176979676545151582203664872370322269673114190535935321408656012635861721455506942089331338676121793156622536482694595219446504737353576003860179363488529085469926184586255847883512637795965599518070173291320637698946984886670292748965947637740540895346085021130488830177993074324890860400900653744029664740087200038407760541974749993997151150284284215064084349054777131269643074788168838737233370078450709539371132050376378130280880040316258443293346853903250382902154288907097110929106766119981714658696631440457194125487140366086940622588791932217834675567210693039827736491541028932266175391980180555320104358704776641712420418466893438645094227428366788210746655168831784496996372125682616554740185588665735511836068080296582763202913599713601880387142183614351536790034495696754753272532617194307992621640060534305740430712515800166184535386156879267662260935175427881233500259469907978119455895710904160098958169601005728433638139410034966360826049831427262973205358590455088467309463212158492179783903047880632153801776405882564754086003773370821664268577650980947140536495254767875130975133975454972407762352547704170060712653586414207716574124215107185604626932069735403032705535948415594818363161663767392420235488083225046747044533580002227900708031467432915827221822201934588068344705857281566100853448084937761203504370947414188229512597914528135077655456738301614353822528877337124943811233984306455951732220773664979261560938512247974764369424431928635474673267625894129891388457460496497531525274845286129063143455610728823696302535395935578156080575175487409864370443569331118845193926892305693607855881780809575122590523123440377148688238977497486607293259688279944727509412690417012913542556478706422374811301195578083105310132631503195163000499450725297636242143210410933048504393424122669100825003221303058383856475889381472871269896421847185098575235639981176409452018597154311780951437608670109102882502034479907145693272733894704105125850560941035792975859373876900031570604340639522029743615647485553326955086179288745865492037285926875636247911536636461280685371571012613569431569507432417656806530032918012537434303697610461474882692961060662161805256791612043669288485685755797895158290461427615198437706198009679864500096573674122941196089652192443191531091847806419610903169885188327199314107895869365336026984583035340413452950787215388578935582927484839781598215892561748977946121570369591026235880349513994083504305752536053727604662732065469032353026647924385057810022536920174061990986575425862992933966780733938964555543103827638339716516874460452601101582082856533034160622402651395537278487453379316253856283795961306910638118919599213949099162675109483154478792110940519623975114731412750852238128697228260606540623859516331435730591855290655384101038309992182567656255488260819524067501045210038392949968848492444870966422065434487463235482398942116649164423429354068022463725648752414463213356457699784428860029859637255599519722577490652835118129028850120876806253135826127476593655746650416808649083071737558221555277327341752012559478141847636396772957771099962458177569772159407712477434984787790945417824013564346774185375796333721645197906163765190437610917282340052270262144443947961152449048056386562216798320176148732160334361241052436273470828540372551743173398938189990798940035022294051454188393438578732765346955928375324241466224909672974575274698842490385912503412123408197237957698032620330417781235708312231021716052801383848041413173693480750831828901846704303904326100284109691226016465122692565401924573241942088708563976333952280222809937602880331058905249441962100821945874960920002217305023169164314758062190414923993633766547365388670138488198469673522230536787422499166844369166172149402298299162050083920155347341737261610643103226443198149190405823355317467004668031376436889390033579101033749062754941064311720766475969176288332312084032751805824962795867620679140085865380636425450080727130935426922393986198657041736075268791656170826110279130929055646294320188117854477396905116891663170018969437707448746899601816807927907896757417748372424710863534370606362345122621620184423398268036361230959413086979465186532352268837559716073959122770901165988221559526082424917901564375422984542509800982088497175085649545773323383990852543220052288828286920189513684127542349754358286737248860964727891354999532331584928819992275626487308198026680519789683843675994494072205898571100871796778507164370942792548888804998773195324199150626848264278798887009982702459727064632183914918600888512444157644228564365613432951048292263477626657260905360789639886511065396393957771383296859454993356754357826246226979176431682240898950004066817109628370034744980937400301138826360884697573585435210879941258966372901022565865553248349812449332418029175758338647126230799539545544025977496890949374570767533039634024868343290417835157971454590073116154615698494041937624990335772570449566255166261086816791422755065744200599341261732466248484439432386834932361972562427941506911002556844545309231695253027294435708678952813015627830278576784882193566419428118795057787382258334107622845084654700952422490858691886130117508329948842671465808964883782724838770378864413403793061712583070664734928656659326074883428840613211702711554889548700865974261317311754781323949446163955636996284550531258140829528763907041375955980878290946175617866535785326337900869868712032689625200612897551962295571721781731727005960190126313735645986500592731794604232856518178467226943866236439390691582791428317238900088143655506645552176097210819768741091009289355427535613798561484916922559883300066307474292356360671033774022384938182518458993477838936225258408558778710010980223285465291509753762251985075854768632654164609023767727691099188110907375010614296980127490126867915074154111901833648065858446085329017833999696595483667561475577841662069053838715404429755146557934205935904993014463113006055591438275194264475490721300472653797949014507027095106361276804343294158704361632562956650994354719477025120423571520595689975221868616938116558717695882236586207674759617825309297889935749611667875705214089505699119837222477036085673069864148521824062619581626693815805316965643923855172064904688508671104890440768645663241120345687313242484081790549706707129874314092536460981826152251821452396132948144904304593499138622206279984933452602866689351770991454694367710399618647770352114294512941923696422518956842354375431551180745462162856207149933140934172872610878427411581772539357130675171927210356506409069966585282941163903696490262245094739041860867914513175246001771509868203107231433628092698345787930633639174638856837210131791912360472496207032772327199377261353854121928505687597478050978971592208387509716816606713988390050310655847046007131039735507652258901828025661421216123022466799140878389691460199554608657233777436658360521313300272145140311455559851249359859039307829807591511123079019449903558612570305715135428951827260674315718250824595711892807547668436282983411169426723124013558505692315527294108873726193550293136018302290659413315322808184990861623669359758384663451303374252650853254348600202820847521253337998726706101711527792568833590167522639320386483603455570821824302217338071694223595451111580575244635093523807449047217464240923475258068941137578456863302546179643488803229773079573710791501799289118349124141147326745363031544092601107388154185774713680728336111694553631805590603493638202133403626614846524133477653371698789764492832159549613434671605465994610492527465916774227250616283649488571250828399950251323899595653411166391311092797115662195358331706620166523228704877343848174511137366862342651183820193689079840741070560686697312783550898669198658351290150688350105677876465635076652064750718150579012457503473595928482062184239952877215833384981211546413893893265321454545630188856782345081727681017910799842689773256076411442332932996237535246765825014817519430484703111139395448114223277011764330540810094659069859623184791368661929098753790464756651838577232618158688775802371472777322766458551838643313291358125036792933100440569644109872938787816463642218606668129172150653470833856976559490022251376350810822924339943982142963487231273077835476465550684171318783464338574007527120323183061926874262951467323667328517599161592321401814970593714286375415557854641351091827329654184238714326393248717188336617139742819071460786630210595938137123210255040150442182927442347517557865221052227557870251997780153994281980145133546227641284778959019570255938431856999638318658449699815227136802677991363992921403910731270927713351686322528967914574826484223957534489266273962695037276684305937107465874760387304880867548847399656706212643921978806435504619203601023768774609997331429391471136504087378852355049808063899937469663682044638608261742484861803556066671750108377987994750058541919234881384765513379441873023576939841195627814530443675023022225058065725125377810683952451290353733834947845397893238292285989867856086267932076755169859035470848769789144850766955969383707485738595897106861470507271720194581198006618338596499803089689807493787651672536891476065757058686682900683785561229717252865644294065138535155672991814095565829624152377213439620125061429559811884862690245453209557897702629270944009130128471544450424696657179729031750512850909248124287747718958393412151393605337142261445809280997048827729446862656966411606566605866256326250239210943510260556472556953931593840708177836974576179966429053739635265105862831825817352018782435979281952457407803340365140957713272626587705572577506041268730211299881086270854842241391218061512115041414129490494886130891357540639313900315551991019064358392801900923965471491978216711464969616425082840472453306825506493951231572256511741221720174753634999629967378587715154008699293527928472372037678191445033496272358602107177098866170804307188389011062345339008337293940198182213121911849201816652741899695087199482129988657667981710493675687022828317852420478386785177219781266326982976043990305329412376125359941452041085194221273795323042661301920292697411866860603820447668521759166585182800261160625267522197589230020040746914190485984055099994687212989002023074692166223122271977176320189173306360305273244914516556046074555855997816107771652449219723880004609027675440313782479000560025853651399918646619764423443136250769231582922903483021011060774003905412822301538849187309264149868058018159953838346284252105854794875193670513514599294082481764378364217089455204014757237899483432933001396741910192158016927186765021081960060559955451060251704486802871390979412493763206338574442376565727997521491063389554975698800951117854865630487408670200797452435385087252872452383830387193653310945404785349031167625403867029278325287029915208555639877890417203101717167346120816206364852155189442972391053087134571650409781155539924953760931317114185299340520186053879986919124223689931031843079882593836997407790432112610631007962682301552614867309080142893210430080062945249934688922048082285132614449778451319043871766041924951909560847652588363039359798064371023989359437435063200131425273155861350615834546008380544748921491488107671056879761225323805049224224449867979525620057194127396242653291245121057545675657591951411105606363102796617224635543406376770088528364377355029110646855521170120689572628478905144594637256847632404260164167743676685345487480815919513154379016227436316784477244023919891071317925870837870340641591959896131528043475459035034376426164420239644349437382319290854456042605133538965079715146558333500559123914637490776612455105111548697332759294356155274670664657389856261232954156567844207202457768359103076350258412580517645806615597904505780583914188600243891754567254872237275555828649956532470235980542687692984237410029505486482024322763674869356504065083318923422200822396533260127197696876008251723261301044804010062119491718349580280639822538935200793178416814284828258931119711637910833135093565651304948281461178019768528477409252665289934428375394138288317598254352429319970238377331587041872874653105289325426338686732888789728223545334428899376443879284329820944026697038094720499616879721398987569869217314059724158528726644189938306408022099506129862271244297881614867782273870392044170346245298447271294708603451668727672836093999190878402707937446039525080821963860487240926884611624653738271340074645076099807601376014223920622477940646050775728479179588649341710326197232959426607754243677833571829471394735766889851252094372457846057468330476696628545041536886795697302210910990423312470226763664724722210999463179149468645691807769979075261750392526482131309522085583970359802815981446408806624777667373543039121556898203672038254117051687304006827342856601319847986934050297467586110380269250278571925024261672977144715475957093484054318419593566199977887920271483269654058867680343617430238820922916084572998593674014114175696416263395306124394325443475653638960054187662471706561675679410642613330425412068344157630715518633535706848527517604660683217144247968174517777947232938509968924716916598389002775789502043173663791825877352148048613305295385857330204612226054745941910938037619240523499577097994587003539739145562510593094452711452612135356378306677507544438235539176621841342797970530351399486663512811310841915931297518670135827340266840815857186916286930301561640143258028981820458082065547429184313832073448767619088622925594711051399772394267463983711725316611334870846568177665999596564762240893047662037941448297628750487433540831374839336181806279597766722793215998939547155862330041955222552259770643510129748957415320466144180892318580652086334184898510999876770831281621096838040201907663262517818258202055360096288034894758056310504495110494994585994309420690845830575437578233701862931383538908419115184882782422918616523032933448786241613013062845007166174270181335073490796030547487584172729878157880087702391736182892354474862934359874374544979436231012563259878211445086127586082346413689743996702430976026422804853856624695826309823901301799554020405630098712856731885867350834778961977129200268195226384705027290494765799117716169457252620410493662067675779295020565967259268632021798240978333321446347189924583989784170133938604227341155336799974760251042510725998197173573295733590594595506619805903871639549438935677143125905053865970524615202010129974151321225191478635087504576287016656700485735245435409656894299895421009169568666370958901486383495415881294038996507744588419854804222125437155727980445714612262944234170212058973742800912282093378529402664874848847466097217465343580354557318562502380081644608015533851238145168787394268911902112662951971466932377530399934619422639227259235175604395090547214989927873435321148951123020308919371045962106885587347278687106028383365869627725899615131046840380458792911814961011255950721158653803490897810159076887001406382486907787126425787741455036759247014533149318997706258937390594726515110348823026074517345952763004136281573496177110384383272990247875880497625171279881144162214548471936320581499773522059047084502844895825238624370433053636760008218002932222632982030626585059251174844451138910660838441878844510843283121178338677866881699773667025852066523571978418204557841618834258464775389502131538500619884991596200557840324479817761764169625475356519183002417739058392442284828997652040326013618966156470827032139334582164517858941162688433372447028633961250091002939840043531557515124582653962090139423647562883483107462548920069172426603652063290410961802412767176966631885309268696010530145745080702915636725242245034970399779317286205700753270128149274336936869543877624324284470407683281245015936350982325949338930750025390263446134300310543654332305204410068106691754474398463855951060101481409573717756275114814762536876229695427773408020178215947837060343829452313961837066415350430214099525253274094587280594238791328974126574104351215120671626409176512256005368746301133923587174178126395337133344796818414767582270169597742158302304771085370264519952000732580245152354667217929313729711185985731658065421067545354201406161820207536351893616541213976642804495339932520313177329574984984297651063701294700547967690821933965265316893690096924033520950520968118572247436557160752011367263208537756846222287594813626607515696518356910693214823651822907418795905948416452906184394265977652237943161439352594962262480375768328975187013594847346759757669210571853183496832896815929113422853085014502672240972832199492999270590761565939248423974053356720604626531672855859802588444050523715172419764863853986874857863918098895357382901893047049730492776333338705173180939244634693237511472940699981327619712302645390534654306233864984228920438531544801002996585632370521937334670874441166636266311437749805396037205502191341163535378556631872266796300327798064034389586080911473530108431940128696425055758700027690259503350971274932754427981073335033647610319492190563845326106033218583331477706280039942704446645559650158754803109428958542850823431024091537825294699832240668383947408843496719825399998635262822374041427218319691492521763177726056538923456865453535631538628341016193455664680470474392839669740373890045661496120271067240940418181239541551158033256116554465081807037588758574791291132659073888745197553288027999547588757184890406677633340955692759965291493489921266822851488973280827962110832837393710392989389339600701712752059884983999350199356081425036030636307541400029981172709983872148820305989194131753651535056428243940319680238571956800101271271591544180220389486760883692182584688377835181460251427484305956329679506930317639753685514779843212873858113837892711292930250831514994664047548081142545726353584431505272632219876518549108707114898748704182370489281556057776503993167943466586839670966876105574511734959410971499507399683080590079733648185306711872675445906265627626588937606604631747853001010225379719516848381305464245217638215087363270265805865320226177738569995483764271983491080556080044674634892047601683421920379395114606405778723934229512483329902232239860733013334227891068310646193117434895427744370314468965432293325409398412077670026800992179287415348722966580050747131056658883044552971786145039622430892531136203798107948336735145813678806437771776870391698438260090592664278713581071971305654679131926289779604270450644531336961357750066142925138726268689380539670622925338312178015959151790839621051031342192455056185620589087688881458327491652139079351928080879117915831752889842610959905506107031082933940573197966545498907618464949356898940551818771386336513990906301083081751370820887614990301929197824294703920387927542714887663164099829501514853270174546016238582549669639712275119768962598582980075634624904591984463984468142981098293143621030268067744295029656815519826451877048215261750904204268561218336365765144298708187558100632759512308855166445180143995163038390512563497593154914857239266910469427508754294627671577506301196462970068127650414778042195452210804640696735233947022222879091534103457848865759936752245073968276080234848315220490500235439932859706014653898430446324359240805965463057151796360037827528324579447993199527119942623700532648613232961639441788979450666356095127114224520864002709182418336116819884020819683497097808316060294381735598975940276582120593463388375204943768318043984595772156527098350255323460494014891053319831743078692928404818413165221810378200897772298966346603397257958909381042638690429401972313325303070660117074814552556367227140955829573460938470026534090702289738391731750960937413039044021740306772725323926860735179949655019818364002129673855674836210044094597650424742879731468963472010787078489840539653410714181820508573159932180114875256824596112610009326042335176943091361952132335363736713648989425032329101380914848863985018509592690180108369608155304526995866869906696920753418971231131843293398595190860555650719506234545488152775176412506866783318646723432051428839601524392889389132467236196068920271484678839050426326426730545972165433664124476011316513436248086490419664882377146770083365572746065451258884783558438109826469275570951563483592644116498533927098649672508537327645341487522623703256028056523139968753808225751946911507504744233420913407363407696143774343135942454974737921631176778470199512195895657227519898912266572025499512595269393988506559728712955405807269990889093502163312037449177940667526423210304915277338088388962490621437418228766584467252177625376912604496831195924866760132312460053830392410567123341386480532652874695065578718058826331337119019687289332094391039861750833582906123348902644087106094759940061436015810458040743073949803244390080949668632919203012925937682884326406626533302594267108672014051760563487832087266258057998219918674552146253003048958557386658223196037661079873556851021017785172650198352854647287836153410956258320317866713308907218746741202193979578840155416082804699193280091156255044121934482734957980974332528830345578530117352490368336917814335351291632301430481399267764476560121645973080144509320883524777542424014069739294455953246614290598390527043713052251213846978924572741991285498537393413740388712118445292931322640713839219480228701111497412544128217158005469272785452310930995712265808105370063762268843364319798608401048951110260208056624129935740440793979650743688607462755193488300077143632352533359452656003308634618090598435011091391079491147442994079174905723990667625723961174287424599300938908907848653666394602162827099268436150308079883844509987338797283314592543614896171206105468259279684748174468041195336981592923439565138552875283851463845769277109981326682043960677382363424491297564239228378450259676625843234053687873068061709463350240391276714738637773669579463731488184793628558297181744057992710178128635762489765845128463158399740190493595535925202996269655118768336359885883432074544045304200949216663471166395302068061807468939051728456435476797058016681757669984783527568910763685505655799006997314081274441884599007321230592474118802664328022959789427538028223686630778956556151404160155494309654563406928104687272646991744179387351695292190663729487247524952615786494493549311590981804763117564962570609021280400295129780951580040915904488547037539553857826383463586766181202852634322708774680733161264489751395103690449957762006733186280286139370730251410859067656400727222721691656955368100242124953537137502695049812619511823910574923869233870785985117934904340960726727975443921674343121437280954892690696692450835095604002360731462217904723647964451816727972725337210915860708712078088443855800848210803096362068010638974962413106214524444895462980120748319385293013610150037202815423422735220798135003355841618196024721226457318628512308722315668865295255263363897486388534414597663950013939207453697991252197020529432966154862954583598794756337156232710417322296417281366785650627990179060641823902797345685555990212879194070570139910687505551390102477796136446670348079485024905539500828684406496222518922168487084805250647995057169112198458997752784736324566420984515912988753329342137860386744113052949379777624911557274789732271369152263586484739907987445524968188196293328769805329672279078287086982441923287301858590945095520679812209514980871826332613071779641054050174430433488796654824374957536337291179510188042991411685225967570184581712027275250424480803006342434550300448952459168469531030789772944868661927378874684048418918225973492147425405321429486356075322675674674502529289793610060882212778696240303485932799509630610211828556775972710312019603402806895487081987038287922042869719873431758109901408822928943410564390583743060767260379552532005295320951211434721722228812138394116752378353525315194443001947802248343460730577061951705233485565990872310925950578459451017145121593528092718181615183546497710468771316934540882176998815583076693678317380184023398351610142401457295787883249073989072576833785941697145894310524411019228141591026816741449285902023869219973604521301523625910222311032203595685939407126358934472699716319911652710319402447556167916731132603746313759267773595775904373105115629748869436375994596645308473308969967568595549458966007389391932842393446248856958367522246582511949402819889807405301411066401679735283904720486292696629045371362532050148423900400446018642868548565024732197579452266244289065927979566141799361635961424966542974679698742722297123337801080858218772624695258789830592889085438688385020426213323672156706200780539331191809808024339436877320943015389551592768773964757744614747741915937785131297547960931558109265538825482294739682053804574097836505209802137841700486131868553518944680022825201461689839792396684834040349829280003896466630462785796763641695599195447981192518347381704153782875608637435229640218564266076026758691760863993263479419690194303048168384005814616341104254196094026065370266132105243479295234202608695226423062531370420478446877949937718815078995580075894788309210130221647175606357577906929485598348925405385930597831797838039449757328290265645203342262507494841617599788800335455942571436376698946647393416907675700027673340543241804475831605810668922359871845705128592375777281739174045764700617123453508317898202351246402962337881480365681511986655836504073918379735096307984349962860321917592929958349594567277850924141189126594213720614867813017574921446499188877447087371535786769702202851253826453893169744012007716800932617886880593414753612957731315735395577980542316731376418823098957173856534418335458783559981085186727801501315890323719214401242356895500370294849538629049794054573928194647711307644086706709049090569056774532353993774991299675546229193200168215550094389500713374344097416876355144957209863034209649399873263257369896456486671565500940884593471693563083233533292584894214722934661608892178858494846577361748219826306638260710083007482726352208984963871338702745259119895529543704638766281772981471490516287254997565094495156436413860400982538397590436082976624803617224154063671813525791834663635564607239096244690728209124516495084808575431845776882874959025809718993975735384076170624892891653091111285481242706494751493917000332575938917129947748775323578096196660053187637150083519167434410871727675752523096378911785800477538084381298381483256456510491948081134867482791329875693270995205211433875778117070381513266249474942777067395566493773688702371247503094128822884052898273935784884011458751180505909894300222515663405175654714862284952520151463996447564424182139646589522902509819177407548522156267855063187767801911218561349611994737400281269919188000566623261876821100737337865529633497584286252954841374930274709093643613443847109464841948263701475656842581374369277164105603399430158434224051250612598505329597242988350701194556803392846078688943209976177342055083521292370534977198775090360593403857536034287500851410968440109013792498542845157472451165632651372965203494828553679132595844625022696885900201027141486925513950272413858619635735476579617487226695647107409067534301393340572189940855767843329309544287290153893317038939407227838016507314550977278537059572952809589422957805215180671527937791901594828151406445818382896544730570670015982748197154824245487150444669890746144546848291601958694198659200048929670762585047238058460413818150045529659209614309041500507804970481957780903161354461556928068645067328406680175833271234862073179613781331594350860232592111648080009875246332873538353652455342061193057675742957440605551917886102711320793865277690912298591379856401253814508620971766063881226795439034255118549662054313808803600286566701854457750818546780410444606392952633286580441993639066310845810778074877869499870180860367756132736287598720310229067164312523298692479607560956445316898502043262413965518161909323640062998263730590453703213910498779604763633254155928893781066948115497220058650890543083016652486892292257823381802769151897751440182474216822013300809402828714785851116616127808263611894730513143094856836247138935543752158098229298147935099527691311587102207849131506344998989123519255445275956580155599530350822799063175707678787387159036653309998103649740274223764267451274298982148134191786624059242021921994659775555549802106184304974305792517651752389074551475473432596210500981681662487850483169441860346356837538488938547436517401478318957814118764119217334351252008903478769689822305386942149970952702488943488706993651431472146174678310960700383054805489792051464429154286957398746278108119586924369821513545355405441390945989665584550378207127787078057368551968628329045970616983623720404718463330801752203223623428312979126203161228531874862891597770937107956661769378120277836209342239367203229315882867485254346549242926287421545293699882544944363393446063756323707380808746433031681330590821327433809646303020236863376781332234237901047065135527468856762902911157917618572858151698954783700194971652343685700865699587029458307013470562337391371906183796921405719447688681391075717865804956069053382337957153360841753389567824877963727222149983380668348799550579341789033284603171620264322417353164851288987687057656730437698930119914859896620105513175027384891418402426579298451635861759479220229627075142286583389510723884446630190521583980673903720878226707240534813790454429923998768845085202696911650145197171651662886948392746448450860871376761991694900424583660786100895201407043770643513523851519686928113980022535668790142709081652904513075044214678355069220277770333729187257017154441981698071804741671890617745588425917836475300807137434063061288753776240828173114821980635538372660443918923239335767123746358719764359188575208948990854180373386737433063847371835586347707339600193922299085228161616917538075987510657391379524522159170704480311464626948728817924576474345132716819719192194460571525186030209347582483300978227894037896276068879811974496572148577014311106672564655592613534410092280843548609053891772201374803285680998792290597623977795888898733102107430785785970328914801122297595913659118609736342688633034565313618156565418330616110281039634996096010733603949035679877025318625256829322608525185325080280901224290453040675385089121231219441062848685189895666506931029264767254619515171656009008045104070721213376626917747859076292478153489941968140045657874325142008480284508731951547646807638854029171766834663237986721432353810274312199310758729869426810256206030852542397409068418303817000997303843761371539012484440614035918250065276055757940146468653166467251737853152355714243873676633008875861290747213974428946201301051515553406481772124088604075321646936801736319376781809499585871905046822151180492310170168801227058324700747595480049893972131132836234720006445478604471121248216302636753745152736788523743790941516675713792942519778117402459673139042909169682030562182469621466758152826860773342969168150001639491303381753823696540015236004076021124695979742709119374076796112373246317774674146818588118771299891740585844489007418149264595235695513460730777192493615517489972132487631365628988041597027358170226799850631398392189072961625045447209004326784783084241073816448481131746511510915376858764192048352970714571214363715784846225339748282733635659647276468032055893217355196048091936163564927620839586335930618698884993656151330006693953198181131669219580340693813702765651862984530856651445999599888362615441950650012637509772739758511815255813462161639268186775563336560949611851130858708714652587444165495003950631419117313708445644902842806761413791206663208876491699389576467203199215632861540333177532795033017301152727686201084911678357311911729797338080791466697895155852293222999868822796034172438966974820061830095182284367898425822650964407369111825341356043675799456545964442049275047470486034319695168908064988136663668450236153646414402642430881431743871159188779447807958771014953875129971385492130171018411173985665778331938465146774446316334944056518815930624690393469857552982331552560067679147035783766210803724989933595828721432297170801689771349061058873707020672540753741234382032062143576514274598274658968527087906984283805495261835720237219921389466256994919258187921764601431952318510968497898544485262375943625006011894952721322319012309005806015841200611835370455718749645914720054421099838532791386482659262778948072921363804136509561999250655015979962280837624358312771995703467535318073830063205528539373036655611732546764336229814439556814352433907635742807530049005400671722217591071617536073188857594422983774118312599200112332270114256634303270969833588692329353535585347423529504371858400513308028027648072756089650272120269153034027808847359160013227210719898276102421792599357751078332346356239988546445841700730104482518491660364777970870736272661171541869716899016159423086160393236929898930003210915382113965427628382039956672268751631432441026636490750639398351424915753998127309651785163955990763817237015498167411376262591464430012678834558220672279367740411895768348695016613023961952280669832159829259036631735690179059810396206427622845810699117916300171303161306066494060755275779977344754521367000851170366619952773428062390544014417887953771320027398861981274049739732856004292940290920218859102942469832832706863296413572404406208568455856506630852429267602978065752754650123476773687906377621729170963206982521373210063412260952016514251638136640740415601438370365666684857727804421908541256901678017965808994880188729121768134262096414668353059969294108558772777264553874941637765929570988108858349572101297392596400047740870063247489569266400471003797078099677219088922898058952304354057603800518028969798075068028513391593915063475276814335390859898371138728848882706299255414894309428919253199726461269177076340314833289465746760382430387422115740812426767348076837882716872586300396422553144623937522894396004189029615499603435899152233810135473197840981929520678390335614809425166706613080169222285396089304649142705467151754093097688898484246739221615768512864208226805819524690432346680537416348424014007920271703882958450871294147604736911867271975364344681416216782334633894194077141122555565462694003485043205906404176480522780005232980357253636210356596460736392666197921833165346025278719521949873738538208879490972754517600903023367680409947003131650357275133578197467356826740013299587038181746589413973875281372652871746300274589888961693312679306918472924808548590358717529250215710947635126201169082212098544441157045600088196573654491488002806813667028647451718182056800378217515015943609574327654434488040270157263895576719244923907443715195148128350764984246612342759457839983964946693792754202264023973682688185607191198838775634129370363544126249778126518800314702164854541138171392637083990104680733359140904541564214482857869341274742525738073505981007265077697642020599163067805013323422167550956225837405041914916158736539865118335065771411573242716862046804301237834594500653867807033334065661625809680469114378450308480541487741778688740562160435853129398326975277631396442213698970977235602826710741745743654937024301530344176496856372421462788576990423266853489800752102481326883285530483093969467834558659389124613899657929392252806707857551783996124504488300100887588907861010550314645072271955165005698358510749838111869834493109428178923542844804893675318994724802441773490478704601520422555780418911987506774780469628533765620636339918045380910765022596387107689190710046622937507048307443583379681294688208127671272164298105489982605568184090421339428925462060491376039239391913079098584857162024214198052018477393585594392221432034180504753670434395009534599450471877108883656383853066166130291962009954100386338841157819555145333631251765744541135519212833266201385953694827476797145091627386084591221504589925590575138193129170942677376241860252527846989565357678216125911481284572408150140893518075723225773000014442359592407753141791163361716732870666407823523782525654981713646914432984255354705713217281002277138471567486776284629306052533652719057023087068432045347867815753851535979723760269928925033329480724867475398527579955287696200371907720824557900054737141736878762072090212757961289734546179376165042481259787330302158813535966598437293067079246962238039881194349201299203027755194534289384590021882563657099646781611439638882922801010398585296803673208867492515620867883694595908083145655468932704221519536868957809827527407827542307993986386029017251071732825113135461512000871252355145862750009108360913697632346022317325926718188005027412226237317148541539393050332429503847126989057457747440994389338081391887385506586820839831844771049251266228795845579256813708854857477313972627656701890368194912622262064304858954341724508624200453781051976384984465138831160267360042500764056440910782257070889914737062601747764793946064705465385674882006890190959193337787103549142928893969118904902677379975938482787925022920740714089654055012939900429071335824474189361584057377042426240564273108456556540638495904615698184604741861871649969972385250057300284882449172779039134705282132292383296216743559828557072532676194406147452646109592575672826913830931196105827943127457246387761613689220375930729169444113626646871737350028064592742709028891583411768465227616354440591246928090083852066685236999239610586171420885160045657997923727956015057824646196472481824756101242657014256053239195931762644893204142406223700080849391378780374943747857667928723872638577273652756820654663189140135379295442178165645073629947237967999046470162854831886666151023304878693078858185135180615713557783946816294908112209036886856405617525214197954272854304381546334875417212498169833117934216545997332619388068441648249459436716803780665634875221166743500377339451830013281368021270950209648771898527632394447542594329443531278469974274951762761807666656858712362233453198172386000432088829945313038779675989558351456648555610406993417983271672707620763460718489620029551764460512018125560846593005240053334443332535271839890342728862260613473854018072799115393767358492330919520785383320857783104092024601945202082835447340268736213561908557962830028457629528368016342598435743596314458439918344140967247227616322748663324953838033272693987370125013644336243797678659171561694829368202716156192324577415335137591793385538987881277666463880166186213604728557749289068131319638550049554080257478105840045798954646012101463236321386361317008775711171606447116757721419180907040459487523166586765962626099570542382775096091866910283159368956378025220260550470422807580641832461864154709769656931374213247238549143545404170866387808688584579276516939158566066931623074523319154979176589523447863818818271939259020012894966227820136935415838640549060319531297961535631297454077603743133008526960771202760650345050218286743375199278133299031911700574406142850982185240570293104672442885256413483069715276258537315552087639668802839517919606324250916630682468360499124448012738378586166986720916101855788938178417205564306448102827054353748037234202525720441522976299162174930304425766087330323949544278223955823469137049238049288563511879022823993282875752612717712782895320122073027267078437984408945754418856034185112791997730388855874292347107400273899033108040469217756215866363300338344014877825874183845375950296250443176015886479032871011085778423273389481607058470703784426729142249876546173378654936400979684809767651277844762169684572539520542682588608335544888407061806882987195960456171805926218342423346783106531969336120591671544914339979771426622120791668511240903335250131041989114502296784700980029183233564097683441856138675506934259900047064224040619787580885545828651048875135942675446915149046667080686800135060115727973625864686347399237473895583168933905699216272652451630216916670826286665518640096800269692041409337169006102145208187132852406291339742165702900780332198870280981433265063451261660026830943205878987174621718516263522829371510653102980625363239561833821421299252093246325888342395393689460527198922942941085628321363344649708281171249333114899359598405372021248993736303501255468082773565009130521194161105502129940968829634864838557706357003516506375237504462016537169237700212925665645518873484345638697932722463707019851275135454861762798774307917571074419091989413540492853277108741688439457138332027141446902234343008997239007482686538768657061897519206954476084353329933001382589959503909986727846811584347470992566705834204463079048703921764704615037746156800526859821052895768573658921074284798079618151120110676152506006890243778279973524857338252636489201875213623182423609393827648025646214955862569625783599723656584479801967741198290308092195906424925633629801938135658841262973844004652541816727394827481906103737523936105601415454401783983108411722210296233280336866468067892177004120945043388786684475860689062992306612304607528798234620587648897748718469087345766800742703068785586495046557374785835005365225842478994223134726706539187370609429722047838125098062754655183192621059179825404423582638350137210104823024280331018905779416670310904936676015580886222979774886677861711627785102383851143873769971175101947673260628192334904810205891846175660299876026862230868173973612109323611845898702614157434610505574586336967832768552031757524693054821626167498941423068879486304109512719664428233743587965522690734188250837205903117113256904008660114555099884861606947818995352961811293610191056042493214648649756736548377618352026273053794082781132879044672711427027544002293592120761254241270268460581020584143104923672817818669177634232477271855414780421682521087156825898281458550564708145080706314364039135909472063861709830204006054265302904591737288211085006714058325249283358310538215419896635002933679988484622697941850720875835552927900146989356036032001523420625144032109253437959432603843698544842158384815177054339337040038580861368043210517734031543745552945850200091811510433000312909483811629494494096685930755835476943993549171022090635716658550370467346235377145316884219027164220849010831028338286816017047839814084130482056901471942747454608575186964734030106762767087137307178613529663915569077033297817955757718839979349111167592509573163950879680445993921145503368927981300562464687239191957051102357827505738090011768835589051692637870780989531325239711036600579754316957767753280939511554153252286745483532579397095576220562762091365041830995389636418355942981865338648073146369873802611755688978695537604770450224583514438006055216435644738583447029046329373478007036730123172586685441263143384099339267409423552661134549260853097399534987443147132822112145438080982202018331702601397228406166634717612901182438762356114052120271027070656046064391498541850494074219814832906292337960277954702894316375075562729860197139682594164711187483375984075331565083225749297667162073643114381087457752067793398724348056713304112855920001132850470881980950755215160796475784135533326934731117287916586192633953484839458241389543428172321193331839595116322540640819051563165055206961445070416110287944329472549388382797933215162650642273929159849288986654681499928755701594500215649455552006941416091497022330273744650749753775536565141935978672639179638149931615652261753629571464007562766410840059320632372656060635997150270858295567771126496215767601119150031036101250789161599074058369785596677740023763027504519834062274561851191912286523033174323500052507275787150871313023965911974325068472927460336304284349021148081564777334036528497534056359834063453682930809976415375782998690072033529906035241276679539147238878138667210571151580652869010379240823179322065773055985429839868526312587735688793743271106003096948599805483167527255220821293391605604312330184028656738169854493763484758698083722806332256999254789652493541737477895357596053364438179930591003078974247710122790363884087577138712950298704667432227561418333829139100871501818551227247929667315842638673157632955744072405756946789754187243135910302493440672022140718168660995545418152548198761813781706867072896578460010831990492872776612195731627608270150748021213110792860421451727853414255426354934184421704823398763196795959613600559890327739909464952578346603631020535351463079182012483357877246424522954951512711096084483447170519126786968672702223273017719817677136139607051907904087061829674399954859238674436201423137928299030525781742143587486105988394492930389275901361059628348716087655375262511839848264808555246683665405952577261129048273955175554038881144895827916125528541251769295652503952661307935209575039469069679360545265965892612880197891758996259008639700417849961969715415040727123427394549820622555366235124138889657455374477002881806681833105144086209386879067385369314371055072770233683972928454606287323234876755877558143556057863004468939889678038145836229274480315391173989760769114265396297782944628319598223461871861674008481459398553184285389759796639680942024056284698735551932183665517155304928009570962583530471734308600140003028498709550099997990181239027594423599733526660594051159357843240251175360250791964383414272899474654988429170637474657859750155297795186739562910057567734236916978227675012836384374549815498491909354990233612547382779735266778234629116449102643138425985518836225906860481135708779140962198239716744620828477014687949992457312088876413630579979352593422240633242255728723309718568124023567082285582733032808493547278794450353175385310158863442492784112025310911843860846423993082668142390877988117027655154837276647999951180851678541983193557564512119510080968875203109499375963638392564946720809182609715542161449730128201585442103520787275927411454261305141013734617827025615449085192155122959785197837450409306279191624837566194604818408087483678292518417177820383599736021049091455361707376542238323460495496931456609574414775428600826429090321583945745643788672617734518154360780824874665193374977605663479935910738223158338983048798020304306000706934995864551220425789887369143690402521699539302220460568269047256337262233333142792765165709284040674749710693905070482541980249837465756620789301330033497140837627880076206473806464904788418843070450161639522038504296524107320704449466885869070985998728041925366040240900919171821223149028120737601395434321527784852329780792689532979800287227509156798747224205165461642360568701548009826907356274833914833521558570480975304312024040280065423448502449971246273018555254955148834919997054575384744855175092920874032327933131248021047432906446802239289780547319711353315068563367587083607816412388350933908922054082076656097952331000069370276168847406312057769003707367263138141294297538443358474154258271190311573776340578474856976860671713933132395566005441795235856045505273503936133935330968341627795718889497883050692439715450588756976642973569447203040804474090963329673550228897726097917655257385422976155550151732399136102308048231014905410976736555433971250085120879439246995885900843731618599403477667885254180330295098265271001360926004354610578304218432551757254411253277233561068574100707417474834635249468656462849743654659490221608991797160868449673706228005106887769509511984751530933241789589745353157070162514390250392919325055844741066316924322642024446335110605538272642828319486103909308206427335022054787142098042435973914120350065092513068085735173870949279413434096579159534856268649942447259348002979874728223709785820139603806187778146349905726510944951780739828879035002890945705637153620414117763606541426445561213373749710061795738019811471944265958440390955028090880421033253557144928273560047988799109143477697017091823841368310042371181525726813109205365488692192735291004541710501479692604567442077629780244567278145126730633842821251681568222074172954557680991414152926530373858207013496768236447526363892898030808287198624552945512169193810799634690039962491822175223867401064362174572530890252939930610744058112339962570635614434271505322138848981767961026906319311606089819498316786565201671952232347497054808981165150257289126747898903637629107978160192199998458940039436563761738858839400287560240766104396614668221786291329501342715697655318358534934261225646624756055196618035109357315170906231910288436600957387798973908606805084262371812726711491257313501243500028404871610087026726078923631839215790757928075160757467910467283705085937445844099681819454995261773147347871687716895628515128366181377978842883360942304393526675484490270457450595094382928547268325125700184464486076345819053704789835520874626598327133159745931768675244168138159582916554876758111373646907106088350368331067722530647329309102227592095663531449968170929649286713824040233896554772300238325953679127905802011716199940044275857328187083994018171066457043742029066575539386550045363699417936619442938650660939218276991824966119308716200602356183131854294714284487907735567294132059217280169863730912400129250189183922132999115532889640242622206413376853561692476322184963571981558034048925054570959156637980653006618017049147097412661419717142674642631872656236194497389653542250018377189730703485158342693857061763330078912701060789117857521480486019940575250717096526345549389370192243873945033870501778235059303721919766449600323878622795357840436555327534982483453323521776487680583855405064562053417156396368681979121365681825053677983035144420631907629595364970881131417532220659838108302617764124966895679650175773114246361000956282854074919624747415405504737379717260020625810388057685945800118340108999059163256569704592939309852093318104219251675705315310493152308296307039527897197647735444449577724465606533165779223212618150610802297889654498206389546064751953278335352972472603795678075585598179356734114993367081410462058548286695104768609710519239630401434590585371916580729097511639396051481023943923380681615658035236112096357587429362961294329269049445086341447820458180674189727879888697345980632679981191462134058561773173553391951169609874989121598827746128756666490110157894430855600425935728250537348131410554922702448957231548056673133860471275703098348792255448636748611159591698980583701851465772438589921741651929550106920993542505324765248002157941690743026708476117907210245369942534169637006047490829523196148497470617127974601527809203600293210624832293459817208133283786640443906453824815697753207721903587886106905198286564205263335056240569260220065080898308542818475233869173006980685195162474287241952478581716291912482531295782935094116231821371111132477203505849477366471897320753529425943508266079907943419544178703386322161553522840620478356278519856952014510431261541541364771602723350976843497576094500491147556592295951369258349986599224380723619281487900442407464351106989311980578844661179472823494372199329155423662873649850313753965841924111103587792733115281373898397020098603376161358803317926992026223039142584477438624007447936510746476163031054713916592290011670728255059630591250698526640052169677291264411555720141457861035267249435417830343529643398432884090263996194729491360112498154564423239050027439643773316722476044510270831858455425724373880457516553680043946973825171177907453688694730644766202445026157581337326089868883261511110040450046072399663762617445065565940221463204272500054441089165511389140712570737230056522591417719156531861080493341477731824379594965715813052370792708114033941652204626502315597126180651695960366562226899895806951757006333107247073855096618499729478626691334631695146079401818482981491104145578362777711055826586241939028938631865458663489549738848929538360284231761478376769676631604848154962710685629149104225938755306876717744492012231394996621825784379514561434256219709015661852109369953385482435473550354550301386629150527175044706539755973593748984428405250149447466812245622355851507397501003302914628432988584518832528093546441689600698580256412070256975322510684630281663283744815056744381951127156107054462968914097555665444057106838052290152390471578370202929243052653511175876580627106064940419050124790515273405530335120529931527455128337948345403918430816179620850659165203399439917926562517739104184942350675197371431137232238468461980933822382526592613225971462147131835599731400538847823588890568568545458785943983020471476764524251319079487928644683372058148565110379415303555740673843209626317892098996560077201328486262310262782720323686560821270936367273114384614242577204353191416379256505111546238534650494174822787121482176626746010806504336105489602309311689517615702013861332737351604905995152194990453381932077062847008563262233906012440752716900284012015705775054103798706946735229394165007911938961661819010819673171199666891048313923572987765565476424701135719050576920772120575534958851040857159348977445110124613989486634166429009513683147990127787065293779450844031661125998808089735946730028616510104225773603712486043147280926718485417656610631238476382079738447612749714554571308276450231599345641126165149091287941835158455988801797426751257748061666745273500333922972291940877641549944834478615667471983085477028615824232928246794849022798116188212512750294231886600768014070319176756030793355613789337859507784128639721751081030697017695931479583984460040567713380829114245517500822404161542164244421644774547214622471726612988032578449084696846884898722880944471739764457333424426359528981430107090531476990823026649818731279263339298611132059677662323789115669838867250926504292527966057434786950334237883222465895177887235423757548283608850512022313642971440288671762068858392696371167243960608286472237444208975380918867616002556926639522315639986753865728653235826633853508913695341273668948147334233529297283527518780248540471283266455863537126246130698556731347837946899098681320406858032390584821522252830596121588311955222008625319211935702867877615272642780056840238204049108485688732528356003769627828070383999916108654353996861219102639821565507631788643651143135464456348375879965855410088818960225530149260442558322336748098629170674971915510722611417780463577631988405090507163335932180134682192210928139099741230285483061359319557962571888387802077993821011055954965877533660462018933642023774109217495410486325297119564137524717655685207331530563171287875904886319187526534727796874418179014266153754870940090205054371630231754082820449359478242130605855627515963516246692214002845098511116796084260279870479692232618018985596028679369542161737475268181992103463144187090665971829440120261498331083087779888126429880826463882707221873878120176526710817543667916611823834300216064150271893721391596356304156829792547724899306977527642964009726942464826860875626703463552368686917097427104969693220864271031259492342447778197783620202309353962233324653113250656880828238085541518863983998684764940937880675230434130017458125407631542243714978780351747353961073591792033467792622644377719989460220731784853066853486771399163974316538027754150415773092516624070504391375659094416520900887898796783422408788234046389380087957357227819829429430195665593685256340908923369396256907554389313991570785282894057470127470644645889327981282525413645399801310107255339723585417638621211550784992487374337494209119109347159067774155865312606328274374913761265721555294436170458520366414542217980580457473370762707166771287904508355656648280795343304995821247651785604759394790773761094906088284283354767937049071381369013864289082837947036145681113261686544076227018765110908052573405607829877939616281021427749326965115955523194528879010134752135157757002183484348977205978341923781142948284346380940875167351724368471693653840675455580864395501197181455179590153080677566453756239672986670275869901705958900990982265658011554788679766138027871193433956104052128267642806134013293847196872339289711219183221694616926416598431718444690670913645292171081240752207435260013033906809914028535832927987507351026933820761769421543480736566572604274904611989561236493256896631234938434964663817058357784139019120274670374115119647868931936144486296200693458605200391089394055793117865076088529924169004303620556599348749155140937884244213564988578363025262355161689525548268560678456975985653200454154942172721700757709257856274391498846880599169679827398617520157659200766812564820545134990634612142857879767864976506757913904145642429401997860267889457213017731102331899374278904573493751034160746608434857768762707704424954090303029447411754022404166632593752838415822491315010936055717281834924715052896130846121590269476611007644688693890336455919401042999983443270689123597069474132308251676064899835105588746241318626597521916502460055357260745584767876470030029152650750219300248431118244723303653798371135031240297667566863902804002936597663557680123391258141398161866866293796074896734485016393908540032195387949731655127811766594923118276015615012184829501835311205985833602608937460564501347155945612303247353186731923980510568947951115848127032862438987482522736986940558267191058308924687570251796298243809356782326526599201641532808398011806268392757507089549661148974815230777601386774029514083684042492386058434257758774163592078172292428217151884500647573618725329927715034187562554536520500908545645404014822143706364276099549477669870758598003673713173135546749972272784564572282942366895762658260695678533519362131373650563264922374137535487565969749375669548912492731501152600654537682899670989622499151374700648810740715039149581159459214494240946027688829085619696538380690589090156998494785459888576918340472588621859536271096281121151578688048990889744531656972479766722130862339203069580402526825090654332473243636462883147668768693718743966700183060219324255917413894169415167589059982369929763935784124417841873692144515959721236392399395896112618720302242277220214044210482555728395761265073932215455480745922372070453625764601082583430058438209843696882462047896715891088595318945510109480705320138442555587320987270731922203630120647694962099535324514102264413983550939642726572135323878699771287478342837362426227444984945799018956897698751071862511127942394866303621858361384548303485557668204174370257427518789718759540097104505130165329189745023983824745204738065415300714961077650782851143513354694010683364809276875539378879067124267441330749229363199783597120596252658238281116562367516384424466130238860810543955144315443804026658874785584181349372641985431976537500466261663396438031913069233934430679877457481433266651023258589230850810787083104210161655770946682888522616890913788122162798930855632580741353293802390468415772212456156521994906624646855379565956060927556466948161162511107203236547819692697076895958008210754096696527252368802884201261457985230809868332316321264647142491474280544321177376316347936350433111613092526399032312372172410483294693833593975476810651307596560346586199095589404201056779139149880798635530515101223311801879196658313518225658637514566525565301404121947557030476841621755357074935733777731025465513533268663862272366677946373215946148644803204132660016389993854050392319602584352574165420315222306454054164634151685375187240629106128807105564204655688487643687542596159659705675914781694298373419840512303728086667213697151156628003126083347455415187361446419951780534346478970774191448789079610615641714726515537765695781032111202263865622390168059946614510778656324926846282184928486737159904703384237902599357783972025644064845152190346747946761227428140157206684524358145032411391045640876906427682188241472625325429712170690485784625908131865896144281435083829925102006949649202890785928875715958103725465357518635097189619740208860978159246990966700200455199436020008151959931040902421602309676924441130429369363839358671737967845955983812993026723107524751033119679828852910980130165952223593858552060036155289199022996954991560294880216811279024996790936918967250990736668686050311505366029615889572906050368330737423204024502675496461483583465696141484946678861311595024727018156301060362754243990698395042696273864594740015555918803128724082848006057603711004574924593965395354607467234070677255518231622025703140076374192911033949082614245500035351284315589489655748215380367310169283695824311329599150173349026739698662324241577849216243948794018662437700301587724447223829124382513608044122025368421688473954041599435923563425036405014956363577194713680534030125418269692179934032947254755153161353787779379006915592800516089200954927291309408699125897389025810548781072589879600442346366521397210801081353150304951930121502382112772030596497160261213241581207796205276019787514389680742108641896762373482585578697660493317546024770045670480183441748873153359659747829370754968412045749856128944478397387098030839130692636293963372389720088762298740288565931746969412758701727493609190363928245696823901041998627787523728625846893041908062084455013205050393450173587616575993290502732651298147647776160513722052838549907814210457601967143288433931917461487552084022682666101888209965691369537289206219364209706631499443657482450763897814035093286082394684731214228814338209145129341492094089720910042155513074496013989577581056177813024041809899246828168865795241130920588306679477332007046385105932938390821454451895265802299256618453776047290859226749843189737829248908630675426249676955097672695596750490370908830693786221387697224170853690200811896140074469562295336181561037490986194299967297069569902946073375481343215742082421917836207806714741948187768876449805883504764474997636060683819570433297336656858212961863641337775424437309616115640332686272221659482676171955682194626723346871898855397511425787739348109431900520123727363219822789022811567851052748154897452872241682963779908691289453212325682814013831091672944327493935628081446108781913632965925566092085881922881812815615066725634901338530337274124530177294880267124980747335112427927147974677313547208863884038802606790626731297977159641636570258151510080929195588141573594858376465883502266624574090857437370097081593171118294295431462997004007438981467365058767502812654145131711766954134732388671741950493133478411684804144393786647139185928576505430371908643828964306648198393287983696833546282864664789115419501256970056198721923137868431220666519729231944324829510702604795782283707137033920106378241811078063912042582323820617264820609856611472433364588947101187632972783992759760985731703942019282839222460269932930797518279167003079932744916035670799237429642918938208971616360076471205190817736443412956509588784114349217408352518832680194372040177439330715670793492171587043882695174746673872408607576420275102033110241835304631722793117237545204764882638959595403737019428916079406008723207456259475250608623139836368867188846878947477530526882320163943677383113535546607865873399497779019050183900571327871014538305956916927462562408605662753867240535695477959860689831050876100965285422040772355304924642815101000301980847565995659987019413629283190529700187609910446974211938308460222786933856763231248255239211834165238892027787375880195833580469442239305533480517794682151807192182900958082801044669417349247990113420477023152216702701283058675730047131489560525840723953620486945601418957384191023604220858056102935938153168581986716801160022424160862668117738335103634597035618951223346511261794150496053673370870547507211947560335709447381749198958582796407927987749534079091159269918990562094119447405031029073089835335718872939264761033631317596476969371952734794424620007530941485205065563540352961198446521829537781089725520740016877234490593694808354976809644809077615568412975824500497147723563292565387530324718332086187780746695572347499536269107414932663762034868924420990225903378376986466139049952430284751762744288546109178407534945327327748632189727167628366999167324555967729952335427872379650529178534644143285805761152937077733943530946238322997894869923091949915805721175066357529634623401189909468860775790691095317136824198858243030860497032670455699369446383957057859819451184060609420299096124706875926616037608885881144187508058352834003060026617071949542351336824724127323551704232977581806342458779849825440246790069672534856567304743324955896372200320363405731335951553736178491192090635814535764733522007249024697321423167582005418041344584662525248374314421658125891588478896086744368205691837977290072304010322262044576237552200498473598800290487423326701862741685533886522462372952241926058138886411727151458993234360470251208871889090375612666274330653743602201926670527605396064593722264576328214303473237060201997441437319723954021498567699757990698759479708866506041671700661449558381036344607168409410514095138426085760434863073726442566751156413925392058243796532543928007981668449184833906253073816812843299304266577076673877630809240398945544476856606684519511100024758804627605296639376093442807446531043249304971785326969236274588083782506421062251348939964639534562084201703883016975283410224899170884520079988880528262291984737579149324879648616474151217924372656137164304458102045804547397129415931143270761615094742992429101523977798021663208957172023226394775536781180556817297581426888134931423995595209590664020967445422224306256150555526309241087376360093369526588808126295662159361251811922996478925303604421898340760028096038140913333796562012875272339009040511459603116848034880813805321227817105486661643737209588795378720155371220535761951416564941149071295862531352408869817713505190528839677827399233779516243789585578757233233759932850525662122647443305635997984591000070681473779259243056325615519005996127987254661671113376529820970205390087285856599319969120641743496101126489816384719941014318525248864669108565725895484430218420954564766994059268627702351920943923021172398016257916778252775795547037000323483470850027228948001980068909191714931366720781740471475945156753026505291608464016039719200486945007977001237360338767134708877665988353066535775967537985563908133047564419102704284945944342485761586119600346689703916654672826190845032457095796511401665293759154860332253789910078961334663158656634424361685821559257242933255713784766472894763540584200907316930685713593633710805960551928303054306356753435924035331369288287485115746248955728871973001403211255613333898509473859717459180375980366183409308483644029115573513769628796611807017711204364145838041905343005185550932911221634498814348962332653183346859681009163841087493782706633637681282796187809085711943556797444184400266608901113203940081925827395641225985952425703096595495053487915101816361886760430299413029774759348496740046020827411587022707645251991132246195614098798187337201024624637152200385071468600642517658643379359308845701147941588478181757150156146165768525677040005829373969714711181824533196846215305240026774632598641991303097135748407520429233423662289212459989622809231287275905461823411444616355793523724401975439688680629094803201679872157685639943483405575040970015878319662855769419742173668930681312191462595750381112468609839967809002829058777664344925818962071660283517411309104264733318497984649939410246223704977917509545999795992264511554775438117720194129987295087227905866257877523770854134403835776810021049480417922365191363557289690791456920828495099454503162178068268534632492399520677379968923125138958571271874479903026397570163780143051285826648303077581452945756941156265944461830942173181472083077039807872184427980089508760947575732217296593977058630224409139723374446830094219353090655533474360357767298037208126170665016234890633690623564132117342337277251827960011651425646330203919564082548152367422852191358676578877778893556825735464903187137789438326933190699089986039491455181060215266895109431416803780792805553944041138497952570731984397409810993782619740446123111619882794608935458028363983223631648852175172338487640922176473502604727765968563516520524280853056924735394889208146158138131234888537385952507600513034554081064840542967301908382544019487837114174299899736529514326639757370546411070756424558310180896699738774659158712386424915952894418817442395502239051650378250029935178160634135907107743171032093544337366464177774419211553279880775980776540656645528186571139163246497161231108051712909935062738564274889663036511166512069770780249353901386687936501163357099182314254213046734839029151335591002333630767163640495942156556604591505557978032812571434131120550327087649210230085693143307094928932454226314251551377572340046923861562269485188518647733022444697659488428640106384550137767709126107854187422726021351992154932297699027541603380957122403822388875571101573330975496675804737099540215392550284329700886330090480295669823700487886223788333495643897008895336645240355897096944538885014245645876755922287133806445098545194469088215365590338214931026139114863781087788879168444533245185537403805899712516524930354556345477424855861232089022693349212689727477064283594898083925155320078983217153814421883484699656290829753202791805431835615669247285463126033017920681667510036539025509661144830902160262746721721542976714912937709205656693736736413081677446107972872749788386547923884006045656974616312356715037626582158281995527468977441554260719541501788457472647333560691336895541516644077495563576318174175164300606663583279529322997608910650167277218371679943802135085032952633425674275855077335512550336269910229679556247342307787715721486575086080566435936343958476096948642818865606167885254219532935908507720010885597388788365596152609101713509793654447054278895587514005783287905121280402682847632268314942224507124764751906940378198190330016344737979591082030949334600580581096565715819814465745537479266141381687360151048553402869670699694275472022158744371661827983567644391552144234091551777821154248926722229371546231459323513635731575485715901257364235762335537969581247490417192818479098799810220477008853980633540930552040607603813059499940203593008768644362155937267222679117039922049805288531343097325467202336901151590589505141661907538544831321143508643828962968652233359973178655751383218882593381794968609272532239507131202273674366941448264406752837579795596338839310747564078897224239467884800838549959988840110517823974116033483472618624416518377041843717157148528935626697044942758271848822091953289167250757454254329663049959157914768234738490992098380259453265881093131771008140854096866247437766025188650971513197522107199523688640847278862371560051545785308666351295452415445659698692586751541721644622116373103684076455117802245893508991073816970384336312173570614549907057648362015864448214841964744936271329607341808480204543533490366508499238321657270467076494489126149903271104864846692247738082644965014555409973574922055309940639967420243715796706585594777599073502096470201539963240308834460903614455431831364171145294624105918014228166818997332204578565347713361261445033007283954777003692327484446625282678342268618623778090974018171709840154539145599055760601280856537057997029411997249499729493138607088343841045022736699659478941214470634678370513775555619328782255638638115575989810788711023757112073218867053097184977721516361846346900962330076137706052366247408649191713098032854403773779287064612041079421245188888602974110547379645688133629487419364799430766585494267652003705063220874765197899966843560631484549527487939349580021024447949791962067709533396979260158903281683025296579450294111631434859950580182438563005352847751257824893466624405299673475767862023157543616835758069665722935598220485458259953297474485930046942455477847031726236284798319903619206648402210916412764000595177667842969843320800814521526640799243127216357898076479474758631184685553792463982145218528971343681248219385352488854021937357938962208161554207027340526910179617924800694951892597438090751191526574811814439887768172393148147220234598021261947700875592051800718351354451871674966479341428756935182151442762758975361237503930847496239742998881462178863870688151077034572350337551361851739786160878096178623059472189172688311699715102328524630545271364084107511831311524532286650016238499897064182552452057840384350522500250869786643942164691494455729464369439931805155525331817623180541231154409678218182137482145380936368379505865596451043288070283992516591817161051529099070191395162663254373319952277812502619902035934077820933383982690046074931903494385774178302861605545938400497491630301348833501520784642745127261879506196630263150859700799233956233092452092270346944679857560353373209636786679200633504011904350119259080706753369122043312295713818361632278063691834570520829078486087833622826366739907888052220692852918301477626459803139385762796516854949300745868501600706066988123939815655359864615314974624924015125155594555811397823437435164273862102045181273312093697114814359358891412256343466515548733263328134280972945602148024351225453963399696757403019747274979255419292252038571636489715624309248854461186367345297033832002777832829171370140531796764235038215986353103768409371528634648921530532092555380153456044124344207598674065066685477544324166275590863015101122748999996006099655842438099347893428744625656248047899621770934956328596011088385816797709221591288794952901016226671988896742229922856945040572066458983027498457082346315217730109876831883950124419830935701563653931596292283065132118174642177173083004840552254939334783171326015673274844157259120482386580856333283579758324397114237597027453183334237908864993984587951052763746450878289700885571588719902603492772308963791347834004906777202998391799548465938651434896966559778793693279984622389881719140175813738309403157134022069137011345674459526256573290234817107477940559460358847127544092371942749721165227118624402669334761660120034430942926226765596587687891160197632470976546869363610530238446524421257456027699839294629676386393316396679933494771249407971950951516336544399193231701808878621731361395385919589152246986598078943794783861580444042827357527169480688130318623492077493099462229094423587471231038705574168222738294761617355699882938414650428066400992609748795032803221547576486039134283429251697532154064909451469204054166538370607088172810407645454963652375256209508995026157395790140543993822597557250842201802086186144862022334646142050989968447073741292801991328921342820178519815689241420589432571329685094861713336639869240424662611231827869143445763890822310669106371753322781601612924365146383130340592666579014343774769452334438777484635086677425156038609472593960243463868158810479346591331076889352957711290058966953304266689689260783500506107836970426553203018216236923285900143476239904171205620416906124775285384284321467429048946873780784944805362389702273838113341605399018385476380881001779397338798544219256156418153981680003421171325322472264951808919673738131011260665082247553798157475189184433445488798792768453119557873830862053221440832487200866271294770100654127059462487081702538543033036348493401900799725474090558434051375608680957391017102791220350631037372097679615876572254972173530816722209277627012132078284252495424758546602009688858660973422123096164030805836500344260528301905937573963379848331602524602619744160219785183492213602181764824261594516361435924643478103839054848982566249366751330746253675745279369074323649858417823292739237794083019916073889416514335192672296876648808230217455902390695940309325850339246729846501500139417895084360812769899092821615444605332802259420375903602893206180751833551854449428611083540758667133079096613117140292675555451948590656511854497038980447370931784761577276384561862337217556639921483616932667305120168418354871752445913413557956943453156170019087330525341803184045230543413507053434665620276854816197231558549646403298320951442924523711132191322346696746591398743195181427731343213181282152271552588848724280713703420658093165923855666258759663555148543715177813962911027890126097609688934452289191354136471290512411738111406913467549530887255334545823795103592387365322534685234311485202331054210447431155694855124225114744207997513460130975522604296477111992380416760841534069280292880838508554310780593886362952683360411345481566341676005582022348129395731459768363124171466190912185638259783675966610359889248506041792080319425557526010268473556962458404475448007508361017325467652535187382945854677251015745326243797256435961763205122015943538987668861148887942526513302475930896920045649674845971575600190694740123307235806817799102668643437378559504266084351470732069364766103843575440310368566741954354906628636427580876696751697472549791728764470825256650276235600265710855028952779248798426239086639877491380471201655045806047623739076913506209808081277596278972393452067643309596747781130756196119194530642126411095995206391354682111076867368925373153756278398577984954599309799563555434241800876615000993392967876310095784529003099020966964913300621420790827296233775462718201862141744390618697138182478031466573129036685664765597500956725534434483444430481652144616302017647250151755920754569799235216485113154478808964584348604349942022198912379296778287399267615797432982789107726870101511310632703875502099330192476838075020591317078065500437613509212640637251611298364524965383952087731867722310642623137462049223887509641726070474177151427162868783276276101498839024532700359467534214770335072544841275606188716491892450530940555181654894138863651358105660401532869942673209221921565333452301835141026741722678636597584146554727029298863106028475039317617828138688899520558076367852716975210823705976715009615493350174625572797972555360401649077116696126816183845403011283982412898100775192691433920146491288880935199966223711169798987464329099000645923958832183293514049258627763207808274259618059686609770189513123831260408421721930083217523957215161217409216156339055009466065480753416047451597726049453260401634506954618066784109008354053172797677601524696032928990390121265467553847627104171687875993004612615377892768300481006730565775510009614440437278443947430750093382070125095146959080694339469149530221584426651435290092801510673794262304072769696799695937650126464259048148771693297736680675669025418769125466059897571460678090377064456196085730260684922167263921704898452820954575075213930398568213553100135088518736124140555349088779856175852172345430830703611642558331912143742420886681167418650680897659866097983925917618347315541149467760794691861858242416157474912364958699857977824402326264722044858685793484462288727900185383841333385395594999357778076407680568818239961135460814045556829306613887002872014661386845466619756153433972213647646880384334245855665545611489517058076297843473304893868918622520950145237421471571563448887247381258809416963052521382248092074874909974220313170687489348742614026173932510165973742412139968887079486773084039384319241961635345878763874322899128941133156971501643182710887914372603496674213087805827496924575379810916050976697579986186720544031371326598727141323797908953423328359126664359272124338189725169207087854784307608783922933026495229244353783949520143651313725839140538501012941589812536801391522588903896547389808080016906628637560460050982809414867784682529437025177335914614647665139778994247413008202846191221887789504603294823857722583059463970517554995389192459569677253859959174809861883292427279727073562853498791606646858335267841623193531823306376496507023421753470879891668942990693944296934830254862031748490604906969186247297419777549546276031585186239351198464298911396469522186715889215481931433249961346284965904925963031327159858370825310531451113399297622727663737193614202325392604307686129075766614660716291135837054598157880023134393177127783297907577843670204941822122285097840359819537436073681971537148093590285809138372611555993505788036889640728383495763357216525514163053857026001375726640725365122771558362340718310221755216922203465115051516060010099478385973365709869439465175811488245237857403953648291979457583362975551500170493493088095134317832902033129261689284447843638441508213677103057661111074636916823442688998297629166616427018538694633939401537904771960963661480539159868280943013787993726146739474148483462595923189518297524042866723941487379350794946355162997578090562564187140234854421970665060280862980035112742701541961899767661352262046343009514868231102911047560009722871151482894634470609855543158949901639210353072574766092333180565374894455610661691392277685716564337691445162577763917876799266834492996876884696583216250717317807568288017310249638815641924829642604316865442452559458919448408664006493758263661247457024387055778241709385794986331868206520062990982640047472641842963576253357838682903953005429572080691696915741100821520785484658965270481137864242655864302567486101282385640439377193751148135714699170415574238518137369409438406367307242125839334110754792063962302280927772774935084248269309732766603316815491586778891566692565116528513961503365775303485633946338803842946786055413646071355378889495389143349492351648587329563033219197314330411960142770785165302926371537217843080887731343802432044216411708371835796431128948627928993421325049798403308458952783095292466698815896443920915627041367712410957457775195137005337715796565288059135319852654178792432892257421256773039129669628885079262621110076156311001139564657071036518874647561518751823028808370673790507697485379316510660447843013045506397566489951491190271705485494394717335643805516089589311152977732806860846131320591224495741939905131660477280231939464675943685096809601848600758289446244525189423768936197842968335780172469627030086419280383948523110303039919841672276242029901320336074665606179255952921183008380443341071374421866887572403916386298478110641531556462833174743265691121025389320909876498773498054562537412843515396273177127749869244656876561339528383809550991661166138570563464771823541103744840007523003930109941356277136459362020774829578897461831610380302070209777053576004004905318672675597211927260732007997279486895013422085606090832453267024300568176329520695798783410709240472767133672817018838345472782515987509983240742453119916959635403471983533999181008775664463849314252908443471936067640401364336570642641045473065513572909823343316792781722290535610077684387218355247564176912989323406598042640429977437829053736515507167782650337248782551207148779751876631099768165538052317165550700236772638365336105363260611657466447860884513043232628304133000046910185987234569640762175450548455577931553464387834442539200372111623421408940078876457754835455097734138232645509200927008153715372237410641193185610565804306373233818399360507166943048316704741824618871835789846285921964199045623118307427955493768673889956797072831757375369979158989842748583051150103690357494877959217720748184193270087500375839074211857411377634387610026707629238243359792355616656990484267182721195112513063652307692396019446581444127103563859519831192725653964478395772956241194626657524742392720278431000397712433311171191950314006359863542961894311138039137886113086969867966324105645722312925676893808330762999597088006779818875186562666230499253908709357211493111452576304404391852677913219941222768903094664917428850579429876401931164038977847705883304145842155031006579064224944315769131477441076283213888962078094892565268923701608600071757917660651954471288811998523599175385387165056408850193984028611028347700992056966563978526884769840772367137731768665893121070424582529802706891238023055973738537836164869035438171411162182130026617701533768765010919082870588411407433117528760618872653574909292984575576680088415584835047999596448478271327842910055674743890511880925837686401510971961982880926666871099848979080307084342932830414701412569345335366779593535021512027239925172998863893504179065208235321668298502286101562666469123090248884543657522569023819473581352089075062329411781769355505968780192615039428242690994530725598471237875945048395179610682542165889375421952159790031260968209987395730834502600724505148638446759394423472784625564540343373160303387208682298458916701113074214678027772226020670241200490642276431390866914985067547484790005756791192125303996232946411549780155926059561108609293094645783240399387301378680814438248673499691667882949848043441558040041800037905692113578582507395116581089318039830807893549872583611215000494052444626069239312592458992794238918662281736424297291529232145988609929606085300720478911451692258379760095470953928783843147516112836593270653428791776385699980729369148057397996188205237322746244068916525516524136289814303629864535449908813624986713185159730012047893399451426808609542457412709442962811467349458415489714396258659671364896636440770989870375182376415566971140562769793092401007181863401440208833470024853409994700312290598287862092622966674513385635274865735616185335324691712083983452304056479425506227591931280295794174758653312369740611662186480797198199929476198624856116653777520304167000635422237530777136972695110445306888160465506172026599928728868387576615007278265307030425445715274602846219321975644530328356118999378077198057303327464473438697164829541480499081689504785826934964329299181110558518049028847691905456692662179049867554159999974555751627203060709637510375897835224243604198150344597940794753946420646841527797451642797432865572628726403336298015080302220337306731741930618148386756791604226468512778542482319700286502106674147332381432706945680257600562442834121149268278213699356887451866607793304469905836684918276358856006009969505953597041056645678746874905300082660459964295775255736134976640615319435385609407104005923688948888316662481493785752532901749124702239565221440642975163948128987929926181893284981590600657543299932529578888409637107425952202861813968356451263766790162052612237985291033402478840776263623646013427687536199558995332273498587177304601992341475999620638543632791521575012375050386683236548397551298620993132690199285683194226367554484768691020302752851395801252449017263328032619716500691366339805084446199411803126936039793866581744947181804553810832970877613071019772106537546390124662218664683790256405625583826637896653038732200466709134591603390013643267138015240070405438141453452585881781478683184676413014055383174088505329194514144018717110845531664222116739709602388910365831419117531123504882281136347882155183573227698937280400878609453299582491655467247058130059581291743406729654819098983567954413523124669120360501707430458441375924500568432223634607354286950660501411014892139130890327810263126003233699502136587225643287256255186809973907294472701824138574343300839704085087774772681646477213457942141598071012765056389394395050385540975969817637417643343161384443147422803293069599606104827170009974614455876032738384462791777476322727751021874403695046887079097416884655842583352025012226866430442514357425997773046833121630454991371466190986766136462481617833312200481877224229179835860136210103863373985490130671246434011825217877346734132037514749506851709333041571245596448809918968964480658672111041804235740408614589212131553361175393499596193130551189620421462935934837367055977446207400745673844978551441972216343433315540300216423899058655732613914262251411127868444083964689373756735065017115167440514623033915433266517093017178118579634777854303789846294387360803022036874482397646475595497577987818450154323779287463068716522814027683085471200268310794264047867716614955260879937056374535013566481457171559667345590290922042727320649912080509694133362607300832234383870199604836292688533958282254105621826205039513014258110770997592304177325333725496244548425179166868906291394788210692676759442988754369367453281624124200998830367328349779208160888082258327520033713812665528376245455490566780553379026206359842542902882113549930109602053172222630443531283981950104015377412318015620170392938687005157724824783377946439516598463110922756982124872887331258036196477633533202139015677081852677361059459774166122163183347330564460554952605301342039331064757880324333367549676718023863179368290306703149650863476576427586778498631145030898583599681712888053317623279844748512564624967533905320223753328233681154231356601013803415446841598896160211880301270295462212272889202827945385995644442380398967702938171756387829331254253781865932827759635164316561371371683570387078814850335652555885243454073936557745564906651582620754095276413550139857189692166974708625120355942459287234463653894976547991346577441677483447365988236196832551918501617952303763659773413811087982150160348762612252556608676220850197178174055706075586734293176263652177920409420525594405279194941870334468822727074980169178071989720536987417515125831031715449048451013615855067644834668322071051479007979921391353643298855008937246254627775303135196657269678725079807321078446418080483635536160632135363968348873072251893453024943417607116935156297509665388817919206325094085518368761703751585107451066364823785911945422158025969246740805352453950070738311379339915042340876252466604269954838600110882045546289266254986081736372182094355105452130477396991626267020341307997666918486982854828337542741839520380666422989025740246304499968214258725883455744277145797515586641298184271296700811039818223832527308928951552908559031549804660119306831024158476622557421053905799095137519801991939316779601877102453881741945448834716018490906739377963676547504246726824593209229559063729988425359429356804832500261403431414354042868480137596602035855576424399833265825088798687894507161960975523499948954359978319191128239913088652988308365043802986267079545683295717508145417852061752038082991781786043638484586457310957637250369836086948746543963607597372028881576522574754724503584419129284988157947652003978627037188927946112740691955649388574742029568913390169528307532840995381614229828025175924937085477646300449369652574509889980811513550039950363641562168994732363885271957653933880945162640592626869262722374026988311196974367925718089503206855227869348225537979034606300902555832051567449790971362088962547914230833367674607438464033828834930309709483707082966477363223203267318058830971559168319749272708268501409167032401297642855330327018486335905900580890657607209864509805459097670839241223287451439021687816132887565625360139653607595372145525741321940671145473652620322649468143926252236931992486771283397367006595241286091548759883528300885273213669522185895819624736864809774540659621196224736743400857872076239056343181870359023971079954643505016742917280419995912007872125573357928675396790413005322261373550332288291306014300910655621014134036463136733911102675789415868247561408344341560246241284139359751678962996865758813148167666111931714620640040998138381548709434188919793867833029518348417678194282647927597269675624440771544578425278165575036357634919141832106205798363399713778978191062532801605840360576462424361706187369917780206373276251030487623207437035524684540097191724296911549997995154267710951035893794446789446893302842753675540678306253559727756713383205691177763821221383493751889166139757073446864816498647124670676036287752002300628050799852845433540117062600015464766944866601694452235849123689818971422473571815056588684451651984142616565613244844890184302867251447183048012113035936848665467936405955947768944201683120875406182288843340229912349195768472008147575183843475958163237386384841955055084463352450685252903576332321938005555383256219114888938257955993407668800257661998373281775386726572076926349922672008874610689609469467927581043221951371060824676697762861009182616021049831766291773508008232786771687523437458453726939066588070598641641965117378655943448459970395573525807530902209552250140339777965579290228546980187256904784671481344035126257085917127488558809160976812128136998078784698660592823514924543547570087465617449556431774536663787019025878579539108308417155703850240096599312536086583531554406301654022075808111978786149257806876714683524136356229617548339592533505256477436648733093179744553155134638198386382370434054043107299942098326655972320171288716181758271931552701847465237181078179927237713233882548031256774583688541741344469175521511340716417544710039638055642596720425464880555381322106569550261428444700786399228645162059453901784318900333071056764516947785380617335579050575377894074181166803679650302200105221065620568621732770758934232874022635948259697030169849725624903579682539706244700449150232906063024032561017101503530410941498188788962488605774869726956924949271670204792034705788423162895625426739389188365341640217818533645879608070724669727055797552716815084802762904992384746981427097724832941732062231623252838926219369503405010518373275812599275925996675723010034015360539878519385595796033256257632496052104728261288174773864214913554440860635866249353998285427376044074132516466671880462073381464368402215692275582729497899951896736151309496365983518588106170554371399996259375818507693180887985061571991174138918787487746866060681831877827418715790165524820882476170517318871507571019824610096788759876875678321527388747147473595241305342478686437439225398301894012591989945045247378210113297485990840006488439569300575660669642999403288460437917516912355277717565817922541919994464854899138157032266646080134897778166203110511566350874950941017119920940634838079621704195105369651051668367629583932183952371730118493780518482174736168298884043304253629705281938473487317079576722186566232613942611301220225666922534116027235831502306953107874349509229770431464767617208808568874845251187611788563790323942865022410975778748742587922951070309266813327136244475994528646907244528837904560450301596168849463449763086153089086075846120859959194029158608503135014224370687969293969139992199192820517146930994196722503284030059968843151791044209878791921368466348150156097042950027639406015979121753513034936592369959962229812806618660594586403383846054021214210518664732971568760425690134860718848255353752254969767424367106714923029033940531382262585888449203423098234145380317667112774976532552756507791506681271273423141892700509677058538148892441656310277662669799406420984978504151697628987395097435993131569182459120438571287898340151471385030042874009596042317329594197366332803966137490030511970602140649619419113927836583261974432483791184819626677811416223656008034971010939719864661464058641419115016657474488154621773570387515898396368297638784365166170526969375861244013133916188019315228440820233574410132332994168886635277787322473405704243205948393839953626157021403849606485765320820159325260607678451878174626108991129691353859710565978723749714079533943668906072554105222520071031757726756637421294762359112195327703481951072312832999675002737509604048748001423105271256708569007422529470504918263791558367935729020021996245970207528622510863326275167194040918390500888350845196161836231990562279338739997733775382033106313865358752977382551573774807624179478652256718998554511636625205130675877220141216434045485335740623061340708146455867827298306157797233288701275364563840041484903802105520033574765264610459276977158189207396604131871061376060080822995353851045252845381865129983918650898789461267045034177432370168476984447748078687481262693820015441288038381812548225746222064760596591734320181253733417279353425903379931868884501300056151558337361953183013874623920784259864857557358186090545903432662068184321718640245182867090127534281778989070674959845931832868517227498381551425462503641099763153209117617601498479356729411260268167678187361583695279924281363709768681210037346216623037286981810813647972420092767743195187423496466203087982355134777172325531619456853464769004024311399632638760570069994945685019764538715709323785780883203474827614452138742318291594499285211630034899279941331311022630152484659804403401686206059743811415508550008516810531644233043176808940179780887910901780584322952468492615061613480219840918551966115671489941640011806755163283743576278390088296894035729172928475150373632194035714918218279441273591632938176886948313998052427202870803616968520199160361768286073972521427132531600043110032636779626701087396085888007377587333084231308140136239131752108684602298505971549283059339484840456768944652236766470552424281705107399464567647148369251463162754858729791293561197030246274036553211989150948869426823981429789854634192382982117397063934657598500680085851310552470311479418192094992964990432227233541261193969074943025186299791836446674446078341796156091269010315294105183333218418339254532846442496296003280707237874923249982894774355832219463161713387893076519650401550511050139920550791437965430819907645457371825380629988458228696840648190130462552586626473851153166088372309158608953954349128517899991963390277227540546696621088932751071612996465384639831039645478955159238711465059580562665718151692297938150577263119082678701520904743915885049697431449449765707125697683492607213298950150246672355633514656846506658921946575870914429396601527269426186705095948465985777697341601112560897730873978905353871409784688660441654305408375288396421570872524628406951491052261459181038193466883447030830381221276218432659686949626643118273131390957618143540760549328249203367314415439308052922676302311826601725799300456713084232018584508741209392844471290246757638738417500041931714451477396525156805655921125788566916653117262333169836052375101108758076358375199980147770276666953411049938840026025214162814955283965210918201598135860625815312057902675342566663983076489768226626287910621902603689072745770406669339149432517435891204006203832610217417110657547851426475289619120020031201831197020370416914405901629603065493490175706480238455111161452799734270870253152604178411252868957237010232990034835691807625492883638656324965386484455177765033722251492614862258973450796499170561700263831420608647973168796925307740993491339273264804546792334115188639385570714966376407879305877042445906338110846537673306291599677529856038673418750636767634168543261064643986399070725707913233321420544115266248364317319855421079185108800471561744961829211505508554382128189357382741754439796882877117389983653782099492722219230907086550262051958639411996116007202531572320435930267041600251213355568757164775385458145477519217174330928101346697073365948115856047373784171988441599650912622405107541404471650283662559413712099091839720494774490265318999045790361979380146673416556351773143755857992552817961531922918791738268102507971555988506793631172958047997150774892240595568079999766473722079589537127214106716934496562920273035133972431090250383630499664944475119467695245054499525256421146972294888395731615016319932205849977742818162356586930032418698154588204926674019420800817130992188518386281624254895665191998013166183120092542748766144453194026003411984132456133094333061132974175653976334874935081242681425891546389554780449031475029950540795929947557823913209214569645874278195641515428311975506666734982659067752992617579822220050895137874856186716959817789202349671534200309162547750658705075482006662501446125256657153690313427544464191021925163639429438261904049225168841036336914801121715720900902893662477854120660200055542454470185130721828971677595981532225587501972716872360712408699339228075192324069082546417001074804826380295698013990967283112884460567935144365845388961687241403659408619754959861057369150609316467446301009398711192523036161726619660680921460215492478499118737024948764888837949875303286653594504376938812808759970959828446815630688515707811280736892962072031888625335287396973700048395872024011847773279723393303236234589802291369950549163736443041712677675177274787604343354924958031508929596765125472850494279692050100955990767852875266023905539482685577194032771895076016325690069323938317132145728085141926693187516601277606942843754902274966924379425344760587064641447662807483515662686485004957824080769422153183650151294878534912781894349159981264370655292450135096658265511610486355167251537002927232004867985153165734216972536874581422865749855322546465066919372023430944426979327125629720690652355657049356859526186289822192737000217677380011670071064379090742974142413290080383011202596732563455499552285898345354194490719488251631938008763208405987163525383573673895183392827673997417272303326609017641527654547071778789004829656016540919337030987240300863632752420313930776562437766284664614102896792881318578797066022883370526881120511852877235900758079806044037643935105228471258406454405443070089661512361406075029457431721300248383515678926826202355559165410177794647400733020211840069714748959820350021317858465410300084902377514518743252586777250396306968583263476301537118781695727324859834498600497673745878673514721637241822598190980608524273818589125750093952919138370524495075485712548602595996275210919632655180797493240390467915366528697739310207100832939723059916678678870232253829930342256788153496122271859126049242195151707082095221735094836558189973539433252353517023034706687321712478667861878551132214775705125591168935906479126506704207410678168471641166768425172248128695536085872805937892101814410015496824005982623006696167197017012641756468551472643898540543356134461466913768364638533785574818622074164903794757358488899692579480934878621670930110110487943982220015537407928164437929019367149911342707534398141024390361444141665141899564741349856908407096151226389291487857123247151351769127114255710904500503154000898729698995419582775434382712061096759779994505369796339235806460326968841812804876167689971243647361723213726024020787889056638927347105394023881145319856401236116401484626650442008672992124338714169606098240577643698168724007679355447353179553327538180475201636674157161726776551679024559173843491424928245065851156497073455254088377485470976559817047527744779392549668288921870024948015044295893387717774376514891042272930429760019579053953875933266639131791098272390484829102200477202213612580161058484058573261472946973849874003660897041019479510926357560724078916770719496357787012913933015166538736113069594511413663712552190010165461614140725722171457218834987212197187501054006295372613132030475427194348027971781265450497969457681107500897349823120269388391698248537527302608535566234444649558577644203023183378401705831821839617460740347891486037432683139629256920929111780395053071243599217452893581691111866983281474005365357914861052820967114202419349069329181599637962093502822586192504605907616067011353471398274803953709140554732194014189834715412911296871610089765683439918073206867813102370731155378465742284066718231732200017213302292894307343871500579120359261131576590053049836699595243894649534869776160933168236386624557376577112882659946965888853166744685581732212463355064231374751628542176925233664035232175246673600629701692774976632193483670508547048145059722612223300754175769720915417520676702829307317446919670124317396893174584690010427614733818822753073971770716296764051477026852827658128370688625269272187229767701750042043647132802832814733368655547467921785939668359484656871243683989319600564471684345212962998049972774603206657428980424311837026543269865848695144606725302852631800983878741258833346463637392200091516099916835035972979176311827749726687073845575067429611253633446135912271684816807723577977904056528002191603445971032341035034281401415562538644507290924230870223214366098561655337778862544952744250143037273609268002527582066186154295809522052222151397077014481344311509540241639188851819248477712516075548319490849697893634963076564036304700539200473679319721563946367410850440210383079525375103171557755682152581244120269303771031886420115933758981037981446203554093691736634222388191464105333367285070061608273884851089896843673337683688238939762897484211422862544292127705620817465778621964648626629812791163769058912032629749870541275269331629250623890224407970296270151198634193758695850634488228301552957566939106768892930218163537138053889044327807367427330946222492205021793025851649052130149631242513294677853216685691233931050517850170753455089098627185809112641725483702366434140198240559592471977128927521880414042704760980653247297186022091866985225105125639684378161310245165196256453154783131423033598875907476348488688672104378811529287016577807084955813042078442753070266026512204547221748471963119268421065930381721058562418866569243922409850507105873078473215094837585431925794316759836133420526067907290780552379091378384134109628284480490826581903069267469728100522097483305913393757514600526510095284887427335823342891228563047767186111855602183720847766456759933039403516809357948737908329970392557779470920392379626293120416003922279124947314874863645185569177151989990360772796764617933273755438318179084979114484888934450908626189285725940683953767683143302491016063412977636645697934955933561266089427847494305525515922231316265990436308216029454160662073120755361000621936087098309131615589704589230221439125780187487942651910784382072062920803361042986971153743421146927471916415635000047180137382432453436277987678850851587493491878412388704451230087553785795439288978481249021277560382598238296164860649323131055418723663592932969633974389167255253804828126645302389071652655392032732265725303357104573987086624998572309422573583222756272440200438667734079178909682733805228605359492011159856396959160617617802456985954084235448150599243573190415193960141058444486133409232453725332427216095585460035367566131972886266953446421117813802723276268879416779450489259733489599626671390659421759813486894416924750923888364027052939795193855666166720163178034891575320169024980299313466879020109957610918404471023004367138604370911564643508765672915204094760921230776274658836079034330359866991642429622621120225434536770272014149526426548936404219912811023838073504886118121787823605867144726136969613676337438373421193360957023656027881752902182610665689296307744393967087877739604292493368596350315984789863249623650393277259578338219891980518098935943407009596313419253253849993941894637107604641072142850239412823078859021833452356228518109772925229191885921790828119187993104371974044644917104048651134025875121921813990908187731954489978922190106568070124602624159343988844530644402021508434136886623110798429823246731799742205901824232582580384098600422996326228749215410513898673125747046136413594507958303397535494926754694469137693973070551307692125789477713504398387492562618746030082450177804512269310351253224751587625949313588672897149443887600971907454470871252628217989376831787753689121589134540906249783296234998552416515750732145375324910254997613645893329368216947562619652355428464273518439627140415324505624410659180700177191053972438948939696201325074726205000965833371299179099860731714324901773571657463900286637587508074779232475709816801839759123667052290164889501459049157518495747550788490807021588006546516576523745243493009978947615508594788276899040000325806911625092583931004475860302139121695173785411303142673046100352318525454461969803131131499193684090075907682118368274150115974027020506013988333264813920685270156055365436782798894556739016783598709085294350452630594844941420838289172262806138276625026373446055616331065834098139189489459999617230491093969563443620959336444582362719508271302589347591395613583698128273173683074331194638805910568209267906983240038925418431501019974756091140042324126805240662718925417352824418777596519766667847006978835534516621635817817741904193761863947540608298832269819305689714787364940361046444352278041381663871554029272462283016030982912718001609212641331427010960083381675835443866081261793903017002676408791368886140426481232581372866097030016812076963529242825316157617841874840078288119825550348233298087023013131548449013132387365083802975071636632125647171633715780791321242961691532728543986870185002044674362586160819458516593461075961202232880281879039436206769670102757021885337212208677462852958682172310534951977695500406532598110284132887518396266055408548537549753055367423319237967073052981549530919414405988112276868492140367414885591903401387469548058881797978217711474631822760346397016632618243236830563201211872983290999054383538460702586642584699038443386344060518127723714504116983088091752982871027613399732148954059932744337967029180227053444540795482660031438646726648610502481352464617612582753353068345129727085918346783993408202244528464375838892501184663486555499287702119901335007206911962289893268894008019157393906670721771443638893239214930951270610842295236921713705867596122044763705756987382297997883582994390119676708591341369229962096061240135749941950305963179494796074968786744839033516926425809539574050203012062473346899691959905577180520961978760001393702042379465755014492571393738812404530626856677213013949148902087627468843359611315058445229807355091800111344717882108910194372287984560289673344393500508767420590011815632137841834489975840943586823784659851151217419863269496587180852717035103556130534865844349153823564766954327154548027540927817868004470870456650742373302969920623902916101405745428212652675017368744596469180481538917443965976919170789513978006533172724392844485594657056642611021980045174641167154697141988481342498084110438187075978877207532068902176814794859910956932012831251812657948234156405595998138527018092384900439110117991492642438387713990941927171757190197238520698373695395419905958721946569673957461252471103915928039472565268326425622562569473547822155174963266851114008031583009750396256725240386264594431574532897590052478847421399380508772104254050833615195857444016286443116678863201816996782760958342234501290061066750367080129769548491234446813049764163379750222784500692815511489312646131793171671431266364188609977838979205241017734520717312497783051374317945815092722093573271619260050974272139793965294639440269123002264989557887135672390705057187125870001768463027785532033099797937018872413268602566640938277093337890857868105054581498436749329012845541040912918960140848607362448635644247537335781273165601673930472911603259174608065035312704045527646262355271231906111134844698704209741798453917780252074160526661957284702394822446593137058864022663991855432805187363415306742498786427107925209678002062718688968652484221040893968677507320690075672637073929709578536957396625671135439718866342108794128759958672154975544732024845851364004861526072500567260180751406356678851520998203540539631816053026861206810991280365535331740592307565321468848155802479774497067879572176290597050978798214713855212268737407138184095121667879086608053948354594359511275404211234231455059229039115407108543608868770003930427759497790415704296466878194156765996154284624782458654653494980439528541004412853616499298448819257249077729533673772036754208776714380305145327431597811366922873120437668294864926905930187274922570375903670855111017221191580212621956694760940400738610239432448672291487260467498739418903559302941995954110263373478265786856635276508561922754945527888729004985279500714501781664382592752842302514324882134895742399961931487849389494545467018417080024706123874586771180204579821755066685400326943094122859328731936742924783423509113603696389511036567737830371376683856098676493338395723341751531568602164661868065647484030905363114847475141609972602211714950826685859493231699530976042693892176929761491248789548563080707505117669393638719439126071127846962916580440452895439442108968202316002953296109743018175285523250184537112019824311029111849378132297909944709061896146694935459409777471988921236906139718970275425817274943595916012676756794016099182755648918958664383689229353563297921881736583926941527621492232532455666633006038980139824212109455714280995676436776282585958292979996331761821294525904050656808173049512912369141488331900232603050917050448161390791261699956625614452722958307135668580249925508236716290233205781305707357936152581160006946217321763312656504984013157017495246900900520941938267810665662202279978274833983131976059731457569252162595900374101497048210180945711221828290416464408261498268745174222039927449747367830227260419060577251151343449382240145324870075335903530905392750384590821981896863373260008982710380332373447606899495379621364155466767953404677225357377063730832932552878238799791118241861328724450695561441918177213234982677846276183897964573617245254693578018431162299069937391234724565950768442682417929579179040588284685344784418202458037842231502486337372729933988410319482857862621487876748525326610918888256961073297298556639009961600635409357636473398571525442792922815377694430377816010085947318808082801655506666805880891934252660790853666164295654771173821582471831590562164582019778470516268543311420723478810247277219121487317571997191719957893320551788155395267305747565312751774596297390881753894787775461806139871168590024255334801960121980259788626618865827758797407080555763519241545450483044706853581909037385854881618605483596291652711884031716815048171895371548891799923122214386887406964466853861359030758197948624398172478567851017167983811301300433695547627180046175381472114383601826546866670817739992399489971891995934860668911418101354632090853891180927734901538439381306899788399683226760344346254489719175571751075751965878593543828840671635049699193083006930111909484983533331160108285746888552713960133581948893093422519327125209680349256234010837791470591803595508674170467004839500872048798513792209998268175222136500318738374489131171735546495494100557204938455653515104510019593181408158313916790740324573319944815187982193105629535438261837071123349499547568726560757070994636839905765944915719290731248445742781002009821440459851052611260117948372258552344171268413422785016275164175717069116707096482465066421266041657838506233185754608309419150705894801976598352908253179411454287801143521632362519375860110400011676256420093289926187767336569895642245921092946694501714177427340140931752365020674154152838820905734959114464916045840877848720118304474600176416891730826159372762806618734758742253049394152569869111153673859961608165543767371430181750286533665105886062670480461052249940533700142211044167864988219244167344757925250532244812628319444880960273647766966393186531444590203530349490732388169204544120850672106792710541715517034271626316291547237205153734172598413079370337570342827419444464926793079452328036257095470377714664347217343465050773760680618088418173209964784247586381020484025858518295730713665979733122208172751752928155385634383078511977151215628150789415177282342803316871165749865664116525838075845095098121469003879809246213514949869568387861669554968950536453861855826625953954486663173388266901259869510953928948076010580629521300191668798359268624157478486666210279935125212537029389799341663298164759490312823421076362556866196122836583075535068695116599416123429140301185032937440952201639224094850881844761512481501395309121566252006657978463681960548719784486005379989410909350148391514397319478530493283901567082113431547700310488021908540370040792824850706944927076199284416924209863584040741781570785208021845700987543815995741837077894472710195199509171564483734831828339502467126088123513336450313611999169702075583007655242878745679059885790276546972800382863730987575580898491078558626058980960564211024693966335920661822445001618186600766399282789061804167736255733693887721702505371800936851528019080836568537065600017442359061721757824702150853106058318158773978430410620258966011573253295187323769411551148898483959687104676593798801354060961491254709475412323987348402719944429928677254519728891754927418066488713907523304378130800620230268904570423450048696039303491733708935089316754803305636058305314212824926728994477866711154995420418656269444517431656689903029081442791851242785858114918300173943925921064958048262182174260161906091808484800613312492721172724183430761741498133989063606357523602401430349297763885876063482427751708671002331889182886853693093651581921548332264132590400667940005900724837647347250211013719269216200296992056765987887355663863360173011620472960518882269622994718922371861559004091334943364191350744120994321079273472476550664136360826573747900820813063749627584877541675128218971545248661303404486820570187969113616584269440236613106508382702197982423587813197988262283707589396722569115708299892620522919591121348571393445515975366533016667727750335327192186220837913527423336083249016379620910351407302449272160567796449143837924857602152602272403438954107137745533137665784250414760723424951406992696268237663750176715666344896690623731342528306066609816799503314763109438653493197290860075235576777276509440182123610912531429178751704223839638521221330925468017450781893792826633270670503323000510814902685170829905775602729254601991843228769729364281338899462679438610285309424629444972336654024174803236347784515134652928079879898893166680490140030564661521281550212382431218697881095126266422503684055664594440907576761072503343211804096116964167522172771067254689651999893713832325378200021670221256228667840994363230748504226601379285107231383830641126469409449969212064218311234802945160125063243167274387175768626398251693706978843829402055839179066963153248764948576072803652801627672867922660863724426847283503555494187659437443196298388080334919247300404119469171375275308350363991396291759173764674913555678049606935266160520262113993559086848545480931078362256084593569067588181896232746856089262548616678905844827885120651404227485265666540135802554409979590540907676526302820743455590019127814273274707828744891602410619103208611147634319465481733723576226182197000404517195724659459015461731936323606729622907157823462315042916360742745037192705334511164161084405039501754120270258771506369084282494842624264923501554037047990185916221841768900119364436651241606128002587569592625827549358431075230038774161192737273534642656236538223027040362669057157635651782915003772498432029209422751094939023134853150286983871442125221504559731661658909474193890171097980155510493651992714615057726682919324159344556355055932989174319396693107435321765307614028979827036826894372961942307534799267602569437898722092701487204309321955761672820829828601539449314667278032096010790346774370029690988792644555592768368503133722405526079150598690771567066539458538324497919927632967312757877046022246526905162087619353923379378640089196472147502929704337686098084268287151645434525532530351324867875661595208307896215464256813219563504089859402748271525223424043580223686370487559376590793237680345073235106353076941746597755866366115725980896625016525267733832333466464043091910962157757429905732588544713269430301961957290035485657073580525620148630648481474710718695140285493786574464114282614086328152096189755610074023688601903186257902420288001165851325508569360948516180627299288048690725661054853583217821619475393662481543010121526497294703893573878272295054471481346321123508012566496013018867619502373252077205709023387257497440050412581720435620045914120112331698728681849200446801117353309192400802419738329741051185447521968031475507254077028325200722294662904963965877422100588188430636447099724102956102630994979283105901708753311884795489110190108772631669580543553274046390389548348726981509643483794771790265568511809919522134683203637424717752009531245248191963784757256057669928902359044966506435374316051247723888776135110592625277191262852479205460215480721449309427926642545422510607031234901829061308635139551917215619672230907195332975332676452815256527632846380296031710707319797344962721552194244786884737822584728663522112279549870863723644333756771798112085017061533259516779685714929911310819716322858890500168600122788943164968155426008960810786583854868277728631467636030490174281028499583602294074887911589919086753723111973659531450146882946188533943944295876483815706251293603822649503891733029875194499245524016039709554491391881697121692520911633653232633913379483284345053579129871291753378367343036952727116413407730560696287852147928827747431931239208591993560670245658895996843054766759051736604089507823861755549114641697460115537135306422597605857265423650039793068731872378650553808789638612786332823979263862838172563793628174225715917407243063317630670190637592356491887338867447256106025239039126753376606757252902238755823735082622511510095308198473763196834683969276922298673012322297654719860260068235889660677165632502628218789752529308020161732148753313616330109686089342243345259905772270950447239901137509757612399395750400271363697517470324558696480626435230991648410134868924593164295665273889159691708898438249992706713322526944869340410496404142639997571457369010562595523614748688016022341971607148332716541010396028731179296428415913006647847545270220764990348460025590629927232764667565934613844930322728702083165401097954442646473140281922548483956802571379475660794889492146300563448376432818722047506583989751598244036727559607821527560661331127222378810992063520940278691058232282723033561945716980164312952606570868556577539118280284507068466972632791489032012350166061384908121827716955999324037558235258698589833423656710277792162553319186930297089402778632128081016291948784340150744028088762853163030520674000019972437527825407219353776024966522191312482766623479411018658262770069235362863635108037727840223182810572365709470184920704655369039499445651537527389819267267045599157041741469675744412762529440768380149446539378043309503229763199818241830847975918494546417577681423978505069325491160868824844282293469185523528334107115509131441660061322204628550236251506058100132356737811554721466822604444575119547444004206047286334247732773400986537238430550891977272801499482826919698101272544117859403197651425540286318387096625270493655208752181717087238230412354669371535928867584189771780109537129046399604815185214165301448233909882677506568178542771732316538609874711855076464863344394503074982628932174224044721811631205780707379720415809319667022200164594906404611751630446619294419109811756100760562304868593896265168008441841093139127763443540776937936751411291548352347186997590685713303433040532207312229942424323483223029794174317773711311653084169439954953616308593794134232381608099317297098873697036312953979075488703484235354271108133215625669476095602376560793105217862531752005611204393727776346687146551072802633258505002369809743974807985119387878027817291901751930661409098540148540709567754246737448129078535162739156476821298583629101044236479406209597820688853707460634642658258714601682162461620778097228238500435203345080753333754146291034501819140537881008727852994588569216576988882176422852011898291852372837501120969536405715964242227302473985435542572879644756165452593951793293896258214278247383237542574047664186967720717946397728666455366366206564156437426688896150028694636204257200077539774954967272263791359029573814935249796381328474178115227724650549057167116113460932118859803261725639506308998123997920391054743904681302794621098441723894779504530986542940159334655050541988318929879646876602691732162749536661645868633092534809416997365825863350275010074833299245881564031999518537190677178542958341850314473063122144304437363329418895367862087078788272852144059757541963040955938838532567535080550015502242969455059525688509066173525461561381798682346438149551869416201254900401420653875149647622854307719489084482907084873824438826431844638814473197087639052047957725099468971480677197925462058718924316189097549638628724241268122480634275659821868999299473409258556656392779695084846154821244985424091600660628480179594006763644303138902628700571268280705893987320102897848197360803680048488272292549000137708834978890050201462186310109735084316148149691706392076328709057616237551083029882832570702952755265174948597760807934640301779529755269589374869482322418910324359327226283122078067141859333992967799459985637006361967190223136557381683086276316912234191140431676878326517235014308315058676096725874126466984207362532832131211272129008864539676562388728572761628276437955474112537341452686764011555772090008187902889285393473159873263723053959946039608822612427754617326291131086735596699019266729755340843905248012232499668605600293264824055138635584623967629991165780718477923376713963907492023401432180073327693695064028916170036258247893708913358778034785693248999481282138822118432062444395399154025688586290806250149646573773642173979592872468082742787071089479745045845194541605967238627339111032320198251195327858440687914608304616798777724928950661886527974309885176879190087038170396235992385306423890248884957872092812115000306139847050040720015882738811814508073441697296126540179283101758169619656083728434918088412564096128323215624960080026728017736858140423556900822180523044903544556579994656638909342106683867302775720154715251826053554469565370886158386862177003126279300817576611763047011156521572863485922983855236155088762534890960458625522404764642990572796447394368746832215070854674562061990696879792928719641208087394148562469345006226225189026692819289140750215948895080285455758516639219794380645922528128823483634130585089920628680535272921830492641337406259106521854450710962336657614033709394163399677184186600543096894666974924288873529683967291692430757207546477006117335173328278690552961247968943936792004853228305500541781909057116048552464644054231528483024977675318328136545717686768847576651251024867252979584346754713649267497601427776756802265635300462313627947515472221552571858428832892870635208254751676941196914737000914295817763543405446539137844271594816828660845556604375174684728764048740020754395609277838564913653940125520459854231829123949572451848412668308906936350168174649928099111767011038997179864804235453848649676344129161605636014117325205143857645051155398020467893158248033201028978632693323320776899453799570597130123881718892005906472014524576672228440279484901713145163867674139217901680238116562544810649375050963840575008549202599942924054024663369409680987869007495116126126541800446612941475315811971493602203445378135798007325435027322318451261331576762441538346283941386429114137321740492021187447546733817312279348101366935205117932981498236074536716656834269617642433816756048919881871335545857282029808721080690054226011633594864255942713047349158053056545980551981782538174637709134371918077825890126844948832621581168890292626095557226620494890450316500929720506066615107407162106289570813716626293344990247388884320857975409370450566771794304846839232268614577633222938664512212567111476088335524428693865384181906681498745065534809771708805802419036159244201892921284281794130676602938304570831713088814869148136430253380260092516947047083951550384273873285006243479441795977057031235024919843951299831508752462268092595452896232421626411065456402799925783781887991810896578615949579845384494785736766414599531707774658237311027934277346088388655627086812127812263953772797527401904244443225149978688622671395085975208815991395616183878705836839168168385808604232493032362618979123521305233138424851109042357161871829366958635378342377235303552167110754294507529371843197927243425488405638432602543184016005927533060960553673731246655857629942597138609432407468499940997971655565077778751361990104013176063694858759978246094903592545836884726178353216757939563021251941370070089482677794790476703189085408243016967058076083316478661529414798655183948068786783551506868766052734078695771314649338992179049925080875392307888338086943450267806047849678969544468957849139542570493044520761355748769125560791666937636743907417666503671468017375934968373049507579089848683458921501624795055702677698930287921265726489406498311523873004902624577780301400753902228548449318138031293625735644440373098922552048626537502383854060084449896863770822286602178539571759655717276493199171858838657743261540330162701423734892801460916469751470134335519187354465711694791352139678502358690963719804531282493207272763497535653341758206250383657872336847365400344972533166475484208809760404160900353772364696893788899531092795328436569137541342856809580603540321946333925883308953032370989471702952059641666085038256317521789827109229308902229757483352542640078899258119977295820937341038761518517893182872758373357313653402393556679221841683735374890566424551423135225660924284571839685724897213577057764115974638338586639807712060110427101392794010067157876503157358051140838951316430857609230018637552634749491927362957660428814090270175107747275271598385320134161017046065914247410997894849296070655177338135520489851148417285218350811959802334700874051555905732440522573429289007754040037403909790132412943099359959569145357083977120966430354466946296764359640692883791497013684385510179747846673013895508920765935467781360265239267700500167632805586157505022717230728224040478353627216860924582966880309481104169052813157283149584619997148571672926564661498767223443230850769245911306913462277696466737318702514197712773221163539497303479342559976179281988389399844978941454821314494542096991396598500663946738003633314476452758594012516059506255766506634246045875572462275954643588765020539088498012658507621595190490196963362759519023931706950602617792299611367105143684556932267061445676772270988097297944394694818285123796128467622867866682338159259250084461014573995800251965525102721110989790207139766920897716092833292659553102709035686961666187168106188601122933136065843506512073042580569475996312226016385708153250613406766912517974976157397547006527950356712242122155084619208067917229191917795948340992494699777780641065272805166322636355675243329216495488203502549239631479495778865604293717712983991114283767575827935648068927973506526877446086457417405240277585140688279740597954683127476875174377145605422971852761199493734990875121659736207490765591779711320615200019023097202223681499918444104501111352330272613481378978454326037735234716645533932119199804197763865486609929999196891573923583374787748072362933240099377701786503696260601869821917197045802465024099444754972062625465646012806055121206505012718037754776477045769213208737313367100158315329186895599082059325568949885390825054026362250016363388336273250089675155651725781278276243517051654641939872304799245997950624740863873336635599474485578258961409295804129106357121578686654794789246964136368201486809042583273435863835395916512255131869166254540559250908239351293951612696781368263130970303560874994256061349630527299933393963713876823241059964215039450424638399825219803634282251726502533538962814939539735299576953189292178381403056269776341050677633627124682696638807761794236133993688669487198706266189964405112057429383961738535331800541244834924940114560124714127294635090511409756796479805674025540757405010927031555864728569991473121717953901335709962124149225171858223769338163187393541160672008502200793050861805171399218500652368833466663627171623874706280656016293821186870715263986662820554365392197900663860294108703388253499296193407701494448647762932609006202655527297392786176351907922753706164774661029649343572049005354540484713074065951466916480850059374492304786704916798143797176386500038018990182244456098355582326450122207703729882181106581819623871971846872158792977926394113691149744002362364726174031330596061714421749672993160485131660557427917886903126676569566892439307118565433575465562587359294272754569925557725727010243543410795793445403282472662379212184646772539977700119512854865669260897531662671030599850565411451778581093161052649159690128923837938545330062891598331659507693806980357298224855701269237636251132285399596019676488076969842393638683197883218491149055283555608482242003652018002513898925749612321495411888805784754890515775736058498400044130462717388511503368382053270308362961337385505564088799079403135222363314488962505403845430213288860188509159359262884632254172058106640940179769054509429009533033065657714343759131905113630692547135426374816642433103826542839665517947274948541638846228281559183876095929339953986117590687359845524596697973505663480783090341038929965421412682164987165920261888507578471002185993252914908894516942903823942182319186005224272360493788193753214183378158403733129351651279393958037063464833647234682215878255157289617535889085535738803582869243480566949706555297328112730139798254919447185950529900102293464983977036016745224180260839213460321271297728621870108808686443314250454584616170708667090010254356421722597271314025749954668611953536165955207883307429906620905675256018444376730651626311028539735588558536402423770473079127383162180877459100572482988489568245401726186142860389709084327635093860944944163665934647216491536242466963915975454576046726470459104576843356716424727221205728984300284340700531194739316901083933997809312993301529304246441534038420408206177981942384345384962065367714527216957014974460823314403864899508202252690173078688302432289773601042631418955512952038987154932715260919531478441667794235627721853434983247748604154730353561604636730524565863410851459118138618464609745577985839760449742112195694624712545938329818730705599359732156678448421727189729302661741824316705847658376901316726184693336298078193553574104789209751193342130798032259378808278128323140866248889043112490532331695552788874534153117726619385917951216333853405196768820436522705170156105523886254429366950906757454305917029831153018179969240387916357990143582088830694016421627385012309665208974238863095652738506951913864779742415454645749667483535630309618455179198461532218266595182900284519874838389973875771510490583440466575090931885467287286962486232168702971714207369547970426720846914531246776627669627735727834948911968132481257005818689562439128611220621882191851766976966111647435582879426311940032699251476872785523407395913826089163356092941078309087787511351947598623646370657409551198612397427906003197565274252001218411781090459147948791244754684913501572305770454247717123089213341037484087988677969892124331742091008131210931062689180941426118620406903915736262029034703277049890712914263844228372288391810968065422840048401621112885003362158232547883771249924804983641158908929430099035266219698958195330805891144916768908709677215174951581314649026093178053901270308624299127866753036879694548411135485098442778975307805364097926875760875529211058612917379996118641571861628319260376104267070462142157942113704458461641786252616292575780906095592175164117725900100024943762579064194932988849300583650287616463999729363454824574210613377935191858145729891062459747145154583096464556277100457111433850427964094497489993779560990316036901958327025860866783164499568031355947604636069797861590068165062192963831060914036949316470357798163793433864679515280399747019503644104085203184917671883255679471933458115023845812531492965503960776580376226767178723454715508764841671605919356846250322264531715101277656066589308577926816667883092620845411177406779506053147841260652111718900787684854405527049655539692977356021103997298563363784511248544246123013370159530134586508038252169061741736813602201605432746398256872120745896978161798771821171219085353607094579265047910340194643576224777159896694058816448207260430884762126293495408318117164460938525027608941541919227111175500960025442293821182616560860706114212657646503514006121050020706304874075193025068070342992413300872595863922135037550397626556009193223145118521709803943188271875278097031669187747778005282477395969166364872052878574921106754210804286133103242956888392494819173395533473457139927281408539215079903229431669843272527005190150976728195881584003630282935185274309930008585222807982753370553588618704144486682036304846291339806884076655441106924491851298509903795134149453037759334697528842359471154553819013702915835034530320708290805613576718046256029561529088527506540611249456202231656677220961980706185367364885200595350609432022786208051204878317266586818681814949789539365420971873329733494107243060226454660535450439863888659610602589472967888121962207704454293647669989288094046506759691639264984846674409494418737016500549974557637872661419339098792097035526464888665548104991696015884057320480127005149959463976058454531329122316854092874710523241107348415642175080823094749016157379814263203262759859938344716482559297559641712139472851059165110698696696696400260146370821907258261359790024143872478968621505376831027414059530477846743448707359539505936746046284452450972498140318147765434526211023533364234149465975021875503108926185462288511474048547204079486646182610158320363744181227276505319600763387393684952435513286264049166427783492507003185262677094732871440036696406668361768212884252438591269333109922426867836042555880150567845708735913047758715038751695671779851755703097868704520827410447545286146263805581384566524385428889863666409446188860667033513167687121859537505006061449284912054505600422370908292950622844433646295969658400389606384237625515039128491503751455492840246309213587701114593461983784005853800941963018341078394250168858259439835430415412576134317323020924597672449576044542632118834248733785341198963128186679652188155363181422929818581727928199258071953234846212496341288299926923587039071162070987945309812477304848691041899659752863717116081059726640667988615277643189253473154481288125946760529480286129689036084985168124074386106816111849140600371378767191929897871377129367262055949460373348573970320094222562444005442931202360374971490378066874587827887689529450902339535885839552548654908985021420246703685262262508983094477600764314898412895339401214249029231771982072974374570689837709330099444037279618679785943743328637280097001210344522686121730726546389507258481147204062854098588397668451359135780592828674920212426357888797253654224888039933423748356101602694961629988475976070721466507678492683263349148542558755158470451334831384762593872127250312558385916829778352437077542155962632856846069841867448848561552920034556357311287783124133037317263929152091322969276031298188348109733844524905950200543667589877386784211598881671782187215510214877415897345633434313647538333707437893061348727698320849341607939115485417236197580307962611928076795163600767785631090533314266471858587969767302784348974050669731249600091484842400835211213069496454380314400584448414432512722751879987920876016223737807191467946072353279303890218737166080942063242595647155485320094423275403418567586415371208817893827811610065078099143485212487005488497634871050250986274615336658877808839791075147774892421756341767040769800901715685370658631176771029917327355499571177746196140211205027877820572395548863566808937897805301204303976450406769178856588714756522256305455148589815291143460737370361841972662341450452913562614732769284955598771525451821226224410732749921771630085993466976854917507951687904925777749273683828899046011295084094089406374228653819675228646779689852089481255053500802942534144421976633128473425719496360382280220279189228500227089973344972408432905900784421645028613327230788501564622195945884896526709059806026448675016386356722544800411243137198529550230503662108867469049017861423420036988623432142743803933968889948635145354479477537059546240691476577445695095996809893394353255682863192536234269262458412784994174620270591411897255126261519591632850973474564148497648200400633527014888875951511305992160113687495626588406318048768592143595382254589733424333151534937064444635680901484925121682934716071720702981514243848603986837644518292591914217031329641194169942696598560166406735501974280075361814208531825625834669728623430415780749863387376750790043596627731662247107014702558304218246613358911355311744571642458293689886538310799844431663660795185213961418440485259812591597328131389290847047326998576547161883430840730733553089410702297212429900790165575864218777311648565184480584552533233149248143160167614482712523689740309139541947190432084784237115697486399441255992496591664060052364653986323788130836984764896426477400647479020208615354001386009509609003487006316938392084205125820288703139065536568417156422476824102835210217587976434856463971211356782954114096355450020488916798630190024825144415300246774973457587047398251561849496371452856608714182666607926583547347156790567037222906974424254356326027381316151903176948711902027087096063315636962651393690700936512279071119827049516619372827122327725566257747051032699080555131900627526367856506388613055811202627946201473052724181297894187399534499986498124706894123518834376839234964610270939439006657188430155925880598756831707334884412769817582280528125047310886544747028466140797629064433054039846783967415436295891995621936378401662086184446251572541370946835086100342544477799249467123627289047427709479543931593683024244561221883273367751053381185977555998560919389031615289122788117381322859693190764583889692257946199503581339162201705815369434910433975602792053573530600148390055558026279886181692894391744347806986119901324018361387119687021822812669880667231195880932055285219677863644949747718997489976468066918515402480329015015166904972688232542633592731014973153387519113535115309009881164271999412857523013811350099791516438060884059626485088952309742175506457722344099336403332927273932027152714967248274900901209385701414007881686779825722511737500822000530838696465669906572807053779236623960616170139691264609079091595142494288921433112086174219360516145621151860446290790718379202992114464589563311515591847439735540088972805876889877781635831800697292360121066179702927692831047557140718283860387133193996994497168778574548546663149532919649023525154657205448842315867784500220835797867459704155823229628512935320119126647905356757370356849530103622674640338443113359034797698988189762833591533346859112630552808089785258456310943242210580896688098682558802274847764756987340295591786684738502786933320647918585279766545773129754914401892372856713923522797314194027951408951450689935448052285392331471714236452299573226160156877093080932304427918968696956675049081275988583632180049712863703878075884286368521689289596923817387581803732767443540590404123845219688703056762659986599117296896971105268550523408951533422509983244074177065889152612683866154552221019446596238889210491919281652151374119973165789574682446302180135955052318422822481546984630270891291052393425302314096568267023612442882656436631212901395995948301245788028146364643468763283269269951342014572673375662244589292020160240987361923773434846282497894009508213127102592645616272079347999516713767418276386949051935254747572025959627075803515871833510915379918369940443526890956603801721368223087395771135757367711321273326953652111846299376002598464549684400570000587302021113394388221012092071482624904513550409531750397997066295254903201860327659791606516980893566570696168656967858905821852386200431292241892992931145789192804794383881006694067961085967651139407492588722266472979987355072687485878096413601380883500892665778797504137413593414407191659106839862209721296781163802892047084919212062180204850635921381235428548416935939206562019348497407146625574955833416139430954293574304170884360878874899122918720287252520455499613940107961778775279001069767303678631421221783439646883163371294860875013449162024683027403494926582459032884041748837121599276132187214504940609177783976805481860735612810549674477289626759048810541290148612687444264592357321709685711312611062910425105286145920357215589933281402558776765901205228406932417640789199802872562423332243594812724321187716478360492286336694873902958059101963905368801198542358701634465287400840424989616374762528572686976511375295175501347074133078185521158952058254443769313903302457866482320512213025950866670215489962074951135211252347368468015594850784964151837413049897927319554718388434495721955225768034108216667178164705654654509473594462317962123312112998852182341204363717079225740201003606565323803793551755879432149529889543017104551346933027088610671094178784177673203686621336161486096607924933431243450575482671865455037648925162322309160389695527142299254508627790695095059114407549071699574119371479703637568839172093999240989316002947196846469119942851167616431202920233549709434178113821676991122534603364723043028089498441587071684261529071702016393617872141111246844261512878038375360212043327642051965657159536937255917503994726919737039109080851749951015041566880056623218838694193709236620286714902312667594155811928407168675159521771044008602307432929724626612758055082839327571958889054971553230597709108835487896931703949034835379620442375480075348919245545448208032950190565727648788711550559436886594904712867816217535101663877455478674483261184995142232843006736491730520161144999459153860770176255930729433070235105479721437577724296109811075360443519444963876031854268032040475210050675380798344463991117961802067572050134937210923817090032022704661038120537456419698706425175135718908906892255740865606146384740109963546130781928074532784555945563661749265803138004981924269488834314227956864348175738284681808514990614830220280079585444739989136377248104864954041960340817826195703412484503185853214776777655865539989487218331991774414317773036242906181770448894793439664082745659247119580441290217320937696010681379171282864695568191642068039058041817045364329144983434851355245891458202809101060901658342032458860684322778651623619373848748289645194537202094108576767708274183114297255253546765511078433562649514090284667297223366695455120596880772259407416121336304529294055122484805231097597176135158629542704694879299328160161342918925577783263510899802779415018846453731208156832388552328436031738410700677358525868435075350611227157825258759951669295003381410267519673898517869953340936903889660979155761865377054633391982578286065211240591453106046754317719811432710134488676791979131439513750184093226776384253994626804733035537746119759630454093443707551390344931655227160358838883215858617000151443798615477612044500658816012049173739160143373668135673327602718274136543630227927014260393486773885823200024771521139473962413478172423465613030485326796200678971058930387035081467776741256877783130594583116152894075465431508086625665365938705478432990317447667425022840256247176657454095939057288698906982793643243306236490328683324563293423592708317495441482425822486466560329787048571072893314469395685813055524179271021186454075828500383769238002687739965426985714280389547240348264476228972714133516684017049248494526046895396996802083164065566384754278050093081741611340032801287721570736165769707694482851213228974631023257865598969753972920585137127149939993036725243854038794200008464218254655447633094777337262682275410556946484128843754391858776578212076004202302303355532313310554315384642008185852318055744780643550837619211779372853227912041758334814575914500703230378762222430215580656724917295449284408792810982683481483846135247372903558540627533084551130238863583365081222758381124313383175141632043073844884304050290927701646506018430028662386918900438764112418334913354637402394006660298508399378994955638097591410142654085204423782179897634097107415757319089471935881630892922471873895866311489668825259282842601552443856966682128645061002147457353531903560581318134238982461065301705579718673884377674054320178588767950663865702132007766297026776053248829248191575234400966910270259206024339209091183625006502834431923155655274833057261136000572391785264259375851711532486881332365225414828170124699140701649770639163020992054496266224883097385983449732463042086381584137667159916562271790689304382974200690169642738980130033656041302121452793121639955706550368973567797865946338906684226132676748479914873793243067046990909231866026162950742165989976900886261119561505733769754245940980502609584866311867744907864208785416796606293617125922894734277731458647890304323968185816853187370946337092528665759838982800661702532163410293205056178801984178343226000161214099607565476032572943679747469056262819212308646716130827243585758350063780936576397898804548641043519123428821790710059273582341569883731194117988810483865258090208935110997818699150914775626520642956948868800661612018113919083592593319067254882166741920336483220897426918524995849891105093060131250038355454088521307636895400257794334502830943107362539332991531721451839429854230485944346422271681428358886057702516324679212395880358905708570342387153863121438118862497005259146675291242815881460312846154532219562452226472165727902599888148990407010316509819568393923039584739982177849216843528203498179820880664648034185275973993139094900046102189081317940349440143773611146604654044018251458451955904118388652372757219560669686701831997241036707789286189465911952647991717194482197168951387256830598560922683123405841663719956803073284875482873056096651148680251738226291381929071685355179541089830581503645313639520084128430858148024647798373310586627051954517167422236581904119436995015002607476457240114954672488803256737163839550344158999776768704535788083726380327218046063909764895651745826556067754237079463796210729800986408156278916193637931231152487155405999156585620174847279327159302135889035990910579746877702871976089870177275363928005698782626642571790710418862177592598492860740668727245025411633047526887404169736789910225196331054940600406270221070841055730974350194745918655541565890169970057693775110386467860082550085917239035300248216752822682157155296260823197675392631830541280492700162721357686678560498333652449688110023607694234851234557585623806302325151600553236479286016383372775939473443471846367628190862102564723448742531405519266419621477525523116573935779423332875349917222898195569267658059030412812020710702529918041308031349145479349852874241072276574286194411775442181716827770475094617446604700652401685855892069064870638886069546878546591190139834839848891442434158531411061867213193898287489326570820914644883037924852604581155448912172926622779057885559238136252820780897448424571811303595007703035683128942841405398542118578201057574668070021168030865962110964999105654304879266904000252474637451220079816206548319615742398752195576170448670819287368450337224187208276577193033192509154817863097423257292517172376643754665964166021243622887772180412720326548894600879761871591762085756757573927765908187182725215655388929847819955238726443865610050151186504421518536764956955095212100709591851538546008019827477408446712029586239980012640502033265625611145445907701128778357709134285229207427119880111056970333974522387192401166154395506690226759226381065065571671680041188862156012479815558743937352618572405441047122964701486192849598709029713518887777033566623458163978538997577203059111803689843368182508670490950081073337423913397190136498373081685727133976765524548239271083971534573471587467505064381657040754786511951072503742848738756867886498680695764669371962169867065328566754164972160727282739416563722181911728891460229059985562929013404179135199109313164301059429799222772007693170778391648316297501385631021917072301374244629089083517763209013311872500103422476548930916567559952020175256328407178026383992795415907310219474421604932038762640048355751640090206371092146919204619750024661241078824566059101836830377628068566274112378908813009000389721842961238255333278020926937547675464834957949942598395708068480095792208886987036016834785239402830576711426737053715601790184690976671765572302087949374644051567130106218762254533512856479634107663296382919789777194206144146736063342048120030310839763255518445042430806508830008439984579187972331864673407389752357389871212091780803188971380123970145839769978561380256270801087859760252973478765481475625014223001265995040158746199161969560662480070156926533816968923220841493160093813484059011320499625877290496865893609791194016540734079305037059597484886767351157206912867036121366465735773330795213697657594508833044742538277121700203954118116487875513149730083461495642565655010990903119656422797491228848988699672869231867675083083337193601354873434379512927615249453624831791511310852819477951891650087653858033448186413230898102429554677499766793208303177640119443558315355970727665135312288291146461364521899694270774628341714976710702787373830655489239147911684223256811569603060382704509733926471713008247129765038245379428650411527796742859373538784401857156710447558675056400320798376248245486932179927124959279380397382685122355240621506387289752213590545720703494627999184355711519768774872472528364083508048195352779030556580218588021932445342315407206971151834872555281776583755342962747395599903683413279503930611447115235740971579840095726888139096458734567540300342726372696284314630460030917455279506087643642995108371581377113693736480645475069117637844929760239268917828332947895160933790206109176980595628497638696530488477418818346497473661181979530823014853965142318925760484384094044946972894026912106371653575571448737609871735632886783925140644771059146012283957512035809534808104357186716922545182036070432326586061006977718454521238279664952388984896658928312061300151361528057872425496529927310917302801911392088178016056997890219114620766418010610238330898154261685830999790497364497074596030424610558347138895657563802091584022268754533016318146452225482062574048466161784157902750600934180555923088615759431268539521375037004316172047542106626728867529353147767314974648896515303893070222303562348967151088065659958545717510564734758598829313736475012685157238472184879261991227180793671234652208914350954758908350228576646114070970231462385184007843168964459938273526934694448386789229648688269937222688261304960210522209860847713218541051788968983414799657759865190285197203574150632392392210936334399522166583648087516347669001859531269702677073650997027816723170275791518812388569966435294557605001495527750316941065021218852753603868437120960063069647895625766819406042805044662615668489886034651659091673644913550943301515965299092527607415453353383290357391499233991704513978945264841456827703048371205396919923941222612066491907204791964700009317135969467569257348370081244210813216895732060930408763939173670485819669997389782850436069976775324354958565173738245042960511642901173483451672278414895001626993166864190925680746743720057514303859726098538456417294147594894416348312731464410036036512214324478164185756464447369925892597073144455850867861014073349164979009498760578962333633831080065993788161761786123143310552384520533560785140593032246854422100640530116346127802183178565301035194877368263738258871816619485071473643837214190180432863524539446192918807876387907308055395581220199015564372198632959225632554254974569929537586673192557402060854493726294625742843608859155428840967800698611259893081703224555754942228991155815619928379347063104520613572826557601065535106302295668442269066842543050812238518815686134793437332685169211098040130496767446416352952198619825626612868564950273299091432230531335706827332368736802869804131084812878732760591431941630878187375064419839329509626034626683365003717430477131109901538373297639377353692620738322076399716329021555607282201527430036082405479548498253493001582637712757124790885783638671294649564950178647327626344354787350814771761251083096578047499793935733401499016835441628863041136199048113914228455404416546375692739412736328406902468623320319682309381917367975092360910862172476877305035769219559344724525077188589973680955373627308605874351350330079504391658872274611126318222808901893351841558506390784990195077454885612520343058384470007994321960343342720399901540371999893240250736311438279782006924529862253754808051309943285566588435390810559143466895497961659408873866987006621541571856091407649709899424651376954685072710012929328701437393654219800230472303263324096744540886311267102974719399204188996322320970371867489400650125558877624347239987616489432466978639724170460699971784485994336677319824212097454690690725582479391671286146845380273588548797719986736043841167581625053299655748214745447720517004903535976338804114250411619092952221793668552398433608646689794718042522419699345893432655057170597188690260703661977587059161081144190199414699057227567890091289391497873742829306246149010056663507333676783187785587431859299143431480190657285319033235903063129120459591798167173671871354347616617220198300244675027781791269006461261629640071378884228255054257927505133356880021562520521077377625806529282131752972470910451286288769059161233032966708814599251568105916944225033558352652997011964924245835565181980058607719137803558656096983072082351766762406117379136229569453032601256483940976603556250838702543857069439610129534455423915418899764883612076487045776967249270434428107910093609010789832637995963875717426671479068778553296625747680490348922169643814124784153670682741384241165970195455608334837648441148897059683051271109883571218991820786542921674905018078782274400807659138722674122772132737704316024355671122114967751231765577523468200239595392396485576654874202078673877271103778721392087691556956478867549457624689002497080804700506577350766896082254219574712129653359035033194023962903978701167173863568873659526119535400446332202440789288917557905706312028935289609565281368770279970976312185724892961152202973295843710739864440216258549663453984918984083515660850594746602968041641458168579610350056083348318978568575470067417398539031928490462352988339298623172248181965626380852931270874225478389856218979720737262613144372831075879329177135392543177706544914296593090532264222865402570733262864599182954855889942894481172107878414166198412580641460672686469748477544194265709910968930940996034077638735503344860547902985004672717602537749926127876649540020985353855711680549906625104722790945753357187361795805157880159255874653272105615060686016807014641804603347588864037259214954924370612198421312767060665907371128117147074733640707718024422810526417137140459157161793393318077748228893627771228014905127783631755928546740537511537858686138716919555867073533941542798945143672823468206514810128292672015844639708935216541022777900235765881806716191117230543518634614323887203961424707020258898510763571173116442665238979873724651721501100187457193144897162911658047393938661059121004340706405514362769228115003608532931799745816016169916032495534775226134565099675441412973701024162196458725807727362979382550165907586888164820740500945896172796580183774865219101817294836460409748663760067049162231551893323543293920219975338694614141386163429809888694843915299878228524128775817759385083862049990460167784619407216447963093530647480548274202353188217630140850114639590376640703958397393745627004275208796364727826400100895070858813107892485823693717678371342653092201023392483555599464423791967141134592057604766519545373247588619890120649058244047754047596405018235097332252259931596883463126170344949395516487456959788016541583492039557759985659178952215061401645172644785855105857527196616247883185661510119110850990301922567968631832780116830321651526966867634837111248186674386356642165593439161295931786680148375838215150905402684850889391449878505967443114160144403663032454954210770178453672505121967662227203219465430481731088290502463940869233722947450077479874554318569155103275223877861956568382720057781391660047340452595235560155240661114568777577672179477477252825677454784304304998400815188263745740660667649474407045360519363629360399060187450538053371932758360713864952375192217013320254240061195416222215551178872758204202450562098951454009393717472081729946990782186363749333954241593792044461771705531354589762243303638156051269489020290472965659301277926042588730321972619288727996987844595321265774881028617048413060465199988561566080469276275961417344833605931906540199310583773329196370746088203576448160730764827489022726312954542890707781679683479067261952242434768824741301404724709521200420421535395827651291466014157351870745793147816788440738015015628427201508144637248424875631369701064103900207381956702309711395814256435331192631899817153913058458007029052234105751886448897375943873934138708369303715335782595361238772330309447249764751400303694095097606937479926064000476636654039162641479173711443976867647949651203155566621148749806691048788947422752218244547077518391361686632751225193173258974926492084300670617354909602809871542024157815138696059987729159222477038139935680973708146982809336080576199246972926061427670625099245575654549704038027938164517686731044133499532062902219347696398391728633056050335255240401271628629299844980162483775203102300818782923878778634588682502825603693165796591285101654411229301979423868675959102894738485998325068037015308327210443753328147448646085576743929049690421115585169348545645900955543571553923921184702118398510176053948205017912031930127698931669941275233470843643331746623957789221844322267047640431681275766376582031693765416354266731333546474594125015787648713541418474864719270902219295044804279373393856117373756207605193317770552684582693481531211103557850552372761370708215851867729976569365827913481224972859477858597482108286673544728894235691391115705455010668577148495102364344081286901891229963016913290503695803171115434769063181068961565841643433424244112773874988824306283954927353130480129744747919266012250655367922938886006995720970787975059537435152392274266910099157057535813480396896236987380111030853053631648804428808524682707889372526155327283141408292536800308865206716307415287043124255231528813674616845972565502978477159912983772545687003476020546376501510004326917729816662094538236701257698728393939656247898465463007540063467200775138752749689250428146531443061406974022437044142812454786984302846258696229801478699022860520058134506922773315814492737638490960178625364476756332967706625281735506357536952109255199076818997217897622655121942672757330501850368196329151885978775910566187338514387328738391099997766169121830187224188024093424127530647316595445800150134510766525723083999988657846485234623520607371685005016789832346694678665545814936475928058167113665103672190278184429423719887071707399670304027419291946536010273138880360923208653525789071258859236597973541624427303015214095320836696019874603998923284568947747389844882121031324226971751624260662042140947996841520834811551601122100078818153347764682012291687225726003467770350438542329350696747489203560761963719984357832463297771503845302267563263917521420184118325079223968457759603000021587429424286728026962302437728550919956733600836927469654382461277936607511392142550509427206475700014663101217855230621959438575374651321705643250042579849212602699577181366392839940401490491736604705405643075892136662572503147638881794802809555447316019317730241357999691779218128581447864647355760823331246701066871587400263028987893530632628343219604178134616097068359954551337067782121946061452871667627415967993408166600375336215507905145312965560197002975243205356067040097368332820657290838228554932844176266621125864345634236923316850868721931561897626842925099646936325946876678437842998171434705725709891452801567863771728994794366672046594254800984500430750226418878768794693558408419549091612519730978662236992935770956107091208768005219008807472919913509838314486154708884144025112725680228142704387635381244964180077286567023711378555136453673864370074991380465007227470085629727183979479252362102736906048782994860220236223559631810994853910379663083000081441467267115188178340630281275174247487790657724586441140091646782890045222833880578132790499343864097292083707546246373125787561698632024926036909363171205848042196802400616667132297217628717837505496469127556681866314587456069836209861928125757313428950325487209133577737433402245952300337191955735757871972752287650763453741215308030835656853363416756044608386838824280033430446592761904134727925964335797865814135496299073694949483270054828487830597196893740526571503463292808231869106336959517127047072392938684044001706373402561230449298545651374249658418547165520577453830008094459434236441318257187073801504100272603232051940719836553747288124641535791451022532697715810344276365694969936481401978402871923765296760083475864112649238439598468098733415097899420357249756951078664401648402700252133843993883898069201870295177307219891920714619699753407951320876324138417517819659226139707235543900903473648131871465111156157123326105498847897576209390261244935005469184024678562244597990668862716056491093975935464334088182752164556344455568965389075468011870131109429938835512642361041357335882404788656023061475785686616270020008189247325656271277593890903982420781639136264337650315283107574848854707351557969101299386512598294958008805055787613229831280074582808218231969269611022245535397882480143501041996920860716033950938360249446145141314781983744330871593487929035613266737578534249833267417383549824318541974318233650298194050636438911525404806719608736690436269261677899486645552790201176682414631640075896777991666958285488320881591340326146522406930307441274505042270383678205127055891656119340240368047263096273600447965276455726589289803424455093669356697786494059393084177608101148418855396702387649185117303006410249687888255388136608887662826129139001568611668429309884163019816852086585482543913264575001057736629130651410219093198037505772212480937272227601827430618633994601408407241088793593997309359439437399673492863844709586814149095343038727992547509339216783177647160344795869795119797505336553445818158533932696046855954105749412243453153853065230078672632903838440280990878886765609066358982086049872900906879248390923252605755165822757247106321337222956290296222332361521250869968386963843013091333612138378801724204290924273030432123983684421577318905124165301839651421321807154165333097819278082681991313258603880250764873054062385879169232966411247842710545945387984844264989273942202600659897249388797101164498155520437532536197999099038983372509150873065430599792369336913945972908217080528381025824223531678783713530238795860801249975362080816270690311900812521320040495204369436579764889855839665576364372402920415472331685540626246095706523966029650702206708278784792805188710733138147379907235549181468417632210984795265702804868108768659641884672396068965291684821176852319110137738585269827772142467389333007917170392935819440376243919905786263193791048820452908703749027989199776097137050343347043547876518452529682086258510578186571772456186684157576217978978621387463301103254304829899929194706755893741469617464101232517262472664481511009959821204398481830617405106795663521462812030981584950814204904197904676398459687368066013241204227833791053635846536498465044889220542960745938640309463131593447831979079149634258690806553485560314930144708232950229470144434316778182114125042354678504167700686275303144133298501489546335701633794425674417053045273384672526680170075952792045914994259009984336321414589325869621327564665849755438455637123280400346995288745705432875742005698191807077369484266586534005823087881712088639189706791715348735799663642765451075837796846261776064626325614367477685866962434219085812711046976766787899220133812381514818233817256809024277675812484087108803473328666075209380273442219371906030543993505602843353120667314467035755059846519095732559301776659762125427846394782958251104057802977550502315552084697968766871059669971483773077950973574036704621265012550938475316401841962372865526125186153946236505841473468681691154824759738343687448015912824162596974928272817948083097155710900242210757993698721836676293652984436944268455904500359374353646203367438942991787531596018238600816650627783278258696623542750775560435217833199430654135198529494395028118844471048519826435713465142236305072103218191140791812804995997750963479133389827533158660632876598230806092410859375104776753026171541482012440527185514131961953634146161627432815876815394020726498052639589776409944746477340840406887079165446917753565964390629651784096840215837135432802068711349484712689627292455496439399305506996322178761606697208576026713061033468977141161726201791940588422344293053521736847927677258530371110156997752024564337001562219659274841850089221452947473891422368783112441314147751135554285665866585428546213918062563951298705464346373899765400772644171681356050107849836406915100625512420629986083346061397916256229916973259358068458836180424082096155525171046903367418715476562618682870841851818766716762799179156693421034056996057299225531557320438378936147481855832995006002849542109970050078113827620604108608699139748799799944833632562288068347344064640424902683927294825470685711751697659072049749854895003690138802743455421922387459255213101656218422125723778754671859811589567449001218453063681982143025878026699438802443510938452249124570013687805538302469782182499065544419718912614052868889391292718841507963958448141267527310626826280228102926935178037647375655427961232062023728858338675655810766210677503253575251494497172305080245971313081253370083159426617868056616955732958391931644324955956917410377934886901275338122483627968854654217259589946511384399715112969207660097756485695673293313811921374795768038042963929274932193762572627887501164901619370907191233359338473520129611189830216031333245946640796514504649041996929615321702074173214132388452006113641065710501531548609147742492236653695327922413288639254476124415016045934397723243211067104059840926608739207659035836920473710108135297832558027383143463469479679397969050761591732944263729750509579588308398538075349719977377541707514642473056819733976224676151555536966559855296298672951786772567636895813872473623755088570176627676569576694004723473344721336335678624661398328349103930040846818298782667586688261733996066423821358562571994452651204280240045140305642914310317388554188205476194403198188006373332841443447533167073132903933927780194448339151374045846085322937533204719478565881318964955262629362030205308001292379885307015633595415489210076501635219845501501235481538219457320559655568660321669250715871558724622320885687728044939743136536123845699666261796671430710214729604217821992456201152172966524808256486474034279897460713459633008041089480986816990888094678030323849035200553569324239815769092727255970964311877239209458799050290522960690109686648081416521813581406752447031084490705130984241516189737260750412951776112067041693549786372014078776583984419536942656732925265821029257798885224158964445976094092417682721579949982085987439390017477624486312257587965444634278444983965816782157193654345365960395826650741812938027917906144323180273173203302757400211782198607283759123224475596207065009543635393293010855536492228519670430524933273194568384253882264905269362828895284806342639228136745900424409686884294228357898043525917927794015326988791559456142668956559961763041877304912765863704160720240787437088568439652588612718148106808694277851240796904907529556013690873681151012261271333596371966875373757805394248074513178636692472571256769970617436607850450669107275898919504223673099124346339625432714483186090146124279127840001984454473731736435986166861779143815544489223644179564958569294973029938182994272753662744484314398248172314390482110258529677997791672858679833449174029080437058349721257939886672740055491826302923335962494973786210600872844540101132923833935641040643733671570645783211386496786063982389572604389159681279221449105059346688462890469728761360435262469687751834504554849645996767598383295550918215637173848280294272276659213858209265085763551234649467212004657251502904427148165352349775340402032538659561336864205537973925668107351268297112541399730032290327279551567825042316793902342681576992198205109775824564063281312224515156347528717594017957557063025124198845178507719561130688674163136709139582417726715934059904263056047765561963654126051986428446831567613991901168606330849191878662307206421854059482545592130969450503056052184267422872396060619807286698140306653469907866082375907813174805335504901401636511218625994218670409183967472002348049064751204696946399389047438705610254982985357214311199060759151666126936679330457416612925733690329070973403523504854973730735312709133060415106286771128347999342962010006476484066583103796104572194592981210018273614445364074236117728748904158878903254569276115688070237900896699964681441533842893222677199343773963647123165298346046875036300838104811979609048868125919870266268535176392958840187242512649587108438560951099361426473670514135870677838479453645162008712746296476708243129832063819559421268422704158543548995540827203386001305852991752542041513016761537102314932321622753443816888835582476911057984365337206051478337086203535133031805011888294207000526230251740006194468954111674480635260401427306094507683436253324221890864155896148792747440541402743548889253580520323188403731162683054936337771490248571871923726564835881560056750823418177861419854740134071115379635885710603586896002535775067498092895739954947737373797010417621818980223933723972896262354544645970059034862063536612774570468454521975470891762251816360552581549232735974858142701244767778051917196359157509143298565752525149978948571710036555762642895325196115686439365409693397235503661813641638405402123502652315605651061788508841986942056357664543201878526013557641479605545235769015672415470543616728500749090739246139783784361489423227063105160634369512501694207208901738588873209344315569454083023183187122272412873428047324855483835286992096257262385487051644877184796411938569004451640607946782008906628369216017716596007928535631976531210953804854864874465949372077550740692197025760291604134268476364001477601000554725185514357573051455667889357469866156993328262577275599710028536102766844978657665821088328513428782467273512238499421649333775444445391862257943221520203849438143498499808433856679808292214860498976101118065468126965045168989002878279447425512573617417639314130683262358425525123302346023433541862179736024673775862662360258730974896801272473833209386834842528564647231828346867128821160449035239870670076325516063129804640782316944939804464173198723959824792059237779543204752599007825633198181631500244705459162961099095825395015455022734323106351566801988010594785671136079280278330164040973267325101550269018362423509742289845498426319510415725383664307133944958737404538955787728869537869597060062594915048142650468061054343414335962526687537059825369843441748666391968397273590567127615772780569396246154278937620313615264442311820559356448265628393070794701687643101999586758881916715238137642621933677849170721657439640471148501743610567667433475534123398021176972022788952997854277356861194695374040818836657151483250108337482169041397166103545042939619852627735110927397559227097585752706781646162785791956287611697830222291852745472958158568875162863226943824121244943732160011151908490309387266178187818445123317691090748613209875606060462309840861879869013506559018519085428449790842115597560212894151506611480963124202196660420171458980163980234231910651421226967944053307874667384131415309634058799867769548649585695480887649891304652359563517603237878916680170727601314817384512079030379205453971444770586594751087843058806730584247175871989838086280311591481341439698795791738138317837841909960717618187881154781185941834676892745258584137822690854269749849543967376498828670581875719543495814678182559237905776825089561102059945276236605587192828558663520086667419407981308611166517497990041249953780212174079169108880491125365603951158660068742672910542992459106192028756671466318529046317041458307411118956645374872705563501285371354689467914184085060411696976194551090998540286048906163733503702007722291897844638585842544663836821465305762716640072180448293168129885906758004542327104176414358303352682383210107682285954377803633995894485600036988232419820695180165079435206365347667090996491892546975441028597480149900694159753698180171781730795526667835618456740019962964207390934681547479492956428829860473798441042347369846589001445206393976104745371713029265298528627754079216865038091430825744416150914293612408317769930808652614546410488052007496856328902938029896177701475774480463181210608359074677689604431085093903872750182607177901135662498602865947105889979534165332187105496666936139710858661145115391482796435773900162031175339898403249401013238725383493010555688688285331169843064394953882618769445562750794335868620751448375793859715959166318350646655992191134732455492290043608397721391315665353875550832964291225906263204016049844954316965515913660887595529149438535107960786769864694850168767896199265967562602152988585359381880843303435287943647189548058436857841734430021687669528759693725475792018282079694966794525802720222151752924333203883109214982709562040396952029788884117698717806617373715785380547679529150761843206498847984811964319245155119383666125390014526653262793305212852350824694607007733295584291561567620856119522092039518148725840716322757509557295001469915393408384872628619246603432219497788776883020508542203166913321505751565101043002069785914086309720511848018840562824815169191365990434679127187763938001670376300052385067626343856447919699518239942960824416169752096189392682132695086117832290721953520919185974980209862275946615384709995183698565893277876223648070758317025949214271983574133183499647498149923848852262311519769836438183573548709325877196884889464450811853090468343696620172596179316201164570023783784181201034188749234467500160226991082044515091151377751534981042666756753114791622761258007624777581897491867308541002006014408712364197575330545264572558486060032320541318580380781160086079551020198148543588468250757235865839914472958840920773698112057168232063193256491458096651282961606714424510799527658863702073861721045211087338339913736419899333373158445882233899827940091036776735324774453439786946832118365021719649364389559928463795591094799987210908112963884042958703550707635482669926772268813696454527907828557740851687198950803983266529743094499419886095490016301485573972780031760721029397003562577747597544347763028126422285555012957403753987914207757930181516964515868359787368503212830455778079495920891057351946416562235924735135898029259711299134629229301928181748037830770482249247741379211673484502895490583112419484582811549863450308009983408527757866068211176661115291279812783728037043468560659728790929329021734912588957517006928807710540090942770058477478487257789803570917696435453836927948304635283727829831609446622336211892131329201586053370010552092689280544303094980561572428866907104434706450282332278197826583870845396529516853138985705634079694251183648297692916659806739728202571295978088278208606633920650077151358307155346806891356004480396988281406409055327508586451860843963084776063662399112726772353136823489981594911159100829873059823802108844969746571569578305113954202967445131864993302018738833043780593377796471967314030010964935380540028248537816343772567108873488832701150265558814056602514034289555990747517496315227416871275777222648366869383355960031490532152047046001728623903129812121928447989650669051692643251663292330359692652802513243592691450087513082452025987974233387055144205943946727052716789889537775314086189081168284734435019082273945423546029573419172329701102378434893333825282672533719841174531859963229561320624158769718333047582223277111835901681934370475246010244283679508590639829188547543164281504276368687574807914634470964598991130789792959866173085372217442371586378476611778268153011351203090121056824514951969841148546256148678744950261028999738894614510966773002167250441079280011859942259645251044987420168055798721150085036379625369930213384085028186965048080795190191278010384765598620869866932101149714895790804823650808274640466953608015655074928333969460557755150225321562280574468591847491966429988897894728786444817934384747067552109256602688259353965785911168403050520262724969912001267842546596279046222610923080621931628574310716921188284722038946884530542685604344088895850754791307460644509848266587816178336744220652453226476109643501868238022533365959171618567226039857790604374339806302710021724504389490679181195896392927432706276273879447231340862347639239095980037273504828840378354869212742591645358643067616983297913282633578327804717848464866712581831906183578995717458549378807320578474774386030837910094066813370860204420947592693116040516082386076140630354600040634137441015836970640660170642511619708732480283592092352150535902981572768993116599681486449737187540940130373486999761097887061563035938860980911580151663189997601491569004765373690625300758925568765681226293354083723407069011642864612724557086827523057916487946510293787475886634591038825900432663866679925852172298816287099712309688151212028064148123248460353579749399209234044436879873154705382709680253989730770588794953572570947521354323277223169970904080691876564814282539064840064621374417997123850778010286004921356251496067968612476610900283479758522211483790395164866568210242471432580306075034840919924827614193376758288527555402157412455898574088026138122442731865512495802792321609640461908698125904310186332760861835590589227331654862954854651574180160105890730883165167253871002415152117428873716201176053828809559850838300987091499329117195282168646785875955048929193636135721767467433007651440447220240322641132402573167964062456026727014416960180147087672711846924561197596048957955166460401256082291566174985279139712813088577360809201875484715907589069267689757059002776786492216648834409021478696082900933175496546504253098112430691191276778788462857432231342954785863071639354462196716759120727800265996603840338407965508034829796557468535062162106078193591347957646401421157636884737941403242110532197991623529646391250758308478689578594159252150042980338617589597962897211636916389989249176216979574352604921629259105118625081196509751310504003844997495713698748106266786859235138629068585102651182823917988144689382125739729969470507643071005458472537926193680348901134472711357716251071003525026157751164045240226052611596479788808705100470447149671803630370757935665526103518601601774763934178347130241473956966772937410377126902533153151055727703884364241139329885966071855995418061535787792530323524153259167963681449317413104479724471520193754422878723907090406460015407639992004335061724795794535192777392713917706210701444866984523730929892544091942177994544716436662657244304332950325644675037153609619959108376089502181118314317008194128824706733740711389147923454451216263826712200430057977915381663279939101991684978749836651357902102853783336509794259153674708690697385950709544044973597824203115279778061842597289851248278484218250530942068984533078357470865001557240250798117051551604678102576845798867765223466565118330211478961407211742536691094478533928887499501389682386548405159857319958589186545011064778937106441390056738178037322721121312609429706172091137885610313896472252581099967225254624362759138867016919966298663043485734752484067737059820768584649677451344858347140187688548016361104542914870024514753544016492838122799293737707457665194344088166083513697442802225028563341300894157314800839489686791422179772388988945346019843696498862677006085305688574741252240357818539629294682689156134226622524688911845928855749172979874689866019024208346362242652824011309481856642477462356629516372904954745032557331985900108276257141419960957400302645301009393607736455760289915568756971644768514950871233821403528609827723852399462639501117980882423984429898476452788862058255599533550491494876924331868332869690074842884804909846997663283156200102808780145581393985289609017813573196799652964054947296669043852523296205239796845281164218956488748047933764605354205268399013649826306221729520286374025436505842993362221575707930248473888470486624405617845405151898817164499661074977471682449435094166132163861701974598409473157853468034212844202011651538229936199962138197618208170668830969456531610679751944316476994522393141442113698389022539857743894264373545028132535994630137147783689416381936146122575655226173766896018927845825281699482155680254870081060187475896963011918731216239681344101355201300774802834542923565132671742248677311192038596069673491791077148188028094480170686729480127364018646952740140775374303676419992083481579340584406828484730814946495313092601618777063382091128656317591502883759054253249639808060941784161103386519608643595438843016036618977179379055631599561939099116182402426581802776644737349579991732567279218659414991078053541568016526878898186601975717745813591815936477907596604474883594923802724931463090517230853375568985169958645595193151347508919105619945371617504471745680415380969052077173847224042963292777324679651562977799006944635249826264112813642085194363194249842825350531968110349708577483878470932542653855656953717785361949182889351372417235287437546045392800070826450745276355141164840070402271475574829837883893731396315447906080458240958558964785956312453971465750702058171494699274999678796196938001817561722970676049042144447231444266879329295513568008680814439163956436525744571155985544633529976638036512330244418161409086288022796580535243359450377936682775367994504643933604595053261784244192933425514481040050053693886060474907408908777518990707142767687178234304874182990887456104920616420845946230840919910923670331701805182520657702446509398351492879778003521239017920228622522648771946941175621746182986683706982503770712840443083247810834966984649981440318422647965916900982702785623541074327650179207748528623148776996488493672364616467658750150950502348708761183142171763625016571001526864056468268056341925197963350491499555262859122342669525574746976040359933745937318926767819530450000673554899558087270313493709387059312455919576197827708534317108881450923571116524456659010916013475415321508706691071023418217516325543395005518641032303378598812199208148046735108246474431570328365902023077087370916254881181555821392721141920454341769756957752678038238739671324183503326081896885744578818527753832508766079528591187524387701059250609228809855830674401613143052242588242653989943724666469094702426885451668794068992280649111724364009906478447346276641018286136684141381449434786038211277672139514810274178253196406178312309071680396678485769341340277064532896864026016526403655210823956440720899220681377271307849129912341944567391777946899004219774185062404652252501796157984680687147678949546829771489112129234319351299837421679383272348342048795942143664307994746553362882757531636579348181228059629453717963869347168427807111012160590591201154742778635715364191432775873147109608682758225795062470698821112301524674280272478904463977788525655381490997830662994129219288300565991366336346385285007449197229432183503926957646133753076781586952295049302852186439020365621873074291670316330431604016271101181086738705999672091639966383406448013869307010432256805041135053088271911633542702813142768876724986508767264251644200043330820159526521251340705314860023879006244506916883244859772027927260242058543137738741102859989242494824818096899360904748317851551934871112755134693820931166830328108910213213967197257452838849724843798398510972715699735338486125300279496352673081596995647083680291414819679466362901475162877784807413982313138602005328355796748112119865592699424814365100666817233425653812051034853683027828296343851196571431886977490311031162421250643272440815130903832830246018527766334898492860357773859245009139499095921738568787025946351303615561904629785103824437953386418244182202318966304216588191421420115304749599275191211042488621253900496624330719301306254581825879062907433840723978190338503791916658721958384341179951219658545994183808273312869241943442806695284915640854752784889299029908245117347716528604463163693777346767645833368336167630772759464165337085912435962116890156345250377704135259765177466624152751627592058770433120942307267387472192119338900456753099350120839933197136420599349691718728380159015786367252086347377900738409209826590606843999917351475231824515327539962539775235447071520250494388610316418393899888856387963440804851334563109195915705230763090356402348664596638185941333358449649786923162586989310844468946047294795159875999533507951664049669418686925333474670281967818717280700901604893714795638481362811985938514854036602293814232910493761656951487285243844170352910578600867806376658682972542596795017000001213189310974744794391900185438522248473657578479320260356149013961120355764603779694377695279692738241134457176444500877450104837314099493066626173958272376237705834129684463328315528909387378546750451107088185598828692050030816048867792434484992929847547188857445127603278520668741820070236890849359395909250429561787826518421695661605371732293095968077362901794792159731411813028719650127679100793774266595585681004698755328485487069317775980644752303492149561815030829810842091181965246077695612611332184221435525757297572571419268177028667791386803764853317385155127648898864557969833512693859659047365379831768680495063181353233519471071312273959053135133277897591287652088278692095495230726627359319964818874528134801973636297876410214759545874657440382536745661298688209835228833913996467253245310485544362781500733616059457928990688315115935030031005607656838538668530749287604815126593269182954829787615142237391214972448109384664862810147791437405108823609700098167309153798946132062449638694369214395521128542099751887296165839677086576923057088535344790823510945910817147644593198545635199003080849905508779830681616173719767576740893699402023586561066537273766345925171134126354387210574765912677122962765296552443642059301951592408026032525005351166211935641251417248446666357256296420517702442106144207478716205517366873523722054812252091004036955228342966094347921113372112172463797280139369545072624141066245717391339041200815725878392915893023493386029612098623940404069010158245781030971769332745874730274264729479656883457534703488260878814413288521147764826446815693726525257864944741392823426821185078168026860732849942306406316657045698298255459192614182997551583690849258310895772912016980288356685324579507344137751716899893572537337523516386246350314790664853171745539097922496704443129948748785210389721599348831022961804392681534317816819625546246467196615424838058930750075273341177189785909670428771545132650768582833978921152779887026363111980203369639931706621865555805312283404187885963763392272965333613552087930756714726749291162462436948147657222610952693222072594437078643779624202668858657714365139604997392466065919674860812793840159591080880381815248627535012995631560818546171346716003861409302055987382691335352503360943164269389380981307435994639843861858770901613688236036826827852132375951511520096286713063878945631446319316585147283910876949662247984393887941284708460145429990107855028892992201599342338077089580038606233948569461409504679236820177769174871176212255891329234600391918446552207380560665605547960984687647355363530400175510043710844402581016502748444869231980435097398752650311057549228200289097233578172513124943629185233137124469306661232107699421870428928598918844536580294243712869806877616797114679148120584050402249854413090852483341828773977803721560976068046221315687506892153680423319562837073414343527288643561398612998310249656419946114512309747830014201213269573007576902715929050723011439195801996081324231892806319232591634628418971891462077625706109101149905875474218064888696071956892451104915235513322607824484746892416137948314288738663875865965570515749632028678532379976759231030660228067785417402501266100645902412451039109403508625535421035690339464023521589417634756133644982157410902364425721005034389427728020530201046298051478629019353027183023214815236621167694896600501179540640849470669690904161397457930061191388826563127093408708729381995206699976838748991844442559075212164226687171997427825604235417409970936350573826510070264165416678791162268283372134672369435366488710277450989148062260150607709309198283167577231913999610407694958210550741039418795400242981014507346971220214869141037117254085818364572175106545977761456187851191972169061479570613072735968485228192261137189879961709881765181400864511602718742209659080551211598425844542526669618533545499843289450945868596258283020010942333266040967423374111349730552158333924440225325677616180457845601605047658705799897841337700894887865536685970315574160951074631353398445363902508862481709887298432063406156713746465939021039790285398617576651259254219318482858947689701374108452437456855806148672839563204563335714407647440751319354163032630608553598955198673279396165967116021852870855425351067195465059848418420286414113156733222567667993087751024160359694019734201511042094671920615631506346541155769396495035436247739986947304686485746387286143616545806844482358014299480928914822464669583070420263097058980932906507779367633324311667998788600343366048070221203514262525536204688804124152024420023789513345046420258714170115511585752364735224540455459806706411801056370594190635018455534840246683329575662128256437818640551105272876449460280502177991463956230749750354254856169749109351625876023065734956347601635194111153224127096928451531431360577286786317918913140795648607207042341844871684944292554199776821027683485234076819179187030849386607794309538224970165248772029183602625084682198000544626425530670362049574476226024694059202539896045378360521714137267406613691716813011656766900548499890301772308676022124615350289964211190178702104248256246305113082374763953712483919675687198448082517639146169359198522664848220377454509969732193604114649987567313256907032148643969187772736138858313932642189067898307924206912460032150272531638416829156281867372316943396366946705668639095711449557096166971160583172702779025872127551085988338749914435860186869672714895270993949788783335440404732640736035138826459193495231776222411549225557074118761606219505016254506289339869333068015648585929685176653757450487916073398014657314792269501681536503393816963495457603926868352576765589517218727382740794247477095291002387321898629019456240625342060578296757245388360607998041055432701959658738718103570602309100349416036151298416309499076863520877065384506714717863629113807398244771048064864077364233498834605820608751669264632220978190242037220285677516888446712671184557663710487107508712529919477321169761899152161551216278803354114930971396103341004361739914959430082327302560767898259735602629065264178865283818268324502178678889799970057972729057594912946920135642878501720949025201854033422536656038116037351674304074908307296794676880126335233783556557646886539862383654026699446418262843020719472697981999747885196828197215062198187164433990017677951429599270702192235139485290604044603750221118799458533017754987647818814664274064842416033931642379828168359576302515727494552814087104116611982273059371494072591652641260640997148902291101460939301548014225522899428938922605109067091514730114481610383845387357125809695284273724808823323301078442924000861299648007221447818281150322564498093889301059772796259783073400917461366429748439949130166242126389560936384603575271266383352754138593602630012579911134176205236565208984191972385194761214182751341306590327706390660716760332403482229741611743078236121017492311299652301321102283645291946834840092358603112464101932558401983572030383640974608375047135756899560853216419067010748868092647167212752359442357892428858251415918691871772424126990532976069950669624240621989635834265135078657165336710392228470751517302770482011511920826123184096023077276754637202384488054514768723744890355736695198782012894050275404521912775087702074992212557733626817949757769364490364183355823789194629168894540048760607351867352527231626916008544115643453181792769773698081174695600775279590539568696980835505907943231750676108235331585372690852495537406363914704800025614311524909893847905170582266231730701947352791976733277443787994454546868626734198266698207667813267593668330223739651498435493213678535196242418433174567882196453936660558507191749295676265248979676320052509676938783021386597259238271619599782586454828157701597714703537327141828258429219178310108093903833538228071125291248867555881069205055065862285234967060419800553680250847147141398208884428441282237946740190970902557016685931386777857955421481995059076451145389371895382639678588177421484857731582570194128530975144892991662903335045482637053418631546312460908001764502858424504814048753435666990011600998379514495062884729933058338005913647509735774648067830357335760472894410731024582842608708763920962758503197883349011745534747065048616589183798495920658524275754944453082088008461286973222818402597137615582286769783187410842173040342965983527448385457369222359643434123702886375034444622638764920970092580005652947136706441361186228536309229284353560234141094384572888698070779514306419751929798737963657862777161869577162340190835616192174916553931098435650950987963296491622266704678420679288754020285483681373548179084335788731357890784358831324071393654718123874379223041536190487228225307773164158619287390416695245619148839580260668230171234250123624070108386960609075827016312766847102502985731673298860871595956333118239376136611523579147315610359097480337222584686910396749946314522607226637252660498249180422180143362754775246203469753537468153257067781462896076729200346406393975087498394472846448000190126473554160488075151079507949047249805695440235570256142975248704077516988779964098366016332148309207837895164274679865042291569272436531700483047697034750977455465614510615649865672667718476216443118156104655085326500119601793146588558307586438881523189426958641194244903813887879714010124652677163579452076839727791885620485924507950559607486208631053384626899414905036221668075501542466742719990900996957984018694478950601174350275611545530383443390382192272257955567821254376199683593591405849470683576201661435221067008207811537581613303852987410112541881337301046954288498472503640143823559176585752100686034637319324219896368472341836221672284228043967023431044436515828794870714303371998916470135976183147650437202041721409147224647983038778673692912384259938794796290351673844954067438995404173640494431043502076681178852408513529057636473816767447633423622915104942072909310341744850461351180426894690711736813601097912835196012406362054947511565717233831105398748197737992269816326907861111573601420884285380821749221522763439274656638328844984686922727512844373436010722870327024184048004307424696628473628002642603062781092325028056514351136232476621994170971295251980877956787550800721520603186669661704945361129265565228035770628496721602135632582331850879495709665453833465616381490600707043031598615227074226641856365267836950604241897912270169666642109947770317028320372956431785071034001358807075508189210117607841238786871470423142396815995641716178878081087490119722494409705882034960347308270668582198537954487989528666895243220977552618010514399051913600382843211921248716479483977384567185555848341462525596025623514574460939133817599300528477952578198401038173988002036494604943539978020777974458346788354067275749172011119189333243782170032390827532048063145080387797548263581756850047059349414221334312903643304740082640399990684817511875852067887374671528047536931480784325600240106614650310696370869794104023944228222161910900164502464858146600323175432846458700390792857823035318569606749237290177537648365923022773329057703160874372909751039357034549601470869925481070346771705332779922539983110872607050461474646710221625368869853340292414768122649655509512676715018886504877769870821048389282684609859251272822310440639182421127307884535725476939868816490595632850145365715347185862980337961002496774855226338385404259492289011184095063537789675183495522983700008327301802036402146436510920126092732682115207393406570712606558449149556967276765163746828090135297966803529651757732509526478959945066797970952214971164661732800799021214845776249068745460496118062445096214579608093617212704911050350487885701099833073502478735747315927509194272086927011386024367331225767753888987508913176739658705252286323736198606266019156617618310330083845600093602418020221755960552554120870322362487187095678707429190585505405264446704385720062916667764404435714454637799178233255824696059652863678863385602281047113419053439834218983617933478055066951964978846251014594828447523340879169194470528486294926877346006685551546809887961842916969752006791057765647955279936134934870760551549422725356167870709397969086910458439083512225099161735426183866726278562678169818557300419048575605815044770431512212576563773193922621976244008680359880437547346263562857569583967726515308399612586685506918376843309558624378444958606907326355835628064025400180012460911279155640043333556091970306994778185938334371770159281748539344154986973398479202279871725896215540738567083146515951324362736365093393595334063021813005397654462185900031624992463405925600325555025731314716761211802847864893568709097422580321861491891383336285520878359096980705792745451034425707426525368073584788079326698821628365241276544711076980914710306657150700478656649594280680601063439009006425470220434791264800368941393461868041364228049649310718882961186439161806045950477109661395250032600025216644603886324805979428748338723164730871556607453020144679495062308779890822314864930707152545532481647364042337501883042309664436852733924047024696210331053370951499329037832341269899771453702445748040623409122259159102220073647642616145122421064976791772795972086351925266471328571436811259775298643711577049007609087755286429810750109279328356345159256724139145375273271013440333389398386215133013903283940653420436335728454996807287871506813680407436148600462265407988729132987021381747896128880317664900682707186223544503894088111574490359697640413538756208368362916081103533080281373975716557291251527939794293626020039038897490259622241879397665137428159493938417447041829388581488191746744262001589063364775407856577824868745425284638181158653506446759711509854956168461357987162488678475236063727828883405417554271219422303866250629825112169400614410354662909660392011382545969068452973563437638638780725062304597895018766795112605031532864758927182981819060071942598204468074082047071546896764938712856413742259020389957784545087237922462691672353500732132441604530125484971646507995504908534907721412819130728700424720263265084933370984149011155571886726391758139869460764206669504747970699672704013509141626642734875039201016741086221964777100265586964706307472250252941742847981296083591160686515104116263520999724754797430199460124733362156499882271961263499948762860331947791033935076077322268010188849476710447895694246679600866735698089631294920723116903017026529343748472874193029538952793065084383166970990555603648026605205351027197077846529794223916358689445284533268837923014464405687636916477832990575779443807360386118175188244443844027685333461075269753496787692449413264598205967375603332810173839427621223756486241431042893269343614191783991775236710525434515387935453855528747955202368586817101803392653116663746256392788582742633169785500157416961733960683679505463799543839843638528633036716452552608074611822142926667018359616181050829397569318185251335359394174040343279980537164879744187366585273568015523127877334408992547387008568218756451780719412360669299150279253970718032442050246450173932786742136674452552444749236162103765626482000724571604460320541148929688786507927190724296339052696307867726144442178839065900684742691311531327384417985646533288322205445200742602576454354081603089047050223715562137656584832816128383883169860407295260840729491371554877002432260721642284550661703697974324409276812112560468128631470318883968945481556081573899061078626451312041627882346948587065629743487024194243472157777970229245416731904047690034988743395002887816754457523705898833127521621302736960240839410285275897411440878618662956156534822964271668428765674525773082194202089585347008470040197476330978126397705268603567592716686438803786875870171674420816927186212155844205887671097728996132712163597753173859930795039346452314850333667610792203774246514447305110635714339612619530783775913287193108047152758258040857346185115124475011176972570974128725621337736757761389601067685607650529314973122259074614829351733404917784871764125722604473785487956212040361212781032158057945948334324844318621475350566161459468718111814044724808464880803193355363617990411383398572235610754794382015391128826853755709030718847911136065360786169670671752965752923966942241640833249169724821050332673011375089428770213698958980865950058256525937799768917813950279768419293600631796392842067656840739029429212156373035574229350571041694022300337582617232493930957722191624194830365082773657551522371444392655511097468427106936653400609570708277109171734085431170951019123231746126269954606967855742383291887054896934125694074186763532951801364300683226222339240578341130635970191687436605023487877588793499335927379500896247297797266688305595265364289918345707622600784311627469378810137006283817522685965895405652072554105649491728562713992044915738801159725799113826368747754728611288567821025145747166167468255385051886065074998969485505440864951863785682452585523173851127379222442586821771138114389679420125025726641253114825709018897061045205159830995871651790277026770705429349021064476327982107124505859195541750461252904662609763467493467002985989779152866187595594956531869675682572341286823212672128042865113586334618321261675429489031890580674528973157611486157774368555949907521594996282497146852820649271952549664107904852448003571811638073528389372275412253528421910904424324837097073662598375342120050468157634320998767828457381758374122673928233561218251389586040010622931592233005267569116871614158008515474325784994113035697080654136075665895091859534002416660781975721514059248716303484728270644217501367969012494128979235135928405239811036720403604400497875326247845833780132492774615381084908709226000663078124903479019622418371127315482846293088451649479274285930440088377461280434490792404986985722138185649399536706195447426765171612508230988752463606432744505389855746885293813264846137324395231559804489600851926233398966591743220419656292920159095377423046536126298237796076725513191586347404605845659020014152393065595698058042800820651534885526704995318637334518790960470566975454877894061556613051363537231700506707739241332313720090719446976291449861753382127465920865370400643889850514684307944490127218642528946241879045541773324714929635744581872583329953389962625115529623112467307427384048847886796393543416358224411698536859968413558899055836771169748292907384595089534283519352908960912171035335144083469615034651029966732920269467521266208131945301237532611232828531042645783018901196442993049855337392827048802441895658689211553941028111306663623252438384808148647610648654574632590972067204080510102734130098626853795199334990847325828970527592152579312344707515165577068876526856907630997128313839607303255191868460397331982320231805592875098275448866512176831718113238644284829765582563105023223770604131463285681369096765588771895902484874955402260030343484113313473272849164229983541794875837319632254255132514914379767633302073601322740396508209118509566597948248273488699162756969980478499847308554237791646633850202492574281616538592446980691965050056895543815891882659194293277690694444127610561746325582748136164057461728185939932892360665459043316843356050000048074476506415550725537453429030975903608534636605744174682706587289830530071678898511059414352625563930688124985576325632652697546422508714932739717003677583381059345726034846732900803427018308668826128176641270418533443445396829051761496656720992598908524896119083900037235225811342284435936338234529105578959340111138209677132920343697882776865264568794461379879121113864912063584026305725926056564739896249591612513241610074729026285315176044175681984778972871725198804457626667235119181590791352310405553014206107927954554802629259800620672258023813977899117583037434401014425816558644326092924509162874608793130083707876220696188923415719174341738100402047116645763701810578346243733657426108647005154956086117326485694980468355556352779538499261619180468467418267658846531899806231472730369877752300227430859191339358017662564914792802643049434182196508942596159354220314147645823366254234718235029841608107879221170909688261894478911813227424014992684115241584670017887506715961433632954247003300984949337695765581383247065409091363468671891660824774528506813754768403630662343366813637679543686454550798009189594963360006222410823358436167474869113540503202895783641899564784452886882320124156173963265499759387886956181015422982292076267883036743960964652703863237860675888525713215458034817478011780346905275638217527287893792159280608944861511993703327277742226972953118992232595769790229535985659789040544969543588550606670129933236046495674988189752658795069606527465678724264656279356802068934751574343231207020869518649065039073689401153174596821020660591899640440206979762999907141083632849762734408379770655926273844799309149697087297386679688572511254768040304215480978777764301937634946833597690307920020207895706192171439261682392604869844258442428095380082912423145837508905439615193655206630733700388489556066174076542742979440713990085106507966602917389667387936733369188589231017536536475491570818175910648595538541822378734351244395201910967548298106105046451012613086186135544597644273815767924577626803262236762247759153377311813349931997709890625474524789786375794535464647196639003294889883752747839650189726459875750995577730487005111220065920077803101879569736448324958008848868795844479408025321932131213776237498997133939188612287372659896245492175072275825686401908450898099561621464392345726401700510115564462746957987381417440712181878816409611307378027663831804184938470750349049023601844084745021380935075487791075401066785783108570163523038573179843271688513218221559702135265795398821613001641766783671229775141040811362486030397518509880730656432125486759099953185470037191916608533239194767743722158387751564489912392348419888144651698258295595771540147100763352852099402452841189112743232971941551054072618163895087819645736970815049143422337514221140980684444065891308508897490910673256748415497724229219527674487604264922722392603147052441406898116205520231607234944277937470006174724817597019487588024356502286430578913992427272755236603281101423361083058156751521935033930078955531438796404045419101468993405762426711508251406717182191868338625108639326037792100889327633818208565526149326317875993386067538995708174788310488803573130651204709328370555198860510364949422215990946002830236042354921203265829817962646423008496376589306085097636531317543172079609706175025444833893006174672083609854806480529731930407296183830098657096024168900602530517971469481830491244085675930204816635536248394381143508609235115065881839083241639483533291637876519654215897792853923126519264469200363381997214312876576033544958476855145946908366492092451800303329332726253885243272439878817974717587081807995693344845657865558637861169992458789819190121442760797901175641079435944527588620451156995969535845855459288472391723739338211683534247716671244899480198169387846921681684067136055748986281448713608846607614287633041808815281177483854917590226899530618943088761201639116954591790729060862298813922589045227172333942168808123108187132687469749099984841039813247784912579381883274201372792184419118816954249748141598275233323820532025479623441104730385071684712709198092403036500450135651962816860580389557984362228059893573279608431374556694710644568492696456149117218323363064177929558173117078594841564025780331380179051524411965573519662596515556115338487577158420454319838697144100660497330425133331896498085303998873306073156062195581686886089490071310669149526392895177233014098282946300436639195728759627233061461645042917333226991499159511693640535834666954965632117363937302085482736674120597701151512113169846556717172723970056217078716062232402014175747430659679532726200872373151089223337971416129954029023621488709205559991477171720828445693490777505234952333960102013732571009138715907006256563108587677022873264461626204179949467051957950771239763258477711460459992895835936860481545728333619011587763233045682919758890869102784268397720816200971033844300775333308355949007527326550874764313984090207149992534549499961139415917703272263111380952491489996888061466074523925946888257643884634061726480476174413158449175505892993889988623360910381287457413234329219186717113341930328914455755978631233347870736207277337734289265439464439589744989673614101595066647367796675908542509595363728229469356083357374589595569708000051488579601841665764285697579804424264008784332245426907683266796119533437469397611406023919206325862536775635015699780998837172709691661440758331550205638236855740986433213456485598726013703121669721326485161308747464905173731494850009231528577294937635596170016364787334590929901447156990342972920238577703071649040708656653672809560231924593948990203503383101460421546303379889075143665010269162160930056899349191225842332440634475680506234419616284034216712846211673071415258265474728565328566249190027496192427476077766383098038078986586243441310165111486834406238864805911568854015882341560802418309773360202280857576967295212309122977753330519355118133598672350250953252996318616797247669984358018874197277791518595638840654146522757939788079797285460213494413710238257976162363361987562707882336047799085139033598259284474074040391992484610690997429103691101506720351501340430580890919095126487319086964396228802594315474235072281469534953444793778609376839484564986292156298547779181603684513949467857028634319661438506683143105093613301459588822379192516113807130281322239073829570766415246773539237917723032743221686363724809083914505904290002522985343866823490458709482398083823841569494606489046756992906925883160734177389233200099730441220943848081252663104565989269256100239777580403659876131428196017007672031252419206234349160585732064952577240497035459875582761820943628086539877863552898925254435888947038975810851150841113772295348577016422087059060121180711408797275690611889630622010455799052128215961886137688814922509050131992531262740005399744646183734202121882095860658376598010475310492883186656577466813460826410085287702573673881444012360812827034222877380551344075640576240453341630786297289477828615941305808448654699013231993581383239779472533113671162174473695990132450737616996257812478283194375131385076302421071473902250137677917841904161715767472369477189291638771624001719274779511478894480958901087614198461533728809452948506675272632852394306768418500865200932789543766136886802450258448703152498624957353550019123385786235540258030557212841824710462247070165699871922540709531853870704276144771729811326459568205334957705514268256168540510336198760354012594885246508969346576351426895834427410725518899668830831010387700728329610923365335255589928782684894836881967554498970099733189349221951506941245264183722046591270287628348816392991424644280315813900879795370274073328294813544495652011429609643851570394728653100103124221096090940115071523660978039623624621405678988937164536850999505334537523659519268902799271598644520331784907962789819330043098586017516902954120725987006711781054269274501466826784936358534024511283151714687476874674342964960664318266092504603782679058540979729839605374588217086390595997427760353329125348817996975330680336951596993555077172262794874706333638255119948364778301700318534272703288698805601272912439473204608242336490133420999847224915157370556281600333737742344034698261993849323628655450899523045322062656134437722424730349791203942063630558995908291494663959216564195616160617120053535170728210616740500980254856403346298407695433604659593000549258496253126207698778626775537004522584507819093316486442724555772937902030229130294077152459227901308898823607501340566137430772534369673741638075852368008868428574255444298134722239697544590269413412221917719493216292369815668973117499893091082287247417723941040173483143485321325579078070769343509689849442365022427351875408176875891625421987385815226331114139834691919271312933212141231904511611947311524726081746427135955970795027044250760238826988999204919290441744581767866297719414576478226252307560256643861025004121217882877285319276788943339156314599468051020845995317630537333188851683188018236433629637045918493136255441835971083370637906455864605998925170837934419640710414779799220058518612738954323655396946811095779679046599188354970526191764003892800488137331806485040950434282784907508388205105620919376184586125523417690141409693625548402596535562955982943982545789916078560298919815443738438121290619644802737257019847045273041352497828450884475958681555645982599791321864019219151355537643310340414020798918153086811102194601161836289961815981147267536507128261147486153931404641424731273683093160594009299704849342399950690877821445188470892242891183837015959759785735870668736491319384482849819193262952876965279824848898276401497137675651945308482993928959381490447634126784762945217642900410438334740086765246718068388842222667210683952853024189180423404822567385310893024552070989693106661557970498247757188585356342911374454167381150342802936155253483012122775086730681799030158000909560115610555323019990784424164202498231770862056025153946774916435703293286946387892404295276544284303833884058943465795700308639218167883929969179659206484109557521971529204540834250599149112124504299890249209323667559440179985569030909532599837844196581987966596742577304580725973779840972212099325645811950294247987821110739375655707981199026886753967192494609519589595846531311846975279526525986203919807524572601291362566586312617954827910285071210091170984351174172683688989759109413472262672705295009557903502319756095011602961251609090619287741917198372154066324658049453550548330719300840109787745169815110398496572715707997994798545491153553505562496790374979262775387611385250028239681631227430380741027242504752531149925033472361950788240027587234851014074691777754990016211578466063582886694072706934736327077915716822495968736815756159245315904742115530551194156173532493148413806580766115395162547162707858585737483770433659471103064689982520292787632217980481807865460526518595130001372629340232566393571952749985098390865332396753748501244823561467185150704621878004046692958469679632147962688203052703595083357691843335773620457055252181948406158823952421175027236444364875549339321543247330581996603397895645869539805158604489353421027097223519075549393848737561693955468253664358427431647774773915377902907568965703562430231658862042551985818755479022703436271335371270185199915697266838450218592376138950835139891206502457428426470836214922013861591856234711004823627669232335259824314911607984801820852094922288173669927812643330880599330926654272227016697742616994878581934062731651417995396330158320123194346278244240862485776155324402157977891904183424617248320228919411138543127887066452324191276634414324577965620020632125352827758980800519596392448390933667356780105509619481165708604399133865045020535299212806024687665595427583686501714010368983830269602808712973266689301735672842061898414499775553097790494182265587237525105892278962391705412333844782561246825971506308237465436999614890449525237348757621751363425757596272091450132304435732190544370589345480985819047305736721883785669244690169418162258382614114099030635307766460311116418576327924238765119412601058713086972268223067023794680900658311449799078206711886223087011217507036750085038001258199213418797556186297429468694128084977356907057020412709609613762711211565884968929882158872695171823687070914647141101661553791602273313115707422981089178277079489251449229421897042491101755952626269453729866252297142618543705174390141926430497058784187448797709821114143202392480693260711350859171511365468341988158637370144016779224978975522316500840770207342800695046726093567004634065314349821480096806099246623556187786807460366225189946425644410169428869260286706632673836669163767483867532795482516318454839289093325954550548991541455592426703245019950176161024403966249470362288026899652859087355324285506198390270089954325324039651645170972485892113415481121869224402272934124563992371392423616991666663750720753405258200224155087178458043496663957479386299969011111307880769110525720404156162873518194485457384716677563042981355656662582712238941957530906662885479177487140383153905553348227986816767341320926091400148022230825293682051666488613021233379172575526004737442536915300309864128264677518861296875110014617245296502117233566056910649897680894645335726542661268958225249649815216958763604482182915913007107139783578295315044224217077954214518698286587676297692264220344567475086194905770739395373602026332996925771869300768689610380658025638981245394601372383529657608412450381068848534426348463487105884630144180854211020878699468795999703626267700087370713042335698885489838887833085947352027325508076319359502826656204945271587092281494562472007954413592376115974774874839628259103457441381110626744068197235854519836176850060024852596324349072483508228532458718328404935794633910226887704194421945196256412775867060018143875726886173756921856520359691869061176878273289116852316516028928089820483377929381094242406949131904044232736930492224249619297196628481126888574047940535111081923412896167355360454908809545144121449650612370331328394327377087263058357527126745384579948816458016491748369038366773664738807706154861764482293984268457394152771583113348702196267169645078934711850066768656431658961510863674806634494080744588811500880178402212240391295083495270439542437948389077159158237219266726685429095412728089479490602971220759600260740668641306318192511252723287623775495202441649696761363222560396286315074436207206473949114290062094663298563572153122033454623230347221380341111428823991534939022836690942757814678162594940386524274502449546827334482893644862006737004767509381694194735391785026858589302222387515945218487163922667348763252919405591619495882921620567875355556263209322352798690894614314729112195859659130883176692362521683531777029443394485591275913946109379737922933814073238175904568710450912460245156855638812423147279836664942425276850912910635099255506053819012325988072731973864590171573795695523906885905221185969298503069333169853996222338442459544457955366982552140350465868904129900168044067380320127297028760405443113047562261867932202767656975348907542133636078545306635973485919312469671954508299209821820649808214489629672699069320054678885191142054518744046802837748357129595116770417578253222702289358021116181741666183157363523370618461319818445649622975358583285498958124821256297623073981734896685853603707251743711529474580070926853025892415612533407229650940249770717491591485033327688532241103900595283460581911328229000478088219019015294034170763042305227264654309887515257448297723506568412628556014712628273307730382898528782849986591077670834710770782231435913820052098528065475715615520899024147707466315582493008941233194482790444761335844534217745381661333901028738835110052105946726059389625504098251002591805859486216821199866655328496436912805158312417310105951552739265061441072381540580884218116778114137198436180813563972524757023855764131246704114595572984196017107098273270890456351848359256573148874083299980603993430008744749765814803118030628399457714242354322569456328099375274886204145220462591002213099685878978044920327248430506850783549365391522391206485517712521523897282572261147785173538338775220970763906782273317403254768626544057957406833596417058114422247217373686782981043618457699609901301669232172081461800295678441459032402067601049475638460062603971656923121035756083783566678779030212010564042750633929746493260690437775566126750476874023806786016378916377289884740286247404769565146102755586798543887925212469537801368633834039131325618278501294591008413662737218458171861532339645360768266803445505863963193684971114524551819266266561703849753723040717253208229807099380972958813126529424204059724460429702412231644210489005396408457461961716116691073205890893747053344261178118601013998699192782955528965589350184214242019171875569989578181741541698114375721768055340932511711370170575688562618382492289982970218556439973596273078828880898953508053388082535645347587782612638871129540423229874056431818972853613195660445413305991277138905288999931529961076422887978385167339937594070903773411929498858104280048887405860441595842025108296103300260429013500284581100116778104111527520297967940272407664349239388182363087113401524920443927917512748702795579476796165031523227465473666193479757390109813674691063671296481304884659874650658157439905905475773142830060730165138486502043973263557105311543356867451295907711523974769788020447484914684172833221397974716215617112984792359106936135104257837932321649870912275952907101057417939727692925981121065901394756675620940678476489515571151916376401767278793325530388840714261717080176141569868223872939443646729615997563155429369656797505301550632987453271937121295023246821240213738474251972814104712750562252707564107535047658938569845095259114652735094106132963851189006006906011537344172100704959568873486392678227590306428363087711924363861487935729223307573792782484399933058308934096688635386368346322680779090877731296912114706966911612846349756546943561091755290259303168390108954298313732872081980268664130934636477408111027792179990251604192247870815013360863561637176702610396424585120137215112239809759568297100552248502039924318577384418171465029420340717835608270007870342042140613572605148300551868244640531218975782627121337856400746622630226312148757112912817371195827524722150613298048163580490414751619133385291519031625725108631317257344505741762095200106220297177640519846770230197042216620111893173935377608451471426047665815990651721775898766512557462106860685783381378562971923791089834806223009904702668030772228710688615324191529551899042721543928239745654619944557411012070010444640169492857853650799617586263538982362547164531035773511800019449672421559527986724375402792088458434750422138839775442411932389170094097135507652694722013093251757524687340049008434543776605616010637733012417306807670857533280990737987233992133917394273649492328276023989196842185411952518103778548708074242785527606157128787793944138760944875298450913510918978192991697606992222027364478583246181956302980238643839596764876900094138634621082049131826432443025901500496731914030684654200776355386946798943067639595672407554164418049916444564758450887373231635665571023047677293067370358989663655658203094758316105834991319348620453389737025130716249964532069404579612008931705148920650373387807559633295434932702285645738610918217123861608293798772709204581131708506737544867423804410960802797803904567949987666185419884039198934453602169222701869822917668504131227802808567209269999880814921300987448498553182893918591265237175625043885073105796930022837895620850473979224033643704434049017875498349255708540307985605065210500199526021206243948106876481705630255878428206580844518455000094025020108790703179318052002783145319127434836512332253957589744076933302723445221655547150753713530285226886512607026084068010629823736869559976072873628792848665739821733464877624175662513670949387578292720541354241313425251359888638149903010867141022998198191945824255751220691757878228733273801580604368034388718998653617866027422714293958534957354634511441274090758077701730821274157959861113477297877694929200955501140880232969622586006870486127514383709908921643108170165959675314367822085005547006572741070930173031513438071135646205199289116783111141077098436801467106488706162569977242664888883070726473363626489485812060371849752194328650258755202489495810666197906542886488776236533550244290708433604668873110564793966924718069235297959862168530801891160671546084115820661677261798181359917835190649072949237252990811589276958276132866469663265085462292320632955858192636829635200816218109413416327720398149738199746282669171075706044656732640989996959945642226507936593103738851611004031067440903834023511897822075674848230063226926024161052610478799003265219069396039179222893566289787912941579990695618402004880515299539301760604583615641303981985819815253960786662713000494944861864571660695451940773358721914148919024514888505117103197470176231212672163322172603662831171609097800654204727122913482270184044710363366294260227902367855820938170985272862288035582487532963594532841825870336065851877112980885022279144993691229124615021373557290800591213546492991561619454854983193680398547734491325055010777721413586711228622355090058349977367490148163196783145714447651440142856800284125621920578674729339743921715575041120065590834731524099284804499747127587336336356501319696754918225015487354080218546695267063399218531804303474041079277918786785857414459479573658662873121950173059372637976548200762348180784436360887312472565972880857760172092816383544612545924615882032023097970744301841748346509127974014900787708895687139221343118547996709319275130857904724141474001465152282369270510043934474171913883620172302171470734193572427337308278582154994979058967291508843933536777839850263606800689155150164450353757907550292850855836949725691987943581274272824803422796313405772140887529327991705740987985274476467553830022442972589256155718436682963221426540597991644039630009115116268267612691406251434549768576708942378365371468521517882959403274670629684468981890189593284375477221459813969925837205580848429846060520653404453291291203492953135923460979247063600198571234724177230632819970228618569908000563104327792118081179596269747882703002416524394090651276474039706655629208748209874643345514020096720787621640548913126396851521111828822065454159400525145265188942921635670049266053894700776379899329824917754613282356776562670907235493121498760625250274075670330952069594154270290309984929696268530843472657668431327914509334559154904333296091117090436908819779663637615834848673951149376701298019402975664762573689936615714538734432475021166291874867637471603011212229654975748979051739123186040085761280858190321548916418594613312657880205826137555817023950170737850991291279235984591662327464508154541957050489802349917456742049162118224763715419574257848949108527323679404488423363675297482769375617726600756752299361860181686730461101936902616004389536700933976316022904358678013664456150158772501561645670506141743635942666530961166350274131890694427666926276722251401484692797063347484204446774174600561804245074709541798301347996626372949727736220126303918854497489959116162962161116987339848239643848324561271446607661585449361619427957377523300739426003443990584894899971856340519532524209466729440385323783812922127913497978751823816749892647604356945173010072119589933844121998610498589254264855573770114163669392187445044205579617798048112178539921699355564654176238313178885637097082675569120906956289282946336263736488653991564235284305523557596123045101292173110379715015646319272737853443318319330593748590422313368227166294941321800377560467590238430077161793313321151484262631244807136698315156156048236623688152515141853245033876974839668991885854545841906446519857790190059058005906124223800453567034822885164735027764835234615379059094034224752842010483921665213226456900621787870195625227870279523146088293115472447318890076242430011046690804185029139433795430223584084740125975707555935726266005988577541384222188454200485936676483613608018612432054159578436079952400549145251565964139664873691575080801241570775213210712668422876220030257854230733583678821796012479728968640628887979687205445466412577219162924207053278640494909715611094207299554246411666594908570118668656657125277085684015860540167047271420639243552858501759553564923784846739513925792057559179624934966163643539192550741668748922939750282911474659909367946213287627754565311510285966902899468349227999285796982581938843524496905688096375114101436944190522324020052236733853389336524197262966793515254214849033186863004239120045815253531874236738995792494063922196424200006977159877192477955712463657069124024063135273830566068498268050798486620848398552755580490971994140308329734846775853791091685402196063763857911720136814383675107624098981060018608178806565851243376573714196586831953511962387949367443449087230134013220980002398338703431859081115013005081380854386073273156038044278128444960030264218251607093654784667271413460019241411478447931401875419304285002896562737761228574924607269656346686538510018552282643832292191442119086247648144964171937315866035827586165680664317077894885316496096172634191791224630072806214114477495235980524644467009698662224829202547058164410152157676314875014375943444737080174581650422519506038581356355008957980206405442230515989268738060863504169731262585324070029131308244883132209859863463156027362509543204945286155257625993927950999259109289680424361512758294003222980461935626335552853407669952115112918252898651932698270978260971006315607858511545679912574124382001772164995564094125861792163439251471713734478860604239761354283543812037376272370398317761249068899176266986606473923384486656267732124322947698981330325037007541050965478169758700399965263074017926031343791878406240197582343992114450989706737796967361051091320870501140951897003677965963030780732498095299385240217918662367038661772602959109902975436983930513740037129929740159392128351628316842718275167537971591041932777336130384177682121234715595748844845172689376127273531064463949979933887446257654581719677355051508107656762110581835611577118171785514229548607149929899857308520334812346874419219136838788096030283853009685555628214756423390808090795539928246392941435402882226278527430578418387522716237425175330678126431076501299921928358940818385045696842514413085689009818165219028610872807054591524505742023146145584902342523143589676556249090714098077613819274145343111738265610508518898916186956442505370779551083998758069231866823602530074198590497102665879335619949773421890951279056553352609877107434609045855055319777901376162193190830036954481401890552486705921616854501221479258189097230361726286788081896746856646682256563015612658132096492304606631246686617190792382441455582038428572762579189400111156071033265265245188024196736668266224267704757223561771773115555382230670476592713229118191715561745649490593784967974253339869607219532209816917598971128607435111003353046169006285405466637384938566782277730161606490164408772904718846280473208025949889563646153909373986949871718915136595030033359827223731024976528249983869307629647929972718635483168085595495330717274479154460116827472189732067081009178291552488393497785186193821986508355493040909684623801324349380869208655889125275759372281021288296900294205304260782133635410653576380157555485343156379391583227182719232535467534869192867649161150698379022683924374870155223941111969121233595661305796925668554876410163657371732397339226600407356111218460755183679475932973926098885235630640352262496801015186626191605443793708341588270062527063496925014114421154526657752328733476671915714390401732390635099930516350747413165885784002634971313376003208024172942612798925564579721541129317392752547667092616071474891184768648971932453187505011979836580699637495173928315958739612101983638918337698018192660074519804291237992792621927181627035117869542350758408546454742604188695843426000054130772500558355623764373239092464039987007136629982586129952364891744886854259880763421315288964995598140499598966419392577481666380140172900080659593093164076142710855626321195850746399959693962309459027010714301239310439336888904243496605997406074161622538626148132030025743403819533023572866439774958582924148917494893716012910723338477187531721730319821639219965357205983953995028775987005517023320540727371354525235396493107668058315421770020453023609591191711779102926805447534151341941707961896472571887808564104033234626758183715585573218775018397866807045251532287129922404671174345587853384552026366128156032699235333811761967440784780412043318315456025868680900870206478210020876915028280050670888546603068619569719477187675996601274542477798646389637289077080852592444678991745037520309968915822593130159775047261460584329587479567679144479588832813611485132925098279845583284070256678913735922714404070782291104293858530266861916044259555068599315682846221763653503404367830643632855827678447143903527242579716569701995796515961454410895895079745451992759869388529047407835878604154836174048571608383664054164968530812828616909301816977223651994424240066986887919286438467466442368206336023395708860277852272067679304384736260516715964700717970622334938229188697993168715835644072751585481449875942863653117890499439260412640935568201129548760274055722590134740920422033947569709681669122012061655096818411449811588731043871233979891762482672988074993150297246360912632608282618488876774938146474918766885500061343503108637747545150491686420876373450537286620465043778501694330390696622381591477645236166157724758637031926976695360752061513472724854606192276247075892097594956832467620903231321397848910257795510800164121617795799380289568048898021035703978945292096871104645301147902422460967581460110294906664083407122007775132300833773403596629716741983747445728349845005053264501069958917188531922021590476781636196665120943444406438223549346362146844941820712383001471676751457551133534632160415289450705022759017125313176828549305259252761936965892958293766576761495654685137814182375346798889689914614207484999536640847777359718635515672881443501747070052413179784247911483576931640756253756913131818684106993271361512805737433499471011887826597178440232053695239547517383841011711008377629257474656677793940467125181245414341004499623655749792678991632478384533926962929296572660585758675503033214618122727164275424869644133858158316998865428909896042510670730284622850077203653707493799956456515647869086971992840401779627739316769789128996801776714500543486574461321985306953207808580519064437742609228987607801501137985059633108421359782320331682613573821602461983150385154905262184571499541192086537473494216556741556385988083118263874165268069132327185853610213796680005821090135772559034963698328866366422472270107045650543972328161447177504813561627157340937870160511763838401617355298289789130834781111760182314286295556995522726590857187280770853390073762040003088053748213405882966870831378030018470414184307041493118984471080292657893701891284567450909436199896381291191149993514850536060804270851176166122149686567523298842736704797225767842868697334100932709984147722500884451324872804030392821866910810269334997176542418834469061049436840337792219070427513261706754498311997737773914605490595922824443186015354811578807680873454940932432833752091905171621422684867493102283756079836027279955771878114323544738432864585598368295175371706485295461803528313277224118066368675541404040842635777840448331338344503863163891028453845932187049029810881633040529249563085621604350307240826347477497116195504514656142746843337298554274517872161483760414634762090407083528007442716045410959920858154332739602270606846693427340279723657787404679690424885316415151789752146859072992472007464718613816869273366172489769334371868098024684498596042643661572885173387506650769440014215680535573803108065997373857057688931453105565909662106775206500217515797235662842312632747734029786354940969765627677269538722478795133320635457532215588144773169498195273604021400210683947032068638624392680983008640911805848352924172912383781584565207276400777270128777007339964085552268026387268437543426637058674725842916046527988193051446821800373660285369439303135351159948574597854701989961198806549582350467519409234347414690773462451716102525613888790844302044791598199049428747617833883331979508695235741908295919475658659953616549900388665308419748517939734961600293890301727833162055225085811927077140264429230322848690011876701862486566465717805383661455144432217487440464129204778392952678214962631001080043806416562798435852666064021214107087505028034648652050418218213912257818230840693936695219035866268812249880286618034888761741521980113832914105588922183479210156426271044886949209211624924408461368013385961754949267745451871851156577266573885194116177428342602809141056376860582847832253770602808133085939446178489534943441624610555876544768533924208005810008879411650812902591181425677080251796517522348175121568303370825889702505969292816990651466148582437500173327646816352596823698250386723397666849341833367966110035828234306135092016199915255684189605029909153571184598940132424440255414479936994012110112718935768032419748245066578205395006322107157667320409381214524439926495559109037086410642399814639250826101887195313947181034071160129052402980997620733509395548927124757737312879215395208936976719097682528304920000255605504982127858611971282080629567689148242565777320693953782746372081124559099945199519397996714466119109132981664333956527958164871742572977072745170153029973662693598713888379547685231856738170591677066856933598048956755846247548402181169672390464242677970166096359918759100784147511289671513041210702169309942528919123419884412080533306920285787870004401445114463794436770033309632515656644796319157319875693400163544481037806693984077538997766517770014790718091918449581298335411430286780325885887140274676472952185976260934147191000498124611532593053654351110416567369963825588833369106762318808218964439057921295310755097953752098965233728681409072421243951166807890935011514830663189580160217508233836180438064221817160474235977294887564729666913297427373972748200327430471370072618576323392897521404404627511997752180642587671345839491430451140371945147773009183143125760413321639551393939336896638564354950537567228385464728544040595754967028887401073972324486135003316957980953524354183457238808379486923256813532164705809628642803900239898583549162234801610775019553681785111571471094646336504480598720343425182385800031037794838724588947400274792828868659302097130764544335335813563678298585308651767007316313922325076665661224759409816406475274667635248189231249841113695415916310180199532514717593127191318678472043682303892997230613694414811613160659662380059272818118809968339426887468384507874453686153577000951100449108069930319506572140893566077174139629322492694879245613242064437024842106799974477994692607863273449134134741390001760003845613111248618131994413831284248373372386604222603364806278848528582016632434642758595541439676146811009593891574522971934163943520367061148099939150974595164195881017579195132670980640728787097575378100233909152724753466555129420364885012523059978118586903806286155625275567898334186625119028492669452967193568033910402345917869250767108876415466470731084149900306601979613991405416837931787428208927778468410379003719445384842206621186092648090937970937731662765963417055079281438400596933286801483470100217693575767742281866152057934415296521910857315362393292050097378661293891121956778021722544744771213356127578905346371671737346766131199816937790013199296143475651404015217903715720120937212067998504626115131551849783652618429892454599456810716396277620687695281477877620135088599959701677202420023940767669050550710532693827293062315506762414018028028731191409959016124470646037211489754352109962988724825631907225294068567364090838043277356204700870292291406216472299007067179307298799722404374731376988984462447428960483957791348469891512878411885989135171714028088249399163872308105055863965775941253770587931799907134087237000967993078235552688244552169429941606787797453073474618789591104240185579523656273224152257853633245839740303390005570198409542599980510615784262443536129063836806814306978061073477404228992222156627281453336657835970117431470615173331878533764235193996262154176317890798046970319739380575725837220449004322948022563118876753182188240088067834497422403274920711403020979629434473378828572801326033565170121428637801905750440345278971523908951927939422926947713698242035586454266594175825897296474029003619716355459687390156288801787114819543799603884543060183712104261445611212759395074558536120295853705350602295867275132508746637050456994790024518315926419351070777164697271397116905625038198986841153278869212617658165002993501079304798331218737472233193739694819057700301535669448513677700515305226256494811596586116259956298579028425804089950658752499168420614288869267115062345001594364276843447333312465962363007307770762318431550085234435895445774818764231093858413915632721890624243769841159599040063275912910017034556520642951114313098493429514818861740075638790360724442414087821574326029665580600633833703911441654545530047423641548280466459568317879399997091521997822149266347312901714636369182196284648904392238920868913423666541677331298799119664793567336445135024609339853531299435212841045132851825387249059541681387317104513628951393700945834733308067443804987942774486856766706027866740613128566764697357797367212647615199766745944474265566720454862382433327013171839979053834797550557051152471490569086593028025849754121671919356430128604300049395219927051712205175005588976895091448474575934315717680242894946919470367487607712252014247722190976989768858436483450331436627341290980465661073179284941473683960151682051661855441180033076850121288701772505999033486903206609166426596217477220483606614545114152544739167111660911738185818564254946312210082607113648061973559910211004410379370458782750390813822428542648122473150799214849942256666609869645302749263489494287749287177701143514824648313842156909290813366340501652434420391000163000963377133072882479683586562531991222481479764553073358303701423502956681307834536067226707248978441351185539991626507173488232812966992385437451055675297300545496535582651573826484448927258167952839763391918875037507754271401217206975545527466179543726937809503110969712213139403737551176834994798209229230652217049718982666435897710563516305804534141306774384930453851681482153436811436958535709810116240926923872507420824486053355227248853084859891307367026799254873196177242450121082728261632453974451422506219693726286152361695612270853855107036877397431193966531185909691701439408458740211739879708146337055948070843864736707594130989486599064791438876682074036661943678863592170538705385814546564548846119745563004288148407153987342545609695479459104351590664380678071829039226860937840579157119112474882719605483118219793590775863358624599949793857148604111905782571150028597395546219379120150286178550701642563243295862141901017528860676637026965957840240561529783699600403201780923955973199866722071355905704988805435783766181170137649156822461986675492022368057849906756122778993917211912509242906148680325526941097215468759636041930533234706714969286615688083163347506315718183571307564593420755691859865572757942187875873277601429713672792755930585860439731044903771264454636156601379629039943371316022539713915731255344473843547245017200794771361856869134430498578805790724354268349354416119331658309770855965917335191922823667657940994296901660917458163236263879786080248780856802486867047688185390193848289008073587211408911365040081174629597624035032763136916651049804883479758481695212817580570788869354878809125323240437857239758338767311176025728935070597135827390281296109158264344137280747749366249090108622668374094482066174844571043303847777724568499495774685276274248221226158277083005764721835192658128200713406971865064485493236030622847635502365037320329397440288823858765511721849421543040903697939530328357266223261222307255735753803533851757485168769268074203966860236902288576240954096896276863490935555751980711338242222668591866462791730941573100302531133221653689530475087645687198564631791925278676253173730818988692142567578018697888741569415481762702988233892266266758883477115622078473887065989117836343787880106075540084071837758652522545709991908400994662943559068752700687934479567872176491516154911310940926703987015563529697732516479545029179366755621062407955189576846042810304815284397108730823865200381374346528336461766770776430097065832773434258834233098553383505594410468253688791958596591714969843746827499435907261331075399011051960611740023607089223085891634753478206707734421989592759885426882673199481553723545048351137516962980331130349059266403599796604829785254412857888713348202870455461230489792640864924734654645784017076745572022476974841004019474002258424317249876710266383445813424900075744836508265116411498688337570230039003499720464837036757727432519884539286267480211651760605096863176795389123999922982673522520237013336863595459306106544091418403065192175627217171719208277322697602364381885982443074774767073449631450745261705791607878779504828303261036998570097448103289914406629102320333579329458078902767612510064044696161324245451026616002216804092438487080424346037998238518949094019785800555717202301821175514260636745656482295061677325940875224481095079353379090166316829776311570609659189607584363131125982563126028227923780858076968934088495436981278345699240403334278196237923561232199869421607303171334906766933164225554578623104153112582874479300995974909867896003747180505460865863409326977719607482166568103324540010917872073895800109908350510315471826078034388240861248509039799806098676677967712702239283904556306805587408785105991365327383157225418365406074661916722265000772227767300094544719117620930161317919307292806195383221844160679346513388326878739825430403170664972319774844001476463450982236342357641014975711888043809180974628791372457625316734890003729281804396520711413401588474168612583267223413652627261952586646533749730015400499042621028343176258326679795190656754459899147674962700972072276577917948407825013222215445320831743873694040306900717452959500529654718221589008471596132227352853508697796502810251908108269124855480924823066215821678726086861042896077930134224270846861639171925959741256778281577833478448603303371486410330099664356401980599046911027024963941045878745737496531487394036258317911247338879323212346350250580990629766477448110776360729614303090266616062757826728018152586873420278516612888582548328936873697187570904994467204999484608216887998652404402957033894246308341841981024144047131565138926170461297849717344848435810704389955318450108149796203482402593129359311312553377950047494884469578073723816701929520370445159960736440802171810537536286646368821616290249501377475364123824568364346759395310049068032749214638941790659646175966909209446032969432901706074545413413394743333058996339898352653374398821119131943536909476713725732804747703652204566457692135460041033803596468777819114873722841360682712496481738250959552499082670357723898165433916450468647087886465053851561537273499253670537109868796001941757180871453579163054044704731448875318499599241833850136203487613022844521651883686267894441803582758613399864445899646099666002342329256391080361019641079653877037940222569763376181555803005504278238910165805228123163813965906017787287801158345272716905237001710786135304813480497843481030663432765883640966534305262012166965833706081016491098540252148661018312276991048403783952708153695209082596248380631280324113158367036409392700442473561867999524182393562968258538516616594697996275965467793576658807264769535092020219602146747643021341925253710263875408631513409001557235853451992136507190370893764317763320795502285551447100420152162478470843394428491654509346142308430430990307971227756993698098991276192965358083624321400731042388207778788542006285296452037015997712013316712847019123617352068675335260858549991848069073340641344040027054134345833426066145778797119589358290637843396386426906718457069769616472468649188653242061862930749514818443736360793292339265730740154792173900364706791429123752716683989398335473399133197458126947183259173321860279867941248147553981454328116349905844648623830299785787910132978246674963905986928417745764871877201923857974683130743533938590859686185515746789956680707779217567710756106240955200415085962755168027025628732366763386205822057606064533207081643999401992040603895284009170647452196556949686222117813626833326859858589127440681740619789379025690318698109529303511752897519900341052441578509726323457233386682068463108260453949988116535084270484335867337380906948918603712055860460429148725422067590340921328783573094922739651699488519098935668216679254446876283545029704179824604700761138812996160591508742518550231219447708620195846938178639368877382389717019841843732299292907106703898824684632303097955621853024303832326534590942790763602961905312300974319858034528616661869834100343876201407781327425026398431929645382517471405225038505861972294713925775742348007207334724578852932256529614046898174198525885387646658288034268994115907611983995507456577531082398327196409583668872418116335137587979337979700489704169610324515247662517128421225210800536740845090315408974192349697905728692642237719469023834049440121413297138500561844315535473040422222612253800206234937750426596950869033776394839055198493764726402199378469622331345552645213638748552595274541578596800395742463568232437185875640461857710974955864455980287791354653991251049951423934915704160678689148389859033006280043259624907290943035357628972564785772746224221817259429263191101596667577553829844990778593660680071549914453637646433705549006810287405342117654003286103299374454210670474219425034005161330600440839456295429708260906822384243792408690364255319941707400242969844338311452612405400544596857845728388599534850119384556853406542575707623698416733764574816596827360430641541291086217574140054857228351807885790301021664407429232529656838451307458855171821581631193401429093642770600918705391314503456754189511366785116684010375987749017053003849586773951546719644312020300483326198831730265173197956693444906951156154518046381149796417206158886522737410004572639238292671597200780800940219588579988742382226185620896360626808627022194435975498035171559183174265176601341099417235290148685613943437426897883502890724269441403974162185717503469238198353800666607760625028268043982866001723402531267646716246366046944590414478080233217244537984149364428741808477583743002899936470493687508443835417748959277274502657438577685607829569125030936522945640883659435300290845614020898054028538608283647207035395613376207590710042081732075070747385449924664127730315984131680789723304495571907221316593323479709499939280062164753331087288839532485928737013625011646735897524484227431153895568230216766846634120171364919663653585774176965597773517042482273482366344395421170286309528772508587610234625962189687378980232075912700851568712135143663728902531684276095440889001987501463009006612862918676865315161253538980970046031267704292608662912732975466873634379635018710662086018595201987367171250606710469092477178346103224194770862237538603059795007155568772187887648141750779004781944104839342726477072294933461541760803988134909379389586173472957749196249418893774807370083403113503492107892381829442883135144731420988433841161773936193655784138308651528377580297308449544669117181745230921071761768669838407848978403416598310811411687236698209724947246677967918978991027839244704476964699455981993046855295493846903815609456447699385448449786260661066886868205868613144974797306557095635110204635334434330449337856102823802939775642313870740778237737929234760319715006340297710792946517291803803074045341978355425891208214981414765455984495879735141807435315868874194000270322133208404382264982285454269205172199338320743159345954545499786124647156951741336513516623984634002142510462766298676324715098513772161705451454621052526598538282853849956985656778783962096447792367440862608206639398814061003788455061512020794493653608060253800682924534666278137142160084093022535883466078436212640562281522848529979811462781436469413982311817898951480716642777713094113691823362244887004584326179833929087761321876430326730696072911108576895078751908532973620432446853400006550578642921420079129062936350863510275531928965142940563212166478504466078217463561269652902653870586046829108257762217717821022316785744547786190267499274568089774579347035610410714830933025833504879271037047578374344348524478284218499322923689434931511762394755432638469564994934015217009590677939016726465451764208535933490508967106894934508492768543028036362442067176002540719799866627515658352569278782135984476964589902301503401479326638129454008098052958574902536142397844924638901559923060449429967075590893332901846720355260224940076345461297357159886102329656536981516843085721343642202911530857324909474614117942891947887206499268701275543481859075412823528140464456364603710494721262715806694259194993859106792084567946416689238865932538456573832402514790876159036172041442286292671637749538828740521770484192254211990730888454831857615455804436665002149992743392546220778163238212594122576215377169381590672229189146579790710980677056596379139598391099558002275721213795944715699996938278934834745607103062216190186274588379338967426927393453291655874464197812195609467286987448309888424556819668769543340261868129685180722482378672164528641784232292690572343746562584313427603288932049668653723571976934233068830555595839781400990253449139113366359012208085726667831672443623963035697064375523050419771854795730511857172176790081801976029410928046883580821066398836534454027010369004765388258023054222842196484454660237047242671081439196902783587313254514810404318738558583914798837793525144241273258575499553038688620934958857635378862022368711246266047936913605867033319581143596292541004321430179056084600749274033159186521154456998200372313795177228703372326843104529297070964645414717355241326523627640073084686507040185943100378100997441515872078560577510955612931750685815531940069132058294585775855706177778766152344674602958670475950118012144290622235499011134208220431023794337953554445186480881527043757214920412851835748458425690969093431614742966133922617157472693369196623655554128532676355622068860327567585931332942607083332837471064692930407637404074703538368016662137509194642191456704524406793734341618844968329878233387962364925227661980075158873943807999385413881444771349541242885221279299353306967693041033088572146814737315903653790587349200525407455490767624969391289286527519269744805874587624112891223563196164961760331328885369595433790881305932502160785819415673693533502526658480598923829798763896580294257267059190655176973843633668439611825502388092607411337470011607178291308875616611793981992747352076043802167866822031279402507737816800488075851523349197821468848307544361702545714440692829661668751028784962519228112548868926204921543976717264974441736764580320059740783761567966898641966917835175833981640441138429077209807058127541612420505434994623490624467048041065617354895908276320013117227333449112173853051511885293270421016579353704692940373894894617610438491946713662782704257353912613745891344102093239474199780019401465972466116963820943767061322082479538894931565556948325056706352144364386945708585115099601326497550722411469113818906508429759905568188516770039575752785917649199265346924151204325697973990846377497069224499256852757001483516839253659984601846622385239691314679627801881235643305573103906490542258888295051886979232218286917804818297964191635689720593953836296584640258723041674444548422641417102834999034488791395953805037747636268506936364472737102148068404871243269651409975411696457839351581390082073650136863893216087451150624269381413101501538449321113872804276518038551286595135931325469912069484941421079516286060001780222551804605912591605786925476679507574875556047247232578424534075247567433576413781883124582587309042688413436653612417341894980773792796685821167646218849445639980187754307602125761031763220869865119378756823483403587865418740222161478402249551740661981950984062305717237428200734426599927773089329943835602470725746076267050483412885598761786433197444029188585029834066431535171412482835275236621306494248798693712347856785727908338394966030267950582499114428453506576368183682985433874235913098586517654088380778127750477342558764330961254217623811573075376875036637521717410670895927968463915848191639384045392906545411314170858384389492480720907033849581685193241435481331244920087610751754959994281164345254363616555539754058757333708186085034330519369745500928338147353785835699981243899705208580935011722680307502439307249701751322228010305892437011946724254800110809590269993613248825876574655570626444769513380620471062032411175248266685803467939096543972215604667815898195190373210206351620693624401173765224186261245437864143175083462638511673132620303146181576931661998004971678494968859685924975993139944293786877245064728351750276522675233870486669885884793529922493341546936202282805476961538796016017225346298828014054262521525890902634185307562339174317204356406699092359626497225281132309179287653891626564882701602801929396592451608492212514382223700923018380180373560044425821410021292458312362198448131468439250116539897430642006609545645194504026131547021306251776684664625293908016426034052734319579513070468216021206292507049386161626935480298195636437158356203014898130608817408120805812074556649716027541491020474938673035429763334615838923243211542781451466138414926283320206768341354009765640771935366544457132290565247375102520856510702309881940062076622355223985152716877516792537053364109281983274350514328429951195142535274324789894665555160948326086696877479508658592693308912979684276494559157144248792308695557182774811277397442548350395575766709996961824627942258611608130241100503221375166281022213464890234107599633822332883700097131807147263592158879325310862308091942067970816907497197202568641956263375393462992760793252555123901687969817511409342362694829164801071377046741833394699541394146284389454396293133826581034146195468124622954185336961902605898177290690260711174473764432338633782748586720798615702434503567929462367254653379477517948312017386726595189795255938731971918040744773922045357188777941459440467379837140717473840003320688017468739664829634995732466448056758514566877002392043904209141419418250188863814819873516603047349378892624247090363186591627082632714698521314260224718156794537187216379842581344884971736274772315672240767882118128743726306447372852002734046983777626231643833275389590036097938627474536766445130960158303312080791815239845022743468910003994039075883352116122416768583543663626555296606764033304468765964138028160960750928103746140783407992472346449177044480386900596088762285258712019141584387496628569913943059214710741204215286821001667633343164759219723810312420174925277100038829267369235051130013819575029950999799032194245304284652126423444519348906561166833552485828955971046588869337543406760548986233086503465908935321444156285737428157702709055154070328993445261132545080708690142510344433480052950302361005326860435311945991760139042151277187110166766685133131404601325456300897567311446114178804215802678471196082933826595852265938534646581165919354019360311515108398634094778059613740099131641830184402659898184437007604246579523666702005467153934992515875881311116879721561555023193629431780525192805959766880279164725584723557442624896181595954865340850917783274061897455589870981613813368705331130727028244736127235188617710380870980617617220175075080046182827072688034381950217842626893957392684359984354295426426468576244435479175380408062729254546918960263521853875469909203438758430728661103269193689482321708014800449219126515913479817995978551623099931990812968202450356836618138831686359264606234929649526571915305855994162087672647779330485928348143258992734288037256948326583571726139370473949649939893745747624452827207953562036756163848468396366955941356142242480713104435885040946095239003305191397344097302650101291391500434521543488390443343855922315216045456811907673182533942818590044174245474509749075576976904647621578572841762587959010496842287573680967396159194519425538687911277403455521450674640167775663390933190298234563305838350032528679102265173244955166177047602713257676421392510904830233633818597123356967204174889079040889138999122246356343839594187069013978586289971858574653221566076938523388579118545355716526034742030015432080210870024320678051075197438236351578386979267715238399496846358584678292433916053205383506732413123605204447059866071575700128160262896473493667335476956992008445246607071347539180709816062930406368774879347252823622224930975530455826169748734858196748736937132358869794979173822183137182152957746095762371241636525395881448164282697121723750359801481201714223232657246743877163875682097064025135513026924570263983188319782062280972243664747916010648731174974117439682012846314939014652201129173077835449689018217027332620704550686316488803242051440405479653056333306762111762097594194334461133962170949919752691915594649158204171924351000996933931853746300485827573620679178006364192010682441656588788219533375116036612343361639628099305469953238333650586615241076241918282710892512409822632355885211581504002885577019928269579409642162948418052708385542300974218861284112249141994709111913018059044870636249477143002882920856999879904601068788697290416689835305724576049113573351293016093678500278738346138187435960243426017722061030742692987368837254352099261073495548963874249914573487799661090300307512064742305914985978682742055602165247343375065898126873529784117787461106533585964385850447375068690410172242179029889848748930286403896735175017965596086365008171351425648619935342604973620814402056056805519904630788935503961429838709123932889217594963238140205395462136823289620482155007161138561439568032400771488203485450147910377325539224974799182660247642787936298437733785925446171898888609663199509168879124137623670455195456973998908561433783295202023114186038212894938717703935168932016098649399562740063262917383497005551623781960279145156299622407701986713933698802591462634436412346661160051954108163429237548640782595139941354933142359803501399683153894078380479010455377316096866884381091847844761527080633977181374900357491820403797594945317383524695416482108710859714698912174260412869955985303869400276690927610223801633180891361663728281222665710326359631021605845244903718042888550399661908340333125104588990624330713434424572037425726197662759598550719925589437092661907296938519241470469644301501446135027498086953277203098813291407481467506034929459263586664361712822466332376374777219533585849814053290461582497025096700055583615877004403199342043063156906764536680901000100471535436628366152243285595344212729947343543879803938369753722007422504596476702677210010990992417621562189037635963015934470513663781934796704946029769730001878829501201843925738193438573358635920335650745431759346728949659493002405157232040496405902602584886232744250645223142439972003054500631261535124227457635979153455608663196046605923450155046270772471997656232469273052546567397463942901078998460490285295369085132997543406833690013995222968256587019270928553388718369211352258566605022140289181334085454737290694828178029922404725041246935134670929843312942794230508910224724615097145769240829004128478536542767144578913408060986182945830715821996148450741224085495402525836837550246150976191190609813969478999181416560407407372480283786369840490056828869667995470010354025005816055794264558442288692055776200774635800983966147846345409392325196995539344080358385910848004810414255635858442411971494776677833188603052742582209843931822088510271693129949526684614444798492585745358851406336096147157546616362984415451344878142235891570918963617535963443279332194482146707664620920812902883223632709066816282783355202157571221998862330898601014316404168487699312258369564314307283235906837585015397552472790175090707808988078082422766780859066486287375846360995388434636733910575795796153050556009947705002723423654860661935215235904468244039291583361418646909513440121925980789723501201382440929439433164179141978291690323462781794066880638668702110153832504918794121446714754277053529360757572977704271217100330062708760755957757151666269222670280576303578256768102542841886265245220807880258574786630231207312249575376552715526038493106450374387679874669472799562434287345570789713891245786793873196132195824223739574297497175658270228305750843856726654585673943722753799857364470596416085979444331224295552430144820976597860405633460211357705212019613134450692305065447939433723700644565767094035088453415980334034390820840963458092485415537814969413671756864122894345638706300573227875643791398998655813915898173117299532624224913596561413852965098467732822440343934931318839440819675057064842868189254820395245842882993389206254244751664453386791228442244267635563116136794628485647546349865385140004262506768383165390025987209695439399525729623158732051584735196351329387939335547102036864092341416101442923136041121624636208997229626083829758380604028504625745908039188323535189351488059934164212859574422502345512585924885289015262259752912085652651323240829105139032487357531722408047486532380312337408057378914466052436665177475453451183418254756153193358251286415244378575859259870879198195376419673277437938400476722681556263579167506806686092630512174073390074339145769186317382584784031680871583480724223845778568529768269446549937846175715665429463138173533902045125091351772424230421697641360690602857314386243931255672017050728218859723302267314043599709147418141107606551401070860841411421823000141844417950440134016692716688267667988624875153253457810230157922215698182859477825007944394576823957439560975521615746731699003224755129039225724228776805409222557781773582351434399131497369262851328131240891201552846932914016825025076483018914607393213211176514642823264278836770982020788223094941829343085911515572404254795758501107970699542962450719856396560519836924881967905874170583464906395363846399006440010774908729395632538175405908611242451031147322839641231082323480099597473508683291234100010571501252065969510314771536808370179562534623813670751092662626326036422609412987299880719774236354780254820255745099513133683969116721421520027083227757398531798024881021998633809828826166990560553068795452797866424265467513034811446072501498932367633987652215162593372337160567930737478656778597277300172570058977824341415169943072722300089735087733094658299422769109654193889912078484525278587947177596855035097497663192975319783390929170162811719010068632997980617540740777186032561608505741498959673180628123177791701965447700154786915812900392217292087669517693235209821070076849593635329442620267962095056608088688140510624289344472092708458967852308494337763167748599247129221380255354144764708540849562357885190525428303139913695038033405594765818268645770805401521127277254958450283842021773095093949483413561051073525807648243025628358749194823601537904662537953151799507958231299314385376224918323621397218949182469833003140823256617775651436303003849144768981154302393236290983571337612154803051275237375328250864538860663484210706370259712328249741247828651250937705708579973177883276416146040456583370951614243472309212529776093418428097751463139216686388282352701146479127198701650928619005337464618099132630456402095444323747571946938389312677034882052548629511855966045237942046730027022815892784975572410074720494901620477163536840731198362116156080715985453238390576242927901823986167448265200980362674315707375208205132934322432575606494169097241194608219434306246481771337064250908709149596615487027047664733027394674914180082690700566311130345118113998320364240209925705070164199996635722067067373643989446014854104873148254992979835377283364387219961351141825195797922239983078801755158580016286274516458154584853959713599429339605341195751546191157725822875163358025664340463659719330152867634194238452248217939675932640982765639754177491633953037611985697959148690616885519058096857776143653837587352948380844077434726401926140843489973218149081991427616018505690197050948173475284732398151565291655790106232657792203576442175685153205626869932253027416777889600911729692882380352392562282890880985898243564764389400377190125401569288975985447484278072505892199965039930503007194510148999115326453852507779871842879903160822728288702916326463432476708985072604250444304992219302128736909369549193801319808410260597012212705082417646191804863279660142455835114784434940075822190809138531460595124063804889640176638855274072452440268117859197063143289822081042727247647062473544970980545912874863613088283016289452912762678922550537843067278729677763261028822599402731140897019266818974568771000259086837654422243036561714363535030931065527250709613588566146317426029987457376157961451194773145750472339190089818321282350578323477669440781378483241258875940640770371441073799131471403754822136035642106876003874770699286872661626213786697030926500562684316989042953551601302869515862698022597203436651219791763111271210707663368869832246058877005237729821451533305775840190429149144872451362058611207840297371096291103086420323303292051084572845029173001022904059071779893053202750207904810485661793178705898867915416428421013345359907493113537438101977151490744295634157430483472883921262323408298680904371362806651685023426405687057685317746299428714758608580172611527379197404683081874441644004316331897045757874268771926831609036915537544391038635987742240500252633341527114523955570043147847491331628800706023399860722376014099276283867912076298739522571446851121689845389289906054757294306690737643104607016838714003240309362559915219320721519029042284353960048604169104817558221156923147868627630804679804995851853328096029278504522404070402100172729989588040983817903599127584732318162643196945857221682553135203894825191730566075340528365721726128758023095193590725059704368521348878640148332400288559656602860049676634474472375658478201988396721667883937953489950943706032560571672693767239576410691927543807369561954203643579827261009102291526468371054404339333309635610854097317878960750246638047278390325378825403341614145167894852787596606805350378369766352709264958461165365663739212818800881292835507338153517137621120398823041247138557699408153062497594185922966910978937497271483238954224764750609718295328292273598861163443545362110185042885266370351088260628755384232841084611525948763615234524338091516269999595361274661788956508036423988285576167110844012619747537332719062394247362002467045744768449205615674245943758094888245922527275419299449347751030676385036801870030428906297105949368207875738262911802788995080225014418794266937929626806998151267893701426246735063978295150190610807981016024873929311579162092556090035557566198789460784009984417966089820651617749745359746022810394227630680038760139714730885725955807856097799307042686048942447618844036195887055841193891254196866830152948479826883965804082502676977039103004461058801278831484925105697700060075761056120401590751106680746365608831028169249217410868887013418935884862859253030593378675445612679783729221230779708153484644844072601160080273854623439677922448440243339759124827534771332899555568682803300781069429518932563131626866729835993711178821882415511037586178623628553499448988408058699574287769909547115400734651001635237473379094253230535449980257424356405979606483370198326199561462551856838870111502439064296724559005090300641545826415353206903583616603007371560016948600311507296994568509656823383236028540700610639224795813795130500907030250857628238735390184866644535960530997183382770847453240566092673046931273801081574578326462223009526152404006004843843928201154911784410998961803952542580585160225017014602806404756843609940681939349292457652597909294230984747138639413181734707334831898964314253614639075814139123075038098292779530452285315902959088558899254115276343274389234350328919232169873215424322403455649249945778990470297841673890663419284908306255116390085226980777585825384191395429461092062718684807885291126880041276684845427109719404664433639884467194845107998140025589503705028131351338192791170425651142848348023936167758820676888056450815068929168745720247500465844393676850901075420589121594875916416241496834190342240353927090941121797819947470285470497224137013993762476033496459554419252346687751587017378726424316309300504477561564689874734204809895781600601831281585465798374586220766507713759352426334237302042196150853656889253208182811966537348050206132013528021673495430897873306011615613721156410542165995760695941668768852200325024131100963034984171226621135188832526793628394293659919025514310442699847050089507540991247856478226347094300420108803662648805609224768973185847162946370379300532039336446402417531947555774431756112826575611470124604210717703136097530562888084666574535191050612370115753217324781740946363204794325476346519137366728753385166785694810872816257456708584906954295675326076089831759087469039006044148174391530152992143533989455667066581815356911254707662986981271030916652225770202255772859199449635244103503468062777942754885039825003933649749051226222849632821127932912312005522977960613481698551292553889150842631963747937046734155139489011897034673379379591792564836894158938714396965555125144615046252677666808313401540937054975299946803692823542180105992524837277998741635283085902578678168782421489824701626291059580970491159735942457923140868379684673122377998298962415162522573368092580365563954968737605354526294196563843381567770254318320851220049080482523993147237018361258217794042644789842801050437970642599072611118007796869369164397246699205229317028222731779791515465980427711944531493024897350507859659257013827033741404899518574894387228680090672738689624295588106841829602481358368959077947191407677868654237683740415821735416890915961599796579408812888960852318535712403266857412062513539347820189580308358482854291126644039689490157819047457916790977343071004921619440713676428604899695596430758059895303502312326919797625811736288661821377794652922852825581346383186685581490672756935274892802146964319079153181853353940815527287078138854079300428703683757794972676481866381135434294756605573386074842685862599162517745349849163629351843253802845024649546976105724513340904462161523580720292014719715197485101118365201548531831389736443651544807129735322563510192183799272494384407572354802959860697486880531118338238176395156777485397444996282301413817474147827101997007237794707984623030762938152549784453047321430257811827268654715045331618764814557082896615296789828284313992626513244817891190183301526535827096451285689245959969590039109137976715462061409356259061199451158240557367455807297465906292744125964440886604574026498595892101323486317610979441110733336982877671392124276240147454575576741452241506922156285340477906756611348880800101782878670935956996672013802833418246497214903532472505006323957125721388581940902868057524825287761608565125298006376762687873758924323546480908344932280109132052445277887674202870120397529227639310782629652716517144185872626551953820161651022691938339804917352396699185138664222419855050194119496964947403469126566825184954430514097620258248160957298036274965777036530771889615791891089013483480718353364522878165284550384953758736493154785104432969681171692005588086181360707195855782624516836026269135089575617790700928825862718249390320797208915084796845562228162322680663093824825242664730838474576194258921987668295410253181469347630914463073001799088994003468794743096797579267708508427312508072450242853908065599004785722351619035386686457991001791713045390098444129538146596035346624744609053436856166620312027219916533669264877431495918191624574498672547802288207210418628049352822324038314150446360544236912502252626661153063011506119764435215706816911476375121976474045295991114366385041221667753452567443575815939642798920999736746204527736711911979030942779644823756973560968699579810443452038746579654267267938503489979995507928671246705322995248965314631454361662645590761288118707644045723457299377601623006588953909411962581591979973680580271101766576491952584821198995396469769185906670393677720020237365195303516397244365459895062381765853802246885487922979971821696741654692681378015826613000910076314001192087942658930475504227763527395193884257672055554178791949194715990115026770573591613814840140164959775001514052704062608393355041324316175296848021874695255362286508776847936654623376089685534321407445670180512183168070109596349653973951577332355400242308432725212013549981608344709740449328706844960612719252293609760034663658052958596851594561090277033139786133315033556109794471712542565627302151207466199496788175592936628518501643666252419465095866816794635791063062752243064224405508581112388921478630154364364535629643151816898321923639159590773205543354498212052758018439735647433203804618452017483676712236629948726566373304082401403965385644580770136743910568636467379340434386364583377663905940948404923228237373514912797962513741640902269568432522009300577224084445789586575330681061306455410627507984500842713325141991777606250000433641309069233598887359913112837811078957968163683820681417884765088133662105739507952900290819771334120992070984510642557495658543891675978088974740980210542459352620446189817245858876755023526387567135444268032434690159806590686729709692994489924442402479196611376826995706760100121759341014017481357540605620591831706927191254611981659215089929803645192339813397610692266088826982960246206671147391016525035042004967735364395108587092604930336411755095681674968766220342355563308934768667182684140414879971324505586328622904543584943424382420708120287003911648126304044275858590994766096771346509197905575072377651487688990763414554064654688711993923529731383048022315597794618360443883449033153410227197831837185127088181369484280029768566910670682734620815679574613865278246288960670308958458137369723362576095032589427570782126484761296983071940374104089927828237391817390899057657435995390772400346631126079436986308826608099155378567369202138455269674296970498571387569439966712543891684345416760335657733411154188608917595178920103206564156109646661223477868948487271876007689495847114363307114951730478523084351405410607034106503520340131158801440050195934380711934544891875060637322176502247646473924097969191737403982591100586278588106020939762038958493051909259414203934580071437467517938658095303315897523066636155667392642589957531009478140180404219980483128566981220350154317908282013896822401924341883328651138669413914406598099622896979757582576144641895862238666869101197153930209211559450432331232820949960418467843191754382329576206001584073524862022294271413641976027810084097558811205716376507001003787235448522929154824003680101832481948775047349365747147485284883253999555154884632437197792654981679931390610532227121183289019016060863697303288162149393762869274613773171564545318610796669153465468036851866730314530955550069686413471538445709741122032272945184345071453218199931743902803902315319352147235081989551920934428410343400507523339647339337528321333849974920627701063006949071883131353523671596520508258019152192967062895871381556234219759423168369394680337246950646959450527340761342878611496449361800703432411928332432960513643847938551747395757977488538696370114515398929416244998297995869723348833499429910419692229603909238888669382795338144413386540982890983585369728967980865874858005771183603777046297764641901666212099274093762134847958736493971345893452260713671855795723812199856856583133164089875093501178327214369013866371106644761613256384156663561919422226341028981620996620894085422753946188140637447933476085778317774740444177279988488860925095722371053926630575824490264081724580669193482938909147300369241306027777401101505952629740073935601074819690324900238750633148629547914369557817951446257408994738254576431898081062571788263293206001117541409876207621419297871472034660705039795488146965828214430134008714009422630529955678807382072153910216635521994074525788950340943009710339892430380642539988588213922792759073665548282491971424257894411170745353957450850785538159282811583242834491998016910037366988403987655511626552929135744775411298163836007616018687746322896120466800290386394521868745550921010539556441471333298660452113133795554728846385289703863900688581826673763838274025894048160006337880589696849783282506439593360886178623250475558744077538954143528605887928979976582799529736111746100154963338049042428110322831227833422327689430243804432121294783852189876771004040043338473626785259342128219410483298769638248499809595809691381843147097935407313096700099996879156402530907721429177171730250947559527906228555767360479923036938853211840886919680973114077895030134322582950649762289657612948185464877936686445089011500797263590066720137926883072452947508371746571449330285122791671979478048992236186885163713342031907325045590024570777094811064415850959750491501930315315057026678953456479302196950211254797225456709859536328042431999029646852231145657842995698174875174755153263523622646303794624379457768691431020389718877917245228637254154955068126354565562675953007564569826421066386231179392141856021704005344846485480815101063683279332045482171376971386827871765051799458201489199593291911364510300898429680111893179988515402264155781660818478274440372063387857655280339866076691075797824696066198040762965673875421480013735306186872966022294279768173550038098102056238719224545474400051866312653519404374177376499576330716670285463416172786222325205940819438731283287258247188373792593244568898057491052815625426729883328639184050355007039210749948080006990632254245795146739183317528447235317060421287793760443966761080732113820162783697043419233290097591521646168497006689601333064881626673155988493449734497148827305861785881476572446765025730501665947736123953418952560636477528738169682840685531576513805787653046712440750484135863937147372834277714528444844732255268597107389793071555157275483447931227246508037953482859214364911983171359695213328622604105054576684826168592600692749559312639678660499424262099366700057271948744000796027324853682690780393531948906284532603094347321721430644383810972157109237656671427677437512475541205987712408573972915046627266658915041296425554068926769340010983582004588775905109848605653148361201561056696317271753753988204727643822536559114757045449668370185661931366651910412714669456951879715555460291644939317417328050123833962845549577186300248445565737807098599109458414673287101157601733780074316897073430214065008368683097927301885764924807560814034278659485145479643562890759195443396813084177433215402139501386062979153799850796945690042733784801034712620640894546437212493634368683971130047275992395493565260394265800994905870999213171332199363608171078226159029340023517627453556338079326064931278716116551227406513909050041851813534327035041559600196280912917627619799094904555290064371385745608136445123494632202321411474000451714374034649183309624419918048450226547577792147603769368348695172748675900427020569865500363564693066691006510881993456556856741013665559129366128899594502691501017310702039736521582477144365418609004884898502197738357202018634513940258489159498343952114280529849192042163752399152536726717721514897206337379092367988804020845739609433921003038841319929845772892526018662425940678194307229515287593376275303782340287511655372583329684939823430992266739359012485709213402910138218891306955026721597514788743370882862013436544745330274942644661779022642840742056248077159140966651624710558399388696433851631635767467171093295983461064014858584007982304919114039648954606056876104566087859345611274482697172761165167268627662262552708578767982861623433973418509372528120281613195431778796796171224905776401513767391799019022067439618352447641376158961497957695687101022586895215008788216254898311519080269909873116182534785609180488113854309732081064066849933803556289972318993416584979348512207090934032292862125349825495434683413381286115995109657812957354776626585248197579574965024136857041901012872919516643588745342708098049573233040076839300658345479713232367241755846981527735809845999742168950674564330191040933555311427240264671494572527851843447265308060240122183368626985888605075657668498188063871044109305988700541539574204450730329710480513365959823728784238339235867306971191342953114914105587447826486327392159624308761831427245479878597242560440970420891442572556661714044344583766957285275722109783296833723759471614295522861444161998996210920510560869016282549964747887347179434475390570682770374019553538449253082625893448636061374618648472467586494906780821483755880999175734684311855381434202542976856739166428044531627678423179867855588512744413594458341178278601172622546856918598225562136700804033869595320338091143303872083833060295612776719974870924229124525226728348631884469503329008272896152801410497682001655063399527236272582511533235751934390724356075522472265868338039438182451673251549749952047418999070257277967914730285659615673075864331939544020102522468628499582878398854599095631764972889681414211656596002347477869026496446594175900221242597629252260758100999203744259132511959546009808704131294807058419849369497847421583227647043453042038970601044399959007835702459385455439439674454559826355231436386076514430501513224371488282176181996308908898751570615584668013523933411401095582260665871723581123463857196879953597134580285396878931261702110928598878988892103097719466710391193606696790792508922006332503474956352425865413452277341723517544940600830087085864043679552968209450607309867990953947949891574582875239737186300705276737381232984498667314909359507501920887552757269290572791202367509274325501084617680922956015740883083664999839275070542273441792799141295602486086731980041285554500998413514915684952073979179577840870706434970840378569537245328623200931863237328870588534553912867272866934962850305546776672498385752463069543237481710358732643218540579917585953647644326804780251050072262497791842399421248928130082097584988107542146449081501125495299601867202044844787370947664682829206812688455541787662868775817165209398408655744750042130158445606803500534976839670301090200099810015462984331053380966543160757321387473137876332881835682622707839085077154247338350946399633906294751745500437853440520086353706679093206153776692912127913651053780153800945754785797010635819652331424700687074741309220287393119977203059433930718983677392310694791662153274785329091264334539045630750878302552169703322025759109736244604205770356152391829024978723370377946138196175998092435085340449693299772453184239458199118425034007702584536664829638273346272689579520007376595301051811344338543954014351138379342734755706086770419579763197826633008169328621282163911196155149425297941298922862791828950972024831496812354168744969952045459714983533084031921635347248944369198326913694403296074530083830694421642166520983876857402839278711159219560562722684357411813864284150818494388958135923518536615799417638203751280227405660460407038575597231161891307612335376394011648377033720333607400490732613314020358048545585918661614343993838583111380304018453938058090591589031609647043031017402154435779490472338874290667576106475908766908833099279603490359309408880746648054579869325703540191479634865190802410735497633677306904190933860924851822677658363377881133438411280634490072709754439494015421362030721082912982217388375944520749248225402394887513124897787529977717133916773284218354004195043826929560699322076419547703207417990205374506090795805390893436839351025029094084291173156835103765261303214198904987762843204007003320218406624721668394650985185989697727338489704318043678868955629264414354924697637639050049704938891240065873889472369157689167350344070647673534002700577349625498151024029679377995195052267541246421011202112922450990126399928361480715677569097100139864027610230643594658958973332861224907578933754960471962097027501728599464620101543125771341657190827953675524938878050318854830714620398862100278905154661943537610272097422869059041169387259249915064414534801141943852761977067885475528048823744093444120290906523109639582615837127087153504750467627444926624397196193318164632386261801437782238565176313015381029862406438318741600044278602931769233344291553017737659158748210084721444279010001283751429081749098385063971791271808435199268788703310026099775661888486473646162952490883843082925706679722297688240067342962841526049584283072588717806084529075652038318838458318237647795292098566647173120134771311057150812687783245097734388147765893485068307662923296473836425805087311920747058069006708118265040414578243274990937643871177378485694432066047714396802275600840874922679696569041432472518928784269458016383583318960780334056762296572241082081540898053422487864914677103318571279193530463261901859632364942736278169256884005728832103769263830141476149379013908910851738509303145932514877363995696823418985389970714955867101532140797631059649718878232549139041118666502792477799911322390199023210950363389530342293998021373141887104819856914743830429234911111112907946235085265784409976240157505738480092999904140162696735895939582428659585682750034598799576750144074083088032441903534606287703063774082830686015457993554152041172150308636202458219361563625690561170336141783379847267895950152382047378547969255372149488835092141642197012724023910064889411423898987884956324802615958699179653573012110741866442147305045043055223671063868722534022707759042721535032953945067084790545247411032469621123190370231113705080738342679396468644747550116942594665289278549968159875277796429570945121243332504930493585458325075114281765557423290975982752514245284003377157919670507145615954897966989299696155696203674374033459850954479465391260634290975569094216714461407297065321901109236119532864691463840113895385387837384380348849865700467940904371627062087495527532181059228612410719075539013585269200537260399193020185216866326848278848336629853335464325111684222127165822348593723094436767373853417131796071038710780579644841342323230313181663838532645077184934343463754516257563584126831051482109749268825617410236133115281571710688163546235958792222784998633408492394830304202359366808207007790499946473906194169609395562161897305571854865326657169648606575912990572143344275775143535899130157338133419927644610528740599392828586847340416031027594673419600660400899327253189594456211258260047691209765313146650623794947599405136652433802634759588765647743902090257465549077129800698908292639142599494831594880377380912226405788058242352362521233076733447127755718213453939136952412674919505942544963817248115050691768365397267298012241143199303997989905343137874281248588794286451162704770252666098147516794945253105689278699114007209089822095455335001780651688872569966763956421251331569217699531606427108677429046464890220610971036422881568706345811812799682589426626292630365572796344193555598258970828938869344454946026143365482805434304007476681640393177978530288034236624731024735345254346348811866429863457207062887379778872550387057012892946758491860790484872604194727208868602792269141758103061259724397993346059342969145994209696076627005916164986910954538646610623837250698890519209109503151086734611147216396844276470492287539634772366991237916991656095856398931487108345216539559022712655326218686941492372077768401413585213483231726273471297482365320368049279619940911614140125893111352360775995099397687346111126905882543704903486295968416866027063883082948575524710680782159986639770876809107534114577753113311799797444328429156093333225918264962585338173168521635876585906837316082929530080335908097511788316662655893335680596297951537670566002464743109315152110044304918412359539989688688425532253044694756854935311397062439477278485633942682724499913222954521480286026845222621130822384128000083999252067467325292646742967625706691860873445581622697597817981382572336109728532110516712493022285788960228072609637016675040460972377277417257151689351571360408868685988037139727291397289108671412166600804021012401439630348686121538778545076763408405607419215004993255782679953797093273729245365431456300303197764866434643054472868795714933373080107951037455688169536018851453548151838660068061973112181277619699761607215485101869237234626909139787728004791089724065251642991221293786797546185347649586303551526446720756652396743349870593789990822413962538819841044289358522591132603871633490656598963522603243598006422349496786557083151764195784279301995892200382035491395858612990414846224919284546565180894099795384343577093801101489031462289880458151247048878995079685508733898404246858699894288480867817870516150506463392122252932523893617731016181273614592585611181918724767647433977121369851723588557392070245854490711499979511171724348700089057795903922463682524259546489796024261862233581190417887231346574973704735567681262513279361436075960339197704770933484684754370476545411276697796232957035926666379944658479842694636163144200385468807161829452234337612157182893290165001715729993958377823974213356497167361247381682836850795492209756293268995324255164209451359247826766206118294853776538577137554065487441036016519666091511652703509422182277194958624966006600068405562134902359503342850843512223993850935512252607369905838904010138466602067526526256186196659042269267466835362330572611402975773341965674474674748601839785483015831085587147990825005706458907520161752557154219642085634587448682125930286946087168789189088919001643012755106300068806979962946667901749392680110915517591088205957196363011125102203152751565463115292617058600910394066269979177616194509697329831434628100057542634034849553177716742614518919192919278544030828198595949837076251691398769403950546976938212309427473495980665477862212103465096620237366445730136663641377144515331094717434857665455422910342781105520446223093031166249088731689248850163685253775720476215567879172041737442746401811445709666062380064369467069726792750746198710578704707982142319951813889374368996785927465296095381914584581074840404940636654344577821141629697034490454238756939720085343561039634834206107556533823056998868232565300988090653582273315797532821165160409739504391764698698973875883929344955477666478510734672050443439329581240594765870175856883997740447786468781003874571369723142053377510381804456518416679148165749078381822303191427631794780401517541637583773900366385598296735899935285808197188951809650005699726419305343891888966393461442323350113826974693828483260924672900212382799493121532810850464643612092136736418826741120547084329450768645518399764967034929078494535140782506473015566810341833320118848247080995988247929604807229711471517287902146187864964151727035076462552334559056819992713575155685788091450028889196616393718538104467308777029514037613694618468636996918303345913861601364041703029104552041026739464185529188035795419368730216669454591041233618982464356752096540473523960440760481181647209346108131922797106823487390890563039796380109830693117637990222844262851738625194348252662038511881505469513700655714827215062821373443354802774838251072732696869609976129066937457442728886127458521201040875220251284671055152806905584968954168707904170323678934686160276366347335755685301380044179524154771688694500152475203285428807248287073014045099773555960645332184395182730364895755733317922019711345863269293811145427884511195534533347361127448290162574882457712043649785832886506216627570579520496273308946628810620218584174984441301445231453600133419566725867571727410956764939555640063805672271079816056388498299352267851302332484697894705554728713185424344530452649230034569830937277348585543221222404521409582294358891521826132481194908087779473723234631967298075633121574421334415626549044178311444933318119918907689089043708823430752817807395397628122323901154544748222009321319439460353425402239323385741521996662264628679546518522143613358849080521609509072691360784300348277632591555504385280536934365403168907448016128951191813631737059825429860741914768633726378437177317340739350877127643958321674727859818796455842588358842232149630911760924008414514313715148657880658720550177546481753557302311469128455049987548522130639461997017595672498796415335258139686001264926681944874924630919166821240913952341349902865245695744013674358926901846239948364705137895873054806742022120294665472355261778049515650910516126126634505156334648256622731170222146657243770767108814995433510956139428828587536595218663290574147859017120668080134007898373267837097183407391080972394634730549857147663025508339536766187168836977406533019094453128639997927930221448522569478136960683548539165126601435013101077982879426661686752032403506159411784107093715255651054917605479008699812862937873344699071525016996009148733978939541724574610886491777985852388266974210932973735980581251668692221460485305101271667692142418793637689799750481321077577408261732309147417504288620981371371990805349175028615146514574315192158909187165830629265806718384064246924328907077615755195252241500596445303932617117954793479911436660351065894332648285769077904044915966246105194979750889711571564094982845804956290115727292324193367992120060517085278706731230666210149336637197132660635934300826912443472233653074575864855064265972241879920447515897829829180940728476527124068894556561739850083690580491298413232631790896806719160561017540014333219261547899634347202249941917517242415679375118054261035822288815726259818655125473616262673511769913916121753470629146366270463174660751372433038494234727448088523929642875580420675843416716773335448378966957260210838199857381683835428041687271571508200033019293525953882364152366495402418431739797759833053463163385345028239955649757087821089024972597170560098611101507001918828859080867630085493258885815583318074768867015216364178449301030581109748450227785011013897607885553309183395142736086443065728811181562646425775070462083723447100373405007112320384349906282952643319311458533708370079585601232445276293593915545271853562622759280121732659604003611704224260946513764595395364325480746541753206908489878446776228832855925596715966292411566636720191292333317061007194409296620805430122646553514732993496278876845609932977919504029794860525411201418430383725508668874842821556999935863361025507079894263564751266740417627998090734635151148754995223850051638999930592626767317972812673010432453980885032825011892657900611407656594824275395072524425018432490912618394892323706103964859025316876495623864411303075471317930475796161592352834216354920511891673882525488120125080350608068813319322775147272981968544035467924204635767978176844967734155581005943098119748130387094610139356599601915907269357904847463675950715455954463902355200946890835084792022232157715572458513708302697132769255317284547553727690561316232307399689374867744114086328063644230386128092074858009018901293943648987535852383276355921555577950141673019581792971155616866273625549558713976591138339956138095686794744549845543037022829060380127460668868700403910129941895726416656126059734334249513528209932208080613921135506233605247290406637603713611459019357870581851727732774291334866886146473405191056584267656835766283162275879278070728699994911961931462065841489002126101436484835283120083731524881261509154057910999991601055646769632927357050473340480336734188652350708026090677570823078434478114578821022716669662463090679776425461356584893388253259883505247462608258157994404044558135721812084795210820647776841472148965879014291962692421495054421457014897357750266818446048709913617997502841805880716943274089708176601011423574358348445052414132522783790409836346312885771393825981807637399027440136060788450072957547249641458826374125302800753068595955113583719351426516189684709802931603636824298052955008717172951821149148964745515838914582458407244355820551708730423153744678209602432246963572564485212245071460826895339686608571415570289048567503679370364066003174748996176127308387005390471348075011366127149560907792365525793871886004043996864418865398716106347399896487701333263958331982549401521852426649203502320903535122624937961040393581117639122393647897483012223723856962805324200966107124750260508043667099326415345900961791710164494613531849790866852057416087105890570912391506394330315868921570006811823155598046592836195334258065589206878628724274999678393966037523829718475534381696218774078621390778328912364081469707277583713872980313632387475760030862473206377620637572289908671427480874885851703663909170031431015138572816664416383653625447682028057320306153634563933800818864174970211980652192021269765218218660752426771599295146301666383037941385461490856495931956854409465296966605581100403568882359001573578878731346140396044111745405524399793620451033302727383713489054363012228376382716461368753807954771677926911227237561979193493004774693642337741699554216384339811402498822618940687263953513477041118210072205357389479505350094726716714327436758661180577688064098958393998059960471098055931804604475089972756628273012834371080164629246571473365892986657748631840953486289217284680258465798411978333824973660578593467333657078571631124992405044884434040217409798370836118146150141103981125878845634509893233961509926292211041692294340332535815492413642774129992801693329456979235613067068840153321300036808895193182380417170620977615495831591722157096235530523755620532060048836403263422725900224744771652546852794078088180978083267141423124300553712445524970034633210090941405375351909150157692432391295396391246439321345114053913515968049166034317147081140088376898821385483402075756674346294557490809249435585636848927863591493616349065034488452547344760718630052183815593065273550333909513157461415069132403570664657730626840793062104771420359176202874386540830911788726272785405678952549121524091568463596751918828440442004837229704185384695656454277764116390098400644572556801892369306666927950724501230318052862394747549832334303840045544007885712611050678236737538874702380000394543005935436116722907697170029687564513336061666611354393591218246437330041852508196930972140273289981985261513913922679381334819260992010087027804230152066463665788651498032041630549734656684058015698067535733705048697241088099451117603681302011075776675259337077850413024864615518572317765690341030151111426764458247860615466780536680474861780782761246225238567695275530444584196951888861874156911935070106499406235755763588126751160450252511152718791501299081665731063304831149190775571616473627715640450729193601411881269185528349587275976969648240543334710464501823384151017289057301831158750052769093749689334600539419857949939014478329732016468318034929838372649685482581505587214318273741192943483944883528948243425955432528301542622720745021795821321651287324716796793431397124215085786291351276943715263738341739041643095610297013650897503190792543018037721203562280629912330939507763933447202558584692796050953659742854849986368280451914285609125153428404084775692471330221000994036837492654607723387796157416473676733685670980902212081342702636227453554790679961075556682809561020784435335545648010690520680339184816934713319414182964465258357339553154076158969516919673018499506720065803626946622402473413372658910446294364021514850919697396377551359942652137197783230716316750325388220341187017042088379361930372351764108779915440905408465149662554951964487051722964524322271794338136956974536165619417013965167186587267168384915518021965774886319240490869645346714048709660085607634683911538561815906011569693720519784359141477853635165713832678864360094294207520739787996107467857874672128371155463392954698163063572981846603751262996862209919632478896609455692143656131380423140650966330070794416132219451738107119087190240252760526421751341916629752598630237214708037575435195642134193688657962640601670110506984449966188144823037609056143830049010658385385468243777853269337856118540911868292478109485568493141764796943219829757901792214550310422070351243105808127127678133807016787659480707058084688908143841320006816518384926760905794682004660341641111676118987754241334125592271191336966049067742021632639378652289158031481804750989310776236994811170942789666054818715728020265851719513487986687715814126760081606922287728355791123061354680579789889950683546099707992032446938822387425590516889588864965638171721527945090671788592223298243515332767797005505756328931171967728885701683728968833633659480424291806013427947412593545869111970411336994302202927616929386130642340857664871762934785593320975696125276744890618723677687181741101901202253960611152834254882730495151908694527612688388398990041655520869854935205394307856505598900470102680783095880573101786744260283783756147598712781225820526362180720912899990238945815993671480669972498552128054425976883852645556637154234064164507473419706356757932897949608635148508355984508489813875524737141242556338546744799987008796659363868975647170135291201497062528578538316708766536372351533994474027215800275727230050413086873414184664199468483883230370323804281188244922776121035798628609326770520923433407912548935921622112352347270395856182872161209171669507288418664809011545942261160616528806523300828416757722456319522052844774158954449006217984272234610955265367340317273038132796257295463179666210322106797438927414582176051920779070664967730976976637980270805181776897494109960419729301761953108081858817054363836331867558460850604872239409514448240258515198167442975344691649350875243917041234258197937488301896056943327475068712261062509168424915506563622395324613259642019229514379131085667449894016719549621923825102238567032459346478576892899616892651114290778760282897857131224629837855216394087375058998491037523962598372183124224617008514395144506245061076526752366031851995376449842713745138265823980203348690603698298134710214936505134805581202179132831661162395806213558612271979345170278243950590391906521039051988198444059061379966254275592516803250511625028925647243916047245379319628211968208219594969751416981629943340258317916640605597338696364086265854354137913322497090923470664386352887898597994513383835337837346995736224064212301959100833736087463624933466507120936613460712624216161426486128244730717495667186987616111534824205269072759464863977630852244959642028119859637824276889354872270046992167895876200717343190278806606359317239335288666353517417555965845510584207225171371870140136457167615555350012862111624981493318511650467871693767180469226500313924324996575447804678238383910244180713187728880901094819922240868194573562485577544902397425867934166944830493873308486128438836482868342335349381876185380163709271253853204739728482786547051123208671055603771160740072375658591397437151602546807316849529991566739921280836721903633113744533939109984043447415111419006467597123337163987002388477302057810381713559050793478780310572875823825680156790721644316282579726442860071763839594574547244913846375464707646335275094114573070301464409611087058453559876894863681603974834067871137778323388778106754137392388133186016854681064963678787832913243042733578012390699267154723295319717319782286032785482654834013850414425751876543753743211251669775753921014679659991824025117028156095766669846792170348453179329587334367976668077136564933978007617940068819419947951362282980972323581794746153971993731518340827510161807241531646403991730149767869727673732141451016339817998363511293568653728600792174805296527964219701227457802288790315552773758736041901171962269036893665769224968329513288904780912839009211140528487290232495945100454483520837822566760864329364380282364026111819824375581029465408016240752987448583587540650635005008242124166406970766454875397131712133328849459976403353909994090661942563450697664611037207924594737325029474379397804308831335143076575381637000168476939167642572463426096042372377144840287370284196630784464742485698806032127400297892166514752448052366920793061920684609419847787075647514588724052765365032521305611967794015923476110465992072055614732957610400455966371442656498321676191878889095756019037044705211860039335081546628925019337900745339921035594711738388737806548955774099227190756901793172970164608743574004190964401716258806164372199386015671836908618436422776805262567530568085878362167408542463511163226205805647778282637371060189209891089695718734825845545411208160199884246607447952846563890531083566504081481510579648480468614672117327239312293696225241269073996657949710366733531884929774209757827606204992976610324072604685967662733213246715776321954027985475199496383388081014161929434275098694243022017174460312915015341081509090244736282302531445868455337502686354549239250198725544139024958671870567077537098722771072939984986164911124164408686300588864542932321108584499481290492490187858362538773823787713683407300684007103628377569309153233957763783011609552260566446522880335542323120315415708620543100394906770375669850498766129016974883985545090528778152804396824476598741077161500761118345304045233908448995454919343281315784482766817336972999893557953097981688622134077884013184900664062624836897182787750261963165210460566758508723662122138678874667257857440437933177115072696127403693285950080558807018845592209597640334076466370875495492488864003398003696724786594741357122055693761167392101661990646996189338541554335707794196755620491827395959542561799964459917768636754085409004307772428464397251034200006763388251748361311196728353215186205025992661049617925482677537376489798393471328592765629043592677113333877599486566929671021248914112739258177357304916526619681751002502190444005136632369324686407714729471041336638012341537916373674783522953913830833477529266878553100700107433909641149277634747423336793232104582585663592544758823124831044866149082391620543279087875273427127833457126857788102024994319397251496908867839863434116043802717868015020291688907259911937740875855961460780488879989513815193739700723314891472201483347101709132738251106617503587799504111275919754206053653574841770089506222458192458551104829377091654564651820797320926510374439828833389141743284534287082258979868182170651028300936705409348842066492010131192139649919153211763203846728387051487467594028381239697178481717468015826869089634745513343418639887498804528799761146821072913513477973114227880039900240679040811755254617151086135391461820957539972046696587963601115782274197809968894730332300585000757061337024912533309713639341919300412089950043272213231595061584186403527783403098651784528555564908914690053767717416902071057677398636400549057668923585820016375154891353846635567358764050817965109838286715241202544982545702571204521184650029151278926589403184633482510378778229558718417695560502560072079412456019394119954181281152568957540116055962136143986043341216236504358930864865058151786308208057914488841996413635381770779320325719864788726752333456950637471011806863412017409631807819967600691978171008679387417122497194358889594989565600049978905191914301021885270968539626029187962958212156572411580904882887961731120847636341302167081937953454839330885010731272983062044148648676351522871654292898179126985154438875448368781670676472827531578435854216335993612864678806841253468427960730919678481233934337341654953377236949025148182106395256249217577498152814829188360669672639669094856618244905353195875276572867724251600356527045375428356832571029426741096927371606805875906264764005019063712817432074438883812573105388334507849584741251193439075648921885513543412675385399966773593497564050367290032559213849256073468288621820212850254300029322698997621442392019654206935615226243562724078135870569883266722182375568293335084183544322609711562557905588211964372818920271340117009981737364222078867097510030187601899711426012214072195131633989930496870958969085222492265875615744448452960155426015026056500882238209977632204210798473640421087090315881266267919102982370241080345707048349662711684607659158730707407779711015548723416833456644125932292643289036745697959061381347390982716741825189829789715047211860095579484745785048827704894729715494817817329321080835247338645786679946904028775207303746208344958185930145213097456716956487411212352443679882518052455351948958522084595589863956093421700174419027003025554645885424399500720338255516708442599259111983218877714885741418988707227014338282709197972358091825537552390725168819797472085222365947403173443062948294498447763414924721711496610792530884002939739936380254008187320624276244396363427457860376432506011686383825601523190121716083756821510888212608727680665143226924446924182041931688726582126422269794396095802436640883136606239818889373245042318480011003424891802861589000801819551596089160005298364398636885778972700589434173032810833298256199682517440877863900526619794657981129282825597995215939679547109569908212443049072370894495759930999030620373782210796542791972396461733220849087210375374247828931366587047611936823951822237171689501591109775451504562766166513600197313086144233184067730682978905761972893887228811578763491061854121237689318417533907921556395666821595394420981240733956837973897406968368920558189896493972707523455037823259988260267900635397708688138096960190462431681075634390495991446577885053285565220231053551568842527391432832616961385072818539520757165079129053241683283663152094298110684474472076280240613456208702893181445972041676003838731167815407236426754419632458569180817809980470081279210739032273137971267259489257521499355802702101974263737100477975773791985799703969383500426495259581632018139578559387949460216432030032995931446886346246036145862237051151515280227375755875773500875873971490172144494413440974714844578140119592714874130494835411800951332664735502397571716069449909248572920977751539749969885848746929160455194359456354364363842183260538117500394962157120960825279098914356210810361184070047646582920752493919249822326380883821274512889786673005373751329079422857686982094949844738222923294310197529926779944014648634812493215810789323032506395807505351556185291427284715095429867643655909134288263759442875846394029286699914936370650343269684173460197304601050670471139926176514420055314641219007943878241276997464548207991118834581826210463318985893640610908131310563302424191486631905709387587037751271011068334870523201928794059079129733118228379787774456430607141526637595130260112228099905275154896693813688056868919332716181691770142850390799229700422954812378956347511286904196907635343875539174586253990844386758109142660480135244126333980336864808238715921205792548935617348341293858156112011607725627038202041165542585326943692820473378650962695334377394391813948832185638074095036170912217143426227136129772000718548672438412045456590090395333903145936993294210040162493988648141708408445566246852528327591891903833921536574864520359093671854398202723056288023216154614556251987729493425875952364795553240662000568383276804269264401806450587879251270609006986376830761552511503859930678321221008155519967252601776920175688446981685926065768612642767188909853940165185652262454153928005181094565647637427616248619864873016653603497536021241686911733881434218463435858671389279924771995403844154430671358527140057666862688787852968359263526800742788483855530423584958523629757939307969889244049960125744590060202296261957860103665428039021666201257361656548731131522768238913075395579962948411904446070745752164677425450163560821595290548906705174495826963666666637249686529940789776849903915443345258933887317387252879776685745284148466995624960795449101855802636769039465339253936263795140092648320177654058223926321343692299565026241103298986544230188746816233605318320931309238412207092339950185121112915607964791657989404455561426185075129526563140462774874505210774407547116036112411765715737884005494714178986930096133154857321894209009271035348183899832570727339566745384052255134726005350820123364601244689289811243252053586701478941099034896428333804990076611697947469482223289640288389177616487486425452087282070151083699947032541465625770188950588113975102277430623222181440585399748889736282849083041456437442038618378302834994820637951508623981467576074101323893133536655597914609434512618905279854886010804335320374595047801832861566481579724512470368746428386844277615377221087184914897029553227321550490027064914512787768385540339562704169508348350010537909721428726209462107755854132184899944249438483163289480933642600572571087101533723676009570708561281750052985249352084794162240037891157912410876497452790179288677529273469370994521749050818681834460777967405563363773879215582754416984011789911270363792957717802499026308575764989683330851789768037117229525488714302574842377333332842894785158689036773267823351818443984385855953373329893941559011281937968674911521699852503132295297192607723157370024155071709764080214497886525259770992663921488748757446868018158811202884106697922118056110770339139174894671749607518547468664092384253725795591123312745937879297461636141790903477959137802590120062391585922437432255435279628841087768218941525311164822950228873284450471013024163463739964363101236883944750045428824682095573848532797641240272096561399633257001208135186428288981542724824663142314341204936866537961068916342973303095502248935065083461464100342698295906363557454345387799435036242441835679217486453411514191111988730340782025519694503246763643045095039604195772491418114676705407427990162776712470084992812679547704631248146061610467329518592571017021898021193957708135084205740025780293027548730652501638508877903272125973950790428846287499097821448334371558183458078835082006550816995710041096792006486985248137743150343719056116773202949016694956095287283296599894243796052929882929029787520527790107358049087002938253081406793116633621449281458387378566752013641485419335891850756549299405646777679127559013043199626488159013230439468203527232331650882601908546899723202376499899829292753193085682487671716227786304282350785393752653257270508060163130441897119975432105508897018422708772328122271476747190465854474167272563363789913691217201778541825251727072487290251300616115701788895827162107363552373594540209113299974523760015079624869517199777030143565657886149483756631917463469470314227891160016227495130044796724910672353077416132351606712077038278007829689684600226257816665552420302659281382819584303022062991459073745267187498619972584823256402998985651641830073560350087211545464901332079029924832948334204710543053625481134244374718458324569966747903487059950069937496235023034145667021846612703307735668505685004096197368531559030341316894498725981221747781943627707583211293962843840889603792281138935932268042468554827020690793994243489448870525719863247491263257366431670050316842368442529321700848350473117253409234418457973795897588768502084995797909064071765965803577517235000592255980990853191288672194315132209000319142032292302033313259343795533802834556800342770539803119818901732382746275778671506653011784525009575526591800077411510772479349081058664375044758545411437382676675943247638389732301500782810793899845473140023173775298510999673778960493938970948245561444371862708044499092554235173629061288067414788253447220030884182304298255023100091036842768421788280485179884415990330837951741703898852358412552688263530549857128497277043823772966030050637511777173117969119408483905707894242608362271208438059220784636856975366530878985772386620281296970807172011441208087325941425799320251514934597727358828041529237938132855721991258063252871356847569184811814271924593546033821306719618442242960477883911247482723402856118744415393003883526076208050409096172688058910397869565971768417357338331565596458259015006150881349973210086119912056275209770273872490236956288785465980354270956852552167839489466100953385675173065817895858596077644065618269667534452992021531423468529612209708801793270362232934292707020150961243947510727038962585646987255376130661676859046968038636823300914554249362065046762549371403848947223862891441531161449841351623846920047793222584540580792237560070864034173972539544089989483290935912189196130362928937525778608270415765285327545453717755884263132677407449406062243302276882800179173209471187781503920101904316778543849163020752551196451225244393311327733315393792870449173661425963248557129104462920185860328485108124629807218123014498670343071739340398881565396896669351681869391820772730066579342244573259642266557551224109153475302488598333647207028426884892844918308917847677149329784754435495909409031518757411848568361080866064988257585196001553881607860617628174210264363989801480587338253876906523781941285881904286242660892932896308508443770479439220637439743488507332277030372885942748895650874487085688802775227740448108528402959041042795263416854307718804129973184900087994257827343476208448180280872557022095612774657091509106968406609876766228846591953901047363170185058109674265553042319582521324990907755106710303090367148020509875703438546633619379903377338894365513326460182400678361878466826305621557630262556057529353391836560683297713650836401637738435078397283038519570370069940377420564190724244080937166171370862686338626596930515311551113992907530059760116408632957757540849007979497402855198416860503891264549592959505933239977591612057308446186025506430650911385334076102884273256002335323080304774349335913282910580603148776011574962040971138080470917781770695458336780087825878278262238711717288947689110389086962374524322989512004767382497557358294122783430847741185884591987549122796590538304207190940504394031060061041116994674990487487966800308131012314936035708457242685937214055296056486090598081917056661486623823205314085305378580525079414778244756808938083025533811705669113090438997036890419165942663250823401009549103959317422873558417095264107285183427155013467444826398334058999683885885756980775070900416095072740199270836249647397938261780530894529098420021109057432379176509629948268840545840596998930880442612513188683167651120225721911121519553961002241982210422110702712779264131563105478947652955255614762009844176823040462734478733379170732605142316254813180204397705575076249557551041296819560704258901377296172936008144429420985218244737687776654918255069554922127884386874680082374906201715676809980769261786673887209519984589531162094843221803305736850711628943345844201518394805064027907548443855878512455863657103569727467280655256853445709519679373212408247312938118594729651542229341435981155732897140928869764661502002074802466464749237500150778500263951581894108862660676457911094245454830429496429670696557379992887530104045980840644997762093098395739751295165654561847057026667611357038879668525634517646184656023505592873958183709054967283822246231236835164416420615719142797810522814368620202596051256939188356340934148868833269062776210020372283365371137420002207868136865383590419842947404271124042343480174544334188959893804220086108318257230549019380338904762695932488513990168375787961251173266553422008811701392534508917637848421422822648016959332647156563090819838678155373172723669718325693900182973660360025016847239356962215139118931490953941085230133792248411026056038402415884924783441594454139830666444520595991248827240574696125958040424264204946317477977538534164682034575520639912977223032799087594656704996758270597885346874442326598412174059648480484070561083938916890842561483858877705518176346957383339756147282167536997093280110694876512506456444863021168085697517673204512214961077426240630910451111753636244067502823176032476356326830741244373994153567272878134191164762717119209608155946921511021608930370439944189557734522283853701969590155282613272318423850452523291533511589751192855208594166681874774115388983122778250577266059548198518127139787858322376791885623539876743600329328217468589511240393059630645560799655035808088819104975105634689194720769659978577296999689230296762528336188860989575639903855037614665571769744885398615015916731986242791403542056068296870046664759172517425399141936555318262015329438014180581367488469517020228946778285133328500832751860197667585842197581505701222164787071329523419758044007818870970294793454914506707240984570098061744789266274462325769898048976229048482252363244066688684160041779432980862823215045246594647837235906070158493495069409889441278639859689676127997890339306796905928884762832952262894875462620810412989404279039705742773628542610093538733779139492861308900112770766925934392369185950091504385484393992111006030949058528238123639642015574491446945024252815396046638981986914700769199669090929491546176218000939341121806875849203680613315511201388252222679397745538461038538234365506668821234467761239358278998361356787599801894205166786783672599507807995828203114937274901812831260522427876232217294291979306003135489236899448646539617276768275862325712561535714216253310452110979014109252182959773524901022870218082430679399129412177272290119377290080063665262581071454141260863126882210549116912310137942386931149892276742702042373676278965250774820305271160028419392892941876115744950070935504259528432899243798454767397088030994658020218016109622795319671014136521720433367840494855457947155098421596887277748806729630796817973908309020607757046154104703318254587774773365550864588534280340831990248423121466172018670415001019763197449468246331398679898608938569704880458283453655632137943353237363189986126913538356759746307271402699765157646691538160799653507180469002165475722445926451446671955562222353562701490536125915022019500132543093785459969029392570425418884791766846066959397548295772032893956647833868915204016690072080337857787789806571064523701703697005363365555967254035069999703021732331195810043248453928098949075428442783370763914561606570501786729679755531360982251395867967017360859837353334373457272666821877884706966199089463085844502354606790461701329402479867992418447448249909279404939518822894733721080673883122599440817813167596835971941419406187419045180466423157640791642782208164592988994300333224152177659995735636148532781819831407180348104298474440578935283018830523128649093018660836023088686382194882489314067559387049594770136142772838871387805850506183764596970615056805144879105873781876313291247353098720297583149467563916602247911207088801341354427794185688723114244361751400225281497732059771359728323136004036265853426824390667579751229157308984024795232987393259741144500640778709822207521264657437808235803929954357144824384051443652981233818927752444997347103016659546758186889761863686990471038827419362380703252325905069744077237603108964418757938516327379485054276701356318769135877879499193887825676601590817882112907105027288790127456714007973257458222715735229869295065234839854134470975094554641114097255625159334832074599687006286219756558761372620379190691111387809060713634221251162327519375521441824567243763051697468806497965748029302330904796763385726890973895238536233507949432179000496637863085524367857496434263059789989279415049797719194995864954468126704121217496969678314791089774281645002921118081193686797177702828838527896292087730983442265188050090093068774161394011667357941339297259849240097627083018022590827311763529884966991511081774731780162066939261712535150554351026806278772578683393726762848622995505386227423969756419888458469533349878545898272566678235361363871164714065464664647569824147559071764477635390722530297736550313623377584198976959741749706624405743728019807522438366278098225648444495931040977279556521355657467864363494533345725856965215921891083044507159119540102390616884598424583946483688575597469144061851173784077077847460751903009805607343090712191811804591301588039787781929744150656908210765052873956283707511591541574403082981737385077616482806278194365835853552158678904607710123488905160833519130103932780045171047294972067775955387400718516806583026261736489637489435623540109649720177628785141834843853045894777508021293860030167658622818739224564902161724779167935204033171930425612225402024976126655237724621928458659292967881120147700509752029870736211168557660714564346964832199017252730249856746701501198985721518649785727070069313630231597764697023742047011640478919620807371382387611231828119104876370314084947023416745375577128812915985858908153487764058188036581743161839623914368430950386955753594231235859964110566134463279473710538161690722599048553813154498679438760322265947837754997472254447089421550555941303939050800291891120637639290669544945779149149353114477050609076058563096656681283659021894349573229560363986640562277565357688361602749400907990430537072001666273750026710987897203351533652873515643731294336544490551839534752534098751203538040785383608195988806673123045127444092638171153956947380814645238591931189725923865125820338048929725303380704072501064906296640515507876931412379512540650737147467222476765199268265548130800307224691944710693570181607344323856805354669864131990417371019355065608782222100099168657684476102106737644491919480638714681124524095095089441997667312898968283534378313986014158013049842209827318005636944327780217194152842892717547554144023047786310917252065297842096860672561087260823354182078276439996378824802857671527338556374200683419627846398438132263570837668220101770990112269997642892138797696595327037646604382668307998310903483765621774038783517610818850755664461586098783059733684304738996153732018636839788871858521388930335679655007486280953156120187025001445190680425463075324081074781915021084087060959041127397988925016908242727518569592650650580199942383795221017655567323165057878979110664370032199172996137507600045327589015474952097005676442975173993398329890697963711079986201386605282303514474400403870433641615365973521808534392793341006076499704525701025726635731436725629689896904819872205422580557193805398307917735554133836188780571963552303191391817154366930268568380921854464781015410853788983194464901585574674290579640162741128982489602923327940929286281935952154993997354167009875030498249759089588704871874485130582941206946546211229461499777220875916281014374184683491476714022921753635914908251515031099230453950251144924018053243449394702767397865185553245313750659309764558415254623032956411894863017484895804208415374407963233715442674597103523378412228171135904652848164167382880853577698528152860897460806939782617800382665571031439332102404122754433345606382127168686759986549409496032989594184268430961028229972545297224634564381491395129105207950395364876065220653478941541582302699607188308306145500474294821773142494048501890715433686108202151957475986465453680625135748419119220854703032753596053957759579305265975801700269548470354827483840394881330899579078655119542617616698256865880045030909595259279828376461556179473499586610457786658962844550912913293585111095832120884481214047938611751489192788742520656335197921534020692592353857387603398303207015799322432113354950707027227790092960746244882769029082581517977875492164262188991667862323100338148961039272461774439640750751714070271999213657420262362695707668510755072513493882120518237891030936689080077930197067290573392691494170525840932404741936922700452201391225827256814824386359483571283063936068282982685622923737475098781490557386954087616252274544885363319121281643894432900548762448463520758107590671219604791079203470926311989300909040825430711601713380195066024914377823246754871052724657512134710507381689300555721659261767895551519742611737471616791805528888323616067369442702135397495396970051856330583297788390696028200642081655207941209542383712100204942690069479085677745327148223012327960561495165173420983539005765021456757319451968355237930093834793620227577661288021975099245885113603108418506042671521090106602172980292280522211184319491737595054862731995765008476409187371818330467505700582262898571411281455741950916487762305754518576177600546923453305987269825699146493199465836891775456607931805989694982602200188689134588988513762356329596803268194221190930283112268060325492054229716749579899705312840262602813932150983479317248537969047343910708955844379441549266995984695632288705550285806665120200093409401359547015959896675073076955046316885712347713428388674295875343360760219669112392399573910418138276054267815286350166680640657800910647780415443909239116761404684622610244071278103179055705073904194516055939614956158818550770348256077360346249986971244493152083631631234721659518817972606311483462196791030737580042501211086077545613465555499376978345453635627214374608963261319008828656364182374990839808355258348409012221757549274119536034777946399427257154901489668563636040108833385471386230129341874955546966891473097980440757364190567305048362318162590093470892709833617241903123505278498157484915076907710393446666551759998675083947482277795082305208584332294347988853462333853430366906103565462010715038225848948223253366851082216800230845056964991764866083519112617775189604420616471785527890619374491989026478507684350481437461372735131218811448760335993945476550907930700894725151893209134290711425823364748885131636360510758515137802090259609660949726604122575635785477324518943919645405048624745917858593242730897471339437546859917407147150755389480435822804194999975781581652164494137533379768869133078650150753765368783334651929365110301299757521857544650602975773176157576616828013073235274757194124771931656012582146882264277148210005176952761685750902260587578626940368546479015704650512343109684519041706393533013703994883178739176343250254254426505570735186065312976187627657983504574799636390421018525724988516296290007238263646816607442790765114829357259564801012421329800426472714281768514829209696216513635675172838390816391199107715524304594711738288726828691531911674962623713065925264681266296136176046655485251707057298472946637624653752775498980667963547633668631916214003675035317562519793995777154080572317938390558602769184693887443417943071868074210951710082344426049750165671721932196677313639389988695735396467654402256416897870611232822337997320004887782934210463199242527671689967837160589408925561409517050371113876577524898561282180564309216571053787804761120924781795541848186859889703116363877077489840640770960756886412603337080480404999035323222624764353498092139732955175052523369374875838034452918078194094867803358798604750725918654826551286183684282865943050442165395032051917063995263585904016590902179582715136168712218904853581110646522920317008440954733526378014772225347672405315691886989735390896637742153205454102068643440856031249493323615867356403060914834154001330088611037767527754970753754374445093305522403967231463920458334473059560640522817992899452693481898031302165784944934502074840753834169106666907847826407108749753575463313794207295390151880223419009895602210844219429013293356789678580922157835315833119352159912615457468364999747722308582992724196772980561434295010003271982243378117728511871437297874805193490240746781321662547376685002091766456410907040480860188682106939458160270442702337925469623156470025890203184579688292127523902732224461294567315861660319839079847199289134867524346087706579074735681410136341669723078184869907048033423659150228628335975220141710206281200002235554279876920871058539368665234376181414550104364078783216382877584146794374017990170557046571088236195750607837108494870725732303936788003511862743610263850461151116423814603580953039713396525301749437018329118842215003129971821574803877010131865196654437084085047252211862675698152083547049867754596274263535162317678694763962447583873143690188185543178885441117626139055270170490741228260857991487473098165433071139863651204203598625452785500510893094873225884650715950521347336691507058545446561161113341569193457184277978328452925531702873499289356134703579191135544431579305265793707364072363795404191023078329097061413289061700952904114623616719231617459937641954619100269431672865961924949094966833996468501935971916493180327814472348257890737218436250453966154010959094823759158087346716029815038218097908698272231946180504978879988871665890113708183107781934518452405457226070375502029208228335057051714486932857036990286638924684701359265145418440647514607617869869609998274203252384182314592475834866746957841460867016298893628939281334686751657819401486895570709910271789033461811154840136660753716603433636288880346741936119769547630134345490347622851747527625500112527787957989326769855531404613008175901111003968387651078152574272605750352180415779169562674296043640480724895661241255684590257367051136791128929257929498384821900702264561709362197287623030216979374627817202021725207138631953802225307586191835185745294212908412355816875750357707223174922637396281530486112369004609779291797625559118414688100487358792161173863935632444375552823898621029130005164682897569344312283899983574616182898603565425877373952086164767852635971346225612047402496833198170470479606892168900102539609428502219785722611048343730611765086061500359827316695620823741877940918006798800541523725361494129366088872982994254363868280556004401110230946951930978385707269551738988489070770562724820177475353567357714982593212575489318305617156606212570652950609105663224139279473408723097280166601201188518286355191940691091166861637595285166261882450555632918899936577374970611537834394405715086638412025128859012618757045815881432150510651472460628950723794623413136095479286110912546986756279250726250723729090805131310750829945591499697977322693076071105854532446516889343213750892859833940570140440420132337476924574241423786510291520138806894111291803036843529244807969820293773970987568930862289922832122600762499498807747032995083682451001863939242688389936546386195538366439277685567690597770724638015437994928132852982384916405077518421108697015321587816549263041776052810660008679983108599087404215741890221159111729244362837729280936877505830895668245568964479643369825531903056162615344263734124899672266830004661656537929746813954134057707553387429611321732348451080685023735378486010717457482345216125138684543562162723816022924866560814659651158513203395048998963301359659523829421333994519734678820298278060639069694176020926396900725270021330512061755581469936262298255867953340200222381716327536592949901154280410980794885675046401907936673930802546734524028980376548927094187084275980774926996505564752538935318283584154102493458238629045715152748579658075518087205768256929886152819157202431260470028085887742551617889657294313705433976582765084912767189639422579204878742926240481249609520619209121836475337756510109205367811073852829851192020236443195609701476181120316579068379328525916334845471782760145639216258581610871475040737762593942406432921100614981660663328793206675175299658229936786921258592319290116432834949306854361810591191628911949624721267373101945229508782483769465371029308072639723962769847946262634989467685504080331230638208792931769892694044369566674040163859581247753144529378777449893160711921987031953444546331396682616778927775327297518899565391970811755863231923183701463091292897869378558154898002891682148936759890425928209955539815183984404884668693668498693462654264512079033219750914541025414047089152867734418768500327300531940035847291558660489516945285855002709607974083981627910172807672705894696186076099875930231516749462260059132099981889393796364771944198329980400230468463386867006850498803745468215959909401522480307818932023206938116900206158707555491232529741541948372714050423965761005210572776425167894619440252987084722319236067055499521048675538725153054978780451288090406025204244532429405660808529895810302515781898258121265415074568809898673810775816050974409493106177122572317883469495855291110566571260547780056936876269098907755234364898046811721194381525224907137847019121272962402489083911836899810468705296896255905685481914465598887741046687089578234151107186290018595266325342908632835277791476456381838977710594285217143537635938796287264241103495883030725309234044532295209343354250313168883485362025946212359871038796115015179773651764014352572780945774252906614701454356294739728455137016862146919733611837223171736807121431233855400808920324288117652381485927307477589796426415014374813171710867751694901654983927750908600541687038408256230370916627813209469408700091138482162724845672076319578168571290408615172408425156151218587398414798397649498605111641910815944558339620842929270870635917343504650265308990203956913101651809018128360351907775005152439177957595843271214503115184024422963818954485698919397166203418974157652072293485182166090379080524619434610254341135122261345003224695490012462831811221570346930666464492908106841003293560750447542115326880986344145747505177114839780482144617639406568991301333132031176205193138885271092806016764769827930634123126652949829925508444806965887141038814521086862387962047740338008211048360398356005013418379185449255327435516885638691313961110445669471705657126140334423420387239976491183196520277144681939847449736407110946781094782345676792057886335234890062588900540850249545783138736306005584884604871661164190339668731978051358231017084461161842034969805361131897055286359678077833685438018175265053377780431945256491931670061789501124784020815695881372063688748736372398481906573542344185473514938511040498973106633685338363808681699607251052372987721260848036833308976756198441524456996937544717004123917243312663444114751536466396620833779614105742730203011505422946390704692241716020901012869606737005526541115956665145798180525010451451638011238719144735500287106013705088283289737905720731983692052234943677514692326342843952544211246895634674363664105308683498570345869498534325787343503617520413089633113527030124204682781812151940129646134205546469675739315930096271351657962411405621147021731061918484597402206938336817765831305833654311499527278477813098594177688812067913829265836580400195406370697557462434325078564602561392283716739887279562399960392048150782403157328711019284554368246827131494182542575150399956504540088418623384092477612582847726001852163667583165807386217682884162204904527848901412845965522902774431200130793137770111107608853769983196105262547815315157800121457104842040234058628884199315514594944109277614624383648047972940191497440304777576558949713916195036943028271334416955168674884998190038379007124547289381860700851790462060928268205328303560173440482760634799269654491478548534720812293360217751076668894278780436640595257586920546833943183900163732835897914759951400025113888067422265542032527044007377659524485264353528702719184647139208232262080596207078664449682702350146741115978127696440502123227024133700093904541621167782727433506585428596836825397670945721297154862354242890952147640886409246732214264350225669631136054925473018450534637628709182553525998196711252487432733066278250627637912480094726524595413313144066637980321173491303430211567972157711285784070769448830679319534259628658196458477234908376688501370904679971557545297653752064174181445771458773527588456182199543497708771290182187189428094812869542312048773273175790694351412316152240465768537542940275476838432082724332963192804047799242208134775943787476151795342113144927735753171642033837489178730206640382723512840900542661901792992098760369598789742214163654938605386725430593679108297005238633607825821964606159449681877073601680966974876091524065367347674191271768124357267477851412893917896933107130612559378347611298279773312486756444546316789082710907973334269630162836918670768116221408180081972536049012348506933231638862056443775828196890199271953496906338117676436132496044345233847547333304256038317746763093423269351290184449169983298453560912945658297162303894324493297932564018422649989515325626144041837664487549724515577074281592535399135255905639672091880913207555683623883288195571867778573799978227978037843493956157540244410107100930757745512392273052952323363353899699314377127863437669629337206389188859290969843374406855081840574724176747558879699028424174241675207239119976266161910426926439444848733583784815635616599507154554943365210549917886840712049460341577903615184424432160872829953552016602421725828765184495383978396312951919900348826993982127065001979445157261557200045052661145641030569218679542992337651409090410453497102182654276190985835576287898537702981513070201609006376413718553523062779663655034556961951437898053258619331550225014077781896208772906266940587576882347307340697356442204081244075498229869344791826205375112683986142299035671311041179218547112649911565328713222850375266188613897302145910390845836537054879416041315185323595040545304366348521277852632958992045985751870921403828835298017350508921192146963327779444122314163007068118269122598421534741621285758701990187925327604400010168671488660036575914745310820291761779089436852774863201748345341971841752081856973352203440402120667028650298242673441807186452518165179254971481255018873215563349921475059029326585072045364618595439528380684973926452546848923870732886931914139880573430307589635116293950244007990205336059318102423226615319298788257201389954415657349920250498910889948142154475041622957881370893978174589816138818989982679925919395317404598084236547133457707286854989722284201684089381583683367028871090388676283416543556683956704228186577788986840754588394484936669812027184131331895196771018129134005511058504959466213691719904900284730705256748997681917002508190691222667025255837720628466015952286851373951086652739579587006359766767490038020399731570244618090845316836358353944904846443465809711305481209674301795225694964175302911857049780027474367560371120361297720413855658508020638872728439356061472905458976089541757374570364892568105486832154423409890162072558704337810885460488497917450311141055647272106684512790507039468387006664163383229959187319603129440535524957680775044048118552066970220363185413560551661742893642820116109507845976017045934784518302013415533201725209326568246690343442521336176206601570503734015985519942923308612898505571443094633119212001811585761593665723994143131862661951443123281128015312805332961791168388381229953223311976181971798872367506026870368111299250884203961037953400550719780302862551221107002260095220014172910475546375899453765684257958297135653638618732163189160730622173988928982120840558644538698711496458467792500931556296896947167309450527015932271179201188574833794034004547969413173830745760052417764749514579032300221577496253638749193799025416175909432527735640917045088499187811832165901973355252323566369438805240232005948163112261774790300147561433306839172025552323148053314906671621365012344791881216102185206824897804005356170504659982449720016415824471813678837145838623491388811112756814269048437776441120272538941799654008262335253719344744218424003716977040343640544855157710199083906955728972937566579549935030697639199691199127874907447499405062151487568258270506565973247993848677046691013068513393820202528672729784903026050453491413845316324328507996261752598345306989611004425625341088347386376327001245036176091453820505857615992444865174940130761532854849213776885901322279285997421910530808062076931455264476481063876584862881108357425588740415807542490975956159724657894697295157910787222389229900485910320402123131820932545555412802353878888626241876504168298390843745467374284176124835643198064892512851363104299704088459907749557102436330211991704538050130340598428710842867233003712982270179591881837206039749341496595021050229984312188399742548473672320141857327963822400885688524094502029243271809303333573445268018436913319052177562882547996316951729930845588609127337322909264386406031070584847144369735420718954558591158068561243950839730032807719399698668784599990609816839495477383633143105040864473367324531103794391840470678072074580933218423380804807917252400804229354393908483942448817991770697134187800463251728743521097507246059815651968659345002010050708846820095823574023115852161672316182864030267594987179032115573817070579610652060461097656277898873195499511124931060639269436985796610676451114564769998395026635172469135061256584331332796451305739112361807665455483442857113305918314088126808202771435231183746397099877004961775422997343655140395459147394647452199205648578372206280625906688263851419378445182041489252974944397149515978298326751298746557131753538718017974690584270732270002779331547955650405766582764635505200112457154188586732650864384940019646358727172357914364858461591509835311073370779865097780503771011627308156438938823778842116904012376970385556408060484341660832711480622317004442164162226992232959452222986606604436749901813959141826926134353167887530804385321376591639742665114620319469703288688624435377423925103112228084100035001982820134159701837395978101297722745978460826847020578853380745827194390125224540812849531316394498749681427461778106567101152806396742059070064576771494074460566883204094064198556206204867828882025112328889831944795222753225539882058216143882377675859334360222753883215790284461578550355092995809065258746157033122291449574477655988531905362984854153422303237615666945313826892698873644727347810930115767236337994796497468146374903395145325394036800422615591996324532355776525319384191208907991336890703146594862071673760265626213723555876830998862197726003530693470332707441703929863666370569814874727430418069544578366685460881104208560360862390948057628738397212528844759727303606629147881801582894526499522417467030454119554408078273886435190917921310585787678451800419114414914841458358980685774192401609897767986329149546534717753281492219208313219076128595957562991508723383761953952883179110593067742379422355810323702298797513134768898867971375082217552481306535518116411230065303571234620626568434372513767125430343187689989669360939049386943488224088132169745827600989408932830483058402641219002353774462440927734906963722497923011080272197044671408329821992906010587586475741106136280676116513398444015346574091938677964315976530693510610145818749433430722808026923128245924470652287977736082863356829004660767784477837542231965035532627936495334321007904576875124258342754048946380099003406490628935365444906479787885038588174268364310884692132223416302870485088037009357739010798301657510381464725031762131604383852097724608815873224390231161031791814092536073998196094473587532159778451104261440414866863187756725100459593909792198161979247434287270104252077670119346229818113484409238886726992713337825295769228600347364472613348374891847194271633308828517811335330936468934886878438707513153412116254068070928888399832965308394823839187803043383805287946133891670160683666052114584636816902384991037311174712120330957090565146227772396398811162548314785733579861174251124874305687123560354805509658116132143069595606567819361072354757787965001856140882437936966852882906333273026316123597900367641274733421276576776936878233506135391377614796823343525677981946130871010000231979835489739007831620583936161331282758295554295625818089637426797224943293737284466255486042073073838116820788336780515857993162546953193258990458488859839325000073581413991125234773420360204716978902249634872264033494379303649811573975020943235417096218220693759832423675447434368627676802814078482234108314126712786368280005691280855925651264568032710143322680573075301234624437559552152284160926455118165253292508870432443526547243947665839229680656627973873009220096028193491096376288368033315081246277328218088190105554097467479282898901177486700545829019052612156406037556082183363356542373081691993690795288006205179263960429217813612546350925209995808865287298880859691596007791116846527311443721526986880400883777049029333403861974954932183000036430808283330651377886273163343634274459607237116975487135312486062291497326164690200030486106126625137510773452420017898433426869126768221962545527593672519858350842735595264878897072374319752678466003262091161860132444775609709077556719588476723777703839990491987769617128532208481112502170806762512475192319703619075755131911884812927238658283451968007804212433702732896422295862020754776611138820242583696737544815779629468187367283773866828343695985416090028732252427801791623897225666631839667212553455620235661277670030942618276482926601385249271990475672434109724417231486516856939882964571964142593255936991934336033031015890480569591873796255845243339047228385442187475037914711452852217043203818522309303933438195715900354437198307490417256213342881785509872534678737687469706994336050586283152127056263287031408415506861415137526308283326320711067864377747486782597920101046752805950257558023802545060398208012513695855802391195451011461171106428701757448135321381897444063669671852643996970500678810691683997780461241733338587040932065096970169345559719387915020761631915927746087397198602155491725164680616929259066960920836836762397283599142447301792214732820666730956006795067779083280381639885229756405538638454128654740924539180238578043450219303469912484378927748244692425586077384161158818231214091256466115553724571770065562616116768884711757709186916000833952018351758139572527815776683329266543633371186541466934928113187458529827107627354405249008886967565749497396541616420359565818079383027143994815343146042380206982935584856679838493835259144669621612177002874285260907945482302446885916982832129216947052682038323874779196033009223698656849320481369449369959592668369284754826824712642122637965409755591294086482452849137783386963188725944257656820422507502363864911076602775379916684521564325926620575441787375213184422416083720321273853287161321856942321946247090704267861841193563128889951068771485794692098526876079179702472277073428122058033090108191895083578181750028452785969389388917211435520527081672310407199448265893684436344196584070809616292512612116203557580372168017989925487093298457732376681829067078919254048051133991336177303024342929942798434800932629008307496914610816450541205439385072309022163171515698144725372386748146311275965017569825140671320293203443517619091642913438973191513436880942858084062552983820383358058183891221943476189824136483184963633527447231868490663758662783652326012356857139238215711172763733105011657100700309784962562414804302896081062745644544051270335668421182788157163854124533404823291880450040989842776734103848767264285085462832852588922303058161812218208149857154876675496302515014992284437667239354564182061489185129793659606201887060004181828075963196517802535848923017303434123385087425632953991438922824413217454184611187364304732818891758599771349869919774077886545836131139325563389019459575665681801148840518035828769504547308706246617265722286686196311663463383950550787546134454932536790460182326075444504925230590256482140278260191543981409041749748338756246206225080820960355736508002322477418309829489596907235558320352144656241536839654902464921300112853606554137383156438890862187435482923792522454518023239219572772454853738092335864255023395087654390786494705801671834165079686092086841608899103558195297932958047200062068362856146955427254607847000600981056824226291748146181320217974468436168722198857447219605073124556994831620226072042477518250387974904379541220316108123930669357260515504534848126509774259518660381776467899788282261868939206732592957967109928091789359745162975220793139489613340676555365238833275692499602870537347656111282172996454021832510879231144510497147379692973451480479310436163116863290427606372442984602427346659493471242808201699914126220346884637947422540833436292013751234730290238229474029127332371031226708533384623927262561186609440189449317332317672051260130190608590848299003849048482926694674175834850433896662003258392207517557294128324594424888601337696242501418997307179207704654530521866559920763772841973664239549801198119465761417674473556687355086867133432799820935454621166529167654700740856353949754150767180661132712660044361713742300096635512513902759919959954022319052987806647645532147402363657148343498198444741075783015233753650325728248221799131169404967015288130419529258023962757993265743522665361720465819975616680677807586555845180068690649959212767883736065097605671741817675441780625333750770913520808325603139289312469116278244839341514230568275602787305766289001200207796946030156728561271726037532793116280755806110993735344740746346081776399560610703251431603831937146663630626433973508923977159492637280460180884917784825097696721569915351236405132286062839079024133348293892414460226072345163942576878556343967563180924937157646088063473778925177308166485182575499822917859716503708150309982462669498811348650244747387849132833398360526691600004684813195990379557928883597041298475611043486068425473566326177993485828259090901990782200827504825496211044048762403553504314777133487899005157184044293757877643291557852662671466913442595309014115935975114802191983651049280566614162330761470578377937156894509331161535452683120736758849297224315217833143451936717647160182074790154423758131768222229559694048105501540974764208675877067970108166455247550173662443625400019811158194558500559877936605660696815642545786090864203858844508857743866171849641247933075271088850061764543908862261812134170937165475621402677382497369684082631220880778504385863104959664128822052139900229648824860809587311424873124809702849213061777497738068455882468703396213398187642678844900979941723326112715513132193525793507828216201822204385800548068049110538518651202815130519644794327521154185216549618821242086208442761742318575976938536839139338712613095227840902368524642500201174838734011394292430906620444117692489108407550096424822619458846741854948506152765345398150103217935538401094712940989739786624125529595905005169662453672282184521544392536377924557468230969431030643934743987761328754450552325949868394862432155319097233274270914333714948700597700464335273436433487790859499811531250823845850519046460934283831099089717866851822436441774546024549824367009617136012383425882384706660970000636422209119392334000721761358704055002563464685717342462202479721938405374318321731184838704494218282498464242180220356328498561799735817795242800700022589649243674298906967941478648608387439555031840869227446237637863970469253038945509833301690811391658248110483244294136665490664631371989648478933971959124303062828912077865535557984948637606970101500683144673964358206363321601096517036971454360436139485920747146347587243088511245160133963233734906576507555644302488771568872613758469074996213905728948391527339140237195417279201458137826263669111395529567465856334121297363782271920354154299309283496487883930970139309869791481176304644901457150619342933548089862174678424215422284148374367782754083278641704098401973763238699858987814708295090734597735111747006790636836810281022535424495120696531535737388227405112655074226116469490935664432881810537369673882928587109506348186538582653807017076712586956500549520591340274192207729954719296312440918523306924517304991167597197860746911838027034719378712738650739977996536291770868057297554643760379868655272500375241979376215532325351625435424975229864386927191843260330896221649138227272265296531625424764661675599117565567682831339780151549921763634601144542133987706614706127320662606054204049352796400202003318213949536621239591155727019232992182532089757538594526914418064331493803615644816504379342555651028506402555796007104584680460720158890478956172721277662485958211560839133973165649640533049681581805320096616571623733522154026019845185183507229646591934510894963648662105398919120579953102320674142146866897670247399988358361186127625516654920443665309133104749239703406526613582485628102267214153438749259400628061553384470530380564918783885477338925604543424051582398717054803298468644139520719277187640786727364518004220574820863059766492035196337418895350258966498565838557615906459292240602300643352821259602515743943164146674302363968512050436202372569280542365390283622357309095243925875311346747154712523068215739488903633261234699224645954820695036166893728192303421104503580507174528764868920834943946339754523849393739235199750354610356739189591054190995387743130106697413930719726902624359090392252610920825256905745667461653517726319433356736738974792391246031753332591948386820641544289662506982111929784993999267273352026256270806134577920509470683364692698432969085481912312536963853653490226872422363699504297255586259389509200840262289965725192307059604144291501404990715791786911957878154338255706383588861692390820890812594097146983555518083871162720914044920917327436576467594438250357587029373863348910650186628867498632227671902871124487955561878888690855845831024648721394816954901306240921628593683914330546441794236448113948188715085223318178553972713377004947687846440144661772431256399462523546208608049859888345625145600751651970727329831785568922317928520963057854654244154615503428368924980308284859777472343667918590326569080537431704869628066008422592515522490152696957760892030722806724565050943335337312559358821986126062983822854355347199148688733053127083612878483516336163849720973216995452610446725259843413148697705483195196874539333275570025283228705855065723816614069596534367951479069326005711805356025552502265231523581774668228673328295240094494761838953122258899808057645697545418489532078046234256826338041143015935736744963762363783158864432613420421938467991080278488661330535002470045850947593454809524186372772470825049643184357698502469410269064971370674166647148272808569233088871174242072219521165697776196906106567325380798394405968027108354677362506726725718229612096749194173248962656136128770354510327554996192273836015797456874237540121191725421556196318124977073745743512270397353357627854831313452961573819923559254413210764791685968155094708136774989665899269053873946285170512014694158547302149451331338255961779145509968896912908326644957354871681394056294710657968438986116040015027663672124683794310278321765128697096051960746938377480501274935224831318655149692564581804646555964073066094618994496038801071895073742357079508000012739129964897643446793291892505073723055039477897135168463470537659524878362423573572814434053452522995166829455285729684522626930404033531899749005559015236079289028224031409380996960632303117506541192709432519775585077100848697197359625567423142629437594642766521630299690339466026697121685818958298081288239536038743314602613699131223554651205282567038548008392320483279407476332574615305502175418332817317820560493040756577226808792803390165808032264310880519053427717509227629776760282908490901456509398362398806747492082783400517798162779437982193653011760801377111521744263677166568505307237625288155573452714507298653812418627849928874768346298778039193764431587621310992314306415728347922798331781356166247783893367218849154599896438269608460772597689702568131407683201368654794906963438762856013016992877047870238642562482804249148766914673107057610246932028043375225426571257336544629180010958972062737262529080731335449588213421924194211335811111392172092107853351598854387959665010617964761192910035913081182552883513894449557493883776458989384519964831310822010082390701581558192091313127239383996121673844461709095637873259613191532350573453127215599365594497540779328841852729458730536127737928706363769545546870861347574150668747053875306625075350758036425409367874149821198413473117109555312995485475979856476311043777224228703538896610447685057781144650407976333270002594437220480283604017819523770188088480931210164775079088970313499321222985857451648991686271277738698363513231253004882321359955114910277871098818624911794385770343028288902273484628298877211195191744894529162757784287195578017290080950805985328593057239432912163087315985004024664305052362146367634076227774787181466782322610976767288865849590091524048589846573662472160952027445922366392908330056511780260161380441663910602270807379814030574427492545394724277942396798911162683128892279828817308328051221651341217849224331672493225309992515085942063440036475405733869232911331807813296826299472141276577823538446227637125058079258836115673635034440650685266174408284624411943734560853408000256706731416326949762950398426321132985985355911815053151221435685458518931041136030510293505498297512612429046908240027009858111377785951001579191886597954128861869858269830783351944593812111248747798658358974732496198027490784871458790102205026083979404642144270674475849845955171831512014431366277341364645781245390707951758286797212800696946811376715291020251165063069829549785667851487035074977313894510360501897320409952211594181819105149710728280945239909309146674712869741003360355129267299180606191851299219846287850866914968883354083159531162130512958723784944000469699238152394838327084940446000116758400713622205167919065168425530624583115317037620207188792459090474508157514675847717993647300402909702819844191323499468415138195176113670614949421357919227712796137096198949443708973109342785292343125726975602847572105922338938785553541428167736444347971026934531002742758063536687342674575533761090514786141918680359763922481460921552976341609644011621334677019298061485443917004136221597085751096056339761024096682673469554871458539392220237151734228950546036571686470683088018694324428430155861195308544386454237239879461956786051367383140890051249665422675870268798974814781464007258136164988224573386612199655496276685834877749560545858297071961905842194291229010872083961047137668098771688317472044158821900840584409741547405511757841381155644340146051309886429970865083222757888628132824144812645707694657982881690945865750979468033225811468097998121686342929184345513369456362609488829928013893350064863688897136088172544151849185002221776558537237880677936056989402973467071228692846697419464310264549623803987797186192187960999162726049099777044247060402651950124626995042593157927560551517051852637785705034362296059865866987194042724555870034641112179081457036440660921652357191640646949568430808910287893899424560748958182303018381897070974037905807276205256420126054090083871326813271473247449362716929205194584698781196318351699230734997037778183561783667991652611939416565287910737272551038662820945968376072864786258941387432633997126911007943254184116901257990316980751570003483562055425289998776959351162778505363138881587631507375956071479908001488128153539877292810273602401867786691900540439509422934211642869281508814486134990456051038527824028380995157799046760771242670378562991030274239934068274945252551111699132733285256236428586486290098451373586192124259971235153776481516019717434911891818431039452473446483095669934584835086341561958180900726719809666626634305139462721109065290083203860541398824991874877614237533906911121032644271364663240052664606663078338045566533431476076263365144962077316965141012947623629275587539675848542960612940000457162731499926526743360848139777634771497405703323368953766820571796671953678697695599443737359036651990927433614743808005199960783049679148235278417178642548398195449682304460348723282642448804752894550386236717813713085301756618505166113193335027356709635633145663972487856721830885354130696376927326405471841269998606899833872252425267230657099574025368614422415766764764979313295929679014329912535360284818278949575929228186506035352619627888018055704983324395026103733613003112754306018219551010327470889934181755419756467474022576929266972325161111068932469302927616521541534493476078590460842433700092055799672357340538821972416675152029577096936501002581603634697699178927588212691715689828869085040554985086550660113012699507695108248810062815392688135794372077120743296822697045168164819400529392234591779003834328916173342566478054038762573216048872502632413812282199445414248238447380039282456446496559897533757905147206648762197582428758147287164184703431062724694364705090049250890218736704749041935147552806053848533422993621455318224810374790139604289278820557217865011637474223052668427046297282135112196967751835339253191110647642987307006545668904202364293812921192549751299925298575117572597511611570170545122577413968798630620738363379353315070699039214198183672774604324852624455332600375225938528592016083624018542167124019964537615638519485966604313499654452046746192943048548616986987755522875303630303615496953514544937421280841863683795578459068504374888822818463712953490330610607974092043136486633847402018122089365766962379670323000334210154111934930428488876567310349199692809667001303581192785226554599232589490337788424423249172266799672960370115220453377806395785025703155294216908198477652278588519486527680045713061996917759239096306153382696632514284175608539967443318013648948565527741488890673139297744268008354598534144472117913841267283849627820267510789860450626020130418797056763265644888878730402615886874190736830040820549235676761938910866738222963467242703017772278160250389918076392230634049090684185029768033785697065479411373069785158141136079206579432009926545452096439974253529033188545578318653488962166865764863993604784360169103425693022185782511454753494137251419540385857537209983316196142323274244477719963204314367289130046440280468800109269086626420357023562872943227680481107379957233504037490121174724080451592872206220856321086306672827817472843590434721263647098493075017840829882764357709749401150838569364876491441045187332502140758178080975773574396582670463661384058570076516861111893081127329657750401613916105448138617206683637744784644428930709196668460168628588043451510312375974472189131967810395883010702039761345271571162127380694766995659528390854547296074185899002154250124003920024592747222540186532501759940036837315831791705023135113894900177426910263480508158404568370188285176637324489937001478109669474138017254457115696223810234547061284714823013931979696260671722366403839742567172391669062856077121362264840356964953032781765510308541484483727945790098591346325778922268321204922816142142845308833871779694368674875918424569953698192291094921294676374408980992866897987882475085478802911340014892824330787618027648472773911492943086258023120732184560888423597704858890336896184234338695449321822684112192677739531654570698685863891260888031805848138014575536458444275469299330048824507308959572691527761923848962169299792355828838546015982124687623605951596758107562208877470892226486041094906826328135678837150220566876179635194060751276449440068272261425054623093943896181851268165680990571596574477022656731298953530327416573460466217690837435485436972323620451240365331715645430554945852870200259049625598957805639596363317580509972213463860327495970780636341786235813606195803351832718010188821053310608952109581630883794505093107300708717806374932062164002046487262011406498430444162992464525960189109954854174357971316057226599567607570087743369216195001095985344465343883414588703894465248867031173352949231356553586643955703248608324269326070424407435369139857170643026461396726330758718513872401968737991673767354276473517253569496619144983897692127052400619550597658579257791085362666421105006306852703197919709193226290068369445786848430616983242275498984138465062883168295173019143166243261622021170930194964282605067026709551815309898581937688124235359567942066628645964769213845887986465308907435004848919669162536852118598871182378571349799981208503242111639481978118460991951128146459818308718879602403006426141209809862943996819991599126406573493586120315826469649749172501036964730967007515140762823110162551931555378497522173686380639953052444495092106196762931156497978017882031682597015218742139626264771811976216802450794112389828298877676226746782421623948906683936729212753316574412348689443269118710946365556319635802533834863593938465805661498735002987522989183386970275407214014634464014380611199102585238721290803283408807115106875993388106914043439554517145018651996492865885396890141147256035377892453188816834739329137332925526091140023586067135241680403116898556487218937180473268579495129214077480811805611615992930002515452847217453460883432475163639101921970018623261233310105454888263366764838906859350740120009203935778998495024117614245292541267229784774119024391623126379314157765718780702960715384071596684394337304061696601025739680333544007803393542547266393859700875072670938043473876390579472939865312813735189898262506904907892489775433041840888780843261188652997608705903931261781011919095455293526801719499369079268533102211486967851416355370207844978066380993639478293610142107032903958448398227793287491443955346140055034716145447230167929482889551095938223237912965772338686425879987355213910105931489315817010801349909231314792191900250400109245730220607507860030595473468240358631112222405986900061211377358489798194839866794823228885298654264169294198734930750697622253376320154323823569368945220845392032489792946792665051569139269784994106821195374819814731404971563188712519256337605373547812630477809833862065036020456013908969598547259695195068097827379021401774877566775811819078284125763754285673646999531061124207955518255029281898494116256506194763789841268745644973380249247223710091098111789397380529277879013237838823713901548910650466897302579541086497095602179143107080873450767147857773742653580402163243413420828300279744903114438580063796010268600190463105136870542279823628735559391850254576736944505810937850377175436713655382605419983645653097084252420523915751933622328797985860438264421648967891839404321517281844891342051590148633028983180301135211237984224321715447376792359370700955288220157138044003289151221647443158470052870743964209732345080776068491798500169486013940058240189128529143412822282654990744081820662691980848658934865428301221517622951095407911189456748832948958090748947308047186235844022671639361210780604137381451398656821846777822933894422099902849341930485001706183626417982959675582565031712499349433622380823330004145199384544867557420501022519526250085420390262175525358415228225820385955727006395687239624625342375837863660021657268328650513939549609452809842047022053885642779787310117588316256960795536492325808203826354449635505533839467029649466181115589792257270504478034796837580003353597405266632860853321719746860994051943848688771323998245426703313901116178399381919125805780113995032659108030351360365264257677846281810755014277484573613781454710141713172849989803191218089934279020348110588268020053601439952968178053829867956358944889425624179953675414573149826245401155984414632327892712611121157367442920757934133967831484018069804338236134796635399620190045675923227111972798803000434007290511762654788841697572841429011433412014454092956922520016156783908501503064565343671703627136558330910561525097137686395793013835785309707683283822334338051037194387013598783309309547222918342002091731560377436317511806435336605867918416714206384175738449783259680945471817039974637717288084945174921278968188521065629307285690529494865567579415393921523169683375476962758717513048357823773059423576728511732311715008288585378525143580290523414177045718927445972285887745794096415174424735113202580000867312034746633212468012671055512206698053338490414999083785104266070480744917658130731596247119140181305595191013779567771169000679690395341650437055964242179398502036466585781902619313257291738406228088706599000594126596152535380760525823499517726137589880406543633885300816764516476594172522103103029432886141624484733861966426193276994563465189201978806147293881894127259185670826169006491602811038504109410022502567104410339386068667940821419863141802186630645099400208811110652344176605782334912159073225931402626124100190956095857472907517802827625853004540484923998366057556303140041781010518161286186621899655015632448788588152269274145744251724315339849992051751105282729976730114699145807520438814583935358281583123393832688735937289483306713627960294325213266919326761279477175352099543150782692234616792896720523932323920460543630025318648331015197298586591254179152479264171014165639077194692084172080383380959760820263886363779839875061441063213174318537012492068874579056317171657775545488242369247068487934965955053813989672953123301202311630284553990979560967646788345082866770341934296766777029497623438810336075011304472343651783572278191216176087726767555929046431708484400266873779384921317921491343476865868417226348065681502589006894832809749352177687772970303453757805824972521809200905333860641965004606381264380736337483265759793969993286789414059945907674644905993677472936153498621710059775307588287182274741343250120086557746989209975300172678493188754745605234916017153005492003976080108956881905500046202127625416533554577673065821547222538855123497321090675575584807092645922449969400090018801516346463858693535271963338180797693890355753267170007582995829885988732587129926915428509729317730439736478654404727370214474940948667132974365414802905780096663842531245884044653503748695066604529780752924256874050195100318084400127036875911000647135912497695262049421213005315882899398231257078953790531167866498202730448317229330386969158316690042800062908295758120604529661326061638763085699364611835296862921691372303085209941011989532090744542428694499498497432674789295615700932628364640368002563467650320504870666295690268356332803129138371035647800615108949519281619780102193258697722812419191134415405839670912006760513521186387720957974918912564349736893887423997857188312944211950272438075706042057328812625933021936837638958397460196060406699780491383451786635929409473294582281933613002203552574912923506038783127967781396299788646738943556383429969647474937954203679947179877818780269239095634262549953644351634721576244702555987638109584239663463037550150434482122859612593374865693959866564304446593389621020716309933459930517074457724672406282309462758268682424437348207737368014191687336129182307483674669782269305699005234824688671080606957386000641694896428866990178621631898000693136470856732992778562223452931479465168389066729473037263841226294949120687258339747316524162309737936181668968019644758753505868040114021414038253961352384292771929326251059724537534362439812867229567416409445925780574124183073257369427484390805577403920468905374542698265366702863328688162435012982719968630554670768904812765401695325018571657895175239773661134811198915087926006354554796644335674286140801262726806290078272321862004395444598864282048775454890788569351871963557684721913109343721996054765008306477910546510612621463306482833110884407317375740617143032286854427511321168611323950887978027487750681551881418108597437726891974137282527171645292996842833767427034133737847089801922761617571226386065442328260679165815488984117087249432336335981356371729986675234246208665167669356320426076693270832207776612810994886040637868341180828874896060416110394122215631342257388452944226307043879583846084845080372597148348034906574257291201981665173768275315235352758174854969034172215220690856998925121015245981398035378726113840676762940609659272680351162395209786058484240706420191063754167513740603048475588567974325900530713218968657482151761245309874948279279231698246934781342630915938858477809860091237285570491209063288652320372759487475763692099155944982813346427489250702105582648980003984004815171519283790595815145023779422939617618470467091663354366728956388798031375110201194899674036170417525692896420052209133724335207246052929632469685394536759934975483362889027127509628138432453130876269354970822966930995706116222114321199122510707791662949480858562947525198878517906059986222444185758963493985451398778893625747616750853706304381872050063468601997156525543308045544960351477470582495331935894286108123894936858395952845904419737585082273879049165545684022760784875894246829248198279813742503574357556208012530806620976172349925187070991768370909547359526764319475599678548100713504289730206211298298712745936141928180808718448985377768774369622388886102003294754084215512995564766155730337871940588809933137500987419398976022730825922510772339859065282827729347437582316201305330324632221632127944072364773735354901580048832726671677682290281353941220192038727816675830479008850687062788006652925089797020464549665866706996525283774714879395950630235351354787287756539868189800872355655302249620014339984845354497566125644092688709518143032021028299923846447276189760302365589310410137867088144714629708925768212201356657684495161788590764261302672337741838843839127118803845080532141029552652661376105832016406502694390696733315841582025539007766849529852150501069817999515608039308107627380071639942861264290385910115438237183290209602995352893245139693931710716078953064459710213754498401835849626891096483615909619260800468622847279772615060360125470016796034804267450633905778541501854264133129836059877778835496144033479069367405510487826181739795888930809782323830517896703815115988515281137664129548237887588447236293790610288885735383767929412323298571877229184003287872134300716389268409027827109365841897659147581833792749573316161385536879068820134555594710998225408951835926187526005551964513801122283061251381586230518270343592370782597675104434456412103905492243588077921867052769685709438432724432752613682839473699812319998246935221511155626427295002142674657860949203191542027563137242210178164197147802996117782845922263399566423038197263624563478187848898782023607869114446478203901095026059424182846896087363638823073931854793922077664742573546728995424829622495742943502112436026021366599706274865457054937372514023006121041321308272947418850401836159793419764598264515423111608594094606387832627577473648603497563246152207214524759455516851397105252209503408365264463587553737832494888028535672748826433004302095912162137904080159543962421224041471816111198028793806555433765512811159005281205539836236712422460048270888255612606124739043879485318647232182472859771625019000573993851968225867682509729069100918066852065907815077142245057839164638137383211124130281026955000752718891176742264278608708772335417973270317225112200758027689296313363231407099576189260349571589781965464472438406154968697565343361232336376439408559653157430403142204639339344021318276552142639642268231415617018808660632658501505211836329758892974747644291923231633026445656368641580511632086375657715125205220924295819031486329531155365454692068172469848119132382900499767543061196840347609859949064309212825267043393677414628688761452305392601101892336455570858582148761258040730557936156989173371759030128472684428019479147336472830882686173383998998368919189976460026067172294226296542842453030793266983288277134402940310732984058298800680296607510704735089108410619695676974467405509233079153547350249033685594851336036725720665846211116939777954209351668469021841693282152693769546920376006349068985804638975553488686200624968530079221288455921342095846187229024715751534683383988089361782580085763806056013670438824449288797181802073604203903625706315612291114989823783334425909496844540170735774810501303127604951417604510066909010202043835517177044126601048615479852898215673342736028026937287195194709283762105552390671372982626872265901826247735336334595191432689508263587443207198860378747025232946301208543564023224957857850824837602819495812529345288581000293992477016287282125227707106246636280416020417372987324973735272256722481414184827195153132349580606012404155806041501307767732170319127049794020024649632918718215041457114284160426302096266717596308417987429798372821300594851428190573331521946152285107769827687147426331069029535883998626351103574993205413189007817179374470239224244069530336333913641987070447035381299859651306715112971355786681029174538987525263996762905599504701589286839211397074640620880153231217714774755249554395121558329327859612784950575743872619661601345741961949331308127675320832783623871379137189088662323075852373340845356174264647093481958989032310056337918291989630132508456005451726619354591368179416442808031769447705361391839856138278156722263166569245936142742360739033589968898144695278875710399877128043903910092940542355928624719953111421618358579702443920335496426711920330865826522422947099519291165498690356323852029069565375556133791437181556444060401558122324437565804496914951726105451827412149811358260018952054030831945313790534996695473286438806560620985397161133885580817874483618647487954296510910922356605212674365559224100672455858632333973521174586435547037228472624173068945181849009972197571498606798675273056452796484758232068227577879955146531794163837815738588252755531677413472858396814690320764244207918117343021339154316590613234014148847198730160024900633376454057024701036321697028163252035959070004829562093820350821216736022699304774030254293696160092936238844692063582500871324926756300490067706259972830054534151331575014869537251907310067370957327188635849255795344053091153371619746050369709404158563517400366857454121450327481137209939269970246360837007601954683544118435357593145384098433541637032700470022175913694921076196151690980189194727027971484300713014675076263821428760037509072224925855239991683178458663775923610248495636243620162178016026770283258720790633694817834518309204514085669711456442405178775405561851875603663590197140697303020536989679547660409325952899339112848312814597168197773456411308508246210966445313306749865637866879990594877446088779178872251745436994300887048622163929047253550717156067587139541647097878908453593801687877089075769363543438093554728493871367403478091807516110926798547813942366649122262930603181063617701380926014905476704507420304446561636987870995559823610456784322506459572300956443284673829590633018738850240995221886563276281812037062737706312500550802761469180285776977388129970070652752863969289725003350587412792035086037447542318362729071783582636536205316747697894053260244870816725206340655748587447422320272231042449307207482971901737095009788109220589545071492932037151716323604665755761506877331229290739441971114558058418715410340316036318248485265517838658432665124503814317028578019546378045691344652333170160217000538384812939894620703148586393294497078974998964415654574648538454911397522920254038840038368202834577407171773325647868477353690503794697708812986484192350382884962075486698336355878338322622248027072677960639735109693848963204975283487594979465042429384412474652311462723814276842744490900919085506846754812838382567362331694980754106659459204047685282647826773614856321077855088817457693584719668998489669963576397653927390190395459301919579209798579337134566668315027415593783165865109738776940977379011825538331543804292388253373539103482245889996257930589954465505275616356915721686782835024227099288963834152466512489373837809953961314748573734421415341112490420250857336510520001716363919672447093356376318233391848881394336543025925644612721657901693213958524809925502649342506746824639748503125387973152244884447632567573576973450174032081108622557875984235104662827014532840218494388679597014424494696957763769869052968841632003873018543677166002287988370548727115061741851417857012660377173622127985889022146525204495409726604146204594534564768797786223263024270787116631098372772795935648355390893573369612670474715282452327625815683900583141854517700437682974201509828649424773140650412132969915909457383160526526553258099355836435633908484130941257285241328676686116646063985717626428314454139555054340382714839539273701419818261600431151934971367096454221069795706484651257429835336752626827907564714967094935425711804752542727787687512155610183443146327598022682745327410034243755931863824993909764586971318168964341254352507493069873361840275267377336895530197555911652714462198794493259603336060953002914523423193930827628049526282496968172449153770239065706167513220047100353479072368649074694248304421679540637892276158928219619556337916090223566629000149698197641088410310533332028212085916882548596893626530483929819048287882681320186756361567323813316587308313760006111523547695376738935964919452217964677409907344819787974873610687163384826498858607394943575846181879261988176678256967459259554495673141366146099943712255773994713159896933514808114297790124486439660499955562266113785402889585045662209950201014621512634644184586736899724686501102436843345745177217504195530713696283445871368864473719936862143740923134478573894781103098551046456731141556189500939865296066950220013355110557464440197284728581112492936103543791756301595089684952912539160927591144124018854395905953972898954347416534673151869631620119741645038756819871544561137061339685534231049322383605815648834586252598345634131485946549152364751786864969269455153569076129649213914944624114616696713429522140657332232236023764688826341892861444727782253057026929313168457771358780448990730528953392031894504531341567670063440193191330809884247178109173201201625875884494004011555478877078108033797436765214078450159466548302066228814019935907699200368085298775361672267052904969144214707725252077501449107747909441712550970198158353027857757785945706996579674866984582525200328235076677209196317666151155869000331671989980848487679844873013243913032587279710526357517083081210970093688260978593019028047755051468147744820815708141330554214285427021480881942456356207828078008657587130381890661968838406574567589625947235170219524693247160293868188632178319086359760013612013121412942263036271687194447453752031568115393905229347384174000912426038836300220170778130610430373937185855034867492083744360891460069166892566247552725832821124116262100638982601256497773654192518569338370944917112651435047961548833338224084278077912106492216049706646378810882995266117315379957633362851757076546855752932009289601470498550912491126251402067799047154818865715173785244736272616625081670445627779207961423235241065576349365886869330794492751783928057247134953275836743218973674759887308087901094075863189595131573151121734079496995981815092737778635484392679627000700639644172269081109244330988721486081853713070213850372014558691226871605393967537388408476271132378279111400423922371397640361803492724357248258691595958791963868146874921536467672338087933043775118786665549071466874159503728528934425656556301953090029939099190588304047863140588618549204556803435349797256324349891588973042817299446399857373048870175111593600840031393868944053009435760474567258337057714156799042812829360850045906348080612578137815672308334339746534590755342680918585430267187716924137267309708322944872828975212675311947368253578700270740166335848098061313394200268775514892966766882543704995740551159531202975020092747998948744515905655929411253430133917060276817980764676395323439525522709062758692993585785843201395728275987466193705770229971141274082276819976183965164538553608427981236848353910669782689377916595048836732788764254385832650176971325546200338805380753254054172702090241881687813187937271367019200012643512795189445034076029337586301150251957284102487289780635446335954074834531559008825220711902033546287951596878947442862428330351406275214082572912971367049222759273780493508294524072521370469837707307112554873930901162473203208627667580442162650396856854529300495323250272207721317680402449112372567938808204073677627716987972676087417731041741468137322524826627496908653773342371502477910354626472913587771384370329930172816738637727449712384941755026577038955297942863917538315699693871897292543277124862011284370834263680361876182398017709128975118869066864235663973683213348087948927973095400006616843523845000645366855124277062477932309946425626392194195485257880533733549124030762552392813028791435315569034297900665294687934528479538659938921562315385291248895962053420414048315374821784863639714673452904107078385374816852928514505231351924344586610188849303042000972949532600843687262812104135727558385216482789993645639767361268989273085230946278077605007027313138145933785228266236362746070217394654362481918723927134652735299911224287005630352994948720068796353998396354742956665718295990956642580263775665031624733414415060625488675937389236128932430716690594515480566711882175033542700578624476759538377169164253892387491051896346376322767441585893985280360736502299322296026836428245534936688466329865124516969817359298281978104598981027908551013556292776637523572124423489526118759677564699167925860555496306705226622525694841718629365332617349445126679563286895212113071727041107105926314899954228685195259117464138849616704901814448581424856923712876469163835332951963069565101823334049629633713110719712800454667225491310507565394053777769962768224511067449559806161574507465798194647242454261756912949383902846606144556017540186663172344396990146679034381251022047482641018917233978468100165389950882161414599440645234196726953203490688543127943490719110435369535383428902384439292963443740724993009308203898702716873252304040880187035396689478182228896644312620290576293749090335747832949024484970897573393041500393203069369635789370305955711009065065764741914284718253734757259893372915299519836976896936459239061453659203631150227745741019698004478495140398095165613801396854929490210589915460645846260185816566984526035708180721502525004124562568734521378029857238657807598747816519083494715531070031099208074553488328505763558446453148748995084116495420255235527785252244602159349745543991810970416949582578236730082385408797017139901303617609317333513618183185223542929304604322341277869671975035900874877669146900471658197324109266725300923319326745332300709185225044243695144690473481865784181081750224259111762338544910754511918469541615993671923407087277826615224162270656497831850979234237793428657559265518555629869527225067152501941552554816056414346046574728873669285271146831193869622989541907718273345490910458089453402922253052590436363012839852815777297330175336708929578975672793530858065964108800013447873856823467968690912578931261938406855234470500131012956817200890082404625280353205013957008655766411469812712834619869053489018860262549672330591973460570872525530083835730535805199723768733122423666712082052170723020038835281718393897305812798329545437514165805959901988322080094012897597337915079391709335362374488138441575513728429321725075239576968693436174536738661539572844265282992762700674991556954437478185967917949940892718572397255713420776948421497044754398236988424965416134037511409298314624984899683845503031918818306438550101654438923478444240360064895225745875174886022933665678852334301828758006467804771965295456337481474268816590619929948093177304773146295798709870595570094721313682636934085556469614960878033326617744218746744864722004929716271217316035090932660497463982113748553864726769615031122509530106583715401019181840821176423349795304886749078336724292336329720086554742753391922512361942859015852590499369143249422636346260612177654772401635224535671129188361881987762279294265575872503308410109474841810795290186043532434426785057612125602022182981285979094460258010331264128182409639223938033637960569814361400847106453838656187011754300309119128907062849830072063735866100134275880319821258854616568970102509225124271830527778281355615011941717725215274783755038854244267815371192391818233755415960393212887927395963855393146377968206052026961061891574647124043053817399403116493612340026211169813643604994380608537574649281618235523661973273656135439482719081887049643580838667647251932440515793992791867704660729285292008535656309126193565972817262691496757082466149070959126411688135564344747958574678112838118839344144634768315326527571708941865931095953461706743382034265985128647384320500664103908454286975014119288921105946968492526702439476672443173805722037502526945487421498262314071951665454580148588125419399480499941477641365045177750380486130707267697541775092598786460351359438031737599532610751004518338623686438787357287949002204590900453511519641092089551618568911687711476147234440930166410727195642329797991310177744299421262101180771625541957767311928849158822368338864575057493476447383597545200746881052791835372349526576590539749695245384339261688402378978084334124380389799649462218498323980928872224968981232948285247183756798146375216516321413819407936655896870081614103412738727763602446174096970820605755218118741072085392225436267816522408300585713486914596206809438972865256293281642118120112451332830522643699793715985690799721681616401247156950356353917686936411653025254129955926981306060259463795923724114715494117293476390157120600224763752136741073017268203035421658690278845846144974949810698710694394984130660413838305598028188962845139793393506785042425303581322669043092167953853098473795920048232687117778116242193708590092078902300532262684554995685494948921705039944972175884453198164274895794624547621177431892337263395393576286691246104277880929949151247282559611892593029276300081185226257616697602296925803794239120895303481516996036141353635107181724110082272046147759814304332808240161453117695159702058189641035789923678136053338483141926497376329538853396720790811571775383061478505978065838595253292572716084428114911137161644489109107334901868234684259620911952334701000915017918032621573483074980621060515131902465234068513410138964158183042419707805355087830427634326134632109930025655234471734873993426400358436405221443442952653431707953421324175674671165909950882363959050491697518030906827174444260648969684098533213554084337011495569061441341012099701398778791982252850370733450810023466320913610866963001451905318989943149159572051959880740591934652365997529794542680714398975837356274509601894622153116699211597686794518383928821117884841323118314718630877939369096376565824726124267527904320945333469114072358084416744256946300594297178720677746928074297041332109348006498776463755742488593716032105176602189185908440764870697998871162561006099534366432446678421694754315143726174213975435691961260125615081388434871931668636432966680637079647229414588855832514304563651758291594846014206144548741949787658773194866340860775225809094053401755877358481768042058373073912722723819023734140633912670542734440880289126053257696868352487853527010949661051062919101325486890638961803662238494842346831853897868114970991111079157034812620044119830320739406508490389252484100273875892971851814068274689159218595221363586686163656784258186120790580178427117392116531199514258206801871358531811032328962575368086379389206804504192242514533532998679419810392096623769121342328003556305937205521297083066799033525848482737693160670523913097488339231402386942462444360469229752806627092703966461620849252548252834313591129337157178888154813836546304891458228649137851813692447973079745960699237398236613674926741375485043249524393728184730657326786950365333445599596235389656938343059320164802486713722707952508329422021017237288434730431526899971371562130502417817212743170232422878433774139586929478898997513494057188558389304140033187727135581291540881528374322706292808920922093677078784438918140446166483045417279798167286577953225921397510854724359104337610805421470656675845778401741910387403356500426233856515544943276376026163875679000703001435679189655243399090232339845921963694087563749917994334801210064504534217500572533760273256963496689661284204047719848301392043033587383713498014161837049309407613025230947866117193623820657964519792963333479604724267625020102782595551222330409657853483841171978376752847430903436464814996548056946236963156143308392552859073721054946069891061520828472217588103679209788281681874153518427966380425004219559017067055879490399844448743998308586103928299544056025125877651699170975770506264888039714171870592369175951062133921166406710293371564663652857037161198282875292875166657948589395130484483400556974193220784109872816088128242173522026765899760370406665736824171282862749192543634173320261654905306624109366368113252858638084908597903814038437970295756029456874414512144979206443170836823599732668760867166331182929574989301128089335348994839564143476933483760326548025713464041610245767711489051262586135412979503948413406287312380634731902457649920638653064934325108778153038586777044951821557906375165798752854235181205733126071535941701866000131974386609233868029182668940238753421409496763808876864109009218299588086423600795086381678858277012178008725438690706751880903186662124544682335260565380049094463737822384456157774614759507416446148039268778410058302282114592736144439847624770997992515738122171509859801502306178115154823953481279817720764772001578106002375629188237475702431247266853455304853089151662283919459251800139810720286927362285235412953177415810620832115705480703113412259493912261757896470212394641787274594209310372886873913018605262158239430854417821461016762771069399545161723912581161312387418524624661291701433967346312208124286490426297426255990280417012889319061926187995236507674006590300075201700738417003291716621179599308404874237311395642833773618299920019633238705751630463584233586183204187650654268898867200519776660371549017066342743535341132490910516326146644247736725115214914638440881613648038658166131396136181827919856154373936305284441771681202076785464489079164047080738671357762848955629598591823878911035268832410140370243828241454409081602491154491538834592714310889839857101598373556652763636981025178199746008255292495016243737645421724018228983431954430854127200826049244348871957248003765136924704281589162475120952728948751399039660025810756321027379893180191922063988396069301479265321317116005383860260312800494734760553957164185584567579720219902330682740302245358116283184704511097449779986509923788650021794087721369136003264163989460538359339814156672062778543066112019632866615574234702780888512563651114583841038260592694036529139860368282837425929100373825522526679001832448754343412013393905298091114750450314887623449582024981016181612339780070496895853242357267623320988113014467985899715480496004264395551848419940214687664282526731576560907870095070360477989683156053764863185536484058185005231335215577216430253847537682852040707636825854954174469306022664872535602090053070009952138090050155204430050647696073364963855439012912883373550047472887725468064956882266797072918590074985159805462221686294676135549018565563479774417752344605833980278129326285368058925247253584547903390377611346869188345902940249837907057030329629469595740263649239389048949293266379116742911248690939092866852040374515575986555382303054800182253031287750777728299564039000525923841443025113225581891586994333520925505346897208348833679700311576999075038255741786760908964640031445056320630760747435451330472943704183885318940099647176496655810837793000430803171897703977134469397619507393539504788088993516529347512960826024039593891744446632483243436714679282520217125996372609130238451500800261625390239566185497646224333650385756937230339142669400434939480027477263702438974535851574639234598541626360336818560517777815850871448298303192661603857052772098737216774101529433226146232505346693733499922020397604374414645578809688547501998598703855770033133618177799530727705630582413873484341709425480946642270437498102901033409207136966356701901803021240812979720912314555291849974591406586620143717743662471759983715504757866794419759851553923343856837731462562493111354142585327155455547780093132950172883119078132656230191258809047825903363012817918297082407245600093028762062048581369816873901198265918530014649596085406876489466894364444749338580816126265245047296560058068828916390243326897113326778214504398715484934301544279554719637766690210567538085625231692148185197681293676709247636572121799061943247539400979791217231608464371582512093612212614892738341895539648104298837306449345502254226654965975051118501160496534966750131802378469188535139800981599414773885097446296449563699612289307962740729128790199103755516880589746983423464319935222183462302680132777187926690397513890356112155997264650723749236168683972517791141170371585379602322785728261017256339948314356672492123382467336850944723824569714212487209978437680981515274709622870784281699626267251122626305401700366756344996247664426755706254434782614220592692240011449268661545046779972019782031575906600548259283793784636727724575688705513776117519350985935568776109726751618998954455470406490565652026812208218821000229639212688785493665056407761060343405086710137453649707710826880751972355016189011308644587482268737743639106216843009061209471393670249994035088083094465690073942511344005083518266148360571970198915191720093678356840398507272942973335634028365033740903173927430403380618907005001313328961938870768922216608975586258307769553669315169920258063098295079047561095142594637454504655727685541985860324358573781839860599566272744734666392468117134456605930394393803259151036704161654852128417439910654849625585909482595509613112550797942782347820539621575436328587704437138009459950847066950427995704157944130841683424436213343308475481305508409354042335400147738301374925816821302599452307041697441353082378856189262819685443403874148968918952695752111597428180522551394130013099572240149978955558798074496446080078630844051795818055490663470918025019877480695168638660911732812610776862064711019554647021680510491490971423038772399679287277241071878332193714503826711124124108329307887804514374910144190487061666743047469408088559176992150940555518994977924426179898681142206211026397427374085156034329608395467049835451471898880028059262300348455566480579090114321797675405085111196759461523871682337902639404624771648704039021175788470623613438047601951562603261428938343567870798955543482545697654464546264144190942880483110421112321481645962130708511649412357436260484951411392989374413634067213881848699083004270814239430561558155392098663426135472561517059592807621640894640596632317651710971935690755294869724721621939625875533089661015702741739283604718999168190187121274468637019344151476275349190855548067224060480687985710370013526464698074025635465092658781470044615691769307560986745483795146829625209505480439898397653758414387105915565824312792427448108154601627634126142938450672699330858988640219502953374888081864971049468085971693567795294517003721927650119067167078955957403808903227696023734153336138371407473837921185226215506882962087852140913003301697595802054300002557706535869026107523401116264036667242383474423082294580219608368360785630191328531139156586262969632144299228915813763567974328589559912302998163429575474201986118078762169912198596150568359922364491557645803363777562755379509881411545250688626572293592788057772327946972086939160510952423347219668393028971909762532548999726309703545711356424983980267165694824645632523085864563396176370155832512190280958682908510939109744377578768245998226052928143440006119096405891746596337779357503646422800267474205154176485542613803887037203809607213765347740684459033614503618803439210139794014081520028797868800235694082187343357166851690328944811693195982568527991278064955734394083291773667355537423228535913670248917639682792087760857115859135822278878873046032166094094418018267217907326174195348574490501315528938817511838806954129840355623081361854011738592563834979665899031208950715930968540652829072211043517919013330524839614308198680946512937732319169260535146196778692025247062859976730494153409734831089174287456278832402833353851088772971678516511973129379063829411018095016585786611843138279834269657613997997931783720134968737325642514981919331163022980881655868035091102563719478052928627590315293724104563319101605953155959993491463810195333107947867052115307946722425870651629835961131966984861808508136425981264505743211281499081500887142836441447811785276013853245158506535695059128543308137595730937684604927282244362435445840953898793743509227436841333704619413304059870893622150334601293896806584545496994624476676232090991860577989629699829926432288594912808787331610425917038705686031805111936119995206976810538615317156297030137576879003170453139381522779067495696088844244588589520962226412147590168471110805543094970849775431131166556789355677278618714940328984066186672731819359096085981849891319819397482849980805423910521829738657552830542314029295093792217815774650875271132457645831745336112790279543042652115871824360160669811419603613890548821017869763953153388798961315446016494964236471505262715774788727878250821213968834743104245338617973055535458776383806200334399409460693977476934662293343044135413087351870374620263731517438241510719734641820930998492247344406659043986504660350664056739241343723054076923945324424543317381824378958787685902741024014198659756592660725409993598206711229112052714603690151696138517810637219399415102270200430378284626287147278763712351766199777205764249471742416354913697277439918848014652706820055905298920391951208645010826152761952445963822821374309980586858145265560146413715486979256533414380815955658611053441121582018403809199307025059427740593246218540302624079333771148521502199227946713985461717145914574174213013797287909082204086101302648169081218556641490155895634325806371831211515642951419870721419367642340654174294110611836395784647555007345766207435627106448528612311036146407036416908850654223031712142472737551246566668523083538559510689759046428082300611996192884917678814554436106797104636502457300015252413103670275942013160089445511711514879915015521715917635703997155772546994704476337953047742814740817704115969934322071428061079596321299254284014875548013253117827052906466938633343328353602780604312657929201049526502179695335682153230095776107520968819016568913522127682995608670125915079242546704320104449585288917739872439152179845081149447189585793070358405210767001276604548336669834861286874461707428417727590891914062536112846330826828365889009223821152396157359231555043072188628634596070954961373828720984441998917671222906098747531672786756811749238805170137144339926271822375207510653613038384688654257167196557947438281974239048584399331281357708211329210131033359710559664889173941710693918913621353971928254517518132104750385835011653268720789516644473402655669647048553111281732469448573838458919254533127509198875324740457380198427551163334965674153405670677180882176212390838759440947676272230417580697284209092411056839535741411175933092375059969085043823039231038177801685706616649065079901557286613195978788248520353607351238935819700823506621494860162862169780950505241945311119762034062572422804247195269599883324008481790145114205527191691599860685173581046846736651543341760618008587578945391169466233089258717432058063816994754365174903760860463201248104380398547532275975305455978095685902758605997369710245332175933130336638485405710480540459647739997447722465662484651696514062899007128729489100117812495576571115047748551636794613605049173735011161940489410792865304771526108661089685136158540840835719231146613599371757266684155250861527594250386174548596034861709025150804927780425047507292029052870514072180432916857896914783960203218974459230402537009413971742544250799468178392079524853800710447965681531951354688280462826664660481079445618901386917850277491610016140531877702974016256863234436744543480262428281733757708738431866129412859724131629224351499623645358360498429197131621069910942051215136444666554115179248978921824370413321271680615185188643705768397965021844743498186408891395368907586709566887458441513366400662171432913602984294876908125578757311160457865263550093434478722886679392693399203190037412931171497402992434444503687136407818722364546784905163058828905265500917218085931443258878329058407963133225107899464992432443586556498258228812016196317430124436331601837891482213904489278456765307751414430364515089130803617827176108007072229252247755091035515368889645883594776757600031290516373976813738203701998202746258287052056248356227269355649529634845294889416285462334670463827585629276600710968715041198205933761128315226318370862546312561493535247842063928136263384901854920470066654221873227738840937013111815173670810744863702261236550458694466762769821345099532609207806390326665457251911430955937702124173371645867587714044844159438990617169561156035595120434735992316019869540606921599218306847674177218724389602294524807126994991101420771923151674545640926482929651140641098355239879901683178139808652539583523590369155315869761392478170434795246696260204027505752244367369744326663274129340682345396772542012505186355325539891222684752075490690703914636489037598039395824310320356615370234203241182347576043269887955584371212435288630581659684979686340363821329308881418726612050246766228614376299124895829204169197505588752928734659316339728295667822812470156447678399494868308391236230373736962324053355400536913187267484926156166676626643705897578320571783896263704254512811067710775162529022580903466880690407017721125029418145831608525804774501150318602749012066414056141490727721875927307752396140808046741683810135888106436022953376429600363973924043578439251529518000318821534552319739494206552974586287036951769255541874533352407410038777519998202771606484392015841822989663207838309671702258474559397196915819625866880876020758946256333814577765743093624973410308886278498770857445656177457248642960089396736618002097139078779011214708920025134334836680657292168202497979225001315030246880262051099243921432327214955253341156441694286652539800518520146613633325681932242579989538555280225037474716848253438615102934022137619828919812752854294775915223475931899232390609308214221336565378396024690396807646070449637992442794910252204025662523862218620810941822865702101987095399422517985917773742492133098859418475687585871218244025243967642205639207960177774373910306830330972574152616603694409127299508651513780871846098018540927878533011685872760258664162217639420849779531589505264104234267506772694455991912544767426521531553993071581532458058782414208491991020262175930709122874948052653163814825803233519835463530806407354227144659774026095822687313834004232519030054685435815353827153981319103151698356298438548677997409762586239504105040845770831510969846797587143292146423284299082463619442852607049394306577612217655395445147360821702672544065708736889849444427886484398092274259014233859777500939946355198483697956172125171823351647766179757175949031822418146598377866002909337780407479864427819228721555645390394293857447534978872323743655318867694290654941019057857375479976812957501631038974055555613782915869458677346291727089975731271938728878020118376386182060024452644317731561368388822998758663862209498761257684941195941809341642497729773665251074593239130415831620407276307684950390535595322012862043336764842044926018893882507163567911558620046397941616966352223399099884517267558373659359207852595686373094677789450852558457190771373252235950116789476908827225770802200371562198117196385983798254304266061663451806243049662162212654748114974976946873885543655467618336202373311617228131751710302103172383978255040861979095069993591340611522644794158242227932155873722705592960278223689818666798621073562679233699906012404901762419030620034704312671352203387646005873267491486831904142617988207563587527177243067423839318812416121233329303992049704495384708655981237536163911929605903260924089069590063019773711390706095210190471011417836201842007332500428782754133499696103042257529137795806188977842683928482738787716804228207088710979474564835727164583756489747257529918338540231696425281827117208148754911260638904008917459609586019141660188919736512654929945247179079220304982028353338638875094312384093924096765504441179709053409506646726250008156043108242281040308556678055760606448310119560853611193112897122116809429508237743814547770280449222151109766367425594380299671466097735317666093859310410325295950765754318466549425130617493427206402692128788717312534182207398333370068378936496685535072848580700295952679960041187659463204974509982148215412856745420108452452976731880845836615432177269605015193293316009911693949098928604130990376007217326508525129506408084346614122091480921464049871449476519120273751818008614168378351839446141853521265853346425609943546864154444096548927692135779206860351667710174136106221178557554105047553201504095381946520314671839554471176534531307415369913168861715469294299028698389817648462171408814927223713431420619930719307772804739417236546717231544864465396419443227636282403507359570889586234552600115900572480279484200515036442639240583285190947030516600013246919307729359617471342890050803658073291307172025997147719997595916083022223603521035667048967349455382441375007790910020576199447380283697222495885508394767015774256809418195198791017821193974292722422836721978366878626656046838450163204823346033946284069403567873748426250057648566887131533558341575309656855209771399096059894771593129173376685124636933109380308482873071022534539770290073341783656462647671602166988425259990407406831705535383184261335770623716620783594187000907127731992353844713037526691401507011973971622021820185139366445444593364921861492240657660781629368797293571642652214334141735443439592040154440821531516526498232276322049538017122652776198580720172898516157489946695754106885308211382325968700108666398545521771674288727042499743044578572340373314734924712967337656414860214736018192497420683563147615375417211165200342121666642478722808039731086607193940074177264781068100683527337553570522041474507865287338570818780998523059737536192190880869702170499403773610871878190908933203174199110229851077067707243653338865927434062598159378643688361610235709663911271141616766261789515687142116440465155426634057954263108539290105025845126405378874721412792057139914818341636276321469074629219701835061952789305230963739051242819071834598211686865153162277971454888290837794966155493919524487410567113089113651514287703297298964808403588446481259879338803858157121316910658956143814710833143540713800599537094496882503980162846590713116575414246523119020020957819754246691158394410007144077507948591259095325181391728453376683555670731301603381553797018022361125919707006030954462598035459565426277945000226789071518188716820571992728488652680903683307048468605843528416543250441550046116156012318394299779914025984880400387643966459222914238275896622423711760790974121070910580306634923847156745073699715851556001833667890074327336618553728540920718277034870792378149915669145077350654498347982153443006793262530665778551021614088621828600347237280343280591747213101019921778788013764416479150766093426905328547594507954514901527245161888447283252622689040651924407412686479870254293755015172697151119078079060394308976477141022963058857393555184950802976756060955967204515222025024473120209993996927194315067911752263407965067739584696264403432032301144529818938289962278486626351068014466303880797270479248222069271812086514687004154392211558875912094982544195318405950816289164146028609755987616250124528938471261818144267207574728528148407427402387899516563366429693647463411330016669226767326510866074261718873925159765958143454523709255278266298757568936194936512160004557032893582818448428396912277609936486537992204285188475398693515770379993090778362469008636982971899055778320098367495698268174184327624225629201703031088146400133136435525412434524065913837523557082285088781862323316960642301611761573594727884329083597923306292097488919275174373043067130297605099734559717451180008465075422452250162142162376031628112930215845363601324098585228773478824309266477816881321791180530435656880461495320983540287308924357597060008572836856295984407286801039766287207974842727107804261037099370852554828046451905563585235277589389822888120523954148537747466789432212654203820883439214023192354962682641089923771784073580099219773490133579794685770463443195341540140760058299680945871832365289473057641776362454660895108489476206602362369392358294758018374840977392509160181047914966028597796405001997198765160944149387247575083237676998231322778634826829225191096403486030456249188062104942562526740534754189272486815210150542839578467023835234475503241540302457396338638654510841245584486018429547165889759365175216161896528245121105505532714452111706470702539820948739358566276935163062391620712139037417300507916347935620010097977654549927411523979692030650440555888189196504019611752684464127255040366194381523188184318760974937558193635521966751698923855943441228062902067246333871727809815030394052563782117669591050116219504021359935059675043339045591052426892055320434561000502152272094786791795756015819561677784416878799048505978006125866499267663209383592297916083223020680940892484246488480286965609222509697570968525175499691985218761525495642302171248033369312296480559301035887791887078324852727226510433329608787372289933286140731099316876012681460964231371189056917836113269864538796041593253010003861407340732799692503864077003292229833984154396401956623660119112251410908192119253016838387978633153863527696270012891518591085896993603329294107705101011896599929212413466316464104931747594424888455962052379641512743920943611760331626851814824747318248728452015109760570514129609094968448457940957064696008231722403484258929985135363060550234548721364385188367506528837911293571984394363987092399188291871236604146774126708306473864368238758463166331181770561787799194895296481838623257366568997149819013261304988547104279270318547802082552304377846599404823727354236635466548186841978430992039529841951869936913375735621359988683365426414600067756784060133464139471575231946700134789461759963732641753029445350982096027567306515529360933278121419290876877980895088659197770129074196410407707395457850881994475409167036015188663694376705994388771569409415871500026191733318717189811113584422135459778521269209292910980885766661444673452533282836004571453418272622684617213550158740731569667748051339552400803008282827291420977895268355672708084088561228397357408781329330614007708055970807714505852990658736757491479953430302084872060838408195727003428608369746786937156239955572538825717789612113006671269072793377519368043363905096322136023538933993682568210281574781436123320707836360144166212843501299848868242748056242890964208340745454881370847166658156532637793995170337569419757962930724407725808983645480149068384661675961005650116601090601534620165623804726400319282102901358578250486045067669392314147634422756900344907804383841666321135619114324196508299146652745122144702232475484824420450756028969707003837346581363220525897290393916179748152761960734273686986023529332349872765152547064108340773597244710169789815034088377240776709183515108646688771919958383350154733425138688184133309228420460464423840936552925573747545034087272530167589299066183379765710395635648652789525155303744028639795540333826525153105601104321489992083375925511552863318920978758690927126150534059255608111538413851243196904808576532381743556827195337740206238636126146471518744172417219231107324924705953249549183854062091919865355927533448700619504043820363197953043818293016896578844088285413497120638143202558498573611764708231030372757424502877515941274302859438855333985607299488785671477356457191957445965688843847140694430233345004526529901595228264395824601611130118224885877497867218942400879454994904373814168926259748054980534613057363259752187835151544210735149424595934538751403643773759921322623245727849863211878751883766859201093253667736950500185746415468259905002259348756598285182125835187710690893646536020695372531426037839432886347798121215911629381237008800809110595564242644361530204462490088279101149265794355286962004276068217373940460527877066445574563268930425135515862231330715373023165944673007807782541552460633362113457018761265860493865957766578086842911407868977409561203746356810491524411992522917164428923644564531752377884065188013942290348978465576782942649480553998281345103515490473264579326218702085759892809808149637404754180638969944043835327905729386260600582467909449525008831769026739920988403792041319006220227245895082069298103104158040751151209930441002624518810557202640998158129403869090069587072729388692692435684270572017417076391167519240729218645760008109959095733989706440549280612054854981695013304707499549619569284593390835168775487438139503159993810250472560914344747855341478282566917286333373825705446348069077820349310264837193222714842355529020824880217260519498400159143990003072795324119310243715548275680880436239650503039391787595498035472187992264496329321638281209847081530665947583406675326729428953230302564677575009777819978098070111856875964739198512512215014398985892905548772879423169773154706578318059930034489438159255576110780748806791442608787717179572776436463405494202614852103425212196391499926100015312831265085188733365221850337181341946776617700581615168544403023739765248928688830800358088070206471537834721628542295902796644496030184473104505897505627320362437791169698044183549751142504575688691845864656671117809126144011898683364740350393591544900425527686058550852133066636170915035213036988419930180488297546925453874227108655024739667563687799091822909316328309355346380385163714523216111163467717217520907878578210865036000483793874554316415295597624185901885266891218826302001046992951904853116014801960503998430744009815458971626657729084110974588179414448897253465670426303967152326212151754262487335788257791843535382568661014093223923433428974401440253982674815248042715214024938756144068462222513259972046189718091274927088946747746517677912601152845650356475922031435699652456444568560002375533918271206409180702281980751601293185323603429622163587093079470144162140889926284875391781486549687411209360381682548596689595836940112826407844751866142766392513144359740156796663487974977613714910811084056554999951606754002604113149002188149288808593113068945127445135573539220231202179089300227173943361577000892869716241611012666615706848848363397053045230579536154224715435333189548267209606813126028449292643071749003246122013313032944370755208536592604724121865412952274412169160644106764564551791405628396780658849741020562144779369518784598222539438641660461476568509455639006148084365358363592047273960233032502242876555524075797970484923047692301601175905707745047543414132401983612322033435217227692676546189505093068631434441993638262832441338174483644786025681051784463777197217770740913740347347908840209563723808176240328691938240882598474484937611752314287031903637744853855918243363397265917945389502599141127992931048642457539235022640311169233232937963838269153098163389806782812786817420479154036008406995645119290886115098514955690826912303742976830315828020083097723177602873982010336182342003649145096366067412297129871641670668856912241113308745315449871198203522647689973692557594510504233153517423260268544260920927793191878878445350644280762700937134237702078318001177605538472930680265456014357419250857829801652654798642362428583723731593442399446654918022436619498344142633231684862309541627975662039524840541920717317139742381606565253858958486968903669774331700979000363892010512468942475171828905242620076821734458331635334771731607098911480297761425298617156520500231404576468167263157345150064121288338049407440375730320048368311048155321527201797175361046136060986876520610398598001820421582379226076517836404789169953779689463242999466742033744612889004872899895176086627195096213042234905339774740633841216388955009949398517231340151007901339850133227879837018854267634647187991296792602986163285383544475648957675679567908353654817724770694757205440190414044402734884290961741979281556929595530666503709913339163927439170493831378800269318140001280863976152128387086517621085314667094112701623372226979062154174241306196735144770065334271045513506635766584782154895157444847519073687065918685110900473223758522346408435831625669172602210443271462293823250753086945549849668004004384276142114315008174379293803778708213988474556324837776344423518962399520562516930516380379042784190790259353630660773564489251295955431162739593277143334941178482032739509248236046676475423089500531397782751719797762285602124036464702294843246989764215971121948208838079514244198581483213344394694770937582296359586031204087698849120565068193697749711818074566569308492432716529514541876590090844488169267432691659419983042492725853149552756764380198705235816852627072346405317777006264090622583416586770089318710724375327851319136392985254935999030670087923647700031138742491911606428485392597150389605115563653003906331216275949026269974389265666559961915687011175377202567644030702642482838915742869936525220120041787353607008450242277544913703822504044295727280695679212720696228108724614907295526328745480383433930606574091262601250640370442214266647881732816644942455895831781282777636231511478641766947725689583189379281028433342502084805076423037627909796606547081421945146090624914974962316225839734983593961431414586529214773027971344666061220910004657860033409296707043651144624705324420985092895251368993927806510496533089666202661639941989849731310240092763085760087602984827792538650825784735146011782703801061157694234073495701775976446193057448192118265692031037208609612334486937267379989040210577101092898420163071052768879578416078187902406590275569028864568782163852550242134182771991624329213341548944833189464557488523749864697057042646420591578084724469792305288688723132891804795274735444673321782578435719176847470463618097786576742364382085877865309391171039614287043465573116715561152039429559814368348927279252713977586862607174636734689339383872172950102905933370596824418796184655251996961948862801938888129850098483525610981116978334581167584739400445997570368651356863645296780986594855421224394569377078525682243054255859170757819778509006312885762768765233280425344276840350157074079984961314813413104627912992155865333428726547959672477663890723255563711649404821361026014516324852169593370636761719480867387157920830026024654875275123820292337104552832337367697251414201921724374926257180858617250700442994413146907808433893741483965218426068516930252296178347775634057407843066717422655832757107900059029749460279420938833172414155159497734813946601638056431814071043746475864658944937176549158026489938207957944383947659512725611551842286141227685952045659646095290117253703525800953891831936167833170308502619053974027087657479394657035746338994994459529907610220417429587088734665402728006175546316679987230380526818256996176131118902344044496413718076356305312498427245970702188595810609149952404390964155200498619628713406809120422718624193894472435845526769684656981182828020544547687013962672654701643928654621461086753566077092072874885511876409301521951973317026673429485256773520633043067899370690758379628896385305209965924896103021586763852721410568771303114425111574299791023736412040196361773499359383452688948168480502706483720453825011810182759700241461828593691052525160120063770429755121533777336004312475383452688683784098656110158833745336706405545826406785824464330232507680106869292848993568299237555848963138380157781471745479465722973539746945743399905760956242234490719926350254933649898007775315167832584747503713116520385772103832936639793152808747394073017092391485191220138537464927409271815002469782883930859524459586528949797800738834612888410474528567320758133958477109490199557717509745748124267187367561512257928284875141768562716015334068545210675045678291534774846928481895410256300686322198250868834369585881782105162906249344081660278174937156860303479884743862799661807115854226820277825400756931273027537112052059176976080248489542919478340000280199802341137349106982724073945093126804743169188114828550235067945671038407755518674213732816398983418568996890176739050821789078615416783005177302773388368746837727365819245827636305774993795603105771109035478607859758919249683036724713507336103041976562225968250716687236074559730156046824426486510612026659788550802355780034494839748617878292687786974961895303249711118896842095998935670121790441833677253174591383734604407362713985202133922568868789513308320495203052103087395379203965257786012640759985010059939754590879518091942622079510017224432356932222601354295151633855716425916941603380500902561598005088741555451238847736021309464976641322890785233895480436791944143006700298669973288056565555849661641408854433722030857414564965537720317846159801780038730578344676796535244489152548803431760554394409142890935380492904232448965785628976828805772255427836508510671992948839312523531217999404409083469690336027437559476784977797228551809380869575064189353702057549150097235630489517373290883918473629594441708128623798096806137972568750220548107265023522285400787809229757965884832721642979133733814233908109101587523310411044973320689533684235772276384500945100549008777503721038019311264924383889902160696394253285875396911761444825098133469775733147317739376872348359985256896954347452753876156057765276031534966146895686394988525507874775287012894601177142806835609816996964867941699807875798238212362538934517634564117850004708667199103570350951809599417711324871702963641888470585407099294606900594221897901529872930385028763487217657847933058413951486217173396208245436221859726061899714117308380603910702333127847695317282761912475475580882729003881741401492395283624350524601334794501209709082156703946651031420423310161556534547632391544723899065426599655388341605362713137935291806111790425376214093251755066327300201881348202569662435412045315962451441578464286546255244547181697142877394204552335685322134683285954782328659968509109523807691758302241852285389593396441698610216476838619618676730876617350238475717757266048228443022685348892354472592708009839960831583892868644685573853983197734079148182647589927090429325903156176290782498066106361104340607038463583095385200694202509270970520300344414813836425632151273872384559493056717600343198874853207552145422373725505281224103198860379498705335231326697443706533982601371445633490268560504579688834120713883848410868572808437557482620893201188554698458968762409203004404596480275380983904452848342739646092267852913031978037212818660901068668627616050621595127207103791549577798396334941793039379024745441836311168914334323120263330417125938172499304635844192411362388062225795286216403711236827998170165622966204978204885743995433340936600121381869324358715252826463861130657175152076677603950130959937398923306994145348177537925633111007619333715495712427882540540704992091813328279383010819101266181717296827626839641137847963139347193001718251613712609230110508113762207017653543229381096745229155389812253056379411176557708192654770862784393971079736303847618129966253488410224461973027191344122656088634158556172942590161654250065269950030296801212717957241045675234367183941823450394861576464422294187591842586442545470531109580967576974050316495042136433311731569156631940300074057417643979627822610622197944785153751610380869117194916991061202086706783399520135590666395245865294140106423125593635582606069315949002273287670248878756388152172827884668529151820088326510705537906488533158071634304424416787504025645609292887393260718719573293149717692712957688611785211274326113739492225077317187870254973504335400052873556863966570125029354225032803021512468637139404595292756761768374872318184632243097621700985988697708376847732617917667552140785350591730652164475156296509251253658148972266632935179687723679819180830749185845712500438303533988129967000473949310666481840639431844014438126419953722285533442203453476727653114055761280209922800019884053798339040113517258339341975624928712714491858868606143357446095753870042491735892803242506609557847021567940744178687026375611764859963554613301953180154349693512022166900235877226039160745759474281419927513716245650577241464757751432112097526297763635848647193980098381543165543194075478601795971613404229708784569934392321129069859668763187873593835429084722583031869994582433058383822529502382720896137799426822134627958441978193889173212120730739667297398184096090529691837991908382134421952057410010987282210796098489059570846596358568101549326940395252502899006156647162595872013491433632728867265880590119826862561310643575983678617965634143014189910796172882601244086351498723651500221527621844790535396198662931728626523809410444600164283747345869899777539660840628610755462108992560382813788415528597666641047364088450748064230275551083963719684056448221508442088872439102245103762440091518635554353306296937354193730969627346540977150598141004797108048444709734447936026814374504873487938085986346731733404860129036314942603428431022454157275202873600750390117653372617165932923109969611443261404482980316864592274608051931252021077290589192155808118440134760341064586664285308375643859329052807240152444504159398373110146249226956654663743283648774439411108261354175664647848926359135676929409376829875594757651507111631093943182434748335804517342507036841926402614616050394271933661523659419127306405881611233764500010767404362059239732238836428273035136537608664207625050145793493360581351505628271466913677742675189949068855653075176177697571741316095389883980983052928915859544467783445099683930338550982474209644592580597753855111895932658274434582753705198491987495428798536396560554362323361488703382753131438922058185909020634634852228380683146215223776733232541596703193944365602282800125656272308783102912122937041502360594609555747165996922564547854287766694883373248064501269000260485412163783206860921241291072503825195320102065406281253805031997295691725659393705122238027876991066570680853072062513064753743467002620337615392477376160542592077635233888487573392943501388611128455178601698070880550797058395093061874439379162889754703158680920442790171291947332495324985740096033676229214391808372916738211328928231873878309069682002104993404642339500007470915556264438126713731939793148939114340458843351079935628484606401044018064465483533373655670573124064206766086487193796359432952523352445181547187426496943130299730102348432725138845020789038768449958015214471626264694042641410378720975961721238569426540908863049531380303008625753462076338683122508519497999986211357977605399976415407202739670460468280642952141566598414555852896868350053320186516822726300789752732861639110220148010717576813750858675886446851267027203927861075885931925467635583042527555605425049422974740470086820627428738136187998649921459929111762380708898377825608304342185353083658891198721044332772345430796646304410808255902649397158695899187959977593652067532100516581594932495541253655113944984156407731312527570046697681362165491244042768933650726580345248443826210232324285229662706087763223609783524285284462816837832981933076947870147673178750824283297432845287160173379486632740291274033084483925417845592418817380630574769392480235454701506752083265945748465564351860637341429768515958852948948318015374824009637053074711027019845494190028921827237529781999347226758439641383887235505606723327499398664333488487013404590996003318630336602649289470276198358070127579070739576247440839710382623110869595856116869839615141311244921074354834260819023775822845276931176090456501775670151152962912937771413430934653380912694935918036790185414162248567371873792747880750814282107960497078357754252850432087856434482241645166633034046895338598100790659542768571438339508095472722932200023799400525004825141454884514613365051793454163130899063859572853252642749780354907690602706848030293040958639251796784406350984179616512582172514242490136241006327324369029603156253325154933234538251827173907484224587783019932991599744143686606191697942806111461965605471298398672163340870001722706967887453107591724949678954156372026457725934767590104735479638280686239341393970021762052413052464219152266510599302969475962196959301781502364706141468895368830020826417350641997966497021423177943189596310908585321620071280008691835762303317817456530364986035122004745691465597086247478277496146619471720099194940095159740824184070577127607285982085600707503716064117925320475009261429037952625320064370133366194069673414047814039454902008157050121422539139639079502724885421339514361683365895069489391127814439240079161886511560748446904990292462377007461578819972011138460990625586188529326123358360729452580256227810065268447739473039481120426417588780825944513799908755655430806665535957584362772929478227606721134097441259101194684801162839779596058117605449283648893760313249400062869035351986856461493269275475888534846507630637468786634897937492082590630212022453760062512719026147679885505823278592644474422038773883424298485190679975188169889513309959806569497733374791195952413303223599445869293088163665130114810249772916187985662252053314332492590337489042158448834045268899124439279140211960534709538608970745210680437028772186173258241499420808883564328637049474705072170924568487533639531196147504869366607467703603124297086544047150277565045862429170098409448087962756805154852916356202157850161462502326752632795424162044364937544075620855449061654270836092035325127527242835779949958989054332463020126442787320389953342857525191359699142218359840103953671776757351544479417916846192290317356996944285099273416129250961601740282459243251798303792677157991137420056736096649452975914002113153707048113203529479575419254690764422321743388263064949059069651679359850506118587892135349033364855489876954059976664521866107012779494219410003166500375096947332791741284829885354623468519018597617688122462912820203738213753469167273880007353358198162130238163982352648717239366726123712685636502507435128699534237115505430717834410089875718387211442922502378201527020080524885642055052438177217211870491268014188569714578569610486500232383990110985750601152664932937847922582822220613029987304537993829104288686409810458569871650451157000151267146200292239786788176453645971245340233849809788172865408652035636587782079781504501973244963063073159315334800518968545723772590184699322388447726057314476209726374355919385212429555463800779271848460558753792177631959989398481371818044244870620987506330349299919019650880297510134858393936405422873237246789526728126882219608170592876883242718246086545065678007838500952205230664921766149453932266507999759225851755796977271824837793199816122227104583126926380477475493972914199781331334110003915612984822245255402911606120305585244603673255895224396208885894244554231153911290347647343142532228641266917642916450057196237178853623668188399080440785425199129674305682428054837262403129665587550257511530522131486961555577630281646488773439362477532802073634989501071913313927629286530015505828925053801418215890735912696213761251445856137758754924935738909259980781690913967468821366320959517964927542835256188610784467178655177366295341855201477627458744937594325146960180381542300123143427832712760079299009840910342988301648427926502104763755783438933009959341356447614434823646502097356806792444609627936115239554730771558811543428066768696076501186011507530016862065054051661227497665058774438879115402603146181002558011336147342305889407723731719965261639121995049999921381522832123033327219721721082498791811644948440903736160874579315201868436557595205640205392196506843648648088608389444814921584025665263300982368860719524599409194351114560843823695095265324060105519256378157235237366371554483514693172399631249743610753913471967348649636243390596207297581925973448966857993988003617746709941942377618869493289470068262089351759883527102982051327735200004531325992695573340203565854411499776487849115522300998705770478162936536614808795516519316100861245725395115636466941620077505241898241553044017317034919419074683341879842720484580110345102112355323609074027165346255025178190629282927054096684762030312492892382572543855569492964225530400998961907089828809799530835604196664742620832730310437294638046034680954675528969959677583014823679872793096870381102222179598583424019871219710483916579764233240644352580368893934428838425543302845150572295358023474457666584887630632569418005707025738667125320094709783981794029647631039879750742917676883477671844192287831642717285705249143137849544180634901463316128017037204501328091135289693442289343208374570992814861771157405187891944423348183869588757453478616931850886934181279023637397998399589187234768579509979168121337773333705816149693602786821070540488619402471287578780949701843896820240787933666983761739809348654281192981221435504411836123352070583334597726575125597976417382945533523736523879173139403903959502211598979544430662393952751996571771179796830552065822979978976517596295229807894555198352869057022266345138993075368966158466629725696257172194714664255357322778126406570758384611944628989825207996806366420376596856245139738261059204767745985939419780629284127540225185464990109845540659249870518309536141919910344090123683190888069475314913923141601892581851466884751097702141685645296671028208937757730081033193759389337679432555412487556330576830496921412054358415815454934916408271288190217245173655763537905008265557075784171204995171859995993556576731903603611336914133862863779007140905115338974870551815444631600624833333634236963685173411443276374996636230875341928431380129524094242623710558674658951345078122261489426859400044445265702780885691066599738423296876691290975476129436557576110418036143109279379582800115272172399008925420175535603252991432378045499914775793112869823910118400353191094081207482804003857362640417161989733834061098277890664567042912063503148241423986110206243941579352872009193072792326952501029211457685786235494458828078979483149094476963551418735978279674925663239023837196252680718688293977031992698032388781366995759104966492162039207785811621123748649403897587430785955732265847020345894623473506302238121313729913742301689674865919226473461195406247864806946239433574090987093434592039516859379010755650670966528262571145678679863185570355979077601372412861009809848436493349358325204951045703043705022906634221636008171743933332680677802299726618461808407911476258515448013483588786616619764248008285104616085390201626854453712217373296513121859708148869163859689002189648087733384669338617718264467693357500773698391188083334682919669722500486746548101488951160208047854930941901249198461227297887869179449873194875980885581705683498085653675931467828018009058321249704387347663138531165418824143440041578847542008620927517217581786793397485908781611366693446379763105570742596900591518919712770191037041406116263397319167971931495954059072826328921192659197926300114560922059577518235741541451666056612761177800190738031577717646768133104992658883168207279314888845580212633762328084550656906456529734776335383502252132616255793988611665021460975887633030202719018933908200358477910316687412511545893905744407095353970750468944365815238608930649340990427769945604764564554564964280905756869270301000561760718039739822527361408756272964081058361280071900930405612690959294589624462578717083685479702496696797834406513711384316668714843823600706027741002578967790719436816661191787098587095931834037475042868474179459375444148730263184508995652148128299959573995178556554879124992022496081451765252338978071498997886326226880425548513410656363770471626987381464842699514964204056381410718650285638879277194327071464879555329108651027348956326480313075064296530421238322788711312532484732727975915518095230383609501375274971835739001468732890625456366052739638170284389001712447879373750963970393832295702990772180852127003063835967193912628230094446724624510202402506093814683920480056294841179795262225487041328179966650049294599327865049861593735623363134054009294597337518318576453910963611214376202708059295082460800924673591045434278480347084613561371118637776827865026990544413383029504194993625781219279643582196536911793366010571217353703917253193772745060309734505656380646137472341102010953171467180844825569956032269415441001891815163736759113993044591132458341177943621964979053324943952781692726276161537699469636213647917322751365817287130547731394524165379745793784331559983249247071377277154590091243169770631596683370336833626723577647831093204108789616058618108322358730144988091169543585611817045637636124470304335173747458805358946415072837371033997171933484168138322356970786434371285836939735814438120613061310155142898776708128137204262080102176158341433805594133427948990902398622723306816328111539557313028203139965751737387631966692670155383160548353240539006511862370752005372017446623127440336951521651645595008835917266031289107594812031979257399515374747479876042301553976249104111935927783726696565565729742681078197123927757329907229974852278558243566742586635275835213151198847899283471451871148745472218740803277513678866913179158016799651325408318404566279385967926136718737024674917963045385496718160328131403573179091467125117211722558872399787145470473710415674336120421186101147341951270266291283747376785513896704885652062322214385830503013280021634079015763355972052806309481578126712653983127043235794446603889502203001291139981799552120492024121940900024355906667101399825445747099525245062010182806563018526301382572319259213702942500112229325631739778801662998050273027505591537071221769499938585114560598109199182062913865072069356756661998084139460400731783815824941714050243253739060509370604959347256783076506577122166453966905687514464589598061866561259162051857562993407325183673846686340678645899776892959096066922493856295180862446269560222311478439886036793692820522253798836238823922574430359731880870883057046848490541593348178269898821232448872614592477240784963734799437428825494875051546930493231716465355454277807101088251470963978692991129614128759259158304192216293796376702748863133622427444312423226603228851528814979318342454910962872857796003555058305617903664783223291338378673840936764748820906262393590645850206984961006961387676860075828476363503497046840891633720333049278894787264870084543365332788647654017924361749482242416954520385471054632889741307825091083647395897018822458772438495220658523708113437829308414778258892083811467171395659524613294726878324328850798324680870521588440742394733181762316182204272710704362917265521891360829202288241863548279158698908959679823562112945748639837381733205043402249491219857000405748961676236258064127524816289051943203697056554323539930478849528240763496781196240947281645857033639995763086352916718078319137479227434640249400120028181593520446443333692089379384481424079416987716607946093194944358522871755386687809826471325140462593093949738488692141757521806586150630322397655289100400210181378094182285580472687036514157790372149293486735873630032234046963276278393915846839708927789560746900677907098759804128330977518766704060723139264098927258507111794224568560300411704267822771287370747300076708939301396761370053535196349975475107994489339627749048904363030100456055913395860308187468924146916224218977042029516026830986288068381997572832441703757322740648624954123866252847752873630977007443998666465595758945060516725089899779900351887946699308671423052753840249280014773632379014355419594014211499331103083184200113946483979327337126132923882181873547064866394760396887492287033593200967237237550387368543036435805398893616567242429032859722587148172347360587388757743961861829206887226131223634994233270053848077718321585011128180874659904367296560619468162548405313365326333387074674110306545221499404410550665762026832025178536087753497482157238410663107090109507038738381709523995288480558190799336000808068424671457383295934567036717126458439184894611417904442312967102210780181810623704298063383465999239179186360643933052091690905540202457691433955772826474813549376282662283697651019891413913555358858694828954970359725736686572208012268655995430157701106310184750250844945520558765085675929727801534468934422332596886485475887760482693290354616791388157398821495245795515411711226209806958345992160705414712505154654135159931770280878042334260452217895729638256201051866061683097281754499745688220817733674251521710334137508345627986482615385183206391903897353200133072910391847612660166153703174354180970525482633617077977288264403323892369369550574410686572359065976928721267993924557057081664003408089179833285870260021994083701365747813163705717496567846203140270138937412882972699685801632144473241132622081319601774376779505830401815133429774054700842576402677128019153545710100211790625675563683416982173310336152474068269193297531282981797708914801913906642091419365897090305560537540953202060783100022997192376269526441654139768085013470711993113362766809321217502421683519165301762940242216683941461750138261264670877795646075281792329777359923671257105775720755455544487949823990059832846416737301003154912554249099469287995779970361511408967213763150947339697896409336806319728637576544194527043117549109611300880048625449466756458529584661152326084035657837700524458802732303261857571283174030207487393947537215187574928160145929448236129842654910029314182492560487717701537385283832212726697375424525013201874180212062236533250147060635354625449562772734797281904521436039012349837482506986787989403943193957252987165397137787296062996721890607375997266578180688136590472610736444079536467374483123782193324295646145148149633337690629678341901071539956640817909750440566814790335607008957936676179787182314794073833348512160957448605688709709820909875231987003194581745038526797764822343628883878334468899389865311738808767336727501801717740267229243634454104111147560389938955929160348668442046259945636809329851277008661621044018496623682563243971940113615831074677082681044156383736264542467476298675483138493894681920890149599147355628877713922159349566801281193064012731860383305792437745710411480772447099845996500502141705964214680968932499143415233310872232162939049909422520157471361703355866079967856066931611042080383811467552504779174357163798775133954840368690289740074554589997368906101361902871056928236317619621057729848930323458578857429251871864964027635437041425694107786728984532996424174000752653830101940819001421225298469286072996068422005885947275122307595779072683715303653883063610312715106397733695697555126907319348613391364842271453655252789344112455343535991947614287160462610802994312451887104941109679120167090090552428428376277167054074731871468654190143890844629636516947180427651033867112809650958318253188093406542645474643311515546452848952316647154509361263907154257848539315659308831738407363337261402610030742927901712706853818016787349282669689727922502761706259134912217428109901518500907340950071426353750009307210658663739642228476098928625480237448428771940994647593493858545886463816748529805793897221381784543942886212825284238429126559904658189780992688359434711862828631717600744825568517480349328113666283941904035773147269913084902012647598728007143509468451373155977665598739700140882546287567849954890406268023026260824163200400338881123574859990692108035117927110887572356259631624613230188857661679949089881654675220858885658824460281551496626049522427078971411341865055039689013594714980915049693312725095528725200753528555055219752588714843118829618856143464360482961860353830122856627452990702687698681927353817031082326770067415221296880505369072915484347261488885570983482641871349561396465049183003360864801039860909362302265225980931991913692037558132485251081466097949143631400514305103261302972263435898731304898108235917202936663765150994642571669271578283508776807602341727275155863575791460468129967041887177809157455065766173083173400935944670236248019819027216715555808632757500412850295399872873450162471996339648838249448925619270164995823247827786405532329902256805203696493692804686601300029395029135513900223766636782809296003738553057939417922632431524745965385171886487029303793869929413732395255552224585257343161020358101706221678210820459736365240299637316351109245758398732112512034918188878913111776714350992007473912593466526184106819055275954838550316992100560934320895045217159950093229918642564130903618978892278980986150541734761401719940768010859142974962546223422935009900241029283765836103789953616055224704089200075612660862378189321232280413403538418951855200229353764510681754034479684232541600607894575589365598281759181521293641688009303280875054108289165347785609262682113071092102980224097613804073508476847872774563669664928070143427188467205866048404846524311970052011009143249770455899138967554726629832085303051851910399694226314004432011173403728793497694769962784460195939865364720725400199298041290947463737226363318860415891008537492985678291744225538688853929346976076175981113480269445814783457715576419512819062605018590404281171714193950086872284804898172238963365990265727088049061199873731701747163810261711829678228741273250460123042133601723017676099872823985266137754805870827695403158009988733861009797377688742752969679712646069622332366154146363613769483536419267561748334542542051004567138325085998266797164498437088277696499737801863594532232954178299317783642968058986202379547912000983165657597560093816500249671419929758705860308572465345293250273477876236031726214385041032756135162967535583068520422817234064932910456837612937731949103883526762834815526872938926554548760287201411321074677493261961200734541792382728744465101151227009185741707049508549151225120777420189102513346864931815436744473891827048352046617449839710048454729492298029637393396892676105200869379605062166073854921565491879236324297178025459874229356768429528366629165362190198873230731265504904699188742399660162011563922366950301645292465529053009066262313674019603168163049510855399069785287489910605878559026390911738790639035204471306786953653887449082213200520064834402365152669849802582696896953100058750050728299657659602076139716742148747018602081568994560300839294471882528971909800646730690383582682528393011793311701960159282142466705507542711939218233132274090853260890984128999720355698556405902355181403828816509953164972359258933542903350016456142259079000802295344943287724865131860669767298000508807536557180276437775729800572254759504732711184326164902412218476300139888363628307257765730545131003430639559921483353839243161025690198384732908269900417608790666600873600752986075053024603918610138234037398999999914897210177930177212495289904117093837833324829043139035810656782875665103445712120640521915855885079943831351464974644633935510060202807206227404974042328079408367128969041988304668825226171002132949703665951591886250908253769797159727304072811027668774741602967014284840386839595489876356411421712644507499011043816106640205871176182809497684347994398287939580222558636212997822873925381402716783268680719865754727717904875388176218813091470930241975236262955191340488334495568558809507577363888767031844935128042146018792219442843683929720315185887488611387782734161478886042492181846574562419916064648089698484500257031468019568077314519464794692213062784135775061206256975019280496632822489338749404469307227393074863747539683174665296982487771810878393771974362685172324541439918555240218382692557731326333350699629389917260018452507245647587261498071529605081063988431391422052628575449106333030729736966732187959399438493810400034696215551539457149830742834114101633070456371286677207842182137335959989519520199481361887553844189740977746909165691055204776194213386961553187178670503752129691787889967962858063697388530502819645881414839198390621626067474969565789960544335728461851508535265894351167967115140187783559375774703288478660994190280743225071677254511382643797785003902404955183028197730365338969678544029002660756729523622448690394997438274970549841929283079729071606783168746406513899515527812160802140061745449200610125107680702438017839596027824502421165453205152563809448843258820215249619302734657139635568087857398709330790529096623348523597907701019104742430087320965743882498043591874056234728094184952399720994469968851321980981432261137215808226204706063388642426905273884716349672644505174026944957858871906008231489858847548669953607985224038354131077727050787078614544229927346849986060800108474376933738861359328891222116855790275524899681605102206580147888828131833397338494759413856874581921537768964971830952591290143331487538276954536065649118229351515481796543723418220868972267619556784033361008766176977399707747058169830419622305557482249845575610343994077063662021019610974686969080921603846617318106152669201599402041801770899453377534695198523270346188037296907331012990678147888334873941515027413621988813896044551461172248984245914177707062222294261837906009993480541589847894447058537593102691565118207865921840176918924818070798554832800270618545617196645144530068564152595641660891057616346491701182651166820854483799881678454305903880734811815133785928049557635754105057862037608837461766731241849725240364032482038100053631650566908092060572811837003007354484150618220481947253354928724130431550691889416225150246562005298041330380889485538708590160459962611816213548414574740520964286569845326276644684377790390849350947370496307213017638314917760927838854461817858191915822494235588828001321202922150607929033200849053140454839159636925258470865439736031575003168713803009106107449411682279291864327189875596739757606238162773584131923995820429955712218068000341002026746806654250258548430208353239607822339232213033720979118434258512677722063169713822916538925243963048871056901974842317839948807180810365003879014279707613952176632749347622231597937807251213922349869270423534294442256480515448124668015006717947909360949025520632600137596352848781521339153980032538453426819128715679456621193612738946738370871678178183584086646065796423902632850690909222530004675167209151792063222634392751863424844008103449864594864930878567052206591042244564039061636134535636303422019677126915591076936139112417305340744641514284644063975740242161083092437301156340364985590500812322528150881476904758355073990257063489512950460977157066063626271191639537274317245662848456480593377579843388518827594695120742410854473560883163291187426381751710903627293434206505330445356226839458253859641131078840131704986587332135931030245749592959866574615934184471681315324374081832584792198551081105409663947549414643943523305619409652520137156233213710545317886697553069331357118065813738129039607247417668528080567196487689682491355388397205091268079053155720613900906555738633119946776904965540268509790833225185551652468555917027257723564795743734927811682732953140936546129405927827194294106144560881158120417562925158055898335924606885928781607763864036415879472276457854721435928850066968564792363780891020174913033201759401955972203930495519381580413498776913323152954777278649651998514175745396572798392113620739774624971898939410700056508575713454569801769304053974965950312627343130653771774602853717495331777163274403026813971234598519479388580297888963720342568800546361536157393081355355762735333212175016254202561692103895922872848999156009380449665574188511845537469631763258761348169289276700510282334875030026360585055786975614297600642476580539310358797660426669918198549890519986859686938649688460204585511996125310578251461379802740458500030615471082764890301825605757529900926082238354848161979413909836867527731537888660535977508963598991033204160703812307604256812852898308205573223241195806126274997233525327387058000828860307746451081236731536421154098551999828204199955010218291013919795063122087338691972507767228501752253583562205023667155417907918329301994806519062998574622057071087210688872094506761819998401601749574180623611724875872765435563219913516232992454962477277302441987404305443379033789956455605818678010104153720711609897607543527261987360348760921861108987878563278754456581862821334172124930536654385482284998612249447305090675390081265221086758136975653747955530793313954488495472784231250965547601600625511574458619572068411495297578736131690459864336349483898131799022133854240319623714361068472414784380542014163932302903740475227116928628618755698635653733125709542166791650774523768426629471156907647969031779501744008390090166856107283338079327451943862391560202329534594932869208886348101308969803281112107160178476332947525343875477303904571224723383423973555856608961089736339410194341191501374950757335578360400278314445281224846714849977847481943379635435975294595341052961184936987173080122068942304627438083255402061270619622247576109142021425946226923206166052362406690743309626912926128098651589356643274425132859974033281871411775892272865563463062991185779417341041604178264679237774993076737374724959039678964165793770269473200768243466464697312031783659309846093849137927711347167816020720668725092688718443925678170285611399337250469368379885457911099725333290724477826433688447134500190282980971398259052014043630734072823519822543995806789256085422341126014283108006669140330420808997253043684460499382091899497970785158016296009151725057289725017775466684591634449727780668432211750419363162578438240490555222407715355800488493779732050390883654755585838275950862109893974582917127058451814876565788136736315662049047629204651554232747995706594129256753968175963005995218139885643121362482014425160358099226826178062706188285148281603140601667479685664066701706864830913360923825777560174067193240031331570982560969918683616964768870107286792570463705632932376623482519888136711928251307349121444237491708482458726509849674553742412095472900113903956208751059479892373714844751884607146596087043785639259916456957559501185521174676746380393386621440784406828220294486728846953933253823890584863667924757795341843503781828337777488650864874970543857172141045214523252986502748772534681256888056250849949730671137821433206139825448550207196277740429617809333942476548678080220869138888265696117345832425272498251143096443120934799005795451517186483277023832179154614971152150036475965621678471106970948906835585046903290976001049511506302841417938181123134714761492182514971905503354215498985934125934461804042778050751567533127967209330087033482443649601673910047839234156258521070701724281138113113449010250720035896194356558652240577275973982792574219078964640322270225480224782120082199924803935052333640755422912533267109071364917462510209738092372654057624859587198402177284705459826150872453887208578418592606047214182654167367344426013753171992269228907017933490511197141506227429876234305513288415745753381178651368236662038641074188280686506741153162088889560542788555940935210038651441170237464604452459876136346461771083625791568776278830937268594212723014458991616818910287698904429031811880706177687983903096564252136900685799562166794670206077511346261081911143040642621222512355043976725896955433817545865807445111282739064987036590028042652263910386499054685775154733970436926708088495389177740893473784285459126189121005153003503695523947359593672055062640886214072867285262196441931718568823866875672405336626550935083195802682729768511988408725903200959181747668597915396591732947173838287895976693345149455272885639272504050460154624485204688357226953764289661347735066903086793231784999806511490360458387763130710886924596118232690200634387696441214390359901829517158039521617732153687226292930819153430195674711650397513328198311673189215029308852445226326783333305644789322142273609836232940897889934198238344422647836888710373366244845433518666056610747253439238848199111452892507283233870424605457195157021290555674168199747297799244904673870382915200381035955100880681929687307814768119978987197979595565680197345503748535314760563669504332632127700665844359596471356224698307724726119623306875321474325829515196016560424118537365292282233675601441162061357969640940916251840186033725375105524760127977862768464010813211318622111331390181679245941641215518476914780658268322757221854313368529224348931516658798484056126716780718057324148797488828098511433052978217953948377832782746671125505970090654129505500950831558603622829826089892117784960941039484624970496718477462450486131770725491944053923133083265584624626679103198679348412565013297873277598691596975697589885091732434607454463696689060232978991887279716131792250531593882507934349630564562066487222833086955819633178295457089985584975865350871621734999665807751779768653237757549968091684116285852422843219649521365460515678965417222910643040418481676497602404489784675700592039824848724906146831906606167128399888821721008247644509773279943199795825942915313412051388498935485208718693745064678446652140040635640295321544773945571472884614190254663924530520800699679838858288571294858005693610195945716447361653345057310095699098991607673211786065736701958121176495853110279595699866844589672867280334444405262882351490052252875184611745812439133249362673620828705370892064295566157455352659422570264132065094509742091379450214995242871474386999872940311921932980236177943122517280161147033764407090832021414647096852755906098084876524496684321559049103545509554733637776315209492349977665816831402170358497604224644743678408799264276503979338793222356067282121482407653927391639045849179843641777984285363205684415557309300380259906524679074435983883403850439393491355487280582468403591782874282210707146959704882634356369572931632783790626785280167495291446511674365536695219802530179513714494756401451265161977314227216624030834692639200684201116205247882912630727050423493965381267592015112907984288362079266487025671717945239933830483488419858840480610176733181198443283636288395895518502740611756913582518009956936718480815503478876828255246319086272375593967134031256263510297104080923979825514848679082486642147827360262182408904352575739449941184883947866475712482599286355525567949388679458906556719148815453541104406971253366742325120612172402533060569460922609107782388464626296917582767726026224047565242458714889399714471789644797559736152232094937694327654431798695847322182278153142233620826261042131621559112186803593473041254738424621089122981505482553199793901108297398840694900067367853721192717047079444254866621945334728254795209574836930699103760641045500997234532988883243726258735764410894942974266847997858207317677213134130517017291319196565652467330241332991890985210131527792892932065767973602880485060748027183650013370045586697367591818798357253241408521011600015909363119122097325912296902325150815143657604604955714234938936900588858307907253727357872796680415565617190236525209710301782542828534648789572138965982726601970711684623989539401433385262826208640892846798499516096564975678216899304735373002611974922510298010299059139807706306402133947411558683225530857759435562083211422652851550048796927005189748889620908717439506837402997528724894052101081773811536888272435106330650788725757604736134480265240130539980213435209824735899857210938889136998544653978175788782555785598813344945971723669866358005876853156460666114454177467992495211002514376940814990077901321463204187425847678326402380224277383169129524394441078188063225384157671851161008672277439620096344221875098079375534424586279943703851070124937583968060986659720672325246140476715241974030099292356118421368202316418100126151034310930638324626220340628982449547654313308955644567980197916366833263057452794131402100447539896464444171673854366385314808714351550080020721179824288472105676972381833408194642848344286378008883673350579730543481158516997981924347724456199774807782132640838544020078751345709117372455554155397089493773824682914687669012533145279512421108693422301652103830452435853836429151437239910002162779296545998706689280237090589299031897998321006215388810589485511233449571702249278367074882043707805880069263454948066841363365866014944373383701208587920280665817097586074057960052664351047994088299274430069975750026131739500279911688287560221837435590715867902807499725838621727594910218743389781033951418054406542523181540645182064238791882628053293366931706641531825421389497191295665465898010288620963418320768141093563305950529528422919983139020455796103525113298315023950366569838086699693561111599733996783839560279093991820303686182230133191991660405041214200643558185897005534604517378186094482695577843764885911859252262809931359522239562590040172316267286438738518144596558147856947752892002492964379681801220774262636209497786230089053756846936589666691933604413304881318995041511185982715601393966659689154970058874132779350654184627199782218892486355165277825190622921255066676024371514349268905819370181217367791210163537633447079056762457000380981870533276307550202844259832648105135916879962481246828251689035384782892231342414844194623272637089866129243749143686077303039570140846018386672926887354831863147258216187131304348503477799725186275055327835501534027786986956071995376989254021293213054796196218866724611900290324937153597906444788465809284936175066138980393545049859707504935826363108071147965249373331754199399017787948187132614381641472854682418571171260936382124110974817644048644420497173526987754129708029321895892886434140625060384926917523697400602956201017949532185373710165326791310423932807865776595321499242744496525717230457662743237398148607614947944904358426579902122042489243871237462912677687608666057053218812877648374923459492017764079875498596611810995461006868083711402385504364571528945957793904405189694990280109904924975064533225645757259453476705092608025589058354588836272162737035547257154811701450019754992189195242166404412675449836945715077119148484267342547788008288374542438986279998337464321746546968837747765788605227877366693748799712529473970709597473928805194940130653193490894157931314825868758917148577988032595315281672043527005200806651155467073135412046284871917431910355868817140299465858219573569449008805091809411270659028959010859688073291847114015554078138445143067062721788853969621365912142053821464567398797061284853070617754316351315538152597890324100326394146429986938517774625484703731640249711428421092571936995953548106704763386451297696238204041801972208940464364446865221810901064343635152149647378549606371271765090314537109261998171759416099903597255452931700320303858741058060111884093619975277007415536351297268240631269595461242266458527867426217922107621065174061709431048783211115604268374958672144187261303119596718964109323793314208150547871039484872828622859981904066537517520518547929844031688190275999770748494705339965980912427512547985245422182722007317711204566684479596671039851037027550427384493974148059278480925333476401538437030100787241048653338514239344959068962208174819542270832269693410395081127419020798183433494293630748421637955463108850817965043903080757189760231619006349428887283933624085064417616101551265843105943660174183896562210420343991851203421566470452646594966747615244696855192563013881446724238380831504036757856820705486085129593470271853462827260997474143413834136659040461416132532339086176286321740696603133643509209345802988615659848713999838937635226337314244222433298583268072922999690862211884605056299008274150447446185277371925979990732807828258421605392837831179061918553665500862480783627496747873290324130020310888642942762695178737431414554738532515741423503827609497683293996129232898154601979968178398448431526194440490033512495962935394258198448318785850500701839771754927127293527948308872109864424173652406339018597131010803052868176315026747203848884098563694621607002678570627966422780200747306554465249835262792497943767774194554114347294049493810690107160464743090670325171892199533422361471773900294068777468389181531142809451000519154680709508193063316739702209308023260206479045026172211302911166141220319015301671836618875614131961946212305363362615783099279932726495921336528901518973799003804513965025715461308110940109213427371361105169846124569687759507972691088996969069153881568017867078435786154104343319765381454800663245834964533111979738227460350123844473048995826921285067782113198619221528508928790146676842687169218489102532974412832308329592331650210428756158627990209629911850627232675857278082410967360260478544382896160607717709095683373810225749964252727480107781275951349862570198163973724438688666881569127180321105608570596801691341621121926455196351998579281467280711948392267140132544735881605247603091255795669170150544981118103756693814570765123555558244069496884480023248796813461373017893948493612864810195585919711008619490838552168751958557306498357409503913670927258238592658676647728708782231774215068720436339002710333720690438648327239159134614326418817328433050198209104328682159053763419200532803599740193569194771871895345370020675640139559913822133232856684370878004288444655494162934855416434477449378909112352108662703934227171014935675665384016811575821999025403672284832125573818485582863862178537381426193952962879951832675124369959144076715339734077018950945994519806010247438632878785099105830848575571755132084860165915892646305810179742161689091614857288841278721927372790026463693115309601238674603812529708238491741478635893468321621570798986967688406563887939544965266207501174219532563130064770121183152423152382113658047543347428308451875907931889563696822150452253533044685056561218316269568033419009513445140563009704275033921247659624016942108017575908965611071982299395665814153507994798585708451436503287424058907178830128044988772593032196586489323989202525599539546990157883951829688864819436687297246863632859134251505622803009397342281032097252962937893870856372725380020491491535734891494781337221795650683601074093281595233112213003224747251146320566893631398551440195960755300279462839511833962579151130736632207441848806872814932244875121737281685781736446332363518267727326134610023129441914701333149084434652628231640301435898682175039267065703233829615365621623019745944772214293355483090602661763870104302670542236955563786953222793979388335043567908191396627482968716664231112548419478353376000512176716646465877448612052975350943074022209275092023638475956785789081975435087576438365918820634491003900787408399001644458722915302931293766593727230977818838053902073787548155874688446988408602245103892533991812371439453521050942653463325193439107798523521331755298572581771196839674274652961433692011806986734714563913011679977668250297736138270109248953191555821181566695531025818026153251285865788116255192395640009835762533854199126803876328288185553879338932228330236276189858630073237375742028331345516370299466902908255964046312954214890061742329892763270433003027855203927249054854635669936119493295834877068703727579890185417947988897466352402336210797752467799726089797409463741051648926996973734073874991338897511339302767426525999138451026834617013333326101824734535965588269134942357814464921950017441238622578615168954192431587362764121149377861346315822584772279281055477165274178325458924956254004711826075929677578368747228804868832243308566299445495354565374693974650332826158610907876667306713077823465521692788329425663110327830813668081271485167770259336072736349480791419905878790325152207448836668236631883055460053794613191629034240636646597166158928783333058283804326629866780408867718515234665759329776252986218523320572423577401854554789393426276859474490709262345158325225110888849777427192319585251462935627094355653832920225127346554511614755211917528412806989392312259241576684052795532859631620803932151535247288808958284123105270265267757441568456578584679422868664999908254047762424190367789894820124549988870610836554059887429613741167843463446091783330445754352343168296372256455681883323215774156124267933809427340160462767189651224725541698941185991621516276663294168769194420413453726080385059239323365510166671289713811770614788352855786362391008551967215877469054148451017294861333350056817149121770672297395805079563261988362386706762030891757727561479511914676890458818713982878447378545179352590764128173863747186318804261339499940325986828690091019541866977801452739317244972098587623153028464686774540940386932286427855420240452221852231458774769851322041544056777278024865568884563714647538132799400542025581233756227849076230537157526148784261629914686203300328737242578011909110609379214307131015972098739561554428560815026090646052733207130701010173200395324379771106236680720010741051777378958527206467298494448039341194654148085413441327586063216595426916533946647507396048389173675436220989567258193481393882027297948769713297253221958753980992880180389003581030857416823002901263790366938134581412459805006918514209635942432053917899506907488285977766369394094348661154167695188985736550969894006329982967468673986679594495265869690157409266262799667366908245961971867625549144026072291824487890699222180446773007594224588562219659569085959014631045524183142362094512309079367353227552056223309177521555299186933113190565684204317166526299708349663230314509733049631858625375440994885127346850646432897933087861260528203510929499619533984542484031533206388792781589643301528589116490893562570934719800089471486423088703616740117297309041226560002973278928434825144184660620171245598931760358425390108959249167577283494585324048461163991742556132219858276138096302724846125096822265988558077311670740631694171887698748765038266295743473263507926621703781941133835581466095684834820510011713673728364496311158001389399598699305741986585236040605112532582006415383383122094800256528758999182393888395764270423587491454342129520089359342582713872659017498293653509785425434212903885123965826332760432515838628383076769564355968968637315379601913488387703331046084682982789271433533941127402472659828643536380961729860839750136962235846624000985360731469485725126222268000162731953352979927598410150789019636772438350972826550635958086271523433742226971114841446682024310698468688331391421123849161027636303015012328587474414414011308053112812805872419044540138923395198031216476897757795762300867309988633089679633223609448739741016964555878945941311334739110694961701907904063881930597905408047397506836028454231090171457656197222874045172645880960346551351367809482599025342169637984250071919639730053628913984988553280058345225120052797779015127354344142098406759798236492821156081415072279325580838805539547138735004991896627789483699835621215625378368875028247963879197893050996851276666344236716024514587233489898725262647703082127085883989767061582514927048784865011370535562765631317817954529559839735105020356316337686202432974190876474132619857265461967030227329589656888662559075009215062924993415165257490646142941086260868064782901852157868568691755281550558490169016213674471957880427604589608710495657595920523870329239339318307410045595130923493146777500856884596833042065378888117083435624816116274060006199630534575802744761082823118665739622538874920888905888252083729521326549185157788848245094171080088571230582736093098806679652719807081327652868486729668492820458743902877056829325521479877938479576612199924401676935620593423906251557897895088959292783625451036372988762200784902750627506828105026168281499713006336383534090560851656428203573309084954890417270876825373657697888106504475326535796729592859209835542956893030292575108108765785553995769688900781436307951800955845602100986937337086108378431163735740897940448650506258399507685952173133791859820083200613363710122936278316316521627374612409797361273681679291624605304790406119088379704038949444519806330566399193235818344678217241645512624188606651844948538517069761439899214130412454085283757054440098259011154920450907139048142896725793103053115928044238342804086778608956467428861227043377149332976660123157828064332456120868511434828041521801998876482378952735542785975596699567567176013807926365259706762884624670311616767200443719036727703985461348409567816886130865589005459253703661846932760125047699532286742629319110813002284061343682138333298941766305512986897533544770456773241647014508568800931743597311819420450436398385550535099173605149420467000925461626685869625033794313788324348410595844306335474770100665977929513876532482262172026472362801394138652789161392535237576737466054473600833492672739044104015565072394495309165680087401802304811581475709296384008884894641585820577031725724850183545664901813115217079624271406582461356464078947313516674795501429840776653439581088610294393592134991179157655547859744317394304421237473207143988345770902784294871332981565731165140856080294793681626974270532765387507043932091611813924086652786991175788889336400223539476026685039847880275641784887283602917713568442045818355886875179351175937336763489373088821687960835406576644083688294860980199147969604772536212639943482342542397268570647120507384105380794563052035026047556787294513443820013053583641574180102667903019178383826222910566416858583971682273543880224955832301777964398090955327227916618304576584650741879364428112693452204429948192954371714752348458116402844397768684452883209468354565213378507521627144676678095686581664245364135380324636898478476492233621484502516242416144103173687429874381481947454086670865778893486624147471605007747331274233758061300063727138681644567110619950552858238534511618068040262714147457084376124064916580329354783712627553106742616911417649780592807219453034372878790704427390373346023682683984285167873631438269444268214369081779317683484221401364899471055752603914422118677297250108471711077445945676862536617454678408358514030865416907752438238058115548625838926392938453653226518108859246103975042687030745308566933625224020342219784075335133664226679571457282791278676825907719409065769523242483972808462898337293685617956368549636341460708801523359938606091605065611437102460385916101470153929289969432755544363341771403541342070464761336642350276884948113492114579546221289667488406317954388854716315671115152463625581240407601396950255095879182212128424341424582887021893505480449010687923262997203472946233772629577786628767027040005120079178814660170382148621534791304948378076566883586373740386023068765182090816751720413772536439919280502021446043567509226765567722284936987309893245070058231958791616115688563851610271403270188750938417652997741689304272472117460642447756727952276438366393496023432721974425344486047624753273542698749874235322081627464664152912436176999766517116797845621903989509499104802531342711476616711219270662209534738433361757659762579237443747413484915717281089702710145902801735522509393799072922504586906015116292949628223964286683685101946171196892476888546547524081304226256071903201610513022027211505875808600434990985459806985519876484641321277497166644311088750867430853207635081945086217786438083090998544057762147396322948934994123717322738764825293836436372517487876349928605435022837383130618912225057710656980534723212236996283969827367118388445311040023701091198590878842156362272847621732873615832206534931215167781789553615422567957493222919847341006904184156349326898818181731584987701058949023994550194657921349463958984874592585487525148848205634210069763757997654236804009703890802914741098723698510133011812981471092696461914466050147396954833832226772246002454147197061654007032667052251518447842757216178224099491321277741741205854213160171513262168179728530441750975330574601410587957528193493463689007903807873071572584892599391993356095260598219682553025054845958075353588154946864214657089237088576266973654491597585321148085433787490626684962060177722556946701901449792651920443573856530547613385471709184163756396416825880415613753563451015242281907754172762324863282440753996597948482725615040116675187067461518276690597414455989730910064497303781697319380749568492440873735627285977903737627205921866885420855764206969449070307214906907552099991810253594122228709336584821071661946885076304978477037320755133890052861338013685278671364348925494355538137868709649081474314824899995067775655739783616346214952123913352610598473803785453164741754561055819225800644237110090057516232202100538350568070605315526690245556199618270806559370338880425154116938644280962313942834897200327245771428766671625360409084422427631258726632088908423896337509879971394528347953537767110597222178062937564818783043559764340900505814567185780207893019308982899998834653737208602303939520255651326837682655339756636547663462822729261103004032353836148683277305269297969447036661537410525700530407367394989409523219086305126147126042098937186908841468890411073628302398841096020210730821734771832017989314004668770341847448863956835003298543754281498250260272157114187836258890421846903043395638610232041329464562730391869003551337110241662014174774463531435278429883869490701292529678053417170691119348771558567432502188204715001249073416836707700662367583394861650681417653286646615981510661878460642509186183462968421413268532267550336267083399052816703150990731405300284287139287395674040295308594546706121402728255766414197770995719229270480127363183686460708347853424351207512962279813908162953614417948545935768902241704064722946324457281871894775106187954345950250161096415699069821572974676312937184272683259126711635833694187771928792523666228410112221562763857162840117735146911143757195278832583724095114880507202767891557116823725474453951809073491195688877836064109344364186721895510451140294367859988642148887178393892276360126681834986857581298827809835169922521614793791403157845903314092522946560734832362127034321520097807511185747259947853778901094419847345158880126334471137360462232182782600567810866930135158983947756038503515919857318594350134404550378886937880703803943800414770705382803734708126484918893523953463416235216679171444538322603445837523749877050811929600249327304660502406231144650959061359950421634594307392208251898478233918607962553645235066231855479178130407299896257902228446605626718418625842031404769494592339244404430116362571801014342543317484994999835141399513854556957885450203687215499426478919928489277101485586129986693893042700071121808069635487753783029200030856705311376498838841828623889590532571965333647066925875929466117452480849765408906221140427503493139201038077094962765852032361239823547082781771343056594301491603692087263946502611049705938255506724820669383071326616329757483470323130519589394505073447133072990648025771480399430587805015601832003310507963582694942877736724688467930803947678288974535611883339713983447133505751533492476145681984901035189231354895220333605047200163525335810543211870926718101784463245492028521932837974207780593674946452445636926065164215157769174464840402878755460740843645572521647301648827595917904308110785789041315936002338475029166013133172172471326266703123005882690535255584432081648051124532067579216494800486416124101950653480376229739648174069439766940604489437358666952740674350602364419566440996128941181594408856307890791496361864738826150490935508470699799594664943137863326207644374398541810540106568193529826276215146741962039178669256567534631993150617650866720685944110614808095288785898358844051360771453960920401810706331178486338750479328327740597833628374100269616804895024569819686451637841269202694608162114603291417100690327569581215305848764307676458788011097335850988796868082431215125063693629940455413867463650579220949184504388618352820024453005969192697468987509200004118642219850738836400867643153173531934610736710172040821324858058010528457724019443025417616747307780618285644480805734980330423754858103876234242030859262951834724933756568546891971593587464385749132980849981946699659215955825066809844550541787979815595522256836176346607586806244477061161731667624990500518890179094567321940503780154653301932864944668564895692509760165325305697060450325040932011668740887195530235476526721088774720524399081705015707480288429137644174005853789650689644800959735661886671845795879453307914904312512694537252384043695999553793175757695263995323283538015465216057721579363981233405572743079159553968581751201622041965511649017148476790044431737060578773484017947753059525025345495889117762177349185707266767324433992632720958804067022075709563613850571712124525818249885065037426770835428300568507646062902484275067344143288458851421420758809411324374403100114166147726053932588900721035741880799928400079615177675946582432856217812115055468540110945353854672917622668549512647776383084623918725710132352953022515292897890518017036637639510924570392035367582302398108400602057738194729974675177616677539565321337299432004038341454676874334255726246497823810365646352933466185583063888974192181398283512066912134938112519578192104025396479340556759685151689837578300075335549050133454591235739281973422533640270055650254413156480887906010933064960517755760352871852395765323082288079393448680715628389410280962760207005598248263729892787701294471456048085205325196100636298558645169983243432723124623142198492046655013485711418963765343356725217484553250582510578528789121183879169930537080057939713755455133395509517838904647298537895346145305517420220450016018806818982667291497539958736637037067615203095763344005370464156957666094334925187198605899982865270665853407697118661017255375917008329097162855461156803721741927891141445684483260517292701138285432025777053548339691737984380961435199882244104703853751288373140626139185313944267009058406062519982602063992756482843591459384142265185264605159841232768296226456460731534046282893795655888911745743464122331643337444909125662123935881853452126372120508034813014027129470397349791158310810655101710627255405164574553842232473633061241463954908109451714125094904629966359248832396227388600446861577680435522333901010831454849774512447885317363080569523696145349467406846608082334619624472121408214310037223231249308861967949352258018535903004812822843953977625595269963130888574217212205408755872720438418299625028602250332877518176193891556942709189663820937587502187370756882105990259679867570474616333351326629491548171848402791210211587098258953572663763983688623576471908384997772685588795801484779528570790591190710456031847911911766573966957449933700139632829857124582203266595888085400636245080374246916560800022910617270815093349945874203812243990929278899702323318417097311985476729426304455338694235021434021295819736834762202305911590146737880576594942018129682126236977773801881809868140745344635916097433744774080815121892480258544921352225370843816949286211473900388001137439684261921713054842256971153217641002896712085096233347260195792599308826388958861282051777959391008939639010137303559148304840386165007646783746642578337198594486561852740593533402312534739332577268874518563563042645180923341412536893384433777874852429282513828075297343313242069994143674257101022492789506924448788115444358504384356031318230213430219248012384468256494987223300972053573347171859829951290125157638191210517301775506811009194494835718297145987101034184472240013632790360830530203215469400279756798245750505012084389316657094224818986855615638626099008693211345849015759226220498521214992424594018558482455085435688328962988566841231079846287033781915968549655067374471187716153300502682064518926098703371281942608696200250974818959113287086051757583478747796642467547745385494524102320239724146666349034575757086076920271132463038743686993268229645632994224650092584114362103778610413374259049099585303779678541027263252129906541799462778968263333637009609039791019873187650195854552545032868722730336554798134264881276243848000018129316098229363203914625811645179852113290929741353489731699440546465917442955994157261145854001402202521858834942985380566052820138409249155713767056895689278604422796545198295306114674286744314048230327924967283942454434439051712421250325269112085120917003294017281614636872254668239399232402410251113861576616567456998315128437219174639180966905363549716240157931180006961351721172384656204749076620919430748424555015868122103371888748941942829104752667273562798031920513288818679124427648069956600193472093875963018038399722962592860033273767351812700247291233664842563266924465037516640745085028199800358058724757660429717279138456769001971128621842710508524141597698747926978257359290846210815998312495978340382310178468164890284999916416068144298174725486442901914517439279086830469301874570842326988508833386958496967921943699987413671863837956725596778272625250036233985421193335713522453503078538188898466465540873108817004002761215498921887619944404651478892824975759347970526104492629587164035266670911458151851751286642325600124384287535567380149725652830920227093278503626440525334789359795869436853425059687028970234543097496300507817668359737989432010504856609799063437810283282344293005329104503673018726947067774964571639624454496718992853091442307456745009676074859917379613530180521133580622431221628220202837579871946578085665550557866694690367209327559893648257059590386675111320917079729587112584993149962505970695143493866793403093046598191256519552105266480966478759304890137660550182235781958716937609126524333912870515209924589420995204279927796827150535735705866674543947811726434284825032315665692605983641386400295838490427978221599019447938590769679858086885608589390293881607173724028085017336519482514398905834039613796000880987619282509931965608718987869682979886005529078683761498626340266783277271483071989790018617195945718805415702861175939701160592266910472136970330040562774218662597901912557687036717830455710036314690098305662804535334878531988458074394090124117359117389786249778327979630021524616195056495650759665384207579359998816387865057201243805864104443680152562280632903141142219488005550065067937975875171294757025889521751637498539207915756944597292537303219572036865190310507065946365918265382681951441365487281522067297192943224875871679425554509219641477302670352490879015641264601317916676951976688545780153369703313486542854170739342757381993528730858683804882967518531364870150580770925958485901567424870581730146255720699261690105327738220072109337753595705003216485693292053391567457906550473898855437113719535088575581114191205901991608089034096363378049635384304531870789014825479746311165484037439848774994648510295558759172455122548230845323253806922953940096902183323908133989389770324312204900008794836821956124406028049319153519647523716008191594578143292008432079294366612752067204739698400111542490987632834700985726907656799129636508258779524133437817166611890756182360282981123017029300004394637315393825019902651143701785237012378987169919370011801209276614656429284527423681843176838036943438053079457564576400465574177038425705664728926900463756997005426227459361180400232732809552494351597285622131867622332334146976938291681325704583712704262099929437506039192509424159097680295013975782677956578169769959935358257122386662132091902998048498631144273192951597651521335573295457853709629530296788998829336184785305107303899823468106951041296887057964313575770177772496235950451182421862020157842732229052182465225341306412449641810412460573441914800232994073611717495698595111644963058828216420241220959062509201237917124937208268228785874333431627638252844924970074981393759626463456280690706611405003665341131899754655906443394258758337370404697658340963797769358516652966949731412622712976604257312842443198036353638114427958433899885498720285813508030035491852778149936903769906880922510425550076232712508060705377355483065527401969726313529609536282495693763621438458545240845504899875702022678635829437834042482260889421964831684335070246768533718766117565517877702990086782682400827163324337171411311708809669309652622214277093825951495638994424146256672267471702910283721284150713758643888371351987975824609736767496046969276755184478387798842193425439074108389187351232645598385389091824210455965021144355678714227068286741323419004133182762477114795511003772533229808704786287187308010321393551070813344029350925789589402206435209043450870160411980421432393308165314655871703582013006041595873316339591472085880831384783643526614724534297702359788041131369481548350076800202505551817249180603208229158534156673564369157841285657733837572704794593790698604726033921475230390190733143962418954366152879614167363646523144656444282682485769802476523042496783334638282614954103297513202217075178421623915875777402620894506930034375010620175531493298104279068791375198946804302619725002773330061586081249317712011836022515971494526843516916879352889152524263338554364451881588102004487919435795521892147183080120718262993454826901895116264063607474904500946408129719272326284304301301071226038148607617186639179250599576692248509986720670988947250421652885125175578337257296485448875232926153314505642094389962294390470173852993369532900897298607266493318114382988694308033770787517714103544672152623185689852339300910563185037271510638399154353408342790675988832437713865498077125231757888425918757464298276831261328495187155094672077089298665633143067897724520548626144549739228360174595938058746590784479318481550685816610427656017291093135838132515703394427804048247650547009048974866851778610045146508074646830460551708374238880019885061954837636376657836476561417157527590155285011776691471534361921392374148139325976332206050036603959332185891491908294495287438386393771693762734689486724128864265347423209529954833843083462624043468174492425960870277824998814478926819461081852463648829799161736904772178043966368235585315460838453094378403159206326032512852332892227964446865120343050542995894459442181164825783136445189387563673656025107024968821056506768463347050077068301298196342697225898772334369512960266392270480845926111172045999113683991275622669093923211566364383809018963302944819910110281515938985266411184455931809798526571338021970400855790647010889480980919538346798939838526846513381808661919414416758746775049240021024386390346911856762000394991856486417234874670234017224600122949436839086606868964889215013968373496346516814421388748617711687758755834975185999115797923622744027476948045085821970722655725096439003734672933827132460647523115691222467160727721149417415874636771784242218706111133061877513543244316875218620285376896345982835081938651524398532273143632184107028547524076578440037639190316678266586685269192444702653396871509416025967417535269188439515675075970855850091258413346021912880532903900471801977847893666581602225228553021114159389859039728384521228590387508283726211845547569334557794273546319464051881123457090813080889544618797172141408025748950739860276500315485850506752854144390549671689401884828605384863824404975932273668794956598299932444419617316651230241031491380639028848835352733772492048186960943580165967262297216813059627833709285332376914851641137433725013423022963496372290788753403553387359632324116302698389484466988852375469580515559619516300481943577874860447376497267315898334494800804593368018516720640056958955096104931553021612293511092762573280149321818999917522921529655598703717719352970470148601681517859667863527225890109272106798585959821272806445969248749800908067717927891068150618679860838436839781036770153875839779865742027513386477386920684794670092470414927821566151591426524346748100978964406774667774779636827467401314203000502792329825854217555270040901260746484624603009583225540329399541358731353161373926991768623271214325568427786322949865382334819606565595575791093244289610510644104584040569634342322704688658104790966737585738885750327721698318660999110629544745599765196094660689424164429587220015043238510294279450797790589856512943710768832485057440204102776502935949735524160504352148371542608499162057165649901813626203885946879667642563474370713612086944711034247591021667014768803217435302252975405475546105749371947605037098120717633933747619394230757272940153996785409272409705768885890244263253577665807176976488786319562772951336944188144712240658550343104376847169270290304052309019636772571710527276639879124958056271979000987114590211571950679269763846250337578610129023664971947292663892686295940892538920251216283748658388038106331039697069538498573453402366945055714033995282384301175024141485122028592032959242715508474894355841911437630579278434726438172279564412813448739962771401200825655917340590740012321499963336966075286512540387675213576125024208246383370732554639123102801965539155324151097928581443944124274160121927107397529967581813281422086074182658212639020811276738656416463673455818839430596273099327806161137315141793018691898555349342910767644365407773674569204150122015991088406671300495547420113648239547502797233088439357305212482058978261998715840384433599617768910366408704805396788822605046364248304961479308455567353737285469222254437015494313238188800055283024518010793898687398299939416633632569897160121688785832072269450891866166642423800649531039879708302081923296193354407118041907686377590966552315308033606602806749174742539580825688710008119472891156026593281128934638656817965682866108241699401846161314821086231041169763141239560240213206860467932104113986821606356371880244614481894112414258097874559672453218854064610676362802903451778316396052174772638334245914824971861159759269535265384270023241785701618245315416180891102721837802605010193245080207406165090652723957398443543483474795029663570427579485537750667054928670748080356490026148493534131547723180875094309749942221374793381102295874049123168938523544538406085057844500531616391743423768004927367340799322087456820214644533147653603570880604809267987102955640011118568231539069573303423990397281075801381394217479286801365072085465674835531416816916746552912122141858611435170766944902810932696395988439214908640868555125498829174028352748685990686163519796459161222199553719459977377280951812425240583881661493699279881779587641570946115492602483322418699926838446815091946369953927615083575718374207892249510769602145779007388849512994075276033056817758073002841247998576144635202637667652624295940686642159672755442561865666946240958182757441728591902120264822631920432651991115858516294707998520328922789675560013358409100504606434299069887061255513042071748522009804670057208384708181938323898630130336771260247156938526960371919250259982548192440712215997225884536627119359288552807326773004465689062578583337425431935966217163562041660266062252439215059641908630224714164926104430860637182917029931499262805464769253777047351325914648746058205153156485715689323023254067794623372725252711227091104781416998937158598758520975508315904577219912632384365193362873425688863326223671739109582220588642263712705672231070972154928379369524648732385165454811798588968443997603798277788913848604590255100800045491100925938835474747504773720812569865443417439364507404005483984904742814688816256187632827438925895864005038124769997233323834892059654361985174574530942083389150509145166492342675967589998000219910688348379993088310482860712108950602337422464880966966031149902955621613740390910616594210373576096524672483868115428827371616515452648320096286077004190053612693620557271527972453244674761444202329922029521600113153407201913251875149746480403925954500900635019013415018940010328504159062308533148786025102453489798596762838161408067606778202466377371743119998925443362034534737701502195894058617282044414310863434089793477558147055762201827546980543500947705027607489198881577878984479294840396298817139686934213522954363697975180285840896560557087024159715306786091771223342034632834686271136260364333825667457421005091267135898252933089704109915423459553233059694529111914395793854037335393216583108577507209332163954617693771665421344791943555572107664589940041804619501020667972699928801138560559303766202587406527663847470663002452278924052185259081698580351532440438548407910723609057872809379982252238609488362798467131766710055711245277329902778989774368887569788542367767133692369340463599096933656650946091175183404916938119876488829501842925765915585666136506651865000052721393459578304669697128350078977301772324507447764299656946965615029241420224888797509214180842277477842670247678494860368159468834415659197137559386473331984781113484477770541903969469933942714111240181624619739749705646348852643720279048269742857614201881961060812850459287468143724425885191600372469286112321475962195407262243610669444276019012004476034000840792671426870728353764485029831815165895122421788619906445994437150435322481257162230746285840897438813034944151373285549370911603234239719419861131886068653335904594494234159948036294681757463683000966120928627674127258063448718838381914035616351163235651940450335614619352254409439780961526502747912648369712013611585675492454887340386606146420885655183996656038455444525413926757959194104506263053705665857951797264282872332517558824864813456468936210673846369274733588598817316132730547964490901341839733127235805463745582678455433786620092315827057555888274064286932305571423566748924396239031718535747080903097185814415665579004335595305391154509120021401155465217304384601851212604490475375450568974564020719539047922389617809472717883384155552193636233437503804929142073077058014776432796383753231516527417662030072658287397178390826134501495765739297164994669304332421986241017947681693853370453340090673184245677099391742722888665695056558334080520888090575899857110782171619344178829700994402336745690268142572114830773540800644240806846954635898227205507484387153696620320893015286448321136520504461703720529027074927116780909531248486387768429077535742955914471091947581853279362290570113447470983508487776396948489171680726331368386761902868001758372415979484285781689684404712242022831661829552830569456039561437751268843427249512362518629174012206851672662570029719624918743347733488330031147200437849110976238533875123748810387510415138816325698064844727731272121430260862833746853732080276914732608451384707885390597611913528746512717699015432836574600705115696397875036419682074445959741045376395976739210504622841532665401427506782033329545570389898245155037468333134314279494104262731556340044656595881636975162848569635708218892457038091527709972320691276963045866149223199054377626537720243903073785040534974502685533018561181626171486505150437046734628582405566350231425175290378723886968265996667764334809456563811253229598622708457649828329783147975114090731697829589303552136419837805311262251290513299935139638416073276962851595201774701731159972134418070701423813334611196298562488047328468294888070070720726894363670514963666921311920049769026421231723062206526128297123931297196973080632919460761413774911639050157513207569575423104638167843974628456305262641766818323277980486964982849215207611491496805219390835182788325333319622502283515840868123764014964908506221901214030267856587785794855000836589487711784987355130936430320479484897171051393193735542602666730659751254324047217054691797516364492379429440075338162773049286606590069870931208012064440620887894296811181788859247970436269421046327634934163255231170413899339252383855920918650599437858026568451927011403828409284893433112856754727308072206379878408946312552478121707125446564939276383081920671340478206368381311186250617068542794687115752209718019295002880838480428434172256443019145884386728504497892772294846577379852534925235889727576224949853445321056971563051119956992345914427274500271430297177590383198696739150266700044976176908788333762488396190126120014093872619353099942662302308281944261266814717532065536271550775185633802618020894789349575217583482232192935911758295955085471516860825837879180413255225374958109605344794564539193319392394218034091510314152632141508024688300244844573261942441897860855868909446839545060165092540190007643730709744702422286288390038827316881976001567093870311660665341010097601875995617611719192962207671936208593644120440814377879415957630161381316853230475230363257517764237741944403600378061069254218684459276384814510469724332504294995826908676765731635472432859415808478070023241177125416943820013682047327720972564804941798945355476685662993064548006900929096915422296886475894710968604163525491938709487154070998075005128152066402361548240440497721214193634319902267700428330557886774487714471548063639027000582249354553467135831304657484231788963379404332519023810429737769089260604984691994989113378585166710554058099436494283679884548648934050491188193886724833512833068579819291023176680379213198341357641807074637829201373787937681784768938895385554210842587394045370515548286333800567350246488500045454321416668478139498698702254682717121980768216241203631301772542478476499899697462952874320936498780505290412228815571784374941755440523042558792059144106462734641500033983138546435311171473111693480584191955143926069505736725973038079106030687995298843990560774973229498661415230174077567124881457386427303985050280811805444567234933271773040011586815547488989128582805078088822133443478387702666765376481813734352849791494478467050559237555425866876824005001216461638752815986433418076165633890427169376939666432920709399879722045946153229540225540340483116091993363917293521907582614439914712071850417942932392325291698121995024197463795806428143783079913013389714121924788698409751281994692068617026138657797440823896136409934979565227878758763200535558266410444029036642093053197197427816965336122126198603114214674007466041342054164451951722521637154342008892522756040103996491773788112545536586398122808657974915317162290070837284543500628176858056005425362062866450739677808284754900443400906134726446793286655541267490958965484588111468147131935184146943620532507052225213625811439387566586555934110565898400964044447741423992950759908010074209899748610807887407931883314039572155719591855194708102440082100466100305300902377658803897485479915169573760512591872524002323471366898824930420635079583610049442339537116457565852840079167260066790170306332742052374749880594160645907562485627220169815171795377958664429653382534257112297937925832166817567798565290539446926318848293236608148453582225623501728354739742331699717851141367167954199153766439754247813349790761453018157598248129239989033116317372172358079595925041624866644407911099036485769612247012914239540785179595967407959552852184753320846707585365961496600637449372094242973738008168896234180368782328108446365522743267555287309620550407909603355243106089627587256511082320383662847329849014430730207932333808403927961304415507034018530224882373070936580694883976353897785353932380259727713086696135468593667629320267155183075449557168421920066238046948557161733812974045775739957820994032322502682038440917833908160866558205058861120785149363834112208411275453078996815794290309093763091690169251277813567958777604416583921340273966031667995049447197087685886803737001076758328885517120842617600399413008466807682114944336446652254481107909128171485151228735232159907710221439310789294616116440034427033874949267039116736948223862975858188027418056471553279387302643271676293894892696505319328518870556123888166169082728531224501281716563641635123614999604051543668783015831524256873478509375491191140400719783661524841628866273522226073554972480908590853868356227198229518540086534878320034672209008196125091383572560321444255934283752140397039739746326821090338561002732097381701899008010286315914494205095929584135249764584651378526013882190756672793643503537136450118177042216306014679550184966656600034757788038562936384192959338125665819342619760639869286111962899848843196380647898453401023252292653783088994234544410709418346981443761485286822772212612010053027877795494630703121055894393740184487098527250366595933588018360054101527920709308385702354976819119882186036549185595521095086941201877944064646409436259753017390919386942990225639401678210333662038273712889342749052783537387754809994034423228124475403198746203307017127750492837720326747921842329318222898652698732884040219810933552692101328476431456420405388943947920608395061320707957845128470207394916448620943516895181807574297871646277108007059666462784801788892386146862817132500324383974507618186118208071429959381885657442677774397935657283452264667382976985124322598072229292662268230116572509136092721036440291365346678523517230438348339981621607185074102314048877644000523114953001213233739185982870761004656922070118568703129993653716887616755657998055050492177967943621675273336064309721750156390568351350149742104384250773002512319018332874189733483174790599878591596157175973946540945773019648255577297752241083187624653680544050737998953019290359028755721467923803896024554707235899944163858717891321311611157135313185053892627741518426744683925584988150231399229821394629247343475082815259473654922434744342357878187138106403820306976794472069568406451153370582217708202037945429252688397522412643265708095782817513652160156488816089528350505225378622162134091581691209153514904559664370039426525547925661161460218723767548909857264057746456121591817958303271706356472281767428015495308060904359026306107768467812652624812942008516044209799672396940146662494513038255984777965409510540961949958869277758979540558942795921939864668944083424574583134693107567351497286837837637654240459048798597326849031554566251402779143920778829033395256110617350653043540852492967121532872071979040994793513363982936784749120121409584033122493958449490487788172425492049605658785289039952043008191168829804473437390473447579096247192256110218099166692933557862369373090535045859897309488743797047942596438435910586186760014825535414352906820693641102424623293977584977936623849416764730910875276797615003743410852611099152858958689944997328930918768452796501256338376424448948343738043431856988720821933320354527099916767643149284617021149875654460631026196079064538835548731953836390165861170228402272284126585306648273929593983453710833379180796073702883902375463037022898291947591189412408418583974153567576490039389449545772474307113203193485907777968196612925260172253003650483703386970786945903210400081937593799989959614195639399752423543587707076198470185516318239098423526815182277776624759252780499941545331738672014514267743682543462104782814186387161953694256751782655052095510050011579485292097940219234363378062034620627485677398397715822154908872162621938614912097058525327121705576108913039298309726091134795364102053063410074756207693276673011279378640661790445355970636552990420616378636576540074888789305522154757496856616409244570430140317871855696985054469901086799596082594490837075456450445498746810638924604809312836031424900826042328732651976053845655379037404170390040714355325596724899293449662841920211150909178566526345739591102253220153583279165177202449972305078641564823786091683383003876672818188249834341486768938286465291204117263830051607241291463854469464940111504748395808215695933128272460686139338566365502838798496333111928684178475582062232133448265784868226151401667363858832205385315317809151599887481922803781461205867290061547169884812321396520079900803602774056874485605834185710392237770065285042194728703953209038876747434582665991602671298926201360803320427206134630790190428197857323600814966751017202665746246990412829458645776459988121751045644790099032896727515574184081400929184449697658813420895775039354999236844182335004472921174822379554607846199597197471066096301826453675788180540719115022427224369122012853298259044386477718640058778240922776232765547586984135015801116891862714405236243041538167099477423782008976709509805665609462358211744149876014400520745500436452620312123789570412922673940226875012573528139977616295283210848131954276527869247602280411843117870525778140771488223881913220628261669498426486157376109825162687127160506271537695643450631257103241549157961595898466431324965584726649173970659948899455814747532785946575007759820167765093000292451968171445898846310545705221252735749842866615617658950617460091761687309111545951976403173328619004457859372961613143113789018479741123918682700810379936303876470278006331775078516243755684657351034474856945115511527780309370846314264150754296938006065505888773077907064280838852658571825046592504790853902665439816749200226740905882825863100018609628442498438819410279776895020882760951021291327668758013856307179296984375766517534743514096312479869508232978045370299978669128626872706041378993381448250349357175215437756687312743236349051163120087084161990297066391358280001256553299445106791521618998487352712689771403402270273888106208658520426177888134551256351593550977880628971263062664327892064445968853290766120151608579260021073217761079903508967882116170406302545566098187258286059611718343951565109449202910913904021770122250180818985570531478260332547968361889955821534587800965219531454413503652647691964126339819351815718984157368473869034062505861917522674502482465950599107250398301985896556838711756621709740401335313508106058264544543923499799641320814734012141951059923409885830018731421991049628216688241975192815573640282718762009854598743006999652427369387287400970446089234945043584421815718846619124572284597835557607199591594167846232889377907107732725779699910553336524828134532512354339316601207087087832447433970807578584684561070918777298415503935099521822957084196378156438574380996235263394301140152868248267638390423951578455370134431825872738175330944172285641503170079536745709809221791167719008631741876010394372999501523880180699702243987895732022308649004640177839711557513619694375577633619499533777884382600359076773196633492392256818619533470577274234715693491289229924658416357832600057807950568220430556884141326937159677050177943271606659967472632500145226746726499597991544868828712410108530578633277485980298152249230631284679816753487673296934222861623865928551789194584615626287663142206730745473998702656177252698514766249643671907710256885919892461631721134205679131892604264101183383463753988449398154693989521012178601558698079569931269111005285416195182736969150986182326584550848214971443127198262012099904172807777398215459944531755019393577897250907143458135066615368043664390769255924486425039713565009998222183184824706735441592820674633215249646268560422738321400148877933734887203997888448710003631385036897819920525974949733031101292374301965813469691772803017851572546067671770706137016525682712576244066687534522086558032043319357103232722243770310654547092952798077380751586208411788272377059099702357179953107732758831723393256887777410974432859916918242751292673702090340120350185099085258188339216073731012623815911402951384393757295809344119509888062971588278014456794824289279211290085849525690023390535794399309075618047058464916725690389460709015025379308715946364055619175309995448366148717702694929814741312344897149931491569921717130602556786681716197958196238246803446751694473731351189425370988043839465249240759402489217127182813114375333473983137033828781663355236812154909234784438993203935438883450073060447395566697930415275964270393420120056224528640987141729395526585939012329663065277957609113869850717475132355115229366141690284960482839666421160873772094837971731755419398885694687828054198873619719527094498506547899452431136405225741352169420453424921685245292902581554285545189105064752161249784642965133465790621998262848299696311642532743438384198679861074377139385322994032686447730761306327930608808924044939871041012852012136143605317698904170418440915234160039366143614479155884636172791453261729533081192992044217568905248634761641465821572912376144873073267955028620833414329285988001401993320519483987870792143238330335752631467952485204404442920867459596008744848577984391262629348553491011417603706476091239434789894443264274622510864621132847913435437525568836903680350406298614975824871937570393492263348531708746331988443353163835818134995676687331110845552270215247724814449208208403941059083930459166281668175104106260845843424688637185965240101377973230016968008066303599956636066246040436485800352722389980344350576793531249351861805629248208191497598859742639580547457035210915282229112439428835266544847753155930538831966963313490592106364698949225546999552153960918389271298134062004132009563304972920550575713691617007516303007845045065325612846485643581278864019710478935170109157462162216692223180220029719022272496618177780765316724493808689594837844402959530800383543497246335830403632633893697702495861686477343933811820966960733997492590151598786697328101180924827038733986299872697195759284312587834610517786535435599988403356502306069458078836971480369218010386043458923878655287870316776302153238333797129281898790497097209555249744001818832483584852823865530602047694392052883791322553761661099453710193010069309457743373861707925072485790121219663432614772741768724487387866727317133126761141874472136417941079847746719499163082048793597806717590200526238051416875114978619056980106414002303335387800504613390187996072993867176093181565583913940281356114379884364039492749497120344725569840382418219055582688298421305234907246488985245487023561541517097634326057332043692195985870694024388619166914288692148033412167077640072475090083389983120110907635592076867783445789365648186243762799028908440277753938622473394827863853258269488809350553212936940688387880675935488823738116694696052132682286035374812855556027825013503255942753150618115330056022657969358781711810291242301542935110419378361014367111808996998025028939982412995925769690303750337456745331546230443847804859876340816897343426106764646979367137350270438584134779323393876555645830416800632438041622590997140221308568084290321533596018411514679937855386844668778247155693627272118299702059592361701253896360201320899467804411231845013857427717210357570158423138580232452168472530717195821446313270783042482389444128679140247643413572980747789694656237263181003016311377432850686670254075150448932542526118907008861791093375710360827626828581359964125102340507452441545172228297525880404653402876756956127035994335822313270925212365501128012694885317982445634465164367935655960649339464956765382753065370809031137834297672410139013258948850390490922097623928437710871004936199363578679213913011119297942230464951593477780300637573366509515001917013899484616589366853097270584738562655649456966099009958061005426503849044728658640961310347015007969831345387261112684549817055873975805326330556887050221470001189180814884622960374114221678955917354144487764688619277328896492083642690104064067006224446750822157731596512697810542491780425223972477686760548534341009847210935827215000747821516092559967124759661402848875776993350320622457189473629590776167353085400345789725214601947377818018301064997069469633087531146755123668336020089262649941601321811875525616552882394906761882761826778705595365117680657931714564541384619612670114861126063153947938008418378207908523308969148198271731901643156882125248755920979876399357361315667392713387016848905024570890054309091789131045290242970509619214255111143190535091610644208352608580116159652086193548803651476202802507593163944986325256661386710006829538305232523589398265106593362323965307279644173904783200816487107021004506458062630426182818195564289416799544065533914834112877856716686400333657277372065574345572933664441563641303182132207822400567170709374021340252904281647795511455996635087951736109036272277472193055907524153788913104071817551102974764703496312706246948083188423926910332305946019032363819689861757467877183970233746357627679769442652616826550710846523850302415253734788015348747445653327098028624777956582126077019229921315409223749223381375805842731709240742125288252426257904592941894700106737894488572599130408104720383882088209969640719021011399262658178847934386263525017977165358883776737432998198753024766110161188611658167588268630957947914043535807514194547073039290634795694779994161356172424691126879041852521780342021430416767219019409745389145341047507710938172767781695382451024508745304760706777628624390523825931436181322785435792738170534512124091827061612497867335071471457089099167796495130136050274473963523959957357691539290420729641912233392581292815037575278818305485249933654081084889292659762087586504895469736664366391972646523653300468960798915712529325550073195455024177760837553725719389963514092876843233158288041751786658052479931521808756954122593464436299726895072457178970052488409345665942263906783746552914707898152775007365448535277247864671984872583476136341572600519549878079438516366765804765948498644780027847160359228784022671098788762861410548346875039332634227545540951162144192662084138553515349535785628606361876182253675770968257892607853500707980522368825412240345788935828585523388739420450779475417219788836663196806922061771201850007295742667139067472752661956713664188895696600236533533356400614799308361352080960233567504418361848765253274753004050215119927579790118764911495516273881364139739043923951088835596155384326849464853908862918367439233995219955082407115140815721292631529065483177880936307606479221751298129352411402191905505267320904727604166584792049829039584661700186469886045772743481264897849906130755298715725850394512811883403136927694931434908409053244360013582535624231178346664881806795059362056657040626656591019513174103968802092677842654905640217611738889525524701358977244561673566765205790360638755008475986314013854196696377061821912588320394786648520037128893964622854639897820945632143784969229511428501741178335272447079598071355453341347484545400843569162652050807532212576680609150829174745293449352093159649380738129075377801519004332328414494654072404352710953227893363144987137920825551813174453535377411091164641732261934230887557657567744344831501257699396533307637803566969503440068793813116271757098651593939132494193454805094720126104121256852779575715879100244473768117952302123267961843064373244585296189783199918417780194230241877368492629553913764445095884620368955664751951340119800639397786706977335276490034020870197388111687617776710640404674462041689544082873022877078422484160237218407075851176087780095106658432253083876560023778053593350469111848497003612969114779131224721500847396163438995872679088395380901281391623954047244656802737281083856479852072592819026800749139353470613935968776806653912752252843814970149482285790354363195959017095205752836443158901742136281485646817556800007414102412163524482742448396403470359347873826084600000242586385567935110685278375822545355123302464152490282650977091930547141438228442100227477948584404714844710234361985281697409071186132306214395792731880577343114925583845708961474555671536399343211550879687953048707198930464981873191179447829940950959540320836512193457267113409260714260497035828271016826193380770147786223184660920628434418975238895099326522857193931344176263785558788364664549382726708189523079503622096000339463444326973360150896354219000210167144746471582830722398985542051786559660310503539360005999359536714485692348242407821584288317255658628282791379150126188828385467448475866366588516300287759570839447508786657078160944978542703264922287738006515910375682829745677880489641602079243708343921574523648609447070863541003719645100619895143391910617956245454330594077739406086351204651784749282795957731759484861501524106150173881315916741903955795113641050831864851134009082233789529471455102652122777439145911479710165825826889011795351409745324215186794343997621236032246010069275558549906402386440450327343388863144452118494257674873676459180972801789925178221736967929915373071194073758105027731679430210167788846586479437591020616926131439381280236481255189482707251150461621304158801927865070926542040092503331930804215299247518824716345671152882333118785391555071339104533048291010126223472003939592830999444997427921623717531808156844570164178280993651351796094196928221913929932460885067558210915476760099035825289216702043248561704425016000877862951946291013758598937737783226912893185132717472623506594760788757124146942630133746157981014428764686051086475903198627280732531683318841505290896583649683746252825366422776546291938149395436012980127148569519221968466057428748409783347225876846794297855569307976703081280148552881988962692988942273472084573788846342423635838963995970895638627705810673953808718202188743983608602874405502591184266669172065159190361263691727476082636913732429309736540729927065389799121259550854426509737601393712219770606905619289548678051891842981502956302668206707174070536208294654736702681342932031799100729389283903806509291577910599281804064122719880451652448540412301433727662474232868184636923027837213437576023814121602521555483959902677373473929275823540842815686459032972164905912109233056321517947282115332287610948318995335482986138651542506787523310291313782154255118693138531765672862754057104774515963277843339014602497629574995439616510094626422905114577699414816314800706965156041426766032988611309299826564842338989403660240464863343935133621136820987691876521624932728003768481359225802533394274311859667946185151660940926304233950317550313356471403555548343250956835026198141730838359014526728420097777594209647351304051736595888911932503278014336420323792953166039276677596522782284982233157929058575254951265301565651212372780318393966457306909423136755788632330432401175627675317800542260497036704095876254855525060914833881087398561642208116216883842138926296369459374554086256772609176024514192059465637591653916059652652757337424478471879557958713700547942360534827431982046443382629608320431465146455391583877616862853108275135072100799546443689255627422326223372971560979875207485456268867613221890195438466672253688445653919614742707072941569010564782278298216328847189959575308020941526751302504949423571302440592486891488278503369362989371223137104709786044349917288261207206851185292300009234985307917771293626541823641970427204100660220400098975977687866233127061946973847225206195727953751641167096103079425096247939844106861426746057700065220202523725245293781236959236255996617990046332707845736214611101676481018012926171266212819317531076733009932866291515407130924849082582743988003042747667991673012332253908708501964846159023505167347149619596273456790411305386158554818466623734981217167013932757527122942476201123004721656751420154593706788343577947551082176134140952887363741917304402078808959855164273361111764214488416150307824983406709336329284284608524863467300305354868366409142415121603303176608224284181701440334759582715310028301040957925068253206272289555107739461809197534030448701862444823247055807034219140531537823412721232504376670967296462596139508666382853484033879403725455889381522115063043393330913359033098907841713052014590591143584557328221010129820883403753226694080141724551624633025490315869092918267273167912213188818432080846509706326192157177075243174571374483382731864394009793275179522154926145532942583079868048416086702970042447755112670715245121301582181926974407563468370887900067261236164916164792433460990758380288067316735448068192158926536214799400504351590540714213460874200865334041690225718385053700954389413603840053168131341617582423103749341917405701318994255841231893184547249748063982400793628968937580923421242041872158789595609857490619837092958995973585665454712559731201889730518464753640284690300326579766996354611137091548272805848412984518814352842890706972064490630393186967790779817939738118301068439934177733821524486207804538721423463602712786940925967700226570720314621942913659485777013137579925135519002367392120283248762665267914455825751421904974644117528886365693994871122301888802883918122741032219402666298838732392635724464288536193566995833869039427979803880370020719108224855193432418537333684292147673971552377833421794352328644520758617692231578978717349137755831330299092548908640388122343217090558022998219065249967489817403717593914575433349235633496701801858993235756078647473551054615156931182480475390556200023538405512308109282153143678991903469155937445012468304719551028347665168607225310273522629802298792343329231082597632922673879819840424586301380331126847980452192753514937745547325986319709524786800761651486018191388263573192780389405434894517630920067474324869496596205967164626018169737180676475914862810152531336535449412491009932136395524493268844333465447608633289201835918524896080132235760255250975919022765204167975179282998558489659980155275062283236485547095484907212915640837473560441988650451499877728006552859393993436173067072792863827061992548403299533538162134743016350988616107963853386029559622926741270959740923900029279575695626059988960895519969071814350066815975199029350390902959982652110731160767800584573322984877021897236527899050570207234436089676876929343428268089381701591384591002006860633233893274177298068085808861733512476522260244518184980457095062781855303700564637804617883866602745126363526642238790444164684350624840475365404836067536636968593017455906618232763916102084844808490315605713327797813301594882905544617070950338947935093482958215123154322312526627219191205071972675144693261890750726795335238656491496038671456502149109664469037561672094467316158118664265731105447850540478535797283698575439071710981794548824152829246490965573245226738174233726854133061949355230192453181401476470148635221495082921510981469162600639809943912496358716924514431819021270199170740466858916090662986652902233942870101960829044074665539423220211876855494914449339350405216936952155987007360371955149868341875957601979858247948829780534514484452860399955346180064348339836658382782069923928033159798246953402341499956556021532366816868180727339025858391851759426938084393086225401879638466403663141528188811215645027468840442748157730029698364187703003314472751965736450587351902931456434008456979904961699966989857132500325600115544551248948227868766226782028419927892047842717959031861740720402618321116043050298057464834677496509753661776675936743245208560934402347137977109500277657403126173308719821195369288897100195693103180897687876452080993237518660490674754929267320058790497222475815960031090529403316593384617669707297769199337863490262188213472626340682117500327797532170435935833545986493022002881322642229140186480258924947413002724733289349693220130516470038129963180461818341398711315349811959973834788490188961410971594245187240184905175190147282730088692716639529834585016383696932440008214563742052797260540860363134242637445578499484227093412359900964708277270812506688488169888828387478173494863450496303237932234552473308942713266421612325420651020626116487060706959777449890810948053170389953049766794960981998855793887164087174524083662482956482330113020946140521915896641062750977268721013678586706126854905313313695613773663185156571054401053399280619157063898446342833446901253855781312861173922692427246848574099238989969105465233708142883558717186806372058223734450705430598950585409553776619976434567089650513438972802640495233276129858946394278932195062389529356754953444203953476275859150102105838773302909367277778932925874060011575062569557755280739714990850769806847902721698319996085237878926925165338461567657466635770342672781883303140093890113803380928152924524672865862074359995992419537386625976637694133838023925586472983402692712881784606743450865260947732611287940609588434093107998728475629271905376505684690365777943341029805454515076573500647445614296030278848374483102137394383036320030749056730816775287742234891323540381380785780737534517574325181895719684646902213385011340864940724349486758737563673793226811578474317588616243424331294649210251815380764498790599657475660187491506692654987237521548430554791536898431339611448156772493928934856546579544742689446132732245666934024300248822247798239261431940105876954988118977197288127690211292466487246324737673650758545650468866613349448997284377201798250523394778898218489687361636087478634573858509159063775475740691465085133746488712912907395237851143309690127186562019940756032860714369542697918699375441741172727850551405545057157177253891727637386013904713897744815327263997686863133246683199935411310283145984011351035103146633662042606522154933538533005201519943665675891682089790598332133218061775341385220871383913906733579104740127978349958396769028439136405446988232635550744484839194205926160820741234550587941144383451870291616354959166579624794127021378686106726103865483055606563202995688030426445582904175331676475660681337811884188885746450294504121502436341724632098033808726639232797957949398075440060305041460740902012916473872454686139727711755823948792718838929441193019837296079225347306028485160979459066636144038471662672073595759618160835135464464505563015869912063944972428363217987003088876456621993005788241676358699330491784013110467610118507498746093115674008524098317717460003169411052454233232445702209830482899018320137153125305030192786630717239567850425769737756449165417014853177349434756030686501538730040886711114702568733887847753930274847126223161911662035144675383160205800012801117844764636646903684606727684540269686600232243145016168809193012928185108585493858801616425184127541109739339178523300045675122142844325753457103709249963166019669080385182671460324360985605969054245590812275432474036850617533522588277759319131406053056795360955972542479936937705802501919045447542228695346596765984089190295587412886606084670538313258104474652564425155722774709061982453372706168736568147353846635191298787171575787797875649976596660413468671057778152746074098039930866559626671873162403666021774025797857591296487931816791656346419883281484812071644659408853264201062234690044787702129975909786776641212008723058596869828898804593191584415373123356507770793216612588279428521740544460361676831919288011996816394114446328097686248637593535717608257267751549794868132611784921969131130294153915165063848429218066310089660292835753505353626325428155401373920843108041065481993547165846381995214874372956391679238753139808192066823710484324046030062805410701575650345283538546987088069826499949338101436850409180564237901173663199967289839716042322534978271462957533608756426686969137201406561080045085266914647537909438805931043857368398989632158786934473764363888199977293896300812281121882373105955636387400063998619959290172527944297002762450681220899079056155545401138918502351918903519436882801409479028729598194648770284530815787426872749727764549009483818502321154656550665229647933315541867604397845144723846598816181431374841458277406582565440649274816053681902993333203301798545230053097093405307703446200902002711656657217436312774590300393376710973344582665258784147459808542440279753285276308011567186267317905631401910169690448858005675301670602881107572560179336667552430912502739390123433856118153719822231669240379257470650524025178208964827813360888133986793306776360072155092992727722410541910959462256315004071782514431725488022059468935971065055204255167352072654651679891581780019241124829859124161892941370178449699231714997809712401891223278613118294212525955913919747770769907106065156955148325667233434451178971987280012249769484071540799474251922773364411841869593883676897542508132746151761236543172877328250878195220823852680227151004859131041774844030977538621942686815630919969902587420023550094435270958073621636193800048497091654179091024292269017529655339006117151426940236905781260917992012627358385189159190269674461966313414736729198127434902933102581719572144851225950322451695633826332610130393739395348603534070010829532584962710197911764634325146209513571244950808560515760692269877209124458457021454223863004752088031745963774272404214290910975995777010249489186802884931411458111688748465080563735328201349225046678598691156191969554383931369479112190310334499673932278560208771645598234921307467082457503164753798365154207683289665344290984985442178799678122053358865102627993951961662618613743899181289255796617376652303757235005151280350431640097242983871643857628198102232432910491404204672566957217005563194064917333281983906241240875150760887536447134239575453918613380304685961883567836528508190778801482321635484654352581197321846491650443619222084263274031296579535740520859075143782000335191009017574408592700228748406479545542266223569111033421040123768002500613871307758917310477254019754180793637634912220707073569360766275958105009919414990775649821813466921288763458108495175393847443518142784211848753467370249493437203426527229846536741028381806296753188202412043023069714782878024715942156803754311230473814334906312321356359703470163786359556262167776149719171100579217412970376957091931815107015515184671982193993782395358005046526778927535266979198210945255487382499677559394154716311728477529428383710895121600754181925206970620335598616074145602362030251291249042935860617725534801813319845160341276158745409568565912348642721655788783219044279139946372208710637299815429194361380604454003104193408684491874424465776814482190806424046805956136202767894672041874683252604748060290911773406652922981365596416095113588849179740959718217972291268946837021280580466399292929486201214531180322488845893658030032942062234766348056995872748718990502298403048978015460191149171588406964859234180497892045626606704493634129118009442699757633944950094324575936468137325696553707267105993539884055434426923674694843899745145378891701829514517604799784310487655210626618115301366338678854596583656203976349138334505601813216544015865246749537281115470979821304254079760615602657788770519326056963373937950036069792556691047536556103651668083247420914576531174058829136823179993074467671217024867247960719819466070339959415727059364997287052613947487447199744608239611990502446853105852051385521634562824875003068280892214163865094230450479933249317647457863542308510295323996560639217458761580463383828832156451326461875077619491823237617194615584950472259578324247002560209070191379611119807731087112021828670327636387487505565372609335850393669716655305962244983371796559081690645322649734215497168603388742304978507201454299995362409884548509595447748610264252139784080942812300091655486567560372177684488480581937343648099966522055702333868858461212833590176907896902673820183641036274204211106822953519931287831691894459605573214815108064083127641076642440437915753471115741962206323335315585145925792325394189024777482150868796258557527068054019368691722694571569413575807337027916812945434878676806610536353054859001697264355536609851971516219026370229435668422294313502536126026897805812157006671301830534140700036734845543849783326521993492440004588870521805624268804951309145507167590088684551289885613822379643767376664639702203425563984009565318425569551833768314176570975823736816773039884238200049093254501506439113014466225267724629620406965394450947747440654056874022804209941211484884480147613827526095511112762697061601612002087812809627524788555045161727900530964613692265416591398868996437422591730516963481582135341742993087879781441040435210359490051547212394888375713921697045516480217917274987937834288016621621090699773520435344750962454893201113741355648049615423822461995839811468795299350745723123553022142904464094358064699106810753739764507942274484324176982993880041672947746751745418960907999219801845242293958789571782624758333510887760767257201513514620477632647514816527448009323899791386606527149551465760619161009873332419854943916928547548194040918796501673326277318234335705727942303519368667853703539573995642918002625950155211063344955671069882376549698300403421640127652228654110912250931361213154667195853704037666343955812848847701730588926724025072257515905083330382591469799704078188329418310158944584112350471456146641539174387490682777879731664085858132139242824215001003054184715815024073994027771497089059068925190413332842141632595865310248048724451156280198774633818452255659313861413576521008678053628696907590812556696590706848085751518736298299276794324153027395590087202545564724854677427064647713529051826464668059324467976781888748136202612983491663468821146689945628874827066773128766667059983402066803220659571933308654838250266800116815560810277066442297435738183939561009379003166019054586200832654002044627319255029438993635201133063521631174646787989838167393169008800771804333510475333042769412785180940669968492577820040946668236462289112632735813756570084576286471277689453634846495883075243594026844960225844255608313679613305382070006732974363093793746130838912929847080294891122803825343319273902917521615365562121516159300900766918892953426971746981675226707004959243927724466107310675837138240181438577776016621300131973727968394310287388662911514893136289458649386222363052642261257158822972704535303749140953901052141180409713749535767208671277686790204251325100941163413447637095466469120214657779387388276198759087413712149036284046318313285397999680087947420969063978010222948440557694989670366602544327410845307334136477895187103646407808830206749031665397765304603483816602898046777620769080883061679936593419225891360515387832281766542936403394771167419352623655344862910974209764506018450732011417634858201573389780336798955328756087347678874755936299644242645955440394322962114719837686302932547977987999631650303136274972111374463130630366927851303600309915926460431224970348970344105860914506820726808921563397140290171562727546308034474098744977349781793644393478248625263279372411917541378882099182077774313795295616741755741632207956301794576726578198701181545129082551089117997424334686528532851293994188905965663990089487977365420817780793788584431301336338330643869073970161226172060889682987837233978906062777154773906483767086303698938502660240471973577957215591433982285511574297458590393614874684003647146777762696196075385078414966056744597392898992243815536966566360886048840602701155822033993109692883830758340626730043252495469325628615184865697647698220250422596586379024641988557410944246248038792123929526545114827207161103967434475683276370539780159085075391131030967358096570495695615237250425705286961606805027388884006032914281267559860680655406087738071120670718137283739337786055787239806287001658000579889307912788902822333481679589797812241622865377813095752819447001633932717497442723522628299502027481691847066943702683187835604957852837579948537586462780138593431020813174509591685625929377931835756133991108804864059942317308354682701020545165019901732119529033756437988450362786856325417605558558127112268981714547315924314905660838997269602951525146461610688851611242900430119165619040517470493147309261315626998310313682483394669493448175122926653213634462824004663729737543234207432372292965504998678345183367877719543321400882022678883078668186059986381230455073393776980431345818080622033982077989171688241999785003931103804947782888415672630432453068391678148946475668055877434477527636440465615140926304624517128168234936876096523338960711357924735783708151529997309362042216652405645128568942432635191576762884453922929157073384427511723172412445092996176830542638813422743076022601232460184117351222581137301774085605922008566614364745315305934530970350847926479817398898603924665082345596504837223627367318092940093704426733518374442547790286148718815174074483848556159503327671404799648885503197752055216532567890510785810082566934634056798792000745865181252653608413595393699739597721113922963420530702159571199589957855885589455761378751579595587505426218503239218548872826709121572627197554405867063110222715343511937368449238569992112708174636551076604103272678473196787611174070426482720543166081007357174339473631474519346394385383973863994657442926151885820930589899183824100570985032319002158955342314024267760704435644726534994164558149114053029123679992455752222783899102524567704117496351002167130106612212448612378636512509980684997546235684780559939587350532053212506136633968413837801251832324921165205340777528801177011622365278483232384966748731628184297041380666826773488289924997232610531924013301659872124241868975396382616604938445249949038756820384611897197243623373947235343950299013570419024621114958920703578410272535885991621082016349192617794921518513309789883973096798672182914181180234992369425593499820805986975456019928857586279654159848659067088738715170194851307211125620969198321698672565950157534887608551911526723509591725652306027388620328255271175478826795372866487663056833775587339281865799691224589161086632859462107087105240045548530503907557368814978376183759181776864478847851329929528977598005795274894519047386324430138708368621950878445794170169403041438688595216875221486422497342769345810739297491729774931737432827025567035721301665156811186822402112795190456988227461965689249033365352597068302051496357706490596666469706023983473115851712258699489085759209185036884715246638212902556851886740096721865293180914960554772517727222149386695671502896472338338141794969910978677684382879080780925968401460883505388905762231128391510377850134352061217809546496144864048257476386410432778401471817740235013626943067544394570010464036052749234243404437443087000466030811107832798367582230669601442292600883205966601705785671902866182511395955927726851336909476239003642149497270692355864955184273939925683957361355145187474082170906713329856033447980492286430511250404513477623535883281890659891163553000122264481852176719206482400535612567623919967606520419240777931333248732879679252035468325899807862370592568885537154841491771386939377402735940990787930025672278916779283936820741188707824016532139455887372179560897224791497651468099699928133088080715519782206292940379553850858710938512780205729607800421316765630879664238105873449987293491153863841531330923782743577430615338139629369480018393087018577698816457538626256936812053027301066540637189479707463625432184718974729937785792638405220459382646900874534031745389418212216722776090897293335300875010019589872522057438010325847648809413052848172462186152719747093504857037809689651372439584016122578908899496028358955352414952409139240954088748991188988973394543297782521034712344787277589324969355860238316337915463061860043527675720982870552570406847571413846262057458401643755347329337944372538871475576445786910619941926715288638662323088238673777307335194530196800004804446126452215734747819856090015515588410159086217606248256468066173413334298864310934558320868064064160314768726137417012275497443028587610789895760154431460265733329332375794012911820396873263335678900932208797638958224804958915468762905267243749072121610838873085823904081938783176798667065775296200652294294320592786863922943296466681437226278198046144915788816246650019995743151747215146521124108571357039939552009481413575896520774866173898936100486018721261339279673458854060745785063157441599541637720959237711246720885630864113986912972075927736125161927215172844555521305760360962387176274198016962120246119129414507829311724227692771907047979461237685134197782059811534212302466616540550652346510597618292239497749014701059470499350830974164022882204363958844784616904317027941318744502050658453556134363817548298799173669227105660623365640568910854122242449634887828553230891592027586656793950196442857299728651724627656353764642666733957277329600131289084744776630883491291134518430782074084727846943652026130849825467949350472360758099320564671164065408345543843183303531712903459345516197700454004501933082625692101624391036201325277811647272922554578301709269638998442454404983446125898521148304704765178809359921884765457670120540343759091840722452551987497322143639972285839192556015836775265161695156974296680496068564130532511121053393953053148570739673437353320989956717822431650750479513920196996515710171167393753189140560500887166409261221370741514720576562492708843166295809249789953727295420315454840559696474652889537707451961249038951681584909014239313564257496022305126800666800870269671565243060391653497883404877903817039440957738807912990640910943630783399780063641827204540542963313056292755294016003476597512877215655879528456978786340240445821328298462100372314131812398649633590986373020401137450194864900400300035673954456650896809881845142690170276827189739595651470514796274034104939915680873245474380745546069579555228116387657880346924544508669920543512277832571472211600273595515139822043731283132315374834820465187409131552752195810797323472065379046037964029743310923681580340233317468863877575407810855139281572140126313580871052269204944327915922726223086984224667072789843914258457739001527963342691651255499617666462103453880222491883100850967890726019182336936333943266339845967768497303969467683122143888551910929256013978051067054077685853443293348445211279547810372013771603799608489715495215382706105058302478120803860481849308994239839882167159829566574335355023744385996068148098071152524127227093993093081993341009535695798854248228064356432202838909945393693554883413798085708018113447339256557700273082808440330064988693085049852803421825001282303134965023777764266445504807909705458094665256313522333948771445332502254497069834730460167157294304938972061571842048342051742635449583062429969067217671295393908547943422625890755322614404336741838623363681881718528110603578101633056899481960977833267577382719482780161796023169016783373934969415235390080229784237730019268718275217090082068203497501170736339327021836232999238052299183943095906802099143725699901307997834273337825384560648522675936828088844989825362764687483237206135857202360558345628267508852340556055215791574513580763741403309549892216341484267988847474544564462571073544988979899878576818682307450802618901801773751225378821721682920654565362461798088800515509275861456559555355974883310447740637204537617118483707605936623848834592333821147276605986770366729738676802257576709066949041508206892331276760426600758805191539636030699671470997840783203862782740517734601282101801560326695123503407243823671300601411506035895179236997616742984599796791500738606500881195582470345202283810325093675383269386720009482227269237546249827364962078057935748962533624762374272381610718397070327481322921991821215920256957653925832269166110169252252404443650581766271091842969203904741998305056012174293922686775089563012312348704912514024819689383685146923187030229399746971752126855705961319522010856454265545807832183269333329710426246199037574500093154262409293002061196704766317048520588036782723620529751927614346082239635465537340182248930900883094622181898335308636185178292090661512891230842328186022109115461071537786168066813227025457017795764576702598087934254188331005670734144996996077286051011231205153911861717203858441229723707782705501946053918018236608151835457812243774401298281730985178165917504037435611750312931841308006820653453212223120694645214067865865337678069852823045625212896871221166332010304316445516409160640204286524141875394952533988804493654555864929194517384294050590265671678952079166174293011154417854915689709214532205132862675840221850269655972289211849648298294471917390508054755863586724054086216194968808550540771847615132990100165430000656315859906481551849886145591632810323390885629948699791975880669023874534644829430606743196593164423324167517414551986161204081258392381490769457768363508851472856605213583909930882796640977996385909564233205633524401989880638213816826323514409662383834994017707027471851310903426071020019269122457023218627421797611578730605529632411171179773530589460263166334060813439710190096161283826683744908453633872235114258343039578741835886807932964010341838026722312547414781620303008141208072856905937480646964138330772148912020322756951633074212828779096407940041842341620187594346823665136567718628259215492686799605508784649668215934629747371020950296284983886299336907387081906518851960631666322743399728266595982977559431203681474528347576939400670983561280725967092354802164222061358543364501392536306643968327796142933268104915442728360139858941285804575066892536470341579988511733221435921366134967059666108220191377531629061422530015670875445412930050877568832076623629426913716445401300943171417229194838120751683439120257507138719518341551992031614327969857484007507291128756875730703609458351596829775059883112020489047801432848972170646288968612544308939543663606143514353520400247290948939959907637106936792502927733829214702260313519399158054768673204797466231495720779515284422769323209086232361452705340993215056390932956451715555917333518978651318217677300779587151422852447612160311290162654209250915172751757854382597884065945658131209910512854966728969335824162739780370266011692533342717929422104872011793809366890707590435458461928798809994705278462379047569687830499878350997700808944563098231404412328194210679209197567019318204181897153210881946983611220040373664054597654751911256034713945618846579904134255355042022700419328853468686471547415509491741930278552388653659756323382683893298051153540131294729872401672837286987884257471872792830169540428492162162184109775797770118762231253388483031388844060412077325756724784489155163044389192733054769186213320099977301740101900256492561954310493005128250679476427623800699868181317172376921817637718926147537314985987928183966242281515056536761500673120791552448665365948070039373567887148237427875553592456152266329180831018480999915491116303444463958507439055896758866095222969351713974230508165367367541173700036637305392112825767297145691802221879442802219289914659421366953092898465843127237441856163559992094854821819272206817891834959597654397710419877970778830502507419624699026316663333719758414705488812185402854676043432009873679647802216264919857237419057742051689653308180632812054481776127371535353599853086140012664871998762488842103785450176772052936795935881912223251877231072416864165117725995134227763226624350575928360606741171438916172432304443355093368108811454798245421140772710587660766445746311217575173896598177261074669150877132166210903169466058305252221431303808460269361833975270469709270157386703582970249828955208626172208303525840213257730009736764546011455607270801175085716592945135876293304369401463474310691089577283593336432265163852714289391351492526208773974017693469054563864115320052490166664061569628891818769999773434057113739909773738791123453702392427152397405499595542394811848666949838536164247575538082747118277842199761727321072238105591508050017991943919753481677510611456847980072211580966016189051309507981256205306262958525142002453893943987770022410467785056255493414344566331247062382909601685513012095725497683903138741187937282370717862987608920539576514855411615336313644064846425209657462103147912416135753891855653771070527017704316773716736134707816911309665931832150827354658326653113547361921024494257657534889934108227350540106644817845220755196290775199833133222543706951379362767972155292478383520824263264877278765782561595644143279135219180542568509106827793008814529777447885286173188494490859608112647097450666648919553632823825566301109118567302354576260241757031010550679391707289460483840487606335637849128384735484605153204103482833284021605156419927092381003378883876636903836994258462489910216472717152791872441716154424037097724034143869846333432042023999936766355036820364301594874434399695260339160850487731211311764410814872274626831857997308145524840468174656255405619330667393943730828211653205317614511666859607323950221380251378224952658429370980418195472550436882201488785060347730860545351042857982405130719281942184115639398675666835008439892417019314719594596338548591469492734768617773562187825636616820683515851804178206338203806034421943905856151138697592173266895081482646579468530633760662567319715673107456736374643438247134953910989314934177768953821018420479699714028605691460243783739547656664343176847670038833989118767968574783286936863865875457703362262923917945887463370306217925934428083474037691559661489670424201369947850652674793268887900350815676375967260240420566963416942769333129592385674042822808257800179636168336768125577733433928191410987545763573346563411239393381363667190973812465678256065515021198791531231145621856196967321511696027589073067016285313705772994674449719658668927556473820253388881576955232033037998777562213483481777492436167277576231582877544055489068311825776602303953155870410596029898747861201882615541738043629593564716199878297232483120060210504417513535234766762475298742944199435570217097839631539272509799583187319848671043291292451437732695810288617947047741037849113497237564811625602698711009334290059466880852283724593943662691054700377789921775920347822918192348798803892495575694870933573140161799295100087557605950451456112673842661518564917610268061033135571428894478633829974463742118726016478791233654862690542479951498978386137723527085172633121542293892630979887386768822446024211904248531143007624342909351696350703390333828835869606824873672378197872922497045253718163321430885064475223360645214608737077530414778059201106573558056390827085005082569978775730060306347934591151562250475956685209977096196794847799189327371611804672207356842996490004365524987300944745612556120009437745530763543137522784587382722379567473058090918003261207194255757521860383788221816712835754330996886560011962831790670778853670692750111946873186501538667316188496023164841762177086301156747857550352409493162445378656535640668986737006383151679779417301543081065667972651656680876648421648384293275426075134807765409385528754747228348557828698734959646813300460818985167493328290949937269194293889912264875102542033802113940508106821099097330305676441380472132558439764537876315920527015697910784699759294329549217384217103397848750420074594717915664973489878044547582797672393122157766966618460346452399524128684246097689751300059316317399383227355586707979605104954215391233788644771972060166535232798050461080921829625456155945190440448634105968884993459425741890300844903932182379970925533421267843606585305590015843741065841802946902139227165491855362969041725484491982345584686133203247774187288973995645201329224525717632768638533714575008264284676231786541235877632313198281182692087445079447265127293574329530117498830137914128186096398272501772194078710557343729772172410015752284178708925235672213639790988893369913225943489171099083789963364052286657038709325276864653284773245722239227190080518033376789863552702029330363537204779064900227094638346019641893427861519084931857695368736779394753056657932604487730347701600019296739074352668334203775705582040731747676385793063629189949076395804410159612630456333277939832720398870989276863961656569338617770003690396536681213566014646238095734030408011845322156086161618917742701578269015924859174654221918713659524594604395990182272202490496317444921106987409250279445257966038995030174578460592841165079955157068711573456455142750622940403200556752808341391171974062194032854923357703268106734642192131116856803911819845962797277318329196580070698690802085178178690206100970999734405364202580640270823015903957953142005598722287011092483776497999402245220323904843379694823371762384854511708012437003535283159431150569484107305719400320258774913001041257731107163253734966736231959305371185876841424351701480752517104865227839131555622197717198259454656993525236774550496175873922651618793055767040371969271273279268563677362760961545102787339203046946290956323267304726499788353782188999302689069998534293922392924964755485770299571286643189771656931793129893443870413515286767371486014133473639305177189206354354372448044663084151682541036788860269265232597277637282485756092580735889295477274131163505647015690621997897403295750269993421034238911485852151708634759182135845175251723005157897775986350719532844347635422818418524342607082878697404835641492938381276253444397948708916866720384985282277744745504692282385433745184708080542602888970446167404650422197400154897179222585452529730988658857682642055389265595525348313488176946825715265437302843820736616170345930563538689746754768983678339440829018595626656175938917254835147258990210016458334695475600283226259961700554511911859443518657977466983425476549225140699949651400908992008393134913847245219266469313070261945962864635917373536576790977348542161827620733343296746036451003491544378811142048843551652508904681350532182433637699506792050693779924647593741665551889950927809408542866243833602815535198164301982044457387229211408198577448614524140303679762155455514918578078893225572179025034081468940642244878436063739866119729994490590728813517008777541159316271960227631168899540699871723273966801838360298656814215649868335208432895480929634578482279623776994119084966264321502742516312664854835040420615694416529478917062766471666650603936310308287584450159522167817521399689115929034182068214251588482350229506019813768265794651308234175962139810643991842537949323234646330094650077633715391177948607621907128276766788479819227725431880020828281455513745906621323224408386975767594053753402040694391630374394685219291866007826685321094986060713957506301068637898882078293332938009748119921989931575501826423858142929331349326744307245811523795829133892340084385525623984119301779079192425854249626492017608265842167230385478215789115332198942922482491408549091965409985228281014668151557978089488284407823594567359010930701306004350464886241995091859074891100878492923755384200439631897016823578144076391617820553734870595222903151071115290774293579971224313381224507649834584614981725307656373572130556014245287746164135536740714940911910044108651239436477233487333893823249175276756125065647646850608248583556433259551268406656685229094344172804677932144719908218481494126840638273913259193146881723501823057249299165545175164048952749365823317627567265398408204825461499559321485552974705799275446354132680835812404981938731498805775647343146760373263016293036518900011443547934522149522584006348107193686496126721912334067321001614339377315098279194373429011288488867174225028666028049338893718372448741108869248493283417333036858552273527759239821152735687972522783991141509233049809932045464728931285781024212669994663436807387810277040569536792917127701562272489721662427176846249876591228427430209540505289069483380057791814800859631475225591702346365269920209235449672748119028049302794716966180656826863808134869888529307341610599866743430482945046293980955822010880682289201415176866747490202378222106400275024872792929193003343212636104676004988406718461346294303923244261999885437265852274953900929318042187978721491392178980999497934749858648258800418146240599673691642692590032983192390583073120725551077693925690258425300571118634078397303496848092129518916018765150960501731965742269288958007434402525985694241274533128193432958002477602207240181051358794009672722195930409553816364320449227625115209143030167306049208787482582609804847665486443510582410329888982939118941335050551936408271332488762204365375435322289836846225635284830948063684336173453197909712108334429396113011260596734268310568150390783649964965396866236693647722214525731050527760991325318149963164572272375801485669604975903197792435019998237343063587219453660985905343093251020174173798174312933678690977360474832709805201548692676661075593908048213639761828950826790441692609992999457324224314499198341806963901001797948386815055425930088512198871301938763231716211802546583228442306887232068718515651415603297808493719653700849482578692162341399862744256371672095930152583544386384585136438557887542573269638039797088111744657596286408275033148855240391724490034781938029296780316759268692900930555039755717730545191294387010992830520027979644396383943944814310311631199155872484686882049349944502690558257399894946248750814266542362281505068964121974231142769607205753380407484227370691693345013212042701531679133667537796356130390730248857324378723250289067124763236994927052523537303929407576767354989185329207741900115260315089177797440590749561733600711086604345243831913818410112237327520655353732103411413587537053908894376476626737584503855828478275097782001441156004290219668474001072401484412680803796446695033641681436887110324592055881916755542511900258475341080124088997164978584077177769345017988990035270282715548876378564496364014982763724670334574197887886901866980254962013798735300512004643750711891673585110906921698487677536357335571516943294914948555954552207929897912169131055281670320584831642346513875719118544060794458077818336239213906497477822525288825722340831925706872611856696859477357466193930494584909710712975304971978264140638330954897509684817457972227404226451888923778316194242314344108020614392533374210356610217011692212733091347858106345752170849550236897256638994485345431335644868548396493753455143521559043396969802363486364717383536989548863112194371999602843485555881790321281528585637398277630579199719767706511947982598254436534740802781201496709448937914552732823590304573576408554804870945308628209567096332769631091621291760390231985377654417268209697175675518602410129317453928628222497850654010313871836504340100593517140911208656387116090267293145286196906473924355077752354391000782671604706542076021506748832910242573484795761326718724266996957351622037727983454005731194778183270596231311927717414762559334548825264169187581733453057584879267359143317708621598001228550459212089761557244515403579705023510532525947377757786717056480165560136493626670734915502581039744881357829292241168497072824786961500340710501750431314395000346901422721506182625504052647834582953809382540259584672209920629338496897662035532093430935860314693568072134535519206124920225878666972746618759040429589579027318665636703180092953512646276975685396908396395411808511855930527146522014114162348719205386704173375795605727748978702254498054013377733811876685237770681901062656698630837880240602717906999920780964541466420370175475523023196211638930075908776700870300436863955231823632608362749669085084214511841915813946821162752920602332793515516969296403030170605981064300183363638136693822393226088289482159170262275663625707483881578146416744719380371294375564545002034642158855299308514326978628774136275867646610372990349309315891309665553602233226852443369283618782066672939896790365224363939301655690148843219432648849037858114250593953436472497748972220521205536200461821912615936921161313703235285270691770923737594743146412988656113363518334386461550662005445502406506986224097107554326587299492852924996357726888225204656982034360731598413061511214285581973194116446446219060784880822371500917393077792894554419864638634293099432679745565100535963894195240104974386496760743516942351261990685033170409382472665383818780924125252796388104564516038954353658470748238254146197501694468937907472530239021906901854250353493518831947293263447397933122901915128407809037416551683676786202517357505248943198370703553145617592822552529657218449301042518329046686982781075794691348391598681742727054381498269944355994932296014586869355458934440137889805218629955180044094306611929149649381708089316507871904547292726916447141907659654847101537997318716132088993802965691865070571397175670176941636919153767999231842861622362355180248225225248332451132656842338746977436707632361392930770145581649225106919578537027442262295140548117395557586578371826166682037986174725440627896342027757625065822235784932417996842250604512043126822163930018650374002780682736948582251742732842881380089782592840143558885319136172840246931472084623990570555213671869894083793146148236648459954112941443359433467243842782831068824150618862102226503240443924286891019082500395942545487383247797830644613673616500418719535058454515706241431224816915288483129099301568255087647923952570111688376546874122662135602653465351138890647476701356908407170247507979604140855915204726090392281826518661813181269697964293600468703467439101889318024327058801479454141023344122733363773097508080044777312916311641968327405737319708874897029991778715327858560895673244413266821437124866657817119629574751297630873779560910290526508667603340021877326405074333683228453778130880823922397376788651693331542329781054006904241862638741030464967973985374417266396687780070232244088940293167750043210341799813972069988247355600324021824823571698442570273724297473317188924353097991269023072361905431476159514229537643690951010520111671067910347786128893693232024092450854730026512498836370547733309057761939068859379404583732181989800061952428923578217074410854762676314323657771158387941240279441099393890933773941766585830215904282775775560432159527771070430538518758961225217493529981712427727241110333663920275502346769180607920091928550775332005581450250257419655452218070360460582237014668989990371574078606963222488214454760478578870759036494367144267510501033770249059152002108587286672309350728329089113227584343012030700624739181001378324823561214846254824053236212641727387090989408821912493206467096323556335657853158779067378614505120161998527007921789459224683673550639837098156885946197049828628067548068042873911446027644337193656367288248218597092596442321203975699278462964057182584699787849409397427816295138792217237267256335451604575071586241187141595145909679918671918248999548334625949604981884431920628628357069522862918154211159815409377318034978094512892983376716079524279237528969250560837513887225062062830455847226943934520803810330606149922005360315858670875725211031584307578286512746974782849792218486129961476255040559797377478897713536555970877713191952067570130295765942546138056332354226258660342205020467002224156691245531593883188221131406188289840207970648314766629849633419414191043184887200138714029045631342872906281641864022361325443882899333891131182430597920059795855451021779943355290718575875421967521361194834637988628763793836892439493221410270393852772628505306391130743163417882905543450206328926072589935335127628052185186057675275645126087211694787906841902150429035355554505187129639140420320080999875798412930053900908159181154490113973319811460915827322839940683329555277994866009637837008577527805532277289880619142815202418990872619699649244251515026479862797238025311237415226963822842498490013082101226688860283994173120760717657867105775075169382276830079474869294097661449015513761572253187615124659761305179157850144237256162682752313778662753471353910379182271115732525818359912480140474671038471961587204349508829873308894232797389922676767481242183537010287567260438150971093617202713060207481832181516907982474382616580192083335529232884762904148418732850105362962858352339292391902223193723549895768972283817065911047269251867719675488919951627924016319572166434919863565802391986488714817235148594867841356212446205296855671603543442135338511212222181991625249123314369262257356360989647711098183040500650831537536773053974182682915506474840608243586834224131131519929250067906795336212224991809440073018453726137029186857847021920880082548117852737914943546970710362675185910092816893134022302279539922237074413023462304845167728798645808664702568340601925806546775712081981416405395326531151648713952659408930979393305126136577279239449270033349366197084935201560051965285670330576761044990588443629984372347504408101571604321499927014631653513888374953467559516736361479296836709750523004300432776892420086539201477659350113833373549305817361694340247295343295755373883231032216143489687840486835408302543212842228701183891343114319037629344991341249265155638141892066529009517696301912756407089483453832812286040092418369771828780652729259843589952873638394716828361259741894224748688757764002711827880054138800160838771106315318654841698250405444663564593275684318640175716369375560388503805115219223841259376757506116559051667129118546532617098825723780138951620798992504396057216671049793278038530715625570020442915509566419819684197144424899659734563798246084297016549399517262042928303300660635507022719931778705155001312238163490401407634454925573115360553268238553564892615972997389515888942337224242929544501155448253788830609319139250348172776950028711900334840914512620244861036574331211644175165269806098735088874605542185171113720713571108172543617759199603098110459708660136181018689075526033471295842333105531995092358402335026102682742278772579472666973505720321088224203186333652335101808242358708824775132409740786391151398914020649514037770483572265807289377451813947689091171827922065863218366374899769077246135525980495568597903152548261379311088484245800934418817182653907108884230064576794481633496912196704500733290123174810711261914541888213616292438521592065609396163399199978926219707646238635696451139893823378050974412666921925366100341031786395394330560748306985162507041859043180665722428519351990923700713898968823421103648522010660801151168612002112768875065967453502086991638994364950167768685857162690156573081793809853634019719023558690092578530040845083159199202705875554758688328998169405938457753672526653607993101089486502021831037428184568336666553762489830262831940283255120395531466982945662626246016110552952054720158901704688282143931430059434490405328068861339650453511770162575365176742326991702485512538762219211318913311223558642238132429228583434966313071102071235743180458154469583995386295285564525008158051748723762264406259333551422053271134646422809623682812466288056513734208639883357708065279333583792750886303853331761136933096912772495154151788138585074865210437230274479991208153428832733644715293952029629390693971125604144797038827552295666515284869708781288850624932776735890777074039641304770514696661114341103146922177402429260323035811112373157738118861482526455829443751066629269108952474606015835552867838838076354620796586573727474148988687940381818204857989101486487836266521809631905911420853845527267252704933127064981201998081895922205887807548185858987980639737782101860077529815691995988810522101766789756591152555869703415822743815824847922743673039051644488399256121000524027316245950615193569440209633740394446251434055190397397642807132117274931761174546751687509767691917664873508188080926210990511288357621160152349510009915965867201169983020017367966641547011986350834686531084105016494379675948501030570158021978015027618501356717840006554629975209292625136978868952172032542727055211564825606600303801185582011940147966908121117520207339027880207559265963843256500716357169123460179155470977660297158342644506631798085001928513109399145070564955102871758628540132092441608665940383889046380675128115463291539517075948186346526587713659293463645389158714072561054711423610815461805843062623403768649704717695105962111560542481503617308370192958393216469692635158469759234741271303256526434641899332926339636643419256011384035796874415825781727309734443200338560997644050277182462826779643891347355097996369795914710232488923363692593790551320512608835476710423815041008674245524578373454056134228332711329280506445890399141530840476899105595357175555052650265172263028320528244733041066559038445654994751330040245453254313344213467751934428073364137495809159436544370869775500841922645522999211494752591596856153459254525171908963183758011904563268955389255575456584018528691687085758770283073676288647092303947429829664284899032159473886909022684979263620261105524997858008691397187160283288732383429360366193139973745340241491245442182646149943259847500309614754945568124195836738132251178814924183655898477755706039032186965475810789780813224302252315474072939052891454996028001995290014188474857205517424128835115726852855287698350481280753127188140225143654188286533372935621541144340086233571138907552347727978885747773600927408423161533553423693173457319707617770481465676645658835109224898453551419072575380773502073268991623861886473155064203381625231408654646609577644248969658927887212324334303552284189795358726369687015676693975565917315012304676066279275222592888574806691020118228161499292590119320199178734049066398717302779945788345665028745526028337064967605338655368224521974152853852473326690527548632665175101995779192598929680052484770380793186964401765083189217061385417695471565578019541648871823961143213596582781872390345103180653939117989153464889275401620856839719089451312772974214224448396501981206472197845776179516033821037542463406120696132659409944563151329909306349926824045010985734047642535165845385024370097033892907958022992777977725079646540809205316607841833621440302227821256558611630601529728513877157103359301340761687097855464096923131976578498892891293124025658522714786399682286808557591842311926413766181653533811897921411272477923677131008536810303797066671997857298707104166100268483959456999816121315121634442543396993373797786158192281036020248223004752697396077281325398067795461312584350008476207903776127928831199305863072354247704832299506748567759998298680229431841282923760367118886647624751515346028572127436301597326490939346934549544840074101744580881596503823268354832080932365535122638706287484334450747576301813745606545274743444091847693358534648589966410573947300583659460826833183401398532575869344077583228757411536251862877041630196809097449229304730514455404797364480548339644159726397249143211222007417381499545759624751975686207583058390037033467496339956748438849119064218950659714809878446975724438289132467121707668992962646414349315803561402177958526621465255003922713078428343703253009751789530910318950647615159704794056534597489744544167153667458322430295791350459391699959577822516556633267334074713291572018686152187503646555839241287110107577188321065114051048257981656533739516188566770495262066193009937589091759052243748558218970441730991349788255979791552308616528334787263986277460985786971210532427972616293293366620411513808570045967596807421370210192076206250994329781724376602314478614902944123677698983134839383843262865694585432422134051318026456596112699301880107429416825828246390085321445904802009112697711114211493237125391357462256427757856014437193359265312526952369559009808578886500529278598734326210406510452867046823614633953005027220428272188913040401117424261129993987773737683968696664524369484691957778908969688651159002506130110841903358714425415284901741327315628298121518061673803350319747923096622588075109158708259125213175003512561562658049467012356714350139192351217487616353675206063659058361239846067060785941665546041817292797385980553651675170303088376048755658062879111979715923040847895645553024258631868179423448767518075824425247322440736907047836725280956812229209088055388570158567666461507119467372499260320089472041871180516478900606268996125586881276888936590188063041505102249624582190023088644709982826002262497051635683735326826872110130120576645722630899286160864156496516154881144798722371944205464166376712134260431843215488419662049913567376458104109631908593520352904509720325317999175289363558800583725087484342487899207056443901615699384249508998485565931151862764586433062922066993381828450939750355315726543347739135977923958438613599517426613184543053901546568781807821336691960614401377750322118050200204813951586141866178820981396583314227158373689165650890456758777163103747387197315227687579582606571642708840462573950242756739076826447096038654865116516254289476073770596655358028434017167560101493046036318634303691859182884187943547408740493998303983692407192470451757340312995991818836298298889125230230221927096637167473763943999296961093732190156237886883172056868647935181222510508996335986444424881753396489265448168775601716999988409719104491939702292346008466666679239004345502261295976006010777742172498242529495172178852491080459846701039999743194986664638183759336884469779332635607318626466187645546753167464550554944106367255558426203073664696317675974687808125166412972326297580114312819074600657196707796170843934797719241183560742483196794629913115837121353151827573697636316531445800462677898791007543262968977966446957124148873841901800678920207136834913082032364415975458086109131473242830105135870723478281437363807393430257435281472740979462968283243687027028314299913164731428487368767599807116329455135172474554948612319891633852718165336417384336389956577242459771474514634019733441164365993045186434653205454181029025394139699870307376391468413043967571153586202972326798206724552883450219510008395737141630284287522906716757268608287858286122833153282819193229867464855002799683307969543183826590562619703020547210814316442776954901268703193719783268769303657656043810178031641225722701770996266125252151624530080819291217019652510381447874208245030546379521013288947151970986180311312617324519713640110983270417376280746693614119831020056932078602342873375251145405019741430515164877541825590452796833866103491734358890833203620514685666641319065816499166412713573935976947360468081369736349391878548508737447068263542765717194003555692009648071125037733931187830534704810644814487645862090841250102576857830381557897305818827761988294270302999562719658185915033664442991974492470355556623491581774993032521200734970638346722483636787497579832668924395239285204437702874155959205532037802940374105813729211993976412786067322161564055538897384512247885149237148926490003865426079955875357507709017758125580120287758018048509791265346163998274030926101240372027885466984579400364538387138511279477980621322010295240810331295568859844677427777040543206575992543712563975766897467298044335030661383278826507852773434271943818365481560893187023668076157890264766014865883387201880953281457203722106199985562765075547432096961992492854479497964454294181663705661929512935179063078217659034108306160198477992259247335789680543937281136964028132079082577827637675191073994123968254023134407886395385481127751036507335642801519182428120045340193521145896130743153434714911234645460618164096171223685057389536946824195016372278349166990008246688643590555974725765827601848670510237238078110521554878429120267558718814149471036179964144885084537794749776711554809244398866320841174578313991843630316424620006795892838623643336665980037892091674095651566227277628177923672043353913781447093537297450208314678493897504737632698209578080174070644187115993259144503696102611124527331445439286076541028382384589083032852555470899318288178975582637645271018372501968864553715844290986599723862457665592508301653834437841238525325386298717857938154264305972093742002691409569417828491661875701498755936741922270186070582893860263943956770777189542610657004321416816866100831010201129306680385419601447761015770193867508245277405102210502007002047796917304775114851412114583818429709149821766964869153496970113694597656930599266183346727020517693901412029260101604299577068844600220229577284241931964900973126470629341710550000258675828040480526434422129739678370427168494553597564439960160029923919398742231509570264726043630770312129668627420722898433925373467297188176089994654800054079731578875406677670070087777352377909277431709156849497797200797318739603600792835737841604501507269363711849974468703394123211661657889892389306114252147911502576198721769759972897108540800199971312804279410453706025769313059505940960229122825151654413627681228661545214776732012985484425488460770742865362111197748759020689939760508662604358543298085007051332143309574248445987432598501627011256822811193637004015911282241761323504220732095815658889535061913546425945433404042581694116679308525467789510578597263949259592723384573092368726518045648906792412479135057386405343296703167274351345762522991485380194559883219566730815626591550688871208487113624371097821307168905955698394888333106908931956723049984347798358964271705490920292019602720855025321110431643649423225740471419304883442701065737107897839935154476391967363673170663812716350998254322612810645139035177119763608809847170213730943734180616863205790848978462053296871398227795459507170650843375112931638250264826161894457498027708526576410694072803228474216458673381254901562318193148507542312216575767799218909775942272699295730452623553970389645049539707876626203320316636732596374794486192011211627053174406173457093370749636223577465732815219955174082827252918202823192225149400703370444677617123108077422881035679423108109591253166978039673449474288036262924804389238277790730532315351119247080123601418044900271596026175261322211343532515177481571393292862888056846905819224341395815288360004910789921060230778827055871515572448929996889378070896614894947725136653537874336092669963691554783358833248759119386274770726149400915325085401486186753549688113043993613711857695277730277734474482904364875465074644507603747211292191664909666172594811564455058537224436799574800505566527311486200954723048501003397683260381700199438050673949317995003734470364764145248090319107097320390469637322368314876171846053570518783673521063818019644463936898251298532155258730957811065419796131361237866296746149291387757884043473546411321876637669826585839406709920032874734832232148188152087195405176058578195419372038503717556344437849473169517064715019557702574292365043214011598868798561518299702313616569507935535402455967958576671786791280869674437951784699732287815273965209310258320016679341653086813544109287881407585752656529591689431624621952258746185023530612702674965409006335231495921090627237796169112069061447621391162435387211087041513017869189662509282597297423520757385907340586777769726450035253968458553917181365511254575428125500520216520839486754394628564109863494375076411652470456752839929439155248813188011504928369267324156424382644747154596366331497908465257511144675259139710106762604857969717198425296685643754691474863229191437323655464113053858105848496491056553876302694838064413261821071628376544672300276055348414261640598781050508232497800994351401737468931282647383138223367319418905009349862132520825966352412159106119998175252789425791016111927706916740426493325301776623107255676602158915997373555956886484785018525479481818257535991527224374055759654478182269774445066984605418756108051965582771916393569594504718424440935305789924737125796908711190921444724963567100087067525010593400043052963488349666132645695263467708010091437546860000902505225251612454846248390532246239538884648741404219613201295625642222520804363573472826069769314811223048150767719644213332148304918873481036341906167472627573502812228010055698103452451429853588418877009378370459480629802686251438756602921582722673920346194258780230287563119492057435366758145972541408285694860380407851468234164815076006144575283403021732621996788409419259237452609916881626313729091203288466548814702550941497277705359228939120092626159160165871396279777694602185765185059303481772264331808645404226657783752861031623414309038050262842120163118766569785960949973177874499069103443225142516057702982817688990999520705325231660421095427752355721771677765881547244634870198355366817485627604727377481705810299638499025327042134513501724105211411552332592921777941150912632217690015791750083261237581219962446876068977379447925304048005502880105199991931114033271125492635220862869430085931726358491787367349189062056915665333397417166265711695909823084959016352630676667175563041753507041952692478878644884769743847406543165240545183139396847132725209200429298838936004708820795058218129780739764363632742474272759568039879196051579772236074556602402166648732931985748877716279309176047332851078090627093575903256579055106656433921267403260377876694338661786000705750596622724711208705949687629379785223365449354767487944749773289201142210388687045724753134006625647822184078377237505378162764508828166941323704457556908434074925362835262831807862241107478594939439519752068578359616255289042296098874882461766981130701192082836600489145644212088507796359664440186193387365684459618764028238829849574383522468767580416155239287046032500011247878455847468809354423343611350085735017522644218013457365636214906730839912203337348298010769821449127650061297953245548818013880400823620415450695015095605720085571675387735270057099478006236057949631812688675979988315158769330811682267872713670187745627409074594019142093015945952009905261692574583431091641088387506241169685569561633025886465151004667560943797299284074148725814506034142390036172976042278080079581849062006918942542303447684263131154492297933105515691441103006373270978892209841874959564257407557828726509387917585345748852444063234280452181608477843639053394290912291416066117843842790288101643893536112174663422607716297493789998356936166410957502006514854082718253481374154213738876825395273201939059298051735552613294460421932644660035468419584073723353184631739106235869412740836575731845989191367331306305394963224089902694401773583478497781746211218946754929009486764771412855140087676387565092585174944744239913004869326756198082083150776197382741156554857418447899837675257852430927479321704762932091588316195071015608960842788068948815587303167476763862101367529917769100989506541100482263757535846905937915563215170304771908354104950314998361534154430385272105943387578387801796557405420500979274119053256658493340626856861179169717193607916127430515555824811003824431527032447771326242331789734232394462353748330529800078600009595912736513281518339335560791983414727042524901386420066405294885638720177848799192111649520181976387279482872090503553636563569487382967761901038798333534290487130713916662038509296036337508745444272590936923141953617475891194943297588710200801089171558697983641756875383758712176162260619748730718208490268858278308953868620301523965035259545086395372119045047005920204189568339015711692909585956589485910516859523768561415277056713419543323579924575527834557777912214845982928121266069329292221384467212701801655005527770724284127871925504139892692790331558004792015879764670158147327219405893488418054984144519231580909665903811961016805140266993305295642330224384621648654173335933505812252958533478533153115241525134511279515399637885265364787825775297193324831597724439598185900386808106970572424059566237159244911793528161770508166263142401813098186396394313370724639677603221342975400633406803747958194808965540268545399332656008800849713488604504962945677268080676466225220290857167833239919407806062637074950353146021417456005609183025780675178584222732252628402786585739812781401244756322260294381340480767107230688769273996328466206169595682015324325557911376574105369747018988613340119339349424834975541044704977703503693072444485930299876611574069084912859584675803478280506756479152521655423301209019539188570787865676155846515810891270981792758428613244236674507718938245028667351298725938494284784133623701232467124707327298416804143377439077220201417525574913169211274620260040688883751953352431373130744627280264949380609301027535634160211255769863939101240387464238827747050598451805162807775020721417567624564438694886428312281313465165609846144294362166402962253471436916475919862995768109148510184535645432759804514797051083182789524823025851740405889334398188422777019021197994716338732713459342817044860550409866608725378667451525130010031095167551915220707473956391628820019661389708812351211873134587506406474509948593301309002381611484490612421982804834132343612318171846493191878502513446104043232188503254868540664617932612666973283571095951637726413217842677172592396512712544184589406745940530439944629067777893107943720679281944225225232003685094470350723667610767396950092799185605792078318097501222903949023152079054834849539206813307048647290761479948020914218919603181020389456437879475286209592508830328554351702664949318161985445290275698668520610479632649049772697883451299354026273073184523738194670039996572867679874288563403878415789583926078086214066702268055734043088175199139682282367225154001922074163010089855518696763233754338006429405049872698794357255639611701416392054176909551419984205664816038075989292192282876975958504326106091469840914750705176930526406027013702252997514405839424111837194976760192633580377715808234913555010940161520710696091661623077211511417584083306010051007304574232759937457477324384508630999632938168783837698021870676038880151448999148515156996341811685142317913939407037251855142267165625632219322245479330990099135036510096133403008995832522606707541001415904375749126491491785483303654717813364268749875345662767636406997160109954802402866368658296293315457280716495626249725233950138920523586134940203386051820158057590014346529035569857954680517232254443022239904610755585244605105579820957452232715877494729266635003067957589279429263794175257054779371633956628424403757898773227756619412471995415939892825927414680691447960925995773258528301746051737130225642296258405478468625545156501705689216037420689254204645785604119497637243589033622177434143005636839110573076236705147604337103207372528873918977611451173042670967133978922743717475885291272851120687450165083582132758249821164015441810620532767960532966697170313153735647185636642983348937879968225541333383969584090673733526296479499428711400992606387045292929267756569263813401817002836854898208329084562870931580343861927220609865860122310396467921799697914956788574551022574381709130143897731094899727730145013674295428814227351383807435528745323250127661727073512717667716777809834689081761046262526042537887179513242997884569748435028399372147372543467484430781050583421526018958225670465420458153430164231473363262925958481584209469327391003183062855586828484772276068613214662542664603291834131520705827201494333294441083065389461262115621210471244716561711962290990612683819554466136102443742460439159811003167329686970660217743959081849743338096188341177091018147409452435688364741966065058494077814679763997513979883282680699133217823342833804688254961201320883096887308864905647540780009370352366074934560445139731399711060788565999723717234342070908769463785097754411360238929473050990213031725021341419968146730530762584275291494221129380326808248085374578318571819387396318134697612630546260473320877058332456715791435044967914755733548513402363910903217675475660666147936942500248392318432256937101484895107070432306972046087658409227732232005949592884478016412393853641870737575231014481770193528619615393078022996839387579644266795583748236297603880820240920197877273869988117955415058779533702728236579901205390220614934070891337832111911294277556219732091333864613737105494231096913689836577461968888122893610288214793990096430890489606656147769520080934853063137868596496619156246478622407376244167922146563746044628117956532824306779905748987263779859618614973448162053455859840927863093130860311339078292212677228608440698605050003038637674420701981307395404147740970180270645280967995552861596041513880210303019356376874792354244110190046673606238683764033962044373029383593020959633211307525295624283837831376308849102481767007764439187293803788577237720798132314165949711862580161006461039267527164544204338869576465237668753150288867802885736940058587203502000797266909094293552194346711138532814802334016943380940554783000890078500102838948315112278116220911852715949252750142718139784223540108410807618887317945103248033988683858257437887030049633712304349558532032270734326313411548472807501579482228090895239378019954945223953448672868389954896440714893274215620623127919928377037528666401232322170349547305598241141790994553498148110748049041622276589095357286023406910173209783580110556223173610924282379004936489618292580878882773918383702447886211889384706994493961134527409797589811341388859809574295468613629979891214388536844457897242957999542737360019145254152923714470814946474640727378989652093431157375550550173839650380483351479270576117783090688666982154421870972361163528040533553104607080023042530905131979899760688053229575295365123003097130598970801039531271460999459679278339871574321285875174311065572349872961442211949991832415960404504280221726808399087902712755857849914160586003895604690128598942722015865331244985228171111452644238736210926413649493571988761212490801486642902793879664489959422271489271871222369057810340072099364421371313625170201509733122659352682362412484878555714699451821147821147197916338048137454485208677420115242915802637162695333317198835677028881568251908140854595358251122582655269101326264332542823527214470067332685717057684209576704984474519772667308853166009431047166611918638110448260963350896046381803266759069482548814111236823063468536582313379902610870575051656225145607587199154586888514986996042055691427760621686599042967192893692330221051836447562832092464304501709099606760537146529062720217394308184819537148699496581946722578858417332521566389337168922936325563604507997558991171175959670321848521888096862826851832586273704396937468192427428590090280092054860182890586266615468003497866704279828113385842849680691702249673944732888266058261131778036608377197352049518676033439253300655725192882213545481628804826523349459159867326650203585577627636133161658264090207978589836970652265236311480704938233318385996548997118559878564663889671645023644182079549364934305310213020106193945610728153957273509139476887670502839964083923499788166391156283449538289993476320255083375388081311829578266920692431701865182665551945725050850953519806474890975394673022349037924988901692683328103206286626996542609206586528086872381080448867132192770240279325892223430434297220642379959749421651264480644548884566106435630184024992387003922582792012887145405675785747889953666715927725188448063786541125752911448488177149879287571313568345964291333808814924139725040732057687853532021412645656761409477199472369466032923865405277564942907504614837758344196576839524303536538182547969891475846356290004559632918083380940366776377646838470009598678801224862290870009492773936711254547265047583517334981298866021534784338855491757480321198889421414254528462370231032327100177177185144546799916373791370274622358626724662642616301449863003374010860104702086672658607683129495208624011939487795449452540476412767564173808038790194740085560860552297010450263482575139891680442169201815601440252661499589389506010342029618377333309649318824530787401863626506059792723812397874505024949015625786678276660815591563836677462602010273142077362447331084837198294620282750540620625983816658542971762080500259923800853956997326394531653399482135135308596388876556733644633928333232986469308229610157538018114552788882424433990100358423950508761893175044338444765629536328933534007302065978455141274179263637321478661991309389216530029132005353985072991654590299765612441694890868270680965760630226467418688043308747381640805406252067836124928919068947758054162675334751663516684748384021321365692094876873920575994840270320969662908519500928375534847080966435895766917777381725137470203246492351657820722794874404782648875501817416751738325973088483342043512769014656485240188493553803054664379994066013167275972915727879825045772188971205532781341518748093300796205331465780487545267528929387878510403006573028003543356400341218849688115605711279797581351285965743269834741226399610942834148219750740764555253464873284790594673139820756123463919003014839097858733315798228323652348684186243386891226296979269849746849345223311335100961989339271648734460158853088232096665579577822654673404089840652090430902410945995102639317818964294720890332704099801082441913032380887131470793676012965482541468462114329965430852360909173123612932547948372275890829884554676497271284602821332633936553248967843302003650704679086475341604615477112061338845330067199058135035117380551479497317491413954157144083862028028165048338197324488397934923601898179370981352253666759507436669015746693427022934721137565762847460194211736398114634496140061561259748090584484987880646276278214795647913258804957523116758606317838860035342659113682177066898015725261801434658828962140094985360770294944134997523231321593399742206979102236782686125653374554010651763942916143005883863768815095622170205502015963662366089345205081791003928211436996217921321106102778005278138740134884387309613945190678378293453558635590380211676306894590174633800411760774108174786733567600650337030764467920533396244790604466140736111479695712425099262441310520075065984351117817828884690199399537740639243184335860125632435717651040657655211646268458386816674062601728429404500260597996650778698807857958564349020108590120090316801528291171041555233229386130894203667038480369161043578906686460969424371244694914855671996006892108016035635068749902609152104657484858555310052931450006435664986836207620798784242254457330005114821266195351796376450941124984352049202966120307914521711283831282176418245504443809557495605206291611619435999221670369993990788683356783629962827782050855109340857566589532779071535216984711717110847060355334869194884310001075930496917163698874320908743533685071778359935059168002172315513989986981089699034283173538970243494863451002584542905179222638801662511467425901657707802844553993776505788358262383748809577732917230581924635988340502003938870447280714622332022132107217301306665033264839011700642024212716338547820913001089382104176477254351306535604004067224349167848387855956162243907096399086951481849413545666984307081853074035252061949853295720798435749916647476777649020852259151768535188738681117366136700782480484752687689788266610297521880873325102564972176600923554059100833604797483030327459310554542729847158960353905458869668774146084660279983709968887226655854379993645900690307770335596160234974910424331260197179659311328425724984456330069593456965211591106947483531343226400053954538277773742180664787154793447739440970434249536597317064599419840701668948402398450275484609656364550571333730814763937547941182710262412099468026432046874308075957479627509707134970866681277008786589769503258005339090291489371959349004977562431600724216807688380884601790390638599848564081512790087910503314469867948737208677940675577570727508621581622961118268208377583203264195436392949457705674343060458244627690812811386184039671567441947755194085482135750584711220964928446741790096078282925916661941940492024185607792592757492309300186737658474605568856830465466931845000934557998421895386180428435095199682869183680561124722135337966374328904231349834354442161414985288530381016952434838311100991572436391982914926603413044702851125966846434766101555076991078354278901205131404310619008919316275681039624871507176414148230931776419437970687852183789730555661291164826929118060932432965203355562106370164817425662111168600733779800820857182705631008038272506883423336900510518060217038416060994351273204062861867881903150466886468432093723422772250700164329363172690332370725398237492846631625793836821378617540010845823446289111012171242251288713606810573501533258549140224625139939876743064143836771576156907584228002106832944415722144915818224384662950513193785366250787434320824901876075828522125272012007188210671239246307594915780517580693237686681894266441390082294368731729788757273560314613608369590985637438265518285450968638336863658999123766618034433522612278901642429479141498009281244110150188407961820977294981936813375759321120030330566608605212353084524327925927411361053366494462368502016666670032052204412284302406760017997597384800262099789925432193302462412846558419407455584775012367717491978504955163479382007923835960713794556144446024788332068813900693019017282240436775075041677111072158988817477933802460688611602320737440462566607856486499852241015862399533658356778488918479980751056478196771668072496039035131019577070805502734712394717702482212548738787680856683781908244339980327184098935342451052515199034976486738673984043011922823010438250664899616701358309928222920534840945590789761705230178592548513562873389884163527276996464861657289633422842793530823068925967551939599164531444624227965562902652133097874394344588769558153696141717224981700279871253462303938077823530604220911430023957456355223093620882389712952441323994139667591479369230762342903701811575394527684707293592370126734314211290630194577910193327618766127890856955657637991148921774679093927721987218165215389914700051353414250776521629198257877030418388482751773328267842161297597718770568652150713750214467301869429404128907738515609376686469084693889826568445508742697866664267923761746035399424840544389676964124968161546722020237784415076703880638487305273371760649928837503323478009419585291105840781679997176124423578721631494553680546793144520784479268146130389128254345137447975858352360264801492940427154255553087010199702600566727383053292666049902732915899924621893182542940819235098174363408495218705210470706465155162506880377480946123785217873077921823805952652108376365658699382461854235726302755734875023588050957619480856613443340752872298045833072323449598582624156483602262257356807268638497776330484621256777449062807021372951285783874674695711455643074265790820401838669960874341212098924969000427777412051642808752427733997048343828340970248592856424565352249163066630202781227757662143828114149769057319741579393585019638077496180667813558884828590500381602799070636243511022406797386272327468219715613868868258781836244029434585670377081426918853712681497713276786644574368662402367825057173691524467741978414111246990888753811019740580691260159267417049968441748291682996904738039823283771647914746449220109216021492867193258962593435209090463554668916164932160154708219918462751498983573854764893508747818596143435035401514328635032394875265691251353189093956729980882827504669339223409712414872840198700506905785090650771057907760038316959240548162167275420136418985325299104359819196140419786851501612038012984375642274992066170625587479395098934442793781467742531622562171016306870252187743657208082003052159979359633077066814552449731781556538333299150215476524004142850003104365080596655537881745826432832595976064583093002428428731996589985938307955356055485289827978532954268189196831890681319774276580167181403778786637430000372660871369769672608269711307767476652599039907771099699457360580367623760345019899572521308593139774991772453400066655110530954128345108264942583625029822667039931198378979601252350246339048706966525440746420269736263070204045898664773230506782118375822099080251629945974413593046618882434931706017495813172970144887291584477395416519883628642083633751923986072539853233554614448344313093683498568212815165954996532618274260530457929770971543354634599562680363595219974211039758831722005635221744822359780211187486626995160855827342722057613234550753406205308825929597527382418038719731971582004381240604219615059140779207573137821395370427456407574677106579930989037903753293440541099546351035259632451453080527792495482885893522823607717213509361347770463767900557092648524619891593745040957258146372699070098195997295541975711263208358235679803564414731417489491582824735563386109400946236556824450220789822818414351800658160744040811016843345086523771650817010480948459906754471319888878662847591014077434771433190084024414868869620858265970543249707501580436288252583159351347423248272401249106400884816125504551678930154977684277712490867961625296525486005047433444273370947860813483962775658032123228270737593088689753855358068069675782416344768127397487525199040015852021993276524015986052773691291322628100256189633735628616861999053036352549337095413064186074356955478779632792829184927607765243470493175305022568680367884818978172077853325107836108744540405237104678413366988649900359711584757848798661669198897402010532989964948736264412442109739140296780865060630050660834484154735313491071787520494532267858825529149973697890956811259031499232903349167434156194280234223795415594079856158590813276047839762871884002380348037466746875160254700470886009852410643434656029293658995141266275884107939266000640432348470978426530075609748346190260304625509820790759367922080382010532750465381976360681308985096177579835565674409703548471249203885066425189496049812095424309749770937976405942710505348929130202598901823132616505571209268855744312226313431183579707542604526882567157476936618315354813363514574947382725342034314093757034132951542523718487698584410399183192942756269427683415683524862644751148465131786678762568982866490234296162091922927564882720953687426688517006667844680121898151555304259707660628162512169056268752417974676558393699063888761681317148970188621447561998415997185197505763408632225103164512884079389531410426963889882593512449563779058802080768024634007596294766168861022862462144211389403614201747997981100387213240038822032959737201119201662962648902791294305704351180543295961867695129225010543093789027352980366894598120773436569316052204299621549195569299624306545681255375701884528488274527352362207520556128108622639839264767581011007968037553994359424010994690323149605885946598637459033058139694032831392952503019719638428882091168547854532753347812491611879150607457503035065266547395447450314232320491998677474986161492896785160344506190222545151351661757049514190995137597115563795790885121600971917285808300526099540175339458550861084161776148577000994236294896359826199708175692744150071454359402888834196142174503392903149643845236878582820313706414046588143478467844047690416921960774912906083750545681731280244598236207193305029032743169353519017808464039611624550218970733194982224240778639721851244434519221823382081072681866404757836032769537713938828422120038803172457799549262435489325383472818538071849954447836568802391684623783363992397212777020500123664530254251218547855783627279895615426193547384680635505543838574804464081187294840571419119999119031430507426460589165212156571531289753115211922952248196087532115149653436325994192007971496839071332590707685502869485132381966955850987419445964642157450765327711901927889386191350565705739722587612060228541640318894797252025566968012474281783142878842501811495475267167522444329598833172054052849299902568794428238464884299506056622648827769835983576347543216441635495314751925321568077955639852679374051878179126794055443840431540634407788678467269103340836536254433474634126379878352410043976134127881546545659499287421452065979996830344311393205787848485669170420032363316769656753540620570970398392914022185211279432404934274430912163205133479045669730544034019479508154350270062770598636626968507187730132925298442087510193650589363035049894886208717219604983151851637901843128913861127690810907125579236990138547166218078992993313827783515665839453196285482886352982538298373542950070823544613112106432812888884209127579709886511361223649159550194543028244702284306235869280055588550122121515446640386220509567722884080270802949716217451143834082957937868075482962271672750388832901182893813168504656839759681968792224375408817418836612399747331414157155770598455941990982287131662129269052280520375965965957556042973659254664183276334735601060744668652747007876970286134922736958035368930732104945110453676495561108786999111152353154699314001856138639195738198777097131351240026085028410018706371991984282887745115729948327496058647174349349884462196706179901831122290578406759401006279843077432353449955241433837579533051102173762535226144154553457415065616573227797268235848381107781212757193523408664372345117218946124121235333550074631103102598729413409758622330668427487983546255793615053273260180946927991015851539090997858225914476432868039648580306268756675853806187301850473302614460973073651933731876540839101254950004774781316184796221152074825139124350316489315068849001351962296503867067775513893773930774085867474336016440043005671308236226348654831112193914215808813033734360313824862014765582212241832960749868315213079663454078678963319693026330630933845311947041456264434707746538388487086825245787707103035811641024256553801929024904472310028569248652538566506166417024234238149343449644003422058574561383648458088907552040902450073647103019244767675077737513221267434061119748517774515691360822572441522392365958507983168743427810213127916757184772024268102214307851989395792476617921365945578705086514286191222551450903999909955463282643962148415507419138436695999266861370885598001698238189607266440735419352311486926425965802001003625053484488187365109462499883787353570581761914544809827455214162823947106639404288391912580988852041134026808185155371474055742903254622309785846407651392797204790942453966835522815019173074812543827203784000467680025624655234779067549476688651344218621121988075765741319784233233309731142391569321725494865169568203317586795887239074863240835632662628004811342981308594844524726097637069586667368056340607567522940415266857573753680213979623300353063646264328510284648518387434527746323710706070009707503135684680845382361740402308907268915171424768412747967696708899250033949920617170490613484786675483415444244115272475337573359737753788801027705035283696382289095416164018785956661360149761935998846368682354159771716830569340530261188761565233749558409504137100485647032713926085850181137481385684494487342662213654103907665194948168362894851310355056386054146517094986137301567153957697273626089602250148133603848424583009211978412991959292981225875079685862658981283804412018098811602153643998881609532627434476702573195709220060547432904129491383715254075674617027538626356534976279965878623377384403070803145675752785768905587072196802945871555141877491584347915922083969116328167959883800935338431692908020775310892784561767381241238034877024951068561954001782073535713675243837824930387653482031775048869702750506257197878332177664083150780035002474068983763252078979153147613628097706914669201737382855344475889570624274358898132912047111906626591420135867433653417255334390001221927258288021549602816112206887309839799802298961651435005279943368555378964834718884579280415729148364304627081163203965988052881682013960771563310101697203262030174057830339573950778544815142135282423846457099631943316908021218827772891363736021740530037363586173943037403762671070239634908428932272055091080238875332001864927763453825490256141621905693782354888463158217388114364533337946611939492662907625204091863052297062935043943493974051361373112076465318343343126795142857887305927583098260314536524569112545778804072109727810014730847675380968933285931297665874115338727388142239578609352007441240111079831025281329230007333836336397673759830474640106122843487059155263430072908392041558035367723177311956691386785132448547875002582402171783903094111282730236615728651179669811231716025850216559890803784850244549199930955559703135564809840043821926631873289246438866729580919803682762112517591891590494324570823942061581336948709003329840740481686803001207669659076534598538070700179718641124211005870868258213377014233881334517319927072248222580257937893325403037404043429504634556333747170074814940942560669281269506101750259162053158143509204723071462162916100349059672305309778815810276425609187396715466793885285398922531015662214504447481744410426688187652279529226665975723422116723028316664123785601430302243869221003823057226774742839529034198828349221959389553639427077836723731100054548395207234957512689702753603379144930243639805966540981736148638574405121556699104408858208475872015161344374215588329296288985483718493499133187618068005065172806341561289543912233453165300150419875433506976402636975421866215963411782417766240329380408399304680560893626684918333885415870812247816803546660328569226906081933646205795320277078796231649411328739117377006631575524141695136271527213536409620481815335158310744169337444991380698624909404363530124185569341124195371110696560003700111156610900978452572959849851648677546986873096916970821340424718096657929866806775344688203848186977462642592621808768513816156568369206408540321103404699711451528394278382863077588772245657120498855565896170341332253424869691094162142565679054286047502380739371560568611888552278090628674582764610972133249346113357588579173432638896371632609466805620392310212211842880287760123558902353639154808863234301404950412249361205798249016952663020790296020703361682318695074598713926129742099829346366487369814401852785925632057613703143851222215426633576203198092888409323131427719989639750808410191884582342516968710484439873848249940357073799497248452874786047296851484381291074478921302472931690215947100312225873521880886414742765060070897058687047876044934346119929664045608739616027007529104870361672415574115154145441299037042579504575038124634148120178969197954562345163042391120221315964264933892728020456686476080949694593185122339385939851536874557465205150983940795660954414880433493222925985428614115761815375904114183423925423407735948829565040144855960519015806309337459140484134191384456360325926889137862517609842593281585553984731445315675350365049897809224570311912836408171820802257387742429181009948597025986500011351290337507356978043946824943503153020347261656813929315568015611095944025556899929050679036832133970728141506177824411155166895509303109694084288292407578919579714752438579403773631949221708432269490904299410478817244338258740510575881375424466045117649878434114794797253126312317515323619894831594736267714457333419250337733898591653966477642418262686419842738173080579009213303122705037465299202413433033557431034256280248606891405410180594633961238217491767363189341726805386564011598310085464681277226242512053856063473906580766409092596404346071892786976568547548636879224889446843783019531982034560382328759539871875602291779982254679175995906476429460655883331889020058291046932824110160465101197863941186979701619472992342855433186456959259386304984902509331851490475927749157668961518131971619816566454819323804577730001860419288101425392697044072498705973426993083333628486741287700414824028051313568114467434084480732134867608095905333814358263711804591234396788162665681152314177159859365185937743952098293967212946155635699544838463044228711432090548228705048276042293338011532932403737066296580219514772897792404429879613795754388442123236849348961264469145837629720100002729925158459677604595516905988453033032353312769591771004643663547441268590961535163258617236244504336345510186386539451100605478941351027547719626931614464773053345246469980103704682222111851227803515388732640672354377009886852085679909999466063968712555459111279806877612624348842509112326996720494088392770427808931343539841891821782621739222603143683380663809249424208475531587390976924655938143699529940293633590760342092127827151483390221908418173022001291181853508712998106964947819205326709914334089782728078750366917024384325671529599467759144226256552589486575434623938282998283641093952612741869283922649646482892078330970315326672184297344562418820151789227844992470870561492776290489852741447751480899497162327729036085771096561003028469982467910395008590432859658848241129738877195213363615708953917219191715666958308888737467688903481453189518604365505944837518908835272439823447963923800716540162939791169431405681991520582023948702323884463965705896568519364451673974853896595821213408631058198765300727899298712571834728441735598891353150921640884883289402358333157017290530471717279531792344475105036377686721356781221417302356863849936072283485440795416732533703521815742250914816128377829828752509137074323723514514377792911933627644683226583232630911091894038465867557703106440193389364876213679332734143800310060037336334230292145702602319422786221268376273220962274080073257340460678249222725688754446632618361696010883959454923192127401812439308823059874339476684732898863022583355299775862309587370274556560405334433893420698286655461504293102390766971599463568756429821541995043374292157389760607942785230876788023265092268714530367684226136773636064104551407170071226962552449548575015266935075456808849472184808872569100498441594116300062178592900199910510901289119394071155602655640392278221526553121259557862804324289099226202524607335490990001967608025299307917349461324874680115840970364572250935181455807031702799524315201496025642317355971622169267827511064903813676428349794441464933218186606165494864539436108595789855101808669807998329423996455084656238488573791712577508837556143598626339829657614380338895238085566409421911584559286293552598201664193010893855375657520336428091831816909584245375241561073513876773903888646835331517963517551015276358326051916347404443976695997934796119410877207229623018006358980045433148140758926060904242208861391734129954318203274222630049299841261984081925142421274860403055661163642237098301025627255461046601860141254386828387095994960265836159968705635246734390519986513887907714438540964695956632360925307419933934767168077764141345961605899446957056960174904628068281093800584658544628019687567568573517731924547601324033812110919901646531210143692836403888353199484358818413607753909031409650978818601433657867408339460184896079527491733821396261911258502483504111757836449873160396719455544363986152523170276445066837390728941286185961623931577023518821743476743932129533342346299794807202584591179380912630816442483601907050310559775443778616673715619138618944331659756998135451811444019853114557142456602322260768432760516045321333448170021661601121456930821752230722426782849007616393691309114920019011728743261312889703249029707237397877571819934492416271821584047439805262576283094195159866557275309691431044513144578770973552599749495155826729839787955935921917738470848497437424779335445956707915067036213026381164614720541699959482841788741174087022578871545520393970475595220767188947026131723809118773607645061053816174503664636951064762687581028109934639379663804431152080731050118572098754191961991160441935861859481932122285474955894740874749728741612316381159393623530821138324292139494287190072562765384241389814706698050798140790846248649241962604843867325375217448867698713887163524852915109882851317840126632150180634776106220453574808509149761379301514390247107965612756465078485182012515144772872169923913100741042576690372368378158150735201429669772339958690207093579079075592981828758889663794466039885338801863047199927374597495369403890592484309911955972215321531624011314922605736881275990080623051204280052345987831926861519395223348831306773131447764447635942678660892210995091743331957082757316552477713095077552636791818958171205827657479081751396612265081236211897246026938737064371810828086943369383029340616652130105208701035528246036913989103288014284673308173413193712103921933848328740144770852929293421485538019406652196689833699782243990346232578509173339258922707649692683392612226745214589799215659637269048199185063014694751429078875651501841467215753039284749757749552700059164288581305097434099455592708579029748793284785033480183887215921494594288231835247890024310487483272924939710164195010468447040164441088823385015970094552445611339021578618887045116155664902481367522675484378142958219074010186534342818533722067688174606407906800571792969652368419047953489624146033642433346222491508168099640940302193322646934625768690549788533122424498067815801192441071662529248170186249668550488792748307484464507450592951629950237803375344801629258791617115262990536468400865712561754546743426941093699716495546476880384513022171431151567759715241011938362617747482690898385910313330613605817615203719660566607502677300760073852625590776959654702425497974937360019432649528125263087823056166675179318480051917679787234108509060887898251985875236535099395040597267342382241381359672574499023919290942774992976633499207328571958330581329457521822479175098506788347628116121565244765023243886053520600571212355432404763001144887808972337338443842525282066131737531011526711597759730967286001991115543405886800904178159726552692690696248607470815666692949354156108111985219499438631782564230352343113786285511609780807339505824324367358071620344354220378580215020382695577210761682283909233671002178744968035656297898433702085818079970769290437912322179982484525432848552734278133270766508787104425792290241017477824180216687617757135002701870908341761998074436602656472915078111528847326322917956534915091788128793809661361735748540624640992501686691857284424588627762614627857998487262130140247826277256726382147720875675234770369793686920704297604633167969601008183844442139653630336974165041049847995726063030130146982815190909497223773854222335813366371105790067083560271352340307218493163327760030961810533762101496403309856147244479875751955138358613870799430481094166398591638301411182443111439834311552843157155087016071473878496881301974141193976912691658613015648152962777616795304306091800398865316363007935083686812798434628454484771102461831258407352594385993544836809470772219544249067804222035503496385736684844290159682323288211625020032002381707084527873518132930586277431022433998649085296986514365832790980237394203673708894613958243015279414874081069983598021112647805067213510127949866365376290239695163076674445917972696232693935647661375158649869584362958227294086507831156449556408500529665595392953473026049432111637394408487586752221902925731398367742481064459404386463782460817233659031944581082764478204039775066937935396557647083786803577863452243046494128421284186555371010792822867400947242327852953905636036492270611977485336261333073678098468026749442625465077609243284116963217770775613091546748284425943389857379822917098988410450482161440609568907077381318830444686430948920236804339539733803372503172644192979816943278045087531904591785363225372889893849925881551447014267748228644170674817960655449405859783662180365665428594872874112056187194022223165150804853997212331390723697746411794758890661766708548521679196310749443576960300633389351816947782446272071869445903684363668741806007062778444008905587539295423188374652847022710676286710418988202550712600858349347214532999397808241606861517948691820355344120554659315617525186026018957586485478862074030835984544255418754033266330245591547460925841967949275737236587995468616147643736073256128007739413902990002280172178260749463603632241394319248864881798070616407422529681583498231402302602291234609533512116930738349047775453907993000085849411637001211374525694316077079801436582359787569019743843513890503575584678863610390972690394075666820489522666874877161266697599629747252054538617314018073594419189357482994731255265725611080807930382195836745500978464543695684025609101795893086667073020859301214208956335121022950162688509247036150131941832245858888835233837985276758395521829806514508304623357305488934188343737616828368992746145625805787158592503208952776609388357495923072613127492328418030367312469232585829642047632390284513242782035118828391317627037115035672629219873330879400558583020301120071850143745045342876617843256807358988874707981883052129261456727878063613556959958277815786809543910437641158804065993421618740546731942862310233456254754047721021515151905459078996535694940675476622986250546152641409222882680019239216820340057634115803300520024173272673305584399032529982424734414877048803862033321268836367694339416299611540942909170893011527603491204738824122337068290333829570965144086338556621791734160345074194884031520888945937111641133010404905944017385567171098990399670834189919460626840738849275115889624153135249622407456742053998727226620095905379183704315896325846502284616989080606813482713495277941734681163421296835140921763235934261194914267029294958098636503942521210239416102152644765458479466979674915145844359740300995787634172525314843017432463817904257659660319993269075876234294002585013203029758260856108273278541395136596801795250651985020845640034113703785789286379053735670202341300199319109243826873329693078347458717765056143599280556549526510585801301356376269940837792660371481397250496083348089210077331940161576233164001732396577083574145197338042973763502094103008747764099278120769471968907124673836000222055529899914676288640043700565687223050609692812179066887787876611799611074574398079355682000584196970331342142833599972062812550950914251750095542082975484962369528940236314732303911423683934018318527696718431367291661321783549332583750824094417058657347685190972766705370324179037753421750212323814012797102142602898166099847945040842146670407238258328008751319750243834208547940420253948665375164252954018951420796217181237101320115450609147470278201598851898525971887995863589098981752650820820053015987551203468118267234121493885763546247471978858289767008847444530079256861944608283560659156872769075210961899594027370833262020327153682922145915042984402533039277161109027630545715223177793899805364518359991049772892938819956064337117574261802187117230616819193754712579761374417188681125140870870100746258652493975365079439212642021984248338093170354758428139981551777106374787917372237821742583621292357067227280954813676429681637066724077643670375863755564822020443004470540042004174262726592387614093619194578183955492449877075550606537975251556033645073114478352798014438695372805829259632897931867174861961284045208138544542430140320652002217831385515891215393937562075900004251078782921229629299328426272173918664302000208745920011042144151078448294543829169958754634889162789945273672223548915402708257322429703596712708521878642954857861340205908376432219433568124866123425132397265244429412641564122065467628303367981510368547530831294511605970435320546353135509695712554372700186485263695664993877735996940947791150391171438674081447224219798166934548811250626148017113804001025058825096234720655634991051176564435451229748670818531724019399051476849374539536632125747261686202651608757343192833424667977846180268556413196113135592736129700901387585162465858121810959681415254546954801368068589302994131426595453785207256531441403541150716323335877201194805186389175796779550209601418674585925236732894032829868270819833478549272217154002214917654073405219242044314987408089871367042313253453395276992317823009644632218327113920287641493340488203149911802014302621242743508620019596596240302641216477406732334490547647217081046689879210439948284372260432295111455659989896989847285447492592478020146676532208623376223502849426613429193378141919304494148944076220829257811983367981268987809024816162584819315970573431968082707947009463006989287100659046562557006652128802157763201063141192713786683759215359822510347888346507165633628980580971717733009057856854690110501445104335011114683134744248207682497798546860376539487939723564774665842909338550515960854217391076476958296362889231199078485045306000136401277722434681998609972424179349294398820471291826332489775703380163804144427972412957978359402482723458454819504717437452311753913909342069200995546356500782207553935091049332208366555074531815176854997312427150244093758408440300672842295396178022762088338849544890205545981694497735294197435836274168935859615858795409717786137489259257392733831690671127343053275940122121043586236341677441840064011226646652031878097854143534720649147732696859493078226006914016559694963218032240940567642886582391485537420908238042311921849214191145954491536293414332367763121449287235826525887689414751131650415874905788088476512306050017583856205183717469404708029526666514228448535506935136045637795743025060877313848269115938964171864642037377986477748976890695362060468756378706847861443958690151554356094709964906535085349174821520779524786102547263280380265749656187633054890783388687966751630289872101213266224424443797893001083025648532443153695149278635949721771907747364647211415539699967171580969081107829761717265611916951715422769953854438388437219437496201899922549338833475413917153945677205529651453671045799022204419694990881637393099090127935139504652927901437839288496813654561154889492697727638485939980607756240220080971193512994111340366293478333264971317027480820493559010916742278006007641463821333170046470306606975950016062537488266836226931535363237614979491937287111444368320097034202170457748494787442500998433669992724007806179921552296985904606089990509783204807890392881088817376691301421170052885026455146979736984748803080040584196006305418564227760812904811494321820433650366315825584583298210710910931603518968421538203347244521558059948818429442087636320566991776568066635804674687007678201119314760361468990823362278356019844680883603031607931991571747378528320783976483012900705143354944185767398229320865049645949171855950424354104025391369764631698127219147130648427544211811639904771277710614829681490670063683283353005850442160729987158694745695628482539614158544538148980662879031780966338983947780239904998241857126709204907805822238411039303459393900665245064536594847919383418390529078174176820825630678121241379913333338246327430946783309065739171425654029564819456236854838103410545627598872458998867988505658041046803580124982376071683154231311947912476867579302743513906314971803470929469512232617941668615096124902145989292591444040143640432806943819453127083130380224943447717869080637950965573642547719792215191705334915158797128939777990220806172923774184765432241247942063380175954694825009075099983424686749492210538527276018401985652841172839113184440786172787208832676003141845283194584286443256133187143813415499855815068506180882040950109875183828748174124205540654422370764292378715298529784479901852965175842481169466197572317358699741393450689495197769382526675448326224285893566933636512584046343747751417162971896412596042540973949230847753639422132428827321877521961037005583215402963830605673102460652270064837086159434130005991919420934045204849926646187177617153078814246891678309506263144424940873606060631139108880765570805706507542979733153013779276248732931727291035544451921447697019303345552119510936772479250974645227226794384087443152566284580212619156094239650643968892269134920271970498018709409526065505775052442465863290543434746561582932896991357927553486949001443895138087939015048937277240717999621603383033878835599381561976040071834912152714653535845087659691434803058130428568274900974817760169184422649604116514029666211465939603226595549792173109973419387186570570935547089334148566830363365124259285164584608749798328052897310057607571580821905008460514767683933795827262852147900246335266803894032872622218730614360269622779619896558452428575266698137125689335783546443907356977981991311338245906714501486592483764415202727108600181789941901948182149828458018190943281482454754520244447755957806846448229929456255638450553913802751658254518152857696024327919877991315338979556454264506994684670983208620205437045553878483278903412632513744514867223872292298239066185682451326283607791709099321963306003508759957964988605533732460956944709200790517287138921004890572648102162576723565758651181205336135242412333397460677790406481628657523483119818589915674976077560410434619174891331143795228402393165081735213700014315950403306405492267232436365200438935399858579640765428874718549818646598999714184892799024666203683931651852698415840104739660568181224473159846771766904830082342173928447996542740803124430991501345190493057192110958471440510184705928590580522220374860427408405218227165440756992961071108968574565733188587361215796911296296236732611156459968423320677603215692736897702913316361895535914050995590036553555153127332330567011403066823126766174112800090092131536282758783116557472352466197445041798568423221218618564530903261833911882204359707937840383970536785873244600720991951907954344062366523746365957756158357069562993515998985250288749543214355664949433332090094731675569694924455094372053519713172753329212505803449696494932751497335620560436435786898150178337024593581683362015643892786830989193525918858892778729922992840591234994760207676758727676623973226868238657617768359440894424231586957674250248898981837247218211086147157054179818136607988496702987794957288899690755930023563637848371762911996655618202060111455031160988629306372007948922408482361061836869531741669561554641820851880315390610369848135506239479900893523169901575726412270572201261073164891085975209890053761192317098764283542598578394318267686666987803124606244156515074652326747090816865658090444625711843342488836986120496738505639245102291424264497020509234981848681052717515070981967408372399693958631496351516440399646653858039921464015221505978890357704132213402785689523708403300078396163338323421107599122708988439792205315026032770557487621675896355662359008703425424494034856277565182362494492002800458224434712331581809411916206756357812855005326413190644842521429537630825382901446855333397286634585520802343227223922659353078799661430312575774639425100341107687567008680257663570878914287635268820449979835595088836155987331018048779239706975651124292051359749957819667446212862602095461774188455949235340927714732462520961786587674003512891835245292140821047595911947273211096283357547421570156840508752599695779409337121882093452074357867340036504251547852980791228075967182119560212739483009477685997723826064489105403934250837609914032600015090896664542425616971729293453715502877233349932291413852010494403699547092901965239043049860496786293144995504371867082326103587840413675093425493369964036651727676439808451821334174181509149447042895697069989281737478115939079138264789103763107634723228276068450825435130879089357593657829870605336340010887752882271768556741535436787647797383039403006308686079713139151391244438334032187932998488415540972829072033013699282624212443704545677918775568105315551463325085938844059563204292246443362752885070825024417032920866972011348164080585978683429627292977698322603470369126736811980869514913408989254783238789250261400181341459014346139601147161585821216985879228232618970667191329155883083260149797266570584916244783291757244636932240397420780094871236414669250016947173678739192254727286602418896437314395615670477477675584297978086720214331223871610285722215113913294460058143744200296543386218310589346603170022525120810220058362892145824051462718068027590308733561306257194434997300900975466341525689019361041877191190575444406499920574386538094051258912826353425974349650523952233717961441649825136864553604661498074203947702738453568591066455546447619959857517233540942160345169379104348797206173396345968855593832381834353743813679547108267620225439309511776532979424984278320712080267809582447212554287105467719500323451525215306743710149429368893372394941580413476399298708604243038284509051920654759997570751819987858516119931881410066553111785933174734704065938469864957211458872464971015370172584241526225008141676153610965582028238886671346363154753580217466062258742924783582534334460708859027282447801449031907333878237914575299211245422530433532745351424310727681277721292406579529055920949164517661023668588090723431528207687554404584827251141446830935410527018629136014780302777296495959945769603572486618470511923243133586857118046108985681610282678518630564968894932746035176440350998983188463455904236334033574614629779412314236566190268840287255141801379638211081333184348694160068181467372191082121873029367926355117415024520663765568984143084603593977590052092192870976714709536814008653005697000246527676640190689007053835651273308703150367824761970969625428083967421084482766693847236180245414572774931351538259557456609294131412980793468863362954943298112087980452336301477529542134253869364417113820253583719936597764824602765631372107881141876034339540758872154385051655671595855586858393649520676947701504815627845839865505432905549388100008171337240756354730356345441713591122907831966581989039808078277773740986614971519867475529640294697981583714522750804878067880049579831443802814376165584531000511302032490759890968505033060052592161024244273194814996600324564627239392499987257819261332955262634694780497535434813272809994840685094365058162881542373174294871049036836974260319307785406407770722784902504242329610001329280501327285923857404937460767808107682051534275042487912713997000465477596868072192155427158039110336170591773715502178563232447766585071089763304858448443446712306778483437092445958816195286394351963946873986550441497298383464022952027637865622479749994413671057921726995873287430729397375520192462227394542355600331442872156255703617019444434544626242032944126351043620167967674180138797857734901576777863181659025165921876557046155354362682273576059820691854710415694392697051279473744540597760813580859905571055047777867497528376091070751956605553167342199360907999731540065434486968976495800278072678249380852713090092735472830535640137486147919192933462105070709120358058269591529152472673997355555197230114143775039060115384757360915470914999816777459436054468071454140539475251970836415296749324076249810365955616371261560967168392705023385018380482277695412917321082557548448873187483036220002768003157598359504871473153269125393784282302871935905759101835637786206311906990893739729776575880126920908768514418921131026393638138373383371616189858719095255352902078855368433546911382129017134256614125322651942645964218926197945255016739545692427948155596095023792608529981340077880263682648909255447800703167415933525784910483141245883384153214217251358059498118231053004695472688638890632090295736233119657163690205030928113514910295366718386616103215048311935347910383680119261635242470944912687443316962714740706823954390254594643530159916475539317415884172731131787873299823410624540510403193772436062056843076229758247913020086846706601152775032355652373694594622541664715887682998065882885058649251502480804938571799131042113851709246545138481170766671652220710717192939979748929733033582790799547368810109902192904427514537531721573534398369255767739155029234347525069574072016182736695514599624959988238826512526191540581053226373116082325383060271655818144092942001334889424376692532785883736754444734001924924194495909764999668806886940766882565861556115867756554385911424247000908315147428612335239071958352664417953527629622380020945560283904787646966761846424271936862040163807301682518732530997060430798226423668871303541167960838886962987784645322565121494753234260313538015118050098370684126991031386381060815652344081146379740258452975846646845186944703691518691597602143623783398953197485454963767268491305451588365285966487326083367898848129487754122500240420311009897158506320012658998452918479955829784481032474791100248034989171057966510747093499928375899309882893566972227498098228445430160301835935345102313191015995695201105601715787553849947266254915682736263084728854124553018105922102211906587584516677747023467895426545697146430630261704402683546302151353535993734722816187042043333218409382838817147915650972561479637182204306789415076605172288754616271106770379363454354329202356374836695920994897477202143051907725731238115719630827113257798103804503528326970580378649685181371966227899520844154320141232083111746208481050454000644295836557213054486921986450890416620186477492077573420829777043389592636119534959257412751561626663316721724533735405373853480570328903381875488074474491403642390187548904152442473589695410672966558149508513528493412313137018915359329171602452813096678081515576070120698386991790403878065167554428263427806274514336314691733212762811082237742786059935600257472680980360508307987106786856710060534286102773069241968227213894230724942267369116107660122092018649928577875311394206879444215673364620058848379665289037749456840469946076055204648726399735821018137511490637401383511830723222543493740677679009361045231920252981111223064503898764165301656696387770848125452639024409060394001583639064380966936368059226504946054115358035614626415947165724884768225941503883553218188400878848328219571108413038326585310755071924920830967907348834360668026972371718140485046401536752188348164549286534139494362176519083571858224515148047506902699415480421463691876710376179316438836060019337105239024473934716774035314991039131932128904981510223134205304233672467818820963640830894717410582765213019736206631997383157412340340542861213443822434568377101669662316880103109853523707682330057188765124488555247841211971468771670908266299348041566294629407979976136863356141971811983324113589648051772017246922959495833511027263839501133196799060576877332524634568814055262568645142864559235899056791118681735907107338543054043648562688687968549062312715158727546029866380423594930299728958461062747027405616369088129301032224770792314803367170603388157124273209806475819603992773167831623308478387215207947137087276189671350520750800735977364423833402840007594496452039844369524683627030425942326550532945005429618739813956795141882458608401484099025352409452464896101718713018864569695662188720786126195109589388612169176378342480612558418993541143450201708293881779682556498055397475839105633653360312478211547116250524709578384954176456463209292578560921524447754365937877156848597847093040531002517767224062819641737024635824053056644738871995909695662756889101357293819678540556805374056013874683183556323722178409235311786370047000505676385399179405035011200070662083440966079818306387296412305804894525402971978719657811125462948381374029316677722351857095092881044337564348695659594613882599463461701634999386041187102778624520076231771501184520247510359547955699255866297360299497851080185577485430719528273929115869570170567770572439435234740158537672716727888449860045379777028029064673372788569766856282233143386667487038512271774693072789986644783331703665263412335314162153086978456518839611822687874233355857368319945778948059152918028797371916512736122990578045140835049961634883936782337290688508144145462436615946579987972744209397350165153941847504694393774817829531317676962762118392953808916723279715480967904600033578414755126977784872353985416049284356155542610867379468896008959437777912835696759037704422476096743035565829090439811095855805240454679848634843820584194076298370872236592140034515643083780833382777098882807580340198827874187218576248350271932291185987063392180613445951580398628431845874651149288115115788690188257986884181730181802124713221202031987809509989682123729502639227423217382919527098268431548097489163748229371866498989777905536480408708471851926768785404625043925356980286833598937039645166660131031303102570391867037833580442604170044800916832517178094468333409352581621178269946375401824396562835635119948631826964263215639068308563236655629314292556270439333569410387119675794089533507403856333270247594066091041655438292056840099831517631016654243061520760948934014148805218603245713085688929149797424270822646595129045943665175913979425846559919280847290388452715472436109851677387312325104538705871898193155195116498511081444225318071092004525438769283072184498895777484074456297005063605094998990782511243998332893012357332668484031234569721407334777513418068356508513603521853379645494635529480818619728268522655305569869404944271616992313842747717246989023447785068478552629131120257509876645723558878030997161471509120586357563814160872259873106030736861409700982974200976426936947936062501171624015350284273921694180289726107084066857159173806930200633565988843183221323827712873321710341192093710959563694379904439182220434365644919796212540978286277507781873906480592010072417207597128072476901615233500705283852446994578505710777169069402312581681063896923583229128539859953875913142697069478191259936383370754543764859108779680041770020523836456781824903313836928715548605398060930201121316775798237476450047527224330266952659800513441231113809841469693815627875897457743950762619573787904357493850752210881501896682475193502448821711375056956298333886736711225435633888393160812593691748640475630853845821535908176715813973030261622824855040746028851254900303952085719133183228874466047282280941148487493182978874612771023838032413480650096224530617823633682025325916176569734493664749536045949655048445961387072141748187935306542016759728210508600711264380472015677977769100723331307466170837085949217878754286121464034288342955398034710055813960279721552640415697860168442350789881390924289743498484904660412568788903466004954364315686455485489286266835845436581011354025801786613202644503587770816844958085992338163837722168660197545602938033086354970553406223217457233015824219712904975958690697656004423910649271492910024204372689281389043214728616085235884228170750839155149916729867015689744203838659171222087842034552854306419294226742906281366065143126566890273557447265575230942120820823744157427085140437408398452508391720629283136586712495836538531652502897124283642894002245531413633363781409019841861753301442094416024427354321766406463527270302453465937266227881480428068749751943613153414860599780350792991842220165598520324764372738415211421858284722874943380569793911615658657080903496683447105873385692942514210102672383777790468636165026552238267758521553989530724477780742317582512816618918486322803322512361105535799307247133495155125740193240906546094643933491740242472888532586775777935294427964495573836544979481456279132495844241973331751122481819541807091985075985732940991367659662444174113362173254642803465478347064531414125688184706674915687730138434533781744202715867693892790781360467223248740617650150960385832327530363779705030612595478944540901793611307830829119669725559468879700540163422846632256923701515701736948272062225488775325109288257332842454394698065754393991178033172338533940661327893199465161953619698785983966700520262255573107545756488759576389000493650185145572100144479406894407957914650872172085622922198859360077758046760017444152763333349679843567202094036353501799115217844750752264923310264361018174604060931508744615035292917229725343295865440011538471593883669348066491223600520728046236898916440649989834437855410365801574573694024572621084289602807199076848827926043265239875564916677929659550255559970259604331504140390848192960790513899904436348322049421894888909343803412807956682231392949856701061159755530662884144281050903497381950803954475960297374332266588998658367740488494395273077005186146275358292088806657631544703046255139776489122645667620088112826601503544323283706748360026753340903773317259825333432727515271004732116588899723038469742989048614099807954919375274886388622517109218796176202508668853273621315582442679161836971183008028124231273892116536058949186353942910041290388197147592890620896130538974548031773446684478248628294597047095252437153817832529329735250918858308449993245655660770906203199426221372315521538756621656935552219765111881544411478277443331711566326400001041826432028815304888885558855721832942167302892913425339178942346097420593391316531655790355329861624488801530727278920504676246651684988366109184207589577591003427893346386107509465866286588200623480657549482946446895177766867030354642726189198691105435667808232994241785824479511540285588982433681459186741717714919516015080819126844176017940747676225651060364464525756086696843170735035537531206651764138919688360798648425930292261041163173040961673832794134112988205102847679293083558776014508249123456580422027962437070212840362344512566709098703896554051394052914545488777040341484806150880966078183650434362561550872028915464811664155229090473137404631234751018697896605205452790964265644248060161456175670969775212366820490539959964202603916102989873275471116595322754643213501961741244066694905524405195527468595015252293703521106229237340912472890047968534155743444579446868139473875109935937941799217962505150372383281814966124800669431094259047810581018210452880411124006371902733465370754160358747564053373963859456560453416345112473707701088339392030828271925050421978990354054199550469604217933141568198385524059778275901138050563264742379718937559031147733540228460470609797923936943010184730686042566147518087324898659950918589302320211221844919022470071435797784689670202604433773997205398640705377479327345186003699040914097285199141622592670772777541215002127696102190634361518740348573893886793605313689311278761446371323241993940744629284403935881029178015899635008987727594289541605796183052821943007386796312325221232611474036783317897247581963808288731362721398282035506864831145277898376408850555983269353567892612594664052631901171569601795115381955185560825061780038552242039164142219776508385079532916504263746455277242873231540147719202871470733045387745774513864240752808086956248548058645437341222140514619550796750705534215744564578985101691879834444581902697341427927305438563644557247142756521768186681416602098569362067763678875222444424777757696070033584794104784152579794626779914063905455891889538674927775179335164570920962814918437282428062968020844247435028498689565871825978500636266812189076696013619261078112567927650598253492106695460018356043833052549748536921867091922538607538772150971652317664280348879259046776459362237070339857160584093826660259912520135427457278694564865843533918863711071020257267790113623907339274417574003932541897370636951873552210408447872853994554559804057610304496683050338952462133329946603332842322586075953604772126013267998628964041380582736632243486548026521698311151151948583428914271683859101267559280647441217910010369205601435235068461674038044941040741184764772270551452930592748546251619764963966993857821586518503056321140501791374070467290392245807001658473445516177579758773791377001454390227028055472548805564096603530326128627819411034971655912586810569274576637155534918642571781066871788737963273212836474716427404318224258387001128407290081041099157639862872179558762843806523788074704814209158933353699211512996811929395766902755063921198179092468296073400445925649971566938689848559251612102072501884536883784575537160760319915719726973053934540738720335558593249985646476088544763563463685897623968547873544854142552824437070853106384864748837893519722271855132079890046426373176763006838286120696311330533048245608960159599499850331483521908073709732850801945408226080985045194376605391844436012686641932087411522847959472598282337874062031838940829704490823317258606521694300733686550849158854333788663885634359785950682588249640678904877471851072170170671552298970567329532278996092181440177808790100183648015340346144092634060271178592608564925038643169284197707201024449073855649446484120480087201733280776821900153260766320920192620790311780687236353870358156265499986616845392762041179990262931500063012780875166221954025734928616248460661601549827610842930628221522913936384503841328700607998479519395725212090872240243712801395699018712052646388791206542648854323988852892965584571920391129092006378030511885036468303892014981610857019120945566451595426778541799561398957665732194879603777667622978537971343236085141141118745320048002439264642308038553684966950338731618189229009609900866471745802060980245487556099411128852871687907088849406438854727058833407474536862498911162847024678494474478295160708213237479382351882188641625727812034731972879937089022513972645517199227748529996100157486576833706708310550896349177353001905237881096725574436798925249086880754633060150883999160798833894687520211075269683033839676908411427476569646806734905308876651957960609703862780674657994989902757978597114122545847572311667367131395975438604029729278326227930045324480826440641908984653330803741586839342397510721299331232642427587439298104935669324947887795556542373962582692606133732646804492931455894478800091512458489168694576436452090815086302364106193008614834396327248501443217530117960638653517283483678313648626229077896066344511609118688571308929976821321231398944384016461382415069918308366717839400182441775097738682214233772410170010050754213619674918766035519768875941986862559327872797472976455993165428481652941700592356203928748305649531496514971139593832111536992808236958466519705399604658323952959528922573232828711179175428658570155283544245183300341994172556627269054212963720124577082350080686540263102846889193369902989470372186593619269603172273420114874759304353612427753701632486770933639581361200488102359502192358022878000947001670090886781598607260065587304084162804674087547404186168378721954141807881920076282948403381436236686585605940840334371148828519645072878469952270750303391167605326005230006402580864744250648631506065461703201805386177110347572688681919019500870915439242690876119526693696302510577023884548461476761192561285158880027961489258532585956649952785599496211483335770733604888681273650778578668609373765838738953205857497377716866316701847773188407550290899084863164098971067319308895648361474441687471326083117895554267063356511631181235925540729846263471937782519924507054591510598559422259691176604722097177607121343446626446482236890674910871713937477020997657340292851743289615801388964298046787675495286651794849634860942558320823215085461306927629770026300752076815380324913471413750240394637942753029132274683436322927928965075405227667776290409768849388014721440598628206833729381567011225080509722464905786767772066638100752588241547353441407286861100813498414585731566614494616104761122752491574092532961748472811973367763114355302222118880433516128853016141664255244416825178133220523403026276458819406875171947804669698172620416890664982623968673136637487213891378426438775335343707734720918443478104860061229303405601786252194065811447112508933069643657277956029717598271347349143022824311466713751514936342727294584197697155610062198094018201690852481577444180570244242623330760978553074455278776919726688304133551238844675076197395616500366499226217721065549993700922946296897003120068224032737052311330919605496625535545902065612561210664578495311000219278825779505172118252755852971776704502982363108234894621053303634219474586780003114516185293512909226001878829374174619609732520346782522216091815679494422504393819493404113559409528007838528243097404124599649791751441459736330254823911219901056328790108333102977734696714430426637505377774939524498130994248728956388135689169106446272454529318284897759380569649957865054844744953073473807844834401144353758033433786786264847858170849345755991713126195084548407511859758145465946994529390807274878711831715004899119661982878278048117032965520423003683997651149616263422678236146201870096047266187532654270385648476404615018179842008384267170695875183523248366567871635547482985116194505095675624104943698803068356448035078397761851509078858002256385317856019485406237028591378620356497520135763052518634594836553712664215453583523419269687280721778081079759010511550197400019720609518256389697668276709411735852371302765710881469706434281384087425147724806576766274898576898616967596861194712763853790544913040036852144623329137588572229324716895089154340946005519954946064494519010794298977149601784020944308245313202759151730930428697715755732541480324820915200281654335198262282532407504727958557650549326499753944363445607441733918805392646895168057962682419317749888325114549668796859698901836619583445213218912571607709302944775145671137542564450549742078913263224421178039384962542534716684903303023000656902955335674466126610231385713103667740128486772508208639730583953515614498917976514663748490247535526213901478655946371047604674398742823383129736311931416899912389500491549480838204865059109854106781723507108758654372764523896352424473732199680931441054999303300687340140586043821473003720820049131972143283828910220857061523636348245860334199118176687474318752580981492881061478449912596003790843622666975293525579988315655939622787379492836872610290701194159156879677633688584676169691549143930344678539636749656080466947490760150939447422469681288999537661389389990000033689946359303582445698189490193737835688627138860109794790496502248271558884841231117588291089693470418427108996938554391597067558528519374276320334251026460888525155041269520324014552205791317483860456083726839261768616997777800829426901017818387709439376112571139854371740110342767553542609630735988690789028818513371111483512668289732730305636221277002579782277250614753556581211041382240645041752076420843772936502517159172095692396341100880708110043514706316711186495609028002920377474509110117008871502675952243190592339799457045843701188286208892713166589439052082155365111030645287689330394397115883247742669205330205309151091418894993862186309726864805334702341518750723990501985013985690949307883548102216706459633766025540438296739078257500508144641008222505037227356187357225483458429180053460483549340806482797897553990101591710199286451837434506383961112388627608748245238770592213164401696552960962752315326329975441570781354892402780248916387413360650966833152468199395982295374269570232258571099622608362101049606441437475838596391106429712685405665211735089507901803092352364049047015374928271464043004550637457129939260539216071974297739060602510542747545218346280034039852418971146502172532271831668185757777293226933213539333650143026625029251201302776589116711433840639615916633774941096290414901201074678230759609257546299260887199367121948191303779725036965028761328872072758533786663131780448756840490362384163069573211997266064405710661730534629072202251913509108258424952782575443321429445199446147889182448606618764690223844613961299445492847790404989755071537856265155215618376976798725201558755915694615044301497875519019518702582117327917555375110574454536176645760968491650775452258050808092057469438880293602458464305439637988190023909192003772732059390425900724328605585082979268815953454582052165817548514669186172662711111837009202701537481243956838676263752618255148400570933500107167510337393702563394963911484740467056577604486638020819196736631371197119534973913096784195068293348481323374418326742610475532462329867902435091793677053935659911192723190878470415099538071346469712402135942797943390661190050897868174729716325877059575157415803420404095675158489841003876365816516565609382958801353514272930194158086278890694651108667487873754988444516959786036295588019731266666410976534115952587460251535453294390622347461687833958907551839544612487291168686369532426804532264442828545227911021766137686669855849786187682063489271028177351495848077711262415737281310926236244911286557864752174626738242187159024440236157184843867328348519959840492760403881247375435512707990536540547764937110320821002594433670723417187765608875002766857514237931312700715259469562240374973817219593702317376868610232763968922805530220827184478425853824914337973741541248327854108932019878273520342818271273406258227153921528234936209652304502545646884501962862232123349535080092158177874690534152559873207991747338951564449288228695111237135868660965721931431208587625063875851679281647810266160189996407938702015831282645093852832318742916616930647188844062399155698534652516636637257892129213936187287622704057008896398320326788015987058100982666932137803400877771062775516838317232196528945198450894017265932824647156738471237323738819998572331590093955703460199257707624606922788631065799503328952859277285701903258250132517600332448127424234376128658430243703298451316103024029604951982460148348552209991608268337189426755627235371255327209916493249510209138715492868372267534344510783505548604316840327903081928842863422576505507069988258967087867779144001582782466288031880156571466860405275781753625799979724742641367030883796376003688797138732591901811010093686948819041820053739152768164658817655271946227198226844508905513529211992633389281169209234091931628534539530544867679467186818536449700469967848818098041531693490437050609172459591561528726710704047118264400551815612242410526020037172126611122770614852645475696734107596462091444647826897473890671879542708199651952798852446351406017510192641335490649684938611852475009526619850258014622484407035783539437033961568959497945085287067422929502595683609374474217827358926494225735829017042629291556707521155676024354823977988275226895432196039685862213933404494723485528872095514179870996616926498557520966932176926080396974632234402308829989119615082344360805240217280396521941618561275327960805969655022388933819588420689993858051671793105625211016283816914536090154370969416229037037781127810257758293762809315016560848698669171799722238859683238843248994094722672912091536144496784885829559878729977643541847242671516981322132856042596282760124610956276280502086421427290200432109189813536686914139121317034756258557739618934140697007121495826733789955628099527783769850926064436679078613035646918532471918595718426276724423800761531159394432867768944134931010864523259618445402759530412482961467896074341482184500590839142687166084127590316212409167470692839145765002024442043106470490465944714501056153075045472079298889582842205725117715479421595239784616306757782630927088635523651420919913030142808081920320508677091284469052724113503396193241915048676458155477588247862457617794473765238107938401304762840420979573660117869060773327887123615930722933347116004983062171364609663646714944065116686712430890734083997419915413623479269756704912213476709163596329360095337301411668652059205138475226264002743354440190802492523673857887862567833247340360422905509869659039949507747385761967411348054352965331465585324624240850866953221390486649382369853477477332369158448347628701484641411140826900766965429869939218943925100768647766836183919096192307048734777897378896800193476904169895652369631963433440691211198342074917376593526196265047611041693858830648447032294591282062832337216782127234195009637816620148864298957908203815672752611027331948553382574395088494734724030323612402738131482523158322840733788325387573811580554382093428884130015251142255604530182630540617043016361728632519581049300514111646931654600234564722290799424350677375234823415578715199921543516404678697106712644843687025198644922110068676923148373127429891282428223886459663136867166208752641381855703737742964279258974543340973636479113199001619796259468164736355310204198284040543681163608068990216528116835634444040740294852018262684823481067206700504495014847457677813838492682482575390261311349375753146297038422546979344516098166464288816200877969858733859482827256409287838900593218930361360258907001694383406484264508085746376237968732089005040268623051051441981335066881952895169073212264651445998603235031480077396635350299479224965193256044354246805082867056973163122508172241352254270389344629107217361074322951249983856913320888859542756438978201322054202856724353482131640565448039030355640077571265309897442334061806209878934942461031869130860006121311245707767815004453508995034490095190039220041359294370583998312062156845083355190881627116334900729279239138752707156963856973782357597121603112909956055125101663184773523780671564205686914514443658689504143620974508088650343972163721485495040368091656781631670484397305950705889686952268721709496037886156157810406052920962165945288640337851139986413708692780639419909188232651308875072904368655917924628666777772846256649861021256638165358921038580630953618139387413268847740795837564116294875260966802719977029149223098038020536377881211748433012813408596220000134903552105932286321609628867815050462257889381858735120186489162039034093887749589881455327276662501331899903004389870919559996536261982269820278829419094576220308822699292383661256074727565872581709826579225539565126238024208176917170759355277654414028410023167907394048605357849908387150888988140789907482698308797888272014027670702097765582126998660302683617088477449575320461701194059609694788093882215429510883755987455242091156639506584396157849347631931828191934240703617421329992028773770197590732228410643799690433763319449340223161227369319602802826465682410046974752942637157193182833184656897955940916232248201149340313988747529786884550869649118056016084294699950918739547359035294154003777433070115667923229009411899812301450644696563851865224268377131241573213106926736411959601710049228900911799356260461581454426325391824837334544603628870386270686027750995981851087508103058772483555421688259631759893395143090702629425136641945351194790837058060350478161546614256774416514699801169593785444156702787140797853226728346773353597948435723636671973210746274477802672493335164170435559071398879592018007718639857859703815682671753702110849810534150850229267115825754498749281867433671546847956822833195052870848746560041813708610066607686399086656505140420494324652996843740863437440644726335966509276797570325277543675222070244384341403650415740787238342512205822951780107943068818750910053139102288498578944642252147778599100039480223564469762801906040128264633141700212309440046730828013341062490181808615161807879464146300421821525663148270546524448767045936635698715638319478950700715959847994104480490968735423150529297012474503756655738229373267575082492219670598308253581553290142321591248343111544688427354952354983424267655094538181684280748037554859207390405978832221688595320702592507915659121353645771675338127532248734396539538847501349842568029977659575001257943904957885043361944223843967833622042669806095628678334300322844447563181131991778367070773675511389738872464386388362054000765855283157346069900894034156949584086651722769201392570290429875297212021875885287088834783931019216491764214686675261016990936401099203260310703231463752200233390455332024959112776154069385662872407682888568376392458578099670907429517397606072604316220813433798088878215247848606939391219077986322405630363905237170832905390332220714257740712378862795300533547330520687125932159825432592861752125759037010687681908638872145468561566907482428814247630873361054448115293302257950788841077650742113062116216490355781928345056627609863675985191319318346269615084623853950375954725055604658252730414858877119156871889052895898307219076875522522873566864946597829301009597603125359735386151392374897176821472650607453342107879350187355740562821975548728471667069183744002316446924783862647990517714419642435692787433769027876194396847153501538324353145559072794379492462024052543973232133092675552234441545036785540726247938074241661319839971217372038498856032520178567726384996109141029204413815936476216192020494320826273285486327049660576634803734745766768897355378488190132935999292801573117369258911522995636320954920795428980268501690380456087268807082109851016010135332752868204208512421028870593834889658742807713119907234451411290616136386635874032317380088877226116300682691033551004515685786450986136273149301690045730657429860001649529573022857807471270514403752545087287847597315206800097401278224421009937822245607097812609532525954137638734368859484742114464650069482043105407843920943027287921115025814129626028319062336673908704111278628617249990408037531613821142765232680690256510876613250496330284550891174079051613762039383189431093475887474551680839189502267202332190043947454581833927335704809569052430726193674684286124676689633759399010989326696561643473197873169756721118101604381206648737087205415489325499910605179521986603856234065457415310152996700505326723337946095282656776368543093227200008793875715686620224037367362892360357633094102488361388939103568986653458398399683974222545919674605149457943310193858651176887854574457214451892584114814309635159794774449262759558223576232360501778708450471994558591415657626228224813741047334750065720071802268753578972733195196860586437391396806930649759934148422671514039272077637039491132310726362289104059005262614626046572163274636803962840599857716068456874638636652053038307154754497068403198683995817907201198682008032895652002419701022790227625002433902064503170984087763549863478441647955361099169444142379508056389374679452371274518902157360086631374834229718274761986853663468389745860138869315356414545627472258219870795288477255617645702438389784845212785768778549521927648592820833278877289359640026385640180920922146385853678602610173910267007715955258846109120925477934775082208898696727105878804154644875904465247975666012578735775342401784155743305589115165430851630164468282554972052493710739315406537358699352614462431987148863672903226913920770431853180503417406866671741796312355229827137863606749041178737046246442078352834865570707007599837153651794033401384822357365473025422751092984503670233106721178745965259255681725541674336939901471148411472323665230094144837466335129468299468099132950236334465807333745884453396897847101642154483749899801215870388066954955760536716767363786470908720496535997101850793597846931984681769208218321134796226354255999838894070505888551426571902710005913101813545100236050269416582888687241338684848934495894505291186794076502053841270636067688327101366525741107741530740812117090642322995377648139207184845206731057712905486287894846174260806543261504013727843910470105129519222719153697650380231479438500202905282688762233974909542700760039370505246492551479381123914072812552392311605756001072925821862393699187219338134990615307383524277792896647139077363521250724533167549911429926073497429341618210346490635800609691660371163719660488157832266045298219415730344180067605834389846489010383702958320866219975242968029087964379504429332809708098758003815576195800114424333943674499995753839320140105065431028344399065009557603487895683057276952417595101384386693988861677385673835673205343407165088438264233740403304500589964020736806424868411265849594723995088417255724779075286634953245471639744686652225184829520601879803158951097440575944933180700856569099446250075180007830500779026460951525668228832746630040497444220861900633157020828169695768521987306300222388244013241954426884699251116110776561992778658097280368099254671827045474782602035609024739382364908224908201371333558680455067902168132858232762507276221172447833977386277521352136238143824416438924754763608710139593251730790885456622034674035218407312468693978150976924059518470191391438076362299474379951692251680102291216768522867010870303272300537986318505874628677606914793124069460937293974702814310676371448687990969940652232766769967322887945193740532951763512122264087133161761525937255162903319012380170159867586612318385146034936224335401223570549259658006798774509160496267726673652098650718462617281839741263530032907822067835648353415173249053856851079528521290630994797927274657890117837416872062089392369981573226912342287619887256378636332940756380702863602038822886281493037127893424282839302094734714300115640847253708175422166154782192589706656159299496801668162895949662913246176705024068040164618074836543046399821052429456726919337664898817809529940888641860597666233578410097247116947551892196214308861199663162338511479314935227557023186240881619171973277309694141970553494744585190116750064934070056293775835005034334294899432227829988695489062105336031254578764546941513308760794942456518503840765583192285860865077919747182045383637216113108153488573582516970933505307184938985635632124315531785976701483150407876916982826243098510439301422007430156677569787393314291119096424081723486891860088359205922574508475933678022959799116636535829284445037170586748026945845924799282668405334390153362113074043699996341163868301188255569040289398547208788545252772853795648857798407449530162159661994135025839079264840931451544568054159485485322308254298664991076679632548287053756898982947119062091975345202089519667415916280395958576677882516457051045215682516179664017647169018069808620584013727544559036902940413629444997780311397540131398653309061246164672401158654737767387295547736792999467107135445772444451181311994394256389179883083741458069963640514017416795715247129556170827114044842737594825840560288435999354590579722211980948023816020271468925722234686541132170970216656874513081079435415159703011259358981875539037105896220009282565333009482939026928802515529113635959669200534253045970968297102056828331363376390178781493289028321497193101332727261729046021347138224215104321711895713288427192256503733072648349670191733522170089571242093100675520576709846078058314200749247652327177652014693765815531832060810547891592262886094333971033821028869218025363854665174228781164083789740553037489678271217527462945510335458232189433221030179171086625873042792357439881090409666347690552687446758506224055898299090811055322187003918003451954941837385111894759752945387248754990438242749008340044804679010164153765794969610991667721204528050219659918732303589291764193183682877387819102925127170365328628959172326484020718664579973850116769075994844285623459069251943017136077001024823139488963102047290026573688680878555683422453472214395723669349735966876145633788677454225371259740978902639778958326505723605824775908093126411231642925309907816126767797228050490655888730194987524242064594140419019115825254901866406464397989861267381403086942846939623353400201387418918968545867855595996008979552748886614607291275873658499458393313716707544650822546670360976391323005487687440359784591382429480974060253951694600977634516409735931635033873333325998308260350663867496770542056797165336558661666351830032916696602856206299931017835936971275098891823937965351047102075164404931846565828383680244374342256392025019593466017507403310352341583848440845880461841159314744229739605640531429562827519930769774414764920009582053390251327513482189669819347373821369595728797324207270853490598189209500540001534585218411084102414150303490650293155956630501194896045633080609340861339773518353365250131671871199788808003349289369672444775292721697249683304723685371066836996356547534068785894830195453213456954888495340627978274731170214979391860086670166402945077799674530750075766162874152308541563504986775285911703001088734107606387881306441503920539044242259469353263975762537653462630411128241384534959851310895879632979087029911753839703145299767058549461250254851192596512762745084000407671318677469630526522310587874426264764560639329675515001066639362669020187090166699052098362681236744568204701967174484393461272005027733804269795405674242575050175709678406606932652704967029536620484590441510698911206534128150203756215852733766668351682804879960427275665551491750735819038870908847297393132406287809998951191875523182706346684325398379641892675142435417497114216386745466420682868078155719578597157526785334667052466705423564326491710455037144926190640160669711045929009959109275657269538097410635964715480025293902272418026300513129398095416986963857136880998860830198053525897336369442806847377616090330260557962420380792391022677921700688085744103127538553599066536100123056739389304102902743817376491608372334595484207375111581672734041179013601384093770425537893467987167841448906008645369621436310396188093829781002518064523974522266649057177301913548126796011029926668721243452296790464504962527714034753888256809439794308315559682010934863260028697430086830264193031216898580444903471233612207458194978632081933676628120006777421453604203211513129710127780686218437607919877898956910959112996526418766358902209996042898298403301027863912296230157772389807333918842247829021905274835457498333525536516847164381586787217549390742076105185510142619478590161374810242113181106193757425050681691705889960402285294953767216465304896822036927856566351005624075051381894466360864172766885810770062553732423583622095036112725310969600222511505834615822360130317287681061796054020145638904832215458662252795497132434329492681954685608774247263920324686367673708657506356178469420565110129155667460720854693847380378690230393758677056298325166547479858893496795295949468257264391233980464747015513426679884829601078255914153094983612988999794289644637873801658320511655302477144435953919919537884833485816592685725181673668066830468802340559678161561641471939106484726837274792046666749188801572091239873249506170410430659949810011865148525199966046382684298827545773233001560053737584950943457235331033418647435816914326859568543515335385052135816364783172881691323617964404662889311435242600050146484254157721087121538996963614612642259945193089239481531484454707749801249351589141248133193088532383232220016280735260374233007516249564937646472621062348607786304356762032377742818391693256321409917757524417244214058132656720340776148105550562076771554328947942121066115720694059328626762120426453256690100668268670112416004123947257648196027355035027260534060559119667684853608748196069490141946316118422681112117675871424045329232168237120864423103841323938533023194456358645597752159862841556232439809199360843512872359013133072899604628475190607880365963112027725668433195526722514478022937724262340304775085821212987999138966996623262768068846400904174017770469128048254511495139253430927800177737854921575155748664667847995409917670707467872589824804515758576621865678081669969962512064123380243927774271462382900988313871970465798561876970584875678071366423711896132817825975261754819712753259150298075164994503710954503063657551429836359583430277891226833030759126008533081502939859692777206615050682881316000536718803961429306805376347168565521518852793667818948191795667133929746179346172137175203961249401409059784785979251034457081092471407603924462596829238483166494620701260353692757911466547115295889298772796014861518329751893630129263793504484049125786044631780408049074361634213414421177821743667088624061955920173142932398541978619846745168866232002225524835078329299686646025320839255006890085075473364722242310049756028096598767287506027593113808887992652927597870333969813213459826105743377234160073784927946571840968509836518264898069563691144538989763950489377962143856466173265329269204333524108589061371622071102102396721761970811152434282742755278483923336593056192594619538924136844144764080337025438267652354509286057051219527224171826054247546052250096784090539280690882395620935367992801434198824549925865240734017687332371574194246259218132879685128288972660755993822607459477860141135989110601344364608785738957145165199743857843122143766894725827846160342112388400150794231385206382328374409811383973782931434700560107166251253408981036739721871202855873170313673541796955371580746812220150525404975916219058885335708382833416809827660640382832607750398349143671436542435892893715765308903183719834955584939020993346175358975000390632169280167640059391709805980318417165161152718454607117737564699182228673056272484363154884525618743212500405896040302377696347823356372213668269124194037649048849808975935038923261007394238132595195553804571328087691505698258772149376575360057993253098080839559474811801190430557052238418775865861536528652042568001207677649340449857745207921403155428554634892738727557649784855377947799828074374455592116855405003963685761353005186080559546807645265369283056127186880335946242763258128828917112603163163833617483214092413031186383406641193938589431406443924514783644465537501402780855622151255225739047280175740078816258032802230010177496625138904339168889706393313122409305527175796798100740336011149509381367242057599921118701764995132919896054613608238497750744287607107813723883875572267306317291950110544290840334456758562741433934028428648914215967717084944674031234657146923246137210697949004285473548746382096400229153333949303494959009187621677956293345823613660947250025506703563503529019213376620947492163778422453303461242619440746868785587469372129579907979344363079329923188268345387180379479004818920395529279340760262249014687749236147577881582044449293902075460359134600602121829033194290056200157155077965884685279761687460823557169417064990386180467220714063620268002661360560247587500147145977163985338564305347342974030052035601232367352124657163506991013157524609474215186034563271322076008060268211020231417715412798003628342383526410251865996163170761830430402393836449888285160038773197899407386977284757137546098795844841879429568202431292971755161793487781496467204913524993835052027211727111233758535674258356478876301351188157370208616605917433174560516214154319889940239711278317409322835406147033506574814102883508870318676598008424033069788341368258672011991750107359800049801094641451370433382920046490778603003771705029742473358773061201085512038217709215585131143158858953868163314108691474602704851506900890296050439438103538848515454147800861015007614302560261318436413158460094638958189710832006032806856251091782016897184701191378060860422429344249969025218888405535123783805216327771810428433091483309539809571532440106575783558240844181418585425753106844881771285903647592900081497637458224752038787851350025709003078319435639592912927853095465974505146969675660981132341101305981376893688964629438627848407679304757372300336106912775103288322647612061855558092838974999873546218400394652811462554131755086176671746679755211119900340474064934490831187709376813227478892039176732223958035609898700726292199526341848877153608501318647334488798202057101044290328652526337604472809825925035618904919013787446512568562441043839865459197271110111571778385215381440605195373337915419628715539616403978697208053519958875516635515333281269136637130904739872949505152423398695074080676994514842079530187127904526906788779351907778719186070576604962640364006777135190855465321040545468476615750971525481506014923100777242025638188580219076747554521326408217696994371212074966772852518369667138138472467836712297755773648831249482653217078497791436265259722890663817328190060330455979083012885845683461564652841011192994006022714361017945037400223549380302789497820508511492014115649544823553203930721107400057493274227511025747438632962826692759107853304595767107902657711755978395598497290081750570329904569441896134100464194852176691835272334776249594456543846949184046571728513653728996904643610658813396821545790382960401095262219048692036544360891816542759525432516905326187516893192216048369120346786270205060450900453212430326597655292878482047751302614857305085491523469170732616163272418759607182520082859028119013512425568030920915737303726829869881099419966104501058453837207985057847734195001616270580575164476869549884867269515175784446734729160333863923427842578313134541776758730169053983014556974172098624072493767249269066652044080395592350748526265180823158446389156756269729759446380403686359036973108033503494491136078650361044864767938651020069425766124665632568454858963740580580585102757881960027716492105722435011027840279647969509470657781671103056499658989791597782745672753813735804457110868067249007293430858650856552785824276318806802774670277844631851488767444070163507332980056327657592934565632668173309179264440535155319029396677961623046845386179931697502541884733570364754210293400893118409512896160715868722607950217907020031346906060982082322134464536218718712368316122642596621339612817645495699535515105597306342164014760705955504606671662740179789991691109249268561448009998895617796300134380209296928038394301157250894875028359736993307800122388793187777678793271833122343947544299754920337201144326044857388757359990307792417309492227155458551548092157916024735224406678261986197846356730494371706489188548300347203575835995637922746647576413599683172876784892523736481915039225469837548230053432115669096729760438981202712659937548833378337586684582469797343166678252868863175105233127626146216455158510208797016401632363754996500287235672044017715687104978672424336884679665253810353610868706341212147747331447586834126538976633132374111397252370741227757519228942043029269891072410476864658533127371769944445387855167000903211379837860315196638484937273925421295360507960785777940837372475726448793433839580923686926153139509403158201802482691328585216490940822895721104199050728915521536864825080048464858840081017622285579045290624590742107804341714780301668612498419115036150599357000300836790461917739414766318878631520244408175281931493823781728226982030703332464958286845310979984665402744712749400292174564568804157811631379178747290572122775650424587642501284001401534293162646365396508789899191873893361376298093283663450160329176799122418031106350772820058397039842016249656103092193494408565073498500784474206955387496012666334208751063937325090890437309650845338168972281601706674317599546051169071424995696168281285205929150889076443218501684153001568980734775338176296126575966619028187341732907045386213006024792525106394943392382740849264344637437377982941784918082547868226709773891307600473650585655048380471224297120138373474859862282280246578354852282725347138444188040524949487103736514333601612954414882675449566662662145705252809495856468832743811336059960900978880455185714200145428913981065802421558324911997362143263953464261136347603513499601929265413738978197070213340861967282048767202338233020908742696901416326066351185953293830058536572420518183917486485036348077744315021828903484867899428003207838634272221716067118408813613133192375797452558813962045559553850834610583219556442765257917825137916799734914105836109129186354723633227492352174121258257033938362202885662443770297940405521764739247938137678852205323268645779221553722668246528181890404866498172832331873141675516974994695681578813690783883845883663268010319183641915446418597606701441985984745499562403223664733308264842924345242748107388169969316667392580358531982446475882644317373011179434187042140930354352131419232543702546729828431343302687437967837423278711613467583263757393054392404077618921256947520437243508244322830086862938759471552482163507270594903460153321525537016496416876523037189704629798645969556136149466159397139792028094136464175748872973215773183924958482244319549087593012930884634612356944960982245893691436730414740507173042446544486819831395849332919495703845633212822393895975316981830014099346064214134462410662730953341554084703053993702863376917297117802803127871360309575404566702249448444363673528117327575135416787457880013863180865073838554080251389385473199852628838944388434338201344154818211229167107543460108538491158544501633342054341059675230525657133592754333155972418072245288958462356989933581811176234106426368237926487199355788175115129247825485733115214765100047374170661185156773333464914171827756890134443878077833793740585843258544267116678860061649308772075133141581330027288848965227898383097138406631648136697786635503274685657760010670799541996394616498459660568822509001132607933592217397776735679589680399968622969761857014006680636221497829517193718526406380574793480427986446168816507745323910587569491733268619293977054648216574319123106487519023405446203666313333887185008273851943629687046338727391619918171084397033792512435077793476898178513938894718391723742913541533540066798992097005334286081758043710072530447365878613825112736567671905476598824577009474043659137673322150883407692850640863153605642517658419166966731632354287105309890449502339499711049007349267030770311873294542311375973936797169465053232266903726390719196322102397225394090184294963179299032581067439597215598780448618898202796409669299945966640427959775184956536592247983100969174068850190936530393111756464930815151381940388504960923834480452833956977580446451029010055924475657206415506728091276445658080930950577273283722883473239791422794988118345944561428783922683668451778396162669700319020233458140116453641579452975948264782232931560864848347858895661275041963388167979713886512843430437741449700603676829245386343398266181161098660529015334838572685451061315312880931259181956072098352115736438407691370413192836861894947564595237070178614079004855058854796526426592092986678774949439034539832108775330433515959209214142942063391571752877833229228146811785734533452478753992823058369359672823419136444231873661504521887843739196912951044194815062941494255310828077299503208959954492695195532030605826517032170385270166832100350919050655676292812830579567752060991036774507738675375837995724464252509664223035375365644895648932206939499804102376893843779963352270403007822937794932785816520509950417935647870819299106075577354619562172003028172962858980478321342027387046030120803087846618634927408142973292919628521061210331871582385156117044494898254069068242605001894555492673673139456418632254292845713282402962618367474213220923338295646017853373893264866876815944288376578267845242982397909970956819168412426573378584518273668717500846025505284871645143329503727819478208338497675632177544453234909997687814197631105623538606605455326440984227566491690886131961396259926740811391851624041757628424420029889556962175463488618274167633451902051274692233943374423981790903555067302003939763822515101362050765397180703491640403939531966072322500945487620307182899293695703459791899703887621378366834413466250110305592978133448582977259095599545319342377698593006398522167133033773052393110692211469154012171862634681699692017539912426801120694357124288546481592621921983312844143607641309752385812874409200775921180867131459973568680152333375959522428757649928831707330765449162940584723521676311249349244250311422838858781860682664761097776280970041638585275633609871497506817392884232524739429115912335948031601642435343529995777594515037494608091224798659107564009599638448219507729895598933045833569676571948736739417837993300513512700312136421079215722190388260616587007322428867671909951936039875102527642201013199302128664505216962900478798277597876714380328460355315367528987290736892036416409696183182022308345822172245807164559447027523465067946804901849607472555822053103686459449179297097445863024303569696145357794478403483818804117266796723912165080507453434142099969649969989865961027367332719463946580259603864343435907039207864088892174796067978244546060349124399273646173631024514150136884705522939583370827587572022193845473630151067410690145119386611431193071246403106300571854506850999970087735981787397235289143715447116040517938707514845809835587941332837122193708540515316017617953705420030470400098551456509420513740247804570383037448340239832729998807204737611308476307782112300247676634160170215386053508039334193213009286714114429042213847733762143031831276797904983571490544746330660606607857176755626766770613976066152769529121920189446973459058962289203639729499557561155260376228765273205194249884513003087053110007239286251020846621273227971467699319918547294535095549209149452285968079203180751666958585381792683445913478266182002835818824318845413731233710405119261454938207108134739863233818293268607815614890020184457690545611741769846733532122024411495567276146811245345639636766178229033123726445382983349908751507565221140915081218588174791100438978073431904034883288703397037118622709069433181085041717296899488595754410958475656920837730476365015281118447920075659575557257902320132324602138153985772695292900460639847227795654198630022677226411277551331377133743553277137483333282535589649284254181713879024484181712705488176247720847715627314930910859045883887209784238260091972130659255144068204207561759413272379360059751952344529094485507993093733243820683566090645846452837542491557363401148246077002169914836013516468334372876499686145667841643760380696333466003779043651841367291169366772567695859149271584903226583686604635507675324605671523906240484288112123427167067854627258211253896330835756674100639700737945659869952439244545067598355104900434437752261619281218409321071603816688078621514882444122370748975624410130128946985160685969247263071049794261713893263176983611646799175694088570482738880563956297885358607729045471962727589821278066171832932534856882219695165512338602199786867150934396293749545960019904849885247190411894601648200888521269358765959274421125614900668993529377703316131193781079163313042881453370661490543592785999028214757567158592534379875186980797513349765264056545603110042853001835941647721307338846753617337977074927326196459248501417824920765459691486067467040485128885974473446399842023656416129407167537658784290116722851615983369587527567305986061050857281988224671214035981785380693502081373394501340884621874507420544684855889945282094435083779943804939533422156692774620496514860514320906302292039318004368881352876472665764910676442337077450652574910449427593393964832096099807259079035886317402406335969739285834529011087630554672187931747149783070653573045425921192626009452698469833085383005590191500692980212710190103797646899504239282272479468535243091898651046156880857459060845644215554632550173966407760101542256252436938041037483415403268283772017558398875778203457058859781283027998903368828499374685231180567176976804200656146503529439909450948443743240114961527478067714919652168968085443502341564752541808959186584080052511878345879636116270153795834390976915195324597375420608281594129314007160264167249177118130909301894784258751903420806080306684898414345537456171605858386864006402456401742614879322443333547406230780904504501311666352924287442427463227702904232462471694240089457679842833184325583304581448591400969205473638824034820288730835267031750622361217190555222408560519732153633313462215893300985041615667193232104872971092643278185488946994276620443868910123004886159854391974285001029244666785494153381987386025639478285377101410160973223701739096319900162492934106093790149302819874349321317151467633358372797385101418561887254041971087586306605199744015438390291867383727956426228114780880660183686446144619325864965141370326455439944910399772077659994314736736380639254707113922749373966398849603069424968397836650098703395486064491072160630921691931464741744282961785039313291159697887876095304321897558754017564569553296718172771266839772990691040224494572459810514808549349810484691644963787261813479301363891146902621688819376523309830425057503267760229731206329917446658907411026944649477429169442203753899327169145160505555326390652246714290548453869174061813228790469414193426103863905051577027178211988865346201238248160109002283899158678358608447253305649151816332160507110492719049294315917505871138448564807347671955909352834836391614922002679128787510211590000293931477181802569300070669588228301541293748603603534025917499258982210786772308633606531051021736104112632935053572293538499865720572551096398777387151606732403683344217814784310816338477340788721032810016931662615274727006553518780067784377392513620761681913126695397833657783617298493554957616561535815493713647225866355510029921977554321685829526098017921787621886982384268756841964564972096910844458166435091830331843129428791926599481531130268211531952359877731259330163654880862236992859869269660653138042585507589103112274109848204742404790351989246667463061430488933523069877768074595744010608759630852361871014724880279249084895835142131541279229126318177748586329217534180745608497128281025554749751947281658017378894632043732068692189205369832238503233653497884810467904565338739065331340528861168337387660293123418930953333029627207301125499099231506162903112186252300419880611381000275327996166946297252642690918285336274340297449677588847961704864429061748844464165785127652633900406654594519616434898885158769554933187907345599100015436910067901709721141642431652710902224069305324194485140514727979810767476071819124160907549852720532926019140461076158687315748647807245753339799489678514849712806620923624812846898592244539593925352189851076957626645619447771756135994163870001727238764819985539780812620515258267076128894252165864774313617366023949866957008135038349740216880526184994078332027855932502548205879418353080988347567728756694058882562844415953364954788305761917920285943322066924023194180666786536099004358543626874065205966113392268438095453578350894163081308233024601361912421942012314305583868127881605237661324829467996868213702542893550859284615834250136723891738524698277993243485633384469352068776156024036527941623750028540880651312822911486502578812502225283469288528057237874613719310799962431935018995958390471931748986791594182555670863926012693603368065530248623092900931756053953542041625373985310890751704773400293277687941457774979691804624536099693166722439078549076479988948405374504092372657858169368318624763224729411963947222292603454115409937340468954710772659229747120489930545921124382667864027505255208629410377732321949872409687710034647305615579026858316767498226648871075921444542051331430072117321070740992285673861557507613178600129065995344009760671958604235215094155860890662721579507888450919379020723673621859076596712698885546465663797796409393578186620580039283115976423708819618528373252121038064973551972705323633129852804957753480458602975291662492936982692011187175570824829019080692365738323732843286161694043275311930597440159776770891112370850835157121498847629297389786907884603038479303018043330207030254470698446098125774100659708588939109136099286731543498333494396597181750978354794859874983563618433163775524373729406318462105887580155773892998436096761291213823926037546008450096574706543270115572310491243341629064858751722878215431064313419741441472169511621729788153057746142647811115404282224800470252664540214576146079522474060088192673072242064113090835882446145509815997918072323055994698577074160085929818097527483899825774853378844035175514242126083041430481607920906016448584044616403476675983215696682883185172696080046457621098228009777848167145897538017234589824472916555690564905470642215684216232030761279201822270628243069608734724994214874854075314841051795580460148797332810351003416391124494500425036142875932385705040353858267695063962934945119670686609085596457195064213242015121006928405538736561007288099924845233970790400862459382189439878747027376971578809002462649162571029513166838729699614669278011168754409359550874624470707886020011305010549230321683962353425680803800734724483979483706553758209591555897715465165729533995507258335805208621442067315014010587639140999239194187344449507747316326332647709599287692745300040096326430316912418779228679817973194933973209476413720284215838782580294557590772602820038450730950768191901066991389981274837710760547802595048474210502358057428878459921089125844396198270634538711115924813065850868278142316988125551483947536330082750970000880317506169236244925942159534197652640862212989105995199843221710573924523883894027029952996319647373793140781691068656875296745764092165346626775857915417102920978728747353660227008221991082828967310235629467501843166920347538956344587227024455891107211229705860917297987001050930955899890190116724904537280397572560572236143806233618226573783811624864936348240052256680764948325930556176214425359474171533406976801614017390276019277117459525786913292042915320637998224151702029502167217729056465935439312426915340504578252813778098650471777568876113174338209693334394397420166626813301955226489719029417838919832931967186284800313952684241023787916973680164294567597680531760899193337992446411426554072418306096348692590436581611527419022115585214924453002685421224191757813410670510560960844638027882857187157230908838816570363372696845183711065512464198503014195989522747258428619457841103326342218658550021292916734382580986290338907987003402403067824701626343044709776506089888569965886786738305752316292739292108361553145048629593198974316432741529608864865687669141548982507166551814662672469074918975015349136916971002917886389806524048346500099258907228904620949917767768481900650111070690385855461692643998830416683456385509873971208735021009581807082605911216214560569900596672738699230323686175335143498576549192433585332480211987327283394473733377491413618435917539517953932019098733825250039288230222621172300156556618820465799876292236388926312771355675235936327665042614222834047588905922963720758658743607787928371087530824424244463677908050774523319487354174992616761854642618974049827535085068938007779802931744034086913804918011661096346279548738416518307193747944831445293957990602008954184138419340919550221307889767818944861685377005043007633843736207775767420752518811936148429530092818830828796722132182496951894667260034822970056335491123225813080047924645111679388450720308749437289288267565324447501995204375523590366853909036915003461907891515679264304619334179561793947357733912921233397674354167899881775272595783626866233926581412734155041242894036493948851949817739149547414503618216638729346589217271859584921610336350086930516433598856833189065538966903819161903235779200649258979329580886103502705023913608309605872260653873602258263984822276230325514189058388898221706635330094600689391501077121351959209916780949544392108147304287718824236750609712056629775415130819784130561906737412582268931226670856025353342605832211200276828961018907049510095157243286284532171685802441392800489480897444878631403497077607552745337950523961366729070367542255235304770752783890279121996138563845531736647381715010097711019283350971386804185264262006217644465104016351052434212398669533228370042325716017737336153392502586191838780156882083715221539465695905018669906917282159823020185364115290152173560649337536406268722341309187159825976451851034569196240438933664069290513464755586043545140458162220551780515838699789143016829954680379007934785699511246677465485301791844538955795823344251952544058503514789198756425797464744154507290493225747621908131084438906932658564380682623440073343458401077116956753319371198426831607244004855809946779038057784575980913454252125431611864996027103859844674792321940094041244223057739896839525553543758754525520158945814915862323875278094890921030856426095885636286755450762096329772612795845980361988321579311633830017181097555978528302713191801957639058892948508169768581208195037251805030412662036669143148060282458172374959395986287660359888401656349935018225790976484583527220983819504334454735538523736011979712390912900427841604074818469697456964786422352456750886941108155656661963253528366567113652645031349892532506446664202311164744107118802485388171907261582814191834958387010783468471459387794401322422851913152414129673576053817504093967836075772487008486872395283193479061017875919018716306835704936339987650186318006556843958552495363866716145598010994834041939714624805272647887624054200062569815807361384741605111830027825605135404482583971088584711758031272553153755546523348593820935022341263847784449493645609392348227578263022443091307746896709855710615340971596240809472497108736550637942570984129657944555887940510248743508555791040592368529036355047046347743403134956692969274648146214915599802544522465593915466990698866858658817992695388763880409923681854449435733264655367540214870540542901636260159560650755907111781614785179913688993153870424340574894759071232147385288521185199148802995494675039957247873695545155857772861057964483677939915346083483067422305793328810030012080853167401280617927125513679794209125205740691041974630436093901828004696660237826368002664887477648570394750822654637531475167784238661528572443743359677491726342058728747420382531422118240314722170373179584580711039419139032671471281072778907060863911789231658412577157165109377749671428106414716617571898723229027910194572003985457562012947263885712890122852967682953581516325733867188237180326122718574766507552917484398862226030622653420187355070086316067101370429442641011126812727540942980125868075664554952047343433475719358555530390416188282001141893422054806470122857972883041432405895606883999746276611456441902626622100038701433389177042533645156080880366574136697591018225170479032915876248022287049358696004784427638448986323857271667234509000175320735710651329847231102261050847439159038808754659546141646858405480695947376575145382534038218578738401158301399891724044075331498762694158976273623401478792891787070433610385408546168543945227360683804077465652194463209176521618308897089156751116455673167233382598069469284492957181656389414428686911062370837212230729149267241273491440674288786605959234815812192566727515712703461624909068064381472749643354640948324855488945001442855720977766949900727139063957924462185531842109382842813957158804522643619062239157926002333381958810253405015911720605831893332065199341467582649606541951244922188524894272435257745274396170392194526523348446310018690494158271997605455610147886834275520012847250875938726005397471440039594412928821956859703730660693757025119526251406925742433806505489011226737830780593696012760899867256064779940355640628180528584239712612534471050780469170104318628888539984552782713517434100238614115592841867805785795459834883538388851260862639466572382559351575032960538197830332733675828365358386603719024951628524643376613081484149526083953292430037356089388830430149853440801394346746754240688154273114343657911082922806465137563707215311557441121763109366485849785787836344436249193860867415787908272421276945919142579835119735232971476138141067289692924392206787176194654176044883894243045900675900397752268742364177063994135903081988463662100417984050112863740620169821984733304072347966112511141282222672860373751421789300320191655904284780343517311547465533874923224811740853438572380199313588770300105335211055427321345090164580045308124162465351814732246267726672335588056698300621887213527939080183984801200377977160435056881884004404678874412500618781690442568418658580843919106916881828892484406283661450870566238420117552522441569214628532403213662751806430829209533150760410335211858380296986446692268968664718453910012637532893581093824293178653240922994415270150001877899026453261820354493922324507932948522681304096421746613234727275761040000631375169248364537898792869095215537956986163160480286408975046059713865299364253740293656567119560884153063387111548845074713206831646934925991534084923209366599697284759151072860667381215922800793104278505085189878099444012535471216501508967924729661747760144523684531392667526501647969404302973276252471639825195082023319974049010093424612770955009070783973574891522724847505168307873884855069286167143193030589389687428721360728291513164974809181878330303820231430862582013325503729397797364503344827053955455063580868592483445334890047772825501050400020090835542373499378564526355628367470969748237386382713737156816813712842838296654029183242992052961040268889327694826034684683253766182241061700658373216898473414890397329239326302871620050233562177697807135919389265639244664843769235131318587763160829108829502292807052760877702437975349201018339668190919520490031105584644736467271698090420850187874889900032438678659284430492203986667489784339019156609323902768738736737668289462519736366247693910011600821985823275057407597935122110055324824601621097856663079461977569676130989336720881429583829118414057948699535242849679422595456956783749310513316639312265926695461598449519837251370896482513792587648092470955129432143700415059375922488541847138119310994700666259321657842267783953030785160685213369487044449211489095729674045560935319618296588281801012131271128727454271731199728815678040391444475060239649319267342193205820376815734252497600644210333491202778462719540611007749900555657623446975488286777019462572650017907143688668264684058733875628439940839166873341802101133586636343798737165013122168369539497730089036272260821609392664000346941450356876663476373203304997100479437436329566158172839923807217352465255210350563086604004460848569010860083578101874898297422538210258183067670762966387946454172030815566588685332131859796134808575178786625502449995544068754872416581764062669170366053362668404593761783432302449718672519817613224736291000857700602293163237099190265360327403653781929068563486539778585877412155777696807007219523268576031838973636181299038235968547096174256146136423210271606558169525195792416018426641277322912074558561463948401641591845229700904325632159130268946041978351388358492147339726079914689239313644411403339783021964333444074103868099997998425154728652886306313642254560546793866560336708825585536920999007062709502205771887260212501869747561093766617432650083716404344434462149337807389632288259452291283924180020783887109031599069682636423372054047092956713098771971996653426639976480214199495578864223874286752020175041363228074675076157502130949516150036858331410667347772539155981902650609839825910402654521925944617388310111555424393461625764377538917953295350471346481296268011911314550092189489271086508240953811099106257736068398385028155872528925615143753914266275821355812042935958261479083018196510252548977838654927395431824603559708747419340408196453536774829007915120810569600839642177241441596116918105610529271342711936502465288574156461856876011948938039223363878646752157476391856989829623629474213034328293974542589011595688804528179059471925316918476553322706271342636885060342607571986868689633458997346991422835619973491694506354623717150548210469255648978652483958694793985389177125525522071047181460433647267533252644515280906657269699873285304167299168091266531923991501507529564877156470605355004938028330712509804554072838455080062987549557659087918365379235226350325980175425885992911256963241888952342076601195784898290097054709633837932393988704287228550121911549634621379162394110955109823210023452146387701651150003689150183614363735157381709824019607518920148754017039112571381273472307564242020868007835669437034688414139964591318476392617525852920467861569876008285070347998530255812669542505579564219469434913752129171411940326481396978156789972800232173339227340070322243551587204479367626061823902356747658873852452744127964614750418802593035654076397639008234123603154430809649472876992426826578066652877225285007837295047227058163905480946373720490087826983607065277086213177516340848582582313218439915850254318132342578735837692933999585950606560406469221306707869492989621014752100864591892521882580232436055951694263735092897265243292322342099439118362343738783595461362420799546091331934914867276545996453313294858670904032212971471540411345507967481181722044966985802271248383714345965728292954831599538805285853516920274626496899537553673414914048765347602535106282771767012732646307714448088142449413371821394513040169289628165578320143512532365852339436019969843153952354808906193537395834454135514792246666278928952614612472340793086466338114266094654000533647189879597736467878710310725687651979729609692615593640063173725833000864170834551355289165616741530332111161010795567122611518544801834221014890449225094664163120583159711385850281290485623369274173732917747846456597773475993555790830933304463799879207305220721829869825804633036215629173755982025900764244692309634346181512252397069937792515095015447596926698192016737475175589913978931746321803348347679886996963388196346629683725609318038679934095115449039344377588153833298834272576286265393772385298555408053909834525693267099100824581875038281155676951699278792110633915722220709122394492792293923950327089701256814998178076494898716323339358686200763832941946225104611990918275080992450300663605782225762918883287890217808731065411700694169183126862146674299452264543404751512264181553400432219672830574788698522695545553384160349901453359407357268083784395134729554885964162329518952064705806051848620021977911421382366414041176632319541423956617858184995744756583469229267122082706868332787964855596728242749777346197998657050427044095839053809703578868487897236618295243387951963462808780987191100244807473969697855982395172276452555372066142838212634580455765905503070201992345587458345858819329668375706274661028014641432480984786336288434246033168223185543495025124635006423001706724046482948561026329101901045127599428496913758270455170256445075320989341756451422200499817388251260457952100319111029944132064111542493528972579805941414048361280984534938989787428569379733289136968801828318505892875171007770013634199691103815142360642637011701292466335907044226632124774652395797504696360442075988931996866695525504811364337520725592971004539175438615594824838510634131168935334522965326792377667350301762919818474091720799057542523444764034575571932389139924229756110829412085101968764612516586697791419138401442361914813639075530739385803461756164401011075837426528140671963216207152105562776534545108690434777140756431602189841256935631306624464488023987295313454980509255230613006971145717218305296392227076719288462793321077359795012208220143587739034718159021348865758460651158702447751403284482073098397184094921296019973249592127162867641866963019491744615787094747291066461919595837850230883531164797539101404690084219765484640721839633660955072372767777339692801748771447859514632985574156135503971656110671176196935212699046958220232174314293002246097104861949241142924849407887112649029052787638971428903402739841731353549487830814387828301980821484736048721419053957387440372386817354493977593488573088303287707498794259524823411913507078326712288485348979565128489635377371123386997763825970301490209385612096721529045711648899297392236905164308635373595977062666382645407125509568808545080387726941186258678677128574428427832105987295514873855575460144733422123124913316861242937233271960780818740890438475203225127295183399783524878415068926035613365364031203480413365471879109232123965245236016176804484996670154789996417050408187387599467323922484097552511170760126081282783873633914598562146958303219248042977657751267865618058403704015483250945566512029013799842569593723304938071675377977528255780405394927864296842999356739450005689671464040834564267015015863117009660817727784050340812337926497952950022962262036852361660135854841538877663562464472855111469183277380246164529051716845777348154364353970362435675772912567105892169019760718461870946265378732287127903513469628874527992621746030983899334857092716836125445967651517822356741125900621692242039625001201213172002223354073791464847413157146549924491622528028033068751254979139287026324065509463477248560057134940621212208781824501553848204795200405212886928663290334591614180401894124878550575498824087841507569516884595578467733867038216731491278787571446652296206019771803628623637208208276222020959739852451801659057463750206119375636865786734059552698856139037349160282528949908712413234210424362891828420366707399858704939074769001822042769330549799527092223544993833135861610905479793498341231216296086693243477370731831315766249879248326506165777651958237556366228556390392388288381781792679330190341214569070305670481902813865268824595304825780005487844074053018965699209292195234666455598214260486178251820429998456102492570682271500152531958153855790143139099821988638357766987161353936221996103510996202631580279519008989764050550464409569993361061549336819518780497478933252238404308702564202342783297370852181901467153216153390814214397364991682780575596584662853910602894687588929432305305574394510194299370737908694205709493471285658905745588413073962823739029035664062299064922529271548749387340887412367478144017580307258633457391156531920480751846606410521247764788596749244695906049156387563876204581397150171561954390308262017106297795497635950890301121674610267870713784361854214929443115709179656555677676259137621689551977325164461916111112901951472466733825999231253965556696596182482877885759223576824478415709243368594136548699113392853605231424517032129531576211295969070226591703713875711132393621717755082457752322230152559450700198044127477884089801844971333794659754210347428409249816659090634464184520106004961372690123829075631746358717170906128214926497540271606631417892156743080791517263010746009797186680613688644885212650587439592543186024358710333670595495649267997742397657486631894857517997195132016779970186003950730796449199204575959783217330710954990698692451123526522371993098596287088630941259444153871512717918662250653642523581340546158600902700424903134360026413069300218407902703652477338384641955066330918531959829319127510015091150976759376164768740393604911099563871234893658466100172764099858584377904111175600357858577501051527242875547764178843956417429699425580956000566359744455659766071698320219959102839167135228616776626971700697550014151890212815186661225837696982034282510915927079242455282788197889854239859899920619902421401302586640683329318746514597852506212976565193941280519167696858759923109516351116651647834890066626526005774168915735600874561316042527622327009540980702450780323795396156462063684769918541196961550712223239110074770242018194755093371411959118110757477506969931282595616576428878512462052877914411415559707797774534787563005587727356053382604407821384890915992218975894056292182374150980095625332553471488559851921804844169771510594980030039828892932688609227699892371854258566731192606686359402595434810652502284219794512335305064308234497349010126515241236312379492812166872837777776192777425614165149056465863304423431953112062891484436682065398085272005548159623768179051276796124848364261137412144014457028403214792374364204215209718256281339831033967135314853590710516175721737625618745710859761681154365094311160837140990056710248509381608513165332372108629288844882529316387398723338032734182218661182169912989962728031257361187407444085842958949897817501069439840467066006182711478024416324368347606575321871724841235715239493530745145421260432251445932445259955981115233653172419906770095738453909571010162122939931177622491691395627415815942543510161991519922349329899313455215986603963961680313909332769171516047840385551777724677377565843324327222388769625266934832244244511085415141345119584656912577339864495505785614008485342947112545417878559414824625662817974902707566915732972653405186728355883951493120334219175378206761734178682976125684840011043858688379679460041698207166694366251488620904795811273969854375550237033926784256396098703698970117076450214992644541296825270797057973721128659883851952658297703798604223816513008707318885961996381466318960599549357872384998791048820282768312617055564826588162956005319127411083749646767990479430028585251846797921533748601280699817938892526627254820475251118402817474299696348332370773919689873816671499368407968384072587567316700624686088244151969615612065824065708567752787470862084473089488942131041486151720442999014165063311048681053609367057789441406330107483676136225018555847425127674833656354290741599072972977755055801764426474921736496208350176173282158353531497457906132568213522172075593589696039654302559484268578080107648521359163362510533227633675712473307297227115111958554035205143690525414532097156782674437175091776045449105863387367305668135052462167165150896481267831956277080695572683157723894284374964970323085229824510024641953727538185646490730014471732250819701928867006818441762303184048441638828116389708336623203396749056543176514823746504149518810138704349852293051536898860776745474249813876665396382984308082626082756947043445664767620028782448538433791382116030123603751901751560739819276416830833180748080361124740611359154136798312379433540450270461038561906127466060629242690574929013940895172458647561965047608027769805818003588280949647775335134435488457289128326068773789623329285836406060024565833222568215851072217282599172133256238586057830184099727571035403291111856144853415207593703803389519037215400371604587570603292027135482515768174747013621717179631870902643167405938461298378172581896228944590022414737400506149919590903696421089644558326456107228873035806154708253370203387277339842507721729098397270389710836957415992817702466034898206274279835912600903504184398084394960055549851651951619539744149986412569259008530227712647841520151944667674920960600244881522545752725641390110305683897870049167670442755255195874069921338833443535287683571020187715285136787018626865056597271597686030337415662531996282800463072527491024929543806451656580036514533755048750071742888542597236796910440416216084574758836799571868309369706292274398785136987124182639482422653367873767983878961444964246192763044845463013702318683902703843625737184110412211812249806344518708210950992126405653300095682468016280381714798157375385006256829725423005803639378585773910078468780392349234986412681272606086182548176433888409383625343535140037423258090259633830056886562348627769394588106697051575253945069902713825714708520413313934026639728848201396914231589086243567922947628672626237815927673956007283653775266263007709785503149440488621993902365460667115959311493959060768957400627544266402138384482569095648915387273832042006143619482124619032755816545601565129877348545318627269365814441295546671300986397465759348768738052445896173543630835578751667374704154479376426951379251906785548917592469533197451380613286724485366255577770772811131835436670054064150103948219616609515619513996944798605871263927489744324051443601955456884681165409946448593997680412597822398309940672908674944773971137424051159481577913247458872773414393870249484212739144417885689465500547101593201400904731080608563770973021206787331215690777741493872821635694634485462219163358340064866979275128305079299090389705423613885596407122505301583530150368570151765972980535299180507610725692745395743111805161350959975696909325369475739692359510122561443066659105012052854982486445081978412282518535088657862980982208255819926436001961096062873947260245021090485810457173844040612183651324040865760949263518292172051937017982830765629894505538867657421183728619900712204488928954240594481333216404316085909662090854651616112894277567151455754896288527978607669567362925550345798280237689353339638104139808383947390272490963897826057849114539668418443986962658929182835836795244060391153928883129479074898738550265540917268302775557869564397457919863251529093953540881281857668034874451914568677688931052131234838916041197777824282001276925602939294800937373727753985236165642629697499929841014724371151965360238322797115506219593903536213702489835452221015891960362403542136711961829512918944872090875154209324685598220558199252310227344415154717558124514411365517350776908245721571332179725783364649277465338336559367926164616785153538374349829790517158782955862320097082817091486364489590321011957439076495661774495111333109714974174359411733033363105025033537357847657761455003748371785706670584404674961523231497213906589873692546339735831217708723469559035750273017205205457919691047501949248466083289507849489717527116854719772871832753946567031136678505595450822200876104261966408923025221359728786650917889577130616866992033848838584930043227422417792374170405994873378358395990941696465145167958464973366667858196982615164846565250871392279491286376780232399017420017857705748018583346663574386575917420469035489033200700001054376432488454172912099210686736249865200397775644179490869037264999864473472451223859069135778732737064617574294833995005735177944721504759271870799515593367847476499316254345291700884613947001355414447834932850737892205137642022322898920901332247949854813867023473239000041347951231828723148509642353045731279461633944169740052004197540083060192972772120317083519336258392442640818639782259601240938206490054493731854970865602571561265364969186700494015719363857589662803699863517664412311363403387505815595709709013249035079664269824841384005320831143361806542602435137028615489041866686460254364869158286839599413820869885760519265756391062537932022318622404728107519193410263232203662169355423758011699508320318723646176921172932739957801342321739117700199620020088124676096918810057893593196232306920000519452478323687518966452766250681578007653355460185129334704069288875922571477801062927232911369223419850325615412904763032140851038899649393332660199060431314399610744219745587874780609714689387619194637925287777294707902311726319831226112033904141133253438708277788116551092156263150102509121825007564136374696417279968981328638818492645994689042077352041410935897680771852342949836703272875277067123888725557251500316776867930128790676093321096357246827108951197216421920825005042345970407582969149339119691794807415616630898420294272649017362210136985623237459384391596743082051283377450977759802973597780533579197966327539995073830110570916798195994742272601395732143384240767139401239095829399325180597247022230550796123603106864976820642447453089190118546603038174206322396304056144361414964278995442322174490460733350463438411801594372560591791753415779880844566688185815702967557225223337691514177929271945614834886813174460498164449182192566701918159911794694232846215406512310731573365580949258318811738363169029794696447699912647962681125425075824459399544243019451378375525737199174255470112616100053205335000142835637113401223686426735971514369795193489018133886730502184878828991519689582790863472692779038217212793065675884725616949124012334723983087916581733250658041550448454964878578743290482822978959667391381548055853790914940586566943336960391243899003287898645895618663615304585553504887517799708381005073387755492141252507205233624098569234740323167323724767343371315140770058929854097577497260495403438055180707096931045460517134353854351454278239753728791414580690005640097752944214543552746603746769355388246280511503853846311783109540429224334387431606916923934412728555935064335182483889068546927913168953510292932079524877530168090676546568687572658464606653959453734288915235055683157337201155935008063339010194607273766642397354439657088324940285931431158956438658836491186022304196908658849948913216743424926697475551116256073806186748628487699451420564132597898832390642064759196386921635779408458674161338038833035076867121136576459353203445776013650402028288518002087551695464752182505116300678679636251353029282186464239612423930243377500367057050231397633034153982040146090014049865493918599945295977338139367431099853468696730447380577472631769978112044944170185056551954154555745810704241310247915472681528972391193178348413987541350558683705017692730378415890812906597579908589880517262840429656259541504167764536196213958858377104017690965567242142030450339328334322034477392668813131579190537938921223646631639711594815667501335321435035321485810208741284919348372446111383503772012807800328170913846009372711502193200313490429709554107558887152289852982141766466414893581094895844249347230238059492919514690296261366410306493379244644650357770865037549489534467690170989865784091987406683990537497718895856120988916244439116461719353686212668900925499573284824775375319047198252577364059076653236901743325523595594976014308593890662707896094666287316860621614091259160740182462819501391814551471675614790241870487616132804043455783490294970921821157331132242557594937721714784887987600899750744650465260818904383298063817053875512461055424707696849574117043055071559748559164496652960248708254710365392685804400184533310440385339131544783981072298009823957848582419741335187426844916974491159282974909087778170114096913122966799978927201048216545723123467703338635835590519343192673342176101227845627438615060038891702595560710970627908242336321916110101775674663320819365824803172366284132706766589554367396074094738966328292693385446632226242598473824618894752890596056621721633714664395266484823557759354717318242315411114019787264545492844376931508982164614461793230596302483298937756294146907107900427410311162053269205914001288902321717849251588773213136477886311225927314676555891363634674745441782546783305701342177715803247725393363287810232681555480090235852787356677393782142420646693666725851215147363549919697751411992319102793242460246452634558377401674083297086417695455433233893523059196209003100417923519943315888059021064816317759107447735105438578074950813091656792207780133185129771807955065188347193839946821788410674140148865424717424759802084651839872206977836745931449113769522893564824295846812388102095917118624921559617218372964092727222373018765165844136373905851666265198829038794771031935419960296961802463364088002455683277522082717718445569200538879861223379159509354361700020199949921628345858417723187561229889998744804044114726097588569411363843319300100798116550692637983582926261266789826403518845987902674235601835154125557200692155136894274560428487958293656892869344629748144787912478682069264984768068297966521035900656120489555087638577517041440740366437180893659464594758342526140833127428952625847080906757073885792901739327939516164040909816745051475319741373719177730296341236355831248314096995184065247659939925106789703802784931449617783726006625379973032385973299378570725965817080034398097029211957256658315812413139461530290180003410603402083379875163815147437704077344248909072298673376544991098201155153115791209054830276326640534235039870739467179276491041339535270391177027508897711896747100225351522160988639624394271009539629145333210273400734102131778018180396712567866278127030781116864944691750012043214990772863805473081577158691969974994317694812653386259390434010701343381328338692856928178118816000164939961124622750067337200520145857676486426550750508923368563223637222095641188645603290817197253424937078205052825447951724644480448242796141208712171287766129064148647806504757850650738878090941518186599210017787568098633268713964237837976760429734036598924488672997239335711538613997592569411718878108181368716128302385724245655866523812719313125636802155878847843436316214625176136378944903130088029981399852107305961912420479866729047481510080490285091650588601316574054075078552370550180127581084623450701590821387709947629930510335319873650620894104724368782220731181922936724268311006511716919284158135933643434840418958216688134332154310860033842963066229947172767731754130187755495476775072477030611457205406517979988590074975288815353499146073188763568654565016515669485747289643150940888111666113970272861034587434833079523635764840497177488063466236461130873844105513133221746302727726871259702316254861082393600089282872194054067052885042095205206972034651508445471700186035520155242882203481779271204025205846382239604854918203324916768782434016644104564595162687107026593809049994259004667133676191521121121534588678679237845199180937297073819681401012409979143032699256184954922441149927831417888342830366572112156161503183847103156178773290000508008771814623339611250072956110537994171825564381713333867161606943777030845128488090209177322300100369802054921158248313070822951660095514852403817838717214468797392909848765138420044716801682046123831765899729526181697419546750370157670121623950529331395022060575619241417079711422422482416496279994865842351297558193624677271594566698499454601833480320120989764292534053300711362280725708992988260543914416646237946313809001708675619298386084628328339017841514197897869331508159202188213819942529604138549073881100917521411916361151891835602902436912891143713854181672438223791706991757849172668821779134447612384540996035670769294696576938418903818106213724925191465464400811524657101968349837501531744356436680967687579251917534218328279669836454158210220831766986084270234953257512183901308027520974973105052983512184241125491664670286673096934826764927691971325242425446432791612433873646091829896502501269323882782544140499510730244968180221010790122479771324979147070986543432582048860255036212595500895162320572496471185620166371696196597736682740440220909291991957613608210919953623876393246824014033767260554672449758452330324529653404665577972143884361032499423026628183313979379872067235549058303604349941622404872834176629444506597897876086695777757015036779807623275121246120870090476324313407176189702135943760339193580231523158490508010607783887590464295093743562919678209162346973088166911133098090854986330600011304991393825065240741090698294702295614373388353708528385935617687060589842833182564847732922366283487867030453217726363235215713400784023031984441113182002323441921357567725532692852870523194280252986528577223231988641747423122433180656454095107141526886764944866551398926527308277121313668138369016478965043443567602718747760293713971866081535833941536402960527978641044064658208248171946373957515940569376629914923381787001880135496023598921484742116623069280722246666723995924083797318962224950326059459405323283239897383298841088864114459611617097853141108703409279740347107725027238967061153160557970272709127507415823481709852494092662093301738581890330387351759570698572486488294005270230748549416208331266818687218447869511519176896290515109412715870021915678174269105743114623149493762140744492737316396618522954458174732218801371152176742929031236583061299924230625014062703735374597970937869160677968996009570573164414827029358570114951153336889159653538170678739891799446078091571831746827328703994572615541388339962713217663566266035736733176821383908025375574514100626971793971549101669674758957797134796819632805802563008238334891113068405281386792369011818848582524421662721116417789963109071718440483328453599006568471962507454501193976978538345056164632890359277578713527994070499068382757835851358299420286073109101758313320841357777723958326481065650638996482053900369367486146126729248159877355434782562001331633644887056384259767655243222729672489131062845393308167028764855463123902951668187054726504421278905037856212236462414728317327850513796428397138458301800751967138326575325253710973431413383959151983704609503429981633024449183687022675732630477301992607215489538530699796693302184412027127249668694184648969956625426172325031320867080905155380018173354867641673105831094762206828030263548406333567938836050903620919165633824760569857825881368531432832485182174495597716008755090518701719669881731231675044934182541743308746707934520791641816870100045639834116647747347228703718004943887100850978955723491700872679231309755116859207004691018205011139369460141988827334422632701879139754399434153670801362076771605117832567094400542251874865926380825714924904595038636332933071294975805340951464648072557168883924028325619632754975509080240928765901656433483632170697937896714444435366716601520793626202496557496525275653433806685533091780989447492767559265407568313424643596838598516791423119845607485616565512932754683161553398474971749749988612715077624751940191711694366480748936828155788530756270513451161878090837647569157835695234216493056348483205948997989179539905525936459530074698294587885052459091268500604246110873818755322857001343897277590285538228313394799258372461174476079342980292690154229286208259878624304279746468827549584855134453509941052482295419856969838188045669458789002176750289216219123790830704370149420590919310075920529913037249120330259629765349661946825932345254970775630309799534988686638285600051736927888857321270564423641087043614316532626759675354271590270778955396744230151542268556836243425020884094302952836694015141978623146967959906159678561891854202457224724745568077415148376719423536202474165615673330841524491689025558793465919399678579828036876189295250801402531121996450780769075221167345698660879060867083307042605611355173059983309501661966603812532635799956051994050941872402038470265795543755498891613942351013918833835439105501289664923345690673627002403038958534191639662742293100445190666172583747914837927074530790025227670204554588072306227124839883944598567317980575098675982746959346950540115836168561262193781180880697258114609976112452467009543036643296433745341165065579755360055471205257617952112617133392577508888046741370273880855436464791333586129542599278688693345038343736983638331525390936929662162627749788441315327733782551154616718833526978978514904659591853324788834158008253489567508710784185909679713586700997539891705893266768697656753728308193699532346564701537687838587563801412055837616463205810618797955728115706113280977510038950802206279997203071365581651225505932658789501934374431386520203672390623927538509122671124619589100722905023180646110285273969398140892730633423693480500479445217771836051594955012024230353946606679791522412267879209635566002099286247429713760632225229272705847590658178028627855397561183182059199978065859909272496218077316837829937605767498557087642608911732309346180378881561666089765262635428651006270736953699403031903522192295275639891556997568469498169754603193319494233624213353929720934406607309655117305467875314897478328313805888749582348613026064566708573231680196940395276759629755474067279743271653803929210460602133997220624787334815705845032906660362530042705755865491071533885225732897806998006759185940360463395597738593808417381635479818877308261396207014197563462849013663185367192033102734020572178185617636842979716322517385658199023548340126516435467493660814477883621346844695870897538422292698500422348184665326047278341506490551054686290234411868509721812545985918316447789781295198288115567140677358286687182434061426023534397830746847886822268446488150913852114663015133987392579842688478384158079031828532181712198774931738457251615379783008918457859619063248855517401288452601432363106998897150309443284630140218692747181536915926900315945535880508688853265234294684632674702193648217195327299171243471276982495228940295639829644467913419896909559423103402926187455483462199752166911597256335221706226748450977730069831876807417653126897928853025867556218961709988002270477306748519170407651541864158967806307360242486013923066136081542574886164764966709072413665279929834306035138121016461064048922298064464759081941322911269156865267816024198000468257761812786986024247778107449000343350176455204826352314868595994511064693421147739675357303956582743666687570541946516164944444708750155674523848336313469107604721423072274549130681030481722176210368958604928547816570887632757751886751335787872574001863008445951474993121324656361582652629918232298447687305593701681544586324080937758910547598176405322279075227403302622884356907713810492450776175635019171036866256505612308816359350730186638194887892216187554034307458518247310287395381735925100023789609376234240735781693223917691487974792675821002176678767508960567299258162542912672110013746727652702342990326801895998973531469972525126936563425119823320440761885087926085849988184725674123758809908421435267668979922713335017075174608417245075707019376168275073610505728136960539157952592817404355292050998013430665774527697208216725638184370822644699954505032057869347883538251792801918219974432328512039563577071298865903691317180101154585811004345481713603138729818328309504127975670817802508317427848150553830116301609355948974259652697593186601239937024357582667234111260269664946254197981272874710484770890479868516214120361766833775020177269631236322511617833037162564970156856458994235027082413732558883505081814827030639163980970193344484748270830818856064561768731593607976287230808747215143456316691413283674039276443461624374273290559758461198169969011783208032588468645718949389681667824628891700945701884351537530225774393864770713725866644733611253551205957896328281994106510084674265537149047930556630119816991706765069168008416137346016286908163297031427268253686213188905674854065724010914677650803457347598655844130115422298179673974004615916816947701960865252121573230947198756042217395949282922382470917692723917657150279352196177194709549797271056830315519156770499315192815613299592667437100332680211946031087816856710062811209393434060244300414075967054709349037414773792745296093815484744961247597677766396697383194643939058123810032201463062906187053959790956675892436639919361031111012148971895017998448396886594163341136554625317219657149263293377317189681871800220009818947320680403550316235471320656844865908690278051510409683385350361967442542278990705621595704128332610541825757294595630600903273096430697337266753516256251227707541520232264727080012149175731392088754206806761762310705889515848786614854359723409373842178736701756345758264175138388485233930362147729508847865976001229704618450420000339890478713776563043986730772910058931448238905060675370310312799512534609217482855848837559446492228096721492362246911744938559330252624062901622686864751311364624128305896770325959999475048320284671410955892164855706179565293205336982560629137476626221640632414837407940134034399316975603635332128399642013428392769045225990240573532907053323287870830690668620923279650657469435424213563987104742957016072166924464993416498704685486096799322953127660935123032181403221677176716499727732195246063860539310092582936437159988686485141818269610568045057693785079771813857496596985773303531041974376266816240374950876997381206645233891327855337213440276646997134880892189121974939462244405176740306982600568564304957863547754872679382434141086539719764575416986857098191125005714980593861500389457374978186427469982063687012382155304773285819537976558511248725012844146723313794441744085044127525400342043768433170331504700943364132538573585070048142699730694231904433981823744019279886588861179015510808857063113592426969430689372206475806600645186857665374787175960141298097473015815334789873073873614101562209018697613810086435864907855846942533167129299244547571426499737700145678887436250002870568083437533797880977277406662354057769185223997427187462741715658570733270279669047566093130866550470074894688423592609483704715422070634732059337547216647345033093001081338563201516895898831465918096392371026669156718227125480403262470989949434759816848034294550441548265084268079949032624422880535733524967029306542322086523189938801911601627533265670884114600419657723275059622248551318743046158209782194928048286369036577019003204621631110756923996018139346723693201644421036065514901078946352845181821977734941520573694061981468522653734997240377432294410097876715632751944983759971580582982370332456566920799272843724609291827542189453960632701756333183923281560579783385556428911322415454257825891830736175301294395425182983608978156111159063375522152003662021868756711837491316474120002844753750227177547675787362672839355043947818711711396042149515553089362604811099219508351203116235708821431184078354176216043023314456276853566094424527003915628535408770679479161562667687236760255714060403096129935802689086583242716373760719580876719456985875809284329554237199716147592844960862588578895920311914392017727653056406713093371702372108308163487260083259863205018107015602740404769503012558541371270304470070943829711360494854382753807577945925065208008152701878161171873587674007442343398304081514283944187188421709783101682991376825997987062237301213856704149066990450347405811980959273548339042382855500896429888413376658058183871382797629528323699057465916377280823559250270013760282489726877355884839011058292381692657509596740071357246926464113636705887561205554462967161473178753239278959941929776548390750066093125146505054015072668808094541631567229529274674851982422138994980566308487677713388801343031568206695431197184488848179438266625994773585575131636125525086933538170337481139404706730038274606802827769176948809097679005170569378762775681825910084534927452904166348734865306614707832060977619796279029369320334412109498016369804647482631016446105192937958745486920335193918099329409040699274251860811039870766830084667571497887264343699351385236212500594880443360495988706748911538491648179689195324199903766814695680521760452148208251606966417294784246818341289149084878985764219101854256232215719397989077982133989993283471238375470934188480289745987380402381323918963229077709588577179119015586928313452046903043780587728537713101524557004418258186781267760879372530221357105437960814519283557559432433101117099745176356963581012788845573008223370549875843651513614858659203621093342972854248877268275397961229950642335597636833141777796605610173366100606355808442287968036274406696871780245677791842566718589696276867609194235493443962556076717782696345681571169308082873962976831822584756324513822936412067229703682396578791573452051692678307447592809113863000030149835541103120672872629099365252462023083687709211665392678833624400155213973727670766194091549949514024834395607212529162797211713820289925146727383146959634295139409759692557481557595055009047256987184348099729889340183140328130243065970569986313555694569944607637138189974350213477012250036614855789833639831430696989319677712467528041277422798541267849393744878040883283228206499907456008344598759457184886286536840801214065067916374332729511546261688512772237006166900045866274721191178421472652593587200574837240936215145269417453800188389847210076269955543887570791236422777809725759725681523197900832967661160077031837135876516904322450716026921483598849963132578387841803475350174226658119680135704790022966154570978532806880758153539708124034439593968232427522434176065796061556182765015053785617711465129284372491381446349234183451952819563628444232383167600229007500018740504038071497614222094812401447185778107238708214003025132014704187827876124305656863478415473434470195981071765602903016077485336294150443958956364426824355001696606681374662237809731141546474086793275680138046489853091990881679208798858019209835406518370771068281531456687797537615782685769484970895563188678299390199146898011911117796153400732059871075664668552078568443014533944252265522347680210214258294152386001183320602577822431176863994425570004897378186242870899916736957282693082255414281859019919317734399784658473661598964929959208160643703651694694150456745188719440472628123371317320539249638688760740157847852165683746848949369367638123018035465905049983912916022963506204986469837847631339671787483132654886644450747027784814675334283442130669624212443921297796540705297756156175452308021367648628839870384417845805102052684500087069012891457108209792656943840183047069513754103529470519080320647514114407313884940085111248459385568237965345143653040783967676007251070521893563132595884871137262442124419178295168283732260193722465805986805224841131945776970107916124674677061864168012898162289584105672698603486779219568971206703097698103506841284475909829301997898616632574044625635354714125093283116872414659990821003018369598499879825157139314301270403259687839747386198868173429175471253864499078316114179134847468333759923169688793155320717411884591921249206673646851941679413548130244409117398725890456598757592770951316196346678405614915989334900895874572443887423498282992570390457051558940276213059105627513922001196750098770628422583803414889778799900157349536216296840856458271814657963503059646610268901900236793910533183773706372509589691404380925940554259248759400027877982712766368801413460748500767780300685600770382650207559981459133689763338181045487241934258726999581097396736541922643368735969300817795466029767070453550632561015701364888600774047473048641190348490671976595645466467295645791105324761391350605711968397622771524672932344045253121071727162487725782539276409658719412953621328552768340474457502025684694745928755634096369795238303472861248280442732215561231794361671433116663134951003616051307946529066388731654035400818922103533246920253233009126521917700771185607136231490514652532503173006151421109971172903955074249573488620453209456176945781352046965829360116346843758893167886663947148863066704272826160656483877506615786028299411565280957777190377341193106682244157873749650559430582602876647771058805051716195816331360216463068618255106299156544706761987293550817820414225707186018881931601326267800232760193922669267168642079086333556784208199101720102715287503595913427761030902144164443467039848810518714165309130083358708614375786445034797313022828643371480692724520657607292114041604363225246033622236864997539181921010361609244396547794563098751080837967247413096332427003230917497668078102581653463877855845735839652796304572906473861977074618004409625042567357349387159892443241509358277872817287366299779506533272141652075950489979059165501942096771344165581632850253434079983239967370857432307183583462091300087877817705962586621263195435583735904434799441219926457466176112083993369181406316867570307269514520714664388005379016586751594642550606884294932975414139803188229047235584394609048836967112062240538427061790443138346693509294581141948138684032441693267498634706847534554623480418488830122524137090042125030271090261219307113630062698220394008056669841630915186530585923250936266496399809673461497753883363068215772238309772492829057495930135513367386593819111928737698876060718744800449458559365757224045015051681683863129701292336732839085573348684846441824382675495326156820529072505089036483863444952458442097856327816907339183585014031472968164617204618948774701971833875100308790507100697129780299870732707389719893837891788175816699155512767482548608324631118415951373148988581627417118911352050965379027080610379201742579096575436340678626140100285107845300739916858504011191491900500679724547913100450350042302376062471508386112021301522278333798219053656530037349623909058524183667290498835263651790757778504626258834131298212559801667689240878536861958974297382237377189355497461681982004473477650577596914707696850895599528233371572605501100559606426109098376172140529317792489791065498179230893907075249092685102610565282047160056634287103798599345531241289572573313303476001685840586992320797520484176583408939986822995707595328655087785564323661073835111182705759988292814933803431587392292390036806076905355669063219587818317299013676517389222760121979673277150918848901505092529816372895387482072216910989498386929492227026061568695892220857910424377976220277842742323335056307958002492390745080077909817799889224437673116800790423291113238555684478249812395616213688460401992794803076521834798171807180877864949170680380980580774153879609953564015416374759414176769740649229850483888287933555688499220923246090615981437245496643952194736475075765357119180783598739845537199110939794842819290733663087301219947180904163312131188047566740857550500113770472589626194863652094613929046863455823546614375095712130754407503226905103000730438789088162318656302775483899109164409388978979804406994011947964369053967864824516709878361861318040059899890726756875567671235108106710324047718787197254747877066743495679761099092777918054974453252359261663679790854339933419863546828317852534517185392913517219667737537749798100421512473978614391053062897797478767718344416347058521850793166160371265839204683981985195671763860761832459516124867150549350688243961011857260841123739558962622454160625095152973413599959190742301621383880241689523845258080915050715607668840352158551605944988506140698160224571782983502147192465449614597901106228795645607885988608395172826715521699894621614740983732793889797383821175691414040966069186374289642147166670323163954428210199088609247564708415530961432276092199028069162763708607788558409823394211715873188952307946659675443166383316861443917511784886971410229917717031526316623475550274103219235764695534246566344550463930730709374714704469722484721016556711900720138931196361460925983055374581382048029853733045896241801723303890543188145661213746648346769887321811038190458645284365605755489897242096121872266421377048357228220624889331205249044046965939232223514806761625123323618083084779622314220348691270567465166255441040736126355751803332265456954855355772531724573146219259906319874060442228714238209174427165351053020939408601400607148214745733166597405005024592790715963730827238557698542479818032554173817902936907591541660005788455177793883901519978613059249683340288083878808465425181042797908754126121130089949620289064238563987009991996140171437077516352185593497197440561814768023144177177935355948560551172246693583649883404887088051400859767817133950643032708402761103870569050185758582797327621407032335966697122104323411329359786464426351044986693386713170572154131877427289148583820582452714336011548512961008286405358122104519846499893429525500129021844863329668601528336173578422676464828802424313400576710302585384275874709177907974663498150080171168376462632353424968740211578831431633989976503487953595207165163659258545110068553145240758135739319939821189963303888049923422567109069197815662162198951362896274345823836248840475662293648575824236732565662848336656699932729138226666493863810289301533898725502019264030284427927526034275500121671761917484867347040739389183790157094445248443373120149572336255401126122240701285406836408378239373447950773131742058866344488161393624611979986834392099716996431445317267684138442818579253425989014957535664025955196909487031373887556772257682640747836401185797439890684753142531049300604106657852285072782038652914089265270727694669004571907856604242762697496389817118652557887778522248513030645605038317122394121256602078881316172506360802089391821660155851314055828549839457818619873476977485436128066400056599229208049657063056659774708531152467373552171339813263013371686104591864012326519031129521162626496260713025831720098811104200200583710392126411778476606125940668481886243799790099562158349580780687141995390917845193801815440442391357875980447061284285008524813893303080198859282150621797485902094846531579258365179926648946416854009215327617328242983332325934271439469918991540803192638563574268140162825154074857766967416743569945636655199537268411407327284362100143698385881215759118961445540404261025168233856223112934501258134673735935671138709713456601519197427697551006299112479261811221090156409550336113081044961909305606201113981101438077657311237198577147237971550300935958760614956522369168881120873555813867858352042255263845351225159556617673212807935729348476387656141263965057795809363127070946720588302986061598263818159819784155775481779061372808290189031600875258119546399620757343770045366771725324406915544258060092726894657301052880600591864295200154939607321442245224600569602707949082798753483601415267093668826950139954799765583378573181357108458829289518602957800356150241819854554745578457579673611585708404547082409582764465023689115171152028220376276491911432775271035224411170445505597212192920794488539929026344899115129909124044741690161812902990453616050733903427763469788062454234184511759694412493156708511962957700709956346272833379020889218149382205252127360446439156049439386504806415655795678541234126865743547096969857463000350356497525829325363215255832076318770317296131898648710624456279035266276433684602160201035810863561094779338608247178117254452797727995506275508320108978075360809333735251775694365351887480583694809344534734479243423886690003240256853999362389516490522211199987339927419678310907050260044162885826519283226261702912022655158694201506032081402565415937871993753111492457678189044868108408734801548679007431837843820815627033319213961084292567286411384273293544171352540840176395352224991156004954708739497127139524496159404786866626960564228041613480349977121619984052062548312326423413486693675203341145885442631369789916180111508393619900611648292088937414586888541540682940251980102780402531583345779645398345782531174375359074245739867451643344883588875087331911412788999490842263901334916758213192346911210752903140702457479126867303646053623020864884454320530356556882463185424654625732895402788458796114438415519071827721241175385640244485067914616728323229048559877007613803451989191908583102962298708904617044602206241400808746677274464972881101254106945134427121642097660611575426055207460468755050940142569716189902931471227988788871077447232004106247495731810622472996811551629564424730535931272851912992792697892612216086683086680090940535213813744145925354295716258467394879591682260298547816535257055972530790695797075515528387639535034875501030689359424109320466620036441445173469077535578131345110499847052829620576548067980996739974790575343363488284006097034039556463974305971873650791040321303921142562230973196754133166510248323470810634920380523032927297765628319654141807463407479847399035861361269374331431506961898436821171188115749297584612844554954336056329735871202680922850524842358106874307030501068931756410819461279219260178649856602982237562998698538839295928747838683363836478260076555194221227126352587649563508954277679619475159383620669865413145893790368585721790000210299387006851804220064150442001661221866204026640519898116593796349616793621699187923574800970102499032672342773293140274664378473458003818634305773258597100598997240392050128501376011135145188253929174087417638732031203303954173723010587233182100502036933078254505608213910837633835873390712020610957889536203560506700214126112554734690573199460703229012826147895905487917084316348177435894902758198451162724797627740895244870015809194383988824249352215539816180704692710005986796249804161146500522970127947784775763686135437066994192067224558887165730807065044341683739693897592821202056360383052950560638905995830922648935418578315818719406643267361324394324430051929393517609203832154375877267853863691567047732755059292726494609691660506802327708081725297525033871280346612930458236600520420819983979989567005333190696936927916987186523164283034863558918922700501075450569570932104189735228345945051657561152847052334856942220093511167073793048624618645780499238199509772066652906031031459675692386173069019912189077831709069231283679742018782282407847646321211409302098380943191549253973971297472097098418241149396783001802157231608991787123153458264050650685004019468558624178694256371927138534086981267082147069927267980222466145470705407025180761895385185874724142296638279588795236243311703586471768025224115541356430160391766418264480332286416806832167536250832926664573890423939980608441691739455791543071485533426540881157349956380905013636595987007078414111874198414997291729674709810631729888256780091653698160769112014364404728290382525273244566852153976473421279203656164994857559914358882827231102788975413486173433285942420847159550078389567956469567929552959096534094860999188004705195357641571471277654693318219077918732415007340039220673516950006112881463567439283882354656830146894720681715189211435835971706035866159302533496125167631507030989577072173877202799792254403203545760374650408986733125157442439017071844642835345052718734430213325859216549973484634042033934859301033053369489918235564853852390764404382003658934558240081556019916426398149884212310596031330357923810722737570836927035620620182840705827730302292230424333050376403084929261069725709413173269038140419464187679399845872816111313447420804906947704491505051913857563139095765126905265227976366277025041273019899214197616866406585642509874409889411799100007842905558015050901017039329574909540905825756201781392640104726458828155937875543778176578084582169084430121333751926257007534952948772330194588165971727587623250384179819512949686348986731095475433252853072281772017937358093626744712473046381468838527704004447806771448972799271816262655229775687008911184745679894163093982936348125268628858252935398746402876014243486983068849896583088991358995875519304558994356965582241077351066579552790479507332486863137617600480854219491709868702218804257835450297683663724790961937382250713233193205556504820161333229336226516151771979535585337940257348052005636142914860888425170959606685925226967833132076430866595831003622315861862246216254600110600793552137557346174825426240868661207633387023025900323014416477818874795474037613271430171663879169810842582153282265865468396826885386802918536652267621167511071858715623679930289111654426304234402686300739316177573421880647657761923604507913948172132563856347541101633627729069964471753461446572537684493850301339996463417124198898220912658862355646715888645624410094359893178809594499180995991777201569506086560542641053670833675015511806184579620308064779121724365452033703167382936060307165107336505054314466981916985890911814052210897468691850803988507300059461055982829976342847813284245665644667834962796157303356119227841712849561577305563400834012011989708981272156553264219066237981981164865520897369381796799404389286209358259870389123659192830629804716599567821423518723009302248500455553182545353158637850416581491924616879404118875650658716954488711548549957785605349046023034684161938939301482856978280062606045393228473452086302845039621661728285826007434143572326830768400827824659594289307078573178230878343153611382627845200660485800003918468461094020852154647247837924214329175254069077601620831996406853612482201055585009173056510234661000732358175225875297174862796803169569558337894057126493539610590243777999361081764819009779042267529747063082702906061908512627221831796514899317604525880014534271835114469822103580922319331690835790973828090634751216329673941604759462657043930407082528352040145339282445177662095120068331930855817272933304573298807097243215586512702024061998089666423637729804347349148394282173056457033224502292820139704894620923021537252640146832793030407600475215055323053421224609070638030445175391545712982245064993769814428834153664144958436016239230630842812325281958743490962460935239573943569420528042977913850525843558769741400441788375414695458223816306621370335089411389415310716915763092698278136748162264887968317691603413617653412612163878664313589996944967324732349614445595685975669306431050932082908909712591153809967507689056022522520673688118493074729336979514457021695837607589020990363796965985456657828261123884747776625304933651811178177394286250965024598001836145547139655138789705802593597566104495607211755263920540100496767855813192899676317973942015897049958434298166264719086921313431848962137857960429307012575715459409276784060254407703418982380097429507064872627260807272481094944896976881504103614365086759416674242001396108245468343666337208030535140965567917496671119966340699882760718329693671247405174491515901525783491114113771154792526764576742919857845790618076754918178803516663365083576715201777331800049432434886818747468366206706117916147051208666101390044581287617033715234782672880470863635248594836006038916963753926784973605888015418282877590630921312225264477009709024775549798625565045330261099758098416835018584102104196925274636139724818689886179192259804615541047175498736054119766384023082882335967335889103177742368610832849304504575748147571567890143177994100183859606725763711068213230152477248181455546946177086420580146023600052444111548042544428544369926160890457778995298959374920270590046974912327366013550341963952399961332509550000750206526206715991783625105026539898732746779256713612006629723409449106796556010140456980937798162919683021076145232720972002291162892917076085345456743376738977358771342570787787346756370481619086938619014728932045006189909652408805198925406141449780346356077005085235617467349710909530588965320091090754042175386952176366432557999392058835263882116596727740076626245737666427355770820476280691023148101848531702719045631310624784615747565028296480036405387293291944684206058187227964125343831800840611451485808882104665649448279125991976126796975447322917086470571097418461509534421563154952846706414793210607938027968514814668681560251391122123218528088707596704787086738113963756634024688320543760191836208204640704109931016338637033492500492270841984956753418586292724185599019722505244450786008688573945581279094615230019392399588470009182647935347671109986339366625648282515038859183987021128334683365643882001017038536286239090019311934750586231576927930872256997726788814635936075748833054328626181282033168954673744012005894341610877276127762230421359711608560474473866337969715967174104544178701558668320322292253069467738099240158754158859365691605224180092719980256585692314292206629203496693006445679049454907246393197200855722934360348486239655868476971106776326238633942251135022194929788405553535948872581656363062216443457671242457876984139651176243823519947316381939738011066231698892373805411764215023060105926246004302161779090380326420216510831492730512031336595062066440282370948935701711111425558184568131473360084380790294560592438259337875224103194574252600292749571582513984857667092175952920770880844956176629751568023841608490402976900624364864614383553863132770112051333091995412323564072386272487026336811710541800683727398414089803442402449026797715775170152016861810669721676384701633111873920943523017772353656268819192547742882007573712746638692902510532035506447750741288072195606009451241052549507926717478776440936347820990419402882385360933829761937723933859375020692428243595990922748309490213605150750231622501530363923823301750601861177333370565377130894723246443033123166881802833454854637893135165449917374548403394214901098422233455127137287986666706191988167257872407232051807716438595311106731440287053740914464010466310236343119072145062755099892866382769132804562832243202439141740870075714029250104214141139439203307256633679987563855575743708890018159031921376284178977797715000892942635805968495449135800284580862680574629063245489776863455402468113943963449533239956940663978753508581755441157783088951771498892987636326489744574654927853082748853114430037428403968391735377592915577155698726970919557868309448666645015929592359814147528865714521587052936380145667261059101760243076054809475993046553678308627554715713541284624515598150403566319908784745021192727899480173847007766074607323554688585481608268910704445480975703401608927407057513988223154983806966442094110919254037294800715836923304205093246383074606111294854493299962890673636201412464840789749772370142936985232194080532299095931235409559413592627173197913854382515194693278859530529840985861103967209374268801678258054217587084134604664285421455979158544296927036858659076536108557414521026954962604273897880038440693169612627392625578697803498608909296968835249901738494831194445953851761441176527505307048062747718621855955716324351377941737581683770485101985829775209079872742293171240130750129950345103100161011977283527331618465145246566926806320252740064182572324113825422140919542326867084545705712672491328011700905333016927546135499418720400834645953159723562294280736613036847916486454758789821817998486072285922990834373800012562844118390789302080245675764326645922354141642304660376204796502402989940102489115130758255109182980456376971368428195737906444508089567642980897838235557698866389889923890587423680643456088478750606845309844204661710203532995913397578352802890323937075505073818001679961015202871375005810200455407457086505037034817123174467827507950051374423139843818820175894563888034930201453448988170300483952331387899478762323663983545895534769406540718501220124705625127751900632849085285592365683330819220370453330482048375907502927062641108488348269570721942825821205885268474288891804719729356147697294961367603589938194812105334792239056364519351306487447414792720178996928609440262228271087104245980521610623477863821119779623003472046301200655216130538494090957604870164412794429998152330236045599465995668299158150478762344309264449648854526883942931919078108683873070400343990162889453856799043520388767058089253445828098677983201145076569156828523068659687481224003292746365529474869115977078445906484671527290257617508690524244010026233717877053024049028057316548687771177931724890497145486504318956648342204341728689205846212170902645783220303006477228632570306954746263659344609251763841625206123417016700508225547839245310834515146100390121686320780064451603777924525606015820078273932494013649461516981551926996625013375010398386288552071466839891501596161493324416877303363221730057030548598650075919871325517350815291567295267362496820751675955810548117161726060297123738809530274443223227137222886212391674466711340530616791584710920250788743266475358730816887745332493122869965065934051943731912379712108420448633987620639492829918661401563044377544730955550870762211343918878039844578703171322491812598783711315130816675019182989444618984501480037773989002627941094026357049484185799529276394116153663272255860862433486679992448949094733489573185090895082543212933607756191755690251542091048345841167979432201176711018560023955644416123935350059445342035716458190753178481722322774075610446678769845872276800046633729824354340575571253095337423231727102018679070846006801762477441397267489085115570370470756230483880734921295352052675737327268311380866951905986369016478606681170285434456785326149718564194898426423326745659753344299398374579887215150855401276696799363641118062846002966973216623696502221411366659632073379549314062834700842228717318246502803106431910283656076409131965279119728856972340653899661103698850505089125148638943765842569796621644500151138799321937055460154898993724015203176333436769480084974605002200720929460608041569496957385690490939594861096411183481602042646450334360489795955330470799583295151656631665846921789113533611350256181165010116018001133716972706173960332627102199674259322651276988343725959701780801532514318631633478802855744093353919579916571789433020759697265279050147012117003014004326649674439296842396403723640971899628542557577569871659791044948734190918140193045052781978863433267996848663830898377509763094674581245675266081618214742594250601193757700182332484288901002941529191133011084777218836390812663646096242114897651358867973708330459649433786021069289755002000473891059397505692733862299007285489572308012707245272408707602142421923364430208598331742844413354009475571447938959438739979507275847883294253153314462511033977336503748566232599501355691525549779084613817587705526531575990493445404367751855861720512590066717712669319374762492883644437237785658894884968801896850278358642759148291286119681831204923670140849687901490049125388107636360924188493373001731027924044532385131546431020755653021431555212023174769314922956485902176827211760413418645367152350763428220624029144395602028240362246703670734852661796175072231222117207281857965558728684458629259030172916092814929593475355250705552988603649278340437798302024413709939242567042749614907087607990345076222624398565843813617886470491050170072646239742342695746464847564337315134700097010891719786910395266079571527425112732511798147031539708301515687390169008956803730678783029666811473140843179557467618153042681288650290222051253934904918124147115581347271176251248567296270737312642227684553560883862816153403503783924884111255944548347665930772755754824589004463050120555463200561957411743077726886872341771064249373832167110707997230695686946322289029556875747596478048547434565735787997825670000396541391302438274205261144059633779309654738707661285906842625462382660784552992962041865861529627693905079180278841994125169754442540340545408752768239393153955440040415808704954996273848389608636504232319460496606165567452329507687806629528648407254738024457609937938836345448271552267131750725392600282602046848006004686773181277802277485319987561251787428254858751331252274611232404725118075142112198523865595909909046007956665150786709143597724397887742142476629690264787308444973890508224081693764329867289814564456386770803355047147368189940662524519266111908719991819977225786564825510099127043911164342426676362143778404714664960906995571979481120021320811450907705635959827125858110462824655492473886585562790760974357024662607736592007595371418118507168101219189013307534342400742771975489653488251051551602857887100989179353983307496487819329612933613649786279284335188326774695953952016356253254630911187606367409836462630480786956919618917634359045452320730192302301576804522160197173559525953591848883619334405347115579611292736647743284611365154733777793253737500085835130505827841059614037596205328729915462140293670219084483210875346504957941577019839576289735922838488768835571615725945550617395816738099842868288554220666484038678966993774636564515144099152479218504979399845970605766625078187918583025292370725447376075070196023690890863721495386159355949977061701427616452836900543894056374109210369084073215915071879557680581815454793776611279034783262762599504312646445702993200553459505745031664142153427711043215201728156675997411807264433692258403917038299819865956703263925378362179065852573595867798604915781538344255541462332389553083656877447182684440382970096591323441536415694937637689236434058033180484018381219154930590425050721998013961512653885007064992737893563292175241502067887385295238092941108118362547807306813484408406001392511757007308053898944581652601227457539434168768013507114080800966279516713625763759426017247767160338720058086048197726665381349631140007887336773728480022519769918480414273231962149033308653354010400238232115452856118688867201206098493831507484868062788315508844613637778156570288578873839245652490405815938264708038587749825274748342353336720591026905113335428986687715963997577649493133056675087001527812881912110814997493440235928508030773245058694520869081742364297127396076260609480649218677752826636540503061833470277807624675194348236207328899141820237189890298031651115323169658297887181398945615739468255272834524418538737575992942021635525527542752033257734076311991535032547333589622804179992004419325850267280117034651925677985273355016844546839437198696064926767505849617921280933110803263504160208517452858099395559730539927270306338040675888022936933279502784371621109715315736321468014879916382683528374550519357546315284106394387972219232273064555129337993700796297754659212995278863097119894139676153742657931498814144740288210236493464818026335754978559170894854230305835173994005088361179407952613314504271410498955376638646850550708005964782519315816704604746499645968531291169509757452264488388128570159772311559087696203711636651053036354569891421389229768926569664187486363274551547473265792361198871679755306933141294691031700217948050551140817653864848381202336623593631824598951758002424623549565395934938690103506364922360087393619519252711272065105349417877882522464629735070106685785220067746058171974446163034335821715779234925337704900057952464074922556807102122545922089322782074237082254308243495083847533485419052589941183159196324011958845730885141237925294525132558048531434527328371019880574725648941899756529271586492725290680622431090652364856067076128142522384552396470324487712547812438295051902214335243439865980737064716927712104488090237176902437046117910858109123001507049607693529593578013459404791959105438414295816213007461505160753977114637628378089390033667182940676835258992670577274374291012184379047064034097262238608948888544231836477321465047141537500945305749789542511051399724125978227147375590254825108252893354482484460612091304347594417431774391493663556506348462162976198428069136278486391618592341117268843012485745043424197696924418858933310995661940661729322114350204248352361023028067424946647958143787010404764618432521186815502769985603769153462259154016865837685861876841518798150695988644435598038277414665145774500914855095606271275110200938651423482476412878094235030314913895031251381973739207379913786472063146024579921635423062244199364662558056432053777596617636858539483284616814521684442437198491552177990636036696962520671990385970826485347156198762060181094846412871393586904045520498423797612986794094522360350295119951802644119224157476477849723053301918283077258502998658208969054532186996936801043583059947110444508130787144773829431686105824853521861341585682153938631487984376085999078335099285536219049368751649925530857711383843060243183873226546161568540505663440427015083986103294889752849280534630428464378397726679539411249714694064172036274406738189169448120159166573053195992881449990382015807708335751012935995801689388139766996977685886701613838429768795074522314868893574439012080847006553598532703617785579708602097634483547434251904062709323580118032318595804615318479764482246300761153972405188446929729751032733091329960718781394252899299679211878381620175633160223008249455937212172958710588738187843246059095966164486193645825653925759783609265611733905459447203687480064462765434075266227324910495512971010007989552672078816399636357506328646742140400550635168749287836849248923728809806372625550318889643687249451782507623791393259363096856740090389270579204928841897224485781205896738057866518000228923002281830525323354618997735875917538550252644380370665266160774757080761022092166990517934577860656786779231481189878469277727839247726703359668611868193378092524133576835973879544365337194229246915159908746370180525948305885286665510135313557421780076920552622033213591096741934163166035008869563639015432203864197468122928483801517320344244384555202148508063893002135836127685654266075096005645316965462989842073741476634985966507904135990385682350108943177995958043397956601558479858634212331297882356448335789972852468419954526614391176348354583610091279607119182291488793723424589619865312563026452998814017604532351603865780709599175970043461770190685094512795610296257268632749083348318233477681327060526464431129546376501295627497937050284637562774523504530072713555091154075964428737200512612868324159236655756689021114367393541205387865749492144136898923102221151109743204965873612165239841200428661794157885527279936575570909403846908032609479074776259335750960273260033525905122288166882299986564034536457788342385336932139074414043608810907793322999230318705693539471517887408292489169936784102102964141137840203306857502083285369833759221946528404060039929168696858642333036677171485104994068235183295929392085770837152449942169690175035798265214321168605229580540876258347317417069912906203210060745972268151020467040690305179064986539282735708708180323847456313416443737290727801065180276462830090324365157357648247762936530872088465532773110755281213494965961406636222328621386377540763878486241946180434986582564108387531903590631687933625600468045688483016863212243154403077233803210467066145944181556066460895020882950490160864107870060217145206356673532569092992685907819890056795478799376472169250005864336517653410635705950571127384153403740536308132226594025882360920649578505542274005035278112663960115793161975054025484745999022158902734197645435579845192925369106968542547252668562746417010758728499606537262630835438355991836174653310572798550640627350969646752962463608680506178954556873628744489557703568885727978808483151785923640437950015538555400632473084444963547756963179624646178302157199232289820968518060328757958830173244708798065866364994422127301549373378334395045279597300879245232643029390765751514178129076119888059864453477377454260150860318027972407279295050948863495264345407489443142255203370321799326051034057467336540630864440584024034426332806445170758928741806007089549139807921238038274780931740531458665683706344433286511919017930669645252912427826071787806256340324186756571804488259401506056671598323999211334823027804276722733425879181347544214970829713591814969057236073070230842825421064572162220005381455155507664643900027358276194258670648741229304881873782880392217241786821464479740224566091939756324176688986943378891060197782902109702989825679360205925553050420975111900038494081116522413826506778578687652489363733867719121975134759187899325485897243594699708562875213780001065369747629997549802771575668843900194719839065552966938615381018212051789666303328206357184353209208806682766609737408649255260044183178098837118291082601275471073421004152754108796162285557990532494092620648704331126198424116183110057404307455164471525980031310728926140458886651069842372967225857559925350351984459779978775858630767550916460938813549911841762594782417695060560271335771715927890156143908159925984343688259928292970371110872623636075343633411138945827986403732871763539342330666696184376353586339700879094424589317757969095111454783746737737800609759398790375850633612769300976859031303715558773059087773514476556821255527143134246553316376359812958037326881003774677928065992412791641001228277782048473596204112214455838846697771726802043738059192438912973027809955684357332785103609995222170745840867966793039773111556732112720013905341361205925126948414224402079163398801192258068559231840012492726694737838003496952909090594082275793474807907035439334807151869998102863769721647923756678217210882682657590273681643815456670389398746775969520173685417339924263655543112069343376718453330605465031542861862387796123332547623710925916399851744328281685868666448642874847109137539885318409809493209911400582805107992507036717431605911337097409230699013761790980657674325131393190718200307561862488285305900245803018191687391756546620150883393425648638863890078857310203720723325656002765900133005636220291932891138676290357066966734461360368062797224445179800634456620011712275457572240285051125193559998496346376497814974206612299950131974101026322987949699319959350003522526701542515501527987555586034850586983531519933851407149337857724208819393946849698155297057683146515775691701251674000960374337974150536073264205900975038941328082517556333364294876464520118108293017544097222614983426167679634340486095528538613257798193317047249431911874754530812370509022339969557198959699291031788560265116126970154843040077308335515781780796413235263036950025662036062508013697073656916629378600675025964883460512424122659437564930266803022381194655831768170514642087792631166978554170524446080814572306326755263469663901843256869840034965033917487715182455566865975010105299436879514218511382323941919225077483581239546549874555409617115716839297206188406587715382564953454577725166783745212858909917634879569299471119199142385816775442789267126625104291497586964512277960346077105246864878025211039065565585835389794971141200036373542508979404423893961812994059103607963248370398210393439433957031148898313603078973531102711019228919478099537446986291499022458403412725481560232681328971560344793064561427093281477077362266205276341495866722587292052382432175132457186324394926824614697693038072902694471867063311330053874394815597896762090666029104867546314970625881585560425195542350427362574186405989876737514261096735675828799261591390269420407362347774608097267573713910960135338677968378978154107394651456329327417967080209519003825687137569269516133968875062446655455832139294716580223318385620158201565806373437644454244310796383527509356686949030807356076426065222834279841313039303341606404196405721632499838063540994617913257290045998608047138264114074891281493333400006679314955217805533236730688993895030895758334748480130062976521618910596868624300808662233378619556494678053115537562556803090846458165734698174229321370347727741230982233375605647430712180907122906934912941377115078933927725773357948423213113728824230454914328161053301204233219365710028673961278396964325430088283811386948924175647690829760938779673297774972375115056253688033460042819368126471085964220350843670535438087022258926899666591755328925774206636198719102969421246321101979717170348454312953406537023948646402903360296434502242535347132597574537369978604532457787803001948248902102290930009744108443981286379377515185937469458917873051254319266935669674714077024467777577862743234624102344039724447892572397884256180659114609391564959713162121266017060539398652664361689430572405351238378982239306648469996498303018118207679273129573311599932233440458221669807096269066618499219621806135606756175158866745575890554190302351886617216832190955342218930532386372746149350901044130703505604818960481127767709187320596966681326969612664512151124628976873661148924535929000238025207214754150553515031686316458057222139965913736205633037509061479659481264577535331633224329042205965248291159465895050317352135169135192096725699026534849300076580406889947061527734956870102203421198494125870857319746205821110323817380693808008023857892697649619681804895514861661720068860870579575379462113057284641262639136370571260798513431834148572662381338730731447541510007057699703272467302698834360717237235846960525023813913671073607609837635443777606117553509659125058107642811454271631501286283082409176458930483040863789529970120414326554081196282564124409922351652275692390823162253296464447729781030329737787107453242545484238160483070231563795598686993614545375589381472684495931438313669780196623609779326060442413957239305539446148501401573452490066037538534197986630561939511086423910577166381559858293488671877887626704445181589447804668800409817347387917678227344064360099707745572845709168397138769890900602361592245035168648789737802118625934165148813184382691796237033186895742454672414077673208587269964680234553992396166697853987809643464649313176456859210147818568456295325421222328779325910305731157135731741854455732133212771233693103388949269401242606969967803144121821406159540723471280404706848792853714570583616670844088207194622418075321355758447766029743302007187646310682378723728813011180688786098465921096901158529916044534112789289939981670041338885461386232223216511329402910152672125091882169398581219812992351826741113230253105123088382352479553890499309465705303945286193879020384532568258383340770876953104562214571341516640172050587086156827302156527359333572335406101018237183154278987530993905461786655496225231883097036514672492070019970530177199676179058638373856613307753698813381068698858507324928064817242973159137173810846312388796931514758172093516910537703961289446230359311826846413008495057302189690030515170869151427017197146645102509005496785269585283464601162446227453712185261088597549570238833501284902741832954998924692282432845883488649261849639323523692827339772664942117384258857518519982272185202983768292485355694806333288304050451559209949647267110540232177654842454596476543609414278951353453618076166721625063188315231728697311110646337105058064513393976913784662885383020135182088883547862717718908036551227623072537036106714452524512611427566239008828200457379687527589961513287175876319958919480730784020704085110520943441659874502569689925522125739382294036296075970037649837498786073618408119609548863032731748642786590379485155444893176903197204440826421025165761071568505828452931406459794585942805352090726980982501804667910161486185881132052280682428965686287280206709579419833261461074313251746030258718972186857492007061636166850886909911491062645593712448529293309172168629596689753789901355090035794746762860466848551992220706434126589566561923429307102305086439094778712087709661214752329144380918370396876358541278435180035597422377217525723943321969801296578505986700198234967080699321708363799484257815943941292523784397000347581159435360861484034183727180930339941614617587290576501441931376235234360505159695127115045808072397531371923577964506668298184232133569457812887971875655875783747396441060999195266869940484094231463263589329283444468558994036595266446819261407496971214698566364863498089373678426112112994616220945054215110811310142096943182308988458487484001860307573449249728837849046351602755136025903513764538293691452760367281654705530545658364699821748246797078714399883875429079750239519378457831737472250449891697087879143867265688972726740659975983134294511378078653326234724775312399576434459896867511846908554903536736984388189116341895993635807043335847718871398123505043014244179524467238600513357242984378774913397630996994243222529670151097111525549432645032372708584643436976002374101567297271567287839018591572438527131715524362266601696837468062657655593346325531661390068564998240886588563120175478978965868308731733190112139633120520720613915651709606157174944721051875721611459823176205852676767631880069860302723848539533472697715513268322413900548983588585411458834762641580263723867776849951528457445243263914481614063556689935827182380694740867532456093962721403784781125919735126833384444517268818679042672988256030942175663424210110187245009937128573070459333387032497190702118887163203045624436755750954130586978737421837590163583590764872240939712519531628266973432645421127741413062941933299345814321954688770332179645859170154306804857992753126415643453346548570512189060674933452390557496620500713030471515928028004638684610873375814026760408469804233227049303195788720841613231820186294315015945197313253350279222801315938098165992283877339354016874492854840025268649122139934084955892986138341257348651646590838112046482761766998025782446814495962586949698228361390863580471633396905980375247019340847770617217066726732847036372028688692555339265190829074969767878186264705246299037666994380752055834490350973017627140090318817187747944528989685244374790999232216395972382209351613562249677877453640678566802960789782919339681390496814848551091948107985722515482316024203863003181576033528406832064436283668814716292108798871539611937684499865298430360701201258481712136025836794549844171610669583825514250518547201808289048466600997734047488924898674855855161356760266995419677168092503468871206561495568353108113357508804897433132951608688132772172906042426254506837325468915556351084337598169674979178716848982015460182824101533967530188680309347063090991968425016376735206526167269241711309259813898600457644839741373237968464948482919921963543486094157211596044442004058661689599635838110493716407461800159954848661831859713023626801927026153349087234663297720267283091707415774657701570622918758250116990712336562161645249553444658757924000618571462384627414862656163308671337858029684542670357365946168161935703529395252361574311797627059582635546219104295096902211405810334338015737468503485431305625350814505845692196243448968812298660109780331590084497459833964187160427259880041735716738818705848987768571702132439280595358180080569131394016634300539008321202669256060997590807796719342104105086472824415582513566390165089909388777504340581254864841455036838507873259822750992838529695800474701047993554921828552046975086854336505879002714489210889502426129056550927325820867346240516490716177842433436861629087640222528790976438770120823193832227179146638969877089287582978306543781313009380180288809184555493519840897727812073022537490508072890836969344199607689470283064979459414748966641001525348208465073213868307519824093356913106578945426676669312489962074514675095702751479538065311247431512812201560961666460580321811384799251355785686365167907193677952997148910308634691211911541136756117425531618131990738760384091254137245123338714576529823673218900134359577544947167963407787591657705192489437100281513405438551761645033474174923699251785671481491464986012517232331718907937614806971374682012258012287367648088183480302299179044246264033397388798549984720417189173455633083016128105711050061803748117910300315121570712793863662404416105168124488679836069244734563139865779334510716490319471813644873908984214726686220186804001085272777833078262181501167278555170467650262453395501667988480779396150593561404897248108352261085720173027187831670116219772243040919422704499575340793691645875122748381063981034197392639653837471261728967723247161379560632357867229836657093609296715466570412103609145805275581318868687688712387091463019873981614697835716398324207916136148213499178170660422039543437251985560065998188755040920407706547907400749375233757722884728395798382793034446984229258868043717219940262593222859290338405902442324845384994976823087307418237439387194514814502175229220914017155408054548506817584384962725507197966918191426754762671011862251743400944480589588583850209454524641969509994803227667867338980877990759180739649672417236125006379328913111160011902187001109120341222737353647101746544297866242623958570882315413648015762734442371966652606558879115378945568407806803176170366036276912038158692031708461714959566313644570075922989707405284430431619764638484267483126444939124683305024802606005769301436161194900834241902109332287868343562165924296477251790533180551659412654360090387176478425730752340737884402187872562356369685077138374056184283461567983245976264034087729461904299237193390139225004211847397224719998958869836435996682742392503572444387906204152003635594329084610199435706339508735071686230014428503629451545760813437628404988746498008073427365574694168820682177828098335977315213091668339254638882801910632359979788010298352541705127448136055107823507421181030885192115812291089743136308989871892323176519171809628789619110417685179591233056140740670776573529487717717504398949835354485327648089206490603637237502670038644725319654108241169109916256827718399052423365789318793402331348370263129359206447058422303296591783284972513901699788806508780137511370301801571424327838375131404321619357773174851203572127882519923644373731697256584454518895043032411704442314538859722002769180304915244266083954768472547656373615099255070166205905109205972401430212710373473465142654934126132368664199314886749733515783144108542805081937047761479791770640765902657252858756149757070315601449691193321527612296114696986886833926141406849269101319194931767988767323184548668100764441161884281118277584555826909365545707043518432005847940954399243569947824001260052269557479452101367352451120442179947750094731929541561997425412916319180509768984455157630224313108206848757931815919191854366447171379452152657695099160541837881424177597841222204283574483445799822009411658111897550927567020186795687559885119548477372840754061230383734118078130646385239610115253849960942048143649190852382754231439019847704847401772661820995487005550875349904673468294579134629753369329088958006777492776708020634231532725268257662392153906562607504692424656999887423710974339081038890064633179277377829573041937685968050902786981816293866866462724382901635934415274436944960274992454340535390055398253555058612074769134087706676027719448238252962751400465439139857418593320277809499616658545911086960120496577854497686197179089615544887845740503420573017804656634529441908411804211007646029754480588328649726907710605464105799055125866273172558503087593818966746057478062442358161443332683633443470900338655158652995582775089226932377513081446460780690662893018037543259417976821241825757439499302873168577201803995759211627758880221700319684658443429549541338025073820596676683013952976323065526454233426252473282382257544308969346887747099949477511207857110881781567416106899130849197024777107844871406339814466725740488893458276248529026201999051694005728648248444026365437446433832228042570444617068184966176027987932203749237480246625768058503579392533642518468903893551563071089970244781729104558892910914479737111630395902521335385033516901530287994483241278225249595982831962191917205672262808819382799691060995505119331312843685414892477812331951142568344311386576798342793218080185193870537970085320704353848597133370915431435150874332920756369039315352828844454343934870222095041443474476876434563567728938942792968263429363452935290047653328716771194605621737343410070743084309376888840224062275542369463197956556376348453328329153968603289849380700030649890125677895654298706936057237359646757303261945286759522626341748734610486419337945078078968110146873539831228838026627287124905661152013099902300590681318584795127499511926316830938180083710286131226935249647832182268430993706768342766946611423441450366147034133873810510826938544702202322536546297288978740890293669401168717642725955224656014823008044965578288801855911095742627285851836917452018653583677735741645582787478821530218978330003906074548316800269067092875717190583243417135204296707010142480598453658610157296240616427119108473663865116987869616267997385800420331427755491452473897881647706324999704328341127373504032536254034473909802656250965413264979820848894070762738989458178006459924828616054285665718975176297744764266769459280692567936996590875311109493218505379637132674001539768699452855980990181041335757072037920705691009257510826421458197163183251524935820891930083969770122677475388812865477717220731430889597595195586510729544431179702326421592200937105241510735238180105525116150569199096455650808227786404349370275826169589129853261073766627938602385661698783214288490852067681124756691787718590179091570047265494240272621141406148877180928085179344225639270717355381155077154102822650666819999976834061606817967495020740610465615588378495346486980827674160678287059906760750563295726882107299758202419393314079822771026781782837905122520168234442246682768681285625584796735078616041147605815519344002332975269946634128089745705004735555437049396251999031894316009441764758109054865201447690589279236565003932473936558046638766540718052109126805422348715304568222906633278964443201966354922997518790365935444266499901506058482606410645415855650645077171566691262463247065887970038862436016542302182032336699137887646621795592272526365666782396283915004535560604793412847961740065225939242928145579500298918814754142911810304764700963555521241358872954924841566753318291660380039993277292652438812707651742287266356098799144741392640244679062746877894081220982581256879452910016525994846521529784935321387811102914268495809537264256838093444804322628471385577179054408839580185063022736223749985806462932519432540066558893236085878517027841309613007064545743215369079776007525376732497429272932596314429929810496265359999140621513567638947079970001196579131017571419278262195469589098146789030514363672742837657076379848409240879375000552798163010086278094506342042741336288282139081678019081641774261025981358416450368529652656743427835842016153944182165865840770791568657080474834412779311499794438495582171473601901409620839206306477883374054486729621263817543437764393044708671539772714997361255322721220071844870217898056907698358174361750961745476523872490840156787497394981294782473744007227829023949376040994284030836910713285385990289788845958900033689881657759077971894024841932466697048845895346246789073510339348133390626829527545716731934406257167956010644425452132473701248608833394846293580916899858234796397982969806636766685665267474014397727249888786774595145639789815009974511320338809517437392101028972170281657517693723972958447211780704888209768194472434227395193480064769003358201360167474996776989899874458550355861741373722982565669893829350032849901445531979276364482563811104701159221931323953629305341878163376668057792891444309872704817567186447012535141484982732250631051246845950324025491218377896127673168383173641515176744590983124529013912173343193030258253821790851783860531461251341310306093112307305846573689163196924191359753139317201086452445861174849075749999378339724154641403890920445024978142147031681581238531970000630575533112952124770793247811890396182310176394059621105757956472930185329081047028867836170496291968690031457095726190710480704697222881865407674270521461653067294600823568567602888663296123021160003123756284429331137589858913812312798355176581091010745198520289683377728901110715898522220320332801139575906885366645425305824386436986038087173784742858440525749558269017919066294376390484517097180224885368627129524564410385198912077761252578753316210616035143349078728286059968662849985065845865003793073929067169991642605748080711239683185558298556090461093349272773574172312610651998245734266962440423805875193212832572687342735479921083282821650597898306774937117451077248558299032374371910989147251946256188193666187421471457298128648090895431497892702529180715262814978799626915785815075799394019157495585862200455188943608295655997692294413060194565980200201653325566917229992616909465482599098014550596366405357798275400109490756023224351586934411979218527846332379435218385066477655120714364569884765076698022812736744892879772154523757630770662896428785737136728212285182178473802315782187295968421387867047160653527155947159402009632775478948090071496132298190817769860852552290397259059311616685122596637842500532332781123215666394575368407849852575792200372849607762732779884356540388819060871652651441542177423805031760458598805918200149109488443692132100483519659567205756896863600857017586917867720833822482805345991097010366289720316831014144505910641373587713583893277834440564822154161642244703282924937093400395414443042368918913905430979348504989841358058995768147206402540837148659243107297471618452132440339865980529239765722660720052450499531565491377229865441546662607181129106418524852502422544446113680329453255594234722314986440506289957085782874716964627918048431828273266352772111627933664836886032921246684151826633931047016023126683696170051671848906058880504346773041092559739869424397366357314089060164138647070054878229176988212312511722835427776256036586188255483524043153141050135697743828218718763811064131329864531747941976203861725965684155287049250979700709513886012751304628276068063875522228804297850153980491135593705271274431688506166387435524656163504533216044228838443924681106259040145491885772109852859898056043414488818294806204229687805950914987367146489021117814238727444896479488808960422765692965188541656885068275459237516743861029933227475406678131641024604832244693408287903294578840250901353619300605261744424684297157205899670724617496363449727483466125818533124588387873083610427658508117690264907264844096117788236883935568755596308018904140421171415704466434546072122711196639897195706705793909488147748300547184231345592321846159001650813250622611094232902690993851487606948516225968120731034017055240158900427077364132602185357991706801934034560792888181052394825887289816865553440498059919075127358569555926181992417200959046791119033583895704584177656877007203450538090593975436347663320026622261611011845847899285955875235901973542757640966234965702964426060898059143864919210252313579660202650568183663250186749984522216956296947122413995942898078884369311441329237608331633008772304655787942578015630853008547307912108121254875616655728214784139802325532191532155002790119931911803063121624618763703559965336597823251314488770112457971251751485436666333665746884911876430023026158433989123015479342724634338611131408957307345335845370827439873014295197851971468377374720829686775380383567186377624805888956329990851983151181130834179651404978005543137136373342718884600676351956335727053953924891650084672509000769057313850736124358246154024141802655833234466536848187968731450809134588274934065253059958631941524538359189958562689249456257861488522842153324454190709847352926760697023651395008819848377950011518786217343169575895672350375077228199935600855690683060436694816363967994838820724743832579232369344333978866576319583179419131357046998306996046726589018911383375711019474440037963608748941453021214255433011776821523540504542836566799488142356552575785603660146340254787085995529962508393260231621413781305148046074783657417132249370050559618915828243323435452916508946939103450496085691236741491972858530483186087076873931880950140688425822926844406040184002111644351948043163014480843548186643057408532545985516609621899642011414749008666177821119309693976623030481551426817401577639758535767851765612615943012532732648038366639235404461203571802317908747621769087042426487794779061883489313729679891751912129752073380547821258639681617996979700209344517702745780791612076891290056999132531003992239453830113737883939362621565344213475467784507411539182638907636294812795864642735739549134181171801670841610910132089845641108553478022015055044444280593778817767894619930173552897701130837738571239239101230390787126110650765120179028936051169976974668556451249226776505312790764761520280787655788524653515868843471771532171867759194970518528761190967396497244303702306006187439567737161840004504461731989582657416093853050661414890280846907878412462968078912486399145080263928585785858741936020076052571047552545247464187793478395983528225296580584940083996344071863703691045999172226456760569473190091341819843357163157301275866753792837426637821769390162664663120169483622422114490881545147612739092014267023561584139088115500912609909920106942772475679926842882900456056170125213496847231012653508206852092722181209393462352861629284990219065126465491707437585744868321700528419387154272944883793786770081104367956518733878428423032885338804264430693967931216388737490973187852022866017255735501582029556361725785991627870762247033426943914531389907591625771903061209433933197427787307383009001498681298466331970753156500857636743040435004863773365391841860478338680886309706956556895066661753456046086268120137403119637528823915582284714264152831193889094350542494706308888835493534508609315954519648010280561720594724345727596747645409051689705340099478405205871911159414384885429545923293106392121209569007713611519653677246723024797156457728156009267035044041947024219261730821716401783180533175289469587462615482604569323027343858647168040726883949087313584831619034610348328325997782853426009731163573042724127393075338238441572897616736137470367326564276381896620273413814315339511407845085125729770949516874098219276154909858268511141092189348365023257007780803632818605935908357382297014782130718464261417144669425215631279745315870022368104307301801685040416410661926818520929195910255006360517608488150975831917926129811187698323716643817461652793423624754657454362286410812287484622725375532143040721283929281367007251794234143341354514308163357704012012399780767008519720084990335615518610392999003796510845040079993332709799262360963917601865073963788897325456661998234368451258025016239389552915547604971302137538412709799106253302169850309393769873347216874537008843064414484641786248467270582248335674044887793590403618409603578426033474156636446945408786324358059213945443882657889227617164531623942262994930740080225478248934427106848624183811186057209218377447993567144831081690590491604078379560656116579282764221305135334644184715839240067301096767012268208501935766848993664669456109164768924525415851592320080782930408115098363800188916270604788621199907437614948308953317893801718170555221585711555284705201436243888529667555596710222544915557812513998536177470777974072732519013369699769455792818497733788014281395216004049146375921564108945457922159072636158867973142007887374757303410983801043621483871687414206531578610261996389914187300913122921598277737128783082213678217700310076135842119298627101345924708496457631081758577690366279645181042655299612642858117705091514156067530663199799225015900883770354740781226747362550089673818691684486031428297956283592232618675933182005860204676818827882552222350523886898279107055527640884250135825152459804172130181176508793499706022578223347236863049434815517806327022053141284677963312018338614980616887412725256363627998139199115795655645985021400949669254020841164284542670124040995622977672745538825386385173482610428906582405401274084081557903912888531979797387140715327986979345323312002635342164724847525582074743938233284581546910885141646404804246231360513807604000595450093585045115231049708139749613348709513287850870835269823086805810092240257202697261631197041117715966694207408293856960456257070073081702063533446870456440589647610182865363507760495016712159654360641441382901942848616360380645036061174728008379627839050434982059091242618843535212510257727784293446080946319464803960942084262276757591094448523507506657791000089324865018645553675729186381692052959653947544134482558166519554310503161300336793782034274267601471226235891845869509970307613612943796174612305581753631793868836519739435429076113129965905338555841890569469477760198602126591462807904311276088359277602521823529484225074699945340777862876525807194250575108804051896979361498013908300535670940592932044404325490842091593832447060597346052558753231407365725496412544609536979197424056307434615984575172168651568967558043195265005488208901882634981155184638745900961447456555186469179256546718714169764700498451455713728668853591610712264055515790987598425028960931158709799873810072626641536721023752436662433494319037872182093935722682603282681325212020245313605710615244416878105941649885858243928120662411755283931582084859995138663139126863750663791611606588246933257161572672552177155444783123304679067372186663307715781317948374574771874602386381814424199542800732362949468149222607127292070808988257444639392747027827581574162511287084977503058602878854126481564942274510445105418683865103042991290828375913291393546163831111149589096389460127754173815513581361976371424414987421599472556742225682757423296965633451890842132588566034809004020939608116616073345553965228219161246999386072375607091484550919535557988123145317286193288312211173664153453354430938747624237566478871099555206010594540242256961915818869636638030524611042351317646551548888708190577625685816489751574469058170291741588296180768484472114448845855017037456376143517527104258019329701852051260063675077470841209061381451576634397834095769987889751993744984909121051120247158490772179303918353812842917824178783649155141238581113588381900108201049148765985964744879274390117298974804866870580680929674811447961028146758821575296281431960871735915944818164962837123569865490101916151430670827190054684635830342289049991691960603049482128901557496805925487658540210255649251566236082527263421442798778769585569182781368369262652459607763178083695303127062997339407391403190670122215497278035913004225215125202365733651928320109133041844257502027937309308985630724253122537022972394557623806687414046924900826579974374476211195347635828028681403384332266088225533279999318197737820274574722281345336311426092803557376603098236302069114275421567502054869237446174485097134929190201964887690993031789071792283229227418505172969443233166553661568390581715523990915722188546302467663298711365729650082234251177289292815772381470914537300725762938911070031608823501131360142817477890311135578671133635687394777503840721573837626899513121842152897346818241939525963299657490155033844184381679487728347522509421274539678660757659269484900592873682295757970827166238590041080623029011242895287242813337367452125258255129081996373258250021383469044445645096200015540704097342371515628760525839849564018007544606122508064624658726362481503583401684276842918737916165980604326375157580708313008617064003525519152819146630503188217326287781135185879373499347067300916263625879094466116440036724771266678454248998477299810182752525942353493389844756519756975588968973197277877293136142584659870391252294968291322073731362240007673857505526082442401178215940061441978200094255996879891440055524897161363590887865373545453455076195875621567015167924894088270080944952501630905912722739842471864165766429282854204584415034113885790417843756444524169625088539118862580051902836886317999407011948477029312384453675784266644980458491483489460055027330367043383413457727863696413175370821357646645673201384804063993040168176581800413310518736675382819814876799579541811478665920899627013779381917375037503927830055552323075127131952278900497426607431096449119266522324651732504862695951522031817159830093580001298226989307754089559063168169282526610725106641867518529106310656264253433300671801131089417884550902529987528580321744632885294412640905803374863264460236882417941915905111106326898274680162138847523625626835598122149597778324773180582457374066294840139018361002725412006882856018869499743529716412920038285795343142180750660367649158856562001836263192067402248931207295696185462997798679197532294145963260269119765694826177965245553890450717213451326592423954787501638070368494293179479128373739522927390640628734040364654835579360753615281672544033495997658851962248724246452365393255028162960518288457375986525012090596178793023393795759705223796009769991941546858303462169957802894274313654431029182494110019731906518257941859585478765583773420396147333695718350131840750147999679508503454759782754214104108541370146751403182804839085447996098177668830728132825734572297247314852462923204507692462304131040638607923720204881922861393182416435130109385501404857235957151263555267425861668585222367226929355720884656176191575594764026992997893654452902856312522308578068198914503170200652914478213495168930363404784170060413053812818850616914861267651855985957530681538466981437028096533314726525755410515514818460033667961533375405812567516830961535065724069379684204211663856131446283485067092484274568391269992213759010382467316487333620496741177575975072389707699373487670081422269161715454117488618158169127009223880468994732385920574950462146079767315467277358977259649221346797092502887188820042132954797151259184386360602416560249530208018689300959564969501063332328305001023597546619957955681638742356749952354478397928564532794443982504697913171852299152605157665686313145484007259279020022432483139496646399628240573103287550129806117591090988160851267207295500803353710873432500831393515103959408132916346493628757443682247879902081191707944869951603771633651855845664391597027631513972748425727329095113780468912142497931806685801559403933038600179415310261152021493109660622525953356144181007546918479033695246770327179629053732425608501264301806058384394051957465228302355118940312225587651749854240343052566020676350182883035736279938827863150576270940740916499578668077964476151579031197185033736968953074870409979162381409068461625553263799002947355881964534916147915869363236321598856763068380400495568397079396522360132915027481440829761003829695569600434048102977996885284612570668553968316355808404520370043156809079557099740376260760472475907654203945734398760069270570271540787420555267550786059207976953077733001013056682404118934211145441022168431251841913165226148198447891776723643784781920003653899898651889747517934334073595047378626565179030777034801496710835651276498465884536489028045937555161372989513264064012510337117329698355402974417338632189264765474994773482818157333966560583219330906718420200342518821772394048086772110709814491174183328011340340720771006385385869568959092970895941466915452867329382489889267696138690964814963813012566124987407472914005699636418251031624202436040001791232919322751829148593540479918269463540382763499952449814034834083412824716506212802583513898173602574284405338429252640469274161119435608899761532704810108440821802487603899897996104776336464952616571745238636802771826365718053002009081892281637546961876492303576392925685856004417147248850472940173673165041266138231274531996804690914257736714546482706796766634745459190255675338146263895152817458832492723603914427015252285449491133220696876781132768727010481121526674779427623183988725435249406595775636891473253577533170206862575448417472829852577059145491629750243071456664426632726887025091574330115918394072555051933238863437985374214506363319466732032204484343374273991392018515033646468240877340203246520795926858437698634301593087849655412963696411439024592374696366806089895047496081620404538553661894960252021021499803091876271349786970391155522878666445085872813134836542729298970335374126319519065706671820710420562077303819957908646516329474816050778078606616156365515472574711089777285446655444536032660158254402827791968856989976095175479650842581954298953385285436536269026809144096422942630633392215075580453098896672259865877068956198837876279909463884385414457197665836299700888384447889269172710029763174473729321485471262589080124591989093757368920400221094720260802791427156463768561699438290618858952730039881231267255002614565002489730044818702520069577950060621336831415279983368805032253335348446068559717049244193446396336469804569608735484672448781994652943171448664469205272105794015170561849420671220300293638960740587055279590392091242325269585370325977765207331987797969267685755955099731136059402274185298350224718662944068393857379048130304822174712327184529503801143295248636309449916743689401034963758379233212155556196996076103063765905475984138302498730220912673036686160983110792736600884403983619040313379929815354907020966085181215135259340639894784590978824340065827818634397241000726875384258400543006718566330713907113251284350181864870769394006748240952479468652134821372154571582409406914991052461187643205457171117029780755810615313813376690769997956395815609129392792617841382244892562264053412859820881107852943674428770019136772724724580864513939667139684313540966033270169120633704359170281658712146878322876902690269594206085976966493854362961657251507746565479255966211240638817187542147808794374598060573353105292942798009695926811165264061310876261721910180994719892117970374951102409384065155822515193366897305338741839289573148967576407536911983676991437087837619087694659598414852222015107460908671322547008105116896365311138800279192911901749700074796631374629554987883083046881261468595288713013027191867605860069946650826922666053711663583234419661913816929731066735979989061498939223919826699109193763294913881148204007230370887835480418837825316291538253981252801107161210604850133500190741890274298853397184799654289821753590239251995347370552327322200111789693382780101807561813570599794105613119880168274864356830065912394167760278105488971156232579482518157782594226257352900399354870091094329114220740346561628734664997829959363972599779735305843699007099262071314431378506448358873117836329501545001344632478814770117036251400696014261492222636530272551350341228776137469438496574404678586291195556261874766278478741698387664642214807931797372971466414470821173538061275758849128207529746509793813170866441638163676969543461752416785575503904978153102910971644680263536748744001199476763501426292352940679286311836565544412989850095470135812482110212379148987382741613094310980922515071149735191508585531075021884915088209286210110097697834193638662619766974027892883606360144758416517702487750956527146182547067270531493899869707987206279819297316893373478847863378853227284615423625257740978837973691548316907288567442886872895713340359691835172936638439630547770830156708251299326015855444818907315627040005932131716267327912981167481310918481284736735534332566577404417157226725296093444785759065915511656399778235871555127668096576396249121654198975384729928651672073015375943723306660253726531925769459980090004648031741463970662339241103132983436258288975483731633659128129658554546275387898551011940817354742295713453000212944536782739723650570154187055102269771695739050825076419592048352591041164061315820580278730883511094851588904296645969964804069809796967985380298006620992353030062078575665867626091216445582527501906780000181059907958911586875580522902585553631296488760917376496189654365179746188852243326004453440441575020310516334179885498653676309282886596239627499487044810976251988056768676385938267246965790407242793462048635825099937241909062632993510578423256268816540905874063915208136021170320321165657819177516337839256798168010597676652106386541397361830690873553824429612561160561281076086274910493998603183222487350746913831394583304325317052424271710862958845376136607346912485856136761919989681418210797484728956187786791720933669879447190121907671172087842821849683241391010229459096026981047647857503166579202212742566597634476004081344545276300854792812709736100556592331992884895431529965513340062762460151719723970478020000345085976156804983957039317172923936206087060252682391995679305471380464679866202609171028018213686453269255725862562442649173566771951278606503049128264214119682474526098417042212732586026705327313075209839425991841814160565184860003550032823080958157026282807805953980103632783755885283001577496477018633936395904018896751083983894812297394216159288638028601366450227562426266068992841918936714032777990365892659864651756602372574836216577761014441078322760251536664022967886812500259337534538901474543731825805003685938372431969652169239357065470798456079146819373446340048289854339673899499307467001567597863262481680347280729360554971204989518119765741806818833925075105272850052373388787498276778179477964192639352474306663503265995929321077670806902802092560104283589104088086579287875395974942596029039701256093838640030587954472764240356900212090644629506428200850740397779241851327041493141546211926296088986968444709126553391439175669972517524348091716821587586409110594328943135749438086509090342676858008125152539579779030386807664907244687707243412905820948582887701572220521918191167351069892036576605363370764258064812624735986548231695947903636452873643535079180431849589800171710228874016706942477742504366758230378362926500165229540844752520350852703184060602674261964670090903296247240519705627725805595487077184807040060279789017698871771006366942005764412604162449757282964699425245037660280691147856984873597230495152476489859979569828376215266895426412789241804699200514442679029991701652344514582314156332427465937028485803741851985566744938658953857681703942094589857784594500218192582150631707534093424833970635234566402028937829218136662298090093922915386457589267028613939824742932551915720178440637015860245464518559451738731088725705232523944100685355433840724301770567279877087382884003549250798744472055601737817362881769317717893133327731906361282622062267485400890169989702453449336846646206700400404449895725259089850338510013600209244969455976847999842955244639023377199352686265987749208146476553051854916401097411184535252163135676240961763395741702874205412573659802075532644819337305807317929693851026515712336604364529393154301415900035509527412167218843696678715618142809810802685716569267040025614555499837360828335222355153427390744054646167276382948895941546062357416806843733348813687591614169057899196547765179771681415862563523954865824174847812346281424706012914028568582059646255112726621862091778473073397608617941895926404043270155727904403448364184985022799899586378301803256232777847031331536759729797570262128088101628367720685971845450562048931185255113815871526595962111407753940877817942645872082284338510371446678058842860233275003873948559533270543760551325259904908789574772371622212557235273645242403533370447148192172684528787722371743457062584988369992326765912444665623650986854207529747287699548171162217189510898393339465396886224783770254952980665147181113488702291523301809158444112531755256672091518335025021281914258889489757001390068593961220856357369852649649598816609100909320750505989898520059817285000863877434422134021619400345031267633992069282434986042171252474070608313354798705240346616112379381769948617113945667264213585961096782919558403215104610115017754274744485298337467797567488743051636725368600663659815092942744093137154926443187917633599806841472489927290098959332656633813974904302583888392581692690978294353950793533327766247140180410062312929251561189706651467760511061476826801855234528503033964021262659226126321713899437406774302306363333421999609867422346329891996077193017921683383078134728287877256262127338038104798757464468186711909850403420561307985057799850055703589986003672962217541753898118460573804235662762658129620590193677322943381089608679782340062473344916341342930292549411984639907501045671235013263311897718192097713600061029319068688148791684887156820857155102840992132705432282480417309656365670146979299450235419759408847764762229210265447770427223122809680037249589325368447567671544888657206240062838014087597645767049848779019047685906902432231583521281007775802817781651245392189411458217168558798015378725780586143936311270157732929099377466257147271836763078534744581750084102219901063919464797757296783316095990038410717795060201091283682151629505853597449306085518661097338879664336658982816976672823965016601778520134644490884684148395830098952829994895993004022607387228725890418672802320243428761808519105943846796561032792114884423018830115812173514452389268834363333896557990523231610351198404560323536955147404719623381839652226700495468642351169791900907769448908150382922882101958135716725845707972113790941524262063717909596687919824088453921763289040953524891506402554508715024345848358035026199066121170757343630649824158380605662632109662944497722937722991356771022779986453149028862868910624955385003430273437956127236771897171693370421330623334693503304277370790477069114639287956046351429427494383766960044417149071138303336562377005823714233151256844775746566595094654761377702043067813751692744335923981626332752639684835290960879353677457693041252091304908884372971193807919404102343131015824493298885936340843455773854368850009066503387518039801612685444222870528483273388499891107017395161176969699345025132614883975343641138336151243159521992086828557719834831823552202576167981705268336411336381856704793364289803697002801839284429503344829579484176585254791684663625108718708210708805578409694364870587292688950567052580995588749181721796321051396676313870917750802509628037245692946778552510449125280000048638739131592087333173324252427364847041474382860666171057607519574604871909624670761410456573139791206729070040184963300399276164972422271372420511031239341070673858066631200487488902561963342419924094902368785770066152117478661480793657046802129957983273013860248570960159684219485846041764627880976331074075542302295152951887213579734576299675914707739686709055269117157428443046700737548685686312604554286634640872595015144414578977779039492152725809525946254875686583068701284977201197356842121916575781701661073279139138594127717660449012539648129956892750479811603058811929898472324319911655369485145154996477918423047503538278765390744208118527644774298665756376469527073103699494854939197788520875093450182614451540903500019177085862774809543606080519777583912672538476405485148932385480281616712645545908185591384129343489174944385330989750116301606573090215998272897455108569410416161295014956981108089563482727780395768336540791195526308688962267849355292621788231123309349743383726502491161505217369445128869170279192713283840316228196391540689156140149221347475151871375386955513148978667799933794297858409570780234592362903808860944633336953060345660808327220652129171525582002046292631556575272945003624579524540472020232193461221651726385308769472661259172474529407996495090289338316736183160501807600983253565363397506859463515456349962868999233012960011788863511969318212615555611667990136679554405173850967949174052294717122438015692553776789001667428117843983066351228566897255060524910813748281094826864488584930737193817947094795930635796722095144787788735404150544210620098474635184943294215213526563398723075990738267119801413830909537857892230740339522854667459182428198910991969689283321216165659705159210171125296494586714177495451785517651358040015675917059998375465153048084152868662769564070656408659070106420778463983966080005588399750762599517927517570687514456629872517375158339358420239259588974573939964318804252851511021528304863461689212215773311324321021985018507270488995992882407929288207114318524486336420346649765403921122380254050684671832118284216754575798656897914105586421392263550978941376891289236971892831651629014018681895766348854343554237467509311516016026980329441593091561611827635533406294464965028434503479056743010899099978007615001657743768300870538384398500654354478451010083398753562894627371482912837163334284016997479644304704089693911726669230842347618256746573943136013166298877899498744889894872129448960752622153958972706637942666732580204151875597026487377491007387288804525721587494666307382791641634496855062939043236790185175631547925729004902600422440212921667551871830798758920767718410604716752129038118717278447883673225270080818165866909588417630095992351314024011323941901616843553878485897360899071818023036454289594418174657532727916387016094913183308803065706095235967642512227853916872170221575083663354699389400569368246973901124780787953911683769749994474440968460875904184560992240764648676092616075835647939969844057629805143828819042996861715944721039977521373358448293489625561426950176842979080340937655614128135962081140565796761309532814916211956121139836584993400695686371063419817246359007298105438067490607643778359936840700231354089023192772675864233205295051039193869189591955001402947127882825889628921449464751800631615532896784354607266113679879295981598409228400710913768743016408375146892166419515699908752928996655573973059839037181852056280148464029793209693016009062494035704572181065138294203141522754604964843352246130514549517463553770941719898563239665132991366679964830163749969643798874107137965795676061749074429384355269652293578484860608382026835943872935425038895365230099464625619756194163245572078927646952257300412331129886523437484084793690722488760937021527771865799288842897370683212123751181764351309832552373820872219918279155189546126312595446787217018404651198186822014211276639127776173279763922305162928173458261033841032547125808646736935952906793452931470923350484602009843302754199524246173355770559559059756415211219936885756138289327964326723970764630221498232717460127288616510259891164617771413910291672592741604369225297677947379701175597002320082097708675969239150890795111531995806848565729513393849795263430918040675175325319546640270664267314079653968469828215392585354573408995018167615389543538754256950200374857710954572059246006793143254459596342940541381047563502689206979070950648950323954122870143606690349850877165178227459389753344379100914225731605089091955009038038429182514550844413736100767685318713767133451755718424315125640874193845197949349338977185068506396093064477605501662806504521293932718342379718075362946790898605868170859401414343015630519391554859887638991771759460185120094730706675328970444155925317942352273297404590693803136339797484345024211588596559121223191514959732824572970701851246984029681439429962739033496005922678262868631781016242169314190071205716186643961077257582969863343593904429670894023822484761641545843789098458375793355078872225879393270393673769461081620467340847341601901399290872416895354967203724791925321706349044904107394683981936843048014001146354575499629865488633707302534179029765914971937215060537379302487678843308380044330027386378718202530512928845566838180748180342658611640894704374560345852271655583300272977586776647096606174900435686876519576748351792740479943184268257367097107449394066018917187234550970989394597315940575918137853736635731632437156729155906644450119398219112430094002066030466325108401836236200945110229374338953194680952742863836998849662658108630581137553741757489453915186602086997829165952390428062061869231392326716200869858118807354140082888153212780264663911357159261800190972065898786746038190384207268931210318742486937580867500286368384092865649190006969387200504582303808331976702824670773733774509763737382194866782062602816066022995225950581154196453221948253612926363351562500328353292935967891818957388786452086172399800478238073171714389066552405823352948201370392444007558638285387899144161999706983216299898369112088786055983744129132863222364218191332596609997103619451475253918984463291013683143087974030834159132448748569554118605883289737865429946745698462122097450757681548613166629727992480588758431148361222864789254267857535686563068888669320973736250437080718837743271188657869297599108024813292982246685464834466974743423538736897842327413026252487928483610501119428630827445261484268319241214046633787851220337082927551726082664837304910614207531250229953812099835036857197693465465454394452908177633776362412782316140328838823889642904128422091028826488738136392558917676809942976668059536566149124767761097426490253040456875439186921992522311337051256748891368166748113330646142808179242966455350327944629536116669621240507913085215150834728230565271195054707579461257451136198422116505100482157725052915945284663922618339427718260381103438725999438620408916839133931533652345603093176974306822926643255432514257855345829507302388574771673268472573482899385735572775185242648381113880210157684627966612956637148079142065619377060029878437238783335889183680056291887931395021642064325579131533786596788886294659014051735969518284984149752647296962490864724570969421575238577508331581614931201515678751896983823216115060105690369491479538909789519809789567225680251277491089872276859962348685389977594066777918661454367906863458393878150080794692269497727246542401953388746868485176618432222623281745979803846504475297254375887803490439675754727881297024644137908233974101040270315967834432102975469802628638329130264772724472019953808407149006628728547022874086892247167632402604143567227181494628122940935543189317254375286005980842075426130803758827451005013117168489874188562538148511633807106883689939852980404365286820523833849891471896292475471343534282385642008503813119687339915384506504652362957287362835732845713884905264247850071211278144775209744331071746192599541860713813149313121537456776001720013596247339890610869540070696549714336057925723735280769731393351363184725101066090151058723101944276063610334066531109390929511396522488351791192564733639848827572427837054518131671196366440035597855108374518156755245447075573131917713142176227247634389973899054667706254170411448560322433008945917548071595161571083595607056149845734147581327172338104487433800737366155848294847652948455738306326323100063822994589360327586863095864600514810905059940571530066307439065967487645187861692157538935779555078808609170910998167440506515377797886958142897259600638333832833735120774916804976546849895663284820353739222026850014875396478686465311396520312130775710732177665415896034679301964292750537534920581779199383615588430971675969050040828217843265527279934856151230670461778527768311803465260866609170832859372270618487417893905826366602984054258785843486993015899849665731433251035992459550012374707340558739365553002967433281971775292344814693721854908509587980795573035489570768769378680331224210544560476198728449549534104819629712815243034418417278491922154912872897902359875766547374562252986529820107401809065840757526591589274526990373442989029565657390514844278628365131969012610153750802681617646998814779411376836332453821977705522527197989499930567093266292461624321681339785703490034192459877000976423516835473632282460559091922407126534663514886849817439985019092034626019785312688993554379942164569183193057043991496765415567103057432148450413640502711559846507098839844005797479433986660456641929019156481237277549659260938783045250730497350098828266114641460470645913545465637772137067619081123819340848756108135410043496311799314177121924047981710463515666946621520540673634214519673016827100592795439606912899635219527275505615292398831985222514645928621737085415731020143574619256918420671438900995417427625297577055530025134193074473795178743063751299200884521530623201771927908041736925842899989047789662932593506945342897810371704690227980611925603978263018700121598481244502375179971264273626117719452026906367275738411020251821564973266844182938735309109009784603884385268493384422235984418347993437322611025823407130365425013167272233757037436318161910708835733070614143732944750643524537624323526284906869235544925950829270913133511792585865710755834040765213901891049251728704654266640526092237739897473271488475793262690210162471001576644158499452964806697798372438944406238919450809304783600154334141932890987880610358714164829268402981501153130638052640516567151206023920701083637082624851986555602291742435957857614467841888318156760602696249876026793469586473495755320624574820141017037366032231578181674617389009632652926850423810018131025513345466152119089605157849594789398791590536001832528339118296030162729769029286416614374786183138287336045310091788234010969375918156963151674071956063741189214925661952022711853891664346757445233217201738854241441990953337967091612924055665825453112316668171874873619226214888695179901091690610436605932614621171781579999951165283323020812324719371769753856748788565722755290989045517147944220305134731541033576551835065850825429498238670126396899485365456814260800014622113651829127127992102210371194315402330466962299134491168863938764217024096392249549601772886958112867934560753610448045097559124689669015014277329578517440093271563823748566034839498237995921734617118061071417511700579508985430403620179812347781782386543048719674766062361856533046014337833004736732526061071347101947723331220896201976630185348627418340491334677581512805769642391990119015036876412668234777587004853986107868475629822264860805724363982861126638203581622444083469309764984588843450648116236245435016339037296598847130667691777248186316193852712150337336797215819762470881639385445665503600809094875424215037808459073807240745712660517548577818620055125505400218498108531004088452166531925700457241008720033562639454035858619985887510778572660939273112805162269949644774122782730857309401072156953520361685307713640070706522486915900438908614706085804780676742134214028593414588725602300937255068877771385322245721288860025618783902188356965310951965295142609668851282640686042374410787657097339603301432958508927592991776088373872520469419149458315726968342409867861738242003176569716540372433925168093574876164108525804849125195008907344750184709787588589151236445223060051100532277027140099892219610296050688454498319377599871376572882760887593878177672377372633693848573386678112296137564169923547083574969266210676076123709061513450894524585088784248627050310157690777056059368651357636839972544131547477521040962155873993580847791911829231344006588639216519899251725895117160210875090774074939491350218404693204720721010689268387268904515422415193318172945413590303649165523921137120294458576722099717366479976255822423058497275382604256509122996111466290022996761972132443918417893496392117284731020306690681475526150398956774805960551708679845634051373300402665999942438053320679437324937253249465417341385400238019672819537791365366903150519642417629437341513135909320463664880749486288310304039082346680787256605702186935405800972880990346013136323430874924555968360012355565854711742064312836032383623670764100122495622311850168432317900045149898955911798408524149236383491030686857456275863879070077479959210983962532564388155750741981372681913053029226097283980314451899165459057982572583551895104143227499727063946400935242223039988771431180983627908098859433715653477998663736302089077836424195441060255592411468074337460812578383650097222855076032064659964969475253198340623882198389317604197372151595560274551362928642092926120588304090394984173510053417069720519038568399046238083519119576938722901673843753408215319336508398847555565339011412886047704204262152117241731451306120320403033362741890661028149023874942882192048143027647783543104388753793037325454247606852421484357495496296655284756282092019523958350364201873242058040125601939568500372703425215574560964144198339987862950919147777655950947619630919717689441230727026592418881246726639173993526796586024694373811290826425553594508155528995547837879303743584956043723598978356712810252382296504455616784023329164957955260199325533468163668538210710425812511481833453949050120087062048350378714719013538487642634144546656474172256455054984257645610818765657216254109806719110561134253400407154013799480153211069780371918003017930300582351708721465285519376616239253243549587908928668670961469739226379753177617746932308101369517722092780817583313318977756691742902987095570025164148529707987643561855216644270136897229000893174304807559683806887068392560167050265166278355060415466604295038291909984939916267497835303920750717996947725123592603734602620272445287609991630000527295337683731947786284813806716412011529955906514251143904621218579316277160734849557553410329494353409196166951408960211748459236889563677765814136882767392668333970554833443323722907261831662737393585172668602708563870271163787560835392746607622506155094786232771232163099655090212165884652980964081790129921564498355301175967351459692792349290389165083782512134620694291022888022739571536892650843549207741534641340396829685915369984490338919910621421957130506938991402121109335191617815041163661255397035767437398215967614153751531642229471509001369651722492053018291425938541929559544617594786407965502944047465728563362226004068789832707832507600686369979663526597645109935121459625634088567012838421091713841333902123460411552282303866143355275463730364171156365799940974901716944829960129429651441516996443631983442670005878311679012094312585962681019568752000735028376593006800409427782961651095021521074075238227525232578572064413919648338863459507433072626774491547011117460043215588166808019218594682528641715871164757615229851791480449421097559620467540593392406592568148506598453329773855268497544006752936433523413078949500869141107879922421981982616079493715363903999081226988322136393047624695211199608808104842533302785629242459134987332609488290383097825451437428258181582266234551480474027596885012543946779600002460855266207110529217016763482229855639753008913581071510936289813092718351106925042019134883160380011370686886186731628083508143623779549455152914520075353774780697949611902483892920879681801764448000372198000377782707399094700928785178562297295963130906006182832166394880130827736976266841321861595360688096730456650292977801206381841017881110200418247586789521492138798122994456637854274989799520162055287180522686849771519605784253852858226347238434143855136074079371854707175102403600176545109098081039774954275709562338183874971865264383341287101660402531179750426813662647506457452278350812149284923719253262579370824262103199908205993865940360445521561318047580762328630116970207448171943145504470885829787353463553255487657226556995197808969622774926054677024922764731921172073100351177923398983867697801415562821633116258267579184802617690891070676685855979618721335404538488296892048492685243221352091824325394548735625967063474869746203526594031972698536443492776194203110113494363181200141182784563208414366964081008881308749763803171601061291229017229269116936684706411783289148493690224267214009621811639597917692999793982131442980016002090903803309274434167728446214049563241389274568711311670693106746067701196941685880629495381934480293703888705803484823303490145282557587549814488029242956904684838605531383820820156250987653174077188924872769189480647016256043559301576896502397332539085140921664656277206358318640071018205721588995116387147736011965897995072616999926803899232625293527128393306958247685231702238965655405248982483489381096421408132859023684992539226358431118568397172156197372502179169727132971506267070167984059403856824726363823111161098179899448691428831832340191586511802733593619737167601101521247340860038936895431479642682864564870324145640162704262778239403126844863052210948225072299650131678768758158345166962459417089399333615272559825999380868742399459563696980430378692160877460065129894212637508150824585692407035473455038983431070195842423224954037897152400194751770961754784829972473463803871233908058040113612721168940997213053522601043055369463659916080374528581082306286248908189436669425493324712627289896661814638639967570050319481981828174756974100747070025096649214506350970593802205799976157782480815083129173686920582101774101991602127359695117951770141893817148342564898376742104403475634771076178803590402508511130532613074662920964448150547532104987284630274841519042767113023966350385861128939780713628361049578659356105927055267419125714014014713238339412660800258600400821456317326848421120044779020301135737346902977504054632377841400095345689876053392731694020265071515214277317040522840070462650043733958227128853611896970747971005629471949066304332462794252680994810267751130238672672013849320374628953182466649668175746922837534082214762927548378595876199841959371569041644428735318694118578187546231519715160563706180564489672401203834180894908899636840910965247939597851362820596114937447865095150540867785836683758238996988949808260621181902524813628478450775070252558288314532559583831398829348358021631298837873506062941546265900467611151084228147206242230396560999720868590809552490518892669333003646770958603355989063054632956824191120843916426424190347591361479567683165079421741566591231610253918322730457379457697254646187379955933867877103167360256455471840728214279925924601417194320849252285469773002105878699777381443480261786733648218769912207176212430970038866017690988462691984263976879348915959391763444204247466278374854020173749025987809583207417083530190830575274873909878679431936569018908220799319685277717812887499449586725352063072882881692387410776215681923383295053774392473901133971272607264598034189776660277231144468500900872416634381506598636164602229440002787674510001853887080707299414532657217645233402776344500181754885729230689051596829748987428659914976032720376663896702164709600897384272046038387411321682837300925403981345026181208342860739676844192487404770153710024748651149138019916378406327975082842164513330906086443897879558797306922838559473239931284061698451815892059061432690584282110824754990920296070046430963095368814222611146475350155252688412864758798245309645460099821161593693792788985050668498620408525173705846774720700331101463503521479509905876958934004795623068323414333481248223790697456945465399686589449958528919631724446275003014321181979838004067678732295781570701546133857826248050488282879714715894925355824282142719660061831397437974170898465512294589078661360008064514837764556180964170164518606486251534104094549580386681293793587694111807285185586372287081471911385574394530318085486499421772613001770909896477710778350626041866079235337678234279656270946017743718416595304856341649756550339787522185955194088817943358174188225809866547912351427807773159086870764618651479152665710999200182409630268026340964290445669599561685270411582262458019321728882419177947932974777077407631530059532389530187904547298583699149978661171859636463756853253311067933774074666249337842469407662703914190293414949543146660349485115443707557539729345713143862790354413595477399946518837042107542454672907429070947829351587862293860433921227287909991048311831754742914804894459815410311734033520137557353608183921625353476477396633236089310622244041125211872106322013811683616688019584120809675889932013866933911767853614893707163900989845993015229186796733024834459180736746738864594988308297376333384158515454760638808532135976949145766819844915984851586178533918830462990769567749186088174303982860959959622679950105800594418475727441426014891298088157718315995142370838738347552898632455662793251147040182187512548498208683697934593979274504045112300775764607592849816813142616145178934617201873394378083548090502254380454540141361756126594770172491498013445405405147941232593586032884623936321172174885653766084615783737658610701028739837063229669147739100152611571920933303538105311808969406296901677183276996677556104810771315269239991346087782828570715560629878875744495630955578262588420012417576401850976372115740987430864475675531702722527595023062403420681591084688636878337601922985060779069413842919826252582386473265139758825822450238610289366313254648672292444941311498306622496817894717586632290500396265274960108937891229213217517637401263206628412094346938942554665477979906402285130387611897258393709904160852842330234270814873003099109650642203678187953920436054056873798167435500675725913441542907637162907536583890240096261746215995136273528918471095638565972047674417644021960536461668035105647592447697612712281038427407985160917911070347231608567344698788590251972274234476018329083399955721859749750080975424666697226288581062764817814838047716886686775180105637196752378186620912497029505020716458550016435445789730158101274062618929525670817971640430062850481361814594909156658884411042829714833398555371993580612138919945645236994914799277849940846813309119154630558952523657181997916998833662986918549125464314909328836435333970700374378345319171493747351981752683948885108327457745109977959800247801059345789524705610877042525163249850017226793523730357788517871855854271969168091597006283939320852372746624727450347941032546225551212926606970726386815064200021431921370204013152347033925833853074243166272342060536048526674075466461923618825209145630245228684253892123145884072432310039324167032012049148461838925530704740234849723680856237385680564517786832358604302698930714550521265422989780371610515370253537478335905016716106061493786533512140012062695672645493557497323366895394527118607219193338143498901038696093967430623896703293672000731959638648048255227537514100695425612381979431227907928544440146156107690754169157633962487863235393223970941082243107985066973870866852178854668374130851960014480546921332522978697858476811722863312442490920149300830038313495221328393980185755351006880162618060258082960102200147573045715323032180981666031054506137777212132083193455683136435765108955911128051706905141596967449542466372642273965765703652362458588571079977182922639202042124608935261619999501392692696190982632214544133424075072700370686883279088484147334422933638106463965868640101003252767506228349066203550038510652923562125065458108070658404066422400496097057519193823191089879785237258372278738381301466370076194341682091154171912171857279200069598883196229765162171172365837286540059874751402025968267114584349252402077064012089026698123862746622918065059843185370269662348631888120056404563322916185231139591701344910178255605761122536078583660838450538405013056330445977768429313762551340269293512482131788966104294817351567891325824801046742729289735819187419864519979804547689858042313985750070408286115034800440507455009240221753766928620408065203886525795174653312528370939369514143123955506156671427014671006604376493265333014833836404101524484701517281930426854462612128093943735727410084432375947724406798459044895152138115688706817413243931178153277390541511737598548848622906248377830057481059003738387138049001762160426088075957202004579131322732540739350743172715711844112925659564376054507090550104040801961205101307600488167396456475715731388632111883790873718348443595271026061653760711545105011853763457960874303147409393568177936173561238256637400016094379909250862949751208008668028536518544808808244067842377732188978975578458422416489695265262993140158408427705407204294723395242977898586251999868390034047272544144773118158849674062809535774595031456192715750685446218143082007346339434355268337697959332938112460146741016194666051678389369020121045352134450912797524430214959717330025685194142540607859024094424514934295676517188440350208742636856703049675119105313727812058267057524654592714075558938671010150408898672492595758557954018056443464972615282946040232891839821554427355507231484908067420709654870436132705910275295549309605790240867333253446834708760870198368145666863270434276830656810766143627304414226021395484320855350931895293134708804419200557284961312284524014225690382718679786957454531908342853701142634638100696996510906153275100992683944162590139733088496874508223781415119848123727898232570742349285582923411303987825605333925818221034988400217791014824632583943568644085665719455730842835326594912129633267530806688369131270392517290926102966107031288066149272802312465656404208606083168047704294813327067774600805663149423895206794001677245118366994822268117327323691158824909598081212206699861391333491555680086044006627430955977715276519460542705714611961527298634171898907908452430047481017145720235524443290842823519711059816448636489093522957024561416540950327995755246354116916451851578383988766218816258333075228897060852792069175622069943194735862051536276992298306274290392582215437447251293525870342732225474030940952948329038995564951334535910439931793333681538619314005889617058070752831567511862989417019082463327026995513427367876477801611888953142159868738696023142031374260636760730144844827586256314298487668664925144398754248114735710464444422107870902479809389964976079809017233317561251228550139711489386097881598092772464390200592427112410848998000974572662949525251652789535729415676569586138492995241895139790952353110998025926678080225868844885276804065193029878950139827265109501283223475816662950900617003248936302602385598756832551118020305052615269780781637174938528497542662605887814332052417803601617445292676614651156389572002940932012486329219613702977251485093190905070360940273415621603701021327375041310505035736915149384950563872938295701864555235279484107578831779613879860677370681236039172184679274194862121997176417889707552260489437130095178438316227484552856752589986280872808374952291708379851216844080819680488628287252521782381689228517954522517632220399989756794118981538595385404270428138205663503313599724858323510992622237561061605950039063910833634510581496600779993319249404670477646401724985397365951329880060776008954796644984101126879650419528467283802438921189198269326931041034356112090948393889968597758258802169564919339631420640401461244501271003070867219417521436556929660723280480114541658923221704355729969370315168982138752716633142805388273856060402592577778671028264739755360886781858752237283492092520849253089258589538307979036421906742074245664575772236787232836328852777430977502433865338143724057080813663648769246512983450768116780724717941509649748533487251311169764044092343382892899568351635736195976882060423251179261371645550300558431070007455281657515383609124355832688726325547736233480055850624465126003794566030489398701532503430874145660706683470760467917546854499455097740750481704090194753055402036860862272375625188131102295743345573329116943873823990032992845568917494736882933937424209978823308867307863052638861193646890100368109999827508585339915638866676766731061000989018432458268847572743853621064119492482529535507579347766079737952277256631529237913202176380247435653374305586967444410462301190590839041111229980616035852060156331534224958641885123072708349393300719121017992298189636389101701737836288686243029946392932736647392360320766198294596460192345373249103650783252208863220126199313616402422235461162773990659643413483944120122796521902143556890151822675977452048851385384868607472461707103986497950111281014632589315993759980186945965947443316827073460225895680654100209593842320383316130860281539215296021883393550487924034139521062050120522457548709714213586251444998189757071396974748454221963683385362127613146439306058371536709519945805712030689223105029400032580401754663275766832774919435939508994390094537809154421280979229884820649389132835062020104584402061027704324262484561066888769693651003221305603001217991981638651926293721951448532815971583919703443556048736345399345285994738022340376620361954855278335667524209386016214209726254399179531378425449034974867440209259723538993048939129673579802455397396457565269347981989441371343366940802374010258875197497858090452073586098707875463172979030107741609404827575854274605337848391656305971294543702457784395693841461625052529585969796743744649723520898618172696722204500212952778793193317347921407274483160318139204219623033786333941967146913043974960465669906597823023534550522944483960682874121231325998951043976131676538943026926020820202260610979780923552212142432393351242456910702329584322571992073435491196904047401874759967687787574385333732917546058348495801572676836431271877845967159762213156180465687832902003740003308697206997802106028312130074757144456525519653948824369547417631518484669763721651457081018856308134021646424855003783542206816414445332490359233673955587583345675469858680408916359241073711972921813231381918331513898484731885572519389197121086511302347344150024229854233692003879088117921971514756450439137188389310298968421616841523582554045700796066296067218895217002041473144332750190898238833280920655607205353070665600656855877279053671829529494473974537899101369926068170201851696563814765299446898907308839411463046454162430538941987143169609551135998459431062605667146718301447358143906211339876672384805503605439857996922584156701654107558550919521622007815217711202334427553004103738783788655327137826953355962904864466396059544588489656765178006408182382805389707919395969847128459683424927008148090511833311252545965491786446645430886031843840607705124998999202843119434745261279087503149840606253423279521872465247224644052268226151590083542449432813045160571433465623299355033572446794320673163137104529492149366003452791751155615325298843648108487076488676162518780452775981905847832713913678282466181413684820918222861055593978143762855345164488362495068193398373185282749488495416516769780084186855737062031641788674080693316743198142061803822447348734722568116130277139970655452678998170193641930594616240878233381303639017617685569168785289496120136710672382960977268054288793026733531855894423847483508543471390208353310710218660769494532906536546600027655947226067096859132260429516529570656534650393371455354980879140155442927227575569883679463102713075501911791213814724916277856648543196071036714893057843793206206926533964093577012939068852317073020744798635930310330574892150976354913752807339710713854181860981392183494545647096835586899614319415516849514420745916721533637893263536098928170949413404300025302580422736234795457308291744676661814252719262469918754904941958933950403543086439685350881916546029612146529278040474924666771308976803983878266114706829091143723876576828203496053590221427881290094701908143142014613515526883406175749611605477012266802032352350136464099562403239136066090554528018779196851584227833342241052618039617045619186070129117041693985186861477014437540590905910233773019875006303353981586144469794511075018257983206677342771948051916297026965976219923444720366656540436466053081570900094215141945517542623800702560337921352075411706699190600731158037020039279328261020766824877221170696721154262273255258414026731452760111104915053561453473058058501791343883707193750776801856699479102422857472975811848299985926340333066752483816792808356909305599683399949387085707288282070170990753402847983297009179793853355212299636372232150876668109453241246902577618597120878746159879283161481993130643758613001994936226673860266323730046173834077758784412439687869010961178288853173935940545402862181475485012249492508660200185336839340778139546848065926386066472377850043245902160553066979095601860171475759752733000039656241524824901407729731413431197567572848571072654787751055860862525836201087879214583632048970631993554417620697754368076387243577852872358209576479212281363478211013284290267136040501715855708465157413597727211343282469282081744407418163592247753790627035904106369411124726538208212168309015835231750288116682182127663941763500772776880724121983542939740257623398899968159899818020133036861317973963612980200315868082578247813706328198887870453934691371349435171574966103344926955534743163835278374966931576740190197051880741254030882996812183398750883772266081557169360440293875995854557968872006136548483442209808951095286306553796578724781436497376652709571775420814476598794945294266156375866155883914176976732498630205297116024717274662644528545288139482242957125760365786703144507059180630637919138958503319665843648174728771870758412848753391175054435234113652439899165790904658549374101652145707324937969426984458039289797671522169422886422929492009215656129087315315394627645703729616041119350422110051670097250941367907780316192489594858302336666474118680191959879101973069017741631429215483564430784510568083593857288659259343959949117768911015898678246572310812168692789137996882623701841025281295800875646117878934768308903587420404008154004502720102817292633576888362788338450161612067686027315335626628637412246633914973603934982272379550757773665445191658618627356332678033069112748167807034956023155129735285364038981260231443341849566262211636153707645933309368208107450552818387727449829994426951714410054454208313217271595530313149703943926527510055074453860019816374872571341786179130638315027463777088336331804353062126776187060390685093382959271609125617071491928014725863042914611672682485588222026279825186246784324212333861723315603672077814698902667455850100171946750108447025042528555743791273660754244400089285182948997050338638553966224238550438726076783006137051504722738206840116995323088287429131655415586691151437779017395844608698364785631460798654047659457800063225810341957306886271246315784323907245425330671664429009165588118145658449216799602740201336913327473134180342698068848844837435163667055054282103008299713799388683061073457117755988323799964860465971318467786579455404052413631087044971036406024955267778504144017726314837834672466971790397260187762829881658407538502281202766447894781665010407926779370637028025079532977796360520006396057497407260637928511248567208029803741137983697332202409930480050964295071367814020834465724128333709735063171814832163616676464103682801425147253374677102755945699917833238607326763395633094609827921142436884799470879120484280326168196376341005237937793239263387487191498537908834848367087734839890661569050216663645889736707726606962049658627234116986190749746752722908639644455488802410368654072440784730278848303059244557215139418936001199890742365158848454617204519056834795646307259848971283195700941587910129921884001563633710482084488996196881186110220159398936815742687546177922134253976550574506036549674387297644324224654272915728549069119441207901005130334233396610506538177873447484416537050703053074144785152940879590020122346442172273064810322501831705608430067156126961020416427660617449794853071279263542864883109308921370936430534934736575602827856831531241843845290649718757126508299691842094200507003337446055884001373366199441542656686636957702018391145477173336884106119038980266157547717115462280221946507092552678201510944747438363286862601421300832848957234277535082867522682429688758892476787945186176242287166054876156077824836689023767271630950233831102358712316393309095200753244693873961475136171259392774257972322781344013365406793775745203179728565313195423981559905690699039168487929459666410811874395883272698987273284137647954964761305427132786834659387391204211079122145933042642019769868523216714861672276082628902418181202268643673462547052862944372684568826373656319799840642563430793180105179645649250311389771536821002514585652168149720860040164762205278142092034961411695426749532913204326977338730292390379872179418676566185920790517035775446332291736234004905841560835251637466524052020077108475038377161194361027240550348701669969170594657290652597326871378325513709355272682066642476036418590913432195984444639620961745713458054987889793379265725239112106074981710449218868007219767362076099613207673372770708695249878683410571805431578898699165997563672184159561228976356201623914689240715841323697874486352006927191658542400936803015822819710414704185549109588901661138928753602201649237026995576203170523060715170626009179841187342031903805948531603223419803466947116183732706035790857619359388844847430494303107992865598495713981922319993959386641804917854918617864927690211143709367271029448613775515209314483151670151225032001877203658303978868382570537485839716627457325285943539230318179777545116603097791327127989555195542185627784562179896662020760523643516339090220863431693479368555750537248166305576643700685393754037203391140430372832085049693958808561112195582114158716259159649536059478317126331182302872184916959682638429564704402006580551883372095979636718611245458028982193519212525010130286903455913241429763401219815204748163287527662116767364010731668980103552365002029198328775435309760807215721104685599642774996019215497172704781987150468949913435936112973502258815112647932910716960305235834941218069397359251318345580734139652414037474010959334862740048232286260583439379209988732953603384344518160364377831195535749047956352342726978208702147774767387903519062732190143258417809695076025222122059291067483110711105713594000797838578505333426327965721938940902385864098367438328557003519461550331054812036616749837658767002040015426386117302302254165848880617473480930159662218735291401579261600334330961756623470715137773097764774693673486144111677091026360529757670553068865976600057772580184635036891841769670545585910031180209382778034509307923100561921090317040728930763798601821648022193942258902631760809771652602981259535715182899497596386743971244103558748645162303308465944979881472415475397116617932070625606570000096937614664368327389529850349712300897776246230134417576546577544653213971646324057035780254067721275219449469411632425012793697632556663449813660344419664739237879204964941755443588567031626035141191994110553828817228227234325575385387729195303766801610987133212544432291640883979222958111242290038954683239576283793310556135433602004730744679898060354094342161180555939525232506153258226747132668513673231989468202695077579496706782640963940498847121329734783623123152860847572711013698630067059040611347038646304628534036085466178890488553578268981907936436071096284105388854939016910845922787843892574632806801218352411255882465242986850292139185989035063877471676625609257219396444833418541636918336010436041892182657624983181226626513994295824982210085779192724243856383684855042808002176176378439083399412416891808058117817794344026637950445024434711233003585917118227416341186769881900686284751536728960075747009987256816578776752510892969604664995453624094438629302947372116760858058790236150169500393886580224973368800204805487817020720058937333660892092458585113562412197822455592837139287323309789728661418359218243041825584978197497284691573593651866681180774543872070873268505038359534817543875364360453840943348171538915693933059585829233117517294468346791887505815419366332203335048755433503618544523743238923306508173359879758319071437243182902363126990094974722403843768300662278523212176760277733984048632646096070141912519134680138042821612731211693718802086222170671805818295552236287790860916444466918412112164356162744836692684157826497982712051558792632604115003571545686286954935155579651297923582912720061708148527334760411067647589781948873446978724776441983649701672347590789595039442128023253434611232222453359869870327090662062773879682852071938581088914746979456537024269469522443320747514537949449350062145909195067974656550114575832836128838823660070351026743298791642803571933190740916449617835415872057411102248907981999225379900807498191745813537330357062719311726934140616312153583973578490716760082354916864964988847620605843539065888662143220768694334110951118939445985608190585533666736673996359155344002327551636924248783689203201743470635321234359960323933145684682635063400254360978411128380173450164235465746750191958391180226540889763115584091463591003006500922529875581824603552523443573489549536559652089032216730692775223096620721113105729262374617832445866844901220217429904337994243852482822015660328652284456108391472764382809236836430777501730149488453818481208676025076686753517688965056230274264130676533240048684711491599589894380376282824994344425721065323181169917403047174848094065932468079348615413206794668236386041854269404950938737247809466292702890629210712186565215348012319891505839138490642600785888779615503377963428559802937458392862546255913145552251775274528423792838311236217890650118402471606434028199179726668064614181518376143918817182195356411297381122984435129918076408547717086318028340116527400126065593235841683698029433758349348164966741329742917451126824642074518080319890465906640346437129850293911867000162965950032001179292342529849880251335310900855612718342307875665515685827221945046369949220125904619694387265411722053598044975961037771232741345969287267689703079804689308223383224710361747497915964940333331030867648165393499463562432165930648060482949700761387946231683746197114724786455095567605508142613530730146771082130786248252194916720913075917091681706858732231221293617854023976559607768991040342648996769845996748334232553140259364236140944398026995320715893205123062577502876934476429082313438631084104500651600977337844235691630214188319234144742570306156461994833517288908405898502151613651328967582287094265199731658010065513288413764295394116475315633483723289217554306227793430673436525101304451918101664425576475536326025677242858841932839972302117538045275632741237079779098722401555938813688080798698701935312599637854777363215846200427655672107276676815364880638923860627461226811822659615285246416047373198671050200560320757035362524912291665697147199093192566484298575869852857340852561070474095156223769461185236889721302605564823295082224333914921526137003463938343752409835184878276052372798172991657924144744808457670497887214800882809015632129132352170894353648679679558072359861809850898668872847720949345542411700967995427206069577548271622576526435692382939643808454599100084310314539074566896291975463396548487593935698278430159575043247247982202189031268043943522210955162377911818191574871351000052808716356879278375601066416886969710565780136109262944654167379757975814080401010347705246219013573009908136478058071893922823054619125782037241820782820751834311960520890117433625660804780583488655144957423662406972511630494551455275178156586581868176468781757915411942424477984754388899988245909827701811395722698354553023109186539572647869440284851604335552121274504155327334360425626838874398186329563784683321471034102115804226784970832612227488491237809126178003463891863543021048758561670329063706967296062396472234772682164711375806234659767937833352478892933580737197602937192394396548047379253813873573586204570376317215642514419084315532711718860894767689245487582934241903587260205548935602794085455692465602934098842212947486273493790652000138069464200641770551352082079140244418816704604932847558144361474948329579391234660254826952066961829233476259090672536931180411782901607046925840382182538801281740494502952783854286134530741273226901205555417078269811358759715485050721619165869773842028254235420973062754997168324876565470888928697659945363672810111963655489910794191135370893053506741331106818679121342255642851167503069762114120289494052559456733100620459220195196872858186342720225171934822574081442549656487182161141279996900430281141262777152938408469088758189212276436805925625866603375496568766142484197308919776831213331123456658584752521771129832250479728188234531492560956826624932564932587207937405428475501073394059975327862561400195230919128276444288212278060332692290239748405205761973100173636467890973311146223648007094166712606994784056777255611147275926427359040503537358858504708549117577577256295507770920801532673513685718474560453588657273995681086697303310513778540666654864629884224842201676863047837642115669368128974640393891309223588890565860693543196824142809148139920201644551634842512903831071026796042323325041884219778598581198835293370161210473362044039829122251286732568360407011484794205829308270126007703075457717129705157773007300156194326863962788109077805008819009566578350240262159830112562229686516650218033517637788139760411069911201541649977765046019898769927192886508838928359819413818290383929634874884858112439474399353245030027686447410409633059240213280413015708962789434508667509169635634869734974672769739265572664670342315229200112239611782306351799409887907429628520127346495844603750735694815125014395386318643076231692348360046638371306760449232004176497135486315060835638945192011703598438397460754455666810763033222619267656834269545651411200691321907774693791404452523209682985435768771803046461187884438413563969418614615014059529527434250418185101481279301734517068031657638174114327978394548027482048561898692226676948995896415739199701996510996072565631330618448135136440993701300214995025659722797179933387714287559128358214477905401748583822632870357698137014290101837038319642789964735334440286154338610851458237497667269714052182009266609890824285235241474230410431722724576070562085493191025905377262408895506612027010825095691302343351854817485652760776586744671486193380159993355335708950182611303474372206117220149094647261590861169850029220032872998656524237537891350097179365588523363694391020834997158749606155751732387514325707129348190804476271998090157421997645619036842397821877918910376244295686872523627184785348204294381696482983569492172932143061829040765237922733823016924781060009294084765253317738986096466483716924165741547049584185483141650830373688174470070616076671878830377026635291438706378380921707856400513448756783647795957027158797756274540852263760556503243443849712619278858841902029107541965719924306105246124290859536615737477679233539185134982718269213407313584171568487504705198681938183152372072069159594870485279268963032183054772525486646094013559138200431493434949847738982782983047800707825180232041014522757802689765122351330697202619723342779130382881103280244751924948833105215824733107721755333784893177031732363723327257567641828971206762725749634849451726233554637677168528569157043783435440253858381123716038385882971049011977007336267019106010450948253745977327774856028287211254770736666843159971520815377688110025590762392590606245131269532938796440700994578245018898647031099933293536404583388160963293338567671656634170007277807525181113021980030815707367432138904172530871694953105799611100528176606451506070465406425698838760222075140115701762959597110579944968159739130074327196682694467333558999075237856213642044743335936471883012497234376839573049230848644527241535095090003292757177958891932893284185183212619738105471809303563921355210660486146212678443002142788609225788011916234204773226470252565475021931747837616395925061816919540066004914992437878256372874639033286521752778030015475163460868201182083480250267479519071937496028664218516654286598155108761649856132562060003753953497651971768033314762160247531329746026767623471654812323902348185145523370900907174353179079417326799470840817113688342285927914026300833730287049573862608297226791130514890442512548454719583624259669578611297226912847288017786942336001117855422306247246921081094718294199491068460084284743439550343906515230440926719391471841914710012153231029561701890317171757041236470402522565518357724220633816846418265519392815216533821676508719306157617901779116580530183998578769544524303809671627603251077212733964384842448210058975166939713501745864824166358859490685053902555307211395651651561986686224656518323583191426208893330753667186772042980240483169049909728459746194848626228257038632905664758881154069244246027114844315899980412065620095268658430114659288701937231347978953324588554785700382352093172359567603357672998201571232617138263590309580522359836115342764364692054797415274431959654671503761896274859397238174828186390254424664585486504410088305310238158975474791971858843714363510800874324486427773080533641817901950254705259388844922746039143068601131527596972309760924354065815850208861872958870025104400758775966790722795140197124746164623727982105434744682183691520019902648895784148975017709126933771520468057079533778593188190530521040641127390466926229378796701116623656340135825453980151959820392962832231711683839241201308005062966224543495675259804017113096440482012485324155005082748444916650867999996937048238229509748388117843818012492454196935879689165063806177244326423456061737741427830339538249910711643852086837319004138042165364075562872766398146105442606499268289204791545019580124304924498257428970269290879327918879363180733472876258045517841280388062840115648344923186574762958901915127347504156342181270644025495101420988244504662612962735406250368581581627924450597500030758683611126216913636775853268239183619672579917248466901454020263278197813315227705075303682680162246099826000017592433114978379656245044395360961073435235785585676040916744047837629555317977436159408694006601616426164989435067896873058095731429300764107372696588993525502783586703977444363404848951824895922393063242185410215868814938543661012739524718069357941383173102082105151916479227132872918537618501149852810493901680707928274247911849964819318894164807785754112097155889363148621292945601567339729228343520052691539210647839881357887470006477591089009403209997909977356185876431540442456368870186891374797462183296797804960457347424039552059208572757986868423080223032479000728281593441745537298224385329688388481179968771643633704540176264102402020156166147608750959672492884212171184146914598592855021534269298316669849285930884833285170231827240462505796439365846776686544352486141414761216322150747816234567301898983281847001704353668114139120941677620869890300964989775504992962697148692326159797468268520275538970283378662451118159180812806965417498803336299156792905819242800178373938348295028291578929083774385044525599948918026626091428137270655925626735625198599001604917650630211191625677731368381152030152005498683562441990358474039559796433177196341019849073059205010110599081487664618745109196747366479991325952097550263441946557052740051840400761410000214691384943053274594753786525796923195102066548157010231126129487816906132214204619278188970485349369152397211449139984861131381807088477702498218984733091062676084963916725013176154281314668891199650085371115810284402050356849181415574756403845817524468147728882471948128701393353681256105165118519786821410122693129479458681244166443293753736352915440547316662383134616489690598409196215491571615961728004198626552153878252237929613618500353690495652855572127524210507856552014202673994577784141399029528170205295474617423541904220333962291909678446711696537566592633810296906334207277105457029093285738222785251897372079096369335865346883481101581891863302226492528179215610833311286508202647791188061958146406488854923386466477297783918714749211455087788561128797392540287354427816107770855688712706201287224184136731275509101313590361848947007136775759072440548038894311978807165698503246583486099635380385384257631070197103815702303946352757337608632995333906815172319478744673026379805621142765406423943383768903642362654956154142965402875350045277218567769664808686025453673335780961650303911303676681434338723962347607437357256735187406304226906065818460408876964168293042817043150359791516775014660030165130216585898273318815530102938310332743619224696355878214935448494412664555698855972801797841798853665443567096640504837005914669692102802261116212246599754118482362090439615077546131129538632793071221682456562307774994160359060699617901785373921551535245013515931970023946239189005395222332490202227680032834541842433640949889742488938076183817138322285152699506187263811604769315466822734774773158634354877910394783758062001958649623413957175928494751437128831296497203568700787823421018597649540561087089882114320934780365612517014242696512498948232101728690320320794296779748524370157166120043463234625483925267825912163608265433532432698824695986866089118697611539898606964734393410664231454018672921639466748503045930561080538894482654306261422004536003338953520471363080726453953707945390245294731511361698340799417761250560572592129627424286801330226947283561454337377893043439026292832846127248158762784466366284156608011798591088434163025023304763404169865536990304300645023011265928775922390276560995078737588755644005849041552288285556126720559093280294790745975024426151846386640577636203922840741058871187060168443900154669199106314646413767893976018566361781374875749731202154299688405139447223907162932225815213937620000446633583442569866732480409275115597788310757591752836060528043731344894695975115905118032089330842900564835358228997416399138188540338817856522961229920137653989387815378181089201306841818044915243919423141586951859961896271168448419349685392421238208234621077805811529936815615674723865177041197022960794229160170405996307320718019824774075154376090922725540977095535329070287357925778471727117521347493559977683131657090115665346129239335429963316136192656570156151110257433981736753351006285438180858583989542106682500819593789927028877538940473800078945008445080514219296362224931773107732388004274577159099309638324502988151324120660475727577144869585174632442818661350624336670247286471626384276256667875754963247012787967894437018274231777701193645302183407698502058372480534456888147620344727108117768738734674764699369059710757159870246449364406408719692713906957087806382280631877196463935238994115086217968455914863944239073363135026725071141737401258169384988231998920553748990167954033812740626059437741892669309184734490140767041601521030523064848575470779008201592983931569170174355170424801396383962279707649717062990634351985959566879080805787372143041520719566186542746103269487171028871723753519293795687173684577152439126693790229602870034655966577104923327240931262947984554658868821882226817470686370127290739546630046967652665117519912340926059677456618096802384958498312437863479556618214558039687882747919180528372637622486099074769210763849468640934243062193830910788344616885210180788742081384062635020922858991113116045473321865217756851266426742739864808228671183451039773804472118174677106262062341891642682190414291559599203625304406443802749412880743970732885822478228085476157890288482026506018776643792552265572556947752404954309832511902843187396835461854198769959350924265749790682728689165042386480927985336741306355746218587760150186677905288072136560325678707644032383450096302300674977355877460595117990394937349471768930816894639529581579004039022643491599832416201867140606359264501405743686050540052367376174353392680383257690787470535401503566199658405027559106160934884334891690800449035216063947215336513854758684943110878071543733438341957992689013744095114655054143858560440849437579560268844320797435457373887188022061962715865181821900501043792162462071993323159072020491794881988175149077852414127407041871265020811749824803206257127550004004668348944827349633275040429126783545767859214114869005317481456600926581298241414826749798668202624780712195983723877393409474344819511475301974653677218570650269554824542302045466399015163871105218834241869064613225620451935673597360473993148180240294782567844488126671262244700403575999807391734049217781094127063956795558808084436659903745691293452238712036265020560443562823142498984799552072614964275364084769684370034043264883665979548651207682034402684248822533725641604916083165574583352668277571485008571801230392895293868850540799720745070378875863585312703126932598139104472601066355076959645486923849379937828992044282645854001088464960828392500547658590538545299808485387501430020905494028570010136749247365058812892054898016592529000405133919361894840072501604933815876615003174307988819481174816692354481122715206398486889174817007450406577696293047035688834738889428825765775685350465305529074547333816126997809607300307765779354672120446346891385466044978822679711596915641518811624162137641601464036316998222063373820962840320893944413749804381690698029802169204588152667908052653435316373594054246162709491562736687103685380571340542654126835805370910441121738518145980077430100572753672287747431770612459211370417828277352469807739252794932827044653588337903033140607816333799074107923064536101455218632032373869249927307364420446015246295314179521484034959069393738065132971008654590998498686785134311618335403048449573154889623321703167252650281184471963872552101596364301548858431923991797657217345446894092249114818434210939635524700936421608446654165647453595219079740326783460455753134745945997160008146608570375811378594960602682339122518636708591783865485913376255857365354827928534318729452455214461314725748068120653708197783988810581051949663377358697830362222259208816129921080748994951682193109916011420831394319027936478702350706491088152512587389785361551870854717531863539754324133997231908875224842957890822049490857361707583617388511884570160607695437489430495310281221883638115390007132191707858823110111483036311318866354008797000443543739216753930503265751012301661393938920943528268319892745025042560776552010239759595637567667985414201768793348370556996445606431510002719675716521133530910397943005123785815308532378683734991371884730067086328848600214071837128611592567731880032253029814986435058852492758220116532786313961649926614602149221255125515035743677973850325849825220911305722608800040238981688124050543776615320914615350243397946317264736445644350103210099755168213827552432382567818637252868871955830519393623858575906525587759339568124452734698076600420401229302308215161808815900424672367622480297258821527269762316259019816147396417171456124542026176508509987727378340893646111419424152679274627258022042974054134618335060187986779817696475046364382483682455503972833727691467850428292173594772947300266698057027181364183295070779200090337880544708581206840947639523411135303570484024322017520807894968325774348418074633155499531636831684413763300078770300182379054561079782597318474885956049418414297545251952835224705328901711055645258709225905976561541327259926690956422353659026070464018627003587860178648961204291058761882382990058419687595136580797769942929529973859431716993641725899304930523961598284835656527769465959425781901415619739549160375488479925567657704217538126113104069437251479939518362117731487540241809179474528681296924097903055094948870927098571522346660059483819885886257635855076756322641683162427513063031345658095988842741002300314935173663115637096918754288620746403952691132648007505043801860524085882098357155485255351880054514283348223268952753461265059355592916608222461768506595051940839492409792089768367922599793395471719958486973270340916783547333833238316474940986945428162727843856531769798660585510847010964302600324391701962443092459962200209465662122621177739618545412525302865234402667222047453034221227764328675556234875017722560853173770770006372099795918333616814006034366635277443363870520343086451938056982654375423005146161757153138155955812397608923447113234902673536967261933450201488404909698805665208657929099675984674089783324151154701529850521234374379504857287182649513493338797776722097969195382807314721170571375290779672917600732203062586123969162450313825771702460151335896053870481765923498587493353444409319713837942764738160922545869894873712474306562363016596900147888678359574343849941979664650717932526190690529221195230563699508387042713819836645700930351890564110286452868596414624145747219479432645130400011005038409200249908255301547750026242492857322799144856222450656834271666207935597668556223887865103417347293378997269896235049170266317584333092119085788399919651792352961057300441628114656433655424907450332756399729736254712066576797397018087618239845178286260252829357410867057211963107087905791926863751102199208438772445444807579442887633615277532477008365414670035227492060435281949487919151595062127579856653096740061283972697574845614528155927348974956729265218665280497575115280222988531151624782773235566419201394410308152770737447410442745589197741816013152994765605602879013573867560430956981024531254161229744645900784263485910332347077633982268874475896869730829672611220978332710994594647423862079602176784625792520502041664941492384837389850069119366589964801744263796393516109434270997445295417008486671410850702276254723522788775097619318786501970292176296641761983176058446416331133510723688568052794169573658601951505158599404003352396275982195497649749959938249256018645147159904836574235591324003928636968720151153351703349692747447825316405218869541271569293948673909645277167068364035295750241214791727366566639376192504642584302750646541435722742374309005180897229198638551942911382888869679671130774828593945186972672277137115348457876055879477733624771637496965392324677066461450156709544255377846820774134615115463513472803814053556586956091717601580932992737633943273266260787948013241858366403413365358013091708252106990244824819339909064217355140984532446499088488949923732520750109617496674848572878753847677662794014938227730235124914054053977149972613243922723379044080342909152290482501334173487313335193320023581681343082533065397201679272949057343695548808156594016446820118448580975096470604659714817348160712173548969846875632162783859718528608504813597874819533149309320936019799633203507608723465221560276390841241789289622153940924665049451091451945703116663552159602246629088563923576927938412663071323443590260073601186312860995486643699407938591496678346094298280804618216262467707630198145840162522249703902980806661163542836050536752944494344338483130781420185721820633562508775723702173577989898547236906058457004280338843364980986997667116795050215427533447401915723948293833383254937628610198158902282394458664883841111469833049085812394968697921046084533112811835847466082718682331624070255736475465373100779210423922456102729827047034868926412370542925536653969826728290538336277110677848502890537785132453258301971859040487900901282231599139236055419105606539056817459405897366647698190759597013750985759663037923614827177211797770099372222420885589405307555822252556466159719441830708432499098295325169264066705169358450117841901192273410729063511690531714220371208789716201653066177847599963363590493536917190317930097004271922508001325069693793485723892439914955791812891387269997455616256777597980812282796046122402881535553817604809795848636404842404510391796405621763738982841043724395609552437915115484858627175235683122395990050915837099840328380147989039545813134154503822079205265108332306380339558804273893793568028378549165813868166620535688672309904332577856029804599744606729160140938001766299287464346918931102987461757415459240850517658518587184803446487212840075170223009157491745659766791494005628183034962636217659364662330056377170652381826962559262699383765871736858917364660116745267539840673607019169280326264122591620173088052299908675664284250845308335426571508946846512734155450154835345175300592959542008081459159415514582219128188364625803401031863493503016000394551910350633839016707778963429968171049328586787034267419252072281511299367348796191234432389892510337135209152158901437586670665683645805427916359829776892636015351680135018811807814114028071365824202062713652793985086104604249219784277367823233868794136154258728819871022171293577814871147164182986186871362101383403359688885382371989772795086020798679660580210924746258182568703899032171333878478731382634368777798932189467221172420297783310699559739705274538050276759880762281620200849459246511259363637768610230267696659144474667663503434209636094057063610625802707870961614844442435129527810261286016191562486052936375423356592172255067390765317569329745222983842696939898351928942107623868525959469543469881323972547797030923424787807326606528380693955660139962555931585187955979133648931105727491210951548168799284633954660036670175726641003216738217919887796595352824652074017348300944440934126648827518582332503150620992869521501831214960135256223501070336435140157144118649587647002039164108660980476662574355899240752992644576457961649594566360882420548673497154838982629229264787069519556963216466333419735176914477862811206034237255432192382863021577542759482839283694377481770960939828726732582671384095190692789753219683970134413663933510639927736563736000788150906814449312095660945865074644150680955466889789742843590597870252996544733656407406989167420955910693846249398294468088077672481770296684503007427326467247182537546718042244573369195392495156141365981275972727456451788459048672745372187786185598279880574506294322799377284162742307850800957122638828032848912772798952724057433375905501969760267289422341463499028412531192777571592615236110812911212747101933884825075690489910926651248183700411141787363330375407629934827070555706353367344858553797703841374482443851714016755524576809553463622162216673798145265905999467853104046894425156447467312758055937847209156267346891491711764676098336911655175882467839110087870402429149474112485214893542855128592049325520278402296362989768571020112704608318392147346622028812086685839743761698528214222468397391151822322258254751735496995819415614506559321503831988892173401713294601991107989360678860616600257416697356476050622423873832179880567786706101962622596693027902099707975249268159495100429590476591312085802096957079041761632800392014949416462614664706879049500986744229546280904518522752155143248932503715938938768798450578005486125199921215474749230614903289919027143347476463835188443670215433680703285963050127664006228477354508079208918461710718297347780257133599120558571913970191132603335009615434160475202293011931751036067572513178656311057787317823041100904145597539555193736452977128587709601055466542935705230984021439385545652340579104113424316286257109217743370523312612872818239543861684862524410336067718293718716544967243668930293872878253983460147545145084191040845465054315425028210318555903974010838879454601307852021419083632745321424213963218805671974809131683708609351417950228884729152621197977326111077715151157229716476761647946586259709821619622855103426616959699443605379678890261802597972444423894185924023816431405452390769942640813042435937742560686922969633124624217143711514443823418158871571609829994183339771038375194342477135542210461614615993092583742135559792882477859562621731322268659727115474572831916363969701913154643249416378808719050458078413598904391612489849157231417084958643253980754733774545338243015699754282748407278682553284395999197962948324637953036868341666122148178440728498068811220115154869021554457724286430329445012765073372292668829501736554170304749837288584260198699851962692086370862966644505410857861592345663839293438966084201868384699004191026602910854565457183738197638450229542495998906554092769377505252575858688905324935760299588755204654189052455082570845043781622750008841534986960070054785699495619712390562685677016343468151671815740507347352690772282546403720179138373557446844306797675915085832961885067966550052101327899407800687061811795860034252540473243886357033605087927717601410154862121040839572256482120248286980945485607625215035112599320564185725336756281241025361348878615324780396635168768474829814848437404733220053682530255596326358073303691207391814633340301346768459744605747385271503919441077773922513337130497466563963845307819158039872296652672314471626806613555720124891866568027817937383217681503825724958147679209956051389652598530785764098534472244518597517104002265414979353826200598798220162539368054922903454623932210011629702681827736360745407962389369965254881850439630879302788164832735718165578749715013715237741638408833971010424322332388687218062853869609361294787646831590551659164509449929399628890405755749860845042750174435301207379046209827712424783219734318485697410792527324774583678325365658872554095601686372689694748217687452261786054837596992861414216068898549727127965209476423057488226908027812334454890685453186816801590566392347861789999158194377297295377388129135489388438053369584993298784715767196671902004865251632194412184814040262314388736068949391439406894494186736170836538803793635113084252413395459816064335399119419734510757790183972736343105223986598900726324415611641937449866226921876767054307963113301626452585620560664089141196536213159391225492281552875264017720160593417576489621208431045731629813431060826300253936806930790934198577330214018840462345307883977309762792310991855405082645326355556918250317734562177572299787027847094312848460828934604261776023890704144240968456880418073372165248350889549662578566137259132467894246180647679809595664132086624946463249810948729512535890563955643757459636721706206490069256758536598155333965304388015194524101541138051299144197036621868574701422576521153956947691096271757695876874118060201412396226717138329431758534753919049402309694143159886953025201347255633335184162268311372607029441073041756715575440430813663713991734675761293917534544571543022384936506632841408780524694677501118318662122017393846454326595071977524787035758002305316955484950818179566209046936209535600476717601121080584301975477283957393872142428416171939883271600482877836832969491467583097914250517542722885706169325085017098240628560531054394368108310799737395434226397162166072630017816955057610694866283809330158362904065799707154606767487474088955701366017606128658921962353317550181966304568725396152227890430894253167683988669600592211568390948577737993413102186600555266597526718765583313050958282703407254756113735173733898017853320081284059375211118242251536939285618302150328546129342121868881047170285718517501336499566185175438481818181386590108469621486632299476290420617318917156710316726478925951056482874000067863068506482033497811420117815316710822239976719185161533060805648020763337035693960522480670678232453049736060028787257299218314328455610276986927790965742393737266259115996774676137766207726784930389608047551334892810067234915114726854584315888136895387067023500107347619778295625092853246291012816492946387267067782973317627910197203408350345108966036874971717029248866437602128254528222210190911567159470320078046833000967040858944898254583576796235989512147526965112832918498568319558583875805916920983822922251704449065225892760963433427025585927332029507067499858842138942839453264101257787153328020202298226146769053424555529329367528100342585803072359800402237263281535243304485585026832614316614124170461329618612940016982792066045643123783445759487090529973281501570140289587905592316567308426162093303623366084475306284190540583985175569800639683004321911063648040384805697013909259049232766747709205789605312515782393420016589260814259650346390210757447299067699227499899013368196749547550922828987341380334573364810318893028994806707674953466954840936532461060746116769099340548376514334273326639986907186558481826717858484700761333744204461048733246395644078812286934026881036530921182136631407124370964818315272346123259826554448483222831367967448233419171725614871949560039880498641480524742626418789610929104559729105453882082729743101718196391276046232391407415897139260596486738977250472279331665150765401190831520036740793423791488708827078249219760259942568360921550875582530733037601779661153742201357836050847123385720146552730968017262767479185966136070071207438106651495392016295068180821279859921111589926615252668331364459109389498655032571666332007748239598746557014892972979164063576202014879725573784500660353995785078107632482576069770149945402015429263249479519989623960460469850492563555649052456652789598592129858312454661585044478945302877127870957032782688422094239571813434765640411925019710203914089753357837936367810664601351363395434665720122266583315578033722070636629788089452837457909602702119366699094272701883036444692266762485040353855904950717562676928542644113876153687063798827603913633032952650109752002991229479315097859562360655554455642507227768069910656086747450956631316464658718707968427388857691472561479678973640841837933960980672185793171849956045733116637519147308054039418832352390445789580788853117276300044047516031040932665673478941875316483402298971349065927269646393038555494173116839406527777689410112257299286697985258821785730390705143022889125896289354214790323447686763024359793716309766214590483812441300821910783453381263050823426108564809056320671844897531282519323220663115738785250711229830809848517581990844818453955215852464455707572550694081952790433074458565735703346123313075841019306740251839982060583342668575414008039541904340062519618477493823048423632585798617622686331713497641188321046264943321218213204197769939722509459311923577844948452214609655664373083352652358948333525357064415994830711910435317843009044270483043832958379702138496861373093748905265323695010795246409883354659801748270158107391558469364873127602207393997288409082805392584199365729448718806963690680897756568789250248256354056013347050138607832703187053708022347697090934717212213926319486746968035604639933155739762156600862314402642943974295426033943154722826444033041876116329910972106116476786796319018205740198550614604784048769318572804096081751783708452057552834847832950582709327993820591005168169085487476985779599714694397485037822515092958884163452881560331584678315783094174226590089972797752578146208249704599791279094340229269297088219044169076575176051577076378034326722524716425821781907170707469989342516586333183064190632460157575748025004664885660074499901786721860359907796165854555871359654537200357114102915617667374400154013698062219032228311327440112921261272085126360780718225015628231235996215316808128366516488787188868010358467248672448513985735875312475414636121537521623225507267358452929211083500391285003957695190987979590318753308177995626067553654480866631965039770500236091757148274640641274845964947496908461374852383549239823311136986801139554004381585117198607281427227481315788023712672200137653989245205033236979899081117858605382455045398783474052721690280859635613311340228412542985314025274103283279510416303806795615378434669187695834818142353897039239690064513101990232131778360830196604106908067787274185513283960604714641144539006773757845069138613262560816831066975444914703359151145559258570768860813330688229840391707767814089567694874902379525080702328167910130952383548494007458392626058487239496354243147404774097319604634522982609822600397655841611585908856576276590438807668586336271678993394526002977585004696703157684705632502064177774521630283184923542568635818930391756084648191346269967219336432719321213741099752993407032215585219797863743842788010837945038772180720992867050458668875796937514304967028954391137281266140698473164062842203578323883078818622697246871221902528922427343761102065121665778021441750209876642235327719289845936510621829546248204153650406344788878825047691767441673553025880066791228076215227211818557909274722378028428020649619486147916238471602792052400349994829764394719753135089594553630250802861959657659931170274932551457699355054261565883240988132089970698217322332905485969285358685962799131530972774568962358869260164883552229211620587957211646176421025062111348342415148643083341182516057141109318381491839636817066084462802135474179331717414563689482461603877822368385637608547119177729293497877212304417468820114597090332130315622798570801572639302304748786017941131092173072149841112083975407432624746794047400734045133418240692932753792963603504610344528871307342183366443822001208461139542017970610903130047171353458284539540954416551496917634442926019110685156108578478157199926237777672501180223938601950434762817587208092661362252960153284702082521486833251168282843552245000832974334444745407746643610383577610727236722472104854765217483209135332596903576891111297516333635951446713833481631162774059327107976420266000954884917424630254789350447527583921799642811063598981389873290968080228874918903149666879871611492808351425817559379675725786815418617273854712903895130527826702288180195000772385072247504348286886871822085893825775608786062680401398213036628440372050368455784223817241819856599075532987806242119796867332721796689880576184588038178980434065238673428775981986046376957857790101576072060953639108633601441982310820747033244957941180552473020487814781020625579148720192640900970963876839999697414179543667101593168848138510971837645722399185138244187000513250250639641091903307167695290409484473369798893292996721914363956432890735319755957401737601482942265918689329178353472080666040230549893798505093733742530433548052708812611388958689905222445183470688174077568808423666179200063884913701386294201212613779637419377902137596248781808781274616100109751474606305237829078359534069757883714426102674400637046672386911793578956524714182504961296388502873449901303869300241358871549519240869657983895104069434072509743253563727956484006053633668991078606419080367340737123972874616929715840611296409402629661420370339935161112848122040041820337203050862830013082023915896514951792056090771772975437549833981805849027294390037864371660330067856926213589916539430900886996875615667417369031084505962451184233890619947240801112893914987257364486910211135309077057659099975744656758790779380417672355685565018847346839692516239206958995618045711896190788300596718946205556719014067574801769931473630167285817090550001611144705843821491249936005505553666558085684241338263664770069389848994099278129954972508212778102228405116705300137485247885925386084171414428341311328404870941015726938122770838967766362936113579435008592685525775493624548468023477452486104901714859154484310244793850622813349872979524971081670722945602390092832981759274772705286362801482004536396751681129736571735098074358965640495115859992452615793820968387256159209468091159602557953554633461676702019889065161639106912740128170034508900302711933076608641893859794612493256200326980356303541789753073581935189251957921552440602865326968202740993075424380818170902460947396926524092365959489837795409992121406346052008175215003238898514698246917352859410869375749172399901198069004304309798579437339174107885491622415543615874794421406854479185208701707611653537820249197175463497383068113753554360652742828786797989714998528402241358933530526256170633707322589920545845078410377930425167467155837653315731240237476518422581285282191429153785617258694998690770705787582812475022844941766430423978565484488361769934739569361536122454369044932619050742199137148743865112755585606466930173702017944878378000432002100898021747985739154291482636248512809221228661264251585794996845592678248585090301657603864966151959724421359279313493386769123016037601007405934117665249434456191512554670282003365323920341679291682496161871840229819786555951448964837367293969770425303257842106765208958949564846020921477011413411112807592894631573675578130795951219074087494868892039270885620473043081655528529851826262283104177680570419845687694286226904197540313196667341001250938507212867036616749769591887119672729070073833691432779940368311324782573712038985262666192951393105840657486939895331309741729479386445499389539257438331628208350630162811005824804214188284480889399936583360410878153982272796733338926029375226728747971061382856903768331451424761315391200478416998822641297280846293445769360249212617000880565306251807864025735603821310905051335799224443060429411628180145618593706196342282065515958612643380927396801299918063886640036869769478922650582871940885553716767617831592199762277284980990333250110539444088740452765259381990972363346951534279577839749135929485650188718145989806412231124034551224367194167345103103100187131607635806143518483595497120990890982387901434210317026859236719550949848547439373955047988275121146309034311935587083847472316039087555986633891003600316478354320874285462989166185906142623004553171263581367449225707624706878054192921275977358080963956306323532944898384687594396213092658912729515394651370745448520191473106149465628899622201996848068353942956028694147254272926281269323200553195928706532673264357879238239631263063181974500929364883763535036468363884690365343291187769868004181335750108777518900321496165929811780084340627480661686079081152304121437716599367134689505665581248802439694527792703743951798667545037788924073556080891855059983066250218818905095924226248532294507255079832852628637284012503063648834683378626516003722020876576960518932261999675277973990147962561280154036541119427508324366542828366852151859374907271352441326315244993750503818161741142935836532704956574023427619126435146817442580746140360820975841266392445399844951200953740573803576386733530536277873377850962399572597479660535127793977541992690161776588029038489251732144960618070092553618134994189395425346883136083541334316561243472141412690850169472950978559910866383270759528980919894114569681918393796838374288192735288211338513344554523949848812784564136939136815800185334417898823314753415233798538698388872241259674674034246422107160468814719994692965415935030293320360283543477802565827688571386290935508232835168782325762573673764590406065553173146570436661933126674847342165843250643267134814500984751484898784920299740331209517906429312288708375844146546943834141300028627376702329662570289433231097919224371285435922268797334321260236079181008057660417956347817545896773486105507091344654584635867333233868392869085872296252218465114680191479948393956101761848320648029618013070465595930457855299565681386215579631116129046200311758153722656154062525241092106742293372772091233375303824528576549140255386672421940244460583269417926967679189603317989216825961156686437364815258058949839504521293401281355211566171424911182987108082135537010185910280284223116523517913975068990459187688293246825683142731923145229600250224715536773041912367937807147845047359975699006398095655775974866502429275464323237372469896054995751553096314645913784191413359124791894935305722661160948955899258371517263758757972886628308826266033214746390425173578605085858659068987914669715120203123761105395593298842019277925049961996174687942810034394887508417468396973462959036145072666611528888795574605350807704649303737828814036539310485106979964887082998080092814209844623822814786501914852832173021141885158853820062964968119736570198747472934972182208257816680091007787535691805746485599861117145265916168697079736479165184559686168613450183173622963470716982483503552776158583775098031336551792709025777580627838364267300688708814007551216542342920664761405994603963871702990247609200782461356471280911302196131120567866863460552951008223351551361338350764266290799390785772124544433967509013727731334080953140338344486149350533397668747798022902202549503693429290551261711117313970148997729584859554195153819831067907759843253732775855423891187080401697137493234690588064238933512641580620286389163138800914662747981191774773145845145463234153862164155412750815858472294648790796459964311577585119213547293649388873256960227643856313475751645511274923167630314023382546421962391826703686171003462623486633138379308588840690332607339857371622693219529970589653731633571506573246402564108197163780218279485188620374540431605875434020521955264576574088507061172905751988996293428685324515455931405098894866139184621849307263733268396666260256971353032107019673563926727478556210070701098141521702109248180971409074282518127368355866797104058626788995746621765272332121915308541505367175181709905867215376645195982028378887301739183051708307285411169436050056834997370210706187918391502823353926621221897476608355785363047358505822434043607038551883100965386638373442586473668519520866075625834654576009930584541842663725473795121579267656707093451360562873121282344653819044653253578350133981283480848130298438559662639973035423957983677145034744627627589615272796973389780379726942691598641772505206921286296940577091341766488651289241613237498975292298336752265023461926356838475741634610382751783126307581837081561254962985801432943121667971569193727092576172204956357496562641228018708686358286998318862599819824659898653710916598754776937339657533435905224948316985834838039005933603039107270390487452987566404609861102930802009493716459541239872002395333930279984876081723689477793326787664006972916703323944200016652675715503257458660971682600315428400496495364675903653449330427280299898191052464569922554668849758392843351734313129778273143869580860244842518725655188268460076578019726589975033619870967113137084415820077328434112204876946163546606471629721312461105083093551512886951103052699116676563793104966739355061617296958407661633660054688707967112473636556716955759402436829944121595367408714287225806382121247521173301967969104779703653556820769137855975887677780848154777737552081453616845308219159251257831572627487876080044347201523801910743240161293873209680716767644799684760284431685129399020009525702610626486347429230238039653052434647778550023846437780617686349669104890719600823059284711569203718318630272081921921175785120609761972583387105127922997395305608541222740446766981478046157037112314954264271587593970550406500237201599096082236744569426791976549134243328435344752855536534619086031877725437065304092626548872196310945267707165480443525495765659067386989929142458654326191425215005604740786221754864814019182574647341469499656230235730377938618766754425808504507360543202376419461438988549147508068590074849582712191363310637714839684193910458547772181909141188862584813020726117296700656735458805740744660021352526520657910043048564377354756528227769630317582693132475549026408190853623004867098798582661406433809925301996240948913881579390433893642114567220288818146501253477956977080505637407644831656694114365537004342780491217444618005402128197035934479280837233408620030056759746910724894985848314631097646207546549526561309363042814714576815672849102023227277281451884368160318727206748025024410879395315382695284143889220991906313833377084197640112470242783375824509242382950332604390218788090158022951610619945964630576160909950524949593377528250500964187044860357530280804902178323586794882398960046417469915752797060100484938509252263396862019984508918988924212916169253510261182373826418763336994138373879087214912205780907374223903409627534381262267550944145753939894416680490391641469561928886964842998501445144679292239488543895510219158803834501167284856916077178447136670206079231070718893333835159483019929205351628552662170663684373358599994539384121907049338842284244354669883700775313943282909957725596099772906492694169352341453166423530009375959201718660410486468555256193706171232351274396754697670393471512248328648322532118634859288836465303048988986918233143052603972424440417851627131894650250439435315263241580204546274205884999638359992783322248348039372770506323331947876358137998130579619071274563721211026007787919989170837545154356646677378981138961143249429351365173658076815943841432506364392179290809019892392679852465083945426389449360783414452013063771798807031403950136716426447388591300327311583571881380735657112707075853938022205477741917138947518302480859224097655490310722362840129275803349895353686807131358331774638589321970520466778358620946842581437726044179505136709645705758995151385994819295894541174264842430910565525423164770834277701008312268510435737190094711548086443322724767799592114201265133414161784037641562658010895154990960215296396432178665564881119646496372507298686533819149048008349900776511987866978371049392732994638989986984302242756386245186187165023799891050472697675633935560909239998242391490655168403461060839483857671970388884288720748149779129097921553590659402646254301622606978812941460821381044897390862606189589789514774556600191927864874223467243004529386793421845121789969097494993167498182738855009760119720853013650344094265758532516014112523926069229823914681214433712181616969398515539603015915388501432975183150985714057986987633219477858631127148700825308329365197127276796287622572028824311802288044342575956766132081747399780752054182923605651567646993562285753945192286418741561053737809867503578575731661059896655172545622097488711078879559266217221472022539447221530706838145791425726683633838303336852803338805449932578568790158895062174523969875380079495674252548275019036111862766820203657357530893200456294950375785868901337730296905217082263180018501678644669931165614275848232309814144251536440135144792571957157376612527209352317577020545281110182462189668538447849557044715280962245587619756515593367199598654171470990580745409627026351943327207331441320768330593613652164838053061423438118355419648441829271774477779644416871437375689597292465672980638634944408437795179938663231299551767246289661256040769363332770089520425535994861154712427338523490279859980189535163101670782163604958080566894933372541938078902714876882112027634321094209988977825642036962699343788963810417298184656231859483997573074154215984575740413093544899274152867269877706290920646908813814583889094459534671493271965672286156051455604529972983899658134303329651150001478279669051673767470122541892777074150032737465672555858712475284419010623128321043353721547460451076404834192711528892083586352355818930786126235049985871837997331891403191132132405645857421192981031334742222588250485697209792208945935435966194307937885185101315078286136012997760727923308215247530425474452612362766636127845912868993794486673449808808742015470837141824923011527473025603856145747549326438013759551048784646492068580816965498770030588886436656408979838047685596271868638091034986311894787345438914997419755727487649648547733019033401760128944587250683567782060177226439492008837968006486939753726020526161567496762481495581264902308318072384338006420218846711075172219366762731605554200241252751979414976888888057195943068967831683612358137874058487659570367903196034858250807693720380162093148766120111713205252532737378349463470013761122734987812051181411764815907137449118032762046329724002421316347500698901670983612730842832506201597218344981381863752746877416302086716840555396692108663338748442747197029140300633856890755746851129241678111961919187718469612753470495187490075135707548779179452911754965206352711984920679684458606398452890205102947748626032816924947253392137385531659050896057458343702515557561315325571441752537436700939362997408915490867981495916585926308286324514013042431743274543197587221009039631349908094903374693682449327406268872066105642241026415510342230410629212121838757332621429408012761221850984167582845798936430625273542923663918432037683314667275794234070555146553440663942191819060414199588652690722870652651859562162746612999154012574453127331863837567573858633244818500089252956830695977196554993283594970186852683038530259270527982791480723091679103075758124966112675962104286970414663510169926075122709945361384204299961397508592722576634099498792614087057052745535764905642048166071380454239832440065342319856351631229132428468849704464300565224510522628977394503801813849253669372217455645020217641128379700423265583206176297745539560544561804691587988763561338239704347617772266982597185882789467432496965448595545334333244182844514787362337398097403644535692051209707973412416976287500035148971701986085960859879630062766515681914816051145099762137183755879318222008596830188557819932122113792215970360762012874571135743352374947627163159905476866147704951284262448839642838628160805000601859617837902409455064152756023723481783774504174135717028028141802836172951736112292040762124103710917614412514322393044138177031364033082075757012628739818490796506977826764196544840366097831584873453244029261339663037800249009187705969699815565547769178207419247028542520758264923662861048309473679013594460367874597139725524397631977002962420065818805567072918242131390178024319451523725746594667870581862102214654789875350709060046529841576526313874800457191392647389069884278912833929814112621118627666880332045823471536786177150211753177633086291655944740661452262199587897712594075833359107635950996258239992181619128693654078284267194022472206108413953363212283666000929615137712197065024741010030250961560394650849615281706862011404814101313822011580180893637316839720235881834608037869560517757822674274005766281409638937768847808335017384922357929374486351111681386437595708220202428394777883472150050561403135601126583029701447675328837805836556668250340325684246285145444986262140105226598888152718421398435519266957930949198118763686676372871087318584704757535761473919428726478040234072273267650644901338175237643709753582236211044605955605709344494629755113392507906047569146956569959323032681371089317551013633057151041416639800174355079071218725302882883318310447364363018122575595008011303142471059745821666552355282383503389744070395760636840886018783188597604521982561099351794566148183330476930316217252428006765585853124170900002766461110092373881296205810332331332235314809314522300759396572156808081176655693672101711979569627656910131267966488204220830812445514182717983948990491856476786835333409364072981102587389855675674614605334603236377571530564100060141834032445153625555975532527387514603971382686842864226673599465664157792404694355839089664966515981058684571525448882729288963357822137833363917235831751215697488706059364637877083587853602943632956532727158513235301254479963533182518416891488028568336453889924031239703530094054439552688561815869873757278817739056052132220238924903585244691522062857543369631639976866792992990645888785717957982472649129011162908213617848687155044740065715882360984084769469447668528996980761102933318417428326696333524652809311042946555151796041692660341701540376930914542113263421304840347984215383634110922107932050100275872956726380770977364172358287771225173442034952306383812837595999422571079603355412139879043368198971315349881153620289506383438833313352186888930541787233975381507662697544604158679932120718326738891205419859926253784429335754870605615630979573686597480995196932594269047237588652903742402307701370469156326000645763891985434147797584668784628843054098388991167202269734545932079937297205174403725119138535255633108326209804902484152632169226586366211181941858253786384033913338219669654818401303341500328240882820909291836236422780411654151249280982952898924149607995491292261824328616501132334785376551438835937900443887877558684885127511710767507467448185744656493794514460958893992549102380137506710944683166728315832963834454382725049965686865295567917654835264339068046830384002074329543320585561647204527630871055961969134935922660174497169097438147421495667840161588345082142190569891719732401226056976700661126187800312173641536728119341652698247440595022532027622976325416713630358680044451626198472579342072839528094757305248421808393492085077216486796810930441188254468817866290238018803632942167603291560884864869398837442019330974640232487762855021334881586753490494934748589800818790946182861294564345894485072200530422926773280957698838254521138530119322126352028390650307651805589027310117504992373838646574538765502944971526792200379291577535427320521567598315345294605274693836505409807297279868166001710132206887447163744356997891652826676992569117039935036591935879803345162250715111703142978870364215194882403122162630759683027024635049267149038247039003460526608348085330933642379979760250301606205260172289299332717956907072243315053546906761931279128443844184220260335314893630190880870979340725253516345063810357896724888678028842597164684456214623965975869546486778418590891697874884920151858424190016002369566263036277437066579220157166070612516247956004851146099026128865235260305803802678245387486525890097974356134457918015717680530871183230262650801371254563826920600809694468923874277891115871973044533609792549712808454229910121604411865516371139986443668414766981434439448050928748505923824631972408619426944978132806726848050140666935517359606574139947779435604613006761328039893138966381177501437698235891726912709961714322583509987158887580723173227345057228250138235596619117043816896428139405043228028794458508657508334708929834245721259869933835879683762975116362312475600348422037232711212468327565113690386346614656317949054270081914385853657648008370903777233856412524301960556066421342897483969647229414607329068270707425112296477555474504119170802626968893454379197417377610733001888370361627105459340646770792453130710023306944391429890121277968573630140870126804150511703961417617410309053593781002228705723108585119297287595968509016571582530369373348159334420376987822334786734293606977058797508604809772590482598132750483484721579334343771849328660031614759097420033720841599670849643717961573944752058808726593471955667891823090495258904141466358783189734443270038880848990022843024933428215375688510033513955617831920182552195261190433379497721664669485349846028601911257740245370969012638200415043976815340724482364148962926159834361877929920670618175507157023664904225685923952908560886806638266983347278627336623549882645518606428931067368748553426068746193359475125798370319205259842987834131073954362003433708589255596653691299747496887773331934049796472648780029170040424299379273880184210806836401211335263685211719384453051563028956807605747202587574367180688924356660561548275180391142066573467863941958151335085605981243026451528595258470983957059585489155028601431396852996862499896061379415807832398019237269969705297708474260767628029327749835897522832397561530269560349228055338253626783106829026401019290917498315915521016166251691729868421480347554459792819409499488401259177377686527247037663238967645839448158463741421842253111490688594853950124582654546731112662354944763164384481465981112033519520485974532979448493090120117925247587225800958775390876373038933606982438211671924707981672968737525663547716628826759817553627314996437868874631851733643674286522499947510967305128244970319119053647591219726635753583422364733549590022355331339008702982701957358964794956359468108546122885927870241851063987818149953918087973943347177859416439812776378714228592745543162805141217853091393052983271736280770680334131106980016641584155605432674690008312012276113030018242083061705176947019878398605354055785162984796856295924676747037949256116968978345526013642446485111611283800756033916108283497678609596592897177089168462781713040409324640150398081135794323188094586832683651761273981104574069094330938908258245365492319822170670454399494234419753711902026289974410804186506821138879212551291938465333785133855541764901944765587533419240213912179267808193103334089513225654995266099649607859559568813563835938317802866887713754452490655751439981445879182790360409122799040053773081124174091370093903973748462408720422663690869485632911477565735746977353194856295444828456476714408554921139289403973362722673644690061772621827551995424773940978746606301219055014941057013524389226791474397694445680100012932099504297966503203377748327938074230967470178372254506876361437353720318186588364023292353640608228026589364683489931069116980703361106040011091050337673696331510515308995469108097253290938790534421780333422941626230155813359659480919813862271116680994328859343856851320885242729185411163021319947464909341171330020469773583644754491354590342571398011786767788810287599193426135600426594138803489947088380963649999347171252637351530556072980614988304877414667337373890846938421845464234189211869928058191940418502423828353104428298611471512619065401210661801879628695647339106280836937576690665631059431492050121416513371706725560092539598346927284020984170770277237788971661672726138303070825501233630491130199518890911754501817240356029582880230285125736358306092675418798186480815767282821605329305358890089493080531878855727145425642469246494397759917074632637445921071624571590185885383045462483129436129417895249294531866475351485543585605737780968285451402043055664511118541009169767906885406329169619643040313628172386726454486224743131873994790816620699639743844647551039450482275197473706911093612668122459884459335428024999094711281979212645773696249642813697046306180716472886118078107358623061664536738728318853123242544576272354952371805045629578127259757163571603526358380829028108944398905725924108476292363819268923757957416250435843365378037137294263664769910404745933662795744868558931793731142148487507052613447699854384376362912390697719469276980599153031532094337514307102450971485394576187131518032228157789942362204702783294213857474258711154831046684515965045303318231030763706402542447555963450496892449221523617851142657631679453993619378750733090375757890765957482944736250765271856764868627304423638130506399499611840818844435145631790285670044243305009872511656932323328138307764362232821650223240422381120511134196990293008633127717694781255105209704444772846474576249369927381919388256393102291616555676350058881899763477863728261230839701052604196049937824730856059531177398364918524863712119885267830883507047483937145999103699974084963109382990397248658685520697124555149753165999267889396684458697916189508326488491859447491038353700421778727862929730464419618979480445766231753139226615194164619934092142122103987726797386990347265557744593403704442932161950066278321278290395039350789836483047490726988938957635919089420337091646601726210747220591827958447531895101866793351148020859352738916197489123343859631798411077490211897487389230542253033901225326864426029967510039349117517245648726332834830500394753518360549281292693863864959660385045366994448753999437861966997330631541611929311405356163948195471549215866208500823661736048687744027095425888253985610173036503439848090376380918236784714811666356450186932487823916985424384571845937695084801327313676120027079709632408947209049809812538258158354406825927130886584819157237733054390036153728523925474788198802399455507541483322011321688611371235818677092118251085076274801720640260888929557970152913137424677085182610971899560678329310301196154416025896992264732491966552161443829661340243483525556912710327022047885905006438786512832908335935561014551405375505776002690133648215968014576364587605823934977421374999501546418044103159531424052977574121740596904477270035517353037401103000682423971879352588371596063201199569124973383226960902040516902259323909713161831224767393433153924286784341469786469679510401424250543046566534655319048631134291860321824013339751306115356631817414307497175086574629674704771067591647498631366616712785923252951742684014224251824301163374922246674463750011597627451840296541817699979440442922271410260203621300723054719381241630896116665307166043449739885040205617296205771122117048132684903574710412025101820953122091910038521080873818574325018924364956452341276769614374831036550122454250585746742371355418861279532114814075248049508115660539171416857509362484374076326573737929006683484713834855132583805839470072416687671154317456907082168222865035113871997509414818251874777648665500498517908040413158657317269113912238111007537529091197168460690195317693291308984767252607174781571910018176254033759026479511972022084775367854912802802611846530653473034407288938493323200378326891127970529321848510247350418175118701633973653066299640055464114635692114367197051475383105820729109288117066745085429313355795657290127887702583391500048472784003773256225793182266832504692876154916718372386881696542510192099842131835936342800755472504419732059477551024493548545542668056418104458910951215263448438453206483473657497215831070863868902888103198012374670538059930702513402131433686587651284470874173054129088892280309585485763131874600373335853882622741436481153521011690691826712782219412020086404881468546078836199005713060373968069912048283488749259393364029972450063144092622937414608211167338139264847100568051523031387965703002134287909476205425038842818662046359803263157212746073811790918382456552284845093763994820367539586268315693065934557710615744760071414599089218936282376709087311593386583250833053238520642416795744065809878104443764874639195568440307613439993143229108885464300605824653463167193090447249934983466576474007946133441053275694563139091988167394327406047033142725224732052766168174780646767732775008444208004437230651054983387455481120176522562889620032002894085425805813371333409216665718219883654582706654370399756376952577539903637272476318223471380240837495275549069721753081787133371829499308820243604843967513769259529445591255263311062950548011622134648079235327124306330206208283032485323067973130938680813948860409874131519130759684205247734702805580537078134376894451669877895630629174068255548399022162513886326863738275008765397332612483226658266808149096718019677314525441082474074912473156812410319076019062299869125596183143184554376580060593134531792538680645308455415767450275593085617629079016191157195749986981864378835442695171058414116980747824750891427161384128615639416127229144316770277605778843711074242999654369360834118572205474734690209054579136145891248658359830985783828572849874383641249005928765202101821489504972587060918383490479039376875395565499106516517025535717042449711055291636130608023225703047777937531903369343690284023566605162556566176716419343311176210952976294023102749623558293562699326991266735577180913048077169509968100435915582147565389009240261593529338604897368108953655784616088227559387448399767195803324875993270821516306628638248956617838925213330159615055014022228166790585058548496428914891643086287730066964343169152891908164525420678273502918993528044284559627021075964119717748836015377627275165071844349728493812883723986570329617478834127092983543938750282500677567355533914691456626261214927059795626732435324842097913406399254359550777301698352765235364281122743185810486402269552526899702897754555203874919576603313510353515514053276987418499009562513423852411040109952219207403792723323588379288859185755778700430518388074695128145484698506098931701902544631147889962749946926265308938022605525368567254358463746623063421368405798771005249435448857565676426777264218932917233966735457260917964785552902574100847334085338096183968077367927159892783622320226633746180296670509141406601024470882390164081016595202945500811219753666356239651671599847104639110120610513411957596815623358878344368534557288756783792319748891412669135262641773807773879580314660180537439254796648403560845108936561771506092496843567849818862568347759357973609390368050641427933714096667062934283738811542371293470587833541279174162272210595342238016975710692390938199374479028785864151913465187639855581565806197089051757919793499870746872101429995079147149691325107772652454574843998874277292015683407403329269770576300137822176658257854938717343487678720342044679018368341288399341551271685226166050109435552446394787943230208940413247316330252110546389602170894109843887517837158957201450849934182201972963045700751016441341661554106032390617587389760015922562946883561383974386768180001305250716419084791143821307028389782193766453922635735393468580638479267684744336739739783916435455700403999479769454745228409917303433597128106235316209893244675182215877967865211278692320401025375999327682826232731825922957930873596976012001600099762258563521537512837768721810539003632650683772741029398719204211643583552661592449739573965864575989196427686153822364094351580348028969964464662371568392642512218941130698425208616431069814910428727974022709072128353744599844900304331461486263583037580521389534057195849319531701842000669089365218528177981860238322640656212492251713652205574139452529530457120280468440839091349711372895395144853655294302235520954393341934211624649175147818331935384193350360608915764363908495517824405985905433738640567012738262451356199335406403125233547459295516501791066580196428435704692859020677727796088670856003751452620168259400994608552470794753391717662806200718863297795525646538081449426748200582294557666588410997646070802642171997128701666371213548672109971782575996038888484127125245868312233014816200991058784167468877877108589488988121249944971156933367651825203041878624645347339263886549377346543581007463285120836612402133473827146364271765339813335730431142570378854245018342153214810486963741776472745557086930042338110882871038658338222660431540286961399496180370459102297792505804545354656782850474461487112734986829219391675230314873467155351210510166214821909728924210694659261626357825569581623403642021700892269643201805697572834495526764997321772191193180615993738826218098552104807213510680962760505064658798600812869577509251183743239340679693037924300715456580852677129471940757211291091960793996489815975137681002931918166332715268416156272684200417303207008942117614577746406964089776071100454230910343629361219971419994178418894114237315054003272694979755528973181129646437678185007328570730489176663249052800542486187176991169148425406343364109759830050492266243897863760679473176808808594440681479128239218244146040129913377995101482833253407652374452671147388985826315116468898770444766771525747237841815793720532654352143001767414054813890066812642146179562628966729517125367442246441400432651126387253465954472045708603769442420795909224725150322451221281678310337712580422409499682202689318362096839047657109978733312520617168467344535097012899869281592690668944972424858599604613444461792495486343591768130336388936933839483096207495404200435712195985910222719376591529811269941453310056360906305933325524577288147456498007614648721496539087112689952301700708723849150840713363580890240785209405447563046849689616990023190710619455640716340642337966718280392605155547296348648070453607679564525157881309927537687474568826940732613277323645072292810342233478209670801217923319621500284782537384352923025792486325474523122704294439590809904157747716759486994732020005403611588279327105895796451621762349595429144673829564757243827710902212070787110226496307287742572516852767684277002488645827031054011527575987513767091479594555527510315766440632259514528991035463842842952260995861316374015668304482848209556461786278123498879116839239765083582212225436470267622131807842846495654193977040741685785676671901854701139892905733372508015000800232439834712310389122434779240873399877817340608299263553072606054756303443457196029603432703636350734302358909176954196345228343295093455415854598296326957493239056174386007367948349550787432674554008258164882373872820827472172388969754125477586912349513198336604708606078048975836516206238059960874819547477310829906815605012061837786106489225197207141842412637377037071255135850771178416802092377611645684752484518334475141110885098728168328737958343940032232479984360769759304144455637412716524259420388917800369131595109861884022761070374127826748066192698999212099975796322912135922070135918635595140872960486546851977623692396557674347223812716280217121133012538445720216515830099339661704833253477822970219714593563790405837532941015156640620444609782928766377826223161206546494217501980059167420317706597159616514342536147830427215773845445186476231117051218109783158138840427250900147529208835214173316145945196197979085595029424715296369685041527024637385070149363774444970649543862883748803992655341829795986199996787372081070680168780037982968271368389014845010690317181445293196527598030813881767773945088176509240431844426594320233905463972049280168235149171100074681678543612578629524604524913485489807155897898890965781079496166176935144080290694495100266148974347598886106299749996394014105943718307833276029426586386693156390327548420881119121640647073051335974911222913132600436195066691125581168059312031202273323691065433396525753401760701228938559717681047990069963518626549376979559585730649255520609495418578560104856832291776906479709939196790569126520064664547509263577386555347943888181847494090706105661745748605766561652348738975697444429879037728526113052698996412241289442353711336409521156771947939881363764171946717687941352674627287370953925835538088315006654409851216747648799986130631889050977361231537881801286262075619460245541267208468975206063308452184697537634643653568156256194240702583389645367878899159011449752387338312365518889281957239377134250998222423235005989589052475349976314460938030551740961044141609487956843081921780150883393624903395698494097228081334091836355023709060354402257038238652635659624448757373589133961366017443952687436336246715207817481968326979630449877156517973774331139510863666762024177595641816566109887392318360334947466399123434498569655728030083338157795136598832585375394458791437700565181478684819375275050490131710985509769406642155591524772877689246513796016855829346616584264218043380295636107245500028696786442520188433372727022215886436775643935989937824831259592439419154709125756102832880917154560000428592770942652858849455923466721541963804169212304191121756466720446074834574189042244216954009684865507586418800105231401639515234946974437252977085388073383366053888736187308118329645196203587299847093937118192470528981837485477984507021454855586853081577632560426938683903101936443326937783972660994891720200606099860568470019086824093760060439103078928894598379007096219958539664819544590517955423644657264236450692873553303655999334408748467541474605989601022964404934194432087803531324616140379557493019527672488058439160739584863712746917187689443320242045523537375311790797130906061161472348440290538982460080035207687132545376483811162435433681402653983569177600402535296984689354010541944242332719371597271157861322229310168791777212098455493886820802561517506936387134003477685268212169618471072732790969396476797061360482345577029211938118267128066746947495387426837645632551856578592711163451851176215694949866604093149158413410379128519487502119150098032008511761508496584781656858872742900119775379577758408484967394785776149498975918942101379923214110039345052688322654233196552413800274034726011508910063345864717472404468057712853670775589460502331426465923180084890395004832922760932814933033821455250654674955655388718754514246803317458470301883923509352849060116615336272805698685547394694318320786211596786113791380415187987161165786362784006059371343093340131864541734336773597593905206039594705400146583348381417088305908797565980975450657630109308517626921888605753299511647102449974645052085370244196431579255742923190499588591256548831150295701540283030029049439686255802471165974571647067290942487913437408121817066067741581088398402881108860434905900419217076094287392359509985520864199943514336805130025230913404300885953579539871447192061608593595957931182094675089688028775891784537884259996361310149616048182447851555558325047813096497689492644103092274875568291582834399240548160357403626666481189980514946947133980026237788219321329095712847737878901436694277313948752654612014426317990423121229627779339857017244826879261417120230256037102156468103313753303226570396969744761373881548238827002996828239708690599738974827894148126166426457592457530339068181316833325087118616692500935710407413955888845939749758358043112943811244991171133248976743549628869570983338454108535884039511189611137190894174201809709937354096477264939931530562981266465926313234003073921829942862309696147887266309449379831545044631966059480986376805864908769103760564562736807808146924981302389669703082842986120500488429829808630133950717187864841506685567278787823441958338000565801390410886661918964495357955478511099154068252924605317251269948204950131651967946149476229902603605968820311309968527355858403631648277965283838451528994033039148737347532891621434374600637695738896048605792427025206493747017458240550994547482841689733939736500405319155356364194239734712180143958035160684391796736107688698293386552240315650763957169268003354232347240864717010383143725808091989528985503751860470691528000092169865596860005541306724907480357215600607300880643176101294253342234311457335682800836505054924104083980692296684558073391266965539251234022414047492105467807213318936356096566415087576395468069899352631616047851654754929771696366500055707247864198648931170683344224363070014567759027374475403353099462855519211012553920863010808485080856274868638802899375197692969247085306799164601750880766247265554713475189548366305159261264424695140007854352821478529849396257215116766157082276010429414048264150573456724609356077453056308986696167863034437490798779527813096607873894611517089644506755885496514095374578162252216963800260294133708116046420981398622626719815797017296344077185955311357826601732468138733110231780456771461212833211137495066799177578780524769440594818152092326290187601229774797963231179557932011829486632853607120148290867286063109490497109490397310485604800568296122864991837157369009396304416000688394387242754202376380533432169145910740746207927060086783944259071976527039971574201924757825805785135933789663203736221146948645085626639105368063949736178774660514887921996709208327811770223797131156671204851894159891045335527749082699854314736704943208379425133332577096791939931776775056833273281362064358041936152581382215781469609522058624586681605971836833574334463611833738532290877499512828317096196370433490619411782427889562157174722716722144376125775844265692070016848252895741441692904064732257631295466388448181993565436821250419490706174863286040928314529831418294137830839624335709646078848786365052606986784133186604810451428241227382024929485381701895608344262569155506703167335773522274103042487428604268710406313085540047173215964456652647394059396233917409707700152018352137027074263260150271282193374920150023558193302090946549621256747211924225182746832049163846154636389561890182725785663739628075932576184749014481558414247454496822648287596633251955685723401523113985821261556759650455651335659815713364668091688793779074381551272574169125970874465282025721932973286928873329537675486753357392815191406067695035404213800250368974848621327729924330050631972237192822188421080709583561180922406685800767182739988108008912610289423274823157116799218115391944153183173356011776167502386915094050182324887433807823056656141909465217090094693497559699670547874565449516389049537951063465961033878910260220170243562763735288498331461517937304557837392874593223837876130834917119103059524242323004032336514073212333889002832205940289229183773209904079215152170348497297883301351582809842191795602677533579044119792634840425493915384721523584275347314387750323480791463113788476659545072808549953715615970210876284618704870587859609401671393063294608372374360457444448623019969772303137622311790168668892424631732273449891555964835667498449140420361062624532269399734612193302675864718571427384693076767155555984948615076406047097967325213619203936666027076468163244539970392329943345041970787132801460912392764662839107925398675300914150594335491758762622340225479134955282501842358205052408719472033319272649487755939311618918383082724992509359644496709132954404350695844230431203729655893163967369963513273644793698485902717895107676909188498217959831790166000551875359674658599529631320981691978298605251043084216061502071806857482891347154514280011618033004955106130476686506329807767688202943217952485821811059473327615573283797572678451897829339984073587245862899373488057689740499831267876989407539180964331405870164059888582587146799208325791437168636763114755752842675574867259759078649202897749628419536636410583195684043436527043878778339280262355227640891026335259982523195135732098023906157067469803263037233879111978697104479800755400552467218161655808171206985764480657876055542707734857567890925088574677578826403835814083116727039195820073617108878828044060564824578008663745792957370928749998640307791276924095788479514133297895331472111315075351210142464507432221373444119205733083659274905196509987117144045346966690705307679204323234756228549729324555146425132939438462768635034894175852726760303251644171758709174518142775100308331944975763730717965061641579162675160972434317934678370241234021175574580334957573159912213922149858512810717467306137262910278544216913439249802118597129635832689638718630322068498525771071178407286176038764829457311055133020383032059941609160392655112079385493915230779187832091198902265425352387807108939586039666051689120245597651544384208159472692369316367007131107474936999387155893648487004972680441661092621747606113293257150110832657643344910845247558996989804139498537383496495905336629672875780468501589892166213726548330223623231681874637569226119406358140550717833329792831789558562573287150641415864814549830673918377056264426008764996089459023969211919848464673139835077910993965060194697722543897395310062859940641231739540184549319526217402701229978095447082716795011759516164679111093439587362512253309994488924908772382789740110977025746414730460499911897506081852193726134608886810537509973886617255014918317094069354200565688809235240945710656208311354687431871701218318406320951217405235615309083412145312711334138945016765612903020004453885634697262813046417137756295619765991626437820490316145111152556331886662338181445288651497878022149960249257214349322482235746765826380849368489983406700321238237141798734785772404927003232130728770981050351637366701698497472098492499846967428506793949982998740059150255344837039024370432960598445783880260631584996613995909310863904211979241870785819099275806860435131515327713656183388183262744733089947542496586845585537445600007844282618616808672573404399887412826062911448358781577767223320532507244362627174533883866283938844507006539306548575040043287092802732257680174612832588842394832647401850878398203758714516027585587926655033750263171204376432150703407386180699965487731953051177797184286777932336585884635589724840652388269271220170697910177678334259990264365356083747264061573008376779420932409880102989373500105395574255944281661343248618826409425740357076717898375035388570819476460502105810567945128099045063757050019442084746533237212970231825811668813517440034455817392108020012842784255265847688704126510819022083468544253049597277767597810812415796765665598204806323947036282611265821956069448310952019311189082341609161249036887204693370491395500273653618094067833507765818541173447135016497931922937900854342699370109603708093498964160161441324629648648309054356542358095064054552694577121814084377936649835957547726434836867868307316911359911619177915118811719521970691127065434684151114474540118532448158882425937241761169056186561943539451912297178122270712873056597872636959806939347336013862943357666394367109102425704060943499498141457102794688358769469384099407500053516751049055219115867680004869128283316795306030719966177934449591659430950349093394892543278359635664741500439904417330552987051152934718097015248849279110412570559115899283272204460385176659405922489342768589967174649249840584332624380783169262182923534510580194608818224514141454181980373537334771213933414759991535310194302940222339489308667731604411557203255813110492243604722757554001307883912372197957086721423937049786079350019727523401194860474184038164386597878206049473883263664534281875162533746026232941764597810395033895979232745060900653576321486151320924620426805030627201337966421247854997794518932194962123534042266884842748502569029105550385810547202135786963656485019138217949401886521900388010711873177518096481721796008461206666091166452893517639648913894884381011616591165500974023087060664321505829788800993979218100061028380421496857809722474173722964851378296238163642935922607363408903160651878373478312532683721602670046929979802596474994585055789003325568615546114656687298372070805336383581076446734744925606012132961578707602052205512526802158229426100775880514467122844289780586178705361707713547164041654985911286965174424653850454060713813453718039786456145187388168810595225089571436781802309464437362665201249879400598552615345529833105622088112220794457799644706184019610110793872564152476556485675959356644588202764369886106228888587337192417161340366670823031825517324358725122580214479494896530420561437484014012091511125040414680186476034845612807076638647084875032751635465847361256867614763853068140743510527433656080396620813458499658193029425514017017727537607728088325854030625806597032856431746441826982965377802794657971399534231845172080303443108124576844129541956819645623539439127643845151964875388996157041893093533435786920468843913465668567999736031018635602110126184570692840333758016190958944100723015853482942653710909834502774478054324937012744841674567380072623151409525207969964622218327966796648743445125840479752238106166030327019143680790279644105709741897573860461094264795833686571326869307592839756971312260506635989979601694272963143289434123981862768503067601177038583855647599278921846715103159670132671024326685404777154160370580272749708432919956682127018384363718041664599879197934877740522063917432226899380669375153899061243271280207905265470009041636392296260642668832407168312434657599116382372078101300497858596061140601899644220852352991002711321033610609243487651790430992061280439848454216833017198039000542276837283870059297917879654969695618283049631982182351252614528885140212037022540328743608525460071998712019456632004832182976725445850198142697909601415891957425200996917971477736223217912571683474116337074086993888933072112841745906388260882152737588732417295506210163347623043386491730860779036203156565689653801557543603307537736071112812688492047709267198832510438308543282716583920681504714375044480659552806361698684362307847502606999839607111142523584226535612753127754589379990516256454305513843679400938802320923045819049118802784884948213304167549009773749724994809716386288912628774948056195822543460964866543979472308659045371883841806774787235144754957377642299404695633835047598877157119285100311776290358907952356337722565453680344491609154092478606350369668660887317451871999151617489914493888168882016762078210083202364619974705941506510477041103466748163262895212343806670513796408374960541241834378080184003371282120620027225408713518836294840415967170164987498926749580055928106539953880896008576615517968094454600403508655740643697042744905435714680782337150385773314087461581015058978732660363427196282425148070623747021609705015777354732693719877575046556687406947214784922070554927122550521185001751679693486444147110462004044926737105889092901450519959386528292146593275115581685579908766648728253162326385784269768955142917647920614253343561248591723708521792976694408551252511563325773085956441369129177256079860213929726539488357176262558327472799339127926380606353039426720391570382691125185733458708101937219403080207974003479746269835173486068215875729125819302470510228781591412639386362730560905367429434764403796778803037685984778751702560768016860791446481533305693553612441081819270657704764145201049671631407021610319074900616870114675268507577688288966462400381440860184182862338270931995725794094324361598491783202995953053937870382132088193479510259792283682671350492535413125433423120131541122938163708569676744391506427189660551451774027152561165312935579266554359736518594948468812410059473260122723609823758091579012752561292014285398530174835300684069645031371588327544215785474810187986336263060304425535256097222283539957055195209973719428798485116773478137443729444881583529842718111500733206926220902901143758022393941008416370229974335841129954315198024677871081907307841143243839783004903336339071880634917706185070077343556403189393219454243280453965745755125115281720174826173615120471098994780658282914708384345763439471151171942426426620215559032257570682827664760317789985861407192365879916868399350242729192204872065297831878175083298241902560281790246143900835854199675429672941742065722692659926052249782893788502001431964787419338830652627037770761519683135409519423428782746313093547422975315563311557835404773472690304324343871463591570909988698859727556155152404233354945397110816165737363549712781991993693492459594572753617359132674114120667739162500983688203027756214275320639301333931344000755772279742336365318675113304885721058819479218747925489714214186010402899831984389784038785494418574773363976534912364760855914858018881699872524755897656986083573592642173800886639813837512847044755847402150240732120586100489589438472581613424427709643528631728138905777731675538114782833188046434557673027454222242270360207190816825809644883757781174237303921366673682136323460823551022638645896269798735651470143755707298734659856955892744003087999767783509495415306442680638988504851396534925647248846182842472697354763554174937178453765888939453005382808752438821600086454691959886055697878649093829426803600663308951990171735864963789422010213231456469931186890195802389609708531912955742389669103851528370254726155424162030259966009746510189938934914861150381612336925411335173221352467873490623680570554244859684314990976490791561536162224110456298847463182756021888906873795901553368123866681469477126365819286229538379448789639815302049029582372477842072256646501410007150104979466186533075184328713547832833330077497630194367500240413619730560796821175240969032581671431101408715900942614266721003904313880996410467736736233674665542921588860439438787764653468163413035038737489732482954979933768340663447143793386117431727752834217561260277709314973392429728201870689492704731749710054242336368486270509825295390255557210582620820312331449269188196014089449809229632858499592984834433880854629366134334279693398107258227930586164238402755424595328408446630139762786577949942800793746130547587387113838307869185633143547993030331260527463765530244393826342594963204955133072788172819261612999959022495977613176784033920190083659393048234552637861019744612448310420544263387307970235060037023470789943187864971274719721293012264945569357447054361837008236186879800747201042499624063202637516435293588452315159335299891957602580135752624895322528036737473947071065917502829693654589598471709772797871992640454860969094169837431549474521441921071848702268234858590278065484565199217753381103870118694425031883065960580239896659922492373546257542021293988022114356317144313584668591350106797951735302933774885491064835962566862303959856444439542871678142294626780168692671682367574723670994586581918974058426163980702375329390903680149524568011947246542236609341165293856015344047171817169415729961479227934609387682719134815833399955726743487121264518277062149679204282155195718597060378557444827855492222264207387753371575313809291834950525416454830867477929039708755169019221520750550227794709636614017101417852905289592770794132789530563861886267118706511982513767376854094408476143715519821464477651846312051545278497602900039637080210308699150565419067639642780889703486310225505912358825741951640865056698391189007230367294589500530104294284257040697331612693264225691506460142611380539605471159062267519994028717344079754093728236263900433293823296628049015249794421198359174742415855583278846755004464990229192556747649746021196076862624809819284223156713679448350802897399847307354718889514968877129640700413834051482828637664293463501269398566007853752052838476530657626275421333114169548265856618030739920336226864907300035574506494861487695812752783259524227864466572724745678297008154435168689125987064033175294363818820915862822348460647641674860480315073988498816435276585631040808536071460545397082037442857074449092841480324199820317596718518902294613233418903373340254712109425331454847514763690222149587981435424138546940501152915341543419487069667589002144376615960160785636122047389700489362353255761160231045072518478416164127380181193025254067653437530897793642013227112406695478805520253272590489729335205631079305295005292386814883926608366763722677986975463890652047286100572738140748343421960837259036057428994526173601244175793312751081087564204649098986273275433879104875847600339178131701176051703396082258937666075445834758378449743320079349864083645138153680902300155351682713173373945736171893339950895687190636364841167535404846654400597005301810736603186757440748034804426319648269367142335832498073996903975407134468123099788027235519050187023876253743979115016499664595137591245185316946149834173611116429438799080088984670011119624679630947021326734149406349847852764585982805509244981777218168550253057481668587682211435199817164032510113757601664388536799252518046958716239277438115631477375939038068026840862862681481199798448602692337942842697409050808469717300724983886384391753483410083465714514198945278002512020608680574904296067964863237199010002290631192218452629007128417846912381003640570956854531373580610771158730002757914391999958618143076018969505202445827166366171237382148169739264634888898961033928262314074591339719363038238082290512795481187636930904097788623774432712394997622009527415730556561611657620007257918350825760888723379445911290005120633946998086733733180897123234060441005565536601712031795528299282780161164365302385356514977010326437934137147184498986884626173228572111107312207126330346476065369088430434365755930729413788910613544795971376864632306666083450939474290427720593084744674413773341026021355637711434385482308814220896163011632352278458070344374550823582462409712625357785476732280402119337518998956623161522581049191421978637780248191261954143493300189876652611489032562973416443359692872830126839805488403942278553874787760889613064276877823582009919315302931370604758222249595149164914329489281853754102780316977023321064044132949727687672296429181115413884852186763386790927651362342334233398516093007894635557856913944501253692958681620265092964763206502734848195364602216579225978824686172919082785928409369445683351526073256077920291300352995265647549881873860514726907012719242268128864012020985132121146217550532294980362613196871493292826990934003983978841654295237663816744910600000592063596777688883200919195706064721412573356977729806448304647497839473458986320154414986616100319174895467880797562580891210280983941724470925647941737507503366303358827511197587868116260218129230014498161183026083292259417302125069887765390648756316149732082688141061363862026736091812944343384343113694388450806468766259559731489715983892811486665713305158541283896326909805321008931793336437114379930716928549509269413476633554787828286170812632727421516623705592640073286921867476127324941165352896578252439079178666213618565434350707987332687758312727814740447367919598639979531872910889469893459388118372300157813768993522889833870609756670555930067778987404504384114683957971510532499309422144299971887120140800684017597315063275267481966687104791460502490059906838178455891881132096225990007527117045821969863540414474040330908700851351539523143221145589815081084302363514154560593950877657842666673914581957491056882703762293581796539192769136023456601015464969985301649518823940075372107535281401741830212976961645081400379142942954735379980664080226361855139377002768841551793503145135738288185207678662469404981805498775734395121743213115869092179695418325561328208711316331739076754878843242845380857967963157999576555004552844760181883666393874424702831785873681016171603964773847700065828681345807078682929613467710845186219674873613522846642741058844057404217518496973621841042612706705389929213312198457309644031155364189257841936278794985155005646815897179652149810456729918095928338640672996264619906050478809413095572791776501954909167153533488948444133026985706639028884830416436708562222672097382570829561882805249514308107967536199641897894575359755374980363345786497479027471258837359410471571073810148612944634060556602443643384982838624046025109715178721951546937934095237291761092842978510480028783584967461289888553758460768915585424852049781967718941761426281523773421265959404786589347772661912886374979606731745318560695068103615648058922177729006821949984717180191238246551930043626789319062212251985538623043090123765245156788535492611122039897469097908300983273221472132181478482453340923856046954513786066553454685433046805218987554559957588988526660525820226850561850176862164045689521997618160360743272424437038655416389416789910175656099473018131872521247166663141504192982181827913921384747187693077141152550556017175463158398524409104940199591328049911322755963592713203729773455892005663091722733848300641143384860654566597639532286076470516170189332468349819286454043626930956317784630969817828715341341171173991874859563728277417193401047842915997011620355774024594729863980144739053314243216057565454326879109265535873627478850897835958288333475401465646795634719976643324083229303752729849952401828946377659795566985127252454793620076104505067742182108960665249075102996487286300834786149211454219732975565170545148338668119949250295501250572370694579050027559868989569623548440826687513376483187500454747264376521035001373350817896432588636126320923151474724539470719816852886309667311609176645045663374886069489088040205061477471244181225684069893170216349769234537544907638044989885847529712673791803723025185409984192479092542268231131652762195559932011199137704959289746854546285576923044365476352814406714425134112834315264004220032369726691255044576176117740117713321959970573448776530181114408660122666558007613851411059908017191114932267952966581235735699015621198362413319770262383057607563490419492606061148110245110420977580663967392914006395646264354861737990562298211694582479515231900627262829131564408908378373379407241420011287948178730344723396514574811369407533348327061393840471808657783157145918897124887679245941756771727101376965174667698192987245133500926898729421865366493522079938085091340368071739008493085338780003627653218865215126930542047554850635037679990983654347883122877636186528614884476452634807752181121147735532797038951329883923461067635007085750454115189212680132079909350500338728988599323491592350083651827012764679613987834506785567812791576738302805233590073834128186354604237398584796680836710646387997142222649059477808813282045920387865788147237580601687547144618967791493029232018323209099952737605465279916642524938565628173784925960003191663400653194436763122938089603750855656381429798974857930970382857823065782243637335518570920136469015545138565785809397719954758564276548053285636682255001787646583148972912806853299170397476454354744017930989349653775057416793546674590572639823665794365735540874709513382673959083946609876233148527033443573157267303302606629015324513245830643700984585255286286653727373817542365325319247709585179701362256460700441276857000377961610804481314823972342773827950812384237602145177914285972327663838213920538176046843325361052826835185751538503518053871224664732519320854455898820682655454362480113796063928549651224844621830877416828575419354111977107585334393822111263131235903910131343070566019714149380264948624727595482366060257770097678232005005367471908096257348540191575350852582834363726814223532397898341398580487337237279778901952398132691716440729044963260230877940108614864795045845225587372537579214441249049088171287070261964062337806510122394009341289105032225170924336378887505638759863942803084060597443508340562263335621086626967942350943956059175655066750242196460209205820881245884059439089151906181477764248231428224180198775111603150654968510939116635651120682721010968590940007706681897685819115940295526202944589860642048865877772181508493159260524398367728323017684275150491303478502619576970939598830299495436413541984312941934563198421931340678914336055809720705256091345790557184044937458519510292839581108172451554565349579989636681637589970364479549676104235091549493576762318407452152278672988933864178706512095855960750608756265559861748770898318368966547247319367428305618695806310763829573014944159125333107066291718338833498706721998514336820890812438443304782878591820504159083554448013352782564605549968761437059964858076098856064925231943163922152933385289120790854916815342248136426590137070896716378223558215185331491815036674182896406976845545551955395662834634003955514484594561388211449975985070917494065876049404206178334910774603880285747966137139155121114845702153597672879513514940572634153457250984181694516213007767983989304923750770389887668729174578222288965150171555703624705862169885446828947403782987944396290493562831574968780943383392041672643447697663852777787896564254529370247944853051938994292280955707540432022419948610768779620161440382446749397639318511262654819604106647066018716960393183313685177894844041392301205543588058136125301271184601598733501975474874153292978488044245667440136395710202056044598910002488383838045601456456919318946205809169592136915329734953786395417930825019456896755271407341266717993272144797981345552886540383355965832436577489707470390270452244302593215861722168784305716394832728529983976704499648127355433271202699316135822215230185326328116991093107339281076454466364759685655191006495520643354779771678549278321737455528934302194666262334975733551840295508345165452148900645450753380559385750560277402335319851394251155048921276072601706819025647151465207735972316021682475405441529613053335068636999920179744031583621489709442589290697748831320370589188180919399795639120533099978876725677159884264385850428185717348510821352322917246262600896331030936925980476349496475264012858533336120703490368391575633652358674373088919338131158959932252387895110625965164919684922796350266625232722815093294282065208629333781538326349634588581471113018231877772434527221065470474901704256417026716389256858124063851255036163707772076812713790899656779939695616960349810929304578944448326321291967418958799266905521465122674500323181778114245961715314868528062167546332953035579758301186510607297394109801768056123317726928339939189214810190094037522745216526695636508261152764626109103893594952326225161750865009311500797588859899228607254930351616311529686979176943041900504514625600550818107617089626726173881956763964700100061239377671396045886117797256000828510435825711835896327856612331575252776931701734837242856934144543577531486459688132087731273489896098408805145284755570768795599853110891875565523409395676770132628889958249085957758461483393501596321471765152187146761384915629353423131860054975146126142409797570906249190025097120696754831814780667303418274894330932229989944717321182695990331029539457930317196304122779621750987941719890585605525843863127158210053512260349045826008583705342202732851135743043417943735322835424719229229037571838318719993187410356170484553509805830730237932622670003670437036602531333073019653185134888377022381108127294103937073997899183592539986942047925045740308798758299852710055221772377749863239215394422024868484686549325244821236979545316372997505087487278439637600478753066702265905056616607042512491826742652721636874396757163705833623929713722343571808061004893339558229294907073027853634238549406453849458882651851398926837480337990388469615239667249191592738101549474981350363406268147315181930610688206740158176946747048019287385967037017624662358862548975389304408969604893121016746604601752355771005656274906248554060335815342018883096700010539306020658556690816588205948384743456865832158903768206686174587725347959463172425680881434491215869726971510888413025248673065257836094043148071554908719220123073875617283021094640437027470413556194812243855395334370878929693140459899114865526658803519941341502286101506651158023188968134328788121420815763598230927326280589520627620964377198528158808022302507276859743366193040908293273725829012268153643565718331496546124347818884949125769300465986499844233867011868673635352693554178842259619134911356018161311793140566612388563721154340726981355365555635166716743087843200361913146500380416154462417565007886946652094958591025543565320538951071540159403216734550657351243872793127146851254211072968966112682614521101658042985167461547804926795193967684905041983807146561600457180597641674489837991094534915073361316279937111313312350585055937306179560741491429537956177728881377511885897372482382101742111019226957160646976695006472253018091657684976138417734909528951578887681236551499602520730294640713677993141576237905583580048730719111335326761719931719070508863239266006031150744090811645514725113125396087327009481709489382065704164453495654830161093072554009463240793977547049255656311350957463300475862573552694961081271702368580174670130855990425843567242174969227241860106647723980164930066082678715442598066743671290798247769080667029648766486190650473218245696863507888599063728656368711359139270518568284057835820640764595041543607652223941259506175479535729349812978089134116705562743057410006270653381458182711941022747603070875686732621239406872663431528721357822327627987359519235906933816799530689131224411592703005171216940506546347498690192727134135369547780654616435808946126989386683252642061572447657581761443592880724559864450083886080917072943208462492701926757087364624634867141885580141507783025706158940494723417268914165943330196913107652629363494101419268275179104598517719647703895587409695646442725211364467558480505373555795638584391962089934917592428410299561219140642892445939007683286011148861626554407162820039195692516457389284945882528071601729226290819349944049961732717246880217963139634830490279797337854361529916596910048033136015952578741964054089699901830464754430859838631717336382623010810290198893835089668784956159035822489750591434943433996026680951215188084378048801169215935985311986022715942877709126030204491715664334067480881828449983055296451178880928374468943870327706007964904272606935266213674066893720465787203314421262607567485487109519668722500676193692911426270445941794223895844738126495929148545728933565789205089091675041492764062987493339984842362083381592292069588195404727966688346257015293274733425910080540713341327084390194139404112812428558112405043509564175372636298247475308931096673451173595852112433232491288074125631802119251643606741998154417865406962247636167004698081536646177045586726192766728208707745931152088331705208134894211049481211360598846240456341912203721888134750806874370233145388285373892056259562176084654347487449221262755268601063354732165922633896079479816813160444111085224696764953904747397543730065289663815101060875457858383445776999259764595210724777684740273845486069801431271774541359556774164844736916784189531298179496943418939452255891621833357370286471070093845492567710598588897062267986736482477556978200170442699344198340372915749060981572161789157195074152251716171144832531952034696001975724063752876899041268771233102718337492488373427344602400316371260294729034354579789877366952928241814306113478939225670479751184984559405556115007203801347568113212539091767937622404019044158429538546517038450305028390173811786746914184732299580909966771811128059620801467703289406262175546965380500406694814686374511069135469789445694214311684824860899237791757432215240242494104632020643867755270638992049440398421473877706330695514464757972881669133193541124534928921768724483836660188449776863785261210021375601193542470936308448856048088232864069537270854020797606376019208788976410313210039838204297938795542879526930247173587333912001317415740735590580387081540598829449066036483280147557394575649622476880159658191920633416885544586477535256313229597111805193491718118565469869567296866749831909138116426201758653171793297210598292185342718421644630373196476890840631400400013125488007179224465614779243468911575257906806285336792573949454619921253688542201405699351727545863693211366886401247509392697684505036422101939114332804448084967786131965325770822623782040287675138996987332321261227788147820423686787041793003955021650618647255184977645888914166197993747706919889609534961011736133060503450563961735201222409679243424511238508132570400155117785939452816153949342755941895566813882919620303645701566758356971725146931626175023463929525688809725519988449324474339042730885245919015206715420387164028617266608060319484431812681980226002203788350683817180850122383884480368261011453225479668238136623285021560486791038035604796882407597528703553799513794835759890035403773551398862005373139132265454997153070754405279599329771451349849512050720660777510261604888197424911584006112415369640559918453548854729562528760835692290665339771897169518396586955696722219576316115475792756043619326712709613532490768631439564245112778081161479053256499533215660470988099589792103498789907799502161444494836493198911900363891443144189155310540679875785579162072096326683416281881452118043845424730728013174152697390283483350953720297882067974276419803107730148806870852183510490000876618837534715421918428047523429222296982146567097133330558999636109201383262983153299629346295087885838604088302973011212628481320455787456488133281893355857933238113005523080357356554083912372307945325213506598341354290154290414298567313641185794046011058766660386812608164527530561369214827758956920575956526245138556422005486821436869862346759215856741440838329278999034758950947957613108401734727233211466393890194596164280003932539358069469310377586852313050253121374404387964275720238544957375652743789836767470410792205832000252673416797277560867039981447301409897098252937324205102473690209564005906169018756199059991417237072596203070037230627661091964442664732399497100998275847304061314961728901159159331290158940729622380521866713371491096547361780367330389914323034960622198949271382088484231979418166323147052556835904079796589703393374726997030883409215872937161440587309869724956774419358948853498984820838868901479034742592819697666782752813883601346029710333551656934616165613026607158367619442559115558631021920007298150570642651044248934088714990515022058455279788222792368614323844496727230446318736717097868098050944949417663016648242497756245671421416631900236965709168039327721921365234937061519049679317686095489071827625937783253887986966206824225503938587055905369920387358126787457395396697012069894078541406169742977122387393154579577672810165949804256069242698527873332529404837234674654267520500364035852021620196738030145232904107851707993857392149186409065488001070915894298886028943305816156279958269124656354552843477254051549494809700199797303742307669109368284177935363778142639052777581289933858452536476967824309891409616383615133170017064632366852075990337624947803552648075976425149522059368606141954738443923053846422329635405543828609360573208061665837372415125078286973391955000753234633819368591917536556808298508594625834375607230652793639479660914282506239905640936984269994386986957326873567079001454077642860165534743391027059191701292606129709704438974359664530636418318039505020092198631606396497242922386359871334687244361037454993870078763330908099690301718559415145317820792770130056462039570621137351837446439476489963571095210429826783153203062327439719085986266652254179348757718854727428640275777376163554446270982606032174396478659425570421332327375050024291041169668153707282668899838971566507309879988102568160009777673969875924030885549942720676621950668259675450564637470154012982531408105336295047892829592408503274351037639288264111574720428729423248321369089438243441759202036152678155643503487659578080930203604203836193332838667530733624726559457899692245958523981066878436819135036739550687210395456087494758509782534411579723181024152202965621197274879660808332131617784885830643287109226217459657003925456759414510722083191100542570868630117257037273309614658358993898056284061750348448854179831486584964573097274211346417322468813394269124844383548690254675407549766650151726425337034254357512781587914773190071887544758075101416481827724866592142167290609899488071671934872279435444200836026284386941543687296059530480038946188903098969272356616245868749920895642900422689932460976919688014469989338081807964397588337067707764815096849027885628971885841226989535381959150159522248901220952883067297874829100762288110061498819490217806790579102173334102763084964608708648613024711450416478057443299020398787095549820392154740693353292257662355830516535693863464077119976150833091226236638573762764961749958164787363439253439584832440830713317144708964782371305028793668854633862006008661573970192878408516313090725290702187839995353857340290396330627612319646863523115267174855583941175607824037406633020140205143097765967890004908863906575172790675863118743512265649101232431002713095506530475195864990738627043958223930870433678742459338961847215050575562639803198434624993448676546395605225998936866145755366688759090720608754563342609108900269572649620151267057696008967757448883779938726524452751811924101882184196157721061862340902450285660281166162508448281863714153695044322226412364170181033082444572352405522732873970915650255225002829534729505587895945820475322092132758107388365266864140483635511075088079383446711191693977973940579426981914415303061355573709937696794866057329122576659426967013005793597928832438578851357119678633706120614443292736301450037617966145653577485165879062657613014153863573774119943323321601427275660296659992484165344627545424903391647202837936387886641494672941425067635214888988125845961147497244145801747103164361616299763135236219558428117467535652754125331889857021880579708335130202016668210805942594047977951741389666078458361699980065674284358433308176337581730345884942892068457925301084862723835559945383605406163322213363992142860991067989326508972870027502929015240263173672681891773028516668114319019411026983761725250749823820432597550272237934158964132958854093768124216772409917611562274738366029583372926367943583801909237263468500337260892541957148849853454204578674715305835822210387747496491628165524070866111620669387651885022574423156120762847341043389577842390396018083077416244208446490207910171036799904932639215492308006116592270568391959654397052360049941757690946513540291796404506804184183554042897557263550544559343317793695576801793880470129703909937826016619989158724727633041111577478250144089218432635279596053696106797235448289550077762345296169993992057411088093167802387143772260504058417899216762239176868473868429612883446739374977728049592396359918220986281978071855227489478841942242987591844244961201645565318185181193127020234288847768057264158403926266870949809408866445076581280005823415858554712557472804621389398795922621719776944299011193237575008816732910723232792140096350251360258648256780497573766500499359675230578380688099927449893871052653681459024554537553125750998520789663003901618002354662351202255654829385561961213054736694206481974987978994177098078702067786635114276401420575997987623826900211069584440002131372701853185433856393015654994067895358303773222713143965247819543430187481350049927119632675495179405169072800306965072590470007992587516290307250431128355599805355345823970808700945680939111085057806513138627914949269503518942865075002746997577375117216049424923155443140740344180554738695163072623391763594987894065050441443268054750423651874098286925551324309784926169854019908254796747765013579300382778479936186142782435478091611685875719091140137928238941587309266549043879737177509050181599263241389523091956685983963459802216001434095049529245968507283236304476906584541769056420145461437276403817756853634480043253230612542667114667988210526962658551363438139553046882457074856308538098707456036998940088167899244314446665757348275489326401156160850838481492950282172698394032519110378219922317584056458923363402928836312994053019190857541791484098204244188337352554616687326133023050505497581719654100713888034667602294447371484583897969848162502757115020866299428886109727145084991101565680700696787417514334188273730299647814337139199243546186531107366662271414210026979012198615533440209010104362231725312460443627891988650615014547705091369584207313285028174394713352196448910596220703116757562577029191507629395183079293047336422073455737463061003076839849008463457772032926637973364442502469281773807379271638772364611891012838831010144230872666572608800392807747076789374518089840220935133116487801579421367171227031889667169733219771722027858456389429010062075817883942714754058687034707410399306901652123079754831389546894081852612322654069581192441144709400347674695637742023950120538591426191834351305700681171745287771421251213188597611457557512883524565142916932526495170915088330378224151174173919373980946719055845987002674692404736505368830866789991294425997948562355801870202793416685601583329451357416361951066613754426668635242071912961803738661801093959844758919468806326509764444353334738004959005805823972454687520387713579389995614637293036721462423530048258532198550958534714690396934396163213620609288933781209812746368105029128237409546357769036210117701839897463049978191201383353185685817349738349845088561971030890321722486227528742953000734825055849211272340915303706901008122309197627312618065843196440634431831932420606556437640706379218272309263855837731697791208234762266514240743475873118500434944615369892080062189828653027922930936635620225289919990127195262835791259298685578850892154260477685340606007125098502646815030687750190870120429562265974097194242817154241466680801583556508806344002886139208327125232944330346485875097687887737652515155929952017425191837394889779344413475919528504715168539071605712707389128332239155966645447618653727512328834993091734271288944310451063203922791840418932565791179575972979137068911095608676695209313813785471586767181777582201034333335075456902922899320305448152620665673440527214558671152196938349759495162458901785103463734224560420972055056825287126593631964596055919755764882155883482853308661064783970104463357598394711235818691071773936834856659328470499634452278622808729699057011388906799772668693342347951191438402861039036701203669470970187834235620485413240008612866316843945717643204528858992288950878694492842815594379292531131466015672223986488181319299239903650107170078208652196470501803955441316028053421307334222522363143564757627779292501992972068664503366988410105132066220093852554957192830882949123110004377596894357043542278155265115729771887598750580750905795945392828034472067129023099835723020476460397530340068204879610461596683385843357936062051007511280910058867197082180682936159910984611005472168538697714537574162755497445698562041537079709476088461576168478301895512620874685761783191002838886122073748658945541609534066163855754306313902015828372404123439981309505847141626544177680070288132169894076094776369044916324894968732029443198118812168171218076336309394203611358020600376086899325204459875661397060973926579965101299666120895372048280483897552117173365938862699680889722675085164319422506387819355868906887469180816170662570204477845600856033762802217056200064240608039600077288820049285657062971801141892768722368891972018702447297051883020959325591054724458938277502918562610898189936972291893196073681295788567170027498265875333037808557277739110960797737674828940985292706741005235832111306728317595615492596356955558184913539940958532257695421150560050397651904426846336653127953514199779489355236477642209338019850514653862863973208471836608807069688766292983172621357229799327979814123906988816345631083813594947484234740337868256710902082512818336313578542045398645780540929471918054683309326689550747891591916386592013349451761452672588647793539243938415284284827251054614774142428542469850001271058568689154303578375162523587578737307048450169081286970595836275468484594848769562078744109284663396330339622128694163759533085679743383723127056332578320094987714280695638945457255998469906921450016090415095087270898194359441878678759461007761128191417431700393154679415970734872939040399533486105385066116072620735372655754838685526176611689552626525806020411223749981589985572099432989059188794382460416373248661735569629332914787348636908710540583438880996803661329932567103473678135299975706349064445166970032472743572173466265018075636555024651444107599988258280496875191223183355264998586511052362822245112077359566971142756291626381532858378612598222043409408423513905113748257331699497992571601861692847522525089373972092774008639306618194872064502835221705291601768398958916900342659049393826567675019010069868274616383082383329468474648163176467303607321497259291389380642343375689313637148161105424542505346393139011241219798686055434612915581622896509817415309108408341828030664977098131035627280769448656623194895307612079035122056214851589607848779823314865803496408701833302867038073989722002401683567216585845838039545515144121058532741427067576900960609819531263317259627693305563349646356993825571516035254389590336454084996716663130892719828310741767694282112008905287138429372367942348529221421755991489376448793193321663160591999910772141804609801193453886656025320968370498501980387001176804926991462518029948641847114641913882611254111669719296754332259859663480206292153920078848599978644860688625292095945769579048393267336803418192240140345446500669016821335062444437749661879651317400957005584246740834232242416207957075332902104263654290858003873105429150275075824591339911328333917279502611581484173675092074249143142844189331570390934091120195735714597475789415677782244443235765209507768738444176208125635912134396653639983401232006543706496943329172277510709371660400139258901853319626153637799839518152805383303297441635888664793583601524027187447193530363880676075863464720702478426396848167503292263901671694848470226500815534164036317710857297242179896810341465743890166911726476899299888155032092611758564417193763394860885859901728426110759752133311033283538921414026982540934901421482073075594748350531754558761856122861557174528877039031059079545144114680273848723210811176238504632167855236243592725571166292888360389644920224820672544043435147023472695596079941142872103416781569563419860475820309326027272662839188043430656120382594607866168922137234908340146153246959497484429690509563759992113053010650396659631026644512294302523013889058537434915206012445917604001770747663507923463476859061347236027501175542909919230674873935875402790117269744058406066089364481379562043135000371489437917539775062019515298430944883539091269646158208457085706462381303534177741918936999816542107481926787429134374312182600951113649037958773924808018532515920931071413282236518351696312574636859912297084163879095839887690871046219325617993062844524603833045131841051109050157598509889857241699145668938629026590052581782923207580759870724718558291214986287722893662638653475705497828975195973540511035126491911376926516510542563104589576472698755109080935910727740286317091797792527031622079784595362407406329567809850197776527086456157601301081036411731328260494111412858469102974817933070702008550611426487156677827767096821537680657911540757951401059486728644078617104606615920845127525052610990277777984157194656831802268674470607041159804937771879033527471145349632956339752220525104943394929621462951212072165780773578511594910598337493671573802761360520937963350174768108920752268971735923127423238039733167761008031126619140102972485285079060686288063879582682742401053708558990849835513945120670065252721970593721861429918885909430294147088173174777705415545536298680612361399318894548929019378375674225600676416271299984210095783596082119113032432405066636654253047523244529062425368994657311822770011980405155231352533705488013443966105254074118443578913903964165242338217287294545851098216817106895089816060019448747453195783028026408817644045748581854795154671604999445986385879456740902334573333118669026547552906127584437532368025949360583613855165044329399347624215803088566707425802569787981044210620986939428444262436248627712948311135167118986773575052918295242323947374865126791641690850234972067376196574270631292204322912379750293588242447000351815667153929168428855925690781193239657207826962120972580231232684633033777402601202158601640553936045080579270401068760690370920952028591092528011849918153094269520986590672801387901225805073500387556034926661771409792626777097913000870465182447158577607521159360096172709865318277855748115429714851118439450729981314131334426532282024360026188917000487834828321021119527083310103398092920366847079790440007374352556291837679355382977944700169748861413266581602395974881528977540331271850880704138235298813709504908581671411835920086439016120716015729249140049378297858773589528089538932369175053715804984848574226624395008749020749815039769524001351306779546577295851809193583071391175151852601849951091970059945346312205297577483638496082153759855726990857872841293350571476851683863206120978137313785771706081111547476333770021246022173774308401878593803933005500570849972166348695752303195829690704585674282474150519794191007708685387605118962088935370096438357251669113911591331241340875841464393145242425308859330524150116427926652765684511180641461250723720411942343986131532679104914596626274627783643684871384688430080099422602220504404251623717389394449000048594452952714066015640157136662270761565154513253406550947026525980477566838831229229086248415538958470894849564363897294557934422914467641401148826328825284117521693065157557404319938273633049073349942423441396915498271989358464966411298780660292755682440725795264596782193267830413007146602981310936325952623851803486427263449302938059410965482902718528091148573097166982763872995195785463487212713735027989819506940720843595520125700326784527641368675201211319815282645017931288452252105475388784533578878404987708815426870767704255081258715256268374254796032352425100804787114160572690785012069983372280206609124190205122616301893826591265916414713404870531249664301667201293654643001573463119920644180996968652051748130553347086172755444618711197125505031049715029004971015503743550075230186585779616252925484404599051308229672731049961166971737780153779407560227061093883738319292412135688234950232376507775272089686014741933215366242072050326459630122629955881796208162305992662717924468977983064155000819854671509616548816631883555914914624691440807270521536435956959055060152888805496636685024172036539115097988505149487153826449967587998126288385034509564070790995677115876547377383372048288943542962916083931204360204736031542908850313079908514633493162492898766557150021333046177600406705519114186599941450319484764218124032466843715503852552481827435718329777950633066731604757339596219886942963813655596500326289733683422664455649286449878643094394935783871890957226101256633921290742335028839278776982892260111644771233225082728685686778801684561357574645933081698040662650163704258014488391769100463601629491861951343352818775891798173935745883968419441654490411704398379461344434699033331687296147193057431375075905036392831610131134008752554202566766235341866150419390065284406466366764392058265559827844543594733676250541913583989352658747364761104257906645376238373046094727994000377792921764371649878507543348447282076183274354818325160401810382666518524979236136016001169143021433696747249823932809000086530554419090823658453053121746337364616665952765872211090633639937540177157782156105086179642064762954401534636394702096844134129350964248509587898328089816671430108318586668223279217502955464178780475888964913156033628049259267532311267586447038727503328444678901038650118442668405148883790437690771850424188819022086094294141295561778309578749923156687602450330422926571410693125928535289229438694819072196602567774764363024110394312308161446911484460130872537814321536334277054276650940283550752611272912622390867751715340042154020052827608158763582850105171204275255056145937524547415711489280067063922116606242282006726712784610871802471669546492539311392518831214566922727070872566936136022980850595186804302433167267620657224208202687123019210606739575834127375894190097089950753755537035666626058221875049483968577250971743723450083056398609849271137537529323367867658781212907280606202912915151230889969632019498462218275277699212212911565799770470205757258990452044271101251483220521604574171837474693940072897660761352008346772099311831174151714213431892508812186354016550435983685514227845831083325931690948228613690080474006883199374741266309012292713738011785584970208823877664754809372543460135819408510486817558578887170350963323981238036829539010429856558716904565692509635569946237638640596880270248788642543189505048696968260356185715625370565250477446241958622926979545911492897433092683777009618456455215307227828489019002470639648265890515564077439257010339892698462889495996343864889925481268030742760430169572059032914453052548514714044817117995408531498435555745537682416137391981119488750183904119747546336616435402920399870942902813518091271484748748319233666355300981063936597652515384428939143233483555630468845007439523385470988303165886261418398201725357668036433697478321166446005435489567857112512260003804341639436399149957536461537826143455080413940251521035698861109546047201580632976679187264980874414830289378174875263992319201885663268361753405767160555177008954064079166408129763949468745709324660377151746852460220908941311303838877460662298679817864388815664052091851257147274982520628440243980060963026398126542233240241261851651721163502697593892328781287358464435445799617863147745842169192935341022786760272282229089798057673820855825474919432593175107627170334778297999508267793547204276636681443507215571541665670676297896488328067353936842465072371575563937492355039556726071904336450326230941297289465562695423270529565691429221908725952828156815269246915331019955447346955347337076118522715850846786786228291274040337909144938572575070900156769655481893404901833878218731310107658171758288687836379454819502414473266594207989999383004908835447335932058757870889758983921202010501237310968895663550713654502245265626238958942864521693815347396524253485482446375489206739571282371459680346706434361904790037538990085519185325149313756928018437970890335495552670541841338022884739595102583633860277922634945235236623757630479740059941839107493929102050035105837599670897827908540267210125848060173876002032890331033604596514363493736674813552445448363895013103258544604983958619358652715084606570143395914688047619897543289139112483828401101172040591530045875160510667099030439602825737307530105119475364250848318118028771847767156310537660366939719402142064258292696160435851269371131713843554961963370934796969202636465903737604951068767571552622529709677593595011758747101956171641443586837483136060297346150509046011373076719774016963883749127486775770574070673971436343434652415317724586473002147825206067172232565737936583013330240127154888625970859412133062929395578280022530057860233392474373816914527553091736463774056400104409138703264909479229995509066612006996923113928227826462900368003421569614880215857486228403518737309016808581150238524064056101589384691752746487802766637827914778244326089560362890329889336813617277697610725750538556330031530798127076672144476998752470595486956493347190385982214319416149174543475803053963626442615739751233852319223136391371604022020976155675430194952159251135395727852556104464386625695395774970387771601342012007717659119927683098523254104596666063077518503823887776927911724146299304321901231096947580843029267044743133768892448608308112869492573171166054678769208530196337704428612110692796741252913196715690328359916435884735962240524975391569046418018674859858070243286465303447309888030830526060429453728115417356984569162055445092057399306203354153039388045520302516391005447974961333779482599792439585403175082792916655855253866599933446040706590789337326289364584316958297828598714780808448048325981675309884259834436159856826228406290912079153288366244571620634075137610466142099378884913707087137568604665114126937614843772294834551882359774916013523212816153562683513924803350867742789548586845112509970534178009332965684996626720272640133410184771224855115728843698224665870816163213867275800137736470886532476783062279181613435422685690098307085840378191302807950767639003252632632619775621322855490165087677968892855662971661589243457731877282536806588815655451599085216394820956556095878628466794291939280090300443214814867001468252525932157786599076374088483682871839929575682089571676654846534516997710444631593501811483838235129458500393038932376967850634679676771149626877939267375478519747768708147224464331033495106782043293653204701979626205378156260317004322943241449854250787329004869848331081330948467017346034160913917472802135841521582592309052431808895644180392298244416604413564520140044788463383021691762230241317388783257200153205784323936532738963402860252735511643306338534975009695429692836887152653602816385945306905158952748527539296894566321453352980894994574805053942746355660370433464442146040160723504569419163276772366786696778747795192211688149925957807974852469552091808341021224831785943676741050546871984682735743932186069213675475241354336791745523618419108026567732889248976245554492133503589661961839076666172183654898460016031441858018172644510382035382426051508448813128704877670661269280175590585678592401813584445968512069012973968892848064100787368109216844139356517768927505200911009094884981318480501700600451796188304812748618579487624606241385363334449486496645622220153592327307500306791692489457660074448843018096488583065508894673725660122699745269787268406900839045119954844695549220873620701180064112399342418043962098084513845662993046510730083736903454982119174270276726774172850320122185591924747506674144454514616725757248760530325572674929875805104725140296263028403076382375341988867180201394697600404230606706201523751118946878365091723003374988395829107961013146115406987811537027453285260880852282193210145333912862233873890251572947258728101382143654569184641096821368069862397369293580370832807564462735148225000374164669694548024886996409068790815320410220779174339276131482524457411666564749014388588277947164551401274257772338548223379054148963731144720017502495082558562132815682402319220684699202037092364008587227271523567952087389646468797328254571857091509991116299465700471157727857151199488314347924128673276602828966859986584193143665987196291551925356852681555833431914623842576852831671104994865942870397622545321836371758884113703184972094087964337389805069069767325710962848993264269550085108397694257297846225528581481115023745263939769273361311674870229479043388869827911394224647157351143701676737696079271726461853153025392968775756918956374746546367579782345425307202425181122815972511529973575114624709610943744545757661183778434562841612989623383415030138436189194612088126344643088344210882393209172669382627250064961924722997157322041847078817498211737746935231948112140027692474268621505998449334957928447607533730932967269038178445507633404517213330689956059746102641806693037575659713244055924859147394494516020358355352064300085758525542454320723975199429450180185146385553233412274005826700408031579936614851338096403806781303216233713982419800110733970982531560871855907145821705180471091376396563233925230228988133350993833498336548160539445748349733805302097923739771522756889646477173370342107321176506607649740108254811690525331863610342227500300527932457678307976093934607575212827574778052324258617213179020759861774643587807424715001740011988398554948942395961198709479919858777137497083908613543429149572695733815586615041213319670731574826938252878883187386025500394893417258138356946128816593423653388708981097208437554476609527803931595248250564358890818865589130297202238545867797003899401498735629597235106211850572539813578811839520624233782044188876256470402634974014835476400103014379249343154649943917138178054119505311901451154131236627108042511546495096328475584639537083853973225937698987278305793388447759560364401377454829596424429814773111953936063852107669761799744680058055199218685576440417044782722190137388530935689641011892970854745209799257733592208537332519137040352422979885372228498926131594353058247692520278520010083880879524013430902202050224122527272741223040560481377025289348803315335018200984212187978433372647439708837329968316109539273008446490852229027423957242754761679584511280485129028636545845777575150729234083504237634190073743264637059147365158407648416043043131283809193580254146930737022596893046261106250161220730593506498186815500179116297812280529279793586965188155324676225552490963663066000994559657337931368187691178194894951491260406581866798856883415950310848822391401075901163936261056747838349942476447314182392249313185952837079543785939036700333275114666813340996883368692286379153939494265523625015466329104199338276186003267150860697677703513386824765399366489777315114639569372852924257959581418373699865863555761434491944720748383284719551963277931999164957720769535473802343234158226580407089125732404490413217210553679380079198067734193791924195929788441278399410948077025271312754037778430871803171576768364531647369596491664249988050299074245714174020899073614560829827725632375614965624399502230355507319587353186382100264794442900488889378687216687464908554746613899132737393552281607954329729338045853514378899804757864554166351538027913654521154978771729461118368417862628994433275139156597740045411837826882289080380144282652660056935875025537562600665893298787282489803807173969682416788933563373681854056981161352556937770281444848547269969307837733376922651213439142434497065737868703407488700527745851442641129726988295990462923206496767897275209666642368974532981902122621600334735435426625410923212420704140539369472870451511377568282461484482867627993836285016676039688956057313891433656406875515722427893786840674968294727602332530067243661310645631462000808404288358793392235300583271348974997772876485378455182966433004784025088242043575497682284049199597766822770009120563522322031838358525748282525596310041845879799903679924540617709204735174266205228001543809674171467514543168186421598149841428913954762175017189321290836026284511725518576246654653383615834969969614307065626363433776671980164670272100758354951394655567014263419289345498548674479643510717710899415180019197423269659806796559124196083637048898287130208734741181611139430166931336951507292410486764727347213877038516622841637879221010128760582789872928763093944301849291051270172226498425049222972002916219263637854974994681888592026070631039987921881983354906947074781359844852748162959652540457014707860479797460931420716048084361412677943376597730136436001727713938094086876547124376663082589580694652524240647063106000918898026909280035313431989407269158408734016329596279354358791527504345207210604271621708891713974701383859957002781933301282282796923953194956700446739739082072317042873751532035356735896833401391223829451674528128585191646673082981102015808916383631152634901451201486884711214846662324279442849931794617642169175007626131620909821267444560595610205033813550893161291910751921160459026591979520987661159826183326816538420477273365283610634826155768843466725186203827775568546549301825369745312760646983022199336274132588562278530083240284837221443602945357045343981218702680253987408718605936331546072838305878675217263529241303756540294240748631762692330042749548156634542750231384590128385041731003985365309682147580898769650612345219290626769197335845779070655863164864403362016053254577332881788729403812282596622508569118654368911926229972949840700183277290662718664906780841177479629842495923739684699227793242997698675493271087891110063055965697438418441460611342641470595157475203793471928903113004939374725394253692104985834909708451180335619081181924564694793788033772075804088565487834116879838376744671086689770853975967232794522200012799113896010290395239805482645628153119371042993716894757829124597398546905251879989972431811685768527793370171793098945009526528619903897038912732525364549669729846438438955663098334696869312110610249014968389544521857270662461213260573080255292517058022177667917414159569229491416911113332213700198786845857558755991795278562665319796885032875820886682092323100175329095320953250967021867664773530053924068529282238389830506703363197914602722996563112164415459398572982524024494294302006341073613197975770269470772832819882926934143901428948822409859248188041249043146626425324647395232732430339991629710544594885307043823127256437499138940948530767174114033808602582470525200604408035635983199978142453354367696320186134551656517353450352369717110138265901850220285702196848274003511821379837681362140342599649814153147924959819542496463391974331059266330338363290469347586473940365581754685323233668855311469815207855712959312209620755269395877370475433218194808378457878085000384056305359926808000207281601042503748880024452959587802569937304275949576424637959858407673274374290280046288023013351352926357917264115261681784181002157103912278349716979187815503010459776126506882842036215887129988567340443206882317662979177541982729502303594417862728419964050620912425017650076958368457073289512158430824690386889656579436518680387469256150860798993128732517596640982664155283731628989306581173174045037491430038747149879925772862734253343510173405334020359796935188748365882015014916721507970479549357012317135059542321414363052960836605520966742260411633124859834888017464010550801929053756967074894907222399717629548009161007988492908874463503640749521678859360561723116369368464121348586614042469595292852810320310761035875555781182263945247197213993281305716386762071649605619457614302635453542847912169205053585526154864204079431787740628303329812921379166924883057043060017423329438802660443027357722662425757443863771845091791193042510669763826756202419339265567463293183519094280869114002418646702493886221562996056944450202877676596171811684160925994933204394062892981679064117667631219920639295554182873313074826477772527522377142695051886544362734822799016337019400815739494774316297532202615174507611806451961823482961110788765108206781037050276606811288603318266024690327434068972304918187498342210331046013471889935006991641248435824117022166923202600723558871811935214115326174697079600946123557197845873555232665340518951993889261916120754338051100882700379378259866551702409735661704762061828108892407733037158091983690308184586559153940513676785911198820627227988683294027980781801772036977434219140794694353088707361354950067186831768062212000048190190348008535318018909185206296386920829326575141375014981197265632375011681186255819349285353344108457461753007560750938151832620003249468878462623412952941047091488142854568968473240988302153303977350945364251462757181039078072153818922766309275287350702667704080960060483170788392186762311669289263135577592822811515416856036583319539697068256578686306437065571950468249254910758697000302856834727117713404128272821990131073262657518655644062215459014402016593192993401770612867637503138205363525543100159432144650784596485439258715516521980012141294231704077124178083202265509889197745187353427326335490457790537319221022662054736616082435929294645490286726449438319759943221580873221995547527711605860739850936244269500363424736708713476730721138136802664987260049060120422691467926216694850293585032208177276605075817029648491549237554641009095496880474709348909688484488896764504820399205901347471393257598206693572541186063587408124302265358653793254924383643347162644588486727073931990714984323472157310617525615295819369202111042263159444989411019249335507188424352123888130820262264532960771302794805127056675052290346520175833313564759167306083872585753824904029173315111503011670204053624527603225576798658893046223454487907828921293758964653693200730731264669857020313526199872993146753417256297171007714686513209586005470159964074424616673427337297269799189342400007125444898037691705290249468268051319418619759301661167103349199531685332549625896562606559127512152963998675523938110130010194751845833136965655859802187140152663135863058248757185173868037123985732828369612384941456442915774205211085477726170800026935425316853248412169399629235765359540368747463132552122192027414265063719575247335422565493170390332201308911765368911541655239558934128248674369847949449716588159161986427661836921493243350735423882335579498759154725946993524214301736879929583853878010132770861872257523772385264227821886020961672557153902956917422653828481910718852526440272741676299231110572945086002892919866109541236293484696695210062906167660780149003339709847359921674814602511409226123821541852814410504880002495321115257694401798401072016429064298939100553552684496605887696453538570741973292411643049065984501406283374778686933739354845305575876039013945158909560659279195910010254667441514792237788402432337102270690108873388577310017310435554027334355491030708412552440674829705607525101652318639224703545809349645804481177371469696136936285552210608355543037822471284612138808687355118113475232013938358508607786671063921868105325349918486786210901945365065883680434833209334852943942387424553754461530162998533130046731508734921192951216987757419186103438851923645761107971953819816977636334704448730769833128819692784493812487257609855843630400776276430063608316895985203362353626571465043845293059166914059691309547867998954008157895914168251533985913598523909078959867228755306210561264828580505221921654576550833169732976078983319779575341663850884325260872764541094053928733299890932591943233527823781074656563049013982393579936667313811720114094975869665652105525111998902524014267290363954101247071237220075668796225719231997558181756884119315749507229679702837541173528395285995564854539748625957799252807688876028313054607636216979930425205189305155634717237397803895063308873093072719441628825568211684932719421844834594405281172386742932733053297100654428969883545258905645606015088842611389621131128904612211647103835308532678267253882279300283090894459975269771030253067363095061453248956394283656710964365535049946741456960003153441350145894521858765265334444438178807208285610354490468617069380478039950477070056181817282391810852554163903935862758180127520971471820791594872445319326205090701977136384046732953640840478963451879272684374094680749153402498825598798778737631611751425861535100565963361097763381492730867159044561375748957938224564868261218154433468918905769085481301555046807288029521285761366139883446566332371396128356037562616286340288454045577556066048204559192016952619948805621543551128720340588996310653830077556351124454810372570285364519435259884128710441111340412808616611398963065123568928580903705822441377277919640502759863232331702411675606204578920045284124247701764995194682077245791806971674572942177160880774775304796981416440763447462147181258763864017109435386133673220737391411869235401111166850593169057772476304257838203102873398230623891487185950517162918864967762707393871426724008040738312603072275321216633790673092523714619291247031127946786957147072884625453181730729930413095837186365995131015659443389739827580588908643628434133517545745010955552479642097302410500869517109681579753701505018223764024679224265147589772616473921810061656495288999501474039629412449567879240823730899744592493057032582024533747994261206421298886457741069432810707317676724832912445787166597377855450378782284949622780783095236601158284398127604081615625565714819775071090496700840344382479144930336927549126308589641449306923981093484654342741380929189097522022307932296197182181169181335400155402807720476603497549480870530037706654238975825579292727734380877452264935163456512144460702682047209738922261894837975355989524494539766039800271200127651766708696125240819712327675387281520709811215484852875699493719519530138645922946959992918783210785722709740053086940584402235867652872260425978906019479426084580092713727216936007160776375490148529469230434502014405214324651999193257037050805233059979319239036933839142828693307451717048075838398950378883587070250350164856325358700314239300379667916875313712879187231223647642809990565780747312778835334882426899573920939968308372034709858627814530484519121834936290517143272284460159157159934729202725862668193754840602884233263428032533098586760083993369702291645928537863699392528411139387546615882422585402449760468228028040035766262130462018273874731095556085434178693201502396671534438861062706894877358540088110423230169312314526861141651129772930813717857841187582832573466638471436499847924195403665907598170841041347564324599756802705565554000311626104937309953444160630247534424280432346045445317647782896993631729678736393197336717043936865518278288086419063626630726371059785066983188737787630025912024534832585166687783228442193775688369829549310826037021510282357987869566337154114016847724995219436951443550193853365580367487192831825365784632676045137748515711768134562020925126678644239076863601828745655929898369526597482987003088456832356353510505654616871188166850345642130932451599400083696625218922096420092779719093220472931340110216480806350937140407699119096968393198211647342376276835151120856171157898123920368848122534090196180368488067275827387945155505615182667688376634707561444169170189619060003757576653399275013165057517749820522894350032947945882247231767043271298287492327896935026974655316588650643140553154476925620881294524844687850991614419590740105312666684783366586073490737213175390016129890353081996408279555109275520176626245232987308487502483510619250327192867310241006847000442677670744878903138570251504424395220299793782211663506243153410402900199177660913800591508466660968718346614455060673619915645232432148016006303385552550215630255848110905138192375415351639537750736782392587828554132904446805700092524174009304113878641989959282990353885233190288684754784309137661922706984897231105228913900949034149854166809106228416946747645682065644476861255209674595340694953324514000705216226162808899169528248471342531589377134570234911458637036307667997277759990218734852303815418050795310272859631221161648820672887842627250943524099836217578852341844999955735908935888062669463426755588202011673134537311421902083970539098293914985957057216599864040025375413356777553875605368941480457382044061734991225984281082410551700052256142417540573658938256982432367318332806471597089246992913773777488515799522080744745132666911719871640911061955857043743244734451250978316418786185223211396971398228487842746359475999042769885373769952496705943308036612511938277943420602987482065733491713636896808199887877938640062487567264908852192286872860451583069329267913918346298639962853520406905304002784212385949152187790278061743282006251871692396266313367111981176319054268725081626312261162107462877890056654031632289718525282527781979637034338161412048580579538788921419086060783845175395934765899787726716513114001013540943813292182648866745018634885916714745586797302639049113568830205270905487163092459855716918746830255808773353575842017842181302199278681590799381543948660323785450835634341293911821016106386878039623735514800006509283435695931958780457678208745037990239982149670469262310236145517500066774336367714594072747979387780939504291037996330014553736658341090785664793266819048273100158462687723114086499354139207998757484716903575316138952368723844044027112737336345585608930103405599898495814970465640020836805105418534520633832272185482656279373719105529764814808339789969819823956174319661855211266755221269808501830138809471709911365755148732687773433961673932499871345115425681198314559449983649826620729813537092660308155357079884160798086705097279596433833356640460750179419833938738732783977575841884385935231426523309850942420086474130966302725677227455870276001788815785661890656288364431275165655396689594765727248422450518218587264473084787550115816624134107846997461355860497855048687299513311294985458786816101578082063779625208204802621870896068090938399824238836418024297088524248515901192130100487302896127396984074051942085100636434321179700190977104231429499350681299900230752429068792539270665969823942043391739745657479797689376462898095679851944703614499630644535273200422014818045757314551587990436132877825251723748155838054938492325567551781714857458570697662273349839732565892093249331302123149645450329897079907256493906680437413361911475314115840789574586166270197055716483491983608218529188505889434129349457062132353136426001682324167091059836543623360788952355920020309666042559187902019957469475967835110743484537304638674622919050500514815539848913754103307296087572312630601428372329544975763340970255723359999375069227617260083975924327255109428084634562127004628524642311893188107854110893032275412533833259524360386382912896695445566312498346299572851128469470918422421329001141462609090133138845475098400887146195539612131536345824359540323720227686779608729362164853914677739652663869917871026833476060578404019771963540405098975152429247187366991403202179618330640294570182291345791577145146264225738239805901900808344368803520167756666033469125457491845296311583353844731251420001788650480920882868282667943420313991006644865447226720786946847689319516753591823869123569061845336932754833970462285377095942761136156091536314300763845422413083886809359471187560014580041848595303669633391940001211069023613396366634538865059069246066609004269265264366029347164246300311510588694115389964158997918943054221804988197568084912973730026578826346459473570027002825179650628240342619773090216081351890583250668528335759464939478751212107866284540304852312463714209536974338100955992849509244261425701999235523139994052095520959835014099720730135154024302021212456701122050086488610032617278067958375503671209011956003453895449925403070264182516150035903228559989209292010569490161846655869526270201888410970200840882357724384733356718377907930984200778228774958621129015189759402346824491799892063903267988021888401360398272802228496069600722856531308834691672615693018011787850720255544059468020571484417976794879121944241721413420274144834623311090172523472647737974031197023193451676091411053394313739142202910925169080126034168079013226788801324451882715889044719566475675764424978735876833390460609024516908853969931584717040124826283212723893315259117835527655984856925150031872297552390549855755575629152354748559837746974074684575723983483872320232243134017764661859052026056151914570101470456489486843252987779949485972337537478247467956497040261412925535164884313555959009342880158342131325011101596416381390759578476062379582132089802922324778494994735390004322977872936117364450676813439347688927685234186440106131801360239704240204394448354286081800446247120440337158799683915688822445453614691517310755895818842653135487731240978049422545865684612864526719475796871534740835631159380247478045988001960561663614439161546860766135062146369174609067125906839242227209802864736353763116664397501543950272107807783446740386730795465764683566791345506491051186523521361682492631127377304902916127170153159830153863944580409306255954625446884864510522084695109303079282685159508862892765381718645258731440589613110241044130760467906073421203860279487101437964408832957006959000641135391542346180835964536500681778099186405032502864305398726196042798292855012517112298623144431252018098041032271860049579253694422853942099593450072960841303306265198709925368644556542818702236602261529365144193514399036574889798094235628281516682279729133065662282230707389364083150916665727174934792224666452556604574998240344171246485873616559170331433960154786101441565057872372307934891202498489625437171803373056319583026045775417186784873546175261845459035813398392066054632985897672649893105601233868423397247120081280936323597273327215545129925173083671382967325487961595868480762038003420414328563923409831063423903821652448367476912457323475991761385972970105450317801948054910689557924063719901847643021188553932823581016250034266106614290697962949107517178181029337823544589886664471100995054427918570791393361079156305597902525638122891607519975728995630419275400688809915440615053796358096116046808279561456070049166763811911312076898429898590750394995146234256904753906601668235145435926491307109689355342734683746581179662719548187432558627093860233873188751212116284111889453265603223697290391298046904350535197365115359740848329740806133572618600879193304079382523946040938521894199404801326828493696616296685510907047752100923661405199882901828393785232804632560625250483719057160327437624666823938804953249716914863820110356830743217766118611900521490273598646857972689542177959388243678282514345622757902983050096296924260845383318656613585406893170376190791053533943182264750281547223729066593535972592680345075505554252508037706160334478746701789685725658498169173151325124344154721222519011536204533772296652298700921308078250428406903089782263303510472246227767898855090234878379309713310404042084147922127510503690295927108271762626055918791404579306557550405439477250138389953999281678112523894382263603261367151857645518365617237983957389724264561459473114812908302736651129416792874491879995010441991663058107655637342970996994809996283071133000327694205696836865436820333917847746898027007534741448857928615840370024681037273725783666044600067524114103500631853836015420706551929352043253483322023202078362538764740018060121179313919626641845477984950455191798954423087442346485371785654119475490387078343575940284594627690755318935873644183374981590897671395452952739221556904326226859577363097905631897371300739183725493669601290473633701032331077355082862245873714185810563421216121810764279330249529181484908689265153682852219543813635462602410708483703844758548978416880807957640252104200513902373415828431965279568534654927010532343036459488781916137940101489952580232467324358066625020461239842839799828354175289700525870505847566898991441779434809234756762183508180965179274105039030583993027163473486892034845013699260583892622788198742713983090639752056688557948880728062367534326968141422879496093404853690057563961261409697292407585114245961870300632449778953697648407215771553803597948857969111559677873000642461847646661319530576230542663399064229753668184506972765313253847104087594104178567876444630344519466210808167973287425213850087037989604383621542880507244734864121478254723143542885889204227805021118642015570929756607152591368593949274385992704942477260040867301064123424326646147398167114963435208171100741028731343599322100615937493092805619427638545466948992681098070828677060247078780348677939858991451460648851229307210505758602460635496432770997582291597438892363378532775181769133900402826756793898868907850447567384333547268527062072410503612084701143023634355936751068585819545575285595439118693822943283210119884047489099263076204650833027319085490855461885659492574427407291356423575336026644118372335879750377714083304350879167484882906233080877565590182962124316476207967999707164935755086894078489194352673085516306963074986530346398746585755723406993401530431686003801223506697376674822021177877887381459092618763165702604160011374921213992697094371129078982534609205114328083876933205430603999935472118040461538053760587800416069189994219873779237553066835160251886952119343942795891412718651012218619629074958526710152031469827327037403233883835733061066459021642631037256005732450283116346449640431419062302268048016570953342961689684999837283095463723907282809069646486787296450413686275294361710214685863316037930328190947303401202082364346123842157817328007418868842581582523730268571433962568633102493745248802250479844275280759727300307746779202849437636075460004214021448277861192679399001895395595426888117761053516390541022238730998039343191544655023791754804647649551276813459324241050377975683506303459116315129542529174486305106834778245939573507212557970481695249817689999340534168028541469741302803069257247058824020134888880338512188459954351449577906809175722724941966979958401667118922412344335908290354531300209570456277260362777866889838232776457441761095784179606139344625396499581253533727975699698371132105541351433701236613441260358539629014269334561383197661065677734251756991333420854769725489331429083364472464366470145352716350515446845640216057792414924996346964215889851019605719967813546346139783941305278466890143489061064258332826792665403840413031252387742569066498007990811130639901190274285963105222527260962241365023238226442405785743576488400824353183295609530200022964915119991726087623122347210706027236703170751340444738649408045245408243894720236997365173886039876114201811309990445147180349317528042795372128582008000004978031930521208660996005268522992570756688837729591156052082364970475600268781058902367096093999843654317798033103726411890377848044856174824779615936531102781072117428693677007321043155764903318904064693529301165090143815387531688738158123290570773957185077665785589057407314322722686153841291130708369862602826994691429976422972662104144750904586508877056313417631188399301388134846994835984371696541186812878281512587246901837144554704580132569614725594458621227953376062219055008177808736261338236458362111208250726653230100933458193626802194337585874409099330979333975195734876752950906972192714379195618261440479014682026314978154570372404822155466645960783883378526813345073876426436774518668385217378623154313696030647536763704436208717164770033352642203734880635003559676104088337632757232040683089128725910560524342341807126256652706765846269480208398183694467068833282349271566569865318537424020500356383748166396181847504766374072326669035608623510023697267635458819990837563292065863484297626389819098515117834040824765912458073059711966000355710646886847548609631942198255452002782697878367336243709141618880750485783436374858388192524545821690321374490207831226947290146725364869810923329204798889405217852912574690741770388189541134561654389590455996618111459075909486380950526276318178445116107067761236612256478726543454973911267669644821614076252149022871348641674961169718389926592650072719195522907350700093360963431808973120130152459580001164276242891925995136414991435336490402264381601138845151254227557094153754113788184558760346810721694457947628912354664100889796395881999762242002302805154680745786528015505590653578416113951784226888239561716905760281098338036544148538239375548498215683098465988869033458203494829996386744332340367987479688394882702082846111523776249192895176218178715806068102814452571858886348776709576891519210704622154940433984019087906318586630615808791165254731063289724293787295057424427938187793053283344153050277300376163368548914954665516011275275162420191614037666427643748808874233214859891652649551445770034404785825149543137764940323926232563007116707386954694194525229215217899081347983558250387367400527871649142671414635516681013258052024203040546960591582876518893358289666596810458044218383104482973889192642390546318868946378570822901196191698747187834672832827332174483775609638114627372221686809684874076990207738682565789076475479348348175496181954512646499880728008797951949827137799115821314333901959528242357991406941182706768306790249975830987850408947859331546997791340700282729400149603549773866126512221293737889680064564054910195676571439041712490825626075396896409999251372842498912039344152564313067330689632217094168388594468273419722600031752549694068366333779105254992838175635296724420642562171384627576389659642655392803956241119121476225870171774515624123132008636214666488511009828003977370903664625461908236034937081042425483207113657928785354281935245800098805955826505579551840585599778085014290007244394028200393171524010152875174111152507951584202285885254834172534071040056095410635952635207288980598218807208494139251809669734450427531457714414605407523946351796678492471201847978491187022324917233646181363736048160405559170462537202222487902844119772489484520016487391986464360550797842736574563860266914602492967537391565837110546006862536395866174002318940586798798073463467755922754159534349495488121811388788503194891804707001502737134238059535443705557215353248426059706763143061459342271360858895591544369205976591150684544440054967801128845588031078698175860676725769150475899089587991589233065944828822419289768671626795219804562864702045760038775032577065878187881635424681362401151864913776260248852709715770562448005249408034439127830760516382391238274463337009244422489150845753064891881358838196728662392102286805217962948375783290185462326498517676869095698097117422268133864198261527744747319253371858706011509312083825922186676557903485907430013065652476883388035707241007018906398151262345772276107707195808297698017774546791227551522122478982490879971343703984685714758930953431792415732516816359223145824696800170436392199210720828514294789093926470044309852310048083762323879681210039922348749468574259164838498093442679868041352678204699454036352982512325715129433671129914297065180828964837445462712045027228156760006225280479149042212347323183734198665246416376536534521011655585919512101832131151860205667561958815655895493404392148009687892126382740834367196328357991923759880843707215174388868839404995310735571647336472584674526759412927137340387751594400434433938938311879143227553286498742041836061007074198126454737178510977131609192979461618651965545525200837896490436789567991471636664158121343272730717421867433110731157391341989541324845558729572930966581462435340526630926921833989418790093443948790204023490340501432614588430463720915145094582002008474122012857995209164107365911368783434826111637010639656777048378137290487082533963483292395706107630330538195568215083478214439496404725327113468835214248794052632111580238688005644666872042119892208531812834095074583952620598159155975039943293294246995198762879513827609485799622274255583636300018688478628729116631179428826223184972810431831438597346068473884089958695112174631277370077785252300098355267587883232796212350106509632489985433450355660889323010446965382975488663486434764349211158982361679371866322125718519300811404840646682830448039652343610297135341864844231540950850133859494190906286229013202794558597369528134283046822727563666912529797458041116762874419344803258138847791596427069190785135392487075926291886584009510674321014556340787579550432060132650520580885954429446567657852999779634840751643587105647037451877326341256018204881959835243772980696380126360798517306853521091609304677577418004652048036153752658984198365540053694715276637542911016950513212113245581464065995436997701072210249826143335144956885335842775415214583772466299349419825849288214446963822156913622260722994930550417616207009768372082633675175651891906137276363790850912971117569475003852955563396454467148203347530044608689680738887683161650912677521396462295875857186029270034277514821265917262625610575676071855536019487738730093586665965437531504844268637277757621164682323248631865259087985555815486144719655726129943506946883502884162909291753662080146804352052721015860750958287998749213328755810548346863386048571043661347966733264411552712633291620475915117151451059274265292784675032317083471433372527294139069760879827808689984809838940121146911339652047748295272287117380601841407634839410629263293979748545494019346715474769336394135685081489242855482372086992229992523609993261318051453969715550460713065081076130474689628634259106013852596591211057897697742214153608411414595343851434825042091980382731254821407700058692202502319309031292899521438497186260075828026417177146046933295907680490700085458785794698638042203994627129383638690007819092940329583701948445033354878809807647454794020285324955399177700545498690782755504848421019629187144925231827805891918321578424731949064295688658990436565985431892097850847064452768076179341281020491077690803620975714387659511488164570094596789123602922682462236604346141141809471521801696570095010491178761426449276713507893755921219764246140941301182524294260975815267979680751752103402320257665126120913810228767188909087184817638573887445105943584093145816367318124596239269207893932454631108144160569837681177145016935718927749500242070823730842552286244811940543578339912156338600954435531958224650073421896846497958473396522708851027637345979239955037923490829272472822727795096214282316966524952489874429122917438520797678179132566700355764724510676319201067814004475222510774500360874867416241656395902070686005945900624872265366071601182721536665074225095871273795612641315599297116313670541677883905997885829194255418396443001871523071430481302756722405285670765533507849037738262423607561303134920053907455933687589307065192250123594609496072196089580394929377086371175491723802932844834820985529015556857497303215674072883587065712070575159332430271273795547930234708192464610718769723066412755335643672504763109760404347206120137950305471785871109540786122279549081513926566553861737138348078599826513171973756837792345122396496261390532353995756579847866099472188106204637593053588817257657596532812706447089062957529548209009017222159909971201354206092262979601806752725260423046366121820791060552453100437239221247921726472868485929655343696805769106969215671908002619717319938824157100413423533071883972771063865274566996935875311355050389291918140766596361269181994439509733389113869237966906657073858083062724983560567275005438615318341970075763155196652955334185155059852113693314505061837667553693377481532812485780784611940704541651070845003366224041736228758329447327172273239261149328946981712496422999925640821705844478207834099416779902030567784719963739592423207080570949183651574239032520209364673301407866336881868982786542897682982522320942580516271928488332003364576466634347625396926204768800150349292334922197479362940697774091354388272121640054165457920270450487571724489311756192470620176169562555501943748542626826356349842406833211516116069496298606432440263186117221844673135131884860165248538437980965217482093792520741291978297919727854521860232447326392505029225238116882804864891906289540025120209105406123125677937635509793190936733489918521223415954426995295576404214590460051253073144347226349679193408291820217288644301504284242641737633051703583714735850740587534927109601518833721890135610048230068771092142462556194315960264618717932952802860808317360010578464040312212192978413329434837526200261658658585893242007510186062549568563612012575124624096505251821877471292843015280235232906569780156202508429630094894767568623409332217101166857190754967105126565360919232997457831328708144677643842868086413753912816430577093991968346042168221769191011241803034139601869363082108208082161075284623259522842302332007650390246826783037772712921578595551274656174774321123827725599285628586322486625481717240068915697902787265302634185708503500047558061995226090824412487772095639107213351906692606057224328112645510604712908890936109694206928743617834187094015538490217945170274771722978129030629196124971271270624428632505187214513123297506632640544630127347434942146542086892196306300229834233363063417764769866167386257154305865882198654983246183559937548725160489890251868892917482808460515696754607004153418905197127679220551835276369258148124563876153757078334188258622741004800853309421129840713992979199193476081171943016060875822066445030176236653677634764878108673369165439630734051551749981364324728155904994251201528553257791116401503021204184371310612840784334747485797721268354340305712897661731967424323544862491001292066067094528913352999663528063547057629294451493076904806086607181500658341479270774064347959239126737032438999826104450772594884921415603061955378038329774137333593841542958903489735832453902290629996089278176121843138105639489354220556206939721362282587623856604130621239173887866232966257728712504346618648087161337976782074605903967735403617991727256841077375398559633439989676834240056452519442590294931309602100817191774191344690043118728277383129105518963747962690411692404092053863182468848398484438277527247195636852336686177855317503895276997558943926185511369323391966736304219419845898484690682717760744020466429549504213710968879155684207120937767280097126639282617871606453505567962246735435902748817130092455755159719476416941257323695535185525495347070309476621180259078844930506955832779386266328778863072583125089380409412486716161515250239964129362520914197579521847765680958644577135078157882986348180064029538725330527258465849947222319629276133477058015579940835480489206966738760029678590726641666650644160600760248935176240894885522520871470716481645516388692068804396994422374504363689605103895066433525155724049618173813754752642384196098993720644689100708735284609423465569555541721100949132058563650258810119779526865581473165380745671792229072270038475379830138366678803004880028666728219196029077890226043795588501699000475020163410647293157536419362460103081693999369774536983027273591009419122732511791042767214715896786117021963497498923435256829506399427990509606731843012091974878497865240956410891948883441665479793250694313298698077999178539478518475098330274740181265767643579127194956371389175774625818910389035728312247417938908357467834380161179343203708848024005756202213601616485269242833902425962713191861188475641731923298767077541854005635596358651627908575320855583693346682567980167190097149234374003481782453915766555135169758358170518816375423003833919888302148988395020672435963673370222445579235381850666300460464998816102015197917408319405988462353136825528674274799506856477596300881092860230736497576757548634865121417393801644358574838503383842760271741950533240750131424854167775846912807101609673636610917628840751229785696867698613136904455532139374123932626949178505188760026743525176305877577619325314642714984666372399548523300194471452154354860221710292152809644535744211528843985536131664114529948447438483971271250798053696614851655333284853686225130758346722635384787147482953206491870492232956462207137248233307748942166418353455401976525563128895780374129767476218631087680406477936111980267386201543786542516294785604181319889311979011408204502674402264611885465160483481013983984429780603313717268708051971145684977057951153975895146415707340132698212550860282108264790751934554550099613750314383939550721624546786563723081314461400919474627959362029760370297870401614832972554170397549122829465582548511718599018894604413074304259040581568823803526728926455944411340138051381642843099516948181354453281578533076585439293602699092670890115906961068695793408162380851355595281082588897022106895896442975075150512435033607631853801449671486333873398919804371486541585203894178989852412665938641825394024073325351137379741520120500819311226409217083724340329907085298055645700115079984341214798780052361750232103384219201312193816626001818586745315556126064426911879045144118901981282978470319139466491273348731815241583808035487658594707803513400262871147107228497079576110448700765914919315477310153483946420445818299755232460696635318530321101444781840895333673405342175469460675900064002858568108826625284456167076025615961608724514154712055301775080707628349132293315732565412215526474074124497598038991717314008757829529572808622243584107634532092837650245748444036653303418759656552729399829026981393238230719080573679775777223238180310554533154860677160730810267340337149806068007640179287034708259088224452784611701891306791730758280359947582814736036158834090152715603170192689854112916887067366537371968803905747949851830955506476470373863584299025435396154039030640116459561340820014346030372766992253222485709236193748134950535354567472457162679715359360950630804147255431822309594578667130145809495233752575620592637710684161730119459827741381407648319515528479900825008964067796287779596071675004983562713473126795952015307375324396304214491667132783287102077939755829699424697721132141890819982707155141114813638395103599247464349731176395101377107488768835516437370742905226396099195476215880045139444782312630778500743251160956794966057624188483183602881215250067993965597209011381058916334146878173847941861024394029997922140147130782780685869219539775973846596048645964333630538538335175560702135444158942530729888082350664436145739071931430583787114471106244023212040227659638855501241160197245498212527507754229732636711313563848853961337052651339697651649759945127129601486042091442452117531579002070080208998883770239199971864168161221902401778753760065241769984431032103229980089390097676632724785115502533811934983451951222520226803060839448208882647234885715420210713289361756142805570079018103978281707747919836562786207917443466289155211058959848043953106381212256688010216038781925909971524859717868378458286457536825056457180135193358081080363551740501156383578516205662773530634153053702224170385429978969416275816968063517083386073886562446162432648110746168887668380192831945773365743664173240997488925991001646484580357872249672766686523990731741842817539551772902535215146534226028118127053733350440172798086482063376368744809665898795014089878846703138807952237087759917908638809937977902343984545720433086878819509831726977876475784447051377041643833707358674529268877405681717632385498056915860331752891987894926762570932938581729266301929473043778406522578591338470520082383453259920176241562463596334787186284175561952957473559337770060736052301106792257662450041252629002859113693858971687910567835174509702417985790846796713505657982675653834459518592648001765083017206281263269251321205487623455911934010914849578727064676687685994046309463918080424899450286113927706413269552567248201222778228434812171336736901031576044474387753476957451538477913518603636467850013964799178895202938848377610134145472489056521684463734909559745179328161372046171015040649161255136065439079375103361365528511883218352960708950667713960372325107957055778321899972896831570230495667934076319010098956571177157435418565536460008171750416242175718846054229149676885141874530678080124615988007754864604249597326526367653544180429678712564911343786827478016192327273892472756991138354214841166897416049592299461293352815772095269365591623122482929241715319356478078106484133011051464502211870352043001142368001904749126149681353166213989334562130403986412773639475889792593122461454062535518373832899061742435723987624107827279504081136719696640042179157725811332439523849060647179268010678352332173660382665245989917953134212494306080461516576738958749780547595846172813778855378050254494220081024847162805403229028083389763435464309962510167987511929176617519135299001426957705769630185203085519458288754731946121951813222582743278735155360677725172989451750783453398266338175051249789105425397650733408430525209817346105700144276498529830862499508478811167198958414613393600777446286712591737215704199699340047244376786355629115474725335621967392943171295713037810123653722903976107539486204136019799870947714776723187759884304683429219235410908953257006272235017560104761567899020065934019872941669366430300388637334688811007524531210333442099179045394788113195106102046520503064027593745050076280762459975219955108011819010380830055245962792360779019679113334522934336596638737182916106635512798235084418166020775048124996751918460905419516427751190213054853215223069603970632921392919565246889922361601540760916053778989490262048741256761187508120719319905256802612871180036838563768979178381961640279885182817094105881516376696341602811714348956012136317794114162235084429951393383198044742699531965165462811194615887234648929132535731792547378980831552143436253236209863329961706017304554410001230207986222583083658239819554646257094096040856303135530560999537603055765144866032600869309296241136092776781477256731107002937850827948691292770081250705347324896128095070870559758051485107795980212986355001305627679784511719620605631982550067546603662456860636847237132577512345707807566568844959329645962622990568693229022500598765580758997586954706923897009777630845171728740063432561129613534997550127933693503868707870468469395959272822853834761444757036815408538992716315811531470109966639570480056676859071156780842689815043209822357616094567115186651547032696098677387360712323956818218150286670141558976257554547440157048318138783938255343068915792133514301441353271294838463513344393054260098139052990195038271014450089469859630188427898225109536071181438271017094319737897578549541507152161071920390188049058409745310585723922771460492544442287530244499785323215086485374197141010115501834502758978705734634730046111419179728930090490341294425020874508608492702187919500962385678440368710742114325344799652751025859658769405581908927611095798065027998703444222453583421523404530968713032138346865605352146814964911684646301573314494126329243142534811290033989438812174541230915851148083770991642223030469800986517947635246773508265230947388922246030672103402670494714093521094950254361038484421430790978570372669611017561687445961694146913886113661357092833479309563096571534160438549557812781959664362859310347242742918628171560657424445654231917726555970003475976999116444470193115380833359828636046554317469843211106056031567531295196190645540191800810945367501596001489847025914498652743915697961408908616650385995032242988477578642807602825233435852865838082327860384540712169331704183136177799332506382990949937232584367524833048053520406814262256436364187670341763501731415576055468907090842896268543336961816930086256697079462023940612422005338240030162703117966567100663903589035650259154228673843778881458558523077140355345325812148631065737116865142722465397954234886234206847739781828481320625060253582323282737534850466764295464079590364040169267482532431263897845373416688497859700430369780698558877504774488946743873734169510076754839126563268908795576085281481558643915758051846936028103040848271257600115030428986127010173588972492194506683682217530572674793544941998344379968149147202796474369409370872875085385545890985783452596064253401773954803884034837984085587776080373601109582906145731289627199157262300253233358985862326966390099779885636264559338448145037528093372199168410737121177431501004487506636200536826313545041571100959019537352251240012054169637466623865568903173171646282970732047559571452481668475551677972856048400052102665434655326711542333581616309850247418621509970187282393969020545598528780378262998446050126571691845429896165562864458474907906839427209882549746277716350924261622667074314481236262570545214092326860336782223303498735560848514980390101009966959378126616538891035979805310221863783288749626741679516899025693495484369587224055495470232685555459257838541057412428503139313487057711526016259852223922565701965987673894697812202804367975347929274472904082834265238432773844198188995042531413078082377357330131282897878219993722995234221657786192569138914478068239123950139043555277139313404742518490463751509511168413966671722041959905401957307343405714888720339822436658183018663597507607392462579873278726271279464682870427298646249859381179902685838904086028393500737297687364562652055929269565980080122140211271792310498184347066370254944824876280496013564674305128005334045657839850895135745458174160552571590315893257001995650735006090045561075624552818613332692890386380876106147716688911137174952292868671683231669285368514465665945426560920627974915887650177273129603118620975406044825915593631099341577083432726238794148924164788487849743381779282424821533332613699116236504237864535097337633794362476300757367053400324941933118171628733936568380235906586416727621851930759354594258072083397812708159146650197852356595713746326700984852997662199929598151133122746686729410232652314219801331553533808158627508189998100679895293723781265201583624422522829144848675117656171634607387129158723511120125357190127999753430309534318874879561540444493855630652359323422891082275756594176515346707917457778636461258331031121357181589970940566674180811486307646714701552041676447539579386412879698464796257616851619626208982245221708666761366678900647225339347986738370495441207135561691254816091258433656541146103095729638236284810274750433312680717167974521135413552105008195485740552303472588411021849071238652572780728623586674783347966104203496540296058409929452402060836513023970291148880352878453213017165908895532922398425275544937021825678123435377416919886512841279752075889104884457230772405274649299340763991997662207900773145910363195273492470655011500057304794047262936187316712707794035848787482228571888124682024403430136937292758692845837568150020609391641298582931727513328630846313811602645920535706469224222948004304933909291202247622648688979842421629469443917881208154451138691272190965531470236016622752449493099171616705104530952033741782788852137214181779070265269031771056792686916408282462950323416442428606718865210120327468269118434387917765928920966073298306483945353431265738257994610190689506480631654089925953034356406902654941448149362106822718323209793589970629558006767668181464662452743941943728718440344501607888465872904154044986131272711231833520897789955506828140454710951887155071261693086717709268883585257926303187202261432411776777607626198765923472425934966336604855231454931918831739575123388799695226308581917319876128369439419658030980765628888061080881246929618879044401521333986177639039927967087444142023837214456297360969704091652022217876753018984924077912406406284241850766408034310344898714545797849794196470603208086498358324775167693125453884021372586357543000463417072091183256102735174732172650542116261392401934462844332342756276789445619072548399147196311129923511456204232569485786211674948171797198598222592977097863657295318111777114922537992540956855119582753339662016124952609718569323239812352152671796481678768816352481499475443315380760613959495882186653172199550872788375378777033258537379126740079453702815708795669726212313307547905249990216150143277504053811157892872266845947207744584188285191689210712483845059249745228191620551545620762047434257053444572317597802919700304220545108596626808661857142480877546500878402024814936793789146483388937604696685463461417588594588331158888893340307012479933867621430705635223577408221338368037701890652665592832906235174703926806904268874328650384738303786586745563924904782491223354810972072090318085664302617577874119956275445226137579878450737679290913912570333057059776102357502231980807321633119794399535937893774261317061169426917034971272083233041211253728911115702687813492558592088538455865434484965585641902361279365693638538708077512590846836480497080141551112989305978427034483180482299466468090118542850310604141412734880397967842811403553565489759510654603245169154188909932660076373837628792905613181186368607289398692171043834072786376320495974907071239012371731144071007408140152683243643066422671766371645313205001000712828803612834236356335940402836613811636180713021986374231031012409177075455113989427215581693052667288692688483396812652100484172172836616804254288488884680120978800457896051096729757497984682472773416066961283185364180983225492206594051380601157355964300886956677601394198624668210426070062680715229942266370641878801656874956645109873646018832478592838726908075923071003931201470473010733891881135951856106781909631445234739740960575988158403680884888780668656555078346279479983701091805521160393816790081213493242712053844805020145213079752346905360054075495370815737251466369986151355264370902720285326514622409427846814143414066025731016070165781743509904949159071133846017829100240503101503336726451378203736895291219060140396751021993080022267591068732305739476169104728886027253987898320447209059928276143947863452775572229149853320355503470748533633248773087942946350940608272601698218461514560832912730148212394411462130702249946488453039236587047415737596542841322000280772824327131452704986212906423901887775041646870522070679040288236725923143405676495890943884957908853217266504206321332077086605648931044723775782317990613459877124678544575739572086832425606443703710398426117424585150632618347276272628781758407251912616160648907272531356218193312103775832056477749037901636069173174654550712070054264811220852129371511545017543522279276018474547224786956476427820706183510584538376789072996352556040032359732934174691757416731768109687193358881058976629392763198317631889633005706457601668131234967608042708357815995476611079059317548781958892281709758678675453637243097001233711429296181590890440775072709336412180983386870633046339028583594809526970492666187879242225398721995114269011033883969568578976329686125609152894764683691760011695511803725474007797893713797955352990007120525322069144910631947831431857322689109268957086581107058462287279903171954400656294069738236323774881783053728498584961537285250416035369200211774019980960637298098623816553700725377037126208349237790835412940390374318915891130125256043917028257202916145509583954219501148565571343323930939316927754803814280211650250853475697768933748440250597823485454443286810456151048461309255858913953048847244978488929014751990808149837654159971504368838110343884790222532563373948429948818245406259822116898676285902496969391570918977548313104898269810582150826927397319689844072715153481374892403182828044762305541688780452468526836701428462198197336193835729385153081898004203957097550014977029181041995452860828502691671840627348491932741120921967348873041982996917490132510988048563728792818183888970863510051118684577359027736742947531329389089832782151287694742714240850872217254577518474509532134810946356344947388691481448815771157163738384841096266048231310219916956433929722933341213013443553570753438939748553766666253445899465803610305933195619987737879592411447412997634973920901162552797267844315560421580883044148858093725818904093178525081851466682517549730303133672780292719011962927502153405046252058226673651478167487992401407199950293007575369044286136859868864532473782479714786913953790770907310312086802177132769010716531822785984889349886052558507968495345062435651487510182750222647271658549329409197295443257665712442330799678654685674760437748298820434493811529688559486935390146541443022256889897733831102370951989373707331450500901247296648298846405019281207674208431336726970777768158094716222116013292555994391025511653266456856561902423978324613193531950827164318489455252853468685334457854513318843239179833186459430107038481847586557683587303539551781383425939525199194901042447325969950264021552409568459388414820129203079893531319574133222124869947258187198733964081812525252509259472703715294273312252226733658952143706638377225783205643329022138785949635832772468250560557582812587738421252966795922078697084834248341061526003426549406576795296246047070396983081021705952124643978495379671309702514382424533275463805432980538073512802717486456365500788845649444496172705183295125474047395956771698513928060155180830419891814047337559586843266110943391532255709459336640404351530838269690080068188108068890824708496813697365268622369832576280247506574836699246964195772969800817110052004358204198821899812333620061097081443285417137086808638025760299795482457642454535493886245438455359650349562206189409099901178897158298829536464456183539615862751369322967885832971821042593250778819518303677034489886554107731949840649455889305816618448032285381434183327170448192353627383036030656168194539302899792347656503833815713817237650948554841488774113957226344859114903163713544226450365552018022726906636951180479888970872363713619480154694072402205495951085357577874566006788845253430918776213148032172653928571557866586289545812703652486775841487345902210246639823290489351035003975355641039228673042548940072347211540971295998936657450453741821797107901013602287950004062951709701309211859177563762702832336601904332551372189324852276348054074467913548900561330715382149729630796614595014749010263508553057578496128048812643177488413089207234289038757661922175552149429762278904592925463589564723309777613993548257113077087457601082460200611560396959890946853859444372535192026514162896090164249512750342320663620604729870554619616812863754947712780943051242872758554078437032051391811423164064073368745460059141912432904719004032678548994243321161313140003028674675617863879047601873182663418943337982940039188394801276113886559236502843725827332652262442389531586329918084938429215790066468397721366785499653968957896697725900159449825423622131834616062929284396095072226384052492237205450380907596048797900329433137935424058351497772074203637848087143725895990327451862930572466534913446319167468895715316040703570070363692537782223219784354679267922351219251060431129327904068576363426532831072598295317128555234859711988100124327510662961603141330881849136413229365886278032025969840295657719805589065418219201350086833881898076531002984334407260234880263604359213819121659809626494681089036736825098007224263841799325210536588557082014118921567195574994210540717413022868193555506900733804159800007163475926270813059671985243656457033061926957080486005722029707886208416855645898821851826596221752030759663246335729027041664693891146705495302535389040317263711681074161028952964680526299927773405616605760718004631825901115183239655708133342600809935947158292214699718772662545219476823189890555000424506536244548473352930618047177436712859391431611446892965804569541313931635964365863241045562371157444913384873060416449875942402930081158417284684237015502935726868912621132726225611399679466370756808729623851256189581202557059010187267662269186478114787195417724493133593712104745514861986706979476828731216920887174137434366117780736873114955135780221185175844685011566428848224661834786669651612150790739267922620924592316202525609645567242057867277600984412095381829061340511324025497708578157423616047085247943472697502892804762805717157521158445343800586682353092074337451058302073455656503203174111122368220296219224614366889487846341289087819899617768470460132149401480962353881704766254966298338341146267907223386293989921077245899670132807946702036225219886476414485738396143230948703480896115000227032731088475531350252004227491198948915521255894998677891510838222680473237113471335088249798299220689566082769592010816141982598302026686070211772018860305632203253653035719098060419665220944150654620992572896668385125375120093379150900098531093187990946099661072406685109078757971091916472068470936617624649251281108596605482740453792440527826477465442205484199004221808984393921445829161363802943627679993632581174353364600524538120811181722341631327277078434872507227053091446901677384445214158797961434895777028985310263888331597053382718901132689987865802195525868850011881568272693501025960847046525314898253795651191703906423873983761342675629375129900196186774462132120505526631338807930020905564240194923579102892496220396337280406172833830425643470666268046763529660184834482715130695095120029837454587757735577245692993588737246232202710839753716702300880714320149181833911931804529524163761520394505881365135327043471746449615130202904140704350620078922357768473923142498844947957488886298816467779396963590566222552231928832285960740219885242950422179242108185900605665831014605424082079453618147901204218046093106628648395285660476430362963086846297478862203159818713938172969362718156557123073198468662924733923958003416551310435023158082106241047807195997102792196792224748902093836709099027889462543318078430033053941117580256455712651451751041141498058959950956123224403624816539774978081658669638014295622523310494339218767719803910857145472280556334565284035134752031360071816717785026562711135441671714847293340314893145105960372161368002260275509860851766849654885721794588969755027929304340003191154855429091196920435251403442084368891675942364656758975808539103484982630508292485569429853954806224964518697387610971908909407828552259782031857666536796364753179047908316316147123172653691915538142858116037560474718617849367087410702253971738239985627586494065379116488778749363705768073330108067961937000214586620487883931055165016723701260680289092600189376107220730282381030191636027177866916289317321766148361831330262988732898007008591241885038783367009840508120563057555809315256657084100173439548816096122264306583381498098395549354665294028979416364106657294922363067310879611062155557126934163219444451201401111511354562694708984998608167962608063600788227388272379129425532882781616691841591607875177520770702172421271763500978609676116343942051419899314020655687535353600237959258507308406376985556040264406622085866856187213578817116527621776111546412870509102002028152538773524750944157065286521851616931345567188790079806082755434701700027611250655411091441065778838361884551432191873080935214748644535622921702583233282884759699081983752747867873663797893540241468836624135881961458669430635670389942401896213937245261577591966830930999651619882223723255646443901099854047340049331680131072120312576851029655414969737295275171606441595382656874329254406790153857675229235748330419131707404880146840482414133447916337999036829214548511704593438133341720595083220216452978783353256563605855714824573456562760572616540132681152687854783393637938492361364026934619531719876498906326669196622377121069804185712123048215202925327427163212114160277705364200033347487707598577785619421594675291683381263059228722453961336568643220391097884415993643690245632778976808509437725225046324713795181480100264148815451923226740619200484789577748208546898320780542574160841565990477455469544280513346401090723772983737850736850389185179837506016498186469123793254068713099454770288714072568139032065597487257408892856133007856965447683904751028030890023468161639788656579748877193621272541473744069556305434049206452408623041773448974973982498878857840617246073598960593310749016516396824398694226383733549483891297577160456574125580396581325582367779723088357649514818486855387757767421599059002866029457424942601140395730406370100463635385488396080378269706618082485366652917779705474206980757200621484584792191572669798729536688738980383584940842856535883622077382117897211758969944871062709498224302901524765589277861976508531337494595790665774224681414636488355419885825758612787737807914865852454364791886421364611224373527175075639641064189481313983325406894689045470288824454887873065199575068292704144030808150163307847232350357220099997795469822629765970099503563076178289466435435386289553441505039971916222594170825064440861979154639771849922147743342800512843229642609492224325010385500450948864214291119931526622329739793018353044905636259947744903964821471594911284936801450787559837114199167492248152096911122271236234277070251339132236782191336788296977283006815179988270196260925836783694686942988983823894920332971293692262282920762623948309043560878172183832537060269900345130201191256630631476484931072682589857140814904634123624009265764001706035024160716196967729209243215517461824034392202659054787191681654525108744574197087735574072804448721976591966276283921814597745483920044650562987597391010685657440430048026235418870420185267666444794377355528902072474818135855266038302212873693712611418274485488872350329809335007146437743965264317985683261795115649079285931534967224108931551282437254924891093302341268162143105143930074057187392935354694663969244657288316320812581047828737423865702602166099936069148478905024667231798189811805752941927316811703024690524942286601341369452898771465287098042207224143956970261059719366508712594666855787287960232739750795475321622020682765438731032376144058741288446933118461028449104620576018849088947788791708036179863655187642918501618222546032594993511594538530069332260900491300144086980208418241647822200504968297168748686818476429928118312584979217441031752631792282525923333658564583852543597359422949214138793421155178129701829498860557981017454988760297660513583897761107025416113878034583924141955633393462847866981063988942799456842202541052555692490640019473341536296114181271039437967062649803211359179261086748389543499257290477423992796674478452828351349203659655264341537159728919527615971718857333253981713591271768731003204529527273807931005120883157145454707371186744542249969099545098911690238069016052740284115913888679732190170360192738215074805018561636117082684021447604962212794972223729731588717050762713202840667374968214766375291152960060831346120850644880161508976074588793482001633242912455571907411698963391939645592643454183361863468178180352187682487959607151911026544854519916828547056314379323436483178193424058126027049795468433705174327448786728657817423277291344815799154021990392062101006594977753604157496963830575120240266901507907073685687821705672669946586301189989225557114669108426895488579280098885242499825469914973035754896680245331440680466234912398021638707248995059381883858875632592030624472783492487840279503424440915577910319643646199861065685175694207800416190663200628162179024258445520619341655100775275189081921526953766187512121067705382531902193470348605101906710551888002100220255851481610167023603758107354553548281006812538827969087976877541080159358320838308903846616374365277614977319286722282910270062219360964231107509072513011141268074911033316558363255199866360221146181726169646333269278607363083418669283770304377602668709077816852274911491928486607728244019881628771554106004048682339024219804503556628346217016219829863162015635552077519512254143871277658306735236602348920289442913331833657871054756984489883730159461882316221174264791137128513640066961990424549932258751841613996354269676707067742996375328103832941853724462945827326238595895047731538742822403443190242630047061118878752525502876734749026388462426135045775679202184197120956662444470116878250759345850724540340655422979005894878471405440199897330859191832914636891864494990023736626892982676786586827123883469864661259855100485154882082778137537669846935973419051816607750555108677184904961661031979679453100421538352222956010275414180439103263322806850796049409324486930395477497459215062207098864088874306595419694344587677723028561341616680828602227521712798923591664736335350761670852978463777718933472846886092146124320575937349029602632368730256431315232168633190924047375964056293350574931265627342473386413758792726956394864706576597192641137071396520521496235133899888985129896683631213873213151023381000588275326105351234081206454504084222426549503960473439601436669804043023497813513856342551420610032591697998897786416381361914461661109783647614406038773398854992665178773572194303816360047732357431578293888897313263564598023250778706265485871962988613851271485837230160075603370283432076003008766307839578416015127940748753715652152725910097065184989323678026822054696429541187228439225395404368459395651992903773220763101113042160512193013245639790951343636897359080234348174641829557587330477082044360697352743021695754273871312579648944131250369259922461412497569013650541074357945392357849564614042027201052250154434628654088182913106944501583049286962766251175433338464749916952109494462885153301996071594899978651357327419340969492414545662699506144817131230291715671164900900084908215092561148006093442449782209934358282802914054506043916462476328793512214624720745046017937414211836660871385939477385012969935096250137136433328737006064322609646532759353873109163702236265872273429560044682910603775103351443778132949391236834692801936519601807831481245395091077592125961523491957464932052277455682681513647267793272117092730243050499474100730626234213291846642575295665867580904080686584293810976587665090270848863397499769150216730454017285151969626934328378339347900249040361787579447039668017231152519122020553958318391471918288114865022156325581077693544917213552960912350195114050674599692736189952647929523000140246090414361790275010982511785752686795962680439420206934509985594955914078208597504013030050927314392275505516370591380656419092391159967221049344655351491731810701711680923907475199321456223486282185193012801487752098020889484030005633855667253597902675375557627789393493819642017259861796613872121583575920767443872376331254464867837123264693381335462387645972718770818182691235404961938827509948005267730787842602503816992588801522449138838968592725453962726638519727456175996229614165544634977976298633847804366236195038405264745693392444994433984769062174203444102542082507457193697736085869036587879206868429919772887212464300820382232521060344928087474652512783522629779543244348734688281523371333517440980603058907421061451041606778603605886941495351140216434632555439736882494434379252675609785950587487286647783715766004776955682342851501392242429249715952585165789994482259846352173298769264148405517296202559097658333341149080389345051111440522259745431518889523710007335781971527601728296758942048868517465558965080082996058799159106009944720652623940307862347620490192841026633772675216471175436980684349310789096851879243395360747597202500955690147994819819664582549405387012977550023789212457120147438469717859555052093325883672259175003485933041872565175135259780618603400423093420910539982353892426396612901917407306089243519596251543615611611697238309768381700370189472674524095553151805803513896717092238307427076323261133952473155668811030141243891890123442488491856879593131549797574416253762517323005194652930387667992911867716332127696871807324549960887901973699532579225511238659046130017822421744222988629448600136914127700361256587669514358211602410185072748018517322877646233044150604957182918479060510882045553505304089386472746462414260044296643813738971481801568980004717724579648602105839501276509042183907163653441524908465526185563049450513363994105046914167786814661546889487667600270801968449812693731881137684811270477951349511613817289511603761262146601251467282022655800781245200103284706602515220242178505901139119546791875347113389281682423201533533202538189469603386062449574432750741104886929540643739153480668294558379909077047942515588090342479365699637034227928976962188784787987762292501704515365903389662040684866171986888764669584502491079690664195403930875550522233906970637980169089085119845490451322544879014087039734181085092117928988423569032450100023858920395937879820219333446706515629365073888643162665288603620768533668429686284958628972088596124277006567350539313213745297312452353392692830549238811005205672193879726885163484776205657406281364912028360653823548838660185347797536745408809624526585552940457092999834000347626025415848773509964965034812602939934869666673068713080762849406041994999711011322446645132617639880366816832086273894350676374139875792434103447558847292970646671529639482706711897962869349920443604005600328302749062771890473899350460828447343170015656678837230486970799561534859713305138303767262010357303145462145296402702625563424294321294253398230706502732636871518171191004149611296167316172061132034992366039021337082418190790202483338450805449578030123857495974575556185071369350288528136736313738775616181627346541659001009919105016173744972561638240813148791078892806809020470825069378603057934115246722662089228964868010877057022528614276672844425413647750563895323418009394136518019766322408811765018142758128225465371148597130281669406516159441174102623514655635899710444744249083830224182607099117550507632368880463367204169315718556156894306777955580030370478585739347808758654356664865660084550419813917458015514413033451259763987228226434772145438096453212922871907790003639527598969184383620462679165855956853629404774008869479132641417300159446861053851174767680386255811591226837279421471471660961797705015907801233626688149615688027516251292174120706386541113759614905220660054638763540389453107785394344743284557457080875052286809379876583751381233332401106738621960699195628875538363008518726155149418589306203836600085514632792292921910111245704449783442909472295557415841645624492111207818076712847120557971227207181152793720649750112707838499993291261740231586761373561140358301259007905579332860553215360667484065246569249565126416076462692743331804828569476513917352428349739043342742546558743836587988193050934692489695933013015101361120662953180045699561497014057525324259390654146677238520563103528576253329809474181263298091576405650199145269680207637890564425646128178391165322669921274267766700923465818351291106281177281810649623779860604010585222729492677512691814779068819295875118078026144221056893265893508329419644131502073210221532192566514456423363701250736188536519197624059992561093195487013687725253771230396466518730912938722776737434435832537683661579052237807991568755286133439144851881237315917854084680769384453502669061209564002862076688227983099517948186948846139683751826554922740079047989447908621763606353461848638464156824537116658311806594607323634022161646473578579635911112225537340847210025036242737363755228572820333150192600026736435544909991014823583111191236562074255072896660738782076955927398309251902167160690111837572791265734923017228674731558237168774981433330342482216861159425197050205640904498096445458630292786116692543276331031106685525913544073541094349034857567879473218843401160818139186660499050337483388514030378568495101947999483551223527280053392302161140831654693715488988815172072521363696273830702109650230581052816711598737935701657956401782645891073365824495373717851393887135912196856099971712149910213547647501326364636517783249745110340464387867185114283653470747724013616483112479060615257841496090629013868540704932466294845274066709921251654530612935828995356788017829042393649450436260861765402017258566387338329719061418648094111703381662446617815152316197893804681800661465908792891034370945815423533156242555336475329900456731502095974043944168398914565291486501790510022020869528021820294956489010330269475882651849689459500222924336262278239310631533258866601386966584502553188354885456703251674877972052381726393760145685389880411982056398339585743598421321786860857393027389896925719222360537919686975184797523670736964281903678608610439379428062131720522478625804681280254714547260674096037475094195537306619438803871236686523067011926642503194227371137629537494290576640130942288291191989487047851060736424767879385822140555876888888133287922991128534520616313555139962334269916954153791223262656960896220939921629107219274370239502882450006816469482641716267018218124490547788317741713065032270276220593004128934872299873668092471114107721736431841688576532902283908841049333447065356558870014361606800009975082902445050190983964268630592219749178037380950926843940224632183428706201374402027703904239848405392321589524951522093490799482399595232802046235865531911002276880055489115458745091770708296440615835226460444868287139108668329793593100582783854836147406325793247702448295196109248771055787325384113710207056435778884340831488867544642637822188961279888673173257615486108379011190034590770775298384736584540547327512758632274987500240847148331126936948865894244087691576828745720572187433776712551114586596685080169340250469005275015709511231672231501946816008229338540532015882909583206024301287088962518917730699507296184792176088398747210186884419866009338359456966053908220359788890227132070163563582283828915932933982553096049656898340162174620181212770237561898789695915358340108603245749178523602274749732696921637027721970194816277856605906475369681662346856870019795654971937520270983291967337785431741187007634935784363580640858947301279760019998873577264003287195076416938379265834410634360119576131072299332205930167895487631701330845870966365485510645468407043583766712303044802402967739504664354437684892327340981195655873773205033746113886588985272479838678882102406712497213574456282404880408273311215871159352353760643605371164111351249744923785278676304491039670293631892973918560293764820550529033038823803627310278065342577976008439952160653354670493907494809199822067729624511044376455802151520188172892359342389268266758002239346816222111627830730420541472404054736182604709041689615345546200232502982376475516152781392737024963281776816507092900854243026009340133312744646738072450415989924516903374760114576992480118680345392564970619736149477899746641321067778194870986094103477231615030202420447134209713638452453848702378954684930112176282534021139948292809326504450241349033034667649885898660895699339890596803963879354634303506057255447289546752848015595088813465656857370841006748003315090576646471381997453205442406762769119618050009888764880324564688454281916698563579907650585373576679826760356831054646153477987175457032176611796743372816034598765126870971867326383536030430951132109469386617424871747438781473576989957619614503720845155145027341351464707222492497975820022454112666273086118943769479299084324500558780388147253675780375705795569101245801463745782845022610153161152221918823322051427740364333656988226446625280281315930637099550882362557629858927704672376848518521505203572551265845409617471931018232578094727927643206284996716990158319627843102330225699751728696385375100506227096918305329488369366725303955658711805911381583748961244087180997106322978549088067034011090744933635237703101430793477974843466241966802184860273412105032531220944501841053459937383927003712377477322418666671611173546037392001615459406872998851573771121121637917944754818803993548767075928317674114727410915063733968133236085410671810892107504571772688791066067235528923252315435388338135778362225557874769327340263010744507989933923529017551293413915551321084980452565423940641406020721448011650727791484044821105145832287591163979298539131812827098227861111919873134795729161055671634991672730440894965655965636797294482028902268058487148397762937325748873644000425423316344954249380414999069576426113282075873733060022833490015617086571217398401593710269363196538927616219914666606110639580901202237172773205986962003856296499182164695309179731701381553492708889765310662679854356660098391487555390894526093365189138475543687148519170732239936996290917894321019627892077959285036276214349946197213577554987791133720639382152168137858521783598119819479692340457637816753109942126299352974764910100500197579655722250218352169665410549951461807750343453550405304155662198608058889484257947524322324124104583219365570601629257086218139907012332422496651417032088085264241255656748626910276348137479749147875368866512789691727131709597499728244310921761744056487222928945221906568001361297537860384542345430801905270645028439830462175109309663377818076926911289749544334803687344514310297355221994596766878085712514228983570930329346793272136318228389299461861017823653299371314334290221203782418030372930946760335697481383609730655674045315531890965014984587134093726477893468831823869083616416507695654045956665610775213649269976758082091931710930054007290743944617375068700465735445319185164351746393056640500465130879967979205181077771126872290286108295351332318739754217344673659808907149948248880062160424264930462169714017053245832378905200410858804321334852907267687948341555293878726284831237302464282978245604554996893268550206871399738530203835159822785223958627565008134154448077104348300384269866828870791704469027363484281208466067888269268382906236915941459014102232819030291878684626182758647931175099029529115167314942555611998406569137438470808021765510708474463250400170813816182584654310474752702111428907488445124996129144999353389887214802824812165478317380391090598214635505500881476991500433145412954764918897813253472254749533863774255494002445491634501737972248031292665158984636344500829999295213001521744482517888526565915274368275475044902612256333745003799767991592617970992694350731963238852706273896621690640264395816006897893749973169204044277525805455530021892096640944492975061096889512107206526983553999962146579006908845804543583269422033590457029655355731597214112496277453454801599946896784007160091588749130024120366657441527269170543690136558023766736510014038788364242868582157570905847810707482208331888610854236151871590178942691633432474075801477835253960748121031626995281209906237577791286426472640424690292865897106665985151515165277077919488438951931847392046287545884830571514095111284170746682424230644367647233301556894008515735011329784694646856441068801964162496102209742450144348703028852236666597059845305617212198246950462309891793476480744027582648950758767049072829166420820419544633151303711945491764980429039957263737539331608017956903802645544684988500262935385014087787732874803009759830593531339237830232907958918656910026912534469666981046264435335703600713944964597512922173766836679609934754230505505294224582073720914260149011458379334186210732273663367725635004333753278969634314942471574480299392390726930057099038914291731116131361945990881403266215957644095138174526993074897870805164803562417106510287298566727772055341002506396727303577069319270698866901694115008795941499166625158543414964382685494535949481513055558264231365642577083343280315107542708622149381790061359377735878362364299152077318923908985160667616312668486809562710207079761854759050063381595639371840883993782146032439636758958373961110220692901072101801936296629524788312155365281818003088695426461147011248804468056588089015970735866877958292235851801068654886244731893935340119617606181103010188091586302369427985371169948120555108241043129194329317611633067826641937403687687941998994491103060587254669869156855184443578742986102210683914947041380404335967238765813927290680932791234162157925472651758856637307316115266637390968493002438516110356451554922931292579487350445333824301164576294796384528429480796645540015157139467720521667396288014033825644936589243659840080885929036800073492399666889469232818430302545303653032926832787040257413190118631271680062248478977978307555823112863954411756022808595959738902536920920799661873135646034158642050691119169606219471382771947909681307880239257757839284526988718369470952703903670875079264497954541746012631212603654676103890767680391976948846274093334856568696655085280704862034072089356057412882920226128795658718098970751307323600007747783033466126994157028250827096339250040589998860256827163864462536412800553747039363788609627912346747612261365471500529533765063228890225023633225085189267316187401278951371124474355543445861823034524088746085369657063379356763012892404406915478475382311782726922118836410313114054967258468898729824143431043156198316857022691829278265561389574593186016046272859855482932315499636686636243865738499863179817404528487361201011809659223582806675182520690353107124938331506169900056382523138103262758134683477592307260825162632186894016654209261466476660506942099993974654290263903169926294579825168314670854149903079593014477056345650294376150390079513532591961592650873528713313987367440082569325056270997933863123610191169165144376833859346491261816113566113951410353249548034041258317480411190356933513767049724203434016749483285285936864838443191960298732069799698944861007504782244667174550787509054062872188914319870780646081719551728857616843739032161215860371092569180306971287957927458013165668824216996602249624581911920233364467148527471024682894381976806328943495891653167685614822716833755829032391133651134346295422579355363480881283645420501661676376423950420219777862340007100745107731470913138831620461555127142728777721064962278539379702559657574190594416301823436308470404713537622658885722915768843755783810345443715945711077869839873194049454289326550694116314282216143397476415352285586348267465271776046981871291091101860128570314281316431522713331183900236372227637898153154818098982144937971630109865839043868218369413209142264217611427906229995297511718190738986008798159226293487473489933323452556155197689583096393890006294750452906611879010505382700758483988777247728822043783266490809387436871323087851665066997842629484255444615820734466982294069480587952525142341103006212783694150445629733759608525323959363101521951988773338003067883147003068705772337687091646066897402869339541126425443072245127353041020785950248273476851231611470813053895729572593469348899959183410014209729196233433570179281973247883341031975518318296597904436941515471142465699795924674428064855709731974233937101132990174746629899940570597860446885735150618595869782568269572220424789181600937169024291883925697317346122517688091040877658765970763921959475916107949677300599244212987780338329802499313083927342312989672382296505695822200358692421333772362934261508117280464215145028751345707130691057051550604465055312562227062485485914490452082439661993407041564489602764131019028120908745683574656979908666811006096506209355365242586595391695121486802867537578375312600551611221372610057745455005118296713364522836819690076914614909350677573202152801469383149677732058309660823250230663760936112421469484043002121161416379907021632880622788395169666959088760910917216652646013155757704216410437481835876944486150415201031669206491675769597203708816324385755133915761758595931105691040788062002642573768190022626928054262133751464110805248648630049889210638498121118319825164133247057733249686470822461014981682961218019471004420268477392382642311664939742103033915642767814981190411299072081134489614678522777730410040450259921064676221251774467302061427608361790162262265899381054991058501614652618899460564114845798662389915437433254578657181342578261361772617295278507058905719086265924109504804764523220485796061982249433043808407833577325973783950611694294904173492797668057856095284341984354153929931768843862774969847881778871250894625272136465965993821583080819100901941292367912624645184318146975468994676723702794635188993257205974571082597738323232569634670954978908442486078711924518782328278744660067532533771365957106885405527534618703771532548122798998062773058083633562714958133939995788349326246629894585891854014468204714641421772761378888246045993919046218106546247478089649780924173406886547954363649970903108560943481237037248139285225054094255202158956973686706318125138780289837903039205557335032102125449287450468979329684277874469473041618207685735069019006781487663965846986894533939991339366356652122039001139152679992572022476179376458119506052033872687130513709889097716146585136207780403601513139816933675850583833782638508785353101764492454444217306115406533517394084804521691174648620490249369635173527160723202791932946759046401307796980078072304686553393318161208103038793641477441768641577385102456944875950276557466837207919165926012282532513904778611404351206509177658197436066527071599286738189854300406918398307161806626534499958224842253412892641207881142557021563441683975459392789416798481282017385891597785315193363048886608853572772150659830295355287929450871936175587275804660039079273666532205834229164322869105791584212875324654547174389490961844324500170094851146013639075169189936145425012686882727523369334659442831036574973083379267787566200182047952194283005344633335113560750747159590322371308063742030235536772459697017208838086857482891980745211792041295215548745305592202437812341619116457982981804319893868700528112418098742117556892669974341537719732429282075049024003671950243063902585307700724726949568947311953169158318860476985602600666811278523108048918771976906002561419948850991172091344787499677439350367203960072821510046578101490516232159298962666037644923994227999207974956459687306851064273435831345208562795650443507576703893998832511994441016165589565316021767227967532015431087637117583661952952514112672542085726911783207717044168506294249779294061579210007590369399223799039225960474883669402858048720527320088361128319652567023929402910253207890199654064471707669694926672764819157999443875840306437383054178846753525468618371276941619639383115581513987173240579408643187590631595501358459016200968894591611873205959225715518333445329509191420825276629020423587039853451834677376691044851208129591382095328512616214373567629802800282214896928767215174525127241584909622605549950263140833221890428956281166785150340163659661181249181868690195360279101262421586550148240530600176459235420963368901907814100073242637631558864084866364135189669698495514134297554109896384783254366426097247914903672409933280783696624522511168445023777707360902646759946579832871446257946145287357412713282841670175584261066497129050057161571300672012943874059211111381367647777004328889399974359293914029021846429664348232918602303856769408725168702058250140429301455706840824233550064784751715097702658105786325318172882188536509475567570658694288395070969767549359467278874522528408127451809755845785638330726997220574007012371471647330888067802021597960604225449331718839114446460909613786097199456881764664808445728215916070772708088976564111789680229566929693890847490446249164599389544152469996409236310095438118977402282329636590394959189006418828092707868524290679767199857036610126749017602116824393352775862523615055393433004728593445546363720523373942761110327158235997322574832428002592696109750221319778670581307828943147890455240457232033580103491825297995785722495480475803512183271216818573273540846744914562134153119371641354179095916954814346969045854858816911238992980438851188587014321526152522437922586312710523131708345019171404752772767312172039837419566172420318247848473606434592087868461639715227170521114076380123245483704669247408656207417906007758154549452491841655703200798399384449368117016927257058825930883305591650525465520613883472162539997834568815634497804982416600856379583598030535004427406609843279751841225200135648951439496358908028302541019143457144362091559644657127007851554388681597763593842781714155371773663806710682194598312507380513842756555519283085439182362948961344290093956947405557076844488233516091408631292903967782912187525022493038192540719705473677162378626067022732172716973448902358166101574632206587205859634439177916700792518970019760522746608610481969412024597883318376327722680115942350932328405305409485515857510811385538792315335912440491945921656502393172211403529820830297366006799703629638883088236624994059814366024935377334688754628333272373049975649432890906969257251737313382195776092985505248785637972371881481700745406008438478471783927810826328058742910676149183940870602874387954861889639754593108109837441752554958880680378266184703727240906241628333766167136225474297991756519594166778679970265575546503609130935679161785243584456340312302667866301377696105504597468277602342171209112870916160724960009331229346178344609611393591786266815673013521600479553121448480051874282668286264657796746566990111855077116472402324119801099190960671001716404269347763365640634656124773128925952332200489073671016931987640164807825201158855964133009756495291662284854212335467232326727638242200300915926367081800356169040188488434954860456357864013146636402892288632447543942318593647952439176456376516317569686091398326551666357243747424324225490637174111291250549280022787559324062869823522197216437153062969151645228816641505572229382404571892633248971898956415176949233415891521445924077982284616689405875744557331051184783455840347542011792826179409435195106714762036870661048627883983127644789543282190171397971950944663886267962232680442613157374626450857467041213091346227854525201550450467645609685229679570614791946142065902563966512686272978746222466067967956390737765444554255384591386165505783281177393590797319975933532517708576993438165148899974457213591495320468025544555247969694076131784363535140260293908395827304794086304769372189867138807708381422082524980420629518027014067977826236039769105610748615165342035529809613135307806771552535212757433471715605053848294464373096887655610686621725214129102956456071225280756444225123496780326730062359967573749742391582391238311986993586374845849385817020162361314027571347520704775767017028239124328211792982249793373723807497668848559044951973261492850631898220275651778998137999584810411702419919576205133561603908576462800108833722020401047693921656342987489822004687457482384671132885960960663323606308019360812939833960725688090509715185296509506571801236733094516996217155234248401938529688698554230020717332291039138338366500285116931235366079735470802246342054055323262958608683737901288522825003741147119144387660299455349543587320704109612102710394891469442247265111200435272126572982311199856368752400047476253590355882265295368669210965662498314167787169098018048703429186737127306370692189653748328001837397116441106408681189205118678173006190393891894529144550186056029654624058443037026244254912669576194294907805718486487720167421466132177233869357908024293369536380824033873095426258907406919100717317809302763728543443648902977822892345438642747666938189197230973768178318707648736982206792377635706601348156542689767490219118495166059676826781832388244720292722002938404061764754755302961807990297374543798203183232396040642433176814734921856970128694309760242468812808133243998072002841201215467173905002922923844532188379691110854311459351705945112046457297724753989782553752338262413226019944073707616991331293404939064291003763120073712589918502009965707516273876539576713703625842614065555983638557757485348887121070471557516221437793965627999633457171889159534322992538884768886718501906171292961779374394252607436732563517180241752678017722775941156734643315205683837569358121555398715069774250643705738958152426467786011565873317004833347768137102870192613377471576584481567423531861762725230469186704548312707887035277267511124953224414072405169055421607049591058336133636348875211167838787432913927512363086292418926907572268857610357422405690819912089933405121470140670006985727434485735112783162491660493718470717213036933809349511510643084827801432877448359427635405806726293301100438696182104004539255452173980107780651035043846990670399819482494157012251773269613317830439091722268930428449203771241701570622707020830273162627021682023836916139902303176622793815059055057287387121306701093416195818828937751162217078795429382737145249690168858144420033626393390502384470108668776938944273779487250331764776075741833907457597095605052619368230015139296240588801839368099445695701128933607985643580639592591747380073096926651215339273059118607796301771674640399078058191149124277072106490330502119351702967835604464351055230218183392104551868261479885402117641285033416511868499430396630456385743562541960703167355902679871939659120989351440863614399254209050822605775030134711840985834500882510425893543238622539566492938368858681108477239741625554447038463356332985050094966689091329851124070681041492570659460203200262208072754693949483753191137856190197222962550292299622954411324700526154078908164652585471240568085757148053463866920888210622676397925859740111421009744432435408404631510611065593069136747493767079475912553762371864427015684528751266133632673232207433885347639940096844744047821743157155526471182079775599353022533933731620409411395341478864658365879298862809767228217647744166568876657828625041453389248186535304647374583128121300679352028034575350586835765892189461964800758780140163578037872108126823928715602375898357893280682958747984256605816514572756944342841377302485442987841505684782793007765424258895441667327271694119639377478657901327784784154796776977162963636631413750852531266008890153067450989568108742123101827537068979380258454767675619465718002400204911836986042543661554354279131685130896080185056755507840028133884263877664637337376847292724744119001875455003284793685278160908089916652324366089136593177889606404354527701073343910756333976187703297748956823475462020568353391513732112674994022425138443093352122835072120765138041889066312282764267673677615242989942970253501935035824814556062181430372969870166691471281446882703239667164343531195207938436518182612676339413817121521593969689315735142424102569780537837588790575359833925259428227439264777259035625757950464690364408389246389168238843226730951725840621950505964904947571500953214816663929927350117771390243505343201403159889696417593873383119297269403512812550716847296272928218219445986909840629263499168188102854949766761652399087173166148796388394492120813007580058569096061130887931495500830879230097085225965015675950452529679450867638014052240926023183055748814361004933621663351893160653619268834823436287296389661271674265748606081625458959151567672829913048309216237420517627465462264902108089998856906167207666293131088895869861553311428677368403827475970091469241283526471099999160074184603714328077604508257271904031686803322796711615540427611713742436777760477176229666354810713275378814216806730279702091303229056525054006024053901644656688335705162098924948784504099262563915023561024278195938722758491690967564297626799793454295711747075197190930760372404954754935800328018624368469537081011994846868647348915199744003054857766071735647818444439998785372476405880834200895623147910049465328448195337118911344881728405414458215528360804965515494765416034344879512058922423887326697351753027526899065998876723522675257321425459997156413802046584529863747775403797944532062834592254309571279201242861432513759339874317347332061642426413363977144043302035685788311094541618571183798594991870023329301472380036092646537891273756617243069826488330996890768160083454359129155253589226312249252780304399635607401105990405795067186193794450837972283946657020317509704549320910230562132638532007608451836480920099743878134796445143271227213426962666181676315288486438458815491511604154015047939113111225788372060678310312469350841002954673827990963126700918872396062479207138302408854881316347164068390113821400344727304910047162019785237149661356793498126454369730124576222962370477699413866944304039244330782575564632569822004091071511265675981553739787116784872284647927982063139731835371433715746389394776949464030192983644118728079387240506608167551290486656189660613169166695781199262407466890624490252925135211208441363563851939448822910231599984055361860642158081215052687290044026501934974984076174008860993021375720666799223526510289096911549764067757218781771610700763937293962227081298435824992550716291334539114127733389922679795335416839675592145734532292966857448383673493196864485395610946592791313570600223961272612053289940904439259720066164539501381255035564401489920337693118732448109739790337768217975665026118820181457008491865330484523399789412898395820450731412618235448971022499018143760623427638734714123814408082735665880804092186067138900726696913973853298528713559540414359885977784084291838212731437201128436899863534948880087750122140370042778213028240787287070617054761536432222227665901474950034491220825688754312444272386937576505832178612993557577241232125076780150268301644942938459819922695212043301763833987354871774716346502077778815580381188749158608203990281749461713262967326028520908420555920750072564530137635437204007805214451289942868659332420929586146206758642647570045961031502531682225812323711129595218273882331187242533334740387488456403756207300604683785044999193310531000947945221514475681958972065738496417849042875365585126020982811681661336819605549144833504899110236049035351568536553344674236546178157780738656279735633062081073460141755240025524200202321310976818265920998365606863958336677102333496816329522638527501664198843181410423211413810619902709184353068830202094006954064877520210950144164334838493959572893030346442108577418372837582295104082145280017373447224380802064406751096142935294602107240997235096488342728462439167899010158025867336083376342935641251140717804768155383738347044663599382661270458401833989138401841553304022468373657277984178822950797150220703978659762884144552427743965087959854888092625776445270329784230515133716495405496831590746483053806572585884171347755326243245520163954191964203695480221160581376794476479927973597999672335215265088807270335674884555505687680631216017392588782056352218071849904739793737924815521690095438641397296426587472212510616075479686475094125195168370231319079848856485524431292459590210879653595630493772361461170965220461774767435132306176717535253231131351509632104088397332531714659670894521473798754595212445224758090232053480319426811610476219178163350372126488367749130822730602583557422445238068397474788196569288574844752878511751453057390389549035732185662611360660691058474484193252610818624027740246958497003292928321957524595009204532434378474232009330076362317563701436259154273415021265470766982694259056306671812680878511394328803580132767115323272687292051615192736759137472765144177599165452108706696217631005810013984303047856142991686109855977333480054602003059732177807713549112780533003289137949602231748872862508212011562420494996705782371859202643478043758564289184307075217890340222553727398060610869795426316363898044430195741366547272585312043512393442224656474697481192563150456538014539728620791599592417216027098734624905639984952674495243292356377738706229885777241802280287903266684630305091489764036251803717640603669261186206823615480180555727513172726559395059910840831698541052119658569037059600073484878224521024669737648393262287904798378885130839444443325872575356795164629957530650338153041347041483911847199617155934428184986059173722674781266391207467599104268715639120100209139570329261872592523550483047471909618232374851932540023131786912868235079258197532800091820766217338951450665482382818005865125087906534785575383681852032088889180460560960532903276030060047717276840971448442919302257873660033613534302404090959448256422741394505593082363859363612435487756280724692840697995597972839838073206513458858367151509801872187377221302614853494937152402524010920800723999312330193069545401173907207036025316612065851373107652282294895393794391294727713283753918773923387413405390272855593380016119735650637578032966835616486480171997749456870563594781381941492381202298166814386365315081778936139784861227694501482325962706863140135052168838931496284174082542454084085493567611091523264585483364323769956660968914683501210292334133460228113473080722386090800935749809268262592664118870766042546277522112247991552124255183829441193497742961729649330030652317290984618780523475831342836401915117494299896114685571399411387168445065676033657485577988784458281778809052987557848797205477916144633957254391841732682950478098385523038427313514436763301503613927978042547528802735668497172090127332059989956501508484527920495007223876970462928201327688037195822228025565618435471891970460385105175739771682355240542678251462037219895399491412757366365927618125897154540696595361928717081724378544502981279147465729246913591184351325486213740853203504846496270973678669866065935060231697503698002241907254681510613339610716663871677520859411642751135947843105459566270741963627376146202079280486715631467383792232774815932734100657310127748867450370386942688544608131791718283899239765437420821048832618790405104095016375055624322032658694428673763067319341951249320608367565596769188449534907736497953349500362762235012737488737685758121797101817682432649109498012111516084113902198056631372342785902970243109969194344233291703398392402110141087233144173468557522949543821162248958992012406168489911299455540481953101752349318858799253808698488344594312570387126120152204745085267318354952732250764205268649972468768953944421905845521711380348453694927930378431465055986864339999279370055028373379103052445361405450348136825569348520117108679753012489331062666943955939025488662982150584346651869266740500305241189924645845959281353106394607206149577762628933386082157436809905305185574237767229274927110666334625171623475144264988271921883090997556227238399584475756870308527553877717262631793145332766989834942866720704060129734059066537583473926526107003571289619424844441894660571287456506068680513988353279819620833792733114564035147033250521731087533675641909562253894243038413614340942889676528330670874268322901560993124996901976426637741231882621067058143793978016901080373105635069348961948641247114873770402761568360392602242792533029058954904154328861358085522591588575970369317562103040338531895988746741762633082050368255965114383656017070241272573814497946074155488396367021761484322406450248332115150064364819577159326828625982030826770147597833712074453450321948265221551733010036601831313499255571689837976584218208757438726396444652327284696622185105578818390049439735184933027437289527879483511722818681999103130782319753260449015254237626421418899821712933405846820818345235111579018072271338732456805753677219823809136876559527590788104518230019955440761470705062268643514952404404031307700266432613960963081405180473858942966735359380917203780486178688373497455757725541382656829989189774061828093797713885687503003835677982080579137589873448877233987966156822101041355540075105230662295491668684860136102293447932033781982479278613896510211498297836219553795369764032140440669542610976707436832878744851991213359094093249127611713576160318779107533237832718018701846374516048860373768431483880591920359480337744464442858323137567878489769297311068536179464648481806411139218413595877510634602585689401806931221374583470042359344719294023414146689668952294380028191509353203313859201713492611549163357112673569926664734317959653575365125367338869826667209417616902355582284549803556769137992111575159620561859131002305436134043984771005317520845803279723859074063647766105792979290056587560127727233060028655318328199847982208215261093649563991780202168788983655602336171755960232064232678934148384899612937699535225530778246958524660541208019783927416682637913373970048602177100979006045221196757841186564810951164633751463276777676872784221975371039383413727276080214838774666749817804115653570360997831913284684295667956340771445409901038681853081058882397483257072988597171450236868718340701770541931095691424157297600790427559563007030786003305787337156315567698864410794610423811610696808299885459023206000962670287452559926002548264430863870371392608818815023073787765504197155556295900308818040894600074967062532522418474869832401132474708629685600392179469596612158337769378618211151640505229879832495777816078448499863606790515612046946132873807409645855233192960534679388488997370840751697318869845666651972719645308268881685428669542987773881158014886352350592894205249924387177750050476542324958484411977272231198575572659982955325992215285446791411748932994195674193813751581539840388268075265675968499024017194300306872580798267465339039957454655623167319824483049433571741990490319262767029723298397967193870209525810308183469539115509874509246890690746040437792257034855021054187265714160740952338024361172932710119323698105707821417007984012376434186054267746234316663866336372846007820544224561489339256921418612636482523389199614185928006194748671446740546374709288878120441774671642149717027481488131147312840098042411524223064236917557768394077398250349071712308544318610248530801477214667575323631779099042302413929460371081274445479339253093201706325897767766839303687246075872900703437636482722129095438930701035868022413406710395126609280456321706966595683534770534634755838073206488962933650863071263809076883110075911778006802105485431819881641466456563187084017762791208550805969394392199414905940636712759650289745462412509802457287228487736819949925749617370711676302696299578798548972578012480533367758075559451317998647855105512429289906927467314115827542948146789304392239246736698723517842601330745352811757981519376499838315974329818198303326683827917333537671191899841720747469613059739071890396412490411536009285138152726109605163403307162418621738422260369009236466512101190974235756919706848965191289801986624185900429690728762097976388925981935265672663207840799739053586816897916792659789223929238435707853637178723152754299136874568299557839449520566214235713654505858099539555359352043064042772473043866522451167924076030586841379298892690700437927893415034742681749730643591251820522408195726398918632386650580970740114164094778665562899612287884643202141057582665279421265822409757261456233898667666845087941453382211131069478549982844614343749942069524800729501872499269877957274701436338796995679169322262375267879282032446355337829841001638568581300952314110606295105111815335900375025763288977812457178536688098839102719929390096780699636184750253358948928016874823421087394090632617533337910768381627374445632839821325590729336537632212234636329675986736291159952785858133458674875841781925621258520496707363726405218879858312628993066206084274798009301883839403230844078230582011757136983699868927574329258273784286087644178297589536057956967160327913414058281553670584923216377422429904748254570114468932042172067150603989765664891052303069595273916731908533893989758141451973546511492591732325676171501947511914116849023723232930879062250603140951199637088300556182870573080915376910246976031824085737686433333001062019276832631490697591303384217367381391062644711748348783377462917552172202891267177061192218006165205187712975835047490062742645547639817291800537862399789884211649293809136029282192483093831819888643111325360534581479708064045124539117373304987455292273054685735567370995893391280500864497425480420904440964174778231810620127847316598778124164068193236817741514198157496339526523623713046419671991999201393887180712432743072429762254439391479744991646373344218407739113491568096506995507870296272578320704981998891845985859852061141505251664579514577872509190458684139960325232035689721144216936700572306116801493243377619012409709949322196686158391366661497796376505735632540505586541610060528435592867718639921190717308764796845123019298585658641844387534587699867039834334893702012790315404662057521949173179831324260353169166934170737562454650778739608862205558504092146095687645372743545210328381608815704331191654500424797108583726205795078084981728677297644826612049724637668539614546575776357912082814884353689155356771603442989520834506743909278969386228623730635401051166037629493847785824327287421377451356973874039388544811663557368499504813155179460875768802648240744492467601422924124872797424498891298041945220915560490310918491435352719505634131737548285171954974038644614728441973596641532214145628579136382146229697101569162602988368211273371123792485016639727550504279856223009228750872553903426468494582434659600656362149774172952153310503934868151060075538090147165216253502886709506984086985579346438623263241543189464454367000450767868644914594004828520177397364291120788556579234731222376980267498753943532913883334723172976576263513284361725600402277912950235708869257573853443096254916861973645912450996843499029050766957209717295695131512666194898554861597347017860348560360690564385061006716895882623862521860954868685222378816553188703431850136170411323635612593078328239690193760544344149947435743727252967449823621120165977567712282309522629439825324105048835972344057496517638075677853405765292623276434762490269974831492708184112852349542919153500105788367485502816680477825097455002595952398554003729680150017564177434888745545340136477658854401608027823191250040856267968988341857140028110099222388520980178233364926595010840061942757557756276895808906858680268877565241926309824628685190651560370494393566802347137028818998717170817837862941838312297905572396323211173317421681158871225092969197854104916041217776720571877706478436334646134268753437391820997929208716010523543471117100867098347796521017787034487608443236168820750160767214443394094397604671304265378822808217669069756922516313100047777574326483142142728158009100861633736716007241118246543897920899177163285787013043825532651985100894457571543811735953713261228204563486001233892284948362646215409081362414208187186245498630219295556448003816097677694468052687062625823409725241908474555081479507453742035811706678249705789990932028448546374320689247650573288599586096515725651548807537476809768244785019882810567830458373722466813321622990422376443398829548575813944984504630349859573679922888440264082391073621810497849724701001089188963053521200683992224889299018508046946211387097023356982084765996108678373883516454505219303860388938550161563263422545092445626918552059792109680119128236365793551816063742440900088696109603202070145121677340022375563044269827348066476328181110841397786066116368552169260041212027218002766612910636186228879930894018532422038994954395015659756215220409854509130632264565892801005352736892728494224159348881267434271863906920387559831354310089408393024800101049964231200540442466288025446441691994933413187241929211087435818316089906868614716967189484846348225544296215628599011454417186587226122896165584338312117746663226915337018826786561516519578204247433811486265892300278341458269238416806737923558750100347486516255725744852291055544244627148887553152835540313559147047275364358183072918817472040813636858615928733573620173194777354866221804777605515823293874731796960758360989190552424391625886966015611050367578557348110370788159282380533880366866949104649210972457587580709879515197146647151920945665111763094519455201802493300969490453013414986630600345089314095764315161731609145254500430348475251935077215261272432221808340690282209930251668656716670316249448211532961819527140049478375561576158905687642170200417411624440350709737054456902603499583070786954966332640945510245768063959760724310906046863078061833836901680070344002873909387525195200313385910355837869939705833695369250572955439311677515259687608280266809150542112697853559997220090002483379246548114550337491534615132733150129953900416925694043315845281088852730348669126170517277408828443675859248689412302166920365877915968430281240754678426640149891784288999223803830419600361012519894180783289917076581729813949987006798335755235213381151291199562629912290630731891696710669185930925769876518997118163665931755466709016739490123078722339366778018985623945899629086368648635700650902417513553368676215558912859221482732557069615599688112492629350613260794428652975033863996172821536373068227551168655951888006043399639522277976035963543213769699952477400406232974458512836966664586594798352304725629022101971096559316000224186507527977814749083362071802718745631346145434783084903097269488769787839995742165077723465934614775299296610740941764132135979095977658508962840015225674013926792903716937461173750290083811052415348403602399301234401201735072385107539882797836155242902849275206501552783398161080385119491935697392964956900049139353705559759897536833565970595894239917903791107227083538321093522138139148618073470013627737050145969181855048798930489406899269472903529241259892054340059379243444273360518613549474865039754919761427168540870035984420737270936602089904640998978603496889339761287745857198677966025655795813245251934144166004537019505209554168218225148833099013144688250262392480829374170719537211019915746015596463543357964292640612179612850424784186879780379707877958746692177524607615661331702054000461613222815443231895758733352758371897214417745122610524085806036417351484297986545028989641701442445302635684427897546452018300090218226411845378288523586421395903344852422847584681614326469484735107104406897646152423829615912446788409294860047031241797776215496749646786683149712113061401970076004444156482675093180953469217112788892466686681388966707032687205992831009894998102432477686607894218572882845464108777152323892397786922180279353287462125744663702132469999895010598824225254950460500813081955555270874202129002607707473467634897392310507393826636728383458255342499591677124310970076331715912861888404692495617407786151903378999284451791297346010973765810393590538527506469084390041816660863336179762665596667760327773675785360372417065804351114143072010543971543739912076143063674011763204350255244310951181999055435854716070131981871243392096365625754800964682168592995222070239869989305372572055057731752812911768505514865289483595166562832317642313814029348941448293748403208830893944796818210047071796115531251781269687464206602831405947648887974220827896022165982549216779863779935182528166835382309371119719965564909679328784137914459838237576216415155089781040686600931215222801123937232716815653355984582596993924414741794872332375179306999843218360263589968765681961202902116612413243266090478000418715728673496272612785208929274963202869229435074541829744861445826151969626319982523400575016180688759389916259327885911228243971381888036110185609881511685682769504888347842537895592206329981348382374357865822198989933565615829994354424681489597655566310267937183234061574121558337134981622167552946871175959683282320083492177703552308177192650504338536085855144871367564787257387937382506151404462832707116284973261365688056770332845899472644428612871833638253931494919755469826015372893887537103920254813468095351126882700742104526915330303390754835644830721608818944488826191391641255495475219216060406951203479719752329529832158221287687145232638815907855223826613744518856981139441783845310526717564335872284751969204077431612998017842512150762292116750720724111925542054228786797175275342515913421443771545772006665017373018932102403638425850534280033363460550803250038194418626192537765208358287721668469146278484475990727457720315383972942083611797918211072716951968465823255403835125654563257627278016911441351095560458475320847574305426892929947532547296257713798520934812720566999969780196573597060425307652995757103532752264941972619817465487370185749392718431314169737020257143546003922541338740001511905000220453108662146470648985876356302151426580578201736236309475327367014368323249736794556819256650794802980225462250635645881772769759219916274450449462992664968230535440942534798282630049297099355313751697882925382806759335959194509220318674452145526016691256784135059611302675145122279778890624308175866403194860359220702392416004840529475138947725068862676086979010105823424935091454632689190213347586630643119792280842093308391847669362264438456425761634189243465035579516999915001646004227611145934738148694974602498784222789388049997641199879704961195075687886659259934661015902862435218300479589589776882377156457839909710564907702290706198899471629581000063306770613094829637534606899520865360014242129951263996804391022700221095113154395507559285430069710145046478463445243498049922941871401428177482609315443600977598127054822573413536362729422296325906217332677371557396333120824639957359902956964344629991004899688035522215862669048086817904753844970239066691219580050515346914960940629494992044887293718819893980661218507201968453589323246492262331139749238211379175440705715578141587368444409359038432645627910421244489038392704096163881996408757486168383395868975066984700968912038619342861458536618817116182211992358782252005386024670778591749288840264431057948035836744205069840704943423177654582780733079180062550091821886745763903540817878292962491586144547831876802882467223124683094032592833442863940908029374812271690363528580062747851135498789131302121967752427538305343042226112605933791976392718005431033818084989900612843876067723698301297139442403257383485724066282661111323357868610630584567829385513263589519685101658396537715728301632468093899935990197146274970482377808664462438141417716133172970073050152037718152613908749394893572472326338222849648014308526674988984859998627442657745404050444890685195862368577087525334958449628925057742615853538289667133359049655330651729803611645345212661397668289071331242110753138607824474810247051122147504063453601628230833570405507394825261938915797396770760556365651179114806635942039547747499284403883164935976665134990965649112704215093990341053717798189056421625619568789658074667391883206355053309648347864762331362317817072151486813324809208990929331311425987088715830925828390865752419057251934131271414150043386905060727645921089838822601156934450865534471486981232120475244491224050588080442950658567671666252632280730331064943523345294109724405485529011355956156624303845996765802329930022121358937479816611203924171934361447166156033981631652440649922629179417666141670032750057962244370494740825523893639969319193870843771780318349260744883236625029155598377470636744928838221380500107856555013242405443619885435053864793257874617201476468963500558646011849237370247763317373302247149161584447500219090379458840069437873706688969903441731317142825471060849175582933944748666833571471378328373237809357216000549082035158949233359122828394075327070901381945337126592013855272785611658779951949806618825286907631455096941384553317171341694043517158913876831172051902147116638075650484591721941018694617727851619092093025071797282004853180465124267911482179997591500948586820409037012670591665683457620770629222583805742946688315980080870861072156874134301629993221782148348536150581565800362352118059325360182460075809322154533652268256321530778754931151499574319659647228109323950852633871739111002265117218913993778403554936142987592516890624965102507151160729622586475261382744756652871769416178322540952847942302675602818087780481968861554286329635680733856800401094922979986543060736019754630665380213785662500033728456665750035241775187270055630743287618477420676012584898266078006845038096838197685740281103182407413739035740398339189554629827463505884222113936134391213433788867001288368270749737959427689460908071814761506431532908904035593313276996522364025526749686180431303683505522114208469383647048863988060840303419891822610883482050807604758137747329469766027846061925974593689894226435365845718266362336668565404243691172317078964784667702082237484721454673655129649581872778884417884508631678725438760872110324308492102000177029315946203462073514829625754951896438791013407456101911481840545938527436283077572901265221290371467506729823396989239665601337270876754059514003129484853515269171956802419397627625339237297284561963191328042787229618320780493706846255924706211520842420080269956037877618758893699598936962219563744697440466848023483541626055590693703817375979136444706336239049951868714734534385786479950097754885641413001878175950960892581711951833806420608172172046789951883846813989191381889264751056185064356434053154438869647104784355668161123326337687280251236402906428429798021591129486378143676191487606449051439298324854076401795351980647499609205949458470757063379156867164755498112218110094817791845131035815442711849692952464927754070636343659510230482614554825663391958311081496937793098277017190016194263754047173130792980748323138845078814742467419736110290854151845954405950630353044764581052276716299790417276410919304996417890866756663706774140215247422487000055694126801095256452136022586267987140051890423269294800877182852342195724057612709798613514646393482467587948506331426356476047133000678964206263829652044137226864268206714489676881190367582551262470716117830249126086406311297441244862490444846794109538042138951811670292211189711614657297582959585151361494060725400656638630046695940783300341681681564713125363187220825940456335738889003966564351177879101194952859022461187836416043893131429952237776535916971773511735768836004798404081506330572471249240039098886674196208674449988181405236291149074672295423969954033106942393218025436423631963741922468145731250525575660403793797601268759431249108743532803856443044382748737048145236493302249771348829187324145621509708621638122749311125384015223716957591522780234294785756892436313688790460625710960077130604079676750350913564128247869790563780864615197995879290473852492863439089107771588628870509943855364798498409533978544507348158176174170857744334379811764811686290516515199036258070804155135772713714330606947640114377547328008000018530185926463301167428689980219008853713763339405961413117203930392247477042187785994249875203199142868976087889999922926783794383507467354221668174229313243057083878612384684165651551157647809010830138223744622718768884137675459625381495694411540238423728457963463823614593615768607270542516383946196630550916661294330335774317153879506959180055999095342770101284762356498907381371031398347290910248017469276128356320397154786595811495113047202156001799207372866606427810765706320497583531468833042278343004582422219498642557630043238994427737645560756764823520059783336089642638080273140708673846913779551174986071736358318720419553289423454116394492676879208892753898225767894488285501855668417292492874157496485466337043470749685668211848712846152021262956772231858511129981313452732214444961205919361733858923033647153398690187914733351387235935405977451778353443684485733151910453321172447826314023992445106565034526923346712734715897250742092013034145391127332086537247553707449734730742106686222673623518016382448150152688262304626302405527103976904321180513182877852810795669572093763709308048837224357100324595814867233183345035396610277357523699505060734721957933921998683054395481512619422582658170639032611778336202026928148841077005767237136563263954985959464496325082739002961280429806355399478068607659333051721137507534366581016380083350007895556943588081532510849818875964795145479547913532796137509636089277241515675099657199496660144673541544203442975877319412209543855794734439202822773221939157920223669007204127834525079436726701958825370777001772284317840663789257633528142145484246461960653910013125920452235116099072946939281946897745214796997992923898537866228615739328463658683261958998463710105317401946637688894045057774844668123499854934135512360302223493933417808822048042690626678932998137876819827516104490399301989162624752673533742679436958443254631146984328444372574888162018178479764832453189142814929334172073054016762802201957526297802954187224829827075454366724707456207669928099816659588138665136150245037962736908015116675357274671646434888973996779990118036086584580502780994381658323549880229327729116419973143468303411779199188460052413068825588897363504921676949295716364346090673342180759591122428607287432477989196289787276347812085769644089289898671903970159429234060946583677403613184439508608902207804555940216544127528928685775495274789042204794049253242727234610134691167512995461938568353262309191455380320106856399930788911751858051637635421094689395692299452912969633357410458051236861190494362331226476682670303021764240149184371979620493234777991590305260262883793494240601757416502162229888378526624236796254298664692236093395184194976667876360526518777615632663862724754419514889134007455394901465702159387588595679409754671993327135563215796169285312978135426865119605662976933185820309042110976568787822963759439313933873549190519697526732014274556552465733262718501483814666283205524825557944983485042544602634643047625226652429897292638275337299695889942143874285657786202992805821051779715194274279799739872137390559143978917586092581447025096464872386402351375636429505458497601072174207735397632033864810566086060394172924921769473801434886538198110378211490829629046733844251625177767942938060565866758970446128879734890602323035922513747114066922912345519969609033767158027850664071628168502772632191418322680032152794232164397530088522196730283754087721003587402544215805646877140839052321827769872855482605811733883450043682853323631242284730027950733787692176694274672015291772851785805068692568254799895871822799460544737834713895710404976653117636052870420863049170735326772547527402355177860028407689822119922344028193352307600246429381532922860434602708977880311567500130599351516807238975940741444653069474691551529938422669690594945736255707037749880973378951381392193366098847305864374367787797380374608993746113823689550344330295023574081013774290788872299334030750929217545779445467025174268214375999367193702459383314261937153312881302961918798271555804138108818866312129120817780304306375812578066057849797097672075155827061870730430763400405824009771254833171340349875179184380646366287027914986498261307975659455999230099041766442737121218413420329776461835315645481623284450021582959774263511838114928360134820248689173687155485138647968596078102433547245669486100781211562489690468193113219612777614136854422282380154898461324252130692369362795156582659831172253183971404348251162413929549596315133263609157396684141579837574965822947692470944176960658658651075520375280201705288102216211258072419049427719123767463955151503338366278627612598149702124593262035100348004765339751106639280349957250342991589940368340544853857216795198427175255105434123026400715358973962020891614779484116902438339819629575871254386432327397669829831682592080330928147905841383856876469188302033051832091316919835746758699465673308670120959691312905064547755078627433026640293757149784652684083369306352207729530366794248126639389989497305705884641496099469716592484535703929984607689179976378340101828706739358139827471911521034662822115415539527210188556379132164979753413992252495573798594682055422422458721853158701354829548267349674483489103843716329308077864828339295101992615585578799400250886000721128621874735028571127027310366123216849635620501629481940394499794095754613447717901902329098953565833309346379457340596432623534796759433719573935195481317930031856875181724628033386272422417184900768314787377989463270812338230359094529208710544249452012116178718970254696943470971708315732657376492389492414095494715038703494127195358737405122115050663066247269117822204352644814796091923269827489649608626124150579844434981509055891168995541954518211131106830000074748048138153383397911454482961916422803832926610567937238776130301990598390972799078747855444229887770816933391675833150174350651920073640168700006593305725444575322042042073037053300194291622667898558921795503766442028671788444964158218527244370586581652410759712686245437225728204152655829359486407025222466527523408809100077860135535411190983885037872863275281523173942053055054036899549210253093963825384804429511147361994831812703220584838569902690650190526382818313282251158202503284901783110415778833856347997614556729859332330942693472051951650908324140326097937030729413530109652083862016016447436007020740982397762940304724051859253244349319808220872251846452554348788847612073666117580444607256975987351899530165593661502545890664460607257207547801793739444134039598007427826732005326416493143020574510865203433073651090643186150965136811074156902826057353246856318194145933484397667761110263439988946557807285310528931307066457321078582833626389622232105118670551810361687255945088566268070311618431774655620022896310606747770058293184928753692457653564019028920987433399523889948379126003032799678335240547198807362754088773003591152962063945190799162991247124568358509220603092590918215126959791331758465076730761633170054190169815205947442989903756771920565025810332120612637349223013150168647840503974897532711691888670215985989232776357870649528641117300483816646752900412336054545798510690059204875517124064959531242823512264785693040272252918913194953661687398567025937584469844691331595555283764617883457528057630229201793680177826526951164017552298582952745989873507916214698103423651607996984401925374355272272720141944489498339398048309835975184281581498450598263078676334362347524061318994468460157754719654883531537232295589143559562969638839962539319500108859405966715240525209667498026470819416885923508040905279102728433329159585748260080269238586538111399597836625651060111008453538574962428381035494846070814061384763316450458052737253976929728211409549349020205121739300174433726901862360874344535737865465422353996773158268450363839043939876408195151445093521011968744232367442968646045931079458817488633502294623303393431762110695744288463375894961507701967707485849822387314965247045173113023113840429359195122072043888977152028851767702532865772932863564554139766284908289597660339014922730566263671467859368468423660985240874957168965518560919477882953169351491726956177317840744292305899653250268037531565264342082940436645623480014222364650093901978755780927654778614830568854466656368332948107921529862576715939027971189879113918888537456580654739912265142097545548231006137823057460374762142383481272237041967547213809939083823271261996513883776478966470400657229393538561887582061220345425695506608525834796500539655917067433370514428872371749509858087631774563945804646583239758182828284744147119641354719572455081749219709000343008574924463432504847125692391718329175006878496599893897626296990486950865206341459251448938219569972405340190231435152595201798030225123352923768758278039284093488899005979311276127648240215552091498678509092166881343490758359497890504611294854188127672284598912525035714570738957486039159080139481986980048714283611140803753576841441208158716190772307726846908600026796743678017374713369917584770764737996568966619084920838113587019264193008771118258405424297357164145965722106989899076209960008636544498948887596484256308503341384908579045357744446302527736607474612028547161239072561155134134195603957766816571474258471646170277274639695919225568293168628162554057372961485920927995771973302003051592762172001314159574396153290818503583982633796161650260227951163132226072459703493682055957574853848127690009800688747313266349112648054996170975415880695188609228794835212540657164461296121092001363432530029995190642959380993117671848324398104942889213783425141610411504434529942421693528870064524279071723220133023635225782171167139150077172300630274697197815500622253305739664409221482222720562193392823161336450530139226951986474583748659626282210271506237807512271218714554097880582037962735089042624880114973374699164322286775332430491418401476463632186382550728076408182488263265944439293597336857999969554093857238646213437942429176509953842440000803243926450374739169187997981419424263832218377256584845608600519739950685275332623511337829067792439747754912761518737526284983182844456268277860037913074871981807081519380331942006437461642290836834806710484300036865187568342297425510275068519171935586540074399119476204763800580186360105134410186739347964580723255284292420313800890835139482727875957362703744800311724103292680787146076849038415213489938213833227793574138757816980499728642543135000678109786219689179537737439911744927395528402354499702581341928437634557550794478728818318856866237539777404504471718573515935570102806752015565118154105772955325032448315285703578791134276729304540425930747567863095333578535709309967769016917764563903726739285573305402823883093450331060308978329922030341358320594019434179199197765601954267511928349923778118969628943247197458792705081199472508104200185005885367864643774351446093714734834388066724106198430823214325915628513521586893680531966828279242775936484837173293317781800556706575364806212448940608136688960872513076238251196506475078579969134865332146636430751037116734747540918942970955598313175152684019460533440605038975784752242011918621151561924377899195237421642192331959198863301050811023499314514873788462473820371104427730965321083851483229002745684462896680160240394223411099899097179540460547540205484231170133004744259347730312689530744056510211653566636142278537323733912124805885904490391422490831049382349997769861056260443439047115263645522526029470409003562555453051005730245981267850540438911172794675241284450787287819869015046347527967497409083725724242497084622487646258815752132255584352617482618567437664296837421114158925052969719246648362938896379391553859303289895966292480876942892318748158244103668964892961560663619400557062846839504165057947855369508445222633987269181054594417590182528173081059301516502848335687515481930659496957143724886773748318998600328225158185448067438899350293480091035594660771274968264790201364205659156012176619362778637553095338808475703905103415924428238208443040033647362851564538523682090986607053965047032586531720099893727103407091334406330256029867002769100439474771046408674645469552197819717919971553390558299333575663520522142686290544386116657125487562066245090877981272150408978657576674463716580900871416535380852035105889963121389910075685765143438018312773811982632180836555606847657589851568740549820917253100144769877760203471612265878688749715434495945659658027843275625010140160968839309541481804192125039979034465113548393830557091577516717173967308182906866685428333126178462085945896675622815607614629841999949473618674762819834929160285435282548183425332331559159611595494371898188291195323644938615898478510691238916298141648132564318359121848905041786273446349170701437156516167221850199127146873470220021952529796236954413788527672948328301424735822434318884160931313012537705012551500507493040565977240547584518977688901377316118737960770883880038757192971645871871463716745994119281454004844344693540938623651906865416358188231277108452458467445324267232348432327329121436231076315844167426718400670732759608677501390298498342065985511176674369086105912869130805914340419551779428932589795805245133946984373156156993869974801191168615597151022777146536764641279421365820306878835413665925862927692225990209644387132009436271691792391360870632019336534771312635794376242780090648330882376306928299750849338676608054346345513786611117981533817951328802852372991068470016834638750181264380340985645859781311085406314036567722862370117774498753886161738311910725962269499281803641893265984482677522797416715515035820305669658399927879564059504275747409657630378246308112695650186260947240376216943810168763359877470881963863815104822493380426805493552263463363330436132130554854148365919717538484691191586693928639397037270429497669517656606676388787261878420907253510253697933560947762098915453740336034024235580315676085432654068277649269329888513141849750516112407833070038438025939399777917693163433758318693363597838005642216160135953701121332502936765076387437080041266924853038282352405071682031626160746306707409568317706482002234316915423132620884155561309007631851498867629134597692227134526494697667601399443954981483514390546129238280739982422779982293224778973500531664799025839092738814662768409547350908152362826107965867776681128884260016639032994865277381049648631389712892278513070170851764258621054727523178043043281077845574987686602059637400106449218005274432015360263886975037035404740138429930299137983168952285060238125074139238379291315704097817708851204392336541590619015826334748067390036337082194276327768728748844927542077993912373495100443782379196118172829014127707957705074586091244749745160443645621459674166329255311294869410145539711267505546028984982645280277155876903891223437972473461649191257806134814934617877758445302214090339409745732064799102699268217655401234602917849259607101336412450733894443706232828118300410666474144254576121584988748934857800284961808643249847234785533069620741093316609433819881617706311739935730792256692551216514958234774995760951483045198714771717315406422365151568928413241435373057648819382910769415307879543129387948638706660927494234867134666521117195615395703209605765303905420378586778953703211082370006962723250529338679600747330824811530791169705759346638468202714201012690246066911933222943187495780758120571346003320301116685157928223122822672111129426924747429557621810603899788574627816333469099723583207347502573201161848738227100456326846539557604016566045766591889249559061624419126394579051273620501524537332959793318212939177531803447911330695643255194200358414144493802766905292900954568379959133737329568143790312267445586374832788563258366559021887287597106401757641510315576068594389343487640837331453712382590547486426416702812867740861881026796698233303612035086740364175257135626240754685258568089621965600361773903464607846804870824353557207885582174997132011252264586995510721724505373947657070048078879912664213709395474447265012005577794053940324151975127372463145806277761183071276493504243495734336848748530473050218840623322382231879648841794235400089096693657577535425161938175462546198375740136264275064858403381556665719112690097792394698905073654584460046050011096627401970800619061543898046104096418726909583151226851790462679904234473171064291667715947945852650538661983097525264886114429024633633935129688625462446385654341154317481127702944271064400402467468286023357694335796193406098109927671726364305855042907761100931127076748623861748470549193907878642339852164817764830924283719738692907313331208254426477734705192122301191866257853230449158956076938044955093736549383182158111290939079139488008125213161740317747091753715721132277178300355134157486216018599624847045326640477692423211007591674834455974799452276861369121494196164738106036162995716228219632972674560833241102266038490969532331661463209941805564113959530033723199247980535953584134821448571723628161837337199673726719009647714679394994421050697988198969455974290378974834584642052329176651705882398344653068785219090701760603191904828518023956990631818083762791104596134459652295403209406216080829486316065305933050168454109562071151052550334179511324545342850909581275050743359229323842371994384778131679911065157884525728060369271989132068273896205699558654336640388556798044451128660903003891941207892444455220700814195818552547523442971163774521109989093181030393481503295080862291621960925342490300516356780272288756154114910615998512228277946858078564995775931805063586609123259299867722256508013768523160568982341972346364723583537552652243478117054997811550603185306584562743131681097868212166788733638634054166931483368110284542148875929638195864556707645124956127659334309887969200357556425448230146708103837086241029928455040384650617514467377447103696956232229489130124724612506732951591332770352650508097243204135222433559627366692131495805616000329508098971492018001198724903670363924318416226548035132168178261102981588648050509453555728664265940508333169088057974032906033076182981581680281429335216638820282757432764879277010761998294308507549139486837304254570399506276762852900102609827537482943302002408631852337357217601690804509934550487536052690382264399070063088390632035525460888021171018357009768627986020602382419079684689599030404504150671777401418782261024460712106259980651392280568058859644370720050308751042017334895035769718002899103676835669615891189631945856416632379469327764643918242188194187047867708731453382060288326739559638291437953598656625659180246327940866815764524902870981903718907817069720929152026760894130917854733461640639633159638774721998637110437486743641870093748445820248733438711788646985422128732488345487421813745086256240629591685625567966436216270250827437016382594230764143923023744509251148428407740207456068704102556337893765796778919425589984020793330300525005151629559447935998704519347080119170630172595614359573262819996521196011704502813681786442673167734803270413218596346078632150104850248508230804218605325996193621466922277200408120789144274227701186172123367758601896096330018097584987137012683879713801986249484192028271918026096272725014815336828568838346791735489395535000754971318524424730758499282954225596307683723253556266211276279793248082310185463186690733172152394773201733566030809626751176887625990147819459248778607265349661188545421292307715274838103809940574616625004043805858089557318403183745811737525344817921707845249950026463262200511880843334262207914563162866321875925996182913728268074153888499792204049938490305420322928044599076918683129155661421997113088776178655751311396374416506345492270044021043965507634733587269891960749970412432757900499828771851517343405932231692505150619386412893350255667603697620044841673415162442233413694216968096134572464860288126775028948409795856423292888244651242090888308520333990424848635742646458645591249079120390761873521577276396190899376112790522732455545920975959694345011749103936470095895927379512035098203739728320409124764038782564890093933553990663616246020815984106899619155946017847054846805910315996114515830227354618637962637330710873145747901716694073216360612806991675216307175037442282532688004384580011594404543695915472564998275533736043977528778783720187080064726399767642071871561774365128912780901760200095967763403599553139830708050395567798382161280625916314441116382383950682474635231113777680848772044258990757273462657668042363247861158721098301820330671112636204023290361017474707401198807840717051887586999785564002296234261076377492860541615261389114979224710792530732458347263109360426270313818059103105598128712909379932554897111937009326498430755954716535486041808943025788470443659949067175900130991436059788976152060055135779076397365197138687111157760712554942236032586612073508387378593250432655494654629887066322160804837405947028806331886786452472375727183621527427274279924797901248335185252547653545502284686629860823254102664950061369511287298796421502552369311940808453212188241405587852415046057063905485952365580809385170224415615697671487625014408138004353830659433462686898288917633264705237017454062922827826825287465787779520839392303686280088085539097050765792732262944129684800781232264190790131881296496198402562220500555000184738255455960418989804076601007086435808357928775304681888047907923764978983873397191291569576245587671408487048156365495389946444804657647280607434829369855441059645398117117013617401449795391971296158802229139824946798926111055684584929044306477580123098944206540590106638836050681814515978118816868714970492513806621423075998048664595998162435451622063069107297635002799552728217551261340956336816564297939552122431098713187750631360122441781447002041060787241561026252177646678644683089226844447576804411283355303890239871102908971272880033506954036373645367299599802497777369125225011342198423997030201542000205579894523743180560992671759590994012258646112566391781841615794062057264619901499205764124457366043799342860160522853054767890590124068919454499680328666563179707100988839173229200926789859529802431775129751270759420243757535068278896389263057972096638698661110836052758121444394809972793533484624905170738995156346322605352721246219377319750165964714615612327752611562105497631834917428007320092903671361167827244501540644896505571493237983130796343804986039327777139081318380594541502569593313796884300826255357069283437020533801127536260717330552227942332272438716348490727257216655468927261334248956813441881086272628928933937723818859560996913518818871097400482532570779887462767812198127661554666531462015586283031804831147365518673190828059979386758060914908920410439646334212073462872970159443639801213038321066125631944784689728871715283330750009432762757541977225183495599379139961094955389000641140435405398941996578362569789832955506052054098970419509388576030917463121265738723431428690355369090021361704331295187617571225894409251322113076644132891924117360974318413294813591449643658060794764373352003905305669174825412821491850194814713574327198590662456533876077414850658311661462122297231963826306986191164809348217875199055985069882906837353511316168857016835747465420936255678109452586600997136494622923624482332283069797384687092329839437338838830661343872074385900358067033027202933026354937279537923395159000570977315162006510801410432561039018511821376020040432064429550824045734094102063909937974034443532548644761140376470873563943351503905262634688750410839058980997811578227028436208194730486049119723912499163570004065327826626882265989466272356946357299849136100806919661556651845977275591575550789173145041123362589334280119665530105619474519266594418154460107631586736745128253921683017660564992573298920230884616696296570094776973731390878294764519660825713429946827784909986901002500088369963339080470675237093765617975241854477821843917086354628024705310715720789106029768781805666857018312946622119616162931618692200277232312327624987748669496202830594379174441608520182586433691302847282647398288553951761471207088535921317056899465345639294420843838035444263938158221003952534243546712569033164260348178564847628753093965783803941912473528033496215707422572889283264578110572039134723127367400997161391275655962110472631923765907246872468636031196374976735707001578012533381572553104632156729470944217450081423480249029866085953627879921869755396030161608034217848381480288313522564152500236816938627976337689544389394935864732524615660916781913983340586311723527382645870351736888252591058251784997068955362012043250243860319142277738664150988501404564552994885703789825037042022632879001397149799861130322326442070789548217416939216774386626229743750746442926888804049706188126318909002793814192119979637755470794170144434994727205181508054680728120610056789784367081684541119011232610967701388387419147913738230668599448727099952912623511651682204318949615132824529318007681556644270609163076943168361386640297224407086674167545153075843644656761261431691512590502530936210056564685645661380010120360836101671731278619438854773635858032041395793384932765353677996944330210023968235121503634701204782305619158525158147664775057685482159243024083350762854235086422164090047940286097000336022144607837064822321065227701544105467449510721109984301790489341985849417172900007660161245414076102772284320690578362715898755001711321395189311275283767457737921202555146839704922135247837498324506849392334871424610637274294156551443952702824191003426133779008604627985784607005156747532867082693842281431117908367846690846523311504374591960642354597697340848304038546036583025014133735328406529221347137182763041852263674850409935909196908338414843334377317000960051415058998767380925962817169330822877148722033081118178122182537294920566684818222400380547479162256734023285448573582454118669487357393894148443592781191544968842605277070020793365457172792515276707416527031272290894986401332871137169133367449288001013812105887849410281654502098760846764288229158123509652724462134010891577699189212725411946488141911977072649710684789966331213949463255133037848205883271885612976859805317120142403028547760392307484979825759073476513995325088703873021627122566979204656663242422372863862895529232386138863799446256912854203583862394489056798420879508987459747894812237409575449635399706113546802286818423202102301956320722272522525648835027844843551482367749745235866483936742361384390667363994277221216293515633781489911642781706824090396800126117243631539792139264345913689040809960945220180547463041380426390449720125815455561193750146141809069984448548787182855323663842815835212309797817245596489394820430166741230663651018585902247233658986698690147451411016425589758190507303905034487371104094643596875523029406055754017498254501740139718248272405590786304748772185952359634603796211278936718499244546667172440583651733865294596434414121279457356575308890252479484831860864677866435291698183608736802566249874703040205767026996047688106454033656437563043849600998512976387848172184615470279637354690536458753043652459795995760056385376856926997586097971635744178892583787243995877658927185515042743108068035885202447388487782381072532944660050435052101991262412310263072119448095537571849203430330668433518734417071345324779519056418382337470363707650000853035153379821627167154171502407763967079474721146883367082603835324284780520327771590639672893204678343646830203393363537475781146522222175223021789851634140120557086463834446092942370553183175085329108253553943491378152688667551643003062856545108141338752028231112315494251152048398742724643019250225241883721527372212487033111138290050390131435536052302329100999774686818020558707189207738209247143140294075126295748986360135573702494070804883036254459152852574047889066133886408334879752932657204990175711825096044353298981580364333721358693497581339106606461806853661662269098034401393757348395939329668721534010069369890692604943096113663163105028388554856673239377067333599461560886190506807967488179451486895962409904959456548741689194022348853967224602597643769205547199568695133182064435397739162606887862661793549632211739177863834102168824837210550981296757321142463359059479815518096301945699107703869123220325287634360190194337882907289895964830425077339343854624405717662572343528455889691275881717308557251226973264340690321000764651684844728266069842389543369282016188050409962360545263333225510169385118501619602728881793630677212471602497900400644741611178673515736489115412207525149195539120052441536592181642695088598122325197410371501280671266111813414320372601898022827592895200605528817725172679861482499202480372361458226092287300521144183004086114486620151495335468920406534058082628838756323913543814392709676159507675804017574861536043733121130880729745749749224949729842412499467220904030011693626844866978299560582099954116512279685859070542527907367151860269150483653204216676154058573215331574219530301771039816285862487725577546693500777557720732945829846860137503615669238357613770229091873872989144077159162389496432202961538276040492690878519099487768366724091235170248631960834287024051082755472915428073841313537554620901023154462804433697005946490748218090984217928514056810018069096180696607437273502574490234965802852115697844302269420466277752448618813499978208901644554298714315970368401752489706751395307505713785397639046428770401213022895700946939610353171033809102366718027252319038332050125475899431610574762834111736530724278762114476322635869007036802308893294606592713448773482095082216902294083205661563139547800452351962446642869824475376927467079394623115502383446345284055419512865382578279103272973584833266998470914000969363729726072223323621664554736581064376346430952123798652895705139847079964531606311248756897328579279210925771062322054845967660848398170875794255042219979754073878882822718499369406042396835275826313817478913470340111062712186685382697081049136937831645218343732238969975960142523943470511679202613745578542119213119311858065472742098387462799604804373411170899105842159908042745823590402748787277640147390213205794993062355784566379651927712905954100475990143101238819332416775006503350786713947447130115644203017864653133185997514931810111328661920768759938535299469209045120353407070162418135410863412169900083826462191974499518309537930782386168178715188432936091243458987384267548329472228361521023545024877047982600290805244741231440890432442273829203195418054115578276063612898894369942159490461750890392318459474938908893035968448626735454160299191471916537214613642946874585680023434091381224494123173594835655587890491033144461838922872269243062666789541288313156784502705392689898817268105576000646678392057112502442740761676220893268078700321969614343637029699144534863572419581133060587553901708599292332727334957501177203647286106007285978860529488624174658202590233100975077261288199317376440295233611102704250420240504208711549756696435278502660104181516917631804624981478243505001407147216901717547095845867621775905640484945212072344474328830292925649154182827814995537019949920406630040862021447766056756817038989011795734471953668928277758077835983105990510324627978731996830568638936714087398023374285179016109097453663137755995905332024822358667390546790461656229152352885781668322424254380847041915612325463564297759364683051693470243582400478071842170745604767662572534543616078968615756028218563747605611577423342245274986226067894207954522428844894590241120826066694331567987078257177873873543442886859347276003476313557683277732942403500861241960480284516189604409969470780752560532765771383755376282566752843505378716943654202409872394122165288911800651299072936147685706092872629597350359305962234624039250691970149219728516305399087400303730055087351892156815771757884166858697442152828614686755019632541816977385604790728055283387212999040828992811590705810059727854131476964785566268455367417360543204337511835230132894398379365917241607366619035733237916040112929300819025256310289525454730830610390423306288045659050244387843049691969934311599404789002525405467932125474788732493840926475725366504111930683003238493959572202939245012856815141124720102672060725147889595938767545930074123025667460111933055717314637074637920501782773062997690648241348042845545465798387140029314720429103410548565204059392992810286907723227597429648464733854633981895086574673725978425787432191730005676870167713038026162059675840648324000333159312128515734879393761883218724776035034290403097045562306817063650470662300621470404520643217410962020023364996371735603316390855270856192839421513281238582082295885569825785311567850296127810705174546877099093619895431145495993388164827037436522578394628009349667051785457653932066436950636209333616589689065546388319447667936558183513738738440821041419452833730412629410266690924950539243288870521274283861174964597893178303581122591511572294293455559526735510140210832024046108469825889271717131290900176591613902730639875923625691080821146148810650841569677596525939273316307401858415077564495175927979123608446090012731932094894252645405268103935029368084070422916206650037871290332076449900135460113769761160049586281564585889978300228860891451906988886979155781581811089330878365527880771533669665689007108218033553358414417158702287776460150791013340622898877067902579588176010898383186784369265303369888531263355136764670530118062925723607936402271006055871275987387745114108611192202557183845693205005325206073805834820140548505127053911321556767340075511842270868553888920881602249279378631660196251922367836699435704365295436457610567969700578701420598604525547991191239157926771719361501986975217253669988517893405732036296625364065928827270745180685657186443837351025567873922350112447382641983304751071074625228307933609197165452164397562017873905385252718140514046112497575647332912369044971159640099960429959139184756074185332032929905081334849917804475734842072351635499601956332300828122439318066962378092029103831483516179310093880782614082359505017623222371768732172439651035266108095448654703565750119315632388239209868594734313836569775462112392067799638368968821451127576039987716445883334987133228944579809273307000998512724067446535296312145025698803846869787795983601687696099325165079532829116842091421722072335184730623172793788736858219467888377421341549715881347104998284663757885234269359358968429777799683663262039313339440835276417672689012355456789637648291107860711254507095487720681085972190973547161341613775838884852452586763120963899783284852625449908587131579336347837510323946823088005613560634321019847187462697123072165977780311645766206556169252938353647236386205636571557770408717016906115031789317371249648690289319558934690537403239634720301644551519836151474976521865026515939651537837432833890723229728172028075776501860303869582359297619514390106049945772456425042201784658036456774172756493417710225874915321462120361697610380816704331428302751690751776698053455951509093450968201424082299254256538028751592179964748590024965631681091342691666116614947223414997122427540887598137659843991387537894236447593437792888680779330660791884966205046043762743199483080418993008917471889581052681341714237843023660097695642500991015265764981198676272865278371142423014885996277435169792640198769882841850559779795268003797355293338755909073259343882575604922029552829835195713513622190980849773551552386099036081462337482086369346546574789343422937201467460288149877088978633235885590869594700327779014927141098872108892961488427361814676395359897927743568034224806460915577420015174570642504951985003884452463977568456331013322662299282087472074265831429894643294058892605392017114317374250051190093216080258419183990405471284717553116493367131032778099219921898621497900609316402294842439224832499434794424684934293291542111823572873259955298886049323891549749267366404572435936512717141964802752435734790750436900735862706663759362689658261388033578312162364663682489882776677293226528851949785858649256640606853715130156102079170842455703278095921575252005465123550748200650403655482084291079386433355790175093091648863754445080138598757318252377435044155115608178186968468864993381960858419268492515932939979778682891931461804734693344159175389840458358129767948229472359494795672790283568987742326576845002280653594718496768270183506246188979708557494603376960819838520756617338818607491468963612132931260864003081350677490590175518248931238794402052605513317639943510222602557081312230842264853108134561774067833882255845658993302297168871388479719322969061453646743804370548814903477594930201523832517839158815093082223737332383800172536834797682925102559042241611205700842298616460552609591341667898802796169978043779861285833230943311754557855670131046856690529710021600012785658808375908139111614924589747046032263657926330979119977381159283272241692588819880674264790199783301774097582070524727822658436716867896543575527163114148994472904650982597748847657693758375701286040248055214572649849763481827554649905007122886676370912499412861787908396617400468985830595857258229558961081543971553788039717111506662187630409277885857282965804093242140525667836145400663453796137669930528569823075111945978736563150285280010133988667534857203698589627824635998500079559819261114491270975453188387015072299923713096012815076977996727192535791877312844414709589620737904545594054573157461546349020754327320804018978805811355122457483884993478504858661889404296490311283483417395481484938566342539894342213736244822581011978990128291799174138107649778930017701342228229391827260937801965310333953122273624686129352693760375010318018160133064574486904458385112922663971903288984649613867391767634041609102591890071940491235979499560397559374978435650804324763353591694674068113990507572554158591316620796612072165073023782712895392459097080908894226640378704969258886625975759196472480510336017049560249532252659185175626029798099027867816127839812384976576467888057172885086721157285317747165761388828685069102094319862730199989266187216323841793965977096688352096263564777804890024232383257070096685809333896995968730362043924901975098830160503751141380879901304981292887027317099254618938654752876314054958837019604066309107463466605803314931458905815694555720124421925058716528797112073364385290535891640309371983753516503178358116189876294520657120145242576026914916891538350383819225203324383132382780474980610974509380081816744254785111955943607877373829247516881474286273264601736583593535814075407919992557072484595670088147380352596869169885780899882274037190962675665479090779038826255691836209585458383331696787822699543334109011740311994251838809341274422595288300927062756483421546549786823466875591207407712696145684500687188115030587488651546669242007835621212829161271648010316521001939615942216041386911436070980255017297750312576153590492946521000336039098597288428021224267943822470300722723182175115891743604808613828452700507751705797986073802921663815759613144651500915138962747784598122600882584337709963955738531367079368774242025380542633429826252634063180834561522246103815083383095657863359101254507902708900948212788109916164243250394060751847560108996143889356795684473710744145831260243565041633903207341867775148044801755182924603663772594789574524956280799111315622167848761829377257773001732952687250915151169844685679930324756500740614528779241266325677973552749911650480284025394051503191244665424724064986426010848814441237167199620970658471752405414452940156612540178897485913842373027297863139512505317412448904740792947873138844702902347673420381986019000428285491507273214920126293714266472452522148333247490501469631369186957763274886378654994461116980048622859736831374419557560893962620064354617867401055664581000696677514345306150030584431511311567113148036041629397400744119567751548655288106388647132374877832504171608389306372543814428489269549762100017975929965340190583221074444748281754664131745219135114704724257330279774799373006456071919431416861224161604562694346336575828726629056711267166834684832838619510851378742352009465126328917844616809907348964456786921614770518271938296141313447965844496442265896422329892668341568296832196626818842155714983577931728753580274254353640511372831751779192391992200137621133953342880412561195069306221883897183369646342257887554585652338596701961348020799671996539877333432873790508607350423726358488317502554927518157965370275845904179725193233911394109363095161396562925052500612444066829456234032773986816532017697265792647913490642593580008954286826686770072388942879598874888611258333766927402653437962573261922890666362700481158402573952150799395088465731230928723793388556569722565082591982883622438447193824024366999143222424123173074881168890190842197016088183995156313897189790480306355564448642666742121641597085059291211686993059604643995220676000770854949522506507187134538431724704903535675208522008436199984219403434627359454860092635737083243848822525406909514569979097910218459058135507633014843971315830716278488170298724597099264124042518778525954466667601939225540347505944228981493740324680433578244635904969583348876657573550271191362863060149680014177038834640362002272808647112143014046348941301951989469243272417139014197575701324275718457226636119259780135863130775173662974200929131549355400607453284655274514769998713650228937008552084666308239097324710053908813729390067445590267402108491764041765447415989276271440203111514755651870198764977380427257007856486161615567617562165784729751486609890639683034584918748303889331065317703385804232411665883682147631742181026207617966147371710410100152005218678303473681807632800360357202298837248478631986995185441753945634082748891022989492639478397048696601669381386272198014201579825566788918806446465483633893866635507341578178664998404088885063258002408908742948455485775590400565465463277514893796563593323380176122971799595385784201802268173905351566417808623408682556496509565206849480817229031888088517092076848110319697893571603815356331784892180503632332173168131037210014055010718970675648820558104549292641858005542840759949207407103524299719306998773444486288699045112032208660374053414775891165671211070594356072574338381379023582495467222644811805043623519843712917151048123979361944830461037584436273870551383606195292331662966579294711252955578097494542089920224748161340331441868438372466714669075964872231943024034421710919707652732159854253309870015516554629446803281848267648445909646375969911953638425005880659736437482689520733381215716808083919645142376230735155143143393855252399484226095226841408006872973369017171057241318428526845582867443348844167872487399988730945189287082229272857509061187621908308586959528856040386720183250252808361584958682963908583005786956120051149524403244157236598101707955349692334140606670516394573089240157892231658749967678429118947823471752254331020516012634037147794047267605150227628687628207175025684721868610133891291019689063088631045136652511731810813811401538170041128622808615286214502092200087339720102849358187941163888549586424960294870906324338070967330749865460296478420020330346509620795671308504595833073080528129900759514448644824080168711632444964046692228052682435557394545750853195328827269729138102074825918070867888410322287360628278508447070034539792651377053739841827005889785115785628711824683473587618276662854840106840044892645618913813331765712727954723434544685232841398666383081074801742893125936103184563191346084189108778192903433903059413009495264699013633450160942258326813273974037076315591095412322868261257835774634138045967345007172558908292168244243834760861674405044374850422599958374816456646644162549046727662771147161183562136429572498062074798096020489197343126961144267893175346601458774905816852896677559108203013484951966911106423963995006600452277858086473523250554663122448340868524908541673497613626609725318527370189094686340525318709469515532998385784898044806717319737159803173621365196916805099141996677055354640512062702968662329430845237669184811692863318214807674765044215907544268160960152029581552092381403292846721582371078225163741790704450176770241101690487552444767221679411969243322922077757182847197072151904703974207941737375782183708994826919556101181389082419800881551971747244098198533893538047743614101687319949587662011392702552412251368874635196239454284498195692017847470226107712015468477854476834864286800378177412268114214999025264461414770257533980491511778549903190472811347428764426749709922759635825476733788910580999009324822079448943562398836130717906124742257316896039859163755615145032659595106171433615014198018097418132388063454929585755820594601363446685995607499669575955255101407582648946989072325401031235660650133953373871392283442803221669871211579481575402533549696763707535996266759486075519566646049625511473383728006002550435137073548058645678314454805247528231047085354740995262411584910684291946895783031878494873722047307168333113468371922408218482712560593463654829331278782628200252732472320271977191891187367487399033753508205884058184847532723349644736347398441827944874117442151482002253672198710397311666808016362010133895942541403493013795598105695560950745995153944546745843542623586015821883515767099455602692119741880544272567789416192235868752577371211799186218883212147141425383078725252056517916504941868894958443090063800847127556960042894345819404320681873211725046748239977918795146407228602603461965159385329607122752457052671446877897521832353755584462538451551792329186188531472684279845887764469765492855205914867340756153853748686293303669052632816739561739402087313782813951910108059227601524893788703725411942211966897147626869281050228304806308918722583566754866215781168498414278672922388709388849756333978252462109912178180451498073785791591693198053712557289433875244639674409066703905966994297990969950018154596543977027967324742131611026659361956702680525055500573250238844132462507695849393807742383862967191519995313615266493346570942642766298384245540568382888762146239136745910167270947908553251514661269452805781965477220282630688755379121819188307333830441657606391396589387274649173858747084074632588584388468310432453488964971875346640150253425697388079335813476277175128346815783777018435906310299403251123025577475319950608920897825839388314266966000556470468915117597331055511082453498445714726272826746897022699510092260384786830506669966189040609460453868141020411610353134691069446933220640615197275154714600438028244165285456029646162706243135303978942994665704298323592998786025467619457616495411874916879223696593949758261824640592478749072243421309834494400558304524227551065330030371619251274524728602753625378713502958931140945034594886133235929526413691925992501545684829745506083149506405035452705751177401133347198982249005083974133190592704679287771309120158375399158602954790341724274695643680562950513582001150188817925556525032592895311490710951830283961151272166822744486009137530266225570601390165959120430257442775316044061089151366939501454167208176632438271752217205299842305176749261998966676614962466443667477578348423455237826970078281692605881527044079709330790397279768538361678061255923645350556846840560534013607418095429845418969390831465017898519729061708330920882087737839137777244722375043071342976627848580169821701302059058042857575671173817187517975847191871333572406834711540160876953493129904943657955811645856176749767044775538981813424525082483618377078192346677623210430191047683357525621667660532798815816408810734051809649561789014864901229718714815994064351311929311695682508256327103910633873195105346708176556448767966149761833000777214815219544035260619710648744807569536760451296328224409300124038581156175203087901911804591911559739007635071727549907276839451268409401434105119841022512207612574309505462218674512280703991513239804751295188982822547980413148853757327284899409666892858044261216254972954988539339671992858146469880477997323081422831068626262803729730094541127615169304204390957605601184350630096587043358750993992682461997289933242604302984581124022438846293854877650796449585787590956568430492960148334854049980063323005422800679232537758297351360419382176415654758119442914798412522307517620384380650771546935372661662611588566965770734228529178318806690115959677077008762735220765085293615100039122444793849177105902260457049952174800921901152512979444723876471142961871943866457105360095198333517871653207121800470110050140789648449398692031574391231540582196028644971984810031109748132657172189328886265086458131939553376609419545860002832187247489213454772506718224233256393859635609075026752717460845356204008604342531489264980660312922912185045951085687558472126420412083983839045038514002085239106649190698475929171667361484219962025743503489672235563997489886987608293489541289828777923360669426989174180404891581440636402501631439419957816798487740739716168674735287849682239127847695422122896541415999092803365072505814102616443606867506719087810007973304231189651753276442148099723445234460023551255837192834970602353994041662020725654607359368203756380000253882701136252251380871608217502486716260446013580352736560137169431010931724795849575038143568905445872183002066549240729625872905777774649526998271059844637128077295631650457474221454563806938245075312627873022152560852232700163766864578900719054763154145705375645736527642547767433703313348887445221124948583531097889152949710290424860249221268275109057017745461147380671553364609526912778971170541605599621472080287011007624989006028800407614108043329093739936755276483099473343671339881476301418629249152586517055050860920872746457271909091656841756677340477446676324462451712625755412322819576993750331715714699672064143828832075644871785677342423656677648335198798558476186225804654298528870081178004680236109612782876442814796064714708295659308643798941100733369980667577286839050876989282052855061320002423049842819876784511907885851819385566640524316052956298377105400645928644225670540268909962420464463522524325410426011184088180654250376671031938722287571260134583147435578099291605822221258374412513431946310914719989084958614988340369500561332080584646902012264471009663801649190913071597002737595368962000093028034627115855666758812206366707638380827475088603505031536374471434593977421764595793552802238213317909999825390592798177983979291688180548050817411487811446573180612278116909290280568232643580464554915647148442707853136206524271764133374581037013894599575433488260499559373768750328835276760526604185001271550567027705480224228370904550295532182154714676572186150659511375426216384469300319019198283864510832071816561153004653328312474550677057356298875212751718836601664703362473024041708856164667515894743369886486175894067403149204916000250949350843084876787415589830886086492340183097458806356632282843626743102164183003849065299520608736676063716985973101223746035393886896383446052881944895238929395436254020510453216726495469138881978730767257170402409688641474297801317129418130286919271002288300052840989844941304981948222814334207267470233080548992163672003186633944101592263530233492333291785127708480662864953861564289708881718739201004547455445678618566569766382770778751154200544864489763384423623297623042045869393126484721342490621289336440759382708539808890984651493054330873729482017648258207398540201798260132712416342671697485896042509628135125805223682276031918375981013847822908821260749734109441512645190135964530295536414305786002448340573854401476090834389861180089336489182097971078777807668763721762864496857948659769728230484677558604913607115263251602794805109241705042191039314892398603705391650749362622443970240372672752687968713368682467088710340160472733545523370886150958930469553049616368916433945249111330521952888774061244609334170507531101358101371883784995669584413866578217207989501182659163427060241791741611890216426164169306018313931534022807600624763487411535802154995403233044089073930902726470896977872779224071159458468766134586343788815623574516673649895693346200985508909693588213969620043514921691333796416407392703939816673814183070881932857553770261410136047476945564019597072506794700236189260515563819291028026808816466693230349702087023181082963040316516787964639119312738888334067990455906472770757176594149120603324962021073512740058696092249341775107479337725626479495318904795542289330434828371330497827825510905180537761848593134040060842435528388863662410681467227455067440233045756095430481770646870036743422032804785262703703961818086965505798878949850373743250029859054674538380198805092515879279532072349601508006168360213969222389125387298383596870631745992326180181768288837411222754802328156244238072002995089402922582139396177153092508334472294997515238830359117100738096705194864601561708840476350829520098313135338225365037092202607577705522478163453537349416849234385849677467496102678320464899047678260141447835867179142811969342625896960758026190564670865704179773752243004707435744486611382233561871753605091611994054378206945494497144423252953518855302784301297080751044604075236736447481643163591063247236495856854459556755837286723686789435617272065764600121079588710084774073540142117334295513054120630838239050759442109693598596472616956333511299896642047887320215046501278899325744138355605697547582526987474446762784303280569416211933868256471278914276012768471590692534359795970015915089824803821274620327693626027351475736349206109575928641114028223524904347852089258279783941793054643495967881118326819170487090801586916634973950761525251099852157220366404603783603564149488464610539250172249334544531559448644908274168416577493997647964162711063913323185251538716365660641590575942527323097210832430136935600464370502346671153168338451673808376183351703695332395724201572766342663933380196713205025386437298485022282756975141478097686722088424646496680537583023225277485240759623919169394121776611738294140194222864479905482191475219877150968482824285496593559098906894804889792415490004037497713697100645216233263466522521700836451112886971699564328305309007067024643530892698746717992016114965174012585878651531974492248545253805909010913340836503887095405135299634782239177966012571865896182117498661416902505888695084405888084554936535318812715809348428134120325159860765922347596972192109922929297593909504890803284851254959059670801705906955227722105934079886981927290604666154073868117744315259776716894562686287081465313128264491667090528980123303428164700843957558769677642558501714453785097739275188595008066023014072081236013093840159234808697236780463076679652397730573676720207624015068351094332985135157408851082129579945921096293907226533443247056529253694179363847387932851799024031883799144051902632080165157336669400247978832518282061456674229123376708733997581381982614676881759304325080609198465182912669381788947667505782258016858581455410671073102504974600586452787772076016355000543269734631944497731576998178276811173813932587339666177814019006968528615147278708888269894493187328292622455980669169757935459425247555019501998315099409667465121345075698745071761908966966699368104839722197759369356466723791925561717991371560427481159587866403551268317972507059160861406782483480615623620146737422857566437368781528944357194666758778632004010703779665280626813032507047729816830672148567387234473724383858453533488287192377223111330382039122742645775173496063270240997363180612712007202056245331280218077623579754354118215008883007039639246886718486077794466285076743373254677209396118480238645453649530802455080195846723508826687100198221116666382123148223014989231768053224608566605729295070496855247522079846176462985924798757352070466032910411648855716079774585928488792128194891456148221975098449590368645880074000565800692952478878231518133904277390967409338478172275315952341504512702355256624428982364985487369895635838143398881656810028842806497961226463463228050591766681791994761836979514872269695782499290487909258094741303821440817305079659735981523350185857024183382579151102941107776917988654101075638095793981240581328127155854166000462545452565879701969743018771628649756696767091000711498197635979176321979624819295962546539290474230760909014708134273836711933361783974631567966649003051381074613325248731570033132243772680774331230137724950954891908415870751419340633761463852070857423633658131303668298115680096189463244221490402967014116097876236062071156597122877387309491065661695416089393856954239578485687724838755473465879145545262937694879730578539885961399165020921529306663665932834766649998465186587912940815078174815361987915273299272144991150153662905865418672481975056330979853592813229864021027397692512615567579146668711794540835094762599265306976985773541447714704617964226045339789886574687966235265937148486921576859484831585122977749943548542459782007616052268382154829287197036957957745413638794361348761329442164509919442566536774110002418150277634565627378713700945572256836651957593227592251994873916378037756066830429594083830906093583712938074244295254211729185272423874389326041849574188315505076531043251647584436922205897695581167125123686208753575300002001543121616822632225610066031541076887568514571957643208637471678837510096126258777494039209341027670784382834645519790054730718512185915704331365097246347288933779295598032563712109588876612912373589809219442300904720703959843902369537151760472090933684840549046486329858029630483198310726711538000626915132177619440417961535286995113021147862302332062985305628048616006371853572477667696633231057706525351861625030082057755696714248118352040271097581343064624077786638310086431741058840182689452959975933748635843153750346150622957819562310229238726737301858206484731126688364331578644288299112010809502692615899394786324061001170690409180662848085937713394799988902507854059848753300444010230279400395885981613038108500842316018690344965102442249374208903423601732435153704796950354490442620888146531058515271227948775550021074356583017284891936560761743682305645377043435920336127355850104739291874881632831259122478304212221134567646932113811605120053177351570777636781852473587650212937809821461305077868208537647623033784123258194545100892349146791443240894523215759564688305355464715485798851441120209200378659127598953951256745794555193479401871116427396340312434384322305691373174350357438199534170982123676804446117567538260621460874801899816872327770625665992803118910447850587100051271629320074283091087648909133065989577261601135370486540942921166564414757772874897546951166196411973899434863361506410802367806030079016041821703773649073019170232602156812958842703274787138311274849491860395850066524374028233231553957720895404938184419378543315850709801031177270405570229386489934588335997265211459879040665507131289654939510260273002268678004580826961478988725294418435932820420206613087906336010238594667847146792577746182446202161191710447108961171244496019725534594074406901065944755595978210354883254228419508779368289945136713122248630595152257082224692548285109276757138275243464013325053512298047288462109242422739011150577486367033727848809920634655908869849822208805055417873026551339179877062857113684288960462390210927757424843015231363440275355442326885646471615700009240315574900337664021268846287962093539390883512007047193906856914714260253867726044816852978879071337592287028502595306204689231182870485590982471356287699494038154115604323146511339584193727200971476557582713587058056587635813425391039763462589400619949097577208388708773764863440410283081663707600538150715417083477476250477137080190857468199321388525000191803192127311249676928625775491733258962785732655921210068878809153056644314499648390234084945650419051956253086271995997988097937815917877522126519840897740999361493246417271198269250040542958691671005402820740591064850190095016648016891117758996671543099399157908672276855272616246126069753492644874391347803455288204474022652179603845747190333358131565122590153620829917639665186685787917864110267718404474535830073110679927676423513252803100320504961543743574227749674617508830298052923729502387103886683425109618498597506820158452262863689751862384639966488911367320902047115028662388772702832863443687051673463361782144561846883055135839052358255221549398774980711740328555299687122130101929732314884118536905804304370967780225527843931696108223148395887389441796405602959132872536822677108039431295964263739027864471666598779104543288113296479193861200200274236891292903781063087556911054434076753973561687792485283242381368872667817945540505689574069721707137943122903181487853139671147670999475947893385413918499041167038957316805091027680973523442351631365465681225931644633375795476124361680780830998331378855759436086214301110661065722529418906994487144235316513956292661960102119977603545310429666131406415631627536388992966922025362649545438571925706521719713078699401682362038014606263411285720450845968715562278952823477554844015834821303529544257850816945547933227814103668086567703101126296171627131733002828659064129531862875120616508066681952290624003726534584602621395662970756349398683558783452680995059984524208520199249605947997946725660620529917149093959051166935455819228324744055180879175909068673073544210775148161729111559636006562539350496693792108688558028111845025108328684654322803664781392542189687710864128034608865108894684719067542829776839069005408619370406483444651164633434058773630438397815489038607554335654241190706497519629962807842398433348871604128370757956171647218579638882197566816231730274225176009081453513659401329827489698342098833776067578274027694762602150080522930670618902809349717134405061935878822658097203098093121414676360784153304709274470019390158928540567756049441469803384847440951674227635574536686079272783078969024346491749898166302870116180152285867606432799962313091868197405103956569256321741555357254793770319040009360931382788058787700480616981191355731436956247452820858781483185438806596805304854744919166253600187526437537884818585630380970012026399935959821061971024979422784977345668754937773102354777995169866601281515623988456721913516077386790075317847234594686168392281130892801608865419123422246784170888388408422058363671500281465286916658396512241003071911291355232038282335526557475966472055741645275868122247194180899038060999752561524937176269832616031606760514979784558204194873138176014514388317711440440416688557880660961868089495708326139730806520265644376506519030556672539221693502304806988924681253533365903394672723060265652185699015771225780767113377626008293678081746759646913962116571027406314428621702990012980572117541028620165647041968112919030618458652657053384594856539448838839677799368230723250317499482271379381179077023367013252520521992805084385633235336641757665670306245589055240941300513228689433151464355994341878466663800259796487546458664467132532100839658856297313871025232982780279238015851697563064019646038629902837528939285492744084236073630138171070659968632719875133734234764244327885214441553921497534757126206464553538182024242882306367345223511229336448618870126449050071895726619500479554301486239951365939488525448584874056269191884135180353572058800401192773778334030905871749809756511397781231571743717814209899960721205582184589731663303039235671059999023632339708108433153355378750214996661577298481155791509448310611827739047351969674536739418295825582592412270790232333107535344859061032375442626490921791588303464830592278757001098365877087431563591958711561246126529838244491115167932354030145896323747889469529141244318073822327871760417958580310360085114482005245974944376182842378099318385629171362168448479801160761352833807096243915581487020625507912116945865315770563845559957484741710730876093775285685487667397949714651832982502356834072403451481615645127245372016380476359137955830022962928165935105925687303141935327294686141739843112590289865187782413692284645462348134599530172008494126570447661207292694012238778479143742452272056510181505816440491280249309367991583980132330031060539270212697752244206125716401850103649904931753260647236383887411077601655436504473245450132628587032338382170727074581445639009268907293659107168113430473980532364832076457289399708234451412856689218250533241431356182815947746516172864416584140042286740543770664821101538167518408156512668647536242288808978421522993824208003208300718771185419757312531023546525771315761790654733806982426937061025206358747355328232056020406604579225803783945509834672054456251372825316650658280270888134513250420776093217270052199861822639557556690700107207200386748179484172494965987622738930112431926370036807029627972275337269710189367235666208301450172571707752892008488775434094812608310285783016643609088917497385253623433168578009917759223970628340107671661305331765235387148365672298813695160826943744033981984294230801772143601891610209449346030694947315919516963214991107262938790180718120439887819493604907389641400970473750478919260925866918999728329797763209628122883247710939683946532194071528688585156743637705555761417205044207640408800152511376394560537085963107734196490931796477056523783974563967593761146930547389847070959451415525171188300446525386345265445008717560001485636425831325101502605515760707797832691791617231558748188810315606003212246402089771671042332768385696130873704608610814358882292435102485713908525579990172137189274258203009331855488758554306381026449452726775734617120522661076275250076790927382758691087506237275023220344708226566847257951877241923842285595957707383712821010408532704589562027856859743824553064127797074895016373068245240807634198476089059672666720004861364396413711392736190250043291505880539933446101586322886146951619963313874664465467948564610473916506295575540630207308969352618721070817383339569889680646977095910973043648614792891775711070515728100930058611276440865227833289415955228020973740165992509068914162388870728096638019773792842790873747045293796441669880398904870253927297181101419157171617537839050137525514431414593869116459291918235377375157023982830123839455401452410450080465283925008344436238615979730969468329949517967475708452015740410141911701179606153673730554082201905248075519215764991338328259555759714350140802405855542042474658849661433369052528786973989033500720580512828198426432408034783934536188745492902267346114774789424959220729012562468041166444577509898157576452483055967186908071428142546926350536230164589435917374556746338192606076269820159010220399118177252292380126246742414602919519882382422125919345543100398097778187145254263286478168458186178411982317077519544629984446082039014578355049278326306760477076723271877728592849654054804079445001009302784094548400829213407277032743544829888350725867299405981009811708023380709848090879147863777657957623087139112951264884313654319939011188330264829031225793125093128249470197500772765872830887838305016691251146037110965663731496530893134921491402975821617928363832028467189395226074592507249512856548805131025702498283105914878521488738610079479129449799288518235764707232156549034672362636177011600280080253525554947481051434136868583099766562944598540834254085006318241408673484579608895524857430082306247976932353486965675340982954620785709474881426316069967465576524948907678236685494954233555228571977245608796363891050979786604799176731421748426332969347240449874718413174390844233501645160663668121942319219392487965796060313076402253325080402602238706018641475214327722757393313174331449114945512374465427890438819563557095048457384659857568708055493312595735187098897179300476124878739624535669014593411319133970134250279417345714766588839787560365696898081138219036806544879635065467742537543452422923610340168495042672060351809249415453644935818548567778841122267583767712325394625844703827374856983057344497741894530499299045434911265843379334246060602585335230970320510300155240226906818721749465338350657740802231407558281799390435565174509535197879524828160689121386454393787023374604616983225625759792232399416248137960432351573005377944344404369357635341783079569251202512615344491895685875258912496996059639542264013643357551314838995520986433020583217535056846634877495254229754584433900414685313471605154894420972523806213029779499387113586998326616726783352974514802295907847884310232294115778118983194822250807001481320287300264313496284522788742337542421072388746803956860279499867445802082803528325439389425298861147379359741515140074085506790803380032895334160417838400440534556208939819482249731466419532384973110007245926852562752115062116910507372768680461439734931662207762212845299218904639957276500544470063720630419576391376557515726463806341553482543451405376727785821742290298089555418759214390375314476771323819021334552015336178068093472148003290821550544463694537426467507046678304582301496924131432539454672824399112176247255263189278024344575541092307410933051343330386250499727278156514444795955642909344158599793409843000035255730132980189482811292375346479697249004385251801287264397550792761728297636916362095588537098017406812102609203768269449026999719551098424812239734186649359559454248505840318366291751363497461833325165269823340401717817292710068593612051736616792762909961101245805032538263652356171961598585838506521388033258419508703573296163570793217802317962765610684528071197314370297818264771088196459333247407614401234806687291803232700024811617885495199064639630458850360925838297244368176715262545829851325219193540820660410623729784759855837941884418065408620538380593013930097060307908020603568533940429456947694126307441243756353181496800394600576960077734163740734823519031601855475014917759075541319117037051587706052076734059760211450669528321363137432883771030900123259382129933899273503670322533653848483712829832143040457256665563857280995234713822656032364783692009403230601194601185450883507999892483217714889973341192948498606274461326784172812608106573457557214168582470652049478917228000439034236749994707007414175796427881049931547166933497420285895282136724987463475409710738992631401908146322732395968474410201992488952476856768976467853513932354026521401582012076024338435960310243413833763091351838954676075506331329819980965678456237686550522152443452805890733630611148097194727072493425345689622748079907451295569917015198607708678514628811283046791961349682363605333877516350093651181174915947801779573794211388789164691107858350122279373781739021880138601720644826989953247561738864504306685215508994359164776541675000825253161180927752695528078335014266531422145734200589583613680268577122509843149594460931755540694150323688472454504331926255144904914657157702850044572298129811007625081164144885968903422719834405263162751012478294618973640259976028352576113824008271101801747409348736833323385377717522773436608943463598947739511453416130755710600571111789344773008540803251385227724254987027391529817351672482762512200570012855741690056109935254447967904941172812714386963293709920939374708279970031212537378341926387376268793364800113329422592798822915015589142699059489686413747611445754629211930893784325438397703319549545053390643793329787039778467408984532848114369887614128902729118489752372497395389392054495809945450427946137728519599761386212435627691170517341196808529320633114037814227602222917652812231240303960239797005965307897608420826626054751977633950952112965393835190327496576325029901985867827577603196523719558530259126967928747598104467943993264331134173950783872015610774810844206234238978133804818576154705993219443859374701562941917304772876247693735874036736362415710465759017740944884264706405403625483581532468631483775715241412336808920236425830109946892930406073201285571733847557343797675486703947154805067346617079271357106294577571627257385013636299043836733747316032699079083728658223202253865579102541877461789754430436478966754825740577020476752062616517791385388520680374751222639163943327583225189824987072404160365722150556642593454451712001393804427705092846925126988372146098926511394105929708998023286412751253999435702675515096577005536556670821862097809674303882599198439663397589390597929308689398392740384094831735580562331086080662662353024128561560208839445351387662529078075521485786706627643676316189484696735673128152793052653922785212671918419373099405490214226803110371451965900238335067877582428838831874518048816123419962816913036333760249572901411199917333585901951817365893854756995188362355143460537792478641229234227605771507129537281277958900661353951169703024674500282777723370260887515035723799837012969390537930846127638131039864909758562787375635281266053754926570716042603592879641229835121538808428952828115191161979929424120142369400068837553197031053441398348080392257051957640418601420840668104063375445844140160324401870560003755371521181161040372105160491561440896157362059189637522245808860306415794135832568063250719022885822295409419267878859615445778053937543476313315166658772821738421059196952035965733199582183809443321759398047689882928897544322767664314304885141838332277369774976065941888318382207313184866686014535655073069436491054963422998753679727066654228722203778633975545141839350040127977553149849533979869113357499551751869569251927002035536435069747980005357037863854515502970590632404795227073732649812902771432982288752566015416553973419194515406866912963722509163026728382611827865696844151904475073367081993959766795624555136861529393334034657026826193378008514077966332049328244766342517421609723430649918670642942887747387567021620059630549640325288014771894979750040232321464042818877230334242973737911489749408700018502307905489708198200657788420463754564586661479319104973954639041580745318292033306755284789805102895160718612399523248410335512312496554908121925136774755714296231146923570570414844894095130107534035863047602270213670584709231631743955883422083210270271986192580772798738550283067834753427582707111592981538181315502957732289570486808678545182668033357291884649271797040453141134223563528904933098914366092108464686031856528038679668679612227154008760569175338512288694483110326077380675346372725114679499262059391763142394491065876511119285283973804558935987061916590171001638621628541113042460320404878178453971604316727992659043134844449775171208793356260884892885506259402178918640948862545129937615826224410365771542981422714100542705453803554186908276020371173311962002469315409143595145281900217334546155571397371028064894044406408944847167094099086374462116653818952990487185998588555338042587481191765102871515201245985881640339121418074699451953655861291478221868723830299120353837122921452328610146723012879745807759644495398013806842147446334928058270318521473484236441649102559886885952231591909973521938779137324784018110826098331686644599795970763322735998316136769983082222362236241599414339551022102200850090760755504495305133847339580983888959320850632018757411861189347424731357309445958795246974260765646122127668317980368444518241216240454175460639282950417681428884408276017593474910295879176536096277602969585723788965968674614602008814453153769072650829562440246347293374854906367490725922259482640844916316501008287454879361157536460581476829957142066399318163211101430776466368201229352173702588575757047054153152413629392539338171263098008640089773449369401207279899099774176276927906850630875928863590782610426089363518347382305300675226366451312324290448411384593693007794575165279486892225391599535277842958577978029718427231899254668044488717187601010875211552759996524988535296463755400306142222518930041087342697637085204851548107961112781466239084496144111844249600160488419397385225494305092744609016931416671415638794750939227753285315651629398653289013321282354381272065522367858428498949823140745980941759874201431220364924605523604749180210007916202009687916628187707713606551006195453477736174318715673634729363192115805288216086926541903541474513463521539812550844321789466214038178312461118054512233101840407631318915154902261042716507152932599291694970608714278776817704780416869126808347086869299502029180257881371824098114859903727276471061349456732887821900959798555551224307142167915113764186004710034490376228892960754400026279552161388125647386928990721575174764173090613644950726997381511280828820761056455456286257492760733521453701008680803563995588348717856748903041273777031995652764535710997422516622366838990226980724952237394027880932680845425871754124301220816848620427083738689918678244211203859530428162599349938646190363245171932520450783603812156962954434974740260919467771297977600399393621972119654348206960130922495383799459646521044275223726170576376168755751172871800504696967730003700367570634332581900183946300930185473849266014100387581376520627192698223421687445401607095240179763001571478433025999657628192778976312348675136435111268866119092731657243783947481553784843849837836926057623052792781075006781161814491313837225838746644759882474110458342549416089864947859957412288067607632617573304545270251734708567897990394309003853929742722872418296507779644992274781270482076498183410615698996598437219266743005040981890178133525388935465170699124445130784986656360171620346544908161436237987558548310718273087426684898902322686980632418754494413368493267410036591094632521632262945611172561838038689036239161642899651746078449722301295072429427802854496529044665906231396060189174496742940587307069335557536004668879471391447953305448916023021389355367745765420047673873950430053090509328348333602939404714826569556335836919742189552083646235142245445478739166905258896507882999501619405798741258775439454624928538335244414287022920752158502411866433123061185641205381710198280659380547547390815734676573747169852113369537064790747512252826104664731017373441152112376655627664961315502777064167810725738057407096980902356703570921814731353762136165935473092492952427435440973480997968752009282277454518791392621442319637021663681932177725674740687575457620310615996293828506287424007342095597482703966778201452317584039263478323070793106449960585605960357388847500727761613844652909540259937207933492610558354635927877350259555651775024748575098594096154989349599800333998026813673625341299803767557438441315464438604144735491929787313673007038907344080058745256974813508728417931900015463354701348700268864657249571219894435310324406650085029745668478945808484472555020070592384745412478480596718455616827976090050325206168154422743119248243097325788105906729531452603216219166395725464204639228486510786256046118299576877648541978252494177820257776389391168746355718880002975745496065183057822818555006755023721439221195989955744716106718027488682796169158422498371957844313278806131827045282270789547203583661084771196527788489422258490984592009350770172863014875326116334323972937623957909782919219692655038074476043797949015728726655734486327861881798764201390103812245994528841063961773542871067210895862041599549160643834099964254588010790868240484827533942669707639232165521416566371875919407013149106099636183167394351796091012318631163744284433861705420688863204554600970965156981723986516547439918814214030053671773998682423965309341081431397654560639647484853868278634807926892002038206579505440594588507935638054348579818266025382900540451837380347842465256130683599259512525506258248342657356100156510745461336868196287596939608113253294980220632470047291261535775240754552070656821735779089842072141315708933474900522391742757573937068352904218666840554653917295489557872605464805934857367638917512442510856228599023985911651580096882037334836592265605823659581494426478996278272735225785805961001820419943615522277340532415273891341078835063051019731947890041953075315757851144263517826228933822675280327755940998483337893500764134443150939290616963459013183311830113851742387877127242889158155917926456726664679799247974310800756237920581531347050079251486688588677750126367488294289904086534070517624324967520727671428875071918536674650380332705365452078864541972649486947328204423408055177717429133695839812888728047801486771843029284842511789542513083201999655751681828605361691077546571895084091016675825278715281979227585397856650957475325072276381560857404846737267857872799376163385432096136572536596173796045058663471650427522893880741325770539225133299130258320013301529592692194253778812510952128838942856093432366547421218214848681210754549598908863945973963083293240676879356862772160838687685459431663182494571591497915596107707225004146413603851624132074782836728107489346326792507752009143897314213674413774896998354147208792835217443063660970126447657399194980614384905526957406794835552674688643465628828839636770644519223886901103200197954316816344675362747186177585545969243820404005287397831073871855822778436928616758381644115507116689824551604255911546822751095800424089066376515240796703526660434339519814141276574281033941843641522790583027854892828696646679324557620472530245138467574837457577891814230284846579388725404061214062699061973554868372531041594301372527933142272031235141107916832542643198879817692761485020838289903572333762204445388094498838927396707804283242963101437829947124227868019116177466784039826709873347676977142164535514516325495546118745530291969476004919015514679820598541004785949775317970373717303368225111025481527498469139016246986339361630514691495648891215094243567751428917144070406759561470292767717284734150400894878426217105821443946413346572497274792923089806584201081604544599169401626323098680688302591947725722214923282454227290164499773290053437558466571733207726293915677265498341889809161546698809541302124314601826640301332723423291942479352872953742994767200759923507170161957599486295046413515172994310386753796589347692285623507994057001393315283339617172089765429753623336637998967632564510920495758007644846596808275635708453433190484829714885891317163833364499227362596375699905905964118820151498683447728396079776038443959277846267657984138227429478661742345800314203944392217415300816999077805474951291535734855144645243460383096503234668127619829574116657202824786861639899814007128269299029463102454702241539470689185695606009487205028382716683192051783776097547780380266319485058309092765098328109680053905931222800273074215827687622708259420784897277033183835027465891987658470725041200424984738793300870394917855646045823926379272833419483926484434108438704758305867749372949207685445604713830583886572204711196971441142797035548003856593086321474594160951498879932761443353118571138687780540313933746812701445026656982037261219747264794677370701034082301345812375055000829404479225883817661535757894727470793599930463940654485537052817740861562978636995879014128567657162399497536635026806688794146508036366473362619764045391080848364679950124521020914696358033175245249807248150740449007157520474487422968914747686632122153472782106321998970996450090451141524683407811607436343603764170168433707769172126612832823166480039705480888591797003253323803281227802241421363490446516615960834066005320822857247750201147957430619379498576473435908430652408020456797326362113539116928550195602801670979782606506375610521935264984123726052800543247197007915721115612892646385927749555167501879374213698468660261435536771713249687953557373202556981779984308034849568175803198279018785323012729694903721408283516437152908738953191775225152296093144848419636700602923192947941041120722741019188007700217247547444287544789919346373475150100650905218791420535672505457429376439322637285745203088063294339296967666488077611720603939343668845989556423560169833904492413917560847505229633234937428672296873893933839757518788808910538504874805126846540344630388689151581857106328019069287728908117028448355272379125691735671136921405709673178052121370000370926758719943401023221165421106117784711859239454298573479075181587638566972277245916950139303489731087186081593746355313914887977184182486021531260700621700842268328845008968238915225374065860610208516348981298703772240157439980649171088854698735249005046704889236793502514255331095036595090332600014164336817697638419668122737073184782593652187597952923825371793124764520121204338466265562767662966160962155257408910490166941176092415745021372162952944844839834454399290226250409141710379890488414890088908950846038715185431348336285401975730434086649358172934558987158190017402015752155403002719814580320298415955381695066762837876381849371083352341674736099865115052294672431537054345381754387290232799238190911140382339898094948141394098824483828546131942261012819130499799692258765967547334077133966247144983257283879666453216570929073567605364494569795705696926061343464870802422071658938117112952934720861885876138166708829600107284311827513737907729069578746077462118703099653444391589972434359662362551735813135476039913239171408341517827330287417414386722381235733364835008047658400253214464533340118609523209615622319378586368110537922005342982823040819334823854042727566779721345897327546066617485650974821932457557207130239646148013482493542971257164199824731848323246019479146358643283222386941175796446035858333815411074796138971755269715032797726506396363609217028439897647546128016553703942119103235112546676726203672572809359169366060371407255925484610221017236519874500134032729015875125641617251646360559163148389277976325442098862760721742848754155422750220556906077665904338342873835886941282359373027001291949457543866256158165563005652864579288569947956082604655036092815301845653432335238025606416068223678998432636900436550629525845931092773902146980726959669917761275025910981646358695616476087201743601587369321242213547941724892507049717310437692771991768038620929982752033694600665642736397134960514031526493373328498943486924481701389316672543764053034405404844907462653232554948056577380429350414133054312738291114567295009674915511445232370673125831275931641952381148102329639912024482734443789840429387407102142244072946396392077450579259456002798002605486003928219821342614027645519446122750116834131952817773312096882999638700819183839724676603528914878166378095414566288574269943783073682938328819000895850448377307656697628896066534040841727248840087636057448935189113736289851424412644746950179233552131213091923954762730937403940379576646359397184531949358145931087368913009973652992681470270145671730127594481097482226673955377280597715058277385273499614493760144241412508201231575372898390431492749524629867749967488901840878442575055582179004760795830085396213757700159914506330360827619071441826961008555965365565776696727676645742517846330573252666967606515071724888337259100828775126267223514122926350615983283849866894792627845093656685656092299577117050736841273023233521239564753259125202118894218832269327159963720312012153968517400557256462740467922495658705230611960626188360950311195289259342073610821419071227417575013680799634904440695811278448882838191457006616665125237725192249435342532948576907249399654548925351488618584917099630673975695086174060528442324590513600633446990507732535240453641585895834515185041765471181218405380129088438870258156215686090328241534580978601414611467931328689273933949196756979670612312602281889065345747852796753638107036854802505585331099711725045691174038991354673446805835347358494333344902320896070908706006358927364398736642603398617391529529596999118060312938792540659466267430599655120659638025600233676030941382836068130323256206546121981245017284307354300443634902450392227685640211365601177510559900051703268733012866973639127241153109376738210610240290503625650355993153066600575022733078689436028793396423764555343649197045227741611775403102199083185649032061546287486480593949081099326457100777597485925839103834840194633655766306351798530900506732106037128224304602325128779158952429059952160883764290707841576826818156335309010356644516026274434747540465085778570634210997972489404636924006919451746660452994689953445821620953517182088580801453174125270461932076608029456530928630653319448506405483152854108953734453265122924888734009072939010868847854194086632647373313329450887179858803213196383489242091013854055864588975380705059313469804481146234932392241432002184346682894239025878018106747469216803884135107328177749345218144623477628551775154958203645360119226560368947433863191569596676383570593923166331075637554753624138262204373602010325987251270051342048802931939195053518585337879618643329145146116064334034620336351161464806972079672605968832271547932094043565103573795515228572579726707241126127177460137378243961065483656568841748456924355405569268094824689835988932498689215903022967247412991696523256110714429141424692832725039825992367674208723345360019073748133137879453062544418961229874081108333268726189139291614570100343800964441571437476980196829337559753837301048043547756186567839749839448059870760383384743952891071588561021581941214270531489858861532116633723668034809697867292769965532024148380973915154794954630791872508529311827128376232660470350798993827126542181181778279002826375995832338012283666926298999404658227454685585049216659808357965409725701644599438440929116692494674131332739370535840727502484645865494732734893410197600366760953075191636800958648725675359507142773308076718171062900298370646496595482448046551234959760655823479672931219821999110551071790446014322662297266474457351229792140371771734038879707039993119228202406114944760355570266533597587020643130344795575719253614276416382348636713006411394140251520633277963172397531526838595194957546950729739160173397118292838914034135142674941982321632595505595183619786980212479400080351122788678504566293059236170029217844450087115435653426935435423515343439110199958172498921353167237292992133905231207998299216890854540943980941454930588972781659218425744084220029805994403290347319256049340598905591475380282198205354777844034723378289767451554928081772241268355824060882135157290559504341277470584608939591999368092784637693284843500848048033393582003374905531074342719392486581735946628958491331432210406638607984069311495551003863765590424203042901749798898874637192833329951712841975055737485070572780574792118933476970758068961587780631948314425361525310903847234487340410802667419032308638232703934135633656147923551729540706610909002675300793497440773328864639366957793152113900122529663418592158411259526409576915271902516853334011892455434171114384823800436812447646006040845885163337032631106964632851908218294022669447007324958113472908912726559602078559514134125662976432370333153411042275359333344260284983710950466975043913058101743130467196532307447869269653194287466191841922768186184058375541740828906318249855926299494251710703417615138814782232613884938054776855078643661081329868721436242458631322242288824601593290597985183508379400976862208946682398437510670415301207715957762196432988595057408092213212907102695301013697111282727427420783669831998485506152625742513337765016497641785096604138026980553380890192239444869470038754571246084571985508739031016228329673279687618606544221849990440588811824741284403803797955040172484833850431074107326443347806989602651986119465436258565852695700748021439086412543452071540163851589638353349282947532699108587705234800953454855794585550486411161788550576106845358664106664920618430724107874981980892145675103745836572905238520896332623025800976355688076914296607183147297666304715249687161684916668899606944786809976418450458180240397016129923882606267552039041747967904667377032556168858767783225868272634869645385544237925317035269054867775322103638413764888965452458657127774433863208529185469890479338385139609175252816725263875361677196199111060516634789529941785246867937180955222693825751195960031202156258546438845944299798807502540392643345489136347481944149131467852196834980698556936678723305778590460767910232627726616671537647284578803481661317096061516916019929863398673349170966082652712639698463447016042741157011831996278182376423728475484419827765718634977550435137326589055319719432280647389294677625883955287045041341992218143862035758495423822749331755563244487994948208641741857748067596452833622212927594111294858091648426978044024622672606366331204300696777322736307524720369107823870930538523616041471508097757763051940226757909505919894040243728258568318509144022549806935324048723694062178955421889462364046178460778930761231847127773189150290163933495332761027491243852750347717709766972749684245220059029741643835028792294675107619366338101887812178737006043758611878871328826341221512315983437508223309673609987768960804682776042929618102394345482121913781619907046270236234722977379372020127984694240256465930989254205318286120291240148031182441368612269792898277499827473320069703328994987294487869629804464821505934111795042630929225399513553856131551685555928842600533247857604396531491541286461827515457256148909745845935722727069263772306898142017567136621720768670728391324349662975043005982198619591396435083354629549409206177009262711891337218974647381148560073467832568727996046293508529047430750645476675119089782847913133775131771292194894531797593405712930208755921236621274669275329437308140892320148099229242582338961352297166448483500998657724507978488093287712785560493275044340460728130497570848412946628624125315494094040730551340381307532827874529528829361463600365407774364844849347367623149561471729584038587867261214241953925783706863876168555388931516464885287749009153294103190308645842065088849428554600125632420044723012512110110212287739461036157938739268634362021979559532678679898206846892974026062718368963790998889792556603393861189563980608962247076063972134928925904071709271625138764682162966819577456846072153352519312534396051841834086453567449027163224988662852164414200585464271840094220615572663529579817358645949747049620158550087621179679863338280242440667676072963771273584864998387635680127240772208537333952650392678101208976665701814072707151663689673174545229291617638913473463961240818556840589246917419412315070507391594436114969413725181300505647480576881507835946087406212069856701857839692727634380779629602205487936525014636271891535849479156335289258055538150293859208998093284020955138748983630231896492385993628373354300929321640611570836342454831342100358105079183267132293475686685235127591841699422489413902944357393762207551877861776461699348710325190144102893068054951321259568449889245032712189664148099509062523917457957045218915951591406552108582207784433479965820915544213963528089608789130107468584484787732745315777051559219323092450373638715211102587107214872401862220595773559894724133123318744470122018440698577921295437425530672792404963710460677477247287036838262032706852913162563582573158580494412426144922566975397547844034132773386338342269156413501905306272800312767623224230699869091248857117372480781826252319991715972945993043859416313464768022552252264130619009362068992318683929530297242186655013732164777055826893998510958333081973296195040606138996580179336825584963771156255725942774638065438676590982705786588160610174847209483724705329658830032137604738328946791929142174786713550749736071633430706462289016200802731029891279688995760185880069838550716311432624899958480346781603835681035392091221509617136312891449702580314799866949111732418165358308012654619447325069362057095580778731223383855547415884129247816404980391907975014039038652645772700838613641180386014918839174220968947210335972461851141879964596536637188065261756731815630954040165388395679537514598382673790597313438914541720528962181749761834223974355326073209161044307883348351080687656012169022916930740452689292896244568954515335074842375393870867525992053411286463129789269086312869888819089431131577551316121329991827980291703188352148015842132309264968186838426991982279329102898745177737704751608091838089540108348285412515833066663713876835686065806088032899402947421982758803848751136764936438918748123330526914254306774086333261078135928885054949807996851421462738903195483409045113826618691849635107067296077089005743432950499203436079216477084979339511009436761677648440556077174258317664641860729360551651686407847860224488745566659821259835228960532564692850942747422578938457024995836009740320867482653104549148092025739040166045406622498719806975075327418873174063988477876663111877287437352952752370378074072023302804381974333984346415690475197118661858034246599924903587370141945994200661101607042724717194685814974940075362050519881546340562877534794573141295600602820054387261810441275045949251443316436951608600938886234380097930436078392800752572497391948861554239505443618076384806049653320867982713629864143629840917867000593939956669037044301071467872094012336260050914202124520381426566979248142259937507170188493351976529621462261704222180839405199268944234554066725727825125065254456359342482427042337468784729203199877451964509419826910099968826030645591310971948852694753206942181359618751926522927196639226817481709750154740594910840139527623562844849101235293697894500905739559973677442454266566405429506232512819867695177409051824045461387303835769619694277575347415792768373602221594638250986653677930973175402653514184238109860602078753733042921191087634368889565920196620900457164670867313210381950486536520499686474610647350510255431783951953666804262624871823590673577904463978970761571846880550686310962753505316115359162687671863553750648957308842500362666069151779824260328464813991859019555446885008254153564880582847015713234691569020628625116067183588437780385912579943834098822890649906073856866349054955184707812570408544922459053000108038094228263558566207464518979603463044692677514183718977333728558486133027639390267970526229924878773909627013024910971756453416309480029195367742875428990277111790687347281426244490294568798221441509116187568237730952904307708309679689164113375768486791491222212615037726883650994945921956004629103219933325113227795084832658182238503077426156568053433085665646033786051171842020885270799837627970865985909619441724520394481869426460232036808402374944176024281648464457853450422677806753123052251191943614587305731107522104088478230712211036453212100276012728751867820853368730171009627575825586509069167253067272716324820415568308220731658855329962219678506662048202634346492141560578320083284991376974086935474781014328946981733062666370067245975442982460544884031833106451884545121120923904897202030610624494289471827879649404682482382844747117559475250622344052627316676122086945865640288919480596219365635598029706475809218593445761527214893977655809336663659110540562131907862673213272998641588111908000961635047142834673915119949749170255942278166611971325642270767748859123202561202985895715187242221505448867551185923031889817424668197042777884166792649993657413106966139117608017082257180453239985030732102674679415741437730665911117098664985001505004916644609663920102446092796337625885789002830147173992731759365799574205653855375657730649584723674731123350197310504824883754405338392122175380095139704451846238998969075657618612673279379424862936216644723925150193150998966745881517769714113194228581428222784093488536729407636227567289887152295015584832038360911463294234175036579145097450327329093456694968855024276656134875921161976759619855419579236431576549479363909434744120361379456105719794343905645220210708577589885522856886011187108520634906669029073473985976207310894247493681549174719769960019463838702153073019873678534359519467482284843357983682971608289762062644587401803742803036749833094551753579169243853287982608254937670484195388651138894405822661232615861792180393908015397476028371591718579195329627730120970022032066033845036094751726215409388591387421679187896159833222610647566728177930347272085385139375396160591092597112726082702075198445955561207015100673978548431439642228203926480434182029549740351805093756699781226381229720809156203725701871423105146018772258372468373489661500604136019889049927039820448451990780167647778728867988082935130127175861074215324881291954607816018278791477935346198361503657951658801870314199557878787700957818699912213107465160924738693701284357726849484843442735900290963635959787123157289674901481569353425637084545744336304917872193034712288677423194884843300510508191921695287141383287727954383099545763188710290715699984555561842971974220886628842969628058211782680110223055788078775322072333872431067505853144925110917680558388072617276792186920053027034559047209906169494457028927873362834692803418385502780842969921791638213906406878999385902534263877278887175845693732531261304735088110664369398778870252699764750009366486178749964412451433852701182719950967581818281063321277173391849040065676071386047044571023716600038932430019613164176005344924376984873842727267709777239821018590987892746617084940013251279169866112240680540688274762706559887804078187254314358591485235465672807271177529846338219946433821462202275617707074771710292856601501343566888401235623524213406888612107454869356388901724433326895378074790563153719726779175079566223843372310422051718026390845366327172861727500175012819150459259787981562562091773079089049732875593582072692139584635418580671279118624769683009589737224310171636859422690337603506477126746494182393958257798834166877857692047955324684774828239351906426319166142881116744332055830942814758570236146037694798482701751412946259522654597351295525066537165328536307756967558480449418133950094602062680447732015498066657206684486924966416853994947272953796401894840481502620454503762848425808870507670589208788939941017970051750721231685759986881823539486403989915087942222061137717674148011586280728512309140431295453570119265201156964609473409453551053713352277438344532980224787726712703958028870376191069833809655609184775005932033522186302072714364638589014251433808918752062046141955226922051885228506836727947865760803665067733871395370278119009045413021327145187430948158118243969440069159503451581872822220277568670007539692898873170362132477397147933505884318202940790209977908007229823023176454549350773672209242750748145562485200908883172614331834665323082689430747929647384697161876790331836385271996487064102931168394325899362967886432573121484722134277140429701406834230629827024633090350154335178250677994384982536534766565592632587443245856043060124952555921929525453144274504588349951039747572371118460936601880787461454736826019330354051147835782712711683812299256386866215162412206220490871199392737614239938674916470889263775537873939272889189565986833434201526825989352469035809827083499353077984523137866060440676241686381824758922967895904182871155811520432989465971507090674679244280847494054543779947199865848389089202615054620811788889911312591251634132065540612108353359573696249731718484722180643939179006122458026741350973667775602746772781457750750984970474910091348091762219689630521417302019019470410250582348694022501504596968866562276980942168186539728459898370897989422719552890409184407499495842786000944224118255059323707493744107188076985685095220076828585475787506255800934034158146575990805205593615655725827978139593093614176603463334957187967587549845592817075320636135267975117066087234545286202665883077790709743684256988656864296059607448101792029389080570693111125280207635706171712636698811299505533401513150272809684101487936726201928654705445308164810694555847747910051810373057656904498532063179830336696992895295046959896642320579557247645471614886664806133856765898917680869180453349277847912229871146478062917096528513451765953287823802044147964489991986175152697927791282142752065206451613088049802557228172891217078268989175504528818071444576867413554895864056290917710619315833764205628483910344052586988956013094945742835600063775921971011086512058006069300718014729486386139888058200698541663131441604814712350017848480936757773590718797942448333751316728670745285440917548860368908681316583024647226226670582361681787484644531756445368798250335969105966894756854169783827510816128269993039770937341182465099788855979587336076410082605548034113355117028460438994146696512028135701519211705929322486531658976895427617507690034527024891766997925541445666566493599575191594204934332008786412716095694972699521173961610965048042804814786866013026937276474249046177316064141889392429540438847884891252695685190895094697837889062739244942081112101998007732055722828419947290574021049425514267598871181780005236959368022887714876462017862640076704326023414146398412429429574676042620456191728980031501576447232909015844099116457541359260554505387736505015681076536780480783609367588599113950120312728835829696687678508909958396861843645670352180133361180672504879570341009823665690750513585334811196936855785611451571930948874628386364190876303387524176230444626623104167964185979433718340233890175047456666990487309152870321556702651863955610053232823118897917499931986435153547421720594831366707486254673457703630726620515683838906922085136294373832827017252701207869600891924313020413990862786325833283619895767024215229605148351056513807009446160265858275076574651943502365992011251439022950706190084857227204048763463904817513077859230754894977599812303178072271896483561608836111901590508824992332254785949648487687981228530482225020032855205677592753451033141747606446547021324444671135095014158238423503352012467458895746509068501178051853608770870623275459607881191142948493741040204544461895334763212585437067185306739857302543345125010321414961799656754388220493747335052110477760890478182797276101907821396056008345039486041560856478206831167071188106879742783213627545975822639377437764630104197038736275277984694988276727274687216639782435269372098860559999000101817497597484277403342053082735072700383680907032857042831583409574206835957040780210531421042930210766216112124234545813234730061645384026802253082078552329638603111388517976100566639204303715712477916946843068027722403923150138856668687949494040531601965870510083981355111264468118016111937628696855142949605992366882659892484297999863257865087937955407393239351496720857351359431079272688227943579709464860786294033399620949563368581749550303959636781899133469798774446082860139157671457914875269254604655214419305054151433876656927873108821327720513038688573072199923926541469975894742919462744733600715226905418124866598928094711570901919742133074433957463055052208219770551699523288311682772441678207621580456362306842982263314626543567499209268425516866133987237410515969427846014146284248907853473529547293562935025278732539914967599339956368737443881463273341206733385484625570592723613036019481952491070582787770538667796591281191517232396640638853503782994519204086211262092119136263588133450301534558288723684118442462176775289251345040342922641691086014007859858136424299336761507801637896428274714296400462503634356791488074399898256434877479413076221110840292731331099761617888097244052526686451116089659726283368367739759053278219475038871516513481558658700286190088172039734683214455356883011098796938625853989345237502920278710106241452635096381751795102426862278520875834782011480759318248983815168274052122729409626600779075981259532174463784071498986132992413296005147015285402970224202692554026793755515623577386713093260953938008820425689512130773124018961989555886865482598650061150809200785729556182609548645839786080335512163313963958466318419703389100743901399286150006180748920794357007050181353343382024441515263200754262917555173696088200865902115625288040307805159178570315541180877974086274415123622322286213389215863995006018343585187776874546884280332700437792390676190537289542603664751941015812399095362918815640439798989027812712902053631789411574054302612734916977965931287871414006937717184009290967208566732856607462781285436037840888053859624989786700536086810739301140805663901961761146966531662109966993566538294278730087094411239028677308515943832464993905920367060924607515691864263375257220052623716104605609617640882254785423372015688020037559122407220869022939900829151083567834829896769128056516295533839979004744014914228416061442260307487327730951377971698322577259773624380739868237675868414873058421513342505952303893534277735049436374284428425254006939266873842157050375113277560685665396447337192152623695410878046132091406578537508176115343513657246218353806552342766420271142597820334215573074266514721841848172242626431708904195288258190439642007347575489667958362149446346282331834520176696300529213889930673353480359041913724958728490674462708076392936512648019547837598259082587467413095435491761100049918882315759184682360276259628264419507124706911518120905351142633978795874339488867923777342571873334531830934280542245307920833693741766485322917413247068363499485165471026711627519619602949736922660635823820558859699684682902739190641149702159179046935048181704650577385249905608007349445118476913998684958069970105366501249385095221226634445108942321017845087253466204596761586532463627791241032973095711663206162267412448493800701407905175345602636519893255824519102457590728526422457167162164808398597215345514694134471326546935193048767219318425636657447505899684605871156400730032629475722828030111877442217193301143916309116898930759151719453167796602979165344887731471919713274111871880902911545857640780126881040341118993325455916484562544028944769832013751853100418836281248493421856713589887823154288766893658404999711666688067758974700724330420480738874880205948925175956579173206681475839649751369861541586447472457520407453365039643156160933630048825714117732201781650319921281457904532912741373747460025999528501876841099221417146161636435285144492042008791841497882478981805733758267040531875133276957021513827418165732285842475308924617826078030356974133185684297533691770319422091303463127565460194879967721222982878693508633740540662593878555764512969428384760157107704609281982403211068629152891679149052178756964987338516347792077463634797472966929155646858256671991540421204496738485060687633367801761614792830959273043468500736691675400468209974726981774252465084300212302756135962204870830785457423944880226121571904950627035469744100322644874155379586647331940114725877693487353358520585956092475288797100752954448117188344545813040132278124147882819347133084864252631249678648223169512884045329774980239687621790803206435010509277388151304694933404768577170179552663229771160827183621613084938318138914144798465990031706273656590072298341348604504157060329938017541797094004878198445344967820109992752534419965323147158298243853847438067552587783284907405575947252827514964251082476694649388912432697499101862567055637772822345474012963687604965771311802003946108508944738214494450747821132347946609516041104844869366159194410493429745749122276728246770196707196558669777101494500077814271631425383625659274918277356124373845304075794396875046010103603122611330759276164283799374738147012370975480527093578557900783833828171339099542842531422594629637242828519107702392699247878920927131652687780207349477367189825574712851069653957219926371722676553169101802802533399574510069138159252934187543685803866290888850886273531049210879058240465588384365654545843978362742944685311120546175058495613160672108129485385818187172974819762522706942948606641142380086029638881295861887930234392941659532168739313244398955628870742963173705725606030127690010403395302967242908674399520832626819252277128936992038072169932796200589518569949874605559958063032678366548758770129331994497654844844313598271458361601155162426523362615055989398404184399440907446786486779307378605216811175083208452985464619461110735851557142227419864932619115732843541264113296615573623231479059805626182179712073878350457550513490872415286393579998808978845183245012174833132711853603579959575623767135519212599528880159977958300043164948901092516826389042797545838778553832443287419067216703632881555260106634078578163136347355401128386459580427435665797009356230724885134769370877751379264026532416302566150754692220106480292900508277456804794696572709210236567227826884313155362622287312925896766112711498827651089447872102314614046698996644934269675914472204249922002860658276988154102957392427300655152248860934513146566776672318974686048819052838244254998162381803790388081045347461449346465854504025335789298192813932304259428583161499710197339502117928005140322524103666378312092703973502028692243006285032448351453587801363023458482957588279654640114007008621219477222264542246165549904808068310057092372165305967820542135236740358428561620192557935083364274452262629255970983378052138917556174949502178744953138744865572058750156586852225964122597068438157298482670801624660452650200048445401267392321345383590830327687525406371796890098868548055844888197828502210727343092539213168074138709848140886026176145075976767091311284933997933315708125587864422145043410616291388281695312321936911290052816021081577531855264788674868245774088330700479910516078403261309570866646508982228527524247800092195464369952066510181604934838428634362154071300581283496930559604311884467108709492836674604386043307971841004592646420700491039614634502714697224314691316231903613259348821359958304072618132603670864851084470741755214894847187970223134034836653939406595530526288621877573552345874555838039918990590158646006030789761042285661338310376149971330745007325215253506516442170927691181347128225880268904153175687189347758160452427008021438361600748725634793501603865933412773225624239043106084314638792992591988892042608788587506436771721124083864282396529271990810306716923223026734900138407678197823231420642295453750167595285932940572727930061678927084639641223330900126431872136245037836153325495421499506991805267332312291299470409063068201169149757100540108920341080687534946206115833271462552090350707950402536139878485983372999917335662254693784762674817627522144195764593077830749586933506553900096655868192942109756598688127424870915942538627143960702821350174277298636644425670481381025774286793112062169060165243522700349955624171573065089961536812078019643844017521914412116257977312676108240020033081589593935298571324918816301731775522129760238094299957672419357263492990144775079708293690799994253243735632673452819627397441350096674685842376863436307420358017150901923676770024492023798789637421895538089703774913780289289946578295046011574223898938851328338977813752258025626692453815695583667857826201450881191831493709900703559679281691020263308792840024062054390626031572917107494369041262572292691664673590113968101568111545552320842821125441914047472327991689716276839850174934402911022888231161899560059662360058903525320129070241335831022498069921463451176203571693789415125458357382699833525563102171000307646695737662732746687532023753925659883301949713667036232841049668785211403040121637248211410474474966262165535599946493505017737177051236427124421103301189559671848759847254324399130772252625611345355825168093766922401237621376681492807518834836101600099450744853233547215780475911290786281653041879647380800598513727963656753390572049143152883901119243546298902033494104188042635428242037055259942290632054123621050178774298716919961269181953962995330484872217336567782482601237542658128202059215768759277510404874493299108095903943413860354007898519859298823872555953248992579546884788568319873151699195497662011859854468144652658405753640530379904594543533867658590768761754504085276891690255841158017814802026480236992487392854896110014770863834513604821993820929708932279721276034346592720092611930755068640742005899705026001528896603037323020396237013291415640947014163668071161139652959701848248356901679189763563556309085992971632636748835236385671918885114037996933686704650967666803248187884573619061390844980706972653786241268934185550943415670078915365348209183968187672636239418413562608182058671815032093224849147903530598869663254161901076345851296370116266541200387793742561617717077509005084114558143812015107375918360432569085300793139319928038916786930603505186689000693955448805232266799646256801592511818694726779564156794470282361693414864101298450310081355652426870830667900251831115089713576014184824264330475215245192732110539707927270919416636857396140628402204040428000886817606217452191760429204301456644783434421133011008623036818156426103135994664338575618280880384964138043267057258028930967611767785394917516841205494627519171587067354476730302600241273726068378585647441673292643665511716167535682068050458624020784836687074668380413640048370829998344394248238769010914544056447839134960315212528847907100112176686932513822252518946995673689118746956314569149018518950882915812437943248546746192313325654135890474754037093569996058295806157863418777282254622448220251621901643264043278983436227871296025304278223789173286473671039078259122483647553689070452946524450712697302433696919173417716474910541085168699542484691671009493070129884024447293842751642654361939078649220051689698983338267461215051251120027505826938944681994845881276674728871535660093232303373199295790018653042094465715934664614605742694175684694416041404006270737297366811526662608093014995266103898395583178730686948217863241001123717457963285444701603095157016361619400617523394342259871928604586174438394742671208851660027252828225076222821702183877402517229100097771026206477673351285840665019552325801960784025824294059479137764430717410611681326630129035112178381492896439573749970294213844132811086035392837141101254247212548448061861053858226589401114039207140572380541706653656402845339837750548186766831104839817898733458664681434360917344716017726782302314390116742500870883617409616821559351949956834154457410861340658991630814776225968962990516740122634990536609447057931405678687100781192956773916514881124775846269721877327656546506423943933153899507405563775826581854117661860765324035917304077677835478828062944985684643010008450618954420249907305609815163755579275661988911603435604170736202071443022229241456839278542004904136769291866563724480699098708956547281176423032979172790539719260754058068563328768969251185502897787395076862279952602435869943361501088965436532755743022222723301055458632055452580129087313106495877700459541931176885427537309151267267377971208625185443791214177527414779933211858159181738962452003624474073933624381256406413937479680606173236001921057443929648051263987313421432852528392167855931509675082544782557057397451435753384568502640108992947474964336934311611559690783351887043284166411547906151765005395671676857559705172208659126626393358546202394958256515668201113809545158579833272207216645938530379914090003834187850568046133299760820015651453829854982457409987098461445611063876032801556055906405111421187298614782463543004162639181073279996283084632065966326065111253509288207420697451209780997794332957195965915295378737246524951738863897610912130700898285769131731209901273639839343047015043184165583688612231239117953723886943122422125085166899618405089973689078241382206222548246677460789778887009445358052268147425044165822926079922444163497619872510481729591732216693028427737674933551028016611657866372796620450636717750937867643915054425237214231001657215487220478756480438836248906096480714303625396304109634915191562928906349929579408736852765423076301236448307593700797745925678256284869783534586442294737541017296446259982005753934211634649770624344651894485445324957257727244332936045311131760468834062170453332008651983944915118488001897515241996741600484019577900347000764895358134464100377325498996269408848871880019479504788505465815471674905212090574055277687101480678728372241375158736645536294847221089077031348848305617072479486565231636541235913686240195502387513131998826215167772956046416165473621951916409650236808868479333960356115440179993037410253210242275821289213749827997352111327271296485597817926073349748748124814186898634274857586300484706566210676432226243429719717376648865838388513444403144908295457737313668879126067022354384166000586737906060937944728272465663882496155045595166438383804932190370336356990288267340417310641370371787945578989346419939487325113854406045144755240775386370514439215924498573601570044089976311997257329491589171840800634122738136441565377065387513329207301398692816596650161434220406777578178351736396278388817576379229971620360801465362019352674522863656070688100166019848729460176327997014596791992778791578564130925663107821813514246089364193837881703542373358414788250549133616585373437889415110259761195956340672267508665466146353267084107977212112668952761640321756289810589579992801733736008338906969891658549657860021658497595455722416840377577597480588530555209091301284180606598955228851285462420884557330064843316525757068146604345915132259984203054955308650827117760189796936525407229748013991674795357720557219206296292448635165708414970391352660430393469489375548084319523043031440306655509463559953659796085960651091200573963728986317931195253545421407672354064339355079283636871438645970202758720591375855292494097557508210536280084173516702625402114859771847073821560035059312836604971842453151585649746202446372994292383915169044493678648750327094521149115077867190598868212702556032884505584147240888630364389332889508499373211496107009804013261036064444534353587804929643660073454583813327652204444114868303425286525524397597013265305524654578511424803466647489845515336572560951698073531856346946501123230528258379170714520701545007224497233021164306304798652236132224460531557614829078422433486090513260253926441292506574777413062284224862330853443920872657083117354772048711436373054197833768018034168022974125566560098457173453235914098262375319075506538317118026801521462088419878490183882492289829350535245655647893518978468106864345242198168662351691988461900542964852289844407455484640216820489884708125130393259341894471100295295964730750636254690086053898900749238606766217596358155477543420132622798136988732292692502594341444256347739365403460874245012091818328075292606003329456727273435867295940504808633494901561893958842178647066837022719152440313302640971643518672611206745740942162849210706504606767673035580900428401053846352181824389110689955504285767431662424174658092056016749214690108372740291680149099415104510375232896689042230022329082798655362499434458726674927778411091071162665280135519720641519196198874770989685734545505423404171759509849769315466312948517350785193398352708448133848913441871919689643442071901079519102967246367255804038767429414513405675450977617985226539209959585038654518616716795484345072925162363820535154338383317820557072987163568049803733376729872998065306757803453121162998617606959442683559362652931927408025783225971867872242715060127942646329436687704436449761400619469627503788402515447936496011098501006973529420827225731543752464218657131058557221658011982310750788922652872027887885367699494910081536094549865062187514237775566809396799229280401401465535130748494154528799083344649107869448961597137016954396783031932489054741411218714649044010239534153733681336572658418468986728282598809228564436401569176818967504442275900795046063328428663836724944000759385452307941609486464027747256108593078728195710095541751933572375861006261833753750393528767160644910974465169381228591638761143365125161797829958529725446985689594781023877646228305456414655771872178672121927720721313280731007400708141353977635328059353827753078613168626654614922802867476254669874452685958864520251948228486219539645955984395356069198093285475402443472695251518238879148148027727032216539773922858465381691006130327958275491725885549567632175541686580899665084455519625533910128811823822602787765171709840189056938710837296330449345725944529698394790268123901384693715826163377123806475059900722388757068106616444792424016398052037375635434883383387148404053235154926379414756951596129386188233183369673258706689145040336505739023631739517823654476246641504952764014237978246043053814922992312982118961707688929505172241414804484738509329467178886007074750409800568557793100633505053648214122973780016214294984818465792914317230493588899204020422691001168716989861484580249025264587435907463623008009680816651494309743763018593128292405757848663427015242080397339360635637009622779093289147307913863208953146854171965757819366186569891788322981160099128802259208860048067186191706730206398259309877073551265556378293751733274783504393413812731082702964842632797772433405741014115193980447683536660273170299082784396237544209427469159450687264332356775311827989170606599598248474110635147454692265172253619353968199035032548682452672649537149910291568340307140077062217255596456556803657342167172347284203455243323856668903760586004669182435991447736234494647198547184492329893797003628032950671208814151126428039119988999627671130260865445367346833682984868427333687604842043597092000508676024059144296119576310128221531663485462840831788300816572954186685786178799988805354792208700237736499173158350183441296669782743086834768894772073816240694377718167146627224654960708572308760464169113470769100142308867043956261190397641668869944914116503366754828168560858637073106715567043342177859133972671014704660794949266674502428884083776458497346263489530956870105330745727354959891922473404406865963897625759991363452331888199200610326500614104825085975164204144236783277114903497757055155389256268242803682229804864891299448356844462593425243638464693635409603633043105654434712345340284047603505154595056833147675834456583798772056877137447409406206013675365782250909427065746451225330474501321718393336257245501572018277439047340998559404118210048625015052540181755927264460090699411561803179507499736943546470382300533695863872690637703952063396293644783038827785818466949276076587139958438684665073417828962137355065040236441540566236398489888432632678862457547655359190834837764358412021720752253401074876352971018334808296091820287467309140171580795312428695028245525065448206417719023096432880372270216984815931733350480085880282319183086409094794694678738448355533189525825242915873245630618479702104451274128135218481258336292518929552927222171416848108349372869997335201649738672955140252334830131385392069461424042330373980888272806147383064986600789352402481644814476564521056229188342127645782248867049856418303446404764290048977599404326180789876199170451227997841583522310215010679181875746338920024950742277330723697624133794719634524213348136669112542155946613757623780857866797175080437644438180686642593590243676288579769238099476386886456051822547264092792600261345353687308899684242327085159413222490222325422557349587608575077038854310341257564204743700370620391771630010168295961240559620724581730217103706058774877601530295953327771683948611446608416872382198777067003959777921381453422978088982029031951535844782061510302594522081521630420645845565913150662615922865975531647713600865098771369993031526796639115892389512159754861160569265252116043500065577147281430745947407980314433045757848938230112734108192364597996902233182188460384918693353934249220227222605710741833410028978211136344988302306621536584864849086589397735827084188609465714361235074562982027052495019784080081365871861046028708744010513581164049288275274594061307449031209380548143417651590065878101194395057147613078444859793866760859907137076962876897363526818981279169395391554102734610215413883852067048691557730180063178010712092558805552236913448794244875545489040210871495600447948388272539377373809957448439043262269796704915684810619924753253381844045005638807101132261799172392313680631992972775340995433919621276663314804975966227111968451260886195231788688261104658144126093149345728690308723413103972325606749014509705996505051534143534144114842131281498837200927201646278674201288455770713549209155099483236766464058147027012144230188683179951153395082124322884957510841277352378108419638005689649247322050319488049719155074982651993117574593433281438477711666921944463333111423172029388175005014535063168875997373490851742358909346438610617557124536908887376681671863193067929104437284017304531096745871655785440956822091108780247110326722597506828329258853960733825435226634110927535033363965970636227804705212319177994348902541931980785187769476849710090528431521956574333764187541996973605652121213557290519685026354137720430278027071643733032427691305614819309090921968185237187890982252388711564600671121455080316177565091804180596222295724388969266510837189606853793767419371460485764706668360376960388890268871834631658793007805083464647684108508698158404967184247155488272215745782216983234121445232583832865169091886341081786698000446603555927155654712906863294851700097539211215568013663859632028166823011279743727181143237724891725735240032814287109838118143442843628037853112456066696901499091017980797901037567961281683672051113939087627448770951397055778997849842452697229314278299354687021311674998538438004013386110895523535590837421704361955524482747946098493224463806069075068099499077232578056861080514663763841477523076358252082487816930075267476092024905007251662051493244116074945783560995227105096601218621244288134445690416601672370706986754935024144500168829713625413571327030716876878500527576781003459162020392215698892963284360191965254599861689856096226777178818916569591350091992413139768355481589102768026385548603083992694347818260350627344466027366401404821992959475745915519854546951889999683287621616854848848251504207853939410367107522810708319520080513107637779797308756556379147572296867951574201737567419566262388123700779468703402591355076452511561135816795179087122782648451333604141211595958416523767223104785921256210939597079257665925359839414067250865321726630136395147758888163804711128294772516130701995596567875746489634896988915482388879435841547915117857922654249311332811304183355431076845475513555521067737488334452633124191257263590932604924673427971700784119976921194866217730323170478801947236893733480443826886442130112562022628933591963931791805124920994024275944155084388774888697333124128685989017066214188138586344401493792162793077968531446718740904099823738871881753219965592916158082239014307442446743731494185574538979396862178500629771812934516734685934500595982836882448516202739095252658243124615377539772789242697536249464261743469311881229230200250774379884891939088894884854189217191493790865260642752363038498022469433584976322609491915509544397687486252486606461820711139919650115468825739641692259762004843105973105211082227082355718656671506668796404345398880288961300211375135470545523822055466680484360567058509169704586779316776292153272158624588748158390711604246575472695351529521902507264404900657887831697576009516644463594913038006335615824399415978845708236891828366621181715376967163427981658799126700339892571584371380575013336372154548497847714736472195162620507059639907684490681699926374836760583480431912200958533440342956489077241465186291081087429579076306533736486977063880302493880165725453398648148204840567001230841643928567186893443421991557657356059593818486067145808688804373126861172381110036447820315378597985936596620619247121193362258467392734249146193632238911521206815365045817717765635273768260012674055610783999739229664493275847818687323000333443607110235468583746564655356911453675649249244419418086955106795997530875927685073057230712278211194899927093270044424502350102832979586563856376014136157330686741945219656098289789186037591657669186177559540879626098673254795769605005213806118090104175816803097170839897827870740385796011009754512278645183010580150333266220144007968966360972098206390999022890437695531488138056248164224472362431345780789388072633413726683343144434452209328148128965420920635549018004240027425537358709510870519114214900200412618101762765893774040215345469391210932138207070836128725062245460899697383073761700357241741141958921888952395536124284521347606149244625620288664491570249484451022512000748991903433104936678568826945255572001793148056163427974518210278792190895455704366624543376349141271049993925031827941613115273263963513206464025016712118648231558012606267181015289716204375274546429790483419868317248534301168803411059210967894530583899735668134234109164819373002388447986548414547893305811278513818937206177387809970587177705439016436881174346353859575472405344071860424545989951708857811631615691909860051176087374921696400783117672597004645987379791769421687596374290246804461347857427395573413674630116863789578959434480789061133349754726422129485168686860317051545861669728462677435160717665086801386448011174095783929478480232764696348899738598431512024334503470156191168068128788932613184126477895820284698150976295896645300110705862734663008602607105673965783212357874081228700707492519258674497488040198916221227563635491914800679046638570538965219437979411828855458633509234886599592573254756961988081643557439279825893047275759121078140451126234394053080074850339585417664460584923693452723984390470577143304731502886544010121069845669793063491909426116633940171014746821926548408582657857203935856109504611485679939657194962780126627475400734136139846046687591830613086164743982130922200694981794413678200720349113814261736876467126264543295112736402952187076477339593508804155536749360571284231453207395613741270459870807537169017287508272609647327057241593528487670640292965535642655340893452293774878816107266740668019771571555287800542613895893562082505213031903959374216191052906105088659185721123396728172179132486026540223168923325455105372908477358673792724483690952624938393560386862659316782225450190009027664145999091423731041458804562677829042884498947818036378919622571613877351392029163864760464742910166623715539499462259194946131687649304837323728454205321453394414472540633141239780730124773047717941883828095227978725855048757986461799005922679405593685794491317287194859142441828804252635379541830930542289500002941109727909425707270606749049545560741665300981449125693169672671156580180215232833884259104597561426156202124596022177575039357686718209765512445125484904523932378081275365713541286437700304470910581443552502624591359365586817792231445383874156244810362462213734027881112123456244920020171726103236912968721888814208772836765291324954764013076193856752965082941595412239311971828283816187753592790753252693246007220422304955413109559359944479278177905605422118154088266335281212721966434434744222396875905953377602717236413406823821523775185578009029711059462999544807291805669843177288540307574696465424454634622144212384712061072504135935901143692045449664254166509087922913426773624176587027955509870901407969625588647852547489365195184407905191987628690181973765077043791977456316987566147831166844210862416912339577129089346458078808661196594405523628174855878082856637889969909653720534217210484674493093957609795986481405099607556739269947981052396525085886702015853569491374176005398102167525282715123486730332437259005526728267307207528284535314872738433460327496265782789413393908215728531735392843813189869548047787341875687436489237327325634025962085570680491931112252634392192809643511075073067954767919378607681072501317573230671418400440223691023195705720233922500228687545080304839634403591095753574495875553632752537545546391256310549910556581148779878373225531387276657673516945964770695227388289436453019396436690424842634642256885950807342716898630402702233215477807585592864408980466134355088814637983336297596463104215886724631691268371179847050347146826579621139618607414851925646273337132795922279690527385599686381079979208882769172818245776266651625568767725181431840363798100490130877877718256935575991865469545717778935276309783198926924444995020526289866812898346292770548804336141910032045590339940417592809803192819379766180444402209737667018207717259834906152352857489045476851639278131771475995299148558974520789841363441341338647443177256476093154626263623307902586254387163199419889827946072386287962928601333884718426935945767840935737192933145625161803598261222992079497767479172846855672650948099803611717725671444604246742928242338522502767808872309424185680017219428536200329530160072143586482510459344608114844186563065911437129760082386206745736017058667053282563506261097655630053817720526992450510801933319251798143735509813073783738153408458531458934723387491835687948035927764284630164543683945132390387297071359689135922640436298649343892870839895949325493754427931512376754243937126441849304534493014445672169778560183145062937460338326261950150543358429140943741390674873266039029485250553141989546212472046270338020853543362160059885903347808572372312186499178772537489031327097295902759316359005073124915846020688453850187646954351058115025910370720320555862392260518762647744494482303577451311633680564887714959999069516573959376048330977900796735147272023281185647431859649579079834658597052574607240077098937915858448584465384024369135451454091542415785956298692925468001567399905548092678267420141293758988457947540424386162174596281307755873013549264561614902992257789358816093445244916664028303660461951627393461155919708996367725131657184530754924177353643493658037805218123606792702150992128717947031102690546783774746128764956637806548725252492040110970153616438339256150272913794047631352594616424787491887126194366977806200011566932166946735647779951615674023659771745052119598609011746965904187575583860283547950621654004700786569179484199283499512332981009784704563388144380740913395952122431435868927698387030964124681021020416306383246384243650422627840929689790585776339963415960058389234012161956991046040610679142986767686336350248147401868777501492288043700843397441698922952438184424408385299243876055713721234016716146939771025528182978470243921363810701115842726194818070444404282794143469247154782222306230001371341080940929465723493305085337670490235905633651885533001921245398035907147310927122417540404741756219044216219321307677243160434589334686967685777288604784758747846351308550918905438751726837062959556412024038791657415072248867067371718211799598705690037016551438476736952319023283742234469944762040752077914864163240888413774021643412044289298168462478198663085039347982330571467028237250482088791340960462383573943634625172511011654887987643273900259213126380394752480672340280295444564802979912359148850975999243038977016338247059085024491043208203636524243403466246702751746098398539645356459368077028882703068866414138036843110758729639830503003667387264239969606160217537674410519113174135219286275629453102201359323960474457354893407172031327675279905001202194271037082191781411429252990162954593296481657918210204866826571251934916604040649206568658857568843556711437706405208124167544547504478855049028383196137969921037613487559879072414822214327080816907182357139281110007198873853344001881340322204614677081471587021713163095891367962609442135228988022549405122702170340775359441786092709791976552687942916030753998335992539604412834781800056865270345516373337448185860140155495039202952927323074423659180136333482434795303508454035024539080469871814886958306554046819566875000885435743183036220576687958644985631991269812318335026653439006239609255622997056249682923623316768985049332665192837859079049554257741557152187874498869673499130873530830206725342585101753962195241155208268310288594196044023351164390743822578452139017809653625193365962520129806875421796243563577118504312802736573831703282389598891273063671754717942788129001580054517315397713801731131878378276884071770808763462830425902782543145744883183446512405401327160875314835413838292577711130170036712519189001649169569248016272693178703375294979299723702930301071788438334154527554505095549532200803320267797665127692871723428875491044123135966116525822561707661005038784427879086339310186344611851363908282176103162791730480848357376907426717387819447533910697586051442868382587019793592650744567463097399580586594868840526469804751954693875261941386018893162818302195293734909360817735581837076457356295627257703066775596233664811679324749928622991134125046517451536216184526255239079191665697093702363290489426264437487571600481632146745848165641209903266407825548171953237343587714109355357742673259380027484127782333565409262877966069176076279708332441337967488702145550445353621641448459235457818244061635159081433572758964906528609790165077161443826120248631214462941259630414242088405669457015457070516175181591359744243526899121833540488850574336305051439506261334893445217661250109584960553688274609364515116918242602792588941615109137868665322676545746357218168497802693056193322543512702323458141493189372999327805543224309126201690669197919686985196895631071565502373258878978093081997601444702014648944115365204206232995877610934816942040163802862500713666257060468230429220735307185299786604581651350443618902655188111188773300525298107829498040593093596059980301292398038125871316707744167021300837223453592796257823662388201241726525304894855430457023293266483557220484565873538386790077914204329730470248005908586189974603452143956154229129545507745950107116879268798710434801268048550500185349629575652306493772769558042049714694097193715001918915629966709744226828863678505957132220116246030107620609978560346467240112101645164195546100896723486675350578713382118751042464885243104327105581733371947487186366472665149210417567115433918155601601767665739359257870012539172435671452138715633087076140188162098228786566016969639992263391718815210765717317223727683078223841351329591951593338900209127657665843916908620669321149997466629294922784638534359350869024510287192127398794081738949684740663178832438130862591761732737126623545635597696634314433256343479834397744991649760236893616414533029349173131012163308038194107915447573461901715110355559577756079741964146998669647382470571846229367553158007512744248790700082040573433227198684579022225421791157070539206534908880564419879448055853671529592198401080692869702670887917827585318497796394021811366818187502774819423385700406356695852925089204224295077139141480545486008784953715438653294911999229057974618641484077683185977238042807099551105495879797168007188931473736031411424555796468471625643406297911136810438040758793321641138633402786791103746260736409627197025855501946237568494282745988931793728713982363511688456125522572126793616833503210606631343318709557517924828778389354006503482874281963046378750798391479177674145665570329769075772320860553640741150200945599059279149665101349559482809263000098341447439573469127824714261167416346178187494775545669860069790403348220524500883414251902834883942818729102558506625775670215891652312984921965746133390234335991136331181389511483138521638685774387174674670877829798129574644745068808813792146986329864472326273642038233301874237847508286526761432509535917873774766528337946968525539584960635557635043729693279318413287294329436742952243463288868239692176043423978599105935745101074443322128468099792121705127255493755574536104055212960522587241720471397533991084088928736813871976533044257137317078069993072769627432973868152309640612710557795854478648775999284079699578098025276862792568111654028906218138417054575232846941441381595708281273036171715607774842706314684653998471143335490608776544253128153976876425350672336335109847076907844015541278965575426510325792453891159619582280907355174299954409022615217700794428628206106663132706111146996551058848202962716102788728139204961880696335389796992735512840226421060983367097917822517466953487239807098716654752914657409413998951193331937427594834255445233563835039595494818059832843864814293667322092480458899329722725659032152255587374941177051356731183427217479773090610625629825709435976513998598239508012137043712332112625446294799585803230531241196999835490108120965405910735465707197426882987764238682067434449576031613186806807052932136127885800806582151855336790382738926662699353623938888920626148674118728526223966430952602146150406085819378572353126393824327059672773842351204480618574947356597798410804691714419344235013182923476560895177465744124726501683080665327907060091164352858866506489709370343810578235043783976964555712890857354405827783225513976047038692491539408102505468440010592397712799546057950269550748182905741434062192992879158688125589418307416302235829249938141755897981838135957281935691140932516568999266160227283172342521725961490215263347397580702456765069794391858629356787800595518252336295638139250666142162732115091194332995002571554241057524478219010164079918028868249953847247804052544877830782242714484874095728507031015470025983276137572026207832226353953674275101404408595523309276029801089721588289886383112304531257609118683189692968548926243623366675687770739464551468171426553221706663184463564408588858821799695785976250072787638388481550838205571605369810325684260701535852837527450429996922389132168658618287058660329343309235751285088059809968058651767830814807311138721903982045942272154652814231178119373430621747448817649665260246519559780475025170352823930234235001467876379756074293946271612711087786604300558244841638959244949728694918440813353129207399205358219089128752716087739252584188399944775921459355689842152969164108783497574106022923817998031968331274199179598965682516374855702651385071643689857026303871960880888411578430073211741446666752715864097386651996732446231714801519837942926516962260344180783614899341710759166618084160328409645980926709450449819324220705899235751826415869793182206777440126065806657795638668187615264013603122941679406347516373531591188395782732951118940814854116289695049985802239348128748120818099709896229177015294107623167704859972283907360120306618274729006560062941809466552129799697253072099432891318778891802577140193306064467224455434960080227569185151144769815567161511146261162284125623954839496884833157783418742944895131827126106472888793295485056111730236707370185406536829432063046143237725970666833514365369728137312833089677765402839543598467017152447901087755163645691997574446780413381117490610047911702426496764284508332192986079476037995073884906790070946672576597333543613704588764140556366383646083359356853918530417694175891356868361866485963953542066538199237939459875652844772771875080521149317196676049634470295222394295396186265479398512010715793857090303795470273870448536349906141420093509950378646366492515780695022161852827812506585683326583798550403993753858614755232130045640807498561506142647495991200295036720185115534313497768428697039338076306004486271628818320368392300159241630519545423158255673610830854845703562145068499895108776548617620124805766464604644819395354757499107180197989349301717250260007080824880194349996681502299960504796104087408645165929604554379187633537698927350346209364910268345277279134448251527227129881305567647138914284691413446397277687015503462343901991347769353719043722338187705118526218584291132946947077844007369098573169072686343193091066459314278468879866989680478789385414559046406249063791281466683162959960574818638617004439454630147695807711051158703691247982006372434272748993750018002739326459741752924961826649709167454251732998530593577811948345405109385250243318458670658882453164673496620763892641771260298959501812856250501856737877189299369972296342298870885246661771613828930237637617489254369675269620139721490976456057347234519779096906783604450486261403700523559172344070303364018911058407668445530493970863807329756886700907317804092854162901142705697272630013527504036015671650969279390348332338463399292387035756893084962574619422334808819435421437890716206504731024831351951601217856691985466028157390303026027167429827499276797130339897995147396895261180416910869548249895043805228204183260275478825579524399568000950281996300775639858035456174257663564862252507804657326124052433460312750834684609233807430630660853490143291503318648868649060112690032177003688931462102879663815945052378690593356051419099486523803262221923039404399845060345383979065355996919367635647652542267228063623146657924624244396936686383602749278480388087880298035605845892454687149527910958270989194656666184908418226172555734203005157238065070613699749530433093996651815533053064646061008150490904269806505056124815036763306788350639859117698489594340657880818369259544337948064600534620856466566457933965625627216214670162485453166521339911716670995101410948851897345750820190015890701334203663712298601486251620490845252568565111880198900400073086824855536315457624725490490839706769581313752678192372031357075136355172635667657511575757572294888244631613300588123716438399962710691784364675683746026105989327749360306941446274808704250573120895639650003047469886857291213341539699289192964964864679991596634458335662838333379767054734076029158024450257125764288247307731942146176813482369602117385143919941469971738771314804737753408581841661005353327912736879063845620921482633010406094818436280285639917983419527396918101125447437793190788052966056067931552184292593286028918288170006354550491452878922280478149561953038314317224689151232899480525352135071635254186579685685627392714007595267494428358148228128270247789984978270992160501999417664415036105434279252359923234947233854130199403893657317342566810988481848849150314098000874274546466211564340016783462488108565858769956033702598926826364806206496193637174650489972298824358912504115590703743775754267372014153300352078244410978516929575657649423314724696650731636547006863751757033206380371053218599344634626958379414299656862793426972247012580213619447243736972834794306604320564030210043775050460458215331118400530883863909116771126291225319701506108357456342073518969928809927491700778783495153376927418815704631783906181627452075063245393485950566858066453051992550189167838312928832201552566802384426761638715136261903832262333832228875339802044895928138928991174419326801887779434182982109562426515358582225568897324491477959611553561040407307937549987139893849376857036690998981950862269941747344457521016431393022285574028451612271514918023293050439869199689813569798195886770701790454247980006270352229017435418770206604118970376729454918536159734178680571263831424458362232539697378645703971966597167952009136088019600213253295832581915938240278548209258787922939379649940123244638915152467939493070121947242624261398408021303861253504234051575822307112011482693584539408169823115177191962293181621368100155993007204422499211741439144372571487214489239903912885653130326757962405348273700540008721145080987806423884313827022948015703311594034485747514344339953454826093504589809164733529952598950108944208720985923175694504852277159801521553852853026079520241370366941434524115723063585270822428395127464479118356789560857646737870378479767867795554175314778053880134157250215955899102439467084973895443864915279622347479948116938913187471866683892234839524240925686364498367062291918264719156078869379928995956960877651082017490476049390911228655350385451764227001275056752392782968517931452357499882333272236579167516322901716338680743489993401871486362698204935121521217915437818809037710461762709298608470861427212197018915069218280559307094451653727886489030531111405782032340347748148415139674568522592493222547120075515138667896285581538246835794288471470505965094065304912137660156924022346904037554161160116496970330841917319065211187662233744892862689210915651457000276443925568582975479064402811651329814910732442006583015253585578425425311196328782289093428908261408499821674151474073779395909098441174973892949799939829307526199217682824903220152689100239537432891853702044186010947574090761493328215330205920163889568958613924317827656752290572243465032728898313403493568998648927975936502986814896506111126346536336145709513068865831076832234246446016330634729159922443578012355348982327194831336388004588045018827084574311566819124574603640370591281679346286030613652532838522645219083408353014327909354021740652918388236594143005624073895155857395862815393139348147729652103623101623387843891614791609566890557845525460980402219488254130475201125210180516305053352083290838555207109309334506142522850023483537257573095076901303943038950954507907934457359822894019917522155355043026650293926172205360029550248822487341692013383999932014108600333751827159798611801023664145665879100262858257135928097857712624283341494244260178890792593513463274651550935089226000929703201369956717926268224324373738399766771781086670807451872320451260223804385594499639862669087910908540916842810893163667786594839417229326109973367488846963872772312716001794627800866073122718981065528372219994760366360580236645024103926983511411641527965963818766099528719457865014160500526287327734148355177582352761471275613330110326085842070020854755842697858365441310722604230439029646875401152700927483919497784665453456066880180096462216854877596088499176837409186780139573277849650679102730888829486004473096709943889311790714485050671818074682290163116913821444945593620682069159850132219804517139537794163661713350395456845403083056502111819106059689470507169597962152105375120024563681921554519970336697742135309846453906681017075028499712213641647816958111893062203680977238070463686567760881396543331849767534343804941317628358927191664806413774425800008313012941338811184035255816489749888465853873513519518753359006717229365933086658230198570571887132183549571345877221829278388946399441760344618482581085472158491485663768836649752407769853885471655766133732987176313759998448043691952765819762926876543434167207356193898808149405765989962275005445503616496204944237153648918865567309563611835095038156122846059762041311172749505656150744368634228082438991698996106273789515882502675204844438292281753530035190163735712686712386880210929657429172384535737324280329644340273612609263987367421079898269134205505919983905944313282897753403641289545329881785057222920974819678692713787452094749934697334685107561183037158427999491861952857099823326252661004374948576365325598850783492968871226595857352852447027967991352863014296764491552238986473108931573637306477044987130929304516578361852355936749983982349108961775261486988897607971808634696092998996622662166237203938933494903646193454598876757685049197330847469059782440397982843932215927087085277076098019674073467759125037903119207549601109883692561044365029214808883791976593157394284316397395051619146046850288124087402997182387335586302593396118112139364195507728044666777549268480542453458334186098112016243608422027809828189060038460139070932597963543406801120705465358512289810809122764472276664884746389840511796790498726572982676953958256807068744197145387399877340967480401723242119649841523659112846035458487153035977012497869000820219498736081053076048379348931052649197986291104728592262807765080569958401354425143374075827525047176865750456722286645570430459616246464794006740130865009586906680274677057361115052000380583939861910757701291568506211884578753630721662127053934970005998078511227367657175552545139300394545850791718547037831210795332251997318075143390091831576813837518187412577904276258527813255419949684719174168041889633847344525509763401055334961126259908242640765418765210170542531243713336983127964966946067554885303705500681114449987706347437767507041034622627913653923916719925779173491505701769591731136397355508161432929863637670764858030277176671556862565951071945909844614830535181959497742459659779995574972259367470675639725973240536816687888564748109071542378228306142751609695118146078727264627246564110627561184705378601540877223440100521553099807326775953557986443092011532393048659816371750004977505047844578055024395483930823215703410714000726988109402929401091007588873053597111074741278649523002071055795042371581703437234079146918069833699718769728753426693322200100959459276881403646380953673189292972883889533841444468552815913801644176185901501404181056914203761749193094490812219206116191687254325261806007683546154904947473223098777570824337045847555483144664933378156877748787175643459579982271711079265506524275128995068097294581710278384678713465700889027369795309317774614610666938710798260365912109421941576665065613579349555373334426169284169507495353012243654437270911741915464272229847777080462109972199321183483201139642809977238343102912572831688972312582552656298807181663353651989685267148595153067862003697307544739117526292544177511431239088481370340312289778314795109932841304402617314964353425524604452778470619191125194935194212458969865218166346299501373990268718752271026256441796168533484968933947542507426335161278656009235615206371548471030873838693307261403095233426432351988382471727253056825276986406192510290535224038599666561316070068798369192500724810804617144992873246921192094354185370219950938017793955060099633963349328643900409481206053030153480451940320130907534841275923162352949384136437960369373324915093885533335347203705284792448499958175687772389860621744901776625697298108663612139142606490471683303677019873371973002577212675962427717440428881046150374252873890751964485427682988121078449853591863515219243665466308340167257218439721970140060516705381105358963625762627424871903723774193640202606834500967411689424276619108312357696415025362510545463890993834023085278644193156369431968747754756404551924165072207378417439268316210906156951054481923648322899800704887591337084477114212251830859559022125686291902307696393020308000891408787776731194566359495979558125963291066531624907233869323467099063761742827222361601007163717674648801168147009584887022836448452179918974524654126362123801971780414196102888289947023192487586569965798269210302821605678282046920164297657803340543864589624146255057054331513806731202770018785811146522423954996262907972719828191117144447491579353724408158734562010304257700705944186989135552294700493090211513155906834870471004307394060666701693883610112862503275659173581302999937537988210609578470698088802261245839630365749141258979818619003776661719607130833207292914191780928905385332601355472417145377417895388543134411698811121804051773283611020635882975986239082489150764944427971723314154258800553268785194876536266692463339331956789397791584136880837612308702452894716553533281776345084440764208676030844885226971766451971705454008647278524122211858929462210996778129984217961352695395786385243186871080049716577853173632587769647542903822843690251390536131337509334686771320426693753277367438411951891154730540392183161666409456566416772080921047279502115780877874015556711006758712400883559282264307246156230293143126636424687612117886796816744903033386465315601274725406995597871532258477284505411545359422512517169040167941712039198635048520686353171652967652724589718222133458775583542108715614970093962613047149397247221305791105705805902175080568477084635059206819809444049836920878027191637488843899521098756496532614415342197503988648515177472331122884932188929628159603374516803422228721573319224380980175713994515444567566476311515262471975873698113073631681103684238136314961081119588252437979046614280184068996259064026324025230898966131694759473016756740640496790655170731489389462924830155110149235278669583265888855925680098425572974112778244998844217129197454707321688768538663784392987677392027727910392373576390574885049113478973723848235935697289415729273120943610975260836028752333186725134796268833878294993186734688935951399365482112206011078373140748274591681092452305839389766505204994159375031515302607471786071437947105774793097267781887214492467322504052869335475380952697259298314204502908731358691222677304031827050842478563743792869790279757369114988298250548636253576501789240699713523935822363987540411037834049444575149841434637334166760744374327658766823779010565399164277137308718657137605376524454504560484045867812923669027901958668621693587897328116842966702076219357416568426049470635548974775394638504489524753572991161944912470393889745778749045686360093696329264228372557556763747749404547406013951859406010269625062137469916127593614944021707342791051938134830963815258964687903577453821163407502002905526391169999263051492901253180142911767330921394838031286806613622076014386859933996951496856030301111376584635519871385524001819870170537162318653052945297199047781661786373817048994184725207179167834487387894072630903117061806494939055947557437063068076900946519426409866094092139291658716674875524111262573092902209682755754279201913040344278921750153285541316548357722913540446818613984012750046673347130065559529860987358939360018358037493291978929515566459215339456919944359731343780580338263391084387453532959601230529589403293947787361830780978705185175320622299674484931329768755797579409706409713651593453192305058830575737313732492144070785110698942437584441708526281187140997034937289470589382642672883533741587341166916141270670941204348020428663507904483979632002706187699748362634169441236407486467343608536470289604762989106241636715128564662955948210788411048062040912897210186739409875578464438239613031128411778591847435192108815005720236256157749943345449741721106792999275707120353796061599845943668254223251897642804116407473661491088596403986599320628030951146519404179472639641520825170775700613956471208440855402287328887482324840442577504303966481977106758484386551897925726195883669628708158807109632396489647525761340390228532704053668736632525753687896119881449382699145661509863611365168719733788799735243673919777934275250734351314735760893913328255432618317566589598498007550898258453865722242305553210028175552428928845373372801820217537797859792762806602441654791425019247784554075916766841911160475396634894821749790283145334789290745910416111889568397818551840002478064391661036855248684779696757436956357991238702676852734184350020391811064328253113346423306232579158426720940328514684750912087798902336741909011658907043687033113010731733983996528085262826619282563968184761943322801607906634691130408244858223456846885668097963531682520120719989514203804822063559296534884097686776292164026170020758728041372671478397875126084706622431644488831768461866774193430317905232583501437930784089952924667472743941423564927710829488958928436127924253691287022297080160962128722223454369931947443638504611299674965305758622440577169561777158429490370966414782560713671295022640768120988533995841437959764289623774389439190201830141696631365884600671547455142768294506836669182128301909529008959732954700941195864738346438303145908907078381129959812124957147913949640472820916879590999986113549383929383538138364957938501445370332725749393197685341906695579737600156885512205298594223596747948798882615140905644501467766919158824766030034091437291855712225142542008836755986549424840336845242390414322164094139735705921895819489568276448104479819782854496770721285325555321352039523884002719561507198419128225551276474078000867455179720684861192387500394672698651686386854947283569499365915769076471499201607544076466595930317519000922383440797617942760680556782018506325518220904412571808680364864115760991764934746509917670881444232219655196665332930264300509661376749481626884142264104163075515140754799745647466322528759264574534889247513115449493742930940987700480571494631894752815001138406446995514415848161343952443115423397286219825742921011566426615879186820901809147735087212048243471012995492662504771099842215244578371748476695143768389632869765344957118024508789438687336769276069551901695623298747958233976300779454419681996355740501622979282071126991852495550246672706314276878161081932293456529750008941716189045436800322501027505956674780721697354960638663904873501814976069966536765422546770554468928533838321958562811991844541101340239225938509022965096739273187657150947129097233459621602535725351010233353313258756763266189265797177925064158307060963208421119827787962504497345359539879473180456045250549898746159201151203259126629979156542121521635299352366089207891854670231772747702795356072792278825641477175921462504908783190977123707738587323004891402800944384621940656767739839923955751318627114677528951585404115963306071657150164826798494020732350936797956142933123698921444873469367770012625227472799560332439534683900158579613751802464348456611615731893108837828428640086360104461027647078375895065861881647890708565922938322001687618248052427716948510892339797724586421510681675337503544957743180801135934520714951249555633810730584574936083656359901579270407342336198431019555061819479381980864196294640618818791372153488295832440585615831908710685098800303411153016065887519517374713218627984028214951495996540631964957720226600786453914106596225972412465914720543885611831949379047387624857662503188453823353803170879284247762794310584906224932678383268536360932459610193692666863562612298023480942827361346753053886960037358931591237295670586594226958614388414127744256189659804732540950383509125680725825214010578485266563217008208315912479225023950587245475612020001211357992034044658627514887025097036033033481131088026313540386285952430666575477706235899020098056134409416415418555725591557772802601182514745492536386102390710990065179499030634675356204010004250962500975762154914570216111282651339346120030810047605062968517876430948559385487325355747703982532615756877576632331064003689357091492344515786426945884499277002339243579482875156795573237354493185970017345108771510767397386237398528708668349552913804542790739810403192557839170816724496285660529604441581078064776964366106389468365087641389402866675306303282533858229878746102943978346889561739224830228499274119610747175386987890567730804933246838545902189814196880965060270267448391992062501108729264072528365265854726528316052488529018228011712396605776464048962674871959278489778228997370293514534344628047016176355606672365129762208561189946026668850363484643291939075233840940593572049450890970842920760084623923989735648469532721929516101164231545951645441859954320817363417658424659207755767592721069980397604614778023614195378282679557731940559097721959699443810755945545609859115854537102169353041783467213147171235003619919401050781367766865887733334782727948393860056599445663235289224504672085226408320584373406056322846776980422454208659028532267409534463535260818166563506455898651498693402071686133044725175371734540313434755365286244240885477519282464329715980019549985108844616057067806823869598917446387869134302322179766102235209322818022641243803226377786907681987741982286064575522319012725745385508131516735054331752642622998399412109047402257961142465371053016107622210669451340803444178275597472664232596709736059959652771118757433607080326762661185422472267351126923009203743392180068127732902686615821087520257043856109702103428004876267621042353887222162522132039224835534191786138328045883493401653890020162435510571334125487959618014406014590439942626713352606465532136909177005638932808522709225054988924068522878992718830596412933676829064459437994532235543651151826782223701315595366108001735945757646692956245695811014549094658826248198681828227042421598613761985203750115415858660094895261145582775644998044376313993215073927323544967439655698895726580711366517082273464076688606657364471063265868786098028958981496929213757449108602455894207898639053976999698294473647955823678026439768198737481761450603993509879123359927740264448209061257685134281935685119476305129852043714332583447873669762014546149353729817713828459561756845168869142252627884873966890305576721574187721239144286828542696676481490553430322419459034568744813439287241604412922593930038661469265136343152642756734963705951953940099338782579068648310804681228311837230672853447344986998517297234087529073772559917185078727170434029758485411301956555706289008875462877101577998342446947606889230310319006880455867251172415770925115504756021604378521862100076206467308388542689074478681815474624790497515602855811033163922056313413760833207337140637471191514837219198448566529585893715377279602392889977637465040575229585791458608046004965718510402213322850701905591032162051747968531001080464601254742429519782209899042132711058754944565432789510356932666068840562568039131640460772771474131160047658359583414306121650574227761666160254478321473475076414787336497402474856176931795017137968292025231341003246842339960531017746550147780856391130744120508354020968487820940181448020091529319247989809301624923298197756888153388644796103755516992981627714377399016822887189290550487698826135029531380674625295209648506526596940328305760356057233787480772679088976422581070625770741680050012068956171987957095348581721766209382160062098186976244708281215758531500415442297919324107110062560247745702223930895761955572340340571495520996323443937391631705908065219609942589160922826610332626141463315980735044029622928526953014653184274935035007143542493144535052941062261410900251363725718760828194950333415510655950878086028299540393648629231139175148117593803633168995222192636891510733245192747035265956071572932300577867526883933142279267785411283271885852084273012504980796669947894858242808097510658698432346384252090294726300717382540618809402312485670261790662932721624795163656847219977666197782258263466651226843530119825104025771482902787335740024216752226670701731638130357821299023811503801258071801926802864489283128420928849081832448409849391150162383930227236116158891927896033041115933821054393126235351793712269894382401703889588179289716888884261103554938764204680478170198854680639156048653116261857635632174629467107152252438242328093397883303683474631825172176370289612052031411643394883239039036417227956042204998191144039358016859937615008274633927846048665723584455645228807003977824463503946654846217727685561603085308318177399299329325574026762210266078147208673883227572349692819606543747668053292773428752930740471742183157907263255789457962762312817900836537432547859793904102882473420965230450018460667552848156988392645845880700989073047290830232479563043323147592636893653107621708601973191872121043592596808683229966819433093679774372352343313595922446024720431623675175203381750098071295832442287107512754772169442483256671655252678991857104777664651519849916856310521049495948629953889655045382028226852737252830371345045481503596673887349245992893748672005687420020948727216184228496244398903960276790221464137024388917314316729896865277316693975882286545068119939990839128996285140274946306867305162121042188581261641708331536003390824440301632386302687152022172149229790734097023897151357905261752818677452505570560729671715124064362859951722117608314583053908235288035146040140506440961790729107983136170414710854133303890059539144616337605085329791956197694252458940173521680157016728108160172334989237657337493422097527214862538567379350869934532864945427060933066508639785749709398726420619945020006560275762908182599632102979664169641137954710995030292591047801178051908717966733853933983916483702504427463685475485075719768941262207348775007933839700249685422581472611880549934087137880495106586781944561838405580952114720645183862686272658176964681490190518742195966916987277024878137513905807221065131705105043194907924596646266335910037965643965578804135229431190296511234805764311951619606148316800199167649479499790178134356502357615078622151517227610987311280389893595078617383744151030665146123522407615254506657682231464495717456609148036035692148093917962226556952249028490095129618539605335988023329566598268719939849323479053894391644463652854679450829159314970773786433896475352163677310739562837955049492608238363273738412348025027187193970340812829453997038978210781939749691615728889315735863841631453477864135341719052794250792508925293163371011815557698752798054985111961092883971834888838044495553900257528284983667843507097363534846027081081058110086013551916147099289875869614516378885382451434945703679509607346368696864687435762186174967284792110940013301277801560269586654428888672832439469710887777917236461448777203273471354387271503543769829337785680763026597088201643684108959646782699863885734506164951022110654991680784650302889371236896186497894816635069597525934814463329551414993927566815237092726238585882926560556464875366094343889330120195977844648875022585131155413973363029047676873793858438340611661639501640814827097297252557118553893469476173820966689192701216177235971139235445227565672416947716860513110552193154462335975023532082614735340836290798454006016528012906617912816132102856339435920181032206337725434885108779813178137346583515611564556744253373662096160565926710957306725397960925681638283532696141035801608878950605259987088999298963815561184886104350597743824067554704757428034087575937920627556248077600594290838413074004398130300268214282537785105359053754281678934904167967355160933742599405942543007131045130301322684386472322150166702662936266258844445830181343122645539569908536641769397640515649771243298281164594374311168691406554576054888080949742289092420388516680611458414093679290348839013109799150773501757483922779338722559100570994562240836176916010231978166182911979494810094644424877597129927286837049039133658403842473968396629793504883591854033026981263012256220670068265708781998403441790628749431615136008332992263288560172945891593025154245577107950104059831127316709222419231871117520930754373054936322891322435702947082089009435034785600226750464701102814716398566193866993495623096326900753384698519110097143350605076220075254656227104252167329913475242315168323881722142779608146397123444788891331307227879487542200247355234339595586455341957378359880199411595077184684010130476845468401319960642236321851722351216206122340376498354898342747069026356727327002708294207548145819254727411674425399268896917683342816744035230285680891950488020808542973175723619589369838070319236963944543139155909136037047061245951347392131163458054452606399261072071421988928454338353059656201889953034539515051996822905288128149694355740971417692855127843014586224797121581975548161840322026599940295838212791061932013950111786406667049023373648739442400664671417258010651954985317740227262800322624811183797801144712728933525849971190592917916408552732009528524193275175971071419404231820599810793266696057719767670248610416890926804221655454772669808672569289025369230696888120973537597609942555029409208162850761291724882772450434809068586306407505562587706012513447682750213801521032853948622381811577224980416946436061412231397676122918779891333220873446492116123811223993411792990002203971505346770723086483156521531810128630865915611546008684624344605350482391399825043095422492214357852353093195023286727968980696453379986041940078327882358163191636557142594814039911470131803369131578907437522915100611259178625821523302285437310893099129660314005758743043329139784183328540444339582694563633802847987628037808000605582567241956221738176806792138852632287442991844490319679539288323785697601681966132169658520045098138312727618936134543430943414912451289000192535015813092603084746946602808474679978613555700017020560357959484281226524389437322486435731996175114767772049496755556304498730987475549491549608247359892516615290435330672575330118530704019759127840917722339219249863537009859846714456534270900468329705985556625758959322667070613712991176662446743591894940530938261935490876832050281640235574338848563591693506033803349288781833472532696728813886726965122400627172433421349537757655655194012165075328838359457737254727082218852836808747218118238831625988047146250168833051479027874985607645139663054912586335429114280621938842931423816756849388286073330462726190557318763790473130986481226702999973774230214437740353453256410959964123348656084804822048929700685363247340025473002343743471888362060663916016411246036652503928826049446842181086468825128578809468468524591000257656811514044033727833091189306477592999490543299711790944900733086929358683448593991562349169375738036964883539528640669370089005095127894051999351957316158480246480967132965276409777980037474596420616987370462405598632689705130229771973266445673704818401027701602599945465826151447221469053076371657629034596134309051672217620946188028223884155228068520882107595229748019632350433010839914186399630704522474036902105405455695996640352186678078660194782917715383578056490316111103621977359675842931953842242306887503008646633349634474792780230003542332850627514307587783982853232871226354882074467232859740657701989865625288301033728034988449377767984148291736958111429354958920322866347869749408585468064152913762453740120317874404142682976421356357571380225091038623337466409118239452973554493994798685973610236491434672634440198673040888877412080636668770008679276848000165085662693097227562467551412493460998599678362608447560641149500532061155373352077866850523426042724552082618876623264218367317166887195507436615336596346756759789706231521624752608834094154827440296172515709771158194859388168554708299135480210656615569639082057642757363440148624161411584717601650857432518794079756331115242867773750747639284566259865788043893930889736615601416422491597436769677967255529500186251982235603687970702419748355906178582581129466447458067969130045262746055678472150809960238620146892345515920028604537457422167878806274055665194518014774615079004088105181415671442973306727753675952183107280225822732265562354844000980556248919597113442904581363402732782114124721748669942275512026711776573011496844717868220549575146488284070581983645195351760562973983606514527012884358675298752689063230661365939482268316457493787236878886628443169795823273032597154546540743378303360515923043906415121137583680693985716669960320653771751568842318236448358992621146690880596029239050445279245691884215454007628463322623896233067697446301783541562057881162194935756505759392586873220738378042369617763705323392281694734156703299230508411839544536845174784498395303475503451621217564326626778369035728902813373077595607313248132809301720848580588861741958533267414321070527526323849192528919419644431249343478631278619096447385787226402371239726502533547722726766413250200528320953481413072944732856952262816341997215448305557756309653110203611319363936629887774237179606259279590780581817135503153328633398507382788114161745771208977619164090731380993986940199273663799393990186794102687740279710896755736540093873721225919239917357744540663217266046319721299072933319621722172911095479697061786691065806644277353333945210416171779820503665339926343633316031288326183814062378484828469105774026914084745144244528461157418977939076012652661122033963463406336252261401452945221620964912535872478912459837055424755974739133194432914266120315639422580424298316675622807463808858830410230875478784438278689466079400821628271173477106590921713942314635634501669072804190390426803772603734647452170153910636946355247416547972311894608865806904337999223097934294248460862760976839966578212275414268669626539869689112943351607255133652648781669450979914449230732914415613842175611644136935978106686683598704242106097568653106766970001277250610333470721627961325613174692901646317565249212707739794619591343353340883793118954325657780010261472177014930742213235860331052847627717039566960940247558821591297770802936168797165586988324286998164423644549916224700120550592690988545843394888977853418573572325306622024951001637900468872234632712752005844713727979974084136295917971544113545854656021274317840332156197006343211297815870506055853787276698416714278274179108115575859325734092358187841793942695747849055393298612387572664915838690772032267862686115782698158678423090775305832798591491247673711701893262258391483547498015304941890353953335930535401485659046157888809903938330658661501438169409501901804389010183462171039532136644692680287190415688129596918031959861479921093247465340103162283299198269559698801585914673852136358935879040543339679118157622070345626993463907236020029335089160231849732146904975966118697941903819771434043920255145030781613559930349221649983606508462371895053646853238726574804241703789541133140261237231508491859683082311355179680548233801440245439195183965804858724930488431038876631848309961595614243401255174295151632240001394030820248344425855820950218901648533633778041236245859342076261712424692347994009967444251361606955454764039477918157353749289978000350761538217155744702728579138068915371489690233731255253505274694459221067972615573080529479160745672982278701295259376868363297372023503450581910610913091644592879785674704992091849150802789971712914853002699682677959507791331509713979757770347932478351052314439631546618405170028706793734243699474077780153431633342525858298318551832245805178364423077747954008289352654395080611628004641998076673516927111895485804314991605763671521816597669128246826633526076106521554953858783749987700135506395417101042522249175528136571547923079795022807113790777958366096568471164726516798410201396696380005302142502649291735072461249639872824461112396464085700230684190820676501957482665861877964881489600094663805405923562954012855174910608989736340096604484529074987334001130805120548458424354219453296205211486460182095329419183694014740059180630910279732538313976168299011338787130457894045147108077003165034840159579913487144524164755536542546228649204818570760228559679357120264338852685723799547045043402126359131163727080767364457958609367277120592929259373729049347662324097110597629052954620053645700091732038440419763230711691346452564429440246096016192195444382850694224469133766394111273875105240587513524733562450483810434516597712051412505274580659001643090253159740213942805511085271960138364332900571114067799066956181806115368706779321444384744822491777000447350749873246263511795336951113625275860962846321033184204560710148002356183274032887745338939182926200874337160956818898613141843012418480272452217139900151330176377739341379869643330489461918431319147369991468066876839500908520525078538714998931896466415634397204954761475586376291522645714402398475119437701943131760260839296788593974448807905774817210608818588283679056665783949695603569491585021766381675423125454240618503023980094992999739080530504917404521539878656224155816565758551484188401401626123345975986340375330093856735014301190029871901107822907827031853293875561740475884379956238495771384302172328914234021747447584724301106278360824720124110913914712635757964655518275498198367419372848947347332837159351361287177584045216952524813214592272417453934890596161114498544765525913761319118830983888142533486154242418648316075246874926341321740415258272332283307304130706661166902724901067167421019946152590523530982562684968117039506326308109292252951392743126798932180453944421955486654048611641868284589487528210149770754934157404476747943885199371798899730921137884853267629275874205884912820332439145914983512974296489131577787330957561025759055036635988301042033629778846459379833465582210383108179895006634072392074828763960225026662209309916729296655137697148235560733324311547299620404519778366401688666183459431760478228124166875894476835854771750721235041678444570679496338884034789536475199178303912108974172892773270378148174598227713457053759789043103818182876031634583279111084878224615307686826431808014997700352560849985480809792859979020364825548257957521575733657855400078177453053377604188729655840132378300386960973909845842472795714372179912974589389293340681621872951446358875740432866469251541352072828734007730093606812438873756249414467112186908769955953795883951981528745218994266243096845203512412669161175967300611720542990503435092973629151887638783890909672081526451424667453844767961901854525065284559773237247684758712883597928434167419963136275237525606699039585178819397895609414286657294243170920816721683096954118289365750505155805733563660746921575049382394309209753956523546008359106228244852884334747864165042348087039314979747912427003940101005580397040172704935637232506435959635500920368761187120735640603721880205082472383954999305640057787255776953368866471899753132653453415974691744002215245662830035392439268626232853497079283041038367670869026056569641436791538913260968676269549733157951012777859070789825254062324163684704981665314216412172738943201358096922833901356353330793288038586750047753094975080487714577413463002607729227485522750746763088974594443546491957990346275738620970333056020913844112423104848325475157131165339005902198247003846605956981838981471567806606270511535352223000033417797620701332496120568327130802823898390520888980733955452231545759285992050781312514073423061485457218803793291520777129156525218732292761297055869316874769713268605874658820472805227353821288694028477989911896295867201378864898836949096119265736458492276621052552596849235108852745857745538171855070229277750085274133513062947441180261065354542222755026352675811270681509713481319973368203920740551296066124717690883307409518483460701637680061765895508194027840567320267861086559777676310238953841618910285651358403079280415303669008225516862031033610928746246433237720502368741905576640658520410153767730443736516252685077832493776018711842397957315402323559884824624064749290826288010153616561604341759792494731681522415622828581648594291886541260546013706304359302596592249940757944694650791353143134279813785830756270939450055454864341061490025453828688336636516165927313454659557148714952149984717751448104624563697476267576000754351819647947635829542036155035990383151334302887515031905365470883473652603272674476603037472270867035521686068364720255171037448145066725471165021721197759370589788317149713306549826202196192586754936015618615999839401351741697744033328371050194968578679847012772839778800408121342013463547780304422808564579148728213591775403795313243231591096883681505710719661248718845447998761993043889775728709904855996842753938084666982392146687668557274100992370762402083003951013781523379376189919185579493381792135713049507380420333768255515603030747104739726651677313274622656713439313868853693639105701710177001544468890566511810748026113904390703917969578890586890222647157818535181884457527070540401497392504449322531565854210999195296911869837325771732704709953408136547605252013277053944713667847032220399853423590298725242080002152588367576461597782046722820811895237298828153873709364038366225890585309231087523876191436637688570287485237871972066517180319518125952709111353144875275830990047107257436543633033709938060810752493461269324933065977332785541580289540324238687161976876399210343609974197674418724972148493150607313716945911721061738767085330250685681155380171886773770805794753088399301419503231257085095007054291315056198532688210223472384110748878158038138317592898245191595021116423251297238829934088679575567475474813781945169535108817033738122480972394394528645193417703115456443215656935145746028947437538569534572639001949707567704434788145326725664067918691443736110148716182943540946249279514425385088812768898730684969102350263989075477684523740292353424268382396843920157713023236263312239644596300103361286553098436380271303918622818304192112971159534594330024100862043220272916153193128285085245849835529857224569182158007533435404954585985228771863077278131726571039731498464567996900082647411020098058482607353777990323839671989605069892484710987290879947850482060611426780326087387874424425496841154991529284758809312210499024528603678742342130151863489470877287870792689819516218611825909859335036050123443036948205664949063989837630911164273568808510236864638854850950571018661181082987019097297153933371449714850389233495128496638347396084574296132451388260841217327408188095999938673036721648030589372771500642971346761492370775940605434386423619334647572137912675631689586944280746329998177385155025556542082282388654897320581368501045559618534578139775832582863412797165182738006369904805082998020646123285123438810531568208629497457369259425996776209211113557357317570572398240420360257872183320976260431408001554124170684478417230202227177012278362182072514760855678891041067666861963891571737945149065979992359637743199837139100460849013931062279767469947222148479894757870355156814232820088340071202593372004160480868722749260557327066424803148671220315772892890695503157889152739521511392118026047155602880199750653725914423674472414621587742956392267674464432764599418333070702922039530384774228244756933201867533330889838296455348817691158613882657060878944856699454372330405636844551962908407065841941766143386131402728482714070364137694527130494114624101930261880438523444548466852951934983025190505133571032598905963605917954238074543529504376913504734413733892370628597808809611500318047495452579519871636262527641341831968297879434084760149291545450965605127580744052753453624025095930138834970698155205304181089454149058531175448818021628727205246662958659701045279455543930805113603116760466755114152602295583130199832590027743505171422188505004439231222864014157916451491998529399958271212639324425000723996038450246888071535780616509581062796064651263957809168089160886827800041156821419974428485238952606377038783664087635109101204987218864952078053351346614057006255121995638735924904478367941461956792226852020594179729940001674983913669145474911319142079354291120242096797133737273380248229459109894914795412280829158194653192730530473236570708276876514128770745690124269769025716002462760075234882605833592025136374588369206384794609984948937339642728705844089241302554121251452043592356084805816428155728991961344296614941735139559561998867864283053668628305060934456640585693819603355696970079151310607355971807215981353845036717737557557608017635682471530190992539348895612265368093684644159038052054069075729288596416089979269909461156819041212808792003993340928351961670827623895653029849883179822008832300717366696004476950314506001028812645232091082365748301003972103244641296988977073772263528657552209312253873789763222245832819862431096012376333310973912470892392169313776940375254946781641765734474076737480225235790445113577845793038974522264255399279255641150640251691125667544182202245859360666108380877233256410083518402554416972602024905773958066766406300832386785475333800385572644452270266839064498973659388786956307417198121652979025282402686158875423253694145448061217113288000659129885485642520084032620936440804751614863983822228839421858457860204845822816347583643369365373457781424673721036512879093886308919913916777533833238411610398119242717074047523254979946576900952542436539397913603527691998134419505114717836517184438878531010126843908286227041182708381622022076596174706143218264322987190626817312844078618150334181075555709416314213931772759021955707212823272004667767077210610362230355090034998456589630233304754361352235058121334396386460657702817254748054603949624095158501313003149236339551957643427193996699745613639961133837520717550204257552554604877673714642985661596040996665015529351418740506926039142448540928039679988094769297687220628132130374021287888005223427427935720943808980678017190648208845069403268176264505341658263983681230021885267637320164043909800001674253549400571201271898544559022235757545955371769161129577626194053515596088625950732237645719384189149224116800297594780308812859006182265151083007513293884561381805124655295395770453988009320409628911346775312083123277766817278486055914188954468479788168995021072379855421444291632433990664629116534395298705800527376156315714990437636771203487708381885913202660529014349388228940415737433807408743791125478330994094908590502708500937447815367842005327248657728706854857976797067981956623446391678078761548014480781997675332508132458778263203091083607687038411795917806368990577666165327059754218346701642895414683749879258345395973193048140399947031206940129279673533132339843409261240286650282212240038559545234837293015547075250640290215746852349763420715607928423710741017519496390899329239015777794399728318829407650745759000530998189311075844740771159912660115703158260207107701432089779963913184976472532619627397401695086049415410467780622084026103514214532491534331868740017698880019895395190366662904576275467305829490429826923341109580416131331982461919813251173852683004973210736741684798245771680668396779581311613337797272521782002717526878878342921445352605554087059086480619574147943590239189410800727234739029164434577699885570897565617630514789614947344626602790713061833767364103762129727596948777318532630808420714914587418076249335357621548826766225594562368497971952290443680886251777015324452228146075852439677978310802973807175667281362784210071634259791220893924893409553760666734428966019385580680151211664718357627221501935149592110205362553807602387065671514689977850994893907477373635739638282431038223209363569816041189387937950038765724432293188261276192003084094761318596581780107341966191451394820172552011293358956297374974218551295514192771593579790889288128448561685255040366405008596641852100166619547875690519072336879290193798493339566524772512972736408705517492618152450891651046824124112828931870491156126830116935991138212154097755024023343879610294673679595159776938339969082878037015577426468600761620672348040921025893652733780231034060330397840334308490088795925026505099824067160636729617588936852450735199516453601537180649623974643991695825327090903133241662488665557049056654158135550017064528412846648752987823291977522945694745037423516125741253010475610430770169000480470250809386395131187623846423316935805153563931906965534006018325168338144635353125100683627907014051992282534997984368412458066615874753859808564610897574033438374376301639783579403622248224443005302848259080923962271199141951530361735004445601629022067504211435498380265126100710134609147915912906864335963275946209879779871726877193556122909982090418105195594436506530950968727790909137518100144848177099286806750766000817709373546442756920086967153622883101773062868985347380994594675939055506896084076617241194040761854616175823733176836988862952464152931091684474908627219191130932046281379191241035914909299829038125955058532334924652400479846180517849473364502903094658757610646378099116317814419281490048454257360023236719546337261862631910287593754386722512438126754120876005291594263643817273476753231295887726992336483236872210024371209584713630218175003604103267266916884513568725515121519697636774312365145012229092586572415550749140015634521628753539027698800984910949378752742988743168182173560248510975871656252640859868053524236925554672216094686309315332389353902657081011698809065208678840665835155227730541367505530974895247354170686585493526677607339207834747419517454818872195177536484435016743902604498573100004663905493335955319893723213350165592112552782603638249176556486367530378771168888703343092424264718261915592057128442861627329460518118227646008507590602658081649188168445843405266590835872456373614624431551296203766536419006231435875578055732253604304132546479220132943521070587444829441184934535920281690612376525859048672434444383269571703025009347507766428343513920787273069890653522529386197801364924319049246373613590818588845574871517315425889266705995017317826662646129902873593259143307247878599455177816292302445447033642011518726957954243536150659297407989172391252007960753282836544046214493137725049897054148509748160602917813749044722495183938415840858776427953923422374178614339479874626474440405382346994268308692761327016424762109624181025545286808344078776932249188651577307477885314470814239016803772501992796487279935969412412990468261331344660420684107317879977497996105746134614654357900142170263313452881443867272688821152858150909773876674481365190026541334204350255150891565113689765476042390670814408634404684372872816075016812027645485817070072817238651525546411872450085910716642634527691577179780574418168672932291444632553799732588294876815869884656392427385006147670463882370832017738565487506338053866013410652154826616349602514047959582241528172072454728361323135219906782243761406666896943033378503187670189011556043982102917582322557840328814767359911438065148580261329320276707804230350735047690044339280585416104904903439141564667936494075664968866198691326695254341574453313662303639760810418539373278180804579376729162545299576918020011965750108994984002960513002883054423334060015121143764511630061566817075986294172050075783817449725499570465905016281647432333996643847879790671471199674590009208430441705601185498576324303566839595845567073967246652994909787264870759586466847534135334732051971232664002501294105188403115074981175890210838522080379381958449416816095214471270940405357282430892424587277616467365085925576999138655460301442381661506753050388618312596765924504131730922072887242249147101312731229525394699899794122191756218519801446728298168377032944440659079595771817973682789642644502233731110751013901484618617591734121172364594046349763618684169377676160882083246135312499261004561985225295932001391101364617255471996279303198738891988233088948675511471907069774261417866467255199962147750393883599312573555514535277650151160128079460814170837661993426707192460367176141660717625328708633293768238691142952236998774505920575184456239936012045136520683364250565852711066899686593213192301049485025918008850755054683774685988763592527959352222961503749312722249418788571388502387608801070098199224404610272702729341030002464948145509635011429992684664123445453914995153620990294506348180208970907043910152046237834495609664527489991377288225973813847087732387831389285307009678165666785607880332349077075337088779760963328363381480337401244103306821099735184949315255139582264061057658390823167222070918710270143553761044772922673416631438149429802144332548845400667852030008500582676331453026646488229744568652886610602119263085410568089880649272746173227977121748800550421121188789352118015913818954835993448105307781317701923270486688690442267375734278586014202605203039715544911318841575024080341952502117305399016505698080179055306569825721496336863321249826816329595339837603511154187062340757759016111475448593172668809084172688127975073763293457185610821953739715321295267900900255715111096797575721662178568510224229145341178112677579266554538681589388261296141388448747282016466051557237901052003018945806945936351979604682867738133846401135116647134783972621333159412392196644933436613511955135736131121583940435980124590595455545545710751557483048937728453624314752236716614994485543726579261489134834338671640732205495301085815147161603160253108601809762659858026826462332369100447917083750564842994984104619341627202393877049287441388272154910201418524959554954040912987918677575535906163093328920430144035419839717397897931196408895445070360662518090181287465781293287024151471359393292231928594405325116239618926275550196699851958161855093196904840990613501586782991052158166921257957563979106225962406772825405345320435641655502660965659548271386353002609856726199682553017255373096088082885063366277781474836846675663640610153109193576929627696540516732848795278266643498611762276014759000788699717137031979809450587650359346132016001688557443846426934227883256384792871880115618486186899192405519124115896032823949909995704716535891502387717658546909020834770349403592143004582921583999274674819283759709496972546941838233068159161295196385560905701509654032287541213616029396511948259817561616850796375637502707474199768673672617798705769926637031568456789173418055151751571925183951448528588548899119935019349445757636605729776045774791308638511660145532381231523664328165266965851647699774878627528985491912801730509123664378083668111815798667080056474869175434761163143361239493769325268048128137305393502430538023780075495653620595534778737678566819589447572754007004488822704200134772251907906664156661973980279270952060675375607960769826544035717519689034962314664837296776303063563336153139987500675664399744865492523347733257501798505271056182680640943699856184894839362783037638094083923786606253365494259502343938378017128313734863689232554938490782894972648628144905998707330764299561726095340111674053152028816208902804962581467866430324678212474106056987034433867177740667491826606449612394288537180508214512835655336703861210147656834127011333304493885044043499047349261387721049638593338044075294311738549829213755998852810525696281876695923498550314438885022345424945950475098327757284256267188842170302209550035969146088925200374018334495264250600348223620178709924391950177856133729063117238750120630694332882386031110904844203655764948540964979744285488637525221475773851417940960179547710381539806234559411301531669525935536769491781777664801642626943915571596104151263924484856339626194136185256323546949133126158689624850057982552265535980294167946918331865196576152411008038276033097500576194700529485980264708215486580829458518588089970426112872873367953330835508710506086336927620092319990332564224467748423720760272726624829528180856049728873755495880787116320908155178086107855603814569557332520614140648807600440407986237167535736738166567219694340457894226255320960582595937937454915111079075570637092418799720197272828530900796544219624849756167289278403573974860679162532376688872506426091741053925828663066534158291911932442239378481216315979549495282589474990400669709532237093732189082118019543082243439840827646140320677566753554301586769175167309208112258592363562584698212308455758762240822389766582854554050222094441794745527387793561261026821039538506203578744740996548400593869986445575849104860917368417211416007572340125370799029720036263319033166019723620757295056732024949173579233114445756139444335656420042572166021592485312665030033228669415751225157262526026298052708779366596409251156937543129531569861231344598647007148345632038244502990549247868516822364194273943793010196348751017606897572095843260532606213551413875501159022273910746371086044317108690942712442331770338385990251597478109380916654845838181150880515056536714404877771536893343680774937690028519553522777061399810538017698149229664744903380566634424536694386063126151793837721486156398857050031935414723349991403217414647132246997489642670749868834025219015068725537385399232715902759256570737631950957831054096565712250369770746138423652592370065058199133462597118140777940023611381921584447216595637499932846802095228421672452957881133837580103893674504648156093147845207082659464350835517463587208300091676874384040655211662504354104283678074334166233544175588579411165721952133939833999747182204500243573117915226486303236197876805576148192793787005897286557698711989349302096972368529729875853458220443582213582207006775542696952150723440375429253512678251216763222366926261291761580737518736733154885713865915703839143692921272457938291798517660288199436718118558564533788310892335661865177289425508579777147056917825838047230465595138808601997504414743028015612914308566533818546241548243503951481600073295121652812708967969721518871423504525034100818782663346810708284055334651747003219748762589277927398293186931188493471153294047411151571762344099252525107132563361720815242433041324919773796760149577971028484556611317465761159704082470444946574133368955547087586462474171714383380501612442944837339710601790045256578542713981402819893098412428439876013626007422326717915034454818863373174886530324667184485662614340574166314573800760767643920877966922325392147197101534961674142296218628195975956143181656175851750773595433162110649801134716984488329825158430090277140265946693732958736796721102128618171432885271098548245757999875392618796715081365432855083500856877744835945977141634435836002728489349581041967469857893285114996049084027630521320542594720681366491682588256372610171637189834497679983895342500150847317644122438955539298250134190965795504813429000863451594353175721100643240705674432268531215207185219043723321216978860095615963781912580508894249087687323053005921486791425772981420012440477907698178348344369814034407237419234505421162272911835800080177452407195236918313025425412887196919687643950474497494444875933678190369563135281337020006311944818508254213825523254840056972809206148444917454773247040444621825981628977230644015482729336363285596093686787686188936916726371184641988630610803023995576294483761713879396816231666137432705242728458823585576606284423632845170407260197372594940909026983620380942752763755045057013559603909401988997465211080484402118188877037445531106070904169579470026521331470486134350063001482998166132909403688171089248283737006987095716257553598800873148258240293519091964838680257060005494420000893592141231498632347891918162756928019128719529891791344363907334234755084090319376164883703360871891138254518560967089310103442917147574329408280436154125387990541514211427060272012502639623444111825196454684412700694474684681984293913342302877412284616422323014484249465104278862027277792580990735965228835518455607267948102110107688810806022825629582677593791510239979045094723305575750291962019856621752526863618074422673677753790117549188985290841171749979347466285215243829058058638807206243203428649622177146168700412792969295055705465360153505012690866517180595255446151975840023100123395501926247070596972410777783245469648535571414522360831711870124652627349264238826630898098494240285622923701197014616073364409183589173364573641817537343249419555491894872067524511790643242052874323251523932231897576694775821288302717498351411755437119109719890771664445034543589933366582751994691890482993399988258993949546158361790486095137841172112856329197677281197833432032819484028305760966639018663791661882673594733790299595871090949266336713055142989141862507954910180965623240666363435542105932893311879442756494726976357159168097445819843582162050017492311032234018525852655313731474548884488255198726534272508158383643592185866332654956186642009205824071088729953538395322716989923016119885070937172879702377064604264970614985278813767232443081048450428339922087836242144657207279828786727843160400343743022079516620412337858309637037603044808864449481250494952931970373686290547369413896098225874693925629001624052688147578701485990956825573945378602408133310850841305819968439330931321644241067698747336373308384416941837920724681997980482821013586954487830783593450538651429592053201592523296297661872168298343218949751701196691954664540614103731107467603521304287589771968219402459654221813476930815181658750431723100676269310043399226803889026415589652917319331500432635751202532902046708467338749986511790169491523176386495800802700616670443379124443971225966918959445988766671060327502387892192220463454911950274633272788871470874344249678469460077710142049191391027049476062819190380549994637167075442063764996588437174497382661274307067256443791073676215437388937271581875973770889016095916558557093664713976627211781162431083805658786689583143548396300431059554286910220629517160323076786463831534616098017305181537332867412321497590153515720651300974542909768104585229445999871396809390173060346825661669947215430993168338320492775415581696585845177001862246839590688220791222456066502792672844115542112072382161888396299438050027816913306109509961755245518821163202491787209588157194987697787357544044441110568198426359512272706352994570891763649488253748864611109879183585017475638818531659963812105133739321278542957651621453862741026098724332052156932628394783551996490586850033408704429065806800209999405463191169486635998730910282730242691290187899147040315221217052931750625407491430821096783574078973609410614063192977669282720678356165636761155598014341452472721892357472282690168042321563572601466869062610810953333542747866488177633655983445063375657942963529028341253585408309977302520196956670828468588989231843065543975311921479888417247859812877247477486326117891174801762044143648812893577643011856928390048812797166563027523064433925243780195021701760052532636987177565679765700238585973786160789207917100054340616847807281353365683777820065919211658419593682322192755133805598336937222048909830552382615745859517354375849754976938037114984003776727523701041582855065790937177092692447926991562572109325242943596872740385887073671348788237801546980680357988969084414480025101877496207968661028179905406986736763789133430151723182739057262989812729141990137520386727113636765469512706766994411972189284631923238498984316165805587051469126247359487238537316785236060651262311065163597814785821953578577431311781057842503577010618849290611609608268504261021044808595086250534326590974054535402901752056125588223690625363834314116385815216413129105204710801320367642504497495916075212729994962937057607633193197835252430155549046651833954094671404944897701932615183480995483905592533534593404450271252838724284606386233131198468324942872433846507148660050158921651207203012679208858507390444445548930173540873119541395619894270493737850701412109780676841149918477230390107402738962719711227852389570658828920369365850524953703708530271605188166336390416252553458587577385606326816705600180193307274061541578023763929535439047574185300404016959322960367066038486998980811249861747473644598583169138642872718603467326629962622618922899786031032870874303496655725172728524606523160269653244377303876718097107681028127010499369703837007253309193269511319352689139738234791516729585099924057099737252560534822516856671136312848908839466182852381331395694076302259850532829643844454260595689680052150327092452679154957017020628309337923215255158127682242168673822235523897413511416872845117293902278190785074620901726901828464295036959250556970235223530258470935520941171799642355482103003197458106113872151874110952102879858452467751261850690950371498237486404399955043198486067859983284480998922021384113928172086920825057207256147145043328553765110655429930474401706703255800052768057661342630528481406301341485607422825577612540944883205676159092609879162274254746430579217322909773853109497038446342170149568912526762044014518261567414646453994401157699502714296415355520662130626213948768734443067842128704279379101073942682409360305600134695278118710647725468419210049198784967590775433744265956440697649109614648796932813820665238647277692640557671213819862650403598962041458300584580820515198686676118565886007246707358614723653213581002710848992308119965873185193600518067516863912169535948915610187758741112255592890063149502630615279986848957002347003200710069939088989111501435118858257722092481718650096626731931282328100819176877053427451236126690167198079199059652724257527790654614522427280072973385845606386381576966049062990396757523701318484155890324966660934593018982311706049094454115127115102873668415207801260143597724135582614706428051829477167546896520968347641088723822424355584920467559942460461544995148860302556994099137440187007033913506744748297412536982119349338712565908706046686128478789651532601240660652685466361182028134718185363319313988928050062341037674421819770511771770876405072526038501999238755228427340294612956084653784100734611857447606974948016013279364608514106009114293390341652895665460720640803072579171638229674575764626015587327376624104081327189583606781688117127896186646189120235290985464127420670134079142695168790569783065136281917911847213480267578280872971748350416609421941093111460118470554730722716598826283488331204164570591507073865717910490169219968345402078892174470735063057205564381082385583827404643292697904519608322993946379763732859539576088085409175175298127120262619518951566244478749758966337348401684154180553636351608278565428656230681609146443623806160025559724394420567637771082277632380870780342281197587595549352387071340493736590518111880606743856673121948369067711288397033575221682622495102108240960257490758027615842568222679165014819902802968239225400200850921683996047721833343614010654682212622925491063105015030539237510605991940740659435880318811160540711295877416941509456077070793670924565159976581629412552282699999750441694490486578572262441656375661289771012909839969827537414801456947859505288034050677107866676178109951713337352089354874962407486966387470793657750102668201745849775493478573787910035508371535339423272662903029772582280209137635639027511895808609883542613712077275583167091079552197054950767092545236611566826075275061746799498323597938566952722235949097932587510660609979411635439850397504425930194281638509673441992703506872619992939740032858074717883183658550676150970312149884465893701438579862250498600657146534176656148208223386605827429919258617119128321898876550689039395724392942184264371192183715151992483682609379196211654641627737142445830118112819311411035672313898779405769964189707093126686125409823677962689376835912568735046732434614960073979300359843910899913704161630105406038872134503957410056930441293846050346994260983667297882694548608139639187353056054924425573077384431291852936564849777746435510512277700822908176808238299726287083063341238280759564567028706581216989084308561732883659922544461324611870062392987556675881031781844790198561903430175728132463143308757598859357504465892391781076313984134090297943070270794062032814585777044456532533104582498477446887755619669463641177312347058263249156890104231686727202756949850042399172324839024010836757289451602531587364106708414405143774216198018776699052040604182929316752194425907341122400934421523490679298667970306767850472082899338133907287714120292573577729129462978346017554852586697675296689101031086492691699017302063230657480508455252666123937232185608627146158755158312319760124752118387873748037790675178970913889747514855444209587287730743391702171279638710027866871682637717835688468309039989606041310135497670021476209193595133919470634464052639724608710004714462399638013370157951898643429607305606526715389636339683559724696968885643124296912708267260262022389353097995952055756717165757522470512541298058240791477937041038308541407745723835245285499920083055716564452182894541363319239650144171926655716493818120325346173881860277566518566713237263428749540364911639818243580257908897043249539800524696329100863437556601561109220164228602421198593871297080916541387211090881783773351840954569345758380296940433603811824590254032097260911064675317197482848157807658402540631253141111675064016856813614748547880685753805404617039531253366351799183966302882155596978231492958230237877637529202350146973856893377202658896118808639082153620334359677933975218187103564370902830638416093804220490314269878392434485845410367189315739368472356609466883180661166033633919676458198193900092687438045346476133087361514205522841322499099709230781235675191565877646324108021430629030761681216747714758742153765107999799358142553843660835957833663165630916059509303933912177264011924012547423601464987122573347790964416795743630761206231397626702339882060786502612682575306088251892961894992288978110478578601761921815474218243469836579925855659486977429178114797212449957561945424860338178769394072395600237781114116977715113059162583532717363688117452700555264598419261968178535316191143475465666564757521128906092397525813924651419321516988702642499680770253514884252046432662463503475895420036480414621109468506695880805420017282810818040260932564686587187589707173288267501825981369921236043545815452765612374697048940191690537202614774423983800927609340857084734507641630179578996081152971622243179414971357863721266507451178758220337848601847120762291368003838492559141142425530630753684295348009284983876608047977228562720388386789368087044897944155920551085579272634375967259781049928996566503678148769103518871981937510252228238911778619410606695904250777702813403865667328381721068861698653404439324406707665963824914841162141232659878546005433079490511349239233599763843151926596906118697789165585123935914439271877439793128723800774433170289967424246524780376350705574076009201215011423753554642427173363783036986008447742560532004889463609285796403147951200011353117277483870946070756772475071956199520251723651174183706973554672112960851049298377758736580534259100458573058363799940415789781929164654332793106151772547450347849470437129789393078595018082003831857225453483140218490438030426646591334117079503411904800473526556509447126310287858888153594860567555907176597130870271531735275011505239261565795378467205073773724090325606390376656476460567442398115873233560375645823307911479970450616541643438021267584023474109351350853249008596358589572381949176833979956776561772587782025533022379540169221912215193645239996214443615698293067059818944076611708282185495419979019802721318825088448428892098384072020715668169780151768840065200418003043495071328117561319590256974819852856911203986235315528227396062670218928439207172374845084256262665264107734316943242075034176768133957820364267313630033140886324312575365452597729326987212559567763285779405399809211998773899598816975806223732441335141179978808834283099817917922505765167862967061511470468721512578039657041522076964114977112134884927696778294969341407976124471449034707969382723478055877352568323327908830790602646946233828348514164850723490623924636333624601516708715011029601815581349881019795236356412185914828974586808836554495701821674252348349581235535466826615975934289338130408473774285179905220564638253261972701974740616621389403295542978202045611862875769659174732877249437502023526036397945701216744953402751955594205012212573348999003327647364193497582810317788999916104453276524787565667981558918097703296258311613463072289039147282899710407048033740850746918801712421856081984298494908518885280338663077942570696381097975927873990898185306011471424492305586615520052320787312229411718327456178499424231016540717825832031784712088939542220882220602853414114710837748555058604307493461140229632828536795266097514736458866290189054674592405518826200549365475629669540451316237037690633929154560656662860987404091500266041246717765619198029981957805876229321502226508793976821817188725029329023698644261086867367565251983213892802008928465929345103128412460345697611188802384953934580612509915204777669052977288029235112041552326381765379892306113222760420314534160283266588341617414341514745032309666234725067744161966807623172732624378588838887519407305145411693036716188908505453812058288204155018251896871812824677309393801960356995432388306453358824930678347429038022336433198543338028144257923858032418165283370805971344680985627793965476089659974209849110280606428516064353949136194949378279671408327148110982529646321122681523123746404503375989763663531340171024643608726306966594965426514562934021287438882272805952578870985342955395821409710920472669932236885525678559766323699695933795289989748790117197095805227173869981072242514589198215142608665884427670238506604109768974022428733661985212178641308614352114071206241913796787983685622111339129087540746816484067623127163957175095085314047100486891828670135203706377056593132221705325667119846438499142801427602044264418202342851090046584767913093708222804953537765749730883166808492025843761107154479604847988636217165002013220051744323521794264219450591684332848647001865201069240023260922891485747096418719962257049653237196494188335276874686500162843458674376046016807378612520330432804757097073525476230479215902965044619042186590820143381380862276817393166046338495025224911125822822480341087990860849324114592817382403901206563513399015816356838226738850711414674800916150886623897722331808926855819648394799452801390229061500263917601475903886236644985976474153461779100296736256082964639696983784229101280230721805450428544149138100033370520031138093674531134817700696087325632931962514289359119275016676312947014958406150616158830562572962436121634998034138560204716903990368570262378502534781346234050366915493164790710550973716046362599409959591114523803580863905404910384016161020767985091402432681077659942564397601592018523258205153683345574272198253133888307441714194310795903924373234903898225170933799062507085115791330500203139462459178598275908759895907150081284981714438446441429076404835671204378276773245924122873621276959171176368504894919452863181888246991131015728249855926850813079903880858512504286406030846732291482782286758868389828382693864461478859343758822957167759312252926983752120977785951536233761947782208764016594732250554694718131621204966057050416873235536043744103904960168870241309247890494563370014451912744691344897667694888649737981425591942762077850216304698586705595589051816423254135357301578422781044754343198317843022126549489596461483737160999967538525618663362516888547289141625011240177219245312906834733940045279930181484609894767768977395808967284283629590248905909317417163850330764086467129916883213210809724335062933687221616967611873957958491287608504943110276077965081256491337215108163977732642723261964273789024615535415205082076318839246066572241217119901890043736316129211291885319356117837833153358814027515926823554349443059424807207955770539305397512762839767393020504131536930226666215641080686722389735748549394621311607030266759938664220971671408585786813651320669481832340761318076126404109365193056085789527593332683885627847374177645072374432094103323262123729400323869340095793512996180838842255292816701344805996783111468121384381469733886054845329801793040763810747525889826417986134553999406452395938344954975112698671590230068365348802890297283177082976434253879988730296723306121715743002499464296121870336198860514318493546395224983525141511229218998508267080762092715505326879483896544107966436107261534902301726878190372389725117888041615822433348752941175844502459118515612561491271583775374400900518493789443630016953618155273821444988083015604010438931660030700079171271541700810871096640649153339754924988721609336741660729410306256081332850681825297545335218570475202846521044329402406585562465518288963461200201811779751699755597881373238161550319709247082716487655612226920030785958568838935331988601243033612291438324678774933958715384388123088975109761248570177879424158955182199944104472002281355285014757704682159057932373106619501827720320442496478546591907019877704906564986113397950633346389966615428774326813652457339190309905662918563483684736595787230614030611607859784720107416950624909269384174371379994320704664682409580104245915249322070821225532581363407968583784975614151314153766647634471023628572495165923233755711809741206100271047417097617900619651697228147250581242900527479384168613014954611551576779467424633715695891955408576178574292795163693535056303579645419300048342338934927591068329807721763648097281585586198195476061938221649255376862122556152765241640372319248594752936090283648838321491863483356060696226710518568097266171663486564700254695259117509316038308617557735744630166061573348035110256465329963680051911084501285570344187991933625585528651214803002116689948445485409185348984925097538557523051049168998673513579144234455678733462175393456526174987780950060931188826841394090064009861881633941973279273791607091173481250305873047627280180932303000553054844741416520280850795523005914452864343756233894946534819157403219092962548451719147503972773816698963107302691721878072583960884590670015798019738915793952754760219572778917742502956534522553917846101472064694276414149375839076273438432057294393658421420810230738741556303129160239459111396194959648739897622652951720806075434021474387234542257162661890952709059928750333695663619217870143675447698061503622875071812359398782547784148251435431754645010651130247108704732779509331743675029086713883268069393133898872877715156548782067768073454910808161180083829946585530206053066000997240906083110001263055849127178520044613432370153051916129607182520661822118595303302368299447800225371334671333091057539471764983148246028615843595470893052260289377375589222918715972763933852281926109081808074983137956290456263868611782673562894546917071246197930718043767165283926776524444726457118397498918534762787351292105841297045838058177978080272679885496087920445819845662149915185282815852324602283306569985251866076439490056833593419821031256239005657297309914207505331601200301240318804907765454208020550072576659898635830284061550606739819558743912023752403004288117032493788861158210298091383333643024913854794973853873779438172596818615664888824650988904295551144201015770009563357154889060601146606365188450434936421958795755251677151717970712539811690976783679961602947987756891245765171504025920256103678984501593772142211442389483264740729096813813562483979858974080587875455771973964230411332526764814578803581760116819279166895638761897606579226041505781813574987756984771641968802489664231324677124285399876391641482272905519086294025391103826212695958890320307536689273042440502760116477043800136100101494983375353100730981381107658258298972365800846105415082164330879603781189719623315708087594280484220526939250083101358154703138560099633446792304898099077032500332302650366484692657409615037486196900240261416886102419733014608511879495232080147601590049669094890066581533758931870725129790060166978782081329647036837184675968504524632215041663358293530510035853977783816243296586762341128635955322525749308960027722962997059860955474135452674238919335042192268242477262772807705205339104764089270815491897508900855859408835128015649383234539728369521349836588215946191052523878988267483397198636312518575035167315705419942614843735494316597911478073527105467473720455223562300732583720927488658733457827509376988280310125193196931472053222063951668934377253355754679663347713743827387406344764648152440036983746669587231105342544139734830866571082482317062272506723598711543311572754602411470389541210886275617677744904143322414934436891600746408262050831687765129324268412991828838183425510097626746427917055280916575215421752246551474820920606005650457877079829762895286671796855782649940037786823990769268549332026060796548287198218069237717157474720104412416014267883493407102941905105215106102680742303384494289497450714123215949043842438951823901275309287819908371406284817074952479165160263177388697261927157679889882076076785497655516330214810263928981004388678246834817658240911588629809622961841556485641093579408286107300054906392155815060809459240469711682501495129571626343214029424676550134108190892437257245236580045187488201496090371895456806579365617535915860603654446941225325768017953150214162973196389797214560266823560200211974577892874657069730501231433899800556829810415907330454558859422926367621301167054864173299494320687485115667390092585822888283771964066948158324572179519167033936087283125035430147295662619770079872090033813110123602031776886671441267742337334572036309172294119991917356050224400177029701674040960075196425718334291134482954891632064202665365922020940843890629267522381644460688606593583575949450455091455046803401526931456304841273283374088444371832303673624042831878320959764088722878533602667615332344401528574195465355438210690056993386409135853194013039800794058624864411144778751623335594072156928909878228589481606843736863643990474978171100398201919277827223023893035269942406185061935113884829439234194154926027303483060159664908455474342871642946951590182647677130407028359376234736913674630853515268295894661781680007121019358376222785997385701495507308169613431881710421037327582310705301085440802514290894579965006840162345002160469577690079301952362854052767940316659176639151814403495268523589445364515813152926760641292198877708567397143849960432920382361645760785234679369060615556214491828567094336371923508072322180046653175660920177197534291696841194135419439285318524573306634666583892199677033743486487915016325844144284549662464891661796553540779002196605078777592096054962521711284717875042718531244530518312416571782340374910698333009117533027976120737828294646777931619989819615218825076069512309901139738293283302251994616034018942506849019053534893788834419115784944522390919978466983313263500000868366039924006429823481496025342453902702454094702142919090486229939225446841654947365714014996691734222218816744307053074909197527725113059710375718118171457620403288272713937782341205608326554151339338195389648660252858177599510134910620143586114711312525146630422376572575393699339990186068582699389598229144831153267440533270667112951375431786977671463359763610818581060786858653876330762228958855521519319183326187483207526594514857894610648027840091364717126193372579511330364590390000146284062601107130911927002909818292744815371799697122397399069421301472496038493238886962950823987038876688519232272840832278612563946111273451785250679689638149213669525769292373801332749756986471951934020435355884014076620169534799038676846601506722143498037621583360448942246304046104935641130571910025585390644920238397396621666653128221457834175025583703379995370901222039481481145030259848071941489041684434617399451089721853038359154282110243846895008044439178430025953356565159897420535280949872401290094317306910902785874187573829078936228078086966664175819185228176790051679437355813462857294303966483728991603679958319815178906911120651703112196048075725406088138632074346111322765187005834218133001393200206811635336156474981169892337764624394716290042584270641070105567144514706367760554241542084940427866597148368015481715495109186434272487556447163589238636390389223580862392782494408056842156319511831660101412556930117470494776406077899026452987306795709670578679793233680878686101118637849304382796402263857626006894331441960049882112341412825553729580578470136184816563119316034466428271662047024909716957081875141045820212310768069815222072460573328836454735000441444823724383044814390354924074501120661954907384989522459390518319242691163612591652800555184285126095362814814753127051607837194032374958616401852189220019700668467098158300716504763994866686347095573016321215709039363722996948890913619806163752967989936724302673191083135871100786385272425493120239692593030266187612756429703064758138604745263564576751430955332418419544991246725110006252935703807991708872125346792352747334581612053985133240531451243600599670841630444137204981063497388645674999291626789632103945932167541589606672298405125779224176951030590412191315895900944230594503413603764715177193811320347729444946433982956978682154687311489007991558510569455353483634881143958513998735998988834197601465652767257259601042285114373273764948874495066614164519281106270658440699574625802509081782921223846145795760780029931629013238914453701727709611263486984422319705753291682205871274478803242429110712565465606841869077454116252467817681963416980504967543194802826359686611215149717594531002865461520059845692387702601408845905490439326263852326160463763943370420504174923267907967707958815261372774726210712760904469825722531898739682552626527707356786962699426206236294123886156698056031897394464162258458989798575471855633017839915627832238328944888908647607479430821007143136847720906083014344253834170877276026415533036892007860165602135765275834085728457982785256904371695375644803883866521719557882955041936011853301697897138682548191554304321930378308505369736014756904543088096429572710828231489905151565433017031931811845614554108707181671020847894070060128415800972947458705433483003111256515038812377581028652173736742733078821044263471901958880832063641000982817044277480631786561261492517115228005563747543119209093317654188551409327788162913713729023397415928602258301927078577199834043301926091027858247336579289112735508660674686742341291297739327392873884943671091481889029504201739733849176162391334481488655852765516354376227755795917116685960854835695539406131177398223893480507676103162233115611903577743820356065088937007184909173168599231805809453711716909463867581008276712299593921905593771200017172289693844430316935371731691932855401912242925778892450602460774057581942474660674876757543789055129421746637549794729011721494971495805037241637861144778728674222339880628029255741868428881303074192580675485713648761417151699171100829841260995622850756509303855013855256941466865318107028477591716239929377449589335637168240699557930228931567552307647460628117474388553194686108049488505038598507717815642736672093301401276826741431328384000784819211046746785477895995230550303170840823603591163023430747300929760474303236418965431142840642600893056181431795416510083801436623788288254705831537017268388375950490973523394575272960334034006852079248951252579839155986994633979681311545880735814310168641876558214601287471957624501422901653510452295763146035280835990184521369420249946308368920945001348188245885761486357509395230767384672447512370449033473470617611266442520360165984565300959241536310947819448826036050686178586164951688696363272392989238110117247678261202825431329280597439049127364924972781563272560521782047790324058879955404206958711200222423946849226203638128302709617383172582570529973894081512876148805998095509211676381233794482317882066028722383183022120368273183413110488496116005549371062600346139363222826880098649674976766052148226579893003159388426548346303744052118836788191653861317711048785032851298538345278882161512909378506783919290890986611607199328032582022817724881081812580319989581339086619857311804977801163498887483517203785776850385140173930378905760605893302109878312881046797034047168368422232925387069622012296854196867296298977889009299070247026137858067982293368564811314921871822608371871243341847403901535332305478020441824940162085886911831727183018956051493633344442341333342556618637270630497151720486302405078830372617924754890075501074439046707733069931321512652629937964270306294203961036385790782547689579012594803867999255841515274242646657895414630278692981367596656171060875022484692619418342394774716036144824306779099183772793299975517431786319672603130122198639782123802599972672719510596390413050931164399122934998719072928038892988586947904125849987627411414140998020528725437552146740027446803140692006779612165759074923674280371830100729634188376920856798023126464437711340383525053442168576527795164994040545198021803908105320593088251440384883988437826993375158536845756969241296827143349032390281903552098623315650957211575167243160466127778048767149914207179433649063962312947597308547799811293645166807160685857415718333335004831687321502512622763641793327623114416425248104213747688301636036218843587329356485640608187329250731446217608493006965932682176781271828268717028834181856438086531482510382691004612863922551740615484975122014594868741784234482414951373043926088323953797601322986058163473506634304048718541149347513006698909485429438627884059326611827914079337935069224158595925555924061693581371926751891791762787402349178303177338287979963643438760796912192160385930484225846043640922201626325538743879423586692667531595061149723597749828248364055205155435145253437944535765610667357207045299545810899017622012794206437579087405001865528988470041774890386298519080107200209221986433300774834471289069372841155121582818859392447278924230092979679451744295089627906796503782539580738307442207023434244566789075296114110170033006014880370770651509253415815404356780754776030110913170287266748288341743712534342155547650555619721204945980978739228344013480019987283845030497342200517317057529948974210875585042430622524474029716735944713568374408517600372960632083734235440955666484432418017034120446797799721480957667703710743967557037612303139360511126348949214427353076815056633738891713617412469683086936202603398329283874799326115442633456245563366932580935722228578096700010410669248572456994559889978899547584121484323888423255004220988449256595641100382158014564120419671435072764459984533134173621242497135020340284508052075142342979342201622214766756405909473475522824895147952822179397182405548067545193260701149102464155841771021242229002636680174492125450107483982380242953990620891070812237264969490493859064384375869542027554583194751017915104862542753902268689744263047434442950049972395671462345697785379083009440916561343860528002407074706338020091647672194758545036145439709429043857663195724757815861897411926216755968344707418024248248109207242000953336656977542686742104714488986315905415302226287167236730031952225496586785438001951719709123436560205670938551234294289566919102626477197422357128819003695639855272358014383160519453453134656214244869072086623643494451324973475909565770640599341669960518613103661635549233756676404258411052615124867746427746225195907825826363070903984431997057778978996880108013896319568976268072411651956442509474982160342687208139966902829990758554338299616284195968177758061473008021831172181339690276129267110793520799190325789243287339546595618283279749557005312490634676057756389272077330302884064645910655702169904554547288286954991543840890314490884778669687070972688793105466661825495831378911616978391657290118940409891842323043016059503640954496680371324909016325455830851967499060556938057968321100305042836952640305548365574760588585379208913811543508453101856466892875403787694511270546158004138255774448633079195156090521273475968452622014987409759647584921829904261900875671682818354269772432885072995029227458896915346069648916855202682061806253262369629409624051837301120559568199258605634573355918221259106456024605360780171716066452802429857455915958683716603044605691294279825246438868539381804887453983606595596641976893546756339521369523365271582791523456223002222633418315129956558735375073114505608249869360465125484567243666593645797136958012404098204221823963266714253171766536726748828039060610089315820525122835700481164750765184165838210303073517413981509426560243446078946660210827400140842344745678230752831739927471095601091417407005787642559662863528443176047867513006023373280178248017524325094015946214874145169179386281768598175459624721650052773006219301523523133128219029130855478075969297380631684266127388310283069619702627517759300373265936817775081547271202117060986810781121222048669069162823309759611036441669973620700437641939977186300515861665561550378728224363150799828946734120047224055778780811599574072256714193377706432463018662681313700439049152030291591333647160828256430460801401659397649512526883992447331638500880677116368692854832987214636254684506776200932238849892675939408780730445128806528654263173616805927774738926607091228592667140467216526441942338109831697101897686640309350659156680688006488045704174844533411653851368254163303095499879619710880777990623545128212023417013161230156183301130241118764400988276524523837649199831930112351079322328519457964086527030716092843494520275208784648595988525912153266567218562086235803321938509883458305171137652642182875567700221180856033942630873515394372031671853332625151096464838717039564564030435529936539587942623391049214604505788180145021938017918060728572266588755566698496709541259403829137371544131321616735779569656466266293215742104420033757892942003420208688531744003791292464187020414132514656861464603720070532424215399938956790425053964597646668248578113713298581117025419249499876388867947176991255100068179343162894840842520367515345335305431082710907571870294039464814851168527228861645626008893469045921073443322986581098782801193906721563979911543604469601112554651895577265593689659995232549988888237411281675633698643366458733064047875688044049107774565070187416750957878361572473808662315444373207948200269550957729106697332341739490756114362587496630134603259590680043643506648155850367115836536118668480701314147958675754961422350624857843586104327664373344078639765986761061256239470631276854087990783474136865940721850758631100743546648889792453689815324850378211764789794458124172636135530773695641366761262325492467084485671555771859544999333203367869488956417678466854406131659590670416608500788011772027265856907974834846458614162370250682927605272616647038076706730999719605865915040195363191091438171292027026681132981825252568087255521928789683392948742356265280089832319411216447431265887113785100377685497331156108019002754204367858830775109191465251726743587172820066338925382640462987721571353280781322145638298240335006719083685991095645819146223355103091023626988303067096237162177617155994618454964452666384221138578156547906941553554314820768489578316950264742635009377008605407798898072168379592581591038854102639084029027409054799322282347919145205308064801261928653266710478586792517292279894714407722828885629666058773278938878914727788262393974138971186449365872217835523797118417665901395510401730277822845830965065150949308975107655677478837207230691468414360848723138600835688755569833035011655441329957652367756827761599706103794431823682359190386705120378490063736216433759836780758865643020411811359735334241738821436261752149824387348644307744110859790951957107698251290496845879900892748305086144975845764209196812391033426077744982375055851511348793340862466635550860468871360816416121569844668759951391959856663818187474411179826160427350291303310186983090712269449270404599580004344693563789034528203831270101939837281915908954603294460977997169913360020861090817483695694792689840906247334627535295193043092583821574217809142403289564420502989092281513384968621773691202236799923383562004878947750465379712652114540991119274521402947018685125317377035654777231792975661194452638112813607181565824659555169268809105607059771476470445774182645399847649352294754334769386389149767437157186178277106132567351092162485991424529211480368121677243573211773614036684269478561383505847633026981470665161700208069532420729129958508213230104338335271872264231764173052575401916734454424978081864403763602722453195689996793433500157716901662526359995240923229682688972220543505120786375428271998242587948601069262969776596121327359170309908756346296553534691325026519044493202294301818644584155035033631389539477314076294049158005065327720285277259656765213219822593225686775129747158011174594475494465564641643082644073056528400993892220967761131348931314156703290545729541562720156775109709439618690500517395913239260492463760438901105895367916878840522895027255306875546990918328751672861477163287697299709918853740211800333112409166830019334184806593983528217691413154837437635435582434454090141978104563543372823138252333430013457709754242640116237355079638329178420987355912977579569885626592066052567290831246097025186850469618605930320164914079131761191394842446512093194723287040994267441152721822407386480837309511448035940014591338343017450662262926083239371698347462418031785165256814843471829407072735130441765319018100060855362841983330853462037265351542265767248699269634232136349255292888557050970914076513247000145939783404878758674244333636777558099291620741740308041830701594838271256547852248579467786491835992794389176767939721107662046540972450239817477019678736369162724124200990431645525084514907001468877861788280810268051403016401793947014265071742988867485184657735781617106273821558171774608463987578611722549921019226762217518045239960107103985787022928824266131322953718914071022170153026390416840697604446999045199211539058913066911553173653207240013782451401117408134857098750508546115086850748825531251387635031591264203079050943535674019502651312664617331418059366008592755897394099881554246022854680544644820672423519173061833028459669083085777385817597151908600696362298102734061045482954916563163244160212428359165694336016531292097127692583384979726120001763455916195186650557955102313658731248031822086471555624935874855773788876069758960839502638295385089899257596465291833050456625700630737830451038015652815123041260128569051628917404958633898971021982418360011717207766282905820041181035263720989042064823569721519008924904479458659079043569516161748514647804448195226691211238956516872854672622494314763929637374598492503422373082416501768139453740539491327521138032294059300752765584144823576655010219308758325399376152395061084502341706352635308168589121533989567381381997858473098370977804025777368575717043040498577060952120528247762621090705317721842232172520168033437312393624183100815797700209904166869368997490919827314765924910861992862811750647549158531875011492330338794532420378168236763466831686915321691820388563407258302190947170217889299620809267282670400584723763951190596174936107937468355311760708874504846136125186393075060179682708755742365764637630294609302580371767003866125862324251409664735087914700184786285590383858872222252475613910323752982666278961744352634622347916804192905178811920091988339389344280383573874774313168894724068821055169812572638233669120848288061168917108385194303292164519588860186658880477920479755660185645499725304465004776240510160032166352069632258364294383806609093747172380117196058393067298164032866158783394313274117598865755767982928895575350066885748053651016322134144294824593372189347059806468272121739890676085400545131580798158086730922879275215751883015695267912423503544105009203608441112743050971613180226018082974671548614877615137734327660553204415751927519440988519626776915231491517053220926541629756132343313953919737953190228449886251853324506988812354030009616237807937181796440730674836917327225101005447725541821336619340615887789248608676349052401949108736378920848604799105350996860893504325676323289531970163961785177249654849372774363272529886966961059446153951534375757902394577979817732079663141160854705694821871786553796258685589479112390719029277503765495819043230668216892510091800113828928076213527168515226721673394306757960314941055737426522996643253870717543744159092062894135226458069205249468743815512172215156296082083469135373338001367310445872790817623397047035229642315352227978435255998751882821288502048685905664353940264927624634644491017431954142731485468523233948690615055961510203384818182205955809660727276596760218357574905504148543002783330242187820961841011425189913068032534683067182286864031960865833699380414427291676676945918378943762366139704975505103353865310671280919724471722934189321187718169224798780430464399307707993685358155196281785834926338086196734234444157994126608891076747714993787295054747282347371735031879801251646388672013614573295759964457675069393342249557066728086406678341353455730903995418954483019249677865884662860818854856870686942088327770769654986024529267209060604078771523831921509005640498197399268668410422403018226060567992127031398947108874598637182547367112040021659060262239651772153455211379118047441674835542020210112131830505736246901466411795159978526677243409045954949943850768942843512739461886653366063168074592159177049440188676220476367810523980042077185706395251683458778155628118866395561638993894980571330870272981831990434914374794211708295726820726218167953961659307532440938472622374586924343192741024131059863731983756459364163921701432268049145108984821118913510230069293713897635343993645013819591772574883639065134251905999943129482787912550219392773802485247140639738059129535149681479391921951679530338140900887759202015152625119729941641388992299809174433973295596146297635073341402953330670169362402582185687023384859816333331873364599670508803554998200225792206907450511754893938264455122938025966523293792489606604121557594223938231858221875043854338759500206368432933491400896090605064234292189774786884329415600370435595253391280295219089049257914056147389145001394459804094055378031827441865907637655151863018680086474728159608241108252497520478571223817816657442736682694515571876460131899234466456708969283062810075790427511444066632767932373466741165502876975473261586174282510538230522322935242421076937071675096592969785909886698347231959664976188459690412774434102295462917549658493018265721439299300804444542599187665745469203939756664957324801975316232205513440716223993474925983603151757936881086332288619109751977074043764831030508262089464132256517055434362739909743900872286720411855125331876940521295409687297057397351906529862651116542666779895608611875999922576131126066005442563015727510696827754120605587309577195595151880945373328939529996931447133684765394731128166633835459059971106258932527127341890317297168163038290411518864176182553396915287868368033611462493669045125460858581815707660643289574766063635414374276280329832248045409626154939487823306733477216531445523946303528329714842568141154153440703662155385350740482049847904118134721720457434120881784878650611620512924674393393804505427688935961791170097658502878787350121196265365288934847926955439190974235195906798505088920360150624093805189141226470743194166024754314851394827583766077934678996019544083899924765757735092686178788504414870947826995887286828737304982527335736234714719152599952425819204564612601996316115008134783044666132782915478214498250631526936515851519423975812786746974469048057526048936356323611367773187076881643245137940859995109912661322710401153231494015097031573454053859858497734346608683291794184421816840930920149824174996351646244258821191242029008502636205088724278087560171776168261241072876587225327081342065726279754895759257956429139267064014195003999705302564204129710142119185924085742080078329265482732315257174087988731676575122763789505747068613292298715801637501252491057183571608775617630848605075320482316373607121150463294187927660086682915944088968018017355722650323341322639257579451104289829068005784814044171390040744582420507223437060755521067379975253827916913136066058012112830905822215001604543046013600540902540232275423721271385174495384883398149423578586448556897766105875182210440922089073693488994792599874214329519243420616750781214768674708892731192465763071888660091600995668194057379216572882436637958716534833017321192718014876566250254237018020249153536096916843534272019523030513116623687280961260702718652587650166638804726775971519992863417337734517574641745687440915707623804375030875690465476903193569569029768361347095919735125374059377612985525485582101911955387541762696685798520132237341429010953041048520849988638437177473517513916480541133324269461226793391540889908608241733957454442277288912450340945080917264383833744859139655454349435069110786396145055671985751027515322357463074765436191950466059384365163205268212940952479334992696998437162875422468155701243399391180976091671013841521594619192289658500499874201312339658001947039107188796582280287090779926846338369708850353895205407495698256007555132597090415578454209577595943026585005746098448674397223846207324393565789198437233484756905829025952619603794344926462537244929053906445087749331189908249428779912666259250889678167657301765916308846781673292815207242177400495185527596354091518647500310096295280051846839966467145603088137878975313479743548278404412037990035920182506233128758087115945825151131147717305463294621906328152598914007991381642503846754387011724879205267419420979510632535697696499004681459324210933218365471168637883876808552185403691088203562114429498818911383972429605023396305539821929479385018017157776390333674700266781198537411374841781660029062866855414526362967312854084115370036538158252462225129482144922634192784067925486273602144381934143570745871518626565569230746241250372874565595602585389023389889098105595169824506750987681343399751812403865509693012633297656646863645455011128504099384159172962002718173683884977276931286809373828330806416601159346597906981820061744222242659693645720159529279212347462982741340865025643190502140075133811474196966884995352140048802424467841636000832574195342202836891131990306615167599822366471986017270819989137595177586203539036303613068622470736143884396784595870289080023659621943549824998229731291870164179849063004212317171388081612741874008887577405973439797647971018754378226563481851869649219827848996465789593850705059332688366328845086017193266646018603008310244099235482479506072641366983377826893381705299125585132092769719633816176658189171612118346504198706091236566489188248814607061469765821710977025905201368108486928270104276523509779521229886393733772392509476740539961204650516285385529506463645026184229567085463470179600892395706013308497277291640804032234233450081390476457191455221384400497986970269850816586028042669761388696874465685166103471685333280773555435773150443296230898958004368663819289036186775472487157079274613726943213691897897638762783232585130689931647841393771782904807371004499099813920343418320929725481669895468427191193672420730780634739085327757952505270208569685655929227674540706655103243816730468755043958123240662600892167535091410727253513010093203846642754253007524615295947063048711410146789800097027212200911376978868537177361847165607390701822028972993926111698064289467793530133505884343162653300497382572787086628593050638223999593204134318117657593599392841485618638704781681011178245258513196117632356609181029644093838094184473727557639441461509198379279976839172823112193101818153990068903346258436005776473481898870114086703759865133910708351829851546256579985158792197680729187218802932686533583967601649915117227653342995656444135226115384352990456024863915840496753752716177613732997630167426385016092423272433750992125874373282214927531885302040695097856009757530508299579771213717333490486285181120651421839894025057839838027350133234540938686311626296662399518837656912897196370451855874158838138159438085891251730767876259283349845367119365983707264707102038007484974770382030371634882834892178325805197680461942784835696934604165547920682934124784485883425351198659237200084655890497003112573325335240223131569589114200159644549291193623423497150141981049257406823389380079164022466642482533805258102187257849962459550027138685477693470551261104608501561765025001010510764590664060716046876434079239612664465721429106673765808744009351884540827561112727348052830425195126808563956317122013531502017297782031781810966517843210904701924166353377910982177813410304725046520094179886580781382743233527139203585553986217324507981403729075314693469078704880118047716510623967871702029282306306575831324043485556217338292528995986808974832799155504520077395176862620813658103204250551649157322839169595935289761647742702761091762120528421995645248872304926653636689832426447187810497132492647094881471518270938324538779328647317968357101090064484379411589717126472346474462381578512362794225874805480279748223461151538109428013780369261078162010373823177231435771305094094124221215939758475057220993695696246287396763237430877537168612886786776092627984889871680019408522632966846505611056266326595562021926174295401411171466381572917059472258906257450033145974088512393614554150440542811142148950652296888003455806172077206721390955611514270689510477913340273395928598483625496859962802965627911875577774628752118741099052196068290315598150788881913149861241303330204372470492204031771169188053753503220996371768878999566680122818059854601810499533389350142072220551423042180015797060764444401171800077581218435044450706826251964058807334003970884875446684988327583613044408676530757706875129717658649571857152018184502352786385959642024281491878909974610793741977719903851710676258800167856483097031742686119543372756356509914584070988604386524098538894918711963831584664630837045077061186402109407406087329096991073169589943733665949270972305502502704712676319239718545589089810887880610210323574893173036851187741853361064989540943052485537371635517785735366159672841905357468905192068320113514108009996673361884182700871324968012428539021353291471182327873817184257426453606225329553680872431110452955948959413937515496772485519746251575618777934014743238660514471267994526898576013008499625159583635732062359937449092323283209642965054360542710707898722425012683651234755281722646007683850580532018803980268590329593333066470438207200691214863762350479722330714961581364609030380600873903578121089498410619121684459705455145029148923153002507156538508240541822344308576329053583995383899359633007708895828998082134183593793904454923396004424045003280602039880091206096002329706789498096358461962775432002610937319453337847375647135810015939507348649286599545927460406500611033842566087913356122764451498790228373790697592310802031992629418518960206565532191434959492290245912004293629593445084346237312123257663569518370429243115263801130187607608705320638653721596089019426471413097387258284426758543253679722678012018420142721063982820412691640896700225179562706775506634685735530470161613472486945207448898859599507757375203332655117895751233995219421838346229178548879714264344318926159682694101666624146011593755450307947701630947827597620982924024923688690647355412176495427705519354218064769645013625809233252100517578744935201195043605776686938643640364563321392969109161526067603354331352937034880976392501636308067819536261280230139116001768898447571160370315523381075150583373765186761973806645258456234412789369914213048249444775253621981880545734280770497815875796208416379933040629391886809316403289614349719006108020948291432857426295894934111042275321400400376214338594057564174094704682449912619304585709549456498945034961805609463351269361624922130854558804844973327111995023680139898654450085576574702413868981092691319366550589732731913780464661076656610479691359284191034590608688512558586752516908767892115677977213302291697725697177168852602812222401328877068060217871417810385634984874865087483100286910241623873854348762893148821468933546303991697856530418184787954775609619201600787484720974135220966796621013698760952588764468827649198397749426270375217415911551699820213714308368859418814815251704099296373965818928923561305866881779672268746729613911561018849781484060464190089529630603608533386430452866824120451713621212166447658596026897224131915630795215628090290779624929128275648102724498672748310844318044560354602726405446664589005954061294464693473950391661233871493920289013553452015195902947059938402210643020531010830565607910988327310225084974558459346198763131965979447291500851268132833976901392781838996595908889113595934870149003877730853908400928763109746818540244481925406098808106068868539873030379172959965081166658151490781419280803180714945117004797832087349531800441915636708394140817354158507074807682926082753019996509928544507279451627309101422554588947518916656909797671905112470470276500160424886944764572229410360921312157427905194731431525912713205863863483898095902867613394106826241213175986656871904781914601729599598365616642530484255325696177222750061339544666438791523930391537905234842569496676814741541798196608033861077843510957335409358395845532982654765477217145996984095850156564754319323460103190660511617644307684401656853606420074537689785675191950611668254819701927523064361412765505798239257773437681124762773913434001037197097365047121207406129798417283924192100180913938556239830172276679448916812634844549022960210996336046890137288160430694991336750786496437095647010467788504296741754756774403657684157144003001474563000101081041317715151708128175715026483911618418114473183437704070134533762217585821801535140151025820506298138285603715483911075873647569168157950271074284135635094341247330751740303807803663069842791679500874501276554414874448476219159597191799340881166982998355988167245154011090840494532088515433140047629890694003980524816892748752937047877905479521352968896178723442328512933794540002019562170443515592282005662662996982626164850309836172161784366585736300278685255129355252264988385350554076952042539073735818013810127300594451812083549046294989498219047896773466058057109774030143536244112192746764628693684350717951037783448976845806522535847995548694609433091061193932941286086780131960251293707140180425967919432434280074938037719398264894943752747805591203549219694924839009189117279911672373407104242078529915298841470127827836544399061389435386679927188058555598638880654716165597347855802253211196792598170498141887101321123468621587617964396046079695751173231310254249682166934394696194480075735050933080928027794987929118641327891735279750229041461306765441119510829294951243199723566485947295047972906054737686963243001332373329595226519477615153372171013647268140122918004713449926336811612960727415255525457509746884805242230229096516737650760897410182769138571780475134922717294691766843458303448068533138762149368362613446426450559075671115854184790889680575356227053170308732192394903173235829069923633637963334203216567282993235938082679991081669808164370329040315957829803865247855689085443528414609950360281013063154183754414090316670108136152992170970464456366568047224459838440598488865396234212917526268362504288532264355859053807786184313924417804017893126720890009468871842432324377466824381321809424944157104666970842344595298703929572044563038204208836589471302069338197190799289772849097748310312918615899057682496215193970189288752388998272392430704479018855566290709155120542296429424726660310399441286299997429628996459452046897883817716029101806463009360087222243755961239619702994111974549174713804402105915981360767606715740618124477494842127745751926198657213409169235590406288090008913586415116846974854819192799890005503440920890214883345567968280881395672143442093627377871583880645942596313352908585051840307675661719231098218496716206153142780665869285420107603077725151092611208033625732475107372133460129046519763548442263438683113910529867610594615896282959174856179798314432097223844740776251981918815502418779632501854575966845596876094312674741921481596824192216425950144022676743829518243909402764783426106122870391378787564437534247599842503821259878188830795778527106923805730402740429420135757473797661383647556122754268157996684440049664730099798927378518979359811955469673809322315286199792636061740743714145294371844873460244202558309584937708434015311834451101697798984186205112277368437335196330326369510125523360362899100721963487561897052131590453501943153703963636584224381020628700298570138997314168996548342618890817389453845872779835056681039913440161873790595874253598954639241418042883796060841474721926023331916508844726697009665329689448102660469535897327103623200810429767691089424025518675735057637981951290340259814154061964363987486746596520974544619945893895903063268970094463671807234710335960392795013410307514471480788451225354812396303236279559823460445006109088365429896675052557029286059116746807930763007864113809488922356748419486892852617945979783928952121254862421258689153920026201665465655064174895162520421424419851113565967304098150792891373901891057813337856601797571534884931881732938545755079667515274743195765608060356859224988243512317380913917712019271958019022002783098055336446784323018351957478219596581488730831121384006515554800363449810987192977990344803191914863057116451191260225165571421734002857262708698596097415079318003576355142532977983295971160007360211726463451886845842010130920393335172574872455062083272059941360659948693435464833836762804861933024698045848618364287263969605196349586262855361777094352176585770134252294851363605233555643758019420615860926028405937548409653794008272340089140782456949761149509662771568080332551898147710701549161797471221487667216716687522453017812589565677022521062927866680847827020273130264864798867426271437780459423054604954977674284516123630989895373013805483294796136762692833020597356595361191386327013798516787801135403715166955854343875601981284342887406446653846072076770067940952402017564948313126679651840149955121365417680465465473261716955117698464744742943466062985120237093607652451064427924689688137480407781309564564563520067455947027533713006514871720424979547521689148944929641464893463676606636043622640668511238235394979759153525361689310720390572152834412609079146991006647770302375519508404664003685795567560472008393832399706312258670261670580595170394858714701955518899636135824654391887225634142518133817209787627474448307353534017324636152290003490863206482182601096530883405423365017648891385034781457051820598164666658407448687416910193496282525829461294890483817464115636770264890550273295305886932489493086177639570775375581896872469789060597443450872597941114894296802799930010955328429877569567894504784067659909898349618125297248616850366048943550928943715899658602442221509785636439099306675605429413100210721747958565754899506568211515536689342654810592969864295758441449399561123962693961694697484159383453948977683328758920052844928525014286631790086906540796316863492448339502624396659623443699240017256792558767016237973865850125853944512252951300079093540338368974278147951003134303768284712206491636507379316114978191169653812844479828262473019309014382241171168968070147358318216135648679569884260247857869933164924806847252997686586717460775507821596671799556753432036931075806360970560428927396887137703518299702338146994873691560424144014160566757587692546809794308511869102389124338935120799498266418205746573151723228115979932391656471584470745027061132568238782793382488729734363651559855741009292587260129272513683437010140774196587116088080445613828922523729498619496548658989324766065053215224800215435152566402710381856513648703265790989684496251419900528118029630051789826110864686934745997942295669068169904989991656044467079758781444627614354817813293101491681179770261742500629547411248435185297531713651236304259893403731350423369214847519944205890116902536226681313662516460656765895658474122812543842060673012156073685001713771892513757691035491229884029092287284333205178261612085310949857833031320980944833280399106232988509345782160022095115319417496340563580647892578530951215126833729962210572595343875065854366305883761541419271493401578021948613231681555052855397692756809973163061810820578405065482269794966426825287408935975476523296382339881472733273058904983285601642214745789694059756473887213789034764734453041454591279886658223352899407372222758668997790396081466287017315008970048092754731748742983830674899358474926962166892426394178184349523811724652666049362898515764293927926676796527650112031726767026878989978030700478529398010336737689525443347856051511550497121478200808013183443669041644288052007274382515942001163734398752049905782507054688520243104543182339675184159952471697953647643961576630619255126603114507887669112744417916056688651080494218291852185723048245892548013448910518455121972479569780606558342629328153378841457208431950084442637309189638650039286618372005210868159083471932983707062728471530127288541646533377866015464503382552859512126291323305399107714964780945188849541324809910312551987639583586309711730038056456747949086600903149944223783551583450715234763857139021118379871096650256022043537084114598179810746747559931937801665025031094729660758224613404765386386901974832658345250017345224824979803320181708743195754960029521726288697632760095079665193264541088168275171059907723372709747502235282103502142897616053849928506848921957016938022120570788671801068902147651870126490500964681257308457053659246134269153953128974804134244955242773387248124427325139401840271427555859727928869739761987337922264345855868284879955196351587542479179265750013756991895724927678671333330773642626659910139542611812438070022909905326838763298135324486986341278948647916418635075213274977230734161697898846684131029460498296721199222128355373873391337872059974687613071649116782601638561232512027155627959024628055558301176522762632313587952507933163064895989769597320527685594538427088614350502767043647890101730185331155145413731989503905796714981357034163603258019322597387437149101305464547880425252729537792222464805178838883786855161092399478850357823084504663466068058324761501026250877954445084464915996658958676605680392167024812592848769402321300238278311344147507726690014924810157218872357552991878381315470200384756400097766888025457990708540071409331768337444236116661609988242334010071600136458891653663897745425557196122341369504692672449572610415872781453001459922285609713020346265554786570032497347552000839732022578658152833815067403474087035004364937842561269626027299308127686851087894637611781514470747235310265984551944496476833736564147061014560772540105852937994747067077165348583355835272044121909906678034026754043360470040230479666845733207643239219979023671246441779300071928239458494845472283712253260998508955422366738464530377879523484341833983908382671619387799258158216144583095685502374920657174604558016949772992034885913680934739727691183752104197962641775247035057348983370825145347762974021795467943132969419365837567324332768409164609504159967561080456378805605916604496500542340504624547119411026384606070827748049638856325301643288989624773252402607099399314636177186380398272451468804247726995462815865472321702788422135959149577737915990653627443505569262118185859747182822174245766549505018403433741663634956998665971463523527926887159609398649426735508413572671592946463677174887750214586743890609737560173178724338743201090443530231662145419446012420692311925710617162726196025410751849395213480534335152539453999551224367673167142386769696912754310254164577586056245595577573598522534562271038753191070372410847975334664341623587894569455455793291452266183114479130141619519274160853351513241777587598051045667191452535473748214760198998085116630447806107878686734043687863415076358440260624300512091855489173306304109866610495997753923213109048959415485913108853598252224980509134319364308971922382954130203522727900174698361148609424076973733857680870597304369438024095989374906146942443052416461108936370982080625975833449552654262780658063784839390543898819502542694012183450779871591288212399248245268648304684071942381012352027170184639387390087121397067039123839199751992857495458492560261022650719099749292110943039815432045628643243552127880734419033318070669742620666151354836647893696027777722673599349729382181388128397608202437209475582617453929175549526585442014323872529352680599786782355749144485323616100921021586171490168414322558129299903580891501704939516285483871632553709374601276998718414551372100725007319910268232264396106905885722478215362121539248810873779539242291287161935323095184086647060481928610405913266464404191034993955059439061564478344660100958249288960292475571975801598082177356105704009525062113359064037098052926866281475186574930306828369770117679506080417505305344452009779715122890282054406960970911744572858762963591285010763132358877693357747165359340420231022614452266795063791651627951787363944510551637053265478052144589824485134941103678356943678664537333319322922680816264393062658468716145855132804172520870046485336960110499137617048092675747380097224482054643024789012955181558785368821924031832189477162722516925417492538446734853090764566165907380715122922043203644098790064260703791106061880287521034466156479630626102751765210199318925079158608008026831259612172541241798949353741144727216708445265595612306145966331011424959558093864066952254513088949494301245151037281596858842399548890562681169643067181269457978784372390875896323579824570588621613715575206057491375348455262624476013066890272597226804979394068788928760462965607069947898521078297906122476874187239732644282132823053240559969568763410336613502197754118248526355844021973826180848031002215704298068618515603982118113065180628141117447278436491867603990807798651322425971314120392732695300982527670506438848526424975018686412427937785188172128846672550314093672200532732615421591200885646717288904529448880055945952817160186876776111479471214415245271555818724755055372106413512703532301935262051959004903260081992945535805751449288033285391697948755439777262704946590573501617753373876731667994061159735523830949681336724677185501087940486279483207461323023637121646405066662715048960895622249362861064769655264300098028895735376132522588377986052720852350556493357310448651258263299542977325701382968697176954248782688924535515197919085595027874735910315816973415304845398806637816725739667088645127511791069375846097077904324531044178920792946274477371420386045093340829285307772086046648730453092540786967581660862260685029488654717226703309177284458891729113286603806671394552284530486126925233810544310036204837777686889556045420817724486263005151174044742442435597684485072995882788072873203169164616452205080698562652265442996338959984749304180670854652079483018193324810932711657764247878506511659342078604002236742695708563060190067384638444861527177346550469768555920718148495618770361951904086328953581369019332151186992537895047935948279656781946116149271096951210201527922649285478581546952799544511675712537862260300025166135097674832905542457932999872710409964781658511161888138149745113340158130811956473504590457851980673472794580492589581427064050573207619419889657100174294051151795193379122332313252928221373574094915831978111463544544356673916567786674402531875285536879274421604919527582113830695213026351323519968112693696603132843571785565510908675628331775797464801924900142211819415772500385734086597139786010100244859011147283811157684939553240317099261091942601282313170334135269739183737310871085029161008884507548322749322102614671934645579697114526769841788717098125725850816860011910475303736461625347118570508323712773249375884916331819478064010596289191935547290325455854719852580905962587048670913369183447780908086294865824576767016868320774015156615775998487901431676779153312928317456928296516718796223238356956421393939395642290263173901358248069406344624408834307235816995668456284073163626825502831011676945889901463715868514566070532817672846996488864204066294299941351728678533145744016663701459170058021817206366390926171730441997483302068113615094080474013891568655581987561429487207138208842311509784791417516528531176792499462973576595045063900602821771623573520839037260725580210085508112654788728644986712664580779511828854361775695684642266412663513008920945703584328857837827533717132496949066413696850775623982457618110298911954690130604530704523960197242545456495533329986346098583401756859832422020688823723085293071091545842367096555002586411802248833687112742445971777803644868712969760056297776202756340913562625470408316490317221964197746222181102013754235048576796496882794515825769552603838607061077820007596435098286344150930848424533858263519650384127281579067914239422859787699803369340825151359666572446864483897085165773411633839288716551564030183566880577140180461930579702322298871537012089742233554503556492041744226205918879599138566948111070129455753726368229668873717683591590624008379473119828746994284036066971870802786452504653817131895310853893188989081317547956781432562937806348780493513881465892423296243485739247305156560669953266778249193848385156866584259944054582322857652537961174002238338146184001655841426335791706096836995659211136877139835918662449804900780173009869817349187356983971079459619113156740614230121476813303788182626055578733673489663860391850192776372113771013361924398872331226393475701665743826909824925387419822753637329412268930433874791401937322265526974357008011798989099377616096947495108743910607795625553552394439234090703704239522579031340944917914550006256814861500315578630003832389627347954986757435107738155300357136177708503633767583228173490953507719216828124425965748891757351450668526066110027941408793410794212169240330496479526152244120000429289610504271718365160260356313063230243086562337404539044316164718904892220424691678899615744798659236173149339337185469329783943002705003515411710600877397792634228258514074376879166285247232871965291551000892146381026400660880057860808216999437373479881644215043657539376924810360383770689343183510114781134085420595219379068678008652748888581642515132474826217256423635451997513237417415884693918470414127757160975790660803700401672792619521608683949326084627089071303737181037677971373096310270892252100325017158776693379583372682634279407598718842464546827331839835552491610125083578540642275512225244623497706060756283811409255174083527142102501866713765970308867055388827115362675066432984334140838095333415936945103743289012351910928702035754848095191814266268588357587478317823233976563314890141110185272830593441460082337606444876078544987942342117776204516465172045470658765136969353099943133741822643770530414780681576432853561270415959268289769797260783097354196368984407649945410050763139113879146901360115203862969737761754069188661922153456054319477982547044014932334382140024283760406726403033819745471337346214646559552749166944175354096407149224862265865266494704758221589632775022582053683546842730773485728682151860064247520923438983394760941952703829479726850718475426517371683845034266047676608250538539076106008408565241880659880672466846681035013372797919770595233049307517099255216440186641923652795722602570575517037402766022352839513411249867900350966160622993079510007044868721906711719485968429303411633746455000000662379095597046504498419849610560153891492144788488178632198584597416299065066002857999471928738530223326071500446890966809234570635316891953013457027537795335249913317841989146021679913770095812518460407406842974893015218961386056091412748812103491385289623193672678170787145108630262852738958348395697085666348014058628948133179239659946917454138025017339523534123184639614494571688086396766383668916151207860819370804200194094791391898736913382458313450108962571787371409283783736394292892783817891264900089963013613224655092520229361164472510449768390856375937765020540001936486134344492313641002118337353189152594530048888036020365364402222668990681335319662862920554169375464068747096327251691655058371794402373374565083500863351219728941958331389689433937387340389762358675795108558594977658188465284782002613951824633090212923405637795304322792275197214534304433228910364104803479767069632242602047864181313251530214829818848878996798715191432561132481277949901506134467037059667433591349691027163196824396849991255369159558669357779472870445114979591047276092090737858733856855111417628436481175816299060659560069385350617755422378758860071772547641609663174702201943379808428194267524234165588828857879518185863436700277174837020433078092339441714589196031873275714975029829526555235590468476972214305302532755083094190099005245455943062288799825096063577005704260428101501742624250369810006600512540593545400312939925446275231159839507294470146126344391219538150906712703642663317156885474358794899829157415245984540427643605336843068933435909007917135027068103106673615220794792288903175579902555808117171803236246325270869721235638922702596925722929035212574527142149772413273504840990805004804263419511594382481747530337964414693815501089167289207957336618365731175764501426087230983609069323440280873841912308481064800400622957876667628320140514924174967777908927089604874711841967227458199233183331830985536398597538838258722942128799427354080372445825838566539901089796121494389877097066265822889059135954829761234810673383535168138561011146538853317607575496664741236598984552382315597554589104888809768074789820218212187021847541309699768728753779577788897808429303371451066607884107571117647710055265881416863469634753987293122102184194996420533732657325242132496665499830288962476147768184937643912254680544931846455174430512106848005475164294094182515967926348477417308622470651152572132181158664128658889809569689132977094914844483135484285093733440736366450149019933490348604664532491733372280913462548762490800246347148293737557263659677561452289632258543560985223189379914316601959853308451903538609785959451834782217398266080523642190912600588567676001646972211768434337416587782927348144685355444623798860194838052724636936106207527589097303149416127018482366743992837853131671358743228730123415460940559055453727311067653199486844411697066697021764598875418036382832302303362904644764253558658605117044743743622417738770120157431478203111668000985662265801080420989952243316936251618423042416822286898938926554939148921965898159255149205294887298649534580564118913559308306598133598533318693553389609946470022482827677347643192866186559833072160739982575798132267820126449553804223472515366716726373385966246821840630569949240765106473953528948145004445138084902937972529451824207553333757575224199808551995221383815894283411300962162016279748966399240741585838262265106286364752056574465527261356812349153825569329928603628046654490873460530031140115430689199248641558489673990715329144765837687049034618792306851691795598239047630274704035142011445606498468407639626377473915438050522592148960935944693548081832034875086203020936915309322630426750137955286444932143170466283090710996493304939371272277307249221190135489959036969999994676356776262704633052266161137159853150609592379650372183166077621313958776158127895551072459492554088380767740347665256168424495067351895179725594189491621712512780178428917610927628567551719244304252774220186239901098122768998378185339374330296677930919604952376749546097806741079159401789023987677036604319446435969023926863214536587404624488639063601329878613209695838499605786129748850433676649539396680427800288933261290335398240126893260108172822448378514091910691740202830920242125494886549840907435462389171676539915891312656508069665234802448857165358492223312037047796495874255475861470116828101241734762096802732797427124519691951273024330698694654139440366053816459568072678123850248217394953381776131416297131093388852637795119256197374150368633092377730566465128109148354478077355586310274641977557356784698765972715062591163399583605706306085728219877732300169927024707552604250012126200146538559993386609928063133111669230052082682479738206707686157415335073757600750408237261309593974733886293233722317041958248016955250972850746605028449655384102038560037365214615801674622331415066932718863335396504096115091894407070674151787420523965745026772665860579280704894166447255716667513775979968877587711345872466807721855889377168705064791764597624804237663756565031875278388482187278293469079881619491744242091526366120874610791617697573553709554773888969075759235178623832950112674280836140002129731948327728213167889154539600176921113021068671067413487976875116777023900437047599593165099694243436450016439000635824542940283453565628213977976650859215982097462706826740795718517821144682879875695071374667225125316229362787372481087654082012910281457171956198619732722967697319344926040255849126480205868343500778806318734181495189010859721507582624521456381833861874071362728615565677026322498410697304428875147893241842658788195369608599485491203805225458105631526743348802521502483818927022393692697709129122125390682080364406469272646788997565697251420269320660919868022021745758158513751043592780650578421389965731803349484426660739646034348136934837008188292385218645022756419480559200470789307606624406496352305203116814168803057398675055510174696461876913211381045495682675512866529792705738232304633723718448187561427396156600516573335807543568038141648243463515987625414294123098285844034447185676308613935363024933986465414926609015340986663936183109202369629742802958398204552765843517280319078126633240519639646364478970609729115209144136744208158971252236051805802399630823141497381530647964344597338404294124691743976965247673683046218283275615653350413580256837211566440907922342447017212376220908060287959552522136462689605156123975235362907098480968328633708117516514075081079853105419454100679032116761334211528669577697125090428116818128710072559005498476904749333409057034224895804148838465367465863884754833415726891104054583308712328884783583072661958843402418408584115948517807855590173680650389037709152274681254778315720998894990976971298216116946048962723282186180707176202702660969776744856360638650420714815106473778213102488234991465852270459808098560830480942715253907054278594061591797968242964387007776924374705663159612237547201380347027774020399224088722932859253318109601939722355077146014128249977673159917049407861695071224967476084925648121277483911718949418379556554720634800233730829769796218757665222032128655568675963204138260496619080691268697497865906067188995383599175013418210870982123337791267831529938766372979251121507734881540037318423142456594517200569407785358495725648521505706369616006304876733170079461670848152105645606347767796613210155801565072825054711345924030312088728139263764661819204114787638737210833925065222163116832810873275636831384740652313556258840985096840759062974577624442080984314365313091620998525219799139331112133929234141368491446811673429224232679754025970887228566602965043797381692674639276156650153408718774778695538609006995152660427443859866203503189200818761502546270166332697686437986260218473840200072699025040038538558129558631104168537285891581712851562464657408058262173963153386359667276260631291958682771598123640015818723345054094654983418834267903812554504524286024201567207844975108912492204346330158987345612802761081499808432860267692784434881671990042905531959336850944041710869124997750575674804260164978855806246023782774841216072309410667158394967035664722448961188495426877049539923444895798662428829413850622826964206586635139761395675727169510728551093143223440568718043489360158379419555804868978585710295062639404580898270408771258585623600297694296299922117358316203100197866237855400992925214840844940883644774561760864732539695599219559870046668421978759965180973261028197588830501460190783092977838861291056433241873792073647901136118090409095013728468742906901775884445245651574449174711467712776111598451967057367586577743507476791812964766671990210759802782104959235971542786285007706003921804336581976317390302569902598116397934261882915845575157772918634857070367044937927447393722931722673156401930628767455722572999749553327694171879464047668313086516157252766640581512182386639482728561119485942520998208377033959273948011880584352131039531945544787690071798305968958601868156518889261678990083761598171444630823500590739330986200905117932215977384795905431762957581869279342535948290787401582050802216805102634988125721121287385237515164537366050010948456973313456242787103686917954489667323189311437886365203442255425783928043725866423802551909513074674555126784709432798851953539420272938310207644945961112043998679395447741489019150851223121270043402488734887485853299882870782661104050240601903795083726232991888769644410162970085501949039636257015805741727719850742699354992358607029137552170732658109200887312943278783875966237135492046636425426955885281627944386045976879181515646809666999383387036690829945773950793203930811557944086221564913609845115982137015397574364040858337686187483881494172005071210443618070505193572814162594562687051120867402695862214146001459052829589717656689971387060499800377022867746784402504191543145415786241026043805817524785036589341417242674784739188988442555865369771634815394785596499589018672924034606842470924629891723196216785036085714670345701365743562637605348990624427291070799036273216481318057365103049795639270976450204627163421723114231546785003412335068923479391741564141518993393922957736315030305479110071216111242781878757369678645848685945920500968009020267092112156492444891666180161743437064845245765680820206355510702311535381192672916778790433192192189731358206338190129538132941816642731327120419336719280651273723191424171407468617533532081312301523644863465799962942971416731692122026432774510051621602530617102192061638300384171498556315354081447296098744867019869645908710863404107230174611369901203077657645586233183316605518000633041607935896416054032713774043967815525762938021881647156577840245947227435627134527189252655323281275660332684769482094369610106779930498985415625287638193938949757028519100477737467059989159918231615727383886362040092099887120032927120488377913980396167916261519125857576804410305319331592192209431269382547958363536947132841759692367777040397837729627545858173580000979950429222110047366424752312337743860219955385581279892677215679882321669473034255821091151326700344421894473434699819495058791620050241349529836787173673137851249216700841936736186469827694507430903421060602726303125168744728417363074274843400638291160783425948672272834352958414454755338599882272246678676106744241743687649645026170840897190455127003296843619681572685666979550141714149633556117717288451446662903974789089248262666722535258803809914979823026512608211374539622308134930083868107661481313355479621418228394040128772442155268982405165935820827332835937312471224592240910683627998302479151704184965574483458185490426395587148942768518853909105193793931553443330367718393317602013111098721126123552971228777128786189153451637864973377896131609432011183319398943011697118309872306999156728032334250642931803567715306749611371141860245979810193096356710074052350164782945116412721650640180874560592744485349491691198872950338688181655372188127314503981331854548272871255987017722393793050105662039249500333874383727992046891223351307217094789062662334463178280612837682577080662585491527162004012215201347649799128431224583353548390299088205862528378516976514741624589889121877894277228444553421329611384806486233592673278383201226768708540959563929066447203998455955883518406583880006693051607196781133624346615909588902978014770554059398576807189313421523775709298228636618841828918362155100471886480608381111904206660534810774834449107351132841559798011347815686575862286937869153191588081308361897236237608843164701886626392642869443180071677466933301808642516691293452671521043848395064185246067616085052185325045658982714767955426452207461184364128879671550666494316387163039897446338118175611689993235825076153474682578497747960886978455955887042790086069525192795333900759579500206630408113495337823068120369264506691397152409821221382900201883602173176134423841186452186812950497413282549661240994927749978977579208387660104459789473276838665219617926205125046949417718962565495137588315023692632966044056328051334893243176454494035514971087244745387000048112947851540338737237568590541855154103561173312534354090116939677850938261778473837014897124776352729040595646099904250734576534301487424165333687784907500077756713158303489653911161991287523442601521568216785568686238087794266262390192549283404684735778126458289332248200089233065121600820544611816301245632656502638320225132897787968626847979825400889178107644557205038879273849921319340508844496723496763349425453851019514238071490240315319850973242945101075543851235079655832036192376171317778874674146121820742837640995250161687626053833301354422562808839110596038434957877530682842188251764515910469724384314537633736460552145598606837752026472380548880547740262991428380141412430067088080568367871451938428412300726360039204732566144518278675384995157576786134196419408417270018131133725477490918599222082468696164046507709278195778762798908348403892379014069799227618301829497415614830496140452507694253787730413547024370314004930836694903160292285476612634138559877329181511077774640849767188367161299656787206439195054317250986526696526737997571421787544819460426969778068015180301782587828324444331318470859459735131826373475938822536855815479743844911344908399104702188726354548511917983788501239581968073681451337012804735327162375931706298464042451677901699300932744524771296474595893387013588543454211738486803523747394865512856943144817806814194698414505190945329337590126160905227137487550065527332578259301699708469299163602556738931701094720563354217948608021775028576785915116091040255815673239950720799308270103956608999764488573987083725496402650934951325917789115975363825649078616073835151904453185784343733102686186674746272347799035946427894540518057438291470157336005953882762069395830495879579353524646407404716487368729107719934304048105046121568641601666591372160305530743965039444376284586209635626076057445999884632467570235657889299483285654191648380260660936928829094361097140097540387628562386102986942987945339299676810078890165461131428031378109382280002048305579235776563943881064157783292134819412457451643572828527625854567608731437304025887349690071742720202690282992239522606997005182084263278225125080401368625212704956062108925515061274170044673997652211905400207360672733103560764325906816857768927623171292818709650651555818648664071806356666045476297364888098273575479572820309003449790956567697915016082052696882253576237046158713823768303255169926691766108027245534932145747497474663475958616671459739402650578495564970974524427049465057806049488615043370138889845020772528589905946991014250136365292856780394545812642130165643453864500309331174695695078231498106714124102621345117396412593784401720403915305521094477806856697252370642506157668090511310118785368371477498792840871840141023471191685328403956822739467301422077800200509820633828516044677283714430752283454208782932327680006169878696909595684163805746474400022857710631761788071487066489113672980725325008184740961009595659956412877702131427280003655833571249643055202134978313794629927958299211348976420266734180668291778738837772077518101811939357214967271616116942778831488550174983602466688278890332917625689171685497887099561957035076810790394147306294010855449432148867007525089348380355319315506894250355846593072331451267492556683967785553068419427214716028551588068179372097895882879480711624799978399132294404206920285467052389468168943226613627684444842573229524415720704105364158390679600288128635877329097791831760900075945436945354223302170577118344916924500239809688285469563525800429584232243118273678688680909286891570316381651241214536207048661873397301047315586208269617459317315373390588278427329220788055640306841149285175207649326293552232914870382440229409531004747513486851576106450481442768462619240734044259130439405951909415249962305282143488870625032943604235732008846875182558459561340887481123457421095586937729932903338229094958428435611016121830307350054822297844150893980887091237733748866725312753222405885675178360861287688110119206263902383609964769068728079181529406927364063812609747376674554783293217537560254296511711918388442734021875918012919954907538830983590031754664472838939542529274590706242138913013678021053964248594595538631798452744165342980101076778338085878293699610343384554687602628146652520022776248543784330816635071010207633364108966018506447485430883121287237451408539484476805818384545384341372638511592396889235160224178353884540234423357851751787726742694890925727802589481118493459554533925885173550893496000423726799102884438839461403473340883908538372028745818543283911016327154775943514744415470917550092493235836247067223808113150225481773488704218402292236078061865915869933529541777861854972842202327218075057422079015423852460606595677719654542653814166435875634680142314328323629188070599689245149850506477221104836651723632247536261443955472817054371345101475200757008296508467349334370322277791031096678296199422816043434444794113037493732165068965493783484583903276946104790365162020797928793550201126241863105327313698309784320611858059316502389937260989548998757687536873232355774896259301140080594526536494450844266221224401980690016805247292913427629551363129491042972472011632102467247574655554820547414714680302688666162632795404931855289160557697979261215429597888518849505974111235816086692338701179307389574029947952066406211712759888937476098468781294245277064876612140498224068526782717129568403212583458910918148671724279453581125192388329398269876085648071795826342458631231554255690893614170312571295192778557194068043540839696832345670895937899175506275793791591010533624173023185809376587230577743639697749675012504984354536310513223814851137432820611327447429689493568629773546112909949607948578722635169120594987048779083331238362168014462590865316696115879040029891704405703507506631538951338756101087781066244740025435347133300193794435741399487111832937383825739600625068167680708965305758460911795560154691375788674580946289974837763772815471596993697655196879374944963083927246345758897274914506085896389731421742196769011636418029556620853594792698893811857156887428652726360422287077420748205735997755308714136730791596709125878295660723544603386692564929120991171015825703601714238753553787947232919822228903618184216815571550542887841534704128556208386803803507706820270257025368686183917629633439520335280229354212189160030059808879886682226853272904157900336792051768849477402452344066848756951226146176571468263788092305358313944008584586689394798179236935192027331119902018380913240794448896939227511618540881522853416203208925601933709321816212643416818405923429605409636379938996786537896047360704081818438402145205004031768525347437269377293977308846042965817267326410842301421560609619573891870735180202184367534453799710065108453675989970861300061638805396820017331410540558862111680182836332766842461009038928705236749399711693666431208717083621662559460175175449660278874583375919365534868229177622597333335905522749938887689691013748609941228629307913258968262037878674483095998538670917617656925542221861545468016322801254025003156656217426697269616748129955467554204743030455781014211739898005441458401131356599987090640287706412061483975738773373003964410306540657801335029010160050236206433923912060651335249358571683505783321144610380408395896787499951713704023727802157780498743121931888881948857412438463148327963002322424409143582632915667415280810956973444192517047530095746456191552440786665428100023576409453730575550133702266000619181573018048096938207528658185532742862588596030654198787866828866668468282996901686294525535169506633654381773279762944911146568440089821641921062718674284186799279661191604428618193830309887598790137121537190061327132807758133068522904138456893356006082843538691665520295795058170067546086333358640017162216418681076476694416725429306979953526696796233770093939949275250848901906247280523025489892186379408943565739787853801492754305374958614122668430357639388785074315985058530518549535793815372605348052314197202435789464223479475354394657889483077491783753679202831247266151508324711878490059493042574958627820069111799328645359345028463466961316075114382355180294525301615226792065632116086489854153975854509875297612452306727569610440994690528946716430321068676836840871168013168030221863312672346391672945163950199779970156531010027221981961286973956883507512097739123157054755619486766360919652390657650092037566856299311472197973826158842182094389667185166809000688559623313758132926507910095334018440195284188081879648011073549143066935074864887808143615310924020167386165406034441282793259004100663987921798754189661946418249332578593611228369862795126495935435287263335096988940573292343439032626419414904506430366930430749759560427197868626059589258061750090524875915231355852444620554001028218474297765483634638301607347101307500661331505285879483917229699858032257145633605606411842206779857035506745115224126444949987703952586682769854787360146354317271159119124797841559167080718949084684387284705033989951091371545865366074010556801856658659462916042028445281935678080134301173639730376007650958827492004961066128023511366063217092102844415090022532292655293283857367835927449051078527307049813630680680801308822824652235150559939636985294539586990707288514870421577351221647557219518254598496433761306988494435432745533020462477306673277545661217543377366120684603164338010969575285342770586222257739688081933210013853567168733468742859068076641341008782238737953270912561958618639468409606274303947746843364980163025822921481137892853533237289818058043610854059039243583389347531746248556494926140889425503291836882106125879053752893161189052292849121800483462162036983298255049346653584376546782015997684076938167264784323326078987112702908417888335633107858266535955572120786946482227210205097417584947116950840464431291063652830824095327871778795692282561182649065297350783998102021108908715734941947835346184851202861831857429478940316999952312006264945624890720466590437681866543565814692111686214375189678664200149291748844865058975070229513253002611080033761393383695663843939213497757909783532545497171709226766995021034028717065806415317095766376652683499834984542868866382981482361334142811432164979051215952756173216689168352990872527720086038516817969678811651682863983523108122784418031312328686141331621627934376845315405308780172063024412793921358219175471778537103009780637499626708900387137256582396638683061383367931950047578799523174202098098247352538113766996012454799557083788561892933345782161686387256046511642765980469764892964411672174959366449943709026561794419446655239083400301535319799607003073577110978031976053486758171723109583880136096147842260248779030958907118582773878295741814287935150222596634686680501530297130665313235940747470691506896371949881630771912753309684103781736331255576370144556153276280720558859615830393676109193218920055050264228753870862929708925369920897783849680409390957454670538578253848288756659634332033087825040634764803876533569023442863124653383519810840275496678198252550456338662156594437123982310587151394398024212901046739090503687446454325656299295538390844554405069050301879420900043828843103754262393498542293748901860117213570208087924269966592671009915836776855966561821869293147566195916525797292138932495322879898473618137541746807458139282251141881698915109677785662034592530175705085455194982902927290698509397822878307942644885915150085066110364277609303503291886333717735380953781889218978876862503748144768859463245132423152633294221733512374042570628395148985457059093902670296111396720254501629471539013040215881687363580118922125149108284046659489624489416930334034777686444057941337080135425730902679206493232229815503351432203612649204108833288643560002886917467079228324654146293002217522797392770192516368365259248565369923814667969245257385971971774957759092271294633564555011259250199934324374835342280512621233334981844671571058224340285507250220250887960511004432549890965131934776583580265397994080246438556517431369771194827504486676570455250168617600844661253195528329098950737542731286380585844334494782416033386119550878791296377744572710665431190796846231892071985427901261356232919932295705950103460878424092228189764309222595315920251510582610042825062288752325250173367820222137811783255442938762030054998887736144813637026733273566864306339269876760368970718563076056376042722666356531401643046594167948211326341073225124711225688767079547434713863961481705852985703610739708276126962198424236929020987696754516631153849588767209369722023122950525209451022687661341267090263768862724479057376359815669047929940260256634808937608572009684597271971536256726181754114187881281565787603119057645384334699238969199500922461553382075650616781586728100395532128963506896057680416417389111485512850563453036969596228837608933903526588477534815528968110030802294067245218425624451964574311947002229720635655320494194501632208144414257132272772983284936561298515758082843322430666149985899247956331263876804434214978133289991072337809992029110358137074290230856070725613860417296541874498408846558597656401582351164232888843927512568416898118802879445020871895417855446724182867562212132687571944466554624225602788937537350721406604638271502932630947594302794336948254529014205768276583403679821164786901177718084806678443257859979826417317867688762435093713852841287974931297112816404924877585964542795440187934234480644612247636275492161252119259276408333173577286621608687068445485103986124484140564291954078342548646515254284710694568557481467775282940187524290753581256887775434246464054667493112375717133209107709691836789848372483929784318414261147896924997485436098967946500602708568644485049217260159461483247949321777008628036623714790216556925077443669730951742443246652623459320975102051272518673768420019543503517325217494586090102340647401561283356235809167187717250624285290346519972752879800876758489806689133105538738780056639802542197518255573801825318558668700200743417267282370305276784565967074052751142168965662597031759679683246469869782901706406476983710492976924545565255999356403182636080057155010179624136020827639595908636597388849093978496131581799337642582548524728221359178190941590284746564602658196382159960297082227767198014832098857755977840955369644799771951463442150695926363198854859602342549898605244579852723613246019865221331319009281480236109507161967659605914589983770085888715502137268449424327171529909065067564202921713453255145920546746227410218047060663842502784163434760669682615517002710188662202707216105015959601681860344970128436692604303161675830598769629029507672590371505469805798156195931931217685402624908077257792406150360690514577634200169872140408294357276876581574855917449579411735882222161386341831004641494082720840493942486415781641415429039748950894274951952075757916614728533401117964686550253723637987187492252531111110310428460909774746969720017751103635665443516938325684390121281457471209220267250366313343026101804958048725328327321814879488964961145350699629473920639345592302870509013095684184568414379975542466713732250010621550126945662001020511532713232016027823431185400713282517820328473196546688581624204824366728731859932896791954060800519018009142257095113288843986523776691477439947681253769597926512575137691150021523147434163614866841601145601265264410537699452466837707548684732836936225340978557544621927123161012115148681948285634724190810880604963922349300819993756040035849440013207059914544484199045876536324908938440659717011554316449373836654414691740660190784981909065508991659248126676453878083618951816897821435999693623588162136400512625279141763144940242209059241848285187995144651673358472798731368237982064467456733192491778066543636873141716113094708776317435059940214636365584695480220074851725643145409621136944721590523390869101794464123833053536774070629924973572421846696575181904654783948324168406060917171076024091743929482401417789493674963884188444012246559782419909015655315446214460743895375635153525997375359047660533155499523285568900340728479650236877139101643941101585342757425061427237367118105273569496736663582030420693623236121868792504883189312336522995384820648157219432076185004848471303238759007081796952301306330093527253644601200682739400778065351558268480501567982757029933667571937916250045539543538856757998341681680469304089215158716361990474901587773488754928435681437704384360530459588435830130365997944376791404374027199351947676389901876174045909869198419001970501228985755262275333098700062770941717701022659829329828819260315445497141831098733309095744016731266253646415315505091982328448407468472285032689030288240334970934910073758361523988029155535441417135416679889886694137359561483562118975196381703187439586728648255855802559574890568968356252633666786706616053137448289052426195372185240043391269813330073820948498169957775210591560553392954680919471381847017923027880506892093634597791787277896528019534681346715673263998916260807484001529065565940260970660743139874204524844454333107260251934371502721369057047696275939721926332096155063020494711024725394278038406908307533034092309233830700504272647126409440040903809482546306283374137394693206817726760948383513016034243404677773611675135006729217235549268945975473318998828037765209141795021562992098853210625907479681758900225132227549459388372578650486836208926953540320836014640220188820933608307906649487298927853953450761516617328259920484547909001325461940283961673911804370678099896783825426735028812733771662122674512373988128328230669342075564915488552548121183006224929215964492132383275661018248230207621854529404156763524284496014369293467693992458800147391151644905519953346310460583599136073693146416726189183597395061177744370248628151309692014661768109514962911986234584637159723522519034236076030053571787457419612321219183805377044313040754843264099353942739473020497209493377522160604007676381207542211354656355847248046791363819780742868715371168621945037382180127370658655510098985506204849171361213239981361294000163981432946778359912423149252163349651715687650169948243503318794643628145221502120932593028443480401904011361815198091808629144290243139590462159481410609760729295682660448098650007512945889462442794329424251923381346169113767709201080566838390126783804881270500655302246325840405152038121126062676981893480346728556021007613905851623571271115488696055131765948813934734744304218408602463534243381633399251168499993700960004931593658663268644685055610885325376588985739813575747043280058800776449474484285878154051300977226310388897748246103447680986711196397360547870954688096917152618749654350770290746678043276650187759554272513887340007048275927117484655678117438973851301559223761089945872548985311115327692865608318970379275442376163382696229971719710334921705089613978853150060966531101511410824108679128419898707701733475383611859046390887680892563518567712747113874660809016555633590136290801063695626484391538107021930970022124402173525806305890832901618703804262635725601422133585331628786588979353667134438325552546950140174052129884569167323699567102067401783319617408345148995691243403717200628337376127739666428362236363364273578764679354447449741360340016083247301218381892396121971967337850510938750103529011086147795774784307025025381926937092195131265708596841608926249537906368401769262969227820462380516094732548248038767534985447904508958512477447142964136575907270090573260059938602788653357214806782664106152841026345523698184560699179270742899654929915668821822667471974967642420657335949282961790898635567765394923894335549889158175135138382815129820622834938498324093287280369431719136555308533949217968654105431594985820187019217477377114874850007667856443989025751945346805107900419203906299271623354240634823670032967744319482616224264367514077961651316500324367509245723027920641810418772775169367227477636067378862592995492473043238166892757039741123382794406995528657624633262119558636385554381576623016222662562887881045926686071410389611107471600029575209663045836643375198720915347695140681439428568103018405179247592749211862595799559007395555655785517380186664639393902696635404653098336498445351731069452837723291951599789479436083290449136128372762423036896620031316991721753807649202679010425290927269618053198679412445916876051418947293949380157470661553235341638384207506236011123504835500716576202095963373309641949050626817601016068766891138338224829083871754739726535332998657576163280388462357111210883958757523632377227066884546462003614071754508366359275589769078157765218757807552429640485144754096164941073719529734146386642492823241451436021681708270631192574278779713929208069991195015766171378844364285492139461396245891059388073536132950201206562984897982410587126980734418094935248297558922785479753143402601129364787566480929325529694374780854184363647696042011561397847942497735590976197088981003882148843176720628622174615193294371250638059773734752037304118974974570218989777966711448813277920062592921667314995522871851639141423316204063894249619539432056560308782061468956466645801169736690355981164327147534253266703413143304677531103280521528357351456292300148775293275896613051143632225502251809019636371047173266043426739575725300477987763416338992066899666182388940802555058930438932862126927202601523136306162759151078933568527533506163055314002937141348283928701572289293087099320289914915150207809412321451136139988929323403739197163739735856819183014094942992784962242688844592843352920059192070694944778761479215483529566203530586376585985084545556944956860699391663733620571359096103329521039069320429618010733590030771808548845462165642359950400644981127301330447805911649918274568473936196822217914770576838169907993822812106484106063580357483631745032791519997308576798341653281952169788446611876586771299078553714652141791056767178978594313816453413716299154600451929167879330976250254353443195036017614958639267905675264992937165341639373874936621338131019588407817169653505508784281494525757730136640630133274091930675549861961338468579971994970435154676005761210964878438867105975106677790576112834952376039168437563956317395806645660886027748491137343081521021001420284914282476329428936830976329923237235915358997196897259150513121920918044340937801261796440236662167515010976628443499952719222261310128218898898409817523881909844253578326391171348398351164431238325588199878214351187794367350370585035135415103459340855868963340471350819625753922455088930639591863461244721779860466300420367348214345882497018467252316368646901890628638312478858835572846155209521282634771667673791517854811205821522461630262588333247734032172286127216856446399887349223124618688493174255853364970727944414638175473874785806732161312664889098336930021480241848442581993213100342202166944054784117300758542366719255769786201164537132250057966634841264425468551353357567203212966360786229011557037338324295217941307246953106048528071199895809572395233157498864255643424705659146919783461688659836817417722847772343556407626351138853927940430966443309454953333982576621357904966219704039643656057278196296152692166205869044106922437799063485415358923209895617343579610963173354848253768460037160076974306663366824158299853435852707396491652232449535292223407945994946593211089504936474159226581972318926647023316807669292832042563662687693352579523094662543707179861892679156332259606962116012601736716020524153576331001888049700986754305494732534072790105273287929763215637074178666218360612643432127435152289000931966314399135357533107248521082910231242374243435950667978290584662223988575509247355102025716668035579825651753437144450905341994273722546985232254165432984235963037350121615889127600571668718740992351052830465028883459741937508188444188231167176727802220761439342057463241533591808654798545990004386034808086941900843238075728865886676071317573818068675694475056830600618743541421861408390150457168431761048140549827454869961437943741583110845095494411697721785052217507759805903237769377862332291033983272580161770873940925500138145762366439855874592356808170845746782353905624243205063423707475688727096415390563368479703462514299585758688801672034635192435679510578180254711641479030681497920473762151433485557872370438339633021083819691113238696143714000356945443886156882421084292378201940415222582645192749311003372503213988798963948452282281778205358930563536382944986427398732432985828711985835847096565263852204440515032452901724178439384532802619368329836425878343843973949404382423915082159105693749775299161552088852039474310573678241299579069781020130048421964985555297333112918415106244015483081908749271015296472725712428844594643932414982899326724599049357680421704502605499965800301074894485619305821143179964027537677608992416387552343528392466923113087128921902207585927592764276311894511162381600906481057348185223953794884875693034150812140483287871257765476095883133836208668570510050723346290679673490095201014916814889604524788971708215167189390802140929120206410136983876264784910503154096759843698690374532366657070041995084799337533736295337979768945662871382931867634732513842334716395594016116733017486406479378057175792594232044586771549205937196071644582346384142252815190599163220256474418985270094688825466460621318780584367623947213334954780785164300194184962986373375567548346538382663787256916491691349520405363800180653260658903506561545882592697071581239095274753569433832262802302907678359664716234704075694165841811556936701751093312562830823912870461360164435083578607633690762617197193085774091621935426240216250140626085086380844327056822651301573533389094035974892407919977442071514625189486009049430500408970135441584914280456150590103004878089300541312892193614275040203493105989007289816046227281502147767124426142438191739572799432344058086119249431058108914724605494391027113641102392737986518275316811371125361555057679452562866362133821698486759861259274053935103450069889792024540412995198931480024001991150162954544705843688135744328924902364458652391507635388904105620665152426640822048393200675140934584888046529741977416360411958295766885068793861496359672312378748484742616845205156236682218287625046567837944121236293376868318254466952017626097477773229653560776892649582607720808316326300549311030109503433139335679897878301375895731176525083815480407774064672704245254986578636723057829937473385792261096529940096197579107950605100712885954267134469534357848311065389144860981062251453612046971916525875988050581899693236161682825194075813155964910707582043448139991588093678524807524479645071902117165657895688848377841613381145128065130534986316409722637792963103967507636886367434007828880567740078621288268552689651926289819724796986072743971740593022029730208724416700127025321661247219883177391859507358153567278180534165520436363931980866551121787538671518162768264989260861920597482839274872355654911671189976041650569398476789778619217522116736230508552087046519345120444484903876555467601709444845114387720103895768653019885528691833934684963183638803280786530572353727390040723916097050352355799667213685834598312550988281535051811129528822452568998141074368210515767956465713131585090199355902412100860938400651232220495609353942984265360892899912621210477233796300869178797515746163788325416530541689479694982141994713294048281974100722761999501060967980852121824152526110913165449342291268498302740305893010244518928614638571207580956794874856605139258808803461654999338911646517576587314234234635032372484292208883549818697199468670971159572783202902855547444230631868149850138162998267788716434101893390560156942070868120398153650594759453540523408740280290102372454763421682954032457458177896625733848273283838601727206982575428774835392319298642982269736061248310570770622164492747087834796172660493469569393422575779915492066608304599164957223847296128810541234045423987040604955993462073561536543926730117199664599307674980713992647733255366963930424215090135798348039833276527702537917965198611326212927863947613891140660945750665483792473058817781196997589917798951440148546272735882635003455336291448157396925779340366925847711387483673123773694953707712935013875775627390897054684283256729125050847149552241585245592678892130910593874774275446090164199710849183926418595616648261327309094142574194817396543069234059447433742593169967099795764352187049105290346597481935703709144172750166841702599056893624025143608102589487957515248125925061207017759207582889028787887858387001935323931243797361252498408420457842924926979445041102918525971588475744817711962924581518864901844882920791000597336594167847693104920922529217925607710963341082082723797071326646740687632459908265865366153228223451011646999529629798140077934481993110630899727884842551969911465825087465722750016646198259736457432605436030279712241215522077874557818820996261076843456656519514576138909778183407135421663410576126754877939370513531477276505386381649420752271034236873140495381400839396422663576648432739863480291397807827348001219058341567550801366683997989387043358019829347904687308641979008974843901475378833457498598792638216394574410027343356288520267156847468229904500749892691909422186311174254611700813349224912962164702376624996914892910633207249956901491182217432585535487751392765503534618910290246039791494107962216864965722346953157365249215612003542316134229408075464674346943177636564092075389497988985953253810815902031074300048835958508654237610558525807539253007696192944900218858582542295899543960493662789236873976411958342844860560938190497311115031102430423160707371980650254691975335659362996144007551301842426548891834688404931998590289113868930828168282295078771881930393001258396144559013850285719611330185875615022231176443224070968820887320938846048013225662874388062174092339026612366386186118871422411683710599619214268527250189681981209940148620577482307543642206597208915792569218102351476916670974757676830211670501766805183244808231961917797250677663979469998229241905081143213867505279453389881243411953396904562410638439221772539604822351823572386856322180901301691250747958579980943674329326451710858320608336686865616668536554382753325324959080497299743186327371294427234188026108380292221267168977007506163243030774059555139971418060545230065188479384702823696876699157291600744051363096055440908208372216215886080958860699930609146641177422816753827755947561750069835632390700037501833954011191880946839960619686530707805544243611033170705802143199652078435972139068084104606028372167008111363086019129468375253520786927471570001827809049204453596498230344366402835607114255087259830341901864430374675620861051366245188514939029289807254082297681293718058575545152979355377808375160571574713431606403215056193362589130883801756073319798433160361259255274549556913929010628161271363485237516058676778553887843656334693872779770493415610558045152372916618823513213141158636540531241582774513498223541634477749477633871401729238451511844708691236882697664000067992632207589752658923861702203653907818598046170610114860979976824653166201188227403474596860693046500302539386196516867380859264411012993220533355351617521923480583434757919813253641231719748004059905042970201882752307108975782056990056616672621314791269166399356237766150690968575437447675372309485491150864082457075190071298112647704683439889846530263975168223881367916082590682803409851541649096376124680412992524592656635153524635666465886296966841752704616895888973007878619107742433673145587770360605656792418732829514567655915214035501153894113555336013826319066594365304793486249674948893028033600031783795613345498777210072121310577295276760681499397965002187962603338591811173321034692616230033750706326383178525296741640310645265423981796899421259322841771270933494756908812008212564683647849183313884184862424431976797593023252641627027495901477167857970936506956874167502819886275439254283537325096039382620964070316996508186675729977398621800792590345566201212896912279816977289620043402596784774662350804913183540587652732733907780823521302040943585891131041291994977123147687162036357978786337506305497466072024346640475431346253203466454370402977354248082831717432134946527045568659992449988771219374025342661351365831042380178856455920697736111087270734881208746606310392418294466111871631364547672777976506601075087813352540820292026940971092010474155749872922129181051350088068763002230372888075295555391622786346407921827541646587331803449242715364412346485297402673845410070698903852898902423787278448591385993633582574968951311457112109091971932730888988638482493791986484107955226442706952326998207752895532603281591323017991160973676801231880407315706569642752506193746334452144792455061359483418137593079554730149488220807561901356643390234163506687735128226448084240193584829347645795224852297114263980922498152651603902277723423585982639631192014968913355787830070726739657900045668226480480600859746636677308479223818027716909294093896812706385341663125008018421081046634688464341833311209202553422954070840315330766872579999966832505924030315474360588062291170209905501351279436020410521842160296032298473134743662203642967521178568224696739009756537296677703364685224010884852308434338057156433463940515211175696440243974847753949872867470854315250539059384625154976712324617645225796143939595974320317293068373395037559386306037290930913487524384598467770207273950488490004514334093956058936274208265171165943918376769337209433450817900704476974927382869405287203652487965317926834256083183856427516934317980030348419976012293663507488692947809573923098381348359235693411547979380754284819114769764241262603084459128063584249047874889860261425614613771936989929518107881793771819882934553153028590289644382427710625428529784890616596387652516457475088900819112955920684643555599160467083552242984025694812648668086413991007199000342914098399780176840783924549585294027060649710149224406868126480312516466310688644118045973037867623837339432375443239716030420522226262238906765172896507599219679910249447378803095205744965384403059793626908609907233672948767341457732313694591922661321034748646898770506642396128025857177405281847011207995051237187605333220255267634666696184610288563538957866685132059017564411238873919096624545998955371687541687381525432688534222527846984194745365852263495722629388603286024563211373002116994457880238837235026922812487069796373052735856109782674113391685388323928167223986853086036369242068252225782783772532581972542211273945970522641443303205437054738853355319570855232462385074693485326742641750847070976495446281079548255346377810244899241019344584046585339754428104904116151606072380100162942859914131357241728602483442142408333945142424824214953004800709643875447154414645365636326389245538258022503042358487348411677762251034887936707375979729225041437038858965964051441201940350526438047493866537856172125095208554696653972649613636148890272393183212243694686278989951228740967387814384967324646244990665959994842189546333018042387772591822592141079376533244581775996918290432064230500061704937286432136720734564370600066351250652599226630763926029571422336394529862961939087049137404985506669477891861252151833058889017758723400594266362427037125045156639038297559326254448459341695189918164042603824101250784547005761275715038569054000891194101430067999955908454282478723235866070538598887043971479603886330905336527692000149256996031485876728707993270007260472654636419309460088184187578173015286762325347003152920205653737498948610337504584648918003218776454949285144994822687142239308666502764117581011359553883812723885187675805222854212360784621507833732069177789522631586072093355260337210154856744455453853283221699086110041156511150479935943580568200794352333135192404584094692549570513010751531696088429374597892601832662113213129840896522538794711017527799523517347604969544234366023485450233384808525583903845038488338525541033934076189758206677124265856695545152258512045709947098520102618067107744763609318263062460246127559289906732827667551778664770143810045139605020456855547615699121860719247992478022405511744023434176475666170966976681216391672387727052157243129566181961744294993327358795929016890214563807672209421584439701749056408445978669128770304996615024706625630420143307416098512642981434011659057799048073033466478378187135084211328951879576271501681345541464076649163144188257139385583450045251235359143528664703097897019974580201381459419680211763415499002350338877630270019549262225649008492416110508503052112858396222732106272232499812808105493618067692846522574049834031324112905864268452937140264794453230507317945025012619779269605890680035464765542354602506650735738149553035043029938986566715718836341101652100595871569903135059312280564921058149196311214155800958921418963087564334616152477851858684068374513192095834463109907691822042141457807017536755263943419064068664272798394270858057444928798145376710634331157420312637516518918526527681066327489382621359554006900871444365881713510500992400004838885145517612928604670049225288211337705909544145034792865137219602833223054801568079989433963874399082906233357305558230028179445152884732759740884377822980473781643771885154613479306642329836414510946483167855619849842413774686789550280293327417651872526766346263639143142134083180732226808768047668729977697823841585734108919838875325029846587836338066432781008603467745116771105171204802654312803314563168893808327571784367994492958774609267726956927303423842132140758075375175930727884801698630327197311177510860097612331827276461506802064613320178552779604702940879399698413787852368344804856979238790452129353437588193991106176323113881016281412092537257585895191707607045129912496843720876398475696949412660919104607127585362112519815434066322823569669354670536132681150256694794796385284660808843431972538003907777428518756846745211406734056273156503138356782505561481517240655763459403448259680099534077129374778222091360667209802321919444225005252112988786845124103132953299861963565691267797821062049724261567511380208132905815850889648470650222451932766346336835939439803315115373017154348073865866028015599411252797771506650028900442137077947505792025483505016392881145602778652423686622313515272249417547119259845854876389830099873898363321890194007296115483513811874626019108108413120897878010487336043076290124722410905878875561109309531068737741862032905873890508609982118975291697362840861508112750660765054578237295311223174455416614082565640687371975501495433859073909800595443109131038889251955327166137215788944836791824117140905912474686391207587498296026268593363110225234925949242464855047192675483474237259103781687369623877495113226417138147947608462763425763915172754858936631474409427945006794153765803365093296491453896447372953929506557645855892044587818533758286552075817202690550444075140811192770955851167717382251975565346223410200205651046358630986485338713844100491611478024921033393676653217855039751110415388516951126236244047477721268112074587876697817368178974737192112049031635655485572207434582395373425956472616807587199146427109624515274994810399492777217318870940560138128123893685458800373236289707989222835222135510078925707522442494011608255348508118030278627432010512084350643141976477289516749469340118122564848138297458639416434498286541575144274750201464712776246041224878908048067791448608468423611747533686599254811057610242863098793061398687047945402510535664082523151204070095711222807137052280167764634058468877580321552675582645664522224001703916026924155949759977148942470238272375849772416459379757029323686361920075579091615656801744517864357020031557142383442575033134073810131107145442362620366340253733845998600676230906569747417934084199925678986607651070717241706428121811316753220971023251642914317366590175584836640547168805678516242180749273964468465661473719928079867135954829063199661199649119783760084557448788015652714661288168849635191431350734619116759389432834611844498591274573723735324171834971390478033368242918642721328084150050709187987150357564525358917914445487597875231311472691734675960052830701085652014579369212591066321734577367413221085466788061909816766303284027261173932465290154379904130619433958399867165560897642698028783752763215786849206882328131283598050725835911535883253649923817678844199403599282562204744461421217529340637096245872031927789965326065124678552403589403043385546203864869312228121589110244845697667764192953016744504693038801353775681938443822526738359119055131914227714726655827024419585143149139595810032727445947836716433061046012626308624115930100846985932456662644071085647146667236438862085795265964897540674202709204827168339073220614326580863865758293077360387929795121720201446757768502443063665438499998988029529356394381950932119707870208431243936944415895760968881049395865001793377402569187125553094980973095503721026494335780187200300580081938017285301057481298059851244991653833950774692432540111170826225647635047805806175026613837641246880969794847935305674256986982750149663521028974743523574154113636094206663810327017488996950449919930224358057837759042742070978612784845874873434357243847565148598767793415163992526003640407442345560969312936150364068681798472108660279574701926997115886450348734651503929112699555280705995061188463838981295469098675954010822966691754674577005983793662792126239828629177356262676985584947323901695694831420793776408480092725371212491505186301240973129587213789403659928056837708441666057721942591093012161517731980974354501676825448097186002467054634810491330316274603284485875791117723114662348385359079819363588611771836738104295545659097445192133145584465460639113724539305806357732589883316660600240686951370412244386559191695954421161865660656649697328341879640482582921221900462795477862726776889477832970232513728635744830455472209583080451707838040646393560463285043522288431980449437413304075198931053985387819732102377695335316982053655696076167148171362217901635455122232234891553416007220693226718045875862938397244230674923944807046694168015329042878177264555138826060730273043741224096297082057591973881889269204481751850600763411445449371818852312525891565211065604973032613791742069660817899495819081660909432542788302772126366683570606433729590294870511823243716325445962685087997356316413814170298009552892277140589760010552947531179402741994548415711883638385402779529154018673034529332608089065674473616781212778593403463114577668518683016013140147263245639140900602301718363289276892052958296874518882610765582591988960499636792397387336460585620998168358861245654068609952644503448309842374682291963817420233165025484718639677761833338359767596704295652534025123246997910316867120174173047125546128131034924032950935833710871676351544057392323848923589034056266428312058955983304258058768168617006976639534077216623687243512233574670184271804855029335177423123762311060975218172272879406322745711887719376173040909655967061251367236149871694946119085006263973731563258516936548241151737867763226653665283740445085096043964629277235536694393174510209175923389596239657982855020129994732757838238947157368478954536819073770355939624467471094105627402640407939313825329181179676040640969659319295505054363206775087667663771575973848943858573437978242462369553120553482417222696620133891532913881309932300523243094013306865739531111617030922706466711731244019472343334461624214498270363166871605298258812286456299623086967569539505174198104364859079168564220984855144979821521278492413735033349483177153541483069865356951229598775772418300509009123575514169613124082284427229953564239789639738188657946843626099580573013333026046457795303287801209048053173557120097501589492118845796215793103554399453367733745937732666809433053118144716235963932971097747119411098158513526329950135049652300388995733950764388720268958287541504042442102466105347358528353353692432581735319504068546113976226155805090924787665234441698263392983731465985122013627462358712418518281503172874235711597932517836502016194661195592231939686097315270689749819111161143812680413034086686398517997157682034256429107589429533093754495293056811122262168337487645884043440569692088461009401478690895627384384212694964868413316696759699429232170474416461932089343863909303733900510212118738940933753096564270943865547261059914143101026891243203042335822807878877766213745342885895994171409394498170313029972561976663183622484028830297163289970879734354151948157136287590909003956045428802141134032214569423901845669550755285491491589753508952723213124975278118861322541341296738311243620895830176364495889834207727614710826365068428668086585182574640249698358396785092447240873231143809748276910014716731860760432306672281506751258579683329871902477215132647341638559544079175701944514548684649981353109295438757644803571501979097085799892936109070604066545558406967525797976088410768964677127128624740277677990551870776434014110848124700317832705014469848213997240539775359266516464621476056063330488128918687909592372565722453436975945484906715742869776222819614043733167542900341614977088221517798477605325872513386305785048355388556307798277863549208809059395028343108725682288363144817300646433129617052729392491110494549248746875330002084034893117573510408750598451362343234130005584038737184492350741379170777747679197131628442069820815471498868412644203264071935619243246790638852265729099237808324199080581904293796637444272555770267066908611235674607918979730489788386613896271149981967300592491572174797937440813276596219969056889234850255405206741277255014421010482810654901451235407365836134995062065460756300433916831057698185578531032169083418938380016361777635956412584549790152762898373647637382200101095727646844084423312696616871724387630376560719918724078156325152738932588045600780511305873116690373970877281814951767803270452588335448042303851745999385567039741072942882319024542935014834417237498903586855919678479180713507224083185337307978237895703799535120825161986144216839633601577169338995228071620561442998800884979177631984030781512297798157337116525436659338625178667314289687625618738440809767913113321562377744286366296748806322483563509687421797525371402659977256189136228384008382219395300154949920708687348869879499384491418091895010265632342980629639827849460497405004398094909442780987695678707316379518282303294951684575021978419190856688789090552678392420856992754160611472950903813178488307871903355145326394485133303928430734961831957471890149020680082633909601849562870704101558475632778903954897961448339922572584063125619194275145320613117166292694359507722851297404719099631923950080171478780222917151185422161480693608375466200633195469827294894655150020923293642075325903064730970218883130993382951291480361189934052223541352600787044790955277036526648427300166829238480349981450680120691489266489835021811064524120064581885789692443492073209522807338189420301053251139342379408509056997250616933952204695171761299673538103816199890048461714975063253329095823237614635710367179168900005245024179804937351769241384113895286646727284509628470037200187174859529635970694512773522040825564286463925822361531672634708816654942991815323843193176910915603948274502647933673271434078046758466760087774071655860833969442595537190814561451066426246626413133499373548674211701709538424962921012390934656634220671532188050111377483946788535613041087563566045652834231270618097022150812770247340413800085028965672179177962083579108704413828263869833516385747289783797396798799047685524891497253512075873131093010889128482419242578222606096866025390997371631647331685903325798097627777620783922390853865090535299780884879865019196291790984180284589726578408847084066225379053595515444081369829126953463115324817521635848118571139621312914432979995904383076890703389754438325279117017018596474639737667469397214704290852660506811832155716210152089326640315576547437889480487159043478311610549838278256873684883172966435285155186997925991202069074444363748347045445441000607058944396147351612081089692679892267947493770973944226193023540087173966357587133514538407117923176568823418854591128467223648256105007104004827673680274655731350867078645443626405379430236117334174150958683494216248794614785610832532394434167287175996543114461487645685203807161649941524795306316945935539586916625937081900017617275616533403503391074910686856590953429470440993517740552817830064149045768384844484813607293824318275041483393254595541630208824251530120403189956953628247504460002653106823942277878266424814075452798720776587253772705481359475399573707990078601650217995564713230597164264458895844073146888417150067145833781463219822806862443979175779472675933718362511775717687188700877718228100712076912123172652171747220459557634522030745594297727334982423106292296126527841822113396036939910989426992450020451327074162054340675177979956318164339957552109505033735633815228556633289718896705367446710501827308165108277746662898913422136838073772129043539069195555189464858104402519359692328972157640544701285092819139923501071283575719167379219081639216334037671694813986429775546853266665343307113596158182570460869163353201527973369697112376582398026135280734651933777251940365601838355770806554761259375351441923880628167032569288765638275554911390125363516189635808247433742892241860508320226807355763922483819122699031513584297655717345746055392201735119944500584003932255962547769177617061816553405425192647740275790809680640834523463447854561566575106979491134175512911597161206410035531562024828641698050754917062602149637276657218263359014149136256078626586865122276871582320682987212967454178671927427343656594300722738097331830745341357148208720737285779057620915474895928425816163654999840292956618337879997695818187108267230015579949819708143180226393520275563472024685756287362692626891222406071954461331842260392003312280644891136055271938255026974439458729574878948732242833669339939805201596335997890722846840034766838466252047483211873780165623222890088810151045426862159803722316441603783196319033823253596291241921995339826825244472127172595615254885085201038185990241362175447032044230983744055265137190340964685212947300364077108191479039988139056268689060331136113490060177814342912930384051414953780918021801010682715890403643406529634301572352345331898311782304916835721926181086909993777682994940727612699661203744947885261959634183974952604064515320602454984422304501806073422200668389107218268614816524902291773330068883378736013550033402409051841466029306688982358506555173470169805330807362422967923139490781554879931295751692673086320596742430460000575559534487363112539333120588384000106724953350400215527304559313196197137644687236050450226214708543909571291129508694458472436555586672769376941163816477037622787267097948173399502756494273370555908028440693869179213683267068328135512946680873024454273984372323472870100015048604610217832206572827008369036580853845954398742536183679797161288769914522400741877993393281741616176070795853101466831519298238831804664330637707678028015527244181013556775714301558290927929775643802372824334824343019537424253160571081556823575602900719768846470068943656730989667176134645072834196359266822858335767683432576964621972920874272402307422126477586832619828349263392473093408131355510414445584644876391719081288972313143680087616153597091812427454043678803443190792105553065486876856641029882919472941758279560227600830985269779087405215920458168454365535183797252543948134653259392768649387656945363713546097618096610807929616290050473561186844530770281886738103993527450052544017178737939395961831745416771017722848106198981419198292748545635589588001211309859529606639993523357257673086442227465346708270056983787485504753425535916968795332321754736800902378594479631514941233007844219822279466322699816529199829205116400815620617379653894317433643189963739408255985239283749498938954758801639438192249582832998731289512582442411467894181875713663825381030748446378115473604319508674467874484809827571495853533199472880511945976484418054117355984500227531829836191263471020672207766161123077455655519112755018724776312053272749509372095359030165990219596122255435513597705441722447507485090028851583996248414711711818936171158322202242445658321892750342473573618569075994810242365147340066614557585595248771626754769098883952920065612718987410255830984791445123594426653302801540444178987910666685058277653805909733527497711227393497817584347623400578360166255354361694681604179318982803720512535749827578573648654589982436515316041783713146428160234999164828356085227348159957477927083647965135299216057053960681658796617400396039173359323767924598323648634084562742538230235158677850635795340768313778600869848521126310278466227050152469127273238467516247143372139976706474390525704777276127360114774015604075398200081405494816275762426750697610706347107637845292558207845017643444378729435298305161360014177189181941977290647055690672374575937073764441252238336358659219147449399956846711123676638397737610121686131255923702982294228947054591239484582945864433730026955931862044202358670504859232122235872512748603832217472615935186779684746078232559839768934293810514020688346104075161817710135525800596507683610815356617575358201258826562886888823909228922833068058600930043979420374009432884218195277374503679749079615053683076544680850461965348696891506418645307910504450370952533949460184555116033226147938297589338206768034970467410103013270042225263633482351764956732445734558604722139766643344007911089752570528587767948475066146050550345216434763997174484356238839047193733124539828263089688502239763868960054025537764296361446573975111031035456167795561629400620866699833397464895608262378167508079415433947247573449971397217926861320767792076146255336827989586592795216095297380728949663989611273653174008601421708439002667204376686770451715378069723238536859072130224006802554790825494067750080444047843341342011432470418497493017507844958680932240593614590084555530504990166596657095764154673128944500112460705166529762935271356272730436578532443044187976322698517160053408558497301809523935188896161304918278744783337839370277572914445887658728856729808053716530429457891566938956618207916058245165175284469066028037971118313373104109633709723219244346279706752883608151114016560256472784144946463774089951115542807797238061298041325610538215275205498816344190266427350380362892470904235512318673724433838370234820381350246790709135407467357402402607861625214980415553781625849216039395509813778458897094045802012035655468121030020021927094180095075300364599019706596263314463622971910235516831074276359574691028760666199708433814334889331710274845649121344662288969912152479778966874766553365891909375093401033010523513579509378246341544750689558963066035981697755714672288597598030104471246394475197564270324253199157936145610358646436202150518846447023789786060013606465543601009334267445407833790134461300626005727517183517275005752883640678893734809120261241958117850689861705660409857294551113795726788742547424650240811213212293750345365447110452224793925674186149337711444372802697943592115007678890547065995424938383173215657192342710112471907837133714270845363764087558358197223565147442153492576062756788969336525241824044724720760258742320555887194027583154621162249380312105728110736844453844497655236820693749066648399644856072489726317236373506509396327942050057182730242929206428634837707013866430909614555310176820595348131789951420271066220180879139963661151381389506574359245134639223694177553118859258260565464696223689890593944608622481530038732507592677037423485338000830750972335514460444488244277797424432267298298549328337224037862361361611871002678760398299529719358835610697002521879895120285171112789349639032537239560332144938551878486437277511576643086096216533250008852605762390166237387042007677661105497050861329856539975257580036777547445449767479069453310418855221373332911235085627716891836807730089309731263701422346889122517056247465033087130773113825110129416143908575308806607548289447620217222504748779574600036753137147449089036386151361861855734938579731401081739609924299629652927688932724384041733311987971677476360753042313418034886621347763984926056378589186950675344295031506621442530134416219399435309494370038472600246473316030456932554307169641532997510162422866498318924702831012477353864276301560793111286410465647618909302939594226460383804032657028633987322412273072910956936290828032708914400633217224695494238143883703325457485089050595628535066410827661776102897088407116773212311888559231652144067680744736561436432945083437804993278192613256543592637298453627755023164102412907074134024801297433194873427397450031376458520908432529811722776086231181274025825114554781195963495095739960457836433356211280803898312625683151899201039086625143557549946393216970054362757799376168484518635897886919374942111990923573788643597131923933817771108819627966162772643809451800009493499129481626004822506547164387821071507083508566414337090743400670579619252006972741444498814912158232147493255113871307231915149233484726443577594675207707185337069021341183971758490190743200974175092212288419752966634322415053479534417067373316472130911441273572281413187938629564989174070454462597501510773366808996335305086233968197512936370677657769595622492317885229890337272181920355233832285917683075358157129494237084711283013386770611131197703819913547499791443752587139931382148181794324174400109180829495216455771518946860665808183220427699175313591565930632187442906825660472631012641334731293246380326319097719119237832972499038658358181581742802999235939761797323735224083648718737337464726670583125786033653980148055044624074668759927335172159259769831947790094453139400196390157376566491026049699250801929442767737050323384131960996991990970550087900163333570295915886517677628725922075858396000984559822844369394210840939668789574374788884408330335469486992397434351196354414664325638073143406468993270561424031186036870002080821358423369537299929475391905969495661462301284267681532034034123767697871011317749157436966576847885647673105116248379756008994742252774548977999667573117606864325361409652642147154574603063422256274773306065732970887563882433994514001679362707596813889310965275811625380037086194567284103766336927758232331189010752857564176775814971572539816415476675741106066565702982758308366035361376947047945205862482524179735749591518813784231409546403928167491189185617032320773843052498120627965795613218021688438561104911515225370451327059633237551040697719622638496578579673071475255353315143608530422202247198868415721521995233819805523405130290065284210054799384375081500143784837431968247788091397598896798141172448508659123337935474717344556833832143851368127101267152099911464279462141553883478454233577055445131349693537515197673287989765887251610587174793624661991004109919262389977706378873739732127942329069593389734741342171084442014379382606252286115550082583789782538631329862850579591588016712658475748446809535395803595017324230624296177828477631807850751710063958399090307781837813296025248669652813208660354116023446466230257532229377909814115234333120841935267702447701394336401948936994681105903398439503069293088236083121224954135679632648875451327923651173203985195655172422832508453679482624697909732113094293617640085217209137016104379985372554920456289194628382405781678069566110310799705949628861030707635585991040189677176812783366379692724005775452939931204254480393159318259641079661021402181979035959882587787360539156399809509199894282663267897034872574778942403522648971107252802975634658395991544695855162778517848854087832295386670271903064844755187239822222383777444063455232995185999256486882159067294075014147467069208489459605768050830920551505031958675510417953204929745243038994495865289892413247370429177384433775768115983462934999324199363338334002148876830033911728721371245097704489683185834368256444159192493500494999902462090383892021497043149637441706295690441540834652109874886109764259576085592141129542924946721536110764739693799567023515272802992475835381960626665765690105166584325372229280776101342397670911296108618844226167599116469358471466391135632791988363601819412800945002870878020607634475884692859729088382328144202641334018208696715380223594480500050392774196516911576416508101966325638865175321692728612503195037580588761532265484038866376172828295593440254441006363519958519787884011006559141044322773439281668928176342465644977052738574505410260255701365578653494684319630964113199272786777036301896245040108375933398579131167640297014312211556281046508035518499410677353310972791472052458872849128219623520767962593787865384617628597535772453272175144145854450268415642407810728086991936956206008508987182818122384876655133365374319820842247323717878319950579063562584912674834127164899872829925623799938295273133736638964330783718703763421538224558781492037527704792436773239311675359484234968146176933631512297426207106845265032839501831858430174778493183656489626257479169008514448790133533232658459954037619828642812532770185698368309135974351048772856778632687976114001020499247683243374800530072695293743472072500177998050125079675856052154536315464310701835110777847227870091237359043101106469855579139926231519279162582709098320725437410523376477695276690985265806684672964815291256146619888567981624931841413449077680325299487723897120923513862575111372463773649881085752276994864466149574777150403310139003881453995394701393248406405893408491158491560016524313310611930532985618467345980453894390615945176525364074383600745924275716366978040617864567741996740298541383317397670951701161174141074088594144606752866496560448861154958270670928270974939816664620500927835493301096541055602622396169075124609811099123068073719919830409184208351326455589352945213040639298932190189503696685502610425441730106917508413957469902159373408393429248878657192972603224358015936433385952712378921042318129813553335997645833282646792686138251898737391414950262143250854923846260520842547033520332563750022874091438186792134141211839495598185487373597611612723517711855060012737730039005303365295618720503229787097423659892891853660244759411325312532318257521745584626301644585627567836957728120224842451891313653358991575324571848183289854631059328232002526837186336185848945775977832038708768215275768244940514663418529258536337717123243633005110157013762527177315197413114095874578390821824269231835441467237698291623124547189560188929813070865907807911884939050381139371194201524683953547056735135390083305101183315146097394764232597961235133095208538498850263822839836424744993800844446577962682553502950065975835722550805698797874611141503586143694499456107428987687229486153111144726585380763586732211767254146235301507087782982070596134740475582486600231440850639483278214922973304902926932686595136399920673527638486875022889968446352102355345238866512663776769944321091728437275070324907685039071390911954999878097344499301178489986270148857403548891179186020753460730569961684216100772481301638588350664856823157892057379807577922320074705427982976837610688125248319783623198022669859107509654991016611336171190100690702686856587558590401384516750207104994367543152044671608175967101906560993198531046189719159968310461248405993808341504320748636327621736739949821340048181181464878143670892528519232072359503633649091049290055913429384669852440924103600238578327361081801267189643793381746769546295872959164420338668640855006095834529487470700128006091205575651355202183861249920794284378109316111417211362448231613351336075235510566332139819835754165223333351959613642704809793195148890129015021079925349621607263644432423599908013404219835727390327581485505882641890460111790575487549111248486128189313332293238336162890355791549161370926188064392871405044000300032177049413343364596786655862383100608407099219974741880875769917501687275115918196918856196391373446220342389628388816057084955155416709377245858345463228414840478027660557368745153427533178311478329794294163953878136124343277291620727026983695766928803937579250617054122965838157512831682849248129259359940524198194769516691715891384012970628878549916862580360389522929676093275613034039260056286939528590501608014433554431189991570996928549703840514243146166898855630029559755479824194282565069103605967741306110023368908482275267789774769676604402095410942249529816117564911950981819248325742782556463416545364390682198022748156731013509785263732281567520676133987327645312291934687632253436350405643600590965958976785806436811730898168087792944015342092274230037854677460528189794579959294523522070156944134449358281121048590548943704209414962618925846309114693999432359865616883102229844023657775152924701496369069184149618450433963027614081170678712155487452718441836263867834597414612466366332295570513963409525075144467777490195452041800649576388961924012824603911218704663622380177442108905972354159442147364525339469544118389257108145667153117190957096959279320149247935958759175466481127892683308576421170256650266095263780595076092336894441394148701028583308204527017947686992514384259196737803673885256586965533675477166970084396148851004833660790671364638490272559491419511818756933301624403670707657555847459007609797080416817925113125771663268039092282331844932612626245062502990538975324775763826012304994603794072913820092835040745667852360587983952343533686128235136165199325820269696592940092077395293901481671684666877823322970217015476073996181538398316982172135003268878333053719616622238270822252466177722702935415160038854495051016462377628181813983747421932775640866149135322666759383479355990239759145657834241421447198297163383963256820566898987099988689134410933479697795981960588863791775986361005622501356667259614688502820855622993285660219285786311297121626292787000373995500790846178293467876134762469823128986995273588912995468173618850448734593311521873089529979142657757539753922484752025527796783518052778401028714027831961402202944857837314775466087965934193753082317500240018966052010197060938604369137676380540459038893339314856073260171830724915451596786342731272890560711354557824580107984127819229391271145484979136923570078815226327875789398808714703359229777395575895244759595174800011463350782624809659358443490860362471140090053674807900367493550177983736107253727219738117327734753451218656044448127706326838215413116202100978720726796875984926320197710523815848577143624989194217511652159779415537019006332790481716821174628912977426262355246502373829995676211566863997489803121759407209314761819427934481771938824588355710470396501134647463459038618553130567879468904699013896757994049858790124278543646457271497863131978935774429046154277241870015991717921341540853475858065890259224938038245686895726095704476478277907749302075002827477997369986527222129926614778626113384619460979675609409478996920476626831466552273431006179695966331842258608227117133100166394657714020883731240780290488540956569811815926244158672372296341865557031941377955143894961066253973090552193105066766191661674302145240624015419277235628818334994757615903317713631520353217420890353537457804605859327307192536819568999941597847968395072992030879388458566814504112765038464766019523128771826671885759835750611131473906281373907580482816709348543823035010834691656948773500393082953429829458106980106388105910165414308445885908826073705798026671305540678721281034253107249940079200760695778827465747839968485593350499658278408404069868936859163110260037753397874377478255733159080632295624504098866535130281150398382440458755840775195031675484663827783680319965758213757303885921160994359383092205436127693954416277702829967807492047011447155941341962044579657923555144434343644780077742173933331823096850422177492217062835399270973151338135963375296298684353995464518776502237872131612576050930480955196323517015925678487231603251398951177352834370704492972075618635440851709262913993564636715298055110722090020426651595235987054193947259441023070885990046894820287778115847426363871645781566584421562866745014612863398340151344788578843105084304488726462507921846239635004672440562716173229253215351154521702407529984943965791365868939501804665847668996064511998626743714568287417959551527923309166889689955630789444612040653637819743721361386829399925527747475929117056914404769105389281697676931208956741094154916766259795584801554249212432990406474678151921990945455872225914685937768216962359435046232565177197852145518012265056025139663216638346076843458558507234630289849209433433818814649032505641357305908911610180717835558036422765120117084669445462078820929855000148023559039348979677508950010983923161901279568392497510778943270471826062434303992398869529902767232416646607746333986466261623437168131705575021920602447406570146340399617448801675279387279354588905696899103333066873480873676832595680175768048317637942103115007960390455766330859991378031435013515687629091373653865516969762662227014170607128260790909308114924691636359986324867789050655915918513074729817827209466410730596735690851735582769791814107691792301822326090406099773806726760832005703067315890255913393776353167834487195236287555314004899154874849409087384036062050850356548366861857634791443145910933909194254292475598350640472214332317307973728741795968353217213741151194931457387490316723467937952956639501987541593062685440711363657920266877252951655088100132504354545573641555068085898721137352207441507779928700896591445095584991778551559656589718240754059787788500775257461676757631879901968211596004949501737659382293188662216370646029829638296282397055720669796290735483437758815286136566311495414763456141251871138823685276687723016943271330905769358529371151966652146386573083019813735658843354389305789517933669262578090123284595788443362346653680129589475920851148279530781910960701475760815365861808726530021925253570953794106666692439664207129445673613572378428984638189433782602864557347614466399171395037637724399311565605102809445285262219794057192687427330476758453683947684599147065252856225768900376672504683434132367292747866006780667193601352811620217553458894405490252429148007443887267219296342282482887860306795585050628848452267284435301158547819072099272658350216580502019257565706837546586758578770378434700312133592999176300397579009265352972439146966437545713882233523619373414166578357220543037908148501321683949263357961888951775058728982315205104779393217730019997917165198156283408146211219480281051143801569948685201728886154682140771077262431397907128154915301695119883182873348062987980304745923782030344782165713978951361559779885984431741853906063556237003635877291478123771290836378236841254561951289971679350911529191803324816026290861277185295030987332109010077122854947234294837017832733512530812612418154069656703385537631774863577496266737851482881374568925784970001805725432173185884956414182950283350388658101095675567515497262496219971162124679686855482543123597384031656752010130985409005885658433999909659429677164063730685426056036316827063298121941051048718836604232797556600805620487115243062519301002833320802618611852501504427228940942730482858701456782690891954867607635134056429454342800762911554886855887420800106475000077633401941723559482693882402457484413196064172109763346770092127485139044004894043043700090377935556246994208892477587248586899927612070955802827801042448556796454825019544555979962293145590021299354827750086015141003676679816922242639376210860075781978910928016338829161460303074053274298768283828298147473657432221291428195719840229417521758669417747022067846932781037416561475875171868836942409572728405677889121610140167633991535916275154405536031443623733325390716106453380723380553571856506292164214817378910409401777712594921815949496287194513744544603717965526746222076853699532337020245512371013240114243169148055181110802366244248072171241714951348706513064863791959865310517208273022332783829417775326127761143720785192983535593574098720270397381725702660792754195221129585769813079675403851225619568065332668583927874320385075117909009019128111918912175573542948501009998614506397830162120712753104668375330625009440960094341663316321678395905293529191712860645768335114453820570716556437917790545419531798108045780119511223368376019497536687430429814649344880167626753262689009467977492441853999984055270683837403041898742352983776450762163687205807481326971750877165935705072217470952729320849148886959539853475033178579027113627851661285276811707907814797748140772831238727957466927012371418204122012183227945859448579417910497167310130493625587858493566627736475079446950198470823481227125430417017157272191847085557431190879764390211933697475941740961088197026128548024670924167707897650054445379430465566458921062635045240102816943414800384667892574266977001980510325059387756891195337089610116752410928548187242440331582015813145961105819865282936146800102736765388423494566732730129227643766954106082002173918590483492382241753648923486460311337386963918334484482880169596473869696710738951725572794242467894018095875211334274972645332597570752731881959449132293132408683356229108194354899304859668202451268934046601098263733773773779591199990704170447230515023418760891873783624163490587895831351529195034032380707524468191092994070683432778911415076636488220319521899429395471711806916557997395872944084087035825547425716340795473434407493194961940531947261975734943861337067409972249705406128948860094826920209810245801894266201004855271576142429058497571114694251426954249820260506417611839573722758108714371464870789225627498820335192124759674120436484231569763061462011460407146513049323931077092186928866366165541009836060578362454919927405386443381141945568043279308433480772250334135286353721802001569930026922199421097154234841908589133269764450608250106053278080966842386049768683254072674430430096512074859210772921694252708954617357199724136721663938277658658896854569503924741280750540164803891164609490283460341175467405294462939688506908409483911152548720946965245863095519302464436431287135753498656100780685204128247569398732875804032391138187988041666666555003781976250592355898069717982389628191715808490081269179288935153872701261728555360246734150309475968236467439094544839785861268790694346738450020601604496824007556253899067390518638739084802291235737123517941316588986885436645108251752293483235656747802432261191993873554888843861684963519917935653083127259157772880624353834723240088568541510332170220594544863338980088359172187090783359044226211158401090259162036634257554981073555075540856946592373662775671301594953377171002542507879967810415549618238234444970213624187512410844142706170005030517436780088059918545177105017754021459100620702957983039636403009492389116701428274224741458104459750308634541555722351247029479988533326832746243818349648182390968008354091493487685052015602851649346017317142254605596120999887529902913719331608490845400854984957537232292936842578080531389774150076656034763950183889259885152575531276852015819354530374700101065320268277523426523800178946590915081635271755159163571179813519215878697817828907196124052515146357133937804826833209695244346561546015447901415409863701801973741240024421582019134010873105954669700062786507989126232298783452659282238159261751051265398552067121275719898403140578990424999040452117833906585435099741307765037791495046420963012361674945882008509227314058153140610232056039591461555065444645600956764389101358684057774122286642118232934472293800726227972694622563238750058396974794260111551429026878623946883237424319793515426873726544660734532619579804993440695341361035678459489868092015984418039550771848326416259692895379601899732602249648466111612921527981574505758874069701762760812307650033511256395953929566073564299419276274680183632180175332765727437088839275235263630826003524340627925538978570432960136024623021363846834501902558342167097244184856899936157647398068944417697023764671470532279627179774383537300761564821839013516984944112124006197513540040609503645518707554965178791075624064850188520898367190453960081688133703453256856845733613576776482050066217845848390374890985267698889335843080434806723879710508661120201331174135129523140990858719892691671224461018218438859335177481055237249564142225398909691806917729358789311303436771994270667323235292064589303640902454195195363489145950071694056210399017739060181207361337895211865915484622499070305333231440300297686049191227645115671743208000881989435545734087403780352145897883798485639034576089474495629277289274219733293456051101182588122058342832808127891117905264896962992226913909314427078935934954253503359428591456910929225437003276797117716183925523719864349937699715553950196113239032649864714039691801679174115390330790249528538435942058660578433697371816742325358494563115547640043964447217313942594604039785577640883405529182306715619530657032769328938575032797974304120963784611965532861875985159185029589353343870604551194750895835451399300118944089682654705419432150916833357247593730507034511132922947955293631250465209583989910472877336108504526025401232309848707728792986907764848122117205252479866930892888328256245004642620813188032365278430883889593806863517735154433652087318019680377304097225171516511796882436276900679111574650320348214549499993346812785472418263117423543912767551352816033924193500744960532986248741994380452805902176266545558193306106123098708593871837671837597901300417998284289451468594517958502559966188492031397386428620228042800966406990971493595497851817687172337986377673310223707876542491581044596979887916078208159083413003341865906226060558118901515276509624258886739723079318203150204955712015628495453498107949764496088404818969049996760235570482483391367119731483421817461740116351594042075380831687301127157006309500974331945498061907732893570674543672925287403427079395944397629853781799138044327497023289653291298312283860255408416998170588570482846042881133937254073161553805130694540270839852391433449847741957136108750370765984926542468382333675052717440479807759671259749243912939502228308796306084005057899543686597898445163202348578659142727513905872577139519367613471111498226449040059069767112503201923133319586741275117125194731819409309653055349492670157087371093664790828596993805488735249573941185001320262101546393379020534237379548024964987765782797445849134216317830769053769035334191060768388208541170469001532019809809595028726396681703352293565284666758827044639388320765823884555688963074759029677197499705813632369324548280321641027094280324260771047485181796919590430421969252733028647268116223317223400479935365995422356597287703944096597117698748507880891675097263372314240480499675664982008081812860335267214607321571803556361911458727165902641716469559723673851538807296347813721983033409055577431595765214746255673483126995140033027864730897201623037450095611468885400220499592575824524637744934272881359108005472014144278197446731943054861151821318126317601194154268058402836063754122979951506389244142431850101305937812364087026402585257348725761943015396806305708004541826114452912421345134768006266445128680144709325134158961207623613297121322848534718051090496636296543387342167829735585242702643294908711868894263609060533986101963460772249006408386017729348601156170936551588098332778679138962703243131282893031829888023920969364486022418874899111784460943988936646195629986581763695974812680099068498906633509842488518072557626729265088793005011354504420297795144154747282930546522081903028187221060713609100849291837913057713292552521456863616897204694398626417412818487463794593639037823120929218804861810020055656621237591419545240360245205020096249762302020153713081832033850883343900438451513557945071541138021859112369495925214983852000018795661199183831845132240983060675783080855362016235335466229167038571610641336855999780464559646649341351991923917733436995907663460251167654717895699492679467653691671308311599544271471150958061513175025204977535902624394036937217721239539890706515073692279332778775521944987696717054187131718458299193264125180900082978243796048518925538179843885266722389380601522240515945228108369740879485553768432609091925116956947683785126519730464852498074173376954469569299386398989444355414229094862328270361230411560845713709266328981466195683026297026709912713798624916082768022172802887118506379869310740374271981230192475611617070289194167608533725387602224227421276107216935015998613245985786005273439730761121189076760174558415351459887513061634400388728755219309196152112045270965407601731975928077456563182132554150258831951041124249114014930117307062657376567402132262283742199913389655319713784619126513375886213399369115816929997493221063208434260695979526880200911092404333258486569693901144425062915769858419766198146087175989960906769802299358775598368154666184428170940131697171280100807013709829950324768884517963198836864575691383800612472882466435166800388296131834092191942467423302148389906636279700871527715495244314841512745407326478552265697119849787237838965680004625883569836878260414424785025474834318983523934120583301677152485271473977558867997254578551248039889344282656359667489850325581165511950826614486976234072116877493504828167450159924950592865249863487877105862328362252346497753440836710452945191616633426693899090311416886840940084876159042568787031578414389305856001135352434356383213110977617963699777530646465949425742817154420408067377319729030475619940931691048964311661140875786963437157827522032256913067233336405349606190626670714692724558118498194983469016007024857992798217816100235852480086734527825070479624257861809415153213927764317171028354080406490311967261114396422278105649518025409063114690023320672515795427751545518630707386631209532337603300766339832138051689764735150062061207627665178988419365784881585514840449471147523744392732664196271571154906734176774269996200190521725331844128120442978549355686929312230046358971793673903441859055117025253902970807016954374134723063402710196595537056550284936064829412434646817846504648837788414386320347399176788862668745059473311715929846984654475869827334714143237856899872397572970601241567867345241146675949339417233176695767850512733434496761670648854632257073833920643026197945456603259078829148181377775168532879346549194945865046944199824835805465177840420895924191664214992046298478547595818730170686533565192275466924739230001230306619094650881559195354114792891038148470178075768061833761655543382566109238693274435260283087591406637035272509543052404341837107500453666477429956988525031393064927509198510146661343324786168795343157181060926504040280852279242868275868824259141307706700423796220552633811182184842481995127424768229162641301032983012995757211323254248412252187438229224624403988309365327969717670903689281949336256278704419958056357435840198800902006107712676060684578804345788572812198743749845533832216387125795563187624116808003353921941185820192981910953332225216603124544672667590673661037158804115364293288788411768499236138209786576146272308891883914884061833510783498473228694063906504871213404211439487642221473272188415503369360655791204530082314288376513097082637526364268085157792216240255778851802986573182332892073953069660747092214186647939599588232372063416168610355777584444074235371446648953865055949263455773338528143237032098241959613932489315581550706420217651861589293037148065604433338009228828906401634424485474310811628314389519916260808098305147390241095894691479432027432711133695960678580536207823611461364974590885861505817304518174109638122163324989188886506537275568909723372940993942784372941945359071751864649689229799906554523188956161768681963560920783229094499360673893581922163369802075788985689663800361565707091961670176798506054785028553545062156589659856595124800115543983542710819003614301214535769125570983107279148656781054630679375046478573310516032194864975786754228849120540496179140187548913261548895239612728663672834177602592403036018853370820210281685619120936226479115043525874870399695925396446298258271023899771902281288211514499147823090283281885140436522383831450334591562651356212388195770817118320096117077143387020327793920336984757127288731234715109003040251300076568133089557846686022189397847893117615902786318535238497114193756339655625376891161194938006903472979272678258118589874765980793211045747201471180529233942742511593707209031843081182311807037889337162248425962244917028065517117131521680799551246950323758050918442429670301385970744433678020271440059925069910904066841488839311417012134540273763990344982460079637546479976650788938764085551051421781205298149753388470690730146347528985300056675786730313166943936057784326741165572040719179670294943717380278538250883864328534374474434893401571961582798198933736637899499768430362798943035907439305597091016855185229947129826507151778387747139751904145395758297087538809624192946962256311497325281902221934742936374289066103177613967255248806147075779749009956290649904445794540414923743231821679135290321998158621267875024846968901724119556156398051833240081775453225778976149110765519040674540392043106850928654335704365555685120664303862341261838230897927887417615891115004156828792139732485710373672151536456088477837846487762809145841093151754406308759639604517245474895632190640304603354093176692215132982000258554311147026275278480397017234615510094208577143102596309250573356450621785347688781781645561187665694957944781043117503195286214554168856695798288231076659152426606312008601531912761534386621683449551782278427202997715685418110680759098005642290820805817516890925854716836374351934018284727214834035594459315580801300326112926058214771327071186962194706054325230654452277258544922601045404403020722804167209955490702453621619593541202314870744528308889955945312650758517405349305812465271783914530012319747649409896131680329092771686458802262940087080452245362806655633615108348495418438363250948640004572442566421430992601145428078383980256289783552315835996867685145118239056009813679801638740067454054529983775428361689001574724737988328233974408226899021742333908580713659539772451651181440435794670577831704860405860457619875651167692687191018934088235715485710485587556903463981878559421883298476797940866667561077285601420985072794838842265762710717336160082591698817339678594870289771339789185322552086287880405133786393778453036079733785251063487643871492997244428801387658634035330464561002125550112905090901518953540707816405746464484349090784180159418982541972565994363840927953915329171861148375977908638161007114052609963004227599817850947837425764292169390553030933384169871764678547983892648409698379739365589851469581107982862996633174416793489352531470738029729445394240290815543643691375037652877498189579004844186304716447822509985221743358229685723392288077671993404154063891552366331080830402216604746376668651691145828471429011458160075979452916490529231370907333085438730285903946809201152584958426394403511126085401764679139007603887486844899747393244416414675920883436895740282589733022221549775692214081903018588179571603835828292080496497434853488239262289923083660804732490424932622395160071443964343339463343743510884786262314830516209641517019896838298366400081785427333311355857777729827117438471721842296809360129828721502755889538719468879971311331385059660003297082486437245066383481861180429779784042465366487945278505714007563115633658733639588341387769903303862013662398407488826139328068750742812309136785113514113351256617447775942201843165638891742607264399708877243124411095661824484334637981065752150814376302449343519957707268814265790791315024330838757541854451397513096675517017552184033777487548256969997376935387994425449737486649145796729477460046999428909479099347303064429548422766895077673878075404337363654376743238838212623831833328396493765468277764263477402920450233431951188989387244804682861843903705948808692691448577544000946632793968572618108627880218424093888489338954429266877299483103446259845859591532611576210869201718831153670192804469848875636310890138712418798674696176308375364767476592311805151103142705800466975700753018379923613320484747233532327435512894238819141076538284229290794013729221504211519072879112867856499728957416063860934496211887762944455639031956081432694447729941287544656739714684259015627372581110496467466649768174450932124455478372954571192231933963350671393332031732806837170603338570727857883735626059918222733492347609806498999031483489953384083425912345588104315737193056104256303200596201457739417747106607523783503957002482579855677564594263652908153811002814403757154486560234781124551928934828222809847596359111535830456396994231761249677121825873784394360498112539397935177623760143321882410802872034659698549539646956700180371863382806906413672325684275126489055781296668243907963125382331866432566788672567536388401975739284210223856369687623442361519904403466061943274039543428660607598810032603977209018024588080669184777890535579700832719063613099770836246197249698192101660057497695920059905824578104080953941785417040063002877864463113518105214528319282741822859142117767233749401564899252662893786218429177615486926563313050244301677702322661518083261560811482786076091983850288523308448841125663139555364313441552911961165040667956289356956666268089151822869970145396548188523606155713895438737794511099906714462080055630287351464191458917153199258058079466357742766272375837599903338642337875879270273751560059049803753499620337078022141632143997461630658254464515488678450314152125770007605666576053032971573126873307883435717999539724799540749718874488474430276345622163192290439328267846984128191230730386614723392810285301291410534914774051892178751382711041149137489265303659059109048919138740164295371263367356899799775760118054020029132283444289852158378283836892885777749687381629446846247942811340723019966562331582281982851221503396529447206123339713186853356097883460519294127687814152220701684215348159763268687088244979978129947222736996939650157635386982568484094384486460861289138533220386735153966748075226936895451524500106659831174077407655980794051668109515927793203279302864422846105957094894655739318798081669769867752308951547786326872800437672062117742992460091296267935852713085838985018036341526089801485407237115599358111038908406249021336302418436447187753780815531753156140929065820302657831583168625633958360095474129650815767625696786168322912195995826322060175259168076703443629602955098773370237604496584320512038519718798016774444487721262492535106201124867680735564803278723670060466367010707747931591240605222438472811273257709428356583017369667631019325662975345151237550881160166031534366068800581444553888167181347389913203904349831314669507553104141679260154322979750628628747809871864408343802141930778191893808364559154914549894015967502572028296188687554687196355522721272007954622420275838473716891707896326297764877279157753656437017688334159518408760393490611791879658625764225734704989919940917816170070577068011755393593131690582789206406706136067974369831712409678379781093824755891311768745969065035266920637902966155516025730982392815003379480378175324883524811099266104159453164027617300398717977836460228371055832530802525386557677587889277318355307977023168550259906928657870876618379060780156191345099160862363939360011200846531865223322478437803463928888443293500471288300100380796826548152902295121760667265053140612729242626849021341831916455995404108834063618748896017232723732147538079868885516890279310109847556139269785552540460741418511510288694477033252889382898648549880031663879478081910738404045643127139347236624777418760973592979402435116595413881313184941118599895967073573777394030355914021089665440317323107943591254266817814303783605299262011015211971694113216246213076245758027003408800683058151653363132566783420544960386872632381357909011415661138367116634193512289951121891025749514266388926993038837880922413202365648890423865830439472067470598973524534609386729524751166579064721223778257856376284169927395832457027765641382401352158835200162527356208255462508563182137314662767965813223384923098201486186232353693502245333371299065084654660233478939159950761246176788070711194536314146586386078468370310158143518874564449371048831284949208199125345920864961989721082020323766308480036220298337548818777607795622557554677890737593968558996829596145115965291031441036819423894247652393811072185047339786767412819571155676690441385292318580395490837941022968053186420259349248620375852081879585344586523339465976933361825483618223873743883105387654276187180387381040084064036257787556658432578894922081571764016662910941867023014050886846882038603667974121665023408338073033196572886160733739097657342688993942116505990877156945422244261041797837422547591533900198774410990279289096470483973702711288899336260271109645359167554994049773595718485822023527339798285455826181667953381989360928918561331219792045122945632183464011960449093171581528914592890426520485325403270091939572904980099925348497912449731350640853872045780998618376046343829040375376948159105832073587537988672032774897228775997217017573672572167758419891276349918944250965488840736140202616638268469182158416788848454819343322480445175189416731862549451521008223865250602988940868187672195990935966293833536413522606335401417158207893971322728763083671254371742767551438162938624644660340209761687829316803241794221144173135674120610072613717144766358879638022764676993202544821169095281510585014695242761123897578605777433764470221401638887666521819593723647472565433411647738734722581105647507328223562557118933101607446895268743141478096653755187787947222062338879399530187265416277707273714935241039639730271061077434846802729013674467123036295671336792553548510833503899536138852519647123244542797221339144427591790767393062561283521342167355209698472908618031309594000384291918760267855696917242258167109627522105701674610276065365325317528755427228839492459402316696880915909200544256499959509257887136391666134557318374710380362297419158026505705417994584568434939918805707666137256964618851785024962154621899548002687347841216395093391097670941308222754601180132755180397150220272789476235372294844509871944006383511203415636847359278441690055212355960222473084015260377637188278595513396744751061304980808965232724085502380516787393226411775458719589811104640977066162771119247536703590511879168969287732412591392719444655439637207390143808720870673490506608529012447247384065785008141239457760530220042753476359823872472104563671018063749575728721501346768102965883976024014040909503757008240520460835471035385346563547011339959408611329326194906228158511461256819462736360693335208884312622169700965228660328883027242176407328462903234351544080739345527202147247803556607348651956050919747620725343638699525441271204817938512174802224980757483125998335527196623945503071842170954722636446625680487045222287315852429594327474097433948685721196016843866008763454076965711304228976697161931238736555624343486821106218197735367587482491135043621468140503767291957780382608133371840466648630239712526223908536080817502732107576639343559056723615795651097404141686300574196559954742950391103499854253079235075662765937882643556344715737008752370186998860230986578530008088959859397541018539169581600835578890029507777993110967288148040103965888430818728566957888598599110353780154523983641997518563443796691345916717867960805619106552970148937621584289851484515782866893864452488318302433007628036463130320988838430551703603531976415308127206445207203779334537408366827366003065023166200358762797696264781226942274936229111260252872329737142929748057846106730490637488304394260005620465896283271172344423174432161834187068612204733779547687151845492082842955740956501800876844235455637041262661391962940930839418960189374491217290219523309432881295791158923954992598653653728790456926142338560969298655770279235586800217959049618132370023849284460137672094899332304061225021036504004562562187080815898377778395691748343648608721932057379285102905197888443601033367035776810877091456798352535375108113180066024139272514621268924406028557279040430078085076120113131477211973379932351688546041943410413462389159863973044374542880348270015348847806218596171213429266082060327598337397221144886917093652788113024159721906181597249706793611401466516395870788651139592991513592514875592411699092004252068778520308177559221440247953978492924004677562286552781600490673398120491227985933479477936144150817037524534252557944981879204236004440364082273301491597497708773489535314128713835049572371850951366017669201046636275060962926277449961232582785865734988349118075857654953505840147268288649717603244382022354356559619056886358362711544852834286633579503924651019192275332587628876414066957172019503726451697836253219317980924727602613291952270462150699516900955044079147496589332248314048183482123383135814862864038367578207449133735396528122821267102976757431412632229218332783137851467506640207478936053439888936723566550791162670870340080553118415799754236243832630705395637532948122324838558456287801121238568157183133511728742458414750870651780501506373862051636755084751523254101501726189053630886179402474794304049443233039719608489308573128765722138463204115052731902237806863651514755143545972624204649437458279444111184707680366521931053733352524652652675031591527591359441604009791506617339314759561762173344215350529005069364305099504580859139694119303896500474912269629591838380778613774275032828267066290555659142303977795709142409691224451520850587580626731459236608679763428701615754125194195890979826667304487477266298622840885127411215706175864414173817995985532234502955253530915000302018564399962730868471834139887816685798995921272410478712788338027068191664213061806077240212353334834456188760037561388274322498719200538441283321782753513487969172345233009854701600151548736978438712321473387678720540898258778310295533162783459524223822647858915772373410114647859862092986997473077737303994493520038357616535057723669002975101688965009200091698891225953417001639728433610026026448671423132616298733629741542256861785872768008358475861892944493332732136491641582563425719492722495052912661084979539816660175297694115001035957889405153952346017785349881278829953550810777178885672192900649560833002270995389172581682223316485899236983402597653124105397933495030898780581310456965286688385375224447125076631686023690270459768764106053174244351358620595205820402320326015373893884127453835098365386752795120577418176883546040296016261563173412047217004566887287953733845647414113391594148667831721215853543287919733288760024573491616256559415446181342709146187935576405969941946023918919896330689587959514203261525415806612979592508988105443317531546821680159499900072094855959981118132743817147287460685163280636443022227071128439587977405950951842571715748530398073854646408100999607743450751416236515061522601639461077400038680017062855674440065970668954214488649533178110238037345126727680203573711023443611159873779740797130005133512542044099242766379559084169533849698997895637592298479393821465323062343222457607612791952730049054990596864731426942053521229355851373686369566647811321953815872032204947279682894330533800300188201463278564142716052209702515966605313349046095353970990701123706110562258507673269055775246842723766661262557408536578144715034849550004532221652195805625146148615615295648394596184337573140022216184075509473205051092029721941244712748817660744956841805222662285287458155614443340192356788949215807571698474138202759285325167015147712228575590522367262605702139067004939285476644949402435137443147267043516249952060741584065124119469232816988174019161831417964483918405588683919004233868132279897695340740468600747513713032495298974324305338284740639357609955043912515627487808002296026787476486572828736627656496136567850429489515402121601162249972726904386340471518379729323484652923653845978537922800856506240921445909091593751250539740665389470531478380569081134331938061312408404634478286492418988152729887503150321915620181434243454437699162607547903896904524688937250854675953281515833736950151790295417907065719481848783405274338323718372978884982473192112517189331228820694134661220131582134054539497635813829803431136938585404574753902792268263422485845363185888098834881937157520998737302546703656045537350548117852111423672426915244477625459333003454292548649877280315768812200924751553088414368771207520138078904774559303758427360502357292079362786942582234815739719296942661894692683050267608155921848972373647063237985284298907235525599752284480723570128948956607030049189480186145308922051532737883063646940729852370199247027787965544635755016019084529434197308154450990319655806692873370904592982954732881724979545142424162607681485745746361480771510322071008097970661808068091666857614488563079807875120342569446755311208808533110544536008063003040589687597612136270384992775049525709791744619507906118543157077480078866741466927350936864123529711804727476472962270235086337690761720558618437608280701935205081337401125463852205640562713953436570035635872254478007506286241134454705612483465052416778252018450617971756740986569033761593428178986335542360074366729227933950211441411610191320932564360647597240714126183690281915070882039614016192509670976041997052745796711729237102229543498172110857201337728414337088736003539863226353352453368364522130985447257163878661826343415768782078072864064406621167436862263883802580022399625289832534916680724773299112954234465344896735342195801096685242244281544153989703836679264571547864448458274881295928909718926630871374815486413417042461542040713549169661744792419406499907346968662384007314111209258756314715361662391685457335813209381913290843319234082911635699084360746968890139978553018757373765426977874634479486845169275033311815221349601119695223882321142499780567349323708548080025914613017890762971154967571534357741677764296800391431784179993231352997875449708445024494468821498727077286982123794442864397013250998214878451170939682175344094085356890925113284487445715126639903893380702940209464942896570330823871956593776287483972773692840182391116083627823694404045375803990574487994658642140819355108893413698735933896034919457626212752887126007339520487221020349174405081175537000106052946329211185687527214510668667235176744365121194194963894326482933448799419075652806770287424473535308526685192027807115051255121397261864456515242059232761052068496085549865678533276667999580913919669273973474367283047900411843655958047094501287383463041525556932469594438960885755520805854094103718521647400980050004952072382660089568895314378849594688797437070069440154040769665204084665075574103110386428628025726566357815131585007147383701037131553437593074482721776746991902432449774153276018432609839077728757567903365840060764348688319357216967497108392846565219087574195809541461632705252991338334259081053898934698406917009260557054724000104047297973698219961641475871124809211328710536140976247577686480846809973752350635164129290512499665717487358745577791342156423546470026429105716785815461484204195316995181706636110700858189586677689788846009162855001414290780727467527701904164910074909529960432556327161280150574245280355627731498936847691073091420639949384776247870167725877845677493412163277225111321837930712426010630903020281849167009535280324838027448385750990660171316040080089391819602319395078541215853487258415102596620102019104486692116722250448057351633165084933942721041674928553270494512329476262732153708690780438023986890865689384054559285562563847196128814999252398050998795948140688290615715325564884236086207478381004713484457628115410830362782619881792231333861864385718813639161006815831287337354128149614925976880168670106486266171078816742132123000015364831512777654539795127662048367474393944739490324250372761114448341862389610066611527748856439959334757227209184844771102939409719175422750247231369341497003636672520378899931077502450941638395527162750679697997978254701606152901218382488142793331623827406950762766524398147521184804490026571326143442814980827483763028804056037211580988666262202338281795897884316816778441917131854923439269570214578521521614780254242140276287544998435614556975013015408879530651217820556903364050478570259748874301758169283508387592513101567180638401767252015996348864721690713755986748304356640965311366597136435031027297212446734626349401439355718133674043267715000532372054309610143237474824433437756948447117450852800264831068572957200108419203165134341337665394850075179010979662681777203004741008002967495100969451556917276761383163569968164709033687572765513984055493817818829052035514445315601419923945325835536711192463187014004152516438268965015050646755459668810384258279538066952402618334913894742423636082291204167845438647768642229007677033376766495873979980930306278536245487650389850914519022906780613754692075136232787661296947829509392503414173044931111722124224989731614033188331695822384930848080575105712455783216354579672035036230491458679555083685498866856056127118091186136840918516244179287309398532559143874234603447694774960213587018752130158180582779016369328879358378717038134626774950424629146696742707171658790775852190104394410687363589455109614535135214890339010274185636212001344861755934247524628279693106035971439041075789949124667313418315359035646194373033373969324700519648155045054699689376228591490971214551094519127831181783636667065122531625466734804262465021756764507573600460488113145247173156943476524418456648638590042277334146347774767046718075435531047243086573765926197516653139996440548010333599414707158507690992151986676545393487649011449813645140372385568736594455153903665892347734204668185806758533133921521649222299420535498524769614684137399584628772686995242855915119814256574911878940688568039443538192324707887324813071294733496527011310048947760450810900051459796311803639417478589544616553989213315188723885029239245168668135488303781723076562187278486645353043775268754341603573734467055343817182355987176309463387617711770423047705758715199016869608458033694874119157149140609373637320365107822676248885544801925462524242030363429614393691769475515744955349024199171742921705157347708888109676729998800503190455504106171203975325922894439469293188424497731827566732262037375724486615887601732997577711779466964612327820057137850471065792710710879080933455726200400997355895829535140446719944153941989872536732141944812853736553777051252390521718734070549868100991969673219222254091097308595089881841153040721493313931372837231270727652886031766297810291838498981975295110048636981617659996068336485232674445333890503643366917965444243991813500686709610253207104632654779754241154779444731895211155095518263656533275401009708524218849239488331405053597391972785712534224203158413649614448940056441236627960565662139805456658925336802304467502106416661293979283955091183117711712514933989721881905179235702033290717244660972234347597293854690039915415769564037373601957553790744055590069673722616942136698813345734768429889338824413242909768843994953016230764089826707828817226150655022518522065104307142327807854840304048846861189852656843734063503941567320635617613600854237233690165432085114402514464454279368607190862810216811297391559088461969745208720334631255669814349557045620770484412466914910325360747885152082975070651754118767302538642973894715619429864783784486498603118044621524389209323546475429268205393508743007709821795703165023012389187027749469839491270508989228796054399733877192776746288294589887397851799756173036963603645421613496796707550613159702645714516738942454832057879794314681740479541370340200401038127195635118807332235441560595481611393865811806502312887935013707533040278668476574205248980448921234330183104828236914358143445477184530615247039629895098583504281954252229872917408922937626616436837268281917697740775687483516794247085599990077747626517609521066156057281974592323560774831589356454162681519308293960649060799271932005514965287469019946180021550559195821449666619625587071845664446094697320941831998409701833815839259671216930350770760582488703502469145250187655260904363493076070045032512654914018076260910380882765759785441676830482434691416773388641841259869945141546779466050025890017389045406206843880840108608303697360233776982334137752989956528127743665658188081629131443263448374672112024139746645983846771829279795129425892032876696002665907166014474563441237393876041903446915657745895691866047604817723245869068741457856358562160155981761163597781465413138174274891227863179766712106365413470581412043746818688506116372539041573332434488150400392496374785529495070677783225605663017389128870510798270079261281907764067226026453562658314500875325257647725258414147752056670406944493280706108929390552462784938609634222660685577351467190316554648469532246386016081191864652283832214418238856278346519801900350216082076049916856629292952998374000493634642515744041097827182171027250287664572646345783941158535950982598282442456851675759414407144277579719641232584535470642035018409933401317069156336492076428623103724086679704167957119375407717196885126225013511171732240530603709828547261273925256734606328957687684968077473092990589557383260909655710977021394411726645401042356128324680599303098955312727322931992345252791371850345753559402977628318383678492607516302157254292991387102933959354042359024889898207234444291076786150853159988201425143388813657943188626294937952411656959155435080451014472744970563334307858194673107371184271413917688269305192312596643266577661734046721980391072147779033993676664657182384126686364996072496980928002925853931132675262160122861080154416874418722439902759947950520142009724289884127328664532196830316160976013515134948780388879607830318919059558572756966434354828004760152474167499396482143262491009705047621439571645341288631056052506228788445095196678002641291701877110398434744399396171248361569950379733112687840491048928596162412600650887044729133926295645208072576452457560984597749016487293843971208846814666621883229439913266507885655102737258445337161206252921629508452119586564498196195094439142055104203923671557001808321614430967786961266448872130705561833653330686650526532504561387598944530726113818868274024158403840922127351962985334214622375869932695300235852506373802461186871349064458161886139213508381481700196638618902033903071137447688645676238096162107213686895093934638137016546362329791662875033649720553703682123197876261065507793123649030487766186901072037428164239637802062328081438448331085614910635288744018599498497774208546879489801847058195587433075390036933057497689856699035616459060477193989666037192965042895287005217423952713451852630159064225037664918691357321700498850921451253156454039528627399657424441750144675408611219955840012923856608712399931598906274824996493624921854870557560879575246777395734976216593805023055354633292055632190100326323121299144129824594684735950529307776503120124966451456205972914951302260836012155361947680398354509993571301296058277639216338319870486961020593917896670253753393263529125103469152811649093728371112351209576688252838805423227897535849782611607911430513322294486589302698866338019377921008809962508581370017625419329462408692308061658382138549277584311122570549529185357964793862570846202638604475496927701131297974012257400216398005322666199982127707433203930419700327166379310231749326588825477652506062006687191829785764188336628873718092179860252464970616866628540760184654975206579238628085439653326725880893906539564118446108142271239180747024268122761868717000638029415840231549272817017731165559696262328635423999811514118746510902091896949232230537589494588343828215274392229883060895297096903048155855081507165431038343053584727924524953455299312171445655605357294473299669141753072643366706600243011348065868707528860644863860497416460089328144482175765049730977096610420212491873340443026013097471922962454813212107947377568124287471607991382837852602424882402833789895956201183883606423601338901627506929728514708300176169389340411906746848455611544175614228027843633618396136018086566313032684098635931567960044168467954726248016491405341520795176511643594973489215545893349374410582925084009451258838477447424882089490416844252873241198742418832788999203760323207983427748623916434333814658379326871421983666110606432863468479529949328256873012373247151308966665670297793919176907343075773281178950748948382059775338852085482552511554314365293999483604891246009603826031501567090524132389126979922808952054375068892248590885811277477702621031014494577304258816570054633020638704030803166236688385910070133560752793114876251642596600034715545421107729462153999509065398906622723209742985148860810947924685505520278820813920702245398334380050962649460687087967744091978679882061384860458181908918271760101779020234251946487669920390098523175787933720320852163191849521295694786345256468899380766004227198664347227903619412612230171445267164972328810562695897600341529856435059825845048387171958363620883967566926086107832983320983241561817663744429395215358104899814730749275126509351138257521223742605611903458473697282961509609184517778808523969697599400190320487045288156049137972267451330665106956568691975417345697279048441371319024512671439600839382484802728762205290776113352967137521293682650725904651998964756813176061082429327955545157553411945057935606619628096884792373494879393462861663457054424984800561112060979290737255325880294640806604867089197197379680431286944903434906190094415009937197021578953300137940260019691295614096056290902087231368687268562931910430043080760153104938938772852694488474450810823300362237174454991078049092582490594548216195211067737128861029623604065344510541681283723423344343045116810371012204684089468934813790823135859221012034820186654799617525316824998203174641676282349532716067965828634253864033661550169580982618672406734979131914056822346148212033766454871668105791036022326495005241453904469187028962797979440699032943649111159350083904624673264009669096085316859526713450500865651252135255102586588981022908943843203025747010756761924811696758030763819395462003796299982042425298610462539266844239233726918025562293908771060362878882509751400150793161613627600680633871232269899066197878242135854617449416080960177156250124675561323797379168334499209362577490524710731685658496005367868625993587463811959584460116997161064752114587120515718972797022131377424730986410888422527770566729214506598730554938174851329764590028147742969562982063143863585839936931954669855630627706125783055604405256649960704156169460012055199793435844794871441469198259129017322937253784495867069426084427783086417533984571643881477885984037885744221725121843911964184614669505360121253448094391587256563214057836195149941071403977068280410495971544501629781346389620466576775535090404137716515917956502013846767892976909103742729412158590642677247935515611224488037810623995983389073196730552035502325193107080539279054287175930576962644021723753235491107624819939903730785141053816976982161938914298225535024450360530566939858857001817280720569138575817182247900219084815186117255696142808998452352102445457518479299895892701796697299654781236937873482827084867248547704381390964242175425683873791723405482232884656847259901954821601235464083511742694953340846176915707447177542957115109618846330906219002765062692203779016270251532371525580724478893881919440579012880554679083380347605630703904699564465207592222015236952157965390613107289088348247494374944975323266036466111605428943173765045783918071518276560662527936075260692141223261737607359559391665521724251133815823495685137990897915457842823964661257290776190899029912617702370517569953936143363205575346278520887013836517883141162968008700428216258513387859796379214148238254948299852859019659335813251112541171858694602835160255462001691732480207176540971096079081413683064249702574333101154203372157370575502818222340689746352511713670334114426867262346758711989859683777125117997935077121008786904436651217528822577191913015879472165645754275932316272472947343123108105774356943345693367211954906749515431657249598746846722484815736622510995581053763820530686007451140195491574084074522979268536539984255362422859390475251663966946426477872536299887998226045358169845259947800082773200758700093826817293842651972209501926006001190809390232062769082920361280866922769251618371009266567735231933035804277692733420484671387813525624682934595778036231538626370839681965941708123908494305719885581107362211158579863652413430994775088469704531781576126055971576235416198401212937816561921013941212770160020733222753884340575125076867595835869378723851904639973089880541199881974164997202811136564333462075760693562344638859990412075772337126771727036447231341607864209514865932380153912606177558862156984511227593758757613024974286627478487013438219760937029522788109335396270142529394517255244328590379679184435526105277130024430637959279012422894417691294969368065862937100699879521102612434842232177415321452732991042695634924509277642220554852999618103468351887899067631078479958409238927882538922427243659273772858742878426595446740941120696653572298586524602745109889957613389745245463206231345675013053941090998759439848083140125168819234885391542668209672648378754180073416536438445508005706094598780082379404987434634888727616648412252183837342006693057772255533576956886647941657245885238528721288824228397568309301231995324209831786953613568114652985663804812156492225365222843351300125174007381167629451857480158171477643672888097406986954510420677306083304249835130849076292941292327173456715759089153124152023635373283770110961711399745909861805779755486312128142497997727936309856268965705192189805934620971539288788573905487590511207590876618447056505766130439750968459680594336304276202651529567294014843627443529357233710460843115379036749249701473005485093152340168754469444401750945130044964401509998434816617300318519838306767732159232663558007660033573750768689830230806580892338842685063377652985163553724356965082952810376062268863443628889615417770070962885004135891741787703035151912266670413269016659460560939092913976769547322772334896673829121959139478729434045383158868523243049231853376044976346779124540251476242617625429504453955349395977573722396976555388841617542882138019518359925238955454773034957839580545808150875392422041739536785109173565006249094787464396147929633624585707657086820113430465753001594505272346546017382149967162097365225179213731027876763855303299398650999946544563612305811996550941412669215803503136314807429659544189605695159267700228183051137274124366225992559145466548350565248405327205189378262940719436911279467140949965746942158566561442079287318612505208285569469239565690812486407910839588613018787137121530358464875103229240880638162398069060789080710241615865182968998656002778569840847986462908129150640870592258346424582579635568913445594957841154624429506298313351775757114716876781655754934933111839077069311983677039251267222995365054673467388991458930021443979885285925537216739299325654454008830961730159322695893486426761107111954059532504646771387114844975780132317351459337413207077041103856682781597915115586873648937726887035050220874955995145703117726398862707110230598569621290506237624520432035972125092459430992357900386506717283710293129558805665649593013556772724449384000978519924633451381094791922697511020822579677751327846445662742360640267891329178567365030574697891324577272112889779767566197694482040993696361396296262425594064339040456212583713320755588720566277719822350697785055225568078367786987733704624179161781992069028674883013490665204579962118019291944383080126432292868203312568327173653284747326868022252110885799389004863226632103565826184756955419285904074748572074102879676567299826891092666901393216455088385692886973843657161336607518861510091052609235168241148531721196014569670516553439605907267928024416175424556483676716388049204142500469020282839848698696154989370577785982392194755136239054033537022508507895704500356365493254020891021186255313273556748782027197246994177158481278288421185707899742081046956215670821937952065640585247765528159019075639509526538280117383358168396682278738945373302542838240241703546462487612512755839517516171754772590863790057629694687822293931182961682048301949534310601290118212957627405348174489594252260528301870928378086953349483893167843318791048362526455002697107463319119140455931991458512657227848218706402550315693142087454319265487583711107758403022434072213965908684670649617070933135648835525810876949690088554195463365584107439664855317963523968120838261310884317302660534100097050867957384605010151058702924629522680507525453318699689206530349898111002194940272341085688016531450969604943662413486410637070774239783187025865006712401557664310048918215286625551006536099328982280827109487904647613877544285356039775863202919305346979552541242990853530319425880414597489628391206161128774960421513067964602934769761987057662846202186168582048638381641519151538811635871066325539384839014445561869366661921074755475055175005428181089828032302231281461283112598167577880371388509910653732601073731893455152971857996999227665267800284164172500013866726927698500999079259812391897455826030112297386196317726085654888138140175015823875868567879686875395601976466572112300442942414573664535950870360971066211904097004559907245308443581603509919518957297103741403633122847555469477193787199352489015334107413908182735488707942344912009923082058230838753666784049190809620654925588859772140313807936280736267351892418957587685633047443502175843682860416726433207886698771751542375426002705210019099973672143520566980650545514046606203033625192593310379223149353741550273247392006170220131145101914283874642683453052181415300188332516778560616293051124372434472594639982845016463873491228231313856392642085456437176710064746743882874245197950246131669874331640260850539992163710657052348988064736558224486693944054418760555854822788873443577695176684602086726010008934639491235144089838278492991677205861476101310234037783858274242383079277535546751200078031277789365870177748393500761655497880827358350640144083606176547068469356803502303798600376865951035307159055872782411330463764171284693470202760941632335603158587995222900974831206053407314906769744402072709642904816928075007131165389554437112794568676452682744877694205115550255358477702906141880747188883606084199073709088192947079297643701721700485983555914419813309006774427781980713309987055721127913754157153857375169857015980285020998710413205506883825810748907461822771110842484195512346264145666340929735696867562136774383000044751389342941953170968671760462132103053917777868220292697501263776626187118202691577337845485382400664174781645587851166761217117949944185785411183365116219170276688951021920801250208954254184260930380871677373012937745903010536731949108162418127450185983197745006160482632578179959340745345663255509050720323501165301701795776008192713108269333563582633033542844350700299352147675015230718806090546204005432848822956118028975761563232966579483412055676635658751188032536110614091568984504429379087558434699185315115024664616897148810216497614989018926774374689027366087747573589242048211240708635293198912169029036466387352280618570963316433385167577790200525459268177521871880335641164568347375609399934512628125994254257745420289481775796470666610459819863110927254969004586275382556419764554348646091015135058286077743415914993733999662695040674016021023626030224389926969942810161963046308003747664003602074060352593113620403993172105915393636237434471678753950430481469890507014819703873518410902576830440326399964304599614248454957331502902915233731458009619428457022681815270044207885636185676390621464973932820082678854016620686679256943249413798985956053575831865399414412514302859463151305427960378297341951724568696618633771639413670591275871146169649568720704880041369374954068674846716267853345472214431415417564513141439334332169962429074463942560893362838702301811078140585521540319140170637091936144878009088678309478027826079066535271919080888999242926393764791369005015967776155847176660531469370043059013204782095928528114257346935918933708997071477155077217206738595371575972262016626116880645276368320295601719087846566541855124378727078617203360357182671210458040088943658847266697854001127103404724871589478202950344166346922012685876885612108442937270286255379354051909598529307653110322974521627553476197977727364157396993409074821235316221790021024775432800432379436050832446236649982027909193775948706408906146855660378777810551287837138284382944032507066227880408006688262821628778913911301522234176554455695896562476979552271099137982983315667994948375977558277942717827552880010811960502591526214605017406573819160025578683201634153986435460807416895815890467483749967173362481984120469982793585358309188627441934504636382067170711485197081210815302091077153904493249671568081068512528815356761666157377597523972486506750842575865984867966962072805791715717502614829900428344586402430543390043665557785991961657443754200145375962824236146262189723657114624124730001743672127245057882606011974190892930964411043100049216812237506392448455258510467060944811569948825068206826983636863525985842657299715926524970172839131313259108597303661567484876808714636721847434115323075597371779958506438546689370902117684023529167694865183897623660879979313216641175721845693985478855256083463157816541871416154564683257444088082969265793418306260891894359722935115580545914432318333053183958728105504645728867055537801071495487193403339019547432129354973370718880747452890938314434765535116149780378713416643865830633018144532600352096036036319689174685729327466303229011850023405283669155225820579573098674980380259430285161028398738618469368938105859584592863642788465558368808969883283306430819851199893061334281703490655784908909773114724296930049704141832416164853047992471886632991253702151968969783241573227474732148160284589607294186733092707943155349251832943842479109606209145272292609482703734883370021846963910390832526174359342087882309069172551757908006485189567066799942404853341982815242195279237955774410113914450638485480448573667477812361300610826234133858040052959029838378493833124066958504044583111103344674412947024622551407208530153899697638088466729503102283197822311160453051860635812501186751394880312081784808173100420672184448159890000130184034260913283148801896273052732489524380005829639733747802996460772781430276433691812580590398861777687376546559454534157420094381000121246020612503490106640657040876851330160851832655638842403722569590044118861865330558934049287373125108097400771479911014081984358570497356388887510973558731803553629199459019277297889822541346418759340992210958631635954309691325558406977379027677602990401344093972413013332841922555818055337222379319353916199658852117923918864376486596198064999991359332903577628872063420686311596518924493172036730454797241937168491392276125732899505676083503548505026128977396568187114940118419381727870283303681537540024986199582671305463106039377178829810891877355496974361465729684256145382167876118875620963472570887371225473542012622159797453512870864792812367072891856255265752184145021385465359734203826831862918674367477794355624102573852936913284071080400334587709787107677800243056825387839982860062551795363400941948150626427941398610459326797535070648936357763464064556789078356110624421756159554531187503603145108802080858808162031587778245527874265447139466883082552519827416824067681771667434561521501523775639210641808303134872517334815272398555322483474658976097774549162516255268064549822199419796737713653609395588876586412048846084800538683397347943133536111807043245703854011214940219814023119452231534538442247815077117043265726166690806240084179411901305829667262282753404630727807996498494495035682783029428570957913551146838362747601800231697733535021340346463877991522961580316793739867299931379130129543611648771207623880723662330325306618635969741762930533903344732468620082980761667019172311867196829264872355960529497723997101284350128326647310898819429456247777225235046800028118661317829961234411276943095409771449090388428623241774702665634239491929101906328155900765380627112940431128383444857740103906600221091396873327535200832862340513999063107781417439635607731724849078869769050837885266333982081877495341570047902180839754011309646323572372477268076708094282113948262584146646676609286361850921380925370500830266877885415150931316908157298704047186467637612316231362816717339605376713069989810450767434094006820880178687482115035052917395182999125214567202070977476416869823174150466531124011460285708495559259528148191574096508765989953879149716942719857319587058095222213168299795165425285857444390723856642514694523228660432134948564474858394179040694419228597817574750657882723804501569963308196289863517221947084328353736630539589158771596844861063868847043172817031296363583921877147332648122788601975642939529107342597596057103911130066300234832585308681519470752423272114161021034283851372269369268604473567675560816621622684739549562840830039463020016708424332953350927350343858314874604024511590773580484979024587497948279017416278091713177955934791190449251410722019547740127767813672029881273912579575103853800321500972281974630548988400370515469688827472384964777820753333823559578417367109889493611459983972039447377737267394301693689694525468376483986177571833740088320044674362502614805262158417341803113970285898174109607302467165519229963280360452168122309260738461517456148482530395599554531858644877580444829548349608287430927127137211526250523655047557173573387468505458813698958287449132826787674159513442332230779609003223579670526831200937306970205379583818162699230970505976230527947440755495575601072439221675566252398634770765980970749450710761249422803126782543272880837286455550414293122071581730788108438014713312883158539057177712156781465967001094126294978775224625080354257809381496191331904517514926457600363175769304077624915326923573611192485825656310503602585430561454760004398683144601381785175618660289190679053650560395708125653420653094315104301542494671285548077094389778052848622192010718587440562869055783711838607276737674811200343767914504156635950143114519769213960444593288658569971281652668347637822726760900502952307085097626319036578875457744144092622617990941699755826736606746076550781212127928955278385291086921488236909055559739873632721912212801703264623165293636684964658047541796942326823642960138478674384362032779037996522114372904668124398775675729059347893525281093368077216451457702250187979658814766063226015807342898886435963470529939123568122815144158847135064601799386757198614838164207964624027638348913261305082310538582842806929088707802594246315396208540168886329873713227534384823391306696623275702120569655684857593633094242973555766637654219100107588985356842904109481265279807867832117992342482237083904828272559281397823887657117762447043051953188236156962094728125414762373502918806302392720263788948630158484336013469879845731822787269748523305021853614464558476706065471027213728311929103176871026854673080283928943921224198686819327403928469848434374932700605326474642330391582789185903168081920768760513565820145906719631925856776804233745388586766368560836911367161381205608856625123218368814411858626882230052024588634323475187119871786329976215235135622140244851526393829708698611566653256293869387462829120017587563274093011272721237050902195134654366044218219795365886394034944827854930461017793105831712533473798020378580731006219667432961200543655825513574485056643306722882002925949363024660268641156712964402828457573506834628676299654847607349935007460901033177137234429342342741961897555414920090977693578530029538986529343899113112748362811049451114799710166462168836511868061250576720488662450619601903436139912263456562831400177026628693855149422567132723638227786604349356986824822738892789157306294952152535800091641042169656436463822588548688381382033396271856334703459308850330128348744021896457025782547722638880861939512826995119399337590651952589925814207676772227409837106339874047594683456961528547331464030265195861207579926624962047270982367337158452613029424340935150853697476178170931702559009407638268917994031640739594244722694582969198505681776591984527425627754763429113149120170183909934869298791197089221808793000007972579056667861780969284544304702155869204335377399162825802297837451791880982625186353990254065772972055169615727984519552481125620054622429290354009168702117639275410317094320861350006488961798607727276441293992367786858756330456957524609630144118588935325846577733150817781244727617362200607436969695100087185649786593415281133232299854307056204315568142286576708841481526160055909920436009473992991434964797060092472760888189044840665610736663916462969037684744275037353879725931337386408832829147479083213738008658378856376710669999235757993995068170473951935313067177378852173630620157510945976574978457670613060058495911846119757812657026770885698752481204960351280139279808000723128572105865760218504794830512552754956940323437196450586210386516235702968244292878661613702573729838119335030152311501272068478867248198176073686659576481512274211390311188001210547025580619702753501828512703182229609222879732460301440318256193482943804734384007854377701943492574673811404999872191344124031669020819022389883356916198875954165599777783654835610717582232639215563155798512740954558908660178872894347327431692814072910864907253889607039707038797665941696603787128662896864800194319066247616788784448370992346519340305674236993170321526614848659822838426754003517645946928529577497453080185966345786086956384692155905485919456107670247163969971728959129552650845750915048390506630916667954418451808652563642564908044679672215679658095069813769059741125559051936856581669309780922635636778914864937329411530728942955897437560940047117109082100172048041610830933611416241823058710078882117463461901095264932294580399913444205065496063292931128473651514200984809185487431809504524088709227486381755435044169008232973593376287382217236346492190699272055710241993657201220714507391412384530353081387114414848346785351734524097878329993487349340591440443417427892124753431513441230547278627565878387661120448059695285795205607418760331721916615118852243566057083031456019186188610283268923799032016411187638052259653992215394695914216516824662645591605243949336905487272316367978588607212953431911512549677432101404034808229928014124654717700265126498099517602369011478653386690174741126018243367862803590444816142971515041650228145500868022817699205764453419074606575350496000614605148179483954945500728693379057420325034651738118003707445470368231870627414980106751373356954349185237957601375356894313954510437871063969599564790764058691797666390731215397652536546369009071305821848738565477617904703679710994832840282097629066477634884872026778814993692689432393144188967399601594660846053951472363624406497679676653965840403872012248891991751069722625261291869198316171744636297975217768710900372702865009163392789986992300118406133032735654366149725254308924669627131178902633048075657428469890831586772527567267712940411611164852735830994928570332713137235266541245228016277843903534441778134305372945214562215302868344497176777474009356156309422702915518822047287117064341848971940626584362467266436445572170496790342259859324696309127747618709275346905876847313736230408441706013386153552071074218783484890679257060340176256348795187049019078984638520139697330052200327020179219380349616787905125502229832879298555343491965163814408801006932655334847100027054618846919186869913863387878521256090345696997381688442172651177104075407538939817265829833123285149609261318482596561107677519990861638551151396252588194847329525066500592351408035967931122008505990998610620568920483280616236539866576612916853697331334117708491584463719384945662532300989531232973961557413132246066499729085856576443722696109016679305523134630599469265384617519103476248207197437791558213129138158194344600365566586533909057131193833510001214979372906818938889339853504919543885539048712844844255330657326655956390315253647978068230849789958223964027724833925170600086558737190836048146328127276791052955227031675003387616021329025921869162671345140800802219783019315389181484952061889059919172640315946900778308156971967303198122153150767135890745267288715876751641598917206968001510939073025616501852343445121878096057869372120493622241471633294502489350513519776746320095667303901032115370192377284534009796327824325231334139203468358357825736865638889169669269267290764535367681154655326365395994450485890002584166761349066358313201714248851594275467773606990110333226262363784328327801665879622880662797779097409212225528617243224527026615468224141643768852123141443112077070216300609706945737872612811509795804941221587088006642664266268115825902223409484889167548484866914981449753073147162226582596329656247528962131174919766099587182297813899359986145541953834946947672808645106343907066880564629502257054141118937880507317478658799710326576674095128058509765047255274750473210328549998981820924370712326127810540416807107120796085879667757345208017513998706032885209837196313137845772646607623521074694355952404359009767466857630117593815813082606411213136929451787620415615207915815413619844204764013855798533274748826024387684150008814894077257579788681057645205795415062833290841053274690020912524126671174869780235925296337440345698867422280102400001289067766597202860075922323818931012112421566972829245101328957229446051122849255911914562961814604294555010745775372848813987412410891976679232591778293034923021334675163048267462515361815683812531959625919590479729116997373175716183181586617409781687083180650416462579303400206944102742054748282172829455488091055558929961513942441068667681618949582738993459443678698282844202716344472873304503291818648110295766765824295899596418799666552575764127566628229480574086523349153499703093503240457836386624524059802413071322278966893153597221952446719944199795284723497430125262067792297679882841351808720779782606850245375165876146201406311610785355873577861145726354418443319646876330337423747400982791806153656275987295977835926288924117065749937137597796289186871865679675279071241921418269455081327980240974244251958789471617106884382434412616603892080972565590222565983734187037657366945233640177636873939646208502959564617850979473564571362309684108542719910764867664470019583705681490848136742603841463730090317846518933161563930244210849487425709336013373804844204859592276410325988740254181157052947998437700889179344067567852181621124986244141413804963407633546304993358998461294921916211137588246591191129082081717932323653390470389789589624129515405397740573168911540443687147207754612864784690950672916050934879776605762519497611374045776243837253883962876271099340011140149467575851624615685809574078976088304191677823999041839204483443929468516002872277627071095874912041393933055726407024647945711604709543662689559431129375823161182504262836560471090594111077106304613486407847553352375962403478220373823352437254116300855383701778623221493751210658524677393296630992128074767548317525207748785898428676960423946322157524980510474008232686097261498058024646266272732875076706501893872950235722526306264810113093091522272960148613780616821307965659420832824803195444674354618089656797343990981130619525699393801464865501320039141957896988676510606055225018765038679749703207201140767899841302319865087321634072412831933858912358794528754007344598831579294025340366525756123905805749789372037717526660356953972691065043202847396254275222729110964763513595512115626531063054647915084668717021586404619070749763574841039641527748327041673922050577240034848195863313180202778965722770590867124171779147766783562290277950738610482568391474914090234099614769496002893405730512351833648749114028305583335958137280632981018019113805816047358814605435726287607746665927095679460662405793307051766450082224878183851298521484211321589375206199113148269204268849873549123270286320236448927427408080340169656137539848969716149329831823501941076565453923949183594953032702280471771942088804675411619143227694106205488550361359766911004393082943177503782237271127291758227295868214343325605999452401440272612707781003826467938188974921236545891613021853971793109199950990064653566512110057040410079621874231331196488371608890755951438386616345637849988551490154250050980320807876552582216993530792601213391507145365965594893240643675682926589975012488749226577566267638683447791197919206647056339266528569800471202718456736666366070126985461123135507083517276451851144948534915337552160888807184222413390525847745327255265581108761739783187835974855000257872124602124974838127248481102382052320214403825273241587003505265779150995132631115183224785467185527335738109532512500022436632103596401239029909664850228155868262940162559096804185975422782616582342084545720776683869074415882552710663184735974707267039202606314695981357874721093324246115897181695660127968337576161595776757946876808532295707815457788731217734486874312460109085102779775278617323147788209493912380959298895874215134060714874915403377867397758621852403620467862379774341738804416166287776445587267253940081852930536511563601175080735998317126185301130647253974937316081581881998513445621888026818765701455488580143005391501032082342542586317655022648291822748695959193521589760958089925663413305040045051029555711295047214238753604335659202704989926950356775095251870465133608457652264368898102682512642626778738699397275183882371166520668514504615112022815671838177103809584698460864474200981206872086320891362766742840458874176261570636126625678692969942556531248331044868124438338542502530817335946239789013243723940360652514253250606666465532855115155624707494529407256207509463961609351865537429751726679917609167616639092742370889440065348520716159761307953366342830492236281657593414926719247451829187784748886264012577389098976574855935719458952577717993266103967566957827075356277504080450373553340009011421488816281568698210675321318094858949103301437090623850783856857283814957903924425677562202857523554731478458785716827660533781139231307120931997984930497302115818191905319261139360886292563839958437064187725631007548945282828693678761290140388575757221710376719030434847019711353853661461333678393358371435164161864592638721161027577459203226602770351252732125167136282756656293214383341501637980313293261977836847997473977751609076316898248668964709471511723691180037364588729567361559186090082900981996614923667398147037449029258197281520814760845171353482741092502260368926503593274920027034072445124550701902629063455767440176301325841763664695402600862491598155311968519686245214294697037613144736384866757592252574637309728060957611652438467465375341197204254491381958712787914491074897725653720274867367725406442586589280890297135910352943790993187220839854024085552734438352706718189300758937953901040733018135996745662830081204183560942505468226715988704686669833359156739818693528369478655229689624771900411803756042220765473896522346448552095238654826850105265856512673913376528263788322937411973658239828126377012228066360661016190255634493598863074060776063418742950823157315428806305464649983326768886559127786047251591230748807346360561722584447578049614814119701052415440204537773619943633654697468075653114546387718555860102536047625100326787430472972801486496119175503070126202381651475817742599344187882895106800723248201189710264376166091319814092689187443161993053617199667067139808287010516708415243132804460354319217328506889377570922385411673491942781910507624586322369862788840964094310430447042363401552797578163460284277747801744911530456065732210503568101345179509891143641540361998169566105385199311931075453992528140440169857662120656825607910317264320590637334364196992204938036522154256671669196377415419648128180353090533759475706040222265052020963136550428482033002270771993113483745162415609195299693472060765481411764326558015807954243234622481728002872781094993363022035843571021037122437140082956192646361588916430417983188299559038378189818521671060052006620687554073900593563305565939815589996498129575844976784158783257931044803551313282820939955813866558199161404169520283930812038648881613800272128441362114251192534689062949284676173325919925899859817018989121999452881119853977358512973289666021772870616860361826679435218411813932614233107443957346044124526760006116694743440172644424941071541379493332509888868869619857780316495889052304517163881708731653585484677078447920907142046327505760160535423916594683334344377863822431339654401374805784812458072926686016867063218442821352033219374005168923517736506781118120317600641382666290389479599557683240482681961152313038484132109687023160152719216362956943381626943277565921168541667782309688870619879913816800572794952380179191171175615514544860177440646543441137521335580403213896486420551982315267741486894257579887787895510668157291447794362302217245027913303023460715845597689508944287138722690699695825654610412388631794345023845727914766233545039197838381978019153537437506105298109755400039139570844767854143335896157591941165385357413905792867584918514296972568510545013524142434744858349316345888343170566918613191493450990681288077693748933118854990468577512148001427046808889411718991919503919810570109554816895979523353051939615462925052868625202442818322970054293753879422008076420140778384826256150773391516504547172782171019008039128590187392533536021727265713582660460249911056579726501386548224143916676596082620900752988069798830641218785828517246253718217297458216238423578565346153778401773767666111383612345390245715694606213598002494810780696287670182367003248161978577977020859590408581498113425872072744135095019075108011450279889044970767234539700663510138212467030904186103755601590682605711531230674698745256961775019060014939624061206358740298383239827905830642811895089796666395614684339821769811794635808947093090627024516446598684270340032107521035539964985197784785545612474919079526126839169707922300931709265611864288190402157276893934030762238979107733907108845981000585567790329581513061695228399737173295113419786398759663611852900210158059407035221845183355841087774345561765689166021319064588220552634434677698459726473978807441450036587172350264755956555453474008826428433570691380721123613286710524153196202491806727449763553728674453037109333624278649349957546302128484926171712722412814302594241758079671736031812854864609007543998554049744354838951794188481172724984422821393210878447977851064872480005708707406643678540663707999096323334117196724406668914523717194011579334659341596161083606094416263553373698747191143191149911869083095940984760164619291286829283082160789297109161108402722245215104809448626453357570881795106037303578378317377760845838478798394236638055776195748237845556101567459816168325501801150257876981934686608640925238298089076084533663153765538828460729666440882135580312601578181294642267611010388305399104360339525692258393920236509881862683678360870943000822163043653273774971274993226638274647249879663295805253878552854707687523964627430406961187373457449395447908016418096527904138425664160507620056855516460812930261096713796277638025200932428092680869722422470147930383856444821292924865542761609304988292739320590937484655486197282766545088961445441674668921867287605653449537328499016433357384790410038412613797489400539634374985194904149670221230168535615001922596419298420921735592305430152833791670780354454796745912228407319243685839603128976358376638436912572858376087275869086723672238002141780523293568122778380807072805434108671418951125965080858397590758035737119825732321181927090017662654130281024993760970628015012351151256937996598371745346769065066684036611733782491455695840224031225410981033339694727074745256009539297307961867819664248729323627921974785863982300344429739994995185566850570631389310186955467534261237056372437763564626590354649817460846459929956703371176537553672913303398749492316301464442054063320048809825478591747776472448088747916952319485855569451430745708337398464559967250677869040147074565874404960858399850049666714333116927793319330511436819742290688701335971825545618577396230263240430880936683352953925432520532260521526481320617590588434451990023494101576313043526596227906062608502821394312584856792913335723024517365913701419319792756199186410105443068703460061926278843790260143937153559683032715101853506834264451232133358099209529393032314804471814353676179458229106218395391200765650723213707584096869408386406939176042231624397662999112139778697836507978783663785687182503453926437942270675951982258193365498263264491923761854358419098447529735903846061179198773376011071832997872422702040720694249602956891158121395757366071192135240290119474989492815142522273275851769739644954150333668788129431384472021850990894160005310050165454575823736316494671224517288538870865895683268855352488461136368493679802327328601117224346238943754691367584675845408226278236881143873994689327490527066446020433364084926996402528571301540626418202044133928933580029350596540596842883021618770106564682990667601392856797813369190675901227838574255739037494149917118289513255035726298617198055431040477645353721007950369583846375321028111209992930046708472692649598375636158184430308828207058923384004696497029584701975849324047014870482541407214888308321937517216682244604857553712191732612677768375971336388627095646003681403382567656219668597229212957417768100844996948196568353586682382195515568318936076927179282245291584355490947301061712435112893106614899790368668177756451500670476531860859186158145574964508433152022718012818132368788775782331942331549878010248117979685744713896015846674333048652887826942062905364302346721805920359185626325009945486468741736599793866847011501909658735415255140477393519838569177026409992014565451158628566590141587844583063308115708685042219348049633921601594623147703816594637241879458922965210286053733472933540483844127995557643084636901382925814669866318976552078815195173089646456212075846596610964287461478541613844405092325291112403847441247809329139301839169077031436803749937576470167068637056692325697997143952400637676108206727551275832751250441018119510228766014831119110932945536312988410211266058296356108250112045022780509041721670686721414127154374239841671858382239753151630132306636219976024899281186448835861729904979524472269937645572914155617572062943188250264012133632627785818364739758476648604058721978198307764359869794866408244056756038421659248634293420010979216151264043611032074875878832251650005384839279695540888377753375431110835017939655375125348068221220550099312450336318985963789958254507243703966478845300598172999149882801414385749282130012925092446422685599008491559242711936984591715552909135226973723743185084900006637851255295556052597213654249145661938183750583597999850465249524624264445297193971776243927688770728000294039498162560167908368335605267390009353185460547574506986046307462053350825664006958321936052851504155603127981167153140759455561798119114487982202153554577707895502369463588596522187372788383667911421846215911256919312029538955395652047645521395268479305789000301946989829256163526346488248513576992616879082808696278767121331985008670774708807270373688347675586244941665445233456795957564019029724863274733099283124024842207977422617951606845104640400008102929765322607199013115162234946345728845634279688582673531858548850992765025625040955988573850403650571741828153336029678546216875489902787591292878845125180890401185336836778130691306102838883046967177241529616526817910963803113310959052476128192756063203107940603594603102877662919780456889076814442216143699865769589885849093707206128460037576566769181707801987952903261821577326740180560362181496552803338003646535629537663617780825611245383327793832104408363086406559220020286265928350450800233779871734928767667278363774157241959926910354922503645057806903318242438201213153053511135025013613701348559500361638379942576579694093331412011313395960653743716036898624376097488798320282092243908741332833855556330789001606727555630289714725156978114650767154921768175839684551663811986572976568066870733986211491483276339369290329892833934206622627000071132546672797671695314372844844668620262776937211168252052446494411342029021465254953839936511969446239946264483676162604275258613452567796870492323858382647367871126999154705754468064639628638263322093469015718124761002474558782875173219620060694934421889062390570794403853956040466388518904785115975502910924619331633705072717762288520575282520170835650125733194821153364234201950004383009076221479115716056984654045130080179673231570559552941927016298004641617630843412264694439314499130590585579224358988248021317800095270978123914821305992541732187922919082472464324530953102084784976610488401059734341568703372925804809988938782616095966021494110458854674115673248892794410890194675441934860732802942731290105426982486016961260401437658976559025217411683421310251665518467978534945323618329862418551450596713387020404660581778238123759831578171302541977932778491962129499869232926068062373268275315157765958652042808052715658110957026008771141810146866771117773665355311422776614264458583323470783810017120076781909581998448231774244642550673365302122593214072089138649727574328086010052572727390751472821913340814168719733601430625410696017727158181965072260665592746562255348469210228198055130030355875257748594525753215530716485090954500352439607384561193045359400620036503932978603977850750511570965968699811391577787621311490629206468460444046578690449517446015783082269804965403071920906351127314054080792188445611764844303878033690567399390776374543045565358053513200948583018800677024437697774678934293543871542358785829413745165613515268761527962983468719702405769682030741120491263191202508421742596451597099292169046381534960683624050589546635216981099629856912104345650787082264721233090513837629117418620315442837604006147706313302080044083932629022566785776808526918782227223556357803300516534626567325848536827530236194533655210769304755602681274551615881476624570266934454240306582602271020021805335305018967871399293052617037461000178043164052758065055871518761960843926756435951560429835757069542529460155645401498740941627793039725985949985569918255747500999730603458103035912583720120128132255581228720715424154451795304756421424205204991294261141945880455621568117329070392215899886971655713703466736134727679510329360591764852836874513159310226013146330332180452386577623500988149429142646933931229266656543268717202791070990809739633256187005566480154368397972297640300386168928991585651328367971854768430572515716948482199540609208948935822331149093548598346574012591411247166777275821466695727461842937485839762219247822089952694521503651892549532626377183375562504098996300816467768442221909964672876950068432935498286729667362876476095977613268852181524019830921939567235654307280178725325067042965892771599406195707805625577389684146063619494882879047665738378629441039962486847851798015589533540684945658149775039285467982926415331982935021112987162898954256134772028419064236725346914676197474554778061925935795416255753073737999485350554968436127955501552296727308722091906285693874794039484170665019604481847737641815039699454517656781960429051393505634901837896975687515754354539137765125389464260508825858390525407969281357841615862345467484023529515438880029719258342772658414038188034142265045032066349038557505651490567722782125249399959988764928993900124366988695258665021442072163021701626407303254652122136756869514298296860689909958362444338250520923074495486202071384224792683030707053067854977151992625580461943770105069899926952193322702280768204252124433495686001291668982002902460850589724259071992479907816985442513126646050660145104451516776237397946808490485424683196715693062156227179346547241689755763763694627007522203623039670975972976935762845522432205286365186858944804153114385387360250936271156777692095949625311069007397309416948500793251439787744274898481376931132015839286862170881952399046112643824079653887414705617069848627096309174502713556476094738462469139967877435468900660765933697423880803244013288994902137169672709758081784371932376384941170424429091440939440354900501988549375965900910099893608781144096713508899168052241588640131886502799742570306541001419091944366419795254852757011081461157537844912944797542042569446946714931670583452282850401884029621951600408280401379671563056315078656027124173868692797006953486080146127534887525807273386583145752362343724862061902253487427785139777501454475471262207832613106751860414389567694170759207691146438975212876824701420010896146447739405453793836192708480301199732751761341916077767423459814716705526996724995567640261816706513667832031814533277843815184363039421193391530220045798852553547726892987129543710408147891325856032533362646956461230669162634080479954959511298710898564470357938915079123806721299562065606340906121460351748633948134030570929180351882162511117615039533069765316425177137478626495489412371858985795734566540432000073452280409322338099691114630013914098275317858643911825374154404858723395130112142941770518014015239473492235372988829518170762459943434268179710880736617682254847453830228664735947449870703162433044749831613331524306929059045976722530065825925613483407681923109526267094716356976248761927869526583146598913889365449174765195319291883375298678303833528938856610036771231500571863080413363349468011152896827546847034589140580750214560705251386184897006361314368303996224483292145992715416414617134043533582550978303751055109113625542356272544867370551914912054077348415044005511649660170029440640444229396608001300596829225658497377475616566544334430801178724785656681455297232491785809103965954231504166171551394234654535314280566434976612734304187349776296775428655020621600274124088363975092515355893634165234706693800921000592275051047267737339356005346748358311201830496981006346339717356271025668293089964536513554541115898907527469937179951465929147810696730128043721672428831858853756642821706964776539118672409440274954687536224058310041666190629408919019338519128002188654686682831414607978776002564771984185211042168655346643121344953227879203308634599913512382386827839210747959319706538292981800525058009506220772254178350876118178500729558390190221939104445865243722877075307730031527897872870628713564501188747996553863296327976510548558320627346441489957243067526739207753503056259288692724943818574791805693135309212432951795312300689877365669381384145173402366798565124346550611501701965299673145739438703286274820162662440331838364789346005826493768442226767078810874169410911959849113012286595532485205944553792095504837379976791551499135715268470952881876726737928241851207158215733419977684772966668260020631820731398784369151435301177598469953002751104236092845725956511835724517182442521609898069863110644658456295232041975834015053912406109295453648542436069158866638357916716507407831823380656995628012853399848970218380819320349960054837129547001542954699922757358348471961581695999129335911062767916626568988456867227376132435016795676222396321919323424547853905462472379901206438062024070051623668257048633346343591160421608934283221827329136643551647843878310801876934030396100800697002714169769056901159901492099409853545598513416464050820336144507783496717811344424471901972645071118118513600231896447802769626679416582118762197555065468489058309362912736296522435869764623517296468102700624374682413341537875867639792645957885321980065445688377064721730363781617351706861142101361012321987705257384984324866839295429092655693160280579004184517933336353975049594857394605158709359371701498041663193100176676975498176350478607586411194685008706143223619949623000134016110766916897030493749884546646880378184951736788162222096089975576465597161160891359352517740926837255255502650787922306159305543669657093650090666053139341083578452315306005751906386779290068546235473494144841900082729071559912201478767139330335484715638731426269867810465484624089175482727721701854705853434643774160351319429622646613258349439550227657099371504670490629103286568806286822954716905598255096014849470744011740916616894361146443717493655309123826397130718364992300963877663530025868946658970072944055139468154359670055385739472160377458998100364307365364050286184632093035893900310524529478387521435699973264407573133942189392823240310855584744024356646392576406824711237308796122065724675917001297668538078325459663032625956479905823012316940075670262003736432251139969298638310680828693500639602352036658350097846166720185914178538184367457541212335048212042925644587699268287134411487178678885174022754753055016980063754670868323738477103579319453294519785795739262474447505975968806675552871647640820892274475302828501008178882655562936135199779330418188934254358778670893645627237574958629592494543292886356213132890223502592866790407844637927381653218879119025285964209886690228249001923335160750467445779803434363850263335717388307545741153678987804097444973057696328393265085673383701785580785873598704182032021323657969243295848441334040582902089831835655685899491879935446498727016186072443243100755139633287808157481447027034687762786411985290010496515212710636273227805546300669309437689279797818068156667303813770990798073579792004987110633937901815130346000681132786231810371782239967005681942254345001088886429223759260049770999119092248509645973695663008749049421779730252250183765430303253478856609427554986222058197675472562102419819257040980603670988858225289380019660219929356201637137910503981769023459139254946731884737931303490309037088169757359107090945287512747646847310789524933798931855000770169539798574375935466992840666887533525416806448687037740655926340090127152435686806988750339573053339657467436356206011845869667296272589536445793680166946356611979049126630251891161800248052579278905451031532789244723955624396923440680042337737739127758612515743563486218885491287975284683061171816637892895220853971133155426732897843671083413606866755528465680787070457434127068668263430695367591556370113793448505588125438907900842319997008212377698841741212434730000057219954138638935305995819519499352853014924941806364648300168047050721451150845933263185765969421216785413972802256952883750896457294795470392907246192677269377742497642343258322956253155766415512634593997100521557282490094170202871197682798642329229548201046784761899266576281379435775802894861962369302348502341346868890095014512699516153537863419012785933516360780635228306662151236802016665970598489923240001594504840671875276911040828280037180182860052668596796801575333732854681720676934343650434935323015166959468733512515671694895702073992941072437676692485877837558838543911479479230198870475720785849506218974344058640202706890579500201451397140673506711148696512410685590081865768508514783294070965518379969548186487971698940575829120186500859026283071310993533821443801436808693151385428489146686963152501432740657777478258780634286289948850983222066234346956798047559698973821580317556553475315456271604310152082092022166519677294800957360799061186622109094303648782044054220326895154945125543952234460386792563478662293371807631834467204206064068273398407836087735980826400734948177011776796203078088570157524047186875115428198191922122699710423998917721063458059765464024310552394296281640457905940042019891253303567266931062080195077993259902965136566784943682990708965607513844973017608480197499532336548108375000443718806526080140450819501453725508657602398647341503865129733993758067564271572726690130051908934804445006593548839017607401908631469514727458091321281785652216797227982074900180242981133569999896317019135007080591803550930250933852135469618233666210050214435338891706943251956308279926793757355756533496247514409921618136267387321273573049181779923021466265510138468933338829628503928188512019216451464262184987513274490884140428588458257560671871014976228740519108272364399864818170008421527659310694410110166572075541448979751911857020832353434006303544375691266046428931457873532417572729606036997433493014955071862744550470363309430555228961639551804238957021898987576277144950593150359527552067015484520485344090731342666690086054136778517487068383825458736782532104062906759840649528390042923117473031392275659624145267745988905928690983609145225712874192573874803769221315594836815265087277028239186171383281599201125871389066713199271240563244833764167313778540679265133270611336223462064426811622773562393437623558589303160590109489776220411882098878109737585859100763675623543503688233286110985450856831001994635715889141126929407850525426991220909135004553424689847395867101881610052135969513064964663799035419250302718130315741152258765616017030771779244041954433578371197336468749031323907150895732402962348443612022823727298894898091165043450958434280297341402550126158959646037317243027777228662549144596732223214797792004087787932547827778490911648635155121863186795855261005274135837608769198327930606377056738797464892945206415141921648045259275856510873029479509004057896822980704029104498201631288812800404285161074610192057494105468173150414670610346770190708265942357971454465075840043945544714017143601491787000942040429584997561829626738273392081733768967386443401859475118393157069484194999197400566307053677918085491863824746316514836538901936766854372892092250453224853382894101887784572617936617368289934880039708448988485174277633997762555244056231038756795773546309897572955610920875206100367491389404550378143417006598854527881749035444199181105087418738723488215247455844130371460284398435238160480061650635994311508784662365209747492724452551109015840602398501652905048512779169554821447821571704526576373744232244390190368743731323834386394074436499778729049352327559573120884178091386901207759449074213538707392371410537410287678812757410906045071366075196823191575386820541185773651797044093574433476517375269949594809134368108590289948785472210001039537084986318833232539534582718010224304144304636277279671628289666998896011069087848821517981547037163375372836107272270118197987269243673270435541069971385404539507154716994555972298226680356629877884778840828370034363970017073349098575826039672000111440209084178093596634611253966268245257851623368744624509957240905049040236258406431862162882577859738778124529711167171249906427633199897377876766138046414211878384329998808472449347486123317317095802382999876250490460418529412972931261565464491227592466309555817884849248455626658284105445887419814203195913642526344834824971297592856000692749359249210913775553291762993197514526477645405712137363117793558263907561123402787176156311539520193706261968776915967844759879257868504447814260091553625823648381072245067559627396780722659031772360055497490392344775915312631583295381431849066536343752989421688597160359299027589356998968525227059640427774395990170220334101818650273547952351505192075320857939914224333439191723299325692402398432911488429195942567457719963938203697578821433419490893037032884093198663704051330622761286495310992445700776141421058702354268367126963775036241357620907551428872324471626841583758196610769582116083277825697778703931667163809684541140750992117023214602172258512215851456533234336301093179502046222557873816451672991401595966163292824803620155300181916914776328436527693583829296864299374886644180118136748674001962949415831039506998159723276713147259913203999672849605582094876116317618993759602331005350933299730906805160122079544105623150949016749857452972668346904181942505908603313326895624644668569452634654263812026489850752386369687699426096981843231182479542895230530903926937822703408528541854766121651612812175717937222754791516616042057545030816545902226848297278279897626817494781517334420991728937050432483624727456243953113742647702958171751822809602956325571547532571747893212007369637116894154276265506897215690725063959014726594086404301285592066339107728477475784264810545558211795206878191871068620365819661066134291346811465368782686895483727594270232255783418351742986626366661754650861101848376579870709119339134902534902428896087278620627334726912025726775704455190113601807900469653971851097167063943723445578496568713693905603455417683353061436853143512524017198863692674571312838693675598415646144521148587405935950566713178721053612573443444364439439295101562980417849019704271318726752346444550111997429043655180684032461037158782211862213343844663787286553901701704309364458762105472273205862774752634596278130912178902399506693628942280112175852202656351417808960760505815157268130734057825349347305953726948633295824737388542444501957147700978826914511984065818404848635821043826305940126207614032594825917053546269979210728240818575570032453209239189158534653436081711383092901112461908180089233086505125053127114969423372205375491685655200330383399244479909656405580233238958507596783948015244994438129762175076944718756633812711697893073874464356951980865685207569056204512934395391095518839851657683097493573395110369421800074397711007922657457246376040253217006571762729316216566115896148749562685275502518217645041782365711461787744789733485916422030613274571385742796927244500999088793427941173208697355291881874077724054577451263942758163375631994815997816218433579153479566933967855115085140674605886867364909748791996662763725504439910697160628018158906288879270984065926824842862547495516271236737200470863067201297955398402766233494062363943728068336282560904189367440118834759742707208033098025395701375467243867181463882729101149711637730027764804005455057348078416995317689629083143359246674539255027488009410938845373993304155535420325884222261579899964650132987364903288615855808673983513138702626426197020830214451399607860447316348206720991062154977914725495528440903951038815835251354985841513603117112529166599570682930098699072789722707619968882097510964385703019566080479180325638678679864583514561810269034193721930461312801353024881927259853362304550690536963275912017392352143152584981844192352134408976200170096639715914352609205289788657523483148773221990813543435513683739809853330050443418357626584091085841436591560699025557399108327882450005976260099095681441656183345152490641572430025273526527987459410866544667209580734843450006122409166557824719218602622069917322563980283447441063687909226684989352502113093241390137539850883494285095997116747814168784025882431835461879529305093708560589950330310922500645833913313959413568478223684442814110616149184199193210823098151612830517053498085223629465848082554435880840543355977970174308994315443871586215270740422326846840041523626114623380899948054313058706361424762668850332918703111003038018748570591968931685969595474096870969095219160346060491227453227765366855896764780393494762596223966115849797972083505814561797618371805776302595720441650437126017101727762929968555396771422317019350479328336771412598477405617291091379086874017124903706987156472245602210121936361788009285292059301091501109367028988621588094953771451389742854221972887786294932394204151272965651234124961082038555987869230923636299276925062145212856500998091678159490970048648009622244407425029403815142201621514720341591346183487720263023865151445047600075863225100822865985671167185992040406818773904953931862843073158298331233151267833565361446313859110676100850654827234973976438721639391452065435346698244526344396567202892320207692717270422904168628609839676609356343063931578998575459351145848176044395604285601145836290187157957572772588304879998820377652729510394405925780691633461926967671692000620801210400956092419444650735803827068306607535628615574864955358876099463478519013284310731089613603374751058699560545088956508594486409654702194019369885306690285828927065792836145121887535638387023603394085659418662419430231399853049902603206793632942288488359574611458419270196667384535893287372900432636610209363803848901094580705115291867302019865969690123147933870115578463129555895084078537285430662825733889382707204436593445009808033015235756586690846057587920888981647105175175548248613424999781135359453962942748523690469402702177100089502404017143811230822279212955196994040791925910451356292869049685729426305037767852394338168496086237327437782149783569445774189015403909634587037572227411139548262885707311016427993135111572723841278061734900058578446203169299769944222832246050118671576953623296970718893262341863449210583869254948885396022751298969006625931644701489356937541901408689598695115518720591831794064767699265469058006891600808742411456676593645947913471780663987508293873343961467959293748019723505450082332417823565328742844713240966901049656126043390249349562499469700899300757947963213098064150160148907493158099996143125349568650533323336764112220883803485341655642092094453443321470619960370979375090685954656265816542505295632086433521647794913090052771408949545560878163080863004274949791977712643650448436777175506915865204735841213744613148309956715467368567931105061878326897950971482639836611083089392852296301530709293286576950163870628529914878349461750944187409785165652448095178256675922487184935572102764824459032286165051870017054701258930850758171633978587738489830682170761665626143425735574754588246856083186776802546341210599045972042850898291542277685721963164756080351291417704485162829649796280600208038571774615502941448604809180752379172292593356476907031840480854226610053776006214740361563264377680345658294936769494882694126861881661834778460972241900134220358255913261875421483336506051861833059716489971797738598388772606989032215212380775990689259637072729919609351058519681754681431502275898326330803147463806714386140100875562526907241600310907402688600360211808711807984930928182459658624051745661007318541839178839447013962967471390823018406407695690169589893456333285892103857533091077806673595046430595661514971419409002546587929740751082794214559736319133052306571403117467950389108220838567756232490171897725741184273761298974657518541178645236469253750287351748759599585350819169552312749012873807959225130378294913148628564392109976962776093795443485057685048638240832145700348590045704080135084667621776828703088373720545587274674954920301815993943311027284106775604366039175238500757885766110281192267240087166426083198856155594937058104507542587585921110383534973744133519875801929110493180693155527088894726227723235807863380341694963380147227466921248330461029088539634132944032389007733953102286004419644659506416134196591182873240752412455794888386706872861248649793114782805800935429090156126433709961531083895879539480226860429739110477447080079744330680363811005962621193580212272359679945667837824443117038430583516609765535963777985910863651471741723247815570095797916189531683542011348933959869355109182894249540596131241997707606027828806034982628276331658413770053182786820016520862368878437302285582614313589760627941124546863129865663065716131678749314714256875719786931586491696956873875515492757927602207546032876228158988877030024184111701081635971942290779017297449584932570016473504146317573748500719350052081271670216681448545818059967450671145869040001134619801522556873825641303017286298429321966811722297331232028485007476023709780213961285159136480581770415307270762679229399309918443244448332106743503355057964457907024377076850691149810713838612061261647311265219965927130814318995768144163035422337656836210984320561948161565505559415816575378696299112213804274020605204414322235700574990785167922778086061081336463520368593588562857183839681867681760611362543300132100032499857829048776740205880235980938578577915742271850668644694811427808835436463438941727204197482590314828838451927123666580939053690811089187438053401059387911704318752891951981883159601189599596861909532953547062087884132679532932064148529406396233364150352769975216380790153294370006705317067834588018212195829723357396228194734265630922062625569079493451904207653913822761229316846366638909867864623668236509528131830241088409082431397357133937438155924850809320970012897572338006850026817854744207477855834198502569488840429868953030458527889977991792445322788608091880444545770837970658675334886234357756452866918913783236120672867448720109526394816707788044531524482429194808290571910189569808659018037707494992668911274290817866244622304455076216534332818465960858252484040058174253611652384125593371372744592289580625550147275519218073377478639300792800447589654070241227940741879744686015023225937574906542821825734320905875039269403436123951590360361970435189826356741778237475506754710249579136455804076327068931605909290949076865236393304979234679232533998654615080849558515421346468037377521503057305119330477201391401124528139305929359242604459335992291414974072014411242933771809331135990139688228493333996541474229151146008204026018419016770837090783950453637975304439858601487786799196421744497034743896260725902395359899918121708616710312421065140090102558217047586950890891327293548883871205418582264521034139915430189343045945807344826016754496903521576656347261590609464085307079382563563929578179321139955885327262398213986273454234526108867781378662470121926616589008542602853718815718251994323517746443606965079457979297882709095818670603580911596923376302674094312020882447191318083123709211612415785914275698545342449451368114566611814491269226477079407721657984127953551220216618094665133625115838908032168646808759083484166698667287641661658868811319641113546743519800217116387642801610941254604872583843776561117854951121710018243020178283052250083691917282411154595599981179538602964168162314314835921153098066244729397192244208598110082200076339899529129885976752228424061590875537387823801276885265339259735572315105179656167124743564976679287825154781535193092720918867081371613202630491476433374289161431376415106111510694698927248932104724595678643008228164953468615306953766329798414325458097952463396251853823510948579902107274982260009011960087763956463546966480811187535795354340800341794786744420851448257613880646681135811877029107718263903357417208903782665030897292716435581434935466533003978376525668213724407767462988559434912122510209192390797895777454986394364663065436793221526154339078677325204709131688751267189896942762208467751602304972241653443843554425086104315764370800248773402133527020474625816101439823600520658151948232584136935661164043166743914765821784082908030474201151900798474017086997016203168397748904965801868716345302477225994268937251030989265119472716165054243883073463933301203519264289183735095957248233259019176471936266734077202030926373476254852081341943254740448924384862155481227663298621115448013529944663587893814809664970887174714914412135004043345791658266056082261418768916788089353855622185293208127390955490687186571698220265109328286041534909190301199998591233721531881169135950017456566805983244355032594065825672932279036448342666789073529766473649629496699214024686918297683914239985931428581656453755433154005003392567124086604139653855149821156321572877720316220481013433862993701514926365485806064485981927531556841129522118784820618438306940155838296073039943121195165298701212644786743772073111501603112466572918372928337496205908250673226680682288206974578564821282959084371057085714790791907171728513525283823301270280993534117238289965207810203926265963477476668431993598977004493073706993718907265758717078560640187196812174352930437684715585664100612654223216313611637587105299469090688620086360408671729412190542620364961726823301936967094725216352661730714434795527312120359716713232365866154377672425720843663514567657886612827991331145559410331355572364776018447420878704583699456949353765814067223095085098930997808098845358081964648236100911896757196975701049914847178691195783587674328924939973150775188633543306848316327476333774964266527136515040563592458078512712075845289218736095881901737433435615738380407573663608384426077088460500579305985692901758456317775721338147838681913377885682889901228138206015978656564669600409774592289081976523647074277165589901802662862082296946905609363867154140378257560422101797880984597122484345884935018963756025317188209323668270558146075516472985376613657282706019527809604975054246924446411644719041858473379826246298419114388882697632434243065401716714198578846596071413281637787760165178621739745152570600768139269946156533330848228493995152032668754149829963889910403276225131708962375211354567377974827066306546173432747059970307920621947561740474515402688703219152483738004637482437165566488927865297300445538405153638080583361104695830777241255452550144112703538140293251985577583103824275410236033940574172605479370534466988365173037564124587820054690878834168654098225889940295140700664514029897713944042336581922048811118106892602355382331513194764779687918827230861236597783715440319582162181049891909754681046223072988422026132500227986048679684761435043840534870321951199152817574108676581589960673822177525097680822047960840849288360400530686388085102488641588649499774199862255413253165914174127687348180934379062012509561090885883307415409557250334247389254417501543659195911394059298640801958109002485478003911391385768970914215564304890940862164737383196769674793716949445027466550478243688005567676208549356199445631015903404805163057898270296498770243787861496956559759285592710121975262416047243322498768041960287184886047461884404617890976862610493127231223020763970642445673262060245765493039062685613327909012233000656466167193226164503463214014224151700164073656226280951295130135185025280333271849550621060271663722042509963850321944073759394533321948627839197805706022044414251500957267174673702763772328730469064396109178844683830308709222605659557605155021646221345249939997111365023104349921747528729068097179044509319667635200315308127120203580090709089881295028095140277954580127115768756297467025326896563180299310951946295476545191147488287522336446802690072889193040698560938530860896629192991325291300527422877143883270297236224514913958970567799509352368085043367464663236070197162714955249352222435370862283239299120760592256684612025239932255145761879358519625845108415959626435418402444124148237601094113508129950588089363957423780518360089812995384271821656948003820417371067713434904686519547906913114096084561521313305692683608135506981986280010281432711481307287528887106387338961315108401379955413079203781491330921363497527272625283340792306596805682938719061017179552518601194693252899364097075025602640499862033988653834233455657325653888788643574125768844181646932158898051819856303871128686477308585749593511212576143217045999524803602108612435885067462055549155604269546937603646248836348005351786176894621815693377105672399967728761637553125424989483794242911892166106242424165677147154620041489657887622366068904339014997659592981638793245691394520653677358053445380836798825243207955629675104517373844836365664156466099013719307354435988761795682514765659031031558936130796051728603669136458471866257804375842741906799710949470975133188759275146429128301897693540233969573925466801753535936077663396916034436144918443001938695997331248942941047250833207879877292888838614613111845899511463976852109311773773966047136948035913971260337205595088460223886377463193298986110139395368958171563433371898685017859479376547815101179650733684458924613139370776937835188524736056009289150392207573147482091365419913653871237581234227126368548924751370355971198053574082402931223976683630787700650234566421331626500281362904016741655092686008770649707633159605298592266368693107525934395749461832313537751386709815908170061886659886019494103791519444570166222066730436850823575868554182237397960056229531259343182902842618861408107782282359830411645922578993542102508363946965597702188659875510093829117929736318334565311627111811584025897828301437061174298266913290820867647694726560168720813546782737428199760143885616091982938216525453013821260258743227291610766054754682456556818898078174629391787284442549281226919124474654284175042454060433501746650193942911872130926596940739819930605059462153811824414426433811330018349559818382586677742706495941711938634527593202052221663293405880940447843985355752292398261406638416150617101983306279888142038809954493868734310784023755889496619768833786891053159647279614287520001592745529701132916781292705863730081761731180643801482140822015799052488920156130650849970647573381616541854723825095266009865982385437920864756226780128910236429644580794201953027689190676823984144848295252099982241590284741800676533446546162186154557349697479325642416779320276263683778012899612662266772480451761443602891846902147532654208031529029956303699176615517620605192137630656639219259990779714969788311855484240237110915113669968445896753549657929005944577805155117902833771281678527471237143841226021469398979910036228676047536554490727908181579201041372616296218414237569357730493584149828167276132709155135008813581324643603392271285869637821353217378673518054518614764164581633085162057097253623833744767396789124875787858366018723777555530993450571779141637252280132129890369638535900093431965374028887870124578867592415850754692845946653688407458909719013754408739790944278800163119496535816535051925804896868915754074503250265595450513799467301355340941286835931333734275349953430153220068507265103077346494892388748410967952709018326150272947345634949490443440572461507840404893285513248135862920236319302336969325567859849088249454509892971280068039614102985476307781341392845646137858769200798877211686388413898451584952018235022826297628887523707954001934856202882337541191477079621526349217803442434431534003245954031610343662906620500300561501031236810902052373561765085323482608833413498552475777165558478602431332446241233261448728123270526686657466975743410437843816613673423756496048409707674917379407323716928296123360895424647073615318330307070723474793400901083693500866569695386370137674155331553049961972387243205425654737483982020385284536583937332091628274222773612841897543073532778846951808337232980622459068304686335726600860526329132905092897284900139824413914746861581903385200867840801140884201662115616935022978861868732038587839976800269414335478985573793537059371355359898565021502770402978964339056236479762201705982328761098296530285851802351721134185057795015811179617439718142988799603732537654870529261482457682682482168999706749615029675529869429197184084722586786793172146376341290639190585375222961916359045744605038817960261207346181712197161617349969657267178950708164002702723504414252566811989201783274448919162328009725558372262686235309588262438717224558930869374344437975190873755498187123804917348043667848039382858631875181786041703522414151823170508730964972001133400176027683090345079537284335180109948330913865552551991662469514407810289508833469506805945025579263466602238506876105157089595922821527980103129883379169572121112422021891419137911470364291319576983115936386207303541398344028744193926609343447101346580548915079035239348297953038077574371065787748840113136112105504002179980909343286144772055539366801049824567608132798976947714588799598551060220767733821512550886667032002565335279570668438088191986418751396068749849799491262065349998918510211723189188183887942571820684925286647068472854823529981060904156127139162185214144259629998394167123910261200101180547202282934415329998127606073663596712799427545779767292357230562173301064318660712888369020262162072000097171638262219436534653103421518055967636924622691993003987283622298422795212251393581910835543430803135200205008362372627478785972613669446436734940982321847756038127366424003008118725628764993655358084968822518624550054575183538915920690737345002669158784775773485783342951325641639382775612656708493370688705200111544770894098677631282657875884706621009310578652978456066798839468267894400118158750176002719088583971701817876975721263754509832833075402669074586817050398613057804146046428209527842194956366484036667256582829309553226035743864211428779552076554805563497840302450169014403501477974550098444638982800551822850206176769782919809236640465572818232169034070613676223446925646208024943640629084868301450767115210676113209809635138826874959722819962791571550547527845133385820747878056739368242701693832717683455790486627031518080925065596909410667320076102885106061104302888100309778902739279576558991302270692429600283240463073410276639115514858140682264502685390691543571796083537267592971852551090332433596058705249314034563628743841679333261924405762381879483178784054711338886897252732495551893438712296554078522616703198200346893079340276763477380252199900628330537430266844484519605173952850266560001533866205263229070755713776361897902812866898701677694934044803831430914158863449503636920413193217880408473183151672748700143316177151894529202871592104837244504538419748817231795537494405669039015277726757398090962061233600563651838037836172619802310347884300116875650122667300955264372756654214310062643851207635256787206058978894143595867170606589713038885123008965135167838867043968157463904980666387255415020052994494564222717272682918160609617150598908687435102246877325006734984459816109653589752963616877231476577195547333905899685627149074323603903379315223314482500744089129995664207973410576346765015340247258870366829514410284765882128992264348420284649785608642561547987195904493570222164093099010899696435295601018925780064616314761712494145307927551121393748573686622528230666234404569621288424061428208857206500201105274323298125777453637363581368259043317930679112764633766979761805574693003046751976071654986734229851213853893629766565000723177911062513605015150588718991202855958783023743138668488630044778879272149062263976841422136326505738028333972842604609830603523020250187064988434231825273129569698216150657897192231576997047383925755409174909269953360970031005536970422406484579989788089962781965684888331899261524624747082548907190110985382243495135471202144869912423565999900747452113303984847729365246565259333090282394229795841437088178297120767631329221314523117412444871445996619473566714786621363636745710390537396499561914497824234882037994639840877900664265488045381769632041338372121918488086001317615349197605866984660308282408768154842094766459160708981977533476058756999009721021812661880162338788180889239806152441803856992351986741349769530959832739737726889163599222040891927152453275695065426360456510158635632321914960415905554746136966728830874745519882779535460201018693118807159826436277184871291726875601297045085308933063172342010839316545290066212402084583909137354802316790648740449783235796709423306969505745597112460285980838540609617867492336937997642816816064489878212105832720511467474359627553284167140002012062464797425440522739793232046203982776241495442719323270086970369457378245363677472515061438870598926933039602469602076143818650199960875987374582366820963996130562631525880822842147813782445268342211720361467935071411977226417746314814859635458161376667895395152992825371650179317967317671200082711333012265112195458005586985016565370821758935386925516789849236073253445771160971750081721970341590973535801764147356373349632699257337091375335040608235803006607787498829846830019000068345166048697994455191211586873847687385677077967656561619851253113980389016719269184608465081762482088291672683411000232615856819114581773002270677854894485476172835626928316346077971415701283735342953545344069369272433076669873794304214933594733077451524061341523967562372456742621262383988796409509090357395735799152894007114654077040942487473365599251125088307063335084251234307541102470008467950846391623735355662418551221577291998208157101015766256893759826607130197421768920402851908215912813926849991994989970674654583360371727908503316683464820246211702263625913718670129146548388651166980656867591816536654324259385020925255738528466582296770281118960266453082356168922790905559674274582381529536582891391015105234743007704345860814732856698486555614537445511270319222086782567149502982856540910875393367404630430633941152417750319148185408357538542867365229414084735598024680708039010106663395277329540221200138268169675716201872752223224095386220512527964470024127593727157883169841438349144126798073730230467621851300575079408927804319527974299594489904193953805609696544801962789383735685676965944910659173215603025801632790547456460119644461218689446456173990284751342125734283403760187652427280859278769044872908008108118498578084061192723420047981226758461351317193145615673057043512219088019033419507099026789905139800650869397461135792719743879080331369541159617958108347642676058228514250824869928280593829054065858499486561824824962094127143437810556499366659207969705885989863800413710153463991293993248601688890667890007956546769595161951931887671598728099059195214330855644728721494813661181306789126018085663124522811050031963046657623464305296348018400916736957715183332728437477775754647153631390204717715877388245983904884122870784083528474834677591040112844539105193959627925590970071488233315702601742591276834234411616748714110846365409297554838432563470528540825099561296686130913981566499668846979706046886907507171596589457958157101937963689623264748830081342251156610341606093812188365853522751102765406918048121182766260431346669269280548006572520816518812223910316092009623483154679606502786596676460296281527397495418482030639163350419116456780543290526587360325154950351934891789300786506179869670552562952209689076010445875184072770268865909776691477425247873180254933804067473861536138459936231120634408833229565820395628587013967658747576149030924479154727093699831628496856755487153731564352901714446020707930076313884862402763807842089895261772056682351143764564214493698852638202707315644187869879894514519912562251985324433651047819577399731432385339925924669872146237911325140933021767830100681428895295098689238704057055467534909089585027980885037406646454212683484984632186133498262560718939482438362958551648861116222362043218174903590318808374045317925366992180763026283578393395878686678966634765841415576439455567741233970173442410742790577293218687117898192768768540874715316114234971795094945422358866447849138865776987541431078903946938901754986333544534127698923031649935079008150987532235691643503283715214384526660766016777556744121793504488384843878773582674924585704426035315288895839165759400191488365391070700700259307448753026884557922674542074044090946998423133710380831895177042031799352239722733937852223774933714214916385825424626577153830559657841104396026863247829980281714672344354861870613659436717786659950125388483481032927151121244169380104325400683307318437684438850597104425866277584718175011478368742087562567563342205069481050891502113822671492471605621292190662689257467738799577467443350428469547255569071599372759929875866672135817492483762022135879715221592228482052485129015483645049913898266827516780835052778308216252622129739706545184707970988037063674093924286080986329361164985272168568042106893184418203049414749694217472748860868787398079114260106317108133941593793328743065503724794297841937061433762328688171052419664374729060952617344814027909676467254167198586113691986520660118586470293269314583488628828013365935141312789621884751584001816717843184923519176439328385537708503077994982421285607562629001436152983715027631354959776334092479122963257035561130087033991948621585768520240187202709205881853065302704044991130249693603817139063254076508226641023828926599111290228161142696675042325255016231862803252802593027484296339464671632852890221674970623682614945457156725925889605511295141012522413000426586978539256222486974999234042410618470318434073969015261345263925829139152800897563061952319579446207958277001768927465139369658948746224408393313753093585669199736734737568094201442750279473280914961273181551980701969612656378550621038697838812715200941783708644016469969440296660883228916575950817370179925576502210900404360995859473029676570819556756307863557139709781628328258320746412771390945796504966990340086954695924653388055129174127908562546388623128507691068539272636845456197568355254434164213399009686317369922183470794235695827596896795799216196108906672517671840270517508381639964641492837504806602383256513488174221078279689555657778117471930722531181324331497232013037841479120822865175442871682823949607316963487512671206321976240930900826151070107372548845252067921278313477214004596712820495047080338261897053980591512197861852807215366139679245570549848249616881641351838433308111130507441003395601615257666604148132761533804627670374036108320983184648806277977072351491731900127961625497184599922914762457748065175561173905232388344336009548001129036354369173238444484941127904102170543665631573354624719172339497487116399215911406345468962756520673583131260410787348742791177155362375646193327670502937899934868818984203177072834724238679798161529926003604333071724528267765289484656608261778116925884681913896824931541573155429136232494051505837323357614000895232416510584435559143588610335210737314128888633547603981935641619629739462517686036420733886776348134494941013256216276525386143865732148344851903602025221011431095134661826839936460766196192565191127700980941646834835846640431428838674379728798866663042209891766090772429674648437709570570635470416770210878484746066800877048414060911130069906303912621641287826853581067023556233514190500049909324033521559707357833187627523229269087731909935810958133012662002762185723074995774150696591373955350908415177371826657300864429076985721013850427245530710825582159665627493633304866303704989817817954308523430281125156136989696764055562772639977421827563240631856307016555785669944798277880941573910771355703235588596404919758028201133866200693846258857135169003426602344355537674906902910680800727596166432386544265344005733828773780032855485335939941192864094201628222937876327695650589905573628051950775795517177580937690178956913440556960138271614183333629913488658339924368424306261031546699380497671126213957179708992701141863328622287590142139230895790021396900946430750371427228233516454291374108299587641317000000624994574956744404321934162277744313975784377592447058779600371853579767889093013142385396046830242591839173065281271500448825961219825202671250522238311650617291282024616810550686471865792130267019475866864722592682472784070663460337012621204225653222799232280886941836324510321490092181310962113275085253311435159202155745016164769500581104587970268265722330574114120199949392066394427112563388362004264445513576856622333123440321168073567715853277500623603291033493988451671273018680200431307868489528920744301331724071654814465088215910734740240795161833958196502278727019679959855830774097940453101986703647854348347192496322864708085820639763722364718224667778787195076240387725600618385515178866468412306194847632193873722631279278999177358725010814568814523676839678130530715491490147584015704898700535665235599827725076871233468942176037894961139611769665753516375563391791069768188576061956594841545052536996673136775785134892353743548786113429318038012812336726578301442402258763424217115512573516757532559185889566635890866527460454952577266726020229054301745080475092126609388749137114853671645868783224022895840283041337167054379154054730215384167541378927943439225399987773379435673943615668287544127738673301085575198456512821803645786588183444273649530328123830645236404113713390778129324757143352740559705070379041970542550015247485763727062088048739788721893427674149303414985810968172948265336828114462282516581977130321238060399233851489205738263227290261293482529280586950664455728667393567158908808679660714719603952067586058263283224200234755874549844385293190481319696671909673203840486990223008955945942036070165618024600619829012052440737339841917955166365361302880214042065351522074294173983758075416647491553138755462425960447580138907227058458215285809514018397910749070305394406274756147009202408906172020244144536743264940986245026735261813276454123004672986892181493050232478850162054956591547650031317397427401645891787451317249951493360355549183300334709405393556585537506882580403999136111269844859204864555334021532057793467686522702510895461694339621317530776603208336778343144641549487418559978198695295934709949399187865425064902335189278553121385994136131229858191120563032203840956052174619285064139688298215961881733379768618597222860537490558751961466009622403843592150260980901071033071130102443722206300093987524764147922076664579141577514393981781357708308321275314105764138025274441071999680245741697611910162012108854904720308069249121906969105372374356234705352085160441393734555804660292874252631219484185797485731534476439300931732842958287947041081865369686495415515435371020842996843813343237605783641141688123897914155397348555609741917103264401456857361375125462116213514493804253324187046225604174113295802095669012512959275572392779335160747475575327127050841157433169326162285063547440119484520213514730717359740942234019307983994929956370253735560513140684229358580140304755999526246389816075174089681736697491478094134173175056633408881449427037438229367927715925724873141988252261316807508811376773355923005894739395007798999205079452395627012308240056531822808635437308837428627979047577887486572793206959916387158954775657202727839646884719754515326958763605049413334678128538327124019613877004599330140135021824742460842071171069193731331550330564638629054811218084498382488778153844902190024454766539756088822128072863413402489949146581894412398093947150037338133434438578485961115859149017926423822354875091603688318108526930585683522360376860810744148260303994430691396498886687081772217413469981288827716468749241207548652609105802684804371342557485399202984819959034296512110829549713217240881376180678132620965423642654228742120044623157998674755929972358380552374578981650740548922190572543466130278870993014151346721366193191915983790313734567747295194705792517293238990218661170895654128718372304552856481477084658902689323642703747521083244297851228255346884405666998615397607472558467254822429154271558256432870034338518364523941993718074753517322219655232664793768952621353934590207315391420166395890161049525480915617396174908850590064222678091414604491400996781356872420455749410070708101678036073741976891697620363611067062850585110680592757891155308823886378744654188985642155931443311609274898696409904811416196541968978049587529442248115374793595952641382671206884019105954718787689220748101519784405943875235288666671152799975548503074989463020721992077276519741208863952721275074174076536072317664123072094925623253287217131924155216441821858117404534598260504435097028917893539640157775983611381508458529045285017811997882702587678452918218546498981257645936373861052968753670551727238201791075463208979381036712579178540331424548829525706618379124719396608451617200528370410959158051337364011263218942893330302139099634597786918833116314394788864727165062863242678055241756701188584673154997162883117102089948878000656305260540038424981341837025640286612420717407170731816974950860044186152384166342475718517602114541588352843333546455896261596766493110628054293728063301271997036328647765752945281764761354068143323095760991484148139934194478678951675805235126695236691569638961053741442928017907525584579665752069193661658845537491946762673085626262489514795100437005258256800107097560337535603052105042612188260736993795297685090918901806617279658339423756841199521105387944942701041896539441680939149881505362209741034752433641497344592201689778800260232863196821434993517587043593773510355381285778376983269084392866848100031864303011806180145729123430307905178386231455524964361488158615074251273102419660564086578848320802453155595459948162542677567930964916541318628360978920117396341886579155636785468610739254435978015230401625889203370440325803962639152760479238629812810430965278758962297834110479180229780468207485968334915251236330733000873259819370487954570765804259711106535633626506322635489108658002031912965723752931219914778414731673066401084397604249100515628957228836675220542413778266983078076361626672742277013039388302180788558445634281799249021375024790404434744330926434266535591704921345974700006087601246230626127712093564759215026370388203490995728141616360053928745065064225801668417910778018427538408086624250383861216857258392918561447334983858104255855927909943942184589322477992720748933510527732440876484654679464580346716332936676493057684389407618680010410744192541897622486132138882369016317703321616432561082533210427067306997832933770206784166661140369515188618305952001512262472438047684666796848715101184426602868570470651246915678806561212059876416521220170439161532850217176430507250851626090315594746563336594584937355648970974735962895884853650006152139706526312308652121858883936833741844036584455598339653498144456878679653659620308366679810178629417221919784183926292050441180430146066389357841095816862517297765919379358520851927199284592185916103519759827905850619988090114550579401758880250179141019174946876685130495997064463490549969128207647604469261483639508402830772493385357481796656815628541091364153077272073129368817499387769248542438881353712170991630993735170230482181209409945185154608321289511774368410824438450836017685097225822185415333011114751736322242174714953028981180279140478843170561901883565142328350746640891835572938647912151168318237591845542227962549374092197406432959885174974243955405990133665656469941158862331405273946993518540077262914850930625605051009160345491880406386646540805740319594615322710364036754607917383640426103260190142322040268305236605119907339207950792905182780747085741078038280124857158524283691546637576240998644297455394669844976018451974563211534850494655715515142023051658703601122672395094185554293759150845467282889294868737071257082136001790049627622829467835947090206731478113839115268220646081445425964584389999133497204522126192359983936179300871659904893505625320215862728997510861665828145457296814300571426287916928679143033333675936811205704673314780646511908955507520177051224096586142622963633456352752740870898438573886050951884954440861534050493253091782580042393733838513725329235063860058223799656735055681743267895974932977525383711776229055870959712091924401879152255682585291704215941648706002972339565764742138060938351583924815231953792095635656162053881042046745474267532148410980955508499308519982139526851293973082548059682594867921000370696805266270059762366569058401956968502145361491823699401818001915085331057892733713578216180149325303075286267122093649606546491149277360989443406158680001253245641262013624702012958411457229021291473044913447147047161452744998168669570052237008917526816867497156747076166295078852847844370774532864220230713239804249845375281230483751672441250890809039781580910885520552846781020313388561000426236668040268285254209537115514000204325010084881366510243012987900499522791605948212657931041997024632658839029443768308560951933555661605716765850399768679943772469599188391249942612381097504313204777569176310269476432630707617539734089986482959014929218083321525531924458231693854517733542350979705146386778597625294146077952596565372716247143113520394942358580770259635911710722245864214920612057247393724378543306210613642638667663795193608112427324497267024813878170057200987416869426505439072770704105506634974933254778053974091977957420671790210149655655396807584201063220732694957172200512075098174022246699767214901829979693968369367387264870799021700640995772970982174992418594353495808622862074847143501973953005854589860843289987534858692619461054314093155202557511757207505147897945051690848349786038938987867529994984708113766880751399594624946820022786346852288076588089429398583320119563011581220257359855499820187191581546571160003670931159649987767578778119177400086465782152819810609202038543060882404199874552929165688774314487030416995633945615587369404723435311833679871710471332288776922254289563856090680337970305745937977660413327378079478378501996218392073536561312398002891752983063079411706932149283751307232466997524107876614182346517849296804948088238280156368066008615839497446219416064554636404954796189617864014831207458487320853574526626389219802862125483166130686271966108818501216636090964429350564723407036800440914078775885732697219617034884167267723402181940040398958242878928481472416488447836251439394636321349434051358932181585591481531274706674942147941448929948558277669938695604128819750395010322079340542994756365233461542672794860026356159816569559031300823715979508894325938564907867045477970315062281366618895229853196986484175569134659752611361130677778290100417437749635767030876879522933642386034973087337041221384397731116625262963613210929429057619668262450671013182669947033414932366338207186102517704737946830314327858058817689991661753401018032813999007926837194146007241612851642672812308425939089709549568973304214053722371031639810067707402565476867800222448665112834795713687258443314503269437755051258835507487080741168805969187809641982974737266555026320608271185024576868233820610236728088445598957792196877323347125198092164064899564819737684572792622592800231334344980897526036633322998374637711149228304622916858881012094090425107793204720317790755857386278205946398861414045560061915042415179961282427584549864649805598032761852780267599817069388810345511805371206913116773487650504202026701922118960503814921494529422415857817086678415776961876446062243694814188223204963259733472628659538947971675763495146812001724977499929027698663827742569439302351637527243638060309216680799432470792398268198304502036889869930734344273010419568067526987638705110997102988041564954937836019712127551665395755650243198001702046453980243433866395462438811772858133687725894255313797501899094014474091089467856314314806419869304097449612968982550052857842831412528227742512407158350473320378923364726204361495875876809190820853919416549749113069198825564725250286017058326505707255122942953196627750424321298986812895102716688534190378614957391035525243380871212822181436532042105359778394173438059589433422095390990373534462854725248835150156378107486481407948278629774070549987607332571402187433275965044686650729248994382227127343738150232851926453061886707350045246972045777011745690041159334375106345872383959192832555863320914216935334519107829349479180883671103447591551783750818102911535043510191209040343976549036065510131129444056481816192732912505534783537727287248530582594563194315164686292226014595437062216801137123864392501335259741036312865564107866767642554125844473730735972294076752812722633779716292523540646447196641545223734418006637326576169769085915002556493208350369227376155267474592623054683197510245414181579300174068970323359621611937536345153067605747801887290553573540011344211057894637127484232783422212532253608789817437573860770803727803972340504917705508541225771179868039983406043123745870377268280771779658421428449001154339627988614985201854490310782799583871131757322069617040927888616896832645857791948178080345011109431182892327993519165687236821903622914400759735999951068739365482719750342027921461139586271738446926878979373319727262960813670124196289378935319989999108779081368200028098882703969245468694801573847452390801553077349893265416324194438977711369527806525078038785464724626917548161972450027291632648404743802198199923186425474096028956743886362416201558370661877684001632761693670486926594693691560811843831405276216199994487417688182583639240504671313086294955290676491483743632800333512836024538374037556871459867544792957881267385420662563220529614831009807195148338388306616764004083061740305674635378522458934545303330907015299608602008209099685629559793056980285602645633655156056305427835116302104571385403973377477480044109789214051316100790180401011354564701716782599975126217067663670398054014520980146102515462606108971634689854036257271339864324565772679122900608763796157992413946280175398744702071646204438653357175340333473659115408800840963855840229445775610163848889189764525995546137612128822403093019398351094596099584143691536315675049012915869559273265223422539765337629289117254213394645452494899758903978943477012372189662352684036040714999708294191157501891158357639500243872523062144933599146235014563395397632210312214885096373358495405594028924305550853119420009380143424510390195396797477595575883486573026512020727106819260488920067570870745323109882827623638045400990915495660429250747570676712539745128319444079164318012131003050443225047919937567232090081236876094495365788643749223047867009677468858335973205407052845973856590289850697849492367717059983040300628329561873634132136789047450036573381738305088010631206378278270845394879823356954673703708805293925971279466586546060954530932039409251599931302994365995026436185020845697898179830718240560282883373679839328374816276162317986982779296640244004078175793209070540380562910918941050107038928882624360887352086256295213894041865767456533158463757008631269362780696147042541389594071539110016382835320553097901359701140321035829588674269938638996577426731016381521738144394841228532986020467510982390677119486654577682303966433933129657729676760737093898993757546641638758374589138337476433119866555996762970726572558210419879496696777974128735815477652786212680469995427224198299819393612869074740737262807049385592991555307530351945365865667296883717198500449054300698746333134848396412713439966126956371043625801336072501375334492414313638685043499381471285555344743868737882951345685985174076758484669726269020739918067569096675071557003352001021790059272292844038618653011087027573078781644488720218673052288850610519384937476903320714046334736181900366906305882062087568314383141685755605630134030433277143647584282783068665354860304097160110399461649471042776419593884539670929346708179559900152461880630429159374566429976822749437974817135289238362990485634804491042646711890446875377465654559082680546891323111508447186376318488102651644559251814758679111057684680514021669504368632507824519188742763431342587264324377189940833312084638429797010007409443958440912379450804578246807235252878832749444105567047195352457326996035300147387585194952286060609814417792591062586526113027636761314505480063143041356306346036182902371410542708097256328127668324700699795192449111167160696668627114837525490593219034568851027125017940221651801757980657694222292133592889462069325266275225841245621986964050970332528908895738258575808228312633989171435396964531223958430844045837567374724918932332482338570937390209197168335023358648624743561227245897305448752951503370702037560630158213575998873703812406050066072856425632130653690472317717345366574257815045943493650257443653099659337945889478934413252478731818991419640662395296800022638942608978461906637320368378915984280056195087734271999809156661824962575912110575949342808870375912501234765793603877819675638550837932341614183963050478215466665518363296091036510597716886759165670132311929663889972277966767618863498802431819457401251823972929587204910773838366095304760586752612087091881217527675111128019711489891383055654993371944819560252058575064637917882705850656894191036358382368114614497462705295863749240646251092930698089132860743411403704636428016690847472252078943666544526110333300492488334047477970123624913311872067657405435369278062972594264989538259627765280782562867199909518363615219365765700154297408910605899945696900968885999195842491913874451796700121991749694045197278446826704142677308293189570987533360906491562505840590364032783708067060029025873690895257806834318471615175323352089694535032882184864575906440406869424628557561050013514613555832596128969240360815051910371914211405555632052188259022693760962488255590256642421431375103662770872332228536588514261301129536724346479253779222384399765631642269243695754694922798995827341616520978966210762453376319899826564820140158505110579764137313020274268824141162311766688128769020566101599058891034881928718917715648563605676025766111459945921621946910328482056662484491395989718521807384167901803341380252811156316416142085577096773854831831826489602761774326576524782709706818402838331111727805885155319648842791671850920268748870277140301511953437641790983663552710812659548456343855856191058638112238480538309742858542423936517656187977146857639071184548952654527730224306906362344811488400270521545154174829938404557454542508782274724054611775052246748995673057600813832096345079053436184562208314134696751760663099418160605014346965644982768775283928649088511609001574341580855155511022325548639569012071897599133999305624631883852603680788134416775493591403633283766040367921860897102940044461609412661802323650626266184108986980012225042485889653439875192980307297525328034002989986081499744477610032295294719521796447198988195844327624365221507722670367121516720482015657782139795721717191318162790998520933841963048119697911013891735851457382697035135280940313360584116730923406170091359344893556680287968732399835871401597692756724388178580531024881768348757173683202994869157095870176003391906828430389032379928051107592756141102725377137023456709083362504889601482572547972148933117296020404254256812204950842988146622295209416305789165812927960806303228168084555145746670396839498517995536971872765268686124081346810784437836519017283672883767779887931904173896714010602686307104708010944675755751309460757309291490406384301860714726601510720183339655810911148171501798400588138731719279849991754732334688463576513665986975643427692645611434767843930277741687762068026307655100345922033370445383234928310915666442790953773863185894262963198226169135014897812298403225857339625117257146239739623319782433219564296755054725805305580796988917594781439504921952653636465725225370115391882825926778660547696228546893778851239390639140297112249351559312757933081626902981211858816155390455315080411979548131906008176499599353218514387072320995755691686810384058004166137385591324001197534510887965283878725184027708808758448759850951343357535130941316199052501900445589703132598402718735557404352402558915369658890575182582126697359341008907152253973454084561924915460652470950056030604102130429073516831734449703807018199623467527863857990244185554530722603649314963425230177430379443004895768158749035168715092944589647741265296799377493977210703065581176503345773830917458634664554346485617719526718690890664767514476561630055018019413759981342960625615666306176769785978112386214674029439203384264650138257898992715957813142768713631689886003440478380178805285072910881591021971007197770107279946537476134161088374467447479922400799447280907782608942842656464763797584404691539117453152668527857485427346687401628431201744250634588092167420327520955252659980613945751911170799466780356264499025299074180355201954773003434219557226268710279827817134843031086172757133312162937236159502135227069219643237667702741083284271453117328113071439771399366138895150084370412893259747464095220292465421890221267940448625874359402191268754066615371030125831392992179163954433298210364107785858708400080868087802304999406090771116353331292114924436614120679726364930968402905993498002099804595868508167728494942831270954327464833901407147121714028306631058055272644414978114205524212075105962801023082992818977201848657569725440169568224033116701144621409276111884715927226549793720953696567310163719105663443721323794093464334210694931502491238450933780230568303351129554658716224178827447581897819141986251213186584347043447230900877643247282611169805689111393998750915445443881562216938452582031822095286771030431212216131544894793873097235099489762237576698865959706014784162528416161326113151263455927212616720572283101298384627222432090448291164000705677989597172801636900332163899352146354614056264584470734103076125568648454271847216047277480520605381216761689422739877612763622073010941974416207048540198032964720352163510970898871112471135856669536092501170570455918562594652453384556088178534890832025655138306940587304444976342003802277953510173015124105458240672026419794723196769555466795648877588531536569396439771937312509594437949986865685397349748966113558503116152603967745366185928561925512290426796092993326094068078763208406160418796310831842294099207111700050717991111081691728763318979333921970485498372978974219971004439048334820349741044599681480103701044975789015007251353813192771050269483528359151817046633835821166412185510296058724751773283497970120195205142674791650526993266528376543306273588075408876713476410795112915717539479810692981143391391557055667749433232992174949255342920065382431491924348147169027331824828316417221284560687457364318783945608990751806271834566375988009829035575566192158952548102512535458235090076364915829496453878883672254625148132137478794692444391824531231892995433288207501199071108835890122608002442813152145965602603345482989025291270962578343250350476481977075390075663491496812675160319166609960656239089062082624196642998133010001476271780664522882492360971932720259537007166165078013669670362660268451392503774637178932721515665362532868632058834805719479820297281949311123773937297517112211824106467329888058872727419990470521763718073020708560895820561311328009671799458563779008015392238750267472774272227418776333393150447099557061066693150235794541591609272528138207755775480425559141400283126224670387226625048487186799830926607908999655240188229654824118404816367869424167170552071550751765861840235814697078700783815848623105016179051118423274376882961018224831771907796613561069308709148417504634291823369947006391031831032749226737052244980952843257760191337977778597535171702736461487115145042875405931126675137994704022152986732957673642965634674763023665717440633979065007243420750990822991597109233391173188269763216889895377402599914365669595819420729418405635942718804689058856146716283262922787893442193343617108459358298648105292542782268876272949158955822245578713765535953804585391155641380343982750946621106029788165522707981338145189351419253080656503703815152866224946166543663674684214417470138033783379044021221591139279978955188369136677475025366135822277681117302510325923320705480870587892432626603000006662248887659462391258371330506506242042729419491970533056735628556453137550883587374218170489191393389766745251790199509039046753293266604079760134514343613944264066095970264038797293845467481429356609800278596029587518378614994113394231598289695216275532302678943293020074987312441634062605466884692206434533505319525057650759592749673540016674774785533193917512107004321928751399581475352226599266968103139431282133723222040069922903449682815902219044558150074988676627827503578020775923415229505963077417925295384298289617209442147041521831810783314435149707480576660720346517545330766732084956802419227841240122825608045889924700725753104958969284041161338875359378009149305277302387795857945493136604202263312217362889996153855975679219556184431580485211446368792596703964030267893296176547846085976183568989924138478252530517452156177276730388631049105594494095010062486812180578070591724871851970253353833521448808208588889614057304091429035987080449534134401197528924084674413254499168167780001980020133382242921987712411606689316737395426883246444041514884437455147245058596359472720112837161552483910909453033590970853404823286890234384010243766377260476952304389412548921850501914268580426406595514279191457622005412622340896596719290873054362409635458603116031792554575813451773973373095738361972573279295918529336132982362900666691804478862221425276324642237103638260446141454018362630604021272625985699474419375387608439563017899906878084530427388267317414024082301790968328351180849726046606514322672281022133702699303136553949616454184983856455696491146032090533232309917257460110612617687093239633524119058862747550494332402219963592904009707263111328864992335859868097521483631381756185286668902645476919967366062187854317489670542382346512892341432795768219110663346696531151103202664691661157312800781257343017753967486071109352676454580950435482407993798967440197175203420002126388794381286282628353564452512839079218841001135471003369644299894306786691836049906114247734750078254833727679503817715384619111306756140142539643789824316056275207266115377627126421402860150168789114555528300753919095503123050697112918918529699130144837328041438343412234474585697296565922004561570055158979453478245304255150340412247922667494622591928713452988007179738017444054255018451496431010365919099882116034873127173671363975716851322689192050750029260058788045682695497886476166705325218189300576999449598823585652656338212222905663306744166765747371239304057870965617718243691131580686516022539909870034032505826944074096991546049748576659253723186985879586869880148626573296354538045355300691364763975387572095740236967923909241948783684171929666671252398405285444420696160035069671684391814955381911158747984483639773926800472798154487061527564192646117734091107697148025074375644790264513891366433540471378339860257290410472446882172190268612372896563614646157372514392474909918913028680336419723886348782293211830487919118605148025288592034991094041140600189788843593426806349859400005720876376398894046429384362842171745837400642630528346642815156457113516566193561827263129286395468216799665658872693915130809041680273105902759279497409945275953310942259364051639528770303932982403093716565190055080283933381839849418755985969458543958396943824521870880613332466131588444252646056771096248550350882083732627201967922735953270124385216654252788109743485645267806346413786661527253859642575567848246862561179648386504772375569727136879227638603465765626984346545628375923181651515085508743669755198295226826842503996160306461532588170939060605922373805598993236638762902396217092641979073942283197869978709173680085490060103989428488966055681312690957753412685064884281602576982537144444816713981931495878699440500422224357323040707108470803082709929012753053092428191204342004065674495319284303264957374866567424783010427194944511518568221838282752174042414426881703791140796439829229728981244244694205956488380035769853353553266846770880634083520372598299590638576073223083385892028055869392203145133726254625921125685700904074184740251113838368676756661175813039640473776916674714977754018650523055179507743524507300924792920332813632898519266645591485324178488902763488957966490053717346741143496087400923151525964126574060501358593366682658470123974500870377062878603535989141386722560747500322769397568513185621131643517325330658347736812446924709508221674141314799024012479372077494112590248968647174404427434839946258086384508495534493707403173987313391131669644373477580638674127623961734714766847044829975611997174568474712055903203353562029003356054092790736687948838183982935468269524442251532933532902465936927500116191350332923842251896256578114409932847015310370625658240410284834445180562311172385268711728291079114302431704291756314469997187668440307681298373452540111239988453549921479016437118747277048690179648322571388271579688749058991955355807649194567786098099513771332117952235234090981013453075233025646118089434228587132167323857397301513438560563206202668866963479316305044658007795575810864026635928200303406913757723069128617757586274634814776010176191902284896764975938414996102005731505860967550876449824409466439289724815160849708895266872610401391914109715742547799141017407163236338464506192122766165909160851953992739387774550377635459258274337745551074439288660653109411764933032126764653569022678524537095653723600820886747738744936829815923272953314309825286200634021293512772287727859510626790394100551271504065759342283711595896185072161749798904758214434376854658067212393077688549066874815524186125934214364087595904298727695632145934018469186861511442934351543109818834736213425190259749629496386575208401855723305540328103945134085079673709113898501759623281149908300208636676147660461753927899545928011329587886061875584608738900636786048451151269978877599833675121024611999812422162933072464195200188321240658453883065959876380040654677887966737302975763333151962375308115057350733609107220098180964977141143420405225961552529000649630648170818544714218208930633446570750773855172191779733908638127278023984487397269835041177739717147392193467495995509154975504059400975664916786935267368271769745103046017933103306333570612867696888129560729202067627276455981339491367047567136111597446348532555006029420879921533287521855049443231035009278437919799885082560586977173726955615915316878980527997674324589207155137178083874887523168794269576731157091170637246596862643030275043744438899414598060879596077960466782555824688715523891536276223005040377855484154141021344028114894937884539562946938393790799361772888719010757029295412853687279465075321858521735320276852388497339781784120799360858141876815111905126537540991609231779518162192349010391507532815027459670193912914692356610129664312345822911467260317017801152874298698032217029413618735971497893766090557064184613187673955754051446994483034576179512889126740280753580877457064315705217307500871624420824738162353726806845352861859818506697214734537571260080620427099922010222826415467056303473030398230663979211621617317766513269024624679401490740418174338696280024020879523537535775494318475785741588762075073775247951723248954114333720221728750521911071304560816021412668167404751614916309437885429891275381736267942229149751906777401682220954715830852463879977228310409558616018097690337365196031759884100787359859458199864793173136753163090892990703879354045990418067033847990815500085685900959603196190694928052767700162977693997163087543583598896488860310374976689549017247775308908809227114574611973656236872523297170135823579073880995732451591382445795914086690726644989610758585922773662110196244918343705626528126347118570552870516144990996246139471331885024270263883105777804929672031538512011146356318536142598314229521604944967244217156180879355379095935668751388080473216044934098970597176355195288390536669047863929695947166307696003276161836420662009090395976946927339133586722379232752156956702213739305517688590735819629192918212083236928076817932043323238040817822836129849474010176559515976074136677597894438411841156344073468737542738036945212630275460742184043131281172515095902447214783450077381998628105676098687646543163495835118099101980130215449811171579050780310746379008763215922801823653877450992066220365260145512655199367089745745016093368286625792551919563853798325858368205836414676507527951417685972908957755186764391301212024743318487874542670383573110263342537544174705707501595674029779477008181374917041745589684719340384029304126159503700655030360671780717667015966280139334533981426069688587324568650814707293957994124689224017070179976504435574181094790827467766900405571279353894085019925310220160586979191378873496587771400455872528847449410212050429227285795341507284012711924998914483176747653413747466051116452589462091678719220791840600241291057852966917358927282601226672204347467635457030981048671707058969201192457743791056442819005249841030173291708275238018830783623088954141603297316672613373330327712655302694137915193179376877609560872666916758254255397175439790846433629705331890968137507714971081682044601270086510126870335387006394271242521584806268254441767511741678026758222910375587874603389219520277440714217102076012697417432394789241018889796036484632311900005080620702028234958180241003230964662500330539920451328701215811703716727064487058063950429678957110896007932137089649564486248054682631251242200343935638986774291179276411487963578840609156491662079721241329289419393882411313665892458229911279171819129610919294177728513277354015240959959008475126941819758539662684549266436853406965653126169733964011369756933315878576115127485102898795203534722598137697567201194584282059527157387147295882823047313763756581347005685373432611756116183984351716902930794464101169959848304374460775536246523174273989528947287471053122174205888690937213107675955760767944934950707233362915811596665318035818347780814340987102824906348558932340601406673755509223227401326504115679490294241628173712524323591182899979663159741417852192059445515092421860961155511700167049782866957662410985485646703515947972802124780624598598848063549064486772402816483936759031446995486802564261845383209764657749418986722286862163989381072050861915449584015869323069762704372925184324798169420784246239069419845236488924361441678208705896096168162683942819625009863661070263021969039588752688196285329531415555797432944612836010976319718646965448180385293376698613061589647962339074470269972421886907142516045103985687348250667541258483536491589347224165350436412405487247438232125728538049222065439020295247434225155769222234538713336726425284844108744672331194269478686857078361015489494045401069691857773078664974213093328656569401109898522308960269122813468685029959374860407397286382656670561327986093144584182665695249597755259519351934026939654094594761103096233958866110608282784232366472238093587587277408361850795667445386164209079390597052355981802151928137989711227192602585235730889784652587521453572848209071657475976392505357957542862149522741899422954425531573161933018132223243529198390648554743841745625240967760117240222277957022272849770240316234978407136237317794083587931288928774555660800258262988878708853354537745348111351183149809611594237200042247562234225827351907034806285357472584184320780182334744433492594368995164174416681286115153004221574723178922146282118036143431348485318677701652605636433210879699719960008271393629086845501202079605709237053603700397487457131536364253046166497755265001250811550579838236391274387558452167548446510691143713269617044436681575122585076396162942601241209356732413627130996888762888630814047997226891318694547696897507698728304744314619138793865051326614314794391159863243093571250207736305423195946341672328897419194402292788903464432794087210689559232049254986504632844610032951859377498466711106244961622947644819263417959122988362186258407976581237688728777270271305809619894194632432113994580970405405503107516999732716790824394696798717878954568755991845343764629291710520719759088384701542897571338859452141851874991705920139659456556556475384804073546180945677069882416818650077828745337775767724426665997088600007502896046166390530792824721490074006195722262647583087011020694858217524724965656543415381056458928347064483552876041070189382666947324149530303347692946885506750958169104290788444796211654631230605620847691467416524922304005391481994132581067503786502979522873380008099083924963135749869991647540124965958816993398373011657948721874238275381531207094561745541304849297711320332031846621963540327835039326590670906860738914215787473369130240192329601294535303335350959852228259099909666565712675485177028143719704495326797721462145113832801154511433548207433819384437515443241094329670736131506499798969080698830098987816849228870351204657237786841064908720852999723103385380981223505245103512580544870154237119547909295184777573359129496922165015713698331830502624173998545047866474515645469297915946374076053262851576848325847497823135044985168661846117643792379623385911043694132369085022979130083637466926515663402610814878677263279659206903051206356242446306339967266654598495890597935482212920819584326910641200017505263074212765333119072916124528176212646381294474751143546982657866811323322218598411542238888663973127186934147712614315072427242170900297502014143715714235104824861407706940538527898954696009563010305573872064357340622188285834494590760461717694239274964439708898207055870474258016302246554615045846427454242600973485088613169359799991513470481361389182840477943508167432306491922586326877689730266107781680217233170994969779747126221941100709945537869039570503182683264694130378981397382471300281981731341360531546209726257604244439394906124640133530051045431800992036290150765552128604270088639022378449935511209388929288594518628437476152714151917829696100989897547613585745002842770487678101435500462673188244830520616539015203736553667653320162871310100647900136458779038652250724488613158902526760757447364529768573390639232250147111407312283351533535645075529548993448425467325386948403406667235240530352157726613064737833516009400052728073561738391658306752163188732206077053397528249354175095554784676200501499504769946852466067125529298277118195457496370695658198621842713655037358926487171523893259342876427048591307335997698838244083465881412085770662197268061068074971619090316959647344086042427614002449305105738772329475938693794015439891222164959773791915946077055702835353433673651195660831214471866256241690822549018776303169293601212660894212447805656477626229818751775374765415335800518954769685589551310795552556470545819856153049410619484822888848929266850767674304390075922247606242017035831414456126856293113758821390690892041647331863029869326103601321310508090341734783768605608370510925318994049305763567614706925373792349087145497666387724482043446747344265340362927822362820301466121175134614704060605938630030197821022941640661481776416220211582514340013756615045015588135075310149523299954230524711414479062887898386875876376237025346327611995394477159443397212250070054630035231229842560455627254831633491502356372162851323403355596761343354632415591274650441290220452831827739774784408050676035827473407692664518113782530912835239689113720355336168940156248045873983053961987047646817246872193524584357255839867777063937362604905369203280751733656644502196181774599544281138656734161064681555181812031471016128095994335349180168095790306941080320076575746223335618151978801453716569108776191723680291485266177523309212472177292793035308994999312140033439134801680944958099174180259356966665729925478124456583603947247348316204561265857119137998780431153547771377693457598647459176496741990748974599976683153956631811105916191158729242434137947087487962905689669111217085532376590369794213044118220933576344406249341135800802627834009363785527820306109342822896476668693130841404076114099858063003823525839031001635533566145910533035822907815895894235538756942713719557484766770573122949079632346149250647956721522212708162381786766708814152033906042214340590956999763352364962949726092230356704369979755701596985963735635016320756778036318891108511790451969561061564729744679618388386526637228521250912649296176149088448520870758080270612939224153966416508003995284292600903627372825967149641421362285367474132362204847125061163632906943928119349960521505810102048154451443881291387946333570785240348609191385794389589037299249691373751720782000324519953073570490671029340619061036981400991356493309915367447210127922037664578930113174043397574697486510149960150190272775023434906016139926038177142747084672435307171438509187541253259103558809879052216656888489797168768292336169083042637303731145990383057746907916819106423190490244210870765103770670969161178658159772850822052928067057345000645325295809743918594412637007071180010493475455109366382668512837488056147650210727545299055845386833930915694538772708653888598614565603346847131690093569392725217620024591380870427625059660590923498760366048672042909967288015567965415827656896126170929287222158849810869828221053558733850154425569225810630803797208721148070378261626935222770568724377903382603381599689029001548892938473858130490959934615585855375601166036796968184841418429355860403781587151543852844752441005262320627847578785165356448061714537017400483848047236256291851011322232681368943224914845827424815554006901249720812117540691596065402624457460537241114972300464713474434240195149547721103186073110096334867714638700655706954309251748537577177348414987680647895989179131276465131531319431061607994536866259166607730379862758391531943342694824002445956717855352033439533505171474823030496238744852921599380371212904131336882678265681320648760826728989021183578433359207746102471071804825286087702751991065733023587488430228767804115356534511479115054904033766728979523084585156530425976133490915077936991502167532277706624528186085877921648947311362761140095315731315273575396039748975219282354270923759207434402619042066088009011863635981577934722539472987090154888413801214614622606197398672001806400581604618193726252704913972208866081164715215892169162806966620364347731114008441199234584443530215209036708467584190831999288668581047390676487246923749427854044942757022012352879829535013726693512449505443496956720569247676415141001859762783966286194560147468924227253693016851788848784060628352567064021480977865109976457821593747285155987989851605134912120895225576375412798376838471993374742149934348342596028752125404771923835344580640412316833395584363405835155442657816470929696005991573737331596992787211354530380125359678250666890770079737363553269290209310592996518924124005038676513086457290537258832632555517932354312124858617856737417742878743343735995228312788125392666841193850504956620283197346121088665942738497963482475007638945104597120147521851391416817262296510306810461811245005791188627248929807307416590303948347320555440076566698653234793373649286291269127891134917844398164047953826236364387764808071063004664868259602844831558607702289172234073346199072687797720437379290004998395782455868639604125647762405014163149379378262848050671294682657367935906946432815316898455216003227413992700245163426735570182023811786962536045324471812222039914236640101405113935444887484308056356236131542199741004695714209767603066276663815044175092559198732163231156010286098914750036271566402911615469753212448681639290811018577966307564043323105948732813208365144047341576520420245339805447684806273457859605742747388313232585903363512959079475607493994374087371592953148183581459809944038372397058491825329456958070249878853935661481902753698469263501370627763684154733585197198470842449235449357978598657063132086498202100559409293346522373760879174932119419259253253594392973414900056404714880823657393376470760835850560195549664490704290560771560551362905242702312329256196882048260474077695114431022931680818526923005085880831434745202862203816577439396482549541054429524242425399033237813768901808193452831727508593870648467611088367142008730564046734411947108145539796213954410221033476247144221764732188939664497394142476043674702287565427380122964815336423878640004683058773161423309319681618927166926099770332155728403249369059066949724733650722235375344505183336560449062003559984810042719539799155151338684210139048984925314447282051369693992335197846185178576624627858365964760594981239547075305292650161805165680465909707519772130127664109603320515455317405790496061284465176909182031962731600505798656614486623360167513131341237159448525361956744235189281975134060637928225052659471532690660140740063766910925642939368457378124197206344421094230411063968823091775200924049262462179480475090734231382541752922616809959023060609702006072448946519549857478701571073566546462928050315258075622361294268015287259077854323413617828278518052785246759557555377448858411086566212831095707436442073403510498844799237124735165009719923409377220254625212114195928484177150725273921401914476957481347495290213961746553123695005430447107687261622373177820577109571888555267325322725485304234653628795222888252910500309242041138711079306738030195266368172276114671306904059389161201889503568694157445109512807037987810069746898879408624677388525005811483524504446816573090972476893516712882627863828896384873923368321657209325484625379671972621531487637420401231752224756525022897183090686947551248995200549060895798119879560793412504031720955081644644973501715576911153032001547161698048975569045807885378204400061399361821443185789556682816434776267682878987138314764290139570433388729348158560336114371503678898524446062724261412176211615576144512647097334160401019921333561372672106947249594875370215320433922736755533133475754199306483424847937990917905563254529218327021661297424750801397972930757153307752509664617722140416416119494388945973435175001339454310931439180666563067519108675606461745489440051746853837364580045477119324574037804483731357131789062856311055545941236246725870158343063789016663744783907995744288602023306911953906071197998432192182242416747870930567566753784337663420716708802563431434682119951739519110843600884154026932407461260807383936540064228906038786177444375197545945568231068861159718118488456486763450339874072183259311914876305161083460525982806543130625797076603601640811834622770205350117459802704023329629303175153387112127664938434233408143819462964509093806344300454231896218563909772440881774239085820513240843907428827191130389158341677225302916591833616391334225657966277520993005381382802282656039584800633871387805510778749446762962053462718643916423392241996888314829775537349143857777201383136797166305580318691178778719361364751327131529318256770940787417403539604262993071865876772442160083618241217468392748420057838129367954051549947985544628978241035813532813521413369171001552722369590806390879221934255829359484965219502365342262106528453991243730956918399273161833796566157521143704858202480376231935689903948606480598734176717478366511016435823675633393012812355038296868433005846883720381386719452650901348505795993475282060334080366044136855750070095395745151457306297871784545452306947088603542054802321510410377778238244110582459899792092148763507291112114086797247424475580220930023805906622077802416708307691585564421430636824886792879524175897250864653242148249575158135552196859289538311597645167216105540933114996829509150368028200053052332565992529292907312480193906900172630805204688329660841435485307048296006677359227971673579592000618617902515443186885873433671064590318091309189049442083217574821366837687869603240936721466780520081635248978763953164621170786137189219211712283960949565929772273447647392478713309380136286387994218382142677866592800895287535590932972402666571217214154984853801394494619872321929862736439295533093394709981627639088008497019897070526257814098066114354684181896075200178213780979061740458763677086850987542679258875281825450073346466372499124692700369001135667068866199110065550720103588310387987028340007163010503066298902498583235539697485676417294918405946032976608487328280713086751672001411211786901618196734836694869628717775916054710700439407462143502050000323609599809649164104122405602894832693778789639044359461594764751201023554872709113830845751557190244815002772371698718742321025149953945464174205209102600020018783992972700896612127821021867263510742471421938055319360597126374246731954944511967783271321627330293225860573484624482811575586471476972965178742237135232635144199049690477473117067835655275516718081060540132815572334794787486801417718167759167025925247812112811478788032989068623383583063624417762599107539041075933323421422250659530994849715726831122096233858987097971681530951947722787383384967639647865006907699876695704764316811783364317770983017719101002405478037944830893960448333086510467588194970667768687187096672460759077882283519336968794100202490634312773641541151121664246221125078335817639746159142598655242686567046307527786680713210959114085815676038151605368051952159780051117983444389643336373407579075555104524636691409506791046049520237713756626654110168223484363735953480010330364379192555109184108125266321402294744657430623748219641909957823753904729951967753002077873004674033086531217438061932180362649933469254791168394826534524603521928703712348867083639540473827595817327570671207931000619389419902993200369811735024121169452075019480483004514950857050626499549086358106707402813906819661264604565056260097404502191993952637291436389280554818427154816273795142332994223797946162381430559666204697092448372608900172102404002941725740922808406913516384808138873194866116364096637911703532297644251973084166890446389835008072192173296462780475306378122390529059043198687614869704151748580977114194639454149509009388894820651244367837457324737676304227165091835663047211522717076196695580159570645986366513673276717732311591727261747425950319256421458480071951449653178940181122367038191180886958943039166166523166014699646323471700602217971972055545717733484659655913303002496303493438732159916650302034121203880436299071100193229661382393788704781820648245264504548675308314421255129645015989166436449217247880172966579685738938270293185172365510863381401223837625884996838741756997268249685001890677014820462121766728423041670471255593801636892381396140709436286778385765821158359518753921586462114171195413753012204274590584150929723737913381676380001731887588320778558024546658564900642611338977827148670541086476794037672119916938685232048993706203396218522520849957294208295459484340942373578362595544950804234349109462027213643793548573771026986856873159704364108092494270256272567826749348815603511598305759779657874382922555516136150440977777187022517569610644952685003638560282638748117762684405695513285477853640282761620582624445879528006313449830661678560721506272993317541168879366955284780195909297134094708714383020735304322383394667361277806993886429915584747665181876561187862685836600535756867639308514052134450477155834024930734020544758097122963664728596384206263862505353549006801162877147576610960775620873413573377160323649650776415700519527469885509573173926070258738463152074379358134926349886304275467570796961277404860711358465634209694974740646861589431501390250370803854945588555100011258575071880349058928502369307909932547876619905350403285100583161022745894773589958718737520187373147537844298148466865168864158723592489087062695663868047427782132226303904223878224150546718371432447531658906114820102012314948902019292606877985461829822759881019834477661871692816865948954956284315118486071219550150806463986335372657949971800458939776101453151951817295397598771430162355460807142096678762017399634798467189895950106435390512702413757147712299382495793337245047219101331349167227359047745496952371175086408251804171972449725988460328611783959948778369568438978299104141550319609518722491874190005593724538280423080288625675961329349507424555216068067095533088284337613980034501156496991964081146364159698726890568503761215061966064231635506996402739527644120873272189668530481042364524006598630751541791956440455929140231510311797276863377487310445918289043909669015263712067086181849663995078993183197433553574423762149841612050681065917984364773345703148304024405375054740095189177904097466744739757382221693915896464769908015364476772316232685752932562921159180304934540169427246329342653048780599899824914664918779536645737246878905111239159107578323253685082228757301655454524447728540379759061924403135924006875466905937853412086973725610493358801890617692720936558999290673119785456954710536239941653406234028615879616633494336937213142461695786476247998264623823784034166710128051487070719820796932966245412849885680989217787619073205284930051719395478603613310032950835088337495309762280220461469092215877139494655664375550038205888903953922563008841047548847970478899233909249536544324517750695536095739955088269098460882200859122496988658038799458700800848092740810473452140707187410590727419109392444493523594537183861402054563380307483336183187582634744539482736981011044663389465544786390799013449820404405381938953004997250410096420678039712349994364398950395582944024407490529018760266568381059907066393231383647695120589627910945500196510388510156999817953291919150460064672738331229966394967466103591032088826690577884713280132461740237352726305900676808287833478290958828079953714700611853532268051302629071147927593472140559281512187458927365422872259010382177945965557776423550071752351183953959826936074604407684664768888442804736274739908479538828530869398031471191925752718410956679499807408907811463696028446481316827778402332505115662420995704398699789266080843362135687833981601898029039152000551846911197474140254168525154802206946909937926031077962724319570001554443599069576189717766654000095936383545114756306615994504702856851003209682519322987537960766816303585885027805444436740381065457794796291527973353826368356036997753628951621074134745538338538500739088592519231896562333859635666124883787237299444382145917829570761944485728355866085851455715105473964849181987977983259217663621323550959345628567523723332518686098671843667826958740920261221273770513559562867869960244150269295869572913218919907750211598807423064002671004923389230310668921449865975788367651565451712385872683013544958070809542146142971718491733630859336056042637460067918616273129784644856619621409850683963941501062903139169086855244927311239287644125342133344808291050693295966079589481738625075514504444907308818129652189729025155193343123013419097428361004180442939336278439309221262344473703727290411613325053899731184651770456422987324828060662064590722672284308847391275766220572184729855900007258318462564273227031575177106900451309318236382925718518937692541081697476229144881043272182995281430991096350543857605960051208830183736002766487425955378442637251713313364436202326666132255596026091181466310035433076488261345469611542657968412960717255142558962391009084444808716889184773854469024344590730212330410673417919118192071870611773096537303188946481723876476571785284213866246512999794131414857982819640301713101059725290151542904610059097862202989362257034810068564236548690041427851460136152021680549360410624936801950770915209700992774085530463348310195614666877729085324681853689973000557061109966460978491829895979025064718241073255011582851255873264239236148387643686201546742725834265793968993991166720850213870964054996672050506554679095532950143552866857647777739978618078561749220654332602674432591281439778950104051197677621574416674009007999556230197815909989286644737904236502211763676592315900346321848834771098501241041974433778580402731634255016741800529236285975549040364797066416711359117516873403510204515774261638439314140844983127343732315536094145431016579913767626186787627243595161533800640037662001055278427250843798094778179953211532549454857223081759243279120419035404232748107622879954225433993300643998666716153597150696636487647276065343236203498314261712729692094710151012999056330104164681351795320918458554645323944240985744015669349300651147994671643702985063280507132377751819830619327465946092700337748588188271068598250590546758625660571773096808414762338994536859470500456000284068590406452757233088685957030328389003536366479725674323933020721133176199257925215294646728906548963429886021160612162556589108764833626199163583563931433234164906235280025173889590281467396366908206301874352156298810890074245054616821384967008950885701328359442078136569680711194913337783441285109172649836469407839147778403583634269848068152540659034357175466218089066293417108654467988127400504487893835793918510970854919452635427768248821356705859987218916474249792686397007070659864500493113609220129557403289293293944039087591690348885543056119394465770073474880881436509633828706733398955272351811761224646799895191475948515246081415179292364655755848793864666167522271450647752576474722987790761218743851063587004876470520445445894107213614454965198203303464810118199182142235946923644869039858294241588303483190371472986242563395319482249616267549821435104666255912544671521558558225583834977117257205594689266183714593662824255729014237401499920013422395883246800469604409200735160615012812651050393509101071721528694622224381222640251354855461591237945595631530464078298884294643428943442022291934736237693142494567844616746502660698798015233318931155549617150149164201562815483025741140727160830197066917419403742499293403660106380246550631231116364494007635094876374987277573672019231510267066955033790865068948841320627484460084796203582044360112266197016515981977271494485056227804293516816329494990723806524284595431415424132850697448105102588848758655171860811930172023503691456030547263095101666779862544806216060036591113238934731531129770871714484752303436906329659945555009101350585777835083115524648640048678529975103560713576182126674664427561754668469567557287347307998045259393679504436041510293142460741503660427666931082781691012094392265517877675636275494369893516253301954079799380272112349263287246727988749119193576857556338221956793973967167228954700033476037012766772807288267997224689305521380534454342604129312491776699661140942344963043607928412688451610773069861019524589879706895862470271193774713967371382750374223947520684736754557721529580180195204096644552865383513751853015676199639425317326218031330295367115551029067467693693052555705992394509679112525825366719197123142920039998108270915565429902145779733371066455665845115944709168933192166675752843878966407176321897270115572923482706254153571131894548855614950129092489055742207907084192628363091124878369387528987384913144866210385714895177110671161076694174044646622301642572431864910483958402515004455892629718345142073927139577620431757579422695445297649857196511915701132684846827793527231139320822537389459898794074718746620143545935594422640660703040064920370896415567603302970082893258348734355883611718585198490722259027804376872948099784630920418066918465144068506122405571164972782295256229553074046615268934155437750413815884542485270425861636482916543346653278676156620886633409236196588542782261520277588159978780438245249294055271759505558173754112658677140686908337482680057162604572030677654822020565432058228889913122718677161749484370262120649659817372556967573725703424524729816940494847901698328784400838883277909149206036191036577726213885805761125063100673678882794343923338206030229701250721268424990575408882154446615472135808648604930877886262631955215282128912172950946058998210025044425942609481869095228094178993574368235472482524538593331919275234169826324450792913014551276932524240995065230982346212080470993007920312905579954415976282634566823320139809708135237024937732161206067177213663322758535544120106412095788731516050903253379866886875192959397524700658889077695080545248017361745638445534790796591656638431642055802921150112317713870982881278331166254562867286487937074111415366206348457516646452298321952011653440772417857306084538873978695760384920307153146927533946277191283399833872789808195756341467533567356873018956818277009889491811859581466801808032184859765301033355459125702189265687635859145567238918775267002093936695339379019792103447491798532776146802996826001367295860605399287885977438958397447416028486541200140323296200474566913318355902639268642085335724084620519173165361361877803706947730487237784915779220617342121548165512752540682992991023292719905557404331071845751540672707549148821465396588342150535252231284245158042835211132783726803709013338766214806125469048406583092604657132699694061726160139968577806312441857983114063084230758710501136670063050067450371675864103740011477413474204275995473823202144677424119540502135164290177138767226743739781322044057592871648552645322680084578309401304189550095794973838526741389149839722538796957402590385823358573611966337679181183699471623358519649947692573379146581571802375568393782395005886698368608360820296431853192730621746268052405553094984570790665028966180210233217626100957241782350218437338348135887755413697661215450819350946039435249108406092554054775922556718380524001940998899594664172715853300057566295475160023334829534569144314893947302047038044238658979397764580736339306056963241286647013618290784426572652027864888502982489476770258990279614212994947674606206352015375763074267036383101530031763724390043974575116417414865605255968433983934082536283453555546263891876569231157634336889299568429903925565539320243143291149294032573297569556172360549528062758592023280173782569617075389268697141606250630273238629822910035212756465865235392042945558346191360819421260046430372524906556940070969887782016427330795948579878493559024001872197949193211439544634314761002584256503710983536688863659486698735809781395469060770812326435208478337072883456209420378073943587488441084622613068440912486461685177948706897165846317518506125608171193041166546209556452899268792512185391007283309271468215183525787184755394683562557271483387364706357093636599416760445651798646384907951604665419990564683166813591327745178611178725649789439330919566219281854983857663897355726161441969215997281136553567961055686398487285200625063544379242391450844445405258296452613201606619013567944059004966435762673478084041375881937993223109387300317517226961106546975800762459120302965539944523762024198301407036364602935307336254320960434752613739056477266477121594363579104761496773577944400756504770708260166483718960041204408611311330369255636856205867356607262663402872034778973595322411032593152748603515575343037938315735077865722065927494720627963668156519018456991815726655039571353115328962609735422955494904878460267440882263137674586023620639662083590783326254235131904425356599376115878290121467039266552685465194051876286010838411371916242207064644462341550643327792755579123215388298273618797342724764573443698651209386297836070220823280462707555132985262095697901106988312675810100219791508803738796652479042418274042102025159427870465189451888923803093219525160551106303906696174136988720236258383429910051701677031561519766369958638934343639794613817154975335946259322080012990902215746747147276638254063208286103308718210947292688479036817791530962953247425525963507291496701202320074764975110327248163556170444212216947560624892768893631444655386334490739226668293996855975259697783558756805066288306610257193857428866559036038047719548930195764443984288205127281474157178342890796341569113351576328130368322705778444708653819772232819409093011415700971757132941012912101974978814172246424363465917491882302516011378492630428807989319646637612014098830640228882861160549430733146061486632159178783395750602851906502442250218113802526983625463755520508157479451571762210073937284802978904171379772853003782881295587536844667192814765468013566855498794909521677074607335162144829858104747127623408065860595750140710047024398231688078444799616832117882927292652466462813278273813097876580069880406998170771029590198208225138391535922347828537757871340109218181355135573447477011976368682061878618736125682703717996158957295487220189373593769407868994121443329632967545688548531969608856360472250690764196772031490377682548134388198071608380967803307482192007126730403464717021550542723347807753406857010286162303993607019935577956974159342459512009811438508080065407360733462165983619645624970506491254950741356999650998656739909384348752041243869704988123258132258569502036610115284441005598118156777935733733659905991495600638117043137789802033820558775433961873869244393098955836495758077599423316056070213002574423345812902707905333896691860060822274009461740003360982176479817688818319067080292530437562382838197542117474195264053271106324359299085870815270019702743395858255798021995329789759952469083183196993944854832444723991031063303767605631192668825839114974425942783134009213852310115936331088925739290693373338338169882171772647066296179834456929735193760312907586761704574272867036235739263418929215850491085311710406365763676959955184891648650461634197020863634581475721353263552651830221090901240148355854673184329147146287902663767582651001748209880094745045825439099229532234486070812315960666661314806512882729487595558051257730398856932037976967677977643527064877338746684123172750021126431760145241612314491106968142990242683675225403450624390485826933841921840487431638200065536154792803302127785067352289815540383028340429343130779762066979409899918591797279333743243560598152952402605010882944082594682755439726038031364069206880894394521757721452003110269939333500189216875885100769410727611028620355489399078165638590509581650963459377013278450956370643076735281410521211455242337439931493770280471648037517554058894686059400376804477820275095784879085447132442383658829427598483382550280449173436292795015359730930716841671816361621470969412484086663976549861285018161653325079041052792348440464776665346650407808379909669229596377246767104849710516778776395685109872148461600331842167035624190912847779904002145397319337172285848913364996271556526090855340860134807551655694918510385847226574418641743984829521034365629209416151547791549144550392595998093355892330701938117422108018665927035253966494970849142758844471833397594082611479918384896775776868643401064932998327266987263644392135413371109338065074815749424457339980549269763184096126597254736764845018601829885685773514409774850787709227678909487876598628043154228026087889184534650520877518062636026298020044517500000519002347192548144061276733875782800730770570508149196956594906809861622825014606841764054122488708431177672557425250813035151038961111575900366139423418979749197915165023098374367723714629464010120786156898472679911373929485981562366248574655986549368833034974887297187489164816704019553931702466753393683650428664677864727056470125950713276150261137748953373172928591431228203746114878811375382740200180631708347404524073962465573790337744323200254408457301951585046964853836361397233016371776368293728201215938862631740651728449157555793280372610885392356706177996736754305643291803304343250587229005708182189758236700270264409447324989531611848423945399535824384702638058700073718461184410902888872430070366869165875728100399663210794254862658749442275983075659222199656896310520708026859056955173617705923340447243982351424607279982452139784266377624673989611003315780111276297599283846297401688893058640179917826669962685981697033984310237921674032125416010541076270699606139794277729653639068588437557173024095340355019079570184563853862524451874638165993210810292476756228796516769481001488658631542367024348433960297393145156438913229868184208082442439328064892996118917396503611974784067745420486743439933190652137553797907661416765295121726584695289377493847479069558401334521190865517450736745203736036320304420247596853565225819487076929971675269845779032102863512495243483351876552709545523168982751474769992552523567692341178114204802179167420173446656014967930802626790880918752882484498064822710671590891009635077819456834219312970688771051735813074161500090565782964307643897367450831096203208877645960061598483212120423822356179732574945843834309245803515468759187080701616342535582497236526446075863630895406760348914652500667775649804983346021774324776603895159765897919691527592334278655592253394877934899656916408497832840908888541290456473135582315301464537218424988422736760804407994766865254843542880949117895925203476948916113486717037211873638091105358286796769398933171090848532596291443256866812702567904159559500967195064396179130084483410768828583779624425450448424611773318385196503821458058456502518748906074608718198785398271054844157305308994329718441103839493572108314935406473892275192112713147392533142606996478006198530743482535745448278906602008442593775013929267268027713957811296227825417427911643520960106548246170672981161218332551239807729903435578577384420229450453163812862305804028140152236998252352465543676601096916914717126965562238150185159267569616368771455768672285770747716428848343439426775713481886834622254081616618372565464860952177453823869274342364249851414158129140190149838197967029696700521378197529968174946460056558027241041234766150297562897438511863191185940325311988704968759599233215504851931917566031091036848433268321588958305382074402695956818995164671440464952818094187086472147619190209572768459073264673870890578248113510161880957267080273280220039212598336622889558207685516408934957271618452172099227914443221863027900380119189886667155773514856788059417209401975838560348370962503161269156093997825223368392509745839018569910145824024503445364989129570594598637369981385371108232558193743741495023678603993793738351267558266419697948580685526989715169200348808084224611922062584709822913860992437339194879964907529885460315978169730377081017309406012972594962746122342805750290536210936125866752916634202341030619852164977390833693471520238358184474420845461815858009682357466323303791955415023453141152593277449413887659790023490307375659121963292131831040802278424855860836587868671769869691479057686436525120398505056661505686270174819379021442318978654161233076210566598697491547589606200589270824594432545344097036849911301867816727758254165560218513235657652695254072571267261693967119421530285097517345497761872897434065129949378847880692381916237694308324460091997815207545496168851514149168270831946745988493420160721484055165758242169065546369473957634483908396698511951087884749447001994219300233981422618689843777363788946042314614219117932987695503217418810913357022649967490882403603427154225013438814117168257608850444839624540946843260653212749476234808162126802757344513003063357795970392239139360634341999818367997691839603263062849944985217137125253430110504193761909910482299025876488040341649423611863791216194879026298040768213288709460466951455119018959563521816469449152088584800052778734824659789940937670778537194099471921584036932919308506789052520363585324589195479110621881895446798809665729546334969198240781906209080039217616719578314325435487039080740841100039012979606566394131157638130470148848692139349547658457900696590085240221259780471452913943678112120591847955007288676984666412204504498569969247822852599469318797542826689241274929949877199441114809337570545357711759897798790368558900356864934804499585927232572767563583352394967393631049539602071906797894453717717815904724281487321352386990147185245511422207530371304741355465203027822572475451792004691246910648792971986196543016199063938876381051746348411050690871381581264390652950329731914197666975018747340747921512479713422836966983913709046824099363702937053515040092922997349156803389707472833691878994728763702818577472630054059809235555352013501202906501315515563506061872001639308569587552145768557413146242536093873365309824934252320752135636849993582158351024492837302051430263436557187726810654935000269196060725693378308470472656616779161647028111096634192434768839156137070095948144419960919926872987594541693853895045647518589693525666069842122164283215828920353201811651951928718443034195683994291112065080352425094310989594809672596711173092537152545885033552926143839871065002411730635292249315059726259468239954920946865134652674257118045484445385080136749815777719559776688153073579581634437461490347306862079554135731740522291090785469671697241564308111934312947469555417920673895860902082285849272979093754449432391321464945365192565408764080265133350408844871045207632678198161062043236157507183983507998411714367652603451701132219005761498113351577313399167240372335147450796591659198928588917587922632667744129823743211147308289311701729669197651444039282389263533733313849097490767615939800024191121499072809004052903147523332039086632097365706908981987073110945746212804541140253732075092543444767489595262667453915538541518279008191668497481373022584889093394916956914111507256360156882056251490342534079136647596059207259939556661619942907453061041301448250207385756977463942775915982060367913698707513823457054464372372285817623039913979984147474737851186948096961880431200519158124464277216325872028566868075325414185692287771018659615560890374575400659420336210903049615122653948526460784023834706420106385245471737412953473208796167429759082260958425319083794545378694912456111744359858108540959540816738293494971990230671537072779712901725652062836184744747943631445749889258354153990340002316912787577181417315035217454928265531714306940464223047437700678194067074921642843056481693998154457772224839031256392737073348172548085158677153421369065211044384590065998489336548972783110771455805636199563672835414712754935492360756420374404101325563850802681199725476074236738903684888754596107503995361535683535569778850250157955642868472418809150477076121516048940244656826930110168807530724322633618406296683238817745384879941162059746353458953692622282318513155054034636038313041904680425532857802835229099415445522423010825610550695189549501058281701054311328135372408419950063087508373603970087780618230972401659802035802534012070749420459968007439711110129145104344087523957165981344079060285192343131362712407964739986442486974869136871324085846080926800011243045943574355638790044631725541198065033340983542452424078158803986124372411681329333900909369899984894373200442231943985805144935260425277549713568454630830826032212469288629158958502643589902337882818368783001313861291706271704405410094721089424814350094181079344496568831418846924509900265786819165332896855314203042892924158243815362496976494352930445261807611401298164547042408668525393211653948866636860988052228903057396309886201860135162710072794758613392104536848888734704623771959261000606104578663792761187327390857320571543922605615544432098483050726990078599117577042381717278025529512345670624163126300908747093645357885574571041115925272601963152339205249435033236945391074090267510035896564148079692280975415933352300364822438459881239214980303676546685051769263059128419118056169287064399580253093691609959160617047650670337445348527150725851836988072763975346547074243292221765024945062250491241740174831330149745327286882203526768603308294059811236584519924935715330579232489378244755967860229080239110658524012432332144022438470982311718716342532149765968442440146205801645162576028401699180065501143533388459596970371517774407902518444356911276907162620424075336964880088564084070967245446707789061458627667805487412995475189596548711349632951322012076963416441161799495354847671178696709706866601125558453542630359337203389540025575824854952924351207410490044830546423454423928654629672953948843873330948588223399275346481161508716366257904446867073392304735906180851200433383248929029052584010290072643342760425440999353850456977489326997139693633160558813313621734688421349138615470892415870583695403753807086842406161987838348335098002573951015758146533035554185283991107257597888785657065144541348428715256160869026689242848987070618537462174900497587571816893251989432473143503384408277633589567537050508364629199501005937806444374978774609611059743666997527115693424041437483197235888582943182098330437233187713001119111413738236309421053895268357470104071271225364312485476022580337297496556064885870158139421715902839095424419189519184999346668077372004591634984475935534768568327113973658644625899587359953079795062996666005545255181634145713813914536723070001467644205727498798278046554812413210060174531904140150376758317636846542810320728477040999050496929165081704469721341288468541869078876533029726992531252270456666877996697587762711240827253657950901338039291603657728543838127046570634833537092903674698664216041267615370393931411011159367277432387530228366996468910985770697050931957384352268764765623345865366310448447034129907387031370074471141716902498362834558277280266515576837996058241687106241147441444774867247974563094152627254457573470588682873173157537683552236196063220414592484354905970907562573045984929800536794403311297038786455425293311787344900318446241141628446635714710759390268020696835620890141836357481634864716700115620446081590970982272042376621759590275901339936363323192164056740258344406712987636990691224068099239448725075470322466427737759151868776356894294054315378864796455502332016497760901022458758647888771199387053080883118342285106682165021374546722053961011315960125774621635362188409810925728272352487636651525723150049553241893300508559811252892223115003156795650395068925967256861831815227198885548908195435215485500146940152338645198444528497653554608394979891589440983811888565160518814515625881939361047339008635276540427485337285444666933516186787974712048367932465730560293456965489303451268302235442019224882738098165188217440717414449766145581488015176723890189148722301611827792150301404897123475478982665757344825839079888195290641871428124091892547262721786838756696593978513143965058891134567251574118425027140546052981435959344357243333850219130000571276304197047776985556005632551348418423351324295047399999425164820559389114840479955104484224274594360479121023431004625789043392985079706931296121999354129818206714536473995012177468831404283241325177512939075238383996811645891476224499303549905562567966397275283065765785815755549756650072026881391542917900335824317037877742107067998921353585263449041665954929080506014929845934168539110479107259811142284054039790024848840512473723568451945029942907087643570464486139102269518984663537816471811999858633697345170432040674342516263494800749404961272519234005498647551450521833876038452435038279822439652100767310436930287718737691214394788424307316179340732415195258200835919539777393433975372804501074091636438476879271800504583708333751796752020423897211014075887878681421693593655355379562763354150925690205219129318581979538548234254003194124295440816796080129884762936219211435764946212669563341895318681969752885310387961833231655344202937310795689309086520496651502108261938544051148133872461219502274580232481475148675404356604950415474142888725469454100097136039466922813510265864644381703508781816247094694565430762814377925465725974215329423695727131507242779484915426148912610446223644484016496418327636834917183708561409652516532406515968845705743887537910282520818880248576108169964749033782585705219891773484374483585723893257073861453121738540497473831854252710624578144771238524036778927383314908863671018074721789286445754710802998800858516008148350319457879482393164286183215253250580679372007000337509030524907958281849896322958942850531208273921768429935051614609159565317541888710119883987472780757653966345373093947492863703557176022979627184244844684975443351604136655625129436584759045778311332299226416150812544346774091183773656187949628825450841757748626417190249964846061691795255274123036221390787992823144215975664793176727982619100212051356634208486006856730659107327585667498513355410756735241875654527481235375964413616430695945764124140360669851460138621715204708340655542820136631947436214052280990899039887381429215983330191725599859673533939826474995386210350039872943107948467406943139555570772738139217443341943164327181300697344731646352285295927173599372383556735769375975629941902137421889223944811097641693611368766467603570504912271567843885473182118203429960230741685752873592418413813589104402807041944644501199622532504701739005306003305025039622666011589368351841132198766598390890634507941011454538332789058767481498561366134425810963355111459519377711279218235340752232078394814761078124618947322752101418569480435810494231851177571907979128641728899706727897651435470678858878047012710281845201441672774742852557317328688224758680140199303596384605147692307813822228369678796980640159305211694955540823322485239842441807355281298522546145306913594777061497121623877038817566887484679893834916050835754824629593325661541437644835327722823100894382040595096690965921326342705285788258331689283736466865709276539282799258629110369056235629416790475093295819225635453896524395615466287740046166500644061593852606441583384599727039722423306251546094340415013098482306679875605148835943491853257319039338766243403329541810550009485137444611552286200399403040377840056548463547049989327538219110195011833424220285141808273183548267598670163644330417978594984863105502959945988600424128038846367074883235443463123658732041675340548682497138625620388823676180211168316833314701715576120808359115136217566922154407302112605760639537822006419712270528458131625416485841643826696953262014082392108216930766617757601035115411909350115613054542841477625702212125501121453415788757826697333386778863949212126561288843941368269860163345252765664209579445759885417684461481109362097470280940940461314817106535491466286505746994712668187349976648753394224943419098797291556254820340807346789117337051945024111282194772820804357737745474819616266326635388071853794070011237764706448510316818886808236595519654578360555155118596394222491624908575818840349585981698030409547417580223088444401208050510583927552225344373034803890582229691991709916757967774665381571488092530914626644538276321170695142163389421425899866410063385084989922140404526959581540791809926454258782734412925214684622204432315700709319083428755342337452633440133573565834895094528674188580619100769400362146934844104815275798026585784830552259159119346699383444647494474466918995792012060324893837582986633547731789349636637083543378374706314511732987957705035060490756534114668909980866143101950160776787479299837533555102050550128386125496932827934429482936345818948928726824595398992509106189326736061905924216939509233576182645584630774736416430900713947076218593110755410858250872210669040432291568978487415517226469962457991337722517027722660858360491407466681348785757822543641565363002949138677810692808976002433859750928494100201244103254352450205600395939751909898602714605657749304533277280910517476274021682554471450065995127095168027929989517007487031019214919897182708238093649024042701413788192243117266592500138367682560666886221989937474919819466236603593373916454891453484647226596412899703547899343704346835438412587622930285371654664937565934567424375682421520772817767896266899100114782785061317046993267517777952572728021250367975051068684867304754180328643804459915684344310460252877094744687887355827982046840078608296797382024819751094666040071670055379782747103132327125575212033954459138166337382628580413983564590885198191103371012967425470302509635417538897767395027890378801361559529728522583574591950374709323594237804536982155875146587887118182891047880588867896327709920608522514771646284640103599237710315103860481789046847326622840334240298585388953949970969749121053577853765036566237747501640161546422597867873087660433875726169567770708950949543010515708104217475514413578185441853430936997248737576255250252788735591747540647532488571434219784342772182996787522684584687882729136346973275252435611701804537084437702558435164700744218973255255528848509196625361523612882422059437427732017311968498398321976359610678251474366202388746668134617219069419346060725752315733671592903794089513987513415939054143527831627562279701846810784494268336123743589783781046246440183775540080081114366531058917104556435287731514466912494513668525513118051958857082644820788726669911135149441581026351659477822007024470624126443378428147753888357794035282898633307158735841296057887716939932846580981120878047328025339094029256126427438946029329790029680855714567317620540873761951264706561559959247043578040815905760664444100550229255326213970097509737692324146047330223074622744735130524370548919299461923438037436788744978752521241822300725144551526153375125723501222461849166082276038152453581194822720536786941292904701540587843536036428849635799877902337325932579284357953653893252505363934093140237769736190588324762475509496931783788257391160200611485237932838476498859843860598920248087543787340500170197936039716016730386622226997737886931268702574122577906150840832274689261953700105744163314197911068116017019317016074477738936075913739408848490913366579757813516806872507438996857988285607244180490208964156975074854584524812514296821135808618758706366723147180066552086245585182592919631168753309669031381206463560451336932388282215049817691600377181129471535356712785493600262966389384774155207407752204235549361502524031312839130365078025628852454536128622086921040779682998458348047741189053097183853345372339143536303926640359251439825758024352616339778682584658472413647925645203190456503325443364581627826871970437172466307605144471048853589773046577949141990608450596879604599336209943413338835944650882678802655258830871067256620622490430141113512024180096725419054224162134145228548964276724949412289892764046949100398799090894359445213625470474675547369977773900025641184967882490993487748027890247147820629869108161314180151222008713968077047071008523973779575105205519580538365764284862991745138065952206156838107167366142656118360368862101509022288301764019773322341219209425137462772247460421651193268469806358286307537534359686184408163865363866875980889912507315117424852959526125389222550642555372770530232168631894301179712512822274451114214773810361325188424028176564566192006116303845076412790126911053843316996977675559019361368257473280868690008682792173915358589282309560763988745620264759834897645709140304153115872362969217610772324503589283773454763130783146815674416035079718143934908366381066263721903587442601477588922135917990943187327753161125552010096243937494361719976715236661200954069468633280400953648625747028490406577048560290535274858066975009420879077926437607794613807083318928437194081187823960535835672431160384228908216006919284753623498074228218954503164042871003549332034742420323579550204244761991189334340060470022530841388596211901422192533887220609054027499326658632812739071691802406902888346799088667157945105911815402261304604199332945637047122868116249471271522935634721558664021526400758276022030654411317936695138510877644825583165854799828029406115870983162157047458703828395899995274642949668851933596934423380089345908411253817169406286116457850780371356260458535096212019693634843061737092599071344153961193935096544374854680543652638906919555229339190834627970023482319719456108282037492277148313279149217450466308871346525118219280684507678238533403847306460223977084817692879698796650498055566158340850894361885834366035069792647917809601454102345836532046835359393925603413508966247135388490745190940936762115846656799936682110914889740195551312117736810640689167007561998637608269776479261413002953150982437141996659622614429031299300941609095647679185793302815621369534431504630889909634243042426943691969643400242568385723588660795057116036615620098965019676593824825585427896567695428183824480705305261361089551885480013220764938422519800287237747208065099619308293191866527556238070167959514849450988118497135417399695407307719987490966140338386066029321941655555698006876534597372993785043590504793682356582129205141643594378403008534135649315999716603476171422207396051576519446055884498454823680104305269026772510008686853874452071939092158669441463253401422083959409517567039289626856237892166816277530339962212726747786957419486541545794928667588789379631311765823096981417835365769441020828281917781207284550017596793967691343122259383543158506324504551334187358068008053352211409783778972916176789196704973597766130703443865905614444518896749151330008885892977345135955638626821955809166024128887308266009476246131120584841655190152474619727055089397357366671861025207995828594235818749199434768937947250625034819676132199794510851848484481371046386508829971595260538589169926563835724977972911570813890956459016914882263634081318820546309487107080985673666568906571256845569224432351592920773714569010610703745140662717798733873524637063956823303929122710314261038986258926031394427684939047306408263303386233993075891227300724109484947511657839672920300500659191745526356613535733101386145280146717506701558486951367285318441153112653132082065903299349929071125591913861244420393721063691576885112147889044503295056094616319124010827804452186343775011219140913788939560909957138062158341264460533279514266639881287182962615059031265658358174397298220772021433705081269629810128963082995391043901531114308118853037594815210963552600399913407851312698984347442855328438087522159748704001500078393977846346203944583001501903411082481479600387192302729775129950496968709693026624447007440791215525652783551481834248836721788995250675033010140896678417459126674377134286653388898042526311949738482247976426610615042382923713943320214939707495861112224552280159300845013063006965808630650736281501050409576774021521488825406075593627066115519923602082021710268431952201018920937888430906423266527325992217789363753455244481877380935929968387775729405328534663255523316024008801656020268678059006473481925199263698476731583723880704691088037319628701456386134072284524881947295726461800656320826906985060994882687499679255108415585700668363318197465508752339332888538425796839768695954385512047604773947870683346429111630731435680554310205764709081678579342757558653357792500437177243524109533314043184246594594895930129267566653066247446652413816747993776374401760793342856828492611957975621899579658700782279398537911216948360610451608584826691739939412075566552916863154036930043672162142113943334327949295680989250820957311763411365885441347361764222335505935498164952498667448783201052352746153110352389679834178952521478026280604711155521347905799101729579533398406230218064828393045879135739997097232347178767902653122876340606193284024857105894212764855146750119933503412846560279470633636893978331181205093433151641428159771275312728891266275801066327832952436223675865716827323044805832589373972632720538086525578496542403228198899410540142962405742261881500781630843106045102509680095637852533282113380508462666236896957364018265869946198049412159279543672660984847207384885649713665513702171125936096644735377208146701813179906486788150369810160370586998747179248196899142534839450325560053568573406081038289133991681750342873875008870554428314447430219307544574490841454914746488628061752518864640729471011388110667314617218094228846744156945193428510255973186674426775462407862264020277023977741723131824941081313078271377182683748237117315861769941723336887832924626091356280679797691988060096089893003510183769286924845501495854012731761536531208133182071136780704088218253102050953461206346860627528936547365078684494866497209296037121121485207606159291396985220792426771583454157113345210366764578242371311925222274775627598533827861475985505422083219795509969068579384457674795854840004030765306912341223338306078546927063224202651052843326420791128877224874647840459677559514878342765913625384377450187688707629141178840174978186140222104058801657338561785104406628329191137525301686098176363229618927110072257864766065444911181552600871636486461826579593997201235192595918138897092036124675889927404496578270894564246320636079449117105195040220868997311398994563854350664232306080341979584130091626365883668800689959885890368622225725374718130563165049314462490104130918710538481457556191793658152700855604088695003213762686968386705859714165439803056912906653722804671982061475982211567617553644864685464103574195205027514497959885273446471669715969945119371160330438814046252643981611077960898114988109731030450705710879987651473415477869526531406365556867121821536852538487024529296357784446329835055936601954889212040920514210776404804461298540123595389563866943838098344617440697412200829099574744034737585255465941731489742653707177526838292439795551891807020914046659751956171175077654629448162134992395271828334326496314405574083408576319580286252125336364265549314816312949217404171919149777883294433019592562410264356405202887455170972175866814534303197138328312650659120637499061205696672559732156924401637961794161119619483842551236461701875275666327999610724586862151856880529938735023773956225899804638193704626022006222943202644111791452540261994815361383495375235800193385730181779751725101600199040376368494005097784379080654913550739139092325798871346099598837953694926510100310290455960006474671024965842227906875180899676502832550480181503742227585139307537981137089362327798429459037234355661655090913154075038801214721392025555902640506777721505683583558738760406020997485447289640991208207459123261256883540230907306184687341291779590810219216170605377244135145282316792844718778125224905028013353661889314745829621610145998863209514150838353356889566981986143505855710328516162486192359859525387181905709866663914670594104683758548095677211377578548546117693893982115990188604423572842916541901725080028075273843336407715912127349454096512838392639798603952154736918042926637774313638644637299504956255933715484560213484588633690454797527330226501458335403709084847560225686575675830402222829936135356114715896341420044211840814584255350823744198872403482407412569437914803074135975524507907774702345662602739725190213920766027714445347921968143050971412694432245741295619996239982295509281495976035824280369015246500337292734073898352450226135322625021587592931165892136682360795939099171119434259270823200708233466080703845726546717180233895508017089342789988881081593782025616839369731464411610319670150063027367018621638642358718446019187492134362813436371217390581867331168788072851399223972090574285047199570685115153129273506231855642726020731540845972595619977173245817218052916033830058761878527526385610245120061372063377657629427601748186549519531544969530422358278176913645657520859734742168128053830364847185509368987628419143767293460196003263791000836115959437377977946859428055792143961966447701543485789793073710103171605683186654399224255133014384268479750022893370627967648451351703046040321520983820752624746739401634673934725477468390239062599269035713266337261851104091006705837454835189659608816841353155293226311647263145698898145830918101219438458627614242897456373791779942413090145059390215960726013474637348773656378497316441422538869488783244095730552025416581421512002831827293991040089168999625100113525160429168782657005990536600220642239013185304700317037769278985291877275044377029880588108598873214389398967375058709390364479994441017701282404755780064660988629364281805422195374117965266185206232495993627307865665822285863393070626770027614067159656232421639844069566553561112328991661930027196194041743340368323959995574082238977653562220869190374716717335369989596944118252167235026857301793883229446501827719142010628108394572381946030854725120559972021623982414937286134893203996750489362619085380663092539432638566455814984647015079419519767686880982778853733250717799938693792802837350782200294074497778326450698884284772481281060822436333849838462433226288252701063284693219684766748473216801394199590390232016695824585901484540083476237444326602226385124218759399959561055981708079676772503633857853494531068560935568870199958636098451187252036272588440095926532517139303788262309442805965681930769942418511238653346747781202909841703392429948332755784978465137239853758376546124286086473311009667624367503593248150978922861069842576131146914039926471478649530877878878174533745686256795533767633652042540179513877679991107957753475636155496971555742153787830718804288294472208858985327449576947486758640571415875622168152653747194633981700667985526428749768558423995991727571888867184499714350739915620186603001079048074398161508790080432772424858332887727126914260078865546685133021425579705329752671455820941387425871493682690944033564593983259276559293510367281612574893372435536834400646148246593504982956072548965973011338479852983723697041511978715030808317548889766953495583772599645108551350599629293875945851827662424777401218577967613962577963493651435400337113991752863271170563491082881819760303964900975803588716339872441211281874466258511244205147592967753205606586311910967610501137947193376071148662129414359920580216530071398133695080719025809121973693815472405844264636700239006315835589821799271914974541000458157013536548824077798292619808873569631177965930446380928464444580039373664390892410981146194473157279444894926111577004207129453357120351224637053096179066675230652365555772633296148480240618385831398621182800752211685339487619146332681844582690517797443640859782532976689781245029309740814842389219086871722388463695370008135446386739224189454890902855656314670164113065693842858672292354421732269687750654006823135086596682613427260969223927539750828323035994873029870983289457796054446066718873708786070391537811175075947425816814641807643476672307650422202188939127264052831115253117249817100069283247781895937930530760887998479429935227500250648783375438439639436331445249036125834394232527526691803737442087239804890220350246389677774484048430895484487782190796654345225787435114585185277370684016480708388472934564173573613580609186574885971249094820215768606019512848139439589260368395753200126215437278675526927175536629054411952439284440275300729154502416059805128370718785863437088073099845648907030205963258858358776386175354502300592355124479614710078775111873582278812309528190192487112031460713753564626574746625491887193281217208729350856169323477248611614818638965633270154322811260241458861711040378957613623461437499156860624449127308716230865821705766981600064928922976991767729481130313065854218589158258635026446375503019192043708885356812106201310597546022094712116793997747370391803534683185059633953009865368225688588698518136789398403149984013560407113660754315769423240528199628957508043512739866293102623525640661719327483693271860329623070601435642656073342021902519003842711497520425527292986840902701058550599250523243772768021693634977059338135524512752233497982534652086589479674965528825506095864647078286784983363177296439740902660401535231200899805221342424040485470074098312900730497548865282502416268288463977759110732876066986352348153473090792589514163658612219073787859341289874940893668022812046764466242543925947557505803271745126844144423430647758361154666430839623339722973571428640832215378051303352051519132304459803899716058778476147054171937440098076642398958100730555660467311919171853115349888115536698557372304936506097443856835486289598873063821503126462872104550146108422110569923757642284347500413362806186422621384702514596659942120275489584369084368836360667469133169091870037417284072312697410253100166473392223649469322134723559266257499547819194700834279052823168968407885402206399454838996695815428757781179158311206702201910184175581466760204313436033904116363042146177097021223731908952652218336082082579609138360087696986495431295766365934022904997971228419080736492261936490139904150596657271250935041703345750761331633468965459915018940830546844129529703640786123785611260175043726701624675746127613437779740536214309947868036328377589070296524266386615258923972800267362336217075170915899077341388288582426534613438973013034144489238305213623004749143734306601313653204480147734625513396955811087475244319445017202819746492956522766325197976143219482858721638188100760871813329308698251587541431585786181788132544349962066693001811536845093442018155369461429573020530090650698229451365535711145129844956184392924417859618887708269992436732209129617893692429511495113368168814348085338984171459236498233216684384222786662369658101836215658864782542033785013298883658492746784666791724131129766976065566311772338784966683060977174549427303878762557928430860920321933479950974482001658845706356080320731227722546594901530676279580190445558045194571803118806851169567140194554841101672029905890462401177068444432975249770606532864476735406617583455977641843236654432322096814330776921174259054944080315337134064793874950109394196677917610820260420699020456607594877520649333581077295963397049743256105831806254315265901829828437485383468474586868206451954661494197222013523273572925416315714681383444482707323799808341113265685570550809863324816256850822752893028561237935623002504508909914009618347363435806059679833222149390004141094065557029484874800607449211138765442842796687160958272433107267950475044608465642693633805697603676354141285735691768304308482674217336839638711854296223313997007209691055342503761297889262816943990862189217048228622746753685898198233609816510121000787277673216971024302169576909497604201671293517058702842959592658302767837219628555133974026615905837401675283994308866118320937450724199414121452577943111489771458032264833282626802574430951954931323001259356202781141863220993842315037341745311900974490016695732353452864694873708053372275534093551702038898720214520064901190395214792126307737190814791019446954459717790984907906863216216103889463836266241433300718497127104433827964778943581965284673205723369083855760944097330745607530298812906776316378104977973083523122827031211630542394564387040249214007090386710130042122969374660413858393436023873512133162178805615404885535628604055644927975259228346158203785987545785287615102546451250687148626528692328347459401549196812733838044509219636107200429918589653242901660757674643143113017430459047974565663929314472713891774258370266851794711679787817813027094765923517992545027462251775090424125632416351654325053729886015951045675130425555861786301364478244212475449724847668605185104260006727831801738117740380171240037256072202452732611706351456869007239877363696321397637338140411911623450465491626311261774322615129927915735163865696040219013264028360626857676868069922428462989413498442895799261148829276805149128095686128914927689196794907682688240802551307408033705264264445000165251772488388517067815076263752620110857992837391019658862112603496553940100673090900873427445017640734342512440694597884217718825662226330580372282894565002376334610528948340701213276772206751437220093495051228610316572097701378427520605231884543485149323832140158179462959202803319787819924809520489203411787197539816443897102037130237202640925722340848369901828497046761161330621215058340289351597233876387403959757229199406513858420072167833618358081631982307568360098009988668470212873032951335490851012945995885658392852337710863211321190345314757356175078093113916480496674439906861758190277343630068981759869051974494892738702943706096047877431224378399791610871355411785664375020189860501425446946047994972201244503035768747524622135431935914138378491689558960063041077214259734629812516212921408941702235465962002135369507607662133056840922774800950479782730921057716285093233727891485262682062891586571772431501492822890468716884443370280054216592614825246073022340830370894565887905783450709200272080205410071091188877289253720186232283508889212583398144323766014138133057131485532166322550976128548886654079896232456607301674692319572701187910946414495414998435534737327202956124012345281283785085853359235040378826841043487726987703685500144651611031755177262855186153706347850936427492974067860421194930312800389460609657807024414056225865894681314673597098923600938059781285608317213857802378206048676529757737471997750750564963508676183274550410693804571543689274864919535458386781662428776507650819555862651709393239067790143435040498757155932444945839811478174107606868595884175694069169343286883491405089049092129624116635580258634315696942915220175634815961354872216613874678647982064601821621434781886643613842320480072541406240633347550922553420003500942466404766310725774318098474432037491132046714545872596841294787012173471034998374654698761598453258662744032845139854273282588574993610835131019489348469669173440542256892016788262615540441671335352980643999409777175726725681363703252382041219969000298444693877359650047976631463323181961552545966152910039583454788338183721818076686679597153889322063367673310526546526234413745328071753744354727910487052503941491280961784338663028290614828322574805081404975499589292634611986085997333393489503144185899735943346468479090428835140833146621624376979634788806694899708203367244800726927062078938961082726278344079628892081507659367463214672921459621473295889974303393912887274051919964643316291888809378293058323692360295112301515044413572671733683386949879400790987899865658479949204941742511254528140386850740958635380548933838146105540533776187898121218034584818764593908701622119228700708819822066394552004065514454898384223587303919148367271328901946633474595903404225454394228423360281707305799047188543029426036073265617776682144042950233763429858782527010328405681001106890043800324626012396768475421083723562972209319371151414328524533556040303448926633873616253240907636969958015344865143493628732652755865546401151331806836696726200436440580592771240319625888240992378209666234053912067118918842445261076113018718423947726898991344494342702524513186073956465951696364285495983756937529040409268286941508769742203436638137700564140343730481476604414648598542186757274763181792638839323918255887284510063868584778044521118935753551884501946326696304342501836200235845912997546665922828856085717170863136433187409745136305187242100156435581976562051226950887032225382624883751100253458270658746604331897591646448152849272140147134439107226109091548199923514202003489063407210257359504033232374207261028259693091752256172931346911314556349338140521197143776323845666372155071727465272983181064527128123038499560229001725112553352633397420540256441394356621921966755536035579682379088511577233338064047503246385089489133043707407897223069145522784350159484919749159493888461844003580596008205486314259319131148727055110293109157583514434517512722071939527407128896728962540468450727138528231501597388449501587042062743158702615530136527832992701799365619327430099731935886851836002550494716478102283599974089984810751259287648403452732712915858867620756561474900512714179644147460008393858325084204288793650121702866059105220585180749202060361747490359652119828461314228606515608710752368067605785729746019547124078686843843971510369079721013793099710204099635202040390206456994872974167031704478046228632341066144958377433154495174938669063726020959820658831820181173066468350033281142535345761494299713906730778221381540009240843413057400450033471031634729672167320516448729695817371478851163018139928170453967816899528542734395959788843513608211473493758649727003071858396982439880443809649492570259951593792946980628966839204400527040978311991383004874834324096755897450799170943327919977849483394233717895539955878284994635811993875365457097158139575795704754516290515927385832901755813080059990960417381606671962279626856158561708046532048109807121072395632531008150336428557354812442782942316237802036934138817809876805404063228018662973297047385534012241493224954418051695292781610533486561070965932071648127938729661786260979755983696721919053072853322247223633588324498116844370682610839559360549729075184055673645820945693360242789759396521509782769209315610437647987591756013254308147083269546361065373593076636183300572295648408254214004593109872558279616186416746182666341286649882796187911023439210019333971388304219005190401868123506865244858187938179001685704685267793122135418664693362085505240696061012755920810498298098233048581338963829904303497277421685728885535846717595599141637080474164217893518683547332263795174687722647277932327094424508491337614027323848725917366852641558483602948153602113375158257744327973743307127649344411049858105406059902118942086177971988539366760917887069026934782470796153418993947385790990946065038638204490306207007206418926987774383607180749075085610467153860673646733190071324155798995640906482753639610076812914784665238515265397067887253275362010554933161634934830358469033397062926011339910829930975093763878402418497834906705354306234576225819856042857226393958673813613099916317175732874767481556638006832729730539129358421821057175101581277181946267356987091402317268286261535890796507197797274972809062494061347012655448112444295917531414666909143647406223768002947972302745122682623932834478399158975170479806500331338507933418722940692164709253104123652795888614001968693790523117463635589363583797194826170752182934214000642847454615373854247184228676499400339518503434970150496735744942292390795292392272735430287279186258740829250985478254607522909794558227878976441461706250304103878957408694741962410190295100985611895814676127410939444172525756524328231268656218283305448411052496275713558034866187507949355608649932823429925173348309783061074593690614352846508875703394330373922045926787229756203165942884389789748002656150240532312975562006664928345193943205633157112115140034270054181797871105257670125370054848442708562987554586325770988848320566565867223404890731072087740237375267542425086305351734261198856490532157697338334273420702900337087743800498159089572493126935873475901864068800252202187004406564415081081609847099958937948042200331002142796839170763554481726827507643722168947922286577501198167162054720416667786487235608257246660918720140824448505180621430757658769079098636276570583007973917152114847055358234012759485816672952625432577013279719711923287287254613939805564883989655853789081759795822648995901939980435605849827304417299732381860491187281492448855310838911985001992953629050871177575060887174446239202183893648868913182296956607766797006512102290794890319812614241713385699087907347758660548569808185654609047227856948265808166033503774279409455520434388467458570151755832752171252799830334691734843680081047787144649814977012561841234299832223504440053898844120071093422469222173054358651049311123254549816341974487327882924204249983234725691371231243172076208919438682940327514686552367747148399794466621835165202005783823699165244436822810804388808560589372673803319057667981897893024902750262766203448036908798524669358208136391002719377347191474279254254931298042671596081612122727537461281306502360151639903107396839466285430973967337767105100162711242490092675309279615302108654918365071165662261443073267640818652136986784054886397768137432850095249896177823449016717185097013330070763362406259663988342553350871653050854691808250374050701620206000742358985465590808113358445601736836095113154613707134483655093370252690940483625211800650927616085120791106405712198804962976088515776325810923866234262758166840568818097960711866494627615923094776381129953231326019683823683086934989223006157274736459534039068582516333738749810610271969217694564160194587681986955291571391188928057791737623677885985938786541069678421923984518043061860672038254120345493147029496548577367433421646132122302002994622024793597302935083480952404135073607231372741976369061632300216180889857047886197030196712603818740348985524533566021146838712180299487262428163883482577775431428331331379342341007105756574101813755885269356508678482852621376274865752695711726732290679599436636712027893123912224334884893409064032891781585174983476370787363534387411069487999994420555153886440448954357613042796802668487245074151657487848410911069548200704552116813916595757019153464400643282842400051630132547038453173603254232441070516354949912518286045744921694384630546719940448428803744841180779175948873402724552038969435915548231561972398716449500204021424176104702514354432287634683855808343109437359836022855302762532831506324494821996215516078957809071947221318828767730098939948754609805394922009939986421247209748435630061043827759081469816786947249023550438758974980181127541324491248384195967769383026681839189025578868095922452943307179454362969061294108378121572959615093952506894135743136161524204320030618343120090162772896132624194806298337473973719757426994218709662720111940886114897348781826737531402214630803140220172986235640048614497874599805237044388138079031522284046130075508135395859631742018755449162014393905604205941995004128135389218851011591246271712915588957790188494372333795245960987618772801118794005360829351823113444146795839389314613592764177189419413605773058123433632579818717874191894347562779416135109534713376185514564553392370129833383771592605014797730444533942578037988520181439644188947854764599530614880712620284382796524479417074801548361588596483759226113483684531638490963597157916010609441900313482651448750026901359476441259736371910544649258594138231306936814885600754787115486676076191845156460777818154154351455140392976710622235039670751647709846525869083323618704655508543871091689516827651989042253001179080428700734084661400947197469950794381580696238647114624386233000011780025500930012674687493590901745868259006430662186472589598433075549317513248388397097204987592512452905855555813815311558982623160888997991012496390247134523379550149350648463954911115957986708732099869655010335504066152068788504299106976213450184778347984123672592314696780015176423175737368715710853413960879055769199216398020601926046061870437693105947531933060097370833575357528123779405282309317845317323671072033174658066791916991461654572891452943118886632683926709394292437093833497355725154714800697116527231068414239953628678391267602634616526617811715704657155028988754015496794329200869442240646450872665809022675021490241062680336479850740694662331125266118884092169007322845032337569081140248573110766219034887455700597439291067109887538993802920981409004516416948169469354574259833839657880800176874970764763712247480666438341735769696493978810006631629121656478340867842453923403286532102553276356488472462667909235627434783712869560171016705931080069017895221740148432885248458891281374159553151211260662984634095908026702815344040198798481078671519971278667627181847145794432553298273930915002491233005318948128875624201130245658822268471858707446852544187403941613719869684208305263213142975243327762778848375461019276820024220276042779943351548806010768423686597110931923465241700129077026374970297121263643661787839947322478345913035019809919773271077659596686023206938413620179691982125632068084102783867865198379144944055092578664167004374379866617684264217107943544217327201378690858851062675981949754620710032515890160660800273091482570676532537366893250337595209025393965840761446891995962398841954627904491205750298931197169549427105623602949908632476341273044498909214058722583936154412372507922682043893737818651107277550488985938729869176365067783326661539042713758326555908744397995848309823506637279823889529084827170520973091846533590001459881165077390179668405414702892821099269477720120319451271956772607637473363980401363975551184433461516978388708034563227394559526158504981735495555153752529907653645732710704346754499585638353613705402838866065348599158642885734164727351440571043004336571997221945877593644901539949905757639256608088116829448032388914244846301065314541310456930770417363262973643209427719482753424699250618066963945833256440727898813606490946195491851847885689101278552582979784514678554582538342553930823926047294477269090517950351140148436642614704582036347773921325048121474658696847224303245071573587051828496230083352303820524962429238286967863883527290528111859870123786795709098463521369365758577914300096822660895346428578409747471900140316038531297159700440342244564164613242272245969705351100820079144192237388345003625545568544058371184960709731981850527956334180848541126446446658634003702688960995011873784409584923123558519668899779246151061631463042477728395234684129535567072693676777477010836412350564239456275137191489940053809002064779840646714391222582625531592459186192353566489817022206368872476748087853968066591240520850281724728137904913140069004544869006021573135019668825671702714507956575943653308023371544068102443241735598016682424898226152723055837997206426549115996752295792796177818786596002936474201499076159933930254352770575972116677400661604775918127991800604837391628981081691874929696559705437551500063291802732407881054339454696357502183903885741472790740053529530799319310241271291753292216087686062052675583235154761568659301096579040594347378132524345150904641598901931656396922832728738785850527206581372377126932286887067652694535693787508215474814132498894894568863774824028270974592569550225350798550280581784561623691310493766761122297090738290909525593483269274932538639258001864231568222384110498283391845587811926222664411324034354296957186988131403032020593921652329384564218332618041932093683081010057125029071892181962876087865347702178883687372843595041722347655703853322014499542124446123573161272445326898447461738020706381003469238512709548594277663418268285638813494112102382638240967802641731949220560294115104634963541420324691134778795701052946174770362788227613847502160089908487163837589529234626302788382003421405409032641975162467367190632850175431018843549102895736974058360665045396782156033593795351140935088764750559763697430072322629083324517708711061482747946620895558217066375432211972255266654073553986908885249373812111038548083519903910191660073464891495734244446412357324672426078453875835866408250414484026969788414794666706059945078775217133046616738088483755560629914831715908207729520147171748436782345374588885270677597671006382512029912629403554431488471592385777621361106422541579519722229718142341044343920939655222950925162416498954368915529141132009358621943037747383646119961645745576429733797117000473607425668458586202799979428190441958319661780771673628352038537116043310520032326497643170852771591726298906087841245611940887242363874261681064488050288068794780088278784910022172702928031454332543665645103546214643439192983972476672465155991639730259021733146393295499007082154438780605307122286450746725760370350700383598476359139488906065259265983755644596215770737290826982331145455754860816446818399732688726750992891001377369482888056472080013123698416896545620878637748422448022043840140484736939122985427424709802455486131788296280413806659979464725222910913369919755515111251458680614009975296782789161599248903326117800347047872642285191123519489881839324013014324854886130727398649254801814770364361991272069646765129668198818580960096931617729885514507435561506478796300791722955434874553651031938769118381721506240577054143005592500329513710404263204427171998724881898849380480018065877932584240604465843324182676398518977082654536867848538685494922927593588166137491904836610467625091625470181209263828330125208806347385734032335099393509231371726030560439861689863968341027681128501352709693447763139422405771265193258733864269932485038354940580126784010627750263213416095758969000275185899547519152076737821358561712242742661210217716794970186236786244593378446675701852179354273314529945027675556889135610061851728709799084614871910677858347041287756967917659852763905562205140811106538959650128578779250831310018861674251064151164391378249231332762595841882277725894098040532368971441073775561027168876986019570949822013767948056182499266533334084228375266215334402688863031253012658805160360780287802591441231034385915988563436191327435626790556812263364156768944972423322467282845346929090239218407061293584496102386170526219282704833280624087463283379799320678602541741926477017001577976828279853121809604934326375524187708943512257210036317953337968693973564005191183219916184115892561904209023863660551727480089488629407333708626550234616302198108025982118816339519806911219994993935291999664644853115783105432861759422730938870461943113286842128545071766805684672283473142606616964023113721583639627310190389263053004652677823274306841289016085662319242100253157798627378564785679277262154787331449149363059399889528620912461325354886691920518002583707259971719572400974976652477851135899389158402389914382208241776059852468479037283688096972232054162964349521702166451125973315147617897860900448334104400128760751645943068556802857065367358698385868260157874122567918372972096558333255355587545957921222483610824662346455875710200414559737556810217611369773480829441081839975253883553842579013186229266214902565632751013659307050823191462332358072947782212073974911856490513110461532908726537479359152796964422121076433701689258858598290312231889496534934933585665812635386162549879834770486993617863251383013808385494794467929573013216283006745005978194859648868232827664540079361570798213878440087635296170080564660019801541036589864876516603355523278647773393815449421363883188653103076913812008749954884537673986503920974769836647629542785002492341545474723617609316903835572390776940598761680958120049292046202880554391135235674033890629483161636003730556064309357097664559199101298553183085699284382093548212104311401133897537523516951201574628619668918169680580737205878995882507525970284294538250164680391460165339436027244988980881861147992771537455590129142814212147061119860060449462440268195754501798925021094028513845337679816836020977322153324556996894915661351347096944258073312168425492446619682450824576464196470672896523453117948899409558650752092716200286772959526528042638313161808669926049503441329238562989475568893437280196985437658536035077427260881141930677565381856376230943346224324821007160274162493813919003848755506729307590330757841613270411380942651670332932125776041202225619137454651404207986036346060659995827636829495680651487483862976482094758662344867577564004838493929543695999142704480241634063859597964338856726592962995408607547360219473426607088061470122323996804805775604253573928198724514722680133677676602390378493878040315952120256568622646540586312250598204742375569820455530597320507605071073075072057594214389470313889928173499212490588636507464802223011066105400622733467164904530210504594369427008497100817409517912168201250720868275072607826411331758061145289965064485430026021922381071542210386913093333200521544406213183926139444065579200944683663108258119887008630922587580573269518874291430361295228990371137478197111790309077838737934948250691249633502556087620553488336508557554713520781213403783478325653169079074423053945383906477399935565616610003345767438704702463284105283887686648348426496182281247346378840849680230058804431100702575409946289058360875312593198625598104421602638331505697802907292456352837913200774844650756747622792152855979680511580445007244593778207643927592253157552155372991400422187479841129651985392789205640421381057547554135462903824633745842066356027796224153078683836648757293343722901367686265550357933780778228681161483529289085591310944150726746169079021074152691876946732308004202237799440377438960982274907704004725998376512377685430749689514399738611363396692329004756806757908881790182688750992948032895374630542766852407290930457625786853813266937462355580841488500780104285909355892311479091761313735314453873885977777969934333172311348605919251837903126797916216872619067819913421892476575600484085581260752053494581791937718771812231089581507325321771055905861589490417637547328669070558430743606087421706830302539354600859472509183800164942693883824517607274550142660330183407067342111932448262346536414050699977237868537125018699692317755110892085899547162324980935491454042100573865610496914485324846261417485780551561610335711613965702324500008603433221117558613904274321312875267300621608595225562276336781533208239957455196778849701152293005835628185448152895042483017150448957470929899071358370665938842240089640819443575177774907497348843871215863334558986626042447162419132132148895124476125371170561449270431266167908997593570546115464743784448175839304742023965365259019202090597580332015262883160852305155345189306995051428387236707078646536924438456539838489173779496219023126962580434080252208006651991203603593060599536695626173092588075155054838724178869527734572950923773798593228693209031942517622119106264876522862702136657777945230283168258064698707791137747728444735338793928094865676294989356253737463423633317063580875389836068472928373180941389360083921844064192474006355022098271051850530221909097698239114995108131484166790479815773590499124886935627104204733348157184064972620989789660172177628698187439487405602056178495068027795843972787418590908274929397527735726525831369282459207310939399170586971179180399310898921861102938087038293054446107710942882389462197039310440597564469815653047532319216586258689041697083270978993495695909365403379367452506844465840229946973600392568589516565497970567558658006901175574302048593590232303653057206716077184187929377547276738836602483405440126384756342760343519972905729237507946243167901772511987384730508760495503711738516689773479853332975263029328195499363929079501882930503445622533086486052308902909027128145073672728803237330619350063715707806742440843710442654454474131088572620865262663674919234562195663015793171876848110493883936387859355743608578196735576574025522300993306259026268480015754797164935151867696559998829483187662672065450774447871342718004588156255633241690961952334358609017483754618377179248393693832734663420438549264916038514752858168622883022833421447501386842835703419800579310158168671898106827100255316956172332523520937415005989196941943244497854987345263493910566564409098592711165359453621918727125028647711205338562583570894887508503561661712553646136945732476871812204838894544366088780022996934677825908158446488407558812058955489170835465903361847442539941734009082046219677685434983822014135997430190865851941008563793950358740246807594571780961246362969428597139275075598750979962227111282658655375993125582131346163357472957600409157427584044458492543738502198961975307188315789168589333665767170709430033600212926915317119691917251112339159651571919580072635402677164877539809191466096132896296311857951678134070231594771216694386433276045769442015848297553587416729597916057704279668220555377675891838841950530203360043210119155764068939357643457846034591459976042483649111445006179939246952088551286310867657165268038066423844230612031560249514189812417097955338054254459399606306963283199498537145916886575334295105408052137212824633579433699411155066897554365717058946360944715175552898166488051184571277066436431295904063683485906370019871260860341714758033045136838709150215925211891261884016102394000732074025285025747585626309722777817933488865841947944042715111342917565645606488954148819326996997512936672733557319864869462034688423085494618059238176065749486054536823208787636184557357128141275855626380143308807283336672694243023394774277540906960884939590922389024309179353972028989035426454265505284411625472376573259310560749444123641470123178218768416136748216780195322437956633539786838688902584613605389582380500221070083621008385057026403021397550492154740474616195514692369113410416923194302569804975707925842932026612333604248581499571629152494265349021576018382555231256610217995376663146634134614992514379393398681983248141375045455867654105199090063414665042187766351303036211220463849547328139191867953343641369220332387879796566307957008230669017476319676689642831787508291430279701611106294602260673875006993939475907397796863684830573685145064142397158598601154977862197148038390987235862021480290998697427364342360378170334777225877640713095376536387934096830816260148244172371515938923585163340694502741272834406961606307557343693446565998058917273270075458494300992784135029143176294883446466811208501195520309849622234299087836417440891336071900150426035467056124006365369286828470548308661283233165275664137309732820123297462893596047310776771864237259720300890467249286355636080301965641153686998393696557851711612116883043388427534124678059055921952146853686354501562263048869778707529693694076105705031361387277295181288004228511208093012213386245362966293607336263773528981207984415370069263599623757458672224428032921907601160700608315247620372475740140781334100076165292661052507146258202827481195622166560851577560178947435192875516614537140097162616300374784723503956994165721938257726600007655367879770875745645709682447347822910042722295453828369150025008533258436500072778750286894276604212763189999204115573895139543571151777049912359475898076923156547656374389566377330951686712882639523137194703340048199046733515433535730418392325771813111700815577500700778816078829147135394338580664818535240435049478552140572413507140690169385312513781388367725935138664726537145199842899208925077481732084401825595040232960361303848838717171189599585888308166108015180447909333330386385395960325631755818335837863048988091455711919140257294308807689718833272809395821840941767501255826239086989204188272689285060012502690018477618472492137795175362870102410098102101509065092057621907391764464333409471369948228160152484431113448087464106069330944119395275988576976530958900661662707248068663492582578600864698059953009813581568268090218411786936857685769539210198436512685689864278496641925017113872686125903778303883330759369800683999807596776928439129585484013761575906231424756002142972839858099834167877023546612898148651522753787996839454174496981497795924227830599416749231607505433649440577394104737963502611174915081188240873989104187897643795654522584221966142066370439078475093226304839436156586966376969732820552894749943960781883839639452732791303954871684968371120349888282550241603356892269908471495186355841783961036490715725546970536688616638887057151939097897869360058130638632189301390288848351838787098326628864267194019214072037124120637370073606705420478964257359762718989150277403769447220172535139221544960425081893892990342005501762114984230303234560337361038407196254733329755874627181000184708716757317912657679118899782739755773369688943791056386298317823926327526970924390217974788829087281121879423610974341900751491044134819036238631462568340947976435750042369257262798572724809459263748970331733373202279939000186360637306076152194166719643428961589332554865255856033556746709636451394916357617620690639583674662458774380369661084109800400591730641891311282968938745241846891626993091489961443961678067400670886103485663641895558225614654245301466951898023913407131543397104276119313119244009832539550472432621058912717859385307009196232674396713015854397234875273034544269792022721834203190268840713642690653405220340144071584797176515686068177825588976467614622804141275443011682321752903419243550467978907712076695875540906169963698460266485990495647885472375621680019270614822946439347304810331200974541785304724029329228170633950238915243682439183109650248681819850033268056601251751212378968253278339904875241621406158631895298379528591864781572075769650480963631078796189020986090946431785087126422094157077667249801284468693602842521317299868214507353802554026661637175316542156508995279779124796970951483379702696588297958010719155966182354283811400105291173045804662983960090275534044395770127614007696066751299417847266854182360032898320617868573427523535671097415535960781307399557232263881456919327706597641106240566557540441635091241643314430496801581873301936515627504072539713380005232972910522502432381004951884319054568155860482496687802365433428230582490205506944945186981598737905171217304053962140551263837253397805988250591938395950308032413917484474877354960282905513004270237155879420773473996701309464155853959057883846253811366886900695368119211064054791695908977201731780713755274182957072436306223896328881147584267016039038448350558545599008182161262605885862806186451793881115339749285600947903242136773175284927094591623139165324300354673290826175022347173247627509530935360728421761162297722778128971811233977476964509211885281589014591514221376396713285255324020666097691720245708662314801145247458364802842492960253301686165665862508728565846275506012890648080630666448346033474872626841653224973779009526388950629391106991085664335680546458846361276360884380199934998382702799184798744816888046864564298040915668478276687098513954595154186130054795673473274658183777866249242906734787013315978216244211607567199371520971477360791528661982037830417339169500378268434984846633967756096327328340005024733564145366360922755118273101050629744789872221001761806209798699137778529428330591414820960190345454916000670755264292523903629559897361859793323085071109075594940482479632779934429494926242276283101151082234274428602834791453899175949137289382563991167065378191360157990548983376112309870876409409476464820743328608985273389332074333579730505364124719018680728439684795068429286788265223107087662548337009043616849727793883931306724343677774990302545381661116760332834238439894502960902112497991604719044509667445399558272411038006280400973180709582509410355726293820481510821477867475231388089061617401333378247072826716800032328736589967972330894431922334021822717789137058445428245211792444521709996314696843745000394998853761954152691378757257755704817537636989816454752583006340028460679296092141140095905564031435611410177903803930170479627674337203393123031489384649847786953306774055102859722188726770879841410430923840305248962129072892022097492732089158711237318965641387468421428348522150299818029486628636691624638226824838750808241926335574615233175574977734302471779344948370025064046383340348334692474785201785770635350682600721624064248726327595409118084193068500093826104491909436595882825497982823879131374204825191391519013910260916487048284405043940087853737275459275077114639736666150200434777462053427680057223594618338934487160911656675752932039080529836783843885668040789390287554310382847939984919889935384103946011161662684639242106892569545461918577301133363492348845108504549369928930430542416577858522531876648684949557675971161241286302799935469023900588968519557725353669291405905790024752515680259319141141806815848261662073895675442888651841265519908997720226625985154781731942679504347696378593624824200601748613665481727162288999283873709399541856968344820688233234043554248898721599344239236889996623075289491783624019639603842516839250096710894446871363637844686608265834139426395088691355610970477244433296128815943808960205651854853482734930915969482393266386698464791941680404687110503440117596976107764401288905002694763703193154216502204037570660599209010481957621392842832142468065950993559849026460995601461433480265019360157835310884876316938625114791089170437759665171252683928939837317008116466146652655003207734019681383700868060701982311027282633727500877257640219728922345095994553124470209805062134511222084461480775223563639420527379736458044709006171823152496462528615628266229428638365302625341344442712029741967648098174242624956638468617558131242897825178157877973815831090339178263189736077684576550140632691178603642668913418063427686468406981648333597887104441903420529174245355634060683133171082043284211440829643129651577958284844836462805528662440985192552303043291751543661308392291060738526863959734036466761975315167031505802413757919865005390148550021189326767387540837630173201012571424231279270550158861807093679268769668770422238744542274787612889071836367528111450023953746525653924858892719496462154281335725208492711714080513051507273906258350939806087102040723973226899981316150538387787643699134495692521977984221454213048087565330175816384235776438683146966024689933809056057589420922446287853672810947666931645946001135491983428285761388011206883831399964271770724865834660096418983240521455639878913826558479662368443535022591453188016992275686981636783510422387468382951551237708880795072613314274449369901256613299009039262980056997158054488751089585947510589890144307988907242843958310676332349447302275051097823075264498682667941511999776432603689376843531368008415224447862376911626836377864741948360382332763556813038983685611522934928244993836423495040756238006812411262391324836209296129730467080520504848501881923806401621885480632027677393426278242717108495054623970449736185823121284447148326255601257064071027265633281309845476126141011666208344031870121644445608213187519538775687261522960923986645432066422476760099559583645201359154785797659518466241618888062959533018022805081479163760303114832522072067926280933455660436436480391305663793177234584866487743429197536964436952013889840971823446630598912209636794150211823398628647793792463991040481217684964413883024104877304641607191876763718237984401621155964385453816663070645470414584413055223901386675549834150056720439625652890882660352458301671261233505279659166622607283979292675108771908235268604085959354830679631555737152461807843872927365750579376431003256294891538846288532894612219889383820993958862408635424177182912967437789114014240524424722598728429600869565569338292875777178982765666917256178382389007697020757400653865371346402269652751384487685901456167084509774237362140381711620528448810122460191248234903275787954412977091422264460128238647116058243879622166999120563119465587254516923583383798997690746714081844625780144109547759008181839120648228355942682368910353816137791807464851072673512950332397191531900105922388624384910173697472986066022286267011511853163968455753522717369847279188711382321973849672081572063448097251368013862607167484675898619082577109159373499288751089674252065211999603651210397347323602991699666636776457826541726668312360964940493871179693420439758758264006767425675090218652999758710617709836276894183656571628159110992181463613681491456547615795911409605401056227249005491908601015255322795411559684476984966752520474208387757755106470500431389752210474847455247371532440033132157659200259285928598467926719953437633527909770888453071840741979243894535544351017000438457689732414599737742968934899613909787941353449566403831359368604741664515702699639066713438087498464594993497709799444396538917255522328605261423707526891293259306174541567000029854495394093665268913465262688230103518120096369211226977307949536674316357147441054435953637973305449138914489560547098296474092404094994956855975197911272761936203357795071714456462334219295691027416726998315532743731260615843735220936832002118305752340754962039747227722548423030714532452065708730485175432289142938950677191036755074890164951645768306813216979837010884052654666710556157530623479290799524139336309683663324844866418121831007521495143075231202550443552480654977238249249109621148073178683249182845725458684357387166880068605560958925047400110411476435742287637840700957043291828550860767029007467925526547674400922893160423689082124447516550577465358994805194858829143935337500699262612623260256010135612452931936295437791511976979646984527193701619885819754335967500509876932792170430653265105542565275545723644185335972459185546353883919185742691968551450703623559979607329122747661092779861590998125050843247710694648180836561904490558980832561284117938684921255968240804982320236201948356565634064856807473478454053760590219669252685941810116359911831179008567016340636139279000517079244821757593349371568768274373149112192068511611810343763886570116304251939063585388996523802251391555493245372337858183003021137551343292973855284266514821272386981083098544929125947897250024109848986240487170753498463398216413903465191944758039020705956301448316129343565085922897989491586226166477434149716489024655022218636538106072678730610518486432557825922071683005938033792166220682494004791573350869408981155787095200897968779091494344368845157004073617805741152939821587872146130560655527789360689750233784196945446811038418170573689928056405351539346693968523138340812189911264792474001051891631963099675342822974229967167566745909503906355391824490883969423943693698923286018798816031527275091223191178080496480735363234630826945772227744937565811649720739333205095874324177898365856794594322955418285224378594170105124675644010635950054667644493100601341279959154997607262718552932223705966296368906524322097090612923290579943526366152968217870841703497438166704795469362348350268628331953619750026172183255448566938333653318750653193537134971485968424988256847369459202155470921903614753745152892657956922243967150005342390323579539566617515038841744553281247868921866324719866333456131400634959603476445634582324503371978529459488381731208966285935866751772446765401350476065186727553407691354283853012423209112248147879969255443204019592761353696352016075530768600207395810988185283383157785910809039450699538544214940372360792393671511271701699691112629593819761005713347582090823807031844115528465385487007998182520010050069207167607989674756612645261701821712018480474311306426571437213356822768822949651004241391829463733038586753751923052131521540133795802100158919989252170368481755161238512336262092644958843185506951787007450120965325981767988906646471037402108633529250168885146266860879244186477726968996393070951604285173036589758483462756646534190963680329946907479139971274202238370921091426382864724407778579658673017312150950423302823472612382621119733875426578780231631647858087307841605081694543627970140117221651073406909204275900651304154929568011812721295298126035997538305464843271784185446022492188921057184405779935243899762949975439187557590829295707916519034784255121186075164457072535266336737550037326484818218255805124948175055824375151032718514654974621130953606440425246284330260936314155377146503653085764454512914715298191148608496144035260079965102551183060086988637429651468443994251395103143036172417866321119114251191603236537115221308373073835416042520251880723025481234523770146657505499345166753288413121497039837755558819518968205073478054097357532681373039725404920626438271607347877289191748625842753702781381509578174970935431909374614140988178004129016515509436576729473268746305327082006153791517672034766278246912771686147881510949124693224118810242879049924312331983480042388779577175390281370283311668312458789375077088882133811378389663046977093708488935778247585132130404602372877654236179637084250587528576827640004996103354538661677712162558777825696091640614067013730552624467836212062995450588053864832055416749870670270824194329205262077981372930499489596251992084617508157459717184051050963514000186523218464150406453363834693015079853015536469405058825482540648366066792931696204671821915161338436001772754772629406710223899971903973119453292132360634089547165504767810227304517203473044276056020832336578325320778709472447883484449673094280847219877436358918428820161627965923829406309235816506610121262908374253568982142614243788826287692693439875276608301505184998898817902804372844433621231197234146800333162142552979277055328352470094797312224246506146033334986753932394442379749704491092426496836843557354632868220581901637343671152813037289702276803393611947834957280236710443118047389573430439539633219359617136654715116156156593332762803762732786974338291921295024458323721417097766596315403072886689445671375717627280651437667262209944156328329470535089245001998524251191608717138212822095060391165223048603496976681336325500521132107433388543932187547739564314391095046753621011270758935514776890336562076570393532151538574657658440925826313900603883890536992655491533584108251699741873104568055718982294430377369694387367034261669830670581638749924927069855263851282889155046850136265207872246468045030701901736773373706551440100178781367765185286434214392614398895358650128764649254242171936006873700356355101961079371462142067668274086077152570456739813112753408094595117244692128433894243675801339490926116165429841367394161147146238655745905376590495696729276089746968747916191002343652757287200239821288829835616586925243711527560571478654489587441428989929548124214086727253218167429689089209781917312670497741604889667032912172970716271753854066431877241565213996195068296317283022808280003645292722999940002438358998709426775665220519963321392922957735235182339569737688908445763621942903644525001932050819604596668493689417665601174842806000091606390853666985521920316568542712447123390364175139301022839811969574709260907637692872193623060172128997439507054710073113488263481272172610811528961783164040008189547339617863673770083395237579377478772159616046252178579361611759724619142918078249867942635394702156137458069609912386250414936224695723074777374958542133919214439352255381366980365768258009798598661518016470854752746521753970025444947147430616629779989631209150587947421374445243971690125478075513286327423172602788638640608346505160822929453818822774526696003999978562889519555923789909103535290341927493298366525733603816534192569251301119078378331300601510584402746201689352834151297382809531264741103248374642578046526152878448434152391700749073403578074707054606616304396924221190235572431550762451955357365118493456385788323306070633130967399037151157840943917655643782517059239071886363908163863588496788470606537165705961642106641191019859483073858819612096215563464856686128651243569542368301548742536605562816508322120187132768802015401423933993772898380544962993626906740300641353970937368293561536156390128174566077496056287906320837244753135597116354091987307663642268569415669875454762509903797496697946245484657424919712184644914273736191059710940469921551177995920877310585667251987462607807872358784312239314624894449499153501014098288900761752594836812989762802336753782687640800125762724302246588069941535948282594265333972339000903400167095840114310786988390641460156028882609669136655727512612291214491460008793909794425289160857490949563766359802147104468846952412499816641053291474768553849849032345087969301994724040695440245257962014463708031268396626716388839370683261481757473549806454438167042015917491118950441754311624914514785269770277685060841580969961543235947328453194522279184682775549060896721603902478027612755262440124238264320048519246100697230823379993206483745923272603349840971501109498097861958338326877140160459114708154965376174124939016939743753870269090954171925357063343848519015335096159088228887355100480075158089768496041563341941021029199084372561546953721823117211494244466861336826575575882293934928285742296450499173595320083281978378786563377836437760773896225116532913653896299334849018608887805627560989123092196815128659696085070193359658869678604420778667592404587794223687994914454890879116572354924677092038248160726756586264457314648657217288960465430429330597354564021621368647286775159008186783246092845872907198286236467579433574110093620660832208289878588850726309049123235136699014333590314806906894584512424018080786612559257321053831167383955741471131447623850721704827204660845527987708139337729264098105930882577734197468485571773111846458065156825067778640392522907038505647957226055781538119055928938490688133019180722922372214168738799048818662415082186921037943321346564418685206849173855134149730370853024198946677706159831031133892617716263528907194018994805348990521663399688931550528488692098424234441285502534090103675190784211284853074511575045935425536260726895087584714779685855859261348635718116979470145199239545517224658186682663505228296567222538375333234616683240029728252810729166858869485180348745140969007964116964406718966569351348443277539059679858664531893917396014462950181949674944767397022371680026146340904061833795526359185658954630521138592908458907443921675076319187462777775745787093364995590770381591812936279333074457857461445143813750425202561498023136647635048701175796417741933138468133838227496835028589090507191054838687267023937993271293495300121620995209056488463864930552894213325189328126267437215233486208639224410458070066773826579153400987772676970876568557822306806442239539252009837830503833305445983818530682284292920509294001836119303598990893452349009313696776670712206215984441497692045854525244733757486254061390457154254820524376449202172892417010099860030747634736965192274748073809484874145225320420363233760140408295563315432650079603868762826529069529821098339151879399524390942889662585328284395011600839195389075055254011913362597085344013233591681288505341713176626846055101877593882986244012415244687296490022269439243223159455513253374100795639559577079343989402648209244511137506939083818414737394652744455445386158132891042449925927660354655480799601947459915889324900968074664207162714545299772098339760609733606170243300022532527686568730060458822246468209155577274287943434156265640264147345007883739018984251164852263865620614880060252047211443307282562086299022812144283701785107317470241543078047573082965861338020864270022933243547183135316117745255983909618688157540576698005761060442158453215862301277275234315890933908168366413423268065716755610659406638838219083950017335549113636277802744545945862575833161746607192971234040989855411193638655060075883216210359995209234841945243652839584029061639071707366093419174060847774312207443119591285126599110495880976583333913659492277325013316313500604771972294514458042020972033948951021580754018744723832907774647283694925306609998351108766521945258909265867412900841125277134772878465904398392763387750156187184461480700090497662548060987107872845905448104296596321894832843391217267774704681303009197670650494851997885866795297948670651033762291345672506719257719170369204807393295462684953953325830333349540107749801500461873988063335860449456363556260686165616806154502711849624920614882487245515778306771844923477170657841778485523625103980582365346946517495231376927439646938327804461458426796431253810239092284896866498851826830532345832525049317278074466753917931765926537297736778076438582113166589557956734170973724108358339209295856074950232449335578609286467107503186818779674597889182154231937019407414839286937984204270980387593352046584669696968661060116370613789026734387828405352132106961540449846894514210227078646212906619809688922018873017977416357865150284852036256907479126033041751432474784593133750672244195726826040247422835020187628964162471122961284320765575142399526926498049072313084169901829113982718828889321749272742310371139870177570149312764190523622853446416014934438346382739409479968536411649824090887051824813002232867387351191664872630253131651445295334663100579195955546634121533805689210397430890706261429641261703216145132650764253884834586459967641483610717682610348969201448974967588413409992963833435276598687083612403573231925181826376479379483151881531302797568248672864707710624576682799189230210192196054460063996680978686410238387037615637516441021485653293858949720467560278659284530657967401028207535398022764289026884159014043734159515872993103719913255254213517030943789760492138034001989876438262630336106967772135917785774029458882335416203418766998359405551528189485961059247084468254218974323580139856487778256964786986472617443034889307674253662150874078013669211390988257422418664273205769193472042480601639581671548244783794046549135883607175312266806796821060609589835299451848387959622005604473519524184276818386385041471728077511708609272233744124571916972155050667504949171200504814940575403084048495300328556155397316644369316641437433231394635014636324024164570091735434119282175501772131373576800712704952180204667232516649664099877441786141698461587320490980439801140220548569801222109536061181271250604150863640863940293346478271982027509075941915596028781234076737290153858626475786242733971359224793244691337294591400564352872130691353316391281119101641188555087232801288492847248408375419508210466781967698391354097453355985317516261473224183563821729451328324199078819006634368946851369388797134010303700865351296438253094809765629204322690345746313069392080084558289790881984305645558153224381642809913747941349583216456877843266856592259926647074025926606974618337683847914878611257020697649373956602954953592339784476903044349380592825907346234978941202526881872593029927158604984439709105495958409814608996617410722241742582930677303940871111144953887839591557457257782426360647357427227083153676462889941269846605639071653858593233087932931101339746495528015845568378741307889599058239210607666085335846187034338661534624162137507532244306184073295845569138092934744452846970057700260696853629875645399743126991441484429425013197831437056760218209234085073754006255267677019164545603375154345362024526979556211891617943916010606585675739511458628335183471067323262855698324437368488101352849423073613793754428330575360706869514589147633898616616125447044094639283934645192255658281310025137873492881693165120768909487188819756813847127897816657876663667921549589288974171578694301288219047660061028291607978093774202181623592410669368350182748104162564376578338622080900721363829368374441757918978079364030964796396443699422227983216547370671578727701148730960049488824847176674438735504031211161666717608255900839109333070587939560859176091406902852118086554764853535472567844428055415500358605885114436853997833341017248368480420387321017736115035274439583394542345573594384113480509641861133457761127145583893778771946981823503523322137847905966859644903613516030716162594439291702881449258050535533536765048531512538157458317010283890677863956875520820188855449192148691645229186784482235580714015894754155967671885878412425493843629757181998279014574409252341249593440267596266364831018331053316874570814282220999804288187510623268027290548710064366671030553786803199020207270320843550813238732767958840861020457547743090982556206616433841485129770195451080291422081947779854752923672840303365032151459843640124406004941469053116905625811259474152240266903900372959740290293627419013582956552550916751293425211842670945173625530177838243432596570688326649113486687658738059755685357119761686152604078156108269935417905812832461085390208333752837567114372417947050352437285807733069415452417411885514826313285573027075117016027166662717887896518807922608739805998774870149587626164301496575126439020065617208393222108599916704366128035629097019391854533101805128178574126712777075455613977315722205039928194900977138301555861818978416149917982253005729675885964525997702003867155815839013915723961753965799297523519785796407463127874756571364831255404513256051696942058704648591071612025848089651250795358899550664587040591278684445062023742455510909934558571068131295184361252409317165726553758356658539899524950993239525699004090639710341745075096258349071291314417418209926535970986390187468959066108706336359516485332736047171270362445782322820510464446757468083309373862071711698538441827376027299776004182534352973451378537503481846945888394372790190503225341876482249528675092169183404744530732599535370696989828428487712704131906461189901118331634720466526070989311895060600081508594784497186866436293968195791045324292241299561213788977548897586686118663166010006665135938797283766723311608436118384255122011584926578541650024091807527664142084575535789554735915005091149178990546831220338501050621575282628793367380518224681636741551656088326256149213488078226368627592139978283631762727445014247924608189865546875782592367829650911854847613366970604696110354235538099820072089678854990576616572279875430005702470486716889902240980951877772165059293558426328828658472857968787806242497930190536866539215362783605897872500797611170947347015420392380723004820484337034754844038230086497760449512005090489422634377815721898176991297723490632208358974613486462105306237328837695096063891549579949342823876979817939772679612485518758258630721338408510020659663292589736020302495712361998336512366540365684584066602382022162541238571395975914090501363466781121454895929713986820319990669448489311616103539581428122673643948520653174882950585732871165056805158773494800657538813905674959717087066393282024961622233418968909392874085793798799368228328030823282213184262895093701231626577266156869165625114190947697604845486089426474442619951024827910176753928124960401494771272903935258881925257525469699038883031435919130179253019132963470045691404242138318791659870375321619935288825127124099635139875935115193704015809976974367539653617855065764526754654290809792135507879129795306090352141197241859832130053354109155736441308844474308688304077229670218094983699169318645693090435973438508562872230089980342375373256912074492422079117895068715763598232485310219025138367830667253273847643768440061186111887919665143247175255296793933890159201085267184256467336767770072811533179908288628750420930547027070921986939439756997677462023752208674456022133457487620649033804491748224269716125160011737938123184793007901710082888623603087424479013825308376617488980606702440458265015070517865578649982458403868450965866528413216912301231236749800717309043179817026767079458517297958198913607125283850292819905362112162094109455706245918545538841876525748046688534009748079302679897632274820838770605782708256850824808175038219627217334401248088735532171496027804125030750433190683438703270545795970541088504850493592554099511639769919088164335260858380280178549886915632323346605251811554224293858339247097199557654367470934469385827099871803472566860136998952264009137759454454682750550778245023855171182558112281921939901976220936710639459359390207557462503773397091461179691335144041379521746354904572898893515770842125686447570562441930336869395217966543360445563888868617816598435122379234191424921881688378213463563062400697125192099164458474448271031757736731122691585244325917337080331934176694634325147946017836399598385229339226758789559673210566748372671673872400432553621958173871868792160301636294058015659226384979495873912382962143812187995259475044780411855323774199528423420515133113605794595203113743948655094751328055370955331347009942281451901359283469694954101621907715439685871086800388547872764424096195539656088527045270360780304455109991785208092302863100669946859288451557532986310528267353519795713203937579838398534856557975955846107259441675028097920993293441417886035321327810800968454788589687339014317484191819029799486411117056612312639863589954002577741110761858709807554873689785698816808877298905073992246022663718983622516333606363649350956248349920615903072359637120978208924393802828263911486808300671605708570843804716714536131750870246575122677407038962460868326127341546199439619213750471531265075230094327379342634336934807129129864373718830480489087274650220377498746121292568943953281928311144439396355290217277968625890517349609009008899324331909500516388987991287138105501433744852045650700359839128000665207734559950613718905193323097454913970497482603367645874986499635798778738058661896216063387887865781426862511823668183350554444901062680030624731637937389775581284434179321105307790459036743309751920739569579144935566961462500939627307000448852925241234357289976569069852922176654720611853476071352635263722728401881118222282442609072298577316090976642385192004680744301612181464004808910414183539747942215706950414793561745406378405930432243491421663722032192373813981819955321935037366624048272630763565704254279087068405893066206019018285050836197409479629094810951714553974624148142060341497283287938827352527571939537207070143722225351748038107457430526575756600699528083757199106698106249091392790779205764793660179952522183804230312867356447823254188122074617033389424986943088628644530782511342446326139738590521793629221396664457025287739368969183902140274173237037954548701277350649221758076382209197472590226957993790209095111186484400485963187611733503491498256880852279155818943100695366373141939470511972349733490941721065864033339511830214737580924339384250145922044751261488906366435335319757161906484827356879832483206529196673378340451969191759346535189793364697789399250946019785470313630716171271519085049293096778914794978707854448240262729183938944698410694662317870348276451757005622589820751739981265768004003750416776951309317363518747653600973791552109228278155636978627044281909630073795681073464894913305376209801523809022454206777255196234935788624188475596816878235147577246517089975392957471054851054853290976996086134965463720269659079853634153407349993121914503052076499768188041932012003183986430990242998868810457276062350509545876555924548490624015237483213742094732522878010138695238895684472836703304729403509417379846535087707565977525768228950484903650799762301930437933631849182813908722848070782225962921901193566471025135577285518924857808839767583014401380193807863280926478967655230919049851819992023538062160982185585214822729637724281696735167921206291546119898726580038145256233666192010543473237802705990583359707337392610862898241551260371199593147203806250595957861195396838428147631971085642978212344113073713821748446739713768969413116196996246304990858369121875388600338811435288892212163829259380755463640783907496960099368134304267332270693332372238841023229491217139294044493286055409879574910663749952460136074298496063267306393991234593594037625601150553872878406503934520786623453657100489324203913260154767686831320859208577174234716372356151859068652045973061604854790793465064941734503050088890251305160238876144077503407330361458707082928442486916615941965601772674561997008688319924296991211628998470685979250363394847592363750065532190421743917845659784640629767493206699183093745818928842710487218173670475547800088703567911302759482013424152772829930773963523262928497918152779619493712348164886788315935653903070954049932058436707002497075118108882881328923071172313596798404714861467958540524475933130829366007308061684374190983761929226626690488066881934171112223033122876473647587639117225595848316349466004190231826878382131045169222413962770589396211362399463038705154823843926511987488177148524094764126752547965108347355171764071680915297591057544649787513207425103465181630290564522975070217523795651677137537801446423700379907173508010599126675288112400785996707615069591351573615358924231955148405208431920186401863832776088787920960196455202428903141993748493171930401486296556053418316955389540790541497566606987737791028631319739450872803260994525839564148102654862196122931517538099693490268087590052073599572161214056921397298938798716642516627046287140863662628355826616822545692849640225124820300307190629754333498179134232514957857842040625656659610949345982039249923277233007168608658912849003017702518800750190919286695527260856399920724859038921923769964081077021810605680891649679929625202934991838691193195122092800413917672885966542923232723126003313274887359343238505864390444897861103056179746753374674466569279455650290473651799054572908378870118541807417035856651014644487258951125652362793975452515502279287234658503285031907037047574629820709204413366785006429191007223968629531577376254646568720635479692695270604273483702100257305468678893966754484614124520921504316622484293143737829220247880075989970329350903137239167896398897458844630979356629456464042388998658626284967301507515970465434377877938792555494426434667295004506445516672559008303969937218328022656973415207480180834776282171231651603295228436695894809362165729985444135310132403221078677545373692147589634103900837189789145889090836813795992012327463723763748067859367803385420592804526016691636125680640180415204015950529479011280705558607261977702654792675224436131502118518019445635812287608425405845651142526582034517244276222846995276433917427231074005687524957487708926945502545276643941919029371674273719965618410108202960487948610342672799988634616606335063774705733241409759999921299609472874314475477899954199718112547050622743528958840503620692791206677747732828593570553652557723206128308589806386311144768538444289112691511178164356755928685016808943375127387144498014787026414624029608319777506286076785007005524707938394877701979896366155040343809176154073437502955002789322854981909474029835128356642859299787436027980484082438420153429591226350272478790604035181357402433058859253331847645900248542470680900296542257776162619089999922240817970401987056550444769425630519786682969122695997621197913749794614607367058518108482967795415438805251928206353218654157813821410649207281300749179238717762571547757811192292710439525965816305114905148085616776634933221811052506260926190070252305912192591691399410185601619789161487512054262596957096961125559698771226224460888679407318904206495841961338084052102505374677039397309499089735736058804856104384680010394837174209329452280805460729036499668168573516282538571308386577664737031128197734069804401172857243789651318078559268046752857014030886051330540502139930701077730202509714591660761826962497589675163769237399610158243406742873738941021222219315155237259157199448181450255581455636376600860700263065799134455370713950489743140100754338197745483313425352269999653725395629208963527415376181372017850407616383921601280117099155199440082077130720346694826969596268210837357460718606574486300891951742982873265750652359480805288955188905732772196444938742749744552833881419372495903847668933450014729760634452449136134032797081547002439665743537205275989554163787767601486623655998244831670461882815593045527634606163282099584352777155893059146618604471218300235034428528582037474551637691937882934518784099771375508938821897572774355266970433693382287150078627465868903202247798029135909946177829403518741721654663081872621228530800190335019992692413441480154401511503358776513091276435014562047059022834807144987557572388208365184114034532269306212193001615153316976107729093759658363905395241347895705261032032429730446414462673954387810272134368211828931971110430924767104726278942772632107689171378421675103004268366310786021240275313898403520826763903275064578925089990266957434839926834659930952048799149200408644451685150005050309891395063237151616098396130426936631737172582376365321477527725956415013334383888071419875350912616407417100722763078831924409365270809587690005579879386338935415582242786510935796476025035438137567999801850831048735982217081668470943440870256630642678521535308038205534167104476648127928802424557802166440108139571519953175375745657515987646144008067122796517263122435360378397795172514824400000422789001318038310418006343857976777228535497843088739897988205681949161762095544205635192609956125860553565292305426788645453138799070743600208758072844444853574755016292250792802261952333127766636785688299180119541281861331172553252845845991278756987558370518571161620328673911512927174383946447624330058174563192336979325488828743818602078311072877081232828358773562669742352592547618498164496160920197159005046062872361624527248103473215307795765691761674977082762010101308780228761757373090210647936676646895868520822567731475314870772213421546325272213231198269846459760650752328595502617856938937062727787890637521391984331508802229055594917038097397444210739573276940771763205342032454735817840562967999135760176950066781618358552059900468187457288759633832721079820485701588173424533391324899193884851380021180411064014831093766446512174788060683579813970353332216997739874890068129766852898509774300358859156288769277107131207818066794876041741027043965732137713017182440387656623326010566762488953714659740600668592899352432283888957742336952733777424109110748611951388390973840125988097196659787073379492061962775167927366633763390437390809136247872129432010344598368409360245674336489787641769996168646775252253210186974236466772047939081342417675485830051400641124291299217583703096262152887170310491600132302692770210183347550498419042324528148992803700317645315172528281094069780957286648937461205127635882665493608415231006771852273839689261441756559624518045762785332263018615570295943561839108042153124357414476261702648471034685057616096609617614651966075702190065396004612254424672933790917680680881565562306227633047403207024529489989703233836659943850649573753836468200916268322444306100185286333343856035893028649652414605702684571514614416438554382225296922503052454966666334705524669507489838924405592666747671942573500395629536958300852086450160705524104385779016149037669313064232925217133648284972564129452365359847689791488439244860814389196326618533780793111873804023849722648991927391779000710543608417539311366386110571815138613149968192409423310914127206499620615165021042033892273166383666840583773241389350835498470351173273440484163096424326656172409604644851034911238403270251606286170686735616499388791071764145000688245946463222928672356359922347240239400488267221644872452790636281575397679869363260134609198191079536911363381888177204031506410060469950957919980680142292278331793023708695631997408993336117858809328414424184445907378150879818431876560412450837122142758704344826386131037123399583657705811883867632327237234188421755211057042782926757841085524037744850987320698802944320118618558183955292270877680424038074932766765426883512518659030626969302894572955290140828411054807680841229688228406178136519267910597775572771073834084196598935301525322756425778847618806832068838484560556556672564744117272437514144263998629252636707953084278305717660046351126022240325300853240771948506136987424522706584873742439558085623152862358736402553994713349025918215882773747989890710988209905840775306315565138506592463468275922739645921032629669537845308146464074689785582679277924413322748211297415857528338138044294446636537547102123163541319253954114283808152697506764429493528379606073625195688962646363409013544597828526582732896510157112332795019411527188233158928980474174529416452531381803787321165170945247143679194808031581901159800888075583472705316005458779531740556938037474120324606323841830714694888252555244525996222524778736083983477049667737973539007089396551712352866533839740031216641745770407044401500494858700184393349604714102929258751440054455083662330385499203523552408336203156868558191124525279757261590040702374089210865847743942904841307811617436906817547565497188853523277311839395751049325824594353639055528104281447465022492582333000174029254218129072889760385629335958183305921736623947121042047802578795723092754074493029634853066021608191719757504715415157901222322017429514447036584030824542423110634641912741701281822400523026253047671858395311147014550949828196725901804919825565476685121098088024253671191678938828905709987110826836617742341902007272005299303780559611452802659153364608773173023881813622297933114632238615597496395688837066116634818574699616301569790899182240410211751752396338544633253793587544349948469315396051056727969547393844464835749225503267159730106464435929861942160728251196609515991272016037499792531948991644363713438665071886431442917170855974144262216689449882301135001994678148168737797067692859564148560572116943719377804186556943275479342782766940928345360513642462155892738866135636040693519476548960436014535030681441431244038528174034057090066341554731417923050220954529564101283003236970415732341923726316653262667926518492678750778598540323930958532447409837911189204413873150186540549251899302129571344681719030140186241597691265723172740982932801805584703475446909323287232252022129151037784695589775636831947039302882132992417445371815633523210318006336314743781542799493921484187719348228443430067185469667298016864751622657202235113283555922593036800507065919814048902353073253436239122840988264377016243519352441842354482369142245648919104617520263550755489633758396713295454736023879809554968483161668488855101823976927681139664547247512727099156406207816338471778386791993867371327071493557158062396398784488450230515414979131531906867281100063001358454073519443507376681059675486573460488663474073670112122142924502252243264875466017034588611183447082105565853987280161999605290167691094339254256776924629718442279835813942693391630081946325288697328843334126528644608553147323661820588632837716649073197471745172689442416229804825331953898938301096285795610000318442589225517974619868691789738694271173821768074161524007719088985063766733706242615001020772773461544903390339244748110256523024347722462926073267373918418533228103510463818225443146577186641305891719033866155315550287198387358419726959058723183577888151798858999354117454035669633528175546588582011986338358062489900077002763074005185519874263634797865586821764669532985244450453243617825473237409829385872479527083825996279188065979756400096941670418868459892007146405713387721724951650751568651108738964738328599559238682074684113666101403470275355231122421454708234738618692998631720558408598302039021162801743104754408096824665550412904128716214250432250579874835366236151092939256042948596342872945214725456509900500240335842952647073129763880227707756294338562884237431948224759603065249000238709592448117776362598167149648113602837556560808031774783590136622122668221772264476059347144738826138775854164298479750616929133306462032950784455336474690981767474317666008498590036842715253095689195883558290880443976967782665637384425016103169321455767694286059323153017847011699528451641310533519494582176452319677682741330422828681641607097004409704658004305109092752383269744510193959586244801140002274709846349225111333876968395920855561851250938440559151919879895664898460272756658493565724431857068919387594144658762401164230406136917939314021867605028015617062254222960392622776454719280554833862777778427882873615356291547398012516019642078653831230694634259077503495939135932666749718530142165576403501896012896677655456034304319697765862218201100181874254634483978076427047560476565330104090903410204416446276486121112594763009680030748483600849440581353616263480309469319231838727110897569156546290555197375943720317209641880560258992818432904184729479612063203422523028203725610875938323630535563831227423397428258606341682229478234414991357782420652283391756011344869570845083308646043215118485614851133498763098952661012050400356128087240776047678318573636904102473888488836196137316174628257229361543505975104506758278207149545684259668068446160597381918163715531785492846022470083349651452508837545815345944672670225047016255879673889182460007646982416292870730985327140715501018317568875068753003840163316776151515439435453686140871151290479115811690232336755862200831950620994576119626057508774805945183362533501528148642167407867599593257620544220974611938008821915479160116266890401653529460493372069897863347095106402146312203400049299594791065834221127971658361420762613854004484461246694949615696505970691697919623812093444539028860720854118562734979479126705919472693364554881374349962177502652942645382258719372034435455348720015107380295033040268273651914542606727517213689839664242485275012396843736711440580001686358550615083233914439660970570239316516568640038491078600401021523248849027997928509528959977757804966132779141411950209568899614125838405306937545621145390167631228259786753532066770996665075074355785668842127329882086570082760939401888433650972692600217070215201616862183705328444868159748959470579228606463830339653655538851141857814802459631695808614796924941685785396746792008090850082954216768501593920458019090811233109793159249716772733028555521170871232973257545013128886412444621422750490919093922284106166367280489755012134682913420976216871507472420587998030745119539066870464782817372663267852642849677134165225035896653550764900406723090383113001651219027970035528670669620744637196024380308331794279985380883767972262985800644510875741905102953319017175053303141173484952873229771065037394347499208595942126045856244561636201519055395302062296576683014789676672678918382209095471511530341920587987606349272046726533850468637884026498048818877485289473167966960686747242301609804161430334615682700549160140720656829351508248938442583772833812727950654746452091720200297641201675883438023020737758528792256248640387165748474355519003044482065986288972785737568702243716236215988105183431337395531629577762504089083083696977189485601573300543485729604678108372670591957470142698014876101503747327879911846856130103976026978582077289671188880924340273923848161401542113298839218580070528844614916542373930442732696846220038575618826437943764323234710086915358538714808097353579612820523977681275531948793615508215095245592834003203161390917913785616687912448553930383723493328279126611470888060292864954208059442886964840494803587656210822931526850445359091985474846060439929624553415092088417775133805904078502730616405028605840541254215720771138238727099717729840775871716485789884570867494605270356042710619833202131204706078067668323851798200637235578072571438279305297280416513761566736666835977154473489726001883763455079359140783288920913999185955999915415920481219889156143466294482331788320570160436548766907359941242352561302263219202519817178014440959218664829251068740576575833323800330255577486935509477018199535956375750125455206749294769981961789487657352903928075303933525725333706802602367985359397487413094649089658075258265513940527676058289353675593607364279133996322398146554970190466991338589482360204466092958858259622363205337358623545916271010039601077068999662531774889563084612768902891699845428513705007642347633704146551028750196495022580653237562422881156768408097020816416491833190633741154675557809140120177543991454747141293485729715081433028634681663534071656978517030894339477568442565611946187783474761291502682919755240440028001654670431035173301176792199452308581582868923986031523656162207880746129013354435748434749598840688672742837490509073100114484953828977962679570895911791528318097720480429312902253008597172208983366709846164226209015751138397948577024514597446725635361902573912075236418261334975516147275963229421958482711744111148308139404242008373177707531006409680348131399041324571247030725970407016774259795967916686729517106978593549978634806487170026697957731114651179219394537937217544993168063677234914494620852998741850857855666615925881857792714912379981867069655400129970571945409781952979921108475968244616787603954925025242827092356812280305773157897683753061320921479025937697462320529747412166407018475845541526891757765167075503671055003559495000098835271438637223799016802717631690501224959543857744469227781825991681073234616387839265707611484860418556501072815651225433930386213066824196919406028263865337019607933116021516086173304870995963649369054858456924576963262589642650590323992302322971903178026281611851250343300970938673490216338743296258583243107066897043539906705344491799463383884513946974681794793249201723346931728320139556992562174934487708277443345974374403710705643137641182466824118660475061786106318915314990180828107734318252641092484354397355891516783505820306478789471050256058190510514844212083617935732065580563746356571964333456501519239637512572954459895172615168930743397448506720919882490291871866814284636307174361885374297795618188301149296925670523073449984734108884246530651886524349187062932277727826999785889137709972751601755229183667338964144730633145596307642453360211372879930958066021464829902769971224912238815373332417195800317706062792425094681576294137898989671355687484469049628722378877183539021041845612132010121057927879319020894820836503116642103231573801920765671959455518498261993283435770163694496037008371700277587803306434308256123186473645449056143278441052503968023351346217013624865694180658920196727623357064835074119037991495836080807875902286353373309121562117925132782585492872515236175247098001898363740816679656245301712185922006034099795263466052309188876517120252207576915005679939771690280113230489197361665694611233989615416579391421161298430313416317970542707340448193570735120840707728404204126977494499669965179754395760431575915524930221099713432504046452151982565877374024963965164904548766013969916001056156475669848002036566126973281183241380156896142930497745039917090271708816244296285376747043795287548124520943081448917298079076662460019108642492550521049449653804920597730430847329555338969602872660097152777612981834730913225432834644154915429258265147004136661051392508239745021575262951425808985901820978845652054553571189952361891609094854370395490263527438440582520903761697400726331089051806836791886427874166427379625444056209718771323801178318287676067834851697074727058290411920121205891179002925106332648936394583115264657256564583302571073200607419706981439298332443767087685150249901120427822141738452952896437513263066846908620062034657105077280673156737528766530055335541567065214574422760862368855359480899487675344511734655671333970238002819801467063912672817383865794412861006545609076247987483748061045656101487107645727291263196467189614572124910015485560926186985179637565830041154276283896705600144039651662070331825687273432968443383994990975048431399640670518981511438800348027750401238068501879071941147927227424142390049660142941132058334651329508202171176127121425001851232906997871443369295304987636359298450379069695393157699766926432336843383630989943829498851282394638779854343151322180848585647750028018763323249198613065504291340444833004574675870041300352757104658811517448965368055252861246913025652360987887441420214820428166290369742191564819315553459889292012885227215016832768778146342567376783318958448988552993175244745329975090404266776172139819837197707559071423291943362711364236081271836557862712329295814524348786411723863356799135691559589302821400603375251585543165163582271226203014292764250089388792830962855112275797969583893560310706085490730959646973798429004985431853520568829461759670779298568044396963117994382114185564579831612450884831003829355242730512785663766773446566046739460564967300842670002965162066864524743553268851374493113515378351741969516703085013768030918159247564922407311944414469296439553274855495854126692499018966734692237024309437652736185818718988707325089353869664675405231331066857582021151236483331116736052129420262210532677857697865119039244370454227890092571655393296772940681203771091360218366649500873204429510957252264257665597499386527066094806789695333166509022651381055664110970679739299706413081625493845695085114797416584707399706912576050105466479805552904320758304368543547211146452615399590354493262709437469037481106500875499869591578783441243966268970424422523168701705746204239314024231536441594302168844292613808225217717275984257618341320386648261000134313168425014075192491838309773908632300268787363983519795135042505355892792725973272956263271097181845347299613201551278278315569210438430507277656798314656033490364593028337607605037637839529291235012155052720515731437165623943783854074951883839511832977380547658736625023539406913442590600434732692457680172832169409107493519378652311956812283843529185815146005380694093726859050772093295047772847777308231923795130093554140193620674562703207385228513537859704747427098401393423259601027432895687148101813287942915794627331822788075452600766603727880994767886546768719378265849475449771194732205219176149608393984109015547799024651584341863078046413104374120989632997138338567888503309517445101507425728106820339221557415125072155858066578917288470386087444186966401508153001976886394028640161390761233467409340842537062620318526894275254723845193723699013293684787648076769888968472778990502122055811124758977406975805479592595638871272666772114815174964882274809189960186088476315540571468088780341202752802223514036852540687100174703103104456670766484203532656246961573129920122373938781680568628370318447166307515294986971043855544162270294045677361808694951131879129284724997549676871124481517902540392114645134137577286373560443933586715451324193506776776465272530110974106023042261291560485864543019465776925605301186410771465613030466949578428005699902313110886613018314090048725593659252750723188617833065764215951702706396016473381686299480267847353554817776960081979531878492681734818718280883206549621703021481279660321716477392748226824201570499264241551925582177712514384728201016013985446761957424724618631562941877183624142926464593946050281716259957457127046043129918733708283867791509134115871238187604338373393092573227409054715402065066682976428155043114867855979165988569089248754840702498630488792617088032816114432139455637700120762742877039993426446702782072650892056301562150702918806773088504223571291446875280016806096638192501224433611537607992856007821680036146368652297705128271222263530569720241601472065889264327075556403227789030423037004462781269640467786339758870458778786232273632735038141660764232529675550209761215973353466879160456225079683753465684426557681492412903136562837062487743207867853082799863489745400736417549826275896032262659016752854421138765502416329193447477729489939438585953427642968397379176301845277629292132047773710949181898351577859308366901903923128007526398825097074475201800475991650262225124016602485707299037830308536086963648541546101934804532817194164974974332796353203058356559137064493442138125637032288245468529026023846752733335835807282627196629671567468094592093349781414290834469667072708849052897571709152668615925146520599118144710559141305831740523622767682481314739699188487241694484583212743008564774719556181734681830037660767010431084730183396074514922011921130643795574554605217108733248612826151525068563954095306888197861472902641325286192434765874364965611929472912382669489139431746805053436420050299367313858483231613963705830694637342993515959188883143873434217808399677126432902021250020957035917455507639033431490627976186936290056235339208881689098981437395399186955473231248493141743875953795730764250570834044115601767424916382472360573444094421370973957733853075431469034685044741421402344070789377893034983149519522256465569373682812195314019410758345771601449651818616185382926514698050035977889901902562400404623009447830429872802096836487349126621379635954923764708368978302011837871013538367882935589415835921006194710069465024175391947153503173440797798169624417042091107108287960165027383545440518155758306108137585543737914075179066677657016955710143698216475772637006574178871210777577059500323997846653147721324076156919324299597127258381680338057401623117482595976668085949753110917614379937156143539257931301728349896640173659553365167501266970052038283557032390078700072234881445013259961126111173446773181704528354810762238311495506338506141417403567940849141797436036775394043625366375731804144685765700052789246159626234878475522048540078111135256389265990289116352149051633730720165372602364867383970045949917491907648567042555023609600792619027645891645564321174314205303804314710572629104291459000367959320020610175039621876879876507359605365698817068112745211887358659796195060131494945974330079887655582751980134040705494169707905927622897316880869408424889638006050828858163186357699680050374966676461179399984927610794909681986455914305533857919198068102065311447149625681393821372885875256220136110025755026783753064737141531241988050699498951059044045993645804587384143337422192956872814695312497041423031829902188796685445531299854858501688578992235412800113625907411529319448542600323273251466801739603330104409419818864080925980024677339200810437908287153299076561227271664647273833824721790421408362243784944634566442488393385429839820430012295362315783406549242200473575985273373446962626626719813222550112782946852780532448992627763966124040428869218607317901710635281292979614225456665425907741553215730847579873259335072624806550253464902811667359228471837789734905997129046515856670245888087619296782536137870995045994206476654152373886533711076858363365036399393847746959320830336165818768022549567106911514229595215659670496877096734878380092414256784902237285936133375341697311768296650490262748973058154311288832591130949289665380977427475538551736351550568446399070198992864080099787042830379301577658516965959307633964920598720247882771191426257609599650167489978972630965765509275462346682327612554800955452448004003834282003125920258556693356267383439819225064943837921688056359959215419250684516208341197622391365819666811919566531813394476038305413541110838147283713408479087964975900999083124206529632870633719427952722825146139321987540204725831894955281099786455430915065233891572871968925049708315112085675858301116130460232384068359728374510632688073886567705557542513109569731273228984525113051974494332961531730370153643825051584278945921722755578234067860169822261609580929165205759458631838505809034776194071160134653639999985250735588070824495055584753428409814166065294021470143959670458566151630855821427168406648604632393408270019050451504785927945031963780443720384208284493998304714245195498904850703553221197382914634119533493177835858468855698631871510927156591595113775668784350525794658558615662514751622147556717290584568834560383245042696958172010653893194580253569028424372148361866034610394581431082561099964281252233540703097976465147717967573455260687862993016402576417675439483897640842431064434292526984977962046851434965512042994257876304780908596334759351853628155735650173468735819999306026676483880445469359320343245102557537124777986795059394063815228895142635416352847685954560708783063176216645033181644818911193661121390412114715455271315827820429491257685646968783854810562118779717626727989187928844978738133748522185295507400572625496032051410057660178700409500874876509604464573264223101362480252449571276365253730473810568463701938992488343828031180174282862641048368186193818587489859608416672746242065777339367810684357894015987502156891175739922048182916643872554881877720579790991430517790999816373274089874356385136716017689790488388341066629919082517151776877083246097634161975872858026081223198067714609204675126682080312435784814514336239562159230810099549972040417347012973202125160926448498538150930219885776555846201643414226943129569566728629480313916572727039552648549675310252885983992272918996166102805359534142156310749366498179533565418682117190604873374167467072801496192489646677402066560125657353379816181374460714536736127161613349253703064958479621179784936124431688518743968973964967685676547839703212796215608494143354962339435314061915017001392773683817935760092186585956081130128028318219344192444569618494551985875205547276547728598983250760115941148975609706292077846207126276018365138167675909756255277734026173395635824591892446736163391879443728400444292196394841491808806042776082326872931186722266588176911243330443182955386275015443533959088865367722801253392310873471662370334382114667151018655667164976010912791660421606363341191380531434520126880584623914532520572388594601309902232311530770332902090179402818917468199472661650415867937450754102412418736111233914677471772703167249978246411786532583205328173711279115356288679718355263638082330680691452101261154550511338664782341357809710259895389155249630713052478544706669442966651763267489691663774201981815406970731410330520219123982003363776907280598370276439278456418112431698309009426243513291626423594717556602403242277130966942808006300097304584647394246239012375615300870305595247532640201988843711167685103995831200884071315753014617853923922885713318711451568954489016051169627314659211080602082095125909274021308509621087051824085741354954759860914067037934823268526740780855301043770248144402158540562787323902887999149252422938301654976108817504431839021456379383571781021601810346519968955068366295807651697863786765687467347971152904137287408280028535125459250589255559631024877038700270112808753860774178705860298486673941749919406514943199066204562338267881230717706163221825475825049396711513010820464885211981286515076787192188143287300365371336863561839500187920742420730580657801535286460840536557806042795648422522084930790821223325922446116834997799119210081305244713173758282603654159253855522610129228361107074514802432694932816666487874158676993311592022488941873647415298849393966445838177071441720848217144501030938140463807108592710655652099675203600445636932376651098676993675757390774720514325705095692597151564788290477966107448775661511708140662122462426251732343917320582405682061707532663302864802921577742416558092134261723594018276626757726974782837353874841266397730399014956807474314627284413773913564909207470504398286262778078152730014123334104198611866939992032530015149989507247839063627731496662530202115564367061824547016190344641898028056265120858872486990934070684073779397403667206552645032281087255438207916134999096153121018583751142568310620091565487644506521549802811250252659964473136087492613097620668626055301453542826764381787135481640782336690021043936694537524527133279608255289012418208422287029159940796293906145821611724807105891664045914127362414193789659136363264937297182141932992242477680634013606017060141130124307736801279929367219433588260080257588750587464215797602960160603160875901539782251896584727225821910003335110046676783155633099744205910143652578777093860160915188786501387789519982082454782272608869707769767273037571455922187695889756610477293072946507745931979597308595821253398011163764900494962428753265104360808101558062299003232266017094456076743183207471468558263830893337661618977497836497880898871399345251836970154371007707429945402370573915390090367683226291652199944382050842510841696691943073242115760618442272907678878853625948703951227559321292238166420346696162600089160513490835211530934770828108800756815780763330920986824289441557303997808016426776946534336847384446442148422163032149913405173774792881546957246119529827161120207024395056686538244252533106146958257961061069891211042296881481931071867030337004157220967746289151267619633629886573504437923310336189656122858414195352696540347443247146043032544597609334464682039306599816079303464954262831032325751921215363347455033000122566932953003027182421564283118144969620645898443476466187785775090255161754344241433273486953851296687074978148420218206555815749635745363559998429764467849918144854003244339478922945170499531557540099934171391793845785335866256263508067278272849520123395065600821769304022478752648473082202740984795895439336514545449099744439856746616518662675127308847027411787807374241956300696325854794835281564860876029371674375087224703654075075748434853988731359097724827960936689205446766217445387842820390819589556579770612335978523444200734981776469024583692973647164401651599473466534848655380742680951701043061390644665856093939598798584408176643974419319563589104144644150726585403566709919736174089305021446618717522311796744408203774239790294753326846044647364508865606671611317612953560565232848940844131603764180497928111598665069249792950001852481407745669514896517061956700430392664820984689764014350074308090731142154481022743688962268992886641480381468070138031621718692749245318132441273799048269811136044117134817511830818823879492414409284054587529998014047701967596305322864979642363711168831141127735266636427774097314951919238602818253413869208400324598022362266833717647370536800168596871534742615961787299096496913295245731474134783783641431334630590259162251947281691741919448336783208347808492388095750137648417131783086413192899926106539380304534580270951178688199664202614707958745674182727276225819143483806492174773593380298363129825911409577633278286364638453070108277753885535323849310982685544181727950919974114590067356464354024791164085784257726653328047458820404228049522876223349589829151096070173944499348505871151358626545231231275325211382181364120435362754230833783432322988270773824153606982604248384053523794721801970805759605251880834995940798043881963059979636842050855105808967046228887679657512791466700214364941218280877841929078233436222907382798656145520051461660901568841433134337634076588006450184577538099505214261929272475387867169517708467113065247327487525916315593714135649806126776735069107572502861275196839071366389549032471436038760654757551586072971779002851921897722239802518816599080034579898736475791066504176748019607099815396935895461310011074545479017621966429288851885791688735785500628406632355850458992176233558143708200039453995763833526950167274821725261259463223736291788365669037355914191245271629367251378218638662514982249975232587299187023456032164735788232722518554447191220493586162054806376298946901450929777915830620136633502184156757014308667103311540016484147177725113760731168252436895426803951643765101051015534701688393612664048852871574584132665446519728348352555202705837332123880740314310168064093771207968784640410787779394982707826003261444302564148141851450067402723873787103538779651023551143105837424247549215406948946093921147898498745516437525736636371335489750824038532995390501960274971566974774658645012291321305765406070115372969326853128991124519793205472914614062470064455756743103406291462757337919820378642812193579489457184380132943919429474550397647326776622812614429290566816329363660380366247365731550262849005403622076762314454255029193411780397936079663736336618631594592906062069730256586599497488145882448985934488108443355518196454410826844005670132180393290579176335442854064471346842230625097833081128902605116374119811061474695446828309590109562307220894159106758615118942255437475985863908638876298274119976103257368189828653249595203441246761807033015094494458432724236138914164971558083184620349803515432611034670583063813349903380635521649781989563067620909140608825575365536968849090820549554979169316837196110254155281570871534301313124713895652534116523701097616777442827906789611502756343996701930752725761270150730970955965637245519664845799624071868017450228705652481500061458651129778965542673736351715096098761546255685984433248042948935229490641225084361282753007081633897125627468304274298134964057701195759351534467733575368124377578013822729128582829976386837006261039950754563356000466676862408644843166335286460968217285371967901253398973222017451359277144172936323410815245714151054970485746784081241064366376067740699399716019430879174030776758608898199602601943056729691395286475831678382644639577138770490136449778829724365864545725874179184518839052064993117474281571860202446531772172879859790935246109531192301741836156546530617941756740174959184349018013875465613117743481344198778063255288374312452211523925867382778572169039158103788416853870608028936134887749982095798723509198047331289444453409496641061542552206310347536248298177079698847173267457579569422547493031276074912888700482230974407289029414801237208898928420821260832319870131217487675890016940470188078927689158728987714488200607461532346262678074673813643175731551722947340264780216316190114961728327227272545846542735304628685139492766041177166866718371276757859526811720419517854211954497980161339064494417273700666098922488632212644159118695244352856454354715113437102982070706200462288726993308210264813670313363206258236999245022096712077819619964063406980023971213372512398157965415652490651875161374822930872121822515825039065692484960945870531399623928606781917684980013681318092094469292622563256202327620878190467843646052563475410708082174363556913529317919129329935281394200127227927532739501238645715002461684579804004679146803338482249449752319510314285261552368492358838849057681398721379778795211659460039988296358671609502901566645320070337035526474902900547153706352088155591986311095313582407973210741279119408864502001231428450514931658805563317659353225495941249072526698207165165355293940511785110139561483375680093530848755844873666067694010773585882306547118761483491317750750911757581213129828207813358762385274900778970465952401898972267563083579739180484721742011822925400870576120790160751730793052025498169210339538391871653323179328729040328223222797581647508051081785305243678906534779858369930180418958248550427120228081763870365879186011184339463089978430566300252937942707518964606259004368619559615824832488549177209893782745357105905708590042357914081494575933505001251007045554936637335321768706662730330120833687436591383946900622936245536215815679197362807309946333753635774198848845741951786634403629490277869450735528982596631839570934014100943126063573445062334883066139074700686840125334556457941347657870540837403484333833540181169091684902162191768151447434839429005806292520907742233627205790356392426952883156172480711774736118097472775888558788536132850912117259175308927824044967588314059782531185396772068483475941302356385373840691905729884911633741281076041294165600092138403357812624881182003357368013399692543590050298211497053291627185947687373036223879947165770317509501056669910068682400979486580754537441131570705895066736193959615500919484242155901934371439371156568443161959215558699335380908971070848931064005603979440926627062674186905331729542895913056336404113112894796106474101912075113567786534630891159179376121639684726221929650395213386337037002085941413680711814906196478882742473681230238934998480500946792810893713541178812212852291291340289242224660002425666445130552357420275233921625208933286162070422495465802260762139282325498140237998348052402883475357323312301434890611550059148977310652299400556529421447528616571280288913160131212928074170520191644585430350501888932374052281464689060687757142214250916255363085767928762941914897192025593632182212083688841504919963104734887978163165822665084128732868429314051117584339899849676737939096835534136039768200987787750482122250712581623732092154824507132695079192415879717025906646695009608343163286362116473523766719833611268691310336714036182636098280632464017082511187272272064351388366568039729876873932124987244532177017621240666306674280011679325402756703486250151480727013191638998581113162199312907727643493611989812346644154186160692108183231488052898318553996882586022750509007837547321374153719868459874160786939755105770070360240648761076218817259116370045918476230812698536100223026373711771259231812096815088559397903156649633995247878502418151851705505494086566969099125768406803627292133143610926724626897381057813062758581704845010038283176880290749539672275288814675307399600054609747801254651969966958557994913809918090977696834761552030092264726917855358327137620676087178433042294439046456567523121916989749539192811936344640951617572381668987978676741432427359120233593857337851406941890649153428950705986157312521735954637656562116626688253424895442142918630210604826962699749669547900025542262540514255397634137426093120013550939880212267353273611066471688706436281625418395155093524408430884026978808262151965028837867828475589791327680711761029506770649271655027069764084103030381221701087096071810967595153381860592701937285250524512330931029102153953932319231098749044552575875225704098999153280075040871385735746536880734280673040570743737903909233028973797809161654954612623470846207290487781469704480603186133216883928870140549043171935559244611137562405101173997685624301723101274317683796275227185886831799402968968095991163284223412638918460698049234024985307249375942263533106974711876506511251789743958435447737343251265323813389141070643677899972262624960968513158652681376184851802113242166161436356748820419512774212212624140786908754026468135617594261417732430838556910591881629903209660472423366272346709959703329342479042271061262121833197269329273811334795394771187828482687486651856567227593529138307835936516057374109055135670772718261564375026288652369595402446132857074184349666580879856751769793859438137098704629957576888984223927913490845616353480137348459859338650059851671291515964868088141412960622248679655825802916778565319694339290466712000734882946428611763872531720528731612821213631790185385227864635490847660843743035526273518418628585909953881287825889787809097845059630202189535334502976097649039838484779929915850462648645347241291196353747094123278607836068817835270897210715966350089358493280940173051775068200144428575812332992216723251221592267372094932427939215237679609190053648709606583213661335534729911232373750271362366268723501847963412777562751180229395811779999852538670876380645988807090028359357683069060495518237476454121565498667572558136970628005498038963226425368184960547634348426003562308092777016698504325810192531847203189792183869359101660269141470702146463029231912699998405314014925700419414101747873017804310571204445499177439155056211583188988822516343667880386552628363718523037041242563639184495776207195834878827382182480021185631235507508819935865601055307745429119957346098495266408836100617670265725345857538511529140977215794644412729510727481386679064980873818903006600085353413124111170302330117486107621524878848684083682767142311085173411575193321106040534652535172057683190415017677382847361156028496794742546270443326863184938995352863420097473639611999805439244807944265447060534795344407650749100171496418063880064034785012013407339876761542345674569146484325726759444066399962292872372544810477312461250669607270117971500256605620085567738230738070553397897106959824419945160388661246365726471976848524355798873943624728923995775331311669876389067308070858646317460937331677574668668181614554302847997780136375155193156032625166155034181896147120672105827893930014789577388458176505797742566745164503996687792639784474456187041488856214486913101136324579014987889714571229985432748479562568817318314153587217760822444208352890276422010102343323917235947589164135736798232866821022445153875676511749313252780469426229088017676906953001957922357087431102382691146061100700407334599997699294914126617844262142284435735931272635228095273439715016768996391262464726316810518937013511563684172587133069588392225629019761653966271829078843175345367452918298445522137437664553608812145461814610692558150680056653925113398487023291783895061383685467973493894950564030705080313441233008647766530513406617505361377867349714629318481503000672668042632257160154582069883520318330501685633126210858410761612515600435306904100135100849848894731666359079350137510476062784459425179086707319992964496475909221751294888506732087083031556592398895013830026299489932897153564522261297114939081004586830320811154196196529051770285355099568587680099417041426156148034856763138309778208545863981945287381865374848381258404402406336290575688236770239940723871107427951421976148044434138497671999038796174443757691957987403241499599593416932978678459493527121343213003565207865435567919839841360697287814674681389033889029301660389544669953804815343815229996197889671439834390946047935053585135607681628275409842867086568113884119745070447319116575610140456725578826930504287918556721713468749448640630235916189795685981559172894498161191945365739587839159737341282010488538965027887478718290772805545559737959495304762302779880058824593460530990461790321343408810706752716233548039127634869381308278730086836869570907971869326388254396033155649033855375721655357556369691562018818673887114567446890462640292805671883818200116276883183587584388855491362914355768008073553771154852729590430652115752809616534007637896420458621004796643920607211655078760050425203544868505794820557341400869823585576486473056360792259862231723208629259756411331751365232317700590917087833346318211855835140975120558002578519251876551097392626395994803190316467558235846447282146364659628245788084182360998386763279376230917513804146852305170645006633931521108973656429206822789668887448520501442787852344548767348987806757760499293647911455924601483659284345921302761065368661466726596544583106099677817789113771300461049134701370773451269166397629111365766656816344730162309932286058985502923708559404122498689088374382005166785857047925925832031300541452717266892923531139784676672964261020676521009363413876848001465912219606246015936182459465321752976129692394478575699128909263057495430165186871519953540243135295071607314349520445567379325195446627416940818332241989188608426058292227617348028357415865300051689600562762904481995025863452008482896209572589120512646501681948564050317648715017086522091780073778517367315479139052205852724150848032544983724893572809654127891675802490506863433465279988848637012548160935882289587169601828747726443084156649864444657456681860435205185610898999967888007349431278042484907138337099633358430784865765678143444171210647945464276223394527367069357069959920855948558496248251255497849535909764248276616255093434263430612771050630391265942159795559263145574369410793740622772420480530319407701369581529108869669839525562107889065673856848755213529377788256414556834048279012241871317848155710087609979918186126221876456940361696113189561303295215606942996696685022301183679837093893038491033829082782727771353507914469366369953671834582842772228611854896116411729315488669967780107218527244002831257886112590394522033578700330331442379969811051391302541655401028697639208290761331461681211830260421236519285683584251706190251318570077531890038014875256471878037621164248445925405573940813145565662077677166543072274671830400154981351221936680426875540374616833043085060065228616699821481445758421434520681087503059472614956746590360711208736142529745227376389998171269544512560241089952416835631399301550122939582606535292850267518234767194772116004977369356643684286088254780397599269391298852783906856130623067211434914349238975639267068221977133224736946615683940428844906296088132716888347744411749858615282537859374541861998645928704895882132246580821960602120155274407159355013313275398025300633721340686369381212815747514024335955098796833337888790606921144824697726343354977033267227042154759080182333406718990286590503700814049192634332851739132105010297289192438873739082429032102395725394906257111807757891570595504320347129186725515792685845994993437125085185080315880692823725342203987683428263371420143035103462521607986073319807757396905152549169854856038968949460052583736914475816779475327619772670396234230792596007870487149605663168095240521475545188699977380527707949807641538040596659419191391338775299240521179029203667858489417668649333849545945570338661255157082615733773032715736554598832269231447526792374808915373768852138098792241596518104695347380502342782759530571058685272897648674542341350659085740423997784982772872995059766083322539051236612269122038162894610657096437233321239520830406185152667652352619031238569153724368789981023765935275348544763119454819044918002278301752449877600729560577336939005308718776442684189606858917134246596653891510650838261923863071179691339533413649506648032050549559379312108514249311520003215320243666906797914114227236493602160471894198099844281790860282247398179971685298499173315310988010492230480269991225582779804530556160647076830896202303949957080283769727572940667689958459963494576517993714184277830429947646029778647668105982855177144115391623660408371355531926969514064447005211863153108873086107301828463887825781228807914832647149333079213696341806938927673605457824574404551979507624194894444553822443258757601654418817035809363777077778863985844785211880535570370942483194390825057709356397952896223527006342456781659845487712716611401913986559276133784763267430377391985663970330957970309133645374707940558583077892363142556100935324107298598457413794950670673950993350862104262399101952350699205943620876335171886304938985352142020690837425821795520458054493339423504115564489089098145542400387570421682734315282949232999101941458082700603524096455404230458373681701274407217058244470445771127807866876283796382064081642264719569052464588549163059096657857955282348230359302760747759269664242689096602132156837821681199189014612146291740244810521392700178191706949365100747592937238600292960114584320107099253917057413688427118416036520337340510437671349446476156155980892890823378880883712473063443669465557830699956821671498343165007213276142635789143098869244600530129837391499909270531651770609660514990744162861110296785382693062992150023405541175325495500604118483994405141885675364618667994044247929558235388611659439178799007512609186572514547155182965489356102486520592708152446598509593650068808118111256950206742269502159377648521552059403951451498569503089802625753570785725432262047991693123692546305464655005296577932570228435374820674054348091469993690764515902183880098266055040686075651536290625531552264673072394883875490459413647249254596970353359817580927627925172264354913768181975969028082850853926780965322428804526413685535173832588052614077103648476922423615827376714247765322941498165694982096803212648186073002940438969243766974335398224988206385480304781880826384353221163116890241446104909976574772862568249326665839418334184099912629484002258936069309414837237262400047962175191227074910279270810574166912395048720298985208245351330885950887945898975546033645877453878727696297308481200872295798191925551891795037762439522205959858565323354660890418383614132285316902381824456332553924490983754712941705246851291612282340452629265083059428615746822082034326176139602901803045688726262481979253271107613799505299830237847781656121252921543308935289410332384759884590388917252616806426077381401050072034223636083129326650052243359172166805401293031454615599089298420830848714391254012351408320588321945622267572627006683585521309711256457008632631523811356185747071487505599264255607860945677227201414981440768151351924892679146810983857681751379890151915244349076069141357204393567186437087582133264632271010594746807642176952082329316425773554454002799146467466364380204307480358466769482854697553881648006514670252462448260292620354715040738845265695762366004156600967534173368754844921521461402586957071479021112341832861402894937581401288915077495150575795956422292825614273932125593522485391246293081384817392714139619093917742122969050197178126748941367377665492341214915017924800812519505088958508029809552075111926491526484500489386485069300428807784061188637243293570139201786931048161744414112059225977178735897574085331201988618698563052213328660572458421698127758072378906701218315644232770439161586084587920504943011275640641897342650507152608938319111639205903479902342499631723417522781845937529314654839954221664672265603242707614518412213450631252690965644536403488899535032270433396261522426389283752706863507487922554303201337017886262573183899995036444548293452080270542036768641712752286487286069165373181297907873174639762987958273957992770345247767773243542519940680666828070885247861483945494836132220290664164036008373578220569507126652300073216452556452298583135394265412028075568850545026891125917919471057653776121922415883110763832335613098379857661794945613781741179573987751100696487255192551947700087398954043468571757586717706057349118796388406110884911553571142157066219272398155589266378650920068456059412587328135503800071226144176724388343400045688406415535192530179570895186625317427548764856770068451787976894795707118048893825709515504110755686370439852357999098092877298819676627932843431189813092519146062212762484358702734517635604848782556372515633403710900000441491073473641103467488138008817806274581100152037714329859658967603832988516138153098291730948555898382009411839361919765722097429464275119121126352944475238521549117814684514305116284716519769220327336745419159416117565578365164349928164292172047930807547727037040394174357437086236317538645397965764368451689761778903236949209029038880431293393314556659979845633101887431443252055149070573711818460163154179406038366923343464309352774872885911117644780994646439062404813388632561496061435954727857837720505589225824526375952169015858417771282243567905421888455958135161120310294592389948447463080166197947089843416201162313713453478067493992911476183689378929512542145234284153290615881960758204909208746730354038620299434746258136207886985849387765453338286378819460909665637005834322988256420438508228014639523725244148506813924508645085400772254299120708193820861364900806373532928459538880208271281626335179849238868407304596748576221611963158491810043884998421821125905676401609391995386623272468883711438174036925928690266939778609656383502630938103205277620117058590609104528446792895096204779096976149106809232550873940895552474828867965559153359343429947223177216056291909934717418209643407869082716389807155698514478119117946601687033218899499233712804066933571616845611754276147083913151626728426381363815170811079226118842334670344230478767987301209712193368452991589300350288347734689145697845099302189372711930435834043344950991903585308789315088846097302556645941952245643465952203167606855611736237086466985883734294041462863602375057074079212805739773745193476078999236882801792761553457056053241139937234996171074518346958534834239702293602736042824061989843420170249157739413512928774182095778001654005809789411949559868303425368071519359624748018163257870105376069791208225140499799649680120173094425697021208897892813965281846031310855595079843066250957546111835206921241756293025539329035498872126606451300403025046132405098122387046858337736235026479049110772068684393183736370517796085859796132221581167026847517846622722413016714160101940818447014197913767543634838602994632922622785449673026613494539862762045300492611826840857113516045295465803950583091990525895241870962699319228769505887523002096453919731384229429351417389028631297111225239136626842708319923461055548356933263241193091898391746333563477310019172288576770696811884685051843666845365592960249406092175375739364252461363485569171609802159636336399219739460343375631145487352934623454662688692153691195525143857270933720052977291737349561901905396481547215189063897693571103865018326139738384855649119296755816003963954252724567154286774986223014253642376143812448493418651035423015486842848511002418648309542663090576040477594186808940538254563799648281733526278877926689174095696861550033330766144655088262451639080687634326258292643183251344677247211902198654002258551174794101591693581786752428418396638611407450273619382839981885481840492019122054298377016463938919475677344248359689108441854265662244824139260014274993577700262619711507630595462431801139076346984277132257419959493029801564265979141331871861329657393247248621358852475457902971817344201316133286026798234893388425607344531634333917898167548925805173090461937793380048779904555179708664086873276738496945937784000167628254399585935736671813042692842645972665586698339560621924359867632150480625199315498588503825048442501466065942454839593308417104159863825437752717035919311263361481315728732516229419865366591731595923745434750100515100659942411599604452117726744473055571477917280460193529775076347947913054031242967657465185110412892868695741396400721047510249009429359416241565923170433804671468969108125529260028879828898506079372080064998279798657913139320901495388542327416130327179278980107914365370136061448032688562821156061599963140091361094968489195739748047704131605611597772932108782442258586513887005990173539582003522857912491047348846732969674482496567306683069504693724867548373969176918257518216917598929032721423798429857080359211329191085925707287358190924521689627186116585750682724918540021919469936159748644022659649879232703459091113556301020381466633404865935883539786212731773314339769751029639983336707410502456986104437234774971056411646493255082465813660043728699878694404198821933314978224351570025488028236600843181968152804716809871295396830634557053518896854235427649091869052200198442498039695731694380268731129444984018813922310162052243255266170974734024805506410844973754748429743087020638201866140857574193260077738973614968360097119984790968927816230750515051448004298447884417333089436223282503983586252573163735406949463103971680629354061266537562594605337406521855694095531614545194715566097430851249547548206832903415183764554933666848015215404490778780113982024948883355035069848417657823437110425522436276128119635195892810543019958315917040717611254655350510915027980341317545455443931765796710536414915581209371988891807955099276344436793799024319324333010286343526609798229159851316143963909261156854454877817213289627205401245083752803891858790640410747987589520174522461156196406281079054826432581526482086148161680418803285134658078287554408520131870304055710719756921048764622248861046799895464224906944697933841108546021535275685604299715191486652425798153992757225715130560646265983597953542424492599111746012112292739355285258945221475766407437374985255142425624490988741525445349008649559214201768420338140331946798423411982909380832420208474622716771754944500221316882621807064858421035789902587919149072262047112735397066269812920073822538909091794117545333025714654008187527740537138202135532058779336454083810845209196685238731407544370775480177081237977463544930658900900544654185389793976077678901192282600627360755483417809174949819857019205749596997578312770399891248805986140650878570056217238640400041390028912890170125947696824984237255947964120916958626913607457939693495374564485789717942460818754826599537499180277597231487479643497150912309482063337479729023754822030839127632247914560415174358809444978525886634043930692788733229955552894625813591836322626316863246589343526098375236897648233123253977307926004815197419632948279860099012394437238891138170936653723473107422088698058267822904520031784940296798215746374755276974774705336568391767893735041782606709342007485045619176930290146610521707039376865254366345269046804187325496307839881537625216389354455675316849032828173525019306368651926259859173269948027768904616755908275849862466104759920819082196052384419951451667285954438222781175498857867215711558784102014737816458377169070592462993855140097115700364748055710042821477014381705664105027976790482084822023487395131409384572104865750318520589876593160235250808804170240546165707691970091634756307821639057160779912351884378385002831593373626740485844470370361004528948819776905606769345096020316466671711051219474470761584219681875887122244243264347758526863555640815794047108111184979458323702688347642107233712691847944308606568386382932104409534836369760169636299510158009323693816250704318860990358683456194560516115498029363755740590464789049028410543833053785511678843153097713487275550753963719892713220722663345496630811062480332971158917022984181025911073302089040677276586918254753406027355481376929572201349299784019107884103930999290288381944377439709208053804176511864295289236551111855997039505071518840438175246208602073785483635460201051424226088092259114519576397498347543384742997361083544154446889001910876602707123714198677077208138904459455666131690749579426046408936013856052531856793573296543109343175349196318039518282375236305166389046945996941936036020514766858975420422571957638882458991283369108056348860353092957116500473396270988511212030116025033760130084299342823643419076586449170641642428105238755325978416298301795626222085716136200649172144636550630602522616939511522233574275589047332544899447338090143830444200460633519735397257447027742741489883225428588069342333620823102005714917915935229652888152549319671706902715803116638137711218139740944691155266191474711397489552917104492840896273133136963215999626036442188973399282397088409648960330130293802668930030684211666037396903045487220398222718743460887938935165559811846860365173193010556376616590346643588695427979622620522428649309276269452279261037739230006328630138779371784969439055746002209155830746980870525908122971148925536899910411449789417728986705483808407015723350974531275741418908266683600734220298838430493037560818087473819127180830006531152434673012388223467708410679278324984531831478885880126758034403357790345051829522844677773685159326119438582382808296252060787664263120871436972939782772574392485274777512797795928588126237947029577065853469690642982601055541841604939709239515809005463799481511138215007208843141488189899856947953463227591363798075138090001829348809787206934083447006867243064988470001938451848226365039853185378027437890754541959895289163830986502796770178745078070073470918849890777052577776125873724233270457544845028375100025810672514416461382632217429858936860957600677716444688646845841459706116064570458858532627155910427225309357108834013736952312040078761333558356356677731052777268925260884356100951540392576240227350791872190527598840766147620065966837779645211112433316027402607413430208032118362827068555734148853943999956640128441257924694695920422199994322831987816121987284921179871902309814463521172605939368465495615209897501723828341948291511241376142455074245835599493278946920183836495412606115251860885015772614090937029933552849954587861427261027230246207625583220821258105864262753374214335414578512118673489642057927822211316740964524860429364588531784304151914681264521866964683876650765072006601449452899348868837845884796098261476041090437534234068922601826818867742783778548385574785893104514894488724338048625344563955824870260044601565269980368269215467711928194542922094261049203851544283400014536936845482466601809957785166640274904067562287177253376778073210939724337005925476924543740458654966402027143118852747588753630857005657222897054909422435752316600167962238607682624972632034357948577756997007274356688470342347936464126787066787107597259669078530787065498079306447690050129842605930909176404027762239307948776201471070226676266598028959533638459789840729716165966653476586175281256693639773520353910035760157892248819383999808912672467947294435808635472195761603284257264640701077123514161463002419633155708604938452545863506798245846859586830015954223508065578330930896423663183487964559780983121044621747482233492406311538316932924168174788455200336783483379870253853898721910263483667817469250804094910779279241650049734805848225879136556460635160037076217493192977604358259825388312826889653046937755746997257933401360158830907787964146613213286076357012370789727412690880746388605639531831393790461944327128400470737372367960973209631941636047833698300881952451636346684794328719688133459972391335656341272053781588412826788402293016725402943737490510335753425503548842182515989237171875534982986744975346304282405486674124037317272264808862018488906556150499817263447095094218554487847250684766290513291288470061634649326729113678896569362877783696673929430477319009207728864112907572099013612619943792055745471801815568337834943151749729615313015377216106960795018945944580511319401584681022361916470540409557544363221274951039874579199588130779091411609095674028680159463339484489493199043348346805672147917265361300684018627750385481489928796170054761651134257251819892098998842413508167014002809402816851238185050466190744680145663372119691164590011726341013076176557216404104795889065327491565968895607656252868690820866366289000267162367491098461872268017599330137057868067261672760486679472897420801904664327272307376618629261319240011676567873458028526767314522324061218896270535820404763490538134218525746707210812509433032409345730218013834154522905830765119094953919931447450245643572922757517493476148108780082776426552602162373359405587677213637143620366256759418326592805962064547017836114914835065552482575514871908036347685988254928326691591986488763348784680200655378047756756084727105327202801912052711482212358831103307606149961164434532320707823302669351445136664089802029375450869064528781611934563139765322315346585719559012309695181780910585911962517591876024847395978544841393350532662909424983506134422049715513035853674375446477513526379499728277670964702356398659523051858333910159321811626971722604986708401431156734461561722625139675816207903587785351917271560876438159166785054541344396698931760038724168552117187312897260625575444276707468269832900785419259595773625682667758978143645189162705627659033201090515390996159110273421874623247863095582228996055030993297326825736474281697053389079970107854751766775842593973820804755098935688067081097988337425363688308325128852017348077201761839100974287782923375975477798449823119426765744147972649618651299730318136810551026952981134126771210891252066624022300993614445601552224825763253776842823564852389226184017556283351782485645762702195619549679486631405187843136254892774638515563201285332504784832802185979829305978218949489184709945773787508784078582042010730985889535226347241110459083658971630665393224397847901617018208687231559763159998351277399017102485699918382470817298434084730063938073307843292133908957268699683225829535917496700366115754698007583858528089080122113461810165588255968404213442651545776756194543970889727761375167479792796805132019467044067902870556151422284027849099096702218753010575282520747264599948653519963908092058821320781739720897709254365492583242435120649630628388119992069381034345426350027497421192490759506040633430721898456767863393448473349816513964464517572929016669184146483176409922603210482720103020723099400242405800073038705124971405435443930753892145918700855219191507964811410077722549497025550518557420797958619982116470907769956741249871287245605790154651163503939517897859282835856387031885730554871749876835943752644815791110384251719359720728350864250785389767530453813956803525190175234947827281843250366877387772634488061417799779529877594415572724568569097652667296693820725186632831393666392726866515274803713946622981086892688303496679185483571586527196736647901807739482347779318128546059322530647825023637887751351137651043782997139141237193040323452913758311198054926585155145993549160426769634764340879591921216377759880708088210485007014498205646257624221236410678750746584294329178503186430535222426814646579752472523950690724013687370790017895602537980616296350163097423886790384473063127427110331598070369444572017586606702337197308564503692553473373194689508538281870491538042258402807337949209753098368424890657994416432197151634532961781774505775513457477169445318020002933583406064008749478004556132982133118727486577058530357170610696672467237106110933902579905675326772684270383707606309339937322201288704812026929686881232549020199636819202163205411797526841742862825791274154371947424760807358765461513498975649232589081692323203986968004519239511566615601390023450087908148506566820855101941540853309816272360975058106939570015425849424612641914082832919391525766011079991094102594774920513587882635905074766760998597213459221817616569433916456253356338051029648153048304635045626024424551928932503713726929246317808768735560929722284391315853841054389566913119867781051370108818771744630992590443510844535780287668422729209579417577364523229869786091389626432046493961049835083423051710418439550388947478044363591210078387322968957102915308024378844971822456306851154318681301099749879814857310777257796527888481969026095817003038928887499542418573892346198320780935521347649359637854463787350600639868825305658598257642179761707433974319659646258928439437382427803178456201560777422168295975458295845592350602881763464274120775316238577692783637300410690889143804174296611339074242362965930889531176739663434552942548809831568533240881640167607113103402389103234759698109314222173076472517206692011628943235815753581905765157406041890761747613090233095876974626034917581095749952196194540244157724739031939122933472969353445395321451785072663059743032186044220803071784358088554790899141360260437372439389399556784840577369344635615025197771307148074231391688566620573561107329170580868860967128644853177629191184341724071708101410152557316862765755974478479005613975858344757824687049911219607462899611447663320502353070166672344920539370165571210268725191327209542603387742582810544390586058193701757275087833792795685941251743852307683322303568748665455644472819355343043674108569947634156621899976349825144510378879306039754511717000406252209589608877163129587749402579804186566035791183155639029653142643804901369658489375410532029404784742451031868286057810134259415080777428967496609712469265983786310183300248655220002082138558601749010572438865871889882132105905498634009904449752324588956071079216811017032697870862526651704100501020535126316007932335470797130464749703051759193576702173443691344111394901186172138320893861114360935696629220020569736260909657417345492998478513332738767531269664758982601679960509549483991398607388718627770596041347492664225494220641346720319066987006285139840210239839685896853387572961070692353608803227611147130157401078049791269183520683072850822217306031838007099581305209775001121569412521361478568032972674003146055901964932223444863919762130860190702465435458899173572018025695855265209108798743842221351108130083259750080209527862956679234669572961078186040617557976482726601436016027194856226096846264598400742878241021338575931079665859129129002331971244291848666565699341477249540736320818736689526609374863725116116419867258842186562606046480678875557827527480854083187109029966939968692328436214031010973084320935754172881645124816904849007523176200962562040378457000203899436620495064018164955743053430806200937648829974361514646549908202834995129416833874730035564954739800202559117761145160608685034514199578473818265809000305303930470075695412592133612553457834286650211180705398508614715843578293961600635128785720090997108188034848102848782058029923230781080109726493395504864566983519142554605279075261723743202943409766395051985490476254487673328480343346753625063531536686901554574892139220319130201679212554162577413662949759755389371869310557787224030223417471437894939154359641081618060049302269627164790741040886408299126863639882660101218646031079532176411897907357185327123285239512389500901955109992159411999374605785414107035768887313459285365782162777559112317428471918531967184217664760623142702946335717124582862030154136169940645729756940410917643901169970260397104847501280697226336564096649529371385008428602173335019667213779367339264683002206756330482011610403348702374952189365282782444497475077733192373609198517381319652578952141678625893267299422732117591050225054060480202684479838902430183247959324922061011204610110738476940696986961261326417690188395328191334773764989109828458613996888152938203796157746340188347301427795911137319306818836857121213409771279900918031081712688799700138983946595229259375290503460422031626527914800270840937694997390453217873554114257822436717873534826488226140076945738888074140076230281006045939890831756757455006552605685388066488561231402650409083603096447421017082626197504694978455999252501882690525705677197877612362388768398989868034924602504163711171548501895591008168119699623223457607789758633820158527526080414427017695829696729511976718925377653422552458386737706110407094519060636840081711964934274640758972041295336117208780448398427503084082271038195179623270821670442177582189536753866475890839487501499964383140708549606685778480788732803944000381265456536876211807974223721280960031759216930226349971669507646223139258242736986654247861454519807119421533528968387682967165844384062615688676925323967102361722535720477817336069860156037927806867877338532163136628974117364125431732298128093968194266881587150681767605155540856627037053742179406778272379016889531039298932490586616517989088967803173905700259314928883863802002132034025917921643537848429618030659311138661865266076902621980305553148124816545355667360480104567481810623741454685926259742294418640004114403842088249122048713236175154452001321692101612226042992665180981264937122045849426982834295899065280900682866847193283684738005034637047669645873277207702792827514169633759377931017173788353304033028391565238149647135518852790208286528083450845269883454038005912364026284824219392105690097524426995020223102486567892142624352801412409818042643368515034059268126435534843139672852273799045143583815845297388510144506642243434979307566340450566229120137495814085287514157082429831296378502076270447190647371659176258924306952929520928707701048733084993094526015730916733404395208668556008051840075709063242166567400131628415657458945329219404483822371539991583879661848141151579524304023515499539174915502005050956919474680064402659538688720771716524078756432501435435545132290303391907568491196000369326885187628611444933777331255763852930837757765862786393657074264194497874917408290515615141798462299170501900210365751313473452057833718345214086139736332667394247715310728777324979706954726438447971192302700883965106888306280733801025185257530140162058570527302206487663601701694085423692243558168851987919456940476258303952171395097582995303665286293304758463214259269437641051051635279831733445326735961589783019619237024512869360715648713763175701542514961983232548862935567821918196192217319494131445306942457504565048210821459694424281564065906687081504675272769107873163576528629353960397403345863876084788825965285719853829151374640860630969736328976804997919796072677819357337921422249625644207347402573099545189540429477260781353595357406270876286679395261038896245812349425539949452883275288109846881667724883298925766450610882878132345809179073897365730021114891024158394927464912863582407173081096168692084312543869323914463712629988673296036121154473169708776261903778978602887342005516216810030754362903463482642536233256610330870516570140688189254511245391883629456210317109163585929429225587887735389455415621522789832273334855181950447460411202186684777697817209837227909311464650307585195642469566573415095602456836516994850087822153972949723499769751847410507401539378432528772857724948363461526959048788555949468727602169701365400159421618642339112502047153180689152490648621948376657805987574940434240799112423582173537870928268287131497548998570258345663198706413442302422013249214979938297063896557182927665107493988121848844769414906164812612506003112862187140460469753432898974727742684393747188123843241169155719217963792879042445864605749298708581222592576965848710107614570257344631230306129988846325115555098833259028145948653091519080542959042089438739451920420792250022736406775989989681165786278514163584812316464976978845494157679381882198652362080421551518596498033803024920924859072909595857665698256246236511018039494163646592979955593206128589287580326409561446577675685924941536699548066258589270001167341096567214321487006713490711914481454558187292163551798796540099212298399928228217598628498129338728129385618195172021668177053619945847130317127840454406028740222570946245652532797639358392407106459300378102163728324114349454282674490214934443129476115044173433337957343617742954529949327249102116866390464867174987676698023965767463328070629124886701051743589257438929326755399826057537970069884842363402049568473149882160838312800861531154841484778168956504013422379770268986919154576936159859544186980631177422511669557811089128478993605302692448675707908947267804538889892517362680939276932899342576986264999699068565151776003838037986800305641390069275103450450764454335149443144814022571802049901881886380502999260197202594139136882970213581631499801343513532164540124956524549469053875242267189617061628048832947786042871983008066684596632430148148250416363684361518243564495878341576324410739274557641887765348453476523707201971016464419820696049321011976895666783952053497269270537221144835555263435834806640330719054342499977539515210830227078956350693394347536428189374368361743097255091036141982957660690055134995316759387441705894337359260816803337245897516898656470770675217927145256951465813131510516369410715229588200856690684499516016828769161690240149878578506711322929956791997187960066059518937831402446258833978324537350602327507395224850460725153325643319185516049502877896272019043124788850789622715404950294758610889831452081002660089445129108545069639941777813138284490800525146065216058338854085735970312283775387197736569496592119758690034152951238980075239205888661661886725111068471978481305992192493180362474864341208041559715737632870324621266154697906926739650728471028721399585929454905068320243497671282218476614808400731733532064864494094168704778032839893601136252756923281209564901803605423677961736253057825885805959107292764875058415836359474538454494941273497226645659294022735652086689870078567102739485401441349006926334090033781380892453022935816034399989991858865922232941969463250788341719773514064922923879479992259902295137567692494276634745714985852324999883922420744496056117537966925079896075573140048678312847490219069191491270974775193434454404236932740277872824087027006792567151692649119605544052030654030491918372215321564177760686638286172747037743599075550693738305087879319755851369076603453245853069392448560817255266271515139104752747974695576487873324294630530472457160880974156837067557820720999367555066510498158191349268997231533824786098536128327074610585733295445582827049570810320765905291774916716995443899441872677899051644311127313636869489543984313601839218375141562440379282760532039764910804040778879642871954319499216158465151982500858950057516662599507957541642637708203864476433183265400047475741151454554795073936215759320630883170707053609951736647592122642156782899741154888709946950925359356041178945493953684021426094669795933841614253809450047111614020769440959507985463912420237389381493093302600215019130768212153761327669364489754972268864085254584400864693262536660256006927382209980339332280030159172883813603335394979422057786822140410611279608746811537453794804255635444332685249095068866815620667316953457915036975488334335357231040561469957766344799046967721621740482432251264762276048956398701176906353938739174469575983236419623553587144506573817096053983276500884621498865460354198068594867728544151160359044652992833663962831093808014910042810541056037489486786714236223783974825350318183649172371553815549713900259574057068639013676240140418090488201306490969785983883460258640586564290245018660431501208927799772689635238119383922243965519778846291073095450032489370691224480385959472392998930538186730585885114805984923332266428823959977062610775536932832672489959740103451845793453795199357669536413668851090239379370958678092073005973124028751209510557729452198998532965145758988234986189701525673784611884929475743426334820909757820077310036189050122592765724348647250389996739190781335283351138821440532661232626054652596725816390048749911270492418668269912399487057959970421833407771109514124108283712062706924242662289466715996334330085766232947260320920527968980605063231269700554067880495664394124594543701122569090929089571256586353570423613774216143624768782844639582587564174595266546312045805947634854168229049155492572954330207233584901342628681074515202047939793816348524587471380437305589794608298399518862573941199994132290580349835532961951484112839167385235102733447611713843713694218547671470210806475336218365747921934135490818495514633167338163713032817148622674786586568316767128294540967378018803254678303295860597534739004693774836917904759502522798595913871786836395519903604995937007012233882301044859502982297170479827016500038091770873943306496738496499151062503082176475491688812274086466729239359613175151555187057920050457465040515181446559449006126566045764443608548252154829629793687313896871755762602172110094885634293978087455149860269593745916207338880286848396927943182523049636054930359597101809267492507546636648893898051158180392475993706814171159978381813127970674105818529547495739119666058525938770812663473066322955143717617273989709801232939724724173679800831497697801123939323997573575093285284976359183965581209817937452221957173211105019772399751180422501429324328693347996554738681264295360887344624218627879365354301111533207202394183243267321766155929926902202201852256009194663346965435542161586288995784795012685071800154643319263007398456205681225413223817884547310882520165213659159490402731109300945602274982173777011255053046116633152750318928052386686382665354794085734921837970823991428218058955809161831293714568543465229889222299811753808330165024639648660699175067081857243684181903737965962736249479158042356458043672384267588579488976090800456407700142508667856943028246662838008364770075082107960685883181938878319919912819498614370312347879516499310686285718163037690631450247871182286526935820224135550497828325907965636906735042677777249341261412798186870059517070911732070411127928302145078207203552270391298552277404663682442859168611354414637360986864918477353848638288850745915380986224066488764454717854707290913515551406179553567895863476289018153786277703074447323711242893078326756841906875477790538068153702624078492589310390975982190193939302263867243049007959066238211220900860505052337806049526143447747146678250356717319024141621341345606028066009486314667054388266688379952081987864390769651424513520144973560981837934313862200631968925341976783267723773092771214709301492521889179633340283981644065820208417878054330456377419814905338747283785394271951248373375957092458089729860200474524326273147875074494925843348838821057726106937568387820195710583681602187430706144224407454330082131414062069354787480421049957383372351894239886053952249213468070608253084241088928055080952392934999415051360839842344567719834727143638816455030379020001081353002286846417912501136122104669462281197033903857747333319878654379414888639593529496007667927201517009819230142728850296722422396372018231718277943107820874353824875654820136975816325645183567523149453604211647519237654881933097340809510189139010257690964463906127206042298605510138511255399843600281154898404162195236001883804686020188819688611411438947571437739741485505310637305902382815585077869243062174760159626998758333413582636824870296042988358802607407547625164213890031388064024079923597847789131251202343623672585605776352433785596258557901537602668592362352538070783264785279363832936228539693934070397173394024761141021114975120085624856403234125545921106238947911559086975646653802259069037494629160749031503612461210895502825115855105181544348615568226468980458372238479529242074179498849642369319838803409854771270750207275375320824070158225275196423910325657876705660646326958768918604719236310683746359583430302713385061070673799476901198251133656861126162693027855954343737142520613527001272047880988874515786372240449580182567383975560621909404207705556337249463910100305797231066611967477644753611773480956486123717756288981435995558654875680841841427313732742996148057947739200310286521744780091117540589999074119631770587297993829277510617347070197744919320131403983687715532374855933721984090125911051502011871362254639095446305743275653740946454188677326497027152159315381358833778238950773232854798753765817426581747800462297597564906712663684244754040933515061254967610729957460968619447103583238919632495851170480348744846154934647859608157956024440913033652081377868733378809083306524065761071906112395593317618750210978506545301790142989896611912262030756161160143365234499959418158480831055204284235233215707942884122183872146866974493040256971489805948877278891437328848561391920484338660796145613666563993407325811039975627355479644913799981086632170994712763513929628613565036080492945594383089279919428575891833264519574881425749787206203837817950304044808411725911103437106695640230674044790508973120695304842987592308767864005873811990261046795064891521647674313374044698442712196100359175041926468814113617969270730985862249695190636222636756404250117595564920405740352645102570788130644524163587494167916773758204900441519926827112962050653360936787572589050115270370692100344827554515720862570547502507354534914690587793292353403703219474679071843245299798888823312343821760270907684977474551142856914017987638547077654166459808354984426520849058894187013395293840806203943078992286299582090479447485262077502652565811714406267913614732702716822277094049904593425181245815275472816723445558979445735735602471147132785281964125584599853383414306203989424772694087407624565655146507991790110073321895117080632141485129909899173673846812651131969062581910364705452844625344669410653823316516352939464452109689202744507079445153217091588258967335790344107298611162076634520835864656616852468570517445320301605701940785761699681179817639539447127863640173444621535293729977807541638507625098599187224519475232624137118763394912736798472347790164289750280944764072122473576669498593416835598166339042124052315014729344290232462048885443494253149669173999902739483412428163953100284652416708322262738807457604966156550717963303026014462911104893698888943094693391658443962254279297793273332994275902804566321133587954956913284088938978389395929425298547891009826135078928277225296931306339263982154578180768946761888985118731404817140008253881205219086204432301693274326592250093893762418149530938030903844010340065493835210241552355330408612670308067743682538287493257310897204209632754173618160949103362967712983533909529673471049895543627198088300256870377631926959897928867566825233383586788558353395408033301045911771248044064189165204931581427820290715681582053537944178550113780873738689041122251044235356268668699198289775416521972306059791384067294360192369247398408695151896542597255008788240979728005740684025906144664783643499724541552412814443641117257469025345971979328377311189601108115044315935130808602271297804843148581418958941542686185206227676160820182019896456378808365989879785697425195559839055474674837202497195164426098920875947565637008525682710883877496230005062295661367628984152068878546322515821872854110454597694244607882805901268792256416750423945391550893549352952184212763299368709794424480285891105907384121259661728709565031138397245787752245095358053447043122988770520856429885481489198625509007335590140433107199252828349985377116475919315907713891074956654862420535639440873210469811893936577935407045803648831889410812185790908820918909727075638013521485587862069327300057941913228253439371574714213256876102121645001547983123355768292333879780846922882142274021347661007621243231660286454331181462064621706300876827814253394945876047931735425584845799594217837087997105609365811357899047831937152233434117172058994192188012312940545032956222107142179996338525966677286709400368102397825233179790558305130287994053987232206532468057260194852911199378668192808768186970562034041959334954272245403758589052099374693244096951389842548521857811602411910669964388237832815755200396353107409413209575540286932501973589059866386026301396911647717525637903904878496982334055090598404107765261407379197248253961674500163398965940647399369188575288497693600917702195225905096200947085602148832987263622411250736947954843363931704643865937180366600336742202081801504689449401893445833707790197443119554829730171302305332173364408659195665614049650053165744794026160425674135542053209334910646318548311489147813219071884281542751136526318495316484283382358553149499577069904042436956470320564609408440524629491419410759164246228319949064375349532023772017125405105976873468784838638620103591756062103294176164785815284718257334533400665042199381567548220606223712249721250076208194946571455511614033705730512707109893963180885771478716088258661123374599947545952552005876329338963628624888758077352285270817255323718501167507497900729819653516073833949144417625078897289097635174715398232698086939902785184393450407067769804643747778762112425132225558478977325007321426897710600338177775887625116754107955095487690992811932606152461617443790379117065772128296985715086692891307431015431908004805012222154619521914058128543351864335068736394854211680514037550291613241179800188229900228819160899265178909662994995806519937879685398846065244936402397821649971138017602144014012787317312980106762212719027886952393850160651033979874840413109911653773282231868432685173235519349878818387716921409896072542364677230472103699573616078739833340119739688253722779494020795995469776472257166576330400734090748175890610076739290684347828668850224188035283110016633994934176656101982706343004504560553416638702633237981709188467856470669073524148598893288509179557605774655131479744237535586681355578522849291575394481426471364045476642576213052880556527579552345402848882150236609603792954785472395023512240597589184886743499976780016381782705215368106662371471192216094768511957265569683775865118221022156743619809595358090215376108646165429211970180555573567610175325289098444874482160639717683869395315460197977345404772898777426635192730868164498584662103798679257995525044980850485970071261731046599042087283681613829343945513562953855739219869309148444075736170593314782125535118673428812385423436465874819677690936145752165114174482361999843697811558875662355594420849835385364549620340233746196899086468309179595501331864243599873757331742731655349105001862807674799072873856742127775419614068517920489295797396352638293939038643026425781779391959815678030577318638598169299896282553012896840740011281373922866181845750392055897986531769441275710356011815273394856770983014712339919185547147959051205726107683747590983279587577969523408515313848316297473803909966372156484339380987606755191823678776823176660322315222454176261283559349707495354420771476417515027415899321694544854545108624104397615553798325180472858708991953677522615276425291200426908770617166597819955775914989924704497232221544186913799455965238625783787072830005583755796163569023668554685852824755885829114605280633863058734228943046035116001639503211679028838644278839131401958804473450584463211145958632116860936887677337081124325803483132686623979523370260907942114799794040615776760859543243527786368518571551421513568402179348209918677546618315137403872697150043584319757726712185294388207261060271337927511353533067937376781060418714799537919108942473786015693919284667286842598349008966459324731153438036108810382624881651157694936262011810769778602589569908208884579502940149680237856114165527294102908741417680609559457441511558600954869581479892941739486028538442827570034654244338253060307571401392522933851257722254287467427173694867087902273349261387816814381191883245033759298167646453145460655825173757297099335267001017272617269346033376811818111435717929144939560515183163994951665109458781149331297408458214679472292204325919380967131244978679424128743773558456168476252757888514762166345038543869840795180830992452885126844633936227983623842868241595928050673505607562025592487586202084259821916638111028442346738734513180435183562553975050576482813197795689333102913797845001333083211948269603889583597710021647441292860970990203415367903445123631341145338474282329220908937165480879200860325545306336545220998193707667153788661171263278631900711503381667313985331595001329186336322146318958665213392868702540555524414446301704314573466109592723469257114420064007159634487674474048921104972479619721016988627664707776914008661856446562151702576368027046282659619346899539530109470102899334893615536352340641162607743739670198764597141057838824095965020445336081343931234486784439926460057096711768602240025755041646532344515949686493487748975638356480241481892567161999631388262696237137090871057624754569172581043693480498690631088714253927186622473784649396908442676958667512516779978629562257656392494108009441222842905424850705957675678745409976273029397384567447598771089247567347077321979297712567236607434057803087928636220812517270007733759958196233867292748924910215537440160932095673693818900727666895737737328426241931116867386962353719513358827214512406733988422764386989207102640297369207487099058019182670126546875674262554375109551611340398549307542057835695685976278004085906074234551491987991521201452762019576880615287970358487403869947846227177898120826651516788453196085682262800806709630271283916927129689971926983567959434927029805050356399057571897256665059156997830620810705554286623525573993438922053996481731442656298330134114493734779264623896039136518147753867652103581209713327595814895062054659275060741306478172351704292995571588302877009399763866799100812296473136939380170089860252560300788205037430462710804752568518408796272815575767771615874252580987736681920198732763330495522485145309546146923919702905790375939961905570323435910017229816348185258776068546438394472128878488631486740358808016960755733209718719099886819985914171033944835655111242671156742673504763882023122705648304342557213535625954959073934143489628678794302148467210787422816408400132604114432989089800414661375593929996899468744006746323422230533337781136294172190155466902854213496161942494880157923123736521678488122518650879064834368799820262661316481570979016508671000747836467080653717129893775409039917909946218274968790577817367809479375718480361725175500581839595695061408973550539177674371294958944299332909112822924652109740936022538841112860833589592195098379239662786292327159280550055422751059865998294453096595024053964638597326644996522533080439790177983406731648112400183127349325362565933423569234193935041775981526952878272030272084382015884550652127585075549351405041466765655657346260193600901076040806455453966005197201220730417620523290326103087088834151389239053955291991465927521139993442103578351039224033183710650277935120655979509310596436832501124314742341957635909845079605337585023567146792966386964540282487149457334190663572050713848512494067516090928752432098163853638557312028628463699130386781388635234736034816738536068614689754224519290006268252013737714712088525186502512414440176324006738709681643352019773401771005988925887513198554332570808842104114509854697983378953825402919962764215566634310905865358580198917287701883357048194108183948949566985910836221454148579371174568521249455191789680530086042872347612652889604029887016142752467080688480150023916771284383730602875005806969085256590972518210950063565400400403377153906305337266608683651216387860599660583688297277462976349059897825224624936038364145116356304392889816312153677458232265979350036495599500630491461421919546876746466273021146170166477700403357683533794044141431983253109886837203369870179641051094965509533080122050664090506315937421466881212274228862335125664957433879139691040363385378283282467063825052609234012258591252890528555332084894164619031480245627412604336997026240592158944710448112789926373472322001836991431387133057116684219661962260823097130247927854731237871071579039542741027792412498866630634247320070302553492767946435871802102565297900494800008898541593136392204114380896210568627337823834220797164639322417285654979217676654938898929694506679628394994801483945409387988346631335129011200848446622698751708668710127960186921854906189374565670762493920366688924437606967375684504031205448388175198449195462142223046474992468537655917767111099618218201837167748212457472688654013872103364592625666413354892336953069204962208529654698461096281214931562637542405280864530237242677959757165389721410315628621341132564855446728325026914877933350949481185148734783060756949621484737811807158512884361978078340847382367702828307711486916247586498128862938805852852651544410378391789486838600071140933590412822942281565213030042153363495118589739734256285015743421306306320968315310414095513470112676614835805010288361826002115575289711105724293231817751789858212610851536479292701080836747821440586723125434826622973388627318568335075020917171178122028992547709427386823979740872766071513974507466553737217642739176293198752464961039983401642667200537880414810043989742393094913618951488809906617708238997240451654772020154004533323591807563900417567665926339018156804165526278038266691105801814535176129832402415997119164909468803257867667934840784599278787258143069400154780895409675979252534251343723940662794179748877949892685354279649823982882206709714742814047214837447635175035852124263338576090881327371664084260682806239904663576223507939863680227084395388030601423113384752234724961667843781101060664559235383857018171119710237904196856879684741712819601882849647652143453955014885916036474215873996986528789908528781792503133486224564632665781334780784763431778252381311161001588893820599985478980159233612068559612329460065767046051971333385402166711620829422142638929486514081626251764296294341344647613499809079609058127767107554010325826010947484759128426097660697359161892567936736524756175542189412010316335823062200458376228015352720042688758133029396897696923459872949522702252708849284860073499222827371343507303039238580810663213498952046227093871866310729282397074571597219915332926694857080095649408598005556375468894047927442160071027753137553676816230712817358983670964035593171576550223081553870826205892162159544981691354121203296852163522349467922745864444369412283172242920780928958771989975355985091028751895851057828498653377030877057885760026764502293932101271657952348914162530035442090419308609959595025146349897861383937136386646928716129268000709280371043885020715758000780829271630338062408812302149029320711451631121515561759752579598778618440910628694465541184226805542359081881521413457656407476408429485173392489642905452151988466344048235795394904997420636035064748922115328372855505337478617824845042984726950686677698632272689376120157554636130560074563955168728291464689604124499314709818211617466114584922182499629154139491198367736868121114652457196659220832218622282421380560532918672326593825929761693045222543241544773034962427944684963409538064288655072247472131070348123024516643622012308475124872414077940672609276421720518609176503346529473811299280483849271922193726018526581955107461754787203468571037771413771672779338274886442932058970592970973979323114764569245705652779017166347674569957020195251259458686360537007652763782743536350175526390065632807090899028231071219358880654659229639756512064854798091042721228398314594396194518527140566775219603458199931393592094788588136676080050591714783117407195194481322630045547888303567771624718531137085445321894575316169827832190248193753755661879871067526529917855370896450149222439550229827116721304961127016435832826483139892781725784144739115317635541628341577481042677240729352286934017191723848082887133789668349596896794665451007811383027050348337821468286498630900138476748187166752696658244540808392170868044508011363733288696644171615182385625510023106360466244667552445097928054977821331753429634963749346350115410115476641465035577460087449821662552568218779784574879746975813218923779652227223899851068819722345285592527015397612328763851674828577311640963199839471610902755025131190300406941286717397713297766269626456244733382519053679971654084316632922335227951078577740112658337987436698677191714673219340661662260498112084531292567310038314630983413528296846509952940513298788399692858372831766655299501938107951132253676168087954038133474813192497230453184590069193580255741717476038852952900787218680026039970230147792305514281749174308301361515725199288121696176866816125332777030559050206492456707047716670013008491090947545577819770203904265759001094697519362844054597192735691548637904170039149702612825224685340378066517511250995400474417485800931655748975572044630883023941368238262253685751906256392758028643191105275043505438838750150563614583104542963995345534455343126387174768753695332848991277374955692204490951891901256891290914693514839552483729240365138210766793267945659056454355908089527224339664609041344673463395371007440701868421465399361767282506269649310262847586273915070597377007610650685972521153272878142726159219859622910994685419352786145402669011157951567572548937519140341456862941248793140291033964456562439233867943370058441399750667084631353380657658665100152604332443773897118845642997441633607525706503916236684377720048129474575038026894109269571344163636908438025010662793135932932901023228519656368357695062352408208054816333510746104871541931548797416968617308088926123303354632434042274535850470980823192174208669841237822803507474933188708831041777840117159834655727226189498608261226704862666869994058620469242148885218102742128812349868727035823500286900630093629785860910062507014884197543610925058032662637887198578328168400945993916644643426666590250057559255672893577265012759864102412954825026361950208834424647474201164066724394932725578844413206436874753455786089357528494206190632939378422035531871271712378922521816578884013633418083929188821505497798546253092791769006930122678819872392806442058895654021414407712801488249596052769089725505201716619015071978186464335084561129382836438009047846674585357517079810947859102613891663308522681221158241383540861623026401209237644199306279124760946277654238374563510149392796111149218491007450040119749820131495927146986407242970870505693959499173852787515764823401902985369618358449484081403457942025563469370991025963304793786667178945118274706956158838232017850272439792394785659029712184254261852448004510794466970366654914980281070243383380113766106258529921933263350706370521199162292993627413787792600647900744594825753069174642222040051187512285349544831913161586635116339957663952920111983431914843109979544739240423669231023809549986330652892713439418544302248748192752488060405028016516523711443270242143134340899903457437928424622190508169983089924022448229488034192079646376309523379658214188687487022836184326352839883536378340263485440691873034613266423948619868498207463554082201549508554584744787601362432500780473146603104040991029688655618336186694604295412908481325090696979983294907090796408566489994367900538968909612919702797012435608014398589836092484863368159118397360108126672356826060169598780062696272675197109358801301021188062022980599070784507533019066693361271583496618409370342769937627767337863908500669290848457192246364270611084894747598509952330850252076034979155657271969749370658648933856906348661548429996123838664795254274079314866787858034701429031415988483411842806708875354924907724313464232125413757119864421055189411314458576276823808573436195612560904918549760064496261247423128628238724493080249248143793685271025068307251411747271361363308826875335722587487948142081377639191160046845645771736161443011960112592206518264747498032562101110245310290675830720569955044541524030197435934249797239721652142830443618144131732851714057393231488434365097318603700682620790127739303193057523623149630724850508855004564686593598276296654205282341484858169612730614994358120972248067155020441568039452154502264929830993732591909770484799784870483334584183792812575737301743467504346136819183134365011788867327635267194803688722707179102299984606544632143274510635028615447188725749657868187287904247737971682938724038087074962823192817729382049164119957062737103030433151863712871526103696733623166540790276630747326828260965860229455774501206610230519405136396159357456562217881757823785908190040381317764129929422391088280812422443721512113342855811255658980171800905957491443693795887421136555118082950935466305789973250906556193923539718883946869101260849352438244651639833526907903210772176920856350244102425168636529774895017260056410358183773625323926774722441317730347343602050400466630321081878136901765058170677377525318505484083480178441004116499313085030783926108263681794637534803692919032583773579335777286915461932418516248124250178611702013223511103285590837181546402831614158420627669292211614482542368644357719064488848849526961944374815873738420922581242643433719435781222375381593236593001855746703175734730046542758910316317364184795314582365746776324940269982137196863188469818798551046188443091499375390086406410830629414812524918861452170756407029411380144555240296485104767065141467863595884312649637834129082378983964685074832235908509803243729800945904220733512942392955579575163863482271769036200719549708338954944295028533165913548610230350294826697100110567721710772369141619043615428723505615543149822698363681644857089645189149439724953667140241754698529413244930762888435393259676566116707010681492353453089448173909388780912858904217704153762370146461233417780213857739132384814582450289807222916418152792992197524903920061127905576959765181049328219098354802876582972624643432071952231879182974625518111010692152249981134464000689881809609140459278717681982077278544731769967800851577263335311688782760089953963552622842157714527494912869662517132945130847986466858679986442338214377396689364934494268004729292453122471125522155385166422474727778608476255099678979882569406095684975120593885184942138940720429304625327236703415554603009110495526702723614778184288116588749199767983842435517504798499235865532732598654030502074830925617534406192423317600370329434718724055529834843980665469907855826411113971148573960074432512770940545806631861150401184332445008393185881660345839446117741702400241712518272062817956223949653601239912173457308773278216732860310050957698991968636290622868571132172865225499063311869445810089137315965752658318836212391998811561302089944434880763282843933206146658510613894930669827407441204246542382536291832461928942193508922410098841519274943982403317898041295633543550505936473288834830396314402329303836123143838060898452024162888208668376489123270592778724372356695333270658820840567515780055820882969552663039776835065902854282025760555300197843211009614531963684685689643245086977520672103247028593638360318088954996365667229434112076306680784113925820250194899275069367171574981843224774252489280685428220467150656929499068068617971848770709924236376340898614384047650071440748419199256300466026999635886088802379499645381008137391451036594646648049115642522844416805559024864890776170564855835033080272679724845658543031955079694077705030636281882753149390990365133689723458478153675110134536592551915807902122006782121492352692995631146388219779568730250283095527510596741793882227021313958262771072566765054207341564394268399997163103442400423466128416036329450417439452466860976451818217817937030099691012229744947385952879006317477238525105905940807861476017982749857722495278648421289792301890823790968656964316723105034742150382509826969559345910684151060112802788253788674105887201680674994385578822580928834879275137375609606732804063978399279757099197829989951762106806175845181621997803441453728657923589168031611679193309935545318003680665799729924157128040239162704238624443941334407221691920967789260929439801961309045617583850126545876171839591328225776842209938308497358729939820653203642451643846474122525969068024155385689930908007766596383681175599919344643771631028154093504080021477060868445284715295646217356058839767490834550870428588756452313773368985445154317174381912852543074607049135006815735075602251918468396014852264012701946166770818575916701522947409988618350677973290340766154105423054487926771960364926639488778774671507049691673224029176166254938929185263973602266962199246691699416303419197089376322730828757803346356402141542681748178347832405931554524603597662507363323344074525245992337025939212721052992246228123366027520259947348111711034458516209811334962491398782603328341864583157479046377996379990660525954747308081157780742814909941614423946998913586115521392608794482534760535401934582705110290972188415503313104351553353020119696398989671369107317516815623928374887287268678048982333574935107316871537602154908226866290084119738780805140775510358030428624180157205436496187368346602874266691985886590682529677906099734185570602807627101380261324719925039731248154439199598964002203838319393319470044661183663831928840676334592312468457059276835374975218316286330919235239376576097140890676873711093735997493698960213235368671583350387244312575609214908086077646158989900644884560498349820147656509960627532968893721451085001716266578310123661184686815843090456581166580734747557108214796796603961719181276049603071966172011870244220066193587688324296227981358217662868924988025619988791020176378435091603184856629260583230209257559882342845439330465316334889806424004578754831782821875938419865231284216028417223233746690329547278021016409943274363880526742106745386124043150313361993268908287180485967463741759606754613090357265608050574180602034914618263235379510294703457544698831600968459724514705183517272147976733087710524144683838572367973911436266981402701749424886502665044946516719219709594701346834231820879335515954388636899481235742684727170779627688091432759608740822145527257112199725972398253480995362747839885458253928469706441938568679598313503174590993342814068706293946823255483833382591391894426789926973412557105966750870169897321991793048729231136818007368061192021725159249907639782120450080578671294907604002251810915310736404255650056302900858185357123419058028420764381056294365584872844227641687802126905617382240613728157221132974452133847651723484149220783879101483078831828710448498758361368934545454036935558765678512413758606619281653871553901527429242927498570796276530390431539252276592663611265254469976966601428484033088892962662401587902135852073104028364095822867237570988198337528513219833391238916400815767708169429787458529824619446773176853602477643423271118090713662376904167359579584098647638814072649515837656287839835434612484302074882647783320812681658639355815598652128160172703640050968889274804233163119441576653733367831407587974244390551978892228056135599700883059382991423788809805755076520886699450043367781185165186757698444447269748355190875569188352799743541300896954273293620028584767285870829957232532125564534005515175953984280110325932319247149160145498754385133908920505339058429655209613120318244220938443718845701920787432442892631369953453454460476283352763062702212248220803455920333406868154890368730561749362515128250573975569047437473201821760153936029010308517147514850310676398508068688857009006129989222723437769106020988186939700664043714198271519335395512211164773768687946023195333216751779541076173880238964138505175966691147317496398101492573552207999581839025559151628918326348506561952837105755537101322642976094217085982702217600468144862947190988821926073806942553680673756504489081121221422751441757474002511572097327372441997982813670098637674053700720287699964120580283423736828782150491350670934870600172745816212031037382664072125333377007995379488646206203955668686879396792085352190183562577202084196952430789126711950946038208131890252009419198919066804802718838406766114661176960949872177015346933619523729698250948287042725638674774674662430037133469693664006699158087356608312221441299358235672455556669140312844083305309188658612424620435819044486572112458009584977717041850413040183825983165824727147749378734791283706919488396106048943622257654213888021663265443868614206839620864710282668057270970458575829643724429138662668692990997396008339991197519911428656417273696981086697735090310616777596305992663515697445802428507284768991030138151228349365640130453431733661691755672593821771216367269024322188128606952376635971253287037262874735428791220511964225931881381631543500782585311699956728400587846474285038121097024904004106115079558671333454931196402574112771542135635981717821196859240363558264403924850137776329497690020284218376146705035821550378321373538397955037889805717964667612139814713850185808817214196768618166881354902354278283934640735861213927285471310783244789227932877928113711789235465222366307323970299793451409893560285662879277506334757540194742915324817843909492752861337186623788248255625939545569691590288632723699235675738390755687083131014404868236977050656495409159739968265055389665064895779775951283971112775563303551784718414535437596136206194011719708953761287794121434630383016030767028661159832963351374761713179562133597903401924582722722637315378050906621858195993196700837608604063725763817215761441412179322493189932346349940271379338435729857236826155410749130502066234965375882995706985480703363146047301903585267266852842454484017461120313805572972683064192098158287443257403339165630192940665941348227624014709021403417245878045702862469160080959701227099176006737550713496170291445128375826737692841974684989558022895733192153159273132347437084225591289618568837273459532945527714025145965475049147481233049757339721532200273681700007863346229933005004782707622450947452951370439889282018054646889742500443576343069023455758589892938955734519668290164346373376066770135190541997965324936483483806413068401587564917781203944582894265505233819280597540711612218586131777579213055989518816377043662818279304871632817608621444025692466191961162410815589683807989211558671954396297241956699137610921297752205356608034484238329230436556210604023051644941173787634069250509082868250081521267366690249409699061082421995891826176299625931537313921592439890590751288916866012201161438421330694911146792498813337920811765101549594646506746106068321467300901200149132644484924079418566370644322540173528012184984892484743153340975049507945645303260737555192600923020123772894011574948167294672438992700024296046553905044033625341418744144582001966496082760883314032540603438496756267274206715415508694303883969932457520197981273471104672018247004221460484438690638953343975179345700916393939179798144296527001881516868607072742761293838864616212694216405542936524115669681556547444320487575079046601214888207044207856893304857290698354242253577801774878000949928065877593910932892685531565409006418931579491674519795985997781694245341825755354272768507122210060469165567890763548983798333917649380046974362572677372594730697336727975112564483988198227098763987368710301568925152860098894957075401098329681497126358073571525561757125112232166732295801633334020240766042207315790239937997633008735157714630950640765860868699642168908917882100083810116407754034774342362619917335206016681491874929863422353099600544173147877861494605239469952131457671435987617745070805153554232863974266459271203409245427760265286888804736675833145829514532348600683549289032179075062090034075444620684057972811998725154327374201969617246451480220552309904659089678782889074301493944131652442655100767127686687487897146518910026183693326528109384395609448458684565679721482858703739178627708304677490445332269294126302621635340693706760756878473731707307754179675492310703325613167687963875684736481994693618170732850097974692253159824025767784508232251019246847634431163050342592934383297257369461471463403418396049543699867488272114986365950289657028585488881136969694716828632871287873275086101285031133921745138631494278861244166926402966173563070783122009347526763725477343027968424841792007142014403307943120097192096380805170472845220832441832701821702591348187382485409434533171569067845464325833060564573849618467545585719921352208220665767971016483636229698351568334528644415479789175716691380647113164160740004965040585813397768272700158623079562943901804975472794613860699429679166091713209402913156653524474269922666697670036396621029503444327429107894575276098493238761863777457840321405959236487119122969915696930622456109623494975382819457619447710809271936427300190797088954209885440556264017236103685566342343295139993472767652904104790180537878691738423249579030180931445765163811080666477937028594028718658339091131685028946050549016123667846440381293606714092146255365708968501056846310384665188762306861128898800922454250489843087142444523848252880747836450319615427784151562284415484087059745019049847578406285764449806008832707615356292346158640795012764364986470730268726269399511493416485013759159733780276268968122587825622051114080890457925667014103056757491651227446834585167096677941951414769149111948849428562201487603319495459652493308362244124577030148207359901527406004250776381522593202549610973688583809739665498063878526237972124926612404186599067715457685553449946788016935272111754815863355705310114819793334535598793053084883075718590276434397577907506906854958513573262561090523724344712648860834032322103511541416562969807355720266419964700254920817292265583198910420070527841174493672687791690726006581273946100791021192571430383340546965098616607795226047548187271273400528444455073218454163440443232972007212025215411469132837117685585670525381236500109108075965472308902812453159443423058611887121850775642335404753720878147480485270514840805774417455025926040723454729018501546543751733313104971495087162026812942539528414423845947965269885017644239283356657526100636831603528593395362279720149557626645936866827016218789638379569062259676103890953161475065576029328583539392954542629126391068271542971226619863809732950986276538136680233060530134620181247504872105953874323211325405396298922011597959226259004591486455896654963077843626951317978705143284829001922697386148522523006097470571438310540452784939911616665831903259661043022384627281026560411761848971432307180170390114103701054236500119514711723843164824226165537393140543032733092040223054388075608316875072474766392239463776170139150951367416916097353716668609734914091035888012236526208503089191924051283439904010781616595148776549626643449611886203304777174704367205436948930637785017559814852694822466698235104986832710805725960961486746570715439126441290503133026450877516996101779554387673703497853483024433822369678225696181704682392975823628576017743485592521346102007378319323907016759326857421149428373907554176215982811654295302248966157237058515007719907870388219103636729480107707453985747510077812477005548399687308018606479577924327572492097760948507883992063202031728833789257469592699566716400696169427080683245952321231632063489313257991469506477893101840554529893937130789074128479391544215359558710597715218880869444210226571011069365829614659293534421830820960772247723626193344842948368764549593544015172814794752145792361600596601725526264482217991095555077405096198174512049391269185555730633694520655926727290833925484349180407425508781655060707840723777761967855129230129261584721889223381566569709861647069593657956361946420662269286116806753732311739683647767266236958403590438490124079256607755140042698588654082104812770365062764084886753395455024642674032011842769193785649783331590050200578147112193013872585738075871469077665019099157086022297218047457375392411850571074888462284355875631704092557839470642994017447296331218508901898794678409709022949315274730677819527525342140045237940942654699216319095477165098262599602824934700618043928510124810893843129642237544834168755874909380624674227567442755131885597884712495766387113324772821288598942894227329747787364883161788188749715789549882076497523592122573305283501665817771149303600773220936856979037460756372986071069829559344974461232659223211768532994584259565629078464218539796221836062531066414778692635649743442039093222570927177590665402124956370900174647568571455798731625492943673164996583741243256943262616056968434839862066476606090113172134114687862360989884625343495764253980000336335769057803378494369437897838207395126590069497507727971769744008801099209833881159404284508342189357950769154473407113351742033831431864343616382258597419590254640596123347414171972059268380713925033539635828775508718097055322723547122267122238417065625557407353014872170188418790811880689064847021268664764794676605673265214798871074378974426933807822963317027644567180158081576383745368293773601203565221787534092845947073217114747155908391145137655216112825217704382878543603404017640504067977892908637663958112693929951094622769851819777638757562285676850074392539212665628741059418371098925254728731266174750586728776730693138117425995457731621894122053313152125697052816252665322496594409455912317167817963939004593946719417664779759213799232526201823953899712722637273056714101136411368656428085546681977396718257507746700188294548359299218863016398649155762195826329968277003043015836479899210212940087842962095691994333450315718406085005140079423456481881029691451841504979817010414564436972214963390184183369836058082523823527167445637146455705730534909782192431777827920625434665154693144837776689330565356059971835825751049665549346296676546624740069872097592748888784684904613710175180056633620264785552192659026179510022428791371905595429159252837257697252275175056206526410025871603351607075628596915936054493673291511812610392127193162212744012285398813769685625580214050748666564467668065523060810030421473114310052832535179506091313585381908443498568866411524296278395398558006926292279158038064796439288743346167991103184636056789110027982024564458589198216357987747515671819447104997541542647519712475167536873910928875810719374982908644994454474612205294846781271730060952801936146892031863528532032188053827597052126524565061024581009153941793448404286851644928097651526124034843059114503355100714803557954401964502286741838277408391908908405781860575764441143923373194330066900657328949181135341288799853589449354804445517794040417260126672593000729883570901699388149494899692595361761927668990289745563554293524964163840722211129629727660765120853753578127980878975672474640375117364596529306513034447411255964585956661536002213633302595874603656986374651401904249829992067563216594640912649245566159332851913028333197278338171203240893934486741024109424983107028459735005075048626288189085628070124883054075335155512148085143105972436839490954793507442099229841689469956729146858173588143325871877349430689099576764964791623481365462409978080193903074047965222789510698500075979631706305509202027732280094581855281529545175829998315456067605410562950899763704966551406317848438358396635786577513102954826395277425373483301244694941740768513473004911584090471054624637177814493714406541683797679138166707872007625128680564188892867389289718857095012188821141827313876865424190614004469590383338458366363677249718464261372682523053210829165624693137327798994440069023001213985322572241928750860171080730863980854473117176897297033176860647345737001115016423591637292243700882123160609415025451593218203407681279200012846752845931107033345699987154196893466902348146470066930303589947946340880668933186002005977052363606984010285350203896024507422884387515552113938009264105854606281818840070154016750979824575041753225627640971944334894676327048861769715202928960717850022127030018896497099459513706436724916038663680459460001671512822396843934239284693015663128419912078421201010752838442084790001077502123595562960552844693288389645515329927921161380173270984050645631059033772220741534756885296426654086778808792648724777017626651277536452871597927432768618192933442466588445056502896656755416093530020101640222600737355971959877419773412061825318980528837613090566511162794901517786472275207345890116317912264009977785888619165424475668707007355033890615189467833707035207052391582236182050955143267640916226809159920897777103918127603893269976941099460056653896599851209397470251859830089155867828167388685522487825377028753505918889009915963113378347581553490417328336681351959637012577801117084964041189442562426233916273195122759062674828475127433262233777426365309074093713033526435844984806739558059565458464373384170841876671201943056075902239558114346223371237967645428194500863842121334649313937963630248902095975542846208721838128574332489628130844480933443946651435007947967477046453932883704547534587071196281095816947858077943768162840121496041892269523516134964495981776762185743392342289922170432697290561239136061894986922087968084476826047035838474475390245279020403594712610245385108863268348813354716675571283022001425178955853614888611348258074930975765233928292334954365165655866645611436208989789044521998847437574804184138397433937903294310952163858913928163925571656436672428323639797801441265898991824971859165750975269589408952890371508590873335430195049975495057716467571391169110499437615789023406198583463336152575308962068794267592178925971299866924882201153778736928958828160639408058109597798990940405047979514329252772588605745467011600668396326477265041263307214015312322151927614214961753853719844320370364569421304039604438369663793478700116129963702485214345979832109155805249036007978191077983614961132677153226952219753701631673892889594810992292781340598977956307943389505964344649418146563894684774605420085354862935256935676846127682477258370636267405079492146415752750300367062079006895212872837811495814781740036959642707542151776479708659688554750819216176105146845907540399207906454026076897815366011777590697247010069018225342855706421456780156019505838066117619221880702215677534991119209531866645964479104004555162809452249909862510353714628735551726798052851356621353027110088757096691619816121353893481234633127441292905493449874025516178033201976619146108129774083292401625534238534303928797483501534264922533577235533902898993731918359089033312079056035678901201913132397513837190445029744665321242765936269032134269407334300623291826770058269985953293039736180476319715191837029988296182487086471310726175875189487549577809067223099230833851024423320923062481984731054535542742406215999051567352226237207941540730398686999087760043742389890052266128779410991533912590424894123366503322721523213854058339966612084878719772470877301060279732024860783132331657254268556693079562502482948817470047290635913411675157073931087947650356303943264401902051089408647506736441186770084995880540024335203609831088758837181882330325008647494020748086079057123708225520106427025389600856200238524260945973616807636653586633882025703032842726269659186398211429344677073009822411379368939436252252861010660166940889731325649487477766551319207495822628373832844005925723916586509372615760739868461483557697761862007528361649039847363414274470887307498060010226443661577441207877495276217435532277004049513775434356669700471629645571253356947113392316245867980922648605619149686135875729720378266997069538427831265935365863846821890666843381664893589958168853951506255477891549711470513992421329558480526698663509256750807909896646593239167240005967029052718691139292291730294113925276673918827362407262317727447358517412488990093722711681750051504870373627367550627692005686038917801019463508230949152333345948929542938325533508556789665723923440837012208037689676181859514596191055966813115926383604846844079501929818672840349308106579354522246100811119956438830493365470085288891868880294628757351850746698087142355662921261947516865288557257296154587916014249241491122233141643902090146033622778305782123420935776949434587340463406213386311171109937856838490437020769593271582920695189974941146008866506680321059394216106590404613691749841493592192947725052242358833273610157500966372791904177755736265840181925452627782143227311292961421918433380237167798591049109576010844817189106441201541302632260813642193671108165614538415074461687155487896171080271054563062255497329301765056232923109280088903839064493365235592106671059714153093598333504031122209294828453334886363322611315528068586093872445524983490458159716713082145093143170929303762891733939512119089693728417313233072161381818454798150572490660339950882763574425573240429660451872396636696273107842603170367118982699248777087250966928146812828466343607334620540769541653639539894844142346904863762737146188666311014126797916022460502475046011980533628436261413064019172311069684932012403582571476127979206985085153824836790274833776360346356826976746590710604457299462677265856083612028952826004015988390812111674406064400773136692785372032270311050225721417059615631207295328589729378647629512891253424432890547168823179963173180088303733891266515027355240999839127944712867440770901504287346635654881513712557612620169998034413106531316219557062108127235568673457728282870037206412770464010852498506514725100494487318301285683820486038868132962250572378483010591904380791083017204461528569917312117014728303344907009076664364747479060838964085634641018749308758261630888443097266188353162483784058036877867006969724193330243918791285247824102188893163523203217348280936281837665452452814510037914348051287741423903001664807255604678335190138617038408778694722993817895763686203841289193941876793235364894900463396311203678858346033083277639081221954690718995410912916679350845254580108240503443987643307548540348369988973414782353575064254520909387411884005720202445398284037621268540137426297163569483022424797209301821397516728859077463171124731628981114978534243740988349409498769522253062473492463474606578217654654621253382281401639685279973676056994079470230369518564253827586305508298328412625732722968924392735914173276006202615497017441440172719594186200713085093839888029123223028048250968024345868176940715348909644144388398992359294858684384429561423985080833966271967645845660519893858851158194657008506386698379574391754747718804410473711683532035645181091016173275797775075854952460441641511821552946102915462336778656349276692723868509615913161134354438790481147980467732381031120331611955692604211268200063141299249980025590990083760865191152042261936611729672122527451307050876985830025125499898352359266635289741850320906321693390660129476467392818224707947058373806215072163796204268993579982234410170929139108947172379931279837114039328927617748774188560695038166224857051253821229167811962052223996247544843687962989704919524750582092190996439915985741146324543852785291495965365630420359321608907923124794404007943909970821675226026083752588470524656292273271488565091838994706280447479354487285411527428383529593216695537534231269041923502499369558886969738789136386882746780926991258018058774972022338924768582138385167166669163426231568409993593469322469857660013839953054899002055314807051935631793436250761194911072658997165257196416487118275776299164189183576696465371814333943353996567595646240309464622722149829866229250787170001911299608506563148921378742444816615982155516302961170785089644003104012665733951322191491006337629231151806847811297859280777681860398469029347428533267490230148187669895582703456459964078179417316297250839180882078967961839834898001757626643089191419848611064003003820782338833025880991236513541985998160030116822983970542941522920472110727791317626440109817178681931699377541348884142056236048440802694618738190076769869480371545162222573339422251535698278783912629881827808544604562423971207643677861439914262524396655407696058330477371764352479932868355654205153281440128131888242944199486651597122677946167327794724585627931352958231311228259901513667051603630532145968969746157857850231036180501012318113019224937113581610761882769857409020087543731572792433061354090355905425986218619397285023374778798626458339214179354364739862592025680182286640705244169978725933835403870349359214682598157666737007701610095632130596571627253036223120391610780179768154224502955432239885413443399854334702943349222894233482589968350877615654823292336261637116318948332307582694243211321321979828787425894941271381328118792425487923255431837512982591529151851465618732735402061208537488096479289716929647574793113410818693371922359685997497175381111281319368604404981862554185460992647766619938340959990284870805102648388686549855553672929930465604295694116516902511945700736910804699932218320935662938180638007875419850471152489273972505316097625721131922815747860958821015107520673509047147034374139782705333963909424396988629404480485187215923991684144086723468133541482923035604040318361061496591969707621724408620040126113050619402779487881829192187962852744591581917286817873879931155416380914563014084939612666664856378202313130113928147747035779178545634197132183105347885771355530945072156388108978624502984590276171323627677870439306231496620374387536558979921853429360708756877946821471660919225339326415577226891565876750203370764305497256563696619710977249775384850529973884065864406399820511113714888910374819228434965142452751591620505713636860541213926994655954708110308636656438079034759436905721911543406217269994367950540364907350435735689043203905701599091195166706431498075624461289138800298057807761525825186437627446763897091706475002199261431418650104912526436786025734514673887958216659217911262244907122194250595499492222701551579293060215487523496927618854377089826750401905469110672448752196604129352615484454519313544606745398953963146171525433873491365510267572577531608120957632160002335718129081759619889761505143649084913139864411635725705800431717861691880888499683425805119996513966630023066959542058955770791482304026520238923300681730453945253886205852735437032350569067346210721963861563561210497476478962901528492746802513572005068242517470393181250905414842617695854134333893886430258724030777240014666157366140501936459549038330599007038353337534283022369899113119635880845545503429792405039996969165081241472620854858622394488514021083509040777154267538543273034504829897506246112792801049624239305763923221797888962115889401011306809897295008288628554231382427271026946923356397490616526602266503964102042146268020149496599910884460082664175658835989782178576271321536756981228571239010014396073405480078953064953033056505209420426439212846094228520636471319382673410037835080322601659845610015021814143507689362733852366770438462260833956103845621504145817685262830609337190098009787858537517419999113749894822757151596525106725726874480732648115275069845326105499269458910130735756351914617836425422056491324712027189206499772128814854459421017013817212011853794554683433110926184509937488926181215247989546336811299575977406572172337022052186028850423226942562832926362702710880468327878171158902780080738152629830581374293008725684230619605787542117037812387826057387463930905967412616398203995564420468587911608715130231536203871469421295785293504785524250042290123892042066777302027116603896158126489391095821095787196971467001085478850230085425585165522749535418700707005727467280031324716612488842498040438318344844448400176216310638980550141023283948372116659995808534690122313628140889288898252376777346484969994473639384757426230650771995355517814720408452062806159330858634863412103362653830105674757822595714285957693988863628031498000458096013820885185064552630810653663086054967128826781197696466118474337340924694177223319702091231636565954936838935820981326903770022897078346791666307143831978876715413356337399802202096682935198563429816216275871414208193807118619487843409743549270463925855965278626892024958137940142643391519901074308158785831579528245327831216367814098026989476085190070251525531600391726634566733594558870521603572768619392410615983528519384173411419671021878380381529304454372628387478389401881427767561873943205973811679134196113390568562643408075622135274743057774853788390866422216043045731910209508819085310908296118620995311695655879056611937582292073291186004884176629238703170284728039058683246424012714721772932621758174341624870195897729194036392259155948518032721626929645697320760253934849964581259229624288796939861343439754569027822095434873454258414303506423620401100398741611421010706486505003625673591163877382734079927634877751559650772327546171086332441491909100388624951653062417857498791494593787543122026972967203956974295801909644256186428164483710969556054163588948730638510113321005723630700437248984905966494854067369072371394145346011955232601515984409574042334947663174532084700502481467632453783156107264641501299792757874711328761347373395298216608524695189419997062514209876864316758497582940917699202788126574636385255399446123026729026465005514381967478552628506359848446596798893682712940417549697191119533165390843554423897605512776192516254133651445942820495804242140294437049360915305196911906285937229178477861609286265427733288373211137407272044014257712090062625732833618394156104956742004631506131121375741042845317591129104445082633694733750835293227356533636828946953222551031529464896457307015970995645103944163014159173331464779853292119216033556104165645848355886448217186654674946512559242878067393253273314592812118913673891683765107753409661601827126670933198025719659927165749432464035028968886243396400824365863161200901022881356759742704402356244081386969575245195308902710244226031706459888749936013981417271914972990895190142279389611745898233883411606938022628912436892454625054850967949015201908602542754963573204558015712475205311263033663979212962590085427532270180638705980618015493971886754043587988640540064506545505629194322245984187350663626797507640329193496576696268590103287885514902401536705678575100725868269397013958497274492599606561521166251749715050129960167324311410863342633289787205567006799832002207422372734831899507157950479022120879670193152065158479671308936555227593753882383713592469907292957973928061249324615470913071464139803620060815917714889953303050325963760885660947302570416003035178857783154424603222671056973569628736312401637391571129971955605086577253414707183882371464153634320912351990913902632860821513575924396846606476987381937568413977046146019013036399779132954720877997082878231864036249780078353564706851967387238934465238564449330465702224891865503755200649666794939422280830841054820970879396237815737536916583777297109905153158607684601699593512925548259931367843106314728229817572911138283234467650204827687524173156875099121610106599021315815310461239551936879154165106811669177398430102995060721765880235981835940083527614108031014012947921790980162147730208648139197798637365327324241818888563811235426348880199697315274580584889314122760551890251740322579753333232282307225722173951532937016200827927827935907703969555871443944160576835346857259990651367692245729189289631960774156911445665056269796786227117624200886068658424017714901343691085055330175162957412219589175525385863269968697245901599262751851053445704646407205228247575945474277306903095462141209860776518701366523385118968674211569094516110432601851923174954700190339514888765319102537586895508408517302184794179599050482262620560649814329110836192124723175909862027614846465226390226363607604962617756642680063512671123436502981457343443210713340047514360599283887269111953748613827341955033775377929312961594139042048490696359063511574806118783898308777049595106525934348225434332190083300441713101939725174399492308515887534011836108644433381039599339495656526607838761792185490525944415731961666696782538147159526920523584054815766897022777582654065770785016221895583719436207179184178755101943994823989652932533186147805142616455476162113309194145941586046249168224591419247609904137152270881501879043011698104828006271620064484631022234445662085082298175068706629158683260431484670104006435613567878493803381554392082827284868393219217210509821137602033171321062362739980247045923923975532183977267517124496559781184770092268982245826520009520657351499503104664659883910079961185798607493888125758349723554674579961946257754836773287270367811270312820906636821790161060146435817776331478305479136367970201961380710019753671168831420958468827323954983143151046703713277173519980798478447886484219733724823418772250313860914307057283937940203059444102125999601233831590051931811532282942979230518409964623226152465541849485142217419601153815435651128486322736719905999227927623145852378488765448192849104932801188862169624241860176128729366796773246900086693635572445670017314492270957618503700892928771689797426850758295096475036466590550617222416314868170061455681055426930739026573906950687404528990175494239219350484808431455438395941663396524553899944046605512691782539974362163256743439936808937005985601328573809001361234994850030823827724494376246872154677161971447436856326288543281419636571444502171004748726527302852637165745400596305448895767233799286374084875130631217467274874234873750362427419250410127768614894859500731575283571490610504886244166667794897541028394234281107838835071235504318260762621847677268558119380884627286931160960199505615582951917390872408892596215976601136151404245794855742723783218545927062504286201113245786981957122056906701445128553275193287676788736390885786222316084017244102507756547251457448498695553797001920011030278544869793855996716311864058475408795251002690026726578250818637648169804278376742560267554996075756340538258665082168097381994996479315815187103321951982316226212615250856915195398421443884419075343203879399607627089307997183022465584991245049076604368061214561021495228220888388435201334323679395085332302883452287851890334169886311774339377353660779333791309375957462642076136875500120336516384450820934971580740804169896835992124761447660721686106188887986225589353239216362812460549046392275879977029150199906112657424133905088105645868547174537964731886131687737793780225837880542200769497958706588801472415768263970503932405812805571014619610922795820229193097351844473510812465198725060225141055226973402128513436721758687193378041239691171786324966657556465439322522217861489206144460150485600602302622824618298027670975709669324625111487550912302027880879538054630792276967549856564641110577005936710004479682744829073189928203654268241682124720727118379025908068213662769536198446527027904724698060522514797734574702880096241626162021495127433439097524562497776174345545461336385776277413960468224267228310956682902249622737204624013323588875992464498310298979914615175213843645861307319639765328202094095648876365500874227120080021382740210180468292529466017530179278080826449412006810210612941564756013416685777598649515640295451874252959562995936838686369032086082236163291584223596436209941701464632465167858023610699368754484654376864427047338612707075919365142115111202120189911232071954000963181433021275749463360155985664681618418520755970422746570318224718812370444995764481610708435607494885786015758801869791807569950156076244814995307514646786903584211863658326885542409073401646632524599127342268683058750166886965694322537628499779124794078326249078268038622052299873915948592845124416096751234514779147470392821882600423718847888807799460875354347852864716676102508068499500632594306712269143578904133471858306618514905621308224196111561161716296713039501322943921498197084495828131197004620049292752319362818605369915079359786633980973507226899260623930088669866201272984354070858880777104000758562799139668700104428884900433306179340582974725006402193651754891119987636690013047891448385503484486018515763986225874737973167239757124226417222218651449179698575075882916702704994872829990139376508984356640346528728694064989285973935449270088898793055578950957050931393646197865959043431341648289542630812191822350806593688095596606645626911704609240369114956903612386981971835374943309852532992869540495091940629214945439098265476493117290779266607037519515727977972191003232615911091609636897540152082747999122610500389043406413561708883914480334615946140927418304874143463940744269674846590740198505875207702859823692890959139784809546102708732811833101856402110091800836898514505802889183754636346690405890699624786354792168438771579712491167862385464553996707080717942690633870363014180150870663514417688432346390527817369819763536743439022521252111322166989742803644014659755282366123293199991025795986931998165511165987160207392470398013270870608075916595381879208619952688757357864191190792008657019166578993925667085168887300558729049818336231792244880920975030140213673447393631205491007100559674204850145872456949071040189076180526554716536788448522151696722221194855515944623641590795405709734588901407519885365598144236659915119108625679215063772732281406718619462670982208326337056568545111883805666216135514825971109840912904522268115546558295235060785839584085343766338507593596105560792575081389311118968727037000048767606062037326740420507883731946068796165763319021532860021285843452635128453438475595750649654493510578565245307179700053831728041327116490605928186414568012464742977819581328645796120555233678204137261914498612466693636958049037132293085106544870938669943693740833892334339195767204873615243180721706458091994314156497021498336620868767306419060603093633363841795784389274419119124039087664688567680880885070469928654786369824322803436376336113561697595594986267524489418690020246478543732113996905754259189555592290609293594152964925163077679341986628830986470499983200156366640082089425763643206527962291389008380675546387213580269093474365812549626558917508962006931470467778630965901745293954230344116013759297954394716821330710110160698384847263134694995561910211807520333428686173433345537319953540237279901249123438402860108424603153837655101886236600801178574710290180236440061005498056780038518636151501817050802084685391900666672976485443036605097365391816651625598735032048985306179860207572683533948191246161156793822816127340585924520885944582049643874936441278569710906991808933319164216158457321084785588037974964756471137673301801067939709117185677845481551429152767978359978863418217360511796570385412706389953779567209680646917383557254600178748104783905896367847912218611238153777034282686680931942853829035184324628858087074838570781646471878997875739519278419119440706302057353591270581999879201542143543372052201719543542078144867974337339162015491178998531472962571846657382651088273469898247779438397402773685466682799202563383817943970824140590145135621929839044537887365872377512817801119947733369175486761136703582640293229164823371613923471576440734443783322787940405521756470084269354670385013725119586233538741989864095007590166177554097079592231855664203449857335670945516555126830852280641513184854374528681695219189568337405522062142721421681414546851277631899845891246358105866730421098013130212050594481866225029617306794378717690910179883666493507495904619279697662510563397462476031377524634045147228819825003311012371917733607161555530912588269142363744133582569303983740116890565112029283225652194880442337276235319248441675354516139407713949995469183078641760678402457673550781999229050908847692197104774779905857035964493058356726864264356046552380716019168263946242227445244166853313177385237688850173694643143045811971172879383151959410174379192888558751580448164014825331074972644103421663931716368641807309937474742743512069599586639876806684510740317651923142665648731234708245684253950745269774448679921778591128803295674703262424939489832313076172088042564543529212302576120298358822436171858285942123636858150695522687864825032893553040272182051491796573489712601097221616721710075511144184441615437834983765979704704912369834489021907007676828327677818274328555965396110674010973863580472685195607275892427473225895969708574089333062723701000321318454890667817967306137257264092387001357117357115788858694482666731556961390904340932574401086704322315824087936872928699521823928396956462258966034067707458180389613585571283046047790626601663717654444712926848800257890896365114712933607344097967780634924830881732782591839866041308016799782294875816576497983831389174836310648837344118073860839240201596956405609213085877130470630500392594959383193532938659771678464706276842830773204390939313794285879279991484939027199968958066958801968964014610281335708942585722202497213135478901292734802688257086220785797424895205116785924544688408601016165159039532950605502833282551188103021611739811724424361350690873384136803694886456217362615930893555284076832839307637321999388622172335011202790573904872563685177032473690374003334001679214276181663304953784502403621336745102072449724036547851308491262975336750270017258068911918476573160658161981744221430184635544403143192430914822533505537225085732796553083528620795174023146994056260630283993082627048908937684725875246833525728790632138654246905269603149853875635474228364689057378423925297565169163822605968662080596255152254692583414532608037206355507620575292048770563213614391557042125415814079452211581952573970521281949823994521789484742583280672946524004601881792332662851130133862665147895124652632144401021178298206247117982278608910471398595699225602952754002680123830909593383123922381151617114976598860430970718725126153241029945080931594116564640392579159890057700071493379789442701473942954529166349453895610252908673242824446759262628671568261802043774048717039335568590380613865222968191581926519361372719386719848614700948505719052257265137975953003804159507334216245273055205749166141215949758721593509477393946640652547540654328935650356957779799993358008718433472170250222534748275082382148477816285268554667013550433559714417949717574114423623830030128456218898531138396135476597910972993859814686109618771401682498115001001339732583937263646576523428342966953424754752591523663815085717116091905141594369887284940254962820415079469269486658985846972023401361885983379390601106910304891674365235487360754529326004148974836652513760854189935787124630829411085160309833692564160406308072333993385700836594344419288858684270024444704942425689703156181030368540196970474253659363578795328295125322394362706362846694686064513801942628624651414252528968025828051990964433553823995052216272537143381221141917459801626224217747758274265365646601252394494405255801774744517532672285574661907352151224608830111071886135656376709271676485412414270306989632480288401000352783691573893218713469996111871211910939951344342554916193398288181243212638708077206396846122819912179384484038854848807296857222887835100438122645031644737028085420099181941805728267820413043064626020778479520893410583430180243142481103780956371154530714357644868647056880301224642125044470497315205501735069975520244198362488826830406920765270434382617451190205140136636973055751141976648256537468353337777918478979573205660188043827935746997437019329837092856908372814054499753438594707544021654099830355356112753745995323712617631547870550535124463605600354699611663897928024882168370132559528738185714791192097232468724415978803702350124244416289205845642497910400468038558998820890482550161769967139450417308880859410150040021980968137679037121021841522787936692777466341899749687547581933391972738919734172851664117467724023782843611184729737378359953533375882857634994000591632374578922225144374290288919663958892094424465678128886788966121515423765826147728291351487356119505057620761383875736346664726575073396297062694195891776512354888610508852159278913733835373264793757676696405575437581070490713965174250074748170195109844154495016012191623518432099333343687853968720365646525960834125026831776309215458527008895258856364305229598799713170398691810813417452739394217824756836736384415332767225885967441424240381839656737065962456446998015433393708006229802269344464745662240054873858852897084618748959337721453300632229388327992008795053358535100866338159530854232527399963896571724879805794284104793658233664379458338348630498670432755146523182673286321057133461930849827863540167655457234390618549621846921017972171917812788117371358514081819368182331846773769620739924295324483534563097117927910788556595124362942611590078222308738569052964405227667500983278991884402845804147217991990914194537821541361517252771023379547202834257675906698825490973241401656164953012665517804336978359353910048921839630741421670713205829245388860902495070792825503332634833123227108977273222467844067968868217938562416382455137645532942685896406370194745979057726949312345296507991092688563328686594586676249514369062598224092211080788166242060708151047906417563589001000110527600069358541657908654399453368762098137985370665538285469398566459049009175550413258392086102009217249953322694918122363955263830870847199063592795765725929245677907052313449192190389599035218030978382957372385004701984336419365200904695919150467479488600407592646879208225944416254745395054689780290986227777726393402463087531288494656181693112578445808041027839903929341453550640874319246152613570317562972234011446619440027791465381787944289537509472149972026230388148033828334814215583906994732264619062481901658642349912486433197617846716348870418689191498297507488614175645126907842268551395836074300560966518115522804363150918532807578453785152145368666833602657430894142449913000111772615733671535222102115551954443189869110868481387898490868730845585467223883100165763653354142293543650276123327441583789725924152277474377350801487311155987359175014189675376291644938672272541053700851928499496354372329393625043450219701632525423682136845096167157946266781275989614608449664201796820888706824646162115616296248375924936243016590338789086639086625468015899438713756169596665124552978123258446579758823854311224038570480740586159959139297781338303172732495631765769211166367596643481321356171206350522746677500645729704244967414779765641559032832086274905444766061689634909435860848140510193712776708674274901700648774391098552738674426730874546036130054621820430252994633978542621473959101518829616620549315995576578253113275380904009824122658907773843071094351348498839511828492651667814613791378711151702512451391770438879696558584268420150591263739088186543150851439073122896563276713213356013926819611852405831184978704798086525122510552717203790602356298177365762724001651297920801807202951343263807521430095047027937073310983079033680203911785449747609234733075000584601533130413078406633626574940779006427421531796224707422991139706753160795760941665639025736171674029387762971447340789564158272193445610521440035377429048511626949955888318771226739265658610402317973909351022148315273118176442950619894521789409350938580393754510162243261195626011106233463242148940861479244842470960297083216757798601841795080375630892062890986989394015066436615818672967798832922966987343062890581612835877099492987678653473444381378372264411358759343746081539891500977277723971198748626523475687239820370286878437393665444208909899190596705190356406553416616507396383771588561005966974651376909732986548727531333521474933194415432815099524135957072811134475607876281546624979654991995997824309603752072108575040791051477938898861775560694231093930079228774807180687040655132007116723035123231779466952111409157413127511466726375587404852514806752698787033657065236023911420665523196023410602060755694521220670815635152972745564540964062601940197023198535743277023225978373535043742746962742520818843330834043070714115535821005216464706705673146532982653642170157335656647545066420364197917335263803568818557696712971102200565237731891795669689940494531415570531997516360136865792183132516148693627779950217379446332789340021974793673808733972655547453720641678731570869072187551429883061450857471190290091892811049294502187084765724333087618282738389900278000913306093521433688968568049015341574688444264716329991849461011418894735365190772253183367985709442036021466683633225197723925237568431257775588333829222264881424424907478857182447020007887375508385658371775313236151935139075000089946710825321549402793714020781734626569612337798938743215765387013618370203313973287112005144828633281417915644145840545673775417054389146636048263846524060779930519590529362381021589077599879571438727169791029923765369452395775479510889580515676564792971483559722776442122819120672851443513590641379831457549226529737100097019195388406341793577674334680426133419736195282517633570415587796613950464717713235950030555879405957890554577181030185319923258851872180134703852319701566994116664621215528950858759776565948127242843659693285426607505250692703695574335930607192463765066896027761318997631570349009811161505402470825268032018695849868279498555566888611869970962219434921035913986391248301946097535646132073838762199097740868357717347847035061784854305364549425045189621704164515568375721137129425854144156889158924057937496248757537768775073980896414142285458187808369672722411345281270173920819731862717695841203447187814728985247087111383748186331598050903628166756098157251231627080628764806198504663357552755042928617688714258166259477234937666444504995876522773243168596130701667939474868837493735023288358889667936747239413012217739401500475457915432748325062035594569650271399362193495438078755458793111009641518941990222310612330765348769942635908194109586436043229350871679989784812197725263852619714474216566152310318545068791775455787287842896175340009619022681985529111676321221894997389381422558631629759305851282880697399792701495312307378989976259749440777838619218056833367011040947279850233155485657356555424760907020081743852549799207682295995095512930884890833478146145074358967779047280805237720465181372128584459612250730271957432560705822154699490971176608669915243024828946850928551049960114001446750621471181650562631572000769071771324642068715454206010810697452849307323068314801837456006536461937143613827601767269140506216852062707268533577477587772588260090679698621661316458244888256821861608671023079093880495804945550294611966674947743721175523221483622834438982194625917280849735596941831542800510637794759320854913988892926906380432663368754974299627397644342941475300299022180218223985933305029392067935126182368505541987855102541474281723611478301432275360885941812315781637735867802021646183454785518674938392998204771266140418675777957207825936808391527078309076285465683083325735544042641285541031740003448098564736621923098511236914587371469136961794332196655160104583305395083157135426286018199557829088040521460208379043769682488381160688673381899474937291436044644034995543786423690467541840103721854734321273570249915788100353593601352717132294471030884181505824636326110398939266730191227853789214928871473974141660165697107443628965093420267943370520042299052866495202179290925325916155006761016214374003714020271101679156406744788696959247709161649722185801776555814884336923702430283502441731052891557844537962215834954601341465893812949840202053586586290464274093984592713334267243249984881506371844914363370978061544325022794883247667493317382642159161765532373184472436514098213033164930009192027644949984968046382921807069091740955827877377956559321290629479307437443333420025720494306390900630129903377427629919215210352928091447307432423987534213039304397020452547387721912270347131844654039987614123197349172715898519879034641543352745916831430952895369120203135760441728129687731621746059004413542609889955356193440465362386048039585596620389602977822737900581388778025585831328660389386383931482745604305053179399237106334156382179386453283718015253956132258285556970694694709125278051790369415282062536002576764004319461951397158550511246575872032755358272074833359452808733556979333628110790624785214899510006102511715202951229121987923240584719292031974666512090176920008518223088430344383544906122291025770017864135192140498342965459988197139898342389136620665527842464824269618698145332544732121001684306611972807215039675188093478367421330009391371775594242690187368444934351824105942248217015226332422910068180557964782462453794794715283325694390344833319726476236913358365052545468680266298977144451880105046011088861648788804175925573852025250107248022377364274511624967252287213457401584816229837465817601760384589999225139749307329261470394519169578505132864285544520201024195568309031056066686936485346061394324678741213700270369377578192821706993285919437111520208675689160150073391550727008379170817141896634377732665190587501112965130884540730903182009730335019257738739092536813315311985818131304909935203743867663705698376634510389534681297503760466868612721836913148346116160310982811653450005038141475525820522840466573254699049396641854248035218674215778865956726018885253650166827404478098409108462080985915493083854250057980160674951920751232867521575867890166605651901445021215196749350724648256719106107175130443606267929532401338958778914904626383411096960561385306838858570207239346091608118860943191095089796908255414785751564165501124203204143200783283449178175110307628084649593982028234063424062698746643875135363064959742229024778263758742746515250456339157514274495878036602423874762315149511118302326814153403716264370291423196482100545089675025386208338025011234809398584072679609685547970850675498315450848896092175084003460687130305950973928751556958526900209821469540787942085942730404803906348489794811540441553232604116725987619556866663120099144719295543826216401155520634788428176753151539041181092778529613207012583944675360452956726877552581938715144196437489066650945762962051526148812345425068019405964790527860714541399431185820173695972591943783656151561973017281600989573518319395142278050389870932831269509523568051749734824308554595780563563244198697980162875579901898119415742223656048088123824257532209503632941226275389067938734664872902008708812948502542573210604026150152191085480443902173952569490345136095358155976834673421557358841462899828439707898185213020683864244679442983064857084283674899061361275610986180646923369868792983190569866281875000478919088790177841388633680814986745701195069326954185059115861427364598466732369966578774757868474626702718852652384076062222641977737241422801803260675943671569374729993320735369312580865772690788106022723634371769918066626574066932806824079345151246573435865259191747968233069021417589788552009847172793290599400102805486166801027696458088927681202109518731890395605214825850584779797571844811954497108396960719672512207118974743287716299668483782708134399861281987817280861899508720797407464241625231777927269861248844939910942870287030293781926195365311323856580565372965849356582535749075392415865076849577204735275604489503586544023182970904705145815576328894657512307864898238832801804275113920794856455755112174116522762464444699345983385459515279354138713228658116840807056304683568119070444390949869898923985174135146621439642803539205695754364566703676079496122369690895888054934951410145365486065180354340810671536662660920654266901711001684156938152859130252902591336811594222264046795092697735064875840166709331262894969711468354222626608242383973228802558056816317839564036571011534633033321740617498562637666014786225481810093401004688930714243956646027066402789761467467201132047759851074538663808237155086068377958270529447598771631937627618448792784692439700321050756069151461808668334792994171731471875210736857664695804166456964245672556775768028979003160548891844795118067388325942041006668155524570547399451742980738940103526851327685605822741550980333029617752974039744074236520493735227702590762278353475257084173431113958502978242823118156842895530892075264747256874469126646744161189645979455865785032356367110067372765864934349319116874096812759796418818252005943471566955013413057187046698748921857467141180221625258843928565245104473490828894272352711744065582479015705194498986485909521417441982289528378674769009624127149362050968698725843522656102648790792766051149703296683907968521680178858719906161039123201563432104918943837818892087132400388928600604590346046423305183817161529580301467422046970568460697754088864970596453937115819649660606098063096280583619657670180093562656178178681109050868834841158444494053818134921083405920917741801313963779801412075130777094604217979355200339306266788888677396762600629100478635611655263648498658783403247501927899470671341019582738322485280272763948234303035884500137861536116920038659354261139621050879541958278397447883684030654467946382409732865015555270209563886658691407164333291256685810208145214224707038138615917930316390851003181469544555268444199220021581364385047998725565722145716347456162191764228760326454791318210124177048714167232586517896765027456104242475809689105089710147384623514733369156345268258244539630762799757624425883504860816606266421891265235338987189086182441702554049901828817135604194463502539710138774255360965370385556228157364366409529527843667969175621439268195757913199319174891819769704970891281158526685070254260477161461859849316912788395951074796896081817265856463996967893584586753717935650319520340416081369608382000495391604132999775176387636419756805000004976581412774736855499150754042126927638231786868757940159206673678262522724916332192565269818356176740480903824327102319116803747947015533572237816354158578058612528374241324532713817403199861741196565225527472286991537766523351975116492143693707210993694022660259472963709975912551712384690431805689899471363679053070032484380685998056193960975885835736010334838398297104755671677834441766594072006606639575378898814327259165621356947593133161323578778030137728634264278643485740599502126185114361436740396808333070760018210081330354574125079324626814095636009785758727170713013029604599958863135044045307028578859095911813417208562687848071594890644357915315155220299942515748811958394931966588924141738644806715556131029109479671371918797945062593611648895832175887742855315483292185613771891334285848175375005457370853436202869618202156845271131188871355309845948123954796179261114371298943141169260062626721726471308500214411472122713309252986711827918930938352321068989858068219487974058035785986006869505002401177690600566423625705025079687040306275633410632278178601454481816752639811586305901107154865808027393603224421415030815544886068563021912344526853052039591669626403237066765686448561941988298012721332659324259629712803525645869692343217215457538240137090827203294288687221627154692387803646470211118509132891584254979379986881515940821139091883915161364257926772113889903096010809558537499382253565329543700341397337538523372803089077196028192705033590475546404539763643997361471439124934289564696304969609717924972776038174890000700770732061407389040148737061205086711065956972502213677566210449418641037501777247345408227537673809661566017024375567529098868961664380610985093183657268283959221626440247558909001183966670544578709972655553705120792006729715489163641875748527750548714970485198644258943728669611393399849225862458368547071086609419725639798288043868924995592671730300278649873830249266382573889936492248334240264059084413138613398207513689693444601101127196497284233645021650459139103737512312389566974639998133743963115994494044613183979775150397641632450081857123023014938562898752697095824015155767339359406892647443798293472175730505619835314837494133024440207954342946536880576014198461161672052642441328464908156968288029401097118769399463874687843971371699990862511412215171319329849541137194885089645881538359579295615534159466099856958166940730628096576323195530699836681870983350102181701657090213968026955121887240894633991410577983351921848284528037426712867374968743955017870961389702071102445728609942222699923401750485771546238612972531507848174062791172876999207576072319361051043870539112044973467120776305461541537227833863261277067125093291354430229329320029097851374639953313865322466764143398539225293207077271353194524557234624098941321047831419031149134599379283768450758318659104315014016555682524085845514350686513588768827916508847021001268729561616079101410451490541233984285354597905999239576180487009015561851674338570078402469290914785127764542717735695590336699575544996020554415750549307854698055795488193533489083149066638772477202354816688452133564970554893166007285316415053267325965362082238189609778986033645134442650128427031492928614592445368328738719092524222822327472901701655339103522599096410832246517195700740437990943583760411450191549364195581901556519366066583075042889583118835758724107913541701785632795061057166090515589861447580083176383799975879015189284752934974439017167302531802343490371334552326186787727247717788589430664121123610713187430989060127148682201867358892298674724413460062103098340004777964387057510830931468792439768957391721805940708440733243464755362457995617022392575259491386156545830945311881809636392893079169537269444735137017364093631386275307431198940411134783800810284561390241196217423113581827085837911419759177380379193980612744534298539290905939227959324378766055363643691361922310645578546097997592721949734055492051497316966258831511411009800168056395462204509009327503328084574320415533768151737157532757160974644946226363623436501420363266553514801310273127900099183805922915424171450287652414059723776117943397040192446914529443109187207675407613306689860030460618055224623628974594957607648823725512126580247408544841874283551473945032690144100175031198376052788762065595812434203271412833776123796818877916648436331355114939354625938236375054944708729372683742288953412032694536082327211658926794636109748009051716085448689997125765101237821798684095695992737068762441902054558036191125402370104295849332719640320654269984926630424862330982170155450809759839188592449241660946110087744716611191020062910965031103060847983998366338751900652279316083143484053184349343951111370741410077325540392197428781062879042349464486720367388988495300271283544299376940331177964227159288461130603698502526666146590822476618454361915334512801008216055989656941815377681830669915245291041434287730294244255140333788351845848467949210317632680399726294300766733989310970783202548949648338659766031323994550864472363196186804004435436562448702130998741068855064412540549185553391602937593999634318928333135946151418056311341435060806341540329335847033327573513299143919298453949643640895971606808037445576684823814541864482841827796142909957284506381748806110220302964863526350596440229999357338352849786935750055833645742026263853532472854760828544978655804365801471825797088144028422206947183788643085253910224516149958326393248348071921349356181569606295727908588394026278283669500689514459052871385346121472833241724610742515748311741059916560528882131369451678250757781266660717359925738499175780462214777979969611993467122602651794837297338483871038067130320398607763072304770417013575928354370758009997385281326770520411035741535024615061659864981972718949799979544515999961493719434559463380272158574597363624889111115609533681593677348812254233662195247129774026276240647692727224571195007121556815052389533523009205744473859514859932040400501381023611075093888295051689101668044347298006628558248690024658864990771087158976976748096196125239444614642686748295746780187355402005855322270461754976494271044266907087129729884493220981521825479721660074373913364686859810588416147070992155345290422282285536111844970652812773016928016996975517025580745334150105157534190166499631105028762157941195960754103428801924042266875731098210503425654070609259694441466293946996600809880059258311368964351129914721696897883928189070445841637712400978611300509746864956157192746259437284686386262727035309117375797466858885608207944580673582540245954453913794061505692389267644917221364851820396392572945138721698772871926347339763481217683831773319844471265266915231223363550153209909634713184511005822997919683117625686995345579744364037069568739643072172328100970361957488313253263645928459291519283948625996539644546246630877002894597134393539170085658670699509927640021091896133947795645386432060877526705440025176558787913405023254418646954831433142610468603537674117952365613888647405402705339629548122975445935491584750487826355028194016689721153262672148887070172527331416700917255984515808850100133490035029896617372532727682561376646078745348369597094705760665381031609573255033407564039297212098331044536818006616668508346818067738688787979293758845988680800092466995633964413909906766695441291792784095621319783244970135146470145907386525803727533596594633965054125518751716156791530052171778075318149500636345197690941719773711159167347627252618322515456341292166646229816482689023952740419020786478938721580009537038854341418327389569870077451539407569422288477891425245302318697176225381960859080135500908025926815672486426409900115975201753842347491634193895786595420989107677259829859826695012862438637633475238353243029171863035871437506350087666485923053245045108051289321313150157771200952550163611631463116305208202778102088223283258198556004903855993858973051601178583055056293772637250534999009351012455130462224142346560663556175270161375203605318149424415885795653284429621626250393239520388502517094895749963646726299532748259068032784585073167154588634512499842141555050573637664714717436659784421311339936395180814551602618609671938517631519445023354090875566267271218838444481379380583048843760398488294560091497138729703141005415175995829848864259883340290014440523349101698584897886854570317816110914834780109076215740416088087175532612643796136350122046467823631694275573418381390215180675857508882404713004570609006471338399204033091136540639842689175245990543864045603711759177592459707561377979995257341616206235950586073076200107221791008529877138313750952113679636217389563058384113788832953756219235713944917781551296419395704362277031775299930208156567189476190174489880052694624132701437552565977384718615723247552131346558424965607094176026504447849258783293185392570186168640330575371941625392840484450201136349521245883903143066733851350297124658552517420045809596157006549923571117866471777563812472938121830870942278094102643849148622908552651931063913838620947349310516413944693899420775390240126225344902778414855998819171172502808445353507872556091210070938982259016212981437140966522797568761942825408227858729547255093319146399842649524487222340294992754377232566806282927289445203613845590205739291003327649479937169384597376068837827673146693027641575514665909123851801566454576298095944257063794773823730348104445351364427957982034304747129620674138575866488731180791464038522607423837861632945560676982638913514344806141742297834592797550841362913511568901693662393985228313622244067410761089368241204705605281081245825895119011380028381789380715128899279113069300740268161830342132408398282249927650514410749668141771484542845369288165457887978064879116040550444145970793983416833225593470965315638921549995207748644947230631206380349833541180471578026560257878101700974518877932855408659813968591409169649402835727467001759356311253380249772428705925894029707406504022294706958089511783921408681898253150560000645432196699860950321291869295559519501682392563059260048645648315969772541390246148056191790772573118334478771476375896005519840084131339313867975866370533120372603806388271487410985862061721967533670255515781735574449092953793987990903315584329654524116153037796602737695857650804355474886200426313078692854120350441770221905931430552630773523401885863941924423542578168035562848073760825469997600194025435843337456733916710209612216835907905398418857521954355518237751994147005633831696734312502653535932307010962086693106140808211954036911197976479391384987291425046333471562836585049581077411937603101744086407871270035347296603712960351302972730573159328566433503779381004103790603743471369538461690369060659309235495127650948891620275943345630178178249918186407173870273779996105497129531097485003182351740684583629465729090283115750095668938092349566688898020933312807498517261627872568552952256551081569237798360367842635421592091912196494957175532601459552979873475289315942282654041109642609039560223220995731453561666573829432082890644396687221546423036739867238141734783267969927710568134633287080741593919289602882020867432019517535131817679267394817785136593294201599695161540932842815771156356633803837162927285374560109515755871514890527483514596948918440131580270609153301801216598591334677584624921489146385080281505936467005054003448402432125524536196131354011672941897895600053094119082005097772162279830059735530446943185317597668540642790202591428713826462716884142064770630637537487088177757339608617702549233268196973679851759449897909885271912419613892291767263596937663492647422465998818003126798068615172776270908088801145661671984331979680504064381671012224699869747742301995156719530614498350413599409170918163834905265576430149749939465739194112711998886134089299125548913843175271598328625435741356201912702323840056384009680392822436788824071506739868463592669124936994579831848125159660644410983040086211198417266964286187287482304397440159497432446284640024897314604800813019554463261792299257011589333153493128078879689443869222869766093191271768948717490868192380738411114751778994949932257907281400331356381427095660721401917022842938276107292570360157655666721471493635928065211445695168722065161677381003313131931003027973865766915216205637658458704038357803306234857052399922843508899387750730565076743068980143842538068682711547037012704983941819915615745337342216817064258598182477696336916227217560469933263560713287733544913210076590682751428396925259865445824675193024835985829489483709834181544061709818189639211573985326187634810972820480610418152665228460383104687467856424063024599718284599189687733674833239289257620916052836404946311429530353797339135917439913228749272912233609407932460607590062974183554646479223744996566279580855009646224098655121500431708022524406642218164979641579196316151112048090135975915769088492028513729306745360031656693521175711282872056481463091392933089483434557987940892490575942927122424509156997204837674073476888103347389690823494744020648659605820978829871481956719846422245427589591537440485340978949234814553225377853757358396788625645968140815234847923534503960188173450166433382575450374831258541479331977515337747373983882989770456411110932396636172100945272865600461764329297442385983351550471812449652531903921926006414284790650309196643215565466710945133535337694340113746028143068038669750520661069535391378313588739516780081977912160309158422851278806935629249214927151582423127383218481366246851586393037135488036574188687421205384673645189572380074063149838667262388035017558790332378783676492091340820423980849212053844352693788460634367483272103736469768166058912852130978522659714212493930713657290066203937052091128224831535707901916197014601473451560631878037448784038436829690867602497740892587491523424658104790737312569332767706209104534148978781107409514418930599834062205752594732748792694609220783236136020947418746124038254178669379494246402936527261117409020481430069738400401528461838897496383258216358988017383216261114706673626326870124225262251817498907741433490413102675014205508336009216523873931389313178842376089697867448250743469253616379781455751176040374985703863911832073125255989075901387646443333971590393478173410770193400938971110892478873261297055453979968061167054692075718835143082011223517960798603781026220870644639646630285339163902469014999849181933944006547046507322738505048979566285005848053538828839127398392583620324669838507057821419715512317033603159382255794750971738221415666578807039399249093847269177200343611896999155530148567307547397080276190018352367486727970381197762916253027604544132370515151877598471615614062550647973671269519823220785172826293817736187069946524985877572279789352876426034133503657145406384597754094467646623141238700357590165162597787226005348022759678528884074376319558429982353183876972753229638586706879014473819340056846044476074789030329087653785150380550760175994267415555069157302256701866727748711273554760056327121181342948393779788405892213235460241005001759898334899613610988249394078582321899449532988552440912180906207942251088561082953511793098542283548940681326849033684195940089246729028592394834860121702732573958063445104052514400848245425358286896926779444163752034672636279408972156645187122445442549390102513056595555849216004319605538463223328823400998097715580907231440152064336404571565915066589367379777523873127278970473678282055338965660753414565025133612324053647277335526621008948440278609248356624376091809448534336583399583741151867350393675235426078687347445977577267045738691745997178071531272337176627125508219921701863439277020132103257040405491235568373164346436290368502146002948193619611505639651277362870928595636798695279678233906426915623546071170456413130879926731489060522510916327859292306873279212851372743055317853700818720849429743291157878809576795172884404308084564592937247770022616262489956806902162481198548111003848818285729192548067508991819891100030726701171482413095923184155989176260775899674942693897736991735839920797711149550413683292048501265801299659248902136407641657967105894616566465238010983557020562448603652580067537990022945744993446325086445710048859051492449356454539425380204969261192760315449246926280622390524339972336743065714685006782480519162833007633211616142619213663704849075175240581402485829819997320476115653661828833351383033363539473891814625772258008873230891647120042773474432012011879228430802228522268506772921499767310078712195723582779587916173887943309111207149558175431531926138730298482776734424035788572968051362837241888639736256004481655431163855286558526028533641129529882533664174384885948447788952010954784690998930283287982387696903810842499487811936400080351207357281065983242551930957849740261116321133195169321804617731902019081331549130595681093981016992060009295459334699135905111647187852585262930771335837367471549334766899063181759009852077485051659807468243344327198129936913453910180158706785813612903463336619386523582940963970186712972911057889852806899133737524159836139127508953001939520084769642013618992301861098812318097491808127832909667614034674437503035662761580955102644435420857978872415379983172663453043456061999659723193113640970286649203607062357323120600153617515700257388498347595149953547309090911037235424607610050843031556543528866830777618769940782485923711543895303504199816185503269630436953953545269731273763704231658922803709350634485523401023786648691611886398647338549189620058756585241531926875419131377658817265098448955260091911205996394494058734276372785527725765790308882729310004405786586787030407900748023171439752859174417691130159395081265657019060546041946434652947302608170835098252313143846553665152324498666196675296228407964569796841178169443723735377229325257057261037514001493711633908332386707548592863288419834274482611419255435624601582343246447293393455763366509800794390014011290675082830786875269171800524105931879766051333579888600101967849102630928842866625563150470631231354842802366409081201535772671204850685166303731230591395062274689816132208456516304993620008764655437882987727437977906190440325894331531940157144637295175350391031414072949780408893511119306444505167391679449650985485872866569839754986452128676841285078036744439261130930465232117714225962156690942614185933882867702760785373203370147435733571399347284863943636109256658235271123085051864643033708964041416080293458849039605255925111197505055757650335805741732088371409965027757073594233393860613205747895793007720589929492319441054885965357526789660477636576720614440451638300233969603967214552081744732603585150283067677720408874331089653183876022498898049836704324600866745762958976497095349232420513739878798479527856757683463750133738041925833418641199359352960699632865433974851475848839461399678520263624020799383944325873016085824226298402095077598118295053059742199946426383399129722232682153925891336397155525862616625559232885399922558177011156771827855144444991620971307603714204134284095298917518908844998510856193784316389160779696723559727698209322936479758189908154900129020824127841967952566740028086497442291192035063478315272527574244073780614194291913378151029779014057245828480912172541363870720099018553782698254999964321879200744308405481831103698392616836851500861031673609479581712473557015322834935736935639780479115060167646425683552423555286313967345209264256757244748487103414351651661608273827359772776201038314920509490601750233540716166518427412044743262991298937231972929964535073621919221017430504598336156284133659684286873289884636392603578988520807228122975074942362950828548407569692900561382466118837191448529927725885800112641733399011818675034536004055029629720295443627302676769594877561076451762920790539745356398841836872556851897983251369152136173523950392075454327410341861182335289786655849207219978521193427584930892151800836045719188042371332037715883580885703971763017643317027123622948853253291768465410535769996530244578677101957653457304512540096371525185293104537544481324830400761825504177407760847712692811731944393628841673494452594964919841807466017026291920582576412433980010463092969855626325227215034751491422754851533209300616333978608845803310485978004942275196972614960506519877656556726491779305783022577285092609131838260089110524418161992612313000646108772786373295256782249094974522309494510838388566446453944490018028981423785064547513251928735999480989020151593985285447571559917412707718114783479267461061279412073268677180466434810841030621687976374177941366833791685510101451003624943955970888657566019810350671680086374081581970543451331975939851272111654395715495203825005963816478362227691413782236021020229116913822569766106441467125904270011129567092537579126056739774374498693040530481507534139499844493923991305466274495005691027018950272893003523483109097662536850132441148619641587418619598677738843005982402177459048136014932151820093233808948809342025676683713783732779475311071557231168125324801382053577280145965691857380970246295267360390950919585063077664125210360402014611007209427856742748279057384998003916314924899621571133648477980322017991340309746924291050654932254714656139992191181342962804821257496336263514533949252194097985700568261604170885566095992279911657215810528718367878038904227097307628790826724634414475286982393839084039123233257655473065561554115348844264930627170880196274275824347562326267998542870533770920341679963669536128273535808917795728409375298260740959299233796818424262455705488619928097031763570129549915408626705342809912686065055497338268377151504369514112237925343887035930753270805715461285057785110428463436321475977706076674408604525511704731963045322843091011227501184746128297181839814024300043119399033961572159651009157948066588562162119923875833677074280371730170028302515739703477530766335916985125686661128015358436485671974051410085735873999279998036773545598026236426753830943036837781683533096934299849405926795244193541496700537813846731142051801053489197292731313083266870395620386437354283351665657001579850317913259708624060195465471024033974199998684389851687616947767277298611128036212562620418527672830961729961321159182100453992785913444964922983243981434149157637597144983753481629684405922722191230534750238369053707763543734082171912177538816659381453351051931032409321183710566978421592654232085619396783976136531723486286252694239748349752418240548400973382141671288430063359358354898273834220927486535923521963733892943483933169545896751928947536958158866313151656785898006053084599894025972208932136201592785490610860992054272383045723772269488250596454543083829822814759032375990413175903681175322478388992640701768139282475008137967546891752697627562606468451210384249516596265308064326940965062648838626443919970392370659754324547615178477648455528118634513064561040235138335319586398446882477093975206033527132519873468726883211836693268660037364154810294111026499475346110351288023192940547022085421442056153221125423232059972386256903257752888801779087285129118608942990670679732149533586561610596666552313522611704764510910227440940878666916909436793906410886930985496155150054733601832224419149369038878817848095232854969843673937946574440283594948913634671955987770536189613374656656761529768879515402737718535187865594173598770495880863370523573272473000764551686698145927547158916334418999333719894652957294106235303835092527044538214963211917547137661937663377637508883628293183090128706961073266900777417052325609015568524832836194195477148569746653020384349887279873710196890869118142181578611391709242647458124843678246082947990287554701834866816374814078571140142350740609583275703995641671378943800487532256219661474445730072848694662303471957265215190702677658909427908760043834065531085907537517586242675718294854565625699856833613357024066529734549557008369266923064583561408926731558759244488056043569102194542517364503779319463930701350142803463322201685840227741592388115521711519891345426225154257732209685852045208183501190519159446336965527046710162627022991742057387831100424909182015882258211561366614464482878881136518849069946039267655645082225124631223105871512258363153337508592747875219608151702449058698404982941021850822845782655450398354288610838345619078249143576923632873577767089187739435615096842130070335057982813684489563408462781829871116826002817796682584298558966056183557609595940263541510104622471275035686377234874800606845733749295855452348106019280332420000739928421671637902759623019523215541002363304031146226687939007628882641929688516609505359589346104156545349348056752734564854883225216461542745332828392747600586706636192447786933905400501689998638547284473039931307794108751320624022553653753391870086948102065749905568387291873967434934411480392146958621127017222866405719470431896077438855684910278991890171097440699713523958315065018818469180279520973303038388284115781024741509666520051930736318469500403214922033057375132520657361453853879131618468126139844505075158199194143282034436865726114308198192896572497397751515509929853419905482746595611852962496286765356835593169678707324571762032627386778198705828028196908939130964983940709769225426964066138840852417553884548729969997638946043128312493720885251009801819247444882209385342378594563594678107036840316918154523426097933309816840984946486990621500338132076376397824456060119974488172638020247769541731523291030061323935206372699989760613408514547429822735550300515669648038000382861976914607372472564237410450519220480557108041388002285188325122987484177736913936162550501776678548141702992402921442107880427324303239237428862659500604391770588117662438242143579682770113829916028453080173050733326557650433846958430309190182093600119762455351111333384525806917373618536823382749340312248422765379736923871577702247409345773566498443603956642853642798136245271750720191004837139998450020898651342709655994207775787264844717852960509781390415223192776157400156401875081840564648636677906097829646104935363281243586653097343758236513294666527789330994188587009624041066635044672313007913609739420084186852491237696140905948328576909699416787893676864320349232434056134384254633776434165354831968982895850243752763385481764526229737010986765184395097465024044576418607488040391279070022492147485457922216172262584620881836706673559216952372734020177550148269726025235750941737192004553224986643463500258719061979303638856127364193996871536707602379701505892484085240782350462077868784075684962264196210026300837342837594717166107645594866495327096525360783947525027235308757025122280611661658562162521936941182003325901644427087790592074800852179804671273300522883722550345879433266579345318978251519123410448344096925914346550747853890595891760407369696243947219624787387497326215353355836287449358353150028271536668585197197210475972460732904039119394051352945429826976821540163544712725950138131888075437433880273589825748579385660944317583204716364233639886657846454359123981838259302537194662709166351718752637090187078723290909674716746904428010643026180278620023070312251871791210144161260501771209493433400192203042246818108898721071841382446259481768561820201813744715520645413592100485907920685572993284070890064299946800910416982132946879988953852387176628613744938382173652248331125488472658924371669718261994997997472540039068179029487869417152017001967178404307549282545082033218043868542312287218064092787448842659034138612005436831299304610474666258865093408165338195089224783818003968997865702709859872008550200262484470416822761027297858432307178432010272745774981010999706444390836594476560949393796311426953329590559131028119747165180859701463152850376049466391308427110669290261702068321823457757481524938597676229568585601302693107298628343505307578488915372830657977365094888074848581192649869040663564040442934311224315435899051939249622057292663153734772483914970498380510509863878996384247001002344111343080248165301772369208034480516051107746908626259672235831119593377604513858376703813535045048930069003278904082261363402484014393929717048424587739813540104869926069318384934252356460096909184789600850097365405171405203524082189396714052561062611001493044616502432529881670678914985647398817323102247413729233600533715151181201793953324042433457856266288577877978643423972462197072365364892240168195505265485542113786995207448941070572488627824404842876557616493300444787049708017863545204772043928967057786070017634115868284846608556502707981909873331520877204655738364046778062480560354249063601934244509373897940514831163889165480673332504805874331306559766858412460492320950238820107933563520217913991823963105030021099796706119568019937515977137574390273058657154070608299814224068292309078120531045305223762548744803833863991078632064979784436160535060579212074286520379262987702267463437564929486329588931888361249323352803073669783457230677315518979796630999946921208781951088115864726802012610716039436652224186259783434142909146542694742390177624182583458608141174777855438102908916100227318484745752483438098110777077160489480594813610676577897462358658212486665363971579818014231126580476701600327536608934780040978558973796752672292609262994709058250301610989401087180567370508299826787605220947573135449394829695709539279823095272881865176073941273810417369691704216555513256463608292332387480944282680391650964633786572422514986431265483677000931139535364903916213130633227250761104669448347935717508387305771583350283595609616864095610575190926909927759061581818055245606291480295643482822653569734942677564209820837130205864788048723054364465828755792243258452262050526505223750137217906779767011128691771819160591553408289366425371102314083107459778497542532213125624052276135554473114966081598364712105958481908882907111895601216722267449430939795281072380596743993049765546663951402829352428331223022514363938584762825467153406550800914901913267142694409410673628214920996594134092792996003093829389746492594964288838207675248519307095434832650397443934558376820980717297952869159925496008485934480414333341553997616635255524399525538096280523606755902244772984947499959999867017443562023576115124023522998404634290096052143736317565405522539854440040281111426506378626535999003491145808241818304137294751369886159219816961815176163231759574050013666338678490436015989454854642294810052812443478603406815700979886369326531655877378034977239310316131978420805972156193744268643025997440589972326606649944792972575119081113487437579041765182781148539124378862564108760678696431105659087121360078479993632377639771377876816517084992084252228277960902512017816375556322921992837162333075807139445518310451641169860670226610683527921799660022445944298351085568464799282714570040914176371222632349398001069787413132282228117515874453991017313446846061414358177568890834326077932486142151021217142603762854217905423660847596982870645872174532494194371339784634213106178868774696806878203867493715275132098301101087154450945980853988499722835037797871577183636343270687133149140098508046030773226752706570709359644565309602525782554007493675157393237024517444575556063720530786291461256345354350930830876785599929981479971744804563821238874108983302149364809884567258455703222831424970256349611960685496182952405453974036109557683731086118667742993005820741053574576766456355935858906256323330638717458005079364989962667278363967072118167403107710536272147670885300710222320417040217225115939555223324833012760467939761505224323095461015562989727152097293728190047685243067664216438385434913029275564492554779235241432502450650508909379797080693921861659367892140206470783201132820471285577558328845120385274728474282972186551682314129538056797359091454523575755626192322518866260759502051258420435813645701138599410509997939780905540207355596826406320772494796557220570602645614354830248500531084237955347719885209601114897650849336102761577911845211700420098426287615394216490335302832843567305100625243981147946921133290655332564189825889988242781521430934216272793150366708433572043937733485489664880117086480763839604607524868666698047519043274059557968660522848113863887691384671683757425392686765788931554092256824259347337603694209629997683876204271699591374478176727361580753413370205283491240187507010232504688373327669684344096163583836760216303066924493455543346031327499216711598493858666307601564654450516798924167771845797653536690937503924444743252225992010947617450971880325643810023836011061171497532674026964369528619089648702454787949691657447934597737151796725095998298727992925625652253203804602581355948047852493436640654452117210240998459922202630176533963658068115263175941248630411978058989707531059714132290671615077021875636249347914600579578195066600673195067913466787447845776299201387111437433700321297461411096713642745953475556830238252684566552413072593495268441392506564601486259446187493291673551349369858158257404208787224732003064393588472727041962250380788301161227713738368074053307837894572528437657964980202697958430075270946206380612168297616266298811632857117300116940096238968650902158743350687431952942213927197873795587955223187037892782275798859202276400944938380407069838368033032807376060579379204688772383704282991192900905533793732214939351802010701194635990299303212530859766898860413260761198683568404238076725980227928850137460586189360058561326691648023046162847511168206215957742222755579420020931425057271968058913834821701857451003224760518054595464448098307655478971978401074377176226354344065642781589947363484385833611438007926055949720866007975571355161265470770476918145831923540743357070359126112902412291136703743154791731447417015322234824291151658891161842987931805968010112010869810022849927136895747801438739509064076443386253372144089839780861779299879837825942244822594285523459577053157415950249083073493551121757466355107922534526585839602002264088833072173972170999459117134626532511412316407034983442051483542668798827802478982377990790622502194376932881509896892626153335178475058805256266126950035149135065772599181569307576130530231861412755644727505371879978441380069899303811200835893644020327899660154627213805213737898988573952090489819241043981607606261154876893141490715249446639827166376569496888258798983555933563914039020648079486282829531016147790558507459984428079094411707101657852745501162095754656974395010318610436935248602989403988155298880991174022424228541065027614903541946350491918199208913648898898434773462670678312405411977387492518472599784692856486938951136656045992295109349235632935233099437606892330090853654753424101880760304949229558020940432768179497032316568731242323381632253982202679533133443413100612400474424878886574002570369109772782149680981370212667660136251160635390854149453126764363041177298542282155557414184052980589158561709061940619143671742676939121959825977512176213295897590715721367294014450757075841633634216735195503834483825236777500784465356453824188163086315455472044856969058376837026407347438616116554322154206593845940169069673533962139266445579803771587393981374116062799626679334656417362215339503751365486386137774901165166725908707217707628850557057287727753116751434587513029267831314211967782073824878350030631192501934613760743908327323484387846500550182102050111081454095017932878618564870259776750815544809740853925796738721692895376296366404160673362322251594262255318328533401386367232607938251004177529403967922168269183496857554051540381641347260192270348672741342262868034378884638440527232986570741180836378350071743525592538994319160979342960246499828044213340556385942132522943227794392532053199770747961590019480632881960127837247537407457747697305278498612465998641179476965539541310743583673177780040832659787711458137150033887063444056374891717289703985964182366986052399790986320066811638621335297515853666613241052195093584181680579220134583113868897404330486925676123378398734101070781403597656699359072854468628606581372505247681252560258509252915271229839167314141318333617174097858423625039046345534713804860963438670160933144524910234344510141504554720286326395488932696799176081244051678915540175612047388310242085449422081945619264238083312402036724583436936077783280160020349110140363376132030270680743335073998852666319538688220771370818312986187938145710428681820321531479683030382770585538170138324822087378308876080084276506565968937846096580981307029567176732230370096881526541912616463745412412015239708319788658897507608316262504026792236681960986615293768432409129987408865170447662696907370405676943324359802279327076124584140899447550568653017027073683323569943515970823484796155022163066279630213950557770328427887389215773948319425097150819593044977303599417232822782727115362457520268906309977073184198487924646007136506378165739234027284004268245607452592036079480178017516231190450379546425879444336600423101679006834861749812434963574751299921950191403125255406300319997448163169149659281867481137036406588604762634374649682138407870505775674313167313634400131886884096909823298001927289376923697753860558397081304767874794274800664333337066946256143730618774757508062770443593292300724992491186860580551869827816319129428777494842957024711571198183483828483747338045590481405238113285898660007670370434518100681939610068409454329315473324383259946446529712927970077369677271233530687875991689679268470204598011812952716695484855091135122246581418975854845196826696386078566824814400393050295949943524886579077347074840288197940775176038543684972595444704576362452482902411278503814978581551051409820225441948501445894564146415379808163242060834844887067724210995901889939879871428238343721144559541630061855851502031705830930024363848615398749691875063292077075257765355197186667109090108377381969054459401261761824180242926090179794986994120468371016802745982117643878653732068906161270946818339210634034792074531898492101081055221997516580713720308244950318750008961003099987571075489554764851057449463002924108366318573972109913992196809567690780594993530443681093193168848093160745311670357605140910446068638929292022196907692193800337547372502883468193783773028973139748187521306172854151313279086178384167061978502548202267353582631475949248464251827000383657028254924443195341717349638174118281541231790044771721798971217283228446401864930553359249480604751384288769023826708439693193421293679266156641395665095662578852482278976374706048127331036503134822699858576537839892308491258896950672549421650056961207836283165684203885897909554697350308693955912915238284601460747226011631531400408438122807956860840991240196710957046904906019269138358431689033687914121836109877185126621554004266442184666767589372785389252343818111829527232407841109655903717449775124662592283107395188021215205924808191144100181816777401693036759602041265263301246473769132433654584383813063864728501110011757304290885664978222447468644443135477265123976707283226616322991930465512511947251727499197859921829164767433501161841760801190623669381898851526573854494122684724741301723842195364247509944520092883555796049379848525149067032370773028068544752187290048386101161080553099690394350578573649401128988292435568367229714655144805261135634403256561224393742676996408414553305439134886906903090127317943753168993079968843121153578769254487753834195399736127827238881826340406101429108647526222291489226016783075824749500521630994193935832799845508177387716748583151565608756253795178300074079355039736040165362434987309300273604741912807514617519551939126074561264980694292266918205879092711560984049539912224999074635915040055900518056988365202942225515075371778974310157516865275109613839901007155014394402055582915334209428283486768813456008892292879019194501810180674958457740913921647652952435898141520356172196772140798022368284227185805428117642385968423634279098836580024394232080616901457153291227580099322698350297895656615204599645687260885619844421311721745595839725470757629206198517225158181360464333238061944021194480501239934748342732814098217312558651259868472500792456029743878942771034314106698405083889998295169764863929743288520825596223886093052931130082631864812649134175165550695348418345838262248426261029837793257940603418456396433596092469602393491447294338298802487127173960309768768679720305568445589751579703787853935068685636497220791757481671739505571606111437179793216535301367757188549434691451483519665885336557198671915702019488540865146892392973993573136884597330697640001882182772381633884320019373295982993417199649574491259331212814601683932026149444874828009973537025151907774769620600418664809619639166774457305542548741760709798980197458596622684386504728374946723565912162045110409545391096985712351050897535140194062774104520281390478885080833655921068024813858516630756040368911803847997135795502946656417157013446494834366331392529004517002087643840680365740890184325013016524422130551486712549764328047495655626239887681956628318929023625611924282331729652528419287528495020188946593120684980078557524130952634414266505865155503496759849252066412156741043202538858436855751415752375279127020533762508466686044617082534064496018897471131733623822518923543908933965720333298793509886652569895242684436581808156982878301559299936624985762729132839905250299753180495970035923366162904399079518067718836323618519813727526738732566456059082601273459906988851004415336709320404163825799798802258101317058574996982429757706565839413670447394763099013418631742883795276939372544173388218082945809780122797642420691059489722649287564195601890960141651563880593496196618686286226340555493276009241786430555245670243404986366770541441334746525415896857001147635634082911768581424408307566342541759076983485473267427982540056142199277454221799870691422607575860492129676235705882956802065865851528862252321717781855607576727905181891539963841561014360875142492926706190216306035493882908043021477787488159125094747276897467871741226943632282338651325899157088004401772987713333243505146582343924124263418945282582083320489309216774785876581549082890773206368998556507871553496633701414496783545189545990397311817188873146103967551859188329042743666110795838561813888956578942128992050316431957787687576668189306559803150011011641516094885692632052785351431373284986844589340584485887157132988049488853310715645696414876130669108537331723092431248442403716943876379632846276382566635836310639719661571625440161161565414381585394612249709711795189982805277367878510612274963779894705218610867107766643227229974344569792221786734900181117828107629172525524175016224628438366410353032766173490171644173965457294406555392032096816103264258633213664882210189225940243126680182315550642106922814837662364563962695438138414354269886146522004565837478413941048580768848362694128089397238366521304723527942111713795390796727248772948392891922960884829732753582639826867426753639102425893388113339467954529617053091153091071504907880936986757059328067974575915349347018941118413489425653721231672564729228522060545062784037728617024501073815249272640087555570116236000604020447101515081209847194818871051642541316711501399246526304311157510014190699367853905028075498904239518074665164039153849488870421466428300832616855164027317099602773112598715485270555671814506525041875024368787066824509156508286510480419007072315308307213521630107308577014104656976794023865699102587729428354356272057413098514618332697175377097547842018925100707476978598612624116301818460782284577984847888291085907728464207846109488892488625720898064559701981050631739622117356835996149252244709262696565193116035194244768696208737657461372248728979672202540374982193880418728626644977964269520988085386101267244696225450231372198457623025452732690002209185969288304139073401153748531857173777806958994429877222931218664515472997718305811584870742850157044699958416083200039068658902047884480580945947340330634273426333250228563472886260388393214992443279605358186134582702080590211216394249818828129155223334817478325998207258379534546418756951706354034023772517679303324741126130397298371288460515470747632909409652489935210615926247262960832185126494215634032228461379129142969286296297696562636879112251148093643478272389218963670272513271573142417638196752195591524213728999387151337432567464631112536833196790303689955461201976099085906431170933579441083420184050019997338767397447205085922975329690590844181862658494303071368963484691919123637251383132987453566093565484419647274942483048709329519281067498964099618304853400714111842670600252492233479158557750643810625346052669319334987597210040266493255928165341267282452199288001719158048832454144609621338953986614196215746705328754683932388021027736578548792150187525263529961903313713425072337014159674924374727092686497909921845989560878787292069292342294544699845155892121350399480924367518909628235820717676669207298823979249530444843414571444732226166157695853432870316288309713872086536221779656016688738924235360143709907911678544782182247812194341351629634474234062451720634109781377448829511049824962138000505522386003154092060931273168197499749153072607693397691943515598444909316540330079320251434207466662096481177097616118274927054094635356128537103020633021421662278728369336636061675929775534897743552584083172124442761032503762932844099091794034208248570192987539173411009290872106721536113702755014318411327668058202845006257841887688156439899387902057845912736082873619206079058210167942563186652705417581350626498833869244270172847207202418839251327035683176752862392547123551995021509193345641281813678082549747806918641511744476800825189377097938131928671318538265422598531948825731412163157567361371660755937204069656941581270103942729187156763184839217451055485541551229242091098977557677764740936565224112279949597538078616394726626532587485039999074456304123365540277758890776992195164525259979762780870017250720889515121002930108709481959965838032398807940070869985739451578672191098628026560569391386281744699574012912874800798566533809187664358335387218788178239320976744031905037439283897927809130477838630521288679149521176922403646358696777972624720341916012651290379411226540236257587235854116477700882093808355712782468728240515635764172113100782209233634054387839564631143336239649676727421604682257162950876353766567713160154752678858550649119857537723970877755490766818485917869086110469426932147450288729266989876076321458098305639925810730606137055617643810559135442906186413344523015883010411291675835035476092104444057227759411023579722136171849814632224816875234947244739594485752161613393403214692335861924421076451084511709978465081012890328561014174791432073031449898328849478182599380024117351446819918842999982202839478816233010208303051119497712815206030039975908657576906087281515923931093667813295795318168554308336470557588338680779052960693191064410376431969172138510175927078788762816382147501108822486584769890528887667068061419580261489836108613263341104342729853280534864531152676719512906110634942061509358166133952765238475688498247048528321681631653304928890903317870048430302168290730978106137482668191061182873259487746670065853179751963266581672754024013188501629668211984978756150160315683643275385427729100232051287136886789694335654936186806713864042482949683488600871355678083533228530421328880647693934085704624388810623651858341293859072750347938960517484328834700381655747906950915574224029627842758062033408100435513624051209716415784570502319104383231555606197249599393941768726475820844460839623639265816558359032011736074453669238308226716833154132059129790681018714053374963760863807584243673680980281790793007147163104671673644433559724554246526968489314428410209679131850466508856151785503343281203045442218907533216374626151837969489044916000881663602861726970358232278194359166124699654453964068228245259118420328575746056906644748394038350349304966862159114877035705164595845019360934766472250837775537503308622615231380239622454578276464256024354679233002601576205725642541606618249892459888641832465940537934793401604593886958035149567636436424556592659017264357488696321532775108672570683414196107422573712668374133192324768080842642351294716088979430607820933686920910874351246523187423755026594469287604579008022415737743203597494655201529136742883021102353997595658144072699594982515920825893821037626106069062408970018161703156352285858023377306766682437613911584692745149253009766552670338523166209595164444493809979360852740525523833517358702411116622180463077219260583783506942535535066419502490173360204000543147583709129733563648464277518785648782755851969641123432628169105221128945329595736005574148795288059752780199889490955161331746630468785118315275849092189513347140595447573980058983047534480006553004553661350546827319873948158651637088470821341105931125441277124096551261711907111815087775586764943331348336949177433903860181379336546465976143612102758064544058502569445975175594816554282418516432362830754626391986850848752016645166288680424850156075956169469233302467891062998521825480760386050100426997270969788582410664483203280120592018208152097692957349134062886788703605513096158599437654495296503502170354348548876702092472276581543259331474151964549341677188146331121481634666117264424371013302862454611780614887056117937815702293615601204780659489940592999826134779897273349279044882712472168218141842458901465826726521203951870274814223196407576790117347122938422718905761974786368366542838616926257765410396513278110168558598379507787268444479535070899076853548383773226371988798655676162265648851472702930170053220750644284608697894491182305248995066488758350950722772852328574322391154388448623943342002352817479419670278250395414988080432373520644186585312768395809142234980121141705275806444634114790023740576111392426217161972969062371932157375830407501545407271181479105820448128314229038946220130868416152114946215208443412422109701637306352996795482363722904290329592242947464090594899112531835037060671307915898905389424835664723935162501957867980510267692681556256149663114615515825750156272466751273598701814499823246796324698198072724333484840087841956867460114295252564897319759516198144654627717895173645866828984988401647838823779694469007548259891637865651341429972623675834278582873491375512917125121185226384594419240284664618610164163421430804598089950260394202966364006878603394879364247992780163832694088588016652237815294353265964025319792459486397434379394821849890988534165642688674339769062659691111660079113712734541391496943877500545049466950083680664201816202950266344244187441366528093723204769656216130363228152515975043401585703129534295876786121518974030237763277124266737049225127917822395415702982554525198289382408494054293233078401903264865962368044953752841111172511572257825361805292274568768969821129337846852094036506648834844252356317177120147201855296204674543120273475555601458960275430197267664998768119517197554867596310562496953483718192024927821132464378445748308518106761915677052498246028701832027813675939506038206736482393902327621046120637759007594690587044116726681597229626943674318626798526852355819514994231629692712252790560611806197026111018003131315642664040085707964473599849185447786255172819542636895342437166649450728978526212236081129025988036054998654531441346864846461175709846758817809386909242238368090140080439609379451891170566861147319403857469164755198856383274137344350780242013693988931806031522485310982875396577031048806209790887032159568717839153954360940411078830667671895340751616645951215909482371241110029587395127252650173647864111088767921882263011566577719826969266444777297597802065429594051608040852279155780408796579708370867586974338763350520958712385582476409333054438657797571871322707822015357264434273180004684242453989738978269227984267016792956632844970424178969644227691607461674154746350302243738740586839266194728721999983014777088334651083731225443327173959680707996809864257746170544030320498350609942841642150833717108556665263307209362599103508601439956204136218952610115963349007961826911854449416131555083758028447848064047812278884223131224254971643452572709339658480738134219079610873631842261861002705972430151729388131995005339195247763021071903564762277621610496340886018132040598951523841540715136684523010761551370503508037240630975370093535407284582020179111936176136401566696338627926042894721033885433126316145905434724204042923668158722444329603174918031466632386360509578107016243711355420677902071526084940424791859275448191829382547927361038939746104415310101381847004745216157790201154132335721558298422991248204661305137492340362877467958063909606835576717642052484314154646814764520929182603571367149089730947977189511482293284908903032135378875792893784081792816805536639709690665200909312527669910406812613319034110711662730103347644841641205297268536598446011771541394755287506935318047428153285561427240563577682087711018027591497913336538184206464245689981015705070779006289902269802165034517943227707243656718882880556004865911651123907340818458208020084506888076762396985791150313841072274556257965198286021077522718782488221004087826349983922278743403331037569627583364664693200243287164140990622208513060443925338142159992337149752542837570995362348453296602735869280026962845243081889838507772004472147572248556719765550892726156774740782870684424392128067020626743820356702404797600958632184012858740140662832214696551844730301937862017386856809222027459184325853685695229685271919801872822818854546724181810453787099014616510747999466495571935682074315337512287900487432705352653815959663637039631251538890831265108727660558038974819229355463440087886908897826596865367098077662959267507293278085021847529300873850504477488283095641098843363617752006335265594875928137477411549461436513311540662058522130614505076706304387280688892089019967239992742239460169021039131221924644560966299005124002784164002769038617819867445798051547721768794482805146838301159065257665571250416859277631004527198345401191966557752216158893247730740856969850969049155556078672794125785931287864595363040724840078277598155618424495010399428790960432203407413003803148953614926292093192286517258986850594709474631367684683891658766250102561026461214377702089219640684704303893988296480638186128322127116622231369097435794753574885790824204972369624600334369694247889964512288129567630978372465147839892775571630459104618958051496743813370558608305978444505964536874661870344818131014934785927218506451201288985714503505085509827325062370204512841894991956325112552359450974548962515934787443893866010002026031848530927817902423286391816630014599471634020017681368413920807189990662016670077296672387855919541565829765597495313069539306863802222414120683982819557721057307239980515384661540164244678232613291107829238880738635704186615570190271968924402269638523755801688640234262818151488738352920899754089410625278689444114144823271726114514936507106904726817005247876634840384129697646960841003270780787046864927170728407593199125149951213308378423362612025430872420163663457040571269727692616792214010791546934212845676177050571293732743686402779166949579772397442933876649521222156220505430337477633211921840983065736776992575215103238825134878215680254339753511249985453530235294181601706404849596603693786141578524553780797098897854785864102149183616620141610541208573347326334365120034596474736251067396719523049179702156973006350680941090422431930540121788983556842528579251997814173619836263010012932053330311351129563735980590102760343405390154427788819160647307264967293068557197979074602316150511229571392863029285884139559422163045263418066060501168479254955797424558524442910366026873103111106945819330122223618781714961843603863751821656701278915547315840133742412771066432077751496766384793254812669333310884892843508534575870165892990464732863988863104078421186602010274459068622043425435229252910988231739666288543874944990908968159293136515637267265040681836555665720942945130014211577029933212136538386061128775061073233546691652609103406811745910720380714521870000122620609587465296063877184630994610141322977470616176842680864079930964168248478206646999583988042653446061846244999443341880493635293724137176377760952527168737398293669084595319531581703817355341361189919404149143961180057194264253306529869157245333729904401305796610711207624823356604064120462431889807263455875629165243170712721445894578929158494721519358854764176969973396688930818847812447000370579939733045367975781951456638240806498388463043052305265937998464303265587028507235321334322774709417020465008160751551862875882275430153440560646733808148458984332372555620956123730241967164241028547796448602662422107895994456433597252651910091635233437145439865944179704946599807624217229642094753730440170970876895632378017932501275533458307326246225770745550412728365378141485794032014872334823452894586152221081176676081909973839698499913289698162821153589011426651263619434005054624869387071581488535714640775544683514795914864738580618376696999404906797773721602762440292596395302065380572256545146872383662383637064563494610960002392020923849601042618830779222586033533279962706731686258467251797923876357626852564717296204292677421839600626471456287500952379124110551475316773774438160681829109767197679023284710851197211739817481917550922468831649995394816591110306070172712046512571785776965507213079468397806305286509317053969062780618589535945705316052610514290597633095480607289142392139004893439405554999309216062051708844507621031159482187772615141129061395993041598544854554221741052255201324838828478758932611033754704708980561225597047300896627756732121718509696854661030755879496863598007912359044172679309925679270970708967029204217944424398767318406195458968734869765309166388113086246037600291968561553814198317291181342254788488457375021522167804108901798075980485121743442312347128232897870670895983747859302329332699011446581260672241875192078427407923899893851507677747139852626703336245288734099827323645055204696506699635887913188942358290453103992915750046815655063956829260466897557967329228050342802104236122417251906658616518333047626450087168843163824561524369652275529835692749093810447838034680680151341730964899011534024616101582796062497442714441254117458720815349817328076645880313431170179358729633366050399143682401951547820472055983551455851260493470721338777694288521605093076265379657251337727259214865651312933432329244297900182275152605470358352681249941685306808527791255378178532501987734564579755871031422945914761001383357409805163222480876334371604646429020278626879396119636476895818575096512346385156524087967519261999667274358879166887589146468098553057786488993988789947824498914421975032569801401647648893667102381521862960775521046750721649762702154650009657651086621958312070405828709936717498608433581532178941145627630280525866339183524804849174287748880567920561660688025502883534681411461164699222112626782905762816354782556047772731304526900434873977265033310364328505280541713825079554782312181656461500384363794803586863881635734227882965133443061041228263087866128451607238579615390053708068812993957381677470155347694196354547208805089972198993571846999885663117049864101907675333346707735701882296998827871267337881876828754583990043932471211305535061941171295965529577949581399880819134179727937341919079045717727322169057628327467548590696182788320358263603885614894001004179293423581781083685165954030807526650413017759653660955555494982637836086301147158257290572191233612233593156740276802717467150014478861727955442886502011942566787585692011346818070306091749803886962750933688946692667309177332514754566245088701715742350910699670679876733690764098978266559566598736643730808219131282350558463602038078786959980832968344490981503952726389082058706844159340146292202272619601419807787417836991046518064017366891444448536518567616406193629432892601355519218243153129883280618330357806203228665700513715316247696290186181428845784275209910672912711895195638477523608281092806363923597681653575469295480545385451923577562270382628918106935467230314270508914341441624051197659896083577586650787635756561099809356145040256010961457609953321493268306419803940028305865180701422861158489486143473233536310962235487452800922000682101667683543098394905455963613457811300358266847242585680084199408528317405881198313789181300528339534147217844411641719792638354379243520089256830475961934979126274809741036914942958943297750815009184335451680378234038336057790484259204487284804584782318210858919767150314968655713355917918286730824039694126346129019231501761198901446104111871267579533485681432354182692477696349295652099887041767110051903051469720644537790614142579329077634364888020172534965068975325315193863767339525460754430740391287466440337182765565225565314464305788996144926266593607188767359662779456810727530209333774839736990002625270027825373103956208787414507548002858911927688377846106733226398912937869896840552735985942003600907833883781125114310776595687738376922835422710356133579915726602870323917837242880484810498702377336342235110838538065232984283779687898740558903532650559319252636909377862856632684550822306615735599137813382987844040011412064167445963914629591808909988479388770636447849583275722459936101119112218464234093463747163242433206722716241095075623484936873004944599066086032513665225713116228660070807173643162545172372969448398147970923022534309973481208272974921568004798451427977728362740430890712837851235915125405214394501188394196401888578536292413367498612975746849008708669987664697901716895633841876938994853767950153094581308574470779912835144168265159188141518355109350701848367292290454981110787039168275082827407689350716043788324452869018336085128988300258715943928598424320345876772708526244680308878625715741380812942980660293368363576437880552019992496549886585380770390014372808220634899661110380243754467744834166643810979098228011799403117282184218192995462598872364429009501205593115984165412135434009369751149186205367701831477341028892892751226410111957226248963381193605718027500751339847794361697337923751233067701740556965119413038834037894640017955807861754217391796471937081720641308055108968263976867893259234741631416468820558560838360997521773230066123868899194834277507360937123562303927213471040051028960809661299028093293916672566054065291586254272657811475448649703570574397197305873192845245993230267237595569976954727781285305500712709132124455945010051342420288306272326320802383961384007860377476731196766728034603801911261798038618830110378384612239015755041756603236745154170127866891078229718052973440397117946436087988260316229262397405625258387644583025027897941480323870927164849277012944927546346951898409984033898273830296383650387687991818529463269253361651654712512150913001540866155951800920042203796184924308061564873613471442305886223193905849690666303967508755749174921364591519342641215067252988939539515666673984124342402021109932196688804727143498090184019621377468479195939998173009852091886537419586321327043435629375738851241418185796802659364993782794568865029110265548171139118393597538514521703744858156269164383074441451287444366889317927056144710228883067218905155742468590798637281054914913183941017413263151180136395069794001385191376988348423827962861514274528776727121865708386181028703632360707513831250375920566885803223397897853313364654208913694572770723667451483387000505350913489091381972666273522061099512957171702445021400853318951408345581837108346761998770504596458087479937702775532470359464638195691480895197422860319043279177908747202082498845858851009611750465915954951694101085133387098761175953532459369445303059241391590884420527898492684453527448185605156961986120521425009568862879340283791948904770456286604281779617056384942920304486628230118208388099124120571178756218451029048426294481933251293414523423490551195694762674000277185059251298903172965563980272208504727125596215590025142726256245632508896262697791284881474171614556234139730969548427153301221764428193123891920514284451065193407155262856689455158455275198997345054663231262472320757261404213218047290445506985410345545003978249807404997291157438518625198691448754994629098008015369934992364587672548999524017074983695362448718536992717695401100209399873255861806147041720770252329504894187205733870950955081863784827865262227185559740603872528215575194456590854868406334816109408618832337740882406649665733427033322686453151265319914069005604128810545123802203330398170955482694454677789102835177656410355363720121908435531613448143851040314015917714578083519160567487994140433467799413944634462197692884959378525663397344101061635876995646161504304342592876404598349406188086308403757591581616159381580852572438006470866370768673039095773206745888480787037569064703772599689919943543372693290509788960502523578502669019949813655787356150746648075503469232380863224620945989856956856334129698715417892854385954781274760923509920519814677024626346304803701052841481546571155320538818966396981605250875523897456733494904077050327161807167935522569221839564927161223445712509766038917225070116893455902410678667508765174632092088911224999509704414943922251820453318591263168176873889915581798797478632635595942141311531463302772034434085225986994113174064786271585108647747064959095762673537977000938933507717540283980792016905234995150563185082170556562577909321307133841017949287389982171831436727600476545618153129643029231431978612203768410069085907235038552975736186805929106860988782619788968511317211766551118107434942205390291814638700981605513346790558166297567570670159840912908054268224662798149907074256820226496425601456050908116466133959652114151705177002588468784113489766480774354828181991836637558921708474796910575565594216921588608745403132283951873240443741492010254603742924556696972828132559000785929275070810602510182937514429392624966770424887186108349755257280442598278207301785597667047823809004427614081902385481333034764531158497780981397947026186327621893670787889630490144267395156785544395779535901348966918908044975413601052246583923549708683954812385849757996439801076379408010558342224188643979410567831404669955191941310783415000936373000485367819990125957457865643015938125562112397311579887467352090030908609514421016641181044156021393267734946736415397161877178494784117503191950285294618367698324981708981023027172985607641131561936333309637941236744842005320619804070673154040473273688786055413479580186870158860488518548589172127898769075962874324230076331087978068203534807258226927117347039972730698988634265543879053464811516772729959485049340928948760197162383211964463431894351305955750122702057568519884211790489325471028795743848285591774747095564858926581814215762412732241473060234075932743308263585088245638922447897633255061771697174184538897349841226667837184309799143429725964132855604327553047026899856033985570569500163594837899956911725662997956322278902755889802412603965751057239607354422088872966581297153602590094901041153767498301369600957321794566732676862947152644261381390681574777771314594962662522056213311794639765221179744574531882783667847875457906765393397884469657594678362727854588133429508711265836065226864199112729948314126122517714124775095646717263309211796464097651676163810289497945796608818584721693342591136239822515412156147770991510023246327639400690674039000946335697899212030698829857942452166357715673235302864234611273467644742994538872932802282238457222413378858040508624273169052570791882337267980902751590413559746916263712705062406296250366727741554030766520905814211149631391472743419884444556940157969236997450415129232729974644056981607864099277995140149444018211567205441726396393360932198415747703328298879441435567514083915028743879762045764981534499120057419998456038306874380395627043329973754758541982547899462031275377577182817992103562382019024413642656075163287459553063542207278732807651088305952291469967534655062192399144619971507589219288324831668048184647879240657258410404772835393319353416177964011672230388911333361745898434360947979008650710915230761567404641842878200753768312033065406292107761989076106797959774506399711001005967335029503117425892731622222467586650329889813092500377222393368280918158912528964114339096857932161008810996778803018778480328323979504747099888384835621837261502262785863903415220213697558021127796507385381485952614523426593501589883198260265382758106147158270335339347860266900326881833067165825633664323472676392929650994454277925662329849511818990080494904000955455634242726640261361562663992497458699602102497578874040138026084468592000491393215776497208384700519211362289138442535584407239774482290336890261645615207828635234123786214367568172451885451246852948575687156715075810804990202450829810695762970900600706241645692137695337117453360653335233085925475202917293357123282624162217555063708953911579348512113550353259574506507279510802452315647009350041290322809866259895849428261329372431203558707640134180630060584255967220776833640035206824555868939993752633309052580599424284031776897051386098117875610994971487358791610899941972755430655718189034845136082194655909589194028670189040435267787046640948231195071336510193875020259114606261940733976903815239814164680114108913043736267944654833133110705565822503785795139512559420516844004677301529687273170097977400240818112926219098847559395985283327315136659159886594111173593113937175411433515257358346357723059952635607988241635115898209745467475060522483643602733152281525847315708883248796640079652757830137628019181044821558043955814292827494695528090704256710869357340098028089075625946120063725638207822717690936286125145093082021445775636805555345482554762406811289215290438716870199981502251905261957736885292870137815848335796499190647312780084964426257355260726448334988897865070094113135459221621066620380283958977789178050257446917530120069237088234598811513248436679252918638454549588085547362283352650193901041197219973409975760136919088807046909231848123454787282237632968675853759793410641957629201254885201310325274208862327967314021598653376465342069934279453893862429992102236575877617597405184677659529662762227173559082936539056205572580500925153141465746050967106884560496247839556233203893221185937411119757046438219574215542271517118032345546569152442096846098008952145277760681632183616960233691734211380985079108324317204954402871872120922376181823935939912296408017645843344044782939942149857973649795102362213346518840928882555637848666231973602456196512974733577728010307590336931169775549841444072715217132030406923235796780148193366689997451981365624536616161523723551092098865843846433885325069440209430803615668176856824901750168871413831030914230679539187233725885843763993001822633446450595964700729883067341294000560374175929824506848331710408491808697774211523779015406848658393667962184329925048356596326497608861440287264428268882901195488763602395121608254777831059523423884961657442057961538849019428700191935784804483196772797295124515949343227335214552781637324463706929313418226631512717304732635581513040452337543490613528400759203584441328923238904396333132961654519022122015443358057936115711732371759034528819802083949028864330877630063837943859078515414700759282624442850220285088565133594988107503918816081950882614214163367635979815869037149322549604542505055125617892618157566233606093007587738989754348544404296818585505673743166724813633629771154362520241913529323102327517890684540427083830405634477123650224642652610287463039660279235296027747688951091892815493947792473856119767408767325341050619587439202945840943079743344786943610292000062990312691073354723758594496271739513051173844612393865892139487215435660234584141065186504691552394660772658871666047442240354792605285430378828045664531866727588465380727956581534418700910711429736771008097038555031666223807885999308355120986004958898582825407053015743580378824148413260790686483351532739535488404381904363600273244309877074965659616591118868314232817112449765695623465808902001473145126450492450780876819749320829119662051992462810778514596347988612973958411774130136519511069185583704976152936671302098884230698723462196160171993464490512997842891233103849972364390594156337301716205709994469679913559866159204321580820747312127889285911509158052034735699236478813272119046376892249414458487873904618129760226807558765688381933821096929994888998520585877495906808859033234444296838222029933964173510549531396976769277158098104642086728222481480280890020051826659411012604455908908078706663437145004672531623412289703250577485428940729320727966937160855793161746399829149680675127901714735781047137382525795429507424302415364303709465277892738610599450313635446516949927225593611706522093079905919362349095481649132744329347328661215414036494584959763426666681204264740150840423167086282209803657667222346469575501022020531914706443424761522601638024972380769121278602512767845830416377573521109546797486165723445385483470358545823629024531781717289921753978395002743180297814290117578420488524479863942220296064292874002251649309066881127579541644984812052737727069637847112229027102833778016403714597986359818500048504105809285973966650099250798391162575978204901817352918892239307589018810441524716334206972480180147964415899030926465142362649046534352315334544800534435847844613039492329270091054158121558078885513457414526637813205008789862017724423273326179605107036394285644898182234996902304826207891632985054290008623106646362044652483646980605878089548730068353847905717967089644149429423767988811980015604622729784574148492134532948795031645857202399651841794874313253212318528089145154672729021168377166496224367485030698969939051764940814656054288063127960381785168537255223422677396663942983643119943460320186293889143584988013387522958659691863233895277195049638355663372113898999991428792099376331136652313388750433730434875422430290111464302411651085646845058405751397895781924521851810247287392920798140358827155434911277888222166200750331236085667584036271501411604522333684205503812448530397232381017790038475806150723146839170255023278139144855165901573727400711113880792911189709634325200779169123993136019348259066225654499979134192642151654001286089209929450284250303975017911146684686452351452196947850462140303714208396793036047474666115780795559937750411581406406561682010522878875193390239303096546303317653487399055264797397566484372018942847828778054073100718042590054219990154090979431701084234434951102692943545662331603774667479447932001013868337873791909691048053638054805936059095407212807675622054565088646413662365628471170265584771285339956962974046309566729164870882330534983422346678305116462268673258290563361827439529914155010750353762585950230241100484075657519422167708770140339279619187351685226493865106752120700001195048724479497741080996557955473429481263107762070773127496484737770779222872656123622727575231969527999166786892965559460150264183479093884814340976650237300852712274642911970166817896612610664709997368247610624253489550851453335832808323337306627952750985429693715418677998319105427472563497232134877137699679974774337437190991919722051184062737889652642827418789987824271760692498140526193609267884799854844023408922942571518582152804364364410135074558983637472176866173417720404011072749719937748984340488796977438221021173776298390098091408714810102598331323217002654711528468088797051029817824460670343710683428568233655793090449045825268181276445834090869629175300015952951465235646050429486895728460299881782480277647301683996183990861147667351227906848002218590018105920519359348215835451327519324340786051892613556865657276302475379109834689693862081625924224802816990700898535165789283993303845899223780620077700211013186223322012532142700199209386998521012973823972239415254026151309091912274699530262052032298926035642186937228931249118567272251149072468872489823029697950407655666837768745819652547336388662681994629101698350451813828566025076379765240134651533267598445779434445342582434449448522329742495949304793444995634094023245061096525172478830133906706661405251302090550163506371656239715959547590333735911646313075910881207903280662355465738383209830330041973684392905835100986917304764643148173333899259440815470709807226048730412219650497519463008407164168619612035411977847905809599239087005270164937595329794126424624489821327442059418276966090571727541240375738941802731621166634497963895387333750428155506533251140787632653253060432036908749552789248991151227318605426646679899094483631088906486157015696676239936929736807031314631496823098688009363242026400274553589452207810922588756749261880863644492603993302493770289871241389843385642420464422475717148423107673951708762846458667216975101986484730399292241824977554399251382588157971317480725694730139751981000512673646907612327772413974646951968258717310053423006878857791750705895823972241452759356810570913516942891519520969516739068251481973248864212433449840726117284934797233663988183854789802034147040103904299571798663265103647947971639786460974916633016815605607746470616493728026212868061499453952151579446402536717452135665318603576384293020026452701389545745974515277283662072019655101374760481942219943720228717438016917444476716488299023354319109208086467239735129731812308509422087395991016279649515233614279517612404334797093024764485585056309457857856798888981777480318582181167806668698541156547374153559818503506214033991413591187067141680199671439015257969411368228175603847943817047157778969353939654377111770462463289037386413581820144617707851257630751110103964709777957607347136743933892034052805204189074270750226258326909124940428554832199992032595866142744659034237865730901766701096846607560692686585206813049317169506548645478049386978821766063211777225539121769956445436138628569093924044511626344111600014057526196363867735911617706866881527941569381503859488322510793282680518763927042120114390036916425308062836867891131546729829912088214838141284356827447469466797124273106514483661843711611529311940320577900871156270600533608387818438753602729286349349366428131517213573746547634522763510890073805159816414542446789830148046888640791450486999555249174731953890019170678720481715970998553779538455204667661419121579247933811270974162398195500169190686241600450089481547316210642859287067746394558603693814109545499086092342611787080280198097622674941524496493633890136611921733790804338675675719770348001689543248590000429741915703590164538377250772395685953593528537493107722864585836322066251024814695797361554262335297539588810612461751373998695877215778779194785489549522983184374436044654347844520635512237326705907626226905055422128346335795406890436370624945262192891720329700100677264262622387398375037523718812601204076956621409771281944873314143109666001495492706885849278674720542693770694819658954626556827989143605889112952093549296778812326170769658925318733458105305361746660832343259826240265212124226132494447620708086862786608953923221141358026119630178798275195773302081695071664902676707020756338874203693361004083795258688246433726742032352972076937701824838310162214221137492721701242012113812703067048857181064831537610260845155936893572975995801303489382604718086965877792169843295615423559011567973382887366224905542435337506069314838865365015501118811759386415928132139045884813231459614466390370208266541945763673570220814298384672795753498648185758669326571457693245322141665278151744134913270534332764475316990013497178904938386180665282268117999823733418932168769333978597423173297687600293543987496282091673996330649972731359896554272203978397594446288869266903315966485131702411859901400297497363653581987949732716055665966982820476609656860518641809958756765358925812710454319260066795890237983385257634744520366111122059585181126722449758211147108162806134400336579564504750491974589657494568970083160930120008541303453684395237081602443885697283262435598503135960513627262612729851366955100398966658548897477058436746347896944126746276251796942212445368807647782431887997450817142013876968042659697985497404312872152358642704699955057414175111522937170745355657647904477444916480114252342693994345982004279737961206612462067797256126628359129279371556664122111067605745715153876309716750958194762392932411740735578123651952318673277127693180249058742637658022357691851503018920790719060609005192889102583048194152632600103536270098003262800001245636810748533889552943478105853637425600323115761128471106850150043395645826199100238752550148469319342892382608047438954921512334739201141822123301430821159707121403338541924147263039342972281365683287030841719891176193717123227879353664543327817821820006769904212346741369571805422633433573379216985448693411465992419936140428956087856284525217718097301078834581765231796775091866961986923057916965510150626980051108073669796232211363426161364845208400918971070512494578288369415960122135733137641491547810572963115614653351019579476327646559916890132865678731396663016612158034598396548104901234422212429337792834972532417581373331818837054479958790309900571798812657428213022016995103663197090799545665355241364457524859997193872865089130939518867272482381430339608053349414385067320566756550067788014220638773752755110023713366003279934888260531235651711048200950297469157760335231264191584241701919807194618738387274982975594669094110760136576194457886617195228690152545052674269944139492164510658037290206030688241285506307298246766149919066399288899743543220803170574896199258800771562951229300936909882943148517403287858594602211555807934277222174714497195153398298275445469022470812919688905872773074051058066686252049949900418987547809799410033341764739506130047325936502279003690522456802959037298712512058591846458060143412210514387882850191016838414239723593074339688725387164733634661474389486118280846643762761369794764583090617293199777826038268499131095002394618375658882833530304527202071973688164063009896590533527850756736411406971033967829704826600161581330042379741948235563865049880818038190677397913188582627933385183130756537206452739976823487238725812580646448768436684000936171923287836685144163863051929745139391519502920544271058673486900695440703071510899566286534863624443899317733814014952088239007208162416580106825650396539819318013598761115232198160427430083591859854068199067162810313853345518643115918005583910890450517192858416658052197637092971572948165091281115911593622888054587805139208743111913708822308026509989230708764934649413663144091207206212448391733423032395923238878718614626054345880560075160209668810064003301335527177171980750799283296789272994014372484559916340827692972266272647601022948290480950593046331348927647437193436946008261862478341112496353714627615292261066229708703025214929132065933056492148769899040377468926052055086720874236974615646933448117477487412457431495427072980421669172612480500757121788420104370034211764163851602188711243446478713063422765940470142752191090694144821792037029612283717225405196560686572819356080319511330703711379185816285581442576238572422976995296516452649274831237564021378498820323713277484418035946029183854967002105797310773250295671632862338816722858085862688229336424403157320664608005293353742350781904323801426642090793432487084476331167728142029444464759273183567792530567112021808376655998909461847930700429382925793237585951585912125462597712813045361355321911412577530899184927349448976394332333959454043717359415875136329303611847268797726996417548034166515917190076487205524092205782918980486117287361175939233287102190328885652613850128625293295044328662426127289642958584181589985204901801424784975397726005205962870606697809190892046576869084748760516873334214847398038616471669401146937225035088967300399380261882583616674874352800593704538057506427324684869812419724284022962320383214947554080165657481685574894417278008427195834454417853761606008192728744705003672733618675811088955211385989045036405724134372753289429728253859777216173745001078563924192857979815216975016083945354515323166683864110701916338826898920795882249895457184299072407756834415878161163836823194630222769854614161965515764807752330210765784918898563130848890373026682532371178880929581580865398447836236843269813522009984679279652360985760248180744327717988872601475549975432641560961138601477373256287265459359747910332057618389786079161325132744545733809462286498099373118590491405225213875436310192643285483637989650411295244793886955961196387714713774600858101739554709044763095743841629654175195661967363094361881898731850379058322072282530291457233995917116862132027623353529752542129984018249938510666210957265629271026002890943552373354986094882255487303074660872145177277542111015432849704292225228525144917449711853459966179456358228053409886842632384666376112875623236952979223650758457939772713831043821674822473549537886118002477562986115912497736592937926715273256052535601512684106518786712967411086349305160657493642804396008063082375024294812856076631458370055943747103049128490055434401495492774095180786465801636983201938510154008236210872544220332625170910211296185450620947538823577071174375274858466507225111785504577846025313338142027846484693654246357274365113072694801361415867674881096989160788553423194691136672835963923100919607300574755352051880101047581287958357185307771809110364226119325447294200505490199859643610709023073500781736351417794894946655399317263024266967042588193370668451115358974768406783073511260803158434767416478512591706549766917908848463375451977670712966656596623042754304511541492808181609244266839355962199885823152681569707589830867616065458422805001899651208212081651471361683699796705287832415446107722604826406812007235340603612679118406637661494527160550167843759361882353936173254667682325429888606723410348549522392058437265864011995486648957078092195951045165288247768595369200591931757162105657388440065695908514802533889662567025122244914578878192473404225392911103289004910086811728283069273057887477415643394500801772214907005795836590816004078546154005636685607035908077092281544467021034917208343306351428553268848554344814764273690697490836506398882400858283052748105299465234409818388860904292645789355078000657203909211322563792527821914168320660630004407059266438491487066448478558128238129327748365585366340194587672148556760087161253048162471109386037966323752875626113171214422566549649321927710729174702305903116618107684354093946012379389510274960752251781550557182007312417775789173900833519722399348790081441417145285700360844458723303891964291076226595602441885888491711619939005557389637846971041460462218576621425876826273807744735052686232806659048660576622800340340078582179047483000256312679273162888211676309443867756437453341603431220255257262383387585113777747279909286983253561037965348616387325574190816246095358417117940526587562212733309744359611793801329949221447079466364700609530605180478178399971868499636198787146206964561253927679827400299170380056183095340067542974233318147653019041449539907558616262739733966967708821432813979832167318181097775020069282792753951116367085812078947225331500427978062999559387905124829387434511202045549760609420401475490929398544559272160235341388107374223763295724324468419597469414214275964216341440545471063869953557113968676843141923281251357632195965443569688576086780955716021027458329805461628224941557631315279824512176735466454680188912464505192393658314903162218055257069683302111024310620911724330018461451337134043037652440438401185186020341095553138588941746481716422989997220985922317771313300645833650993190545651374920945187899369956737180733680758722855572598255429367037397987410537036871123577764953795424797337786362012167161135614676654277786134305589197200657102393890998505555494194382864103358941855441948375699716916199115787064289293917543483315727040348732282423159602157157445044311346681427487618949194287193870124556230333847348237019773598374099656899684929727847502587176824277048934717193355355919702880073150764445300384375227114990694257730042909192859680719198610142019828175293127184154015207579133968944473630976587109417826443831348117441850590449758289199738386128654853515916192739472129687099939705869959037618712135841444723686487380611188944617409534737405885068029030441449547444303720160265428829166096389472868914955420991414242550967276011404395989304521613555784761780334295321978327153011936862563911849339308233458438499990128432421854183943091587699431487509673955931580312876738022206902471600840357410756247503132803798313754631543453331815654986506738260168116646969153730000287010231322730453739186790315155444388685845841485461506261337584214243143306921324372680507290947473517540956448131919890958721237589187792942814981244118720310599713443743927074216998750756978909610275557965071490813963689830394964477034735898491306830467168128890349468657316903439260302891583497902472448004334844165482011280038939374853891299210006019355175232622602781038128983436916730271489026997899860329812906431979865614501899029063478982226156264832888753296617010546523745192591348070780543100641762364371836630351062219472283029957639099912277700736619396702257906929700232781378899035697168545695722703499665965416870036614994455162490814825872029809698192575571849776373684938910928278629995219112728103864115824504208500710450173333299923390102828667937401134866755323927573715250937998559482897714204765681597238306274236289703913620446296407749748443099093143071345209320989923511764898540390998231795042559981771187848635709430543090785782598028758712488078453080944003029919867556047293150262854911369456544973613349569823460434585593456866277741291328179289874143029895443472106222697520824795659306911315341854643545792146302507478986752778418970114682185671784859034222441600255850762898949721562383125577246827657056460225211454838420485762136496121074396379939399368961222487086630274674743979732018450457700968657131949979682997593944842904564909422475082216885813325499363365222328107313037284626091314846307655252188498760794489391203690849124244998782292126422856460702545969013884695977456739062214260029244908820689672832127453849089603319012113117717863720617234591768680130560419475104223347558213768866025786949794887482956608629860492112074248289574797519960619759813738536261297180985959594534478318573240947353677221292994415899640683081325989230264249831076460553743372998146817836140289572356998747524652043901650422198077467905568532528395466333594173571123698512170502402247021093238286323680831929276577213325508291433492592751100701993227387664277174030298117230708968863399554237450258383429778760387781542204782449664159311708441291990449994649684488254931422719434626789744214899227954976676375970631234112896150418397596669013534246727009827975845256029627317096525534321865489920561267827657552288903721750490594991595535994021847861637586553465857100366771390384394711784625121147539106079831445880989300093945717256961026630551906326744151584064576107128514175616559489050859269598422496508363605390957981075824731636997700218164867022582583214949457603016274008824825553851730583624001922510491125916751926997066494186260263948413177430109239990095399642745859762389467022026017776153118218909095028036039311028153679309616019715447572808980031032919565860880190021983849031304546091829495971270631083829376617007208313998496765713057437485799358666871881178115234167433047144835166666105458440280906236451401711784846127493337787099309490789091309264770125928910812572909958970207493409908229469750026154310241036480547023041103143498900257144009067962228053120380609205458725897095188693844653002058933808586267725645121252222031356228142015935178030447934718143661376381848920019752263603293509571878335490397376369663899871755859508860944153544306129070284243529051021829412564841989137691868484280601349589192705853455926756159696711527867815801245857032513234982837861583220643439611057449852457077218699694931849042818314945244398604650482297530721406161648478877826227812758475282593982892642662167610987576715840195989253832778985943401187241821886513533749962594495241159309655095338983911302744909578727144058167363035688154169641181057240563370187807522734978230426592206896339320615441114257064172594713246723853632484722882216372281923108136182303217796523736636188783834092465210593768761181692318287213005519059594797917580881093857190145512523968711212570659892118992848599163913897514999415762493831887240543614701868095206627886806333751064778690572222543652007379891806479325784650340544148249119958403406047424511749561165239018645045806067813563209167024407458751380006375037114985302847860334874502509430543787724227541700351610723001389517776558150002959293640106236862635752045035724421510844793091623575567070672684231407898418543386573951076701344731302842590735161395446099757220609538222067171498204115251621215066822822704234484465853585294596046539752549920438954420622896926749316036546732315617498596146769555126927358042153483050931402605745891675572183345023569366516615102954593717659376702192777393266238133113274353382166876924998618087776371073793082495135432219268828812521923632541863297322221354127473424803744471371795340039553725191540299184158016704555386944897932015147068758113201768275070476975239806976095071192587150486914921912809622429300677632301633300736372289250058463024366105878441631414772918508176104400032604420253914400146726499416517253394541650814370958384252137435515639571511543566452718443354348935838189104856802470855152746274485947870469377884139821276961208338545109248488646739165910562930351376647319670963118272775275251626638281732857142540329446593604750780755410105644956618822092710407944401082540110492285931491336681590463983806157912482807650303396018687590675656950047642590000442425036531504858868639865081194101205272695360982581828948075924417743200910796723109408092407301886397469038074463660619550136009693927170981806277179329474407966370730220158250102864832190069242417108751447057207530916082615656364307727421100050515513953609829177480725992995147302889291624106075190584735396100122049679635543503434762016015120306932819814475500695395075062593995851075858548769201795770235331432304271307952193788343139503335220148190258358926575134863065617429925258814242213256477714555956902606008914570487155397351739916265303176485644104845104168945470659630838360330209005293631762926115789882730091978081948963189942741592133802633755802549071427552542130669276040156909058114677981860085289382372943045237135915768908866538163251476333304422416492326752322177994631402863528368063760859593370976592685791844392250738377715721598994988669646146258149283443485162802267860103918250059118386407953532492247795618443889784014406054716474914204262154849501940516410874207828325982137302015295949056622404854562312603280843569535557862561257460733853554385709870855806393023448214876091004331210067644566064199119962660901917124010743336303705413248996035560199360367946461120177020135578539006011100771249918680790667444893620747712003367212103724151082636820066502869879662417493768358592064968105850241326626105439790563801651514221574001622870713788264475559427255178362234870862243517679039281449802064855327426555115904189419366044864130534944565220033274573756231640823529642071175194112852071817717611650812685151597727528588553750046254503179961283122889663841536295198087202234512882621691362072303062928795696786053912613987944505439998200656897568793526495024379600341572296630395547316757072266496867035803813627641359524313050148372173910073625411342401615636393788779194982341870018935336769030643695689084254710900062437000828481582421856825542910181686907383866905126715635890646219468545383614941066842204671994597916930984978487690751749248789293002864344216917183822510257487796158789506138851782092743872661642328065192435260735450144900865962225554198551048613008832427939639952322016852012579275117184201275748839235130203354733456764382513253278807143093681766948854982435179098840760318648148999995575051743052470592525790374985966958172464258479958981456759913606181831373217398407165578254437075852606491121746836965119489980176934310036717978941525630466632034056304982851071831733346792722735878274818297911797064068617604078003499124221337293663726348627177974239629997032896338922855509390797789631289806436292148398055788462568459694635249856956083537872126875061835112214312865039324447769789160738975753088853833670590489928077480834877308262140746609042032390218711899141667623101163829960275684698156014696190266955458132036667265982097090263137437073990153901591302953314454400464264384935815642819979995137010344708811801371613822999406085752535616570997497326294652709090461019771302870107419716492572466480855153746609211227237192802976107846299125343764964010368207801547348596019169306139824881782422269302799265027654261344829597018467470083154833033632818198387877435449459789625157914785160759571920800056527125938043030975898291757945138319761884867384660823446646492478897562582362243901202588082164216119571031728719180600377597753726413062873741145364701416795123446201754734559862405028170077011811458208185508007924231962031792263716972782800325318967292709192115349505430534951451130637199858695611681048868464740128074381473920447172582757854646462904715179868354422302874300696155582976711340895117926029329581391679025363137063001689502930227919636827811073175399913528209015375875789143551462881291271741686943665240021177504871407679743177468188096527047399312457284029757346240514625339124540231590453379548440415303542337109049267935706621415493964331729364549949004723273474892499776135210969763061798130273662435705338045053676979834333653982609329475632965779164902432998454445198713889085646028313119266230858137538898471208482445874181869411464263782906401876027323319275476956829787184235059570363467657564437598222927753793518836334665476873104269268655698154129464624368721738431088318970168793530251076840230747282395923456021418894732430797245990753057427369726705341417282760811420209483272403378637665538516928005818205816919665742963931139359101277549303382817179762297751315709100681218705839956101659339941136146444585931020755608029469745438379549655283492621467066741625473468596243121020974013705079358577037436775071270380206079170034860392975986470130448841533072172562438911127847273575294362028352635512286970959702155045706768282309139780056011140267947539750452184945728627858085087759212109056586580890057074496218512133503697397016138957624835552954205279097121286182222785804059685067309303227191264153562289668120924206648133944947524666545789156405147234052833587812490956687446884089108411808310164607020656218427277967673198802216321295180525797316699233200964983677931610076697476427874880977881211950865964400896850938344583324239646669188664840037024315284868314476639713696354423389529163409187054885744186801935475503449647678407091910278061921766559687962879519791497358577497370940526975693208189315382827004231455245022080516275257771551659825682072471313096359771998736451018445928639253585114463021911588419049144096122793821880186744452916887481452313815833200939918688468771252765584891206993490086460206719021663115243380108924683232853510148694277517393513452337217777224191122468212141312344379376540837726267504046060825844176334016344379193441298663619142918390453530043002313417183048205029143365366683041053336258202900283017162212588388907850320680536809202705802649663430018766673762775228401223585556421514481004125045676226667431420035043949972296049127942927679071623026452761869145632880534340549432194040440164269783236348803478194282252621551068240384421407563982974346524456799276997276886296139599151612048927554674950195309653092301485678627744898205224433951088684235630692073355997741714624573792150918587770859128102919567972827334832900222364999881468012121922576259812581888822032219058171648308031566494883182319215386217984852574017619115156538553363665384583110628895012131352621302954916704577959353758484337110353021032308892627669354909517463090752674456192324368580606192416470855958365772125019882129706603052366995950648314322731188588942966869736816978185573500081452497576739787198003256368894212759764913593522921374198890083869826339569291671964051629758688269424853546661619072672498693842946654539747009793099292558775442270059040105310785746827333739941700815077491940407648782778803976371161535426022374950640184223742020312795745194542803487803809842251143429687358462742055266840368596738946761370241834094419032773424953394339714324171103287687944430846204608425026261752283926870779754463353903539131799544246948829642222705718860082447901811205771230934508048368263753781119652474172602317323066901887479450782269785104803037089767240122031530643593910400860228313822295942833586793025864910358421604365812281385759059826977956221489791277423183720016452819307023569273804443112740900863022122245115735475397510671955413357972656722434867217112642233949164396619691554144709233526396801440537391901787371333316342494702791315483521892764540063032581168843354866693327145561359667250322750238540892734347088105196120895550934643212932807764935396100901031147796367400763406262864086941786600469329400073490426143017033850061900476722372900602179912467510238123570088984843303307061589883466360436536813087035979489992580572210603441769002559364321951830642079829316636616847527716179691628380635445778789054878032768595903030667992923660981873705797385015095055065931173330457515696967915087263232089336285694001171275594139941947042258631065922483451537852493317349542259585396504611581547088299179372246223520128844122338154688633683479409422109165595956314791510404406478864425260474616407424742246075420036681286496639596072253970670484793899283799848596830848423356300731096460360023000267871687534891397418690918946357627764693323596913661267710255850190253615660142598598746693532903232877099854274417248465826975110653244630953697158066528310196868308336467494334241430541264733808108478380070870229426920089911022438961300985529281444043143169652014090425096633622265367070451910563070283604949873949606050558602813821458704423076914877147152278408780004014134526376594347815960863270371499837644867375529744775117802155436983816678110311435963396400351219038952445666336994508088307281598053290533848942632331747401559585280914173996832402883453870819558914212061352276246831207263844998880275940396507640440872374783359786907653220280501632357932166089746792046388284112740534004569816286213279371784459241295687096235450830572330704523195066670237803551944704772266362425014421641158524674158039491340997784830926192788353570149378340676638826857848075699383116996079499470536545133614295395451495975937811694692273557246863917248476429050542887522603683856191581262224473868155279565052887042736641668950757607007352664861039967153658700574180174109677539906818057856856469736449836150381511539436665291471111060688371458389423195528911131962309685311319932784396287753181503510319408036608274030397097940585073525356773956562044899395843974903187539573071766053507990504877498049130026872727688129685819559605441495169131191025063114220432264287127169909443451804333090406812645003296689818422570676046464685494165154682623933473587590997022346209890274806863415677347663782389596131169929907276517037682325021806638014101333114976581677136126836057366204270370174579787263802348669310905769013133787864068046068651698911154863117948852081772155056336519054518562827632378984004052343524290697798800798975596916747972287059696186859523590154490804905317545770318063146543721111387809364097243797009221068581184957878225399621796848042133911573402702379236907726244000723934937688961468215124900475819420409559401755835817336245480919566176565096967219034926940420481337492896728591636656717885392394915787163732151360087986616989590402615247784535765306298566815702712495207736292752454613028832054856608996601555239023996958501475121743540923645422231932076024077910868653964677723139648255668055575543849857231057331961544447330679672026047115130925223867230347902931832526353356834286889112923463132061587182144847420026235545790891591652438916240755227784103446655961493641242104583693571536390994413379877124955494722233838946771609665148694249560929249700575128024514967357399810363269320565509856348441984601236821605038289069329370844137688105626686877816521142964042567549926921409175363277373391496049975246253114983019532703158072133463954357613470750481627727780796381266382361997000833354478649893097915637814896078562510008668219931443593878880550376450168046027444786519635828355917726764805021699516972839929358874067442886938020528678216435851542520247019201344073626274767536934095410565145124339250145725800057218020565108619734540156296348176697235717526345883273271121620601587961713614386696450443243697409043881097404893399156816446903090207808741869984325400990794059970813963876799321193981737454057117723536257471578186617977046288468200460760458338549275885894159619416589379618488645861303747984304767698536148298170831096727342119022057203711088484611873993496868471345505669262964305693305534981677056157639144618496157248652078264467502821096620398808525168646472028223887558023094486181109869572141327213929948548234845824382685354666304774283954147126388928493029033432557952351196161413129084419428440505269998213531176828538940185436531922622758022882892124651936955209955722778927321191993403215634007338898375009804376640924781553203889874600891426007559144522290127387830834911580287298752243454340724789223543833879295687665081112198547745778687252198996443971975368027087972316732930392509328216573427335021119753832264402752200740166984524887116628762554964943398462806223537446330087150249072303328887249371419461350911720037959440281683453558754907869082079985146029060442834162848245074916387300541535813350829182238979903046253640465851943254614446615057867418448596775560161249847727445131418957424304430897267339182921787482513636810737968446407612487106413627613152862812039214419352330687067644197236578113859030727168011340105404478714809411035773528154373580792400346749975699997225923890401701380141614650543478991905532724887578011315287480643648620567772100405504220008575090608402568021850477423401791081886981765806375495274144042683683882377324701798485288196152204236028111856929570310083854680085721302523159026072634093183563377120993838229464184187351661592184919845632919254450579412932453267045886191316815779588063719186807344685365645238588696162471437379462673356636006956981995998383975240404214858468343750605443773141590276542883337838881447714214736248470820353712784404861449905270511366974349882316984198153245836467076838734377911795345789748953304482123526565341432784371654059733499033732317641271635976731952232552936791994514759970939267799914089451930998693237879918142540174229690209285677927125356030740346265325774704420135189577811999211145790996603295622891756119725952930860642605485578651984060329471535466041572184051747480605593331454784397288802552051343968690142316092802035418788036881625918422842901252697386099222676742075625176118968787428732090036731666621635544531224859562329414081255242405663750072128539711026341830701800894220837390590980092533960811335621262302660680819668031344278766592459199552255876396191402355136447996027502590783315315181089807770220256290761448697895738992495073316679489406220352697195879245239904969278022924231984481180559032384978555773976107723170405149089900559910216452403915078418039792511907901781556857619007918457536313548800847640637405646122528670101829919359606070269314827492998079054057880483146749514984734806353813294670149178631186703465208821539206060819531324917656484795429964683046684973679291426236114566515765682560290453127950996008153485388393098732580222584656749360903194797158279092927454793496695738607310050874436178951401405439823505313721289229744384724042045867218597337824093568879132611163111565245578578910391566721243143905118224909024883160229111770881344927413943484334077847413135235308637738999937854403215214130536263054379954004149471750359770038612203724476848244242659420373015606958374449216259336406170962016983007368431544916368573423821307682410129321084985229640520647886816674759088628082835123300364549270678644156687521802022597028357083607587624100492569105774469509770078053248782868056543906943780269654371387777886646501118792498701897006620720806648125698262340184954737264537073167283293719432546323456188105813695073691722878118267554886983006566937960518828157240390195088490024192604746184757202976636464933476790931078469841692953762270549686990091221819422333871431503407160591725028998580291686914992631620928678343786290603307236171140586763794059675651942748542106936742785080588397297223161241155982936804324162755261027579569743236878225707542425827965118177311731448059225083682966267943027785741683467170440329987506092723216073690938534937648667869699786828161999917486701312421141168846868386622260360787288629019449001913392583358389670746749918841495153169867482803949049866335519163745181899767938202492422903953312412416709712264413253696444662437680617736931858416898189028571967133796991343358917358779552025722173275933227455953978974527044661523437147689262976973564361623655621758108731796125799361462441476593205830390292553278771143767085366738297462465673630725852463643609979228441458033723951686550162464628894779096387131218501698893957066205960340322079397531128989307608605116669917829155540497550846733314942143506449000597281445989835203176127942052731499641392667073189382913111494937874734875296763921109255662714978474214372957886421790088906470785983693263576674828621001912295017627067118082972444030307509127739770838966049947782982060655217433800781160758989788443269021158554782478281495598666186052839543928788288883812392487010261238411845247984597091196428009797814645353095264276839286178577832601082781251555725528250966302963394787535059207190920398304315013495991520520247211652435696782820331772584545954933465641947840160473836531475240882026581162085504872835201767496355355447463547329270845466692542654689599452494932035031399704819539854206037923398465323456440271536634897606358213939491354226590716116521909625869241246641487395101909771431727546677616407294950278054141785392587522503382645607238500671872469628978509928994352937397035649534301308303283760677331135175960753897465412026445774913403520906757797282966389407978885771819988572821760829237360470717570708973237172100552645240844659870088823026203987599137792826893271358390779006463850644225132580558575038206807330103242154106532285705479972429145151878965063860047115955026756726515440691760815514483007037297900308215308957268100258837370894238790278727549284442243209523058178341353251302675781415914623611188962205225819134248478533579592637836246045774233102147071327967903057865387584165501032964939460138575653643746961457636461804022420603775076779164618275317547501453411130212344819187717403204842951722304100398107288667865548751364658917215505542264905968618840228407441081503314746751668192264452354942800718939967120429283849347388029303230383944782024117688721140580353893423522194780876393281278846867115222322529962868837045690630099205446964170740630882314907024974170277500194429369560279090805064426406741860216642633689970969695296982659582864486599458337369936219167121445661091793544832668292339254723445866851969227058679055633482992442799069662527594730266946417031164809874674690985288552418892913030974810425094137604601169671849375244074688854302430395048709215198858893709959825365603580661123453952723587594477555545340319551082313234934254686117630230171854584822413654853266385369578851364226181122216903177464841542483061180253118555632810127892303500014093262048979383700950963709969767092152526702278327016089027318139474140455618152705712789969704223382014173811792419844572564656151942545645033410683467256701856347531623800837832497176922216406953494687720458593913340602436682797076168636897495937782386702771024797676689443486736358950217839798150656487527091496649083530741688009326569384362363238669559231658286156473329480369325540935873263904887342283546790322397862211458951030725868152456056241611713051807512856945499685264920134624538281375789593044440998097016082297078059163284310324894547079338541973282897548408421537230183180897977931247104299686875032383183570321819282041959153197857504097686570202806050270409455942541011809089729664193842820753966651172776038462083118934932960536234547882097108619908530329884272970074081316780991835485094726279375956833756138963095194216732183312167628772376577951223246878087190368999679475687790361247452220712416161098221035677635946911509629962617458125194601790306591430711873680611340924964298156695990842035045110710974400982734137499495011861473034249030861935428061946557040643621148251812876449790458974060478782252024688843664321701613165612961645936576253818636818905967577426925928483617986030840291827195774043293751044953813206093196529643571874422443359977249752411681719056413983209635133562799779461428903791756724222797659296202371930766418138539484873255294833124949221876423515447686415997436476989315169288874161128210915942375687803043686312056710672643796927173899248950147336571485358333636655029032229141261110464556694855786302046472724981831674541011013559661360706526028796335211267061981242740811599972821424197036702367534691563602100963880552561888894233578364124969769785566646152078481716105221300707608836842080996229095474045493521554615433410761227226796473824201772516436599623981497225060110504384971045240394547394496137241624108622898850602406005943832062791175094457157164501329748842759891497404676703972114157023674475417255745944596220716276200996775777968565491834957084310317308055459443097402769702741945872431315021428260478690944224854493445996793353155293206921579127831697629844159127076591870009793194108708986483090880669197189811822498197327026891745717392789631036394744270939876704258574698413057143332467629180606725104230563998597505358958416212130860075340170228657493022874946782663159666478677319500927467284392139559705833298623807865011495592158321843777440353420961097128167581340601643962003918249858234761449490471750631853054824737560377054893433144125958137996844166288664478171130150708209688008912656632634925034286676208102197950781875279960081128002895185329898160644727593845774255598317930092022939330992751209420765543949201174864515328019718540826966175715004650325033038281455936836894610864940636893290317360682005182442448136277723472306552889232373964242683963234721724950282044916997728217419581848268545472106051176751057836720044657972460916683005042475602627164082952928950195693962622310813134492750581198413747750719402353797888199696474019261555549702441922197526206532388304990020771882848968947283000765709601328161321565316168673268173096302532028555708182947138498277687105596619971209222656316542032164654151800429270637762046766325568738990119342206519294223248006556412423149958120641572342665214293202049392332694628080097424196959590807399195729317249484260498596679143307161516800537844253038496079959523520126416236120731362101557798149920629094744469985786428775806254057428938032648797208721617878086951742069851169809474919797350432142098120408759751911733405349561661030187753001174012122955250063564773775104409268318830002234070591971632468674752158029421790895775866573701148230248405693949119151064790146939314575892563906414247303131430173209048989288284275955353459488812416531908120507225969358239177894511634903075388494805404687107101060110378105341221094625374831910487929215878754490425370249529484677919317803878502637157664412832003872540861739154711345922456028334684781061690998452221545704087222100308717870089867585278902717852594720116448838987546866689349086548612872916826457091439236502790579776882796011955988155319508352949218331183534835019156835405020586637023977905700641219666569810628628439492990749068279698781106096807026704474191007550018981654663102548168657810714443923817233610879444646238413386935855370389171495707892641649066363321999950407888568945229570839980999850727696418624586595108296811449090753559794615947077247923339515959470308689935583103176807371577322726496952597795732269388295932621614969712891783954748610000492400318751144855775665177885456019884051111643305803813597574402144311098520666284900455738375649015638947634367490575116485313754433165342386505723816330539584205913085552106287653968988802160270703815125002123290663098341205292598532484719213755865262880440034643224807049788874904856803971147003792421357716837602907407179239315286247164125166482167502869636566553694752578261849642272010110537316063518613370997231317110365861235060932110370198032685164561679138444914486345102289633717835500596489139533668209592357076843012798287276323761731658906794417564783348384081733166851898356180255593280827897274244215076704202026969335960097211225492221403008602587694560349698413815730678112140362187355063036778312914949318670544943051586548756673323558354402999951967014136110898173196745327596832335206125926134301377274534393840548111042552248404227853373668887204074183534296743404938787363635805152443736617621825217677718877466550515287948051383068515828370409806255556507374652938320158036792470828025764628545778741615491336120216153785457198314774507978766070956024269800321533444186324852526642056839568304137301807294909612498004134320761124858648777308360977897435883390813690772714772779741432631225346046679449286267045918464066028473457745474776331713715660144950771700668408886972808572491954870595088478808176979846184225441191890346556712540348436836004417397025295354165961696874450118426309367563900529184591145517780446992804269302636754106484821066494984721328561437088182207990297448063329972708336326292756580647933129251774058973397366745242984240499275140986063800147113076526694130456864600998198908731835791785769007991125389645160646901443300808934239451841163531204750836954140123456137601725791891625799498152224505498866478794288831931160335068552345086692807777333115408744722058677755821495664647644796886452316297558761493355950149372309428761207886770175714730959782679034639242892239864545742462282050717348470416042329020305213127594353473013052536725608246557576881993624988660479327044004907704716944927488938299131214750758416764619229304214404239722809383238928766723381607402944045983551753863058766366936398690317789069250514358482917485777766945473515651674664295467931160817022902136970229599712893201795248140426976301216265813988929966045870962634201247471414806833837109452147647367849082886510510125180913749963435889854664346784848064041644162897807522554757253597786337128545669062051628789678869015241611211169467537801596689474219050504924614683251101104875057281452557495847973433243338059896842136238644131779716778657951911988293869959659076109340448572976493178956975342350363025364326181125565648316922860938025327121419111241174187644808699226305188378815285783845983374092049513059627851841501887830112369544081690566304854479873552351380983585883377571429805084242583996858981885266027572205910835007461161324900968287434534869805249987729951989027809681478869738296184962788462976913556583727405020199656601940638693421415937275511987698776636458522116088193919595486838028199814893619922814598813932511356739993485393599948251927758144653079383399300443361966206169834315150325994854999645785575585609291229016251664092678334044332285318292942909632957353793694502485945860444341637851514214785607283165491420950676521377088873106278646213995677514943772994436450317997321699317871008800625349355236579105985384902777061550861748174232730636353841599067159546497315491004685948375055600349033010064505685505087573643802461959927273422953376114448599248525458679096729306285888346738595866685868802123223989011077183619469237043397682349861960919493890288546739282570818046901385897170127583112353149745520501973684093523829629262073174381893620914378873999523162210670959167353661704633738079950516263279588011846501245953373783072390744641280076479501588560758489583134580387719884380649907796191929374193751512621923747627597237192094625271786803015568633765062631369421727421406351221350786046286688561779832465906655521628520717500348297536212786747093714553555363965841904472524686943008651786975879955497632620237993643160597198965745151763043423291400805501708287308748133063199090070848676905423241098265586561945914145649128703911119661486890500721187852912876532024106428645521479816159237213425399497346781768311296028034951233274230875359437454011488895411637911099099216318735692874094551393818009218915387507636722723617314807638608821943708908974420396519593575827646310166071853836254273353125723634869121229859703716463072499043453026912820615266417919146649656609787985260502107829125271317387698857728064863035915259805042690205102068859652302946507023543921151758069238168718178375735804000622128106963387547175500069047609487523142887161342933339617161776523068691414636891243178899190680360489243676512543541999841006887164031900710710679183485109463165383364992795979235440137111103759688090472689575932785787316576550307298230004817004067431398618665962126031772189364602554965815156703462716567762120565213540673610948871222896992832429904105128707912896258445811344007199374901914516265881198324836494683077954268816704268003391604171222760328190638289554739106344345349984296291491019074355636108627798128140267660116364094381606257244410575737632334507556163672085064486995872743451537629046370816142231131191075019400834798617427973157107372576741750456251561955142599210021943498141690743392452431950408553419851699163342321845147021247638085599620959653858096875908489437489896557645474574461319679204496501990433457707385447144873931058715028956771704627112977784013130455702467317025831554392820883198536274833060050115243754566617663708590469189851704221220102559952164538047984366792348663925106393195363556409371445808751857899168167174124044932747871504629329166360392954813044764242559452145549568254396589877375011766537133270594197148636891287774858567901308434633656340910342912446208719783281782277854973920408934825456716371002021667788114175133475714468545521080141780436017130702506740165710399362881537214325344630319044089985848477174656219347263923752838002031534156880441830772097459038896002861927046904637036396810743414163066286846353668431400633622298334875862588855514760117035469999697171939234976327273807722072496130849320375768647587638834452610692930512089273220707204523087354510787915290003658161470731252438798745628441529120422668305713741247879616557510175481157476533645203734872512332611888883195629624170746082972135934903779105756099932692175449608073448953017317359821253425869112118255226621842158684010685072910191618432550888049327625327107834797676404154247881432607378285390461563843297254524763165934356335753242566942311767134299525804401815083333491897222737984896531794605131096572588103187097390626507915886957526297763568684890402144883390019118590782515184827494139452049610107682544219479403432704934516684265967059986387332215616633617715759654413294918115992522540453665508969839060424009865892675579361708434632903262615975515241158399015287754310444562326726142174948220340256379506114881074040484089020375507713455720614858951424829267370498591976937626077100337259917441245301212686895611240231369445182231365323520090838128860998070787499681432297999024873604924197030408999033511045940114691306181903035594149676776758302148031194550701558615003314173456460440799350251763427855919153901205947674254859498743625184780176900781330761621744354801209756595939380366225284497025105512393644156196786017832884508863889861207731431628740003941996524133954543034566517572379290073242363302804175713916713493813733117936134647078117685701004681444722607832103991260835031056837348748496210608766101797456614735369336097557659752969850269200266002320875009760023476741712324621429269722167024740214846111804010287536415049485545016297701109234046951826633979683862047170674569014965749737080678750237701532535391738436297578270799615613583419201085922183393455676940011361890682189539736840291887373768186984275736548203114801610245403518110938593295115194866070514438277830812243752044653301940926540695534584832932766807765952450626607659948062732062137078118741638998943368165626576646810935124454479487619443426426871574550167008777642266079498707938255958303270381857060692695044059459730654438317006325621293316393553418968147350329846003831785414876695034212343343000475845773383316001860358003956029158140760626342457836174267675100065726598907167154835743430690069663583739666522735752252805467692710734651930477291631135112324809769083952645282576897024963239333039183425025606720044899549666376050697216971855310755340402938370156695478926470608200196536347619730865212323281860534495673421141134328320679029753071678310019379143925539480688898384675643760207421548419796015966867638197840389661498663154616007414698337240151058136019355721104344952479008181264915337573538105778270050357064025410208872788383462104461514820824147536676001381806947151119778878385557914372015157351025502069225639025753148791295163990026206554208634773534391393880034567261592294662526023577187650818311655472406222869222815605710555641001526300820880348634249431667987861207573193136821331000414758245468263997346255906250437306824213314899891474245751173540418895741923811454253980623514163441777918419886351989149565589241416800736936511953474319912300999675708789244336489963487564141155219152729652664795035647278203726826351810801728315794165395645598021489663209761453482515382262722289416981220809139506234110993561675863893842854349992489319641478476011041461422606933448515268272882693351339279032564042902261375796910356327245672671528706909524237615621137462113571509010178295410499961599851615637377093231655584354913717144715439935438728901707630427944706621794110308856176836458041944299603800382467572607423901374576099126948610036967994742668898726042054888306118473864464837670849152946944707791535945887335913434223508424088956225516253538454152134485447199813778309148123948688303304895070737800096402386639862983092460310117081193400228958166220413472348816229182774347284487679491878391652440191021005013899815224462130110173903103071375788289211315212663003242844274425992514521175167339293735485561552573145543732442364116137895477855958587226326055460162902842311324305862958548910454061583598504959126632130197216027383289029183862206084164025711512761605887543502751513032947099070852843371095119933956597562189491756404386914604769019213344425651292139409401929262501055591900816644263433656849344414746761338693280777221944937034278452220175232335008924182660480250711217940131447114111501366487794292495770061339261242773510318758157124278964566028574708738328281822568718225438488984780510657544164430290875823056228230597260317122093888247302654468016628256751840491482548308802357612056066023325504274697828473991386731818403400206203156011982583037652911746534802122563164516291327916498282009014401174238424710421530630161564339646204446980426163483349648344700293050158330456889660077056813649430094745377443520033340545314823364396314877518766204075445877294172009458130720235773478135239800914200574305179839892187616532675867535763162947077273387355995604542192347053554788163486176166178290351096994393587948018117734590075238609028106468785137935375768140632473407478431120000581424152111657103540717428461026335260927934366978176843005512069144823456730939820717702171627633451047990664732234915421819578026863022572913422671451389094464122490131548265642064636299290042120393793791183410885213981294383795612567758257092127851662274826777551501494373587975388924285881877801742657268215041213626110032988674977989756699361033445883044572659655792098980830411054195444626201662005427334435649579190291734035379250721019401853608914527746111532286375575050496651916058735057984865081761718858036098422106414176181902686395358830162698596628643724967187270124005101322277542917142358439101494776314130853659270122386643924649628135295278671785978170930339148949031881000672949077745136835043025431046358236280716350264568960969671366761508053706044304567159816371266494317884081324738217817516702415909430510515594791774134897398183952855549935895563301231609848734081290036908488093904567819435839708435779934577579330052901388703796567251483389651273388335428637597637865159046018076748941220788742161488474137453658984175396202508522303107922157194309833597899945213456368440560753606791527747231415953815989862998822241241661519533023610554222882211286389418575270027853815357063791610083416066915030317015006530912165157175103481695747283784978629934262084834490881977257948311043652187913718440483655540960780406526019461881580117318862145532932096103976339202959965372987271802340264199874539081894844771599136292346045116567324443115811227023719362110134858084917219259540731866539278826597127300534150536029774022674865661450112070607165788337564559824487293812493494692670987233494475404721222322130970785805123490635596135627347175163093275754379578199297645194542540989741888360938945086437407397858462572231073038091558640468760789788025230807480753641466478839892231397843443809880551539144517674859715283713828955618795478923568676954364665041940883969586031291210351941008141226075157524356338116705055276485940453986339336959583111156161835510632222593417333584368891780807717172554158896323029842586777256961018305820974188543279915513315707196325058039136987961936009453257662587095391119597398990859351835699138000924533392879406427166797652361893511459710436336298734339509370651887757882640314371888725093998935617828866739711947298930157862843112556780669065087679847399005638326807983343528969496157712446156267241223879595361368706834260499135500613302707399248525996857469320175422845423542155126597817587807179449868973069139767362714029889055702294635909411248760550754181988206109592410266904079641774552244107275490186110889130456647105176155118101902378473346527888977107122860736002910005020456509071398344196702850567901234222380738269454455526345646040008676779949124421389796445812435134833527745263180402608387144272238052898789262025584205433541998717449050296706622548824646987201259701219958332578185248112905751546829900475847802870178119719297920201336639752398666811779827435995458310486244745567078945195039571746627035779821085888032922737612526935357580626004002183293860028548739268396446954657688987620858621686044673989226919161639596392369223182258490364585255463055583921616722119315648761838286750679879916402728576256367914825007593166301618893387135404501013136613972114774516047611367415049729240537910468395610761395610023944775615658423054015032541892685637036667877114211421147965208249977972008468599558504845201568786799434701277593948487939549118907040501119809743971298076651818559675483314030399084551983799996843899257586146602901860865019826335728175366651351086932605111135841031494718406924025452013366195626661108028142578764775917636200317576358794388480018093498054305339800250683744187304434628920178627559721489515255953766294737776929240233425329993073825548269216947604916287018040217940067660049358953064884086648588515008131732771483928288319194830504979938858903706550257775119586861338901292837110493643804810762040269235349457224293692141879580059992929293629251352323669027121587518429072971225521741771224218059240508169640245103931584368036164048011343804538777482294860642734416452483475272740871838060779704163381789090625578255063872808709488926275315277844500780882348209665792505385540140988529218859262362827399015201652382334898998482223395894199680703708325452873694327524995467539424621992683160395262167363188817203074111195206222061269007714856938770073916746951092884829180287053035220784443007801214935363608980065007178221164137038936420990391010006260917622565191689545828890635214017637754453164207607997435970553724847337056845884324386664882766529858355085798550580427280310052251183819476779211223553230547038794610807630957477634204395050551996595547471962430902333655050795230184322532803040936548751434436545127841426227448745291732649429275612584937282884890236408041749161199436948911601674952645439043050258842837053667610839051998424259954028375925406807200173602001022453451454213662990041590242492186151365628774608231268382456264754775518951981381363686357475378480947453908667884394600170758134269900672613113607170720987427296114296931002373233081825086365077983079312080362497691911918353937190317416330153754103884050487658546527801380282950401931874712095518701119083652244537822405803202949569282313727537863142435806542030110814127216400496734581727184931299507494104217505007808755957911008798664437906688143530361367024641622962932848811377742645677431348531173419071116854921324155506849908214803439460689428648366464760587342773785767902107835097712239367794872252411447721014279623311404892129829883299020014210137922374897967288606179060519189958669280251957373470287394387335011490729409146722476193704356426685266099966452118327114211087459163169023001602441546068627378456703238134952628935057956894981722845687278116732910936273535646571996058452099006345598011802896719585427881299957832325824635362598919147932418368854611767232136035512617838955300055554524529423316224012533565009484879335172035320754346238721586464134928321601550599846043705317280469786874123046748007183203702827391264287344204886046740701824723636315193378095429617717869872925334122386826260656956250363092542274583334343717913918070627178462860662314266317533063673573301264038596941581953115325645227110467600494332940778882326819195735349318364587305448165883463735011926299493862693299860267583508837193933982050102082983977650237503178309613422486186752978800783472767107564364311867544114014968945060291701464635928691052945917931775890945493503680895380176353202184274643603911980753605156943043340841328925689846516075751345467672950311479262958879787519367914534850074298607408000515091959902798985608714188939347370410632467494918282088501012099324347716397943132663334692652239264345880026637005606493481995670423317908232952862039256844755889620568437604343990231782331080564798483047301783998013331186680163569843765828079526030592248148537142630567920028363555573355566698625254949667758078865941004161260046300109906183591344258440533243729954898747701530578739897247281058209806824881167319048802203032720765043057447665486849980918528733179453091283150995808130506386429719411878130118049540521584631109645364605976242746677441118525828539439486858560010754928466569480031057713714608353166028002156095932874404950757586790607887854445379002691084536605578584714283653185686328637412470541138544922319552887546213823801481637481394194274723285164388030104663808593969650385142474759240246568559963512974698952193369913663681670694643658495478809267847189373826258118919529250693904232486573979110980973849610201819322302699479139250457580103974411610516950014126400678406057770567625949189062030175833926881008848432075463092625796808031738398618463345703607639923201948652495124517946951903814867863521629017705842577259085403863050672295190942711678773387498104863679019387400785892088917257067822016896724572213301761722778988695058420315755013797563402461175719536273670574698354265559968750051168640261992322160717555112039508731967737771092878420335714140353050981387764818597111418582882594700144994744716641906546762800817388492480183031098417538264447393592446171309048761272728023981580368349138991361125420679718633538939548950040878542379927066706072231004794046737428947043821412246719362840052106819891326724439212578939111909392376266026136548533007631993229597508164371660697252479648618879238581161625892294461110949437570561823697709525523615500188858327650879713622027971524573140960032545049825273815517585461214978599550297769898343456306647100025769104043872071320626674641575857075435485253819387057986937810972103713463134653361468998318713163413471053864538579920460575652588312154389245268756748663870515406543494615347459622119263914952986396571507521552463366357493921593152296080614706681355181499075931311738350723354346068367513524561102992086342932888500730039753766819371418688212248910770685909847492698123874914714068435171783224956980381312341748763372285566033016565704261861342420371893652220994827802668387989927611478193697068921225813858992887622359484515422550894950688430572675915842769334768649425902927587924644230225102416099704731672675855506925421727015062602323150332586179576801126952577382223825385934938075668578287488272823556522318435320874091969194090481599693909254967325758327525261413044322190035141333112101555419204113675693010947181208703472886569113705358393838579265856325090735893110015145262750988950060638829073584020968943643147226418555413591562353204544717385174439905795891476553106919080301977620600313966175667696181346112850954978022144550509460164755242980306546105572091960710833510995814129496252530698618600904446109615491730966778809272776645934913365161256521869298715418221299536061185479740574810630686217235502013724490200181963850877524426358037221324335622113427706470420355428725321477959130765215175642361043935994767735542187417166271903701590731926115086385587412569898450508762525296902371873528893039988463707131759095195302324479332462332924547221059542489872585121047185100226878413607276028025938840805309692524358296848274173081373508377553045101931432038943748438808934568746471442041010536367913181807066781169049408401613585544633907788222307495186742279452847771323884185679394926240249817089011002764985854256787254475478768294326189340846925938549986553755313832458126358677424542079472497645302215079171396265408606734133839482625749853627611183382462428122676859272342896696157936013152007901840668044910221131878076044218663766609231413730947416018765653474386639162059894971010323074095011412452691398894985231061232761169718100624556740659992125020845903945022463265609962672209234686571520338218615238900802345850422820375446519066186402276673551898933141139698899757360800109473212371340494266163175164783807639134339043463335178776850849726714504685120230058582503578741051353668468090809743259524139806090666732703114998517640974677437480624598927860592055288400113704969080198882977718786762940072759143633814856641304251619341906131070341741094314408573207095026557683290586420772371462800971698267755283534626098447926040980270464111968884448816913859357023202123988504485804067992622536746971941092340661675740451103894148742607718998955731406162446976973134852689764134417048201890101841176545435098341782265568622945159281991256130841073876418304372713273489435741305558072138709209783400201953335349044059237238456598159561733379248114327097065826522385637534921696560292118005384400211363299834577568290717322854917355899295890089988304663643428211756011287946086555556802824663579014250895393276497975888822442196390662106168805832182591089010658200602826781903911175842480125185535508467740267217055460150294222267832416533807313060658381642727578493430564748369296365189874244967730576496623786167879794006294849965826296600178768017427239058197813340838138855629204377316272714687568809438296856480491211756608850116705770596408103507704190548904549326238275320433359724833720901371487146844875654827266864854906367809863571253035767876045016011983003929326094666780880788726598614971445927216845766335787819550622138705461605627101267268806093680887170635264522687598175835809941995870454233345431107555625824355536548660874058934320619361110331262395074374201977827753125990489294018355144850343435325326060018854654283121041258171555138620911525294361419563910833712350767483233559560238734752506429441391652065645367565932416867009562943287823120809472159164175841128836859033982418399654433091575194397794150360280910265472657323096051857677874051643113874183081753358589599210265474367754836199647880972348934073100751346095221105154939704914280235523403432152583642011668668707752253977711013940391263163865121395697766986905397707974470088916302382872766933977983071428252879812674384637157292544654264124569655128237696870788312865673601055971897613941572721476270174871866301625541255587549274920992009055789082429094074847214305859563558025990723742954352567913185986458444049112609717926705006479812785433077086541554006586971869851283296060533056953125889861662477047686151711791497565421007469776052559461455727553496697846344304902469516505125028555498421089045868975991374701149986771145126238979217032387892862478854321174078758287139950444921416915183760612004488298272910952003378882565302522133568190155380279722071185850919263351911433725588447879424271147487334125052649197079911261665277374046575941134810137515370931342565782607006753411405570083783580828628689395226269226069228386189719423144891118294223008407576708036119655327247496090887476703881406079108075422206535589925549930112607397072201610263804041624925218278477502075120670888043167409512883024010392030418086584964123161392789222938969033717087225588295775027476956027397510233834470986160448672000194054259400230502769935645825513211615605225831373643764693677651392110986977428470474193926757236054155484684023446421952683765760817087719318365853220843325006502029222619142046092472503799200283821050370857453441695282383194154743956181237584713492647613059893609978046415770116344310445816319150478934363391967058843388260838998546787795285415715897941737780451396433764910279490871009735352757183814951002748957232297459041937796252559120528793117128665083852653711531404388872991910841629107766591491322276110476079632330452203524804455281177382717591093513919517823756107917497737582937707247126023289538643381586386722663062609045603975819293842937669323236806519076951642290805140515981296706910115885702349940974678593328786378563325542582300083467000553255072448250593826138087472089276623249266755667854365308733766278330286492501096678318530537304884810150645909864307513809767460767523377563892102326487862058075801141348769218454266368599860798491069992436566186648771073149866701055583603148388967673927506196719055669079668927850014602924238309746073132389634400417897726461218775707890522751167575820925771118631904370952426072771590786131649420084748273925749399874880482234120600254512746151102353169491690255341044578913541418293939726941137507797997734903547604603992260136732424575385515440048897103022557260246331452464352582000059141155775825628674551032783356996938865263403098565047272787571879762183097808466807411371856645481866686547341667738790274433287352409668816289521297563901418021415561807969022439501945607796449259684646450378887940130553129771175883418065558858198882986139671259829907973390381550805427712311258059667604779090220091454011778063256910568290455515318347541390131748268127818402295918019289156278229431041968765984102429839314296994781605889602405520635924077985733038533546030328101001251320796267570258126535478382583758166444193533409150612512020896504981257915117385031710135805737466781145551171418572651296334021283909322454591820814052039645713810135608243506960343377171110423939546483846882473984078526983426267074236972732841137119524438884560974501002322266342778911415615709751207408915733224812490763496604345576077533041457381815914626167080499180819291889191565026111289923654677350294464503926961569724344384002976709081357701833664845274231551918015318654681702780426939346032211142322347732241319303261778910251536612761465614701828472476797495034977505105809742618379511025793585192601126125994610167700607006557755964393192668558288522775575712820569881362907486303937249952536294632205814410217292730610699584636047025006511291844821343710734932602720624436655691187256342135834711904289983820367737488341429599176964144251605609089613469813427459086326487684337747504281648294540996846064995544772014331592534339362523148613641338159427848947709045685821624071895495793177213788458000304239213748887046359624943907267197426264754071614998036854270733654063855932694657266459308201374275454727495008675838555404151898155870211653189328092106839760064106728185480121657058125388944797922225844513352841010124327631314462728819962116734707175540189184327242480638877174206233204677095029243060885349835051628146481095716673225266975855425753839332457511488986048152134796629589237066431947587385187616972602010850026044009091027151037817435524652172841679526519322738497586871573018604705975798910531501494632388367155606098285856433044287855727755241731261979587031094687210990037368798167466454554544555590697505699888033785373309247729571876774481771261912190158785840435896068217938629975050797736510113114130778851576279964757055889389137148361727327957515699070400502464167589163307986871994071008722422290831297007987969154974717420112282891386382063450956738281582974560950670894820692040969911042581374619181602759481630251907792278085989109089009892904704881787663272733443239806642864164336258662657444905052459284609661334127286005191575088343490385838799739896980146655053498601495606639369106573686514582435384161266584678717548045321814931249493599704608492190664836792368189230114836655144732416022220036837187320885953955849763175694587318615387501394961327551259714811952603329365033581683200775066957056323037820386062565326776593241504784853943848717198310379452666732881969233118345188529660465380070198336139867176344262568825991292009280822397557326868544701604697996897099793885042514068507628635032579245697472592081640264443926903763132491196985504032961707922305589019234516907807732699893693205544173892316966336490766439610408548359093618347798553274308974241545854626208438279557771485348982028112492308288016498352077737612062311509022915792427446532020209444440506596265358195194495458510180487521823195418821097719710764471037856663378392486988027392284628292481276957137773941941912925706685844304938416986897996767421505379394035139961737908514248759158041608432467515513090747081313748185508564607506206755290827778798170328036666632913429222736172224159591459765890292496896918460065604059029222604205777223316522331333807850301136659736839649249302578761565567662382476361702521740467197010398798215751012058653495139079391102589065483522969606253777986718782447208866888839978802870900186095310644080920703216027275810264211836223624489733859399967158973702068944950026342255102088540464480501911907901905905692632482988020132169230023693417622955870990322884194092940514712458604925844819566008626007759181929889632635435909595739942262854583980487137125955975149354181010977420654151603672750434780636458603983065761383167728360418297203867283672830522652759646130664001481627755839073795382057896844997124315100323191315842690300160950275379419940379245055497848363620157703350528988482602743145048307949442755971059441857727450460610418094690466744097577781736056852916570696260797212676270054756907942825348528155468906198549608117571211578144716152172025118921213414616490103974490520860183494109384312201658594292276465570054109423337197269567749686062621519064023744430512770031825444672584157569975525923306815172541550860645676454700194925042976195681949206667495370907988574889358512084669789979763971949586741512116120540403122954888589760741371596202723178914439643069382043560843661935123364473748720774444933566964658965626969856580827384352839604938030520416772899059048977207571660945841291856987228414295792492246025674487210780925577523340153380558606043165730657018798338249768272021547753956363583653230418754264236181902654805424423599904965623815521572117824606763817804129122008752532801603981694289569419919651013635493981231191988087003084085756743343913942077116012746109572193219513534672183620732853445031728082658851578782556495403907099178896668104344016993277030598570812122767274720433619234216445506908821589464866017079457390300200576368696580854321469010759924295034343095846422768580996233668959223140087221966240389886430807997330477775153356740812537440611924933724622368153800998791072252968927551350704064565461400867326893391728667746232229683576190373327553921759800648213434268600932300835529675198596496550598445306069327895013329716931642788767217353367760581326650751812226791299384569882484259412763151371623089248101668636446352717268792976515276242036385272681241533877473553060769115127446918787979223048670135562962732503974579092544708846041382995870671519357406971314665320471518020139769549643195487938221134692661816568342232403373517216382631088280179070414041817619167776821730562701551187177058492481464983287438065196704013134044290676286562373613871827349550218975874161218966163905572338807423133402302470551709407578378772212581550700083347067556189093884488498288632160975653181677043140766443951464889067364324994247639601209842437435170774914586413852330287685813455578215652394554117901270701143003011608710567962076166147458251131838721078958718853867327202588785769858659259491491271329921196698774926660453187937460013809820724476648918791264159366526530157734742231898934862028067576377150522295338735405369639263487948167941302502139591241062872569354422680765674447380087593496945280443519751952730959346603584264230624329868399820666530007961882673555946568600082051079814602636562633531494903337705498116740721742679519666570631229190386073953793029424208369176044052137353399888966322806234735518621575705181385239331206827318977576083747254533694127998465019033425357545189751357426137169556749710779509431448922259947716614535561399083296559391429361811756787237511935589028016296745771656246355219977680465728871023502881636556060912306642367148478805673622400205452030168027932156350053745358200636479742937880393864216439783089587414574741298222896381546094562697637536685566385038267942766066354258537336021324083530743000358425100642057045275527595719330250125449907501917126034231953471026889764780289940548227014867229228755758245454690018215831324311559212444354731462811660405323011516543474131115620041328900866626075337952160210521857733606090541252640330063595885977498254244357875263055663335640984770016297644931742540995567456101923324933290987421062388068153562035813734858814273908626914807448969063208551707768779427095613757557029207154642358941836958209895534567953662078375291319315993073876464690749071411937926593536935234511004225622481671624571840455487055254803090427584404906180524630698726525470108867897759070792817820082269855297779147031125731558815210815872261992247678190806071425748752234406246848203784842082459433907865784911068753809049431629092428468372703944720134552369418690060720751290087759148495635421315075860133732178686098771604717034019483503814233150917984327868092524910033971541513014462968802610591505660357480437606875103729987551515000683165921859140702303286143986981531837998787198106276801400042588094954424264003726140744271015089626863157177258699217093906953605923260954863435802493091972189506356076022229801512769849423464292634537108468902687295501962987195143643489747130204219620930822983034027609678158108006096185191670927454492867097361769772226199472026043159631013943712962113970449320172691963838953032904950314169109958382182331234953889970791238598358861520858790645365984189899583833986463251452154466766168817341862961000070135771624937711365448987945198706298820755461836107502761180535780272379794116349619748681942122619440472356881657661910030558082794287038565240267860290990970360785574715058829045220973137303612455737958083621719182988497456258012701337145543061563440315317865241398314037518688863480236082331564498972754238316421949650488071839340112214515496060598191053414251426346841685182664387580734106092189726744717350305285661108191222142518842745426160364096592695169556454415727696286237323134876454346376717218187360082254016579330075451902664200562387522882870965450914731773128979314832090374074251930143598995827560733460896743786646510647350060770422873473245944307515358793399329180084418481699797998051032471775071359706620871159373235501791669441805280070788202819662492162720466938622016258805185967832495919305416574159296066903818879485131960425200994333585490730796600544477567214222040598588294286449751000365034729182196810136013646203442124344743190832604516933763114721584621957304660796195114054750990536619465371473916279090609561135897709516970007302672302146155051645142660187382728993655008163497929512097398629188330070811797584645271252860537185968678423270032890716836412760556609367658582833465600657881419609306516491358817781416848729404945366360726991558323862199142704402181079425152553666786462362293612683254346068287790342405920985078497266536327346465580590140108600064421208457641907884813910381614730685314720951729707825997708608975432815762032159998710899748010328572728264375535859335543361364826054430280914979998234481409381021937465786904783101776647214949452144000803982820566052657211015763584505926652537003245918797550691328085813866520078851520380554369875292570721252373803401088496630643170204347665280234444175475321131540039661380446184973482596441256016086718433238857886307032442701512115466454827887801585761769656488032958043233077686890226698706273127755643408132221989110544829917938527532058083686920290446466988473340882518025538557176869030356363871816395078901365731004212579114447259420877768315324236067452368096976914561746223883246010528913536793584002241369640617144188902763433549373964662223125264375543207129452052732558843482890158704778930130791625148394517906615213552448496101968086012184811786928685895308006357084234399372601260779878098268250810267218275850038193351724251164020602052251304832031439514923152151502840433737077254146080012185146269848452909753803033180652058204294182274885792191810324040250489806621842872324712854369791507686718376336072132368439794041134501145718697034688397619515181781330384903567478672211422954051980108797238657456557649927065292198901941659297249455207302630356770773478589140385860300758305860307034418527857274880708203932272698673789999138189081122795145249291319523182385764616824243724018103127233267186925027932518905124121420615208507246822121015323318287170387991522928814676661629527347505327174904826164228235537152161469848208901354116366711716985095836658927258111455210766287576695047982727839485413975721920576581042548368847289618258256489609038975209228395797364099911934301684396172477056538318311197351839089468454697762189868625925412113300477977620463545069951152954932823355867752450007227928897137878143303476015653602359685531411882121385338561802122778436712072200811558833691800915327564843147545459431868482987764823560291027772218928714108859671335389637594368400453250719112853989593216902207915609026256014360682375512971727302336050157428331501393722851937734935371113915747707492594038995047577810406045035599622153584180832164905721760829612131379560305914689065389939360416515189783736571146570657305025075949242729139434059696758764272462550863663519491117766820332211599044149352950734719640061575686766214152834370217535995533566241955181985830432638791041471846299525291824685189245284629139464097853152915400918224073480336428147289908654080949352730194041273926032034824357484615418300863555436061587496775448040121063953663817687128628176788716153775289053528511005710692499335367675940567617132600988735006105358084861432911113389982137599417055201602682375109760434602068346712466113867820468793196421206284227303510953139684668485818897914915628445119946055043229990982093091178539772268691220642139916068366854860013488285347994153983722516738597030952000317817629936875743508324574638167975799888910708181633550463901822751691804464869779643567077960808033917030062129955977633848680412749484837207095191488530730933606456544454481519737189377295673229471237020374381683998219376861654786538767938896562079690353182769615323831447050466226576882187621889048071715610347290686616698216977142994638798574878372178529149674870861814452298697423135313028549807116450966018731831230942634913905816431202383850462533263581598586324054472011986558175332808916607384672520427815810490935181203725363850229283752759371145512345428874733713203127809615147898321549015721772886848642998404110796236397000884177810762807181728580984482649849864341275015632716781162942237953965496083539865818319112291957178275820590371318324288201666815716871312081851473900433217393829769435660054635043512201529846432300901088583506808430721976771887739891398962697243654875844503219368787172467474705728156345329479407079648735425517236629907929327474196136525732283599802755815638284867982457010647696132944629767728973061046241274529387800745742525971593041006236719155705886203143902829372429042889791866072339656915128066836616412581738252381032696038768495240426417638819829306086047249062072660644286193963675912974531543151877214958514030093974096076025727030107257537148218730954141552854295175825283742900492540538845666636296327652603499031871394227960687152583558271497917773939954739034550892037979845600006992315215678066664814223136815741917644948773234969996615524196859333750281534018520083593605444719654712623636137539994007443945314774551475514670970857940146827707249882570315374344055684100499186883332158439720566489548936204397874090408221476518261062680110899947421656426881145968232785012080066182846840040009854834233597048202223782132136325977280855721333330366332469269597254596338445991456339703769127538471574477581446762441988943607956089109975340431464045140001054777680440421905649627058069258742217205507376712214768208989692553749147009313474410963557833286532346567391314257515881956779899065997586794909207011028143256285802935724307734249842619597420171247984388440666151853286775382647803355011136603457450368394847433826271704717645139068578752263540398961702394213889057179363026159837230327302822718875428771275578876567876494215933738908831592444244719264730379137924007853159006386440226156576224507780496943218793328532527824663742107386974196334050386804505289136872306684225971499875630127820627395736043658836871428260094485246237363406718490982885029184941644552156128110569353033177689758434890614873183054165326213238597138378131682778058002843703688519823615717861842156288867740533924753986801839758705930046522413968654229604987447775514017691435393233772581831229960622703588685581743364317879704091093677607830077778002707751449426675589215356642515981853470278400982259385756275111711985227606580083339312422791729928455920729030022630642400215625918617268075317339592662274239545671358948675815947649364968928746682865267167382653003270561272722122362244352537690137567761905476384227065301752758392311495389579459801816961772402939547414988401571609401517423026787577883370109512073894781530161288750144284495214868351882967566253198625970548489850264906895082390403704012927871682939199624756031970644266740403096312561560099684677774370319802844545183781580039528773285078418831867786896831632189009745764162476670120385320531368847843862356492262710641831659569022927140449776815703224583972766355722444936228570764862543258922126543264224129720425429374408773591828389785244016587577027886069516794863575432516581912953888353966804097514747879823572091882139968189337650547446822613080534844912209115367680198890542351152369506831698014448667510765862105242787924450887648359808285834973623788091170044346361245901277238776403273881582233822744676774327132526739736640103783071733668603341237155399820391032727962437401810514440889350587566257196593069105346905994617249012909501440433616662091588237967604848236340933192456597178778779681466521082397442056763417922816910093972853571827753301448201909981711415059153640271300097357798668995048557005486834778150777999083777637256466891360692042118171820991489616451554756126639908568352209640151392417847179637093723249642240908164126322609285300388464358164528275402587191591872074147015106055320018257742648414167694411992224046865090699170543084620489378569141127841909292817204141943948117566165836700541904315574761828316388071279620719283716735829544862174845270425514401376870478658289083455484158809866739972863048355633517444899347828072975228490352597973433272549021933147840627176592963894516270644925603349866316875903679631558678929892304996062789862165326294307897954981697549816001010941273190176174342127582395542377285262648793349996532773504867029844316328603499781697462708496392321028413227155227977298914764974039591882407384715700750985493145838142257446694196530937735057136837152659567002566542701064947278015309732358512133420882924839328404005751094667503517302383069624796232354611604128482739627924950511531081373148754469657188516173591874179119208102121597184056748549513957909722024524588694898733909736799191037997767212805119481180032858781639465842780896615708928156316245144272219052126810176761466493090206892352901868882806762521330087391053506034601953469351219022478150077179067623480992566121539161278687905745770514998262290354965616311796916567472411499738171365576108958635794758101126654869916957693153196861164727644555965748874587156019744006816055678136156461861265746372669265376927558091156100764876896753342696807072848059487649408376010024866639937551260808498659130505682544638537285986400076876708544836094056458558636719348292407336669097639007066880808557298749573331437002330153585868225270776886527077711848935975367171396562330497588339886678762223237031595626034089555246233765441515032552185552308219383781582973644840172553552471870707423063173129887221342894637876115154610569697160805951134708272243304155811277778531338751890057394975512092877339068453108768715177162859659212561909418314438310394391515698969311413747256884485806572026249824127167961240884167774343495915646077879403090211739899634787184623005146662545621117059967748759005792833658486157547475042383814976853448176683198185976185262741834782554592177621336033630643192870612685853862943255521485203569841752877049342419656520880615364699268206126932476124837740087769584742318143785221382137672867728548491555153742918215882353025071986113154059158685456138535291508973266798227751576936858175191955827273716500913738431018645425864045696143428580057284192646229499937105582879882312180811340549096492093570449586999152935425055456388771144543436707131159543775783901090037712674228894853046862183628014630285230116746599078133262777666497320935738173890556038994563695571158365615538537936562707553184044520892542010800629636193326470854114862882279429390558933750427997911539969408237386204918018548633278359762011385298979860935380461125550053691263802121036267585130834636735446259847555296914942202756196848237225592751295314767794362910747120954176642842797829673939168827577880897415755128025691766426155517946833417222743615481206189892405263885894869659413063523337195486221624908855949194522596658776164941658181845088046242864745098152189537563001455162105380089067016575550514712530802646412256763085032134354063182620547574966841084531141430165916428983553132505300154659897020405880223910206754189493253641218763312067192465993597148036725723305509225164053098664976210042762332027456281521506963939932967700979447943018357001320394872902448090292136365013299816618419726102689625095213915130129604001955680219876951979686434698516838289905996173509204338737292351313748095029156573647683824786430148398962800411301323942176193930006156701255503709490759482187486020183133415416727815657184249806184414006331655999299965783044368159827444469724046697021798588210181573927259772077033169998792185485121704622199357566121192632757573136278711629525693149104383977206474450333410670553778403626414303286072476328659165275060084930099074744142569381507323042338272977322738276982097519353859306356688511277662104202548819451359959521622090492666455703054755438188316147901486020807569134213412100882915698949144663664114697254934458134963238367504885263568362949423889428206709833097732845629359636071059655298906850663056586271794778851034466608798732016066311323610505362573471751336146376709746765239020632344979246036508143433079057358254172572709975208862951081778951246170824540720931735587922407286680908039368607050034265112276316269341290205834184055045524054661176137706033635497352647894179573331922117105934013455111029461335455975649099870069269389821049784470173435513238509419710009673307478829344432330004684988249031471651696508896519570875802476824623362142354673186698287502163852207885490931563083045268934556038000388972896470606095412766207002087024435646862633688407847565150163299896286480068831198168437789181978580389250187028600403945383968577723506280385770657548826814388618842994475332281127286191610785544330513168880672978014049702403779058966893590813574643258425849353861864559987544712896922982020763044728454817791641326174514780181059333618731204070384437868800857187676835552090671219699374575767854657039409374947393755241420177815030370421572069262635871840229706125807776030294551666970486832513496361464569614745845524727570245909112434222009570003266715524251263879174114409180383841976056643342087655492217251105601844107841107996517039389673354733589966737624632894118778923671095719547964429281551536543171144706359574959120183987717271136228526691151802657796368085969300499842138546647499141383365298229424911669606657406110509137326547796549718374276602209530515674545473813047585246658882760056559527842251086447828456712845247540864263811758177827315843948409405638072477235253301424676618581688634409209618105308538597465660942007556128886425637523529694669349828985054166742004187113583073032967816845794293141981853938871577497291883721168592381493211749759955436537146926061246722286415502395696992888259287017303227392713640836813227045723816740296124850967221978747233507235050617186456990440228774590935018210160033246860623185051960117863171838531667102029276610177837292614595232829139400569439200017583843484064041704050333977996220815861858680782524364544651587701103442693150766808727130213789303666270091674080245681777196785621503011025081771110180139742868020844701735480855247670066246368432184062140373895336215094827588557822188823857706648193728980979441747931065293868813465793505056938248376813394011130808956278306065477523322357134616327412689208721173652429274008715435464941686164710770026266323077527640300156390687752578757613821420831018342581256128512180923711471947841783002781759385570331177847910603659255318977539393114330407619428074337766932158992218487988275637220221113093222380838213148093041654852316009174953666647574513130837151333248124498325510607014089260929264353869656579208030778198944131982450218254529597377720573832733229063597100268551672509334753775793326765014876371582667043714431043845657409358362413665078537727223643460822059292909060789154646715022715125133692475760339614524810598156027069378208621130219474211945916756810227577518849399031810259853362513057476307397810341308249059657310706141082208751845640434554701086488070851156918211511030836605701787931499185640727507573433057142500768364670843679563948935814543567105741522743839664732454658804438659785192342650908996845640403380314834708156717490585933314261210760802716283177542591545554887536000097443210023478312581707607198003534698935551843076765236402305615315803161989618627350550820063653598591755236486545372742136730144150575670917958729011388413694766407846407474637836257700747897481792093812092055539038339762804983018105220044169609920383685933887153331043604344132632007403306621233419215251049600795483245630435330275789259402693484705002292249327910906337445606395816874777053002291529981617053782935370545417752794814158970337357655142649601431565666433932689047836512399342969024580559965242018797747284143606706471208227578550838414300770782632217146561075382953419849075833216482551697094584770113439755284954249561968950840585661056099057257703907066963625299908291199582391947063219799477168931051536724874396119972637200990453291347430529279052623472331599690421044993546677600326985515996282052636126954894547501387314919408687884414565125409813801950145596006394690230873957094545336442224158439877367563442002452825957768896411949008426753863009596353187312479303686475017565438698533875340496314679277192877730606725927930949090594669112459582610884530003265791159860409544886095380336786348358103898281233250729551538197767482503051672839257401755448899878800341863983807348926910307368807700898085359731094826956684969190059835858691408175540205136839200027248278206446800340149163170491306530693972527080220452404778202250976602143201045178776035524794286812975229875778764712338710534271859407732047048038374925973984187178988503855671967971374526542793508366260185507069838858999297491284294302707384667558829916856258283969754668240701535059220321114224016819163127332920638361926114255731146842394104379923859321654511951846752660595080445888252370717500907573107966712015167276518207742152725703624889695051908068967859536343299457937056667452784710695807458023339785713233690872974039814445881482864042535934887061302593629926331514786224649463694363251395922109226600400423473528122846976123074111356598767823346779926112308927554003324849766600126482720478607710702060464787240269771734174095618834089984756624380438649284014268551310245229435466634843623864625928839505127633672677096504099261102144067190041876076656325629672470649143812117744243866898982231641898741528555986002983610111890374724171990443514847354558412388123580641279352973987541223709355679684425407246751883551987325616716604347445450202602807544134507903534131790420589573234159275017064899920764719725590345815652008109320184298618423128704518495038383525091263310938260176669867998812166607980617550311881970093932210327862495788410944578033988571799665194955943333839795012643871903719335575440207774016793220922406452173882028930102140913442465112356357866233995208507976012468221248217449402255378491352038334073689661781262454951420022048739737736320285226326156093891880763574458484026128004882348612189857669610486150416188533597916599741995955478508830476164586542854275264366274604410184921296082547871121214035199870301937878960017636874600018297531707678217676531994954724035704659871091912866117263094871704839310245635081939364174566919655568979076415209140397459683248430446014714528701893450973305028603251031059343196799098859935862617017690616757119421829351892402390841280754552883384487496618100525798707951607938054824565400951213779536925379254991495012356175376782589303652314440823022857257217424693101430391734887278081828859882398798877214682253873140653449582643714916430586984498229142227819512161958221400174212734847090731222384797867959376177870825626838752770623718578605906102821199450169702420449208755417355320142599873610649185674763761489389150772563999997525745989868455179076635079144404326413830871699217199034371335039549425725616511905524316233369959513231921770887594461017871583925385796000255323859559612290594249374331211661020172426621008935861167998631684098094776218776982899151793630296830735120754696934945414319208024522588083501537077908410275145121782646573324790080622156262913186948338284886921852928542649946395639412091261582069108664583691148903230217996338856917878178024275436904988003917892907920033437154659194152924186768392654025833513970387236955101825592629123551150153903498607298700634724604235411111319591950816592095818184599152902573378962095277831362018862012445973947762752049389710791810042890515734288742559143508595452197648573208633043532553965935410137320720146651113991661075350260867490874967712204255806213365760758630533919160767378409526889704403920991308185221254857797678369449518014502158371053187256384372916865375146258777055977229899140744383653992011975211191165855412200359768602781527925714309666666804235937166188411495364705646375732911764879969606246477363214646082628482454650878017441841460790354822157308916443053772007589160623025623391067784599570674448286839942743900335392915185965557592182368599447169036431046419799033930225003146193348600625332096260953243196931384188093168606985267182364494039348630151549264583517640780559825350267912216727669752252734306333406956530342487922043300394398728513836495829831826524146050611216345744038006246976949360246268434330297992470354432688950187624641348213778247734823794260239655071732749347796812461946945886252705488425434374715476432766057054504526155684697596354975604651333541854645358620920927050180581119752308819950398157800454715336594589515825214907919643315043272548421420414618252986693261375429443392001746259433743268505943955676350846931483372309319981395864969141632951272235886896414372543216116763958396953746784873432147266943609039373950993824444233180820419619059615985055845048128926301006139981410447539707335128870047687089341766757699040616743671820321248737416599539265956663501770053502111092375526802567352802054217160444270740398085500997924971262423462812734595755829405682451699826178472068984488405609804168470911266559932793004837777890400665608567760105977728474154257238819385290771681530680698346195916207847551404804612450178788762962526369785674630335383058095114996348044835856032876615573473492342861311044698973225741259129964771473765064622721800246002174884957759838980387334232327580206996080190940289712872891099013910063182607829069545665691965554832627540465607965389496514606142067085036337211937600218736641129649090238718039159018515865336934503929742943416648837977367163639445182206210189150100379611710267683129837192183580510277754946241991036764437430624529919252944379948808186439020549580477095840864004759675628800890584563555773428854799396320493792292255901989809572458175591898484728355228623737477834738475658124113339876430301647936006610228273246325882111220272888894087490522990295861811470802127069878189915835116456106909236238729650093552631517801115876298021263853433096425410285579491334331228086158434007025353256337836603448765165609072962557177269269351697990489322014754835873465914592283959131905283018218431551223051779637942730083184511836889818023558621313806267435713745864143044815945257458116682960701727291257175486819927325579747077967325628013780841423843147723169513712943404834417010829556612909126932763683141722771440704119871711078115576989871788453910746084228500218491988060611950052569863624783136976947442570895691872577269776467502537529783136893539144323429484393334795319977764387204852532304003967661613426237513846809047863344158346134024544331593597196019782431995233684646523423091977949402723852777103761495274445347823065543994411400364723685668083709066850037867719951974512225786505470308636555271427987117616648064117131369061668222529449436729547348432693916783911656931260826472195109390560248762287313732333929719146526747974512921154406756399550080142840355014219678231212502964641636533611230848149006214408600214645214917744728666666950987506140386152850510565667699761092491372764114185900664605610367305892433978152088591602834860762410974147282640509963779020061991117423063059850683875308164639502002617524563427402986164859395287104579402764841983431874653918815766329231858910142062841536510749124661659352476331807370188949965754746051603839873562495910800505128536653907001072404130136663274264391555777698509963824969821233742511687217639581093461120049468558114757524344269942416282526905136481117755988575667600538774511612081525282617097546726611673477501868960817110067987885207558342079309795715885731739322854552088097609292861882713873626065489328273598573662027931463334711237112796334299625321783313928141392952818732267569157739570855739814769062978946545785690094745737292995822106373227972684881053761499905007341278561004701139335148453398870279736289283666194956377178035033197162548967979875839054795161070000291472816255186274345648672331985773769971494161351150621654437926399652134640757810279747879020818336891562306718269622558619148001675835236223589535373501419486113339507109958063596167616181754549137867556932442546543430067145410960814139376491720162047887785323056471638510214974411797705623975789107681836538362793967078395367484064760186252662236193856638878034518090002648486149212449005537166217534567293243558622182355885562774619738578290336924352603925319468590012315362064002831563685397116017634251138447550259818679629817982983519700532390355152268205098517830751698866077722271316868092489643654010986515823126453808233523725268954329370394087211916983425536395098229376049536270313243263468489339264012409594968513707558002760287617120103346172264366658077957993277872484813758606544484200602528908502057607168774970311130804576836088175711069879621262918093924623212216499379253935852115243333935829963994819598614835993404593645722526774401217106092762751439140615450947219099956337776903665061065972894667180149607690877115496707177492142273864690318077779225010579948399111485821103606724666147585565005508540371016051668441801234069168874739952243485739698081274025137009750398996473477030242948585647996419123622589843899538823530713064731193088631657272560457650106440069475125363225784914990031734129651336104440215874916017253704798561385983739453075928105439545762489804705956324722873616869791208715347919015832926513968155338507049308945147678246406833521150362548676507977858183551781442728048325204281610043848701760812325491366953493621591426942432756084384401799422633705103608933414602206653987596046770794533914074365871081077889016629444213928813607400582748490861421875498063393601914449303763019290105136283287179046403606111944084353743432862815839386693435263077340872612828514908426171689439463152804554911460456276181130574371822601924718900400706551962993131324367054071168233282144341480223377141655356367968270042058571074426174103328990592470999579042109657935972607076890833159237148634544400750454124849741266855045342433304568401928420104958512762168263092704829739405981191061357101742741642638664662719234518658652785911717516519010765469677532482293095818672508393215951613166409434491213707887061362503581287810801391244909746853261667721972678419546687774001585500086640922947829742983587766662416770132583779862091173533733704568904570395384195182640781298199831341772033608066601766651809661556267473760833755075904141877370777047981159116273569389864263223110761830916449816478474579329882668513895588658467641500521229516923932700947078957444708781259845000387291486933370216183422039485215646937451927368366267033272321353568539866487363209762123048904671681353695566272365676675262675357691456857038872341877111581480564784690110378713150800856778152030814030333106226954314200474112211445609080849012478296420710307037716018411238658604208291083779791167825230861471702972844893345530862311111375316383823300105017879988883718662096186556785068375063201170346479422380695542462615538503873844500681952904645515955256669287120552973413128809196243977259424678916576397947902070091059608955344078163684505287301364900119896560671350165122501768266042327572838084148435975551774258913023645427177722855079820434174062906727067490259730879436400714396517799944290460322888313053948797351841149290234083659161826152793943539435232085008008711511249065577021562464694197194991017749256831987109542007260994889727615770378128383614756102470037274448783769253459936938335360752276648747546257191660463529704322410119373644946969909017561064052313325189157764286736443522833705356308779167412090719285998729939893418673072479860826643814105656960211352397162432819525288116895013256400284803427568804985278292820428296257908056993826050243934125244229293998672120939631586925696020580657067168555717114171583639234027644004148328857331199434401653123149859472942692817102937030386648207527003612489543866436039220372640408243557226677469149292167391397016160478463946523521766095067607143025828306523771138973953900178703654758931093874438228757620250711104272576899785948797990049723236579912395029493296197908196207433016132064082128686324052306509120423615016471336823492717106109902521719656603766286437570961884828066285203483884432508894543049697277794153180109233744764938923107337571171216590007833721250900588105344859106000315429553568293870878182950714032666476109989434590645139345520925566413796785480261923667421318363180981613319522688999447860897407452569388989310528871719450991197122862565398217659516051996250860152604939331901071604287142540191235879054737605018494904650844923312747690219020701741337265746268701948308498516379575199795837385561546139875062881387368119763444336712634951838675430767967636458942245704959365831192571706508956442951816142698558614909381920539198366645913405608503093015052904167183241699611901429871788389599973912761656431917295407158379174119862350340417389136304670582390897678090869901020145605769142657909446891146220687952178424299901928200456855780521593753966363842688870232926370039762788450450888232852728858105674367197742133311515108803706447277391825674083944943662646017518905318685965734302150764173950632764952283007251807960230712696820108225122006700667919556305357062487031201596507183660247093289266515611492098389065425351931209664337709189396103146100359620613682213444319617223852875902248851075224581154462200948690100700606924318425650176871871559309604170615873911765564600410202112305940788334277021458104512028072198150974262199846104702901749505738309837240535446717835695728951219457992839591872770419754386563466618307982644016634565768500644337593992185835742489735531216029642924691689084489891965592127215742475094364654693164668358828224438934857725959716530779718543275091590455439916889310832943119039662054133089441461660462423745883541229021772561512621087151237022875767142213964022679856806798301048019471322770243748822351030158025399873450503324580117734425247831267628924324268707584605769715399449782692511522284429867097696444597158669832351639854869850272728292632259855411322057651417843257228735831694362544097523881508452533437939354826620361615140226921031241193147448687577759584059636182405773705438692311023741227106048694811816689466630281840193120831832338726930629210845605283116882878644138186029203154045166986076883241360869387782995902414519438335413788877277777263821927920103460470002784730456946625618776052680779074132510366826997282784530739794326447371513936061066736851825279830897897157337590099309489996127867398578990712807285980683086811499084555926818302734039170417099394346110113051604336334220731826144191343553131757892696594868968069266578953933818352849630757362581201119373604824080690406407305240732981591016991417551672891946455367688233731242946845610448657375688626214762003976309952263080849278229269109095923407094808873798435891442908003153498755191999890801874986550403751922772448574644653327108223036339717489209660036473605861392895453935547146300511140660325234509514716886757307137414565922757264885385672510294546784253928032292125087057801655059901236326546702863647820437190692120285256328360292908864661459210128558675754584593445813911132332437310075392051564216234935988111790529397672686956248462707129506770820089863197851685348199043347861767521862486672348719171516951241482723454741413372896522983367134759528785790100622937697555981627841061117886246393226872901425788712528736922120369379374064552486636995484898376105789885295668689119383454680730810223073313444273280599113758191995876439736174093711440219810170462738783200517255653589301012070433662474994624063475132338190410413844894472981788001299356864979963953016950555498324719706548515022074109161830483754139936310276129917526214230670481198637977193273603322205056819614848763289292960562218065680417199828671102446738719181726799831514705196481171894110627164923009453001701238232604288260932830338969620766585904304932859732501589718818895199065275297684616183024729307287135751667682908195366357647185644078128520956235976891110034725823217224430370772585561310550981377345912407187365046793102682715461581647315672875725307666871541984451692371100835957435011440369527008950440969593806250705168833078507337610404102720277196614378606329595908395978917687576092620485253011026301571205809807419264364247766597205691725854869898713602090469310812883835345276590927157546277386431200172596298470062291344956049858563418138930526193270767811690609422320851851812027469769197067078048210786233281823644971197125500890804239359533285344138724593152470912493982729212116170326984388214946703611853357718721721908348437494056402212340145172400576542168144976339205514432146975812277304163697914766090681299279961634341996808135553585307246491397801317323502942335110381389923067658187037888692750045095827697175085509069004383624146749646504527494728416065360027498918431528997082287104183082025593043780462996242916950285004691552823327109812413411377648339819501544953934227123657366089229109058731835685383360004266930967494620175051887163637673645741598692301168283502122390762283670086838263726351642875707301475784625989927182785668429062067320254905554306338670894842365438773257658883327142352991625734890902006984006694998340093346016948089628514725770530508985773815389819331349075045149020687073442368336768313443285800129335236860565587617313476087741931788154574848875400976464961013195139024293642117307084677156978320166150056035176764554669391818743919176866579097104292810534504359024678116308473107054195804946533096673765034648041707053172164679748064766461606640131162090041248580946740614379723827265776692591862925953828768550001826926212337077800851032464434443765976349950180132295988068504514626127457924182864674184670106822791844293333417216449033647788346009960654301233966830687664332600944999108479257161449228636619924103059825696103196964465708627635820972741258774922504071449901626492823227337801173223714397728074797410360199177079474666632559813119574498897091682265300582332311644544892611377364380835843198246393962343139763965623600387458208065349812331266955632709158082394673560005078401672675687611618580106350985164695096107370598650913037310660282799145409942967912679907978366230476475821475799326320628993641209446414857116685646964866632665255874444326287371752707783709247540231178827106907520074916091624656058080428895991568434776734321908171918034630040517436043651595138595110444350511384922551178659928548637565440280923395463603663191939508581944496905558727952619573188557268000147128264614865943704598457312108579152794008077174713078809429430748340347620551934039509066330856882523602663449226205473254822883010939447594446739045636398128815478532595876407554766047899453632329840985369862247867810622454192819866837320994692788520072239637131423614247162890014280282187813936431483593562245839458471651977843607123709201995223187348648036830679650361940571207178025636122021682061720870391263139984637462439903104622969908538830811978940726624179318587217060969230708263959473398187782596892329600017990009334499476627220064763334017095216063835729324478987729703750648722588431137772519957105548382385273880109739579462278020157390875210373882246640634445874927810552156991620228701755662417284090897024635073638552783174261531893090702423422232970070597018456453467652196308048024954888729030496087114923086238417805049059846708424365249751638986249439031158207305162675352372464872757332806999703848712679863177735506239775026546572601216917335246108288842049552348201605299278271247264643552963336710069122384490641620605759354347727345490998600282708224175707642679191002772480442307726366507387333780342306392117899383009005576821582587744383871176978770782484493030347351402904303059131858683325426294782606106434325170017592583602045729243906413513967528419891307551303060056699048563990890128568097792965940353898817777029961943633519534235691649382836587932225548156739275410276960444990652586489214212906220224360243153485874969555974668015530921473095910683523191270833148569478449814680899921688292668067854061897001220006010949701619009707791225729633805201978900588750982334932708528599850440752513771398191678978339682409572717442581162938320337907823830246779153028753459140631636214514214124552767018612934563859555163384609351044513581985726969515981587990611527399140405520003083936682280203211161700499236938158199073552117040664992381072590217491919997531519217462274979744702681452122385959981689401835040119606788190304170657122641706731581081631737612602074381647747755250718192418980328074859974778283970823694941273190621921609330750992295371757390708885980440638559050576780812193991288187808393587230010287357613602583354679501605628576704195663123276003381905373217668664751385809433452587864867414615712053038942938479252409803919101636751408226217742557505756667663087075353754810756757405125446641823828601043202772341139177453654362097546514615875247248882715159954653459674116754057893241297845582771147183705500886226729910944772156182841550171394076348040625560451804599138040156842905922255810672296200416336239393817831184149695918258857158707459469735984333240830106964181813644193642873898591036536403376031920548146613979339591282227002683288563076441740959334112562635833101037362778642324311661690426351251413303189866658740889363137480366267013638403353803309259555662524431871887993603531207291994987458658472725043819454789484334659583207206291017131176060089867803205481631271453015530999996057285460127457278711272823333438830612793862545798205982409211437415366420353811186729203411369494481189439561622528825973319294969582354886300329005560707022435834074486335502413426925791250620634896458914394671244246321000627117654611075222366534301003500675540786205012474843938608523739914594824959084637396434967641825224070789197021225155239469758795538083191885636988985158356898716332469578455442130143513147682125744180583183877014366256282366099870885489914151253961575029981050930743888461294627868083253262090363902546487529727185205827490476981184678406592711896268380580852917988649931277352823306293061948846342032912090102768578083063427473532225662563063449070813514317905169959673986064683239446386354427397299530705795374315538391187715915423552081379604001927437290068679626160001652535602135416029749434294526511212669196744800584218233064751990893332077994129043026912128425260355732315462904899853073753658977759720353024359241688969166389293368894475651920139313656127615758837229967178097224652765250643677088310618870172473949096302160125316259719925574123421322050212847336884128702182183853977724645423495025311511618812069253147680127503791686085412652483905974170672365547440333947490412450476049572905518632306689279056185887335698978789767591572977789954987436011106365387211101476393995528921181129835285583494958695957083621023682609515085122894891854799891854593060726550165355817516750204146370547559456683404621849503377630908696611512867048656274516965083459192010400567552782048337341076430549893896782565216261900342166701789252602930842197553735403416165624634544648411154433432695298509948736168433248611314906479818599235404361585627232464814976000768909530681010507174391758771658469477943260882764936860189897116932854390386807574491503668430288760242617892810943296628331613298625291462960318375498499832506945362822243230427928344359094446604654555816342356654506331174973111246373912148762975637380729166893426581585843214411450910020608833106579349898437168069394892189851929606270674765920009424712570871185390850413320142242354287430317363341420141998831873417314261753544045402463605168873693459482231723385010074117954993256560164300893178773350327511578797071432604763044338644567947090665154655311908262665607313513679833528762045245062046004371954830266477130210376119350631505511979200185276168137882588457553297185845441452992012555173559301028397901503633834469050145497898600086782795462919116507986198435007589794126883255187118865844209522007977489888492881271424481125419404554965696418996586304477116443899125689314880974261378502384212587727877253591166623667122422379648087070826039344292553584291025579161507334753677559485805123706523506064009831043385425008261725864643774518429751356563122198208229914973617300432078419463864029251144767564136626573968344418618865879351384864022945442103122103761703516944576440324982593636065969610754670809901594802343487754870029945952212549480671167537781819237805570445936092973386470692117377410007634009634572125772856450283224498028357733895448537919248447594507725566265612524790545676079471886662490155560707260019508030487928734355554602423136132971094773511549218831818996672164249620720403760058206209147204695180477585740861419577332338072990809311321208839669585138477148321728098981181244524720901624724560303884277357695565831920048498913533202881742695050947388569302220807911415843965851238281939615663878117772260913268023523979046957063440434700366533182601239254147861615964174099510865118353355362066292903973855928415784058082247384061026198429706871854006456817261216663739492082986396798896612840861781681645774606116681751848648669608468804918958501273739218009584964197485230337131629908114763268147705370926057840395507585148187878199607623877997385336418591659017790087725138540696746111177705028231620144788528391143053396284428392358014713556672124371460174862391137325170690894742307456678091451931511667819677208207560487213998984891031895090265072390496612237507318625942049677708734592020025180824647893741542993451011830708060469703166388501271953120608219916954224929282260727447400660698410178546610129789261196735226892254754679245476097603179672871549284114622538703866061381724923256736605058417416451564437679967026342275964949549850543994479358844093037148156254197984530563856271358711773252104510395354117712262062025654467488377684198505993171839983171611058797183286485067884888897634252435231327303242622705789259980030140988411883936312801704125965048397935326437800734981196034306648424542611456789475146062361777658925041765669211431345170071747113789069241422763547419345914213853969498819325196683730458834966220722335911040495785114554555331828377095088700852121169229097902875222506079976734679982075191471240539983937509233279182874342283802188553420316179131008648091396090875173283910830295980333831928426385110434804976110563245724269022126673839488687785256698138055058007421887997424993659901375056826275644111676941407659254178293865291727329218682625771427302111270544506210207956932175468403958317453171976557270910721056612185152784202655274653175796916350435322136700340849447151688088013906213335269904734516252994557933958072396720024866011387541839880396842675784149986517130775736205315443731689693823931123287264401906328383959059518361536422136131963601992644435052017376686008511636274928965354574168924588431486276505435225018406260669277440660703691155061472526106623720827614729044942627202141452138436227910620240968267445047213416649250738860252957038096350420817143129254883631249470478970324227706055310304404208024940148519749722131156769849604963475695050227963922404387160751983232249739853645314288348318672672177929537310005484371583911809390752951158586108057292661184261416861865322155425289692621817345756149661691205930875894169900160108856468521833521107419007821389488887835295981705607669714459267682803536396869289073224498242039085159731653062042464097955669184948640803415952200357235346899572498288640429997518429666104265519030172652977949813220327262741472749951411208019323334699658898478271799351210179818588948995782536483446209672666303065644259760883443160313659155837135714970069505073662605996678122658670322846135848068364664280920999877862529628739475042857465624240861695490193061446929781562765105499189143426167702667830853525907421297539545872114820673584479896204008889143959932528771103737816067155663843380876340509078262965417840804974552161411454088097784571867322779393010668979523334746836370881918958161834578383759949256957028601594643718472974879382687072051484723203838864163812452425442506126829435354039494493862503005054656652647126231199978931643312374455905438306439321898954712590954555238360119650018008855086933781092146864698543995224118792343753633451963271118055082351572623614313224357271681277967832125042744899132031448736238451647736714998852550451688410988078606159700479432550459975077721196812713737614755235167649265411869969114115431523176115025704181443922466777449402816672985268357395783599709785150285744109032746649999306232884543371369895706569230204350785657222332605284914682952031288558604140080797412609725276810981822832095725131960733581108360825725803097340963034967300424297758867645351715646702355403004376539139235412636074664994830698701247525015446218658473131270048448558965761161616754875046774371935698177943044675831841593719111719035275791310382112067393669680995726627620494832888387623139965064517374608912645186607843377239413032818495877029734104774466412632755212928838875758285272798573419022132877902090278141116603927333951363804459080341776661320003436440809967641506669413555864578160220802180156913375220040594997529191049494582886907477428619959253302098751449797678156490139090984185541943327499232549576408612409032537284023287011939291812555510277018830626237551918993306244638939824418211703813398012731274208567238219653579807408399813426634939431567422402202992286710018765899810079030988994071739960308237063300470265340665294350863075273904887861956564271331637488470190045158848051456912763389280112027769587103548941220518645453122920944198798485468485090349194405797166536536467767872204364106679545745653432198667637628560307859377313078718682965613663650545158731420428001519898641194599721762588804960765727024515451789675062817574278425352115892847250482584004671388536929537208523664895747041099370381894706025229302893236631222698940366250942643280163196956371281483820409032308095756153197860012441069494986020159132354215079776957652332855039380899953576344167790043797211858993492906826939328117200989858115179885101336957478227961074437118487681477444362011624640800298642446158588232843888668194219760243590399350835758235360938417427220006533596894605078436267551596438560697077583606935158554157388715632755055522794081336472583342817363377597957252034403658279362540118121488997337817661762570563506577217831608812429010750045944660080529369342276444899935398841023558098867086046083478988420137235593945828671957444242962658749358136922759662636598461938499737650059392212153049698790760227113189053024637214139274066620758107023262401057049662327770009684545912202603209762024666127989365308876957736830313994132241346556082111532441944313137081289355534370126343197140036700710269950178226510726006713006571695829940061185493716656754007342445632793198981603683050254550339507396974029307098053347126298195176064040911265702235374524687267746572663328403864450948416983566626672580534527703173965051614378678532410419013807167600544899099077322368576244220245908963704423637682020724972294469690315546333730977705353227841362502572970085352839539761879209476800892884204367022398150002614257904167603174890523427037964997945248208063713272642430146121569833765347103046165934416737948034830730106901654031542891998491057686791008001504612923396851439788503221922056906253056202722511401325852796046244694166139838757492672900800452496980674250718243755295443016423474108332563818089707750249021399839402038700001584700816778019154028257021391991872321639812806488368419112991435540119444246438013190389297901590355942372729617227494848392681389359611139066268040488591184427491272084905010434364008998931658534662194301808232778002151857733279163484535863721144283668898361483183153459754042811969273863574824450427305614605438050478990020676238129515269907115768669551477046586163983945378479403755772535410490028681264152371018497835612532354933417003317071417545528088146679549849797299548865705165026252397964856672426487852722139602538312771646831180903505697458147406580719789457780199020869985444991025691485439568213050761775411121208117770173681309791748036294446774399545086392406123720822823167332332341432081211985507604435904501854185769419604580271497905277629637138027474845485559809826232485165232236962226748183191397952292917368719838340912695827982391759955439816996547157788515389276595931201699475113223090959369313375709959693889749533793777593018059886230313882876036669226751292858749684694622073135781248563159352798774272550029655179832547435153982135770294178268596947132279270550317766168287198024312796575006894223196795774101388909987874872585709296185719566735820490089750329203731443664630951145008964119551902457517707642795122647312061175117254222715701404756788808709482017282776329505385648928248634920729436363941123587339445301838929611597726106952858354800817974260635182635457004314260036276714180855701052998419227522298389068710944240271719954196655980338120272139268855774697104575035958105718887862318965661097917852236567997989977389672562438522381924272757659190529806632891300052896394059323973382935806327205873083642429256293203434498849746894760852799368047907423496590348731476850051923038649726976830310040927527563192549178787123745886543326948457525158408425328526335884619341568176904602244336697829326767989577975568494169373709159194593775316432944390518919026004315577708576548418918338910711814353327626250289430832647031331698099617066843304808120455488533837050262947625895905065665326370570168087393889422626996389919308315775989502620855051211633418358308323979910526980268978803098300212411408939248681946226335029803246242438758644481192712438199019762626448986140616824357642374151342272410797142412030760520581868340579169508854491715155001415650665722193474801606233967254480522091519091848836782281976311479572678585312867116178936745983776831005323746086389054106088289127185975948706672260157305120354580308785164528545241138564034424395577797660216451061387348896105770617083193662194414880494095216607559361863120328999755886112934979346891319587595113530979094820905939311436967194972705743848181275318797696728979715623596379896968456394920353538720726037116936087188886519090954447265901309926677649655223918440226952933787407342174555284327321666696725173377683364573746061590356587557013613525604877005875918021622852909721754608069989203750505870930161487443797112721898979407270003435663973982734802049774339009010409990565478319870215140209158521204218028591826986958310664711694043094915377848406579167231944403665561750058180227933463958450751987011828307979394244560829273662864191604626387673334085572950179964662232414984564172118092615319964672330988778463646526057314764767580830177910213928450114560128740317006441600094104973079383767064465264846946044050672532816192612629902865621276588245341305089693523961483186913387791663097518785740692693793261931608732997159797607767652882384468454356929190056101328974633910172063205896718057249377999649777982158875329238493578622002727133226471119688118693895276377205047146823423749705762604175625890192065002696101019030400683181630093487137576391515101824499855467765666655049519274394095678493483810197513535645056913381497781147460468465878121946234306740382237630503113790949618489354041904069072571869228850313372896436003058939962261421186102649928739586788062145666272419775134495824062683245260022573639412718821722993038117553792200185207644621748557984643517694708508027552777043093246599342951962708134428404755061135258674947281336649244094553654623095318522549954427554208032668767012722926555068225695453005494765648181933899918070935829649630629892195229036916060492731690788052977864852995871349143666187751790630947487348178473027403923713378596101867887062083255692491989882012397168539581242438369316320164293414750595757672477619263499638298468318368118770664802145833732068105578282008446834514565314972964781510778491709473083431026729316203628470597153514980188738370172375515905858473836565792380335949625041438774311991391853550655362362226780144064171150583200305709884993263419458141731207891176250243144129681457248122632615437301097814317479252353974626618327237203140618729670398394653374787936019247606627042846588625656865912271455155396659836555408518433631442088646358667580961732642346973921432499545578396055136059688224295010092363210579894652518082807015664968643689591504254476177284856384901019255616255493598289280463463234795790704602210700823936462864507854133746817890074838514797684345100968927593449138107608959542169514898814078989528525589147194902199424094848898490797014568319897901497847790739202843656056639437679810633823666549818863779850164994733409484846823441797588553942794321376622735254431054501200435053248889073876596470538078349951976338118958936498203005101268489847481461435039256185866975801465226090472449212810682168970568131009924111638647101334014631577870381344726269954164107036988701635030825797166778842794681371339321749154266416107133045061094872568518788668367459095788430434683445281706968815661110491878944328767880499731890856912621853323344358267556830493930876743676749491314637677512901248000317489437406980108530096652104980301188495928567274159418634268651283844674478275944163453229261140479073831250006052934071290120792464891375980112206869822027219333909040030057659525729671820707640662434987508378911790654818979843975213905553498436990985331474999794612026356271180336841388179190570487823630275045223851556831446376251051191024471605896535693252968950593614982504007943982701053730037805812397442347403991903574183728799487258792765493922800605461553530129487426668798062262891575716797709443001238237830514066190396921352513333687572381851633856339142171987194541202238154450857913995850343235894616187996636276392338553267940395985228360668137782467545653066224715198819628936733998936734105292892849678698635867392800013054069514731830220602031027045103017834780408892756384110856735573988611417846075020610910196538166770026215929096193588029662817775204980512153791308660218796773740555035788060845184688613556586064165365142965245432864222099499325780521066321635456932809030717301624081024557226763607556710764558498241457865156485589202467182555849278309985456709502735151046208743322426223244723599117557007569826701946093166633181800367750663811961529073087850009809588628741027260609902542935610502140001531367927411285027996718256776528115284181690535735821211512787990844448941612216265960480701327639599991055244086329153604579565323839370516339961044117900985196936745025247148270482115421178885477043086804357447817902088368515479829687703362896492482882990724573114283013761571065475109497400146256127274806884751176531574962071498478048719271564910052375988933987046353337452650536641877344137594608451189119218811629325624032796360710153188490245076122573369232170637029728902743794155897683368553337927708738396148678731573034906279681123402117541204345235446664462146948813030356582062463147762073458167954092183529033715628029329604682234690221306570103954801239230153675025381812500017870593734877985297194676080349737338990499072645057276338470406132853076467176593647286834141535781028171467350491366778972773593274793065978272458719196183896568399369330537677829894566798770839886947479594386306676105880997725829521489490201105365793902823395749819936868317088838383137966715585901421196826782306795759764638433771401017445033889210636568838450958287556010473345079207657920538633211371795555661185587671705067282774074166864115270414109744701780161236339122928232767483298189454668126847119690274019732999745381695385192087185529017437412369469198374200152075918759747654988273794665550624577601738802560027998793344713794100798158810606223105240717771243646975127433340080447119029220004871130837839888773003278040330855693452420271661628083355134927382166405166405964739635769362833884705902942182123074859626693223261442972774062849866456943547297415630141059096008309901943965963202467619134629112528182148772480776385815461496247595776266706265949743431855902174456092616359444338866216374608951773193561721952858473305874201803650652747588492359120394938614681611920107981996235679294689436067661965767992179754053336079919629432799492185091645888087897310186067630232007180444908181115986983291829021594118809528473802274090231726994746776520428817740516725151888463734432763242753362602468389734458071135003385378906028108465158545051831230603221637183933426021635196239823645301346254160227924289311073146569609484246490026888668566717929915137095620566588177719428386785131277051892392340259505779700299878523676161671956949766625601353428297247151733868864803758682198251901905298845319535581728487917530913898410667165267569037815299485028769845235655568819337891800203041294926367741523928120891679802286323506235087222782142877331701250035111284272845414087580861184467153851139949737678172644079969506986400641289933293909152830997731245991761224310285926036343635339316151852454272586561119256057480029690630803462990944179478608436598452321360102759371111507014777367462754703473110654439851502719688010911285219592209672738642564203764205509957359801372734354668813098870988125741384860898888991663490367666202457150376980340207010198731413085140267205029362765327957886038439718320559114991020417691331461693879440342656751263168170455118678272864022329558468045815757071242114753474371026643239824755629903297290152028939565653096269727980094976965057822652379963584241193952531748540653091719938957968517850483272362668613249398354056150621394387083822504129968188173310855100812629655287827116997424526295556577774461594216059690466977058232309940128416883178630864766594171641752446258035050780265898724916893707377185580442828819722580651511359600305376703762929848796199939526221608280756504214202934176803870943943971023390659853544017746375150341431606242082386371942322956081316713561653719846228223853831079540260047677400840887597400498617984640803944988865496268084079055652802686090790231689688951250868474809345361090774019716372300247218658017021810271237387224530455534611363607062603950383667971688167360536591898740943741778231819023331193415783610265954213247529291347657582804711878720639671380744388935102906293242539395268501571485131317230921389671516884993437762634277246498717506427258394178165574127694650128099572263550496452475420853736290731683374578862311885701012904237402085286429199065195328660125246666547663578382488126486795544870480170291369909978712323978173414609002743804865036204990632204794781685678832165068345815528430395454064447258645368402353797269555652047917292984816474007818134218877751840993051423126884653855500559138843143182950267347113834678270328135243877782352534388499812094013280905696207769355638895549867421715094573155926573339057118351419439678027347483751887409834139140639930144744209587154342600816239361284863204847030343962819859994340460733230380320766260755636802456521315362550084183441759362018169690811094094567703017215226977450327893205858801051056701710088822203308757588483036036203943604652000435265300212390687152252940531431917200185652618005819061829143475669777508898620914464292304711621309609484245148468190209555508951619754854724079800419239424317272948339144444464492031466079161671667891040927349719288329985073456901166847652078390361997178015374833500598186613025951851777191739854935240308499331375684080653105270770990469495498437142663341528277199834909811318050486328513914899111182615036448990356116913458318826225221417728330333988865329259911513651761309571219932522908974698083767361323016749710832786118363247699884577221330008820688088384631460109978345637324878708114776269529574137135316355307410591514557006441105000394539269953752711053771887739085508350493689869718496885940580930308642427650052828161600838903616224678227003698603645983722578514041086297325890323887962601037299129068554669937865139255079104062448344623048063014843591241075575567541018347218376261051159283427692022987440037223419672840200157625263214563980231812544900627721863686116724155288447280950070300511878820808834552828788563073538490058758254236187852836186693586656214329204448264219800041125433397696961385494419331102323891127068820157351213110241997224675443057477021167326659838397285931767156682026270001777310776591386560444663810089196586347312464960193540802157805641311018683130585027641883932813483563739140319444270457898698320082377325982730047204072146845151277845108521152534177424354189200194531742926509454551280385094750122715954489518570548449568010921202071669774013716911540493064241168337529943284769482405011861740784507836773076709358704952073572735434311208888543670773763322160456954457734485364815554848768443352091522350331483675924348337685985301398376253192659324899413829263689230284843442643381082082816511446018832466818494603299159937666790505874202341281952743461399959607312413962459518936823841320920439318926414891775484525595450819688675884205420812721216760022975247723522301549328623748425567044054560996643008366460782543565760759383657092056009358062926096544820082391054117378083092473449630486452960363891762055645492226247715377164464341868700227553634923529491656252181869898115796133657559723018084949778685320689684574003740333735683231494540808087065989477228729731156730084589206150979040849076768227894441971321409857002379060699228550303507932977389972270671723618730074031073895186075634963929539600483722369401974118276768447686934426616300501684072844531513523644849110147599701783108405258171582333973129185534122902649485650967834138331682809915245037694940970347155385141369220374815869689841384000325441625319654036479117524211643520620807244584274917680735650585048566593399785022612269344691769438228891575446432138158159033162055153843929685517618738432876846879179850512661250341140897835449544719750147314557539190394196906179032852471800919953614238904508405666813565389923983121364520757612451918839927556844943346923829301103328390336223262200657272674838169817998897646843686325361202975729613594166686211852530747715469195548954807877347856236915122914718483339647656537979305827072637911309240152718438793441331966154865415434542389487917613955618336532941861491204039793178917996474031652796158796966067054493623414444647327635807668796360911478715420331774166769557956220149148938541140485270290348371789184326792055578663024480157707134577465218092629490810580816610520209209311375195853303802900989398475725285955957375802242578373397588052661180865664856941199542761645996162983808542147430874703013058534634011828008624702483706684860538711893008587658235317958050292201145028199826142391814985248369425217560858154978635033979721492765135644618938561312400140747975291255019627957181536751927039960413359625563333369762951595291542672825455118636104791851571364237293900988856923650788677111488070234671343175414882584964008504258501181572350026454131606569641978641600064679753732682219893018868602438482008911679720191781573472590800363216299317711451415213740868817639294101489234243183935553569679380580787580157263259208607228422185954690990556428101500317061335073997554084943733821736560999753051454263403466734926148321037814873892923289467861624576748505784075032792426720927066201445560370431192201339333280051843661182797728571771070570520072843105327159569167867322058004472618670438596270199320583303101192226885603779604573763516559101098171314335900829819192965865349234517510041020756698252698236697161535837041732925139396545111410153012467182278522504292093553100711853739146212339159821826795160429783705226916539292963877794105628371653127031331371644551620054284975796635226074966701873940089569965240990682252085759041016369813187617383164737824035209184117025451793299135823467100218109239090941662645360623715138121197498803279230822417933764491837685113086201999455167972795485665503322138183795438037957867993727011361994753709817363895821887322800073181124153455157401247877519785180928984948979866720627418000401799546784728604254653883288548512032952112026981324980763234649388223226594812203865112477402145647889143361203865206829773647353912533986216769152103477896481072749599881653403235553100849499517903499627127004285365921164893461518831367392872899217730935303252567452042310304126664234381213876011924333784117101679423165216227537338121568271913077837306285921194329801569559448136763991473470710244371913880142055185529762595154760737312336158771289952816967479015512164173795109781192030107667548621604341193345933793904280752746138820547109838770898032056266479371174560596037426530336572237640728577141834878311023055055943838719990448121585269592701543702204624344445229816666675090800405651672399737607063100178131740246648018589245852876312745134635394516788444952587729510814787033811840027687914793241843725989940051811723242944483758016302137315894234377449277957475939642468250428103540450331708495081878317394885857826686578419497686883600513467932796842520217302388791157175202416968337924812973480882871106265212719405066402143016366579627509741135625337150520862902568058389405811807063000594844750358669917138749540135576762907633606268485708582582714962888890586214911322046990228894973924994763887407242975780296402862798410016251669668037945730552567640458783296123711378475206023448980583707411708467286706536227050054548205656825931415745537810321799278697154098755034152514997307551486434762766787784897149093243715018835087980845010458050606133762952950093769262069594744233920360437125111521820585404243555292278471274831408437505918464501593948441975337467762721393448655463297650057878329456404656123834505385220562816232411782605652290415275335166856050913999943603006945219788374886903364537557421450559323043014859954602278631902957153804525305731048145796172273243040455721813588481138158395515706369238385233164426599803506677935361101556500281807657887771085128326229652937305032469236184112830198839941534675968593024046727512053283829839572292489586031552335185524530040550097238420594840219827761460663537981857347434232833963733651067454033087617669088310739634964698866746526643821157158409799377541388990072620953634128683968736883223050978640270381395538742823074267345385239336017208667320036404348277753478180750725462101012987076767954397779025335778096491623912176452236256426240592973338496256835250350591979494745242418995098692121140975368041986213095810082101211206797582779977782677820352962681469098363672836416562962065838526530482782477445492339368159066091718354759861650518082434097631586992723880645287212285864007923445752084450114928803493344016874931476851050855273277584363255257173249477098325468139200159325530272490417847022502515146688344352090444815425134267528404459053306659700535086530791997087652127995941235550283592239420159374825178939859997078077777821008455851776961294603013344500529705802347713967749220669405325349119241465727274808782844933058094353845254696426516042652627662150741070271012940858224269523611856306417575080178635676491709446848715970925330220565928279391949449287947726183858242791536208921737742189664098219878600426358938685575888555334744036820860567939811622137367975156817670581777508796743481417165526743654329982686378220143292240848922493431924415790460672512857222701101239542741745039915331969166275842324335033892961459073643499123768439913870094484094432220027252609464796380540060127686121431262713200175441824512053058602447674943646512963945792598541611066420525056883958263033395870341338939964867490873188031541339550883421988783445108672934518003005199575787700095812250818447741612569705881979099429921156543091107658235642838921307013027106793768428458341949610341961619112178181304899228890333407103409498368482704272992373760449962267912321687301301910978181712172739680087756471378852914405402462535678427479745230237858751884270255852202909547112715560834511870708745878355363165334164185026828763714299768398347894735930156048239802254201160172927647487236666370078666738682880212843258988043733633141872164009474020004964737563778169430216269798539780440007357813031446700934369013603606804241660741756365367073489209107631195239763551739427364807508140746995886320074063581058967620523522836551177125806431516559656776379526329707160305633286445301140361831642182745565359527623852260978155399445929111806877661752883516063086556374251250774499542998213174644976491144493589201667913045979797963746608186798616195562713163961976974038747229125471941317923877775207323333162630354309300003928355308952311624227987906816031942031123809197674436509228007214541178543668029662293661790000957399563626084610851229021396858469566715924506598847792967437382932295635519343524665446400366542614132113758987155468526634205201052769024037080827386653698575026623211624162573382816481237058557433600640427228217162949607762366850397164553735238143091376451307920968233622308083654307462887494356971092652366683990243885478470634162139371609003505357166327560084112062273509958723307186460777044795536707283196158187091731675736887197248138006782155892598842104067139731394049365244002164219059693553882912441586864804779441105993074567311236950112231633552768412211075890599677876741604017004000837142167223940934711901073834695727561952790621431044773861276996840614042962752727449770003515375393383844979009315367830336676171463458719602076916271109595812085456605503357170306584153920302171562940475678292358260243428359075652066078529248427768900433984817726870133835550483596563013271191077215624671173468216593789030019659303389560807561916906096384090477436207708634233844571115970626391138859857378896898508824232437457438538200775056783805158571595831715881522596012954200918552646863846248122265852854286864329662959217045599632975674505504373863893210509748824597007843959918962482872726945331610837233869428503472968900668264005761015658197755601707293218907335278623016801792652689629268206328678402484590479027947837566656924647942716931447514481601162080154462946046710342790739748081549744316706588830274175272059755654342593517051823784309481067761427149745670808339604917542032661909783619501849629311768182739726010757204252749706456060985615737094554655605239658860519347238088496348043000742431392863443104490591349361062373053453702884518165705575688333278052122287229904507752089729499416471649904381072684226998143926220498643669441335956402312984886942383270304319991276790346583356817435872233087871917364457327349606859701225494426998809073727244013791686692817473911967876369314498118976600546413530343245069285905810082153841075938837384644649163867170192241360480979831745649352947989939945028892615567322651282340358859729736988309050347010758095117434145423124166000559680074361662675599346560021420947233430199993202920038196693552710669124644245206840604591783697988650999545783443816203622069331364554851987113903817181483188113369553221391120524752212677837615471106981576711377961418305411194184832423230697108854195325728078494640207386033891082266221756765533078665843199592368057899436281519125498420109103676625813382318970466157473049781815737110412102279385730388850965946143724336347948728200922091922746413835415283165946278419921648463306567331333331297330535519601746034792866657282781058603930141632045103691832967573608372834359152759375097985038046858140748890270174154071223125592992700276623420326331987780018910374146157923377399836091082374472828150776093194297329181249374826100112330099400800208701754106259121216745346140318452004598441936759161132773478367188260151836027779092370584878765853587996693033434349736996914737172927068515904249802091395941972095463651177401704282644496333684955508353476167348724733075375660146352976350280285908739624947524730855751765500208881426421263717468463607691049782211854386805530282349412519157719610418894717070216722430032789716082170548814215410168520860227231838137110687068061740318871405625549290048136884408849043980860888709099371237622082720755868785748689236870033662263116639678892853576021057250695958065108802588214663222783571508573212501888542748493146094099483972511866304400426666798692612094844138266266501019184746917907638473202745252556899782040169439938548066558294655782962483192844323761365223149403471792556742329656949054529877039518989766486376412750782954072786339258355704212152552015109642540932786751917733448528006262742773954678765883137472674157645936046656157239062708624485681148315158552068792330675821944296723319969712626716388813039096686727187886584464389693470960498175610196143957837356371483785874966630507041013016897017199936200385842171153596096336459845695477412153998858909112176165740801962591821790834282708747971063951458324915950846920325231451842570459033255181448313921012419462429561519283290770182523525272509567235730636362163167571123115015804900636831080484904949637732301183345419737106559689760945752863594478132152210939477745360526037302710852586860413077786162463315074969874546272838515801248771890609046656506383268218510780205620134515019251282828285859555848456266493090318668633923315814697838040331192152312847092901241244743968860109253822227250492592034859081201599826833348118534576447127135218886386185555660505788656514056747448314442481928359962893993352996143499687582349321085745793236015646017676301901416020023677681024399055918803671563936349303696129034459804745363004681080349243082350713131019098735453480368826982036724430576465506403887115392282179613467718959232055507612556315410094940009207119195431391448978271359995022013046689347655745601481539270037187645106489987933766905212626944040488735273596109971943298760645756846230060947669282874623464481252242816707549617681825589293697751865919941144455774015178339277097935810908532642574488751687589243665706021832562564663290511831282022554985010156661951531610076244384152773884024472161777642132623961157394850536567781802734653962202334306141963506268001770462632884214613264477709220078118898288936518559768364320473460896882768580719240592255461860221443733066673111029460053502722362348400941245527086810573083603386225219794224596541896958183181794498221915616290643956720442666836223492735969235546167771999316267192250061219308500879943399683348488019669238440352603657375625791793079661938884753445789440452961690553990340971705095211261222795621745177551298679357496163405236667652788096910023826874234315902500760081918240855865564001124278415671829206870153129131537072704184971432966383173810468037187172331380536399467050700407496615994434003213327592780007535897737493926534799832336223307875580726381792549644087059866231988388093528261955291184360846395058881364491831262950812619017819710642270673322585776549051000501670529841280735795557075637922082478561236246868255812373977273214645071948833713297449287398017467430108519762114228851871383702817853391989918516553064909937073496953376591184175249176351285251328050417011464469864120580730065478597108032841585162767397497466439133092257532908498473117431067335755531832257732496051224932808438508354601940824179975327979949795542761857537220535849140781573691890798240650717342210681516388793804113443812185598651244534002658092954464523650710981892589947908931207251511890741912774200320333588269218817090753575481225288504874585555190962844962799728425272402752916784656162791339267778868151677932445476128210703243263512705028053570233528141958627850499973741163355901666184837897458075317148232138254171716232551179389100132083392878393779451504354469961658473839883530666423303829288828120856409155052572513715990160077976411747567095170933619445812582773946540238291439544013249542252926620375846212553542472845921193724043791965866285442671842074620698749997629760048167593761121119559369471200727123058677291212930239975646929512219631275509893892859899359087338269429163178665235092490877594715812807056229982477537024646580696689144352893182120574251664264561776373656607771578514390623431676693078668134936670555620128727491420745114617258998983845742323830314975258036879913091741538547808014937377151009355195091926018542932732657036401683690640687323274425524945392394685067956252253212886821752713167086222996600074633561458110860241689974416152949043703875139484856849812320822728867936778684612056443511940918540020626370475189171678191991595110754590607808511731700530391878189224394449299321388383058556779119222050026570354716130441334994226762690120763067844574234858955063456588634632420843236609225244662453923284773079610298622761495132201899509342661168403821834066588898160221219797412467816628216700378560769792352122453188044335643838218046748608251233504578839161038017576471459127468589177692897474653032041311188108805605654321940099472740391501894252763787410435036285804282942849968882538676344696447005222002884085703613172884989533452429216130185813196595207340790217048874393183230650389004326608393226693686367220270040134815057853023450431403692831939933696786545693325351826826377131378828516004067317525786721873504009627361423829176507459761848746735113271167735099804842212074555231095221124326618692963861341426577958732388378225028936738117741711157091181093738993018225312979588813022602270966485481293859484093913783989146197546674853389823612315544216170031438925609512727653119823960860292193014916513807083604101220628296201830849001103723038865100952699870072201227701416461893143956947983758380263718067317677630563431329941828579398069896652521076694476457356994623895837369375238824839482980545519077000674328141129019645211525331860722874635840017567146972692074313728402446533696994615734164310968919231499035175154297270715330382971906558985333413252588009354834186970805586847475858644806562478920473308490552792953918123909763792441572835272391457877610889186924306010502064527738074314778144994540637155631478709420134426155507574851193892711741318423980261712868241161182427297639594203230804704751062717246129757367195686229208366264414807949571812826091593617263844353162006723819913021576472259137643687113098472558174798075683825899961523174344163376548414285677169290385246544514611894971380047674342355555541228390489998672904654926638480817700895718521947751398204456149870393830950407796677255927964506077397763396600272187905502835029007219013023894618226799649653687876106436213766659317058343450295732832112357303218958077828027252875304276559909814983585533643590405512005744605811966005503634817074779215180979103231734328767697573397982256417878146414328891991093785310392509916376643247267021688309585410525240210864305112979014868030434767068450002652013462043967267379772284148724506807011667922093405165199017637142160109976489862122268180587063774913044381718136732347577897648390299831057721217962332196438292580318731536686415599746441444556361813952232188395561415856469643688280895947798340774375582759586410906509769401890834964539427674447790580100738474266226126112831240623881280212709621287760283763937597825480868758831848779315455051934038364832530905069569578410815637796592193745470239249180124815122653737557179464884248547747274470862724344424739208916477214158503272305453552855580542302626722833522239871558384495233497534295259030446721162941564429038983778007792905500684821370637172091787283961326081055945345487712800441910620854913295698582962340622591299737534535532980961222244618219879422746927689034433514878954869575247731909407209446842514556609462550641542181930408365121387023644407568306749913880203319405077323327688419035897469559110163640360286535082910313202920960354648551223001420433622709762439941898193196371239908221589468161230174676725186101374572803202455076621645869977673817104469725700454488674616734878247087483298780166708015173609859565760755186083474594041415899051414315861831129897656602877798013651384795944379735367984202476302716616902297935471368069687965342024481869048225159453719240236428263297903158201600976867060522007358194723527671700711968565420894665477710062917391913842696697885825640262248953975286836189407118816331614204531090389622372211455289695674533176306950109427492509506145372049797801330684538850243977410119614906788129643358852872571207758423425606890551524255090821229011983597035047414583550733250458644395364097920707476629644448082484917745723531427193030978368925727663830278221995999147476100380487410945587587797060332371439122741310081554331192990370384961527620323934691176525133751911043265260516031417805039632441716466310835616571115472206708791505066244743698388954582948727475571266293392535749539346658134573010061694466127395491815004769866656868313334975846464778710662919281855781359313380352727130737970695855271133794124038269418071510594821093663751128063865145573296513846831749753748558902198640301939862841629627698670547116694461910349261786813020475969793983630928355717945709372461735338345918229122074568045567811049763326217000511540199040204871564108962835740433254888945234557631656173279165686084577813309992469129877603181372481262523257323661653568390014968542032453093200734042291090211180091050541854442366401780634958476401725902294795911610580471804118116943126153785527390721320865639183038973546348713461653132214876883525891316800610340131944158000928244748801284868158221426682512070580345255743507407655179067594048337543777489251984974190665889679090897109085067643337642488431432406638574427021130148010756203243922118788104991504014885289524889085265232375078363246537656676229650005265949249453267910112609131244309935100906147940929588976772847235251036240242084500853675442522318105896397879677646160949128878260039586526878845341492943253101200485745623398995060986068689765450298946373404435901335858474292802209074281403369640798483512640977564404799635127908748723715775065896379868914143386287630930889884037322414262774582572123413887541341895231123679414427300729163083520766228321750192791181881594418987770096859931527682549349256787682652118028311508936508241553149519611693885161522991008215531523449126848174558501038556705797537280174482671778841691008383455505404315783909821599789943753942580019228301066116692851352948694192960157228713615796909308793871192275590233598484735436844801817340014304525173294598184956443597497411818615500107905573662974298008064827538018988743069961273133800260395192346257206159523152865054710806203073083166358240400227788097855244628078653670827848274729921103746011521125509707091446392422182797366436080938395571774253476969160417789714146942525453777550652080752900206749682585675290507543712141499046986278692589049201696230076345235613288829186912197231670434915130616955925801325249490400392667436082734152719198004176591554900466960475817530048227697611856904198925284575209531403680759569700928555534470938547026644977551485951201072780570846485542230126668426671878483384415513494688565926600922901274896234657443202227655423238347410304840996744935139406570081241930467836968030018956337747242005612295954342480201668288610223613383938802740072881707133824560236600670338246829067112673532964362925194174851031420657177723029986195800195934940197005292008327015999096851129459623863167837442342497700036605715967657585575614333619865994129954996636044854551500507119371948416955883786512319842729851296855198016124618510338937450090125143441274781986941799548423083803569831235226598954103657139970151749289996600646559563235675639319942410232464129953925269464275827544227733570316915109465435655879283383395850777862911450637208898078687716063381891051223700342758792122623017678874930084475798917651530851348024303126693342832572267115595787647446123712273836995539660566460054354214512859452597582191753303600991071529805345280501665948859828368229737108666170933748904803289733272679652832217336587881122220363662722949701451234121224389043647294021104305391412752587199103712960245495484539082851764473704970103788705817908248409771084621237555282072250951110604894615575570577384253489726871538961153796986152779340574436503549656724789062883506274208117924701000617174529145566300103327295062035706339894675990446254792710030927120742850961346965780292664360199644254362051139886240017829189112519326890961220491240638967092506301227467371637557961200859636720659058556259595631534677726141940600449235512526177491119205332832089375332040011732169809832510301455566099763565147250880101485714412468828224580006529594132992916933538152787625891457292316479257373142035916328540850500222499817493539651562746809239736426558840168499819376912522258770176486221393398851609534556721847207189797924346599941402704637145327938695296994585247813160966263833894495261089973838792571912056135318907624076680486898095543147704987185280230471788300697929310788521334793006112452938002657398575447967218316971178919084740079790460207137471227408627799908570148428083463688876837837958729080215334006075047361269101830596069097636003338456847101480188941015975262107688507855634464886290616425694459979425057547272882621649349551266097063759658346569761051751462933067107459952557095084481330493533623804176969334435957563501876323749595255906635593825234666477967020700690514429646688082392912687966086242175117331884717627109516459838439501445761041392186758478094865674113416496037060441928563101656892981217994526159903585415349721515989147269379074640387514629831332500068870701446482482037243594127118309951561131538313080581303785895267106260896381791118765834706924348593485123964283789574489343550103355720511090974119575865871758381097391490039645613125907522245221360915920572082550623747720503606439249767666362826200015610476140754892771993474370237140361652500072677064994002355220612063172049633948044972745538275822263422832371850133828551941882394044357866432357132055270326991487505857854837891133781547962266271335007653937197963169478092957711829258164128992950951998026513799950335590023614502997877203502899459204910790289570372358303074521551518371413442891314228792822039984315541170784252828836728378001926953575925729067192568602410584781983563059745491322503360023062028420440698935584888505594250486578957252225237575294349359437101769113908612628613650058508500395868868674124004476625623728390691036771952138414648285624918452912475380531453833583299057100575526266333696932967294494686118649132761600976433407705248045643709428450128372803584854391968154189514548355236664856737937796086481740043562493952460520522164409004886698177553755660202358711431944619455644327307451368068306033828057734769888815866627604156572258514210439884973429704658392287273472377651682272572856669706649060972428343455456503129503533634314925860766984298035651464383474604307095571669992635605855148477087565127059201447079510839364609911722899179074805371440852486243599262179784804750852540005846969250581751105293180261475144713863736720035937300832351449209639768846465803405928121536644497885865716750825417983210852537851339666586102530788765740830319382161794507695543438369434912251812085691376943181622600017744985497024729108819490232862490134346615748861268310551617508540587674743415147623060796982897290205581203349917471428696097084210462611279849005297895849679711321730162209856611733772103802428567981452554845631383566367230823165910226795990867634360549502735756069607723860546051619190388899834062484084847165897550395016428838782716185166340252398712943523552016365677711648716186842119384491121902556845238277140640244565132056035491341814086239463303877660125778000323670316355250238176308127359762938021206303406768015528968676368561826351130327805528635811778757914322169529995771627407981458886791518388042609312017240772896886014047580238890265108540495416752225490343378563796926510071937693585809328041025675798143920779858408216181647972246868557728658095743354180789150248534216299225936886953462436152761644272177563785225426604321806616279466596876844327874466573002038811419100295142338786569920461073554367806753916359466496307520395004659890745937362915411682844064098384098607812690668845343513106227072420140954858510810494348190817722059768464015079586238631706144435645009980795164569636575938397587981853131591936727611188553952893629331954864650214097357874710362506576622351786754287052065821513632795348089764147433680635228915312884138281997953608626948884079926816292894372912822098473010178118384093270820801231368717022513333508814737323666835348871697667674434583946503390789171782304804868565073708577484291270978113982451066624763558331210386591388842173188463197929406247422606503812161899613593476597143594535396084883763590029545531462348922528679227256994732913208362406296921310255412035594095266240971096682058926386453323706237951680322141994617687369093368121945247656567938218347227617957595637381114108950595322612263191536094459857867978951743860360944146308162719522962898797472235157720573786937283774540120283275066404015371286027099290100782173803789583884210272286876379923478523619911402258129051538476856148942491170772684868148683629056237847337843220512481566476385344321895914435108316304372708443650024661547177231229274514018075795682186412554386937132189800073927974330104591556456504811466903674738199594853340210146462104899382804853226750766408393420160747032385579119707404000169238710879378780267596774809205014649677227995460523512458232547715213333554176665778477920512598260786679809821992243099475431912546218370143506025789894788749109410487921342394272667811873352056934678289545427266884006197434441372658523289463763045421971661702424655343308800336882585608091918473708595643631974799007256437146233887597772290165336818554349991001261119396264218047650421084179939310154633463721070378758078593754616290019165005522955224148794392685292020227750556520605794257931170750532362735072971596324611350083003745120417364777118817802156215383572150437911100968004213659300531988408506263097091013520041144568734703350243679090725570206655874270104688483220982364069568044909852326620272922544713317361208506691023101250152925640553997455584163667127594222006305394135744308006327655539961373604220034917260084646838909982171978312781725950525089541952606492256447979839821984096206113167869990587518370574523492435761431049613162016013459540484068497455746699399470098129275129498233624532032652625288066076941711237038978392310030135845268471425087093079995731778498602165030149294474545831721458847061902307381693885716438134056325174996405801785389281001839782815831905132011657727539117806992708918995134365571518184969354177425566362084063006054276761240617568658518803972371098499045252889449441258912882552311843532519077016265536614164820236952278310541781293050661566242900792177471600188168475910380352747293837436130647975441646000481776997200359609085294884577952372423504469872168582696999270254032130779100142853798852959293845881110482645380285561718574714305466245152490718674663803188683551250599928003228777968626603909518529986376250274942546077587221608911818007665153791858419647966808432582903702245643974108942771679810875169131554554420872441159437588214715243651627664544757738618600995558549522509514926395103751740418898283093060263452780743885002958337231438820080054922937257068644992171003309599767943604992402373637248819286042815509958629265812047512257078947718015777497333404327060095207036131950180787749789662183969511480498813579556472218331051367210535898028262747353848480071445568754813828658801796941851240716046210838560466850727348210891118317770633656153604177627039506045145781551353259646303053512667655553794491143102167933942698204419394257561535801421523101750292470960588651746542727531507509112350614769319322426230899454271875817203493387696963504219445324682043450535100231140629506879514968914548213560279552250502003430761678949592278748357994920816996951175930982419385164752598297457678779555766734325451424575976111725938065743955097635004871646395561393902930624538808000645463133334253568975060489059566802039886737453273083890822325215377675742805708689863261368311480762341751670944578104149997543529973117684241194971850211453531493509734488016016187415949947905203362648166653603219263593905809610091502632819932385040004945188360826723840438710513206978145281252792285152893332313568522482197477382415474313887796799594934535319834284529599909664493500951430445717764507626520240420635230156013042553206857341851327240465251135940903527876460812667610837060460264976755004096085047844707270128478717704272314026572856747049479501261594831592521212594879906830852404809708232142161275619701632744745047532821503125833876191515754924593081764820834011625019070056027029553525539495803739473390437154616916908128052510940628824494118784144927764118749521357614411044064069354130140179739976176302298516407565066707988787496480743997124591433150650715014370933698612777498350842949149787083616481378536018387800196948410202713784535567115939118794351820309399044227981067773608076648770824655955844335820093533870350100964597237268616984901642080356257343120702103548654034574120286353144289487913911459237351614594924722134783662074572884283581003038273004819499515135364032661017327573127643545895290347532578818778793487815287521119562852345433517936999371475634753638851315581011583003814570657136030351475584547325190863615791705273322142689154860196443314125966512294468701737217183173712422097677927798738345008633060161609690640642364225293274602318723387060826014744049902602899411209641768149434051562128656440201849098030608683162444494512717428387049187815333883190559764575600037718857266782320492024053207316586353285855598317967053218845837730823729113300283944822974142799606328176056442515941206512963760154914514692920639895586574699182957633609513404033833081379103601810178952016897838719590359502734238912594274608780446260199074762050222730745440278710293418940179262591556121146138054452658138698456390904304812306742289083022833446666223282842732084601550169194324771030569782647881401540256851634864758586681751965675282251361226696767831947581205058865630241324727826488973388428581319032026000840183506744026984171759974305267957901067782777570863050374457375348452718006343908132484315049693957087314701491006119620475920572769731412627946662666021753178192132059161332246859401641435603373002520301455937375126998011980582716654917678583148837523541462346865966087740026062555334995538136992228770093271190633734428690950234424169636964463887820846951554363664894877812917687686804925159278092402587904670058121235263397425522580232829469934427010959772551240608148914430932308789943126124359466146854206978130696156896952399645162097458149710374397492373414517983647546791337492685697233569840851198940227252944320951999133671422138252761197661997100928587550544765033473748925266256494397271127354120424111775559840288075564255136786963197494801937908491259113008086271772386710460272851158107308854682351978251881788970238877226970873200317889558065366844930793535248902263821476974181210058417238603878635157163820308867236358171316023416761642418123463318576204565603052506891912696698280400379425609608364204473266393439641554690784193040360578779413202164224619110424635518835638766976010607239834523653930694017890231348982851711013020227485059019542140696771053067802091836773418168598554971605606749868739262320118939542928206040789270427194074474401344182867910991983714191187961534395115422767794732319136167488752057496439760193482274474112099556224782483624529194358833051560944535778246658655764184081050404831313250399611595312722894214277267736441879182861514421814735808165545750691321095924452975931614070227961286412757462312649684262716918842432941524968919601459745304979399103081242632496680848749765961254228311301695668138763743133032425526108202765456173364219881026391922046763853175574267241254821625108893533007456631031676436334432223868788813924063013110952854750806857828261350347922020806869497846965850428561412975439074993945398439848727949905220209575437107877090567887625140829511761458295122911290942867004412114768344069058436931343176889310710079765903471529535127174060237322663415144046456904596750296251586222389336882355375251593857744528993608066765933580802027542671711413161662793629405866728122536763354703168671295159154708746316018696917817813995369808259081978523798587213623203006003649590199542315102492335233846437452179451847321138026604655220799902834355323498136592753239171634380253306067624173297939996855848603343037225527072575281969572257584496796327250667341410417995691662490233626253567588545347668429137234657368026962583264309362263774478461883549124871025554660990881525559256609859950741300705024257343658567735034292411185119785141487257775441469412642857964897929478836696742529850644212020498871361996550185051382662736635330427501316249012119612603701323483924356004878149440388864609326016622674965944400064907853021810200646457379366720689672024973363561955964642607109953447174357154469230310178273354011658002145873565436331443838427659786215316670794963444822890092356187839468152382967743660640013494298355910298083600981862231979341286390505244823980881045056480758932555397076441248263021200109958651527476285240960892502908547895577336457565292909418441195646074258824280532207808474003576720980734342241917750878294393001028415102577886864886953520028995475885596940594256391899695644293543313469755378468992334928619248038263984405978340885572720844894679285229921828660634824822821327294655521977052215592627623182263044339739044699134580243611031394165576159233192582216643421511580542882350964414022432223417637225285565676496018387239440219857208192417009599789386048414931638303282605444154758786711964048869951688619782518347473857644941464942817080323807435981113895526043440015732439333176624896804014355410388521514452703459009618845892089715162396047835191263419756693420786812470784505132012006937740667790898198821335352552496135353104411179800922445631557339930239464840313277744707623816739093837878640860712713298104547095052674163782362809838748994635534598534041558415642344354460773605400692085121108481107226888922607926150703093928687746147718168394633592585797676110109888578792191790508258438050370340858045254552689200687453949098492354800134286782457202437356447762129389387428056973787969714944906110285646072953404250566242803398411731814762542987257723455426546172693200159452240728724164910873078156273641030980043717908506647068171063199107631131204546031810335799055503029895863916921898189754453192069907357839093361131519974730991985034903271913395703469154440710802312169050855319987166337007139319024185689409063203431684887329398626663709123654712350845498791550136078923411712381132675434956991846027538100401512420574316303353242938467990936234193631852773426783735353243374788249404956924419700976845436969427051643010813255705259906070825448506282335116549373780933177520981198871927601269466636922295094345795166062468822480655007833918947941643289337230805598840771605078940750560926331681386641907026448022009138653364910139186326197382127816771378404068788926805965453898104807097053192700753787642850193277642877814425836139876650389069109038417187479263906182003492078279322639179886516031952458029955150873591076970157467759158778771189867049142256937070702809128747445140530584921475730484437700773101334259119571507621604063578803742570511541387350675613439490797376429957505374483108532678997892869026058790534878827985026701536245868358206591084394393402667134964566994263087665807121849544406647756304207535198548668356123472632413365278555695171880276076905209958201674800755516160101695144790423445681765516083669294304634239939941218506854559355461126369063316844314168209637133745649604356781027212543443278164520598231150730804984342384374986288092142209476929954343359136861316178049504639939036195929528882318825737997383943692886393522559342967658019766983847677170453535893686400408412247229325173421163446436643576879477090157325180227177374844137229510155325531813103203251635259317945685883027378493596500711941669804124199655375828537889585571032266731931054975141255293242878159074983359095907402932690567377523752297107141248202337819349451305098424499829354902002771575414260914869683292684571769973232413703106760662053310022232140112600933561057642601815261243241031730524608863116816430585176507277329102117596435375127238216212296379514198628961155316738142402883807531127665985641299556803913803219063868448622260276551832499126754617108503175037347806778225334815787491683889503324317115087757911774338768676738963317389137556175695419452486692155811426931178846961961851019783344205818069990007601614582989319636147299055250918055789767004490622703044108191513209256507926939011666174326211127315308642377300700110527176727828018210587744359750081739449273213349220256577643655742799392791317694428630068244478057522662226197458483627121037237948946261771850637932186254308831258893657268385041293501413073069735025264511701163448298672193968168461011081567265705279942415349583651712982720221661925654570009040034445006329748918881118394876998677412075443402470363760100732712347805954646563886518549056988501053690829911344786163884052916042156727876224626070489677040114302045887677047662765614641696054610451165089461187009966070815738410994886657339602239210518890596292342419117365069259168730672822061447251387580128992041281599067129465912503475860366277973794374724181295817755594177871170768554908608678080801422735846515157979097147182548159777127692511485271462625889311942438381534342078152200458463647465030801051024592187524456148146018898540714438255835221676373211611127414491450377701177459916078780036181691006505098813916252327880829945880744353629387442075790319551735553732366633261803677471006607679572307703781546762332298436597743694242338823026926578011348649051280755786493860876105714191483359205026397055145429546089275157965300295434517599286178248980757941841947934628149696007776190260919260340617528816328585130227957593664270019724164178785133319800602070880361121532932360144636714698555895518471458709184351074001146523536961315730454580810848423498830102090567782693793287990492202072616139909157136557289283076265979916306582278981129107440529002250705965806489952340520412608704989450798263253490461005201474313045101612342367549555223672151814427629207399766923985562155526122094851237650670929705370642583271990802365393524171281502225576082014862193463178511645551598951171939574158862242795582825535373493103913393643196048720931471628124529074446906129523103884736663360309373248656360833886437013515188446373486913660421542649255350241576121982050461442129602541142127605858913690786556160304738599850488680268203249456839129618095067188312332999531684214366488546798888860924624465535997975199578720816943966502020440350278014847037766392781048687011410254271343030298037498825875293445867952737418371605619424128868644947945209346821633129975094359573052525907954936672603526565761317667757606264635351351763088858473865756236594963838431025327051902110533295133116226239185136122717172351630926561389961632923493088249571545282124185569501605303298945975983951213144255734297527186516220758821694341744692387733872805174214056338382677092541295163525389190193665407519346554235564936536418312514291393328047447174370993938488503377304886333944509795648115104593722472409550512112909833027353521860632023949090277633377372281888037099091968195173283143439201007783243139259997402207166624103667356550135581045752770583704751465145113519185459069873740562890066314681480717728821801118857686005202108771864071329011124018357999126080442237096084410242771909335387049188098701782043455678000420007403385274812173904539301868286204050274057793568993889199004920870142571399505023328603280146767682256702516253472405904345414791932489347963819853444825868785078290181525088133913053702796428492177152776669136088450840189496556163570452504398230220953893419752599207101137763767447757603982068853799758101108579372218185922504894670572027028983261060465003457200574509390772729606433622994218834103356851216408100905096230398452047263547678126160431182818428030168881986406834155395046991581156263936507098494440998786919460186619321251452702404441600466568396360183392356038735786753225583999656224171042257654257815616986902287654791580811765770027303857062765628534864781327541765279553158129366196288255268607757813693584512237391013363231563609461373392694330975446139884621916654396752015788345254581858664525221084313502492140626674223969974204958618733898479728935465896921989471890570603567732365877031725658923830853426767850949897562642210964784503761255856959524656650390402230394527327824373192623193360070364407638134656389217723249053536495923570241427149013225280964792443664458780005330879024363755611247721306481078879213786435594841411659766989592960304379710617257258299247645058857769531398663209624280204254659058759784649310607465924353360381354370309717343604504777132975521380279737789778069805336032137209262087948431758978850521243028120579936867370081469540354742109278115777927909475355432128105562054952581915917995734499460725127175695886189434768185300599046417469780407775277645680027484515089538149623362833039931493653774081334616672416750108331580630992171181604692149405532252064044822548686840287445352385658853458526499803724701027432984275223813633193707586120944326215340523004508525959877870586145382005459801208217099205264320735001660753623101811140807914425073393396891392326452991082027919275173255515246059743152982575207958547557373047788754355979110588468239132644250372762159790490226526614707848996821760971598037844159930240497965389365607122725449701821326582687483395675232148501142978277794945305584209734602275500588164283849945485468839040239609855324533679813354136705188718999877799734553411071703287486396299111675636225576439908212748316026570563937979242519927105281456626763517816787895064423398166698365723953008803536922657166652316712841133430533231002506546330172376868014328885870082892050440019985876494911053729832019710380624709581407175377882157622136158438982202970008925440743951483708523645291567714670642682218449059500468421640082970257734167508815467360631330276645163004411307753919485029314662781512200981899514329561868566415770153450032118781746905119975913275401090825199542067771441369851716718601397874489810536871610079580460383880224036089839364589585112725877904856777385435596168107313178562770406506080503153716114119330913266013827741662240616646624917089006611876818293269601873931805384636813960363416682432452152861476020576220037657022704632456411925643816012610304714523716817430703558879955603443309487486856979181312217208966713257510740095921537867930483530315844658324302349236271759396434770032601358748798027260410136861445303575593516954420480842000765238148319059648866245530224983331536461195738120088382547262162987298863689924025178181909991314395528307592522834365539312962302845776490837675614013254430641942378785874928743723633629506995420208528570163145566049730217181579004849936508460456443223704005291310207990310953305411818366198773836653762492416822459245260005995842074339815394187749777038836455636364804780526859843018276758337738878972291223042298172013052553248277867448998863257605433350802067191454905152201098178171674296212626433084166225788315527479024172307107232344839442977589186825531503853130890255915089014602001006854342813372240125447447045746563063220331093755156107887372853189932683747377378192042100916319022957810974848933077617427401051796539629879965026797192081797303601484669283071984814718152650180364163650314037438281428661890617570684130659706626039101125619408461772609568238238561975527530107896544556082604754779792829217894316767855808126355579739811439880535446441518328773950566205963176274887937668199128954629695161465444092975231622348900041908737625615042526777877952982129387538829938502708790039283385000656608726832886244567716556676968546382313769357457961207867570120345748416610708993298782193534639665566575177653846915235105396720645415458154941578267867606595006582151052509193473350660368022858371577088216476780919745458357823365598718273668410488879983065157218983386188451836088820838358393329696089099509141260069795538024149700491227336521273263312758519521553566727941219065579116735566224654300763317176361382737876606092006338783365772258062394644431325114418531604929320782866732596444753508855510913827922085760624640323487705491705776106003264343332358478597549212566703548330561278185410753841967576877798987825071222171700675874843099189824405508049119173947459170027887488255591910264726096561304335841566288137414173713241549090069518274346962471195833739346356533962001618990963587751166598443653322584346407105035727616863776233841130591773241149434753091121165070666900630001205419962793249016297600616557556315799494111393477030500540231139560747561585416731849563734793819924016897687124906393341634752534695958592795040543015842111968990277687000067238289396924832719257338095937415105374609236036807092687276582131787241384014573714642719443599425243313464403811432010361968418326183482731910252756269826902211621974331713718277058159279117009470038104943179977423994192114738739959358790595491750710427064907312350634160387825127770956382739113255422990530410905388336829687311619714375635933472356224008146793448123003493166668084839085115126160947435707053984860298318329429057749955570299693566556280559848825365813157604870064179939364484549647810592510478754991311879100519305670282764256750468328597442862037992366782321884752080096240736479936187466651336200913938200871943410998329570366884299883202013977177699754718235236747449596664987401871206030861083281994226796768224826330718095996445550683264395584995793983516289808077267177384465617858592756097196816013298962695588912012656397103146282208726904806385149778726630129663210572298079868734073850679462884500427880003877568855662678769181980595380602332148954382212652735764628431737990337698494161173843310527935979775468959914986349049228207351247488246394367742709757803630077305707991658800694566741948472844584193507037196292658518302422757956757770672790920094448439001316683157283453277663181195008302591800499453377181085670659968488848430982063397689193905231047162277507866018847311592713202566421236862707889527325828808491775124776668419809199763497278415994167750234235098323942607074133713395887043409385121130222486627599868847346922842967266113879769714315644200387432103545930229182845427948386718606076828670385886387077395628922398697051047157837965179558896114776624479368395471930095935679347352226707871568167936811596802399378966479083938101027408235874113661182889898845050577126073473320694702935039815783029662511202853569346748923769066345402500638276247190242673360760105280556419886754069971880667144755718856339150091379070658029224468123741723279514176168687251683287754987168099948502676347901794281688703481296270336207095043335985157743180185369284440142128055645808380301062253034729176659922576070811552546986877816804513122238977397737420719105571022686631146315765623799123160024537499941593325903991234445804035552598859855204663003922401492544802378716998642102253507697868310672831027681657101909735883332467491340398281302495714743564744487003482230224930844136130654215575612274945141322052321336694793765592097702082137011285885133939600208062888488750422825249629329346548036026381628628001195592541043358649221517878757872053028749555583656977134706433097699344477764012406990655074642212616293812944522031574817923310730896335559317155074581496624036063152026849861210881262213965903646265744420152906881082509786908334497554282559900070347216502715626256793686934789131710879458066609280011307754319798760009116937920291158890373674516978566689065767933698598572679349605690122539657092003152521218665352334842738042458988673693527683046029426147027851028407877499838658277321855327939935474478532373231712190695469206079652906908682967953302862623344627947733494476220557449782934852541129511715376742027581610944815532873916706613302895372304666629916171560220590939153890866013473971135549065396385439478877961367715523033296748775086311358820421578951804446242320921948292228799625323217693581813335123532698152817678980910218434018078246851094430029352584999959394349191232590220706716019579227090192072017230550343532929635684852895805011594218987894451651419093313457149936051070289259547307323971381345176848190855096480072097211815922042675181918969292584587131769511656414356260295970824206069981049476840972424654725323373062560006823727715356231832897465478298278574049107446260754234738499527979664074799864050215429845399496786724063941869252355721339664785354031417364165149787791479697519169232566604118281583319347465999040228049079882374257737817366456832839230686438405804968286118231421756159118227874798311707106407231800368000019796946140546174570719642210674121445306322434303026158169854134450654013643267182345790422423106948264341031923502040634082746309632438449258426113578881423252345710637220557339029423160683174949050768879648261759934607855041945547467244686158182279671021179772111249081055792099627783343740994032316143695703450186544200996168849509863760138833429788820260314895342339920602901373865133401797204931087706726011669612321366021357911890371837725999407853516908953518316722287952690271878372071215888053280089900098613007967249565763432732740610381969938108053680931430188438577598276538887145184400670629827475421272267584295889162212919644752762419646294906959765041870404316349523200670511299797145661798976622348851564736614626152224659207372781326738362635354305947470433683643434772554771508387774818358413849049216701843680814816931728614569202861075738954122672849350201238475085437842045254818986960990067700399566152015599489238700959678213202027781526072504910211786037824618668013953135320579100458049472951314331014897504345815142545903125656627226356145830534343398427883465451002764415993308648428143154308256966197055388992395432922596736010635790386941683811967280635938898400351009707572270903419434554489159387500863611788037998470923632544812140100539048058346952033936368299980929002907609980042669524419431522279193831603027114540969317409331646108408303177654835963561915447108691363002354557267042731788084996983338049826961685687789726154752122463385595089044991747418741684540666048962101089252313460542467279192094371479883099175600765372891214894230247488925201935321486449768482817828249794277301624419983961142652270729579860006804783750093673628271867403886914436163353509639199509084148176485722405774685059269436284836730346708543050044320014019911132413736996493442557208520502148804086671966024007327476701160301902531102121374040403612895782235078250215878419117105233301841155126368661120187849766284100083341336004800232220882374508312818104265851033993141940864812955949974021560008075772250819628187293951939705315727490354757587861874602889046618821687742706460378796759085925129925798836226906558332770986087782692281391909247972975486709283925387274016619806617429905369198740011548478873310568683807007607510647429147926380622678270033620059546273979080260706105184355658084070019272648318714755019602215056287249480671319594229975612813590226284556156258840279743759937808209679732347319654996903570840125048773338714345298296805934162304379066604678133004169715563522461696658781369731625740355894070063299863837030845716859967189350111178459646245788243108925583129447573640773309438707519096085337108436318243275394357918246105849690724538705630832921317598131925590644209322208326734118233397719315383051169268247764248737297014027435216114165494906415110944904565328655252662824131859035121624648366983811389199159667827729799377608100865033215363145734503455826632325102895712337754009169636145542142498348470681486905360293769591236386403768528572904841025997519990536336845189886519439314883301438172253154388796027559468636504148063767788716462138965791254125929077403697454712832017001298704907195724804245951925094289777060039796492980609850799704101918120311541094229360019086872611058833035519140629238194537845707257675716770514509539124227885865404666145533971341787593484767794782862950030334200235962497236952622093898016692537947561824388724420242322769491814626243057424589112857706576350031949524868119104265072920493429737816940430153518204312400948260949538387606146082218199513995687535975382385270846764911168788570103155588259178589395644726757534040618570026013371824673269867061039484509872760242558296829834028933516803412150240830133930218875485848200867331046757380466511222881109789493755819305122623169146941999875542997488517502906138254140728382570619495125713447074644397215985211524952034427996353141985022667395756707791625481702155852318503145198434618386559394419804248444424108726839034163370707547314613360656864335946391942540596821981353064663340354442585770760490457219046327540353039523637672932110274779046217443175308608323159555705205665132938605367519278323550356815489019251653510930189701050941907121881462063768517368458901562476312840679021977231378410934823577101843413976498153171544724772520916355521979346327958036369655859373051992274937440002495451015940554714970211112164394198464856630010372013055582298334366515082779534678908136525904122839327132034199435409657884627377918305710568481206209896095119435976611060740247257527491027477815704911137016980065541743044997971712659781504334836221209258640325214659040135393979717695189581367623365819530060499968484908273070453606761968865488646912473034785227958116075448293601770061702198552954214155510632977287822224618850872264796546766845385355854383083636355651268173982678343856968446100690056558088703555262531750354511624227324976616003467658118611215544196811608132387883569390719566927533816558624801781245023337133855629752754860707998262135541635574743886034866571642195659348601330173270815974636918242418285981720282189521226856563469910154304682204608595628215167996141541614577145850945107410731476937305273316405252904260653658065836341671055326517908567453999070612849739876196913072497539821911982469414106112053809165091657044723319424325941353666434217503862931662381328196864928080920161604275620836329109294727710464353801062194731408929956777004144392633916914092085082213283624754528075070545523454204524609226532136058920179343395011489751510558369462818295819941919522657421059142816974401256496219421214782859362008005697934877339201225790934626410515815816792950562169572396320899739220634680066148212371519092805651417876165816689792220209810923399747018114919766369086223375264900185920476085894655554496908688552015867173851227492255165886659419014293445381422951098993048483563481870056225445451212930544467586597527753994966264775487676506767413675724668982899471928703597561865680724349701802700287886032887882082708928529780922720414435391171419438516666508231507406605839280509763687734685634816897571182071008664776111863395088743451509335525824635005386711544658291735202514201198099752500918765265172071714965556826894924223180658285381680782305938517750280763960831637845614846456544195353843864089670150793773633677506044681961804819087825994478983463301360195762665973722262501454169498876183674475570975335829788558457120497511574503128110726214895372961320163320923408392092470268490788883488389921963032460589244820153155431236542037923648656384306642181576563232319420383981194079223631780044505337311817616351218216550115422224255212118656251869446042335252269578944077815417737924154014558143041093051232946675579593868421434047240327280166722581125899923139446539459976293719905831458006635631404404702458182120676041382817147009859873272375961832389205635647925416654124723473484812657036890410715410799665715445427962194918437760262156035424092889746985747573493874388590266358065107529482609683539926341911658445276681723848811404608023240889452198832807857675649331886711494171223273305082070349401711474611404700284378227294830605707364065783747411387583637398263754574223403990421074243157273773183270202017166256860847207967358317075773460645602941265316321574777297864815755585885116905746282223455378050399521950074328602345219271320267797815135389481279724313905013415232505007846423007455263897711153829427485012156748334434823254505609001739436877935291756387125651183282720237458444626810516721680542129957747404461851681281540680747793633895269849114359578054838873401746266721371394409770638829961390856248434026457055103775866927389518442378914102910122708143809830556918435720384092051202524121274655385322156815892076625188784436364731992579498333282481250583822045983526095103583055440765027023289443535792333067462194588333438318750866901072591632449350199684748524339991657500272074238927735595445021608863266509551405776362573631205728189225190454383687041152039430952087847899846591650112424382640113263057424222309072403739999666660659435748678701075500155932413626563733603834815160678310157552196482041343912772888701578071814744436386533861182843712470953859497616136212926002874638295362334433997469068521269468630026514529626611467131359447988720511807816084587089243311129839466409782841774313779341790016250595891845408874067606892174930557846573262214948890740406720122894684280393782929313972648559915556274508400698270748360193626527916013722776327985022686189722341991823202569235688019072738775302525139137846353297504209893997554232915567708450140807795482255833644917348802078886239726893915341019098729394756850828461204071018890740520250306923863452302068303291478028408874971097246314123462268206308135345471505217363243617649822493412752720686798419751168531606295403677143232429927420705743010345094530820074522817804633402992379142986716607285073826595090707067857462770435675263981745656090536145316395071380466665916125961030557990480267908913459916719779771565367779197481933699355451857570916117680599376905770193835943496156786828547866201998821776715054063385593308425979966064595219351969584147050554598586146904300771331863588268115003345198856460484657339339770049121476429441993464444690823572242803540619887597139948743624839870312448544103037184194830059686092664047076918934332587138434758568037852702799030308174796448364461073786549120208999893545827153390318376595183314568361656713927701554598146502597857170289888448684058259768999659487809702484515409559511106434637987864653857700979645044220362244083513853441663566992268099837730183482633752555190950189987979893668628114264053437267411634206707558624672022720355167899993247471315867105637355412638006146006197640952687733021430033751311770339766154037011405070840512748731472991061569085782776499736945736021546596632944072408034501202172638545628702972908433026775170345779859052229788739622543716807272104010666542589998687291880397585418027989139401172481879406194333463916124250310121641418277582922322090162565311037105213737774437125321408104693987825880676738191844595174716642669824980311542637809268857293989675281714005799390022732741286603854874413353873587175078777593654203449796282442762509956138106993234709535011653082556398591651280046436095539535033826039651455559775188861864579738351608427405113148081835693137743201962275384992789393337723116922513706331041273973786255523829847246915572615854272143629716600652725783890737354544721557644267048861963585112670431881286839919324593764409882018311070432113542785199802750891622296386506027035474394224656726265119746522728481827687957577355483268590284379299957798415874581264048368702277974212904306566987729280071991447644326924162359623957659830085806666460867199805382815915503058148339780104554947580582318719487051019816729235040535856665267373311880586020673965656065609019438423349642851762301716830340868141975496237251483428494696552647185804836347485960993567832886086932456430943612531615762731662316318830638797875064382753515713183642237950872523144723533843481253131541901054727563180530837963750406170054496091653045247110027375636268718348038500959253773655633170384349560828939854557288652381648773264650382423717590240256260768860005758826263747686422483561241624730706886219425155963612241007674352024440666253421826291179958445555680386329663356736640352873641533051389689257430609043236129094058913349295412695689443742951567020326749567823060147908243154357247907778288237875001201694177934514862058783808237512017518565091811528294335446468874652563224947445056194067779454490949184995336015023709459676558223898241994439093197781937584370729536549260432939757412322069746516779649282668037212210289902233937001379304523455801743864614004190757657615134644736683644121720634912222079288977760833159238805405813054249958808965589794451244246677878527523475247621105230864461051783210445159803447477637974707735519619521494211041440721288405882184298644297586643727347797649733190012636471899271239636570337745289298427223679531198833386493155043100015528755946722281081759434745451444091966067541802760808737888856868741866496003274780306715992338780808086651667607205183827091905559056824666599986513557723524629471328319140251612033410355239440281119169415757061555583191809295711610241941317675767591166142146668123020349066762643277126986135676513573152467063140951508062476742158034703370497110776583465452972614186881400122063523973435960514065953600629074354376411182282817162064035638955618115984150270623776756250156631462727925564946448669389620999314555640995179739651394042758927391806280581195589379529850275417404939114250894765543619647021061099822433017482441204344231936807117433263808400709514025388247588379317617104798585460345194816268134405091781479526617481184407183370151661691935284700816826143788238237028008506592030348400276376962784544031882671253111666653796809902370074634654735522474927439914967692148581671473231737972765678230102228640408855738729290382354756320989647309896843809792751017888489638244612771380188510702069124879746978824935175525830565266679753883554378100915756499583837264924548872730477918538105334013234863745691357393274924044605300425853602757444118936792599370600881787396132426240353859009376011118610123610110559604890543719849347161495283824667168857193203686759472620384596605168646931297466227752061751543814961963773871470560323250791895590839221334810774311389478809376314406091507617745093764152274926600445183509278545123806262781390532516351415926234592510229138957136294644084394119107828735566458245236491589595156665947517455456061236811318514127346396039812572874336718057828094749404886040849392998065777436965962296601267620770559328833591937039753689923577663733802521161228801079411190245652073555824215997354909129793406614979293149741855083199764277425068727049398614199569166993897333797720853040663064994959880364726306895552690666871749651540582795781124179846245179212266681646573572280153897035881210146515535035837284548419179188803474214289095512778069551492013309271545425797131497035732727780117750825637750246315759529680826148064034019350736993188867840564247057299985910254323440776384568135677883376992835554076972084700003477795521625804066532708428946834719754466619893318582451008244464304426064211650887483370160839665631972892287121753519383991104845664679767171407808167226108206861475057122718829822450569970785655375305263238138765746837284835273230212026888959717587337851240705649382498110618664884747669913376215462358189491978083861584261236005656234023280256433485572042844359957630183707161160931908178589431394533794502642594751432782143828035561966449433687248913086281102691926044112828584186856483358205372479200585750938281555864449790694331978896311221503531476599936819519607491068977877153416146708440115555473334776133225784768448636242877701604374927391268245923365016218044006522503275783662062256999542592481473529626601161996394644148800747237735333690585412515465404241106464434175758466303029460400110813167977469589602594867973584387107617456411636820622551779426241589021849348560119878824452408976588897841013457103407062729629513476493160474133050196585471415133105306897110310021336981173774082895224250439257520704695757332850279845573467599404354936155207754655343993365502468711865328461171016668024520585957352599231677035915108173165012967835172958897362721689388497998063419291988103426507983185001066642739055886213564910362436168715194203162179867047332259722184935123095472637781189091682396010783276101920782641181358990768598590022197155682119941345064138497592154651989772844167214978623955381008888990918261346167804863437497185069600399684757264301741449326706659829555263641006398437486776549359184874819913176532829018288068634936977077919456008268797293330342370882897459452736437756784352028095245294830228819347132726222082498833283988344266574437280437836538382683117470480860360556950944014494788082885710198960891872670822444246186299373411048335645034835943081879422487133773789953069679880897734449817724114919778201167785916888356003934065401479466083845270137756889295440121406601021067659216158441788762597567636498854338354475045714288462702205645955724611305423402987067228260109470243893759389821206807124716731238060622077573092225116219935294501253146802529204891214007552407716877028247355990404920240515586636112924817143943761762252751210436119167113830045172928529027544588836031823283951519375132787656330850455474662127155078270466770495315141329220005470798309071255272620215113464526166013888852275420733155118120989825434243972101008518418820137527484444601432108894220012646257672249418522508740601961723672067215580723023268657778627637593607083758745646215321703771325795062202715210482131372052978663694470732078670657668518562179455364529981031939469157437986297912406685156131678553326787813166477746692208207624469707385320526576513312184540047686486061487159069324890756033842792119500563971399732975441096800536846267120525618682524587560204803500036647588238730593606037601931754719003298128854056609420087556880784322323506123359331240437888157251293878009797586593102508231921247447560349468583904995612318844526902926463375557272980691258867388617896311010375278539960493540019579418454393677888891032848554010300782827191418427354778249951780469625541446973817475095808690251816478021458760082894393000891671980321378790605434693584641704152611427003686441989639073815139542804006627994134458761271338441346613702426402996570102723878678345023894616705462419044332973345622962845764235358701741581013807572584857219076377477779110796388943869510311607275046733895574627893394127399680263322695482418306509195272938555469135966003387821999912686830475439587390565444869266557576873276177046029111553696772734866739810878205044155056679726930620132799751460690949151678309736050976919920994086704855485413804290466861480189931891336029616533267607663251244671896850257913781328081673383961763574255054696970134375124539647540030743641569134425337201349128358368488736939936930240228767140574573149978434814047275825498979684001136739071619752604317913071488149151845981545423223607048430322035284838629169413751053136842243638776269448863217895262683155956385975119042047206150208977808193232091610833835480623560571697567017213090899476814707506979342918908393991382960974469338060525285493370922213545243477660226825974143244009738253618394620896628948186267024012693456991974224808502840710574167139398671403263165968619681070219084561330366218238923960675655202964346867526673023220306380622445968420824710505368767071328682369326232205893901474108249813044137019951728719795971364511551087162178206822447191249209093749259410845606709203746748319056719457252709099918405025594857304464264416084866430971518092332459247572797191238990511187601130287366705321910253382767482653436008374548970401532276478492845916053955009226761948020359340173218403219229834622368038307959775435841141134545670064703141774358567433700593915547208687056695844189828157410002998950049203283029781051086489327485536122307627849572955760035951759349438136073457556918603652612350860863371191821026308653939058811982873045774036678498040532865781540943137473737814961567345936918650846666622731697101693337918685997833233076330531959381064708720234340213994601210356761943299862809993052462020671554610752661491926787320171989104055202715335198559061762916675940342796514478187311564397782048511710864785379369347378905614170999723781582267169784150055158266466001792420048447720223741940509970817519138776459698156069761538826500931145395088433186191814779162178184426163601155867470753957138885777751771371670844812303167925077872280277664582647367475415082358436737111114848314249420554447156902193577631230455566090989138806277573476278643146656384768013725982727951207970580743843034223357039336377279558055302154305941160077706345472622034703734913213490723163250819307291208102983623965591338254723155994220628304751137670760863939275158711154643199074072640378282152428116121499679845350038925792504824650600585285182244100562051985559177999875107216640714064309571776968537156468501017814046403557104311784225042658124034180212190443367153477693495110908912606894320032788509958181398604835943377900689396038913840466422040713838091043729856407725166391381157298106655884663413018708131090514581005927981364768381346733095320750466579597671282464074398416666391015444194017668332511649044379581434490367983975681338796319784147798078077200975705489983465950966849570382616418712907593672022847170649518124863363790228964859555809944917002630945238625427840190626920070986885754478432495964510037553952890728989913531982500534532070571399720353237894360091600727963143382947195891514517324855135255346539112611822960043497188419428552321252026120525925599263217741326488783571605724097909668185523106699910492926074986372801986390135078838023377056311174133600369073845883940753468137159666744575922373288942512058549911860305655622172130909097028884561533937595325807100188782410451894038657768834898902525982410197246409073778332248004058093564201562700135445175274260231127573955870569914906893238984796044093104373366847740285572944095139165035057028518281661688490322490408774065154880775782811606138401316335045230137593508846703510718805483397590324466232713958669540252395210887555555391107197526178467268443436139758323136628176972436649703699402804415336484353343272942056413200204001361559660299623505090515535922523944184278254184378157336313125843076243001832110198408909213097624917011699899775424709322672949184218251531444250079946799854973443764522836258441543091761289661383025025963067685738010053737058538469027117188058121521687294580799759431408217065028948051656002024790405983714735736833070123871366753154245112435623435732605797302073731402585535547415936451515491317575686140227299984237889160109400218393889563196393360195805438350218460752382998950725301482142102293036582396814161802734616388024409026223566468594906743489238478560527022469702863329787154013350593035423827205241531551861695079550541880352509192400314528858101029286370480962282170608593824166207219998015891219361164770182884701656859277878768144231051342931553549742160262767104026702032521319128912659955734237522052750067044974010708604569042265231552950931074188768709537100005879732560103760562888240978057371977620310301429879664354472538371285761804108210879794765531321749695503257713946767620798312098276112670773973610821541423980485870134438209130949896477133214925888695052550975697955004930872814217212317661436277165162068193886889889002409714835904966719292809000473927347724291088291942490649387270017613839470667024975458643675156020486669175364787013995275963007314160925768137087650990352038213924667297367452128502877208437429357882743477003617841863592720901631646174870796787209959913284530096174496552892502604505239774829520044381387675406867730748115389016598187732725468743937029863195087908340902084694514427212834110640412901190988719570099443909706987285936256436297000220389472371507208785033373812780932704928080904719597305071470255017988652911655827621662246450743338243669365693071153657272408123722268161442642438032861422163447088227220886965069595584820707911746526542949606176362603083370527183053979553682675031269802526096400375513778228819165307004915189094967043090626152180718031139430897227227228959012627581597039845806411076352898545675754250035669624592693175281701565811069268165983623242685960525099446274983834106160052185178160171104749913027820746171632664900167169666380158433239728042907898831757340158828687081820024520071150292336886041633874137823519154897139407883859762085535765999805995565020531556590133416974901155443423242842026152745567545392200861138171151284902627915716866842148671802471460629656047924020232331272191410443672658491347451832878535670379396141124848880803256137866805558111561029387299005674659495417555041740003408058348096725594804976386785350324002726713918987212183437272869200628047023756685423204979400038202820717433472624244641575902882714727423774503512856118574990846301392702352154136429368645016729362744309108743188516997322915028694441154552405165285375306388548374388142865913579315335668048205764163164874942526057481213233557584533232535787839548133457563900743858180514753236724049943716144129360882445989107631598081484224148057353502148076627749240505639815452498117200978688405410347311339178262441369498790705108098974444963674133194153601152836108434502526633688878121208011787273277309780180114541842815125411232979075349818107314928686538275408536247403656438197671591941120768128020370664729815907487150922367469205327986650145732025140032915876402320314039958091078839662221654265680066425228836025156013642538749557666057625014290604597279473703393522785523647765436337766069426201531080637255956329704433450946271446315577274860600716560452933105235021418854981659354284907676432985925605630333064830588709809328905220703246575486242664123781018714283398647765045035082619608980807525244422154297456586491558993841103240372030815805322996378135145692799496923432897991238661237616416079507895225274853916118205036694222012038046411833013132009206761876159367209079869306572376489271217596893141201338747702236803105789805863133600420734495393752966876390252575252176028138018830380870747167693387166330617062781551169837531866638608712993564970254268958500353399240708431389814622822588594738752620415892819029103620845152337711411534328661996324962698636700747399287016697199548982121603503300277162774339921179781944056614783228335855799995839263753577129693872940274189133305206678788293096186401476446570258991274186864992883414969854017995951615071740504122197053904430862917603045454594582885886136431818919497950934345045208665549545350433545089888945957221292280984046507750427391798268759723062313365095276334417889430558866497509156059428163426471169629639135518128505784920005097152877577043720814594612260545040203160470248795264874042374814899921554562857964117364723381572192897103255482978131357536202388335353611508145679972092618880132765971613792275490914832623357975913925281625293252295435186883963455232440326970535658819422078371093096066909233734712285809032110702973746908752980428502175789463036289740946952764949469072058963057853550239338112736592722814073927369407812517019356411483600951996902971530183348277513992200468724654334930684952512823955200696758866819778460751471752379070563756842400656043674706779781330369531686267041042467341487686657537716436937384319959960507214016513201537500737474968205050753292850270367585343821875175133062947811096672334163779005291043750845716022488886275957727227719991093654527689729040201626089792406282969729825511702068012445930492535732030141321162875404177186054707609299799185770175393580424786692114530711582205729390418283353624997049503251082496573749650636910983244902548795846766679539475192770960696781360702770458420969557535945127782044022320606856356092371752373258053766887163198227755537133830521905670583768193421751200029310869476094570831063796790134479246406020339240749265191223964643332300807952165905280094377726128061231835068122659708133844901932898660792121190085429617188281674566630025432099337241606905520626433699527610245451279572575065329430926781184122170728540759702925390356642587093139532247926030194403510703512914668814719791758548467955312308590884728596551187974602023792841987263570984347165973014067468986256959938062319199786985937430408619371549203148131223566294812657896762737170659664272449105886781087920395929167108584121197553076192388327222120086094573394410324302826175049558634890245698675401416661439206860138543314453592989557409019750191219487446284895361860921109108959466908623706342034612203527204952932473600598771182543853262869109813948953185997027069216874483228562368073862549128606014830372907151986757527625329730729742735360097980712379080423504025831122930429306516810105971338944358182508715717187398253084044312934298900142021712897527017976426033850468409425920091823362052094781204979518664257444372822068618659894492587288565958454783040707591994179109335851991694280762448904306321872097977600044660786462839213918725990374109950244296309335990932901462758134964841293045344023366838033248589645986873727649130066841203346637147096669911634608731260817348181245969536882455651136487120332575837440421686562038563405958395373254296799551546012440971065175048041148668374282177648200830064062638098363557499497968652125067899186766844628609735649762708039037392703789813272336398305125318701250427491066565737865539877211719546736632919875425422758611599273915294590860201607527049733689569904068467710791053161915928903453900964330195952674315342899879047000750374983471070604065451976704783199849505333335084129827770251475560154936914667183031656933745546744337361784218746580203531134229650745802905597346729301545946266856399885864760435057204798926872045410280326838435181189918072541541503498823105867174617896941564069210052897327578673517267664378949682818332080258712114119065192069598261631737918434941113198608692520189486205337144343237985448421356281570450882157964563895701819404380461921660410584970721627315125696731293005854001434392993160037958287449293060324769971062085138055620035131383250522739507191044374677916844092910584817288797098800923884328936635586633726496904267032012318849746541032658589344200558578778991430352064017172991626246959152451904390850532632091349164085943325415573126548900698368291691688630931761935674527918703985443151126026603498789624509881706799493796163817013362639184005843615046956563372917967733799614997355366065385471705476414588823596260215051431177548367733768187694867607399466365025970773176008000944637293458268937412373262919276964249417697582062181110290340637048101850622057453811163912303712686972423021379423282839742044100860127303300193715800877182621523885650193689597847989408710186736314262153218006085840053589640440321255505976946316135578926073876119014435338768986390941844713266362100995525632066750810932630748976412734447629049495774689725387123512379178379071525335227793027285376833296982763668040355233967292882747791193632213151333740215616982303238145933106267613361622883933279509704698511051030509615379624115627330848365708157798882695259772109734437488156048301375266109798211541721154845541194245458544888957202051450984196301520461560107778091678575954698423146895156210497937608998615373077899229745889958693022225662263983321962714639941325400784029597586306396795732189104226256214140367759880919847891842651371305949113274363340150722761593029746490040677708752418549189075116535172645311065521353817658862174390690791303339368055479050966325977916698569513065135904273767979054153559628785592568887587477173987792683798035222748851806510194834257011934072195233027854025761979396758292785378512567116354833337995288831717406677695410568434723144704489355660230591308085263865744292242944541308645051149922959220944476481833586357807450095353071573173680135540158204797287682563162221677671250566088998191382767647735071514235604258460443129614017893114817283673173562983280571710134860960411638774711333516078834708711321119012942499559681580909651892611309209037133140745720254325723323726643449476044997527566276499924046851644220311299393052934730442464940738152188386888712712125114548185609539029138856334129976395470222604599830192881787640369314214357343818089449753110077290383481778405661710990733097972022349230484584465432777410426591657709091243913998679436952814894983174349974289620296766396307166147440019037984515412008409230684063754559897576941587710598751252228562309297908960860011111281179010998131889386921592636919677595514202563656948465114461243467859360541257950385345545715626883587374827520120345112640325718575733272590790033878760555527701254171968893441826002373797218545382017750047865064354239455840370576977942659356717392692863857941015709933263754621159490762687928323680615931748080747852305969654335365533432332399955515405758636884704020038671895396993774465796211396962414355637185196115064451093025266409517222044429164846645196591546087003487529729673556956204931918950980052620523749997654587554900857654114484458118007737256370444226498035858316615503461301851204859209504952908443324340780004010430954766935354906586655497175658719022777436632758954310475960407069082102645287002811036327651899914108888334119981711318644159776768149856751957297750237830927623958927041295934533413029071261458233876089767779906599824564299873964129614534345104428540463339782089052852375714882499319984919036636835056823657177240333700956502591985593325550507211712186907923440736130102860960944430264574095848517041475126934544192898354671707132710333399834393078373806725620211587693272430307542318903209337705406969221359444586269796099343086774192661116891313523639018302075608267954107542792581561732568528854352313576267117163438100225846040526479099925559765185709008724466889676850192246541232489101005108911279353797306764553420470085581926079188067517360361241685987691932552947883954777949983245124491872121356945121930597244825085931128248533110522946124509719333587879128930948473008145851693438868435305636019205044763296280897836054653590024401599104033342129646844346765061799758060747645535359181738583330369926561296671817170104257717554558064181813700979776378364670368835220394488552212511200323751832143008128554488028407309351380741038872361171902484533774618517084011143118771728502663699962146350694781104107772665897364372371333106397741872981547292529937671824189649036677197484554788897887308318813569160359693402873959963425957631923590351121377961840636680794197573469362293480829442911543616840293233091442580308558646620176943275898924281662196357127454090963391130474166860928809005761800394854120769646222967359037051297087070285477355725309082011293590523040442664038167977626438382299391030470149156905907486656410617918741839426308276807115230955970557174461617760398515826844474011061821828035457885330239108848650966752532048286486347996906232179348935335743045032659043643902017387765673842830816846521769295998090464419931113630372166923428483519205539194892044054413946000762264328089126151085401160972806026504248102081030911142283205714689945234812915905801010083478261166913911479129022114732211576141640636654890311725586035888038901779424170595341720754259770265587643697907679118308210101002341620974735414330355026183199182270853638707652361102458662874649903376819837745108187074706761167445033394871330004998795536283143671116630498086031470991816988019576493677095567984771887443559146655749605291987016958380669890145978899386986374529639229427617622552977529250200230165602630835108350521156793281004323732965906960415298808003861479673230673636578252194602893745607077882733505849220748874311479521569078730859326865609521338057306011638408267878319728456494408433938992505642424341424434967422494422730497789161385367811876833130587246168016901208752665603727470849285596481870421820035132572726488673158320126285550219465692972577402066147368808572989458065743662590750711374168087849092050133342004879286388329635991565011091987785866962524768220846348702674502402060211627652877418927094455327110889679675811898584646719500071996055878915147110680230632794322381032392433895537006377281111527452835526953227964687756648227511885276139852042869046347975140765122165879723780777574351675109702234715601959329594941803405350366496073247560882635158325257366278240157536533926327936787761836070270517601836088807328688129064290646402997153262421380766919457495396721577438691819125204112826419887590215330023392543830914357575405262251143948855941960519969611178791104597236810692949421063750754619196311930475556617836057442110692470149768639002851467168712149663592419290136873457202074999141971578027016568261875973034193188075348385121600655577710695500515734237694211929175715312277587495881818880695774426544590309131338993252699030302467842688386962187733807957106303148641094762413831838615918813637982375962643941487912765067071893098085835959061877259441279075956182197826637149314148712363447631976166198480981756760446927846399534016266214307156841321983500227689671934740601642872994207446243537954469871410944229641574054196494636001127615493926382114782093600440270003171997522352593313235012247845790021019409816713668930584067482209421067684840073430819560443269322599160862452482425666176594703602166550931687166300130525081413560315045936175836549107841573270988851291529223755256796566553541392817441855403858840760878556347114620734247668965584857031399590256679901220131392155657453576590120454933321436501506052765558755061730476207935930380849238806985655869010721217921423819277771689149882567410113587289307386613769155424085278608873398392786731018260220402325240743747950316480999481895293678923524652414973901097166134236759524930429974465649826179466446125362110222473019290166005973049947931958976833199122089576107196312171504980727793308457719683228123731483856136787372830844887736612742552339498186775584251407532415512025798867047721709128000921637523778693236824119856627081742556725617629858269642605174686630561747911509128461063231286753559764234787216897419318195994820083601951466908345328552223605251229441203851566229668711406582163112331316659496114963666265450942091776427351054155979960855195252441291227099841166967415837277265850989324441301883382283495447410268138822765337473245562353583362436044136545312591498740937866247656646425795063746439628284677022609864972808334093440317930652538176384686416649731419391658334129693519021208848255578060786458040200513098417270726768366214130979523364008482137896734945165913539020274811245370741138726334505231348264367789175878588562180286640436171639642493409699208062526601695719514321232280883255611529022694407796019652397840826426519709144443807600418564181278648369604173838056700228238465229921758348397114524083405643643275490526542175435701753399884038643566054046200328907018880785478946641304554976757842457680193239265442831603677676333441074791333712023347117549160996534289326474924075295023446857811234486490147543890034859302632553239496954703821153050251420341899683780603494285045152468137847115721527623212159123928260258094308145967456460514082114395886992695274200266998827704180307058642054969216231343212110048714175651611316225953657458613661831548221510710629863578438906924029344625985398483486706135740656590546466225361380403073137287987913408495106456495145644505720235572575898385794792863259088317967286089305924435513382764918835708452252291961568105031349164684667939838391053843222919349651537756439247769343022371837617551007363328759699198066854214904297780429358579401675133977748236212046750392786711734108151545820664487691544146107123676757193216493779137017797672972854995345640063177057569001031766670533249424870458496914186081046189253027564387993958523260658988831778992790129762543555266551140614508090958285348489728315685914087823635599009825967936668907103193875664606100743015722660924355507787690375830878479914811120675692485977366394899637426477272131551644145633825535761096188668288079750209118930127483826163885600324643438910995607871126501815807296650358994015605126918215851028872866879387972412863632324852592278665224294824239467229151775349659222967390369356581108420983118038551562052012857559385645833863191579285876334449999247855498474565690176199507761831867289216702611805522691442596302742300864953248936552134206550114613628889735838901820874983061237334779388794055192562430968155733876170050928780899198759881147188292698737435751562722770422201994537380636554903449423762026285319459416945169959373681931655838264080518958999220018712144198975244997968165347337390150192843958683028453568191591135323688975643258298752514566849829103763445974184565457550170660950089416648710814208106669859245293845811114467046406799932274859291488087212466314355537396130882908056612150345180214642257693330193452915183350361099746710388442335889878308109380528329916631756616030720219463935341602053423512356508548648267476234118630045580644620934143936664365870431509020348366978148627066724736003198009483454084596821372246055287089201233967368412374593853264323844908676643128164401770924613450584165922970109181862466858256224013682951978784658958758428670973155085369559073221767349707440312985530012030452785403977307279803182763563966040884590788078570067568337388763914155329523702328495349544253065007791347814271416803256543440044550244187707849882710051670109411667893250951451560086068810123014021531629663985753179802287266298571667775052777798387758079287107628213584913359608885711157693351532253510191278178009371733205429983879070958186713062773604322710028944043911823196832524984645878069396395980708226933319496370096827410015569653432520090465100257904007361863496525583882676945567657652282689730269812738151501840107001748626267826850256977711855746354699525453698466143638405091106963234570682052003686281511598203355288242876129634294909070800032924981896036894958875180001761743226703955718842942570229319966446864356659306546100044834816401930111479234225613360602007907790238973211667395117560928141705111780781001087888950771315298515885791075430127500474944234779389252642470432748734995104622940641494445039986449211643071236322146036418592510505947565571362670759430165281588229897658821610121520279453547889524054792498432638057826770672537284753610672542004118665781988409956849242382922739048552306752833951816906981718072450596882160374906740451911307045357378823155397817565241152001252193870649307705548845703496741656840068461349854374728979792889581148986156250961073548485920167623372264050701733311168836185663285528061632191871217867126468672183121728001827004004491323979164515862093702000191276931918621240967392992976783401147678916661317084700809890894542483247251012341197180099160927135834130390860074364498855648034059466365878913200435001354708741073121160737834049735879121666194223203191949720704050014229467847797383007823604884120892188020112353158919691991932956900165814493090435517097751159411146175156058737630249916979791270490948742699020905682226395053868601706027195736757358667141781072064958682825425471765919503836457574733622021948231282644477811596787227208925433236965884565860988011906338156219294869484648872721753393018817665904094373420555317382853797428824415875275878397253155509906620364616888952902156172548205174223562847039606544535281756031544867751896620397349350333667948688952804876551056666534739202232937866086436429164158548931734935209632268575237998195371238990159439455051910253134123858968205704657539739837184522995463078225279695291430248606045493029404198797982652742671560370585735216436528811483672222327190567525592809118956245326157729662941006352356420171984217614570321433682994052707166323861323591725004413200813558674750838646701219318866325704875582189545998905396383548219648616225141176347083774446957960338915285901879438950175172217841626191051307337677087960284471235996906321312578423374792317640909785934176605192360381830938148986480744313796095924174464609514891219735050696859531914562488852284284479966188553572167154678058879475794937502608172596475108068307077822808722153207273968815933518342408202987429799199190987046175622003708922248538163960427484160211627537608549999748950470988268620048784996080548626275564703249409806268702445728737370512414433854562935931119344927581201331402276922428691902865023455131583890753647088725001860825587068656200382606052736906132481984148363485846063470420796325982778062249798455992191257814055955178180891909954564023861477791018998706183098078605930690597109970538569580418097566133329460227421361757275538305486225597494420077885869512144103028985577080923756096629120566585653370581287327218962766962465773036541254174562886472204473200701683184318641130154518257100747363797138004935619963317343736633777081016966660944201524602898057701069762475163534450320055757574701896322389666401304787432325714458495292167227260536118236071631331814678219605042917458144669906494775042362280505077635046987845848448213923212226154225482217055617338722168640694392608778320249461343329820190506521190829048236781543134507509831499770112609061235887121751178043933112180093306468962756739174282762667626990490670849586891955121110545039946882712943005698746058429657948440933996067456522581114355004810063907176929433504591256251115018293220951173733150782348152255190601530597609531933496845202694648615395181254768274290108045976270435818450977355646023116696385306452796373366964914854558551431006772529987066652685209215469471224855656515253517413128714413691182206943811353209846707806589306428729255635666601505340076584400787569152182711876318057643812631413641832686053424131468841606307525330486899608368975285122907360037760817044117843631704412339896251799061158162767767142981736953647528340884251171455537253681263317980236327195819515986301255389284744637080861281009189737618205911101696122326807804486061235549034854212701616012113006034092965782103489356793143420537369360168157974044991674644156050097258390203625167568727653144785221628374101404261687624971155803406508194777256173956096745818537072876907893163915434148027596636478807505422552109549732295538088514450905187118469423743358672326695925503094718929726740741194148242141215950599424517585971483393823377740474593892124093434497427910652239354799895229572599182253170502168030916646971733765159583224624080800277302957068640844817707276159229700797383070054671638971628654444726914682793190319897664518800913922103554790041729996564102299616331039455180722637237060069041921607099567622124412525138268095918172153323162202770701499807311317377899291053383211759703655982085877805327002661263921849035153343213583849857198458455036068069698619220443576405753056257541223552726608808823730293464912105636034520484247426246948914478030978088871198761858199902057011844993686216595537930269866693237605741583885198509903068953833808397354979817145058128229262709661619894591896895606026770451309369815626876594531155411193446912953163213698197294986166190987951233597292634934245837344433979112204678056629859394106125428898752197120940621748459248315493760053526816307759729836647189498543552471346026685932395514615260785311349796051949444620600506197529228714584162268019075071010978774409701357266839366518753252011514023717062709198417388415619484390219298998998150456451339183555296328992579817616792039776896560750177149773712333231393643725168223504132634914165992945952430703917732086859838820453987378723779953006339650031906622649635378441659553699056051823726448668499204464628051601643109290532767024477896707553906203239873198731912656695691411870279696242468016148746639355893378710291076653095280057303551791279878334736646495238401813906424672675638822402975598558738318434626386207088392178490405937511004285656007741451041986333828302239763889185858473898904167516321620737733786394425421712597468600871720394205229105685279434428427934798486696009131568103211221277398513159999490262770792619514942894293477575614723429070091068287707726040519604045059066203090432983454177269292711984819832038677132922944444344646518951830213505774414237678147005265471401595965389513309243134202216828326376376168683377065838793029775347150999737632968695533126974573854986203975671781366333481776124418898297019192502188378517779778461181040244612623286772428437854196785896062671166535300047061024869532467766600636136603794084551390959897260088118002979070353739487029662184328496592836070871063091358455179066739173125582402618414889372774014519076105898295719864379834581031505577998623736530716014332882832909001704936477689100245705409405521598981056803439615340888323662060117665823715960797090238540431101847077830242861987614319915552869555544710059628375498401423302554368710840666131811946454894699391666000754930705044847593688199469860788262025036791205375480643063287078086303013539888045201839834218429563817789972208731020015565191728861021436901128780891620891777384315912226917139235425463003766641005224474569507256657289217398571696790269105737224573595547955006597443431119120549899897186791559599162084148196256253347322360184760986862438469050944032819091544619941944009110704865590797039676334434773479899200259495396418173982000504266643669155505400236565204149733591490686052067502680412005741109693543431699244295597844269094959724590806926647615431271841681039951247963119854423754454371725085326617215765744894055603361385729610562200468024235331364557828503650429368379469093884042237696516090520527981310158643014127763720961015549021889869024558763333544721732146410033730206904140382788066127649703796652952165359271730738689844084528120224578791130274717020966752390846331350007138690062528711402837372373969559775895431161892220813963850327292238321221973624438369309285728380810970991165395226666967850838347757280520677551693141749687145640687841425892498600536448099740817236757810504671913368718396183854750288513150686622988456496760312640201662977265790524463822173387438374396872332198457320043450077534232424843635964822414496749398156901385474010028646516262285369959006604745385244256759310822549873558155358925129491867525672349409516943446520478113226365541156433711092378118640409922071138613750690942469630565939952209093958507948100699756869880268355185632578800869726355932132151909441752850652702632257663163042164050988108045448074494480115539868649012137579854057213312326863867574587370255302479456409493667637395372968966538987912579456615209791879574531929986327492085901262461556618510563351005074599370553706624469716609483094813304290275015080007527273880547145570787344008636064157106304440841570579815065142690652199904374968880929977339729602285845300008071620958917902314637754842262081503579487523717317802692049227086631595247181107803614663468600874165384732368352183646373587525694777595090114046727121426597872323412133227160943426500594404719605102484288722794911453337300932632671615564188538790085036448310462459355894357316250181984806406956542735093542003900921764621699594556911700200902144012807697595524436730561682053782311862778578210818935724625692933980588015033586622007505664655707563262850755943320248598738942837456979880513397923668039791550078220935471809739551502106842769626749693962348184240304927658876044250677974538412301635123706964887546421606031832462391706951398041509146068048251904829512302953176209868061879010701900302481360551714658839360641929587589772399324394983097201343720940396019553956608555078841537639268261874391745356080790159704926124243027840659505790451573895595115054620428843679658003359728257817695997759978120253429224109040166529676388755022354767669309192730831802932920734105166381895562388955358586220009066532199190295586049968770454276309074054195742870184124783985375276601337620135078682720482409486224788322774443528719450248229391252014204551105475705049218865538225737185232237742498761238227387801427523999024556232422724678821322553279906667740723117813406819025009874809959113018983948983075296129063263846273120058791098279886220027719785682177955535698807761749445883207604249669739675543783358873384613663161922987921524985152844995130129963126510679165807578153706897000047373285183408951976125015941193701500172918413278939387797962633973689594355889640418600666376699567211008436635740385342959821229067537551863431015067681721277976311279008925379612245952622942176335691871350798331871849155900265792990641727126662784929616096731923358469017639359917725333786913385399617658857752717928899742166633113477505713926447373140171572346112867808156247957749467646680144592586998734131129123270822737385935694967707908905345097682567983045760808125891719167418600643499558678190590548461222223385066873716193816405060315399274353824446985201100862780117463123224804065953186721946691477100807751050353361945981047542771812791283220676406499383308254829080130416170165344944141319774465381556004590736537372438340794734703137965405799498019338209016248237891484178355291438475279289786837930315819242929648653385528465298020658748873608127400146781592955394890498062567317176751567956087462231607557875496700549384991187124129843763388108562741383126073249175164498351479304355053923082592214866841564144359545831222719732257045923900805685572964059379659335898157347702117703429368897239025885037545553649740678106033655405688671800087263309027604457158264110670750901127030004287180591089505180860235667969227683125671125063110150783373857170288806412017096834791286957168701461177068775061296769223365202824861876349020024526001306292311960990836524089236702148169964497388438121262818501473820543022128720431443345597854297893873474671687722568379260416926850809507116905084591554424171414860331761527756513363691753682113539195287899144839291317971204890530546609291847041069389151604143290072272562172217101443593568605391354771873165796808150462500205105815093950552126420941694541187904867714369490551815219697413768180866762456681393027320781784997122529949271709569860520581957606786454615151075588104016277414319875066388376182997040675266241005761666226392722788648931413431048661048387889781467492957070258840468590365219606347153737684594799654007361838549868332436547323510516930501044755344584836035484551338046153179928365034862092038239723996800210310266422133407079868548991490158069114254034851357793565917706197359031671138477364400790381649468318769205520140119428447636621582924163798612502476977284479594506274763026498234873455245855553094875583901779831936453300142014458740565835088892763334910455801057427761193783664708205375635084437110832834227687243799633109253116573626829054102786162476189182276647352990319443745081199874998344602854824966976799322754347138670611857811019617734904293137482228445115434700006705437933565590863311501705341365980470046287125459187707902305688672098839957157659642099633460968224264910196441072182912119411857478575373452982224532011236599355771673498380970340505478825958931025148124762915019887182741826210603626512454471368628277250596084367776750422766367091849765198811661767297145757787621330732815908118995416784651493643194371821054702823692022257434452894142085158014973511829158279781317993607300955195514620519444853429464023896137686257215967724720921178544742811065759782397956517942658475286589239569839813284488482143477774838906270922655492210318757181470730617339701053483459857620019107901802325581704375238328476476613915089316388936393460553915936762820149725570122677822464690103434821664772022520896248780111690648613839054022526956912727049241542213729858051476832354796712660334188510219774901289807320135070847271373394521194814975580886458275428916271070939997904022619190961995568345070048791670824528863205336136585497711489037846190471762811544390277578210221524516347848645626337920477750912994211599429912005763489593120513371781730895589349635189252304408572448924666437152187632613187118997341063219373225739884702279345705297688253016267013232704800706884585490798885511525427426300407637001045056787850370446754270864556581647572729245385296449396340780599681507897644202358027614257227454746213401187259765071556827919321240327905415067792347518725020150986521562331242963374707531340912278919630660276318908076326682649042568272446695497220100209414156753403276344150626318329410569035916258862393673186027031394759664343785197352686618314158438364795636593982180842290739871913105792859873388168763955615737823275413114911713181947189193509076122301520577123954774465717326298966131695206772027635274543787639963543958603647291378656160335952499175922538607350158035039146223003009048800694085675982685873201490627723734361936751589223438099236933382957351051563441072141030838288698232279999980600484926640917588202462786786085857339533185163367127255307182766173946806042169710956875034938093124642293722396512457547180953430060419836672666573912807584266692293073788588413998230924434707472049823032898922571592652673069124590244846776232793348204748910891740205457980235804599189193485491276668891495880592738113688709911293084351272335056773776978772118273174979887906546128978570270275519976200534729519886181419506525280453562259484720391560986536262427269085739023205590458675499601378228867760622076793220400042599110578556992376294466954677975033363308334274291245060715183302930210915153923562381430889930909333765107190102744124363320236343094157617611772379601356171875620844796948265219928265908646822139409929757967653375128868946537951865180261089569167079926691280671736520963754678772998723507877101337489164489266942239416775351114431266384187113763229426571899438754438977357433109093603032173666972340183611243205271091026682238962144698940809892272418324282766243080868977705034216301455922018244539048289932422110927367082653918555588969658029592391898523958929638556218962133950727132429599059266687890710523578615689813914499259867756922097848330174107277311769602351192799052152436226136515666867438447999226507784816110843970650921863155898203756378058278956816153814701865021439992276924830617767517810581088328018330252366950559820813813214610962565061112902660670447457001093149947791515288932639009765521770266800907301518442165036393704692182049421279607325972914277790673671990152970256456094290688019577390789163486201970951701970484104186730982866491552776625249091212429500452597501007599656279147959406336567644574452861985642121273795777319239409821991987412065405383553853667364840556596215079673626059366761030202249640224532640667566238073576990715419743721027742812693481577433191105219895807173780833680842917510485553537321831918958391819360722625697387720241649868033277143547638828109777642483552919468564334312548234892769752549632103213198219496617611245641623491051385649041045243318146629454819524697550567004500263452445491891893507722014947977863359883049870905870229309510510191916352420921239393432887915781831335136649608006735453810592409094062404550210954405509108938547803815567763905794880877144960556200496459488696835689997084208120967727146281391706577445337800751415934278799077742992335166638256658043518935791989251796553579390185074668126683882526362009887305667040860779714426316882523575304792694677548367040458495508243093605413428209351678072580674982315455939832610135648991163647144485989213922505621342962193558503645875149723756549323622136510810802101568307757532204858383840958001530556567981629848318092207100357441918587125569397978438909315565066900154401789046548753819648947972092659984600012014913921142163127571350722907521513826617209448586449627631278143320590714949328693663826574025943285618237661103922455379824976427276511174983183838749990107626365744800426689063274133107167712095988181046298849562284414523943832855518580367479662745679346927746552552209699470173383988201884637147488016937102705285492243328019714842066514357607539228000706286732763164737271683353078771087998386040693577779501431415762597774786172954111628373553724296244159737006817405873501367424654743941920013913882760096115458849156639339711951997067404079843870161954777681773423348603199757675006824992664370202185051921369379978392708744940774011737987744403942744378651106108569846497894851499381421801138748970735555227508346974945721136984402955768985836656375862354446628283552230453933593682322899816097844591010049370730856986611801508978033275124958359335383597227648453816021637269929477161432762802294414956213935156744424114324054866572598723584943425402481608623852221191905352891645302474434474202924203200280867633366305341084821001650937684998605806633320816959265013097918369640697968267633239245336202615049296824616537388698473677946598399657457043958029716742067673296652370831794028083438137100977588616770994739999563981831187967724641174595450577174758772806874288676735602086657947166647364528109961347962574658712264362507611575492040147386472175385245026837183649792403889814307060634035116606996448179072999865207563899320403282635465832569635253635701793395224504311536421926781333677064468935850892404367524393447275706505344930851069699977586538271478856992795393241859830924873282797127766469769354728333827043423735775423090374628751323310762333507046229562605605939344141455208768914639044537953106703516210781765602973553316014028578658168123081024504348355550655453281043551078740030985026787742239577324240155107230561970310206374390894097455706671935455353202778751251103329274632784876554490086735466605197478065701564370373741134066468368080756251165044221196938353740199660540137026884647510816803584431849477803742276609104868401491167311813927355621294348920293931425200342785166777685789605847953130189453990880108321306068472430343862620025019554088752954226431820612631566204384634547375992942107332104063134289101125011663851292266076624799685344241761126730209128100421360687790813536119118376022531418533118185388470816710980235425002829488205785976912522365553296209566521504454651576708869006485526056611147799986616231105345375833105819052206640258538747008606510891364002338061672313106683334078930756703611155734718776808099139660332033297563362952456655500848423825909731460110485902012656851096922383361287890176229430393979058265193109118304546829095863932931874074194562183435800407394390813242929140254784188251173817828214819123249850910700378115590823738782102785961123122148916225565860125547703197894099628841820966163432914707512219248596996647677983120964395778169871941019799235281281685917230776612499988104135326340389076309985817820032314151486615296404841553155644601963080158762969173869674272245742188384928108724346948802728846781844007748420943749272084809688524676337028207626198767060708544445131756212724008409348046821688208917334117118991791340774435302661805713507090765856779363869602234472240221958324382850162992400891506303324696572989284472747000356639957828469556427126824257872452181496242345876490060093979721563660360271590335840472435483394476403326256831319950823443340360216428724392034055656288092378263780768287689748072612968479683186215936493364741947529707472578087206067281700911397713822493856890153147219998552305724251265814756623724771489420086938229367528888957380897592003146698149723128846717928360487805759296014155170038364759409051369567663672997099536246432139157059470676415381344153928604230291333417493937626009491772235754353213316935996263461250932175949759035166882770426932794825198492302899754340238935107380876859797481545461541537525778922140862536794179586254042967966903642087125541341722131869920026493281787210031260138051836259961577368031284296594320817781084919817938107371576075421382283206477145484055690222166308219206010489382182871343366237069080313455619141603028592933040714282129161649829227783313259996739702139270733905129903396653806828812963773278676389473566432714080792063998725463280783401558131082114369209192970060861705677270740953563177735325290035805023011718673451092714882962730647330633072388972494960436326567285933884544353047999485158667549243195582784711071866797720574779114440761478173706937720043690368012897656127452578529375085993061606529327527426531174110264221564435013280356945869544651814220711017996785329191716063098873700083578157029724475992923857308815512370867942767508644544548063242491169724220113100748289559719472441370675200504649165552917959569385266605436170171298437489678484341539553142509444268918037042624902577452430778177931403850665874262673865452262853899605624351980953625825894491867688359512894114991596393557762941192599513498784676560451724767371565730326385822085310752203901120080244626784614922486782463950374808468829869699793159193016881208070956629270488669830267796335656109893993311416699328884589586475757857288285469806629581377449616722816187738860113081338765250230782530590363336726318097356476651033729515421149284802774207988850952550544186739965858994243553945933184923796228194089118610946310514847923676896643506014438455402881800160451241323904775497399062254818121081841577939862430304648937683072128222100528593436894139615279578741855471623668404788224376018288741074110952019921645053130542149530325992118877320231784760686564321887837043967654896252094067541009472967193878473466978903770670222324114272235495820964094903312367894906303372626935811636141825656434934960032264067324190287516476471127489566797037951900785357876995274124229136335908700553887392659369304908167585023285463038139999298211558526514940337194854376611665998672997610992429679329680752979809429652510506583034483826404928201609196314999827155424614007413380389414359809580272400179741969604239113474201913286800773063493570088807623366489849234665200477590416302530631507165536838698395224540222306768232834295857882597449244999138768879950438021896493039487741367959314975911147263162678949992756682835911790916644461916253575131650911477186056819904880387696908632634481565408087374356739663372583103550142869998789797189026191199029594467763169195524520841465620159517435598372149216033943724821468065300776434462547086492506300468016322869737458508937525453457567268105393605196087564727807857804779380192426102355077347491879867801762031507296821487536442654323455045397008414740196948178846854691969209815658410512451072509860616213069602363779061515226012171801404242756315018823654580011768756978195951397832620227124973148396410205370951933900219965453938479431066102398785285802112873325338004154017968962919236991956664444503471133487999351313633795989117291838693207992342747709287942171977609518821985007108233653610101606319914357344303197228471914697514729549234661348996771891299333954427149715934886155075416148062078956426772894149317452987098552882910233890871343306171582051834220873578462038729730318437312544227855093050860169457231022272445697908597954759248850121820475263872025387899258161720793265225855244600397864849716072580149477064785142960722175161657741312920933212583809864901075409256861464908546213577707801776399250015318109554785283223167911049464321003317654037576014506795337502712746873966953429817461708147489347980204919942120686659562356902864223790480594561758262001234984853999963058792774719493106508837745962452661548829033502126116120007646454810969916424570880656747461354542316778661272751130017414474975296507880551368481638474792849731075233515808248926833290206854405847321377232525143990321651998102302638431497140256909340674873376843484979310545285451909532874312188654357701072561201534551668248218851777705013092139576074973979065854070397676553710535149418289150865246385793897449429634355408119676705333338406483459997622849749449246254456676101348186660316615280979396831964931461210209406090656913946579838243838607610086722541100568487970625103042134833637876546626251434801840961749764309249880354308451465803347082813182962362623293345796205860812220210136493307895450221101714702156519898424441209649795869719719211910003284187194369492921155872456025696039468888354936251426110508037375010037161439978911201947177011713721584654709770678473887561352462503371820613994504187050097119382649633312534917728109768846482061824207342082969361978985728962330331258651543076191192696390048429990783380049141068549318091136819797173144401425255989919202063764768461896902387490168726818405085907564061715558464418741987562919820006034882950891912064428572104708139752332771939017682436921636100954172530048688172093999340208769419199870060302529183454986532438378508060071520516398884788577652260576227866110806309771382964988965062470240202868455245593678791707860735365294042427327999589692787564981173769299210685806193681649111441249276107144374535782577768291036459423325314085766356018163000056085093344311729059235223476367109355982711439258131370321348497705599540766512339476026191060003651360352986678335865213025005057754122683494919018277155429534243690529950789005102473581102111878779454904327510678657531529549794765819707352928093149918948868671502992778935247795428099974178010589983096140641246387724053780718090314008977470660393437461499215759386617947427878333546584858171468027861580099419698141952516390135768012403058978401651473758379320962534136082196481327257972849320654348194996175261858493029306255157319992568879754644716600062919016041685774372726009110812674440268184430013779647376503715604202599645242806243534010431330013014557699264729941867833032185201492368986467195040661198340539912177547842780375150783925727845493231550719196677241121508316479667387371032488337836803358293850538478099129358068926081708255690345558729813836061651248800741601365749950018588188718090729898356425632936706270774009386403828256093108677539558228755715014365845614740587983396471965436372077438043085480055427146261684731120086274258077639548859318112251728033319057749409609264744806806431206238344328640134697875314379693590760680904102743539126321826898750625476851065879237315983216733861684234669465428154498614381811036801190737020466724580432303099926096039254110152155578158314644715669420388019563149264038161221500043854381302675953103097541449428856457971611279067629725834028498414717910881358979846634443015441463874362518762378667096330757476995033657888465880428677751418973629868152451641833531514282461241067795720340101390748676425774236328334007060293365848808258881178925008885501131172645622116836263887507202011216479754695122624594819048307068218622904791111411914034331959462984736809576904504139768320064219804130751456726267800347779424815664589071056589141037389559951859621286904740835961078452529474833421601343196184817784224572882514391440606158469610667857608153063079606472768407906087141452001655410035546275925571902400636071013980216696323079438133838045996713020007143784607265166184516921511686178662874095450287967112250282642094567445435749396290347373380948182129583189121534729623776251699657368599229142824144502184449284230390721861510963989078429547030588384111655901814020369868730131824809204009517307803990692777530069286571509866164445934308230455916488307721602733128468327305057446600897464506042645827508646200956109248026189333418778323536408600121692407205727358734522982362042181010432860017500815186014103495129068659962792476688622989192862461929211157481270331396644941753745079629833008176532671986107859099565995358565967619244941325672616748632558862547529632186376290715062058508448575204287374836586513139620342818695458713246362373537894724932360527278002016511099502579861017685000666229716189475986613449655761656080478718529690573103501714014220713824880615195026528064629759023748407738308017450988267739512902844610321745790564141816814098092757302986501928612439577850665149171686411531126683289436235528986914692796160823552774504371234615473162347463234907649535386828987010840561973309163978321619984922173544130673411529727105767583603378203776178328562464384853255159704654484789846734383617606655637099682972921898525385735947260386515301160103717058210952046276676890818353142562782852931332121721079306787374635620814228616705559668585612860941197701954139168781725488959047623913502732822411286080900807939447496804278823182191061222027147993170157793263829060093274695144639903571844575758078182740226971820262325539109436947525250626280533576164584573017949344550373538324624286361822517116998538440016281154375444661497674199536082731539769969369445584526603637449999434529488485060494360121078995221637168970846292582927256448026089557783460975517553957263508743903484241971666192367741466797288583220810753570056134038119602561084968022594927117312487241701551663805408630875036234755452805045168478825500587578138344670707483796183565714541700250812945053742532751112551667311521483838179423035933787809136714970405382086925106923674560263068903387837325744944404285896845440183660679034220518055333055797035164750085401748391631993436607360270609188775094612082854798415295536128302370700777008498711664341752140311673186548021263678322094897886684888045315005512645476671483391836540621191126333082913750925558947808665220510689682743973900492438925562232592703922793742066939387507424518565925879408812880121589967106066987969228504080068422346903123621791570025482841295336214797783776891192079956207907809844653006110313352289769486778857775403715625873406011250284390833073368804658307311576684130918104490108194050681014677166885646172074936506286535939342698447759036774162364024622673078124365209350074490093963071176782603728335910244994898270197914349502888302947570355554868838358099470198319750442430718387212002293865112213023004391602718468489527833657478532828130313036253379711121754849195526425245118621784146174750361316966119284277688322015047256250390177784407446630156948090438542154711610975554123213452121045756461683117416290962460467147218381479850922787852619898298017193085768370755595819701125333413394761619005502930143618920303870844839242851563099181765047927365673158909542851432246697476464712184188716033941200795989421963108616206581249646872815476300400140463231056784442503953832884325324466758826769774462492217388841873156685158737996490041689608770740816850038881246628256570223758242644100715027158065846630301326374426643355761482962776536098503655044842405199037451894748527860883542738876195221864074522152848808030348074726110688223259518810178047695188951780100635045803895886435811061836760448755903342147001538262459258792771965331448344277999132420386087906365044173184794817141387327448214946646897419556531112023522728645884039793734444268151955117671289217499469048197581241844333030394542757133716193938528461777826648184135788492695820033087070838556502218646166850799640747360944631834584066243883148404399480821475330675058623137594935723376783376984382807232915720592715521542820151616395408216530515895599011925770731007286275235659395063500454270661458204586112791378398551258508209400213551883859731718776152040110902084077875956662234996217445625560975376905798574118428499142151694739491069078370227785042577367513960219426775029434375062265587613103910877831472645184389955260979634813182134880406323122586525649075730006918398815490556864806078705288286480247491412063268442240482131336634785171366631375418870701252929188035496253208131368106781299547843814648903620195955778611369459873892462930859423580948857358446639165539882128894053981185691967301622535855659803210933845731991369760649231215006754149633845246278723851978790608329819105324363744201174867868728000579876737422563243133214452637442480612698320008060621007454048533469961440707524884529956719971000548478906060506198061014505833620003595364650816186541399573178066052040712031802707169522034384532263632228486948794241037806982026649132388620192532986997722912352323612056554590009968829159096453003456452911005456411653776451602056953837960956945713287651696248247575470424085358968224621644546837503074441738966775045414859904209342828966132381068297904613143426830033651382650526853021901579541437661832016210806378764189998411908358462410976012658102854193879668031836586267663107472959231964386616903783946266717412370972617257374941518496213410011036841847256430644471288320895139788783291033680598913130634277956501937218955049423201354290844282602341840802398728315969163293786186380161934758615805155152883585951127092078850508408668242438326101070707812718424460938097717470627082045933376916991547128058441674854522986484602494968320743648951456951463768195525955169325654004749738904323344806182456700506412701351484749472769507459045085193781423593864170410988536562196966112123733528319478954983351343153972479892782080525661613763201919035124457415337341990656287518247574681795694271028487936229528631658153522793659823077098493695623571691614822384458469033608039560312007366427083678704191783177173918176441478479345157639231249365920714760990366123736608543254995685824910604497345145543195839852771716254403630273588546871063171122003871554964820396589090486104016510948075094806783749403412965918740200165813060370147025552230460313222009971839335298872274008461679824729017251903770564093271401920723006080218537958201846291956303367006329045299696874566665850571307992306064900556589036984125590617141937718381184792259821518792846212494196751379846208857417124861232139609521625346734318370603856919833631762077972449861154575471173103665341356668224395209158882507420620501537167981902058956998854498319215224795041011690075002331439579869546769321524264000965894306283946547485797546641694881321906187788454905936878349771246725872392401213518662715981975578469726041558144202887130284852269067321689827914227394373796250482349523218621510272313814425419097169083835706285911586322178330232578589783541516211907986402518944867225586817777326817057596376360497802246051044620861629411562686403264214345101471118384749274956726549176947265100041894892338830197706185508487589695005095021967224557950684803917357940443925689154667401229227228461285830314205245428994064126447630529809092129637147093464489981783102652865017205447271631361310295559805830629423995705891035714257172242441744096357338585904798327319093337169341350275522406948628790816597097180073708763502900244547405054741357535288284191144154441631695731176638825933568352466042578951489085928008210175473992877332487873751050145299295484996022469755949317326092536275776348480505336064580575622587240863134914973413069464938750460240483839197196803305287036221412510594091507664987172253265471290202464358925487972373410459806256589187046139104353137344831445310808682607252956935588129719584775036057630518445434139477694443035804746880923703122714281942257291107176416462540923113317858728038129353266222071732810426304905662469435860323164642373350896435031898490941383115685637617201089096066388936342130375567916011795007060011501235249807091256814269622284615115190589681164696687408336984875590200350154643564090593588381777465700144658099428249615305074912744152417851517869070577245494027817952888855356111730171420197900365660202958135235739266131563713147224806861198996699245665743995991301257693243744716334858865693140245335200683679699666195918681874048052386911249531516201660076259855187701971813777226546095324029492246418537367437667315651479157177369043621733781547453735089067857256532123830030353161738431941965137042906470402318200067349756927641788878509987083848927069067835366204232117447922604103401125418339315959692477695409476592493991776206529004027613615910929887512031577586388561211896766896345089251841635340536955726877763924624128127923699616539899763033434326684768712660295096737905241643871679952442464869140752627484867655240181187472023108678957928578915955130357326995413528616023006736491699111543393289786537589043243989249552315504424693203072930717304764380337942430872788085602653154967253309682783942819168822262588839678877697270854157533651372053825685140514251624255139859058705518120627282382612118138558956197418097180900814729743963709629968388184258917358699829254277312613056310414932837813234525553478899187343015072056683469852843601554978704736157096879832232142033034569401689972950907992241432451699278447450262690839290171119019013968113281515454363428799471586607689571341261748849163100278707580406794992043834167851088530098743890180511332839596413779844731158630069083458892919966697108717133760845175237495614661393933242435780466416294812965537358729618744865651700268397451656377608920019733880333118756687687169286413792819977828635791231525513207209595531382530271527728765134908312228264217133444758219987053867276915068222971437610372178798733305391617431643002110808806688899316587705407156782734685364055350195055420114258912969797497423709893825030734188245715185182150656120779668209567134795365449859500970435184119049684667409221420891826880856900402636338354699223736347523842887135012668931810204527071502265311376993347910596390050287001096474064997055217302988518867999983512878315012614195714860599337580650777101876449232276854242974821273665139036694076565062810858011543936984292149219834418506887945556260969969720122510956005222520245276539587639303349627555475330837447236715872546648378355102941743126756204894675241393582994656224073093807843787980284596894538731536299507478113637468897573399885939549090467069813444668982479674535640499712370746914534274405402146929543084544502465385263650754836100384549683145684799698377539397702862822497158917877936872143239189002978395089190794859590404970590737247258330548949286738668696273627669375377507970952783395855018917351538308195558869583665388271063462511243512711674524208307790096375946861545615582611552878208184187651037639726262439376605788949893645219672744437600187692162400872034506426336728173059851413116125560072194105341421549414354399350960082892929930332962427764303895246379389645007241145685583238861426390434235014312004163130133754592602627329753645493377164929554960537567884544957095264329163357560217054572350295581984090777541442364145092056317900386624088628702172098832570191526585752557599397858409891904197820483047453689252233871338464109958381424338398151442836973606138448493285034166584257873543032788844783745569426980118514537445532588698176052793520231007556766699671701981188630964009783818572631706031358449465700007537046300233031330897921325707582778824859498176076828935249049299151302732819619179795548868539526653165238214369958944127083109529301804170619902998403910425571443915004016330082503763473189979548839736820462010862621638642097987555291287416632877248754772341915474392986986955246208517236051099384681663285644060479270513808566549255572420433288533046585607852632944559235026510237211252958788810161107041788502322564515409654529534724952492249047710327762237272229178006817991603176785811651502679841545233868333360630686432946939864010448442078194149923549522445989440297247583256779799147603783612274823791892542380142816220624346107691906011015459547908743178426099256211352655299598302748699601325219284971267563630435647122980500657147435785679631550305593650866721506292355823313199728151998820104580039263662244248084397452101832903454090658995972519052535977562786727961184709819311698023493837115136552904275382429134953400968172752487826220349347541712336900673674393855114455785302971535175447712597291317325395917837448415347101413556411085525455449040777596750006929837112573397790610369289364524721698886869345161542968813061772296954857268527235438986426779499466103190816297527907046479268024155600322374601942373498496366002024944653004675602025856004266839214287574677697944096798197297155102064583576195701207284959720214700146302214739329829286596171703289289120587013718877499514611499887866657325899268073781617142657082642349253004692263871190593728820984418823039938126158866362069351888405338808285634823154095639560083290254385725369205901581073025980899234560805443892977515528027607137818659497186935913681162817341054152212784264341600387351651499735788118465188443182677089199147734911014473530737736555234138349354922156029628420865462201462169867013734819980589197594723446010640024579674280352744974039490929187688488882675235909708665453135021720636538888565470170869950565778982544983461529472276551474083675758154881611249003778729597737845094356655985039224515439246366746054198741715165602711045793604815144980977406564993165457798250715900749455111905712611260209236667626372690365682899616796041585771404736228165326926158032021970489313589429798255019482657030289891072655092636366814853182575765443442068616671625301950220916564195759830805681022560231659913351161278793634997479660592311624993393288311554779525247556441731338478009895960899322116163047518364462887853085889622283870691888842221294879720242242469949409045373545222225836449773607004654559952348430214748616757659335172060489184225538651597780962481912340901305635401708425123572080085498993785732675268358948478415167884799094213642997701955998277829012291337885139662795929281091882490973602744637392223830971832223086642950075316875489641288388148731214318915398180063628295521272605792023055151521119866887394477614088663896438326655675377541104787211110196909228850806820162654144719409967536287312843523057227973667356792427051628256899250581093310016786711056133266706828011090369578784745858060085584518920986909028931069283635202628827144118722793042845605740933561224972181993579505136183145793051868960416340799458684716396206759558632421256990099270226285871052795962425248636512015216402657687559912084284238154875514636655231670753177219234536277057378408677435823277993985124187652936994372677702670899022902561520053289742529489884423035138557322461253081227866443490362770065757920736239075771115539590507458433326985642181302818900926923779753503515949241929493466439699738104970547779814880252141225566293317160945977767742020223887102182581576563634226421946326162667784471011432622021152069195578949316671604131784568706701149733695155118087308231143417836653458144990512863287682021610457086011044249070824161367265456046175863497034949400121199379314935053956144814072266492195178448472732392196203346191920820128702291907022336639377515688277053152821754146255550393761919839894994069186218808724429640309787202509555117696824849178791590974016387626838519296590140303032092526318726872034550738599276131751726199352763083803030137155949071597363577172273298110739818615848070735777896981453911136778040785182579736675422342193825274417138947824449114143113373199492841324177623044760140595977018261581169648815948373660653663681401328297452012675990349166719648668149344672356536816964195401880779976486211494548076142004672735451738905020303073338197623543494274568872278083953906056271326249355301900508363238850139371405055237867652663271294655477886498980674826552229604380662677175561828006658978834976100508435130266117916517248145749340171508892120343192515166830569304792066384931451066453011673845845849363889184997875213421068539809298505527610549868145132257783858490012961302804207843710584982726025037453983672771591232692952718379094699846026137928291328496768270578407535193828713132187749627659313255303071816417229145052021264870627369585370178719514744504321827676384872793298629405688174139201783359326242271109607738963406354615253542237824203218216022082449678043355696830440159903485115109312814078618985297708976018394917926265699469889240820667157592162968820129962219574802384500010633348195271973906699642289023749957334655511296279674362180210266490112033380787819161336741937881526470957467439404924082780306498204465098835914024983016712557576635412936265275713105388635440952369682219419040618843083643569371305450385094491814861866944904703436746133523374320916110975225207435408609946614894123472370141797733034631871267448798344703892356491446139830300814452379832320519582860809636795232819672043278148864964124938153050326415034753568562758381909397037158488652010997487840818348391956110271412949685275778043040558822780841083962794524127643636808427095976916422365644428307640113730500726849980527967538276623046021292739390104844806735621098043986655677146944000507347833521832343467216793099151190809948794409732365502196476391186694324829191618848440598604026823569370412655026562155308581529482726998748957062367424418148271992348300195974496164036521873588671600186279516118386685399386052212111036954933054918648699363230722964870515813344104177404950264677679506181640989985762417549977529268186773146897399544072185149616445158181015829764941548165347825563417474149291993850826202682934856196443583234673205405469596277170745592634727520446819831989610427282490048617266263654983865673258425100242570587947832702012780669094345166907348610958967308678078410451182444393041665727347922170541087491085656940249170554627686162610729439674419286658699359900627156886577251001858986082817606762590122035814951265466709346231624206045974974982979054887751392110867657535194196778797039802523698491039295805081304225435627968556046366418863533363868432268541854216280877155130128725499660507629076218556650314731269356182723095498616001098068285753269514538436364408781998576571795907046821177206940429482484592120563414338735299865277656398785257094752981311822336903357925779353480434285349473064102788939987060702571066468002796605035477211297270089384042486077818516339424712414413972378807080877650459315494070614052981325675055742890430209764589512862644374299210836672311542240596140126104347735530120334853262761037263786721529021136192347531188034724977494835879113976217828306683759603314348604206547835041985214647461502147938067690985901542689976079882515639373437050559335730888358840900581890031820695946855397011034086510975258828073694226198668076001934639730548924693982855204907106031366331784619137209581018051625875120800194156797045871923626439326093698457259350637516668568483953649399434705376706400666149075820828789999596611677816452614394001530993284066966673296066396932602620071653129258743669564862087416697192593373216943140936087429326356718113490400860412767980302495546428456022259654708198134872298256914649237012941781690062062331789524559962368819268437471988924013295627296290608167419941844231029701204513835159617239693080847873877498711737632176061575334506998348478648302059230866911303566675925770746965406902252853069555601181283504873998005089059861899221102662021745172608269533828234164514406311946538588642182709933811191435597120442451655836868808507654426897521002725786632585417507155699170946849201276996556346734806232438851480659959191567415318908658877024537167827467847645493482584910100850052654152675940511853526346637110078639470664166362028264694855566635382515469978535736080183589496067984038170332759189428723783583834158348071436812067073584332399378348442689459533927264614495796826687879030170489591940818255512308955650475029882801543159967530453794966712072339180838709808775160483254202548588673389230326882436043402732129992373564966859043339917450023918004439236175342700024102588105953749521493378780283854765316367177864084149620793593405330900197458265450543870463182908707507616755532252750644738314901779176889817624134046945965730661405234949005060942799231955867948205281702738236610646100720681885054834213494036262286058387638163121503287081959632605634794905280170217545041785920505231211111971878605722681736246618415410741174766345283003550300407386076539229078215048993313801626323920511498118908663974625666848578921139361590712536468473914761861113748350874397253455348206745972174136821612385230578730294995775620755915019493410748542929811654965449480238041659796745862046732352261146718501953041765874878240937415686143799780847917156300599775505556867197947202640025267021376040051720053330707180711607464646069194950791810414188557158905675438590183525750847530153747899316640221998785255771713458367991605375090577729693525861684012488857743227956245989743620097587752419022166837824319104867295388444772244164016888356471766729328590979374640551985616265197852248017754551401979561303147311012057347999519748889356821435213824294707984977514296221391824160203221452425910174624196513369126734116015120800297468034822407791396066623621588686220732426010162877371648281680864363113957694944418881528966791335892039888388016697519188628483481194513090757919047146031360822370210292594403316064769152790296236417278463724662974080262502870696159275443117114773462532618543484276030712375966307679835749987474673918503104970422760087550594415642911842070155359427219355849546161239640659198610394833821679690219784569569571637031093220151269820481170758173496661421201365336691473564575777184796261072420460529202865374967752496890504353077691653112069757763568464385568070795679809891747763110929334387628017818614335199966664779246730852805516370859875450816902184513001301143206026138894207510745541287537466086841265515202258649433770113385747678018511187784354197751374067777207117432562935807745488156678610234106625956313202154444234946580673562523915160208708172499533923340795317258816236412035351229515228806128687910182569927982235681212876243353023309320886354483353597967411819511289338778182178043535279995911315512954400332526951717694923094275510520850893959966628039937306230919155359539399308003434801057775335490249457052944355990771137157721579577870548946877119306279972138631784913149076151268619824143357266137074533395068142634037950940957229719673499421497763254040186754107621447392592032137082894770677631097585053965992829599052130165880902761379615901685127396602923175467843939747682539103089728225783626521157148800164648966306189111112648894247431886392743640860179124499353040207839753464079287350832108771694204682316082500226860125491555466492480926445584109997840323852172163623990020102177499263791978305857592802571175683026299674899389465179633160916628942569293270523722615369585309577425890268598745518588724644494026802431170860563209369444158732513279907425208290260601091495252474467222443598669654311115478271434636583796892536469780292840823359806260902390450887413898455217357549146881662001792763823882321565651458803377300176800796932781726259713071442891084040609676304480667998617085135437177289053709452234529123752666162856040555922692257028069003305767973261686299547383735770922613115923282315726687748721132595487171433084597112583330870927497834625680241229079139421614946693579308952671710844646160245749727965981101952817738081491246205246618113878378524162765860517569217265594636680898088426458695402372954224657794556086314334167059411463242097967330854495847281797999135121760458218790714929210352142307575450073347027501483288549326774507182426719184777837376148979868770840770708254405716522158937331665709497808210419957325530625926244659862140240318833549430846234553981176874141674430391797663847117351465033412937281408625882879883408715896194583576641681460299974141990750731919458412069508668783998686877256625940314915049841227597734883131726135632769657754475331343937099145015951759800036238706626792718230042283728140416456455616032531223856802864406711213359259110992488244058660181346819705345363384167770015516970275054052895565241694958646049452354947372408997454630173628498179287580374052158847101725730943516629438910030555098220367568375890394235162407676840091170176197797118296436353329366143028798326034545645283793300917754936359917402988599580380584602067418800026753007924367724324671786393660376526564475738079458899485746128679436300670522336571214712259054858033397931529018286693150329068739480584670959215503871706021598293522985637552847057677909855328499769306152012827131464838789197406914854564049122559824095746357987883480505869213963282150042763559481633606625507822535378139570419548052889431289468008485323150956469841126429593128717216389027528634798145472305624500367648255068602705833975969172966494669985059804059349549841306986743400142069821586152913618856992202621580208148946559682698620824891375157094844557403597964264337129367793338547394257197002521128181155407397365213959221432914951333794886630627425978871161649274783016944386413460363444814941293135964982366550391276665052047941679333365312925583440539171798741387952408127305672445468305249612869589479675455177673716748016136803193151839112404234657818642693198505616151860057698371898424420547918969320635715388991243155216407744987471242926946091639029674660457806535262088087388151150674116062060020318932772376582270265951061022852726335930134572281750105525010984304619743205203452485035154698791394106277248333776334279377886959382264663051856563668274540523855052925409596603951911881677656335534513924761475632617301100056027096172535860642494710192875673805769949688396796556875249887638570542915790706955076285140921391946492220414934592862365225319173564800022279174469451853614502941353309136705575511608852657277304670741479512901148630663846243960715782768843123287593805270670399043622378287406136508009849010995932947993471990762383781071573183477209520867358626163235873783843127274442940477903355628500971154588568748700386535164732172452567790862238278130164124397403420815922604011085793945450763199182245846244143379250868967556375747844337774131723729546302437675334109698223489447999781521406762180919525312108710011248482774789496338622534639712045335109670219097881466915631979217367160055764440717531565977661890745333359288188097857634626496151532114147914721541969789405497312280651859980457685026828136506358056249476814970576459607460938677995427202703756530291219227844039884459670711767546145636782666484827528829792790667355634681014786527869795856785203882964023702609738763155924631199403468451765466695983303304528044679040349138850274402628480903303274742589147505483066956796237241674489407927849004476403384958470573303335261254105067798419973586597293187357437826069825659498259943275182013684271979595953771152723748739305540499198217334368765522457862257898109786588592400107351130704856357368171420609129605058675761870370945399647995854734703107685546548006269584507064014516128700608914034426737552520049310022657898249907804750721730597678231759059784838467160593022066181836227584358501379845809128440721968753861521386607495549257309957700895263145760692654958956297950212850850596195116815872252217788025231200878571830536806560824628105987956673037866477443192893955454889139728357115632303215261245635623780628786116666694723935430926468227919772317005040789582196490397853395251767303197103361059213959309990317351245947404481497110695799183576322917813972671451308230140425529492198330939129755116158837833732699056636483358569339375340447580239192649317927499914684463185241935718868392537565460260350637713977817738147491032556867050340722506996948886468082941295772784075692236475597099123952840896764205485858443323089999839330932601430803626172562687312829880625324513415807461895204574057628157696771987492918535723652791835220914536269935617585319450184396416596654253623797791916785640401751988428138206316183836167098443623897418691729204198401698000824810447400667152627546824942579773364991469863062858985014840280414180578938787917482290149513755899618553318505628088977730020710979793939364375295424983650060748266365295911097808406460081710511403373901447058758086556231906731449434269258096815600792096303053917447043537844742763225642111981229165860166908194879869657224676162078813652500910584340499709323566345958479664114604018280041481205209671025873594839828367541451443890698937804735646575121502474974383216986860115554108689404957324209121789519462592258179508358345639761502123008210432352897443996478104221000389236673530617926080687522058371760950157549595616728820886855254710593409406759324635528065408861432058617995642929078959121871551250603132337376525232629173445096458898154782148674613458482603760719564252961764041369413534060945435974618756691499898108190662084994785494412151723432402274646040002266083411962121025767665236599240051662190171730880696710980493675257139602889658396424117354938781675580632322108828733993670115589033506850470306443126893852428410141965503187848282707678258050979627272306272151353843227761946172240750107863397989624999548731475371181379302331270462516557453886982859298265297729973482518793888305102216964607428437019732469315916688644377392591313081499813821348457559926125295922436018124613700363285733540181106197798654319324439378561388499514398345289295032230776424880897381479160530873130193709690429104163825980605857410257746535839283745397931025048156507903291905551993032461287983750681450034603871415588258010474496084887238094536376811777911571350031704216104067985033484757229730981116856025149455972338888769105980016498058076656924150948710313707989611736412285643137838282030865272971588333903294529994025597964255454458073598268195437759492376856837886450753497446941363942787455667755999640654330754859358867127134760109727162980498195340670413172450610376651676461970565184240198032034329679847377251266959242265737980003207815760467998914115993532144254600450786585843816140805633118239518540955754234280734554063788538660188684362487835322761921802568979704798597217125614237611016641424408940048650937487249783164611625731949681130179396883736168521599892211851439157295487478725894041456196515091719313416936604673809490390202427186289184926060825733890839356295563815102049520429631168146975205103117303564137673210794041526149723272012067466407812346894988664734282145635044281230974820085032629095407472196746111259647051482954686200062430588572015006228679293251342143765028438193564558058497734526289749573575187884428586515094119948764556703220861057914676434290629495960046456658167781428317540211888095515483540172549346781731915938221344560486219366339837530279357620379235914057975777665765796622736091232008907413406772724104039952641931022096723213037899419935123759142929282368763771236330531726469898035553667683559189918564402880238730858516753650030349549867178548809890411792863725329053211353765165328996487338929039028945216025667728422763390978477575574941235921281306587224192048537694804539364480711800002686065260846218136363060638311005644029544414132730117905116618693716837629464253724017283755406258765257891719054622594831154620017589200428862173262066943481952853136018929346998974356639395871651633519643603571695270992763994736085446057498420940921080633194097622978875309312686103157776119068507204864928643402120573487759692234109429089894444351760616124160330820576808081311834483718399442186233506816026172282672259377171784680396436698475145762647962203830646636261464287726803481897867638522592647921351303344615680821232495265374632578955133209813083861823695416573514823674842106642783986099654691308349346197155110416597752768987306393515957400740018863946596549431666132384177664782673752091273839998683036772755796061507682432752734902985172171987812304986478361564546166076598113628538939877674446618782750251174107727368786544551495976678267056782036718314790739102447969341145806181500005898990080879957248447692011223457138334402901049096566036706119394793981139465640837151670365962310844759881948096144930392711811492808646212689731615943248730744312096357196207159877654319500112166544364899618261587223871097562878480767522104977858194253515778202413954383254336894340706306316246320227785275487967090743172508279350999235985820921866516426406759626845891353231141987907838951886252464504925408235442433791768454543706793241718985586692501783681332685691912607184757932368460109317230928254452734599764564996850958274960742667101179171204658300542151583751249757231963569487103549311518107758333977116507050700220896944271858539243317781543517237918033405460659477214288346716032056157066682238679906506325594507653538783766578837034596460736036126083729707892915297982508294979171619601675109077964114101643957420076466811320205117508007548744456963524617374104366739503704506214013351411705401355354181785825766250203163143770504582182563775225689540439295197082872386297345948388107920617686278400578331370682591955020760763155388835104091359164648547011218270933062048662764119352467784955320732968959180118914639294200689803568976390931543208004804287964774278384991142516935170869560469367938744760085374114420590511253578629409713583398295005011640961298292988485331944061818871504431205650803677364458848713972988298839867284180874647061115778431364603997163601542028053078978464206040646454937219804141728081423070068698073268902540660747207321037467592386123275191749762058820974013238761026400711826296098099593404433600918691900818625610352429657662537721339391345775686545420925762787820843268675441845048207121565481773435445372597974297327222974216152180174460630230249919117668557674470707567562643816772621954091470678604297607578674933363457657601670785822092266818590642362004861307785768945158236415731394503635194564047239155951090901396835031034077438482538244316038744342844636011156061468875318239142464850562122125452733106976240733742938764949306521059604800997636731500497225553908895793569988536577998479423931667818732508793221560077432603878019524556479386000443609592812654649820660850470094444381237759328903326041568973094027930942407129929974328872578589931464296844889485493252884102761219083511574520800689711377913712124832450259872999547233885314669219782261657030229846391331050300690083432159521330810650142304092669365957004108108494229256272751341799761887929433780014214741233310239117421186621283115124238407115140915366317333621322047080970133163602196185979431483942829480401302320204647891685076920829269785468158290881451525946203357120742347402586874508801636954886709535103264343904295608387127881006278118512838003630680440251092369784219706408401055884454839023889295120075945789663696836224785636766959817096775530454399701842002943049346124963764939177145053379232362403924868928744455649763240691594909548819152955009255631976516157647879422085676335408329359966922923710880063644192787453231029470849185718708574458709888156672129228296976728029729793051490934556564068528505265989976154903711280841567971531023549330446631834358879695384155888750096724081713950660412417716882009558558993728957055511391411276689182872680942220454573026580562132157779805225222970645176786513705106734190741920655731428292562763270734424639254564318142601534112393000389579532187963742903595027876681530896061524579038990321663944746478150444696630749355107771010927445885295320073344033966736804922515916901714330996682498811887145249608664099442409934129456420276331529000512942422659172101546550020200792643885321411853676094249913733071556924969216810077722179485926126947899969324976194982630032292790498990380551045855315520953921099245411181026388777053228876112198846654204278061484787848877653794233199816157343632751119609267310765901930874784467463769562255535890181952196628965305328825757066159364677590703424347046323110579117993063932506159695787036557231695157972528898482636410244050904920305924361460826422068888700501170046844146520099596191431245321082348291255750500545296959697385857767796425449670644381051374949382752638859054650621392872868131753391486459639036894414317156719557356986742067250330330224017383967854870099745917202771828079817238377797562598471598689106771152304283570368150472889831285291741927279697274666847414969271787507502690957119458982776233448735508955914536724606054600916387588441566824195356043974902860699845220589013461398476881402554124377394523827027580804836429339934147170067566581440503088470662517383639331858817840925897415956353861368778211922183030226128376278108964828446365200411098706252157435089313843955618190354292960868177073524569277923203585671265406044839899772160805915832600536500777870013878108183806371776907581597223442248467469045120561509753403863586407732558347794012662069829895746055518658781205242276942129165199231620584247185569043744440221463399174996056416298478113837882330081152630409369968776924345431476223263898819321019138794768037842852854056513590298659256366275224043249697248998064609951372739887522577029712676783586360778148978201431125706117446895532369511511729721939436302290846276127943222800146245300101362384689873497261679552504475060528567980734440995635380588145194175187289124052571758329622279160712238796121056215747103963653499219135507349872232012538693081080598488388638403951463136620959422738863776998266731569823712826502890911258271088484477844164638006777673612459401966560075976698506868075865183484823750976185570284090548198314623464885416370294681081764065981597884535474642642652338988616590998605351971332216623300031600172686334533185766034631309986537333133969166671333655064239555894375240335405786413338430521661403843647313868028455053624298220232990015833034640202767987399482255707383650029995625701860745498221490102543662741945664825984504654344285061354259063920346867039287885461885452474215983236093611732444864647296742426252138661681548360395378791762347619157750052062698638234004936246796252599879976698997839771781207563444850114364196242906205708193015724872665357568666430951869619047054944302715109736244191573464563250841341446780191839013415521664884652057684242900410964974264080462714423363121510650211093012912783456762888768505285357337582565721715976773341803517171904238931154089057897893801477191806864585174141274857931860965573143593903093054351827697213029410679066950876965894760505060346499491440991809611699330500584758000033753828930165943222433382833487648964991457938138525376886253872389948496187113071616108201906355547505684063886784761182909648099002692828057402861238345167067670979343509053766768944729829715420864132128397992489431729329091803876448004636921433314566992103512791434770580471256574650493095661356779286042014890432659144350401886820512952162044854671325944345288520229941130284832019461097433492587534484356066683116047209894937073053938092847955392132028451929804343760374242616634993515906811486972713444363242359139612402641050017533648330725648413013069041424616876304106368253837614303746479832167785743598710964959721458530067677329968054000384891605093152866975751769214610508994970771310148059380251774523439953951424394963562800429478003219533585891298035621926916217452029212637268192011931669139321239583175155331929404869776545027395918488207177811319288000706046389527397774449033204522547741254006990261809527179986129834374057310764272567351039377812080051515332046761087185905778221358379417171047781122834241678551689279584168573160757334171239676444294627056322066229831292761567324742152772457472449209592416523076651399058483920656397363486087141857150838498002892730855373626873608809698977579627746531065766890338122068422792726446803846953132625100621300757166803035145148421117343936293494635522876158549966249810192159014589062133219243924916952210177731443939317865059587227690648152482697490061927858139544287606295848762464230501764420519855544639674725099656282729367441909343755129060369235401129843013795746609276582529310680109616090154158618521118331859614141581437237161243570230064815266042369742318535590030287644552618748447575279489441723394730266786283681095200443959818952824557567291971921047340157178044230613136640258048408527234521010483373066535442850721496558665800465804595312285327750945424671761643694196420799408947443529091862583351898492441894641502253705509056594690357850669283369956780805918753278499280434542547020209489457863829935856662522138746401850728680173815212605808851456854790385441020531408901209721011944557779395107978122195202638401000622535130825595797766128637219527936102395897705289230466702753876913762529014741278840706826893303295493421070957424738360835923615107599486715144674607990602140710943961977041316583670506645980956098575743646682719481691445120129198550330745852154385553422226759326811103960313910533437581717998036308448023190892824552811544702485411333379159912222639385019034625523739681168914765799226297008256709327582005973639967768538276717543782246103538461483274636703580389524233403013894115962242264840707856424815564548946000758705421048919909601643871316845115798728160554033205950086028331405951374960917202006239044760803845725984219977594305391281968569152172825344578375053480440911869171136451858848623270488583011819857634688994749738831080947902474856245461903427558677578674444552624115837053845508690751990470102191532991194646037354361348957396061422788874643466638572605211889406464537780665534775404180806444427196010518484344297860158159302227918330418345759048657062415450965561468495807712102978292410743317712646741673545311350006169436893760098779445995517782593044707169226510547698551483618391287031470530075772557882774746571558623991591254697708673803649551425113477067224355391017094305910765903308894430112028173769558970199809836838616417297146295885272555021026890150664572051736714046717320523116589373968930630278307111700007932080418001106296359047900134785393115620069917642553393227690327052761226266671179424708668185849489234737035489798027292553119256247004879452213588849137798686259450043215448935958612823232282052064703957643352055806119007231589445213033377601913634710754287868358028488946027198390773393616976330694246916523462049999845702052794183717554050363257184978038912448810795585786892531974265369043157876975192371178573838788422419740959417816275401266318014431416112664816044530564060342704791124155889492485295831184456188967280008943697718809725489852281940588371589218835033695634892766100903417430044008945558369237983343830265071881011452322261999238781706895426179208511770564562375368510419629102688058720835621551387711659501611127153598816776933729978330332962764485476025416143639998902205620453289596028704461876556591433806619366378627347511127067149432363731055753857712927673391038432354278931899659281181568910852949207361628483282070293281984564572737197322958458984210722654643757011902205939138945980783437845724699439791776738538400935166436748683138625588832318643701673309952132144276041456500603283672347955796220982132226358468170219226229244244895589601085817120227171494954956816605039986346837461374474763879620777851192478612017491169428966470022033597028203831657244723471569207407331865529541879113053571389759723456721106115621241295968846904744966198493020794165512872963490734629375440070163409761517787677690411970356407333666687747290003186548542821940244598108220661536033477892102918161052419381627806235908868871383100742051850687709170450539677674497937409411077071296839846454921508167101344896434042556950575700157436938909354757283248477407630756388853131211490896106974833623668644995345509914673172320803340133798601692387074043996438303068352271687254832155369515324590277659815631350616187173494288600904283362249304888588692168552074214727953844146961539905516371100762780415454562834266522824943402987650929215977080559795759652141731114514713701694767350884323346630203959934039607246400458476530170038408492310981394524377764296521758170328256399710338630474571247914929517305386856115381731204221432701070605869102528678429792657904745027974746497094653178110666575231011928250099135080217917076130335856308026627391867681120447890740140353277481537442306535400786269746223857916614703253513526201105984417437356055761412545611408856069958777817510811039213278602667965052119452076256606823780658080768695378875796707384175805887921337701447314146870300314090695290765163593992664224677544496775593752216264086078838572658344893159477198428941972311890914493401319336540785828139852768834763782023779530978702961493819717422027640330540880145402461122669886752099623735154126105322745219295068697974493666676835478366520251860921277935412497069694818420896045662122722929159924286103076589596662505747687496277017760662394443243072698526729517508197558975658994346901524925422626779761589249038747047160663163859409930093971018761215467554304940250227747069355226019043966605962492419727759284661309837595821932080722080030348667462258622924851472420547120623518015550338560048230875519610924274829863169161112327079261284479432997801256781417032899560995213286214749798957530150482581301768547079867874711234867066623080270968831145719732875364969611412754024372455085214414513379571806995369910331737172490247950077249096782488920816519378731946514428261857279888537231205900093923997418728668756436628923018853185750829670415577025015568121364007486967840571332268541454356103077099967937920537800038810995462484440885786568416159419472384915925659100776400172217356900475615043753447107369280000038585121138869689125522491576197887515889062551621856226750346593690889358769162806965257580479650456935220521053607433205747180388423558759743323450537319906579609148413279481940118981877003066332400695953731506532307108126536343908876190770557194764498928623289367234483479834645033084030921379530037785701966555047794618870218334630510043069718875409677609513898877385149960526307051986483975197197975673666858368965171219655205676587556630598417661594539342809177562622212475168003923097365144945530225709814558964477159938004034986763132132532527228776530764782260138275841326959074542504191313071475886006770365375902221335014796130101678797883136800834163308353460114113874603760701327136142016085980571210887992381106915204190078994154828151884750711786600787565644313998107924641874890575465149943235828363294646534542867218993107586906677876182341257318678618475476944136262166874778026520536048804657720348536551523147591325175134487180936785252937775449582051180028197067914478423967458032601925954242917072274366455114318758992861765194141174224506014558523669962163486860573859741918438704523599419240689199770831254016159732952152450170161536451999545192093122531496590360716652591533464628360309087335862717484440922797230201678533921044573322867785917111173331363560922308253379136957381390060969589308054873074803683533763411909210853842611880973885823882299808745693549614282629198736473231702053719305858244452825346061829495963560210040170447734268837269029674137986991624494419938562643727533295707699568923948451641372124028397571713615546153468951380989327608529427916495535880305530828809677730855502465345493622627790112167125963456299154954121840595344215613733272512640793755429942120521810084087264230414278793143937650687308766602243502424656165481937786911575758093309514348547688553319769903166532784885601158716144943354410250886343762657304313421989577559571107615760047403776944424423789692871447830461635006587868883929161022034391934452672087617524144503231884023973390130039789212068238810134913902380120814275698736761149204556414180435828507943954928997320447590600460385804518839526506626052673499877954965297156356957840667802590921143902745247262606361888411400745292647544046591656525877088661562251913346703518379374820609321761881513543100019700230674016222089161508686252062811494968062929332549416541404728164473058699118042485574660967010449066495891249507098066337767504446456966546133999547632832186114990785164496709801758163460625091666094471756036857862473646026041223388675872282055915762398386735079227281573041475841137483221110379258762191478572234498559795584228001477016813591755600886445974865962536333647246461113000013903905847227231577080636133139870530718894292246296437316063172077164272727445828634661638133810679946132160124604743826182241166920671205526371469800217106371646100458362955399723869128620036420134070984624301191928408572240607035541120881926224833257137356347500195090368506283539277946736285449212726243633176214867264097295016313079748488849059190893677937112121125318566858679989577713787711590882251507920177913846193466492455229959362650578332342562097672683697585276439544833056855899711150679516849122120221515280029062154897279993288889511806047909078788305113884901704934660720159112883317069071531277225774010615840213317247231995185151676844781446990976234758836553814865985901511422100282381702418707416344265619760408013183049891076874599015514333725334501562895364651879404335835060148731074772665803947058214168973099248064203456009516515984227955204476072034200111699043718989248418006402034908209414796400367587185004115707828716283323175322232441426476258521798716923094852334555512243135729085676436693764063448828007726066249067774085561340456116133741072048581419258236667760740460920827599220056583857004850266478117334763503646566039515124837172961235736947521807185586331250432069786513945794096272888895138816952262197685918917499518685051249797106633919408039611891639944936524920348120160506987513223630347465349862406828745929925791623329430725673478669260552577535660362121475370245271121402921579702627105287896874673243561010005240771025979418211253650722252656398302053885777749495053988914518613156793083224092708749059557849392348472064046966026963767379074899570928862897295367975875304125103107972602665097870043519356288033892669466815326693291532389426532314528406055180453740476030329489118966466423687585108741344307687088385199842521812360217200309046488889892326925142113160062848775038308557214745475198129279818931500184924000152341075494334164987621323210943865966244103946032170008531158436535157236015946600745824387562204885270128291958280510158506418065914157704086142995583888070486194537975678628893942377439916788581396762495090001794905221737807011375820700156050483338373403507352401579071737793621252082646092405335979506866394290380882743261423263852669811922226401348075668368250876846478641274907768119211184784673835110475075750618773098753933670479298462160729201824508307324445395573131259856055109494029241777725037787264367477864474543870440110079388997023243171727853258240421733234380343605216300592624297398674827037711037381195916995188795959615186424100984104515702217858678334956442108422665221908842133477976689252454068504581373732834553287989204173868008488044012109206186291419345182817610022374724906285327806062454373478351749564683204595108873341137353191363555801237964118650894565040475339520092616343073466602600472770603517016800509927260289278821121350003484741927458805140187340279859894484406842928404276108686288299044803292910706521478249789074861958516901049142466775749023359887581891058678832509681629142495457066179130555096576194870009147725699631736704199952669987555207763796793374838243126679867126619771583047281611268033795087107452535991478826464701381433703334744865149057177437566674802107188525361616166426001847811126929615409802012839222824112966408681100954147144782944595272647137137068781822614535571795383855165718593218773547296115894893209397242762750046838778181045331147622582130581700590587502856175452733297366639939982222369987670236078075005168755777203685610237335084597395712733955149872036377739956253442370249191596131068677264779889396582848006094303404877291725527999907805741649796346479949816212226991092108327753808300517392519273197819361306414065115544592525707868653623554534585888160834616336163148363482369807651042952718728481556846323070541793837986803179264395208382149809970632716399325073319402612710932751857621251651149474722462721604237931865654052182605384496794107021889055998080442653281192806980672922076189327707239071240062870506429492841313975690355814212988213874009523758302336235059734192375930375288417552581080050100436805687865647262806806601953707378260242988259220910316366149017836301172729242182173917663126199535520714513296983106739997379108754169898206921611872331444180976499970361168614513299763417593535296000604808723687537172505957492493233397211050385992807101481806353523366690325199101494305959255769488080156932362771312346340987574022690084026380191664519464836216550941817239687694068666752608800614306817930001866808623620255454760164463659829983610639022419435403470920398141266439280860829700020478747116665164813160088257383927432139574052811259628476146909994208498277294014952248410382464322437443485477933904819854951535883254360436600803924853649737550873212595379983621911413863250500281719137129888868263202304680418371809475438384401319957849990248872898447288574214740520928743839293833345377475218696324232426133618773835001136701735921322144444506712799247842269391354502400743623958319308743269843595764948167023424233095327807021111626962269706813990448911190947353908999784440523728925804386068194815000631953303808673628610114820581966476980192845122277958875896324967162166503659283977054219422195575667001529004349111900884580766913823539687056612630898938319996976447427250853986112438736622824115569261752451027939938341492043499903881396027941918906635300650206351083122819739399686284211330547529187889090657690740173425141200284669623935891681223355334354952267460643206723525828585594095596548115092069899493186916556833544174962362689730395756569341892213218731422856570241964822340814671252131774064912545121506892240482951668515276268942189206037221862437103677634703055125213645979437085764901593583342068160551225440632727030534392861110618400702738194695887425342711999126645132541762690863237060865595312728802298947612101073735473864786723088754087762835956235047987664903089467631872812802053188650477871742864744023484489804070423840531451423921927279548329084289356703014256277167008895521017903130721738112256174303703043299105256558840793693613923877103179149051268693153771379050982487380664466870610616983857059911903486717793053320617654220935424950249236363299026342695348924861423555317998496214324555898964131375204060095369767055642313252066636531302675716359732513915892888269082100061011865420867043237068253240890957616209454366035425008104375084243726824135136869396587955504675197627363391447320922564751304426443644794676402064646588740656804157510423737097153841683753275513516830977051023968835444314204453584009710111810614103097803641553985566153427258233208487019598199112045366155006560933111486870293735338505062674549257601988012632337475725511853820702398081525888987041987327076396217675801500286610826113298596026476339187987460987058581981038648717257095631618782264461611322635476478872036720263286666211625259510845927604517903343998656050721369350026784969887576930285290592835146548032571519996372809489039133290528547904666094798267744185187386308853435135720251638637856943540291053051783461712734513340682671200891093345329490602795859181339393125617491647951872026322430765562570286113171281909665711824347218181150480166097585394508078984840191341337805387260077026342560726943725378466637702527407274371714046430382428692800928648665137161451635347348492540611566662758272437939336920958306196221887319703670062449061645179444706032849716535682372845695917815610940440917121762968514063396791724461309366786877750556940168612386374063763740261010606504892604762378473435294418741760096207609008134418603893745659491922903146180929543591112155452262708464027741969152901165987023803307402760510828757858040047350476066000672832048321341863673507643502107925068838747089070843969960811041106183517641079937423943378818064919378835504588754238436618528527011907850163585177390526970744383785692877480121937133276846870288827852378492386173981263988181462916007592055697272842440536059152706886444789980121754507811972444750767377790666145135653471995029336112613968746098127830374742558919096134901268776301888398036839065806024168596179852612450899522097126514397797079594745747340941206127972026018447837122496765141941622670985698494048235179341519904469568365720670756299770846648534552076131339776259021125573907002377987100240608837418556285660456943197523414882107115094377794743880542020040308344205789582389318065577766182578443411512227479398147660426908851391575336624260572764310390279412313647338210957919505974567013656623183005624645378576851546069569684713544971303939552658653719172014380253820317170143505028050074956836615589663240715113771953858686542350635495640378515484020551594693055329636519905949937854316124842317962294907578916739755506827406264120637979829581450034104810255882996795967567986590790393941363382516065870188308486980247825654828166695552723404553983841626561652497112595571075426442764053704200443623214193867312206920022857506379905151589594728679262188940709591348866151661310295063595911833225593437910209846030733746757982085579639395118389402726009290503897764327243995914847176135975611346891758657162488528368481096648661893100137292828274831367788329056824846125301185126328761946823919289608738258058931343759142477056694654984330611146931981358427685286345203350548657020523434340009823572795301078599934943232766347200741905355344867496314533160151404145508352224188761209472384459863459854342215352198739949214495309144312275996871773915872566880363018434639597037104846602896617357686265633282381593119107059861226879859504595643791235167465776845666169278021779750727080553307251967949753323275593975807520310559341578753704917608393967904516213689724808928479393272624071494229354044766383614991725975329269173842975337923275202069369458282816632521719913817455875721252933578720635346066548782663010738184541095200316308494004986691191160328622345521343739029598736722632879969570927036892221195508590183406731813384704431770671207266675247464914737118031354673064528978750692868275580230827503653740474345490321156775529416175460241351503825149910006518573214814288892790132361416156193781262494385690893972777507514595479725932448694883868432328044995077255562653904045493271387816294048704774858586619449244887688938698067276900561787547106402948799642858045405244832992714043020820158931371489018033918301216384253713013470678387331336689402638570952624729065036725197810261431811046119347556253227426253972236071060900419433975023087873916480877917186922331069019740063270518414657349566965321444081500326115374917750535241897761232806744035176684822747688171259202931729127840575430720901268722526817934690057006869317253722766576952861521739781913753890902554649898806155189962082680805273287985977415942053784423504631117613624755067946314928315947785037224469021006650527897850320701475898961576576609082486227125094489315536993013073881157608685586132831742761163990236564534500771142747011617590123348522925995844912381947298868695935326027592663509114606403249477501635288355052402823579852942457060081154792244707553222756324531021674273764796719699635049518646744392446163700914595115488577274146566399915013909807074443123372827858323566609037413372202485655834727090352744224189661804394605010928785371336665167260620687948086412107140167775620324003518577542046956711360272326552079092767996264478654357430072596067446266022219095457110417737282664087455542908805550508276172949857338858411435908662158815002168888104236405992351450375370768392034379642339018101758481795376514146062794411774614234525332366392527361944693538497995473113826240535741650289417929779566245815347947585945989404059811155050342792476508112840448753199484566391921985712201630783182968002653719705214377638169927088845162696588847267592872320220033819266767810313431182697727253614082808434389215208780871048543260741229701427617596753029909384562019251663354684267982381333203097171104477066452460826690980308267570172350777295260495542256664139703525631597509816862568106517996485504396197336138415266708674361557794064966414609823765116825207319003210076848193075241620537255879562481467266630869820411871927916596264283207102375380954883093086609263479943188509274075745043743093980288021909547415121402347316434373158053767181161999927859221984250581499056890426296395699523451728555502765964326310462613982368044946124429850894498506883773754899382936754324083711993312270763998023864438026916863811782213395847733993315126111154370690692508458618733050496985376914999076624308152915048507305899934594682756356686593828598092593073016449093593034818425859684542633602542276652374237242724884381414116524613831512136184231127808294425277738153238453204203210580097154833584997639367845483285332131494296781397388275123859479578926205696610013416684467803346454728230005530675923254346990717498510758184546488876338531409354952051317661883348008491871487628034877885326744548233134790678200033106258067117870262646299281399398870219355252081727145400692594303424321695069519647095539766543373454020278444051109719370089467781153178289723549984392553201152927102334632100816771553520218612311390805028213048406165537671162577960402746232943693969697342778851119773449940423305206829773564112694835188342879155596990098246493849025435696481951158506245323211597028976237669478807123339729196175568263231924954191601175424065800029668382922300770551606183284717609644508400371891998793127314895093538382574872903293808187470642815313130176193558971245354187132920012130799267769205555866669243243086839736440632454501538290023352168949217673171740909911984431522962057669485769873573911204286509701977549025858857592817674978057183765660382816881722964328218400612909256684791933901482797968697348752022042927835060765031894744383113303796521501367448693005993686423775194090843631707532752515264088980937024127943523269875589786424888614096907389655265677284507583667416620008991217582782227827897940296133604846160073004946775103028137075018843419278378970329964952114440872781809987879194617926440520891680966520316503829310794488621550348031347536241514912139123849330707142368405961255598398117366725035450935541241111564910686915529892521899205143688521144667938620562471728910723999360023482935061648340311992785512725016990091162966534474306533146579645563931951622788343766753557256767895623453642197472305301709047585689330898085392893434613731144447102661816637604298221471519282703107702680713313572923912977538551083833536248505173993973599826858735832225431912955001424188559015110254643833495542476070366152292727979640802976679136753037843733026823485555072718373629258808838234359573595870468396897962174214783109044201549184892846461938761587768777968982883558226406429324949940907398572013243855986101179821350442898555367279294284347882364492880070870648282929376606701409070826356933520182319210276822671194089233246864228328499152958648778181491866102218067648076106228584715209785451528754410062987537581692141978389398672137315639170536606005710832508778001727390675458451513103244103178600542630768789956125125983890612912844099521558315101107735228409127774002782261565236076405605353852691971190506431909471137338154662313154241967690616400025232936157697324572982179659593278243102908816899835064593978614503041787575375711646883936318127830808401747757843892678091277129354491496085933752668266031527180540907231462252888501144659393854359697230141528302128908155923561350551324217780311103279599582625864580802673157798961476452767291001372413384760146601520630503595577415799020552319489951150616806785610888566228925198221080245517127157554334768566485714277806884747599643958531295040829973691891744898965768772079140762824963147355241537018829857940964501742738298110120333764434189370521744543115914556678704839574629410225788560091758205869759374494270510791119160404286708627287858734880660402870643813088588706206285345326576981235242133029310391601678306681993613670168145708909611105342277593804787384750594972897730393996923409301750322309586679126481350367644840972505804019572650688813511177428710102818766599677399875468271776306129038635842380002929472016406407730738263298870795123571873408929923953178243454532815825457215985846721538132687724716850072495221091438628637315093676660009957939952644641454187508989077321962283131019460972424302843463761108766036139503186353549038742920079191693015713745735555816075546282492978317096959712099833101335602591791674183631779843944201331078200759110419238418058880837866975692445010985798708657659938406333078543924031305208622439886519099167722303626337417610280969066125434103306998903408812284395947371080387129015678042728469687433266570490113494939441132369782827726455277920176091986389121464961377235617121357149849670704774171630816828169441940368973488785178517292423787544296508850173222712309557757651357036924721905263627020399462978153893614491675831308364580458344005836672954250364548732059951486348372724109574984121012498902994692477393145125106393215557430140624453023237416077819694017138527234244016462949742342635281474597734802545558398650857131942249004275849655142341234214682373547641957672280879357493570162272364069468778516349161560634970854670596401358153997345764288073318580620629873507122648031729930245529668001375722556118189335968728483043040410957475725105581445263883216048720704134750798672526295826085972628965026298323213425239266266350792211326803279910930894012709025255576419982067985247176359670140657719179762420537970991121443736259279326399608995520473224290817646891600448412121589875529587454174793087966152859845497698782347255727017765219652968754281581142113847528703659374864148247920658081691973760505378742907042342449082434968955449937391760471849130001477445369229961370189787331262885983316714299774761925586101469911470098283469437837795470760331999564528440422361297098682447199984436993547484622658786922326513703641246831780315588537835621612800339377750060609603392738452439478185118427123526688068564709747208464890041185815995606319682137011013892305246564617164444282101139589501098244099451801716238569468445966976267981970323205699517163420936545739416336802533534612712668520956967862224660024926680891723938038618147154960719254756491974003279394222165897228771486529666703557635144828627141380444452166609345727376911334312014700727757849703659898001505264035127366288371300965333680467615759031908907014110579976260975928153933094881308853131741999193262770121504907542468387799260012914342529110886613937256038842498127863169484763987797878136475123548421150694864711338937054230591582792920945962049152162482600084521228710099086612627410262596460886428797567440216761992205865375801152526981247408866510844161209819086659406132244945253653417662728030865588920213170784048783708152819721120455764153821490963552201769884937800007092955715241873848922489359238193231067438908323070326936035062111505567335196009296074316302035013007846545813185852406212008303817470038897094784818599081232921479797939493679269119758116468876230257503894255060398835317422915122307273788576801108874508234883887496784241820070544947064336664978837591458633724635475552818504594671746960126811668499806975769379456247886396798096132509744861945591023423460606387073197545454368660898372238671029012815935045435601286852770317480198936472558630408252111219684286033552746075799196986033909391098248534883080524172906714885175382670154486591828565951960711914522643470008800267947847121425102658534377308190949001889930770666461495658057420094592433094122247949450496298586878309636685076533998603825483274760492865994655422290279905849741105579732456586616371762243804313732078597822133038903679436047467867684376984169346865996537765145703011229303524443518043254689428863689540509303800987994173829416900305754200086015330518681167008412948933457990978382590255058354714538438427348540411704983006709560482557571012354766073367191599509097550185678643867040870549897089491278526158790914686124855768930067143105687575249054979304792384806643121728087660215675819225007358086577840229950741358181322930637226775595595792368712681414901156526054886252648001964934639038623054965154804181887951317211874851032326192073762229436037883231036987344591847014345490971288891919826461759127725853000989744369639258494485794846669125398144108012778665823220125205599633316623679650779422419292948644251037947554375870148945185498301904556042641754151415762931576636880501385613112686443857154248591572938831660742260838608985116233341399944294330164565107344686003103519691193979615126780314712973256320580203074211528037329281889163329954890905757322702360598460298395103548178148314625090451163220719152669201448585440537029841042795475829309533278939562510760402542524252858260860368272107909944114687067997707854357387516072517626648013975226105139348187495920448320756969024458857936998250837883212783320021502244649271465811479353718321475815617939480991888833886200447400027453938057420928056999787894865642483083823661642485205991229961288016399960052378063768659014620554033917925236310325547259009529263207505792829667297944443369775020756195569630918566613822859084680957721901125918844065112394975965462225326703779196848708154770486124533129032621232642307463110042329961937641093370874678645701883438544639735744698273935568521905362864212867930857822847100507840790878089704580772006914551136827480071694314642098443785755462625311848433044999327060866346390586779214383576078890802535653318518521947674893216894974575070701867518213825204476080772706524854113401349096518876487334102071228995039255313844374507963505196111095353293864573355451619585058917292938272000504964890754686502193385318185330863183823263802942829278465469236481578741140087821969044660260220049918862656805802905182350606544894620800234864410145252428318665322455052737917714587071815777047261359277792848069455532127434482267324640246319512098382032133191176839308524573944041263042919075520527687175988405996294425604926044954560017095090837449788942769409425388471233667403647342137901168421634176548913453469377068036981967403660672030993151433393827625427684884914305397659403970251745206999584899925625029451244104957534358409920329116205585986208166938583224025827365015780830472262522368487067982621397961196799535401445466739745822143081210759677825802514765669673221234522204242178419025787110464014297074689749095770703737320665396449816921590073873976407449122637002708198306004076719721137217944228565597962029113982086302304869084366722661261098438700201229135757419933902810954284578726497297879236663707711276280985553463299341328437938858443387110406293419762624316924571678580822742427387530427788486244244275159926404679158413826579933696385039005240635229001371986307813503331377129086560670388839038394293591077074317966403276077753775814097593670330491931912062317989727784437046766567542625086238272930038085781218395879059565570100421753604798862073023724705033825250238180803002226259471843246987808019467909370129810406445493200248993923066900478079239799959552905128740281077251747523261421952308832237330034935083459207423610627790964452769872754217639272546263314658459427899817488238966309809394858116964923007569660862363052729935249227126960877776900315075671705440392808683054969311333591598980102396739533969687682504691816216903543241217877420468495112570499826208859564932764751068664822192412621592336086033924980931005135907836009066910762995548472221660000510417949982497415004852444527557510319464473189263047529940928908776736681547185762772561098700565337215412357057121019876324772690519724804387893612869185670850505747637637966389059631350549304219646766026413479515255352063940372862885510020977822516042881984924179958229703087568718932359084638657728145685071108043090863647105376251297178298424054432430147275338233361684339334467204080882750575765019314076711507893536975545478310532722164985773691798394132462724009314836615053751538060792593240955155223327733351015341402113007463995085295055298861643031267117377390433386213867635298022694963630397392675466715708971860780180150937143554069896704302471073803226895349906372049203732167004454002561699753085168771287896968662741235361328013562782684497336907545599206711546025404822767313857782953993060082466096749842811500072822024432699753077102036367044936209556587914286642944969319457420580527986061377882536241597345996317898946330920770445454659155241536593652986839776358663406589044448454652102593947146537375725487314894981270986216705958291335492652261171260276632729898454837302053420207361409820199864418168378375388525107268890817981093218720402139252855723369724838933817450999153402494870370003126535635709264530342862496567082307795993498106922584396274279848107510848014185888881217364633632689319313970055084122631447501972888189985092864345357201346507236681092174517312369116836628983138183456912440788479639818589913236549206858521854195274756120498379696637734629156775590312527644989729094316433178298702389311749359185815810850487677733927800287723756349650935666043466643415469853275835086712173387011590310399712594938584316795709669433208940857224424147561165085007070318211958223680022669131126230628741873055992079150878790701567283772287749107797545259086334797600175959077948797768251218125629076498375502892626264378701947717791268272173441285061641600836624394149000501013261688114769156546279469195570390894983911959430025697102815732356773216699636626964811851653884900737946259343610911016773254998995926137167549217379867785744998618924378223683756342781939703185763683498886972990120614844946013717009279263059628510365260097830422566776644908659794376153928843020578776341722684007316664279145294600698795384897465123959892009453765914246871073949627373975630215829857984735788269022390392080066750206582525704281910733913003523539446130292126908408888071687292599869186254567185138481522629207669387056980417862739901285405562264779035579359692877804385538950596578090668917994175172548103665373874528731472009394464524212457272596005579189186585648572015781718031788677274116876570027370013556492771235501867108548847872611787848575664140518600655972072785094437619682016911269709158025511073083892259342254959370251063782552614159761661022446827961196953409383163881940931503656892573960174216445088389181086949603347080400558015503568591105512914807034598117244078258118857423739943511182520925516380691194507221917900272151803278969709877838597491194290535332988283022538241424801035234943787241040867226181173862069205852832674681906519111498812264380214194473945321321223597948184140425105947630285039819387742624282096826187227708701364204361279561755458866235681079336062240429960855061667502125306752846770084424846871394744032394006192544734968642550317801251727699960169692873821718432886954307730088184486916459055927176094487198580527963999503700228231944281419102617205990812489022736032595336657411965614806289306624178400963432176174177766159858945146429648376628648561339182447910304079304426385779651405871417388156810978372305668393342869997582965501486153642110071833816157054835311135863091977556280730764632912724407407277254271381344032448227517525369267358847046107819016625369361959932658337353324228279741647963460849220532085045338698435866765544099538782451537793283734577781638308847723188622365568918309538712429061706195103893945487716231557059632750815658890492891358893343594864884288595421506181688777706140702094620724663058093770711714196946297402576293768454232306829228741478969345812090866163891938127063568980406440342902127922836041188451277060485169888306383947964191581542577430858371617515601102143788785759806069293818796941330175677546328248554259080154159030632851463419427674474295820449590442804272616031798191958875150433094433026973960779645831831578236816109118353123993999618755907197734610235900345458195948701108158530357388455758311234078961107080877734903886460575457817770996303612633847925690586026105985502192798591541716197486469442981115707020993200650842285507078571693177400824652786242889632716316799631701259748277357972228845904435456810802882924989454174117412411385914583182562129070694483030443214873464686255223242972375441582028903838950042769045808244954757978427520271562129368452270843091078078801027126567667061308633134164560315336672904483385463286952534656049371315717611855781296601989819417787873879199483068401165330303840199316346966081842891000771310365568908789105553684292206749530643244773879064739287210364540597990567927896597413519159973582050017952329681528209144610930060024253692371514712349566162859078569660806139310359381517390233043179039004249688850741692628516850373736970248304609279648427306265210294440011756918298088876147665806827117801697042888560006704522890068826179039526601325470011427945230373805606740222502466973055358578651929160020485246765867441177887643022868672093789688139018263378944296367461029236635058541926273388707898316585875949584718022238125398628893330147119949070418823627371423505683187272213014947473819579707651681040958476633400731136181185506171722867387243537550647617875114525954670984748753774956216525533319626768389439650310690992030656785383805124111907490953745189277290182058108984012067221634627405339570830128296735497510079899475122111612404218163760060914002377446605979192799648879267786426682555013293298180378059368334279840168446261304853847016243565049989547248056095179095150606249872660072848054821134760130880800234192304803156337434912760814108112430810764957501279880005339136581390025237993852028778850155891782672752558035338643405292178772443794558978964112873812232948395724253429610244176174321582567295399447061976745801594541252805880001810304802270683085499754057343002986409643084131591206306274119675622113202732421714271908042213172912094234444474796034710127668773179858127852257498506439255254997704771439182819553786708857187813846525888945208622506798476489346634844270105700497861809461713941607066375460629644913521316573775425542931434928774227549026612432962824233832557239937628560292292989856645065704549819771456712173370326962447021375396633941176210937935335086861160820036148042152806597768345606826182429502043184013315157685525795837494404467031672937417739106252951544428822688704215022653661077105350679655693023533396279875173706719167440791624290458664142130207637047532330137294169505546150536488897010661571911806083058840099260072414373085845462569249301065768267233362800814792859581229266866282899679362178648614983152168400490959054214573036159321597540225944083539310146792585729663922320421644184732021531352816075376179124386580535773207637736480549016524170718885765944665739779735927930855119407516763704251942318101817815369078495816152281850908585726678196301518900792367426338844811051717021713077297081572830192358813586521952935575904908343914623460014794645922433608665475485979753649650216752001314017421944465844397185260490127990721176537601230495692746220879870584072249010366945887877539594392486365695828506938375544922882704055817736891363454287628584255479781933391700312379092314689804201053675251622825516468330393052330595698842718394861692577751989110824348694996352160504670442383214707120392805167092483848216113786908876488819464009611014469675497237500057503846080583593238340592135251076056796908347537935996465678290445687733528067573870836845970795064771028648905336244249208398006843481630959090023261519252440708461644098897938335158809044948505962623010961528012823754093501255208750815556153419119521355048037341419817890020869995918281456982887540371710564049994027523450495666234371800319279344630000452876339167739381182589929348256890782101105110179783630504881663364706705202261534853423571295423878427597087053267025173178050120508272824867972420029890235201673151982439408373287053000931037204024669278109965078153303122313219219156553584284434209092777382032572577635471335353750924207659635385744941975822229525614478956445808481981406487368257952530585978374948530009324473882755161432119684475238732380865022126235123742806351977807752634811166451550222543493366397475877939184404069288374155875957352832588608575741871359595844459394277414026140859255841271250005567452134631202732425476215683759229436878166657440489104725949358386110730552337987880231794523042109587975002848673453549926636761714268152768508884305632687477582654755194960902572550527277144031855795365705964895109540432589088332492479548396439762244582172710925182530664416329162719549409533476093224630887395381869535303182047074440638617235575477241565224387660295386738278128707793445445899838712628664012206829150357224340141166540188579940565400659341540624129958952385084802838811274461207866664912032911731510508222299087344638807277141273295406356678300695435177664814746951526543643699650805737359935057749674530188750921012355592527346656548400962275117654100342173055899498970834298618025006303796383052686457684601472102257697209504941179046650107639232747668818256412365921444784818034491534582371968719908155442435087137301716514179303529691071660706101968714032196993466935368951098979481390729083600027555274794990464339581541840359628388262310259412422444866545732549369525290809024561704490812935592550335849339464621681214111614642005888472111923893959855931986330677866655925517757471213509051094147665314109268603278335118168216203367123426528238146626840794140073074140233063184501120207426338685625468188182857720412720762630159040639557098556863016506552431162290571340359375856922439887559559165576940974971508196458360181638378047034655432480659297718897331551469318587949914771723976606502410441006143779548895856950590704913363251856186929995253286439495699541422077866004457727249137079113435865977182106935850247883797640651173297304865444839918898597563924018425195817486629989004027621435862807663486950053401529690927203109147902426449665192643031230080132590072871106826927084244431442862807581339838259309135477758094926925832295127369212517251882516692691138623921238945574125877333954035867701119101015747413052704189952160951407738806526829179724087422872725626019732854991052743607593981385356306238799575901645719840084523884340882300179919664810529110366987281994692599633212159398914226408047534774736165069897178191805608820292042222744128227229904845894241068503059192921097619041667552941823370286036197951906769705117798818597475877688566744377605786262907739628903787913798924495505040927739664781036832430108493028536596043864175505217360635278536272951380698707143756742377861018359013979667839060179244978897447504820537689818736283761140900597076567242982545097546427597177863644529086387186563462742024076988997793595868317648722230687974088072351055247006589019481795993350339312168624036242818475670892318002865476990122977504601391474464602200519929884728633100687855688587682622221410037740642216287843961509464479563845818218978650617968288505743143546687921101926198011240047076721021906682295656779436486753928169249716957539306373135007796855983218549104300485412226246611719425425914715134788904444500766061252630807933089828045773765144940068409811680579555251754542961995744210079843911951994160952395431537864585751403819481866592060511049236469134110328571810409075673177017529172608031063537740821800505278959256339348252254934742855103589112816823139218547324683178551172804554739749142876141260862107550395505839053352428737226286234789265381535914996920084081218973559760737756206243484945975299170300482198511480114409280936268076178200650010957258393665790449711378562266553975984707882418156645659984509026956523349161104302868271467973554716623540373118548726316045684093078224310353051749731761490274785754798499049182214862272279777191638216351421841297490748827135683031887042976541753627821057844759134656618167971984097346979820920213631232722031580330115500757244295115854518687682637698593598199232673894400182690693591900451258452846314299885010617137619637995950573423698967906770242234643867754119643433029313526613351516480525407533875451304848470261459047328111626990619378489747395626696138258822708677964274913972513702552739279688304950438037761656539998057810825416446719377944973719795159568788070531690608307409376331182315521777660967968497342222559213525724612136625003216110637797516247830798819042484578206973401597155696274695524788477128729982459791613973982567169569971720061665486040513576276948433037792641273541308789322846227682369284780316587956712959425105329193053274940001807740569779762839161833100563532172153528154923146286893527270979076721522066598516212669829831044999549346308997778567550920711586843695077453034292325771159541435125634658500427515415874580776174100979006348517336290622341326466821495042620953550171723031344820737675157472588231547031211727004405652141141700295704688424244561886886462278176667178294863141943518428224274973182973495319025938555398561988841285905780316728333197624979688829158521581219228710612741326953321236366161250786945015033593011258130335928071527571765937342963547432522850423493764364737846010638667698736782475980386542368037713614377431461100527203067050418750826362059440410040676067904478968027585948049845455030182187393402109426893500268064872561027424878837977972120583614358075714337092606543459743074612596135728857107956919746240278521608730661027750999440536293784419166695571117782070078642446370011313286177343786093094602805457439072971429197726106725331680697255040854370640077430008861071957294651966550603782325560938805309780409983451583272479569899036654784444656064641918886717897965996482753957852600530808171203705871585291973012376037383797717155555219254087828686297676234578636077420016442056886384137628894050575273424296115185735679525934693546308863798368582216396861231383180177442316904950843325823834074785464611236067928606036645690317730737537019375542407163046413378158663022010185786217502507589586340270241298176070090316367074806362131671107559969773024577423703649399157947555040082808958010026658920646212010920260597970423360672204469304112168217752797194655089827409597931410080089432475082997568081796573526842929688664265742801663928922053242652972306688663320240524588637270779685825836373095093706918945940390418309763977254557862473418294623365205367029776100073184586962264114607294244322092849268008784006362630789550310366121451966721150794445669310109231069772616294488928779608060975447832412486844895801593449814679364639544148727140052323986318613496303678842077727787542451576636271514277059979287867526423763191177027502125543830248241760959597839802967617083405749096866915363265814663732796226180614276757157691509154212037617157970205982362960538081840799952415589004516381637934783845173161707239422942205608616075761376489207556193029368674207273325967219288412550588381949933716914731907940390188846024546135877484572033510386219907740113785100621702457902049451249990808217008421663797572999341314016607699435900213887105242387646455206833833751671754739095277334847273571715893662536841571031655156833485472895733055387090070824208708843106528695015716752286339144144925837528792340318749119432349261908081409666256480326401190017016457804062723671230208074972754518395478765093019685521496682808887439792502417196922403502422808371227463463067319773077360523013209518029229944017261279060060529286907815799573119430370220999789861616229333578988213737071077782196539735568514747671775328835677330956459850830755619875538611907576677394159917598677266114631185426163306197896047731086989745576263054173455864515314039488616436053469266359687285219423665557463443867438676286621898974495367883948512854109592487144052172058484498450984179675987673823130464603401616218249531107103979522585337495285791834057348806948428011042260124318323867513400704444550663769896972895981711410139496025716620310175492986451088516504009892400856753724619343770585833632253826210786031724001152645962300329334998776965965489942384724070019581882970565494908017637677515554933033305124773871404670632005259029716065740630157652216207690393787425511592416653750427702793771468832219323687420286464228136413845946653680678874067161725132862968865428946861687028289686346044102412477039583988701358750536449650755234801015648844095322837673938100243644537837662588004439930791018531931512059400433571775739967836834926737512223652899087992872213697297234722335650452134369792401483609613365215425851071752453633675041442080063878210627424713560580030324372417590407787155202561040135944370652674615451815424497166889127652529063943339510112522135432799831423799331877808700096155111153118843568746106727660237350079670303200712270286915289905834526065499117857722767213280992869773649899217915963057640443150655875364920355380453999008805900168790459945983229304225460317072683838451774043066153079869209829596833797164681700098345196594861930225506160043595950237116325897752004307951955954665085343098703133894454273558363120006406483093815536521467097921338495314710014580536757995984273903429495855120832207843074079286300887431551493959796668477808382509247919574408544956618363186192241758748831569314892658815041556601121927794327575933527625623516671227159430256560995935784688079189638637298352771920919628580559026885411349572615712151183820972496424835869297356005048374256824139238671058456217249292093627279567330936243339393661865098036296593308832104711194210378406014297821304784906266355665221062269375755220874405520474144546329024536961366001598269050264271246402575976162619236678044857482812095350231268314688699285413744181644783220825858096481792020801851976753374869950671989709238554199451210946104136520974968111298128063112374491757301261563571865855298112799172976000256261978186613335349580667568602007012784982326869246834736343086384539543205637478124782996376360061097019162561421167203459892286338998272527268515891456202314111620014683215147664450346449656515913750630560940206617494042100469941615892921805501532392598863577438796242780393298839554841099422963895280247167465785755071718062964335050289658260149419671825082080321398925815400873856914678564407178822719829982379534957342371807848638158503262152529896972152756037222449951964518610040410125245132776918375510064175382904337448846499307346501362693478506887757795301407290640853951813496998780784113235120174278443020094827189519844179651772032053521246972683654165096822089025539570182291829469736017954277854633532310133892150441766941144280543416529866840396010290845350148297831301338046150829885006598589260049737411853568514036334039447153400020218663291737011341578186927921342225690786620948038685226376701593321222797469348527736972084757896887620173904775284018110907937759499722753188365740886712507874732357558450069407766258844971034619228981403748365920974945079799843711899624859021072754368448439099950649773026580446469725230127171478498163104487838044669650765755948851902460881917452447427621596741302773851272168710907309025233643237771716172318820361617682584361429662530371659557380617973857238437941730115959097284683285764847396146230022830728366547989874494346615080201124936385124707512298340077001064087399886531588635784778749329259029600075096673370233906553388890962358542575844932764022329876125895182785651580553193089495045744563676038390022001776375583357533271003921353606651247794968494704586099509379240942814370946890860031286657237524830497460062597877521342274671181587095003930437076498900328332080766897240050543785227483502356143817038727223098440637320773198742182589229557414922253112736036562931880366349908690928357002974002297331381656658976206903913636428335865973197239789512344027691143605529460638585995813282389575648890905554742878668212377897500648049630482712823698488808919511737937060454015061486306662094677471137784052696573236831155994305330834487244458212959177875164845811449230222436953746763739815907106031858535454423473773128591659182652566856635693106883921013817108107416742532565541801422750671047097090612128937290943017774978589188603355123933868253840663714210941639614162727892215315801572019883559775148243850746416422089803415610369434843692880037230342707781075493686177100025925183508889586510830166592283445498716139969448431272075381096068374683278231077499576335175551839786083374105431199415803642647945409833649146660962261315152530640609063908212445633837389297089801341742599722671797837027391903142816284468921745306518714485727364582311685158360159397024199605356181542434207902128858041658440365910479609174795846552866371470203389630356902146100682606372758671810722647323421408062823534048202648989564673231732361408047218518720757296191768722413193771723732174840533849259127141693545162205473206060401180472440239085167442900138667057450792184501678656373811376327701329201674381959988187055694580727542688368941491497766905933235260039647739719919270771224168110861307323872335484546623199480047194139872503262879962790023881353593267125938985567418399756985748922287245809972296454899449208734614678224173923509390135484694283755485594400299300022576564327587178584079381616891293238765985336190585807225446092800642985601496006217216406768440229005885262099943346282065234438999506864528102529881698663817173906256749030197848483652055137596820023832398130808663617911586931543681511262356297891480414697156017875718485354991177089737896466542445396978815564269654757006406108822599262519217937291754717693416286459387708858425478747473908471833509023029828771088835404041335541939365265690416519680858977703970441407814205575484396818968853214269674286393475553965928881509061885764415670969599238393808081299225893086096475031146973605610807610593319610449282463062490470277396347880417720259568064352875247497319763273508588093753135123910568635218253091496959039135754288650444747929719299701123399184675468476375527828130672368819773708980078230893918728181013878765077084786452161073119335291430360976317413419754407553742312776755221443806582039417187851983000614727694380704541193521569426490833038151714715636397821180083332204719061680268127397356995284639035431738394988036474864300983415958681675965493843489919724092414197926245041773639737204384102084034549130651697432287213599083815054256687937022874557206756371034123892102940653869528081087645358765659090513689180485126799763659873340091973961076453846678608129923122945113214236620881099513388343515277807846124558019973665703428461833667820362793384759287066153464494960238422750110189062235692576190042249726891097265579068144019043606516251096490236720901233584243043070195333574713168548811218145132650606637678836093985665219677620898220063428766906145378367321917006804222811913560007684123668284061485032115231779470047078726980429705975782295435333499425994573395276927332605078590863148816196333691321987029609096324951395269983268691911232587919665947930259973779355834073535404106237835318469229845273083558611308704119765658763098345694508247594876318298048127570817460896147103875851335685599150740742378275418509941703745546230271977027572449883298897981619935480827037470079521141074737817616153777780131709111487193241897034947976305444395095729047561218429884132937559209676467160879256764446750782567404100868595497484871167106669141719586777096783591561667400466863740529840611988324543808826353190423983235309383125925469321286701987286684306871473176369900158950852822827559158226201532408400823073002062954756069995180420592960588985666340231975730676509179423713058397612362767234368356555773353002666363778297488170166318046024288874455256765498140419902506421427333384751494142455236796105457066375671204410973467206154587580964822558916561153680784157647106262744787329532738183124444801282509102129355586799939924248796740238748424959483279470180642673310069892443688576109644850988991933496884242880436408513912788512163298970887012434839145097981456231629159464091030978608441786081648958427782410582998906305812781944407181652148621030740902085931324998421842777996187339062779245902461614976455768949896010606138691298667915099144580120807649232500638260529648420787939946981769519136939440962447608133476200440757126442496412183027163796636061123203974271320230195096715654046836021208202124704507608040042526468845208621979679651048795455199516554248233033089522397772918155792656116345598108157373423498886890551831941424413630949785126988728695120027864653321824380196794994864771623723354698169202364499802101569145340750223303382660109856342200843739499896557148876312762527035942660902704752636836732424133204253834295362529679343196194239607544469727660593243715664263517647086995563735938542298147927639335987352522523381438650617056388852242833899899637198199350709264892025112108100855082977560041168737353943743843871590487933625785308165518801394588321135278082449238877536698206729543313262649462395017017812117698946214627735281491479943366202494503749906024895962553343509937281428325217939406005650276966971765861518829787554358432915602112807182869723456923782223184945458486802082765390487354335813748932725411063004192163412313811283417996214914680498412228770938903635761531257717291686680823264890597033423750552270538683993706291839336045422181118209080290175319473609131376915240880913838169529339310905505656360964356915747925154690789287903852423200344651027462462509114920456342495983031234726345669831588157934868573294467322560393402329145614129989490481814438739775932379778028293007568734390118167396819521991240398502112272555281277402022616850481657205247936658117537620623818412323341265825515493456038250232958868364920169097227530132721464696217975061623015691812945574501965992607443409636039741689208561484162872283805651280241731146482703254336344754223366280910987278345763529772313422990095540029339797426923779583619640194342713164319486226921491102888132888497826151183360323044901073591321379407774380064815390919990040825469104733415542175925566921051521510135626852506201062567317278585663452710651209076761857530833653287223516686189133247785825521387514696989311700353692299784191535133890510076857213330421969283461935482037904633114011901279887848128168189658569630659968572386120285134717846702606589196606565728117912135487048792421775919100005950523408767807609609652869938500886614359014400586909918424577211719009245848458428166500788375058258597120538044751800233721810208023114980092383831092953759705831016150672231586142971985717783820977134517128851560693054408155155814533114839793030359102043199353381227497335811629407797731303079181621618610714958591928485889777188529275692098299426477002257902996278864682110142770751547309173474164005498751591717807514306318405801048952275527596501625768834870608362884538354860797144343440481615979622235442276746904428687523371787098618481001877518665529978839984081105886186625550615049988821615364127680710331614751446892167155185557480542216956784716565130309693896675453602382988157475227337607382164520002027535924635740600931327317754250770922590652378795926658204713089729065983693484471590375796367642445798501810524860749641401320496939749285257156668618051315563094842834508376814596612283798978090936487925652471076178794966812494519205101405965991316164588628646886559362702698745642393388687955823517151669034188955301021334813953404331561080573238384432040064144868087770279486189199269653314002223246655504267697207126306536190172109480929475118018621602495625019947687227769261611565030041501558572001794849577252371780622594288907423424444873576012243493288590354647378506629692257182747379194836140510961733335755038200760684041821306771789359779586518860478028916429934439866583022706379842464808597477365555442073822952425624342881308540566101655036603600682636496851573212110481374939742192906525631619925318479438410901000580092331828786993912535538868496125396720006844428626700586150715604503609174174812898262614258084218604414979957457934617978707468951892014871005515712131759635966734183502480047345426300835882074416382338277473247663484418492554537333916575499595858460400280581030097856862797089118163155212256969903611572836372851771574114971796151904204799074545453885038471834629966886354725283428620371509977213969528927441809969375496452783130574914474369659425926046329974356546508459241786651422979680743608384789869183098697234673845287341821198478121973490344101009014967770991885634267876469601380031367103190367975258115935135575290000270772682317194021129392328504553944182376868217659643713624707225173181036745793332767959012898684628045001139304457842975845745524950782878986755185722271762541900698262831895167202383885523633926435624347547024653750001454418943780819758567656280211853608661278992805307717052717450948995203925310535226362717463446139914314975155095830361684683739993497820912953554578503667684075128113567400632928637094219802954244274655524517582663388768228677142675347820362034539686858962763503692176603174741933817983990120114361402491030480538662333897165147254525750111542558104559048120457629517320128384264675433024269058953195559587046013574908689126407920599563841056325682282654890569077279493658121214612358336467034603491588417397177386752097288282433932527265590392248294284278936988742495652462708849724502054345848996099346233759640771657515844549368483998156764843765176397366206738412943258109133348594573718875270539256701838460289450586325526418295935007814222141839180998829187779066835079509637012404982285292245455816767314058430759526952390602697714271114874512331503214253781970578452775248024746720784871144011190883334171224975840419845859015660408390214906591518716696035002282067514259540099095378867592611052872238588580307869285571578795858667644800777924752258754596089776344757819675038654969335164067721053119021992599447325913005365737242823365445705729524533079011355776420923305627699254252893343227029968089803448367010462072929346925317145602939540895163356137444764868192271009870982067926579580406135811494534647082605727381771973772398619069750528788398358154595953833865743123920158840227997456058643813655139863302612119992164769109903872816251250263075424099130935093565750297601344130971978413939658865951526805577178879391429797231832869220334257219513089342988603543081577806174610157398476493621706178020358742317214909221356390048371207989683735151317263297401426847317050919654566587382912185781980200256405758112561509067103592149292559469542075586094558130249122295710029639433755426248170648558059768268720634994694368729546399676326610454602276841558091429385131164390005885979332147912890955482562291345604339621855955555713773954580083874065636331191993240753625806712288642054706422481249620926980772051770786178395399440989572306091433002328311053554592101289232011522671899327554710750156384288927236855017110649009667563830991369397779236052832782147263591465366146075054872143306314988255143185552257699381585976204149795967719189940549553255405097675018280307217194436787403408478101207865666787909107571891167796795152575039081179908626514413771918767590887194167300279196837483705496791263428667524732222458366285687028114396429838218654774494095939526759743135270782005208481190527890978162612320452519656018014332825641703439201941578358004353250220716284681812733145592847597285027706549184493395289777393219672331116649243397950831867946402207276748112479282619746137197585894627486249051198201750598702401618698815181180496760112272377334225679977399819215109160744332536629039872699161558564145125471319061761061240833641311721571932468818657590800884413880480043964006650658895927249733766023823146343356764643494464756519773319548118832262053009120604237056668869631181567923032062023207981594515082595599559092241717810863829659108105670169550744235376614402358111238091788446120951573871245981008006908843745589129688010803849677001666212117840973973483842028802336983996752043479769291747115679525918727063814226614890580028836794470800662338675104072122125193043118865304997079222283948523941798764078308446936684176776204860245561958850914144195498649053966993091224653469723376707968986579903489876462019972499675345241812591095039645382691672593842334332840313005360084616700869188174555760896138029532919144397105487455506631974764042019776254952940135811475399714250052756963320985406047523966737021281729263899756780200096970604372162084629364679272133093296504124926969426117994035004729141754108266752036048760303564787957344839327759986688338027739241136434217756850620996163994522922935530006773357696230085104529995382603923536052914200938852773852463759596754592242749478357489788384681302289854769908018958990337382231150844411835899856354985949918770029722437105989362420020594276772629157797214984467466536373910084470172399745966820073465174316778988336298849201126206844258021954131275476286699323127522550624711445079635811984487950025392535636402413661117072559625232737337889885125638951909161600711072020024359048002112038064477694182268984252896934001474687226292000024068995553256601063799825325430661818437062172641681868214108088068991649197786938393084182784416552190341993860339776363739509536908214626107545464539801860088365162897519757328358981200729601827402318278924398675468240854601334334338951760995022842179597515423880432446850410542645793233391739518009828578341623168792756984931870750516740826751665614778310702976451903426988917472989129339217068770334481202557979902016479431831198735920449202540302234206756760385977148936423096573073695702006209793663513611127240392999342468201831343492299436195796776399726064472443479112180164525090499558228836165029249966714454145426196131979702592259912672135930516716610148758699190261994081020623488780209422243531101345126480278252151645783970506485625836723836527842049258379627193679133388667270193087641230906279593552336303891797644711591256731993261925865926736243404611104188426723882673562161677754564602034403116162727490692009851503234953386657210647677639024398259898848986203114007858468646789206745892339438499931158385762543744377536820352951043643275539982830241493981748353102942280286653819462404284774257158304578966214818057214216027088791967894441192221780228846955780088599713130919737246861006177866852627284910727158571863412908023575489637155791182682010116347364100552325946050788134788983372161363994222540722203471572705507715305630946452736281560675783315250917370689790986147204855493730069393630887787627675210566764172675476339075612533300438309302118823961779726318456510157960016911934419144784350664013501143846649693595634361578917937470109514848781917277324212817599747760521663654836503286591743639208541899700686389636320200067286758597962492061481915291164240761307952543190799362662129680188184817904624855602977395891914924603993949347395027047034418980580512865440728585130246832471637003389947813596559174333559295873115329570629332958772822790629913783455764722285488638203122107127347940515371461003276556728725629839151080952696121788824100003177288666735315495294517218906863803333917569236831969774969574485640726390406315553313076668071785771881184662437150758642724462809360041174706696132821616526681267179385644676842211030553146374931074308718430395832004597421541770468132731357716469128962956020544692377311450530355986387035014308833743651287458640646909358768325500309035299811163378633947006766886764736694385940803161045626449237186347378374887188057311973622241081720834482058891786141963869874772285682543202909849246163840086449881714277569313262654007675830944963514476257476281245283532648400121046135614829993145170539902677566281995342106889611628681945251995533850647444047880355501814203380299066751917032985742467681000004080240863932459646023644085541556956137343873248156754967978315497418535195640861173891211735316526387723034845563527415986382480116019209079968022935552817368023596789685751719728368229901843251008913022611394373630058182558223296519277780184741222726917018971691484827366034275269976978279294592004378181331857596667230882021481216511328543161786404712504478961465658609667881439965064681623001547291221257636073221088425036310309936274926253986206234063522616444318236174800640381044539008440664676960089545301766040713379391376820057708422959684150094562590976817626628907666332675296044935240238342085790627323616823982954593965535277408781386062104507720457190808953547332829481413530139188701736958125189106360000354661788611247585259888512484627992938573912627162320409397822191110372151532728810795644087119851752624828139426696216553184425520068559370061431572684621058138343451361640076769506582219042045459917992082852713642616516725207228273073999594834347809180819409861232320186538378384858122411926680030017610963760579759072956223462506000060906758173059357356055530472699962398741673342806355871363702165390602239986905732418271323090306631944472910247353216853489463665349285470472399732416586295201412110707770758500748660239377397332933416173754458905813366469346444079677148746597933788271083731899244083615159081086893439095086022982991512199730024832417429507753107424627931629908329630546527680314278073110019200507675947453880376526391806222218412531336217095476815508435127255107791526450921155830653730648915916412219267257880436500880719464281135729761885330224148368147069177557042154223483711562160303715058166798367548256471143780833963785210509495188191839121950678871853782025265212592002532857207014186350040802896387970240262066610280120928993171544682667830401606670037950879898154273394119595363297329240998189489207360351898027938892351879863917584943205356354146550438366230727756069761810821373165380140422807640141136413598814824824349671076500725354631961857292147527808807761500608659095387357972881344053203373312390290319838600970794041393645961371955386279464271193466968441397011273801638699666053122551579930185755741802250428844580915192699269218903451834112278216807932399220560946310592530328889380867228736903712254825752803632249190591890183253151097434748998947495626529135265835519062576488536485126156734027962005381484154584314505086765586941710156565512813483812184351538468603327111742527457606487675893711093203912078822627036120014420942745070486124178047230824146603590275181305440711265521712522900424770445620085272410214893942792622235491287367139923026412054842309481184785319984079708744958981141541275867363105746971221328991607215038638985033994353192383746555899157749064204023984222735345886513205332313707685685446429691841860634187705547924965717512446098035732475441452560908932050102158058370738143843809631683618308112294055365986353172354526812612865873182717628600457083057752134840523549239023865905707384559503299442163036766738587255955308217770225850946010417421745179741085958301214289268531911803311436999217034298092361413569082513666062949953716727768195998882309151556527499981860599462444408968801971323364846923800424343160797269976627768149168267200554493255035710176156195157484394208809414659531380541602111398961235031341448892236846052650431978600596054212955177590468479708499527206772273053512995262032077886400696373053214513140295284644213465986685750986397376103881408447628430910341587581656772234562614771945245737357384923393318371250229718463830826955510605166879746023542222489670342155085231839213417128676276139052378003181416959423351009067207481490947330478045955323485292195070072955398556895061922182239830321642049281121394266279187746458259085150365351450484545033507657576996459788915559548023851621569515596652673025533792464719133832945817902858943383232691648623409050673983928978968109675648174272955056084054959295210559702881629038537617854656953373400338647506077646345054420395484223150104641123477181509225081939942158402038461578918118646217406885315097064770981269395793111573485856627453388812441047388560133134548433840717267624307324470464326370395151017881589889094736532305904286155260854437992222115694929962561745692451193161492136813623022778026635723518368624577561165940828177516211257305439426814192962878267541504397045989063917859955733834082692651156983572072873443344727357323142766313834290757188538556491164779298263605258104211975747917489402446230139122088697782704230114239802657338087760422924147588002509881403170498519318345228861380665525473488701974507427002178375475880452990760864169611502965761873974237040255687356396455993519635354327700133321767090631283242903864741531965560245500573249692564235620625050007484026406049386219345445851293158880844297046273415234635344784854106952325349451811410660387665031029654173248823859639785608213195375882767205128410123377904851454389974849744873115914221387135781985729841808811528636659676554015709178745731310851275142499827612697330869572282521371455901678740408512954189938691316722582730723989821925172131283666694531601462393645688891220763543171464780104659231562423886117201857835130483768679969085897539633598099830980846718005937034425449933657620120520639373755815747291146519168554079499178606272546133401580403629738233051775257136699351553740866191679561693522056878311956353861397163470652851158356611702019160578979185690450319834296678662433855033670682191455896583529605570894102407856750865417349127338351711286031824569458385961629480384115452824973348306350905442464205782281252565179695749502927186091284804944894397814146132954315513900294635122257655204549325187653469799865881369473787086656849675304291959779883594966228364275260085014626017424066548632341547410523865473165947266415540649122403286283706419675247692673797395735865662906115264980484455595932458908915855324100299783330063791996316043476308728439463154450629550770752885307754751449500435811797361929632461609902227289715135391672520698118373782371515881336511939847950731453967089706488103983125841992928718014273200844069688186128669052916340504066123729473044009937639057505437624975376390195372125023594472568972220607309787517889538182726346766285664629009565144676175053520759670411551941735967103745576326167279595185785119563145230969149443695579971412529959942866251706034869663816629729832527625368728964399966837386416774235344393699653926317028771689661511900030525165193859043856460655811697430837632309533305477996458288225867076950674807927702267521654487135274972891626381249924906447794322022543861426145091859402361184356868046997254317079898229639705322597069655085046425794090448143553035871161088440371841140492923000720838600539400967644125579854780562404920032508545245516085132144086096836034708993331248918675594283131009875885642385895848216302656053174683203081835304896517680615922302742924197066127743212834619784509970106806075738293805463810713267737207167206616682620737234989291922861293092504203284239234745948121600629169313528386761201436665295065574555713649568159524760428507205796881199402538054103877186690140887412713972676392497874024077234624554065536134381356944635282261733571249687798816561751158566477589861128315765358246597671178334674903281336267453248320607352817773399095066747284015319166702814751477656752745663056580248410891418738525333340290326200895667940893167046502828647222642630713534314171659077473290250591315956144261052975131040328149886496817142921872838124961977100713661666802273981005063042471774360311526314259886809798155598735261602072923108962866321338876339977410701957010808970841303351115021387119163247146474959824462836872531323487938065225215364918909885238313026191970206953483576722227992715578437047090893890999446245660539654072428097341776255824880314550456468861145247473897833983444033627843164263348977860136768696308903998096627898034061301959433960791591935672058489748682720608111958506187744586431275629552791982427308316039360089758896783321848439884837373092854210425091526292282360103126154998749022130983867303131496598240801551414235418834999030498344212021463307524127070391773648971175002417563430204876332470027642412424608854350646625159859445055330121286911733248079150627584409752494584754148324055482009657560269801605090523189346346857911643168163032377019329598437594635222507318690499714422136108856459384114905360736352398281607110221611124430102753128039821977316921109622479118720039902830679352166269916665250723203926252052951610467466383747724901570221790797349676074800641362419050021033171585929397064753723389515960133114731559572694158058548429143524178390341981921021687598124351821419005990034479337129347463235442394386532164550603855991503596942574611778687548484527211920061340064241186936600159831601725533644171449033162610148725158270163158011144335388611105757978720285985499504143828316994994041468770518791971339867211765347545824804330054974136018560181028537253696902968806821180381584066232313948881870972173372180894046577585681627229906219937627091021975357197128838193426304841679021365097062168723094205374834418009350087824678178489313723977994252176897645855204053296143202954915080866666080915926713911752623116299541430386628167045554177444493023122363171397368316905418550367102662387780853626400204943512129792351703199497120024305401898418013288732559956381761557682988254911891042230841755522041443885289949170046839043398794532412346046284535063393660583863715030755169561110568042813343061728712889922519403025776295595333104219103426359470631367543556626948298837930355327979850760228743907515345854893375609756468121516893958809925626376760376114643775601447993443333980765380822193165779105421213642479118010192410371023195856568570136572668851332626661500750084245351421668795888748506683371608928283994556856800529616427762606813615356145462949321092238193623619712646583952859939803785994222029821925699928484390748135007750994839263237251681604388895029631755319395246804278457829496326757116832534024260421011722466459666711489319234166140333505250752797330029023201464196507358860569335679635707523459057629695392651413448747716044923308401299391835857188809043095109158683191778353776448458834132985971444226750287687341567018878660562982740173294246688385108192799743161610102908519178240458752791426039714786384035911515269239469210869248606868623196729994525485095160693642050635514546204621244731667911214754913659536897923485173336650428090904092546140402984407753878842692035101941875416471720902910430565568338019603845632230400058292370288135118786689707347925369381796651234745190496207332289133110621480198592381219792439189758835234505119897478865016318080359430352407574430140081556638067522685608539290473817900525598770467831243433381995695355221610992575163723950290336393637428576307995855793679913997003579026714161547160657023990058882792070275990060633343493987401061937311690722317528031975917216079795794617402956449252149588584723177542668687774386440374857309687346973338085870340666052726314670117085177336098790615441680633384677929238123352349157240631014595872679008291091643588783459517075524398124738760379747201032343283162242143092960008033804263327439641154795326910132776396232021980155125426192472399560013631179128591973407419474915052503710703221850816281741055319601471952539387274733988449070389048271935033531141796829050884906863132085111493687037672062964466690057280944788851053014960364567431660496947993019138180490401815255178420537564481618624926558336428520655632010446136237469866083974595231863371031001392666432210725539133546086882788555368408405111104708955868223685033743497705520288833923366624243759743496641975849107365880514205673526169771233192181913004535531373088303803015565664254211409947339672236336990582382160022996838652430789590125123534284528664958978099079896425040458583407222723227786711225582123156022839047042367062231668330785006765914894535837950096665018927509173099111614291057637493171868877689153694446165702169018121436847240777329479026232535524900353559961292023716857696592112649463635470324779672582352036068368531848910410358398348709857610219857175286141957708218730248765869504873263235533424731295069622216262683358544238781103645685189851738303384421437564168645496887194292923379281494611516042055070915068975979268322137111776309540463617509179026008649010742686708149588373692006893917303062199840067611675119503056956755515393760495750076702167814122159193901814417107523201447740673167551766517243619531631834213744242019055343306998747282162348030368785739490625824979176703043079791880777642667551378246672506488712486297192595932383438906904456334204322886631999866307621583783757038036720982371127811445464946675062779189599520819273493576993973994052139851372505051167567620549039567088258186386134480268059324091782209071728270614224066325608445649127149843072754017062500830641931326057724305029008816883497164994394900082358675679136740502201607648565582866438932772203518236790642832144310693317502708160259857821884371337274504520387928835682659505621276897672820293970896780794073710533587505083185561124911451500333846270582336021192173596028711393795369956422912774953095528876445549686095459900427481153351073101213882888206517793040860668928484817289415555857320574649333908033445268953484890630537676281563741284115937501775852575130006888809229683904678626820960142221377885678254286996074608989336810242552125271885065879728759062539051403311659992930342955020452749112828837762305027409002516469801934593222431713959124382266756653791536514502715620788747193744332389133062844849841494165259074126472957595831708157997976332703837728005364856153271828580116264024627099373352555688739003065285852706729064864336769256590713952375139725300442006536212802586440078923763661205854054404560345779851162876202847482476482886959925252415624135623647673085733329594483264554964589264329840620625208646701741175386916708484800783466325909712900758288857857292362902304240605996414611499525155070725528712710435254420596575540382442842017016156481121146180901830268969349073618323816494892432477152999217707688625543633197702641016435154703393560670334908084928588349637791071819843834713591975410825095285604730208065637016078828179897343369187198756116139986265497226202271273782393081461310051666090748788766981219937915863814016300491619797523527932736333770053479154642578951693838583086835766932097028963259625751459986530904001602835583629962294729712012447171994108392199767369024523566578599664437278599046425826828065830864650702174420813899256081769648746035738776084901538175273512069215272315663539546990267325908560280752721224189901896608893164104625592295380391195984388867192783769174248868553414222644389149290676660413717850701264481655528009274936169931684871129942013132748161616705333099761958652170145555259844814568351032504970431497025769729006368440768568662705619655946672714087375728150416024148973680365458448812502316321986123627946455834062038316632074460197069609906504529772833069096298657285526745467478548040670583535087937665950570858464227415041454141559013003892952392373980425690050071844362787380241096708435735150262076173182460822167033853818629289728630175089552942643322239263650292812388770465956233139201959828979057872647104080872722733625427377239094015428102794829206279966079964135607787955238392386467551045490970254657227842582565127924771198460299960171064094926176746140735807543609497033638904522717676381755525063869229251422752364060957886214361607666764038765896371621248624732573845864780095923487401658688094132856533202300082087559389890068103243915963134214030040431370912273312439518309881814487064136022906511999307236577638104235865605594168659467971052781069002068556068938798594659982263440928158214140028310147529581599857279889856880349987487324231631561899674396641637204618479939824966644888062210942069483828584215932572546984638740745652203511962479297989650661469605275434061532075139002495552307910821713594351847757624621977012847182364020422188201507925770686504732137542804760960239358199285902972608034673010598091351912586915708323310799834333568820299485671097811017816752221750887830675934195589584630223068820987660947292135599462224386864265719896116091531291357468281614926613598208039569869693736171807686733976455921960826152479629749471147933049252261924819562340267341397226453095819914132510677108682009410520764241255841273209774817225621488166467598061318869364564106572369314549434131981571210248925841505473065583118336337661338469365083390631892549765547423067575907485369114995227268132551691693476952893748083003052432723459974561536625656122771975204892658747502985822358069403544889345706288439956801878446559180675980455735693565278751645924632485520838702996147403337524054534417969087246117650266063575609813871231858941725450136351053335201140495699322897447518262828734907235985790480640351163457470930906969434792990145444914106977087187235570654818391834752742983266555478207643715653245335092728520451304668648712016397472704592044341393917511190249704737086532810166354974245112312071747231847825102210706140796119099534581686460246038842018477741606838570468668871139032459528731231897956286527251133977216740719817122666123797079676998618274572864778004503982961174218125395791440597486483052591360498449648695030557054606594405320895262574115077604292364603030326596676936426705475083833980431771224319911430340517412834381625262124749651623007020455863738234653634538634980613611500408423082297368199690274483241006783552785376327504084847585971453628481595624995901496335050412376683429591891854597533229709372290105615698384734810068569563642868397821302109110627052406277501989137608118718671065900034424272346988313685860256965466995232218330466151883406784820194576080782612637126653431642794793618837176694559263901339634411936559675354944365463453491285502292751755459823037766900213056566844312554401017210765392554162730881401944758521802598535805174171272954217110847790148054025847624182959939213852193360431067963525855843430039139941435912833026586002349214231842296526331154031322576628772058596579179039907442346676436793376074671972215366449605913487058426511878366266530201529739064724314775197294038983490722769378356398706871609327424611144120411093044184345242669087868850673082161459049834512303719000496600196500812160716136005150161702168755678485589201639986621377523193717728884002866755065774034865217527866934622390622892333820020418188952637142871893670476337143319145966825419350903746281332352582022751471839745018797557991123877102763690916258822024155785230252665256115873760471291738946432965650752411309458842740941716504689317547433908013377375359722568924073793779899692287234328758598007184330345628943802390650869569361799426554780048646144801062692140733456183303132469386192128162340727720187209323844158043534218990528585775835739914313666164630083056738038690995814020996488485165118085129260133977461365169800119300647898757896789561179487212564092596285314066381213063539276258042717864358847942416769749283398132799439886876049362629884795754488093142589283106499944315392041986931259000778471786679413404984519810120088780164788282537964580045026551248095956054420700383012439294268005426382716954352574082811925361259776793467272250144305010434352528232819021804283692027288573465437700598279115050860530393275744153277204901296732954228017866736371772818407382005677361501059929397064419939501072612476424196235397323820637844475037876882292649390386210303347049597088234714450880646384846513529052483620344862400340264318008751728882411163780786178456281385078543452988208549440158974308373885853410896519415678935368313773287745355312450575581882285485232060294590904714659647877554379599811493133744118909803572426399801877001849156199346020359634195553056158499596188993542105132372209587461733990779822943474413855087748647114439519910064234337419631597977236776718828239153829491922095848615425574294073582297641008246109678020525770310463010252871213769980431610457737351967969201840060293936549196789525551286407668907236510451855034846269845504807800161246335320945941477409802793630981737280467544626400109755145225447820535286389514425476849719472784176207091475287955666811415040511676396061509411127776250326116434564524497329956962004737904685429754613418440543160027207395098264712316987233566527831606615543902621052295262107774622010135806859021160143937289839215609074447958563899598076733770490431774548512711921514075842505705054398735215683113480120576992659130726325526202596897447266934804594283398177857363194436396039477840109926930291114087553279809250306718730102119435289479751215077758945592491522165522984992199269651415882761538314723287780937348380727064976834402698437826713413612821212617371695481011876064897486292935399202098827573763215990707504617220031827127441238316654665444690136426389482466870161620682918928903133041725047749562050793517827868939506292183226684724736415214368158886389315563432373628196935622246561997115071951662460869410205216163457122038710745542474038790622038094510137595137991503897337769454106189218158870189299061734090864952873927317985711770002605932148244345832733006625048912748003995886901909470586411650462758446021898151932922271076402477812188528378615842931015259184033044676794393134448731015039786249826526239438920417301915218454009791326988505498867069450453663370556588738812387809884168367233942078446480408014451149046987788601957719805276975357220041078878323871792475597694721095393542652660038054439536749562600557500877501844578997373613459095853915738734836200235631208833442495517387093619675496178865574150221775243922954497374886051196023777646473712666480422148426058480431313493600523943002469239281972163104872749077004785193627967968821114067284751966004892173460288798087652943496657402159279488223556491306187269676555275130101255120641583212054450925845885146890516240687614821989386970686375453124449088690444466472550767711462098842975994887874948942949845759558130093369830077620315475160174523926283240181057359141470374838881129438785238813087600240862353111585456301132510925605508504881438278304387549868946089683701798875212097760876289166299838616340781890417938997167806361580830311999973364818000482507710926562925972632404542252016163857298477845460978202131887439035345352360736188899083877890450993949041986213795040217320051631400138088545766553754604813688750713901799112112408649851740282725563583581537184398993199795894250596780105674091633266868700609591561334725991065069036930606865514965942938850379505539320625641586532607062119977057199111470419007222161511049608702226719479495133178284090949536468708478987570498983729512061860920858441282674368605447031729217855959994790804406389708133288754283922881847087606671148255939025195571782031501761910671424604374392137404200030589783265640628341438403151841131005308040303158022069215386727714981286777133746096134382652561890302465435064912329233131764600721523861232290202034452475707853228412835730901398538621099113785217680677957685706507905057295505585429526945063449135628151831200355814460679019275342830623193511722523552914244937267638229405070727750457353227974771420521822773997867291238913720871219969351188195972627865787435099476965512471270293226776936134071750344810733463749048846536078519650428296268834791955346526125974361183390798533551380247517993837558000268568602116566710807300691416829999958797850845565247678119405147274489181087111497932350251065227943815049156541463580465810949480498546811028625474063336866245428403523985781327397515048372475587291146105492205284797463796326314128861712332760720696921787330128063545274583655756177565063263525019447569037078405489833266447352686679522465914606710327499053159551304426374118320181373070459442209785026852042088237481419346178320865502092409774664433969966867730644687967227902380332585393682728454239330725718056295618773484505692382068946114007370601111355603727953645954277896441605139008900115513219340058798454973541671460205940710397484644028576027877845155354618653982020299942928373605803841375220573974164275921263550218774498306940340731324460582553091766152154085568803702155997824904164948658534779274031566660490752575326613555010011426010644085732405051761134193591859377795282895951585981279623826199627523146303713711708438059555081148330392166123573526207676950317555036459716641187291758193687751791871767341344161888950530772094401158507467760512553296543193907215275991641774422683674936402172306498638403146304602686288623230603849137951867850878775835423462758398926953824310196386645956153766046775325955919372846262896462453574309332172009896170003985717436452637335575726168498042568011246858518959903761884112221986001559468067034177813245906296704985269544921291204731772895823723740531091202712629272988150628265266621386918856600202729377821986348573880280883701110497649203686776154952139458328939778076827697708552691456427048159340119409355160330948103666810038468781330318967688775655497052859400656087968861514438529247353539939321802716147553709346907392005875876064753244490149166296733026663524236156198466277244352859209080774105563595197064025667127346730094008557914599206652965425813767400730379999355350328532864505453823648782871770770492774795290301068388358593404627845304842603557730453160848246392271882704312392853750752600132815992677058718377182324705823697507748723756167638663577850095371750665813672478497387102752264174227513418367169730787054320511957218284131642838778841143008367479753557314448543406586034492629013890119076863683275686695891082317608453084213281414093299562302417359477018165558566716149583330662597159354731840625282350848701044537278054177643901553718512130733909783578744853475495578452016754289402669961801939679615913296045489995296044874172326419504162918290230585407360434091052434262780360112844163536989158691930636671369084953875136333120984500388483716521736175826018354922614977523030056451326584878719029027810581898015008652945020519433040221765113010788320037941241378751572749113148244758110078593238095522936338411866866361842743885435994199412611237700530205549864562855471942530973790251969574861696043877034750608915663939423216650653236541911337444903573508743981049708359964341909969925761628388665877593082575098274724783120092857061178003684712478932552733801383414655623216341785774263597484087604810305893043561341459506555838092478626718175074102520936751619197207660156730854971720497249440189584081787827880375275850000141195722372358828485115639160618146302499086452347885107325048480996236386817728683189581015219775080246066599389097239483393578409693408700142313388997093224636372845287255909611478652710942709971274958514458430942722555236548950233379939806613583635646151521696600416550711574736330234723729467360725012971159421052613845822587985439367669784916098966583139808792094580380285542404131059929154026207403927201270326928124808036058686477745542412720249351049148308004061211739441824885399304755287691547085836625532454776594565214536446303276556805144981536273665047448716937615775305272263980850541115539102420431464608245078507239106126884296942292390511407270579507560698536523456419878159804058096780913485094299904786520199483304371401073056921798285024666435497545462994549439084743735823169536000709865787414818413923935892881809489982180886843653659682999806917771544188646906923991657490897905839295154896157888780732890258679482931698879784966405308570956316133225446900097917143422751533908296473385331264577641507274067017987790267140168853943420078961083387823887879472544131828968257914980908436272977585062771380197455554525451927093995989697235953198276090498908157731133728014805079887541898652607626899354064710816254605888298999064511427821488849466348779651860428855793579552741304728537530024713995946218624419136855558955268146252068893112062635398559777052868298856701617203825261417970163447617613527306925279081708122953847787276374380230246607442386658309477661826297993509010736961855771425836713921383219201866815327147423849370226276522277184701283137560714759775946860090924500171262360961865240879936498998568488640897983412687320093667571042778059629536351616395981310760321577481738611927692832647304462552740711869585551309472271105013967121108596784323812112010395179021626507660520797879326432980188463207735178406584213277906727628396394356290177249141723973137271931567880117292352741346468747404182151449136811003942795066489350345231921582232260942555194046740116409821407752741177634254320162142538959349358344423767084393402016449769361687253194798119191301495531698497323710625673909111442366128644242734420734364340892229860352446662936383145190148728989647804830344431717857028866829477926207757471597365093525425298206520367962810223280445955904060790712715375075974773791007759152425429599947986317696895340469286168870567955643679349028101218805203602889103891813667875002255788810717097048608623200169261423952498440047040370504924923944274916370103158662528065942470849537185737495779464245170178925223670373789309058957315190237116631468595319638866912130535616590373681742351404493287587498694437049727496938650270605428747194244913045312915322841071134564200318918097399592756446790440981557908167266789122253235017374004379809844202506079358187676394225997968118576298152105018466692039893442908590447349851981845809000077138638024012659876563351796209836308813894322487174444722784708923353920120344449801950654576126931773905037097605190892539153839815186944320049170820425577473696941096362058495636881576585392278788859440287156643564829752469685243952368650329311945321784914117956595803263500417450673192263791540174326605666397871725688672794521614235794731884080670261012308210577474560011931787916644427082326888450153257379904342314010392917276568588690469468845823950504716829582274676060178130700703057062857939422487756070847319807377067985965413268640756848964351925715178713503609941640593708727179514490152500577689963849876725802687211791559738961629026687817729748622129940770439861326944332905334797424646783492557732109362214993274073490880999582709789566733640720779279363125029279658157501577010487562263853533902637196916403360032076076146655533334187991245460367653358341600066254322218644893825085624289651384036438694069661634409022692834574369803838217778951433476351053220671497669869194668647585077121738113673343940394080188166748330624708502125634058469833923977716390106505134151016586048272380521129341134025465545200237241203294851900307632873867137822840551761634227169626722107252808170183414761728624801578738262276934145750298424078849170276128402203167812168538059426054233231658880294051281888617433613194426661444438982792340740509123820596196526901547945195567640948667667684371882618272232250290218861441587601331774448938924711720777046372991017542367694137865622516941455835111949773147603654509961368340096903876720298366541631540203095441483991871506465643160630028121242762415444061823037385987979313615055986763008756235068313781383695330232665309186496384855599383385579744273359314505788411575375755355509133972980268066878095037246493468563779531797642837824007410951324734546217946225346647556863222531365629821200244783746109403301087515071519809395135171816370279676753702506733235180655334076865793081053451274959696573826630317701677681654910739726542591080203650639612806304225894836152875438869793454667153996459748217529129698714855326111386107650436686004505500080386746490001565212888772545543800257712628302098271212959584476875909077113749645252647144711847484022334346544668086332942264838351050408007584566590123183709942700500830396619072657104796366681938101616470518381367060778541106618833347205408076850121106654387259127807185976222648090036274182942111988596951820726807423260278272412023115259705606091160197847081472028569087936667471972466209967428149032858546288123267337212425956424045388929413462953221317074458272160344051577029629907025565537821781346941922404193338734866390959153582480116288761221487544841666873610627272827025634670918860653709684509544459104102267834198842121503816603837720715644091413067185534948815246520886103501180360894435735017671268871132903689277735563822020437414647196697514405102940824123520447305759366434924126742203930972112426175992655749279938527707481849083454545504465773348828436928562719332285801509302867195087507983988860991053510429406796000481266784636474136000942517117310674156394030234755458548500263381696057018724396670576944540246882797609783443804609107900387696602019742811724167757608204725947141094674354273845952610133403518784836639345082852045092029202151482262831719495995186983923765111975886967312065265467440379277403571301408375034364806936988144596497725947859771658339925195219683025806095731526203035810808875666984897052624296048863002841092613271580166501616865630263079352117797774580246797391870309228267272283241812716793176057095163959468185379965865550846815228918373623154620861288715377581469939585486270739143498688065977605032095287958974547876969473437526644069966403744318533955638573005593657632440923812239456426505426937762158912656616249005549857216708300555258530558499900915758118756886538777064665857167117057957547315140365673716456791519619613441293899561158198409649147986701552133933138238263145701647490266036201044762549919043495671905799455624824677069655909835973686490146995918292186270891722221206996016597385702307222426223861916339903797827309914373009246979100440574515897326719800591704336257114758344641227899821109416455889940966113009790383300456419735161011641012266054308006037672696550516368990135060323786785203392647030156421158944389383023526657598281818409724319548844750334634411938189531198837379785586589545783253800904113313563839462572242141836396784116522652193542174065440100895521167915153981727504602240837827528053428549279113370299253029256836021408525064088261557571881004301082763946735273446291435602760318801104547186907972786616536514459424147839619305846699191765800847416077066057808202394325700475608224408950622095304896282084695026316711260937290594193157647892335192815612322480581106640439575243838537628414627377601609726855545565027304362457154304413790406514831884759461243207961563568656206733585218657191493088134703334168968607101318768885813014717363015384796813856202224114126924553303533708467057176049458988080429586696372788402867183696243775836541533806095994425092331931887785539989254697099301066448943565526789729100741138100660695609391099193905825604442526791916085127150308198256669708829733974356813638869208874850158058268240099201236063704218912773491246877279323568909546129820389358327746957884093278351752473811353348672177160675267197862494801265314807499417315005184141717697695531877812236096513354868226926273482722611951307050304173523712257872211346136186037814993959344082149144761755075454679629584403213652573622029462795587824930443040460532067386190717026007358772197608882771529250649377601478325716944624462196668945172515140113374676048249242862731886162550036042516502468085743507324602095670267950765827601929674582871335963984788411384573987685797536329920661347920657030429524656386475076577083210722467230100151442697291746297292026422125308689047781271179062914933679717826860781795353662336847202738000306209592972871810574276116076286427299504782608500784881115953564055665907146432769944120889467301190582647128249893872452531878762468505404783119815288142293193119531323244112621348206255714750160758039390122492634754760599066644225113527765122522995336298399369392404598386752790024852427560247480769476672257548935010406549972542810606644966684622176314888067950641897151374858034340798185055843980044142513283112391343737547670382782505480716146636920336406274220486619547536257532321129604911795639339406413100421614795348836585956458949187847604944956068522711690011953384700591730920400364605243133116816394997459825800134965831890533124521264059297509872798244454618347168065960658687337960724684065586761050029718186285181539788202398747241887810030978576385060961045876560323739939369282800715126132807486290752838322122176444181401267264475707708921067652672301110642309952374781099735756385266629548917672216731185323466841786554935509800679876373665725962240883694181010540702517167266645916663388489624786585878742215341038251845251689161319876931275571691146250101968921586498613667754661516154241438799814754933535969241304202409653487882096055821108326623164463660614278123780431971638760883141405961077228451782350505289469279584075200708191719493776125924500756028026918034446123948959759656481358564246214787747718593922443794655185815001826896787397030983349712449818207764021903799842256904672383012372665392430897885414158313920644543009648472351336902133199201363720034415277148274804046696963867736344295656292844795314974580290886575585998998497898791277987509378705089935804260812803525579978040584462115140416058976355487449366506200549379520270467680687750595514960854915421772557980268222872100114664370085633260118854903995639935953172917520231673783192647996260851773486866770635600242691076497663321034986699324468159518283464953449386086206826673167275717076717105821883500465293987776736271419832894954851525896420880857195811036272084089138906531604608463747664705636837240426820364304670647528266617976759176730280806673122292788747270031911341489324664668499901415118053549940082041450355493162392323774260033473526715305259937981834047750694462427459444691332180017880647851637395472368960928947225360910478473201169643963440603678756019956337338083018266325158158598469039326835858953538733140597644044357897363018619707907646300579561303492287364842671821628178286869618346554965861634512303871650057241426476897366812932834046397272553497668046370189392912391002626103848927479676404923756670267894463916380137901795579776790368723515434308231469622199800725675424512952958897333083526707871874160153003995495658205857558090034067893299225739083503831413640336114404480220624882721334051913510322387672907820981378413565351646635338333045513891349174630714674107134227863420215132188989404078248736279652217089977524372488679899409873813452965460668194659550656649792849986966407107479904897178638547457044829142345246074708232251833640269589433813303074655432130119326421112989391619731548856676813947759210780550554012031827965217353875783585475497965380026838650415050786529707238123380185558552946269208684959147089403991284120013798532976839857187219699123736939856153734120172073267237743821384568564442229787582642224847027199882325459568370652551861287995585773528974173143816898801724640245382379736754651190804051255515696882091773991628967560744074730023638864092738008238378204988967005065601184294988160023048786035652901226835811480582745179545527993806320819207287511584770287036667526522866079435488063175080308387782145389428608012970603070231726104923221202810532692292853221295411913953053931908625529979155634134807573813744205827998727016788180059683364107453079041889641307611502018513255125588192280002151470776405202124640536148140359256344971596310360428213893414493448041268941366428235240608212793101179861701685604104611508390892881445321173817617007026479698162674439987154478213934986826625550951539155681234113849843171625830528673578393997147963778937259333804659714322560082206321331839520253159297450626307018134387551195520107142642043641140707534283827993696019528235320481493038761285929081919188649137065213461186816616068539824927139522001408904126968984387235100969609879685008391271910053112459047423044288506632385296250384068770033154313294714373332185518024146585851247969072146943692305132207311099928556815455533929988669857657907692719871318651369748682588629790647176398691869391550519990834537612111128283326302226491748342719169010061290999369161148913450888959808922096184468271844998209083849906222978297045587040652741912751445294864765663630114676370017339906912123398943688508475699570406396562370819424998278680562521695478023976181397925454836714156388958078340425952605006571260365934441372740481079841034285305007194119492904160161524650766121375287721405750761187811520566717584341282296192527343030056427187459904500513814197183869014819850805342945103952443114636492927961409981780262867114998793688266216873034734617368082539031448516895125048199143256153837909174054764110707622324990794809201038624500274025251761244598558434456517387317742066064738291277933591383471397796987518280994592371744693441943021001893847797062827975913184369853720778256097472988524555548266353400703531794445098472806020205499804756767629726244589416598660495494549968153628180442561379048674719249335367812583222006468177425510710184558346693042305663573454312326197955956277309136125619856299419705504461562102890681873327782753354754968318328607571325848718246619419217109532128485305230256899237388067135418719739284628982788039088922728655291391934703053349643069992467707677045745800511560731656204857610986537309746241982233277597568738160761155002270097738560353666500106971454897326399979938188338775624927179344696536086556299441917847300436404734499538896918666802088283732425661806930243886040479342191637043327245060731058571110153359899973785579160743462351766002838816873649777138038330883847120637980962941955689260750871078100373203029986677334363345783965369576411914376061022995798421104068745656955549885108623842612031050770126852369496337351934003177447738295422394087997348004820615575356874744762105982408806773663381852736835748024414112828263979558297599307979325585180318117796539284804176411238575466547356671049037010452297133562305339526590789295023046961091468187128002299713532114484282420868821639835301188704205672315844715336825183681832601113615466991121490127199574647068733806144436796464971963065423841124990432211356361219676870355831740829437344028644998735678314749226101849007846624608459220256950130124251678992724863789853492828450345348445111530540765502386611567838218973625339206217942717157518727779685589533407947472298788758008853217021494216765040441489968201037587292488663405071097445241201998147036086720769223920747055115672773889204870900935316459584561769179828303400336777977193477461128850668799353468125039148404110422374979284267367176301767581566001269713692543775925001248055901086727306292526155407331805382575438318225534456581176382894561675444917485751355598091551401428775243597349502376853411066494559236412706420813181893975053149065814527336761421276969305328338015586262241675918900779833332597975049063283913641201265405880449271880296976756564218439819670543699736263837700053018835845949022559891202645365591504048151406277959555030080324075831995147197624532786703168921704838142434048407370900523586601501130145253635175071900685622104351753951924169517236708014753956188651059591881252864077297069627134186850433558960493606958632534111646137843618175638814944141206479214598507821101486464554826185980930368834809872691811286408241174370401931507776400581673077494323649956357975186675810734588833044305065829387528025357170122113240213516248755608394471116282254209147763701001352584058991701920276375210952230455757815275642952746125142936032109148089076484801446270673854559536051639659964248581377632928494501699568845351122369646380287658869979966795283351912048083411327771339955354974563308749550227236847314531856571971461899583938883758695304074839789567732603321470845114499947095828285040801030082730717262491010686279843085459374285813954750263999175192597349277059762138487133333558841596187768308591230519687144446077972852799646217134901414576432573036307582705322419963746271591702065997424369747877188445852101709590067814333395513065518895623218972257514854498350654013661342319838537053933567471696696917664671218100104904753373320733994145065152257377080948402294106765570095652023491052189136593144664781055701181164860990036088382786907244902594536084825871764084629839660633890807608790375229756218647220305550764332059579561420048160518091189253521911374588460800635077234847634096519011536404704009124996915213805610205792758172957942553378033246745211243683976593772759475345791560066341050745999410994715364260587589753129531206365963993996650085688839696520286729360472401186308646772446017252867960141219815405047557126141701109048424733516044281843239028139510492226671668201372605711367891864973845413058963149971395635066480674670918182913476577239252523280135529712487472215074576570300289370364290760706860008183793716998805289602334330611051237139666165024501312774487447649841782954879727464013434168573864070210349692394839271953377679947760057951434911491078029876081977508516107880586410576169882198594883887535057129009902111998844860055359942832045210970401163975214235584696492865650880204687093659963055608304937640044150032429432281695368066518135972094331031849052834400378541916622349769065063997823286400400717241944832240855452044170372004502651222859736524025808493743887727911652422470140220059251467858054330897062790201874765798533762469634757521848163108953136426867713217164967878681288823204898037679493550867098048153431649712812806656179216731932473185925522317973087048128050834257770339886391988475962429648987610879187935710333580063349523605222291577461838520205355215037019748166808301525825360012569822152984300994121471318468759371553115882067593559793208468921768342248328694696555245724063916508268848896659299089722123269473400411016230642804742177910186479045800133320049832908953631014540827574782284391184629046005884635650700899323378438057952283797986827580774366161942170041681046739328188215778084273638700512050827782873690382811232255579676643959241498256314551958537161365040987261982025688519687703768351355428775194428664008789732215755952778020418779058956825569266705818880908814949910754719471654079033503992620236193226726234155433422577557086807449437072898131912695765753940872938128245996716336700898332866084153109861360152456418748313780165490468511677042390732295736846678750514995780210511543574706841905975924147706655822486787636305149530966202572670587725459063599313002127926093919519806207911082537447796041188788052485863843048188899838251741895114184027608458638306470120136178825491016549336324311207053944177166194041131086875290263522008751445094640733248517694793535703332685450719974944135243976016918805506861468711947929932985230215351788048342757965189785387190119044867138177609238957672904694332918983424383215156428999297865995696220692716450586192812056142282848994411302946769175015550169109090214714612821374523403307361047405189159930062439487667492174386485013731951768124259287616881258706295629707688911126258702350091200526082486048984639742768994407910772183909734250449346099741273299691835057929840832872232250934650164137080569612297958909724441557778477083229602893799034121129771479708246255842731200273621451358285034805721692630367970895063104532800051623905484735414591659704045577531155922258056409513633905896811741792861664066616620692614342151651172623048077842202294427136142001445489017913833790342765049199459485204008785870134362618160673195140911779796413673535193462602821081634450397924215188595292419035965473045175159196218005629882553322230627816202813357496520658537847395917600764897025479426498557241215919884254742037905183417157614150330280725492646704480905996006825033086858590878203700886222737333774236513725870037381665495159295475861487479280616378046078673940821258964623275692945449644033347450325251253273116922383534318146647373106736419246006108656492660751871559901890934797441264065670574467563432100741664899259725635550252774842264216017833962820679708462310086123681136053890697652778956447855973164307812899953171362615482198856120959507972111289872388190447849722802174159454564642699168266938666407365130025709236372096586541320006031229640689429266423212710049042923383685119303722589265653027440612463963175620108405187836448291654509893615508756868775854446126234032173238956230161920400486088719047681899855697627903459838321968705534066679603191821961095733192258551859698105576208806947706728080704430863564162317070684162744030106693692782777245203772465628361022110200841419195185864133230737456653808994698092251936243320353091093073682898746888114253567722694842055036746737660101223738691247098834099390172253322808453335403264336975421460948752052585989238963331617156898391915103823409452389895617533085297625403921291940709777059430824022828493107682456723726550448429625311587706941274786012485072549487975552218653084073243569063449779090418687187393005475666513321548053810364363858531236032009765950066014845544860195923300759716824683129294981216991063302611058188539844836252429855028600177605190067260208738898484319670515333350024209740980726407538469017529191639855611545982499580142773486476518593769514055695491748505114858818932218912692197250699015409242463886447499132043531536525599803863541213979509880652526799566411576507110894912393365804045598030520256031864191571892442702249722477147429950431927608601302368353512941918364059868310063063129378032512832809983858837503480555706950233757062852807410234944788888985417028255653664771204740722859544167114516817883538828521311439262477633240054459823658637928285541513066056149807609287712454810902299293900503330549671666111314859509746844638436131607019610532298972862891435532437519027537968359412040549551679047227185507016332979371618733476907277959505818043218958627656722995868120464760481957317266979584760555291196436974735727410128805386699012707110454794191350153154831004581938825335854468518521658886462210931999066954746454840984625894471402013174618730402545281681466761323829531145005117608651670411224001559522486759120157568290827582587114231694803254126138135498446525611055951762855025234019443460375629597351186257873486261246454336925850704132100180781073616343822860587692719784860680839473456194126204824294383572638719350515839817629661145623168922396091052425953838386052168951048395586459536789938478775907997004412271096440865834759918165745111018891668951946532137987353113972535962271474421166864905026568630679784069145652939403692016868659660087892095595857754963750938442000927134787806529363541960966763580302711181379412448649379144761807059686821331884732920039247043028435137838995227235124790353814234190827665089443464153822268944814041627233124081779403046831422987564466830654594805797667485152166401029157084430395120844836639045794640940428542467885137183335637392426783541801102693232994519263689840171321474829675652107996633268979300388050917744272493766658214809294169983083088268802156899609003801389410344758764762216477402739569537953162662977137661613608311456724312103142785432984282776690759152242620660211424797110871892467313463073678752206580693137480834679283234444611824395137609808152602164540916731802555221680245900537782073408968535941764094042402337453837311719849851394273845918234041679441811541476146139779152575293004353766721723913087540480594835232829022052148301706587693377114760840123500226899684757672424825842011309595601726955516402647317554335379187007576771086128051466972460091044105420826203090507912686338141801003294838972429265600655011713495942955994231729070711076595669518205732406706027804505220565819288158101344757352528112063992796597666961346167724350184475846835321300538715332924039424159890270262302225722775850856286159185293011310035567614678881973426043803789295940599021570824993019700067520767421108291307557964263489968482809950279572464776662555891532428368593523998492174081950187864281089496974210970756805139665475909439646483560785129473680542860140729001829729179790986354612720552288263197975244886790988400183520897784933491376129648250092080616457634448713992034750263288653422643781889925123531766645758621796448523536706232654231521095711110256565980411745328750751451882122967215136106198141742331853175096527231650384485007339467775167333289964013873096403457724581596496548892487876694778394776895336774489576205784056852744141440832801813938070403391365629765330416402794628693380315903783824811767390553211759151968557031179140525788637210748261887487926819837227433567007227312514953712057755199514028643303546991481762188456568138449152227778204571479454793194486744026010498874242638268551486880182139992584717468346624506166279545315719917527203408859403787833293505584772698079967186947940822316747695233156035409328446093741039303435675041061939602899135404620833910824124791649322602550163334641038201911001939287916176259928531596877866321794754637658914228623733247372227995418985001869263212289438955071790415634233628047615818389251207484544583855482160661272273344592696516013282727545204152755395681350521561675564256950551859271218470734188961216996900056645266829031245667192348977611265638276404091126794493368135720072593453585494538892247243711895466256771812520823887855957108180939063744789633629229262529149183272729669677040546073804535390537102907682337010686510575542718009285685509593084049941005287008001130984293103784594393992374849118614802367149897756423378512166331294719733170730502358285238235934803509390948597518024634799766286333528442930903027819858928309747497685941972137762397075540321143656016350602836869878850688205231179643603921714582829815072687102861472809111458574707637763891552663204768575128870012838144054226995049929356994355607663393414679916204759659548009219018182046910708445516438089391183962406580493190613241028566695906399639134345751186804425132623027030508344490981986512365627638801125906014849376627464067038852628450604268139369416433039766530633878985279140703005830234519331719261230957209461474467211492561344962545291255276492173449553154938065680832302712670831089162467111004506340528064984501401608059648195904541978578570299131577956364664709007317875929433396477950698520155211706745285852163235486459218557634885292019777972331389761631975594116097282604129100133380237533293197787403631626246197991041777592709037908861545513246801336279414046401803747399000007716081083718620731448845436451470127206678403668070104583158034005508635579958167281891743207301033861148613765872312348012626464555090984320459553839188367657075658392976157809289103578034020909471854169014529661817422310634580333965229869925017173997066147150816462408414926768292976434139115559552183459767820439913058818875624134225734395812457963200893784509525882836011963543651363534285449089394258091844877047450496312349276350881143382680863947742678540524968243206233491198903602956786383383529465233755084679422358562413211542545999697232454210627893495242998375029114792176526348978388013452110351887926648328201205508112987223975169810967995570364193964972354167671389069195463194103767844692481526272642596991834971904457957500219902494998704812547403425504714548258400660352564313465671528821771869922918110910674101347492648966326775766635302167710585829445361337127687810236503232312204187882168635122318957798984945995138251287300386557149395655240761862707905358278494265920086505524747296052961902914522544799508907048217647264573929763692176725176356097746444852084407268697868421512656573807150837691158900065125420315460148897686946667009170682696725799170611236133833708992669139897842879386943723712244320320464376753718485528682328724514763531614602355554634765188232117380314585588281194100891037039751367059874276375241727615270382718157666537601115370834402027063538619379245522215288651215571739505351754805702149374543362708124608796913432098655862745499843289965647448397411726641825392025806200078484615293631109435695748744817262817380987058847596087068929089527365592842005373127152032977730268458018791889599028494407895521581653353392688714698537107668147785639032190381814824478538447771108084759186571400780515410367360325220051288782208704457676993479763980827547990415092021828447613973938417105134957131342323585056772590600270007484711192282699766988889668865283974804349263076139234290350549022147813313331970754055785660807805971071405574688413422806289407016240633889423356490158169472033930538953228663058895351031567697823845161830820295047131769871745428547471971774965203362692926232210458352960332469615546710210968146484911228926971444408694221349813711168425983446153997404510680319589538439518881875940310295380993978462972253189475696901180945403930438775716967850387858916588925554285202882183455563324489208885879267500610901968506641903363384113726906005171303486442162916116338134403707716510477793647384946796735396727380169008475715596480467220993516285902913095658858957085004635480783474282111042293984628261388683056314960630711779907656834122220252224040205661183753846491400738529865898473312210563453477930334879587347629060102654467329340437061237421260597358450021346357565481147022275970032292767900690679567215207658069029327125270332252537876025191869516235763555152147423797966947343992532975632104553919833553941058407922186379599178923665694029382382241299009353363141732970362664800589733154965023402615797059285707265243744047964411387929037117219265088720757259575879260331443010142874894242725873148965272705292564326043005030944346897424410923419755148278121266711400846547985336261562220011697003647737747693908327317925882121468453148814656892317991815341786679659357295308270102805098156277819251582622086751063304726357498957178111166224120881470662537763220461374326292787455841588124423848588226454940489979235752766933219845741224453902061772317196817451666531960697631647939727084883345386696914895740721128428858341603682367972574892454351886511998655622083632733638529387601842179385031861583660582862170216087164392858020745770109725969465591101246851987967954669614080894226738674414574741823330458328827131147260654976261675176500545543217733795047781924723041240087100748011853355330310172834563384002830858311280375839578510977899361988312627076384036221138074062242347850561599583981276640443971149186589254996213869734787805910641619368423987277464749067931059263953582806163509504894976862262274743856339642621377015821281017012850411484399262020933233965810693611417471870088222633458267320594339261391413200174965990615653971072557529791842825862544946875923420698479412943871892650759231426056648087626981406562860414459460584206100707760188179827379144467192288980968225174564548966238827842426115350715651646913418792021290860582481087200232770190607529623483890481241960107022001534954738117023000179373988964804540906956794042850804988762926756588375731044909524480301931613461540306839758723528733805372247270540762333533651242678078179611947320778146085548404891458774204459764835084391724637422496689606235828781384899921809167748337827419227519640475005711277678254913091298334987922225501686419985622326094887843914965549312909927929076077102745966589354911599260520127479048775593257890530558467906907120919148347366270550748830285745166021948849246343085965053894948736353768558756377643435910514326818387531214481317270436651824260886064849686333624884819852875780805657853351060242578846676824577966451591181627190197893938054171060015260694418785502440056973816249422361229095557979209313696308845759508887759683977260734000038470369263265119240732977515200884887944537379709752104344048240296681799565136118390472458899924968381011452144604403162577481986292901792377999874409340413085901479233599601550032401884276263216156701616672245206903358369451456065226982934144878125709540687077458787088104097390667174804583564860379720194729227808952681930575495507205525397283068330642063413111649968004541770122450229690408816349380917908402743085937183542934166098537615431582826613341498536945259082280858414281107040544549657068584476438344128406072858090059818135718673112450857478200922996955884120279262314007305975755716092392233939028269914313887414209454208959649379668855423428719538530485692453368389292175491316168530754215090343345024026210244965220622648016604481969124928940942113059472035586070030825558021824095974127853403156987127365830505161423858479488733017281866939287100283878808458056416386243755138281079310290423024997033951056160572103839068657785445154542179620388681966815886705105115819624256033970104890838750368660937166311547793291971265533702714936890617646766527102083214924932103800407656965833129667838466051251782961584630160371676960492002758335321062159801577295442986678550464097044303266954856444613050252457456980613856080862791684296626190308699802228723200004146140740652393771630194790297266854279073351792090107930997346290968641729015123468499722511754312618486379435103561947888662430498091753082794068888683395791510480631114489979998884052096110541535999424252692642325929840211561543527281780475111676240510004869433373372768888616900109315063988463534445104321816331779804725532633570857875711074483179389826086251954875018526727796811429834248987934692829308253050222630495149368193703621212704544260972700908970961673961891778354057604282765146224538946156465384463656762732747358279645153092496509281599221795951199555719062212999461773931645432670955329664154686687269686868759012805403416303482849242393390316371632431728928291316343594905418310876682684050001046641746323688379094115161747274250171826620544091067787074657754969894085043873410165259615652230532985943652247113367517514533933929840362157288046570246722207094374327365514656300535182395059509290182846552064996774704372089565164257446804013198022353485724004042971989554669468421496872262461084995953807205632719407975188129412535600634325856561430820590737649927404160356264158881419560560146959589382888318577945735406715345677769728185158940335030938814334709723351195097359542754249613010687824620151382276274802981547671258780619762377439361748773939293248824920525688604211371550421920045279282470392690070935597550812201071728070038454094098869768308054113891392529954214597083359206017972446783093818205967685507298951477403827475939904606818494150676241207127544436206870397680219578384614807616244540658902193393118040813509043295250488737594457962782647849982605039488715757638238533563793370678934454148929881491232649111839695106798842104725887025825923930735488263904873665095980879852548039115975073737441215488426587759748509147864235729162309283946907606954798682897134488338522822754438621901942139059761636410165072022583286047532226334624709427091584018492555962753442347304617754516507345931840207160644628028386203129152983938457252389473029081769437722118219511455372768742333103520556035195236021427790341697192191344407750514844751270545602242614843356581324703583520279270225831840106849818577958407068794212056455185104715659678855214816128543260885926965490038468601487070969566799678642822428492840144728630333206435713567773843237348415265095477621119214668275590316389246340860455429674379680756011033486084460046110765986335175672976332593426288856845910173421439587966639317932510368961448382660481792256428824594342441398377743110923654459141244553808074901391941044224795924872592657214137600885913631723037014440275906645757137379745615960947750040214865549535280591078589162652559021990999599687129496758740703938465431016174683149388871045050711982846232243882255371468252536934013323897741201650925187729961471354421547460326519107040396048858218217569306143758870508229468336085759097708065585467443819557053591700428630470803800380234972109752926624818889997835607279048591678756260383053405830068493280225419599291662648030646768408731798093684971638418656919590976838504967209106930536251699182124584566680718923301983072060831779087010856851365972751606612614407100165914038034369916053975634204981205998325458110942877934959933896948582462629271361792753460817631633050683093657455822837370399815171938028054044828038905344543433621564795915407134526592625147968693199049404773533582536852342175171144501442073201168442938721900792785526102720958957801045546478867793325723300774957003828884114789211486871534332963919561490467900999033837728915384515667172072887390639301259959768021485905330542916295201001171293974477137150218682959523736512747917505082267959624820732836506459166896930676578904705408645745655476585786943758118204585247629165402534140502689915441903512394264950345018174915387962774564538660851798289605510650351442921098280922531639511250407475254061283233152633948661110975802964488360720642573369351910125079186075648065241610802707766919846646865182922039045418408393868401625741811726848252295509323364385321167318283387855799517212618183097617508881269981459473666349596595730421400847382435770006643179214796576504578435131226199908466500530639107418962245144904278429697118552140948806238881395665404613848575324515988431201409945694146231186888231548098088575132467860167813027212690610938715117716567905858452246910302328695667181275927393751833056247059865627077553489529378422174319298005225733689877338572579192146490397126708586887233617620664482612846108791356914999759291433310383456067279109659393035148490069951440928487566112288119550237837028131387826497772449115235305833435499577889790553850438511486759057164643380629802054073289125121751597451007563664309230694795835760043226035153259100322629182756651183823118132308166793289117782782659398427092182902533828051976935197156041430596121157349001704836566676096586216454680640809647246835531610049217344954531710641319309896831051863949375182400582896977124456496457782143304853985841894083275316014507215544660017048467284188077957346297845603053024747573695159290817114457723888522046131971243107850888122196930000593373103190846294919195171212925303091723356417551388383051638201288483792048015737861919043316985408146300243468277589531357134662504779025689383271288189761929874912225528081867724248980271204563378904313734196017157038182234457081728948277039719333264743526060745719247294948442483736545653506082253519535809736081723178210483730986518247986869051156770143003515281061212662452509727015195137289565434568784387776395812211369522402371082057472032808337065813660734318457600186587540196988139514519596467985246296843477348695171651471757750962307843239759769290562958019425596339106105483067145092234733290631579058242631889228270121447482772959506822525918041587776637397225298203418274266606744586911394331854039478974905668577214376744275504622489396569871730710853223617375942399200101443997757280285211821271888865893691074442515373337339312683083167887447172089211529304498545678114665808838126561039613466701347275873615532088837398082832583134070204943354072332120999130736843965278514659218051664299060302157258081064778062121159751529675875050188727612407456485425206071745509561014573544266964802449337780100334400686788439811644530095129319492460321749686731142671632837780586399349197206293233977427669611878271473897927387670298514754464536777473029363362426841309785885579280074908121781252971451530377189289499212644009754189331470440117180932663107624804419135789165253907070181701082693177702604118036901322112386518494098179359260536104740467082400778609765467887272995982904197414587517908213309398680207535431022076434095950100589761208177369299066939949785755947962932877376256709625191633941092153602609513476409261721307622083050264151472587309100160707254611553726165546576836382887099155903555666849204138086069348370185493936214624742341894195514138584412861567559953571110993228080765996714540929957391136237248782626298739713987252313926209467034910994596206406540931697408197512890538268114220677540490478352387025750638221573140258297175926381690966398516585144303708084974338168289735843470574105612812190431796510597707221001131270852394612504899357946910182645269488417156386366085698603499604691761951190815555307814474879602213799717428107572031967868874395465376924273832435378480309119452412785108085996131563378226571095697753224091118043195265520250952909752169133432413253613180939178902737037106181153975932382047272972176905727453733927483607112209035036551392191499581587285161916851467874452417191932075989090318346633972119540335516871185786217974307418664649573292295871578188989853297828232848586256159625780720430877743953860094583273713305729410887018764759511746180966663888972771925706728367124266111596982261149295957896487804024009832610045257868853601134161705898595191688668511306747998289723139296146731542703395359853912438035867936740339770031880994897707194408116901308966070297696252379622011144712743133731032852427267400948050599734997564828282611536731899680061033534148423077160008123440306819003498955957792587420094855932826115875690255249890755401485412494434030623662374956984028979194000204884773969506118940993284925965269693397045066069530491861397426584186442467923390731955448936547052290709080481936551111881536389525803671255343560780182864121166239381989051093478815045083237373461235338275190026031149536304406491936224133560052220247350596773219099679491926159275419446126210064716825308475762866967802167339918151189587311658334846375501481362080302407949205379897434668435520758951036065422135772356084491441463322368877650415615429317625770808200175762646415277343532451529098000587817701449360744103255745293656530731394481446554637726227977308367863398421213867216365311370191695938407813299041950109571097011451748169266415036415119722828959849648679662801683731155339115379044180752437629422258244662389826345433803100309104030163979656371617707517851212618633241143157701377454588723390880360069434309212879180587465447869484867451696107506425421183194385277640058364678784573437898531893535896691406393101499028962268478165345554701583649394194244013531604275465029566538650483591427059486242414486705586551345175062460983971580195811389861609784393104151396772236045788379948414239603918419544047347833349311641996054120096610723382051563950788122780189911427184435713845814308720142075455047139205814914831719010210954863686850905832105155423782356077672356319504894711261372719052442792604441273132545238034542209509436959428001371482367177659016204896839293354367053056792345035093907479139640234559625400378330460253861616759501040702887697575960099124648201368091497477779296431146442585746743856250442019052667913607327474897759409730336005012504916455896562911632969882343175796864969330724496384933487945689074949703191262271968185843054157046201100498957646770851557688801541244307231873806101456676804279579183001733659166204593040846841526360051746878734166479320250387145499956702950376535832764860249623347320848279828171252373656070674126202295939629359474108161375640757414637721182048286516982342182753846722119619817609094560171924292190061914714964167939098633960957767679167780221481271953530150651429733035091867748852416734225789733313221052314995668806168857415037965822888593561467263328518896956765815222096916212842476058451812299945628846560587198747159143360354645431216406777256464997523060861999698610134083276682640192433824692625168511681181289452301478862628415981203084994142295600712537134375546230596323608667077786466299422804526492805414432880084752701974161129660319452535467171567405631806246033739969359715141264865413864601667531279545763699608897459270914937444665878036144735285181793728550090027124211209463936075757086182307998245372497472393538350038131568430802168107617626958683332758898703181914425194773419847114684062598394768528558735035683134681439479433154061776337790887355318217055707686031631542483776761887219627011857897693478127101967666272517811738427577183015605365562806657989146635316035926465216344699167675028929575529399298477937936153146409279146025246255477639999564332595138656591191462754230273600469837091169313617006831211582194465282130699096962367225773715447128548032570186596033603402234011529833346249581915830494084202603616537712850422787825716663874228514134386997070307042895911146659373799596727852263032973244939499718099691401728822758238751765928261755259077074037608313463797587173786297411773824030822474118614087037161047318700146722484463102486585137167591427323267841251477116601541151172804302189865177332608025139793840276030103631952926787486078209145374874667084585015463321039833658054844536833056978482480369880681786239693402178201876017440801294634712605465963797583385102081654879563784314371303380573139347580822571684027863137987198031480620262659708754416609130832994001010995231867717530744975038322142044856541075845027995578042999368794421641748204980590425897873047125118487572927229069625367122787828048381832869125871154858301264735686334218173668439230607661414147240640230097560776495594202131221335326764814049489379486876270355157205171093520555194331375844035786969378298112988615405955683807328964932614370379672531940242954348969124506955872657090775107410941044876638314176835905944102107404809718785925166661781438716207279460856503851530637694298978266151011212113667341118063594742791770008558287162006583067954334215742264320974491476933840952452295798729027407178124450069268548168961920263070846213141473537646932966797947123325455024293418870272643581715609708701563799557121732657771563719974490708149677850149837235380295529472373322734961784380098142494672679347156560806727031744123077162728013636087624820003059829130267564340865084194188403583822888398514074269543025086209376961627791604556490251003336308438036134593921499942862034585094367213336806847985014931679944034745637546181592341739132179498041719521936634829131872738553908073532484023470593467914044991199698203277459934183058556292442128704852151269199453560319292991615483860935049601003926244080982777815835816418179896426222536922946921922082116481666154752371051999413905941931797664195667547369407903060004821626021462687816578175527995578070005698296626490300450076248916174409073189235291001246788323450229419110378022597758462632245049753004302962411899981123819028957660013462003731145703811041613528634489936923664772536463332756631734811465258209891779063862549356551388635132482771854543135791437362372813496029133097639098222701664314535994583592270523583897022173141228819477283186593453217251265617070088903744883443339782259310946690795220976574922960705372832771982567443431806467589958582772179120312475194932633841589412248278538378454002597766261472122463794852015315680896547466262117046666472358112768703685835308730146133505173245470716708936599463601242681163627854224396246818728471647962889460043370493778067990233000709688674022581005891059431533539588883444825804525873499528643371185486784921299208813309584183332295281853355809586105977899596984682167569841246213865168425153891716487966095466516676115498491492072739884643475867254750049510675336927465703956553238069712050948172756964494007259936444349882909048505869891449572353867662782248214816408349942088839019299452663228111806570505948880347488977739214763121777349000304763206296203557115019604998626818609549584670931177094794059216069415224533316053305039064569583679292711675446995308811291429900007420676027109368735574617258465615856828705138441517136328994138243082226018775495156791662878269409449103038163269089565874251544162208862898848917317606342559769614934699147289021382288542756636308869234883061253492677132096358200428616505598293550162601658893242617437895926429880881423675699282611534492033274482269851397289095117230890229270141735458511501178987130758884279786355381623588774901657182222040437658413949564527804869915659873446275307147083434853983580988924448801950190025516777345292290764605843235040518286826857341835708459766070604385194626402818805294446898765034491257249975141133266767582570344309530792167515936720041473996670418627609665650438713012895915172993773149429574783917554916138209800604318125932676899071992399000727683816370929863392781625011174628199956908758287934208988090297474825928418066255425542139873066494344697806427849723956656094247085774188640066883005077145654903196416837768508308392821930167109592655549504391980039688368576682376962067921911528974199420052953559130671154575321291092058387159939532346685412990323681696520438231136615005889220649692063781176418763493747623539827743318596277459257225019079647670664587544381686510274179735308151118859283142554539506998387843643213692398596972697298002541775208478800196722062763003461036505397205954752829775209723996572301511125422092023780011460674667531549030859190901012989540488569794394183413807217834517943924707322449344693636617166125675497077258921738417776516079260123441110059370923825201696677977963770414313642971938225104853596329197587415141928300444623004878088568637791171221179256491555954652867132586702141892740395935476717385389694374763469824455713941232075875750869612965242178105820235165075895433073546302207289580730864401929467952935470644140876992905057173769879590180518147390517767483491391438476949231969242274111152559116940740094275685066027377978471797371355734865358450133402080186074373047748805627991507694276945673673975575674510006586707737802771070812281357261679386694895548177940511718379882669723695919781117377328252697560297132338288618811069678037792524114367005274163875605406029841930437657400867684447088768040662195932458073327753840431395127946778755553485414410872042047575395827927909324468729309915728228502734310321042107455942234032280646399552228407728676798219320016192334020104145853940084336944452346059531088369820671421801769726589620010240230658721385201833002012077037288980105522307988910782860847416298823040559004941055856322820866325109770761974669036675923079181194287108848843892492053390981714848438451348679757714060807124875088415512284240344892856333975263815150767054340013307293814588017023895566174796072538909902034591970444754949450826080062452286401794098962696043430975471974518150538900111137993064175004072394395007735005368091720732206515183152204594556208190844358289827198580550201048516898852847102389321481107573035785181185337879503190840572965335564380330759426804574411168876424049622223100788820657257945538006268185041843514818737044864733149189295027952509137453721638518489372503699067714818212060662334324533005906463894195303932338935258520859072935048497744228223135241089356490047804178874970683596210173682942133848043730143908882019628011772450846274401379079985039371404634668047752268282393256121849458437352988031826496986225618977342334657976741260579624431611702068788332841451395893863929594000704048709382177989621585309391992738617391958238471100263862368921375287246120132076741606332168991033254371384348534236482765330256471587605156738908680091045093913164370511813386669620550687406290782463861499276700851989158459596688582206401980084226748743783693585206482304141272138426814752907901800696883026194948780824496485958988613449942728695587531965554310366971652365967609293641009503516029350214095721257308788312525286189715418748521185816770386519766901818421481670405872343892396643088869644847899326486514450208681404070740307509186499301503208483871806123380348868516374816356562705013437603261786012005875057543702077002270598347880467372675229372736165838896876609699545251380967301569578466179057936079472705684144803610449743264207016142981594011329594506402036716387068379797410067004919980743572122325244760622359397700216569295590902922162951622758192357999454131725618061668210137529753820399174776931098955372347050591130927040269393689516455015077347796114425011506606999879878397931845484263478797770540151644088019902360494489887323145209326187477967478407854061225806740706189105340357686926699529368634261491809541294759106558051861815604051692896253324294639277572826323308242196518591372654951341314866876320052626233689092655731051501722067360687012403554021382742957889678287658982277834417866653212550172080665494728859409453605077134759681829745027382754078431812840996434227791070009349729576108899289939287699577336563638534099848516617674940104533812797889514936582572156746391105946871542074069566803941499253443123279682633871911598050057205189359148173032996159983000344359469525740455965878948029630028647680515957010719749327178474805939169305334730102201926953265421054633077450782110878889565624283785877825339488836704709885237851048534496505470212882059398599292316977032077708591211439806792961482730963830201216256455610766898283707983085777010933274257341578681964785665944885936716971651360498579289235439613758013000994958524000781011220834779068633679624453098398313898039500987898955887206927906148581306050011856555732126002257408311639895144149547674149996501720964837446847917417848403882140570385622572749197096599975018743896468036856006276892123641096672285782338566923392216503215238165120456565835959529724005755940449625658964613391806956791043860726726887811628703523467135034218192784569625986494906084186735114836422221692383388249371123345512279187575471220144148048429895598053689667815185947319247585189289522316651695752401563138861809695674348277957960971616357829325140493290733433414515888559642434235382750822619183709001191793926692576468975485192809917953878858245278087619528719299187045316598199308041837809607285001657016990084656350832441175753659126327416607448949307913380366165602317684322268331087629793526609792589730098293954944247041587055924995576894686660976572002918688091245878729739003263910150566749189573008987026204276754160153082951236160230140176717687195118774965952044171857915935926898373954501293557174656753915123864755237179919573196187622184700666130868827259717454612015082955548803303024066705521953494111168580394471456788906894263921624351219580814554062860062246981254181622185650044411553979034607086412692756469368626638178553937575796219968020512715368173396107636962993727886584576557528003038766883549543430006078793731557671144128184595188476339063396788327419791773990189105745605110924697049061965256363004551494415196776974723479227507913006310768525211504681509618944393190658336583893631168138102690473271605190512142843753601090449203988511223544018741712776863815861519718059154114101221020227411280571244343442447544070775406861590542884411227751945574072075398081363640840845266418987297091820543129619636408663394372551349087444416327396376161075362322253278893944964128602414410912962900225549813503463676590999997032452373509984061507967230198768705523227724957162487136186231894686135291527940346377342911571933623627105330828347323879032706997311319985601892961261114064816700909881808537583255366297712255409147453245529443050646514555598095608795179536203064529450948537716889716345979981977284908669399538160862821457666345839305767762112336098202702938485469694790780835146186012363788503957541324531098478121408643831781703389675671326221989040610277815096671627268797019636929422350062183576850213709408691592392544655508317459766095962386816001719731762818534543353825671109883389079711756970975070848599417678642651468353326842467533634460487230943490091989196464275456671747820878966152550165407448608990944516027809863611101800828980394121288667132744520144283231411326455430909397213787574177066487152524462639386762370020716567946100007513459114007872178588992473216191729465956107534600739992361186089592651022628201881886281550321670743058565002697649689657131414717340777553387333312698418759834367432276105789592849142076789252664683552939137364709144894388482909947309710626443856041606354302558867558423729125660573089801078537676487399760363615419242512148448954769422373405289258966627638789248025285891545073615175349110182087795768292494766824764206301742355779620910313903889890060608765763271386523294238445466107195924878813103406708076633986020266943810794572078488923592102157978156297305032924301813678016685342269294239849025686291086565453691951042214409024469809493887503923508290936756797051258406127362245016548007945950836140273453439997410861042294255155010587511279728793262376133565374341631021639803473484450862354198810974767941045874976844308199655056526476004747020133563173601551564424670136665328878002725080066933288617875498150242548222910176207040114816886836973458222018413590439849749261384916303239671473763611003540380966847333405498061095764988738238977724149021507773928319752885870027469223185221393991574028833290169324104854453879610310574728777345650718562401160974439878098071890132093582444678063772783914975585046322768132613926740225549431250262063224764799291987578067814414317323012672525840898546177600881322621651565004212510318604091954988322263095565725406264414398061521712149768594504922615059286166670557955499765835535952718497265125461630330234133905961291268718702644531085031562116148517108178169309469089094167775627657005521156624878619848039225579887247167971354984570314479548738242083126183628627478635227920735371003822118400275954497391059928483741502483831861888474287317561874102774638117700616690532309891595859002751160851478317150826639443981522561548851254470692247705540382455394838210553057439118753228943747412440288967174179545531688210547636474436585432641045886827233861966486533148849918927749326098586113718709371726566113814934519961323794323273177920951035567142824224677497052861866176908737598831385777500247136139512009296182335255286527225112903823800394899069236819548764700335077410526211855973498105363520286067205975359939139031375648864855778268956864945794253799751417586267157792715450177075293440186358558895406237399257443619892492352213140915405518213017239686767681281381016282221954153588208691527355298016028452861100055708167559338040700609455683843549166847575426073723039248047135211216406192916243340086681437958128705500273931837042016300768326855535097025957494744993178766953481027502762980887223504595564906074251016263441236222693775126180611497177527934781619683391988475249956061106882314826494719162767184896717001043850119095521656895325459428130603330330386981489625591741352595899230339946807516655354402493936980633327085524654076471633284013142988147765569806105076225037436364246301410495951686152739122698942770500563472502703649231513216135427287458623395587939489183308862159584554705984152476594761739330447258274659878425289813707355749449578607912455547007678175549036824638490965480409538660275320196991674441887450528842588279611465138714282809774837945661600912695197836941003129439038840994933418682671100917597554104719736364557889621499112690869549435128913184894184508582780031559988296359688560379336970430159353457646635122754872091417509847381015567345090709413605932229510470782383225752055627364177562382944331326752597097999097784898467068215989780481975408593083159543057138309237728668111607621767851463329292037301300674163038856396903864266510229147593178526361863866692880483730047670350081226877719252239381921043660063660767794288082210517802251109886730209076135293612144383716591163953294434652626988186666643640718898516780668023070129972783096076023415313027409630952970729786309656312286031415761679773661070146573113123704865860041202774616683265314003478717445505476702244688915405303176221759272774561158850610568653120646358459393566758710916960568505249329283737263500466252477266618231361922684348798302206027369195214145106305007196758164815812920387353137744255335958610451071602050041375270602744954545201533544993141217406417366689528299386655932215801143434218675802902009860368564794081153091206657824816808693428588496693507201065423020148439660431423360481369159536632041818900066063152204294295118375550479931812038729702964476656561635873267377360150289089626153437584917174996632839450413368489022489915294759200594141220060445378075616064085213674510302866305620746999549782853530134821643898934188948625523448800420673620568638300179999138392871955886423579218569436502088332740922775324006586423796809512639711581561269186183390014545708434376795758952305063362543882487328087194594616558673093761289262251219703827113834423677308132872432732090298588734777459378933914538299520398040255406250867726393643688216329286978580234446057331557689884272761503820001128263711344248694846625931661887181606954257596413968662237889548599842073461628198203464465532314927380182333403898337896271825995057144526165527279116359800025963978419063721674907993141215083811537010262659811750716235728885907033291862749209738649847347083191428490843647326824791576649405783746547381317594600820214815972059098773542662696107679411453981694726913444699213592184607273490986617531303098842572910087038317702994568383409288252680895539286126882935604170484313026638747553728689912739298581619513007284475338893134507122474848266461403640322860549500571336615990600459366761881666395932482135139314066516938215614510615559199794393643105838205224167485289930380691796455888272308550309798639763728470784659693471732252483861500329790741778720918575730234570131112638410765022968492638751364894587413078341701377153791792398192006830730323144328689611230127774880265276924962696016851438342395470433859588864401269598039858345965849847175319872960908005979651189665917741556807452568748161008625401103672888919230122630156833630495160567363295855194627335878185361550628582616277065154776977891435839839458129176639332611955205536683756354878929877798837851475573342927128428733441312385961099906984816121795316401758609136214597772588975094191591996382886262840443902248936975456375914750070982727372917650496299759760161506313345827580657320176001944495649946854546263729963957610128332469119628381097677383494530444502057332940807092405403361719403413702778583691516486530471276559207205966318043698719930487566087239307998558513726168459650077759144731675627069162051385592762581544819537649947149058236961283723193364817900173498566020629203612680276988323823584937572859776745040315726112327050221630783533398312575735846686230276524778882200282268680993356727808829994093671658231412888273063469454617804791987324319451807340346415519448895804440728727494781206818313190357409487625296552360908985737343187619526093685114834539786587970332941266722442059652914109285674502265856318484512398768660731832155609903655762096336933847994837228850600777814131071544813643299516804853903946026008793300596200184318871423333204243145079907614845307579044979609792526022919795450853475655190691302543883026809611360151305777198344090672497847449156273122661235702730500115226681890099227617373929481151847864633167818056653007824622545693790706483282647656622512431135949442036076937303109667986366918609301991815929406153442006563628007548801859029920649488676058856190336726319143132250385528566945671409216293198825269463839332335606817337218560051292763464433330666626825181486067625685381845601753192169645036912691010876488527056846895287275177544462244247885848646888985437960791889807611399952119020207585753552680558425449369444206518606222464435550880177746553911316531116021799398927128992507967178571718152721713765068465613621873113255495237242932381109479478266648691127869328908598376997269717408550509141412873406837576330588831177955951494330856555500173924669905965250574445019021021055768164706188959877520357820794244353258447080724714103070785849999555557192554902840730229674538435123170478609896351580049294292937604350724176087702516139796876191247763011236040179380785485909363308346308931801897974877674810821815847786425126073008377964474391152074818580002369140037874345685320532746194921998096813370879845293673262070136987661956047313825561007665661351005114714019700839481499573254849146742628360495385043864153317026150442041811947968572129311664991435230183011257490821030290387216503951616633899110124189968894633547584809362295799354386232906474363717938952598996723537847009842591128460964109444989672383636752064274369575299748101896485879063932384190718966873746870203670088964184437048031547622290759680811886266884611199720477479316430463561226735866509562239379420250821546627122773990049368967123208410366407825753857703302302745156229849597431267193898516630270193216315840351561534135146864891741154800458628411369538261375597100008217403085220193959942822167670326334244322494517999933550739829915143191854007732847796276339130200442348795964826496474645199370761995117044058621591423050932233367776765297945122907755084949017871738853158065168385714813999474419066614494545802202339726862763125756795505514519542729508679963893775493176290454518059952969815783224828934832895839075919551340202866279367381170105784672780336914449187368031965912371745298188865299853310930218962807478399649094244394730146129210744320467951441227456780953712807786097795335488578297672453190080293476621169480734814473436065056449082983045608629112602351416235407389623125425799242425494104155351187292794849371581892051263977873777231459926935158354968756188635562125053637446133796608123729715909981766040619298267940205330465017464993416752738696420940597720507961128997064011354125767108009249878858936716372405941263699187638048868351021875801679961769024863635415514793836224187810254861260194541941918123163747654128979469433079091798748960948976488778258319556268742234190238844013912695389541037898178670651314690924077181807854748229119005905493585192890152753039631982586817595879544743043403750255168414303094998643733217100184722643273856847484987655882455799898555678569570177692778442331455273636343499493052810097653737012752590182689964347440303493264282324742890301941619033962517084490819025235410020321908045596459146404915015562741219058777150751323551481936895714503491411597383871676841086204927263818673135954205356894127947421022203017421652954029042405034963606245634746606935753801957640507773875996470087217861522710837377005956701767428817238110350612917392424722772951575636476047442787648690387766619267637138105063626478236635830680562270038802443887299666169347143127924537857500613717397061098733660014956682136955516046340831633992318777842550140301424734228475551709830079702846307880906766214201490367262962576811212787720867362161683907674701308322916353683867655580052902769089604980566301314488007010475356341368757722985322961725402097939035818519484657792019694960847076617096910757115472835610796933105279976757605552777034550800236986284744489795024018439359642226980955395800387922249358948963127504325007532323353461884468231001174625241472864839846014847614067486768851195256017623315892109272812138400632027861988932121279776781936807934636178848441599591670370706211397878863454647812232994108040396325614641751976280339412929782857316257753502933218308993934029243123910427537964154612774809234531942120942269963010977866374860700747227886605203143453077770112382046206306571592777055448521758697537578226746398922187738812545428711057306255812624378713956405859038609528214430984226654170499784718785756408088534508217570181911351025382889820276922902279621473500791011617748222519168158780672301277242281518030754345366653773524079418568787451016910586885692112636889830910201326509288217926547540199352817542464446906206113415734580215079177271851888689900628107833201416725499368960056852705829733309002429426540277588020559769395423144590486095584463960595602669023619409517326708203727777692987545365239679965854611453560964276129577069027999051426893463599160810919899415799992794952411763593871173819520751986453181009671773585731254991996677671850927654493884801106883531696585664270548589956058162074297277828159998504900180011376192814351791261381837315433560965103072733692266050527165761446903745784586352283628970586344057285736899115408133966285188795338898167993733630897675721289394750318287935948309874590153249574525920556146194899990375514789787882537047522798665843008161503869535901179617674750963259201652695025701648169635156716746801409224520979267516613658630881640495162528639165100152054986751858851991736528192631418335092288473529129824167880089535271900048665909941547550799033732446158344584294070721407013851790244061800396648738733801590408324645137882225740025612708652636894239137335118020491703269694638182697659931461044874904751338678686057398296512374882289230549193466094292969465143606429551517620966686098901556567303108402857132313229117759600722563328786483342977250094517685829529600042827382015958989840470269723628799097049513544861591554158678877532373730497930263877888854856783366166036133569547465217353748194826279709837716877679924095699411582073897036964409994210697533417041869112662887826345113750987272148826850610691685513165814161123982634765736000447473751352836468392131941845268074431692620307245042265592396366532900706644019054743027565554220688942524246777106200141175203790258494661950853110688433709492057168893337638300880945233865697700766733048060158559414854087403888583161375731978161526304852226728039988561715698383568098129486300860403979385233050027005917097413186364103115404287135290231216088069617886943256037275577529440000721568574527006596742531434616791226915702734769985159709667740719275022072146419105245974840257314752887054595943176676037606285136331903322710523835572008713807902828748874789663535871742997691635550343793372661368577589392973944479892222894038419477600976221502049380101200617666476355263290262880812679070177752527077093136757029079852431081021446070349696203464161579072038081530693136026616117962165982330132718707936197987463835699542704075206857046875462621442655028027862634764298020295080937440119151710359037979418735615859840123974170740635940955280905571164501990070568015734946884087693619190229655762579256625520685041627659745726718248661311857895202211754057547073295482894662607210794242490377434817745593955106950746823987190812946105976697635335250276601006397965757037336289508826926518789857048274297601219073264474044333655242286248843013369410170748609075371017247835481995901468550727836733844824718897205531870140312578182396437492001421471018674302706521225554033479166068982933057978559083097828206192912977014811494705372833644460954149155511354833351526510898232982487677720776327834858983230834732703062094480225197021767417355997067866016005708661760311974632319904425528639159688605737825369324945311009907939227728226986920262781084370429467663494308092454110975150333712406695539306239315566404374717348146013121322256662631593748186099843250471538761142878347056833535194335052398932505614372571708568581018962772861003292122019733786603719124997302171456244994539979249512165423086911738948189200641088675899818425237163802042066477025308899950910429038256813515014115042544767298516440590517996606529205666806305311035643404010573645207752536351720767088485843425087224974089768142045386543443275474239593815171194241048679582512134354609683521972829173503162459378324466156945858435140888072481074361700812604305386264155550277712649425318382569982730952481437211825157835089603412683476905072943805850658011566399438956479223787304467345339092225885997441875315178071036064078646025360452795675732362024059804309656057151695224310705556786388499006654678974314346119202321566710812710778237603056375482694535536878732164733453952748147108578792454801474827703636245823314505755611962929589642196750356182236280612957914132046111133772498781592728926567176615555695113278021179994928617231269912090945659014464943560986695670175977164356691549875497456363999312984322137964891627260938995538950469227693959104318477535728793775666735591755219380971068408264539815864366237398109872087926724842871759257301224310994488251727774914192413570337406809411197012396793498543314657992423727131332338074937795192931086872332129344970327605677431210453891326570369740652469513903971872888803925855393855713175942958387758890304200428149045256052143847062950547668335937823978805590623501077072189296526394598539315134625703645175292196714512914215515784814668341626714965270185053755218504356887359260959345998969964549702510015222681156875114250680701744760787495054268095545773168359511966128004955418973203871653261569227818712154324724485327730353048125667696790735537653869792638252683795285257410611036597673186627415498234260771142973516112113813325658173753764749422499815487615720827260998081635697312853911958017319146098322652463928422800354275362227679316861118286309352078666056743857885216873718818433247275790944112413281749614348394450554627557055615109996053537694738853925601261350234992419916318031680067503312770852011103750309859334305941241313241664163363616233302958490892298364592764969903872627192718665761130487776606482319229133870709221633832193644652042142928608020536422143028694420778321734992904799316120055072134745098693978792233098844133221463672090658445796135799075480996963204934206351708280046611549889148323267176202083631494671114192434406407497566880526699250407696502458766985456400196139746315236611818328501301296834816894286914161076050380213180804781256544788960132525565532753801656977548056345637341680547540244973708781775404485375709086478635502893137975528349779619633516646764758841307603506957076350960516676930905835262535939055147136800407158815305227099143398779833064504357809072984135407537784375674379535473678974995173578506149505518287087831845656419207609688420847148124557980704744278571386430638983782006145036743597501138234726968340465706687845657961888556068991244824194595027935484466791627667607708941577293605140396152392378108687410532318939464927660923886214771049901624111872117177060022104315555039638604093181606936461536109007199456573644837153921235944365187126334999162553625642986793722537412561179775368888858835111829293171199198470050124324736544460223002772631445943016966886190335728402459692748625133235688418541057549647273842688639420263005016864398046359737834374922288082172349386391763924992424351200755753684917707128002993925465330958227631607654081968824202632178097959931614373434928087319239583435811430922564026112844917501587369386424692853750639945864794820262296110453099092670680930086314059608854585418672245496847775619610679817927157132252769977586274811502690850327060785621856935946418375592189218025865721658878422175787181205711864529393288752952720976183388084191092435718774850145329071461126778851409272022330831476768488450587506872168263022857909886706023383280422376341501665267474102738235061492632125322294623960089536203004572273502691394483374354476500429799428323470471945538896348569303334513167221506035088855677833602408798236870031911698039640871987982438541537165729413227901559577984952462508002713162147764948065765248372982168405740548396189489714861405664887564947529079054032731440358013394097705524264525744172525617242101446205895134512463572203823939337548218737291529417543878395793199209126498316038357069125466575026496273696929695817484284332050280038917152047983588832821833354334747923260804115334991208932299051601784717011151005658511282202442949928877065544109053707033088505532540092679227623122030037746823387471428512087173274400192892371399025927405288181695904126559428455033474469155529102250938665270353907829546867206318992217466853233199729406555793757694304517944170571220971509478954498876691820335417323287446944122660428423291042665606350132534740974649617443854063106100629236955841382727783394047618077491041786011030254133809156900101609404523811486612523058091716742889219348918798613622934390518347975487629077473801066800423412651730830150037619259384439165956024531734267112903056821672727826808183986271555761638930825545630679368161806223907651008676438628324764879254714172818773883482003539624826006532651549944872136849854054250822181427184571000201555602287688219222978893596787141650075028752110362147443853112477442584741864021542158516374350364617441194849837122772033628603094186165562820981869825512345216084805807585120100652111616592174372996958516648140607210725204196457655001557292731966849486812534478117231879881079207034129987656725768188888818666062599076928032821631269774127244510081242933279924251573857193222258102508660668306885254588229286521181949776759350947668364929755771994324044734939353879221417560913760494744539372284892134245011782512527661212810631641057193315618334749867157666882813738603427853513140432887489037034857158437035747024307855925125802361143829205608344197762414958462912206395810721949072152823300680180713274510217431893437314697630527463465535437018419796730163070323675622860163847173432597851874365079269508189310114934437283082600061863018432744384823934626345057310392560984044811585263510249289540976777553172871527174440377084325393301979840416441680023615913605332767691519377206164147241134421034445017805098030651774545674240993141772588390929914403083147935047845086589496048466745076059959003041964843695186975466540377279979592875381318086011196184397703163856981684029734843762783992850529601170853640630955547851380428601893160668244899285467669341567216061858003256630439454285337049875857648509946610454129509800363659339821730781575319866770732720482675613060175983290521419671823123771999410831491260478480651231620222252451572250202579647196784411302761520355166748171345105748464705820968872224119036751717059472680269462307493355289162396452329697978412878591979999993159619985211301933626522366469934097901015801374092563814247740518368112929587213687625376651196550391501671714004674304470214821544788685735719337253883589582774655997441832384391698178616872374949470965652108866380697327178206640148004824978909974772341840038813098081346306046158286261606359013229164207156582063277739487496331289002584094505210452242732714335032657240286954729591839200658782537577560388083728038794774446890031959984188025914991026969945303209629349395190496223580013718487389780669741552786819859754455318754165025600713543549502058633180366231459010180213990019169579890235919730169992040253867387778468670464307444597016173268144840780365254865921976476335318981822095051618351430330506939176339910057598339050372142771493037510551282993291147185882704347554858674901055659251879371927010768546861257278288671552203752727775730483585785145177790380160290707391165798785580845054993467770472613615577100247850804375431689352656799214252495744709332709206990361413704965628191346626295926452196063537805503670307853036352381703689431685544808468701211387347269971604959005751037036053968852423502576769153062229370929617297288874754791895967694311355289559858461978350365819324009870405485175536686506336290855217307299659277429923034700197509259189311884531200451646754799411322977483051755744996421899399655947966458185694592857263487596371547426854626478184694404719703968494765559201768340599231525492847173665357063686667524928670234238471003195667870296002941721415934601406051325569294758275651977462335389208188440259990316926508309770861706965710443167519965475950088321775879415601230535959082310108073278871288673969881443077200860284703347445375570447170544587390084737622178190215327911938567153645910273980107484645081971403067407367873722392781897814138665777933376394129833377387323884676308160030022507736020513136188772572939229121051109302364003164078433490197193408963877576536706994744893165860539912673931757076819025481631137967842365669505296320193845866556506268029721685888852014079976393616557603537389956468235999344652888287612302278380906554557080445543888393816794361449806274352498543732335526417795742942931021107236984337734985776242063572956754318421034554344719498333236497320444394325564018440409781622898876139052909417751640803720967517800494027537134366335281490426353914776148072520593074058895096209944623001958512315394486825428975536308417691361753882287309982339138775592099947169588413076461168773588552469107036022169670381155531166352359790589308874390682564289690021616240986735541376029793684194350127984082276299251354557346056290854471853104632143293621346124639239705722918343734980682824715618386566472933288688408487187689866647923583225892048323181927611720291368158506858850391480551494978511493719700363191301141894385516803484888016086135496096787153764242836512617259885631513528692612221991747463373426698152321153323096505540726942445652627900203547639575364112444233079489740499643280666622850536353205951742240696371287415922648158583653167244350752097270135010293581832183444140824957102523585806002576770465745906317037860968790089042172952572211497063968157065891336869363149874215748515943901215712724312663251193079514454929147450857196241445796354018720842750574812504961064005914745324239557955708830827932650699039444112187117086151240669073441478874511028976858888241991673796458532734368071194296109445167737551805396947003126472632564651854618112682379895119330626301395083526499852751525269685800835169157169323090939880568116454619528530723396410815186705768590784711052691945349492686611772264358947180637893469257226350841276378300379845047130281852475753923296344778430119177732379732420123129893524009234848770274432180878328735504195576407825089567700996153941473582852237451694596130236996903022553709846266851401118633429103839226914495268389674879293766899438539185533265148043296541603680353161431913013646868424144025345802342516165109895419525261705288649451271484844368719091327891655688212897397731749580185953891249464702592353447755763410490668380621822134987905742678638225849153532802687358320159669554765487933911395517979655524255500465278670129004634435976196040925884000367139551283685498170709767531627583988932348402808943961212083929553862806173404873472294852200962338517766711472037528608837078635472663787314189181056850441299920605016741437259912087867267639735598884192229753327971515211048600187710326217911561721879266051311088181070514642232350330009182865922491628156425550970565850676380301167452136000647151301255288394254271345398154608784905673385840288576616791918125442099975210423751608121437806434536879201104639931209223042338113340305260927828665124149878457265985997747241981779474405774865751454548411520468494659240395858682403511737918212354247579204936189026108286117647824213572189169224479513781480987625448636021676512042153704163643382372018262883971745890397920611319677078212942327996023829362451447602769681627461632388610779053559219349140443876266741147994587631912674145623590634467288922194844449403301682648607793635571670237109600319635378151557781310911792364064937612977117620029154201648075377342006639201505114089771396124092954857261148401690250480753615734463264671612387801010847860266160993382884654039406137500309255058359772114906167096873527078636079512972557409374958749932680992545261058459168285694767975424857151161636556251946383375034513669663078499515128528845393024348603428390538087791512754640301790709426170943577429089832682112157537440286131319225910212373734362239878203291145911508424664172571702460472089999010557396127692879687123232998220360263208934858422736907179442177229223224704900407720061500303448998121317104667074552839002612711782415156997346621092373748108678377597912590029673593356157906830347655515203299165116160819593179805179141627432876792405761383940815953010956143893567138454898272370338295183293621466787030027005046341626392877963575460424864414428461191843432821109457474036897190912461469970692570280523523511082537266983141565547532035198577050418380631365391424469236632299045977983540338235656664709594147651054547560999790075311399377896348157823683016441170114232618328313848259820040657801990319797443837216729651974364254026445682794628445179211159437024281063688310475030212370452219306881434424954839453346733198769022498785238385790951075970483269581593239405257699398544317386493010690001698534087821821109637187606043095868751976456827274761028245980271744038121997810394482962564012633675865672204594529340878160166162818293569554532538195601750100176460280932915520105193855445895781504863701241520059580116723416752793176708724081887796611091125985880872607104356087782431583201018312779189628194748530032578925264053256881005273888908979572245989044462281379358651916099916357433114362126495416565482187772771665242229288302350335399881273090128523278823196125303807502167143438072728391384745145006879391500086216546431518345197172204274037585795669336522378381936590445272917031306776705578661191972293545156501448725292606693254203730050552843591457322758605709438538885109716776241446966070920718436247314966459901074089581967774343647413050131277428256166889466191225218005515766020753710695502362503455402755312244552408640345678202319625427012245813771249856349136982754597567325715537652832953476894146968196842896767411310645101415036104525297005515143739288670756422539223875633263528498141764428976563130793462919059488750637042039948190711451567620152729816827796453182055183967900869005944494279394658281218104663875618539263866418633448616641729486916446063559919596345468381812856246967952405119793459395742975579064728667418386230665870930528370303244341210608818385327044879849958784317753435808169308803540040067184167868201789235873018429921693918619161535978410031291295114400119616262981322871024608926074920198436704044291239823654847824128527828884062563431700030618250054458973778175196454841212880035090089134914311985731008023452524702791323532227359105671900324135647004017851153421675380895705576930458985897426580811745000949326815334255773295571018947594354639151415537385883864983676722441605937906144163276514630791965779074576314715811314362710561286932438639184934373043427555044434600201040853354134213611865099892825348257196246661913146092089562513602417757954486209253092708129343482689311918389943350372235658159251327696221545829227410257913734346075475990446759198015399560153865468872656938779670099290398149626115378519889153027287127472286392118727144777398627875977022461594378625576493983295165905057592378755538376840652715900164154345305470033951562526993197105557049402209768330333258556427567415660770808662919357255043096618492514562676136576610841081686508764983765834085811297167853993812028938973781777775381629573369192531578598388017779594636918380213498577925023349128927581079264325630073719007799692887387909373967589146449902574486219095454074844163293237581891016015278602454530134872255523983013409513661039403399489421619974771845836727560304158552749683953079645237436258763726955194374158414360535538621352675391558070996339839603605708551464287143245701517193060414480675378529883612776891115902485446684785400560876216487352972257226260155784004976000920431079910691316734535874354032409727360032925180147397790875822990221806075349101222402784584021519807779501390919190700173455460653552121640902578439427379803800178197900018798005236505769263652638496201236542105524394484406351558900054219544875474324603090590561357353751847311829435798027335517543608979606083373719070171883387491517059719099449665641927557631645565395887870187835313487433165459866155295719340184185520338277116227446370882864442926781961972751474265690690087076513253500922339440122508449854606213507133666779320762720600502554604453597084836276038833370830860324375184144365671421945206860854105492708648817709405384520388851375790764000147627855098443870704997508584630330132494526370842610542500611605821598352577811098311300250402168181902636749597131301621886974209560341948116882168906747237281579967100053592119045715132732380127157892484724342082212867324809798076818407190091274780801186219289637910989273314435567380980534836663947722593432255132175687553025146975995958727172136279685374392349695001253194895880006973525768292700070088457048090354958156513853008688440819409996452531613623835090617455801339326936541387355720556845126799575739606766485182275934558752366707419691599448441952980495955303309160970356362363475429544819159775756457584570863946860590333994636873414762290563277655878366221418483630994197334654136642801920973324418702658673056863835091063707892077872032730900217034727020785940938540938846564105266283721777863360464499220493027718411644525913916990123345249581587994669832288432178804274027004982143522283815008037641688966378259682203266705762356896779060978841911484931001504798502654180040927982986660727231078710412553448233530948453411633211860868008187659701255890174664178226700327649532202591133856838501562693067995929426945468932617220757537868392623102632666764523499504646884170550866188127318717414862254600909472483520048614732122845256333913760829826098593327686700852002744609319247574731202473907280569373758821125531132498282716005416212081999492222472548506509483952704556518784422756326617213284982767617848961210491149907290020110248443307175294432815455930588009271344635703917090053300822803755805188837849018073092199710339247837836899813072165709660600236094536577111535584170726410842738700509014454612651312673407075216423451747959897018115808342475337280298280091951915273662248352041751083495456008923100785726413303954502478376794643637021558411314294427484912941550364014201967171767383690830522192676855683348569790378227256426547868632704429126130513409806816609077696369342683659866006808219672760263549746479952778128043917077276769472524650025236767321386172868805010932933703657135535668538904898581427988333511327313891105314666350091109907976678499665201928720224249508492337985361837189113894545011396210685696242931919094815375408073984373375043231334768385316920098598509518733510731285281513793340069700776299512818503623293767457815008680489209180798476982390162393377217130486003536972199779924451966062580430293420042699399382186236862433222509851307935896795463045946778241433359719015597066330259385386474172519658732171322283478246789648340581857095650152672863353502298510443409520383127388277663177127290276753594589145704171123274019009460343873608339994276982504884577756528672169828253728944492443776941333390904170929777404114576027379600123739176742141004075744856594211162553590906327700894778892936664840303111147466155591366918061653383030711142686810148232708899503739035607224370821629911598280120318757718254113982663257635681424144564199065447051645798443306945140231903831375385786271783969742709733502343087812000566287604541064508611416391205892624328753429041846345231728243896008264154695511565586100401838880633645516218536168263165252870068142965431593529343059166998285936736004034187176202073216842254526018336578130611196055901998773055212195619979615929308529276417558433839568595941076258625393212570047567921029357684401523236824306807295143247862372060184027296468006224094667948676689321193978586868916133295104026185410137473196580822539298030572058584738653649121800205777689042139535257281016217288170505809297362245483048618006112226754011518182786672383278808953484132297266141937029314351391297903320333231753818689456917052793414260664383102815327904471111323309748332659521842546596353021880414330710085937080569144013918575477201646576476305172790400645739679839573552610946688840144532577699895755749088725090273124527032195320793187324173092470910063842706985863082914810764402164177167804321677879366376580665460670174774434964961898313465368997226768007762315088332899842702313711339928555048137788662011048994885031722873022964316155059235032271782341624982565626424193398355588525423907785017378371504504351392623692572934905470458125895609277369656017952757098174551561784464107781748879645343413774018808111611103618590861876324493057675127126278106123639567925234268238201751846179063712969873833515936535428583123366792332398452004749227867803225926448968374883897872339417485635000738094772179756747132005479220673356738899215404337391419057248876212912594265908556051803401123629378504310502171977394106626346824819414007671527271265695703158453645628711813812587189268591193965354853758756200696278364386177260495119656173384890632592368121690420392814486007652105748925616625091104653869023126471104119873484786688076867311807396957673774321260795773181999229539821997831733532375204229107112410860923168013839954672540434627125577539779175541503292441669651612709153406510234810114835688803203190798431828757133678344506393039912541953809338941168732564715657262224127572825479720003622133628478637909458198544417719968122327547029318989047536609302236469442793453366239557299942957525405633730543716235699022127781797942356629480436715415268056444733671139384814744654425206980052986152440444724145727566722690278049173298201276658299884380761295024444132512660608986828251938613376893237671594980745315934316240505021067567797730842387349777100073645089655839116482459676772102620636226275491696931731432962854282057535360515752450481065855820446802538628558732149448642182598270215493657431524308979880021906668402907018215234540337665172029423972153833993990634941700298566067385199053152687836634230518435938497878554658973893535100255287440943766410958579255287298315537792285618102216845346820667828935278338536515942988567896299307444588629927168500822959034576675432022806691654652576495172117538163586782149691906386166044667372346931189960473389331894794422861481303804449792314371992287858981671930959889952561315450844903172659796291400271041744973769478544108635007809081233541005162116915813140376012675677170859238468192620327470614852333785597100450792811812305538226450553797455095045262407494055425953520544875487004667261574130096635397982458780947605748854440936177884880505077120818570067054146455954583330383745277898607774251182087211744688084902339913793191729151985727058054647542310264632390831870566363243837459411212107391898938040317044664672323646735298100923186271092333233332376121563377494567095363690956297970330778400239924440314531429372750932069505632009497520298898161024964168870781313237959144532372347162383929005713415930229057548464495384636848621010543363183580464801517458229779039950965672260526966744821137082761082861672540217073681862154946223944616102188988880204326626919663964906657273645265487231618462268767175413837670998387046339084025551977485726467452441490816393513974812124162848333560886421255714627133548926870933518103437237428312407262790582788927081882252549258488449801737114944007131654137564549224086464713963810818883862349669072229872371139459851668890952093066438389005286489189617952568490555066635447435904962698092599734159193143727124374413315675199760193948010164270531297277546461306330031254421464806370672516370173387819543192966742093184161803804853679539134276386292337520960005946167946744208390901003426646523582059010492699809009254520144085744821188411078997521885851753938784480981860660186667202426585576161785996512708146194420827063225823208164368451647300957190350879604122316817084728799053950900666903108095200820131234467047352547413469791515764724904248543300699034786017634529501390062620472698553323078045442473522261778894915588362964939623601827923073450236304866930047722443570468396007614432967104358055391142765840841934269524343236999343975260531302578250496382934756718875303372519547488220215034150748135380368151099493850727798022659408138051621277630897750980463157858073780678111932405053968393469680592728538654622814328096446415760717761310798270249923768818185928847346237241138763294516986692385220465455612843549444033918985106304728696864698648624384117311519494783316155552601585736316979974965315372322297050667700506000442325817959892833784249295645871503458184273209637819050228109448759170908761875183113675936673771087471577869530868864579006710112990568327859252516591627373746317736204382966761771464130431092342622433133869958036088675121294696896340352964623219941904346301282915168394422103092890016873132040645016445005727508902966178241865594652668371029371073074874704558441647586864435335984842537018094308640589808995233647446657228874889631200707597513227542082227489600608188789115818731471412225403088815411236868985031142122672337997533253979106198013211142090647854544319617783515810059859696100511458637259447021179452204669527826843561570353227278815849806489149251671241128061541995447064760305934481761720831346327459457772159278298576962496934929786242451023547197525793506829457493217198213924152506772798473289983379610069669724114626220555714565558283390941782527908228293787745531665646981856811945239198343903103416619823617102891568164850287520794062856655685096539137146216682209876950733196689377186502650408883561243385121709592280985630256352564267804400303446764157613495346987594065410066440670971006011088819716354819345727035356343948851209987470801370436707997148252911948408031503044043929909998195496748964712455711878289902516309457943016306235560431385172504010106527061096401034789579036779529863451040904304129972871445726974713073474583592262103970890237308851603736089569048656715184149191496114271189412856595285086214083294973434123994835057228273552384555280909283904851431360424598593503831901570880927088229791386297387615531884505303331087589749509055097959950411707996447812646203686874702885030850742769925790040081895371155854317836029409725890181927327098112254539591429204356313185200723811961315941938431695934879393242370790252567127510684615334445174971832304710936368649426204081774102575220473509046597899615407287981187405332781851829090041415475714600081571871785451205362775550157290754405550778881179547036426785002121371045961697923317502587327625872568893124535309784683194848018787623923405228849634118630971139419403054599974620559927025492114727101406940480888933573675980867645742561942483999704898848983907731499806592220027203627741239057732283510944451817097283824577345281405809134339029564489007581997253398466243517062927681951416640674228235276975619818606269612136183217659125564908698458495640113812633565142449074554583085101777140803916195593292904195638371692292779754248659307884408789157465708060998220300478211388099105078864651017114340845044628236846588697790572837242191638248273625467050911693226113404418869836334220171908139308133473620123814178280586462746022312916835127180425015404348147719011231964570613835785209879355498128728152877250603964416163525883791191330179565133810887886225438691830821316094575394446841071167019240762623165763883144281812657262978456236906874304234455481153607169678907151344420437912000729842258805066506117440922080032127181751918573628548120914753279838446779854073003652186867656036078498848056921298195363476808344798304257892792008340499512567590077656328391172607810584677207591086552458451227942305365769279517835081804005837848339776320208413338755854927101898706813414747679036987210548060907761517700911936717030199352678971009675521787941760714073753644692098427391597041762243732336276815139106250153954474372634777334399200324548490287569126548307657263875750063830807576466570665296095765492552067345651910621661814204026078889380563944172195656512343827932719110788242453260666132033153451156038671939562522818097974228533888874520089387229065395369669301139440872209277000427867954597701839188429144177520057887847831699908333567107227589228789896832730627614550989689441032713991320704124177893490189594019953232716303815227936655142120044891067022330579292691813000147132757518398039257734498582740495805851822403815896288084106091424359442966493156891866955815837722331392923291598632939253235377689396883346278870330879246491189442570346241860798018963859842338252939493330867370695431382226308004605802569940747274080415948492149079015214246814660667101039824549150379919599867546526468610609330032155597043545215369649842947239000849110459272387348794172224698796453745745704186437501920650331019075235584331296231869779276001099141521436481195594691789706304866751530898267836361744957964385186606352174241963516718991438594307185849522208910429884432183049220888552329592589155786746930830232503230217679231780550629798317873427356013721401083815114317278309483881236997872198251559339263670415372367622347347243740973195756443157753774487856507176951499544607266183585820353042093428094599516987340598342809736165976842583736591667205009612485574665453368715471235650876201297247128863978181940305785049159322341471939102063647260306839158732386723411357659377300280491429088419068666864885765825347333099592400323846251031294105309268670297046027645192133866617901034719484394763425768071749287495889344622208235258056838422805828557866873094023970637259999492290455896716382220431974342745694089850541017775036858251954861919077321964428528173734505170940572862469416644046335991506869707109324614957835475082224481814600449696666532408371156280077924434087490478629090158176015628852100181822614405290767560398933778873762374686613900638976029133812480835325117970162937899932635497597717001994356550564533246972733941307978977893635656125497319075319516659557768726975194068195189937915916320380991346412284338363911532264827745241652138955199714722038532141731539155523404637696171348481067265956261854662901957701436947376098986642960661460352049611685317709445314017213478031577818385285849920732143628269501494118499963115488464372227077963071192631126578228701078462869858639021803385602903396157753073434319814841169485939854082797678717532429076288257075166641802202541824227417204938316066118615304356641412458861190088043207664598377510436834150535273015074985366392211375002710399500666704201008555810659513098733202116777996755974085186444845679737374335257750897595890064733545103970556644712676947748293243714895323813539356238953945016090151247109200338465228841466320314883737750483165209161945158100516982568109980025223855718978037127430518660908722406520190069629894330509462635422445609612707731273738430650453793106961329954235899792690248022191386061174347807620526281719337781422199737244563490566243035270728305505926420351414504564297598804683786891612479055389003389342056800677135214774678961215733388615998444869702961191285998112227137171477556371286679415912157095442649114568430560157012503498354825663200169770531876075396614086926527555751681870396101786551345946695839243542855499827566172437736708167278477239762009631569116866032369696694913705101409036511690490060516431365896918131576809411410759461497714631317424515894024499884261076267385399084670553118598192283472556097337159137930907081510085095608099036036000368396511759687019047895043081382198585224893493608061361804445508636193800818391768398402443682078747927189888158532970480245295668963386670292518237617326418130869895313011462994662295915225473479470769839264484632634586737684531390121278644981274418404275688967843694896857773463632970445193131224095915612715260007163003481362656617723996063191210868399090713773087952290369603790878700637753571609301979864520815046143493867753813102137139983633469881607908856532433593739757271257241385456954032105927270410003178683930972232430266381969715220372905110652228092821561101882550232600171595816825665634300280581102609813363586063959738780194199446861138521109296364178026506967660920670722079533793201329066606143673289020783323043609385108816808435656844892133464498126019933578557771983575684934709328913772068109909620238348446806371180930413943812969322510533255864336886034301524055668092339209946984377411733749114226187642952033684052127219317281350964729403347891697679884124259018347678062300740994124378165437461828037297068743036326873853264294197427286520870180058129473155271213195738146758626953465442741175799767161600609766124822748808475619911403274135409871927590059719531625910650400686116671068510503704770000252062921357569580982422671527239585574951226500835517777001551175041945709490526868398720279187867487866926655568871111326088983093659746769647668337531737639180565319815710748391783064316486439234050100002366817418817036615109404843594473354929063675824985077729892356692294260170810309389590155359748867845421233467871839448118028943086286187848647273821715017367545912664309714708983337705919177654488466604631639631600979298202035669389405257389171047060716796098364196103725283853169410419086096442464634860944358956989646130516973679509045917111700640504444218422501225930724868262586386544990540844247112014086075371027999980400174088009706005699628234271827299382540356630599498200951810480796772717895119256721893911170453973374586904201451172037081938065662933091225073763378139994509133150026801898006741917529027661368199682806572890735555726733801611505678847191707652698550204717566319448780290968708040391366886940531984372009744866260219900333120158517178918781383274988421402664595073869791814587998371838797000557675939537546920161657717970413734396766470425207268718769446262179702162810144606079097746656749363897520890814719185546040540925130509822092874311517045252761901654125943428843086337013542094400960858576981310441171348349629847931881755282808806526650143164263390147505780256678618037353278122872713376274638840633431219402245394140390943857635400613412774867690805718227665576523253068875061871990973390665051600093665522866670567773913080631844872351494899609657380170325333451357932008700959017816682099500999914866088420737492569579083216853757961572768965998448482973474261198539410487516797587884091669450514286138696203227059751391361861539085582326275753249525430273529289400739854406782746764451149688461202070840717048107175395631908522383287963819707664009299487626886527943237867743882592137907021058395170970678155561680090394606534022630792359528201512610010491416976763375538043460702160392999902420547434437821601923578959982638283846057760898696610443473816168021854106173611795344100102181983829088365974807465874001411118194559077379222087992553084634828557754882441829586411489560252600872353962128323005842468245747888967371772998622516526648041168843189774557185854472773004101601285774639622208126769954510418395735886953389627941531697904998529073752533908260756932045158088416452260237493389205405447593942530455484682148080790573609434909802656895521008939666268972352954385510464746220991321913523803765719126628841257734870781190550351769868204209784657496713289063215472485635083570006042086097427870318447384810337319352412852084179943745868540413127275222265534501878379751860355430568405068540687491132031979947056093948557580211662936754926571566989892914708497104792336815284692461258824682173150944872988366660218422532027905801816974280498082947011450237649825065099200549571982986435413943308842811348261041180906397660245225435506732444765991173282724004330504733057230704203262411805146645807335321453349581426651414978339181279459071388240272356216861730493910938353774433392192017152241331937747917410109720083340412695976454591711280589727658403880615760364318154979437252740505819542948763381438141364007576592722535673089207312512721212771586207734706434701692873279120104177416602496417741222791180113079964535416439722165147667177445683303127593831290534274382987255894334564505418992547718176887624721943277550796602016513885071616952477379803155555842749628683709632114701644623350889609141893754806261545790374153981903636364365940595734734337816882314440474094041097388073145874584183093289844340847167270334111621618894399154619200395912719326825968639611375821266575616242676059706455101936239825602012989100999487872685299765133454611145838882826752776088274536963855830101472689688915852201562789371629468519285704065926329593187858085817751509210018350677988343202110336684010466351601044338478883742268149370136806959088961978956586946855156423137013332129188409820541615815805016697444130202567538386265961501723483108721907480555688807424713157867086827897769960729314463754043545337856481575612789228038763544994536316969399593699198570874966165795374489103809238052867912403979887259689331664810439597064314801645151866905782207429316083522262184771545215291428470504131125332596444051425309025850713467034645373774615482561371627028688730636485799138247357811836432772225345561768759635988255663488782540788131566812794131047002349348652865499443315081127608975116859361051332349985237579114947561422776222553314098596769935332943358999142236244175169856261005210733291241066440209116078127848330366226860569295366072064830301731282012530069293121260984791624937470882466187929701600262193003336224784790588957545903083038134510177655558943683047951899793907145371449213140348042831298763905058048311777022546866586593298140961748316387845811209653263503549472653357785922556710647433685123665798725598453043481548618288178014219205796653427504924568491760726617228296135563192640227344549641922481817630097342502037521546912090259081059122526423283486768688626177349160545266769021238789180058044712250880400572306099107470081619949543818051705690820321142011806008406572106655102226576690308689645259294108563915214934347796163646315616390781407798188132187820278402719036232373783913405984074153289943584937173274129601087950668949992174039003748908061001026653715571795980541513590982344124043087077916823604037524169304175554987769196374835338200788505999287496999166181797229804430600116797211915516960019048917152632463499956234840038588579096348760763223495157627825505546414620856411583074769199530212391301865019085698441192816933093589660667508234821226476866616042083745460822656764614645596383688652881969433226413056501837495806790325888246639528241212770645576010554815401438396837833867266128877090390307436886093092644099544076574773947714249753914836095076404832030387786882742063555282023468497733829611770122799071229069042701098453832367259940639762738431838161244010971827562512662562572727418940006538800725981941551196295576717648789985477073983838177488417990435121280488103884443319329347495621126344798297368836223479130065955853192059545057811014990037913951459458568508258588975119014456987661681517512039389531414357165155910091457593149636876891786925241012856816086706977854534291403545175643537321385459943195842067971824785402166378383715752338090717563224382471736482270203972089924267216573874375364886653161847193697138628470996957452252273144860481953213069059316824061230620426973391158624931600013531650093977903416749237867399830407968191365573629855182252475570991592494949734979734888203629525989219849443898706220380990447173234674980500263232943931212707484694911645167118035355390521599719852888683915257628595114329708658802599669493159063971838652537804146162772293035944350597583500964736094192117852585229079421654007774639146593292686661667047720886488690911776841194338840200701876242271347005572265431075760257250705197837537410824936934789361246766490987752411883761336588196839635236486805943358712821092307954765385607378933544938482671967530572891706365939269855660281322730504954599391228341434882994675444016615471357279334558313091345243177145222997219976478368990652685930899195251801727642357933835227265550190474192427621653709780263918366392709178316610985569176793435082324969948823421099382495489819282116120935011728671866868706563068678397411318140904898908581786376875321067642150627873338644896167169993708681730273162343307729515041189325506040764974212096933444785809125665975897514772246388617970064305756562871729692151035737173522822928385021382321676846972329267310408431252833122863481131963932850865063672392377301079582359180716845196060254370903031069832663619114480761390751545442577190625939152945778420337252820119927137437640579463229835076779939955140943315982982872824662060768933891182206185437126311974857598754268281391805420004546744730340366488346620251490872513480833989244260874207534879981977971343242944113288048809698018549864732342611691747519998131992751138234938100607930267698875582465145368578900230566047382547444843842560261801054167367864817643564598617122458844627527694100426663867961992788075055409092954456425707742643944318039160562794048196157442908260592770225124482772400289574945102605097641676170647766472114040236000510383995441299305056737235284469464411248392136573847153612994083195963493370030829840488731046149325731406496823409960058768680669121073741925323528815333335951445277744288670055283022157053145641268946921646316446549291044282621203176056589139887803898414823443252338175257912446379329038775725025233763678130887723955409648011314127613116070203873027994931976306614730511181365787754870964035328493193793202903560647809954337934302430173658055400388211409291658146782332262463626382358857691352969917866608582808683607096990058268356206861297015598971310197536158189234581550098352141666683440097556183639641350966032655998712166791102795036494530454524900892703665560171170226752907979873743819913149485614951799762415583478832907068294623454451400854174096610382406363602507430509269350271511162256293715059433472741905656322121456554077276733373171642906475474467249665549592019807218898344687291457792076605354980978919011305490730378642164392515546483062935811532904728966642629986050141095908358504766979676909041334812697202393234234564395927850250365989184578023060957666462754704430562600202575923210328477194944087280737753623670545879585286513003559890580859696658526618964603993849140967224135246959221915158444883365461403860957230810567551033837128724191364142346125493296192745468840749328976816312128441572987224708259626285649318547938411920567675550093948313442965770579990052625084752858847359500744298083624442166832490919242500142602490701606048843302149284869578069883776765694502865987854853826502979333009353351948649378111883404484799147129795443695107119422579172497460555833126201459097600131719085204716804723775214452119801719788908445335029882047175497208841547737662284648659654407416977025038257331652687844528301733874764599221218244789689818500315713026970266035207694518854962122562008822181397404956480945439821733562650547214174060177226515659260418198749004195306783976938445917671607651287343610973705519034205690671209090195612321782180565164397117078567524361463692286304700713146468068699149047898970640267731499254783480973642622184273034448120867758107468583301198279317824054117581321741487776267418962230677922758964449678422794815245626408853741562390182796211456877217953362028683809333387032318364250722767407337462448050761916425768724134064372525675609114738971783478875077031498371691179644718677129809601557030282911217607324468705363069578222779043432195129752302101419014126306410622257436618437803355604913413437093901704438338720659435554699975502441122919887340293676102973533659245709801845457341692533332485376137375735827880884974360594522426800455457381823247994535547078190338115362853771087841138540810691325425592478400959555840759207900699190336900312668666601210084445611356195922843403970018376216357047079397339720809479647257823893338668280540985657910486616824628221298924648717358476125296318496805895953175876597590109482630437687394714373922528563611995773205654771705547888416992633237491990245492659482017173021729980934626746302580691940945211428047195799424615603358309252825650397504357612077805492752792179358317401610470019930863844138833394080238932721685046675643092390399363725638275646133859978249792153151467845844372251146404999709436774592175092467709525879033519434567143555543248571901714096379839060517013897323944193391740734965995011770189482840650319501305748998553374888919957385559720415055220942740951275063744095998240959662295773394316513251561722563431237589933854674516087802729824640453145326682721462394432158894452979156842958520290508053989093887022845044568799831638898333852017234161275862947846615910963838816444419439239704127146620170128784000989690732979078419660224037996050065502911870863779373470552602999840401520353753110854120167980836427859263868736472703159365506011502698051062276136829758016295684893013072185505868994170852511969818614516788045864894726931045901746999046932432407161247317421267578117115214960030260765566018335305932429334866976216795985179069623175658684450224423392733648276644270951177821164489991113863912677736327707177125048660057944904714780638598295732182620432172457596725653593563335264114870467826690054603778081161141149691484222288515729305240881775141524670148502814703903757768442339661237757833354885887107175110584659132199675120316140265608859023398436562437184851309570612061280180046345393119902192003227200869015621850401138103124698894070654048647165706459993295101162746851803099874617612125619299455834783748151061668859805348663537746949560446958320087052308399831701194922577688929287881284727133656656532295875989416432543387769050023391587716781568996196007280886705197482696401429436857972274677322911204157466322152896872117012960851973535337900240402036039719853563154554825119102484622454002802477857873855500108449405538383226566794754598235707394174071314473083086165156478939946613703716940299083776794889624234057785773768349826836620601955580428475982605425183432431550591136122296452945466259243811367713329088119115926776085597896339598755060118471987516747702576621821867398730299855798656156630231633838471326127102546458228148308520606272390592435951983485483569101776118044009434116778693109041836185332329900450092665674806740016927857089939350380617412805841329315820814625196937274010533020161004952059420449549516962552754389562447715382538462305365839868389590548846233551218183940190237523454114995858505721360363767914424311590511150578247738714569343383294084393381555680989832980059991975069689964748565242325938195039202802448916401959853640645559775151814857477145862576413089034037112630622259586989094947642659173285420947169987234832655234726624848378126159160057761545225911866265387284406472575753683034637034833595310240440681909685360243859849881731026473266904492648881736001565849430858052628292258109137715989996842690989071821861427089840008879731426662083569656422158949984816648367278151453123564453047397590640414197375545273707860393575505195943268155005224780470097754373435141273411210415263449547563329366268942795573711720591601564778850744181501787416911709461798981855174300032840209409560341683587994092259976601939530875146864170060730425139743666502970311540963885086067226008886693115969680618081449421893628845145741346550544138723868459323609339360288092028270855430204417306738465118904577486470641675046010166571054649294456749080283103090133238901845112797752632732326174314406649170799460241895338986775289766222960924986292538025583529965269471992294688731894706715184739449211014565174355608175239390209632385368864560360860781339523223193092246148215988957686991160592107287545372489786317432319442018871796369995123689697529536678471515260205772265031450479736803867002355555226052513443121114174149766965248693872949004649188023740248090601394487419141153683249883738868474719529363276087018703982621984095457995573796248619301407032042326877359761455209360811521241273895866371211728311833183097477786240986792574098415041222808001488332586253966333078265831879200999442005364214504629396197294335993888598734695214826024190497845407731764661502765411372305410659212845801003930089393504448000497930950797841900717055881284836858769467077190269762624257608660477803602255752232372614125857632879009180230476257945263744459895706404777397758030150257847543744489356282921686461690410344889772850978972923282070449178997870530834207437539338516855920777670797269437418201248340431949701380080681220309177338587805356668442284718252471098616961916284670707689682631972155261799793329074852761532275180795621787391549786648710148392041493792732601199989844038989146890622998965126870218682663313328816540226036220909114447284819291597401384666200063084866907921545711654815689721041034573782829257045711589242841428139346307035564785041935483327841822594842183644906233934378660803960485559305394067206425766623904060321370491547594948990727752764607345353659345690167581540265724452417172885070064276095850606112792864057889027275044382855140152922349115708230550454848193442902567335078401804479178412687850804314108992603880249038413974164405445005298301013606167372990198114718075491873140650683441704178507144533544600591331548507809130071510124362873690998449800857591786286242204297030390446697257293365997590510111777852951606240865359112044678994753670885025380659152025647709360712920345815892734982130301320519836818748479129507435538260140602951863562769485379742443543364263648383019793114544000608323371780991146100786781110274611255273663134354289192222414423999442366243400879222758042226425047161757034042328380539178245170038022574503407825889175823421882424320426359656762950738057846294528208580205941464638717144667973624611475137029469961556875511146929589450561638622082003481640616251182041296861986575625440059887931943095201890713990048183961329954640755744652380675516759008296690331995855698008894470759814672131278836081569763318450632611397607016454565503847739976884180705509187787140628018527607308900500835717157347534726758171484142408727377405810692682056035369412172003680788495994710338728088595528429636902238357982113627818582879804399584818653973210067475033447800233974929556151065722879885770038819016938103933757796552163712241991447305816544104453215798701251473857971134582679151180518300510529813470683336851628939971092293427753778024712350944064187063844113603671329645606155902385159867840212822746097294884433459061233400161460090794282278297929646144622914188190548950545568166212024407110653092045564515018881511067077924450483102161813929281611861618484597843170295339281816755416709302533350488607282230562433418054798874251746811421280046919303243951599216149337876070068085301191860678736466942451131954595877560123718551280347849092696091128243869269273552279249806275886542807116448859666077428838594606911467477617561054861820835117304817724658039125888369561265885182595378268181631842601597434728483200686054668519378162572156940000260345546189920775648348664744531812675848122203072781607364177054120065508529307863477155526101310252668550593240097091847741842831223881866228587767986100672527077658836700067460814972858378226662276268787192746003949170076620676331291544525292845369336615702666151193316633792684963501936139002344202661247202487745856280998606207313559464012130923254955210816607690256274340477886758968382200212375795234623862529376112409332115011648817128118346674327288610138139549800143530049205951440486286161383436377850605069760600924308436341428662161262959233766521032434080447607494168463487669974713708164053514894268950802560742089588483610779925379943552293533697977341272478192232823168289118713518714973784916313147547504014971154275748080437871967533483567522829036063083145803448132170276562731498319093856324785485010631980160604807283837368668556840668399600435304431591995549505215597238829070930423149516412859582205076844164250963385273266230497110643232373861537923980750128748547923607621645532420667514512800004859571607768213976366049344543006078439531675403736846705662214608601436393904830500589298735761523723890148810413630681160941865251238424254170334731321950704316448518271955220752084371691563287223188877582993948483379294137878233024694212894595375498758074546855593724674764435214907207904971072402335295368267944023138061516009664281078253703384010044094341928953113224208752504376600474516881467148220120055286268598005919239063997816013052575289565965570357712762729329740619170713905573511327912998623308844986438040344690460746332577090891626738673941326586970306390165108718810116628032836997706341158734042568750833578178027069793039711165199766083985834068211287761842360708798178338653609002550379746385739817504201595661089352130439503399779564958597080634849157730990563951703488672916290254263377926284671099098381638867336033882902277411454660437695946988596713099594190686305709484811429984936979762582908779809534685630468819433759567543012015625133778926750530610591325552709587386963813237543109999042316711973352100037064331194163972341424231670281304022197226229462177043209179953016461382736356421249713457538472092520611712898370123236401116320346412588972355362294586224801697234657068726329997359285289402315089982618528154994609927832932370758313122937236354801973505769084545810926990710037413721805840124181501496233412097236393490865535497936901445597835781997823604324361298669827396241648010658794551974948843735924195992922561971244621906596555868179342125159620204323031653056102724477055483329268870637671792959299376481458157952109845849346785822356825679627931980091364445402796789124942257663226636524712056782702633917764197139997619981532672085422956505758258752550627019336082502136089161168119269299625481193026597991850472999733095729633018904970338147529299743199336623810935240891369817731652037366239848210202705818687090470316206181254217709518047906818748167757519923023278517872625169241650072161888732598469530453722522041460691948795037865394527045364241102403593575270518910302223749596941308902078723585497774870287331574450504165001780302706935717656082180805266218989876449882251589159694138682830617233714561928984565898095924064648409928430503499143974112307139062002794607682730543526385252609431686386118230887326370085769800097188870062728428970684265828038217689764508076594255627500081142253243572722411367774560981007012278667559985866138249128044718417625433811878285688747387416875917014910061952182112467413693237386711162328151154472489906072523708463047700127057017273251309018635114578747712127691657999419468456138891580838330415590415157501461485247312724159838158737680781782943155985836069604012667549999312158407117802785733851131877153430857824764715744839040751157316986474587771987569356269931488608402887215091482264915252661823703604691786682156855459055445793789708697294274647610041151798791404523221276890183156201518633867799486590373629612512138640999089984473568308046671120745321649698950746582041775111400282372649153469768791893705166730059640208835935698269611611742674881516770451846373681564701476622758494590476375578335262495788615155194055985724452766381502704667347400388815297445517807144699761371103867726440429313846730572891533938630456962637487626792391998841020590055337808361553490388955967136565785498910545369095372742275883621425656023892035209470600163225949675203250793311534695288864628225545762954945448794451221299278940415227642751545055888923440948267881675472330213066157855599346855954580295677506400912124566848859949413669183051639910441180487186691924523569768103769510040402675280708678259767868782226962469169465043826083138116084905455732827937980609196000794933756064427705420886418316872472955320539397408374160820253046868070870426356054590535647791102603678041713011973486144436499953373431777152165065603161207722824398093975347863171325688805778120805834072707930565242708215194580555096543249409745949741970743169314279941209115757274782434637930870942985380805225572240969570835627913581212485468708740397725075343089805613194662811356532581116848502222037540080767678164021880286638672464439556675419407821480378452159336921010509810316920706511849512737925358252949925907678202868235182070443037966683916393634987839937929445667492912966513646028420572684681900295342192589440871763130592589648904901277197383721513663684079937219803420824739648692239228221358397497884162639623666581419587628708002383181297562588550940704064331716068852782704657091511582006952681642412744177212600861859733485556241798694274965056739502338713905640575402016685479609080782181292513590088642366351345440610215832984474124763538514646109105098090577138243482795708225760727308851232522770678623018423971686090505086471921472100831357231858853268936397686799518877582874208556999445834879310124885569298902878930349628943154524685551366486526516007443823103976393890001118289417436559789924718187227692273230961818877279186781701930831613610501500721211087478253940404302582651600720605954895975376075646370319317067687854745350183161356907208544634000260281245339388668540448979983662862458108928667999711194446756656010560255163178233446930644245634494840461565850085023140173893312094167335606442827612504575953216266887507861234128440303604393255210851563062407606084806413304807905912828751305601635226059869959019693321471316979921252183745571155539095543598372347139831552501068135387395798437356637122671816740616480139491281001430920019188261028506585796310649960869643984806052338683498894815723024172629616753381184523522465248418944508712263208455637065464347978968000005474355509496708918112092899609047297838590676709450515024276470046627052820200717869546790249196253438919730880593427414945782279071285446032593435159866525443213985388262166467637176200329463161643393279351529090935890496914841311247985449863483274991385579427199364396118543693312670731575358427287574650703284580572700102626018626359249367619261487931187529598153884660548269681283105947833274971864614201501871835824187450792707091041563669708021777393945125897815508491531018711807088975151473610758110208437147344032008202319652406017324602365372688248956281515448526911440676089225768882693709390104322053984592104019319184571746817056860665952941767923292358062115643467154007900904505520185634328648395050435136793621792825975619342790566895772545361097188017466914115056640161736926413564253457724643654839367551521599731384911850751687561235173607003593233313979160705461709769321547672334956258928582763929644403160098970786649593669878062067749863503867078113215382204425154922380388710993024843525309985188855793215777824508554088451048411654253247295057119013650411178678406699862237628067116329983805925523554331789999116931853606905291231697934351581970317391879226759030908604462020816925065163915380648832568644611274091204365309652845193027634217295657340785795154302844879765778024138731210865241341955020503909807578936803554459180695441597628785191074507065467280066742969278169205826501827657448592744794080437018553113868817086717523075535879852069127923098772901229935584479174823061488085680731261890581040120121026301594465682113108584628176321035458670273464228641927946412373165602184728422405681638851234191187781523070179803098329993310848373391884989735399746029898059693810074611590939037827440960716225571188006898023748155873708714737645094511484453483888540348968203367486230082802388168023371837989209565202644140980214189918312259782480554257283028105404640645829099051729767674206748908357182987936527706868357765367729099191578752389604443839478878146965302251270032836992587217858006445927049830151888993102804544570857830113580704941639553535468019173957070056096883893015917207118844368320578286789262749088309557006699953137204375266404172427220486406918638735857233065980498164711481545482740328794671360607871918940051276170947358114813262525224272738500859253587395664931543869405673122126411970717953206832663351292574585988549392919029520539772543262460030221416613003007483933324278909664407366270784837357605837212663579056476360450100134005074014220929005538774337454757613314678244030018865688556411092104119008808392815731432611713140160140980890658218359355802663770512111436499625927316334420036732402173430126966936813625764626711570115338807521271742985654284664051748059241339533102279277488755797611633654144875314076224467572109713570511058930029910608581561102379602420520770258774406621099959815530778968934633583096008176031383302985672387339554644813915816324658388717104388710374296964794159172132274582205262738031920631350254186747409922684603255182263374956520380655758641350608483288482917595104173924046137276863310782693872602466646975517689319592459998353375088187634060849959635380888661194544880094158761959774883644304069391766159178666040337517234820931534160659304582639887049322548963041735219322254759122987790521710479779163456555137757648980009943274169367894299647732583875739276116957064923310676725134021264016621136819256539974374840424000911838041268368953716731754081334373191043449515265257566369251562017725029165689395214021517312370151965340957437546012154893300551726670661354904700273622099631839996772205644832862744679592366864806033976319331511304669019425417189509627336487695361017162417299531221649216727268220897665924976542231244228119883532866463496737369597517331068847770209669937157010702567752783822580494476579878921949979897845349583952872997461726327835787747476858549545014288068719109014659083676596798330435189971151388934693419670653397563870497738939384036416152716349283764223344923652387425161407741280356524086655648010918061040773786344931206556144800884190772712739771989631622262143947008490658598412276436670866419155915391064101729993506526595418094629552264041557786401233481227265584701330936621226571820415106190987895362180274241819972106666201153767137744841044369747693589977208442509344751240728433662657259225401912349027935059685438807121720050353452236464725447730863805514904097530689632539890724999060654519826081291704054797201997516546619568582162043499753776215064188343056451665392820594636780299546126149200473672610307678959939098356371187770580799722996273169083591744583421316826663417870240016211594250261124281777002172545477559380075141298161977442202632942665877568620378499101665546412931945369690306227107267643319107242184604001498468580354928028448354807942303121090729153554314828632795178780818104023129202722414778064080840831378746840873416272679011839341007781419691911294885429243567745728060455193112056665530914927398989201925012026275191907298768925386906050277464666829423883208421449992400598602077858658019215533375073091502340811129555779427439623047559849031999210273279080531382784787572732949736969697766490793006759612956901247680089722850840797132654810787888864437391514226898073339913269031210744134731099744788596608372367984168576493778847448709395402986930865485588624337652374696622452140809510288272629444455852904711749657240611911123555112723436081395331035710352853058753133269919138664553477379355183947617839147655033502619103580021445153615149176957624858008168699308369217696490576532558908816840304243532731891939117178425554042293778981910578638616323934199666746951031136991808131620254867294990715045114789418015863444332416929188398298901627025983080025774553435065141289085850202598839640727926439822898272383574151294100942053674807701205740475130114029847738692662847353378483125221366523819804366439165842373329039153671486596511124949376226210787966408675087796595330249565561632877804624086653848027475717727633513119996651781123266392399288653797800555962954389002516395970641060151433437842853901118868823754357558677489706110068220238466417375055240109866009233369338621531933202064241913394128810182111505043386026443650965341113648869559220333330732398954503752290366746426113862593155253524752066814417011484312440544258022488637501009408491106413064309732839507980267369007441420913951969594445685681780811521501800188770473718294839188403668267628644263721915387759977786045460415780113146159412832896964160865238324564167683839084265343410795295226927134139125569874658512682579788486782968002786688236418415136793116569457542892492899993664843652362502510558390885099782934657694671879837361679893856702440450842315676303847176748967125486767857864920339268559802977218399429727894528457752617062247829403672296837412571542755528644694983564868859003811297617852229578672019421667689748474705073503682501466302138839771042407641656693876715936071827905976747197897652874710618591564806321609031046047135740941776722620666826741226027834761819750908042244978663045447600842750444374045904120391693600779453623158628347585124884674923621637833408414447419930223262147858233370313644762968333816243589523201440358507675090614464300661077873454964333727218391725311870390260151453244510893774347779665378054435699442934478054064338422592069974486936057083134221840934601562881015325326704535074462308722884282339284102099283946112966243259599839428458454106223286432749854227259589404909105205560138226699333532110524679282797340989260176926116153310335544931793169102243855602432686279958018638844762924148294285464414670774611014998143103212039149184095395999770703633990372459445233409635638492746988877327787205080168857343253849256187125688656566263901621221943732955791426495419462659527044488405286368401780728443078563456469369183216929296178855170735045646196863070823061072549208817313783133133460319133603457168637886175666778737872421230286292375099436085201914000736909878093709042465908064561115219182158004192108670734613136539463330013712694462146418546821406964679414188085542431650048081748289415249465222787487655204298217396385122895045281601248312559638457291613543189444405822153626589178511183214047147574282574177339982818881336305662263788135845457920874361365332736002426889364903884314019478635089200072790895866945150606439656172476592401359217029913281260419504731992522952864112763062350883320054610518403078904249966279671999636558208786593296538984379811511962383837057953460699371061563604184511761962291426365216663026404035227492659121643581902055387970111719175570263482210428895380275408525034485073328370239697529191903577942065906703331390421092283661602441241887339081029425542194970871858388253426845647881584709486299349457124343742158745026224976817391682927004427359278052068732213370213414740690678956919181177294293878068829674745406271874307461228062562427888622898775605346570444141506466100846600373786252236233716110391271486991841417494898533296922165628461687695492804048292830198765995216820277242519716163970992245835745543872960874391938101240850776894339288993037601841269884044217674556121396255847262277326469004821722374497588735537356928940745284782939231046527931257779314061760256456781722069371248918303714714571392587967521008955473490435604909939566709215555180973224002739743621539247507835033329332853971409602960879821088322594481808032788336094366390749584502894560067889761066932663277543630220744945736598642537151345585966535374755312137231790902224220282508274697303775270274826248659656428587248302406801397077282768698642061132255786869945495219728027528679372792220950123040453882609273777817087582312982179764947155505231549003119651526144671224509341904412503355472730794727545362911113116354571377187295723039548456317992903539434790303334711955434266822586176417691298380388032864040726877703613502026633496485911596097189556265721768461270560803166732685149230548212623862960984563763665007005950231577122100321194546965807580202298985807706554875392202690430821920832412152739557609792818022697041953409580085664804324366813232173830600694830615071047818054164674787430509819017134072449131268773448624731460397403701881425543577533565030288726139266759110615547772903510981486764704998276686823353527333286598877692586575676624220338293202130184647594144975252608699707223472391859771410187826538028640843582857366893047019826449053123634278952936753132202962835403889804589121517867566942672824222347351412906397998823805873249115822897699885753330815252397009693790016021106805597576030115587021122025951294910409293864919389913504658073020952964939633800471047960060409815507095457621433548069051514044388575828783642454748694680456084208344396324800214444163778904105972783421418875367084789050530992096913047630652217507625734737514851915226643464979007458065106780515759451321048709923742160260195857857115412643938018527671662539902413826914490003786222328257367442834690570961828327650951354399387034989145163256995193102881827984727571601686994407354232422798480749410415341784379550720868640527847465956739190477986788728933665764753616414632185191716240516162560059099906192664940396370312858855214163307202141299803301924053778801502088293021306477079649771598534841411641995603617965159184326308859917370346068678678553996913962234443113742209919378893709711785387532934036507068158229443030826623950724386058164097394186843767492564808636926849621520178384976740604274948610345390455001703420087067737037160905055381006947640211102479097397977661943955591298592513592647282792147448721300084522241807856393871582947330976712784938395580351153540571164444807781589621151171779345312493053945905978431626257823506208292947627475379212076085618819065904433178434645388886318733012158725783547368258419844592450688551351148538254802254193524008505371258765202383019360684182220129698620146497114934583648018330446881117597876929123311742416310947665271119581235405993632674072713993652854416860266705114515635558780440973831022339180731792887151231614778676223273387012938857587879286813651105571706446908606558807566670619488550293136145978012300009940049602047595154596891042333925488125644145335200636675897043184014536290731792717781531462888041470875115460934195919952775382965254918218230342169788712154217403903341641344286195454274091675966032071632871955947692627850231683050087258043367464568559441904697185954960756749869528037181157714933634248495225741814497667977477237571193788945260471004340699284802325322360135376106370551979238482423694582176896850892404227208432993458436125131565949127426406122170304978601579906050398834154363791545000429981575017566461251324375960686731347404603184742311790004982614681600403609809072859170623171122867658065953199321811035620112682729345988343893451419082715735463623935250284310512547948343292896105977904547676037586730327504146166892221367100909844572611715534004592542891612836222110612287638412244743347043746912851947586596353961159986577670809151186312897680626477681507899368559803063680039885013259132390959950292576453235609948137754724217843890877665874283609006030969850015568485303838464126626280163161059187825268824339430896928613167087557124053280037847989266742313690244561371394527989452594132832399314650752116763078217847443194044436612970185433960097766712015727471167800565440848464299615523117868135233946013828127969402581623262834872545465136674123979126912761246733194583162162267898728417950164189909295507264394221824779197370139265990047604530847181676402642035520072864814077911765280312540200626564662251295253167739131031752802428425340423226014753914252123341855445875763695496578756554368094913418645458190727754669977700266881309183338987883464401787328217865881108308454272096841853580792740323362023527160909320150314094345548310602301851402897989681729300063408350880805494024281247250683021907296060144540497170500191630760008210119123040365967976237375131828841118131614734409542737103696899095905335686489224362049998863293381571776299159929113004513263302069457442593682247928576449654069086340596687755437758968311866126959211443045324300445139937042273842329782650319115818934625124996728605658297296174140605339479507354222813240199666016331013906273269840738479366029841376185561468504946017259743356817233617439380709152748984313905980691579273749469793786596914938373126811511654775142541986114177684344367396681535245717059004400926228541928768318141776320591775940043795468902508665668974835765305243248355905395206364030379273953045992487252774928959870095279803148833919744940984249000002986649869788100772270308253105049436630112774364716299514282286877582113098357685555545497548114221790615071592392690396292700143797865666928564026473612477520604485976261245618990435234770224878609586456007841897906072612414550984276191452435318628481666021964073428961832516316446224811906772017064180658629437726532454338308106312554416738988834333750675759495307793336582093926549378816134007612632037180011207872229445643321471660074453848961194961150990762633318197418919501998012783169814649330924448866253894007461097144682581612127273244826435694711273260439181866837934663843361339349970441574693150672017088970943410618356286983259904908913111895338981343962942661966104925367388745437621214335919315719819454912649667373711356311397765976726813471402899394435132410646343435468715549087847295177489209105952745344194715672189732286382851225421999372731575000941354427996811806932767272243547463874860671151134859766580538030994574914588621360446001861160875292630223312083078194630806526167978188506578909129180861904755804567877219267784041647296707886414315974316305428823583861595143142398190843081060687391110459220643021767953944705371150467538669180037505931068269680938672992171605957854092451258293599918796617977870263719750063701058658958660512002851539714947189011413777235590132508928003989923743997555761913338546463460817948208069967959283166704607500447052851423272000414122155744689885928640136559397052629023438715027142915469929753399470716601942479497375178218855607744255324245102930098814094225449122509169968563306649746461884473053491102965152527900457575201419485256962240496399504723575141419021758773451072439296969286887037673660971693369881678362644036658290164514005696575535185694425580802757900463359484802889740802607181029324855309390671851279621033511040863838997283477542839733588689615371566762918431921240681303667257443878256903242004514387193257265646522499990962611887342104670580563378587959161078176273690986086149985447531681525870786333282340368301313255115665626860150822981782120296943784125725865316098738039582591587754238167738437355929074927866108545242730068772702661358421033073226044574074220237607167187205195013787256056629384839645074926920986289129658490922279847816439571109317016287194830182926299447648787724970765901414024070402950895637618650669082176403196697464647498995584714011426345752659584826738581720199820626229586150442633634307797571443233965180897935983596157341882290060479750280226225127581426829370587570332163045546567963730407658460070416594721909251157695661865197709526668724982044506695826016040335434794579039474025199799214564660874593986793373812656962438731485795818613217477003853313459126020684243087642067205966103403779559892769290227480350192312005416447931182676140238273979835747053722188283419729857149126921375408335502058549415904481367901460736577156552377439705265000553630683738609542435037264473200847776594705298543323346862022616463017071077829947513187593575624253524362080697737451950812091331063283097440756146069538169629624156827702373151813278107792690364156017048163315361554171199670112741168844428099045157255972599081456025837345637205861832076732014714213636433828625386628133274601629192284763610548951187618960250997896051913952779344889204163681179312792253830216387768143933563574527877723728121242649434113579430060827433643633258806999960019753229216158736047193022874206341782983711438936713652416872556638194028594277461467973251020133550936697964102603092755210956154894397585734254013912181820878955991912850495823005490823430752080346490335077520153236544442911094674994813147657601134433026174340608812755903926148288682680145595561329067983426198754049508830178496717752939874858712198170380567497467404108126879738080585869025893729180954943257956640362900199181409276319663140665482705283167890035895790902631151198932186947332984414023353859063807675606147126928795549905051383681051884259704226166420664096224987199006429862250922513054947280312811044407780785073235917946445297778096591390277643658878724316858699029755715800518078854352564495511553990342547049409124216734643267468966316291757388912222107048798305077359561993813324085482209533787967424760261647427541340555985606733950803234584844375032262514783540354562098890699009265942254707840697479842038622860991979908722198407877819530381952341494566142464253145790376380601967427494286866630106518528477152884960892311075012523482211014930202816894036511424933445263683629642458083233248743782737356524036332656682187194905931057038391978694954394079916143706542729311022733332818226562906414678278080083574263989777047423673507053557034440285287211043828150210845471296018367377383933526873540113120437036944273376548552309264286472751638255270699471947659205832434768629230063820337217625639548458120080851013332502444776133371058011505081235651346828200590766748903539564265637822636179580123657722787803255679461593156124268544208274924747019990339821342882771246709384969216909400080627775303231746903117778557356668985017860564790797646337135242803993793601744383303860970438306437873229779079931612947056964174930761024536433687075006991887916961277427348279588784293178734346344441483155838478024190242342247119313993358218262499748217040144437913127662097960280235959147234095262575802227304203830148145298730242917675960283063077162880729007602634351463036942564015529550572872527002043534836180587489721702731636019427285895401176415808082690155694670540604478348121514432820831944901682461863066006795565945331704964858396600574558348846590454640577295039040941971150326070002160651501184678585585104232767868074617972124948458742913513313922306312435444081303369729562828144594318075180546520131366441985412914977600120034503409434393177036322159075131692091494215494790381214438794291263792665250648284245848276076503151266293560305808537203573504345153859962234183705938232317745400008795046746762588423767275917794436637602739403372383150918756422531230999425592525999041264425227870143068057793188695506281005173169825260170895004429568115446524891512716900002766545037556191635556477478470398516473833973023845655684751148403326721084645441534960790351625253064369830139310017204176865044318154486362214720331936749671654690579754810067113062869783329557238292124866525627297373706893916806997080092928657148134880378500951806057177066835385857350850317465270801804486415729742095143251243507389289678358189250864757628862227529123197240915749201631056399615966605606355748121538953443279792184539532928821219460875157205523735508815360249459238451014255217337344822261956805552128486864273774061868201199743066361845474100049221781261830669202530961050846510037556581307771034285567690862109038535000914398314184733785829551467392033606553946624798136934776246707757976097210266353904303811636383770226279280592552952584586360674646068012234966665056735417626061369322613037413935938124263104462526030679608639609725007046281584607499070138857200369033300608178339361371476698136918406167562639137852214343020615155196268637254042707551752866058743671310723115684540905795476096156371926656787744504299875956588832943955689657397684324037640164345258526949390582208821476855876078430498401589095708197929617492581432649042398000560740227237481152922999049443511873922357890756580798230009465642737756537647135612473994530352730931699563896354248585124358142270762270633020812041224455992122321037062426508838658942558786304258105455853293846032916718743183214583334836009980175564325759360090312899347852204853190929824362683986555194676527457717593072277056868255672787067888376490626584863454783074280485671290174298685749934766141807140665005336631245955657856994451092284898423982033172226653165768754409913922548375420138155115931189061038638739819899623887564807453088701244477090093216288996385920317640262180267925901096554563288245590417702157559974692896244004981760921034804305499470084572480777260761091314041889494313722961744258342526148700197850451331830420343963436209645764288689371630799591908818198043590405895217186908755449440663128028098868802039277235687982503767036913584574465060505582650066873992564051210603268537285042756519080518886483185640661393183098517088419213259678980991235421660277446769778179140786750964616168990538346520477815461257061207715335457475023723009347989986185860870428872992118109288564713674725525965663632558851371699228913862084012678981972479416940369784564439074953258030834620760573225167065431532123829291928345632863450547124449683621505140405933206109113811443648152864977990566677236784501740388786907607817950335047006282806225645955943492610912085991371906701621449222797524566024402675688205927490738827199136823868601127883012364187047423762885024980259168188410715578494531829308697195564344108922062781526231760153926712689800081909517448732366360901587223898197680531589648945630550770757313002902381210366386610833627290257920385663027383492747448075186402201751650332395159292091509067397178151739945344864641159374970218973874035264266848760181485588976921230927957511511866362450905846057480258800052313063609273466658433410351360293565646978926556055001464257161666163367517996182912752896921107778685098972738537035412263983217361021190422751417931685627365399998411605873656155357633156401419075706504146478224970151909398906317269899978293018358779973433560664978643754856955744520996764095639183506415123556975245555015125011506472272875082425856346863693073004951154815584706163294722766193458569361217632792298657545122713879721557324740741087573971293151947451399056110251746256610416352753557331726794041939916324421372830922147826824650385363198695859611359459810823562404049761012894536322441344952498303028016419224150952472697564184850472255668408778321353610350553256406522580613322832816968701146800300051779715464365085585604098291671230642998130675306862231211470837547554770633303168395481386626979048313860602031865204841112034431249962232127671252905806516432974161268881195783577071127553286195155400661206427863623751231611805620644024450604316623143228147220095605107877307855592090326289178910749931138858991709534768444740166655721612268759895647358621142568251710848529755598064068180715984140257228130352053829720887588172902109352143887555760175699508548775120633618414393611834096425778146496071145203938217002072809112161754344294947197005168909481308821623888388731669582746725511600916350651589632376211310036434174987514030264406725567338343261498608427556009704576461259052868267365517448153579831485940086984358897055536955560739189688262832478154003778642184949454962523867377429297550404103472988403854236016633332808730045633677926341088061749361080459120440191608926730767136789689018040279977770842441165338052261231453768323060746256025863208888759049481145546168018136454833022735162878337018989533739294433221741191615477398364029702524932504268470403785092738805727758938391191764977150259207821573645442398625955131221534979065877073904874037543098223264983082156494571067702767102889332429432083832036037665544148059576731688345244350279013729283365586104797029354420188144522131884803362689823312758674562713781999020670988338053385264819169380885137552267387138489695926901508744532552595622305842849887076704983736286343586303173991349310467765878727257062659378826639841977063256401354318029449639630598120230023189884643932361133152899642537638533000597302133429907308051493417352128688682847689919911379793745700809291288876340250210101122232821971672268559843831834841197272539624086814618746391117843525599420460783313661609175862495783542086502390388721689254605958076559627329298480133411882942693258772069082643720182867753668532315088628674539808257286825552800054577217395910886700497211592252873389069924794761997603636897566005680228888999968757726805115356212120075385501673104079941820207593743346989860107000199449111163535802923878879724504781964809849613612311443575794118998695122207014519008768213895342518443154045770307837390713835803324464155332492712193210282412859684030794622146068422829164889502677363940000441222094687431194135171187352908425192229486832678894192470996670024493738831085815783826735387039867744614956681188740865578634779493956776852688276458224655449694589442871604527344977629345115337650914725754394358647001953427256438344709056809990895349857222015065417926934555359578028594549333433500817722619433758929388717527780441880814790559592989830543869410078879338587385621664819341604989418891045702252424005248802812801409290734387828297094901815907152871716069913944195855228583425627566502789099498857774061682867134204303519089594680754900061263740211619139718609198102836856432510498367934363389614763425178218677718963198129086786828145460369564486394338094284291266644453782265869364751858104148001750658473356343275827020380580669995093321922579694844178184588535948954388476551270194117320520032878649997632732118516606813613053752620291562682908945363822767326277341094403889557692262140773027292359437872356017359053857639886880673984986555153198876620780364988596756193476089936026126355627839716501743039912448655614834823125398559002804873324102834390672428673933011283416550699522772778994666037577939232101013861354258257863719716094835824404016539782805099109714001196137086966036962221421600783099935347576409592954190930942385138987245929808449174300367570161531010877979814659234378063089191469935978621527583454150590623026251362476581408502763528167588634110028515869857342753873050700296780311701559491803490836105067023680953953387784589423056465914359105141876703909590350428418670081048153839619079805369053809501224252161019017887833124318440926083793684921280129469548091740561052722870712684374529542825771324323562906324857270910711864810968140757507124175994525734684789601035646391498262115241166174997319236095321052149002944928650015077807767810455500228002871537707075992149545506826884467205627133874809792704735848265669941905597603237365204189792725872509602738029079831794061434544601163901103670157907476312993036421639102463248102587900079308122481031545708209376681324086736772377587354588303998499168699647580290530136239849921941785871170685646656972618424265081671713872010746388753142936703209743380069226936484477983621742120726659410138609830174729678562472837537864161685833624843189179887440460839494670753535555633339050880143649632073074482786847839208015171513473782402907486561452712206173628710513314033709853059349617954379961388618601523547614604419257180289070564709976412534595911480254747369694829893812136991712786992353826351946298789922499737449239175880770371843035133795096025511464524374655157224208849704258445508155010331135511424205322711141885273276167157741037863979803594098098251445166679517538970279976983252154324296613206420010136043531646985711396404575055509613760508647295850679154495272542484773749283568122077121153284005785650005027406613448652988470646300511574853222156745848885171834616734991609862277749139707789885268937650895999642430699285928782456500008932641249581015410864621997031116572857782408391330038464116267887809432833857089165865012523476386691184968196769699198032858074008908757269961486166210297936638107240890135674958641947058409335539502205273891736050773169342683278084841859632109738344454863693228014755787758115102627318496625041267766702112072820635209238534810922126580045978908913996356045947916484065741042581901916358223406588074807964144971194718163360939793817359425041078595551792541197676820853776290243590394957966186245335248112247482263900454122995173108017286644396659475479833050585372835280849864681555686141008333472373482940233673315799267357929719542783854016700974026272468772035486145877945352281887738302297390791660052679134267897890573595239551664067526122606624280206095680053283867295307742617528892647614303888182424210239031795890381690621317794428517556810361662097879005228640433103206605832997831882258916284223609003117521077390163254049250735187081735592699264381272168603346621204979728776466543924937452752237157983003765191599440189130907957020324460005441808291191337725046123676143332562575695411856192002418155243745321631830875831698383908535681333061273381152338566687897528961900119724262501868461235840432348949164715130973325922975907314763044687869779073440654284130421732548797121416526795658928166245485911379833364002533971890186936535743224130598323952282956932824573088178390776605740187293255670303377149454563230718197969883197750055667611340988277812743307551916969338429117588803806079377110115653731617533750635745730923750070198154494192573367941120622968592830533795107118650614586759763584929695027713526152541784896706787814908114237935490704849191317359972854016704916926269110272658840079297572274451755662257527079605471965656103964470987406511410453623253567553529379251035505709095006592860757732311421139233783041315380206422513420634183651971998035158785348324475164659692860809117254758681762746119525658582754885162554481764497256304001752928236779407727410051989441458112719715405085908641376503176350336027748866069771533713826256921704028338723806156581202898632133126152894135328348363349559878527821754590073394742250508922981590273992677392090157026358671387302516640452734445262895451623425666839104989251767972192760685531085503330704975292368442629468536742958546542547397374419373278889296313790026627075697400980964626675271955073705046116748031229291180340476592972218877396675379408349178285536975873750194359601344434903822479022669214661190074674622730703549039988978748431698138056841574150262280537576347678731119860792528773366759367449230060476164819971036013212804476058066329313990231866254712489491554485454957672917872014374582097256411565733705729017751448663835350453200046876566134136540444679631599201595803447869445877574947028160864163411475572583410253210712325939217673866763685859624262484630851386426750259716161831574159238927661229297812148857466737554448029055248959359370720110221410198605896771325881424621147331324335741405804374579876532615170938781794974626008889441592854499950886243225308252421370342607838076618264533691983791652336006777416071153325647048181562129587801644954934319947042786199603643476672251465037835779345661523904421856099176186171924759302821070046635506972330172783455376539354790085899842549673655486473566566796896141511499272351146933714673171215607978968045888427958222365805279668580965697314182379356308889688254270594855682159488710253463181084001234920566835593535798533110863082731627482602821133758063507049836661777074068567116262894357886550661102745204940957955729531076658897353086356689484305797197731495811930172378407018766402910034837340703098698650929425715065899868893916731796454311940466607372443947809330633038246001092852900031583539577235947228476225983107626645728531458681159480494210469751255829068888846641605466842895366084467856566916532098415455576530103821987009525630325632514026313445380428387643553214340867282402265516041088834053602885172274827103745967136669037063442263147077088970163429634667367857351530028311915187634801097086300667287491648991484826326836917832379550441756256705771556326950725214763738065352288450980834320324643044779899091841764594724243053587209898155055034840132215764859441900577711712999780464827715260992634173254526384954108578538630625375845103429089264645786466797149337138669530946353437105606161620781773526288396383665961709248629117581933398198243586925698949738223600856185743889541708910580879085247506365715692057703847424203632400312821406987243297599567208612052420816869991342133090737939908869584309474327305829846265044025953476117953260880238644338342316819219944733671720642233792458780130486802577999164253356137193330431162424134592821307290574298731179230074506565383070210810278633252654716180241523981255389890386099174934301670062430758215073422717404057911918869739877009504756511925936930996830628818494952864942336086317361552116319893596462170938148929181181190855975601906674785128759124857576806517746881754208026627453858164778045849171540648614933354471427545747196635021022898998838319363005488881285255365495052103714684035368469909339637642254859437098679158881921990330155878999612856871481444203243208560310205862431117983874047956110678221427810581930146256658319668666551925532172998830393318436779814344564657886016813259252114661868680272572737139173005899101950205211188469093632412000799201421338661231699862902987731423246639185457849201821996965620610891717345772335150675956508767830581069539973281100743794020307924874613156194745619548234281153393863895271598732846125549456695151831117251451944393144795022411450733109482494083864968066062274986587022826976689075231339368703845004015892147753840787991009811408424519619880310612057668522573545961146824625035501063233373515931413547470858555301982467608241418431186118036182911878781110144087871881160966769997722811791268117055180649289831311574253037633554781295611874747119353441703184805242385168735005463748043772843732191330604234426914586566207963947446093508022969649910954430452742367526593441148484961471969926415069486389383934756685802312565613975901515889017105770653322430448361331164308577086869641437105404193128388350276419275967765247296621478418675913077042471378438926562389771048047104435716175296085040155945539964976590278128779825754685411510357377495549828240493212736265754236355309404352550097889382792520305309894868881126909178044438456207074259859112343572994112075548304045704168127356712000435278291385266330567045184383630548138233061973122386917131559603524773246169577066997533698064480841825227840892454215816506677722773467352213112282439074786714440692846595048086498870643192273717740128168184443709189659548955681399393905322384469616141745541707521878256606169468690793018726991590182936733778365159660289556817685089432992867345832169344961927250877827121558714840071055171743987750306858224158471147413666440605428371982883315875994011311747025182771007871241614002228608612610868076028246549675116864040644208013376519011599753156022856093209800467520541025817903327984265847409475782278147638074843649440220870063062466638180251393400463857665107170986237522331786126333125268148489645748720125396152512133708871734295228837860587512895232007821792069887005988513175206738599450136893264881205545801346062412392222482052092258533464744723961337754794996769840124329970481705301208077806640250287499112293904525223456959802749152324247546623807842609964390016905159304263421505848793466662773731352338202476282490963439209153895869407133778069986753099775479162000935089556299837955896975076430089270144643069037487257510438633465130604199121665827514406235974779128133296441632879629377264575221535235467790273736891437492076006529636442844531959342945635674870737640466571427813978163255532599093478662639964914237143721258803195868485855699042649037255799927513795574711977162197036316697490779762730460882715970207711506793784306136584682035316161935857258895025562382980372437535147859207285087087548539223333744086637188879084337348609232968770951428691369682790206840128024023551062186221544652430129942685250338450988379037192086549868810604328789497455829835649824134427299284932124042893690172960168899400473937750334408831724750679098948298485259520799332985484109083558097771249825751899965382356610164213794201473675012834005633239248913121147939004897132893240132571522842373091450029424864606473238667426761070889606596160602472062882703430593107010584067107866556137987355644061141154181237283367710337689539619195435920264440717439718995319793717439499201025332460994036466254521211538429215690617590739948703299461231582582565251427751149853064261010326590599066668202631399977521466820519685283097797525724622395827005711175022948464870944589235215098078794533632996777515313432345460732900155938815914802820574665074409303575310173097812247494109672362980849634340393005661332168015608383173514934086415534498554276703292149048602365387969717620923635139766370229014988058581272720072766202888943444235876098635443996691217063610463803038033105643601335476167467562182655614847927136494493201425744129483322904939802615750924954691788874388136173255917914837817120711915108828943114057486599279921045110577571601503763784200214331159789773727713355746836295836955608612072030258693316118028073323515575866787947397004038799347449028981640853475897037753782599140815480780475180614577470512614622288710110382096477257446221368961012500469726083808963113435605184735528896561222797067261804599812932129020051454712923892295149653789920295518721734646663524042750239438474781701766170233162280019588209687817094138682388439504382150597497877831414656999590017490113849468766111832223974704015740043718826890444151629343631348563711647550883205183481361157116939954183538221799191170692082788496033316487588529668095479366486352025159295994800690930582099505083238498787332384772497092594485445062403425313042681155039181073221796375806878225206348044329342603403901889589286917864477335918798178071067082661310906789404444682469457244928196349557630884128683700762944482611238757273592938101826012341093331402293631689216336908529547450307374498956502656386669685583987767522646456926087402439796916168286840303891398808973129063966928537731275807613702516732915617712041955655855663447434668895235842853423330357821702278165605408316815337557854736016167699121053112017290696195549655378800288496912977455394347388065381546048364136739503614290871549494193271437050336478949260993942961444375912292496994007678397664423185759036036475554792321422919888642606844153959270027600685517623404114515194501541035031222182987954787428405814226509095023957136162899718385997345202832701435878019544476601083391012131721720927731863295136104414030682032302371756531046336757779220211537378987470794532458649856622075481221917479400855910869069342842071965858861735696987593804997035123023624856606641200020478356026388478368809315689536689145927497756081768336459710981882435705007139720799023779689561980792741648711426951061256251242247138040740077386644007352338653093749567650237258042709228921882826744139806176353609662219644309273503788384740073123178077272895156011141879418106115642670436311430012256302628650977492686356251053960305360245583849517094273940201790494368609025886546639758435958011328061367242576349182070850456002429110532615001134952960968572223138076393229288130894248059844239515479597636709577960186612682769078021667128962986773172820763453628469560613562420603150806439274090129476305644265251065455580549625947404911327475498031821020696549113806494712552024988034667216764988265729188163917467941878749378534431180734547128189842340216358190987156101854862897856846906036850446066616594232586540578797328703323617539983542228047954629416872806517990369897601878736707352262661101751460433543928261866673381403168584885393272701715429723271295547784726073537069235749197858685237678115030799738721943092871512098578643618303414605702769931685421710594418420828776648032488511893520876857243108285512172983691771652022418584797154928205229314500668734957373365083572651076716340859042312836926981864368423017430371602020967705733644286948952499797455619851475925635221125805717913927851123660158766619274722038853382202212528507940654242519893565986859955678633934054215649381234459355812511004202960816143814225757398798901663520590363478203491463396500248533255332958846805219863957025564104174259826145598524210496153828080109231274867008254106208508854399299241714557251809424627571305475775925837921133130294858458514190003127876811549202270279732681875764773851654094337335491367122487581405120627623338211758548354397027001319059013589918960007217009971742122826963849946544726168128100643000867780190479733364923327446807826602333971146085256422963036403105446384535534540045131495756575737793232595496964220666729969321801231589322851741209110342353472044183396953582413515857967448970635172238153215281360251774897444993193199998975973561745119324713132093450781894422196683467489977040275791191987757518264332602791810449638223243529797005660258824110087520476362379008931981637431205604453019006328511010139012909152992913815666511333814484462987292511320281643128071187732975615150391924703505722083549644978174636177147181072915885299155141001950212309932439857207976956547173210654869397608663344293687658533805222054339499494069352613376126348131645376159150942602864199876378185681745730985889184426910562534481129926902958643859447341761195965347040004440498780077208303420965520627691566858215566490132411913248982991351524307655026909755268575615365106594290261868654672320827391303840551467638158620971366449303516696068061715817045543395586110241658684006780587795390993581646909835661852843770409871781681430087283787344107391717717926500139943197965385000632487803304894190925388025972621336055193256796273545541029475524295346620221191461199603432305198574480867462768477600729761410120612324055600633717793847577373281134719256067288989292428729362722812615272065147176203804126101678918247899747094782402973564158097318088700645034827152741311165878789609661118783215364147958495074016354964813404845696105306404367441433279592756953609887206291969759637343448518843860214784986379915705129790242791041438066803024698007035783208552732429503084640086889295780389410300360086812747608832112303558350568647174171761818269072474556992083440370676347779880314972949368904631749418936500148465898465938052364762046957781608411252455879136144173566638137101821963049402082183303590319144934338109327611068933616938081032391022161919871417319542239017195275936981492450481916711215467863378131862816733141351985719562769957727348932133039689939282909992445289304728536760395614971751952701038803960693279264639106710183871390784767731330336635029162798299864932404334229251914114139151363466552939921613920205239060351034396659949183933344883508928120889487530377440012269688965203344640291824221410356410160558293802723957636143745062321740627361424338491553927786143952802386425912118203454415305969534193716609834290294122334464108601324714734978254932240277254605079348915722504791355067212899226132405515269866713370326388536711899613167399955709229240925396807481644925960037734742247301649798484507302223219885481261959470362316256674981570156562220033256098012842173384407364080648137655321482695842001220228042452909146479582878166987142292588973496114357546809539901740902115456230043621517581170645572597808733194290720941169085270678319258364809947886136283599054256527816525548480282965781104051154470096964728262273674173814333779175329689590877050031220273805556657038249377723786550803829248717449443485088632682606086818004774642115955340717896144197429847160275819401140207465149012140727163593497348234827004410606759330246868954082191194780586805348901832984165852310011123147253035241494388190455701908149650211196189121201135708520469933013130915947556214895833654766531190123184637158201643187502501742368801554930500729629001695315291866184210219658752931047163557361566757971960434133521777423527256879165980790226144886337434631645009430347255035105376175238179723937560282622004054705109959068936555015354243125666973895987780400470742717991921720536518779033545858224832244705524849659421718010168873810194331219343910597177221370835173420087976750664958332817506603316204106187899103390336095165312531498917572262913922187947621010167526869505709836878116122552579671340361764900798634663500937940950045169890399076560559452839684322021610874020014938605110615860742627960599829382413308038359858412759592693269661279756801935373115152175296571707195574854352580603728965867749073469183492454490544259797279937543193518654071367584540706856064498318273708262555044943590890314147474551921348329249126765992759256544467545940860112097792945797589330605908988236771516030407165350784094838592938205677615162558242137768167427153947905822996305405148673166304933351269464695185429171469273930856326755410946770532033834753584840870249697413459280341279843279334475485869154669957534612263975953038223029170822710878891549652603922229752419694162024590532908368736192259397606135843068881085549925839232566764294875332054617130970446391290668590696884171422025952039108598004976257527235169728808833657697493465186199493708561115959145775154727397787726903246391022753377342066779170317447852044664914906375821209566559546171829986219339355185524767935710362216425729893960766926200542711688107002433767069309307535777682560239785739135785042916958749584814193922525110090426659845582462196437380070999445511088478690438945731855744364709382608343058255629771083154886077861553391205889508468897212826694186516251117075567801940403432115124660843958795378531934739552752293325858858131740937485591410380030632184304265213907340793731803818938717185634648681861785304387890399038318452909642985367516150258000149169906815077025020853075841354388174818018028668745791211321876451334583544109057660717444061407166883084318162943198193707806710272999064852461008493754471019691455825442852651291891909853425967142780798953204815995992606572988014282370149284501576202757886367129039349308708243607086370510104507481222914244036000692845705271092926019059164904899035781658549158458301331650067990292312055360529703751056599279446128510147332494411852730046362318356490353109762322081709456108995664605482166083564016767881637513659611806438492988052953493525333713257132908819393379644650076071422765030440784542328282922826121830225946295510598429410207373479799871406959942263399178388441899482171764373935311218441560965829987777293724575073817456142477144641450845347127160497819127529727034376228015236068673342551822646163674412066910294019326267666202056722837486914709931565239100475687993642450972247167364235522365385604570489587518017582358479134878872539439059834800700655587332566294152779141998369252701590393711720191166549069799065367981332588512409297514582091519725252967962534208048519240617116169606643407950078436685424473214908680620720552325304650050857566247266409961084020780423285256820917101029018209387140239198396842375036080043624523395144596954135186222243960879698439085021940464487730067560955340545055487560786673470510590319279216792561545979156407035794438407383722272088108603019094329280811614342184095954218000901058931921312155827649638720796313138523360879476603231212684322061186508658308950794670861057554100014049668991331229247728071513797299375264369377861151454646216389248205786610340380459085679326213627593717670914121525151494022838969585896793792013541090602056966690623150496296030115981546264539292863136942114103006341593658118541944748149005593499763938400002435875295093322075255016426855258229754187310919496237500273001271439646490646843307041719345933511322676781062042372736687724166671180309959981711187994390341580337142030043305294329652853992407115782381173676540261857386357450759346006689425704919224147671143425666235362664232055219647131546361505452860338112756224158259260656230950424424011728656197596474074915766285318082452417417305720766609530938066363633730031652269507068969751250205803491680735139442167221875038305171926540455406495343709928537769378464251027145685982956681849761754552136089699225899432393821404431750633049508150170904651762404867922167645581971697580275164323038116611813476181268290549135094453379700825372460342440121475971267476841427073324313638852166341596642041882011206151702342773499799741336267487265487460863368879451257009327592239252270011620845708635630934268447560356149980523943259085064258608580202899020584872231749529457249002315199513433979971713384935431156478940980490300756174715488286289606430207305670364275701911636491088498783941851197492876371435993362383041417789359354014987233355673538947843281449446897772963767991373405694329006261857142242833145081122219451004142700735378839519401387571607125106163447293737156961121360984890516368310177915509139639228861587310419030618599026702096839712211319960986567869785757951852568301802734150818588733395929115929386525886309675022012143623159413435859354677719564245538107419987883676835620883958436330812810758283326731452122267488262932335806609505179613011395324290678560955066497462793128082653783600818733748005164667294948475369990563999840076981192691649566043256046225576108690166064314236964847643295198101263981017699156750350806865232557938288531589695032102843176321568716370201455931666145588910175678058811367366986546540438833096556927627959986901877188567452389591208774673940494218480727797896172014713322153776388089695896037850373106254059401488818572814141260232499744733729259079271181391756826796483524586245367558235709661429295226615037685772091035224441630647859523296692485141439868190426399426215308469089726280212130313905516661650501286909917244668888734085484424326412645186965648913431387837331322315370524182931348482274808956203611514643484083734449903691388630966025731818128100042702515155765563548758587223703799658103777086145796801339990651679294932519169048863927712361181495814482660041432955329923395338798281334999799021740374809550156131607540460495309922687357680246008162126354683291263816752273546774603709200099701878312756402045144323972607693735155220378696142840831605872381655262608388044117507075635470910138333171820245121796162496108519417950244409846229025915689848473587363953987032142235066232172004796711154899321646063357647003253799553012647167842803060982759538928286167955750005582793827685969411747104183909714642703156839851165174010530900585760104872537603319766865346877690411230324247980464121699558040555162066885213035999763551687687231641646799041110898996664547482960986810064106363012150810853587861564540454161605665620869651390828319835620480956016202671807145953736075118071525710355428410558188495186261008810429160739192106047492470243721953316704745442374441900875037097832863370457224586879462578874071667838856640799480859159687159420587494969938144410579031347790323916383891777703602079301370477453960416712127301809103966306980722751605136600728130017364132278737667863662484621839032291974192425829757067897239896534475128497577214557536612272458995930910937063696863088982081717456181458211828205432161748804098138661025419438565492984191770612181218182905183305653023039318898791332649852820109678647997789093299520000877925872949284943815068071159296897218898186399158157298967018234602720354337085088770277161867879172826240841478767487707618721378742168876196259221180400875888925457561617129529946367712825687484669396808918239555271948902282253640251733641172623200377311427579818148738872112705244624220878919795344584875099138150468919485843832038624884863094476514782493979116802574511906035983280513126578568297886928945694458405306479659407577022912738221053837287853417303555573729611815190876704302961185972819234678186951012635504592967453968809396007635414240296508200056087265758221393925006582613858174733288658536349726728361872685121138531376375713031826864256200418851119154236228624283809512482438479455583807838323461129218672341112218678405866292466683446518179195665279022579325885142972131505194476139938470945118892888808982772436714674760998861190086019969411311035463080939666309813519749191160009337792599123468041488016582567384809579207111534063108106530789383464997124103297431696781892957479809413244290051473315883508473212563427377969506206728457954168162699800383572304553467136471097556305161991785353948705109164725141209303019134408814817760585182666255714468190227148085968058642832530022480093519689366587564419309590482331593016126556656368380793998645685940972827314338318092310098068047117370524213199879434134700158080021461801280755035822104658417250750988626248410726058360605228551000244342409141969574358286130935595321299487726451815095284554127440764951118072092293323819612212667334157346783310174339636209275657002462305502457018417939822381530054013593056293295559407954636782137749366483564254706658097626699107155560615257918605055238978708789330947849207040707890629083702093552519317017809301331685921312633336612317504156810177363208857756017069036955625079951817663792154037898204655762807693002458826944963476388233723797651275926060678181130004607640581534899006431751656854755523642422037592712966803147162392199494340082895479634814474973508943997006841739842940118566062542237775593108889685769588897454534751275062135735332301127888152271307255502338002445973019552135606374160085950745213111503759801723291666794347167915020770550812670003575224327561592486604818784713741650289265895395320810438613398255756438563568858406098135877864836004303555055635130142122092967703328099240911444033423031916955626391481778665790530984530569344980798230642803949553391355098937943897994063529083588321476034794875706379972581375396718046842974253774914482165910387669435943540366709662201547232007214249077670996920455780382594578245392463251944928169976307364024812868033631830404631763837117499289130011625208778442493503495267184257033509968243173950883710379543183181525789506297518541067280602051176045880562857126640205601182762832182141621224193646489058255624001424181670274609634734244614030552092431408438746847165004564262709381787449144327866912735127986727582229156933792853539599303666752813084779075828490381662863929082322568967258446448052371876811419636266100095697545383992892777420496802589070572592904205185373698852206281095514057840762650927882621954345623901418225876893188863405039700317569929509342016623593223397866378285347904170921425169616817386063092997649093420928711657047718083379745225341704653212580491597379934224534520962142059426441937624731009106745670101364427667072953125446628295266039326313404644062422040517861258325355241327082831139439122263083729734497789517236212708120392248363746812575527588619093731248985828473849807058681914760262477006361533321381092525229320784088382854622968340470906789110278634899713209249158052705737697476879426692571898595627428334624870838774830669338584442563460310034154107128984239455839231806118210120067881546189856541660904079679050770487242311594868706365259192257311990692189380345887352890498287584155245756905619597590981847357807029603835033472953521521282987390450851747776022003226727051425530283996010171315163421237166397972261882290908613350902208231746581472244425770202031482860048394565302486937113725813697924920525604306335637560730841181095546110169042728229587064284626099523862452163849785737441124632062524522939358919268786279553633886394564427192538350139673076137850139683027496213655387377880163549529900085061591238314478477182668179041240518731386019972644686748632477557328847220637132959123680499194394921138093490696179615011112462190903347261962124430994334701673489526818876274711058173495864273326884215853448964018483071390256636460190397644888888012567717369914063938405249654386688770109096831563482688959007366413286130508921558584097562156122567567398289036844740511904016103713828552917121052131412048503383441913014220281947945025901125326332875806016955267544595117447434671787669260076218437820926894076987831142186491333329205190403836067656203070863476502433295770694760059156269987137291631783223689426225273382871407534903933006478482593059426472615398945972952695297085779291162204905011040414305626765697028797854071606959285163987836781946077061377801595890153250824734455041262329971012110386878766767612619907458536167698133772585247287118507907508785309387457587848218354575042719841181974741652079670165888461431966720055946242824011417476277709383314216408965203107531764727065335300732067181861068368820387362763568177601041801474657724631456953085306341607337491272706573663583093539483094825434960065072161871879728438168781471130251822978048509106504446392796187985265485123214999355654121784963232108053892396827442501213003016103346814350012779436914014216783497622406525664997226685198377139792385050310348692615432096667843676680631786373387452083002374150895645885980230633069466389563851654207674742532217478678912134573091514476967079357792551804154215048983795092303549314013960860646000863172364364508269523355771549253383870652144680850540381868778416409575092367766805018563207721467254477726644614646134392209369123910193371566406651163327121461867693442621493589521519157954835262955213153704546731116398416975104204793810171833338638458171846700778974182249940807122531463011378995676727317601907690391577922644888485598614508639665298861937884942692480963715389958562462484004621010146561098213319906401172368458997122654256429060490599563441672314673300667159301684249822773658043273385462181716466476207246248953832705555198976844041706821345970686250313485508270768683465902211369913492566635019771758306986515709027645066600778364961286110291640564976364352460246061580062766305346193929727557663522240848845482818325252553977481284714598410347433945519713846438618735174395292186916788684925424604804492571198277871132507590350392425004915541973227968956645907918093627753071752393944610450675862089132686586521725983360360704816254353421117984307400724793654892399185527224852395566149953518166152405688750998480953918616048535336667411728600373001829386106716445886178610632799284717923041353207199937274038281527736824772869470908485029568419792376877063865687201192746152812602574594320798969690110271748213755976125808325746445988883607662498427583883540467855041095737666999867381366466963135030077565700813270231260817742077356800573485390022922814738044304387394241114525438988847840394272044822946591626489736633011571634955568240571750257843816189386497973128651414865416222810020886333336405695840416809849822961516045451353628343850597173522552634375826430659564369229165301996821345594495418792727230295304809054608775141170965019525694278001923907961900773389390493542822983644270696102937852241212484292559840093502943936202170166044159627538117575427804113417165003984471542878014291554095731280914199392916133586907550148451377765648095628448264276321090253745101259293484057224863800213855133492635299438857004172907109263205267326789452161328911195247366772990101879097798778013958231938737684969787285728677101481600025746469973954790258416287732713672433267828198602187593638768937921647214335547216518099659736595517924706360522296927829863378267285136107586797166489753983296231834547170011229204541504963084810950253478615740681308740716047952508040621322495285293252783664558896456854796514747526074969712765335304025418138670502485347209530194803645474028076618116847013828727936388889472491114280842408050839960865138647105820241931690181369122395856953652650571798847460491546703067202888108922055953596559457191396618753783668802954359412750153815629818158770526192925723753468952620428136832393667588465948015074232113914402532351863001592402799421895873456165983343784729094326922946903589326478018355151145479558357118418377525568297557302643485085770004599371340365020035588777147749433005751350261462672048987286796514989142160503408570220918955173618410167372838661596583013898731670235958656505496050846494258572426589087877539059750385359178024362011445483148673599629721953409205021064642151053344550551145940135019004033098278907806266175675337234162768031681400495214547536101769060354966189713057175918372004833334486491878193137991748922570752491171184339285938360622997676568994838278548852691431938800265748811616776954299740648639397333634928661585914070518622232358401214599086279203812966830183954597198222518155109252419759358006674958799486286735156870434960227743275882290951468117232550296622316431470184440913337279984046878500645804040415047930280188081930906878057214834046009704542949401724566245587503468244363821066884722631305556897370295484542991474274667299701814049620828658486020695922001995004774077688163175600001160433660887214927920006446954812025176188012915818977806318649052764700546241222091346909077021561959674770188249338200598797748593186990680143183167888762459313805074584738959144697675726515506287279101283316472579412202900803487721415665669511252546332175144745921212225226926434523424998439190800845715091753975669844722157753559857730017468914204495544599033873558785793614752242489343996480362520119542979091952122973260684160686835414663499764611059914957911981046069920377181593019092261568861826080945275791775970853374957521201252102018005315391098950174036742505193067585516694364204638784359441319627547249253397821610834124553914482492803110031401507620055882791427361859778893260876666566096173144981670056466884277368018889151107713989300392528691183265407384843385549424532686955930934564065774490985119458599732351818566462644988277967214180077187735083684247282717051752753273169485764439581088934054168395753902259974091284866949414105709572133125473524927944494293482832985151076834043525373103116791717791082912366463084968102821478538238715852852451193055332810924220478793180660604396125233508767755798114650020211013175212078277572888569021473768802689565828366658558352811223030252629415528431726856765636160917194192638136528265537067630341462510508095783384013947631058585790321397804859390086500972986863462806477534119084739905564402195110274204710611399914855452141263384566850694895762489440337901131918573246039885054781080173154836585286419061070961074618286534509036562890349582871737729858809264812849050015174529304557297819135243149339740775053154826104856539407170565658914264113590013538165805144795852675428946892955099603602818828606963208403103533901193475977511991151433286657129905165114537155632984039119715051081607389556136086359020396569932128548281841706491320737414957549748052633546519382180683919175648905680576536556811507427753888843563261244289807408395896572124897766803092672994981710367098057160697058912408924923660589632272557874990294937542145619567889505698652852445737066800729694991649153820991621067940010926774087321219458552280582334548247572609417782925471938186576594982862564406253287590780094341491709785360511982757982046753551756165844815608503397004006122831350974996577963260961890198496772533259010737594130548697102683875993194591199456359518341880979542841784503961435464627914647974234968063971338241272903049256889359799581734838964110182667673793868617997005928344327497950814785442831690573527957949971311730132572324598162156330396704543550651976867736384615301996222012167854836503669499300439917781161208304639545396680095887929914557630597869508281076182340051313326635086297410449573246376665867318351381117358025506556252972230335696235807756830683885802886912912426550759529163966578623466850835121293211238763657602668551692586439881966396536512574049796225809673346816440521202800290719796920044651282491600925853235812420989232031969369115913688615487062846373785010305442882284111937463859795608310105658811345935639322904444904530851973063944961096285884066609922992031063020385722040234196260773454412501094490142300395345190254255766577314054241536479431682071513309463018944632316757694731436605304320479060951543011934981034155671167524386240837394701412543722714789314061587806485522933160601700879741690806401933746657846840310984826389193368246707245106169537204114307976763027379047174087241865032371996682356918672457078153355543836093045981349114297789131272873888954758559777025884857357622352377336366597156735129721755561620835781760282066481618647282703320853985879988404581931190800728082252212573986977478002757110206228612079861660167844774244339758370138953812924858734921613067169374411786958869383102085645355163756579261452020318466696490059064371101399065911397826459968406028948641375157173131970321898547130058687318794506057814839370898380267337648437466278646623964789799315459572212885898628082060296842037007300117952599210635156542024610715877286805329371183851944072701160143343063313188738138928879518679581720263917395519391102778455396307249757627948412676514232287289091332320568237166137733634280888118861908690348929364951948227486048689108326775888069424966826769284328077188918418559137150157043578209661521703457674624169293133606001552508427990382053902803397755853454729921496502516559107747610950368019077286993256531486725929056401384049095132325760722830515264806872820160524597119499564195375810953270169096887870557460917407839060981388759964709215251925079989751989233198196629165549857422973199455081666541746249898762811205177603980015237545963467560081887877749886175747081229174371688099133985422759270407072601232078093709017785740404512375348000983237734072876254641898916238301849604832643629153913970508429746410755964919416096336520794634819656111110560053029607633101461595989448855914365377009265541841414208360519106521347395106480141659874672174641023391263776990226266914534369217207215846738167284351912515627540150793120680125820333828828452396889900837535688282857065565147192346116628874664122282456039654770343509785134393919135291491488248530235172506362345756951740056781575368072577639693697759455541052280636189900713144313123890541570071407188854677250668221426890382852153836612618952384442689447493799551803154698341522087946343188631786030650065410884601083862770207916649829816998003059339232100864377290964971915079165304763933182024335356517161339379021206033057004689454073893672743762825591271952400189802894224349197606815466362397640531088391444182185771622617302374923941108399651634885361714318352327671657743344106675604379632373714815040257599385529595236466693620027845044754678493726027505316836990108429997062525122519103347777165927050282544873940516322000072897135382384806994864135831810901367758176961629585213576551653601457454452375324164620038317259963775503512538376099752415900023573863015178751213582926114436289467804714039996759198668722838078898345358945606855962029831393145863963319298197672538381039152889274302852572143095186662588856563163422799266768165013162858985184217112679842460951544164065462871766544342058172499884411181320540590786227567608550761581718293172375886224749110185300762244933123413669990053386869199072052167658103279338952071176815228864289697441292005463827032232357712072269931500074188509690842022359508207745737062706640285957773629361400660965359961214330685033719737046590061485378876132606656690811765770572062299373588012969111508026797732381827427888379171671490268706796095692866271351411774481915071158003521295569339938129981438371501920289755142204452634665460199722357099114767398538437521704214744088435030055673524280929879639171559252918615802370329010955156857250875247874875872358655595243571874236411209407057286706561246822273491452511889787895837047162256873104221028591236810900245361866897321880281171069103775918288767132750543061248707426432513916045074425708886825469142571524704891778811816926926237463313664232514069308058559064308050035766703133075886658227690277159689106048195547322113977787516182471868295731697775875164008218149457984633876140373080165123298180283194289534162734286563804590566306620884747583155518375900233369386390393541253436527062478003693794429522791928157597909035127239409182730630502076579795301087343528060604584639140192789561623548462231982417267588790863559656133374098237066777702949140463719921818577297339107181611292757357216305028342439548021210244034735037612982589124867891677960457677311152066201694719676917736366447279399068248893101990238612276852670054425821793190044231113842817022940598293398940765651436234295136112692133513401477111648817705044004658332342728958284315420569522024814540836520421143383426131447173071277067451711664877196639637155155278864332197625690689107381516713939271129736148518971196084425115398823096660350820746719070404101228558628351303250767603189731204061811247156997754351166575243563478584776580324712015961239610463080506465713822275997272959712721334664698261912721777058017149581337099876277351317824396915834099618483690757354636647162791792543134054283593399788359763645867805633177393357111370025931013912212420474627414725292223553740106563926497867466422539270644472464136279698948557822118910358908592428449098479647913775311314186584110908832510019471195963432397381996880782876480913193515581630104882745417543938124709722218879858439510215740767399823672058203476614048222553242658977913641380920530099830176520295635144277969281576990183426092897794796569034149631371110719466429323395764148580609590574927952612360437220942635555320588667004461668018250990826604444743835355849296532967489443650815058779462524247944247612386485247065762131569865634209089327021840284641889797055972431397028815958081641601857431640748371580806875077958076952937978820243806900844208818449611957218020876258735425860732309345736676939004496172636511353257962656343018864935378568836182498475560626768425007598415448233898380225922252602212295885640223337521417350434520032944889618640157173800697627539806518475390666290091490864861846617099606435062481120912052565283667853961478769681457144703544999628754779981416926410558445453535028103695223497799391688209835901818891170742845075184588247286421779759718752329636880091718185618922001000348149631678318654570286521194625288376015412197697522159197705094605040152618474956311430796467889693702500901274903318608439237035116004647684874211329981028636030434115503946174114318390577058688712119900365535523898466004473639162834951477537695503533810746517193837356855800763023520360829008465538701134292974221000017582134154515575642287576721029183884819761907223070365501991338112202313896618518085288276330701109741184331463330859504370044053179252512465609093700048887430813600324867760533015385465244289152098496173759709773107092012427856148644071338915026167943800011570009200035868370630602228144452989962778718588568076561381404359224517311848539569619742909642392301011645914037160840167152446942331863351861230307084102121416096940875416547720940529990279839438914878926386473052433975394010049342018814115041026916500849586218348413402443048328083666421818256943641080296804397589824966959827281480213637864172485625703262636589284467499886517955944251629025132026841843287267071391214126959104640534893061518449225975023540316163289147606756367010470947708023286238268882318005695299176800996816455474306457318698786707703938869483099538993411916608040022782788041431981195852663879567027004313319592562559980306456671351267768871712298709834731845130947532408777997047133420563498524949700867374889395258956508564490049756040697065450394155664295910831488041874291020137495943415517436799451644822520847606361540049738291666354116284113238621826847142611582761217350939224016688044740133474803391350634261245840608915775995995654944417725529002070150291391826542793569166737588953376666860930147166211029444011627562567696843473922991023105018839290374606906886184864596282845312861201496207723197058119743568587327183633431192936834796582454061211665224818801087743648341118899910433966610635070306110272465914005053558284530301296212811076662571242248975821251805212108078895131561631571295721152464413284291604459220048551332044650371634553429452506449499352496309783338787851588052306210375298469873035601458821648799785703393227909941348035569099985370870445700700737691346970564426815066041656372529921485343188568966513440045032798286731131810090959270033734109269224808040397818572854273697822204152681634568590335807165697837127630275597745622409194474081100792592770097355446833501717300029210878316373533890970509459302742667992297931775422838441224034980517297245891215107478924115587218713325128685797138856518947674945299910421332485278670644438117414582977166591845903230391724991749400520176884783088341363418010497004105889474910706096034503124691878674678260099149968441256577835443085865014620176267993908597822834326626910009732162645050986483157764320826673677897673966436753346923100036671979738492426218807437057773689649636163881479076079226744949274746151450308103739039811918251051295367662934661356947458940501060681103338273772427102855151851827887132338015441466800847895518967618474147796861732362451039302364095337733601333183708792408731257233970489557552452041308728685849173189126983367344596444561810690218088336784659331577326535237882011862519941750927593926940271956033834873767429185140315052712212315514525653945433775615001360400580504843035512537072808967572277139219435530330055683637873857373478626398746762675693910294252486539045710127318051671758999927696717317942388025692299403319134837219447249055827723575874438133369155503507819151734253306661679179233124264080371758158904771976337220412545083025733657372302390988307946950534541876967408885147725694994966783921211418939252835078175327299887578783115210217053692920978510930820996806093830501535176662505898145796297708669936354167366180837657433283946340163341677795935565554103647007104309015013284574865301114609449535276085373103754081046191579853433947609978522511545981031638018459299620674465406141319141507236390869741247899962968695236735610875825587283539834328361971393757697287043713317654455474741757952904603588448450200600354194198611884187975587413106310864807343357166033970315422925487164333093566063409191003492796468157861656705689268559886674914303093833119128412344607732062495005136983626617394245749150191660612448947833225831467233440156447894421844932789366590295144384741777725294352666503697825271035191890856382076080192646098932139288455442673519377374362094166520442220814987348213654507127709799070374584556162796607787642692452453755614762888910397128322415013252814048767137244881863446999474157931643396245416754903449466553117943270138789602477178471740734488816726686053317790890209290956817296199298359792837974147707603286903436068032712913293407289340394829896413578233618037563389311020759027318726681925711153260784542648109601920454404438000760944578609429905719766821025323690459831676596705891966223733691903413823094087349816249162513613840606590858383641522045494045163157159820410886653001001780736385987123318256476267016827496481446618735071358681268584712831905791950796269302264178843310813778393516898505829725158639366598979339505863574847996911547108372282473478816253883365897752871962341743105122356912978235506603315022218223752624378179556935676500741430315510004679212303636907097278288604293167572669823822720963269359791493598844794284468764322631934908862626290855165641128351283217192785422533697400178997677379600029798854089573574474639938751365125674864995145960375276296658890038600725769733369093461861225131514186817431257801338638039127045771307916270006092536376077208314426921446178362323021875686693287778509943100905015714791853048971580316304703556474203540498462664465106120951171062550670116769826226726505166371143391145066878657403578518780098777416690527681577284463165545073446021286780423286752192222503228521520180308544665231015942563240877713439514863339310575675926254915426576873101610934229587333427848239370040243969998295682222705218239992626624353283856817808445597826605343280347735999229848167568345944682594118891654159747534103409203869430984724019640688093538512835695700474710125566904934041957437472704792887655997420780813800988259826381633049656212749711116940594610429001003810629593462944658259092032144051971180915601671341904402195942390168505087607766958454597453436109695532294422577189831999186718589844493127473562747678213364362925336930633774767701730133183373040802741962188438829158179448116542736945674283386716688724814155703575276963183649520111169325261191533638328119401509160677754948737208769634176953793950683957230205725797392414931734081823226675080566969608230512555236225754445611808290637657220894879149848023278982711756194639006761766376697889407160915722262772910158359648722097408797376177502490790173909296814098837917544223353086123491957853410686998713712295610087662896678028888887411279277534365930855172439533987092523943414739244915702494113070487930217584313791773518074515634432448531868602349499471507005872634846870637236404715989951167246162294355698983949222663443760929819633392523059187011285183278540470805753141057172472959143469486377301423630486122709456961868447553152042099438230234382717834496365826138321527852647189378531685771323657879508197116624519263299052068849109731849630302288963089949807913459222629084372146422823989782164191727874928273091989627491242377597721060970817972088959855252635402654392984059200727237699227831638243924911377444257231192642236019612952881898565564390788697557554293777175823212044969717296033579298745808380800328214122468225699858903306966392588532227845653375524938402124346662779940058710863137029508384464580775901445423892246402180095734398814991092076774967992908063570602891696651751174272259246296375809066253482069283773069971076854279857516784300273920206357178051638905505889771774675088409311351199276433643416297957462212030856793005437474851843352102494885599562071575322907894413881080487914266685368954794678591792178723241814488811247006193629591640119817870367132746474319527596860223680615088207784125882419984921427153293704768937887365939036221067763455207257464700773774730033000278304409103825494956543832586970568324788561539385201762163595623085446708375659033320340936560280862699916510938739565379077168515031711781002697893374464558572741931259854690011930431888827041893349506244524074207310816533759953016406513229755847788105607548760844094653507890675817121678289021508281736204570159972281658530760243588427750989415783127752362857233240192660779658907912015626739530191649024940177020631420649569420683187108952346233821281798180431056338918395757030971473848396186404285856602195508566688148799435354193751512163848548637799294412385374918105957622808456729122842334504888575772521747113650220021067273262345070669555869313930897477957351997492211008124444090515354915659226919780159962726217868647822486676040247892838884838639286359388286967640449983130876883781774416901389384206240098519122600979084365780106113743693786804345588838342811549788036283832970599973466716647541165747348005534112370734196214123847138398719768234537114283344304978922985109423813728685402136238996684794899767339044829268197690444655717792874522664183305191656387654393101630163150415792709417196894771047842174025979228826728900135736744460062206104774867941716204418613356413652700131669020986649343101858986059769347224326316658059919699716604856534117774616625171006087276774963542268247509135466299786093680033227825562703782498613291979452959954837839401484726121145022152044714618501405681506359473812510325403217896835690894535929655633536336259916215734245320355469489544069183257334844990166435664478989665068335838802700377779968655751729839440160217511829922259997828148616485028153672490299059387692043304115806872801713039815115280083581268723527840248197327332488260746401869745340957425910108584263904044238414221155263259705391377079661360731732281235246360455171678237838331325467922256229503542674261961639575353548583137288581894581583720609824298582994057634473762077423466645330230541083675058488691121329820766691511015048463754453028308411994160382199213270943178670155454616533934841346725743436456383664287105079524578512289358367456369872327699997741060821640059344714518054913220649348626989495770600927962160243491253649929450736090189140292510202878511875973251748913641455518281981797316495402347290673780568903583029672604055648115644542894927438578687253155006247770872326089633027679472192957826287478330569660460187220577832924345246235774973295247781557225951333581807576339318260108167135367514757551731209750512563846837545523851302482809726420786814872065801760718243923764715447571884282234516598444964447983614339466713592062781925301247711873265758954952161382714476299200871213512072468641549270110574750829844272410631748808569580310395107449430621044631709741761138161994302118073444931801220220212938385219207507759774205966560873660929442505612316936263503641713709375882411472331156519643831186698781102866386439315300178118474870040444889081968528285715974101831982389716276819342646478932658429331984577849073215315598454193223044934506876484445722889698979537564351147724179567260741996604617067135157609139153214751447776679807721477986064170839363036175420809662122040261719879145582421980252763442101464974018674114222734769153570819973004465208166032400388841509782495561485949129124318178390802622601668992595680699543597768652172371154239405855665666994214983937761963717485042149861482513286833565692289789564449555763599937505007213957897473520350298264636424029603228494168644401151337469771858822658810149872097499260748281023452107039737270013802992377073174959976307580841929471293584478435911670512907317516624028562579597296829969891865559660688985924761687140363329463805415383562677075270675574310115367807137002042064413472894740149574045399373959918730904409697860978467348951612186856059399881184287903544942076052361932353417190419617284507821378818496772034496740177275418146579894789354781097437159432056849714853299453371492875521934708702092488115410297741783380948864801395021596145916646576115910808458596739832059082546882354194859048742989605356070840943471900198149013914779380329869511956066187310005719590208135889186083551916816461035996938225889042163423800689069800524640571096676559616081399061113366161350062137113672043553203967062308213694596870827340047475784163270239876140778377205911644728293577905900232345877301760428542593319599887421811536039007168834504715477228877837257439429825651199747913277538003391154960037262189437440158763019695944449318909963800690304563478690338365531490500877775939381690083088721631278562505870216064782105298481275921243743506654924401534763113298730108347274154823041176775463346642104082564031575878034075498058648711288014212799999055810372507805143448879727795001476729838795351756226485415158704847788702058105146207963599460221295997008524975633703310073617819038037822087614791440315400651187895975177071868564080491949556772436558578733236203065593352256403711820469370327527471361790292142230111875811152394551110734653892456532277357315885647222710498616631607855715325640760849092786239858918028452494746505185064722619042212341210474815546059286596475551277712475086128290190895998741915629547051405911717465828991532961866491158272040021915988215870454445743522295477507146201619086127085629545786213082151477073531640760133756902189547949010652423629510171300987506628910936905654532415448262783971146637595963045301806620287207184397091462561761939255391515970812103146961083799227516003380972281481967117364340212122622588357158109777131052863154601775474171952578978510415764807329739007938116051571474648288844379459582398129098519401122327623680432136451844914697798087451036450215463719974349595271364336145777650272780047308930269142606096787934039492051054127244638421387107567300762759062861096461201835240350914129486807000390931294203661851917373945784531101699642249379732131443602573080623202416564759061976745909246501210911182554339015153607848077059952985831162176211896280305907059794298450077385331786194584630705584018516910850386365314527837371826976104398983437443662407297002597743382424714434030496165490641632742678422941166976359074920038953158539141542726159529237741343858152775009775368209515747691481905846987338011462390431455813461712159086740707387762638568449248908759954281700794337180687898873145078361430253779641712454241013892689763699297008342981987472726636473399092529391951796794672841085162051793595735219542504685829830964625042655231426726077318613554893817481617212053348648120347128276335108393489407537652527328449078784381159347844206959415689986007796781098448781048028295487124485910609096005673149961668413191304041395372980979703840984666405608120163064303915278840235371633233891936449750493859529678471737373994159376325827101630051461252610645985592624396612513867830937603032401248367243921467933198955517152597788584545711379286548489484756089592116693480953954252858153436615869049133628210028347509076742647495433632884581988178478965057293411161843026570708066865910899590748888331268419612765946497467425098358060925188660796201462603205969920013464246754694071309120004340542848626407599973546466593455693446944915711637315231250319759087709494452124508129259227408965704405430861558755607689720494865366525361144876581149720766357173009546644036992271392207283765727857075909103712059827615629049974533699866652218922647909944710060080159063004281286157425320167326136542627646850042731722827571118190177662500993489483008296772474155167931899169528095463146938330289590002096976847281140616795831190417765881558071482221771632108680958699398568329479750286797107362654534065912869568565482694759098479412347377201175715474965684577453538539732921698310899072153288614741036847063119030700423154223134358103997018699221861809465395454002628544247092260896589521256624607056722062374655028067935121969736915894229972271466425510002163447928392778622121355476560430616827687149435136601434935192025467767987646205583106955826365297865783654887755160780820285770764030524112227096525059105936259936481373808083972561307694819730583828795207612871426695131652958216133075903952403230037699807784788044386185599005546783296183123810906477193556044481846461826524278184871841832299448378957712131181880809857554889737869266858471903782769365474692254668278286089967294693029376238620263308148268607450420090464523586610342049028690909357538787370973796287851781825904291708918054245657745246737163184063559710258129800202365309498955319044520721369040331577429652424830224902725395537495588518465104279688374375325097881919164590116959250765121754411141245371084110187876671154695395203340129301618755685225299381244979446228189571104884449810189529403692551868969651472089162498566884457000249379154924116913308765082690693388528409708694149233271401467312668727924286791821615600440366508694824798345386525934377969862577955332735977525456943745118177068586188233329659106778173117086062177432576333541002179064902999133213771575146815488388898759173346265306292540593349103086370851186673748237965147394547655090173011410365960630781575479470398396075177938782820464240508195195547525953609158819856680053725722346848868936301775490652895918863163847539833094174420467958168149708919721534114256641647322475802287450961598614343471415429101437228519246530881222982812550482235556225110223948731895887106529137642645235559795706002950836349729005563576894107952772911619434441289179007512025946386378438042831006616110347497773289276925978812975319488241363540182635324463730209254687548963299886270056112923353187924687871061280731456153940637873197207064002067120215394669505907044259938737035843297751550822086852265600878876108590915499810002868987016996973686897740935836570600123510869773707885730872199636125487952798031154403106625055937307447645337261567792638577303263295328175433861183271212711348981083409112409891050699011341039247239778505490613036323630458365132741973628825130475422863798584626813872390818021521446134846108536403222425224502605324697698903722324072120923591872733104652880089781199702849812719840637030306173466916822872581440535124016863207079103106359018702838665107280518013803123651803391909288997276672625677600348655004532553097056870836847286818270883298884651845445447159430790527231086895667427129996907373353911803908224445056541721016579531054892994409905517111975281919764472049554956630516369654210189974990211969601974498023125784510494822651143818888928089858544205198929947663798754175067440541574985442223119170507120524457039266276687137508614866215114323209081430001059998027904399177103894742071843916010880348733335627681576763751430424060786059349286839772529777465049237940697355077921543829363898388776010469030389811920797453276904595451095651853987517152371792335176685122487055832070881877134346318003697764015764009878317710188042244435704264702903716329534163873654994058996184460176315433128881958742809129877042971988013121160608108718510468052085736459898362012388125804257914574746280156387372108175161740044397712464285276100365584726968537898934097345978163241601159226339469508630553821879846711655632823540906102030283135698095029236478906370518575364005978053625613791587668062044989127651017111052462133689425898742907137378642600812275664232496387488405617847578695668589183046443949240942328084536511862783903952881086487089253407614828000744650812631654474464389112466088531437346742659728254261663060906753340042889261097963824643675740816668409789741364968435377136296854646030593388730505008938466878855700873321515004426894424066434542760973649332756197893990093491141348545105833367726661809347085005040760884462655848689605950364970141601175457624431137509652544562650459134017757656245640809473632021407963498219045984415127528078033626948062218541390575577835947249370601628619361903240002757746278246274019322292802060612146534215024706397859751079706382856465469598931728791003331718340173830199923437071947211907258748976124202246269974258056623243946624217818719416771378906572667995411804909311611828861092880571329902254603186035135842968563400893851179273750276562941981471858629815867269018054951635300784803138357694412692909127500980777894600947287562575529620285732617052309837600697303930052140541377806239535908329841186300834461824563458714709933416010593671686211980581595590755558340147245409185966732974982583982246522055114292561624586030110447716001033450599759171801130245733867741588623209049677945856170392633673914710045944805715722911827595423910849759269735224253567432311985707244488937962920674451269336102854968873479446415095008462552471775733101898250484966190957134772107486548272515101063936474497163261215508906028858647027156639064405846912392736884276001123590456115206906135512640996148177208471348235229650014983494208420974689304390780116105676267933836927810568869906904331393204646076076767780864177986440067542501475617511552656926746679621833156406013964261007494767749300645327215915509025980407578308177588396569719735800584799314529469629596261648686345403784528537309888161979563156738738512034218558621559740615087913297179214540772402965292630215415525129303702804985187907769109459381266678393682479295418581382479079289621681095784343562227887317193764138440198902395949394594451033205127597598720613416361267659057619082477656056138021743331755324575522526426877893737862560856283127993760065555788783439788717948353193879907298608672076647035951360458091228705491943754479720156723493264487968097199646098480817780449377892060897495229556830899050404552471733866511152128653045882316708626968375712212167605558789834570480625924683663559310898903175844923153993613178092307050488071261848281596425740071285423119367905518746570815829972998418652598599064873021388898999318596956932765594731642227595659010819266822975350789259663428625753954718578526062915698272070304132297465327284335156301147175743992677310560502606763317015423994907836699256700140734435586643277237495300403826166700123604506550791907252447955418983921992330870330014943451822835338257877357625595807454955082081123519633429827020683846125132867441686257042687694460488852867221160297064898714845144024436407022548716218785678062915365762917154252555524338884709358252294640710015404758586527335100570881970421305294870195248192212268180937925569055823193011572573136082016446563910400108776594692217115466662478617470376869386565588933137879456660688892219611932492176745198622744190053304891320266237339962167296596310443521189056089649650093987793755688909584338649389982150038265915240641736928831396741520354363170822429736230669333239532195386447340801069200330164687925471027104462399373076257437785094418396856307116994252371235107070154807295794027402064939422566720795842089577468060258002371155832603847210505412655124685874026142437940040873242179625982852486817003322659863380536013811233833022970838385455584396818466734192533302450042072948157357148431654636290661763031992290926267665883183106230042723377349522062979092888298974161026915702749045518524810223493446663330549855599915900005887935890233969375905243756354245986377494501085511558654805078483050133546744419256903021888684958745596993410958967863322776824858017929452509242582648125010741017438699318807260970601392303157520058099433571843009018485096764312906216886247439185794151327725340211846198288653646346346315086601591785892682581629849706836937979546423143949346408151502274864885225588447413884616133991936515427781386725906771218377479313745323795498534730728534827118466909431428811610732964115140793516146618302540948690922559954897689008760598715897757714033351592197131435125751998144126394703855989836553064986124154715032972666463401838801301039528041499111686226717204462499721808636697508857828360052330046222146907080199359335506101317444915573320746241424513151893933030512420753808919481200214998327925481812935859502802130240064645543253390459873569731680035621082823828042736302454589554358084518885841558694699249425964054173773689139445421598539328564689916249846730266362570568387694887837943454665249641129465479458943382831552585503687565635230166233793808915875814044897366863219667070782713806866943424417026012097052280506607586553169403304653177458452780456912327268527625090623320455901046800262728002304616057261516844363824671685051102170791462401630048085255411848936606373969280246563651276563532201635274158201758566267692633537932733140559872700186733319410632081946434273420763932157676425530706093421895993497585381035709906602433663310279893744863762668531342076156935863190137055016623459096431745594519183161475109224275471607821811320623968938109632473142021256169262308753120210917396767335745298546906030985454410265117168231010464441212082915304435344333474353363645049529644525945993971667842315132485312845832385577842657620448136480664448623462607137455827708900847181880535320998833382729419614296577198632613955047784221784322395476986730695499163944390350031922974861239966284901821408245130641939475559300340120649104415653434691890730737977680480440647177519190182056681095156770943495645704513505233887439719573504238766013277440027698888832523289728420100582688869899090717887670771056891892432320197070675726046133158207437259819292626090592983397788220155283308082613702695165176337527783627967967177562697039112303210376392188408369774499944492755641980293539414328543954317848402225248731605381579171292628765715590833664731642186610228935218756502129015782621161673905922436967485148397677758275838322948809762347290687117221220714189993480725707786536465128221687890427684789362776280889037856087527727461837669837293874532852494668289709020406503401240100010422940803917070729234605910481387620400845914496195114702677938226688023954231014867096726608536322410023040402578469086155479893134344455739230811913924288845411958941579709089236219011671404481087501243174629180847068507319145582260600472681103249114491571045135709377243172606218366095971998018376021996091321349928606699647965376700808550774448155869941747605144293274288683207703460120149809319702411306815858374519817501577083537900848022123798390276199001695644666469252922229438385626709401395909369873968012254126921584547532720196637907109771016090849918061922696360460419817731391759754496323154049945086593390593595260840459142977139012389318488846997982701545188031173219519296793961334345549857617613262427841794476396451201849641310178164188054288263365364085650483770706385128216879232996233940251778654509241951103150133496994072712270160150732955286918775603051545172137891294936620937316815304178536866695367245103471146610288160919808017170397035203441299751521732015080626554176523174517128939855496064701187633979951495050919008678572406892192780691323665974872675014708701609842676971563052229254745483434425989003583016853716889207678936079849854068215439138121866000131110880917982075669580767821982351168898015948989920672748827150124371200508794925817398559128953207062025681810592321577961607754875062425154990458576313550556703191118694305020214460149900226534521856046267651777911246560828629450566087767685563462502718762811830493972252965748348117428254013558379555993390502175988244129517169412977686985927943663001221590053655588045694297032073296529400736478106861760287420838454042136748934407973210599692908433769627404514575093407216320244260455226879341625703566765821390905594959104147326452345581307350282437803040881447208892982771482380943703008063213365614313393865429940715946682054765882977887555247140948966902302304693946679913356053968841877575018770262226651046346319562577174360977717974728757733613285341404072612667489303568764314868537163152188185975867834314183763942457701041990469057388264296673339904788898701926583795356587561949556112329638342540256746441772346624687424333369416278548907753048127063332392136892955592212692773529277098604981515849865913237210565491192929940832510199739950993443978009034255987434028361001939037830110693383621703867652696849165410655979027541932668139269587304238934227262226209777717629735923363403117690961898238097967354005606145594638924724260415580446810704523601359515516049895383746661013709996905212315380366011130753453930770160817777580458728659345283129184674321684700755266308988569714251752642992871687540093116386271214789465937507981589053024886124902893255908341628491449425259490369028626160888426774785920440298564847073397267769569999340416840255391780837072454263497339396514271789981521719156300866141373871656639821385460576016158925907455920018936171093007752839218035913729149105927089965456239232395820898193618051587480923067101203958655087241151184212706559621869381247850517599090299895181505345688885490632815816547104154226573442452365783509509863752554107018878297872026751015170816773207701371345444025425824406579148226306603013176829861346416123716422950818091312583673864619568999957113010449141500954824164863176058279441617489019961397418186947181593001734569674379456844399499908160691652832546947097935943836221403843904049384063375377425400176278609323475690913882131768734399389615973010536711831526001199730473097823797197784037661007666668201835959256944486554614485772100130476465113642267691270576316192269686416945235899146183565141042335272170858588388232892756495070356833866096521262590835779970808471966626232447437032795161296535006590049219023103993638313435602418921435364689249025101722695484810786243053876855202568496681783237841002321422620321081892025727833817370136982805462269754618402513517657589462751734747978628700585104475908764521514874637185788257105118382225845018314990502929193978115302263497740251485671378663436962561988358662254423879835374635792113829144214131082765985168561799465504152140299866361926443101690611653391591618784248393684851020556723286314708213377977411189961709853215611341190165820891169872827377945243174483077038048075685288335939599229631871833336310026094629121426427111552273261329853079793942982772448849594852133792052399337004760787777873965419856418432359969839424271565615135297694480854044219808118704721892193304722135995369484585142168455679270975826918892048574130583125401125850629551016970256282655824853844187286490213710411289115964373619355228862740326923815569443344976936237701387146412483784816325171972459659968083236310127625568984387438519028210881618850692481369593672822884178793336565941516738815694374393622901528958115506319377418605140636157419289892121457071652134685398626599859592352672336504749770201272285072193064862028861155129157237763192971048929834794123396411649117891283145282327107858853813604417388740466808516554866856740013805016285180993802306103651982396956978848944950969416662883089952437545872061374255946367168260181320244406763065905376169138250196437950907747338311877518442308763640889763665657769873241739543640878759826084642422393879735480601442362851766735905042549106729173916579303462726948378250999522842834181246121636620044480138937780134256579075309382405418773412748801151768271916238329635700547217466513849616023693394931580763993098068621944394355172430493811054384699530805645172004229908322841273391432468918080181292312996035421815957682491717074560503180638768327044128998423994639451025954744815287566190270829332220640392098658479743967729852916185021911812726178832007989345503082600959103069190195224228811219546686833766266604024833391485022155630525892338644123003341954749066046670923624631101783184994449392827937103161687667946051210444779832611311817452921451284617797934170978158507562707134435269917027190027572836214344697397573477709309813673371500859769384810797715537725885155542538453068216425982146771072338700849831667486045721846960874622702812933506067626508368088829322795533036087966568563899062943226292381254545672426026266306827918399058809642662194010242908659457799207063376789405383805129915079499108236822648113905708000814449538005963107365176253639566028226130613981703004258011775107584536269780764763827481363611161132849265718908839859092621070042656730703297794307228651630826419700134150539491726211224167145747415609769692063061698164363409464528730829940521690102820711396563083782162560966129961362389679355018821855487689190477757662013857205314400314626599138674602937088356422207322717793141448696931158963183650124207901805433647801613623479109972247634306976574417021788769582026630225890229279686691664303118713102621796722724645617126055765263456946203626933428362036292841074613462270687919074191352164919582650666475772102819518610215813612824195939085090565538554406048960011054611231136718478333347765578459291996138921094525647633293207467197948929260155318260795682345646590141051869982660113499764756793596420917705164876038056050915176515025814377495638718483919096737969641060989583898677592316317474062610667310719682865857776812751846752936044344234018160643308308911203286079667447355165227380408099133022431195966015423822754120034085553831191227122429716129455387987884465443695710866574065475474085998446870697886239489979364377675457711838258315338421611754838224961231390777065885022363756912590188445089477446878116792536602536373588101670454194683244641030468214929334628858403095960911591442168732121767270955657782277116882619633610664884566599966171272137941133616658522695541121282445178989922999288358614184995127123357528905357675285959108731466010285922729609473500035341565641390004935923562436501678082053590256313898656313111352209840752107190408325446272647470276473089702104472335867908744524153895579010530543860379561120173655784858350315883689308421296392950388910776834149354540667877690986349236593056289877198021177368530633656920575241919550943740551592857669645261158979110753892722621798972109836422230758405169528453694928929403088219617842272608812197904679406216581505300973948814750539902111731868034412730371671586802323271687243505973928266510776608605032562873916974252682695147113984174695145156117680903228540766820300988653158626041067987108121264166136529292416814424726314187121044624196571518576838783110033314279335204060184335405873413046256553174671996414561111181674926595188663836629686564128456061743750740466532154762649538241791897367819283135964326457528195239091015056133250842255488034241921701414174063601682851493289064544502515925730142593441286171412788490821764472056125711348493216005881538456126872840842397205532605394710881111102444196357138455295458883825901676726801707473982942507600807403195936330404492707494281033663200771563828095029957868368146606127620595623196778605521930957260963451778484268393213508983452780263259580947641981117075736058381994325144879703825640635090213326731677622251279230477869793441000696717716379632584592523116343943918797276961216293831659609147833999819658014250251179857442091896578340688741231616255076566088991926316051429379374515027485800270671480242200998109200724292946651413731503222427985982583594308266644768653779556594608385475503784246553211376172423416119721520936366083736074731809625209115820563453127977015460709364119913770434581820682423651758623680166008670527979366252067155281472685968079415346732094672733067604686807324192785150311841459123737916238647797104283855760869600354340357823215383730374078907801585429581480601385053151107308407137012970251799564767520688104474235866217633836866477883531513671481515752723472072345393949095320635027680852564952507307514547535658787878022577742910090951976151868265890401486340393619418514278419371212311005691583222841213183587469654944013323274457527856056198638539982102259088349713308592684944068047732045410411331667274900416965998572922417827652474102084419795614135246999711122878816383719365816088864705736510403906769723157005843209601210458926355177723318723062768314397805931422881433586200328204855421964991053829857013519257550831551422580866387034580863550161939842658775824821575781292674978667008792183262040019372606390890365590361706572668294759339969762660422318209177420237701357062425883942018750185692342232455194705159776328023216064835928846730083897708191507009076040331354743261465641158297087402226722280112335061647152247582062491347406893261486542554733038200938249948084830061462849884046673939911874800309802577647915449034048730079035546444178993692320927752188084828384088286162876111408811335155697340501995255975820038120088963469852713576603222245698940042954069499057728182844933298304313017999097673210789943876881425277471004120910245351029325210875285732506882818410596493954496067414557711418653271525556022296732771708378958805852678390369160649591170643620645933753737037630730327823887631429272620642790792220679806872306405271120778055388391327276727667587775363573342634518534760471946214290129450787860177082876422084443684653073923511468420010070767234835820930010005546901387272092412515741980565932037253429561874637009334392899523447516943317707992110525411975000187940992815326238624665830323120435632346376749327806511922043641715037903186927870937980289668643831982495314029570663026263316523215614731400182017508376877764182713514013606635523711646815135469041184173775197097604058635738691429153165637280536847441928414744453369661710883829309365943415530151183381239361406716372575222237051069350351097286824091664091795418869727089834731035948293291716243270400069759943563988426025849169961653045482670026718370489365583805183878721272987388634201519581522204928496088006479449290786855905696786354532546774048880496584458788971125086591022084844575605572456074317227877114386641371499842613453087564518186976981008251362947531561554939670006260385929067445670493036780015686395451647306444941473815066602153796727158753654642053538032821231231160581367765502041225317860572670138647941177039165094879085183772897595609177629029216235268274244519640265567751147741270268920190013682064198279883569680065385149388861530513587154677176372812312838563594897301958135919887818059042810330789543773226448655423996979051824683202349895100659976621769217596198099920859691147714905095151008362593217491989153028973969242534839752066414253332699410042766055309637384487765761358984588060133166017673634489817030283490052173139813780059940045992568682282134813853304097786461909448925000690513227103014256414657926605127113748229494240263797867914310865580423620389948030678859445020582263818163191110410920093031331796164374933583167702410745911803287063395071943192435976780968560507425123476391916920362158461174027835399269100486193948855926155514831292133423130293639594507229791631367655604142393471623273186367514324450590894449466738746421790721172500095672789545585376641102850249388198593780098802429421220679695311502821817386656927635202840244505554930191915772439151753235613321087156964151975557818132525984798474777514422643658514721963120921932586075562739752517461280240107537988623256950727795947309889516826170469416531882759634984747853031460051706450891397061472962050837703733210294817560797038242326050731405337741011190990717783971079183457188628297093869641320112299441388371431779647104042246634689542860718361720248277491867450155375570721868821417508358437186570160567335555012532437789611954994860874176961858400396607077203657498719612911612799724519726463364489226541074314474292382902795637380151729580014759062271241548311306757314809306944589313657381588916433925572152218847887993005689503930986043927029992789350030002478028216779548950839430422814743548921480643074737294901503474760012616988813147859280478331987709901728128431260405658866306212532745795634915604660364971126422835909360245795455656578739141146510813796171666980115341942560143683201851904300310914190397318840366353210177993221282979252021671297826595280880533919164759470176702345361897902433775966725834146458276807594738291595866864193886273335235265303344678922474489584510488231701728010404665517935406581939951189799721740308924105925775215348626599934538485894749614813296477822121714861518506581488134314611721017891346397410843021192817396446209863281013862480063714661517608157881178994732522543221451130507128050490724697801003518657334280320139287879638063076650499558251852644129469183488199628101962640199438595129413557961256009662947569206821715926810893086933767497312742585759873876608839467603842616802112488322559661988712988047265754821011792988934745644670298709416626661406758413723256021252032805541455744640997265223800381595567427344065012837797310931222137546502316207150719511451851264877140562960250132965277570377296094148403227678145999600174178248931011313731334010408684567474001787454587772618959259774519384773452400558081127101476294835449448103385461414001186249310838779558716132089526953255971683235830237966433926545701451930171347034212316625554107030641708066102185730430761130596479728500292700834477983677720208610275701626693268224693994932443859649594377904555366092428169154054318552715037936892979888868527548341365927333816563940399153070401454935264521569679236422964452690099153165509571280797107600147474280476488461368566109181836563047562241004471795374214355428905870665110127041161475181207432888664345306705434020233154250709977471642870824822666215451720620291502866181205363759660606344119501799405326398875084904860310188891747099109627821323010447531492785847803642844076235796759854315671754268621082580807536919561370016680265104583767567377980478723442513129417135426127088622335894596699680841574219446137312328158286254787302542169002741192723550398799671363480817385176364549276401467219459458066239597371994741630146561249995455971283486264721581200983582560438902217334622509777034885031594022261558544438514002657527479574153443567134674770794152564834978087902513414533345049073888200324216700651457971241341828847589000689969693282372935321916051436100288137570495299340488277566122628654618574505655311498369747800037252381614399142734844238407373081920996904402583034595921445643952386718735613213385823475387683565643267577446193870973116240909551066271123050686342354813374983957524498361711507740152610733123844504823493909907271339959230770860014040382540872975672118107297182272191167694542763631270662697021766449677047971728174669744348194869797111113941640194487313908911770287101350900633864038039502373585335127620965172918811264843693867721290209310258698512873406891023286941482163121218313400891834511658820692131618205790519160043211267194947377593400711598371731152275340879131268862553882189375389187934788446551013389422320482175198615733012611193634624496305645443954993210100656587841447092422728241563555009078543043217472413244632477463876211925178162569447414951138191657307276893813185985133379366066161865429184855658598894559685175311370504276096588398979347808957062818227781119304226612472074072954580442324021422476425779522335308593066770901273245597302959004737090870432925530549325140218549975988731490811480901327091410976786442703425210030893524113775442615658142137790146295868172141375384333730816044450375195739685274540909593101710123039401069373488834921761445334484910766494362271492980943153437337325102021939317335102459938030629859174200615906720759848041572371951023111850373477315298525469847667953584490100456752481317996386218657084591443450550691762283492799654543601001639944540165567201935941076228439562375360673945927770253792172623689750932062414801997235815990324077072239264747246080510785484208338116471225875503192974891682407418129394694340871863418756678101565880518696679927240683081254458658721583217903799283684537113507536296508374972684578839734093795279769700395419752783576066996261682011757146888358441929595010855648219863319322470717612006748732645573097648807501859869010601035267535242995188725535405501261828853324532195920846451505358427185054954687498186020851183158988209237018439410006444360907754276314540092804740576449087978498518408491702471705257584919372420661141857769101042153076309207206287085324103472331320347503501026199164789827107542335409112160199577272006495790143781579295986907922336889089070442034739244985422049932434777067992842264262801814299501542342126915956339222589699782819860415410891287226290594877321677791636988487551888124331500787111252448800264002040221516046005740567477863689410228391034374279215251961658001737840117760626095857844419609991390938425420409045536509830581927882826251073699555808799005070995286125495381781202014145030562970567011550514855827328163272633176999063463342312145076376521768400849331114128076161368251891859621750920467700517114257205337115437801974623942563708655921435655631270619230464747039737907649296427375414019744788108680622107412468116925589846136963782292359500822256652853274019142851069063997947966333683398175603300438181886286770323576539247650107934840328588966662854066374239442343817578123966976074382162002341519982361196500719324058348837256463588872606458927408565747765861680780522581201076912304555126027392791716065439256165956739925623208880112146521473462456506047916164725997414049712030531728987287438916052745718024117697057684561576826060709135587271132066283601531121324874226349060187874316852503271277566233147054423713250776119766177060627030649195444552442284905791884029060872238271534942784129272878211551953531196385456944377144156790012685921690560872899580719777934203842495176805773737050833077517928469163562209779295464373125386127339997104479467492022155141540363227626949253628865743939430459755125631487321352809329811522499238054566435823194810373742093150470044345586420652123298039128492243313428707780305714481874203921577178115046851130564462693157613898802288465058034614002798061941753321698387013055772121768192434923033323196975126594017499059283391036492494981539613101180307211666299500380599525789787705319516369032592271986597225595358418642326656517120221551302840404755967984300689599997317044476172717466034998306562379915807650995766871787977079900345759418801936466391877886963543070293345640550175055864776497865364733070513466100322565986167744772850515443703444230923376860983795262196060371778373574694753553291132196864536989669753226278934892555788532551643624548045617328074234588886302221799922690483379582738451172549689620607900730826627441001149577911014900969159126693101948424260724085788959177894836042155170717108980100926862828035547673047092645635713083587062321329506921864749247601716720466269370345027922545225027513058183125850693430026867650541486681625442994972696453063330028342747570815935533656330153035978971313968878779581514192610074264549132656284367662037414300777834846753802248009574753023757593980810203402910066615605909996035147871966613648769671068809582656262141149650062967447173749090010769998012438343911113591701270740828633490661505770321499827936295238847327229558735649149364384851952635835926116556528366697735749039690740758866525062874640286314840150819113595961880497200458530987027110609036289271689292080577018800621217884949807614758078829078606646074175231607749420762012391543690257510241920356429033446866704015264799181697918371825710535967880419031729791233453869954893771751749958992602825496616211558525540071133025527421320850865457907151007421324196428029710050624501149459685119945634152052332515268111958945600773587258928659725047099848785336694603349103486099588961286356154796956434684140556366524318061824196157467135083238064752965725845716471480295679279409454383197548573170087638437291470199462242593545722342055455060668157590991087859267145447592149076211119002850246292397255389265795046791116862252893862549261043943202069173452420476735518224531747961406146257337754900149913609701794532896071179655759294775583573919089420781544267944885573768390123172520596471669144925354395428068463337702029191703405031188447927037168756744446680041813816827844633976853302734063230063836701641692302212653125218336155353850371547472780466067133932933023797025891578409246435001032000169629431472825364995463996462842936903976192997434947246960028338066844762789194418527046152716865718894763198809170748316979190275353004387861397580463249688120199166605935024434005923050397126797815366255270911759619178439732620633407692752875086263349592177825625860354408836556878632281518404564564965927816071411475041516362280228215740894141141232444995094597657640925422527206476467594672533769761855180601040556595680155563104060623839953442385226190877569182135170352986361919346204528660484870554985610648616477153003795261947477614591375321693257847026480352394595878052925506678779340944761510773319016107363147204591242932636304920857140912194635113082798816827514873608546844396671205291091186694407643248528267795294641500103030228936934686381180522530569039799190121631901815674614446821158730695761162294421646131975400281666889019956582973886029377730781310286931044603000026400315600909419736000407558696741970008465893401390764705673851616040083190612201786803871944780859898663548398431407755248071146180677608846802713977520451572991246818714686726220826287670195352097019167358288712579066127551527295308986090166250058707449669616141414107997073833101009399686037129711880707461463369228156899426941833723005046416562978589026367369659586770990105105050326267212432999782498715118830460448931667819543529796620432634050304271539313777366170157034404116527227009899446540447929667515073778610083850783933815631940964407069768102722765665554865431798647874947932171752336355575950259138282489637695354991837967979647487811482145416882852406810909938899121098079330330502186919000646676492011604016737249957464478035518538868018315645938405442019688350739201879036677037610538286185646559904836438205864272621044572855575049138797060800522943935978666840349362960258077155223542503265873211392768613635358683266931310265828248130006922266724931377771537071324831743369058588122019879018533150805823973813872036885054677269904408961573448554447438161387673439537750051042863360380618197019903519057866055784837886366394743390243850974570745358382184770442406930432653623064944124278894672680275475504759154312601491410793365905840632173522811447967504959195720636803228384958660361806979785280636334403137406001616868157070046341112907725699817087587581051435677534276250327854828554061758640041502021831027279185957131449268534713959990171457289955316966503008768294949729470029048345036804746970947614466170908080740398654334048266027888408005521298592842986568274089560275396187358653201479639432690379735083228622899791980576272504072523746719900483327498757033021944191239472410317211829737491073440249001985969310026087934009763419122920469518294744019122449039968698571930344141556349441589069887626800370776521364230667914617398549409069359532014596340505349574798418657025107099612698358696490327798300210814900595187846097593830887255930892457617160429648799878151265659196481642102278102186620901689364894873740006338762035601139178493977277176522863207556420596498653191014801304799941581489807292845248632561229389274893124788386247661748724215380692466288634306119976744438705917006699166497320227165831528782896151258156535289746825095879099985462823252262943458221677836707963247303786829619286728648492066814534035636505905134030471710444031463325356705408638969772132929564398928810314668532331714186883419013685257582821933461708988657739016971889025909075154712920381687219163600796575287684818243908685134536705340271290660450004344792348484330353251159133730100375504796144141819629163713381347021608126577297839253956898605528801896085892716900860454487812554975743345124113597398739196172725578061438335556073531700287296062808353506609116077461152040718254563247459048248471646979462514042495920708191640158595462963437163516904114417104909173924980081815397034429732380685790858374761858200808680409044580345233529901578834566663435022325312230964390687899252772826670023125817425187311083938090401920386116854094167121088374842623275985451412217675023557248403216770529206955465862724752320287685416714038016428154291503126584078109258492509062555522371101242305362958103464745082716719789501688442296405587307403434052381320559369426411203236308347839449694579568527334584752057152820719516506939313120878458165096646450539727648001389590524009625987019350439753871993225063400376074222201288110645409510763252175818126635414392905709008057190277605753464881254402193100342883807548107911950635751417304909730652229271330588091503738930052192884302036805352842482812878999172729997699404828525945955999799530683733548873543091978195626029981093038769364807463237930722854841868568016006533347741509857417728606975972213018227513152796387704086400373575623771425825722733621742173398226616173491931366690059034119755749113380583383480583884237869611787406628388332623262806713671475823834147262988887817474496896487448772953014885199471450008608336897308659136494163014014637670164036389602907280124316066207763741826180117547130460254983632776636656998551067764993955857484227214854923112821069079945443067371073946428050579400517564400507884422227418251030700531250933404167605557683947311691087505038301785956602995899868203042852363422575324825229481257627361644557178137675182632964209355805033410778295966174405212246741480220702836030829182514893790631159642420031623586800469150936722819347355077256371074637136417356037927492447373987276842713475601442059707756287026347167532706675615338273237546387207640674911241305335620051733572158987562846461467164297769786538333042356316014530716632317247561964949903649492226649298995024017707754875448852746759313066198555813640408876363352478006887009492068104356605755427926936359784615032243079897743275485969179681181370216270839127016582546379718990415684748948947654249643654163600741135550242015335940022256993785273582548635249760793335707656125504891710640045545887463524768539023470195238010703676865546648897772256739484149023978844158667935740666977870433537537660566296038516595054480322734154892874282509113606396806018947113980134972143931189202105327678020874567095632042791583148249824311343064254638809033713300287741168135947185459248570296945803840669864389419707370461569098556474179775841353144350558343285179916123137140606700635631215456292257304047605949502793191506511912670754569666273910662441120019380702447684005304526984850960757077315986635798679839670734855462246314178363164235796867987655978644947598229876298298225956560887404335092138899239092237745750556162769010365800647672040854217432643341235030725533039995460743539077643299102868738706104738944214754033306063122440189284185839838924899666920523984710756974680554291044081349106103751017254636866208595787309277030114072412401651990699961960408449140717239155424543306267924713161308838214361835579489437487780638738298097625937207195494047923158314967857525531842430766577118280212366067050926765590356980951919575275320671595326550255901908575007485141037648779788080867492660217575389152633910943676965196100707024335172731180318268104264575029281423628271076026362028797368156532677033678519931404734862712536570515964754325136192422229140357855275828677913214467233944662769783404792935835984629996913132079408911728797706474435595836362304075789500009200418615128663319699262411866190154370929642969404188272877088314081062877147801834059002969226297047860890978695535653333303226557087757688899589869699741344903745956216748472090496347686518904404608210180560633500508410170892459939854346986448509312970513992668914858292834563363555462942102761575388635864173264428932695151459855768709889464324415617422872127566636797706916597388377132999891449142306300681706436100953416573675990116221862880094981336029027178040277375948693054858282836506320411483870809434902612499050516812637162684522233070761812511835962579095230160432895670417950055953450239991220464576961930653782905896854294927466761426116563988543113755690310325181815637860412605688864948722609687052333323333443794226901625511533002029623263068972662177277882489777752170622714014737762842046409700512454445610435214000157858529797540569455718121962941372052058348111858893846315129826091447143877356613204322635646233339108650211790642562117949113184332069109138632942332338826772325760875247586529946446554611747192907964743124763811987158041156733630243984808222277486357905657299967798445845488686991685657128474636470533328257058578811610752660362286093763469052162166232283033669725400073864350187320855787772065745862723111135666051651081837625538077900930018772094003607078787016061927407616905352170314075862839001469596346360469664310601732815452649975566153503124304498381150292452648817331842300245249066178613233660661844914796580056626979964062197364878039584794154151108279470885342689271386449184075455724264279348470822458563965159485136051822956071781840361655280599152002965087101054737285816564124134288489035162732349725191430956596582081109650582894091458831847390582763577903679579414867529659843284242126215065151749030965811857116313700710530516228095178182112451822193336866456247590885128837451831632998037548501454295183001060571765547673783887962580753972537122553848532884269487568411528963623011849144202147070888191552873169839926475909563614634588285220820578270676174253608823148668005657320803532629440619998082484219821213766727623026374958611123231296664302013484863307437028513315091378608322645622024531041849955693798091642948963267177471518119568189604478037857188138699043101382415418364542265820735395125214699509515359968801759729688585909792602525514709614095877421227298836590152732040705563130485876954146818486316325927431362310868873318828917333787047997201499668952911096352701623845206384920508583536907314631506111439650700019065060263862263109728092832052826026445079328698760478028888872401653571634126788329626343701315134669555314617593131506044654183251997116709535609401137144925691014489508012983942449644503451462250458132521999742191919702470814247906044022989290281665651373935313821471192869486022629766978176705573265852949097028734101915964391941436684946527432867415830300929926234807287714130173289507267754008014702954635641640980201174755819335319251684192519139637519947205967345152013145235613596645023977010001325964792820280701106720578717691190326560943660239764118066736136961418992332769804180076297060148972672935283350303919573778738090295583508238514128063341332934196690202411212018930720582020469031526259542304474143813487753397171446273477639328292491758699159529788325069275007660342141457482545805350738480489180598244622531928929368220904358758274369795593669821481645390637184251979865694775324202039908575736388721431909000460910087281891520067484506915878586574428553018614496382202782016593215945470387078826872050685249224176573730788621811520305252558912198200931956041170753380716015850785412903544232965230976739663717177430921469998411445296867432676061197644587759507415215421260818956531723143915786728767999476288983405050343892849751827588409651215592374868798414721515125949195307270086516950533693375972811466660845901814178398462538811555096228022232309332586496984216943613035490326496607270786197946234450210497889263610391286780242643355627729417831732369858086978630872687387174837856335167528801221479074410172316457788233561120099034188919091658915753334108971292496753087373748251351809735066656225958871310721052672355221155417886384204325525382169025956071276656096402172391456829375993268712555169616088333882838528154805947123752638561566360557111649802468051825100643406698012579451573223167057369975031291714243222350076677271580157581039282096540084707855425466149267325750129843699949600179958353359025134948754565583855435345612414757522705302393441209114407920581905690249572495532170732079763979960097433989307923868728320663219230323961182760398881978620613851495647720265002596221332631317691412550605180964341947447551033841618890638646453747234668804912846104405641234169193329221084198464401326193253191082303527281274299840218317157894729011787960320340036786966206082771906666049322975307050587305400019864280026718251007920057711860050428526355250354477125736611346236060239664862707955212267399539594835296210291379608089854085264989042025259510531592137811627697264361290943873850556833652924864368974812862890800277061124774789925154648023982864626559658689727524619552552857977176991188839061031598749163149706281715687302424236072708326747822887754325442984820185339040208087735539170459733256039957310485094128771963549099299991312209200736143879175249123943974541102831642706065096900377715843540623167502041104088147565181595714107299176403053851870097780473104770093276449411478284729115453007736805320836587292816025225311774970011254705550113177680099216796193648934390357258555130304425287490071043596971930915537228437789406863265939295723753752209759751867787363505633362658934927659740106729272346865218790177829332112326874492631904858678556686358713586988517808289652285332370477088966904176307519241834703480418789346037053749522747463821669107336579893385709327460244952389175921248923083969885901027570653632458825188423611345231782758980062923437996653162920029717996758383154784692928246269214870044028332093596152743488990563407347751920183226977175323121051224874044715731732981054692949722306329408659469449483766777650410344078444439270900734195642893671162126252970949924612295368831621242007425894086225665900963321417091394368794329611099407849752209168091289624129283624421173623409661966545743416422282515956382549511997039492645351331609145080065332803116121083511261642536431062857907834575324285465544678149728979040852176956178776333364053651155161387542039115978775179996663732647263252890634939350972222090506899283597758794195943316882810005157017818146586414929561294618833953273925750343113164402759841441776931590828684708852213723662344123098130500401509106604766736236792104922520766542845525909487626699441758781015089964845683399052694738669679949445453775262135769638460517118811449779550916806945298068447859353052706030824806608145936802729848134894477880391022896828614374306212437673018626128295374071281805537985590230656976350444573651632971726349334954686144078907714163079088528819578907360604368555375777211686039871431982922145727702924144646972091178965955919666349448455325559450341490037605683620068506557632967958935489906364706216303321097949867044263946753557242657541388643045159227938250942002069466281816764232439400780192382593938611228194103044940989720069885314458692040879589515647985882486537437605161909643815965810846457756359732822716996894178545872100974428613748057679077665492850679655718619903926210464803929465796006570079233272495892451716083483467927148412652548687975562954119965978900340576493584584437775997433257526997765103061680337168172745323584130501208866456804177779523940161744835870508107949455531142878513744762112244908778568330999608778110357066284687804238166499519747672089483454692306194413515387998280525280899853569765317946428363002886117178231168878248329334631545584066471906706074317910983295820949291650159801999198872491271727132452563222101142651001464737866816694342721302288480521912224761277408597187123947154339949990550794278510869829081981294904515118317412798024115306132105522149127416394923066936289271481466523147198553928832576384860293710239414211887339237977121556521728724706660974435063562382699023012108462369770304823802615999389704955324901008375712912531760688853734488429834910725449033210578217966838610120359878055156168347220166664754853433214373878277640170828633428201867626979242239876492702243021212412110236445870827899688507498372509415792726641347881354455573597996939984054013859722796896334805069671402182942901180534858206854748353556552059418038778094667460045181767931353083549745801799233852996457025390135784206896540601814607103147334872288965510786877374737898512327983812874151122648600638454106782568571313843731711018601427189201687898193683024736845560619875126945524565675401342091179981909104699679500861571242506573915315804544218142390648375996506498846612400058824212690595046995784749657814552643412057806714615349155143437413507402872347525790510366660459623109406191243450120415693743885354024844463568196595296830490672530208917240343174650180510612576902579543257536260039684125014895559363729556009794476096881621746027611021647032366208802469910912008346930827267478340916705664638012410650878304275939729205055216113838723650370927749748472601518306719777408542385453242740442182086815193077351454672281806826919125518736348920982548672813788432028483352366650702010101567952729193465480759083364813122644397419220361289238214177096923396027717632791436347462562994188816767629077573494560575203866573989873376660656779553760534640581629342950136996098972005681926741202505434390926847160351095848919293582185370538138221111844567041214062060710645660623122802916042099002253358989859796075767283659184391168869529346901001758304290524247187625803399158319660288172443984426239884097526869018611409654930938047390701620435503120622122779657088249451429146942864283016422648440137189983246324359269663212181286853409821897587108493889002493439421684981541555421166580443500790639416925380751727986389906009430993693138513379240512568636556380844664494315007748665870381896426420147087104675536142216858378437951200525555964035821408650761398408827132374049082343300261991617589915600032105653556875305139382782643924296120953454377510114942263232486004386240398281250965091885933657748301658735120312549346083682143823959193759905788602684470993261674195923416441835106719967399032695574692663684682656955669131287238316769933766210101697649479844281250116444456026781192402002848305590466421546302232941227454800827355603110533651148614543747001272041440693413882231569162621452831702000645344839876241670323774717178489447504320030046985276944140400809346330379964593732757978363995542986372463932436769970370225472236170457361812732631415023077356977529489177393408451432633885854246728314572993974133313956966069228810682153119650104083398994105677215889646348654319743841670270869397900666584775198293180465088806680469058729257079176003207927991393795071737676246784811436047965553736866804454113062911206983800567683147441738316219895599810201094030361394711412114097555919448346504241016470401059493424342632030915013460900996048523892464316176545711885184372904745655756824098484798883091992130550814281786481882173135008533122777827268582019874418832249527319264861201894509667176323830717814636541339180197204523575039509533813768499349889416561088184019359653590070794038170425331762894717718514922816540731452755114144213202586071598481239765952011648818511496515015188542823061525294934479137546535995226436523451285362632947444408665778964251388697713778993991349689273380231430285990720670631178085717802731798366718630420323322796951249958336074210256636885125857853421151512841674599091806708576931346990755551834053106224886559949073930078739539824357903249697302788430538506504966913079715413443490618728482687977411400330609699711878078567982383300234771020863396379166267577698172042148122774084126648095222323470554570390204339986459433424661065987303238749239812183715778414797190621131005630462520447037645284320281969938613705098579272983111219197198627086950082583652153801391696749494978689672128259861319040080110112893690781334331781432201220007338613653270893121749056110863692988251146503390842379292973640350414332607873054458680860619424645618888001757777523648687023924962500855152507805004793046392861335638314601690105328943245386257227842587713708450336032535349053925018063456098430687391075830409920463725988867636192246975209575648170626779365343300937999905677018153333649770517719639037432910427277248061932891532673680668054261002312274834815008645138399258238914427122105625280762706132807497755328294252650199828608510468336019318892205507437466381310537807059069899528230661735582916937764926863917395711492064892199988159934989313292499897383193366599237507426972208645185588225006069542014732709225338774116365733288759024197157679267861627181395682257500934719905164631344797576839919951216088155919133416939051823178130858506916392744275107823464744541960298185017579463430148948598088011723737904205707788575401971406222529764973073818501604982536340805028044774402941159770043539442518744130941254084687341407255454574730390044248213922284594399306383539756565680248507700393896244337873870821091100472555210724534483407449276030372022618804259368541301191053764756886055163137601138893584657001354474401079130425476246369714858167270177790119338392685087643274624724695198133331253265779441986398283349299503428271018222729263193690745467410745075945721594139647819936542670762134808633668848147186239777325553376483996646773614049119682336683406558079654514390686021834749708200266314529618962394097342197485470064993295536351515310496347475280287220809059909702638779262560768405544751201196542680488963931818268847928823951544322438244666152911338662069408558469457447577881666838582059803212501285519193993317463642432663657665132012870605434413137433362659309289432144321442095082735562005976196633509373920121339638434170980062317590425535385179713086003429193524600564359819388987372236166700176028085501940786928743896150329300118604362739062563227630891306555300050177500810904055740353510309703316503675848818729684856288402803527208647110379606197230027118361929955675215436288135899749350460629619696731021923633919953550409811539585115586511225940088492758324429739123962960759816736110556015127814778722343745630039641625976849921903585020764860198892616709136302272429070972896294710914958612109707890487001715015831539341685372974006961130623339345279574738639838738897196469432460891068430923771234523097505355495471286910053715062127115640378213458348114780415273543866347224626072264457794576286974724500596535770206274609655081704208326979304001738525160650498831435335205187517382698600265099959996526259686022652535330858100155086293385554237171729831182661194759424331571998740930274309637248958239141009067148319588268974009693430368398190543152703788422182293921531067328894442459549548654250602696641142968890548825708273725498854507345442598400007445230582933927654015576885069586653551567898190053263949826965450188515436771370328548972440955190894922363655104962017863294919328133149154141523914060877918616337956550674316276731361659454429778917759542787942600576516844206514755109005597152940077957305805614198765537226642986127361295105499130131727201892065028039945969752993359211648938101461826325693440653462473238987841883093149229502485934307481906404559984997081002128748512864966980953413975009169489775698592397224575677022969898154759409345165039548332657778107851769153954396584338741120259656386106373041359519770946120382025264368108926260363052695204733048504686275043919199068214416127750928159536918373527700252937852608610635173464932387156941558605436943199867126475270225125701184311441142545894017926170117755680393399253274298588378447029972733947713768277787890184916202627206009542596278554981521292137062514583902630448468471800709440897456574989872592295867922713701992426651206080116712395442000098380705492911362855480237681692026621086665842248690300943720518750482189885816498091492814551812802058506623239577711577911581377089326977187477921633693041421465839979573960327593391413504409398671370289349761907216410490343551288193666298252120916123889874540075893142599392065242791841740762087317117022953590297818810607588408761900625763432226026419167541556188239723464923008137533072738898107490122020682900561643155836457958777663724111738535729310475600593725330785016478999486915991924154081605105152475780494532832844686925678716789838864072962979443910576670815659345430116131244224267013036608167283471466209178218992177386844709802896571385154977755886277851400320186140506003072651062403773247333739127465531402849290598760528007262947371191327772109783769491408045944249106093050230279936912709628346663651476120826010547393605931628672685395715768008836544897206041782919674570800682270062207397621041906678919501103637657299594858327139527443507266607447372741186745317675820597774465272108614906448211629722264886367371104650110859628053020388546007430338102619901050485609164780906321566299124708871797417121189264480780756280070836456711437611727693362180822097072627256915940240188686762791390586662784389334949560721679982221862101256686882800595145444055093716187771045202423224645817275133677789901988155293018666247223968925921617585646345187062406944855871107486134440895649222044395356021782827634721554516542062541954095306807953814097772382807674282104915185390964237529322981725147588085146911448463179264806341208365007948437843568736355313285818635019982799613082185770589789824600822861244109514848566185011682421350996874081696896619780287641301077622276083386255311170853640331035084283058188839486104235165240999981367346701518704587038429383695800485184214668185598883820716099367598550753396701557600700419493919551217877753941418015582853113265132912552390364104915906394519575551729910583795062535586143076624477424466609422325880869991303755507486370403652046661560303802090791279355060670052656385739650505184548767710258995565811034891200584673987572727251057991679996673019069825615334263513426243266500370616681078711549071432734869616924714586583670114393098905066422913506666924294593994842716997337752347570912409436216839607362143840016746606269763030950639247977659517347413291463363541048331021013255528270871339635325792608588942634451702070250050715750682963860578224571213067038142436357191425200538346914646726429798520834468523622021902041669571124828785442393673604730582987338470702899712068397502243949163664331103358592475204401600392030127881849595391729889768770571027215455911167083315774855561417641132253841781378677674924122910025518800026615231943619061909877904678730003453744030340858191984124007930364987950133920554806780081380495698619357032435632383174490974914300589955104016901191889296152620124243821356612046318277440047803370243395522353554706269123991803027305423609123845579200873812844783503327551442065506300105703721908194189921238590980081313122429005774915380048839111114572915855540794824191585827787393986465188834422762860795456969450380582134518574123801941452098377148439938610645132985064009530925211632390818234056376152829739513778108460193933775678758315578093074014937281768394432525715779892340237333710840001670571050838595616444739149974855282563996519722709148491138196540955924653123837838107691051218554102035142657814874058899841611743343020085215921321799687410278707232597628595959134426662314210666211064845867564753721724849366238582977888030335084270861570113293418796309186403560730269866695921649265108727174660672155162232669600916983390234786041143315365589290218761853925475074316700556013834247149232011255956967462555031018783390951470344767068281471008127850077324745064004426610395624851578553335058483548283957685137991661212217550476150568726628047313845715384136468867470425421706990546879281960992575322075456396477464398069441550604717246398495089323555754117934666800820239735699585966882718792259490064917375921395765440550689818880972217968891612349793946068060210313087436838547373897843150228244955557839569217001919404875477321875202978969979753039999168732523516769820824881606295558713136835705783789642052029900763758335070059926352676567081251235330081566314683891985442977189276221196859512573807825580973949712961223313937598086772690136190887960317613061123754898975268512161152322677494030746580065609390174700470771450828318189845126151069989425529710363339586285623098538377572583721079899791725875342576681636025510483306771561187770304499826252549873965460413201561871701919162911348944955459907366025476093324716697266413486617367112066232569821406341957487688286938136929121619970804808521374450455733085429020968586208437643382567771019205718220441762778331509837751939746340532880080310867381576930219041688146486380198867374817915336625513909501796269567948225186069121812211580123589306782889387347377887001618180355022562641604518987763970222461565792298494030270025014455389124443689190917251936475305441412151197338190509278190768010865676399885283435602168444076018077872323093252680689985509690840246744882887997762548696013338146699433602236558760832418912648536848747697690130958827573578122348118554573743084671117157816719268802738952620740112861984150425754228333095283322427419717735553211427404520281294112557052347713727051270161225992024053472733732138938650625395658283954444343065062025976462468619511872478953399515683216099178536910292505892404551667159083095310916128828078012132943121441128579188932603433515143532920939748375882547207824387928072426475546626426405811886498889624785874509368066220998914910814966801261789815611669642495682103940754892422580565943314941303797565316973695564478534250518764842723932372126770515388016882250462432138829909168325940557156598679871872737672564558312458718580471926493122189125983123393898431433249127678541577861643765387139345660858847052137407157789522377731258160289205198198376796485211989364898920741041091993660285620285594276424770908710549378200563180057635238833734128334495881231067361299985775209316801091447155511790226644885735611571306963877403417821106346977512801131509203525558929856905539531499188494525301973416327383239028454185798725169638824411403663804283214851015950718702469453244478138330571491074716296548155887475531483130861175341643567817796419921278965828994197337696918751492291474201876239152133814542137617935674181114470068672516863694825702791601094625882006731851215834442543487606899923469875563701643409079710705650228109164225897870588398313550725332909018544757546640820048630971183772596508230383328378503680673008753076063411228716695039840492193564597182576681207326503086341822549113107571897160802400328666445777451773168940568561686829376901779218086119447709253457619685010223119633480077249117918387673058203572055855223682878145717328622664181971549380687983378799538477322058348356638167374096704585551138942453543027792661496693756775462261126859155120067751721818811742073041784378928014967375388396674093563150168570159402411448515778087224939891228693160735368280613789404016733466104408849595617632856956030575212387123828929754312700514548650965395429617561124094152231052996849994416476583871608789784427867224879352390521311013760061230504561973885523815439938536304078879101219090323768746180373270008338825606823515382861724445806265821828652986355243729286997424568202079078868594527612340439567924513083843597629614451808921268710946285331917700400447859202893412025294160533881216524438678572531757052194127502997712588930292864446200320459795423649399156862183751377013064440318639087691873617487163106177845562086384532096869124497738652232174684489453351821435816721743719285432314084923029060972681521198173054447210089409101440150813096497233441381366375358564335227367174072250076479644323434049596395762439773726387696097015721324796552394990913523514492847879658433360142452775445379180645550000943343812130020242344140361898494147071215632672289525162335211192116607472491650903529430913513402795766495385053676131417599373746759950193564075733121585610251816397986057245325110134561984833298319188383458957864044824728804227933115725287923751111702319321410718374850574769998003600786973082929008892967992419117770620701167262501777238703617012243651359333270300941208076864707142598768061586454800200137898661207827418523085191526662702171221072069936519397623239363328547407744982132792446285668925287144859077089695870869247658640475641324432453142326049802043992425903080599340455906712968173389558936696673983436177905490965018944572513508021607314941898129021146234441584930979445418913839966915382002229173161396913779776936735133476227466628794480322350309784871852674812044563375799717132438936920008557907923309439940897703854880634727054922541926414077137958019109256141111411086738384231414916246140716029360212621085925850968066894903970201012639960243251647344437547704302704788776476405816908353557914867767604961820712845439864160555332558503505382207143524296398764795675022678081259119088664619293222668534024078707049442688851895410502252912496425803044930917263129245818638698178843446417677283911536183194187713164938165781223416298308311183920747693646712896330304912117692521855781333742032487696432958135318709384714499808400330382549093065146983592572408937658441716143682198965474009097148279741327630428526756157054336816883201032351833501181382635806437979468089275508744197728987470187723220967590234499363429890142045914115706983189763042031625490509237471917097977128536644102377246741454758934533287857761285194403729016847160796016531419467681535909048652120531106042457744859241371004015443214007889536804358192460815998828593479128304984968668084288065253466809266441749704759765140900247725037866096517680835726768535093479416231256997343651940690247259617027469784385349559876425249186100273840844275917026551337723244228891262501359488147308711031868547235326808278467649225922040346795875845746437307679901690475361408027836618507364499903646580969859404602148073954845128850177328980405539659488111830144234879753438101535018552354877776360549726121720279210825090943476674508274338004378763942338183711647681150578837158909761551676274167721846700631020876719933415382461696081573964260152578735925968250520452465617719918542215510908147049658678887148961576394127159823565896461465500543288762360262003111180762270816866399016702414481671196335539938051075850345329701217207806843009251803955045962493885433066907625592588244327622949476737364532739193175865475963900459851667305779903117885977466619414572493255920203331681354017161383993501026687793705209884631200976328569766984982076333296332797077153382130412016887739495628630796819160688227883626958350020861732099229853251862705360266933297566804768190904165219271926211998211522152021100866762235444258014896929835467126661558918246158605875390113054380604435455364001758963224075269944045490490922591304646188619437178926207489308521933006213406587657184675140892897243826246556902341621403919218698107329038564848664435623527465910722993834980981965748580319956639741317349820503735957975498882797020881187546551599708202145450020894841652411752859964310453080789298855245872185383404270162687078413873825460074730458497143013956865478611706850943558401594990244163313826111850733875620769886111615604163538762692643214664595765693788639148380877731752261326959003681027869304879660220690041509552452853390781082095508682171242185308853541377992661018003667720150068892683745241860831615902382045131722752138563490799075276352698641580068692033387506270381778345681043515177578874986576037929251816990192440566308615715248018780327992164797287085213569586969222716174846720365978938004878123818751745486167809469576785307909607329829006988669397058496933162567253877807578085121349336346122620852189279589758734280421767552022960432632858842711927096884153368616556522221498210992986435895735263746347889402397075877511290083452785981022102958396644224936518820773153272831407093006542071787989497018237557797740288575195422705142964911308161003024625541556297323697258584593904398324199317191771078447719344420219009425932608416021640456109888594738596707418187203590694178643847313134347255567569240933652029835344211100873241040626387921179511662956103485998947457111579710317878574024219695336805173384723372339701276553822472054827571739749948192372549823633183894711278317163382905606783747399567344342338115184527665722535201872640337634708857350682760731785019190300482492520784237221467183776407281449139158058126967231641445784793865398970441629513228886397448435808850271721693688651293759106950336893492240271639568256312801041897163121428400920174620725052597289860120157969874673403027334138795412186574763156318956809951891050836090460195305601797723893536583674428013712478191715997129017446350367826278282805816088952609100339280612835471916901425342228650838976725581878269981594018700731626153821945462879564172597860307489439218129329212229049897473349254811216814484813991753863028640209093448156639420588030501743322285852906220035368987027152331985953385536979330391395222035819266866112971970356971865133662645768309142609040105144198217199769584495719422081339910010749178192183430366265334608429983162978733905504188496438622422871083179277732526602252925555208998216646548031138512477421710180302564391818927662075445860846135561696733953153965992635064979710891890739157528760694859402178241380892070249659625064540442598436673434211432311559473048227452721246992027627217781067746167395188439971245764477500258382797127456002668280924218017965644060690959003797874919406958169172310963914865370169074756963555284203637102866110873382326810474045751199752269959997773472759411612988586102240131865528916366881826773509580554279314503896556236006667937825908262684571671968741269139019431721649653340612510309367554469952818149850210306171301461926558965230411023901801237095718851793633802767403852099645258191820163262715925510881443919597393763654724361548546635680293709974318426651313298890340009269149520243090643574798949442541808634609812391460901344314555558075012493320068372332009533535693880606257809268180626793546410312669755791601429951652444178430918736199585976135503587863054122156200278003060563424067750110774453463208538062747235533159492871831397332465154769404456588459601134491443714137707266784046350384247688289091723001862852877701509986778735909965909779595243017952529339484720077722349965547364289308385820890833777611409218191598815851949799827171044061875474845571803070103027789156204412858968478105462857614854023711966040182093126770666259046662710675422855677513623306532823732743581713085970191475551250091324991118590174954067968402445468680813951372567821670684878171388723751137637469265178241224599759122526565099618414419064301714103912337945089590924126224218715503654638698094148714927204427965778364650977234238101530559257682050071925520875906362381548481712413723570375443726490618947232407471817257945056284888040039448712348383806687184773173798521066118949399436291170456904772150124556263144826231430048788452084925431185247521212599946321268639105480495209010425704458211127885238766384812611809674527013647165715980710308405230185458480429225692821035684524041544117664108314496377928497412385301625085584803678007238765808810182599996630402275208237184281529735264591278978965991863295307122458041592577097897403032641502974593844347375643091047568624720543656499783152112839755409344906060218191950395518161626950162658973713908641281941436790559707437706154915989307481193241403292925816508327430425819795338292243979040695050894397366016557713051111554888280724455235333223695350240543286605541675495040211337204682040935477198702433446981449764439220094320403735239749856260194792517275694436199383382249214409872943225159713189070080319580671292386271132849497676831621079287646599339998216052897741500359018101602115001458684427850021591809840280002694884947440512701253058845992879183903360696690579945276525146160305541412283055693413300223254648040055913056778952488833412746997759835459404274682228383569906187833882064488477083035977630856901031252279608775247540427389284115578571296896011858257089979563482506239228075886212409765535954575341508280805016587459594693278973028603282326803076192962497115468036024129886019979365628857450783814225761312611824819413310122154554241595676808028301902682657079059501978218632670726752461167374686337890679834581966840235632405241636296496281445973500462464117848296021706839953785506678704392119242293458330717647778679214607533671507035879861877919281679796556791521763895058386868401696082095202572972296171775785683667894283235438670890394798907991053159274466006104132973918144903415239437989486857138907995969226332526537397903830218577026738288049037090715813386485242480418190143423696694183588747206679612668341129011607109477704245396594235285715198716134735514515529805082102633141175417708610311364896101288717101122545059620488549302820999720243262473965643469370029413964522580063258645625396034911996475636304165672470453490561023213049929973011095628359640554146005768843730562507096806255519970599722417703911988318485245526168714557002586404303228236131646551598327973423101992453392883506424676086514633085864538135396820003446595418313146764377814176605514936735987568596062463823460078092882475059496045824241035505347964023010246157621694708322074241012390381530327050136894414673344384909162729725891737358627363812686581614675623878854062798932278917454297276317030633027334467156608559021801907528612514611703651373212791593070034411539358059802387882770616489899843649071940578434191419296850025947289530367046171572899037844980455177624942827609967168988020578767789839672327122243029932676690672927467399271527640157874945516472477871230886891432592738574951815161702757831178001892105773343776091120778648991870409746239411773940144762611366986883429356417042289513459864984086324973705462007331465179903185680412208367265089735063111269901902566182347005104402043446461776271367002220354630418626323401707356254503263610671179880163597477930682975757242727159518229793885257058269864552348863671586210928264626817478369493896903702819236806942893089288668686183149607973751970757563778529730985212989232791047855278794111301607076848780040126076426308187093020970130200730729207557216417690399234472076750857228834948609952575758570904968519095545870952412797376543502770316675332947800263173538473591510786769801943491601479997326126369752936386319063380321113471342005840801385290489091388543731597148311006812032374111368230887437877290072102130140137911274632181039294670829565253673865479466105724482797254775262965174924640320437014026654869506861040303636814630696321384549819794056161382823222751251590115506246705844155282846322493843654786897312591276500587435789655158898316276056911514755604313064821516468393003122791381852100395887058737092345876729139127115123228600825694448276474280265740283619498948651179396263568754144833353476925530304849166141708573631464251369766874175180581556805330877844436789095762443473823046293222629071654985117840653708964648725725615744180933584561343796094472641796993459819640923410875013168354527415405288323773460135525099286926076779794524867269107610326955831759067386751638939274384357715449577887230168659090501764963416307499737864424379308822873804447956395813215364367770494310128422464240093872292905693772821015375308039481927724945890979961467150945702942209587548100679826505751066379326781215867416704639342426872806968520300007034374245022024959621458447983070440688682440627912501698560556379889561087720270819060815779414768675030023415536295431396652399903539193807053526941055418862343959793242188967940350193531589632604759098686826133754935231955970649322499781576853070580623733059172326594593472120993507459357900999186804123064032671535640504201615890176019863527546910737666683705621895547415866174903671797070519386443459876489237078633726020817599367447471911824250765057553660561441189636611767591513271853539409067121389288724724113631700960768934975967839334433256043447594298878696737707447407931657315866531390994558664065854403095485705063821862979694308656565908477612646133387983588270327268160963941334861937738268274350489880161061471797493419854395897828705174475106116648487126551636543782693292381123433032803194506070108112292671246749278020810384080138742450812628912058537918582467090656168237980357866591248293768309293649518424670514693354188800413820883807143562624819903014154671786729611488045358742590445921343839370820516880154487010619141572273894356033437223313416434848807992156895310440562105155643231843212174348879676035577600284868210600369390576030532715431584323090787367413132445216904483471677350396800412206530798888591730018108612494731300808119052377862496528386573182763193396659945692671646387695288668969647177843701227338931677432128390263604524775125623421288797431657337106722745241573536618178715767442438749213768251673646455743578621533162358728401887192693002879861284080129712309082834962646977619832948657527093606168492367047585335998171992685565745873293849863617638773376658019291493255281688076688524631616859152621893050700963351540951512117789149567037580852473341973700126662716728825115281609713140656619833089617809762190632937628223108542683464556491472544049099124258290417210189829237317620885083057057017053123890741898334055865084320270321865229487694056832807228730190793388321073690961906057032022423810124130253017833603555345474516431411873194833061271921391788579987492944612479595231512792426919347307534721502848044281548104192819093114224035096694875602530126550682907685102794522069831694629253707830848166090717960501021579438252491104090769759206742870932149491636240766322606188521101882520376074490359693280018339242844189654958136244392649963978331000860120850712103947439432704450600287085699489509675823592841490923654697813034861924062688146267632834733830868355966785448960979462849256512708059501470136423262892945465124510039419222747760529102881494001095479141954744702930878715097210281461037597071343938784059009181461947209564950459474288126311162014768240174388238424763157725765375271387141845871584157480225782527268777358689017754996391960197226861160444497148159578802057162042651105017288581452114978541884809108440585851405317365084688837046401925895256590411410096180918239923449447297526825864431063231397970213688815589607932777121595589898583109583745309570088483698782169788090128969687810821684620780042508143540369657763695705954265828670317135499768479307879813257288933367195184941242477838618947555854958810302078370008631030375196843909239258789077182909025970276865109956724271628983418040963429745466770270639222909542504739986929332160714006416387482700997311110091061152300726039298227603767514012831828592131803129792882543128269689893682415424123330679356447197783717864234697273066858181446063275348038125648818382430904422811229635095254487439946620493975899419585424569176389396652151119615427563193387607341281109600129075911821616863768441337449776397437176705023687714419088921144644534308931548090897202272733806425689319997861214535254839678651939388637844326558630652673136356764507818536382765987267378035009776160950978389582459047858172673750152112591299894060475899066314566082764828265445099207566509501436963976823487098557974126061059584388191131200311372406197257440546487140306549678690058408094162930785738201004177307197760441119373408749001290182260813283668279909098481703358343269728283545975862919121094984401897707159016363066918564839903273758633599004577180600141162528955938769806911374248426097302321512748369968240775426199902697935005018080439445840686659131353638419011729845737073634988430508359662956040180405816596177779900160625935702742168512279543880837103266718846844720426108776496528945044569126421993833267381320445124664822492930714426855715878296508326086052274708169955834922706134581037956783266503469699357233315294223026800609415737264318784123357701417290780080141031427204753534653161255873980656404918537932728212441690979120998137689066714438503538663139031820432422592627920950235723434045711134567651635239973274229059233377643207675497677998678427825209065637042447742990678027055388812257808697414904651959454794936429015591275382480721638672077235269913852217119037219346095975744355943028220026211482057192131002515889359264203361548941664665779496573599389557039865993011077987759131353481074135239028072655762613447264989048956757047660754270351333989962459087858709734244078873604699953515152482109145987319696640930896632983177135207258563011082326023800057984504316186872671209466017715292356574952846437844795587087903816107102449633770267428849658988450495257070270033463628601871623375788069708311305416962347949020188132707594294903664611118453255075270993920515617656528502739009355370374701500754749531909772272905950965910679188448820260064708491352888587302837696665896225441576856434586298334027286485614110761296765538794715610042930494206121941002591959933619149075338428766099695837253242363080378984720476680108754754550925240318660210701368198584294470855021491482585645016623457343335563893508320056384785225310022655551081312560728098888522939168235967048889132242389037225550036141667542791654533492546770107715193322432268796425523025973695559802422951172033492771651584183651579833365229620189567199888550720325975909468910811044754831457191341602489415814410339536385280587816635649604592150498622328914677848863862323277187399396920100932254899153832910954509921229569375750658702924865282555740896040182729480087669623375414177839951679797600489106080189783645890203642166283339286165595368393418138371325792790129147488839545424671746084506336060710608515825208729471988250387612141865925428514580602761321455581277177637393221312208961288299933592069147328848010492426784273830128781371627325930744392402830482267933261711608606904191724856766865142285591261635309432319417359247265323219871911801542929379404166108326067248415121155154542548761620343501770491333396554949544934972422677299874782324912632952040455355030063290347782767333375130119199869818306537143856192926545815751437465551829045545142527826237854269491526378924183275590885513772519134409929515508360673431395521086115709401147577231355407533927832416782438480250378735843147671109816974676919291281762496177014312255191361044140900860525401159903396807817484306558516432746362039713015409532946921724962999400639398271815594474359231147581688786528403915822760997513656314027400456261746911045977972401000800830267837064383390428781001967493749187881305006620792575552082837447201199678825218939870439669915308180195747824956309237411841921522822445157016889203124311070202489829634217167377464707166307694997565727507867980258453169279407764595815433368942180392304668848011577107305258767946186770827264957129488570903230346469738187125960569383637995059047900681768829917596423433268792864292258283262844772321313385669999005671845494130294040805082378376312994332477972910392935455295061424259433219304121376395136322946779127115105974286652208545197338223267205035600677862726473872730030043979155649012211872058867159512771388179927301430387039114933438228979821689626235834495170020394062929554196795855752993814012329624147573405540527310182314378482147181227146294515058488915439099083717259962778225503471097449063544142958537229468920665567919071258507340159364470556975844031050219743560738463098913290864679643015466883727358366381691956992072408106100999130726387841275637535082823854268828499357388591084727135521144735136808145186680662836332200851621500526960347254617099250961290486168225963304914141169728637343042782637301702420197411124013086141447072209638756946389365353586056443005455559181096214369671913249815223930080041683721131970266693118304443001441216906600168667510757236724583249805099967780759515379872624058317827291571236842229417453488394467423477327188044652248186356312892665290928259752389820149023556806585158551768455103609366757126157895273181068483102002120049084958255656324553964234162289658704130867270148333826273767390556322429999694431066197085796033813441462891280661128241411892412534735311783713753568958831902355074323874858479161067101084600873151558953540750041506399289945304610448323979014135092153341061566935846643432912648348123561249939374810682534843646833264746358733122866126372091604565539472853989419022290129535771557330666058462551667720188081360365571659469228468389142571398428884376574180069212758434728661786215067922050961296244802355402486095312834579065474452608521195294517455499500234234546988226631568948954082088223917340137194433599722935274659795656681211023923223811418570155745510970071097618397026307180633581417246811004008596793895516306565619261672695447204010822912460068436956884511471293253878383730433681165957238303784750485988324760668381033539890248646101864798739171941072074063835510400220739211778715784675632631700885215589215653687371082685202749064988242995048316938759089863533937339472827030078940639373955029572070711289876788411989860978264988152910934337960741818416464354769615957070919294600079484218785045869152415251046079661195857632356412088072458672146966998031555472747350660034166790255875004195929631709285093006566438632954795108335253856024428128185327123859568605686229067767458812713283362599600098886951706702164612225151752375766385073858177079701790243141163102912021698381741180279820590852812060465659521146909373685728815076643768617470358172683332114686063481312137333448546959850323050864081172235721736240522973874685160587127444695060766430853320427044458369123827968129375709545222778293416608556469802574094351137702848247571607765767432116067971741415172871289572918519590282945817886239733171594051078932102169001469310928595238728853254695297395574886446025316038836759534472512624741792781399850126897894569074981732966932641143122027225888555580337766404501897725898952908913943510150165858446428017650738410730969727893670853182091794821509919874613650735624401433685425457755328370905350393486923572739712145490503570290301023559095562963934914397983930413998503387764454287225302392825227883166986231745139155383921246036364694303963334832129773450847128495562537529580528349619432970930022796034399523636957193696141181405662844885922295946556607903397589466291262151807301528623373531409230570510292930638527439162522237985186327083551053433513033013890153724421570074377253137211155363348054075696205265506760999345243688506637256730121981450171839517674668531652955011841534198670634961281385962261086565300352050584773926542867008364461439081489102509991381157124156764347137038637118447637164820051564964457428920419614823291701812531782162506329893453677630500001523141940836491751750782958273851102132235015835069906325490150670902904405799726320889453591906817926547273384570063191970916513626927211425583288807972141872639597201186233823559186864820873673447621284083400932294273156223584470150128661661862750748076036481466711805430093581713037247435208952914594216158598558816713893820563164707957842291004320978363001279867804500220186781994356247668850669269564783730558709696061643694560757029060596181411962380948625410513014391211865495765320439179207402928383344175798848282985906015983808177582092935802480701077320597920836052550499034178359758110488263380244714789268989835327510547336687253149836892470795967049835437161668888502509197350753880858560971916428053374431023262681728042749011420124005901985500111316686817649858708828166260052363166246203876416360222028219951258893229566315569429417849727612761694481454940869228043069349888603028065499923177941334439685139345887262160400847556788499030676739406374350461700256152841764796910760977450903572085524655064018286932293667962524161799721161056376642537356940009487705766791850950806168925874364270631815866815848442886217928432868447917984729148555254536849221636451632932907973835980126135318647221224570716850937033226960500162184243696554265453571822560641659434894939029214356970636810150143600309568498550966177804542324860979808753777028144622862198807128569710025157309223453086398120914192676955767112581309060124800334243600279771624208439695870977878375654985584537328306332471935814416511197467279199198608192643721484457739837243838568677615905353508039426798468861304615883686852017461727920114764072801113356578978952566999235395128288610101578724217705665645434387020247455520869127855793340815496882569330402145494054488226118606510366374942047890515112586620613442729939941822006491847148801279112686992781476404488189835352739490004291415243059140201760352021237658613814104830897868412052575565843205555315935598661848521243934265035788605965447360650431744749095852158774875061890114457321731441951606374090469777251935006981973626112132249819824056111883655344682127924049168949382140249626439066198876633463541366791669883817736771140677471149653759978462945630711542278990235143763922264941875823086865859909528736515431510275605612064039159330882408413661963875596411860054543759773929473424319614223912227805602587476183826345777175174356334342992723368731385972477940453588315489656626522696805573037522921708254649774636229084559552900692944496215928761665128787392928189505281889981023882759226828418678469005719558441134028474919213388923026495960418677222990318452995292580438434021445797804005696161714557316548980995542442722451897309300425453736122134232864464589004024865246211671610684784647314773755853524034901645527612593773905578522515267469237659504597258631576648165095153918089157663185368918857836652459917259070380561747047731820207051563324498090589162922597335143241762958599278482475814285341148474613257791264922808463267009081683782080312912468211663134930095822396144952680637118237558326975527464129957077669742756045420005896595165022772209193432112611202048672101201201493377224844945950805891935757890470972545809715587605959944133676237834468686370436302646451141669144814657709213728510860865068732431027273688796749251639401091731269412378711465157343478325099610952266539465550112876898230882479535735084233465202501478952737723307193928071541652579028943658551017819184624785859788972451353982006629151171809153637597089522848267251883779172930073066821436922684947305696212599985209202608547131086624581171580123345477947634218978943487484454548202586972763066298600454167228739376828132928081105532141526514433989059994946366072508800524855583289715911633327609732794131871509938469627357901904425598014472129426252154499932599401126194007651977499752288876886328352015978006666158604847041378210242051894030112382254972230059652826054487642035249549443752435789129797534686892052120184171137624061248908217371463075202321270731153810028569910276681560157394763280379580194626360484568455197608784774610951112014011380481280908390996408521357548718571441250238259802606512631559428530255588846365478088081656180412343764233762444844468800025594118956919138516465450400894066992735240003397902847233069825681988985971105160805768841816932087675386541217644487869194491797823343994259345700420965912986640237340368182638192846893921269783295862688253205957043344407812857258634916038628720101719274075657936309299443122339136363498269972013735897043900961129246841905692000502015528423509525135621915258707454264570075068804736342143952950862189818528239263520683429059880234628605598516319793013071999507771305975733698978654629649950294498080660551525601713226631508417237907778009683456691212622171846566368059506315514290634507561755131287489384853434833936358602595815990677654631561492802256257482252758554917396889423244117223940359821596605092151580788723854934148405853798439849611394510759339308018663813631485492143508019312073149480679002323109981695118659206025181072724058014141912704833611323257190318639028407003889851887395793834157964381056840057267378230024455861079152272719826043697775298061928756176319544061915656412927160764139098473537435391426345927126446408380290124825005989257207893868522339929479883946148836149839853721715308749965053680557134505796822896666933203288625267082709797055473019138549780806155288159176091817886490012708556621334161925424208718422472078523940743504251291882781804565990216098261137544695106460008943746538254237459990944357323059936064873849977516202182137715336948302416115353855544550399196077963565485286340146084977363746570302780624364846941678939800769116547245791483488337815024372321012375761708921962740942593716674787808793144861349490830501110338781967328083007478550051041403462247229414773653475213459692689336463451082200313017798515448969251933646857327549363182435232123793855084103369505514029360962256080648525149762960024675149686348260322082176938759672161742954250285106196229367433646442583315303833816367091163287123659959546682838170740065666271378755454893496912643794641341218088567662436461031360947015816394522172484265771170514891151906157774674393814067218693794398264175063170445836475828610397491870342892175928084965263502769945355461313486224221113734930269903601606546937576466576624958501815606987705382067096199014238003936252310191230157167508242690006792714281698190367605811933219606514125176381544219374965428643890025655161282791024325975327284547190382329988460799610507675859794236125475829758856789454886620956643797852445567510556838416838515977938320760815945014017147430047687167214991035033119552103393265313622389854221612985561326368696415697103394380318983363520888226675034651562779211766183208142678383675928648552073666701411938939765738332311071700225912581348788637488132664789471180681758384439989314962230296926416915925941690587094872553834907251471034516395099978089954116379022431615842753196328509589068671837405331019443086066469716603122116107246006634767129932721920364623563276426330648027327857552996497968065880785256629646514566861352807978115923617032927562678185136743345497136681825347530268785174885173096156311136608654152471968549871748422458984750939859206622975192225399598174970467074837236330668733109412926125273199527426681747945502819270597323036354800431441186564626615222500552897403526431600144029871915784853705037182855632082695588825665214072305958043746846374413865898348238050534096797934515681355102912285857760657124439934520534899839488829175402382809238270799634588633445719606653709367051932282259263722564265169845094364907986905110769128622516553857703032134833044883623865341087606465855462239945932163284915493803862304795786274142175718420488720136482808718933906390724870028387689515749356480137442934714701646130674223541708850875655101987561766642828289804617698880404522343613019409643230521307651388684146452519484771060141164581805235026859132166573012830814153023067865439566744501657843989382274639417987868541071953621243788653083638104084102748444718141469640172392847924390948544154957745334110189796964889198234712742227715590256218542310118289932800454902262543986986118201670539674323087265819020652117796621721378282735084749806893071575475681168340416084313292730451628936367762375282772993917938484134633378876139978622149777855959617751450529548887064539908159645342498670635217525876667051490069622467907663878696162824863520016368351420638070579176568424019802543929606517040724461339350257096423228040576261091024334556947189692171428518464272221031108242957607794940741305161907535737267916476467379277907461352900188991247449919609475834485309776116725259910517896505515208283456140206371577381075650339514110063278627725119905078475847465231706987167155366450974760619308715954830117167133882303791984349427601626906524186897217534675158520408587110851298427011915152274289654682835252533039513966896733895369551261649214215095830392872303201620178393381501590283947854571734327659943467499304272776933712155355233409444402278593060405482520416491635995586293263039949146784874698978315520506626502828419263244965021676935982938566356921229939956197160720927443379331794999502695491025720789888678506667591207280277950333114597830877130222621757884522113744284398893811316753509116841841917606623645280847333112163264655584137427222976548388398535402757533675941825751330098410349120551961028749003178492704316678563126534422145114670556822825094358104085003333207522231976661987708450244029562691799394891800524041834055475917952800900051184860066654558429468300132616459203423715337472375098050269662901991895811852049863292320789375270728937186853602691878794943396531436479933359064073818794356558922348897352870592185813616419980690092253099361317603338866256664630795428322912495917754156159747021879413408454459932410251702303328868522597278355371003720471596035863489723905552566514414610131681777059624064315394078188474133778717680339746497444975026053579893050873193207804906698255374038263415440942037891158770029551222913276540396769385513780077823571569427309243353353501505977604714053443726922776077958958066641504731373191777060288138394181279214618265273284792108745107345708786244638847613750807934059473665928188284164142765255723181578724100140158155308973179535580042267255859718757975266875977772541097544235147124771023199948835065369394341396153720567634381106865470530235816024544344923895368118621563892802304036643623749484698255671751080249378216376388153892104906636280721089439152215881761056486342221860770494631080506809127708907445297960202572691454063560929948402263653042239363612312654070364889211631152050389264563656208043460670631474059475963819163708825274952233759809775424940435471490751364506873869893911206680414491578869421423165678104036869589304915633469330393937557638817304821357037234773168247154905077711159751122205094027788931642881492174878932125616832321264606885610205518731893925119609087419825283783677571873082225107270853573465675462929550477441640666735880775851852201609624846439483777337047396463809310541688960954593117338305597384496449696413638122443438388509573233737983459344335133380582521393599889514334748049216829788817401249137443573475788561085331490192526951974381292875828987028157997611125125236874354577134922445690320992765440166115788442615032376161526912486270824774093828344818592750495506216476001372269683947433642612380037704666091886926606706080713884671291259698270416083865922095437398580508624650547951154211242103414489332871662934577080487391671281014970757124298255764831932029960169837752804670859470143030878344150453482180963154452893396612048464317276816183247684518423128980010569374753289358625345469963131152951008777543946285615662362724849218497597085020956030399035017650143001947423832442750784940410642356429168528933015159605683716364957105732350341732506185622005969362680992715431714325797927049101308642717886239590186718459600335897148254998548297367801438434196831673922492303443315781080346478415750884482107323812993566848771067540748574661228487945666149340460963106926588364770941295489991965354126607765335267606224338309897766373056524089559751960890765873237679851365368198949038739452428748270860309961666643777438336952129871726494132467492764648057821051584056258496229336711853738737253811092360829431409607136949516979702198231218220708356677885299623821334318610033659173803087215094151742974678884687456473451093522556908916195783004351213120286502956471417221412271128920989394525130060752534260367140897084055516762264684528881729613289767520560907211726313511942354337808203872388543180211374326912407467982577779634022197141402111185696442409974382417961501118897852523726373842112987548914155228988582012148978243042257475305125922314162331552034591326546780297802853843546729560726895132468190947273677292806788246162127850988094470936782144152755583085733118303841231260926048953783861815278128950549129021376102616097845117203404462058113313795068152452695456557977883152227258924248047160278576904411134991709430566134451610088843587942889314483569047353222233569694729031202269919540938035761726924799601841852599533735327477356274958369972461035825056132552987483762662556268324515391848990691935676090456369475377827306763742322588427215888984390106921230704325825379357247746288520654704663208108155314005071556724395701114951389861588098643156416190600276437754558495792701312328196372154927255761077445999413363042935510838929630517927684788665904914276662365879273065939601616916471516275792175504611270667157133387101274194084962877190843109723941177706901586287748105545763390125405096089547693570447891392485769398904113645201047695512561674325081099980715277612185618728407923481120731760896233668077986241071840525907068724844124998225718869876139271358289657895968672426448156240571247704458402958680767434766380457973482680407863549461152159825617643403971424983156402733417246803877892563555471867119703815615087659890630468080869754981558662456537926908757387296146821734996064421748138922443542936491549910065620572583851958803216381367410150344081711917917535459022459620224011870028895881395771029307546671811754010662140579588331667469317736624883631554829169736326586202895064769271094091090191471765645252178399026052420810859423551650303212747036659057077574120492648280964734412481574905023560806988637317737487705404411306556376617597658764477645742955821360765578414008757450415467709012874373066824635621643742924647464977911229926170158080582165906221771988591301623823993413945924560057068822385179312593522638135604329662520315972293152685782042897402233407028486842379120237005525115538262987718194199739177220299365730598225792144173958242695712507604153461866872632382889269057677954801814863379559616204715677254300184026563905459729850895147765021703441753739647991127041142664285337221517773454051677373993414313868636079516827039187739089918743783717045486143146977379843459755101198359055515386586730882627398133468575151339952857986211669187530363803895435275551849799264250112665507115800453887031837340900438797250692212826404759361188884540901783951710204701134906890196116937608593121451565066099234716835350519955339638078797079499648443083933733606051236781614956232627536043758767909297479109265134105752135863217867779625969230943739349159064482272195850180931753322097501547212702707332635218503735307601035152485288278885833742505903596844282764880754083846369636878953324988568943687403641632844515060642119747256050222801726109483075338249161862241744688486793325427320459522961938253743867707461997242656425398186375288416763718027363519936426645571452788926203339646308055906826749536191549166945547777623031405587662091642187920456640294952623216409287969137936036552468823944282231388755897375475359700374628477465347525976439991953329173037599727932503211184542042714817820158841574737924246196770892946377810150422818801557950322307439916397141124335413243785852408630744764634362116773246868743637581056283229833493110784262746273853421299109569414864804321517300358423715476323756530008711966241216291156903447909231533425174637804125991783803965908894347212742894244032368745288431181201448415838966540167628942195080767734301342649447428537177495642421180027281086986657778186093040960812493444366754467956515004600993919598751334960406479527495068886021526971420562716461212231841820871256255820057115738742160801636637718552717097873001956596738666672109872352453326521321571795902164922419402756540304359478051696482279353022191017506299450652951609084834624111893481571758230089921771641116183204420287234163476872501522791492719489736730891766612515939979813012346551340955799691405406001709681080968304075171177901336207834238158548206814209431200398529821309103778274590886760768575555989323870230476604504314944629294990300996180239947685233578192982245744049638108287365893689358533977682948649846857220761320867962849483070253619329201469483736240775195031404162920783257551391577476181337300933370268161290360053347023171448217482035876682501834621661648595178875773160942946122052483224093498263065361770463528289604902146494482296586306726657277635653369325773147671489788719332785935786025045709511907650532363705938602091947160687820497387982491229444046755983705139277866549996924133958549918840219487284585820709596954252912275851139382466881547879261760119726332466226250673412512183950989183768350429443019290884052070410333905775338373104898421304432927044684227191146220406038270049883351937969665280065728514040873840829933078352223030715808490488766002327290836262425099561899518004128674953706078862612416451783579452914166792648635351388450709318769020557010645504053020397911204482787639618397798409968135139850645208920457237281889997675153835623759627611545341383110005468928706310273823718757947394243932873950774387672679926848287889629666106750975152467839452006702760179297479835178814830628945303389466215296295440146594674135617361600926540674590065989453152634008855905697507924601275484230555769184734267845035453810401255951668972797707426935566839128984934257482492823028100797011047708638836001601241398486479054870810404184491846619157588114345478570131411705938043093067426476181438971071904220518684615102845011057889010431996448515434032913093801246547807746992516178466539671103960768886684283312051953552467986765880840296741917414581706974446497649554648583453755081673896074032908731313507471598303158204749784628815942838886982982549027833535419546191971361571182943599158103475021269317423824033400315321080034877490277214065489169813097970623942019006112084955528365704846132053902958997727940972269094701558719755884825834336065585723256817080776522389113534745545542514892469180412070588636416662024673385415862080029312900249504285439000949936939659804881499101754443747150792252380245979205672242552582641577075082007533149294330494337676348786822100532179069017727587108327469709462168174738687638539404899646695139892454527970425362659693002900525255290331403008171131395502586567369052554322536086097637162842951080280613474979671064850340706835725594696666727437241316063525100566954965379409428169033931618875254682161843306917278966985882126468959291773099895631970188478865513217758051684954198067222475831584206051226305669343295386019870466604674800478267405424146080802503320620859262054468541945643199026275986691231538326553981438062185686116998165553229608072652736606172804022163745160373634324655377627539194603794322684996122441070464617312150808943051232041001235312117749745686160657053592705126952970774792329628895606896693450516418410829179356939957857821385184429586488272585883667346077803862587487839020936443524329498652524838751979030951643539103293162766453995256288230044789404382557030647815634797326119659755950035393537050867488373842963488310316778411054736453832622617586110623143196233964782248992110987689985792678527912604145872762213343580687556046457431341398305540514296679656637813712671972011906149028023629532272420244099927365191402493600667310242628402052079592999840072021950473559414717481881097899679942107214583243076376125103869744004346869024996289818702391353544125564321560509555007565668194434408146891142707204343799463508335684287093097668383980279238151106502543349106057082874862142355315230827200159909430449699334216274917073140954274178062396013207587491627806848431249634355509647977474569736960372759991741295788894841240177275497477243166948103910748133491042765136471446778394580129733197903090707868917738324326405183597884103289615503493297825177759305393783819265872893364628936532969659784717603716760867876560743508434656161959150957539049359937950333883275609946574087778832067505358031506749328771673001975032715044236972415704769740859561476353579299665338474527773116808079819058700873778214250826209535376314406903017210743179584875184450083120932515906648013039434726145233307043761632156491572435909633673656733733757293696642522322063512971976972111166600294163632712543258868257512043798928527142469560760993162953360775449557950692666751439017695368710847534182136470599082204391794053745864761780573307272772842621257731666001247953540639705259362835497944151360260275178224503860561341202572110679131216768292735766895065700908124027114319279851028564585643448575913363613995138302536155717992426837621382084579532956010213756157828286041506816790680279960295410299039263883618542056013588126126063578852428286283790413382734498135212994499142865324807782613461873507404758817236618315838892022942194252137689989648822493283817089875975573621310344266386565227541228830129885456832110970688138784436820640944314361116783653326856139769689273377999281981059228334872895390048560137165226849460540467137711157912440082577517197126630391153809912309363505960499891749860241791163034513769268948331516574869312295026920384716023554302500826487319404817598833935072857166545824691865384289868716935582955859888516538303273970299772013590366514966490372081625884648236135654910463385456773602422382153310234435454671563277484894581671014558528307700490799608203287151220135479832554549880682543157279288348797237543876857841140643378197022117322845368216103625767424371916867122574607654498613732734055085642063353848418601648988450957312453978251295368582920453576527848248608415662245826869167900293530449865072412548551278534312193485430330149702107604482940807697877252835999797074528048695313422758390974413721951081897463411342766107445689683264034512457975805386749309043449053309789035638576705055121502586335774211963431982638618620440340631976381965077089150816921767427978125795553999499302700084205618131567726843321763771999537482170079668485870983750857735393291166320057662250970177562789589064721008624958800938127159387825337782384002868764720739390397463988483976562785831138000464786273164284843326857865828287719915503031776611543079901184582836464436618194350698033236803736286080777065015251575580072822317333780004982020650118322532692793753709051190548660460250114018282493979082910466495194494357364997127863844337736249496007673728527322954450042882049791537788771513738619336042442187939135764773500347342536707022706853711460267027963614680586757354588261877211484419606111282837411949260065731656725895796942763746565556576465496300393519012380666007654096074481890681673048379428630394537856931517176637176173013934416663629917918964652916089751710093598923144309109148992543424619255640317881103651015635171951207120311955028011897690108507299342011531850335135720258712819445573923595533550314351702432953615554738795577821963200454834145002239778673330928711575093732801099883955636758829754391911333397978334455033290809046991969712599953759136130929073232227032814220482687867439925264777123584387370778352839308147122891792324889507660003532331340587142517494558173526573595161796425706580216379318895789462635961725282431672539524316143487904416789303860106747399337376083890626691757890879023316145998390459032656766890590116421363753905493707591940130245527186160878319398547529748010969145738910679595869882242330341397276619001781669775536789664391755629114607022186678535989309754910397725745977399701127321854318517225085903613856456138829792317553169975461600585027969922075578411544849390566810198678530346859879997881615948904320672663586916082388306410989132116239674883792562436570681882735892930490822862095961526303809841956227448947457138960302951385712479248951086309852907855103956992326753827474297633913255057368282355418535069688192958528155885659045416342340160660307059168823541935366794254848644202225305126551749139159533560426800628397710390488772291383019539334038703947746880772141765723318825780257129843499427873881492681040911003840704852959909249864365859128136484757533592962352733097817168318296536276957154522352179823182665512329946497609751390270513781193351274020554536995776419722178035639499187863005357618144916823731956129696631351568329067814833447375858049939593442591043162041966838979788280412080480216902085970337278508457005113758406755280173640666155599379276586416982277699547962765870932857890336399304446338907315462934780752416163275167569842572912784116561817250139067055689723029586397757421161354515022022465234712804422954738093910118147151644804184696118678031390088948016821889118420753014932508985535126319682183861439272300728930759089605635612279232518578253283161598652335492610460491664818809537854527792298002599761836221170526720139077526441127514690279629276920230481115914637634936138746696202538004118961144582303038124060172509940307251343215558704952122607828752927138136967166959808194471596730847757663633622667678431552108857984684640460196240644596171708235489368998839805123782607297749351385137152040620413735453962341441007776083639680510059700522343952029886980780201074145450576779619820269789276871966066199086937991959988887522334039302787377421245829222031008017658553891567582651820334238101332461716555661265502974735291790424740876325349509248486518645549958631800383887684756223628126056004805632064280050024459417430046354027988547626106368984756206353094686227300334373652665235696488527670986871975187606478188020572376415938175970553668214950891431025391737797428195079631031843392584611774397441568381577122481792375068200911017601019016556282596354939750373361864437776337455058693582769109292717893567918096740991328163371467644521311020899981427621172901912530620015677278019332428313361850313326914289598024059576073745956804219742767237604201468890315037244307415063602919423879654430826294926922638159677170929096619846892858540484512059415956678285781585669327916046714105908730201839412015121368000510930421372647667036585368433521814130750063855371624888177968103158182814622856612715841821225193270692814437937902594191984210070515113384209607345716963967975454717539856053575992967239123817055174404049541206508493089524891840480513282115647819478740508308400209540544476090273720471521858625929492448928479258780779578135636582519179116282786239709393952993943056444941322775699905004226393415192288685243949318987772724417259027845091769414826925900665585309027745512526778829050738412397207213094145059905816081106209471371666687653388013134829480464162851455225339388306911560226304568419322680262031417786985432304050266562371171546636482039095128620039727398750234289458444053117731365328537043170875085915624488080330272288505401213559857626385415327347559539043724491510868821382379835721988483418863749481554677568352383848592513414097925105200395304631822052036429291556539432760365579515292470312575492634222253661532537576184204782943224871390829319178548971744852815029060255410544429212726176498432783112487720987454782479711139252334253990586056383153939541750939913068300323989061221436801857908335338941236792145659531344767362005467952622250611773322964141271313005625451513344884851345182060956374666185139627576083306997130603233060718593629270378089076014182705073447055987432404989507754696050039910293399444351600415034801651997877144915970369270530242555948939976415711526317489060516748284854266754502558508744610983800660495541999278185897609441459453245688941272037524735487033119361413726203348786374944221031487341427097831145911828918504732967793130248060615227773780940976537355012575903947893891352114655459290095513570905170547592537993355373061177196611825409917063622288386558440673417272737569186261482122223876256135559119222249121846243235823720276627045762294990326602112242027334847022885380696668338790832203492090784219589492836713846080804000153262434444056170893496318741499543887219571766254788660603934416155100287938322887104840284125537057409342379178479917860240952426779970800245922415488387785326645805962520477167260135422220150006671655160748913766008958167688978030628030625468845684639177657926683436885758635225203860408039539721748236870594816257055299522132286232564984362955751568424835060202277029052548781677392499368706616329549825948049749759022692017725447246821609416088236620289023244742875506709257529223735727406621445294472352287542493538080295553067906997014982412600901412618407969900820536127950752324661737489001537964943194858527109231457706121571984439008711767765509469191426557342806495817391348863666419337960513037375785013901960268878793704717853995056703533079958512835829878526244039382078320879397621386336500053190372106157025491201889142415384287320386060806481368581715382657347217384670880352959501861403770003459949205006400447861363890987290812833177805537566046579216312326592110202587486742777864773788862360144798282617804485969209794744453623768760545078558328933394630195136919597044174496062395734147890224534653016315194775367432740194295060026452472834647249609280911353992038296598854688049480761438311574192395960265645092902333659566950519786319928089804705596372687477282000934496938944697000663093352729918110997554054181375983241178373514859334213028389371379571187623998747822298152464412843481642250917294963947485954773840204379813684681670789210992071501141653430623367612985409096226783610480684806813053873238869231192594231416661105736086951839685246292651683405779912232065781114383419119279085747213749874889492993915096781404844611078574790421726206140146232009526198798936965333304606537594675377719915691404752554542173738749279035409876251684812721507265804750024501115937409416270508201121315865896371425153206645330166909974191519605782666875076309977251764534402630162271108295047842788373123752285783949167129185851833985421401055626830272995699131510840562213594738159611349419817019294275751234015793238759276937084439844958977932954729773663697732529328493117710747552020005869708215295131178337650013968290122860937862916861476763958290617118096797057573138989434662689059960893365751904606805294347467628192346735886166737658351941862503250543152554529801596919672434277806659027768061074029598794991464192985781182272582207350027065931595761349801851012058628903950932416621546167195381309676515582721372674765389078478616020653202274002774042354552541454575097260602849750715211278758740357528336913812615932714602499682389910555162026524212766382670855403476334899004098674958049932950972943939557717473773480798474641350079341628101478400571745044268812721242217148251082733785159907515772219140485677967639021447153621335300411644543552168953861055711020532896935460864614499463167819557066858849863807636901015814095722579754926863212953602890945451323099092197564210383682476288882993985087169876487034733031411490819714797939076892405323892023347585541119882491055001550454580792904756584363292401256391587404334469479877114069358437845434216242974505982912461511762049704221320387851506040918839857873134134186771968775081228574718354698794294532984563736946779559593975453467052973313042670106471858267544676085407257275874205034119130135420155333061477225925375747097380322268915680347816965650895125111430791231862381209532774336505103022424057549130893644487829147248100471183855449085465841468899239183558716096717658042004854014713523057880782382278220654715816816414786062095468835193381299909168011058736194339398800475528333531291787335412069209358268870253011923969209156102697852209803569427172228583738726979679874756553286969144102504243238679473520905810465714049037225896967766927652867623366158164557097619809183858630026176463524736469683106283605465078617323017065372344802163272644474671480699845322289076659688252077849645093719131415522443427672878601905147729199327871765153500616990886465372691509492807158150402284353882916830874658938027342131249154693827861966961148058491741654341971169319865984696890517477170522464591999417564882093140176713895477593130276532928744788372782712396601460045491571098286388360866426039248413362839192888711829764767876506631513363180090439582333595283689362286842375523941871622934251923024272947207215352751105666533428450667645240924084552368308417542405965824137462656632102958266474821582784236295366122099036313070852279977227557647446073470570703694014710231221812984911026590701038134072189154398361248458295636793480195943175373911327011516126188721593520761085697100198036821717227592466012166993786315463271083143932792033258654896774963556965688617307510060787489876313967605431241462666727822238163988086530257810727234555926796563515224098835433787993730101958663722208760487914891503197757610603281813075670176710200264645435827585649014085910533387989426268614008299983103781724512897204975625449059135708032778510378834581946243501419154700165153328928659560920254085179592921419815025124590847678517909557531811659515778764235899500788106863171673558995659473907290272280919781854397874542623255601046133820060136565460065159506076362267846886050584473172796816019235398706988483060322709609889317415856621699679634217885058834057480467501293777171686207211320880615493304518535935391229455458766608196186098439166949203230518330555724367653185474874130421122465102311264445853928515398311835814781186772601724518950113337396215627228613366615774065685051332196029997374868758295964001777534386515119495017215681436319356760975009056025608109791195745420075345137870368857959289895838182751873258113611186682695482314481414800385434176722072838783518075459499855309845408736906367555313984054845752876106147263471741331279724413652123089650262267489396532229688123543687019129931673176922116250204355602633723813754176973973726503414190701437638281119889764420200556024840710814870616250272146721319292420811401613562071466404527075377907403808595235525106027625302548622498255842986191361863004297133893415012721646752797060471645994421117696193492217262375488361574925465377747830433277106804082261033298439899961162322139456925485456904003089687741197889674805561560342097645560216959637201553091283071903824390299011913141499058163460085766935960202030709911534774802415400571303411423008570089918653819956726630537044049975426806122665335574774423992028616861673943773701387217198850612019394349423061927975298590361065415805292563080816905721737750624668276986784540385836329929876742733153186559912170761758860500350590432819075164308779969065332840798178281794954122306100594482189262307665492051363610238056985575458580112416102213308429008712867338269735596392715005565098990991228199864329633653454406481764442104160304744752224460507909536872870925739992562201074845114412889769183531130837934823310470874448280220530936689261768702366016437748012020220244532780242080725673964181216282859709157482807945086332351073982818955823523971509150545958201449991679674932509597855260257706629109529639972994835765635943809089688396861596606390242599624141738412895665510036446927768574597456769040694813553804166619524281179461293717589591005190515245138829598381037930286180301334392435252849644679391458623180208988294374291188324048551167689849926168239994863928524760924807482620113412617205616067747876317182506796431804352479421669330193457403678277584414740163615731249488753606372401803338671961191283345713041749884019443567734891819341275547707174910407887733124392887200260622465463544255447096262523544302435434767386681386430521679842785031167756452389351243571078225791593439390500541573788148490627059036395775125812948727586964060500595848634782007485753467886686198946852943169334886773087083031097373068592145455130840096627710034483398586214601990535855559466634758399987362560716978323332023214482674200142199544412655278971610949746628172054486335968107326202674697820866744897280365425114671048611709019088576927045275162638904857640444696754331533578335107325624794122932895701640280028932567178367859326810478845600494230586481760914479003706402003596896635424803239177466081910787544031483814247509984645425106173569822162049417417788414780172272790806286327744449196955584571410150719882379677657867919538471276762267093983572540356899456209571620832032910882366598674888098428109510334032792606350110385555003360656106153590334582211040546395537202559909853132970942481619817629621517127087612679797048027414145334967109824974301939731914624340526359378392917680529003233228980296468335648591957830550311425235176410819697891841359316471047691332029820077802423977719265257540661258017600615820512742403371818605879127521086793325990227071262935172771741031946901166134889573026442129515503566894565488101810808191546496280797921504564346261158712350403403323930197176738505816073435389641551070198555490454504102713686480600102264921315881648457136771909048159678941216951608319829252191371761779632528648727141551954337430087208190432099412705397350771472137281709345637883451308265456291326167878242467429904241260403101141025813916850891142560129303052890665474984501231335645635785143608195891787021298402850982122617104997481590548060000098658383168719896539693767530965838453322500958787646842187616169067250729084477864302337939149903265350281035163508304508611342655889793300323184382852504257502963891955217528035490681170308742791440254725460936403498285541596966790854550477661065187677523898742614948290035718104829566167363195416788719808056369586511780833738258119974079408326570536458321198216575997730511015296453375564990900083553345729955802903182906037079027596037896497406944487614109630476785791692066215042541765353960493721357687400310555651968308817963112363518033019379859805344316692571163923663439139256147880603506077537180663115619344841748251211737543605331409079758619442401218116553528613996616086590584221265186074974610687403684130222393393960032645591253935523150123370434127433480536980885271247205056272615799627314419516997418794592010174381644528102499403704562584075667845129620263172623927058614896249478284088446439320474799918452404454274391009155127925532890696253131758247433937399808328195868521022696994406520047855745345558166251907211652238924906798464340226669445527142580968626057066086755647079521890270151806472193381116017202499925558179639313469204467044545474171275344252189461175472274001122124733100095541124609965003994909975658554828365292701535827722303080733118763500349869456695356770879940801737702425463399059140316212297228614215191041802198481852266673506838508402968804719911233708991403211573112442684263664878309240701682807367155279439309802123362947979773001901254761309822091293279289263492239480138184226292430533007018580031546139912763558396210267014644653897324946173314057759747783665759210513361813951325736663602581384243753742964545528393310078752756676726719488570186994374818778602534828560195457651787662023845826827018051286429335550929952908124347297582128431884821989662567338428579311169260005668974368766833241737869224600269561527344202033434596312453835062048250503054953896936489499334974832339784206582381014753105777691377327381443092269216966322707428874838778499382840450906876788612365102100563043579068283891623950660903677188105802354031295317654699908948854737027645230675810907081125981429750466141302391819385890869472830556195194167466389461236745831205376590135678603735558082409724176650915798286553773578146281738158868986662496011584243387642284666106433512726556385506355632289424485472829130128693816097398527142772138651365272823730314402258984232486971746888231198700297908665853628409819184945069795564141945824363424840211255120935588146770318994386562614693519220192568372237603046268821565540088730277925541372842721955451506919241377703908236164180198737734616418463058453044628975761891528994373824501688723768995549051869292763646161042935659240573956211972011804578818248777150221887713306437311990106017213765783030071570888180032236775463328473482050040992860631365331502162416379357481391014281192991152542979925169068208851528910106729510782619583972342652878691506386296652060612959297543091881094011305993353225053807471919176676709382043880100493741902939957377383025558587706721869878346074408603234034051237813899720498441665132955491730566935067134918393211880298428370596143758010233036146402061349027999883880086493943938820173801889226306370055510690766025227376746892192950292043426796118080227181615217178350768104633723214792815474923104108854524565120547669133052611638799554120805064185749253226286485527042141295077496764317269827308436022232628683137437209682468160855656479968476227743900992739191659650745357123897273033741219219431547787394401498343799211638583430575018496792857767416257260319220028217139556685017317410827602567315249326689903782121645349065554114492518624967570794177431959810345374666582972264583909182541224673832280008812445278461897117606023503792310302894925328965283451807573300186651065694349276706822347916278407600328988203765422993136091710420849691455604310224088033734151751710982639710767469774508551994637313144572928419631135153821788639027489782552815635577288182695279468434631142905990775566910591043683415125305398024513054059412421577163950274953529269503089687007253895630387312592200154219133730868663799225841304407955429865137756814597566324960686851018355402136337018196608839403751540907127326084914592433353644407945197223191293101038394025680429340352635117250317143279235529501585768648936928655674370776305401850805901082553602774586086834965255886219341940458933844016855347266963208723219989648537066330380152187312122482109638060647461809322009351031191179826011983807956269179408780902889977050209328898228221868598042408375253608606906380261168572616044269115170192518371453530099189110565245534179019570294303524895100435106028354881414258480767351384062008114299166882734315174002406167030565157405815976127148666217988186011890776104346075710185068821932558528477183883217842876470188863982146998306939000552113762634939728244830511900679272850307470863737712373219521222108290253156190405937708959500769798597990436542332253183277172374751919575969314062152187747866161339159842825759367678677823691025650306316648528331723461982059615722418256719917194731251868211154980169352304989766159536722493891719651139881325071222302336563283640011825677773178967471703301755041339228495328557989583029151038286121691639648801392032860871063707669768291805029614419822790544849679301680950641689536773339187247221966435845815784614244906997487168759628437055525585052413261489553695021707964993772289502370764693862939947854277168022363953906612837059194532578327578535568329292505036781820596837166051362866562814001770359335266716955322914524581990697325917169938813155397472951085555501124950820652614103860340191904007659539360300955637449947148139770382202002693691880250377193836870845607797570828891906256939172551611564865854709169651694043285075708896795681047503314117860697304007886584259209166227039753811828530532345462328349461990822499997386206445202410605145009417214826117082576430324673158399915277071351504679543892966724356699811289466107044575674617542876494983365203543622430793603252057688783312143205337159347301511898827551095217611872983217359882422066047275183960298704220981334463441065101332798810808430358824842072533689692777513435139214525771217261426205399331065979464306043371790853224755698652357079648937402556341437224433609934623921301247356794712954722436716600142304842038671102413176231484792424657656406365137312646016972594313285096413751861594940949817869983964503710142931414297841779599434024891665973654335067906465460050671386698881723661110522850469963371250320832913193104333507167229022738034431879437871820251604155399350168957708452133575655716579496534987267980716904347338497106165507752893061460954646813344514130617093217813763360825237936536482555472530349899368976397731552344380174847772365199490892411732273328526788129643860111691008996899131941407110801022595236660271101159974702551841422575860316830180671178208530269859820373599088303685354347691887627505482020394962044042394351007651817821882812666939934865846183869155721332528191767982852204994979788376526363462126555247296371687137224836170442947990456399675795871719901852283916069701584051105596696989965156666487373025747953125617451812579913928329585188639270528881541794759911629044131266396020546077350688798738121681389003026942462326931126521646989420210309106993026297512308272793070162032285113757531549685001112157948367011219986826676337396749408599478332699310558931006547402576747759060002830711081975272607507121295640403939598552008758081337114532213480214050789004729780595517608655326392008376135779066856837235489923791931801295222771878449222358997418000539250671711751696051179269653457155557729124055143928954731834885487342495395321859034029935429286269623403200296453840894044672438926978114164878121496888981615436933947315878670151386254519461751587010619410477366544214554105409353616748437838305136981247652071218105643771355755158816521444232755616878805915384125567353614714432743898447373354275060262946972561192877197144089239341847418536883947086093461824907880694668641572328875387084770552167148274644120809840582297168062453038299708228550701591942811539433810622418995754062865059948110167594532022618967289062992954442648150132206347822329421874048472553093652771353325655864754764315485217124853543752197584443257852344286059150465970183045152168308437034990362352737231492603745040308544271538280605979141240575774936124528003357427606500736640330224547631838147978133138035330198466799369451561102879321289979642102500133198097174278378218971129289604377730915958382995366266690745367988091697713087759019670095535662627779569111435852946491390978724381176475066651334109795302454533758199164819649912916607660337886492334227754120315105862744679204674507602362244567197040427978185260729399827363908202552814905237565297064902680656544790065079445264195448999715747990677711731223565546394987986057558328810518564134970836932080005595640960560847405621725218937941094100815565574538689198428129606453221999635495230894640716438130380277240607543399104508710276126833507851451780883188079404391378685070780836438085717605698192934951800185535556901309276439475577292818996292462075742005981940365002781469033133313244096900899194205526167716872357524456953330290389424145176080377316479912241772669081142490803538605098430151133189769165060693784348589142171965892170696588461287438647086274513189442846840950750154029024917735216477839409042119628017110071676984466968966498954625773787514070155476591244293450344956797635191667416918867976687954233323570249543417519391397695507876404793079881577505411222362671608396498911043779833517723368093422859255356632135024984625410215208845151312929033474885120584329574829942856933433796587758190520845615200946933654704411190621328689759079364817635919221512312851745783049815242450686642241006932954597069145073969964495964786171213490940511929686774674817770751599583912317739872403326758495430036551450102916666836194510645617811850774612705199354738059277995511197060728902892247494352888542705489457869810629709116756524794877874649552667699112278893195863788799613944900119093088431606918732308465811262507636070410205115450534707090638196221472944670802355194648468650191881256033443951462459379866247096509208448832429315281265138026056538170470794582815287571347354373375390602623117492229751958276608017831912605697078835598828751060273187984535173460631221816399619093524610897464916580936181408995757806141053265740198677598779704198274927003704894682429412645268626811256266687780569678816905953973177491199005177035797917839484346445911489052802171402524946008328739451292622684552302243639014520215575969815836642856300539268106647681916211019255335011414022908061736114420115771801521262603814774359447081613926466169345680703927949807732380918993444820773840798671178717836464778902456208118665725565975395301812731722170845403047139817025428079582331718649974970496192423359136517191193342546472237975288072891866031366347919789408746130381389189869804764453372589340465694683838590006917388809485161103665401163473261340029740204957964197642576239174763176479369504130455618360384520464496025536760914511822482337559889216981569999286200324112354808680381019063801390609556055261641052210244407679971516150380068214793792758593815724016981078055301844685802762886832941161415965936494905746001255607283836157760498862896215073808211854144383696439165384993204306296669626504137113788583850452263722920847888885702378307277890719707810722881487929365103222160284740826397571599392304870698265221551373259343066910072688799399560144149815045644720754446811548712931800518289206357352786935856547935900346605229660384405464168821838549643302761403986481508126807560381153288932638996572271086233499247145256609778102935289735843798041985411090882463017946391003814859905813174378682574078312727460874021245945801274397091140329469068666998637967514741529828105901002891630795943325604732379098846813108793896998132735804365811043578082088898142372137374019163781271307304917797499406295071154010925792660071545129710062105495147713129032709904129304436702508559836946208686133379091707390977965699807257712773467225253620436041511185598397223867405517323227872498792461038823850796812598719355868976248553657424580877435209107328507565967307475747561027863038614391387819787791550602816955676546770026314120284160518784089579532036019309224691929658040172271099949604792413441612848524919910696905731760399208701697442731801351851586537347056755491105089374958367774631573371282450219310150789902064977154297901302780840577102198407651975494243275123156585272217604143311842782590011057512606371268530671734662373086088997195389002382995795156626644553645439677500492437563428391656299362947967168322456121464657579374307703339993500832921977761784763579866916900677215521571386205702014523444895612417656287962673434046136959688481831827619795105305834540337594582410737642359797965283046588315175458834166184689297335220030722117545856738537324114698314233081692431249672484240685526183100694088915360928945209487235611731284840048367085330726082151976234916613166426486629124023188540611331017972581848169835636134038366417145468756041032665385450368790088613787314850572666191978960393173227766390279492860471999849320698194737320773473596348134324142123857136132128834251301212674453783126832652953208292806371321751751715770490372418497376775258337532353875872507440181440246805177390096693971474298376795830243689273196314933602192128893908378406610776828198776115569541425971043939858040327738749097598054509630505128586751898156839994631788809256279275456805445019768884136579371621439774858979825227199902309339462947336745365823966404216515276794624049139598097384625067855630553551586206888016188807470360643045084995866517114189651130827574388391226653852118930229357519314921636220425243608226442081061539168315401259783333197717252825199761871262250902247394964161125464333943601672896951615951877957003235217531853254968855151973735359306977418641122189551234427779877761586124572701770157644348133485032626635698650829957933846475101474058732589892293580928770803449739432454755304057727185581141704643572229551503746883489580053086267753391231881061103532816722165087423822761432132270448386737520928967808318759939687696273173599470038310033768377716077597584869437880265716037950281811711329915603129745720247799704528023697792249284585307786224114148048765539300641596097187753320957246611824687152266006870001543114995564683050032907648648789309944178294617428283289052645417675604052034116519859981003216893178717744227293477222105127603990491272222334487084048019128248379432942839245536585584934806575832164603976487832119586633911507789922783735207068000068299967445677622243445469031249983121099372779350621789671019975694816490009014999048709675169698874468128768457135647602816955633421812703712845933017795531622127300876132341661869061101081872680968633922957023679255801012468649569145328309507368057548630289696955244694365643620295256555844200549077327350887622343767881414303631835718293886660501228884978427316723128086741641698592050122926918410458064462245143074242660071890393866691276743868295076161729898402557055801143282887778637835524840504420721583448683773373912012830730918599081789610085945025697122495378281482482201774243625552347262412439242031759467996663481824417064358759495523116933062528443814816462649953363635025834715265816869688354040445297172652161838217507025724493210436149962026198768174788137155879235512115820242830224625396660719179890968504701671958007295067820492746048864470638425848507566466781268842428616438501009805199544270374572814211807059816034932857396920426493725950630609928043840803246033440760560322401889007523787766791066296217810512744050262514278962339477399362649810479474481920270697725622396331390454345445067513246653113580487211473864128382328846150431340628851125098349897316784925228445386800919180968370998143143016670756527766394134565484257220686122008360166600134134362244234906507429218195698397646500676939481092134486411095908033384897117987402336242036520590771801028501056381966805129215242322588564167080286577425609208338319623532322261410103200188162101945817235716274000762059420270046543486006712826472560832721285465328180521267130721079098360663824824079545356086636274062878169193239586202013996701220368505424811660574436590904344243235569548339813223258470814622849220370812650398374446773869706598980233676337905012070950051756899271640011997470046506210848187703235313386628388366103609499927394558812918927388721468188057859952862329581458556552591656307085373830116995894826995105382415017145160691628700395209225123790988108525966464370812328321983998258931826854614218276575687089589412520778342009054959272721517009977758228420361035283160858143719456612533456998556843058655293231285371719488657139300512816138059390281858454517073732151815632738682407619720333635923244850163229565589849835079199351251919373607431306075203009314273059311714841587897908872808102094117935671766896999722154782085811033748492303161031799700976171114673278732934200902742551168261319328718249857658142378111356725130781560472951927966996206860010176986616829648542447846304237397109290197670474556467491844864264974373855832389709171729756275569625966480841303310780910884383731054757477304357584733046295222128769061382007581579103032444413917065397142885772790542207247515614528973664436748382243341547664002252344811494194043078289446148319268295603836376573036609975242664618534668138245224814957303745175172530252302739468316904122816815629721399137272320562581599357976245052729048312515084987210112849123175882999344700727561249539623009912415730140510682328432068183893453792807099420111999152133152072520406742745575955663578129660602996446802732073840448962424646336830945949713953453693866411531456289217367547529889489954219097106642528909403403602309861647127923519145691107579622633781515478059327206572860987358599183966843228713742479620364699710072549667127631507126700842109242374842649824963594177554257574242971455446854795841332309648452137149218560087699078259743169110062036098336642803273916688654032375785346025730032014023265935703140552194578159072804583493233581682644504060635009861804233408964219864297226939942841190222237473183936992309009575557625984424876362497172560466449140130694716179021520417820457580184651657100923291144975011871154332147534698781809056586407237137061328942458470331731638455510179186106884868856464769303535088982250572554041820031330953080607069660948463397197494889953767314397056450189394253467435703046369915151095637994013752885139426452014563879151937433184841157867689022657608856231598096842880311402561050345612485775650496906656684302303182477400281169898290624528731646721888530478272400276598321283774068360673706765656203552359754094228961164664345366270905616024185743725095338494768955335267249146905969174923556875335726555927578695679738729640687113053854060552186602280075558648876557503006005582242658876134803498171069026358386658393403570350190641645291829660512614238415376089736491826290952049624060757156547205401373388786341717550336984163426022687361731181375528722727584660470759780167368410417698154993776294502964648640279896806649195865404991388353448735839651344200906919522429933293538980032928457772862169275094792298543288603086747751632769799643790181211649290884100036708898196776176415503528956798897987514125340284948253514705821645091740289284473609284927703674530211902760649927247573601533933614170399627586985134457330652725435144354634669970454264088811623905420823325010456553484484547590915136859520421749633805373250341700383783175687283901151647576715334521076984791845925596687354042713279983036173265028912898986354163498813700934668477209370960175284291653932391325177068329860081360304611691022420874334392248497399378939977584758616369330264879045309492217605287998376786249613037151214629520659960000696484479111570607886621756707277220681098745966394546313252065196686180342858127441972992026207422739931479243656423546546008270251186519125447994535431783287058808954169615330738986640172936713578352912235896534066888814458278181191011295474023588762938459068436388224811688376336581295522028241601360223639619449645489240174442511527039267808247492604543062126213405068195764884986283137518403884572401129600310279786030150099093382564519262527705660702544083172698581559050032905186795175124515076004981137168000297861401620890227435298812102893880555246002268011810292858488868899990444945024972332295451814605121062953536791334442369691618902541631620491850146580748335192576262547707696635054081069430492728255349527071118720633306271295687285134886558067688154881370015594400537654562581379051041430845611113740147356345846809900221619646083156449314215072497320222349728921317533892456104978295328864485687306679180788970332826237666944121479940472374213315289791875241758336999361196111045248128341000353512081862434634531637705335423899657652051508763016878855556832563853059240603545424385444159018006059503486453310203368621338747190468437391411655382603251638419839032033676707820196789604172946133638322042251338633508104970302182903176548426853430856306361439029031871968960933483538448371652707564689906386621369638978946670164259504884025711602282672146179510782978303077817193764315296076079561772388993962044358242076552577900190734819113851142877659683424352856297544548234109475555563138786907962794785268897574476040870379205511020249124968557647807887165658226608677467853424320276346096892709915669647438271117554074405595146708963516639907548946224286966418529638676827879617993865059135103880130322196983670779925085561003113799286203164669172973716340081448750572785687664380557961634793812954440578727901427123811956488317114568934894143510678187147335274654434303240044922901139901877810186644152163223212298717838545943973866634713843490349939308833233494645347957792556283443418765245923913028257169188509674014902648649507967703994308421758614358428020440839755823940886291586370811562844972499170285734102655510422825627935443381031844635592397877237410354486708237964517943919665294920649501618179225967673572086682403228602880665776296569365560507378363628798144129230768328293241145670643063243090080714041993883883177304321481300283559114493934960811656460335609903048390818334704882380938821154083091208829536147555673268312824618145840162051350830709888223077344897831957589070263706582679817445002042447256616187930465387889309994703624685359203649465856038870492851629089322269863432592976492929673542085181872532322906238776313054627278950784177278514138617835766571715727308567814289081302903046657096360953656777522131650323061732391276760336135069058015292653678303291031355421627200245553085734939609180869809500625192570649608529407977630252354107744296826878046044833308981744236843199226183663336612989577252898464453013037804462521603328833277170224011420985866638003260707080414188332531780696829804145691680906926615502941154374437983788498254068726900020167091708653347530476572368961714774524363861896734405286159937793822420533605214542746117217792951208280252273317033051822511192722268656486831169429125094344318179299917624563731689272488804415350630861515022720938996601246974970782588621934665502969427823504260756993279886171865761073780972036116622190151277008398086659924249686781311795350308657066138548255948764962396296781317372193015879802021971426268909841021736029039798189676557645440460793065878260261685969331671085784564967454283216741439206889907499562284547388758777314233282549749460302824468597386764675305044851446256255883864343275546937068513950190296342068136007429268277398289359479192589234985597527178005913972349323226946303563784187461154390832058732686737344389217796477215786279884301464322303278107249664065724545637340483602441080402435637968537784110585669437606230219526935690354391535494927254747147711687141164798703321881165879772609720369193812971238904892990237511530642449628131719740276557450118532494815252052394753389809168525740253276573845199331613772294222604667203186277466986435747423744888995587582621949611935864618554954307882590648132758524391710455310758543385924788676846286797612181231526939972527350200451805190445687174727400488659765760519098822837601044803852237982708818587923657744916486914978512742654892216245562741945672104819260539942797605416533778682300846444257582267367412090413967686430256748047421556722457857308244884269026897877691345595527821784191958536536620174098087648289804268602489999941066709415815456991498080837798275930360309927820755206028659336233015695212598507531135179044379630901300585966615811840447325997064157931055841502863065166427168969301327640194933150335543642813457933947425585293998863094321194804933841878989387844950311604771453564853015050367524726047960126630571437049275675445787417557358647156383985049096892230018359303547848249770976410121154379262050575538021785070614322269630163105235839482186744124022137100053825110848519390180860537712760870211427360722579659613243644613138331833862208885784170489419230002826870446477824120611794146329035015637852434338449571497025050433161595919304955183499578504908066388831492732970486867030289871818069617022781371746901410528383340237950342453859615763319767287431284883147515453082021557438817052274335445388382616761201254918423047759894930355995504904684546812610086377229592755412715895652051929689504609131135091265372169438987140263938835233706719317026168978652261425471407781986415945490243865386740084161420305408998631716179405313038641002425231822398411647188710035258381965287873422502715808082934141573150597902349306020273633920506122383448543022665415289031975228812201707263871509645607508695089789658659989515696919791399968631385677124663379952597674735743410079407744414616383980351771456120530271741031639603230183014044269005334643775922138754969260464456582938520075707400909864218457507516837146681385453294644852868766080237592371376523151249017198119016697804499167876949169329017893273444241445242590504050776356092913042956792489414389565025438750537964700491614916987649267009730829370306610099644533816900632134484257985978472506934279797490751767657163674725941382287596543191242036380330282565277305746616788452130389305695857287658955278785695014962409224288916255198476180433417397325451279290959307203591367522608063667946156178816838977865209694431278801327418659274662704588462597571317377150421429364934433200419980126465055087542657090019095561825973798117813346173690300663952322794126045573797959664204336064999850890917360623624138111052094469490857914876327300168762372985128573746815184126952077051094351548021314062533957001972947217138316306131217127601016562729604103897366263988657809127591146273222164664110278369134139641902266076848895410907530830820825788924105343972655880358673941354201406783967495671378821035368590785385903300973680392361762975294439940687308504727191272263207906404727309919835254513403657540642148631438559387028389529407828066430445831127816540502076770255644880887547452474582116611363125289088621083070231240969840192681446617690895870604414906039912183601907519059805777143992206267023628819422952229279318700269759104754196282412415373304553913218750868239445232110720474643184057000587070955674372318301854602209645908662496602968307463301394091791623772455810904765311023798540233716102692337627791974129260823826168102090803807548510359827799109908172508127200032189924285232758968651823206296144928085317671140593628871106403089767424236862475912557012895180558393777061400020629265811524162320687463612356291625848683878541893480678965382581977365528721969901192397052327603214758974611550520268141711625542841466358894143423603916017725826973232920253757753100715850318951354222181763326312961317249906289923619696743662244912828550306732500617214490682298999501405024976758357157953949883438224652400216714430965758649864020179363058890195520461844841759544510260278669694471974113784153058395950787574161964760033768921287073905281379775348714989425358666381427039054039520591677535235591244289348890112879135812625024219978989751527084910938064967221057505732547830132775421411003447923552430100017006970291193701259921445383064194058321091363948370624116502945099530409451042677889239219048904906610785114869517488659451982191357278223272213172039070191350307993142254321457621121086429266793605433401526198033689408513732507072502339771840997203732471933028253418386278040158367826744226675261116312854970295121259569935016199551377329847642961624949343343807118874062291951753310611316888284608081435510210506392260186736296563037412277772792863987544665688832504397919156488896986043446513964424013085694350355442331297862956094857194998143764073699950416049390960905382197960988279134921300166200475091086962023468011756994165445896229763702413130766133549168850236787296187815280324758597180323008036232855589081420283912909588032402819733416045188383389525514091488049717268654597972355830133394702091931068128439841883550584765975965380226456033696412403183378141405004625744952584789783532856989160448853979734391228731243713912282910011664729923660126994940062842678799533775783636281983905014325009140799189033070141689288031615188465596092337759210668005586930095741101483205087771552402720545221888442682167001801976965505538051488022735415359332419401139371541788712434608334345864175987182659328011219464758249625174213057409371405906243721563708880294596731977236197103284957808868313012417372409317883192784706950912882780439304428273595650271208767233342166451466952596240598939401775670177593001611285406792178226379367429009768006825207801330254802811682595204524712883001297440762773114535571252943304048228174987552148326670144037698968958110261813920641489798186321340154959488469148637897936122640934347975706343410683500719284556470857447508208214769787676997969911011931450946713891279288822731692297698717554457272762646197528687197536524274134651465664873186082970028956802435974620162601665541535442431786046512203851835743934187821449265856420876523468124688775618948902211782120121877969371704344925705960828103710111202972097458151808280708512199386026622537729180612164554851286840396399715288755434222920800657174616798281052531896947978922910690749836414481305321449595287707535227183472270075378767116306671816800736527471012650172071322609110801834654689696972266009317241537654008217426499383391178770639329032121658732400175464431629109280129310022015838843125273502105981106747480403841193545747551413147280213652876628944556776624256297529655965123098260342332436629909549530392131016855870502097371562879358196611999058209990167908190733582689619868986177535550856288251329503281018340916141765311753698159116928993819123668917886296323452027012145858678160308822653170736285436032904452657356050465240869533098032432659584613356825510052784715101653664850093261558464766014186852477031720403459144943901240330155593758718876795759109575885517001286078621571047422357208980224577212337688399692094539854397311344885379108246179684905709981106763086676517372202677923792066917396734410181050667065804327847655252763052109492366934549461894704209996151983740044329799221926933146638602066958769679087431232657976084029077030730721788074786286829040306315793753391995781013501011267304745011979678396508940089338340133316985773633728489901166213144232056060656239776013889969057713940833436191590105042916049892761310910614867421561362521698740504568956057563517193155436419054407561352328807651721083381325984192458387705555010734087378532823772008045064295897145783447579854528131040349992125584566089192206892423777982455929444165507380120979082868582061781582173526469420768124846268885659833412834719523090524906322836937829927575407253871809690247452840120149930310042671038987019554048617813270102534483708712038704134403306088162241845023798493716225441213647861458121760559816173525634521841838358716103547385783543445072154207290124316100868251910368076656348305316304583407088582918512610573822790280848165079693942072628581684061918584902209296410968970715050434666273302012427824328345493359371504659780372109313179861558851637185121401655924254109785315920676197227729502135344242682667489883205035030674391120698621211068374527344437773659344487755907836360123665979613222123534030365196508249394756716739186154806425458275269826662414700649592722748629499776927851616310469082284268223277609493129730531874837665546555350483045496239364764088196997497010644660607466163246542109171999063448915767075083153685185443290758308125135834505940151706278427819171991250830041262776385989618492420594167116531042321508473143568811257286641758024346370274509748452404541019182469496954881652516870347205155804360379823734963341358905805826314639336879423779980424154705271260636891249879340175037097010248817835182598895839507721983825043780518716760659959698818287289999962109597940333442254372818410168091519505444692074937912439868661632084821424403953148460082572993824526230286863675407278826738892439032698304654254397829247845277627447803208732437402495223975582680548341902533035964169692222155800694066858659963482442480750000665886298765395544060585711668640670413888122101047780818885258547374194353964221148404760926138335380003865835727642854993779757885322395306866282552906240421479094903484657043237421853672080261333507894028225575922276343171210265672922769781106279258504459438247268918677752248983052848577587645117212222493407016193184430804497393609154020290783645285616869111939953392723263199168299686074028573961271848678804290374510517542209308619439942112882042616258731338606062923815621857876029281011384182195103108944579301021775951775377331243803923032171438970073935116657007180105333671197711161548290812469731285641625223259903877620653977765136648402872798057937592469094058020421454500826517655346634002478129680343824440387533796855370676169859889053993751685529907130934588625714912908193294925276705249701201209605233751210760838537321509982613429697286168611636650801639621698939349287760101510875007878993406511957351958739112863697396113488752765647162754399755182507656377740311096789072562321538943058088819832340059578821985275688372123762711768298852622140458725150408057784928258865731003515262968751981343222458969901073209848856623457684525396121451327360839275980857217935634034578057463820646082385935677842096437974819786511143892782963724661101129881056757183371074150186935179150858951151615817990301968948746752302861562800704233773684134631182777055692660466122142631494238112776154284072569522057314888101911732898632905790005352006715888817825414986604227563493433328730561732288629767965046390745610656004815037963372073316147873268125366094473502875822842906813067359444305653401678170730605752386637274223287564763725907090244387778320455390309769169759776201561256120019877799697301520264050568198580927076918401725163669748000697051229318961328379555282411615391650639673420732992616985721378719183999193711737924788708525577818755737292318837971890852852045224454992526461625868558622524185600476148970997118377410241113756949325520523601696181706557827594156853150436341150892737069505610905784690096443906207572004261974674602791898288879003725514070414925000136966595227340217160354287419947529004748953010373131420443170884200536841441462411065774445048582210597658690818061012467531972607568731022844267956661444997926172630577458981846183876742764840049576096884756868782969511428572058970217354881801765269784829722798170845715146301567010829339996364599083162774251177531187461735032310730029110401104663629660315515262055826094050896114808561648808911002053387666282182691433194536646039424359033014465031636880691118021569745494732253385056615140697261163588640927701810018038787439545420973257696389239292248038212555993152254986702922736959936919918759518209658713937338358178720060481860804768120261578345203510023920588824264529020795125420382152977906043785038615329403460653489237718096913171740536679946417658354849067499207096845161800579592624885674294180647364197425214632064745180589817927586477800544866250316758753159488361724641140981590217382795048773884323431242712730135548553318822739093519483773836657060661526561433110320621624939569491178176653356982362030784097489576714528148680409720853544787270299404481234422132853166468647703111317688648745818396671528002625161199009900199422342359076666445270533392439350890496790453839087940010688766217411782065939225452256307741291139811351928692563636139492457989786918322897337486316734037212879456287169266520800132983837630028905558288748569735935572931636567653034816558150558383280970177141360070185451666834977590514841655358469600247971078840184531857735471029556024319479707424591451451869531830056708534817721051745181081094217883107306760998051718124870090548273872280711706831995369466946437198769055176122823834388203877672127601799022433431306443439189084546913137839068094588693687693380871577594483852902505350412094333095072886229108314240229774137032722181828149008327676017126275536890252219368153592563775065468578642068665388795332659370114759192621377481264353418232550373076540017601758104296075686146089359093756794106554240993171646159138415285232818000700201817103627665850521562152468917240000101443547054646798765013424158902079833396382707615259914169825585245500165960379855840643586912064021100869394031655659798625036075761767462951149890311923844562849471688350598076114561521667927227859004360505763836525255068574190062880136244230113334724933806474045076756443882455701541852968058582297839937972568232687365799617786409667192484502055630535016351134127813705155561788291586873108764954867531185376109333002666774088707339644295244671578529177758599368236207131675714231677100149747448070619743139050670825306329438912283510144477022315167333306598672935649988094419950682621110114657571740731626907453873962576705611980869348022098191410432038150919197744232678921007641163325812737319975557348057032242290113141257938662822406128191665324605222737780353781731136891779668375751286773250034541538821055650418594970456943177347390732226127827428215356520794568008114106989891661931375953353936522332396476816970187504666868760775040383894174087417276275846656353127203618393739444237154159079843363731367693435864288361432031096625374755032769897395436081012929490389214652984037112385525923482205799221077794090438410762996671197901921007628521127080802839539125158186188359463376310760943508107622360509175225303657705457355949493359393952142842853924802627965660108993744654302151660596393372235156212255590781196126890688001005984352713783500720965111907480868588568947441753726914070730491434565384903926500603553292999537785861576914378078649597291447611210939746340839792680368995935266522169299782423761640427601451565833109429935902907367720993847229545331079759426819825301824275932202440290854871849238289161450902813732670856045882834602382280834054518724184247625293814374243578271818740466756127205475652410949258867056919013091474804506533428533985328365563589164753554238871723278034154786960931483553273727397779080580181120218971664823121930972584684348080883725145481715939712907365290242408355397971831473746168821568164070267531015186855989759904302891199101129525510044604447509769094568181047095521995370345190194141734562431894503505923414064369211075981986629899162455625972852627765250908740040498491250900443177119117946907502121127817636120896034433172979684186392649060135598078236848474366116437149548761248978515109426459856073624263310922982649274795203128009966719136740322015386107826626665820885655440220658320226063010258862517007083783197560387735481024904808686413941067085947516014041836972217369831399346612733850095229608078669896564233078053486562469865240865773675884461955330472682112914211688145068215289514227653724400125368478706042814611782730450370797280215407783241670051436500621687391669377324294164002715026419944020477507926469774889280823466381424117227409805414138111509020513300002410560905358087167635940598206833671298997705901182515392296829392011547942739944932898394725133195972532816411940378268339645619716121339761294921940233849946350472761519139788485385067126561006861286168117053011286454126502885635303937165358922011871239696910232476391189105469305678488319148952205231178733627605667478705064676644036056504557705455913523448815757074768904440685493435037358146096021003536648148567124028943151819517161655946596320473793092233465749225720500354842653811432223397678915896570938613797153569322810429610370536210148979413106615260354410253323958431287949749489157697186233718301559837700806527117265511967030672973887513598193371882216794339093890673475093993616506005322222114166148689597262534230383122558386854305058092097471035430352777837620154598030012308788516170913978813846719386097767674623799926634283993309919948073091198893483313354471434206502463766542780259154394202911829613503441908096316828119917535186578278056895092448432285643830142752189209469917823295689388060107936117949405102686269225547535027997050514488375424095989859610668597240873865803842867332170369556873048244042884078178100988730476892832444162973254895184385027987877286257573253341247858472506981119972859354110221676791118269050163572350535568136969323152351309425101363271507050103783198990857217521568019077925186716409649313736726553109583171005616932664815799558720924051574987324741927688076601939651518135847195042974230054824254857413227274778773098679903643540843413476459450499291815732990418696107766356885454075136321379942463474917754501517028781691199198805325463115098896434282840525281248283372752028526189985603674463726030159378338021020010707275859123642027262223555362624187376416133523777283155893199948449766503372908832346299568306646322488381002768335073807785410069885310945612880217174640931715534433805577833642221120600767890515518242086194667749616479251118410675240321539060900418403611863766744904602086534068454831397940373961170016290941640436267755549137989413781876008753498170356879971907180815880704922892904169038834709291810305805891623536084225092988424580170005909710086066073983088150057663387480335424985378982090900740580845332655053058341722354841181868347271633707342285144576766510855312636713111750044576726679577262083734935159585781061977997609928294156972726091258183240824045928175249196941567338346962638022767688519224775037678854636953821903623102634545267064431278786526254668456565262121414905919612766769685899372702378314157923681726431142846689596448959073818233150772564935978348597400511612911308828909822940704308766661167806202446085705265608100731485388598183232102738897158851521089831339161263337881125504752700458731508702003308781702761150006640836888443796513495348514553221738147060568952949193718202983696666353025690662692024645966719636855506037636469801600148273168939815034831014367707872871547848305232307557294394380404031208621208126593400977547673874087549436483708492789497309876168669770322724940704035910068086934953009648859803589635078790230792200598251207208422515655426503451227003648055593362167323357839617549956368553208762443600327590394031786109762081161213719862726384135801598276670142891146533897366995102005635337526880491274502694876042798236474821676773292601237774835924412737136786542632116220227800655522144472906079013845368720430573118558086467403581799986908500484464165721261687111422756404441288017546281352766761907117624617211746447964289254999642930009035898220088354917578682711651334740319032694193962142769636087655410792177742603617792275629511092725224288298014382609802288832184310976625977495679055974886206541169633970207562343149996009316260444055589484862333551688577161316037237690533545926769573650326439306845747035077370148701356251817941406994873955155985489308994692719754906491537816073650533813529278533093919665873517904118865847979463217502735126913383961366215399757511287376883561404949563807191972889076072833026244818093035415078937700820260420787233971920307141226849600942286892869415926468877906994308013283124528676447708013936187262513007097593093263676401421905693860976623761437229949837070932848696231531114540710713138730420252900106987410256344796782186219066585706484198984379423305916161911090461457218313630672166425149248780664064715091464501396722984008859940603209978989574675822379822927414280478936066869406810278218161696880174763554084119944044339118445852914545341067690050216773693070429787069897326544725247200471013623951562192147627547329894301880765955317397790194517487210762170469990467301660859658154547596357612960282921348676645452882109171297338723394183402350691637962754215171862321086175983183803121105594891937774880670149274875618690289581836922040018098107232285546316055445278848914292647788768673788708802631947088335098197845949914573110523209691734993057517957604939560378040512312074474328188723001906012338612790384052648928412573830935278924848157313423575000364822558799699470582051037620424723098297591744167444390674619568323708152090799218163559236132735592079976765289629160478926309184565675762079042294630143572091895560307769776843062785368453050110940077347545378806144098279430435112213626745346759635977811396356263728022439123016813803506860638970086273858562119569471581400034147396981992639518502446971314596734484450505419445051584714373565098433118520436205056665874991806138435254031078183171927448105542508276237627969363220643245389710545406018900883564249911940772721318409740073907498128165983695615862448004784741328918337037071991975091439997939391263271112045257582856445462972011175883616726783866810576734490068628546705239815291763161316873219244860369196343524077993966755598206027668578191043186304839154997960643984141063829970506791326065931510511998997024164175411086326498718450164232142807470393569968483844605677931960327450105436980254185142102349299834447711054601818285088850140363998542240646363115607436977555026840790030084090169518897573351397565241525701480584282621976696393902659153015091921453579203538540150070999940288013602960635146927362672482628311737600207985961305678804310785380287572191607822416421683236462891661096426702750560452817408031964160441578875677031286055495155191067214607479394019587639767958846378769155531694381484034174244809176897473247576286790983579951341709326991259019261843418140637879860618931579750813619206716973379447157762466559558199233394724553954425946795953029192012526500308596143360440087969434382192451755681997484794737376200394787743189147998861046492671820012517801904320277720396239653167193448355609187591841732972549809202827097186818750980135657804715386811305351039437845214591352157957847987305898489739739756043854516517194355737879724465231932378920412222214035553540907345934646911083700208020893179834554323802132047352539228303666165059335154753970994360421425324173361331670196052902348018564956054100423537683162458642150462588139844083242117390046146126861577885496552030260257367786135278308520522037208923599863274233885213523939022285116296694273141229523139151665793945560123324712377081459788357997582541120659288007779666507481895211793091483253223817363264576344738813527983469276608656151661396723060869342368567911664006366027576210591679767662720642583877260969186192873734663991861643435902338611409218578335448262545954747321811803743882307100325868747956658666883565032482541320739916018380837372760520421799500227560286608932943436500112487842579880012085336972756134206128539688121801300443751630106082264435874226901239076185192000576300800710597187714052926094219245926804239628760378773343084190755003925182031022243430181698651468479497275676067989148540375162656213651863192161913928165667858033060800093815236396615280513333539596743298569390794220364331077578663240588601287632637352324679443228301882787063880118923417059935392851789984446656021245703497072095467822242813655617743117321802539113726997989349405462054518834711044951075469675470778885779927404849486685498030914861828889385261261503225675059378161223097214583796426624934737956084197470466255372736220298117524534895673733550251369308209479582342251986864657563879952341967628948970236126670483077690809265210489978604000538164575021820502038415779899324974352367561408114047820457858656175960882822277862116292303667681425142692685295138427087096294434860700828093425156988779046996067016426844423809683602834084083643768265160188416986040392885646670013424925506985927075988569720470646574979119349279240565016188981218425437370200915879518882399916158390057558536372318242731664814474558124130388862186072185322320220075938215378102989640597118709524767882604231757848596080594322669893830519165118177749909700968057326748831579604767804148526593729389250002891700912657459292556743166797913477319684161017488367209673428453596538911913145462936645282207200764437739013545567210157593383692939785341798663300129577918240518002011261536774886992632416628488560581181956659083473122263484813687658423989056738413400711542879699525174694333106669184952918530434417293681423501410186261103870688518727881505545141645629452380241357834662902261748567544008721289717717994756797739395970880086060998827972489944214815692146069514028989278110644188047992198962110197106715011011641040981901955275459377586528615309258059050776964015998954854836741816361204747668270964878630533192966405375472773890306271754826541625053226904852446980689097049263573459136282716854045301958587838876908225616807972260700672906760076776260794330401259281761493614255918207285413032896746371232776942230972597531586527081542230345224548720308533509903666273258247978138579265752568841013933960796492834242035650116407039686785192469650821570775235352542149857481333632933373761261186491886584012245536222677899078283880304363031479108572823862802734478611253674328806869353586329639317134826356943645731936807200293895411786584191618437905120883490467100027186912477579552445985119754904108392837948651604494671754369332877955253697241161003209971016186558993992819289444748337011359454192886322552436250819862040557195302032659752679085394129301515851092672468373060831536377142251858090877233884366508105230320234242229555468845679650887162581177333163053713148358506410978293264715080382578627645002091075639720652963767978201445358284491904811369637298147057570125346248329383220967006667424929329265670441424083539256504498116547883427690408389965971924492688926203051209692784554155449498410797028455135261529804504587736596331092180357063822459178672592233941160206378607176005224442696583764495116586290426774562116988538740988323711303406285253959007237608118804395355171834281125971097847027583883635008808073717711162543029294443420176109298589883802620539403863472460653860399435787757911815408493096762734267415787253572509923954080379149349916256551547917429248014387743690916263132659237671406751318044186171096258760776296868054980055885769761412476116197403095328476099376198412340481749084120020132068824048017273279913708968037808050077254587451789742194928543612660297108228034434223367487760972447970139557164949653111625046116971653382938211936479070361052590720329226013284617627436274546480587715581200872432887875409571822165783016552505754215198934682483186465440510925199450264588134907231307402054319937235900541010379499668265781996586607653351129274154009030350842771086415265433156277455864799319839531331215249941257595159832389900794098268662969796973770067683218737583532680581267586603554876760161908674680402838202409148695150663456023028555072606429966536997097786741368230557471080222692347285340258477521981029242729802492051252228771477769871280437192895160326040613834946232354873321062425857527334995179668517394469814047668449762372487846276526458294993832588164672691465323421175971399100415496506673987551258840917569510364263679731539541922767608612808377616425814293280840693721155851506773035191499187909848284173156744859030475844930425774430694948761277901065472505499721318122175591048266589819965579083070173581439509715264619831693274507553506354699547779225031365562793503356193184257047290510653396931136642564527344157715509440531798216801789375940524571784080126066069199037840767642067895446663225183148253601580713686800362823433275531827003765248923081511559826186973016224457833057718531835159782338387446610331925632646252228012047245951255303648746487769583393913594448104956777072964039097839129603279313176065224774905465472940164592777731925082080625949600624802402451388345606337683379874749966980529259553186101525003134611475936183321130414649628257540170413312216829810131991407058132074074761555062403869530525562687084824317522575721630169686346461378328750693454984128567934422324497206409286335802981497603925797216402554620927885281345491968942868477066147071683505884189432378416785864609297265938828347410432085084473818959478902874421805400091474695842924934994350682404558372363860634194183543161897028612438578126928947565860068206959174168333844656071564422556737176976761352537310726561368392421308826781255582870843935004215424856359774000538658096775746404822882930757908363546261472355612457143508387168404145460625593408739453997356715307072650260460012372331169441288979375828138456892974674474231805257357575218667816000358322152812175632990809553636307156952395010595351612617296848835098101747125826528017368063445658015464807212531762023140658668973054588634929417724488570269204801871719182840381328606790863715098787980136352865038347973104947114730907536699161300014575056228896608519707837460097399877837807095810017036370165079825383894233549764099673402552842511431677217896526340750386675737525750777314977181009254485967224769484503328453875832706467708455907264168800099302288119888364542398190684264308152987290386069584156812707997781107206578400931057050183281962584534304001965230222901862561406928081019703548069046593948991733842091809943582131953825768985357988787805779714634220659627394158812241708102113156590592155998721908268537172314859444468966052557610227374166407318396328207705385074311588292447962398215828301117986130935114507746025596737834835987447212660685405982050800454005308053920382263225437827724387964734025405063444931551471643819840338665637329006240244063339933744510608786898610908081482144578490546637068971186236314372246832847677910507584748933774814897497589405479145566076204777796351388904901695018429509087997678062061708082373810764537502489129744821103599192502495346370983579352307192725808294900825822965275761058186313683040701725821749373177863939292645500984612987768733292614772364294871193013425936508542297965125286194262799728060179903242404164606774612337511649866783124386060658701289107798003538210311566068117974794196997746398022885336784747543155082653685730637137478094802742231060910660091795408994779410849715129468682536109727348864958107430250602659746595994613120402862403169632179383146917733532925824934850356346724489127486192144748514946789717986568822480201784480529691941665025384593761297133123393795300839121162952481492670067499676299235357689830472936356981548161356955735103972934782218480763934543376623054924485081452346798958835077011970533744549389510455550453432597088029225993254904858461391161246523060478529623878277974413558325623055387090911256299488067479654443024309109196668470056132088797146026673352546998945254320013325970611812457398474878588612612602497551965702409912162771614689107291680391243070363105526299069008618640648254954673959107568688998402485734540991993929804725630792804548080651988803669962763285620828781832042405441737298173007047815638380458521602881654292790038660431383477116685451694512700720293997397446183799099020801282571967457856352373570443808501625547040340121871696060801908583071741634053719855670584770865052746032455874886206830137684876767693224804640142554501529879209429668229141224422363789701750571746275436328401159521994406547633816992761056333668897736426974484584499163155231190504974313678617674722250966831700347562778327604322576249417653571586605667192288079959376226002091062421456542028543029763099190103385077093666712403106609963893781146519540055269702308900564912782024447960433977949149520506767659943916765354126693590691624979002938695811303342366984868219839091273203497302048318283124073898320316893487678218595609087638818053584237688236825410582063613599672837111692284590397797163236976896774710300869042914182782158298965503498599816042607007401286022308738954373701602548545506268854754201011576527331462589823247488843210633365812473847586477978759295972559927923647205498886842872583849905686379691287545182439471051898199867247098541837579546708538437758322682792059475026198133134627071506382361795452569510058790081921762664472653302175644149838071010927181851810930518036505989931487693500426135787720459179983297756961030237098072049131113637372438881574179172727346828991407194133670900780145568000366404890154097060744002909443630304899689093569488032843094988120538005109789920710926130080513629788872164547668765090705072527910826646454418866550336573872532153278135766708744904811138571545327281966831467566656517486481119616275504306175929944411128441430223097913308151284610388583363422968378922192718373680013633449831227894989878104750028898398654343727770883717596799277306433563887393224046463340279915377870235077029551643943092789118927489144928234885835148827494214953888277288886501502691068747991767088590155564683272794611377619894754106507204498948573967674664931440182263579651555187590552151959120988156073114070142780250653232176341207521770672626824062605950260241164967359419350373357095326437259181904413769213976436384414081646524951828403121669115579949811707883160664732749012722752477497257203360846211045240469896719878350457276005552715993836431063784659322301421991422139250244200628957284500866501267444329623943636972834762709057333568927911670860464163613167587599052905759066126202029101786179219493163801656609452987730877797440123687609737673561955494932484813096895873154142737369795677443623872351149138276425417060042175301945515910315943150006030876082713843376324386397378929064331875196822208961241281589602488691288132404090121476219221125142746791824384928342486458537115394340826069313434079071049702552106513440561089191530312589701630450224534516891738836658513479090097241127250736789527514545556827812845834126441969291998026411943592936682233429052860669359957881773153489871992725395547890192175329461002158346191321234838279110067695934222768415148686009254548878690591940205345956073310310856069054330301032975578709603258386262931675777450215025304150689537112857600667648712943372350390237536208649051908397118825583810980013702633433519165276948328759939867001833374033987141422611391655792727408564191883186795392039357310834564126776171345524768163766633663107919244346349896217806638767746371966820293607579365150748718807047089728317020301765970767899754108156043320782005452762958920924542360263646135737086483063997914134201233320626515356924367747551461002741255530362627959318330023427402749402913165464126955723011040563013562408329636507152917651716433018687244799223256664635558131651475512136787949477780376044048801284181260978777255627291644072808918803913654077964178840072530583073257851139870818212306024874661227724220909111339175204501680193441113242381433905805310038945888578407009746033439073260856763148517049903304340009685148885542749554690621460643279683393479661459161186094738524885090754208974247561203537813542625581097226630290338909458312073402093260413228539465892711315568960622634410994674500660061593543517260069308600540144157268246736576361722725144410141439484908023573210508978831440169698271295309143648763546670129143045849190900584713029836817526435748853585905227563709241408489321517550077371244770636620484065159143402229256502517241401262561441704936713545761043768647022587097719908702343937368418625411706234306615280482468320864286013538840896865373023093042903491095597347307009358991908546093237848473080969631372273334475643071008376624797721240867328014856558192671658219596756750725549869343346784302825240639658285094403303020347655361187030208164502831813437501736089862339805904483167157798925169653492459994606951055882496752344101194760937583471316885755668151993352615876024315945850299270976135945498562262594767462013175643939709250583957031016876660473446138885011493510661559851978875722509522577299786231997240600887982217202312782271333703856867020076191355395876119474226449804455026994335618544805389156853112790205204707496726686064639327326222969686581938026917317621505809574859283599235774439063801475674278435001218607755419390614824236786246954680043306530473801530946789228210866033801679374242413327650149599154379612940175357856253830853506442445614921058617515617266822161052222156378409949008845622556742820230209483282804255451890786903591683793527624088193179175056148727757588234885293507738764476614432756849832024617471087154296461800697093430433130408918523374379665951634607299451074756226448159102404854570660866795020268079656154845465669629141520549767415507254482735904628254604429731393485913950086953369928610609704729557181241893421104405883673705887419862652077005501812630091656030706099255538604720002621340440367617768638540315356508907861821429431876417435310168932859736198789819792046991521209352040058948183159013437434222215156290164770608217608714522183243059377461590211917462871974457231069482095129185224593953070320673666408984626701788259310941674156591116600739663901000231233303492588295477513824555106348442343873037214722205230741606593845844566062472471852196044188745495279789160136468251827687397253887488190413253058499796611212748014735964976603359768237377860451024502183037397423362349652895432990248338114417563266703315119871972617757324651267640569522895014660702248025025080554130237714490820255076427378320702475321255747048635677253707929389365739363631658209502167398562345346421058104426363358335374504850344310361796031053895389314261089582472061737587553869149178018152265355698709661349833432006989071385796137516440777690402328733777025903322008943845800567099244382161555286546163957120825739565807020631299777948580454225406520863731163916601927891137791176905298469061392467431261423518471536020411682742150137095500905753866642668710855885622221358521067380705011225223441786100597009063019690675588147004774574789130881826120114476357325467295118511958082214213777416705053100890921359271004068621341367425056015890333894512280523006153141575339496582617385267332116809091050157956502531231640197272730384237452487390023008467514534346316302745097210127769090303300200359469889330490785088586182120092625879544728254869530529584433344423450100210046968434655243987290101442235565108959550749553251587188066366871076499161828801003821030280227669573969986548156622405983327862112575289950035541347584927733879067578135970038031744710634803827638120523613512036796196483074660034953188459799151997848998555391858851398034033242110231146369931725629094924451526603928307084822895757927111838977618754651875665580858641226600504293126041981948012734904974607079159094075953876024616339850062069358847365625418858904492951549842973701337127515755383017047525487785661339151360837404396216668069565836009335666167137759516014982724888660114582285522017558169011185025273930405694529805658949615345378200550648666150491978371653547585925607358955061267694481783591297423270359532332660333678354865191424608188644712022633400622169119713658962681204240016838101777040661873263597476481486201518286359255983158173306943863922536165744530552404415899229301189636518191795638819426521151680972186557655502854233156080704351943249925454134494116655506752218633127244995152190627066533692640653795796476615838397009189885744288109810394100885449259842752884424685246389249130636360837791683437789510821686977379642371780529112982320485000547892867970819564803778731366827285470576536550365362571016834406314910893708872112872449061998874004232904029554121383328897792396846661171918661928729899317352740728954023452395012844144261540649285916113417613977872433679350743668559498376484153087682479761753325021885551008675606228684167529713086701350302436662088393196206756598393539069407504670406252336034705847761782382742787001938621687730397648804468131259646565260285492859584284748223870360922241128544234196006649816160137889842352205733806388444302261552592911955089800426276957611912617191562676186472274029640504457319844872298490219744988853997176567449549225203206435006425767537164776347152055127934697310622318252497606269858081313453122314450407947027183278738388367464247604850930380328624626002486655592822794486695658889786646740688139017172653073381815117549588140882926251325132442586920265391294717208828648042382587054440189720023232920153406054999762092260709944771926603698932070649589627376007487486627968808716274212661401085621699358155638939237599068118587416770209504532157390162213505841331561054607427813842501969245397827662936814635280102805422922534395742236853168919654325488002046325015965074530445955531315325890531129466364153282828960007535678072777011817664196412052908723421822736618340457378877509305900339958710056314668171331154589961462921344733856097133158606453864515721709500940111794242400211389861491240467104048585820886685140312420400106176163617651018060811098637633273891097272969552774915359673554062387331766303763407035514217529325505305811719130496133126064228938473611199123676340120922250544311518494806067156091721598472405983358129943956593866773294330634459084982962305931721036724214711881252455245009070470595010800735225621845419566567398074763950173787999046350337704979136400631646198889361219287328265450508068043864277452186489260094749003629654460127569078134782856622000097184594819664022532315266886156066255642500194552660317330795732786438178268321596194518000724502759820168204339673117225985323717064617372529154436558372892451035106522563133398527689350143405512351458555217676348524706114067556305593058553690378523896662428595836613590333630414933450577259475865562845530756875125583989114698891379797883104046418563587825004657064422661838123210116951958524070176846761751958119087701038906099513153687035766727003678303399958288381761014264580557077194569883956078773068832914996954400317376895152622402959579995676865475393290108083140395730951917934887027677215409938597954510302536484405400191648330385206103142122029471236923294432243527842017125860577700120545119743258155557178651719080522379621914538573451920927847508617154724474240731921638210985851295454282217309797932795032279102449816981686536545938275586132152917554895600715322992002595634614585741176450766179484551998317644374384779692669951793348634991404584580647188732400596253060653360756540503970147822318056327880181138392182690792155742156220110038398784097214712911959663045925361039510530512701455170749909497435161340755313585720564266416581273093795761553285423853230624563733301494708566494914282461240715664209482301706076487673720135827126530288519203510886767473498480833333590110229706940605757071647695168504631195127998445711545143159354932321893158541533820569122829799518337693476880967420146142965787038862235827593598682829936765138018131239491393445500318440935459368492221659353834739101204557614755330398713608925614301077667312812445814057708729848367090551395347540138459229467519841243914342766125455749536239138059127893489859743535353799974677823688126278106012013456916378224837231136368985704747157057391386379544288977220757194042092056139608555981156626457150150425467361391466092025971761523486606327356316578493197313610813973259452388135509529499160256571833343051821239518114898850447591743610468834385498788216730935053143137299991028406409342893822432332280220969439851459860227925431887207672201480557027953621565381992282606563115936009961692108387611323328243674531004538168705303820068474441603404357926140035647961175602251968850621000704946878212641551521230722827087935581695436717169931915287941988911829193539740187659730515823759902030800002626748044798363593588413615635308571563725147348551555202624937472199510365224442184360105441145412018430081580070558034170921806664127336218405603315609279864486199817558346834227504083002784696481960134524748232501098401843169357411797004268360947028543582180577895010796224337704305923709013640818030496930636293720775680832533174937372013664993749685615448902173804160735358343116008457700866520056711629369271848749252409078132904918792667315508241531467982169783014093531268029569184115256146893668523570023389747520863839549042667864873334496530283139359694364496991478542360106579102345567886520682842470209086490521465748851499966876367037145072102151609560856155043838400118691035403703811989713405982431101920132057588802537191072844511355290362872522174982129712162596883896494000498250183068419581395794606536192172954367461714994384170141720346609638818559526601034240526145395449651590938510946653838911349708046640549989065449170172548416841053007241999243065179468183368773374871186758002588935190738484276936544982696524434813151420848169555023255500722690072855925498124815335637842794482806813384367607583363924243054295047657486304583904243546881831703423742759417868430230541626337099704286193871001004805931836248043260577590184990329682367445464804384501850290386728173580520265985082795838999251829021284583798000198230101650290127462769292167621888335825618658240897465382148509905043321520960967922266539977650636670713188809459362788837179192608222011642031169707626368071803325653222680249841501563060832268918302680692757575936842929229816248768453275796774154299542240308227027789647913024051716555934460097268422667560800454631501220110652299589542459272498281285986781103203150966581524389309961010911463808106508096196153005489351678260828573880385872805697069211269562031801176752986504265395425180219156960558141598467849369274023765416913933725889427054136465474090330233505219245914359519971606888143383616725030585761781102405915915987634270601685683483043580571935070438062270530956152263606788949189000387662406543493985719006237761212721780269507086210130249692395211121569625095314455848340324710390032422800397437829345769390539822236711308199689482651022933477309825428507383734865206898001127519201169702438348874073117825447088105207021324139051881781883923850791592633904056094172583012307140206474103770176671589990358549658555651339331558423076756189087921727627622361484983064171788074033125731155455287839302891404742081901028511086888361371334578769715729308951411781875344731209932547065057802257145127885813087492206278351824749910420986547579634062535235768623175125121483481494587725507569571541957096991778853978089330320901123927703869294122127348797718235409764470328803420127649909610350217744715932105762622740092369914660696053822178017863361484739463675740540291667487813794898653784283843775576617932897823044960279896543533630999792533693779625112913331324736277552879552356824484095258366103546282409211615315659543328092700086329218632541618372713210134641342805998495443429400266316920446748162798593192753572143281119051118898474160552531196852839680333234054985594813255763434867850713982553774040350285358735356606251470446930187489245191528311168178843201600864719238969922018862113673749329091104886487268534887224529254167450568065140783924688971327639147252691406185610335870777924294978211658239160364189999372278742644996028265832623007285099567045969401183876537339781084009230717390783466812450182148380766185221494328627286203173963718610486910458320802046028655168831683103776421383852507741813854745417839794428995606894223629903082423863667884747379441501019733716801582243663085335545248280949608974467252874336645824526077180447619078418262688283311710179031663987917861605689030533343770854740102174189896392602435727739784434917797298879079637551111810281402777023947031785397272356127230677284183530233488719448188456677170263089168362354060297047643184296641360831546962272769561107085051606180868466321343753136913137775057215371091880427851464962198011336104576942991654042079942056918799209917643171315542939703576319782670699656665660265569823918029745842866564583676995844012698746989915643205196412106375506926101743496368224344035875789346067550679834893930795028742004501787500395963903861770330408951349107586130626316610264719417271856499545529400786977604291607610430129231427423096555565027326052500927323512776810928848666000196603293525954462739986487321008978055261017362511118984917464309366380508624636488233998923595120498730738006114096693610850254796069575215509239896260785719915257285158646242047014628208136143039610326791137231177660695212013713433846207353670669807316752958152194310501884702533374771552899620879451910090399375147003468769631724844843847583530098688393484812062301778756236468155818005286126102665081634161620275142714171487881411136808418977034813464118058189439815172428588504277407661326222653473609572700041378403758436068989932624793558233746071164857369126896882436280087663365703616531999290082932326808419794151917431166009795029522899738145562198553546933002086594507492608735829626015283289515984894391390110067168721600138398749146858695853911848536114426072193171733165725063026361455694734030178355136359749990306324266441746627088088364165658365607942757651769166976351395440548748788016187628894413679835974286882521946833743550387280125886289526063825117332301849189849754674303557754327137091904412180794127824984382220121914374178563263554781073502465785750523432752619871363543153073347218806760137956251355862648390643027611153871371819360073676375928530222367720131362742275087818841929262519705779472729822520756584422002262156801492788862144353797123711615169097536643191692396410410931448353454917359782680270687605781878286426503964400381416807790872734744016181932279891886731351404049896211274916764411491222333563115304811799552552932760776047033742275924167223208005489304871208513723989719733531596607905659066197598997369359763671140969200624503805649160566141863820986902003466547796099637519418665318924500047183388313341703728492989652681816871790925759887237276524092399771212282289504901212775426217754221331278338656889995826458007128122103862950293397340843993261679926429955685988819292265893931283474236169549249641824746662451647529621509184765204412804944201192422424094103256483638409807156966168438061915512560473354737641766729206662774883592296628230786147203910072295267448605408853432457945184836211295780215306720889154112452592966616073859342118595856185988635246353691058399870194033732701179806082299683290667129610616896085677401986042202184814775508821260635119651953633747423090647641868891466770496216740789141792005518197913741620271319422770991887368239492965859281297979939209492152222892291042490393415416672997140934766694468337500801282551696236290390531886037808149694496376601679603297994843763812294976671948657946927917760648961184965771505645556310264436600118252159133789934349756224745100120102938734700305715026095782483184137706357930638390614591209185462482914975409213105251125582307566910442499039379880348513096344048467508255533341167345262442843844762646217882616021434568741439703766164615696748716918902619491214903260815989973841620751899028029385778779020390354149146751786209836789804667626831146201513518496175717682117064477225284926665078472509710674768081590098478849321777710434832992953899236419544708790407409988709518182289592327144546254958337501837736607195725949916403934421307326580253170023958234189584450302636589491745950741217486940955570737584733508255363097876435521377163610412368358249389559815611465650855557624002861681692086894476080227738421743454652305986428665727777743774616749286944203876861031721336760184202041257335645278553365944532299415859682719133716219942366552090450526585205493677798723461567905460806735402880641127282737437630621580215131811829777203997950416366298589172678129894933833513357107753232750799721978651538218226417823270629020002673495103834494794724584538402061539967155296734230975970396597739352143736064923685430818143088160758441079641282929752062764706374176287045739682570656151077222737532989639779481541129668869191280080910497788809412085812459096008990959765474564885575990193503451394314752338475064598784664230322918902405586593212397965405309508377436492300924196725902760320976743080691937809186402730420595936855002554488912270996403220934345998012185977417194043300389845860293217901992557620469179934940082479841145062073509645861075549161840119894026599903381918266302411423005271589927674335723705289138465426071084398637818502925146067176395275200521563856726785256894342479903695184678796286606828038898516221445471908863028126125835276482588543973207427331239569180767711886015196743179064219475992429860716648694094968131160036730452301795895675001938537414808529842454100111191775839525743119169005397779462049047618721715793229541516818062004075139350290798175638356732174657154416811019772309424208289564550643295974227529759349414869894197184954814427103198532722787981860607118645355775717206149113423467172860732750778245890897066254233195550727199813826515527547759884052656990703637727389788783598348731336472073486998586843884498791477848939844728719183495626920674351550544840695102517633180734154057495327557551260842399769832611341958025239347950068910746799914132337104307309650516117958364808354148651064657969942548369867957974721428148934035683885041822105191947668979502007545868286401786312604651854023755780577290970797339398937548631598522938034937456712712059223066767112328637259156592010303744672142608067345439508533608753671386195759058447930769073721604425404203567517150325831048825466029498449781503694429074701937300507699530049899971924101259159016343712676520237194553581802188173053526491297981217928687286311413236898727260308181460070920572526659883128934757815536734038083616241050968403720841588854259537133980450413703387197818955914690577609051512280899012338266147300601301926289333905188957416421222062004684434717533028848760834263802285950061952837455684911405332168359374800336585875979436940602045513581380309700819803674770447042126865862228667477771921313575868014451551219253439265225787215371978373879490106119622472559895860167999675200135942694283076790297097655018651230602389693906878617573349425400730694182602750102814473969789395038426506043834422883817361981758927168136255163278479761542793710595844522801369985865127727415183676475836417102846253643164927740280018207549278479717370785781828521797350154149867024795348421757156741424233897816434681033019774732853795274640189044506417185294739210194936349057175546254827915396798406037920498793863315649517368580314129395924200641421146611054545825291708341600813076442869870830619750091562272613870109281679038331333769299735704229880431963347183518271786675409652438629729732046261761249884194674198211810931158877509998071838856395304756320075290335255052471811480983344168613542737652265260326100711571366924148177958825111878054609482447333060600684159005700403269226376719782600533434867502251691443484759469860953820438715836848831831698625219117520040494456453324181509541199932979999786626741539671999120965248042158484143195595372535224813282445582434521561834073206505591535623882666784299423321548215150032619256568052414854331415625216366171632375052947448666405873702810981900011062823982239037827107363805298039159977681243574694868371339663950469765918153911931966744230682698069813993008014437633574794042907370686245063953079907272726629432523955989801355109020718306144467463213684982650564608773166456556173861220477498031714482059804917948085519140180768896244468683426622263531612092117401706039212674540008023569925021135928267542408450848359907865899330159738061088986149549475187926877499036892494557818541110232396557149624186985180985250032553669776580530110301138920623099457993653290033188084613685077101490743007528780003256795762200967677197919284275404741007323948843150699416817518359626755304947565971246387231139147723386096442113887101063631206662437783218871364183329388144604831835090605490352012214555958767259594635242445393128103953617741809526846212305396097616738768792831145727668299443319291757563025253453478635609327713969063498385368820023246361106500741634129162913923802412898964462446326695086980725425810767057790858422979323378444046546297856505536446853016206402278784557401754211566380702871003099703987708738446123253667830239409245607697109407994913475338667150745004209903221793886609999904090580603354396699799917273257149224179826296517972088370998768097396371587653342269938395690536618563948632238343419044861269294206282628957954779488124779755230574145602966978636396196515255409113939301518216294554176013138060703610796734667678745350483320904601728575457612966484117656787123766767601969056782276011000836731665750636788376371251554912812416649861679171177707472298666063109383849930882709280710250997413422005981940425878749135043032585347804402348528523065035320727119113109972095044698183706490961543667842012103237592014347132584734783871997010788314837546751884804080974199100769227594229733530985068039401868745555391087318374475819026316498216945691147310381296129284447105936098188810381523655688483539201131477361053433829080499487679991319849752104446484951677306937193812202398522672074556070593500891611330947442686888671923833848084997305130554734931647464770650295213090153964601283108111521812270034614736718843123367002404408239110598775297637060251818841382310129165018118433308646449252130018083646706191969667115416170656654459331524624976837351060151545483159956856486027616909345114192357570605360762118250012526148837795640624238255773215647780127537726627073421593320922882111459601850634308766239314526058645081806249210151914498437078148564489609666685465812776977977106546631281806588087781740338529872301799885246663605816763969628741088422306976148279395309505748351299992077253547589743716090420882003837734388980419754076314836031790203463522819082880207427015953520200871838880689692422887586335687485706066219163558784130932761277588229997852330901241916084599878233206409724716099330464725454320167971209069542614179975368346747308667783141846220482139949598580381706322054962751670229113008020210722621612347272818506255581095146872869311629797431731821886674442953918856683542483740214478608739388646428830323809325481073135201457270416687845807934692961104915419857068751387539365934077286482541635727745379461280808894770257841294574275858887564575304047043443897363404785769349730343649877867081492580279382062458552257747842812031126562477340623354409898964123880505519685782597546447727191537503511888325225618080914089019409013846516650134843316873773937084837360538949160661452117622701732684691460619708507177449449444693276420795332837587310322229606826672555159384580050581071692313791840658182501791634826200257288947191996189461347885660458180417879529043128657141653594580223941175530287283432773935617678220646053438871340862174417018296445692303828913868881446186009747716311292594115596897357375361430994663953245738367719355564610508965251368058616732101025770232590741342953120385117800437115136804386395361633976915330788365978245060732718990450587381845590393317648432867869623825567986915514200846613678048893738558339321178188515339468240626956000634931510308932018636762051703332474576858121977892335885816798125384998998795073404483912814501600485320299931945820454518250637340796108480909447969677473899444257970883252904909838626479258459310536287352157199650312278181968947594940328113018995907397937984622072988954103071532126236733240396890125309807780487852268485403364425110314203849842403738723714167510227567798114136244521894517614629470495663081381655773088266373166858156865070745187122603844904885821233518889395962487448984298579427388753988230285557794281325082001088836613489764664335627552646902044129763396421900792037285704825438433864104089307383613891996532195230697006125959623943920192699756153230518487721483149652285652199462044902517664495279316079435955049840817535390088291466430457879915871887927844464719704286130241874860247595843330326257763978105595804570590807847532151877293037792631742490005036252412052616741046475407892097630839882309072972496973800241291034261897546139368306412428733770260249892980109084194274308953258279200119579134587643519420807160786179116997470100147172558744395497273272018862001757466485408057851586608509979067348414147270051923561477678694640134584149510328686828893467583534827030582494733773116950798816547235129133488536193471508850018202348648270770914053817624369557432368243367049795369059119637151767262550185529449973898084638066226580671230682480432160240431614460994394443977871551708764437341220466606049677699735845253678828232173927474112036692637170866261488192477153900067556761786384616423347895680352034922992421364584871481158074490574426876049103059867363929935622614030574532617805336232868202786192982624252853699832605889230983518306896690545356223489341051766867862355683091059130400047908083287704561945429209731701991654044230502531144183964755031820726812298245231638092208408334447681224034734372582364301576807731190921228204622541098282231978094498965468088063558287396224230417179849301591794054444534937298317882989855171705981767251609625251777423072151993100626223493608253294484431344775132506369117249909967133681568006385102652816791089140960395436564735494154880563632951743406597775084748446990690240459368490281195665728891750016315317727267846147110377696708183407560367675639632636146652682801654334345441358321784034912636255931458730552220934023709536601557220534056396163411939988956530253076719027224642254424770321577346423098348247219103879664204545880064698678932439523897426959112492458772200875697825988426494659574311011442366056127684374550297478305075542224409573041715482127734857428820192360562376791657742534267440283319187392823343785965387362091118913698326966284589208857288378537628995613597290332509973224508386727083597021487306239067110456363120261315497879849167480189356934994370701585420995779935884942418348526491069522028637776022431993442208300387308464985669661138415780485180760936237373480138103052087223073635315870215817568820117369209099994222304390815485196528922453808114192875591601769596653072018255084589061957415950512202349336830829540515070759146864120830067761174699206684400099744010141610399226004545921759188353389773040913054765301446513035490868013749157173248716726956958028018984319836636553409130591085566734277722700601036624527870617631114074165577836460093361990152306228861430428398813517728057758198497593654222754313502136427790323704173836632034750259644614527488584616259054365680037522578423162552551683065354050742549100620760412058559984183867541212307898270117918738360201906612605175652050647814788281830598691169889847679826994001176638230483924800995617368759732911983082040457037874151463231870133191032625799795992545694871081684185007832011155731193838074029923259333587833702238456381443306184569044434570356706468123562886036130324147650545542353129865294056190351991635432217660119257860165710282434498258945211919681836533128086311998653279493157887092077638915397354648330321876895256155989403652161589040862439648840088086067565242146401498617108284467342539062646368325063327588273019426958179072373952376183077391368587772918249843044878762696074670196904979151437733868684972656015444982262027796799401861140366107163145441258063695686303555606345317924671038059985859586228840907636856882336263566485774040394700114537605275697188203734002918432165558797591380584458003891797264749878610896377623731929464480171611502132942528684098272061587930285033562769870768058056931955945472150313908450408139557100465821775714142145045967272856504535319484104544341793546104547200798877723131852832457063062351931793219861192671369012905146225955820300597104690145636167930543855297828490209454258228674433539473254813123474874798104310623481711664108639246495231354959006838913235021264001774907193956039763750794875960138927051055472392228434929026077712444470837782392775735326859607448672775482657635646018391175579352438342540735709164333092704389318502947389780247483148389215376794354627497657768897261194573928104332249567980843470553609136151528865848413738746538170170890638756534775059472768373691303127504112761692173642130246914933832903339825074658026886346813301327474957888865181913075557738512413559921489135803984604677510834563834655014303777178886481876655555525138194594327171600031448488314409426806885735471396914777769793555171381707316769541205806606782662504976957710110261392638883445898296917647208337757926846300128590123965292840228351783514011731200041074640595045412616089671994337108403731472291374277401588489631365104804854187950243745519733520690651102708882173399994388188109233746795435498879075136553443253514188566560619488043458552743327904242929424927541705757792860102107195560918810403514733022145674466316789474102887423550536536465002240342136347579278183296032555120778628285180715049203954108443193104905760341747264767816254869156061839043041428795167095788289600251736832864716291603664703862321510691576011578969018310294872012037851079087143140758784991065493882686540459270518759900987499975820296839502032109354938559020949155462512891818789243382429202393578396302015769303741796964338997057070676135762711338288785940043287105869855659339479591597986838798833701581385341420259721377848648475186964495016122842476793701500000242009548857024177482746372716346918256343616063188090177946589404458848150521391472244626182997241446527278566231540196163337780838877141283937924666006319885202273386077915868013284499793313265531954428520122255406283635972907632531472540054162437833757778741055833576503615161987655259609497227024253515936624710156903212340311216743345748206418228213930487643409779382368571061049024658846559623745232217359650373709941931355958036926154375363195234167429105706385515784847136408996870039943862270735725494671950425677916919338174064481493079840445872692412999557847108298520006992374776215780569964586278350652308477513199616161255813429001194682942020945974622379875709389485389485720133993097880758035893613220141923847635507340368197873299221473680485100886722662998697009973640202495898664730305432701545120421277912668242099735139349554975253247325497184522642891063603686181025858486711513129221324314198845805978214175748803190262339435288776434183909227005973674205709392561811704669838006182405034959172699795971506091096320682841374550360501692858377635947579844728106287707853786377291176041520202527448651769013773010673883164887354622771673833377927318642809267020235231331803667743522436843523297099930324435205992445899792785671629832416794189500486874578463813170002587441904969232667479133541659380763251633827884867228934592077086917061243925258478559531392956016135283553430345087502391669590323481532012033372468417478736871678809714663328503799270968422738042064631862186231462412178568462419934735352413882140298344012034286284234795686004797851101179178031134189393397267079691064632901263677412467486624058129659346759108297912350936313467623078066728121205211805688456497927016552500519141047363060463035862390305270598017145324678807104483005793956762321533621551722965668972552553018971727012630462282156190057218404656176234214892845890234922019363518632044070516862907507711661082448973418743752393660821740566130806989574493967113603189891730367412728062664855554882435798693841419311491113414848270334007358848779784541881713293734761297043099028480699771842315995865510860159867917090386438729256913048768233415629868749081408357298381123560328755262495090997895549997638631975026063111030485385471681448212071521144743880929366671305097091724711083834954388671963840435276375876923417465934495808488067805804512843333049863068173279634706782340902019443657756700366749799104806553452328593704994593029826727254987157151333468839738845806493471404224742874947110347714123043263545862383202476074402055122668427430649989771064180021918447040980788292710061479261707052893181539126887387153810912556243186015067368936875998236043636805225286409007755051475976253695986984791114695504500521866611539934788089380582044844232944644305866889975954912691516563811351723701021909989283313321182613292987541408905372656063343486592881603414778565881722957007118333587847123228694396113605609617622844173173058261327363701227287840668372355373372167256226588775078646083597999823080283920939106672644844751096453278770586800331267919914361183297845217562936690239399640240610943789413197446170830013090270564213351462394681924907443040021590411622405945458917461011859290205164674683280259762065237767332965907628173661464828767628792325576706634073079265891978815866124172636535244821788148475725808676825700063400264043741040391697466974152233273009551240737262593313232586999885205025328906329479291219330923267868467008922926134019573795808221380040619230932801497959739598073754002024234079539578445636649662132300942587388832552152581086748896176292150578592385584215411891220916456663941835376125321485616672323467180934707246843115637337381073409430290721873280500852297311149404898053922892970947800125275723529901420660875539865396810216858542796179623355881553536595279451552762987461266762225155987750834448626392228167006943149450143780131086332011678519786250562466401957849826617912242808308231534978176784438822944661818776834289823274188872769852136771263813896049651971721521443689212801905228509856455653410236382193422972908932669909025949212698143474563475141739340861901745725445105281910941903761268826886012320558584044975359903097426337264768200339537394758824607272568619339563660470659570440000710019767820151430643274434994688743935465547850625760309025723746937300485413149603574678456839229982029616438553895118124034046606868395004743791299676509549237299203999869614684432050556899101731525114893527797181402021509034696733689226660674413946057979742034207110157477505973073772357597402017279162596606766584317632428233612213844956640854942949902005807078116223060652111353268887270750022904197848826307636322933086416327194099460801224257430414236630502443206705077525178449756039520256505457850673300381174892390153701288407196531379493069068968947458669313302515674895238352386348298051698057242736958966941818213835406219717579804423412065234854134537825052591819185115380273255956148372844127221722597363207063677257657306758947814298957874656277766356858168613053726007880655570539633518450457049493700096025402544355857269460459770417901196178485774270087297698832997137856769888695202257715402015419948417532202687277783578444341276981811144543393023131733290708984760073641986079391031206837152965568487844521813417724246214386588915193128553049370927904940811835787408293091995943764179089028281344141968563054612019760698822294711119844707304920328331023057745903960483804133309957473635663491314505587792914581406084502180311567154731630863811879604343069188957104513381610101152333776472527072103346176299673330878038573366840694066272760635323288540348862145332665240421955505173767732798175219763350225544757323058841464247312575260669678680642877666603250224232088924106307583934887676151049142189643186450400852465918409381752805955534667856462558127519831377194152551948824870719895626203763537380281246780030976577675664431305471806930530081371863414493962386633689402845029969417592539863060566625627631234589564608761292382644280748839317273556982940004284198722795608591649655450882772906400460341310377148530371177109870386806663234090464570685265680577730475120147789630886612810638722101695331241438810397076328871021421536383699740055274339326141563616433629756021509551241213147743599398268641830312554928430747232942056569713273216536481783324997205578502593819201662095068851553868169319536482416350964336217830264760073958144922044092497020515645710254037225621134726249012449836708920078111061311652631407090600487328149360769231411699212468960574225467350632124395392854622753984812271398760068433247745406939975345060904826903814307867458057990963880315233953847872464868868217098924869908205734488175399270701320910250415906023318989225976503824238276866809635545344942378870027274305355304246169975946436409482023780539852472515824408501393754968496822465539706136369801025827678188459749365956185597858054810708870319716358625289293493312215838641632791994451824689597845834638017012362996442741180363857825133732077068223602615895254680995878136408026401058408721080613766102921019845804806237231615455572144180046504523758400870748287610572320705013231872314527018809986653453973207175967748818236644096014117543624536450989831338879878429989504986564456917312238944523871265049415606446300371729869503696504619875951482036972964260489679636745964827049777027994664868771657707490837190244904152152519852509801111315256562520704148208686224020261687319032423816674981745151009570343463968481932199180939579150827107109692640974768446865146198510554385112723999468386858978513356669248814110689311982820493951289960927964586082235871891334852638175461608889026052617146622571942217262403896818920955928472603844104670972536678742328024302576158587185837253169458080501469395877539880052439534415586762047488521148903927290970802920151272821393263395443455144034858448400569250967990884917346318844752726649046549798648997165623374111140552053407537994592526024546810190608130076100520877642892221115343655290229196893638698290736346892004228795716426420432636132848333060384862000005299580337528721950763590508756438660614109626002754548451335064291587318670963205936352707696842969896515694872300896517210274027962866517211890843487946462964728455920076372476022112713901151379344549085589610908908310634900230854191228129161484748246006242866162695719032708843814850374020450087302587273940902497781617274852716467897140048554560789620512795128722997302483519993274757651178640584736755363182291379348838641792803707022737514064274699515530783233419572567460683397488585396603202879067828246041479680676791160512024633857475707163361916145348224879745284141472624345201318614961107232957414946118762464680317992787294766718445964169780141277519229861181236612806666279812030735559530635890344576473124299855150508309779395442567342524804310179420083695510371982153149771160237193534474489955425951956808690190537778803709042528215301325499817446071369717328457551012952721706485676608594533179401907668785157230817932167732887447630094663039554391813701243343525831880234979287449710219333686327497472031655473285664169232984258749123513908670948560678707613638452780973237929091602518162573046715544448967229494627383550404334565197324156975664373779646195510676424571468912579797147524343568276236472321916426412560994073121290793372203957384764471527443958664592633859475915101690474330418327691956125583623536501787553502288723165491972103677722880281941945160748539203694293794812781000341883811396683368072407983947759829876771958101123346717491419976382280245110918210416588232104347010501006421276053487597485549529011003152822513840593185162896122286190530832435444146728583802122709011834543383397972582858328531527662925816935445738466919387097081356981492784786401868498727026488605766497017302491390178103981423282574677636438584536627231061726017172174479652684994688989303104175625045566569107226523001107530887462578160027950618982565329357021967318164066719328913384453717684804329176451691292441371824299798503501928251027555707482711319595257539112319489321344274030840035705887670337291483827894383353383278878064499878049709259988774418270512925324113187255641345263415263946918025010429558924807425428902338160046779928937262446633409918018969274573538510053757646447345291803552155882229461272496176028802281571015104891753443427575607483005554628024618663800275987227258416573514303209173089752825056490859275189757481075848693816522312988650318103122364256950664184084293638319783028190255871368022479894371021133720031265972197850441215677785989355225937098015331501825911316181360378721194509435391394552512110085529353666050261263799658456377534532043295768119724918652925742073973804130081810003621358899804036851037166651076638622315861061302733913464160804374655587425638732144843195076089962215206581263153699183231446281210347417823845277232533883183052048998995446417679559384382573359391141778138812073996222600763420086780508784797641381597657429931529497879682060268403173252329263017385241721146755436709291770471730722850041557072704335509115294821685106859168671162279245976389294403850624958880219248322007071570441950616109278859028146475110606827360615136513635240681489865996009591598103886506462314364757627189293750297812530318748670692727343875586873040830662205423101791048313314698592765240046555993803539394835430158253555289228099555759115368106820794661063807916743067957382963000620540448593498434787300356352446100573638115250726149524720920177403273259208078271097264240708434968727869344432955988069101561689266958045192360103249317233492679508533810260379184706901540400987697749889904044777490365475547780819591579618296004313801665473462650164181281282701868711337356763405413611659187867353435178763207879286228892246368945037270442781232520180488379681029856516314125463017445422066170494907942694554796955223501788780862645172855105083550676897204287830833443518277821741303225676550160289490556301076189517102775964142244212288015439430571269482994699912642138406469577841090116540900058971668596027549066025227487256224072742571603598875642789098912875253368664057776567320099629077761713730306696390475674363593512516232499933134759932694634990952538292207867385173132140646579536199446247525706586634944905668476070099659361425256800578959634847245939893525713577588299123008433118404529028775038252592368289167828418260591061066240705430740773951108610911977909431663068560053041919507664737632617809729400109744966860128854494658987870933776847897127834197200477223705862700749046989415053491963683556672790924680302369933869043344379635764063120812049105747866430149172526612129706050905311290926391059261183950466979427047885241025873389072352666249103191075605114924371561835703899767433796862168042959736069766463502880771388553272396054717034277711074800995854285032610911370730255436273135597751539259524957317131307558264242179938962655800403387160052594230401874662071458031623004759470881442149780099069916955736862608498267775702211220396456836060586018508254017759371726420640029292182742882162748354909785664279532603957754517966372347301721359668906893054631624276247821779173328882523369686829096700273571910298838891385166622397028173151008125958868749747664892571645180963220018112814942264171857456497026730960978958756504023287626951816874894335978387368866108300167704097146878431942327202152742193860154862480565406123485210959268860331026007899276193770625402469118066510777642179614807983791287049419879812878383631356938172574932081649380399772365522448885147024895899575506025493784907785598286296060951176419072654478338329283504349314453499431516953632650305386797320007119700806718477442227489735006548680688038674725038656369158279290167185631350656736106504681080966493970732758763542722993662129866434973195300290501908626262913565141517892777942673677680060444313309099999739127997753083967182473662326111686220372820170778986142683726076939660430991635038873896899420945038974051910175985541312986785996819553532218881344064945215928687043295984144656274240237763424869323858526702106588120289786919631570952381081561979884882590571164251172983551169386797949123628242184701506385998299787118313395583201433541618215024608923243639075172442956945053746471996827369880012159700581292479842627720297690044982725811321161953835159655229241214488944714205223891849554882761636685195279187767468769493360886397512481942784267200841418581547303805525527957762085888749141146927916647412643425276608483928901819893984149407601400893341043817566962152505503567114525691168244387314429275800599709492777589811250566445380188374231998744847266571644877136191292759070952437248768535498808490179113118673828091701211145214632912800609925203710887791935010725300249966324579014651391797342701795853689797249306733794296424801185196907438512363191470563961494516987648455613563699162125455963489540405537835441274688141762650455462053592643310780029361642109833725350017306888880650501813267598343152294349502547372834085412712552096060367277990278687193314356864829425993789588094763512296770883113791582547154793461156735828394647443599273319916609861780870679744192182750053808177259506699468098501177005058179777543468278267991928735517637564200932847751844859166239575478269729719294344008458180556732984751451113777505770124275330986146445712029917542639405895022432510263122121021693994238555972643278061420242166985853057402958356176727037209389056198080335809455826885689296005128808638281082543952679244335795581619969792883687824157938917335305572991963256572442662967154810351535301789508941224908307039395120660508607957301724240287975457085796567511759031120647432234065979148161736553823864184394908673000178175835195665478764485283994939294167316540939341225105887109359893763599218800200582072158870011718475390879179376259592911981725945939565959572313882663515714056758258541962828270908397474920165182567733135205611343397189600059373112346311389345797588994321411746993551063595785514627279543929492161701254011360691883585482327055909890613872102692626255569062875546146237227097966465254446646067476892748581569631264346172630505714978100490596716772344820417489560696076994445043611848345192497353470905969294622191082916615885734039686890490261072525427030050761700732177739250549792695537361245536133295583014251238582286835737571205264559564966359385705336774489056894187155191070116066939760024750565833317087659702967646488194432059710637661069748359094729490060234371647522955848250149632958325679567842679050121356939786544635784179861007252224593758482496357468295362546283392164543603539587193429014092793215381286159581940662853604441108210303738227213669274842351180159716282907384662189854483729764072774517357169706142641268429257772565195130010750750235742564660812200125914480997585570590537602436473922264843354004605077714569647947928343057237114479711280237008654609129363066785475227569054164383905829177989402822815146465096372613933625146014271651492230073769911403052063086091970928562445860774327989428220885407857042555678596340692221465399668108872321494013821225437038398011756351493695908727514126409501559129932732524815183868160974683035390283904446735184468768609615403272334942303890634839108750602933941623202662266691172369245449399951441153442863785086894052236782942346309301879989185252694290974967472506444459953947123637241510846100844060850783953901142497520524795374839445504515290737859170423713047318265502614249612508130240649567692930109325326707929108674736567060044781764247251675237492442528089938855046312792903066450391804180368817233017247107323598421947562851034337574185263136027063268545285296755088197045776450183407008152843815987654375002233895440192377207603027685096853341371063412378325875760503064363015287316939828456785680184056542275833560735475573566203532951656113875731459646861084186088604604214022809699860493611956659331432279969200615303518310550061219683211171565242650763850746817296638485180957555848566729251559272692572238901569049037986717289925010437358977779991069035535645051424470415785647371457603941822406812094995158595842908866430140080156862050856323459565666520724835453162945981498590860341208947506940610970949197763068407325536970431878978481379598318866886294169873721884718693510492132573764594556786251832483569845614552666556227357717529065447615487373687028910632567170035165725099393066076964323435362240608194138851023744372736148105396279050488046809589596862108628148111941911333954566973764927309574283061323414057457004026237980478370486682903289521551737416840477751748511947253842342896420159090672131604756754819721990547233760004468052001419559681108375381868441118547507310316165728104498545752008539223620110777281963679026370460162427525447491965373188839671403896218837448606817206379579434543036569620839177077147285665897274736237410087843656888490502018144474933439877555126242493597302066928491613852734042894904401535223422468696191779555303726149585231519595137903092489741973487489654305908552479032515866653111776409979964741536713355801682449653739129385696479583957181908639521906161585114488644337056089714770732214764213516858457011827903225501847698940116993555336738499644051892849357837734291169086929043399167912070146036311022465606249592389178358646966460297445027292686673249158233111978734113882340698035947047725273795125712373672959468434031993893358376320307139239839154037427998122211373951165809622640616315394758476887796363536570900971378818618642801061848690201400841436729998766294094177775781177204583373433705504863442798244592328057056841936675093605535122138770676017664781026961322255860535408838196086283477616052629013640076170397396510138685236887704640854153543682064149698042117876058829143757146468644729734194752865604484835009894364854228767962850661081765564132110328790484982760662069742503415497994004220721702508613148723931168981205082579000789169412896874316894903488896693509824243788911616556381435927403190882478917648867764046331673059361373757314082794516168346843733410535867309003581608445640011882337210748619374525264116165258925568371949693807902100148277485176162635366451710550492543270344232984626688388015231576945392695341073139686174960523500419105905686300605750508971029441942059403005628572551121908618818933731985560353851489019006064799129904781928423754861277759829315326666664844314758380341542459220990144503020079164605287198169411022594875215322934843720149011355962868398087049872226994735501872263184117536565649444217270981555346127358459525830204201710201667420960019679211728941251228664709638777051123481717542564783987956792351517265463927584036854063728394981172031861781438791973690838758688975856706907164606160719870135259735908684077771677450381333683688815766811740612679086154886181874498309709784792113485481171552557219225494508108126091002387470699997317390614937614488375142766978272426303057356657255057386577458273872190739286963868550308272198749464878972804736599488486061863753267189037007075304158472465140741933623785424292880581475740461714901175821352684821990776372021124719538623915435969884755952144850340586881362744523645687966815941868128861020470800211648423587964604672893882458476974271962365512210610419582670399378020309549352803358238836777598209274538969144336709992348649731187905489114423916177918609693479836232457170002934605171167409854670331318862861785961086909182497409318956453488335904352739497565753875193279944172180445309543642853545880353406430994781475253550911528217985020696585778693046216782216325758939150395009938948681803649591022536016457201868428078722132860909367246896265054111930892093416531205647287308234557753420731764168104938715596111425143131227376268728506392556794289248908923361342431397997676606937167497799483237612494486977495135326217214820201523025902062516505321950459330704472896282165708945533667468437823781778174351217831808072182853853462519054434606538121579931309065584951265278576348867872307747562894695464850433758929198628193337418876892625244373939200811096448442462041934129477620272644783633227174545141867917028132578938833291607235593197647098439795185427191933207799840560151711306674844490441100659944704694110198551158257965269165403647768934249159951502616705734836596301872735782964627291360948128794687657925977591879466121456390610801872456045370834759149843857319531501656999008665762910580003741912173749501743183408714907278033731573199385251058679010427895049799632674759397860491816061310052752109738009377743531874882588454040485947674020487438052060106035445094618241861705689649991806700715088858269077492753980180036614917545599539585653922291802197470501495762695718718094397209224775367612340235841631609047795422191409528184492000180582368813664359683489332160057467193231985376297160354657952708598152560108128186877230270229531500568569056306813605717241073726636680205331722387323700703739494836340794055241054101369162421614828869166196667312174518367170995116138826329055427242505423364246617652141979328901479423462340783894724314142945926182068819845481250403818668550092460407682661409606052953247549040516142392531982218325650300948114441329543686246926589220882553811985559895767344839649227659839220953672431633519367474159876876593719390747480721582494130098169629963118474474267919236075196065655688022734311331762708703030580713302997302306623114703667959189341444334035727149653423447672368614300424512469638653381090551284938954139352370142202244926186050658474872706418133374128209091201986006882085665487651765737787867655992197917252685141487209527092308403571508439249299569240956089058726240792298410473652861634923882166155102777565904396360819907780443225695487500757050100126679787972227384220724245122577472665298431839549686679684825999658806277335745246906896937500729438299433772742178659703352843626189726263703396610566269745622253970086623391541382586384485309946131531851314483521236637366197528824657494697839190406142058056553106116039873129538257638829313484341881461079489866510233369428999616232134707517243071203844242815687534826165124615517817283647503194511383735067564108244653526346750538943685029321832772775924756884371244328311046059782767367745570488582882949072467838792563912351939582536109206438787171607131125082241712602019977581283086394946265708930822965175462749421430584428524705572662467345790037995089434454557001584980374412622112507153620407082388865822304453416276057672371432657774185201464576785991065692771615668609098782037522391214288428146006648169535706572510139601000237961156799446744551871316155144863543446714101845778490235812037019430478763059040947417797910099725498798609966140294968242662865656242578917618464520770740006516793188474999295055273030486355244628316551778557265932295354015218165150511945726586074214056381179851127253898481404804011116247697261667271250152007139478760573662347194871861865722462137248552490602404407650226716830143757544652028502943467024347243389065848859134392732217458643057482781002426285975926062806054213751872965071301254076688584223792572345024279332483778023431819248229640676011493923953828432124755789270040063222054522749888444125440606379416195811196805793632268471821387423346218135249015683139613045739691431098638669718793722306503855332373544744145615512248422834980202068615759362214596187990351471646441668466934236794219322712748229294579456107115056557875929818761989820432810693031357541061086127554416431634529236491292675869192759338382822770642248617178509120449712775789810832257488777005784907758925830818974583154356110664907284472173539574784116590619453621678169308034069846377961533631547170209090988003399830509900374581241651407495712146970183365284638247315191541094901260977840326292591990160638886530776340284357662668555117879851556972659945735598538066377275549787239745589668175412512518892343934060554901729449790141346790785794193255650446304651484099152385044684830722651350051495325684179434888489851694423478315130848266811956089194968081263996054291814361574319533826924669205277751525057054621598605913211463501798975191150452862592981505127630201933958206582489494296288312191756034125161781283437351457833179077675154185764939491807061527373835017595583120897668716018844519652768955289741993323239975567875601928615520104700828947796010353859428122417831102544514683267860092965588858679296023209683518087908165608429027352262125631973852934645411676368557475300890588773870950640910921763637933207682396867809429761244082051812408022862036192052686318672689787687886525805499361736503813978979807128911134863832807513954570739927745642583311832600561824627812631084015247360812383968865736123654854734964247806120200160041227026676009240288368028407447298439557376956803299592029483927499515378954060559865159913093846863620469702984842462295624570273187160990945640249688481355140782060192638341784773462446767812383025358834209559715070975246743563151540561220283491222215186511907783635000033430605462450334390598311617281486480262827256502745865258503457992241408127595163199727166857905669988443534154930974318958335983501131747391672031130320601162519714506315378135521928927726997663227048515951041064865981300522106280328322538862371827333820327678594974305753327161485192658884835925981968816339413086579783701424334705168309055984767092201438456255073494102490403306580341549973041429415343606174022879718650348429935385753284671584547015744321618167300539314861911243109017419940486503013173636027475971528108721991565786590039488760988881683987087357940869122765348082270598507486219055808820370633197923245207698535447909659070585256087682058633910133800545278235848794369123513659551228227616487720432208093034118404906546913304800646493497217838577233432672074212360817843939305527460949845818512111725239109637455681217159931892422172891777466348930226839401747726457832216628616858217143101902370960029545180258478514132239018434165165613842271522818825149600485224794628556806013341477041904163472021955819938239581281392299565076920394138581502552650921483485606728765260420503336576573675255034934070299879199401207456570401062793576317059382330394879551607094265947780053811439633668738419441739623756293559629128472799386552926613530587446344379202430007581080818965911061216109073947166557306571125670230657776670771113730540545126501587677566138381730999306068170453550641791613863362816447378081580348941206467767129648862473612904108490569001271162100234806818254306067391057144409083558965444900699323726443735257249979253674062534978273360720042934674436555406563747146606837074440812427914521002325111100142061609809497522218112163469746330892609459367290169432385625337796729977181028046174083964531702846574581855783371368244514685268827785881440404457287890268201970728461070876209068763370726386124860524353695706002605857358832078660091585729191037033503568574562515993211980629687236219333593615433720991227760323803019204419800650557149319168770793365755907371878259136260005495925354818653703781219356132930601160722922168379169777639213094054770850191141620056560817281871633406722504165320894004399455899094964670359513583251210363532277808289921725758031395917160581315642548106833306260590018177177739557387362412883083469510915769862900670571422231836494432193253721169356517813148778524640979441189030999573483341611559165355126682177697585063932676814620153358385537023755389234640151157373559430251172305248996668088736950938720332476074797419957400815467459127190866585708445266087711612130410958710519782489941269783400202995706943029896846049970682788582932854264223882346261033333073502053999988741034407221826213693461740299466265003442042863402498255492506008750880478939790744799079686270808984797287686770600652533839992574848234930509701160567877155656079519107973374925474601654187273404889154634616988168753482838973822865819833709223198909381151817951140495416942376102427385399076505796290531768080457229435900481071592647584980107029099914752169874293932023216089194911511348059717843759045169054756711045778013841070950658664376139169752200477808697114378985826828887889520104679921439194553939867675215588112062596125236713419363466639603065395414223657289376295300424378223307134836934706072232160334221495685941439668886062795473039364255082435550892472212423678700980495703380287227153425188427690031528321148030459121816632878974091287359089608763596625542330939320357624864054040817620165098530687446135642483938843351146728106968929401372783235378555344116105969337264497513127769434404442529249775504966749293890835301120812655281903066177024231662988312901226236900764096301945563824264667689672891229891016942705557753279118046626889054635591582515151742294717298091143166224635223853386842289239111696520052681160855549355626599495347822230645111381069771487203641350892366425562097818273691925374616541367784087665718967067221033402053111942016458935543177960684996843201900253857869925760294253247583550585877679746723118896656941432055856594995163559037204325718838837090355185043716093825876893311817562225135946030185770507058782824202328405897576720929204520872798174311246060688507959658760475487825726874295462473033276413103868259381575009297795529822319684598529831438239328242081788070240868702248433623825380234937344741376405396238415960687021339734307115112892309132592781753675139114345060814656001456959224210921394737676245945262193584683854393346984571994465846199173336001688904435371897959037511222627972345095711657391913316280368839518969826027799131958439994767322021388322214085850447110068148391701006371219044421868421019671106469547563696300099896967626032474196806277309776378893822484898507304085043321030199953055878631888382551274437558779828496880573148566891170452254056876612255898681011254483238836327389515993427129136361713995808075331576370635480211399537692591200014746138913963647560000220710487385578311165210734806572125875647169412609304633970465874551666545260426401869374339026799504214809841611457313056037384853675209372167704138523126685319656457983858247994543256484129112553728661299439954091608696568580315406666164519528835854739298215803214071030585648010747623401423478485142305046215149098143737040595229956059315723214308784287441639264920259184433746024227512116595480470439991239359662345389040942662759426052857542978062604317263094852636512260667871959001041643257583384413148713615585108388228282375510931286583989298850680147350370545216620821185705713978853682001288133103442060375962389506330083484623612532372069167959851455924996166235207792883464973999491478160244612248729629983740616216913208788438653434703859507447199013128315151122476963745261605347675464988272598571674272528773566812958019238831589404895351173877687331854671313623944517139206241377467472260244010051414707829846953704019885570661534557231230761048823622494714108636201951230497722973269781415530697849673858535340092371652494223967354678586118952996329239804661249619633648979847630290965849033275280201300782565891141278367809265097884928403262199797807249452407446874493896270735677052351224699214252084251877824931853085501657294776173862810099083281756440230506853940600504811867634145820620266032905359931001523944158928474527998250203424512558915703423480429675227321870273745675993226673880549037318848252865530240565533444331289101170710984088118938396834892449424733743856574031275318395256398611619316920538901269959668510904786610230053196394234181179418445501546921144852690052607675162648048649169248922963093026523820719451309939058877154440617598423408439510137124076501288871083820661267347052954379237931648279960352654683814358799880648596858494509590878980976746773138888151990036360762416339191957377906070976182117042201518475212971236488771620764286529246803192528523257665412199766611649272076557899443427609898346850351547292639068988405689432554833905878470408071870815979538352649139810021367737623692158052188100692320565687251553426582554255056706157908610511339539888784437465053402962461584185989358070898132920326891765384925589692780204683398447259600497452708612651496871534102467113898504739852147974046287983875151481277507326596532988731179577455551347304682841522644358392208698591051588256481639705095319214822532197018767959260995975378522049652038397614362087349945129565856542938062148402838864860975283142955572775782030877168281645125036178229026354403593436648729551516669427659926511277312378965906553616115255627658956206476038521451280601876110066947754443608825716326831972233989589763265166636471368588930857247008992324635223856604991725511968797229990355325250695547875240720572884307545625528266158914941479844340863273407879977788830586093504498374231971503033130250440283714530932037266769564964918326389576757921425875750660125929872404530625599194435957444349884480032100534433954721401214859229369071375473552516678677342703057549481043343058033782307765882633934798352722973408340898001156128878908513444718501517349612095102810863554973399480756827826100682562692614932691164053642219080931586245049490963570410780255137552531406249252205083860023552075271366534009680069190779055358691871095143053954848604689908736616435520272041205548407208628158596425549673085792512225473403706691988661239372796850809884146068647897790219902332021848885290212873463246738252367452788476796368432550478542267025732231411530878425816839240952777381306380404835828798491941528985344385517848140227413876510292738916524505415393079247018437482014296558318969851156985383925583413642084487075691345096455756413634701810161714643017391269698865246335997173033447903073860358648513526045529568049363637065516655986921902433393631856773802490026486875139409343522982883620165409378827217955289190702978484762697732464561102193092190399352985236479210090311058358548429922366948081976702124523227005950059618603479521693050326618089010898861608558042745997580815206637306247655535592370928720383542683088357118932432641870898052503571765677401450652887197676983257742314230422109609939013733201458204885215120607746269162440144686737037938503941302508888931683294729683563619803641490018376097318150589952547681555451558556635740069227614674823880123682602319662612513635783516661192261798821444389686974593332992607207643784417424658829459305464900785321396288737286807078175619681974306145945097750333215813061401763842744245736068925462498894073051251856125069830328861137688892642717305878461930817249657868258660199177117173073399925972450119570524117984165373425875772658195395218728170624870812239315115705315114183556632316894282582683063660316045698080729916416497381928162802622225305167067016506493458253361303838870041418005665652033461815312368688611593613927135685961792078088964402288696858087181828267454698861316879848624922923834198801606699988048230793034062317841191638183894231854649831085990472531862014797010889935120280172139857823525239227053017331427187767467098264957727913749369585914023649072226369587483914424416618658803025137146863942668931507825214312820050116160079550806792602505356055954646853171800612267849830830114623701052228716130693964000226486444335436303670295086236374426510806108593739849625756466119020294981253089987353167828082972376395987018830659750793174573066106453897607899814079495475198166690720609602154777789921287940362931796689749018710555722183646189717017894202468775554877365683691401248345954632470566784322709583610185652203999702667650517872440102859130074204349783090761980365590897428666142092005197547741804544346904055335961609720549898642007089362990974592662453953348377938033003421160855138266470813262749442307483725329446315649888182835486434240375385157275337188180002485248780814598893710500846401201288703679813716620572112396070011093234371412157974923473783971898787879072717221463646670463271988749780702879665826288584417780803098925090202561401266013657602401697955125255051082141239049909364293083676288119168230911497866788726697336635625075095495462791716265275676182113453749297408637486362310930732878117889949211302019135534069364567842583206643179296549886845134648931102516409207960445966907114200020730868751794227093630063025769060675605481097356336847644328088428315086143301722767394829309058878265816332525293333534543667566413717055820067317886608017294572528086225902024447243718024724177911461170390851057628770104171642335698218435786782678676767038132389072961856254485364508436518032090619704958201372626975869124044471287771452123713535980699254769501429682483071924724129666355217246564194171321245048988309375029601378112645075467224622976156990772810429454367890830196398049538268754625999731168779836929269590680915595790328306805119196874037277150188593175876128544715214755450191858800116124322269422201839715169068514967876713830356856889714458608189039859182212733509280547287767533751120992472733998728151965803490525930652315716091429176608632072231699285957940359246351314781254218101793685058157067413702562783261997191853362249966745862628874512063149676606918764482171003983262996125186035692618431703351162271680482381664546294811740614363307484730177313758783670330413958910055734391908027211501904727445687436934714152467090864214553327797909441367911150817714320695507554600093628450371776520057433131185782188419568772696834911841727446754904359180621201558792146302207968658632634455807880042192940235704789792865982348161934859043055001478837250294070904926795365918369733746322047978707789554410612069921636792820661112429010164971560900881451233536764533745323893294704027717383940904114656073714607451846508728400292419429544175001702617877366892590823463946305275050446728787546326672981412627229210875020322384900109570992604563658773408662760086280955456502679689557472916952574158543110587193621643645605449036985349013020354484990027789635224042270864220100606697745188727138154779250442306419757809001939808773909968025167601588353068869962569159286153753639995068420659556361608408099569011820291302467963221643753305628479269526656800537590939106582282627995482779946979227686110828956457015651774251956598407886474171047241620891630754053584226665037482512840974400185668918272631727308424754955039929598805894048150723692198520798348477577492971993843476444919671701891264979825169203703253416211925308930815347808091283483983761402734471898534984132564666927855849876663043623726658331709539589901116992873896600478206907071695497436975674440242300467264578063644455210917607832056713939579278324875349498049297513726204840970177787683181913653306022394189849302739328743221137537396682801806026839664377185034139604230801467969816404738702596091036872315604126555748995365792333638934557032181119785785210525025286456904106152027521384330244007120555788749005190176866798264439195535895542374035654368487777136520806316277814948831774622861928464325533622965485677688572993256895267759192931972896903022324270600468748492258043219839464423634374363558284317355594675179687586372545062161589946349252899468109123007448849011930047726817048850872825400501586826052937198024061801626222520535085822338369300321832380686953793962878028831066374008744869687139481428758449878004427000212751882755325378635174407859659988356338800317351077667227833832709662189651650804540328023937067452081713784156299648759665187654027893006411804211433442448158257028962891598589143840935002756004284326416551841981387016731837082766149977471262132984130598958096088411413489534270892174435721756743378804485850990216491744440658579342661965009052561022929520148375049579451409129412325525322074415329413407240852518714486155184148011681637009831445153929079205964393431734486210405182918885407233304939339350201315777251375685855575529730888536162255177361516056983653437966506916053656658611788382547750250096149064518073442805643064133100162453030929450955905076178886058152678899985239410101728795499035204788503554711136998318125296527231776721050980743059780957174611496262775612522475254700002868786492931657099769311800478499648330987563745856163500097342055657682635669323321298864191220103817816397920707323411619157954951267727671673615589434098892855739072963566362785574954615573937553456037095353653262754342438949873564652063402998428238146107355252174518913740602713967270033133870380136495486995883691020372136449428194962318243419506246864941812195952293716647536570463773841375702536081273806842279928145256168719538312350747439345226768258187610833172691100321649921357266251365444323262726500359083389332478222928162788141253721251349371548947935812591041134731600191550127618930607016204068485392231862063212688316613946510407813423897750263859327502234891729303255405404311396565895938079104872506597303572893746011980405109505947518896089569908096775940950819464839330546824536927895609591501509788500686275900894384834463513805654118227734762355973876593493774553678924477276452825145564343491985163849865299240727917440389756319922781031870089364042743255894448289404835410533063742874104119971249423439357848729560389465655097840464596784462069238963955517911284179380871289253223633198730818878671755440613910717961154207491390364761914296953955146362917696682901836639745171158658246637171493084872749424429134755284018675244953097033241477096590313223750980451413463387700765979051081357718814907366786797561705709714511248939214172968721723028794524821991256614803210579702862350892176098214960219122716085505461498770912926791604281692379716161463734364986978652851771192812865352674111969828707587447327356369166909588329010940336527428298506769140426878682513210726504060851934559787432779577285030871926317300369125374873929216581795518711316521827260903724524079999734316433753382506582119509028414481150293815546796096725767290548120549811545871177894967863017077998878027041823032609277228041345586765456592942822489571378365697690017640085250398405264934069656384491080610391741692534542132156919131051858428592604552991498675552824704531749391590689628166122320125956422761889600755055901062829391092099322415386180248792420339576904049236978034181405798142386166182790480906596031719737028085843676241097612754302660519479008062679852774638477133929182106622195626463383243139967061055894876275496559858038447218468526278724040145761697188554835609813297290287512169229263675303266859194723176627792265577646801201303376028915284477661678483166629193672550906627988050199957581412926123023077230301649674250099092741662971942660495377206851077291014234626705141414332259405940006441228638435143609741397702291484051103849763278336329276300579114765579600287242281733049455626187390764400433055085465224502239674249624781967556305601038922571032741967077137906097741010224376132566990307002662832638551161569220150835039933760341821825837373216163566314308040799528946078860242580182882155947287721183195741149562414415861893456990388776670579656011334303679446229099499233063877409657959976325468249930932809628263757314907571937135045343110878371941335714035377149183214184999481494139112482262762537669886367034536006119599975386759685051043755688580485819456627717621076353565110392482849659617761705551183606305859850431519981401118688782738979677961066510124456897369832345638765206046248450031935258697160482565663703400099857797841173101966074952834569811835988938474744698229986617164046914067481181141435723444243093181227830825576196633442661830029900028550034142875360236224655155047926446906507874252732210996550930592901368916850323579058906516702129500582375752172693304801235322842135596372394284894134349055854638453614203590598352988068413843375290922356269531308734019543976554520622655674204936982898668060244355087649990440016415488294788814403276829977738561000400423713065286414875283539061193880410147322866304133906520688141244165980107824481718899599189826113372189489557813427974228848144093355016879596805628375773622896148660207768554747951941621800889116280613246129526393749942173280873812330240708843624585048827163968226851058566107568535848091679319955353812045590868440141267507839049789224470265123681523704598831484957266436082077009795900876655539884504924251315801664225004253318062949162167068122841071347884453537524479621999001820834061989373983565820161001957688204905387447178583454785923973392426067754274724025863850265022020634056045962277106811488717156792450481667005398273775466384312156846151553231062023752885280058412555343187208344151243959527801239109611050189121300122017310619315141989654384606198172369646689438968746683008388461667637948109491644307457312851191839173907035238069948461465199460611822394567452701242247310286792263439193179942947439011727240532572155335950280210238648611242463498759544983962763625200467814136189111444225555665763776694119287720668546902280512853306138178286035142479336276370773909510730814100283351004362141746816002932611089121498173818286874332638366864765186229040552972868173624693867624915672767703899150874485197908108146741487763631572050443412104381650027540709309543073520898526367592597842053579141417141348635576837812462743324701988344009637954318912418352383993325895533840565113209822708802555313991271324375360711823348440944053838177520010125172068740496175192948001040919098432514996269820690870675401137448336268485321135185530141316103440861756771989656330818777550874800535467655408577682673707343887369894630206281320279855135077319635269455101652764386311440052484869835897265254172673229017045590393540594668033159224851277504797057039665682128000957531946426541268809644282535306356918514918346570036703234497255290082038100808137019643837138527772485987992152841853971599885318444610348028515293085062303867842807157512047166607744657128031351065350709006031208000337395351498213121409798500511543818771253049941687568052649585439403002725997511063353822661532282130422717423524746385040108715696742315501792446151298159965919139856817328887192821919125681987951390907690045267475269778157133080908648959599127304204732872004208648130667529159977699942003744675453176475100550790402862387364921231338016505705992217663286215350996674835701882326344345939372533642688453732945085333496185389091070790743533679532339787977423626760818122454731232967811639938215522111040390771614613509623175865224615127566728250926354823328492257612374687381065732433500844171825402962567310735566130440131230173551201513344094784742231025877238263592702042910666944260141110017068831833064625160731329216756522844537926137762302409131309307827010085705544513486366176867059705433489062611142084774078022417692321202718507360868370228866092930505391030487817966891415540966448373881886442779085619008055808628612921206711165797605257425528711499345775618031834214259099364637528644872708972550197024459863904816243690157372317135548402861554413407899874934576726898778073027673199352691250357428552392811029804609235215625631843145371217886543699161417569406684820761288294166354446476236778068057040332655524024142717174365724273625938855463731871599320717872107300717869538376245344631729676741108516231797767095671503236616808845848564093944188778969435657545153292824215042430471545428441648390167598665268427785406465285291893374022141168487337882068327820550160985800572641996054837716158540485247115375689328099609227853358608339094219066827931279011240520320511039254815702185202202696220209458504187639859534430653686770451185243048801848632888444073336977257378794856471795115554119623717358731723569654271222414830271232653887183296878092797210798337473263610503259761004420034298365666445974965857815353053993266795780119226469070279471851073942133054970294995234004312411134548503456670688154659055672466791811724571213104444906414976980429449083015615485483677823581629152562092864836562158161544623481911191748855512103949634968658587660413687114236242877026289269349462599908405433331256964023263822268498675325954459056781022689735752728249719209943027047582086962916766704839601144331232116394933869458537519701982301565139831699795046147671642800657484744965578981992552075295661305893817240149730640783110674271139828153607330935030296159914872117475712284452941558148004432810206377582137578825633743553019294285090351016565908253651278262655502661108714019523041735543699291224727895308153845277908223661865790184194434224806896043255875573472002142176266453635647197171251433264419841300558318682008691530062056446621157391433562469038768598762351120533748427630652295002100824519041663844180785744336609120553272207778035199921562127892825016355599659224250751732006380453931703679902087075910170148021379685120455108423056123796051410050113042354275944126869455778348836176944713396638675634088348803347247741671531230779212907769525318580704082321400382626149420587465968856002993359266035082584016809346248615689025882599362395158905426713085722697982003003420965009119972391305468186934887605301911943346207552371039383399784259143456743672859064007655270491368210975310594371236908556511467654580814069447416302921400957101368361264815440044672251556336434500963764552266358346459619346529181842450062397733205625222732526070603026409277640496978949085740152368805027330443741261320534731246610594683286156631667534289710315191006157962401170448415021928465328742105543454850772118247771505910611322526701274573011497552601598348280132233538015202274530729838243593124923976119249078158528175718133045291289543504222507787101350531282204077102223036209145980547370239677644906714262848592531946032466664908477791398069027302765686565074482470937146767375222938621969170272676307539694675667066768137858116537119490990980086059373690795780603245121023333979938804958398059689049803054927286322100300702862291705086240319263409913838489573408688185103919272723656402593398295400560254277697622080857758696104903204757093790999012486109165437524240222168500110163083039730164921196172912270213506737916747085238217464650805753430591080572890955657686393706894965786337240916896395761121047106633665396136782230373533487249546678744647601846417678476762062631208769099613806932017882306130722533854590195685045245519210718118342870181422057511842215861689671240703339321426264510789456882768239315469479067190683685368026009674733179059784463107226075145174034822685645701024974595988461353516430201926706573630076707387137273994218060649047938209863800590444264373091584746831866317641929298335077939279020393123025365027738735501477505564669177660509563168029995772803102170765297293269520950885025548304020447727194264295357037891772887811680003198799474144533964868969385890651669275614645443821108115393032222829011833596583933504408408604691360666445153591276434514401382470767367422719347229995423931556270945779056155402154332795888245100484823978231801762648692408626601368168980946585556024830094470964078062780593454700663263965888387053004589893333458862715212943025143685976976737113573343513515352610745868293213280382062571132523994306721261319036679495161755033248019414727363784525255038702942589336877534281248716352031912671709124393868740232399157298644701000375640140214188032524122215556810388257383407148139909416350160450803905893887017782656454355006804787132789742731476670183488856886071476220622712935070991498661712312425537118693707152806546967145243826231347740065620580538078219574534311624749787528581961700027070824738517260615599698061085807563406435267433154699171992590587824295161662887228772646951764341992802953530973486162120354132286524894330195701821684606516875739328155606242010234770463082363856952274567504913396822141612593600310809033918004287398773700670649470830543904741061066933195430771961849279675858961922145083118079367300903092034465382548256951699386046828725719986870809220299870314648237249000809456486180700947161098564940145617877685968923818981040115979870590856054297272410666812935153525272821242914880006805674728170800056267737774423973528016981146088834480921153251851663973359409837638921399944056364242901794125339981851930343023292442397260699266490324452022257538295796354235525935249101961244654975956862010279133073785312050586573162354695755574279723271681802088097722537294632122945064018664753430716180309787033381766007289273239704755876855489017123795264037061833916924171885403721307994016103100958617080883624436695330648759752896740986981020465269196364493627211054366174533090613998577583571068275087946309682523520845011027306245736316041896505054684543836900552355879337549421893567850895767303361017085572650834297452012074160773917428752851640118506074782603382207179641391789634532955502019204075675607264168558092615281462186163358561042078765306575426922179885933255327427003760667800347281416315936021635812980576009845075597834799812290429298044742111915313808974698765270262591263034609309902500184588440777479355186542406900370692796573440072155914743010919594229256845472492665542796330831629847165752656032057646559619291069751466847124449636239619010428390508043725216813689257863825340628616769636369823518287355755746529371939875456242451696721073447222674110591652549314753953988560757199246766794070788438287434697210874976992825843406650524134072036087935195289337710944682890991708384205312037797763165410538449766266966225977098994202933869247661615080755521426947653580609063330218348343124034840838642081556297200696273594880121761920105296147113392329946863286557467049418649994364321060087895569104783845441703445154330543099387684204495401421143041065826408363010606301402577817710004846799657349478697800674166255352827821694693910448757595444736158019882246374160689315632205401322014913360063684536410594961261766669775374526066960370271825863801264951080655606756578142683231627275118967817863098681173201567566823667059186872012586127121035055634335162577336235457198336764922427548851401552310743193166310835595673848761346838948428972055888099532183734677286701755824873912178276332540136252232221753068129673173448305455320235743624690563436575840187448056267669575882154994809299922182457187153751844696359536680198356250235217343886614107202080719145091817079529969989135017460110111560488363246927272864392653642727327288144461158919811255523030375837477514303533878510367639933839460438063576875806900882825733788993114858908343738326723512154550723933692090732672183022933165820684694506966630858542059466435064952848156601725625301242421109312174689676954946221310224356951046887967500731394699915679182407078161704697142932359851561798641156116171380083147926703245732280389880440852564746946390841402168292227467303563469548188594659623033617374663872062709850075939317166617306914035468619238706784823712793535759990596196543806807950827282246972383594525940137144970993590343403117955476921946946151500838908801141528486259673706027293459454150517840847528355946628756507396068022745853752850208776069178836913634941174658237188314300508980855850130666754547391192514461625933655871576862465352936654377461700543061333197590070813688753947803174550745628081711925568845861623890459772172840158204884937524932049779403558851783234802490629277650148682903446033128110008362532756769465660662026756358279246083062764237027979511241711011110059676695137056310499895324307173207875050737317107495326141608215617325660039798390215445277327710941487145480770387406809044618234667004043490216689084548778929022608145756470601138383871949424321679409140384929069290389949847705963047659668073613191445295607579599604789633901525068320041035234774954351674088837636251713236863547439965453954221454983905998452182133844385079523845020210626571255306209586713772652319597976306112704765306593805744330046603137531528804671796708585785715016965158148693007655399876744156727238254571933159590109907076339600270131747764770108387547376149679857608671546976210696172021513457045393360794575563208984947564772042656833753847557857596462138049776961391549143911277988693012715826486777003602540694574839736843544749570554934752435975848922530732033932433934461671407270816085362942170160967210793311120415444864661051984242133293715656282722002144708215991634797701853435700621494181730492567059801816072031797361792410790502536568147286205307382585427025459316242249545678820569805804043232276911142956352397733883817032845337865869388126681804514363397477571224995624361705520060307382801283674470428718812289087017208066169400834492924741756710690367452199978704942203097091580015008636603839431372981018251707909881205482621619616224271957878281435937548959235513333143022663340601932694484378783897951765997551559216001796712398824048623655052468473129091887391474649182428499766277133741727008032773329773973430718976766817646859303336460414405471490310939739054514634175490127763218419407226514642168061175443351143944859133731942910329919825110212439810011171646658646430050931404473449106598475028305905416749604276965564330997347532067856289719308532278966313223716378506591916579076845284305321928606180507254263434866389085337787478730658836708657533934925430005804960366583570296335639975985216626144688768499066167370970104734348180360291285625135199583596470947305071039487880452378800472720735017059301592236288769276763011162249955668597923943274550358043937572020401549053948076593167665428541305984032375402446408983508034289783447000005624392662538912977429559842333721316035618667942236077787185039957514521836941246545400522873039466174126799968148177968177093685555083747733575222259236717768042966190802730601747554374034711457037311964200184939019125335995790530098224090829000569804242041194614037031471380539444648696090206034599953971797830686305993132434173526698824400150950288907415629714777391437986726439481404738189680430205658583037083604508493368054959980242881861832333752170481031184890680867522042695180181301645056897970123955170354038074301330703430568031621119500132634124410716103751223849936168795936074322047343262750179030571818905899051284004556692323088915262642645649237567408356754726824136453588054540735236760568767987264673923111117954411403823449465028783396719233738434219648779753266534170565161644365229116889729325060531532865569034790531877182094529575598265427190671908248944898882445137224741295214138124199070262229486727607923593320920594348477630879377544886783733681959705373363961165726502815038488829544436209634990180437347599283141860282450708319606064978272700180199071905864532722071478955495915985240743756844690003861783469648772679047081427079479749851795275946075730786926889187934011743188353155487698684928129253690037984801895468067139540374529707201450536203057840961666802258713511254496562905732481664545548434369102673203158821450269874821651697695327063461742321150537503327094864014991406354734505045584779796224566784629116990859465213198268617528891200483971674015057577741160681476666753574561610212258927734558197376074854764435469772752864649837121714150268035251141222679999363142774914868966272534859012866046883024060818642342101334352702182771374403903045974601719605385656151407425304046943921792352603324312240182879597522650911557387374687204799580242507818594527855899046555450655976070079873403172134385977047838247244522786275410543064848548837335101195695904314631416508686186064989294879611065036288570030625034884315072780032490472767154688841944304113815117709322120884463752066434871847835023348103268134747160609979758105600768758743890883165631200640732794101069580699121358746374520486949595515753802628990944739392024033450041415346883050071042270758235730075404454318220681358746929605272011193072367617003391391107457420353843012877677413825522729377337196204014551814311207166954078868450207330233299593689938796544912547972302262099022140835662346713030559471683518734509030564085900783939072671066670164176106872796919984554170664243186358706267043089869296890641264459646821484129398853354054263312602195413467819129115052759898200771070955400079327095945254858524750980684578479766737425763205586068244041112281407408986790897888312298027027923749012133825070908146861412130755149585731309100749085644099772921188457796249539110205288688361892026537001221115293896070805402366628749026550207690511911513715100351970175062026256790615451984792719892818830213528507870125963549054520704379613093557442182013916124426004786275156648070850021172788030691051506226897431398405423798859893278959958595485530700058404345340488523717657940017344810499772835360618411587882426921382509893871187925801917255432651475098505160835847920997240754738675738651676507401796974709144067661244879460425052318962265457052041650283653523931583272191271435099113918905014112076118382899507416596600124913089004704419214612411620480687425525421864431493461059006578870899920065980543132643128453604006502053581637393168572199507051933652335750207121414218859317256545012815064005882371902647201093522803910437223344343272411459510187216757982703730269643930333663414350259256823814222906133199142192191881053148233199285676791040192868031818145853722439171223327341210580635093389993705055732071516116876278154308949114960881509749395549065075399764295707977428346272223964347577445673329773014743653457538553532313552917190721812043522448582271650888192704939558572876422331332844431499507751469836876312033876158902223537324934594950197783769990171445629463060145515143546618223068427065543984995107465356139240702063175382101847449295474447886799871899878083450434667507291376178490394110537304706121749985988010269206339369578806866137288349281037562099189531299167076459086988335624001603580607124780384905025871433190314965616339865351216945771516996790243014878107090260583083821063783243798852513785147170355452936279311486890129294973587406450807362582571504323994186400327725519105436900232972223135781794941012759451412099949305911130406949894317920658245725662401959465634900943970144351127434787260817312675114273941028969674028433514615439754772924498335413306107031310556175628153826200204508015870757636467037032162461467255249472066810993388829343219296391398895679217932116036035489109545467253477518931569807869796254239057101909070280680367003735114858211194734399034964321454150165337688594686497742423624303901732671595189334179202594294197900922724005200427615035368487398400505815767195013610778432364781969679538913692042054409541346537997138461218627604552276418288768725297099045074190624516963727303962625026789032138236133548353141067004759294558753475019360343691607688689422896757484142957731771555594677076828754404146851424103261992051727571647529354964837790545617289167449443738022482516785899885911746760062202806637318123926229053760119933890389260481796619363130816102922838465385448112727863623069649549005189903594016317882712505498595930335567428863657513443278230838340584609973388055823638069454454816770163362067645916438975159150950827202988680016307040302824164041074614002242551642919053993126712280245358086774257435212059676205107423668957484346459518878512428975929769574537004285085464440999989297705265510625492299499034725467119921316149305617433514946983245907181500992132541821131010549586633390585600580368625206608669815320540116319427266878823305749499118328857525989327467418749141041067069830633877517345339326558815649162988050675542505056837516555384290882725410871402919723049810237231045765557046420577742737211058653981642861539404857332957217393431959241923068062410315580412417438600520372723684000664765509584641442957761600372479597613280533383871861319974074807537149004461839332315023322647118843497472711928712445084860614446047491484615244300640200590596963425243482016627346237087034441751251721778133814923831355188814394199611974075266770273743495663963531479427881816644021490102892328043954345179328884060407427951846549380464153404173514498312026027570611490441571882570833221825869290278044736964676975912696983282072138263966427886358651770011549934917483579404215876407235239202567868839662229328830835756860499732123803870136280908050553512005311104521910493554775008697438061642051192252803503030188520818979658399324933994073978293840905392735344472090966942417145333082225445305515159819170715016001470103618995497061103983175528692341996755530897434816311639955143979007706962233377638213399738560910704774015790071194823993412881256729466941333182569947404927865771858821099708879923413143733610158440898186673450311817364186907851115436499749778568091198023309108465340431723522993684026856743032452404627534200164803281660284363608167760919078080279031001228283145874244901478707451890494523616756447907181513652363121599285140608056365114373515591550369113670866873832582692677674386443438960603747029292603992131530912779569344460059726971587566503713776310679268906047807563179520729357291739455176410356517266139326595690039920678656817424512986619200232928283711441934175310809840539153138463116425824979889296355595250010895339798783733630382907279657155940901538668640238737842797015174480224916972634035448039921058888406082853103624975087449490207399762439124506289868922414989366020058121777441930054556073551212930009421707792261423212849061961125245404710100716428472945752923454537052722763679554605661869355968756058883170852401556945787137602047381115513559399322000691392235863534337449912956562675282507538886927668719881972078630345301934386309941623039132667884969815299326948912721417609959460528356199481081658031379333993741277642127122961971111466930500592689972420461273089270474802639847358052741264774437147393412119554537515244904901580722501033139628558934537871165721354149864674386475594057819335229641225009698918335176468915331882914611097175144776160747764012846019530866329438835826899871823736169378729529091477964863803732640572311158320967288452760885247929197643067112484462792774786025269232027556709789834011237163953451240998453806331200315540991797229574237130095306396673897191868002183106816929911362380960649614814390946970469896816951998303823304091205185780226681388261198706155953275890874062293325533286634740209819358748935439700145805948351461631885361446396380012934344731755884016793742492175121496997029379449619475372147568615829847839781486110437636303004764301441790853666114538903565571971203429094748659668219311116904724718266437667808409692429095268998780917061866276576227601728503383548966123834006697153560307852886192496430621552036189695036338204626442617122665563477115678791590114409563061312632484979021825977441691895810532161639184113776969298204822144299839648106275283229849164593391193736353334787975191103689459034913606106314017807393376716326365840391250316237893043145511423503150064300904529864172843163212232221610399438397027033084452953708437078761759564376592812238176077741501530176540855172865459784419606909879750383320713083480488408225706613704440495210248580307445480545075294140597587099959449263574744546141876042248816086459942442886476026580908304500019187583741176734976716758150616274998078526571265330045944651260953959220870871955287502532859891210183685540690594552246248048397778621477789355373503054121633918957281211309550307654708481876720500995881621981660181310345899371534756998980065070009981836470870427231032565436569152943085499396597020942938114605896762562111429768760162964510802762287709365275976798896475455974296731959110621130493539442922892725120949864909011003595128853859370028309702854000723806400388291007074850598976490663318825406833502897604216126095487531131232735086003245220451364907141791285117178648851061530489243616917440268740611015508472225914038582627838923487231539262955317765298815544637106158293232418932752656376144388373713451009093400467368292100975655701689330029409715475694101076204349691358958675462845595342859728740872194423163193071679125510427259423001021517691150259328670481654294286065402846480981914063964944122117978103185963797135420620107408339410263234077509128546133557161035836878404208348142554112793255583850194294627762002902652877405884018504365264553972192107640761158450975176575274923300494088935962050320780921057075331497893645733889036808617878313269478507597226339559032207489098555948876695469662662974670005634882345097148346543750984571756607564440434414772126103027869428236957248769006124060576842070518926989558464326045415035453090586413951928014902605465199599876343948091007083716796550991403824282461157648620704200103483363827831679121701577582720100778543029206097623799018964448411344342935617818266975432573375333857727628332420033678143648338126579303430049651367048969075118792955835634623308888408234230098559876267309915664072200794074253222473670627494498153767663735980810469500799868919985683365843056408843290423810805204641134604402382803379814107243779718821885871968327839256302228661645478279232641033071056038812314287433331876679719162764101182322395255556796637667618780580672417914082284808967886109866868307973638685717283369349852332366667005315067549040277144465797712865288802274002590766900444709453822372338602663341147756453572419401551529126574261263341122425350700445079396903733057976690291917602582425854367072758672063176714255785309239744367725140210508583685716672107387331219341357409667846984137462727989385319584546092799834317903009478337970852500609934590008098834082093124947356790986603581368194050957030747042630341625853065545027298764158490940004453594834204304566903754964183076976437321663078361782593825664219321113402250778900725049168261506525029863818829347732434274943884252587949687398858169239744048886273648916277347715798529556581960645239151045924572828493231898316346373479468399394915210310966668709889532773758156142789584053629455268974799538550458611190727695783242951014005689378001540093000041561181005186861861184168888268582584295142035310979491772776505097019362387861914466713468963314306846057466018529746218205544454379435530691310814261885533595165309942665719448816841785097911457116041582753221008978382226944736463727273395634854277719121736899699439185356826994930395502917165490488164937740252376279440392364088579762757982552892019346069615276450539011829709977685945239022572586503058797366732860494145900882716523835931262725945265287960577992111044017355477933059582118050339463553403151235227841682280136885007950143326402203617714348583198478195566909801379827646210896221694788959649518205228956708102775975074625838859587971972710921840257869811356143284993150400501677855250095702369774264878972507417323322026320486426114097412803504769586373730579877275734256031365509586579472553745898300636851263464674215154232247066005377229377637729775084661626962265604109645971886326634352984041605017219011465355664608310174923023356477401403144428544200775409763149453565034070457688688994403241142857760812633861255877079733919099439906607117355879920707208751847118999940232422416300648878899317424294612788313152907557085559847773199994594102858494994016966086536054855444024180331294927573208859195629544701789932783662627827868328522727200613811456371095051906699580024441625309859906856862455619463753457425816205830611729132796722346143349178472771787484230632255827076327543215047114786125635043485389170999485469388091107060938697318211502093826183325839738672023767404806649750582326084415975269669565821365103645600155825719403120222799495422706458965748546292372324628304738015740684036547067272777782512621200510316490753116016131809954489210226943405737847465752996174977467046876546028963924932424353821077523812834462279044634969416138261747210536344923709574187289099268065344457685565408974825004783065036855996713711532771887615884687643424584782580098950494598235215834426110169861653932481292115961244762879906501464972646395683660128363519094546421331223069820967085140123299107082352263436617984238332794128328949525320141007151591534138950275456103249960217291378974911015613039181336302127938309986757641012829641251800604985111645426465968470938110486896673617909253971234413257225309909143650836603188240288862244863578556102022859409911632642687014092316458937069629613406013041554175541260040446595041579659903341130655962103504722902841926769555781345268772896088375018319662545811374079740948864935253681824200354397603849092119420135788482380280589490289702861097789687672767335360738344103323079535687276523936337481161742669637700393304823423399615370161240822770282353667652137304080524479110270304681429249342548284243440617245851078264835892573927653540242766081317751226789312503179622636093569060223251025539052296444359988969190313082563606712671251024767211456432723052497192345415867523580539805998060127698950004583519150699266408428030905406047712107588933314792894938695089105727999609131671373607593877107524333909972762420964250528421221962809788180266872820707472958507863126769617464423921276257774616500003090036842581169952198059596777941101162899682662347068839245158855652360867605703102702232469350130471903714303313802064363852531637724044783678576866232733071630318139971132131592391890648102366682259516378784740975214115216142245289931990769406278484073377311127345118794127060651447069244488515694015453628866896769374735678575292588107196782265056356638460337332095641323147740154599716517311798980626752594798666262962852725907342323693522951893058949211223156453911990288758813164541010718880089340781500760712929272911600223768275067719226097870125716045909604544184440118577382046174445562454008091482697238858862821275484957041595784234686574350195823996493910996290098449107677446473996377006333028632099894381847555719840395546658707073408915996968937293340358665444690901293605463709006072839788220797277442725524396281082296268764051528360075793706841841357330577977592906793982517270028540330620561372052831575910101041271646257865553205186751245361341657292622069791052901909640451465612085420577648789058835815603447965394399255180936865514163988385842550421598255680750150334851955765271262900524442031001510751728114829853605222132171336021271532077367922170206198757370466567099057245980795563306397469386437166711993285056687377850855575866412813653625493100630715773369907850572884919601788650184776726501613610308300134649146247610885268012786946760192804916865782813938728640966366452730332520218903261595673568546430391116683476304903870994883574420361592203935668997618248329781615791834454753096637308758919596489809801214913106091723381064285153202071019516496110691220419838134688219398618989304450614573496959613679824165662932333119552740660897676586785418030717118549036053000812283931460289567638928974214065818029553459260304633441390158682820736214874573796921853770280633918553996337856252933762673740536818429558034012195304270161848121505134486894732179662956287447698428093501826056961333371284826658044360703249452742895821211330937373181933393206283875907177538650332002587410860258867659951454464654935231842421535855335134725252463335886660622436807534395977167149360828088992888283128634484991988119542707985456838936958125234811046926135602130457460794261905653284586922789848042941448487889643736082219410762024266778797081700593749419189169087157583148489940763904891143557004227680676390869129798928317801007448255781749852399155532281748278191829201775869663537466371164953544725807215486332948106615348567826297993325196699935216319241913961170595845941850460778947247004541407559210147761359209836258825706121779288357743688987248346176328671770571954350857649519371808317573117466590847892661857668673244636550592803265173570468812745556492675609270732338615523091917975032203498541806439915434520585225820475911812134370225302872023844849054392551209727226328468868812292545770396201021425192625949971649087997384830887026564257038014414347923928567363294864596746304456190404287499452986208486747233626321449278746642074807703909559127857895656989532363647788507671233459855807909433717423382038278947430744782417173694645208280714387715972796647358612576757920323655389600425548030969173992390552412315019953931215950160147745064081737364351530511546012185151303340450525762016046485585258254391911839073101989527848658123659749087659900434127268093720835945339570612121732518205300679124390762770573384600127009174580440200091507369114046230478813225554547775018625829088715229241964215434035202105085352975693563948479890615297003457925802737441464177390119055808247692765976091966888547640336328279570331345862636718081405534347353110072679374876403244991489543508972422561312431652099368897856340332519026005587325550776354905701065505796772755833034036421351049981796044602778792922762182206155222010569430217375559510577365229915142185562330022518191664180672831527430071982825427783519993840680652408977832850111043045110833557848188787422925483602415406898665462716052785471163256269744006741836574922608020369447333832098983401480132736489195315572539010175569928907956783233537170188508630234505224960936375339177697257557046546257060348972827430359387340095633471512716602755686797812483763984800541768395891461072453517997414823061462034813751265590933684614995326029300669568771503461276105636674571051003025706064991582813520835544964036512724674248946368618673983196755288587142287773453175370176767281600003307154414579913148093067976350384419780105825658058833285416846905781010785790923483533213437953697401161517896982710212434192913844928617661682723182103467602279909667689567779680690302621120164167528495934281308834717089655007470650171030044774442411648581483547674211000330340063760113070887174868865819190517546098306208214153247677636555127072639735384738811392121422157287052766741901147976708100039430580717770216587662744476659962476683923343323481617736212263562865615198241322461602854910273512818546546342641293261755590328621730333901645033831219723029194128710765948822232897129350073735006072957787310055098478649007836403860157185857738434556461918305000452937714865591298002067074319711065830968381226325638863367879385164002734306338515909359728647003279585536697801567554300761825885407415363498641938219338649128727266827246996211445552070205598987707600623154367084738748819675293261465018541217608067862304747988032297178829685843482965912726093891292001346888899181256667831782657294916740274243152692786101099702752351271591388474414794208913283222687551694647736049860626859659321932966371950441417308007767437962418227709801864498259445538668507110031982424889668055964071162557243920650869534253799374360757322217241996328872500314637189722067136484372723894577703959987517042591823993547171827834180638299859584547757936003514384353650620395750207923421042916418076607614252002135799555339242452723967351658069086406133886277631301526689756548511965163824579125287129931461135241458972466394113543149282516077306201109391511579699778512029089732778029188415831022770565677476523926000260128125970531440293046449128927589973985841885749969576800729062725566431452986279513396213560011216978661568633992488293731553558707785412646234585389369571080698603873405364776508781891087566519271898840878342213959704653635130757326784039129065188040049632718876069097513651127566841292737953374634080613002250236125073037998255096122742290388473499154995749270932165386072746962792017564854334487576546665159180114221461853113545470624707964290392831963913443855079776959477020708967082561207945409412220446929535051454149278171079658416562274895235378738662284986893212154487976295889768976514111419369606707938320469648675862615831082360591655259142121147325714873087318524647549974464721959014656295097168796103237916999388859579761545289788268862926236621810398655198029973704931653759230899692756781439758764586658738733132812889754772439932712180034448954517114640302222322913180503612584367978304542890434685549123103854061953629799636153862857471345737189094088739703237304173690598482342429777364662371391007575468338416067894048973082008827225428620813553148959655560053214454497471269911517905383691981196641188587737202388580159003037415669219384082070659909558656152640197219239248897911883656362473513258829252372718006821570085365711165620511862932052118697322170893085200064644239014815601723436496558326208057584341936142423842598165754211035092402826041231559836428435574932301990368288134242796766039359538983746875606971032028423677684347014119807495559216505400885051609228165056342774025964168923763104584950053755717088817343280524463650318892474880020880731179933145965219405851320230960764055214155609424986070765829758172780066166281671671176144692886108594568639525316810434327222133829087113400865716765865668120318894644315609319565487706682195169334251822363892264615175617850448800336200343105006979651123595265798914018448947286702119611245030303989513677691871603364212435658089937578721635179437097936555708963940112563225959395062323255207400290771493156005306198480616448609037996800035570695946621016837492368097337907653088463570980528221173835551649796866862184167167669107597837466102035194335458836395621803838931878624353521555529395096735658499543094694894031553377449290814380258192397269452050530532245369650259022962739167918308346773794176549311261236621986054137495347833676531333887337850216615067083423879957076625727259172439031617101098447929037398547056381772774426550556455328882272380672901675105435950950886274136840285304073012867704192830279664347701343309150216596268595008214798808133697142535505406984338004308016729362390421961053633308777690558140773322232942018927138285814138587373902431287526041961628061984933782797228978612293182718044171267202871079743404805447271989206593591173987426083658048462088070638681459528766627828645306637987404567067033949175009499771579671155928903320798562168963057046601523338891027801848906768492369464313091665718139091088607152934437535049567093380136533151223432092712813811673967071760721328274359889439149295317642509208281332267122143318521887703124245381478223561743785054692129009270433721616386402955628229210525543188039249972354908045485505625530502733737322214954396566097684849963896031894178060508996958886247591253716538054772565842820542351340165843187976554681730068818219571769522816437652132715734900354463373507729203086635402742820528010220287346376377430084634580964188289849041897560425644788005281058022156474974357709869108550349384846459306153998053994610807620950555128073969670266239135537459232456109521133982597292743659512396512643376410315045874361038286467619100130959129313853104555043558290488876097716576200682586022535314855182928899755938161420249422147998921184482083662486950878158884474157173638524707381526392479339252823768150960584559764706739690143709482113943396038543513493128166824798908969875550789734493193760820834281557475701858216080641441065663515662956517442488966015250199613224749587704460557591090199863517696812766445170300575750334412212342738042314472042815157486074242372619792224992120963753100401196689705229756086971252496489264472646152703139207203122858373102105068038169497291288906017674692537289664813071851855319702888117401950876694179790953808761573686786044019351722861948391641607848913638595950213470358703089861893150963254500221279607015688121070618508820815356957915479857153970872892604845774250762855249600460681171224683319510703814408143476983942838032375535230222309046772119052777013811393414083142737416108444872418374091865035521460460512977889549561513359816880444626427990856009342718861540646306599399300185138027918698383997731670461974411695085639434148478223641833357619291867681547828297140742397327732228734436188970470833122641532345845743201957301864040780960787504538185269690885810349478828269030663650692198847323829563477625056752956150160369659587515826067804068462105956447967844391156162527584534552498573973869807170103033962202504737962485507519039928668723358343136970743219907073404185152171861325614489952471038339963601060161325395531864373784667786407351170965224968947712288084895335191351928901364795583016326801492438322635886659250260990102582810062440624986564846670187567119259945526318551740654775045862266360471223254203431545137982605592406539987460966500011058354539278620058942135186271094011578389604501505867132046179173554068820379444453400884276316127001493242201812231222271508805211039467149329681927578164458944479586911501163203934844566040560131761161797993822144328765609292936591843690654169311665131058269271800683607068300231207147806860190621485876350237597319343385584294941405800770674769732452699280000584668864825257948019759393509197103659152978284271599029788184558081524023524902643242072448186016300281121111223082315919372276915857574059302906737999581299833551795345240475832031808424852286249515201722284702631412658186217472336020942501271418540330439291042262084369135951137967594465287233212582923732703821232270496098211919218993226767975358481342247674524014314450487558831603600964286586755692120782932188133316814455509233896427161231849068630007671665402061868241126692794279664930214850439907734119165236449623078869993573335846757616374316926884514909088072873225665145886174727909042114170812013466942920507989993086447907969561175862937955684149612614193896317264145355740820588712705096804864996940219275201262156362728988572032390192519333686633802743236476818495844697765434617616738120926822134999619521044906382851093222775540370084186608063626548644824900477169126116242980055246332852551721059727175072804766657580040918766130669196670016783791266149443954992987105689247141248604083693447323590833705336507849726774215194658958429848636076325261469729864730198606510553133922661095285840708796016426417333719799781533425480742123662313131385261065053007742052134976235248185174167468358177913161913673908782300611655865742298931521324960997090750915875234573919431712000164190394110791864701745648551352974254366521853549268750837079390657980265187508807075780254056788038368267003655748485596869854906800120285070566355780572061419358607500210803983589209900164333752405453912466040268473983683944664230341405518494718888109174546012288131647096790923955763951183815747435135731992399705661042178615267602375119072284138532570696298433400677965473995389449347539792145560675623269417799807958867036897674796136187183761330946528609071111468089337118544738603182842835353154234893414912710463934197999477192084621340309364153632584783293173621635195566662638416952273926320505916366757198829710421079868384597006389567777853634053766372833280213342903763478069361216528367271938407474613962521718933757448821885323367318795649746720335074275722039390951462392402421417978121673430561354831320235562620558023987236145480192016620541603854159403624501255976052998882340196275004350934590306637888146185498855935155728152363178734391925338290515341302075645453132641507029594591744722006390234718516648692612291582274730471625231814288699829074019644757445772219971261021295920165284586105318824286523455651658259384437140598589423562777575041136863011450722882843978695637242345217209021908198456603895078987162539561613010841456411918451202859455833337606115424436055118991510809448493606629236872841247667139795181930146543415618547518150347149632705223940494453412993760553095852108152211328859230801381795597480067891907436106680911585537553976561784175522150000225489734569116970632964720792436053257837973018582684921598693383489238936867091218375234774024943083062878317865826754955598938061118078609663375448253143682711128426834727705448531174397320157168945507010365933496212983610558001660702893218459946906987696251377684634340845080574539527837726796304290165986274252718251333063370576098219543051318643138132538266680564233590068184724280922041397126684544377012580639557785956114673068023469291176858810879965004464626721365931433971488418039777670715454171537132399950209132590378357621874548792382350160211043434433635946073393359632402672162208946354198900161456935537813834764472017757891662910873240238634627325012075258060799047389030058123775872232358911721270049966958668276390350763986755052439402099102925520280069501300923119469645233294996997866469168485481050910735647056791443123972990114251780358189725561733642440667946375154626678850703145449651981525683489613792602504971133465182201009277644565657475902188729843598520652250775912491039487530176565659999441248152837374098873586396736302882163916750606414189569811975946617909980628180912396784120612845051844528470841833865991762420980990993650191950435364434877745089590138641316394610673156702157233978508180328265771229515929987098452716542073925839358266711937346038267386120154739435859609378703961107787651718691985970158340223473401632072355824923435040848490438446982604981662783467310297914432096111677289297639980048994096956923478882914284613542283450885468297485255046833160191448255537371917891503689108330225575493767800985731094369491244832446969831325300868446343360523628286188875005869247787294950774540203700514576153969607369749550635079622989709990945965160358825739568130127301219382082610415546982315606102117240156012868315894670718382571356030652706931834163288434826439469851719725135824890010464662972992295818186562932146778263678172452986161596064772143038491638831801517734647177285550059848980205038753591518908765778757716831057318256338198189496056081336687395514169921048177380014180469459743661396325214304383116837561386793710920630587256873421097242795519058464665298548221074917509206153577578832898173548687926699673167609227685066386345483034181666551397064117331994603106562299793700396749775608052030783182114725580178006574679896081187893269249717393794229050638644668062248464058351889030115678234097308689295897964513121347111332618230473327253697747773313848848972904376929548642532854365665628389920733128201518567204159251002633936503699760346736704325391248103301341202214805995216901957171068740323932715602196447365859523496044528973580743205394203481909752987057708257996044414811770480673806064919347412636699949973790894742900997521183375950587842250638786262073679141955610075935093108505862735597202368054685029545312640763393710449376734015961977267686564868301494310227957149428758505849776874978634064029816991238291717400324516429839144632572964402252098637570125060328271867273614009140650717690270204176191561754256658379766862990740821358345909914757339272351106532868431441583282756658015364827274631969873663999039386457894100452963755175843998444217353317466774681451722432387551043547949380909812890788518425776397308134847810689014797701440514716091634858712709046424150034679731993647245432668383071315869965581052529717412009308325288274570709007942616576489880129182585036439691511523485643046940163305280699722967020781564883789608314024181903652051047551874920501346115992594496831441175573562274168764715657780596049221900414221467915261220047097786772452063574289574674211608968382820791009099980519617340209744334396657277457572041591541432869245210032769353271371368172102180515634360881221093691302356232866718434978624306603958700945295179306080949621593084686150535412704520943539330836938375686361454401906438439932320803947067475465775658591309249674884782299595621324820751284383687438210890556284203837035873604092282752205518396383531280300168916990244386905757372625741744935034044733415961112374422501881632747431824186327641959278250291325842481985997215470085822420232300626668133572357861951565403365728162803113950017933878389187716352646863692775853606418002927223864754371536346164032031053387769455997819856522842239976845666020258095974125452587212676252082518113068081008893654487168912437244826813975019073633641532270462763362169709220931117316543883231653257260425500991385094713283152148952688672779180581807198149791813870815387405343055233265002213185422019217640796922772288241093175030335714668467819158619557117071523908273349025840895103662218472032781793051058064451463938727304769430170287798573958909208470795996842628314304154774125489233711117994799067640204086111640971185592738515256286538837120285731967858634368462585601176089550237705185684852227764778820691978966738557901697403237335431089091752393917664947586240987697155838483745702687920489605815803659969416465211667856721272772814694857026623337061786007463618560044806451300629926628919658413253639072408013222534170054037399790184250466331673675535911254798935972877397928936279110090202682807614471574235853035920002451973736820920790894374632202429247655398825478921925524174933767575168107163658706736722562815790712998225743187081589689251700707058208577617384110025900881813357629975972694770402154874767831157417811620240759383426278414802633977773492496494034036008519429921221151758066392385103576367673613985905598397147847770301071620560414387028947440609748365518272649426259780137370915790416298909204774765082875588752730047973740863653319243346478442429962265024173114299831145883771221133503205930607270229704204965252562445296008846890480717953484268619512846828173023124327634134266275392010009471731901464433702592238136717161327526728143238274209718433035491773235926368849744981387285613825014045493512352201246196032270643311938380338656255190652881711246634512131770566246417052280089579296397088145002794205090963798956879250177730316707346615425418897662769784455238297011315199978911341975055866916075981157972772965542384181862908300095977222311237589925787082885245896252893330267872053495048618911158287857022818141668028839977588258242190086367097935514423791260071342091164367702830915022727601627073484887170266759646407088032885980253330656002586674967735669982383852305093927624427182890450685080729759192911371212566485197862485043687083473595551352781105011147191853712618884848029377384167820965857359471927367681329869394233392991002744009592208933675366301288388924081768077872176184546659589071712522437804190432106159936577230238971798971735294397403902405577275901313286426567146909301015034503554248658660904646715250588867315256082306657644849417367135663373805532077657330051553121096106529039770089111448441692300121698627355164449839134730286613803378130676043301207347628726393400904205254688664121547330103969639482986697556501962847928252430198848579248760327212372675881736188270479998333257101052551469891064437712719673453568649889977548899512555097382402421163618379714099795089241165481989457832880045026975484349285548908395044601166650848724693450844432857642077691743773028826512221283373510854742480783329265923390526649779390577853913372655991956653415348646671018266001886948240474341749080041244522701948760106651949684139574692602057867208665709177491209673940923950951623011551753183980239194334497855798460865629985159152092748610111767286388177381707033176920183579600355634053252654188859907101628521782807708236152764826427974946089772962751337310923146980961595856220525005270360582847762520124188333909493475295805759839388750470431666908036152934992820216179007958237214071828267588801938493574677756481911140080939706566985226757639587890767038256307946955216962255825112500439867239256273677798822971517732738551006054536229532292734382812854919815225816504687909516190539508935488256599843841067230147602648363173374738974779025907260668372084597763341736233473659208923254617235908716565564363681859254997369655570328246306331029604349066567244940498652686247514339556347526482353178070184796628479780254650227584134159476074105499496382374025670886379098389557185296120476519658811493888399719322637387137046182807402178251834754208054659812862711040831750713055967429933297354892241797812330386836098217220768876716117512290555546574140684812772954419301610962628657517385461514360138469062264336211449986994219367373683457508810960666482323762761897353629667401535031925466139618646568938408591656932217179117657073680908524170869694269204100706175363844167774249517026854387687372387519526375295853120473983133787522347275725369086149446599258818746778231927851203089012380816668954636536263855914148603421256653338751157204649572278070824941139947236909773465372817893467936022931861929373551556968459076869324996115964396608041322714577552309333496359344298836741130271831159196460638966128025994703526830869087007276665589672440286084432586251553266425933019955640170153533533764931143381197151561064995148224956317612930432870397964806279017723783696201278627558304750785926449458129489336708696898829829131064984820168227898668033160179572252772627315472937637904739069926416056581738971365604683133031293151284553843998350714664870043609212430201491482632736347668200286280269458209242754985536219226789477279942315871202851129922539352819083176182100224912257376482940626316689297867982786266696124334489402989508486336617184308571591464971931028469010571611924504819767950424092695188385689643626082272510868169052067162711862112001602622376690968296859946304064235526497491900230277144047969992584762741650524619229697687971676060248806345118034344745125846508322953733230000196792117089108817586618814158315848738509018688421026662919699868497674057807036460425175664951976148660323834436671025652842317394615472218367906925999898283463470508360694058020922676758471768812138754853627099509810277798081266191527596357956905674504849624277250148865059319068332967375645627689216923871332703489362492714957257275063500243042982492063378381351318701723523525932224745769636617334409773050224937927551479546901786997785018045310874077956841889676844297410123574106792447019417085521852683776178692561585306703526008848569338260392816171349234066200865131851499699085103800696587631414589181755971818899133433222641219566052010806904573177388047833384468525635050949645468712780450046150960750063720873185558616842139553838414769651702773921487488243250440230188400516196184931323097970872147338354675480460985567554953237272231433773727255589782734553325132770152418260347001035936332426508427681940762320570144340999830135597508225514695691093346443788912522432370589018609345838650628017232068550975020578868417147227183917429419965340241075458639279712346699516588696476078171043141809644286652589764983961539511251240793672384795945266802929684395376418895124952672852696449727593389814355547909328440469427289696438025222085199690535453493883885670079897490019315116274177444724580694282629339516246882470759740032886294170015246123511417195419634979341306281757679843574227791178613383814268938730178045335630912255017026314935826975755307048610979436760920662546420234420487945616296985739342467027889278744734779367399603471594377680717174157410670016604081778601737226865345660170054672252488861476149330536365013508625346198343093756653114247270236408404438686160373147234548334650042020656169921741780908360424757172335824258765150939310378344872269400370789687280153182881405639056687074138348657737935558707724876968466939812114925394932880859413958307036964003062933088199031160242711025196171064211948303138671325235314619186665638955955620464436991350639832936394904874370840899745189181489888125883693620334979935282078306046317717807899545733738638349006747921318714773862692819185782843918092797970075476409062747578853751515588690160655906865161301734271813470340763827597743573315552276159930878001686991517280607369165289623717395086464491357790045737338816967889881988911697278762712267938346032312087158742724890109304273102017791380260652590809336262718281586301711428181891477578809518111653048082600293727733982426236737053991362336298001344998116431804738449199569756769545770843075531801271195320966538269059727094253096711211161524610416434774667698763471057481808395831556759085661598867334522201956066246853339562958617452334469225277990934393407410972054228771570720129068869240856623677475028302655577614120020112444091148228846940777806062741597005678093190723145353585711158513979643263408453048708597915529439482260605127112150836105301207994230398007951478464197622422819240960470520976379498308187667381744791243356592625318882249149592566875047872548444549556168223415097380172089262797582575952219682329279539464639581635789169104789873413689826453723572481495342947977900868375329474227383317152974279869591714954822663368240965169580000731764062584567539407530625516321292268175927691307762908784665829780609331275754177888864592084805880179817519551143641403708989354291448081303135077770125983325394949786487036596645459196090462758367073963515757194363943775396670125480064707506610457973161255685807310464700825857213280507815467044263510330453566845789771041223273049841786195389181302245272267525624001362562373351963152578361767845238705990394398699663677109476214880672590908107518488856917986957513128621189562041024818193338065540674906690451706882806093109742797552720972874894409778375136366365950090087997245754099920141623207746004403567311645887968698158187636890361313404399903265861689275587487360013781903218886579016703539984417187575956826497906200389050134282762540110940525996328138216888001995955441388010824970671820841895633828039681429135173132038578538207975023691015481839329109398502853582920964245326229010117083786600118765732472705314715710943780169744336763823257421296288859592771181011394093285830149076765897687440667906797575979577962552903569657566571362423955603704552275937025052159097532743364830023508313296812746563347697894262198750694726175277297335949448491527954072588311036921520553587245537936401328680187103379235081880116608262143198968620161322091275648315974423958217101574756763118663422590986656125097717293968161706922025725544948788412186344924004171083220906304812522485225929858839787482686304129326180600999566185049740713597508896852641418333329551732540102101860014593994504779870977275195690255251841732368910135220867184806215081784573772605138162821180847823247112660979500180310844729892312011822299938100640550802991382347077064111546022832840441213894701555796778294315169345787635899578509135182154553677707811155349903825117874695494498982060071676224045918862154212476666258172146607770149820524801820593961734857857793939652223495522960626101281213417792495525723739334724084664548905986641252864166828247099838785688327600491370838628220746932243075202459701091330478860279681936006976162857138984261786143337401725673510490825168215730491210076370605602056902139633270772817856119261120086724993676374363233530079317571212382363400326032222010915778908099307181681595117590123243017792813692489100915300072982146760999684104335357322940337042737605539181038067333706735335764674966916281170736074214878862438125960659635484137604325612956316631517812389342508022952090647807300151115925670321623350700598976569131912478165155153259752441919241388037602520882875388419192426623405345936378754979268064130942609804484082402847270727588383250059492801507792062613703722033490719711800832038287785180690042605563246249469754871958756899634184471180353122826367673307786866693362106032044132741722736313010113875667162506073768532234525997339355290646248587939013223089114018156377985322705184285568239750285079257063127360295752196925999866469068705306411773676833405032655826203172556950260556532526022954563467890707433506156333971439902603273739201525002525278041591175429541163855599265175774664703853327543078375054384378048189979433740107933873286442583406514890374300681364263916719666217024630252151854149699439925684683692415762833876655780059312077471840307461860169815527053110383506671510490456416239638452305646254396526999953340131099703823570967987714311754352639955077392295737458091488770646548967710164657991549435479177848909125028928910529582418589545395294914657317700255284128428871602359944679755978616527998395304338641772280620310184530203260333369280661501101028910536680607651744358169343758473104297432522420703546302190769344354713571821443217254358423571534496196800774924804608079176249236705444049553271624885529102959394007349995140382511543929040593851253287230140267419017040826691124171642309603657779092118900808105074530478630677759886911828734954056841366066620271513614035842122857084081366317544075042230143821702336421257568383869818225851904012643207124219164773189107714091039805264236504777197315249427396950948220075123806304707731544934731498941564944439653574800411765977236829248928196662527345944598272106230994326470176169200101914084232241973318530993692140352879817101185403263734346945226459625257741159857103653644029282929312593604512811470342838502671929416180180776386507776988545875977683406262843414599283733686925874398657557393908042012000244386246814540812069813572397548892621811736290587115757496233229247349287688955842266504500819127552732557967695724446738761041959952635376712977276940095183226809475402742649077027127552718927047915701323064769073614821422617055933955925473038171983780666412641505707633255478301052908935729089799109800968200891034210210776914747220023191796621075832783035957315009229409183208395826177037328107821350351008937918298617379068183528368297712746359923014421677875023355401582892811205717824899220869778478038734079172047120419348111231429994609558063337696072163957271417922687032916914803705835236427922714178070852947964693852013709424892682414262348144239917572035325049429686336863327572113432479958998396333040537992002387336268871082979766267382236190531013896907751519788000104540239143978393985333907784608229747779985601181977741733132290553127720242150143719786393655326613529558158932547738179655678423506685689445630506866924200844412408684478657482189700754396469157608764750455036033840474278879142040885931958603615922135037648184282684875432181828911482286735078187992467873540931757555425080807559396711928434986246516577811464818899849226383974590687616265020447797637420371016088670852956961038569502508183399864387246494899919517183049518505391936293323144031355623537813371557281381936816895616714030099673311503728866811950338387274096030788836510269322166829699138654640054791602392473742974839642893674054922149686755108159354580439850186096517520769391461483504501802422668125090481146535756359531404874434399918587808678323214106379492433716048169456271716414671129673427211832665918717409270261540457393523672524315123373789998359119107180943877830782261916444270542061244224408410576492143052337147242987210143739016438938025039748593676731675665626231312516871636346806133167124170531436262324343848124547330672718208919671469138220986658067802828644970145152537530047837368555109951599484500051056589736006010385735011191770886359643186975661334945138416611067184437147232316278428582739771605642186901586271053216138730878114795179074790170249738776621024793820487437416073801793253872484470922076315679393910898136566309553255045036843556163778311633009970654830813584738604825706793243845898807807608547595068128497685956910676785269930117254905082035171526505131254861395767609171837341915287167930139578810420492021426749466154751596714083166856078177113015291878857059202570035121098155010030027876363821336806283923769694224780011930321669469786737148638671105923120828604328554865615877786679346836781992095639819167441165296640280891695726928819147087602330580673075571044785038425252548272221192783287581696038837237741155026762809346260423956138257783604293995031264351874425940152186304336078667506863031377862820594290288160867848816804384050167639737022016578544487982923425526190220220745613870123229366379647513308680857434908521961720148111706597988919559351251172911644257068819454014403870746323780489830219575345155695106689669785408526145431872133108548059025666146991644483785076849244357618932969364057668638223771511701377703372120216968127727798009270482530586986681055184354197666917575954083630794229833736733694479191470131749055883241415379039846410585116105818214101433445013375391516109018894732046458440677605878249444275573196795464073478239579599168219791993376557163225935972542674023129989816910695104522865844766697232713947817175227613731442210041510364034212570068455674553296585344007351340518931250142672838189097308102155400638980575867929502998367663934631823205120930826073606413883236435998912425492448303351772021324802840822939432357912616403719191361468897717635263138605021701115002205863645177810200623631362085617017286639252239744701903285674078089962822605370739216516229764990058327682941684994140166786629948444563871839207283932232194590844519595890071739524429120963492494976697993827137885915076431387141446301489714561842712220036727401938243937221568855989519121490772869790112508648871342289616753277849475110502369587043211035625165578459564117621926114269385894622494380267968100165780609700857228758010613192471091937345645906770325845587730216080908278600264780649319145362661556878537645759640101290629831608047545323134829363539796242202678305836236344418549910306022582386170198985264468898124757952461358221310382875812316682261868623654223222852170955999401204089754614874487869084019279139371490491127848735047034930350001942304923821184539230629725798968116117077606900534613666631160813418249527869755533919386578478473533659140994352335391637536200563851087135809659682333481402993037354700892754221781443423036238730126295068940966134978606418444435287888591145805966321436970409075611582516352989296160358731791436007928331943000274427942240274096868115172448486940588758758487312989631256972469394992077632626408379021728576904425548731839597214093825890298088345616229990806854930814504969683967293588276638676378404684645736556284240019251166153550255859268128297959685861593007582271619067205761896743175069430495080882307448481936421045100477075369626960249657812492343683755589658219475785515756123998877987365379127556540300248275531512451293243753855820960578796879362614771859141301324785810255032578474600806577233834235262183004511869510827330212658010896177929363504450946562505918631641079690962380759270408393967112975150498924624695092895930916365202805858632006217003307910277909251972110560689275101735955281962982655929131138242621190454558669218769067876098230968350576513710682935733294315486513080025282189438300804582589278318714654540291760186918367873296503949120941536088393159860887878138968367363665737033094254807373783789180372833840081010007131983445356337451300936429499342107164312498678391494171831782352768802379215136781835755244121761095681911211034371102998257332776638037974795734096967036142921998457439942777610626739074190926346567669281855174363172997901626860602100784308214334749056535097171868564445599244042007293777135705573676070438921798218094059524045930524554514850778286240615701075897554396756533586240607809572124730160093163406790350804176512873699717215587651858259270429670571373307959803388961815425058047424306228553160951080185996512929842959128174041762229137902503747868282680726240887798167239869754433291794052484661320319820640119128472643938058196405901280732228121822732504045149034360395588252567211733053583654068935607351101072428515619043661848950783753159238200947810453570925921840267311574310749060076657500642770600221227109635906905576817797484475165017419110823608260491638064837200834006105651193094721482792108348199818101297575393393226737703609010917145628656017995470709662110098847978939149821626945624088780010612932935793766960675020752292990504332700798995477891402211346998463704960139600257691105349874498513146074343059408335280276808557291406693582442131747748388863608972600380020907214164261678617471043317737922571719936142368981703896678998382221781304836949260809498009578125670468755103049539137594674089184661427460669839837971728690692104631692968959923946933056921124275315681883142737981665774998844597972603541391439633367449430408471307673930318005735439393505676433466713401808503594555493582971018004207686114117724296680363915373478550246514027354795860074968110902204947117945975217903340845786719789085614472870507894155468015211448027001720404410998744022574314928921378692448089450301904584138935861021034624339038416746664995380333146425791882299002708686329264249821680671269399561092952846545737227000432414753373549917235303497489731185494965067378616201315835972872293541888727250564854291937982669920059209240391967273895554065498614605838861157024362386909755409997392957053243234145544122696549367108318848656599182577722579422745145102009564906016383261465946191831535940073057874622085252476244497179131411491245328620367891926264523145241606727624447493998586837578124572922170685193348081301108630919501170158889946004540773638591317018816249487596174259324822546639438495178392627635813051749080963929576016395740300852480886729573549581636074829732860007188493070807430115038506092935249411366948848299530757152477626332800581964979460692515327950113839464648694985270763033269735989636958842763417383813048429318267561562875005857923819172931107710765092652094467333034839810578916301216883583416703349251097531705011677860204231685293916516323431203475130681627426985008267145898477373309934798473909465502519527642086301880021719922552226441246263192105123268852428102779179159564575897204022621805472797021847648978865765388839146335584755567087616671142182605780513012039093597233594229058323859707673836510364378533165174482773238015665202642793794234413820366857651195070262547040430539011315703747169039697694516260774052291491776273123806833156552598468576529674889477961591309130105777355650738316383965653211850837939725531353932168610600542949729411190712004808778641471937744526301854462479202419085836780104916135446927560916415185260268172796977669288938448364003288906085571647774626514917550175488073715450212080258031915296889242877893498281127195406394679493552827756363347943388928624619459806426702312354473383503243206488068470995665027887260457241175479072863878306414277904523845548961370976405058598242000571328620476672867692327275150958703465790216869332332980723129840085127885701535874493092431427451805861001348439967964989743356060095419540911031164734166651922984984780590261949508349438514970039975659263526305193708575479004126839441389005801059256630077452133126915129030866646665164919117637806478112323846699932766805986440024700484081739316240879449615523588342246429202422900258163215814996799263295590005629107589390701090882830576811913732405424671474321503334759248346269416093726639975881548726360846120324613403764646010905457164371421986935848851269556387760451473013518444315521043930111707464422000510684925521855599104495287277176352669767146325144477816191407609983787637389108332435625993038383276640409008905325749670710524830798249821036641285208289445339945505457773557853680784449786949931604099634447827466227217990610179795793406828800984187600894313627821213460010200416475257426767185737902682122344453888268723435489764389550153128796605267279736241823576800829828535990849963925552575855398423855669275473522637533066673650678383310710347430974418001053379039675513631062732603850391244930668040964693036917544038107430429866875414041756561271973975994165957090597691395167041312842758287557335289122793270179433114622714509837992865270040496939807361905633033555126937985735491457834394475930450218466682433482536592575402149066271278108328838520215602223650552459898806197341542628673878229113734411736732789294645944721198149615878307971912083383666574644613317202033331621350858329359007666835248396996376325026434694905998882815574261196834061857964280315653121758123237403004340629497422690684721016503539594756897776472835787134636093611408461408757661582488835203664106154887605739830232679936475330767822032828259607664767259090409485808715658494656621620446040523255836653638824102381642183136212634785242426591457283180740745074348485958923172633610798558966384218249473854377009290888174850027108288606903732404399710353038575864564082297713752462619010295450538497341975115443258107344862680173665231707329606076262735698910388880389652380264057692346786016746460277210366950708818801348634934472055489354958550738486193568618574340226438858536138941950226819922199185753428811930856861426082039633604351863091412564182594384460585046218583062349930698315699603334297074447721785549685081750247124912496735794769338271651194437817650909741933214201833296294017134068477114612034792542276861891189909993711158239922201672123327357946536391011361708344379858886691222064487821417561244221676508252916230570848996262534101666438632148576176005980194798101576217327643373911160488848051381463730933726531116157713435845097142529979094836061041713860010152985116623171617949793947808817048072680213608875677354006407750831490467477703248226994534767579463474971032346913535590458741140984377816477293715766578588748073782053917028745051761293756230004696637990911010544722510062227295075647611413078119017435007547729736605639688765369665036799379094799080156693911860809770452359806593456881810026486565406406109071222885230490351424425980886261409602030104048485651799275814910582174592873492676093349540270911890249226574485474250766655194881091864893920878326171600268099674686210488805104941116537345532289846699898004788275915655984524175448418880329242712231997842320581277500396216633145610185484262428707520669694265173218100188135793244085911762728631214830026431957120930947897824936579886098720175469673030623369964540845078660817037123135850477884393338876316126642321521581643723109269947018431638563989630833112342097691075065441003395957129507864376168142825757609178001895547710875675047849138375746556637147325845503111916670113497897976480980493737255905469851704498116408951356809749954288201605246247053746324452900280875281755317772486100756783231047900045162133761164699231847486159485673824967641480570079439671241912270622500814520038281761078871532424065137800015896336008418049632722697319642762035525903826992606306715482569876296873439022388082088495861216097458146854053963866014831030005152976012090553454953058621585056194387343027510202722592750010596871611288432944624824083618239750103239723042407942053401591641528133513229368536660728029661762844885005079678461010261538799208823906499484862381726920432848365007440898846413188731393131477528055842760880318994335522008553063980058371955205162160400537315686964545177623827479065057565789424048526015705424994027953035497402432093287107095954933798358374344146300046990132075057938994207258468631028924283590452919652751733841862191282147350681302856064033972747289541445774864634639944585644466590933337085149328837198605496308086974023521354122796646587355576128839332934351484300307994870145887228577083325711592923005531202735979834524124228479693900875553528603996980311096915373921611138444745243847848141924068888839944647995370705727480444256364675994790726029278160949352292281458403828046380577006108952614622650096592624134317952274584694357228153768179436345073126286265760933696026800601506132077456679777985533842943040732346804246557970417256774902058238159569069526026311250601728422546408428321969590279398328357577580325828063784481305581893804039488486646244383120855033127577507519116954125266388759153761998244390914206733473737153865176456050077493316138391539795129458994100418651404415960131705402592207730241642721088320769374518773822625707269667677933126797006058206544571322336180938088237941941621195242793002799214258606074343759011986904426884853827474812791770559515218945829121680304719799701199489838134234356164078751008123404267337435324672510735127360165132322047433290168342048007795718677463674644780130095659328077260274155243374299170484085856714599275287790227257957357592493563708473708105518163775697864565454458891827082824079564794758659600239760724321760122206205403349386003614679015783517518479337125416192502987646518104556355226174341746034387152193654095373085653355323626275764448053675025149942848377415096268127462601883925256190940446188912365879064607087499040907996389430718320152216029681646352058858699906392637548217367965320002463533088883718148809729376793613655691179441403583095204036663508699866200248031385073948678864293009082881061286948376108725394599420362645584262428497062065655752867487529831932584277883121304561908035521203884167863368060007525477499443378143888350304796210598647393358128563569378637485971707700253687268151272673148738634229872751014346615975022522493313583331405183400141011220180075290197913498977888380202537384028711572476722423119403210876198041905639151455024803938181340245061953777423238228794485258136612656181186062578669603230483080590274250501308987346957933365133825296852855783522857158207480127896170004441472285690117852017288864765190723211456539638407468315482482605912940061953903253588097868424613315369215535994234700323274223381624797732645640686878182564015851997780074272531738421086957527070474003822394490413283113745073389825958852107998344374563883955570636326816007216945628716815537813877193441502883602769038319127075396261046615697930365144434041234147702426479387733515783744438844610700008474921571738567141407237035324389790331053461889330908219518958177105598680071309562680060522731177158405887180586608835212745632255008253431831647963978749706580739607728897361571306590733945917811668738068233220028328492323827617074457964425157689580502271504223252176984989603938670700226669146998630799584035989134524054169322539499801175727058104287027784291799644734007231868170837213962248856258215748145790270790060586019201920304954427298419155364787885524470970801074514993164953494909474785384254979984601102445151735424180270577336178810850498290282814676515382094743102739414331396815359836233158457819337030887415701992134472160429849747899183908390026594639172243518320369001647168566349499046570090449369684874501247436620383995804598472691501498354179534452324797342161185149267428059532043543002381043599288469667104931658609156448309699874330938510540090242775310437141083528469230500637462682372526184483521557975546603397753143948859369997079790744457337599579834561839370154141538433641887560615708516910281176716617844553772332329677558815041865058334799498414386705737738403756583824812398762604620884872570987557191980992580394132401790524254710580192174902031976823291790145334314500475210788437046674851963779132717380733275515886657747381631134426694591916928364318034018868695305760891379596943488832896006240199998311173252930680064919939267983840836110187727247604798485630567742533408337990437490526059840505188310210246940336097823386072173609525662595928320209457771090446664058198993494592334355449470252264097512052271426341303793567238100560310109584591378490773811244550309066740743405453844675103008154342151190780135756985734699160725491403570884560402142062936562132017851054391598084134277652434763962019794229958887180952152238369539678527829525362768390611067634790902112522783268859695517418324039238962102395870644175993486214799914842146171790346902368785373983329790799091497799158549243545372773058138937168517949399540374154782290629177940766988517174924836040639482740174838880685297253831240666643401962147591676988310003362818743059984273299930117381146705698300701192405011104424632874610949825002750808160860108545660180665727245417583484728092816618401198491542037640620470169558989006336435733708644285636747564294062104718797882446934136033406238776287122695615943507245896364109973185095904341430750806457596401525865500127789137633876695456223405698510727372614998517379563817595938087111692398747495086566689506255183719889961903017057662568854361330034613085205206778061560076939671893457127397581458685368630700470141392119239923877342911901435220700759962700088141009928470717513809209668375218243643977378430056064814304489629599253482881613873013879937352645619617339925849483684310283654206635258106126937228425316225898731931431773532145828980547152653543808437389438895180787924795213031397990165696140926624025766353413700928997849304306575813999515516155024424171815493937607692380450262449066849915215821229636954491162800241566295748597165724698699011726142192175538686367606764825624576467301409295855728592073800675564634742550415692246772383087391933272493874041778731738402903110203668690738152685537494519213204662396693237371703796184346944297572241891959957117342320752746896120935032265576635564008409022861238864196558772444599151226870046110108647543124924068709117054366244456006313529240018240667720485327855998719667045531760812817376965809393956281139995069072743417674459559735592145424678913175260499302902989105161803584455930738644237911381410206513733195538887392476398042930567751430045594869123032658253459648284869227119562772532062290330369614038602577376737048580736001070123382341673893003374748929184605506913486003715861852584106252905400680236798506351148265592029800930244225320860100706132195675604040699060198774057233301582687672143974312219942661169406843749502488362676013194323052971400900187494672554184061742403074424805543294332090910218957768044596577770031898343154091077240238471014868453373377534978155580637325476999041948529694810549806800098173248525673300533644751616160354186553109533747071840148221253783404279549519207713195887436809252542954626837861313323901778309064653157207409797686501176214969682201725316253766542925140491079016501549854824938844047058694388553797686537664718027990576084795459356157505698719216386098076503564456196052332598534721897810886884823017588208631014153762433569103109274735640650397185810032824471197983679582915203661757374455927509608978164597633664990774369425281293720685353410442364052613714842742641351055887479242280601851471735010935713043726659603771106990064346576411918783835910146562898796892591014851199971511860395359953344619561089121272570477762560973259083172782797242702997974702166675254726300480571428461140312508769000479551747251809888544056613651197719737034205575254432714142487346938861276860491314263937655015459673939047272918546200974769133919972645397972171760129054252315831344533087699100637545975892400363944579199633237542996356060199799534507001701440985684178915344212419566104723785104938942418699768693383543926610148572711839816568915421536187083972870629767931093037353993696817829708645239030964486093254114845884824278221535021079136676304087518523412936239991012344248251267969873634614284033487607812461538787160067801207898349284360616042870708632881773782157821871241543262123442762132336129959911081810664054552749793964509663739136178906377425251072947470160583978335754640607515386398475148437644169758670893777222776085707281125232071143321279691688688021766859517236177868666652202016756581038415232952755755419640914502168657211794278030516572446225686970508294963525194406673711898193434286561275053098775453236511799054514057115087619941566323705874744603547195683202933006617867658441868112523387920004889431533883553795432696811355115769485930145226443520960156747107070114516030176019487709437043018431825461931627590243977266208152691253724603090483141001718929821468298166992878239588685306262971717083573784228523661247489116399133364586064209766907810990014360154927781571093567192142207190975546696281465204010782673341204276889637243722492474562020865297639074098767564915837218648109329226896949271348783357918929220667353900752850448724493560679050995271730768364858102844369697904499559017073781094458664115251391510872170311435505841627204312475063896514496495260223445438574002444244130642802429544493776208615423800369483163008564595881562686474614937206440076061003306886064626954294542641003693423461855837366826822863405401248760026899312329448880025418214347919240193631183781205787542972780791700300216384300482661250861465376686631897380784920303701220121966920595719813840592500409535122358838463599479330911675700945818557233605640717207978718022338660797046993769282844434166591725821658055112794261936034400573882552435770124956311958156542404490731031155210934265228962497915088114327626528511366280350699845710091911387591629349041483306554538596806750130473060274960988789554062931098697600946819542773092880968823738675419748279202376179916505316387927934049124762690204360201091122008213082954877912626458074225813943610381910812933887230271293258845305875302054321689485934030200438924104502299290569950218129059577072601964583395538702502834907633783631479848556333671119100896451167067468422994586495812100666511866811552960714155948969189007710515504913397645541276928084708922330428463845407874308683021320943636346265997007262127293855895728655895411941743398054303231448437164846069567370031315108157055679016227179630027844795232368935363047925853276818647859243266629251951147257593353804092180332897319658412311599995868577880230891990447588175868532554006802247321174464236621830477221990620665509546542442481928979556440514659458140957154660408767505807131007000559363340584784281777338582867221720187715183161722493451360731637754337834450887716977661607058919589135338828127880699704392360698134970277893643222499157338512736688546464561490808559542580381274276664597707100976952962626690674770977722624776368981776528598774862149345529174248503022063836840596145999491250968694200171319573096930173974712023292186350841055804976288340917071634357856172279343761927017887742273061166150671284767639794308198324177550634885506414390826540413734089954297233627956564177093561669735588997846508649524781541844392321428240059225777570678575293411246826648192044715367956841354652068029967772555486392778188764375864686831337702836349087703663533865828258455049601652345341453841912373757281478874553003502178547558607319841446045387742200812416840918664192912872614690885402074854537898966994777404290127110435292554299104071713369242018584048695901238667269711578528418973726329388204381675580044574644116736196948701557036163808394151721320944576385597259290503974676076951296013452204057923918039381478125844437836038487637441378055348529106189984842323480817151000095926379553439350198727010029791579913389587073383997037818228201212070743871232235399744911784999009382660326793346905726147341569985241295353139572100036517356608455395305826265788864872108528772845544605481281463562662350175575215024792571993293588950767004793496003522569330042321178547248445504014007481071484754551295383378457400779383522265705354152607576587668614882196737133889011740420809385518505078680837278872746890353876284612209854366909110812216905623553380030764058751692155953858897947920915201078892852981564218481917621045678471959579571357845866389289109093542726536715825787757376244876561892091990480298162469909250574875815725842459571445268838986002645577565627111222545159877988632860478331752542998829248401747845113990142467038061608674817672762543820451292331098286115235586488611604850274598883046137609623907772614540582693267820515066100389919380443121320729319635257395691925921318151906592083108447163711435309408689172204970509982488851551743937252260632560818715839326575129764910969731243059165765902280504437557931748093053204308991508038283721589075732562068015017635831100864112006587501791484868571027328253976832287489377957789772091032283422189139721503625601130777177388103479388699863675327508113886121612444598469064957375185230377290102814219072066737317179844865681163085101302708414969239755368780472430313138778368695573055651951914865362923450878956563614198335809136593563510893691498268021560040213333611573118259294082137013394028301288973133698907192132499059413890674997469630253450375467986074766990096350961637698322483695389597428716613806535047998555457927627700301260918022412249429882843350228070232843164613796208192265891356334927043285435506817214741916126271631601941166601160650279308301697132950414421930520953768339383951391294443792686500279982848944094671337372475887766118716702964196532944434479852812687492091294805690052178348542387573228131378669632979253210226393476225396150195980700778354794777912008500731349403285052955968199444494981257035240027470000653968369441336388685030805198908024130842113300591117759497518602816981949905874095466017169186419770599064706690237095507313113834297458229750445439753747945975111709564330657098861812271146734112198647848195441890602607048555155391190862719351830860464457984539639803543447970489151450589268262292664250502342540632225047361697294914483364713050854427427108132488477162180081426733463713983745428295550108028430815183399562834286536605688478733415876279783852863633331106233593893751369760887644121777864568855605232720370605018141307336093901790515723035238216540785545801714513526388294306670202062696649116985675596745441699481987312728835354138140457884832798334635649507713987900904835748494264641485949868014288962908081600463425645177571837531067082727950071616727710797730991049071011519916719546116576777639743847303703726612470560404830908649961649997857293336655638871162680036887624609719027711020513265670096201844376871081378360282278713007883237319388777314904681280563539546601163239199346063232874387077445687737001615851494068783847472909882312922190816178732432107801072876569313365928263087229369340282896683087825643824834780478358162478423465899512158830377110664560391947314724837389416935650652836528000324315236940385379042462282085588747505906283874707039439366970804108563495634025629804060259838870244047447436640903324586140260610124641227476196405974408132137121360182277368802500800768336158060061613861960646673034895155587948201614135252587974814220864127446884619830417721450318239486271709167437126620876389202420325127201152939274581158959036158389316842408530401339367609936849078766042903510727907397551787238207435255831564921762990673328209235292860607958631344922467468659904265830114072150208266835245996032518256864963116507214284601795955707115163989472905559363807413681288828483742659057280072955369338301677637455116777910089273258263063077714728069264355860779281071497454889142224238833304199507747272366672454006412853706119667897410429271227122862275858294188941295264969944606211679023407260508282455029367975879199257661988765099491049607199265450499145523504439559181037626584281789272231440082469819710024090446822355171521697240157197081533485477283311669069248928464056645369745431775553713732234843042024689631082777333417261731263680410471053906588739514550636094097459792729761206221112284056325963288214117200076576778369351000644404786405751023512867082928670349902092991721863010422385850279727190793719101096257981387904066699540594226702300554991996907106695574758745046019808164756852034538934763841831669177567757205360211354453516680139844193717310904162546388162138939005967748172587856518866671473172029856187501940728002225484429511166627661419975343323250629230050297123956403285851295615761441317787730539281626466018769104569987546145744404170110877923983921217300313839080917561563550093982620357141734947906169294927643437045036550541489955703730758831971242743940317637826189464094617814569772235508525135588093510992225693660629766232919388436220872254804791491901435852140729138351228671800733803895958035150820464126228182377572961770852889105505570114047419262795150924797901319929048013304538422895379002895581564540990253171022653509740524815035969090680806353118443287757431925370966082642822636594895175647441003723318015567982785120391946412257049709408290748985012464995578012356332888311043942115750242117429625508797127141738118335772898653902085669902019131465427241248479271719994544394845441376066868048336962796809409828280898392968820945013796965683075542180475362888081026301069103254713028208019320587274904141503542789293523772460320773565093946825927667819815234350333690009446361361273054179727471515574229014709642844723828315916347344952948700642406652501120420344803145852245776533907456359725348070643820371460329795701645554259286763556222142569666739843469394256287505113410745312155447050930508198215769437833541528502207635182979113174493003900495774879398656307698139252269630912644797423086179694955085792004776100434385015304936276562491304780879591491348626002987268120706336152713611411831070422021882113086522648830033482682602583552673762686407880881016375473056756194824722863514480675833333684571235035787891547471507108460452608967534422193142574636085002885341223796015355511469612681138888689883817194295723266512533023857996824313323173307985685381512793791487381820353187021351963062060140602132292542000248863472678524192269523112306554058490634592740213307746578766412520893606697457881112671170607161704859363019052148080132679358999121725940431493537539275093253151848171904117409511878057978423896911755190404707696598123652275376987557219886669496265532961623492592362446094431714690288428945812003527385784310202112629798663397559281661871517213564048739287501961953120950488090936666722065039639824910358021772360564078274959601226807446664796775373620906752165814841342857807960508799919690452565381040636571119543210503058773421005056936655714959445560794411575383369033009799197672730031409820907654796601036499338232983105962318924016741942140559373627136139839011622818128377664959024687118419724664402156939371264514740452414716538428977120891833827668283551660836699410708591311578759168059791522301896536278813367732946347486930929100199143804106186922496780214579422866962246507240667242221888829764379393951556432157478878667297883573754394699531152386384969969243777729141927612806468877285209394667202970147272945458398344453615366252154243314061390486719502190707230317929807835106531670503675747882063582464256681922675416506711548953310077358456691655404223454641359441459780904134915642665382119706362202919123887439561220641776657619689917751019406607615920454187347517019417365083359562671115706742852630154729963652885930706581769860870703751836474733299170175014599626270419294557612332974185004906040323786488146859174841091844338443438207540873179287368919863659861289548551043689211087471713058488997758306190425129469379363761168510596625552114883405591218591688473937771551111522017186659346678614749827851895378560707012873851517019588964308694194582954981270938046649412738588537688365535326619891695817125062852913545229756958152456847789077088508263783909728219424311432463453776890090724231425920389996326044500797843432508025768029233415077323564089894538547950365545444059650472899811039012459739867543845077388320780526124622984960914533421998405681280311542751574936798145469434303265403774590954786872011313113398777496317808672168633467424664912332399210231967988960021628127992943564961622562790041614045355426687851698376739357496551483223012769438518470621900895049608393265250300375840078188450351316290188908621872456780533280147087571029450184796322687693473891818016783786808149799728341233138125653482977000055319826803117603021189846497904143061134440656759987566598118105664688046825519178949072985115538495236464185674911852527705644361459639143046207052267599065808703100075714783494397233446786007246938092183532478169151093758061422421151121118072535650942565983188764489623843145644903451600761424754572675178574559007565479939578778683220694891442888408523107795955487785959663639482833854480844018621429640499348237730135401954003991759124534770595780599125614495737436384225149664542541222255440690006059734411886836902032534682876580186780413960843759442604312368892483796348364188876729599771553498712409938205636035599725495922234496529151751465576346787695959165231161140109134485004781367670553816825901809295407409290397737529935317209659759561779584834520498601660658850215314747000501129440305022481447008136016342231437378487385977028337021653598024837033310963197117649150048138730196348915330312759455560285086650987259234872897551695135405945352521235427779275104681933118018611504033739015349777218388297288133695600872461850732246624892697960275314236717359643463114199697678675796923098324997607438518535792644001606113667107782519890081186092060151547966558147222084637569315636080665483450984240943118904267162240148397216556179975092798656286868930370592859033590521750755653216152931447669478605178962310787009949006222188511151478338369892602329790408912975268683225503726094436379637522783900834734099751071272617304389743893590041161328499352167340073690494211679786139121838328539375581297678065773811915388470595098457511018944045943049447222073937830053456124505550221803516265657151578601818599837893123572024585741036505596818802718914142111260976848331427522638423709219920221130461999911851396739559559283990665225746002193834918381026490822155371432628714271066396650013631911333053339047268968148132817539064735538291793230329715936384411745323299600649333295760549154793219133045518473785766587482601443152238149544177048279302906994862550831292120702389817831646907244334898646326746222202208952500803520432110281333219606653766791094591912352082668553908081689048079148874183556621804655411796850867903563196825601817319824325780686516348953180791447558757098730183639142281185549840682794452902685262025965370402554152237147372701525105625835558443831809774105511158650111004741259581266779714790642973515593541689642852652145933242588645948954037153570541844124764474015236124154710220035959049460688696326125857170855744444692919772976882220328831012488089068539925018196808322514155765956099806364435167638218706416882958387333579157852431724331447672313957283121641571541407716214237006747113917443479452445084193881820645967176162427406395239646712491329334144209455014960646936685879932078061634908167229062221466023271310728397860975422808722383600192531627494453730560427205155446502530659807447214657710474837863511023956906993282432630317926235043231285008079732759395143322440220616257425300792034467271349977481053534654931192749026494371914767293170683692819183408472581080284403936342520588715549762674743622996257810978885914962937321431627461817657813316658807526958253669559638650673984052849070778741824598417011353106274166284031828815291541559711354763922178678600787051630183091068374455953535583936844042536640268029542512323097537529201290000456903086389713789172980685876479685895170177169905520937556516459040890647230170733919631819008381200452102905232706542787826621806832844521408110816594347538435689982160699713120524992962887089499738722631499464310225409597894337230123064373384693144162893621707832582571377520822590481447683450279659606732340235779281305728424572143276325701842935581398608337146604506084723887498785009690711253587973677378430251131162390373638574537730437666805921256504156571515822051025807516757073161614326268320075148851290829767394691042949276697415986475571386192067025676585810164539489183954863353159613315927175553252663888739443173772187361434429084702969611261865237451525379249061777878381053297756287399942654570056388009522505027993604353354789692580650652900227818480759110182735759128048861095232257359114993222625722984607328407794879996238751702282761079647468011038027534272677919095688110381269767276917614197446837910984702157774249304923155739825300366128109891851756230739135192006790712108525926908655074680558583087694937988330899323644564772909517372445583381375239214386654017528057157058647540449624222683691411558234318797584990681128299300433035365523379686979514510023253552750359306904701627466102376295818935007625204932870495658888145389766344467512334721935078098757829475985325880093879048031493517543388662154978477981599497800737150059888152479981659233085347253212338834298892578133796878551583155995279637536105456887884794362714620847897889864830613217981078352753515866735952504306493608469924347051587959569016944808417647756165070465232941410191801724905308590213893831441209622372319087524101768968664385685007474992677160353889048461336286326577643333686252775955011442356354159508587890391302473299835565429106594537713064842643775946711759740440789100075784768996724504543864492102537384428645926434033053252971018657452631467790547559834897957785244038239913448908019857351286770619623310986515289478122614235227687704031304491352667466886907850474152940980509015579756844281913070397433063482210682228224921875362516803886212778540933004939936824004167287372214910316417341882377242127854730476326926382052084232070150047520256417229018789048340582291007175567549663795856613695068440939634477456586723131374075388013886037521550610306222230183618523730524215849885542830620451331870470064000220260218448330378614541288490392875703973460271712121310226328367421655783795660567854785325491032256983257450051690432598891239462466719601812276803526877632236189213053305851969488604458351714301244767101203718090187800109653235084585585180799230825473240135016758838657587529793181566264737073213563093910259575982049113561456208598611690769415292058779626599422762875074594143209015759369171260205343224020429638352822813981588843563818190391592037794326359979441260307568521504342267982923998689663291994915870404958203132713123761820164699222279981963137927330118878172265562361357665153592135290076653619030526638227952252510738073651498294872801690466456257556899010360221243409221475885665264576965914733010901209388131474450688101317590889505579833284445471823235548590689643384631466490105004577493731498445735055778216864419191166465108490674780595807393432312262857201367789520458364502140829997541005590477731024865322209674710240711173055769355349418261405776066552085555789257969397079298669157199961793569202812613918524875504372506690911180502565134440930690781172131012566221508043938278148498223833646812616283842769500774888876178742446539883201280648094870564529431950192790918274081668932267661578056997367424329750594674774109207816591183817844536285444694778173613628068815622277258954315968041551266332653239846748545348684087770292362052630910407391621648978094243164296850813429087203791219442334358751042708396248904115943609189639307260128051064279134457659285462864982834125880060421513082535510663427853485144257382941367968340596521917991552936172783702189213956065544794434890757367266926312360031408614237733460913850776936503415072561089659010091757937360516738854905429863097085696113995124399661754643287556722358732351026678625978716266424666601588837271933445926846472561263329664718875226350486726119258119667096753671464821767933708556431323865078691757659793438839333021516556678514910442558054981761938690018710355738629029931404978216304447873692000498093263295935665252649800792513652738353923173625335716763400437555478171231935230330793637201105210809466079355144216241117571133382879607741473673160899230353007636466151491293342176554416115466027617743775435464558361752197815479097217328964078290774761086157994278041508580346185411648077140195349517367016929979699951884272947511907639931613722125199355738382913524920841235603415129868406605521725957991826001513132063570304323605315360272354505435445575408242628541226564175990054619242889401170249066205634049349013619578750356110403146629836124303797319830709573348785902173358354822675968162435856646783509335404029871082697704850014996593387546586705109671798571714313702903197637112097885994632071737238988755976385033140940846472022696044381520677454420523261318380704526178860272393029302098904266766221353138956738984141369055748334306734260818074577763566852951697194420522071952640029830720185722001781037866721941807470128760535204174298481948098719946828687618461574678458396305514350153614689638174503593775137380771357771074735767885384480923005902014431356741250369723730251532322898349441215624561248813300017198583798620737711668592287729737551668600152871512580408855985021727351518618914106311483565714012554181538431625941180162206492815431867494677080897418457879411956166159423249274342623573429241595786495410438596792763055394450074567666309576821773363856003340829609589920237617420324743490592120605428044515508200994416041845787880604819486601741373053229353245708427572906459638611534625671489942320700460475658526118947570101965788529586091251933550637264912803270726366353053163615067642896173405458248631075346253442505893801361048951934180223875363241309658474741664191322128322987144633366192153659197020467914642217619942984630503173182631380582729479301308714209874320062333419845921606166362676225449823598999104317333621366842504924709145707131294526928962892538230129388636194199258045988385541706872794373516681915908217313884765234060934307373522292370643291731431285557872354078395536360703910064508467564570198475862230795054724168308445005278978377043310104884345409990510403986212979054962590848450651934078738157442017439990770279511519368704519981944655439509616722702277670128199790277096922066737471000980321527817956960585838363134885853299553770063427840260928853894037432500225213010537781361111244651559567410481905841746822939294426425963129753944562971586786693749764497581483756290462565918755374670259435011887673831996667652865681173649853540918943662463372910185771827473243064780811898116128285880168075222057906329215611024399699638284767105260476169627097520634419037761181292159850592602724049071330401575672009007178340040353055612345151984341437770158209874970106615793445950827815045966816913935740273357321686474270446030892729246007194399317865919964593984234349809449646566755495691311461089531810126742526417044887556340759029171104141347807661273485714376270426285756402627983664436469552220831535791315580985049721702754970162775131852045358601028353114809985506519828681310852016425637308416851145738518291261087735243115697810519305289949625163668871630661312118666446523423361442344549457628281704613824307988996174257072989227477831711481453073361144931438220616399759873406231272732034858004771016264281017722169787160076123551814088836497469257825720528828900224658240264545948913164886138973426968519783413598137640471424720068633153882112443564211764680962867677224334393027570540268362407893520008973090652481799972282082885112334684548373580115416524345260588236815907299970134457461302541028759897432448632405575299411100418747128757941878104515913127045874131703593242574184476517262403694671599789275838066457361898652013484420531898932296842934105410379191023668324481131252617450241458645314136446459756479366041283226817849894444326262543828445181177292764434233032392330650925350462295435104807279061438347523096346363043060415041964612945405278760410427171230364404832237931521996835269144696535876990941535227403204010903421287355851425287928519194554418709288856148681789492623839057196570276345265254887285432544583585482932539774770732996993628028179675290624814265547294374175405849173339787581896634147736561346530088780158950927193778762391781414344451331029670944949964754356936771944891643413472384934465691999572392742793273861006581020220027650336685643992188337652742417995783702927094099552410436288560577398895149411511425719009190148560194700062102242615366374557644237895107414787722732460569253347301505631550155992079390912096198351296266039460187843531040011818832150383665115944719696409688138409007426808966351466556589983368071535971959515065495789496955010806686596162878908690153824554707043724850974391166168113046351883090573049128020785295561347474540341906093630526176066985944370593227560901940684106334547268115611666056797058218500333422005899913036172784180010876963681786142441661437260112427320268199175318273219492136047430179548023522833177808580806264419157032992947974110221572198322579937859227553408320133464724385930433702201487646278894591442258440146913993139801899420426826261886450680936874397213596931708775973933850356921309188744185974112523739434522695792640558550927652502281463081543283112894874069848985494911177313982737077786990552507711925208627039010022443505542569981799424469284934807946464450680374810021060646765703969870804242489541513698329132145473000605713906265858633792037617478490659099274920471181961294693283517637727596600488670446835244685507637854211421179068340557560932125755598564100674775829227775469152832392572310626838209107313859407069814935587957338341646944353807330078517902837018990210541382608608905387075089885017469911565512157885974088881156939981832338806867625395161705740064348112211719003401383118798430960654187742891839604410373543123890856041148869117340762982998559299704852233728594577531430829419190833234715399438920680481679911189644912281191609544503463489199170697154297184042625737174939112024038946430072131477809331111591764794935792423891703481849713543969755850894409356986083252471692418166948941925560511036620289568098876989918222552889058558497159099307865371519369957670515956907045013788884020936690129762279461502686116460719733508842237786332624997209179621188038317920643142377735982745824790150012964260784519527163965917658461823143045883170461488783218515370001682075240548090947153934469028672336407156739318885617603755342008709447373497325800164930856219268514685087303326511873206060625618536919748174034514330319964574785764853641795911747906378775251922983543940169252367263813439136644673398434899798694472385182606259041192868918618873917296792274920143723425940421856446680864434397550791455378288774695225490152801407029461274083750739428588243502496509557047294285341157384631858478913605818277292140834796165554989583231708830692955404033922246651585030710835678548355089380517302503245005714147647540247944799874372811167255082093348849517622029536874497141250993203806630522600560172348707473570976768681136764103670986444446143866040098696802055005003990056938584727533261479388378897144082220738537625766351303030880605157237759670477611746591072198830392931420176372231763183112051454628751781339452707135176801297486393006894183952627501977959541782304211530045410627827906905158400916146133386970175745303465944997012838192031980129948706742585998024396323368891305438491268650408170770111115087496744394572363683032600344524605619824826158949240770343661352273693673759756096500505302163918672644078638033695300236372167807827208775794664198734484390275755656282167751197319492460883205121544361034739778505133795076625622741389016250603118916375038656460076732730616425182725263153448451995408714750838564433895440178618905411533197609110984364967434502270521837518644471883144917564237867202624908713126783958295480071179015381873155532576494877476063802316914833272620104796481399648766542326729889935020627428013182652909432860339994098220754576873549687168455431427608088030079572934489020856846494718190475071341055528211828519544867412392623149392883752862811612853533582659619502503266391914402478036147410567162786697264273544054048093446613996824632145184332900555398966266124461012476455763977588435784110331198434843726904394494012074653304472215002056781450885166445220574103922199545490137023249798794959972360592224232886722564449456135059422895751213743185882732278291169335542579029077923404931227140849090305809230665441880745175099509387967991629819334901368554018929461023476568856909966257237368530019596972866602691311622570253634763085983789053603680013469752717953239204546381428723362564783673978773731937548857551551322748904510912079175667636631836545349376118338322501049053971138536567152314726163470329025616498713634756714559823581432780086584912309737692340289553621515311986759462450609837558359993724270294033150832543417725996371719065931315295848061577864158458331321190217866313856836636255378912140029023459951260419491641441989637627574962434506498516459593940532159030432122810256410034052463856882063458585016280610695970530543250051660195585563165111654407430676732401368511852931153490084905620866586975049625793039953391101739687933589852377165905529366854771909941386521738020796125954539505320390089389736226255957773229529626873587353581188187827705201086083889434491729839243842622177807022668293911008635620099393611951594388096191390492931473851881410838795112411220439532554145605298464214942135188446788046088902446403039899503205354770761125630645782558778737384684911587040327611234532199485222836975127008566214911929675172068808211529066431082455072783343367250830413597347094463384925086022741615018860328136926296350462648230663794147460440038665998555647879420251848530129539408055357185409268355672088528014396243208808096505537230649913763200014802841403887341472323829725882724050870960618331104798304941709189464791958315348199801065145214711628275339674062663061899615066350997230852996873593453532604691946234255010544528766976971076069288767779347719130350231546207001286668180643522730597780038853458488515929403532659532363956437543162520674690027307958468029615238031260521442544223786531875194251642049857251928711459351951862434274311987727564574251391153136297327459192769740675902241271574982146328459830252031086420467645035038577071476069129914059609364056168804780875150096955267831931436766773200930643280664561639419122393060205331805318558667823877486965686680638124798320555302164443562044663445134531908331886686701390350771931942325546193022885665160502471316075299719875028011807473725433508585246178292820808460471350612385819013709553350263120822311268188660466410598100617701764331445796819346404190127521175712481196209901301284831876015514707983377229724911101315833831221527902918033234478226865361096676847202810743681115218519890546804443823964578510628048784863270295283458242868410449427642360816074150291788704937126759561872437930162866696408503872717388458934060241978203399184310627930615744646461008623227435727998169617978246061361364488808981762124867331467566621295271158658594239056039145262501724566738833791995035041611117382898871511583715018825440862804397711578189865380667031707116076208076622457657789122376157442724569016201351908412708136618933734550227663581275442930876638175909627090786000390267979045481640507030938404196003102199308960727158074198418603738636627994386021402077110572323339898804683899946644517490366708301975427326074425466487990791774780122967692083879884299040589996365564195192249994646326373557936480905125860738505805794812016776308676839546245566931947989906208199169991635700260586913279985162262386479297341568382211012652153339557674604080769371819217551993476206457676151644950765602340738282713735072570673241809477060048666512119021175945815272840344369154989564632080235610874942617588974511834737712433354704049820629303650459937588966719818912357481892446453419165151012173915102758838842773565566058563132495093398975922312131356602916651860079268011112403958466967681914034004524023915936300280389710151769753542845419091620435457148323463147213737522167056562762174356896187296956203086884627708293609967847274142311274942138924979459847907633825725136562168482945257373449458132450649712565201742355963451729786985287988797514287388589920158094978542378440390959299439257958138309534747186532405933193505250107839327660466465038039815460224346639757243201154295822835868928284769770029328497343617558845075161554278711959941570198882631526613708054411461784588027839866346750624715936246433841232149608602955453138140967861308780338195175452306940259135724340987873197243893734686075269696758695361561566784081956505679951514845202724075634628193811036706170342848632733701219259378671319399916977408791599090544403483340725421522695578887828948957570944029787110091149472221097789025122697436220106657357755405283713750324023021851438212979843476660829613735384555779355989941229473950100300928329181161301297249324426974758010040704024082823497020711824259806835854691235238045262593054431624231839743154004070218026867834856823942882412190850373798229307612790189938823513333078578546364980988470806456422849658952380663543782596149576706570017790973819309537209441098075789687557760077317004733755223911144603493490933745961127076071578924028171748818913753561831529249365648947566297967617090133865849241959490855552054836926059785247900083931528732702417037333640001471141560388699894627139523488321947068826524612891067614617826409763582834032823357198268999800811525415415637440917816164060298785576509741080307734988648505440398533598704904734910160395656725363866031886127352702869261913052039341120742907359293030454038740850861933373722987896929394080634760268778785890269890231625900307386247255305087401780566239602325685316785112455641932710729076820632160861201575458226193360724936325423642496073149403954589835172196165949634465578625287267339670280985769216236442260312402652417954697359970753623631169557574458721947727100649641460878690515337087881753665845471830875698643210021731246094685156905987270135360154975399139075569844431783005444239047927770258300606458643472608124964192380937168758973809501985094704892366102515214082348171411080556792816335207800622509835515899816391447690742220096569811479804568788194849541575292517087497604077567217146670749321174497431287324127312075395465487560043209363473680701976818840498858546200563186465614070260540536236100974595343575493134522180276249261123163235622833777926397259620262522078025386302938905437288025916231213914031360231565908174830276919751663093611973106362992900254872950261324316203666493875851423345170298186951723778973642770182194321852584217308152126898039575466315887663318019402643104424786530073729241845051707167734644906782278365466587291333967273395276807055765873184197025971530858566036524178938515178770812608359371991380658777501165815078169833807561020027202249497260180856469354540601867080060106036396242741577102752664293003407646663630859352884292920136141741100867231708209519841646474850708792873121796230840911643535674358019729000847749444048247576732885208838926135992493867788287377583475516883016817027644216331481382988506798724464443958606478336258844859097598161337042121354884259963557388062191200954684475852567519011746410979011671137472240639883737940253077445403682791144880749037515484314002313584539602005290660940901878758514280086176817949025327247389446240409842821081462679217340946246005177514827463935352180276992424389506348006387903128958596058709897049027963541203660450616500044838941337041147961619284122144140328701330430838326676297425123899821153870381008310599530818479612291207980466909200399405042370884180293971508184403343170042886299547173845641945572875763813169436339486292672791280688063031431444549547412122320837779381829019074466452343775035479399602552717369780083661993793422445171252840468317781764264602575293297853665214861430348621250724184036828442787418791793776339985918185398105664960413272162397053159892591037202922110014134491137904599984205685282678618088879624987318536228137887167313298166956361568193331880862324182396637212999907298254051436658752276038034348200826192668623667052157213332033263574766874491424965473339073020306923003712843462966996360444023443376309710509198530254653515001141609388921022073690833069909422479110932680978800225684445506959616623676346916174269131435444564423640129152007654073395826567433875652151755860417144454994509569857213285129167420570674030075613447975816932642106748931076402450072171594582082656442370932697929473509117022062172518418133270818485372046650215582752669716287178988626988664171687809126595657443401710167636150671904324978871811700626755207435672690969788822911000955884807690186898876615260606716768731179306910039167671185257941591716614407115273184689625560690123810320747862455376565840782022874481316651217712924207745253710779602854066263494677638159715085081556934202407515026096120151878695940339787266032122405832739975882004404610440496189784033830848512296813055988039353274802546469938993290325393142400887035737670371820707271191654726453262757917391434908426058477182727757648965690557058852005152636208046357234748328472036917033052154470836811925332023917739238443986807260420876158193302853633919441046327414292647119838889158907100673678730637378064669094918474629014297877356285633939534853197470626655346297871096989732081120006910640680137691638974043374334191324722599788867106820529277632153312771359345832071745664980861167111326622232532993302641472412293550971216651135386953824349426266593276991330624589547392861641581053694644963923571986561449697423725353331005850067049154323139378375070702174343985930827597399466985066396898331739406943780894835169710344771774470350629392603114398360716048877952596202231105941335616405835594673762868243199624330049202588017452115722999112180466259578527907772898627224174948723447007345347605693832718419716774000865938389120058133352604675995104300728409292521242427178655764983766637656102364224206798601532463825521954682685867141313935923106652183826429308756087287062111392472065969813728734641155479632112912672061724921005675646329345924144844967466682957068058421279311423412059748360130562518150262314750398622535883367928693838826277817930642229535843830957713133558626671710180402248441545830337244903181926185391264191628932909904351109958577856151861898866736853547168643674057403519601543822442854446811450018753390095201571260228193412562168581545240601216896747910589062793532202605987994870774845182721744051225641949401231350529871074230428430122206287906776078729419413352902084595991553645988734450662131577689285790952317229888558591043236142446118549344639382877517185478943103204111229955461166421449256409152131329796214376030157049467901144763483247873581272126461356341124001733843367104059250292691780293382578677565444418685178401873181558850779549705716479453777171653232827293920366637991799230060647520607352551160214332522200701974779789829970476131773500465700890145567595918734884427780200456035210748114466621567445974450775067283178301300404776118863056766323858703329151321338246140452812140671917802020299564758106410297476440863290444449451823988804688906194346028481835223780705247165954308495264553961354461493369163528657593605239418861961841457051496554320712385116857713836611131084447780478618853653749807322606941015523568103768703582673317168169603665591557901640881340468970599092086938967007693795478207091617531736477166321695435965341444878153405745743097277345673323117374694401751309546202607548952227618557348248222851315067412526383865993983445283548108574110069742851508922953703091093195604214880065965873148153574208309258714238122592965000496046238959863976039219466680919212702060380585320859442012306963179590179701765694961061717208721427046346515967921818705420296888064750382480279579799856760356602342662029691089258830659097676758953024004740534884116088052911282832366569579748758796857622806421133648617721124249655692435051242328480121526880580152425038846759160763348761174351776395804603567308890579833071812426025733295167996202174922521578468991173979824619975068593537717909393510016429927882095736578927955156545758369243561861948546777722133758935671630068248084319628156614841341590114137394154262446816728558674202084993962095989727353796565107790996257572339214743398095847213964849661415861467272114612730588510939540526922653651378669150252564246612574576038261275808558059736882712029273444981346475934533149324306505498390465406854811903377606434227093162654153582631092549726817559433156110739354706851917327098801786619916467947282238272099846023098042034097294936083252230899203968044445162157002202963271410562060593707760258116123995750106822192275408329784737535202216409320661387265257781497242632018244025721441631442206087671048808709484088717900355126628971988544583795570762555335076098096313210610443863590489849019995629443609266947552126904187113429250627284039527013452145719515033995550842460451209858741674104836878679595104993418371560978066402196154577290863855858231257167473066923667098644310546585361136637474971042422873643689159357675024959566497326851137245972521249794458922720516229279220278588634701464659041885237096785376341186724499192228939945769953662206652786490417411792367773176035534213469572427785039014495759690661523406867002003279534851899189036853101202528008567112052190831401279097073329531857586984946146553953894672058798543746182401323282341990225628499621503690411849456067161494871400442452001086943780122030375757304339391349687034851406979437864766566284792869530067686549880315593777295719455302830229490140308637784090279962574460186030810103463847836916472665954972678476200971146752370273617900647373117425520684477735933359662225280612654411728681120368589184899978186452005524756845422954365314493807006774120992664032194030276350442568513189242261812158470919482955211392986138319601653057254426424676478317850188337637453580038741812206350957310258329527169237607544725260601120363159960539942094073121164748729707498301101398142808443891336479002822904364631089794519540814457402293722517921953647770238487830435383914124457285874636344264134429683808865224407707511928584959297278459685129773211176481239450396688535694301505043049158244611266647049339782976237737626945083587580046318340680287678421566419670118264259105268243496606566553225721936228164576928316688027536801642262926194400604043817009575778622384127456361473924108557105314818171323317899527165153175594336974622722515677036732961670227789464014245990205328966202046857279070909221156913401956158393665763657472669612236064777580985707814021962574749580931873745941398815963420336382406566555317928663290251048844308098923339898801054546944121678775796478527273821269066984530585415539731435634750029082653182308272675809847684990614185442555726002936384569229011143202935024476349557645550405094373468956885673132678429242435618740032817750050528255876478767775035385703795354412282167719841974693989092550142222918606133974369786821919663530308608573224357267080550328069898488249611120695945718562130220749194841009667057383384511529991515873464292967406396436377653777833670640978151952494252098638001167711647915840075831437542570374989552681874931134651679593285569633063850620778266765607943303646528033807662966783829801423391533176966448155667241498612168199137516345957340081337571953408968870769350384758337030099186462782744544841729072350004652125725751092719549118039301100182159455398588355985396614295755525037861739512932458184261105278708350006278231436097930231460250487864785881721591738845926968586490090373804216326004566714567070885853274668162381975256678336942937448612888551841138489512787690314190976003478891429333210165777068851794607769631820375537955103964848707875754237356925624180197979845631894472249868996487935306050510569649385548000617661959606930895921027801583816725260984163507959057723237812191138724084305618423108479925047175783775717396986941326060555232999136882100664836010406258614907951163719104644161513011147556368665592079599228612810290911739416028023925226677657886861972817462052836297569211974834234125403019320854921722502355749474549636344934992580101693173059786012783952153251710793469145063064895438965363931500065373782236661314555162561524058603858086507158144379794622316658410104429390424987940140743269660159400073361013429788137534896236581384238128228720613640276912853772566467708614343635004625696755172790346162572631224717666774416552874285175048534187350745485332451119407481003753272183647418528559745295067822877328324437679930702210277027056614528919996248640453740828774972078118042413857981757788894975976150244886223465253100995138857769058868815119598463797218143077605885658987185365640008654003886694586854619548527034673051094461236389494841129022755322003718090856307526681995045209323359196515225145488067658378720845131150507472355161245657527883229047469403458209365045572069312924845876537218281808213614125607176807976003795493673819727761994610590658881849202326136277198740153585459243026097336927690237592933785375203628857636960790354452176778998590208193229751445108211568676403047092075058594330598546069472447876809084713265891405308587007069223096443270326643795610731092685594672193755891674226071200844215858808638097369810156812545163591383627058364538558509046358073371656405231750526641719484118985741404139974348372531758928725424014702486517272360719820749180913452702970593817130988805026994839004561714133695973884825434935446905427715652804178611512606055745982142919422837125029293677192731146626751420486611233488139407743546628949241366245664870313354601327860672633568385744339755219940333593802415803201368979135122556473323736410782143088700816952247455750358291969519699896906072452384168478708846087497270454472610418752182492809367126339121368276027644041417529322062274285778753028977989436849148445761034723040374855732968465560575191678505051048862558873974575230006817560705761088631056794929340464218602841280326394131441601519416330332564284267562147037075704033057945222758482974563687245063546929348615786902337140922381988907094939334602018962099158115287656797951056719111095636019326283138625667535547709270451338614914340469352633083347883421985362920048949662110940914362447402973198141014211958851671698468005047564409960092960913419624231595686526430893367107465684900906890009369659332413163899103790611698084328178888260682332860196339457773438755968387264622208414709150899136795435378194279778189268114373393186906846704712511435314563724974575779327142647010113436047516840196134146416095233908272238951921423332067025441607824338887038212105868891459671650393474120378439798272498055942270478600687068697827200815850086195915677887139725798797247847769573597962653408073758591662537161415638975200642863643138458683727609017711546641362723783307499524016203433207027553945301292381458080394389131952393007637464194188666477714908011817427462905979822381802331016284042883246810197087566668907859439984890761635382196205302883857547435210811713399676811602492602989933456912771679018733537904956539983244488265862674411806710597860977475348682631932069379018691764116866774719797381338640419999765735138074064829155004062318868305502512605272848239031048824282965251899161338856223624397534093611108683846922241118809186959807561524795450735896953099534592842465376651262380773918682642557566906181371534037779681962366625269538955448865575781970736944414035145287852017185388154848336357857614973285072650514630993014108971900105297112988191691409167681903404460114571638935709953059486799853629549960504742154105393519216416513748311278796547155455803721660413784198635153641055049507724070124283548155399819106714241589631107627175844583039340872764963779993880959252195176963529609145246822744171701402596130334487959587548748243405340217681190500425756765938256288552238663208347694625408362411451160897728580156830276385356285535220976015573601570662831622893774724328582624002734488233901909989090145487419736414669197501384302188518875525236819784246170183522818955901306142570744747655032695975912368843799078140805420704377244766300701718174489056527826463142842656498274285529567083382502544603797577915588450531923075036328599965589440049340978983092642148665619784911207948357351463970673113003344056560586812847363137556847483390013528471457066886939721562985573575049654916786887587621983614820742787246648480710287096033655625034076448426038716769305202790798526116373920979202245302904836622731869956688333007026484788444686680932093095541940217807993130200777265695736832001990223200102467411922350400977030695322188034060046992463425013777594892119618094552777808477327471637937549875840316452962629056556370164508419960007536966209826676247913154274309717193580704298463839978301901632978023110965919955624559986930312610699966364191518361163606703111244115537370782983188597756643904682011985203642179795813207253447147539092696788488032683744944531649453413766473599804977851731010613658953637448045378742895395902651745383495557198533986344138058631796114230937287246839064412116853012778291094232157520961097950578244025665789365139119167585221236451876472095003467214621101593486048323968580084659967598363910885931986576996709983531436274593293007297119337437152014496482464573864273856050491084803659505737315363508778163727966170257208243581010456919958885421198988869326288670707546823674728877524730917934479224671110244863803616148361942470661908510267731822466981609402449844903480872487581053656489478565170976669444404268006080662042841312562057679544587458302799543808019845075448878534013667886224958094920996033976443868462910715111112471762751953371787031409836583236762737556505182621492865181982836066913099791188850119794341376022907033125169446912466050746835158192305842179542221352678984741183572500426969520010345557750632991392974751487826617112351472982583901455949706847921785904461315384299255794509886939551961869246756199285013509318129971090034872553287745164414887422822419767418031501952438648730358821616031095071407990994601662548156692912358627877028007230940800372601967837687537594515792552764043519254876644160737178889207383458371250388235641861806697559919477411116958039733630204384720881315436118116360836801906713076409591826748425738640669961313052902766339907055415339811346365762828564846685696829485512036299690672199496643222814889515334641043323895906352239563788858385409625844078506216255597756014566453234661388459792362971003106051689473555349654797155928724529301844989103786506936340820680987300854210510427993190334065658017718484782284597883201618023367934943051456057119540948034041253565351680620068317126324037486539974696264612174656442592535839306500087074501771924077584099735136228176415810080681041475696526438359865254811911556096895840657107405461831579492709365494818541741989708297883288995420349386483928854253357942988847140715147195482759478291194030734857194511006730936479894396133090075964707938297462663233891891871525153423869853335950792701951258674697297638937777421806506403450687771351303439598323412636938711749702734450815100880394743322848213244741214873844055814769957144397473688815841460259607651484765190380037165774770248768847136722800385331751354120910305518929624611932004966793236999004369739405593599733294113077889331103277485737306014023666995653757225374918573933348556521070727016896260691808568199978748192376982969072095257063716802321772031719543261481072805646964059307069460486625098089425942479434391198434561828787122024800379226707738976485346684228145895561231186038975944717307467388090409633784004418975284376572032641109643952757323779731708919920530692035180039388901225071252262333505380877795206623522483969430794797888707684512313714873252966453201347460447730327592294577247763625008138768179140275123140666845257582650740270752532104635818864550877841844941378684991182692175735056470158038639452107721627981137324403221484105685215353553052107813391196442861171307396712214432116012541166726685049980624848838445185283328639104936260824985048544321228384521360100844808108083341071652538641822635696814366837513841506035735194964628961134470689925142665870660529490640701114902371800585149792521203595225172568514128174060778622234746101028419352577695998718039838204184421275120458170251376746840358255055689653015056043554824184198459455710113642406337876712065925013882000112903391914900033340518704522104232814228153091915411903970489852897277223487862354811725228484230526657203953692782285922512592232226219852908007908786065471510235126109667715422700725393283945000713275497268796910274805573283997829882160577692399812546590384972957666735789723751518167290553853353990735714699717261174866124707979072826442486322757565053051078091833033358858577943462558581318863712806095719072853378485718955176443301457416986791311183302500971024327760075517591854799747471609738711050050120233641980905622735704236037742723573558734395331762287692262568940236371423812895047633278941067971197184126340382222083331372148820076146920857014210874562954052527358670743393110464066794312123975192560640657478633373561087923456281708742920591492460107557622086276921260455016449945971730963241910584263184072717288333830669314197270239532951773676896342990942820550201777518538980961802343469154760265363876479297002051296831389665735887448413179867779233463997250913610573518229299904416727879549107386122571276817377916179663388766878992937322872602175633750110397430736334978101847692337780907601422233770319734536917205813459440606623924772825413480911225308045292684570407513544245177000283469936219891162487513672950946311761820215889390564961362474886668567415699036194142329443321886628286591982711344952137855421446893242982653328403035250085947085884646190164378247499903751059030261862178491512944604844470067972278777510987477697330367777966293233690156034091520834844048179844798994479745388860999443402209953025937281265018291751205637644027802901953353508240049976099583857255467911068534935926326666203693735584451522560284687944072704432120977553904583814922002336335840779936144173213878467007171994124865138642443859191075476789419046013356058518990975123652484626879543440603799185746661062544651746305543892256298085779764882033124698979975492511033111454515776205553240782463722495693461403046304375732106229667800211371430209406837943756333655496821851217779778304232903664230475227180400152758922522782069667316401375649426766514004394830528063337244749126581183705827316910495845958862869166609841597138931568800390005047792379949751938209480929349674286252238803597420883786702502391703434667667555816554849475186888515546610003071778877121528419526352440361652202604896138160289434733114036626730667578072890050045087524101016644747915512477968844054810391161356260643628060681649550058807650751460814403024354200969689218672004200444238674049721870484990081554569600375571239351453254002924569546408371609576068051811039613247723080570301990288549068973528024442175996741634079879636776642647460281657302579226494575567813030919417172959787709946367121629016142234422133622848716099392907114198773046232121839541832464553861424601313550771638507303233215801905247132268465754467112653178579774151883718179704210366645734488888642853058172116951309403512263531216307733807853132787723356362091092011783787407742976674427734212114664526271666103141340991118396804087977564526735819557991551964355740329994522642154376922589237702170352899749530034365805374289001624366318547927100771841406720081755216248765308500807481120692786082766597184288982632408770991881485099795862897635398825543570201978050242528997493197232471086296425534710470032800962696250089271738980018680412745299861225281166400544392853390730665160410309537792741584897570177092029726041407886902428950265509960142787760524093575278965034847990340225661677871060833834898949386478633080843040875326773361891581264734834078187734550275181511089878749220671327651557210507934696985534712452188883842642337902317487781115440116811710152632038893510448087573584647700006403852298893822873454996537091122321431236159896584936284673019938609548224919327745631581000678095080480652544890845384184848868535541541942784534666821886797673232328610808034875222353276838973339042778431676861721624415036629769525713089182605319435675834757075582533632931639738440600984363801576395308873456268067339309235690654713831303222445168226744411615073967265647521905899413752712347367824654408190359717823234622234770830383309792000684034501461694878928123467409258316011811251090809877588884984198190067656904822549138289394774090236994742804909235301737715765067796605728541506237176163038359863582174925149494887315865493899876869986518565010052353266139975981119040702029232673641244241541739984025895570805366741387075519134526820574221798255082266591485935865087110934269677026060514799909929125848030541890652024935285560843092836134641491712729574482245880822009051632184146916914512490758287523533993664586221541767618531712780172003901702925796280473301634873587238600426788452764718078792076689377046867303466959471816351125483505882289692128502205313494178936180848265211203504773301564401536605202193613160801273286027540167671179404312977628426513603888353840270541506113021073048372619958185216979083220366911782951271064150660863291749842835133551751644707382519797995441316956066051451998006889149853370618835506658094291176865144452514278109327046396537290805219994755701478692065379511802058974489295247414709617701611996141610832071864447964506562251350357199291742387546529523564371129938783566413443490213244985390216846694496888623693262195231083408440389140949394071467411241090103321479063538248874259165537827795632670138148760457357523581029454021268036333441410476546026365165808325152416056832072284296450445912750419283338425944681442941606996645539098592924317608494602964334732663886287610314371233428893876030351688732431203852704049676678583360128014862183432728123298487926553688782398332811346512159139887833643029393041452604721778702093861876961350699193392932800455069416550823580971927081898583639082571144695983012945182147895189531932329769177210064349680552380625432537121927649182436671006893357160820594109953076129716728457730854894978631249114061470061314133607301105756732876041623485130912398566001684436643958822176531087406187040103257444201968538715800197080375783134761578053118301798056563347364165169794171917780481992593531485116472970958293286275602745571884657250669497068923219035221988501293306151554259149103628235274713914063966533174947166719809869975106177535675724606928177885033442255648348586651791291028353196527059123077404900924504430901471787743650883164458102026014676627239748629642024060737635791265418681897659147892714647407122006070728638786590637906148880768096042876234499100516230380880643374417830827807855320629330769275692963624853767736194626321647154925661007040477728665496026721239365144156144300321391186376576171196874891709676214142713689829397694503847579142186474492128941166813234460376224054265548581575470740038892197348318545291259259485535960408940214679560102971219165132349710068170871654149910952789523407090312382423219598897422971106527769041203942442224319587270831001965582076277486857058556981558560543196852416779628675197142526356797312499841332028617438293140831910302340946302425933323020504691453349463385463464066580539401597094275892873049567797573769115045009054811565828375354996315078696839911283335542577615587747748343196850748989907292335577862942118384623828290174696046059296945887834502150520783581583044947926680442134694249130859785382911395793913192171354242134233109319917559329673418726594640483987459021445026285153999646664732028742511238166535729560514036007665174616106506409307206546758782248596217393434888558759043780275251055121682633970630350020014893577167090264117759920008941269576360901175459815419419988374182946788181713792008790930742492448398071450409551250151181897781423561002081045196814207206371445592356807953815879741828516075641210655064433964797067393827130223638139883144450231811891659882344348146321595045071342934044844173831370161909212566791429719348328671303350715512805550306720138746413016678917913171342713924352549835174643990512716218801833886986564300388967265101285174899965935924506816557278564152003101895422218517485317862441935382222328185928896855448008248868850515967934807758813804330383353755141194127873068230814953081166699090305718978187824857394445492529328061961270607397498163953442812361471265530394754307016773935873334298898594070680490292952820583778093962312108592818381314742743076011623743810337780082674427910666816256608418705468976892532980351077930511920750774500322265823494789265031560543157311687096825056446348292092287960003360453829057440807477860084060145743677667674276503713390529871978781412925596985120994607181250246284156728964210878890483331805893224072084269812427711205142672087935935012521519904154081965953449528886956556318370825661682501865183069215514238393203099347002082179699904810687726418240163095354933805828287799399956954712345157056686269267062692286540175152160235887128640101847620504791050068121518400383004226751748287806662507359207668832955750284771890846863641553668793450133398273101276474326131550114541260503603397822180505109988263079296039932765389054392690221766678424674936165217893363007181262324352895664953012053374653471512938729827871948558848174174262505043886166225019968302263612611045653555047707201162724329988188515370769387399943334248074688534279450687113594036736021401001994207052231856952499452480238597437219896700188887618060362261659759274189503866919699414486440598677872549904426979229122672016200867658054534241545769977888752761538131626144101929115962125115303498029722163170352286947309296004254569100275908692704880064374641073805960969332117486630192394237981247200096170256456954928667692734450091959084100687958882773202356718456232740309669328598733890129756444353022883697155433791363025999408777504028832934461683812535933868500561829232775889447185600200709346197154759037003014330282631374669849200474549865065408943495494555625727892495177419852584452641048320898209895917220110678633497192127024645190657843230969682576917379301716592312447397312328224376190064914584190583092943016718338852767680182184760143567408440213013404749867667327758739763059786980071933012222087419728514498172275077402449003208303630896028367398330563410275989056134148689427039791104383631368322578073991160143386274433736550234267387740670863431252416192474938115455212234774471781540636591346788585610212180822860751759239461753950466437594235093279688162836841105799403318508592055102538715422266452246751188587667740696212046054106621968366798657110159572226220942148713863167130263536699557446322338917941505111894454061062041050317858635409564450896620592183300053732719432859289831438630780943887285929093737671895544218680560154221402613614080646055132848746383381347697379773265916155561546686400899415843290133581430269895292277279034871209660756231743572031204496947403056336546188590243801939766890235379205795223208003891644601898741424710054855356321028019820725453371707067761249472958680656833373791077131057840524908240230662530359134124122342434575986720084375851329280618204438542386358229822924834655189773017240087467233473972036708816109378355950660365186771743404071058705167580920177184253779018655364085280655020075191203254860613889591942995608518995049637706873344234310422262399121528328738004220735766571686081098846440472965856864561801792261206245577432132853477239642398528937455118520455748178283656367477787782177422023294647963685992164345069164171091208483725653855741221357675433678687036931382650502269948059898599648161921813019479403199359605448450803594063964385382364977553202824782183984200066426243832346529270926227962580571265101604495773391007704950644220995080996743515910302895174332752085709731600785671599391519237139105582224133296058392152933704765362241883328732544622109348572200313434766032464747283533656939482433276066435983100200572060468628862702222650769018354054856475464624849469119633954306183897709250901147428088392387571151408030364906020161296484810189175303187706178698730242413971746086012499748661242442126733964508769688165950919915902342650110901209292062844610922775840915255067271731399806392582681827914315590659077704608849085959674002050516498967603133431853623029224611978528628678590782029886341010298746393706587082211037221679341005830652302650147923338168084771368139049713452387486132883461634434940528943777116524712978489559848868144692048455913028136488254921434007522992980309054026293871167313655530421950905521749598540004677595185061116259580698225738310685280867277396716407746675424228233333913427011115770268614089885477212065013770334185170532181540855128671446525053894550721464355640513900086981276949319209661351688020902337237889890296094741155889387347470455088974450607600371218179035274308034182511193058073634666036894362487475394611804341315035482078121376517360947506178620326012340615206594504244915573386166744356613372661537480454405521045769104246313089857346599945757465970579697559174069092903744261174576524308706616944240530884429052936068999764441776278242777605873788482759595782553300013822083219934679916339232800821662635286160401151050131544640074303633694917231688897877711235051775761813410969829566065176060342733556568708982143740852211880015646592656843306251350675071454341861751353398585732606202347910834069681809980524131281472740316270611855650545344925071670429941533457928668195363499438257046580596287856082450724103128818194533972332852180135966020928465840664480670908678425499012451797112653866930802058301540397308010069881484706439613585665184743869762506750594638135189611469054251577419331067858636732111451563571899446563531148363515877390429057796468573049386128950119334823388344777603056770526188873562913824693109905603834152434362484683726330008668462645793576018273535831584374567333425352336168689519236541664822249628846398768367818504107059805755225553195993515589287662616648965895458157143585091284287159416679133835954271989637827857590291645614776526102690023891561113996884829007961593023763787814398668080367539884928605090653201553024717440002117396831111002824608687439892711928376241904317469405063380317354394641262807792254954025346149931636699652455263743252667424545344288837604678766825716199498986368157789866528286771246933627680651892674997446240887967227809590134501874126493879074272948338132629510931217784394774875212915807915253802968944754784430956134757147046687390940544203466288030638298637905076403581341959704386959404841469325934591911083077063229035462316857146854103275307754126212772340203959219137427856861688752261408351007850038169693867383089839123696669645992716918291290175113125797920587293261919203203908413875602674820331302015006079142865252122618026218345366307261366793956299682974331161924450015409844553717272129588977443558325572073161793244413937761629127367674175329979586836345197461200211423270794475726758335029593295602057858235300387839888223977802532011068854771840080158332531429914697697636891062581569870683720507081945611250389857713960312474619671732904809486694958324964207480621692578485381311848174529584988891936765466566478846896650966802917024760186455367551704010387748324498363180690178362042789232068424646897578524193455434422053711735114283384639956585249208077213524305506411277964221218220140086108597596960641962285043465653417260392731852533487984293269279192405961475053678706779538550974533856322667178759833990008548104675522442568133420759012873779678439352272214952822406835054231294852747123690167807563684255118309611664129912231590607667174317356643483222004490988249841842192757128533916221858291050016446012127888195798738092330211800756102515762443398163199139803701505937717138678577739637482836864804143130970707980729548347089785568316577971092921811840053134551432047451005238861829261850754362293810092483335484582703588383780934571387352376443007876241573740571850387599385960872749998178943142332022642968035702391797643607657038385123499467017849932875066576824553180853633330108582534154029517848069338524885974208809454455301376562853613229939726225755830666041525952231015288105450091532377454675621002411067931216747150528807836689058566726167728000480208500618935464930276421902258234685990883319384647125706048512755601153577160270664107325898994256483185450781485570349266802693332592205486038236977346022002474048754768679169095378310880924501900770968746973527820479333320117980610131110493194479665262820976077505783503374882293275753409342979564235996149422353494421991396401066154433483079963353125000411444878165318215009019353534677087885024680813770654181252832395535432646220516552615412010632546390417668511215903156630368726145713458232472489686602150408188022884519919442183172523865928927229074300877185224288383612280853127580535498563757391116867072485122682735342428659150516541339453881551258697208746460348687803433268117274299779144972197628175229754853112546929905000280242132429882806658352026064511808556309519277101216974218893056411599720190540246951801692459669194712560273361814358573613242960344803557039561675552067643451502106919029978428970699315685149405726842001439656713835155384257338079956280979434571153547922744341541257690849167427294538632450149853491502449304450276283604880102512837284637751971425606820563375259212836167120691427102326947550129268149721245123736450111788612726343128368399741844122861909821120228962370677413871033264610968454265349129986424276369679265529516519333120450071320691583559869836978345417421442238594060258011177020858982240384021714379539363962932147143284340031735898915422895002180673306142187035886981065788348359693321684652751250518408459641216772960709703103012796972951322555033719237948939943436359888230252671622287044736424429395126357935303758037723363808584882623618140220476785249436826928471991416076130974939753372414435277463972957899461638130222382540192358904227162871158174364115684978110455036821193412395732043667417932078952227876977158576508517627486881573127110904996236634942850084766466760964413948095224443547007489405209096341106905935063203940218125345142884369148965541977109966933775439080242838827647278835747550428056614713577211302886392564667746277417634087026351380609322537064032643889803551289940268166517015930546094914892718324268605184234565941258707622962817880432820185352847767270659500838489767333927435973693608102583677482393837790948303782971092107747652380847639127399005375106113335377268386958988002904607427823126330075411580943330175050519968495308094660456145810190731739384574987072629736843367425251691613855119658115439702563240714930562345467429557354504386145340999516271709291179839038614068189751285216850379758165885791129093810103918084605536534462954849114676535729616977730840935462866696088385933390605215457020445988443207441496139134204595373650652455297117057455316920498732036158609399482252777161371918248456595860217569491332173922901497902954963030744748227999263800644924801712458690995861730507791632660497521035685616257716985893831570526976549172817086680715197234469313257177310727196351911486064592044771985509636338312136845507300242182977037916032311414912149422318605711521683533046235603941386956290461618507324293148113556193709846546241852771061342207753315414888488363820807089521819879147536216512738751956536900158443024854136296510017789772618308757712171976466161469485766261629217131325913459863440862759623971390515486488894403453100649057823414737193749589375791410560454361331989756400960207944730516134575542874147912833477652910049395515562635255368464154530340019004574394712423735900355364062730815566567756592350394565051129151143970021071212485668966897492739709861617640748003040560065259044338982718395381188177987526367194930697817424290752626460514619313491405741680573485636541043796149341586591705043981047362704512999837920703258731514855773694379496364410572526638419047346384886328638707815996604559515215034946195798961077498627777910374561043831494323105934276013335663605970924191794023123352278122587553214564503868118434281836222688360272924459152392614380565821398924736302843421078553370197720254252665252789458056975687032031243009172802260580378025206446491385783248540730717365632324076374167536797355620632991535897189063067263592986541173565468329271438232596879988964376916182261767286975943766160790022180837597333704959418896316207438030814963120505110949546225843920932202994174761374809847066253468148769035468097320686222794864139569867806195720537388219516526207277159493524931225320316563484636790863730850962351665979773001017804347068214199344290616819368364794791687018886913792870225075350142162179276702027833078754126394887756676110709216548426262802298458665553509850680434962527668377369014121692487868711590532032444915569444683614084754166588624385521811513069470590389715137274648412139241500788529914828373542363022998960098653360924775005082442635625933884786661424924417963294447874371719981683628755152172941081733135711150956445718603035347191306479179699283800900661416727594424517581430075964178452678864197377998438562478041017216217200631501118223565227924174350919636662978691074307869749694040267373330638594780513852930073652867702960847379892725449751425732553264401254991949417796393619978041647276348167537907972239134518355477276528283933258611582656024463090168692710987051331005287086363733197344158417522343274367545350726315769158111530120243320993178228711996051636163982552761224822520069606465264629558507496873969633910029713563875410714398024723221034671003854355902548627745169193490655873188578886646550084178965996112537527438812922682198287843092831739105173362059859476570844382684906837773655073442407608842999966698369887385132233408262390986333151713905876528377296547610034313868367132608837954373996845340559864090838932841575897702471488185726473397288882390543943823523285921797134442208192385750947586478547306844698383436034059464668224679707964935640067640862767602607227923818115937330941281294659605717084121752440932927254508249968830290924191097772529778642221676974968286100634792728651477931313124378308405891996737110764410172209497811090182303099532507154793159795526022316267818351116865367137036471923599742772125450360627469866833760010485104710383783708421513397454636833023649240980465630292972617438395299758263993430123587342825903884642583949673757548793804182509956771710610658254827786457269603087005148876812862512426030299209594405827002142469147941678568348574399198285330612517738584335347948718785171385246041333936705950441881813090951129851179067022533727352211586187654514288780624966769562749239828595223218540854189637493416740096860677365936782965117755298603918439864045989058824237703232252442118823083142605040996504110003911956915422083150705877130874289703510605364221745340905695775038031117978571730786891896937177087511497744154235378018404633174777118455656507221809008844549229979390488484076582341049680371836244964682071804681571262733607095213167718183847669604861274537975785923877885721372556767523474265282871833994158977690983664999447306426526796848659859848549740258235461243672662747089201694906944618303808347251509377847111811902413385072542924720030079133802682424542214020631179780808086000986135687785324489616902412676208490914486436056119186135782291311321155715795256396641694317263082178881933086567330339238972316411120234563600035444495899403595224321576578693641919936737379066254259866069757400665065928071325836106308605518964750626407344264605831498948448180971530691169235405745517500324655978330787220995697383910272953886622719275441524742149934275246019202941887754216326946470571248031429119559028016207070546523988080915470407506645262844070696323881215079644992148407590579838024481935225243939774688634897591196662775414700566624644865334874263508276179438447762988233430261390173050466765336595396414906683105491754923939906392901365144774759993054300885198691486890447545478775139091073154362993879812851421195386938619018673121505247016886228394842266506302954896347879518310147218110042494992224984977138752596573917114867480414797046997416746175142600526446220588888048116171287659794677597357487725387806370830286279228258197113080460443583565911221698717877946307313476165068990780907296259435211046587408339312173749254276414633586582348136549821599543550624902082356882004345284225759139940810921896726917488282426105938340328996591382954562621802289996076182168601627802485118499218775849687986613924660759912674851496825031591053195650604593046330042989418724688857240335307276845006449948561476069663135154821633723237464948457025101295524130088222547047815232972665533563203628283025323672981534733643772464126329355060340907747940485020655579891100059028106293134584776248632136751617164487403465941864670609602469373901166122597441121137405111760948323083402811671991003009263651433708730870705057281215163316413402666701557288828921489168975163792374828977978973554813720994433062083511376706705414604536249326742643442947020877297295687013102660871426281967852602985279160418774152325455258139231510559443857270987844495772058367096969385020981350160614902656859887475689632336916535155737435185887472847325412990128309842020315954208780826130921095686721814167718462975768128757729966068890396577732507397794502479541996171987067018253298419070071436630765500421437508973191314507253475242493049125534228226425745539085487952552330386215601317116428872238705295012873999902457828334013725168333740539369881199534106370674902090563520269008149721670069420118452634415496823060271510912140474069613918852130806377009373312478320595583728425619627451217290846798137232350673030761516835688265983399826285333576830726103971848582712073231052704327243986965980827264770276389980288953933752188088141870417012247776895380137325885003858564048840944130742663254740138028022147286831418133828343558221935416744161724204766287900682578786511000289152339208739453014327550422663342384360213070405822417771287462143699681836752722144343633562599454100688376097672779885324946257801547281511814905699257404591619203093969493256286196160189255355276680740218502748854614592586947191690991128861166646942018826105373062221024138104691714131433038011475099365770677877684652207911158156573210067469522200804730970629563815625935422056518975059206683239630548900749023214134663324285274684479342827275237250844209159291159440625382567083849624755531597859081673025679355365118797400843056176251029096998015562721964074125042210690510768847300533160547047307833986379930855420494174498489262372434756654167967806177249814288090315594494581848690245637813432248882228331335664766956388389085191053108061000415382505908390817531295782925548779657232706902186792615110816597525986214794392459990617800703710133121386063949513626619198796191690876711331688669124748256550212150202722272440272729969868703691492433872471998207416982682985623103876901751544900877024498155990757230471831209404922831952932158981077510222029736796339000171673837034594988491936663743310850479561105607389632699870395267744353732218868056878793035454998573517698815769733060430809032095320614801095136762071312796900138752278911424212949249267601314308750008106291673459814571606641412492806912990814094943851979242155175756952418559519577525240945667693305700347872983128633691650661967509954284912998379472547244895593839055177125194664009031962529351362490003819959085975387465816502626087634097981476389649159773484142086660849060820637941844386013552360046738742291869941058285617744731634479649785702211893872702597446433631538912715357394942983579055654984857281011763408737976031799400498049461503325386097289341082988235898511989953951559540718134539330825309829651339769761088916775840835046314881527725834256373422194848506592402321054095141624875487682913210708403263468791411387502267958462598568237097010027284800592133617792757048712418766130567394889330070321117473725730231715833352028744968554717995426137761806874885316750210648189228185918572006989551402144969685191950177249819432791597690089158412236762224355985421726006021429225947594004859608997914392727863061258486105550871421110862464725110796068796179130124348965972900471716707431375968137319805248239393723155930996864643701871253067982597375911329854737678817850492009950008664482490552344399954085045315972745066442648280478591058654634049312917839299287313933392298312595488514253637677706709847777337550486960909812363692083086308996814015050928025507292937899069584423243478057675579341133388917328484663909098428888157833231543007087703053911808411398046107460927672599719468920937111763899914720256888040353583070598603679173323158417754303743815318617287560041657016918999061054835410662177942248247945465749170260666282009218514281517126717458553799017983661732495541692736089640708189760770958655603726284523358601082473477204745765591867207889841494557630915543113357313628641342692439857684976519747649290810408404024553348598805950072760565410601193228200181033038857391779529320562784550775403017999243423145141294118854783602554978587848243502280222550819307411406325963762171921454613935312143594025588218538377512295520290079252126528946529326098461373803732929132505531328529271291410107871019086382186972277555026800650323622230793930573442030837043013609725563079553789924108900089443253105258701901118398214845141392122869482377360438167449516282261063140758125331115252018355035547876195854491477106408725628017226471176241599458173020513176047473484903243944558624972049107407873743307578008547616323364491712075464313847543640341421715292679994918928976527340830151658158223079614234219136973144118023405358646560906202599537232137442882968562766513496639078527910864110278139871625323198553945136775210486794137695609998292187883018540259761791616376798762916738367594146174856893279210430993729330905594960217488081515152274002741754039685115507540132724001618745384026646789261341406103099974430914745108405504331817745301517320543784247112376230732540539376962702395490218815821667658670619920254578142969175254678646525526030034199325515114635805167434924692624708295755999255609507477580603196926753624219960476718836941035042457349197430835862233790154491452064381229476350310884009547785514962910417163054998409364553443477526046838983678910798379476931347931606964539024565143567098944170949211223097365665836415801713787756731746393620281604960961582107805284063506248460940665890336299157403923611135819884732328449191374156488174498681996769213007346471103763418394534343087885464207115417838057385135346116363997564784845675993946964556968818603961487145754678161393484581365266161958085170462074278343784792141162837245687628985085502861179512666949051913251301328331257007377102627831265458679456513582162666426083232807128823080777514971267366831571867186907434732099356385278177919282062937371424045568541037410301315160487228510670538241917866625725353774285356133793929150283296486543949635855813851758893806927640269195221801094601476635246589405716480095706608781804812464500393766045131915808609951960611642274444511693311474020636121599992377798830637098010683416363399646483739494401303763685475594821176389358814158622642697016661726769037517031695022121331502468344078464043731540589703048799322391208763127320637645984451355261657616219755581660943186034913684094084127968858875003038160081167048989593932876805182470506838456152552071966494987775068969379941003296799593765121727137470779605492419489106587339539986536490623905369215854567297134856646268475390830871450344330536839184283189722589225915093311555585619071225941944447159670096548152963099046360693739062862896181778619494284370475992617972521380476849480014477299081718865786574836055027375643265565639510152737141206233412220106529050645931575709006639528807924480372049459699396760398181717367812185242709059523794625689798951178826812702469347916846186234252189531468750652170646079515019303480216812074850116808265682049185775543492681015017190561062545074274077916615469884004545120152491092914871288916960057061739823965669019487644446766067804477146451140717674609844970894292736780381341427337807631379088065912934478713522714569837083545181416865871442693788868333680993082928222697529213881020039518469223155499542591180763606707411588981477839386772144164997552612573077812853511266297944677602104803150245511953615337780424679466958007478953212305333732405339345385273841530505920747726653873457222637015072183101222603978894356154143503339092922281026704417040452932448365716077446819352632975693857709098361909159972150554700117561665956675949948003308166400251889514455669249624279760898168374057123130011935795573015029688553161930273761338821677118434912541666044337295809480955016277970146787759013097548884257496407253837431438905927520760378470940037806592933771723904509092004967996698477632980319638280717660717673841755230214425335004481897261988636407973758295730717156884910446861095999388187849184593862650516294918174103799600144718154782039703873722948734072035544503658395327279142994752781204210907059958673823926151535998296116041608706233416263270704998433311934980180317978062634747450816249488849185695346490163152677000780142278152742080925910410563063088203002509163706733563118913493482605395014617937685689700066970705518520803517346136512228782760255101973134669391702954350309571703210495251662836823069966079926435539036434787585963677361769031964124004568218905537043514794546440546116753686150598319288374019624081791521816487392950405325315445408647075444577204013324025116467840038291215923023657685385534735093110102573790551636525277411431997210162261912719409298043991445962464716036813820518570525112561192223991041083515765185789247703485467281940249620768578514985683161455300709509886664397345710227296964581583382907699372527620753846404222864391466827962334251093538726297744080271897406448864882335372214677593849442099160722880817436838415900088846631793657213600363214480839685276655408753175454898072735464873301007806039272937140377486617562998094524216300727753586741636803396195594556552109167374964125706528082597917016757097335451371569924446977604725405661628783527862525078417189516472721699712786136048839873165025786876170370786829730577451254880109818492668949153816229121416597141637400742853717789732378853569007899016541210500808354152496928580693505329920651128205952100722747476852082148772211772598579509333416436337181353959750362398397924863075664820418441950361174397216009302641064095870827750669504407327750730652039339289201312098732135529282925517437358680078787253865009701456326132223816099749611087934930100256465168089602187066591651578366815979462419567059570018309218406062494031419473660035919055497517133373084438897671148305231710765942758388947770519387026539581326793104935094526958226601671270153153929581021211818453504083780323249431123808598260359857442401210817928832326048400138218824997702441600878071253449456450417174300987484238490149708979629929224941319799935600762640260141037223148903251907860759026953077826160067607117769435477371090194881643780146929049671567086282197783952605632665643468633606704722890704500758376210861639567704134373785348475346963599834742339239634168003130185092170471534274673083020218533417483239714180571414251565069790060206925348623006459861540649492641336559800558275817266431030927200118862156103293448790935396206232163425088444306744061612169777228169456691413759526826141949740472164046874685197578936568843753815083262023162039582680008838958050840528866854933055587466125442928051647951232337056780734454644741566152967008517737448129040817805095652968913723583788726034793136888685857570564920661980981054492086811254361344200254574900668867676452398695774188795516229046782473096232746835258079548411324510031040584790189424883246494785264192446738733359901207086198812117102819924990484418474835939833197125375859682915030264757070286353726109676113339955637423731073807215081019617750340008651763822033386527496377446679731484589430126054585368310759483942130864202064298700469269027141330496338240031025032106824164298786865651589496530184532820058463044975200378117516675415805375148167979398663252444628310250989299602106499688277031624680653874822214083671762378106208887163920851164161474325548394933046328327198472627044693577460535218360977654627812722324804540943050849797642256797534025893072859271324470072839672705321901185338961928158202193293779990689144086502127354453296599175889692406013306588287487773839082538986435954760347611302970376130250503925866709023408577655141282592018086936787613309218499359942888437097260444625403204879431466871858752872147502305314928386576597597815289703824216770463593611671273066849581151650599414670439285669305173174012853177345986391309326077424800609876307714707305511507031707848720818677837049624961143371712769222807445429741953516825709107305678204819647500637119122462949978384848353444643509563248232241987409883942272266259182789553892606096973145339823832119637846457341993723351648267335116826808205389442500167214422111116420714753866694381645627844458791934761191243112165579258542728971668387824668112250921808725753616021173225636635245633702888877485612016615620083511099190345252564672197792242637623167085613287681433582938464520303097287192673902762207595824108900396948874407010710728778913334990124503214491127804231843238548290430746364131790206688360699398212864760412371784173286280312073979957300260644471849830550136182854086767009806603628974228738001808422826925980420880501908077770906446715134128537015754215741515481072376632314081449654422259828164989993767235998544728328489296786156551283185229354191239032609277368192918407733049036647149675961840586321439115664549183476692562793129269340450911357323608689025094485151711009685065057349520613826664482281833018792350289016406731696287091087193179640267841486469403729087232740360713042446335614222400989695251825881031483771847309845031368884823608257764222150683298303215713684004839284717205068860195676034798653551891249741788307310328156747831402227733205757336928266695324177731765556358053189926108818299551959785911026588769655292646585385804062495033243199394213921565473465294620430177420728273352296273733162988490769215652566285382912775165788653132225623630544963404133008926049961297796177972427265187692239221020773629800436674194977407979710712797380728053518417220815359632337450848727510288434290796023864315291372086738130083263077068134588448528653811776410062797008623453681984325425464217600077273433287480413485033793894152839290452943812200522721419291815575824785409174264609740453062067368312868267641298028570979806514423618872397611965503233151716226924609843542400078353280913027010404200808878513560941863130330042003852624297581437172462075189890761420190025652162227685035838625263275436278144099922336137931537693016897448125792727022417147651553113307865733043356202782419873882572599076629866874818040546060913081095484358566280305022373476195196223416499701302804113444635522334573522193383685565880419816579573038560335129214781252441834388109593504789412066897379776700881525447944212215858015949128034186311470393814218687918627170588578826543064911120579835066568277817208110451976532079188315291425912736896016604541145957965546659930149486979407651345994203345440865281936532704032789988362793203321831427071104727158056043996659032536453185858635431734502489336239798303388729085390019228657404775577336727808627834755743786588925614841021018901686137315376308005988819157877729072638987702781119968441812285553677958736213760929033397231181271833397875871772972087929313854092908702313270075879879183976670713800014372719743038767337241905832697221123967493991980391360818594938983688911530465174286760438888728862318028841669063498294472309965197256164877807333393566100038776218889853680465191516727516521863615091032997789994390518626829144815109886721680660994693332713400521192469816249106080579837400205610165413320824041709505033293284158977809184264764005825365965330041053210792710062429985233520749146779978481272970666688251507819108517561926015424966978799130206638368875679284060065341701960730295519990675186800664133505412447712794067793027811740297150393216773339045094039698288668961749580902262151376386532979794077435483155128666782398210314744057091364383933760341374464352545933740301973440095770677778199027275241927717985359011495659512430131971060615902178613297218376647948853724445407173461270029729317190889836336358070227613802788879766012699892160592478414826540753198470992905676227144984179741993751442902470494483036141962316681326990695495335888805303896890037628181715972886200721481190506699782125604072197924573395151023461094608350564003195106306745832471257338152937601282013642170192355761429794079810805095022394947749688733386606813355155290730300434234343476742673453104930702886530534681142637294511687494611653864022666751612955671119306397628878466814166389080427907661468514223352151186122301805319549657763435954005089067209962739327246076522120374557047534810947378504770069687094797907475156684640579796935615207627201642010658200958832492311593829795556739099290979276750495657827966697709939820417355664364334143288233210008498579896335636478072637865082382358407296862145112323480768921021395430073777827541673554940103290771966883947935248413158179556202734338189375719498114884413463227215260808902509389177541007006593518663886085935744051681332808636197732811011603194288461940619833189401880195182877519550506146917694378833013480610801324188536094190889026422736802364223929776884951719418289153363459134870867439287552783476808678108076441010982274647194957976602133403770713512185577462346768062515174309454745098484100214302116755989829269074098906216628717246357302139018039018207278808254634554359932175468666804259451525077558184717006251847152045708033600510898800559860525999718533172295097002905346140655514593644467999428365590333294686855940080597777854660969806866258868625889759845028896045424117478862012215848354899743288362312898597317483290721893383226916114261195208221877347583380302443612085454989669747876788057100947595069654540906998319927990706597442300393684648375186033843125841908361162808153763734856233882568671100198744781897792186867396661105185420506904953435553645031424248648767530910666122148464402529008205272817968337256035993848430884910753606233025909877941401583635668298612141498421109551156766381164513962457713070521258396827082714184688418196241854339060303437083190146876534183869389716339035571561004583183576643078461645131796716091081607781525754839233311631998724729839829240432199117927076902966778577247712745493476746002976810255667471307566965769829152812511701377247762364060015703832495467828565921030267404976093740808332874182318175195044748682279132502203680006540694319571578120183883735057739830334668631748938511600255014659581508938125356962235047467309877730868336612847153316984166140037317998428844271250776687343870301971326930312865268043058739269774804427986709015795155341064764403745370821269438647659508188171828140623950319676708752224173581396548431956887561604243362564932615502640467741318813987948397561773882667390790302955596349723204453716014593751461991448582769431969684067760295232276317614169065270413787320602669242963700293112992175608198543622118225779648914040242545800748712111434895747537233482683462971168400258092846748713795121112143157605408312068043164045259548670465798596051758661877349089946784293499054989079698266431586762677343227081427313762946894648592474272020490210443935210850372714251814758515005713873817951952523983211641043137312098532932805829453800506960417880376490609148510218386394671516424178567890419047525833247615987929228984930374655139806435960136321985616547706941738135994930487301890377355233930533615213256025684754253756070042426857571633968475044798813203376268468139874962774700509061146344759807216636281844273825248243779698108397741789962740608834544101317278711324558586190497127549484653935462168540607725808376882507189988480177237384037666764999197550817290954692199239962549896384479697835248776797820478113549757208525028709877929329511396219166417030785342156154299361102722865854933027109104501039003898311815659315875185274515232999700679878748913061032940613363051267822621744332360263718717950727152409097662625259237359328273254659340817498303142916843606512825668216219065613333913060044764739478743258444942070395345557443746202199754043269708826594365105390785678146425482113538671981794851840946072041810516370169683306183006105368718120389502175878432219619984276684403229001816003888765071543845076865747887770658754955532436435800075498335374504748945972123965784706240834588159717710666500843693098938264867229711010483525215899636039755553954408873610597409210531633558322536050276251422352453279908857274804761724431845488881127276497894966223730152636676707033930298848469659295777568086212961149370224722375985726478968368868243123680469821701395685181582030989772569696117753019094900395345638137030660433644313173576221541111221745412561432416846941793220252424271384866673521748148614733847865959506122521855316378895026641011049340776042039140464463841197105789647521829216118900761493952964183602124104146262884207138854088374779374374058909844365583612986672328637378383862926977360076485380851324053006786334218099781256003661150911039262461288221131074221702382986517592916199772804768392367105682097493551400100342727146586692629258129945033598562805107342357893596050063080907130284518799323098865222209391107117948158769906723562512047342188500830445687491715704967400431098404346659023307285764398040559605774348046301108484880022793056029893539437298767176957360228901598990842588195551823114652242385952729821051863341471075589469945094279139335031599898936170738702365579579748862398989714523174124368172941414751134622994733571623442401637047823906448018598840307536749810518817670309049671977388447035892168137210673202352351146562000387990119801478534616761482277170047143586824339977268109343160309823221187041313900278947591366458489004852472974256180402143694796855220983362150427131364843381114824452642095892050576417175273559893239982638991732082168991619615534190839718888296136259036423729045139335956815873106035505857099339573420543087925934519547814625624904337279492436895735857815018725116156969233407965028729062611639669917975719613097466421054624110375440919954374011412942909632459791186662169823804973926969039021251468179608829378328662531146156925795184331770508552116999617338419088843959855517501552663788983581738767698654486725590337218348630806367386856662523256612140356082915091447567542277050969876631715632286794058740016822879884542456338612687913091784056525213527135577091841211542006075724084504164942194277370935554988278058069819109532448159421076586594347475730689915896118693588029576449488580148297884898315147500940251758264464316424488193878829942926705591368260466720766061735192600945029852237020143832203768456970738335551250719125330028581250070177164647982933286654029962709670651294484907975034865029358026985443695266404806454187051738659154933115492567919518797105619948562285265180405854885839694522764877649520162903963363503750129202299685010534063876888013591272713580707829488238424748323949354591482291956913483341500106076898721459810453431377210337164651062550514808739490433205156610720268420978125168000158738105430226162579509778769053761249611835443537956520131573470836464164629505346657826138871573791970233144324414110442511960536775568085791311143752971396684362865140355108317670679590584078732636109535548254010038062020546266506277580833053702793549352632809659660684933893308896559191931922009883969810506445135257384960273018378766128569563123936089816858859768434555074687528370356445535091898833289327273452153602168213218266829981841588268275464387314172103642003864787918912486663394226424996224942630947077906910496096058436884382552471067418515315203448681564621218567625890599520827920918788541022664930272525608705712153942577599199272875420389670511454637577670719535569071253018577232789664881597584160693286889529317320059304396929112816034216808716655694156369772021663611554818580350662826435040410988942887777641641330473709753968951063340207077261736562756100584005902821926822865732973552990656342745967520390371421964234115824079611871460724503240206413805565590735301110123719680794765323096007706704334811642609230989953135692058071664388215470171958317366650737231929635990296184276061376469738431082933783560842398297663320824303526497608836528320913995485635464174888422983036138504242593648550342698266953397641489252305960786858460407697542323451014372210352655599720087144604640243849507204935770437807715860387781703340479718872273874852527993382976422246244433183195097757928015900977525664163671806826121401845151865112747753110514022036670261679659093793405024363131673922066016479938903285742579255074400220076078036730577489109248961205339133471513758016894688118106424411543713206478218269581589418749582447254672813822613592877405771937158064094608225080820127666820865259651527200306015200966458979094363654387856988248169440227260362697696344982646836428343638462303387836378934580577931220549604990554691053585613277205829862460512097129026901967924841492420101789802960333681573634955178708649032177063346894805957474356456015968741412170166507638538599488252879940114110977628417178072203173551686288951142872262938739784009131927656735463214845704481472061870603187382380164296431562784043080332679558073458520082623554330384248414418212897557684039109706983910287423565908017807971958202416904960215008336472033826251400204989462644881576852887552950875327238262876602786356582935238951952650068257521147177704516452582616044576756333629070047949092712038871818328625009391092390194244190944860451531940989433610626843948348471205753651110264038550152526472001042301685897368210903612950507664891949832479896197072467713941257685850417624657189853055524368511235895872948732835676126717478494030731466088614981998497732219910524044843496918723143810969054533270636958652042159798449225787250528217726164139136167303467624306226311991941322512899370438720517014815824758879311659219387832215704319988160414659533370253497313537569087162536779212454144802480905115443774361466732327451892110954995065300108051710874802539879643981492609927307519180675406784056179878653718908529554539927708493115525369990519181253946017801084040786445728153040824815450694365000094337927366073405450003707347924476944373055073228556029569348181110991236228617092103513762212794148912122619552987137339292952608343199189734562911764264658318581443954914915990354621398663089434753199752295753730135437110034447997363110961467646309660391272877884249241650290237207135559388092623562766111530708422868766830724002615020144952624124911679282015366497485589571469317855981622999021340182262201645134283686040682804241764530074700986089263861305147329533296186790455726953222199210494394385634172382603681298500328702194831134447564214586745224780512887224189019222840632521108357833774874708906133669304895645919610643792412316786184129247527003894484355446594947317070999789208577301594445932398437606413208780311487789545299715846631098336462879391101415173022784881317309349974282186215956909062029263436538389599820610238373030645494598745343928440328881355639635694367870784973698468044009957061138256033999147418019901505255063161308595383666172370119347367570737250510431928928916872635808021400386082556162965677959102763585348274354046474115829972748570087507195672829548960561169099075052346689851754175947808030211536779037075319233686987165985058155706126850145360493983285227281464028229962135208056620294765738714440080734209866652518509192089721371448409353398406367812329975342432454473025601559602134318150832165165050937462122233244129912159491658126853612830759046133933552529185017464226951846875543188631531926200490722138794642308087928274417772647715150777294175152739333610543718781297424738270700553242673431032730706788959916114546389888207158859677383967008864104588619750302847776024274271735739613699213604139365103143362528350199928229267117802052903770260939225940482874166591849133523690491941477261888358402011339765909596512531446088095449398667925377548606412085110661960818447477076790998548269223820275201279005656234702795556982532747053870275873214547000548145088299165012049300254238946711650291314831254594892013629204486049861838291627711147122062820980346763133070237153921309529067866412424870130794639990263216427043356393800430740269538764291625507917864614816920109739275813646298086167519468673593388752453266465145508870507977905322605180288807968816020025620464502962009337656730791558233115590164531325875495247518983394385787446394581256593794557862475288638035555462880170458769444555026372816146864623883804913599262407867423139975814299407274945519359675119992640665490444563899028385409602754612051310554504492129472309396335144786870329602291223482738643829822552339307776566481946312262895319474079050335152774009598688788047862707316276759771725975638492674722979670785335687231572174131876065482001726569853097289759098455739801094336637908496962096459841792441708789600423721475876149628123220441349047957855014440388307623685718611699542794720829594781915501040460737578836270630570627978885253016260459586755707971696220182787522734417434275242438016687812627562108107737263759642446843768593455431327033221760700583303238450032584217936929318078703557725107408587984882516742125739109985782534439937213434988769383967400872937461683085260493300735843297934013013790682562863262721584659204327550449031712347905830430263482456491317091926827974983584672230158359529479427857907282482305741198068415344569160482995175598273511322780642617821702379931769111177000938796433325685167016003674160891390006192153133232936343869595205987645447915173108190270600850046188518240402440419900219890327365804520160495374029727698751265169220707166015328305116511490496374001721730285326594272625439145382308300259583863213615020388255286924605090650724205740805549532512461422822761745080054687908461436835519349775132326055515154277551803975881553755010002952769445579741043911494644165691860313564031261847458575749569631362577748470382303296319470451569107779085655241139528148595298846099880474870189080401589630159404349656282918320711175144556600275132025983179582974181264407969012023301662715453306228495026689001575209305318990067969285295783085795751186240390824880243464990323388814926881789224492245284262201259971661683650231468971071637742969266989206861956709623978075015283247110021925229556138353842558145287527296538654124093460313252097394749003737202598397016537808465735323071018194139200929921611844175148895561076143255903378584800488546117845866434200598695241049549539020742402094008221355214692571978638843703787206589904494628857238761338139702935730890618816616107626482670264896127009609301522083259406356063263381492582540765296142528937983301259322518327346336659680568591251926316286731441827317400992395326885926585267548626456894815582582548875932126202716064889398114171714154131123789538066773917668086678794484030477502489899409963931676023995542987380886872761549476037808041159330711618252857787982262233006286793566975395984531467490972812677468894468041259554263065148832999151299692741382006012041092752473740693033447809023347544411230309073967318223799532941687524228393238760881299479331463986842062583531653419778615070306555897916068780473425131668237503102531729939145388643197022408102120410039482644013530837301743242016403657625893945365744721475624746284612806421735959110293825139533287924909872546405484580451540338994909832792099509552297982579575853090024435141604592304267749261566451516663466590178740472968756442850870915900644877816293229303541698500219874329215806803889956614483762856628727879156899721716684977351685988323280506079334495799684611272950043462186961125034588968021638896342238240903762386698223953616711083352732050146944023355971112593908055262000482214373922509334501993155626862776664881379795938708365790117879019511988985622659961414254249515145415092498335362628511717328086692049159773498449649841716857084637951811117702449430141552982897805166313463086995915386993217883997585535302130687621804530968047971755096027658590971014355879045190010260711588564622110161928061973397664409070471388357571504242465331773823761124517102897082467153501415591422067241561935821393354647653861527775086597289394622681108508333295715222593038287419561547250086331855667040017974398800713053561196621115420754977006243957132176126169515491873895343736035952936374885767982507552549302615086722718490840899685857975261122148721640990415759363917715013048151877780347630407484564534594696837763457396066842414520419862405713421229394391656021348609175194665644673105405407619080912607377522524156148088444139511105619787344983834872107099376706890657513063606381862927821663495324658461589737511665705801768870900094623306369906802723269088988905403098467138341166002113627556929399687277777689468667211878040652870912877033041290208096999178340094456132983599407969612704359772431885015820504606080175927281437166880770757165433450905461171457505257316552664091460394682513515109455030113755803100168338074480389606551057476755960663419681788841558887196214333466675489872610035635708023287350308875769796059847093416117464042462802372341429097262617812219542680938815231023543481050324736427013243363085546345057346938128154506964087702987246401603264166110536935531827740483656320757964936274337191699618260876938699912195028480692844466090074288187120339983073912475360805424543212180346254155346320055582028263988660310913942756670931987302152554238164323809400829730487270435725437429026174263124780514062684779662877263885030463084801289188944628527604486915414806252281423443333004182028194098460283326306428198369392830013865280493468140296358014881278492682377675415323553716958752312167780606203454360626032853876280991861876814784461669088237237282280258319523066870306660896290468694023553210471511927912471682555314137905731508271858632444730671828036093831279856625715406593965987025713664855497415240861391778708614113647889555069678845663432849691314500644264476912583108866359256204235528281114546243205733062561658986043256139773316950473684562076287857393656307610528352175658661402651719754362759928313744842122272108986489542560265862529361563946828021807826010619156342218238684538368190393886821872603981140747301501791897017107326114210603960699303577010419494798608382669380050289162127795152267348128600316688237336801933114322966879893385761118769313131592502545322417915794574731161731560951013778895597023588182825566433985240247507451426308315235095201176565085324553195079287910918505802932052804436887543259673359038721218475672295399580517275474978273696756838599278433169655518699948106139668995544121161759452084889722486980895316234789774801238083933926033222957353368653297133778029753003057969718689074046534658324043825864185213166145366143395749958592001615828594622517940759967291467274263678054816327342458458136438019864804595160895778983936587258308388911821101827527445337595126517171439539917994009659334494024329620597034172070874893361991596558172318186095711757073034511685830482186609110093987264402242704156386287487682340453153027494693487776406872999694085257937742676893888026472189809402283505743490840288183262294718123842190972067842829842260559897224787628513044008129871883583196503461163747514600720114095038159762624933038262014981466636464864024644079119249534358214441007620118352547618637317290463060016480837375381688229883038432377645578499895285928230958840769390432870240057407308308492894495552475280923400584578513370473692761511143286283807046502559294456837974014201011816634870631057864214962495198985656241919223619831483785695882598928669771117642192275881757579452209262329295556968779678235516589465076459781603301955286478289811363393566612419082956435713219916781115880163246275299023817601818713541603562919602367786227056790818088908731787435486317642922286013573369380279752419236617606129221585284618271421917661447212691730721891081450698593157651320046977898979087557209418488987152537976073250805653516874261913328396098845187641933176870714674702549353715248084260229386224619539672817926237610702283204781862581425860168982242951876545847500567269911620771892487950341495615734612924889078139524272417513728076517645691539358571545115767112651432086032393626505570682208889037520578509101614972702659358700710964081140580997340096564056505370146908042816007543158937302363296941294502547190547080659617279800683309052118821862569651933251781554645016706198348779212924471014995964410650572173800332153952634147960030199878181883174268986402934619961525470210162952701132919317893192844627192983075693347386474347555032912098735666056146768159561735696058414733983228128209727209026928840554225953665025253186663214765330944789843883952471975638441726457886810228997912610294531075068017057469293207024293351940956711286117332813154983138088821039638602013539876120459452161248009545952675806191832887837450173301580988950385946669974627816884539336098679083256287252397456461604123807706092094092626348882699742911858159404423171135640442096442949765870460854634978813008411163759180703219817067965528668065801740449691727716213149025279892543942817839055652215166460341363413266949977324845400207193392999979481461862489113759425631108021151162045582942538655682297218907507412946232512894218435388403640688476931713260170193538686680796828074215526453285873502350994929060108337535292967509488511295560218287988842580877468272126948852141009613239707271481336259068778278347890906383275656091253827580311393247822333603432208123025422052311779598032864438194971779357286219368859896996522922644673533798058692852222298832466671653388478870354371825867322913519234813201078975894299228553385214950082819441096757635100573585782398431685084876085216274166906778399039376336182442945417994980585756510979705559548662693152588688286086819005958808970971325929807599057089945930492793756317672017014954857767546095774580666036352205586768615817469346613003208780254231555878032443442072229861681040393772882321202760304397427572684839472893572382569753761404179264568121473527795408179196553520029066306391692668453936949689333717631564209422868403676641788563597517113941251523515908672338422254601984630902338422673390125713415403499778486354724107244299313728814686557890238013015159521557394400093319503079181950853711803207686693400000037263646929246324723815684428315339592764921231113704983290287312375793063841157184663508895816512837084833777114067283888660481721586948372211760448057336563628144873567302480497924738469507006820282203777144916038794894102316296123251365953796552237492411261523150977448571282651838581750485423541578200074927050587502550707814099484914937824934263407286264723737446365378488971937560483986967023848244197417166416809934107340435900047034694654506005444790009899765841211301244080478861696454276798385642526970516406755549420592804412839359799166398823003821140899414800842279378749633651590997721077915445760714216158994429935939609120046062886541333673226810244315342477280807128259569823820308488667471733638635177705756367063293415014991529550525202758953531926625089428429545325133428606998837154411187059109346312426896798259521895845068516744644045625523720125912116337218224618762777545606074279703566838488448224498035310192140789357200067284085487963165375187781826817408735021127991728863171865928529057304457113497437110342386470032881891635075771426814403277883252137340076368845730765404582487325204221345283477566062469424007353041393853970093534911900387152874713341784931745391561719865281124721073458903593094297533728611969492616979194482911028628153865196498428191915263813117998563861031028218599159501520364210042815769501868397773495963430905127407666298254022486370259771526144202225570642024442762434188456791471866779572861123444380817498507732146322440597619374821118413072225138494473325355849348598325439190851586938131293399583254614679072101473459411880529656553579737433388886349527620688691772276671390260019497069475080139696898519039709739602114672457574152573179345957613469806425942617341792153237960316038223334757883751458269156642992972507805562470755408890666168866714283908382460134041339621618032973293263152667233956065787034237336612941193848754077043503407136234423410838260892038158115083144664396480581600050711906083714776337910693125388200261715425307135545251926062828792017472312326733943133517946075897278718855099683932320287422636916023801110648122296191262062760074077344739036636795782918968646355459398097717488008016654777720024815357905874077886236350194148139112147825879389774355353413039312697435798361499436609283480720807869921382090961515863603615419612450865939439900720251663821151674562694594500636600557883203630022137142352740028878063707920807088692756002193669722100423652740765560895956744827464845974716445837717787620232235066203349418353311963151979383251028681417839852054910671006488880868878337001747888480094376527480383154349536995209240616364653958180522662087136206126280610703101602763896645910428424041046614449487831799547973561243118806905235191550526352438693345597316970908159662846642006322158942769765924633191174353891776767298636314792358296746516540885155671209463122452891923175112612871433544645511607091536609099573097571522119490477881848335065218857303739528050063734825263470675995076058641510033549636937873885102098716604477401083948427434111282430927080180930685724594584958527305767143806486541587854904676519848238275579255805818654926056419225178340877075426860433215221792414205825359922979392029584110228200023493040576760459780563765008386065360910437385799957708172479347703448355960385949413203854694733005781744005879189086789623350837622380234614375625594584150909398594620092492235599936387653692408750763978749630543338542030689336445045854906180969771022574189297683039926573615635695406184836566272528964188452667581308424437983227765796961559064642881213935719924598035846106879987832895955122037670007074534375304142322564196699873485104414256119800336940076820092684421597688760427651534187779024581052085875509485711530827858448518972694416725731119541136401375236680033843323184957122249568461849767519630766390502037537495332002666734021125868132314647994091302078845362123856974723957144425267319877508770639911073802700588228627482359659815095773693139923150739740514490527933668036974790399162410585613676592032412299311561969881456264056991066664096293605271649954021505130781750697872795044448784992558541890498744429494537828445666930430715233236785640482024696754108628252337150536683044460958538355103698408338503170409056595204316966010693596681498110314769730567850917094277326272663718559632279208343371952923517288589827777165070540702074475855645153593185968120662974871101326902511968500876415967381076711682648720979012739831961003803141778919983826667290986657258062502150274215921711688269015672873696335124051095961875423679959383855859640462764709967184645291181538095728229324101949006797877605412966321011305954277415316856499046309332220958413333974696708523530635513422758581832255558056569422845089366423826228995278936045949027520701060448354643151939183208939435699817568086399502564823398663518671489362138371146420502119319564108852888678723270025678875967014923880941260436025648199760455236063364227345173970375451491395508667428588387139987288262738692011611678490098934252605391904701216872176737050752878410775612781665267590785327518659105642172986154549488912147528599344887602966990417419091518093728692616756070331169546243433198072241386086549110179061611612912648219119940665401069219282115809859954942525508688285436748074362202768476028366765675359367344416241872460013660122307919296030478810091124782123817657888628423226073115530925752415108474350936179014791213891052195902813021889066199658568904272097525031618172246649520254809314630814833188960954231936401063422696016472277249839578635477685485130914270416384271877213757407136031809298385617135077776001048238487262690021295017440943495992471844643531360267057156643708834757685959176938858363445099188769838414350374317362986587118838760213735513178251179030286988115995513482101287682631622568306669934288839945484721367083245243930178846014616006891905301423191014035452167891151679660281887045013752394726067407081604131181116636982456469919705048391265585158853548140163874975178132369319760492504236086387894862890015977848457416400309327750341208815145367949903270894076276651164612702345457638628805909107853632306494896266756148489004104222197832122068656563284704381131359336725427026351332645213557742586516412728730698545175196351995514746674784655226812059378032606919175591872648011649179169178570754938547396659388567327273137661579658657123685076689590603389276169737687813972938243343711700892921445085548181469598534754848852108092804286412178994324622906660185534552184611639227972305382209560328164747016393154063467534937492620436034794965891462565910807215875307882289352998947516643458055374633759657186669576494422247399586645088465745839224166245786705911952553296014285766449679728316587992132525987375716760656039674536933732248424201156876574953019044074997915579621549115823896863916129966353638185925332952148101911504957728423024547297573587216363931553175073297500692963847023488730235019920039606322807233806167602246811826375829871781924903856949676752925257165630199476426354319505858966665774043932217193398628708704596914778869471621101475865179921093260938941803989578599690880943109002242764373873959268704549658300576856525813928977258504468211903495243507999790959546177140143289673138525084700375015300424034651012701388282827755259671654020231597080907706842033783113352711285507699883988997317121978087818914525386286511493553159142771876353303912799584582675218946231478653492267232351726790689473041360131435739418320349883655759583154557590107741631341055946086402120737543246839403701135991146692146045878546774302848014491498151671408944377937126950022001572533111555528949518271891552586638140772984509628459185808286157473408841022690885477366276980555522860756895119954172735586024996709689152653537322127746728973401899067747799251155764081206754919947357184924397001077775619171239743982062414860397698905899389469163445525641681867146976430976307269662439108894491818597886842316184801792592290179038931034893856146666094345328613191218497815283189214544512695381386381231116898943742764938209250827953338198105484982541668366151219886743739585092022330442596523056284620307426234242938568349815750449819506789029262551906038331964670505542052220569970473954029086816921329075814979825262613113674502021435799717841714727706994141725696731874165104415859966248821769683492934641296915987210463328723977147743648258895474729157490947389980220628612750567246592909285325821770401948152299943533665750917694312716079289466428658413559746125222643932913181260079459806238277498986007354965992802707103946475344892729810959309930749302078645765203235060318130977847929373946555176602483619364603340926949133526202013819955011116105473302857789286499285429963082448713014619573949973124727109129220898329805956091066538327725953962410562398694203826155455231163935801836052787755972891286218543468198501375619110666892176759877947091530643191674704130811414159865887145140685126248523352982747854057860869860145845784097000881296963178638059137478051314200963099743945102356906029758234931564095905088185961231018553762986058445320557190707864828224741027101508950824408310077332468723213710552385114547684824179272923291176172588812807676954745452234566481604294910485577286112575792622716623278803557342752615842986123688346547120089783880274254413884363498600153654504990949865521115213748191670395099602925173087146406405123623298596643171578777308770212850010975837506208053261785366243733673222354671476323565185261268382835455623849053250344942603647416824109925754483055298067122334082887035336339558160087592600771652192278259411676349443582503125291764172877253609283320694860996685505270660521965588055069683640568356239652251650022679791253001504990975777158369045698444734247360617996419074922705398689677458311916791266515744446931215391142071528721936648846914567859251061521028251892561481980705222617807700557076063642385059539680288946999598621090072416495827449510610713653310741277392262844807348213796647081326897352130835095435182446151078280324016714744620984798067302776695817034031428504659393858703324329000326804101452932725305114427660593527278417439522276974399806492439913726474172002775260880441960846418923799161397628084281103265003085132677989376587545572653656377951208758184710699267693679291159210473575100724709782158560481280878212823889791220914653141664331273553902097175930179914216172886945852269193736710166703782254227016717922910014537190597877588749462213435110818687898433812866776556542939426243260109573876264095519406001039983050814380567616859582206200970818807880438913416260067446433329318067467093434552684174369342882048036691312560916776140275500500901128730528667280281375102964722032815435506928648866625957191459744172575001011339730846371491386543635996514583464519260979967896198755663317953361281773821174498168593941808057728517426529836063993171405571631907664809115552912087657356318079309110263549314304497096058989015207749580838358692973722834994333522003658824658035875828909079637384403470226011433917915180908072909155630828392334089666130798051949775574282264980908676732759921694405072529174322014960030896903229590277414829527256129956216546004416752956071770734122673692174244512466351971739474919268413471917819182136346351652812777128214362514436252167127069267922955026719895444476393376959748170347228394760493764321376811666865824728615581221209193821775820905014145466063278713790001952433062559949310043647629321718007018758603730740997171788628212698426108625567820217424292136907644374108613860915102815049093806757035328187307723122830154957713203869456061848515228976793619750761700436054197974172252533657833098476791481246950040300106868466284065158025665228920936369455141629820882595181738236473992156627922811490800227633028143026505912789622491331485072353043825935589947793756777178211573096909187917723257231595132873355537149727793135734915904191336050594647117271124883022858487567242426203349952434274953271934694671822042233014466162716583446351515877921852487104604476180776925915987976277076644509722346709795609972982822216391932048355909622791617660896910086315941661753020922584072997235260353796458821633999754870502195885363365429016808513078584438623754962511920278721051227936468140848565157022293889675792588356927492773433533041853547051690912951673084462226653636632395548270767398232129763546027898182441597444702667148447439080365616039629397631597317743154984710718345759133045609302435981494487730704937208547864774640918734901834923576802373660623002932712175156850734506552736797927410876246689080078256012452509615601659004587498766063783801113622850418627487710659732004442565450018684840564747463664315733330790268353566380499154315630015791414008987853864951938155271820960360361042781349410939856905974038461415056645818661410560232593565476988558482445947361018699370648975385934728636365178562402105996001598505031821666166889123981337983239432877177231330061933983003478628466283110539474669932729245372219901124654421840456216392440105081547160406774338173848038810582359930943211394183219023331397849384677687804408360988253782838485345420936114590191845902919146480693531849307356174303591857290205633138570889989601522188523122382284096046085341122329246801600398154110596995949594442580559100135404283090017362323822530801575074595413286680825868181628385080769039534749435090579710853308294229178847697709127915224021095434408171219416924956500053441197918693162870794647473191619952007731775785872293944363058975409429322000719636676477248768285765083181494482230426203020142696232224847188741364759607475880854896192540741836646959672998568996901523593283017452657310155273304260999367236123913156560072301028436629691252026252292771227375413605040985311224956435566096245090626908192498773427841354798966386154296778615954083628995927352598773161514562019247978149371948578885280956786496019437919351521892556477835918243048250838648696549833982797267997315757224256320464176611560666379861900712342387171202294299854487996508872968050168718201615823891048313647956959735711308007973917003106899411909488284635320290231364624216527321389962171105085333349277208718058396234482857092359461734410413223464200277954608225453487754058194070480142829295872648243703559214605748185420098529527268322526865320456620907133122453535292974247933537886957734308154606362681073474147104569721694048740008681445812903602245180102089058136867059946888084201876913566627510925123602199443663078929131848083518518855145198759259131811667645878108532141463551467844867632348916975786228456003076670090898001835537696098067859200718286322811414423205139917663215916715643734766967877235975446344556414135086100875578126937903692984437005780552269770993273184676911763839633163586095371693063878589687864534764016841835183420271388457007222234773199042797072471749486080286796678902795382261905029144171838645791973696239794655198103618348324287227252050567618855062917435430565502140840802174039794793623404491652642177470644956216881030911257014545645852119974789536086576998979322861535326123067183946325470850224088806768951970526309379781296747325715890773795134857623404179570230084751469015940283686259988730191740455023693688206234061557081385474578198454247034122705207828667084358881218488553386821693422541867408626585186079878092259098670715680951601169357095820343870837780380853554717525218923764611648790445068528343214071733764092748502297292802125546156749826223885826798345759597603305187437816655633373951352123877913278439527197263628137857402471557959556813675614234416002781125812263721185148826577177722628090722363146160334730146779833683780413736948857709094428792732258646058230094045706739339073364464429244533718841990298619041986304763649226822221388421386752431508715010182212457263188794475751581833734747025752199792331247522470801647027879392494880099457619411009459250154145986494581735679524368361013868647836240084848395955972623967072096457909635593765444788648911577533860288814440097903064463129848406052397763161936527691689273714061278444558874373418313033162811873986348950159997362496241797711486555187008091518435461623413856750015973274080011014688902820333710877460283567156043260247845595825257513010233785064807398973128188346629917093249327951121525769180693344075143127261988033112258279857165327318415941830937638846950968401981250252110471944130921831118267786642771438648161566827950426668329235156355994183537783097133868042037493240832062808586743672452920290018611632376874280636040190285783990291204599850073359659010732329871091313512980377290116005751032537895974522728976316002289651219029301874535089351786695851769524262103625764646825190633504008470714919923545661946575818884194571580422772753596965320793648336218378380390701442274926052275088686008244983452539604698586832483063669868915095098938350663522815259605085067041545243290320027610718091241837591340996744440364035425936124727331457578550894772630912553925709072899093591991605904075664356207296111547335281259874153366573337959667954485961926579621832322145796847996908486476701680278336992403749652710144440597264026302377366808697562521837065829469439886190092557836977714727696452702293190425138295823332317399023913218864769186032563361595602467817619130484084780666396234450504462407338010615355388607765387799008745189514642175923244479600106819329143496386032359617904847747372075651063120199332104138871627541000967175477071916560606705754143139958964700392577590684055570217087050657238245838474118394612672337434017432480374326001285990820356062550822046146406552887222650467126747880470556334108169652784340981581448176664324485439246654303494339300794248166648232166167081614050045897897264052783326048091028495639203975065186214255817858550422402586504776355653610280174277433458793254292884022205295563602986931956512307144780545858926501066132496154628368063611614689251664297340023866302592067852718119024548507443879826944517406446867637871867166249399647447259292531256338872406202914824092523886491137977464388681756875399114292883769615018384703397832251020107347320806403142806086125398033114989794673750544263926235113777281204103849625408398233566264055193157251545854827525161283349167068406846319503593830828361929645905230722000702403531339592009192811500575147251881099770743330630223387333119151607986515675045903105825436629977823464658800821515014930670181850832337882614298676315025227058223695452776965446027274853716733051324067598502661893272470318636076345021365715235155238349867731555390961244425475196018365295701694676848041006305549176287849064237296246034700660647037073250975666120584753328187383835301107266684742543766518924784811545778687526724400081774930029746151790645196126275080214501915616009403894822343775058535478107197364603825548794404545701343080428137943849901693790269348602596941092435672737149083719599509557205060322461591929273151158205763931097182674440078179537836218213013296642411352957575608346422383505014663718404155359163216736459140618229142946535584278187547655167445603220826299771269465280691325704915478825318891360978778668049768707316902408667908715812767103030238339542561270466510552068086926618381891431162633809721174603228312661923645581771932389931652005032882659557024746982814347655305066347863283742717995051811861150894662939476964065842951156089357112340904553922905823449379951247539658936980039855678996846561293140811907767503496065611186164062497910318837817620723054916956631503219550108178107947832284654876171793320079317898389566835629705509267036623267274292557946665265631114120776579426600076566764611469377565677875322637589780516097335578684922549693898641888124722016275589836882687956148877413709794071444582980447254729438020919666686283550721956651849846367430604892822087984675149217655038378988400397129880746122768927697569077920640200918727266730089133757372605320408038032942975806240001292316624851082778635738846682279529003970711888818829091029753251976227277774208568282646315468511194190342746427454403381397772817805670708208737532130386622022773956266440144255011089187528250339083340449262577840655078936398306711577132511073441286229563779601913315205301855196650698412463956930595758817281708506052215110988053664487457006726992633375653759557658128479880993666061687938543350690872221185973910276432432892547132355689827560405700308538804878985394079668020216117811710563572739679283842770639878611503432414706433055826144686075019755464604264750382814078638864367568722006679787097444471704582204868717672984281995565511734484388733218614360171149826147971978484974731128975614834940450762586931223378313341099670150888580339297285433608271950792074612849981498098531465942198901460628018572799039362121688914004082865595342183835757442720347314766614878856209112217681883930574129421869514018816071623945130423908726074328706466823291898906891485368916034161437057516808342847879856777353987108192354651589478948061035543525106122731173217415527533632168511352441417484092347074315997733933701163517212778275844789687755303595666828597527070591202367393159692439496312444181965055262830389012402846067739101194772790592228965865483880454771899962808426634403074330746908970667591753191700261975222871033873369867808677278709532438275493899160312117711125543262950251331481968290340786552968305530974657451687807931062667486392536453090313052918317654205431566436702831884338997657761155662641554677313441720949237688983123137416734558324344372722987474495827854355783981836331871187940257235491616000102472227248632227779568222727586544073602058421623989594135006187055400924169501617293361832737472520950389942535985269213497646840414454240971755778965246486539945969691418815632971048646247354315231894136855203450801048761833983933711155621941653197677837268241791516227118348987901329875315660441168612607239259657607749483700098539569687351929151762699382294216129281031918116967900421655502999630155007359011176175434945305261782963318060217043205325049709248572271340846953846712789160987612996418357011920030273009233483267314794350039745090733733459527269459821207170676304626637036292384125006954448586640939840541880150877426339988217321397019730668133051721729197809749171932070778941993999564374823435121162036521885406085085049528970192736578735493906609164620441102406963396417124227951696147654216600363831357456218262220282855256158521813634416303110043769080930068226272683000199544060685787197077803774964242101715024404083965785701902263364864919213490698930029974661516014924590300753037758988696481567722720027578506719798983595409328792716768438903422090909726674924241394386249071037433280750639782510985285444242670682756428205512848471473808175172253437104264283239964367467515642735093580312410118484037351166684993020894444297401560234840944925593446425873044198719004277743956651258028069733930606385274607680172373491578199416003181873399344910602735203558875039237053906792962785588897963838357465992345948942389324086201224164817589028600878796949779285391951900927307309433035248187697840590066169560768692996714502939460886888392580785524293280002346870761796322032948706829777712467614823459932040745960117357737499213817429806654297802755558213885206524215895584101452271675269931411417181797143268365538741353040668369993701600865134182218480720550316734826907168565100337899728416747337077208019137488879264784131254424156777252099223765751902970688951184627170660120490136875668020713006571557001374040736500461414681581919210177684682835059083054403750293489791672636969665466425636327922935882038736620818545826455463265018381870212685956186553861766712658777315699863316009735608156342370805817434511151233221595701103907926514705130203996199315567252229159847644502684073895551605018076764516010364466979215232566025971295619969080201822027281313960589444011994246255548562138840869230478978846081196841027040794919091719545075928409389650615850475937328074283823999377457180131835458755873632999227231571400318728698597577788646527139550050845248533088565670592663918121258466672577819533443938069809220594746864847365453762005566970688902570332719213529571274657576137763688396866344630153931468398171141040529336717873348295051996804444369762356278809309081324176415070250227234814634124521282168288822017750394098319189579142215528186810079039976514851846440192048076490403043366625059677667551408687945812237671347033815638813772694765291166342228458927256499230136414266099871974455193709323547610978943849459312207644669624102954521329258620065008001299151040803222754266524493620574185745054658040076423645599239584209990249633806238924002876065664510019088612024988431418408602742458890309362644370242178210932205173644561242168224987194180898440672614622676171324140625883093399573345454478456279332617611571593809514395328987820517849843224780621402306535036605543536529778067577889980324629514451769408755626360453616136820039817051501679149407466857766823286572118935490852683039479824123046085545652059927136121204414875440403524787915665132892434409933322268371252654361084150051154371627918240263909333586802221885937919968535250600548498213647145145402560200173590448388538569098311758356704860654394990953464782115376941498689253910912038522967298237985024451195305176015638933477920473469758617004521843000365796906747245115236864499458506546580137225789662889850375967095106560380031567958465289462782460320471950313171135777787374477206461588817606727947413047461164132348835056134004314800809911438395717819490897925927532119728975125377673010083716114012847339967148001188394114576552110800999269501750288294144884254699010368742931763013689698650162894293426807327103919627339542842707272936088814840483985033584952649771889374839245805874354378481276036266157465931816221567093974034991766997998565088883293952267286865590496664156208623766704008210454232590398054024983054044452910744304714029677265138653443555107090946389252280025118760935669285202997432764633252577263186565155251780790279434819273131720636362286600554971633058240539655743092695247388448996902419458981102457701107466748794102360288565623476414458729525356549659310626202499255484520349358327413298909813416888968604260883302325250912283207215592052853205169513744502867074309020488401212332361567048036869515388608323172658322772810264242151888372326350641146948900685976763768758898178698708883848059073974517163520825661149420470056762847012729207090685865544057263119989242228226885151023081636549050481395747825792906032527814790924946245419127828822483387546371077944901700044039558576108616850828613060673101538870533139365874670930793691098255082438081060965870182366807054469312160524876236075023490347711802605291907679098473063962291595992434450315690289651326326123392819379840660098846578614524512262804503816186174499660810996161866195769145449924489599361684640080831475796067387368377659560124487288889581118522393005417536119444595563203244306295828542918774563638958541772082094034391631675826432527995013345499765371487083952699681785611399377974309020118339580466217513520354514525740785070589822631143088954072871636725934714627903412615170796759180995683353598727312206925607362326862506255190657582992056970528885180627294527275400576301330092223249320197414593191298192874604338998168770928684942711295590346440151902525972251092012020599599168100072812027235651160386649400324961442569732544363324129022036850563628141190252328896820501341662342610272123329874976781540324574046606115099059300332740379882748545694399255675231964847983437912888039424163536290789647226353371365430022659672055356480216629285127957853354787599463309802317648052868177277966465934567259778561875249422989656125665778941126406082263169546566003965585378917923893618699672447576481813166985268966253985057775898729957902186586892951217655305503122051925575400099151183156535451612852342666557800666818291622946957854165639096230502769339713499874168076215831526325264720366048413451784433869797411593968968680131991962426453894648181406010505202041480288902573369941246518319202708942870631580525913085783973466532792879289036387108402310661131265731046454366939423608549376133950257988618251934244896646719923047605629362591448645923950024211741275989124782991038602819545243716541598448358755016356463366892514660835252244210519860356951652960675190238792538915606020776202633878544854128613473962052368221411654442650358971510223090517698444466170720992786874815064672320808024682395226011654569617208253336803363348081030554668784690808926658387066490810730762203342963389330093429016494390847828703896870269749364487636783949580404375912210477040684036252640133099006863648537083194200621230744694604998468102732692359785609696217497035737190081512874823679500157722788064626680216298683120380836282446601422157691400247470624661988832237308207054948516171228170779736574232963216200196530435272699088617612857164496052926104637035597704327144353678213895135023237260801545769732038184472328964670082314017967975090234642471289470729761644175017971205418284172451899445236182696799110081793191042340305014244429546897787297841002045917965297874788378718682186469983819517502279119333997015185313431767033591889869825084002709080034907596804138819644371265625225161618769210156010114627307410676057800473574990443865594708844745442860087409850649674844383513653431337843557316911553743971509922946630771189978080891214386248185421448990224415728910773148891544835819482060774160188876950919774949165441082085075727995946163509124931624464049683763298689711595649821641462221032065435187808197806424452237302495770068055125064123556392668043638741293574499564822113147995353546623642064513094188800095665752859556653580367246501302497700973704256092729132504600606535131078639547634409711747704548738111003749162248390466686340970892177653379675635092794227957656254090178753581880662071306676867928645810106270007571657411705705339767366314799990374983098801972342313797669253238392942720792989125981235717282871678270571104678141940749901010410871842590910781140218482947951347088411565205035630358785785698822612442653069076012051376308260683073013326167831293037343281158104599653224176400172434330998510039276909673005660356339948362296083592302417657606117352842809218708327805334955004835560866756143056075036490115193886763846067303151076463497452637255531873338828403674783225939683008323190663845809595040429381616579556717328567970578693235674204282257002056162913430242117098537333035111230347909067126123287212753293259735145214941560817185814100531353291852434543943225171108596970748031394906209801971080286176756216116901946303683504081013832246063684796564221484898989962241077830488731262149259111101813201568891812034221151333398110513340899564692106265617833087657708865701272646367012574788506724603800080064194777448310275071926920249062875048823030607577728971163643235020677253049439602675326718960189590646586778983034909603729446665711068381511723015546177796523091219653848130205564144083184410304451670254483578521039679867403812929967303587941345927188917295100563874065218476135018082054571368274324599100374394944323957670679254505760881237924636315855244919628168033325121280043185628918239016827125366270471547211143856723284138980395328388454761307877737330304754755032162493031743174527951035071306522614891009713876074015763038698272433722458063326047614718368201622763726148563006555124811098956220335226747871211059561205286939523607368891050421116834595020435326886695902060533593859405781266489045189526654285303715265070329735490191116404176903586014299617458682699121068154239724956598169606601698526446015879239312928010668545144502642546687670014422894995121129007960866885517189613000454337010812151017382412073168662117057328208408383369101070883937471951250440253592290937370105414469409020746625620503310009298209520489559710795046845963783044003299655727693355487194157940671113947102083590976818714603431602976647565830962681581417226258494829769805002520114018952054400544485334990374797343534991782881486191896139176017778813722779102945652604658959286504310269185485732712798279941963358612356924038118249825599228406908686778433184260498548419993653936248414502483462730434080704831507694601239830106010012651000619281888434273815576974341201337603362189089260993290765748605643098236405438280886411959307011611927688683179867632273636177875186994808250458116849171606767449311914100509192934710116803139134761912669459090122193202274589640134615973257517678121461475026605385549386563059998991984010840968935743014496781795535490591992061561325275059996967607055673418724679296057680191301890498763623706052562620297575194830868561268583586495444891097910491234189225030037758614123147625048299089510595132776931916940292886099656090559796382559133003403594931466363673043719025526948510761274961008036922074736290476503586400537021946845567246436388930966830405474650355893935127984193250840593350453218602794011277921374192943532695066433441181316949439504361512880436322656343430599223994316973956554339343132628649710752663641212673609233428045848099258924901995581388439495435793833725536412839033786288992899269444784948029977826423662743299690920694082568062774366139256554990652971116668264292118469659815932305993126354583720924321994992173014185510189213757740758412964768720261308833513558820689046952305454516269644915780051978957816122314602531599538414127385152072388579742375102028989734290624349634766156080050101173238304330301695541555894508792941710463167039573000662790240514612707244401853443878562247430661724931052100572598159888797757755738962487975667218074232606464041256303241416264914187875157779860656787948050562984823841744550252960717817766671821850152172977819641650735919443456255537148760110991526398414609663317751815853067719634033873254467314635795947648690737790581903414040124918212184831026498594731968779619005887584340752765781919508733160289821147996390951235632153754698337461335508410589650927763251126511999876228192008050751294168374847347759325027009737456354718221465609664321800331398301277564848873000790873590383176901292988613947798696184385249454107817449007313438084107010623174626153694522654835116203295104360987120988271195071120808379588326354321153321158633458307544434831403149831272025240285384374512738024183047820495103139496880995087013817678863155327697343775166273534799855220778231802612475500669055667111624584220289076540558416167414900849015851421034724749195331907021812426402915246430779445351666875195556919916143456969871278813334785359691953872822358204044795346875080444799182304874763575856817481764650746176114236643797836990290791758420804376144821320580495335977202956258825158831279580497413016845098600174703035201295737418651430342484760442542347850854335813936753916255331426546645856326683790809387848410612598190515370818054525867252313193789601605392847427978782241249552436148153508281302746917584732505043182498837803873581207894409390501551940519602846133461529043835884108485545504185265930376358213663329221429375059273496943158770714733518803126087702621340391382757695211187407608862572443303101078073825635656293254700626310024095144469534615299187896190755209556099697160352191391840788784218444672934048524298695772349382435095287527945401613867850488622882898170727869820202054137509227518549541616078475244513720534357205760324013076125337419521215740437851212576958619310668382801510081234395307508590832585120665171698698883779104267540898909840031004643715800208460366035732298756388776909051227106153623434852848637770598201537304051232072359731345184922237001693810199879047509279470165100878826423203741858676163103738034483558106787191476918401315154715094385056013538151198579595704206186183585278683185568688673755300184191878505821613311928209390212031285162419982534390677413340164590980689302110770267811979916390746351380162822371566454403639972363474134487253727980130190282934375953766266019269248645649314398411397060444878246136236326005507834537719020350089584216415309667968961295199409823984058632693471172373232632797115252718819553135336819872097516685424703449901384087315097585237390486119861597902393353408359343987156248508800718823126441420311902025998951596335520963170645918235737810043177762902700912567665844203883467656274222819886010259237663262349531171342321666826558266156934561440848970021424469199275999489384162630396407988449693245121966776259764819868707608690084122356482346252388897134803102146182408202029836814413162024576530511318073308839062275976777016029206228559633066746325607744852724897200721763788830512575700063282360176643235119472875870779839474712553097788076356402492396398838284019241301000877705896655507033972072250825267029181592906891532169816951903376008725691882236935273634600878400635676879163681361467283929952351832865605911797908622153213508248700319594298807784621714533732761869342192953555578421477705102550085610643917262943317916760714294836074791354360367158865341046325513444590354461117743543059882345117303220741081437722376928766122198808067639091283938472871883956750899450895774521009801685663648722060901851621023249017842118262022494137594212224871028882547935781044214026242636695132562690251150161225980826992505873046737786962210653127197488739390973826942448890681416623637401483956940956845238891323120340228702208230554906630151269938461039324490799711495254205704860605479122785636277033396745881900780724116520651211898656601019049833380822565655536649180265766608206688505603583233922261964288409901345523090664556197434892259817153967025496184832403825045556486962239274028063891002561169153965043802763377252468946854347011993372965564002047035867267390665208007465512498943646243861748541112610860210085230390824839535437129501833804066054611603232946726872533320975685807475543586109922167194081171717740363676338604495931478003163943187492414229091009429662040712639413425804512446246789117484043821507060275703331334831288832553268418138865259728004095194616755418692143367659458663414532118815552931795126538936302354438295758183369735812073306032347124532214254852902950050332773092621857396528353354383640315285642598140329051488075264657471434149077306768581421574028211891673493625179449227815290242660346975951555388474488617253080838232889677251111261252551260931970917269812143733955769427980928024657938156154689962482763379842869848623725793197099153082195571236848679828702749053224956187614534405527991162991101650881914852287683793549673227008814944159062242401843698215212220913336084658679392893108801764429568888594910461080280627404032812285139865197594100528520942301309267143242472434558305001277611201719065384176435926360118141777668989326415222753010970132346929971391191925542192362507771845664134777615970442848316571733570146126694648829460078515687697576306372250988823530527689566737403321273863446594277890692754151449470854682534827417163111047938413802188876342259759254112092882681282818260486800715884146184533851269547814416827994880860004312750803780564520147017687922436784397648852843595000505645476595900300712640008217021910484789817787487033795839542571349658123749147593103150155516770654339930433336174792149358828958749027347637818126438831338894366528489840130574377702424632331172268771710457663157042786843376451092582534631243203722433200494134151408473082597951847675390862883462536719602010782246224805196957440967842613816032821640966213182461534536495878452260750461374563123415022731529765848521060244065924256962415064523072732975837888075669719682041699204984683216198472139503511412971784139786056671169593140292811786076619545001732935481617234813713609527351785121615902139629415218172209479167394153489563613522067513176948771915515000854629205365179197918268303064181502073191466628187966105819736403039772258506451224350445231203849363358496559980637653193257615378632792043135190700137914925305778660985659255168715987032136283026299983482566633676216087939357095929539284089552539003077458804210656060420398035023248668626071690990509441059609852961280833744709250311608248046059722287051596194838803560089778336582860806453045543136034275109884984348712510232115981685517926147752787343444888355285715708112506140331581133985929675361307668369089440998361180119957571226868946429165582485068161427970101608384083114858595750410525716763540809556437081997971512147778780663757854512908469733919070944433978815614388332609373260955826433019548352486612869773419847314193774010049812034393947894851821358612511414442054168917615115284262026586113894257682720765019619707270680539896726088801594604374656117290574427765462129580241522758304541145082419482797158503669296010127498970975990434292939383838128585269385210647376047026132734820157112713371150238889917083320893225444605633179781948962710739506101179357613243667240235916588600347301319127566410113900946395377335882518595474630941276034192830117719378072178221747124673397633848968206988228370354118069628601647487956984311243035135964516292246498764549391234883844940072548783457719134296520408194219110428492644878451551548470419855248912727577611141823565678876446637555395038555399382938407537782608936367109118195681212934995494594860431484392800254358963475443176031135497403909384155252058811334376215879420493408756924144746942681839378201614198812611415985852136879763628962427435940158558139318662153314988038970774892840966908669782290581045152638104622646242745063366186680517286417910218029029611890265801995064129349856510207346976729722500612142597071020032747415337729722514914028080804789108205229673533225707186012135806518499118678001531825637887142072179937343261509957621617637261091937250871339916303358471094100492291762671734037784574849559914296105130063524921741683366082436755134443856998858470954696274834667009605040095407679876240522191079202142165852445095420208196521995490532187660908793607789950087980205972412057949489542715028558837727334401070820376673645637864644246550651537272992141736945954953125660867773170154995712812107570504030184242546116919096784338486692021536222165056052614521557488883255941472325053570400460544060733634848095291204250971143214447152729852402543477315404659875775119665293357040233988562392608179070762735812310935069740010819851322763873853230202221887560816576511169612375343331694207466259539913977828043206823374204837305635163533021601139746411273486877132133371198321791024371204659880968248570272283791265853523887818575946603558622002189866119253593933403895176862958499595947881807816013022339583647085427826755004414141255453991753810111730788761279301476175748005238281102158252497717402459528598957149107196441578915029862346599905524796728714127232135439642973359953331907189679474559621062958076918470122782868280791974770803432488764482265966564809907462625392036435551417676978745025231685542100420614366801312512029750845022911198608100934261814195560479504794374411868098456249525022985787653402475182918274332102622805344411261517589339268162142974801184726279112102058329512194160444836799217746715337414920419979921190465366464823663370072131760746334735531726001407203500281962853242572423072146558285541124365712581104362358713470704223053654985920900090676320279014202673254644425746680582086151282267683286855192815903689239204798094703189218855998790343954884723586118145802437634284825308574545713521002301319288697274223151652442800529976632875623729103138963483627527150988151751602686469677941382184644248890300690081791302950235535412368747735631502406305602096351692518695329021755272063839918516812498308060477918557323886900637724535830901386982851967294323446672307236330534376245139284033223199121639521459228489664160785152217747691359726220059018454247216168480411680144972122776325174817334436723846905122538297944356227850926230496863483357210388404234742505739159091967351852414870740302342515055942926558119566735378590198805641192892539400969343100709554596182867260597023142404638799416707872282469816892044661738434623500045001133948203785811130092112811360018816207167886264990783893375312878532649035958128298897948806527670553090243347939311530667315273655106359856621150658594896378251605056241482201182480182735716290781218559258372026329171210790632910098930251340161743125396513587711188926385663114530442325777497627004090294096837580037982038084881680248251774352312947505299968862804507871146973430864052072219721096725077263671476966043732567786589065521251809145282262510147030017768906834895023190278501635170279505489382997355518058045766287161567466890205929322568918306288344629040248564212395415644199454139243289701632369838601983727568632614937919422009802731300645285197673866242960687024114656676135909756322209795627881741082626763822341849737805792502708885831128271187707758611642519688581268094048789176393952021041734601382171202500272581267292590893360041811649376912674022253913252807599684346955330425897296631071119138032107925486234533204187914246476266665478980407442150645255940926686235582042572319894137042340279431708605662910398936529757995355151559501642603841771395218285335861083946789422745780421948358402300973441400522983487723594956248069736292520586882340526711180959535711310237264802918248268297734174165358972606902222794954720409777384007162662738279066549134976115579068790937025843362388451298448129445831080737126727329857288299199639013348751202316138723368989658738958151301931089762511899229886998288656205189672172332440732859683064013370480163111522393227641973451064003041866899915173571881624203501548949694602310891056425864505656731214415222122052405772506752411353463848193046282020693792890184987064981431956987304491431821411672521465932563992400270906571917520734605783969919589120420656861339827409453589160023481922946171867359157662527674174949927445180528563116888470428993590495298914609496057883043349972480764833901607116751057985104769168344217399079946421480402692625360406665319897741614014898345862076604381886417601863265939626235767778916402201908272382224927882741321873273774606004907665419277510967010070270462191192083415010512712139064904276503908929307595007125283349145547865292838977793944694479040941776171022163619667014722284836147882899658580455301328421759389120639418352035387671811186907216531634187891261426093051357392338878850282963750645366107776796247399766512122258323990274896565648925785392348078572194935376522675105538284336472853860188473354843232269746115069915519558851145556234787575538933536697408206252489500436246058069082046515804698539051070334887536848874578620484220978700862441790462963028553239749850450336912265536506346507979319444674110962438173530869482453270788606990268970076567258774174944454707946818062396189553378825896304569442161463996861041235725721442676195328470027261288776561387778425347871959861645455457126410974369836319242094782795959154177283038903918033182447832130195410902896888288561777736758258343592766160800660384470835380181247810710362902894376199467505742853434281187869395408832997301576411958149886712286579312183010046558888500716977278096143462398423675409460184082320754685720582244728559956491185647615852589859565125661080388788945640917625636089096879911996076394588893189895481926935184918563896884322866620450293951947882861738507322742171230545660203950868039820537981580536608516075428505854701493612470726927772289735616266870212713846114550073471236956193670521027522557327186376207806051714904833744479508932588442382635203187785145873292695546198687886513880431700179967338518471856534996437144639142969635405151564232094994094039358694115961664839207794616316231156215850839558575237446818980161784294806534438108742048440968490009737214176333465219547149412795914573238094678860245943741606228520177563050203750548243785232094420511125123954128765966300058192287201091286000828963754018482559056612311744392778332802582791885784949001548183277345587005440576481432120365382227849043508082544339887473334786016479640317159871193978260522088975781666430227350899014190024715004163034451506368267517512908133488429791484451897620859772850243204602683790293568538221528437403222454136735071116857468003375718856272595208353828790782306243018235529029606404796150499560519094918629890945072374441174253008348125169592786252950241139208566092447474875521104439480151576240027944924677040593689272938445992118151567901239549444789241453542306750550972446824799780794084384351481294874550521953624986677299222747977670928159825764252347914836532796570737368482006558800659333469997833509173338644702693109219998647062644683939653215708559974444664295869123767975762740665041005976478637025598856468919351419569231360041048683193948470983693072141914626020098894998595684065668659854329709716322349798936049046979227793373166552284547920815025591070452271631339880724105385607715702916235331895790801694845522637395704192306765270339041060275174544731033977274405516612048461079783224797393600128802573625954153875685983758140046797881265215421550123214134848122403128343234221349573848015272846514860637126333389087082371666845900880562847491569631945433363199766771948638882895646737012061109008783045850569295638214170986146507058132631102251253205163121747551336441622131184355386216617443122606924125163252364074343715306151354384409302751307110646322785653592488055279876953372863010143933519168689386318659033370139460632143204557017758187386073113082866415229398948013598469677245374014447159128887902905664897044520869395933716867181539684369332076455767051179284311202179424646346548301818177659108887755938523532257554117397875777022998038869707753266985732636913373242776684719615175948830983569879010145356958473308150598600923060845409932573159332888623082477392650972254807920432521916373628435644119182390861281901210088048956544743565618337733911503902323803675007501512906399522120083620150326562367820014156534905057605336987284993169179693703634057688068966556619409104072088574857370701251385924716786243100356718579486396180524193290431261547880465403413368341586443640120614976669306840119636405710333390230125953580274225774136720552822188836818087523628654221765805230684035076897930285472950272687798099264962905956339180302854841761274031879530815265998986958392065224251511466751492429389259599287860958267526205057449994872847479681050481290666099624887656637760354139124492431776558437608785037577993370067987026544778817882480474714830671729236409659132374781614008613335222109021137086411768605644586529333589372720141847609656845156914816602418199006404229596288072538872431749570888704482806887765981471385096336114581880501311558893777485360082376675362271791873166759713879662498602175589001499060764912127642848341848296788624745446584135816993805831267477477241556093934485158859995763662358743614419776510246203866733559088745678689332207388011302862516608391056112159729581615903634325440325321699373248271129540361459905283562498389727641287093869873794965065965864601638123925996986428524801634239768510788061536026444682641594731575557631014814676480336637240886693104354131481059177087571130715621498929706136771872449226396236968883307893916293789779787511395502887325074320458776309231914261101487978163844245898332153169313851302324606725007588061331426227582609207595204962437875502426970958161946380069355631965256868413443666109059193121100950192014267597930615865559375205006164865616069518573539988154021476144766405566321751967308617424546637680432766495759404626500481281152165992625061782455504184619244938370456862315004014549069748129048355574034120516514060703870446601747480434992992481996209173667779194871449861511122165897948483708563808621966606944757345929974802342132395281493704546299182881867566324680371822138628277036828217340305298603570569070043892165416824580521353555068453134916290093414172158655558128732006712140360271992637200515463373927901067279107786742474902592012867128471542316733558578189719634209396779796146520807150354858123254778730618068379217371284287747216466141067817222136550265651277244897817018090251828871005184320413677933446327628938727950467366070341111809208833051943597345549004579565387812391573663414154032367311840698084505884806617659569757343455054707970522418388179576456433849534022117064698421372300592951278248764392558957314690868172003617884042741445298325404014385359475897170467159104093758256615093842491833227590685001246110367172534231056182866682989856234949749110233465943668402957271726598997301737878438665131657320261996656510517388115493276480775471971449230170015974905242583320056441466041870620221388567609066640064108257767139771857755890648884427822128921528542394344286791164961776883023227165992235573446255230224757410527137483146842578236107534120925568549637322169478269813655059667295205168565226155250786962858647708676684790313255769420447418667368513681268953034838192821196331876960890308881264585388578750438360205256579349917292551173165457946231183122340105660766288800761476952896294282691316351005220656573652191903625779045611082185689620402183320951030108647693906686358480499885581362477544838388588204396476310499176026352075980005474262380005469703905874992549278173659276201346479882515178197659722577479074558379671023548156802811668729775931916224145368339392757267461598852355120967474509534518208407819560658358967414707648672925371011750162243736163072648778346652221657431586789816432669034351619537119765381600030464810693783781285070579423553490492801407695008124530783895487838093606412625583710533703513546990717659173577760731700935786368608490020203006717609665223599583604635033253057622988043329767416922714221635898532957058313398424422475953730324009851331340726059782559887649891425204912998754943577903868403334913561914934512065446202195969547891699161275901226937629801506930886368462762561428333177688454476383199514037339219023673692230157113867282473753789175081942701532288338162362510272665132795022263308323204680201083464402169639866274366959345176667658263396335124685324845898830960847136664253765808495722163779058551645912202723481836221301422119864026941894484359094250087510532021123790754503199629716551099827185178299595266007850214489573079436742188937851307254952000540489089658661365855064301565332120793454924685690342616127004657734317051099749608153173606620665632816831396642485742061270350660694158714887324906195253500370784826144248914700209506537085735642097312081114364155576152463240476956412922699991702031350037779742375234646574868363925753104021776759469101408007388232960284068619800438098523385103835170180574495873756098491652788867053909424134055611878017589554355667438468706800418507690380113002926452084702808427092716216552044875295660167045871518117248301663031237847064955328109808490801790999370108912469558515616464584952154940855414184390267557742908236351963576153976135807160756808162883762688060008161928080431347855391754529539589368739764044394177422689264759744269270902929673820004922165021687584064347018824826358342707553755699396868463731029843429810305954001031395054973826357862422308108095436640845054371284128198615939811073853477378723876861535630056525842988462444727893062329000913593328888786493774355759632927972339751394420374273313143921370828400786628717361828323716086465754454622196780721473403018039543916180224606021709736449478859620776761322961983563711840446012246742372638769795623427004282891411531732769686947721688336227690827293918435834642495408831141695665577926833654623864976880800436561705326177830029920930497647106258408866646344260136871959822431735194799456771185926344786486982817609453669972912455923664736747064518772177261458454872209909016912661147840220306016577606859188107195011964816707705621882427754092360765066405047038985031391881384397869056756786291760037185294288852004818028789343384326008987672179690497855186358207203003455343009665540430635841074564864592963601378424648195463003269003115896760861080370047211704712216670324856762801849272392311049160745425160779704609123847104707527988402108315889372727398905460003035211560128346903067587731026131688603585361472203824681030675908203070083148488769372686172047129372813296411096676271000415907514021716277060172654450244507063537890813482906193277131575814179373849416761505723631840956247945694625355636054766019577228662772944180072501112205286154701700279109520710311226734561932994523021809472471371063378546442799840444716115777622253746594347039513158739323628536442711511298436416417653732068661449463223618636252428554259134787781736341870158403399847904234449929455175870575688478930460090975796017106822378342240220574771596067888402935447671552176242692226733536906003765640385944056433061312820701982003111181333171036498041891793689349749283570014147134646363730341522218021147965869542261815863055319219007036392690668257141132885833170821357259158832676206270524485901033478677845665624583711810243975358157149291687174590418916200796773183697938524258759595263312058656574300993411206304293363296611474361443232876352047670585227471398794887808431301489600066864518686295017915820439065870995507749233688117537355413277790930364537977907023887849850702468207169089219045286405286434994134607345413047022999772503254966192536766876947750535994410102491948583446275714200457600988396051742470380967888275201624210269815138646163060575041157163270885664798638089135496853666270820275356002047915377298329313181473676886075299057727945937644141373188847895853788377649237960108624670136312960520482902319667516098644844795445118145530372723004604223011929870065013067026887081290349659800909296331722846520625541820947263216012437388319040453329323484889345228789618660244088646809228994820969339207865451775910901779990693714701116489266683587296886245932778300330067934950064052852235529098786308999858639683561979890192415322124901284439716659768982667243248039071983335289157325569419950765983161085302828508575948602734469617883733916211669046663665521609917172787522174109663191678886025902692891407796545646299960791339937173689586590936316915707162547868118154106910535697797852924235861509139125606754531153095283773339266437100446835686132913715953053390408892554733654530961451888312369102570388422499688543974943715540912874796440945069800544467534314402184338164179372951384785147905183866932042046585940835948437401365881495565913651448819350439887433303357341728724861235490531712057944266022690965157430486687282570634164017541488367787504828439349092875584378948309114404062861295566156298637711289522496502224730485992321962599296752557207244883601666706899185742829574204993178338375726203564659220727241821959952575188770514520453470006110487067325237847620511294471711148884426442934606695756211842946791896021233766708171071405532537756875070977169623349132961824596016114987702466496168911438437284891643644254899636335858053903795461476944698613523974913023180382705202053426678910767879764546239203401360089291773062969592615466335375829986148582259409422811792947880990227070405158886556008325069756189049788476645309313497133700619206247359241672592023033272407158839558805769454573674460881093183709916405980666026350030648130668935703446738706441521627510358403150004823859170432676010617332595832002744594018891630932854534496391697915449252148840768992545015705311712646108799059971078162197286648591025412487068815860337909643085438828958330355084198938801105278681402916968221595074706792746115224155614014064641794161610403737292121999761678458576084207976249136925881620935273138237917971027192086372447937723735760519653362049459691571252361644097219408080685573118312710647545171015031410092710423893885462994103298078626738374202324157529228373258165375396388239082428345780633456132547735050188372487701592524855837216682491024884583485461134665983770206058191989069296517798051339566757434067419931890732347574938450658124536634910881327634281746990926603389448111674301423473229346582677575013106160659473260982600744400752893786440583089445648507865834410961554035393537555966648116427569861234908826935503165732354312842948986517844111220425097142439525027142962272238444194609417662517513888375795636336141581797599870524485638534208770038021697197613396670973699454473909327264120438760144373248834798185514681990641099142729991491959074076531311226166086174479895821570931269816190908032844082724899860537330391357284747244020020340821317312319404492396137674821207346315605823132838065740323888748969840011847731592635142173060581533333296803064604888399959802269607651792289561296778477797120339042548318512199409590259167371434141184747577509652293936951625170535018147993733147252181739802638723923661800780814561404439794078770847887466287350216128040054400437468514288378318918043959967543200593547778031187094065563016996670420716817874297935146334642194012051335465716536801591218528678394219107077142404368181987120166407219648267231399524445724107400634995105093915253733690012467638287634398848486869777201930315036936017089106896510609734353691814773842350559818891471705361245770551150592006233216842693054152030949274093251266350748288637204236699791671685378062337521750570413903154133225576035155765835021891472800062883575720698380245359735872605919364368066632388576616599771206814505151361447545681672670788916412787297178089981562727985008008173220736201970012024935579281707767445344720171480567088924139866130698191708686106781189010841314354035978743855390547382493128763148564977278161971822333201989710863218101567833838396399115196961857332237451998310030418198543643060572223617821423642201901881169410943708781217309200832680849868155302685799161257873978709745528399188047159334839118949101064463445882644118602712567625697883025808162306125062954136244779359538492185943315051152457463856110506912796127679441211788559273214523579976462369889960284803979937329419505938330761760672119834131014921036860361856515779789383212443217122994076782049965547464947764355468234128456419398628490630363580042272818068923559285004280825361271177618975986516373134845071556169574400454328834284603916486802010292968479471898395151340337899024320481437064120447252503870398767729692624327303331548403943381015181935555078709175565131791234741512561107173433953040601626716845064165013193608698053949305461336817538437267887601626932088642704958299049948201103010156159141001100577170927368143649604466735866016195816587929954667597329471935290376264657009975203207836156969046423142068753105878103741364890691513765218871073545643800431098489438759357016382536789873665370026870547315966867956192471065210074488888251029438401628606276244607240636816656881437185506804602363085439389510957279542180829354111821563382994647026172394480089949210247421618577336293029539419539760375903617546514072050632766083603131379012283644220321479985356385736988116240061328286942593578391934865731115118933788189042978395601591294161704706586335341093419387042453690605106330568819132700030365156358122401035262813437516925159967561686080615711728675715509399062717553925646511140209102236582803639702137759946199728344893943534636046457932706872957764099735847111771345846883280684703278531352503439073129218794693703127449816927052138632746981127083104525815624657324793045179436895053742725746322755765306469683890940902569679962461174242265468302127506798805320422143235477237481548476241366551029532667383039321698412274216689218031617875113582473567544190452277496926304018304737225379979106158726229762731738281790453642544332484542264655837331436761992560833239637330481922817321250589668654228453184851689862606140307903933793452840862593054752571822734839321028571212842572006152856270980003254782920487487959203150615448271465691888724317267968293987501599657161738355327090834504114336330368218525790531251451226290809783271755494380856604742059085873264007833069320587660657849895310518040928469293185486569812017166521503925252617960120364994540908317290505386212653738106982314169326023621079330722907959953171660562335641985260521021512865757138444236823902392196166800501662794425012351339105538378325200103098784643508001894697462803645281143394156785913635113408313182619187167656371922330757631392715507626614064015385257739059494827357375116025303775448653280089691073275662275472430057281433049727258474289119816810553953726902909954448501756351372591006365003726360338266597949387614615491250291149233894552393692606042493614110726287896933823780881621396883598128158189353989926124833100849766687868494849120939233009409372926644900251117345692099628679343393439913510499524685879541500327645045562848451747867355730085746103823000905521240632319452398770509320513170215089184675886544280308267866957572566344775456142803613033635983574263619463879165252208497633240509354330216047786413712318111027062718431003162504304840358409914352713796931769866005831547369905521463100314854411555149063553475169105986344021733000909821329900273255198636653156049716909199383569480551668960066172616985140342078541924258300295924709370255357509709004238074354824112474703629272001171263289945719504587324046352300392781316859369599808527741044254598976711204525861724416292465779417643383854069891904485604085734874897863964618928130430484368395225622286904653783442314816514185536865257518970626394315357031429003062190716686973423106483528288729676106615086260342231242255002569532436028948806545184907543181455914196977160565072408928878481922662099423021289930082141454019447126036169816857111864741570181627163049676228541176135506613255128285861607874651199303440476475030559185054766247438064490587523356064831360215206744818166043493277480162719506738561642396457856523332350164836336207823332718506444156502461217558824475014545283623363362185176636959462237614229960182773938878330559838357690603721064786383617984012389696608296196227397192250643696750632165871645316587575819605230446074885088028714027377291234178138177672383823757300230516430975353330655242559586922498107313980473230271071497084313082231104958752777893250971097332850329310522605289939034707127171718894676772688021431461668129520619899630905099749345096524315217538236190067100377793475436549145376320956614312329028808442580459508866957074931800512543477480636697866267949957028245917160157476024322382672964876488509093293661511362174553403890532657213347578139116791926677557754537967541847515920205051538186041920482652368479342083702018019989306691369854883058654206142711594050182224564794105955979949489746254790400254033078101961100241348293096549459011497640829367214204387009683437117690057435292322297391750554150987353432944741039562346726993698768976681101255808099623430585939510483487835904158091438780615501598766499316884940489039432439770387273455670252699066087215166560782005003246523698845482310508812189180687878566286689894400098959123479710194154948087422865093252014577700838352258737848356018219970378108692565226920355014171574793647412693615488000224157292895461784186687408263320184474889623880657537777810414068367816769528559126176557225480976449727507616454171773026713853793913337556413970285835855677861214050258923133179203266440390702182955261867100938626353098358086081862535031498700350783397785779399186287860303658576450379626723758351870345802129718044596526800932239617385720761049030691300225634225985542745701472755503103801415722727620980068427148557133838912084055009825389077067786763192012537809471809810357678720385565945324567305721011166544585007140917674515309269005260117543802082801297623314596257895640974419135201866853799560252736428397205288593501221090726015630089119482564407975970051671503928656366459361306177787506221933023717099131633387709107332978973337171520692129491138114003375299533676987582280131895356560806785826702412251149227305386398829323704483371137942665581436623837323026715886294006592885010162048562714464597063376337618511335569717006483545887779124772776608930840727006691138542461214773801385854328351323366738042946143540204482146430720906232003073355227269741272971746061016729029902061890283176776652085731400305404090591346289251804691843967862402193452366084135296642998187528805433450949156840494752288828938702621071440493053168529376917590160660919164090433116067973983846127134610168779296366053697451950949475866343962965803224359512250306291125270438552040531462040474468768060697334470573680753151810976739484900221063198788538977352237268549545783135957682304570992934167027569927570502785482725936024892696014905288859406172911784991903860725696160580560793730270754985539944550896745238258779945498727819757494897332814756316954761972784547545410314132148211054749259761108752054469665315764521975434081115577662325974944967461531063987367274554262583914549711598958718477184267149281626306861909098263239234499149827801218958355156415230296096609152317457425818258180002542249146959709776235775243393162927380660809662943880481897874836790502024411882712086044623307733753672700310345735625901980887827256581593239801375075813225736901067615231055311249247136285622243455605073534381662957412207557759999619138444261876213913211505678595392816141618884147794276445704165058960869734192090453053171106873883348013998768916643446236944549472298050768649652546763249450105900889179280377701347974235428330914207097927238458949865384949199771078727357989692983958331714779701113026232055741151194243077901002511801479873821039726971637470502872632339030279966557468538963432916184988280108155836627600833642922059617103877213636574225900346467955980082842191632818875274249525576339343628313126961526271666874700792390229425064574606646017947392583022982419067618061030129269841091783569629654053944899361298343462177380277555768777288995529725470333815724494065135697989882150321683448822535084227792922580309838430871450597259875202673479585889307964528801050543780093001413448597997686352435762462868004471185903859384654677980646869404965944445897155134455544592529986075054149519940845902915043636231313364805018739345650123870434574918258710109618619475609903988470241572545552418661752868178578524077436879919716642526408595703472988026480101470329896863807077280059717579759590743071379497727078236076729040713119870737601252431672934758904562794562037980940777369367693163551173525854273887309390722919952856743729337303454312268708847248327174179773499990814873870244401371115386947030074157773296140572468031364210876533084842459785233312142561909387657117062254647608550327670657059856327410209242488440620262044671693140423357564541266333008386293933269469865921676081942620461812983123252673785687361464156907416686503583858710949224838188226333335275201753142115823667986998679302754631010082485498264974083254725036830276266472317226732083301371492414189576134217787749960873238160125820584324606853607546077736948244348812985786133829486208278112243751637807085315981851818568035284577713611769456400130501793392083975264663757162432835608401705525511570520693921202157622233928653755877002383819568099759985233074767373205383389966405573131185971967014015591099677865492693659355150360032983964680997596807692909312549052288060958596231657758555802383244517524876918166847599476677226239007009278104990880910129294861088035245185899378487584366032450217381865165833331678848554687908443959756617056694149939882388232428489507084493840342117981584036724092205407813127121066325614813667809836703192893332479713508056760210607086746234906478171905502172088022411753841584048660344641040302550558703482073344293250451774752696130456490390612069651449003602989601045450142415275054245436713691747523106946483244614565031422708787362249013564137848746166530499396313977454386111933514853685865149668020756704298392091461284122915400485144643304231631004885810481275449849945932942267420543047630922600507290006472916203661144723042078686964108992911355130785678141075302185263361258964996545060496443725651615278156400823738889689962757939212931480582507884462366913653632590918416393458650572846409176375630237204533214909719866344736834951178707005204478521661942541703512641845519411964544079262690297110164111448105832719559332003270538192501548724782961213641715954846061849506782909348158934125011260192399713014877989378580735856246261338658636059614744995111650948776157538060337902207058845752043390321628292494100404910931653415267581919886768494424063456599863556258790160771688878131946814271331846943651246612380299902189799308896667730379339967787751053124137370865737883696128146578880173262594329793564914005567826287742397075151647971211787867648146910901224615344966558789211448916482294673512300166935774876126694737839025179612794516414108159491843558285775817559972083944628465909572597560663016027924467185217751344735382635652181260141013583284608329976832989355002860474934840854267732154495210182250203796971533253764528827546641496450808004687043287120139936111274059102558405751887954981674285767170569177015056357301451046726710791829340354717536341359714740684267362379907135821995771764140539256527185590521720474120084787457182241052618322436058439142105990019510129454826827935373110917052598607475144778639046640586179058138621710567274027924713678886886740708374051788745209627170605993286840075080838336563370569580950056266068827236792868296871370644526682655987314495529811014322908697298134376216906148847670208798141499066685544359266860376819600006916994303181745069430721123575395534807096914575234591886340918426521215142647433503084961134316671490951470817520231466292557237658991198840321406893236957242599603485995533902384570216179133058623362349337831255906581042376635315990668988848919207186584283446428664891810468651311018532383606154363179681446050060832965160435880128428931429307977339660816865050535169236444441894606593194503935795055623454124060236407513008378510498995956408387477114120146675917395682631852088828408784399987691349367884438128805985594063588197205607846416537208115535737948660617232376195311228657549196120431948254973538809706618988452978974941924861932099416214985576006504258022695290038644672208003731190418254406405586686448645558020898686983430604747343273017512103329191197065256589032398867727340882285577083406106082552674319772684598322385114646415572623749378915836922600143966175213172166100212898516518984042665394354426500869772651890049293822434616210950484295965434330786092568348146595308321756323117600862981596210272607929473921683598276942668846045989219471914718993322265969542494211573962474089436227150642706764101001848455965536119959186918212770104684277977634770327027173602157538461235464051508467569994875254253564416959569948104452124268816070786899030429026131570949024488142321738608832789139443549119838078057201672341738235872841004363594498720361737330040122682467387095973941318702086024373976143044745479064940308584557515586112415422862247828397880329258206252776866742796064649236368881286709583531211558623187898107833922459148159532747644155499402820349417747049935194498999797206794389222730053179791469882319185564259538017937448561424526082936319040608314255657668166126779509557262199720468204367037961093367797497151671700373151796379258295210372500625650044947628124840019881188745312652402415887554586547089331161964987788142888133330028552758280110733975059195297100646550913676601294628487509648517484732261796595353638413462619018517744005710166736580745793538405788786778822185032499864247511926690159212254913949891101299671611572229989902869804226030709517192710298991751137627938069529435931086640018462569590335293273325847739023305866110887623004973289166691637714946389255990320772369459879508725384108741503158123107802335756971900662433947106330326668408201242382634070417925326304092802022386359957169154382230951886276549812467866090406332590565834731974586425441995059409467682334079406292733524004653129189796398848394827976256425697253987187323184920282032044588658413283746389895057411375910504744957251309228405373528748685140283970003752976278201612430068578941378465501453730313280158134147194424555240879937033718455267998606150978701417971653939956713168593391738744934186594577639475581432075438206512735599887480631621032562170491938025863333326872542225481417016127505843894837054373972372550918501643562722217762991889543397743021784509235410817472192068187304128318202104198476790868174450110105576195911488594752561067730806934719233197180762560877695142376431951269740951320467171654663117692448945888604135607793953640846652718989403879102665097478783047577995569134421438937801195777751612417774732315220153562640102752555160896821486761706711956307398630754043407757300482120152790059650871062002336080025698605852717562060147208835708611172078142501583684409158184515884844833830339629313009898118251808536610637483010914775493604824289998299392230577879343629960437257070922928025787717476958936505454245091835492242552992500705327604926092656384591868752941183758381318706003269148777300204775368307819214565676150420331712311681579714337524825152074225074066528036885983402915754217132415446568184131867905975444923700892757676031855731330615537053353959659646341035750646207014642162334337304664797234567170204812358839028582437608977350117593310656428852003347571038737916329706652505397170440299432500603132477883034002266935980593952166058357561443961802242619112406625413741929811810202754123485121404387825119758238866318602359513978781020459329711811649038194708246512947334737523523329606520913863733038725605514189710685138540704356246327665039710981633945231461464481906322506744175219652304776142693827454044546524694285081260503503267053575408890153383742617949861413257393567426551865540647066553997455897506878023812620778325338322948610873503005128145065048155608380841775662159693708301066384695171757143323391564425677406142983143076865755279413225247773911164549251132748402375937237008808537543941440901524158310641600175100529062069209355277615469466815387474225050311128699380639044053361843932763492060222827518008674561343201833253557834411212653724834532673655190239945453609340110444396499368894303311081316556989428399670427667970336075607144527376909595046883396912538317635053311901074248993119237840318970537692700009104011530946193969363025257731214280034430524351479571563027799679828075798416129558720874210728331951818263917545429163081827873946866472178855342203963763085108140234218171265946301489523395786904964295462846843153771684110282436361275601056242339933744048881976061275825138676018796215039800350199884159407052502561514733862033502723882125643484097283926156280391216593017779446822018618833114235600287099814364932307845722326183701016087014053974083200626711938896937581620498568536058122714102420897408997215473698538475408021736491290863902485733495300856117958310770706444127871626566747210064325227550092739236410766202398503580184548192659533371549134668128940450494684389314654795911659847356747075178300904329526873888538806688362686587816521394691609762351450430379842102590672149142632912306709037408174631581576302166718228419830189435653765432588393254328316682266852813650171209437844369475622421585763828473410504009973227423382308380809907383320313493900137631752854189018557707937839863906348948313530376569716596415317797119654013000426532953785256428092149167726470241605733494168883626376576213793488460817109650623787980067149157218469173671625666735008526656331751407632230109969869060064656425140135228390034858704279313344538069046374691100539337394049603939730586373945484402800730526857663308151041410773344930300335438586658852494073631810941198937724591542411404025908301701132350837969755132772172547218757033313457899393356517229367018138776148181706169980678368123056923910545967182792893029916333081106157949264144698042205840969355371970421578696693822680459921710349997398406651381051712492503861082581803561181300636790578690231700532222262381957788679391017285645807661443896970455887450678061530141645322266455632858752796224124442796751559724665802752374167900140138825333513773457720457993737245646006811328219953702740939383101455707018092637753895124054222636565900276065632865050537288720403872756939630314223402329706222462149261364931563981936110776224084203127432624427552357546891928576993242823437757686542732673991847173499840892707012161030840431556806533596909750845507824287747001653231804989744181689241386848666492400091925922288070313003472254944586820421996356038218159639158731074512857984790655870824635499565994295567472221346815661127035743077248277876216926538385926459490772622595017680070139429751100826096504499292239900207885816096372001803974458757377761962132307178891873206337075334641654868177574361138591842593648984807263321362369995962527589222187575507918738625307897053018747691948117740336966117027812292039889854502857375594084490477412753238250248664395835814337509913502167715060037002637858628534382425943993656229952415118591406351827054371752254963888537435683325762207473510860817476720990600798026836741334227638623431069331018870715742590120649893293232416845681095820984978697850034439132226129403816358880832843212200752603489140635721595213670443503842447217560036459486314410879398541235339212264489912602993959397361011817709653781211896164176755952357342857535375556444336032898220367231184793920496145089145684963278481088382508889527920915940297805256662549098293925265928586591820483557692402708546573091729375912083450398297771899644896879111159448044443898252254352115644956094767882886488164432213284861031941122093272747904876308841551914497432575170022245595639478242613142726057891176367400923653155485549593196771886061156866923701688296160814987771200701339479491838861744320384406131288602363321165567949297967378714687300744800424110339660798427670242957019171827336334199015988222815891204630614937589359601329572342227737475968547329981076916442003738759147774198037870617604194790219008694762986579676863250423506226811717367432253498001443081783407969496556537330046126434041631663365733659112109775128401519664193495429885386477294654775370650839305341068757721710943438311192674617328439444666764393009908615817061579343916941550329781044905684538236106593226870274805521077738303440792897823619935719737547439098608218150095566562354243060523309083867050555541773332956099718584169497918115281958432485812459845375678215390902936831405638426189315578854866165692968206393477902222290215918761697715087670407940918185824793759582160985754905446509949140849913263957294064625717856731490633432659152814372521744266542108230314423733740990890655198185732857279621317982120499509953439702393785819270158032687031730368095462093324390158306118758587328637742966836947778780860447153354168746754534161041604558436988692881809123694629217625786534192256856383913001416590851120412740121290014404368409792416525586163252157998883778588231023162773186644629451033932465409101621094292239015498122369655749632031930141537100598932546159308329623107618392626822250872989250673228827420233378983881276747731635906494530794555299568234828792950275721258822612911118715990115342623830683786186980777144041328506177201456256710539381958357252971846954106350243669698109082408751126469671568979042933685593987834422098494095279406870644654031004348498268335655624680651815215719682225911325357723279697259851766524222105288293077514648363743395927426954233231276753174235264117781060449529036214460499188627766164167434471980678227714168194055495827806212990114024169596820141098155022995549481578181599722668596637664409501530021437073352044592044861413911948517404756885297877391205453022822707405004490336421436856284095762030527971322961633765758265677038334739349750156131977037666664875519727578132760843004928586628257659113738129495319782991568523282027031309001392641291489067702804747717564203402185623499562655915498963472784145802695366350252377052278694196507284691558178310299776922813973654475656724264388810496025155436223667100538135186733001479689607450054714720594669189790185244659576860593908772475085852360802645979442080372496105276133105532493194835808043280284186176948407012724809663271097941666901011594950850009277686843341855362201238789966903684586889197061124900546112384213638101451781480877125041121442181797999684153858884643670885311131533459765832081628955334211289570017872351065183985801154675701194744906174626819877188564956881933646544113666331435662656522390546136945797311954885776418251104137861428424431634403286131773181184450310630169515299162671032228065601761284664268812769332579317359603422335784643769273935190853226737483433262798409002051478399578472253009885246760074428249556353562052745440479045201591940133391413544802125182327608073696445535995450601612625183422189064413325850645926910299391732550679548910383132649175893155749340953142151689726727667959414743643540576570700578185725824812324733540804315129060421115052463568354174571368190579126656408381248502305182217161931291060899219508677106630318262316255755051065321005530239893315596346841546255912527639297090781702525222856754211587060646156975517289561774308857461019978224861188011237043945866793272925857293642083269509762113145375642013195493510450896441589779630022661185030998949949224284601901030609237116867426334097326399638626610179707068972886038524920632589031275206940923312195590324074933140919393992629791163604786145217108721918250941024111632156410957559101580485461918852662410464753136851002063501736725089583369092627240792419642451113142969459869140454626462686685284224306224917508631432142764796852857858465322064509662301350929362042475656333470171885510610353801790061634693316930146275768285137416129826850591038622938247933555636682011615848971528085054061194695564346895944559607934316764849763425183659962868154356467011587239418820759579599795138371444950430707317024922950349886144630730855854240828000117269553128445983926685188152604242478077265360268819469934679181783027513605458782098027827166712602756758805171026244339274362106685059021589536156124570204319240369915185457918660439590149757125467859214722395984705214453009403541782716299275418320937405285212444299174812583220903386531068874862431919413133602348258048129864897874470027742610536802915701295284590236122471594426541083668073989531577478389272516455747389789336542686698073061114359040149668572576445174204052002012692293729744715308564926611278865924471991573358496967863775608032763883721286001021605942776720900034506420261329070863834101750731847118173734353574720122933271732401430151397554973318903643379974058716164140062348156042261771853037913170695823744523042668476012012734727509737628391037628210124037252104428563859448665147676670421803410880560837298555482251014212861375665159214521200048843763111178823117546779024033959875242897147017280766442814277927881631846610908624498717348401799203180043046447096338888868803718560131637440857667417730430105150426742127968862811084260023582035736908642671765831365478057304726290943828863588532607651469058659945841867692540654216186522211874545683975130596634915388315445885498045813061759061161095995614617255328115169469712340617241219846727264845977479607012192263085650086270484280129381173619915410790660585922298784366699768173329332737499168013210778717133456772110523657869681188505170649277413931647606827049485778084796573091983928868511910199407210991453485251982584910075940621311842627684985847807264441468463627097101455628495383974871181649223238661284307906602709334724958102336994134674090526264418640672809445636933756945439209743510578167059772501888907095070409864065099661526093130459171536115221565570187622143798619473330222503380345121565221785980890779088841768098576331073130921607600764086520993537381677816264141681969761661185689745579672962068298627170021885920898465954683179839996997492467580572602044523801886713888069129011705283017919302323116142623212061863348913015586929643588255490745479298927464514629973821635341323314617699387248994523059042028980204198530351289035651635316985501479353598866542556698326025148366266037317092699312686087188766149837400558898642258869987908135156360662803661319314513447681245447065504041397988260162880631640468102901086792698359795126893151773275885142308585992011208903140122650135057849277351390431598224797424469340477209630488232469825672880557031955003315787849680101103561593647009944465911684858826330586845279893098399028428942746891773397184820824787632854295832132654175609203798274991913999640813637560442298935399825032443534047790392361321425057310511032322110393870478430978772330641250370234946676398301185903770768256482832932128356057920988584138415635439310964884122547252299764335234345892962610455755360791357672349019846835971240231001578396595760342547058848321667675437234305908496534089288409830448542947452472463634393649557139275575547660266881957680077762918288500995738128490736001818404824119712223231129393412836191484760269421185236676214776355837429251183411643622547474139048266777146693489872023991619729125292486649629463506076539926080581736264591427201840704561837482901571031439971434042301292336249165016178205478175105899161583629734712065334383393044241097257832099172948934935731198441064677929333313022092486945179329740052526591534308250725247794986066405499746412040888084170113520506290991611089908010157283754450802317445046918651701628972666601168396770833792865576290708377250981266563112991698073705975611867326339840262120621579780719770528595900636605546402808831239623105998254450177511890489978002569175028265244314500851978427547288746329238086866973136684968586344281453736269885970692086949658393416447994302809339670938236447488395088133262557698354195035327879070839244925753080761138432692127528490997537210219352176610996687181675229502273812753673752881608747446623785024037119077438519751886298055880831199911331956694757755086189752423826180219082108466379807744017904484188622167993234576379517724345032131099297705086851431368581149426199495954564535048129957303519188172582752911620247566831951082994179625345396299068027899172911829932163810732285289706219413347867251555463677992846038027287018136319347188291957528185376044805181295880662842526369648350737030039735969755391572539879185396027923918722303158939314189167254876163397322799926935827755125761405727096506012479751362647818616594847398822337758887979460077711872351111383304486570951893032167246727132300347796486720659908970510288946811612838943705018452594080475927458534112547336626990714633951923510771945592476018613332988954188879748129837278253078965066051363114312533570436476710015752499246050300326550666399518845849033005722206497521708890422830155799606389190948254312096395608923552618676155929399011317385894817468532637212809033372064474788045764943344013330564343077342220637217363128573008810037175713432421030465389204214860327321245594521822688434758877898145420700064032744081721019722006004529537876631225695293241562934511797235808351528759252926160760131666698906071222555919996690865726281231096400445322601070083686024141952590645809996528131802656528985579455433765086416570423738783088896784535065429889483972375578654433202830234898983680845947221156759381712447456622881021414999452481191769425055965808580038147692426352090918941815790681129264266642791124947749488088164320091316101203637975855239487162767355260662901808248037581500019311377130880774178378224737141139940787502681171828789505872031316423757109327406949670710197264284721424775361136637192115831799275890614218319405851043315188669720063888323435914699597656065509316392906822781676645208593183466935732753447400943501598121021664633388272099215505803112958582264530932329635233625661815913925024858434359471130664283686913623500941342639078019112856994509824436185634083822266731346617429973081717316989344010367574704637233749196012783701967024341149576844787243764371595639808811794619585514383671491260363316984783540696096083434553426352756145724599141624639873297282508851657623096186672794383953614780306834971198853491108797856042146911384064720755942043291552436594333593902626160793343500363791452289609628106278956321558287833565582749008641421616777820491149865992387902575785168778567585195977371756887182373774228166560628443366615693207502017110004326812685450700535624168872698020350665773379409420707890722857351589280864990783972139034212167381818967401183307064307460742588226909136348538430062100237249345783895470512385430925895780961292140168782773296602175371030952954090779291770600325579212221617878168650062246188875125171569577294672290318660624065167314919434934199471919050838715591991683935538119769890688625133734787246789907985361849103205437465701335411229161420674488505141779526082647796428653237007101438369463338954436113943912519878079836880231319898764910926001710299365894467089610682405317107924494092793420483941942594249007775060477383945896352728094208912213662630785342359967079291657931206468583797600374441698521272006844993718268223939877789733763891398242458994284393284240140043164805966165599378964299343171964440005703418308677723166572641148679692362647752869822323368604909432586805431533334899229000461239666917672768481817070028615161769305248581312319071814711226435223565985527968748555076755314400071245698026879622821448256405240883464749857624507351453510193087032039273291337750245555687221798484093340743496415539898774706848344879856345042870338233309716954408061394041985377708273258522170060766980268958351111157556712024478710099487051184106634007337158257476392219671925141436807091036474404608863802556604700765916459483271863399546375098957864657762470622636853700217770971164829435039667925663634097775235409831506962651392543953449053742929216052629696492256458237785904316618092049100657372457373727688007442993627723512389761722192442357268012462024664026837465568584498536078067182124143266350061192473476546406020615522356265802663113880150670168659649180724755690753616821666431065810508943080672499948559837660172957893398533916783696863910746564113987211219358471106978869548356767543815221806427374298538059754394197835476272636948519766930839778014518895752027532685932311830477917553731793416273064514445437302688019678364148687895429837785301993334952854698752232952655230474429013995824095993244394493870521067672530371172016866846515591439984182130734404404595747911299622343175777249952077750056986713169297660997392050355461574787122098578046999273070589623131011059025136222336614684280763233474715630621854426015455769989294079517961594502966235388160954530242756182641177655279769399170193380097919291434379806134895600485356535017137441635957614802729412230942380688983357105308923069175065665470252165585959238125483199553773936217086690940482802188430381428992877712465582662537614934888630595835592937639946801848954962699940769134086785391375289880650596537252695011863915936945550692139450309341646350564528787984792727531235215329227699740654830946523763022499315591284408011468594025248652812977178979757190016600304039981943328695763210676266198072261212628400464654422128963997593808301122615665519487409640938336071612232324888793975435756627346349422502352137133610790534362695241696700374425514287377308927408325491580026522055496357763426933263364558326952533340928058735379906415090135621890592715604817173123907232417828919049426167893498008279458573444637005298629522385784697098483981550640777922103709134488080951148981920072709057597475872208914926392163347569200672688768784067138489926765570426338936276492466476124678423206065634255941302902137754210673901852853260511058728395976628818872700126567955491778928882216736940652052167682435437387103332572893384815441496496163752554975471496568140617513603376670235708074991617056564633895195513743475874631594138261809905804964532399775145411265780045493007794817712019852548381477314195625854223134450715044106333839975178688693801773549802525566885461518237364469037192278895876543503421005575487765602050615817579561697293607864631332145402028130882259470849237492992206388970920237735474663966061107911218608295105637853894785953016311397056866553619863649091276689308007339098076357209112674980121283857092792891539690177217757616435035651353853627577072952179411232323285692623020252939393853852770663341518243381325084985585421991340045124438863533945552549020528136097484897585153245333115859139642580862594878698794664883299131009800947110720045559204513814485797110193690594281904871026197523586191213904143704318804478716079163158143314172303985891018636841323064142665551831778884774687839560103709236675340838488374581905611616939107346645446994083180535247799926373168507078643766135719963867246486599271311788074176748756240737077723701113118805555666237171897189965549916436051084723272466610791353957828265846732845543662707794972703544549189413153813227637139409798450317373800762026211022872374546506345017612887994320818699183765851284638573096303861917006003188200561779704384184248641784989681705507346039567861815124203263120859206215277127554794839629140592695665946726696246770076653918315146551376862808946179542638951206574571395689424729556435922958029835908590970983824939497343405638311092221718677048649053449836097434021147676364059432608521235944909303226819708565655855394678169287553286596474027610663252049494519348016797769548940265274911720004520197009109273375870840933906726158472806818411121084576127763887532753114921533244702761819955232848423537194673273704194379831505118114301994461244530830337788666159585379580328292775325166960072609629195318531722551206276848207109076994786981294756371770747846157140430621900303999620240265364813499398998797081636268645890522802473494915431338711590749584885623791240799430717387082523438653385953569437909729857958542658112270320920468260141021126554848969425688976682474572466002768535920798973851614267941113386164033966509579107318281648878565688880869835064310674887644044507600605219611419538555293299854309974600272844664355430634732636852771022001935327400047364050118089739728379300671615493305887150555540173524931298544218138320148116286927597501608563115638753028194172891524387007816859319382855694934128332719988828554359843032014684957611687839618175320153660188145733137593259976077006409039417649411352063779820963954607899544697252039232312250308282211280255026618899447703897296913425889291377794334268189579343131035559030122526757499282752939912838902570493199386988842467262648541596592566368947144752489949602455253051163848856647145987656791613489311527947971154048120801122557683666649458392698484356113858761061450866115122502231627472724044638751254206717524889970072540496260087410119937988680570289409242616930920448281469858089794056806006012962438317157514049785707068762470423050176104753051558754592522895526553832320988809905020468884645112464157925334108268243644541620769353568219406695915502964959698234131038261070247892476460867737118379215263850687567826682642630035239073160809670364705685938133804918562035948778300316433197540075082844567805737774916601406748060242162538055115215943458158696343626988945594225707084089899670737893521002598364309321030752083192047515287801404730572434647172128822911040638297266549422254369761700689826815883873974677002479010970545430735998173904854436491900765276054254977915662412340791812154780839324277533605653516695441000338501393781905169763021729617333497218425917226621691242638685926278308099417221941570434321859444534196384623162610222632871145653497363844742213521548454932561150458430593972650766301354963866922857980194945534661247825648530401998987787901151718390748634862174398459694596688259713627824293590010651433209262438090931092394142689441189761959032063423563520336763075425629188759374221864113620903760384221833958253755952891899091064515692729927887256868470696334873741068673744064179043687963833258738094306620798928234034402775099482953251787258867874666625926766093722255613738374677164869775817335173057065738534433382034785896367518193931837220296819867130645996213002918861811270534290116797975604112030739923066598794100517684259324826779698132460268083219247520206064514985859814820003502280302917168472566509337630987578882373161821844706647349665122283251712237316459471804685235887563692013149487825165391402100287413981129609286524046127340591608259276552408065034613958177688915834334027114908826183097903433395426479725664052229905275410208483044868766982677573050768800823468234903116071552604707816001047138816056286522591983288071535928014576918740962137861590908993923041997265856498316907160104473633410771327952482714009287303769765625398526668565133959114647235140330374647595359930145472398271943772201090502262028632828526178708446432621390280947893661665620625179051741601496863018955336180012587215441069979554615662267903189328174250576362990877997162874709355489578122980550336220017612163226670781329900600291050053667190531152548266367620500439300324453888669935858450424556522050873386438712213277678141053460151808714648470855923958992058948974278222466290336809634020949545130351213070875921737631596007285353271182198810153368498090046972508572658968826218122608634594681286613672320487130158967401596402841543331603537973052258683253147131592040305105110772573112013657454860020406645095071144934773571406817864932077107018716206977272786872749778494020064003319552342118238342744135417540003154799880308374646584728456445379443754351657650515670034460391886160758072393621849124299848799034758356588613347823430180674396109128302470462909565188499039364449250843232103212135077258046047569758184408223937115350394132390427433473905360255361986672125214263069658274925570959315353375112310811268460453838546527523589722824484368580023845916763058663764082243817298754803760808669463280960148115858856069025223574576871446421469388084383154447873087839394895880627880796450435882629398964432246893906586018806849987995898618962655337181053903213611010861649510382281579218994249051729400191049473914334161999332168345497921030502139355383023013379447957338434481085247649805867037531392583308917422928660287483876250415876171510922052999601134398579908580421194831658879047908276672578854285733677227032930555064863175454561083695096819122161927442677034943144268585060405684676312909094190286840639756105672773641022441967750077542192593893274257770741282614540947858982413152355211279177216042585784582552724901352649457784578263279098040059710708672140609176684220747484112287259505161028318329856974984203443395307067131371163008050467596095637517608156281086167785014747540794210283624000371664966461069615928630723789615443867023417115503893312950475604785731852211295257580729759937917536220571899822856948052138778165437637406494173535059852845383773826994702509392088887991267609446305091216240685428252695630353083808518793828240296062386003983073474257698171761681846305318128567121804735598031417749476174092917230583522434285513372552141173651799772537427567182829723500843601170646520123633523013355450144385413678450428148765191884139798968572678053926377400714728863513837133143813311123090868051717184379969190656708133834945649565249695762155150431168839219611021955155246674197777552552578303866446777732511839594763038873668758083021528272063117502643825019075472952017745300395107675474476129951828959963709526734538088979523753459567437315508862523308898645135852988620935820072577525887435622097715924985605365813369128814618547778917882048532248525450661813044493301672700053187002672851879900469676560776676814719456897699970902276485925796958988602576734648202298787219286292124417205572714306108805339121661876637659435419973409795427333162398231540904205026389328555942645691806707651482865155317494265298869846600634427952638828831362973510997265731473443863503363109931909524335521590891519168694965011872524264502925710518330112948650784817590849947486011028533237031628941459657386918473394586510881105003348787300816198635657302160186141417063698533567207874373447551819324819650365850067785515026256620890885001083188623482802676907733751684197704255219353924369127792521567922456719384531749261300320512091166171840916454578943210849423465757915235749586874205802444304587378384074704319106642396029967695236587796840063851415625537050083526306369501170448399654784358324973599772759874064744533270365723256986892591302625783430883121788200296379941746368110581897849966087299151492300149059731695014863667344157713699047315025921679503218259413079199809319014109466156774808304205963377105272583064683394198135831064192004030452284896950573542860120247010828774296948262400308737021617193555429935842869066308493420246227129864527506323784051391121526842185636601256594199500648523511435382855750972073083124527644696612925583462351042372930011618257186292432757031472068759823129855993062084713401707041687174450915743571297655581254245287381004180901117400933061026875605658296500069983878233160621629098788835321462412652422325837783004406389519543321902693644927009757733514669797852685295055229458448027981086508478959750873089414805883469620957528134264603352509913256202169180762530321805071124117062489415799941257911272037679976982353542271184561672353197396658759277364447757193361756208683638544210644604304951051090319320784981839024251774477653271588429125810980516011542567807932649771327287439978393162505461014870792313101406685803033952338581260099456599355042295346946522255223269376987735019699022024070949443653530109643521965390618479159131907098236015030001120197184292852115109433293807647242261726687844077982205601147020576216977547875354132028549446384407449186068269177332365045504722592674712100793855523332922482355728758411455192564598344855966235126585304269321758970674518348319973670846748320238957073228986486007185325155393448825150409517440723443167642861184744780768352180441301758220634523754282558484158540975944479858679714451888171875677482564405939188618236698231528580447489104030158038666814078086344406446280113118524445161383720165525150015680072691734851590839049994564504656211081294398021667358831350058328937139373395453754304077510853149029634511816324438585891230164106293304826398727115348098307568534598561915707115368758649169608278523431540008118851222933036787533872706915458274325467548879060565763993784336754390887098085594193322506732588160471177464654748086996312580532204125497587746797059752696459441712583337855800365750316947375648379808608132306903448493146029544197884109947388382594611938200210673682970623517891895262237387292849709267843839786485142494252699694067951435098447043196817378285632094070398059993882180697907401847477165923834262666666295516338662512619682076125055703491545977105303229888185169578115464444380015141061629069743794149347032589220137284556226331492039955200539181163051036017358308087673325438332145438274151487979724429421247628589770931197686592387729524344119398853179375723612850252200957554551247101975036755667086464486283139149662448796541381623443133396905931605010451195490823200915508289046226890066937544147287093142051098248388327911221969022849922324849456376614232242009058374302412349349459999049961518314996776588311385927444796479783580055690174895818642392711024446281033692912207742490431389320838592799114774090160757935766277239435877002039646132958508570473097456754300995794185295333280496511631457858319083917792897784267699321877401490919839370823741641268552143603529503735111541402097998447337558303948005098604125389897930447627585947687104604709849698078372181238892081280194792355365306787313827693852755884322034577475419340112176083435195623004772061743296349831403012304300131853148417558597405819925674657749001588721137785676131261589407285181458394124076500867586789696425698281892857599349060338518185856296526501763125694936911073591314108707088398719608265960983994805364350857624922032276986644393530110085934785192476400536872922626048193297851859074459355149688335961086131160967669583423532694632126505097472259516861830064122767827900545643856273169685858089603543630189031597772650225208971178876343162042078190339190738810799357211306593262454670668615933395782405545907283111076962109642210798308162905033973414551336711655349602741474513938455880857825771449255013773436158263640848369773726156091504687656095588228006297414820799542888818639042908810484215147801395475621269067292557670646364306259436464232117286864949701162796346651301573609570084698200918426298791259274764135529047621657539565870017921642676566806329548851362169630705543854781824156330635497034268142486371675112727624589215466010678765653802313692801544476646661973408344204063811030781379943097358911064923498982335943419025834712376833671816219898289082815500323839862628428750477609326793320658014766935880476780887655505825040170889622114408011179849004950147658499164821519343652383304037401465298424848020159801044688290623040255235664741428574400023027908439421310492596519088923691435953752771075592259973102884767996063685250922391554297150024101745525546604775085156049552965807803932351627999669821175867769904334092384605563799900566233352857760440472015129652058521579876398549986259946926191222888373957249193571877759746805571605267310345348470553030817661070364329711176218609989919384490519036997650918184220720634000610293547668445347288325411592819361578003947194270368339304595057222650343615088682642082820937384537025909228300529593290850624030629204208715451804327096302492939034152552810787842905653140985549230962996467061743055410421124415984486053246908378491115993288922907403401174862941878970921455691006298387645775771325126549540272024057057428108868095604815536983224755118629583785637772858916355446803142490029103202539231904630326041807973195487309220199293398389058264669243399409795640768814186565485881424412713586637858334007348373760133556490329372293458881557646173601013889002651900218958020751485699827603159728989364903908976078388943198600724755057258040437192773524877944690508107687886172920795675429404051577618891117962274602573646357233435132155179453680258166801134079085798200310157151084955317988319055791588482220487119101499496641545803319964050716843579821426601137270343896749068746515594833194112062788167659405450009796468106090584789322174280331154691607248376940310797433479120432718882408173341326552107509690000795752899693695186766851291761445522035638725383115378329110581450449716570258516898873998974954151340853801791954628448810329618658826199698999338881144263846481345742104890615547385358537508015618280587781322331641689682795619508141879851462456786306204540474779669673596816545474076444369629642554602094803699246263113525406804827963504205903775307880117941530859715662126161170258852134438919289742072230460109855472167213131547658452306168485338041036829716032072203934433532172997523067766264154333353968111105764783289285666764892105444654893523355508534791700075849064496566455667554679663195611495364816381504826285702791394547897003253544346866516478894933856081673741658915540025248035692331065310191195083002615729282717976548356562194393472061300531027555680757238668425422331249250784413798843377881293371719812631383904143752281010039831741610920378071280116350762063002016349428408011083175257917480291775816049564037165785429621193384040405464521663913583094194644017811910637366321713659217493169847125062159756346013574468645977848129608960838838334509705094022959241157893384604121586989345155509757759303609765111536757778826264219441544342771811963875290475078441518548826910695813607967592247078689716399848994230467398755269228613911178843629882948708721451069956793292043036544601089020508402466414588166992068931733514195881851694234272245347732783086640204847464431055626973853573915235941017779116083599337543270870910845665709301544209165319736921651952601894418119192724710543874310753029121194671734763854894225405050298860791603629165213240034628083581038405335348087448530384075312517146246986872538357594244670373807846229811381993229149512986878873423628379369524378943032212353813564227621646413565670107379464175089819288137153849000966086821483567440337041440632778821541322892849190424660387586965507134305609064327846335377342867845776515376162806961464409999712703962400250364914430864838329605889253376059619664554177405027699967551091339725433073807105050290742768804737915802541194730022565311860930893511715633586391588888168369491348501480021405565683478582504235040452176045373112332951081982465175749332495932631371016077681064617234574611488494594352697057032623006721195737997271461063009285403522989098582953927163209009020190072322077565035963655101588771050310539033718048854053029462151236746573364181328487017539317589998631000073175236551352531391450499084070138900690956042977271486058584221172499322738995537880985961649667503590225259894389364210269243556633823380413965237505816393479809560726826399655127320630724637302988662299641631140319485289485550305874236841506516085450104253577040422459585194061708282940208115920954275700356710559511035335736339796671221387893399991291378681484840517714091304810528699152437318621031378329201717746916159432822699369130212467736735885050058240312810147001111862111597869843362223941021974870570124699123419265188104943894960397539436002616838977899204703077131108375055804341166732410094770582898815806077799987812702272608955571317452271116639103305276490708819409713589403379767135666491242757130540012086485554437434019489748766729945387561210361719721249351523411680013543301961700485748194310265808906052534114266485819238910822301100112743287887611027570536596811219175913719895752603590592773415731009380721641189692768333839363478935381508038771360422810703786183117134272273243225986047709783912171664186771589487946400864480738513151720951959283439516903871334563697416328248290869477556443098900047710499261487305552713038987791040166205870491549868047811169794404757929409260647705901150470381028850280037130182506611785917987732612265578336176722516346969374551773480354558149185299576180777785233306186108898225792416963038942109718368318700861536536390318773551392917665418294367381380624485138160903732865612643711264845659878632014093987845370030271705464260588011410353324283443787268342828368593020012262794067327403023770101315393983261155270108945520990430861945241773505156157175811716597339382833017744032675061769917507515422242091502430552579025475396492375336341007652109105896531517852941089932180308595246578656083738570769292751492532731978460231692464540065655255893267001849592804796586058923409026649147913595017074277727379468337981075833418642367791374004044823134729857868381959765984087353669958551062311672814747316000884751784249809884366391382385271116404180112711359118574169625911547205530942060765788672111977299213184894982890238574764068545545036883571226097247978614416280749138914792704461182117039840223674794639364314911249894586756032868745937759428474957571701256462267192437626659335655056543576643816846375906076510621516615791989229712671565450469369227551138676914863271651325103245382641010115620659142436527585512174852483927625783073122736773250403831833566698799006124335875088928229334910188786039122526292064329600000086505911884929229845865706498607009834985037822942089660317268883795058066617381258276176459911511218989320651112016913681884322741872562215964643252757521133509671631219867555260245503987146054819544932871587433167204779390862889961238416502248140297479843147927228220445296216387821299894331444018227017995230737554975054650418938078241005466624755746168843220179339738706768467127456421178502060520360603883912759720500374963381063069872807516934308751212764376266988435607542051710358649718140661359002596529100438102769594726773812249669584529232177149529940564342671098218366971693972005791424449572473577838223618801386023427991978377967744746289123130474240398669694226714798687616485016597934502338440383291946717825241581127546086697274461264843813559515890370481310606897208402479302611786543081538632528963427181751078267407943335317040001315639818835278185184651815650915255761818407131479173546658003773162778343989018570574786617114722510133347646647216091702811428684422292389090940610845228698388894939837749909281765570893840683263272915554121474502189883963629027645015187349690058878372409376357888219972450456974414927706239187338560890655024301831036622513413350116144069195797925878950909392858106790299765982688922153537834322530663303853120487067968129329783849727571676475915307166424203211352532976437224785753107483359144155245421745444810081426500098458414901232422845378944640128936315686514108062269306354048920633139096477374938665250115388861506298917745204298847488552415315492481214119579763307845913622733393485518968590245321710295855943957377158298675964408453501456349573225655867815370585020765402534224002089537677753193749071231853282610037682433303064573123602905000504991739539642640667763680575979230490207399046677166021754926384308479584901000894411577557657548055087826705110846137923340429887819696492877955960611429264203491264998309362144323586198297085746224617284849604944879244736253252345715755528036789851568812404040174244128516813091128049617207413311609919441364530881198172440111537105769061147571052867057622058502249426726711278314186304679536181786910865910783133321446294221354609829110148140518532604739592993458965465320550677126257103501658144253010393798012981371627225104429714924482570497587753329920627473258977184995583289217929453737675721466528675877865268416211387026587436149238859966303265018589460378734325419728802849642301842826618827924232446321050594394453440538119207596730128406162801793155374056276615818260835468087068776294321621261727181412763394864483872451588551611313114854579752794867903233274854526561104152803071071927472531647874637910305199648500307718346366023056957858762006319358517173842126645482524442711240383295669685796950528956044618221515242933992532162764562897787227490185180635233434217973794151634297229954355382703487884598473989451603089521630864404562648545323907219478711165638521409935568274394964100063159152112939473793902699801193541771838965146383661568380264148253098665865161218735997552168347303600046197885105355036998157443372283820790459648148819986012618221732050667023395253552550996248959348520574324843459819598208959493899765939275514842182434298790400613003740123537341132846936164717236374866241227467964451855550268471007961127449298064853497926577844438376161456026589213732161900785873918614059876707749075004022653927824535233276256508354890753649233539758820794077442746864110244738443278690926233841614274283497172533797240960688472228514289992988812716160265356617790735396799740264638789627843017189737806858360519530058504863833227548447953303130167062965902689522160361147636739000808092121930069361080452210118475339274582340562028642595692299242933330501968446195878716613819431160293389453785109358025312588475834119650743580767097386840645074323225915733715837883510748555613012691079761001270731972680481322203533977174505234247662296873256294843114511021506397840865439578922996742937318644991564458382173053097575641936389695980319783582837400858082739453403583561871392308002417796676882421744985097706303274712070319072381166887776408533282896527599978122367548406090198104922274998064929334818943978596009364061919804202883140627512985940988943300236962528210508065730648270995708974803285506896618724778458394620077166004455224222635661311858287167740762318644130907457592546761582474062382239640367872785370511174098759617928720748294121331948202770674436524628641022477582639507137276000388867800779825426328702320774066249960177537152510775051069395317174618109566706026302056198195520749914044815707686116668669634050622568310332570468945537587442118035841115533157526874191524673545775035774093482230594006461324529592585838129619295852857760919215259363342055422466122024549485460890480192711868917004932415694200492390557179009745186470219847981043058282412984673670115019308004504415887292852247360427428720721656010442425767204988385632518636368248650786691289424097723251972270155259797796843499387476711262022054375476163450751040436534685368034385260883123164079727570295284973462230670768899161694266340407988234796852089647405180318413059411927708901115301038767443867235731191658984419910161898130812914645198947469839887241152053112059074161913103440035259807355925801202514465929783262777702264652363146177647777078554145592533658719159423906191573621905314988050689596417414456734642776909743135298901618054920998199425599541976767447107293018481642858653392066960464221699283770902560201677488835527848034114538367806707524125708597086564546835521287091451171950787243592859395369718645968586394074878934326000787777848431482065323009763605915802947877893828407277848549515071832796744237972618669121749672099323511693933127404669923419670303959772721689340327994246769048700777965110792861943505186051943776001518591626732794119633617246111226108479771887099598170067959160517875672208134253960319308135842952241056421963613636991043340286390844359507705692283728254318836453898421967268081105071125821565521224499438388447750426961672619747821459666496135378390545072430443097032598730583645070874533564015475413400205248230381902525374068005215170572494197281118161327200214389750455329365214751345844995905301937191391599792635321573459933162124066455760484694779407248023163906797707753649040722511567051124795746868487835888164489376784773754931958605073874879507480702051856101539255283761048815454049764880328853957666558155669463611130641441843202804086627204153244356754392658346400249279271283953567423959326336673921070417313694782452843434992730581393563275152179501199636730749955572092368252629442095693237492688646555701247451285012942444359267090373393130460159070842981857802896094631525919625290676406602837492311560570045880804351060749669788606820516208296422589064218051347539362379433699286484739259501875284722625945213820002943179879689586929575372352405623480079241138300249146599742346466944407892220729324526254867807351836689073457050895165900791405437882187302109069592723147950062513871162133138799672994923396652420428670378766747697061596475790057898346061297337561659675542649886776246415655624333101486504651108505220539012174972275235736102858003386766403156646095282509004101674823291550389542878637602738117259273072040481099927604271367544885448051607420131963205679110548341037264183293612952536156609859673180068510307754429679150492984812812895403504836674932236883276593367858951453147035938331233077899019477174147525293993428381869979456882680326400833383697455273727905558492178366918033811672959875487918035742790398730514810466650765973202316510445944195610091785123908230389771157997926461084291959424659708749324096140991264137402049213634785886507534845468825633636196592274807542919377757670300537669318859643068238230193740748679951546688675536953014850936334866785999389657372462347297113763089554421682346948370754841011476665004393718305700820941666799569371833144524563930007711539446220634429226896524071548345609584954909661925526347516664332301617715220596768641129714559720506039607662671374068645728593304261454359068282760028608604444007031078060563418851549920354241871775017851182596801737377763888100013946930373969688357616203327986313165024652919536287363473407504523215527280692703328935620873605902736591397580361836627494529659339584083742733203826365587567788293346001464465631619986611050999936282898674813221004178063314748388177378780227157484736735226294921043892595417230188088064109216315935870293354009524809412851142664985803704887044243574948196777015380692072664258527450270989010061960493199029663642457734700357140071932571073115758882007800452148214505332625435241237865089892231981893107360684461108163405446734913322295951095953644881424374341205062650476695930749950458828045083853222202802407868557388894943111075564633809322131090181579235532321736075102627015836802112425393468638664247500432272251026094290406875882242399757245201284949062095041277305646046449810411165393382581204065010243792357451931424784848298128061367969166150337164403358796239924418451046975630561470061503405361258480417299088116806750198004822194513063190492124090841933042684481578416925967395613823419929325486046738471451062491298006689573195404752025281606220875016613586605466334928807375966410045179856974520020570502244828969056776418380554044809954974303273130163967961225001772174448612921791138337096784089464124515511179916739556186789501505066585747491620764659919539874625882600846772701404975215666615468358942277504575639162570594234595060522136964016609449174786134978527186187477651530278113332365968861174991865087890863620320319560509341674989474220794364903922532478153584457624639106285260965139983431680661555032158484943805255633211412623724756157961049567817177265210029224767714218576392617695750284111606673677775527539275007066381749348582012459593709071309884719504266248980692548893209513467063975333038933293877922216554633431440053986887311628934303592694896967316748255596563797331899348640352587484854726878616818030933558968938914283167620001041955981756533879332916338562373308052751514422777592839927679956818829518492955721127475129003835143840706643666901688486239315981196581871085314646610272786033783065823119544798855886004585275247748050990762322575732522682562892793610015635754609630912385328097686569211569206857288759001111647694914432403998119702404958272699153733414051281762510671779527636547767176166107262363838329809545457332159696198316003903736642100379470268163160881937155360900685412196626560753237408194834841601004378431793563899386380378141070500358303566339468830180735613308137371378389775041450211997311839116852849412611174721933807704402404245613207282494180425246551854669976261357433666129104615091252680299520517467246680806387848009788833141428101123086736938416687707673678893951289535320860287661875483854789884947591162575122783740363636789226108493126058030967280910561090778297124036406903866279367989727571161836483455325473211750526134531385142878246561336520452216045437307310375886934377583472104228568584465241706249923805155516752793737578039434469169129830345076225361498817208481442884420626764567976518617373483301172001351047791025651325755905534721051358739454986051820464259918316403069006328228249968009089099857455395482505095430490770158906248125814437955858471640787229924260873402200754183046663647050385551436977263371502005934832572402577804478062435557419301875944789183392618160949870828133558817764135593874226256380650026338866023373490395820032338942507898461586145286337415467191797647668529311507959207079277880758314593353600093224914948224384987949186699281058157242715261868436221642942625637274803809239396528258305551469673854741136416726480116414632563117625470587596231733631627268467815924337087454322640757402023830310070624292783976108601177241443657524478850903200481161556440588526210424820752233775450073378787807833122977998544104409619851379541455449065357345358341742152894171703425404019454495263732006461266304461994306000391700894693719440245996211556712144331043953588130396102466014394419023119344413467425920045684470584954601370357357814894760658643641244428856111414885473394684238446155972300497528043574969105648689727770085249906678574136786743932230467026996689700924837387292566023120301457685668468007011504750901978126450795036455964375568482234113578035189138892310688667673426973933717752105074117772280351923286373485213770559798270742171769615290596398157223070883904963643366670739243971810171939999513880036197240534155712198460442211878462046713024289013927104588282764373129280070355269776142523738643149207888453756993125856396008331489674818813256847659357475084368540518804047041544214411203632645509355094085980232036650910772185438506471553871919202424167335228560078839474975730298227599062035386909360396553620130950275707321135178411132223343521676962848066234657886367243924867964817237214402315431887450314163378902720392797629397990549188570056111741141746124229956637612100984700346871524883124431579516845731265095978268748606867462469592524246791802614814760247849959343297849135501366707550095006595862452525772656214003986582714910484825514218674760109685913854394640230255989329335007028849439142943425445665622348843259048595923491090350487507824319934116793801614489551661913443215876301734443247704058456097848940218595735478336952868163829965563855730902823474852305997602269764069204307634850522259572599630903323211010079092128222774235566709440564565250634452540551884322991544473156084911217139701166169899613520629559953338455823691174386317014291069845223619253372598285220691512916941279954843813866554313572701484932478762978980379462504767527933244154417668524532506426729665417027959766966105423950631359964589903637606590038945087887254213366741846993765248288006278070917371162612365453040729987356858658251835872262987329190902290744329932067146142836185939355273789301212005675919851997282381512568509021424604057764053958428524180970281188535655026587610211315906342780375782073980750872610712594461113602352534139379510185574170103060089079714605378573437648774030635013212441083080169627381777680072237618293612117685506723401714120163438280936592738032932599797413382093275790906727130765010238444875933606979833324201484391695318926622133466800955060213012580565398836247962471998152014185612983356235031924654315324284801063330240428467259251900574498086389300760096313134756703335232944852581072820977521242219451532174306884031890691511674213532548163786954345176599226540174218411710693567119859402094001010586738021672299815402406121127540531855490149313599449130342001052103798661832883509737546054378050535694600065908055511976923727720984328162672257413752970154463946066577560882779791705521156874828030050718552544485019524476668325041101108585337725838839202378623505930314954017488740624005702584451592551491084948500342772719436861939374645498859872471511082943501103391770948257483186360498837393040994797628158654029234755339454222880327731339491341297335692621564110464935192184812648175040470083763797872146505875769169745445338451818098091513874351309070482682122683379590118921776590193510072812219258113189745416148730648547426558988847124268491352099592339395074144627139149357502495833323142270633696258094135744183855460254964217603921352507419687830785166014784527802063409182584615689997885357315782104581374463771100854832720557665722870473226737208640322121506850926001411186379857435290714244546141718280510382987563774920141439270055196217796948869520504904202067023613351184620832155407362787669073616266585961737285644079100516698178241167311413538553819745502781751755058798545039773839824082861864980779689316432473455959768656750463532487732442744833635197936590535445159459084490193792443093578192802804174899612044977836709948638286808071685559459613472145308745709080579903688443852587667658846251035949409353277792751935207377143048192930829021841658931666201142837175913464546140718967199010339826111128524696921549423103582429526494854709134448653140982030661748601213389253295117541797777431906630102885715941892700727418284784447118714467779918140411038268026357108763216857025161153423592380175701190775818684651742308834390605650675287167803501608737766288513899235312002291923720978937251372470719939412827802780135305180144351612955109116554367378566109804130404690431475384039010746066779370965864101299377229309613325166591999252242653909536554440183244128752860218504154400533365843413004966447109476127710646275664076585618271112256566804909850410290864170487025303713306011859615649761358905995808757093592281703519261390323801709994734543439701809025596251610855749436161214697369857717460746068325298413557125426069634359001258624687104676361449794877582478265567020000092127616238748881900836429969182525011950279237867950768438823926403286986817456690328962041732401488274561458222622216711403980181672367118036728518040846017782050337135818262560732374647632539171358219271495510061454560241342171077121446384510021090276368601982625689645859578474067182997110872074948386769207101826640954035831160831942450771032768311278167660558231541950802044113414718916417076827484380214435473026859651506174538052876111727444476378971232576162491103468883898967761152589744686492454684666325206294836222317697828249001571656045144370811402398991091592385331661026193198387684121672970160165226686307677060546615100532635373372859756939558683208410732689937631593318256169305668367496163690542867399864872417274915461994328303420520711733918148667017809098598765877953131677086232749011620027106742591724304606509398665850212223599321958182275603505041350434754427508317265059134086663751588367226648896216816324957163063747115109088459398236656800221467378618750854495885179276964192437601928432259642109550593937143857952433682117994075026344726888514782777924945239446392896026687469131780986812770158845238338702310093228638122192460655454985547532684981485480586076083756126122230608407548418977010930236203671666431677556935707839547327212852378087865876312243016571528542706744390239564934444461438501864726826567770126506494492102790760370458744149594583378121287459187782843432285302047614147356718325922329056408921176815042325730211393833610718549641526312789121275407834235031638919893840877685477306439134562176322916926649238624448005634593965842290883432737523140314324320212632147337851716844844788424218930439680639484767388645155776135780458185073066490269224218921861810576230600629794710572725095064265877292321517886490262587894505761789974291613732525303823838274132981595755671668865541303711576991227073842640632425296501638700205610276763995929044036698864000210259216790199938190450334819580502052973004663282239339015966032627529189919399787728885846872091649336842911476616212157824431651190923759915283728778737627414291081678336859239023723199964205079117732389112155520098331318382910110543192455909877516494738674983785186671216570027866428458150731309548864279889117407697976038392627886718966464449019501447456955755341002139088214247027513133012811914380297624081799099170538376689910831633357560096421914370601571530730419530577988925499700229696907472025777586977077835961312755506208120058341782376154931558923076369526345219727323933909406322005735957939282068720713890600396858258453521145545389141555861804606645971279761018177999216844680929167271678125310755687086070142758210454417491106142901150246260065145163331006946204819727470443884195264371022855461601394096730881860341282481746590979814903691234942323403670833821022315654298566403132927183926778254410345847317334203940818511781892329571785044775276209493679174037440042246026505532547368084815580159622287351502585956855146358098990262583993262054013777391313444154366029751319070568276418156700992938995097278440379607225255460107568774310064382336279844697801016284452526480726598155329659858185904210337122268557156609151370980121805355417996152741228206007776777950333245256039857821346237558863065791585418619659086034497359438687860339581497931914295380447267694770031797130250545378734851862879173097602483287925354227808980248075884759441864759223292524014323715487222928944319235731794382831993301955030653920244870165957986600371956309119535575682641568554313932545442817850218778882489667583351976853846802838272707966116047950513878312322565394187901890693851907309970752176067024013582005246737164263283562946037388407026541526623648919681924144983876385210060107961599022471440708203691136386059309822789686210023162389195464215036957646545037047585462039615432927814901423213991244646162644846337992334017522918201378017647483822008403817570413646056022900676160040057605623321575777220082347988657072789060577852994891327072920234299988063113112637582097236957647480051275791270796358657683447121661959847375490111488222393735420902187155468454068819856349274621159842351402475010705538420370819796144854240460838237947191971588621824804465844775084221077900789102732230340735362597171127235558020104240257065758498400829167532807279266782916384265945628986102677228768211960902397925763040418035342462104429729998601960558729796721287303480685093708300295253847584831204351897983958622362099448604843886534799398516927397294949758192018766430982712916146775889269623776034707650927651659153248756377304864467792774710624470943247330811716394865314115639538161001306558884001951346864874522760206117465827257784229535104064106462699535482914435980570871415656656122297467270166186020287973131280930718873301850223145016256208258034762005999540579747718828630965575507711194885188616869988401959049746386112716262221663512467424414984199807309760389559697267971413840835789908176333772946734396304279391774259083646257032704767863900252085005022293561311979184627968220253294010753036255182800387792191787255094886987201936446481945984395822382760088679902005488501583816299030107428828335752599452901197825233458861110681191279981346288777502104308059373232402548946313738657737314994143092441600066242242591190224574824540115651258780723622606229427869523002768989646597425499275016764747779675863634013304827442019191124641121262831390073733143043581183248910802268609259847645840259836036127048713660751756649853952385823989251389416217150793351509966370622006335096340995003345177611149347485440912765506757761181859430726410308751745443962081913514839894478159480006199830070633837391449188239902829425150087420764407647163746819230552747662722013759923612522047602123897566154624683217217619399475391363717790680380414700579974734598121695468195597703032270579183747862500933904526164972996445976843649516091175272616505255133162877795224769384935526138691949404324059666162284042524461845540881471902959735373104477797247159949260456175511092559638862093513831103493027583497026290772396785685086284294208832474141522212295089301296208979536067313779785306325844576490281127858653023784500641538149702747540642806832108444348805550358797199998248715268349483354181004197144513545030295975628218685111051199093012945923165270460276919755693800989079450306058255648313990989510998205831591574266828470952270829866796085865401717923992397424718859042250868431291293467048097241445709402296640440729732835020588332164820598762421900094438729535307850823914831065261068896070550126096463827629747482970553781454946839262579434994094948083060607911693271795893566001714655140168331177490197882069463564410912851070903372192184835919104645558115319280642524942848824619482179437335442175416668243184821857546330327905572642740758176854316716274257722327917510145116869844599352181503331136449138049157265724061661289850512036261657997139539882749916136689752854680362235684204396513395661292938246708765034592090137487961329819518941148037112366972460478851057906581894578636961415518940037124485974678010068378808201566961533031850575203090066400985844829664669811352356394541953675722440354652303454861744861969397664768605877625513344606293422034619392627965915141083437714015159734204162188082896018458993382900465271754085484528445026799647885365913944650913314487607436114498153325317377252346244172872825511320625199779498478769328696115439789067135566369801490383571035298911033805841417450069217683353998655750312465125277565717225790116878400011495348398313156882393886387341329183517897795697789612012255536397415168495675062681637225210804455417289139296605230984764911166711248627340850495583603476134876477723395516828353084545111906931294686602296539014053310948089407951126131600140541166762470090235380216529118605126196463455395931487583034261094918699382865704174622377964725373176748864363362961718610640580006786926852495562771014147324642909121696198481143897191537930013236205819644780775730026745450459739592656792283608040208953952525979705932280799239835465892855539816700063453586880215754090761157852350944084121045835403715070737851742376979872335738835878161781712035681455451542295825218962819529835471868600735659344420257371869130588995818475102526487417158266470652836392962195731583132769088215778392458711466692570587328647929410570651787867208203703664316145627854696500530152926441405168017807939432859081949535548343824768473933284998443216642638211951590531358622038827534749105845013969644049507297575065583467690662346544176598793733569077607315449578736268332478825561090596401996859603718372812903356972414166441098802466176936012659074879780678716391559170548614756669079801108808593520975664150279772744249828916092615866009925642629217844784459483331776155121038578975891508444953503562610181036983263770582768540531793879587348741616761625691780096958874803499671973752847260118938055835988507978616034615777376752006872987489755138773778045342525904263224391272105187675062200035220851110790971254261338242964399326062155133111312867031538778639639706921836760348536054916314880260399402349392350837146434093754997599511111435124897077082118393781315198422481675383031923772081148594792305085935529593781766502707803437012784253453992350685569901845073445725945358057881474696736702312049773479912162636551349029851583664034199060714187716051255052583204327686027244638289870840882231818860117369014238051892622023079589808026936851047528889952551787110681157595804795431340208770196496658416376278813197657211949866623105288967416652569791918222361598727376504966068924789485866254725839262598329042668024228973304334446236209702450967027635713020303261093820730746978443107747282674153236046685828106616578829106351154656632687327548853666958149662757343435288129006904143225068029558128105482318115417397337951364197196557710463550075665217316555370854557086740034722213638710085221465857705608335012241854574704282355942275881361879666364858806265351425594590958144134800250892583970317045533457717628611977609478115807554242046601948571238506644253586541903982440237639037051153691329795439688654818986255439442742642030654401712977167029225449634576705423502546993979932335708085059116966063347870074983229245731657869558565035736141972841397263164937303386219414100033400457675844066691309725312587275832950437034106234184220655416646464047527896589272971717988837865803263172911712051244244400666841742532290295683114768632272155347306282196474564206578694332754104805565481696511349294298120096996451137425899601989277703212089438148226277903342838873856997140251339045724126912843744741314641955642002862158679578775560761596749389778563180966342797108002797093208365193474331136656011285794913619295591131636736763180357831918385840221983889605573514663807435023716220382545636681876523260702336870811650781599628579607243355715927618119538184424236917702672102619896853432129346219210175783538439315793857616221156583829692455199962391831631796791647781749938632508818341780010214238598058167768253882597287596612086226907787755226080512823685165208394226907326561584486344743573850089417355704725317850588913154863167375591687241614278887567112766559119498224337049576231620589551028490149216348836699297035694974509933811646131380134038546384830918035360713757628646581774368851642093276083388939534295889515829776271702247781954422805861719421150006085766887523757142540310830709963197989314006709801809519236925471014041434973997303318916909499175460687809160002735250420546220765217391488210911616887713041118930140184338694075746889012487920277510172000314916493453937975636733107599180265794138723644080140148914739265036951604629713561669704181591475192087636244631589828526082812028279501225395006955509754444231248112027996434942756305910110626218486148983755440426577772841147606739878759609580204487489203594182272187314370880862708672091122215374717600204724335619592664415872326074806139417194378438679206429894095037756587837088408429129066473017310369588672717290930751262507860595912702077012285189109599430554293213260384747093519434548522449746162749463397638733196657794199716152909771827505445254986492128983059813749183775835792836759446840019675752927006998106728807766444368710097742059645944814106458898743647371607837393985165676422097378150402267903264430630752164204728739463947806547205385165363432182844033990765154779964627616004835063924520357343239099405905871431944364087641996817364506903666770191258662603326421899905212643531438714860174522025491494842502903551437475405152854169084084609091172853173219614279108623788883741085608785973145610726400408759792600767445892057802140804400693475784093717633945684919924471570177063538053376241747625953315626649539959605761780842314796577877656319125597272849490362377600686801236851191966322217121520179293838669924181650331421193326226323964972403535081549921226402796696089562809987299245992115864429146762156626510163361894483934905028992165830178558339998353299720461712730354863083127711488091961631794734598219637097204041793913707904469232132077263026476551675444281720979998834866257613568196370922068903876697667641521501417463469779257787037188292451810704410726101122837315636441499597678382840162093613550465581400909859310562536986998409496798927117852586122270794348004347364453073316128538631340748220309529517762632497841268529220354543203295907087147514623012311385309150580369280225754423328560249184887254864999885845848787251745479316822135078295235437141565262298970654780137078658397498232850060833690125472937176001717646083756275563858521217268337743808085763362987094121964467351411812121540179763981634041474473733296828801366924202995841793053528765814418961290858374611611378155419120704443891912157195190830070849411273599047485821507361074344930042278501599044928781666388822018667199576335628809143910282707390010770870798285599006918158217411017281005209422801392944254241645398106763038844174630755627178904097371335134410954589367275805595754674369242014481659460044410757511047249913497303074453315342625026512395936276707987684683261024868149177262400281648796770247630936652894060394199977781958743803418745662600650595899042088556525766727547211888999738695811489686628128348654043604622171278225278467432265958977138488624247413350909117439450942943241460045390344886956495743900205221760548571895793392810804456581626686825295077912460058540813792978317124026447198928762241688968409760913710090927774863483004272662137288868239620422250532451600369665638461491868052369608937417631025385770307485235167869631773402774863385325634241111513163378450193839341335674356559984883068689115218282902169580040305000963241340800381310163450096195534759219963817782046527205390740605143240174263535329302942433115165567061378293633490222032095581653806674075313781080234574576539698155660381894543297820633918312155391699798282297014059618470771415082175926141430264331257119830836124417100763663472378576131895214248185908887308489605004158022147398179528305329694195153890580299455183481727481004856831353310211397463869562777959312250178073325574814060776659205881384044514510795120693663477762870964120997852751868361667355763583136827792547939147947857859772254926551964333218391665928316103190762710954674180876707656507589179850631866277657802073422203043798397306657608935341603983595116025886893940747127743666499192383427250067154031686620351415469932263178672810637003363703195372666279880411568296112387954495782973709016277003196516340675098670620543385820835831376841342787593681185795509214802366295123540811028232341270315815128093500297924329727406442910731110558631929296698966324153429335915933688904037261124744864607452068553804480538297030722362413120318420875970361786065530269281913338519180248652205900968341731774402779262901651577292232065922799162645904548357811168564131574261455549067019867232522920082348810273143574339017272106123622276130172598546615236625677422951818594088333706878910310277819469617566038793038475637867518598327662705731734498717712928148133318961477048257936481718850660604195839557584684997600363191886026943279273579327122684134625942987923439315954474820574354855971579392536220970387512644219834080398373583824799844089865370212407569439816313711005295385352554401984164624059547145204697572058003787085358998803397031624321357577446362744987469029252475022332856929907864620588819664528448785651640063715912523122604888028419769863842265123781396747360459307345403949289356734591430669747592700729424700174612381374034500582576548135436926755594273192022988459845324866567768000221158897951694089986305596130469890586470867158818033168217696092087058679405972195169882908642765570809339660393163556437296527865940377484511097926569408409047096394406059210063732733193277204540727846529600450479989530244142517229988921191758283939691064463048154715758419354060148535878731764512216092023659910011981691060842862968387960845343340538683225002015885509116648593161652430092625605994904203325155459997637511835310631837401150169525853736160537728285665937625875301462928275556726381286423223792236478927047136805691847964101672992646868971745425862067272381184917445147192530634470718472279145919977481711263704197733097192136157896293845306285075157455371506058616449440664478383663015639532112457345409615480031471766376131931079869843524385622072923294260256050970057072811341824024026485753036608473171799500592990080640079716766295963211874897971046205688895215682230859876923010532878482220209774154873778670118826481682343799884069120288579246624719128990103302723451695517198565912599317861571152149013717007216825160378413883568348824052365079977960495874747692463409514828977255340194074572583655616944537629744004323719215015427545532215987219823118983555680268094379702025596550546990262550279262119011923311963496579725365063932857559548170521009131904376340236439736756819393886612689034515588661054913803325404517636322168857322487726509119053017542734447074033240666658863657726752786486512713526175037121376469720017095939845269990349472057327451734471620027186558577230401517781372781532904612068599912544737466251163850716389304052249801900388308739602617060855135470243208480133839958029135691855469423566700501070161652223498863495522192984928440114115499670727765980090154483069005033217737370213096862474557487628847272813848513253805831250901809297652615733651762225321741459589558289571580796067290444554573360316252805269275287572459816427255148981629467464927417336518009888074893925608004554728960170998514720242589599823004523499547822729172841867223656278349930913731407284278715950778648887442839043817119442367772426864519450654411325847725520147760230022862338121556785505070642350401986680262646549986715626084814080379931388189483648867757134472440610539686180987313022653559900972373054262473218713081793589438480067532226531969448482064358606658914440598001247435121857098149576547625637844529645792272388858789797044265121903224188949843463666031547466285128847615563373309308263850519554455379106529812540626442614683851804667486709723893587903217418998325826427253826189782734075438280963330070862212549345997116956842408549621339275199846795076697277118108931714246371319587804847885676103828809000802703750573133691095164288841388895016933797008413272509414470529679174524502983833328047584781664047609904071458998429913730195044082241935046548696993698015145524466211203085865961448500631651388998536655247696848380318085058097963797845123139430610505173702423453616104416977590864938062582593256796869720339057838411229253171614753650663637245914996431582404104830575361156435504272802639317304749965440051955647624517049882886117147617827342562794001710921499631947397610876656983834830131755557919636320704785457508416279758341125412933284744021377461840884243631615665078606786543321123790987196546932788458115443763763096211242156697789559480215169207834718746115345318733547847261475775637420621199654250539579506494148619452365815879374709749070495805912796859712510090904264829167626966345255449549759128199007678166532986296784582517153338576791349143773521684115947464445587839358666276584017117426170870741135543290220292511561761746118376576063365101292921995230568026576539126706071284139233307576040255039282504990336295113254744608777591524749140408797578273337317044341700822377418170609945963612605596941714455617129076019037917822030206453489949662841477789618086395389420543051965913129762012992088326919284842025620586071900963125239753778811008275078290340474781177626045588878791522756847513255593226782217669423231045861418388607304604130313685602804276355511303675590958550067627648493867624030323432186831802480811993828057486880556868892481919074358383117800566596200854258800663501837740414276982362672781317656397166817175955752168977008996611244105133561168723233977162298973462986791191083213997154511173923256609876022359426221141622035864377964930233522026485451824073283891712854776273041483896137148816608012592940634596163387255749155633508072855869464505383338253553539117964637303093128561328982737485694317800915479222926578424842161715367436823675616277985600134891785625463064264151790582144307474626515834073758430426122765911952206570193327719975054567861216032230017665601332481325592319087223843508350270365865182143109142463558669380892980443118805233719206882777189585527824255378495364390246743689553279591187980097647879642535420794124729655542654884193837335302330119465205410396209777473676383453518411133741886697413575575642019607590429237738729012826941338259403254566150373508860260909917714720033850309356244837100281344104807273127492248997319195184166594430353678170950412427059509987791273243322452033867827883183131182958776968518209966078158704798485633653151812037057145398872377481372027861757502790239878889309162377011273229924114946185613162909598963162012191141368277626736659445669915414133536878802821808586983499648767855840900212510953124719143184330575630317699886661346486459617040067154812545986228517307620766991458681593112845240906051255710158829786810839944384223590381269853248793587625953406260573854688674501574897243181550084959008517534852903167626440509845759005550914346730402418590727927554309987339264004418909099322522157765477047109525040006838099562181933251999206750699717687249797036170901001396592576797113486946718851811607925229598457045604904831587642953725913276026379096459456944054008258261137231399322152443734845929166951755687237413702926145623333484236998372923695609924945855202470589130293733710578873656398959499730302570110365594646552700743106509362096441364452991146048424560084612321685380558486649423469199558564940370007737863428937012856323189316318316057929593356037038423574446604859246986625699768525931099991601355206911160186122327106789121181206873588075368488846140854796782187844668666050499608074207418613003033534778590702222975374766905468126088086088697857316120371447759227504571279672912818679515235862211266202625814856322379639739438577059302915483563263848699770062080095168377124559184339616885274903674964766765344066228176837067792307064764592044662383438929788413610962338100379855506409292275313633312846047868893191286539179175612911539107030078300916534886850533518822906272179869156630833786486034380468782767812344599872627895236631606315219083583439069994266906655621264323612325706695103121763660399877469554662745400515088859804058049788960178109509907404721725290117519555465899306425759206399976627933540130439943995786795375293826411726682892121482847281943145368246962963868501083102181883084483967670529214303671619303036178354607478940430948410242328846827692829627308580911471018619499980695366818816688386215398105732939705540703746363282982072081544317638384657530581904062331396633132771933744302046006338934319183665590162088930321519463951139426098688550437658618058001607718112965448852225456833625111639433607702596102487048705443531556256727835866711464725811036059192784337022060732128028791639163426212612041850665338250882175187120928284159560044555549440897773555975699129618127415812104511941230633373322502035814566975936703890039506259883453366585164454245162990165136018546955329035967068605888718095096889518798738677416654072695370618818597935733052509680789692665931033611164128052962850223784489785262809638452610405681912211258573842872312135746419690012391641238271889313687873002545318873643866986515535573690071954063101663555059180732787461099502562246833708094395430954573672301095225381756949412692590910229876733572109509022745603375623566759724312557584609006121431605371090203797812221126731714903595420907069857628682588664807340097113765730815423957820624261325523939978549908412467418982255112419640351284069152554169036763411604404865815001088351711045679383892206537885039126279073415663987684960819038509385252314951413779100098380854908951303187173592077601766045870683284906475960373791235644717737346494768395750577769640527849981929386139406665478982611736557312586570630296721309530845092199067678812680553130329897376240535024212421570983807621638197421351689260344564869960183545929803734863210216415085393604584176600381119513280181419614569478746850222248698951344905644445510431046384140148448344298378208426054045782887598021441183969204141617088713600325733452005077934096251248046796534385092302768596466168825001328677807922568339446283145614464830969249803371443601213291456248943264157733127465544200927685539124859432093063636309695892742028081578649470625390180870389972439509685073491140034782459789596403792936008992207946430275523508119151589722018676982591508963762483119502823071121480439344525126393852981404004301265936149731034620067229585407402723036193355369094627311877823267538159620383415345444502790141942080599228747836511673492554319950385764104062953711192133966424181578236115053391070531750669511766598551966363679450573916983336288720974977430955374461692480943928121794689323951102854074462954145956345148254477187971402382850806090637059060984451515206067162281945002473054467392400561694786648827140339242556582860605726510426447838163636814469928910299422926860047589048280995671451073782735288160072214384782244100487695754950664301368446125293733105617367555192731092717392539651444566998928761742298957140954255887651810614838460909410363636477046843323239425985480313006537564718391230145666450567838040070955230375335458682208159717168733700806216343115578240606099549860537219334993681586069721291694300229942204779961830588013978096204309324694164176315380096975534583579088154153901681565627121340524689821086492045075237979343657172774200344101887016945225117246896831522586342371988289391002737785520657449706892253607870243352800920951443486845933176955251191380338000535373490159828706309050586595456230120084051352610807716133166182556518996517095324866050042657852084953826144616948082243729111332391732602949968774257130437399786047331748543186863578889815931985554328625590853235647456791418311167675775547912741259652018426007061997550951214510465645225412997553767038204963532645743387469165930920320630840253894496595741120332561360093975502123776434771512565102725479873942004998658684287913097225094072076927484561210730537837915622429100329986012401629151985985802188649654909509093596900398313259786864121119132608490258519740696611424745134325174655531941030836219541041844568601688042550153796675385627336566726358986423945764069292714860532490933589759276438903426089593473698751528686384527250302329661866813370394076363350034984791297763695580034590509639718467323645219946131642069003141488028692196830408003052119298824972127201962745316465879896261673889306596376713819792178862186475745967601412083268429272204568313758431825941173562989071489877231716576102371513388386663481961340943662989907994609313552803548877325695264647171139896694693944564976138721078952935417622367156509064481322816958014488580136465764013244504755898881441302405488461258616229060554661604052460063154719418459350807689119280020981636126318472770604695732932153179814438192415468084029313971388829054090763959725310719979162401120177323967273429994923270639038081742665724233558423646574175471694036072275960609916431316649920952029749918129060684830864524266284854531214165842150197696027046159659773909968446990477461386088429116642841498730226072800151810301115066306358558167153051707525183428455362043313668982980756758343996807737971955425948724609585214023634502672353510355229726341217134284805498255400416857777765390261761647264120294774825495286183834461567351960253860682580944525647422914053027129872991026767320968589827056970379568016601164671710178245277597117719496913396884154914176883047190737003087742566253765467868276091920963344302056862551863941654429495351435869740798769466570294703230071555065982686232441582733840317005223484287787276520793570016933467555332674408574903978723353617296109508325232112419158659724025309315376320459956446399266094758969612839063767959370292041117982993602066906207355135643486913671491854067369054708891015352889988538589832732335303952393649666663957406386316218065986994720471694455691212285322009185823813439855758761265669683615537157109965257884690598938395787623844865177658356964009467751180984577746822200639785761580848883802372792847392388108644376962207692902822507182940871679124472986624774802696473827863100353527835280666731910660235596521748035954700204744410590376464510809121006789131100028345386413792862039463084575151838011965404586681054723245920791669256470587172818274618613958542905401276672059430543072435731072944163070480616932326463553818303072440363242491894073792926996579766744411358520133149944522049750758719755550878966974540930278138601684848899215399966322717986892973904048078838634965006788628387626496697538333312763322315800744968417890154533176028325232605389118258099570677939875188952482844810873045529632423684000117242876902361331314551869458657106189748837814275358235895824047231371300871897889508653977559168613101465786239063056417869080697477700785127058611393951017320939928767960085720375406556093480079962221401506100572866435940902515844208036758031818777966616773062555379561278207649568848293037808170396303722192558232665499399807044241781263832838448315401347902562893814158459939444330408611473650401478367793042731070617169770967071269109987114782486155314629126043713311674695308155183169020279558674916606595603812194149436159482264717419031010991507575034111138519637269557824848798541824552899643719241355318759704673316199252230915656322364770973795064611793904050131284689961725612005239593193472538134500245818094854563330749351848848424119229890626589760643128284626661734357127991537722052305890084919314974471828638689235995617148057974620516422944598761544090529507751592627063879838430050476149689066932710662255607714622220655782169723465570737752369393707202230969695581447481212664455549174247474587914811939480602756800311724532778762156983693387825017321946004608256213509663911942586650183605332223945515084958379096508395835291793901478434474195878212880572368129569315622025359597084882687962224477408315908129592393317921161140244550234792572097173435517120831555133926676962287950019717717549975918414808795691586160658473276684345609385203298901202455125550971718727806694622922654091910908353382918870625838596788245249112290724167871086035231544126394234383920429251967813939589585436678909402601741384085104855942522531759807776329195180139179957330708214280421797551057738514845918201229167302201229111323540770213111924090660470941767783233956410440520036796699595449156320390142741337556460143566958765307714924366171416752960010599347398390881944986732005070692831486762014571368535448322971075219682374743451213429023870200939458856771764322782602181155489672494952576356087043242848319551044687106095424706726434172763178611444841524831054217823709457887807024051767668567824220627869611791337653913198536336886964750350172262189859293344062135242973407398187267289250787742513423890008046167176177664091189544544466240582434642024170901337101444569715930175817129436125971472662985676012937806138356544898585059232608284178749967744715723379795729476828620689488079133409927539092539386839402388532253040065304251592965795300247397070601168618026837944311239181810798791366336329653256127023798761228539296664584157076408370236100527809271003563323648389007096491266585565516906639174480948080467484551544800048521181328839473051711481596902778918621389265944031223876336194862323659913378593652513446369846644153066467107536078151403715517991461216062910529913331572375423866190272423548600519563409880411852237722346483181592271151335893039453104121342893706959287163796390634307202907181873571780518025087129159105515904496602024799002770015717622303646771003904070013268957241065485293587811527568841267313061416543987528504608540072858021509732224173624396154179769123173607967267378327282478189152126530367431575529928158081576859750740310797361576714197140825278463503619399089463279561819177644682889186656487447274788247627974421408575925329084254005548971922587714826562604243728608846144547374218455603589690697874398039538441981573389308375059277799353379453091495696127681150934071491315045782959620720122457546697877542606225591919161036308652705975049823228162185161031684272565676133713662610504579385655231717962843882260360859696396179418660303905636161655151510775013480370706489106492444125181318493120995213454167498971115142436993608339125547167074980992145795408638490584503295067690807801249163712531046504810807134811145803066658756041610336691766137563938075482902327002662676091291457491241230646028951086084733746088293851466170315270787245635707874421784167025362321549270414571560762990892132649588139632892157366760748922933743120662938083239000762576331367402952059228142618641294634932597549137445514911886527302665801816059887756224836858751683512546442687632470567020210721771889488012490313693224808178906580868149458941078757962934337788571368572341799404032917343434147662166939471272082851328192071375406988861330631048182879644527141573269750153846233625168591326443219602479340133461870555065194021727169570018280093418278621602359928472527704962926268683267156406038241518219610483229903819611600162383528817859901533132555622511745770914175595415261790798273086164101821868284692190974265385724163700545997846433833673079725145563186242500953469374087420378657253277358746964505888851803037924015423090297086932455319316560689927285380350778920609029745899547913704317658978707123413564506272759423640890802280424748064029340788225127727490219238661141608422321851849170911042211761294954950877197157837496022003540617053999660703414632257686201306850374536178247070537363016319004352323946915805727865088339326678851415629924459294926180796740744393736554880609681097446457026445833056304494082569104868339402334165355063350369050464020624297481687297313329686462839395907103342592383616297140613443475275275831986623891122662407296293606175453677845964252209564184967011564646124274421242966779814703606966897225555032205574336386073934841809917585145116791605424143122967864967172890469916083209252942845811120654162249609010744812514009332461991196464692853796454615520111721455308575307277799086805392784467356294581726655658971408401484527512975471874257972623816536727031367972074329689206219358002694851161370217434715749215288338275457168026095208680353750123919973785035229434797347828579912864429907319963993791104614731151219733286611481472213402546754216619003177585321932754927676285304932202693419141664378628154471720970688756062095541695552449387097725020612680618272813194229648885213227319849495465512565112190334620439125507477752041716858540766051973366954092081169059696108471799780334534894716639569049181688075752409771394520954019280478225859145494089487839741654627357136981676144367308498059803491758833180306916926473912248510365088636913198474474171804014659309513939018121188013817163617216490138392006228124885687166099438859116425090289620800148806957725076161049371356296636817501570492699285052991857107167814805732925999365248452368323949084923961402592840374674978559894328123100970118178977255854828206693995725252980740039234286996170995179813458717161639269659823008443421669682394789421532389501301137001305121075710977070873370419970536685881851915825777403642180462315720354137987833125755829325517822281571920270371502279842977335574530037216014217101417316112294373071121350160480148438106903011707683531306275198188043776334693672673453078180870146392402165099512990490611395869484142146875529960994251698831237925397148660996287438308859777009635224345487837800870495976524140759478645486188211904148839228793812071642188075247751002014005934735278501585832972971962634439012957056705754953542905600146667890574520489550055436643647849471252648413229949993595655390270572616427510738060037130403741086140630987066298294198300577676151365301176079562440875902372134220240284092363596863109084163839624220117090201789975423350359009864343504829480439841088569676536909408253567747009282322979707848224592831939521371224555623152273983733144444680010641197548352924311805840412958471080990574696300213370695796935142973792259990357932616966388524383462233411892770111480125538251238708797364028346879261791518657728889177565643628539604685484450169877744216960475257442224420021817118862451956590126877546458575234095744177155455592370957646857050506057273052346034248149803438385507738236302899415846605042534122940109036239735411603260921479622032430545380063869191519892425564684153772011110439507374902659986288346355570776679769790656588530220225771442310365972101641436057499632960268029687161553406441866061213473989129807664839050029129865249353118799124237922651329155947704827840279243809029914795948227616650826624686838150160058452483513854039319787522775980986891876672465727373296996398220713450916923021003178350762243989368564251275405010282684979813356720315210040602973294369182799656753382193267263446075741855303778790514873804112663283982685185045767025778023056962704710507897771464469394976249956845715874439090559340218814659204705520496889959591324258135574462930075375559849549317809780853930038755419772702106573822847890201380539580628827279070955078490044708983072748363141247395425204733695218435471710229410519038464431874529140717641027165977950991880409655790533009602311815368134636013294074398233922796674556371085717621235554674122513656544111224430217359299767148628828237101445893890681283932159989007648555853019103636837149833204452763684900708039458315967588191072613380039724470418506508436123892803878773640097538313368106576487493022346721413223362891499768971657629220542709150223902527712539122355061820169034722088368248061968678033330765281667207941345146726755469458419131675447516783427349805168871412373686566632559674855576135716462373282543544775581088230649690567917913220039336087285192603845573307343024681320496316830608272323743933704820581882411389320301907285364634956871559348988530632900294398055874468492484878477383755573623271562246341144778631016214131633853380272713804986072082061263112823803033238915731682937029671168419165580718126048773596921000972983706517652002418424672663839375878557728834816581190386717512755142747682265201866440312015431003328929620385601249389672648854512697634772681361790898779557370139857546920465982346956159534125944602623020181186276086917962420409143153726577437386396769222926128808232696874419973427746118695459085872497933308391362034780802929056735853666727979316699979062245754861016686891496563619613179401834200215598976990701086199703432574667153925132510538407464043920791624946115545037742552657437241991189914991416144833686465114229344642564733362429380318977846729965234820938376957033319038895040060290548876873648617543112679349033315846773374013039671850996107300469144181791313675738282587525559554249533163639155899485909042375254852335885245255305785832060877523612891711921492395481723383524497824110897919914866434630754812158238238012899294926083085333919171343172536156568880017452080698746981122797040286153648031458201491983792668676706476448101812447046344373320011625480149601359153981263122718344954820262218298361403001261433284309461174194461159894597012912976944502537061876814246104499967388926341269697457244352995957589900442120498959737524474153721652749896034837107044514373589837731981590264223464069743405049703854807838746522452479276388584903166416758156304149277803780203945001898866240821665586898508722803114377753005697176092836348525116936477052070494953149664114624786840471607493461637222390919052755245880859038611521693898869351414737182094254527318133474255414523929934404348088475407143119253342471278525260948631962690130408346485121822744727298801232743191350669780185894510575696021136505526361401677482465537027045473326910204069455930452191759001991844646385222016291923233484029306136326573309281710531504807303084399973649379160413960516341005379607590526585994913652001445842270904450112668310462485375693693940738566650929081998204159314746700273305833953093515134210508703916329682997277899986193944229137521145617735283142444350644954259184327580065060057343234456305924814046978995036470487987868783098000660104226033913127483547655454768344565421543099985321510878823874374982555131673779730416662518601211511193492591844835969535740069434481342531528062847801705792916979097472862833658814307701676060679059618200119580330578488166123401762907044465385669002261728899329439285495379657530394358003249613015476255223878530689966803327167189369707207182326881825170224816914539370562912312596721427675392205734529928028725306744803939218189151871824114307483027023987697547106503097428610880435006243493796095184746822146007464609528306652605252340227219336657555319887236092101872354637653605537250583819917425576098821556389345046809281369410586477400462481057860510645037913055013365810419083234170786092909356197584145178945263135409340630041646366382449778457063061070647877727549506273801675389653821497773431763083105765466987721901226888558781809571572111087737861535623792505296949923472398235803637842765089606257074810054180442340799744855345694816567755770347118521653823145095002648063204741017712061087361607356137342288644094630785436707654786057967613647068661925912176419737209613358318598917785902335243808326939405228786700883707790342977300776961935123273194995166689840560998054433152232421132996506023585113186105788889670058766933109373877063675531757233890857103484177593854563450237228284291804204181504056283996811422594681033901365888189697960985064332266892971794593996689674012585769898365652597960261089597319345246950249923942733574088699736082569413892481345832094356073255287375171423508452215275630388319205407362481775179753748627902584347747640744482435767078134504566993097114607609650914361206840184378175424390090561829512702206680829995568498645110576906123946105556087915432382941901229532601249955794028278372399433861491445019582640900314317713673197331473610464270780644394045297207146109312043690250260181611808785939642493993083974142855911158576387506933920461428839783614819453369833216330444710953903881240886921732765819241287333159501379800368650668143995418452077197897186688563491089066371358853027440401092525748526413336941337985009623843140664039369556873214214882387355188174909856180720170725504989640393014743156812083990720672026000850549052555968582900484745673372588666458243717829235871431207331889115412699187902671196837277378920250341134089615195056590027641256897107579476549951113424348890025842929324628764570258664032677687356424488168716348262448214648864179087097345869435896943823682276382921024219913841350578620304837283559877731377477791998635084880831295676891211490048014264686383253780643976674209918823459029748381977023668642294993908354101597780062362181158539710287921094549921628885548362806621507815217461520104738685004856179458196425105481941900119694747568133693140646423829950413870103079967097433764735073310056617168676955539081109747594658214521006775208530921171818601176995399349082475488104810686681550435240952053546464308019594668884988877713549496130205931424963710929215928012235273007843874535158906919012205735520866066464177151694551036929253864183618576169048256755456922706161629151517302887108157666060269025252931281182495078295867127895929027932723462438525389681464066423091858686354460596202652130750606076406807119011745735786046763231428623667739180107907975036227932150914542882775545074260122412442766321726967721030945645601562178504231254274698779782639366506433506547524564929142851077269942938254063559962511681931180512004993390633054718587143992675438916161748007119047392403322491327744483292135146256586937276873074242904183624998302585001811634174389588987246528223609108940854159303208487354629159933840040467905357517868253825631016201703629051188003380898387706609618797025739561420070570255778196970377554560631562569006819763100870121177148304395344184751276561051708337060033926324242362196345030837939467751812059515192498677585969047781446820659495056021480603348438694732344633828893866592700579067845009744857064064180510073566207922356283251413946870816486629252660702189767386789348843463919251259161424635968310407600611081161738223234713861111513727689604026768871715597229628368265356203050267172035904582007418329549667735774222644621795507242165189295631713976543725319181969995302595146733387608219855387283796021875937676790178704837561158153153923825103310102875065949490852864348976190710863555839892548553543238833257184943812069133820287629499781736561879410391272157128380554378098081086738521476142433225413173059880982152692480508446957988313298978414288991017936757720660519781679913889393245303478296826386823984354518280262518448804587015341583776644320909763246454422967512017670124788862368340548381183461305415712874352823006062231826691398874198033144862512830248482783414171746673622814650127265567964741755015463375906190315642540546851408959230545502407770091232511247157108168667580546538244453953077362617503434413582929882970131443556125030952400555647718847340217686178879109029492410585897604572824418711062877040494739800413221822742055824822051421289840041063455836526617539366849595486832484785102259393623697787781011759645470594666154777055802048535285079988277151855444051634183173467428289856288487639658151496632510341105453193294424855809144503220216140930178020073375048439400883834495661530662905972368650412195544177266342685703577130885116356373886366630323417726863056617424489280115636783403052588566478433683858536031496749632207433955583046533994609292693077862964116203273620823969755004110298325904860339417924907136130518208597245024611288364780183198976081036016828950503393378059915643777762564196500779139522311767653647281739408672651055713724897913618342655491554926980056910295860664409780710766735922573577338427532402660272068107962400867265250406855773760982953116192208859302280915159641964010092842275982402203082645031464786904731355621242261239479523846236584236466822252060913561130336606542946251333840099948103544126391287441979559882894662244628618000525185273810805060736392750501883917347911281221273105347363191272059839636947048338023606207833292921543528226431724449330510556630822175390549040239247242845400855025093774262689629359992206405109740544719898074646941703394368716499055113434829144632407580295175488197774165619188249665137824011023519913678626692292229283017568130195113840576015205901906970803660660014491991028145516869819736061666839617677070487622879440635696190349783724869387252446433800762216250120991143141762030795545619718624668840607757723409475934307787317682848173083794771441550961449615558393504951170274142491066291831819126197426753375261497919042807920107251087360841363282531744891525092039320633693602873989012784139787342118958524603617293953488079052044797571216763950858700320273131141625506392850296957133643962711425718394820065291814852460116754327603158769326619510513064862085059946496467927006654354392814561194750017042335463991579402140835813981973754864456721546404115955477858371193564450309086862430312963610469297741118897636935530102716015423509933688656639573744404833821140005242146914237034811500992721733452343502934269672873649985140784958811901856274093680845782840162859488502534939661356994285667201034453567232562822994902670053010767591262728786730278503596316707190344103462794416989876772335732652594392304126797266120242587080145805038641153891372734693090538309640738709188505031294630837701300653064930640905607605557248469580211253859558032404507313907982894739520696112213903929023133320014974781645713200735313140808165802301332916452531601153952743221726928967306833793583156093471798377159465403095956160382011602386582260898422256790664152402693200085212482033166462621773123962945153160412593549020432876251629913223503014144165785923549784987772604779082146422222328888356502492467152300837928770902890219940349470245102320393570403105730774153175236052698169019583184877312526436101544086671358863037651517206753575200893167253472364020284019484838917606498229561425994179919076137660981656929556732456748874075655411966815941195109731655805766237750484314851337801296221289023413142240184802822498208755587341688181178872939934614122900752349906370008165464593394760129135656233097355104415965978444601530622311542846736438358039756483229398580171074938517944638371102593208614643610742081998667838783260068458401612402993924984918569027639702797061083383728974377740933680162195495300946285458522109161581247165992113758409092252748490603643866616930309720932354755575223431929227134170007892503048830129305164268030366685763959422388135941943062977890013232310012505933717811390013845921088904360913252459959751203029170686984578680941704245982287530545808209330223803550748622217235834452917543298242302614877316418010179067959031318847764242279675785132898995555728468156856874589710032016789287231917718721860582026112526886014470011745108944485490972619967444950051269035952127860292794917814595916728041907425471241544510101126557152468186876087931534360995275836194390482533598439745390991385383088031814177991871144056758391295665550975509957326335909526942001156002772459113175141480273682871068936278024676324997256353396017806112007056573070819847987521583477388784358143675563826735156279254124520337366069561826682099001463122568599246789959919392802125731851238240895428875530988888558986660524566451636853412689568420826156361967739758439805932470621136633020706708889539549655847297070283491404169954706957090388094988024682121668702279722417479961053303155365601886475690693157112018357878646662148100105601571399499503144174786469831242189537662780162438659319521062669484558971331507730253747297009744873267305704764920414690642557692432792362072108849292108225613295118776373609689111143856764016566563908748567375799902989899495425515557055534997784606851510075478782095862800804625581988218837021038409048140101599200131150347316405983433437930521144473643151025283492184265652740754714412503516539019408876088489024046702131033160782982096896971335148715291276015345709826148804492868757795023216231932177623823777143510872434619962658390266472934052309472390281647582607857910894364714532045617544430630090858857190477474048894088880102186364617964888917423536505681717912511748936411870091570111293531429864736556714969823123666133942866869788629045867152600389904273911553456903176963078245051733644087199367772740013802710470442081284355134267188156300832641830263783262686412787199617841685716814972600051158139429551203828043405261730910544602362784235081022488904261741906310443828450180518637360093790388985114701009826060181284257956324049304183692766185220012260647811194232532902044899687073647546715138621649997398707963814204153361025825923140945927811808066525574501602194377041131405710336616223472351348461290164911775976065621773959273943544993666896992545273101630427337895744985884957961479071310001694453266783810637962902455048054981859502385922745484604631303763518012427145194271684327885053239262893762184326357770811481210487601638625519462756828506138141933923580954008167778243930194909427793391448545179505107455703631582048798977009173489104071304749412249840697155671591932596334173855154507077978093365955430902939788505729604476023822786467342500331052378920667388792277744356468660072729127673691562034544572412099520521319399202678414252879450281640127278929635022491941911264825838761159739586766531494794281990922577448871998922261934449811258600400176345188743669494581296678024029030587363508970816060884100465932489012283063296714396026860343382605940353870281838753416753581575369175508239472490924104851125530503351817505890263738028138975692574198057637483063217900290443126592706906864788735794058638762375862388683646032842539884825571749477176641780555502855977424381560309097973270486746255211068215185422128566481261271165629381981872701495904215465144656775441883672995452685130590615110260096436831378512796058767410738448909835542382545097977506202858522241535575684178420301453114429788030000033247996009263487463635222893543502784988257692358321431334483990772292516363441765236674980246143421661265688323013726443483183516336821022012290354239171006852258759224140349577235989774371115690742034251790603062142652207375030840175973079834508873006911507791921087895933302395624296220360407716202697033703129832603482297026519048536750053565814760300945498816387667877279231654829476143742770680018926654790338035354157752510257111818484385799529697764664776891229053336076186678969332795337366215644661377862323312253522855299499609565833645201146918446207790974814730649002292204391294480846123766799525839174085975851163119518600607282474628581357863597146461309150988686602212940128256487081023966116590755037489326819535249408010625171088408063633028210499942706076998128978197913646335009160080693819442458661014361164137025523120410383635531515473752374422482411802098933630772950094054215710084674003285004692567514919933311251355308368313354926347380388265378774137850948173108052016416608591216688515366705116333042068997805503233315882454673656483771953476385315854052550784432179859417161424044121349136041996462659480236006659679950733674522209115278125044721789435682322193999584340993701507645746433559221197416125777411982891461989424964712891202587108170443904637602362094589555662593202533926978641579038117019301373424482734298075884219189211284666866212319582083484038328697379955474019967591646624423209132702198422897595662478023309073598021959385449662788071020810011866963599262806929005613309796706521446036657021064080461856017928068651122935006860542498622550556437013487081883948765356554501852443835694867079118308529527061036243430640455934036838500844541623323436392256702188386397200365713522380699580462888766313904187207781626471597387548584213244092361602019437743808962060675811064312946566534778988621611978402550400529576527626088016074823379475042453919078384465211973115513958929873318472111055876360457219089377918020326136619294993363352669968013325040698245751575030547699692845890081074207515566123878269874964539092747495308094420188243489927401397621982929641761155290055711397040543498225464822551513899550898275310642336311457885791723384382219196834207230658844865265077685363346314002490254197206796351996423076793051819719662584926176785709453425566340314455226120231563850079342528004992739497284991076797194010224664541231696008905446893341735711619472594050794792526056714694592135670473573992644877442445937236305330347657886197839816618737159478796620935463191320119808531669894068123878591377503172916055885004966320753190825059409953143027891816370493531460822807041989240204852540245517236292281427143129309748481313026808755651368038646015890058520540359734925729706811064848154730197673115495402913246768504350811870038742311094660181344821104888585418777713397082272874358511911243703159233904517400312288687184215007405753528486846278941278464298827483127950677106077026903797543522549561426195148475599599618194426798781511496729469404212655948356773053226240032059068755102613867897644088242528718933961411497822795847165637087333793316815138143040247607856483156274632617915968760214905804147727756801613555324841066410315890202517101332080875326519706783675550973226042502508434159211150129247337536193164278406927521729981140503715463269928063527008623171665298426118476393007707151616424604564299700428835244856558582676315918812040759220726377720064667849899766465212112590504832939961538258253911100946100391835783271388644077913165868189186365320567672200505257745965277826749646442533602094754955735548867880111201327781899383694062435889379973095119047082860969345812331698551343930260158341317090842388967559638470792485750019093523340432099510847971269425735602800069255574021927078660169098304479975492076487662500856972124381111189443463853155875790331148431289018948699312898871712290494549727418609542055461102705783462737288100697858910187724736909399169976009682997140443025424033848594965431919972835020645209180782878417359382733599930924119107116947367902786840362810363558486025053688462483537782991759141490817993572865070534313741038342111352530947927380782724935404502697412705487644790624821484800214461940306080358234835023384208304746936386992553250643842923415099082015047846904457318810058915301635009856446134690355144525485987806514265272657725940632880151345885491239849026964350433874725785773602449395890928396304462560632638942199886245835017933985311905658110505073443324038741608004251431070561552128268318021739954717718594596685362534231780995136080279290856985386572708195012009795892981232197384847544364063921821879294376901694645286166969394760029467770258183234497531244482942995884163731696474735819134352092637597829781839068548015776555335210134980930513558555077566572001258549037722703246831337202892496512809232282982609673509610888971351813263994018431968854475859297435844334113804900669132930759001095970241990718223445430597569337276976413807256201112517039070335679675582706118823972837199348895645566880305353582399023192157710413015019339684406793879623261753126909863378530435962284990151798042044633774981675716934470889509863888617355784766908692260906564224506076638521188153468645861591706931397649838207191960762164304680840014618261868134955831937827013010255125625733319524481725927425604495679809784599805108762504483085294465920678343365488276212547845777740023213198567667789140160035035336860562115350526175315256419943770355154331636604626748938712064700569821601485400049981036935540989649596238027789952714124960331060088087938231480292532806897109221641480989306592440889467349780789114308250666708730699180779520449500345111193971222078571180987271982054340198826004521370346567472476600866244250907738363955164815174546636541206046931249636259244259245973571658862860650385137736817486288783430449322232526069752886440836266362697397004137520300827998405879533851495612209925766843557590031334256488583845250145872472998176354689080142101704222834261677007074533616626174989993032541141471615529778797428723938256106803853928671871187866217008838425995885074266272032427964685483234688887794018164924814668530305684873280967253793936588946848703699648505055470059044574550798690637039359788045597591826440595339963249175643905429097248085459084346558199856385518448653779954382420345475249814181840630203414233882941588016160409597623806855801890683585607122001185536479870686404785855966344796222144025535227804728108555823742678139451932967511190597251918221942177452579268332035605171358929580513113994943861793020541316068237727348899185105043552601430593996306228890453172186996017270105549491899289908711525020562009076297652171561682213944206364869885331671116336490172918783704408848548118903659454831467970390271803513913992320681807458939021686435678184353091732212175177819137633062771928450571903171418225260761770971769217196388201537595773821699290464687191398392314534510429134262604348492035454584111080642925179049125701273309028510512515364677862028120028559952167413205270891390910548916387236957036269116384637876902333751499905427210236908983973142671745897537643003505460165066287523393963381583591003679437732742003803987685560271101452259217760058228624492639982531410786896992129842494636645595867061929539412667721931368380656069575506664082522315225094322869095547050143355872171265542033196156411094726056730811271241787125989306315853817909636233544091223540034320824592783725984684974489174100414913380712810622985558228388766491651580085895079736667072252565498295787453083978649273208525048712793870050123351747012564891707868704543005445933778728607804732603495264377424476916506799227287052038065911470389296571377518818078178034170074054316462022690998436793248488374434773186772921848432759615738890253232319436833442429640306956344582158746077075892899280549930841316603313337046192125715790899546136039059999382881570985885676260019195446580661383161743674178855083054338070817317275396423774387160462649613427353334765914285524460554319292219544169698298608748953465792397916263851978191468681978726958370064479029148194948776777315237440092930557094921940507198464956369655981883273732019317130482644990538830201289273848018737407901415325294856948754716016837976282410180029206500354936907060908402906642903781615691417156510862533803312235220741659252663999120983197484965930249954897806416552348944196240700643014348523876168364863077616885113282236492313843736289916741562423287794924497888647653749384630288798178714892760929339875296771230511187382992596291402454078475094229134499314825803263466200501115451784383167749934376372227319461786628547495038745824688765849383055294590615953096431378903840361133672029547954534362646846979934931642700151340016113646909792100722987203925050453358874924555880448342451230145867119185247193712783813830179662033794697159535026355528964360046179981040162558278043304307273449208963700379711768583338715155101910776600305174469786042172935561716395244787550295492861225796696901168964580729607733828117033179171491213290232319029882525212143757755425095551010362029605513291631915778358092576649764832895284829716540645838868218286720017473357265882376318783266388881321190601112553646794223926671855211301995757314003499985257557432270123666141358573865258278297517856936797518867515118929597496203862112096605806765824876267786462647718332993022503231943381500182320491232086580121575535735505058996294379425764252297294806171846246968550275212574296641662191022085160096982893365766885623649438402273517914570984291377977781416192510352130432207032580748519263849194698405221785750009620631149023860084995005443138894465872095308149410699691492285175874845978510831817337277430819974518616553766733753963503307818448102697105110480338986175563219713723712553550863555590442995474154646569712640889514213045012822725684479851277667590808254679986102746899840205475650851362147961450075615334953618979942409216624696787025199382507419016560666774391734678287001081564680143208043536259309250966167377581495410176084538946554816231757584762734911450562799367051893952812286938979547768992105893195471188567192134239910157251959782286553190016851426274858583770149814714966534959516168415773139635485706317153933233961683450490288226353871593920520516685937634618998989956561423275095242833946148920356235594252133504504263809001531760863582651559889723699164124395575393123831725457408128474057407147199424643728032325539998370511373651393404308176338627136103999202600553540534003945747689244377637539373124982735869395358959910365993458202376300812756895287304248296199366523659302579620232896712012168569963224926145349402093353620661459405945338755249444970687232251356601142023022788707039825698193461947902230402203174590278449296180039823765501455290801167157284069063865318103043006159106044183467016050622758843367563170923517120713174792766370491074370972753986826775406909601405547268832166878416483209241692126462416179422253044123785797648757894997912318977939660647556461615292747725822143118681772158327942506971166241199875620173608734434458384208090188697189471416252732593649469811504180655668676685446112402940993328972406104948923099726609459741340237573550199451137579761817947902118839591278553669327176654936917125160276989100186441257836060640480391431181501196068676985764425960363097253267440228152786769961830527198181946260359123376359566980178446921451120557058228664856785189968851885828363894690809901942987691625588175623684623577495461275862342791752807210890831534224319981424364929641157800595376973773301335896718253087130903091187420308031016016955602080001026456273075254939441264571835180131907515698683920505341583844840180654648220888205420861766733568095385744949222249346106603664886760104315023213366010083763486985158417342452166394026181337605127952099916871289800106352725312204474244340374396498581000860059804268764987449095616884940980762657141809115182760387172563149677771734593482505094771791344121963235125104886743632585732000734537711100217571662685080753029093826816622454622953263020248462650995177437613019901996130955035834504086754155747082858132936667608952345424024150009077326947102341452341902346850818661747839335608945949035937347695935990642269299746975992928737064354968921104434028444606839399442929956708012822668359358200155301126318100286590865773563637437166391224536195980956485761881990151935404862712994993507972537928901404925672030683147857143544405614996561504641662495977382818054959305840253109744872455992862223128540516758199742053079954617718814951246512570263088912616019544085911556282065077282345118368384458941136758489149981458516128093010156203124427913463818189626915674035454321535863667242293457369832958502367015889483705318459120148242467743619799891141765400776793717036806547904549341758093690328676121110169669156130084343927734432501373481144926217413105114061830963418252888008954753330382023111873829389813515356690767667318681516200990817764772643359766695442748475917769854275614743467544161219009708848833675574308260091637163085382345627434594573088939923338963730046612600647172913183732857063499624986658228559598428112833839135272190999700799299309539133373520014206537061661564740987100640910576568814047416580854510515715585146974143873028785492025007501609592487131583412781530910946237494440821991185723596181309749165687824063496477795835488006770722294492988660449789378106704286770603189146484361355657770602496151387747411588215938949005663088939125823346095219839592486417870093283166696247130531124426134348860770992320302480699260843553505993388128999686148054878874536002770845550831444893543345195478118273163514257604479859085122459167093605116265127990336012534751927344376847999151717184100455622103232435202724028390959808170452884028347021154661005189634151567563798464358707568250926436842941149612119476045148259164057429933562468969321056625073945230471820359843755692401720831401899940880379925402951485901190657451470843382451981961333135170127451339338145842163500597555409074954265207888863703277788464681094712743283417897784714353915088677781862090936055223507413908705906520367621103310896523388872817445192733781780601266874825930172746754521087770757183956625147398577671172793865092307083756202813040875352259009864698116088190666333798653288083085420375005867973948818617901553653122138260177235478466409873500837446881831175729758541388835746993784118214169436708324008518567640813648145117503213412707643719427369033893831585671890912401188886472874154570766111878511946684907017307198857299699726421924688204799805698359699714796131554392683209615598201176889780740032404348871800020413016025062904173720596868807915862613281641815876749223476366883561348498791331516841385316270062297685763278620297576422450229684683989711890096754091166850669232909467822777956193135262396175832446452049535288044224829443148561297439418576225048365659465181099972474374322357044371830826198591429287932674143502718937690212344562450453455452944466550684722177929997757148720650614523506462259289168732299420888993453597885201025113892530862358100568292258824290841789534064730548762300569685240200734531975926862559945230094321280421799683160271107156659223443402098614556032113032319121727459814839598715526982030710493398642459969117949999988553000767329754531761018177348973737889962027850046826830726023994163464556097252282687465194505376740967715844867162826299650559512129759444715968017261921913626846108971131022612919387728341443302170414769493427948669119341201232170272276065060860483486483100310044046989008323618918894563494731520125520280092020380484114871047598280605513555029058105965218608453245372686958840581699734222038989929552084497292012571513781917352710185030901741415330425203764862212750831394847505260334536469543837173264521377430995898887866338089730914337999916687286807593828729366876204032723668158334394206183859780901037103310936657488493116115442882331293151621368520877533234497538087324026355481604017295069848592047882738568060414407315063262069427233643702788582738419622120525256657971425144893037699016137070068999871415192624801894429032847586253830830422863148833245573427201488427677913880814266501879285141170305074534156739015739588350537554314934240447857821594057328150734862500985171821123270208976706921486727260333208162361492346126135015618360169908102267439079303744381106877095832190227450199682872806054049624311671194168570164219147852519575026098465366534931143729762876571000577406567855682668880061682880736620405261968973974238603269586824755556835238353026841145679563908522388353306643386754735988185135023550997323914260935997381201711452988694248012636543361910844471670743057479343479216849800035670081176943501962714473880929109163242084875551999004172601720940271041824480525869363557720680744095500717230598456293756601596418574932925759012631255428706143820279049209900872601216269607758960870696127072601777257370014026951986496656878199009066014891744123101021010701571224626755703793646694512989358995682422732872060056169342998991621956263470446480249800634636218836677119897252147946688536484611603264869600153436464665444782884762833944874603952943698134705374262353880866995839725040034712612991487295917604901522444715384297714215235768417840691629880080585447206074851432638488863685693669150506531664121086851077399727301669120867358254979769827478226336055834729904924857127084403241141278582864518923786794599964770780563767284310037033786886071648159437405450690646528394385133986379299138278325999372590867990042402345156772828476483248937542275303246490533167043983825805484096865525298369067275769972392380766189921405733619970062003087967506930341085490064244919606338197055643933526943715074793439710523592679886603529818189906123915245181961843984515637873676060373726616581924782204480630039340504950899850361735574118179066600467281042539917095349797464906063685029144901418063345028720122452725244704783734773810260798926786324379015155140656410672250339965720312037508395443213229518611959633468366450796720184052996494510345820696700174093744406746510189256448787074262946893803653451352975279729566571815155531411947546015386570612554294303730130653235338135161376017948646822667432672754263059814350643020226149882154262702060050027951801143893479772733396270605010501995152995699515204980895419734873584701469920047801293802181994129913704666612254776170635867379549665148281188695034596044085526180900831179717600467316237354798431808259505445341143631430749829313361242751505811273074737259086383348648807001569574820213402434870208992316249261092308782423755016057691795366572825422459084810264865473232718056228858085307483435201351370862767660293645149987015391029176819126984103616845951807612680713416834612631337891584059833567071075204114219608798709486689257383466980702602604060687042882605673999197293436084578863620816669417478775461426053182417767164348608993267377872623680980647987253904228204967092456012204821810256575630406692339236716408340811315817114382333781607158645480837176848044586243790853685003299840122066381899449196642509679593693893753267504626564406114118780940331375825571855731906187761205158588235069301387358527134104835445857796664473345559360304855932671663026159061951179019436193710705031044122488694672081226381292606535624620892998115071186343419469346575339542166967082350103809073843195947251406395403893664802368490638289867789316149790292787958364337212952727197284480931470796910465831408322974002541980420292180870864577213244938601700712026078509092055598998838489902300532432374240508158856824310522132648045902209915136688980414855225803015500213420168256496932191477568247733437340311546587236591346710454122080586925514107942705192267697042492674177014227301780100314381656793742584819125974802938054695338841318761406978573398423870720105629079959073428645076271488562648188106249084978188226357696179164057903972213355614012871157150731352060757649007927204785413419031009804144040798553527653778002673199078150818441806772080500425396125444800075115533124499267758409353878196486531888609263130256640731261268999924097478685122135533911204774520129276488478277102070666083515761793296127471022411171363633825549060405810462236968455167082645846708581394231579230264005529276751938152121576442975735833002838398640016012300066968731639888834025741291153504350344014391941913045836295443076268484722002591272211737127063116127052364401753946226566251813009019032555143599730902515366498005704192525064356039028896742292525175857723371355893616071547580311383100791651081942716358702058842066183970470123120300047419787584784464998074752066158295919211066298943907946134948241923774210992972285783200770747182532500151526043194059571127977197934855501536792391480498831797605454705016491434544255465832660288331679997012246694673283755017746508875135612508773617520977368922823258779969917797721242145333655622116838136461814013587333410358103640369980971402856901059159204767772289603475048230793360075910147666241634142840697768008898384147386518797739276274444486912743346262468970486948416680572732517217218248580800945445174200045785527314739374508989672288761202674510089077435071552470808994184041849264508689763074881029349579851521681597264237808466879100217852248198911259043509472342866490822252692405390250357404749048256510261744662837213745682938724407461690862463397844949410293698130042979014755038447981396625086011368581659711109549511655043687288168638125582365539142561552072554227189344664588819546190711430172706027602989506994495261672871892536795294104330274815538357919363563501628105290083785934556536500226749603132992660181504196249924126153200731440955079995374272027478800206652856260355351633335648016108736977989049544271411193033704036666047233330003560379006499041493245804543507679394119957571782199532892619058588329276530840712550500645734884626667728152806179868690175541306029438197044152428302327584454876923025534847820829284123611564649617491934776657245029726765019154800699994668756460469243641047444175872725236392699646238901462945707112322989989606653600721695070808509248139109675379006117491184594493894173949254422829268950498050248633881892436141040767263181783238918872641165182135977300050442070143848836486573491725336024151064307263494307982427503768495945525252536049084751873572568498193809013129468263657496486479498926603922091360816225612599789836618274012106915837117930583563593908898935493052496602203087749887999340216031798758724195336727427933724632799362253943986895264295274463525391647792586422507865147652337945707370149239362986953197518875704108703189033672954158016704594909300389468091600648987229835191283870866721277281716916075561938636727972692181127585261875069395085496275797619090717793440598645675793435454420016137866660864872713118596210028535763274033554625430019159253028423079707533805239071292035160879161547822593469759539059341562352941781192299050693811730580241891379387684057372621021968021586231955693336581664137866162121185683310087228162592449168960969820989727505514858080101107798658028581303025074847691316821708198551542049863278307891153859949267899860573008568322084739312805722355252469189410052877956097534046433266258716789730741293071540281771555968392296059207244527664141195056531380199748799097441473553478803173602114173960421417723685972322753037388515539461870950223006902911898252610173648893957504537733099553108091610761995219159389392153942670074500022467139719914438758223393304426964685599331579843136515890611750792954907222984827404355577082510051534569212722187628679360992558089477104747198600997185808059402405157940454544197379093650476746906301194299360013497878122650049822348381434210342123173936281445471394349647519805800110529164404599205595381366011948587205534919089780890869724531441607089670529700894130670757291312742905731334380257081123883735778833965557166307080429339867605928258991901345765926270631848346303049191860004438258786019084905021232086022455553478179939497940217048379092283069461420928985487394048981402542137779815157911282200555950301623685463091015568770017781103229535674271236904192913155789168621269168410683296031993756841204543006225385913374414260867475201277207136529467604548355334318382244052053792477175827125167854089677622470888904417908777196858912413603160608509047296989398850659153572359356467256002611674785008583330825941858635772285739968864405622205195332807050343505607079799272783758477106293247205063715058718598886735259099669577521708850591939263129213458521485244244988811207391726901118040704097903266390210277607238822925092098337385579211229231630802582808289025194340000094198561928330188206747371185803788308142075266433244614298997857605647944485409426305522181257595342197792107357511412021121690265288133041722841047524211479786556994579867999976134587351779621035551677011609264984776143986535048695608055685233395658270785430675657904863038768414858037672121543003696667063634854266926604045830456823165244344472019573859641230591843437007407858176590573956511078270341743530259148157076772945359822645367797646508824251661814897811077304274611388729851442871692604913943968576158074457642404768087195924282088178511095933000596146284847428017860687218821810026562036920212100415030277792077909862726925674659387187740277048895027516590727919619396010551776728286823470702181088314437913383481514659107623016636159656113657174341420059039752014901291950671173778466910418133819353115914767747903172068443160955762202260463149540143446722206641513151920012725168084633592915567605276318812947987103972802555165369803095057803244804950524768113099309495167490535915401330374725660744606507381245859385214164915543005409911260676280737457448556716376260216398550613538951497785477240368981831138073064924217184331258331205557752834777883883730169241913421449859252276227184636307732703447069634659457978313761770342728551383981917794302337684303506724820706904656629405838802300887370577571113157671496757422160774382292599068570419860254713621506854056470766666546399490749565673333833199514916932398215993651567725225685695377714354779868875403661724231264080540195550930617962018975286458158729793833815407104765215863106052907723909250915146514470630357036945606562083964802568019771826108239505285678411002144968885186822974640190732413645189107168737296795015782900408856070830860005844556516586705081449496109888512540646053496660758441753475715756682625606181971112392663660551001896295079892241042478708742275566211515078894379505056405337930699374036237692433830775720414457417482541577333264610649405102663111606127718633704997654481766773346973537402939925403511603523006990979001555117282452576525870878749316691638605658523433040599952627337207443781842096797291224820455419067201562279763781268986073964922228014875289665787542099310022450723864045171673059287003732573710491608574107398819710024488207109594248355309902471438474703693032571833670049861307099467219424564242136853150483377319969312370408275896569008025503363546469742594591262905479127039835105747419300020461386997171858731487579756015157353037564399322594673162011312723055167412386044027782306053702585650194904231451742932942654240202506569703765075862519562365479214918420112632086601398643798840926740437594801357902225641537332848994297274419740270413519727165630008688655612557911432268924934181788496657497726001428795973442345451717233265174503781474032767869126479070910516015282652837128608674053270050652345264010503941194652778860879466348001684661087394592996943988547168112645257674151163608163560513858621269437967726103076259395569916034596067457298971751612454029869930010266593388398002387793640274363296949019609572106932857021938232190584093002476220871281245766334421448254020098922970319927782024902250044514760726448543144439742570835416210059161020618927857138442798530844709072701632745482188590332196973135885873474762826954983558630800241210669069429442426072137220294423332037567142377843537451570831953385220783124218523652498831046268812332112061176298498053518887601709579374075776502025122418470368262085494342006716563588225222840342093629377237753585941357241258573952518284854993200839843863810412438852068532940217703101285642025456723405593774693006406542625776191839933240748952225532480205586878139222811613836611583654319960834192632956740183675498517301377802026938607478046411374869745284809215633401330451867932079377121668580119870719405258533486711835093226991519544607904857951989275648303139500596958132618016540415695289339807724167804523246370311613850827389538152297392965970101449930154636819756648571738443032246474398023338958590608992686084316104428367947473449981918656030188272569225382767788600638126514405059250461290196090464520483349000285837140964795626327289119641001550035356024395154167652043517652266203221385051041338933238907972243631692214497238585241057796029346621824876484965476664652221064379002412244769023354758854238588304909964219058253770604197350676912706626891436197136812751198046362434246948916813070463387487574812715299656870885709646736998060909640974549979081717083303336092324317297792396044429552161564878267278658390173456721683182780113094505230608733871203420156381287629402033012377971302071822866856177963216543234193312013475897771118697400915678761950520265435956447934635956192800143063753673616455477129471715662883278456371781734342753668072430978257792593353094504935491610856536889797973241515313092565940039680539010650590184848030102741792908341170373873747125029187902244466634472131130397527686211549290361503610538744182240815157901009478593300289417025405262576968017633734441571419725605687204972551377943141880585525456736287145598488739743988338006771574944099254651998731405564744222444757682467740387880372650896543580034262171945476714203619469595717881776018846056536404499446747650444402324923650434948892631304777944653398665908027785610908975534131969469498098996742946828711305882760844691932556150375534663122601933788746208976044628835611834075140450866250971685019245301121055992174775838247972809487719984821008644228730966366466296160546376595251843097225929915496346534383816821258674786425208089614604084411251825212002947116687844039556737334310861690439547820934737452250528432212504791076657583256955537367996238764187802038366713698689944460406800793953442913328460550352757754413449226538749711649360367387246952799331862469569110518340551436703253657816324871347430721257944662505670795544887357477564422076958513600656201413177523223799117712790541961107269457895692274400164908353850820902257318468030655234325039294612002168430099214682683919452584625520069414607774118833116302570134292207587054765441019514468208113960168627605927826102857794651289659278527590330541451063029566222765474051319182516964477961693524782708300914166837531108036307443568212083062226120624063211156014788313250510886303136984492370667929035781193130675272968252457538008359302032978986970539968748190358052967869946794312128082184081009675512187906593259767860634414803662747236790000641239300232329255442328412144065303090533347946582803916387293147268586472080995408544295760019688786521861205946897515111592514384778753666744085689274713604561949700607523967789466463626367189782418165489840761965986518915986284536464335751887714292570239114905978810868159948948006199179194555745956961689301841933284666549526212202970579210396756041650950188045792992110423144787560635730765478252268449910657635986946529191833324350639676692159114557769876560587263003745355135058731268740137899036272295608663616079065823135340820457336494273372944673419286429466904928503876184147527675050350095978964541000369405586742777139111776369321379530963582233166217666235380699509093847821908965799623720164044679559636580394538398523889006080418066167952160112614242195404877456246507690145293546972095498572848271277888743734115226689813110165118000336361370971285680895234265217574976463068307737244244496979934988022979715517367128566930351937042964602037230201733932558062425546573733419549273527122585791086797485862809936528068750974794467456687591735139615548407651148836290034678209796830817122137121547118109316525642267190306645641218776323194773695592090825285625533335888914056381835630103121328707285684505780255707156599607744271468052912097432729021842310716724370126995113034483756496729783176382638159931237488994574577277092975290340438950437348050010506345475450258622970551883883234714391339279978980855023975249456894465232044256672311543954980372890820444501170886832301770972335995231711179395987877458142183488388164370465662573152217830507076557207059672439340450345616546012668661482408911238644181478963190335749457752427074871493461452033793953714399768185194073719273544875228394299362330183367725519527968310554884222992598899957774104841350627687487537764425372740991296886623123850553202333806419966323333237526939024733630267442305210634429248162182831370813290187659995230413851421065083791179894662531140249880156202844524289105183061572885437833849782756003821980733839419442324842348106215536847825617894488312216111683056842585829942223046647426343606974022469002406721598047097201181802268411107126572928834372667107654356969784977964888673574157390380267642686460127322701681525397200061353393036510797977064125210911025800410846763634171433198627546223442138529858044909468277720760742478760594017786182287249451881848777707964798957147232935936691885469072798319875692541431498518762832571450458539233618279791338409824203393125894532666833983372942518281362509225378266178390305760114066715529026888836606268237216134377899226790149364956237450294803425119016957068615188624970817100725968294877969779495056974177069472045272830952112767000949981348354938576973866302054818121454227054058976125951587697097067350067252356300998607446782925043060285833776765796525481742300081149725037888905695707125389634010862999309733266138853232744136356208168192697889216469354577613348732853699416170518159532389729574931661200325498295322042777034748974688742971185582998491792847623256738626773645369570415151355690364493683664934137632637443601185556600793859036094789700501101045719185855119072436577840542632368379965592343983980707396987397913536021481830017130745959439176781046012281073954897804759151904237108372829775441123443898598809114921389543886800253445956663940500917248498524444708402717674659225045162328708271522039642706494098398112884850695275349371701020392852767093993158609649245339259693875469440690372025303070676812788658857910673170559574663858576734734376804740700988375776465075445837431072479175099064182415884727520044225928755495592272125899701383769334861724999278337326943238135826287157863999829628179302784091150904391535159195431750479133938599103083364087381652424106117571436685284290091958635391982220165550347383075606874383190359927397995908379601880622123109557157159594768049746566676856896107355878456742918994032747020584690694127238517277129599115731586478095928357447741522738451116879604346427720806862747182259616603422532866440323606970635435234896480929015335374897177236962385762344619164754524021448032908913206414094133192731068917350977063028562973003386338535725440906783305484641828227476802949114929905053764144717117239874013520592220458508564630372725264358813122549333947754399120245431683026567177198436772968237374473949059746430852317491098659046727918456158569376904790650252988544450423156024010710653013594388837602827825271409300128403168379035866582532470987318538460926325835842205206264815970434629587630691558755293063083631422459541048397551759155373609772269480298492149152855806002438853443941566551072255361699217756546387616733439941985353881934173277687428679721675001547668264208716172719046583831366302710454854917195958783990553034156655471328096173159557933092673928381655304120786522306163925040480404860212380035313062902482281929916494039857215800250022190963169416863947919355731037437044116093460985722624390492247148273669111714203100534735373871068682436458050992367483271495934531214557894918818270318184206155378002451832440213660632881006718007840756483376035632968960519378790024497918587893943627032823644532804214367148066443114128797662666837483119987622303806553839478791639392361654932234351921739841549860354740499294873281185219143865293509657287511837515736026086647719546147714199578209788720659849513617352445154949337172578309461437137477887243345459068531045651134099404994876308366480506225072860290114838390795481256123178089115320172357229105557945138846398165706148609266787974413127149245925924567029076270423947689701157834571402188578459710588794685056281607665794939468462903601736607956916394435260479161850799148160437405155063758546452047916983005671653798005815560474525080329157536940639391069723368999344236656602448550555741071777708843409234525997026998353077728774934794497134459963980914026874889243722521999846261741024620916496778314655628318511605654565985724356395491505526759345568079712410391972052426282868739086054914218243692694494070162458107577795624127212985374289297247384618611591999323348326281463827428900844813654690364905668511482553062997346533847880675844032918548649315360781564288739799089803238164601443416995640461013554856676463434456093538831787282072985529041950513873770796391351993815181661331541406179275386041962784815386744991855365388973276884711347273272771128353087013413803408045001257529694241511975218618707601229642938179811882069740173843383209678366811226639026535284782921671080223013776904057468329838469379302970133836414178636358943217036328930348415794650200271536990456211979599110638492653051155041070721507082184078294995198870934919538822777502744679405406506221620310174020637017067218956701525725885124190159461098884354373580264194849218722247874854520568923272463713785116978617992607174424045017692334252412454881319549527550639350683748938069053067307938879280431964294687437395626998492031385608224620376054380131771063694525722016762860307888435759675705450867077823656327762358525937954020925469531787602378667651019501303463672391354277760350214515998523767923238637085154254614417790968692640553751872294737736517192773520938528272168228491918395633016690149707637858380208539764044059197445559261839641397557459785859080016435840241240558016854711492417504990982884976192070799835961532880509263555995009662012607390149067554521222321878376207890694307837619737796315658115338316356209132563247219556777476969561036295516203917170592211222760447864033613331032364308984538252805351619324976679831203580205204125640538060899434038655343598626696697786962440635744378172946947897807322503860383259991020141593714320571447006405074700564389875159971737864915398142931438955898983972965154175756896215077593203396420827300515824277770463593949778890529430634475259903362378580342963829469593590609924247807409303776512513483226638329783839936875017230549106977777617224212720625876089350920447185976844458497078902481311061892067166694533633164508983395972402777409744823199292840081278805126734464215585158448880894547043826343326659649096797998868877994618799649539425770516163295591915892763690164364468985815638896917524631136627203194706295965179425089322584825454181248060292501640770000075602551433153425997470311286051916130594867708140715955300421498550758802458229570831439370803514518564398542829142223718532105425260303017788531622288351588839229650528824213019565364421519454578416424446959785005570019842941572364711641032475667392558523262357839152313676986233554609386450588764324568128402388738327889660764903660087990033642644763771056034616803172674213852380878331715966972089283783762274349037591393061754796406026766825240676551422009655292172032259377548859548388256527770911297864330859400967946474514346390106809301235666437919692551416190959298164279286067782849502391501724821517276613626094039317361939545952484953312506082260239040517843149709718849558593076904678550909644777283855972296124911036911471426213310097845562318799033167921781873462773772269279797245797116654603780442340433530680807218592061790044072573449779103477369251228219136263405113353301277370404084543044777734950077129769979326391926054228126902087122886260387910274450513745122988600288916331476249302588778201371195325630600276977061483348299151622464427880403313730079760497575080568361305294575702078104708332845679428532172585656619486217964532067038291696363736715474855487151027902208907983239851326444340072322579541184083942708703677126619173494089174634352364392803656823483563424916923276308996147517616680289111137767543554007437134439371040548114612708096083527688068803843184297404197053933501116026853633991938036085251572597571808286790993493336451582717578752642942109817133617358070332937717129979706094423298643737419620139749648448012280977937176907010858368834313345576342681393120160247389678022427153331490532416852326368221625381639024102805306588342125270676323061863266107180999086312433489030967909482061190363612941281621467346236224768094057550453103094270299681852968344077251718851638506736821135101211587135597589889299610997379226232756902760220499054167827429140683414034288572659726405697875649304357378921970883519456346412591777423719615142412693038979630816666790759197395678673762199070515170219644441495477742095908704740979300589801807455367397514780814099991240743152512421193569846725845082262114190607569883974226895702408706103689542714628696148527656866139632701786407145112387672415819279105511484965582673420328216747379444973364918054935640562758744410141705681487045718426279102949850410076756807473353549048525613982545774787476230937400122858247526726832145282576525377290045371338152243975525591603687517374321619234678119563370527757353545616965697203759736430631537851472580568697748611287745211098804392525976887955204032136750200106180211438178308322860110281659389441960956950701066347675445798811579937238091393900984430844536651972201073378188817033246601743338379849333313159787600906489145441096673861389070668146754363447885181323541373787897303536835189705664957220277612137993144746953469448986676516987245492544123589543593894262813235273271820111446960640826348036098831645455955266375821744003397145946615155313549527709488036225830003165368912401019482044667466159020445624540391906424683657154180935234256663397693499426727138623098608312009043219916678713732339715534227222666924015799686168126609887423713420374127864850610380048891456469744235252588856823866806622803059918895971560016872756053549887368174881233274028783945540812281547976531464988972424950777401420922938642887013813820660830617347774213305318109833359940864141981780687898977477845274213482209361325204665233061434144429147461355705328896528647022249400985211274570506248149328118400170144842447666155623272721738287184674955189268369422045440381220517797615837343430384684249629587270261596156779624406030546871002881143067205629210706975542084675757752780448504396406579444874802551475246644724132849452747085271269363067053660920454561079005475263099989106986614658419466596518440233159800015567506600048905957004178520542524782685800329264585249303170701519060987719316601092082334953093096482252378206536381047784475473441770872390652178891376130738053774108532138660507569209938871751648987744847096525576825277127096700145678022886900944316476076369876442376404053957286920836872045592826828147014530852087219581190706021213662142767781024553330107055222718302398746210140557581603912017695163962830913982939896061326495025267412450804723219389000768275488561765297279337205731833261637882762877612614297228881377802891884334019875266299335143237619928242390353616825357295251184572902214192823642549451951303078371046302273367209908282895563338063299982508948132589915828741946060716646064355481628402788422956357871352792835184667072753125156602032958627416728705413379964678773723261937667162121862527030173123104089829226305468497735102467451601531758085263229110484308218406100695139633994707636501573355861745136699433811437192444960096041269847344735010061866290376373029551150474378091724570310811440720019253030338538395302221808987962439617731747787152042987304558202043676776077148454856091015691089784221909273621078333611263186150675290557449752694687364435580527525725857692675995786929754822118430845175000904638777907914995233136391144439858470222923671507545947647936032090398827366411734772721338911194824037538953428159089105873876526277609147036082770134859212306221840602131030838054188278521042809358412050596279488455396568881615684916871824590772483985783726748635528834218514133360987985880723344932003220942037849510292589370704985371311974713193762678908813491157281580119132164384171701556424930566767091187202002641237471783599929644986127927713402986039577198252306848090306530840786959673583547355442218874779288189617012232317541116329135357652741636772948407512060879087562691967418683101109418241151995814227629094223664824043766109931380156015560505530128831955155667787161916335162606062580642511922807078298290011291139606280550061537821995219779515494025138688686683183883966463160478602276350099328244159762922540577981339951534377091073137768754897329107316807350903657177927316808308846878895193782586593858798327907995551385091480288297855807886018965298978398620497697966795669853214433427868849183090823357634660477035970786757885406551100103580494998936216592087151712043800531143434596740084274974798050903672084308868272794704527121964179404102593174095879267528940445577003367883408923126136485968794704755700350076085380040795969674909299640406736190914365684975423756920979815349966572702942974388577479180382915204683251958000180155984281890260052100139108236646816472954888730892014498426820284977122374904314836244711721721868053835811040493690822176481411754983123250304216402038896236161108033572511960586627212969335730671256101544459080774611446713843283967276541537948727736064024703694899195100275109168340151773473406275768123738715824525225772629665058910713988116094218146099179230850012161245964271010532322141419814206864348829687160831080179561315210986121930054045966406056660937760120038556891767043757099825055781400859619441719845621037363667759802680683337195889063376790206752872024099690654921928532619224279359035300332259853109525410287414846605790404374692329355022766301055660213865488571318051646120785426640311327955502299276466230735313269313093417423305101491861158446337669948979082518430608968651730924729694466499137205446441892029996874833239207361130921263176118983226200213828321652039227942689916684166413034191796415720342323628775776711904448858044098240163375947739014823805596372621894593105457982709361980236713708765284065786774740365720936999036026570415453749489586688854278686283748240945532472469103998250716534167554897200683062920974526676164062374881945435819872853251181947326760288264810328041281717563552226136475826814045872665609992133310765446631499170601784412020091849363317987691988283129441179001472520046859246199272460956023530208134622729985194593405853722175272130254151503085012954611024774591573071347248392839297249766892218577490564484273560228023390037417346171194393777195237388272500294870716694597246836557912018720462338327910469257079174923312415940220857039564748634217472659712288568843809677762381170261965432106659517233167717990084482297150315268038652682876081020022517607397283524387162655345056688489704903259216366749018662799692932136813153611239322377834720144277051670752841126565589446589522048392228742201313497806744030645600961459099386849253351563007677917367571291885572037825459911998351249215596564985046937888035691602861103880285545343677807513239966753059932450122520135065881910395158503690411880958793105596873323192845494032160042521170448651764968605661307339437735942392248784693073282197107048298609164390561277893817434478201888890176417111398108278711167434989051369810974734243780469898591770385492116042368162464480638728894679685757661919880984604704159357160313488030397694918521179002408583299557925932291118021913736673306300083245728793581712326774614603719630617778055639034689636343202658779054008943925130550098807000797023906553929907538900210240650988952702192483432501852140775485956698127917900636071577547136097305368620977775564301940743946502286131497433269822889534417667397617411614082198813261746125227557264803378979344851709283430510829607265593561921047269425197378242349114586426895261648150474089417554365799655904015299865063361339735576661510749208932207168536274020122016716082847205928650547755636280070047836751142525208584229857233395060605954748226880598127716996713343096783174610973259547532381452101694043218600483180857236959081308931903339001598821522156239384294893127517516877395557723760771358002038512355476373130489479045100107600702317407273785731583529182690219880212343096024635473499437700965520437117692518610727170100832483466542283294017042703341707714587667401071478015915938183630166490391131719368727554440479857131029878046122486014793838594629398869626811071868356047172545012761674223081440094487462314309388208680361124508464887356445748278818277578860724456700985955479412889596417687684554215684680920911972263816200732476488159719951889747363895631104868465311497642631107145758207872634914721239794583926162346655928170528153884652928959722482745272331895888484554756286981429196560612164218517967677476425934103932771500655908859898266948792678403506511132074838682784541605913476563356550037205606454743544463252142405024250343232439211799528961501693684168029537539961355013563541000721746902293344752831777530348748393958670393496546996126207814474617552753371953530694583093851730486892038843729837744122966709201327887526388950216328857152542091375086768465334267778413049257384459773193917462553982664456820893613270484556620547335606573547965425920129298528580129261510253329975413445957417743953768424819678822477239896720234509855334781951749948662418857232083005667599296921558818583531489227783474159579572609743088849259465495921985923313725221150716002630726694793043651168702807802413418476926399933149817937642403402612831471854096565265005818754986475472788691600942360517136456939869490243020314775396350885536804928078165479349811985130687167592994978811480979419285382991740547313455190505913543698528765253024789296250127783223126147389994824930359948578854097836808072544934244376351032318811440360298152324043741750635197314319390012241342407966789264848801057119398957221527942398534976364220769416996476087020533433068280156751447453590867682466800243389562018424865624775335109208659580283659175552444680918245857803964861538294375117624053524831818830088518902137243005640126261676517551293105108310272464826301115767612431217578141818024311146192525167796200897087652259338236816411969554605934067890739588236250138885880478561306648528089609656603075287201196166140455608851015872324429401527873965624317135816544802266221757014591468471132081354130540599752392571270627915218296972630496924394287691566850695154605869544638236281502294057130467203102790668449051652567521621624388080034633229818248010310025055995190932469096028507063343787338196088705903345260552729187999849473507949984588683381331995631182086611481844153896324200761818966555348945176467548810007151598149530329926095075570412322129094216111446794741854096360957501503814227704497409979775898013410625945492138035469397782169538972718085578372838716050150296218705954385598420389316321357815974590148533306097152775622621575118214964820782134218319522718285115398244586002108028299499513151833529092108554772609126885898663269705578838687381274673230662688634211116465578055798219126632669865817964301516878130913806473398201974115059503312582479598396039608752690390009898260302942229258730315751838667284464551056901643369115615806279591716992112205809731588112133321309140266606707159693245441730895441091035184397002476441849938227229021301121958552019193995068774349765022932326732318952939106372003178624854109095704651212850145900705861209752707574858428025667941848144177133370019720104578376439752002745529538158243758397006242959893820414482530368988580635740592702607550190338524686727596806267004060450063578293124815009905558157469813661278684007431931639370992453523895782560635300139610410771612780982766344517680203857381682785822828926219906498254416133116609904897667260714376890076870243536669817673765124033447784822076841442709737044994679285237127151829106277535139928885055601853740181458078791059087537006943623001554122411039281600993383002602456958249960190467453463240018890900632013414904562960640226229654298890668532742515841096056538977414108789245132670484020695311431345701454076793403044087073977245632750823031626856391445156705214478838609562374240147401896230932197311899709592215400580590943390801448768951449971874503345388744701618061799819276970980931841717066663342918738315422936603805567006793838704856375948481157271384266801035213684713212383055318349091299917206777509655849836057454380580739055664594454964466565840887819357664732602175749638253983934588384801403287362783361568307267017130080340010573474279810540165828820863054958573673491096344814587994999981108716271103144927182567215031599603411675792417331979789597666808579593837970548127560981302178377957057158771450772353147143076280993307825427079543777431466624452593135906073137039113797591917243268846591613283630857622148861804451121789966644558900857052780282800926015884565556575446329069921185973838314085357342168689641845558269823939375575109139543695121304527981410361406180384532642900853207437953159442707525102478730072278679198193870306279467499175432978059160061646463156707057004729908756843251908721296350596585437907115742762364480949631820389414908744656237282105835834697440110719063333082753772135477428173674451772597219687874369466789681107494654608782121634154179408895260082505946016045860709021337888491954153127556545327638617566902520868304716223072158601193460359605341612521782640968957381936667174740933571781020194694053029606213789365960749003039804769500819577836569728108498173760351659391010381759390409608416551368175552818908910118680117023519942060023965960394131099014890345440925434756429069480757323777523169339966468163439407256597344176800977695339620108283456476796734324488299567391685569852456657538433779749338198235505882349062304660479244291004192765898642378586837671035799710729780312929652745922463506480858640879396160819097557463578662423847346604414262057816329736556965555748240015824537645137115403178944383126265681560776114443170779808381312721711175959636211163816886470005949694548107142755497817290640903853552444165905107956085402156475546375063711620255660599272688726255005721031273086265312780035994405362152994233701967583912583354936943660171614345258084247170219797845169410472253648437726166526629581867111639345106869158741235010197640379455544214208437757061595906303434020291560086096979828667883975080211100850235380051163298447796935703564856973016747517466171166611030859094702231748914379761359910098781052649856113523547476715324860452196394331272507453817171277076633194853951874372829086341361461192658434187470994126773424891582290784922469718743564949203934307571396508549176429011704681578390237266393214858506594842415315557693510448294938302755953560437419651715440906085359501773732485357561918987189130954148961664557769459840700563147517151045228187302752900022047717556524818150257206601618474861718316527940143947962067337572203098104358823914588563002953532888958941522116728427678709737053802905590187127734140307584084419041705246891754903848035812543636675277432360986757068789326488865847602962521595900100907061777284777157089485883322804802484368951188729245096303942080672203426637259790923334270697333278121090537364572741738074745434572188257290729064094739060295693477078784086711505456760933094468052798388158070193723368453494198309201201302019310926019718280311590530362936323679098130423381803979504365207027039771644774032081356630101993867295978628210677904807811639597788631206179235395074128284227357294727047289416524719509520685609864831074012601714896584594447005559948483592270380235751286555403484533396707415126727568001485400659656330893878964472534601915173653971842263652184347398882686135470482811402252874468580316373247384791634707421176669441700216664855957085070074138592282841671626186772284620393952193529122222856158791042222849292272845694451937884356848620163751240991457310678083004964950344985925219388936155760358553606208414048853716190590141453015470960412586168625193279113268523192587867183614278285000865733992338020000337344880538112132827163058893981006010203824531807382878024770991751871034168531505942837454058982072372118266711850751296802509182240718273439445424827173105134806836038098389087915213964547337119248801751921204110941106620615264697063445543954867979033407599854421109572069146833011635056727635808506189597114976063388899504764185097631083620130369790034642294161857450129091922111525884040750115645678801784984487144698503703064396997256751030904263087195194670760408013038765242191501089107659660835563118343933322242573790118295112860758454165403914656068626591418853484894003878145328323194938557487678788340476446583872489412961659964009736722838678270488188692690067903183308933580310606199332007242701279335487215816458177556703069394202216376040922578895259484181436023972591179843163353070380771630906816798102795641179313797523918654315275183690397434725553461335842697462651764929289777097297974254629853672944182770111946570068584294858139052603670253037597595778267080283486321293796012439240123287835169726668107173821530385584432424895106105182922434261988197485261918553691558634162186478144217442613916571272527014363069964620329254201714421049198471064827805186641038495466132913850234417588994726883884066557816857132975555469013090936194184132609938232476561201304331885130195647386803178360890734852987316462407346402692132998069585123465476535190984862499279075232170910086264943793224362801778883027023645621568336559574796888955320808212351097308893658773230677115819340032909969200999189467336066380203649579338742334184021472486654342494595584989743287648158267283398393094057945985461772623448028700675293759644909641415395601989665008846699268422900437171638429371433330003726121615043630302651283886799139704787769103840196976992937464606634731078865675511515918662223478225751097118999911580592742194401886836066301779933583804901109155129509476938728936363915105812881020404208630679088609862691242323479123936588822419130852818150474612341216176148633856298185742225658011329304832994965557948681622694278557736758935376766541940958561638770449324712171469264344524315173787501839339410510780729671997766373660818064802497279992440294862190597066632914270111854817746345881591735285778091069606708046782406742844704365801824074902319970890312016654701179389535888129957784801836190333961392467102804597723195680883621824797369110298240070499702627474179045427919065414262250815910953283793388252372016124086232075726945965034300378163587524013124541696111096722189612293922052158542994136746653740880659671555372104514945401898000840233815566746965672877435090459834573487519648997469450188712594970232956903301228802958971962477170464300972758339049633573870878512641370034360226315180125418355459587299699121311530129176730235006307989364882603866214175975008509976046226751954690637079866779498386881546705879751676138510600201821402423613137565720849293205509274388428533275685313474039279030251664352424188225940600840981131350093349065988577825420737705237598256287341470679061184606604903979612232466214115939317477059294958008813100024056309015690248396888808433788283258052269987988766032053266709559379927308444237300104394116494081710494004430086053103959014636733189030008199465074280446816593106748161670176907690100582095959002499771429496450262861601404131589926346662400417138033774542411368779393168954026757831079123762640744244646746087029828127070620969357610122179981194795353252892799584785414189997459827759800861355873710608994835446675187799903886588116581851068324692398025266763809348599554097567753084743551245434160294237642628617901556028726658874872760033717683644197182002808526985333360112573935549302134333944983059845077056762104084653558706594374200179658544809297577935375926804014267261452964978321326535602948909424030009012379003468815552067598082463540799573260932072282564347566273095213186586725152401751709263853690847798427205037793631549839695826886321945102642481862410542647416320419679551500159551117762882039013191577964506058870727159928464002283938810455534421374138292138773827303021868202634545145743084318099720511673361522694379038964512412745897943205940797594834196114144093743881720638561975627718085406477313563306958318355473902732637052076557294748184384645329855777955053283860546437741853900872473123657337694026016121849012725822769984141544691818546884199379473204860466027570814552917817222818279616782999270651601095879818458301942754668115367359304216204018409952933526541335530970772986971861361522215265614504235849554576783868958960247212733767686787564901658586203248064569618412857344144649489878614107313193304291456651808442611243982992388711241282267687335301169593064843395511825566538101388499560809261082763087687997956118305793987922514658194607953394126031024456360452847648411867228369533306449158972852612154041997420140916871382144528449730146467843021093334758737933774382655181330578939812507186675049061488811736487771875464848713173502568195989795615902138160001789729518617532226411409574920618192655780479969624683100124236785360704066753396272076119682734030461862324147114588735317302725985699442726983350371514237422458980646222305131754712075271421181015143498081339710921506257938330322089073842895564950196502506471043684595417517509991344919377424169303846190099669060209267534087353045606362623705664577759839022867821882548732990618400862488926896354400108629376904769527870417658748845734149730130196186649576033308236974017414100177562070816892567296427622169883259370566369114359927053707541220121006580934651783728519765794041530162268864841233275755816555769573356687560076229583573614658071683441005097249798482949231493073786483510175561585326694904529041066352324760083101977119187774947953844530116604552924327914397330010542700249616272058492729499137830695268607446454330224074625684229270590971842301073692466496240997067762558583082917386597294158834057088166435365206727424994712932926667007284990168235343837585691147359114823181980740749584945658380989270853691250219085659073163985187353595617604299441831348335507593687174255023148616421014152081062549226172169672749250324337571041198583145075152780135081738320277687342631309322232360730271856537272260341364527806838204719057437340052796031681458683906832407764192888686341322520944692317291640058123135999721482572205798377843614647023244501172755086357655620663325703231305079883451052677137477925367067492556077770118788768376141393836315595452070567557006649569629709018678064317723502857100990159613248155874778212308146212214752748858937744585922379293543205961282473166381095432555203023627051792309191900195151771179728244788826558116705012992975693109457433549921768848788757716498854235910538239029524773626105455776124539551302613341903457494210996587869119212291019917924393276882989855938924692068937400585144761130100307037096199894928676790756855279927268428667250557705724184543207842453080672455641285586865112608104995797090801036735459374069422032150453979976274294338688553262462464768945777981174522733059581135974102229302188942392946316771023385820892826074058769649901664058770071685971311797759876470493621618954101926295422971527677006028662382863233689795135681512959251126735932429699728183164952026907014312990055502996422293181154550330721888975143216750865013295633239790873831660823066734644117128259794656016675033423824537540810019939190047359324279800283424121658929067895026761921255347652807973704297117219096770068188798100351503743716364039952397849074081963190348356860029212335960091625354955193387991346960576923254357221163380909830170491848638707327862345799423530045226371819256980860360941088043009743372090550225238186654584234342441987050733642851723602189489781661804505695698823695624071185149296140617855369795681298846411783759546283393062974579084378174188490543076981095224427920875111265337008690515779379752252056401887069879179388113666341689849996807200766073001705093599183348417437367223159430868571858224650933584225112841690724345013618556049468812187856004120431073225035964502459773398797127120150922242426866947288736428859255218384585523737076107845732533619940647318197442843196067860018190868240945593651370096248416652036690112704583707382493030460237149926372634095610836658227484838480648120300793581183908813648645477241671568433010057745800733323581739922998738586444234648138054794725965107636627391139373029089077040392749730589201932547699143861742984244339051437255549716602386407063849006879343108664977693756783769350224050942325479010353194958731540193611355633238771577029102738086379508526242881115732389723161313191941005850902783770489348090071399022255887327032870969267213966970613983462415751373647846706618743995883165056842521478772742398302030450936008632927053791257493563877754474411442505029044122485742662467441411367065669344327063788763548014805763866920827001724365236386920727593162201848724795751783346042170785914495232147476035620337384871700303648328749318554473332051669991752474039185817073012607421183422921244510771520640257968802589864682584793701106727997606337847254737687595414149979645813019078266250973983057183544400690624283555818922854065007981243333532607855354618101897086444611568710508534970375830727626616318533289641719162587220166820926586965663074640691435778886058783114863509158841110334563821007311407626427306762201574824978843110575745217956566579279248265073979237332205603555011412927827677910859305791113550326500492109850325332371900373965675587462364679194154251222692269220704944993029320338193721916585346261511993874544472263648585924066334308262808612034618840511237359952225820978021828856522339626573521706124511744740323024892991179007107738136370137405203356677580301991296577767909671055858533709611922352532813649281198272204849446997200377228411472100486073713034348309313160724509384196139756687112929081397404143564991985851648648875582813639901160413501186644109444036076647539636648619278103733125541996399893113705033947700339153887460129199721188782107694622709246883689434284911910504389935577500550752185589489644214779559474598665587068298738008194036519695019246414963754196770546398906602443476187906211941308619801982722940336968372947244829931229513022134388519467608797388322980353966656013892240936194328207966434091419647791195942134436481237233612641843844650003631806922613180752748022149863290026993529461307762479704865882781652156532934590409340325222052243278650735612952604232403290275994265799583750976162868983688108193213900934178684687226045691699418459305535781309087485883323106130484973416343777644598969850682430574647673638943486767665865124569257675813297721939205301435493720373644143920012619358731343407084961273129787835842074615896860159675159916310254699772241232631638241873972655947436402117829394985356210903997337438434409282298019886206602626745388596695594105187475106930864532063189033290260945924358660625623923779094206650620762599057310164285222815300695931783385436868421395233582869663680679005495089068065311890954853432519292217965976364184939026431627899503690346683126434334081824264684803851692501871025472526615447426756819991329181415086155540859394456332036417917116372955634599572426263274541698783736335887769886317150416862934312270558767988566921872163463119756837412568117778605931764876882397766593674864646017435891094053272555402796096806145553526284152738281527624387130844738099126877791959705206972271706708111415252659358658678457486797394250102836930419430574100887164720852769404259065151638276106736455276875253434131622881364832470799788392170446119458961694388236200640288173126235728184525777679377397405810825278292309571476213675780703744102196248202549487715579421604223268959840219542560781736127403422632145373658902436037288573722825398938848065646196559074239772463881491315761658825463188556643617853736312264980143731561011022445202868376160231082845028530586028780462935284972021786439704651152913782734501478696185705401822732234665404358996216184302096268260847702417432233809242902189983258689123367791140380478940933446620505863932742719677833755803102792050631894670068838063490669803769235897523650626188301992701195441015779744414293209051299453433884951143963661681306584381638657264190150677691979939403867460947944187729384538707632324200871475918674719095788828707320018602019840534725502255443729462514194229846116952788129331177033668474270707959438077314993295735899610866133495873385841195208355542978850052167246894838996866749009600205608128885404590955506346682160412610692142716350868299273536678612983228085110839743608918815025505297079877111340610315202925401234846988820850704420757013700193163740456098564850725499056524744255655932463414752826246887224502283146965843733459086843924003493767941800504298412793628641234751282966882883570801819993989831362936394313030814042667000205016764740298174548817223101608216786552691716288189619967996353454990808574983567376041768806773796358890782373969701267666069196058972570519287425157305535431616538135753725106842822417662292358176928383759007510883709941775277251098230393997393240020784414656122998113346961461265498205656942792605137761819006667239799462720863753673855874547435333240635479795383661691228023125120291544577028683710156924912529489033018743418514453441976728090773875560588646816616591875996052973536986530353149171094842461997941776411525351671994473044814864783459052499120753776682142974604477302353939847188467686866753336537943502235246942811967293662679144736802985225728892669649832986321900350093385237855100252893739754897466490117274512475897261125727330893334686969381908998002173952307930418076993811583720057025721215568211732758999704788656680185401044525856274044350037152194606501461399889901068441893359443802372485288684793367224779260918006947660429470645394191746361042911683516656594782406299565341308213110855353933045774635779306109308703280684356294312870870080765623367927449745989136873121597933259056330567922895730782427855704582675106039378916345447080901685794948737009296332171849178737666602208948325454322240095757777507197482397754428536062033531756317102298903148990022932415245124232348719775292262654934378837958085716866418665773497561282612949136927651975745263636207330523653085434855492021116008300910039960750761412711658893374175811432811039608124666051671251653596505912953582044235794562027864890196647704051150621204757050834869314803732256939257584265732604410132809402006325064294562853963052033485913037445238360959536343751460957388213088567340711177994363371100461417215735032797332796794908871904468141040590915202621669706748677193689027687704983741540874286567191484363530125949044633016940445809816563375842561565522236607456270723506172953337372846928996060734510492761921519008884315063952019933806583301927052215298721071291204857856637964934258530530798041547138790374912979089744674770426944827466831554245795306097645853962129836680328463695012032690059228420262470490855685350880205624444188758564796199416980837381163838608455780218199705173058421218856060709451304986585962578810423176014998875981019070509466383753132117457611971107615383296631451465444123253027930330026647199765673899975353601144245277097132625644308994023441033111034790384951567856706106041436103376202123108627675031461782060625547675892699079506599436964993830750100225952199821923771467940594105674796940615340753812260922604234581016974065540069098490842620797251055426109916925283934342356437113624537795001062285767725731753000858162728792621182390967423919352195871861895827056223847011106548736514921020704679463298742842219194150817236508223543254463825524246057212599070074432558326858628591861156155672265163105533488079390675042728013193845009541768131415216948859702233754454141428537334990508065919695659581285329134489836114503026888600547620823427021706631971011770756035516964652177666474505540606488820514328434316864502373052556887409725331348624107364507369980812856478559878447402674954972287959400095644738560283859347923750826374519105463552897713968357828856142103680181957908214523328994017575782073541701125588924251293570267127090283805928260561122955653627298693633981311856513945918967732115183055288338109829140285950720183153667136680827827817823632278258937173939621110455894722115929500278925801269219862406611994978399992748692986369348582208701507666685699915569169104589645226666827604078885317753050359377486995364221332698936984661147719281005557921330723563592335102245326232167795523136679653786124434229516012121748670611589392481982686095827711130963442235702290332266251315371427267213599085725810879695321865225560636186969812107090887454126594240550343850579407510333729275424450990402233000023148101132922913817352132354462262489267351377989431216473916050902145893846216220719547871107928500154710158891030465310409750500878394074384407726861902567364025547542627653245543594723209540930900498183830822536590341063895113207113590157923804956414369846409440694593549855202161816424837131233821402021132532089910614513019310391710114577999106329822298196869999990383246384312189814482295355438867957856086939822526140988142609929908393564893284935074695542122385716395063895307995272576372918488994515975558782830423269550675067144891554599309099949366645118039703874200951637919130442031245189201823811558670414478721760534834244882664382418061553876197183760447009322551006704783297548555235182530245911931682307397788657530035307340137908035521018299614061327382962783835196842276075858491573591771752273192906335624947032098871227783816738859140230857966101438616220542880707094640301452818728549945882024806337066393894002498110546804867444989939517008388112964395796967782422334962426502978148116478772116672106125751334822418835575467623935694652731020040112559616523781681206452503614185602062047436530621067447549448080093143267489131062865789019943821134320870833490946108604919492163844290742590566010678556457575216473508063839210728163757164298950181348370263043032804172191781351777073152720692559802527910153356695876984449524714061689651274604166991476950870411202178739483432664253300985075052604401972584524475776293728805844619116333290713501006246959229162647633669298683007983033795224265034561879695361621849381431681399571213305591449496103914036176356588631383824774613312449796051083239294387233039398283206273723745077304561582956077239149625679382870631251592288677982510298095258980764720463099508422679533979898034586020890384079859256238828696937392701425475434068655608167222060717088392858943563415042706394559234541154017836704957966830414733125000828847434364183254946269378358825642713995492927205647422708156466034821195445268468159947207555902628380488135809115505072706275126315884671420305720198651077926408259396392819965427644981803770102585132126306753018137490639240357191191318121380996956160150112602101827682138417591339408687765867249176175676454884332748408617784420807267039433872900506969862057697139997194633036274526056949235555414174636949053885032382918349388459990254393526945410287016225283653818704110331813495288104877457566858781841526444511814158478476484765170092044393778076530020727495240770605992254509446862518084735711481013920598785505863162922410141987063063209801029791662484836583805677343894886504584011074119293891637844527825735260729627838411673748396268679414921940998013465749258108513935387223568490974953046949248809657915369021936288449293455987162786437038189759248836310436202020717290855732329276990457313152050958692034272794867125952222915782791964510702636177959289350957563686150377999023637161252769381485360131804963307829824562204893973347269506802827689568004973025015352736635747258036409988018441606759174129770439236949555401877058661883016743619672317714684193076694509946546559500186134291080246092999724735303722094920400055886669196699791587762716640449959685275967944284371396126984928350718951039760574221338917942528923256653887774008389570312814559435665608015176489537473157319247875582063400742479113128709919129632941542405982055877410257405555385086721715320369338372209569100045115895698853504001259573786800263501647544743300102275804987609907885672222179023454133418185200422460514808211604799700800465639944595420655114665513075236501169296383777218995822180105698660099992676799449468413220135992896347029012378718993468683792762444531038411461143511703725591161589800573949420707654092916256382277575348657124292358178294066086563650121220372817161802161941195689192158084252574057030275250425743202875457424989638041696720638746266387317247487962475966077062812650346507558929365675935529881944989712383968850232931790761094659002631568484720108836338244503804240698664486313073412838463371593112760215434623245059931640954452022859130852346171368304694880172694905227043889067658372207260450890748030527251620616246387264885773688674412278277586474817609719344971689136181015762187087341986307450852121612243756423898808273549536195176606413051598413715936109047385398490238068389285611440770368346817147877358164281972452716323072465438627949583111493530173925762848789711345948444282327358622768430780636510079895234370722538288430389754917484930736261553839748202989088494297369740542183299689822441526172138739484445476607287832779644444062092448588999260759881134819543057353944263253146124945851114398239525021319977982042869322710755812841088522011961594732712653939655514738890301996767642766413430937909945518340518464185383761957065868701930726047947496086994235545180952211389052617169106335132476606245306345096826005289629921150512480465746749593214416712385518179587930230534338612051647418633014440104204080308399188487151026502898062573272475623645469996665303443005252023148252106077665491667653185986423357576782234305405971620353796716371179657863483446892582380678499933000463939153899189707550745626809256572335904302919202750563035162515868539054720166259112930453758095688232133646582971568771893126511906587499285194996493499927052621637128134299047667742627931197185120576200957345216752100053354014002295396949175485635508154385043863881168316099420974703227740525817285314196831446981634183729448988854226016653702541584024950301746167594270929438881250932801511773863967496346399479640501436243287894662795625300773158246882625371775150571113669081886862437045263179573959023236746609873815698694964526259938590752518605768638250683387949870549678461461387505086015658561607729881422490536603359529923256453190276503970179767123253335188643966886977710844999718011160439269233384976311860109228529878472189880437443896094901549565148354014573731627507527051278034477982685282097902673093330224342361336374024235378812155679912443065476535289692365189599990997866807789846014166196640489906584071428000908233078480346336989430977684371489129966999575149334128175264870240576684961573517752204050574329988759742827705232300487320227036433313889986374705911367725688320975643891053936757348771206945526187251422977492681973754860046886692299377104479984336424188375475729957274234325034515931273064291155492495612502321911039181251675157566468849631847120635026672361935705787337013179233851640837522800135228338071658616501020533859398425466278993822275122199332691607238097069830962228262366644914925247939619849421836389481078076479545974611714036361501824339084171671743329919305733009767199098108514780860328175104485371248817106136198394277595033513269188994673432854560797778384510825382057414881900151953180529420940495164635649562163964793712592900538503174582293587988487065659117692240587718070244330025354176381317961720975944324016971000808703440692622266229964306716214001698442198652097247200166820796613851497648572927925326253348600746156234839639341373690616694448667649315971440685721475037578256746197184787782452154799997787138068928120337290715811276085835858159893422033456662203410221588386796672109483684601924016629361997764004272197985835124916522094812712333741086615120904749330243811288510191658834405915724350133485812719232043682353770715791307142556850405731345691833095939594862368659481979236665808278377014761144679252432353235113821341923923354095920602953181492407820705287450658876274897589066960688795918696107490928057340653836611719931520961140780113031587239359816824113856560974259517555595255233557596364349316185157664469352632257658953749382864385934898656465938773848628558951898737472018450990923837420417376431403451033350231512930266860200823855920486806620298606211936026927566826814997674655845400474900338602197586812692013922509981558425306220664254877133280444588687992527327875303482771835032530422104107157799036440712153235959182024626322233059359414274131586202819722095430372183510291138250063424243804951838575039417825590366240497073322616977382671087851175504755686048988455264680356007095252073012393189319664275797013560892643883221567054045665175852569744966693559596713985507826243850995651167764827946842278750377777157027854774123404433414195207150533118655869593524774041861841265650747216287921719890721903766562406339642974460964695389876347751339666622202361633556697849743048066497610518909239696965577279933012843194334994023019428867917542406614269197926737473060942951880430588147321953538746760892384553405584587896818926298954455452007570383321557296603602945857247809282610600152178658830225562193660182993070384945049517932485449855131605978443824389814348675356942778813191559335722265504622025817084792491043331707126277795662054576578535913203659473849750198084807821071914053267223868463370910689606831233346156933693367140199043950026289039189498785641182624345318745214824289843131379465918211222019551561034242355542653537778527597865837364753797656552472668379215747815819546295816972433754639502709331420843376921655821124076995700442968466816086952482289101943657751888750766714550192958662312039888177202513571204506423921511903703069990486435436406637219408635417592590439118898355433706575839213220919494900733948251466631721921688150373325322825392675795841053343455986111470355079830087052111426468174082209968148347333862009982330781124798429697856581956984994056078017496783164993430469645789437704772430594606345719184776932870752612074623832867452397003862690380156875414851835320241784308901758963680715068061122967691887319043518355784522618568426343633286143842638654871758107864383032266046810376827037219306000729282966454422342658822602482721604686520524764548230264314210608422516749168199562082549715540880505367534423464483890820108309352343968305283161499014512715686047500824097252653325977862753184476867101503864935865574428309647128353010029841489770208837223732988240570730558034818468133390909309816208408674739526397970511831109406306716051680617827405394401014440859616094281644219896440276280787248586931787790824166671530302533039115649341267849530714018370586004289618369587983837722137010295345729155741388001845645779178251393939814079705815585516382506992921848075215850914903409093700927106031443810772369323522497626923645983048105410155950325461849753644603111929731993959104540513308264206319867493381766985922565902445929331039251323144095697631358126735685326524550950044331597224949493640055952444538098213679014495130895351568900656035050552379585845647944860798584540193107764142475125241153765532759512002355135449571660615412441394123397218995691111111230907307283229430422642166783633445742510453119551238426047242619860076367928412831864742197319249747215645509988946815818762660271197099132227529254822589584158917969058005813157963311798830352668357853537078434705929040269595641354532269229755223086373701786968097675029936541981738266834066112825553677286005985883886116804355163538026430422503381468026967873252342682780236982706469210117529351460953109674549567138244289499975984867419240053487741523790690849215232141308777286087830218469457729350076313344381512629859122033379424756895069989584694165879772685678513203610250475374851162111892105671160310375815701621180929084477596997944571214095753102131921641954495708525997719553537848873896522337741050120113798397347622357148834491463339601713925612055716993358736238863462100482705138444071857807842126944762256067269471929898049836902711764400690615648445571880354282547368548537521525092333970023716108346211605970603109215979343757882288036969354925491451081960079690981801487808867668190787602734537966226315307812974988080362828604158451585700526249401574312783477631609744385667263286287310361652609707682070179354972125352753164678819057007516956284312286650057961058594451705965443237936924670800065681142911083248853141982394086080583750177423232837321305205983563862241501042505526956902998142941745397873184780622225603225393626051394542769544720884815817861202765573207144597647913523703305610037599176499950211391758092778174155422923455208054588520287557821667876580873186343355884992026424633649868901517749714630032517994188773924861660724934583021090137712046788144236727302926715895266766133703223093823869419488661477378660747391074939986532306866984475942445016548975590099045183489362188932043575690832044673875626034472839802719167029757586533270818532479765847272034133477740149988164940269092922465496182137201007932261718608943752213194311952067738633411870780326442753081251752664397101840419419103363094587385754849534880089151326720977493538129393936889171829602875923151136818432636280888388515080011701991101841480514768066882660469295815888183445066595411589981462168287894058071364212844780577454058450560098842723166175776654262050016062583926458254449827153069680112514427753801374099040694097368419777781126672443632220625192730130420288531822497785902444192934691651927011047214101149308697343433454003814121517298934628089090787989595886280091846687003800104705815512853416320945933647419415542995871715327487968164531146984145098561730993870680582511424507663481757928580767127700908624721438355900871057616820105612766794218764961231932488864700955798809838416946790218913475599523921043280340987070806762427960541602717713825561254891779387598084338300667733170964135403584387390539193117269827147842829706930332031515689788401099206926719367900125743531705024530872585266262886899765789983916078723070802790698425528287486630971882527475591340267644769330173262056611474843806475015121150450553337017936821272972131010721366813688147082189663649565916595453246562281102998814648174827490233451447602577483779829693398515159348613089950440391080126718239433482954602207439477998124879284844546577059292514279300327140940994332833423710025733247920446976945792794779312608278045655012492530530751286337983959364344353448960582248823710759474481970692584226664380936354797912634870027456306457276722545748398031734237294242166745702810289880603224129512336867179596214383883387577599151792072316889691632337914693209263903224065164936873937319051158855840114660230963566462801077877063890903572995651711559560420702398415928069827251629016867813462241982855943704402434779333102545748660415321667423174394397527978975223942480720776439677329619641387980098967474041048328022610273207054403234145808849097196188786319097465527724431086530451731724532854696659952596055159054990848732733852112097006366472289531078412719530236254187109498105122673796855865539638158869879173089649463805200311864011712297016882410804064777689499801098196839792520564673660383781405738719308195988358675153039988430741941160064242834297596600401535228348143942555599940639811952188333671168303677046326131084064858575462457682174730039618021909384457269268245226999925048220363047800845280298684130584083845821262626602272260493444817204279867748579650159922032081397554566998873922502011837883414517791516088669842657254432875579531251744895153134535089916496747424544204692641682779075620544320613257174611860716593791990630924234006243946099122456411060053050650961213919755724393615493945246419383181663293978189694579699579911528442591648462359282721145426918138385793308886326262191986943175401219631087886219576880234256263582319149608104968309806379465168637174757298928718505886416656878391657473520783273437260650040327407313050085405834176545946409278945414912619787047369446983532824900728404483568252061676572133344257247773140423570038794675865771650328470168397166607851635115119526339467114805118916730844680146190328816539011900988274122780209174778598790272162437246444771270000328864787000935179881811168380180337359956195173022364953117389658725687820168296310021063659059047721526390915264076111507089010355590816981994660096312892298505503548202674409673864273650716900405032754009855798605753045114339161061618360451394195084266040303567808747697475077550163283700570385257427867128888276019209693193293847263870091895676741202338958705260993622029464862480270594988729695704355980051057600847836038087824158280152907619100998424460594583554822327533378149783377242384888191694932221653543397866240053082519933959140875655735029204032504236942097053290084257353937826416899511679153249675666429305972940478327188360951672367260127689853725814850923360376628825167816680328400277215214805402496713731894265116674416926200825291050445432602179315779485422359834115945096704313001634650677805486103665859220551696415920623117772392604050408318320282553410005038244511174011411833186717290925021316399968520848498050860956675120884381273285626661137568235956299223881763336692115522887591352982110070370909656646907977871982742509373080871958204905018653523439166349782728847747333423064774882230948102386493820348455503109197176721958592679405626791817755635069004492051078430868855603900845424923289013763519256231228398705991148480347708901278583299245756671362252253739714537915481846878677495416243160669172702499655352349080193575714912306253492338623245279293912066639145641521049889553259165714316380995609877921547605854366527755112350681313562053656198107141938200963471913396218676108659076198117694677118651502843493175428712638308905742724129156044095933332837279984538089017370090353539531553013432490027809578017793120395436598031223567690058024502148686352954271823992325824386023827893587089275061801007745307333365964330386582402142372687290781357459324437167037826135361537212640050083189361848147135412935054889702668413905363282318662271805113104916105161430731525578423113018521782580591526784755925204873085923144446402674159651861668801213867010467403980731872444327372277204990080392291004770527062475974320138255565177927821533356837352087480181999581219023015511791102413667527505169751820980451155232193210849333136630122274780414146922069050558407533833582241146629815204595492580573391180477908717479913465647912294097053126209881782219530328365810193505258990286103642933183177078444052432973145577252848768738766759995969319519084852014507391593494332181387558966463242117676483555482062566183942318419734479661055781513560292576957261798803041228204605258241065439864042877349843561390163845275105695225301265887636973788810276896437769059430211088091039452587601111266439801243250259290622570100465410368965999444377355943497832811999314918796083705117042396984547678330339526665950867485540432675858522896228892860602788615260440779866699842530197511849964341047923288709172410432371107065318661023589314786960831385179948421166156920920362401752865531187391154354059749697105913541154882128871201607755126315578518802500686889736925809729867203398495102491165673362937958044911925383417697285972879665919764395630348078716687726952915954390048794236760262784241367649469927249972877805516841001573716629557975897439819886383445175238353831719305408154632313000778899390871136604288670611719146461034680461343092783780033949386090237749302705842609414455649759093221698342434103333148151049884641010860117516585247321960343813228816965458350042134231818335795446325962273057161363826618470866071556061228781225973938683298618468592290200604183353091409016875112165341725814934963111136483660717573770755405866460079145238502969616225274617221444166012186089541280296673527025040828938792428631628839134584700006386501560555133604355418055415877142201583495455015469744890436670431604678284079177290976512776370510678882713491189902265809596244088405236450911869470655656768811571133261953997441494965839629998685706286708600853041871286248826854278156133810241616853760425344077463467309635888396041709882037507484504404741138207600093589370046258109092005690028779423867743944229029088335128789363499833532795334478891173779934664600024445822198805000395009703522807813548907172041061821780205170724351560268779490084465109164883560283133190873032788760425395964894909882116407755352332439533544575679336138610820249407211969146858760270942974508354128787635414224676566563350229085772117128790786143940277197372885259975931901484317247484171419651070108185940104063192443625019453777396579143029299050976143735590852458316149510793301360956655610808629598622366504296107442328854445009062454110680261365218372107928703980004192770728413273076546503013611921549094837698416001185688767593048085065878852656843751502585367549830395584820482711543210483472457892634717634706178223665675663930557078377248477993867203920761452588235369307661265322764525460954575796831202459355341514474097111339737243285455116306366615392606192690340030270533003942568150939689288122654676838245497555905649093774283726963576905277644848644100070316560548412859163237392147106988281850334560698203630992417951714210100015283078055442770359296085493451054834380651167075924147858973656127230945451571955534260742813796264466323877148473283067161480231994419908111756318919305480107812745278550284467367699198324665488451299505823254408262384380501837670405472976138778492592899919134057865954785609396441915536207954848063480462279085924488408697826266571458078992547488937394318029781307016805948635929091761789270307849967121942532076932209712114229894958450502504246818139610782710490825927464356762827524227007841973912695809490184014712281471239237807565277726039996949178233029327701737581236405704730696480312325781356034856089732554491125046506372565223868463859088526866960910421606953543725767313158948846844646909029340250405370061555223773635607996492321352458187014989370780660492770008620071352510499843997839360512923798217617113826440582120102986757607546711225099826338039335625370769498030774115088703490999525542958813355248221369057317273896892503004100321507474640033988989801385065452812252238395024971172856417140908449480662492882265988157891903226182845170840750652682738429416803259258034864487790583173559827558419849196187167002513335959531019674938088528009943254688753863538407315219694240438140068377638449989080146125839665815657154134339868124746715127978465376723846484101375934914168054399117989662760804316977944797094705328973427865720441179867908736314789992399871834805615130956800735050121878683372872271094857407156321711496563887088346147317446781855014935323801657665837041772324758772832369665509846854765292416555152658025271579114333145917675824627231608077854163993110460634095975206276366115820014303959971472007904401920550959812713667496684468428049546200027921720070012377454800926564639674334891282721817063803390108752768623125849670915325161679505059745592479046699315149781280081917432314063229083563595304749477617650348776395960784116543218472810892939867685320930868332264736493770835665033821746210001351392911313458838452489748245495853754291370869967890686442609649965110379723829280105705370766375067532657030227736965383863647564578822719609989737040684761075831068781255355475028272262241951923261539509669994535835977595029053467265350620686105872920348827769103759357074803970327380346261168796003297416768053474753257921479056988971628517422973361648637686772554337403192330943054512600380700738622552538022650713480756818820774334632336095331943244896078881207535439666439791594798344863175522314890690405252267458546769367792501959241875118287841157634939572975045436513078033358534435865635436996189973685298422608770746905366064326202243914199068061743167652698081479301905085020842088729555564527123653247839977156340890903820371141062788402923112516500033142113607487359228201685011177001406839597273766927386688882669956877518671115019710412564070222836203354702888130005897554063222660500635381030125596286281466768263991725127071051625174303506996723410795781159773764923746004647792856112409217796885317226517196171447970674571014982242585576392836371614792743992283645379520204421508395921679687476097693299507515337354408818172716031580329350853342146554109517587804384615760136660284212280920112736839778274744306087180732687876892466381904045160958712577299165444201382727976116842014715168382449102938141679992861843574481141574226809402409740867528516577026779333177208554765842244337619596860871522855410260848813571960342280802098863312416955835709863174812360709088836636712730359903732218150174092834005652098392605547004306715515916973855466902795636058184405353064296693831055462203295495207003082424175436469359696142472852070155040910111486271474268469381737246897656084981366128029889623673768431148263569262751398468378709849971578832707287292379756914771171671464705665136766768714341928762036762267649513849407238456446481737658282022836220867496382803829959643644330925103119190736529267995635886892412200828794590254528569645068553215458083691954004055131753160196255808613029680966570011625470947044612467356615384237499159922969923508912098817485552853398077165530415870716227524895455445814069228840173966238302890088351431604662855536298024381357548073395473520109068356580320222247160069981782686297334178164370689033532922784543046846728630448228902988610746325774751272758381767025018758201317691103934258615562095615273323531135180601879337737212843671466134026525385822125105646143522838410893703658160102719846392070467009724465084486875496273528638656558590621958789911102478614022583051908910118398613094532602682122962327770662392710803706094097982688780722671760153127866497476079092698113287774577281721971201406931889321767198888721329026793676854670499499520412082527783607345147725353778908418298792696476280963911929620063614768090372196579894358783210625475989483441568065853698251745302729459616380273156392082711075602255817764692825996020845845961278298156554101850205268679956841234594887036133836614195667343871768033693862619685168595478520945981141589614770018771094432961604976254850895465221767936977903320013075036290144014413350910439164855595755363435458269305977337314101886393845929672058427293472637706860996872062141975107327454050745426971393151703679329491248748135308945506308435136746949817220776441349312864876688376577347876231239745264529557179112690501368706039160703774925250666728868309269420124654232391609335307157031156055853332713358510545997503261150885774669527391479614771207679986020385162743858128282159745192607886074573926916658913168011443600046639822273814673210186504619260248787183609081073611433346722560129446648791709471860688674590155593925569926811930876233338329772481956261609925441973145358010488908838772590935573131857985106705350924342280438124345011732926398602527816676981420403946795448889342171717742677226679072037472638639831445356208643684389225774709483869898571648875648704274790525058433502562027974738675641478799023117958527887272598033214907930275383834821245666813683455098279520604647514478932401113752617764557775402268861469458470652447240811115771608380580441424303548857347520372752147735635106237667084171941792556472724555699702945468028643490493840999889570282922970011401805838129390032635894330572747985974617682648753264361390337030951194566055386565930313787429259671974021301481594718770487605188188163069964295867191040810806113765634619273871799408825443807326873721051549339168277576013113058120699745998843099566838653125385520440866004188967119956868583534909374627474512955364021018575547369501297524677611293495162184899103359459272587013817377379382965056677279903523648498644424490829239148201975069828701470372219692151735420576180721162942770288815564224465315345186542989044641221172791977936234784448035630364828431253175366826856367163400338555199108028616680750283778811207252489035455074480356894718391034769079388856919696284425259022116214711064678604153089814878316559485348808150143631764263828646335266631685995668231903374784097732811226513012865574387755353662041430964974805413758636982278053468813457316882263696910014309039110748823550758635685277546849181452775700558958895403066597694574039412848164148834674718780908621953029882581799786742836052712059006511301640782890033674235222060172989223400286132739115391233769685108210431111785010496803515481462028873647384633068926778008022002311772638824076936061073624443739705070186221303002763014820689912445120035759356180061786169292070894919609649426167674277944162128789947925789785806984119256834620624488117351728284848922182154586426458159972006950196058826872389162969273410315649653798447269818200354118562561647009736948468136705821261932109072368210940247072956561948386410882498817363931754110674517737768198014645869060980136565452286080856136131359244445654681553046890969536775598726820897824591268866724986531574045374635802627970334957601141327440061759782263338801956152247135972845829651678147842804917922009029160832859296420332556934121056645774181869981723345430244692256805845470264615215069706396434939492071284947907290188911401270601569097015596555990834894600219149891620451621483565663445352617662163245793269020866155132351551203021681398499269485403654757263460055851394002250777584925702945957044383797503494758731849662307397912709049137817616561878591917091887668104861526502684711007762102033159205265205978831237903821876704067490045667324485457925333944202656770684042541654935719565275966748337954099604391688699881804227125526188568022838555252472858018060624003506591854019836335027721566374767121314371621170900392427568540483851091024295305834215281289973383207970803023407026698558131046242340843051969115785003763441178059744499049837563902678442019433061746731422419369378882177491167822668604286459881187102091358786468683663261332823496285280508290126954950919908423049483279962328875292494911008753426848001353736219142460758186901023615009755478323493154950945759924957349462015948812805163737123470946910642001486217431136245889853455024320949492395245804597217976541222561651434125531925185378789258727196895686460385533338776703261774916094003038934239315917205114946478219390724213280778710934146642960177337209958748971209194585679516004573504279099562117567134214784857383600315368576026571186933592552364143173276245411463591913758308694553274118898272522697554973060341521823349862698838085294667976833861519422175226697177746770341117666945236563275888663893967588819938147092893890712381610970677273817158411172009362671365036954075193154100982267103007827156352901740610399872101512992770286146708347725954005042512821939793602681490434111467533534104526074989037087388438474357199792064404810012504996584112506708187612480884139170324844006218125811301414355131147200361299951726682999560794881333469140499345483418150474081468001681242387074193761956395443169069864125525148629958936623071432045930629624023445698772152802562606535761113659077944054523772311024521053181732238972275122850560326348126501537024400162578612772861673009501673983747639641424123580077445963846684958302562841940514100279865726321295646183908157525149371845648087643318061357972347379473932820224788370948052262397327603725003859179927335578074816495511340857533395218624598144848981093565484214516146658816063793242870915729614635310231218850383110581918853129119784723693420157554072074134813972071854624902250521571428302557683995842762658952084163364335229846099215212455707198178199559684533047214709334939336482018592495836411759203568578377098556160768529181972683220568089959490153253605522575207986733570310475302997350262042538514075080744093213029243902443290064176548785425522858124840241981253624967210619596234958474221504491758618232101035152323104328739794827169346669189112886852934606078570582978905431883042726773824236554287288461335844651917130681706763139196977154935034011820582546570783071199732533010030345302069016806825344241665001619421851934451325272546010492570465013017816481924170290609903767383120271848545437658481117315372743981329570988118349629624767109854111108982644246623859055499960383907056212189212772424338411480931114627851574101234855883553582757095029125464774343835934404360248767855015100780881509125561191181567778653119799454261651704779927676606184434369643954105050502090179840295334144319976072392041486882234490867527525701028591412598968646774595763237397289030702495190790061044776294669813655358165447774096439403395133801998155116716847471692102881030943870801549741470280942099657152914350180271700806661660408021850319930709237658046807651927295702105919822929576215631166709528297250881502792836439607242492229177310138093710920255859500450403782297358417896088591628333643006805396787170017007578331271275832131315764511124814234979676207883317119556599768824308075967037267374091381869270946186782847878918611183297044361987853168309800138769373799875203967351338041537247587300897376795942398053450094957445189929236256988564048670894107756852534676635363659656458470348104200242256802029326603304591259140636568058743918409507849462053333185820086429853343438314046357143508638634562492808731351437732632786890361616174061342186777103469882425044792338430980961054562289514220532875582681630397745166723870183987640409443377106506953341821181685106897215486813113844484178488184557501836605701157341562548008369057476942695569960901408484233921904707484392649564803775476071306357636301683089188087092396000961362150279442211996400140421387674508469895957196645207767372850480461474887372470039890102085789628935373783373599139529984200275697309383232932082700202233774696839251295003379334152193659540764166954408368171932061225791137772883640803743171874147323237373456515794072911881355446942301129403875686569056177238980006167273862348042531367129321904488385107501814301781549786440292902774682630613340346194099487536978719140058487903079349270225508880959236307960236323824945916651389622299553997814590052483507559594215189118803772167350970100906790511789181099058156471160028807398084148760173993886165496518049280859925980725543684246791991542559564908632761951842218075517301791865195928285315508601634104483073465003140750098893468126722895272757541583276409720114667449248795680339056402993385806227994909859348664498592484454947247752153825452634464041785292973571173426105949772752161681933901550792944823250846580395673730726625888829850535981002058692396250099641189598022586995887362299297989216091109704710555557879373993769154096956278192650233646378801174119836373895184725250362922799296416690996378610184252005534829875651788148267660895735658697061819097322287168677286095996664251915716647738130787494876049285786682444730189145678905685975925710108007744659645037097915179349267283323176746016588867022985049511212619336124626773643251949850940308501307073167168086893910026904879152018425590748714545692111225455132148013351710885620081607274546519930505125337797647153864608539489689590544692226598463676674384251118328482675697775754188768233637102165950150965444589839115444176772580182458531314297009383664943454102827625646111555907567367335138459774356467246334134603172131252143788315521836147416297677814354916346015758309446700710636049445894146268328901605793202772619738981887402250555258580269924821626706325472682737616346042258487576883876492836072605802821952564621334768137976796702954109516723856690368113698210064118039347079217882431024037113367568928574074251383690329278098723578285108516274420023115962711152705134525867282694764874348094977491597819845604536827405573612992429540234571724813128703429764096468077775834773956925524931933259838068247059157276531232490830893755296894840745084815886560279589552221171213207384838899070012165070723525865057059979892695049871730002804536580589210186541802959695427704152833025585270029800142922748568384706266916886101738223229633835622365517046915807404672790130990196512539746342687977915536848413580963085766593075150831160189971814972519577232305180985630856292064442804932250133503899765426048700073882041212535484964512786943120956852936337174966725116280693582354245089418143980007385261410914447619975766993748177084935909477115299295202424258274243598464198438237868944616063446987357067040055629193984408203607187945919826839112018713601855996475225108102743950623252223629100113142705843940069114582111128773723436434469924515325363488818793872695539000922535710024261939687522513564748684886680444975951013758962836486529295976552525678038691065473986238083037240567782686890022611756206709404865648322732686939803799808595540847672312919331956623791342448008613166504583856975333892311304940937544484412293330020444210439892195965828579531908113942921850959724856007972802350698745491990570864068333290217480979425694643886223765987911487555965160114227261146363104367291602910558347013403960048400422414227276730480827642047332584755056354293674457424524126495625541123697614767856702199498105991349743489269039669620946277505116248192537811895500592418650526991344545798934028897675059435826319529558531298516224887570862681106856429999321724067339585933934072134436138280257914994521322067175268399042002701240724032612982795032354441471988064080680096089218095776846742309679458569091420351703353106128559390749901555376028547311771104520621443456996735031611317115050467478313353252503674080185942145547629220643462719222483343697924738280209541489913340913268985282898403938804052451449865812741070625344069529382937491335445216809132038418477927163698305300884524885158095645673216773959844943658831764298451880896149337212466004700487152162143311187670648919977535477018338215927587724836072692102343113584033127685547360557939631054409158008066967128170573801426548019468148827989943636304519893124553391027225101535794332426096049733204339347687806415837239987624666791545069976064456697253977009158267823856745194779902585748623756218337152583304185837872285000596484008567712409954880430313449574899001481979200578162082319872719677047334723985122374306033336099667990114653588693450854590422468642801967342328313738702798885004409278645418439016110288421132941421726311132349468810790215080182938961806210851102075280453387829072226979727532463543398434868501767561566178625264669218037846466093820518594556405549293034627229361123014399626369511854864730304518940019603058665671862363949155494386933792820974469781640123147427306849778937798473153992283719927076242422169881868351096356879553391337366805935540212544713016394490713758872236110645633318121063539379967416783182502361861537793289982007184425214021445466783278115846113701446786929925179996843897264712263580136947664624483930241450628855663192344643937862694239878132532366681802755451797052441604873549956504084912103923764570281638308604681675479109169592891378572479340803440738503139986793775244756958793141718823190544394210186108962697292269376052424130622276468379047634390747421660134388663392422580236889828442244355639673222482237621204074544812071143339749172662066831768402050370073758853996118005507517931316106778390464459508002562399113723073776420812934489972087315954820946989855752933952448776460967568660174629788930006254801983838352314114388756437834028601998677441112193123095599476363202244065410498000992693747542153647465509939441517057831429534833975483700966749291592880067993239624946348713701407566977647144650614827228702351401435499298363428492337580277971457731653559885467693568459142139129945759445134445400256338104129906279978490115592967711342247798879930580009262709369892957207941158794907199236762876061154238339514351788760324825798743882236081648815781292314518236973102946977297621764922537876691121041241620167998756669483098889668914330396636602995309541890513221758432046069114701892701110944136913920485352984259951494194098953692210611634787766049299918011604966154180467631480503808780631791980836484628787548765444443543797835951798823726359365805960449958216853715501811435827339615661800331390727490426620586675092850630575445649289021883809416852029442550450583470872052595219766165704828086594701931861125771476037964898293807055396607306746858804213622800687103212972280256556361658474574613603866943997009933669556782358190529236514461917334126107536103361805171064924285641462398166380000892066708329392894763059175825611431673686446978639227396200896567251984951747120358346418454143655649850211899592650252017045060863377476274415042771697311168953699200152417323526839972595391285415163714678018206674745518381927666175004237235883985874017807347603403394455225297006136239673063060895832597296241412928041876566058879940513355473971221777816584782092928067717795037954036838956972296698509997880172997473269822763465303993001152334464616050651354674071802967284363718286479336006241121536717679931218715242348621679213021112755896718105299634532141748204201738094713342190684275294473941929643792011837738262485266178246597274445514959719268608768931729243513004951451812017532597204083479206252429630708628791591475523195292976921768476890373719467369682821296755203100337883400994962130422097663428692753128029129927977868934947847894454575084325514888865699871811963952783619846502645849923027882115000659464894126995811208435036609671908708748393099698257954981037797980276612908928045372182572260145900175699072793324826319945867483979294843304552384558246089519151043083571375329870360300545725976902591533260423052491078599302241936466957882528209773319393447681056119015926800856546493465537503254945404408232526751516862255007340143249181865292485903202533864573147994401916983608159591128085021393829513854976750568049908408452447710470269658231073405427408217073333239796249695916779063542382003108342356359727706672972474041806350973597889899178973999126426341969672604298991243381128383120726745840441615040013002403696331183349494709633746293913537392637216882932944385548370519636087403850932837015010205890877719737111905193065326090501360267830625669635076334174444599857529907859982559208552044425724927483486954018795231232566469330836848976331047554492115669303568931888030130653404280968945966663647048073094172862613942451972328370208459054782796551550590848842727080602780234758101366560187412905403433938158196269094689248367257131665187195673898382903544259148046902819067210574521366689637508728387639732243789204370007380414050986738440970111147100930049809260073375133590482441133874869691140519844906332578936571546172207400752683926763245525150470592334284963737515387832846101801006911844483947215885930488763503922920810787843394981024486661528175948934653045224584281463996362194104005318014407152610145154357568123013368622710710450607179224747341345132986325841514809252326175486858549030289431019297689958714028835286313958275038712119687149850940211384612467920106834326847455405973462544921286743694744311820382397399710582291053025095908337401712401485563112497321936536928673708101211676189416422846694896750986712719921850597854878462880698721793996770543328731129945022533064376247944350021630810415216601291873638447820911526820056598951566208559977574885956634938641837549482431840711536914135718699368386136790337328226561415579623093028085775791611555743087932777232718569896728886443505159064107900986572196156111834284242995062392498586410776274200131656438061986881033744830961853697997188862306013930361182019490880311403190076296665785414443398206521450231093494432245569149023767322114445852030733484358199572591725673121589923420319020672270513798954914549708176345859817765120120701110438941434976007702738161313034507573896835713465627798440383841973487472450074255768045705000600570364401190132013908302704513708068638347886021306636739089128445262013908126690490041698022490300831143984933841457588224550028768187198686850449661107848198698458396395674817888968254526593894918843855953298082603189918086489134355704339941668748767597153717344658025921107481376387215359082961024862863653123513228536885922104427205505095793956523696037693500722700225586639382993905043743149478580047707939883990899616624798752196051962172011882187567543856037530232407052451472622924518810113226077240777194677758460656773144644784285017244871446291269647391926121349438183609108595865628404550814895417307226190670938956979002429560998854305442421374604511490864272029937152442821304895710125550974253201223142001604593291280057360776917980698312059566214989579595406912327202689275855159723726060667263810776894472418414256769532602477995694082580687105010139891047210709526064996160870770073400888758655227516003519085133616100432658128524362856119123035299539025868853057096025944432451397233566876622148546656872497991691065583123310100858663739504866493175311238668757273463973863483594992647009612967694033303130564297888083119126975763570076440314756247992199144121543257490881225821310173003533164492209108809533187418456245060779139534426166494299229982593398924001459632880388396337916682078029601854050124711839980288410096633644284315458843936184440005298035333725527857908533373564023275007632204712567832807057379084924185122586512996203587477180500781769975651077478794534030412703929935414423101009333652854250858450296910760377628900741595509723795726490525279936591150779521990827223284721388087189464378779856858734866933266331721543260097200949534932511913682356525973279625074407387886452638405038072682768834337635807525215422712625318970105561388457253439884178212450889676627522969056286538177322473625975223592199671140861777007169787880535964100027335409164664710991709150863939035927851363160458692735973001539369901382671835514520473306446558423477068364211154522098425467199721265287151022255722770048315097173156834983433208151643793589776646373639310385756219832093163458247781705557187936000942859848108588593438626864075906863882790989849029903338291184392380226669667310919540103465997012886259327573295348122243148863439852861518536010309669987429147565035180029111090072790651673768454097465528211145049199217437270075204130744127826740681729114441985772983099156404272053929830742370672764137707663613787447095444738059842404252845231128555230640554730819514907355206106607245531171589999038579901095107096686518250287065775421077108076261275324225359578519014403478130681979395792913076589799480785950899830011304239952256735309009590377201243955355398476958278862218717574861426973718137630443969222642357999414792555952360450697299755600898230486433424462422670298961339868300986794112785751599095206644823656144381785188350535755481095452129785166246800039283181490051090163505544747441311564984643025522596684969414629454920906540464424495847664750239073190108492241770097205949964923779776322987206781543123552503238730034494491431803468932308628116375800191090305550265990482285112277097962104714137908223507552334216667995993889373066808975526064819420439132237364454656086027680475175370863065585960756553896973087302634177736286257444876838355608389432756292563555826975937830586857358606789240078092972453205395152888797593297065719364957852606486838020267443304070991340553311802007231381111683029062522565350306122213715961098015101841770041985958900436956120570239424845535847296438139758119707860849335236509100385535138666404504211956575855672711983862021583333246991022080798983212840296752625553396634249271671807660134439430878008452364934087744274126446817579423571104622999219636233710169019727608471151254816464738476012675585754152228289900965855745122316245297136889946323592069702105830184517488294289504871565134516331990091231662067560177741271284442819862241658524538558073949672625206393008441055654957441426841916687375532711557173982268924365087238781528332182666381992337478191235481127400307704564677402363402854526166125802287224827687681322471109310787761383087060907129416537381617751806834556141089745901673683562771812239339652546003993307916179521075231103814147134191260437334953264457898023785620580366433835077481284016499510547168977560345281606469841172795996445991373946268623265367120466116428967787523693307110977454181544940035196710825315190630544087532365054883455307800567347479280301974011907379814334806274922653024955061174891487476332410297949376845747387979353709180829543361554970129711568248689293836981273911602133408618124862917989356310831365114420574311036316195311399767251056775981109471962311639381757201819300544977778138464506098338092139964821719957928949083250390836528523828631671754790642317343894592494027448910053528590594046127968444084058958881264424563968628969313120499080227229758893400412341441134950614431186127922346848328978465052112058838909295193869991073690261549022617135808880970857652752974404010888486867589170356176156009617253119713851543451761380414684309313234550314182541659392306723067319867061557651257529604500237656454035777681516752551479096188839687367088774728048279050405357072541816718618904901765955056975639351249129347025335849710951989691909745033776262318529230141606464018908348871532177397660404454421974287175711485476000804493335166667098327328173566099789046455396542196154263918512231617159157567294853764629607079285196165174780915589258837516771191145837771856165548748112600319752286428402045488813419930420971766993092651146593033675653648298542715463207925969934045497057674283509350847625459737087430387257135373057216671120891796853972715848389893982764962810544319458654119719333181055888371028713110429702744446257934770640026789913974729564016218847228541494311841784515036711121247432560445373806289545836056422707966525043998518987303622188270523874835784333273706319642719940714739874350124930740787535153644841376958968562872362961239452815671499318466003137924242340328405864370718025900709989623886207083399910211863035598264612797853329239708475384821791039856700871359146426614326928187397535223219026022237670951815154186503990827500018586011747965155318801871729119773501705471182507787655512109837037049273887395690456621835273601894790655676614131892361910451440628067563859851367192889683067718524015180594166774628990120488127311138230992726987909860688995751660770931475284528243912673106909848583366879051091917689002176856235199596426650212540306402257679984092508831868654614487054667498012710874921484738351447150290133766354310543930189828759226870838638610227092945135735777425041192884461484684935011947225779422909337235427137422319311090142747426427640392370839929236761756666538638354193614577781977646266400595205870219377864005019674000919850620398725204333127633187602849083304538070455858821511608865443086075380900148913019293642593827504187069519657079089020129810012173781207488580127017942742291258094965672997579375476936070022007248707280338380801131853521326991091887149875130328214183250508713318941144494522750430279916228144248314958295958934668069341938640247797584185021166329052474348821073842413008794019394101511429680779561858222091221031809250064387431102992187623040959932138739722224121432507277722165205977949506851346711915049195595238417762294384348099634881950923057686703434453623979362533954027744551196509821796265588051659336565580330669551112090581914599801422855481053333002452297594450237961719355603497722467722062158753778709867659917577425237739145123217537749975183598630508307333477852424895001410210396926583499882811581331820851670460108509531248856011871325925229306221568268839861272884602617912491914731821246503119019541090437471396230825265583770974497119300464742782539137551314225873226255058570149108878299754793968426639453153042487760284666364100410226779810133136107255965307584813554554105232560204519266580338419910966968645379941053569196314135087750065315598546864856529681485106614847464465623444260725335373709855314716949751012804171192195196080492984342990398775081277877607833044384421824295602235501628956107700176774948402013199360049688960694132993467539761848554188291829992707845888028211090938599074210759695707725495051940554478059783233036327269140303870200083198428355698908556739059493524631911162669892085857443114603031773692640451907670252348052178375316710054740037014874522848406121999498510528351948059149119182374321799949833648146776345283480922807285411662965415917513333204287068415922130457918333604186311978123922316321755590207602801969796907797547672097696151916020262228970633649579309262251926032803131848272917650723386473554751556221459947499931404381441114808993771469216365620759561133094384400802103855097971398807841860308044284437647046888242504582562906439897392736116629010468032929185881050521691475436087381361680662960553691052595413469669373559563350047697867365894829583875969285862440274665012969432245006527619074024960608138495316157350930188109605367725189243983346075642669071728693790206090677966549651332164032573372848781524574935247973225771293602018057063240711466457483560523309886407693688243673214025881676772059399486882046071301584137267432040990429779733488781585281899961628737065204896309545874557986118161606172721729729809002794706458578036540046093324872895439419200152228561126321817530465747128388337296718527096670756378503121528572505955236008135006032222632360221731604947205004097256016012725045801313554730544503384461778397830877202750955000240775023736608748661805665207806609130074677712535988596702860714167777604171850987843446726221108053216759645157853266537900703008663408583065010032762972052437984107158495608643649891340298344929951728886291990050256543773078016812951769881616710928417884393235215744774104651713021726301437393492988748866563603791519320293222200665828947889285741687483044111587394045566239554090519547087512492997983896316576913188550663036349465662274220914549727974351255287183406061115104736062247333360511876851019610600008835813440184719583264021276997846406220492325301557284709578213965107009345151831279544391906904760122834082240469931363022350381141580564002634772346857242617034406084742785948744523086407151340651265937819325516965074677566441968519671134295636872929229298588990532536299570439771249167425753819534335573281889019009984891544615658045643814929911582942105776193464165960765234859870834690722291336237141583304773089024185260316185333211055640452942135453900987200655304042610147817195603613830707713060080054705207980868321197521471409637022562808248911905118711059174808454238769538714896013543387064570183038393174984064828120222693221621031663969464549012607485892788133184060395123994635023570046570580933226407488555445096505637812309842023769013398501930232196068156914448010745232776431876578618615627286065769066144415054325796840013842770367595220522797191065687160540989003640607922157523173438448576672585251917939359145821661604545033766992605546152629206854365316641666846320197863946225293852103336761793021758135984558407035451467491849201196928458627169494944629901188589728276884464814287609638628309629910288213432153081454558747299129647168669177051557114664709356550987341490749530686198036952444450361147095138535202664406415527204202076815704161091144274791989785928883819003478414348996322896320061213136340704823230809107478788816159851766747372176790494825429530483664929709376735088895380131389415510125618496694059478020392517316286576506654333002565365207851665408000313326467811706947962815892962105029339721501459795610984814184852764735911348989488785562000148770447094961909495558735646612649710957310552219632130986744843807148609294328488634513472705259843428194755576060043872335898769959482199656245637137354503560054847157182596112521933850903517404575303493304831167020468666375905661090375636446986763213144357166427450007916015912428788131527822382737754591992138204790782843351155152002923975183136721574990504618709673812295606640077417996241934180911324141862583204095242679866300655254283204754114624405820823396794169270522193549047931690114845052497430854497996300845957174053642830465328151590916160861810435515040229102369412244690107084167318924155207051260228926235358291153725112902044533306198356028982453101742205764106106085259499628241891027530452486556808443671707553874642218332320918071952153514757644049008000819264166449067427581589762955230578922415137702202300274192847611201149647906010060062343110903778238748809655274626621509171801819861408073412773035976928791392895784493904185127008411672781731208006104361190019415321232420390145753968824237143273513935861533554694730386458975308807552157277270928288209479093050767435747421050807978404446505842517775927401801044793542002873788429988125036810447059612737116857709715763184632126424801961328481853646619005837158564450889910543812298547995986072204131422990262091516207541990611149748392617964121333248093746942364544296585267280366937576923786130097364831895714631218991479739593269764434244174078696320851663466917618308617208007023026442361122883148194939241328041316968693382585468384650119160053914953322817155621532750105471953825056907572750128268786152773289766355541562187182657093997596725759629216743533450769407785064361073074723604342936299906628718745085992433596586245574906250335854678130526835789637558121367565987576694711095822990033196361452620626921934024969364130954386312198876321347123146449939730010373175419943896661059545314413937577996269859544199001995789830736838264046277057390577413690404161002616945421947430131260957649579133180502153126430001552291078100003959840498309770637588940475432268590175658733029896145749872204585734223123828332413595061211835722803360785972397753772915083958302049541377916479337775939968406387160848851468402456556555332643623414835590554864497727117891240061279975099597749272324547589327123472041830694235890489539765191550738598974385089247291656716714346009903652064645399556047713638063151955161238169790015233796823611852123870956443613741424563958113855183079485845732696609941165771863616983046338728064725584065827275817813004903439303936392815013600355373401698659402859606383407831649609592401403418060346391732882693905788366029342548366669634568364323358215063893360947166675852226764942973400616854972242415724580330560637701826131580441683531824163368514243140656499033814060074936469523310156170753189696474921670315532669307936386297780114232689857880971136964292827067499065128274293594758005473440097707060729884354817561862762648966716532747042446685954964489648498104045970090793290198836508077758061001098623060475126854671694777427771868015661105872308077936797677177137208068128683071395339904626533054749075409087401795453059043775005102825499475528448623626280212228117993104438953252437179225072356686129221323654652844461465410139678219567384614869709741422021158385989844105737116499921491920432711579584762798563513083610930393622866813209221935693120461620030345035072814483003295016439600637429486272017968249597172052546594081998075845145737321744084240938789766078852716262262394657707485328771978749551148004514266847326451895345829889705423747129524959069646789250838519727783601276214686535922616939298867773281900637953473648270182628189574078993163954955765978921336041276341528750112801809408668691148810275309219381013723400942190747223091092734164587619924635264065750309350617640490544596796849466724110488397026707165591314749360385397288923436905333963353498807079945266721743826202571346529918897527288875380458811394111610935299293437938779427323677795426768894737855392392488481531492071021922384313634196358612372646879287635572041017606886212467952295917391942634280007331736929541074059066034834641798789931364804055172292427835140412748362730293078116337363933913242200366902587906496218582836337788574485732947278742210153278751953818936290610019307575660360191226231317504072512586448426706873410577450455014455346894254678595017520020512919641014148134886864397540834079857414140776131485907995590351210161225302296810187696803515062744382111605405104434981661647148057058686025291939424415447319885300740099023495754535262465436220599664514207782309254378339621200537146043672069076811388028584528815914009822311372555693354716520475047456924216738292950936939606122687038290483578367492361510959577426781411875488025169911673722444468851045413926502733664398796130945256949070165691566587988877252737405898679747516566704305098435170826291610774315753843633161238668043638651098305245492805911172289004822785731318953712776455474419039306680154602649736152001998583178136942088269130298701817507316086330186470636736694103526800298631654988959227982992583674235888952364306263076738526873518083363049617807287222953335707906799870937066228790534374354880882804409430834426999871997823789933927290362476390724999764640877629856957589325239813346846819257106347831414149386763777301715945670537122987516573042539709376854970401737483513542968025483937784590352088142077347422579953834376977904488716673236525839528588536217720897286671735343666887838223411421087184630895796102054246808389160023358391194685034110732679242732228439593296500996617554981138924229047655606284483633679550347781348646631205186279638683504294496747408174497540490149903988349012613914808296982056552296692111207128987853193142271010230841361093760167787831751830192242310641856269048777762824346473364653830150940866176638988173531086656051136412043679460347145106033543404470121868644422586367831739090824009886010931836745885981752701548447220979836926817311702766731751697749030069079887201754746895836958548263686445797281089670470800282454172184729244731593039283617771029612698626039644584748173431109366853890411203242639364927797748749152383385167052510874168564640626956967193180667596126531640095542000546873984157011768567471264980099415321629561619598967497750961568924506160597723866041203291630397907106487251819588209824263610450153181453522016242328509129685323171127257355804550604188327217762168638011852644577498692684567006359527760699172394463516460269726702795869651306854337241616958756423282286525025404520681936164219057721688087998766586275867241331889704905301765789583602712811092669958459810864709020088433691230190108659718908780689369709729448183546288829531373977841434879922038916406068286716375066288616742378605533568460611416960825931162344214826927091155441094319394344665220302368887470464549861633727912252712697042983291387460172342168369871245747831297256234413837159926402927892305526339335250767611884144660777153649126454971292202921138149075285790348308879126431702193860719968303098228868196351954049788038266568134181980549866234275398270691020183351335890657560554608117737636304482611419478757261633476937805776683186020542399922706876480083408681720426359378785895980774563514073611014926864162664360715567961835478034563099709464539735996711242567028479334319050563512608516224293737942151264430974212338454761774003556471116617878083016504465486043811929526986677693603818153098008604229067244274116562360640852318681465131962805314768545280029739976345058597774914721745248473317197271072425492273885355882275609433976166958219169163301253788678407020244323932004241871159600546086842165061417309234909939095436331963117332902751879693448009106565083716812845407470542107837078152989618607308840298148419510773065376177853562775252680981420867266032001915256587195671050546021016397446015664318756422156910645738820201126610809909381781651088881775569319746148435478549709961729305979607233364616342049612944741333292433731262140128717085116055676613047156211014813435260803625429567105406050607436622573439235843925841052508059391149345526477409656720999693500254820177786242650914432108036318469678128661843190261021454250412008025208516127403714125639565775860875687801580026971711795541597149497976683675521294507359968724269217790234920235244638511048812527310055312701704101667815376714623907265777605697099927242171291358618512938652433283024970211595886203513512800003136998290150216730255988439508382786487567877878901597458551418048163820968888452356371244987210500327226200652710686631312600425718259091819094803112872894210976248643792240592946204738690743379194547706019529326333200819325693509622964448957721596776218733025400236820640511872587603226427522680921598188916769774336837704859856892294052261003466015882887826450933093094517712725680658947519619470248896010274212028709848105478395613597444078700093107699825435278639070661518969204341429015294599266516846040064702079862218100831160614029487337859779055667264543285636632572418453172455464583072599761759054081688684754217741726872434053099075412475599490115935770773818422326718306821065740938814077415194294928191683848785049052346094402671689991030463113294517430131776888728376624792734100044415218182499540488515773184897159620967431348327635372435962425010067508772824408577379012391914002613064477900756421508465331140902171473607446674267428722053588081425483628768417321355439616655538657370323829403794078438994438539385188482247378647346690828854584829717030824013365112721272423084300702715015901195852099651337112839307330373409710298340455171944507491137068646128335772642340502243249481361231840070310584964060623532352382275939399619185765862269736768097910279316236440299687660586637439834342396909505339167023546675662464559037425417843678259342294428683546329131199162174597178907223228910462017806954738021431496901043868113216437671657893380563118467307402688378112758082340512944837607545827676269327249788213063584332377471913575697208694806707231451623600651415866899297359476280461076218595637761578747446451299691369320113057568720162250119541763955373367513253892799249088324668512989987640064812751435768960749618282389915551250109698499032614741566170977667727849233774004600795326082565597400924816810380224000211198664103928564652287558242872469877878056952985055066942204573318221695797380354591252089001652923291010548459079853445536207557801814172975676477694788499317483000305265207974249472342104805526378985175085158794961212671455289420355593726466283948801823409418458494486156544831346753233767792272505364798196346570327522023438909377059533865313239746162259671944168873311457383087602555824764269936690071112304059927198272634625003696132548524295426322011745560193623344522940664877738790570794250395180366194873912265459470166196802704176064170043839699548304117769577673067833071286892632773148722747846307811395665880253595100672179961559630279680450625231602204919743262351338016190442777877111801678606918723105930330048140471884808684059555465330258005242828507773276604629006711777044144669181396493547639019918732344157699736444077656950380926190108700473839155035368459908825206545542236267866710604945399665828394516932555864342489815489006042140491756886640765672179889167182509849295066513029985525753134052505950935382916940891524105030926682854312086886065201559884121228897613016455889195111938276711465910538095355904497560328135949302576091739262525080912776470962449572199386860676298215089819230858323208880749936346171471385775265658031011822158607024128647639944928690815112656485037954952378475160654129388051597127470619099277125994282572921085437156560670657729319300514556949213355608289800352021551709674162193524300657185645185585279064422219685468395017252519905158440872612653524318914091489677457136591899842196841864306234600337340890115280315103160076476710430564671080329618669981843164388331924316567311657233872536287490822056891834810637330911197613763407065772987520447446449628171477088263276682993334393851376349996901371837084632417466559069824443600957660725361240380551449987315457227171102486169186100839680049328237492759787505848849806710517903744833293108111003723674003190968944150268524525778842348243634084807892503200023892887307473754714716777771707840826588281905588633143346250162801803521167497579908297255698422968572519870743722398492887287944746478363397304063159857148820217555796567467270171723427145160029896418244270915091507209480203306400083517610264325027944115959855607531994264630397900555446831985050023674604382355484975263938185690740462527637856398163973024739844421256277649204331406347843910096404736592080767695795987514238763762531240313475806300406673697251805757036758037707509189727975451687852675616818341085519418685116771416725694211382497068026831378024790001558986814022909143202735960363772180553888002659791135676930724592944072057872967330549471214221195370494361799887296695998268053668583168978506516868868731084595308272818555434526059825128694466766313783389652137586786652516022694312528706141562811683957486594032117157016660848083965010520031238878148707938285958592655117864762644154497772425978079562656711481251438424691819434991480918411790796019716707143221803063931123077283112368663015196068851126225499917512237854855528666894352666034168349837081958636166238734461787335642553981205791255308410907419307199294947480658700234079576016489595975506213740183153982752759913830208246824244492768065254680718234462378383632787219846140557234510323021359886445868617984727963386186411475142825071330204473906473308940346248144843101839521472741451060576541546896538185941995251661826897675892909977999162566260533304929164566879316089631814422551261047331055766572988349385240881375180597640314861052216003777307328305674129299378855919540767938214917566201763502015635319565108636282777327449763901957372852167892355718642569401310225738594570073450312087143863638053897308429246944335298034405760564516691559790690040804265672752863097764067216558781975678619701334537497423720261036788722890117405976079307321240173182444968503486572708824465422368790493241015200291069503356796371579655629217624399344907363259997823526930315045781010521482221272401692820245048141963477841971656505212856428361998198005543266504123876780681835920904599159498384537588366799116590297806797542360854824784454349288243654116309723048233735729293935011389001848533894159591028834402323531936089023793436367817166562526435494883653902687987611218251693954331520368566060104635954143311632871977760553103601415988796173825020366231024454687518194836039171424009113787244693668296628342830503418796739563425771967898849865693183134123345163196652124796291766550763146591048728712472280850748789622730957320329261422388562233445725144650709258590235602377429973490734485069076690282341560006309185946563457275754333157523852628114969376065857641588749422014647256863710313285966070801239812977273572950483452485185805277302861945777699338226403056009386712534715674970986779330374176263962531379565830463690599475267871449549351380736741410168813584871196654961685077217228529926266536361534471719357723187259051389821034717330824938314071339997008816439037238739285136451525425352542539608584944132512150644862959051704350119046621483592277037419205137448530518985895921146327932572390580795613827648059732076536605342740206407417035706352799444482704144512599446797208728924730874379003350182778112068722566137360328692911787926005237106962290698196451747589365335865115437098655336780665729250378825880360570016726729086622688613348005477013549898797452886516849257902998473910533341634555967171872181030491991887803549632341417478631045284287164690443778895334710117733401654292646217963530016262199354161200031682936868029429810959304340982578049685294996360881875820651782527052165963017112114810273285582543782679651128380757779168878135733592667066917824369620741260314109988490126783351351841513338922492708832950379580371151006795810715557618519838591487471819931632920686714956998382956268219903925626864252766719128306372923680754717254540084264451081332636503030409910328415939306825116329788106530406312087136727591401442556755879360813535767533264192255031378805635211536945353343774349473947298959554331620754930022191499797423400821735296102493406882388948762293375116885187467126623072189613252507428383204943447528357296437023306342534089219916524925926030892529738202801465636332679074098146232564624697447081050380742308096926294382792155055871096525861063136569653340881806304222136198111451332342983458925982188641991461440651966374439308090245799309188950666031023768943766201391269038173507048895670272271227780976675526865585207197941259820646228572285235825462610635990360668434487914049875628187405707044616078842331848549482685007130173769959979951608089180163140384911761735262741798795947591216310666295297200491513158046984534386334170210815638427150499341871827534342143400403579922110359753300194909546590557540909275584254154879207049820816106691268175664430314944781967456203943515471026762810162926990764908418544388312591981161526267944203395874631859767898857382714577036556860725377354527313954871971021008542293810371910882888938277480837360457422849672914345468259373394761465546714953215419491644761935577881179365319652939987969230411411032120124211817709412570390825056887388325602432191829160030482550813503436452582265087206666348737143407982864749277846762501777535395395917864148975558789363990260823184494722889458341189358369338411903060034479117383927179324784945921555718374002178202362959372242701834124936130398558663014504137497095385945445871619093196469488863273648654977834052000230506532313495881649551899124783512834314566454489681831387091447863081054223002109643635356693225355384316934203006208781017636458406008340447482493680830057282023373277587971119342476121510063054965687231519252865954940741541643933391176298507942005307217328498085841891214883599856530514239025795459884622806723069974475174882188782267706776946781478574336393156465621398653305560909227053852135698106088662808776994902121252029771860858025491707028757753434703271203751487055252393893946741940103236932635620170043911506368124529587380693078468145852093608255253804478075497085482214014440611227244831380589565240954736465179201904245891285947363458062061106397300236094195007825405692570708324240884211044277330832434964306654459130243138659447700145230443921588718644172236826934141698675100581193033279262214720814919699140646543797909995462590006784017262268848351220532383540019654591188019972196750046967595529929608421394310217258872833315442710396215876684221782276264774424215027629932338522424690822489501080300379304312391536681625382615414389241905281259813488449447150982664391199986170137817761499053883900607833669305750638069550352456146224225725136857903989214255530036518804798475884931873578491106995405356156165538665385413148195284884968083801696088566422455177145994692031222240321891569120341900600264581246111979096063412645898365886927379623350846837601427753995530519866014698992515707097114579070041111573233603234989240692970927348708725806977511060981549485026436718089165328999632738113014173260545243050340500632028481745064179052370787118689947297965736259896299837132046012302174779443038242996820655853896242095870445078314881137183801014279341139083656413078899938433343537977700245415929878624730677202610571446220547194282467923525986853056472783693184625449713447162375256695854131631610704882973671369635377690362322991308032874237164201349466094205791735731875037795264463486450499260854267334061631516783533080256339577917567844985594680838442318075109004767825140744792794124205289859296987010723521659791470088611549045660080866734457076616984214753341728929453182636570059131187226153595210682849100346492419131112202182771098714998114988455606153025243246939492293864482146489590020343930695973448772356742063577155339087058051201604218962274088865412454471365152578439744964037110122543910246533254105971096741657850925568478128871567588242357688423167717693277947160204952723206490818801318103269688183926797083655875638209883663851214406530890452184880107051679565315554301452151533669352725810293538939587861717674896687889729343395849416863451796400367531088136759902912711738999767351974723491866416756377188438164185879799760534374771911803258009191057182527911533710507491724585388305502079589173641381494361745041753973301443755577169936975452486759039288501169334472423065068424692056993571156234710319232026728210550884357946993909346968894635104631600530865754024582518413952245826279887486832699600146832367540279741275064105265186591637348688014485517526734758262040802558528931384312870238255446223098110139748263971153572889151039398200232607927490040241189506866833788387475994945620648388973916673052119038453798243538522466168713918915846519620755209213914485208279260940569583573099211093522984203327148102154013532019325886209205484486487090566064464218956561190464803036297924330070886556817383732118571971623129639386188285559426782703413138302491727782511724050139584676001698589589533902200648678050568635695672005785444471115181172616783408664761289320217687961457183974843017234317592029357500824492056961882753111334584777010823253462969589113690132209901828461964114379906470241121716682615585792704034565898202292655354587250222246832005545186140251570433085162764367002872564055952244960879808158148183459466080857840451880634976216397370261090144531343983807245977173205869139048917163044353970407678657568826332545034762981374901961943542102989930018234432783339919009272622343768211408911484787886545037384440091084785165576646396313609521657418927260132325053338654127642555557575035108544784452595684640678413607538776529307626302656625192123444925170584683816135258153247300735424496780301419093380417785977211922018338402144800196666200371462192693726256332061781542916777623606041910745151342248427138727247788820499031067638710901301916770368469495121230711494114036652640174670275155967852270261642776153532429337860113515179195538273211613039555292846474018720095714435199706456512702357153780391839807124208481120048263014525384970332076552005923816641160917705894956066290887266287082027600753063252471230198306541266925467224871091422995525908408842112089314695131598649183671271455457294102386502104415256881038713886628134545649785938114990002118560986752292414376496024434745577991526592075503895423502078538339157793143811051626888448325989203252043033875701728871192082439034746578352585042262449945365135856401428381894216707119040832020778048350659963289958813386939516747045256909720315440835058182525305651921153823330515645096679208222366442312180167611504176818943572449425877717370493523544083902143355875484343059012275209967883341132502980483486017827665401333355277237564828616558555823626474305859688556201250492322067746158202993150250095616501235865361641103343624576229226501421130816085801833624940792162286660786974030308190364306087877837980567821330879265096177069830713844789838088719556460563473040532430545882226255989751191902874339239179047216467186854208085468840712519467678649198705558704748833948650706256627702743577279856336539773085019720422949634943570856268444067033023788291197034709880760951035119875613267868520373146834040008379757902702772084922388254789790327355500704771056478399403084786612763799918702239695457972280935000355031609406790306794530794132577411909316359712006294984406037901292615112491744506495821364007254923164667239277907597955240389294587580809207880392365093766238866441808611353645659403139885654191124718330816504400590000854619959222863176658480066485178400113950347065946623065446261220773721344816988988364437521422891915151298678761112111219563900572939601480148535278529640981539252558769325588480211171337644698277795752053112420466409994504386265270641002192279361694669388636983685540543412900317978363104078526635681959964787907010394081413931749665977887917873892998918958625081965850881298718909844106979476212871981051449992450725661165680173960438939048504061306122523145382298514273246623909485815616035327887961270748249462986446033721746339127818795702422885986809524401908736691295960897007031484819538220464993441632934711367337400434591528968919985816884472577112965523313905486334277220142834793169224813542746923993797569592987628840692478476769333265343717115453535209905003587665341119907079021523958156181212884368390143292676570751622950561743480930793029174047865567425454015311289864470570584191425639366908792234643575942921789881295939862678371644007556138779618083968916543461639268593389471139652425929560131885648449773235621434969177918405616776469781230105808807852585100556683131592815014997984000866840778363739746174055344033557321671167719301039163053572413862955805621953065704674603198808602436605572818530251062147763793715731835015228598197568150328444037810409230404406985361209957888887614302338704209163876724251982188158045293104268080325919738428912052122674093609696064109472992657519527662194618193508405930396920388440708582804929158565858273639331103892403612093121121672634917181211921144688614611016010716900416719515194286652494767506641127013975894193311997494569341447019956639788445595497711545360959833872858534941620437038199617330950358440829720115893742229136186477843028529411171999836337835545634027858068893775743479235358420036722974851622379192503202475432917743874763740904368887961951064146048165374528015176755447817702613152675353607973888832114602917128266806683130158497386006618696956799481682375029979203524205145294358833681380730558286524706661508706885791596984987161224493769158756131130071029981330965499068616543631015115318967060418062496198967433373374864118317565046901108582184093684056911091846382286284263420305859591630362492275008439025382249236767404267781771762135010475190655794660286359595590659085573973528874329550037693165182504496808566189134392269981689079497525464402253589976642155667726582889080299130042799847161495112747442960106900679141664344971765619177716990372357036406875713051879262780019720999801603598186017817299056123587361028096441976261752271446839786632152109387482743271335161303312453083400297387802776555437744941023800592445144232577476734393626969962544343461395281304667892561296961840780304540789740350268149418793065754917256014975123426787881472764217112110886486566165075888120683105093709642083089241904799422207924994492974090389057631522689469309435828882249588744844747002972072625008132474911579079057098187362005215408825374469614395762522134989474422158060940067859366170111508235423365346424886409653578298986964506370015561986186971609539617905736746759249516981460929473431307584645520388787899300083725027199149218871413877527485825264883689361382352134658221657716792934887037745753742660895138913778902252767820246188150514609701804412711204603283580049475339870567448509627038728914647821172008930628948794394853638920332729988627363673345647554646825358542459271590980655385013111078796312027269355886110228721285396938240071642447924798970861206029903662209042911370377815871271772620307792933801554423202027093442823048782900034166507068768541830948939803171004032276456417949961800749997012712841296577265456012851662532836963070880215074666201349347906234112776788083112953602948197617256252040758239454468273727668475088942951685716996942429828433168655905604738104025029236278385851336835694789210311439160079325127490680731282774032746179808583096557389783546223614272329721486065708338628765773098023197541160475553450334905024710635972544172373179000317715397830440992018982590333895148476972398775183967590847638798915581418945379517256374144146779141216980957692817313567183035560849605578878461806676748153845539255870249647059311726583589563539725490225333518022857738014247207412640934638786093754320842616694010363077645471509960487451292075980327429887271148396588946949833590014572336777851242504654840840838795560800060388332153274786590356832957078610855665536223354255383630806020705557014762573700367518902534238801529047472648845530633105495603085950586584279675714951690456887712268244186561971135830477240631163590422345019198595599250776495493704001943677940325623593146746578269741142363017923182590548841969646933803271813531219992501423304930910458400934201492455631169987252001474886909573093376596624726436885714652935838106136949378322750110998070076061913552045483030341130362612714664952024357731012881646309972839308339888520280804214610679107609902505436767037626486000282210265547564570987705907650326168368647690308709301114113184122669224227369193739740880317297792152346206949290865672693318660053741922658274299640253975902760829446028072540939880615129566440777015711355328950435054684131942189203431536742357487780003562555172302986676547061805970479634801716260024135344849210740172552482270626716998975318073170317360961815955744959757105198315990064821475709019620382645890672707876677688469704592428135261252629777245241292463638529862116035114425222737558644505553903091503435515573581775769064882356915130389215571140396584197072024941730487193229139371581575107846268728881700411758899210731151530908377543875201774318630648331453988812410531961994872606218276145449848077956922726781985349912792495941435132322912205919798621280692245978431866438240734538035710322934160486150689491500979447330766286241000149703439142588227241081659517165479203369603069021898924005096022550967538410659566486377500992592073386383677800021712855640777681028794841121714925040398589037183486829949424607342243844644024163943490180622587194943871958378875376422908523254554748944355934891286224983519624487365379131439367390651843805013562845070550602619860279846705895552545031163489618220797512048264107755317480486975309732256885763588709684975946519389221034616229516702421575971416578030254449215406912212886351898942933363172215605098366006792857849132314069692190533562848919310484875600221890767955230101231834711377382025851459327974040174177276425453948386869060404756448951074740403406344744566494682590914773283661343580568323816911463089996275506456517907613056176652386019436380592579418791091968649711632117120799439059694783594748923865430379369816630967782775271644711394698280368288785838204550230777345359162857860584724843780693974373146153538647911158779881801434696662801966170718278642828603085241390532426723160483256406916133128893704183761893369713825435843228242881266824885282527064755062693599804922310399799462747421166690737929836208546639154942654987747701352691980357568056455489252070033490342805590337863884957486873527390861800262013597075652301360670240203579797220772272467831541447741096319454306602178510291733214588468441269877330208623602585124785624189902238260076179908839594496202585362659633220574957856682210934553302314018510721559567946696628034307094922803572791245384186106305839830736800785798793607638506873740734603180106846842210460110436943864238300510731118314980395484742042944277969327719278623078119033501544634718778305389670993410863459455254152857880192362881703427608317693461503399175566087678165150037195570370681010024216024648030529673079535076188052653325724713923808760428400589122765824285948000798045977940421468853578641407888095904974712707162791234829009870844417226342548711233340292260278844994965458349614324500432580516825525280975946208060459488549100944893348100258205212076907281588206930834554876254430315115149582058018867686481280626960476414468026090864241959823168665639451340867815032405373640070822041592581562571620838006987816672517650570874990310649270218672794863594890959290877205791809580619851874504227072453322244537608641369105384015647801684072924678675153630819521430758445463198715056036347624376334118125572895684305924401822385402123172215517590974271298418867129927048786669485868540587544842113682740411085935302350213144947412430395068219747472324755207684101793599892395486653452588782475120836914671196247988777187228239342447130958405525458655747231495672561760385350892578451754607340839128627826771883032536361313524852798925375636337429165843052143392836226999424141505374956206973109810107461251791194534504546308103131338837458688342397666825834742014632588835938313606865011762055428371568403432406494706324137899383951987643316714803609618098699421637749654207537297862933569858030597216493952391992642025602185790667757304979807665045742841293488377709630232324536961350205218214871663251545957464867425993052842421169295788270493937808552153111317973973131728357198029731528371014985796422678612240975279650391574914304079077843430932170615337399950476203119657210149535608147017301844950096106739588955197932316308311726136396044622988990229137371362465136715657786358514599857907698526990369447703785820369840748271216442906221834317845776554687765023437428197050420457821501152406774377532981746656770756374502240086108037290244100211469439809256464188899187858981048956081074263111971839346564996786359331240757039981382282026728398522134328282379375324470687715320574573458482298212449018938343096580095059241149070208881289260184523256006173154290402300124923138932796191564396535838325276613318925236202963137581056263303413620898942288050172036591054672320052070137323843000464368439921206553751220261165610032076474372543044704931858131302795138397680190666478751888684921969440716266264915613519645445313349164768612936681700103625160276123379186478769857707457587391615218650063335869428271999592779044415351138490868310394775619924659455955964970030957350635912617188192554015357438440406492888034238186161724036816860529454342262267748177976507217758097726301542080489995944296394831490513689352828669262647347588317490190216575570166370634873673279886601338378444800494185381765372176879945223217619121991511184362426253942843870954267560448303390023649792517056000500694958114918599349355081915409567528696228749190661325551053841632551666412939161757927693801566133001671547018965853864082954419047829037917532117855582699620372846020510683796521414221822446764382493109702559382929246444344694651841169502958292472119152899894483241726744626665828687011822182756717688853002652808593869894578363456039983714027930422521960202247040471546774138391472096545759935363398083728558433516320372467183490332526082012054730568452875340469107964769630956215490305010304389894705113481500058451824955737795574111103065857117473523367553472585718571253789184901598542901191630126289624338830631863159713973452659841900157524652568537539687680321284265239207576716433180933194105153098246621289804726619649614303456950960608660399643951066572759937590017919650580671691434688957526591587184954901112248395987391925468282757394766676908714199859713538962757774986519516211447766620651089315945440465744753323512043609858558911088181227586219850000666154772738491822096299501618041468521420632363493877848606709410107545126332069992658487116500122400625932832506002635317206673168308519340424597823179706236275351309318411830058514161083909294722954476650542113066055739503277363950203039329252939971934054359410344702185080191152905181104904421424557737236754276376304012208032713100546845956849747023015013582566156514552941718367695299648936729913755597606768003917397505581086451949478135762773379495143464219166970285405417326518376106937947379788384123345360992880548921377964803247138965539470492434199170830257434653504090414147879891676910320604941065650871412606008840245969811052624348450484131736162214250393058349199267362074466585623199325418610208834896799628632854621272888571831644845966249224992213547651516059473366131265989043020219722584058911056244959592996321485915982485077200689774199157014736050989831415354802457581094404180786603278242127170298622771586650997945747094047284512010561982817096292864425979680997235945483967002081222518586238593301399548362841138428243334711398684165506801206606864845426709131696038958884513928091647031783612329621252609011742247450076897407681454878047081803327585268111037651142807933662956870375877649228485062837215905919800734665674051597169466288626064251787414768391656413441347884203600844567794557395910279646331014119039361336895899199061690420919375088240928774303603310541106951769946757064637754835406052437023962236952165988227578312063407995755004667424108481164646253369513203129415392030634908917118384051560502216428206610215351974992345489483145584857962568611870138468157103742143412234171737219385057831681018560295495939808649881421421679973748532822341112314674780026722903295524530239768628195857505153438933408708748723034733261047259948654557425602321643055438721327665149165713789536849790348803088417842902743826547716181814363166368522091630357224720060555516273833776159881112464705086489561754370172108958516476803087242554071421564787174582634255756290534036465908141646503278754513482928822772845256867425710324146983902970647640585645466800007639597647731604997260347878435606441608610211892410452312548326781421660056755258882264612415160575841962188429592234233950369639595116588697753321002477765169607063452910623723930939224889825243213421732083749459255129872885526282040312964813098152489313237122516689805108013885391559375384147311609963626683216549954221115759445130609800170746147720178995746324432971705401178202670510469904684742672292155491706053510504522744517323354931962928485604379183753384927619900614700060243937757628933510847056753586816170088740252834861742843271168055237603197489123631298116587355979427862643749950591510879166431437741443479907529680373086528382481907465287183554608261328169887544927631187952157909823077968417227294540042277868751115602422705562005898546272272145539449489700838138786911837108019839993925726489062816344519177441503640658742914747891823537883899540613441837650156539980178395702843997672487366204927785318695720580194466908829449969276221587567852154038347537833565376427271765700179166955888791102097720928412455066415022343284047835838839726423556987143007122851799097326984882678915365410038450577391894522513929915852983899785421193209081320455646091600943324797856324660879249154351776861357950228557247491397542884634169637752597935298812308736907470168696112760604280709060875407359912985788685188089994791946516962091051401998933885400925394197072511999648227372585515089093252953178591141682064849057843641071021641906437874361676974332531507169745880402124661361846628107349132752491061101687209938331107795544523978678731811724743556165655504510883828700497992334943406825503638299062203766649862612016682619689528388968078751094045427259076332326302245208704776070247997735418984091209315695079595178884355382575879394925523826741478182209129131916647192726714073105506851131098912534093612198484380936974627092176376044529353905102737574192365741313721485750223225696330131495460926731320051836028141190887383820113410986722496158593248145878774277877021541311952080902490075083074639961120824170668775651807939936573652517032226788337472361350505288632284885510479903865632395732705736570889307852913224198590643430095355680267613237027353099194929438332209336376617226073177450569830031788785751160864311180445998226349111459213420528073591436883307803740609798786901277168182029674950912068318723711706723564383548256508920296798914416916045731231658502126934927717799678553125709198536733389197282526238802962935715939296914289676283594936653551084601610443866221176118405830637677665204605169584186217342329277265744951837890265698700685234042141380447328951368717885286453251065501841351506097438810363333107157118268997320748927084689186330770516831121769748093284048231751475345011912398296038686918237614925589497242562442676069856601673041442149145246402223690024801113064301290301332425754514423711379195121598381207315424584525889116096375015515553406330451286657212117814278083308860194641993777286397259130413547211000487077887815346114205659546211832150381938936461508557095221219296801535042111282400716243794439616892450266572036139376394917857712164310214075698057686527189422142314061747427183244028070105019502143600232563093349977107300371187333575891577716140984224835917564369901951550797493739274818965456597247480810232963829640527297630845486519868282312560932192487315871873226196925063822460129628039011224356720437570985335555835703679456346015194329247126506092181102467953989844166593108236414792265802183729618931858944215228697818181477506818785186535119355811992053658510966868496299878177039663392901458849364144301416345430533828418838243700631495696243536310241323475514980638704680366838279655106751701789145067872633900368916341349023557104497073733633782429604560663632488925857874786992527050468655274622571371429398719771447148230624897932896372301086845639597212810465719590648516280625946164924588357122730091766767293718571801784296595380382805344003631077259440914981697291773278896387094383511924714574316550774648736030397259909691947332059175625808531152518433268457263754700399862559153764090105484507926112934965109328430364525369883050956941548865750527137962208743123050948633820628374491841350946301151916464152087165166393388239263564936429114992350210658956086059745291728883691149975007456920699333817831587789996270621966041818995211314269906153008027071666462877552838008276768649754610633414506905444802711775684082812589217483527097003786218002550992370800081164040260602470057641258766722539600084307589403863929402996779419758778610518523111868443246009823459412545710263233055371317908320355701728243963873473779331929985772922904782415815299246650915343843458580173150257521325881730016830234119332752215533727704440332559429222041708592988719943554501090793097123091676490779731413934877731660295967022049615809212185088323386078129019008961684962329052462012723430597134744097869958108847968026632034030001703930577049557141778603676630098479385070402987134776051334978496466223908239232093998588069484831567813864644921675571970810183615613089261853302399071073649952238485876227780105432718284784756626385067814813938485909240623988019273005092287307187245757902162777941108078279460824461811438138077496147514549993672898536253070636141678581796828735109421012175387782086689650409906699153505516778026207748292098771724021943586620194417113452680303030279489460057116785483031724560761541596413093908239486913371651973681499866716407042745586804455041270034358351054465436400839650223996726720899523932399198189776115325037060689946440811148680496256012951379418931561722903431881835317489077209036160937971202921123293107828188706172458601481145299765242575033274264035908309278381963496681554550012467698617855923433637390284853796701914704013071184840182655639209027353858980392759790484924079525566655117215379937048528519191896131565684517945728763220140371566205927340849231847961598787860788704965471537771595571236072027573243876375919147580789689725349519230788306200117428271906630552644593937431029757427117706394259975660910691424203833309679878619011612071077838396140678089583976623059689496169710368195095887516042412918858725991531057024483125844440180270696056551502396502396659855719845836395090590734383369008635980757305224320654212014239495843290122710683873222420914381154589280782682350081237562672592946054448599530844013604510669361120920988741632436129425381088935681300558720958282637642093012354249162851544703658580871042010081635611386705937411110073837612055595214675737675538102359536509201219441099364921017905852468067709579007243679372777130492890840359398031739543213708288408338934880796570677904613868824914650988830657865403092960667985288812167058147735949172795032179759877117375293827993674302759948783689491745471153326398744675483648296037995354700931867656781893216556034616643087967534358245728065961796570728743357856163788425470782742755675315061735073498665311752890774118074847758579910768240065856406687947607664865787583190931003526845705728727356703730429762528099328250970111426593598255264367082570736936845105720715196392701770014813284921446266508378748300587709926032693418473702229317265326970167638226161692180698947159030326260366854851603135569855769877428591240358855464784304000141367858315392278411135874621373458451420255479559935788389482124649922259916626996154148550331755955144610654327545718193345373906680170371583959114711481585512802326265996878633986380591180089566517126064367987970049554426445735993714544922329214615726507853427571870017928890660196789733456325494394529170841502880692354010495290228527993430748563257724703464882270104028315057467809220550342077395000462128664098492780382483658430597197983940292224258071999208296310724654027802841192279545822642473086148484501698615040960618681120040280571156843125496440318366265434434073874788227855985279456811816495791156491856240118549402725134450614782531791749259500784498237404399334619759620710734345440347802217465780318658765735039688669559650547547073873180878233951972795867307255165093369016976031624125330659387876213485332558097044708018467487459615972962268889307654083310562535252298586511464530702219105349073377708875994773556403114190122656321104581400220531800060478742620744210437250897172469155401219648079606416663203640977243252514254728508187177752277927421497570586906476305303579061317005080638239425365654220055146676968547579521161614168187512508388945167011587798836292767490950765262816675489647306955252854436102009038475355267344977690088876777643941312476137611819182492854113539613639974906877697020481372535617751633265955713662052502976608564195070607395584583657738958401922708223882697091989245060732422580392859313951608167335938691822093858593857725370812651036958142339696177234397504171024858515967376209411649863762017428633616727513256282804639107434247967608068439813137916829962428959516589046830030027586025383632650401184870642578025924284091998472183112726617354838380765820793529097352657088355464786925907398449385623182251057082621358510370698302721493280630432074156850271566113161344794119949406903437768617209064049006443461651116401462577323896122136216052579842806975833092713146577149124781418002278248377855477049628292483039704479960820769047633793211716120194674137439067448402024349799179392666035174738051847776879091069670800894287992937637199073141218092064939007631688269153773220036651473628187850395878074889858958808781497295582562914543990117005030662417669696459387593624416479892669118751124735229221225778334581417954255631307215599182061134199605064419219006324046490865824770024307382362118659726605004913888484422304359261288726877243600115804717659852023968518412179916593403266444537775172675152332047247052571130731467726217117657623290708396305407323897326050836140675852514289959854142412952003239850598126501985960278767665957646589747439639774153127426541458891328548980214912526340407853571322729387889118582463556743616560688375410246342643755570324718584716249675516483057951883389938743793302146382328840771396386457549972103540639017035998298236042005290745927960298002241894931456454751126802848698331102890559028212884388584933530840093038031264237584907449954893890986113056699313302796668113399941533290453869308058848141961009868267710788944517983735372424284275380293477554664957193198402429927069558592973485822026139182504713553359218923764250472715924112078379179895442020567948538696784783115348147588586752509134257942004428079341258323867234821630897449330013182364510396222964259565717893954942376994413061181737081354695145640012415221189921597247283923786940278544956292496863841066041049078192291426916418857892589367534238855691134857569156474231544887867144180150270501783372773894590385976952118252473830309595434914377500545332837356059364208649029909361809620773910080078624052275399026478521112033197053505930167345247352016948334754308423410506349232182609150943224739975890886676412184804007800337255235929542197531676033819236046299386685411108834262136109144649156079688397241583295928938641385164762332537571464828317713827582684885289264113403940499643261999820214710991570229015827281473186806265799388543532851355324114274508155118351775058494956955874754463839884665866488711340314672106327957530530338719770259760840485028032863159645373074185409356667397648705209929793860336221115087743411988312060018238694679689808764255021376672625058306260063424007823516039228487336909178177181516072508983394524600073647024777801925811048921247187145818113532749919012830789020071548397290767764241697184978417363755529406977597547376662738743379022905151783133079032542894454657948814870015883663842643011671506195493406432793911216984872374825610162617584048085946963000884701068560938780124725744011404462941092233173360920166490335523565577686582572406690404417328985086933076070713387449535112572912236461597521371117792263367140048672412607559292860901016749473647137365676525760523151837335604860020229356288878160033494295934511803839406833368499295751178892937360021245267711860593839198469990415915759793552033014024429944347235658537795525425228578854518656980509152611342157230100934947740276900918472554938185611555020449497046842862763980704335216139849420697863180482930209990626209800842982928108179111939629767256857363589076423437919068756253770048503947498004393281525505683303494950011936620156658290169950465148565533374410718746962359128357885175972617056627661854597970591061682942502853422449517981677034118181977677171040330645115091199704036079548634263569485242750050230968519908739336241561866851519889122315042847177558797786620513015808801982037200131120481557478694733837952212901515217602825149651584979931934106743123114694595527540895204807284457298945036710179597600100206780126076982414937051693646004229068966629606316323485814507397765990791009775962169178853259134314414843985337427816172503544584306756705425072116316709576255612412679522989746152042794819874809358281451714533991651097800290909589471770649671976668082456728552613506603976735712457542209356295412575236330730641917130404905276322770856324369513297366936252142228872897087617322843727634207845915462080234258320046299631796997506715817977788305277792572731578742540154583431393635024144995431029488095998069995614652241845451936794015142856002475656477417911352846200555809056890298904078156530648777472643506936429055157122476622187199762460258273332532987491204689300781316841167287233543773510028434937877701454887721472838883391002306354645595987126298984008921871274925206327763754018524099681273701858667167188806809365282937626653183987788076911028720933586726678441346469253520332943027546017561414491608468717808951259843686371861963020835998706495861212108829762036787682795045663020859952398367385717362920355498255560641537952879465795965752039965224387997223967879548680441891305182060116071262406723503806559006406118500089034328005885650997372136785142131601874277375774773311162949048795423423283960280809404442880738347985588743844793896916949001085339299612211810813194185136598388982146435195269641092998319099470320881393142038970839944859303173215523096900012178665056207774100441480172643200944665891903466342608723212507794802424855892092380883333107920992774151644631669048625143626576132539575918271874528401418445438647592382090680971315336615048310719905091087445228061755818935556078813496194979618853199960301381304563496923211832521962247404240790460347662375727276196904951626645706271818245688651332314852381527611743020456666211331541072257969791697913804127418866191278086133127707700079144839291413332575342334469781592774191132024456501616931064778372194408293152867256132921896316304717178552993310235808412387348791550512504934428810055792445153581108106717676690527695721720084122635184266248439690766547061717030866728394654517764600231298079787277347051004409748447650195874191596481533560273979732914771451596992350840819050158055464853581001312716212169286936704946171974962227213955138400865773824639476858030537630995653928416573989019572367440964791745362468633868988005605819211840674860788278078928675404622828740840273140631921467527261932327534969732264664261736842967307562910061871733742088132839059489231177160958572553533022420432739835409910513342723775841817990893801315827741399112596454695135792346184860312761625324707600626369767935917598823154246024736102083935233944863422012997071626161134238681687765908541923192153996383561536622949011586293552330157352842625553204587137995986757499226702476180311268647359864821764199684932854039637832958823887221016374840207511078312699495247310498319555559271876154505800489567189287714333698983114452076814763645596878779153538210429596773897939070798868275959762339339502024708373013765012743836229781977662749859728478234674984606210237541171654066991852182258303418500939258773173406688933103370449455195940787467219747744899934329754440988888168212612065277447470146897811743714966219446542015700832365215213853373305343128480506977900763117772760617786006343865170744130529974795115521246725902237080883012725455707338523290392782934578266989617162487544017499301836135385095385278807387803748096530597967238297713021611528290034819153534413608480287795621824460458475761978100542667576918592855739297864567321059827847351347490136345614040216777559923116584678490532798687460276829308225437546303811959323376474156053602789633662802153231842120264323475881775166915698222822493771073355072090344048628560331511234918180938366387550833956461051745819813262085399910647586697299384017634745323139863915275874866655931101958854466090439507511236010816372242062015798847842449051951422085713271047834984847543963066843333113287697686443056686323586950998572739415580750242929305106630089963527836654626880130795216504574348180598857030539825756791650560403082302638937236127384622090872579195048430576746537158807610252301943916664692137392817284361888556431341028460541256797214964061181420091486587227271677039855095603719529790129290455711833118179793761156276001301274319339614637372850826107118607722951129484283777994997865238040744406179865360287686378641211574017828599885534646101947363440284046235516076574208179504155951651970256032169971247660767850589845752052836760010019468236787583926805954147243866513268458852975999365755043603615830138486722937474914896287212276742006495862190838458595792760875644553114384589153147111576755351182174929226058816383307765049488028994537528983739246497869080973960576290158615417505018682208247056365019966378290642189714988440271787365456366204662348287472649584209296058389400683806951351084594575226878230732154553979134945203735660325148774158917247659378525710365064233799646054358782245038786033703415062152423325305981470413101210234234219683724119022759752269007570618706578025093102815713544241816445601562681422277064767684158860489833973278635248818524448277384463765636119588152131319280066509791581384963459424028273982891668022862055073445604410829649669563026788190908447715504784942913920822944430802647154548623348139626121412908931659399058192547077330127616858097560607285713247265474520543602795637986326198526425972873383192515874443021981903239524609862276732768601714965563879346610177877790897914584042525991962623790869582518681443949972435148191074767714654975361242233732462767790677418937427417478438957641247629496949374776796126608701350652198306833743116045543351140585042578719075636860220393693658801052877097850517506452902143425300078148606067818416911320706846192830445057283664501657429441888426366540346287395473793734657850672599753038440073500757896805979935897494941178703879995170727478483119453223747366453757035143695383521223292956211562166556512881980513982903782358103593401700920453585006926939729959881681454078745786768106284252091433791301818739209113828629006761975786471565102414855837052761736613521686540245684524507903394792033619724655180031199283950115465015146445217154713656004825499771779243862769468751626665363522413958070996541723194251765451724058772000720963525651488965478357514260729231549425598053179899617201241263803429866452589810744103885003503555607009022739681121776019815907090121218257737897791097407674992430118121670185042764543602768788000735886962244603701700609410470375578702971831024040799788901116872927893424256446031782512495103823944099172297775765012804798968562535299927660612390403353537841929177082943417462685669999810810472087256956653353897486648514880920367494307337416990061997460141346433438407699611999359519965319916973885606373286769718734745671054399176369634543498069566057026838692498694975503482374759590984518416974031835781560327230772628282152773526352781700227180961434998004156141243475290417816786187277249238606476568339345320767118007230916325464642485149937064520148613743533244052368873757353833454056686817225939471527018206329203682321344469154716068764031604255391388365544371655969036330351232863656537329073379145345765724178196132087437384933883878960679602189667278225769604783569220356529013170058633453166772152895449792339341935750872673935333420144671838992429479755336138585266738824147181101981892782776626029004683107484937040984716109208055083615488761092059489892615067029680731195762972333945019796438927181732967982420539675907084353003358672667345430204801223698450059047625053817048533247295272335073831943062991801086191744944532233889589864049439082368931523283383070092572007323854836443456347370374249823711559181447992450243221845811450571899979460061090377932358743031029349801913274183408209284239011417552556772463375092373652486885629435594317256069740468518870669849519209790178752493841581697904470396813399215392008076428740004858390163429719478186686841057904817746161425982452039318004250065116171437062561014886531625392105005629123091196343801124350578895791303388533070018640542643366379018484253213236536161326075904059338962151966835697892599438225520028218338979865638538232843868731209179956834767244838200964869861940658972877609687783469170752983291178785632988868771568759104300504552607333338174582961606231771027984483520056814368452959710015990801286596796863276325580261445554969856512342113059946354584311940278379183622776624761384173797903322374442917056727557317642742697614799504220906037678434943255041510352126069576706141881027918203678276397377117973878067045075451066502705238857784413804673207590501893145526523139342932367147857034508890537234761343418046174676088495500816355989843480076016010772168194521280864146104586258674407495507356196982940497212325206048753521425896798685645548646738505111831072471977103789932309933558974393856916350136547283460091113166447787881398498626688939350145373073788084201259952194482427823171448153100771375273733993934142411676659967084598848699745988071938346731055833534539615717309146262428719365651180761154072328862037985980782598177246157540729772047845336715639583934846495304001018151323636893026821743819601570941582518642646597494528758923528307604767379855950345948878594226270371769004975216100797366410305372432317300939319911198656180958347805786285837679317624143993080674704220934170826552745303403560796791732653848588665766247449291500974163426707959264589377232832717390970731929901346698584854279694478881609002761774302115408656221624131868588984806062489596884023656597593369119412201864140298533943494302255655001802287613854626637253531649287392425479032397277460770755236181141562957746567797975994806602140791048274030401239256290603087113915439359317191356885830892608382589457655628107320676698347627131203542678625594746406381356430538969594047421455229020160769975072690731646199711462077590142505762871455473666312221354262642550011538455007231423550981462112083511229480358837037959022133292262339204296968678519142321167249376398831775364628647620116296401506679810853560061860382428479264076211263501571566520418713592385428947433638540407695430030732830763070618326267117866626806319966408039847210245909767886699025058799151868124192281899401317787506858922607189405969282468132936206292917014438086492769789593689115993304389896362200069715465936230827592356941085301761256432697725809867982119940937000330809083405637328443526001488863632122622630425423857004496743259984383585247274949675082771479617677640253741383047358653869513867835326697878219111182207982711473164470121834225288116917935848555556952820102356895077696441648680892364091106564592455283996079097880619671362081767067016648833129332398872822243063411596932547476653036216159620503714326932656067423224313547017017217298589623178536228941821793733624937628322945260085148345348546009719165432636969117284269630580790222966706445734365254964598565160696792590239504483624695274668988422061068935333228650521104364075620453551002794023305444763357838985674876995506010144700855975951999627716433091561720866336364368545123877795039247297650651698659390037761773927655635288558808258071584594847403130869881499687230196023842755634861137116192357251120459401210879146620296108018548066228505973157509871369991386136007433882721374032002246886590841914536427890303254633973703462568821280737717077708746916423227970349084261066928752886946142828741032178852832022721077903736774357043066776883740385955700049103158060382028295047466511202502998875820571597391389629895885381065840611296587129217325611498495257256957505264123879234630211852811461278464158925144179899821931771290432694919938480196165494939763666627829749444176411023230568702160717542652090775180848479383210169145705903913388860776131309955612324121783758407227319709342734995761140850489616225891544364918320465011033563992486684785817075412824999758196030684255348182084202056888899618311310783521840812586646107556193573267420745344540311599843913908808475883312975704122941500572890363319560470248191264199631122522937115431697012379706337224934295913115610309234951352204517194634538368622371634939521725970305858382437480861815473397238649685746710098149709698346071125319723341844381460840916366468381373476147601764722175515213959359463042207475134465799867996041823946576341906229628515510641085560733314396729064834074330023540575543007078204596074561934729694002719188246143870262266736080400775064671229702967160908772100571413421753120288247811682602839000111301765080032618128118741028574405445710248404230161185908150658316783718613456198876979358294644981993617696116416540215586807658284130934003302283849808090368101072861571906285722158442242760110812795066029042658935857904428446054555210907614356466311413842897077777077956142268506124063256412817512517984922728800034996526750528820277907870627665910979194934264890699438534704431789294998541846718594512582177484267056480144272545629270074452999845522837064916075726112517403457714547258285605333136750079331752458457515270525410270030260809539771684937891876754600860957654885028423603412661999745451474985804250300215383836291108085936976154289337636243648303213958349227013307280221728834535767698454945390285619692920551223735397776016995365855250855588606019484264090962174863309447403033398953491024659992852243884682032352248052137220053912443675598587895665403757232721771801281371421806825173491367937734223984676350566982199993555813626985801611408538345814049088253498550937540011823813006221956611202403578984120133615251545743926181177407501009037361827179081929704294664129295681303467674877970102069961911786459576612379112890406770063887280598279290717763188445383989034486269394453029944562662732641030371088343576173766568745211575739022823189658847078821564704272383899570215076020747067513575191151122859687804850619819664963814611999962309343820503389961406333043226588964795411717446896073957301803365577259657956232056727063598277538670210492013619147057126749174798845485466503539723748743413474642125582847575934217715794503167934212180885752696722168820614424427002236749143385234953685812829240043478966181152572920449987787309461635522633787293159919851340372951411795240131709599711611101389124319874414291143487796064335031787149689750165423874718847777445158469724710841462688078121368569235513097438665175507269509900600101851754368266256603015904314875910458819671409943494743208069894134370533374005585436571127500201212144779190990995037383522146188274653759435397423822488653356872164871726235887640214084827904745967629282463227468962257920885175843513248642416278751620267887974767844903238311639364328534657137614590637738330397790120740587076002466520850361236316549505680388087188701586598722658709535843556575992878774936825433890675319733889542104364446587138767413534682987789453777744243748737909097588237516856729653569914049118332085096427971821236471059543171495529721824784280587668021052737289885192458210657846776238283963070502042470073991988700065211513059931239378220150126712579351144366218098014947030314392612698041135362182698241125295812720399034831451591365410499302062173324411315553073200743887713329997497121801568463988121828632706048468529100877767323496739525012798147303535321989085043646796146270604889833893311830563864476984375452846286003863347475464440333032826935904459470635782993856619282227185104544147436201228852966635855906423008714564973719514797935019944762761351431103492225384701463963334753313066527054545400769288899676571856639448692182172408017691180383570168439319345253251092548946498538145089579453657553961941003577688380520523606715934761577387413853678093116418938521684582180941275166119473055298475989066081047331201950656765732088029051392021890100408465973008561591609629041554974028821621677457479308803749244860614086895503437392724943289935501013896311282580523463002605751842766617944883496227210038425834833432283755034786673990390460510174841856019139061199265987393919786367842764036104263777149165664931509511101186361237316924265169720141300398766714162956107545924009543067299297929568403057775423310344413022551906109570184594239399107561374025145503942524787648406061513195331358235274173045923188377206895551241516631220356245206515369981747206278312479979342520546229681346059777637604840225701933756215380011678115170013654183161945669936701852859287694211882081233680851620900229978969486379725380163243600492964748494140386468167320316825771535114578376869435501047978642640082068664489384056544954657723855159531204090774071097165166851509958748463460872572094728099443080047275508594252381363175316353800727401803354746269435189898572754706065460996333681082143998162659484058591014119648049693832750697411605641860889868305272621928807927637083874290432475251703976515400795028321678710207417200823221079675412491061386938016666221160788338828150924066862047089886153532526320874201517715667820701507750167080411777297941568113726349460984138891164526909724309551921735225641098155805226346193404496276185389452000244135854015368806139783330599011825044596553293741860416065044597039779650381555189829273880548531634513701686420114568024513562809240034925556551652036556480979163593937078983819740310125952448732753556926205393476637391893359824237234633917316024223192654935918244208435816826940379453463665461249767880573759752735038251803743164383950863147858171840775259909616929624799418156543930639260483020925534537197051723940923636508785313631542012061000681257240408574068543810250394458296061562131651252794337060987596420455133905446256493464562827483830994799180433079118396486265921069796760817284813685493594642225299732668275176970350611482157003367561620765364147497833144241097326384217750227862210034814939058199599883511368623007391701891439847256512843750922848357907736917170609211355563729950993332720535826369660072142672896367415078296586874590650394735011425984745362396293129635091753343568247686904406021078759861527836356226413223642007296920309085872646099990952827508033145650154341424234702314199484879694390554742471570731635733146918292844300263326421825035993436960543154817971837418363080260284014699939278697116042962640445746873956468391182681997159903134772662811397854081480142622572719294879292292669729322781138823298092250735889419857471522231940517489851307516981036619553098272892836648104802878363349822890378470206558744033280679463798966229317099781249464744019932909013128561653036889805362946028307968323596660177208475731161246598376669231766875649149480429758481533967642503902298715977742205040304910271170242821492039266975990013803714483758453384376784030740838701658572397905829503749494897306577032888186571753357701912957951198949861751405551219338405119562906736586286452683722227529775433335793508944806431784412876258387454981815526455232906662066170295193526833533941944776999830607713758830724671535870690752884580567041187037567383656407152465826978697301983200920528780544117177727862148377515345262278754270796729614982142097221693321997994698181513554341971575555003946925644889999112955314689613906017580167637226024051852773877937827386949263162944477818533058606776060608001471807162205221646783296990516177057266725662971725788839166528164953447278829127448974763482700260986046015486280672591797552563994293393262915002777970201724076707058340898610395035409409971156204991775668093212529677295955118348279421730650043258451108918569690636228961511129274221254450501763767763063372384983614523701383736714105467751621213729837451302813914710990073714778074427019374972452161240504496882932023002100854013137259535198578746650279574678427199718296365465077372162083641278848445083817888246626952192309876785173153836969812430988413291470569231280591680724125147891300539510503312727458835739538285291317695346973952908925347892157043477476763088251351882365994796738957609274039705998160133815474842823147204209436200775493186804434763390443169082990667754921183609310475703109351914815929863398013172342962384105577400222761672178328127878323346047999961897706678644426761571729275293613155337430265036700101077045131858355524901069236288068078231827250319052409570962246324275104963668621376019034257650493429847522874465727186223057172986004998905184051304763574781254498405744202340698394887478306137409333592028554345542044318489927917781439580723297302084358974433590008690912458048792093862615890142912633004173272324211939486370880226777953373807402579270818099080229109760993295691879665983853526063513197779749857058255143213922034150576630382942716874077589786964291043574282619105836286860372944087739445611333784110508042418063289545439277966154355274066771343483286559352524023836348778855007814460364420497765142509975972517030095407277448907561925515622930867118065252636335008680031910213473744030747512723059920090088467432039744985159597026948275937133323668559212220820756534911553043978219433609042253202776477382058849055179562293307810915676339030841792423621588418914312507084184035187660327736763672542368586073807667190910812766908980119227391745312825294718550194980806722950974440668313579853688998189128649585049731967624926029743507450906482747245013302538874161945868268648710163438733909787348877095818979583879349476519118653350834567550269824106425563837008932442655025235160497922824909256229166875574497547041155168389299442455057083642974969782987341725148228771932451160015792203907383961604055575722500190146025348252268151916791257908728851594529394862576145607537771224821586740338959148955614044071071296953226031235388721069153530182977260491630518443262506511378943462327558402865125667526244091639479733172197545106635947753833181753076598126073194203682664330575559826425128995787591973429197923121693358240410942580074706682211349887481218173607237569227749845285723882039777974316905577895083402435578889760218729021786429030910682243898422694174394117125993080123803330519757488679457537447267668066420464049077486831862574813246376196447149518910365797632619062531484283927600566109616027775250994441778644628146634413002519895488766499396279671208748157918525984882029464619480227639874579309627138021508175831447923216810399196144066347198923829571855304602708466927843434726364980078212537925606819657275519316277715908745394666610651162179858317477392625317652728682015427023443930924252235439125207781971087241564890523604363163758581651892020531169091130925083842154614013893514196953021135151048727647677161975284380075747166420553264893270163640319495099971701831243549010868306664701931995489852708943627067446573789002891345615299238754193443923751712371543445722156297165895418128369524516548764471254295871010931704679950713273815176466747787290066974725663294549485429353040758146870780890468694451700673295091662468103552278358211527300817358664746378502468258578319757619680661872886855748762722683283698719259943053498602719067404689805112205372689592481628442353038802665616326485966415107935989050013674270494615129037103606755860908232926517234530745487874678853789052902975856060727589544848233570080276598135464874366121153280416917428757929968093289930976952926519907280172249826691850917707123710083736086599287356763286975961955131607419170746397338542921539573877896120219937499245124761181740368157873705915962125369784604839033613106284749072380843885147275754351847683491671945445176057057689037420490487141111973291393689567433312567389389555339623706884183124958252670593580260414694514967502531784172208087921976954250570371170943420063409158299727287434109391050481355554852581709035572658024693925574056500141249568384476058401420912135053674671191804692578086101322827332359023996369546268350647428154108231435691524236124003139024815582485550123757471396273894688726668701873572949406210432876466622404246931317601497960737580829989538303217378707669304827556654814855438571264453571143034629216440855683005301543676618682081043687042288148392240850630950285649287632049873786944270968422094553205092082571677324760808111075251762250040528450241630852748285154776988401151719181465410963211848441261787797776840188885887944667022698151413697803272204440627299166821162347251941389137332794041809175910061092106847563435448752741416254997204142566935869640206959922596521276064897211734763047024620588658771898409894331472313862025408114691868491936611559587296978518235640404277474279788591275769866718552266885982003582119295255707726224603295913530520581599249326134150847083834524153850202986232712058475853137768114044125855522914071327900498560819493739965803989766056850287527562014732628617313335776313264037871688894690020540434091383323341000645587281666743540934018080364939401454829774682242037135061535756000868774952160390947928481549293134138699691346156426500330452393683747323377557004055861917518160002636478008360348403668931749412650186462568829569864714943207025791713598318525998679937934451275829414718209467932855625688044920128167262078851162885283195143764984142019060994684649532765854550263873949531179325464840093187910941705801827704011743486107396799149569532850873310388550060715447963615841215493057484258310876941387381447339331261298009212127604146448753744908359041966379027688645799819367463513148571040637990561729805080387762142331897158848099502159228190273223624434866186423890609847686932526859463436179835594089323913359206111015581686542750388714115350400829779257529653345233973168430080007376989738002962685489213320046724786654130146456035337356116462313522950313136702750131243454241566044393168784885552834652960085711466138299878427123410152035414672101897913640393386785862199539432480856253862547457173785295196832850167894985490455900569032236193092663957201778034849591150599953425272366848172966385139581440467227479339481150694728347566817826857407390013470256867335156516342515858735200971965828878706487169036175075222494552373056734753540831995924768493244560251016275506959530479244334165510975624756310838089887352727653852550723706128444303426646621637443831318911051099724806746756822940005907639296305407560879166144205013522193692058341759238796720414366235892707191400675820753656663662624277572705172432942197088526497291231618612909404883548229113552690831291107179996513218952346136990311786502304624810827389935442932405364862845196816963649836018119755588943395723280918769628288128554729247086671100433907855926374307806351104384892371679101217437002569823401061776047363637297880874993728886888781359446189242435639299560810280077131719416173360105597148433935346164355212637767587049212066488247280319716173319641777924116109629005520346551763768922914502348002373915406058377489483758834303065958935295357932755042992717156355954084774576450090155028692538349732719598545329172789193418792479072868044351018810774802971376247002440399857332650701438194152642105149307440742963721295658686792584428885334068133897245250432128656737304884871935171679745772655676042457389279093098184666772373635345607608396339116636502766432651272266293098975170785932792746076876258443327051697374650404361225018856032838788166421125982487053078693078531620151928761304268478334260729493895816608735917094993373621340354809187567105246691541879219087081642992805592518033807663921240991225260923041430859016705628319009997358984981035482034018836082565371823347413407420121856144790987463669776061735490032083272805523692030132949877021744633824892576946399786170715984040663351408522610796252283981747134751406204803994002285612507037188104279256257423507324700842139287342054797004056071680177919133249021089771452620441479690653639554625358465951224502588228860066298203720760078609443843340835781553826340698362710148185361038951292984941207958203238978740764643870558793709025648268920107040471965635842407320278228981697139699712981112209948754912494022545368023840368982047089684329756319496118084265389026850330664472003723017718239674900036222385429248092625639680306330203612702537583593170696840485130106122607371869963599309103484972729284152670616411944338239607068267316169182206547631520009916657714394764448243792847700940829081908375711871540336425236882552668740544027700177774396298961559216121842254643219281237266711091365401710261641275439262770772888934966110518914071203114008606920538998156410561420354010442645225453147835571615510410250605467429123387544914243212749016494202193625106071894696119903933828285218331150388392896218750793848294064827477710228688708287634898391741139932658970206377407016728047624684750257340516794825083525914701576213268328498448182643893824976228095280935819508076521126657818826757072548036893667152955206303131136011516852955420959732230443314156396739090214299138514528990486214707184218464246469233388012716345169235565703507606029371984960018947259071581480530898598534071619562510408629149462825492784268677343442331557345678354374477071002968278443207677652417787409668109180875616092132962173498232424214496959629763022167050018058362612775775621829360886671554570001088820365834272397894373215472897178419833256892367410458989430257216009244851493916999836233478078379459834154873185983990071653502981037336445955257092396852557031791774333540139111453183935394582680160385079351094096000649064831542682619027558272891981959951177032289516860658338263184047043754296020817782798524841014194328013420998376140209872659406664935527079148191250824427685317046934603493933796464251020627880157599829266214169198707537662902383060487874549708333079085843467275076666269837953218228093703577054047404307966115181036027777956605628498803086446063809765156306481975388355053387366745780412531733303310329658295547227620547389717146457352060063740053927363062986664077051126623539542031165742726141193405078193125338853620134938559669565144146764401523155351107716815251957905466964449998325460120420741821932219105965785690471076670005860061582419826687901268544650226784695837529233456667821065204471336708471910784167504350041176064245926672186058153752223583820960542464925273153402724028127847420871441652545457835199317941120057156508478109096885546679545520666136349531232996307135220493792176944274590636864514657586806635419671029511695020000576180169901702486350751333222860150802879699452923255646608765691519078447991730973610749399635000225137483368548222591661413038539241112990888117827782724677569374954787331352971469429054314880238664883332755319786113348877951217388187070171909442662928067558595501429070612909104240077630286484254477885063528002647557913618572610145083993254250613449081693415282313830916969188139346797015754962198790548582106872127978886571138710701655179258307179286041707973336361427446533717018446330436983120628677553255147847851613834904274445308266611055032412050433740256702104448290472562430076229891166490624540115828631789919412263897270932117480105989825428430589240919096297273562581928648332541122452733448496810496736833238353624447498323502489371550110178744805470946289287496866112387263307730213773021686647466045525855101887643617507394045953705520635035578899386483965359137967819757865782908097458040972263651277962667399480916551095720248240073222132599166660628594691779599162706093967134389258231974984589630147073651804881036780262398269097169330868585834200408575943986820233108432261960152123227643553977133248470759959693101920004023060846558283515048546644943079626136982636999221281099459545325518847565340827431810320497784243848992001603909118738169993534741244792215369175666023062402245815135082294672428211143389473259220507403837111900604653486071452816550540472070542865655528742417859180589539466274778153423706438916003506582761994833812946409033645473813526857917914617391328127655941159923950531744031164500961307471841291655165873625993264311114429230199608689286086043873905234223775979133836489467101191970759809604926923598912926267663222276351182387977025465287983377010764583000241023920636724326747980000354478076554946005888677275190370093759246933979310869103391935421075301587183879455027504443377915818142836024322071751429111107025368827631320656765298525033868157539187768359729320007347992066892285050358032266174268756099861271484108472211693417691884952560662169830632200432259866591484807436044634497204161703675422911871371270640275900396336817824617253629713159326687655046555408750102944830551955469386908137319709235710102044143948442061314672675853571636520659766658079014240525733513747524840637659692971812101071928952384025139326886753831471544157318129345804048938432189334330166848343818609402669508558374510277528465010195174625075581150927870250173086641065194665298505922560260516088386815318803714982649315981751632814466091532547563708265916130445899279730516663872910171750265935090830470348825967747188140490832060659149503786658008338531342338499636085831815330537281964105492786864553818550410936690001229321832094263032360602018172602258330977563533331937608924675100321825535966266663606382891377929305575698286958675359757914655443798650179548697521043979323534005933966861657109416580368455707869048544543448995725931827805655794403130106503552495260741380701542056689055979490141348308619977696463488371018673643935904133316624266875769639478809001047962491946676246363328760557952422251454574909097948624049759361447918690525625161393817544637651493121498023721790225356806802863189696721959677872294753247971545161944428564347964774182036058662546508454843511030452542114874062722687964670856128810628293799206648170463433894291398272575305191866176369604104714041584080236730518264588360173799545688811372166456609006830159122701244610205753237041220533809105790233845250378890065442117724751944768960037191158549167949829873844897094698500354795423069313278412217602833205988334741561964056586896108023310710703088507672415842949614559415835366047984499347411120875270640573674995209838908880340094252969307620594727281572697963330522453157684792582722050787608325051763154357832544386480235058974281293590700426391728096031941593345313397807143928629468172635713598784312729177350992380899500560279062028918053774785638605809797508186062219307237230338950426157513159633918816788480740954399082588959525346366158807470990820623727438950945225173710255334510312124457563124588161419307976895424579376458895149482157331252691433295152227296446709379574930695378561097636983072835478634314265059559833303720889775611015574173328239877113816575027806297253766666539478816350779602225467055751983005036816645409494236002754621202088006242785242589725418957350504479212618401299042010055597137486798948065306732365714339375556987236722938917257346189328364556902593440634005112710538726312382326371867611169908867729531656881756971705445506039769247203262397945238010347779100278983422007865718978190581344827534842010004974818021077886417788468833844058364872396160482510343331702275384353182435184164479445074725830230340726649134149396749307281599361224153098724324749474903289558475260012444256258241101930976913442258989469806955242127467221626232642691021367460060288946773925656682139520312760301590110798058465835766533868515541845321355213972232184435326823067020335999756548009891118003832343743227422683537914141335198195407868668965225915579684737181428735521292072882213992670471346650830051906410533758431720373890523592084978255773239258028862404576298036913369575743104409936196709984499634873571670941787347434621960814107505978657172652850518226827706143049043549265799892307542233764479982069454446867580013947513970333260949803670793838631575448312117319777793567021757011193354381265598853258732867866351202203920821878195832377950885597797454900270250065925004722274354366065031185092693628078412580813299676805860560811189647033180619805408635854404813328326996531378939079869604523730499480733913146930834362316900175088776315689130853350776224357016465988533006778673416082008220353287484922365386998063255813885743377184252799827653401184968070555303616191646143237144061301919945632910740756452551786723101598119753660574398291470742878557481991664414411594998676531730145019791611769043223067237344008399591547346989252861738751681010044003562481166002562718908421283768239704808743242453357600080632404541063877977816507819145434764838441529723417031319215369338142857561040124713740577144420936842686903689031649648870049186913943033611713060047182657801313368467870919000865105775161485087956838840814734628360325912211784212695120590740402833992121171785180986109868476689555602399475583782229236524448570935763087556227738734758749633117871113555657588397432610808587463931649493797262352571724763586251193889347259277001683678594694892917696327310487799289072930165388496554056024630468167354209556182863628495811040378698022183063743984096325951905473227046074793496963254491522806916708585716749445097834844320612995099872842776996712927366169963998465636486656745244662202457147766646226014729897079828804608227986747354256334074255929748559039102613405333812719895480766908003001265342221328512954444562767031337227003678562937647690366888888034162087749848137244873671805072570682879864855418414997328019180917947240167550604470538760658140396018801021073072979352105924073995246458969725495377443089928975962080257016246834231362884292930564443174639638001976827453981820309212498171823426631011250294676381886293574640282571792252383764761313649170490492927298636821498130532958055992378321839306902467425796245836758673519407554886173599171776277359739726632576785764061720418572654683319591825190082344689788773223047915677071300839881256804617173995658749839827130922836742471905900382386939432820547596564007272493634731298848961077762083399336059999734587853850503242557301926201213721335336190351903916547078535359257598833746236432796272535121815805841343379208361198073438221913134469619624885395242307222065984933599846235434482941796984389689578709349505340432833303039883809353120902655714702715203582732981915669316976251072299216452271430212898845579062808821838175333028529124470606951011288145798989100008775769650872249593565201325025629139652021348122513992625149358417861400228410891024034493590001994121838494504226637518187564181308760882447423628600182802754559837329969038407555701700641983389678039024500696342860726411743772598264296607580007611973712514635046852816972206237188849800352007339644994368289902643408881359387200012922117551864522065492240077956275766858231665478403940274116720557519887420117332175567894548994832445178564580916933963720339893706755108649970345326942065249903240526579335121485087728079446223325728664094646526641267519184792971013007083219456790173914296001390310724345476361815169549642690907627806940721559218021780567575884486624040522717967669342373151006353038044548008449204209058805464396738167930343989147920532664874992362544257571560330902427206872059650108389727162076970812345771795161951768851675552477017516084284316848378219085859287677256917082917846750914282326087781222879474313688321987843094094618721178832082551910219871245034151997487309679640675350940210143828493929551561207809092879547779158340271125848921365172630398907021526473328423668055123986018166803071021595690914791948112100169002743455994680205682297610594867018797140101192417611106194840969053324365172499929673699793850100996549575848118883881495514874144369819381272688038971625536107571254589817734928609092042362391287366541417092077970726650433149409375832308104754605601025855821215785118967182337136708214402160507505368226301301360113831766454615874838348685383878489093289429795334972157357295753283401294361717229603317815956762723095611469769299441223057280543688609223277237638584572415618320606792626439947494098929343317865789778088532705797582548774616965586057011655078397986183686389840797694362329326264134463832862550080491019957196400316905171406673051881857598735175142332972409415915902045844669748056470950660056722046814053132822770259219912690791851311985171637723516699709665430555647290744537331263722050530705980525662278233061625470817548850462849667623022746281328252216800769831313224625434394904158810136895109759141318993450251087320935846802010213629790649754638178288660707931240821353062639819101064318626533630510111698352074397228811252556588941080183533219351933050091085388220803535658122308432427305808848926526050207749248203620311518329449952526283230056902259287687543974282642801615156765595147373143060476790639398380991818782343834188369955101418858679782509639839238157836924451664397458850083695884985682370163419309764370167828753672357674572915451527900042682033719457437325642332141041152376228028604088956392130710288907077178385616991708711637174742925132197859771739214688844406597537145123090938350818352446249612879477471899783111571814995053897978844256159159966337038392774843415733931818222870898155668394908901602766788785753564494569031077977452731163497263594532916589147098680348264709184359705692868493559560177550303535046266013551553813941135343760213950632738934244613293566199552406898217475034660111689128132569359557625089789337230994485273892069770487477254953081454205304666976775513788921003489843753969378074404755101870473310720161433444055368390982844620210216289278064707422762709851626032126948962085739819121541910198574017062539726418975657724050890074371899178172525196174208394978766167359376821984749584534851779719970537579805112439151704952387309620827364044532941339809797273478156668906275182316923588998733343669182123874377705135386408636859237527566011199245263997295267854779440143820773839763001504864638226583946619547917514242866414165455227048598830692720739717064384140750353385863478575416430992604134327148541808998536839504469316191752635719022582397739238206432274869111317460275046415878229463841352155809922398670357913543602405757635566879948776205608461240665667191266559465243639027429579582113241512459434404115441162727270296209328198068392483800328053021628335575515602335777295076757094501292588759665204132372979755718863294127333499215157891365243194348990921428839483417691413847124760899056861043309923505726788475866091564949717531294022691702881150337958858100574390254992561451852474264910555481218485985245863368241307002871475448446640432011944677346773650613620073749675140604548914426226339888372680864081505318640994794138240218885504136661880328091219387668466952990217077131539158503695259087914445386733836971638199579478353085926382421840041953138698122733875683863206373880577913537771514481715081432602902729454806854446024076522487129433667461392259299475744722957161057004423970855152835445255286010162822101081595102376649750344509669041711302359915881818522572579558558087169136765578854099353795137675499252392551840815409881909258150790949471478262247752309812272494602316011092845936107638842377581227155364314380778488816298056043207752479484755538568067578008256722638013308310817233604716535427490506488076495239163551600126920824797767356301124145286431615675573304258387978524554627089513682480339380273661035733754405723140312804239326383456632845816132129628290094100021830407564832177881193355209135341967898787995681997295499746537248791332907792706492790217598689271308133051996652107755219179451807737182732775673202671395722586747840499211946961033793651640459564768835755633241196327180040131303747225691469513710198730039584360103534641622046463384330833553736028978919273808784771217831166093714526451367409220831371263876029100436241371781307334183084006626082619177812208904983427197705351191143120731556534878793858503662521840479459737841813785508363845235039133914783640858184402213001839723811108888234609605764443410356620922872984198261187354451134441395874646737521954622320164288619740207070760375502469456976350449874430085420530939187314085451411691800103548059582011676771027470387668320809642574996031942128402510343783497642641567309368047136972623989019694253388282895005262981636286859716480892511157904864482651382868586968647749625432328996641699362686815732820650414162547299853233176869115836434496544716377733128329120976503688787250772731390560093782350299644386365354163189720282018191692041533800345198346775125912804090144470620265362347970179895660252895976979988726911752566058206183687965301878791392864769889263121627649211645105342523150462555051272156115534408567847156327571585679858096626465768693729798561601348830168051857693960574670923470949000135719352739360400800136637149287351105814179321658845111003549482900459223170473766128762280013019050647769853528588951016194004406712721868484066857803904050566583218654033257158165318338332295111153349497202547904591041747581560540776958563280125193684131104471742284018974448515356125020012727126622783596075206773627416617157546303032077889402581706865040793089194522106488449302630062575566369332091944966665839553167926555796638046915084765425948471760962490683743286538279808519586103738215311367376785616722625132425579699733703188102192529776205566933708283341263280730080868036535357488245786035297857077714852773045899795455482822945289857114820487712655771817237785031664489950728995899231106917154893041907872943593489590103602669924143493119786539706253100682877830526573390884330086713012162047015323376614888850412391491605429696776854654054986223522001064926759902464762422698727785480960221217002945543924593966075466693885870296222090408181999661687953159400586094620529162483230973238318098086923550382796856606491202492515891222301140123812676346249080230363594081658183261301326819711830005831823690655292403615153768014749313934621781284402563654731913076458824851581110111199877066547657938219659636615426122433243733639090197426154656251639763834908065818281969751633964874706079233550498443243330230432984846157385876906407515819755968208089052562912032945715065652941150764982459643638223018916967329190981848610165327400486008069168958071335788025580939316444033708370052393507086948241590405727821133078218813366565499153223403642232067373380490737825525696876167782628654421191396640505998653784041585379208157831501667241662550007608811272429333362282114697618863227565060905633058842199651755783821622652363397484399725844370723566909984709582774935763768077991111092383950956586575795526200755626158017688981402452975496750294242629377955592230943710506245163417711720000357758574060709770713255263659698656871283173816207327384593928566329167890937636073311926947743731457887649911698117005390562542252433935427602482580359550928582209377338771873911273469772936329419130415981119992289499057530826304313455037527244679968655567582349888821959401141846349252718177895132610724315828861302276778352673916884070015904329170989782996859445613352989738561685859708394302044945406807390483791591821279529114955154667617709484327888033351811107449356583599880408975352254143914150229612361967074442676816686920710224413571587787819016328201371124862484707180837539215123694650790504723373241001389584460635687620650133953586786226094488206350243571374200467888143356679968597754412790077626366413258022272047556871165379122989366708835212739709156092856866281441283686820873096297422444418397497464005453919950683063760181545510337010208635573396209985739605636203904277181230879425694180824584595351522782910853067739285595741294307049033956846712260882477051873727995826320078478343242621106266828617114011636955840027117495209039990970430907354388156914263423410127921553902805065020977709009348415856840226516367588374880036535477978935905472694047984271437507648127618720884837608754240991383407875690024563492258997021987380821559005174868564434707062743088252927283315083125317561726819028955074554815699552741041680784136805693380945667859727356850584180563804848115548089714315522071860990506877979570376175470837242300391088126709100159234421160704091562275043783208512217025393316256075341906551374813362794720068391437288359730335866493730447581760260666763604926042665070969022503896833522622193523483312423224195272775150418196346426554347680716599648626844578985473689338320056541698902899029569679833807260371409153454872126268249951991226254456045697530961831125568230078220800775390817626114426969018285001926320177932011529983734556668577533778788928643213992183185735678798435099485064722155950693333326092775677050706722541633688801140305440051987394547052108248062149757152808887557317063838622022681777756940863152650991995429194500778770478111163180394636759834211789672134658592823509263843073004515004113255915086193363193207362229529017066060403600972595413231581608643523723249816515480217001929026940244704877056777687306456269863675864326215295152890019902434642331525668897387507397077393733957146212598532144901093101511476468763186704090959504854966978136848477615853581732692893106825700820738108546659839009387163804763092349518031587837883093267886446175875522348317983139327068844213471655847154387012332972662670018269351949346928784923567994356480134184034489358830624202817863049045038908717139257765007705146063407861883619682107196487365310620918735845021063926432602467601566421495083650629925611265162500953302487173353062189277890179011027972978328208469559575725107807730557367781239716118361992832412865191102381527362531439010131255902770916582772679843496695975114064157980602517786925077817854393463281953924842200283523856887597058827519669901827450615834148654764759818778252966046550837469723583172179528439954641055733993651259017810365843222872339625010153841051561456890486751460338689255441962044267720297333770048061298742411874180953660222127843619522034073587883587209103212077971391146664710445462605904770976501094860371602586553734241359565797976402031112732204171967518660511365196079115050593169996629892777860270180551166324396684489538317304675652900077490766039723731813115149723871960284750827963257939105923239219543169736299706577459106243147418081609126387523173225463127236732676950693151299295438389609274239864041712250495280244022004862121953614977494112752987343563503890247268180553605954761072186521767387658293009122624741062128938143203999406639125159707599329564133649461742835513802434034793697299022484464866126298677913347486630925730404136332931722577830381714039920928694143980959758262870674264571341572715002478638875569699192589646087284212243008556655382772528272458518069440915945292082066087725580686529512144372472443477811041169768095490970225937712498913153566036773636416816618344602001624329216289218684189503676187720229535304895565741021901463770193586444883082570186874109377544474739302792215689524237514897542858225029470365461263781011154578759320220165538163834426825140554433139243965238750027737466375823227705827864138240957858505481380597804398041938991991863383127823067465705688581313552064565906966515378865045178339038231134614503809949411024136784604803540909476004749370383930807605473796297616571038814440339743652972061738768360266993320267896786482467786480874328819154366875284530529876844613188959146963750875831155531809468270492213677032057186437319259419097077898998629332918240891091870114584154471345104511128183947154455496876619949052631500460340016183171700286751936527404546362561641224703161256128024893302364730955433358833931938995057017614722910333372346886164711222416606256402725235375523725733185099473164841434195093896772236170797844607814700521743455393603560853701328824607812868398289433538509362351565631168677610176680360492546170948806445177134887801380031235311902615820882876423947770242039900506899154414130942771124455020003743555954663596610309625534462097107064997686322865479055927661646545402750407976071352501816818335290050182019433945705204247362885295293909959736919040286905519659671047068561619047820163413805255082078707223988056175047185557612056229567344624037530965541309772499520811008005164494258170714448560987928014364249787593536895164081644339524988257747168083406760888325460327186305380503799233024071061091902004695945871392004177326169819310969732817334830794640611023358323417595116674032754895749793565311154526960012714129241289553594760573543893531544374619534369159285094254420312699661869136687016708686550727749919693780264105220436696791967743356361783674339384218486715349762791860459352284254216269077346183575051533601255333270615928879645397116828498321080727689587029490275686197338405104748965081828894092292011586476621638072492146231716958183628765533139678963184889880221110267363545741038408961222492621900955271213660816493120223525837916221418547189010721558487091550240365331520217403213375602285645926468734195685182824643014673741954403693840919402047165213029984741595290973034946466090018083923617979565621974069145024132026357288644411669250054584505523624767582229975740278903245094022343007757635490244828122219576943074148047179702611730782926577346849495376282886813635566569963435751174764531692936850608601249830087396045790074028829655811630511077065691881088471812119030909740728747247753989691986073168530985277359148969396207935030077271750781724023303817626644515735176406160095277433303046412488319281515661700678054846692186338418849048816264052268092989274966848949471682427602198010072529691890299892723339781654303096753005872033756805327193040402661650955424922563327045811494271698954779892521409813389782654838031180742469851127956376685117218820078343683318248751117134380244993398343755295984413754538803158605988515018332353069272824365205585717820675440900177560762471395670325667621280097594543912109213551493470653725849508821007768666285977461194091033304124218861693970193657849488613331347672859579947537528388118735630651809455044337855095614761264472238273573294053958156020956854457259667364962872981090799025974100390188970393814111347952593524719036295012111124458191442595666116159907492196947663849215402149958118604872978705549040662903761965199383243945277929453132370498790014510617696199352797616233620659785879333325429406527300153068621579352290360227399655574528835866449831032928541709390953366217427383190022174003526909482439957921149999780324693174010866662432086371023997653620771156810878493470895129352614322553848790420452338831371138925600806256957606115303366000160484232246781612322632933841270872172545309302312836108604199428718871826574311161838060413199258291946481108365917429822826601026544309297699325194945166496690538421179005260632947606854397725457422259893468396731004128079617459603671240997060780292253264108534621055441875167167492054413833177031097372925967789789964161264775205127398636056295646214558051945183261367017818359201931294146846992357430586215881333365663593936510694614859318872965441946245135715034950455489162391352796658725036201816339428837140322710512483635991929339713558863374850076100448388746046999172369526529011272449380989228477149949662307286252603969826623848967684479615637111534686788408816537871559456402125159536305395452300762600232004850540895762096485832173458318072403616044434214385357451572694656841965344122894461301262254642029000686790752085065211783681245831531988450063050712200745575951199313250499975668534318546824208162069309338130928272856721575107274202398940345308350013654188871754959902021295971545899313721773869935920511028996165123162581755138675230629488174711229500113742441992295356444312630067175538351772739692804424082443008350706538771421489713886267750477047686664321848802830511960210141161725206694970986181174133975641645976081829717285885862713190543831462104803633873587517728615184978036056938069014910521520914591549152569584507916445299064938892874910633485558223326427096501513359810244607146393436476248446719659136808273726859828392394140332142081851083075832317932870413613497085077845697763084235824470249963114793692319086186328095480129357915673102481936253983682168441342604597745363009635667240322605240767032443242317086655839859009599574314459872434493154873422135524707303117417897823722470539229762297792366594420186479913866499252955692753228420874163698782165696582254761418808889866768933211680519408642802037138744104676999580469752763111257348508069588012326566166317300893112397122362037741740191162005244439129753509890002964940434476443405455836380904032916506716095189535801175871731318680006511857161496055397870675280268604636787920632876538323045573828249592199743451723787303672718494097439275532187547747866518998517837177393875140143337550677934247129287350099660539288877118848499581934761036387617886517110545247172513146838031952705390979474621733000701770057554479235974594420656040563252623568138277566887285339667674991378214223906475504808762649571388332984981572522536126696277895695529692385281376905840276960939261314836763569025303193259959512819167900759320963213811202197510641389074062975525329657598393354964102478712534119941891541800471758206821024799530400181111456560914215041309907964126808056140813183700384150428960403332345375206886061564018891849143387419191864464932732904960174374477421466688930454742581277175442065782787812989631110304597812729829501163241906913723163944206076804594005983275235884605484614637355604670944930397874114533711419769905354388175515462234161200618981549372034466925007338555092852740772596451701486101161302914191053600698728081653078959311348681423174592424350436977574002225874343801691487837841015780217546263336332182478132691333484647734548490159348219739035501107012396390519071807751082602508370240474101915858683663902202223794554095472185079207033875603512229367772762901585647812906477311099439446315625102068870282906819920955703433471538420855160986392487761241747844728411785259365625069291279445082340144257427118847219864747404677425753810587787266376713114908309943577855642219359031689405565783453103665869172169658753809382773159374311615785492616938190120427269595759032966412333205296324983857274918817722176241032869873190639077025736720821486671953072749902018486181041000874654232339748617974387745196303219739210032320585787287088976845708285668148349432812558451153288022332004008877855089637351340321206659439125970889670503891176785532658497238522488747901533550255226266830066567017003666640682447394234749093170050865058983288887223425195107087021559788129673414847425324080779844904996371700830227806980984239369500609923653035813839353435576426259949510480764585539915537731743153221833924799065534315989536243252089285081627493127044610625367878787756280811773376938778081592022117734186639596261973292261353699555285132630897206681501282382159272441847554304982987323914345364736765044648207635423195698441811661885886646275895290435813439242092227351907931259467078376762093729043842345366705305344812877099783221432372527858937339086224065963914048066353332588534213180133871363476100440984149032889786882855005301576776869835290135873752140765857786635575875924008843422072176800170871965164241426156831768181461618627099588718367086414433447903872495789534777549145365396035673538425126932657758345313539634147352282014398079767590176978063698094182171002895366819630375770625158570990593443912590232311090378707010427915802021143370747726680457617580620564222712537220172143752151874404586158754349684786893101157398014652760787712800268277518142226222314988435276541057864453418285021513165616481687771670345826590849833888908077157157229520477498742507136001635515746655624670257238981409581293907978207012766076395017866842578111795556621399089571286527873481637472727052672915773815508963469992612929177125592072314008028002614767077030583669714902492750158682479544773407449488648296876156242958323365535053336664645250666359769468633582895674722606621564062578027732380054009890224612509998210420220776529701538927417899928094027304683158539831808255304920152256897902179024293295737285095907271537914928580342233142951696341083261068443130441266065996763133532300810805405315504340220228097058971449598003884300368572272414979456790151757581103960040660318779652606639535926816660181981576293354071112016679216537740039091253634027414310399307190382255857829918331698371664825904974226084591529220815890054323071635111479184320932227804383114859587889626303421659754627834638689630526935396212714604000373337132391508445376985991324879062047329584788794683537443182618616002103827007707200703877486590007680705649584121524465281635727866765818834480321275558039277180062033093085794245282287839009263057352170289137639646326826200848770821032466050964378797880445857496573959531298275673030142815287411540492272657675925549981718326530137205442642145442953378499434933174958567333429294965483169661980316575237319630918076518026161405783642608957446907987834358524353865983735450984478797189673696704206873154288905768899177636033783692408083272859514199827042930875994154166714555398870541765708377760178035919048548822168517134237552981387381686358045196393681956425767268419429021434166204004677338757194482387148098696423556627536864961755608840009931395629985252585577404904131385213464958203993088050640464934749279280674938980241496056536945463664101832012302601844996302386941799134945004853720781531007705915080310241103201815414085034722498230752354401541451250146068003943160264657067580076037187253809803033337705815988158243366168047912639943546022881783507447313508693503431837221803818450329563870956585502772592761993739447991489950487906264251554086942645011486181057424614782323810086757364036917293411802509726716636861287122399358560362648549212085348147477347521208052505299261602680723128416523301348454824683384960694304296511933269000914785696116306528555153734514861265508840585054042292659580524632955487337074871950537906451849000439120226888511584384292246237721974149873843523480503908066437291133555078002266939419099249633143929095941578333394926357760394869995813440081045787683664047332426592735679858949030048119124678188783565120896483067255985454206296692242722181198426988935396454358489730951870579112731483259787066940997387755552501427557804947794438576386063546282022993856880534804645057232398402041434841808372244101629355455593884958116002954939820936797304180964158188873790926076509532708954378083583913525605349453693344688261453914003534490763817182499932531079548863415760613416901599393267123890654675177372564836379655318898054533302842295043830533544664017437686241578407420748990159102631266408991752735599598090905240150465735916245777172473106357856377192503584217563999502583048381330290816842753915318473965881220818635381742417967126811753125505029273643856284697362125660835422737453915296780937636001467703061594662819584896811493570130704518612771852411359376719075434613893697774945202873471499504684781338657204291097412139034619913287717317361956252333934030682140966840246352476440547879526300210877495530748669312618971311164924092469502204433976253074607287193964021506250852444261997115721790191051690830190757454035065122643607076775330240686544238674101807355278140637912885773289054793177819142393790906179425987324427520914013699036888724477609463146196021034980070534105576337016131768701077747434334482844454852083855559266928989136661656785521047576020165870117951282653238284372807564660773269092026666818355108886179164450931159856319962538664043656973903253977727357281252920049229944225890340138184728395254693404698247170556076929472895419064188103307322921692562356344854039883517801243205391929424483604855336799495730039096185962810575253862601861699400365888823285408369294220628449732427704245534668627383099139235944084221098002616595637824286551163278487814697815272375967337008890012683335033689978996724412240606217145517683013674281191854907371474693692651062625692574592706096043458580253369094754517026250749345472338763367409651023410366464075909077956386774997179493423507084358036142218101589973566756916007451324622502265430452704574857353243809521156301884755915633567760649442905150811329025673913685845111976361562802905892192040964886800754806298072429076431556331867347526063725137225630811843215950995310651363823436391554586230206589871000341870082379711949898857896854991475119956612046313401757224357004160517023119932206489228498765575614566228455926518978972549135596399945373957180695634488484871314888535100709873777400888996776072532482286440966381036250076758937772783922781627279211708841756192111677762351168607715238393309637616620120500909857360187888763555588068151928563829210471201287185480530510880062164632415303510032535987533322601327623643787022779316883635200455572710737592763567903579269754910927497258757342392533526283609922594636737509840721622503823321577566503130363304804614858147019975939954487277065563765740069226436401163226334713057922422966572784359190679961861010251449419916718274230063041610521947360839254372813965929434903844189900545953903400727615674635223858001935700288875867065927986129629272838003538814651093298963612261427680827446473649537648792601316155985458416417209044360567505118642696460807388227074142033087573173933920268712924006389057847752723173449429112458417214447243432726808227074274358335833049477861917071986116412049939880284197299638196055028280934786252814911612852351006989002423065035486983895112684053240804051795330700303227335361153715386652830573585453512567792258520435589131675543688904178594438710933371724551095748098415408475813147354517072241211031654830411685085340388760672925664159886111460689890782256793436700778558269273324791413504535122432233761464966614222644771100085622757310556699751389271376103086474214071421028969918546131987593766505418283962189622868988179977335512898023401660037025798005755864130228587126106483531907416202295578810454541065288747006777761872262972684879508845022893977423004682302472248975943493662364313082939501784512769012064585883206507951048150277381661727374079015701168513443034038501472692302841118220961510304315131535415176534453455900455287094816975084874112407668628063767538686315939978376635818873488273624956117399360456845007354051298512936386719951525709546186587710794851456884989634804815157585489622456298504679002468835017644169072579949602959153851589787782651057087864058472931230349842801841273676614786772664614730121028604737476315263666295336324154236707150325968632869402788048500295974741101490990565582975695735875767240839972937265765493469149598162922342810241832698474553390466974027847328713209833167846277815134212438877472453569014701217944246691070034105652530168794351741380345247786851170723458126062726174404673829702110474678309514875771144153344709734298896062769242934209059537180408592668128194403243356458368321633263633289795955956744286507822956975700665657980735967751844301624381530700446551604918916754460966518607092480460654805447324999813763762780591383741053535901132514698549463892280393828789211185910030016664905260033620486760313423458026645089441929157448222047875225608205083659905863616605415904275550908475155311765368437705453350315268687848187808561928847920820426208411481563890281626133014941185223293680392861380556835423817080908586402002359682226536685612375839932084431834480976018869399804312736178713348557725676928088207297052626291187633494801117449691839861947647571430603141177593592368778413896124672862477071131661290397388299810037021160813329758176339459331895829538248382593848970056541493604199213800940747104081747918913242987230353094246457755892309427394597876701174937376432145711155232961203814558965820705176330063714116238087148252837328368172246042084908880376230399116744277272608844410878987948132182506397467173292960012991616266602376683861715527935765951343183450592388387999028157798775194948215950493463686222975814328815168014090344145972452049602826619164717950108692508126374963930482877714734790437694442086645341751779444101254336917474869953463930458997976901905403068062168764639302532763147768400971966948677152778237441218126857804656792270093203501775312694107105394027499620519790843774181131726968250598293172007152906290160844898835281042130505883527033155926367801395777110810070547945977611003952785218065615384264303972157391644393735472614397305410991494451206112584779706748746535268289784697398938518578804774393141137426450514261789463674204301244033266983729374119613826551803113482840775314428524354801399763750286584287203578726259308630222883262258230450313186148167707627580878108502368665102171313818917359632443259508404474271013832576093870023174783315481852516659614887089419101368155930890204566158940698138355332855639658848247896855980347058011025805447076072109446017814183228718888273310677370853129466649509915978480978531700621114334932056862129091451678439642247398669412258189326416633399970469186080933725442208371170512658676356350988909468061134567546034134661766777278120093876425496390884454208848216344359654071162637562569090862089960278859639233035537656450513864299180726428744907173705983289006349970062064170998689936385367298472141026202824336936534202576874687588836669621798224654364483505377069147655780032102979582638314687061959249958374007726249067123299946282342248194824322391096162603409376170216504644259533935111350624154593071321150001161494414159002761046566414139744109589156451650054203363469301305058398022256959443576010000482381342876954668736330967711600132540446505445664494008443183530032843649182833419551761667915301404544195475459583286565957250319355015653762509431783077989720203138721758034527315022206229827651205566589720107226348486156674628685079865961913624306496019751703754619759908130077067595681914306312831217090249242812083594946052237644839188357354027480955147654798122866503497170177300308986458295999188461250204162742777340974176599967652026655574761298764219923116174550042630232247326775772125788493690625815744309677792900684291130443739975896137541301954394453714353506822154038217602313253572876856376767901913014123548417820200881711701627256724805309505963207213099881030212202234414555518187763794067396369108849763310324312621611201482689050121071873518989161128228432517912972990263075564191002500819134969564060303329847796627848682527869689037776272935781672598521599210376247573444661310389534551616813101886005301877392929904894366807323025023314568058734376390727140907796556198727067578475137768849767501130358663554197060331791058408898067867793182859624250359620008511825522795890331082340602256030033011956015188419790730516080200576901474627964207637010436766289756382513408469376895233283056243007336245955282528050024256580525606622966922196026782413697626575973397964093094900837744096984227741485694236907105486919785626746073797756824235877818670300053861433889972781389036706890467964381617044427617186948271301366216070710022143827509546310545332539554539331003523023103802406187505699048402027359544314514531746684401747811040938494294886991638457971809194977676814969850334741272793688763901927655200476715939981517587201069435999984555457088679343910300987063916985772793826948888887873916951480774490521117385962740883069076262409802727924199742637116350122344812309802649743369704149286916311303896975035514204565501241971277934933918271275823903862351527008400786136015223565860655563537274944933541985847697744472350397735341555934101605510481070372913380201655456739578440900457222129374247772309650961697354408180066805583799827692453313168717239366287277632559089947549933581996800848252470872082414294901456075117563315082976863206436353196965180238598980235284529684704822155884664256737822169499160990880098336646217441859655507253719700533778377153636722462821965349389888729568333634352393043766989224769184049530355881432019279358899062273041104692111416471721075656644677445756024652192502951674323284444052560583678590391995365950367361335333866154067990096986175497665907150917600959634874886691206661547625085254951927324170422682258601171356198834621185328382100931018739558629419623746253835141597906573498575705199466163296354273014133005746572115481385257224115865942433894738630569035374546156387131039288309231851643639195196344572314123058789373426203546715247314143289241774288874864257752862994163286228007194007904543808409071622373688329769023959571712476558982997744406998695386280933827086339175128807837524756606043282365036630220596663397899394450314763671121574579924431026676896497212741818727375073986559383575721271394030833053203671872870877794337441207910720312000248013744998182484895324695564359335163679285768048809485160845180613456411373001246112125567648640646490654085003908814842867868585996476779627443677063119678982207005133023248239236838104998729350572176480424182437022019760186833435160210997984496163917389277426254793505110392245626656702341754504117172913992343358150181590269961006144073736593994426895502981718870256039517572734388975972860716682262442383575266784727411770322420595308116421641709050322978586403061999883581841596600255629659130285519457969593462958044977412233049545282142527022893428803350917408252240905419119530456088450163588492923837250795096058125532094087383525729004837229150712786214638365583057914686650041841924861386510732401526578092197963919528523804960189879689803242497651352198161619044956516284989572101785309905784529888548851751666341051872338777354172179199802185989266484612284446529756025641324993258719972064439212274381095143382915105641328097352626520073934732613905795775319067226260511127178218020268612190775756131418736244143003037850459860438824805671555940549786408449791036517206751155953544465349618474636420925031536904529258758414294803787101221425864647227650047233903652867833182904137568522851641718862502386844610713014095551088363819908896489219120647977533527070686781804120000172263790992931338449706095171282921110808268118893349911182390171018899956138414421849881873530464334369467435713587859042166672898544427973331113707557402792090789828156155839141658491644551614345401900754314980677277201515172839908448001376337934725667041017167566030674488109251966268987558115689995600081695288128970875621296274532963434735153733454528871356760591091417288858049303252812233355635143410396657354760828455315440293029278458170077216771307024194933013716337342144287420690319554585132764825926001913545742801907638486603364186659321583291396229938838050000023396132505348413768446452655261793858465722515832269789303214207368287911150543512808636144191195762040031985447883575072145429059586735320761023853464424329731333995719429415055518570176577457906260385004031572132512740906862208902465667939158669772824336163646900510643139215522574714691179674430697214705582595308989047272617356216346587413037000985928352765982280716065143853712897065832459683375226951212086711534210117836459165895373568714704046921885117010181624108647120908248168494737633713980313547717523544502702644019572552804185107568205293949798704417700124607994114952893163265532583762575458444540027397295552527030939214260013755656438989341353855196400113253617283527931976386320039619406910712570268906733196969903181769269119709638343078347416111223691178325268079362589944567074273194941835720077525402590151504903550059089490626665938506118554531790851973117813037769057648507904304675585718979382367536057503767856146323758106683223404070333471542247998043899828302582584581283523815850884984282989607732834953096396856611846783570207687522588174073359758374102330041160519159925020077100679163348725950902900318037734990212599136564862827755675123219994787854902788377411330575908692277855155378986895104633355368484394619865552135687234242909032126877822998451501767336690537912873331753045783478420609241218799822028798247980329593240678889314870072631469369980911589109589113906720935442603770238176324549523715232305727553786297174460144761751005967367127515839618846877401387821349835661056589642783401234076201011020248361340094969276312404093435289639768737867093733077166930720816558545579557168533516181136511123383840537681839228133199493454377966989755943200370113142217798230462024423072267580548051411006449406161032303218279789761130027400610509047412502753770503594615144984801782214252436518168059812591236636980040419940211717659069070860847835443483695249074384042354066446266134356436358881995257604840089552568352859107987863645178212634377063521754511044127348444455892481465929576959249271109195741472664662596241095001518822557618877786392095627907979601287550896130993188055442322465429447769944993277759356327373484203581227200391031031216765083360118251398040642196062376216047582561732260473626261092428238880292947391027274456790126270409144127618020851748896116104139404276923817996918940368074680944208814465833205495078331558756324324935477897169801906468665075045684849887405879155032726360903575100812987680110193388069743597300585555055546209638109147788465199566402743972717088197287222985639814916773188811038156941482303407548960812986610790756994213258126992531183190886143284727054398670591493165393614338166619453172840255589436466534238340449921247084842790055767058734418081288814730733237764470728560185369869444272356988528334035202937934447498205877347909754472765800914819674840419699151800236300584910828341057163226484023208246309556962668979209480329975309698170095596053423935922070477540247945157753275365092416301087298617512652596484207924753296976340919732631305551958864139738186338349073603985546999919822057844909785936216180144359606562225048251800192139540780209260819218952094035512669237519338752345670744093476772162747483399908719703935053637850853620009409359528425942657036339649136628221894692587922893236431278868797948371179427308651252911535948959729784146737186156295793427091610403010267733753398130291218842410181770607665440402555538127617862059981813368407323223980646287070615578952719213433685309063845130538782629618745204753724328141438319994378783131606548051578360187290418220055959660078753875080041038147927426427483841246507561582614618928981554579872305289397426928926114941853988828628672214882739884187017790098869215370351208499955708568290311680099804650759452530459991799442204824054964603282168316049792103783197931375280017125367888878547774621136050558274855144900115479277873126474066513571084508405744637575300919164082468130854775906358765652218771507860741801123820677918514335364568303990957296983952467064345400235957681748777621391014950965970141818983658244123322567749114811936546523163937948349496545193027597012655271710741354738498566360927766574175317030771363021172506055485150351890669574446242314814069165079345241331737474176172766946070160146614139918863876292994777355028294536254633754793504848094634860472841890401190730427264927040100538649685829237541605165955195038869000685881871227752806195033000605825645777070189735606416093576332530788508646266278706030947889218881299633543838696845542889896134878839732300640616891594346797859889250606688386154673046474249985192142188022108601257012756173352351302110158626800773108258309812365671654625466894994349187119885086550249742010067696182197244997984639499096757901201004014610650661430531509128693608596655737854280637458200720354128052073052963636417312599223056763643205346377036608100867459053146170612422701067626449428720237731125976472714313190341650656831325131414120954748183584258828018125522139902520916607510912661495091790596551120082962046001906014115363891518560238123709381719862952380737199486169517825170270220761684986186712298225634232373229288980745731450732287294573927970164895533521512509758164101718669457937581250496272794776834139727700115103635845338478588492319509292023346507450899928283612010679635892704855245947542453754220462935989993486908989524094821854839757846919988412788009872228735152702771393887678406630668903740092791527150512766984703356245997478425349324730948790750218954381236169800787528034503667297334457691303212559909676017481072793493909653800619979965919832562728867000287017936073737365316038721328850905219033524872149836430471961666149561670123583445411447892367745374054125643482152546010221284422085569317393438283087820660798691670353076431475241529131245517770839830322982649220765872029496973025988771551160325647855573418189464739583251511225464943001386684398497830243913913367542041781715626726469121152735511732345048194994257491888347927071554706576503406230748688543779921788054296666094248048772723221634643304759823404728163925581194187801224747322932283902156238106448188730371555541641024630694258787841810935579817902775032325460484015439821865158179170809879896904852962265664016152701350596367572156974333852951708367085791870191297320454508231681390955975356272990499765636568451004893184812434287990813663451897108805548418328081945580210030638039916680509753707163477624748535659175233288428254584454320443170628691521048859232227038366559312683732692400548566998042442335171042465477319890477473904343465142627410200721039785953752866334024546748544086964767432524063191057473095038688722021262411304001084757365407786244196785029612373513814245735047122966587072280938717810101269710854855015278242611378938483523468070365756366166460978450148663654208618373459973033553375799402118755415773775076826130969333489041002672063538567342921715971681890067354226854951648120568515441385464560863637582004775489494576599780834602540762569928823594973943305087267250621177870085472697695114657113479395866537269694320143825833726373797560614272046518035644509699854806732736970745778173425914777994596495771435922509467421154941001827604046592110730027386454805942109020363204124631135674136825286429344997804791131277220933828945238344725134977936039826860074632963929473347659533473817168947253511079507452819094765452818204912893824109471283446578312629341974046904300323479607462873568277874672411415817652257002464329219864378413527901385104016136644531176795603693213080555088909673423913690546913451819519445335573900779843711662099964677852273096940851032622109366982419892597340319250546052927492505575773524021587319891564871683344907378475872638695456869288646664610818830617990120842839785086857451586289023005288216537956060106611610804639675209072225908612762748175049011916064898517024477262199850878660022132019288783171672083173623447450472164090436819923696208084858326931818789845658460964578615028683811086073237010562599446335198385669880655306598760242135417031730246332808740659383798033003118877975151140716152754719996748108090443177124546662706924872437203957652766717059813830909107108418509903252451037026781152904806375162383115502518012210720547000077561876325131091184146647211701339686551583773061969566078050789923928334094674532239076365498083773826446390658959460061359750697895416510532497123110734531922504530770510717906469614096622832378496458619422754220549257721930453379039241274877487132701166236831851635360302775576509318848449386009091130394001745294773691636607740328720349744528012608472642884978466416745863526054846754790518457285054780990207275075291960360132445806898523277261364900877907552128570856738581153589194162133934419607149759513445362670147359682224189150757360555612989262720652746407722330206717410044492369794772953944206221685938733502597326360292556913702856184276690738174245681178225604863119738091871449691811571842342191222589755170590158252346323381415159297048974673232396944297386630560227909375095754642710424574694277379198441411159027952294536859315459090084785478819431812737788263819921763602182757292942427804612994942717432965733883221431602427823407265846953830054983385554419088268187364658422639679349714650206723213763868134085601348337364157389634243446469190732448107154384432074160563670056578159996459970010512002146238638179258892591336890382173275466674452834674942486603664503072614733175102824826009827791868313669721533221613752651039910647763797033905294491267183622693286628165468738315611060330797833047721458934068792024204728790188039408826890935916421117024807843703113486469704603268726788546570956638468029778641531323394272218311857094842173996021331275587823729724810693463914201970947426150694933966213709023576494247151358034717918901711289584807995924585051217857190327402941034267651860810810938365435284150333668689145769449753810402509685877411182616007702528264403304456230902806542544673529444962598276654447542828468311320832109057096746156687926350533852326990109625355314079751773901997193909010096679821548975454917106313668597882604485678142267204703198292727702512238496389312823547420778760836003151381168742066742836995448675282223847783202716452549570848085251007069986573977575035920089584686893060587713689583680285889579442671459662949495845717555402218324310724626692948583867548014474161055855561157901800753817492561113274115764319778870875577758858652006802226216653959555064595706190727901456331941160098728934403395628782184313829769420332240743275722059195883242549518841311372727704604411605759431516594835189269427811542581273674448233794402242547005073544115046525167815965292726043324785125248271438438780557539381727862850951234298166864427746700034045965853725459655932022789637206892707804716242981857441483598801348847251347783270365718173214183410973310795395813553071646967487141519043291803910134655786201264291155687498201255469128488283553097329325417988732723269382870292452571804888943685787368906513907276186182698082770173714269348927236094609674813076930100599961857440660554589976148128825771614973344915436843841460227891711731099750862817144119007538770747369854920546296209342573661069788471130094246681380076097375063366970521697822352789748752482961095147266185806779080224409747129528078308195208859864747315366744781800361562389833741104823224816608217952857792824125167064609897365765568006931872798236725771583695448547639456118744922428373692942273371533531143097687585525027617964000727074770423300826766666257524338285007084107323685329428769867976117192832282051952593590166510835971222826490408309263988338663915159310504428271469365265070268397969632495866423297547466138022199484028798522856062266195109455926013816672628698135131775235811085030741455757945058789563962898379647262717508888699679135214160411485976447037340387872822023165733392081012588546307318128011595054543154189037920753617328366910818356401622170429446451531889212286747920619880288008488743949011095275704264335305300620744881550978387442883779478008285911462204537337958527877431658477767188020218288385835394574839900982793798553910716869110784044506608620981162063619754493042587411447634083286012713788004713048826635263301032221876077141884641596098612313876409051881872125309680509488493714355504460307962237613057206577109771077988165337112672045850901514981677838813956712605879707065218013119921774284093682499435665545191773089720896052974444205999889825976199945475829990844137615177465336209136761074319620587995809928282604216819783028579226568024194656573195621786096875835233465521309354620590942973194670653905455129469154278871155296244322776031290117281999638136304594127606808142733906814877186896135796668948709101736540946534427321609937757922919585212357613588103864249972772941929128672686621181885528811793542799052355006833316660946060614171204787410556500277667622644798646565478973081114012100149227100509928286679566533015759257380126331178475103030080727264881888802696632672085211820590274837472136144293328319317418780632123601692042640269315421701850486177561223499020904341877295765604406321860563346720264907783149801301854381296670544720832161096509578280664463036422933342067818787708306077759448513270133307779061964712403991277248554071567898222632365240553795975244568652360520540459320991798486039912674347883178164966324085956694864799641548373807737062862769952024621154348196654839356512682628110407556851424696019168153887699641538603365474107794941520235146957137009075098029206167447195020304825735147991618908672101416760618706840629542968232205575523866324158988204115192217616856069770581978772339230505039751459770356884164856343898852348287972233112330607849277286664908232875622807459150348307964029331800864296759249760938209586739028050502050956485382794633254120368414259664068656662897264595432075569213544597035429791692439240771609482884991922559476344263152435447261683313990969844962751997716568906113744570663851291087586507928083626758484941931397201329690086460423254423918924944074069710947631160691824502145477661642589474685416507646340338143805035477974356698968698852606140750511284888890710908781740340549784226223541653262989789940267157858838034484537431367577862011409525565346935108038000328802008229047891782748257043328250468211597903829795807330731228517124768966978138528062255208587419000082360065898031357876355342922657476930082362970274965886889791385437932572104174820362649113483455360712913328556934410640551867324154929375909019984627724498984610283583400297895786299469780753857366276120974709652933635981342057438569125986308266919746451175275223599740723728137113474154925613590455138133444005867008201127255468206617270891992796871258660851506648578352519399744474245055277620550766230711238104929772634721007862535108313036981907902427313275856560689585876253766716719975895901804632058802042531615213499187636757095677716272116334039915123184246951727241627418337401868304793860441063491133382529995717202398632083470644303808996860922175084747976558055591961581494556859415744033968388277973904264655918835490031327248368083461460689468917779424141516710398512550356608702718346112595432413441819828355988455341039745430282517855557776218854178702211548353577955652138583158130247948042333177464326459997276039427598177483344956525782457957968367752446332210579291496886708561221457044159139826182816526422199665138074067708910032810756845707429722997803348798274357050675648357848123279372154800376804707148667786673313959524128476559790384124077787976772151797209249716334352120910414791349644841606347575656989079079067722884004888193549354662342703561551243489852852311518924195475167770172698052393552215455696976507280139201982489945774691412516440730740876274175210866697284431008035538383597692720501566783701960334113956952837630572063649950325201460979206352774374154591777800394898671904473676193372922856539480613931907171185900429022168937836961303216056013636899083929556136053595694523840707089678641236165292000070858598257626168646256322763167018509000017322177849571440487601551046584134276113940151373367486829205548919892601266025409138188187168392520864025008641906013817876741084634896133926217143736676763138936973165221450624336933178937774023429918019137742074445147523273271053066966781577302107518445429741361626021787525847712920964097642114420445904505119573442337229643643056050946651749665996641227177089677972994158746745666319972381854075443818299325544735069430767443623601222751486010448325723208307763827254567302946274820905256119330804657879704448842346938464690742978472741439629327588014571113486309021782051987868206671391266953969778647849174380194029436170925473732014256334377677757187198341827090511151329296826503571265374742101432508914121481970710653348864742269455871458599105789405715713983965345193217644240108268534700465783639213805997294396628649980728027355977286953688378063987611826560443145184976041268821668415395144709242891657252054653706043901459098536431491125780837680511290768384700183178514701994648183545474835616304118065227542808064834974746851572084385988471011908978742914159806747257963359899255716668632945689115149651602857940830775256260367696048844621404540764889314153426394586137552361090332620127312891486393587639412717545425146389784483149273070890517385834297292667070840479792562874579650955507288466814330504697407741102085748501244079610091715096931151759939288675467298973569483787333681801600248622045401514600917570178450052773914381420780074693857166537148902015760849348784595958548726596590003714552870157710016948271673515539969587755948285382608564831635050704045039983947586716365171285137844471290625829575926830110949709769490855715897241277134321586292851576552597545831249161404685316183281665336934012602985149585560944336026066567824623287742218451601118764037193672888034483632252650481815454322228359334105324795177903012731881123471937474039115604817735826336324297976280688327945415561001507984416350649931630211223345784992638811944869459098055328624974797786737853718792671762834037989007829957957051436013340830048548864777692572643853799029825397877992845242389587778501199545649879291462112867946486492070505353152020440167165912434401436832647161048774230583317450765858725326953053917226579349150407149196936133448554149862469748894141129381591980282761244425295752749921167058714785484830423729218640661457340611245268246475845207247299419707707293365311979683446623467886090832734283073826992460207577984381328576741622425088533520745711890364757092440299611926100270958214684489889932796332553582680223404895173790163521227805000743945027115894775985189547773316803794144330099220088043902732695346090646578752446031839597661651266139915036284124536527242337672184212410139935398046666663512828436937263607145520827961881700985500084930453444123886417505666306740058919650269450287659115324463888376259310113215827186776693901583407439304006906954939481148749317118915289124236796183951330897780911100133336022462727859184361693554951633118627703255969668580206346549749821830855099444672537211493541353517001728116445859914690619944945036883027059164882970594355225434799733839763369821323270878324638244980333410598580938813243501828500856307567567767296854831974918838479418159183938954689866967373918397945119026059718307971681005300138025599331854918027238792804429931362740753362660495498864659105446047614321648114399744044304898571114138369111908914448152475337926484554927195769257763550267654631671468516041057191908965103993332300158353589868489463173665551459404475244159392791361575670452554261904998832600767183753669020838809236548136913029590196911277571042875652263818619093108025585225009702608534030194571088702311382201753209350978236029719764390889647443624173171404530236849626714150536567312288669687043252368525209900696938070733087999726771999391289917973554850497281509745003305970775221942796735159269610466549164183292071244051807389655146050644134162059825470454389589865315086024023142319123324706332969912331805807298449742217484535123855819100421437999147777457512305109227897703912178007376146093046234998570260538024153567807951559451370552405495578756898902932397948905410031489898521050928804490368099593498307864807498509044482236952034849694814371773838575999003906704074263677190345641650079548325459237798472876040041214630061081144893017328314208239330700949010994007781907391487721611612531797519163087145295020578362935113949600521108215521151106809803856190611807809266894297152001267896319184411193382059147315113696602591964290684502380305699106522763988069402215419243612760710292679507485913578918333012792382192811723605618269739555257008933969360724389250787662490905714871166567438276852717403625761414624606126498120463354654476332968463875805061088382668506899127719080864253814209601311730029848124476706064865664367480748385334896750223144020171838129747963151824313446375307355463730763865259356734348819760679147821624655274759721794720077649831955740869088532249580654212783538268119443639478732539523203796937965862026148827906944812278250126468587408352651953272599291917144264667495915728594364328852886007003405093010575365846793513656261848466831300813375069562156360556434925767484015380675753134734595937304043304624856548333309925958641105795160968119161832345376902007346689290210916575997297880558592653126289468821289315440230938225629026910221843576420052600154503426069103997441575985342318412676311684414498793015710459340105337829818603019387867333078463781185944657914391124146200545290847319696052953617929962247598681888050605220474740139609799033233526145122288471334895367038606045133060523706056004000958906179667126759464507004864982276798646054241077896615221791033863261870608678439487627699349086431789252322327868974369148339958335570414635902460504677470730634817849352080519314191215060500186618054621869561806164730935996938046837428590377535098833438070479968966984678673195313991467474790023953050512430489305903148363043733893181189552213921069825949708473664502084345684254444214620009482412060351703667944065153164351153288117588819175459060745063836940951465935279655640606664298480906516103291295536088805998341007228066547233588244761951374799502002909563958471424113996278635645138673851988189352138990900533763319497988620493414512259939166240989560261225197344356351215045235649683296555641907093566521630039811299877139700673420246764678610972621191231719962130199915662982421366578880082976509804067463859910991843096458550148518004184969874467499683213564087487216947330016348629458467800027418773051013328479468731852287556217219926759003553883675185191927512460486419784724652078753917971595425034976136044945425648454264147503391326820770425424402663701515751207832957326986325262143043516335705747810287479965753701709290456206556979538825033944012152448856018099499288483788157008020877809785550647026945923501696044847855008969381649575355905098931171072600578692086385222971565706704998250200119851137516402076542914954103661190154624583378267029090401014475928082810273801332958161548173535424080313580494715106004611049689054472511783675186741363254348185129850960670717168744512994529886910515078881376528887844826657527669989771288037787662121624627614091171859597717951754654975365520358931264685976498772899372764269878710569535791547204157744992525299413123752420502149309118308475444960256936867017845946965618319097795588984900682011448611878765943195306355804315981100069734637393855372023578939365350251774697163895854186402127992242658391932664912862975235681924500757814638536423023765347466478902408498702787344193568457982423775994282832655215364993102197284919446587239639750893218758241152760749749849708711892350652319822837847974569577685262681030994276808343013146057340452128235347947028436285152225928123196904167152025677089009477842842500756842040381310630328047980838161653039149407355450060362775370185156938278208562847931570624251134877871321207314203312317541075457832038258692121321507923730345021737460131932815007112473524097571861138563169384572207189370842574704618924001026646778194753173909683976233734514037994090611889077724028328702797997421924837334605402824250968131839460870694703316325108842046040568740545163439789804344244422417518818022325653456768010871346051663969468761547870225468851495732413481492065044545978749631952948963302153918822560719828245356770019845936055629490003997165121889366375703297919790772811692276514008686171515715342790956467980935080442205597630706802738611992250346681277687159886447480262297482321505101094245995141915545887062253324843114738151268154999796094845401214503615479185376023627187180523995413438240437604725257871009572569945788944239179161439887720995866615340626756692439829358513342866242183274491768150586445980173587493571552615210098437820970430594323306732038717609267434098050526571494898998175648837690549738009696286416758922910220633766300621706999436575021271506619762237831300994781084809473887383547325963152477414504643566121660421932860185969439564425200359309589205125130171543244931510531298568575945121703824672689602567334792170699091100735385536799465263828266205436414284370806117218233880547350232781253611116561017699793748393023841579262354517897462197600557143609415201852697254247975058299778344350318717490025789400619664417724169674329016093498460763752665467489792755093627486538132966404105837571856634505018570272265870815004104320006645062025550853347672546315390863690862449729374744117746318789746449095790804781127174924840895660016986394923898114879691315059949947952058189461570318982017121249872427214691171811812710716556199315695330667608792463981656229537015210945159427257306020442588871781107885483695236023821676002693075194415249609744096775142355698711211075785415803586808606034906202723908511957802895529779400426491137806074147081521203646790444231124506030118954568188188536482018501514347985571629009920926684617673537978426489264874641532012289475170372828164636748782543630123371601726770055000287478705365567884549332690743114704172087097043910615188412918925030874371110778925451972601906369011307123199116415446333285165132952296312663563581992199655057568364549472339262678871556603913420300435227551005681051686413734831571891308239491009321475039102002114070042106214558086651270895927198203702563584017538646897478978937083763332269615781603923243055682639453300665803271520730784963286687956533290716613503649055239523430242843142768825133132265007785052757719094886417340801269431545541221372946716073478195853682450845881998521935725458405444454525614068081260488394821611422895430880595933948855697027608658529029463285508652174688403645501202629119399134026233032540237217482304395052982091998990480521049285065673956438836457079296088324445392035807115021013875342707784754616147741116941254173518905968304459167677227701770466891860361464186059117692612199345355888557594431790232943530233566835012783425582994090476293111166983562586797543368623437497241460695583638851165997325636156351312090515401504152407630723407595573186847927374669655083997521807108312371077554504343622424148420898229720869966597673002604208150003385619026831046197021972673815955929323882159883628984462517906918158611501752154728934429696574117756470060582536510697132958498014833974808425325911317503758889287913887677090131708345688084570249663912148607590621337025441345475044251999014382018031563990451134062885149337257166917189142167282804181279468645690018594962506122127702201389404913199067640518122467733820056963265100177264456976913960199649925076373808903985823210638946377029234099822294502916026090069449136579620034929110514351705865508807160121867223968165914412671342247463433687203569670841921771022171970411141358231378413082455149000575035135503340347909800663042808767482840844934326549437911164080140904809326117084588044509844138586431202666535175173008837707272866434609167100213492822986480555297834310357774776284274444049512757081496859116596987964587042539035458558804150140476128938172907010468825302660138280788339633206284930962675753433620876247589897669727590379247803231369307779693912873971560804944584908838452129081181817830416954304357715473254497098567710051142373077177641365944000651043507747836473521707705634825902475442539603214047218661934593727758807416603141088896530370652482822507309063262786200683055974575107516579141036850680354462326530437810280838451452138333884711008056372392762298317548682338614893023604010805010719400654915340639139696367322815261096776277230240001135760604638671106741285547148168896477859024428995026630693875954124888961886362984116950625379240948508077451513052570036405978386236579713676946472001525663451354779295845266336680003411755495952651508591062688056715948727328867720085272375950133402952976249870107841764633764030931642997152575359829501509460566986706853049731100201466064088680710058591840843992815267101369610276723263156041258977690800832806468378556196394235996163391378246092624479756940776896903806104054784480432546657821766867855994995438617175389471522227568396628824347867365169707695476465193709106444584254137223585051062945183818598766857975722107055745003169628045519548359479388244570321983985347005529770431779924747241764983566976732356188350887502057554698512248288993191702344741172440374025200364873770401996339842556556484491073617460517701597013862040056054529693759243689272486793483015497830024405747441877178308510387793038778166408587832483467141326033256487710026298049667325874830541633068265574787408027891737940341099429421784542308689634578163456440136854506125177148495248429878505500613302281578361455059533077670477551465976366378654846834958184294549035398493319583298382408239360502210299524858940554932589734948575755182183188931145569844867508421838581600664964929887806488771607924038398544422965193285813086347897383158227161674599173653584153644381239749679114861075085599710451820440364966297645916834093775839300450015089650279583398132953020303160290006935780255507490952539996829177169150659752610561186463802631215115846108662553361736950232997647941483623085670004263751747149059468404619778824322637489655122392358560868794764719658921978627462554098012554608342128169480315794958608433986254720716323055694915572904403749945557577403047462925038147565171224092052933487217024495686190488752742478032230628433372527967456290602347501900541305067921891317187695080603769225103209460462039542363068745225908755050194077388409569196598299060682375805424315781923038648070482424134566311911771163636407601716632068926294533432535943530429874782349628667892883410038852447570503482252828099672940271198238098958158385610274628544176150299344062113235028784364878471815094607373096421686769597797516085333096093258450215988702810709913755208302483466039495539920457288604113467539566871935940199632732652551615815977549002360835641973215080393575276392953648193009017763545259498433541489517299004849449051197359065484440407643920148211666973744571429095883910972813429473353728082072930244355253646799445883632825299108018578062548540522957190947773562276159307642945239270321247108753207981201055364108154413243950242067183300521776847583740607069332487358760123885448984529893998501023262005674756463170097901099820122642109977975662807147042348574401341761383555882336713473296200629939688490238358020622840289406415630070774600142646921696203250107903744269976002637454048303497156335686690394484708159545230946161999073722325585375992222699910151536869923327663161257560593664518505478350852845310973220713179656528717737416659931228626574305947652395108785748857839503311486947952928350747961862670260372498274273930198983165979275434546992776565410985177443489304966360358296257916566192122354290488641014178530064961239130412123869084825615321744789119041071976978407558166669151121030574961198611083772119617941095890552572096507556275664471272834391372398170945442321015626583740031310255449765284357639219103522330405951503643920112910397627391668172837802034124886472801383317190814584724283868420473660413279483133055345318588996356728264391034621608365885622864684216675973827824172791472160122392031427293493907864473468226586488631568050696545187715511260190799281750968078506179446619190265653200711119151889730677357680851303982784311740068252082375880259592667424700420852241896065444730823626312673524276677359006198469103215740754427848293538756847095442333355617816933619179925785945469303964298109245393850395536933670805578215156042048429981876218290259365523132111204374633649407047784305741575495755624201565236641886204420946668070474127371867417016899812979500927702647449952876386434072815344845152244493024697945095605168507588844527874563013092460360590689511119734040552468786626859905564631294354532467935728117040980320851950268757912186586139047438076625217240481440355469387981621799724232437808266345244964901253733655384800762300626911111875450943134888239649274488551228932073266432919314357463762109318742644554012175314758823321764204437259890136245303056071770777021160545244632729762867962404261021905034847308048259805252409399886168818380172698705662184395359707729856215987398026576920744748588819422091417447361768878758708415873659233360494903607755608328781821648808036912039101673440492535442721658382501003096592441810685866530786046052037582038569727081448058155581435975445818239977400300851746756514535159030506129007886332127105493711679138478841028939091648444372447776459590292241673382326004214274741020965393944355536905116836230124724416231430405663780608554772034452781860142739098084309168319980380793142984561181737435943953768691563611750009380109554231227978413032116426377491915141771125332644873596059941343057622915031406593056132545009253552038821354729852320894902758166769758504425778880718295726266535235463652627075784279646444788765051018277939846935267840882501939842551027337749775059206176263932404319615560363155994734966190547375537579875605014112679801924584807197579527454664272287220746157295568818270960888927534613899071611528363783790832312170992375592306851258181515464061963236635825296191047327943658949559189427357389812971689104729309024078933093568188904394965030417681746479859045984756763325458681699581754478313233362305970692653198485504773030720848747055709523571006687049722235886700068404641378226902666649704762768583186153359419640797787896801560714018117796956170661368134563243215692493238558717645496331144678371151550203560516443194021654140196516585228456266320958570317378331458611583288966664196052034615781058490787575232041947740977114730572571130547703557111825641387051976498020196122270975144009944191814308906285387678633316555206968517381778454914992244688464645632394817779025140821777248580467910679523409797783397809254809209473333926225590365646432532839599349699011521045357676900768346186353552340336149178215134130773411692905141799614540457568775396410427824614576091641712279015698746064457439400002799531722818931259385242529786910232508085711037776647013368316189246470594687682659168642466765772741546494757472093054629338829435506462032894907425176158957171964619050703295323926218231595492081683811910359680925492237269200532505374371512000898945682722667792925955791822407332038807680941753045090498599362091856603449033898896381802956026810083414671312680920011969466952768410221250227349467013118187814043125120447417305802000225145733105720596025612971522391393443009394400357500177640556659234815743423522617812296208859807798000507735741448639055838402792496048472879201607377006242775568626090106478307195104137008575697234225765136557127116493802177307011816494995881831529907621046464110501089846538065829681691265298460744912968491095612696275895570470756152117122663147684815282500168626495390807379861921390151358380700604340327488675452091046872407987201426212455143830169483899997473043231516829936373418392938252421582868976481059895206280491998814848065747332423947956919455586801021027577913096155894380790320472978189164046594988288442665003215069398439121534099977656804216045309113255994181127254912063625112826424826021674094937676800672937998924831750371751305842514251787364650446421784393662911443134247371558164062702962101771068782326005304079582190763550758802920615708546220349182528326970282648510437881389208825798530920606658837958520163844759791857211600124318903935507675262058194753292280501121525641274907328559249789062973688284202722829617616283705265339660602661365370238803145343056549342004704718239000141690543029617569569584492680236768798044622227265500738377594175112562042269072393866333809435748194480596744727806630641768933530860802445416309299057017954894842663778611471457431182761787705317929433755211181545465670229589265924687616150597491922051169771450948852604346806170782321899605247540213914868833647633059978973787342243500754761009386279712435481727990684741703202488857677579075029306901088580618622521815952145568083165802332990265688381012381179072486648876326005127759506821199502659935614021430219590940312146412514418491553529296645304764968136121947865704114124508092914579507312956365131993148602112473559105637092511726020893298520195447981227908308282353521253791305757029677812090441307715575816054964104075806452755380021783931540437254146536137695691654347080286998954944787866413737448488610689524523961635437748650037902683239928047016619021545088201618316326830655484216822936131892841478894019438925527777098007870208268069066437767893285246076799823500712049922589625095005766161273329878673796035643258978716356283467738197212170688682170222655276008972974185043149369250467059049733659085945562246888714143256324769114217736673391545844267626929261776225126494571310940739367397755450279222163018162450440440010958768458795643102076297693293726860677984709548662289131365830373990708051798861845299919237969460780480753286671341750620099638178165557313122454661174573328843843186949261196124226482572736131848985540767145210725088022641298357387950396709226058386803123309575552916644236997399108603290884560846236104115125809199912918293666990146814255620409359061979254076753324118339973689771903992948782332054292715755274484274152790961146123075471849404451911633246361262084359971716570521492434174407614160574363678308433530289494899100726159256451729760495891441120645621508271678386156678645724698675927291454106328315825988834372012621469347623580666490352310510672979150628659754959414468032979077912169448529394439773177209544333794704159024928533460250048596930890460915202293917191341469180106423274837567356709701762363086169765358879183139929161992187221506642285487351417300292486487694756954632758180924218330623222840906481194148266038742879803306907849157741564169869967897319643112292812717470500478710496020984038534280283098780704799047003969181139982885152446187192533350738217865553845579789108144571172773163342427911998848155783556394270788762558773961697566010981176111111743183957686058284928943044527225309706204866972198013100535136061886485780249777856921440496292360707622421385502557059125097920464085897750502879824165826189257888539944978592560050474677466317977080350131127123059788972874554901203133492225608971108095172822815220610411047589075717989880542259480496573178653918314199352590695958113799465358929238839349778962123101980299424463691674219683827957905690049689256304397415472596838258449010618607547406518897212620179114433417676662804629368756148491699769963577945207067150216640530971387880026731224717489856681655415716520402578697349039359840777241463623721375937436320612781685840240535696098548437497191698081070087679711021475954880016295178537078510432837053648316624445893413300907267572505153206773980074541895042587047461893680928006512472255424231429093338024191617461121787933954815865303338349460371501673925400476337228610359171175604583229443798202816323330953888161336877332008582719850904454242736157076518703935382693801758326540291378610782146015316667877926254194200189817370941994314103960509134565106023106826017308356032756207141477216478791294624680721909033747774228205822468145936936693507595463386017609175618852993620154652934463602974939094064733065745607991011293130955573247773876729272071327813006951761703423784099518381019393039135787657260923475202892792425735086176205967531282149472379201031892253534817941072691423478030244140344275660996497014682713333177172685560848404273069094483939122617650455893954832980240095355944114819702415040415825188202997954421555413399082093925609922932800614442380939846650512524227136575429823674058730813418108003841830675839935315966722015921265908586310146273858623490174635608812125579200782215426363382681102073386783865234065166645335891441877157989133164125117253606173784564858026342221062777447605184892162778469762739818624968634474125538156608674188113917972504367859170927954830593570751024446006242322051829442721947094448641556944746195575001369281355486776780822311888625534601706509731824184451563329316209826001353035541883604803453033558881318668783715588940600763432185072438965731121673136884451683180289196388116956699528995296904843371227336762395276715238750872224949870093984261272934710748990936149810743724795872059822782457442017170825402805425740162134020815073168188068583245757126153128934856865218604714838349871821038076557706781680866518759675779391987626735240511361396906826209411580414948571395149742862099933674694806206382842429732589116446163972700863318171616548937276825810173270443156522319711090052335161688762116233455672106200746109130153366949566122830318318358732211771912063649026883919824884019484086359724313475467717276182554239556415596628896947488595113365558485695314022242635914812602207052224195831075814176567215526839517598421805880405280581527059901975509943393485829100911337902948320515765512493554195514270939895165811437669431545994882364933179420683271771749633021186407020540798661517849995413407860882508377427797060766650700885203750152824720553492817379659114767365210499059552986205688936415986020760511742519065207827328162063333741013641163452715540617973597448018689000983508315008387407342751898973273470265581605674988025531350388988328510569275378072244111172932756149195240982652792547002775595373967584364127701637104379423030180704729672692115085019161984164827586011600365755078525245841841032707830092940687632066698170095054347583171469635281057888699635656827578421546839867302513612288146749881929275330565256707808951878806000040813711893305794702995115719382881872863381836782667287367266509408986465933560884316259484172692716472665052714520723890508196680027660255925286331970708370222487727823575493725631864739306234622226189750643882383184259813320453991340078964538763644328121558747802046422687902568005926588912535861586584072124830398831573934383392150067374429132357278776029841988865402662699887908326997618998104498571063538724615306243175884087684857425484732073982965968908361337954504977710385058104019105045416909744243668289765549278803428683122322426304652285272518839656063634345110473049045958093800104684674438719457858285716488862228838080761352931828936805594538837853087315298725872925450423196830992455536965237433319424274178261380814977928247833860588479184327552494719604034931756240705150004591123190609555660777189528844174778596002747858069714334805530445088154928502301443248891078664558542742413048504732623729264871633477873896221367500483074089582857359887720868218381237462237660246981171699346404270387598735998832494630556623140796088771420659006125160724313867963083320003072366003212444160639060844265887902751984550240170630674080412156966214651526681563980934166981350407001610968726933092919545345848154437674279444719462327782164464799750737967976449012365557913625526194440253573861795726606519010327295863637448268411091614217952903805892785984518590453250501936222789437374963948768010102563992777524700442227691564256987831890422028573744048916829971115704421993340238451611597213821840703276438678720020692343042661431908559779126561889836327637593699927094440238308658682891593001418111153798093046427533383894146651444589959540338491231691929093923301562183790111585668121386693602496706044826460821183752861085914793480900196967659172141113385637988270748184063543688118843258914366580458622446661902931990110013321372600427686406883723982520605241229355872383964521363590309684288650563795394099759076101638789911929514271925004903343436269055841077070384751006450853146134846657245740465796763233371546283975205129499322644731795138402782128458966034942646216619885019988166513223562362887821320671271167829333940435873057324337972166543226369433117115800240408176753962881881707087391350756104984944270775406441148948266777131296435365505064937275081832831987317276839793645615425913141593445722616224751630442437237262656827575816864439207998101547300832546363419412247701535403502640196792739142949348704102367899361723854231695054706358811999013114183361786796398873953369307110203422480139430588382133322300866560292006415835168019158946998032200294637787831762714228939234246279095707431253271829120399796414105975646389815853658411135428864355215802978838292700885926588733458785120058367784158855328649668687518453196907890230972307103885372875384002843748092907194961268077752894570062444672780078933414907546838567937049538152324518593233545256002920667932441465309286320117407575545553147017686928808166068072706683657625149886105533171956758749705290973178938178525959919102242380263090512065527146556430672798369997418360528334719696382416228449833641296021092745931732987115072602474737129797598705612293276431600834058854467846037544728823120725143329097211144867528936354920741515255264416879970378327677908973224141635916376658840114127461117720490879490834443479565845238106209628987529648877603834418284659715038437402695655808123390018298089015421048008338140306796066806541619055838831535008274500920876134259991197041552333324695182820958689255749485178032941564265720566299331034168005946867857291755598422612536082521388280638582390690004698964353847421831699757907334351491004742106059818456005331502442191989459922750744994209358492555032336229525636437152866949440373611131777285492961553353954361830170997294186878730817387787387195977241697281295287982059514566625622730532397179558079673096042916072710340051618975694399177611367436902058506588329175697587956684629300499333835020791776829578533962996778737531404221603179260677651355993695109610882742515583043185432656619591157179937351033774512409680986441906027481436751012573838517133609336599990597330185050147523370735633560530536104752335576584420480815209552345262346606201693058616213289701468652417845992940171651314055719846144560423452626850649307178995398700994145495326996139946817647977340872205513511822159457251813161421848965188097430844720963101600339229624394217141982862417685203218885869081413206218740214300006592057413593462540429436150253886612859630750480234932083992331366004444143580710115908393211466845828682128346110881412402186467105406869324783261632804268095170811705122574883214098851578237535529571250646716222357881266795350531091402126494554173260971463736999125133808061405533493712104756846342727590777443682994953692360690023899191278906337628014685472206971472548934253694696782299476234070277744154669852411572562292140326995538847179037057769533565980831980874696852498505687844098760066122307518465155026862201175538259533737090979638244047546726508438227318057049457903789313926231492155826129460063335755103962960059965499702780741104232824361135146767481542783460996414269377041719073372209576415836965054758488168270453039538994088013060755850232976622122919508819534719935520065502663959261672758201533852245516525131652469637177519730271785981291672013991911100168496445142484611598349636397206604757968098269212119940395324210998579047352000662987841691767431713189530907146275167778356140710428845732284869962992269735978192755167404881331843129689787642402091362709904701212855272389624435203234004350725230308950009133955024851635453620310667346325272740446335846908382704244065983811086379672536736907314290695864366523938798988475440820445253768984566295259023558987387938362010748286774091406615447359160070168272787942390012135171244513138586957624441726241643138979086326350822785270961160388008893202229458822802631210813508596002265887243157947051746913452179281837905169144570420918373221985102281775150440513256067234904429675351530908376160552188153932080680656661025509386836267139698641142727052652995398760480051244726227224009730249683136125792094082696816366525444344355154452815658065932079942197518235676571110866561112635177547942474127327655141959224645256448636168590452230437995173233931804039426470094031742835568203319901155481866913145596868932042885005219769282901247302491845215981628893220427870619373482061524127629714780674108996025660783149186786029158953201416580286897501580183152329338759548008774072287690260824665901964618770356022108076396540040156902108507128909280205431576057581007071795735742801331896913234642562117911258087835622325777476672513421368105381664696478711519042880107174730167628942017414021599918198638095432316303116564416674286302487580713102687216376957829882664626653427770880285946208456969558812332675712141334395770657057071004067851705294349434172654547292521617302105881601522508011559238855687127003872565218900965092173378734757161875775199085641879572058958011448960166562330413141037549946840932502639134481445205639932408876874142251860735176241682117154929841205908785010609401791489009261715869715725749992166531432836148916358098693761547272441194694728423886967848381525608335013570280930717043373671999438002664211042673280823895579594684147335546940888421908003538315028003543577682519427422168286004445014583532767025704209842350838192564872859343372843670637683497664697116675985674241983898225991114468569493634065753119838955514387189901902874769393364215511036350230086298690095899223706581701669433773603312983925577538755954147049556996287793017668678061507478649844815175299578293726756623728680464192802437103192081661891942573574784335000454513270990787069311336234730756333098568426596468284085598645749017431530178072939030086933158219312517500440509828690021726675906872076460237032400551850677653506364029414993189179270969035896736851163968411640267377130477794415760452230730291289231231046963384669796630828570224461174734727400889149779767437442411695002560284278090522323739922512494802158993982751292759030291438722552599367143596548509642815067754790775408103681897769494363170135675488851651092071237993186700423330829493238718802251424158305786395814289310854127128637115038653847964232579048565149897124594126434443867061525950825141711749981722197388857328513986753969040329610683535222194359956010778620695384921377766377000905248058316045096291465934195623013941900282056015070511752697234384005227689659176761794311365557393084440984344712381601359345906351163538161111824627172243379917984528412984365200929611927528455220836540077027926835219565621266305123529043822762428321415254633273075198081647950286078771806070541397424257863674006719782584098675729554988884171419505752361526880841169691119820444438408336034289527889098194554539990199458086803867973875954985233019848914046018260733124481135891811471977968782139337047627883513869088982075282772597274351057282894163471125625121371516269517071117224245148145151472557352572436812225507957566601646201129439491989886982436734239207199606964450856069553594699446482808184278832121675718548422920040703446969299781616681607650409867144768177953969828767635101909696890927753443005012351399277371094813310811624582635463722066441684564678658792535091977994633740739922467229991713309199445812026870719846119312996589177682428328765898112033198691790810657860885956394334739343810400063050331085260258863607529991670442488681674420275569553863777331215592604236875196548318219698578184669441390776900104441611049929490843162974405734840634996545621429427388067831135403384054146112593910242965420384180715867045213893263486441423375136948949309985034836387911558637415457345711687610226780397485189053040070347519136811929936455136713844039450633850134668698600453230769588686893118033500939858583884323679463467814890128612454475540896739017461290539503618005176456035337097236276391681668847292109797762431664548855363776081990606404607870191166228098101299687112707812328183697298242694089310372373684420861324525536801161503139452123670629470372942368626010744595019180765706388689369523427709082909694040057725471653053671135922575928641372039209265329888661043291125445016022169912966728012266542988176419675478772240561939009214434725760421758725482068060197471422057356980220188470210079423949263771091938219663342914550601840800036441144501914670042765801449239432589610481813860916839709019406242764128913379059094084555894657768891226027272301861287074397506446648580763441491777191519041646280564117394243465255916063983827561418481469720295153522937535201464294075895443175329307664823112788581296063747595986600262001440719846108807307727787803614187288272973203210111425735637922912897401484559791609363549628399340098548985785886363422532266193729640117673152711601341285146169741403311826695509599286276162479620066752815434542997062294001337330706753770872218744113031275104750927976128904683871859843044888167881679682759435025473635428311571720941025540340459618967959816045336782929824953804331785568886422808456052018167323087338980617991791339810713978661803502204351202309924419215135740061211101011293076375085533537975421462414070160552165702354270890304010934261544616586513886590953165165807795286517372024298104449347035940375848709800732145997560169841175264002589843102034473538115050693872829934889237622106299637308147123937878701756429109116785203825481063335577608183505604585080158692563093776941692366917029278893233368867756337190858273312760691970385851198470971580690757843081737353092126790148922688407680546894374698718696947629775222710601671128510732874534533705166741867255502100299909144250539730042237781137713391103848484566004367475318713765679185496513072399765320053553040319611064121134738860786019730713140348741648977564535089022270463532916157679668066907876786524589355120672268876107668369745010920964139948299265350103869838189744136994645423827558440476018479126609635519543623269352917888529774954039552496201870813489233764073074675684933223726593177837292605403576365625320712077859341302239735232268513959681492466114626740885768181872010753827620793864236033418190106343172111202816765179708718186483119504948662084031995644562227656798440022077654173494076584148469341174522015567432149809453566997809361655540436308571821482036133905047750774452930079049261600134474903351170674300701498036017135574139408217844381603368374204992088512020219374846399220419624760499235640282140056671495382794834099847879942222737183211381324163122350737143681149320968994170988945329786180392294412993591670325060632295967772310150184056433493335429716225010779351009994399503392495742360363838181942390558256526093153665387730440458105761119701389209119872399341966026294123707715729156531892199369056850914630208674103771330272035324772853988446310259762675684085573285602694749649817618035834244147620879010180113281101605792834396274406257971696044533482382834766671649164850384666939101559950996441995150765810818197381910662094538595845096320322474795480423463609360687595941420148009440401812817629816937476814101842618344791282216979015760673678692822004253324325396294457677117624411883899216838729115646953835566566742577131184000880212808915316200635529123972408839803102003744112847676935311234161536363356585488133703195485093042723875752184482204017148588888184378411350497454578911714118327825302976663473659013456638578112826306326978523837889423826469657257469886711826619163953246588698593493526525574192356222123966555129904613298231516447823690795648938630314332482474532652123327488291029942078728393064034643972668762424960527321777988475455077407021432727330208429402289616189558651146327377547736840679655462918124194244531630979376046740494467747070460719834015167416716978875746130729463447962866306970087428373717468651793661962493916930396428199735315411850775155979900710054236185709035182066735398695507322708548401073847256576041757039700527389036577080168752137748070715056675461418094876210000854705048623910334164096599431463544426643658485442930005844185582348323156088929255120008741914348055004568693794369089309219480666641843882461402049181688411736016474644505278719766376649338014941648972150796479284783763450352273054832625394899972623621919425162665372980795925112816772612785603108826166414464161656315014863487190624238282553289559014034888847231651889485981328768638304649751188815333370121782398563411260649941893933049267961346966843822423267390171867486216132170033958760614071348856507694702217788633217721675508348997870370073584030668489847607046492120510841503301550419968822250722938904935169293236403682943923552703217458810415740547252705001527292432379672995043645586295278254829309981275646794619321784210569675339334819765024100833096373074114907537513011535734514630208633110885369393679523359195742444768416098197751426175832308692230700009452388178538292628071241722309905546900046699769793457662421672449766030134439074298497150139581904676064325487761090819632647966405020880677360491818137600537227041976315039090881415372322333710296282539772262839690536524287719593054830026881255044775845333273867339426464725832255653420747384866309762219818076501316612544878948979911085930422189788737932670262703527315574185122793040823600450118290372801366034871955923047847648657366391744766057093838289716488106293698453952173958752674721383870257800424470823670300206975337764862673742091124895073376734826945329947332467744462458765763162853965016552469829377338189081727329272196089381973701853558081366457473316522432392742872369591395739337633002956871399242163483912039467488538174908501826376428858255223793568231432010490946039907466515983017102930699274974151109929671609228288632941498961298993970481000452770921117831889486117821493644453523299432322687530070026423484519394318137206707568980419650335208151938286711867405454916128538943964898143657518351690011607749819028753923786403188558019472611562957927495038147114004152319832837716345366905995019281825678342475971683704063872302073807145921172840272782086282889467138775719356390105021529666835675444535489476343835680781576509117497962049661840255242617667708843432472434480842971975097455971742988024146220599674881085649816242764346021143561342004207129091896977621853844286954448462988771768427027238607822985665278097564032612556842004583302804386676796265380335560185234108921128080398214469812863933366642168702848244316759445746147629932584683912200517626348348635841458509876428318490366667038821920592976271950497180739810726171346571196339344995748871667504399490946597817391021455960822843012963128241905809223441652888257152677912797765506518038205112608955683802428957555527887080748189394565496871616737479962696270868140015897225545806741446237170326577804910310936711552592302147072875726602477774357631311336530035914188133944299521766044966852654525619374618918392360198465168091916843344790090770019124615003553911046049100522407994552312236999095490130206534675924753396055226788068072292291987939253089002517963070369464723504163928762544119566238657488662650740026738934234110248316529698514920917595473312266770645428361902843763525820218430114535206753567874853761502202777646612641660141625649574157450941309458488927925164971568402709150381007797634496127276688559072991700820981215385240864502469486253245667242801838907884453189661679968425019958011907025116241777568846103254485009348408462288764201438837852245127550998082109402866891525466996983825623087363860283698870872642768631841023926532331569377661607426851679087417715383020676520096004337583555249559113424349377581816573729592159519512110241212441804126219847033296038114468293684544511421598122277784814055010610327259000502986406091256921376454061698945601180130703823323140103726521632749222843124054333276222356704608762727887059853904235556278781694208007643337929816513878028980228130757385033954672413633468874393650861502098763153843943320370948898510553196775962580983340113943199583978751565827378744081919940891352558757170744775843233098687035144820540270711633130267390250909306194238808147496181808170965926473671640686253508977889143046581745222412749248044860108176213737464354248846050895557325136905853742334008851035253070899138825297415907425722146211299977481559210355452133305221358073763311253852017928486982491237724956304961747818638617149696565588844701788343799807294755336301344813470855665313892873884238907688755272722980522464497913717291482157813583594829007162463635799108612779849013914808519889824898632981028745779985704123566770889088162121851777294570016021121890179698286912569536003480274084148126674797511761573874548071444211965855110556591326313893471606861167252371636313110313941059323065470894681586820318567031656865663951754253566093732119050514913476267468389253863644897359613302736176050558095281145700665830445050745998164464300877460812715517984698272972822528788279737835777575134552475231408542811018463850107612195387343472925707029047037381045639887539750566474711966963015824878621024164315639176351259582632236517420265460819610724667140845038687231204487370859829913911760417471415704124534909213448223832778111174721662862901532113946316483276221317380314496604376472440780039624746975531273516073674298416731382452296428107982347066002671092624625088008041312392251028376319668173213007119918526977349458490099238229180767043268991839388809023128428120489981674503678948065908116955979773188577869433498713585160804920272655764386489790121497028778386421542996098523588335118948356689162555129326587188768898327112086674746511958363500049427111774348834506873039475096859115180071068562068315375596013506419823778536312791165633738359183310921309624498527075666882566701941569093786597490907130329701889743571956158303593499441606124961971963358444423329462085207985133371383014187710924652997384911116271339900230450931881302256389227475063816086174177040701173177114323263145691227426510677525246488783810703708003121418209443556452936009409645755843688919014144521637152392839016884305257129412363737633590740230365319268840096288949719357825316357524165495160080415433994456498112957421996780585688979049638448010448864974269262258323997793592253541088229260499273992108811656808608841303292913777385085109766318403142362868166628286129518346986614688679252633180740671817388463129047981944394980977653850755226858429151150149911489701087907659387870764858190740671535647355003721620718071709410830390945885999384215764495144007730641915541232091586490549995198730577751637331130023087713277578712291957853277720040334957121664084895146388293900702781577656966492556811244603518375484892474424824648838835644350412510138888862623412943469566004185890834672593848671166066656791335735049656904466153076545526708910355712743504813589273635348183175805878922631194888881896639189496651126190039656476618135180303483910877209591981079890401553564288912165743712520305646217899892877238720733479161804683932625885473262381257444592397561772042107393973451811935149537874567846233420864068178065202392558089887511203007050989952832344887619430669996285216069292618842600277117241705471012072626795568228100146552266720887878953207192289449374357588955521053320641945183508538281842315162583414633608143414259886660589016203654145748705491453035943685787630756259112823886696098409014016703392674573544937050742322671820888983608629876378331663175935123813543674726484109500832920665542760673893808522171701461814291692001783611886572246108628979199930278769222230406551152626283486660590852177647377521474365549098096640764062808726486457212842779411506572504195443210171496327905456699827962934892762782132739207520538437530357498179511966277403847267630614390134181050508101115525564270717064347613709475938550110763398313276690625888175508126576644367897094358320381182103075751570877745821706403079215699281273982696934301736748808993687714293884502110098077344028824676045947630889026244416546650055232097605300378668304711643082632123904877022782877965722405122505442934407959293679942459598224487966036197112232431394011990193012895435405399095559015497557975153906784855341844138588520538526686942845277736493338447100965872655652841321866304221359551415861904504780850351086393704990270570392858022717830924148993714236214369360075224208362463561193046846464134823791920158429517277554028350810280189296782515281894222574886439292703137166054100728791465335899385054481391650472203030851305645342106955879220510170541730856141208566644479429615421163502823527202948743062564374465229734841943712070278031130695291575091467083354079453357424333261494904478375226641041160294354969469086044995247873408083196409649866492569575414889650043509102716910353872342025302832528747963779418665593027080069331738760285033394202780637034317796209673612964892791686222514742890518259360456258234991920450721646531465052988362097441780398190450240986929450405404021039026078193820624359158675122141721164021096954672699941943653269502108501827596722831184794314099095430143085529661972836768424021920782407268754555491960623916941302569746429281170305619633451729561975431714519660361145922008663297663022643042771042663122459843325339670441893163248121538907138801125035964860843069758229987533448349683599384233466152829382805024641429995626162709577706899183144926648134296394334414873532417613462027292859112034998820138687193291802754563828631654108037304439265373802326040387978244988885445313118076135113998142924347068223874381553751077948791033524652119451688045686038260546216535465950089520161594380149119246579509761655831753729761377406335655950167632523378586730553362490671766848738662433092378966114322322869176665958855314385679777719405029605578698482381737747472040173397226362734947596784258524063237439322020276130620988571293778785283520626224898138865240627794402289423213349044008476685074922056215550012062253291681534510248785793040467496748595045424250156591009752975580262544111842082127076356120709057200532514743187345972465528546422706990248693058385792379555849608254918855943851794886972764846001817327168440244594647780940933714266748724502045251684403645766407808241945798838021936978715691626611053327427873912321593039724807011550704582981892438266114285698947954241659994394620632925076524888450784699617894997022782572105243872184342650854536804180010279273568178791567862912193001655771206550573320389591760251708691599089362656561281155914820946752061801054558002911866691800644327925109193499734177235057848423415135047952833509259275995035809211107711153101475746527802138162655538351555783192679042628997492470563781681015000804177107921926894928858384996032142323269778892411553123072935571919548161799833250829831113298756952938791975068202443033551106579196751371826304916007635916150964095584442818005197716638025735205076432348623432167707955709972642267633233633028179344105554182164165048414065136037204137773690659038111917985268544747757085648985353534642790647323032064316577430192225535773279862759145753350295001506055846530493114063443312200673781157147377832586387200542153492702976992465709190826256635975302953262404803419109131556328720721614134772499352251523672118139212905834828748917313284600386450021044418155008404651116299855224748535579516644975543165172923338246142317589623256464450047568500333498501247637338883360572215883011476771045691412577207157307687659946585356733290675338499447457572284902728492003786448679510550938731065699929369680209738424674037410794860766224610218276748531222147990166329308055109904757032147768253740379272937974474871093640846526541678818095722983821310025246588565514008901218320175435228472800124237295915997985774320149321680120519149620188505574459366446125701858566575228550632682001795950123983052380942696800184972017171260438843273797452163989538434541906453097201562382112416081685969973287910925315037985885922081781727702815891608934616503685616502189956824309798160548685102347073767911683331248277119056940542374200567814986352594491858590425902223674793022968503248559630372849198663999378820293029128262641236958176947124325848661323092881461661932814736211794744997112996450114350079759443525593879935225930833360719636673248083157487165808833160269719146825069327758374012375627736380707728096552943009980067370542534425971901334477527161074438729314166090650523482541802640366405113674474269801087909340072832382233830658583895871282141477707540146225115112758252677879548970007823261952251531583497565747497439268902581449193673147780081894797243537755988960919135550175619017184841095354358007151917730884747860055891075825369029533329400899255935296969555384331957931334955988850655736432710729102315210488725385202454791303704754560432247235736817306720181395208914327942563751957953027588505233886165528216373689003522192692255051912754285254590451724430150790463174149008011706333857561586420362722836679732761252749290928688860468429060645507112606970350231149458789682936201127113002897419771981932392410522961179291314287244552460092903168180845914285202083283620385621182542778637677427584475510600275654106438139427179405821036493626744784487404139251027088598314123538956514151358471609659175134678075654555844203464717353623735466911282215868653903255941176528141310224236148450689471771580372692206034919674936446941279642766717280661266951130520733364080278785859160923595279804565713753702176145415391121788892710657806866226463721960661973287993032255852915520903474985208220748501345857631892255509745310739168880028019421532974238795683018157997950768498314362439305938142450177870532253962980889742755030609352539950121545716528295557840242909568515441229320562285265330611244264741148425704769096281837535549236741373806546821411229305073392595410580195327288368659189884434486983227449124583888764104425437887210315354859428144587983228627612497941913533019175518108416636836881689500902752647577970767835540084206393896742245683314166344616813694607305490283943829431539987995304861096212506959225474849061632305372178503873618189376877835980063264884226272009431011301534229519159197665298988868664923029023688387512726007910654425212114479629435723192086883607776152114678379908522996248083342522084657175556047419590257209818364916971023308212353838559263088771179948088902640235003105457942310872927836976971911527294790143501182819259556953060560282635493965586299733577030713054362741866097688439088317466914465718065571133270686911987822936376133846576368415579349654642150546489108553295600052409483611731636863553266285531398932160811307614932560695977956617452295563378458225881602181524225868765656301345143765872751462432888684765703759065940292424958677827171320668437375316646044854138255734342808417762802435745378115725446916829336688202675946487267829563230243846848207388003199767305202121494955348827780667735300340368477427260687321613484014201019548851903038153230877982825668102707661209392423587561339207774055642459042418332746748966915540933335029823641370128745892535327150896372186142069910697677059059609551980272175607841230431184060558054483854859674558229076133921751221750466885093525503053903466348525945132041954874494945281678030384465288476494129052495619500920217942151560103949145383739025800707456337901155306148726287782307920190970482525787006227793446176563209976400185603444985965166793646301359727759194794691131892986767275292093863978456869051780178550398599016599994654710835610741518301346913664152768512788304542005673113359760961418681759963633444879699433646206188559114361679924372051609727127887759927259684578813763547691830808951427250995747592176424617773961932427265260588570598578996240534682372276294869186962410120185513575804815268123620905119882071728711501666403392835918763146472757542183222506505112971513477377251336991517994896343580001144216291049987248776787665436645113920366975939531272655020322051440320466944326246108490633153488438669593275453857093537751374540484771436758304953076038959196529857422835916245948541941591535605827002817383980863420519712651245084644823373028235393997253642420779697683735369248892229723441368635499377734049509874619257887184384635632728490259838876059823774129044058316834483903557851744760484236702436154808136892243122557624497734359865947994670959389415777662776852420171698003331034803854825231652266503940016229752239889602361947108911783575914603374010252426073854651494684017707187584916053689890853033583958542094750465255258946678284486333655948004258251543580023769695804359267944629008224524868843511213382432271066576971133517301378970537195285682387683288171651949842608062206208400078803683085260858288639446777547646786038316412120813778529604191779393755526564243911591971376949565736218316298103899468017947134190388184785649813828936105527621081046049048064444568879204112376063867052604912569231294288413197895189158352560727469376791270440497662473815292769004336606304350836919612483925718641561328718940278515002167905969104691532549158560916984737114569400715507458002836080990733185037484767908986417871382517167108281089962366164783305236299934770909614686714058732483692443833403832670007389257651579822436814601903961624940447869817788343177553293033708580140687876473269988560158795108516130277914643116303398063401369421187435682585656406002028987279968129432125630887736321449363819856277098005596826361845164634631823626546448729607185076046680499064841711279830207322082587961524716638634354317495624467112346776736125475319073022945614278850818484151193071619889813618020727530693065963105609658150218223124311580364518684646432192269069039791002944185182615292681800171370944086463009955851607731185051719810165869862813869789514529225792784066417441630519416494189789783061316875292794142951702332546314649234978436829693213038467024323856384371436277975713627302126331962452804526991663688014738209271825212903160656684088152471109294395335044884691190230284543601255808997884727565932070553966810027712611139750186647810384442013746060748291768649164514146169123562748906365896321407663846645935381507736272689589721111693472230782303606608266887035203885065632214449143258765444660963295262683378708175616866413223305298028133250911916813148106608838884914880188518120364410663312876246070297681591076762039727230719098711094598364622098500788673031069105009276707662695038845166838129270164942636330023433708657823651127750677859718588336227000246148615902001142565606729305110923628497290640554889969286867104353498395489814307402003410449983127223853921868760586927663181189667331058818957828345832661252486246420740645316007235269664560776624481092486355887652997838836846846912601392750615560712294590396966902251934057841142897596036355352845575202346366262242876685816597839301995055611910849807160442649835700724794972094066855830279053888822000456688858134254553674205349608086580219632099960077915285997870315929217631715227566931047803388928898940129102911405775649705992513892810323936194797339425360953613882348721244661930578069511405055759611551917813731178751486357783126099446434261817142484286160753301548716521044415225657661226742066580369220177693965567426289590748898212213383672233226565888444702764341932226384002316398796212075125595187769103795410885406545480449540635230879267472511371267919213327660139287291751644463900088148736668383808244747586312398391192008179583599416227443959644822511264634884127860864287339043372760224812192068484038685283236121155593893946978291585289417069979967252783838764738786796717319378263293678191336430065146238105230243018560139908690158117536910921927434253663925523967911866491037844155549329442882634380344019876474251608749195115575203623797753282500246688276709395665329126408649792653326363059022573467486663373554093267546097312459410833183074689619522099634820593483961707172662378345066696810745492896987165519807127874259089660416587821321189672797298485571990592758637067496908026265495124166051360060173195951180025339653932455086062070233309285305923715015205284400980346112416080967387110611047249928380164014256437396089003025045606520612486705311692700860100732522895813410981261797533923409463181895328564143611694886222291608809882161605110374603244050554716182398358364341881082275205162925982388806070850338153359151129728225015468730090652623417725777066114134825398447982596977903479762095505427771734690178269728723967424630996425578947957852499533597105934635338948269243720987457603275160201734385052894505445003448979730038918303512968746442196310694293625924464754280534462317237049821261792132709102445719561705396449978904794746038874303534518900839578336627527701423534183244827901070444245866323607238207705166665775239528314588555938413619127043648576268629947643909748076290960825669502933976198732716536222565486840157408172272901370093198603290358586625978334685343991073654018593819612269053317774147069240679808413812948382080886705261881729300926422394525167911619136501965278912659089277988347069150717848337130050932677016758655981918407912072259760846247763358160881447266825962096489861566721393014479666145875464987700863125234906129372985074082951627120753533917847116013723220097483356850313501845746278537396025104003837629498623101023849297013188733426607368178991034735415859350039297363958043692234469503408812998281008183461469365397179657354262760998539250217860969419634970555021662945506677254264860329312108279315481123913711405341047627473561674292682629319032891861262585673376308732420525448270184450947224570187928598177641745518479491488179931138339865965736503782601650903378967488951267050538852478259893348155930241306555417369258175439649472030377889751487092379680352481900150647567244179239342125410522445899787183392772866859556041817858475458866896710512443259365136925277764874437971563602176782576897897677499584330563487041087138159315933214948562221132631714700211371386377287096077386669986116534690244152651565495398103923149719926275193483927930992319368826367951441385962277527351739802118117116631839002169903282033140570675315270428944438942880250982387891316365624365458220978241734337607570728643128389867094096810101268380254406507084462071336262980891219005532630063169036666119611044075038084300760221256555249676657202110194281750721553174149384246849769312544256795299733240727729014530732629922385632285697322624611306247049609865993604214705172339299094805464100861058860683802253349809220084316773483935931731826404784631961504690983130079720141309041242797865554402282896438823328189202236544958055727864561375842096380981453858148991824883081481073024035102477244761387535549118132680417624945172852764937946402372040888261989402124902973684400093609521447127452145268474254698677689047480155490526019628273849969764895936451623357271174230955228363475064127252925658091155294623739773877096709996763863608180751917781420847554999312612313928630584592979837325713430381270733473019062044152978198736518337386055455444912524316445647510465594023066641743933019131520565778380320525597322914130451753794905534422087232905119268322368462783794987512406133641884307739056928934035450677723203656248246084613808849982160114418014054636932250436849344273025744008347573319109912265120510127833138425675536175078510926905534688864272529917675447485004365473126370443202775303225585826283962514728951949785709868471287192054122400549996627534198578286338552297791602360731981039197880926608542121714247001179900670236505976749962805178852275863402250813160189104720263115769165071394422376887565533135775780549609219413289691112674447760564346695321966975832237503490014425406992657254362251666000913352907777127496066411742371082910151279876992852739045105283617029918340168576929263831475167156985749999955117554707876518411079580056577842759295842230595420065512925432072753690597446118491692501387861125495381369430295094567390609769327258709258188258003557298087484859910218491188416262466992530072659860693051036312460463353112286376162722137040046856821726455281354403508642753740480793505997410687609435733986594069616713076706517021400327534336418835441954765438072426665374870309856922596831564080721583855704062211102123854733772673039383789556532015002599088395797983297876806122550306471176023885725242105674938048230493518109590874679867156008104198162141584608833651173593186967692540928982874752981342232771085316359749648341811337988394107345882396755276704092850945240178596312484326875737666276657776720914780020741356867238793671197299475389058028787974465649969638993786430132314018831529217344595869749030046232900926209863055836413812646942403078340341682720270809783469025537368070006287850309820181209957056342623030025681541328283897983098330501627702705545938102596492057951482213069602391161525432523659841651169721920895353933044729725449709666876854508165429351227174440135497450935335004763490383050806105226579243992470435413989204648908424231960258724216495366670916663212065003369072813682931263078456492861397736766149978101519455674058328804302601490064896544588397980362948814654608060495772016918913577563500930630537481705772359024683960432330578323690272621250966526335541533174142392157304059109203867849867614008820301182186940292221630021026116850343864415010159385986500325538564810266459011816828509564542048078812798720675273217553219059619244928468307766682914533569261125529257734456085585029403910942801921805004884754210851494189058395903595096834172565590491246191872910644408249094222486560336079755684412768653034177278048138342533329123299964015596547601776234480978286697116739598143614480689101481116207120474669200211806632511696289571809823746983366799327113459898173106723144600971567728548237552703218311530357133636796492962857427244799687373913434895748445475069758194087729673946587296834718712444850569734266732544416104247967621599804302817519023900868775388251128838365360795048891755114828227589772097650290351700889901177346737435602064793499725079409976979503866906253993339157673183652916330722430526539689227418169070410956636184638321280577308706432554027860017349414619491993665813597298868840336485119916402067999726673461066421719072316744522478112548053325120275689489438331497433456990171898375324146665659742441042903005348617975315542805139955163343594017553398750720712394095279842120476888386477384159760318529144294404117113173518766092386245528105493617540985070098291076422453494894594368176032026765424086681531380744971888949203295169932017558550489012503316180317164408694207155697694630142449276149166029464660457292235314501825818323747904466797336182921470131815731878618891630677946613691413905929678583500287991623377128716628296141826817526627571074233579088309569202465605086932527080992832533547604201992744569626165995433794717231000589995861232009774208259499044237287728718116990905338138250117274425190309419665369348765797663920999825697524716426713384095674017719749957371336455038085465817884337442087685997694535271509960356936712935810831861580970288877999186092772494235297547024568331153085274670359738279691405856248692174138507454536350520784343843595805660833850723952304809145233964206465521798895749317652953835883438523882599586499880901274606252863216624874823985002835163144905281172688208481819485704959755026690535186912947679624889263512502160029795422068214459819617497647783861305159216691251700068317479576332761492832217594291647006940953248782815267767331620352787142758055967303933163916454931450395437486028616059641901006389593524254308101804204725938322204035184325046120341796985577805863091204974422554777920267511207721082317563260094463279785765266266316687311241017011992550479065710005137410506921891580275499645368632234667926890569126863505225973815695294033563234313051310416970611833330199787881924320651254516988482974381966323511674874581287718531259401443854716923160754650041603581442665658416991147141294544331459387158746376307675011170991142114756782590208359371280932509170683193781511203934739347982815508473424819311026047245386025088543918622597722945747559519673033248499861057514332180631471324408968468226783365884013668373488994072078550638095263011097983551006036400576663031254912922576418691807920013969786470110676300802547171887701443778075704532837365681527058569373822667886684582577895889645960283399275729410371913341381376126763085631734938434819166588507637663184260612850291564437924565833806329552907044981718729186940430872662978132444491615132907768237651240077639965066593819637236956211993996020176460588858052724623315779711391130852472818351252304271951938890581244883559918058978045288618698094634552529126728622594192337199974280189672828541937812940549768144075666182488703584821719771612925757742481385896566394441195184492910595610821380161315637693701415757773067106276510393765868589793367463455173085887776615468970705603735671873703811025519043429167017105355422663714150618595952333535530917767078166387944225957738145935276459730314395497438243006971861489103079061343982917500229604890290117507296453024136232625810701645541361546978520739371157094747932739953036924371974945080776507534342677487755745626250841017515584397438299762817275196881658833126982608367268716827177750613838678337869049396391737702483221845617129549831271786484347316834960372627276334900167621022761439322224150544707421222952309232267496025181099358073383455148010334022772730399864181881797174033896687981704257684335915893339302328183784537179400219718992382040127003741693620508608410980250931061458158574918176197410378985636894090181797149789292102586360971355675126067859139232014128182752088961641819654777531796238182391035119036380071364019979849875122284059448396897976947588365183931467825840081539974609814508316572524509806626722377127596717982563735227388748266428915955548965406163145180350821837219330027179301444837538752076060840763824081101617270144402895333013023435659139675091603039342748187911056823928776248137855846019048681431288546642604993219178507450676901933179869160498730184507979812387988486302111912383176203596786863756001790037703727081416739834273563131444231360684312435642328766384912767046580292323243235727939553018752639479991076600638283941815179643016934884264482011824202819107572661148503397661113361138755515281861023335573389515947420369276446488767702979107831202648191661323941574657002042625024601021426400102929092677113930717496576316168094558481937999718663605233154126943189456173766983349112159231174687778496764007233246791692645032129495054984885916845185828069823041660330492824914646191582274906594897893389453281685719520993091219445465567072507600688685436596256926744671451330508988049079939899644096945695310139580599823342674190129076471653619402688988110995275755238422607770799647136189472650346673181022423026253333845559101000544769919656078272888691739008301405940503184357254543605265575050942405028527307977282284679529468624476690725452917651109849107886190506682210724829500911039117163947133923044906688033236514715484024458176317695872026317537611047149276958971279296159656178987662558164873465486250367069116377587779357302753655668622111765517261337756620731123674115308698774412782682391079626763962939197003327355454724832794776288617315053517067959873198730093681869375934132339713352409619845037952749786759586339765719601672257152427014024800304309583043657565909694043003245378683148847500441301518544581353866373174408556046465797926676479300060673115328444918705592301160261334956694890062538815091070252671834339185568871869176354030804714020878922275245149189219255228288399184538500743955650480031551517369839710842262134803135719297848992097785133819346710383685372413483528844257718542039570788875739616976193653897505187547180862696787506710917928391186605410628189891956629520175637694530286718220233931880513239822782705826839637262881155537171294525119488144382511910979962000712952196069080489140862770322966278080619875463877987736406453423099470824428949753564796266395576788428265560759864371647421186099270244087245909893851064961135020516519465350826961186254821658261673129376770904050652263826066375619507463093191776949852141347604249740428366399532095317835613799859786864381915023818567707310983037321006789766957371418099091073162852852422671598831483648689988580013862044292504609140134471913687482262985860165884950064980907448032127452580481868928255915965700583507871248383025051344362324228033629435642718505687344143934019784359465093153739211875039858473982681589668521494138649825021201634898956346048963208112497443693702513743798580429471012826174679655722093594034827691721163493777161406885330084708772135657781214359217216691572431041333819473783357311037948639983305939129535191800158804650108210123947719303336250958033070427182692449688488648609148872513355647798358701825614174115750012209148360519367543461977054393327942297195650163590896949560638865119374322340726635329448939757051574244570960846849916165466345240818279696944426627416765777520333330574618147437639191974470097496041748590993888852960304724646364904745883066686129200373853076782188367687361900625752150919633914852895851986107011113652308961177281787011534310568191565251482606910034465340235815226592183098105289373971973966084692916052428574387920127603343797205684528952519845993093260765427038894076128075022845614386983658429786287563123294568893732324311057791358372806555922792721395288957982399696522760465651071865564117478850693223642804319009945575810653496670094333461941170023021046309664575297567804597807343360987869918618426104481509256834263412955184732885960980819294642433034313476624225068446730124002331859151908788837649784412430357017184206924174681326296134755621902969966626549922931400730126250194705300410699313143106855965022202336535429714693949095485255713033180180085266763175499103310754982460737639337102120557669515717437433492939627470533371801629317225379744034799233032020138102802773070050124923820931356274807385677957321794393529880962985689555356508978741525554933642370725394350124793044870549243468253403004978962944277565022244631119328644100660908193384440400160155834324177287594856874254048408248235517273610581352853884690490926126328769391544366793182697114107284750046448145716471925543250779426175188999476600035121877553832949343658381837830449232746745930363825691824391667248208663436160290769853085877573972930346124483547861985881509897118225762876554521893591231816337883592579743970010134979580417346919741254382820631145015287014393333104653183251618080172458218615609194539758924659630302187131857345112630983804112528004693938594321516848933298940077091324246422357936361128815098139004027075826625801354736106312776927983861247539714306616626938411816591244554560281713647130687678624157886768710341871489181378822042678680145457369329275356483113222037006220018533816077151488603807997606597323138167534742878357356977211569970257501843809460759009377429962523426545097783083951041606911039034979502504283869880017461762997721430650795941237383404760384764383957895197117841442734732569670627796736675069343612363858646523050356028303526151508516827293501520643139801992842567341933284080807538126150524510261999838967271124350561174430845105123431529819887828186716410738229925565354056805948159513650958586637222363317818744070127782549173676471802784408126704439578383494773825817365214459518633665239641196538124891894911341693288334058482578378537723788287346938145481977792646155538055391220715449461977471574591679342945879243306976891057461532692846776622983369516624643322903869263404450652499595953940185211258343946677560054575160022103801524881036192591427273484523568105139958441397702399322986195801317404390839521917740780756257262608842123075692656951359903197817019864186896831138596396500053895045890694206095209785992412180364132624371810027351121884296917578222943929074185674659568374628216065289905309346163180804651496541769238737863307436505970674378449230401668475856979131564013579714539375362914156476846085707555710974308117063426374074462547704140137804267807927104259269802458839976956005746156074630756715599733550126433684761857391494624901125846708273489528289301336259809276992187325151270530971003347065045579023165744463043603430801443113666620336035014017214579400169777929081734862827879141092674119345845419944493955262129419240079686028523465954715481830262410153811152510846068402632050561926873241240567037732665981817823675695883083303922618405635996492175170836130676959702939481520630752723151787670289472026126078373783214946428951066049369128687504292286461239408455504091763105314640153636302059899951999202839466541138805700139619139160487693414439547228958779926714703112690935470202772695676853025751911518330480053624590832849618426146621049923113520636709832044945380393719471631744220243504332934890922135059086632200261829516108778866147106848938109394203260372801453444307360799083889125852251394116086827914165201289123234223928830344928560249698403558171271254740152646812871401889457449203948967006997223551941996398312570225205120446367315540404909923487533683183840189161451088537936853189812980103339250722461157111622724005977231512995399003582350561919199994503765673017609071344699285256109074947835452658387677791065899026345169969729876291699051310402006776647425788499407141237483855675744706679556185612295717831819037356222544472919319673134800289676193982528931081540152725546208350988963144304628124203254929427849046885908729324754407809512867385590823312545024992717710173706237893305659836045864863494192392798632609382977944875595059020630826526330720428540426835111841101154521693524589859317194792195591536908807792081761496104468562706607030971732020412167019727995606752603648505508264275263798770341895885658602033577705675368558648435489238901335524455422709444958458366155800659548822952275121725582374920060195230521638195382370579283751249763879526747346124064846322335959319144101047203258308931270883537399610257750957458414520262542122007970093493576184007635109763726253647592528311275006012018105611660388502777773796925326242850157468060639501725068473597807120535362129836045418113779902593195983002354554512486205220949805659880385428901482037291911366776736479904252207591805256817299488745737650931201323156228115585445263980282515411000043984793386654406126671106621090060811213808409270846360484414521689693637004778077303935386485290976610177012147563793691788483211243148635394202443295611398957605212152688205670374470877735520202590012523010778069018209920324036637512275823094912375188181333907844082547219454501771567631475321819874125059257229105565649857718343788055632796362097613034288890163450974043114637218299255626480775467159898575079800804633251941556183464284174774053510062542483550549013293170154146869604765994695342232888770586978654020232432735264625747293430963599912907393779976657073958632098371397726174984607445966586859196662760703444861327728641857286250969714724860909466968233073547905280043062475048408578765320845293213314089576647412107668386285084761710348242594156917901115178065549048124280035182004219275272327422611875232402429607467182695963403314993200284832738197548518984247666452936349190163843073417276929459141791384625185760684126595186500633396737537304649398072816177221013159645283621660341628068253609926518201285142652094640649671660101475259756290331141406626288393378032022922212319911585372673862728177080406188654373303814366383793297860078381777298239346622196629928091147682257787146797684862695933762110966700080959880461454519963932792010550022632409744622426920743940080240858350994990933430677838738622617765415155381256810727018950313879368088427025811523704254946920407032905217156621397507470293801248329883413753515528871048797550208280915023611204626396870578547914776675687918151773882813083845108260606905092215469760702520779238968154728691644475936072710934150212328741245650147939206494535536753934664459177907468171657334328007327035731798302216326841255693951452228966712287462417257924312227935302955354057754074695441708185184458919330140306294476139408484266683966818965089019331684846194593980994909822699642955439629402743392792988462350805638838275545837887943340937205724867880970739375683607144313024817845592916394993109243369392595214455426273691422661668699120241975619180306480534763439402678006577545168472876244720314470549912909433744572106829023482425981693072466287092873340390362248101086820494767432064206605613447005901716914626304037765141217705086284848708968771285400175628124234375394120309369244468832735445970447290532506030563741232794859227793063775210201511066335373979366097923560125271688696955343012388533714612430528441981670971398823506341879443983273426359883669805008466519802715562216338146742517731221268213856527543124794498039064677119991636302060596530508647365827199347846260820810983714516404760875028594185069928467693179650003068619238010327217025800884590921967088433913458645763474212756464687566225780777217775839158355145558788184927711658308403104928898618735216108247258423526707985047094236974789908438886869020613924347492272313171314645893155234752816433881108207999939553031784708801372604965125135129583790361458217626709244345527651717100497188539948335933238003080022364221328500867470259627887974780519015560716849657063990481137533881197033778594532939631792017391395609336538475039997038926045952486286228843509729311524932624516858951117436817564075904794715991513810059357385822844095912913744258936959703855746016904824625013799172545666520226379796976249776826830738223336493207945104537376988344144004241014367481923648422714675809381698298058464525212788540732555320286312586265610792467357455188078623731982894918519895109788119943677456874090636446563433579987262791253087286457283830286629025970697590909067645921181422995761598017390505913064173945638751866799880087138231172669162306662442367130321654165893484854497637998536675277695375158399877571485239224956888198150804757863045942530931340280885394382018101747406010858078003934332729618695054044871509539080638192590529924192852897171107294853207454918808649528972862314532681226192424218516624783730186289179186288755524931645083341850650576939170341284405485103373754298689482944614963634344630778560323820512350699383890584789916112873685447830062184896471002932764215741294395605376469472627550071718905371131791848365041039847415706836168611609156576692995983564314350093379240351568749834705073864017942988421676118049214234254310012820775295369455610637515677930421036311066971437359438742005470574516376311945249973981578881651176960310218968118947556490224056898615386118201342898837855599399120737642759581803315589695873482929934080867331977233155686413846497463182460800093564704390660521012034710607924445713622051103416175850015938173407049964234694558217478660348783601191391391468554913469580181405193947410573043444793750190865180374069746942875367676051913874994872220063444433401875496290880050687943298195429954427342489751748397869680341341681475504135430351185164846649266071668956047822887960966850280252218577951000469061035440126847281493869375346967527078158817870626353483003146663735051506829518362436197658298437326163751254148418556071944790942015165023286047922932975983549774038771948572436738344606622523119292093668946055681403338240790646360629454191371074168885417500358193162526262152569535629026370769388564302652680581614211334153264248801426326537195911846924166835407553228042764486433592276544933931920369304251014696296742838933735560650893011141109660324559038554047793947246500109628164165439772206343020779357679040738075365872441971090991399759642104657285862495491989298258911358137977617113757144253259597374057699260040186858015950348621209581591992127989162632367124459001471227805022312156892204543056346039657278565952890756055713446040731505265467952937183767558841856167749684661383951996828564938426896572055385922339010999580315932019305965780972220756321193778083041266320231106681970297651489968950946139183123487338609207897075976583646710033069931305922544996920174308000952682413839706105891973533633906448039152087882179864285253326516234142727950578815097979974180264128796883838900181889425306742848847535266821590357897428184631776407759126404119112105813112615795797451102203609874588342203153090672253119007668807579572720486232787553590109792102564381531895192243213742795272253046520720853297802514960666548071715850881056515133498484103028196574881559415717891882858712001007645843942670770418573747227990044948430307315126921017553956533931444073073739356267214353657657784332498878780281514762661349544299144840414358994228432697311153262501880761007885265387985375739506749799191427997239048967168548769614550672223716391849870970899413891046436012441252665552773957125666198418627409087154833191297667642738356531577803487924975274651832805073218300521273017784518810241747561102282829841602818070332228040583121882853175066277295077579854212093258337507890583334825288025524657855318484412229507959418858141941127575236011256114567952542403916272684320554408290067743063770176608026224733367683682072689369767733876419100119751506800803953316276318873848014306574586684829490796932935915535805454460714381646596975941266781278864094794263668157357441651573480270686279769165682228342092299122732028716145945737063091007178891864102797514369324969268309381959621736642798166304507175324119513346210674130502273254457561220039659957569024074353241145825197857274731789179081629685645037558839862716159068293589026157713224025538424698624907704567732499896650150970736276270156247098475121134032801403445817977654916984421346869541028653779484409624794688006967311729756744650066304685559647139246504069952992271049566772505950224275663952049858443809160196519492364910203270294685533758741780725783560235427390695039194077509925753055860520632549565529271159039592743671314628231148321146364268084359584929869009949931213857333859003518750447573863492176161382234093597209093609804949425039494143087371450246946287590374938581385989615514186374036991522957958103985270248900894821126990067637077270308629002326450227708809836554685771187152685517832050376167501226355900680196365982450902717932001063311266159774965109282706855418534035520492223148380714073883229929500570755300275250155922847570203735029994529097472981233390264113169703672774536560922170091194544980571807647103778836274688293258975917087271731895158160968696403228013830579136704969933092985909497026827258019698930972557362068736364138903039010660483015635129272358607647827971316401438720540138869526424822330396578605041254882798623827521900854663045012198361916191413396689464613810259416832919820341694576566810454754984847359659617630014464652920015758405437176564856870890586495241020830774058465290232251673647453055286778886561344511331234543396987935374809924802973844451301281244513065066834489747744570262583204863647804341959119805457030033205545471804780617810748439607456855637018376630465131881198682680372101928590111964401548167605705964276971497675114787191628779687531544354199559666173343347703622473084614939570335250000708949691232094917569304765657960770689390124889660553438951173207304514238978169502146815256150009115472808427546739981034509353298184431724154464011722278404818501965278786315932497262040591375876683317667485510915179958857032731999701144927484840784358943990186866135388720702637289635420143338350730268891466200594538580413559113973947103125593030780129117048695883268680135500556150392783134015720306389516030032680697204959933791779407367439976042980390845866359724956137273084115181461870404799239232505295894730016037331556625277644414440480318719828577353516047597990328911592633114296730253438766017551571922440287541008745384952373845188446202515644981942793526995716211790679161746708910326576047725370097792867234878587462653862277688669979860105841880810640674669327124303155881468885006339139274518974753027508031118131282123431091364289519947277306791454039141005522166796197898739681688693627914103999581484116524973264296489068921310971904649887325171359530803704971013118124814598449074375182519327274499275377509793263365861168993681667443721618040281700326826082380970944156116000828030573360151865647567167175738114044888173530712382084913884370131334590271154422041497680395563017605179915041843113704296268515660913898094458662713810748007564367249715659662133683901207985934400034080185568006187011656711872448411580294405824152717460345934398970949789478447802819331746852720944065280379149714561446843403096081668590117185109662128271427296913573058269502493120388213067158313235947470004037871314857547682356927150292958902366970061652781842466310410219290991696272448042073228119760477347540783376057415921134537806050393796796267931259475056766222923311401379466210142182836552555283096918022289183972869172593117246190745658643758773150465518844956199676813009382530722067761403013771765848193959964878029767830842521247202836912999427029097333133691511938158942344407956830964868568711131605114308967333516938763863006974494086037223098124206533183625129987233004477234351067325086833274115619971493858641053537498879663507102700954461640937469041303993954197178107697890068852402761875412643559586222524143051661356240037958190766332408374641565151540886092014839171451685623232708418069938253236712724933753970755193604797565964816665642936327138182207669929618735482532983402360286436477113285793066743134987486959579521509079342120911020751888294970413209968731696475397092771172700685714654324642035469839082633439790356776483734756526257785732501956582181961050283117378839497177355881648472701096237986327061944128290065501222720046463255224527560678288673438788404606293078940621277744271393851741009030592365777353047719183516525407360654039656981055140447706556305267461309666818107071085588607780820873839618080205826928045041138431539871513251582791158758509081389090089719436307717235849722001467945394191177110406799004140710716283170438016550042205914514255132844880870600168397504832895658631301965063560775795613138400436023433750719585845013604139798897511954555391750308075856653067727134531821508396621864391164845544853450999545078007877972158633403167497605234080382848689097935696750466393120818836287213645134755665807293957119018702836409630659379282415752518711966402935419443084317328758373371041756212392577203422378072195126263123882661014306492506775344657736073373816912825599564813466961526945417671691239445739285975069071109306907592458323514312732621105286674838108064197212343729653689422793686757165265580120843929717165531027760882717236866328972112002567515562486134179084086496247950166381581305086384971075117805553462948534603112532478319778247268936397265616137124390346141644878117717204845128993463227819531496888227908074682614577774682567422824681879546251070749626764966951097202841400366160241710769465746160111107372908275082749429118270168408858401589417443880354903358601594578637874850456129529691765301536465832998273895404597609153630535464706044958475965164793275151638364324799598189134253818177811671471039623748465130725216997538779275818517251593918048765885123426997208189981123433301810466432184047890085709574245036334533877827665979611944654822950856522654310346290967976554864647849010923509107091656803759674800741537049915393662854312077917495059904861091574125030033918221179186613674498394749954437403217632203979312760807885280347760519056019702844875407144366444906662092268557010926139203738021395228433304723132358930934723446760514173355660737677023179181927661751183884324773082588623958567580036238395131451334643470699350504890415775102938033386847437681077494914088272725002425385008051451331133562163463577418875014910993131582122972288772537412783999721453458369736045969463144761176171369379354184824490831997574133360845058858932906155382688734856551771532120108981494122944651955729802280027057439660322842348897050585804875064360263855747538920232407126135005277702505572032912995441385462640950100162808748122601327481627825713532199163297386564724084743794605811760090798070000092203096247263666084313768068294608479408729701029371600121919776986857944781122081984485867398955704521478813279396137200220933993057726156777507637974902081007516689052488063374616770114061885784674648489884341138770371230815288294702812127097217186646989787315498210465260199745500164373643664203975041268588629854906721376473377883673603182818669160802803445611929243785626199905220238192347128503717742621400487313463150290649093051979027040273997351935514268302957539839487210707160137361338474432938961250007634343447010161144352227967775010116818782656419309803714901466374963609472048003601275280322815477450421937726620642938710286439157195414503940867173722261717010985334098353484956186679140665306489082516356287738048386891378751957451854960685498557899776887662202233851373024851395421422032961895596242776155258517446563397894023840233323384954815573036913480298123399143213766086325247761679972645194020786648121959240924218157753055726482088739590192199745180780818629666360122907085003781655654686626745059633941030156277534457775389962907926157498852224667594394344089724172430774336710778165242222065257994034536350053143898710140922463710729711863391409154625900494695160297099301568668696930849699190298602204944779471501189732731909962044812990224343509283654479108217737960675500787303383490508149196625608089306668691084928598377911493276839838645825239665885324144427497005336346193824098192878574430883036789408422630182663597515391521126101578045623745111243883822514462369222409637188778421957156135971179475977645963060638188012144936634350410251509396269506174201696560922279263185121324500671860366029090177101555373278545369200210064799063236591707970532116178292656187502760760550079192528415110482083690726099470543130423384249525413840631254255089770153145525866365715502210702592468033668575511599345289694716981520697675887937636288124007747968196544635951678858237242030197890683229849303143955383455432659095794481336968690242225830768471998787194984654444013021349047809362746044624986294685011660323073208606546890366015453852278716956387096397711845335156044311327465156158968449246407242840737528166369457436273027230032368980692390368153564745412603385547032264632207624322235034663975245450918765842769597132911625957910017877554478962121552884374352544912632890834623888076756857086057978144959915049583491501626405931215778848116110261442492676413151397976722238913487628770417299763151982554270458630648170266412606026767027383964527320832440598010121429516653157471254099300576794223284892050731632413800937524458228846435944634412659591121936755339844475982430696420531108098240102911779289359547374315689170445973397100718722984511423478821624050788294652240148439283600306210467280608279907902866141004900499313249194168599442615612455159565333690947294721108942896918934917550628030989138878024968599588898976891319023264267726720310641992211091637253807732492993902977392858967927136149313725584201101336807612418632065338883231003779426106663583887894562603134393391354058836038675585370994833692782534237659647245844262720644846687815992809894274717128079150216671708685153919522162734898829170493317922995703946427993424242261720937268498560127321198116434081323311430035175291943957850051788855812342794418856840013452469193712314894379190383253949706374266630786581072306282089038329646329537121509583362448087425860144987103187336723611285038934025882292531275345923282900834144501520552149215078322098355939110961259594868352487289616956744538441325341892394342764961445200224113424054038470855537585517968159644058057588717700381320097465343500481888973845257809452643073871578901763052328981429678244763076858536956262789043872376327776223446303392210238128823038771976253711790430587483769145955862766097816594248653692409514158046619349268593756915722000785491371244596709406876257605691607573031034910634957840216414182667315461066963212260515084697504138452264086481536129095147709465639542069388080088696412790567489312448108080172737353666689572988844347586124437192056520476868681886877258443330434984519835699641235279252293992516095191894879994933143700759772461771455471274045369945132635144994043250158653347704364350513099883266421813187600053069414512532027834538279964819256356688547775290086480528726014193772207886510902609866625101789203332428057036419414281284114255047007727056308809540656294180771093188830003537141374725328403766585400399980530601418930334739054346121951305407376268450089720182681446628909510460023446273272315584258856934657290621460373978655628310351372293222370941277652927435165251987172321495600082113742285431307672337556532957456191948121937803117931845313384366683295342468222100352594856705991509731708784205604191750808569688195616937426308922868610510777739538837900397619019805906302322938096081306981441710147145625210187092391214286419530322666082626411236281508611504762585910089653011173367922859764241178293095937129259266042370277134061222132731157221866830571639161880486716523496348480660382283604912140379551580263855254246505342889688038745193424144552080667701784138133141696771248801792904526179952078259193721725636378691545817469391986206166324363913148035334266094607560146459867223906267116803798584972484602990561168501585439354594982909962228131315880055779833053881304609504706123681405247235523996881518966563440878181761018955957869695263425748985804751751824203176068922882380379293609006811420029253117716427025591343474068119194488529333763736766417983809865646959039783862324643960318880899490915033328110327856723009171605683512940325481235815888287624469122439122081979863598623954612120507326755470431478299108012156166688057177555457255533307154346423502475835369727834435224291404599951701432691918510566395591972589102975964325082274381509957685109028291626118928836203823410625931122322686099369292521817132418579753109384492640939129872796609669722667829323188724266274648810880906324229691627127260574993598095996940317491337206465235991355971057677978250496098632103068549062828873139944309126935042805306266857061629196241712453972382594958455565202301472296993389562691310535189128790692483194178016017301031237343378281820982010155535594565987224631120577558190356911276821325135303378366781669963926506180339812095843190105755920565557005789939607568114514766295357409702186268307568910346931507716624995841941342309050044640415001767280304418723460517480624219927204727301303173083741901408726059278901014110047442969935099656357255392293470362969213117647427937660065813223573381606624571385707164972189916324880574117214452860203435024295206619669139460056386858584305701576592138767553221387727846351840112320778169421862249956577382341787162089235210314223881613264323902343868227778450458666870783800784699962421651084451135033814570683947758276729225660321712885441336576415399568822765792616611796596565009192154476164695066352625498839011026386168756013960856429027530326241532905058826034637653296919517549667992504000282831846727118760902244628803658867412502794802080219959380883291237909778695914678134199200752009453092340759550463831645773416407138251275096118855532637540956232797341302293681657782098115664739607717838457015111808787325448364486527145366146075223182666500300468210922015669750302228124810995181624835785007297545745424912290912683410932132575331786045725012413873213957113043828182419957274492640780345425458775796196945907208567230348004591235035966072851456078969387172394037521087200283421558547650353743412816589365288183718579478977693594383824545490692530978512612251626325023165398130625501955682100260293528902977511636430869933135412918793450487888188114032990364359365383943228622421250533792405538987971877124446032180344096443681015281338566443518823624498691666381828178860472497220889243813835360386657743494869520253582792727016394074656986898875092963956649465179538307373741681137197287405760224317564098539164048479380721694298886761874328580432369509669856108519817870165350152070560299164084333346094314295992414990520415648304760815797463785858338066034041681345176224896930170237902352899803280082007633907609137911995221756344121387185833483699121378230158388523504352028969734768257395294725910558202446543239252659707846969772730588272145412311433819586924795177331518850698588547120394197765745861632373578363481283208131771027703489835370364915017862770543126384773271589619726993996320855931378006202059275125551227098521552349959579607271384797947494932672130185413344822887166690492193319377129376495948294431012769274361549733471549290173302267142244522257716883228466825244963101876479644187787142839665931825201605137463245359651775818657555247924717860419488535009373948263422725205488694038570889235675231294904440633624856920109988922400811740337570406417371024884926137837796550020836771544942566082891463083901519870732981110928078474265782767511310946242964334393835254187937832879251412545397722363532926097847054592698713939199560771549802265192476267776562093655619832752450439931533661037397877130159394792499105499947343098996861549212391975722038187731103169114858278899308907180055530178094700422525512758249688128340487971351335038548374125939556688928291591848743039414687575075432193320152534203917479542972947546033204032427647187439673300568533201428454971746880711516207077130905028082660940228674883947552112886654207775911700895537960652522439751164289984903971471669563471639193551742525989756647600853791883126444450836017556673389756185619664956306208551621421356373647988899648029565246230068433437898066486651146716580636803016317870118710626672051960425484124500620823587474314377666724948773325218927448820453945905615106804837386117213588646464032552402362178507381386064283338488416196811802836114520215388361870294884287666076711663936228542823683968449505090736036778135366329820805739342964626897177595106722327005902648769931513093775201533004378405555023780711596290257915486339237894542419736082732376096401507807478499342699540454638679549655731556740562655073314523833342592178166688328323407916769735721860011355299780631803100555721101550936275473429629785910605751360268109525528544332948146354361074763479176903001422533694080300285507234651427111684521579009241239695438504165596550113564193555544494198168618442827835540298969375431414694976283357155008541813984236515069061757059012106018976008537410303883094864411183883370147595339089142784468092495503567660748110723420040162670923972434430651242235645474865960456091378357754476549982961037260111662897682783613529605194449111650920328861615773892530795561718348965867733201991117145461282766981807331520384819504675145778842862705370932171189900850376566359149596672532806233747860354577274394988922030706161777960401047726405018572184759379893687000883907558727403523446470877945225317603247970861305374167527902853895148687570073594625636705791408311610286307912312903352892035949016642446960686434151310619387294156118094044910922621719075774666203195730630067504621239619096859538142071239605246256020803119417905835451347790706619632345823036378349276707928866591267314848998946301215092192011456993775892270295508709651739806875968245551335672000761747832966747469652539941388573039890075263282584914737860161991648915221910368818984873555511250975672925168683179410606087171573214524810610051558259215430311558560104478888707252059162776912720764147024893408841955307157681083882517458441427047510100235003059470472663074535095499866929930391196400461982292344690318809259416334378784459396031671302894965369388014166951082621113820430050081123018046678295788255512377596312423651761314033455894390730105037091855126357736051958717366153129697143270484860707514941593729222188582113923010336458698123030418024832266171412819122731272582952202588824261634773236343248343804999705572501267104485541562410279175882408089011346785026317097516720084633911217346001916348179620200137901116663253959502673562675653933998955236548204394860220012102898489451417448751341591629222845388649878389886376553883312622822454880339031245288370550665660052772342578182118091461061123645663653044135589372767119209698950945894802183962024776126715717030303575844564390210134650587510743642997979687905181118089570050544189554248535662626791340901642907150517445356207815373232687387086295307663196085853264680288518304068827969143323206996077201110339511752486297243730968624788594868546042471731481368355258495370520883268636351227328527319038992836001799608279965708603316923174807933627364979152883001852127488611749959112696702910967636176661902717782099182536064355712183221565336846583522963813406138841778542838821692466010619860020108315715215729563513424210678608644470307621831829016469183483370054156917949784927966586121912756356197196693347572956064680520213241355656245981777426128934260076838043768065798051422767200913090648576235421060105332985798266045038967191959207717256529751725668127256081899625853665599807750996544322103278342834095432150465903615416324190483072674996770864299402409083546664212257112554078157518703833223625834408792424317541346909687535002844382913616902397916250239153809301078908254352229543180053951771934321954707432252277206191551693578685688173495374350518170616068132568359143175231620693446061398245985221456099620758563133019051238165502169880180242671542997624726424962944243021209187432537378860109198674204942739979372411441228646938496142128329736534584488654407577944154428525072997784684346662489256350365277779237753233738065921399147132889805573687769011188822107848349105269149683939389764996070357479578114530990358902353761333051737305703429269493665359965238002761217039122540954262212620576029544908801657695292337912523497635872424478783829471879460187671788336021950967274071008448828278430829697402368394473196914682789086366291965770627264865753168263113655568175023997960225282739439866226515389603312340387099240386011648758514442361045594237016527020583598035207724512527334635596457409589033177285955353303329375096215879915826836447673438987247892214974194747749836258882924475421636773625344659967608746379084829315204057911102892332324848795353202876953347777160675698971142261184731142709209356120797263050707813692921042777772511535839574346489836815604913544545135944233519960382181842577698259922135601128213092519529669021226921218129555128453204718581601214097328054547894684495683581542316887857689640588508341703649491844471227411324248544634012195888557342494127719624412485045826006361421202589729875394323362877781273199072584058486951673892313545972048647358809037591043926532993369634001701410656816928829806377250539925105751996956370394040168447125286872917549435211594857922818795623005213744006333123718272412030308523121743198415269550921895677710493480930963574183409108247390423967329547749417740178757266814899426521691766194138669377482438274310408176366126876475562931536228633626796923680275014404186972984684799114597824478688390871904857140241689780812541048443201795841638251752671699162198224178387013989772471974396673910141603015935453498473249970053752539013404906645989010845023673852732454412565252052113907666574174902214243605896011343579033100317433994362612821971841931935558210068705844942412913181676771108309152749387889239247351996598084149687161182206403959951789918134370632178988057649887186737576985645245727318957933894812907512117742092814737615455769957668899082679322487003926233618663472653558082598934958388505810465843438815605633838567007702209481314756615755108439212284259249882639654972865208661668887976158711499128401633967061557160155112884561157222391279772838017603961749698104929091372975393598635804950912811731058548123486709478625621528032817728134534892094417507661164355400237575297748076810223561574604504449257682696180321307911659584819660605405926558151446522018890412603393355628267482083990679517931769359137046813050168071465728510634040618561516856793807936671126322015137070672864893355245537002724056516540156722207915368707153242442161124401866545989756193995136142007291049071939266976684580201653383790303734341801557838662569885492223652863353177563573282563596055156789218718887050610777602133072698033432512678407664290821851322173542638586372272349040731999895748794768237410972173707580243443161371189937826126974264742275771768411495388165243717460886932600879989645928135671608312188190474720569862033264344091152724118732157995469793784365805941090192421707328445010101619905166071974909713957021132346049467495375630429130143406457718952476748135916271175359403340330869521635266917443385591565289081375227477255995250198322418133794533540217324271422594027809883684433840458116546458580459837548854140952410000764977594684932309776153702229706747507436421912500884747235071796363867634103327116135049227391977752809036822195240724296064856967810870783867903121009531397782732499551997407727809601877900619063639197382771078641530110585771751856513232385431363190469542708900910680659868701443911158279095019350722514206248715922588565159739814030620900936923053781109463631647797567042968130435106868148740025077869206068532225330874457198817444156260828709329234647149626163143267307067275332334647111491306932408895737699999134660769198829500777084763104100652988890813675664385015389201918166853678082443262979539878889722143542255685119229829685115552152078815778525658834805981694704317564073218249127846514678388003505943184531110310917195144376966050631964476955727971958569018159057042793124450354117822773019177673829065241800301400010071076839451410478696214703866247094441585531029050162925725039605439521802301339522318414531015079550145374381881048465607454336383341004256221521000564040389886547879022032778066541182570915911114492543779834127416317256301623778976807636662349070932363213603429763435541773261006363648581692711960931622842237642536003186593742794876924339205767447246781876327878606318567377295057175501253906974223887785116145933480733658356922319922109932211617991250417774690065260134648896831970506965478999597816982474756534275861076079796029143377762349504104325568690110652998717003141941217195334799378698371299621185753772500967063103974924144363265437848558902807136306710127545535308369141354881682931380306369946660632709384940512358327425481942112154157707936394528489858078411724141480464178527600128285266503588135133100348497201912987655072423343809203242987099170632094851394138974885000274265882853328540326303568448711264634825427742938841828120813303623483519885000481438233802300040531235355661673553051701598041565623051593205102714603329034275617758747971526786647491268921734545954473780450499940167447239193729385017553409692664504957385476197542760146919136789060827946622000388483582153826676249505585402333156776811818320267502467260573637464026065988898511163172334286486727949772628735007911700154305820682818737283914365175374954794576769386369078805678936117474397283684150623430023659960679851318831677544768530306991895385995163175465684682195731073050471641134861951284615154785578188887748656441165640923745396143171127356909644037634467230310480175873716641352497980284766168861999452920321290818013902501019096306692433173826820937537384506157285333670228398696599809824575298393402980225518391067391190103288488105697883548431134830436774190749529666100068490515031490066608584898367424980485906327578606736569679806319598398776432581477979680163845183294558615324956220994073055107637627073645198016575202404608254380452236110578299879082152105300289227699943476610118559483924242690941397164301571041814577270587197433646580328290813639121531980563936556583346083701901897249536992291270787615535162174633030451778532976958928673340324878990587250660931849744504503940323979080772501487468633378251375375120519065708497051180468429074892771244354000277008317555532656170522936861393436659036074011074082836878240943760365299420806546195685551217983297997421287632154950290868124269670298842541869856421686991479054431850395836367056501675501638515150352648302414114073594338902064595965553422104286859486019762201057764896222762478476783609160548129161925904712084201011235854911362503445823387284124221000918982212828729190191521397120095403586412106873767162025212958798658855193961035248789705301998638671897761966147819818070907746350064351663722339929671173985174585399663772139354693491631187511395877206348537093248757023855631555016849461559491253084506517961327448508278565935185053807941067310102662646984250131980627177118034796322637902349563284058396815431841804633271660404218115999904093342505856867810953792428848719802243391768223963089606253335651991607441604330155330744895074497642208474029651837406624801061202046095666301792224389111459902403192090040268580040352387785269937847521466283998698054664419549197755015055312204321316160766250049360473386755404240589348525676616832945140040325732650659600426690983697923785128676840179038336420041870673156704092253096381468985693661687164006696100545674081644356617135685966944925489808138830931229152357112567772068136794023205289309321936693664952732371480263826874148996646649210223219031990156974578637716743191272746258771714861468081477677030261047268731206093657028134657658087614032171421031012440845173664179663817465289676480242551788947403399967998963143515432559099281569285903910403833631117627945159109292536881495724264052867981014936376814271191519327161954886621117130371941533904867766785565984683115258702922063982323065923082934642736199224979804405341066851581516420427010873465471384130800190182573904252737049952387445420965528316951961258565769909387708010400773679059831188506487304631200904076778363756681144331348856018694528889347863720638969119580123262765310212960067498101150428637093385563857454547810973241331177957989072145001813130157539231914117969167572739344909768973546486172458932625880042719254082227782917384423105316314285478501082087398103964265020271998081787083853699468651767490241853473222845955605536701675540537885049681748509866727532251225088215154502784643186528903893482146594633258895327895848554077539459434245621953832470338331476672353144581460501623578815770814903731688234628008439138160733597569502164830514967702526948410477914323103549616159941602647959576086234048025074781759877731026389351704537012772698505921238570299627349922069350746711924941344907226100823276472241034693313074596987818852941980956785867929989844514416342769947543472358465853719325841004647187888683199189920638615700808088873121492620308636544636576601550722115532522859257397804820783980822877937124812056690110895341096561393771906713504756797485462689244960679772408575870328576719632498190448163806124203036494025343268843105664035561997746508842394335551587327369076462669373574251902814260755614821035651549295236467205989019383728525354717173998695914504300442118708882891743052642956043594109901526368284745553331813724815689889233497800859806669473571155826476838775662399333691064448356574570407458470656859702898095020226808950659764271063393245534051730939393341866628273201973625495031354395142373774558713823551695092451084004995843333979431785964117868159370219411618424138339285286700790537939827919574071769510149220339937976278195747795347509137244817604676126801733794699135079650116028270011211547909204651086142085260070287459423828344239112357637465102368599310477299173610266564538820868982756918153401292600246196482280442615852298228582825322937509708777990542418223181029951451559292726307124742762227725262487854335996440730312509937815781417540413983184218023666281006778080870078929809437421066610280134853595589879717772023221737346976971250991441644975775477795538185161107693915016973765114545519027176437013277278174806552404812289596928122374359176931493551575553305655195319586868615917968529985109035739495445224771217139015767595036397685029220539323892974062185552729453440695568612531004134280103021544211189640446980115665093928170872517983066388917112573991739954079878407789522773254278230230891602061658460946414236191429414235912372961400821429484091033410670269880764111778237059668956965310286263268772163167549182657962466305868019907311672314568408702571588177191671846015728218459256433294263975050038916783365135507256443441000589352770288094700928427332719148560636455498967617674760972721640959268444839551282522747865217747312831726318969040414873006791701236623289839134272445535805121700825534307081186687806456807305715072203675311160332399918665712129497483105404481235281057103291747965043040086084402251265867177425396449441205789751322334837658640095889043495761152700462233591873698838153752530598462950365125219256317931920175753617201547918474848586082213104429767079921475871278436660088685243220032482572878058763616285719838235055190561470088034341536043874947748776504976493337093909491497977166070713892286399692264945746998711218794652273612147851015431407041460797594222278251669562463521135272223650372253898024687312060800931320484957048297237223303922812460744823972281575207660783396975951298081875612183260201667199318212813989958586194653700631978066990483290724816977370462686509868528976293201382604152262054051803484460971273562373862447260744584139767432947501099536236140393278492748777013292632034440328514164480384765440452051903031007998636659862395216745694108725584743141512516389528895216836761538789273701045812393229263100571829513767644616510955967698824058082138038422461222692336843559417072823157755409466691732194832490921606623678725398259752820406760493483732817371681592985226302880874828743186204116279188350131991791641911358172733740832102750813154357620768006567725217547172795772566497214355060005031202626269526733102853698972250210094637544061627685418767823437469622995176564983222088072134818209768739955904646416941594338235038209198336105329260629064762903050158594141399407614179000826449881968845257743579111638335937961411187185976181196569108008252981501765013683531536141479003433421445955184243792507546374081041861192068466190438630257066623277071017153686739189829705527705990773808052078247280241117627529216507697539638397808396065856634382360912435183680309642835685447432173001157781200498702933374077119727689023569999877610581974185510316793869984161198488441712300579516211076585404716296623613493439193786006274906895447415089088694533288957987865641590584193277063864720933227530977471776148396305358057186079061520869492554821602277001822178466697518227788231310503810165219379298877671810450430238179599418389590110346619429787547810770890596637931736751899745858339360461283631087550896532570901852840282252095845413441098028134832965501834926352946597739172587100517253448848347655505480262732512074890665839130494816873362375233409321748496095088783502415177229227807382906913733683412318223724817323973158108888933986420300887371486384149370710628754465135839286326187725143456555421397955291846472170645120679125345287986352469485335547113757899614379726883633838506293231256694150124607550764243232291567507412952426890612036802492657553994637557363544171593168871414291538280075018530231612564958668111885927862034105483497468623726303695456670798457754547616313492849071545728733152335071886871993801612307194730047538878293237936841432589526785183785825043686152256024678954312447533336708500294755441889417643614209315511748726712403291070138401910979614907671966069601030357856387047865181083872768967732853462995393005455148826638715464005368167817099287351597418006169812307788808278701570703509701289454544792917080541634237221721085945729191758198422905476218807429165094892745703062672934985940323850058095066049089968637269634553747312635136938600664829783732647705407079986792495047491612647020612102006144024914453825036773988849966838468160186569192656524181968342217864478374467545783574996981795693432316935797502127462225856954238372129797079325729935650771009096337002601839640277113748674474612530056191286623770716424066164538076316516654446425834349067841856906735796788613838508388444279628137914801545356916738945863097276762443974548600939749093419850438294281897631149415441534721585840372884389295017838558241257447308828437651138054933465342286949954246396128495914259380199915638336543099560713357009622922266095509128968150188723958848140164060926323486337764806399220807015813096676105058367791364629346641338269564147225486636702609761009378022775253478759350178892596425211366118768396039586034311971559622237777102901364764722182358007927377071137112906904779233894042919206058900480379930254629676584588957859945765066469242279188868331173145239330931282702676998450452654411469544223587102372516407322588626979657897994711472070574244644570158256382327116803975070074350666984798779420151042912525303592431929828904633061188674243784077840981849213817574187445233333966826308360247384879060764342073220271607062989286036885238304810307587291227102167923965236164343182693637568188858337112393533211487799402595969650033395530434275469088920012561851362296527298464109674705350857324060905282192465564655780285145741787382701749026651750418185167930499172207215753794849281701421195102335764014529088968270709441138235943566248524026766803958037850243276140662761130778785840620667846281677927619283148862754590928618496609451661040431713976886927611562165225717851274983131830682352972127507321727425288505054649674160539183155701348573309807216956937585474614069834701220439399677989225144039840540356226226610812010137613450783050620885515446023251491234860745579068207478730635072918952482560974502360879076667308685537770819639004146506905004808798965868747152711279507652285598261988912103242614723978888480720534390866126951083911628221279449131990811002550901970793009784931554333266590747524069029826807860185688884310192485338258324543330901116513660109581210186588021441751702112687413239683074442661373308378384016824959279912669810978329724778753246787891648744793437291142069090496830417287410639167246445164352301801261057886958129501318869375604905459396505387739641655683585911502019839747981204097376661560455965257283033644884335728930862177653656894803780346908382212653081728280166822772979572085145622175744066867572527345542911972748476904880838336650541639760852624808348658592351724700587809502894619582691938240132977398812363828430596502239380893111585568329177127215646907177419693481074435117252942340879699418803365334877473902929149446282763438742103675382887218532656941880109814024005718940926494302792626698061801762767325429065446705392810662734672516645857624962874446421189934928077010952263057274464190245582185783878721096724307896117135169041543453820620657409491768655893304360187235387872364727367979785593433324779241932423868001044396186023704962928441428853228064752395369750603665168787742340373161812671731153709403382448017920964565951470705660582146111713267641161217032193484577758066787391351733278128850699109849507857151226850721126138559196685388019287737951436020647055852969922199109076172642493390672840774062914456884675045883441539877633518617258865976852478130851263835675987229786804573233640685508502560090105070204847810044330875213943396628132179057090866157023013077718465574880934016437523761458315904002319800139269259616085140824608577402191402441252794899730560921862315852045679800857294744552712718121364148334755493957175957804970711426599472203602678184024373255003651378355818835896503751480123900011704251602055490461472864768640252474203972084714723113173888727349483001191671923673151875895895251302027561386961987553714062978442184644009553516420854134879172210174336206239150933765963386084013626482165126076199521654056579980182468296694091514949850474572388257232956012573306152675502158673660565891213391443825005742366531581761400080230274234403753616082240585106409857685078375863810596787668760832670329048137927611308008707741147575811192023581012735164127888592888803021668705837793222518057601274793204960625825455143590722941395384592421723538209009420514723304131653770293309958783278276088914958844570510775530204705571484756656088562055632641622058884014994141044780719982822999278178392435748700195294122865332844852155132755872014174526205944686585575447139089422415587721546240486065587960294177871193377875526651025372643593599410482865099976747104564466748757166354517771917810062610249903705667962283654607446708022386465998145126014670776266746644054466641506838257610591103846931659979376784479455418731381585892801315973535197490765971040867649198004252238722273134072418985968688820018012851355815071299003364811051952030983007383136251441285441153576065082570893117053042665474607938533620728291313924069792423281391884296507792277722588983546283610962074851031181986356493305082867804427396787891847182509760702836792565699550828077806357966588562295970498970890722349697797549251806837801963617674797173085504593699981496039280631357758324700235443228556286059324089688140823191442787492583021734658352796323750660043155990344513918675961151603922818475201617792442872541722643056068669926054627043512243275114118099675366024343516255774964107923578658102204906476178110558532293718930088813501790743634282987239049713318393569677337082373723031932628957984955242829299005012776211172354839523713505682344137627257947118277992510505103479324262284740265375919807774031696667117545433799870737738943351362269910220012115267160764882526808211645865564106320218103401463492600573040657096103326963960482936973782614278684088250129891765227374969501353526528778103988449784400610000195690710828714806762325164008065619795217047013881756763056427041222617931558721406748983669790121431099196728546532840969154478015534662930081782840699699034644830847291303961357605443078143463439004242397266307026886432290734090344841786725853023927261956535840982072537306433770855124614518167077563464216648492008098176230179364354829388579439034998941413995879640796087140731228285699293680385989365565090312622870419291153046938105390029475485643190769378332167451257371026549499958788699216556050748477153028914428982314437000893453335906094575804472222094937045956745505765929904840465672951253718940311674423797812436452081802633092934475344115601342062060815277930624171946793167356807057682985768285676750776178641190604894077032946377833325851110726996722699646312156687544771005640123373402723732840091492378253629403012335276735330650656970756853603112959961635396456957870761544431214313091910938870259965594052563494432813975577721315532539447039300884959057059494100357738182085668976832471500715432625786796724530106641780260822584505839499999500969659772083060516949979124935169958320138231549278594101232038212366894311899723880592469696210772308957511273531348071809867684477063658356458176508075632238409661932641988505160152875687493439342132341841617766900382403607510526069740059512877288715130584682391973383484607147669467776673410124100652423611915002003965942478130974312958124351991773776019632274568473371922361497023372034265149016921811094646359135319167637318031865551780834162275116305604273058347799157478826279122806334209161885607178423430776403859072510462067339704261958438580920711804573731108844851016471906729795022906278367294442566683796803277065498869115832528087440965947262699765597423225236873517611002545618667455489915226333393853690383342142795423076643900950703192090159762619858968005927448621358983289443107843945499189215884772319226949913990669232714821097869070731761354589151604925399925161002212519699507832448965132584394232417798858371119799004720862565737157093531795543863369927113601506486177091571217431746029232534405952310812159755573722888821480190797922454433676287961449498249944319325810841942796094095789005010159254835546833534663286055247891772852588911173059266284312625935260618435552007553098355077263705961516621897310409475688965450247294036872967272987460175796571455052871264618998248704857393850406618269704221920241129144984338174746515319797234981953020905500556481422732792732253445260246641844030379021589105881318239143153229932094570745416494982687955272213038687442748054693885447346876890623932783880499524464402402111041698782350091307870507603561497044571553758932876571126367922139982428456736879552605542377915094828112097111062753775802012947831559233560009622529144981516765834616598508925158822672918580355103534162673591522124191263908133192630722419728086944550382189119711431821912193867498663003842795681005492075318401248603815025062131830285739220672121077232725280091532418936716966975261076244643721358766261583170967758017834589546171576966677203616674780501382643905730058022685178012445561670463613210940037520765909156174972736454972107909593233134100876990836219210725758891701507132285416072795114554727293309533277416640668423715393783268933289502575141122542526115506313770327476434329267642774612933653503213240900892940327268052988646782575596685196620523530775914464853161588031837582910282817308291827333187379519087553973310251016963164582891979240192281830977809890011343568006143703030421311023619784597768390161600942234006475329070949604677989601444626161109087992709174608381378265330510779232275100672238200948930708214522211439689738710948622061912605202104497105256469240611667750519875227315125747766119434788436844637991524797716983995690757898617985901495010788629942431021534343300803432644412802648439773363616252782605623107736480763988797909436100015736086043902091876439497069024995777908042328122377651997893027731210404591332516653224287213562643626036001692409487881480095565815856373123545172480778754335421873419475275022847758163223766995463713335529849834298665345008487626406514481940917309858449019927372635335184307641659232467571281611927606368256411234245619998224447209920224177500402326835043730247867840298003179470744323961034077754013155193831892950897814925953159768986851746836148776721023934163607122131030423123908472322762058561857938323255495750320188249810837053172445706830807467082515232304540840625061681402890667925196792921385057740768555151842366734607034247510505958380028432403717222282447030225934726713229314029588498127934955207454544109919218957777983329696432231246368862286320238736902581268478100889488814961423428108535612723130522469591171894609744775602113673438297956172163284610049894661426616631150141838614269152275487363707250774863053529473766375131102809178339556055497925329427020818047298739596323418120131569564035540007139347166675369789465140590690542043677892866411252485629195282816431503097932065049818420254989825389509327015434540560527029978132833211310587587013526824830056131757387263028616994055171051125940073721638763199915640210720198925368554865690494371650110728071765081054867138628744018150039078645634445021485952868245306736239177337027257865512661249337349186009476625011142253064900955439689247596088499845710527067828819032466066534391204458400728857446396443555607936707623142891495487048414584886690596642695273449739754061287411518064979483055912104649659670129974705740520872340555380085451787346609280432727019027272069386806290966179158024407622464178719324811727224076279436630477127725480462141434503826286096905838449401435317784422839357042709178985017425618571386640718405571782763699281469707646770217645866219136829881224334790586146138128623780021790948470628575940637027733598678248323339453290097461052965056601628289285525052710639820199213910112640955279186554080995098284789305050276826723219255615299075427699831079380845169716859264030162769421632011304628796940815202970175727281582155505012923864081367178874861422970084978206184414669649955607477219654329798856043837981485275860849714830543568125364082016378373012877359367558562698830619856708611046893171543749539456722771868253889975730858600439474995279133695988015754011251307284031597551264646178471075629566779820259102241015090646348890919071349980396164378573185670942717372036343776026111479426645273661437715417794692765963474127175262515315700732114904390477871375591488899856887328476518631664649597021711697712925724015451804592914375422668724745092337486201726605977949992106976629121371030925266200159891135027115593425393394637097300656184922083273384682203176156744219259100828340676512417362168773786174533491437227814937224894444033985243518106966439260470016187545069183767677078801096089541727774600915383245487697494746595220072393389347847024242402165827056193557338318817173311684166431134702625290079856241739775011349811173284433290558963338864633277159389548992518406267109328812164914204100314717214311560400821958775246290608522687984488651925594425883868061824108920453520085600429589019955481056030335484495604450348784320384848370779318333056748881116715861145674963448597722606093865673553857644464402879830065119646016340648327991521025886689876361906293960810896309338043890362827506818027316369780602529921570284040990693703211260025334937549141553450102688916771030109173227945134114384973830800430109966158547041518294621549450776425643541913891038897358547959392333534605396552619027567040041531110329274958996807246077987673109665057421503226772298080685615807512323899733720052406118757255182978191681974574641061047909938973189442305370757014587228835404847079425826551366887970181831165034967375845791299606098282287955985669455498961959451434219251039052080885470381313920567226688541399203246640680116451588983262610508100570864193178083679974831042765874581603399469114372847325472280267050229309228832153289509652316977034596877218023519616665820867795695045672573377652564599061257680176755765483783302339615765990677268098108185763275484361362260481740963746313454365720426522720554030834519329832821042745400543942218681248375429975423542296048123679088583007532219245083483752627559148741578283481332626531084018059272228003832125714574884563129994752983442197479135052625893632171198055618772742195618288735526501498535812161686871451349717693460245248621112414929984553007528030063189790044220262102591095574294305113767560402620785072803379163026382081514091917022332231990926798766503677067164661642381727127217466311970184405767130063146915616994919511325406141532659062757894230606284990369585386592206836458142417154793811601806262204592692873888452439995439725888936902366059051923086488179459330967919514750616978891375627587711263627324171599263267874915602954748891188646607960727260943685973175429154220321990605085062527804730967528527388208361728999040824454256398671045291394546562001360497981014614129003439436160812368250318757142739166801391600872328316099363949183394685191068737943960064936406485662669109940632260919271291858493151523408402414590679661818257137618719189924326071437278087078776571268480176384397373093470911679553337749321972130709667303159822092013773180951640108333213612643826991892522850077401885714564908402816297014290753165137425012486347087143956550754084853216869510227949737338430335384082188532346916192854066474989438881928209033928512540489003868369176090633987618006020626571631389305435427946919220871543827465661432517571529099263136061730508737696852261366785840644320550861062815413690363238018467272990388358059833928834274991968141966682196303867307750051608497989797894659229503365725106289760570375035329163041742126426249475715535369820767147632406940542565767030737896455223086189954661230653630155743746048854696718565257923431070027317089383536198756121662400951537013391002587753434988766178341945992553388356956742602702495230994288019694944096182304753780195362745487074329013731647616071588557736742518876359818211958602904424817548476570238628318425800241201976052418055160286166902874812834577386984877601670521335219194554684540276268109942377395050951379710784160922468092776452968569375771026511091047452347271946076378056891959625277903941705461020119333237206397760106404034103878742662301300872198620360896462654058141792894781962694198530411153287603560613970136133077838750180829976229476744153389736204523371198063237660665195473674303607986375452696014438830614547455321287649557643971793944748826704369560875933437555787994080770759719491320304436573153756289436175068120962125695638863497200818532197294806668671532478255768673866716291307968519174931386957162557053948773025359417234675091714647859987697938843313894034369057506458770223420851828667056428704720794493933625521420859668850896935847205575160380799412565408299178953813990045667053647844398696752352591653875075037658717648649613699028739207688559615960755555382428171244702980646892878117957162682443380902882882645544798638824210317628119391839420975172465083295091285939679111414924871235862561983506120478396245065346969315846680607148448358142659386458208304951066925979061291131396677130763838671006152723421439964308025858934760591159575703699069366082116565084099237186971736508398014994135028937760755577274377334550184303267468803185794959678709537309429035908503777343835488110904070011870313577808353572926078038523808008909732187341489568853470361189073604046333690795774488642774906703249760450607316128497233607713848234100096261019580028357725234400482221697020461276278638956616318269451523562134436270236798125082988996948632998649152755748293041453877631798720525590095364329895223913808974799007847455459205348026030838066264665166926142767891754459969792664259185246820369977021354214438170389754694377070465190105567493831449657869169412311369007081844805856182676417503790790985065997917766330793875153043353222173992525092870623844322546840547330417589059455486724368075686613090605362156440561821999059260405990141155863953186756118153517182874776999850171187453683065980701371194050929674396364776455265560048062373563650726452167663448443017607537308759078329194788620236761020661685165402111063332337146143569540593678233091795445391230158111850863588215642418709991143877504343671463184966667287836476933978484939795152216505977088332832077709279097139747103197330021111812111034835036726826399276662776658969398789840365698617167665033782830286885360459528814363415217068376827567127737681642795201775867798971393904259643502510685476709139991617638109746389688324907309913499137111309758169053072481772881350689058740687710702274186300790896953826900477099423534205966400119643308966130252940808847816225104675377591981043522312499660278709886033839057634000679068948153576930254776526082867985524140550519359454496848433750218393691160449999589768066655850601917220790310255774471429062144325199200165262651769979783568551276791820130577615673140112487751445035654471663372428853052684578694277296298708527576658001375205206873933271402167818415468708704014827959135523731137961973855926519314191220481191657896359044716149139230954375246553325842455618606726010821125388065277019373883230433402241297658105061937846077778584180043416285715834937012459284610785912417325523028516353458412168188278729255262985947174959456616341968414341603525225819930756464033229278069327253493994712658909502899507381871642045588328928366920517037799219039930696657368185663237292511440764877975258399289692666959572296796610299985837025098712053916091881259089626491028640385928218542572143445185787737710116988736000224205595891723610642587988585850976906470447068474039866969854419505884516135145529742787579624023294525794598100721118573614670797141668224368511886189321975990829122643120810401311209324980082086821962217609050179531572604387227673201927990240177165284673035495836071943673328710260658703003763746780876061455071813255189784205909972604787761742987587263527239877097485024671268919676235339654125685220113348660943827361994577434836080609901592703814675504527334990923957865645825222951095883726338484952868841335298374866121173528693079347710826614846551801870352752263999783234798637226477530132960060887940292907043856424760376912221189972893732432924939470313605028073567452189552746900796053706735871432256357440985916111814606046708425501706302736427972064180998985117027277486012013868805656061339863575644729859977816187087983944272578744245105580634318129373234766378353285051050954843763868939482225278092088179847741312206604575515089913867107073378473207660432313930204038884429252084612172428834944781733935297548566377122490791574329493043307943856061388625199038459194377035858159192527923630120987604001446583465415009993645065880855936240048560598702522999819205976635813151782871955488541763522165401035149607130370262778013995779603498193216655024139015212068817621178497755882934589563016895560585081861713950442653957853744060672543611726798518345930116721972830671433785018705407644341015418930153724453516806326102394122619700501757152872380033973374218867099692579663847523329263524183835695262531282674249080244729901306232877327541259201717654774084197511255463662029414935180069314224169916164898055980197000072132842363909688684717882865670728824339245091883075960944416472727066589236182559726577536860082996375355336049949917436622672434145766146006753250946688042642010932405380001557256847641592472776543843911191618938394825794668423293559222612922481283827516459167977230451192534887874566164660264541477182299323671564514549135125485437136722541936516784461400157399280703905822785038956072075172075604908964727526667379321164224596809653296489022134988626193902757874547938076288941275568176119631137876913604924699961427766301553501062091031424768032171020996419907818301810407754361732202487328439907782005060454627676592596371341067023757387292525035213918190074829994391624215588880993399970638145488388694661231004614389550001421143438853511818833973470295555741986893187267131348427805839702332878700753965685127226690499641581809424317132506522199843592117259390782130195686166560217075122640924950348800437863194665423981398436075081656109708845066285753594074533190032804805401906422301169426864887032763505503303941143959231982008517044266249053537271700744679805122333590109793480136781001268318482555349278842896275274176453614602898455509141437784129784902547549462087370172063912074872416416838029253980986006116248388157166667885349665592716638872971453203554072507282889479592080989018017524126351938819072242961044953547300188266612904827111882875227592973940285240441401428984379116290731461844116288804729715582702689710060193109734137017509471136828153125601498041819346086901153310933331722811212528210025283136397390172190801398951124507656652836341669695282124549722930333458894050256812653916957831495534990339855992205932873062407358226899983556435796725930874601360239637944863077480336117265897026232546552601434700640321467694946337181248567030242049928975642335232414707811919321607559178329225667537853741998784778121630323558336323309734391353783000817198676083187268739894822611242982067968716346867268081442790861504981132327723577099365594015317267525047476422198023090168599045108961625057360851912030523166869440260044115218017207363431971050327531458604274610858384375360037880437911818670954448013165085691657035203225928929852845397000706132341620887589048234713152558809486864916778642616189321317217424702129124633354370238707301428889968182119225645202312670870218126357505083121548906633258196278057328232959236827108088697795348483473244717544522128197760516027178068033996373829794844149485419506351534530364191220388467009757372562419641009654560033534963578844423804950655831625997240645177078815146284507189991495903304239275641643979719282955908653532333705989875440037278548800203583967546503799435152520390570065788683075079970778710860887355920583015670940469736679266623800436751707092163361406078079395333441499279426211396934524579978382657616849893008976839815446847199363647183078612826629239349815239357130456633375584600743173162754222171569797265665645799521510246418458331702543461725568006634936253278048056525813407891427563097930476529251476730563136599025883905693128515016987060116884557393067405549140405909166475696277549151910797099511857254310051727488851767849716010587646465033149115784256763275593856206393418430983060557624798808469217572326475746894304770875998789352785432830097128899639203873548044248442976231340548477089774144098570800302363905910733049259576529529775973930052556900030151139140612811065572216121352085099695852717458855401523544549347067021896469250192643767371200027713947698098564559861187049860010883299662465395922001116514520782443052068038469275446083037728855110758669910275949453717281263535229693232891134909749458367651673396927073526391815985339005025651443348496098505124414718206378301195335434909234705600948529055387212001672679204602185234827230428219727368271530336667147928960257380013473073354532119114629473891188170727587044286236122090883040785518135050121163576121953659908686005465382965866608903995921704105948813254235087854587709241170564440396104540361912021454371620776464930176709383561416841367458683223947991376690625993611243460310726019326308181685287923167002499979980144011635665821045010357581561506373067851835452257916604282967366084536093622624143400261160421164203986810445229438705082821637468465531868201626309817725089792868616796777784198954849442580736075792489404091584984099344835586044275213481740345356075603930622659173520979097546133941762766108262229412780630937271927228547074517603473373116454146658705200700540990741439541000738090970570303182977162089187594333767056130078325883848075591176921876717886967515305930299624199904792167646370028834313979232527285377744168288921503948814674902509990246646570232032625453777720800736927074168289871975347440431727319322527376339187014001077966464548848669725446930359633469560050979875732183637323476224320478242004527283593819098727425659103432049037742288182832922153945135351882161492134696310723579226391316928130125170575846443935651292208321678333324689891702700339727347880939245266557479376075012653603888211284819436018762662988586219609017195799240474996068421230737480982535704533521644493427676543498627873425852835585280939964064222210020967041481073981206136743826983839046776912711633907805401897855941208159554963011840158865822379976282553533519705365812510155756275307737679144394269808661711642506681388282230332194972738132940612702012295467906651209687619070742881036153109057883348528313612040082162180758481526370236250935554790631147176865759239083299419482581694640111030062589552729052846475597034052147689921707044594032752304075470437237587878314456087804952119804902812165807006632961021751105688315825238279965471362013573965691822135865260538216149402903117201609931427021054492554477703070135816332978976018322625501961389530918172073443967130257670693979631075403799740010777704881965966254131243493012846469979117930247935570372285676382900888723886535154276412555014751336703433463335084504193124909995966428966759117259801767212612007320564752570805978986161963289169100957503088956444634480678532443578821371911417177764149868264433898977318006345890395778334923735610977896825462772729777724312583306768071194180169861010467610003833837741786989901180637319054370583358270782939764662872473462900801751432869897671395879250940062012710303701514943764862858352919951835588878515020020854762858936785410974202328015323980367457460459120518461589514474829414781205939921912547406007916972838815506777006771267713461955756057480048854087745821917218459020204603358839498060781519781931364207967032074415269081532091551921167266901878520707928248041518247711857306256921281510241448877253672318745916977660434385093854262497900958703771723064650267446874343511290514661096602041169533852717291918229201559566910632886897289058577532444579762997524400010608312204722315539559462596454873718731322018736784202321874987023507210946510789525023716685870118156860506283408402338602218817120716081601259633202962912191566854981168691841905686079067567372269186132691465372993940821045418706304182065475390454795892944435240955149322703069578082070684985114815822738214162759723904452716048326091944580604545725803294633326601786321354843889626884653057747393746266326708813526797345028268874202769710124973986475317607543086466585994886682075107489749683232188071306862845494703794152863030757307995582931693584967145050900411548424174436003265227828845164429110332748725376544431121152777474599623612699016010379776563214710136362082392917991280448045361013876573037808017796987837114153103421790915191204356102888467232488882428793342507200840685022053537076250926165984220232669466548727855965733716674508862185602519846735641271058102323648011817648677872473904435340716686695036623275928901033427724059644827035576882440111951562778053020544725401990766152340035016922911991081658679037906430247855659416369990260668048277328229348118136063512364128456953997652082307173679393443300802146815408671843766014361670861324396961962957636804295540536421061508564550428561486609088760298560119420761867337363363380983888310749225098682969705389402324988089198041979711691747380269991567535417060962305246582632188275288231209060115545870853979121123223292696537559141910958025783091293379936328628859379106080007334963101844500566606608090614519794855527038594708488608700781046888359298535665355759921981552093000468142132417725765771227587795983133799126569854685343808571930135813154305265121969738243945237490665732034781137999420050317873250244105638427251782558749432101806482657016813952145591895402020132369113600254952680919318568376934115388857804649669963214203417717160492617337618942498250984859379884482364745701751443119500865844159424241200756515921477711165133054319125081607299183070922569755541825308880273562056428363253276377359258676422168719797851146891440470756549323865247555931234831592420873201856431382289697119966966075425720463427851959225006767689658699117443190446881043788371828256485102920397111171859772623454098176384851557730394640062624536015652852165721715153796438499147489146927906163416151334866835143725312973737425082457387451474460619822475841352064683810309379546925416298944977953201291309526845912898146902892776687886802150367340822452161450708863513910075236473013397928408029483936389881268511445218230426332167260896886669338467627687494864672233402546939462702608152960908370278875771095968421630057769658109083844019408846871121795148374422014627627642314012733356069836362003402690808451427955052460307260682085477959329678265782496846280739921783932913175635697428305105025343825546089216975756548710674521493939740554140192967900697238563564375933739499355425417705878050718214857601208186878166975871605185038245423296786017813030353515362102636547968340535862710774350883031767674515433799302416389727944128581496012997909233258236887957472225101316009290914335531613385430197270001077600025083164070068818798642756362388536680185316420391589049114863762671917945178287230543640545607114910978086745502710261765593349728900165735861555666387071120981188632156919141767359091825831728263202364304598376058915380935530397051443681714594739720405288196741992959149210994735009875859270185139294932089563008738688645529627576850559336582850137647679626615967227599260394311698793041076826238576219429868151576736531399678213514538179288614022075225579405797890044011822249137289061640249117596601075741632583261296467076411354701961402919988823531421554318676216421227111070252330925830111829427742738799448835215273266098207186519631821591875214566964231028923586911119944452712888030828001625823764052288441695573992570460534056415810042331718896335159677548439664581950487448564465803613001840244542611223854355163922515728735150780737710001122061401898927363993739854725271970977702596715042360793757437835259637464660274919644817314489298174899277711598476365635551017972658593017049682894032774378536553880011686953767290475425472416890736963897383081872438118216261497830633582976987169292359143797973859151274567795362058178817759737700002533604537012207746809072262047685586945610711921749653498141931077929208560262616457587151624052968887131640480958664399236030471573071946915364781482012207957707135854084523870845981881924719822992702799576254754523807698273112595507714234853207059542241191078943235091464927195170637597427229940096255072997358992308087607863369801941429458841998021301306855058305239750933758544865049060845781269789866617233991528566948239634513405059958788885677104028903882436067004076876050105464665753590443959307290507806676923198555409253631944741467347228577465819302706039243569995275082757153829026218374436735576563102402786883397234699300986787468533178974752243242576036094358959360182854546807195157581294053897659961856002165102952081127549391997845407967591513899317174688644559039508136333830974160320180420383318255710736914889197501275301689142128733212346257358758367933677387353168690676683611347061503713008260107845298418546328888300385532838916459880085708331514521491845499064635154102971997936067389603360550774181424153304310978601902684541520765753273493611220913569288084361361088522989543367416578297624081108726816575689376351510605336779297348219628823392724680497590052706505553945297913827924152855867962572786966802857956298466406638364372601448132159386642792262673711186268736332327030501958348030876397189687483204377910654714639457053511427390768855512703757445696127380383603470388611238617592173673118692694114647173768875509301246294630177682344448094178594254863539029416803196334360645172945086039477164197891171332973494870799404424851139912689061404523545618601967101683276419366950280250072825918711024252545758187137200337516317915613606275437959820974972581936358936290443098731740292994904278047698937719154633826955227785966851472189713426259982671535771142231743989257993943037998816384207588520672659765095526858916064039554853614982488591355151001613600393996686128391517427430260105559388302003107653542590267108210756172889644175330332561766969435399686572553811255882175312047019914794950867991208084481746444990208389443446185160586060686210507649179089264756548131693508171107065174560044191811566266219155720460903325042070940777406062527193950862183384129216215211432817957368818026222038214470737813228064829736898193166151438975228808755584249520221071365295967814674422630333881039915628289074198399570480440507854039903520236154067821572365837230895026142704205427758415160616924357101172437096801135462946373910917532742494302301030405680821709382185192254479861077823495368340412367095470460475856677873452000577522323403400455576479123869380132170001656438433007988275179702886287624957724775716937409002188013955220188648353357092555009741871470502509273062414244679498556054798695339146369397426833548616997454320981581301463344987312124514455686062348245462913689851750567817801842992251162564358577007920515436782848685826747539761678210048749726724734065914624270026037922856825871178942850268207297404423633937884714569131471319579535337319729589334233833965257115406241322211653902135850596625080139228259706958601558739913431118906512881194121163382239252868597020792703300551586106927461098811517499085616303406505841957393768695726978800874207991619713333612691913711796599405343680103740703255683662590700158056168385176908714720845720876274090603993962192851624025947932738074841633524269631609669654914697655651227316788727238320222537550045293673460952308301714952858471540847658910288516077594923830422203213275997925231476964309426068625822776615912743057143404928961485930793105174824455199968323958169117919387118062781919721396352039444720336705789252575298509268984788386292129846133820281783354955689334880311991824077336140472180718198975219864471968593493731695292908237897968505299271929237578300587520200089589916610255080529227328226125096167571597592482651590018062163199448805869645247861909989553474930719991024877316329710084201103688703849937376835153330398914249308925343262770415335862045214804085957856998993347902958560212646986308471394891330711862590209854037019898991824535676192276960234946008924208519287502051037452644395840468264406484947900581179102137305135353812807682184325502449847707864725803655282381804664305724949980840998729656166114182584258356253941025276756272626945170495580288252516773468029837159958911384497112920224948288599819615751917594875497265309300916183082467599676614120883886709660459905303162554306434989247243950512924449052940819583273225430782075273935059906091133653512498190665070052154105086336800806156502485697102028788059354400211851873929458821938282951243355354586566678756561738114650586512549561156824340747204703243046875254365150690057614987518014721689000576856916778272317458834845094044475608430452907225048622943443003938536390202139065687521657864831113877435728928527661529639713841964692490325995767650880630803989317084734281052011097424543937099431657540777009779896705863613100778254084025245602560113920608256388490706705681140807138647485614190890268422486797188201901226071166788239215228064795636799663703898709630156791222915555383150504761813984386640800921680299621696032081775882987407651861144313751531833422063288055962388994355631737601756205783915790159012699927297997448144858883725806894256210635756438476222600927720342015599161781511501471451953677956172423456141990460204868056406211604544400635365887324734172861534159600926251073905592316784186344608257767668082185526790373915709945402329428215498441313159037657549724184434395494380117130773610934046921129073154627004780650098339271380936139396048428251303210146011687775378853036878868382395885973920176542750689574989525564397070893413978687095417485168437432986796622757376365717444059557694646858260503482668183400382190237394720412597786323830312129246061974847367913108729065064093934584469475549867887521471289151497040251388468119116705456435990622786898618681655866962848764918188792932875742169199233533418123366177427189889528899680170477515083369449001369081558139830818989059625710681906629923608747173651292182445024531208405776779832050126347273745353369013174090789335040890843031451535922835965653992656035063236164140465997019775309855247949873996541577919546379592256551466082893599350923704105339098426407706954054848005163353102538952449502031067491376970444451149728993453114754999215446117741494875623397077492062978304650246998479902380390394800991474024347761687450864018127662626104338684718523169460325085719696340586886409428264272640276133749818103315137009077101275605063490566196363880851735269867334711964677354921465773994784203698259086021295837895673419371340211125025120155275450580463891200925467264806974238787584829376275278490758547084522895327082482713668623329151267363541505148395036387177783071758677985512268708754541427657605244626050676270111156977929263447253393799108264283523818674636484306683247896112573999816953806302321791609482963463521609136390461499006148220411634980571083202815136360662092919635857210256119697783221057660933269954737911953200890143542350466275167861498709582678982074131619016148334436814974964972710717606005881638825420145010756367707081698437073479599974963405228913086619751573510224617838842657557572726602568009656724627794182724045356268508021681280411809961449928403919074590974873299730785032197770218048039093852635035937859234875920279770863003618758385293993791839216962175151168634076689430928689545122692911116563924116184049905029816459258974079954355502876323234757101749783750199669038631922060392728472434019230936780958844757450679972277083785480674027347212095457685135140614192210887757056260417210217486413841527959531749294175306772415935769685022751888369009846603754576685719761193731159714250650330448064519418768680193377221709815729100631029007817758298339834233887338228693991164973128519954683536038546994452530520545687005859730241425306409073061833302192731647059087505426494138772485198412726543384798729690362770487565890554152646098879216067084587598516183514735514017010954666801285653360578043517612313127924939258485259843482924216766131150498245682271877089363049891106104853588625397276847731013836998964529592163539688749928620823058965312648768099349810920126951421103947519491145880599094942685280523214392220902225960740691656568121646678482888695516472635362581450028057979057672650401801533235969530259822223426325165396289769564165789575224356423487099593160891021155969640288242877837110992526102241707930611969275804504750799226500552563989139774248319861563775754796966887806004309378659788080243569671114550738312228967096948499331032602066568835734741907477339230378215708187644979151240004527948107208128662326951311993242265235084961035043308125709098582626982685732092243786408997984432198090601695885551244097907449889577080540288755195600466424676425841793794664312084843656752573762547555685227605722242384256179668293082770270613988302221525084884800592545240956038192751017874110696776196369144458832137252655376118996864904635870105599163356212792435501749530545876131063237258573245967648952989792508596414404578053453159928441044255854618695816365029651406985680260663568085084501596339074353580251423985203025794645309232640023057017821588724105944307414476822959577469781790151012005660998534407427836590022151603686682527754489046614283833197144420939290216453757764381163158902059648070281054912368018549755928874553483974848798556103344381131688347504634102987605957160100448160501663563402806473906166532194733485857827891424182966448088180331603290163234746428696912169868290189184095271153722812534469725912331029027088388723086724643638243260497408844036748244299923914727888609659972449162856231556674262857716020882001649901598466948995933682867087798890232045025628414096996422549828492118904369146178067353949590061976873250914400252297602681514369314375554381752998856226492756724058039834209237889443962255712422512858040700477330089068644825485725776760245467679459056322716855546159873526970530314298695033137230414145547506063611710433031708358709141711690500689920008051067517423637640652605479329476494609330541839371535266449431959931803029427471996309906138988011986407056915704519829905345074914380603535518510535117161738508865917816472932452700371012847774082293339294417105663920537246960124589887365156852929628720558671220145937729084544553245285082348443146718649147112710751259157957989629969537012884417304416189065793408043685050503526930150902425934398062655367831412214924848734493034918081871735679792465509717129015311238661008675363761421371001576044622119621336363553569639198769848621354751805503135598722677484566674492612348530787884337261800226764025159536122285505532107606803086579674251176286368919085980415383455323330040774096678112211165883379465499425199208730165323432184800331840406798920150281650983107543797168177663982832624823028752145150587133492756573786080048783822200286232819572105843475466229571941364907913541879529585283931736497209018669392060608456058047307593555429667200805810346935794664736389822848090461811110232895820753238576104352004580515450451993933060829284441078213227002119872682816446874739246281945331869481526653637693430662771744129537174544898502972046997235948587200018640947957518699838175302024625977779226499690109942077333618317782138468884430958163030805278318345757359828749611304337602102057355113542718069629152398346587129535790289583209284344573863194492295990107454347198751011397007137400888434094368741580970607610299715125004947547684926495158403060664773149684072811795018444538999872544457519336055567468179675405675308746531429040875926487479668576790766557181605924413996963010849331981450871926715608606394044224405751196621215877413851191147575200843492074079349559677836415474087884509680835686677619217736213077732453728747885954910500134351654258413353258781772199200812027248996408589024611510846331342628485578402084442132345440194591563155342763262143103738811827823066062213885974677435941750638394328870403715633233291264649674638454459045604957999403093494294883491387352816848021265727548690884502884977065010471908807280997155894142049132487861715935018916386419160124505214327794100491161168239354027079618649853463758587322623100310769963637611670449600391598244789446184480745101718958178161378764164505738739799547503787826331269606139023940699849010046894538488274906561910466698577730567666654238447844289453912155892193081256081321544966060352197398667685187302946454557916458800854405549823821698141178098899875774221794740573754785673908788884422427387035628202291285433711479438593770287034220882390514555237110333392405085849743721822346638364422672627819276890627387408850237314862339891591393307285616745426675645864748365228161782771648304431263148616764497505065374696107890884157061789064984960631951431228974504814164897663166161547747407653188073958225382139321015613063975903537599998927875554884924193478273991075440999433654810130960730937271452377301145504407007688887803890301154885018016870452925684497552959335662716470234878879619803106690256799014925624244482558369287216655111483651030312629162270508209477960322937953523698878578016934829524417651622897866311290965936008185308841446979223240211884440930842564368842467193925737297217535375507146763798831964646836922088022648315347275017784215385489980704691519697402385149298636535430882316106652977184376008063455878655890005960944966941011642081575509069109444902708377417052248529224471810313055326037521512261312426049402653990991569366079845184645684223612373916307337009387622855739633729374353030235740783986396480146848839128522549653368327285014579328988457270917763905250440792071357099805574518316885597044374329053356027376015815463469313021427912852175004247827054677523826722126428115240362188142865104979939160079581111514715589444314578138503578028672865560300440116319728822269131170408292494603710257752826363709399722737809754394750193335741601967184833749127869421400476893699110413773420345723748376276918104832901012001236144029572966149569823358082765149991123511062749771472557692310145244760356436093158509278940766036593119620510272608550385307421561698876719388983668363042925760384146750013859780836061602067340665428609446387795221577438793171430700600992458638372617551329183601965789390858513196910249683276903666395172995881856509433037226857215183715152679940645152604114723670906585874737769481850603938202585784972809030897824321902856040686683120281248284537777800796683096583852821735939601605038011811731058267692266475419161512153588385650498645229467172558803182546404980090176074073183135693878139425380794913413210876500875824840605603144202887072694410057331191046418814447564588471549260601044767354376254700996658223509127711177320059133468260444355511927511287641271272469873985916804570985073980659126055304021009333021638578687387696367250187258481453964675714010372491276373219304481698550994444265947140768678898276564557108327738268644196294789769763769852571041516315362017649988513450692912631647680301980473297918117788905980675488654189158571337385474133517109628584447179294095959674540807643083094866979844666918366754089754889968170350849775007033325434720490648559632842948162675092848718125904871539304061075286856295929880469886841154862700866945985770319267526051885769260154685017027899253335887370051834800945012734089978059470647839172945424291549420925299008326151337495471725273620480275595088170081326874651638290127636630262436114286761016280719494122733878462617846895259734576933558836979863368446928217779357322732609813232488506579780470887347000196534171768332710077365751535370329213438474724213290736652678438130586034562900560750987702685368219066302997980719401622954819772916222557311388905886361025308660002929977019806246587865640710982380066781601295732999127639378881175186213697035705568088033879266773223418301345541626675546185681442987087953747443630393381978841189605753203760531579914987416325945963266026133871583629495073109672137421877850270917974022874883692155423103822914020279874024188126760456780701054909443952571127895408720499078119466214397720145481421358462333889266758163078082852549492937158215974603742761872695448014337508355962862624713842805639019875559743424340595068652760352740218992293124180213297567439144521190786568594045442674358593005542190579614828807087269530970899812301917421466919938030877839366381483939937760619844066736494687654697836952972504121540358414569457528379536555231928714104238553953776008517276822223309431210360047248951945423472973532811380035391370897481982566758486482731348610689258149537183523679705067451038910441274901611344326541744188609251382732483974512249252951890907235609943719245311688217742400896522676824877820217361463097524450870601667213228517688837697440372128188985586333753710980302916331064512161083262557202606824466793148807035943026376517143978878032036861349467957534479496584290884466844748602596088687036232167063799058494888840355764941670166958484962100652601826711461828498309867503813260951771680600039255687287119116521020195230441641660662751238747134908402409431840504878813642323154227407329177611235056035306562017669396587215910288288815230949337293205787120765732475597605215892566074167550759833467135868166279325383955412800942446253816688132141172089289180733878852191346013194311842428035801023116951157348730317177581624562391950870912298061705014038684169835982299986213151036575749438978290710884776294725823263365484181401756286037193187058542817958839196167101226395618054329603670019118415781125544513314773628337522444562258575271955771607109114558356494671296810261016073323377673762262408373251017695029171630234220632564768711504628427013570358333879303770979377105694541281789853229627819096535026788151750491629559871082605674681222443518912622461457512224244822601445340691302810825756735206561220883673211249483794027586398461160355696741744038008266985807109047180071595993517094380166948466212176199911584422205397880078410858987249165104312854071413459055763669856687018928574995930237226983404738972392187379576609028583342989194852790009125845583792132200107635796245039320197963240131446620135136448003999697604029576850912940887046193744400500380961986957356727103156096771581460016847656175210555699074465058600383623000857144833775366774735610772702924239121843895496480836945128453672633068939008138667280568161581790993098335465575892434383726905460930245507401948781324947420036858142206064196718617608113910806110373804483791192307593630826820061630316067555352203993680055193897393427527107618839700684155000545431816686197743887370388442029549530983547190089196349671691806123727984592826640126975304891189482234761674556050009108917429895732244626054310122397102831178477588355768569236741923847084702863562809755931148763909715271613863344319478846058712737304329439456200893020804081355485359238124373854081950992431146957537091016477193055538307034404341889083210157925266612412453990820525553234523662324883164308643046672209025861334473447316383971499639871641414454993358383198757526916146437897748309920059288714796091857182176480857356630141301965711527722626815565764088272391051229984558727186293157728621026664129005388305452890426246659898531434056373928359262123030526162151672929398461726764428330370580098279738909720329780887390720439696149002004826091111079157019177347195217157837584202969782670898436205324396038552977930688487820996626794019788948330816822791571761949552500953876733391502705562756704598740977060517902766414566887565850820053688070377110207270062636475862662077117751037742546517801309639143196743555953385850595726886607455901758665203312548447895493922669841538355485080949281156350703622213059917147962584030968321707529171861962086279045248524030001037569922698950891981941455927656385109793758937496356427234327331667304720342613141496779086127643560876582951976238064551814164758919623794038858677311720355812616937111353666168978816731921090272402888785518021425824005793840470339490349141614000660413838044051225055370336232405893817442344942758910948750557940147111146403183431014957827850751341421939987015810979723076740801754311736144320517367908059518018507893011111724839179413770579531804659912047672480128313677049956952067611296324600804771127016177830774156906475913059331943677367619164692307157996927863904795435503060175479379699248174624859199550704584177683722701523508713554106641301576724205007099987638283045512902839722989969987327209178894260654408555748455235810013412254761974596065000337339738293270987044132714471104790221478864772861138802564862845180437199095697106156247195831676256874537726276776150956735602912946808901946889119210762091464197093767402536237517455792010958626408170140877882984837872950658530616027218709072685330922452198612020978079100481066501192250996140920466290035316743425126595357427994899346672780425414462965535468280703269958766626718415722825310015840720877862684597199482635786947364682436888294340713750397269008162539259655819129306041854254012182311564338017501988943574552744377207950809544894457149749056497800999104225459152373672511146021402275496767706655981429725745645829776726811885489229758996194354595480144436428938775382783896068986469416503502371087810549883364237763532217432170726244686505770735776234686922043721627433376548124441288550041997948923341326908937008512752619928683553266592181494794926561604605219055082877598687549263486104916247294319003663537918110235577143911206640840820211072723095116895289839680908713154238794760393551996468739677540404814881223123269107108276076692016061097697698220134065830361589353848561214722825150891591776690890702576899058839753212331022707168257207372505690251091929185333148984065706180700068564663371768891115257131557499088162542840765580047338803524291759742538779638706859580235225423590977712567068167686752529611011034113545661983336480008530353659239272577916054151123266812026425836401019065125930654113789105110647780825705771615618275709053953000459109649970784152065374724749978883763133593627124899963084448387655364895226185142613896310440307666265618473120598590718281322814640210354691076593272317637333208832439238640789670413142083927149563570910978562321464974158344717265235708779549263502521407611676361813976152867453705820449110478619881701718227542020332255761878605408244562975848673169042951865908678603601226225629142235059943387474713599736052608072236756547820906592292897457785791103417795457566848922887547648443071823766793207245489693743805612900414865859921087569951052585014266671989820120721774144418460436265390559749831059126049477271270504813423584593076780904104261824428052776518797121505822314029345685910059180804276844104851902140307026787842065074354420370687183807465027841006591714232146583364037150509693889128873447159315906412222143478422822702583928618371028713437297670596627504185245982486264839574414351907949107774821299417860230360089958997627356240421728396113347089188945563430825088239320143551370846858109746696881018340753342321258471960427932775052303039912167073264184048728229642255147295741809465009344659754131995079111388806175081277843052901877174982336464615304066497559643466075852574773138578145256928686801400659488706815845918214206697506436731748999981181442870896686540164672009223281195677270562422271531974562280419204534427054654008669385810508372960382421628955624172446000970322358442732004097468305200622815445107627803161610225723855970117890730782232506057546335207195133031430361812385051780176382515212440451581916436102096599048884279764376962295806110251917599567528987004200276695257143173578117244565847934506384747571085345466350960827720885224670493371259510279961840879875533763051699073467503801230923636602919259006053593709268486929419214729150501382447962501298892338576303168733059766062685460182196915573821407403234773808406634313121043812978697760800809395410263093740761822278103790823235695973075733426744055974413265227167453545381651096333037899141061489411886830351561283774003490625163283955512865252956154102672054818185918783294023135861827067229638766778970255787574944490584666649152153612486482694165473679218159216056677787929103203714787406213448362017772431658258674467295041345143221478067161473926087969174252538489363154797074972323305542014882670068669010103198140161855999108584650625827633226849277931529874549151918212432062594419304740537045823646965213342321674174653197296423363735842192487534314152020456701230441815085184705470848921189769014555782059053254125998948736283193731194110818566436310299950878584013704494305112776953926358363441625057189065906680224093616637432593002368417911165641561004660982828578804609074109319727845853720532796920776696421787844303917668080793513951398827113671679983475432008519242681031201576411503173137323160883879288170335214063244314307452229742850117211834167474573776904492936937242820303567163879387374437614713936470969556583286632502600054596970787291722166575491584844690693807325858668456099999550350315980615978211500435592335669029204984031154151158260477411947471963719165570268293514476317113895688603917246298695400690602368378441607811184689251377014747872587772438805714041047989774506382376994241514803452038642876023789967806158692235101836285683615238637285251034608704888575955729087358468268074925057406875343303430654056994869453199351651255934460620907443418303105247647830768689941582573150100402629376752693461642151430982482581785706860132671678865399902690910376037485828621573163421436767460366531608365237019902659048345268477276357776770678513074253490159162604398291661373623071247113488391075931776423320487411200546893327610740654610426179048958003794203744529152439941876190752361432852921795336870252596928409474950018449092802560292595012360072088852619881282105271451577709432235101679376066660820617656574077302596953023346122591470191188733868733817493685945677524473982128828031782379720365435279787679275634554263132916778314816597045092757291035268520266034606092965204692908731990975206350622262405510743889645678550795498358761189622641813530796916207276955440504885462377087898467431609818097355925953602718662045481717995107542073916380122860280105358232072461710307889455398956694840493472875570903125766129475447063679897317756061987888176708493306976109190094262810281608760031888633822368075688896160591412348451292037370235852606302059063177724191295603772648044298462941844408065751620845207447271792107911330065556950407976790543957265305048708165180159278468180260215503579531387749148059319765404414633033515786362914574693950484778247998683081818208209588913402155985814800963396883266872688933407138862553029981562377242008728277693731756985533961466975632747797992179230267313898822693700364933427514717250362534366829661744596476971952527314013428468493524948811392024236326159304050538024527025917575596384043298757827351427996164456823330726039230221476957575863355886574150600196631905007844708701725583240183991719353643236798524830067778532407117053561367102519928663770607578935074471417162819742035202846013511688723066997993218281508472003866252387668397983414474841797626849172756171574341610798622532493472534713517055881469972077404615367166382309055118570011457762495152567952725190522065921680353025556272012377360747803772426610163242638383000804104659880572687525582279573524361047928918285128683416403244034283471134556310404425924038670596764655028356596182992396550388979252094227582159273898905011332501600817936094684050167817274293518388539354262625109455559156958084145024401761868547673196336037539809261956575896882367713990817742514285590291128160281818971446102544815514291070991460101928941726831500624803996058963039058420818660408364232178703412973629325878987482767171123829825711231937966293236511252595941701658310669285808059747999155677377193404249991159118749429569811112362716062972013886379086587932317452499476712563832428151156000851922443460433886880296560174305927463004522615182406164031414265910726166426158122056571432265801529831974078095095116693884049559378824833715750090281448176192723151657249471065067703137710438430664070283439941016517052033814132461171719481480696315494935184454661120808593477431841890050755915107401142298694868175659487173003639032996616230186977625537659991716729610428094552994202590434900778261213395567375058194545640195168821123349345928753074029261730408527717246722425440287720895066996007759716161498758652851812042287363413977986255036690754209990010774766038084092699433890270380453673440983471427166196672093300242881396943062512414901512030082863696134848125048524203319604158093231843950392724942333974709715763390864085873415933429878935025855760621322420157059874531442361338345800863176155411262804090336209057661956736993887865192860064093959116529035298496819160273535308395757495014046738835471798516030963970142419199292252255476621353898465412452881650045812726593032711274206854965938339144654999697533619272304721096293597922520459818299910527115416913716701853659855268710725261700920901953510521218848341271475891276734779605347005891585154659341746272258017427427970018779118633287962820729553010848186110200676172674319767263511078898052734114482846349301491668644700512114662876914088422793050880436808655998064694770134704167477431314461259941652524213153479772022710544997790690237038935204794615059689011806641819226106446698262528088797244919303120351371503875339327980769664705964349093039301773665333505141063612828434115181689691524509629001745800935476897036450918017683014778442033225691084342390974730428978521065061685676235044652479117156855388437772162204406598729517961430980063395938775793985539612637161944487561091020990587678074085931091219238497440144348166316037586168854472445788881328189303157797401975414068594728159202739005463889016187364334931389308838026627083548728734117487459179679149083174083763418291810328757607369909126747569697196554781633418504440487545153307603124006851256568161468693176006207278261647078288698673438053708580379027527296287632519180848575592259062923293679620245980149207764594022588411999272149215448885073657679596238236763564945414326395216836577736005026832332580172852353516765108555387128680601972309641450980499036813819543558322035919932663852291805203777753027375448559997521061902008670386397605980052260950169961841857488529645850770404835156181514640843641046269867115498954588768018121407910279538140691254054636482334609364551177629013170596316176735429617834133680092712899225340467021579761755487161327555583080662362440351955264671562635355589107497911651704777965773749798399042993454100162601667244805660247956149672767527461737812716861716708993918672781859631828254840562502164936556021852604903850820129145152490576761014928847268568452432823519603699003449390227860426967403359179712309815992142084720725712888619725325238131457630213837147468516371404869269436892792185499731432301652332163270986098981421965193141503483768352878503909638353748784844478493565004964982506862574707546777504771633762148992065819299018736008820723358805762931032459284934455834377258744394468079652392339724415051247380840910885906116837879126420392501409479225894448217069023166917081046200180862740951558612554726452076859027708337373962273269645243832563454467001586586383690356299277720992303422921683992607708052473724816612828382006317827367185903149370651940949210586907285110210691763332144634435200536271383377475966744953615330959590862624633835025328756175127487077519669006936055592675892587322319507576722810635469856117771903295179611767978303444221871249582244742770427157115781004117112359626301482046454772949253138336917618385795931718659904666030947370750930469930665348901412350013968933537455999193797418887159179203814859155463805458347753822628847117133197096795447341557241284142312821812908858798464959850693586807205654175797018381059281821995380696923156914641066005524396932296008994593341683253987542200533830629825477690060519774109626857005992072004355592985509715540717953397627585147388819810405133259272985994840148570371309671598398849548032268228971058160223545277196819304594844288688337441767913284625638965352244527368612528939514809170742208998841409493454657011475787522080463120756007349789325773573040378982822000179393906960988392847456977551774175551885497998342325941794093732253011704891948762958338160638062757840305655725948098849822521923146469898800376465480224466646323683795998943064411403394407983220108792391539186098594636370335390276785424273731937167688226365963851912355676583190230901517603361563966841587078373458185812640459701336850211565825862686411142907562825140190963332357863025459568083337762528277341042321795230495903226961345292794784537052802129178924929643502146234579972181438096848233604513458794224978424239314559523103112414455693386103193629685620690844919336758142456348189066909462600787739415247469431876507414808737620082446338712010790536508911968315035522250791243851439789852966143074725030038834051743350008986399953236221002535954321945027865435903331199345012429086736463969825598351691578736316121113910352719702574682233225040238560371383616514102375382511993444372393943773337518534143754861822008981615060468969466986426312136692615257441359785954074791755863102872356740402339937560949867585621939059679416638627429536544194547926028857156192535399587922732297910930462858654373155577162196574954306615578863465160236848750838529220827057423517605436693606404242034595902578817040848040076125912431106557134278796387946804322581579171182278663115268268520505404570488033117448385511234214305231959462864131200708804822771692550747225585813498417818995288242986730271083809027415152858292238824215859713157318895373703100768202946491460623743971591075686843084947709731305629300909493717050756268338972824685551396079660583999233002708492852395973252612615159345961632871701672724288752438728851177391186957972092519692210555109162304943617159670410080823051275231163228665020998241400823159024891014604826486158143776511853879643479116008265881245021347321661863915198381638061910005955697611058188494487212857797170422137568916392166624721271969509080784702100991694280421093520831872369709631744918484917974741737140463267109188237576801135055395184177223306542238614246671638074165719269934734951701828710653581349070929634851294304106852056970834531241056425113733166410713920033592363250850155835299393928095038425282795528426895712388989428213130251851116299415376204116798696625024325714723395954395361543895864889037784927011873157835082958389147698324797753748352146866792090438265523995400584077260329349885663944946025405708664561120150997088191095679603784112755474615146225874123707104570199517866565747447801620737090348612365534337860058559714686520113278406859756585301730937035754589211635114986830047470927792739376980954667024900878232606783307461119080374484136492239225137324777775040819234420818463769671335906923604297501583724393619256184749604979848785054804978541377407546210218913199289606606831792056355551548530296721569816365016605515389842587513051769445664589578094043659834762107786550884011724610597436088439970574613529085677587850426677125220776160242887593597763827135269017195256071105807981188783857292441741894765381766683024844334722774006683261928663807859692369004186551308095994615450593759882289144334659021538480224098711845235426366111117130919985805703872653959710509858997093117480975614684777999071358499384479060016683473187040645696626955644259311279559317230034059350569224109506562734435971909153164643987037371769966847094225263832255855237056957783725864590050066838544980362963306517990746505494624389812358455899128930705154795772461950067460482117796490910177599304352108320543146034810783612922114113209193111345622518549405835207085874769502785957995952349419494385651475879055570318281057750984831153115506243135607650087750929496491358698507844249303479926596431283294904835884328671751958840032083904533879141571788576384368467568754996244878214672776773386189838240543379768493254736918321921281557479048799881879075263658188918476948657643590682129176523439558697875541602163835754106802601223980548715800169328202037528357495859912692744002311790653695497478798166751903189129540565875753132645058366769184865890363874774928254365958407186069772313504411540628250189025393296025813498136678154089988829740884469880370268579629469173668560417671091005252669806347342505829257838077543135637377306773822771436988870466921020835986553910127310062323942094789360272450543255906618080193181883081956722608596346044119861783486459924233566368742873490921683336944853841819061246549911326227751054017109657423147946635659477738396566322897088272515230427339136814649388569648717441732526044559356720624736503049325462651421014687825190824487545073317348741262755023531692715458110290413082559490407942153212417075726969583890415084169739647163355223947333249302081060781844900543979215831997631743911267767169868500722704660812578199017630219156966962452173732364287519490746473216867335078347347865140858613267886655268675573146298279261884927951449356006021134575800386745417722406398726776179308813975486233720872941228212126986749445772940319757064169030734157217671913452435771266791133719935345794801658264709924657064108323115963673977125518847409683283756089310805258374266334072551084335567800911581425743043341164695593013511384906711596972397394855155139378397647477515099107424146711185964445004577593814770219096313929148554902957369859328581411874286480782019485677227342932820311052307179941750704119672560341858270099217818063241755067561336858353584774490692221803197074519531340273322812293214448858852442287247342581095979490390143847063713108808381515209393954782739398604139285309861291711538266229140115085579346653378073617561699678433047895828934774460578627392370427390519824698566568069094116735234211347039319871610969256806601487385242512927742669094649392864206193167495231647070619442266573521983515950546130079501192488477566227089054357149307822363494965490226777552337291334654191238143899237149032883305152094096120856741095640839925226036936897594856864469175648358784532413115127171505696311632853169150604285110989292558876201827212917180106712126918577412551715646668345806484182395333459699503454562100056173207215133607503026312419802357926304368152666450515908603438195334645263073283295876584176485880361986323737633003327412902058265191872965424187702424337914362853014018751241754107880785972942988551741364310294251537487956835315586758992325233958289305524859593695466507621087022657754853113744105997953616504975896462010625234453181158496580317271355521572058206836341639337076848064672160536015223230543668110525475889617111289015337176207314707565910981546379633719695736020662226021863092947946624341796690223704136314542705204714885185652002816259096569173405381764023707998902948934719586320223415937563848462017761492919505133999075432191561850575670459387543182168115385117238190423132825505648517124517868778929634840252264860199684877182318820551511673564349274082004891091202627281124241930747861651836836312971334518691428737346197011826353874279796605084778067867170868539034063406228040932436706422479983630993777271623375301536036181215973855823270177797666975307480560869886169600289219088947014006771925513356100084530177604263028059005054388877313696004560466335107193601722586962732146095151532100013883711913972595972148240211948956637460300738984106905726826789340813913330869830291531129751991116299217532474027990876557914428444437593640631400958403705793750956028504888441217334984386360289656373356455686865898159261276775996838841087231138594361407317079935564755465365785800630173745186105444550317438931771703746571949781813106349426840056511213133885984901298917853788828065070226162550229114618263697265572485558723474558334307194071490563628442336805951235529747149807745623182012828336782856959312865304068474190545823629395435089270452946962168214080616631773701334556379340125967879267658304534924161304052461952662649437271861797166448363773919766588904794463152083685185086281264539062162624453751428715754800938470287305365081530125308452073172438043621706764039386894249735215032193799758646093503277106816585338331239767650860895831897309555643742560107076993704110441170836177172959893126097985627741011401676101760822040171026282912010810485466638486594535872982265037081720630283954619005663132406055502775002626263821012657157277069733924091974611803380777415802986753280708923813118535604613247570007131266875439078271127111624399903134952054141747550902785063538191660439196754523857699812267537682210821961290927354475779582768591022448274214690801606514972206103788339359301661476802390979021213506577968782562771131899734551580470308212157563162663498960430293457934384220478184762725706158591395628752443234652378785379619895495234201469350762639187346265145849444540434211060146293337582689561742617934463228564840888874710385412640463532515104127029644808224859540771890593373373249426836267937983468811559900343603542552793306893783523885235067404461830642139779262075617458691821734401808537518900847464373281355946807070162297078900418005909113466919469361083532103011770514003906067088438440173514978930071144180855741072762527930689489222864001897826719435605129614898155980513701708371756119334948764459428183848045229245719579915964259433131082897576618546543033519620172755002634981694543227796713695293986967551368069173409189859844840637472176247154320597076528219237368522455068224165193824673992937919030027156871796006632112567962791398707016433935104275549009648641528339988581943041853058090197874959546048891702900347423708939531097945385896142174073321221512693981319588660466708077396232130518477819872499977712867377424729916481782975418415017845022727535967226175457759591785592998356126899853858482440871096488582211206937851361236775758308118744031838900875941342034570157746644430281283512625943802160424000937012848167633513035079019478230270478560149321995342673662200781813561165682690542391505478592933265928637818490963086822811204712653432288683868130630490881496633093369205144866246294263424344379065324689762621192875716519480666126075231750779470235907689558976417737428382932799856879385841070036144250653954802463065633337852078969646423217913781552886810126511371144985299768645998241790368749612603361791785194992888219910979214680532470468447335180859795405214754244968659379659075192509368521696839897425970407596213392944429470712065723609246332945630889213257886204100283953105153509589436213538814853825174367429156822086642926353525845599419306045988781189974104018884211710939795869384300842324728662059295599068524919828430200916081725358447830076130285618051343635031740712581637667361329363200196527411148649858727579049407306594173988957396291732155844220814792608345872317479029483511306801067657855159335836001819061805993200945846896842308821941333879041338641868783352695604261065694069979585390752286864185426043719152317354745159604079129717932530030350987169743665603434983632690742828711645007989383115929641235345197868422826989644863328347619781385341717326337694559461106664479333129408240824355455796663650435599310334251098368085711170077407496908583580795524156676228977809334087004976098699343116854184806031295093575297541126471597606873804147433792169429366076814232795336015347307701683329591788807030164862958062862164127330391586915467533253052692962578704865195451018589256962521912075388121844773955148529284550770539907433805994384968255172307572859284502891348678434601990957514605304093612866911439723767807929652412208652417787258089007564892681831835505252492476564759381070941384001131961541401401883752129367757389869104321712379589702943854854473619596261141813014182485528740094590130060820937773745266298533590234112564869590232407871184569018347810174984996471313560322869960069182812298922780703066046033095549738111345036240336326231608150482469245241918601055039127084566514708365823550848331912093457810477559924906613132220434613199212382080832026575874898208052394581025351525307407068425944744384567006410618422278597728680583857571919634412261270200615447484589365128373845022449297356717290065877025791839541603113304593925404228200106782548157267856226282496828833157371693829209586383417707919931792835661543531973637702481147241710274432864354464157700804235530406240653691584354459372300094324254277163439608121577758078745692026232962312798609890260115680433508081988421900480981580473616029299889969278602925417488935466982356641714543532485995403033845293084069342632761712199071080645423586063123914297327981316144593734097190532090469956094680556094690222009451684868874646336529877742770283925699613947922640464780681153329026464587384345376523707346964537101320380602537467240244536003487834201368716055387919399869300169669914306204987818663368269104925299230041331251094420975976693520971909822071094501567970590764774321334593819706849962260226938506102095217337215358993907767447560643527255695683492203353671481859884584301088822632663339917572563686033352673395012239928853633162617879133258055942154174586491220781548946738547796237290200145701163575366202556283854582245771212378166608560035972424588842201094326834405301918093273215690119365522025087497702744145455337175192483145973708622692958616690037518515780687412907061530292848706351383982038520942919167028133253921628622126419145966443006157250523051075509417255535850323880503434579117748050156119821410689527987991549910694386436497143303208075264686497871343115614415525247405979436682554398445261641203421073886193392675651309003650885324250108633572225476336801476286401818038071402274378779423347313998594161447836589584903962101945933989462313172953525127854823579942085333706375407832728126213656544815557072921709894395322560168998608327446085079043043867831483399797314693678923499801730168011147319107163872732551954969804214335010006719638762732599597345169960018498219191782613559844344536463191162289367497158710530321108367705735797623490960868894412514149323657785940839663424976131141064186311424550090874948705883391397624963199439811015325833726429843033876194777488846190415073323150172390202382062667675973607543905442346522285766038256164274166442653652209593795713734004099167964999350633674121098363178616394563474682695420474486873583131759177312715901482509845030659366758791506858727395546838047259110252044420241929501658613561113272520723316121703340511378305822588957809352387261503329292004568771818278283523350841723785671359368204323583959131028184122363726894818290424711685790007156485453346816119704964650216376799979560306015624732298388302553109016796745986407420421240953901798870498662808522349166585013834111359983791236879907210880206518759668283985488241301619698086999250227331254027759780175498515612489078926583390361023325133319643662180532164372161621789531738985974586502113625369417175134337843499933949027948174319217792490823956114214683328083441386445229032920431056716697888468456412691592308645866581423948323340639157235162991344341164070332427772447961608266044420296869503610746985965428866427694613719534485797129020766554812140613023481571392087118240642336073999000905200757371886293692062520265102589681112846070841909092858328774534944946467494068361845899522293480280773529670409137726879765487559356402661795176178270633220535037918560121760967109535189386410472143411091319542372637427236214407368727642157773453646373369874579288063267272921930949978328624880934365590631857670223045005115530273988128281857448234930012899001652497759815235855176062759609785753468834751013354795996446651278001965653313219087153462679423443140281673669519116157153162500352179057255029844457296336920477814521149075609451201001764714232489919021898011430027193741769021344850105353260922245593025775182392465674685257492879182978315908324799746369280604912307244503556661382112621035676866687806065737722256280599900990764467703809519244605193778989782053651172992927642687826107172288540927170050637721906200007830274240596238793566723336811373332308385600694084967916834875445587266903115231671239825431391557691983008176793979375925077373552022944863795528682452186956039771441836352283102354522738472475910190349666916330900540990210553180169386605536084405522901286280246770457528702916733825203509134352023301041617916174319773259808219082987471717113864463132752315526397360642911512002648966323509837557392251569994353888739355025423133781027029103102504958146445598435506253174093701979700342771481871819298483028413582079587642378512282700583116292757496065097206961013201044653363274635139867453606952838894801729344290462426468382731576265230376913557749927053410461852757163476310788522273844056634744698139099289528707958893064638919261914272322666183613412632982303604770584877584237752869523950313035456985282469171573174385487298870968109804920580293498099478640475120509223514808979967527515579001008790626189727036246920889502442383738959402004727866861763689892593055044838323061261409404323674129315525676239459901081288808679360527524263821003089232040165924256098576369936157299445668422558252621077273148112015671367858186734546958702607286447019830373568858333142576851624111229148119417503666023833183093538870551697443415164765399788052173768283516706855675980995627022986910868836215235077987522162648842990230674819240458682561567668754766358858999887367656534729174897714586373949688648972490918920341751625005292450662491475345481886017269566230231372925213341524171740636176646472860305989702189610783259781794056648447009915938707130388646468896664879832934803232909300874545556885834251094135946550765174599417007131291138732899478641122068419644789435181545494872496458499811896528514711309264759693687236907015802158728467319193716869231711481694185528961862547561797709018420882138961086116865174430618857481777816135342304134023564358863277641940638550677246412000116703325160800996748572463574960595652039373817087649385479338915870005375165621088181488071547207292365367090300605341868869298930204532464736324602642882430462122181938756309586927663955103543850320590303702928922944072450975657676488756848388853633191437259523270189443488615037973146331202646377549470016829985161676415228012520926469666053762498663695817954351749115307331383266553083834480139059870999521681254072255978684036496289849585023819324536962493339733499454195270855088263955391515221864034738384056840050153168764086239102412104278760951923025295178311551734910594479661352438179193998527872262702148840413392271613868495708464951007856116934364728084777481470727482106315206856430913018527424394492157584435700207990674981629940509381343538903213388807948206481447252085439209762184549018259894684478505011804182277706265530042204806634025800578822379560275685212180227204803668941980579540266496717694050279040722834914468982455383420871069442797537527762306474063978156211701457677164948786488106631885519450614796740479957120067398061517780942158319461188535600866369661321972012125431666382368740112814397582311235234078244827812765478160234120008588771887605820440554582589615869673810444796162360462892873296055140221572668203073647329677077952593171800476503752519242813227219711124632378773979381779636206273942885805136211405145851321252145689316917565021743808161567222536150913161497448539662717349131052504380313997257531100482320961216597672820004825210971194600790461198169788461476686518493264971161205134876520817339308949084093423387517069707218292936704801782690117596109219236994367844665174266154313437351954158450324889509583427488893219974629956189333531146212305748914024009484829995319333018830064735164391487449614485623709281794252618226487128797403185021809937520617951027291224304019461930448929926418452586411256335658942931964963472624684273391425096250063653949675772153908861857080425266125137511106462793271687710371387672826571891728562733503541053328039376016075099287654414577357009197671666273559361297547436095926968772753399272765869762768859103551933064642566495737558933131638181898246107472799696066467892629524075843152737232300199296492861428605708438427749705199609604232796658944864216537806631620801976505553221409178438771649132337999310937687542949956892066725895286168096323100504988371539319901532515317194872535579719812651084352879211191159418448217304919026974510683492834751896799999205901130553154012266341171699018087733851825956546058246018292884999907679885046352945296293422674177492470914242838171745467759667398070584891047487662622472565381073764231322956911079350633551309699998335316552003781951535025070253198176035509739958207444069495613625038856993946583298956781400735481850068307940631502958945185533394495195015635216983376311352574421950538979054812805136924261506901945763245852760226591189507003965179872074190403536231624557301324775851880851230512403457692293110145316015688893624969304450963337927856774900266989125276706409373317296585766233980686768458657669257802067097926436279611012986479927799256144082891177867416108002558750938875553513516694578632025915357699919489055200763859251517479142560659351256013160967325611727431925267017348482125746881685996116382433074046162388707242096567785078448184885869338976063476702434514056304225050755414345494616836752779133290939367355432582745566913661890325511290454051535405119001941127546442895213779790818544804334854439216259473182740438797901566473091931662507532007577544106384703560927020960423138059802686614567518324536504347922213251136045755901234560295757196770017878525692208769860945612321924443585678945473822319786851382743561035680311396456189617153097121240160657255598577347045132925419410268086216623283794001706751417373604523872918424249477746205795528813222314724005479324287631379954844315680103568776093814327754008635500330287988856648509471473941704748861136862371764138587732164575087376743917299717245620796102961660510842195053967110859453790900726420769460787009792931333295570856789224284385064419666429917886922011936654192764607284183271453496173289962969412583445052782493811519662624350770898764600591157388687052435727048157466175841532307965798831668480433510590398712007212926229840222484237719869216648380501822078575661954895390814327207365344560754610471958468669764430120771149540761152797315887051984722628076631305398700334555256393180118597499591010743975965485739714930125636709699720625047659950536872968022186015868704969145432568544990528244988159266990012856274145886030218104999543681744713089083634773555427623852664119967923821699171521592126914730312709795556406442669582992235342972573960449974664909844594190492464551901693270299108511499798368204480967947343880565658923953598475148577925782473662082205345886481022960827125672391756848288641545336371317116286667324231592705869670883252657062139420682930861745093938021104788798178844909109990580291956233166612265201616881010476539095041190228131220207997484912718327531939979316556388488991264431101900927031215944470240042134607382723534558977430644863575217364249709706706669670462505360497374817599003993518690111034883358245593355487683608558597543052407727713562970478237420116941849100193195848953187626971535755980831061506832703627112958209945888225956236288000042913735042971459148880466336724330036600381844563367155647591140817071902478296208815629709890696795512593024071357237134328426088068553883207111238649117178139902659338684214805400494242724524479636201716292359814664626255363071914570632961747444437620804226356181862532670634398064540599808479782844173243112885579270577470398033357815907840789874801183002830292849219833270885309941975252552461649400470530000656186542799707413820567072758857658605611805617675375493365109722915763049816555257881921043214556067273536060479278759994001772135692843133793420707273037298054987572870871203942789912324312986343371332864371050292636494877376984043260248858208768922272167702210866877908131623708402381542185539157248988891203061184090321316453961623061181958190217414029695737566432848499256521412451152719446676977071318002091866691064964947046368985775359381900063995410278860025936585467356962851588373573254240985893444052938214889311467918667022638355728800715210938437241925307792318665163434175067691328337889317574333893472017388736128259245794258038782459363309577503267154097078329608214721014712098854701629540937080430955300641881322978735954243086995165496972119734327618836314381568577604122760305293990565601310833650637727565207045968801933022455496899892770448303965805815012385775982136915341185755222410664661603026567714161141783343921951160498849516225635009351434871490485647732596112445959534454353392879393301384708290856151908048416363540850043395400253744644767414751923621254572021293502743309358649738623921538255146531439219238129527766388208087888653839045819571595633276131176764998664445789168805842133526249090465706813520019779582270469082238628527227232916282375509351039230365863269324814465470502068244266833418799153984536807908211986820935171025517413584460928400330105658542653479232042429519777091896455837127165327688946168236434829514709951645494838373956594578843167117331707171795353723458940122984867891511689784097284596133596343577891187025622189658705413096510432064603338723774995262158250565225910038360151146729099377399414224604116325228442549230802352516087137783614738586898402617067716468403029445218857695906555469731300115355322962068156636625377631021699727169307370765413444150889262278909997759403082204568028164103318735013132898490848219284744862483439111596045246083476441981517575800691056197911961318767098708411954545403751020137172748846700956468231226968258878979949069210153545196469412074290386125574628336312011856098535567849692545372048897873689529499514499373755866986189762397830899389618389144936180629088310649063669351715970411502286904514286268965334985223122695226546019255413270671113576439708151449931165762231778427207527988115355474045831188565924779170616654370218612317320337926469319386207995607453786841001994870495255270636921972773567098723019481808365904589803520468091767261212956991418622512300202422010583634995484903356780400504567718829793335859200681416047765406964390407680636094624827478788843425480874163010606835897970865165254644110360718013292518311378616506356523727602275087141785168815707641156562129801634430551480483401067195678713113462820018630111053674857591670956744784041810179574636710968804910979696795383238271191655085485266403229887973758168131286295039221821545113143834455725705368026641041023276870228726583628001950085264921183829920318337749672405584738272898808632910655994684146781013112897988771578865115636525459718497558998346350056527548678346298069839787551381636383155852759216204915285569076790115925696984977646940851488441599522667398479450576948988330838767671616842995247895488526407498177791061490026917857339409788188165221567865056986564045972845210044246148349021433748709914829784039308691727316808947827798509400320591256441955704616025605672297523734396791205199755891376895945057194905252315791765378692923962622715062892054682715960412174572749620312613552310088231316709534329020492603115617301169449805398543340974952780963069307820595582918271200737493473161674475195413920398475847810905505064103937205706122902133046344461100999230195817058308974015747134346276785944987301756406875768832687198896855655351726015375355067402461181167050987095370278273126463640604828578635654603905658905826420337790739941272212573951557722709255111337715099946246896723899949725919259990519473013121786179686008511523781248758496902277896260804132969654320539001899424925346940310671534056824219207436849372809124080075320687541841094888816110685104483736593764874399853347329315064186725562947378350101256971301515869406983542641372599724887019913043542532009879012098144025337491237063001565729160971212986547798210709980413340028663139075305541564936288337356662059690920445296158144061566199957636875819026444716505048018824617923250897739677685742583847479040492972583254075160777815171711657893408300288063190940321911396877271440191949898625875384020250199783695387490395869428222351158619176875160419741294832064854046044787566605905473652775382897229423461103371020182605666058763140010580399212171892175142237084914104527723499734507373935641185428907354405546773298951411524166132441195806803574716363895777906735508459433295632674767256814944520430332242154289985786300714860233201965571010119463464145007092888838035702547695096199928724774892287925038402304442813696455163129303112209378571984491671020684317161423448738815467426515503887770394347073158273494936572477262275304684421432883007820952917810203924576664380184651297576428125469905716595917868512355424356983778944487569641758825138979795015207514609222623468405617358525769458778725307269416680919007115848987962162131284548046057637915211381474792206401622819621896470200774622641770274139292228442125513205582347050037212046610407388735081646726348084920616846661536998233551970300611825794861633418235831372820554656647116359114815245953365489843921388020246743126681894918872104980016713592482724639127321703772113334796270702315623742574747830521277079315437555689455254449135152535165813091627736508131685615967408040649747650489159308357032534027840684421594971203214810520712033572920555886154029746673518229808727060979286959683001074596913604088042709228814342172703117023438163663613744546474389756885703296535147844640843209439500975300720247111668438110946059179530091178811377493091452570140407499756473363560991659544846277441359403593486911397158933221871666036069105653613952683545972233223370788802302154223354101258513555465605333159414845522254063517139501220220739052424451810736563214694308449793707157574082913419058077698228203038100970809306689940300909368210092093703193869621786594438285782009511317741315423853698016683787264611798890562276057213481041881295149897189748678791269022507876656405669032419312613221639751181411220141191001262156194358327137682398213640701116839895464951839091776439754635101387655604235601314213547673864414850237742587812088456656849952212817394112987444252122600118761927383139050132950950447338046904762108135284732431878223249348715387999520504769080892614574016823437743436781424423320927803833655157987926016326886551458800319577745914415121889720631742821505517457572013911782422131061595564973173974366080969325561613974815391990161091899573119597746971379247767827869517909112291924742497476293752407490175712636026161455869112922278717780623668659781245993577370451108194346540601047377818236642039564349952881366266868752581662713257778746901466466021998142922454624695159132218757847499565505406563277990213527866447429491790363662442473575046352913419499467362840794878716705261100764358945216424333030641667928929354539477186330941381082908764087531361169777904177557342129010516068596547950712126927361885977580253168385041194885851485767805005134802385495444344263373878204407606739367626414742833515223416607413463973401071730723870391954251883409177510279017166852804510277763516585926372974954743165035041508262968865418024890224547325479686479959773593087330553015479266266803606651133847575871567549361456286627274669626443601786662069098508630602478236662410506116017159470830090820413921031878284737196005888297833140212007130112767365419192414999997289195317723066666688859735663036510612290544486745778086728670205425308110953506814134252179796497615519185057020113958105089197030495285351313428834091388524073269049381968114507164633076228917810186248868459514720431031332844797384696161476175446432842562390289525181988765014088118701765778115058403448565626683727450401011137591993382480544052075538813260011219765082272862376824095298303191368207144674889577912337621564964951043957684723110603959595817216028393777274984850442954722591716298777643103471277284222718350447212117905854235631096984712884308369201849116060959716603461822986544190722699961153658252112527172705094663572501911753723909713611852161379132717506260747254234885636597260528915520659642382623566910699613504032089584848638145811771670069860595628055151762870992331308337249959286431725959367738106646599736294828570079141869111364590654847392821718843481498930493065960779520823228105900874294568903633401308599048716254699090743050004768518673498255014575879497478784638462948708592295098724819221229091770310575927337939498040375637194259166400559968921032274763557575168493498048042248856013061052596426741957979674780226036926958948384864756954292329650024241409040961242362360190537650586257109825259469432483109677482878319023838729282489369807742513024187513492802805612129929496838959317443727132301451138075602149893141763167713179926618032282240334782491824597609894138861917449883097490333981311441749173406302416205991987980784433938522476597757578607983996879645868691955362574583331227813415063415472377514042599977591730082150188083554837294318183935309960205365443675417052051419503561781468029146643923958756643967479886044339440435555630187029662047714962289650945910717745860379049112177560980771479109746187292980313251169827854198591824019857122784630151743124778873965472864442408566586591736700181501155194841745359668158231862887421356598647580665279328555569487993126386562761221815656342936905931244656118129572369828620389355962284146320144251320647301108038846789231788460157765358031335850731215029700469838494429308356862054781530557353154607810517598002978974400433153504115051246182257502430137218721951749809141743849820179803301196189295322086317388154416307453868725564982043641926698865589721092688789795621846105548259316722533400740967477817868217078312097597477776380315159231258820615762802736398317129868493634243315151022739885121137913756766497622743959677995296632528312791666876128760513976261800319108656007669072448078600255922667493104070153870470407436664503913950674897222274930455847298705127517396790324410991739577783213792380345210756114520097418444410535853979686362193837773154970230820117299219319749616204260609843837379164084188668378921022749385590219126339994128633529764243951263137810075196978211290175760187047428858257767043954845622264511613824798298060014872047782682993400262071105309930167221849953281914160034934724918412849618787032936775199155470193311253483228368924001643959060713172917228396062852757834041649085635040102365658924627547633952394969516549941187193335099724223701000593921147907275691037375913774820213402617827336501513552987313597464820072288115491691252796654237804287272412942682777578662876928570195584825773477684792787706328288040032517208143237648871275986380198046063454951933397748138958208631912227098224382095226939234105130573955768653049534690255977300241703496951048075613445017235473181451210643604196924342672703908079630736479231193341618389998620716798265628962756881032473150068695939122697986821674484672307473747806377943931404312263492560427649187382991525651938118178230483238552778029945117872325345305877920504452104707579084048041936403235865410158452080667591629849057173531471377708949480068226790859218928127339092431647556688222747202234369701947380624074283885931882152048308643182527892957947722532863383660814576428354760545794842712946065946234258678162767528919623581200346596616392632689803382139982135602556057605325017187481073626330392934578249932766664785326714495897285020492136974532253055457682143967881572175314255985765727495175381701992323085392900782362460893719818765742319382324585073331634250279460275342336379619275333717469025230966927405224166856928988637038567304509427401933605244811338305684192354699306541033934258477276086851760707628495814810883429221433272882187090178744258834064005196444895967060445216967094742943187170210226896926433106565725339837442162222042286687688580006844688275656883715464323449697149658981988017533454836141926945178191967588967907476548970051294707446572905437983066486070404701661550672206694535887399268856263017064583729543522968406959982039474426996185692008589012189706226846176710781578887090202244776256875287915785993662020651072619352478356762284428764871543734654375578235924539565225530912574290045261636879208941867770789825832300932167259856034895807210395978985403165062748034287986074651174328792357838993168069457305808634313600418610349825170328214703309991742795667137530945993127359804255546438118156683122738198333314568915231452126168460294914169850508018314463555011226887916466506825465891334349443533849979031736096306549855996724959011263847870821013951583844137367196339770766416357003041026618713241955875296447242980868964653332917379821065411663899216162202505985749825712889646870671876332625456258389794245159964452095536203680990351790831678109882313993778580640027596771679727588795980044435191098443431548731576554789068339531610328949237577742291287451541128391844527751636636390430884876581038744131916297798591282838085028693713924772793519530989825101947200925645676911069963416256023754024297416480645915162577596183415847956575447403096243596947597240749936619171829286879712497964539287921900165640923629589479765380831708088744529732645701325448702730048239858674537599852816285887010637681818516544190126441161452185751664166015153260868961078778122968999048820224454666372947538646270401453570822567051357635030517884326218705218502208106006913331712929913624414594240918698504023953098329529301256398268195526395592039791872993247021726868573065472273968922182417164479300956799594151567374273701283415603769279429518872553317391280013331140623957005097135900292096916406355663379386584751238200147419036927191790018766880405660932719553397857468250247716750619892253624770855113348067841922146689515770660876462894317285320933948038606404818422494486497292452839555105760923381974352151180115000431888842560092670180015675185502376715053956707461160102672296880701116043792003228915776883197546128860153729701243835007147254554373221841684623435505506400756360082024135216206103391384166630826252972504766860704949833248013837984192985136202231529872354660168132436362259266596460394616452795110488798026787328706163386934274173402229290717605364704980401801135273245754313748799402281116747832265233427220581008866013006046093322543433150716864612686131340404145785675982370613916104455670412407418009585832985478066905835527285887791806260570881059051131975121471821194355897109336031295772670644172636526050165966958680712131966564701295101146293994684718935939204839841619315672139308971103442084106860950026851429748782108951256576396872283222720817200778476674811582759399681913744985413279857767531642339161244504641532580498621309033624641364722106988681172542343211549281800551159160917055013645677589665549292094570299049874957820734066483922946218375599968511133043144752590835676320019024242125272852076014116938959907865919263484275361694534491970288041507994752065355658311052585285807641425075066330248530286526147216513907720790414100075255739306474263761326924897934264799458203576189679644708418237473742095395434766692966556117740007151323991763221807984493179654108387729165327645072052501179176413681066583170715118807033279888268410541419441594204159304147176149892793699259645327287237457432448347062179876751827555957103802273804681178432486311762806259738381553217724972713387239032959411460910074642641867417944641788332463097431374400040869686491670858942380455507418380812127845006981494777661464370182780630078795979411628826937454321891806809419781525682165091125145542158210950465748696792169154949289702941219313101770413025906866823419066851636084059514549379805311884877896838774132276858638459613756592612829503580602774404225350563617175091482620556348388158332931239044663768962618973748221643324279099691246499186955487889726381220001135971890683925823578457052729884083494069302632311672584431743692382962478757971585307518026107695781327172811304726956414252370151188634670535206669288958396473413646777702540664195733335110623481577578783761785150598371366715391936067631633832338048877863686768015433567125435438598950830223757394018748230237122521259817444176123234359935875883028704991867085594377488556375169334110295265439476994561421135270395750291348527576031590458850662720952317852637299415936718856979784014892526173758350722075370576493356949320129174937856597584044981863656623036548706024280160721605631312191401100893671075170912477623377492855417760592230587993330382833557399602534364233744194362950304408812620640891517108707031358750914149857078579859426844423022904482291092983125757687646240462999753121555964644191648585094697360280191573460410316044326862218848200394083783552952894768634244078350039710632202083418948484439041909663317164034045612657734653766136126831490249855717965982363349506894792320326783342788993186870681420833704690332669181686867535823453809145585652121236030293365325251557938247446966074042498357686671432977778616788194336971691272401667992035422564874519535321066479816220288050619653740115773613842722486907795135885304094859550199712736965759953407934858016927691990703117185854938450627165819904862905244598102394444537297520029655693248953256816695127815512269471236807863042739595916446593885210600432597873451557001492845355844427834810268634140575542540168284298507977546021910458172875727176703392198515455618388953558228855050397450514160368029528772358555753348753240696263448924982813077698668510714159856754990918350724996491491234651214192629575945790863404179282219266128295551341339548429746268656865454567790352131779573314013408606940965379256370203274768295748636635372350197392344320696723466827659305872458178396010565239454601621919957342202617943071065872647327024093318076896034357301018735104622238153842679739909167541837290773652999467914768274129098575171501123024757726492146629505633520193939527368723831740592416167842433392859893007020302474156462907058059245457621731786876270677493794416986189807559443692450439822377764747574048346348535460439521676256065559179313519602136167251514792411955415643594486668943260846193155969827877860720368346786580177759245516325756494009931723922564103266823385621983936828392523771702218887717107527972367030193627041443175024577484443448983073725699970603053911600230541044670389018638019087534807887384436034516508016345632300983739305746723143029367979249462141809845535169182797830418992464560830382779166802351338173361332631683902727367366153375591961437003473065672486586288982165601380441946130648373447636328025506591111928816085669564827158855464505389720344581818641291840632054707738625628814018762499570137771501151768625019132865681737844970229507836976986108436845901874952334977604415532927291475592554172295382587936600252754714510733352064008343541937256456431045215161702019712251170734354657799201213025808507205114932568361762982117018124931283358646645622666112976110227162732488725563944360252916539250453022099645832349383730223493645867986092613906230521459741603578042450446115208588590227539512067259359939851992641044413735306683270438437097942268877698617948573082539018197976729725739640914322799870737804710550272646773507687215833584040316887926041286086642365444899531641563954416487177545616402287228108455112010912432785970465361478826960257728654404922899397405995124621950406815900997188703927815392742330515754703495149275394423575886542202231837301954326657107664387751384553079926208751158199441660001090366700741924151197634035779682938409626919010301862135719179276943441064039454503747995175396951853833081751892341425677588433767174728447297115981791544184898851564953188675460537665614996573588054058291251502479544418301410501474966555731574260524399598684129405784161966599973923243199213938805311338536790205569016505955420307084582807804712855533500686556344019398286922435978647984089967309224962626354823280491687630814843973286329201550996210040001090817850297116469311090673225563867234205363072570430550443300715608650356307369903672116320495243030456852611127764720050323792830013576957957096758424477413552596502860169469821356480484058094788428946698126144902018533402554768538734778768410416002465947386697123622926705156869856051308979456029569259311157976240394911180765388098714059050201258656082907625083067693613541043929924174034065139854850704874130535501802617609486486678296765584280203666992692250071149308193471979767644024502810260631910738491051959399924079420857920737252728073488594016476859895971461349364757005481212743773958251508392746599454203206369621318887174716257374093914335663901537090322730683363150834497028694128946660915238325288076021705114046410733948429781352823761027584163093626536030947094661968345202870132534087062715010036699962822380167433862528828780844666365101758462044559533427104163822196179569906250710087252887900682508715658851362778309869495688129358144986204644123381338183894066919356156939249031100373470247178039139694253519749778046694538908858486080418772241390794710908240758366594310262021705946007017242000108253802153896603468473983520511439330666355459244197158137247324263705056730739149168593884385415846996796334386058800011833041887020067313886295162564021280800108802296346947006218384598141715922475838803465192190941526828650495483651700965294344105871666686455950385395368232199251219966941682159641688472728553086111974038149689713587147320756163054792220074644221305396831642020518389036273130379083309903673147888031857122350176171980988693640344827701449862440220330223470500007895526388316594894636508686325041786485944043194304350816785099377857785665299152786351215695131782888309172535187627938380500096256753849115887336396517393675443005662771366321294708081803710404940197402616229748460814262661117628913693036511464869594755083278437075371652512035573206930684370659805318914161563314602244470388485278547788803574395847932696296062071480967862623369330763327191697963075265740171647389766366633218708102535245583941860991740550594849748859274549206930965317985129009405867541819109669413174033017234111504200242423163986002268678235657909807084073181732343743421423450113948190389457382612807761945554322836138292068675497925860205490640975477253970409608757090078627289201536403291410633378541368699099395918679219687562143963414106858186635246535716211708843752036692084025212789761893147500350590820230305273103883061333958475152731070958953622462287449549683266665769336125941936240929057829465003813700093600102143765457578602183096282912910326255159536115186958269117860555420491813329969853269798777281043590167391860427385365071731726836015182141878355058421838319369690988933188198261086508966082144694132793747587545902964978135071645544827938254563000055512858543265855436615858430562873777778065353731812145952306683426803874783583841930728244296937608035068608274634768085969247448863437027215196844258016505920707319749465483186840225404077080709499624963507103753977408644866800199715558084104303616390646306995808486098590804222606090908516311961726112213502789733614667554199232140793381892269073281053674806730643370766865641592235621475649884985799857211768670972589450779568001392573826517943859746028596882410329714912553699991587869045175683686673508061432567666183345374329511055151191347084117197532824031398238943096951822743478126294269357504829155934941122242603981091019728710234227020081607757072178530944914032146449715277535085328152064125625552738415345855547365013124141509351082375287241622781183205698352487248559758779876629563787138546127878430265746834501566481578692985936884055045350259082295832351753532838103845864431312873131925920269355313626019314525547728938914558441230478035938584026466026998286335535563438423166635765942633464225883822576867713870863701944189825152230251423314546003893795437058397144272497168293850567325432172004557967395708447771536871510997173910591582480183278020443914483271006528923539641414163521800422730812312072042403044574695084891042440924860074829222856104841142168406143298123748240255682727157498248414112359994304539737969700457526859428758583792445999028935820939106108855230448254916311210522557638121094914926124031329306874457214780722916633874833508940332209384875538461272160696672321370498010247229574483954612645935816207671517123597216902396590750183216459057863184561916222381213257477796081577315935140580966347022703930447699753925563022340328451436051054173949471609327252113318933720422713326173511946025663912544926429515501879448683589279131011231965149360765373999698697828202150616910183373103912888171962482081468078192029632122471227455650125583656911759296360075516453296984698420959777675935124245382773112190248162936405718492228486728856794651194273533055320068711077615884930221416571315885084777007110336781635546046578260196461540967433411423046767451469580645887515260553019581818826444272771695957815530799735168831655688149311239285564389151125523680504950739792037165781831288103746199369293373921182495033269437156046056270861200778723374881927966419861819476231164329286631111616938887718121997041131588644245707340846461113111673125151191970968261093599443406206357235337308841226669389004212889859850354814856260906666907879801795017526874919881524294245031280004996468136104414300785273121210091502334495150226981252745092043129038358590895838652802135214331306240667953091471746159651025647450182504988053252864766354392820551370277295692130667494887452174162699398913952885237417611138404046028212742752478835215408036384690997637443648775530344748532759703768733462287408863802347053230404460591404701887396409891871718403634142562796967445084171744674480332435976483734910883612533028851657294323126478103759128273803772413919045848704754400516758840305741792922769298481539584431657837675899652411072334631748569958631824064853314508392595773829752561707355549546791626658159969932589180818486054521474273745712284661152661129216906196480141057814728040229327542050659952100811923121968652448040553927668625686756068922492918097985470927395984766150424213240700471895583261560069595246067550661121524610232074296351776168566255900863333778392871791718855938694945041354958534865548822261139994749862146331023609374154745612203431387149015331126883396856950983758719835446273482721161179212001178998607510483154318506359825885745962551791275841238600120045799127493625861176587035369410373621524360433898585931068739235192728398658264637706665865358181393020560048432352353614054861827758379419194031287422671860123680175435356673746676081469047975075575087038070929520770401978922711826209713302668515336603371473560713126581107017039484462025613974411389264522931460139335600567230750487027767674672844630689626689466009108436504591787190703675125498023163852705256776505128833046650953273691946638545852585929656816852724355704543477395607776665163979948464369081357268031755720043138261676355610817725281592909791730873084119284369721970587854418867191147223528123411346451930635149618017375412091509945447810741632595056350529761875566390208386841328238487623381438084684447238081645985146097562767906519381104180204289119435867732657531854388539180952396923599707410161481115031253806465826550805494812805695444467260865240133007706700804900998208066395540642036080742935535363092726683241571005057714175621869380610305602735529503903361563173896685492655347794484934125983658984016211868571010513483016720115176468374765530955662070590896382014418606807567135833706307214241755029188627840422790689111155970234479544098051961982731550957979598541592408652377785344670063978619496475743103749177641011945873412797793191280674757143139492830573539663084360757176841791769316346387979943324532411249997542609395332102119223509198292098808615753216267843864994966629037819833228049331638575075753471731598655070822220731516686190372695012707655321317971210715051039197912790648724758659784101397144902228825780189361098477192972867094822869512301412782844131055800048522375669813492764235665538544272497373140719715030742839116511130924461134036647810953418419078652585745532051033504068754727527151840944393936034302478724959068869093805197892418820193025210584648342610339750295814246421753659244328731303270228393941360078920291619686208269677328023737068121361013928478929087273396851787034997446911220051852946645780716870593435008183752624157776611193875306809907973926702080801458039742392967722572277947801119066811181742064498902585360801354751126865853091570222653690384448239094480390380915831614362157141294109583314890805556346725212958874371861207818520361121266470356528570911064952973962789000773853102198803266743021043487927705495776402528012469745731182582108912272716695742666893106461437020687120650668843140500338345721750580803130930743465233642490044254734859178571128221009957651567091295175501701580177462701756353656019637673025313665554014670215364946109858450536976862000920395371265167972150964440673579746318986811339281598432495776240334978088962777956738796911430379019341031229843710221655229876198108411482861730181990720015529599487294240155733345419128767471649815845387283752607684881906886131039177935662266960801837043185003924035517131352529072880764136677807697971577666866641077427835833254618430461136214523490750512675920386995555552494909863711089658787025262154620262709180772251653314895706459900701332456471519198098341350074027700574644619423492926069631415171431979776545288662810564975713278862106275038476812478107578070146194301282367720178348274090553391598231222275610865696258664273581138033588878167685917946711700620750393523004606132635660846043127899532261420305656756964507111102140399872004920284548514463057731526682775588189191654893756594327627948586214264146721700856372677632213240889594168936755189589146997935839725270488875055020960507487067056181670720747009385554297406171955764038477439020288324250165602338179825125311051116671180542564275741857620603627853078495676758661380839184764330611549750481560442832794016969000008018206547969193194337681185275177712893881403771488405163116139967076487999703937582240990159680529712050941894894313590276223715861959833876660334358010079810643618793125018008522044275332532254574824004640666405420447637435092283521859309462763091410434672011610066139307537644636437809625192151820275870792778006022158536705357176673325473723558003604922976265615415973432720275111774555396360281082108846568351862519684078006467041823995931882165959459505122695953228543489858159701553880675583478206902289120018768895088163410599612298068155373773620921799293121504296586092088018651774959820617680517070431060543356291774181187254576057235518366280973553785838341661568290476533022266240427683356010944782832172847526775230189768187677982220035152018613201310464222142793630289344152480405229271620146845021874441018731790122402306774092361066863795481426555258656892601398660353502007620839824519823465774288309074579917899367309356197447981237540825732392701658917555967812925275613184085239743062248033345776549298325956042068161565471198059449211763845897370877960832073318723598467584099605977139153507172034077668818771865359451770618957622734669475713947978696592649461348391184083018324684506791791342187706405696787319779231104855948169514421802472644170685592924913163913946420395196579701118456889597447419650068692886995996699721864317356961611450847230336128414698916941537663691356635386922794405050924281011997021397626274060415845434377319201708056598618739200517873474934157146173386810902649426279433345548488779130397794767049347364856945553778421262782360392408943199686371122497673309502196431456179596640377167881429498518921445951755584098194743646777280548851920158664982257073693028417754196660974786352972290201967236339788889514726369335355046627897866648563794714621305921881085484684368506037003602481594059279890793966389716484061679719090416407437613127936755748705041924822029865842672595380475626699458423821479473517633544390906938426652926027736833612771623236901442518410140357426388062403208055999845437728578607158207122902696052182527298547474341023018522957449442944695834600819120650333571315882375638060702736816162574440766162396100609347857932846368751523308913406366607246812605076347544312907005016752074983715376913701400501162533498606702086370074059292103562074399302875620410831740393590634629743225778149174636964281249129674677054098337334007431225524567930631611248944128013056071829201934394361234132247530321781940490988998874672160606065055859075509865460211152537218257323042997989135230088803902105713767152239027665173276296764006398752193062454977168199260161851121212659962875539244630607173791025420940632793157626907213707243560382369057428399015095191065352158388130719235637612214004591733481844662955244677034286527117991295125520754287496335033112807639606370212990107283714907504796719429563213328047917622616255265654723220486269306057468242693239012409924834336620177951534810486533351091480572610156695461128777618805253847942448532785086912545703485350779915596094174317581726547324686216841380654732221163783290764007002971803590618252823429248608558205342109597026116737962912880295327686380373180900424103304553264527179312271324721148815945935903147701428810118815550892738416878608160887977642495474568256221871241944294784197641889495895916338854975870566822123030964229983070024381059332779043619327550821349182325044139727538812234485978164998511986969341710191621011947194601155426896160861777789919969507989831368275880233264925927296915256820455767505074572460249094648990811104136761376231476422095399687316283196620696831752696775835266374460001120668151246054866786626110983192368778188888989582780311945149239486458669386893270083675875469490146233333343202668137694347709852615272310911116476492324488765740946557863527478692216042037030647280254870378105718660634730405642104652688670823755990727808260243879147381047418812591840729147841236149011287389056682016912085370428801110928517517055185029694527961053126309034622788121974575822772425982699352764631596796032659699435530747122332227380427972831773558551422992382172847999601915163572504110248491155210800738555339383166174709553922706639873301320730140628956727098311436021417765631675597070558019881384833508824809933856700567474060187787793692092306215275118119105462976658704977585412672850425312880009988065843167044868909106351645330917709741746353038297079362384528845628175517391321727516086775027368856866845141048817217641418957703850965588422140571115176774694557529318796946830474909631902628120400042917339531525049837412259878304205839478223815738560713332709341749850973981745007233827750092465835462377560276574455612902621586808123619573523210854041857720116860489857956996361414581610875988644995343315736587695359793404547708901523299053028632850270160744766986696341591155674549007490622439500512411622179658168897015742351573564888513679785179586138212748587259596118519014617083450290651683166985695370747116626935090941691318452693770174660225641918542904150205146080729123035268165597233696598597110934265634013504092972348591751926481626570520793400326069279369153766426194163862058814973117545765907740416632110267768242581089232217763321017482988305710228224734480727675006672704234819418809225062111996094314701614241566656705121937684196243041174443756427240604830730843748408171744008186231449961514352339247591647415931576415577252868369296833037587126664111455342850585873705710559124161754782207897318156650448538888290279076041731087814387906129346400060280539014024097068499785536152249848174056759554858817070764650872196929985571945201496622131746334223024163244237069297860285617523168815676835084367675092099660007592412619606733747912882416338794295999873979045774103059168097930497813210420867253040035373042784920766404057344038107441353181228382567377989412778832228068789395821151636791341283436577719260033435789104349700031496670420857377747975747834398401307620586493146997365933800874562430072247758739699661269918898940780244105571720828234483729425405027032429440478641680919057900960173101055627970578102153452781091167579031255107415891251824856208131363836204724910530021788362820428909801903249955630724750094597884512914167204726945597335817652135683254355484995613819019982490890682411015612410786828558025015278877012069845463427542112343528640984404771668825347484867434660001027701563017213326788017316437221297371282026514115002973093761730755102646363027439138820693052828086767248731339181971176062784027345959065166312391401443735875632248862767113049927368867512241475985814710145283876026367499274955561602637850186455979422574445495155763106604218700074340265981703939809015296818638331933390590368655075444687222289494993682904863485974216291821673380090913996581362470049768446728015682273995549315463422789444222648344213665999352273440159887209153498462302713884902200980571396372358007306133565410574611491160549285440850645431848395977560988677642118227108295243370262580154240795665193594196696242120567792239641138942418641320879729321555867966362131724999272194901983422563416180619049091495185780635850472646714197453781058728244520062717442594092759528382571832023097017497745949885990744332293995977999150583154478928456246168418851859330800849170714192219290433071468008975676565520699499441234040206376286383479604956244169384515354918227042742409497527173468931332937130295318860336025734161487082641343189569279573400317979788354885777785326202503567757528429724030960165775677218225751003955743821537672541201563688727658737416718942395688754439445925719024726373709967788507620214398533476908772881569803131734551030745319686532673347143034387076538893114702773681547465286957990385639398047022631829831376534299108059210811011450132468065850673491636899913072777175036198799250667693997678595271711710346455331893485697372274990588024575165191524487558150311779911286375424957289144199215906295124288313035105444825650871421788842249065081948587234232614561953066726897967165209875698901006497019942662001400667697888216110391214898262311983834723790798527187131250644316298133137426966123533878422794416536806137518741311898655775591107253133657921744785214020901621801886078541420173213899125513534205588290807428055923323725296333906001872688246318525129747122742020140322186783238746848054970053812501589993827137154447437415052593717403426752501817198702500243160989421365836325886721627656268442340034515064832833667550569533189236500443170894909396050608739510349259395001859560524059766947213710455065464173746897655276997880478015530905957522116441843304176376066708802563535436907181344206366856679867789729218630743167355695387264816110711171929361806493936980252905190556397642040144701932379538305013708728911166402019973990267272047708535082834635421145582059650512092743732982084925430024230937438577113854178522679375779732706301455290903089803249043003870367801160629779680115407901031460195106600462620922850621504529446675414557851143483847444019189296197893636335472852357796921928515778505851627958855531839889112972568435774396421737867152178675642573686002020900966934504292088695290480168123581917443596739305252623313335159996148389331417392931052538188909599245208851607666046167004957216529659619059789042886556370672787338885186175610830971215281467390964282810084570666685429793623885599019815324207784605106073016924207752024012920394391683114318359074069970490119329996624866374982011886854437822098696708767374793662483880589080895809210977075772730670613366295781828438665160813713555544444838808442063775746887671639047708695166831960760848679265872974869849474165048606735527282142182534818785254089760367051802236242994541872362580941243707399909148044056492864562059376546542419102796662135622693367797379710442029415362429118475204814074434978109914177185826222192993356248169738200508197835939848773106402805200721636071743064210301985616849034490720879927831743842395989854869431313637961881590643661843167454947759914093285241965536177596843617184069979198062885302790076767048928765004077978692784092887914277572330316553266517116291193752361531755804140852186827842895585736135146756509101207451815463982872565172297305206437206569733992494380209139813408031822329842322094287591580891434474831257322763725802004223283734462165525584444163335696198145222047463915078739423097883063016540958541955369051100878458848208250337151931878787813520203877511925495464115507204492373030577725365569949369561706770579023996610694292561362872149725598399691483678946863407841910319093428077224753189129874132712854760687438772493871069179157452532247203343287643941816985979202710715688561072945637003929976012446749328171214024699146076453748441023166394496435719571000463910699200298201420442609016249913407240555448756636952400963094722086162855285857875518839308157161755868108096081309362475565251063630962680322274804388927319193754547889595072375066598858423399783985977022328812475073712829388585974185678548887941688193074831401733575291524019892425512175778541805883333214130839322452179239815625047557999668697438994335711977592129925860120549547749704151203959269885938856279573337435822907719247029847187460489184778465622953187298361669762402902972260918923325309990983944389015656943347231104908211567859016125706470727914097353928665928321404115035133740750684654358766192245193421178057199669714538048116179096438822715836161872717378568771336160261490760661319650194427013794820993310981202831285888100584969420462078222003012649044909890008067061667762929910178285445904781821382795600045469289428264879813156429617985565566213761874213374265506647651329397964249871897743634476642733408459754382313431694789824819186036797166243126109135078139650761729276963246998029447296141277793695097006723643086708653857664975131919915015763858366679350011525329093600086629156505292332550612037837349919545566555183410540173558214843886351482771271718546093526140069960691056416386444665874619143172475460807291899687662619716014256784016240773650383098736814697737794016518375010854183402126175772403262136817087733761539148485310183930575075978676000835861608143089018980431879933190863048432605101476561129920756880689508820823935013114265537986754721686099691917283007324010433301407896540720415539704601797339917628902950101081148998776028109657196693416766594419069519384256843522335424115912528494352164172427959248072270093624750929112151641356523050626954370740204943788024510890719794444202926314317412282482396188275375677485150015004749073561504754261727869148750066005292014994368460424161686928939888577107501102649407981680217435697172340287598761852467398610601539210071590376329193933107718226835792054597037057705485753109673027213711838138676681889198334285704581086849371837321356879549255882803080797933425600034305637184952897207248487965399418248584392392111545415008912080532316119049283539589258357472215479601956571905139118065473797298019052534877044569613703882850134258535324029496083499996941098017056335042989423238534226073556405634575013599140117202762049112045868021518832734271857742360698975311249262704476484497817471828485112529529289505757244913188576923712977490223871493187518010051518224708001456833832835305215307288729896735751819573149079594733235822732504596809580502652233813029305292610662261405832970626170476598779483058604685331640672487679620890705450169990883652882316939497715324336791066082681241688596498478355640622110577030805240240194132463200332481840721680579004448249116866028982290917326206548869201492057433725024864522469400332060336979523120120793775100596145343313745272462008596202151974240382779911040814984501030530253589772190323849375552533674608594586441140952252588329012935157616298593114026552337602453433731804886038004787078215646458441044889766829893990643155532701797179822309944258098459615666964940277251094182852237125383965004526083370946719676970252070377710285499909867885966837091712999995673848925538358851339637770604919628966110255673030162622166867604245566885153791303766907717621256384052664042272594021310886864242505288895669640131462852915653373198674362997540973805843473406682109375141788731412776586657294603995623606961545568559070474556509157856531773933760985790250343528888707649179839989622327027222653000519133365104175656707717027960010959063181191920277661853086286195279583643119601441873949699843494101128169673731660255816520253939333285590181896027350815290312750309957345431563938899683505193474264634961450977638422073304874619436827208555785189597114984685698485749841229088228826320682981693932953766947755664799674815037787160975213785878192824422295804529318894266253830763526721857796997080925918073243174372992156981946692111133333127992955095249771714170141905886935305062667950865484919242798037230129174957152241246944958323229059953492119471472529019529270812506156386118113230672801013468398376024061046329205055491433605170570870277540828885650233672701065518682401264671086514526600478197684999097075455564078711940834459684054933132165400363759830018552253821050211609101214433547674187068623381041877132380227107482114976752264961420560959494021221431747717641591301781782746419405232646936199916270200169682918644803945923817611197778285676523567886858969046057217113425488691776477499025321932544241570880174698828407491964854228569060855032681751355791109882957853741646008275487507575134549049781837370849271173056194519795858762050002148883957504570114436301896499216246013300496343609422007043150069359250518340108320763073549523756589051463614221590689546395619190044983345141100306874479503738484747391579910821678587136701890906289988281248327123578698565965649305623932083621158762090361343436057803511691442876950142121739990948411124086182908247888146095348939963580622736617849850747380197602516179798869069454033818996079929970441845825435720342886523391538045716087433578821794895268968093951712717259854973931638429110476977454370332598014621413805491555494669377150955487219095811447849860429107863467135969260062229408312243515726365882264968090206232560156542771236276998745702854046954821832173054072008922931095687266733393685951102948581374381636942889660012574472351574476541653760052709283449602545317765280969889304268108174491743362798444969477297299505420429339028939111324475915625671075991972148035783610259560063571470058648483228282974529667086733016940318769176411994599035990324611624289492101244187749026249323394274692814724941231168566643083332818681238031984464398569928752445562379050501060805038339288354191368472703811905329582072188944781629848472505553746233505122197015196301799118173221919737114866721763599123888997930005041030679323551534220402439910308135888945990827425367565051224503267686545340430472107952089255929731390522325445056665981164011849178332213435638856876755613686812883878296559976014898918581338227659751694146552185293747986956731605660087522775353464650486567786385860944390260317342788882796333300187472227072762080514036135330211506688188321616762280717856928107990718664213358486754137899742655137732888527105433509807296516097761606435868675476872765331272179290850159111899533401551299578089291651553507422429848963714459974682809743499107384266328694578758771635690404705817473012073529759426425341329730644711798922390126401320866680922860504327008643630221588441519702169878966496996000909663955688132776328396830524157313709486506895028028935676334062864910248711197859412072951559633936905536021795609655871331766926275479152986803182698668450100932558414855809091320858788462817552685957023355152871055557767643760192937181182741336171688510817127241008982353016159728817095091299984744389586505500674467536059994749259890857985753658467165952480764425198968593455730962741143241505481134190633373539506383192615489203670721780090682523899385501314988569221546243393494615055617546208185893763298709222846703371792485458539446578564894181148466976377437013704266667724101679062050283974376855608895735489659739821247529487214302874981999405585558091319669351194278933315138289792300288430889812571401366907615117714055459742588368239140636097089922484005321148661670698230231308110183043072329254350497428290534537896247414122829209111440470878813647937968217631596588598785166813081233048500305339899117881219790090715303698044917112531291078125954715846300585083805679251268995322055845179634603397242455081200703675200829139118966290601481029126660186776884811630903401512109067250251261163060318361360122070847199153374058891264709910250927992091671035421576408105325128829399323765227079210203328189391146545456044056290015279332244074098936041131743308143890267600662662511308936839082506746413441020599741770421720376153092954562338538200654640193386188509445466502189354251656759867993442815324134494900643163343554992466634956626109383677317554846599369589026845104860937219907121651245812856604604365701835795544914875143365029946213254186552855314196882745548089847927278707846808547318871507841988702223178787541767622680248095010197033603909423128978538347365316034616444975150374585267483627684114598725830507568367910678118979447890381388022442510358134775970440404700338668562816313102240389846048138159443167110167108658825152729003702030915834780159284456443859242051325051082194922224077597695896265645821376259699802394186154509608062513621979472592328217238085535005195411848354996108902368768420762600984499584814461463901771758020390008645347422008500500593475607590704288404220336024707059775153570473842925343368928587250057272250680100331096710973593290027537537189236004199208697952190563576487460615227378937356414464094298607181795275591016631025866259236192591719299745828517683613004198072012944049268297529577536044349451552759006258081912110287818679149226545450743506847845645999342497645436565920295118595742694209986983587206521014990116114153635908080881583636678809495815864838059653289535637880549252268563806642460737057907522034277885459003543455618213096190170450862025526006701400550480017708993918148071285630401459578791560104727374907941764040014977029302372179100582134363898640679472369162969758387493692534822267364702927764307638296022867402686377170901765177422448722794838924859472753618155950137737464182198466271456687935626471921979110825623026483445364357481357714676584459178681902602284666267691258819792117163001248647321622694668083885677561086984630521054423975993418938637236504591451815594482041780043159694434385509538382094470552336938785877038497348527408226875893647977720963422237501072665150435022850883327539292470914523084920716769443064202167797639361470029287584475593578177064135560132066481085388438876248848476254003598089490710586534681937082952396969870128696868495339516122800539252892065841954141915157477557721866800930572836477707557006280308282085597972465577304971133299577698324036855419365063312354307393068708646819051070433802205895313847405950455947710301083405060392808724328124126077107090005347565672400595689571130149104285141101668357219331267860794799234252528070389506747489540886184214105330729012005953121459026504885945310113864528187851985091936517785639250519030413342276974823405740318395416530522695864617273673238175425569359026122647244994447051940921359069812437959081235755206250021269418332074274811815195649277610185401474501528589617487770370439636230704231184514402507718357433296057311755490567975534844457708703053098675902646687707136288540046447851712760295867237089378462357349633815818702451362694524059653100661245063683179806032217298294269778694811739571003089018080677193937764860357358198531172332284862969621033634427483998962891385593454055721664329822495117300450264132722733063863748296047338954298789732027132746199918780978288711870262208153111140248889179804001581661353965683011765793109862522773634620319314939582735978238099471273479791912553965233749274286848708239976726418244204289999661546771646568142477655426118621901917939171248694911355705274020777843780504044223900892468242174562872282176434268057854787097629400350624148399637902022435847929484678365479859944045316188864708619032523855589379365235468933144077932511102628962678228277625172585581705302192724206249358497494138122275454151358162446292416695155338546818340730304613895664502570428341821087412612653453671741167459948741228839870698124076463743333086946265241484895407450386141650481973678116933781367481834835603352907171213884041624872546961620906155317522907432961123868273529256340695441444767843792025504391884879036881583426684339701735842337569984215543577106559296518008545274154080397840380728132863323966467216460688006906725306792899441176097527562111285235983728846000632732338508567735264727398235329454707883364638551176383523611780856686011748697372302491523169617199773916880504677998170534069065690094577352932107915115622099465831478942270900910593595175973156909660052180676630701710645799360875198180492102637305363512705997161802554094998961708638933129783786770715209166532679914307119036634171304008416719198057556747302748465303610282217045048068675440331222182370338144327509081872141571483981909273607323760399257040147045840821288955621558392551618400723475045005047409380781421363686486454885522810609500385561713900679312062924289420831643656216650006622810195107584125295345212739794080081807570022478748889542602910183859778434074907957720497084503945197728663239894518129647002542572657502587712050045173161177940651879919275370820968490416816670987809914459126659100858112946648800769021467276240398946359953209564547292738945130464972682699851141438820120735428818920075416090469200174422004684023058644218455692846939639430612756286564494406715411851786760131415281748719326997768924551209822433163269675125056251001388413956802674479024060492601177577834169508001435709000881612308686562530996493770906200020083995088208341990137084721300719617190119691875839758551756258580591967336215001773483246222322148986879836245742187237838848200872266171077774252836679552403627941791681217547361239060919108267842622156092748788568244016552980023976026533358873815093503053567714398551655560066957957106046126000473748212974645126091671113936660906509770534561645405168309177036643718949425138288531112076273276506346370940246198495107601125965393591824485741391805465432013080873618698803895244907156792695974067924870395685562250493212457047089226213852865038146566027923304207638201425664402613812345657935638097838859280685439883614192294708690543755534091079998964039216545423790312397914436129279995824942243379323621324464784073030179760251181774785521055133129880240417947838742978041773342379424273881519493321877452800021618743155368918404639781170260507459633109891515155588743809596682643919805319186909180757761568306358833530520073936307304612394942060245865892746852049289698086135215263580225341902107974044926873457748334234322261581959334003949970911039974399901746810478290108286657576577493778617512135590446227710676512029736974002393591326635962884849398744393018933941520551975808313834257873282433963168576259218711665463316769492447795848286944855131251534531636328322446390276334680549291811798550664113827525180151978656036825086652261685692218367542850858535642586111038807897647510106551605384078659968644090858163988144779255726443848866316399554327849756727521346625993537162430368976907949390510326054057337001066865841598592912305344902349546169252112759261630856572975293415439908373990637182270596403174519152618131822359313339924779066034679366798383167999657284874444238199731788382105695984544050900334494550656358562420507903527678484838220551664007914680001850380527874002770081897517881014923898819499853553124510011727932311810672343488501463681600625152929674646639911967497729717294501619583419635063283282188150748850683512507113185246169982237340319661055694715836229751005555276698357128418597851033858947788960739814566249462018299353842629125215858529314438567320044383511667351472102713273942536158223939386704130899068579499215650421021506568183247311526570808696819267200121100215817876319126802151559432770302886002201007468795113624099080802777743609672645342802504588964908458865786065506058570903655157691969043254810262866245632752653682641596496422845843023570797184623936444903748345626478036366354256239041490058334451022661091247403551460430485698242785031986956917350077782655894937991825731431500074353175211413662730401384342617175301632641721114815099875507786090669339005374900043389629856555114575612721676564189398827893106289070373413338721342771556299999783237116263344692233810584183860913753946447645998763367635176058467210013394677437067635531383650802640113894409227100435699803434431806748943628106015852077529064651320963612491549461609345869910317573803540399178702071539473990344772410128423396141420942103266685175461537196846198353043852796780271506960895661095383442949956406799735224147425502397482826420302916473602878263888610498900698190913687617601051540496552399307116491663024490598029004247084180670726593697374021481201402612722136542321680535559573406898332620024264889590871209677626612053454374177956126600289870046327764661207844670588788055805146626238491150137090113434451741975329557842104768605520125916071038951887599334517620272710022849012109487262744880653356685608422961213858767426268489043930358461028777440113098721192805434599331382497976712334259826144359443171469537972555297886941751565722948231716549311827149173920533466742773411924554471951184034613460779747064980275845760701208841953063020756191766350393192892179138994106624884865183750405828697100508477779561731966355250570587135812639716567275087445534546805269303177868714966440715251993193835633185291596823351943216704597782100288244257812599838511922037118905390018640310586596918494082884569926631336635279009919734745999753206627949993716539760090102639680370666542873923864442492706208756411797583064504254687663661679419469393442323195612768946584948069481073434390790029477349532714593010239287140089003077541912053298707921773307272100861188551101040397583982673709198542854968497078660994260674841995276441253527935884926061378624954755886072354528007884472381956083540212380093190612769002688382908079602828187891937981367424453216925173437593648177940035263636637772091311698123441324572872439197607254210974457945667470022530244287869123015117679768307151913992112224787994510636050786921207839091260639311044478073190384572300807158192667783466683079299335386746362609431758713896493708649788660747146141421867108234579424931266295980310046903476564798065569419076345582295707092022818223406692280233903574080822480164822972721655525857654493656567355506336690410995964621871731546390843350762623988280390530767788536528748305674892709581888635258955325805830862993775615217267195914719722723652359213528306378077021066585602133280185901902374239688096067876334162166650739101792144346387457715230188380793759099166253877127567731820926622690054654041913287999953116168930668108203467856556892904622699040372805074941051525177088796829681227702690149706596295115909492008734759537873913256896879264151765909208886870960384767000965721912048869887490510691763265515603763878726927621727323574174649561334619222787132617865902087178992474548190032469116853197302611447548773586005201563790394115436504752755270298219251261038815805660851287710086289007490696422591710182582537089136939809584528965462328915011910662616429590960488731044453415549944826239346450538392518167894665775928119911922679138063944253739834069197644123360058811771978882555909568533953702281224757289212805941248413337122420190923689696299672645289581066591208870947063689215314073784463309207299267303560667340613069563991518342313517516259327082164071952423439335924738035974528073955247229156377120211495718221426971269837517843188033777407783418010323829351531951836382689787054910723986057812623147656104308508751347028852173980164960673626182661824937267933436743479239785931173957636351413942499001798242451696565035517358562103403934920885933953391585007819257465155140846310918949665628300605185153286193303455361754339460240009577214514481233848896271850678227976839464437830362549129721899755912683835332819181635345373436383656754834573315825023041339795598851617760373923982330090194577538656420832717995079088096268610087961833161732568377713668352235832640359543337167778516673109851552948341384742392594207729261280579956628347820660275975118879529009045481548590556849782507791278664270470088181189299325744359133606929395671089119086095914950035736599403114974805766499725701420153229881992774695964900178845863790847373920546115061408102880525815589926648474040160815179055633501765456833955745086970220121017195970199293733054014666347301759504274822901240468133048316478743739240029872413924851673504888620487220188123477032398519554156401985616865049700223999277551479053100022936174673339144349899433095106139413758049481149731774757914642865192287360331848270553670244074081375314829791340362059830232125483522056367572496636308876971578754718817313721145380696132715260398794399781443102917400062013036709714384902645799261315629226055566138528502066084368374444970140979997371005496118707620847362527536290947215870277629018367298760632203722506190607476058410438293434831682003045809719594997438191627242088910963355701164969951615178767039832121504211544455132256932043506254275197145338503068465845710977830589941484880667299793864707821763120141763984406536016272224264754560016792814502197191247072360749469050850390273735656858989573702566614089697855884473485328636410149725986398436927227510225971725514589968811033538197235640906616785841690524648567542799020695295679096699320512995348474857491260497302274198306992713414527411553943794925559582507922966916807666518472547731173741691639755454797803555395271196250172420449127821431739921036985423330305952255452526008328486999300992528894583289267740520888473589333065525535928311016390842294738448849090534901201053524069323469386642568887664670985410902907418845461239172751218340657056584779177286745492097457722667093901391367035365175317299925399027898374764364999311000789920119225633613207025410015297059819442857993563777400951854738846995481197927784945604498086858552212907061878592668278047255063196030542998331753709159021418022788397940072677050521447840021480170876763877044495719932176636024104632590020707214108749954213791288422264467463110281736536603365728378953183971076235522357214621941695502584684737113178353187730038212541235232996632980736811232340112695255244745666045863872741800413959587831365984954728019600345629816690541307963484347699627226920318867998479081703424416794176438879337692103467668111502410731987494856358544896549700984808604412684116874844110262067939168610566150541300144948865367504762277778801501236302357369232706126701534730595919712918553250261842870449236770321095112290308559989699834233967516211806339432085633494357447047888698471783097959096262966566323768210522820065392280394159609368806652535417893603005184520399108062357322681084856825004690299702530946168179177004018512541838916971845049931382129562539872665442349920193751214892012506217479641191216540357292396389719826993225701747712066551825428193643862217662722017096828774568152626575448673908271314173900897288093483383495475262548309751963881210356859895970782220703372756321726459230348781170579545646099931562296910801489483997969610701049259093633493728091931083494379704330025320667000710281930365945260778717348487770382084736230645121376010307020464277491592148280022887990092436585162562093566100764640024307363077123518387850888730544378593084492692912792226140885871871528185311205807715161429965950897914879174727865477967759640567343206242826650112341513217230584797033616096696213331279812748205059083267613542816505870007380962491836042676807798248581880870259524018717690780482196207967312769029300328005479369199312878186771631739272910953008529238213871987803306404203741473445896714834292997110414556380268105194975639432256000709401406822968704958455771816639705870753105268800351626795736852642846552228081357697012778446738876514191111685864486590324156324009151857349962276505273315719054787074180191005779372513654916813304635429324983700875359081555547564500721879257481022097461973730995027092733972400622841868719138214694097441745432688631655053482211364593667792596233963782892396542995115330572257225046716792161932033371810503852491702875526968564723907583926188192569697702273007501671259013037369996314381162541465954508000097535478405734501476199660656548477603684654548914046774767071322077912133979569672841615917675880015640056055712734736401706319536668987697034646187842887616158964969935058127185939356456631381927865041295315711153676291574386385493228241957598098483689273577787805044221262906527343889968631090052528521898665292893484017130786030556215336459352425584127258470934717004767922988742166584588563888938603667161383815802580871546542603147700427882609770595514876154799937097442526326697611010737672277740237157496983956374534030740663193270219961109131477926176433640955060520409349230038169352964704140012803094591393988223921151025462261797043341895590660778847024515575954412970907311059229676284862592232427705041720547096489017893265943409714251007428030166036698375062599034867518977279311191397365830843275549254084449516245521337323990216371479781584679536251563439240144802951201207730674838717274450651926930954041009317779248339357134910714573526521820657903797648171490306396909830298886108766453812381298740279835527325328560914388134646717831243126631660586266450970798634219626583098851774182156688943202213213801076681094236055269616540673455233132868298258758638844298723916250675767597640567779190358544480814482983269335943120212145984082115045448340275807460347908306319100364729138568879756460358774519490240306046483317639947079122921078857621988828730004309578866243650355884426144358471981267563312892873868545247437977052702157521815037423921069034927507635035084483212402700865427125704336639452501041422278518127981008519573636757068316253723470667239077655561078728217056990510455999525197559025234432139470123173996516577361046030025646381510522476151405384335562187907986935921896200636418512468731436094155357106457371641392671254542997193948228859977771306952837302737241881614197228738569617316583409041633300183948578069849222774763320345049070346484803635992487934735414024618190005096041328022672579404231447095907459711950783060642442028943423025476747923538204581991072578984473386499955142068190326840132956782885264676436275728906702852869533521979315937337920576145658222598948246524898182117909675612675507720761666222490699558486940229017607339957049525451550686445138348095151114455807275651686416532021839491524799899924220117532989478278872412412738684830919580773772901610558760251572795568599646757309612461329428239846564685361111893234106216724937032184200977734821132361657258133727311022110000316174916982932558241715439192825042012851791769450632644594621228046965685550517834723201949980336995376054853085617306148739445634357902989532177917619583064610454912225629508098003949098479682499086237962257950961305319578663843382590214467429461331751256899660950362002135020941110366422747863263343033066447053184349173548276878635636323252039971050522872639923736453073869541177844223379579528517684785754773959802274227009254140611983000439904225520427618978778822978901352127679788762623023178897524118747456598739625973545648357341140185314769014577726184649191811217496713488081670310396128781661971621039164394316742402366693560945257612381635630660064794906321924103531905803873783287034028060842520767858839502221448942565456569133098899771017813018214033454150859769150863197329855253775569450148959400161203938823756456565250132099605921885902730164461290444140213270539084743568046967268442385036248633556401656039221555216767000817185606971661484251115580125074172329065269031428219887342801768864852472926019923551948358726503023327714947756750282032929348433996338244390377042934904071863933031753493901840954641372979919790578551209342594037889738441435358895742579423364227986058302909499413593302215784499049316284771102547828122960220904015614187390302335015034109676912756609075644978779202997683268731008463324346479302367176904017963970202171241694148269526413770118542868349512099311146713249676471604714403068849544842017456284628339504852122287144411231168392849344038651260072437571650030589151829278627805143665416626996961111811526501718715146852101577780859164341297435757230408577211026264798275895773166975457706114564172584916915632533807005571450023831801648455956563998554325281619760248272309995269207277118690961716325147532887868541201550736511299098788755884767154799721531814069528559354193391055449160270098443849257402318978900262969453634646541670123441071348487263019966123309916150227291266433891442902120627290841539972971779102680139320955418441013690055889217961532576886482149580145575558452063572001456380229549667975942763078267617655774998682267556994032721744224543723073312552489573779348275455674001126371977740402002674707280527446208190190000376073966909269447822684270540510552123204261048238340050023496802315059768413187011112129510250771604171955545569231873504371231393492278479419706819281575604170806099184405134564774362091492965200436787900580498191355884469355610234753405549775369377815723476886237452544278998117123789936716855760320803509528575955481371098121169005083503948270019346219448411015213607057259240581543547195323654797019555288449447097447883051546441429972516895711514290389197030617149214172881529245003489138516907708582341112325193818495499691829477845417020090807298465315194003392350093260194660041175691111229902741047163894876310756731423603998441953121140483503717458031375484800873430120246053960577275594656411549045328632082414085860521807844013926342599133349483322136446165903394421044940385997065054166183391307605949573168141504821656356233256836246069290944651156447764354083260512033487534547173574286791435433821545431923580428693843361022719540060630066537651193228588779986457866474739918326898032528933859401918994726975265086249929275264128200574320028724345242367913271019368907778095862537394829167833232889025902968652427316645263816501936752735586888780813586394297550827217828140104685454021393054522276840551097243077640740386901960933915433907409962093187012624457094865603636179306368262066725666502074476105883150624985667904936714788064397778076955915623498475907353361767319317029158614252762442602453710364429942121704136445625633499209491308946668212365525418998175460153388041682243509472635509735762710023644899798766787240007225818283941877301922225494143124615753718572271832351408284240070768736247194895260821246646046067442399586648765884024280761195460877321634495228253553836093591942303865731220226485293463075037524204513630671659885869293007223492871964485530367409776790788918569567409128481240682243894378716849720001463138553927053252568185424718826246450705903924951566176660946404375499131481585999748081738637522320943917302656904426630340824315468880213603177245396456491792032434384681911271559343258376211822267615986873773208966707715957384362668293243039323572559992123492215998953169266518876541042549795309962399192975966306194805027778300475135882880371966756544661317004774728680536756732663157462269590259107312453820916374754682023433198492800292626879054882119522228536468399662653607349583210486180775262507955779598734324411340326549501507895745411344332798096438403147301309269739984884357240353232868983307861764978646660734892004757003074414140700860494920562713609696420486386875799244447433084030489115454324929182531442709012183232604583247229131097523863739350107143798966245698419357520525468428292427305301129821101977445662070582695825042195654153011000301020368900141237333232183305678671249950651387379783559468224319073715517472524335499201337311436389188418863221377946190048591298571945623016261087236599732976625779079599981118596887268174345553536275855479504694208884773202106969081774896645121144398144550985159411084082021340079497409961691932703440279608802190734925560042724231582470396851563404951613366695871644494581088749722126569995135325144218272052115072185143439748352287264428671750974637653875346568325157274978323218726612200481043342274416338190339724915118017918771931003671999414251949985235385567448993612371441798613201304307179034605205720978515441313265810722820485852411597847480657193660302571661263510764062680721275371235923422551824131389481286445401395052665298825882509966070058578209596988050347910628121859054457349626479086117267200448245444370129879119586967461753886913671989705043140518803169157488079588513789174502539512213243164798334881100011471862343076230544906948060785461230091323950458560382161330603050641484587464176551382116048871672051566820338344147107320618788643946642920160965612668246879513112594277963765364728368126189590693665022313882419974880866279619574660495380208668437701880362631590605716847200140281263925438152937105785237819156857914379117463522178558649055348003105149143116685734407486908562842273575903743874874640348169980379102360757484740673284347617426763141097472510425496151258927405081114760681177882476980377196042593010554644958996653725608895372286797737089095417015413923955012550713136010636426711138320776936547141639482445196565645151242271354062758142168628398024365791139306763851935955116930498851535014283856095102634977154457439709966846358696082370410533294011538847081252689823002702697469759865533374262827044156019437726768485647427189007378614635167671951227588349349284738847519325160494875254890027819296028296972007340100417713980621975207716406438534082946951572054960125280751359736774170295571769197234821092672384608577637352962350068161889178414986753019012159072080928934625659873554336626873204698739774963376909376919561581847670662296023526614072687493172847308766263880517719193243273548487194801216539700741250466037294997590266734736220511632308420558352891125728535839827518040248970400229286403663887845003588581167972565270310164026906661149435639029365706694566306169374542704382734487533286729408341965821637119323689828167554820182963925627122520082104043279044418455675856094769507234203835430301675479600915521993481252831844158765054264889180220990061073098212276292335543325670177410592986836634647426844515428771224992751362281034229238972812506417788076825780481648772236594104493090776431977528439521417707566395042876001323800762708905622850235878239352048628040830269963548018194898926512348606676936497009799631130920543293592963280634755491697396565880211718188412802962078195674491000116645267016741765715056340492121951011479241255274705140484574296174168570194224217797376926011798153092266882481098824529386377423050136471609975812816590117364305456530502629734884112836538677231192863204773223820812852963308624228835098695537792413982545078200942242173186628018111490142052848150539546816216226038949787168399937075724576991924466133982344002728915073243708173926743357220364582956423290861261368363887224035150307154582946554103743092493442844285071815344970887721074948186143157975527220845022571046873432761507078137426587920918086694386920420537943725666073523743979776071264866762212951502456738110486967268782060293266595190632245057979571939625540259645490556459886904686265845496433197182954587415326803406471424999842123215979120958454528858159053146300640134726530672302644592838106132849200085910017030231883495259519584633663687699658342701060925784596981018554453793657231466043983392674152486740007368952882714847319246081771455349807472807064059140687606102592212654510985778943085621097936279529306313409641066532332317687350392800320358626900299277275051775937818213887303431061381440614248568342613836170640830914386117221672527160967215098487629062107727765428129276362677872790421257509477436263108382837023092214858171531659209216621439858196428975568731110789268668720052570946176376443319760712536060574328644864700307844686868224376943851975437731046842989488286580206833574818071138473891674731831085016508832921949361089188253883951728039951704724174901893976452137643416275069379325659727639223328627587047512182492250854693676664407305653636730669926112886126086695773315092078753449946087022391551427468582480209878948949230377518513163623403332890483555102194802413309267213357754669498214216757682306624799928167809904389374183353527427929805088219942815746420545596127210078647246617035840195877809859307767877893579440745886419017346954550522941371456381833593913439587495354011819019143295704285202867654106905567877485649455040720824579412079456824941763300751058185173497803297517331556782517633296926869473393570843141855231974350850361008379618200837319716275434990307567160641471266674964215735833866620818730431239858904575640212909674753375000077894390088524985231447963173111518476363061155596223282207305155985689162150513442765758032913755233655335207457629324502742307525393947231924754995190154504089321586064431836508822826608868104373788747662846981634155046300174643481370939149425591373576237041686679112140851511645661483100350531045396778328425242522809010894142434031902175087450032757509462486154090027654380104293233672578231075384616786893033416207713300182579550243398960529771398007270661996062200056436722041728488174759254607876643604847166211465376493009948463390646242833841669902858090982485127590390888457108164369905212455500999551630782310280445218576774447494256959272232388736541016482925614264440751823985829074183911761607637343349268394727681806861866836264709059885378289068662470840138691492894805240912926060195001048702778112582634631142241025851684599244601129125541858919367386011314735070224841806435993297824703582680942111856047231021645845157527372287607984133793148132130610301261937699064242919085521145352802611374136092232973937257831510516625078714399985751816268579275730697187570715915389369656847022079655561215655873607618184722636269863242173469669537303285820800109035771467137109703007675137088683379761861566913571033482094272571197136268899186197413381905984436500405805831032072145813797620851168083786086425344316964097847461023883384510810944521409335300839823905726560864204133921998294571830982952646385482703836544005878985177822956708173052205749064891027584983854662715851280915193444461162402405859128114877885769656901380519734153305825614106192470594769862484390032228752696122528186778343550744576323995466140837444381925734364749822037275030056665526015061551428224577855281036963799140772786657380432126421405940732819197330872956210828867784629994984665181439506568126496226346313456915507039688396971267003824481469633008608384686592958574077302439558943644819415994359004268920232686728528381854521485177748959405710707249395091494158552909089480730888882400521582414921316918008377390525161595601573485926002445632870900513357346090534629457496231881117723463362216455030861638456172171418590083858866729576860742132638949022406141772319477114049099289686819277747800119146388806885553623759324372704918232656026573627886356981544845450162044349013832049307177944332899627408317447724935198102233258272432165735932077103493403588203216704939536794926892448724410067905120786655376520207424551069210715940394516944116033052652883251560483980085886209372759149091390705128094913014439781284454510397569938477749961814290253199776330810473062825062184592327762766376671056879400434436164467695844165406884443025916633563593018442873301429045812755761102988899511750187007360670944406566498167389839505529707398808750853880715150480725968879826975394758442136238081211749233458123751523111143665446374754865105533511012438850134494545402508807353412334589908081130888269340988425059645399413649229218185536904304953737552775256056501606777418489084522293739012551598052678469253006302686144759188007368345111494918352761398480862468764494203155395558022031610998974971651205292409051230552440762907156194503998107159016673939545109205799686728155114544012774898548146382125552991673285986568190218089856074242037951290069279709822940966597515130628139742480031568865583793285771682769412717202774420589409425022495741673926864574201187791788978569240624397587019952295476180075853001150330970901382310138136235491348313048352709139353119046873186285931028437533020495535520153818483166171569186530508670900701329101112200508231203053224217691432547128905260235512481818910248106556687067987320791029773353234204568874660593078771938026500941739632186593332663142563874780975342959671232924447707070364867465846587044245387195074678643247565953216047117426202498613586946431131505674024034541845624270219263167684246735814621703562013842453458367317686729182309254345956186882963486298637928535768067719587874872916159377207260588932960625510890016121242080098556589471482046841367155085965061617777227635899506046222499008979927444391027182622353533146756123365432106992171195809499742737224388732628660265587141273203724909476317177912925807303970160869600727811055059371769053127694935666818078815031582648292313190317523368979882865139956951385994220929022145673866828294379454006348014673325671479029436610607466137244134633178014283628310012573033807821632642727755180058245902450735027679167143791895434073392545296068983016405683490221077834679478928255238685479423759533160158719458019769752332590686728143516704054845840724771770236201628172386109839525581960098597042312294009826890687325204825305215963135503071780212779567261384046787224322927616734487455278335578009993932363299118675570453459729822168278210117506966866329391289849705483156206396452809418422426230472180019969023880778961286319745851578366781602613131759550836273215324807824485454484929552411908366193147940371310102531478002017680531442203889089433022675608128884288058576945875185066343850799002288345139196140716791089255803687770081324978394296995332144914979964867071272394618157453516284841329013655506361136237935986555124284493033192848140814371878532123885968632401410116344198970909957168768347295230376072279442092835199514338599386791704562421806125515417413807313800161988582264604926171168671200152798751002030748307442542395780739165407545771387438157871942606792640447330384156930966510493301588495916098006216517277685612385743119282418731684525673349998390481107301582744154475206616255073942756132519305620778403049131519220337040261684678164662327574385907913573665755954155688172655277634824398499126464739573934951066195622872018346138155960320611947304690244214059508376656284818383637710748612809228299686314470510854879550734395610309293068731974404057746949657922851789306088027990622091915906932971492462340524744784145332595542928993986328486385835930703168524256284693501047425413396873977614121398355238776083784927851480167741096737405212232504283567970790669086669132624628460795739981012754033683495323777330982969661105920733952825412044198793980179141171581047891871526332291709258930378543829999638047711777955244985266775463815726584144302283361488251614781311616748781244593849227234596176410710023246691362977007338118588047275820484618077453516040180285565003486389032174881204019197316544910443259437391470954908627725768203210216152624045655958330367085935770296755696755828447994009831894578053084584617011537678311669878671479600609295082851541698471059192512760060517594952879492711289114099149848041171274046298042754668668490865858332971677986882096056000640988353820444610981482169452607162966589590055475657324009221611961798221381091573058564028156723334069335498984019221664731370807998395370445262715481993353755767820306662334637451280700944625973670842404234276061381535980957355542024136989285163487622595525855430138130170994718229390038948304978037018196354300764837160026895537713934869253932913401123031064972917360512082656375801948025880769316287357802586135294854382074492079745379442897086888740842918003026491147079976884813560244395554234358281754300056864651417328441644459220811414884572225514121580917342631495508915526776948167691602504363154195123909059197358057162001007171749489196911737601853531906314303660978527147109607029259088257947806396296412095851646630965318099014325563264705699552312392555995775521629728751581221335729037511896577139509439218837382014321743272205904448130352975994267012579663652335863274484993409604159978211609641769775710016509134831134343738699197598626517443492384229498975964270286155564932538872888374332051503992274488818937664900411800061932452832103219559002330983517122585827751489987832503293638683592227949747116928673364166163323822402896825122887991643493959803658287248553117070883755111795313125011701150471484605065403799439804177494982347926485345117772667706884480117637227791425624155146633357600425542805121687079507197860207080560097150097977186497982030548697065170475170786215274916287018385410163362871108210456673125465637749136532934835335647768832111119217122040288815832117858981213032335597338028654358660976414280256249740576658767352415907943120028341077896612538924154299402149750446958339974272119856500477851318942855814618210507453534159306263761798937911973394640301943967093021416006904492898772017688737392259962868846872799969173040848411788876738153109162503984465658136875863642122548023223575542399044095864465691811676472314144595591894154688004132474758184215911050272524217893089776150134930410653964251310756258649890563223099861209030167464606867109671649249696945678859914123974430810755166420410458364533184478787822593554305600953385777469148104673113708819314531244825514178596001383916466285602251400697418628798628711871992796768168795729936815470368519752189350584786669973761940664335488088140429179543645952775980454574691078175353613954036358013594893700274111182594222926775715119131827749960177003075618407556637612345683686208378732855605434163105669064480700126970955447290023732500772445649909564195530762828099132299770573743659507165476873596012195252498742512893601586770811250560047331387311324556881665484007421711676666713937764980175651080589272645046190569753110056931384057250579828683328571752573944756031038548057756245931363981278219089477992009717066520281863948688105896646560708626447258227494984552962187401328675394380910375391076771416114997713001167739191324548499839984778297164181604348035083150182608146512816269288242619986105108876636074253446760190669027135641257843416558258963708034281119776702485768492847431339008623314666659930521184667152871962495510151076137851731255076168817770965829124925975654371700798268411316670121565483936895796653254948538544862218139627280349205769146685842171788326756466688125109884126164155985880057140741256567278584633057122086538378274915824352184733580617468499413454724454791611369270966659203424346803068022420752615990345425878391783412505153029813298588418758782712277778063760820463133568089153508276196498242932222642598004821893301504739125629254091470700341671044825674117352332027522623827518580649176249044077192779915211552090738371878079649664638226106296646945661569582720316138237959534815269163910905546957991828279978366393107339094609383257145829558931445892751879184665022595124748079224283539609576990481488706966402959209606241801857159437578374082486106571344057438346745228761562738363486000983952576853764318229706425281542101031441920950574499794485855328422142583807801789207662838646457679780853682028661911176618642681025388860317289721493061187818313601963635775743156198000487893245657423547052960390034433381417098372672123100149965018976850468963542500174159847606334158115355899776135394235610515246886464357015053022767917200430362196608201789307608271107819190575015382289768604204106182226846417685109457705469936305246789237621512815028590343521075945670394492477664999359135095458355384967357732820933705948146479629652769048427231809070264099539750666205949249493663974278421662531345983856387778500267990531747727360498653767795825594020832763433453993578909399725224365947012937396214900973225440905437962874752207521112666727697174768219987833358793591243197038749138461247473045134974343010446762560394137000762077140737646142250931061359871611603730239628137450639803085741984929725437910243594047660729996736691567857596261212529238212686158550692061472907797830341179739187429756464667679657146182371615835127324686989678350473742394632310021120200711899897580180510002175266704665095585304391277065615184918894044328376436815671691569711557776416818510529116407867456962005544638884823708550475828537884414862689001409144590742201137765196188628283673855996490239064435982286928093312878224197623088590851316411790629779355611802871871734984353648305596101238510604279820380036669548232543114384728535110354093348150414796516576855974552072590275070191711943755661901086497516813554140112850029890872227859439559964797598339429864445974036559463919961914892888682046274172965864959421871803346851636367630327500668820429590009953034148367187365227759687607788841341504630081760341514087573475535603095010898374202537974814103134723988487760992561865250983308376678810156854413667880428306705999986340131959679420745430590371665837365367675174590084411865220080388770011010338112366458074119685946113280764670730091002871613619780938931613659244030110591573362734779912861864174016473117671547517974034858955392707508327219937297548946345747063580418381616816963412712043851236529620077230938154747543736528541859720463700322307063372119497870572016900156045316350308724033839570939029814938065335891902324074992188915145214587772852098432443878519461775918820064488309741607498066668215301510280831028308392051845024647243751230773039559861870275270695089379566490242863242236174603961466044521915223690978503286513610595473754532720814648376062132360436853891576156607568862394548211006760430380484999748201583783673987171381732346384574708327564101074864461591038893809575839960701664397909943719116847646105445696241777991393995327119404496809619756736118456079762940993991109975221509361448946346264922229063919761076164297714534216286315245199438283115188419054429686068327042118532326922712183611127232254154370058022044316315479221674196475539110128693153265602857252425693145862014880326503259915161229641488643806581364706458980614371573732914930185399947564426334717290789974678014581286375502533883403370895397748621680303669560401468825971262904883130180940804874566537400703878751549416025610309881841507643162898980245473228243314628768356564015755104421527053405452095351684943100898391522355820587549447027269683540430605605294726368458859660050177498755244759265383616336311400917983184355245545363007444484487963780781355312627156662181373498137457715877142604323541525017142979971576320607904774906923046341248046917894571248250912661172322035547363729797952488893352267440439118314258908320445045541600017678928536905299634415315870641521763044165058797728545654516426632311966983243964005371461919415635524674621878224428711203491862209891296388635772588843509430541182317728026404337033065734107811244657564702973430375500248926551630359572349049106853689105519064191293514403335144097753428957954642563903063280534954218956054330532285497112371133841100785919672595415143903035751611023353329897385326826835339562894274382908437463306318375108961458045386447865829919754430469918361975611596270370805671673816779971468518422949617340988471958811004223100921441319031272268489228008096218679640404849946197080388512574229017758064356240408070250186058335335446664187722537735552804601893936865213661792374329603112486709305568541218435960645837036310339691833744560510030669724607648288248934851177714555993537012583115613121458330552552075462362246296055393647071138387720960565932946069309810196867031523426931080771628751802937179314432125874054833108801953081146812862965438925624218879650694667796611334325224910918434331286164160780952237969855612130923382871053749818062119091304978582894422972932385884420212964916315119918016375888790301772594609125148755853697716421689045292514424379782270524094646292469228427473820198522339103605362377919099909262951475759304730210462835833931310618243347343887516044086822939396568194491598048716555752553391223383521887585193993899506442682723098673066361735913178057241326803570588405147775098016432254994828634129781650048441737825357089099311125095196651721428137014385830920185519727495507358146323709580952826531759916727902275725177550308474394031577888737653495493284005386208434027419557252425816271232987134063220134512385003516286562567441540762699705491756636870733091896598046090928444965146562020938623987970138433757618098227528685198411782682194926989053395244886868510834089195339033315585306946018653072002818566615006895907776864917747694481768946925983509944257635370274501898765077297921603879555925718716832396029503789283487113317836874171372655076456255836891562232248342959279567260562938001674606413783334013010496858497886140878186069116543582232750959496650690290050569573877988137067626513794227124437889420291277391772515159085917928277449264019883176212974093607252103933426286971724491029403489843954275600369379851567390300712508145486709078899489245414460825772804629856108519773418603230123536108568039564189447063079264476325305919680584677623039839321705197076770154334210750138426741236606258423056109174831391769911785120648484919635344846603882866813574556277597396676856635096556271155327035168360738630429211661703714956925500746766461051212593713919608780967178348768774410630207028010223530738991952041925932279806615910037144836329011071363531173839817695224618027929034197369834184297765102068837771972125865498623478900709944825789802161051299226825687707143637243767534403423640093186181129408812269589290386760767451798380392530576040303366480973785880752944519241225945498363721856043614732559620719451439506841533568109000791156493749298972822360275255242046301300315202392896116612337961439107297729327046303337685671767666994328443776867445734267428520102982733680213734376841998518293046817415087924397017360054718809319402352674281759502512473127828266100977564872964514993880917084574975401217883314240486903095799226236428331464285479220158498625598348635713737460201561732092587014624858201839068954509638870888377420682059682817911235627493143422991106380640103122140689262368433357684179399092061745521394975608137797988361023126791420857018280682408185413313820874908200929392782921929832408874410740080844019766767284687705230171108685554079556100424616525751786714684576489635581346702052626440684713389002198081429740833107316676591871494814330306482107859625138403137533626647024185341717207138485226393691637101401763329236544115440508964918533803102541895773312286644156689891104377284635525189578451785062856229383579727396741397144318803788595790252741093629039107292935533123176634879834402284188972049989276970542892075854004209228426284917044757148199949253509983964455634530310625350964117100752541314104205272615534162302737483710314657628382002586614369044207961349591888792140908585845118882909050873963077941748028968775951416532198638555189426747267540326117565740503306262306839977308341725811296261769675042669031769772394086070375800089249943275647858951648092252128840762324797554725438727692927922982653792897537179504410685907847467611607873925162866464495162023112281040633652939010275089543149048408913922343064546140566225812033746651491317843130603728596355553742381522383882591156752665862738351327613760554340307603984243508802334113828648974619967003000696448310561189962612692436803656995764790229952933059854289672546429751950874586471492734545942210715363358594030618822757671787778515756025162804216375794096646852884772523654001370424408499872835791233074052595212390209366979690151014631907205728002039363177516003124930022681124014943387851683622876339399091480175095498962480506255456588806665567712339807098713409006655121697962607854048916703800196287151678361492004353225303377879935261960367228792088259694908452614438758347996324795657740328862648352195912236914404230781552976435100243496296823947554314199259411363154176431898753604960689667473874522606402526693288193438123333108642034825953176739321152371827638506250069124097237163958979670962192901176251558776291167702738389648347210604625362771226283048918809748526462212025902860214911025021459270873214576730668731870493661649772445397862998281897570601842587304197077407415195195436572678336317914559964508369528268552667001514475361555757826155485276657163622133272731301882145251691167759242401742977369145243301802051765679926292065721954287840507591874206871593990700983225438267153153758982122074458939547275464956881543943821053842529396165225599306214250089815627999798904821982876476451285318614733594572266946760093981708453634958086225393376804102740088462175772547272906113478675688547237540279107533902819682557682271740358133567603591953890570933649450705597998551949169411639383813314160125543935759696030939641105207447744329015900648679658342434395676350654227795352002138921928956036496228487642502843342950262424490282994800074274111999374455313977066285669878851620818694982118299709137768230954436921312333277290594477171363008633821777009567897102539677231059659867732823696575073488026414231857801899461027131793948457067442218812997580484994944417565709836638220380059503058498383369554266649290105002947547371356095581220134555805450124777347645215809214194462927539170630946057930871101174212842997011644450407644595110837927501519379819727924923411068264048950962902587745022001374708176875180341566217676132712403581968582659147589547956840130716198226907201716262077877691804132891454065828718637824054658675264353167039608470887805788716879909111579124195830652234980290854031118081711420142519151833183271589868289654377999277539705664831430452049066738258758919303410036735878873021910950875161327216079724028059253978762292640358864712656726060588424264278135029111230615477848849732885144973892700645996237049388787322392666700065472757133233726919212225191095507460171502543469329574163210698104031886194179439704142178614148232944816175006252692445504363656142096600825223849691528317110776214099682548468377067369813322627193029390428185535566096274232683671749448094115999692538229992675430963935499325723053023311277167953072505281666879200922326203978487543034483732863039840248011738050046165700137799472360635773031389720961282409421895324330855613005105599408114469589210668744871105976812176370582954288246836962280321335804908236548139888141922934083144775236204396477082533037321042596983909453189767817373850769613825035173260940817026267809410362095977482511008553624837097850433558499042870264304530555762854867488823991835412472562998074071138413305482141145406806209031459612167133194985200746047464333361597048160841851878890804759212985519980197254121261010196596008933768892941375405696992257222826553280210379153638607996659394488211720371722175542160541371503754129120231426719278946171812822988339724246092142695438201577431396630959623963542078463878772356713311950013959620094423298618336050769665815018158371463653404092877190592550787672283531575513235797549826259408910018877305130375878954148725563995150392362487457395017311490074984123719741265440611298439021536988435945649930208017310324399231279824220880881282743695737178713540720292519611261306568184398793274558459311285709480056959722288152521137343471427720693739809884069232820080747360778249766856206322195097931846578846510487817199472797205301023688298190690143527952126309701031493662022808600526334536159619995621197711441613267312681145652293016887837036792870053516729425451257220781252431961026111852182354478312035371467314022780006526094568239070509512193741133892457737079093076640274743414380101505605488572478545885464074051544995833169306035648140152918474027527763136607690485253232158848158186335235632795755308881996569899217295414007189586080865463821997939260236863539368020289107756119726007156772130982669577292102145575934509463805730774437557612342926287979944567382764157493865815664566994024757723334390650770021288659607158947754942675380220235810550987247047323830762522661397510736770889068557981696103389794636588495316516292005797190135715128870470531396076061720543102808484936380751037050516270914407422290103731151362575610741630162053745839442253903652019767841398069668833847660087095335029343454380638938628072068979029697762311426887807550773870665287793380463225726899579423750040813122742016110301318183520172166877952650772540551400304571671860960727162579353246577991689487607657879859741700636548713740312802308038962335071261128881995250010335495475492742688177534995833536232601609786558937862106560743148233602640307227614033336952573835788395737625886092165990766836540542982346967763966451939944474136427476340523420098228712105507460040938817395333446739720616835109429325723199927710104040172053505910987511683703808677368803920281808569028696833030106414974310070273219686415891370676074411308743022527017138012079182748769014963263704423929105700397434210581025238740663714153912632249862623952950932555066455639955569062080882323793903102068929714410198303754285785681867939129186556150710113191984561701729829327372273316753863361762252006176519046686615058636007639662972520693129523362752004324088212974078990306518646963662126529024375460424046020423861045371213505616625810926346293097035698719880297099486477293771985074804817121265597891808692059883419980558221851041944073148172093930096744274417838902465176268471122289237745198131399539387216672904564672607401777973233925765499728535599966631028449427909191680326346260166708265084819552487456574379022430625805115417706658953727954016352218633762472750634665405766082129953242052601812985395403643143353174397255171437353753826331623285705093503133148458475271306505934249209894364389580536057364551728719002007240450938327236363496952338754113840148699723097903166053193172912225948560258060273604577534639619755622841841572338349012546055972419390903936265300477292699180811836138572603814777518293904214096912138441906872490941304634574015806901407979854633869150044843150002712385012867273693548003420016319936961631882803423526501696352008226119276871286891250259156896791547622759654152232245318926046416701254137586089957313521170752200868880595145245315004884519508169035758421118391996735769976414921137229491110516862536265254950472889202361686706481441133440748063520406604806467941784668660657384171080312166271059968157044642558379797738791325848999298992655009118644127177400865985321510807088088178963407569914952020653638946257076805767730345586096620798104437680291592784388980995763357383168626568462109250436306941825126628011801700277153739023402184777586203593619188967705704331451532579551887777078007036213046233880780929573494633495297636934792866137058089744523391245264260196031642384768637316099983675087291991638378656409367794805907383133764325882787661950879297599368750186213076500306762102585608925627058027450032246193816132833749203809400950476131011073337419628232200565730348925516840417123499008855621384749208707666484884753110043245947427637689693717177815855377907470622402183312055060932305802054182645996022914746350138411928395947902739039447583341446180379418465461410112705613590624428307797446562238192783676400208431839015079808009671282088276935754290282891777763890952776070704454950485907186709204472302452106353899589299162499756962847317001743537716754271125870646470041900482729676649626108203719790387830226266798898504777320462387804480869965179341683447451735058230521299059344761059288257313878150043493017985636104673226098188769007893318572891759371450587989800103377420510115625637049802743024960679536052569825211321447396345826952496494127756777342765657559007554748822337683653599449758841225567648740243835510205164273439356022184404019673591104448752982838745976671180653810706490429599038885156766504090649363740391612711537305825043624022106720480723078840687086856699383978006289833573266405322203659085392227521554402134039599797584317723844164357164244577331178879130927922524962380479391125759982452204453746622851141296288684267601515475065888522462308302279262437163151461047093924599764779683447489734614721718892187967799345475161451292274812180990055440870654476539613621852059501508935241244312878106504295271541121938866695346644069542811242178879051702973661541401311398038476876758655285648212734339229997730694221668066031452880217571422559347448480585077677126050830416800273492682647718449684270874104167124454583316461306623696561994767267150464470042445897711038530946978442462545791278747210617100292884459512847559596029256568362111968146500370066264715761984976488394474033665414929364396996941072951600437989204470287493915562507802232948556289034940502558669981706356385115264742842852412643972832309094856272025971082738751847240898069810332933092036903802081994677057677698022687607709090502026102421918576963596559985007991770122908707675453363254800094027134323537248285952535590051746238703245131210852640532306948362549920649412568068011452789207700750531552618883778752057137906251605910232670345633501351671271971674511340014674621356900212544565130636768720833938412514053115365937094174198506872412046849274883742351080180982942812620073439622569337980776971161322263515733284914451964052233905685013095384417441134128523615064445464866241865640992285474152494607079394191557055022535987467164615416495979684921723813707108905710771113697722354650408541661507303813209833893112953231930671400792437503466810472758064114406050155743945477369616464196019360019435042721153546359081028323834601350075539731170993160684865281118165681408727909211143361421166821151365085202555361163157153353064933482716839690511693646502645201030951244790736801228660607100195089949656713512864896028992813840236345146640785251082518596160401238811864989227554954808632055747105275791387548401561762621090597523024160383385525788251994822956758830022046508106590292457203975082060928052144408663918392977125045834015544230451254335238934605185497141540286955351920965885569377470356485285497178821496647938467029252591665967416117515274083127237391553392581116978810034049072613522617393987339191226415949942655527779130495964281307538132045909319802537512133358372943315484423855848316500964338894638079856804836514514689978964344243402952286576433719927081442202041896636681419735974360428296825040736087501246894372654683188482374620483665611023732033698648642874274609765793617841442481361585572793553642907841565843922120338205506316548635160392234643841069797295441156088585089698140425585257253583500353964668349729904067094430689582807667577104696223504262591586940601131423394313076855751553009567173349251923276408225530040260940837606301167609320886436594662722540896657439164499440750850538594638854144655704333582982123427204947539993485221669729529646776716834645926119444109442116049195972974351568933399613325895386635937297010000772869150559425269787449026937633294849216712492693814885119076728079394508490414696907757001450473199306670367982148088233583702148621167593649310153166053630326359812314632945242206477074410429700700735362788687907453353082095425668928581595566365575892650571714206085612113862482004604047588136900131077351731507100303755602680196417884628980126460938508291787437601089230469808695474329454702028952311714156597573319306174209695369705857164482444542837859858257208025693158391666487395742358522880919708337381900768574060913247224551957470728668370859619515819070613290797309016926007302114240550536199085682671415432051100056146742930045270384551691245764446430689877981149842830584094122595828274358587328146328328283090838716847345167055303449571833788650167408176338082019321585051783297237114347315916503676992878530117061844538134780890840202903108620273385502378096868534675292596326342595876635486722039268356084271956357631924527791596425058248621973658558040891919398850863490902206924677218547833789563645302909863634999350649416543919468843779972052805819401961760135892779963797766296065531167572041466001913439797360655869877149670014990239749712428916417631619985024260064190578468981442330276278338831427054462668001295952748026679054202989906854467967183799055318210396002867228488557242041807461137003504952777572521054817806277187217080881895775451968178229370760903827719887175512386791909798304129150835584265834459153334776643099247293737304241642456670078383525014183903880216256142863352226753198222704738087148558938554239155750825620832550004671908042007515748741936977754760866944143254848574160311805955391029529961021415018385418419464760909909690811481039268165694810153343251066686011401218771200751381261448153333421203574175580998302597873467238913882387462931262029532572879573531227314089668966797279085967035065443617818320537534487122896869874477108017156920412312655465643017813113265981277674661908537511317441855182153603718315961014440063941190310528441056585527874759681347303438590856600039112594012273639213486531584078829140789271762524414134233548568939959094592416480131416283570019928492873225229874514540602301584424751236041979122112452598996013529531771680516099590196235925124419839249506682181483518481055086030574312847551888342156565321041122617633462510913045437888776800353293758084674667521857945044699003708688695714580312658111437709754897771432657738391741342652147897363876079785944567833224246973774187355498475320825409240471318778405712422532112018462104982257887265310391897152724316735945301217626233740968115244079994973414462140651864934860660346558730073993533744626129428516882165752676900432034845478167511828079933596909276189379968325957410207600025794456014894720644153716216628490850262941404423281787086437556457044705172149738061191472030512792817884660363977092131868078574285695787792536506797935072888477259743373827033185696857352487560825049311169845734474511121721137956712025307475284031325718957942764316180554243992281163174655976228340620689463255024283833942606390985131960953769223156723505398701404153944998256345251101331866779575080115396112209558379805750187680753136832102056335066541121284127495522863630315856081173960084213886253469376055563279557673563344145764080896316997249458124193522364905157788910588576266151646807035689584836966961414312021706581553505287632205194005583198389738838974499949148647288670424339272040854230350314011198051196687481536785728678766386803398665829746400379776635348371529139420643864750652580292457021542658714890069032720295074078963639241875136152510115915538509156746308813985850205557566243098154139267444277862758766223354144361824354647368141738524423847087239650739440724756648233100416244833998349375469492550641141552774848550339650146189696303529767130852695847774534706203478836213022647830984671991095258560508092000743635087604577083117302947673426192471223792762654814467900156990810089390524762277282908252571023970231660787579706574049726142965320368693855958467474126500373319851861860405547864167235347471367490567871103042939953347482276957460778238451467104384302850168783671653683369353187664716128810377413115808070526551301336250110706278523210713734175833605219731955177697899165144552398230536552545536732122004231193927464435402166444320380818194805278842244514434588504145497624799153445123380426005482904558069451213836071149294759268271626407401227375326559369760788358470836778171474014568904834640650116397705547713711393160305525081788662825916989518940078037584327421474562513692830116977438774904765099846836105149992262221357800058232681623576338182220352569247344629609461310201821830038482008061396571468223324294122120129504040765921311643352433500241305634568188833388410776824754861588290709717262142328018833234514400308426554545686114333082958606498691643241374855934160454607352945750062180022802366690556037080836822158691912048456974797068934555792639555152792460201852011785395059303023458220370342541254060807663183703402858733034467602348154750187675018633951886588977701275011499812259759091970971040885505245095274856101488389165630754380534491300524987986573647293367613552842752832595517244085569212172809613387703236694487276873553376504418752451481001578638014699917007762155199760125990606890110024714605886826881796416391994074627167231385998688353939679910590013756282275326414336746535239463417461858737687049032929592716200484759501931060849819800758098226503860011524758136382116336316624393744872850520522761663162641474150623206136578606514495572765006157078996528670475100187835900716703668603616891515000193652535417221864214288041673693152293044340722326441546786683965791313448185390289364761086858134153774813881344210105294410442230886437514294337300016630463054235872431296834030688991093994484584569465992319617007987845262322268178436856904235124283250717340715945455716984065559333972465984688291716773243941801921278894254187198725439516885547416508583427647996968813393471903043198601704830637021412677473738919466279712876884898200231498562206597126866973253127621165798721384683067207838409980282117047230774324311705516334495767028258506329280178362453339750632373927384703822077743192308393149736733634087384326706379783030298610509147528948298589547441074195457952900083675263731164483326318542261494156410215467619954608569905763687619616767732382011805389749649203818843975381936157336472623893794550219207365671528760988964415120187144106101717079124470657972060977774468749177054887018723258531976207283691147524001362209664360314797890859323254330663003052598880376185456998436394144425222561739095480198937496533605096268470196761652108589819082434948190303096349046940345924535792532929016653750072663501208568102553701288826461630774633540540842505878162469935837491178786669989065960125213566946492645179754267850766744767129817990431451828261699014195622447002772747474355166373176108087465980393859857449402885122146769600581574925245246689591689694727922997542707860037217185937926723692563961144087313977048270111538586308213206105298209768587470342487472884146824988700374136145185503958787482880504931010655898661879945758246354604661773822729941642910415727648826828454191772969401569882367777925748053694401834415020986584396514879928734244884236199089424559839515505680081167033567372922826270472334237099474639099803425896539030563110266232630808051104731440767320323031981375108547615514020456746953874799667612754888857684891530333719621954731406932059488040227081546965579186268109338573543014840836714366026759104765569780693716758507270867319266060224018856354205773142645256770976116292364817366249898349468866739266148923078971267556411062480750134310537851639511729701100300740965175684300424493785376778985904323582932413576568320480215266884298604355957609108371825569959837454035974514566739104191641669500430790119917410514937485740746910920096044791495821903251305564013692855313782414041436921180465181104963380613498369013614970494590017983997396138633442215747442949866166791314562728140456680916506431714520970587213533269191977377904411925759344272306600451080072749424271753274033784805816714893333149657653321277000331646376858051331472457810862685248074164084898033438464322764509591115506636719596404828516601550901206998001254087345132487209089280339965587340411334847476726479956011892037980672422438614038583036504837653237093480268421883539562830881710104144459102377451224494495844424268173405150234960230164879466462962756549324459882383449433198733233155681444340279880981903986335991238174069896907076526870146222566142341193494806004700548175511057183627799980769333895230039209057276086613092309324970095737549760430586829572075993113430328928486970213422547525742660611643467960490088025761982503156960186323035012560799143770425556579242804110871575788460035470985869457737367112265416581646463601347359155844955524327694286981551298757316003198582615573759001761137474680598974293936799623797205721148049221593502708588773067226226451540620361422491444529128679610116133385991407666714304418521995653388913306736889674031766253132148037687267291625506110813032436677846908822810072935559396169021219645875192086721583800262085550591715269683205291167638380722547316943750044643693826691826541863351717807309099183154070236473061632066005666719212367296204503931901458451368605039363836397045924476431961264681438052835926093562418401265432266648498721728908379517446819510838169966533845806485479276412178367009695764262588446780941421771827330327909350847149833827726199664993301650148170972054087785273956686294548299045062663455584410196306881801640880946102502184639700769882309638369325460767806631572951356764073470560292567214041965221222437592612640902626283558477699492138920968115198600292209053106181419793883407493202495464495767965673998816115215104073091539700536814290519448325409559790012063337886905351998372892625625018280305137825054326127814284556174900909293462840178815271870397166600856829657791424143528177683934149049716659961183479534749390240566307100306806428240338749288011804078716648223078754277396947223929520503283474082793744620028343886991876589759207299095697619010735928484980032725937822664248650390455623554180144475441419850171725351226757041442914573079589689753506890653972374884208161713311658334701895458542055721219314861134793165354184055668140528568722520322935783478504228739485738113063460971112986319121563640034703686529189466570910873039195192553392118393165093111030260676627762885909365827455969411889600005122323740351994247174216905006492110821282531121453485826453534497191384114533519105639699862247553121521842922355254399439045048500513863602084289026136976418079730260610115170543260086734396418749990430156973780709774500164619206796455805547467656412713566393404712961974960873591356304074588891199238603874459836304131864131918622929715938546260348227400936486388368480850416567369652348734824639762844515353546731905864584346720694024448063589199985620510069099386083213633269071154685946213772625486372429307210762047615553281833172428404457313866979694550072192007188236501513464406706533401353452579516430198202712398886051902549167902400248201373150425024505876093071716838512054680971422275948169233140464781424626389593269086716536052446950825121319411144283796581749734387623571565598007078237512417016633739507385998205101305726107717811485443735508561316636451386925545111869750671531850349587015679640242946329832476736367588406674813670821884827776383832483264713017737530494795563451819068491695380834325345861747709856713302875787082495659476316675615579077840063654697476573130217343931769493914024574677059979771607816429500540317862867742721846048120997852364357182557815818949482064758844286639406926527106205825883154871705516689035343453876763899929758472309538132711491908254321484526038366690245861509653952859158003611122930680522299518614410065582382317892478383656289285211139676802449805699512016422004424271012116475443443792515980144938420997170013178724939559645046013623450358490058472971469517562200930998134031184355129153465024404065320750661605541191999823358482616941381376171414309055239973657162188356906776052582117886148675593287041750579959488191571823159464117569216238586787152962999324793013939350265957811587986034026986737091149770854620608857783277405616467585854072010182660374620419176938702687079128380157255003789403128198991507015972109254861646935690552261422268721359774574633447711680604026619306897278236609388119454313038675286763263972201616929272275243457090499654752281281321695060320237090064216127921708460453308253787472134005390170023922566141870939825179942318623669409769350250166047282281796812662440083564444034752201584880115101562334896672574630085788716181012783570336074421680008998429569129038021021992724132491419098115509758534101919284221241958785917860348409471128345487509972307542708780222149112517993640993272328105161938631666093597700362291304118290633935787898967234430640735531776344149230570752646077242447827167979490684832402229022276188265523326705696821666358979216795103365997218032238139610621802269740327876113826526040510533154520303707713530119234311383629820459802482999132704022585907797194991921049679125186977174445954728974773433522893062506844447367956665352593706574279244644535801851741891009321480745102962158585789177171018082582468717082447644271550028201888855110687117225430767961128048938930252066805056478303364461210670452194094122929036716595919879155907047903592404761792952097122083634843846049676400019937451794250910886947936558702378768152770474653909812797533512111001311238086396538014724550376140781943360102741436938106138204972227225945221129951019438917486306511434505044341806035219682134934178604250628910238931015915556851828964001557552359456012562990960275789357420655710315417279402220100867385229821260814656911935844798716695532561222666960037748019176123701008449132851035361094590016757496314115321100298063733837559929490138999592575951139208804044871165670675568009600585062854756520270806523598071542371989586066951258683667325562108125044686145766743695262032997367346494388175645620091619267101269705519371400542928245430545636491913840833664376238570449418098863415332904099395813837961284915247537853080848203372829479701165778994912064542848323075699591130886195448600112666604567555310606496623509012878222686742680176503379975201572815304591773132584932030403338222778924741769233339277881935568435800557829881826644027619747795019133051288497832088826104261345932069000194786689246864269058122754781031324011351939288941059257823950054157334236186792567529302675794946617798915157590092771962425316931054412085484406052110731276741993577335815843965208363282833735377274292597285592745999631249667688132153630391692080812227584796794171043390500077007040263835473119391819349477984033882387822648015037017310648797357113164868141356080148575402936243483028252599420219655152235814437512975149061419649617396948984622358029786002586856270198400526108642955986757460269260223456788041292484379845193961776581683347944499064720841584869212784688872184317618027654087041572307348445478642638533884153376410585974898848765553317835941012236525583137609656517137128565112413863049892271906157968684094268309297271364715954356994668184260858610579545868972103262067216808065657414221255927900115645252794156593437486459108909171577531058126139323286965890728131135449217082819452705712474233050767889637897621638145507104480325615944348430142408725497090766176062998482456949661860075829896506835496882413216931220699484463088250851805311697003391397924720194231285374345865114232824202766590629243017713250930628242103125833093475980643103148705140819771021997960665447428319533744342625363851984276294209965760640306715149838424470636159273604477534638203849751954351212856661525355517992246565390072727526717713956773834343459869298254573611675812045931644027962112865170440365289066977685713851836913802054507347166744641039372253418367140989339064577175167959004673391954528107980516369690898298476721741646798639159877286506675651688718331730087887383702034779497452972456470491378203866945070700075438998202752628356180965686498068018108239861342882459101656717393045421180467545805013202062750663892039065539265326537280361677353134843318106806926973388100644187096872867448643542219859244778644943382642051619550056981351403808713346997756235422614484012551186715238295944756196818152933246841951612466939779206551591724446185611697158367302500638948158630623653464355829553594699844071223745028345661778061833676144987999362768783441119506882365936601752118184880868999459622128059627860566711875901764887375697338212513335835200205587118606396322895608404378824304946653717476695007099813229098918856099942089571208013259346192795801634436032176673409819015957987611766718550932384519361546144427221890561650002502923251224115900607881004075494176998479250702742809197089262082902623667887509840017609383006471090165205831379561275688700361448350298465287920602666084762799754943737785010061191183627198635297652000900802824536345453731529058246239681842677916325980217294380239830166661842461159475785878688541539220954579602913629182561160377830867515148886060727856936145783365890824991497416982252320053958594269135693683697044913976118784784105461015249358346343010179790996299989641978737043744300545347100884106359201863591775235982243234542554377131994232864790280334119622371129187403086942235028453514298048680543527411682620585597051143161516789596126321437936416062948625890911512733385453773305639710015653046931210302587249325156528583678758301529571950604116838047758139229988509993042926430312363416980628628231616157901128658289938969438486461304296427540823999119369143424807688417734322228178104050608002104015712733972640480032376093016959169819027208032065179515922186081245792172597503966141521188373165016885210324186108996231234545885038235841895545162933596885048981948783172361541692796474948250502421658978971652599770400539121780472059231794116845600562720891092068259451370896227489118637120373846155697155656464392905660933918124437834307747922022053567531558108470682549008298758113789329945379264963894995815133172209764939102807610129628232487375789255430760233194847179598059748327856774975526241116346506001511284613384643199968499894665007031008160691262599810631994350702208879559486158195032607493274081726135668273233629076793593880101897849450222407202549646382821495525215376484646885652479462603201170799560099160601104688313836708827933237610947115305379723885461133568974447706455947190693398812285506634225140005584356075056710507530931682718276597644450107069757717173579495865882735942587325281923000329472538671586640084353170965562163936265271925443008069800176613213197352289269921672794296386262601612649936970155578027786982027131047921003667196515742634748736009378843469901121204231297968300196241992504204841555096849891838531121352160843897210166296747764228641495039453394935223503310032026905830648413667386008828455857123423943211747764396114188565092886311236336939284584403117991862168226079987318002653485164959740227853326506098204402135558130879067473047776709327794216559517013491922899656300676279277336575037845895281655300836144942347056079882723519698209805350557263586100024630345085191146934477846145321942349876625337605709205861972578806584361424036142898911691310593156973679603407359531202620100529896782416627808356399411805598521145403962287016924546079241637561320843037120566870638330782382468241786370014299119424977298417767977153506930080314653555615714352797607552629484316795070437776036944919484276505175114859839028572000486631103001602729608033857772304213154301677040676261745713343773466326221264051667418283059913099410279688719235167018343461082274905167320922050598070442975428670016402782745423577407559859265596998907251624473861492276947496924142072462779665956812949400973584254567915467958843964879294467187565378811377989554850163091548984754113727410691353341402927447823969652238729429251137409585156835137896636015499135778089396021839267943296926228058458003853384315540757875987695593227409324356544043496786121565699075916857978781979164666989170282089295654410256450963538173092036337881315733578698635811470312428031827727220206025083544274874488996047462397807964225989456343589049357148668398752783781946049576758535657131155467248736439112357523011891827488142813637112113302099156893969965912046835641790659322454549503217440073762520040297710238270823729225374780087029387599085144071465437202673775362425371837842483102475222983203737923709100022467625975978992509228727463760466164597889959304049421021895372017157167252156776011443779015811547529641177937750356130350674657576963044816039797168394047468230792242327358012557348770013141663918123923011828632501732343475966247230867431600258231857109894701362400929539278535209553583517453848907918774943509540640884654928462010082441260803861435511234441320560620285149471155064311899180065299267029201370622587636315007492552882344155145063501241735268694095933899427506836538775835567629147797017786939616178242530720845347323688503582219834727850042271842420437931265492151569824744932187456508369141284380896859830506057834535932510934497319893303812575205262993235104058851443041722222775399916940817315793479807841241448814528336843984632545542348291408731616685628558507205377748902905465737494198703974281294051210896258824612216006853833308913945379726713206302974275458026458332851471391381302098243132045566378689121474364391513585596703401800109597669480454242495109333725074006198686475072545909752002273887358761990781368963792557047422231633262807740755217339523153953628039949221464112140236087778387336822150998081625983756848643704598900700717879700952895986974214468099711747053377171719328365980384579167265952368151173687666566587855042634228480614040648228161756502248227239208866694261319163021102144419789625230842414216806536295465264879762176667708497500740800724619630253296697062386941400618043500308597798694359334065018461606032660812424975154395697247010589059091410233642788380620234909440294350910232512616787207311616012078886207822370622271943659745537632462849582102073484599201170013450797445210825174806929392433264261239584952620851402547345467887887517399038980151124567747185749951313569947613935242781569712820655252180016230946796781843960849833871610444256490474063481017925759168650308454279678717469151160510083558974128475003232875990420323411972282356628058263540661814525571743669837099120703046918314940323720024001680902219989672913361867439905973094976165580787249062154073027972788841198100353129654626292593515850426401119060304865624275539306603112973075186230571138178023611116872482127597348243656333198893068967845526789616605531100996434754251089040136540722683951632091742012453267017097828416701839666308040421281770956050404077717056516871815591565830627120745640078459213805574342444608306622055396586414135388321443897107403005569635682560717387545897637484217116101900789427636669306017517922467473622332040967103904182532039177155841776857665772024862311367067070508912634131844231736881978910646242971970554204252585057153589461115097518940282071182003557271448251635207595160280560074795401208298320537007997489970496482715960368316150419633268005899051523134797626268174828386138922965523031052812322460142190811023489940443273684899090629954472584642457673408926544708634984733422813008016319206665600200522013258265333489528959942894688823391595005940636629991387581944400658127494225546147598981176073260086688540842605008587207929605754328871635046153904396604546705448223910218605976334050022793273650241215428334335639554945078528087920633544863278510755138462091074723231137936765753007500113244158513773981689927873880718880712162545923617749629587661209869282586667727090399546204126372933210938484577930445442731300994742257567471054502677710860601433359659375912796673258579187399168602233882311686362774382167970863372586276928007480293781821120515279682057947716051844972147926424859386116737509274626019739107827291653133644343682230209628357379897714844136266462280630901345738520576578461621686524698087290111432272117736580703870688594370829753314612231272414620671718378257350323681411406781511101324099081935518979257217459737223250493716527311481703253658503786440077322394481641068855222342709948750727641363982149557722038883225256217489861987752761595783804211464274077115061792653210015128119729247273520720162691217658682816907171855240953378121260546768704373324106546198747417697377310638622830551045756209078432780593760418003645646317083039886416667704162072121581813200268652004199760453464573622700886076196189044269989020871071920499358803642147475542267164529408691611164882687537278731800985286721163038317061365360508556731825263220419661135485298340567741580785083625041431457430343836843842027235018336664648148797714283903156432538404326950553686327615310360536469342818160678888635208628587036781028957661239772912223057127575586894857804219534200163093525036172349519944121445043342815577710179134428263166940096487797449028985556299778384590765324530972628022745767133370578217840161888243550911315905782351219981416904609966513878726797030396614169701534737860744554810373726665223511859690454078509787333597349913658776365967486791208166776325731746642744640094074018317320899927530133550296077315099898847442844834735257905556343697862996055370283663246169306136377423745436552558056247929417922475460994062973504729176490255440952596071476130066558687336082850560368338488344185552156275223510515424821607073022440712929905894821272853008406061538375563335557965159821803967539399874953415020497475536309473711862663504271033043831275837986907333043689348727854190516589221314529252752522151488564977113652345507101270876864530377539555604584415608449056791260889871752619338876507440315170660238651275306864547118143647986067374918800496157082514850254196130884639380836218058615495593464550931548788007997257498103111521878175179030742177268951153392124758867819797142570394728216331350121411873336788802855206191153869507391926815160106479543912362120362130751699311538119221787474626178426412397355320100509033928130784181112491268191258561463285421206077115839476472875846690722425053549581075114218261951536603814829655491803995399508213782685007160778620267510769712919424542423560511007989036897959430832674929495282260598300912198740443894611005736216957299160923828491117707333941188061415919754515670024448013609303812270274492727303803450303395251828375371065776755931795139234839951682613804924211882479243859173302270329656045489008715974440197921206729661292126027698128564959784664203235410341329150490971190689620788166271194392088282243562627691163338995472430023108103100527788283339228370713134171287660158599955091950903825674516717054350397346087095246647631286990605525667003766111361649588916880891025747138692032570077466730653580861647909828866675981926467678232571517641282486136276164261114841402451843889076353585316371695888822070392954452142415600468979248510728628635117686089490636414905140630910453217877674683079732615910917477652409468909622577222273700883825203663342198625290689211830774121467057498582597446129280730407133161132084565305049480239549786556524424698339057755803630530780659536530958592568787267854780327398899095771663817441284457360767360768126537593893509432646041775251567172757482079812388926990036440338702349009703046849026194806804026280085400433086971525679253984979808051568581802572910728279201182615874713479560088637095242638526257855442290542912134419865080042282732531735621582168786042663402157006705230691964171274496007306607011561952328171246832239769638961255736486319104886435719243487672617018590518713084190624440688149661338669428902798780922958183874543405266544846857719812959329466744402683912385866922041177928387373229524968026488331109854608270178807977450543631942430354755491923874608032415795847355907995630516395502293560360480027475023185910797808379533882078163446689457194520094115886311383429938922613384030271151933700869410013106120477161702919598236897538262475391392511018889333899390631478301556005851538433386457859265781087757715866715878849187528150117743897051287733756159883408695095718570728655858519842825189318124641345754231953261382042827077965529311830156235649846739695919544655139649218744056541364873234679596127934694918545337878633175951967623275713599334413749547338408654603463474462396646898095337681732403484226540937812279459867669848950992414612635466683066595592015143334873000062287876634101295611261836030218850256163955422370306024389865848310568920342769498406612315106816404840308397422108282108769962281967522692660021180282385601997447713087003399074052162423925993951732396772917081613542302503502101169167806048377049662210634010096545133518779374069861178240709334079976779164464536562147366486951292144225008259308471282356181216609377972104475009908742750680595968195826187060552756697262984181419120365707645504453421699908401086449710161558112351335923632142201472044319513869773836974661060404620522477935150837843265410240262829445799344928966524352977929739139765411789006584571789989806994228999054284286415765476285163535408157738933751667026868701749731652261082017985312128727377182494688524271541220144907479480944176672044641524725628827829316872926190595967090369136490320102864378172135731496727083642878058506635816050417078328203240871306883746756465985795570839817723726136403522862891166744596000685169000556175138220850103198232817298350114215449360415702724664973809691078465501523437921323795984747886294450584582071927306149647317424909936072546477107266213282153197234661434847735129595164115421693045846734369124657007780099056319017880891402594436216641210105904172925535141588829768595768526119981453175423175225027185567577155313159430473697570520794309004178665266379333977550463571907239833494501246680432152363038097438602376060579382819115856949199306889411521193045862983393205358526028385995401430923726827964103429093223627408762721299212469167112243344333421814648300072135359006988739022006798681618950972201523871893203246232231512089403700181565155092167116916370432983683725784147235130500832473085233598761788562658439038207151733117722380800941323351182149079141846855748769283729978181124010306598590339137270285234299281227343351226018311935231567170478539642171355356103983601376805306467036715366290284161858473869335877792770435044778307533452912208656901495238560033239532377917567864674460569738575359588277208889957640511101022144123864930899598486578956383609380796000557982377508575601364112566240400658586530161230798765533979554787177460665620571506717059815189733565979824268783369441075699090753079720757449001738722396802152727945567649948356130992384893415351931732542819174143393859802613575642092293976164340890558255169150415374006916830488253542510290826903148612318227577185866368214652505733524610869323510110253657299480008820057531669197842438828723571646200460270041072603532291627549251558910961483893411065830299516606958643557449310477136691570346830005183091354926100126971242062435466377357216956168028009448649286373570296897188485159034614940466308501907580192505938185976911884525642168145714398778023323842866902470932921695639520734287617994782991082282054960174935384158879924121778513225113963104817257513865250443086902289705728511342627723718377708117478721656595635729793770858262997875810037981092317806115474232511075855536901813719316826052098529772036532197510234912741567271123925354288342910998677283298529719366634957609769960421719414379695557134007460267620589516139817213657236288577179612548716290138274186969129932568069084774802477611294470022551205562540945022019454609527720560058401249430829899526506386989645983495876783574097390515765865993864275163338213035907850148966191485386912880731277649033588834019686276108062703539622278554432281920624175004959504635132888350709543605475391450463630238322682039610428884655405127926291746918644022251369291040954420521449502312224868287071722104191557447083601442509666377405296552816120247754811150035433169405435217573440111868984598654444879069403265317458972511977020802791169453626373449415783377836962464028568848690949903618916988273400806704377578650577718071511060046699435126139196775472496020780072714621526624612995141992328224226677420618434246909190073076981369364867348585776793871765431316292082299648206668057654918853800460799547979137230325328798704310586510276629137364479369576365672395865064901481341145864031197617450778190098077791064433940469854016893218542705430907655332536405387784150181456203841910317594161020470922624766467009012137589676440011214265250181083382422809596401975077234351346466567451096164883126401613709090838206431177166510913947988645585977638275952073808894577751242872979691032702305049474931371281178349587872190478560634200915699169270429295426963009531219053591135807740993375029831152420668795679369516296427675413575849116108364598766709512154658289897583375960652011211210921742748682101816862462043090303595079450703019516184917227524422450096831686012470985318158675599436963784522321498884985996077230167008858427610891512118148886698817594342075030961015302604503097987692712317531146768807137212968329402721572956486850950722738207444870191656955284136714946290648575437095428742133746592288025039967769771919760074441643096183117022430104090958778175213435115258060558315126069012330325754065656493239269987601302807334102936679204300840205090298221700491603112155037634645325616801446076624965951878231827290217600607171931797765598822074334494832368803461335038049517832509552372836624664622233350798670443278934025304840222535207985046288196269117939316591520479105203882152295533267057719486690962565661124809842221477894247731985858137074469583280521779519108981609257560053399131317568757423543829265521014412401598641531524967380284460666675326353364266452286678542191522402323453092495249839940893253977880495335193657896740052219583585701142437927590599015950768382030961391023715538381885695606484720124007443826486956110672121091298531149036454928059950639858168629324894335355985779693073314283253226845783641094747279584650574643664441756819945465102758133507988502287390046166758824221407213773169966217442996653375207966961292369997684010070469682789879762434066338257835556634500141158310381473008699441419003774780079858246334014696931766505416174467875134635355619370911050717276215521976106688201681139375826847405134302883190401911955651910624425509780516832865982231105291927382134654201974196326211806511716169394442995603207435241933124254645538269070064670784108313660474003523282632071517918462026723626287386133670053532561525901717849852428267091892557425394058363821451248634271820774732582511067239702635679522010159518510304081339672744408163074901260618776771500143237689521664003442066283734720467818324826056872926545792176640271462092423441061713361855902584448466298718792468662094002955353306752641129267818864911220047254828389996551462941364323216447406553204178057253024177228661779288454758994296281314485590954070721821229903129922247642892996923422145762699128890044975066922580763397017537757081953903992935287861480864543000067974875461536081969334869345716080795154947617053239985973662172978994783540893082457232699257782073804384002970219855011052253440602912025596224077144616344573380596282931260218548189477739140769977492336788610660895298563252814566103319413732995173268564106359062209016257815513731524337232098742471641309843516356115995049454445829554970307158482338828922768765345195786434341421202955934443897398833095646880377422489772514855049070636763819169865490787561320808416039777094777870253621582207467688788670711755134004373936258900951578210569543190256653954616628990581572678674800284252962674007523124145011457330514977448350588401757398208515777109277838173409178499802786702804900976566274989594921329687359329990087209507717142791947857903778364149167630288355555182948129141034245931127859964879302434988568159086136480460867238759450517005139057839683744301921321819709144055985961708288880106077130356210598384723284281034780847729640745872686455933250215492468325625256659615493083418795565809481914490289826222376083649126743964381040861696051956782080667994570432806405309854248551987741532657520521968192697220137833851310551835877441948035193075093274770220064068072276991859570864640364235766834175721497969857154465819525409662726367534913820263743356689723377398882695695220186640886620219799708753191071390617308544819253361767038543123741247332654600201177674894246770073175533217912218966016245759833770414760388895736840041116713907108542173154864128420091718097622520526630215481484558760169119855245467814075843001140942119768035569264998317950145070333552143689025057558824652706432129416162590790649744729979379155618103602629608765759733011718128415578930545294623044323785535636565998408432666147994196381223911439906293108912138970198036499437487689602964472100286597921200648281495520245718238064201635105037097775908316468037688050463109695491611878982644376017035322778763150141743895820743934811889343349674023719628270412095624399903874622994248722953495741270322453084545188501381190681521382609670899506979011194909321513407040808571327131097949375289539854396993864556250653310321263759518190849975587538521282460421392538742246292446834703467877801001154414814712209342067522068769562352061122813679101411189301644336657889286496131316823192349619478431670726651553423048168436595819245315097316677407412626951117343979349893729741166900438716858859922173061663248965652510376478738272749502874602182322891337482918958488422934781834251841385786341830950079348771539668902359788731126377633962847398087094750899049241555334519344293307655928409556694222568675961674678912912177286200076758608774937726730343408038161652839213710418117274517633868786541060555032511538379698851428841573903817801434309354172592340431450748582298336684292226921619696245188358221925193953635955452838677943673949009124938256589431412394117270352747749998320264516608808528274380057387669031907595815944861176491687636425760886865902634449006052620118657808968328717155869046813953516013563415982241894664994499458144035429535783725002574960317176498211943380179789571493910630846076206576027263991039736848768209047616167485735504687718717676625812197067806544849400477943286713675906017963642524594875847180594306062516179249914723735514746097419762873919396155720083551136548674326437753322324632193566566776792971312740538839811423101893658332432149433706270722802320611793490262414994668730844884868448205620891725464809702055342105363614191955260076733591499553120906652054464954398752635629662324285677049948586312079251305294155059728929372099272330770185534231417958457089784376894440447766499859577485404895131180921234876401914567619346271546255466667758336311739321845343961207630534133712389787514479088511258075942397711109980212839969159256622922597186511338698806562874942360560074501445630707404680785140929111824492676349225231904363960509295092962735404978995534407255489288394299213569203308696865596844107173332912573274139048321687628183585043429094165778514812146990224311441149987355943286224769777218997921865496144913219967790671476416599158523283520206650570457832597200287417952818964993328967971162141483641406685557797130122376045714505176803407989288522158117350651652364885414219790277715870746768448574579245422817916585836943274867983939915919827094662232388613819584294542142742123704214705708374261266864334977788369174282720728564142244301231841757465608273848620888703801924303339579641539444781505294901438458597704103249699862830923627343384032854481806285649075134033508868871804230639497388474011070770049246384960867412407588142573933532336156585365641485607581067799595754955869891071308118570279254063594782646486118411257600423475962379651204830817645279709535313873728099229404350288600702611857434751441283474611609093279495553300239919256170188659105983068234054935823449785304369852021104942846986109451207670302661103476230721598165689747233547078191773606754359588474151816618042881257329828567436446714724457730243571691586427688181217654962561361800983931236133814861511290199407876523769862093088869761091618773076086264659788243580347928171381421897640088867209352740424889927425472107048789814298660948663380039632748090701836515914247769137079658900500020417310597140016184916973348731400873989494932004266620046449641253634373879677567196226869890658675460334281707182247322296685497316585861605147477337649344533645218722020196411482846409946203001641796952486455984872833262128003628250847435786826739261266085722512749237510038985288476822060351265062324415990642865373610016187600887081838536082457328457776179444503855850807633913907732052110894584449578796473522172070270738212871400274825602644915884442891311350026841262205137559721075542226106476700345620542238309246046584246088333500424010149748596978416373972914633980809407786447339007373077081033707338589145081443122363718572291601598675213940015265614432064842358274058950510233792094140059031228717558697382920328674369314715411682107115621288608013386469326701535373829959324035619602825560032801926906529575343144682939160930878627176296622630050737391713007348419181115838787094558207989999309331334693770537541728668673679120824530950568521623925080039254998789730805244422475838588673270001332885105626794757064418178499213454161923821515811233986606541513899940138894707443116303610341292880674003145821884707483600719069953946224610291784714437315042283264116757837482570421638163347907165769160628445266206175352673691628766549062457960518156505456504384951432854466933365515745006588097913055385716323973693653618373597943366221834082316813461004427807686135243638907327144515655683609265508594327803412272501322286416628893016224345763448122300184183424882423009066556287173003152264025713707524778030758005243729409606401528162158960346517649134213608209767682527479000296483352662979770402076218602045328019249169958516771987987492717807066911515639395246974844337425344851743060683279450631201828998819211821534527169174087412011725976155221575081561252871548187859635251528191233178273799932895676808083005369476619520142527142337693669625061647225294611532879557730839306740500079994107490214387367905811379208029570641381339357247007579966396798506819546028010102093463733843340863879461336657382631554278864832909530720149578877690271859844975551080852233635401811614297765302415742302680007254245115408440495350259219794190036913990082532103637297217054550586049801506781682900093542679257547980502368519763948951820205276637929762134010648963904240618216624258684452118016928928024261008097941081058554464166842789123896935401830648595869023049846462443817044121855901928423379581872884812351302969921145598815194157464702979447146505238457221703837652427904111596662560300642051560857137201892134182033666983023616497563053286420587983560728242804127481223007886551107841206655531613303174787662056733576360208289968348721759301065054182353985090630742176740194015278016407498211499458516845495944383732522485032633800833241599434339611967609203347016230567680835722021507205399835074209750060075023233590160919225008333674058596714651967205612495569400806066707440345497910334594799515181957192938366268604738467557551978081634614318413276727076759865217846589715360805344038890754661104693126053836030354420213666918851142977227062050218480935272980676514391337109896513887883480457038475613846618047678022612137159624706253740163835712393590821240800784813599516716825025367175115251356640936005148589094705610690498338830046093869280323276565647161330879574626328471245935815419744675304541719995819774214492621561299620869592160699427223467558644161434653997629689663864953342599089298177261335044005732535004471095645713988991255484759395977654223015830391007164794534474465265793944435108964607392463808095845054429468833942096558250779973471622264252950911083114411406037480049555283357537843296949740572582215324185876569329634521245608014816365520977017125024803149932786851974762691175733365824288594644676494535293686755901794696094798966830939403672564686474970295082795408779391577431652788994512649721703731234654144061953772593108645795823999356989522634242868284135812671642041936391633741574503988423138491999267703968477313598887769259427296321882239789441959788557649488280061577978106259113507897900586686114708876148642693216359360365132470713649012379991005087935207233281994365721099894110089357797107308344492293876513441435374145988101406218753773293281051542652831612250850272449631391990058437162071763130365539135729232281279061899071743297805289015337946618178066967338874662652346701296177675925687000128246721223322404653919912395695466323138114544020125470807884092287550754461260558759493445378424059801573707623276792687872702577205738910660408169106207882464329226487260800903493485972058095749043317530800003162630250027203042887523325925130298432707512155092964322402551746659769710518313491752876978710860395158232837866417027449102756904282977149267969071295086335398147423964811720710670051401263173062905642571812523572626396609476364675161887077632342831361705049251289069472027888296076922961703830874000163931456578649754724314059777060571257123237666025556780721942884893282294750881193929555961549556055889078019273723602746323621139843223070756768487284088616408893045676610899921693880516045502586858707378192023340691028278298099486238982559529462659693398735344300263893480838500545886174937784748865290446779242413155775830809198750627058325768535599813877660694920533802697222441209191040233423880322675831001069264947144204973171029965885881240063099976395230946637700766018098864081954519882071772285716635847837050441739027680999298681270424432485488011130001941749529900001034836213557393227162320271887363916515078854325603405970258599417286424469820506766684539371723181450610057562067125678787087052678835337716693662981961335175378021029445105516476953431212718490731148037295942052414241900488207379686866256460611389641718366806658709177367094280685301511044189024086754209565417271543552478668638412462281343062532602607092290228983566159987317982013683701450224650033795039023042323135639035596963362211096583598294000148157681868891697439259522085619791862868901986834049379936522216152323228021262774685175209472297283997988973578709578767820835337709232954929015964696038850444665922197748247881864498582657237617160026372232198151432424490780312784796137447077178939354665175502925216697000886035973294196824054953376512424264088353143902919670460289491315428197419778526688538725665357790778467063805911224765118074047697376941094324958103534730835818733637962906711772637264303626004400105307412447110851526585098086916278735738102220203937979816044487417474826071013732131943757224365236098970799537381350305881364983830094520812625454647595406920644905209940221227233160359900933818644256040021712130625070853660979608096231062545559650394148219466937158967994969485070734794252724402186473822323582267071508279655074028149678359734894405789868421974843516330195161858671590677679269700689094648572169690917975854378774515999538913244283710017792316603470014969083564055083495201245189532414656553991707324513312865821547529803922952449339095065052150295310574519084669770596243531046725735776262800607345741069200237923069755580204541023797474795547174487490573285699203029976111452277783193239337354645823202867228517897588467247018329863132464920858941215007284339194451684183454894373750813442384990530284108861950099909645438927004940545227620272167311734089362043225638655672704929264891815270751758842578929825447889105978113909714611022218458050259629013984177638711276382677461267803541273882196578880084495626844569859886358525367987062656755196354498325328248068374643293232496719706664490678154572786383409806422857135320457770020686362011327719224911448084978261749813377601337936430483139044395285580270856347784318363253584311529657093648279543139095310285607845669767318175750761664668288363870233910451172836911144449216690287424450752705026612173167309763376202321249104916995813117105856966247937486424368784164460535256815347597996760846378844202701319772450797423796825990280160007997379830010595454205204430339123756961051204286345220129826141968891358250015745218361089701278642582199901465315295469051514847534592116633395236306872336853469491129657413474827467128115441986488145526034905708489590004969512005702678536017361311756284024653228392672975910009177917535852592664992379408669124635830663586972359009868845495116401345661194125547588101023442134117574263658521274942687670615532392589570345835638376960026874009060191870942629332515016619067029913924134875497177276263880397170977714960762015194780520083748953098296668829514810417029053542316335877939750988998622297285453557007625659645301783050713958142017515990204525050925819468482717547839805826326940318176809872851176092358707563199516588526753274773890948766678668072082794741675885291768236645100169384827757997975859894499353042734757864193529365110787044275180195666992642536712869609289919715234756869924694499980576144992123918284615589487331592013766256679210930433243279088728883464768480555117092490673614199690450617123609294565841934817960967499344819419881867517669940192928567973166812480067290796642421769509720493400508537352480738261499428311775890022441166813525924431431982035605288742896215660790379679735814405249637464017364337482291644183554470905069466110036089339379421127187388992140586693477004834561846884103034847216749817595315856609707730007174699317083711562942586521261345358316878360850772913333187819416275770314530218433039944584814985332653287270803732596591905195172927728190549226379437561763656648209893132546222758495573729780442749955318422842940235750028143626501173841194314082536727506476127227537462732235896670104722127333941419811693839339368987869674765253177037739433557897497461703138025640389590783832787595187644211830810080543057694311384037629452574800807369883784608556617130254150859837657969216220488620019500888431515592396995107990826339346929079486480275038415651457404523948731271596925867031076468820822764756143547238952834308050553204822753370762083101314466819688319296014713204544983599577978447103268143950635266454386158822865159790813567799813649208149440322512611506172758185171276008418419121220304927019451779774307514062930763219458147908906298260730437620712697660305698452317104476565134423686678630687992684325231545244798087759410730749333426215423750008910150410675392875049867964030811415024206729445964856126019187801030202403770147986024043395312201346945955088207910594972699605903404414604148501874054771053857085272195510901752493297316295523515411270740342700986957130911892333833185733376423985282567486996056049275476422213888936985844400535421957995167717035849889927841981436575642398601665663072893651868433993199849900736800660077752158959028565997117059778237184394486739850663203467939065282115835363208491300916106811947925026327411150771036680455082600930653054050437314955962826361643061742565152173958332905610379565509104883706695411104054540764813668778600656444476123446817868800979894563940898911892993391142659008023508544549501598620622580400646388886852668247506119998467306425776073303554145786196871651604554069341891663054599131753603062114640957835183990434008207290953965377941147748956337419130532336188964269844369384462759679409462261528162532830234251290149689300397878338344715240117637561902234887332462228460487273072060481015597106913603111999499109108832835009993036940349459310562086075848108139551179784750454314538394087252526536710291681626580614392871316161827372275306729519725034736037691521154590931438318176924714052638349443595766944737717153615627168257270882918201825432510969809233665498766498306429370574140070786598309107594265567943674221361889483078588409310325934092555026263251424939038711821852626559305667027889574360926810839979629854701306136175858049375610461956937884694171107473235287348497016792195524752087623027228755467931110221353610205915272313223291840049214409850514580735025646278416249494170891583628499551871235720556447417519880681749470750808087630503069585412308104931528113236439822245323208111756793896329406072982407399846616568624707702310943073221401244457903472640606364665730619891210961345054021129356777567748549697472560916157644985108072137941891886884035133075513082463023191761306359612692690606698596013173197435922389804799841441097095215436341367941324117993981515161187236089419641986901624113243784759747395926748561905226310034456118126495642740668443186763439908370063363770172667257750096984390936448260468948560184315382704188192999985266815769008048075008223819488544982927808824418394432707346571324823694975294518944001095557477848452941157732521025052774755533086275277171004643775399123683869730062816266106947207073281855112496801479404898568605344088903420172649035823584517120021805060355935657049729079391078832898990328714325503499439297582132698058788463472141397945208165319186056560317348296157978967649452654277279280464614463848659082783187235770892486041754408297788720719403315924476504839084160384851686781018603698737805419094701361145355956982289627935576601141559851816616185424129307775561924581669563190168097632206371928665801753802934894266655327525631443223179501759183809182532251784081071272026501941150423712389287978068116705342561206314038651426964424514005912644002584218687976073264289603919823120208225367968392530229292656794445043540199849035241162376226333100647512171241140134545412497021449869989186527339551206691340734058605897870160789396906182427389769728869065815627905270610815939681732371962761310919906466578564598359516799425376531704676263718112771683723255407523524556535230194465322950058316051887578505605971141724646909393736241056784417504236586994221226315568823714869712477443570818274554192204623421608112638289091510912834162471535983900259655108101051239403067431456145634819728379373913064610301770131291996754051290897330805801981394481866845861015368663968972255334023857398672232679916387541882942741521868289339013283563297042627327993833427969972162698718238968724252425750227501289727011571298046653014851714903528261263865286564373169789671733346292868974942298562853216401719929369537873841456775265928016952482638484331446529120519027194918884081074524801646807333141177092878689387158655694401583992683076306813118821492127643156657641115966945466774482890910802560516544978607032332401695578788736613507065405222997702132322269312268775467360868932617229191043432239706721099753869673290634772927692873742475780540392910317631289778894121353278311729158998838073475741431386486812108480458905442465079955655548448994303805897581160393654506874439668675823840095789653225972441321221256091744988774608529216380761509444137213993065255350813617979422071244515698837853668499653429716584709985833519128773588579705195500131977939274678472085262369613092910693702039349633744750841889324702456224676107696035008696751321530026587145402424551152056293030146977682721024310867181489089260573558978033522908110412027036290870885982239879040466855413708649633381226671162261193699537482440248491697519973298083911927152400722242801371986198776056668528555256718473842268952372800719192659481823309057668966423528576634141305304082774635421533748768222279537268622096716712301639506537007949863555520054154663788581818322212071798891908803085061109244185644671242174020106868322668533560752799477304100289480263763448293844234277864706814488470809023216622427722203578759788313895093943956564167029925332554170567033269708707197691377860540964013492598252490902727207448807038951493967449345187345288441082126489915756132938687860334968646131264638123436478564898646633331113227036829782769255190925088618816922212810699554674390852008660955899798965329108598522272634337618672387228871684287344696253546522465132707882164898619266853288677174193031660893836713227361222183009448240716989707323307340429622310865328125574778453340168931213139798431010860993017397132931662934198367225544660309382948209691884213046516099302712683656221442280217469938545519909167299211738400063211537847410477104515874637946045664628367943858892858209679172447877268386020685928553408204294540339751076027874872524261079128702625211176248923882691577397241139309991431170489945101631336688938688392388088019567051068230881387008302046248603302655282508964700168272867806606335222213218949499177444746020429364877723932347276847208265317624102301725401048093701266182349320207087204843113090018319594814433757225539973157061183530132724083191315216935427515695018125681667589903812711453899437182921894572828186000028668301313125585912611836956752798433279275483563655210729690981989488995523625363286725779274360541487921777892338498092192259057272049872293246596027092688939002376165448982366858983698056672802980906271698774743697939487254635415733350217311694784814659459673213983219240677550362420872992165709037802807862106106219744120063974198674836751014505375498989850943638224537688692317285841250360023308859664590986294436936882795399148668823864107793148744623740605242490696868821334656035669547033921221900508036410160402203570208827206463219048620289849302918459491563293440947779031940978613603296796169432191901861115348378369629780076635233986077565289280737543110403724022256013712741262898685481252573881709743380446840415564439602200675778781944215199980277019534331798123725797583000065778726552068884565643769379824192803521737041068579822574675616915199141747132187637179548673002158706534892418913807441668055697427230154273484295143498479976142369704715486773351922455914325013497794112801607531835340003941992219844257008876549822267234038830141960555961741153984746911192086783581281132360759338384735342983366882000353496353230509229161933829258408269735356596885014834655218455162575952651413623208314197994595377721787897225208526460170005502048586454599894935905001024749241414437495217771019523401009023737961901950311918097095342702798129453828347182017303793342022556536326009644656610547607224349663803644139231592702797016539074217702707426762441393009164131148967152548695360676976074194902266848745321137135600513239231906510061221046340500351053291518162509605846256315566765731226084842474533762521796935214672600777575325017627650264017876794363260434995139271570172213557828512023834485536774153577779366038053365984722982427955000322775235897810130860155851498746332990599867368966024123553780893546077132986117847434674554231348414715939992424111465909567282767759343093506280960331834332153030121991762341802546201638734019438916638108551782916297172298294005192455212122986891085899934845183488151781829991741498959585756456076215907752646057387567397501421005335264543908440448080349748627558247130008597502968400752489312688676761601028371540332153294997138960111397709291246541922732711796929101156140400154436923860011894467141243468752761924713211143590460847124062910279774608096966028636285000143526048488410563513802613463786187737961086945312887893601865430134106958475157024279234617606413003638368302106804175232373185907001725725654251568606897480620118478925426511370715252925715045547664959486406664742094902737913583782594368309643768844955041971432324622679550795632866929697979378354169431167323908997306080566621609053221713141834247116999142964540816469502657140552867878870804676128397813097621279924533515842721115504183957742742465788502718978923227404819739950520641961757333061535404727420064605630091195552020553254413539010785197683115656184161587629005127386550375887762641546714597591739295227063438267595896835092827043215338317202523130740726976363689610915359327583558003033827090742864916583462706423592123360542310492891427806797923340224979450779263552851045456294579648141119945242086991060881710994082045144220486332276815458826962883849460838422548969717140529136606805646134857233536291412431883668823825034316234466995012024706570000465040870014015271252095802358881600415832783044004996805615911974486358801789872230449283059124302770208335345182177159407216326506132694625625589298838677287266583690642575105498472096554404005956519950592157184529030914924673300640745543524532681367506251292333415658707591654266706688298869389933422556568750488624135936577363037854628504334645755182578900991262328460358829339207671946571917991866996270358710625046229531090306247614576507378692219846209703943041527067809320484752583534395405854731419265181770262361457156975471831604641135126682054457979564531458179656245917174643457597433317219150005418689367236723644183318856383831511296694085607933567101265495477470337096044621166687149145360301853089257848888189609504235928645289505868013469787419660681363404801096061131776485918944912807650417825510325954048061332939137141166898714090190925326150643827344098267168899847721226407032774825103639151454808319171727439925601794506640540600280687033908183644815072423559629935978294103013608740975646970602762340847616733833949475391854510065672930088038038764502946697461451691902578474788153214558469862603394422369867281296866903876166177528338678438377505416962070102142976050493249459095467238876525674128198037877311530445847910492550309375353495187671133289071506507318687469895200974627955759077976315380289164448584263022443103816529630913889725501570243469391836980411598270281686632702149122202011047925610432590563953759705960722511446183528277777048859091822077413408399590987638618023069435797985811630324819840443567836029652085912008656428260658905702552850006321050352883949853981545346336292958158768201837655432800051519998030490940950482366937519930297802738226316915523097019998540908092396591160972730987564419210959047956556065351139612424164278256877334272106332987591816144142933514156208396034957557904801366772545453518954207366790277434081541840240799743887039863562148428446626214476697586059378133553323893019516305370655880079495031365764153248306772536490744249489778241204644342828903272022563130097239343912545986416694963151161592950153117678252644562991489746226612587529689820048998212007744214618468583312443440421523034296728889591216551750047033524002821562077325943616689416473856522387766233090710390724311085214360223789478773820868095994251181251686661642514475362457699535100222020283128530011080408757148346103106553680045872801294688522178772631965274081558439396086504046601327602795618292381532598843101075446104852484774756488294872719600037451497316550016056093106738746530581938590601288834695185772180839782047065179375197749760381778750797982341734040874069770895582506586579986500070715401175899442795871833706410401580058659780030704305264578271444570453475450166284360847037685689899902590790286552625243506622473943432611945863992573136860685692843417301101691778984929775029719461910580725295376281063450341017785149099449986939531322627995160260554145618979400646146643929085682474717676663648259939370826650596757161669275235161302287076128486107505041340326987367925926674183029171286616688370163538811049020899539243621406184081216283520360706370252744722882971649791084595983773693938270452007788401423472196443436093807906713265038907189103490372700125162438801180405903459735544371792735405824253207480520469156986495817077091678007703869040527741383377907292700592029168915950608376398747487121314361640597854528890000231868119743524488166266776647190644675736226556961729984555926463573659006133817074160502650888554326373749200474412467822571697837710336353169483762969233617513446862494795404861042020990715223071036015499645900907926643907428038497084493028983193826146632135971111112628624743021090471791815030647050500565974660106001825363569286691666006958658345933151352781396950551401756196891767883688017180005300536301796888711655403084438142847537384490138783660392049748730616659635766992884158204018663843395947065873584438661016947732087393879657747868753199088689883390654398740162999344903625869307362048823595738599348659938596021464787363329484205431933774816809800581192184356959578164989396543714752619689754429430900591809196429712810777487221476511804812619813956929043748563727487245415259536218233302598272276326370334283126081030377940531075061028952236663739123047003009550853292955207322627748759956840938175300283166362002206707203044220269229948018382909751142025093157985629401432353066578020356043713740187716862463459809928167462003935993337745518287860357991590462121703032294339639970846848311569250792811442689652887485036310639314552837143443585996122869177667467471073210824298612192216420226534485142788407159871637969706902064928814168548022137579445717307451576139289838909111832141456818708148579136804208685587661007498245692433697478457650832369864423224697776655970011438539181536175767255971275211039478838259760754307905087441766541261021183101824402856298964789534813368159525684184812841621336142101581305129416290016407350879460900319413219368038130922828090426093291068227197626785083066925305729086774238295912056611315310212919060720100687468039625866694218858990061978245241813477673830013649778576534736883650849342704088380053009803567683533757367320771856211649211979287195664911082157545753858792323892090118967168059645410179616248676933116941500323076794080283805223138907160893196688367991595909742849436157123474447130078232841381453422136427875684809975277807211489501483382662730454167400070034943690343376457786615722202776599411211258642144312144126375792052024268593738064790705296917712608194113577926822118405684161709847663823761040749990241782010290813353691962192824646848741761711188260484184125862551565581473106742107376186150669364082038169733079336697937123137509860586756960045521821062259499471873456371675410298334854810885245347574391353918694690691761138476813159253181526804624085639419942034246673997646563234246985665937354970026296227287016515084935723657877477805242089227545832953759678350433959895826603325909689428289670076871461127435635444320126027970368850995964269269977744133648619777298298066981377923392891374041139017615536376072311263133797303383321518228994453160444152826719875855470038690433365449355666093391917767232200865116866573062240962293598524218695092107427999269993814307529527731937874986555531187660813841357448841872115944974147619975056768306101054963270418497569790695304686648369002231862369735925031390389051667244823130928535155632084958305198767818603865875876007927406708249949497616004474981500529597612390695805659846064060456624651126004651359494765770881344502183419389317020235027934420168325543001471879053605518360605966536601026275138353089534225639775048686750094304695361457783573644945396646608977645326313409812063983007892822129469483590891594873266363009306727942170582976165746946206326039901798513202551082848816145756268932824750267407480230953885084702050554002992603388910870162671400993188417312707345157931169663744621880702496786214676637357647379163445529033147078681657183461388643058514686039161309907180801197277961820188942673934771466681525617310901424716813118342630612652990246398409200240076256713590203893632900595999083071099228415123973232704080073976186491041940637697849565089856793501977179926857998131133766949053151728579736300066715207871825843667049448734296305107835166815172727623222672221370027275533701116202462495555280901248569166465439537265959598797684093118454086702208057037142090016612467881907355191606604247464847294327359969444763603235235701835115635124585506130962394425170638427344406128951837023241486163891036807817333212929411257534851043469035420860456084267712935707362151958069351456661863430082883891515985062909486217771298711585276819037041696441205094222644814347345277388728638535755045295289991554713615165108351367016732439785067379343084175818262452039427805055417959813322237702094276093812547841294730102207589497010859546388011410695204332918671355024091484692924363818864781658182932165495585360350515504123703155939335097729255432527546614290117644827870980754599520986326703362821963699055790764629495759926701462659948129355515049021488439447823440819740747860311228287328358748559751403685001731415331134736279037733165764408487389389933692215121029137989318018378054547733065030931290775926481647090734502111664634956597013240679145640433430959279371344114868763593958029499428929584299357765240237261171728003072814954103376616488694241602838327288112645559355828507971528309197112426807344565890847464222451042948964855705065186155468062412262588649177043361705424716845493603926151231939534133453933393902973458778506735618855225555384553942412039526090802372722952955209444030535239777003560979455937907357128444892805201294584685909587098349869607585916788731528520201132320840875870400915888485022133376097545288567858666030466597820343124523101845534565386720016681408823394087928564557342061232741941949170485901101022235854006219786471526786594045219587224332142946339062677097118212052229084285504037081769085765956643303308643376225096675648949307754473436913648085348982848498638932121720432788579744022785863689402306316725447849326839396600262067377024664926335749386994101662577523845549117799235896191411467695150926148791236767668983631676773172489454926183166183294074998912147978760425046715417490826038760259457059996466831363551440113109938413609195879241661342176039925701414666294270496649089236580181273344478327905876338473731475075690682864844583967751015084521449754743675390684988083872299340462196608389758355830186795682363444780584119888649952270470672213356636144405510881973086235057669321837287204266864973498931938292033920474057481472353377495800960301901690499370434456993777390273448931836214436490706341496519772033241275818346149395992028404821497006471052675108773192656732665205247233388500741884395954480570021742412034723809055020194476867405595217728122835775153433194583068218176589439591663188069696177209595995324237339260153303675238111832576225039230249348313774903820224966696985001010726719622551283097444569721781847237170677191106526135691655444357460249765064090117297419989359183960898029460206923765412390841017536915316961943866547768267030718955800823550083549855820386636286885310655100527383736657357785757414519496160204478465652906615673635147622309400156493675304787836202741147529210416498394442975437556164773679377192278928347701632100577930430505649869157181248973948679101180370523703508473964409546812220335045703882644336284646984719267327485795385707422808041063034986696998523247118176885842187154900421529082756176526145841627586583926819631147103849418001133202423914115727105873165485066664684906496241293173724245871833246995060546656470835641598231035141472169898624140280727741522724760095383878546683191197106893238787196375734042492428467185174886159519195255268736331335239241208914764661431954988991094570132364325106481639782154281582454527682787741629726684381099724920796747782450105115724614425914849687113689060750372464026805515787470135111833763132820840135206453967354069731355734956311780823383597954466285951025963542058284513588270353124233088226425142059186699430643585007560042161946848513778724444524031836917648176609748113875377720050525676209813925242935721942278401982927644572474829645769416134104603639725238232441374287672969428704310554300660025751746786047925242207152575737394655583824142789502518226448489404144870443590013367565849873236818751905754829945640746633461471774091052208914365929044017593980028894631050113925486147825899974497809446845941469686137197590768200700470204409689248724438978466383701882217387352505758130949124634302981495299009461199569797167218735956646741453711556035641316250339379019885051638946824523876603961481995091623753468436929257671568369314334273802402903590982325624240257580297417509023996494197350838946276600367394602898729166339048902983065237615209891269277864891892769074414076713911006584650883144431179224396000125014088609057930955986198755236975524246216245647998250189422249130074469701498574086745455174460554797505952814133203357721072015765278159349476355438257085217698428377525235034405466896370795613502238969671422009876409893736806545861068265719224736598436544870839635896283228964063443220067914170028093675769797930981361153038166586899547857300598229516020740210803012701341515395063891394460278858651432340145593998408226711308204825382215869197780376737529489378685611358424541954622148189943513895021031355858403032711803240917247830086604049354004318806069439687549926326983337892815643050794151963866034679814670251352849805785981194706703754323885677907588725046468923874400750947583626232524726937076232064120162537050267919472223454842444961473748636220788100447346090193795441780287496526453157950876774393309749580376760882564117913679375715869131800774910576883189973804369555383683467974803405661046777898618104266626818397915012527261754621665139692027407885847835978861174151706940748759218989259258415720957362193365373918137139128534602053032034127332764082545824042582147285894129406985905787444822152286214995941334003550059853908120118547248742237658072036249674035465722442139020128594890940024272504355448000696040768131118296722544475690560248273010912351294949961391449210733857550103894569697297160884445189448877026651872660480975008541107516476485805056381113289171314534916626580876377110383618481523403316744171372033748519553788733550183961659113119381916443813238983267427318590970677556224065603456272547804584556492125528439869995880754492479308271230051273373356885525255215192856712818113556235621936888835618515736755587011933444014397681667166788712216174962905434544969883157136467425110608705288789883510583299098531655432585810910743478581955213431988336326915004597314380802183729615712658932192419950964506032732071781043086945066023049972856362142076887093977724720917443466795556131575768191545119574732155413821987335652089927888562579989608969374463758057005293857120101058245301221502226679029845528085734580962124125684389494606521698323883796687022036731865057751932538628066110828785517120700118052543212695279163706054655177705649117128267384600930303183419637388311146235747457128993167895647120126152416271159497672533776215142921280006587530927600278578644263216240634050745270317933634755765621559144027642914006523435165737596030875522801591525106348009806673967228868200042686623986781027125531685919700813172676916410642216324640576397995976076062420381058525494822543059387733340008693614115144374740441733937801063149260285665138823424791668001621971992228254514731250038699600841373822246792725050185286890783105754469516694856837462293212003673694403002817878560913314469768182517328292141210986904539362022071699816428361300362888625269026633471423197184573424335061678040977555352390019876671621620517062288193196876738004198046067454447140567826132276424744214496451496730038207250584704162126100718419636825878451381342315977106372459446976709666651924718282791615453124925107070054530395943367708598169699150919469852768676659633153684970943601378249684597279773188866283114817153421713148108924992982269491139907965482199916031093824221366283565658627709048381507781414247205692038337590401424724953993522836254986459411317283035852587253818749412479149875402058081754833161883296663596817226829087669555241863624776776534625153414325412433739711862441652732888136277577584875839230262504443879054596731347025520576250465051627851303829881721718859087433648197201038951315932305838550918761624104721343497597248745674536686896431076304928955463964892181046025157510890206934439040620737281004309827233993544661391896589908071805309263777718583157278350923311989985727559291122210059842392385613891942341143574370125473125057645125716414912508165350906823804380211879594455512567820818381290194921046059979138703465008112371565623240486658282064892297197215215234409818277849287644692207804855750978441937193120690318042555634236155638894916208064486281178196094354340126097503045344545321965510889774794142233453706501927944378176425967035238216271792047845670603221223873986489462771473503267542534095286461896061934001555734693017444960865854966935715316094607329032751983671248501614041165863102612857187055518367116100174966142111463480842404550966731334499116817901588623986116527532813575688826682709622115258075745288294481807595621474260986924937786428411242902499313671289333884308998512933719897818408290291240201787844242592101186293698676123109883860649933771028121264064580847625556380304372793291070210703467454193078453015917325514549915165137653883470445291657505846067961812958377166498347046910279042907339471830040554615697213105920108002409494294846390806080544070601063626702711056419946892884938752832982422583929077783477473625949481972225789918607755854573548815408803890271858563083323214767303751910909209500889431305204087892768458215257486338450632415198797493348404554326397779607148403833901163280034814406235304733623156851469847934622740590811351023668150711083825623540999600930379025599928041422509164747058435718447556854002453327439860546053262920461870884730170347181849982334585001709607608366667634711786720637494939205645678048112685687885292361115151753624844615987988647024548650873379340253866908096761888240727513283330373977887367450146202683445044496784867801078077347193109680986380273745081823766584989077791858722552878914199146513773789885817378447600063796355448381373956501827869953540418392712736759310247147320835309983518615041366280527882401184185267244337524917581274281729666482990361594643398992042661002300183013115833664300835244258503266974527102418608990207104962883280780062793173354041191601133224219255977889973093974845560372669780427788033475752331191719723749363247528519579029961671591129968932894152292810201933605829252162893688812911926431094818323835850336371893148125505881391756037252584047482518304389319793726068214618115956765587422266271370772163506464252171841868739208424650863548021509559199938019277975186436057185732135200530951847968484152330608667485978795166392890251684170174946154859704119973772720148634571035706164419028495114312842795664519389036875275309252855101628054199655241775376971656864622196492086293383458272955995835748696330958106338415155539599829643253921240929835876952135666602328567992553134425759776851845096335128817513804104464984969066614195571279955611610045420612936754481762968095508361292691857470465111657262406854936597596224137028472531605846523763639877150987890917899876471625291873844990465453251913262048614393249426041420021651839236941293843829840432507331611116874065154983453424016867136231291555714445148225605650459631298394552819184953228228357012497467703614391248167602027882584414239573432492819782535577398812812327673163618679481299438389966011011515469740259669150861136850050349262490065524235213429298124494815534199547262638628926723268108985845417959920855825884141228491090610796484374437477783187192799407484304389021233344616408860291238667365687621360404462931302478845814379332427610594920893862847948157444241858433999321183030047004928953029304029447007669486087261129444023511634752763752404066758095957381794252752973815495815336601921714657736523331439371220033135012477147441613102269340140096767285574972606685045425379020476102918374986075061829926132882797956566518423381446554919704836135861777221901355264341513470206696372919679982846515675450009357541448705484888440559951541826076969349416707708289909210913028889541722184113180886436329554331320054734643013562901467473413995999539972767111931315385721774692652735039250415670651269006849674620739961035961577234481201617367375998291553280376525678333054887601277516466079476158396614684340269546124330458866552709202148913119827761545911339810203347670843163950918966550610589074029322506182034589813168967606993113743421550882477969054909120930369697175377732520051051055927080683008149008008380339007870034246863281101121428043746011073806084555036210133589223684825437297833874941830055843001376077227973176905765085428745142041012106630536368778425862753798359752966101270287187760623391353094573383897947688491752578584768068575484225441277807841554518572939762696028524913052030660280643367613364101905807502431211580115952902525353576308034586610750418596576684278932652141586360168003705854979790734658325418419417852996490513315374918214847880691361943522339987280811310741710291234566760654000222680335903632523313008173892854248303447752759171051097639563098978830867125599773722340255961734751926959267198722491473255462388406603640943989445473659779253927881949531096489187385664620159875292555646330672880349303607985664882602435986815811020769117674467592937013851110649420710101520935760781927983427040179229126803023960530778786091709439947709803565091356852206817138190754326985603962963650689076631141351243403950651927942298632237218465322489106683364161810665220449604028952773733082448092392284533004707021429157106666992300485422182410324057114550176119691800215618120224717985399281350839035393394727982219570462625235123503553141437775919764347996612489985562114497326822208059887697435448578952807850270834902250501594310431587133258736806024485206200568011487909315501212336902192150668081799425735017778044871727185035814062138618949708741711938768147761297847535670517092267450288803493478600379101645795635817932102465901492635989839051351351160230128218867555448644469442829332697906016154447813445439139686198483141562560971774127308408699696091257997143240996334045321674310507403494811569711002509954073746787455621424786991363509885608028954014855402397015924086293427079332116288969274882515903839860966382410401738266965033397648951243868672894392905105923711252621448721112118778002108966697439007868384841605115837371333613805189571373993535541542368014557135043170461202059210414333777117489726423892166800150471564139976014647494430793319113780717941803513871577315175151860770006793645659802904997005794628834106293247261125917818879755944583565138969540257479471198766603682833358098668085943521170992290525033085685335810638656188029171822683024550698852708457777098634865681171304539926098450541014722774138186402107675770784401199074011504514394025301959417604287691993582347236377987440307850704062608005750920724347931020423604975330219886728517876508154542032285091676725887428255140788575543267763435342846757535320596695664501977418554236377614588087670134620831128789936869788786456504342286499196372897815959602252401765040192384778114777196668016489464142284993113519966068185840267599148836199850512922006438040492649289204835317603924843136171316434614941972573772356975155476092039093358720678523153104692578886421054262518201895836176225996584424498153864607620272932153281653185962571296714067549459714973643916524413976778369611588885726317213704237571724086538715790952896391584366505584421601748181827443308430212905210207598449706731083819717680689131997963791096103492775596093362130115947059179167459225828812668947987462275316112725157879550670392107647103353636340390514853332800663216835604272248999925687209379295215621529613638530359591724698215714066377223103223811851293337223306148376328725225812018339286732465238984954722897709598637898062502307251093133565637576740677691495827059946159485067322374447153603751881283114642916955045217253669798571531525792868603497079841066231612627307981983065010721987225466813424350609592157856181855350053963508414385898289242434893380697023183414803807047284577406502393603869182173277256163565611233256403714226721113208807872995175539303536521362823044068147852956827064098650759031970424502072305726461566062170046657213352389286431843076564872703365495779071592292046845000992618243469563701728530135704173665716363527860026359253242086166080014813301115206938086224541454285711102315788503413728319714582174396920262398713410503696776214819434827710481191599827055293260967536958038540184993947447565939885758340641816664889124053079156253744372870325777862675788724250480582987725430495338760631469298156049663650425920775894339197421240850710474102116924384842765399130488568906819119918757466733142789494371592721439406729837280480704505519530491033257965440636333227307179529123303995062612310516336009410392458405692417725284386285637196789750102819710226661869098458024420991502297870572589216953666959341047406855014808381463722700138722948058389247598024055191865070405298099254317386539757432648331182845261634925859690040424678576597234394812423056247401738197008618771791423653297513458849714606799542009801433725478654128809522548341649802388238152439197056147903689797639692340865004975967903474244769864854586620053102362355663470236281923916540295273718667081983250869090730268562739669381063859307545535698131582520728071343328924898776243519265838495722676159973096811849633370420902040432235975769281296768960249997442307277490065756087526759323513876196187515415207818305239922485384421965029349561234790327715328936980729138440953743296363864127320140419856977761684797424476823816503984007789963545275467172089815199927201807657055188854201632054706562724933326004095070382892972736578876643689529625003539755546246617947973775262381337198755871171187723896726582591740740434936386785453269467340263430526142361560669980074974564974338854127058662332048418381304256559841210522087483104095841569501315944899651644383457183343319426328649199513778622210150282701629556841141136377494183520051533954805425306446102740731286789603146670163757657993146936393175110310640086589601848912207638598811056883038933591173216521472331264411447777519914793486176725941559045017752993446622750235119981305377419591357339290749751396593327771729468240731184111126814520657344809745240671923484292524434714075061048314908372176881963163607129258907642707211791604392468215164292027373846550159096125219611544238423910459721788781553695980706581474246492882753912441924936116169215981908372294392632543461883481955771446720795052147308945176029388095515183080305356393050272794366954660898192714089090773273997279743336186040362825778498891678631966656692564947249024658363842711800787741958975286167631230704791608970691842120210557831909644581078863786637297139138724409944514620440896268770886170135201965009893070354014507147053596274881579095576172635146969279772974708369776025586421019142569833085682382805456279054379319579985609630704386091988269760736114100153002488216514330058781107449809628786392073057425843523774933447350034630670962995761337007184447874255079733920994389156591304965889112588229472214008745198550617629038440427322529558425768029660007627613167588356519504689585638143488705261589941496869798042457400946266177412765174104217174803010150720647723163963306418797674904264378112549478420372484382376289623566255912374752040420457503588094466134898829961321024355607806581861940020801430242304356057915240132777931325026101959643204803516081195093452183635645446719782331388071289688060880618297104713374066821781520687952881477357447124997304853113972368974061037938647194467569902708404514319786560900661392010385477857343051681143659533450176546319000317011701049353065515849692950473322470065855844337903578655343986977361654484901634961876230963857735118585394547014448889037001496374681761281952039551047217997062330109559503009371236240975716445554587538842215959597058222052382004789888479399615171019053257614403141213710386013867874323390008346406746983670880923241252047017074108761198826215753835322332411316842707110993007935735369648396998878926851801410361174871674233322393091039132986279779053051762587898521254766169348172174265637798805481222180309746359356981075341377157886866556120427066343429425542739277228484654651637866872779662165003699886636048695283157351582325946412310881986188602039412118514189042418878978326361444224297527697489034555038022055104958873572615056738893637695133922839298049625397701781267062880998665821586704097391704941680910807420581193304220050902084861302495900740441602820743803155132836778447022609783252407397546004772390743193420627438041796918694272188464576180168635890221037557747331698918557941719286809498273147964422126705370069355331654277994911953097923829195331747125417759703528725370631432216273183772674318052039269592021285717420563156340206222061300252472594240293590292966465739842155850596002341635918013509259623170215526166999136619320639801776474736705133608884057461445126036321735736783304673660067631252938822417471142517157401823161752171129500081015729557055317078206289536884528166410107575400034576963585257525302253871821569787544319223903123152838968226974374693733007675072668104988763558644341585557574612333916996798999895031159005670205883265140996357023637904697921506145079547680633651387264842260123752183443440750672116287637757981274898899050163588503173195013073950417503268064030372226160046808658488790602109451118720922641003886990909038107868154634109063396255691874537467298320686750806417293357323555861255208832400067368339920644477831675699832066506487037540398103968129170592180187783171146851802540099105980726242804471635659913418445212559678330374829635273681032064400660171370053406625464713039574456270744105707660427893993522893151808528956790215693896179913219775718419319365152877406514255128286681599136159000571272307191303338340999284504539704261633419549021381286150867983032942387518844530698861209223828441245159478873844781236939663543725218443241229226787374948435875412595671920146271766912418009182323769501763389603749453641572622256724219845317358739204721509934754929874901972468276277640236193784229419878274884913458946608316449932440316408030225764206273503406186076746537717439086050323132467659944193480166126095994607638373656573817178555649409149960018231151652637195606929196457689216913553424595190328257161298215543046039940890700034087796542218556273252697413518660138465656216058536676627149681084579838712092528828986767277681392017041560067357806370575797810319645671170560504848075479755892804476504783677182716242575415144411936366359173762636667514809744933332478057592464575112776142883806231880021372053053193256990397882611974444999131071765462545855368879933981218495314024732770210540636630098615004133352569896813554367198852607968640313378725631180240987407673107403131259568119271592862788150050527594934960180393989110872775747293572129206556381252295116222607476552772371931776978630315482762890578020373961679857723593952126426359002599808900228160841996259732604176934086931565146752028569476271376855924266522116206366863172513722657146021659271329140574977282479873961082636332887311629668866317886850608021706258389099702809168827781986610282459162512495894319406425051815712651101015631613809423755332184136072506929063242980685836570028444732842012727016107546075115478048751829197829239028713341683462123649557270407640167513577213677407674110686889196824199919687348126487376681364552457346074783452210254640951368356774070322527431478314554754542347621792591265363478910212165100354292649410078856688193163092257904602626967922966558834660526892240527869599532409496343568270212211881254855110519996020612611285719095966165597562989163758250618536938853275675928942729914113577048219066243073365556314918537762230628531759938116196575349279975236102070306984280975077035159072637342617874526073095359663308369793478087314697360215578050644477621783888275397537163638979775203704013986271618124478853714884277354103770405686648077068473604699514034501370496164863202628269245917081342403523242251411388057987998934781790705479137620958441598646500908719030850735028026731038567203645609341287355900382925199590199491742938868906653526636638347388053848530870778926732244197395142907844902827964546896611585477915417323459915634394186611124506057373653103296568089207474599690186493608131260046981281955592577715754752562270061138419715056606625529984735698712422803592872070736406401469631111189901072554209863100932203362673409412107161161630056358537944151581453403147967804859602108215995813286957372769033454186879423142560200682901414724826721079436219802729491815513806720259079292058345287175474155058418309223126157058953733326933075083110173526381938398269520947816603892827616762940291095196379478566782058931180701112253573923151775808219276244284439258858320879002692942184849297360597109166178462194041179439583863334110948611218690951828292488627231510186186985291556275650863713506824910389333422982946565715009831802174196927500782795700831884436987797417718150295035901493613119134102989712032736492363358195520786698663152086133453700067422002119216982803070694836406849410500389896928103774048680793291764625652331959935137847836769201412453418081656896159126117658244733452939569351832607226158314505297771258772070239452662306589228222688557630583554275862814906909861636300138338423321899070063870311360270884493742224806419550112731519079645868209357808184189780340771102533019920276695257249879868050266930808944149971652373890285560596963540301962058561279260252389382429154081372394974899439458087810349303190660309866362628860538074087932566669026522495840873091143514159289144105370718664707108297989823609026031141009562754622410723027648237330077431040327740220327145899528631161289399585696451796457164178239463243201900766648644365125644844050096042484895492626855431098626056424229451007278060656064287542584665898521577180625050511158142009284874847918501923695870877383873202291919276734381047232554254269813046936408309225305339469547376006676692226818796824894835810760692715236790701839168384817369147712578156218326786458853373244791304594684492738066769211079576983468818846164933849251561078410066694713392068720511967242675340534195499686419027769520363313634374798880932052204485849415792264520708467607583895824308694366524604698294059751100398274022034752953168436064866230605257782319008324026629461548531278647698134598392078390461339071574882407660933065372352132638315861626613118464341160388622834411027542481471609140517970327643907892607768269150495916778825361215291633001443524571988099489931303501795429210893220616274828621893441047322818843776671890659732116683451883428072184529900488309106354177553659851402962667621013550110704400140117021072588654948188636537643359153436824861457895161046561101665242909389945606202410844196706300332133474918517035169521960721387063494584422716218497488928766995122380836695782318566494960222011769120733987945474319638468913767288948308423205861319922925866777311712359399696783201318633402956612931968133248830069613592293618230013452151341374276994189475487840653110557925684642182645508592145617330938371607937940951606772956734187194018825058461010772193496189940932847796301968096420305034862714936703908704874998051097984163773031842230965810186434039217947214240994835194680077704396286854981795670377302192910310377747033332548907178150520111721178958470743357248831554145946322473847065845345105921184077013603028851686316720821154800114533086035909470501637536996269462789557448158827331171030296142109189421852823567292989412552605338773978431651185573048791647412126670351942420798077689380056898556988459163771262270747594455919876018304752941317940250379486031753993591723567456522832612724902430824832791410132206021702805824057113493618770819224873632620477890125040380801231304923875484308910413083088819444957408942856736826768804740151518116984957578322469877063224123607683614880445573671985106474687326348114470183469440087264065955670277676806272588747269211837546649184221295276725595567552734628514648124515413587136584500593660102349955204937592711754271465009868360551092800978326902871665566331064616747244838215341032734894248364644317949972174062217986227218016059597450522337385907625790708750089808260857161155784993875441335349638778277831707860814280573752892492691358270837918321753138822666024371534664789379747015100342019951757881079878921893689247494464126878685679170619384299913075340362053209718671937810924112215931973370970359632412112083699444704815601978580429463165905346497486728685698012836076896987985710651615696218279508337204829395695215943370351465529248684381049909451970945597892687418271560644050528305298956496528099385637720129673401692962104548492861889750924966903217170817276503283656232682330318587842834458735772479928820089098149202473116848833738945546900606742192693621182290604071798207468282098713219337788943167688443358672762415703833522706574352106546054433493891192399658695475574834040201217630334917713443562814222173199532622771013444752813097947811385237409518999343917574140101587511334559353589403548283880065681912516625354426895382679664226689761895685668847130096545913554296758372805528450547858158490749653286063654190768864454373511939198554652598425456744533507648530208632784378564879488685091357455701148936030069971356673009295795788460843680111958411639991991821804337153541723720679022227662921460180747373621852916127732459548507243790853546408458371969172605069844434473671715908096780344478535916491215364340757807182998541307194321032237881409148828229718178033709629156295259447537488763163941130849698711071203664270124710856888536924296929953845612015135861309454870483555946035397640852632883515576267713997794346380885342319586262900656942119556101356272616237933977768010053981203084028870139846223276210175117442434396126668058726332716839768920412065502663305037715915290687921031810063993728836174424378063828493815172561322533764522196319165702665323189413160101894626530960752006101472757147466437711086160806111427226874205081191382487965464622301194588400103120341993029310717178255940867750871944463802007950005428969513906476674280452499523843349247298213661717376669017609759596819510996637391996895182177733642651895447328089725054247708265975163925493146173522992846159749736460769232756956431842491967326407044099729326182659152086200154314038506093754752926986507799743831141772622559360932898977579332157889702781202567564503696677809725823920288333597758868777532635391605025852290935832679815152947611075263648530875343990392436543469798859879510928490548534215859826289903311174296452716543515662871482508722056208282157566448548271678248912711603382267706647551059786980200763241638202935809641711789410205879328552749879482655957563592033836318504330462927192638625420251841089680953094361052546816588052489054181488091163331528188774533825044227416410538350939164700111905249014863973845266345544110422216157240784491623120852931034095815131635666992208929735569530910927837946959986958615529573460962841781792767354332485580775312827100784989063817712440750320491819931418347826598068250806125473093669030009648943613900096273149232741215459004750726729656665325019959254871117953150390531047328649792271236389291471915218968076819237971859253626405115342686234569778901737090469383729500037680960522259563337916966135426364006323598715178655389274921063843045926640756790545112508223486870171408299201584959159010957885855830752602157997704934092054146591376228135295138443741451114352724098914747407549589680898828007951545792766132629107203977735113755707144488890135027266838510403877558957530490981354838349894533845462961398615761893154929929324336951488496386512144118874613144630983391637534435176082673010661668230719704399729321030675170413412938484711951949122193637925356039455172201062056601619090258012654104498856266916998987618137347655485813717261818554942237629218954370684273759059467495055847370763617394404648807206111662758653595469910378023550389511849866303619773006637896537337242403938261631670824718204364088342851646565773740082416757129085914091933088101458799059156081853136912703824570253738290423510353291373406617058027873616240022732080891980934852506053965810948179253688496497582909886081016784003758063755786037879612293773237701164259271558708720349214786015497268904476134086115255050671997115830210778407737820513333607781751086600400533931272560281008190840650205093005278739969800426289301374749753814770547524961664974049400182976310524921788850022598666996937350454096669279109031070253161054020413809859350095220764637362443409839321844219284650053322447926385671198376363830600910159285644192019431613729326683348926170107337500774651476953159275176637921311218601916037773639933758007909602707273134438583091905465150550496206609303601718364013985814435961762444170949832746799374535147106501881498913828049252730845188794870353624856537569736468079327326825731748478955918558566977993553072868142142346983602081613687134803317716820506747626272502978537009819052892531127866534677489966625968779995728262575864949489884589809891577009069570399163594330432174893186963119863432535885676152236210977341391346922975482258334836766518925907425998663396047434269381816791491648693146088013487160952500277470676800928424107474689719531422211079794405627489686218786539319725670047267761088765048854158774222704614501161438296051014898264576136426246804048349425033056292829256309257036301245189123387152821059382477461381990701635440885022651762707452589793868191007161788666032743232448598047676052267718764009405460542276507051514928876001987094896929563080513128466211871340791201581154265763587249641464596122635175021922668692305908532382026042789819879842866411793467365004839847703065520748107660571257747328260052604186721788179497708636191679316198791955068557397535203450404945427666577656778013786228353660091238611371870574344644585670255713853678388046338908486712274574429212878195467771579034584632705549009068328760880490341926909170405989455490929682263914538622782123916477424705922220979324350801987220595471100112605238789728202126731196583611995034178528315933265942325069980102727317676856621643511949888509661424294627954500472343883523792393807959970887080797605988141818093646287392612616520878282016268370348502865775019532084848246820244000670014379453228886379985316709222575087190871383677485953720751962736161236505539148023733213715835716609679793357869443156275967445371536645334067677493958458383587755507492925692873366815111253611785509619295712711733866401476337254830731632197698720280404764913985882778754798748176575692770272173317395952248996133635732670584455612765931408010615973527642857817003086897288858073488919136786808635772670831173349160334392246049425890341857363066616071845256601275677245353455737346788963303923220699445804372874537354749851873049677450831938803999601685722654842525149999010253082856759375664796472399919184670038639416854138787185150510907308891254494843007468611131055076657205565762362786284978908731042706328108791602788084677617079041117091317537059529349341168769184675287741557358513414685865585164266974830007120294756165284947401994437884300799449946867178945554470817866921379709326111326965517070418054845039941402740533112967311197066398985660537302833460058036994088566767622339149901522431788598011519413428862097232513338897222420329080794678750785225013783874296474543345126120776177356359839963093530593939805925630911350519558176739195221265012322292182842805583731861357906954154069870327685474027894645033665299616825215203830633903944119221233694361453041758798655408532048087474719743179322995714071425851709559745120164622226412667788160477937477144015945353657182942526515792822846480019505317493023386749557042122939983524252907504159977712701105495402715553089644437661250198808992900030688278430208461598528256752508080823071422398552893196297239129798002193162288135265017957313187093373147163121421897802670640431567078081015321086673400867600859931878714399749536449807161697423068037444120697795630904770711520567740233999404730466869045069821592524183307589921425837201162713736610567977668096745676472955674542404022771314855050530769920835213520947804773920098519825647310975514845432111488579688973739782081254021626679576147622839077893181200451238300261149267977475824563854284516147589216697515721876884717514266105179728708058942345688525374199744477361737329924113087355886254397646571358849867195988493766478143573012084164042291126402821749757509405897141357510309355539809891184093051492069879938537990919963512406361788673831238433401058693918141144576686194454777354865017769016691731207250748709730030396022999517512673025101553368353329306358399630407361172465294201022939992377592053592722866147263495122664824559854937383165236713740284079303511616152478510325011716513190671482038155948892348229448180533415071781304422304846623280552907950794119955535910726473124584232081265110825429924050323610256211253420853430867030517000154562173821179443594074790933983145849785869493690838286028836646713965256228408809247653874234751095634356118650356544225599857044345062517471768907922549771634448850048571984808657269117557113324563174916056215966162386702568579345108370744842665735581878139257056803513873644203396624527146553783145943146320065231439152409897784559286430943688558002300242594261473688716207156929202091623721713609775884620265879326485845254905718890598498374439255735451546597713119684127219107138268813693082340567816120545279140168193217229708639414870726118791819744767078424011010602808219452912572067768709159649764938566964099293756832974381676032231886913190528606997263168697779635318442993010002577193484063266737138721370212983024095834390846983454631808634919494139759035457634274828742382216488134879124393959590750298064003695784160470675625643126130465541170726336072453051460564148881541835084707250888462971640831759568736967335268992968539490026890359796102811683799814015601274194197395601020600825067543625026701459190591625514100246697414504493390639248455417625731903049618961183206162623139493419759804302357918012276174859336955012111666853913133076400674053027990840067631424358167687215813355267981170470665699456193122103482500734158773821540847557375538236538164054613218451316426919260436123421584275875374330843865915482732533299847527253471771664477570475573733482249966771919167818908931447091888755691810563614386022679828126081697242819858552903398259354710648841077736343082580638668229517502264357332933360871363026803783303832118096624562653188391159854814375215949691571672195415931435643517939774443962489140558200216997481360437974075589097519695620662686090405082768634410170141610424812202287429283142698289453831350905688141301568301351716336008400656467678591570960743376081954548160173875723469719785920372780435151822473162880080720800755512256727402431752545786929688643835725451633101606051673487482596502004682299263750047857149269484581265951569371912748804621111655888073306560542451460396064280327950905843101269489475958887225288656501497584828831976869576415329124549592555192566886490312934302554303424597315225719150083202880238180971193477917992921807999713259153555959606945370241259251691542340445190293865668308168906517733914031631868490984763968403523438154283594336335416335115818044934318487935657462436168025772959887728890139149755660499960144447832136755254463520917062125189891690753272693699560366156824228307934369814958070482626984243091901058981807223576146459173657120259657463649266425503240936365489479500125445400064819514779356828973298831445682203424700736002578967059404247688489286948823047131396522035783150101421577576327535264691790976663410881407192768449065207628669759732363547518597598004495063406468753516688367084485575607384193192130133276392283232060719968269653201729190540655889547700380238566478883308884461870045099507147792100188805291601074405545860476034960062206927074319975079859221071417140126578973084131714329656328576096308617511310125046623728569267657586698351139480679418884704827740208624353567494795422857382038904946466539165102953620752583603674325054496456595792096425851671256514368574315495981970142611004660234658042011757915838209324337192377305631665240756531411511492170868524304011572783858107971572335474552942834006167635776338679891971341497635479211795161415424019168425992776397289802811670138323330745344400857931540042331231400427930048385081731893521999752018598235729542442230733473506393451825530969762861143604973945689357700509861167445553165990102112120867921102841926647452668196149384279010407798869637098585352690196240058142729882788977735342060215836931642263385777855452368984913319915698514654882042392392950581823862531258029735421135016307825950069096008100429181434881513388755499988664533226323144806767705976708785416066311002992270409543203211910265678031008217031799587236018726597663072817076299875879977231576806129870819171859715856022848810396951452842102687282377317441054071710588637284981527568850779242422333702243431390527122553101995005125772074757738591100087980213969262802076352891098152492658470538619562722491195408036329684446998226360152253446917498696168079117409355377528259667546288645646095451332256171228165038781495748676317038686085773523500225330832044540283118222781386406233916021883162370699585328262290159298440977051968499254270884864469426892111322003194925053668660669852082935295351820565153113857889710466423920491753866098164689906542624264862509898558014435345386400062915914385100715664867423738506529456088710954180734020078635438129473444763533802207964917024707680697290962769354290005774767219743691521480020194928771071418752694916732532674507776545203631125447596076829290113855895219679311617539470878256447058201333380075313392933482175967145400756573629465248724470678399380211106381922670915062239998560945634412129837293147580160454649085477707737929600399946385041937064762660267229653237451500931990932988881605397528285321169868229492551337857462818847202246521944485363232405135195912579525761171744150834829099834541282969603608371732480692210671018678211314724650731084651131096321353056554164146213273504887373955771605495300705856023588392259470331110966535390423579700328469503257564041545801326831410826500225708043114749558788650867195752284079987374943891438552219387407000165530776697297101779322610326755361169237682720912746025621208554213459460369537048796808337301042292300296571570217276843700498395256584969572378019043157784491293847566208548508382248708824642517926091736212659928032706117164339398553694231290570135241190917547129638024782519883382565104945828039949636119693390369844576342970211053087248869443452523744985115069360481036593604694935871065255086277057166001201755134237932663016910713597609185531283789976382050577258961846285740408556639278425546390197944831650435105807365830255974966031391199819032126636583898222942711546025151415543194978969464089352668332094713305210526383259670096053746510430123126941563806035920342443407041163322770537707036142388736798677592045374818172815282423111838625657007107899360842737370650481886700531121230830142929826474093672249771807335024404239551066059057318477249170605817843706818974481232042370165901075556435442767113990645881789248502255079767719514590147906693929061930102288844980267131327536732835277355226175891911675648045226781904068947736159427470306872547982681092467948082345581863105006497434530735076436833453653650285680885171414049464782336602999259790763110868756779375919977794767460132492142024798920991889430233795645241000791636011984895347740436181883429003677734720496904684991535385815501996513457074269125675583184946928874426110479328149357255013507288209559004311032680416399328406505642499157948286019795833753798666051456086520707326408107341601393591162573357580884647904840910462555671888297410049318752044389887827170429405886577888414743191048090006579933960556078083168834766348037930746895534890257083883263347656795685006449248813219312139736855823543619359406378195813839717256453394522717580237295397550382121843007916344658004185740122474466691521982137965156515612561125857438155014151389645720130802887198659721517556714438342629506662945615513324433844383887585069800756433272614288550174627417325673311020995116703906839025758008845284423337671081623596804757739411407660103152129153344150504712580515422560463907549936486901635578748282624966530325023820250113151918360754935220358782530741503391128289321363315529394286500152094353128702897694094247532514951188547496735914193690089756130773903080735053639224400322500643586942862835957628512773874306046029582875324741121301934504886983450559989626907618291177353610710255465243108992930562992264721896634834477582657488177311063395077545555844292992508034649456757100437951097463684069192781790456771559342936062863575540616390260986661574909983425530147572792168295657021089299133773399201262351476048979959957950890927098089566798090468889578741282597262072327342778236391614962708191248135277309657120185787556016558634793386043618867083025965908288896073793887532680901989976889420671135267073554155636545636938511432586337315879348858289629175564031592492030003904676947930327345948030837954748000470323666417910735232525875038040001693685268267260763773816955657436538846808323294052380072682318678730817872713806477526504227086792713545332373792503488699307993155578280761367874508574488552474743575935146938846231715312851964242322803047090120149279688046491392744775972587015286847752840353403029052113714441312351771682846658227442306431652554716591904395917842765572437372544880707206413066718454283810522371292890020319735001612305459670525457389062952825769901879468792690720684184851263429564726021348533024777870321944743053992269686313410104398055419612109537407746519447873572279175519036025510482691444797101231962967550723038889152642392882358499983404473929912223804209861167379161966971827701601620552480534918044080946496927756198226017180830322870682952484849472195512252008828585166323182104334355329213306092555286614434487565718554842101751217797699413508342579322210140213406011208219912282323816266361550567303924224310879238379121870242408366507478040530317584619910011883541322720917207908836395548681110888132712174628095384459403552520782600711170100039505881360713259929865322342361215667444975049665650781148608944142191714115374699082187465208551705474512804481795291875760584714311404511832158943657452280373896795636688681091270772074490029262375056609572760588426271074644745373160437465186159238510486827883293510034514677160488006543287870629509627675702219634623433310011403484835096110770079855467634190152989975431752773679387062928739614443709215498976798456605797057065137288794319273678693423591805860134840184372632630247379974480770028883250436207665727693096442327583815091875576681130241600871463979042868979328319533165502079228517000515796413965572355489706520932492486566572612319283700881605628208678109453122263100646473346470045429028854434865768548083343467445813781686960191561671350038766475241676520680126239085902076135883587049466096461512775445318570735516605091272969810528513097738736532312557756462119929259697119121067593514172772133244324409619287432774591152799726713572091182133821915889767177027734209034510505223710128531056643028981201169432680505196378388714792300055846299122919460307367997204995754437715500761239983733888598530619614207347907098054312884527455034087894221336047456902869569207151717339113335707673283032627700379241904900634978500646193641616161442742577077011315796699529532175114579377850664511504292099333120858210902875646200961360506130080465361755382762569187446076171663589900955284208476857484713193212648058711150879456591849635440292151045018406269050644846311665140885234024087407929651605689684584967695821114656710189861483031423260168707785296254532406008215313574761259560036382493990389935334207789373840266871218497155619804396185510269161812428599725990224534642890883149413813255259715361966936826884421388937261945923935829911432814487297438245556197859812692564549356149929967932630217810861782900944844765972387194171112944605975912856754939919485549172674908738567023669198710893885118541784388152039461102813122507184867156101446916411956791817589139289060073413901115944511638472783672980037266804015802553067589307216880697419474705675762501184226725980850422098455715352755540682606441564799746591790905477309650052305223658313603218372903092155997616052449865705223000523290079112428625155133014890372165314591995084028631008129774097758103327803936497427485173267159437649698207771320691999330562938052816930173396301475325459739144756169429282465729821824340742631630444622858240350057942054812959870097407962273876330101895088187942481155245436271709082117017193203162370883466741905064221797266339293316936616816413024068735810624460128156097916677577942397813510361748126733362361607560141179464062235392962210694910001946285654746700890483388714319664936881366480589567882828845939038200425918577145091261957426024497498354287262376916876697935010914939721713991579100541002853193236099382068598280099434213738179748249592320426300620117871673609036456532943853500052531641873237196691268250299540372922427592010279688668079910098926669969481587537880502839451247908568998599280761904791196667570898079090507027858918694891117942747643888795130780726839771036791789005513930775471000203616818356041670225089282765045408127313539601141571530243505293440004882026912350616201402918119851089224811085451141338910620495586430943170644971581796462823150047063454943169693063597656637425377794909407827243091708861085742222884531006864575079676125056834551062980273597158719748509195586303179581994176254879780815685683968026609414913389644737232735351453430005519051485042985716977662771085402536864016301313819606667075355708088425736031045577421362493334242051076769766940267073085842564445221646693555467881969478394201617620034900830566613038749679548253827195051762462938539070670794587487479386953174662888899714641716221642459194785902199562353196350990156679602070640334622652165008841705484805229082762691873532264075121415502035697041137942455670266526864125566754368766569313033008335541165744924033608858629185548699158504536805873761495696327502170004313341668179087702274777201812521088840596293376539685538455692930324463374796117061621695531632756401431838212460368699128828801413543458481115648646418483017232221733081533228388939424183023043169626760801671026413790067711020654291628164592405980103284814609707585712566150162556631742674489282527366421438700008265377990476495872725710830573610349264532473820331998783226107476427319584400423197102731016154693278895049212578297198098878976757237728668330885715690441097259598417560096845419219980964823110149643542782674922377711953309768839976261283431030357823124301976423115057763771893007805520156376418284688144552425819087028101302479170979426420977610585348565618631003373410240451106002667705314180307062139743338789286797193365144410135067435781999222536205478381410760732246383094932332762634510022752931173078169684498118736051149381723335928370181819298332557799906212708912793453599546703303398315202619780262481213689999182040569955703281585301476840901293133121842095892230602996171671379798519890328486890205420016159293296424835323044251409602818797202197085765384024868311810313141613239051690363891726112440846102383797011262439383378059763512591371106196325130777180978978896433723173757704451204950378093934060340234448582457933811119176920117250880988542125509746575272311020614515404289835992303843666314330595646234825153441270655657246702111611484898499830547397734624902901689758771036873054800212002268413185800821064559460528592713365355385450272664886638022481224597698875610204318599151650397153857889450572467411842385117532485890111687616865659888810235275583135831451692722315159201453400900551144837350856121789477399942167218675993463421192092406803605496334076929219052250699800102099731792484435424645797777140251486407898779356140079950395318116829016313922737966428342851351922149060807701667507971866954538825068856441443422921070396558047071218990278023799873540124202629660650627644198325949488539661652874887870912653253433845800550779859726708757729923815567440239757415257610092544638434591150520942964043369600165634361751943918406132417747597107387400261477735938400321143708842454593436983497871395395098262669710223587442734650490164820018391933169632277827924460343117459161203759248354177169202761026595865971613184199320660930433485395788630174473778415779120135111284611242678240075421603351804861081089810883731952123677704962125126664921030510172478803109137708322141922529350864072604003070631389483896337481359322345052646945733086202874763986993663059988757697808476189586986906081403458737994560613273692891913089357964406376238826006241453146653096353314270799211170238665239517737006181862106573032192667872452794099658882657619888724781973036019770937951526507224386270739170547964960222982955702186929185474716767036642828473091155470909734273431637766388159700180318783032517629626283027972938695613812526059025847911865733780965138185698996027997976112688531297373156866459667636912126368460221399719718950116934759797742075630866095032402430407584223490284784716968084680822103297689241471340599771185612784031345011286800454194299626927492790075842892833806122851280983845817126157987652058751952502912744695590527049159832373670556370103404623759031046528896516763853508183248805331428083103486333576173605789288486573537721751180719503535008900599250604099384479612806262635022975122753852564350444273446172252151976845037323874464567402760209545225855865659942447937270966607382718536872690065260230863147951635467464699132757264971719641838253715250320475545764057829310094928619026184057912583628484950849582680175128718951858989826332486186498693611820901248364572475087080060192061791431928855613431793498430029831422585858657776567721074219965612957339119140131692068916594894720395269714632133492653300505055010829431562436076576078499062211239377579339340590391551427573705979924491072588894339024806286587533956753213183502551144490767623978818374277812712463638393741600876588494382935562183147783198949400598620691075838328264402390979726587371849998809964873773098512070403988423786904405640706737704409354512821360709258327729011907272355516695215838709382603309572978022389112453690095532571847023316643834614408191921773157022285235467132543434094378800743733690717927407620535271434918204199267814829967370208738330289312756294837847002414628952824119948476395958393356323256372375965986570384477813038322643078926076736155432457178042773659108987735159589491482060229595246732916375603938109328338811474824233248869158746137047078771055860172560864087067826451504934666705475003316388484430139282390684872628488246998835633451900978672902757516216466212584962190502018466501620557972395574849462609174518585663713430740540252695930001956747436936311628018186225008754647334232721628956741465362542949586253218861372228160521365204770305245068512093095675057788600725889401801482000855860841610999816482219031930750319756568153172178195256920386119619710948577641876508305597470367527111255121230860192427409162514557493772971056069517302949511059492351659612944836061694506361776004700846959953092901785841637453133512232790278121344297120830005340620965604004756584054487483907884323291420675357748932610698753436797538124579892075973263913079010015367744543233208611876695586011569892854263702156180607107174076260796772077701411956210440117712959155238685820270580810747319656047778842330829842619298192359994123689181260181546178205802437441492025418673658101135102122431743097329254307232483875358129041707302678245671234866622660747463947479980449077200602166518217449742127147111298754745653772001795123411674511477827578800946128898337970734632790212385484952224468705918306468816082207346019970936035742242411955973260022114124414071467643533345166107600180805786016645988422441912012140835640094312008605879353642181311553665981222488106861652777340108136240242237279718723644127980549763263337098543885145540527908102798815341316731618567853354596637989003374155535006643342059837475644309628147799599174071716922207452623680824975785112248299179467952386771383381104326267844333702182281684159276452841646267175169737070336030628462964460435207970581957291715164517191700891145986383329706485934309702157830622064643101456577468296113290015361311811493030112965253158692812633101044894163585541660446257447058919705043417398252950992214465148461230555738503657077426113554897356376623932504402232688806217684709980371583595490877841354329877888162504576048836222195950839131283486688902335046761760655104093764734174825761378043703083657318990700817406896408216180617303715020606127502926344801141673029909240659388707848153335948116494418020170808539333486155519963339277915458623041514161596381564253190230489865229896237960580737234793911313596571271291610863908938783964042197319865526847240622619733513831463218978184559932351040453940277285342772392488218304741245953778524384267122047413425591849619158104814589579242255508787325616323438054098640458798001603536222831244719062791047212119023679425736618082169724497223010400033763510831513330748180628369063812549741688789009269063142087639919032945765658236244618738028642052726057836396147049780026316811662544636146218144265704121703385608330120425711593222944259505530971110787878394222036629747513732368721963001207441235445286641479358604105971332508392910715865073079209249797910566170425589343086355204410159474607070371055299647865022019945126267515882222944417615904303556550079992933950453556388675179233180681480173334888805242647003280906803991617770424622922912577716121035753441617821198898682234760010518781339661665236624525982553105778793591446464606380473601924047474325795898618368887732569788396616088163692481956148979671658430758977283223232015561073960243102831743381561577055979628295163912963622446144067926076257237310651353728822725958722489475522746104726960681754417102686458160866729305020062804042736487004788268811084262585542061288320225217835803814692702427408359395083435446527089631788839651156144267143813622756734967492032702780279881026342800178450743056433753999176765904165196656996489027338446133574394842985086231806763690738006087941139199646581071576175953725396738244023135867875136230186773392879324448241343490243680225744969414176323878469616723905306195687138228815939589441220788614371834499032702217354614753453888252388362952067432105316317145068325409812700061058114966833763205223488214759706708938586378946737857241246199542483666763532642079622008084777916946582902505266910184352555988093357464623109118074269432129897478067943729777645493361831799626638211971865607255752518496022642336279724465963523600367634811699811527562207253178510391778848550343402276933910629820623225891149364369187987552304118378473914399131468917523856916580616255358083662299607291173931525691664166120997305746330528051034963785032925363836544740637967934379513741101519116999106421014422718933088776247985972179105503732681347603289655313654770233772377814386700495176112092994824671561105421368610515939935343554287472072705251056244482819231264492853991679188844553878913060783937600032919450025405993508734758416570623080900660809198034469736017570549816824511225237330285403427035514640337431943991308445510568351449945570540890868349411577195374053913404028020532781262525183979878518832548511954061933843868166800865996810253615396289229989649150464315597820900195286869326704934576475456709091263442888500476717332394701481044017657107671975518213254920685096029324853122053283352851991177509107582853113187282706625567649725947462232195779606665841226962332425644578724908772499017452562629087464183141499892271379975868873840307315879344721375566052002194381999320099037879599538109446886325122032550743563118281574199448435521343526648134368532156157641526597647776091204693124219827871820421021959485843909172227960942281211048795391565579928564416323521148146348553081129757269526813470804945086822206079484987494710726926632078580407143488594062305906668983207131262436907404769090578097907367206424981702318346509632489603026677063708037542183262697086551168709477292469746743015618989799349312765362050028693855905613874996932578138671035722669476025879212068888406795399547608081976475235082521622218994985413476189106859716134701456539209253603127936375918674725760541491561596410856320367533250398141116565407948523085168561961604072707683766520935713635732251723531815378571249038855655491950879078286170360096446102042791457226944263850187401368927122553319744650740800318313879809730026915242449418457984058512644319725996235471995509479346871386403496363373760328736788007912064351786608153546565844761828500183807897197936745685403221917550851762142443384728559201736521049191785518567775574890632035601943803817663131044906402973668866227412810303558121977288596709765828735918764959367322281285330580748142151710143899615737339921383593122739498241540725779053267866241263313989385021778174696046854761170791668299416838332990007340813124913081404750278711621542638033483974410128927114937076412606170833161288530039300959250096773292192639045274333951429124402889505598837845231711068673519458032273318472192455405979739878854739984762602980392961401520775435503867671379196804849979181558975740102790794062390450446498837419265907993254145060416478869826197517455339480143506629696919037494653341295153654672302915647744169637500058829096778828491171131460111459730322849580214569008568713949439144236051160232089816663512534514256779450060502083773596465691544741456132854371421341890537961218473274415700779815418421264768780692811169041852458494804791306633601363869331116515886619724626001244279075939751106184004963700091156702061381238864618012421967708682743255227437222218390374988760248405635312846315377015168734154012079653448553758523945099305894875533257254869954635496647746839210110510766671995350312166889433013824854048886703555559128086844316409877785667748214568069105747245746298066854830768080030117930283918475777330861496583695188995292047358754392357195836147414962711727044619708735318868684977956276288671773507582653684228635380599642846670313785915630175597300474903578856381941915028365533245429475294733318020063926348600673229060961812018716230308110134907203854171670685294033072848253510836531570483397785905708500673259665267664000892644862321634846004186354771316784207895097535432333602332137753604796099684182891551130698730514757278288808888132149928909085490882784431692818790179450563184744130218797461162374937589694627724919482293560980165015121285874028445591278211964018524189000818430058424875243719713982236511844395672570634313584939787577579532699045302600490266837602299982733257073145167726784320643935302338584029415903812826464013048513508647355872912206381874935946832465255173492166126763876778955281414407897432076784543272255869977483967687620093069929381561756330849977450192248832304962842670336613944348556789744873178628653247909284374190698114041717348917186006846926534931596340584948917353168311809106831418466422941574054786196020075416621906796885914807661197961053350359846336902712050914655962786899070791709044103547794679688105972486188039081250441612785579671954828180060235440471990300975056965896271112192241028636692955528096012970666191565588674559623917295117064840045383290445867197823848742461843805392496269950047370504914851137517711555452657662029055478731261138793729428253491802234645453350177899253194268417382210362971968752202818570684033240667753819971045388795576577269320522727086007897933317920974276002698136008262396864159817803654273640322645366199142539059509145876598293740420667519444521895068001019061645958721378278503229669032195696101299205029160547723771521161364048661820315411253939777911767252019877383510595773690834342557579810361297333731654920836999738500580392563824978052175899205832127071067098207069243788723431105552872850342403047669944362436701749719384888386719090187714519982462052662947744822251731330410453885184260981909260965373690688784561167347858352732833549839413165440709093708933435340030135401753275287268724409823776727075422872689329919752815837017101601052382422205792565739054544493472748509180569539338151483960919886170835966280097055243374053265774339181255273378063673458960891776923833247941825058900329948042053814412441489927842893485353526225292034995606592470051464865737138778846635816683536700526117884867699879485120260026004932459424934826837425246114548999347897598893832659196777472850850042161041984303524289981247369899283657572219371638045183684297776627106647754850986734239529914127148303768485605163654879270649435654338692266666836270726957327229055124504505277833392725764953370267578975563437486415122027653462581088498791683672876570098561913785584377916006069002469759295469631460815472522816964612598474871290175641072678840203422323177526199299235179372363763313891881622521978892101260799429618063539963152475782335288114916521287501392362003034479226288992084410443889183671308121693782004257854479260377834565497050625264112447916330898814947636386568114631339902275529471571974629293283763533880621382178576546515938597611071694633715574745279120470254818902047570015066647970735502314913442609148701835629198420582424536619477740756532272860674929689192778181198260902784974047252336672990221185607422674119467688268671483610232277065581601000493179917702370444169392319830906407207830801154805883171745373226796679396560861240852193500067004238006211051092038181134538647023056603252342041360676503944130897220639864372015229172284670267987736764081282156099790092440534873413563347109658285199602458977964510466410571176821920043858745039858831345895115941712472790743310957802395729054172615697629268675316648688045512169709811897210754057668955099760619924179601665131467512271708823714683882158303814082882206557834310054264955719531193982758956908993566268697699187846147661590404832643920574491496709538452064656674187808965294800433713811840886217307932065616601527593232012725461760138764435398302186912480704251304016977683160913060616886443795989636421132204204647483193827378374373291345692543919926444206535431635089781973540936369538274015982738415331221518655124155280819409718663977415175387330007016928991297404871813410890552462794879746598979998246329675886257027356192646377359628281156103207704887903063346022208534381138533816354986510481508948917030675177208397489631394263548336379491252174461097386982008843384848856109653125191146244457057448968236364717607826327733185845966090451322005446490168973566798624542178114132081878956138511317983787377420265191875764064798940719318969811545180045287729967514430676025832432559202444269414118173374229651317798464670697361806962561436291084392463746761150595218542037173606104176738117006706647601297993757398977206123359636280536923732320272583374955511062519431085179961313821815119607335630447083878978588838628005931073545733409253660834202460132533384430003695785951476853950797884595966394768752893854012563661465766586379474945437907955382948695157204833143697400863221453291642672746813696724341702801489728216938310523195416115443202189287108199175400388183058793961545819699710902132829526607678641319378128010476592573304309404125326000232265113157051456871882911294838198571481242818206756024196510213245827682510964317909056421881766458142749251336323236416492149871726115360403249683088307734056382495862620611570981356028049906320242960214210574652852355844903006184609844192742751490472432830491655097303355253001241878413838534043916111273626972022765227016100626620836204516753116653814581670319350288215868695097316388040430059693548610340455220329391118363323841230444299228301449016844398722992764979400662000909648365500563005383177015602965689766785428545755792737360173309463974350328757510046833880633743126552092999859844104982918297789261830293681453899061928927619994564799300646730142260162264847474497730524083455828684749919230466335079269605560214750936500840171061003427489228326236200200416817553766860159013198009038385836505063884782361756824205535432884285206374414884523776260095250148391732357514256711212080639880303192172329169967993794811800919669706493524410428934438496214540510010092964872381556290417187340893674016524519386109090378295559689908304557583727038141722902947212857525691088582247485183138188565986940628920709583098873433130043512737469831831282043337025845734865247662928648430126256030622604872844253495159952588885161825643830064531869958620410187251686248270458673380228766030341066335870415401710759562426708776248692341408967314957586367894226237255801945334893747432250227230389773235769901403254216435071744848866338198010192765897104378928633608358298547036221499607606110572644953586685277295853645192273162971145792416507350782651626727889465153611277967350744572310657018487547679540657991993731523004000658208294576258124027974680670880286211546870173493470309367484428634491734237156439123734672525583113502530870706123109691916300652565187777357256036084685363579349143886364130385480025824695460619434417237454764811965905065256397653907651068832252926673394604549291459417512838204480390148237516950124881880779750990158191571521513499945975911163732149085598440609342953048659614905314122772729380017576532878665728109823635723056342785497526143341892124051547981994362562312366321741398203476469585234342341962089553073409039225499326700395434471549761529328143744665845650588379510540861851432966814735553795963945918518632957904451321700446474732323736120408770159053690683081250121829423643245770742510623768824059656865895093423391316694053515215057967007812313372021928823831903732591948709652091355731881157150068939006230049043139527768824393930793177496360902942697758501159305436379642219294784403159811615197147260917718782667023357714645210917485708240109628715223578415698584257911526299458100462421397032454036953712308812734076053757436526977909315640126285202074955861723932146388946665342819674376253051909336362169296803606895486751232577878737916350945744830069157032318571231909908430335795458273576807414237501711240088098722508143898807864122142077236857024176225790388802507902842267090940893457035144245225660482685878212301101712392582564649038651585570692799401919228523843884676359335321946976544521399903584497629717367914664214176435090645220892261679794263761227079857219848253985647732429752744917221787689229115038162726667313277953134609796101444548630587635023080293311942132125702057863925383635418697447085361265971459617780955253969316197313795344007638355891399749570082298807988653881765584584683610616864562098548380107185417629217938991140445303242955176731417085943261947218448855825366081873130633591686772259464657962281329464955802102084008242386288998317995036830486353703719864479317142575609784081953920320351327419149119989989425672644492304967794204583889439900062508396644476994876778956753689517504789302243296693700219360368285513713848354003178270677224175585552065618559794543515640709820858852765228060169630056585384284865471408452689378413968798656971648986554395287116292587378156815234288663376582297179775824238899360769764291889160093546723500706234407624359313682388019115256633913582366792929522836356461119251990768109965155437357480481496635114236916850144834194800429316768055513566954275752287338799216628338496801142086195321562001003892611210091785240237580598345637336588674439699708576236872118854384524876902051034087365093279969639767627535928473374342885561102125301043642152069879328574902821041793248071653607624669269037713243587435420127508020768837283144432147723534594941518273431687801184336872559531832591222164776738024241700656194936978878294504255669644850207353533091719334451830584512119197927554345449831395042837238060979724794593710525994913678451665547479662444448287074971831593332969437286817184640488208442973732596857644033775619009748839679722255833982690649953357887338908060602177467114513032344493311079786535972587913676151325185894744801847813743470500242978771517899658551082318801099652690252901131211633176103491432197254499744976813165218210944202468866532523438140298339546899374456108720295593977473083724964418435787487990419106234607570268539323076253643300172972749109777350753741824569103086435646003014786658024395143741563595363280535069524738934248643811043801750071265103674847746165115138758943205868262514505282670050233401663874440566591345201802770663406285225147491168359115540779664066499659338596865210514409140875997282626467819508962651067058004609654178466333866773144985474616571448676064266612480885623271344929260798990956461539570618974671172946752298636344537461671795637757209952084556443286312204533270303942383776237690607860913423068369907836633712245397683750965905944476535728999310563473309961699224088506829130310920597296229374598574576344049800504239413747032408488157372031450519145593489033723604702983266685455014346649543838228290722779935191115276208585363935125396771240848370906685814856527896559588091242553743980851976840779023791073455574645241389258022092307310162161060980076562682472701985422999697116569913288836193932996647132174265518875221680567228650507185600207045914492161399173370819107891505555424099774053739283722110245933301477179694976453198561692689677149056660877175025783906077671528091878506221920659045140483834690040951792099474024889248981968496333045635023078437552243572829066304398017786107622331750113606325448255447753025777094316110350963087360684701654546005233750647540360448837341368433516666397848866869857604057310098866175775901614779477544467154980123329334995648117048575681600145146608753121937317451805757490043204895046313961714283922724471524759091805926698871059140545900342194752652026061719393589052783609831962010231571325418356233601414367339410506823565413366391640536135344551662275235234583719124787464379761211662115240095233110964897712453785005524168500642682166973265555827247889590445655440449841667820552099415641526216883318094087994237963991712108120953194418327070258113613437961585530868850847991412199706188573145297537557086175877269308069056217663164674680471434475068111628401916582987310042939153037734086713992417629883371693501425619841516009825009260478719157982743565350695775331682177484998766334093041441268603928201558946172135823387437095298137100437602075230101757225711358830500383839079952415661067585772328440519087089394672371841534733894735567215649036176934752035802749265618053084243180978604928573105309494261652701565821051806214038711961134672975957378581736737027509083082164469378012390948930586953256081606355235744468550578665522592542694744667026122210558990389001811598939568375011118431513642052444370231481976646405291801372126053412932160235822002866022450009104083994164284972325677473544292816282501290850650267986694855044191289242280196369349902630652913521380361336977690684261339833148622724822523276441734708637007487817557729988618007628071325224906820801747011479238610578122296560400690887253033440691628924452440706753693117995816262466834140944942105363658906766934124747368174857788596119513586988178237692380733722742554449166278549420051882626885754741174896291174688105581807630241134287374879062936126691383826183587713917687611520644283318695591165046617769352792171332929665244746587828350088622964456785779834848730651474241170472981545971992343893575026483694489132866567055615228838010072290952777759552167636891997864406469127711587488614994450830831100445286725863109503537966147629334801215073575803999141824198860298911480320243304669798016814538275112844265953577187038898640904468911025350308700705542989439430150766265221818548867398590553787718554794287278372280569345949639287291709203150670882150008944504758298592137133873207023798874009341733741798825913702456386577116756256332553495142090289273269925803647885813147623723002436752812547102136535655722889944270839228442137647264815430719703388403326165954391445174801492029641757885250535636423780868212873870675723887892496788633988735097493809186661954549581342828125147663989664104349922931198222236389140386970590908813812736500157026543250301253051274855411035289425124543476318923770726002321906941104601090080975720882014203350957521554197858870483139014377435578293082836604524754973903737909596668464131432298634267951353443257928426524601754325331186586409264658355627369977841836978679288221413631318914317067985539155850269631917438163590836235730915674140563772881204232726369856734003482754528488821347418062006117576861774094209290633567934438083123533240052039455707408305424626251712836780167652443043087831870409669338102745672237481036106764322521233280004681885519460023345063295323607158797247620927259580995067943476054528043593302015980769735582665652131636525409884742876613734427186872512274858734150998479625665768390735607884680214590877858897873226904557702278158849361958390464060300763321144644226149688542830186183002478756824415669507976450828690760760840121220350753396716952311832399352878708830653996774147030566529072578494362600016647354358218713630104304864262056295499612780792268847332136333578987201709827825307540980068848539322762875790286410225301051163310642491128298038643228509541812601032093022019487014836023895025178685584448986060467789388044735850205819880392235228256168713879409229452349471896245850010898841844847499124227051908608781350251238786688271052875633186805034308589417596307754446557018929301224484124727489453876484002391495329120111495141966599040135193889239224297937233085692764269158278263141157098589414001569728268038853112580209535689292522146002383054246474963384813751062008350324906525181456856343679094062265579975721229170048753724188261148624717973860904579741681379085873882550696329355965787451112283891890138409938428514759429082593242066914354986688738157461267936205168183974780884617915983372000966547330698192619337346987218097468133558690405820256362115821097532990833861743925468092695520345772356637310621991773498780962428413997351305393955459690369170489792545646444599616624973664951867942707620254181661020416993669066580864961068425258887768276512705976567970205712125867544357605226900420106594723275427465015982195460704162998955142190731722044247749832669083607871947506558418543349572883632378698220735356100162041178412512302241529221284260684169760376207863430873012686543322250525304407541509073162159068397073755939777327874465995331078421713936441315674023271662131834618586677196085197202187512624324242976082588532678299242157241713914305692214570679659615357208403010767959914185266087686135696697349916819531424734092404289160469761299417144681465450831326187268276065677244402481140736663583066759117073185744242764835722800758077151371334340730859751096183990757063925086745003222669780824277392235335399804756981270723318629988402969729055337399595029662102602551388748271649872647629752817226866176845480215089034860050739152367052152232952706233708142871688260191093386763408632324336709906122584314320061626406813407974384870446148376082610714244755696449471757481993852129619710288085052611972932117611058988897625917410455952099526621691226524319993554868107095549435558713373608206608647791175822123702386374195414909188814130884159162815166975215992362561313141161598805840761394154000946083601153682442595879332530306347916274887096326507770637763120267901282078788190325502726812393434853663277233350854672800013157763761284858414294721102725733060169001022667661472943241270365647472481071436987505865283767569494380897488583757672860882534520101144406084241263380805498210372633105675952485966145278661317686588448071403680795834637230401753912079488236914949307725695066736187861462965436485517840014428273808330416461636058465797511445450979632506242112998242110737934832579330622551977383353217944223774388186674562704227897313597312818335573883807721254924385509895115545069817944842528927218217170695876621647250933504219182116036896902192479000071699174842112711532809801422033306167179419642871656779825688307895811329308681237983877962672262566858390657766069174093930438063557043513508735225270544408951000200754858552168361034956286894719571321316098213747987769907178808759916025946897915896075960659822020781049573327182569713467302783935867853440437372323441260399433563474347539318358000763186318078372728652073077190248186283360742638435404095264205726538660865633086882273833366365379206027765915062782115442845063895654996644230450909919425726886799395673741392805395300042859344502768692529018563388864768743184791952928595739393905585975379972638728064703473153520166917630408730202905513876777009370806327420925475740152564832218962361685749414145367080797775906203222808999786167833660293684164524887693364063898590031389037394648896891836811045608115103156196121868260647283513122245675207505236354578398579373774558889556992661435337646046738200429717007515128227413101934266180507431419973339562300162415050621517503598358119611025506324304064705283694708818530198986131172503062896432370824611079355708522257986799905199339609408170944015425872232353790712242966078635080483672215282036308814920046869398972844468164628809710834422678920902027147798167572388655804138400093002147008106204275498174699607009892097022127216869946665063162841302132252763678248875016499905760087904599340082985726402502110418530534495424791760958702603389304177040381188370217171074716898352330240839486838619862589695466407154002000267592416149824747569423431525948247594073946760636858052324639447926396503753487796716492195213006245718996596229483046413917417252511329297139030947849769025025493492371826593044753083886353024809941181090627993463553804563270557669162553325374643085539065702943120300958610714329734321336343356378834193676957499881599812753959025695852680851795881396834513965253176060802900330244392185729380511154499447171600091709275678997044141610912688600172536479081924956696926481789330228634498765740624889340314872021095910678022659751899307717124882401462171953325683547704920590384526942401903573805045141021130837718611181564159496942322273980699759190806589973018405749201462545656903539486991171274729668931305994628762839400687200630441033319641406216888279524070566492121466813221494810181652570147597724572647601779334708544494044989869909077869573269329487678211219845233861042213661759687892870941297954333286732536999988594889457563175989502555030430899048967984607494072885029032782493505046877721221756217648438967315807183021249322473961074169786464727380713597607631163617228674555474779740055298880860368281063453155193989548155764615203398132303863388389164259806632301606344222647242665408903381037215376800154073090151197774648295803625245446511006639660530531934209306124467123023142772248732472031868638696466944540752474171876202955122147283914970059870598864420509680573101182844890225437850741025103364828520148706274858916328960829856757707720268202359874469301055297290750294858717602133221037313786646448118130203971267231515730701646097349298760297921764699990273592813233870344639501329043126038359875411261850641603428563131492609861287371253678459777679053403317557541223202075993815156837611805606070840461045654299982695975403829363519007340174855165184836492114391819763478766398989767061462029574923673225795968701249266943664070893286665511940523098588275500911580265818254908484905694831240613766095402715357314018515713318823492703287628717576519493977994086511400652191753230426806581149271473918565805711042255752485693872178471761605644975929667438926724895460458089687313110848228477271159960688909333823383598612729703575319690663701402176703532408069485536362780295545383941642584485067910926597798603302037997451669054341687187498250674185590246577944436594736747768706770261944742325128017246324899504542324490543869353592969082887547773488444251054862448382434985234776201823311999278632000741792937413835252167491888565146558469997354491625873066854451869592276104347367661963184723641439222469131465202618910311380364851336274686843849792410509610744937115053472051869667051609308934811550657106962145315498189690044866763901592925822961102227755431363914245291322083503203779122488691415816235723443314229970756965808099807150375982315329873240733576972051486793390097186590551159007197847476244358088547933873039057801356979688174653074746668596212328904369297255813691877255218453099407493903628080511191347281538463782235140082625988179312105797542781972874804804183483496136141784518652838882899840894547568382103747552922103612879748778859773231886002994364539914069257402430722547531782335162450885220944736171495890712861393641805016817146621466492796635061754177727509952776699636701137140781905314017070470829012708698641712881800610519087022763092287788390601484286985020916264574002652431643216463547523661406238855514501692033441885475677298993554275883261443076467692311620215842864776585961203995912842349739928901463236234783253774594566914571279998517057334871920634177344125943527442676979421484279929783721094451858423272349512812360170990248641028890745345533019571532612815089051879062294757789080574404378739782799849818698126902519260914323755537753640852011749445070861161261959771963229751155832700379384740244556100626043131072557923616652010361986095441955115374457909629118125816585033138339766501192294889658171754312764260940233477011921186197735011037413124113355822032450577222404189033559111455124424127307254304794474673767997491945704724898482296152210462278430737504354378983735545048736172402734253641942858945496537200625065760473517689178522702650934085563286089311043372334134175071186082239462483575160756264696398085028695891736718119083522770475638712384760132290527555373951840756759385332473311470241488890641282764168937281990856066170359376804953034832996388611591824457222081089173961218109885681309706604231521487173462806995009223433848002362920405358271768116157536459157790286129277304895157402457365113018038970962093802441528031171189215196852815260108502829241754429984872241432091632300194912443990044785621775529543203501085155575660971410129084935390311089475910439397027181528007149002417324236464987863916178267815085835863285427086207215096272967335941743011106715292502595909348756663106230393574935124914245564084040886632376042390490173939076582172544510881845450803850017625228608760913992709612570778076193698763074847995018023647890375531683312071403816817990599474977974018778184194333977337494705297890471688299922155370063296015717768053746275065841308141944166042461574355744398076372190277828886935754744645437658162441556622986956042430445206118733888206450754418996016938466886062563949944914483461750623131463468574203231986047445908318550323978319603436909153355536507873064620301783121471784774706692506263960634862414316307395655222340535461131096929303244167983762348203437035631059971730121279006719030260735113874858004652566891712262106528587020862674949612596564130793124225455712675126986229569635794775054251650831699386032343298076831593811252973193912577983928470840975086139292118286797278959564013718084564943662659498413359987002843720100151822067058307403222996294229406373059364851758124130924753631005824089804755505119698802529809763536728829453171881802727550765734882802671858730073106295755131769267931320899829448915583668212730184527491171672628313214169913847924946377728232604269309722220382119275837312166213760544579201012652122160710293224896421230425873568266257690421665490902912059645260299770949009278822206084693541777431634247927009745594487014445564246533480469168677693927685262845999189567212323049582678086046480924672167981247693659282304922564497016039600631285218765049939743984674213240370656735322484677864356110715221104231707729119326568184237568335880549810419633256278575488189919706186276538795278079314613273068604282617816592381769532529747058140649794539899984089242733815098922641345388174204855321822132870373506571250625848916069956779285324208791068478678969472597387101250937177717686134933020029205058755457077664025491752564030016525222227840586885067529003440545573605191186599309669355291357173100070755453520253365397967503484701051336212338483935527470915642710842243509756207865667899458488819688091538341173051180916701272005985528799592489360237550911742817708831846582738540721375538132894800499538528268853262590296335756851196617002232156428617306429486902555164525758281075742268138060916759419480813168429772311247272135303492353116443247667948604841083685336106221696572969865382800546257861404731446273620733396619398848431270890522086930236715481864255355040970663509176787487840663857994500802007103946430319375275867212750651725897612850691439021364323955274576853076934737483596626025014733713466489796565973852497388354837132098598059329323637478982257816683609359861002905809385197805395575166139675231993340448134902154549954043591986279286261663659303256637030083680706170846654961677246637019636534035320705413157841652769627107187563015951990820879218730210281768448164649090974512987645467594484523352807744081697396840844005166197121735589634895481867341218859836127023302563984236417563402379145100339733183296833119881645316714671594787511486642983742695668667303088129606973654647009239228728963340085501196636243691262783906789375372898817999139124011551403028021146128884082480863679966809497159309845385005616867974224784717505539325614774108481317867666166265678439023011237781897600523571250413416209288597730363975133955194865630812716986682616875351920570130026867525141585651569712546891679002354967564933322933182837976943961181062787890839262626373137935620141949206239551130282523662228797363096943434859861156894098882998563674591832853666461565558538721070966623283691338713573727573950829813326129139628711498311106386783818273502352740751376497022015723739411313195073607432463022167879254379923471835264574180114493884207833086385447234264057226677426331702788026333389533145304909989646603758251956585673600628581550182091869919214903871052286218701454384418169401141991424862966744853148541043573779053258093942957578132479406232273849017879880051791961693184143088909567800915321057404174578482891773149553112112955279585536406601286987872433681143174801306770722843955420160128875289739300064914234908284815236597264075615075987277760524887114830104441707326130670691059952183620195932653734075002416637411822515437502616657168913778016981594137545907713999725893764105322682868949853935183635927655285005799529218811919411303821500960709217811679975937431862427626738659404972959264821020645886062207755483949939987829620533861796581914372760244868949618521552098339443840380288653632363826597015535371981325752124414498947245720197732829699423999420727393116830688226237024847486624595159228541505995254259946748679996910725274526920819493820084230134257188372001573438274571979424709692742699780874922762040566224932477918171526027125936013124498378605397960385340108614870116585676562379067862065002550523016042413173973144447584609740655351931791784148291648842173837664161638550638081862657691793008335806641112298150757534927878530812273213675884071783732691437221152450856890453070691850530179571560933797809385012869640031295903850946010258118240181702216762948611529003026634366065095528138284732817734193826761890836978647797461404726130925717869157041657418110709730891342592821972636481588797514573199479809007652902258574718475285230012309061059037318191283028541814231744636181185449443950529453274820884514615658563701154038608709886561115370745215229015795859919945503446599822359276792807305944802581254240328042776208562949506581201212559809663826737101761784411242878086638723009840011430851192707043753858940997521503193656932463169729765843824630110999244315904217520456562443805401810636358197284803777606239500803888645177693294213168371828179590450121813431706528974110839952675754153092392534336404818199918095412976843680656158158454339095465712878865267596722126695079175001147173240903372067581410658274871843419925752992279853352704299257497414785409215831194809103451892730942323390823303225489129797046363995211052177833997688709359750629940655330250028470535905728574342429387520132434332829981612149838160243748789650590777569595809024644800136233905452502370956594352698538402259488647797681917137707848596731426941911112720761014914010217777410574463910602017624089796819133043112407671741359746326241814795371613045815660619358572790759751619870541278901613737007762725430358581355449210435126752656259498095440271188873179473165039830316423052320547416905093724019838175731684090959052314056988396860549968861884906532533651713732032724838021948139656274947436610390826499449551574277124092940022609477349779633959017559764284117056405168973522352132666989993256196708216768803750010711520056628552938437401281439949188606855080157991554254438601206611009864895138593051734057335761529887630593818495290244961271000414817710507696121497082291920614844111042022704328273100096971835720621637292708061379905221648690748740143617056237994682608677529182206720881435259289503040078124818801826571808514376145991700116240284235442056912842430247978478301242586273154679266764530639980302549464285995608230432107601434736507362160308161085448390631761865430564450971622480362790176565184324836864771263679082880923278336223248615976182450181471394913609239974926908717178206529361886725662826458100123310134243057540545650091039602397914777321153558788871062295522927201575828865836831133217307456425140838552567710749521313292966421458048369347107229523728701141805754100863512027633482978676742364744877748742938242358601468961357117844422135843849241488853814746778639839553411184789434344283073749870866191609654405183425765130037017218356490893552300322159092394231519360262832481466279657555767725888084455836472550196263544765368470528148164681095562719969661626205149421353601117477774005944498761319336419309815604754504587244009447720645406045815923996279898946263447080477486299710478945921180853697675227907103670606980506575987117422442328606395166483314487997294101209205689343428196173835662794616616604614386871062522582822954640395873438206610253789367580900492557880519734646712325626688127754288519618775496499306367635663389545069703946358599293785919806335211150121641425538037665556947326210928504115254415688325336883038481127914674307935013506651698282043558528572916493015974927867193863454091273966852644435957519375974956476798619060252313799365500839645193564697263721428248631328896899194469049775989303099760162229885715587749540712151231214669084844649530379020826394704360069846147907496986785522749996859548245295045357025992250987095585175830554043635195944923550502145617765368929974628582927988247603051938652108520869693224861132867313354701848258127738041666897831006582139828507112533198117081345635113739676712506085279580924850787547983937234296831976460354499517093043479787117757760765713632126106677192851514014436778672196434513577853077018870332377846959209167837316931357859476031563172869179771241322799641661543404366702939690642791969523597366736298854058834473290005114264026045469563655257147051348690649338314724595923483883881771529342103133510299716679148208419784794341821960746419699946242808335721223913314106932196117368279965478056776020636641166518438539525800570806052385121917959140347615312623178274751766100889927487159715655292503810740585916527810808595164548611355281993519408635242467044480900410458056443978962111100462756900274189386903395403629363431785205307352124999406422370701498371288738978617338919249228523096900228656482274822586677826011309296013478168986571177922264745789771159609534576115528800521712975550030583875796231579187861402856197439408977193473182789280716512732664190613806869877327651401649662988050391344577494728516075774308171341569076300045003726894816830516059697111666172470843985424991310779871311403113974332946026727188496777861414476856121490939566587340236131515540650152759758057826968823839383552265166896683530503206006439668232679994316256994001645107059764961449030319239986702677438120732171784403417812801875168595377137121024400160779553436869731373551938011669803347706117157486823316014383915410514090259066026672303178520818065539626790774673795470080662833144091518874648117499847469513467581022984286484289355046781417927833897426735077807884087638758943183747973359823098922081460650822178126256210095656940144963466679356039231418813701020173113212129750703657438313294627533351482361745226458618958467134640435024265811043169036446278359877562862850298428484292470876763842562355931603299956492467427888919965233472769865101374509268492646731460423033654410603606720406978349824906655292197328838604144164273022035737319635046462486788288323837872289986324676588940457761086795125475825964161610770390582911973717470904916881502383618902636525286298860949578958731977489835377717014531973031783928880776608682202152608759511532838581021459991214316111935939609724167809072549553929940013507255933201280403705409076968723114750220714864612911492745130974981401159622715067838077626142576850575238867208666603105758115991014039468211415907322812619959699459699254535010679137347400155854365551275622755892011532716870835261273848480449192970406104766650367790913413683176885515143435690650539818351755835410921141770635049165630450972337625950796211325202561057654981246251197317626152196695849333400028265508869274141669183173388520318382685386024019285445863932684189741141322650680422890405784166663726811648701858977429127916765794100593892658383880910202611861015455778815864157275561755812248663224145369601754809403962888057395787990439412910996675414468063966408096688786928310729013960194124484467926574096641219693110935647584524782736997648048444031961726680701405720683811118382113578657657471915428278631854608236072046170515770001975380387988059688044185909367943891238183740806615355060082208899521365692700078498702577725135529168573623734235475284308800194245621012716722430356468881224888298141780685518555107718952086084198905407093872663516767106727527638826218048880332601358478553020432200375060688684574253496029614667580012354683959074987548864607604072454581632920591054956806834684485294198784727443408158233482413607311977831554655172731286074890267203912882118094768141986624728235089305536895642012251934194617319288763714374547550843949140130202809127842161978663604579427712541816276550391203938724850305521273355969972549316345481069854772474863810357145097452500348452037652570577182889058891380169273879954571013359861727136665566877741332222462482758781950142605046450069302161303974609754265554100278559577162083877594971351716087741035210812393593013408739701541626976223361912501216043957935649473772297785522235371501567451637435534744929316906285723286983826612106992491456935377278447616871088805057351435324148890673695729774499053454637496527800799356645282979995469692930393035185997827866179611677911245285676176141928774266262645634326596099574961776985896964997057917386053259594119179157274425378433320497722566815795943680989378051153312859647583553801645526493321311002135824577356348971055078817696675015464438077238171611633273192304137694640696534760333473529120307048799155345841192577258746502309272868715351078314325561741009571816393767084333028710391855373040810126652349467250643710713290236154205791886907298116734154182595266983371175294917463280693165566975916648583578693463340127035829669432978933700555883954153733352684504724492839822627112963923157274798153281122619771280004219344898374796456382717075421432777091214417443835242474542656539562320286132618987642831912744762213503446803767185145860655246837713712134574270219629452435520995027581982521155546329522201011611832458208734409958008827273106214620401313813460429520288711616342485142230831457776478692948036079605506464430364353056393426380567185600077183444763495696151859049150512205306414107221800544923391772150306623099511044315927554062311389155257260283321787721658721007007191484650953841863765243082914669934401992664831416741476587301361923184399959411734032701960988788364030777009095473942261981424782361875971721084148734020781234197362432372183447050794719853311112932280467512161582307689880861226875790774133107379767308576104708230220723718686260499742490429115918176229896597534693997232227796458678416274291004941751127214454308098479196446661754583977959133409995198955320887741931496521020692551430443645022196773022954395206075330490290450869857803915131025122359390971355758019817635550752657512490221019581727795454892872843058757254910025841751215459413773317498701733734307600891288982794426449893670267370080730543724107669655339567571433327398984367621524055016450907727039083877559726601777213488242611780647665245565753022954348652599346741893102264858300829217540825416819833960754349202655579942860425311013480474987917074530940599728184910673828628185795529342869594761100377145185408141366814354054510347772319909498797774715054438354581991422841301289546363681384263282574028044482183071013827128395961923513301143417426471773393695263062959294197940615741939617331336105341685700135821708277658338908561582931551271102098498717093277230016870938631283316590693369061441650425963326912142147863297318024155991897242705304098062402576510671403500255574699546352388296262653280160688668181070591633754606678305854005970501342832675209308301490955978711597454027604536013811431846405026618654067009098786609982436801120469073604813653517636481020071394079820896806980977242630680118915874966819472158991849638023079301095577075442390695101133587875103887889177662588006853944832098633610010984848713322104355223067430885390201666678850426993560452701751902743126178670248077809358612559648740052504123953982425835399878787504209865987277936116876528375398711499609173356487331782704238982478165723903763463105800650138159404527608088184730107207277613803466798765942675335155710561344318459363316864479090973084701118194647316865518690665173658313056915878780975634197056480884381254066387282629170774917707782328772432496917841322340225806160729173533032765693008991199563488796859648336713477503968555476019808234469798463077591520518777518693477381809956573813898525201240208208590628564631737275037017775904694147403003173501701779252461779284517274899504379037779921626777295904748776210175837257258760848463634413322196438051066873315824417803968343098710416735889228015514319534789081205091173915575917855879237276025678724139807745551139747662670144016665630709479418749023084574553684817789466823716601007463968308470606124745276620068299251270416400385007362707161162440704010806994308208687412227307325855513150926504822496435800111674525064989226172508337354369954431148183019934945096452197692007343547941465009618545723348859282930671251353940389244695234133296738498569279803292613841112453446137822845908833939211369270145056489546228403147350875002438606814917580077975852013240146751509527514911077050000917390988997041829642485266874888890909930300410827416343480331304466385471538803301818275444927232782627239078330791881947172818757146699023674332066708335637046936625740213816433992785093361248372795724079653491214816176474474008069550355848396889389909284204566626531686743205369353069295596523688037957419423742601708976643215230820729672074772155046812374801669397866931301631100711606414857021104692672220259446890533637488711911209507390596893246126226983591019136866842275198402475766725773060999495071905497743181229438463603382923874731352117086725277426710969721747640949796717566744880215774842406111376636067323929426720671662271786526684846275675904250491016326961951197477885907815989019257701205747907004358085970848567132521922474974779422769230557786980862558006089744583549920285183663100107486216124295280329802248779001224710881884645045896080230906723265711323201538234704706537579050376097935189273901461003176871220896774015467319384508246814319527929732623264306807916285819333380563097923046204746313009392362620547830204705498023637284194646916897217527893736241258023842828852373037697008013905291899049307225466478180202624457518297481371042234238903066610803392465453743029149228787379547612682004526157236436990909202711001834981958108683095991387144907026485393507137800478993300924507938323041712791236743217572149420066448565402591769284390576649463254593235580489623442822579072841817518274658942122884864965477388913561383275839595216993262389457330902306647729005723102567835914387454605203580488265566119273862953889432316703315283379855512510650734302063076848447926258312896523505152076430944746091580576079314038752195335427912903805600477315538662709535542664798560167513401016282195269155076625919138759802316680436700015236686710953496270212397114823079423118224147648515045916008616327975745460302360017197472974826173286198294247476262954000750560445382436050519517330383569486399788846550449730941946633207452791218701822353669305148444240648249308298356057620994851138388363526632071224203101821051014817038663194542334279686460304650832424256531210938775933019541509128061368595403681736438322317920648573316406733986497536760398047454137295238887009464559867055600565830010157873319561981813731748108744104608695145532229057090254422981525473729616604281245935469686060339911150494953766774706499755058186307171570490710632485260216278187100826128797526403237078257297341904137823096172138870993026451602080606941567622169392022783877114094399353276038520129840335990559357843646741406623867985241645499903928105527583302868760554477875037430969769056756977772888284423268141675823368591760577568706047960542682401764591569285041153028156189724249458284298728247771148816681467467001692531784721708267740679061935999801427847094521124728900110773245762553858031387155320869176766835037739777687327947452528065244877203193508013967566335731774776239458973613037861558041821610987221557692214005252172751573683133752901678939176474446316889396388659258942999783855318390989581984060069690682488433591242222726317727391791382240734990725730049975336564601529491951985256011082260846855071935367019452968633884899378366773574144396927375519844907671833097732649425836165625127727444178391684186368093306827758729732928261673779515808172990825448690740388539742761541919726892620287260140115778820707602056313487321360131203046016156110621724803862832963042838430523248960786486470860328857943406037860790816109109551833818856163139968369337225276997866313367832683186757924992211711052974600609366393677213941802207070110056048904285611221618769522762035724015375320649017379053558291328806309965506769806589947807394212241471319591674762439375920216334674889384295593606834002095709237858668971998671451868772605399236970166012900188041913162273505478242083295351903068845821368512531112674714467586651784440774956979511477322986980536132763976655044289804268692945093371770172892957923586726341236288099638704012533780947865900221820101451594515969056746951078040439880609680085131973368330025677695158287860976050326913424711424405305806792158528112853513669935021883655182193114989475346902882161797048832774276266295107286915293399462109859629760073832520641262384399420250590320198481881283060270764602502524446455556798019775454176570341155706771042777731621515991079678731897033032099046214498769935687985936875661255616787832759429480254133635965046480499648461910261219576471256229489575872215356983097666590271030893414296892774172815325973606792219925984184118942181999348473838236184799360719924752935987570072292711388116844718268451065194993983472578766457320221875515496172133312277012535419908819101764662977990256929116456861521967402565424045788635469338371322741754732475679595408510299045148139956928269556968589823354635213662907433903436016820402018192047431810390445844655879331508278959707218250154954742102304696282320598375159037021368002230101798259483396525201724470884292975050927947587310780145704076832407186178353698304996026696463652420778565936549988751410972808440943303968818072158791904566724428376574040869290199200147899890666961709136539278092056140880075086822298522117394681726469198055876756288637433686007593530285102084360878670097056053667451706001225918450849065737529817074249694578321628102367267138267393625805409738530994735299266298182531727990807170444148682344772669526126099111580576733940873548280606516906615466272100557573713936086747354821616001829784016828998118291946600962679741813016934517956496964803281763047560416443584950881122312884723908860884833548639138136317773080846655620045267363948166832441092415261065173128707315117723422640173191692576587899762898482578279801230856861842761385288503819446308564577152144485078389288914951059931123458986673279540157472822682701367010259067843482094587548399871148801648902654686519754190470247477785219627533754130300689288477624843729207107583829799073488351014843329165659287718844656688806285117520451262637998841007006210513578108801944265417428381638955814487980510022963300522804342573172643310886335017143178109361485610191978924060463813932588965958311321023145147670332818215027916685006306406200969024238080220741799384215904416968307921860610105693247566343925781484063840163148399680897320804500647507160200614013757276180336497130923381453643966870165721275085220370708665076203993129336060070432870478814905221509485668005391452935122786609230700459987594237807635161083404044890015137615242575221037949442192936053673603537121141176346654203062535494871248518656568879694069709219148913039938415173939978997259848658121710790704167239270983645036858513801919822030224911840322525153701604745696741040340179126024663332186838953517820201334885558184875799290393736104039183022010536669531353011087446894872374996803965639533539505467659052017608797914551129787780429527746124748407175013446446340493812288741482457081028643394786112433274260325920491494176881790500124287963483541548638349680889699228881679819341512491660734997071447225160591958101942835821782820959226966121423771087144236530391137328169650265912093234883604596856008659468362381134032464505885946883137662241021696749317707850895691614664264266411030704065741796680259183725954046295380156660612184287627888131702876620779821443640881994468593057423555432041983163268724795768644647049474353901631312358964785916339652554529511959784819472896263903892602179511101045715457886144858106454941007228342308015450706990256539456806157260330599862121714350391575005757132106908481598882559743015399597272142202730884792065164721792147272230582305315374389382314400663948770201748509801296178422623315930360358821474234218180094939275991452729497264704939930385900726577876837309977491797080386376137933250258665462043082598684773210180630644052076860792971899263487059995237605634855846475331132499174686696972185271583449278036693783992292710521249000779780994039934737455075919876818602195357454963926467075296996598155447605990386318543028866364712071231376629434884683240684228621952921332694477534688604354823715347281375498916061892869015952958981538978264524453446580050208133594301411730453504787691333899312909117308467194977922747681743799890814902132382111067043781610008637352845907877442403438730732401351334975066933905167236459932061343363848281407201561753601889898837596471873689708740807592737035252912051573199537944596621097706096973693072736729550489082072667448903680238545198487641979017465671856932776690677076086406243891699561941152047690656047408622462488403892142501664481810039857788842942285032386530954663348304391768165925880341753048493633098247864455988246116590025593212185810249036396086092684769385340501663403108025783216355628066732275002273850137449682107190093151732851458463600455436690275014059195857363851020545944595066705996815910107504211406331644747932500613937839992423996734084630916148009201213879341188607990613350727648492882105243947524644531549735330174568225824386669347384892619087576716926956838456065937809408977711213074940489668413056236692864744742160653585133269482212806554564752690638718883719295086196366154363239910786036830375227544784429449753587173575423675195387809952362742573235095767870548025091022972030985460183553218100774683527444579075298101755867098728772798995413391069508590017777399427425204922801331384480223834045565690423613980077875856111436019017910963429609357257530823124139142013971838142145791976487272926512221630944678250127821691670051320654275667754687177501454945366226913445103154849989359061385192211270504516665760688780903098770961537436135150508932535123725695817834004668090008047763217117361570801613370872839125496994618911092701990407545628994664660479383045067856774406288603645902764200043070554554566602816657745457327536575824510719411449953613255710988719499718530517209527724394991250092515505901709656555704774228129867254341760631948919150337808515102762030732865739777931349268112485398659386988350036070183338898027436507774885971498967778382703133616148397956341144163620582356722087713132302605511964279891076651807652982023824433766696784578044094995139276773464405394437595518756158087303371008931680017143548865253647778477555351789010823231608116100360128263450709998554606579649724341666666919705507699378756839183209928799518931036937537430892491324168181578856772938625253282501900670727942466499039808935126395176434613243916158988756073452136115894815180500676761487765847484420336572464693220131325541700859275391966747701291533788834783879487623708968456503177854756745208949338846245147367941655718834534027689506877344701943451027600274894742010167558719997645600639992638730727558053176391047205343858535070824897295788127311843108610181509592532704525753370683555563891883840393731764049958740674356822675422965445419096889597426960324409307360435364286122727512642916550222533587916753183336922344234342863848183896689924838108311572886038259809089431080644001152954140594563534205361362834602267456156775218543722660406955168765894220982534065298665755876198279596641660005078167467736204079872563848157449431452306985853621025466635334136619848443293555528498761346471442188894029290163596875517345124862433946306799523856247070944201763918889447912919718392178481876488946576308372263829435785956999262667566350645659393275351500331674104200778668005387371645933429409581497399150512253592148773389792566752531938947028822168956139959964746007100987705295634782402282837245875431591737260566035030711858056139121030906548195144555536601740148148547463751128317465216301131176306038607678269859532283258868520819482661279833764165050059898040946414954361052639904306927415523025035444672340038950083872118887038632976845568583363656112947159314330680522968985428794584142818507912825323528384563085234452460916992129499565118179331652579070040298988958691166765120642493243970917439811788420433954852847207958887265529499979423066233319631958854086848944059953442701017326520559238654581106603034785589083542862187792057152901090786434078198009593570005986874144173797517703185125077687304519076426675728408549575853125912877529450235853856224482361054188427149385239897545612610579974191860395911711812127784794354794865414977917932477947156248710272048627372485850883950522060347656698645126271588202905497738182899984393856297158311308522010680429629111102681647702636135452397462265677783440565951313156802633832684421613716082934026049680444496660750224629096657856528158007382608057798026253161978776804293651483590819810223033794454186165466064518105156171531502440789787546105328894737017420263140310238711876912712786213086591922309339821664106988702880005196033027686141887128112837201577342442346182633794644995908219041076257300615771573547698344926094439755720385565841639169399639626977306944453655257149060305148489261933903283741563721953359556406968559718267579415728985388333730382938024434756465969503467798392711496555721684166252283073436940883761579107174417067371123491678763444902551056213219983902210339916853400648521704934216549340867124844604659757136929955216913704505417044554811348968220694285835162206822249815360060699777207801769625451107972661148957537282537531537875922788353812789640090226717292681510133772506675315360060508950582404203422882972193761252999217737418674295011339537036371622530653101909816112270699369698672557442043180722146580356118592567173477743810005442657392582195288042945513188173065381204522280734825748902201795143188004825704165963742095998511177366673706019361565063889917934223122069972420853199024865524462972205062204210697416500256496449680453992958369939106690419373989476225113091611423730828798388431272072173705741345882635198223307025053923868882072129588955442906563774625123632249275606454200265763830468607025342225422967255532907378950281866270584460269192904104804636449891124479078150398951274124217814160561382493932903728994623808039288192311037758196372217170370922864756774371072786077936909803629961868920858238566585196433644677550423631922414705475048205416515125270769919746887505936601546432353144055103927849013296826624216724085749089220146347459306239225044435690958563153861097180635087224030756830072682404055373809275626029031063605160116080277219182928636788638087171979400611948797119287165224975272084240329447282760016671781779708525201270885700712125064638273539694096372171803096000253815413906268881104014239854304068556879046474363798355226898190291695572762342792107874952794460767781992182350324932526172655655211968965217945776367753888636030504894075667197592104218044346933871960745444363200029281586592734223447723951212954460624927737901223198472271270081861851269317378584190212462468971356028413394817791340543517690451515825007715314662517349126401050473213113217585807966581184646651564434148920044831477734970687935362946658546472432261512465944442378943384033300726348693861013768748101385286059400525225725817430071081927940408957704451090102534896412362936533482511358270303264542528886032269006699382511621699198306215413269946550343829965715376905219203922239346441024373181354357324521223161582268696026250846945296793385775728072600551485245304020684996035076220621395262406434735482599166407065776641107853831584439891679423072091131098184557995570465664227909131952777827405224960967801154695642820388840561642218700695125850181134776987966563833345382032443235647940435298292707700085745592003460641627897252068474728552923970829603727325542795895920894584378213926019365206773597796040833435516478945191405926671474697762417749863815041775840120185823006504080902810877578337538991809315420617875649309718624055866512701672888452746623928471883591993536811873542926625940203339395295148491910357121366311063253756470429865340552340761677051721091384415665567249313646230983792484499055171460231409903754823952425742958361917719781818748652489263658005986071989497498772864077190701313838288771114006622482587298921968757062529105848402732404435983243131936046765495834991964856798649288942609247102568787788209745982250874043208926417678183191862600498812204432321340701107850128379008122461526372188704330316025524259583115778867118309060189403710055299059278153284707588723190435976778531303677010559679066154701713129495660290680437976317327712088034838795323710958836541052290065946683002908500570546642485861452235985908731923958693576024668658723682953164852087357818745013899487588346237550082999867705954455372836709814162172218721412675583541686235881596018917197524125918308473190723199468520952515147891361226865882117507051265725391246557507214473938777757885402827632863430766372090322428863080440312543485091923146455429320814708739537201062650312738672409520867649684518982240893803771705007544872209489185898589844347013779991045335632887807613570677442855471664280330647869367203514600031538556777703725032012679910844184762158483883735059196535072438682569402795529530792674015295056369904230120951975610347986091257364356902282685849649333531055658057362231812966168213875015481013828099578415436176630664245536873964639102645712605773253183285949361621733394968879893200779608118432805278491240804035278903298697845703468943633199300377874338284605357632439966143319938910255597339808952213809316106042682130422786412633244100912677244319737749980630909433867625274406425556437324818259128046511512524076127300049214710693057773053829391361975759979749521660612905263470129044630002445579995375566047865997874285430907763506765777494085867493433649859817311454317802153680290211152397157621357587482791593511520755734468602638179703913940376575177596479505803373455406093379339810478563449816062121752971200146268715193523525478815526650797928097402155735443327536863833752292355999061914393535790765701257929533044202122611288445754258181535439733590546696379979424045908693794942806431250704749964650484145580827473065080774783786099803032610047333047069659754796236517122155150318950840708158576421509282406971370819257956162491555680108039602683501851999340609182785354794356896444676435364376132779994786055767072212844402551443279699706031289006419031304867457693744890539766917844951288149029599374314831523938985236232241778431615281060361168476696774970815684408174379164539322759040283548192019278869950057646256394526525093359549793700552493873261102449916476108612265347790101786046562667541218878304812683973570350463035578342524731300557172522502985938730140311652685641512533626383719313778652120453040646903594911384269693539215608201592011459111831518806762311279440931695248877352963496094797455673112197787666083070122886550680890494537516776548016792350902819294911042990273111241131474871195267295188997778474199037198069165277232982752521666442912775869118207325143279230066109175244679339838081444572040548237341678369932607005052016808866983955881000142109895654442274179284654521571786991899503053418443900735911111194808696760446600695758291161578556637539238981878185570332214425745021198942954017634546091445327750565378090169993644473143309754587516854373698240986741025271452116629642893436823947956189871370751574328794250197366120000682346284351839732622353122520230348605995754872992302252663460878297488883410644739992900294981966500483945398836339433166141453901082947831627544108098179151707953542356016480269087113982058812381829656576310068317850263940870603372439107588602489568840217617393866321840463523912219218742393948320046553417887342502027064145466342832798746030657773622562414774265740024595851096065579945835944068332449127616359150289277611236695497096423933013129725254347088479096263762074808623037144761399505514146916948593579003583614643674848220904579944529705895025633012719987989144267088924000227809520210204230421790589266297710375476623302668855550084496946093672484197362931352610660019986724822978799619639223887954255826478798687489708947265935739386678510105350898925488113415010104495055260230703096308051213072389498767034208773321279053000832704567317361561344551361336465279907927602257621275115130296421017510202655325257049537315848795458871462856790779585122020821219989164031981437981032376405087743785111364088382283076266982035010684108622994540322936237947276798062512633064812993745297828447679276756476290656596524062705659307381687112808837237589285239110055076389424110086383288331114905799972042545873854075465174141689692630406396184274048937909389497835517199267831942329956507864734084606647131288951168746802123596243495968477015714356830310662634187333295090735612936387842498536270290365618769233568755885630968559040893409376429070726213122300827853936129489219691788154669486949912027810816231625078058100093417057146781312666849649116367091749301850047910497545531280662618260256208276317693978071592973088213651345596844754492182985416246822851174808396844585907089750457062426566713071152689428599721867303027739157479459276399449460217780171925866638553665533390764340808079494802420290044697094105154841227282807596662322391788383135730389255885083320019558273814387099818696483900429072319476101053417463188508274637718826031324619591768652278099875766344344767552891893929845716607721002554657016459328788654714402295629862628878972444537456853919222446611265760643910530130527936447161552390867521711632730440734492820201828982513026081350000759508232507650490479396645747195823866576881905760360742815146664478174464527876362533653133945522719167519169879229603456534436745304950448073375742465187866179140280376782765580771966979049525105830402786882125332517118918565459619987582768650672363736195141967245056955596218816035178092903988645863308657694712866505020057630619482457917219911599111072676891217381798541451892989672207914026289032762429879650508399838808590991607981962241588998551246385894784022373449187491435245504084394698811964580291270354292070556131964686528852267221824982116312404211814774631908684887967869068885493250677528966306940786135184543156457475894071310011547575930380195342102026793305334302554986695298085077233669248242171377826472404369735256904570862467384774561942441698627624883298424322589442663144973782129347853066742068894828726198166843300039269323033923547516118995475084745375745014524071501737521236782614803423345954066228251260900381105505941463872277485903037803099727327944345275194578133833641475174544154618706145868122642109622310340214249849474656786398327325760566439980044152969146946403797939989555087703612829424399743447756725771655318632284253356159616653776032921398468073807984356719976636047549165175461865616171635098433943433509979520634042590579821698161016037710188577317821267790721085892660691973388564580427408808794309722148139028575918660446316540325240351882750886885431714174149208384283802138039751987720980660747700294952774273956142837500792338682903724974765425619936495889774384822367060721313152683035350891806068731224771749515373991233335571175344841227209071596344347270325742484839109347836690072285653563561767186413439192370652193845722996810759007767699334326646294559958999460549738238515900383909304965047492772452600564197460010111552860729972466230633131225752113320020527690974930741728420875944034918047902166575901770196762189829367063121162200004270781271835532270572284952387270287386409611145340381927296036637262541018335924675072353760076397891199707672639956063389000423797384574716888727980256617300494545923143516734500260831413620209375341348797469386881335160816106999750193823745695950938817717596886887736082984615632733405214732186089595132941825659083898772476760379745049826277448887020960544451900876502970598932295165529882610799574775818121196059175526762646503155127319100113166359224247215926501763664036805817001957497390407264951343495166971617239212395908929239833941550016549494305352295273984455259430504321753967120657385279069913478229340907888756284129952245933352927440670494101449042571477311577800108510287494333884329413727372315858081598894400088317630290310172127165727177328297144755715457437992898460359813001819134623610443260382793050120371866743945695981467081278812281720514881294396213976831252167268322101449294386422712463748252957582056037670733969955764136912966762594594179864304729253090161070103805261946307581783275170310591995597077885272333838171447596118972339292008276514256967056298692510101615955282177458872890028604782789714420956465792756446480132922738819530483408830009433534819469797634469489774786767999338874192009837236455049177865622105711899713569656423880491138274871068915549498973140511291404334143779099394537330169527130075093650720060322938096902019886836009951397538466867550250164251361016070530379183348276462502630010622531733693364403875122824495381025917948680011530641270093752052837172444519007309715472021697685013085446291101422799251594951482843861933245312641224672180815091446438146728359253291601733360679096129990863974570230503334656567855409009575011161811186371338423119902841624649148403473280115443488564490526428610382437295777884741976815144134271412715218311660367602209074805194923349115627554823081929286603745442646695506017797790132745306334681130996689825188628040951949429165582262379106706281094170308754725801915201869993081484645280899491765956005138157061917619881751757670879447740924859743615249177558022969489823370373570627190017866120530799665044122245795247493866045401597310598798723499130565526017809677681875083542155530051333582412830208382626396891384971549797506602243728000617986261704203864245502541634880165071623989998367125406958696078754932785589270499126778237368877337973907918922210879486250153960756472929344744575285697534869527891751715618947139402130299937797781845648645301987713963031272685476381731065064660376663472494438880169198972005069191657144201697865361599829402975632409530595146878533640847066720212268110715038862952880239608193497082127155502753899617091135543685207972372026335582316269924954642844620552644308857345393626894064960726382062739526436889057605580413588787518231113560933619891417753601166512662342973565668453329008360970113579575512988361245548930397089619137688363774838983794669308130593186068315967235668504645401145953764832849367727466266718943035580383880718869500624312732231618417776277352671465345825364522507140504233745230494660372138067373373526970513197538101360462475958512909616440583826651769393452825395816416348643199669848340929977603534314797626637912177064354459816418721371495166802897905450559846733467430805885644331153512519282342973692985298084187376559543696515405201864930893335502616448054257777390171073305197541098429434069396136367143910645212743484427476160836998595037703369146068492350035292920824529602583743210484777757239654921025833748710523743495793118429501930740237673806977341690604422567424463508282690994622572935346826650674505982212637986858421756129626295992676016832348970703899180661606959737048246360028800882037278236077088246578099117669693623979713269985695233365288719967247786571220349718520913951454071352723960011481470487649271044307171504466257287752844145848893386153652640781542301729871959096129221333295005017622290738845289739988509536687147748844198281265683509043021810940953569657770427834356076848043975994110212038055784940148307417898282684034914597695230288283535124967576147605729830129430085761460448385441153345787316322978315944397637755792146216941691246269278487192757389795069460565172903509585556342401691937408664585027272385967364410287991383423661991899659809518577964328269138837212194455856306151733471282834244067273163273144494864342247415224145790623439655676195003482134595540604256957494793594360976875592750122201102587059306440102247635395870923958105214583172397640411600048092090612190567448936082963233263354579528428715718315266410966019701158262484649715763456862411702804152437371868730218105957912831216219406139916519550879759010090808850041950554006900207331220262504695946389746591551796607710462964040617179173633465201567607729023786404122388583333242602461301538458018845637060110544880545949240048389156689741262462417912496810325156397862596494033544338717065260279576246186458601776027500365218931709238607609706691583008017934244141871518280259197783832974384431905481997911521051838034865679469057462958423733509928246396021228262382676413780129415659544150184628105661743543647276238951773957274017070147932764801368461104966963524934506163671636116220645993682726473009472220169085661079762931827780514573383781638341411328656157733446102833011354602337178970813795591554292806381640922151501263512565896359796804262990992715750857779328297120961493131183691887710757001331070560931248228417772328771399461813950326552383013627693286846192311071386051738097155742362341237628325249597278053902497465706615303091290188241903351595738402014878679535920345178617213353753297207334362230685920209129503829275890814826280632090895054714462362722392867142893807732376263726412826395108498940870933926011657357254173069766629916476846700811910714321556817963860224518051479606674518842752154769155456048878559761126098079154625018959908655541058489533371842347388345949323711429666497420987704376528394700162173438819924712675197173411579168324536481298925248719110963057472265799345026278074933688540779978229143035641282023557631935465177451019205032339722121857851477989446410090009808431883149068273561583707853386312910730315551688172170452766174691440282248626955521304664865318766955129060227908758466179626652135886582911477277008790787710712926087854158306642450732441643269803858319971503760567252081921244416783494160065053378896963014818748110637539723963135942815912834586881384412583406408620010495635058724062770964921552601588706421773104080811135264725855757548961315135517904810944047770288774649600850094845946230382177936661628986486413172486238837324563890198192118096358691692191509528414692737644197652923083591989377616285581956348075676495211432279550203285107122522007089414430505426601630766901927403001225418360522959417287774533513951889169059773352466438594209562947783732501849687141657233556124579148940245711106972712145159229803791345708173362025407753177419020529029530208695745607215930632041162314619788771193199292788873005944779694666878761105922976080692369974900040089875835397772383055281433347116762484778007063715930534959226459226747308039913164143923568153564374498899621113189461933840901610594497858121641984188650319191622330841801794854702343876684037929821162466527512203828337637135392110342515742454979446607391980984823137485258199305904873638412545960698623053536359868607089178874222308689108088231281326121328193220898208885437321289316937838179424039198379805281160217826583337613132929497789098720177310552161576208085735323921997588753163175256978408097251367804206198318730511881178400871759703488946032711226143818249199950372439767145202048470401983657982276640097792422492990033050362511881614172901926780559071809060357544483414763495238518766426456667470428796999742471101373844078310353145337413014508923627765271885757237985036598521275777070917786221145635832993531937203342809965570089445304427338747832800114771880539222479048136417972033895981800583666089848348263681467638000650186056675082163771810919128721365653822085242500459302724780869209495866776607633665285487992476553119717519199551853643052112346540307090106344108447181195966475426840693993661910661190631282579421044860764238379944137343437449659021464673686964005922419017934843627031383479744222492151135344547018620915682753917802697194805259978281626609324910622655740596254607999960854751542877033476156360634072316859400148772071246287338161773249216800137324286886086666953249818838271380020833540329925000419533506383317434589522212545401526336864014470053221704502626777350782532125034327153590351130091737517354262595488802029134184726231614276770256974365721940544865542542494976983027021795873346854879230407661279030749322765670809827768162788156203965718680547534860166260236801976513176861109935002672063130226042627988997829456859115818233280796302272435947219884122102938003229490789039744659784903644993876472467678287542285233516522729013328298185375069864655596708986693735688113687582858826303810493424211541477948500118694674012305154541724852952036900214563248062664662030714113844945251013966374184756510641637498366898596841424427675803719365148438459287642650688068871470281999619304667096118347708733947904070335962951736398640111230053738119477369344510663909535396537932604033719080606346926177219012015070483602700327148381201232396948947798324371515637949493551102649806528387015787839537115327168671348289206491515202284887182336418812957266541511450396735210222426017358515831725548491899429375608087971301432593191606222745343276230198159094239519502929232927167505007994111302037747490117567275062001735997454810942539733744021656575943787451120309317154136971394393648771330719345545185365848953863067276881600317025032257314478539499193083048273772672566337086761156295943624876855652220672174535073213809503126531360166100732093354397063408835323003121704332874800781026601101475122926773927478717126546571628873735978242636685454230112673749419921354248801603046592148958300868277880166299510433389874863655346103983659610396968570599253584774355645107524211984926035187082717540402596056641342393907277335172526364657547020005671339435661482786008571421912590379331586230936257303618886374296167093650027949678851682241142256240020208143268534047779819321626881381156738893449295522242882685576655706342376071624601585361246780745811742785056992604594846870327397544862994295494657291214278019895224608653831126919166956234803212839818340487264209382389278741209945190211462560596810525022706163049531543493236335845788218099021998931837338334356978761700318356135594829437291645392329715271101415999048756581918922528464158239353335600855409706351470250704497075014497502324169088961337312830059135590010723560754087499458696993268002488802056062046536197322542954820878424352998998387652277772244348542086541880390672569259953865723788781177143853348931640439203086163276731165932613807749165768416469275113992935371060350982268723306305494877332129397631288410438929667911859377489950399232258625938422822449785513304642779838966381465379964685009656370597366680405332111713862377327693768159748208990896299642341095409274710953086027298157312196297029333558575899822440497318284938156658580300662211263630006256427313252188568378795262588549539592006068009098077400526753323902675198093778994167384449558953467321261797436372899205970621145441739549372684773970833510667803404412858895669899179810252166043611568431132787307439567688043884962881006958518402971472010607412276745259531613225414252333314121600643655405584329535354679211551614081681341356709780304689063542715490333031195410873535450987413976972001733428221447678856114718662964705875611021043462856185501296591946151016539182061917510224118638005168677757184428745012069821379126859779385357612262481588490135867747877789217399006066878932857243875228987915673710274278757282772115714295514912167635611563731712862477642043775393798594269772224284795066157187102763955354399073392399154373927340987904385713672496993853899273955104072072446252053678316946847982292545948010541476495460541534654080108063092339166701946390975920160500430174350593938125767945069645246097948231267143529738283072538154287922976476002878258864626047124640755143626559817988641095150203315477179000274963710234826051743057151867956825592390631460627351077853472984599944311169843713201997501637899996012918080800278785466374154063367080398550437340119916602320335390292047832621392414196428323304856602159725894106223895653552600854971477820172173767022916138225560188341863121075263102184522424238858824998005631863876164820552415178379043262760486351778838452973260154788340032477847446976702998494496599603539540126484746602109644189694267970959839946218235519041544024923342294555442957696428310439601059294763182420524092478466676646656393712144740090519738469010718840776909048187019828502520657740336879140475347956891501339961533052204177784541076471092356491976481132737068940221038132786985293758539227485553767646769794459898235257528705606418066789214641300789357763045037982849815960380219253103066721864078591813201250247615201418961187063387982240604144909237939400416462207690787490523610844558026057210299623352577206293123700456685623344422886458964955654506920594271862542617492896675577852155879115178236119637868780477527208419724622745886633068900002856914997056421725713045500140947467640417617272374044064989472682708840628276350830757478394085931279321504221934663796742957891180166952786909612603065307042159806225854887162069053035267398088542787233785869517597277391798572527951059875739748949815863815850014024276132531518181868316108152344141227040973042311233282061918624379314137512799775825511229826961031415201292392366954919700071375607912780335079292925739851362751263470642755962255274214867559996211689355301306639642113188935844636997989274490499740066399616693566150832549736652522908119653826437774558664684303842222265314006678315623103605996335335587203806785881006120512333382121306602230749469360304368857820257576587760181709897930496767697800844506667653200403894895596183613279431235971380349483090327980775613728277078409070959956716156870451150206021237105357284021899294343270902204640989710001603303961472272697772491583489207698036314699136410165211420453219115475398152619082673153729874307503733915976515446848076272675698210093966450838228989384127017985881634702045358888994710939477642414737261261246750038394930203434116464084242045684787564707308886937458700048805092042048783970233968328580570572543287527386025936049632592496441902661083829112468358530961743180825719707579806462188609823899113372569288602895964291293375405574227207303843106388703936461476027421527646583344307811946680381124437651670204905674569826152875233808002462636568320487986484399973546960234668685968147522727731444571682841959378913405298471298252322597870690097436137228051374089143213224713707724399756195751294420642603990820096804035516677899932263078903314941936687013312573255711700286741169847984175930615264442636832120001982686418766352992635869387122962173443307565570384663225929283377129973166369228684762192164351214061613990860409447145298573295876115743748782960549533679427111500330452279622881376945992690395186680363843610344748043429231319047105370945313051137845842441269041319526875998726050711729570324360418440439157738227608406945015113613811658051908307942275419263979839636695982925557956164665351224846225606963798148426616225082847744953400952344486529654258812070582276075844752930279573053653110406399902704763546925109416722021514260485068363681039109363263090846984380365337347484502387620889697874227147397293868080373124575270973507888505881427782996180878900001977610340483632664843059767117768949173561752962883007918764523430968099087635688557229089282393916766280846724878047181604900726897366722051373982310118297009967867420682531846790516543430651316765055880335531510567137258096777876692810136125323476213129590255569131330596194323148212426984110951757688895827604488504576134636836256138798384598849291950861141952137295371636823464020800075706291734399064038608992325502305767989305983046357405483417347535348896122650663027301875594302818120020242334575792052678690556452148997916027672776182049883344999440518141327736194212298824138783128509299314317341439471341061322552997650208969548004582925782073106935848408067063522974009052901764261514118914895976642211946917683184561471252181588419117170828918927692003986134592602712748608012208252265213821366022268749392480179205290348845446555402493708838968592172666138034463595781017482103033589271713411626639270238875366032350638776063710119895016040573818589789219312514528597527297329259108627573970168508650081646712908518570580381171743974143366739322732617329341494214987789467027884461534622288753492031364778088452651773228153437738231149156517763337325557211478869004062457735862731291021151533204179754409960765577808903970714478494218476042997053957805388328985490774913785183379710078228137214340284793005801346368936186571681707320604468700031952602843377759476014072140798062344009178452746015653304911371210373374239591711703928046466106199494076493625354642872693432361260584045949622462956659164182537370539714363623529425421330606294313977663562652789987071894349726776597985526617419378012633040014292410351954985830438492262939503619225409002910891831944791506650530748164597546958759055057168145363505986599791425780118747655956689523914737087221856127286922687761098142543445925006531176662529697809210250174598482436844423326554794934507388189808184536396245343893160896329839154347083338273686483882249911576643744541802241529490449795665342903771899404806879059740212222263297625080883774791523512437429350009977106962143655283925511741345551388466872985792296119476176353658224866004635659346943000220114845800749010039257103263029697021332647166856664811616633445654797819129099459130170721389348453833593490300619538371382336975215686420609613052259453721664447891623512232770529850581178949589863584897781567305704579311703776880412063541741843685998512802603635611526688213231783614558894976434825028571018600320536147340058383143138300841776435959560887920874192258068727859630259918111130211025790732453713369855275522521336747579520595037225203802206159023274758410746995198376041729458810563473538484671925057768253189872686150110394628039531450977183579819636427870331797574334068638959358772052829212667489981681002710570513872698504033463302818463917220941159567825619038795916482846026586999434062400490764091042741143767164973779730577604393053394313955039243646426046188470971374419838076402328756903264474806014788213720784547675148657357547037681720640540334366410201333758817954476200290942833892134208625079741590772416002772605235605510099340224158644782527052448147094925718414002930321544335861597792592114569139567260255242118765290082516409577604494339433835563054334263860984612211577777968173579625219696765987521967852699100491707706248045204059931180280167360876315017573366627070184645896609402929360652918529192006121267375402452392320076285949392077281961705014092714703730367915365505084747835542694079656903428542936943341372280332363209044433512719067709251806367683454498600977706995405640638654567107587798917056304457107191588592714657934255256461329147116645767493560667395569929779017190789013396580718587922899723205571037584260902806212840515032076962151264247167845416225118469141919056147018989977871910986481524606353555994643456837575281400860758239474896500622310340919662498648798802099382079490122024747909380287492128632675133163000245326991314487583159850861381017572122497652979770677108040456494381718331310465941696377694070476255894700225283855333961342147625100970362598874569196285329810283673178099338262625543736507609190198824640099828562692578204639697351667189165878326339591640460122005515136728069553436825120075684647888912416013843876319642347580794802552447798049062684375569392090924485081097613572460318703118770097045757167576947785639966464929861884705335376275261327726875817449579248630306070804775960144295212201942459585491935879317856150922890536966786826779650058980953702070676197483001560682251775478766293286533180996222014441591544507268149473273085352459790245367444582729913567813726316992813493389197316908436570662467885602597466263856870762268930519818746947500502633544815217461954906311487478433208997150486313570091092240721836965955552548381832847298799394037795780750316901294289852269647108037336911471764824468075661936120453007367048934452956649232242066706500533727442757866220953498197621024826194591489029705367429431992835004127354271377389313837641596545525533095645926742808764015078100391360561951475448722905960879452372076674189581417319621341460743660863251900793904421759280802885959893458596801808694144319900656023966735978266804273562586854057060322082413675996248915728989704325919272060154294063735018197310200314046533699027526228267761228947273178842583105382498138185249144135159435012308085393096271137721767573867746956025583442976987063260877022345589183051003561497981949365032301086895876376111677922876549033197945652836608334558282368778369194992284977653449720085467846011385800724303924276215271438423900128301730768956116769833368199503935823519099004615571483912506937396982499269288355346669150154670141886955731072275545056981655501268505094512051171244293897321151934194303311261027968535792405753159013762789690601356935195170502279036051868587786077420718192551291417811946795723030786846563603022486672158923083282959794185959411684801207640324882958895409387255784498813988225167626169766058216052421963006413169208913725867822774288107873123972215101575229131047335874741292503194919838239770843334823465541119338078994256145828081848946087150012498673743648508570233007925267471779812972850090978730384695319539407184412132269374743999709021923211131318758901639203709794247663174586737926891941615972893551496902625566821547032427134396335999869828830948209902505162726923842689344252555864552325986436102056229790313371397751741624376891028077396868337959118038896454479406790590422596826197547101369637142113425509740462085660864824017622509780099569429250367541823979277013438938809192635016688930614605876496776430235180004957247832068016438197772625232065093940665425781323580813309154245972789364416163519236450132045613205522219733619537880106530432485263182404567369987985281236966115883881702635523052911666630691375273917649696676044771319359743656909775159122719667221584205797538191985249126533232941347347980438445136533941141463295580410235607974392270834215579966771771565150857862634316886677627047382569468166932988266635320783352527350807083677542355845026696702176264105927007725417694205389014514582121177378535421903548207044048989599915158797431724252755170552040167051846151355587895710146078695436682177220990636607937176889928829863006853841992371528080928014963838302925801031051033865516984945887139619316621772427110210866848939839842687093595039909355950016259266473282659290095814643639109513899121473548176275313371354702630070896238032568970638952968751310855540394167685927077537306296627406020178566396175102870517138455930326048256648635732379064645474975019332053638584406731432898304920372907681923052692374761444322940320834455936991462248938280121488859266164660028690528674996838627813629625569974009400992457640002775731666479920972238365488276194138110363294331667553947654595505760445791250133109745646039914450898016825536867230495380838059329898221676537776565050872527222810506745926419839812726937303015573314999470063607981192241274404622018347711961892915732461397832081689319858969036254249037974064654215116347246968018790938135853675011740843009221768994956642025783158061086037558017263566615424099922295375612324380841887110146164136263064284424838563777452089290238184814350988298674804986494952982373572904334088487628281973181625802206405060945445498231554822109142241377965631776311051679357900197166543361594064080691910167501622674047433705201716382760950352308651758634172890138595841882173542586594258725037186157236084028561571464194768827652256624472181338168581397953747535645380941096468675364088939352288722229394947873430666451937770085550748056639275777955346809456168148404673975430321021785093906707428161726555805007937363067689356370746544697324318052297229943535513987584090339311553479930255673855737538716271818506470648490152759462746127587723326280117484021543956519792126733559673648620937179577586972213400283342164829132256250492448257679249981640703452191889921664384655484060277146679357724145128900120756373615422340932668780393280109528670211865767725206755703483666771511750630359750003319356955923040323906099084168190520020481772987982133913904270286393356824408345819693625006844011232208955355791807683634512168905193908204948814180100860553442746955666414724702390081177861192173976910383481060089220019043863347367933976373706628156498061829548557297249619522336569244135598887018566736027389271492815102853794540659121794512460362309070314973326771872453751661155745070998380708075190002122325795790620291628105242536446282471948536159579288745801412615969264054510530744252491925635708565877597252330319996933203105395489999047166748596877681917022849780496801359996301299150054627144857565948892266045199147476986009837996774051748480092871375071001850230960488061164616272281729469898134992466363342550944503079903408404232043226151864545391695383282707716037650435119586185346690698151428667609929484934084628740210299422297682291290732584555580748222638109700903071321858937326586242103296726038496027504218377873712642657268561731713583265430048765210804190697268667524801690436947488545877269512962495691213146212768629801175709007297872568249381833766327091747737026143429067761977496748690023062101436665487865996207462120376789488346147161176010265408609947948004866046600360507094646694359329648404466531890811712918680565970682299400228105009384088958530870871720035328708947740933585205656131416531817583622071153681977440715477447951467970381824643834439127190960940905057316955702166140210773041437919461078174354154368095093355092893311824161731562783124239647496933632411209238657368599276073177075629641132878971175109069212445764641564080965244897677690249086496006518881743382378609368203974536424333449590934542065353285257408238238492205549658393430271378176122009809466719356407689941814173840483031303544167264786058764550949518218335624352635452164930892442851007944358700222977834888642262949968279012042605214419695593051324175530157630362640629468245037766024058087319017461906191886783860561351878811298313586166801217811258261812507408729255020659953388072081908999702104404209150517573536079406242704339593278182387699159814891075670130029757308263392197626710098030603448716135414072242247156441068736677897210373113262052146838609605894366737618253717306915877988247174774053650083474614584360495342586239345399044792497171258179090240898753104562015466504661186738150399252826886310986480007304556491897559499503451029831100851296007164075682445865821057760045738321155145659215420267463250152690564624554050637635224504192592112155652952748031828735008458093225473070497507580657926061966453803535445314748704332768200160201905220606501605004009826218824738864989472389112967281749963777255085074341604836255607567563138860378344057198636319273540598238777497521281615042854312999838844287939968864170062761769039051495513557103576909914424110874575108359091695331538945635512446721536536500636788677143393451863056079819249020509102503831919258506982468865729477911860345733995705703233786131218912589776501646218750371599766273698099547283047363143959666967944265937817326687246686484557907888461756897251703104159282773477093000761381655515329372157045244179300985492999160414542233686547721783971098762475349932096579374676447807745328049165531150279418316017558542645691552741886032298271896829348368037834636050774285830502194448857098711763488800288008350793510781341440674635690618694838895325668820553051131412694406723129833715488762993547277141101179522097289565513275830187263489855080244010120453932743284794179997838944667526074717499939971115286071288665510500745148268781254741000152470553830797002911844514735418703274254759145738144329279317258535430199191471987189349323719596700564263163029962109925066781918812963023222013786553671480148461946659114187231453262849705945849577673689481728757350850653528816570484677416246796830292544530346726531433103240360272925084209996332624128912066423236439329723617479607402337665794037976500705354544447522822120246868062047920459255230627246583387614330838557019716981737692451194037803556995464077570631007155202137395573229406528709013642657160376323081671007605982516672506353513761909487212051431051037927284398917676682375401867235789996263397490352612859447434657983811245931020520983167728761615352424716809672347822400283503537645712937223727401024114535575247430298920489440862120572698168316240310710726531025954071644945465134766663742707263783240076301920973746977452534122377512768307195093177145538288760593400523730915096447320409656799779975860665314243225515219101748693424791407436522743324205532683696184993692647438588696172849909683793774360743924977109947681251772215144858479698843039228475023266913352082181973262255293018541519037653327948130602689825729654876561366001793498922807626135404126002115428801383095856268659996556357600354692413118551136677760469868419141305862012406801790049251296072917359816005489938478558975515377291172393956777951895874263990660240910715015849784833751044370355578491720397253687917750203316592710355395336412798525577759729477383817696665126450283614012076910237812358042591683316200996279040742200586330765665051190930314563270425411293712318964378152721353401930546532593215007854079515364953128465720234124428448657425797403664125120599613037555927867046841351906228866952779409039815738673620877879910984154711120047406919834545380835511245071760528737450137555496375887028525153405362157208421695479243335113031026433923872097881073898646779696416038600280904692810424398101808550684973449980151849244772356585493852599610066493971907059397136897594660181931866286246778406743469844206888371759264246539988032097180418411728918314758857694134073897728420188829132779000815149623903148080987601431965415159170181696795510713322529293595228152860165544221203563116399696263766928995955176784135022073144232069230700796624445549696911070502645260738408724513159274355193958806583659466525130653885591577597558683546024838171126129951538936934787256960037823898448495904462356932036771659496832970852927900544620038453629027616207153943028681920612391561706138709344873817260584978581299286115845554533180409219132915392616007038927239092372729630360821138503636655943297891737579660686216280889336490110726033535469937239367741362317651835524915332232346681397754705297482493441837696131148116665032225066758836076662362757512692199522424616998342440772973345750347522802627727881680553286534943720905479313996999019210747689591520871308218070783852340817633935996198031522510053996956115437134008737512491872009229162503309822412705833153706271078509944166355112215149019627403872256003552072086978420722732098737699116286894682837833007879750528281771259907810003232763641514175878185325576818945338140077608699276197943580612563184334718170433560099809639172165899532449878442708524358245691479751418329861372474314088680608393565221406348569919279578092336074374500922833025022935276824749796414236438626805780818944230731217852360575684662053360791160591588354888902322515429228216316087626133759955555050431324531627876992798541038757035129295939063828993540100573051754684567023143253649687217102223322431522790228667776410123502258097250046297506090662443385345774878407790020271977823709785027785880332765187161903090999423666780683510134627282424788415431119361799332937319394535380137921724194344498234735872541931268677467709937835403206990723347491736243612041504064234613855434015015781554663306235724885941040002745270140211540272770334814338499388537703818726977069511047975507681006182547835428130621439051704414293061400059816150917813762590563832403121562676790727965131278493869408596166336654064457895094921914661119552513985602470291109590827777121198766738271160361663751577015944234172998227706866995231945479665348725911848888981690347048767734750184965210314981230063496437648471650997408742800782943879962872560621072812247485132744202218632676088198381564853305810985611877310317979880124791282441927790067234898002167253377980197003566099634808022470294760589684325875901682440419014341400797785223018800525009526291009139224669481723110666071301221171665986374942738226493670526774941197582450844471207572836186608905042679959721975586742764555130658282662148376252271560688395364148612304879049943830318169817011727723218683626137482944433816080028706509365391673377263350973932846615392476024667135546341366114420947206736442334715787724048848102196386238831330175741551429666502975840006528542734416336987385970228302003368392844464430479628694786076904863967193502122011193473318650152184989344930498591772320785857756105606996549048081662200808893974916560037426782439676931127211603119456519771646005701106407460651397530832130373877906082905171086707310839797946588511142724582336082051289056300098772706307870238498071132139881314414931245859486070710804111658309743117548957040015794542596471303771853225557666522904210896406832769663607348251298728073454391936019423692187748333439921523990842191432268573030136037868306787365970762210084244893668416128048303228870714288137514367908984863761722001697222954623291350179490363819461764873520049513180012655926635410955280799748948822985810484351333697568245900188043857325353142951010394739810218160066970584211429366409520076516604222202356626908377734436192196747454626002038450683104763711038223560834634699429831147315183380725052483990644942014274245570627976221715149263536250781454988576417478220426042858219648764936686802948717682686338009949733073340431917122101928918694097812380646921822563246490588230862051003733735962890213066433430729312074289811190738469277312197003674463647664879996283311098218478086272972112580965365179780156323762189945824508593630295214358776244954006854139929134641897396754283162338277040185873678801826895520720681674819104677532831063804689629178767180006905004998909630741188401815018413067215804608616107500975113082858829269008183318477574584148884787409083168616462469659543148501896846108876250814478382511674668682926857125704907061900329457989563688300720834846577372157743256785623348701411248896328832437175200483106521204354394371050908101997813530799789620239571977849780726323864865554040894864323534505111030392903552615790176768150050202547649054165700363563540894355834827574012769057666150189156577611725198792274001424475571458850544057223934228012972841463405558410807936122861265304234856173730963777179204500457096935255143113400260755590924260867767266549491991071626285028817963451781265641615121685694084389801033859510004244559394598389624995846689141815540393680722933944496002220558337312974720540381008242539159708123801146342114513181942856444895409195753252017691550209232212455171292386531604317347608634375680421476647113170880220101826797106312432846048383970694671353118926245435602295906166147214769081989551614014999977760423647993429544473930098374307645247608960739990699402557068922182455449733441245054964635544333319234178174848648073908600821213895157599211061461899811864173885511715813876222989858688604243461145669188856546719204044983934602035000419361998336773418753230880968045993858860893063395200131176607370654227597180735482844948131157091876551111664968918664504131903929633207468600576370874885763205059033137351472264976656106862186317949031943594021573625219040140533985309676274424474355712594546255836471631557919777608953301370849082222093796546822036371249234166087704270875606039257373865743883676006532906077432567110838400943055122168894136005597572122869901265547418750131992455297193789500789180323341334358952493463256937668049427068892835352691093301235131386303777218043495524237391844622805205252772994807669618638329016457969227013385285591020555522472367247054293160769229729173360950125029993522166272626623873783617907012277480110372961640458345296794088562624221112646117162595383294877459577815397045572227367552673077102214506805093459530281938233681923630498522364683242289615414113224142521924518091614896508313850154961800075982297037628014792394472362709598171877884436428490614549657905944770181027153027058817643202163686956675759095583936359530485435450373363419381651076917572784224216498640605572979242247696153378036540082452401526704936401735940403079563147656909992690195299551422600890471430372755977340329002667071238337534396512949914202085663880761872731759339321546289809703286052516926158632282697587728860051829303127924954988462207309573908728043943674199167359499699030696453584887117478322082155178647799205977994994129336940896463456014979453218873816633015092023991821589214617994856515931182732470086006248017786698026227219759575242114014364621513922836836319280790400888186433247362228318934780661001065822798740505651178759584886518127917305532080721678505096428177080666198897382106185003256334925344460054534909367923683700486585894583892013590828497013380436484217860330676949512171312019004426472646628954224925396255670270328596748498360329212842125837804900306870376266709209311270953922128271147336381489521821648717677331742534139011571512313502529409081376512091620244128791629825067378914553766535455573885509428014336793130699878748629973332945793785948688755499697408461472409481420167863854755426936608343264559063325806320751248704550808065394007674467938920140078594920863364327681334682294649387725928130631289795318548235794880718629329906886558535751487719084487379962283001498423331041290102446551326968743686617867644346904463976712833616178771179624701332089040883514685775687759109595085391020118728220519597993956614438477824220340947393620182684732273409238415232004159505781368326783923898903701733062165670834209482174921024704622525956485811893184121369597227953489047904850340874336227676899623503441606032969621037989046473966420486067006791595090206398172508239889778327376281353811378727482185664364752106231415151398574643631229601669209890905170629314396571737006529219326144111502652632573132143748926002733939564416016515009511257079307938309878000377000185028153275525453253553091572317246140520830025835419640098746702284839510526067669491424052830385311377805277177614868619653472696827040420978928418983213599161660555805103314296770502900818176402400407379416460676822312166815043250843186832025084314950385875768365394928371780036341361024344633249276984228961929682049117619565046667833300433587883080689452759213573169803115481025778890189861604409623090834611037251108951607214084436951676285086143846865037583403130084617740744369494010863535544386379642016921358620528172920550922580930957824893087233762063413814241979679028451688785909796846733561421814669906561769845116408019631356780569316549253676522203118268418380293254130639677494597617172401479351365868667264277187766233533534966679996420979989107558416173914178211451145571432747695131560194822942559297284086977522368919140275996853235445826672898384354677181625830953920835183139877585081187801776139866310458513846028361775234062878176791875690056260098432691863716446496045913566627828724169993665939790087266037791461491289716503724491360050319302050447776325531116310753460118956061026014262836017969650141006270120066347346134477020963423538120551721009841363699609149497885737179978802212362863442079155341095821839481998088475960007870881928063240009130545482806605322002035752063061251038808331849790781109229984651744298779181730094427544193730743470356335530186554511133096333185711366222788530453301781527647032430792582592138808085016154278775937208674815922262271502338031618560011699212472918112786595764361082753426039905915823094692804018974178613633047082729058474822626190713818532576661246294311173018907101762064182845880655407322950556119037459054648726405859964960744648755144610964262671805758650744822777802534047194319042193845002364305975051297713835600182385226579333607772541651212765182207195241035010622112000682959459928082927044715793488608918674733290143121450096199795139302973868712385209123450789948518903123827760968600563393560262349285464232455005946144143503260058679445870421490518763474485978475518393407812972976064578567190234222051145169690125021100132366525888092884033786522980168856030635098564720176188448487894001189574581646377081578773741014418551871498845280029089610534305614767748214470667805063254963902681501068727239434282644154798434389103768517662943706660890333316420301022646266433270773462182214172282301185187165816760666571995297374348864500692609059490058803137889541573286906538188589133894680262090512581609014919597438413683064621295427653230309178494054515190962344904861025148450670311919972028818343166738895704516793285168191127714377712546503426289218152168725391598191404769300502249656376907137471275512269883196759438372693264172140848107499109598580396235074646028790438564699211274924247272031621241212763270868597840627000548065088229561757365610782477190781951910725547023255678690830000614822485595140094567907554333644342855510870842021254407326661761875284142658094642269336725984664011432911730978678859648336081722008430457967245995074074154829243662588351785124967829376824796381075733923048012557029759514783301480558874996794539723330198631813704535684008039966143206881321043065272700120399335956073078234832571904038226962638867737714064488360685183879319516103747259855965546468352875282510808779937938716734145112727411911212711485996134611804009484628524224696381274609231792962208490763345097423790316126104884041461737332095708182559086564253344671951060600745279317734839796021881806832637088616626185748319405526668259915962693846039624200224711111718341874057386512319758245840660823626937418026643602961902233526226525279321219363010678476416562098511819451019479278198738607554595810832474144387378835747644334805750998110592081391532195657178134246200446627862987056597471802668788962826238795864915119504067295250119666676771352591277657539389515422652896822226360355863882500059018737104443276535701560943379155848954779782844815874002249976711698984546201653502183481021436148083271839064377145683688773144327697941679198424028249344736932353231340463192546976906364703768852584842580171674654473112023097400217004052281265427676072342659840373129661880899747110899178954407087243818107183564431034836008169850974296949463680792602756124856866246735456761922242024259485827111800695914826123026032380113395331463784193578334204516031425158219433599612331078472392686402826807531418302696679577174303299288434157420832289265919234743597755971315915283610263631004964693944981064366493832905963264396671347696177743844715256249713601918435278474548211264923261700689995658091072753861710256719770218908370921111334209351635151944355465268527298069346955821692449404434803420968176528205752551629426061613158289600927093141514690314699418339038178360224723674317539913902695794451668526643158723603868774963655413234658392977707788818512057004795908070128399528467107199431628827002000677111419147120830392023194427319993879428283805560904830681507939319458637945102508473063061839809018410275353418951687237506678141656054577706518518064086732856252163900575515951766739781793812102805529951195899471602661148476069778781623772643412851644296579416619185149325330600120294867143058999852838572476268737874168199764497473231219732242400017582285867482662566820460773745370738450329867856590186656262401396490696194648097018477292094168883165020655854024541547277314028691179454072748596566441132641307988756039063162971644692623929285777606590607789780347648910960317968515613241166354973773772713184980928007963740392061737970492779445814787229806810202354139431004618426895415668326685041486989559396903696261193660505820246880660274337636484960270107816120107728310049347352729919609989750885124836871651655672705064006076683262053594532265529777824781456677684268906824091629581977113957440571162133345608098259219180638168563979643141162058712412271660527085915178093853723070811191970280487486447593039028997625087307852207849950017457975363175635392126494442461499129623230801765538830716822903711600008773918420228437966467170873723869622581168579189562727600149898770397096936419031017511079945425439136384731115861465001457465094883883352238130485429892043295436307139549056296903280542415360914086902798662887318136440229816365064484323452751739748723465173831030641219231387798260160934765610675053176669405905160523641038858849535009450593450421391069989398409900757608648573591562008136567509725132099251346953971877219426769911235013444538610955267804168994273169904402773196775806366127485030394651348833461986185740782683194290979352913593038267837182555718066796330774891828470216924566840080903469405050210531749523929214370144929863420587020891236463229909017772341416248665567747806027434693436269952789555354143537045755100940189635031466998903392700921865164501811647500843203220401714455993164027238065048539042153789478116991787268482638482344473216327506241026559223805576883341494376964261813916073560332801310029456192513905783083788288003803599522579052941189791579106438371978767837702791682206079704189001062898841499497644674029315961887465177343833650446307911386050388941049724275732188864767308360672570233286263614036945126314232166706577233850765281969679679860317454564382580445789792850967826481127192574988627345612703141352094161617740384615511397067230741608049658392147843089893516721455194609932748714597359325740271414983871052103871217787284578207186566597579389349620636270560357654063447520697584533725974651903183097667063967593072721134488438309504969194561923510736679947715838759661082126605018994544298587944631573116614808389762849642785621835102200369610088766985063526973753262249110642381863885038475352072792864656076660399596966962863677497696267362614554896124389390342500009936953850226560406126807909954139747068509177000525682064551160351445142201918320425648031903676763226996235081096695678892413883177093934158368808407812926621725905931825036670519920124577567880842505258341588121059476674887681496056323420197458411875304291952412567664755133270222296356855987804613857528875576119649433018813415192040588567499959627274060072239190864064209543227800048131434319641868618306323743876405258378842540303829199546801487172278805650108833953409660351599391517077955704356265078049417201674449080981091200615444045636614233612296042859028558078295809312069119095986898751034325737977278672066054946424364091257553573926259647233603457154567228074621412116030734461018648050815837756465810816728544616755111445836867368158257607594002944587209517827242648460398756218775638838885054120543130742798646830216271939280889635665168873636382492505159373317656200554239332438338462425658871504981245096313076468536669980988042740193753890727442299917944367553752326567525900068410075702298000689946433503655480541651738179427712071578849865763054675235996177586582026910112523578766819607486752897628928807603189296329202508272928687587042110799482987313143466996099065765538494930466933566446344558427716486164311227570922429763833794624139283942248780300541171762412416167401543885039968043505074633094281110158439586244093952245158228262652430033426519420464220636030426985167321827526022243516444504364533381688785182458721918012645819602966302879366723386833638391193222934453721665130255730945302759241673361670043526189535471305083805406040070698842822329861593057917894337477642316238788743315987438660794467543681382267582368335546662895193005836538423702807726614443021301322999393677977645340665265214230691375483612378685951395346726404876802576236750129273935756646679060756453773052248165608018774489498771606037998957530594001320721575245589736521553960367443696660972487630271272876267356960782780590282501460976444658652301332924178136923811511421894792553332469624653869094249142864317325437616099141685111349151928015851581493037237560225902160078395875524726138205908421309388389133578503531534041779282067885157745238673476848822547963271086862935037585838085761548617358082952064104240786861543291594447071666143817911831414379398194425122334958403808573244381672893871873672041893744422159702055632130360584479834554557432768051077127073150138435297517084973831903952896446595302778044759946340774783583967242152918629483285083544977218344756299999200304257359657225772004286924587929724491031510243120273454127421138094369801417982394554003300659097380923967723593955292130398297526302159979893408275161320987675653981379251355156748967201741683973703767054556091631258752447833424436502997858029982630325113766812451852571644132904284481787986866720721981828594573210365727594792782316455048371116455227024150395338835661072969061011666770112358577453365817003409305371446147244376615514282020914220886216713068386367025848737666486662370822015418584174127780502503069449124372122615807998528019269312363319820029580966732929349457465821837614993638670866422790261054467020692657891295956564890115374166017396157368142712304044153644637759973348580385708462731637644905542556184730753524617552455225252217631875981057836007508180450572734529107654982160609316491045108977515915285167400475923458106764117443505603710564341164829340213874020413977251776615085461198508575943549377092320383098327612186987864402049894702032695130356033716173025254498250833979275522313325123419611328356077546650406123232859826564597753618765672340991800966348443615799342431432827410706664229200791715134130805830884464769158800854660809742241151294832364965735825976284108922260691644279897177457582464634747298463602481642795733851431024793765251088698000848142174787590414154884945918203983453881200619156534593098651863531240714644957016046656949459597223933285761517166478667919176444220929800946721760747651574007738555590190266940735837773490451982766784893460981539278908417204923386230058296657846515880635531264747038408074232576484961468400805425523156013044609930148403679585883626252163341950968136797895218572914234804915751449348063259200313415026345596428880205200529623219977597655333834459071380690792248429857044483105656294097105039963460586087160878660656519767337430139278730111465999201632639631383222377218422360900157700324728181656063235658727307358568661694685789118043295317236475158478561329516263397607255984882442020491920377411661811907476111862423514290177219275356332117208195610112521512118629028669806390089122152667176174951111685150524757654360364341751259086041334032623658571118279522857371322674861531048145094451372201350272506714863216219308135461559794007885052820049824471878606532201762337868734070515518004472680673639937512707805587499622090899377906308214981725629514366480963778533645476061563944900349759371244085472911674186028281870250747950059491091496644479504722259243988196995155228700861833028580714349217692470957899225225518185138208294562107554615898646649055092350704869295955027415814471441847452542424213507787289200291011832282561132669518383842128851899111546814254570222917142495012258130170263521901868358669882135979318526355709943279608173923658002828913192034362479805200455880146130322156474296420908391080005575210612933728917117680215906286308622148894780404007650997646300615014372301493663239707026323130467494664761962676436569716474518040957340964827142152996346761970138581934720530398805282631755111861724253604902597610354151002796128985885914962977652729860942388904070810610270085648113413738728977837595527495591999057391490547922386204040666094558345318044531533093643763075849111664073779229256827006387147309859281790245451182744603038537688653225054674858648542046574961920865400470643576475281561242607459174773169297747240618561154535348194710063889080922124909062982917392342348641603835761940075702284236963312414309692366763876063300278587721750093885880591431303115850846094094389401682188566150080903553425015454285814318836609341536851891042432790496604855904710026733424879013155393767943667996479289971847072367283496427189976713227183918505907276140768139504979821179221833333932429604638611228303510244412530317991179779868747952413555113311699616427208508106771300586997432856270280489171436336722716558794698918192216951479338157095484131120263270762854182520371841606751517750755846177975018272416118386172276360932797365059767536912293134025188794184993559401569113785393996770171088914356374353309303576256831242153355420410248639970552353129022027930851755880311325616429983571832608282273724911202957337877094003244461922769102951805157326135204050034399989916616516147358800182000411120173767040899151531761639436693266247427720473288414443614287806552498026304627685506026712248878640007399364779938647016318619402389351301583593177593139337347672963609780379049087691358889829045115620997161000409652397341961776368767331055677066138733046913182925643399306386326407718737724372234028004744371321237429402459671674061914723492051709521652526608532561701020343297962470884764266976663329828121595596304185205945276421411785470186568885791634083077385716697765564042280655244948195446131260923689730758384458123966964158984463495125970514014302671716517693412139049087399419509904198162064007383233306400064134419190074737885338133877250816532964157274120942922850988952651984455944479582337174523381964625395236409406986938685024289489348983946157919900111115018401352109583306756423068769816567988789967896016196301102035718025687682349417666047684270995341383777181948127841560829640291907991047110829507834001293804267036227595983927153828635309877290093493103255328908876223537596682438605614987384373484779988254475856708082052138698573877193103330106455513454106411537484458363378665299801014506962758215822007343237852803447484073655718142236295407824969244822072688640387051898217031486302643746104573022256213638899072485301577873662429771381471483872228447011920830422117648484856450608879650005069974782348657239967450841524088416859995600060156107041295510595430907624248426921773753488498127265511699458016926600041815923835416130145306488204464216071856692480747932140073241398465073164998301944654330530736110260314795270341793148662676801816842973628385175007567649215902387495877260202380129306723958000544586312899855822910304352139411207846332609361583518687002377776957682579429439825252209051683132135948766733337834220286807556852470837971484688451309254268036009843978680268075201477047218011890693971251829506868944812547722231179261950004243611481137242118513900944728931280918102830252848799032125568581534925855800914803775721005611475342423616813732561938900312263087188550078319584659990997366467367346066002877816517925827292307015802072024423495158261730728895111188655076082655952787975946376254470951220822322103652073234535392425621236119229437722234165959071901983439604889588749217024384190129165573900838671831636791355854030159709191670822408245864518402940244699500893338410528482217387674554085821323913037998451558180708742863811579444524622151472788620822714001394684003134185392122536888768958407143161861797443798917805115679225993692668192040462469335090094833898681804926248184780536515966145296204114975019003545525165156220063382485912134722214137686097779944035780920768798866863977667659435295892811707881047226969521330621860475875203228694426068815090726073306538024865311334184300684571850169308865153450869597744407505444549257306867324562785801139500176080339193868779977498510699503538862994788704112832944726058168181362165170488478176961251128059520858184303727195006106968939766758177191632908372881434628269268091333958866282657172732080170247920648352599663306874397260843376228639612626458538503071655576331532774185689358464607219436635175211455349232953399194715447299124524226436011080609252086095721519547830256838335404127255546282204693978147228851921790413343503814593875308995737971737237437622569920773455466399811458843741947868272425662332007465104139350760387602722087372250999094354701734543191062075362966554938247477935680722957834930527894417936460256285219447305587174640373806631910361275779736002188363242447638880533752451312941692385097317642332641194289047488723072468987694018813224228327814101730871167558967146279284874732754202799490611689651524419965686938898515538719438880255872192262052171923276030896975919884847034043798960514661931469412008793248995228239203517999609749684097667047915443911549066350159413749261556165364847184992406515681480481464898652792546780475174983263825324002794418735502709409550903291123341819519033082809539376181110467579420016656367223077140823205731805937871260204974446903032427291208449653760098495300988813554050526733883190137182356803952321522831872518116992557355111637548943100926552621408944371979922758515979999117666691966103251289772874137032292546111804182420514389546194806239355959976619118836067581577720516287944435210838131289875417226258834038573496861490699241326397135369763291482728063771959790385677785992122808128894339511729626359617718003547260256866865119981525005098472935121691922759084099700177849354448470149944881856268220416290024788879609916762059742318111152354696037223021432567274875540888489322143295547863445391557527110840033341906981630341677102616372703412994015790993225996087813241303635716811880172682268495354646026185103771845416091141399496489359638948971441651677935735208372413875458581579198182148063827576444428832924463304979415046401437232119498975417212978143195265129718258332191449324676137847685410929849986979402070819260835787390463309249898603812430092149145082551454185901490814867624439201266475121189751465261288323994657893377391283001939030749063209687042762719493525600702688064914621229132679484484783204253318385418169519984750686524785942274093479665256248845831555572858810094337539214227120737094115499466235407426163386234180167229523528544862656397810716784425369088822780803854928849497204641183095648864976519240049689052699549732433226739185356044120179694957499843626073337953298016068513282174550244268343362132456067094037576825353759760215222590490659758168169569551929889687504996197215442184737267252084344370990619539575041934304253318682326715704827182172017843023489410681188145395277304043700030976210116153531092926234477596951396036209895934150621047650192106590632177171233832991436295313024804889093242506824759896813894569244156463365117090502925884582630713016707799301668698678218990983221161396160029092176393774504041054993535163132895291111560137791178075280144287284136076333295080705991927091937350321839160801166073002949090506153035702521576563524883344243560047914055529227160373745233296344453549120550093944466627229867974754700985142036916228687812796326119074728169372877644302717681902068738282696292920692132576388040108329042679536987911602813244815988254477879769025663741821661454677342566385582240386004394548706756423220085918416103398686764360726823647087797308281984450066347347607799942448405954633739294587927050051156695147938533559787796582239191355963236166032461740760719825017924633679752763093729892733239771752054932964555334192014558634891294883098072699884628278641516162691689448276297086334412668703823730139226257026302388770201453450522272540280403971223060753630480439400169508844631629004480291692528020904747734286758913595704404471783672407238444329109494692609050119646926852479033485576166938873135533469444148133830736305282252537052387748218622267716887217173869347735519879555217469810073380294976795912680353497661426223403058566929525826568024224435925094235197985318724664896218596210251667714467227849617056732479650391997184604856238232371785114878733961423983936421024734039706037179683504929645603522552327062594697730342655350962393703212438937414109440309299993355063918039073131516421747442130883880997996991438851086692165951628718549270564592743157874774413123893722895275978385237543514019506196343994507245497588096236617154053112714426460799841241323679478819761310400235264714754999830476406698135896293723848391451427389181524455653650152381638507818036007600942578738221509937602138683759459076818866135242364223662812051887363235167951089639701626839129294893233132690141388397735967985151017627413035770601843777359051222158104119137531327091115179786517739839586321984172232998915437311852955048664666626876454602283848881750195980985764993030920623717056010826400126348632891772585627796350912999633495150408698371754696663883789807834578796799924901734356437539213373032993723324821838154930654771556251684363865757752503488924316009730980912202422580427796491204290784987209676417751987279758357916637433926834049435770371835535342777312769691090997148221925967324006419082686677912843229631934928350266373455457637660669316253273671576159926430874053397873207040206091387979155160864622254679575181966806563429520082147100154771024920632309450382450679891422883532591188833176184514129253752239900418098074821841236806766410072739799815218167737839697753005732717291416050573582923544763384334831711971232025171984811719159870622519967687292408030985902667322970381039578780982796327464067488076530742390946121570344058276454898326497606192075833248019237603515236115100779422306667598036522960366876989213529569836859285860964776236622969782364732790447800594674972750001785430796015099947292174945380205906985620961676442727348140768727709671049367121103084852031510229958507623343525554920922596779047368773689744708604496859158554874074045198952647346872597125354397773810684558799431559527397391407602146201912207444433790500159888018149344153840105894459761841119098922535378681725359148094245770841923421817619078836213841944034133177877933682265766760742528381643261204785875921113163340138978380688513708635877321933635397094573103991028973248308167565017029116871299979850830737002500758564827364375853319628442667315504144094204579324957383962050657728305133057716988561897373622873709940288660298216090710353706695040137278846587962193324498489802281452359516419308762059383109951290140298219934350366490961775541010932431619930974195526405968960829572421789039889889240930075044183310211673040749122576325368245292328499394271482875762481031353083348203435979518843330925406273471314876012794854861354538564714784486409977090224958524262534389225936566321667952590886399774619965673081461247693162612514384433079965234666071777493209930729154978110879487968814389744714878774149877447275630771049852050787754529794896871138932597400429647162957793525425326378508278922955533644135111435151721775200412062027081017281986411918909555139538300772628591272326907008610228575214844667874316884413165555895381410772306897387993752935969000143144266964622244583051165159791089707641234657598022619152181106786243575090612743254379989357110045413131684039312098154864348312724989639207137816410952169753058432381908255679162226069989954374397413317506779595117172285460119470750037038903070980016959686840758076285979449870235153388169486812760445652504116642410469928458045523669989646679634238662872646535422389543903771976645831660628010937390180094931338863786224051117037925295158484497339301747375568320215122529584623774084784795831495631493602509261620392748350040787409925540315832453059488414191881439757820815824826907884624080053560146825795056373147323419342680843462305074051698791599935083299601385557795514337217194571127947375690004734828403436417260535403843629261163894061524358255595232643368487434204471989132096374496495195128364001967373425164075244280013835254449131978838643446035641627710922257908165533517560402631301399346281362302608728042804641549697409740102727671683478059364497211300807620056211001853499604349992566443026672784373691455016383081004869373301975703597682421730962316325526751599128214010491008724851357039543896442067891368457406892474847258527349424890349596760382230948783819777289529152943777987630524306103715202658960424424331641459313374339811478886262469411825486075958943791044227221443887151456037491516857788779898718336832708117650054431880440690937900329041096042047923069541061812493239688816416932839847309126589449842572047708119253960441823890924215073355880514240167821293570774498981851792218276878511356652415830644700303217576222351018168130459743876773535736559446450184509196532649502874282942660115157405803033658645929145583460698150794579760918859413531135595795113471850873546148235700201719550756381069317618374761047483334897961807360919556581269536930616263317864795398464590316483458039966242436644686755212613261518624150824632178939046569655598950309337247436807231359364526250642182784673494819756588599086240240760292608375889240204361390768023726745723362414498315821355424042171008250679137991481332295963837358339787277484217790262597376446133325798411563220521709018372135424548739608429251525926104821542747338238603525392804514516523706123533091543340177927562251939138278640489731452014092280393505399530373458225270334885472155542506535669954020755717146028560434215964259064388246159436439658229807778177797523086885604823157917832534858924228898954877848551329697083095100148254585092588169740355424045796465416836840897001878558496366070888685213036045402440475390348924351022686908023487720997328407898930153438418494424605712066799634889619273527848503450183125326393803885035539435144636742655699565937119125573080938598031833513178216399963042132475541536255941510561384201925919368090510471787666760287745699226271108566420642472992447999409435589315433923169602535586374490595774687698566546594166925573504660868710017099801072303471840555182435867268297568237485900051734939047748809877722783443188721986929960988421017193651029921700472159470231412351320941722790366800806157508493740883501808492356264246997280327821484310065466833278142429687403285630007191521244612833847814719229567447456474562628226618453124306496820283356632591242705780829892566501697433539769204862103673639966364194711300513495061346812018518394041390233742239244393337231625916373481628357941953473132061691339269458081436720831017327680376827325161370289832292834244182642842437158673144009186952048653673207847581787577285966691496435702733582031079907122791417605466783865582091194584488385427989105606764186363924377380850402665935207141708356557582666517914094899323042064418153875494112700461315222937656673838234529912442363299427022427626041531354847930411332036903896298070500735564215712219465333595741435792405637371557709598034330402782350491594482491582830406367540721399567678463341092943205884748732589199545126722678970156035589409914334306948687830690880321417477876343237131275814396993979293696386854871023553941561008074728543303424854522607190121894088645168901670601210974843717424950438863674156049063537455950872811970240425451444508151987458291777639810950698531643557830938857417942988457995085154003175266057784639785486623394510462135851367965205738741958546692527651753152371583886599902011124128870713066588355464563271087550112511470106493096698019926079372613043255709129114287792461087233391957311387496494848169039836328518149783311770534091530135057417100026712553644333113523476645935056193389274443724051503609130759646988104637089234188966065615890531967397500648766386358673697912770852810721705299262756790299697232283753396552419097971135026274301719709378849972548893855442576674770676045556510179757348634822819439762269221522782732819261156965321284795944152281999094788060961602511083556683425535090256562301476872259383779225156501168376116991964337149599880739297453104040462060596818442051317113360052424529523584130202719608888711047474931401810906120943331696048040487056465980986052592908307667586298981497473593120063465050693883136889325094351817941754074621330826098170892120767610901333441370173279686677911997920427737661256133322803250968364653112783558025167383121239155703234469949327116250492808643388117612310733174681101859447322022273789833583788472022894847982663789002573691074959241985396216825885844679630059809260473102410781462383548987240336410578547896593912494562014906437914055208880967317804012640530809969454523802039655182238172175165932722894388682596718996860962581587272731114259155981298253188909054586921722874232680879707047470007222749754722672977822305577256138666691474184192977108001707443285156185007114610667215404624923574520478535479838359685355092976157687407307642050791036802463498803127258006580973629414219929182730881749015056685983149280741753201604260236707351574587614982855893564208166756052604872262839177283242281010648149559229924376998249773888811454842104866367498560692592259308206539311241271250827584626377160610780822984458342168867124092292104404517089018760108819375424436771679257926960929804463319771383617626151999687958427556508861938474592984451500201414586665300422401929227467242548927041324618362866601196678398996283864006360349662803017045764520214567198634313699143759057713988417235396719407741171481365034317291260875676428797709556318617727161791222348355319044088838507948271149451262139105440542419466086827731467328787267548833199308419035357401573870158604198090073703903659590113412954038470986012893226529291638960737938155138658465346713365484968313448942449173045248154634565233262925116229122173604676354019286957883719442095285192190253419952698764375478564217303011400163658276463054304419012312478987744582090789381192648420361313870068307799215461239675709526102232866784847583250766483299328867105868655984046124227691902788340054227916850112327955280704883272567369764362412007797779973421283084502103718565336430690693908022452164722136710635112143472111167370594869368166350418233753694911820745566309830359069651016300866366069011150566729021111134049334113825374867968077801894385374229297962543996787932045588069588460852277892087823474420288636638372856454081541683554821533303362609116081009186059899193775871639108051980286994350766239238628018019070314953392411822551133602970037268987065887533050367509604375080424844863364937352821127242317661500973511445421556747732461173822286057909869427548056822379583051895334593877459890350753957106267288269656429849553496190208418230462264032349192576091828598679812733051612341934862267960099207799573927248969628090839806316325362442085852228199336877102784768397733334903974232985797766931198880207387153084096305380644451074430892310577461779769603345546911168250745802584188525548121405945540727080872735493854094690272026685906578701478003554859493863488656021760529480419736798949201629065022733139384093056279513497604408509841715309129153681333178547748074554008082815508675469604486409310990977405641847333317175690438284655607723382914717768043208733542865468939561230052736122781302274162829394478484730173332878292389459792874315864120978660465078089042473128504455778894139892382037418095196889848864269244756361275218491864125420660017491854843473270011455356478002457373387537539423028104244261587342464424040970910426573248117735372065835602421880393980141202546188742424768863083084127192382328059440859413075055882319616770047407266855261513398886562895749331477739275246115650355997770972138823387379651967634695453441059257206901266645758931296169187260007886210958704858098071219321213340402441167418188115375845828138315631408831540437764402117248488767999251808594025874891183743791693588162798415382547902040649377828812011065635488149090012400952084559480255666415085842217389456821896683725166382956183932217547962353772786127783242226306101426248276933095198884538656728249545279126886347493503956282651313627987293467641769972143864783984664096246630416564422273591478151194152168230513253729250651592166506920767648883082929182415969857639682379157743825362625237043736100445754039909573419319761072815110233040536163466600997458936606660824864734734465124354465563471145885986870240858733620882294435551269763563548701992833611005079870722164971516069192556660884015184086020436175104228197191875256658556922473834792742188048040193284501097536850865284864583106446282651173285739049126264204963835646296569769349391878000327209248590713817288596004835345439292387025731374993639012267414450867714105165186140602101397151417427887513700500286339437758459835427166555871805288106540173486001816192132577885131450216184305431953257956737486194373238927228786280202485260408670390975717386243197347974492044893743471761646746210641541084639819879610372176999047609278008019728093468306840407650084689623017282501348041562413161734498630927219715182521665443598997759808773929749434873786368952691813957144050690928828269146321280645154440300192034371581632373460971503473044014971971096631390026737728065359990639553820640097583814776609393305751144181944428000305421882561740269414027208550753309469009470871300049065416398454363260812465822139827088670717996692036071696351468970925732382117708711647279171942342343016464278311112421781132474102496130253047670572973080678366509272695030031646083122969823899580345636349770738727372801425116695617371489386187684396271464288019747515778580444907993891462557699623213298869059202597874799023400255370054502028256537119497738072384070270089058123420530797173920659128152205303279302906257938970271367948405348873644380064641195836093961249845479343471626375090814594492759499688709384711911674346080437677809259990134084633679929644557807593980102168349599752817422777084537873389943144704466698949865488846334228352701799472762614157376998963712606135403212821742953583822478579658748157724197426449753343706019510395119894815076685316379829970907908667601203987186554185168099906177857713280108080081767994202958535206872337453547613878164758380161292866194452683986363664269024926443970370875838945781950581708074571498841068817182402807428827432757301810661528940729909951071829233596222759115558815698918149215992283668735024496332708207953267154638886406553180859491493458374428839655162233951472186610247835597267149665405607864755536353523333351325198714114026508675513878623904039713061587880743261186020468901343221217708457540491604871196378552624562923077534056242366235556167328208585396416508610756542191568480262106762786682916792251191358122144267360456946896353479396324034539257401525545581370204888037327243657258850513318995635137134490731707122451921846460321056059299180982767659610200645406161344547018252115437805139386210975782342344437981170822569109082223776949531957154591681445853384708186003696943751363116534894132568271888417300853420112364617876268400470382234676622733223014336192069201821612869345443807740613256287994971963882085586351900128759941283950137994946563987221768662675525880225933822962137312099604196280481987359676291425611059480057650420699192219592108310313467300912149774672333984416739475614223424451554097437923905468762803268076973062558073485036964046627970758399927009611642183645585332347994576746228263291593203258870805795196584483801395391195225515748074475260105812683414818148091338577544048476432068092044541107325531802448782579429164994625005890385237415952752868875328655859357427338804637112283420837999710032419262080707334799040889799504114755851538014772012950807809063788325202785225747635147048868021342560574157945363637839725809010854081303129312612695979413032425674087552988005918734181688652227333654790759199972223976596001167901925991504416574809300029854265499895045325067713556865070971764541855754670135554356713109226289772029079882845376918082457796743303543170244927935991927739741592977248618224518139767931450312055661058982153930804369931600201942486165870925727181892701604224017903148528162424707626419460390233263448223709127180735177901329181226768515177553435285512467886331995599135873081088299399805827832770149442206089905585255379111561070886018727155698546811352177047113964396007045839573390938638466075461826906870128686049663865326839182464459001767285252761703596125006667924637778150743837641410232397636817533405541371170795426712396272307404521840000920717863499031904596385131048338177563137791193960490893238045265847596472660973569055662854126721531540757178170773612512870346611048776708419280101146547002382853140849626089367355661786042638184085927141423552135112419112840964508182084828397231211819457668397276589746266695587607244782569788386718070830015379236132082860241014354251680174936766786432323105501339327865775105145667616331604805083470075114850067207151022530901229646076635666783522207458478339462600523974217887975161352840644702779127676865889155898897152735188303096903982386435889512165289663865026839361296639097879125011434753564097030792178173107442651386326207219976756341857341162343940327721823313044072099937426833679879341033290003495867596998155809340802607443854327437735913371714260151735581450801141826054914956899596376226607845031524761809916426737837006114044694133114462232322481192716036216741124581637997088644583911231979803745420027508355660642189309852430339231015582842887375627321883192169817710143178795825355473961946470812965303865573275267293475040828506465105286141012241846176540342550732868740731055971413184480171939529636756135378083511225063694475483021163493584720761965010761370694015696088263585268543805330337026880840968187439517459252534536730260479004622657193146094770714905869998970030742689862908660345268318443222376927087040647409232895581594935672555319847910553998522277793535350036005342358073668221822056261032101363288956515736236165397331746785409248560865308487264346706624637959949979163783608695849535285862683431525094631822246266972037922670607909845273287500900971442714975301645254786895297273582702499615353556122877099266039088219370922953435844680878565042637966366566967059874067414499289810509938576978930003022700322680250728417998347186302115292875015401191287721979669369626853858602735714599625043829581686799808903755784301633898278832624209825202627150346038621082060267952057680905033611009527413448611413181677250940312743876320585858621031934718213574668512994184899100469239205605412630360374489155144852028137314966076237478742764291156472507437882238035683099049198647897471441077764768417310870063477255671154990139482741690891418299286152188524535686115481048450234538264723273860420659517840124341310948750300942278092501983375528537783129944914366396883913514976226678606208546632125563967803846825042692112954005516955140070700081615472668749342548358612401192060147036346410005877594917927526090877842447091904608188536957215278398912311543396197286643099356461531648340469145715948426296151508191822465307599925363910077390302903318957327017652786601295822334523741453637871397428316848078462334029602481953602261170880399661525200136216519051390239469578930084907138379944010501225340910320723866370402238593558043131934361817202037111004611762850032582647720411875600890855173249025158671216082299929476073719676347270149470657283349593679879429139232462704738284794230404927462205128844552192124452295108004634735958955277030502389767209058515017340923688472929324821271513292220474882504294950025634508558842540820191490422671545841023763222330622869801076551299057494791725723340809225866039164805255172031679496204893992237534427879810216579892534768199541990662194537514736349119414424322836748197649759245426169270180369000040483210999227645384581709676469990131019264125638550142871948436781346476478790140020500740184623712892212304095654190810584598371304148497640329262135537053756545534294669430867907506099460281808807562715360067694456250220413189076404427515081393377632839505619252105923019587953252043234637361856695467169131671176391183017564176818997551361495235952672307344573715856588120594868330648486872610908793393089529541952090700025992033206511645008439182379343383364228211832481713297345168190891544789941254118208731944399263081521881369905039104949816255581632294013722211313820688193997366388258895468092542315576627312517840705413445803820294337388056363031741763641374802618273893363444590104865603209401452845515195506699383020043656521120698840544974212580239065142299639148911234352359488842061817504858364080298921431618861815921021613695471586187858180015069162498434892549162753614857118198635223956635039788808039198608542608019960661780164257151810343112486804525863872358094632921076585571466775839359339480609392184848892153771117766316235745654839011760373342439290266068236409661761567423944959123458195989642710328605497976696973043516257681863072388346989167050662796728698493760084510635954517536110349541573498705593355286280752368594227074633129906982759023123443925352237935193325425878494511002239056086360239949851197394407641302321973393987969382728157495166694699025680130235059650996032267773918899161002547608898351716927668567945200913912896388456615944944768682758384713813887568599991229864218882035452012164297390683066453038509156679995806839102413058703410658296341774623250025811180557472191110717670068389872824099921371452066976790927955272711237594301806725507526937962370392004929756475591412378172288789842575762210501350210929351209898622094567638888817848443219972540522140146440057690631809112523479677800073366874032596871823930179811997214184565385842369897793988303754432620625747088181301113449775624667090840414285365568164217154001408504740646524114273894876072923830071246991508151372951545229733929462588802761519104467092304064371844799734594024734429423842996031501053125278993551863919736520948263359764931726518188291216487285547988684745529037334413781414682620944751235623675990560922777150536637069926687789153780235885789089168545551555455498422493982579161309841995787200031790191058231514899580528796647280932331960204395364938759851510136419391705622839268963823399077289272267923603845829483737480411231598771131678467668738124132579607558559328225919347592708241019943803398891798072422217903452243360701511331705159977147132657231041170589857333431545121041697605837885676528110547853860830472516710512980413841069714709886107527203809804330813331693563209856555727891886099520896735809737929688527145316058769505080259734909484924969078779136799467210703432182460973432033333620151650085559109996724905983606577340919111020477488735739910001217052065158100856047743638800647880467041731842253057125030795975901841154421484269939717175026782672753718440390501710008989854887588689311036992942379276841310322280071749205876548602779225515844464433516551732814330944880868463143495384039452400809625869690865536103018218633228965544499875389251224628231379779691238250317558521841594621489250532042978640837874029645114409862113524435915901659316791242657164534865416388438626388556833379654495828943003250092719903251046455336181584392165167189734333362623313497440242919483510069429954147759618805130513503383970157953520730918437914873495000568697968697242846710401115235900680856223484108248405527902717432640575565057904398702962110875702944906257200616994234701871784521661402856375418088495780527715155630035441890071915121428061741249516825803585178601006790347075604416657931953577522469853588909711025969988954385919754579011042546211937379630621078945562518367533592546048008235854551612461185283459404226259162211318523673290491207850375186718861054015735338021956823765053519320504543237914659180409316049637495072601256327913827572926158372226307566061573531950465177485864701365789045037998708233374541080354052664639400597536645788319579434263720648451145044805193681097233174601782411701749834765830388877415694518450921702771738143698413683567560842744259564240213009411744122843995608113947336913823021320814103903699583322689620874778001077650491542363650253886842699333553319030112546476342684223923989234277040853289401067476175846156854673609745529151131826333737456202783311928271134864907682957098515769407061222841540413978863478047957256344234184309748430763673236042893476161681650428980371044188600839444888351651653605558796481081125216630455989833425896786880303267117834517991427938495016022145571186055746672954566176520629837663737863968687953322382538534728344936338141788218443023912272878609169769585290490208811005270879415471192903386326453570546130383939994230572931379927050806971953681565611781055245367664958262374306273143133707743435453438565114137634124687110532441588170535005613575487617709032693222212090465315984563069795242169400405709196071893651539337854616907141466210825144162827753335313668530909696340586895008548891516450076466647374504306042506826572713211669123459731405058833878121928047533366041257908680377414313851251184109340099399796989156196143034307024347579468276458290131858378126553780539828849395473261670005883318538257198018653703659117514712413466917553431678717266111862929157421457547399364243345745937413009568064698111205943955446978915365048607970550634325521742396921959181508326151108237038448616771652145214075647373393240113849258849334285397763219636645213020339281307409664154658553436764279003215812788563791256498184658066767054196576975124945195123640694989064314799241297420974216194282304905821112810920339603615150732409924404172671756230561125165636661950604974682847990734440389237843240368409123521102383600576320109622689198318455619331028714086961463316707140772633462936899416210767759175023659417343220178105062441504548354204573050488847241427830324625280187118586110336237780832043178052375738874881521909188549173968657896885328652510971356287990322465438121586388703333656587629323693171811520654691748430321794374632904969372501548952602667691507802783768580766493138454363277338152828168795417240489789261307011413656291356950327968875452385403635592038427773122615574427764215363572226502997908848599726702774090139929901829327749341119602666701854742983226405646807066202320064342355548848685519037114681317875975308208762894067213286678674678307085463884950120498122490154270878724610107286523877592692323198705077184996580079311824718503032876815404053711271682065035012845581554390091113587084160165450394809123197486493795389609917930146291256323473361977917758689523310398684331640765925728032811370433037250744114272914199791088994919511018212082680650310903638432921096158264368740887544293615965922651409089601739938105024742622931439793108020562232815329619512406891451345335216207144740843598325825566258293932627002453741788512035526988803479674048933169578310114766481667332059866153517289362309421908716106870066482495854434263560240601763475785891205058165182144221568756529660550888921548544106789323720582539017299973981386053901793666513916834725579960590631575152743063235252974076856384464312151757505972459570139581474009600164859833901587950569795821008489777152986287562834814166664276174583428839069532358462168558800670366715867603415297572665161161282177676296244823903345891738652455877426389043780239278846077628269998841031564690491938869489400071308787013552936854547213329223910252305820749285526650467696299079856054077185147216794121819299456755505216578628209045067430451812445973673074766677662672729280537179523741668552537626262137404687459473583258584445904541040289871821550993686979970957491326736467341991191667718953541925902153658894946756385729780543401349506827265969465453654608045592434059538277876288008347233182763240189905945018398203374002818736937559078913778607548552523857121692158469611497012101496068839622404148740208442993262041167651806955661782747177492473477152315984266468770470584805069781375301429228044937973917131722415476129374368531355364193021255767252767956363826609001683877765473364650592842704891803192979831022693400437969473357136195127052426840271910139012935758948510810047600802930251651095118406327087197922807300866998221325321061341471674443879382710809567139112896931476473025316908723843864899004763228586429793450964231996241962474362276261735604519163651112186316892781359087730806711712799548453643422335851888250391354318629832057523127824890057082801760981218383649710610974669111075992881837986498536616253894483267442594451865741515838206990197722772044685015144047559246131950051082149055061235796364853812890144075133838772518678099077488339873152504576454484758595613320111852736674554208802584958999853097586387999847603421860879631361578825094457048182161214305298487780642878877514113335026549607986498016495225245185023619887746372426721203208430588214063663651362250726774165241258462572043140879295405273662272206456737400778609303848488896212128066274146177805549759571273618927840196067349900847380997198391577146879204066810582642649207771836990729201343686765897576939319056428725322852429800619558600139333069432595240888003855070611017262089082331941554694740271017813587070892083605336440901407120842883504598729240986266230972695020459679926312636187124449605953580336083258476467659467395241039291021495355874103415129421006440051929213686249377135985252704332702314070157117370528308503744012787211622284389660241265786147162790093809982645745455922291744134542554658387005647837242863100734016411394875395888106962367060334994610899946509587182466405783100673292496090083100072424699591137044564219839405647093921765810970782615138417743954993309308087045937008651162909694833262577425326227284119612237073825423264712082881487775250565275192017957867447688203655611457777755683351828490278430830961313927933543378065093151698370580645730550930284654590892485501467655759887385330578829212939357065493555449806811284035419136857840475035677105866212346887335692395203127970170315487058141805690111051674683829580946944244122562484756898878291090755460552108894503260818507399344743393616806598569666504397358554801188923198549448223381670189094682740166104870177663142550411539221362522545542327409555542021655388485869790222357000344073108013954946129354552999334562883901427437022780851199246030485923061295677241746952148857818545347126984610680818204514964862645362960864531804879868046054395952758407283688557187285523686182502327848922709959843501182826666843374762285290107663280379780904223096217277911781429322508534800085957994735978755273666883339538157734079515586848729759107854688155825588922986099666756912722146743834218017178438595378204969043362252135065225901202698086396960203249116296084981657508180648276943165805200035280366661630634342524310208947013673014983532343811970642035259431532722987793464003002680055240379527951724732104309726449905172591151642905210826357890047782061214988724039643408798074886151745891579133167039410087786170362257255988147172608896815930820456305538988264190805876847943353402861222156562250515728705034932852870080338987225969297174705416630625947983087668709222581850009904295760962457231261668645947100650306026546453049710718310139100336290319412556847065512351394046746110560406295343508788728998784083346885677700775403687245692501268173049370338239370415055631888701467038960649590345430377687644919935825915544638442423611751396371083269357211773297623789881147262085372900764194743224595992305544652246876201462748076413530762960809549275799708506681384316847081523215965121508641359444600983961487774336949022102292382234521205141529604353017380860233368492415189276774794632042207508935518701841137649918931037533577471526804634726859034147185917505394525807793632339053368351870949331073132600515094023163018320417850837542516749729298788745532521552651216952934136977422464819190776173546256853945395128610988015916119731038675393839256008899034356231257546669734825017077782634287535273969415669376971731683940180321189868920439019919674065916026303397724207762881329566565850856292979247135393475514779301415552290034036062856313748009723910683358531678333574174286441894339884251173409061150985959358733858028298459580601439144785280373493502031466551929248242999956950255567124762033070439961259622733830223226890425094578259750376606584847582310174268007446682778289902877783521316339335800158709747073783587614625359134957018992700711785754076322547416594146737167757079754513913116385756185427738425561153776472299383182260279624699119627003094626569615554331707885139384813829384425439125244636187096789623796492529960844069679633404499273721134191418354042804006223011728044214189355400444232640864263472835574166050560301055448747788927805364119425606647056067747379247574601721866063706794200294694633194930879722917569306966911139330172111283290312331865777669933618153320814738673072633895126109728814759146581177130942561970103119494653333686654341759294716775531414662784258508931405343420974836910771674604044378308777648039220935993374243516800769904957412817472723208098431964576083874458229600852418812577157514264378330396841913062267783292267692470356928928563720156944905147059260286101071299060425185969573780398741227282040538426212044113691092283183905179743122627385174954678471726699658359712365527443073480695129112036076436817602816321247824368164848258595125030699176077680066985126489047817536149336311152524666240915077532637053119228262805270944577600198197859704538928979889782212119599626547064628628468976965509209134831857033524444990404396893329267777506597408093354286172530507958086865038906114228059969386682776885901599591567890501267427512781916483434858127415209234794541037376694695140132677392875191823813330073686496283638948931728263950124936703228196239663965790173169049844405337982281323425386658087968342836532767884433869585030668642815645600498962739890471746114737826831384419991072172797846022939010329342619657949650874418292625054065041326583692348063152127578954512503596123976767543485034532181229679141376717984064551305618975183893635055229635015980967800533519090829575494938935083180564979548950243475517594211907757091754144638099086416801767831957449368722835027584053821723212793637817068897376175816617900471341876856845783510993594985000576766551688197218147257915527721636094228148846628064345415339293822927488977891462767018553810223614821105460702580008033801036350301573719032733720172878677161027660104344953873071610719946067609893269186073853400066184127720928585095966276037229101423969495585376618677662991104673001393656053528815452441820792585059064378806487539166363073454823120131605962576218496610604309533817463168630432700052843337188617362961482555071321450933087069026178595732145241621858173043730185076427176928392685028099988081433131076815255135053450177949441221505481965291575573379189342459010525474688866275178819870914162443538656679309479413446737201129210215428475832126360006879171993813760818728142421113951797100269651207962039559259726975780857411405705683518005494968501952398439026636616002592630556664619569587639752017002643236826724111957604063072921598820908964743772239164440821084036734871445981689951901128864779724999691575634330777195248524681221145439330640338715175898954962045296649846490645444750338448342205511951634143107515181508166615042362458084485066825362742106159812738237007199804473204889861131166062399190790021270082256245949758323430473047337280235848798454572582314003664849271414342516503301729979657788985195080150447191944969958017800691503769701776486386494421058605064693085386722213531990648741090197342315386475311414953740587245676738209450044555195098555830666405449518474488436250860441179968831321790277363384125015264091354379115333520902735560415334535701648704394346146040831209094267971821701665017486406202892025240920229019946868790643918604250029871005728543628679503730978226638311204566977643586322420344989531814804582593429852198352435365935965784405248020738656829939406477619973656127018286518221869707370869860043418308700131389238989849859687282842788596087134853791080190745514166641357179770049328716942552128601626387904281502116599067858496887086857401890502242788600277743793276007623457897950309893692096129135176224047797259996262317250731826159505132404301256056050565160595717349708347870738769490799592833779366988106058808065478837091082439849202145017091157617356281431538213994205797711722707593763215407175140546720696581824229575787248101425933410181371126327398449287516077434285150301742913351959387771581573174427863799915087461740063018686600692773776367538741296426688308506916253460814221693192088385528788406930165705780056564363244859256719372251804635218917553917780442435866862781522704172160146273985594668395522906645855268339309293824100563335872046107913870429221883915588532399585710849795487089154717827256272503910233622364340673062131373918776437842559616423149960357896016349155659875080490177094639946054736350276892849236110554489924818453999321879876779937871466637251814694947531710160982546615931658253603212106422205542096384726053789822376020178260373228719467557365403473920768423874210775531826249910445005340423046900687521585661974194360501968200318659278195787485593090780713798221236830327670730400162922224981689991150619022272293589325393182725201367607235372720622186605292728473524069798590777676229181113023002962920061920005068285808105127173152254702511831157232922701926461197989394422827921782777872422140569855895394700781410788939942453689920149537911127771265259183095425264292644580668614823036214566589065867087835346409001024461414569232400177844707486897344204937789623946300889613489972387715210976518247710383135981969957969128967216089816407714054039825088479662863985101328831930554611125570644740883171894256422785707009996965948351409469385304362272612831716084514292074557784487849134903198929016689195012991530332111300495069911308591283249559337847077878098810058937024500386560607808021081356947161715031704492727027128397609754211338917776558881364517569194417938956096156001967277689303815576562512092766784662735031337340576595856479758965974804573594314709335358626838011435755276791111524714770938387258372778514933772942304183525364156000467238194774880155343561989018665348485468491512872398964202623757850276804122518725954405362656592419853842302081723769480713371819507066832155610495332695730191495360656961507917888971231868632660606921131896836616668231127611098901026015539385974560363777120172994620277002003649755286341430940526802577107131602034707047869392694414721409949084030190419678095805611616981796823915666551586355622535571560288373229848305406845987690636252009478019271377518686491456037490218987185825327116289688514972821509713638368682037908317270496703243305450877527920491915403884533035714913187336585482816117782789472975371918622659140887260895624512794332429640968898431624317562774085216103866694196894726987652388298845417286928032765146639365399041584328846123795602975425293431960293702489428557861115925162255793359735463063486608433288295846903909792882725314751047325931419888046609976190849783874770784188854233728660409253476875267004325633618299912091966943415537125525690666195377864045012035930112721874443186933730225582780230221197524635279335406974944861115184012033858070854714533437056563360181369276130699163550004214009926984901510078213548327810887772620828135515209122948966995646321477237704563086411251748663370990301313638254169213310874210481254558885035258909282510047193297739566378168222866447145946516511142765305715590757124775871577294643484912820907097075763203592071067857496109578012382137360940036722533017574960503233090004162867086894474133926383423570501662812067537023059243655057397605358553718473333360623422801601435767080062860941180183119441629836053179648718291062466298040554707886573303773091073668849870391629773081616748185111366463635669823774512825451375830111413114117171967825755883969783177395646229672646173832997520195583757675811826495093536946094776740159174055863419488146345229309373360346119111632971956720845515254466459148155393833871187226016807921488789642626323405054387119654687431140655430937202125631258247224813089037199589441611633269131826528516053907191792513245026636917482689429456857590923998904256099813839735099845000965944171880421384463803180410486607358654166529258957452698516656119758013453257288038716784636403390293587806270490821232847845702939484802959281579096754066015397825764002719115728037274777017545552569338578791798980562476066626452812029597790911130466823732366876573917683303897718589315113898385483583385498049710896524508040854111896730923151344657245846818393913097977443453261396672003270291117849373373696966475761111156901543176052804769305001110247496786606764228951175261263908604252742284158515734418090444702716669614246145563453939170767878680503408665350565050875625442409375367779261378672585711144689977877760011469959287980072233578872874134146863746096410278232324729544242513597766182377231903279526502696615671254932643548428810062356046875114460155924383884606221983858961356438656045781689830913869859023856266164070019603329882146729359843466910423973820978455285488621069802737821453717071733542152289019558874333345233172875797820989650218224680510211194440703151969417620162669717212107029797781366774884994552590931370500070631035613949871817115121096111030175688498487063612355273305574809478234816153332797389932631774314296929529910396468523271891170674238021807883897263757452525722875305050106551874532404952615175054870303418619446384228918315483412395235262505529024644398822281701440106938382102077151116421894251107007540635098639316860940621712180403044622983081264850147575000338206152005483132899135648125230089912483214034126434328656398734476894879073815235539248707764102712108588134905580534735705148213546321609906830884105376808482519408634366078618333074571874523247482085594825849089237871346153617624499671025463940172044074580558925187679058541451654166043773475334773416644644484872265157492843055953438766710515993918567830531111800405808817207328194301979214501392519773608248289584522522647669559585554039650154573842149187423157082412878372768590643323360584813481494320310736601404274989636549796630445909406121415420643594438900229159617790140569168321521741103605723747038794376844465306945462783276234463473707088702986256548946323237534637260302652634755592519900806380098822904097532487234411831713009544506936182144414275610035250075667547107314009765608736598350804313168401706116000475439334493417364472623572578404267765612207805577384304490563395727684213012702888589535708161939385636811566748729200709795668572306688961335823302670508503698464219452280291011250100918638092033425501618008546848551196826240349199661692401250165455002374195638789628491187898364256045047440325855069614870501680514412295729503732575784415998495372695516008482359603910581495645465116401908388250136821669780811446834393565226296537759157343102057390835271229139498675665086565569923654746434649988879436815086101923258578885645807854638008752005702004961776464795188940491838432107825861049420462696593322851885102609578261784971929458961217978445243271780042863121133326219883615142711426019034890106835232135618513890985293161300030699460931591104092426879666715310515294247787598084582101100788237696888366751848853666846135440802786317927921085087475344171031037868433256556286943341610029461780025353267387190394981640914817629908913969809696640117059635370189162204316532228719691741366214871427223312541548971581998932470199543704310053050117384646518623513535557858139518224694019033293467298761652366667811343988803483004642286393566060104156587499829182383594037564189522511311744050424858550912323722218266900189639090571035812262948878851404401648411800682827310560903765583913693561670507891203000701669205213452820319758897230021284606565368858193304888330053852622457627917148510320935594955618873028095646215813109490287958291658614357571530149694555201732982927032015977840726329971265974954674894220969317479177545580918722463675485466563854102663222474854360271084067655910479976014407931044072546614124515679572001794166489671551338430683695033577304298282314501585654225193855583667352968657676620871073882430806572363404789720732485636205698242611492736060804121681621058112458240957037611493470336080036408239087292187609921884946418586519246645083266177627128321005113221444662359225383084663078710530176710320927300207056641985878019767364128997199510100107345234495974924337131881659143268160486562922093649249226622963508710772780625731984897969893916829902419499932584194297619210493415871245166195191935521241027058336492810950436610602777630236213350649245266803871628845771183249593955251183425357006039686965502187225997430830912038160229550517955316906970550671053084632371851246552417541550342097913961247753704081085531324981955640253051126429344156804215394608046668050586599209372907976672338991122669689023751069361112488103678342559979416104362080697006168462768340450846183146082744812205852152881908082231906537256057625065491454842036698310528468147534140644493277144316713096758432706007347972832127663351832617504157957446593255952090622861951090194323561648211644449771133843135617571525334483776567511143253773864328575719845187079145365489365878273918775879063339036158486938868947394103503895677278797297493422394408858239292098336445089908545659286322185703067334270479813261210017129219264853614283450606453716507389262539127429758929081514586986521367445057394174376638033587896752955616629922650131509087392752530538487480992331111609136860632632331411805256232144638672917952454393034644006761483105622256722263731543932110245383535663523666394264051315911697581559545085306286040707109903720859349795990002910855324801690525664714774151344494816408324936466844304462476241907706344196982274843808906312974838111810471265741108419875547540349428891528213359776939385361775019038130048600421396373004387736282815637708642986923563801474664317780580445869916728042842668531594111808429114612760466928222821344505195590966070176693882443275779649784673177050821517852332132410434126257850670471743373485132083640455847569905770738432836288391052726674907539678016695397975093399058115905327522712535589888958984714646978507817082357493644507430826422470429039795805272662420364879331349195152825766722253918653307819784451035399658681436212682302100973795578087577929704488615153482528644649666513784823297499590100334850374103076327212060619504033426272419972017410057633597009431215284549049874008133484185641217848014556273438506774209067811395191433794694926680571345317408484584874356452651956224400403483584269832193808380097645640115444127386793954882879399847050077317343899097738650158421445386103526149040385029315922044797637504223822363764688989066380832317529776962280979485726420988990280036892231273218405914432019867335565574458185241520230403485746771351644894817767098387584774800589200056164497153293911498126135980457016677429998157229144042697025272879999190189342106191606241703599325315085519291040700425916990717085123087331221130340072385193146342596297896034466759247890251211965987389723463203826004695726301885267305551646292978906685296012071386363203019458467566533236062259772152375728837140109461696049833289870757518854839547493282697646683549421196541474612771974258601213665448699549810375628005468584172701176753564705771125704979371030570958125946800665306731654049971361182450376624575437979303860028447148633695925395520446960238102916527057165115213090769358295993796632033959615141724237881207862363560561556255486401421735170258288132834953593091395865966321893624948974325309770637947654919848067512461566988383293884443576782600093660823031406264491073989650816735825429271727465763809151218464100374185970142039203307231509068011961334396053184478607431466755149688095377838780601209564529814447085995186193478770580125783982341240681243904402668344752953304251795855330260341664374849120073132857779611718096264499943325317988138540762854370868552985908658323338643100880821029989880817569620651850885010018303024745116381355554264901643335131606791628551711661485501866045722091147550957932779349813220865460244011454190507340331443479104799442737709939556302551578073893839047847872073231910688459093067907824466554355435056361410352879541334495772035894587782302908525970092634266516273867337143493138248149482217944744397616772899083638890051687400154912522109573157286485425994707988170966462976647703743585300395203231495182267089646850227565489676289732444756526629039789322327072538326390969820861960801425687347955700747781155339125037160555112203601321083342331773819345638265696563418147007872307151500236096679810590078171059421439859367588443795371211445111465077267455458956686506592101824650206358539628778001823209655986871409787954423664439558307806344803160547776881051401774860452853086483368935434069509683649548204840684705626028428379116015118341446619125492837325124171482707887201650606703974366810119537784968125796108516157949321357883332389286271125699889372793189055076138910784678190740937711391846180500631179998605878599206858743056102036512943326863129737372585206478119593930107565366917559503049511972789182810257636511930035719964569133297117384256360973154188292571225237373245529601892039562118051127830851107972898305994770892892153957143801344939351931902520466793546267052228303156576910685856358171671057914529489346871248740716472338491177919864077569972519023206385685410530989474084353537098685292799414279556257156493738505592120635310890791523662020984136085935046921491986846714660580984540721827584482373897334860863738795215661575222934112953060310557825170445326259573438069734726565112109187539553272689149601548077903061489400894314581260892763966402755014143061216696297628844558351558650478876342252713393571168854615630191768278098843729835160626460551144147277640476700574162732760415599143754582060809942739138287912777334588065587176247575562524821629676208197956141809668368634648912534830598903722244730229604440874675215106878361827837909756047126815264533800786293241996318553596222439757085871251065198966405278032561519393171455403253121924484722115713089970014467925796128379219434475459493675877165545533627354453187172813173322461480625204814660195358369533046923239266782289350494709431995691290509404591424500958185771496817496591953734352201689246105732916102076892328896510503249572072234769758241802718708087905639396696347323091093554620460475831968146087258290178709427329985785352111479221112475466612705752241228100937415478266624598314342779021022104749497128865758162867403054083577616045720179224713299941853754204359298241992230753382421560137292686342394010802961329740229082081418109688909647725511128398470160847305557878970168222881106534394143330892486834089533114403586882354501903493744742906963473978232786524609557303729846109127234062570758516229375043109327740853419684887145585702517198965303097363366164508536017813573749853030200514194770925420482816810438267934749396982875876643562485900276974894613290794588855003385526859741506344964602689163024692791954021612668472377699466494294964179652121275092235741709249488765143907070020676643090871714098209742068236263577658767175106700967184672862731507938308354230333680410711295620306759648291417687597185754441285661977556949994317588077998681224442841223815564941445086013038361420047480189690006048952061950406719493473443942378839959724588397428149639289873123567241179475700135559131360936122229397142550835922248907825501988924475776690085686113280834230408747611510043523141938595613303675257935992822961686218744859302019934902894938110417203497211490080278996551174107494957997978548107284706663741503406631681983243094486273075298209661685790244526211174404456162407056533209173669123619169900410168786789364500499020080983874749110386586816714926320939394980539681731018831275458838311578877554478709513246894537012596107822209503762122647104171391450153970674351966616988054095144218982668915537308824544273992818717407102844850087444373322711801210418678988366780370027601596153283109706798201915509786672395341005732775888295859328297890445819623036579720182777081343756296768884592183456642494134410897299007338297685081772634044845918370234970440029990233302918812236293576157171853830954048474487211821674539439020055379631423499372121609696701110360181110974672313566886224188517161752471378932507654298090976699673897295997121438426227088849340293857866086382294527369091585544032473073271369253744938153028019904007963453727477935460966057479622504464007336180567892034799641890332572437831507343437632119318252311539205780820091389372993174320555282220219844872119642610030711439749853882274761754434155436257131144367839655499950275607651335604407112576650863762333722395504684009831850561863155624602758347761602037131864519473413728421832005327911181117859196482531379906762544708364364333330801001191024413054317251704559154843962821940641422206665482777497671227456203599378165329524924999901400903744810757590196275851564242334337789143083127897950309170957709805881042418684968936756092296740337074139779560935121201431454661078430298841636944975873283362617104791761134723960311923657764090511558630664644771357803878147307420952232940283977158991115924790077952460334402346617979456895954365825442614999512581633677162087984023566128574582729185052309387387889546646929220104792229834389335776550527601546510113987731286814521017797330032665254291725366107865288114551276018253592408146436145885989584256365474322878802060346861287147099617013524896906009733496848095419122809677032655198214090758072102672037902729636096629109832062232048678191667591293602305040025705634107658234825144790201370810333600748999764538694345683304758608985263153731391916222525578690056875114161278303426785992380867396009662424941476020876156938206140830780661145234658711232657697288670053356423143400197283806458009990966497044346978684957826066841238004051442335071859043453461984218644010279550188248505243319042962178774752462134448533018130020247993766601995095465868258288636951368960146916641377433284108439653035518026953249076190590604474875948682808795076427692910230095943602252329652365927537076628309908981232237765085944312340172209978027944815443017595646212509559436306592420757987356111451009988139302556093128611852209799184587100262006899569603419084822286531840702646702577806724425890966014720580502041034395841010561776706531271987486355489377132719829985499420385538380607464332135151159702418073982090507868537601873793666328401480719412843169836017254073859607959920581696158676368608782796399739560777364593669180676230504439787841247554810424229693921470889860138089599162622867736914832033801289606597451540099208439002225943996441889443301347260889842922484946335616258749166900365873848543862830008811896150421486024146333648367190702814399786408474837885127630120404450966433917686883767984898297682542577050875398323571211881097408221474296548968577557894629205394022615490833384231879678372961971377992560330981141720271906176544917251775544927043012437620724747332462159586016105576552861402645806051935477887503089644252301051253089890818337428381397844323580508032836313611900826972424676508415850572503351909730055586310832803912581403315385408333880324348915357956735615223556373584733294319537650590766885529502321539057187092951820408101323433517275055465127320970825673214186792739772463979058297662024663778750991385905658806565256783932160840576916932748124089171169137354072022519374107605805931562589663073619565722394602359554823702444033090253195634584578004078022532535696056920201187084207348763229747573214179802773361446490592879924886564833300942616513268800954791242324572457217523021480526006837504611863547483926472517960922034235100959198452537089273713434624047126802621362815655217253945335943150766383676979458400712577566102412213564350369279693988029933071649784051280504800742469448735466462566104497537429473097458090408641052184906948877714510368882746054184043730507623654462327607923618280749567243741260987613418083952666033360149799621269359017298619224754947368223911325337353455005946601732738679317265191079031469199611176829105967741789576639797764120469122821086185569889088947665281916066602330173883779129933797652530030676516666677146741472187661460450819333366150704678155591448839656427854095506647072609538217471683062787325009253951434034226776956956349500276279229668914884167807877660982999225633776343452331126164025328957368184610220129068015013889942831305162643289240244021329965009698600784908531177947501471791696830166765614680161201346194887249862735983175400146988782871078877279899241786926797275429321422756825902360418029088967035767518837834496546826059146361494473229622443514355717561141374002094166528515849984926555431941538509287454820497797280669346958503791707210665436137602765778761966548885939703227516402282032205286506740400680697990342630422339708584583811669613312695552895481472745514723823193502863915966578937894783472111582889818241923362099833964346312627231880906993346699148940123204798163603878435344933279815227245345079795331713730161861293612556711910507426592683224853606552337853002851679922693348985191411786343399833155519388762025111553645370657404545546285482594018949163080142775069255684367068693715705024470378235219833929323980271790454326537020738284242727652263887740272747909915744283513715077126938670018161281896241120373173808488947076703049540471658262567450460528278425704619041549799680260575210768111254120262254668016413795692486081971016720804221523550593776855195877617121506987175836554547175558799364453512718564718390301124449404292182262299092108681891483217678791913924512601195443584613127684486999284617629508237330544814856979206525685154812246266308037525733951017545888035845078608334661555645355890047969005848471231869922004892043836765200462295636706202547250568844583932661751806530275528256617891621929224234237999239795995484869730050860290034230023198334124306821410990013816350592782814712414755497745481361930254113336282409996609652118306503159522613059774214098038977775050282592063308245687328497713255224689253869288086931577378419128492084912071984373392284965980531242100473579478466973229116811469868869501412587933178598905029499255917573549133587660733649122078217088336902871113805486732491155976710925223718008148226077198605623923166340164402473622485854711967185146793349380289612273419014923976940754881537684125842474413600527752186918888762807169645845763871082745851149492326596328872493758795663734462757670881276829187988407927798621811276114071962679952190364790009221144852053550250134978526875564966870438515757897246618154862130129772896016591033596695396811795815996539039978093020113954300675063262380147622302414107070705150057203520988080985420204251821821735186291042246681457965192102816773744897156346177534331599220870206532815684380016770994243270648869856513970464468334931446322603156008697161724657095072058468273113189912385590208416382008329571063263438740327268429195055895362815307240661319543480817126908719115603430440880624898472754883881662979365988574302355189668086204433436372631795725879095612501953481469402075491120186315823726972046313788709681978255516907877071488152910957098530648616809178851115164931649870209926102376834743967676220927794441163727092771136005175358308114894180346028983945049741202798619475217208613524038746032411528008155033062533498329866395003645970046816976237100791807752266675583242351003548070294830898312408926408774121109319181305541717846776213696614737531440127220863249963477793590534119076948305829623758391332655913038190962769642325198375603657852609278116593757950700310134017178132919697395476836844076752188337259028346686927210110072497310869093162860080273455532024074997956449612224103341571299374465065359171431693069198188745491731133469777320985460213087953137200499032022063495546919877262891634224133228285592228195353508861188759562173275296431378642643345822323895228078120907028468532968106916769380185902502312211884367063112202234339829764937574073433486085858051030084940570855781447920005667321999717064251732388005511548691498069000318345924549063577045356519205788219135791387815635408226774141771747528243340940699502460437939249859081187782839499548609608433961162759229684028939559136423115567520581199508982593555882599883424245529975627735464496357275638965818297311675177453512971092432935957167069755831192172834928970881667035982999637671927951124502637567694740723365136380174514622146117266932380495661151205536403068320871135107065422875354785102324595363460737335368744831918096560667613650673784224605639027343087933531099576792031394458804152305497710103044263625852751350057427113890684901619827742935198143343566954121673139036053930187878836850151209480151101867641611083858289472663374209714930244839693765360957984123971255013727638561883491814022919880612929675759704127858499858191968247141600838325562587291889389461906628103509892213103522222377692866970072396451781164257479773895594554994266800129029365414372174575775172904446884423795387083169336995622605222678477523568109018021827060081557168172219935459348231132293347029598904726786090343567190629256579093871420448960749920734965129608284613376982369713437800740241179249524923514297770111744049354352993524735836858311395727947841364114338745805091512554813336116951726391007819034989019418479923733695883523086912394255052483980788366244318358162109193597846769145070362700860973736850250189288851916204552965099432209532408450052702930195620249886385967538037277394138869354385672779733899060840144621821650279245023378142151333698805794566231467299890258438424982552589724675292458811862154376086260050710884773487848116533303031488167927536637616696256539881119599543405049075835029326462983639131658609209971226779176105952965450032366880703890609070727735506519159779258927187022818412772609456225454620637268032709235869193209661694968018761474302195760199554906610133415153176464628252793097238064071798825714762675470035385978412703897201498883860265459729884474061848320261463524935288617034348571764819454325936837965689480843208243212432608379495164111697852750086498658071780630029496089800701523894195275716298147655309209786735860941660729720145287180274423477833800791610784199647342969140254403220631984151886814245535403615517785220740079274952332375022327782513315648912686128306754216641994426759406646722377889290927503849769196365271053570585966741681029422707020503168911425808133631579432442974355755768346415758663281756113947275048446342647924538567244637729829517645592812621838986308505569188758627180137759601733120938415014716485570074974177031465837887873713186703810226600410939531111090273878322867090951322643963648308348767626091631044329781073319061688465388527957512698428022913495532949250922663048990525923078721270868312568742318434485712166589353329127730541686232075557779601798145033417551553980138725476109166764354387344969799801265142241534758707101329933255888218141947986669553694302714300266957402271035700186736620249071314625001161604290530317835936777580356004055074007458813375951047401003426199882268049253993941333645003242423254513706197221528289583624692152918601273149162926305339315846272979372953862810792724725985354510402232149611115669496719008986783744417752064786035328641344835268508419315239473216031674650799269146585146117040713333271495662470604552225629759477144085243015216128798030698833074894555344041486218113855916225411228795122761156076648551849360634930964564582549611872082535378683261741546032620573986331266688653163606169378963611761232889500238039404058245148079458788650541676044034136996299635386559091048182758339973559411227919254120926449419582035986889342836401024424416922367420196894293445907067623100620796159976583067297044281439210228873978929778427121589745792665035281084277341292962132611062214134152650367616988343898787496490019353606283383211396062436355769471398534341559178593009885615338022716969689238053910624319587666364913370371016773657132597322195646296095130472136186663174249611875219892381133725653451675440577736823995945398841753979960609189523189777460227572264538800558755424037259160293937413312585391932423440033856155420952688744852229305974519026814730339408784190897979335071793659360400497083552941760468764628335408498446427038410697284187222450947109183719244019044530379634437704540619182499764495677507319103254800626037771799673996872083650375272530568618011923024162775775546790814340282711261880527382467013658605860033428720926490965477923052354382579355887213626718663591592984989978616073823551737457378031354549788722573434981833823364309471899755787832645982605980111145767782800607862866100829458761242085496624600529205682388979385836479940715158128890393598900757251761580501923223827032376616459902566367418682770049613290769673867096128462402622064896847838491756509902404523677163813129512626152444889441349015588566026573828232059697023548072446145689583237668130401898867036148143623250176187389286823616753775690795039533638364408003749967844703787435554431961881782711328697290668734698085437262880538871109558511346252027354992571639596196045789615916697548048717879785509835507259268291269253076225378645902461012180540816223654679352259987921816151820631860571906854314296806825406262975172601201965799686359662599997481187486384383488525746096570726489552537127658171863681727887286247382844961559033237732690853050356707913201935180525134695765492068428912803317531841143921531262971364390389505682778819886853562376541641473065226806442390987789325210498362913630017925042503785361397429814273467636784561197546581065960024630160641110288404697901168822246321718972238344216758130220786862945481053066428334751815521129172557825610211164517171295615386102881009414918132895649475817222680675779515842908428555477524883361051525830362994795031214812566655408556131159886561710858266897246761529346274210513780830657601529129033251215633036786495743025271046439803583591186560530313339242392531256393709138190431656402914436469881297418102121580957065702356242783639654981477342143370672021252174111008880249964669282903641424584636541200612143878157681151617563136869060128007840127717088775976669369709827310475491685355913742446145264662759215137981596458528981851863011181771018611686254420298938932615260459056160905827210963012477347904594257387054376751820006278539472614176939024742675034542331210493505868351124313239886185443743641222235267159062738707288329906528952106117452511833510068709945695030868733776629905193161959176034112764260637576409381422531439877479500327898651772336710985687139333857247732171659145218565071331842991951157216212932323175037173402436350097339531097960913636894904992006416665734802884207605789853820803939873517323816990944855259647146886056252855117337913239627445090067351593053935602955577126517892894246369074927338022434764265014891770187190221404481421041109935680757137555218683958738999365104679160924774910234392949412157442680824044879552509871328338445183117760173888203166493162093090242640129310490291958596326487742117044437251935032530320951944727317563609279949340102753143522202372089889560425630793946526557198304577430665832382403582111921378752772771333303604126921566563262169020032477352578710769295282176476311431136260048396135958303557784448870241295678814464533855291018155163725177835830060810834597591423648642305970550408528564684594981161115542028251137334298494369642876854457750422126342293432221219548661298090435896601908113497913036198055059859806339414335954292565314687782078257815821621997576665776665986461273799049749044491709593319518865954164242829816517744675654473199537086508546086506180908886415726404933108376884489528711519803478833763477668977528706165467961116412739184300384158511596698317087497861633266145750202715384345346562530355589051029225996928555470013474904676260918627229143143756531622380727200701168690353743594364467155343152510808165192069067451674089043366071976379802504318042398569928996198773429410303786806802115559033801085193486462315034412394541426985930920583144721227839578822360882911905524762554570372549850998301216539915488019283576770485531948557413311208579048712117822101705456625578996320303904669443581603172845478366559759958247532378576299691075311531401502278268321927089423097880964637544240068122433712991909336808613348003104210178540465138205392668992987724885057649557025219901729000424456652835506898972776973024946695089354398894156275225563747807076018148482855012582702874285767321402092379927300416390115629889184580395040066938841004421888678722036240932212656875629393617797560695079074357682644009141156206316566526948985080479252877288439420748322133000852185970678523285629117714546654244238131352476873852251733054444247504462710853097312120968937320494287355784218040857446151279548615044503939727850430662661278040210512238036518562222707711290493790536847154771045498444690978739101097552038522661200611869471288721741013395065742080615776774537427954136277139571314932592092051372808509254082482798396837420629094286933780759523973452589828987329859477007030685488936534223270253578136318780338975146227354502995002951867872344214800588674599821682907907414670742128142179012905545111417080672690750255551797092955032420394436148849831403887781949691814599463116725554908391679222232131015009032201330387807781478038548337394622199918070510327871889919040675618798089678388895882442880514197429784693393363114995152019895153958069602495698502173159815228920623429468554604316660824245261427578027863325273760932062497541479635285948171843004462260642707882951002842415963460860000896082287476130430640919617060265142981749472504612818820222753059313780865583456297708237503500565559177785049804660256733725528532641746818971733497741798530150506359364040583431403782635760409413864119313550928679242749982281988810864390989207943468025665358989520278850260638607272504623779092159647814618765914200239211060454637138139872282469613555063523891254106294524699912862294807601702346548084462687675916703070374479971177603478937720532541847988503111877876593880348001628117921699337029893813388260923829146711665381810987056131712919976967406664318757735800980289955636441810660651032388774086820881690951226347809370632547716138778177948074287512004373855249299080060735420479013689277311256296874680011598678255660346836872663890102420681777687027610200203686935864113022679671492504348827120478785907159082358911628367474742614810904648568710954009024506155496269559573687040252395528913627714004412633514140672100408671382035709509562193170593789433224244603154916136318557998881914863986879428512051920626949857435824918552969844257565421544884287256748516798867120544748127579309325835885886061286955600752279578904556938316137896582560852982754253214300753771726625739011409208981761195602092986512445272015974578964475453604905267415219547859921232736971164753194370316742580831470771075663309279813982896576976102036177530765607805766542171590801048828053143328174754522142498539854778485100062890971985297779244670963978692187191409616742596407118269615555846166760732012334327041506795653589512851833828746932263216400781318262892637109509635989198479164720494348459037470501841436725108808741893514041416542591974913148964160851410833201444332184460908092643145933433491329783896076823251202708426041468384718807732201541693450372527619974461067087394876596301862483771359140037478925339986729373832450145573175559875013326026392299564773357342016659453386104456579089928919354006007036960173559733248537226017150862145573243235720899780402480982477037686536202482669905509810325146533452065794764142743497368449106547091354419714235099803390164231481159485082921633273708119029182176566788358158900389032711775069105877667492657860425243575752050548716698343584989819808495007073480022058001915900193827717312379891953238909562824252670798496046564957099084462155988658607552897673999331155777153329937595660450155958272451181244327021095996042493923090840839124590175512209556057813287624623463496940032703092888388361643981000020193057580142233675924621925730466602615169621034338134402790062774501588442862674605240890394599655214073234128659311622833395101235440748723074907045789443427568220631732608657832449745058614586974495371194895181082127430397010049363989068719942516371072192810397664955492500577615817609286477571169469218858738776452391111664095278716274808392351069499530963380862052999694401608447899920157786599394452275003353301281979746200968015175941400211678984690082598289476008281320205901931595295077790422449681427377521849459013682785418344339184240116321853842474326434968385172791540415987484483743833131757312581515022632637821238716465957363556301951757550092803449907683337591475801504417329752539332524794672480299702105583007733535150495278958254328108422447100068370194630296648715742619591923766199194169528147628924360472816368669258533900782502836916823861876392312806047655439474640562666077476862582333997685168526580571867852683582022995612974783234008522243862243557627981530733883478871182536445182863848202621302678742775806954819069080745776387437988746904932049308420207529852036049181721986097077555383195852626342872195071554218341880929462299509108008521068694124830908213246764224452755320918422780018533104105839513883916690019472661427776445494609235761778099646265212105936661897207211427402223256749066206072593699103814431861804816801763562780697661993264091661979149318237826252526752116950728943204271988663596896623592606173851650747714883282197621795191026259037689856746738553367599338274837742237792629652955228775917958385175245792638115601537069674032092418355834238873121415760733109781538223811670105457239749473788744550695963988335550664990962587955345028785332689996379538315697226826200164959404379660889789126831621166026209416839181856151095706327033320015648827215341338117650957277203883867979567543536658878983661280008315061884509431376857235178568274396725225776423334366345990879275431673298869546331136605470939549748889249085369830983184114510990765227624695461957422226118462876452405209846432366027031495166196060067293093506609546515897804252334499883087856081808510122554066120293092649675458024977322222763298637184156795521950953166497861510215372689414107918225080084370419014471565888856506830172091559678611459153535520356029568034679733274071664043576491698949590874087129305438727810097959139231013622322096502391109697269017819364421502286448426848001292941681110486570668409428944467966041037199853784977295365559143957551589264839776766116101393516274324691228537626465701624853046274233726035746989952991217136231574036939021644986241493800752613817969796693061923910877238885461290228908625113779143916216432961173008432882555715547208381565647951230204395540598778147988338684802680406661391564477596505430632360907128735790807146029020722382355927225435359322004751296803757859203080395232661041616323403779822681050421234705827385240472880250732581182909690181140640866956456978122221591580521061064201365512789446408950247801612030584676465190964896547310581938654007471482894214676350035826531203923032398404349335242323795224852943169770510275870192798328725504560029394199783636381425115116023029848079023610535816447680682476146475314468101014502073810147088770684289508814308682634669945054177655458172623338245123551331848426013359296830063362440334276584854974945242971386678859137042099356850694398872358829653628206232109932943474272015213533390729707176245294194631899185995700639840069010039393771206764819066420460645570724770843926642049642520685045992071948789260564405746271691392630819301282802527060111086086011766981271475303713108989582261310267653158712356540800845043173225952706043306255656196620866223573574658288145825119947496906186458493907864419190083892299185597792744310587262928279456086502790968251992363364761245959410238515551448649269125347443884563539753057978402965207715603187414684098605559631448248776117977591947091090730419457801922979776968521811651290033963439694068424529457271620643931868300856354151659370033102270084521181181583632719020181417084551926282625678045343062264820065018913451238028226496292222153752368951584570624184734405487895780209803252626874586961691379504298686277302165896848093296363791027777281246348940621247375739570352224655746630152310219558768697615532302016665161739982285745948974654574089022095743881103942166060369683284113497315417994152686923670606986933512011510005070219145909181469463663393957830835329504044770964263962866059334358666607990964453369836795719934431986482482626228464812298596043844784486182326708209557493453488481587946861016649406285914106790811980300221517736266554863364776552570592382499583545962206229870757630211554855731476050904467317104567715734853168946845995344001386709035951379748331962138398995320250572952147105648327439625443231814046618266994059738220152310576896626436914298870001548146972723865450523662363370440273828506695826203009657950104579745536571636455994522848874435219471769549603795134906204865895585465819673039619925205516672915095760979875323033567755610323418633837540031838753222101149584271454716528490716641272866975574126362518438591102307927303466907550897964490369910887557151150002777381785906292375222826654122942855586022982797704249725431244949980454698515611417528527494270899112502664705832231646258331230932037913786059646969638124756945952770743534075711118736138857441593423772609518626987590007730891231568627612746135040032031811356289270344868110309928346903067872570035797116290102502126021187371608835721053975308605430695816165991271539517387030951740710217524785570966847612369411088624225350762956819634892946214774280967759955117634136536588255492216772647644215355241557461343593921403731526230716137919139377938962672175533860414522164545006105851258420182695267916781377296307675078758463327039392051239211979495777041223381602703947685981658684355298160885483680713347372715676042009760222825681040769409960706280370376152319460409827363839973811798369405755770570259953150536187824665209857727618092270596986313637115177944539915369468254082165809326430848557265521409185493705140579263963185848754909560804828861553299944599666717878845701664907878437395234036956611193746761312236610981838485980588452948984460357543027374014075598413504309327826640289120403167204442988788405417021040572129235627494120377383136071077054195195314821389077795359669248178743657376170066131106054219719945581136154744228325131640907425052699446077705317835842471934853639045432793392377773821464766607735642165188711826892505900916794832868995238853986641818595881684011111335256333931541698476659431269381437830235473420317796875472517507117856811112409216948134858780081932449765970492782694392578480960353305330246016938545544759581333071367434017469689946016528807091348138355940953094207378329745346075606615511974530701388794789465442296970217896161992134109567821396557280718579427195240709999987246034041508129127358893295959802081595207201831894608923002417370522709255634069622501350855077754889294996643217951225589498264572652675258840513943159833529404195672007425618448329053933744158045743059148697356095396611576854293161867109825578914603801849966085921158524275245311381122422266643267523700232779930684524760573374972276868893752764143338679359820052418673705832268034273257284235044931678763744892334118407374191038456847571353652066391371613977671298203243188539921225059243678046976524676976331467054666397086304775683913759670082281849421253162235273411676247177553461849230230400962811770304981746800500279343655581696402169389330475574277707662382665170176145273723343697551487960299560873546424803015249061672280214788686121085580849518203037587216235414738061538300048845041949774625888998055647681008393117604008222116235015728199006042562787071559219765071058442847324742059371374816134014653886678460283815730716081508056100858325490216478191299175959406477052013927873038643413675031493221387627339991393863801620044335128407542925138385764037806467011065409495976327046664202112993410397976394138404819049430230812580015153893770280636026096405231387950290055269060933693587562656933962283473224784057409012162485667169269061186379716746643717132279927295120558453660430541341368884322433083182752257073993280890522720700000023513675963481553916834706515199829023632587743577314115398043666696791393956285618082787236049778624243371565383958955400925361213990433726921449545006167770942839434309116556197586557201925335706388489083600437643461925855824934307493965128928829777682363697882882271963559615410699358114942801717768443361569871420401882039625758801543260411317300603757355642311356095427901282926928673482973307978366719043923203432874095603145438786041773639896997268017759552685618883364986762979883547309743434117933787814682741092430071496693135036145263041874042548364053129309466669969697487909004652707212871558008754104833020044020500891562878062824931008440584873546880960289751644180472198816632714654164597787738985610962385555212735271760130959917925605719433879563792401959700337768042208090458469800475377181236536248096436957222769028688826739083648180066890002580690602147210223362461321671157275768473919029533090618015086439428303296210778578059541430223508887031914562166798505072081513867744210349451127418203717959576566914631648702624023111195844528431047680947865243446086405416384204992366821863961253663360589484958311853922534532644516500881793377773010693204343506274638768227338716493324760797450567426351406456224168655625433557901898762317623198434623956956751037035860449200164373400936944949137020897819953340910769301027663494761516182904767812901871590296132306724205993251702221930109348486328438898831285266560534589292938107741886906476124098267610598692191888519446219144125658506449654128938943463519934151807945148921091985304038522047973530976008324014807676155184063955348879219318710673315023113242952985330928414941664806008755396422187629662213946623717918558606544253730317508106616314839031915757534887871554765133337888873330398766085380657375773348748713169208248720168776228825713183729140570318621702765308060893908298618587727502787259144808026846855888883663934388992855027953875400229451796826802135471328713872259556864910859208845341120444329346602679413105081940464295616680021963979693745517086284051351650375956590764563540665634656454241696284476779312811972717540932261054996992416643621026031600505911287553347317462342024113268553938761643121405320380858479733483273892888579333042116564970138568785596376825909569524340372923954096141919994135228953120798499994424892669550794605976068644156389727733408222469978422659650896310972187083809762845436735456447857319342385053302926172809007746608808254176174033348670734671846133836559663761820078663639635569004406357055364290104385267181852010118941394200446293025470318876537270751383845823177309274892430752155948251771633331867096046138590646975033534595573551673149844821743783808241671611261573481383060139255123241680317808609577621043764428556130647003368036098443141427167907974201908237180335441570737291456269678681940800887339845787532656421486215075064717104634134896389153956808315724816713902209434794084851831328826878241719206544249105671765502507257584663528782306904971308985361602745678290585174915676962580779845128746114516705872135948393356283764583583447559545518111802974231368826379304983070788106372125950480277743357433381340499650961015198481646020788742931968423414605736736299789220247881352761206439155280855218203623622542549778729394237813371396888882837058154426346974928805517085192264040177771101264128719934569327916890226426275497651349865426886570488371244551114280691161094421728093208655869530731680779562898615424544163861965842159217438158576643826273444503799763257158431429683756883126225825350733167733058464824671185623177691104998855936937490438294793414676902247263510673110393768855178355651722596113841777086073520337934109615769466145491740501412504877987211687023388081423638815056360128414463579681557182625698719516921725818662527381277716717362348469362929584342579142842113832957935358984728406274100597661908669210031827076626882507528522789048422700890326985272879995424405476730754758505680255371868128873727429937144328590985891269591369196832693304081186514242679794346980808257508309510062568741808207043243947309988149021483820955335912054529739241219574283980467892672106084409808398280817781350997319809530519877058786317370190570890869082691783612151047628740501229881278225920852014310438061473584512147073928968829401563292970250021063332658581311944375595848537599452117532859287968359006527790699777371041037477945538158925409716690570864577212876839133925945158244683737877263308817072758939466797823453311380637726799506912453071006142813296690831683745270340256649428266776479657069275846049512506154588920429140758999297827492435590831926333624425931793229931988914599358739064533532248771835733884548073722646856747503135370294420940535191916930331710749654112206515904368424011201089001603317368202259836733014062367084407380446579755832910575126507389468777314258772552687682866005912505064624206348944748932438818559592025031029009030143079095244562239610616411228822024929822374629697502422949608474646118042055364151965299632337709623597464187305146914520403019306506358229418535043820623986295520520442664252670982910637949775019426919228129367439429387935984341812861123923474099330960638796721485641755774984949254369052272971904474760409408165199673130555496798149166626845248354204790471846763461367518348407927216028011656095811937425222983327064669286531363235877220776574420343153663462593972491511874204997529355175715775079521864737432993829965356348006192589673103722226724082053323579279208869404552671198393246635473034340488899734872969727410536859155143837616069661158145185617334932844243314307405061534611608702023890956783265104436997000632665755628137678515309849947800800944929219566480021750559103637431151065748648554969198838220793335121215378493716017276656349609930795868479873695446148285817248777142265345644398973767017065549345516117066678118018100305828707222726476900816101688177338062396130621635453392910525435510270292090370253460338025493743283995511952088545321681074305074450354721588486261923102443078183403918333288006252940206625579854453507853100921593535159048991225161905751784555131433498830998022666073971565290880791740358333060391715527436131708541558463581197486185570623147101662518167618594390959171033746159279415614653102532477248181033038490702862427152643728377478769415352885731312262664827740187344204584151787907536336466406544874010318363991939510767891699240425855268267113345541560695827723823865362641879530524735354127671788788709583675128823348425629378241583936476344347548956878816118706611698277557178769221570880093893076735253470893388361513245382839570579412323662021165569512143038997632400447053247924601043757750470171580354138717406885559985212029648795316001434072884097541588954186608719250230246288168851602852629602918618452644888510821354541034219106780391927552166367061262856280781517559130463431775129210613867780680011406867531972932993670278037461533153727881136288188408762971338594475244350290319252344961630810357807510459076816758592525982465288410594520030592255835619061689962918419799168178330749007988264522997869020439971914395992443220461260046036417370846892765301865718641658771786093087519491246139316960633978453466560379034682175673507198451699491393137199711925006914575479689778352441748138541742817026301511304801334206382841177326043446742667360977921471111917305484353775713417032398301273467125908358627837683285643933961766787018644747574501982729636819637776703592277376953855279070919237275865305877400836922845456202438079268933650351367350276519839872812107954264645142680603882996697773535235381281719463747476304120864768731293471151173153119854802578207327989197375812892230993582675842197867129776510045660276721159159934119261429041345059186199250102073164730621750849558795306786276560640951782311358761972345296785692917355075303607317068220659850612632699175363986331188209967010075232771365202298671574698073387994972918848526740953671511204149206072559242706260006055024262216021962622752479463060494077971263045604148374950966028864090045116172360654087707013909678503402235252141588765858531288287707746134758596708369282025614034918424401656340763296685271129865160155412826916326601185518806789074475680454672870966673769640724552820331062520298307063748796974835517198580762664718517934630413480708456977675917947860471297260118628058427134879888899240075550986473887476885610340897584592448583665641497079321923400151311922575422826059681073136822772517176342679354793938479152616814593224657468505797826725522855151605894324714718066303208101953869246642902857244607625500754216275899387274595855276495781911764554005462779517709420296356976313170037695962235607637057355838161796546280645360935455652584895488386193945865022068954096444695995847721979252424440036778389450628071920840766497007543991535812583865824461601510993898687679946765691465455697117657696444522003693613718200840260481642484723797737770869907163544924079898818301664542212844219195802443156463639623518814170767366411006540360769064294930698151926964394391484976971793372293673729353321361807886623572455935817833654524109155089366050847799726239298651847033736332438161866022236475968056571883950494199145498121772147167958721657159545618145260043097464515980240441040506830336310058722561861379406325191551646758364016041048377057798392353404743466482292615490544176604840441244508866501110183588657714240224499021331447811203839467562944005228457419799069480438460048322599698242575612013952461908624912303126213548095927468218830418459010874318904762407764940991739458962599713635549476749038170252622055437960252822375375399185118449616679503710312380688741781736934443984325499696395982601656806335976200378160932385899774915219224840164406022689181857644953713742302053563921127711385675275072465440557630095567696072748718244780210635649346196606805115949688743727987735682882618287868250889176460057692475179469605730254423122778079964312628544536687763639864026991743798401030718009450168354692875522431619603581524803512756399070921951002009276331678959512726512593609107037588845989561004259426811615392641905462285966178586059116330362104471899164295203518892022584176391715334509638852999744040481983800119943239382588383670154948048327417913157698514494466191644750085684099425006578767820774118493540136640521567721133879164020988664681558870451282051256956551757011132277711586829254513291909603756351125310938434392460846844587289450845228751827524800079670681816648966385375961193499592360734567949330654099112869202321957565992959547175410691549112628469136167005971333570823956796775200039039252741121618311417921602258607343486152204443534439048494968689872540289654858190533156717139289077700747072740309372874559097198445310837386552529392879493257040464408317969219351160096808593594399711295331280946491563252378198130608729564969214187325084029018182624552444973291670253864763579036880193708051988651766136503409182932726923291309738058967117830276718089230546994138055339980431147454177933025538540012728964531367438155514541885239726791703667234311858947418211487848886506523309423858644114437410515720256099813095895788778797807362594235340007678020290242542742101736083694721663633251899476388788922283786705214065974594788250440445769607839613828970512459697218024913250626808975815151704358762689064468151039728073414576134079798128239081363004598857083558065887760164581436825182536056685026066420454790755873209676899699795463378982686983990987103969690196017863362930233194555081974272990312051035109554332322400818784012555736658617021552490129114956436235235924549221553163770278565118293852376637235016211397832228600887827306891572070886919223709503831666871282220678261450500577365191361817567498641143484408828506091286156223729415989320406449561260124480471700607827861198138676186007153931965955945588483284620638091196849840416865918786304046870191925747818158474320199253319218196108602084589718537934072587357553875580479036566687330910032669122575232207774975164808971635388270600262869173713711297857561973073967362166021984573129381347384660073005688415040566839750278040323975606015169498961196499932760496007843006686679941775495670678469479340967816123917827545589372072066258372379165885731629890716676946402366163586498510632841866286320227151839907286121048761036792722727750140104098347404194535471320243041150291789800585943441262038199427961834589128512797375275144764515630538062119524560323201329598899729014482679198726652411594407482545402859215806707550273283057129111962082411916753714795554871655135980853411187011841486370066051264877994584840110509170328879169504039443727359583171930976891288369011303772980896611846121344879036695906715363312579590162322709511159070949790440965328407974642933931549033097081860095850592580580826515954699931462791636773579577082447107275837409047501906920612608906662835066366357512937068880574737644555344787071447186135893542827249495181720732736550269743624008534776095135229268229350258993437583050374598244901590898858238026186200819996738258978890539885773266109514864228738236975441071786656929517341401779438467108066242222843145661140214153134318006100014708869123314677518745320617521983265194522252692774822965915551871626364587616739386760875086139156589294127659678086596164506407124805197010090037008820396190149908787641145514416708919579259578298453806358354779840433359074159113794178240291558962366575139797574186493213918105262232048326599580295131586459734981786649856074842832505401198805259717000301865372107702580791658948646959220596275838754978270247711339200014688519228524529347850552700601285182662074713029545695700756808153752561561357168071883865379760373104188711833431325665850076595860856273599710670045391201427569018909683013937238060087099827757094435079967477645829588523455107245977269755833051018100206166250953707677770623541114210306970559430015706168215374045486306419532041500245936679616976805190837207835883288408235355731518488186485547580733256771459145516270508073082763382679945946694842600118472040297918580541243119240798735230023866964632171131980559348356200527668826111698458538754290742347113877067920390085806946129965714286060925059238049707336880161840069244148963749593067931723441250206532251018994161432382473105718983184381072101173604979702309357280100771224406882544475731897096250640685426441627639269938466139586243433066457754414318104640940190938658222651428779438710530434663580262948771078402985958087039641630182775530634984222667953880763977266098893071164311624365919393547982665802976230561401475281448394580809979681933417954697536194901636549446340993421466228455727339613684108320504950935566564868363767337126874231795696324423289800063051895496284838598120263443006307792555643601118539568140151310448770910869443480929544845148382660682046310465016885639128834394519658916296524539039506345593371661970191614972215002843097894395504950171008388303492141677677681090636305166374336076640882956996932788452494294587038685981249588943134840843009907987135557331038335858155803517025187654622525595361434094043138876433406013330568036043960255822984756732613516627143125291871557651040925571673015476320156771858431345873029283730506011845499498835895853549793453733084051423510135411122238128738932037939609356906611883331477011374234202716481426347530127941840445058138107303484594987769037760423385822508437841412922656656971405799786260274488544704914347194662060706332104781783602521127492009651248197010336948576465528123360706656978421045141405110114935318457869040420337255324817534136302828735374038837893197592940187968239427439249221757303755427425293330150018911709102761755222901616643146711425409919314824521036557585180723109673563835088822235006922429282334625593039324117366089364525828500450570470912919208453850870268579264620541514085676611687268859905591627681151398133411052354067863195933780173907965198412972760921330520805338791411123123811787309824273934527469947967073624583400240734622678537196214872005694840629631711371378320243031622852490766259938428760336540015513214283883908942824066636558077478741352608665675403059283849118941282827630789640528936440582250962365647260240437206167766508913377311361390993723718873517706812150135105690478996962206632391745406423962622373519382092057337665711726785335089864647123686325168458250037626857575274271851605258603151690811459050898534557076985245593787289914810217119248553239368841521404341855226055059807913129866124301398821132343917063564620478923293873727004200315536358810228219568335448152553927609797939317229668688158836354348808585383346229159134304429019666621487262506809714624413384387455361253823760337726843908675504730215639320127951042649692912846864295671196219325317857185097631647530066918460407697561143598331747084394431334171476759879516061737852478284420395105416465478999121650485382899458035798445172666727442060520923949255868196739581413540820973991404447496659322743363678440350775077824440835564812639101593800085715500909745169428486678352397937012259666910386751830493450138485891527495506730372665572451647282802520617762537699904835906462567482825206539128473249658700533751219915537359923560413466292102944117039377551766868080327338360585831448378255119287577078829325571993721970796821880875738585944457503921083731217704344385691916053834027386781047079243765121943403837633019116413403947003772506226444901126434895447531546759340866092877482306834964748129969055953592068360035460048224106641107186980106341269618982062325570636080913655738818857279217589121213982347698380359019984650207507183167486282266975717004764331273458309435796640697261203435215837495816339027983192464629151697267465056289297904031855970763105027660025267791550518065661781683705448614953022431681208032264963061539091315771281991326058246814868901338292360337203318705042850015206413609157573911876415166668875277481915674883264162648519807515376407203025564739655994163556647136879873853625515437383632900420167516469720980030788589096888980878398218291732131060832497039190078871450665866357023764975714262373943361942237517036455412327231300235739783894445139644679191245083934594026915492680984248536302374086058982133484646511473607763388574762524974436715458962604861664101702772869689335338067037199661763358360656650431080569941193383898563661694778474927567675586384925524077181263399756528897430700758700624593705860310155431343001515870191649685372593270845147023708615365969652254275206756543058677373982776115393386603704507723237160566469799135189931627176753938791841448354671913963561052242299286609141660689524224325786983212089244835714912292301400144117746945991697796144744527528610591386590445736069450528478055300820299335574760199679161925113386011961718298614871254064343056060472870391890343171694952263549995827510489986108073202867347186935687233436981930149613896035739987018545581688474303076583982664860609857003911679146483673379547814350325605865496927739852792044842062863888943440580137594643597410745272608963085116254913479889207484141221483346648548395856895826428156220090289127306616445651829953708491012617734545542958422195029059883315777599220981971701799798954522519300401810980069855536940183660019672134654810998602381796070969110471834297181252267903286803372761959161498578080532234646568244953178523832532074122290387924845192269226090898147819895972625068149608929521608941998873601973885529820186457219636335722598255155102967548072191658419439016367286949405899985185030759971351921841930140855814261702497754389597819539653351412700905986479913551239399045735807040564034855255413031094495506002601531731230311324188391261554296254864405674855680914479500748663498133802149922088498277965113960281333120358939596012861477742332329265358970591914074025286114240355808869228754116513946337953255444316729412519699715957309566595326666255360952533594328878650619535985887194434873806168863000235454693510501505757944163033564032194621281504978683351798159072795700798826096342319544208641475265031269773097888329736762977132764942256752547104999159280573899662689699395657452784135059265959239490790827472448688656908624665217227624889697444212436341158177785800511470762670703763364501304724340192784633407935348646120854632889427802641811090003632949424505452329068638927152186402797971334685839723572802833439930491316916536078073357271668188174681167596721645212358543615133029351734382094191676405891724360773331530772085537433418689041536945036672969251963490529473778679328173333091423668021405123988088130696585249469730889944188398425250130435278472382345301400202338054044431167642571628056031253603860902351811261479959075046708947626695168932627394367133817646765619951505859936712043587185347001825844202597766266409856866061082672665493466252711515847487090698444078463818143464553100631575815411091144962497047412023182031897774963418705171502924496054161580380104661145582971356388635965515731946326929750775434085212563897592856784238745891226927219578801619010837182442118740419958182045633806525126853437151101370942309068289946544257989760336107042750850408986728144807829672314203581433639669940169056915490064331448200355370260159426908255923920504096228872334019608106866951344587635240378156380960432726613494295675062433466555848966120506462527045680307237193829852990472593544173599464063117329392992300316019621687424605166787278426390615014683262125932810844726579721295029215585359500560588235145856032422045508532076559642909446164835622203184530749884494660851429915962438222017452121019960633512571605337390396064985241007302754632121188156683693228781190894291299432192507532551220851133992360630245141020562771915029148010015381908234644546455714129358643168662943665795697252105994892912493957384664758341829427401225757316460516035654981279726060471026104761077783067350487697158568145926143666760302139425631577062954122177606972747378848033545721347869962089588749504143306476487108347862786787274954537390490541960679618792586652212439866875900024848625552959369944713732426825022575016702595794879833478269456025656851950821773328242452708228522845406020656422457889688997682336319648684383810503282641449476006301483183300425466910853638012851726747568319095589087621062936288231396707488763653950077126382745518091070555087883158297693818913856905112758835924043789092700027477615767164755096544979625138956184505465217584897159550813497600934252055605499869324380442040634647388048888901270284536160430392846672591502119577544212537083772170777001219537745824932534516758608416255854413315591079879898007216059627509943477155516335050647324035661619904457881975712999274961992314153169037708376720696999576929943738027103644852160000888593900988134083393053910920346183524296451912444024859609412352416022954561253362148205798566140543958027525703019067656812355742093060959369907188784879619739562339779482120648632154231122065309163351646012580060721644573817332077585460942109307448638501458606205624375699873411816031235581569329672280332781597359524441783792720705954022515867775544012059954795084101285916207263455160857864332507422488728910855037482719320952855278916595546452328723453007432127271033946323123407813644354859443608617675766097411065449493031665100136646804746392372795084270907178278844613328858338022876525533118499804869575809962121578874774726447559039884054916596050716836422107759555624981562453243030643080875084813932629302819006469768116195619007626693344980047188070167193569512873001563387574800122456634441199918462444418028151293770720442361600991600637890593673755794644990300517444390616805612873223382157945558981550575835214370085625402327779256649122716759230116281989433596089618736366836932530771620490693425338333490551437805295555681281047038254816914441748744559056017166357408769796973588385878983698065192798370593145937182482610336667177498361280568873545899690694895796556074823031315421509988103570368005076303418064482359475942582903267527139116564990988056154260712939211482616128486086932669999083390564083924914829381119862358454122498386759335496996973422173611088228021214636115691406260812956787100476343502225573711304797980562367601259172780943317266494809563287430133428072750345672887916196257626238360251808968479315809880654147153633437267656571784494468293405418078691197136791171901104450563970124657517604063372340313474739486715639795491060014662082307881322489862416967603816699699108856928840428249013881458694348445376663564704376930108609578098243678320319356572054317635890378090711099305291247287982308197044466657316069006659507016505687739650261429947786129337242580132828840415336207115180519352808988761664946256901282436825480943451097710445000239993923192542381071979254631968624104301111702065288218305213998648078773153053385830836822311191162333125944690164296804072134054167192733314037183781905119868193986842658908541164407137411223288304775630762418380256930369409686742760494372557275326592261527002815360471320146740580263938867284206229834339941462090048343790117210606359593340520640345496662025158472049338086790090700600767059817620925941889074023047086870278695747180169391944339872544396822156935287607687224236663231500699151308786718791465824081733071543520229141007470175530416597889144175330128002080880964817771094441879103686402648051572369385028204469341528552567130737679105229392685327980500745748687744859943025908435294288988345111678092082416571215531066949760343270577895779157364610515771401530114198150999314646918491851939354110032687258020060943867621857499844095299200118180651596624096901905571659201209377083525326189881415342127047174908375004728741035237744880012936961539943842679484802419613829164885837119187037599268394393930836209012432245177633932104494080649379250397129468424243760967455986770381419547405034806299012745935401997911428906563726650910231664973946920211296056879079002333422771270017351924685190096243498828653051135111693272086088804260660130152345601411253911358403407264024207911566276299164186805428456268169119105386107611977145823180854190064975270687432884252278148254502345609020455005879441560532408921334636415490476131586331006717586692754229614050455229908991269898262880679426372130111719713046610104573915138194102077580022255452050945128362890818519438403647676389406215103285477183036727898224722866942572675064466722233563545011233882218164186537812359896457355938900805519174842631224949536638612373775837850230986046612323370745188320993496049542028896261653089873818411671857979188869149950881514823158467935207172036187982265467255946243545882485544933564041958990547831255235494199195360925460759578009583264601016808098972769860445434455252996039402687951925809895612872671362581488196818993040039350061771049745077671153871892440689376448264719080455275009514049361831955563433313851578011081219177413659768594158098525821733103663807827896406330558841415180000233120654215532765549776394757705286178281734632538370840077470068330981370022500975344409595700260049519392529573861517316336862621942589071113194072624132407333496754097632219446906461913715762305119051609117907424693133934725534500055588441138606406166693753919931719563163273935199956809936997127422071503677265022360067992431435557310665544702744293767410370183926300493431443103089142117154462081698075011826950655716539887931877669723659188001815266546260726598599171014675183661412448266911944800815349816287342036099911026989361504477130503244489226494507845534536213087286691192183390002667931916580783648897984925100681086499225097717060083367538491691469955487198831851606942073600749469732185262474986667985372313667869193587049148893691076615098845959541581587970907412361386568123498639821271431595534317008403677749685836984472006187084207968622700276218958752155475470667310379981493550381522496336924105962565879284992957185481782824498216911784832091628418802786021801519660875270073991585520828610647784119368012644286803110821284274578180637930934131205749729035077471699250307673541676339561066288583680057104337334663047960673346824556211245066215111868208460493131633663884074559184253597799591614190628046026714281722298101033631480155097425046777295731951493028859210813140398114079962546152325460706686479858773636459711318846391099481927192737697957488248179122200727074046587035668401290209878719969618837576349024128940647347251501661811112309291787118484218923134605653890210238328415107674837814880589300889910667099136261636596877156447897128256931412724399437838063560971352011722467451501227112569837812956233176059567411934527232201598468900211522191759489937001354525925147189664265505978870232735435424267404599417417138576670321819362143456962166148717138776249475345482835691993113880198767635970913216430128506594482637237293453155181111212771464275468267899815895880561099207218151174007388428183268571392526831832962647612032268055419828296959728823962408680480085057389970874788622199286356241150639397727821036196072574548449666623391149086198842879323750149628332164293650556720930840740113317510347175263626279080958134420743387229654473839753869320575279130038758143751242523913829356990740637653091520443237646901262342038354572628810223590291611050638044136608559788402645577076793656075428586253769703038252012277036288208772974187341920911735295907181295990042528502550829070539851301115836291379231941969002204315907283197166115501679113925897469207092347805150257183053594605218989880701343576568121056932664494581291716247719771592248478984957030463951701794641566230087451042973181772214508940938259660440953970934507613400868876882977590968208203401914210671631267721960860286055680204927451192306325139934642503150460651059420589853357219032612268577256588193412133504299052972482380716706782871217006747407436085557176362504544716187121916097820846771767383149129145846318093877340475603338472198573717096013464336010076658259580002681341342358402351631515592164787609340899918765112208061591968958829255412432796925451194961567788481398252504219184658492465946912500018871333787092106701822382886759541543072398129098696593846388814174981501663587152182579813041823661050153323455538745524967122114106547544883181634902450633198934458162024464284920685798690607117362534306696032097319185540944295373738691767087049564613849877255152509716499247564457204577056750699779949739304186717109738627976940849188065494656160709324487148044954321349373841206641765452887644149405579537929841646789178390388327924970814508648779863547270305665463644403868306899059146507487730866400899500906441143988095602329670758986744374471986664220051568228173874505347325932313257734106276687502733808626150035507230289617301586239281884550753154536061588013022452644712325984942044033771577746802902386336014186200164903042215323432123097810449078812849539645493188986002159106299897010767101494129974485256858149713394042161979857339636034410897306144416008223049786964475731618597825084159355528999806380717111104552484218781262194185052765534906055569586422789848527866876257257557333687475839160510116553456020709667032173928735443798204489791125864834669392682921484710338863089043244869250442742258762670874790089150277905580616191092417267602714714663656765279230408062680590524650099519543448222046310969510582135806907933168566930993149090328246812418295865534164271255101683391161566363984288734516005848508408319695508486496871339237444433699183644860425392426808599180257463624475605606964433200740853052732016673387904036196367349231411565968044634583062234857952104398696633031239004434112111140923790333311122423346245929383367943148313083110220227573075313776220745032701015168161150995307121479089922541594354515604702242971008145157928363090602711755652748932826417228669578665922440497872140798901162175581391026982181178696927087390535108568098661593349279868142244474465112471520865252926225018788247470397700189775361717754205128460983494068079540552011434187784123426040714238369990788341766189996368952155806097415151483158489226119942952401450778270899610888206188672836690948013837747692485541991564098067253861207910799179693252678382064750702138489497693811033104568311835028481805745729878612123125401798391832352695670869894728970901616842642309028632158383266867245141510233522461938333032217710269191110230626475570002537198365267822974511237285496171550405782942007591532177646420076711576377884131227317102157212777427939614024736671855688483679495665320183795585717845470590074937762194742224566051531941661026595744052313644785363047750334676226218726647077493500651089766259614364732512229101486870173821362063757437236562078032231228537094855954734732304855921786738808054993672563658765625587509388264614672902790761174261055285358732110408122161064341488723252727597514454323545251526834370868261127568356625791939237459894181032554877721754688235800773277436138559811626089760605949221365429748916436580310009053144628959743826330049560248323813021308561582708980119356134277270151141621661866163027505115467397552554446537105409077401670013207994282735889414123104566702447497959489486032529078744955386474239711408315127240856415456936896528647469239514619883309593038769157057934358390167092457610933907742561754119144759739289817176965686015576718710986527914603377997572946571033005341838177603604641050517474872017480654108923529020927394904778983871856872196039021277246052702446466685956501998573437857846552800616205856167202970860161326766866779671430243557577271093064502734377662553649454289844288097615280840088251292213605127338286288465979852705913862240851966654418941309089139796300613835635307025197071883230042587426127185300462633148097684848631177611277791847252262113559559403535485146179520070214427362519319881874395566112144510486733570328978918421253086494821811373317329478411270398986769692463060970402476879939466804603134731957337040675028039086556771622062423098945572965047635815198492364576245763769275429297171808707991743393075972575638488127140949166427920546559085815727885401005295386315896144478250180300104314332555395316846865249434369433073252532312394173290524485489914695903771134641629105105624669167197816060825487760353361213740266774844228392340705001720117580709053633557016535554820401404928645679505548747218103027651219241398288137033729788936238349625502244591557122456911544894554330335377856884721048427468805186886414883511809642234676077499994690299288004901332417479946922961848051343192559925442487998201073145903683518743031454832644005367224783965885447458612399996425557680522207557842254433851299492750768367580694337613158141417527154903307842121157561798400460487193043585156886320125395998721584818207381499870907856698099715754144808576494116336255597201912790709616928475135642163061121081206536122634046964946821354415367656974080087444105580435891180170649429869117249835732357742997406076718534525452777388510644016118891711052363483453043416738955212786215819247301744462539676000880584362224531052276567623189682294722231871101243919709037251516632251252500965396200325091189273946210544939827761639132340197383742386313641624268125574630322145315135240873550303990812134211943179636666990243364868342292785186880951312542743977429005273312819303661842624518683470016057087839285773894865873418510053237281435820547632568301704414812820921347734389349467201962979971778520842320388945798616862812616074325580879025483406889108336410096389043852936179768192940821216989477307537107493855991233572000695974493669790464975613393104211950352748970130309242385027241081030444426385718873402144961433154344391956685471376354165297610469228604018932455815424619414055598587374881356081818326797553964033445899069654985587479190507666567344917204246288866248496521372332682667239905597766109425163896906739560286860557474935164818284878612612270093652540148830563305325200912347354605870027641634202805396525504980129621464810121946824385071300436023555153832061886255654485209594389513056865823346704295579123602273314119125447658525995294021219320173471860996040863404191544080887745649909157500392171641286163181590560989126755562657714275698310421455169145558702066452223453133833154410975604522446131717045997596223260215613881052042955556846141446661299325684780948140840983318689635601054812315937447929566515431682555384770973283047066097034247557888473136006576664477410160185256326708508071471378759224346622565298765648790126716343519502096098413263344198124938071011699589144774550157192401809921253536576705104735717016986940810450699923435251441926948341146237223754638798439265317663678287291358153758491272025363987769506836177519263848093039102386922203720376624344284239347422288631852831004363148664630726057576992372640985652194741767164434277596926341262459622510274030422972561071238678209695987342620687609203270664685672801908201515413320400887319728505061434857325541832075072044612898062428581830504150203234243079222670570692673750237968127022504269554027878614354072700333303188726885152832652457629893818816523046545522982778831527302129004111282527679382054830383093338180632578007606501305992224841785476614972444242455261686743650524446023485306862998275078025047650800161551847599519450680718951159121443709109741842388924262524021201396332017468909911943201915340225659717539871484067434510439314205841288343233423734710573021796573157078563604735986430223650635423971690077913093741967648774537225743958079158480459326503057850876250673216569624823773409732621172451189199656734126332960883579115636305416952553523574118488923422812703284299978877165469888459347481346415314234420099953087598601035648956818026037524016803892505706913564856282613596544994821715916681340649486281953558669053198781594601453758485771603229279428702889579502871297786184399842643854277710249365523177134796963670757065401765691112610310386614855129098652366931980163552181641971600182771005370747129146351470864091731287643744971507517548719860977889112940322093990712914133226191585392670246393428026814434974646902158048910337089281447596625762587429292704997881807216389615102804319971605183721460496500069381977913416193076973181577574950794313600038985205195123349508858156805845315429072746278692981037301152820094629012819657518058893844651849686778087761448652936932805781975654483538658953489724264467246673415687402137148060555367295443051086256407299328142661308792132625116062194049278681548633041217942099375193977098109689022702263099279218380645938741888971278546169077570577655122902025863526986049321826902699151349510120066481564173952048054095881546320398983531576312794440375421089143679232310350238628072995965852024656880195760157112027806740362638164266816694638993226034987180592338156567224780193500374402279102410395061228197988437725888338149022761779490654804266367732373768174243950299881922183895467355377012723694275053543579126667557639034200199350293861383526103162763547860219884305823705546945000043055676950102424901953337131523496908214364179417157573576938916794397627357371270566010466245609633279261110408949845148291710856783882355261815137103058499051339296245096484328446420629282376395740559468407282735703438278314683043055784870720853335068996657585210513560380054391423655857142500022432168408990143717142041724008708992434794403418891947498013186626916313547596963004377668729204192742102438384270356288125736351894927071773793515479333808397144212592140116902925529828568123846537981754673697426619811986528575851114972632470920508917363920729573656495199092166550291538712640863366057560982899144829157383784101600895843729879102623384966114198225186597174301824066569410699270012840942756478385553822800027990948243361075008942724816944691971057556126368605808703985221368680766172455682159785478610879032224501097782720361017849832898219949459098447977510941725667395475359090475761314057434594564912208116132029709918084063148019143697025101906519935412787773451839552657371644667096574638836205034969622771167543219645896403641046979906143554463896102523626895590281052900000105502446972653863363103857527638213598120564239207707989965371236252508899670502064593815096309259112294691566188983223379178601955287498197050742010885192474528311338938789525270665072133669133702596886091034558661371374959941473640937093935486967514160992033097257087834174757492551223144824788457515029838974213077033295583330619579693156399255858561378610193756590677566464195571402797323683173801314787734856948675013418178006916529155504386305610724746004827004331039440501073740672525641060973956699651953186203413805698015727842657229492171426469235123687513976339357068991758903892145915327797456271277613077300846154400457241107475175621783875387243070501784473739090930091136209005610702771542109462428539009332367289350932908766523654209714243629279314637246211376758976150960349384135052279097634771630160076241163297093748591209176051304473687643948315537328368723541587077073245532267581479695989683161844444217106038002781923731655310426354507973354462588063027552892229895749944219507147518612414526809853059837022325531427994404695888134885441390233969097096995300125555202739597113330021074464710879917156286680118643315690066597930618083615399342259046245660283236379129395768953562479769786108811385098413409215861132527881584764452251062798858868610649094183251242746285769548839396357288362761157302597632996917856100774086549948415723024046611769205153502911274452320063353275015222080196293261011146861178305439874549478482053116816346578102988426798191178973629660764333420793064528639917821352763643904781634661969164861424168501533967874486138287135399433113569319325314555824899014310153437192602975503375862324473506214949280007216175911509490067568694986827410765597728776762856170497551898734597658171782920777443039316057367516305101538515973860422726452875076921762113342120196763962199228368266227586482029497173462528488773293202069517784672999349997357277468966181186828133327947205763500251999025777580141122934217728356019521733781247661790434460230188075428830759948353957665834994646667865862157213011288364602178053514467536497017979450850570252117735375575609540398719228235845719443536797109658434257002863152132915496926321923661966359415505690275282729812502561437205968779471083233696632310512070176567381991239056305038241832538714571961191747182321764726435567044058397751146532591074805301664057418472172933661214273005004511355851748940135763867937794228623377185984501777871034975806611392007114840791278594620148345602406990383028207743308435369157035897787374264859323094508812492678140299865739645688600827746526337761434974945814669919484615269846281253770476784912291815813584025682231764879628035819390105996900510644929551997439028002417974515103048470956602631153645838287782589521459454229007154714785461596341144863978219313850945325797784011049715641587925845212461335419652251881593002153220297159826845730263430261372433630730876823337335708903219589822918310008987257966983478634800938912291742144540067792620766050983209661323129648919019705571937615237450797925982462797115247799254932001808427444316279690364221113267918931177414594150741020866135443514450429718252784295710524532462419517945500042081901005241507172352262868453495276535087540944468015090048117284302606160189192483002595893297189184033358656464691326642171740024384028714539749610012580801919744919589313252844246787251132738789478888616301572188036201796847786052304338541345427100371715219383765961746698594344133134181657923596796267801865935713995419762521103278106006597091724061247016620140817976514907195874176124770524531769818309854127995318772026831975125808744377890713109560286117162162115763243048250679363327110069984115639931679678313970171027488217695479996558532360483826279139071280435871168835822272670436673185251228823323263644547936722543479755906008595513045410377425183714458341308236111852756558389374779134507034069293272787501218893446557654534197485010864853992213138780499158271199305687666486979786389667103800019546963473880908742689546945234514960549093543996277546822941424493197526415167812406110676060805970330756112290309200739730014043850476007018686836787291883007234138791442402604245352853581768417933225452345176709661012464894725975877677533278073464567749259131193870656230347471297023415635080653376473716764384520157084197385390833622621464777150345407982881276776342934348906945752340351989896938330575047851953246950181064455294742682159038482034169778741706805911255036546458672321459266430067896222096771053360179177594918167291907896551420275737508065165099540360336708402107893291347006868741241093295654877086001530451057734019493375199421171249958056376478185833588906399968992239914927374557174725373160947327200060422773071555977734247765918023048128629877913144369867006660974300965107529153765578170697755332987147670213643681673146300880392978159781083753483309528429493281125518456019983916078105064863379847966102659157297782398788504718407289658755635902377858743818029647185829390753906024628749934590878662379930202410334935271518717932719532941733902702896541010677431276774992931035822084093935864077138073578300156062556604860036058462494727269204870171262961810046618162334894372384381736662664721652771658962108308232490502145103504556615732435728057297127710366993350886485265662517185626182938778646201200229533273871563306924603555750637655050551107619118941898427697849507643750425935243996273023018188619985842852136018280394838698090728851056726112663339502983852129159729691535317358120822145692410680376108801568596109358944748016030111334457178562389650513281215625539884026277698981898606771863885865733270120180666261856069959448193984294588305827058117410479847504217634370971519899476920094802262220031040219019420699923580587256265814563378459811718178464598922343775488273864541873981550595809488087236475233280567933521043307294052030585753739560937090377144187132431231049950673293339919102231622144295131901652561755273928398852033108170945131597992171257014503430845307698648466882185065666260005707264388206825963768594575405570271914081186717657515078135145863614247997325984174654566521538297931917830629316062465284638714411501395849395186478976081457257316314084459526912244799312842327329296480884353794722889403103624562130794999494729503820648217457079101493365143409784059849495895278439761881864278798434958317353214353518182904529846333369008908373691613018860319103699294588742816330608055258312939629940110928489345775524792393958298018807771154425005634604307241098996284542186728322492669649979079885159285059950612043539477329666397668860161194398286538146031701547434137598668873906546153586019385554781666642005412655866462085760684700557111806744964740899282060395930064397856814735655023999264778407225606579259049774235028652985059522663213208296595544903689721803712244518776617280051714473596963178718165495023914455167206381365627482483026343353391411760501147804229605365638039447914962190046531628400305568555746361843239773708457983713122686820646169535592252023660989688288705653783365527342744355067611453581512912106972295448028403050800004226036321700676338124037105311915161934632782444026924610142905121037430510386268967585436581634897745701293371726544618594040910903321171716061283663552092086345107568711871302340953749419623384984582457629158970483304476250566113064125650441806614020300308790813347359486089672124412029312201681308049156745288181677108534818001198969967968005097725835603883489253333244396300930302521981803204854344944039447112658650729927132608376899853181065484959658734368633291698584231323281706234484556612640758325879865273259681607658408357088619333602602148847363262579967194849433796352208032874736488601394983542326232285468085804824054374887492298249962218295519676922733213906565269400653771318507011430939426716917724597321491082020822761956071953932195690082276650137285388525637945057462067325345696793555218213574428701566130728209739076752101239147692199686800668804370433196885868103772979393450320949099019726575832485094826347320284304205298013072956887592370187629721912204615077428114312889549954626786228716497305902411863656086387055561335647346023996817887792229672880306352579552757279737952611242387175836623886859752060466835110163314090293572775392431373226333421996229722587284258831776557392771170386189322341031844679623194229767334232774877916535121408445539996606148858141543848948515903441130446949665886660059033202215917089503065079518292003963856044411483714286383362653612673285071576840992965120161791468411019754678064936998113391879658663738610823776804596283119585957188455017175862635089781678696551056985266553110907955457354075259741675215213338400410282655804811346764032637034429612682648786227950196498912632397263283820638784057495250568075654009740970006993155882946584366279554605632280084176713397330276322914354045117743703642266682708766183203619924232267882084698925612513960120353895152815558249369084752778520182501486355132467089576617333253401539246915060030650482405755333271029385025879602650683872201739326259471165515151611349865453728604998537894472366031479723892393521084387442848132107563479312546859802149048869216436217953671129882934118220705563300479235068606633474251476600981554287314325392598807291246045821636876892143117743789991133888428320353679071106160215751132367324935425995439336421890728262143907831467796775413134182128742004447812819351369897390488028103139605209066499403873392250466756877453916345171471779947512430931708084511112812991129395236921559970949301698310477000327563423354643353431826915984623085189084297538222998019406149827583862732857832927030733804342013865397498507242643057356622658952984711387889796448927190101271260934479675896501823169199766883476503634577967833574467738801389004577421115817361235967417888934302108928029745112094547515729973683581815581289556758267434613216187041701720242336543269617921333172259600438218174986295328887614995425700380024677172150532663833535919377109796594327551173795634982346793339395757111118454454530739633241097958373453944065652836230320581845085816943279476726302968363148059265965243967801447161966334428926474289158277231738485544996645986657153421229608095096024210767833835879027024028392395113922804823212968655026152396016395295025852368972191813167366763799772842255559241202876241460921185609063522243468589828446586389988575675838379804829748424792541074491019104810393102509540271868837069539342049563821646640784557717980415631390619493974118275820319893727354727588983827459503417938891982450537399348349838832968326682890319548493290437629674370523798631627447685292564777904910279370699057643393827903264004938230543756754827077124404962494159264089463658564847503663136420196069814332184218606027884227383385015755269333740293668893447239882690064674226047205382495585832244095466612712673642730963600094210345081942062787605272478965878338616201663667681013257599277341106899830714432989128221948387138306196467697012957143218636617573400471989683254140802105965968573515608843341499704740880980606284329557181104277773196565640533847863071135269441236158864014089937804441806599102047428333159422949239655276431137438309728420440953580229458183743427463778968105052929513218078781560981620974364468569994175983485189529039326395026320084181993562233463197492966280382723800494555035132103810021338713496812431021232589619490402768420420902440211184343999126958572412265098181851015310148405147124057527609033854161019446503826032364618746187360334096748856851227597873138580977455997008751409061993504018112880593015597904891876681276668079234411166446446460293612485320057129435311709988922754781028368298762873770049788266238675774295259687999568452457911782168880503135661347649904195793412244976362001685662798477006773097681893776167544580239211197769707894337364931247361189188614480344021328341144232810681957904754534133910078442512960459810818692541009201209553924484573732594743812288360578854827719036191874171103849533687845796715911987078465750287388058765696071452568378381891653278631554255882076695181756420490362792291052545233397585289745367266437308264158584991930465360570856394786793896289103550748119140448246445563090579240728873425607826835864821017378414841369184823986814494061306576469600880464393979483947166194191349096976419286303963431668762651774899268547657749976881583370395539203559419654354197617672224148641691676064535982473091054084623820094945322631490311703431068765399788948528821327864665722739237091219376128238239087119354364321468680712270785382831204986577826726360800044865742924506085464841903694779198554299354196285066093728496827739200888935800648514553921647765577141623642666671718117016869453275167112982325355488857501355516839127149333057936058553005405113119179143458185483715346321914363955639909320265339669425310065363722121800815392755687981780637512777492409779498451203721299783165035272520276948166785924786251109790400575704705701545727054126010555782182507084305677191518597119464496117056290558455811289050051028918261055759742277217149122590545460334925091180864815498798999677227038314928254492006956691510864896459543387640652258872836168421535989452272313742415888274433278145341227930467792032158826490332226955039106868634038707779051781726288103655187458278659155458449958042922169353338271615834363719426999567874634471924684404755039606503318099151103108211240127105674282455440674960606690147174146461049494235664463594468346428448995305903697654729129366485364445755286564863344402646906887233671918954293819435270305288716926444866625431212438071549801373667648528527158126482977943312480050359644616655349340864252967123606687506843188392451165362197472305379651237589656143723052082141205256374897589256687371400944460010116438757403769803788822106830178240723318800554774061254797144225389730236331105981997433018304982516805635311782394506213464271864372223158933947833971871152559016819826644200168004108479662734155839848157931309543029929039832634439303549788970781695672886223828770677713819524771701483199559641549532737951263282986147863425322648162436290859075598229658536868296420971251819490697451106055805523220693667811311868179620050770485820088177621568132085760360821436317043858608244903378864022407501408598467777250621422755350286531507258452216900643459185194079089489542329178929854235343562952116436428490558796799799894884013662932644346570331592394439825522145740865190299656819281787098740385405469692983442350245632505387875070416015786676354986042850202221211427283127849732279079829924640286953896636466445793636303414788353481582197149885273446502594261622647011837871185272567976990212216692595656226200514605334451434984471685452792215453415221827697034975313462535148587635724794193718160403856158471006750868139609760903716947245107466699567694059805699515433926929625896780346205045018392228874753984665257069800095211398742316941170538617744851236696257962995399679043141959456526094184981400672813257893880029161952306722467482353871398100936241373970943524970128157650185879846859487079380488520868247731724885509033095735584628449120466449124568805587722039533374337854959214537556940996629751999268449606162190763419068879185480856386452031575388673776070286928978472723167181303445908386321165930052205739009464748389592575324513547020270309912051587759282797158540195706372011449040036004148542827067553727134331302177319051501385696869837250123242221645565467352976092531682267114547310854418177679373952830627939941379255593134854613826525063983736683658551813278918323527889207115925508484519754751271981495384752977027364403956417218065015774120411577654625992568571362440476834212854976653606469666123880120035404503623987599775802780551516591905306595540652178342252618590742652303409256001658204971540390853416029003869767230586335182284666166746556274146485003690123492033338387470882165400380819968942356146175167006067147324544716699527727797933207728420431128425705702457419347766908011480427614427277326497247780581684808374052372937335550835094181554678026318568043161902627149760908604792918238439454526746836578649625288691012045369379760109457445716569636454571362199420466593439350087612245306429798859846237295020880679122309205682922196497870052165717253422604320853124212364738260410224699414492100909424405487899247235223144283725412003520458576024005505032997369201164581592770067175359911691829079575027236462063295648284312211174775937480476789055554703504647048034511454135613330566568912514994510780790939464006512541816815624672642999524659134148519718788326709557621345924140824271333887728893505995696171194383250399106636856375084244728330360683656370844723343807503346901690593113490664989371182754294858228910418240430377483476841586644279981748459065502998522697439645897349784747871277083353292289066205120821274784112868748365669725199789301113882404613466784288955519732195421039939611988083807497486660204734418650757252834084704280069598026244450974810071407788861737811506011994704178231756411578999228383018118277951689762301322459563874229381073531689573224235601941640433679448134368229530745088149891609294784703621171838496059919201003405248400976105861017756125538790707884778161696198872879162496537196451415878401056779232937350816636517767819769060556139203474683040143165932532807429298266190794755728235474911929894825706448712918400964495477311501245594562750158997474624207924795012304876913056160962182283659932027316226914913126416040748565930341666802022042416294482146055001352068519330244613435703333388842255902012945705622632195696555020049851166864165147985041062236890942370812426819667185039387233930626655225152034273045776914399479562269281361498473983465505928516470425795043389101899454997499935439043219447889624527282301464360742547420106496135952133470910390938061943809924502270937255407667599075215885312349174872249381073210562081193614239557788007864012261528480544042054709608652208949989891938845503658278062447526273179941953004539623842652017665500716850603162729905158064227552988003988059270761739219630270298428228737581941793606696297392499126931560319073546153160891860170520027297644492429179423541182471023089799980989621926998750938577611363127965152809740902556947057198461784904243026511371279300839283990997715957510945150604185093451465568063536872981639525399593916537939112203030812231209687012800607695399424204537314225703438667499026740790059287375973469049899650307227722849777945783480983356842353584168400579691314313608524949748559070086983188397645550300242646866660409601835558325773276501265068248149775245137314793743052084995236963262526300672369776870388730318699095892426305279336381657996563216123776762712823746645919545298149931230524743844212605642704257489349379140416590025450768993927194771585529413208299025323727041913719584298265479708455209796297082871110158746432837112232509773510807180631469256905933597328696984209079600826235281249539159817753334803204549352537831486839794660461570534665424478584578144788428544617536713810696843492146638641886228697068597007887639295190274012329904553360531510269586631594620357544834005492363318094244396692127001956813269218840450757236701832141290727536897570593244076786759047070670506998651010705476129930266384174595670532117603901550877631384311772401474083918948249617664752717556779024800703008034664858119545864343387720218215096769951827853127645121643427174236396808287962866551624769721184229629246229820161245698982777147889226950482626275772499444927730385907692438857740164809885695003645821298716571511844293354330668353879046694620888209159956830454083589432870141850237290406877351189795360608618957431790271540264897834167979797751310185548555632199652419861589006909292723935661740557817919208723950932881956330287484091747654553109276622897343291351705227619917832913253947405359148435981834323357093441844506384318491337484166605407131640697645048222540029846964786077845582937884668557376225166437821645357623785352362922583867899021295843034697280764690441999294438818176886312045481475417269997951488589960540307286082265004400899908101288188513295579904690319103675275886819843824106121228489232480026087871588234088943164533847098551815345874398362105128003695245512098301865773151932749797570533719987736236968214466132560789324818481396347451633584027978831603065808926046210330156123764887313528802662381639154723105451243769494613358103481853073755071243742105243300670846971961032448748084339086594857981422158481455448471089597803586762203218103586574445378031112201657224722999561510949171672804296693740365997297638022348668742580332709372022390183759675199130041660693035590026841171035683636711097579807660368218781690980781670294091629681090566127480584188114383638447846504461475882711731947570049777994588776726202668458096953861564395398938152129686853213412379497290582383941252114653034515069464636836670322645212458503156326309571422589705185841897681937146561580985037354723577548704591882197771484364408963849684723940902415114900056285956938475934454012528942291078009830760681068156296290816748803603439584160447960714561165087910313625858107751174054219651300253789526667260425264861594850532962624979494564663367514455131132637379758004515431065759419051285095912995912995905387357904519118701203946232537766983652235386369932523385425858680041148536389193601378051181692892817979303434673714991598800340356224836933801667002378281030642132912296048503249655180647893059121593796810253927947491882334428597452578659079950438114964087964674581569659878785784998582305220096214867295735484816189408689456047119683818581050645208263040525177422134466770544572662131842800508093980284726987679655601543708846654430761429126052504482204328716412298857615653626446274366467024520475897636256866069020643496094379340801467298314052647978316704118942542333684605845747794108429492143764370718474083905633055219199122725818489208712360337307734802737556539838640745420414806408933333277067524319544936453546179022498831589749730705123580468083596740212003701206896564879523369653514679842272593501143273172968416665350398751757216888610355833644883160289271437209893833974175003653536978223439372590185393715964457141530905911059431478000292566090141478113812658985853411026543155414313318483718019665314858343805939912496676369890737809750664872683656570068791295958292624027658139590079826202825845833649329073789645869906824114881805322816972241129087757104227842825178259814628635229510415956192063141470031833911059369819375592433673251356698362976617903420169272192747932043201604616343931691844957352177237579377017955353985332159054246089709240801643666820805016754639064577561876104800502239319339192502417592660064042935292666288244684099449253673000715102407674676172928224152033581339750462435463222556356683649978923296529763399714513648898419347841094199000542682311268178625024610203313804980656614324415364201378483504039739900524601893230460154831437103687481187212987357461848390811439164067807965352673790589666834071713417380106698295947149141266822805652106851704737644171654911685741216904706739918469799108834856135976986951056030764895660994024389113703059449035313196420777165975670081131288226481928143500093827462778251084244806947068013650562465710831505532571866072516929487381824802928517707431301826861485759583249234536849801452766292461458770924563020550119459370302279107572942891401246686739116338268336840931209236018221284377658672080282465340026249915658428658199028406554743899197841182749991145083540996402490583725806578728605550765563111075182894007430413593890330030983601052950532038822153779327731315594346935585499358019003717775278613220446117476993472510318931946122742763829570089331840212226090871646176481362326953013620454218961513601115842407715883646043518802914185723813070085991729584791804651595349061696971922771765733513392989938557319690657780057265353680727230376510208328876226302827213311929435491206724156259833597146869415886049523420980386300838433610906665113616845171664813356590743931716741379801047929576737454449496052116523078674450654642720488925073751003099590617632437286061974662936269332753101152226565394089124697121048038523971914909920920229228889676201816378975303782439738774034894514034814357920570846444666799177760294108022938931125081848197328794143836172824906597579418611486645425214709767910740185082205926269797109030218980448064142214125497073609136836548199920680104801253302345981591883287569895650034455176164268213654513913249599465182068878837363362934366963852816186609139740998166453121888595478043712585653677558444884142378199738532577417252856690267771755263705632037245819500717238166531882454309822135384315498288955725862190561130884106295755695542533503168643581029749582479444867723849647660965260005990914257194237735583392906764813516631802138034800431928907266191529032463649834028473931220763438983568156911437616483846007301655121552656962502407717370179188612496949585525331430599941222404790047194420582200135908771066798223914783323551188239305986575982136834192509712036823862176245643551838336136079252363716469374184793661565251037717307864374380276392500748147550790932438443092282434241897363090439157103774442543435665457044646674242228752247861123653618586782841653174268753565949173925041053585577498177238501978429358265568363822360371749295031926377387102566828837812751957762465235309994233983956047435093108038788041799515417167193248305641208182172412808737727031625492617392822583715038545056840991818112084321738420796708239063116107978083900063115127500595079998380980880877009249126422341906835780094853262224376003247801923202624421609479390300267085775655141454456421064197273855340212378886778585503931809115013545836527386843181168406770796774733690853972578582591771087451209921717069999786769334085977192244303333951983113782285616962843379190014958062191167453645574406832826811567519402889146641813335051045464217190837883597472576291991807759197318960238493367671354033961557145519304089148207410691572240096615442579070439908775562881191901509642222040762584326842511925098994130147482108373587222091128105456457256429827551709476336225532882117745804486514592003455410219099953680252553307652141259972568471519061392629795309220325493043743223267950166931802454091604222547072755335640609422277309394643000052241749443775950361374134443741901627890465094877242057032317813100517175187665149911825978293021688765805483420104323614023395161272629596992473496713495937690667949242384119404188350657752211761942103466655392680824332940156953913829787888641313459920854154673938578550212527317552260023921467815833240491376941210886149172103510119756958751437589034277470798266756203266560216366772587686909838186061469154413715487618033280311461635500805489418871191914321153658909672712411082460819273068188541791216774544505778398855474774574374963591221537182773994659163064515295459611297936066382591904570154444017807494927431484620457649097087484647655731403676338608691991357722763228649277598033703183561363120567624976634161426862858074194865008982670797986364569353440501530330102457318697390412953042598839681188087928814824857683866560436869147613899610685015311877651477515720323051184208718255591256547403760264955437275804489700188580339249452379059790327492170201557520123965094440464786605308168016467100582567941672974137598791061615698366341312058617541296004090265990808302427941110728217772087926090301118788866531744949868310072104167496064252540897590135937516598035389320434460421396578322770734376507573833434803242229296887360124935049152708543697919149671532583632686155344057146937106700158297485542148838674936653748893570334498865588337912415287677409482594728264479371164680173744111506578451991047482669240963992278495642877939812189407410160261652200979316055712797691436315793264983804031936264676705070006826730736716632963886610491987257451761107765333908904550720326682340618874696568753367935783624709487162400450536443870152529914823426466044322883381835766048054214140508530421451076659695363210439196331932673727748596082615669550463674110224556516833993533436236489761795279012474313958512387866795898330517507361102294665524882305134874883902357980781730407411940131977283788679512043128252521743311955182552561152796545749890921661723517485264305855053365282931716739604823841229385817523574305807846658444208075859912238605377823594476475115738504508674698524867689075946586636200103267485243502774949834813160038968097688780130976288480951904527829099551067770854603653603465113793770630832492016151404553137660830846694282319662732374924712230794388550795954296941741309286325022381836587804481626285212749233184952909116856846639696088033505622291259994131322639579400113496816147699354730134542182339085523902634181630194645816465594346617616200181690251695002936064581336760979465783256956113772988131430621777377878187577976196141125197889301465138099475359566035284310201688624407898168095894089901199948136754520245415845240026777408456585973374898564641352184272228583990597337274648874546004567101469478540165158312815074125135766751180039815975243504641075602736794968366322447280405211865518911986757973152986648783677102997173762487456731915759062529995874976209341391200753987962680939268073893934748481097897711416819092703567875715327996574590181468874695357895398511018415959274745540878364440716822656923436522529062864069498529779107787526005953240352355949430412432785771803026073045978198333966611732984555780446563192550293196684301713844056712201829989256073382585708360967190662448881390149200872695306165694707478022082278039263344633076406469120922965883109768687249571083667145755648323392854206675529852226659180922626749948481352698933098147357886519252416456592897393210718644156204832212356807374484652183201857672036473573100838926002785249496085763797272371558333693515124066166100589529581800496396882870883426093882143576630931124666151698925003184611003365775453883768944353414355307491381037844879793148030094618765193264617782386428428839174956644726666210981719539350919564511112081014132555682642432547753137963850618697228500261802806003473323836408914664832313263705283663852725744657652733285070248712028388140369785566155253862945973717328364189857927612578929764292625342819323670625626956226321802319898542842126887114752554832878578690683276782716927047719896518966554713279425786518536082171136626942513292970209376008542483913750476275187044356139755683258588057708744979175161614423707739946585513879265571184060047669685140989160763769614975366049308349427127744922311037295342105739871397784030925512172862580937197267088255035053003439596150153196173016054527812644043147722540366299533317950159527316618376034478258571083488966871396416856450788692379625792237622321553293508811164773959797244654380056320858426637042435916424457863184181875197209955565107648672509803283073037040094248875600053213012180053220376392265198451290961766264775531766050808005698468714283656528182417990234255256383846217323155112847450966925191001081268488480230625266712312278582832070505536062458924647487461394899018073971576525985888771996522923245487787656997569296795972510632509835846524081049566599575315372958104396485197441199685806994433499925199685958306933842831559122969194373599658996521584302486619672225536119838256956591795287438012565001819331314260731633986662556394498332925834594246933576828001790555392356412212468786894101577161434280099790310535674619623446225824612770858630440644059352295915307080562540930549994693812029365264447417130482115672280278727231094502092762480810819285670239308759107759991723412674748288995068594046587535887456694916221636549289673798428957603212397566265523833156384442713584198351856171610849952221181901947792953166903483126128189921555924423544927144563535348062064885131136537707771962777612385226115164027031400225843330816809188087402723691959789284724407371679413670021794491561500610280897106850544665508054472975753395268245921645215005766996344153574187154446051674495155688837426844168566362274913438913895729982104952722920862273799548135986221082379320465552817103260209484775482660437492941024653282526288945745131368952737387713686975328776750532760366222357440097249785224899716842208663305208697598189174618527985621021810128955281734286637288197336214623169251546774456116616089675558882334707534643586778784535534208777012744858505573279468049662904206203857026659154978337002208915554044480229952753670929316200378181892664169833221034620045190127332772488934465556172850494354180438788625220408743695242919331325084675713502972271046966264429823856769822117369365961169743739816926647630698913362247619434653909245033053430051555558806841179349791418973870815691094682695953351512329946857028034630266590133526545048568907027600327051542142595172662310486563688169082632531088126301915154786464632072978469003931773981353732611011098924783247699289493552493746360658519318957638731734057388691214607210889808250058064858981228773636475271501865816118741060788262466315926845033732149840962724570799877254112257400968269782534964705238589587320129440560221396882871599489893574369987860989362493565009979966845745953644059525861732832881347890680546267123923877310509041999483734683050472755806770759701338478109014755870826518207480975858830567493783581902925360121997239933284886257290639811120305450354087293725877312862704378749089447937815441082924678416498844364233014778711006346546934830836389240820422212193011111834958079539088738782006769284114915763151019901177516453735900463791536919636019538664528379034075253636397006965593307214847071819719882813125399649816861565828711465297948356409768944125204989792227198742655768338238200552388471582513969368349838362748867713465211451962088311631463969903444302700352231027078851039942278691262418720577901377148704098874127045105233664595555473463510604082207375510407721126379207682191674388393430274701336835145187868369659343514149238281425730556097594315283884053956896402186617734643847222489802314389942095120776247111258748971421297504085055118520765214480599947165219366469654092674065802458287824735429730934538735004359713178055778179098762496209384484465333090526748208530527335269168339232053915285305388919687819422226490887490265061266177577841213013484477533432022323939573159529544878582018034298749494917264400211302099674536277235849596161181215837549576208579161231903056480898839844535712432617574198545251157571595320498725673077483905627779228069068331070061614419831696836990453868472750322642333160724927689354882012071798618689283757862976879734046368579850879776707087786122708959564810113869176768953677947181949032022493387112342019743494185678266433241817504178871969655459223027303824020213151753220770690599603151322763076001682712824841836338020361126388907126197157826766281816262410614126478975341648180846445999930562325230304867630260606413760700991919886183435793352106557432057176544324937816118332466964101145954818545626482717117703442603941771796451413129048697998514683705697996875342225726321760946929672919473692672268713670325847953459701155345157561431060508876280874574547474578030938630089684781131641572444697682245798864272774736635999132544600748932931853752000790645477478721081606352082604991105525863944806014773635015765426517085010303786768526413266337249785122939673464069728914611520850998075424787262492984682662812830223083098658715190146067761985567570332497719597530897108366368431431171088575303450812617339976292725903559685747841995277511665416207942680581945950856877356407970875657859185330475168225880631682499867258338206679108865751158466947130824623187973531429663305021411235881259970148779167408308043328588451133357248505502336005679975200040500108431919412410631589888566078866296542252593230188962104500792138861915386187042992864336060127191311939021229772952463243616367279221780152520867661805176394351267425404581607007106595513202249871774129725424459553899013122190517871703035580771619660235981519947222124731598230601939132031753822911203033956249817416162258409662215343199874736456230593278990395507010854060713283228093936797322798327808384354789538411871439476273761256996536457851759327427857831722394819294719414357332717789442935501752009285790932478150941174863734607026652078160962870825583396442794395381417231195672853945630330508504991218207401564694072666925634885750404512249956200829556929437365091020881817587941157681902941901439061223576511822946293560426043715209818298890424641010898979156964814503711878981223758244344240932112124154859509380758827995035583819634244742964341613460475640323146012912654909582764552731713067361998730281210758583904259630419780743578242546315353704488621127905474621969037852852284257701249232270565315776312599470863194963105253907012438773381639682441198208875233394121095141854083407147326760323265978202613960271189307991640973145975689256418333826937626359389128688369793437396631708500311492910541797839169752206308142664326026996140401450037318334768020971308528230737651307361345143787290392434389289960933134566985732716173518097102393711213220097482825417947403863574600564785571192653309591709098981835359830312120528731749763414098531987974429545739290040636158578900412963870853124007254836022207704199072091185918372975436979020935599321964999137675924691689814359598891586896239372985658484270131665768714256978840726389318278538299367334758593679280144054865145095990962725880218594861799835423789281791456696520283568086108437973711498482921238939739520251094745414598336422331926770036591920315929576051451712708683325506795616363923437794725597083110331805689612244500839808588751481107589877931841621084433705537157153440106618585862332778363559591167982786880665536175243120318625198613412226048464912128341847016639506178134889026555682139980185723090616371449456620410218748969870737397445991935729037228275090188496720568790069248550056788826671892223264496095486166886944556863681506197479719793802164635586371640846419803029677740117391365888195229248514650157468168814290847754853471373516828860850727428991602783245741551623893419544058172422709893525499144677014636849541607456355332540388726970053552456766556548089780306163816073961720828636591426302301694299364381073882711770598827706574551207896317799386662479244541061207638498059634657240607660711749111861215599320186913513598719835309354164085737047462032460669719550614828564006121224351451302585666224608096529055689713900289988019022917689646241573278848599817709940547597252076795104081216044445746610498900240630048633046956407485315655069546595927155187559513320565651052778904725662811397010360203654615242075868810127724174926611815301962872104548901329215862418456164013350673998583392858848570618242363314295126896366339976618118480980765069651792795320854370315578929652593646973300380712583267093554014263811304551807317757260283243046464907607656096575076996096170238854568704748237618257253203570403430969789073243763076235351676275392555377769951521956217099159777396483563807543931437906215111803426285443528308511842078052031567114999873777608649080717725581725473788527000055532311855365234959319646942353240733018426205784444522112270305213408786229132519944123198301889536182959537752222406096029759505158997471612027943348163221600269480129112983950908760534584802999619847478852892362425654276154953122396128025642841991008071683662828432669824624924459222286821272126094823318088289265822161029330199018493924836755836281123812530813126483516298232509979140504057708162320570496990848962753663508279027403753189667666541440886825355452929765956400448634106065973378803807434117889393281751661538788948462700838789719812504692609113257694742705215964374592533661286092473947273342411316788037596235719575305436545646765249164019921813473773005339262245744239609058512134532945776843391217734221279539762182470018535054632620960518782355442596080732133482109849638581962929296364206646432128977706295149160300700264875595487727885753967699762429182967102123386139259533898762736733720707813109738794441974706794839241127403100065263115347392202106865397059471761978550358751982056470493436243836030290894319782583147758348228458931263025213627292946597682599494599639578894871520185571246773295057807278771957884807520570931270096457956145496807423121305868502998211628881584654150199947890002792842303159927739790771326122143866177633080945421564597911581298631288260710564505955633535228261752949623048256446243405192540388972220007122943568039577204023234969396329574271341821861786057954621502565484574007094630977111492904262571662766914543159232088747812001063905081013189829819680301853837651491812161489329381690339454863188117763716692096939786723637234617406976204192924316310427671523670144727339547446711132716183246236469109201091437535657876867937395059086443951412654448778592000573988052834072805571798272696140309327508560830471269481072404262673316630141375826139086249634866333355075888300979112702420576289197262591549886802346488855129438639819609226328210256323211001599610918971063089074350163514370493130499051976122737780332960662510483333552844403997961219916215098855359363262873248062740932611046260715457544130238272570362314089901913240112744603141224882039559009497449234865791314943831084665864037389568616867845076935128894765760273120592383093537137871280580211520077141628332383920068481597469395756012495818416633865991772393719254397883751098885528145811078122018250176450974337070229789480237112328710858691515057734529580767229795100870024527239705958331975241695069898775770857468761387220259311893423403986208985392065847292392147103690941869290041134170676894814124746460716351810538036422271930286338996580952923414463000629228802350117938853200905682125659983323899635145139449962226834745210987976580686924233035185769466099931117479814236521609056482070168058035632504930266750104042932872218800758710819295545799648361148871017389037298842327979228638919976834101864950709584449998333365590232294469446664039937200758023426595829884512937668744666624025442411835221027253786828788731272601687250540199557398877867275047685612994318580871329514321816340922793924299922708942047237043077120351054457201708995345863079185736167092327558341510584609188847434160692722227539023544459379835974882728546309092158291756364089582684045886645744828969804953251923644197387286649824716874978303628031598396074921700947418887732618301445749156567829979582389628818995570868835212332502333255935965684031147619700290070514101041659965826090419084715436759690764714710248032346583445618720383506856028349942313122281339984270924143074996837865841143620910511512558755245704712056934291409344531806960365988115162637739716208219777432317594053863794996640933089135371511824736216106370903233250839439308949268286069044294508745661644580729685807284490236914973453173125180364681889073444129819476530063773851418126100260998689433134634615703670863841827831294271379644768672515941892104814555271503309171982855532909669027717727885571536120189302469256864911531633148501347297535807435998478960424894843150597477221970068500324830127009920258096448678383768494134514907022568862260007386929684808143698219756848665276929012941507247980189572326754939207763149162907447092981148764641942624492805804370414985548909741296160598729167247918359013571918496496133378408199847619527727596353846345673081609841482919589107053711583244967480716181473940241330167468063392063723370125913658766543357881477073294345144002263915677901044775663607892968612121352668867165997570614791927015076693148837392533966120566049655442840761930900489484728667300692835524327564587934006360012261763659844425786310453159040756772635202899983203889744897419161277185225173289369477800295543142010896640786650759173724617931198744141332395580937232379341324599973517749151770480167948189279701106087694860738267329832607770054344943640838213581867752054714886147126331554506240113190920216056721240333250737405488647435264440730871842191825831842213148078232108659809806903156840569498381614127641091611277994397126880702917146675957685703612366000573732834521806358948293899490495642166324847273911159321379862505906645539600504287207335425383697823602650835094820899616726924467092094350121775376481343711407443566017445397229365287581424475348912056152648638019361994101464387581068192442678932425034012893812520283140793025003333888947379764257143531830452849055486741340747850874534454444706756598544709249280263588888181526906550920833204138504421106794759016923489446829189218497584844993006394507757269207590324735006067786625351705351876634186956548117987509532017227109897725523681901608653542600341983737697473271027297773106393530041567218225721905177274221710959357193962277573820397329505033130477659103286749560407584129863226376305734180223651713829521896261541957314509352483422888519970979532334575167547831292930312085304071394648115811766854359198752435427248430681243540472039689883193891496927039842315168837960337706585471441755082375810020764455205024014196410771886703642122813869476872944055121258387675930929748999272953904492982383896009559600229510387114616732218824993494545422114614080249807764408696602161127634537973587352772705238306265551183244642144561855279276149157827041601804211420714540093010391887944140225900376039363338672758286388380793018203297846668516471268160795122394720466899925608447614688582580441864274282189095819844287028640304629219812534229989121648991740224262956006481429501181943885242015843960586383959900699049316108697959123056402262808174766445700702519867767085631570362232571422107288319665129984803684953871698745795153741151722983474882730639302678435500097566673880235924990007628371052734002417429561124216390088355484285619902307510250977769060151182860815577522529300590752914678692476001693045003690887953978224252148448994262184872538533720766353281698331806560133796420042498072734668747866148632697579070712317627309748411438728972785906453336900880067309235610526535882439604001988838272810805336188829657272248282753909457528293886977672771946399505333089382811754419194437846284517116907909452796348650181586512328726649045506899994682918491637867727081117969389744950012946509745820180768631879672982451969536736415271317677389582982264671535050642097012497778154911675082446609751080388441719370938459839659941336449961178452496758580502145745895157563967891288505565176064767876679772471195164101245472595831639492527446725742562931468190920910608586435059385093407655270971556178972626669142131404493592951803030563093314055733022794331916876978101786372570290184339566124360376920891187615731300007996245760312615794256653972101887031485931701598327422989836202073712558999852991698282876089276780035439691849028017569830273040723197247225990410550789251175246520076637502555621245881057474575230271421783717978959171337972593647227056824602480202696389330027301717472608505553516663957895231021140045827234297444364214160227939215911580198675698256199620262511742950893798391699248498206621268285343223135506237354201224538490743508915014587639019112984501169361110194944743667525664220230169003013356140869463537185559060071529299289024017586470075206204727965748138606147686113846268060290227334209942006028293470017522938755680621169007363049430631107665753601107525261120350320056367010126880869621807144699302090837606244250655504340837472293962423607106179054424460910032200693048957602639949677068007563379376835492953765598874610542473924856007439968705858066307103173574627041120610040433032589071720952013998661988183155437365090508135706371541766152047720207671326708684160700341532598974442006059638518220944360707381670704884578341675426969909449878870434619861393117094975078065650472369618627435379327488000833896621395649573710892740312716646107186517148628294831767295541308112622126973174862173723837686294795896981722168615493092159802215400139331415667838609187643422111442154947343560907118279203893772993502240653689461769995113470557293145251290372603060129265710028567840614451446071766128727088405052224247474971803453768322998506350671794674286001712487628991064947901678434156795587104930726486901751268620804781390054491767316315298658975854573437903678357992446591641738294212211505380491095102678443801647899894714675437711895426870502654259774590645227897809653505472839844196679743681634501971319496490425274805767615043270914081482598155394690420245964943059908234782332614005614098968964402088253661530677691107364480773561157561911711156228961729354699950368571557363442388495978277527921972704408374067460890465678019218535000845107467339067636299580897569561888532375309499623142321232337906865649563726802795792868012411745841203228694406417221482294068183659479955052570686361336505301374732347052149389538379417584068311623683959827579174987292940592596803756999008963601976294115328303633932532177022674440367882632906219942333190862095721282297621534892913182226081813244544509517516098411442433035083095207257281429436099490050488928721362081909257174803116256187969933364294315086633861195727108526734926424271269909396458108711649035649293177742467102553608709854179120149107494100947206739096143208082657193766348075613425542828939679017771499730024708688631310047500390920424469989542064401031625677790556286043292883481020517204142044376752398571976540748784746221682999223719345008973574374619799747308546042475427185757106457842860748553701365333793524011146803313060539436119284362343744464280289807680876423246577748875034380514185774156377018392846794017571695049020761691134766864583707769179237487301815292682021522757641350970899481016865725721950256505623909827131076718572405186699251791721921594830813222750999840452199574525670392880132753979801955302900589549415166436362181881638918701493993759308378778862142258439950321304660822674967679355982633737744133859468357912564226132311153445217799252189136645439306007312776139700262419942722857754839600468375119684853387506574533653545509502544080592433422671702058003288397330137481410359910325836935439277543528345861972675924968518635844343630207604715810118348505313887628969003256429385896269375562574650158139642963466146095070934926888277859856016716580274160142855675742881846289574363418025413788326129819074650341694677108422516617641107595583196006223349696977080606616417361313970999091573051927601303837975006318001562778006132002676481326982562594506615875511000527967582345890220469940146011182930454731367403659210056937975723425564183139780399768583255948432767741236669785878914856367887869976030447114294834181911428529453808698235423576550692047947673369422392094986667522594056499687638730822291394313353781621690237387279070467408190864938568381886349392422019584146460130423700277999886532886660677006134680472848404473374143821203479317698466192348080392061436726004988069023233699471405840632363038468528038870589053000058395372598141054260872775394237859480884866238624711448338426284543751763347087988137841121762884562831678042213846966867623862801428791681331809627880581130549179065778081210527377876644858140884060892136530990901445292481629194619647871159434090590320261683399460598130110356743804288171639729424577775136820275339584070508357982774078740441958315290340088617438429618845008718366439882495235380183968994715194129651966068874107662303903916511907814399552266571592830657044179283205301375856074267400480791237709346195833670939038119035786881393067536744371861090759875816555207048405926854097056639983767262848766610848749375618678358995545182964213973899449143255984096855211373287513592269320771530428861946973376224375315027463182106491199469832131746670971388714826735585101543021377290104854728328802520173885759201083249632846877820948966432849266675583437286807400910184858914910844915812098280820575350214315959647625727836861791865049559573399380607051041548382880526124222375459192709541645218448985608330870362099247567938645569747639719739398849467076607952950877181689972256511001392986722370628006683534483734731884488860123462864491884675771702276201905754885212453746607960757839159564506352690451540016890334255232300180062608737981585563517410119525078838590195015659300225535088817549796050257291469393999223424549329645196416081352475558490295514454374136518938612549309821014384649434764568011952676604455963296388656235359324369663320050340436014510674658521789816407118451760821353522990221003982511541214510618132001491827583430146238735395545715473131892882813214380134470707060630957361744389530032400106191228520369681075841682832072934548784959431306563566499529916069556367630971414712205404988937721558727020272480989464264172501487510546275272810350671196614928780005355678819257867387545145208371710959025374790451303769286601612223211228796779990852993104470022112255262623961823703642211062141525956850650972163536572221615590904909189639794096635655031698589788130608344420709479200391366112196115630597538394625286994896876033780320534991013440787351571353808327483835450368587755178009414062378519075105627927343181525703718535575762083369616603147689753315383368307856224837351055309038142631292639633314727684766157306166779356358137846298597488626402879591317432816038832743685218275793766347706343696310593049022444607781000672473306530554153257502189242086942817088636845942614793798468831763972724739360608480168158405019545524967595842737445033264378994775422722096540577732318621881600093055368055945976704584521069946083037670127482139933258320377377991800698954276471236065146330613467428900613182093043065864939426690096706098359118688736618428620708905420358183873209181839442104710626372662181436515305322392131842614195509844581949131799783110757198073408635458968276933278658568453345480926233948293691707059591255769922198393394790250270504563707469033446696109213540718783987915866596796356319115020298404757451453175132578840475820234196351401986752637959648132663229498717989156968749342367026764824015268114392491228893452848064523980852444274426346093804215285609987875284653744238485498538086755812770653140909417690731651474822874991709074059321512649215903158659638503562995512275410773300862289560997182792965123188949904704811580433070374378035347482334084372891234347637685033852723360424346187795943165832218882666743730762923022876022120433609513366806705294643503832532634789523968395950879850184745216963338405270943844926502343165940259300569654316778430476218445764830717104195386685538547407928648327535965239411300120394289717237178764701796722194757730633645141928002984737558809726744474679553060059839880625545031554793679477753736781129517862830247025405010243406689696670082955748038149660840533248074050745571859416655730104157616064744442353410848266940121720811775642214932857746962329685419020501802027473516449950439671863734495536974601533438912637993608444418550707267267199244693583418328805779427952187172175942436839460805167383552926460052130549776399873155579526403120279778679970943359862677462573161006025379568290341583445650798668537068686471675633896084589360280289755477210543511498977882928152558652540335063495945719493402531038055318674477198863456582256034232989925559118968000198974582957456326990941369386141437293774162350744252218159712737903169600392747041453324004815521798435181104144098413818387182364931693923905873758757344903019960098518051389939666368658551339960601659204374826457308938834879739660278706444091411785689378430632681627942345850938253466718940916743408609270852723669322796488699138405439697011484562859624373706673227968280645811116951730259092867048092057704827104964446481677219756765554987937799983265674797064224920153055254846918588548085110013769301172959999030945549158870972880041349413189808321902911246967671931110378687593306998702012420510071327543866212215059148016059334803374430182007163282113979197062962614264336265640467865288998668990621782524888989476988027856459967764399079932966048537077078635081090941229165253006610912204220338468684477130120989682443207019768427438045242566396164520916575244159389406800204969751592611944636684273342630629726506973699842477066890289828307087456297954672217338251646636492406368631651247378129035197995845946278810393336322229371358805407054842812448775396010312465601255803871914508375088636710596488230916428859565220801519495510771733709130847272207075209407250397915183086157792575347006843324147879394886578997547492025386340002990914390195257135462443758553689492545636422754266550703737191021131111060739761678820859850181281093061370618384882481064474713964867163318922091936273195438985684540950664280655419829607380916593152013704222026648782118575006120576668259357940029995800523406857438041951027595859487311463027344257566841495822174392860992847893777434965511625876812983621773876196025746207166040309847531786539837858068066170798589019134073186946041586977310493112152296501136795618820265080511138944741286808314364232226479457171656267792248965357067161902272927896128297129874724094867426868465753042218929668041426936243772002223825377255142899457580860413327575091255274004865612788273600395891852881230783170968784145328179483827935199868365671455369770497185985356593285856789162397174616700193514624543952601564239519679504653565414662626772802657322585842326681506795943298515358056137316870975612375976093416334854922902651687787902568860000453737931120298662228429195982114606190109570267483988337057117217010624068766616521445537529362142366999731032461759789788218063714298031251202919011671573369300012455674179837060849730753278937778473296018225043493521209058814542027168383291813829118126779205831872472197885857630362429988955525563248387415735485942722372306750503273870103212353143473068230352764650681271564551579145011751648730809715178268606331515250986139382182932167829262948485615379176184508716989543569468385881192881246476279511566685320227231005747669566471639700424408381890439927104588072443457744660423538140250899735087067470103758036833912244940320761866788530730711099010740121952278931899494819926272888565365325207432579606312382717447266489668137710538347182532370310317656815374005629762288054383384269767118751571825951202166395606208123202190974462773333526639289561292971185121487462060662307464721377150602762914542214495061373855354329308613749446440107535600964061655623890749759290977092435991454164133097457475595740087324932198858438561880816794725206996078048650677332146332152097592307259855974481648139587137071748064504838254337157262607140076526279166946781650628344603645336126758476622956492785083139875099768504069280747826628271126572178568753919922594236243111247502227981451859351522698447518815005027157904701514314490255403096878810557166275134327762034505766890849710090511208193071539534301596404598895873926338600370032603710796879579314469974927544905187042330961115880127312093791599825256329148231105842990059916665345388372342343202770992940557227847707688015949905103584426056815874972776236829833872573094172322147126306427442266601186686483560617752086328016699513523363999934780334592720141460720027897850527575399262605121886961996007309207323161029975019308782920673557883330063945653708674355328316794054988520306676342524813745425301079352697230053590913000266601048391079829723970118672641635177590721716378482125159124551612838503043001063413850748452466682096564282882911641430222715148284757518340610411590032469426718135703515555793387488519502608677700325458544832453602998271139428349402900558574747801143178492102769459094573620288624458011497483588866896037497884596016329329489342557309124745616683115991930050987716232695476670985860419690560391510732204997124159288764745998730784264979645818958297579933498324068372136445382981898800207389050787902480421966449561120935675548162902745032285199636105456191726955487553342643989103849607628031033845599101766068670901832134555963199619677697913763116199757137261449752117298667455644722391323883447963364001267454706684488475345321841531563027678618322682322666822045256412153822546021879371172908804309184192257251578037937897899317861949931275056991952093979981275965546075464690288295049151086930208010048551245555155341955600173901520884787195575022333209834043818688297065754412869277609377307661282066993295506528612154339248566023702030113546912661935767620599109066428853785324516882757173732273921366629105931549473116077935999867882882236001758826621179403781633537941854108601353867474662576962284697106554480496485563900694462752909406152800975296425523425067212702219710745365839249967002219196883168364022801398507025348709585645654231177971576696901800683477910583729830933478599751388615130627409951190960374728964520793581581275376090273755276509316429484278717804292814324294737492882367099405997120382407246220420193097773143638240717269203497705168697960063220757962107311720432263092143981739269533243856397711183950842271132290710081689606286965324842364805939255624695052517781017228564245404181606715900606497589693815946585362185776408329264431971869937517970700580295294399577150041773581452647913519866409722702279637789081558101585105283549586537806725742308352113776487064696861381645503990747021854357996413195125915561469915591812107382818398366679736868598856557947165159287136241668284096654171640908763076295437783160243098862887795231001791252619497954479319983525531954962959788063244444239022508487059270219734245460201282093859387291101223937797217567060946981381962357135271593521716695391730610420529540748589502705071326102688712233277222810890188920527590987081344143357170427534145263883007320742051481651377459962697432626071150900735637784972171660629731916121781121670915941699465439312109423922928517583510181845766147553648060541908090781637497705946933453704311354250007100605113806568142267824190388089580528654736373959503773972591787391909751025439256470806735001249164348802350353183767018509077017538974848930538101166889077514592978508582515719839315821331849129048540493195313061836598785394196924307194648431536245337713914371134855534075920854754630502127163631715916696822397990777837598272454941905338546175556376009022585185271212155229161072631608556093953640707922449317053160797613059421422703407717586333155375981011665232183540206457711628516855758567766529903752381496335446751077517029465750189484820641462995592990710520432742418142394640690644019844259887328143157515883649058630173324451716996314478429172055071944309045123095393258648788563782148502979824896746852834663948878419722218783243455693244196978399646960198457880996081769588129253323640629546840619275492877354005655792453090389081483096873935372755123519383118837247196523008398356366985787158030273280813646678621054600714436901138237725455044919400287827949000449200011794680624046670432269374479669174180953192579367034840672543374658026296686970417572134760554860777205432197267391463963114128043223716075670163830434615897692259256470534031156448839352509819705322673155796091469885708469184705182178650821501231070637712450779311407453467820080463856037745179831692098670157782822577657350521366568417055099897096235879076576549442687462846917026349937899999024346666596272415206825975545971220740288668955338615349981039170666312335243844111184404380692686243680996628879098631063889245853271302834287811969759098293823374439677116824728548890590712852269959699969586725811469517850778424170583889735056840211100673005538519272036113329867900868777558892482684419077495976223105346948120919379433645846946402089050784272251357979702306488558168705593249930310601079164919897475386198423313369854188808164980217659945322610636104966610812706378811508869208629388557729638603742878071362989881169121016718811670410609590178991301692031244010253288133053013472207574867507503534539634490306522439560655429082303796995993596371620519325064463700661947567310215580713853924871771131601686236988255363215195740147386339242295782311870653655364493212925653548642793664647812448646860992019333220424424866638824199959176417446975320357296532876524085280312488701575707537870469858766674647804895636718322993791204000109212956183458036345516462746738056337100230048674047270406556155122478937281620387686238529910137219768456020176660054481256768866471452154387090241199989690314046584283514528328894231265569493225920250777074903959870231690118989448777616697536279481112026737640229105652745445527405040163330963288296586703364648998198012233584635950516415873045654257189407900746674310652276528304262487987410509750512153932914187637629469754744686935332911521138507115455610643031167320953461171633604036990100438274614530949308193483065403914025716127997985459033012416637116173417368476044400085849272618430984200949244067713181778475710058435067125356787281022431504837308875536115800037146102720081157394956181579211480690760768099025998337596467281891489763339894813027308234940223033456110806852167516648329199434022382594904676120189887285601541963546524194459650269513637152565101948704949477003022587308201554764338470956353661416527349100618391622245140776708682566252757682512201177088892545189728336296725186124735374681342271002810907927743917284709981217543212418098037608062892435552582361862957630586078589398124057163935089428588142766193727710979104320944762928562760640750723579510136669870130975543865957563452499598480639937098365288250184769385268846889705975913140430855067064306191108703590061549072934038399330626381106096817339084029946178544224210540723992777807219565114719372474284111979491970490593771782119718028612998865977380230824492932334943950903933981377276289255688396750602846266243257973771047967641928452892986866647049321082347318039892463164031558136462281760720058442284443037032103644666527171191647084061262469674518240179005342900604614669129708066355416063349727478590276674351044531503582239158986299419688333661482476241439613492616108588647980510096501003860407077835384295736814112567957779069738548507740092174011805307768460805075063973343581259786286479065294658780606998674827158645961608341334770236578429793992095126925817595867868567396954548352474806668473451681621849633192571946726048454809879346330865275455440183273691016265853170079225700083014634902245953454880897132223564747238365082406217906274332232796077493041683912431214512468544926753485767726543050569209670110627611735663167314957264958405069577193633204153535443389633150653487392458722990313276935268242877562846226796786462534212552989618309235214308522811764080035793584567547045493088225925747744337075904889870511415264307107797704552432261298378152275479394565694925099313847476056494366279383126358544986760203500564257630900154810791548314857553064340916157001897284495817538958411030761709982687207931099527936060191812272043445995804347266182725824839022252270756992616011511841793564711043144894880040385486337782592288330452336435135098440708929217519175973996825651791361671100627809927836282727070765856606545000644805420119499133222848602987356379274891899875754519373882751490635962618307042765661178464428783239909328256839275934765062040784524331817390059926162603347501526139397695562038368131456445851141462071078630127132400738054528927922609023308238852684575607495641053957864392683690638897226286238676162125452249844101459686893745528682739856330670892660331842084171076885171302996624305436898546814345864713748634827272544824277036787747720023981379279910559903615152600719409747391561046034914129675490631058660415476395260006681100235038208925048845658940916040127434628636929802777430021977451085886453038333465942787601398702939274669066799326978750055755984021593885915473136220971888045324624155652294458439107388603710342814028809100283485472087896648454417940432449683691484263721904452276966203865453255328327243595805085061867396262679848663172150668674743515645217724115961988342782753450205008845560895306388513704628560307890664264214681263212146468085589682055112237472058804947451739548072768888280275624063749023442345603025680083003883410142624601038387271072202817973922998788653375876401014713726228558448763769506127823511189781245449078390655283190106011238311578507056771759047037737875715209903991875140307377596608061801693133816372444687537704059961831421576121425665493715591142618935508488462076061422042100616863263967318054409036070228586107839253760367094671886965716194715289751701782094834671420264041286538014177062568347177896865717804547476820316774361796644661828441677044014286720450949395019130496897095512552518680912080040724897126935177434773188238394360707298980288778159493289372342031616819000572027553345531693713549936653404146411294206190368246530044500819900265256160182149992752244884205558246375664385546801047371937439400519421698853926739045550547771413854205963241293241149523422972090067405193948314194596277341601224813302397720323918987700571508055606497384508331794847885348188699635501841080856636657951775521412024237690851123535776966318345038096223344593916706453329070488738699468926890232720084315356923390709312167727173847692754590353403486109570504652160732250816237028083525924101618545361929707171866202963707812392370891659034147957163535464546325092067718385691091786227684174632613203290570167654524480288056786318647218337541650000634721453314379513956764690619332997896301028091197008431291015430702276829853908384220959674511303818213492731277771832654097157500136703901709310384206653549730564229817100717431719565916308691963093804067199366042527663337729046188103022071033000613920565549174416615881832985803482629295606420489797807676890167517678302916039487822562339556160544538293570685910251092276649223595607372202991453259197611539704933618384732897333481065082386029650221386611040218582448125205826618518981574701112818274908962405093950006212175152300797985018511667570248002142371620465810371125058740441373576177930919658990535959050668065072724423352175627661409930509016601183537182999709035411232702640667474700052178050622446994413900315837874128340287358597563567147509357465383763430969426344229368929977926425701261944554074602571297352277130032829991162444905426392495272771999373955628242463722719782967126269115317868467074554507394790262326725818906524504494056819163100128639663688335880128590997702349965125923509395063620875517782273200525005366418300581146022129857252125574341349577853459450458110341604719354694655206273120968025778253014834246503874230684424046289274113403414458242288605822455542040129429334780675796237740735376471101793025574551890757024840636983426281954478656831456550182240994649626680035994530045281476826074093238827568866103580081282119192341035458905395017044429094843887735092541723953340248863361666398497093240628652652264543887416083560263811302270347603605386847643669811488286398115871232315019408700441808455032655894550068168192580482096447442775946440286617303132684966086332779155361631019740083900127313275464970289013017642301239463447211703732557460973657726606486502018259695762724006392275138031878189562324945535970563109855794411735951677717676042728864148753556404144479767769176142078969501567346192747397803186181791199160274988496361855813121429076974434908124698621694729008421050140277184500194280039086481800767384320291121504993986061337114561746356464212924549664322459239605873930444439834599641382985367937625716450490058442431159787873290559464899571531561882074571511115418464065171816015224712736759924910543238249973691101191628292861882461269724317561271358402924738612661846816314829898580353912889443663571480655550673539068694336691863080720310516460088662060391287572890509065499934579587744967875652780977977340444519556631694843194201128900258100072219976451834886838375139148522632662746408723703443216950684271580091939824667995284364089796195304819484319877023361850701497502908420375350409327146530262889325972343798626478852386994101306162476364291489321530008011529772289144161883975590459842028716548271635321286091237651344680613592532783053326886493214331574917517738049456959673757249609188682461984613608640736439796389371317103904289668507672889407834145253880929413387182723841592892867029608034847005708825385014538397767117237213931318981319275509063224838166302899240585520557924908646260241730900258347704896157910511021142501104648511289408748214718270253698283070504028695381143740479605976033239137116141419741315223969120429401801692050007874209105751211179390172360033089077127586124996515538918442291518774298035599148889219956946589400359451258432252327413865338612927470024395105677635690308918201111092071052995350336730246487057516395159323377835111439744510066246211463109646315569456396657015156176497012028120735389991235183251807507520205866803368157005082890369980239225183472472846226525641649707965844063599735971907524563012832098087875989326564255008596366827892729746219046518586774645644830446451699441350558951475400491215374932550492701011964532241068235995622160005046806597958334942648384768243277733836805648287454172430340804545919769322528477208551337763303753497873810603147860268295864162451231493617980301121786510964264636582749737443045276152553478159957393922860300999193202719969148201933256124647274265674107194909331709923657991199963874378684705805618145002763505116406267375283543448812686121273281083775200915696806305579349720901302045712091449775866775044633441462210751598076045090528257634501496319931568044606058043618336060804596720946840253483819590622099319272149904000795264301949293074520697314836433211993316924022942296194081025419139832459359088561750990568207260349001696270541765097545347950708175597679464912491963759117657665003503317237286494446581594495130474398414426160597865961624296177177646810206404670676112923588526804951907005379442680069928290361813828601738466967926620913241272706398524340314568659900070703938717982803926129378748071342086289572678475107913787318375293855131719726168056165877665213551755996099327670826862154829726494673534699289889987320870379377381599207434912794642196472710815840770535385846339245557188231687639140144258599826130845117895825965062557873435526527551064224506405097339268411235055564112970164980148666091728426319046982533974083951397466521554776856371940203749600082518597422128252217188755958991906696594692223473332148257638927391721540205071993339853226960987224989317812409948055600040602035068535030716746227356501318966805734110320741247449217908760085913822240666885739908760138893700892119074265205990650529673322227986021618180876710774103638362592146780155834891001173204844282816240407055661574801661073588561185560531232462836373991756549023427087946776480638290450653735568692960925857628376979667053654563268579107512203265170926314593017248422335421801546979921204723625718771679775144343846574402946806423158389837529233149591045323535899325624538131173984719264610388713813755781997079348660498871946217995327287582919495195540893379381752314804490246389242520552351363435307861107113541166918030359307279149623780685676323444960640971334714208160183646438673906146272617098884751712019509221550101670355624965071898495195411956594614708731963777631056203496630177956070182038592682286502789670805249248380946997074844766993510831877727623356101487030716193030073792874352633695410665923195693031141384521069113163018042044750737282954817194707762813156614558251695717946619778655170141494191530006445121402594344622072642714090299421426713679463385040148155037021010139239624567090720755805715807248989197603672691576872719205676826568691582474896242592628306522446517538255650897809527917230606894399062746680762921854618269635328223171137850027286273605525715601395839254308885101944567616812176268394554522821255740571576079419413082251254795688808454639379818413027075745425068476840868862630365552822571004041433824042407655398020109662913231206358949968575958667256102665464265459429750498343143991665718999811079199415463838531335852091392284559742418992122598654151435661003151813045341056414059221724638486632811165302068038767223948243189923696189174161658761684744698504694614974645259499572066928893363273411620981908213549065851606065461555883767933142124754391623137208886965421957647973054049486858157779075569425328579070255155050527670791892130446323706392867265939405824964787446069739181768227704896977040869380095841689149085209464836093488969979584420891318847533693587624616848699626202894681113814187587092636868124266481991391752334652300004597777507769552776466555164256286866091014024127435239849275449093469754128454962006859040183253236798656714151929712959798473541218975695336005824487143771386550678152314154486674482266585790702095764066615825713966335204793179112891945277068959030717738213276271174434290537755065176893950436538303048563666251482301937310169661498338913224034578338258982734856312234053955251726412219532357067513714611984978016577400000369893619358238615392225340864851975877026462064816639186229214590080809194764625151342294975130968924769846973671638143439562043353472758063533299393298252300370451857654762657758882502186231220019405902385589859915137951125222735664160304014326838317094416500527376644250525694322057723550338427186251291317075957457799053151122257223779790388814154693636205567637314377335818106467612180974306251151684852202959570981686043209770663544862465303807896214685195567814047894762942247699923339513903909803545372628623868911305343465848654030201308883439055525462667604520857197818470612647960482090207214702655326239392669379313278739036366255465646828997249348105372754810462214607175112586247253322178352555802836607633870347298509492922343583195450907230446636112843760395803134361962999591364511001803389436083933343800667691529537567466417062546329709657067865313887434418108830001999225047960433958695409338406815874359341226931695281195033963171149443581899259951512805903456190415109023672493959631822072272372182155537909097068183056309168365610533558269550488863466542271784446575812586248307786428764426914986381950633857939548614360194008735974226562673725519290072067197094479338155638769216647846396780251977735131666213800794787824284472496491328760101029973840998244899363574129247532324268128491731827818647017434888836341726225493741399699066323142861865478579942916034747921275280803756481522248677085899188725719186568618146968458935004336439952478537660012009306879464052669949737139562158354072306141460787799567723255336138168601040990299287195003025443961436630297763052209490360041045535867484037648819459951080716080924969394886928874320404436942340286157957007782513226965311127029616394865727262161131428329350292592942129430669973305944804845724297946526965067415878987244602192826227136981772188193793358929426799295352668743948111877358420458486867151378084220811390442007560032161018890823249800768985533451492812659400226307184048128274648341701602771218893885093944923765957031060824103452787484149622942196849468557915763063748518742037479742326123988592982112492845385501868303520460550919045070812932228789369698347434948721625794388073118488755841587029918231536648855995213800583796976940448574257974619907008350958500494202781299842618945179232536424541509027040206511943056297326473316024380853846193798526085016751452845474659549276582113701973307411731435873832888163533310080780980732233651046759980222999357622093452668710672923143598064373374215395871293427097334619187643328680422110390374458327272597638732332074735973515400216476755185348078030882388677940657224451467555387303087619089658020754413243162166515918049675546437190333155978367265539667253423787423447582564037029100931448010648579016418915074937433976336159752247343842631092270986972977505535728678742902151988991631324979540145156252208238782969343909773924206110342306868374558736205883398359417727573118421963146324273961881373074563610999539428072173626511751899623769270003627302078136658637079303581076857315713984691582368784939075715744949484108412544692642232264017197254066149324104724924853859577609237879279045200419686097748167622065037451145783504549094824802458928352944127187209011899549158068859095159507770607849046539909893779545100651437182851777766684617686506461490322308519444012844546185147169040712288567780364991199905585389467411248214908802689375354730356282942810782155037724146545939742346922259214784078959332903921210255885490869104478933856232312885450917378525552164232851808676355842386088732425401450467508466369107926621786507729156931677208614827113771562562104431091865674417409311603032094303922177252885865770486144678801601817020173275944908781330646605838133658064257239850751715724912089363462711533218208184217419474428977319493246112110027528610027341923623563124884405408728508782380987027837504737934089980845053942303458732159605222187304078492227935606634343072488262527564839239682264016238480143172657901858488487802239167917903995518623182260776136160723900750193414635698149582022934920219167132518728935977987132718972699331422675303898403981466232728561196617645611160603600995461562571737477014187598576466550091271883016544470741571461472134945861375944986161691804984227653235731184549841098109630861348469964130775441843712507798602941356115017859617257260802078284084813355229379856087273147386449432939205663738142294365809479340122740226420060387465137272989647386962683537286615087751766521754889189686818938442474471714415338481888403834349493730669467418223864527860620116508473912417391932990673098734782465925117718619519535986103094492067321942039908797825601659501627877665169234387000601455705759407936351165671830053623211960917166505029184534233871920036318464175636394417477333197042538776940218931092844399428935469371285953018171868366515106875977809249204145349517351369675782748128393828440235850078795010353920866722005980501281059500169590338318542661106747194816795271973997652324873853166613504320720027104615791268137250322068440427559221467448490381679732017616363813327311338519381198979155902477270431563422255934299235302304098737193434151539167109717962864254105304889385023704618707816973066341135760067412328812205646857366082228423309818685822180635044571709222139468006273842612933876701654028016394516193465476515711939324561590508477853834507871438907955885864865252060136473054428706045901830018330942625658279017888257746850886028064054289807798363757560938881673883589100539039318157496976118630818268483963590561447438791508597258870105458158860304898168363667837377325251870391557458398671541281665206569413985323780430098306354824565435184039687967676199963541025856932142184102058416583128861028728064674033380179766930246684002531180817593466869457523166872237933746064161669325638865360129322963913137338146166023511066667562066417704509841710628464445342824889086392837980933988377992898171013111814231386340869020129995541486740974415899230383708452517620582810101066790608686649897015006546307313340081187655027024586695603226414485652057166314609977253335199816530316459647359443344703705818543237992814011919228658664235297957404712194019190729485211402693264074922693336820680607107371448014948955727323064766597530394727357362779810606146652709063755229126698204773815581922127798258230240420724030108043647777962008341008044768583844078701729856250171921342002346809272939065280210252708363566396943250220227490480800038914741269594530421352856102166526415773100633636885689583495050525110153619186392261335035028487944848401245368213336640089671275256884057519814028312315517237529594884812501190773505070030285064326922295544104226053162152629453922871992192721037646669969325665180436117209712378594138680819280510928008400653484037064900524187466060824989519978734493883999840187365888425655903025204718736758913819247037713133609155707901692252284194359329900822841188889089226499412623227571952305324521996643283567652861850804951933168708019629825199101424772969010822758833507065398218760489929046453499206540939868737555647887321593733754870278941625925531979347306831783305918933237829921275217199372483772135354686967249558235783641609575270442341828266471554437579436506390861904852086413623964775088173085533660124797044815914977465805512415126985495534502938454953686475739526422539768809200417404733738851955526815495828577807883227668219537004335349077772455767435766751733518018189700525614003841014434362796189483704981666155794932056904223250833068123986478710924673231221971427369399865420324672976524227348684090376693102737878143358776283755052520569399052828101528560928980198470900268836868826219087825571755246039164013638362579106213310858812925045390423426493319824260061577072285623545753693159077640608934756902893616047967502919656571942619973316217643784324934645093429453692437437499899613589678989510120333840398386853097155432205226490342408365692429573498680674577837259224643843105732690995691441396112914068637394317622600464400692759871474368413626669581476854509585501686047917888871298148227240361914196705105726942838665744761677136633445394778882350992866988891735382946205024286753167329673282121398814523763009448767565119702574329038135009286359693733756211799594864198989343795456017001345792625620800967623768723703471968289976628476883637015808731956142538698802170489024568530150524922850923538126567217981683856797610173446327973623034225502089044469298476874910065130570218650714642446916422624476607759411444343509315392037247116740263479295928874719729160054201532531235037277677398899691068601952283059531624939113818662275214545358074915574886748459383899258709298598191122180050112937798484634246129839406779516533064715517819114189812065913252789592118569490795402189304293338548289036338778371219016205614167183823537282079950943692609842397840850708345711128359314269463058557416012029634139980537107392289235502128722157905145040705454993209038126334994227955638022800965615398310924844315145255209118512781966963840735061757430037072133122786614409557709859998284812875919995793998668366917079400037110640361623360545244320860227398716414932926545901827822721538123450564341343363893892460939704935631621226593412864821453978956772073640454068806307979906457495228424834594417104298259178609729029532417547319252847830557808814154942027670140146575167796881203326916922702809741512040273001825542671506566594878487983398742861843625103297940425614292662546423224303308931402874319313490837051629202016695111197478679397822554958487136906871090930255776009671621137023648728830626550179197891030624983566065812397575537712579924502299739153354691153039822746508869862137687483657960871309113287454038759934834836022040486878778620721920442372522423931438725327488029887341942288189169083629225965589745655557809341234138124083127724883587652250281391473908559241296512770920985261155995744271026119537057593471074200031306170553208561417287627164448075566780410631352187558373802530722711723029961270212287344362173027553645147789499696732644338691340746960680397846668535509952712445004729622731762246441539777836194043595952290481104159809113242828910457479444299311899318121334446830022883093517676627034898839180901044075086207473392617003134537004729952418295566022486700561273055742688654989330486327403275972154840658242672883953262352791707920079279487983859850096366114265093439581219702195753853108981380512314477839850791030559015789977711498585502150814171865360161660732358143502427350409838044430346640266114762598535536411653510205535107472928735568527309193700797616603470580096431117009121860351370467578701613341727178031520162543697091220242636498266929969438412231888980689873714351961822981428058806061204138338271808726589211785869721083365769481702340149314354801550230408387470766196467420884951975099238441997542524556666484064007062409998767914762845764186897040463763543619115708856852061126992702765958037854459313540671424333157241881508457733491041688281324049040083067862053286872836678161517884119189312973138824664855881296893773360547847732905556190164159256314991685350567043133894394362023355943154229293132327200078056114775194351763340235059225499688682846431785565067656210313211082636422142245941145291025966349845790783379594878917547112270052912123237289712510016543230258617450903062125847622012449397982155851692921745097699923540971084614316386784208745846291601161887147314749979728261232676039506180090213279142501936494187367232345811391765432092059135396778779777663189210753255041743287003336146106328135235392088964488406197988891125764790614714819056805070951916041219218418552757235052741808653241123603322854278897088909695461196440109623368600547506116096395273745832609784363194360359047386254224747786089927066882883397237128150593311685566274086713370360251704834920969524993566731594156662395347555595119192197397096983515827065458370970191357074056261104066467177979970782918470955315596381293861492296093542697291448022755046590369943279993496904891550974687195417828368158851146919079536955030284785896094876963586897338100938143914294898444823916348075580507549701342924464463358013294111136347711942536917145704911423973806530210945044622255929312648653564620724861375430520698730386919057771544168918477266598874399303692901262355967255573315812541048870218103504589574914063184120650750671708604111053936221572193231909751833982887518302204062904697981202085369587674852269095877055164332998548558698321284344873180918763590223448281272653421634717495461181233867328930045924376190180910946061766886009739039848596724707016136791871667448121596344550956531768441840155922172776737234070156346778464973235269235476906410497863469070968288891028044001124870126410317715206825114220667267394610791750805037674485019370149958286385309305990504842403221539920868609517060841829410386677860693619731248763601773524852233362739996535684277194888886805897101088100755972249659878606832080707409191480571050189384731085683486753707951453928275793732555999993552169928731879434235271333724559776955010229265759443337677275691107096151219638112423034474313873525421069780607553287010667499207680880933436958524206541446467035026347295443141869945939371609073869850205223435674032925366204650779922574718830194116949136632916261642742806919646082130037464493028550670428155232557890475957176930832125142398300843517494398671691073442570938491740320878548464216387239808605373298863999629092932198140054206259129349791639577944466068509188841352496154875751598392910327115388658992966685813983444263916270386955612583621215495664624413299682492639924026948450093655153854388806271374267234312591170465847866962892363628304931976358154211401171848316246346643609841120926599211898181924749713629954508939747426306370332853451954618824533139905842994624849015378151190935424368637538236166372711803563252609775656407454398899623541530779538916166318899718228673370563452715355437383454618914958709636960564753435236708499032728140681776280415057149424479657371810800645535415967069812916160550924137928951083866685241098034524254723399864115911349747099481163524261714479589985981048886947724082196264114525487234264846217510326502395683839426102498142233377575512396680411191906757777874712125888613614896924191183088834890846460061385704582965709588565551093157922144696419893552423864599786255506477535399652131951514371125198351234732405438124242430025299446737342253370640221539486628145048019020056464427812068376413827125080965025162387822126484162194261406120161509049032325605756141275534942125266213710001919087996310717236809958738542924648001375036542617826436905768275060902475339158493331196525854676394596351133278647347698519734730242094689954444136740633657805832656050599401985804834882676404991259510725876327121953879894886347039391913937094715078997563855669867101535343991777394402227389452244186150955013237916091279883809670822817029668291370717310147926714648654252202639758207558182661937245013486108852995309070458752890666320599857200335254011203745449878690933600415594029689212768641625518328026484332064260055753369618664654723120797583033167822044123905613924775055155789174231659058704617864206281675935845639019452713338661054239256370243486999097166101453477406445062606326965750359911282827898490565632475956247085047200879376646754642493370278500757670534976011732536751898958820479817088518470176809134576354431679978474023737301610408330419516332282447206401273680609886200833701995082527282900677903749635797382216258617508827031495216246128739081001181456955554697495497611744187227775120870935042444555526472360131423084823355653987566568180374820682555601326359245253268028044665279096841164829786410079100689395385240631606607023921162274613500735823797680933219395320926279255750473604932001504897832543356953660280011744277581840135756048249202383207213437997755186063221882407180761957891929282539395215398696055504665008432875146396708700739150949094720022034899379257604176322287300764576568685254369237463573251291248173334700842474352998151384793974144852633602825935336028723468796816424179686134378505305420758337692664755904178531649739022175019180438037807934730756318912106875120298387526188025961169125438321106349856460625545011120381657280755988353460455135799663102952578353885415919075084255701196110760127068294030243109182308642583042727468682898037802339183418368010580209467096314602939372524549868709063845714992277389046728969351760288430153026466881445319053759134966552182400578259772283007192073733507943107744652620905872555453900198133145492171202413073697769213742545843272891352071187712213814958345790336679657601855059696525020087946366796831234719639483099048554838396182873631776402797909126772448409315296457610373712476099229969685791957507096799740913215993772838589521129906264634487135580796234072018836738625973407705940445333554877737687210816614055926377054733210930037602912732582198223228885710388297932328631136171761464779665615056848431021820429411920126629839977370966965272999030421278608131688642234066712822890543542927034424280330447823456574927428650464322632508827637035354480225292205194228977284544262600407180373285693593231183307736430580905456484332465405034672215784332540609923740046229839699047806398514066401351208058268300829433228286430153668032322450645984141720472837355840528026071107883532989056816119505658384505792042613738923529070368829950115164787683357416575817513064627053497568248939749568080262163240810547812708346097884226338741014286549301139819066572043329741965870427578196880291991714481304167994723298265516434920454338483394966013694867723998184999292226606452448866000704676269558368628283859218459429708972994207777807518616265640003573599215673223216082868451659321968159653166153874964147190910635964105461901856866558301289329151551504668925916626839012435937282654722111168796185333485337842922669649519059638558311184179753789626841736960906962006729025736078415001979109738501717850823810816605484391421492332419308495591738261652798327339079351537165086721379672957849355605516184246287929690175980268787974068059944584773710699735099314012906741180573495566342387582029996743901238191116331802476130370427548593623799842967026042740293477938830065520709080390226454885874700438940024678704709591129006994559874354773202660865182841544457807048856800763316986865844738495437291278377428186515200263123834545909575913349129425651623291937663780970145013028905386443819737462300205574460091061558554917312013858609435909931116859103257962210278839638898070636083206613462557179756030736219398080693312770456205916035343322915631752892835753660611220334030261812819429079224396434519614220231364853670267970626311623741221746079785122629856679763200007592655900158520975945136263776080051887355712169014666914204892147866800116482010302537789390099332108037805781987901699051918450468948826360128436705153381047004056516409771863830105680839926731692383809659655685028443440268958121173476961491776580969532831994101955199901871965859088244825891682270853399202485857323366071006418748361202208904208923398721569558102800475361317889384561472711166988989608921782700227518843019316014483781325726392274081369340197979508216165507948334489637099911446219516856281398540207469014740898516596029850458120409004488295800742290683489482524595810138382583468455017667295595671184686761569839237583749408626608670212661680950537539695680358106326352248942732465139444860033229370438965090742680973883490019085531924341409893894476074729097188181455966498637060967231673398534345332572621452364626993563132907415084663865847173852746636009334123091712983459783575608891246781827134292702639833701515610105413107167366082051213057083840804032521008276798646163513239731881457976295054593664345075306423966462480287149052637118292155235476590073264051549872715680626106523652620497304548347687553212576181717727173869900946680144394219471991656361991384045272936015909410656453901886214275137174688019991098638665526158672561364986164853415069924030841067095207274986425327654660846967300610940548503790991172836683168448662772135178983865280165607746258885684756017807494114721393132558456769895611161753831688438234039838251478922365431863092846909026612453161733442931449457511686828472885812978383203159965092658141521523526862809334995658109486124608218285409943922267821191064719828396142416084486661718393531624587113745038637540058807590294461002407850820909659688904977796309092010619068145979193606152398897765992408902329503037369955923877661105187996951424435628330457623255812779204142429209924075807223720216434788232771621753238325472478331234857794365252232525184543883636628177967240794691651412160204039995101792859225759105774586867095668884947637380780657761971881634840683532117965452706444875873994446011889667405922051822828856104603796634213475698778389423401004485832192777154203365393803844620957113673237913055234625377632468648384087771214860397422586411657272112285390339878538327351737573858421979156343771471382895934057820177124051602624255138004777773097741400048299481720063172171868348905629591596590703852033706883007956005142852410539665511889123751443423273050423018955363113215333078819834583811964621704884636217721165279503030550325126996353541558523344757694054567075391764427990389774467798523385442572176922486519136197915972494531468013486600647070384682575351071755678928797117322413386248077754017645129507590067685199119266417880061171749298948884757040641700477492560981743220982803600626025837126254061349729061746955846967573685501414174735803822759056953471111277450804645736370859176950885736802102718051828023695852902450321240563935353533881430120521643929757260830530920286170248031198665645840814941346040987711947841248850640240183248828649850291590145956092427319976357068269249572848023951491870754868989691463274563151890377619028500383859680293512580433740620093296308236059509703957212061695761443528676634408268783775413680188045164799913428353672924049645498623296720610615147224655290663926040431235854222422812495499808289250869307891757953254391049406993236289755012866654703047307484815978295391075329815310034764070711686151445443433309849016635795081059134707708187954800672068383426149479557948948294019271684673439068917103319805882551366982499668209197300019694396397165849088118203458989889883460375616085194523026079974133456727433035329906660323232382122450368059331441258102058820682873379560702724435338180350742158303629706632588561438586848278939473931456403532471722841530066892686423763121808256866110817982524051913284986114973508653958770191369288570744838698370746251000707145554679068570209370465421229102181328857333402978193055804083356175981438932577526045136063413526499898579224946383694539923097430127895888029640520497076542444186307467423371356355934128612048447606422656072423284804180561784059632223535897980540042525549032707660796140712095702199598916819197672338930928840461910148498584381179418841399771483315892157230129309034537550310903947746082093392405348742123206913376753271915400749756581606495316793948661097182814863464887671676725131427555405837311682664710086826982693749090680564414899917036721089447469127730594852694141705283749548420859215063160251859278076085253756448840552986543165217073365916322017093329399789720795318779236021702093433874862386065173785977205885487917595527021040964061091888905740230142366967494726588747193367091150699927597168988204900177686959865687612482726968899360654080218372798439921643029362669341796437002854495307525684364263353578943130579103365682449265848101700918683424489352226499642277473031169059322885162758548722698962981272234104376912539500462140873849964629169158910613101881213954140369598529818363255797231167356174302017146889597997200844730733738808723304460820442237057631799131897502783611657347243451137451071397351884403084005585310377325616105262475289993022595114013842664239167027708019478160486062791189331843475055909206505571107295525394994360816773972921272205244841057903824961613912407382398774760728834617203504283430855522178889419675899127923810492803074392186345589232896968532403838887102965578888865221565488148345029364988918400369556308638647533575488448146247134224076987577542519832825038708101913978915199867376465159351255777038894238912823606899945040384412148321936016297505214234763103881727017955276314655183767403716238731995654504560369821881757365474827267406902789086019197003792904215226861898240781240758599649199368850682424753382919721588633980851300169489237728768514478789399166970762801293253991511507744088050614132001871738260494426853834417219893716870190727245048034597737887849939168288103367489629002408904404860720147633783127509028211777488661167251887350908356371757601368620177588365463690239651940557953880390100079068324917485474030497003903009700287218059006775143595642249802675502870892752844432033964130321685676983893043499995374311224534754602677366370749051718556287940068398971696633174305757005881997518656285002377420774735568335212954665051095231085006717517709693236857323005643986637793699022272631675164803490636424050241279986848964298046164614986255351563630121856393515008118546490369871134076691224143476822139290982289400000726049840158903559159235383626693692881099310388230219588530931822733649169057055773537850934190566351317103932506931932846858164908077069352513801646888180168020786876226153242317659803182856558771151368070691145385059241299383916960351785979574672769832133865086308092527569655328430426748756303623620960785198957129991411188681230089057215111592683072040184187162868722178086871549180202407780440787579623467231298673594823777586778233892459279749175921135146522737460222168953452470317315195475495067736625736392415970305583635134547705893166793896704218438322503175351004066792701784894421643234094003107526347412782197837505421597132764752510157332220069396544797365833031361448986564240332273889262007325533136443158865903475264087757545853572189722562562793344405203937314161214189383496915059034089592283128935318887359181891455294638424479803683532565237008740591936842447693588132450565688710907865830634162719965493902455229926323533576338460338124745953692350626062226850928947385654641801457120824105070802589898357627936743578839799983501982857139206223112576646875984002136181501039735483248050222854154788378964867415950445684705237409682878174696944120862035218923347497876609525142595286324751859871266763974640686273530865465138925945441022704178270249292213051314642838686674015894687582484434098313962677851196087964685651831549546522449479887672348496616526015294791336737455143613504720064007102826386680703520210682764434800678031218741073715561911080934455667149988892285801750027092438281984167237768360340934887905500902565625920131357796551830595124045116741767527187230875911965501148624135039023643676338176388118012265954445117294962541648979360111142611805659745673816900428700364991538662186932722211387396471894100647423537239735476464032690964767441167299329322485715630651057950572612160213995795290999285871280358872789665834654485423732796702413801495072744089046179488645903943936049086558082898534260999651641774613206727204791271278901074318171825518053471541646454491330460304387949539998142151477502799659533691804172315930425060949900880949230836168469230856748503226168265224958955648853284519278866934498306454933084457080325854275525756343417354284338342104203187237262131184857960799722210388480943565738727245283891709598508186303853378560010123830268738532229479891244588823968026157554692148699684689759950559852202859203391372045651818614941519466456714744295731596974823568955137615152235407477174087520986145741565005572285091881607960124379346235289602948022972711493169450755237432251330072099169357468872402656401509564085713024454957522296433283552532702838087089058326919820678860914957553996980593843942917009864249579481023996803716038442536559838069444240848849060673086730094256627684749551022664978727828599176264919525375096208104534453246719916233831887466118331633036888856223395235389340440539607628113685369017168367004441917959045598119342769328151444514541767673413548398450971823501679283266994600363417601676783874485387251725030889487743293889466516297306530160194365105856809120410568661561217755483516795093569598806584380382956770096028015018518451813992322500714839238492039074644199613074605059031050819904031110476540242827517777051450072024379306026355557430699993356404151822000358459754819461920791926021927998894917181078334612483271129670042489959688118141084019186801150320629794206387173845205375371169329339266919695857622391123818229997346507593559292563733419189007366233217570842461764333655287173626014247139057455680770741977759588622791772681704725006148252750737725679327556137725126567086358995539940473438545471344837779233314616690889919151713812066542715522888236485428455354643257848817337755990219619348404171336088689508383956759249074399070011088264899683517738167878015763091373850395439550112084106908007711987097121766196771221572451260929359531792720436339489571983800592923325018865742607030218483245193383652373020220003244692878748816059021981207055757593476439623893138622604619660429885411184988445135665185799172707251394606473816400546088002838131066052573067103301143786426882046763425125049502982492955137063544080473196972275293255726314029279096101740385634324835699420371913892943747934010389804931198547875743821478983588157260581780986069515702133628908336103727053274472164804984837060466414598501979743855117230044424804061496471422525975425797055977309177342925283538028389881397347094953050420628264993154076124052708499103613676971053387464360176046554878792634359775471290231575198569982603041687074472458388157079400634915338210647342163439590371380369762245562768059878760878619184881509800582160194487767458803024084179007109224198432987994720265926399746412732113294679117601619945935319180713108195246951970670891114944141098003340017818458287381395984166581053876513508404694180777513926376308539653286863426729066084716362987929447891024682398297852803125874573815712128836532916772629642981978269749716530756278721723041957278011609306453915533258080012667015907037348397271986429029362315853125296284655239277117846902234160446172062355467351232932041541272897094126208742078798538193831331247352352989360422968528463416250613204884683646070161997460631955529145041391856651403093692296224643120394912131985001587114868617751950193454762613948087940145987356833918226733627713234859905969739645618275931272273156592784124374139011037671902211789033863307797753939758219450047073517021903676132030857934726011754720918585171693562691583643776661661091302408202684236690806375856819607470205092220426960961137678235998235711583657930058519421763097311032257866086017255869572753377734837812722443883871262426594405283790666230257475802734252091606343692233728021242304528785656756256446586674737631615593870191075199450006842172833423511882186270133558140714877509060847461671549748103981675367245123657224641921279574563779313340353754017793320882888588988955654619427008642512553866851298420838529538281899621558095979937478901638305353412191946753925099109261660929546999343550410583723804643218560285537653909007433148682296007964970922601894138231781071316793154332138693531856633428148011708385569245197024642837105280970843112492787764346257655018756544585424456223827175762534090555694424512421345372034569607065254012900647668501303744236950235202619383198915805014881685458133629970422751598822747996290483040647692928204338825232035246406730526470388459523018237479357111896429727810650565690055128343822022097744164812777366580475471407914962406979362277488118336886973950133585574720422938492430687876917805251490304499571183335285735444035146762521119770501547787887917621472583161029961079016279146450790919037556893497958457702432161096930538984171842847964001089095714858351369254474854848375917706329421158891524038366724909809748052063823405421481523665505034311758141826789007881453670500579330353391300638798994538247545695511779849181949408127058937352612916447135745725742597283957264047417497823600866950922847498882792427811648515088413011603653565473422414750852038015732693337810185929599085321800294639264658402534971330213494585119603750408844364301941824412570167184486259617469788168387988598213552735682710184366935957292284851999865576701088081314756320896319486550287310267358994766585324224758128921335312740469742971507258832006157548322802550396542306298122975487915760077745890244655232473640721700681322690037976007896994717941944601934387316236576129119337351453978723231773507291313825333244397096182027639980912843515218794686389709710126781341918190110247630764608191096644237281975247552701690544563193668429889635009467023662117623817733007227025663988431476274725555211833321044944997977538048800485705167512201714722632524144347616682885764323143603533680636086588178246379674351140731143884295277715646284638830698146059731135855696564645960620978834148476853586992006857921537122579729727103801190959468129969262513598096722786220715333015433901366818575454348530315670638963261550757280160951494641564681521039560793574733321687638178067587948216301291376804660461529560509980646568010025945564616301825128520058723472657782248800461836692715095861297026046654924885655710976247898381995695494956420870356875360579951106889847148565654898663446344069416855905669776570823338310428114295828353997760521981438746997605062411871140753485922466904004347540964297312059859790228611474731190752120542748367041705297708757966335587142105217145126074224439359930024572501775706952164010013836700983025121277348892348502593530045461664432710853981686037532886511923997685996490718318533873258069853862190150861767038485330374214386234059097297107227028594637245929230765324445346324578552798758184732620834659768184624041686513434080835917584668870438902238689327323459383183094282242353676206517922282009642179158667326217642195849390196766073150826695837015426670586051688857785419920929040727406668169161477357007096997997592732030300242733491430784297442054739780768390091006348042268417271544423870653744228331201461256215234880582916406516377457238314781387771831178597250079624559584772410088184084393866502051088518615902705762286862468300551767568361890533605363952428440118896357614825094854451812359928492180766595565920756855793451670540948314040109021210663000112165480473095703873915239312274834719065899248005305369389610882702921115335354906090710852083103330310077718989521312739868945702491453517437377283746194551471276861656879494636160583142277591888551691034810097377597092098682408170178551776167801430363683471341531493707352277010678325422677379705504218745387269907760705401586991097484081282789624990077082584938593818013846373501136210606262854701133697124633117260354110010192571595444500902518900537787369483225362272145144258537485636971577670782668157478335022659190487434280729024786010096086949065101517313212950436763470707549170360478879259706402107714777556113562773150199256517298646768405958229364184953446237261556817601233561087498562135872668442245473028401307184919614848955811187415441316751369525315838376458531175119393562570802609665476833532584940574051805551531353042760613798159478556667010728233483363783628936554186428729483833286002681832482468655448293518758685910539697153808922467046032125338357183009505211488157652595984877808294492954294776204312268365960091578132152363768561032962876022901822393427992637367893939211484393801694372538684900565837406169113776681141966320031458533629468238514065779040786601909877083868078279866013250526511327319083468597909127668496565128149324130415053974855015037764107042059005402920173563328303156288682318229382485054354660471039246696040704070960925368880333974193070554564274828564524279862962452127862556601563771913491135273984702357661180198786376862365422116413993799937044857686851297143991657452032983936277226444094416039330658199191286620583347261383900156459831885980805223396210842618959835973103848499355247157439395398670523207117063060878077767654264236391893604199486387974810037310846681410195035589985342804010362059155713281451355760818254172485118906611316484793825051542391432131073273397432969608078098554291956461595154064693940461920848686261488621659269781507755203262313279590989525412718167827771635180740010074305715094236308205471283445142392061892415969820982441331186217068554414712891686295846293467112371339382095290279675420927212225870692399766703142940517189222545025245168149121697584271599554123276462972174918571012787746383436360934531088160405256287856789882385243064716958492308295362270770760711002351617698501387187131789709337939988144895037182957087403925738727986676347070146744073048033325327175014926413438731543278133679467909585957131314584183264688703092139338638750745909302550312333197966312708183412650555439199504888623670314424833027509298661722621529577074802454347390865605361437604704173090861250328613283949281260958106539911112247483798761923021221241612383477828969432601172747371588512980173652044197944092961011271440890837369971519090744612219932281502442797041238630228356506313687086220366897714257969024459096611276057433415894981739133275599335966865565913970064071855336596672618186340046268426186156430454884286924706152112673037142553010263005428162652124057793816092321416554777327507876753184634290758004303132430538326757604280146169345836254996483451214253869595449992799926721964137698954191659825723797529999115007988068534452169009339067281105948406477281232905223010613398256504123138721076160040179308803129581456988903879261916163386649702607886383819077121818592905015289282075334225395501256705886909049273955063909097194526694411998311707468887656256180661220797741809401114494906593275371590265462034157727136204998910639105839776045212406871241492846600440203872668378071907830147619395189356034255300627480577865096079197146284513716050887248165797793991311206655371511864587347276528430078484176863385373507296593700010345328585947801235720955679854299029057905190076319388860789779894036623183351945058337391601422918404012398758349988928821313392553598943160055221221933693828528437435105135512250323322793281175063101087736709859371474576599770665848990815821486108334883329407626124845603538750322472212343029179887758312213184710438520785681799902021073129647508132532496410711046629346331002424835204868915502263564925269968663497848918998643598882810958985724931851071624699078668575350984459453781851185378454748788041661322990193046593290217498930374950793622129337880818512603815754284872098461437898463761749673906178542768171620624182832837341657750069012227106513439787025023005497087862837866153775145661144059056099205340693962370174237091123013278567895899365434586268361239460522581196650279283206713985611304929730576456523766515825417655725100284072646524491320731706010928442147968562999877776933724282672761087827129356388069455929335735820671520729682477257175712497997957323750148013069600984835182065373408309348646127512339444912017840294195358751687871661540967333504021168723253767322330581415012350114451089814980388765687516571821514156869806182930788112884164936669048333924358351962905474318131437762027553603410972235029225281251992301270036444873591180223689444498658519360495827163501939647651600878346793195209036744945479776373758553967673947047774062412248582551008634599547575174706790864727256552246144459989521003081435912138864799374996129258608964297580264880511026259438406723628005711996198438621196375918370762351598100718226727827401876010720096886139119673292477015508685571491059735826450514232236518375589564055361396999136601270876295318354069178712405165306823286488475973744886391764047163076643866700715218102467994558441470272712803019587291117420193853258271635129151403699782920647720693075695113243646432579582323349321341448786048748155684992542177472683972975783631656092299525811574652851712908830342542268436961649824120905012521580271499808733072070071341432818193777324608020823019508293270129372446163690518422169161262268286513964486919649242785922102374529543465661398837236307270676985298498522909297791196799821350812474383746096769572097430390117728188933804240698032702102167739472801448812685920170142269519922981991763109649431086312251260832886247202839135502150050887322597022038817372329198981074204264940159087148807378268823488892729554489823906833523796043775479395516758706805254089738434394223100456184147652576834550219433980644936580927677623230159320409064163188764921485452779393823782229999770770252725827043970969346263249179648060622467055674082402935121019819546499199443320925363801907302901165095296178362224747000690116687279745277611100188304274266964636264484798477382370132367220383045460432864297587890538890658465499948983020516655716485907917443473531946094258744450943599480551777035513600704773762887423048438230937619728151968651703060658671979594058784271811360339783109584471828812974827599863853373142851638708680361452908973601406830431773919224386438141276887892137521748062119364850797187119688817662730648959108137165042302379172499359798731082645985343865049017480131315740054476752258349662556038602914443836525951742580987455794538095830658601507840288707885292913416755590933024460709134174962956512228934456184059864145824473292310009776239418913446459163734228302735949464512359136496709390258568399490634260889175755482737402120517037024959449621529182501957839812836520993142520287819766021167163083317893464737355365582028192723868766880106520896658330654103265778944914951406428739004567396021267489870546103846222373200969526783147715648101358909037780141848170130961165579349917058886437009316413818525893495572598211399880024358791093725111046802147061795165693402861695964975686830179743262248194429039324928145650799796230510404699068030112683919185436855274788378428640909041258785466111836280746683677152772486592370611371746482226466673166499602133407807681274608853716563292009054675436283488061886157094058928406127687402573330630492627133058437349427113024381499457150466589984633338236104047860260350467938719531724891629831582485805017615655064471229018921733816261692656346751790392823258119382540962468973615319548383720900382372316455592406311315032207319007058570830213292826703483458613407987359477979584544439138502700630472349487866156939768185794835686456714960846140542819083112817764693801699235741725410545055397987613339905924997264775771696879759499752657096231638488251934425136735439379499165736311973553895906152062510695528495026024256576540144900322648481453751193140794669743707050848970232150150834268481099009645115588734134350086349898214113934684059080778943352252661207039749347677276412359086769102255499181530533042051067299583818578200881975606478560397662621966083704412227464557196653295970030407566293854289963478707938961040703129557289096217883494131938172924844278000979923205194438409706084983186004443614791387147211621566350711832351279184432546469507596462820552062853445232292496966797973209466359699259157337171957301589021404941352813710906734533406813811522061096330377248731251979125370505414770390245200966464245219565094191331576519724606526669558453135240633301680291983410359417081129278914037293222618082962620995202532244219307003167829741053468691073574963845488005063820747244969060380511305325281706252571791526083305755571444848763911867099852068191050630543246058129377174150233800903372031805920159866259737904638233769531706313928119330761904245209467784987354911427695024782777113350998929654486309730695240737191748729811408617209701033652325835860113172152548070665504331538178352037952097838340891718988857105290547694474454611954531374137151205273626748829698450422825572374913004909583499048831194499833276936461507607668653856070890333995419775124885213865682542614171567832933690061940410758356234909368873343679139732014174847714753769676957806636362744263538417792893911591592269128096323302932626292040886024902485470879743539633744830889697423827818458558564094911985381598289961299929496999645063749812127059826965901710152430062775867958907440591738992359086696863649540592504391406518502150474034505165893989793944894765215106059638586741475596075692299971054200836628404011431317718978827107089822732293398611069217959809273380508294965862198580516770142421675406967180961264217365940952841860355474289300164408670103808454023661022816725667947000690425352857549668078494583779457612386874452586519838417419452720218134516372882990491234136870719890648472889457086713705321646190324376557434414199164147390425305959329338754693951395958262671606286832791704932096736596358678681838346462286976929913938857283915129667271939650435207636637129843365930477114672427820552110203337381777717119883116061089516592830585294165325774390881523679657383914984456464462132054385823459283076764987643688435629542520846095550607157899228903621886655619152268603788088556342641364404900674256263973861813622310537693077876282583093052573404381970240576997041950461557826039836585625483295507410297470278343864432246789368180713790248039385219695710446946296939207863940297711960130267027796084856136643596155404812212830180019745757759387560126721779967495648348544356058972113117811434714935937661687003394085315872940659628792239332459673896637506107805783325681815658414328277189886873621833173497752424827911050459473972357434457961577528993698161095050772865726806663592942578671192944866089807034389118274761181549740463314444621823561497973672726437570242928207689629433200586535684532608786803594663003831424739496570096395603372930390973132633889483068558189055929772660109343382317214579872709051029904499253254758492463631497650485036500011763944742207392700752966916082358441587140674675811834549850940460696822140738136110272234892568271632675397753536943828268844644659121064362182858592359777509947284251956027904119785796848334864302440737724077025421822472918405080757758960045684594527390608759942708589425678203495589432901315125652031727962929074713058084908383690197376285972720251634103977455912106383063968058381576465847586854903385423649910496806782583434307822082793655776126261575107904886509337240278339543435349412355856695523535191514762838484500192000715716138507744327801357260398044004103992359521367807157789677858054414908137692476452725885088391617382369192715136153589622749460223570417177551382591080965737999177414938404136049218008897356960286700594061701570896767776152053037139368313768322506364044640060049409185602080661018136334312391120478444703385895595214557516639889896462445277166353524476021962895333575843088526499068961473395205877605346869332845168378868666378909894909178178260212795809975989719000841610301009829818879380342779669968536484113837730176875251501095681557603301168579330119476989946969018170108060111521256264664606625547801760584752188978549336674783014825322447724519641849704820499913635455718745720935240288514026751354857127053989887431502629315167570986288629876927971909145115016738057085758725862238095180259356250157098453246932767115620802434136542187159051644828768985068133618981164809996128468395023155973662643629487400734067863230624314301501515827424556192203896058626944124176631839706422449216716726778565661876706644643299528926319308940890868661698515893718158464453223246734205729614446728623895539760362505233502117517028362734757148978325578678795304096982396131044493383707833987688665149491139317777112405418097984270754836881722712847715466112701772896527260030134180956890282364815784567294175338685473960978337151168709879259831998931186539322990276802352679450394161383314616068016709293697975001166869003441694140829174092951671241918055219496086309291168613001816599474136575786919804121601493545957493745178935476228880230396011020397392168097152892084314197390538141822388681855754643737533330937655743668128762907224466699849925852093656322049483147692431270926732945838307643821539316699831558505359325790879555275533712355826166693138455730485381486318907281520979884916557333217994890367358418651864132969183843947716628420201505116697453731143083007839428523015183916578012871013278216166772483286086284974700027931335918926062207053288702529733797418049351481024432456409384561866319752735372918564649484280195918003476983574924226071232616913690010988082126419887741981134471286611378366932471457175742826664086543670629998378982185596394390998813783919354984546863258833705811682673164833599324084225968765597400660505709554777144289783645042723049482458016222627341224251972796020861295643988304514034711722891861351824521578533971305934839328912056947496625385985800685820873111949123338653685866138594609766399596946133102978337912417749025103321995410935873805582040097012611498350505164849514309216836671978466817462209141747473581013173181626407808850973308746600099230461166818958086392696884588591311304962382257547760043470097762844037671589627836781209571419500201067684527433775275173431796104675065598657573543746733790609173764714819621438760852774041858100949914026190587782870700542644236459372225711818628220027799917354587783243363618646351044186021451831737864471548305023750299457360206220511325806809358458197120872558035254432650739135414003258438675494681689453820901763176729200321708275814794290624532241486073295438083254543679576444571023738854170541018276353163686387806249405960500287256677380176057018326082379827565364926378225464739014982015051161166017332079041937199667994269754209103949509362167946874206830698696438387675326412852165992290567916297019522280497605587302099973288409924631617214089767181730067435687041257312678105179509003352149155070949665501004619874920859237243010314454939692286513708832047621397222122774662405889187201506582048800708867801695713758910760307293528273436240805967130850722168757630000066239760332975687011205214576478966443908510099450704854429762998348489041580846045039372593773783844858440965672844489685568873534691355596045377731927532156889743241320541361992576311819891248568879952643267111395391867769933558375154489501306561090998054233434972938009075740315309046599758092473897846906003158067515473499497398633180664727371925381104168134466820581807889766698548468451941575415429564675469161598830080151428776196469527330959014271076280475302276599887555562223800857431898509391719983151154573188174977425556230554283667894020668750424695127743926564635129440519850575124464340849301119750283277435804472498043423826569975180979156128241353636417855004265661905883948935540392540458767897175279258644642701187789234415861905512886999586778964021366270861170443668506597870450346069816358578095939205615090736862721187398318467215814524698369624620120644018199895992041478943632442611033763024588455980887347898534971227050965431068285909837624805926385322932952968104411756433864054486049837610633262706247659582857791053953655725960416685856585643893180681247829206376484734781839601266244444955427597963076294330734157793164680336780266437259516065834189517917605684746730017463920498050066112259376317271316576028580503525146391536655161438646906890726391640280434398571533759033529235580122874477908137077044291506459310570559051820084351375655286283071503387943815280141505343623210171237739745515963592431627033261942471920369738716955863849185893304954608420061086215948476005968270879943222436480827780486300515535832222398636861397134255011176753230121785990479662188189461099237166174329052521466554816666033497191753101420239674207003042216909189999974855832152541716394763632404972677018121049999592003478171939624997496707378471195031668422627594226115096950804105418758937724636539292245601217643768550014735417254825078994898851313311889134975407876988469112508606230452375739659483383670758916326288644486779154829470440943651875441934852377180725487403995900005024956460929344174911499500252539683125139177348311417257580414650919818264274479588881438257774708323855457560454523109193779667210614681153101560809032976853583436552108304942775137290218882336468025640778382212061310923609329804706756637125311798001829735884826857475370910316847700835814367729474614133689566906303054009580180045276004222976556293757268567958073144189107069850621136436628379172568522623904240081212677177369248440806776830451297226593337451443041837267196517896807062089391838482127540597779162223213225783628607486508314087370892284395648093384959369109145394629200952540811857396445502922438378891288839248590227902295521201538498150804980909724162972488261548869139151237381270814326432348735116707830598808839845513404884280931041848218428861189188894224525909743728248461474717417121975799574357329088613465632390750604039617214271216321262356634418912189134485006439129841540869661870422670394460298149663499108585799848522338216550205926741754829677018619348702381287258831284813213131542514759545486386710152393184421392315457426312929378896986268693133759900768607858802047150800369984399640101397184646699011844147516464346989913189066515875373563600097186853650124267808913382207968160175954104039406262305576985801613463447054346894315278933156024271394231405517413106546517649596637561252728206022131192301087906527446813185685878991928545358933182930889240838559882914985282025205282090036338243630132108489262185626754992189972317524097104974628853385007351096393533498993687593304526278981283858996231012163674219059400067292331312101911502929981057212273929765962953082689239747318747422984979602787111709911555597969843794814279687026327483466229541107742039368746055501330163194957642157281695950497729291507200909232252866844990978202581440830635464155822926775004886661003666964441358687966730678592118909432216109331615671275342532128521164481813863206710413118171434157088979964500941469310870961582072546389217327787762239800404702995772825409662047231050738231988286063343188465463258215061040850857492940784630498733603197289050356571060799713314252217638888633617375573937235101648466041408112892169735205228735509864021670521030395195898118231075543083280769298436947120163634897238274418565613392854599846449355263580441714833682710332913866992701990258798538946040763099504561318288949931815486455524382567651726652657856449281557613674512098801305599867240144898940312662802113932323108475563634717388223686408649994394871616172968422257901140774055630233873024090854741076495222577396095240367579517183603452561151357346563994524149647354650130417657830321284115536753472330427056838801634142880258946398249574631788715300512941633047171376884048045652112109181687111993662788816821456928324002515228043631136404344931721078648468955938025192336487681666653431442447142222572941693332763236189630255703716603660489574705255318244236245372915030500893782265482896530238415608852571696063515815646179409975040164942579051809978203124821821862666081511567376593529230880026642430577204309285632625084155572349427027303249177172046452570910507533450718377452956565875890616667861704226007184284985502491951053757256025033767575738693991777845991722551357671177934058505578236235474698321338201373606741274799900861822042933415772433062811573541189726599143011669140640555598208337851213049329050994166884836660979294043628843468720424047945950326564452276828504831629941596931139936897076139871634061751697614109736415089171204159201816474234651301099741406262832574698955012725561086731420225113336193217653485116783901268317513866427531996795971552381578259169132580598948406959114391542561789663437489727380882587690352643909912599687996953798525006294922388459046787021972210356475645498843260531150004136898020250234642032342139957579692111649184251975023501925143188751011717149642219308114635857468903108184371849513081411561784925089562942777937116320579037256130716685649548154737318712454483136967183552434327562065650328412073584641129889887323946197973243780497691499978170531044469713670940664769961683577825606427122144251558249261249320669657201885437524112460032801521826637943636253199471651520021128013766181751379639282767934868573949827129346401172316560278028627754829989967260373498552144467408106150907011279333126901434369748563493724677178042534971707648827765457375418414777708244795390789964082842440137854731199044397087946443787546473787640662120559612232623088974913469017412596204008094941532526823904769408156082500553603240771041488644899139885866993798014008445615404016272337985330507035785652222864203721034408178241256125355509015843259035659524450302858632545175617215441825616682237994135490949557064296236062946240221494683252856320817332553194342938553946612145996870332262890198151148732946790134184552657211218851563947898518531678263199584720749757679152899185245298123525888115809303364187426051025040367228569805520518616776470867015114562214011199167938493802784194816206615751265588304014581283027104238158153212472481934604482074131218609414060045504214718306352793398544566167201164614982577102461056410981622807948954195556043614031592002098433003675798877825462201077283622576383623527391846961859443806445680335647423352682698677093285663560053957139155485489434072715239745574276387027921564151242379304595726236481881121117481070438287656656581487924454339618022308020493240327884684291583870265564458740615068723128656525343926319391556482065208121830874104871459979862746426908541643048251957245400915426918922755552633943253898291738452258708506961178020625794849269269286843251359268450730973305583572260228890427511805283761966885588270978229984510782258285212607389701697928352874705600213205103648404362392808971013584829025863039424210490872361008537878332444829085620123565047847483373690224851999837673528944653974561495527031930664864518927223781571865107296050162050427875826178577245665131050310060677376093889940996050847694476552991378380780449275490841684812472739689776389695296015643687333981357546054991904281889040690301022958810633903038795513088493626221343505750985280735781369004723329024082620776079265137211614055040248765283037481632761498850159840661945655903064272306831022106821614743499405497694764536870293256084621165867704554029168140153619282650530738242495761266193870858869885396579706183677865549973230223233558128175396590285224570552606689608296262093127895243359449997378703793796723876755347093792155504650592128593181206228416157924531780146099543028464119265030156999095024868369647849713260036133361292956522165151746279301888319848966080040099284215736532553339289167171670345806412906402110773547253746139301511638758988088035934471357085558001650816403166488808156015107269384598325454018132683931813912242331412278818690854203965798892631870967918153091034394380148709003387426536667090757024175551071425635687446515247107946149325873197619273431423932271384066694787617361514735889026870652801070902496493963428829077125785248383317779727436569089578783171006914929933986404866324642143702779356192131464599972227715652581912528743198986578503522933234802600095516577829229532960963435566102258605738302932653325898066370948569203917488572931176553742091545652938831772357276736747065210196330652003218863445023630748845646420669929493497619081857925233281922838303970194434249325973305421080554065585800332216493846370663194496633062537016297485646427399452782642458455432944465064707909058651827359114083059761505130367607117918808704155354751403477555503364039677569916102227819113712483628460846536567744605185361698974408279639172591098653120984210687178433404698872538242816684916980194762748880177661577010501982798250355838229750274211937525185231789737672986461621346063351746027556440300626258667511436853549931884326906840943353027747715982564780474179067553199614785991059995410999552752042900978312937411468625968395811546821071165404257418220385324424159242128097519598592643473253161554028268882590923974169105919331080116073972742574374730232320313859075607889532169877829865889416788112000251274261127187468166415413989319010023457471193774404798186619883368602397323965671148171079248966618761954928001472342972678997840812766672214995346468325315409987744681236426213605844892754894077086390009328341940713664933131724846187529249642003768595068386129854230095415923571249476111248834135435690740990762895155825666024032957890381320183447047197912259434699121457663026364510203239172812282127720161779250388851158039039927815414044615977788974886387954227790736066952478145756067633965120197997286222044944265700826805283319213915524617223385444868217561476255589218648102912896705286549761140710325673521886226436764265724544602505313348219824130406796827214720824997774864352913520407062336754273764863898156225129442176931956747090921863144784604664896360447483001779095929455039322015484417052258783792051382581342778105873983254769637334124819452043394922520051377389063855857507132514023142793193500285227827046044967287072201494614151184359512886191737546806727455827238048652003163501617869733932652701036305837516838921474966478196574614881567494101622054865779600364426694881051044207004662671491544994862952037968902998817307944739887904347247634379646855597000067100872312390653568096335376845218478630765500057850866828400625875590825534636871478937936778182925143193499999041789240744633408510630231083245345952001004718433461838030892231940844808410803992908360994341275364126586522604510400921062261917695184836452513103300489284987668045548307322025712518471189890222087711341436688011997649356944403613549784068856267298473479915195806540750082256070440541400127248003343952523523511579175424998442245367571520930169785962211739592950995868526290990157706501460108518821711065870086589687475187236194833060786868747958769263161294071211237598358919185630816138106532201871874636420024902182372422306493748957796701918873330621655887800571293814764168915831952159083542725514572016145251225155599635104897923041240427210921269725782771654830844206180739727176360831455239090277038547427764664683263579268219830663508695241193888428073723074121343892482125952146959639692969888417378498345565928920191559177029787540750664396994833012921657406048597020728935088102188967000236886295548011353407084436092379623852984143590690506282190673643455228946757335860040283030168714594599180633110765549087356583729209334509338274508382777359935290870189091751423696094102824984055587630310103967922455377225736372412888057722099884681315681896140842940900338706142095765261294823135405065497934620268312562610545773499942736276995074745719433520129347223950414628946398092261968393551442709836878545007399448657407860324107966606203234256902444743250600303413316477610459940795667990623606718130218187055232363493279532888987784786798035290165440001815003310270583405652019435065319864731682629895547736833311557194960470821090136839962713629827137062735398274300439146077468762094732893409707480816199519541422258459595978165868284002853651911383733523559930158559745993748473191054173050179476593484136316635843299571019418081792367784542066793203054638661313485619604039652918776589346981063944807408002209029636895990974019892513519206615068058368448803448021862302414157262578275461335066918415261527998018696067259063669555247751150093680046175740215437223961171042884914645353784834348982197175750171801369136601334560424246331886632408233633325622256793627389082547700290798658480651734202789785431982416322966059275524921141855196998657646227193292971037208288602063953713856083244129710501141258666438754672372775290990445322781352036280887655233209902889612883849827036342720892777530458180137379835899791906082303743483440383152390705400776169220487370594825144348889827244056328400946230465085479524036290210211932320565391752132540666755327109645011320664573388127808499651613669130564112941832808958142552872256424710304061016714037109394700955363098578710909536691760051804220739260908378217448653907100608476100155742237178158799967807964211048885988681055109779729374040714868824655048593435655947698922645689750864803970660229339666338375516670579509073418106107861705417267283286418531810240591881689153531590312849112085649383742385719212225220567115548463319511412466534138471725104796290061556110643603912441331251810704607708656171011474108715135487486889057276055338245949938339639216643996845222480523961826504666227033715442971762803947564263052962897585195219827672287168984723923292023521943775132958389127904730193174123787367884397186128142153549777163806995997145997246374381589395352797877887102776141855235885867225727723680399700781436172533409878672992518851477630133218847160015996794358774691319045878331303647341530385802874924466870481496477164976191191985564478480821239727903984471850058464829476693391002714232405808012868037064038340117962239880534913229381978355991059957287480846413584436461537450648695948575595251789484033964653059714834156591492101950910918923116836466721972996144883787830266591647160997067213951015306628753609568371875997691683678061267517607204919248991088464327030224794134611301189163549514784832301247037739008927641087197734989122145405308376563352929044396282771857764362646059019310424069631942954151612787264625171486842354598465005116652449140042749684901903122054380947157840784425875611287204100760829702711291217752181097589893777510254585755107480467593644551740514857029972654362328182050496625758690849460190364509735927755693183736465090590031685291083088219124661754239275523289011564096571244383515384427639562021277986354890909328738392436270846247408207453802765450201566492353825298258798516769603073718693346563595303951622289207554204082025744411396432877797107272649113948699288318028089163979842617733228143724782596770198418897720468720382166159713415673216042547589163182367796155603883340671284956926762964848394195504720867782927878703312370475948916996781617370140464123746760497599423723146815532575100136346433816048337873256016086765844691771470323673866675516849377369563680748795091763100696841353183501172264872061872017345337841851701980649668431831248775315776289557897783745599240285862627077511977367811117965024577412694565814079221695848860137651587368213655717483671325944600143537094699770140536879046406876673446892855669337000283265522404431844754355841336194698251462627493916778243882243321116436886743384584280685757002002672305298627114204351779287352349606414962357231212114054016758950015339928393525385952656266882140078362586187029499040184235764637545976432396921086514660976347763929095177555499039443766412548692412448474920700131899770805149056882485155992787258738427590069897676334164463642867557031959037335269160944956656223087207640071427662550606297441754513096389048914981657940691812637514432005344358753992785744563543082770641589313876265092943506465139965363143417042553772472661420435092963402786122774091408756160888863590280709799375178795935544870372330590129875239408712045859003839970622876294114155312990569219938361808225914048544081011323479192169640829458856132251007977232561591014106615978117847855741743473407605092846832840167525186845418237142387928329544970040180893023032829377993962430281313701045328440751556460978496887236002918153172004485497961966995089619517712439315328206900526815502883528186690586729006187230813972243361726629799331940220792396404697772908179114130263137657543812602897587062754779008985314954501966856596253057471583083156650271397837523625358106116109591560717010191357780215633358185812610783475752173930188320250315096190872029254859385754300590144785959640381981329704612994737382680005986311489216542853239700781974179731168246514730614375061344158422218030757450067675884649706393828600228276438758459690342583337879215818497082313048587642727753242071816608806784324166641565598872427242472102058606503727110546421232175484982915651366132107738487878332268186387288947016275730264994233407238676248772427089830011050006335300135505564681428316002082045475495967020986175948891442677212155362590717119914327518541786266993942397503686256985042699013083498814348626798855907659701914095121453594037408721837771104495624296862301436370245227057749685746158269976077562615273817902890651274610085927484661612677377520835270956518084358706704610240409272488744589506845006187817016599504944603432167143218416706150042961637649079160879056803312464625707233687305932459773107447588509759270231377417798068478598498112232503606915992777986942698708853735642977027756972637012224189588821028345974429700935932080643720693019663492524722698661927694045454626211787013427956648233288112822356201419999596009456464007756921196345766602616350108328271618414502329121422421471066820347583455052682415073784163292316791978504551498057328818949566937123789185685949021342379654870535637550359369276648641403462035445175485899787901404245447089323593798006084529331579763274389408693634147222439030966177244330370744467053019492566628276905674685842244059370356401954166272785451455501200528932361421128374766047589620783632734377878364544510642094200995061448364301985423068235553493097585150877294251659256503762309255548222825329735679597651244612700837193808907430817671958814291595755828549176351162611415426778390761216150808176155827604630548225930714462485881508739896447722483422983996338615105865733745120013037394993803084565426515512175866521046742550068034177439239104759018423645484764201599032571183577809527007510738755020543709393212323345849949640483052865280397205973363031871365896518828336755213232074524419056357840130601071816785567425588047680611311608018725163440923125368318320027312102023791298634304169710413031625266843447833909461602122148106474508036195809091884609811423268162153237577895257616144285855366875506613714185263029205767888358839320001647581787018988942957981557797191391710998260246594748362361569037497438710666129774387152862500351602968697087299607842489991809801164516834599234429950512438120831154935817528892394703015239215988488243520870843605025697312794755026108247017510146211435769419001276932607113599134046776108717039770865468242327755550247106801100297222046145405515118264364307523386157881039174116144421549161617415770196558448699777077619627782658970581249360716099409433189518773593909327933499664337424799054639400163731112447474731643466149890991212787784002826875365357154249109406315917042153962317537444444701508781800581593775419641366183179760885668741184856233328061349251360151549272000420681197521953881486259273044551677324339774544437435267511320238786980650270881389625700792498767712917827211591447625937153374855573900690411083397893655068395453548249474569866744277545214321321836143073447060102069753485706606878998364451768564060710148125025915191212783180260750629544595170787002062469953664251303309428418677538292312813423940652746487126193983436803501662209356917042844180851680432600513260548854161765621131231777179565725970695184456173775697935925719100339613524605716412254961407239591716155079534736935936017853732224431637218773124279843058438882985392647127542639166878472420168726961025002018938052632258588007418004813365828212639961915541877505780766695301153243897484606011862923682530575106426738039067978037284162205741138051366509748717068268987359567022149183823734686063516677566615320384453780244134697238777052317107128759971923203269950417437851982934794042558973122934747209362028133902451371138354023769140032830957934858134672634034582109396341181869368149454666803490349097765329735685675950649859671404442266349572216972196649509069107742123311358072163810533284767522586640282006727844548174314619768911646160144667182196224722367758540610086614830374955364985943650304365985844400545153900014752450745733980543814950590588385245098710600784307412124710913964384638739118611323557463174120695981570899211233937313565449384423823851592728644345555392076072590415770336201922834307707797716305599311925745233178024709887323765448720070835986337771976288832509338831013905979196109123181298037656020844694107682421394266340401998621384196122640029697580876126656947388625495428924623038104951070693334852424969345050977047799207943307488515599322093114499059062251800304216930037663110160937560694859298588357451470806135474974459218293125559086000013216269915282457758107232185620904018055474470867542733916837885624410315305664434637585527321633157956465451412550234434092807659210137197122632289096631756469743063567191174681418207572799837004834307840199173221603956975474474791053837743513308366834082206316060265726583675000079098600198105044333475764637105963695781296685639170302765886473994602057879546725956787658587180361818996130322942277057945613031891508508316575022641245073236028190591494037553186102051323258380617976185325887178808247651720837299985953199033770520764072592792617417948031161940276917725478259403383632251771306424667061990286451601036017245617424405406300365540573202634936893565016593578081140462975969641542608102557682034349738787536926385075629491891238562332487296890526606027343889913408086186591735751233239655281116893594848617145841034851619882424455854165619172350001959593482987579381323555906214330354198955835406140670937141606645145076562242769476552993492401241361207334984221800552266174928648064480301766475391990683965342990334662212438462942819906968050429035062527109975401696080881241152170521054465688916863925557375793177615314010066974303175196003975155985598217522266482524460601197047896419129954530682337595185285076769810494289343230883924254154277479143951737183924343296925763800282954415079725492427932881942623170170559749211410595821022153895335065130305409025204408013587812031675551479072996909561346114534722830661429064892570452621902778648118083224124922106232069548496995852817769227207861685735234719727506273599277135071313824831500355309570389289535008071565974752964338067615694733819871140440648528265840490693132954772974700694151699257814749645995935559442482361170244426743706661596755562775798133577637948397319057344951828844741412447800539981498822137305368876312032615481117993485470896391520310684886408956596313238978311840189305747663127321821127915379771622291630386404532802271022170201296429055495728228653899664468052820623436168675210123381746094108219407274830379197846253734731876809152380306907546608265952221049156809664732433427118174308449297157227296649117374869238747584455432440617932553085306292150756693617308178153735080818773595022039299650404230858182762700251863271676374828353834617506846902231894759101343908515250325330107029262130368590740595601941275507417334840754321082228937542567211131895428541750324150480225134351421960446364480219428190335006010289273314251367006460823004348351787591163244122864095275655903453098143502823509328846519446427115388215177371529928093578550048788939103127382633989644553734339092738778575048711775841616363800780690402377353413080124033278540210110325988897136535229090837674117435578005627841901470971080704110556065047895533705337161683341776341420751609818906765404407026292913746108157952442040009993663890023814925244205696728033689797878499109605488654617888770719192659665488507518091520567422115023811465018057734769010413190213784632521946691619330008253708613320032469813286872915872892941025931710118979354314885466163596539278021571220643583169912529646493986042688057564473020439278204571504202026480726510391751419475317762501937570228274969796169631273409253207908786891317889281825902274290900053692184759076207869443813585866957631840908503569108541648175731776997489519341505195504875402076398179502119207178836968359441710832144676514540194174039454505856295015081167091077931201181570783493911994168396196528356725605022296660731829108955021860396119659778333939949083766736992019879822648031236978459809398493769503537349993564802531017379518556076488213198527321889601741527448954506216939330253422053545935923663984282169593079860227895631537032916222506997543381181201726766019726030886143611815571623971644850789143452082283267150077022019003839565383020139385757982036118781641501221324720952466905974144937590285457571230321777000257133802680449682479666394139492858182876140605199810337752555028442359064158248987746985168591044819839773281859114159229607821990239593309360030750872271412436989467794990219573737041769928504627630341718666953374488442600323198264257240765293427294729168842839469746655329939137283753577380128278820875595247052635449841316937780325300137410278243971968114551441316701950869012731567246091802034861349173275614298840386118617726879825832288646211058572793452418382110669929423581025051261515866569708261755879497924488760718466608662038605432858863171330669399194969479540462186121706225343657859206093730739652010992320723908165495899019033002968950461902318805195363381953661131572126442251121288422941478577441939411277391107814018644492176716106537111226827237307452727305488894763821749943001977237748894099958077712094143306083870550433664562264044730245425772575210367720820026878576263520585820386772046847940542706492384103846440101019873508001019114893667967878872359634177959288561149406581879778194729462669176552668756818325975585972069431620386443610015965320687576253652386802998402579119191507681997732428249655580968237336271597989144949693248152447136194537387841390059367759443815487159025626609149636066480078777288714498036019337119051555007321490127054112775264667782064540402613679854620283067597072355920203525938859231868732895335216323123449483986497407741833875577410208532618619010799434072005544284220121698371411065033610931474460113670313924810899838772938309917285489663078339117366341689379323924569114552815383249972852851626230418407287249439306465079492983246197829314144237483709789770775731151332736749431691638080586052239023577685918817280466027674423575764087963885401522583619698777909151136238034381825853013132283539590878029303291423836952540055500146454794987173329664715141440527880457845720882645517733689315452098870216113720058015003636182731803544591110112030219659033501726947409023593359406039245928566192049872444855407815608852066180773124540002886621457600861167220019912045760475468601197141944871509249946568019319906924215746762844868357912236056282918768121498907635219339384031834292915094353541200547125913747603871686764317486950935202911589011365119689159511164399670167016844244029585708129787045110029023462480081257452976014601574353987574287371752109978435021398218093102185330852345965539895397437804125136935347132577038651327698527497640269336927571962334559792387498020080389333748546875404318479775484147103917121470644311903885825136910509641874376887417688809414185341090449709326213865281878864890958007112900655633772493361975251820698199939531923296633558981762479235246923183073981317549882523562563843973612362607160570659939961694096059758312253455095549585735289381969308163447271185954375872518491191121876531178628760510040395370379157584080439844942561914994403908549456907966406479497717705047391072981774029478114001240371215875097495079837154399992349292533085887571698339515256310218794313792387590508434045374779425698922282808272117010190866888879819207392798984767699141286331357105129325931814207326144059974556261828480711331710928100956808776074646697949631637351202785430281745191338137052066808169714243588333961780524689625944833040576129954065715122376909464165529763219907831666155480928039467108637855084724436291693285445248344638430862471436962822644156341193673771555034709164058837099956238320468950207046224733408675935047360206968621757890192412294137208546672409165515248773343852311643951162319765851884091256040925663945206030712720056639910930734140307401106914998834841447409820600644563903450528311436542078961297238551648480956932839271545882315055857421569330585895702995457975752509624539265600031643107942050411840823987851275428087377014285437094278434894548142517511340639975532174542010348777883110633632869763824063209945838953691938009138273070862160461696840084466929062555036639253584517257868168970176656404568659544109374607746486799816140501808497600522907358938222992059002461722239476656098977676036401078646082990041373657856448825059805699651697017103386841667807264092522296456313003975264442345499374352040796994987633390123652614954262587479860970158938801008272664474314510268911546047558854831356028155131468075060308762173170986173467948113563467587291654304133655394682509831839266020657121572193052980668115222319125295321944426845485360775808248433440349039033055612592270934712731817840099051118297880369518286502692435836351200391523304129183662145853339773823740564131192140863370351619241462924098059575762302585391796355089414215572506406199421828039852432426162284949660810743290619440878410037177574158297787661800840590023189720149959614046762845493716991340737750612965534358151214500694384898836034560625214083103243427286642437682561356110084394883439376968679508037329869603185099494584206176122211466812668745471062063114609369980706743675975296511944055625470857861552850245840184943171129261749819633026661299344973349845887319465711474123533119757150484966770861935465473118601872918524549666095177648063579221311213067469313318163758381304837887660735603168005097238836770856883396646267952032111343553796073377276484388507792477596107560316736360710412565118397683121486273037300532364259599668373092149116180038035324465246330469061055177145357372664803275182412944984222865388215417938436070935484162393657692742707349401575503170857266029585774169208385031225285476419646003894688202271286631538218311133859949286763428720381430817389987568226867570036004066173649295661047684693695662665402498296984274651018191727085901959984089491941374702929705427257909020760726191403909972367622506016798447377697547039193305699769030254783383162993829702279235969705727064601818464762882433995450106272735816901543695687120005034522778013671753116075412929584811372917428542455794317595463424867106191325340300534743351396301819245472313315413719366244812996800504133723743430128005904175414443944153394453463667067007574629932047598693881545991554815860010428231386898212581259675776546105708069210293915052788806677756209182350370499936361038241951177792230240877272790834532384638211242425616903480475773654199502702444689165445253544543234317935512650833664922203184657853859290002368146255325386916358891415681511712120571376734779330847134050996596218024089717570426561497053471068943181089089007646792283810986417132635023304420347958961574831058961924479188059143479225666726292594130859175786071407873738964237960861547126661585891810868149478660808570761475451341807309492269762007235498341397660105346922951121767917760159393103887190719007449658110230931928126623380965519782580159215617891273664294398068385911502524487471864804983821007478935779803576798536617664975709654494252712505197541377683323077946422952312326458329413129041962516262640755303885296675753212992346401101964459882016086811604268789193521032444394627976896022930266526210114590246164724852993316783628545168157731967188900747605462963267068059424123188897408380571830025548103644241503206136238507454250877261328416123063063422674647946919804261193660103121678516746124358441384678754095218224339656954359419530694824540317158587290289139191996257329414209349040648645010216830842823675058011139197545432006872971123100197284420765560079362606095654731412368876726631315785769178175655606466638511662055552308488829028216691418009450160971633248120884295697804517653348599477134593451977894673001403141356556899882884950954136909047066286169835282083154181441005268807440526031799783265270766972859056382844265873461156549570316512491748649471987649308937379539484206418128210485316548591640684576578142495318325635059959434960687326736438526707310927792784885813423468637940070324528975211259333882551237973433028586961224546534675168653601116792872498711405613111089746173765332621784928285584401186712832130659762430638702128769635842253588769698689769720013602354749199964751207966410209889932778688430621071892808211162156301859721371436363299440900462310378412582414594706485581679235350729831331938184204455909926512745534833086282256159550960645373742586120372646435310667354049844295989320795425219158349219649428567484302021348345323435935317522435375154963094713566594626626274060151447182397475787535648034261550819693774588279545331690904620839153057046832027616444044924523335221687499749015530653858348438838149869999940990987227621742161799412855034266775995566484326278640092161152140666051021534207873118440667974754599446815638724621907020959881394808111005520527733347310910586193474472678698517871572663449515698228927389373252512454079730168542348602579142880673275400966432065961770594050761171116383011062637537187510821379558798543888679838083560030498456710014241508050224123805469838334562646130485117553805342173528412593938233494934588974961340994324147281624952541654762918035788497406866131395238443744796897327764528204491297272770073853670035667444915012896484498934935879248292743752601814432005563011696862224492011459261204438550827028441995425842657692698269512080652389001762525764918504022313912461610826020127010040957514697900622952436169854759974515469066503984543908108916237387969195010998589366590522682438005681090208516393835489816274404636152089149119538882046395709419229433486059728119348659756959838925286681204539911901655709471725405154090699298888561853731792457363387374761378051352535129520817574554610562906463496994873961625761261613810530063493143972372729010512094547070843175649603838056406628388669302374741323468275282138940697959220896702183139350144845897702430519113598485448794768136796763332795601713123291689667588840923708078526467393383695677059935293134761469159500931525020229950255863483731929640524310951954575277922791360322595239714610477233482722306276900941568073198702017447069657653524639628621634145511830269517584467742832272615789691219401061139132166944099038608606802975760778474640558613091311375109089826992729290710645750636732817592180752824989875947128594140952068234394881905570758159731934772791290483428389708113596614456142707422664602733204844843331141244449518509556133937221105101867176957898854150257619340096201696076252307928199638164748200583217616321087479397538753584972661673813208712170546561622768771323169388397379595822181249786544998114137656784534359194244892852352822655124566677328772598536817169336767265826521220923771735566416610668826108333955050314193865517797260305924554220789889781095207860920416569792898525883448930023684838769831739637195083257176431598604910495027837304640747470507129383190269056182697947163681195824047013672472823538928469213027949307284690544463049064916885651316889620715731207646134650620277586669685878046637510192154713140977354842301647304226512743401942947910276379295846419434193868112262712059117644606377942840512702132596659746999174535428640485598832891509390728713920565895947619907192288527908641521495932282832589489148225733865533433789405263670771164189447643787599815380168045301897300595799892471529653478850521244986861504641223073733892116306271458213116778153414887623670887947209524017664752707975044084390431722875818536014701286606224481896670354860176267860847355636418341024486915927371528435948070958815749969177032217138075067738145924640898847867779700992283380935753882352265826385906179298691439066254188372876211074118864950388329284697071586469348602410032363839616517584543023698835198669746364564737810235176737944326116186286381881016001470395303944252022949214606098412424508685483954275799862633983958297018516519434133366309476916302058381626963222092567649531993292133685515750033316278565853043960612570805545458446555792382338487154934804452813286097708443274456528504742366215646730266377354955418316365847600787108789633773761668725198707472682837048565102320910738380607011493697846463375332922180097423748763556728713069393473244996688994648121537527122225736960805409707903143924571714437165906337862585834370402377940689518736718346624395991832016981602969951985303608377905162798989251221694860006185666751183174279194252799875513055657410424383708749380761176656086009672970370523067283645344147712964115319108897062591717268040342633241722918524123712008070846617204542950929130254567085882033286121733877582888101365680922999633191951714659362246620748889373984409587159517868538835048265051800869851601190269242516999436286554431011711831509333107312285042681162384387464881924703519108921901931934356086011678743221905690555691706934417572328272840257563467460763688180100763798955316029141719212873244238671157944968746658413997801372301277836106372749822461707835599193797726218629342319123228751729279756825096315911389141434880993693585056002010868118533135597562828969020470849111811347683782194151677294530522901564998272685687096870245237720686541498372367021962324201475779967312226908949994427976091551977948659763931230933465599765957695713030228247158190889826687527570661565421529786459378920013368193936343803494293981738197747621691522922450592983029884808880676830036185205307192929971998905727449777337761535194564556230336344348045656259723665533964854771089988339538526505114271048596170066573448593087792453208547579625698497115521070230648236001186509282935143424348128982290125228561485697829155201403189011338204154218441193840393429157426660357817480078905871445734512864017800087954959767507657364521993879988049103503129100898000703744325594501492372452724262717730193997851382938895318966940903265630511564836212066741057546788624565258733380602694907742439304866441624759650842089757486571816719325116308261780803922308992739867069405173400467543446804967111106974717738624591989598419519035396645604098506525481243206349852298174756389623068013590068860591278122666357109628641668534664397273698847518126236881545427207837406688938417145910006362793029940272298059568376097981230185812739076171922819773804338297951206670170758888889149243601983014988378590678836277987383384809140096263126170056891973993377461649869830167580556120676062123017546358019259097789480487805018640827235421826430972710823727288338429376383983963097903393087307483556256360041700232703471896954692667036656096260235679943554145443524688661792568221676799814436621048920318998321585545828257801598091021087565997006630737686134611375388198090527251152109727207223088484708248488583858497912122986785610334036501908023945785998571825868029460331449559511664061821310235441865186126035931364740945491259597443998956264704673609402740469373502871482577022867969448539578957454230390663551596958292126547620201677183927717357967005953678865358920617518123923431009022746514475325779074169894326688020670354320989568541632931406206965851606470695159999070377582458510505459585852314720395101754101497598690654033150815033094456869636281258138748881723033872412881717392035820739629222409964238510659225602243132923124014280039925723230278497646514376286474488542845779657337344288196457914142783958189336162889711901358608761463063909378492806123176126268921154039680593446343026587179667807523377691096025408013419057881716740601842523325635812443989751251423281505713731834069862054682185500507400850837780383708263279785725711254125877485621676842353144210775986354370581676309879341155461503988630270904924137593839731627047360780033078058679516674063095502523030389638264074550906909174615642956052228651743049186913932555961743446643246606519635564916777897178878054213912751650112675345088475972242226435853003748814037017906776105898892197712084352109574067391100889553459747082321807133649719473040980614498482555205472899519221169780090015011590042887644334866072755940251863116036123237464629970397625865959185356654754970223555999098983294023132112171610577212718586749594220939301959509244531354244104370309545758083514657528781540078107306425990736548481233853035459561707247743892929993691973439291763793062094766524332705754014161010714867105486064355091635675734858694254094566155955177415154645738326899175000604956054717750487543576291944328636792136401947758500377346508766918354512605207839058636243314939756322735548954857087660799939261140916155153772081648076353940026992430271155781885744974966949043024309900678118855615972113051476570844205670342061471711682550312580763276918196978564800907429130468141378326871868071463497376672868799612950754440351209888866715967144689755551208134533224927680036385777959445418586075017095694392631065977471543954544686421648641639856705745869782881431535095494564232182847602280818481976452910688262463978517822918847706589798299662305844613073999816168223408382553659672553233361226687356900731682878663857325711138282824276427498097579824428484571224293810480070814324742626647917382328808159669660796870356272774590683408031669369655146134694849775378560693546940436257505548781922089324219478573838870342512901216923082836888138098857353012478721348386753373357243067285131083675086216668483366765638584286249062923481933361467479852592979982528537597086792200127341292488500745704785416044456428673230222626939671869578289070178803465777414117391933463746498025468915914977875130489335485781887365388100189865153319496029112426185072485101904305147582777126851927927116144981078085961802012534337290684229734751183274496756335184898915248501807453004829349315865007748237757365752612271337987831522699242016878719015693208304823471110265131299551903048047733754085398193253237170138244426650430570216040837093251204345782518736053676309750616848421391096259309999405133439006651300065598911954459372468539790083370518590749398508041263182451083174080302081387029179153712445946754527144713223363329661761102108538436654665755465958297754099611161947123537862965698006719734107522128591036097540035111635856110061532307530215134864641147431771238791225282890993355793912744394924850807039510855020083999837403715164580596879389137660825339088269931541866262551040531935348826381016885294958239315234150206467784837247531369655381330708232275795521310219030201425959172600298143315494355796532596358917608682980310861301775750764657282131712949122914036382446133050491846296239870289726703818744659841930569121664801882322592872907179980065819092829443805320321235092564689911284806713622189544959411924085472617580564659427428108410202691542059123007789680327855989489069976770707471346963075979733423626551437046150194033908167275276421412351420157505129333073616320829963543574245995088585445739568439263644090828695558324886817873884296577134480742901825229044918821878840538396420290406454309679501009627940243458588397214007706468121519184028134255830016629327127597034222354851465722020636831780831681696281023238160439667892695038048205995393084069173346706018909969499972441285557496719348880280430514172624686807558530377606770647017064381660088388046410207332675301591198203322906158466699625760763667888904998091571303110393438370594846714968587408444832440036514405033441002540277197893238827808916286188327024503839432905384801983971906531977899505301041387729029079650764371818994807688745179628338891112755476342158101958764321398398182861084095345660716602403383189775905835910241695611862291495634652900255989813917488710278485269550143905706455877900606572885635644388241793359161565968209343046989952413131118424056258080327833408486891216831294034549762513528242266050173178181183444858918758325508500998154121390449828387054472427631681736884018082883433647669881997876168629600775792428703323930848254673384897603605989289471541814787143834291022445422710802584138289693716494717390180380814141619236070025690917753951719551631040592065479012129960913240172739563335975560640441146965619291852729283406638641127374171682360108339427004741168269584834463122759290247311508731509320536025180827981531548110945462272314582284591057574591381699628938398717121592279387143935748911288561136270988268961580394829551154140497851239558322269143270278512726659216938122143171270754416504586987045851885283303762058595601328369620188994125623104264196812139479263539719693870332779232857699261311501086017348483912506175187492534684677624125627383152479303763875732311524622788110931154181778892715031048146110291075990709395270401902850357174626459609315996882877333314676270179920228094754254543541341448130232123886176487399557434726831639043498790959477653915156083432942368046313204686378823095947411313531008517491592125333935443007153492815379968807575092899892527567785923322993395982717601580675130390088179414763346799482077645493506656993355972138068012901527364251338378754491761750950814852105255550989668846397369350618694603655300471980536682900032480764091731293296821945890757136442359785953491677644089387511055401884550026249237995341828165273336305659490898229650000296282316894753404701395618369893245564152688603881190924025805998193531517022629521971623113473183830373384635389997514923557583678303758907737215628864592425703353859122563850326441398302376771036768970365382801232207627705593923936499693489165277011527917635818414077270609368760112620127868178355104768759898312664603511959819265233023594079663083656771216221136791353395845419308190333779910599295271527219101494432628927113063236219733782983962679157082887212624055871007922303424382436497908000710259439433762876132864952863158697522989529764559584145283724857221864389765653010363013633366492556202963598982158734439050043416884229815725575443292443819397057052690894190085065337301140830817276117889066682740544627708692607021627551008580447714737622948000873196210406882058268195868514138821984678185466078435522240800697817635030939085217814680085165704989217744317509823245609580520227604713166674990101195414529393128292235340840036101407284600450709665362850865165600984681747745876479522377552308792316266492313790525607624158742421130398332070088513755637575344760548243428114037031991766574703196420399929929807400193542907582522301592282968823234352527146916270189794560018086894764994282115140656035714152536356252118683341037430136835072912802653120831750670600918178646696675234314236795387303428650532448036124574332725989751233365703231920819644930009296050563350786050298777592035978850338203004809688284573754971070000293909880843831563294473369407042056309819882686907460202548447908003751339376969016944263811860667331523227534706639246437331822393493156151912604169661003239935544863064964842846358791303849636622507337607420649733479047268018506885246620226505820474146331192734616434158191427465114310589136473689840492214670783052103023900914428002602362929117210838574128765629446188863047639597146361296933956269830908473983054050464864705987265796452513642361534975641576914428042630062380112907461264972912878002470120958891626273700394269716347506015530108743287551695231622014623329858532415801762233341719436853045121511014724117715540196413264398313872940614613348764811002934869819476629553483423568537285661906632889266880394513014299711474267819639264485235604092830304409817455110515050173498306388635428251076489248736232603561337690470121704542210113471369058354044316017300731126807345371715568744923794111910098765028064077061963579170414951212788528906423463442056309180524958014327694235448350016195398098016266875033393002459601495854394137945998402054185157161982499503693365188852170988660861154866035549234109934554102524292347154599683191083811663505134351227167851604370090173288357309868106764925588790100923793701337295367599221499980936458310607643436495396910973261253912631693560366078016420230007241036430299656949068774116608638429078542783938169864779759598073512346155614323462452035638991664588551098566205979886333199698325225044761067560960983898020580920114299118947438172268560648317986956844143102125612613065828647762772427136887730778444792279406239495698631949152808533569147291631605153819436891228278689972794023614009542468452597684385346582950846886573705430639554457032928547286710877464822970459064494311996772699137502606082203020100802507268203483192705804933468549471806949776729427887099992474614488971638589533168057611849533639809271693147307136334414176830856023751716982583191117297650409081591699368294547164462809680517745489326704580659237271432422277038448189319067159531419873787304807104508165115406271989631271381058248885929917939005391713210990058911411240582017912156103221893440234655930179349474443044445022723016936482597540680986603084000354212546405590350557898599500788427601888577688569956559935625908346805458679065098825363374857947636845353764085871543986696823162708349672271095251913086020423686369271449271330984039768429291073585423135412621094239819553173220149264827108030004350822003645766341890599769789666487577967747521508537204264649048252404455542708568972933475452187599509075046059466072794798768756717047873228839317169850314301167045893450628548941917214444498916646760422674525243189987827516109281205006202859053557445782222200265838315487919479406732056091183960998283743370756853496173336988372404671023186216075663359835094546251853918663559308073158571709389985451280097314226203750243552502702058062800160854938063411402863825805184308103344044678440972822777772305678431794062355926750529470083180087509502588037788846023133614699234011905119887088152203307160930271025591644175902124243076434704075393636025657840891923777542740419600908629079784709122075171848224241939722450575264347142226159585088761050890180028833771067332308237797620240879221337546011344500711981417356648218074566334096443825329436494936174252193789602573336067490462167964717337588352513189529115258329688149436962283630932787624511339529992956991138588329505587462328678915733907266706398126381330514613876686857633881599784390562146547332595410061448121483986276491890846133916542281523112641877393712536491126413299211838028906359817739204971417987895306874283565900336034046958915540113729078412797509725261649893403169939392466264576028363991241189018838073237059561327349358939036698363713637616973502625002261579402161783400972327015047062353653143935887155336319434572511440187832365645441777911071771050251102772736895297956853335773855004074754553139460738921091222668418149466259732612937414384083610202660662183804525851461551322566556931170334459715635863495481948180593960384281309446123130387199814784280903831222213997598675919643215667683906301737741301717612194102447880271065283862620718402923652516623878182206772658359298077185264067317014576496086342849515436128648901268235168635019412199656516814547995903170277755787232633192647662685291108021723241756643263051277822443932706200918848222698355610696142408889686128301505473887277212727336465292684817818270013834740317060721892934653746769835455848698245764401312325010200734728409718707307769136871113113627506901589121766007735097295110196627612915762184099971473889568600861715978172869087470888542750803959697361471879266860082718885943524602388917570253875421126047713309065156253214302737174424043853998512338686475895560974879946092640997301346228187453721007923941896504689175404453936049556965170314889807453948300779782333004372777441619850904490602367573849372438067567368993599354597859284003901230456907659306343039731804736213817040232227334011020689236755126538010162923602661799900224125148593981636571753683879446802554540997302539263148279214622056236574411541230754095471592282631880883010830554766418362181232819884038837842386577876747841213188402462375533150618392405886865436144440906173715979074024281500401072255379207743373663958123430708035951607027469161108994898961160752392786980993195052638692185138564858553584975842003997284695339326291329321376811292129513817959315596321435031675367532621244711144525836502831380092521627275974808101422120228567513481152067506271327338178743237889630396851600199374783774436384761682938674512463572590328873030520513336128178880502611701200838154246805543518461741103809033340195803850658111243607655606622647304561500609230680567195645677403124491380403235670434192540554697152879765969887186450188340053980170665801416542406340787883617639209504658242617559952521931844359903746595538149826591679659989653396415165063003977949986849370698259495462667892045667112624872240538111421377174210705000756717875154796634082015387715568635960218534474533785141226179156547565128791957973264743200622478173394390510227413556550853216324287840901314304165784011396141269305561079633326422737477030931416457624298074605396279547691839200035686942738055850884729061645715005741164907722949969718191046265091136397899298084589681016538524847166081641114852615328146036810682321301482076459702074585415046010180718045389959716118479910307934581749467533322056794827564677462771228196191336959318941190746238283054227787342039480377570093024979313488201575872699943762814017412862002672197047153361912943955241195174147705783794372299399911308389112524580444223874830757073208309591977904288375866028239652236825257334799966836396673461914470670837217385076254429556239107673561681314206317368462153035338559111309868871679748207175086959725550661685014893611252904404613838339499592636204359146268775218801716433893695661169086786092640268212184785611165165987749523006502715742131143508531930438958223035710083602038137020856557856170869395421548437145582269270121383988573016220267009430881881149784848883900593419462316682546664158227448540772219666343353447121990657195385470734409819333783702270557073760480805178207422159501981768421541774242408937722899963885333623224306109908262599563357061420396041812235054752992950591239705257793092961573774313385407302117078257107451697390548077671713224770426234910534913347717941895983598902399963808708854840284554853362447959181030193326411994042752796285145074146816720011734981637664913683666954564779393253588409235540722929042848271945358686891758254136987452231771299650012212715807475835331456140732249398130378458595070128455125677868499429630665364685942482837971898720697145503490068502045953276238161133610436690818091596910536679631156711815869196515751863095151681345976553654226605862247725099099693895878675306958674335757553948203733392513924826527301036597524760500766600672482229874927000942456463591056103546832267504934593275731834767882369384836762032282359027857740952051800313933822807581836342655505824521949720356025295485567319190332536361570665902527535227101130033502821418662628751176173319272935871924102758681189193679135258114535906275660452649620204832025567198791390727411212446771118531818299930510142104249479475836641940833767247830702608682572005708288545709775261402967860097285029422865201687833486674442438515940269878480254336078561948716137538258388683554513605590207816626964785067822690604507011460213107692434226859906181314067965142315426717542198182870937483009086973206388997329570306838611637616192447502407751545989144135897304544686775498616717387749398252274964834425881414279522727779240853676604814248553793913391507016781978239477931384447724641132275596535865899112447688777579368733894055120596148058415036950189843989897259411065831149169932015313859087445932891944682079068295941328588141604218824504587377891303996390300618919328786059160632660464625837637572559836079900120728346816022950545164485821657570925371210121520225892527416677029352638117923213692708200236004716014951146502716188027744172276615734084303488176705959161139985959400170965115268231628393659217345435148632726706274636576048910328337825867451365292028472306274242086880109982810820968086831410644071732343751600083367758618664091626012947717480339849554992215541462688203545786637704184317569113077398951022889018867961349464182046815548163860260639252564515534225976794655234225812922769765492341481593568906142691171259484666765089678356595273194908640961035161621626680279494180409671384613050579330431307500901765105522908191507666710059278737677863462775320008436175427091449970861260516365517394374095261071716451298217109284492795015328365549208867958456468581558432076898060852270472308791903638580663144078596574760327575947726071641082496597924990962147812445914148951108754592955260556383245296126264386012654660334327004632671400583696674821176709292016301298574894534360855364200249975429781153499118397456294961310043950401320756898928814280750718492976112063673016711995302018107047035477573098066629751211941611650422793877920634451337671336772803631499657083789573569583685956741224210778531140558707784154244845532337709762088374079046262705182369036985312902695881862330467179042252823610586073946465527864160247033761178900889389617229802075411970323863831018093075525685075529102896230334897173917480921371597846310255409910623797067597241434871791191988487985582098751614421101263444959485657774629772202641123870737927773632281121848058670601562216364930418354941247492976636380773137682423579325325852260020881416661899857931684452865856504330117050938342594091080376209271865700981806646420672235179643391599903606618404630049847063260848491342178545742471446410054126458482282354339119009763041262417943765525428920675421586288130723673476478255665918172563496302527006316371074667637602228181082340359242795250176952702164636744994581067366245795229515007182999085613787021668636231140373925766774947484245292799445184121264293094219068806940555996455491769937694849344287041687501291838804607355000127817997966139243123186530874846340174133357718050917012081862763671582441708869779402749553936831021743509010035822973558758884731682421416813706592230085057495850040937333536782012214555962261802490043742415172093629520669660083996405458296958181335393894082369924693031463685486106968424584032404591125829823870602924670006014602926997897878611631189772285659757835485450787557120120344617168784003968083983246266556365152910115328074983966149044318973871270869799476505455316302893171425564265430520480863767883781844113673319702822734219222527724792266713983883617713801427764471814575998345268421540300625475913481530377873201406419021875112021002241922403925284946228903723746120377283703539863187917662048180897241348031503274297449812794555875714995363773550348721753148520724390415422236619683150068597633096305543959919061118432414959085230383479774223769344526296630136698800285606170828081140475633516148584960922339655198967968789846752297244583515805309426743184443059440938692173271478528929153761217263812566990636180353007669860931330571402623478928873682286737823667564901538350461041894626586366531776247789734340666531515546481729144498679632433658368061806279071381889563832562556484084327737698819279669568838753919528142404755652859610232815155901379312823283986387372460329689848204507503713952007870808262025737765354959757196199399801233122028567580512797930253253796212199332092830035644531600921757961068176295410674804741684475531302625553243039125880502923469730392714264294459709631484085102492539350505721392319595556925542423629119522023399707512323498700516618248252537758329440337622436917033636847634864870178103335218387109774869483854626326342892642228306825146771812922642149775029061470745852754441705494263657214991895228941510343931912056767295285895867367663859523814828539165067891458436999957099292203767579512033366922175945460616590263497115244430869810114411563653921140741958152988309063354701646102539402510769740051414723547923143677962230549917546731952601591515676047310340444291431334935437611881565944989130877391315047797821915164016448556187666590640656743716922303279060915179245599148932778294561157183902117227076368977794273509997363916959923128728649014055060874026786149465947460991975598590740901429639173104166729400507553973494143196176137252403641883490224105750620759109837616328349911498951263664500078651891212200605213523098525408416324984489266648246820295124001505387089982122381183245922513282170790568224634727079568533123142374983365056231176292422833094281038038800493510942630236623947464835774201803464189676366971516531883713616059703667347300099059477139352782779057941245138330143085908710822539861274659026884234412658653424364647900544852199029851296830104733526353553306709034419894216369289873733550823303158291720914732572644666103633750507656284533841096934366298001525114419551910532645969375901222170166622570223632439340818285484706906527346513941572911784494985594617503600595929321326892110732115873539354596322759641823378760719482568742649051878273248233071750892077453080945127203643612497897029884978974753643043928255553370452708778161495327028994276352258337108436104297064209983655215195149820287976266344125569680685377127132662701141823135725058601948732810621942502835778647343469438275728261547645117607943472785714569348828038244030768031658289068309432881294707889114801423896654304120330264980041898869666012669852668327739105158579983238638984241696021542490767172808213240394361857513738029241789757493249181429719256051274573391201947167920835697673993244267259219462445860007289944204559635236178737246216375549279133196025262271730325376788883362722395011643176098867692365830808168766719895103948151879081286468622982592232665729164344675769408139975207794365749350430796076573319300622712760544343548146252146558760425244484789132097807359304957551582487809496926499475394438019160485891355430897435861274099478806576701576721805403576917813094887562624524090070083368838826635502521149162209867713055098748507024085897671477946402841018610895437798660136888591100965144564573411152372321262374361160426296120150780329248873593800247417343824115900220485312428304242265267749118918876071126330043656070927136198872972858904503423031792448459368582989291488527707322553527378157500872230237472796886355719462924658001617299821270889300109736881854745109443603552650318974026741777265521457848425128305093526214067840471474802426279873830586033787712906076450115438397192407476694506705791609469729726037755968663793160983338912865721760081440192727395768398483266046047005640162601636917507862728191019857742272940018577793233071149059699365659863381134810360254308711707154028040908165032588788112811029295082529475884516938931721856992548729393922485653764694739907966442867422046620716976701483119393728734735273947764516417223982528825715942704669051085378708371092070437848960701514936490217583910676939939547161400407164653310385329958752287753432445925157023821641983584510641901668939907264676798331118908582086599617695208810319935234907486020782425019997543849136000047838797156546288830436160363904611229428675308508309090734395195853668520613981146831277275875303757535889266509630508223592192706501407261403634877960269249734937961204349622888684617010037130842112253074776798798908833814893184129754208677602213326400131052033700182766929588690113402041086825134562402067121639309478325933532873274208341415459988838876529740154728096450748525028567298185427508269885499269864868105648125803592569070383867213389547923145133247057879998504760959394975156354718504239861382225806005754892217660177828764453733513789860312975735112615589540615154579704176156977536038302620295555137399516497792327601950726399329884518524126777721052956863234189567526554086547556028148578194177134504345308161583185845056205141621136409174726158634653449864355677584352839323789238873985821286981757144975418815325734154256151958689475712384340901496242808311567744715864509718987056532461377435049842542569153653874805933491564104929689322116760010051001134904808231737885673523789090745799667854934542240348812774475482267958104117035574524232192278535752398069024179967839316907774813116491758727650491143027619376125654523424646178394169000383179021580105453971535201674588510913631217994536581624181935451273881125363625653729569532822791347520152161385857553010898180172326072935515369032194613315165617956424409672099554278100899355327962409280213719229082118906146681867208664523751938479614243845538084427561583588433500963731062610462290380462470521262851945027018785464084273671314163615664430845737061998047195275435712969777335973372559504692590319583793508273893363623546971182802600540015763769264246355074421176596075774588572985402681639125114816666956110385665594386943937677896354657415930823703794954572041065872390688345287804140515083717569604520397008618455711011043152376680230111585033725124697395674526158665317333447667144086466078860524048587142368408067635425266279799521452864242929012189343017753236892042709097209390707810672170851005248873975318645366605995893761799298056056322628927868663596102045319020757271852378702597752135458656167479960515220178853767443778097778527157459661365846923830141425517921618941443580254745065426753315456474800589843531918597568648393242952163312780058623674643711018554174566611600708185434457127581497745943762800170133929156310405438983849225379358840617156543554536260655350562507151867811572476394502223235063032206432212745855347412603504823358175660743165495034266797781017647611428873846318975740866997898021779420365582141180525326441785244394475216684741478506946972983368210909733996747175364364030393314049835353834740059970624300265007127455854979245740007032648892131892791934448002119062706307462135567761291300711054777671678908082880581789206651253753232374654686554888878455493802184985390245198182320352525733242171793117351287183748043949167795547856407147346718197785957135386412089239737083859372826803947207434862462726402569363541484884845183932370251572260836533152374124056584034883485529415125955355953466663860451312507909437173340187825182556042002759374765145069487099042188582596387702784320552146544120802006957458364028931615078813253061601801083554147861372487657394876343097987598113214959656782103206982719374829218991578472374381677251787673656610082835549647293591985575600617276087160785720292685495495221081463610362830901735150491636927848326955757881785819483385536104303677110294675601764811810379694726950388536983950993007117922241384700977868419910426314828719151777223291972578234301666477508257056951316035901745135363361706630632555551467333764149454584216393787757320766960526060305574948880157924965361980418504493855130296611219169441743941158135896639119228434842746678164511739028750278383154769123054129455885027415741554287535783525422458671847709256811892181377078907714873546688794492016035387038995944460688595272271362852461222001723089414928831720969385439057637780357266885693003681008790808602191799760894453201408647522768305725896908751655630889088687790757585230720762142129659407629828473338999628951248172476320363745994071944011787067537961482652954328279413950429267923145982035860084628702934696890350086673318350402389219290123771986782252748375895292649258645259595109621183193971923449370334562954301416921190334068496148896279447171408944016801140130724348674938076706809042713357023676372165006527844758152635338967215918519767330757342701165860800667182986970981078268773921099973745343858507005678013017218702994076698062003041316942646276174917963623967483222743260087995319818579114225100483008389515086726063440248162674826405954859773946514453787385282786563391196235048139164046512206682512283414288986513166027844607987908623824717788932457206442150875014961661113988422870820515393700016115560750826351277319065354020481994270074071645531834923706191470915817320186549437285018064446147684194689702551045388397463482325096958740061348676630046697932477602033666415741570866042991445407977134827848674010648428153398101239089151599247513104120540639807876012072552026253407325633833655515667286998646630312819459046144495876691300576309157605489844076196047359016186445960971998121916225845491747072211339484988717745638664042546393913663250838321523411154848663978112948310320065226070794181731780161650255213797056001414355113549798442570801596560344191474529063364626113212878578160529194987532114862998949817079526882012190719030800539397292250209254401222167431580256725736618583603851763780585207824075943989750027816198935690898100791766331288942122259374103340715418721665946993047991716804346130711993086280991782883907894183743029733910250654300218413240790127451895082451698246622156820284689989068421422425349461797359706868935135958181850861023354915733418731865174374292181832368004070006886588087525221734420058144267822086567934926960665683313644131292180068986109222137568290188073997273091555110990913456680451920545729679416253047872420674348507750314781255360039442406226509739920589231684447728936759906577701885847907220625454579643115294678799512591835373255302822617195637198304173102600195402925450567727990792278877518277661009261235533675057923599124643913434423891558217649170794522536317667078912128891794446636699132680508598553345546148863993318248794512672300080820218091793209142964711346185866914325899181562952099039567340407450679526670002354955266370329472410057745988065651620963288303389724700229725890270337121153455077957733566345415174577400239069224502110402433861134412244720783771397632244791598973297630177420705485768053183150641932747345660630857777944950483645180879879368168166632206765796546127469683994814600708878135901340767934813801999574246616232507096802541093234075537803738311605651718661585830958212930615094573912512459126009080732765952938804493604152427009549961894653764675529605509461038771654634090600524485710958003745967506733491290343899823847667074055590373842892382166237754871457737121769071906497962058136133757795051854143657471128394150867468884696707151601222973844215616133267540366568742897105651266737398342050751168649605698741551191044456603543102677888777241034129064255524486232343165002616503353560140801545551160357969654286036028288003737423358183268333569548178799347310080945483495555708180431274329246269469103294791182935620017556890940720699141045862201491721150014491109694795082871396347998777258531652638899201013409184514486359048505637428690700133020968758224678127485854776909813240068229781407962768195701982393534923660091318969759461680063653696674537548187624796416420826973767764960225605056863585075698330535108020700919494935811445425901532041149532213289039583949509828854689310825204756655673655842096488800868312701724169945465261791823729856448419416351779047390386988762530350185506343581286020380095164678015018208473908059394763373044098311146695053157535246667993936388018708588455448534335079814425143935906052167328925916076675530653076060334653778528308586234998137230907373061951526762537106686523328088534979755032372916876823847267462823934942884448840970112727617813466235507716530734154442976310355407213053242958886953083353357026126472418218824406586525038788758793812118060275253238014928942838942215048940005447478982028118450731570273334683312717216733851969938062617904712191089837028666055987373614350419894372776696585238003539856637148882364201806539209110212306084684042075521244930377464082023054859145324835219895824437659201728591552764751815684579538886052548172344520765221749324427336983950056261325824508007882465448459775086802357837128560617000460562927404789835058065188058923309957922293300391773280637365061408801606891681364718724358614806794630302547009518624516062375087800901899237952383283993269636453003950120190227373843153885723377948882236172119962373804247985174183613865821092974346229953200549583678764190421939576989807316480837424507074835730630417682222210078032629270617874393985310819182275195962416207019847411071489276372233112960526479536774893859518703960565158840186821181870377105956550327696480134669759194903652528960760920926807766743651122193329640675492678234732852803780484580144826501327460858774388997353508917713309620411473413944846247609083665235529410844905624090024047554115462517058426979890968683774318815142214874803242361263328535188739594412999186838364866737413878076949597973735839038217922194809061897904111084522660395653682316515464054890336896104400676535371560035906550832433355640166199232071017857210985663613597741808660399659031324864907928698760656240072287947211562265173857139717966494313891062917661451584156891584327698282970278135680670976221548031576912364188157483095170136665664612749184044444329240041108523633893806026369508428251770329133283041943456972953475261048243273506672539732517214488442563279683391819561957338058101565102073067767359892934166510914469768214096536513559184470616217909111142033785340187718742662177360707707940902732160410688447545477468794445256896023874166382038298101758082981351921947769920358486832336949601665521122326726266800439696153902464232939901894181605639336259640585738919281456953368892996119835447893234126964972715976144523574153516164240716396948312871263799255885462206332873842390777978732130069535971375152626602699471585792915099757493056653827290242294975918678728189137599296895215198993740868147490957499005451779296367269262861796943990224239215731659649588761179444659531309914921752035329035751333050318744609857534662886055607642483022261300568245455056652973741486006483430057744657509152299253519892595299292566138718481966102851140917856836206691470991657280393335337503973974004545789702602704359168014936644606474745154962103570470663674583213176079857884048891476640033180129720717745269668768341713728142782567474389924883800645979191196330171265768656877980897744770476172576965809334442296407415226200917705546729915683323124668234831562177185523261278707168870021789392387608831929758685964270184655622423317675828326770680703959361933168025259502515906133366262366789759021599525896712753879078500240800240706569109027991197870525207704562395409777491016235302577724707928886185363596203281647483881175060834897438194098456044474044158200556594734015271609343480752456395700299984809124259655032799025193231931565854109859709344884621238772289888631464328553779644441652263085579207976590359684971078411525014571256936592769386799989684611688253278162093486804739087339444413710241619281730409513307299519479235633180374843985169442831783476037440356148871580977642814683017670500755040816104876001208621357133291071822544993173318193936579089012806131685704126702837378919423054948664663153701410447107642964841817715467000606696920960950706232820620346236963120308325096746941803257330433204834430610043286328893607709713796755784351162230862255556517146549498320283872921886778620168334948577166870397228026319902064359647078031868336181316101568895557396041553672813195235764294848223036646788913141503926764194096092011618849357936107773001076062905394352611982642093884567250271709995186213736932871137493192338519488432052670496007111966190610163917072451491094128881855870079297634297000464067631729002620617756565661087196180404586692939676841846136580796579204986315283996332744700945905947727819244244721736988457412890259017840395734369882440195653284121063883782611844271395884299296094697073994948319624994183910454296276869786147914391936724218807096542900357726399315557622384911150032949248120119181067280641080776175100215970834759355527007203727689076226171195299817206895419915327379910084813849989532212479340753629582494074454781788436858863579744216033415556328377348571333513310705548865695499734323204175368587141644139959844377641956875811992333726142125388481644216760912819474763918707482466264377206013406563264435257396203831533995925772157636427271060895401035674496733358041596617007234272739639527053484735731640498147299795711996032952603666459941189429564594336799375655443690724750401717248228534132171679698544696375949425529742678819318446107133239922077705107775698135437796828091330687240114069243034438515498002070808296602714976549239380484305854792983361831037716047712697484949647418284595323570288008928574064261434657560465933296753750856439265789383728946571807590593871443030604876441669564436189197016643210532229405598486497002972846511768292168705504332351741295190242685522035039676120943165588285719100109602693964328551113152985680720213338736641405019950356220219219042752514466505164522269697809224142694107088123727481716648797165474765201358938201713002703880113749952338375328213176382319156938328228587721556719565535022041048585690747004560273918858150210039819665094309570611326691977448228590670448686661143659163886259265150510847271000981051069632961165601915223213829501229520225720887970040432995571600049164565822614683602678688891526773154470360346435085758161551480933595887671759411803958678629518795482612270714854550336032705670821957809592968016340895064829896164126241972801414229517375883065665260072890390915215685987637927288448591709468445805301281364679426036226859452391152914236905751613649737674703426612172715124899974267817272029535653188460839940093471001527995444912704753162460106139175656173592676092992478688333090867823123946614348719784088679898941726579881349308458704276607814311967421271674604476947066542567175534061117546016463285003878761374349610298366254626215758556556789005406446794931653668930604345160186541770593240918732442851462211593416423827828534258985136459226904645519637016339356741885075652253547728128464096909980015919749671085526601755158425401436217547248102239840436377190331188184410915681586577443952188573275588227101869569512369607822370510729750464116489996517561302396355671872088333680630912006165195824346021059554780349725543331950818898068886868862136761625706952013983280925415651754163743265428634367115452933094173252444559677909237772530612619037094963608893357454647887175483996434372291224753151217239975958385554961417702687102296114846375774509721881686066452134986088658717622216404795498301388168469356158613132883994788860063344729446670586610524351050571937539736837509820981466625150157712234999287255339600802272626937664988782743485476894259645238369897196734498256150130486846056965676519303439013090703807807388014053725210982775085425711394263596928241290004395172627534380371235383011337336838353802613707178027284139465685071255567624572832977643142853263066809933753107537610753283662576771593688216993302855355615752277562173684113901418128812962134069964237317258636105449757903131557679828417312647183124939623199835179792933700480921681213877308210444654799944968813416590757863747946986759496563608485639440803710362951186572563384622221598541716793952217986843018085590993375889831620059954226091032670640131929945864050401471669695242415757404644104177368869574036199452898062163739249356252983053533361861423485679172623099159706534810223512222572567966950434573921429105504618244084625095085652895771263568702669473187533423357784175721907232238500050196225067650892377489947655348895839899529025868818011677317609041514752185803387538064972930964193797063771461277319282263879694123478081013768696979564345426470997663719445240223276027680027590325768481965784249045012254622576315213253691744637541352666429198264118702746862463608027554769394394312280318751598675596467641809096622070830378375119138906163420464943825591604581587420079738783884777937123941538157369722105367515680033846136574466602132706433252603192818662767254279913000626848481004146256181015312268424487526030187546041172781590018401902500714013668930541315613533096371033740959763125670603055947731645592278558297403822521054201904916642581102662654012472592503956353841915794453958514554711320339597723457292404692067141791339442738342088029714906191874243030854983848482444240487310932531358215320131429016650319966722050911553886410114160308848074450740062336325468536807786631922776268676995179694630956404403742694534095411137213688694299325490371840627831484912445390106162334059866572781405050574603261589127596793072205914469127355918501877413975605895721009130327172566318796100023406537357228579388509807267905656423303504166192890606748937879392988322267995700839483927658374305789150568032824899562127995537263376535470088421325837457920823144524544416256470152764787262731216341192241311787610002950514135839928199778896875078114159966939298929933578896796040620647203282095224519445900493456486480094058894240581253493007835852380924650804874657708442358778226943679835971279672239576785826147876046117746986087809118585688241986317137038006988825252016466682548165632130492388407451304466148793957641035892822833236165295574859510741049685812357000684345841447889173343809762994881161804031931860993648886980234655940883106451202990144580872920856232677498810642958879281635022383823690581570316780151979463515618945610878856463143533165064128296280909053369854419472496082284199199957931350387919033799130186329215029305661893724864601905676562338330768708631463349771943151563612439841078582100961688295483754967472883772099381889959339055852770316445209851046925652560647900096871427600009073281594661109082912161864986067838344380598793073286466630271269332323630370418251344831502329451024059005897214838322722068084139248291284242175655870691470871677888097596667881639388092554202900238582608490829667133647101486955774920164661210573495498587056649191767107977575855900613523716857817824336063104469989071013606798819181767439579057511853767679075518691184223845267970906496845212444592618548873531825501661950734895720326488301705576339234513792189586750825627020623141788072131290679146507073116300746527718409593918032909901228972101351462606090537931711775967688434842134724476300651248065851860397698656539888451601176001382197372937796335205020503617644052141768592237020712223285153412670333184443176326099638132065364105358847231702438508261328757929980348114443981964800175138777815532196144422827710778078358216268013775701490547012086185718852880081484383730699034366529996542907727357460970876347237493064018914261908588039705943667854300079702396868602591503090182234019969633578198268292990308740214989947767985237476798401990268965210990625942577021438649388728454446505087875810596430349729532339315835243648382460114481466794693319161907837436393156848803367049853907721898484492873729202958761255627310760741728772903390492700776299810127874971039157551063516220402558392497214549376871194562714357593292450953560252738799164725786729225911304861689208042051138309817328701147378759582097645702838092332516117876239340581188323907412436727134989555095320819446110582419010828061452528184432591458864439881377604170212773486355076413111946981918646242062666231115253324264189754594469465995249252619385767080449636885261378245041384678262755702280472245624371711913899973083864360538418036343031204705674898293468657798828196183877871373257612388018664186118334493513922088243729943017251106678512278995935876869648283081558523189149636544247378799306173826190388966491338521007412492693214243821486426303335851057554670489241746651454550466851157297768402123093839670781470400310546061909143743168136207945898450770730321382349458539318516086105846167948386503546509143042626437370553045307371151629875093390576395406480845406337836088051227589858779546555906533504672788083709374904723413595144337663648609504921714082992538561163254938283636788237842181839072760290828126410042754342825980718696588622110219668910396128033977832933934349721624131115357921178124877924439804801037471005856415176366749581141990708858843366567328558544790618496931628730723385647823571434343377189403697233889777888280327444613881823145497275668251325701593900098693835864188648816224075415717088754727566372659722772695153220936283340016926105122209921839098320490736370954422467125752902448276965642162888235619459813589826234829635100075171099658511865511762085763442707232270117861832826350116840685662932665206847479019306623586717004222795426317593209650582698202710733246772559849508992105756642338007590162074413465790483546407300217569759420820555236044502780662671082523746834269427543257131397611194373132626584174938155491119336653789671090905792494336465521184648991889044084084547268463106265387027646544325802918720988668873256463144794686899382210884012104572163801832775800133891441498565993739587336396850317091612684445680258756204106359666390424588476343173957075354693213810912387768712929889097872247239412715067704169070231280154712473133353481822452151174927129655320071841209004507592015576050144832078143447783329984498962111283508063123978239920441530602670574194482298303416641821404250644353864476549881107398859444438643462794072741182291647855781574446645567679737226277583972300533577491274017729367829739441568405925069800641405769281527940953190316405047143101084747021786456682927738813041188674629610259751779080384372464078739953491493741984891985225192362737754263745094258357113549020159846822144892767527694941687868787821913739376158306438862778796704502172634628432947718436553756174193302099934702441303545893856391053565335051631067287274926331023609509915390979067701970037840880208656361863715961866674299526536760500504413067100133577255668144633095360527515416857363978436618185633880238241353042253242451531273509093684997618914059063664339249102574449571578571837500536141346999262226693456595204963727261373442286475838168202059656854098942774909075149022943550079832275961619001150671277763069528837016313335976794497046510004260251202513482047426347379943072796625857510220608512679535364978323801856791193991268515215468540763364841806941244429899056968310305335270333949798267564854436398891074029821695743340523766611967497726066236736337590168553630948097389493867379304965009432901884501958533149680314580502834531426070780537873107523752580283982681907426234169988693586009420687887291393250983482448903896877201677755061803981504647405944753223833018698755838384689507694828391241439081310935180438654018463725840149462193258361916503023055096076018454969801493657200773562049672245796091214158620164844390530555332463065720725833454954627028349024839456970862083987198127872214952460284184739391794129131724279979815594939615275606736849748778928853909036827212699701984112897606404620107133156386570844031258685364678594941872487071324352286088370530801050883356849214473259323492735359557792095826275624896214863675709127514965490896105091055245790245432358516395624337711915775304971202140002763338780984511049665913049967334987999518977846661878319166597956899862348358626674207600024021606699456477702586372490309001905639069759539780088177576793859612634996283091250122479017545242347056945272746659392742012933539925471226219159046917917771713165533619000185390142752578189303630645443458259258194717354995507666130113586639545779036550956305807261915360032935411079319704388630173351715742261002186744663124803867004878726712444283929144460094627847833717421645329634259428469454128067356189915613438129161027646861545239939032298799558907328031614191869961498435963921392039294907281845520363145253576539625513265009739990352512185850895943006304531715241489546535706505627010744296239394838301165626795011139652239625418967753649385766165735146170324947381989203516882735464794998732075676438091415958574682795958920103284470522131018236894110818007068803151649477987685323630145695699702579324692496441922936921171725231039185573619568977423196268794970217243076207019326034240851412737327130546354180911113421815087700668412664267576120143727353154069270801270391615098705803657854004491708505649722417345486873339905713742554884502330785387544259117899445772003519515135953464833674921158880730460500462183799226800821956767043006157263621189141516545236630163948053146924130248666298782883692695864590330364355033582638379411628351897217821267850116091349408773156735094068788527071400370945424156355551167488096058926649153388195142077000202498550342614107579785968271997854642144881647719759540934950706986168886698174245862818919845803776750013000485672274630493130429946145726049551001115775489225090155820190046626178226917817459991798984739634921432630731023514751741784165951637928494197972250401457984221789412445173813454119456350935208037223850647725897678332560846798565572845607403964775459617053663335572957941831883240350976189736293713207397111748191895212896887262866362781870027551023698606171235306813593450072510215240854318672083654689370311713235207076138186155498599358945004435145762937369037116957829419405579921763032068815524507926377279915077901730560005820354705612243700963657532434162701221025510254665258433407979989156490162370289195113004863189354223239329092141775129432931612906341482637059870622212062422860754928996820405903379617083353891201065020254103058853476806382628768802841929948954615282277676973488032205111773791071319469742201532063940903160340510252810874775466058445524872633979418713695939555711002779827808029769170538389977662868209399927819331213673320368409258836222184900306339237872274964028949206897639090983359145287894661894149861979375814662609334750404102568449548514215161241896196091183337356096853928132777509836482297268377313290273306331954669065563972009214122437752745914251661420470701972615101420568618473743752058081910232322223954851071429735062699008809726260859452432968511716923324538069070047989168714291954930890807013965676875739102376349657503973645037737101800939671655402848691382498895733869523559304745744613991125116316885059665960521822020424716827764481278906532969870536181750541705157559957702666459609359015024384784019500098266141821126178036834716072713366426467125703335734678628968326902382382049245068562568136003444347618423476791721485523843748427894004123922756226850806826008595985228429948229461845456740486522992922294049888611123499742518418368717951102854877445517786481258680718423416459609008776631356618311404195566136951478570193956833659261040241739652016078813845847723599816483352430095476636606002928869743481920514493272620171956364859473379347461985983931427193566849400170039768712548661052478608533385160874008557119343812193699721148768085193289090070793876193356337065629336796016546443542206894444254916531045920543252959244091550342406213931685475553331955661338878326370030362682709479017630571171552518700151704231035853981475630674637363784462821346438253405010507829068275067327240235307429321598432454198321209053793980398471733176506037413641311909077897814093967592733302529339494210483925202087062433211321571803503065766920911313385101696110242702158595391099213993545656128799818919052121657696223780079539841510353387819899328319049509867505864447394365510696322816224520800300911318746925272812309713186178771413665261981693367665562628540586154671327242407400895643234809393133621199876549592102424384633658836150582057781717887276826984908487942352775615466943461891687434942860173042880993017019463274176713841055125175954899271800747343858228505200157445743827912108045494938966207950393999685016219804290851367768205010045084126494136601956012259216434795096156084787537338586098258666465226082662535243608507939100820441008861695899603107797731773932990748688093378666487334773265639064241564028466068189381346258041537172304747897666981904373490625764586666667181009428538582414439775330543553221305089645932229110312777615468821312768320012121714135533218046534730900406415276663190200868518193113253178924121910827376530757340384811030582928035739741606738089197667184002745848132519847055592030840322291678351226734105102254386397168342867540924515639159615234334898141475648262895602170780280468287745507403030584133503454336920565142352103362532337106619777303792530080872693051378882376703576544063226739381237969200028942271053104094956220352606601650572158115348398430353518719824020088294407439327635087258886293928919961935486842675869084526645368824720871803318683617862747420337559112071579396432747691689935715749465979228646850948303267657451456863256859215152037707570016222305956618871331253440521986844660383267680317229126143374319748182430969016810750639023971257661342368233866469069147138032088338747040383875740035221619549215902091517157697897472523191871892855646248343547812786742034204960040743219291803076312397014874280058117050601906366618701150173789307441495004524839936202358954107428239272993190144085044756945420110495489714475053855474239545646172125396501230572643913277672153247390543453048979970543026514158034121700967915407801355026053318445415208527887854305768048103248004208252672956284762355760727615228164427156311052539432183325576277173990838706921807799244847220639984607890806913232995018747446378440516378792949710914247830770626006287334058371328743328816609648232009466605410210622633499442584032147976490895148644340670254796945652636156960152942283068597644080609159853833820612082136154728013102534971530794271832337374777646919039426991255121960926813051219985841625512052294438088230016977657367773316246198230378076807269036303878885977941286648481850927010584174926349172131556297178051456668148049924868265688848595502828944791125456091707419695151685013544986220199180411594438725572220275025306857920135458951261484297735752997970539206725364928713713823725848644330153012095354798385260797561129357053775243236049153419088209276246895110408410553448328027980570323738492371125901160451305804386877998832340233122134157024078632358970587245047009923785643974280091833428594926657430704751961755352344348530290668041924979782214927997827011246912473451417309162419086963466569116760732826835414391664479709123365838415969499930343526123642738474179567067260977522511257542131728363646942103602541119625106074915474632244553426751717815415841345741749434864723672994955992087785250225183941323326851511157693139793966797115239341970319026817808196475635145888371213721252694099383570124270354063027063758063883579650593951686214254686475768605202847208031913785976475625733672131856025324924980990997390476751978554967431595355969621170151215429473836125904652194487687679949940974180187399837929787185678008450345844781733089301302817245426618839176205000948391854962494125570365792247226182359811932172195176013792872444687966711207077791888357728033115969143504185635722825564784517771559661584034684927985721003366583354333399407445732787989712326356121814379196417005669468939226776194204378723853445020300249268457137377203407063675271123237148482685207180584002232303390509913295278870106862191672460692229063756659854843403818985687084292114599998013352755719037825333697751018652569265924902960757253219012068983384311054515471235966857026471809366832561281679904605721347732404756458212814801403167303932723806068561546505092029209670654646552510673532538026545941213270170841597333601465369432016370753544393558975092215622359297545917601557504459929242604779401826034644247791951235124108577297080928885145707914566496945345841717603126251420396650849786840382251157483204245135062870628168159946119614580695243559786013431965312767846425885369137931990081445394726277597467318476608112593724768284088190217326107604939932374426323237731286196727168445811393495170076315342219604636157510930184905865190103132587153194082040330810295464658979069988609969144639505002578132445925201092521087050782928905224267826306153679806354380201251922679953582547323500713507190794056175542841902000316989297101863026803623836062525192059400379450971719745930460205519268978296187573564892297191204481534971518823280255259233500294935044167010005321968237456138079604337763875156809409229969474632131446313997916745936918097584704214004019312503911292841499385867314440166997650890990386859020938069778211127371769627678448933951489398096927606453948467036961048735913136181729244994320632461005900676702304769848268120742613809091438483971390199840970658341934462212873103882762202794070835352226980845197589426642900714735268506261265992808110184276335162122792743181773074413127885029362089770302778968733030627054922404664813011833430486252377711721439445265237513939727919538441386276045366104879645272177625281831955341863426245336955848628330495449152973496498785951936699520658203666855936913142976283815381869593376279497898865763454777813597314580249800147950943515674972856056521303837305768251979597857611485623301378808933773654363651698553195768174076088995607570108531465403381877428979278076695527767234073918014317923662541160468934033014153384135278807570394110657060387472679631575877623679398113345122289674001897171952178992048912032970191597427575314719027158862146978424985019322751353629229391951539158204699083891372922309660888972639190795790527588435129762564241995421761824798644826800747995594268400355987639254371247360487983644108991948694830936539366951434665020052195679868865846463065165768187450196371696264507110812891705708785512718476209276669450086511462815427479662326974750494958759555777070109003657592402874866926668799859200519237201423525675741509077662863220159429241340237953932653441912563435262848367919969238086518088355542502721576299831810143140039511291291547204413714753687708436755658576025877920223338909111307628315212828833742476931616075150053881077231159977315100076959194282363084076600958560769466504397377573436966522277310883119097923614851058043102247480251649839098306957791735585912809959007324783131606705439632972137976614058489366378249109812657733610943809082397148814602881721364765003577973862092663839504418676830008985771318199166640441707529453495620406984223490555987560689286768880614533855898001029227864049457464825768839290050756859665087223067673697611085117372513607968436875127753092754926270867534845262636520634650784366342490325385775616651603434510927503707284383157932771482273732980743839575621237579423431828560567891397771156265030711888072768836745934670657253267917311382112326719433644696920786783047412173558277475012063916656460407946442109093245264046593331951463318169971177075862160502951518543490783921708268155038682877459882478623597010603381868027859140361119801915322543873982565159459833983577708359594081944900874716734529939131032757970253753284467332519056974854693888526917468311308734693914350325812611458216515138374488885082008896722505340225214706413642271344283224694676842373984654197486459645018609188363655693326428001547160815922860970368172297625604337772769379984591765851009737752938455972445147334608026483308648207585358294589184254284418569290061410636755362508931293776698174184141694476703962888386854714514086842562415456006479937430645619170603543384524878404531760465372870188597805852454162085873398718796754194571777395367140835514402683697660818417693698182846010709427690908194298791722445145577073137078249497844457984073266860928098622426398032007635725657354599499314182590380450758019900785617026510948682348860028519769222501324816949974836575500198250445511564458173813641319499742806031731038898081177418692818781042122326600793411692807721076481625712020748073814323515118342008425473794067643072087975704254490707148835953640359992047497561500519066994007159814215588497840758107120606909670077131591371862410626918486275589713162078984565075105285302618272791036014486587559698492497247470247362234401043110793079563233364591827715143609470844271365945353155492431938276369381199469815864648690422803252057884618966679393768072036171749058376550757153512303672240271515850040447436155138794679130427764043097741236272027575094761937084864982820534120845099785548256412935441142638312537649752330605060639554718372367360928425476734803529366497804149474583485394768995979216772720188098700012523335474316855332639970589969296658542256726038146349791661108575506322938942374323674176755331855714412480800483392302100929580706837780849281283714204182795040644738858796490315314513733581809837532298705504797460837670262927983552605845419535860784957967190611764023382200693093512245908552854314613911999100787730924676941301096086031445509588012997992165708475410911102987780261420728593365347633023782020934418796886613766107556930286240542272166712281302883120001793421638624421005315370501322862222917892071243103342290472959549822282284612678106674808302170981910604605759261743613022979923710238454929511937888083548517999495584371174765075436504476644219419075365282433156689232074137186839504637305888254413595874943417467045789079174786469479844768860008346496698058588261031281671228176769977878104572672370253776578817996064224758046305472165813723900256188473274883662888187186013762374039709889367657058980659160325983227768163034138588010325764455586880930301632711640998839174556695243494349459474135777526065984754587951265492107540070524808653852955691484403066150173096244768173735822857877202716495935918395082908007830834287963301510710868154307590309236152923020229789748100667503023199565191315387594491105598853440680031186228636306464002341279382502333202143533248737828666201688048763009766083080021309419254316868711118611191095910751220511823079626065831445197071168908663877845010380960463683036040767127592682717624665243835072205241417364183809985960059643880787018985984489968876699256811931362220576957246769979000312686997136241100813880591901702237091267729882158683364592819198847817299546904539820115497007626585897478271782715548688836816677759304360647194906855372007888758474096950428679425864501374550204888918741817354846684274712286546062065212155164229650720666229458416395781381753309555468658794713642341620800539400534916202608855480821042913304629297399481277350771645510734941489219503223126488941098076694422280044963604614372702036811685157128185552030379510705574684702041212868777142305193624597337527642754117229630281440256254817739932987490106146452743873324681915116879492245571199395226260036873021945900939192686370850738906572903105905862592712449823088352567756028520625731562500854559195091247356117991410507436244789511585698031553225927239415894486116358635703525927415717282013346056528551237476915643782393032648245070147807629410439400003581767470516525632158265281684564832865366554204194259166876272013500174568605640413254887583990091898761701206053101386502087578122977068242681637173354289399636447421249228524307239823767540277595161811559041913124828079537282916650619794722107896764080524649050319315592146402978568784767692962316669331325757096812304849566152989275116699366921624675826769019838294389332970852974102882060236870519359249430386360597631997246495825926291450187367160008593168882839069977355078064837678335586957225327069414457886973232566342584776328275822237426952569607895169571997655014706270798647588776582870716909919106853742829143046481179257990955557601067437126011731807375095369746553843752821029260507603701124147194286667913951780153060076849382102573621684712942684753302581566928614723752349926418762867777274632534922658674728715749382129697706153235230226541964120771550703575085730011055103391384747481999148354889555568464291044723287787446984511405018954001365183029218798896918145945052122809097310527980307010166805702342940651905688277233298361593651009031645181324879519978173585755010498929019176097014692466623247795150468126504048060878288074613620006287619536541023214524139045462550771657140529826518370214448195291979521246023632676728245034729196621959932086378945929460059295458063604255559645698060522574369980681440178114076321253397660431085784235366648038785870318523664903519059168976669515858870591441957648159932715399892467514711004300663492664612345811297609085109999196075165849479502683880522560510172592466943501013937952440302390316687589180066188258407164340850454221386300352480189641955315810466050867439576484033769023298588301447276291251399802971776934358305651396847494432240085858815863989139450211532618748402182850170281360475362064910134015612350406788736726880080401137051465968181533511110929598314869592282848843252336876542717575155841248195063665357977548398468986201886054670440514991902131354542485888724764266856415086966642628491910105790370085097114494388325765849496293359366448800873326932053995247646004060818984955331050815259593237075159395012414926642754674742739067265723467149805527998243283281990903550477394962814633633106732056139980580898596207303410673087066192001445853386074508708037341580626753701608978292381704046027891952567433317333925964588983483819833444861126831491835777424658999255969968142214270591253554623595355266115718182501071289863950964697768396664458703735254246159666261455846563059667786836363888418596063406546260121571479748938573461804445745520689526842391216444797306212093988974892351320650771156669344169442889802643426350095458827734670440737770963016265931119955014884786873089307426135870738401355950469350472810931032402286805069333398519967328272022925564659710437449406215384831153680361085827941786546507654819772776788913671340851424074734797540819158859240755343926614210190933239302481520606425603273589690143958563904749714514850270656153678204118418664329583170246106844118097578396776992223577104531755928274318985028420941228062792838043724424055420368938333489598309572106890972692087792109756075604262538638679453054026544264312054091772008594732264262011437760907169436201168547804435866767746239756841102878979971243803445221803895857040248090407794408197060435528378679495557609724913137615875759048495713487955599063000140412988506579535924927933080767559092292425524250926731208921574837573233391252343320356797674476421633020676709550303504917086258400788408130613728578522826694022031829814984407823482975637625611731584761575277797081856299531634236135306552952398186871869673319867358757725324987779809606505025783549661327447036360770448176711141391926717553812893661566493144823163416359000373439889686311132606076160690860294435059376734283110185853756074726534876792454528041151533157056970934517189088373378139652577094733518501043803922268840137858254029576215736079534813268104480003354051389759656452307832749893194925164650398611736331386122434325783168793526483751542513429955965240742972694447558114440806808646440899428685691466128438172986711442459970515333119499184140585840863080734911804881539722450092889544173988897581986888899271741723576908410975988729359490590078491086073227442493465011763942912560256702454399909575093329108116692327190941896031253413353571062625463424533599077733924660350077154714175509688351098679242525053521281798361099402845604265493146642323109527253517015416863585785546550468998366221585621259522030334276792715532642809649264373478205022390211155169423767807524458718783204477853968877227060969203589438794394226577848241843713475807156870221761443953068596343272533848382578807113363123314686509291373309706602478288879811318721031944129883335013127309960475775622058702998448255828388756934843273977242038947834405142854453179078700657179354619455887202913372303511541465249786705437109685148997360151266960572412753616002642321440519496886291700590667431489019192102228468255293376836002092071002462684633504101303250459883798731199950824580940476874847875747478241617910158822748050016625228328133022280885582347500662087986538362423358341861507020626623869264374463895801202742319532217632146790795319968881326915490581167495936447198807740012947545346943260803462999224949470485559647626208878558599669404792320182608479505578284621958707340109198465454778479134793363663269201600533076019948548711746261401511476257535925406536382887481966825118195367394915254195683485358135423898807476938033241102451813610298448005110612843896065528849963297336234998946006740687862949949822838529839231084639373882075895183760792336571010495881453788442846517928574349333691551691643146623644151308987740588221129517663151385364331945560320485869069685337269582465063127185299160597668263876446856996919614114773722398696344897462375149551087833048489974075347107472001809718719288426208764507576111068146996977821940153684665175116612360116020720419663635718237092582184806067873194064926799901038858148304064741859399155391120949080898967467855216174794160742306703697080974007698374579452467630953115610354671281655819978241106658416314226650189273645223002017009434581947662798644599258465482299432825113208676527717555995623876856596750875797301604655304231830507218815924330440156046516882211353664221210393520917104282678937087302232294033666846671184974623394843957819460703338750567405748937628593840905365151685853688461355860356812436904024830507553369363778407220503438279945905173096791127325680533730511240994886329389070991860388443344029230401931414289793316213587912747405829600564975751069299554906295514162510882780297420126592826203864216085048740337210874766349240584267792791282954818317432494634239902950294871106728741776983924872571455739542008766155916450504287751079663940599166608263178137182902728873551884690986035965823393262244741078827988523672372716956122543168511267112868751583995031466364764010679767126363494425252356649239353522373682991126674635670304400410642068684330912359998226883648206039679142505697109306030111535394938143435833129023171405777501890427944173239404381493963151881210669534381876751800034444952050425303914279153329585620962358469244174505466532244682224719649688856781961618642969467557137840506024066267728950362680368014308912882667182040011928557418953539464705193194660535836687150878818299703073786121221272857443769559100182557932747514910381849923675332965334346620154319789856600764576331307515411526803295577781087842466329113118012650681278752122094208536278116269506432302258594513935839592834536173973216565641074653546594361142957431292379904055468989113260555040123479311485698308045592720550439995546083450537977503591032851645192302032813607135123439056276597199005401995063853262934230455524366908484310787295368234937239700705170980376447109962308902523598595306853068911999773860825019925548678310895257250462988737191451513026355519210811925011391757910028982500213626354442381685870592550665123243312387600838417066231400051985898481547472879289440456571654534557843622262997330892212574434886819593678779224641030363940448257250216621942363942694922556404195658593626327798954998179725772363407826039383384824315804138323664102397476555029458304994660159259013855106968340403050308714841039075381814900779518985082850805001831623086297939601240770486652140985450848375605256263698305656887944256584733363178195334286936437483575032197051554092466693051373338067870277212182472698743953358973533039371380910121929245236383116834603971077611515703369603421772024014155518186504812668198581845594822733446795657978638950966142828036750507067462131151615101326584616979397306051104067190645382727894608571533894213013593171986913294217641212157953562974143301490702055816880086744188885639443056167845405846196146696955462198258531413089405313098349999781538433758313051049468578707470222487250699676383416796224524188205702970639548124610795701823343261327917382507028244028651596755311669993431668323963860080180817157443173650406941622288843023167884304412598946053692934344862601363322623916694647480802272707946812954418702229944119275292806106288161903438474227593868681600787853020389601642544715181029761523879106998972342451060177242097877153110015929444748161362014980255803154916016378104565746170288401406417466049281400562674605286118133896705306651752766391914089663480312871335041702385310926890299324257187371940754368532259529904780931835600863216612905575727258912591167788614417445554265135743801765826735035745536701277347899375505269585490523201829680578873015819475942258441796243775570149765235193451583432153054667770230088441349947478640643774920342454566085209608765968345149302480835934134642658728448318823717009018268011842075037920939357680597840169084668398774367920948379548210609334421997835212177049415339294889758706955257815737281373284756397051131972705127586776323679666784010995056038005490715846417766911062245338635859220905345764844170331649459493551033348049711808504685193993667155261437049617376262232772536780057359381106850606002168817041899100559893707413526134023363104252746702872027918320045982466282728340086381782095083808721672350552146456156043836352249727724000685140400237871954819548364472454833687206758259261834553158082857567765395736398955450626604763561672897933927471078079973740800976390349892312082504749736634826456157520624157134019615996342622500045878103620566872597276924635426257738925306103137344388806769531808614027855059292248297178459886533617860881703342675237456393932902540846732644478711914802268493106073378517134520929681103432516201816465732996300646470049328888473845073447101064188544045077313740275767442880225633059282179617898349228362082579050485879167219963349406051415713513787395238737636927837199318083773257390134651270160189770279444208748679974244455832178981100623940039548800711096838753752330968885611381975377424987901525639188260467544387266212644320830870637346024027118672502290083083082324185412491687856118393001658497373036695679823680723328678432086844434094362839636022706425582749919083735289885867594443043840160981433069339434917574231478684510563469020704765994327020826139626841418556116264616346503589746086863446117480020243535175267983914411536413220521768882683393048264966878332610526649817252312995413934871886734272669736228957653101842043047146892137465229112661570219173490297849057304797836436309163144461024087289958723350420633166991309358505913962709505711831458025648644294142503473196682528831937362173375404326819964338441732010643930837785497839829992854223012354968429591400479237798116338835362089772163711708511431621429118216059290767585755878060855359921105929512307374323975655837376783001053724141893149903878943242609928233313247511189399919531015580934706184048887697178582668815619367946592079593222675189894926047845499900666393158623196324247205783129365362924520158809392673627830318825619735950983063452785438203596006301968406946955051234252933884916380448281338591694472374801370188238835703474108537822219307951171614590557030693789767027265858439952114990220724697435250732335942228368018680638765868218273860092738496652373360142280823782876417882148762919923902263452607034549735072208005755991724505823780145287643531346869846149312594161096063969967608034969672410580712513612105040856296968830284804069578487125511322799060618124736207307241301340800399580763887816429268756538442028119916232090089002469923666432013811778289539275201934654490946376710161687780223519939916194724420020129899119712183381426067122014708988849530962594245126636849114688676841389104399261947756276672022405384663382058746240728357934799339173717567627590397778170607390822808224305884833789208312666904475611008154831960935534047173332397160986541520645614174957573741654738491479510047438499308153916681528190405154232254230788771841747464715822915299657238252181404799597319712147965595143861340460972455760295647127511002643192487423540975339468680887263202428219183601175367573756739853937503735019979116775340736052896292248245050215050476136896569310959765219129895271878988057433302634625938824947953949399358094833948823655045566833802011502927093396893042193701370180357456966465347988206209099911596038772871301638674186200993053239287786123717358641723281259845390475294258417658988913517757114473467916162583809098886852328363856614946877474214293387288117744882681989537919535359028858971046519667883507804590909360737826952467696961877813877001659546194191905550623341485289856199372298194975097822245241647875878552813651148843631721811729447759806255910349112654806481279334755075065334114963333654228968459330132850025209579303287246208535209650225377429094945612452629183200277788408839597225622025455508642266915026608413128915257582173886472958435131758162117619165924026124528488836136217545781614762775339837403368216818474462172789791031671247062429424768117522493806094754045069082942853980964118922414874855509499930915750920475837117187215025376909354027820157258143777761946241769855173123003901181542690537808923920729100999159996822904860069495449187703734492905246260791535080730208594581862913667880741123140371848005717412787850013257234888387768572146505586251825315364981289941197283739509170446877314977018229048666619136738307270270044952269589637323393570230717306582711018737855963140874274671258082674992423539812721699617591086463094666105339161542868159938128156485717141711273907332196723095123960207590525515522518734422827375543475037797309620498534579626493095133970493788423884182092412215288181451779024515502021375826474681791459830488282038820693741631978706246516756734700240569849363747871988201011446132128979980974517193139828142297446787747516770918068693380175913302929945113848516307071747251704135380742241039981539382003778213422413497132278203586727029273752874903707904409017254319241702468568940301086673917735297904339962147286957684545902182612430558163500141164695860576531199021360535490046563325362157225629398416784934210522604651296418294772252596586125120029569029378043286398136292676698847916622663442284497376046899159328822435252073911997683268177633973503736535355008895489260726946115448759456889907620478815896589183656684118594130554396435343974893187195572041504451711719501458861463047475523645143068667475454884929507821011971893215416034298581629138901290321784858708349984472698208409319124923976134050885808662358002597470407120100127005398166844505328944231672787548876176384629892459967696126499921121379008012343500464123639152090829017324274113498364653074368593219078452161592103847824637398728766423824823350833284335237061586350880806294094107884003413814798547786767563648433320437118341109035435291047733045761540621463886359175208735191066283313017670301538892146182277450453932171740204373964371640159272091032517236144409780981990003184667690358569055642954512374648533966781929674936833069163108197177440385097503538868302319601287538766844330721130994599535343698517648436844849619820043760298964766139242611616329351505060190128283684487443112053407314769985889774982689966589874286588645954565569038450348198014421101532007053325889422179905177428515001425094591364431805169371599850028760402811425093377926092357615628832485779332607249582845273924152191884128199960237184277655593698848732427736354561182131737637963036953518254977726686686679833627345689041995040336814685572561353782421896559864161335448193351533875628449154152988894599368111119408723424035156922860635252492532766716399281876474347599717000723599451273515622727826342210008710926834558183686064732655820308836428193257041040620758130370899843033315188108503294580939904705043221433707445004784715742682801691279203429280043242314632334043883603699090433464438223962499262951311045989787166098707883993753504153717630886885771834114832486288329552791218040342172065832716134025788446290694437247273604958214903830425119491103624294272716713339952931710479818791429012830490640020728492822410001207983965203999440945058128139479723120111482738200724853697656460375411818263576416965383550440336298672323117031575576321421591715993492673686051428088214498922418418648758649568655520963741612764907439603066565028138015057976442643602654448694781887281262468048901380224724711499941128983812770344277302745656388495656001783006789366479780410443574401846483073867807532468344853922781844948510738933872225090092899360474707955905988704482045259349578199584165427138702962013413513063735809537821890115226364835495157925981516565140403605423179633992226254075110251637326410012781462471233512869828999538334394620229711158116005222053363362952325817394890780955533634641586636454100122626661772591438601441492214542957924489460672757648559709668689004470559634922477283179578858796749569219094052146490271684798071286569025158007520974665123825855886274510125890663455368080469535081154158969831907219371958126588546918031601158118632374946462233137987011915883270359260482906771501313116803784731181160548788027224951073303319343398518425613525230863395232730797138057651343483096901882860612948626472259449850107482353420260445535128135436604230444061889202812242426009708071701823879991057138747096749872675606554521169887908185561392627284164156638848892926760711284305178101198913775383672104070226955405927601268734192131963268784680764561981481670021203377658373663034941082604149423469422618670716335823247418082638891822807679798951833787984028734429939858937446540097700599938978221021442172424526662282275822832851568384283973528834248986918354167054729475016554872280715163911916030501230007696621895223674755043666034808780446991686124847168337351583499831650326960259980336721250577187583656631519416166648702696490966602717191535246115214308217210163645233891961141023796982885597169993468400861417510832382152398565845023783117308018455204901452447839360173732933558835998042855846053314953764160312929637185776743877397922870837197359242121459705243941384452783144795479086560335166010207773615078891794931095224852417565622297622752986197931029648534898599025558150806149745356404872889741772312276221380261549470787802858930844001812332782932678506631748590726404355518318471404301634922881332946434034341228812948331365453576519969922116588149605661087967748843987743435636329960477309086408780354907306365464081664227534956791825725060741769403937004717236914821425250954598494236864433793140622418266477253964983569597579598756891694739221072321484814332019954486068105614540667181354315436618296612173609313776621635367643845259829995734289902152707540121852228560487048300760715582871717649985766751893133183236271992751104028720423544488337035194536090074462002489770833546365421736685490080253454365224090438128617739982367001296114241240555056445129561705315380029224143052297987816142903953545238234124514180168802850759012552372682082687649626772181471913497669370063513827512017318420911269486741676611172822369380055942300977077661484399291049196931922699179536990419030399915404374492042534112826205778813076848864763162124719452633641859809507226716932309590886336412144312222427364337549937902671932382846880253770288851879439776045300031341846738516763257164677303220935172287485128343091510093648525983644064105458896550527588919212870480893875742997746868916559550420346282347976381353678930251200086578769754807089371937782344620305826417192822701449746317945922143113526973660573772573705644050220420628303965583726238447850190227791997681083616313612925908927357066746162887184470805945780220226039196053873712023458222706564571709048966855733723149482523853803496311306461689734064097297237096621706364500552461489614268799361332743851928755971403371333606266493413214424738096680222879150954848426739766561019696568262547122693961862289498863374684585697807589217288978806156601855970475111361773359869018216974974964612798742359866239131381310978825855515942220448026256494762606137632331204886339084631562300540779084926036898705148242947374139223931227655588216946718124685960462201219579815333782698178799038241397812544677297928923915090005969507087728394573238806721904760551113195398952223837279259029998714491699769223908850851949800413955763677877023873729174565004893593872783282593092002220959129591682480463423165558256865878034674244100791097572995370601644524677425259724631837389568452330022854016631596285943044208899305638051442405209263287149168178737297809602001128770712636923184079886610853324979481459485848929436253259465275848058170625493151960139569414872288732907028060098353628845979834088094460156635725104282522144945382756632203798601989194203069504110112512661443185721888864782414035885405344427463345760534261678312327628537081322372022924304156959316377809486481736171034241911547906508319395273921109886088971887988711637305877504675198301214482855303621698224653094015825538109042713630438209354136758169688310417050715354407189459405107263467929895495732462243247277680326520823240345137482372297474457713829054220086712114107609474975767341145078022906402164769640133207423190254303466792893384324534489996878917347607523139326581926348457106629021076494236864477862353460144884525202492872104286508618989953777855801157044020498640668574439971676549791024742727262000770610947374542357061375884221820393795728854329929740391989123321775268076395651407553553456091449558045615745493855066609973109066607321576565800527091530114261980045684477868083342023446554795473234123532805381157890023160325261383986360023810647471712239890023438590286074189945088018541622524031574216332890402982763192703120271039583373139849700687980902913123997215796973196433138345802964165899274181084562042219615420326474682875227108472400424047202331024963194694521007218176760292233803972648665359478218765368927739300968230773477673969261026395444217198770548328512994120904995370119828778081812234216634127133293566352938659517716096397808323390443401302885624599018787905561540813867997459135816157648244556851050119467643446815705522160451303334257400181360614439294060494331255744878562616456145322815594959421654416663495187141682294802540959781743790781086925949241590160064655833909642332541796277419329574026768834091977344835840430108674117007772763046910732143784764080235851192335548628696103959206000930264767282319659879661294614933288979888202198103897213680913569542808905742292326875163634881865590726364872034501293129793253759036573731868439384564593800554932440240606896453682826193471885589967329939316556294712958109911192170714063832224202297398415905249555787767643717099650622813816250180860604014095414535072554042167916053917152069072968130289717633255664568936047828994064879301550444017425036129403923235636026677710895662424712720856026863983624800002744703458702436417342595223695124158720171491218165373679177911437262743519513045186004080606344145282144300115028445859623170512718306537396071981706427884193811302469770908540945017590369721643175618685658945211337289916479127646462230399582961037608481581970855718970180170084410016164011728221646479445751255182503344668151955591539776627931868962690682756978415938097783424205460008625986701036500205990958821981535123768730168258976789113931756016541988787395260485870662077507267686620288522760865098682203354911207878094599463244938356298625303272049943981159166316993403686348017576925089933061306496773753917164794134827106200359541505745409431471114026546189855399889261143383078867005834113326389090255013203174509198992143176896674914103215843105088311618831676246653125703090865387377605255670695378989755861884486904194118762030393339215451084942203315258409669743445801431717385839748314060839591556627962268365200724863944714959297736105482739823347338256307478581991966356245645681261032999085883494327289051336542245525696347984782244235107005439899655410217746416742278774252659935371986393594548870065945301939079319959325452896976406569151514222772783610760129300534514008456864326735638255007820072361219797878117807037504786136107136339047108832634667867654818077554289521870589309755707592844982794655019942067175883276569873818597261202284614963136973154890278239545506532893870465108102404076140067863931994795689545784395738688375027549417623529690785813047207035306281897895854645659208667735350898905806693569201966189661999967337966440880774797484123511000536464701583870220249750029030595486992104203769608039188208091383935176714492763892242515990405806832083324328973297221368213310592188773434845226538819004747111316621712265767468458868283665340460631328823549064981637983626351361877926941168626412525869840436393029273130592518920743612296178821466584972686791838544477532728640279495146897697594890997651043076400739532764821999679503392146752139535435007665517854091153260238906571301523723643395332855462723564738225396437771320111434279549208521062323965337441768828054661073510299968813840067407502105657796987083127642807966403718280192654557659549686101510446465874722308595017922295579979774413297129243656429103959437850367924639424774406326414034836310806626782724409774319274798747926571566769064086728110083709845939192594213212449397823443695453865539195856889268243024634304936339947618671463438893894848182806896993690253382120211942508168432768569268466854246891526192247817106013677238787880296966090843600090819192851052871171742172811504425327104869488758304683682491658069059668393877105837669496846257991380669918426187997321752936580104304268551958373204347570373212707392691920614494664969424284903953287419625625721524905298629804273232026749377089290937086288369297691059799481178866702965386529821411758717246205450353201337790942884899841068230162829937542894656184286546218072912973688607667553280017845489316316269654173475469031063166945148487849338352180634498553312318297317014461747623712651529102669060207617299240281529233161125683922932339968568350575113447295598130091246675962369777214763494155859898059859283410134441019821842732328071411327060834296641574207310145794950134404217734307265124816825049563653527235570892493082136054910537569584929466406654092078510922467318421986187204460427978586718193769418197212975932929455945996949600124416956569300008520583267723195278728037392501031705220318526080815098492283374804966038665468998154107601986049932858724040655625453700296561300520646190543060934342985026959373787910910144620346756753380044141392806795988447360684388016147287927291495919313410519067388686325802706127032922779677266911551126565608619168062626300263479686136404569019697873231207575654651794283041145539643174408796770530738542450761047219967642385318428287705516183254599972859001445759215845849547523214373705205566820532622013319603439858053282750996579824763140540698470095417914501352524950769302206902282062315266480845863868283455671223685245401157635304365333760619982445102013853153923594099643922096196779235034901572850915839103144496444744281392046047897407037574922343998344222738465404859546213651375287342619930415301187779371420536159054443913897095606291777252387575933544472246721228621620362589911848474754071565873164532051907049514484899204567768772336874091961649204988141059038463695069156635057287963426322031981668933263089959432295190550244135583570528064311521702205403542681111619815199201329845615211437033233737759412944376260422313536200155560669900069744561117525768422867809043898729133804870145091613876382043279839373935145655232724643824521659117969991429251081061831233727151493832843779234557551338746635142276466513219279505751761160529612656842261359636649533096245223399634904201594517154653801883536371428483205765708444036237279112620370408697092503209643670481697432864605421343065766424333665397033548127700492538091500064449015873473086395855514466599672817927634620901063458805420093501848037982375159727381312778991568373684928885730812184195369071090631333087202444846409927589511064375753351035447172300676663757779135476659790228916098689964973080351375196481694472306742538223816878553906502779434793714183825524604543757567276829787608899963857175552790442121022658568483428780697790118705014906370813944986223494339590269583337797451781302596373117662357191570894726209930793922888250314103203072406785532532929581890667339609094575750056763244777686111277118971646848829153984005359763044592597621771336261987009456110391489012476083477022903057093459429552521621069048905354737030374054834872119703111456173164333069724636203304000673115714604150474294621434461012858336262899607577826706224771302076427486945927164153844673402432411680197026031607338201713269077446513173936741275544638726271593226006580088248563475374732279593996609638648625768570789435178167237508237033336659177720487133966544528812283215577955303960199799850578323045158766453437746398335819694285043148556833120509216170837359564807476246718280998457350467445300473765703268729063474821552802014655408299284295840939067969809650048682896837524936982890056183360839842794008427658477908608520502423671718310404660106217788054459353568439697694595247880209726537157443967635282133577791327679637193004926743388550376410065588609012618900755670591689404070662911986023714533323314529939231984041483590315572896330190895627454137537925614516558533958409397228691369108946461849269551984247339510967437925479099345770958498892469056785898723907416984011982128834682563472722598520471252931616770235483734776385725374196056733195709332108986555244254855657116727310567686568849246059297088336625940634764332954944628259742351946222030476185305565066072278823430836104087713534360805556840600464899448445737149337555631607968771770597672384111990127346248798294755587745092854056821897491430886670482212532377094023825629916982720900320155546325056454093962929155852806777896604638120264491768314019623441280128868464271339466964552352909161617256855035596261751301993206048344342329776985878965336599297758862894520835004165718832776925875699814526207296469148427856040393731805260547601656284054805466332244594493799516123492590458981386299069641246854936846021436668476217935660811523143784953339984982819564315042797067515070972185905572510844871476656142114901606888267823217245478579394160817687565797081694823103013457726293003735645288853539609663151348524932885175880595930045712443257814362928123889165508352911526556748068715964727940705772340953872128753492341323858696342745139089402199291448332105046096615764959656623409600011822005357365200910558550722588873418146735071853260383230756640322508924455732759316729162467647897705050540740370144805092849167600306379834791813458410429509748583725051001603199841732293436911543739241295050575712007669540065066519052507196643193893884267969570809931180930613085634148178377621106899693537420612965307140195563863562360249793235272646408630451969725327432351791989581314982098598728776833136146185977843235785764992033201077000987440802077322628708500237723156487292702173117982864515839442105679809841396590084364200349279242812619303244213136931569618923895291266808736298629102121544092192151261025748462014694624472327046715683737420461935004156832068832575439823838457921164066192838286922955599804534384251250892809739536826544792890628467434730041041877668424257285921909108070140087218101539522507498240560193771999472920689785123996371348695139191017849264623369586814633404148209708838580020710319352070431800140158023606331512063694773132015719744983747489514010723411730358775066845945632026777892481289570888144541530275023039916285311894077327872173708673231418027611731574368639548902081944769318064626031637403568924929364635745329711259333133023948095949779296015808903971532890998053133382376315592687200109785185065031031630223227048879382026892194041167877473345193759790324489308835990778863594011892905262835003920068026322752560846142965564931045268491427441933097060722227921972423104135806289209985249231778201079175260525532174433490398734522296780145583620792384406457841433729391410350534889241483728163415663061529389345933537783957365563536539734625914885309659654271332620139352812061632061758979382348208087937236878477804342053444360179392821052074255269226736643027588053821313417515967554279123298995443403730791246513940614092117315280750007854174346176264919916337710728937781342957106799473708505474252966446629470696969992407599560152025850173347305716639036301545892396861543722553834529071844165636734586275754262518579376491302239601622761229159429089544427524004681086685314003425202736736888720950752668093890060058375857681817492641111037265137006675489697218179992912267096654552060993599938061258908139214093468616914899579034449913514864128912638101349590507314539654554013610856203483821691662620628254391221666451622255237047890986162123764924302511042469152730502531055809635533265560006982180758699042581810738879201010046229204282712135633715750139953623332073597243513912054503142067644990394311767881862882804369190995514021796747243606624878125759722672025718865204105386114101633702316536898414280205195071675673462877810078317987799492656916995343876181387440861666246533583595743408340340046981180397368439127133833731775828653734002801951265071730031818243913161702669253837081487478874585634855741739394874795140278550314202029872218919092646973202986524172374320385669643682167105406455363353995034280877760791744639326538490964706179036815782202784688194775438991006552753234334399585659021675467594557230510749869228222877269586933155022388060298876311180967729375309694684643834481534426525238815023176832503729619128097627663807174634869878156809002794112994242887967092379327606083617661759971186868683748758696137155487252257772866706379018925096316136905789084059564212112232066026828022297968982913284640055828943050943527753514316979451105028415691400065067628728299598034551530047440020380663524967534830299915285430611218279112867839077237355965630577191320645909225539839309441644417379899808351158191121734685310644088274705327839938112538283345868967189642033895924697519901178570350347984971141963614500643678201569165401297477293658320571839758363668186619297550390037495173754847528881116908510234335662642161377733204610462650825685336020216931946167627504981591074050937458875781406488360142261642030885868789971896701924604209839204490522998012699001289456930917411189976641061247544498767340900877308648905745408691866530814413447830688442022680215596767893774779698564397444255481020310440423729816181914521190730286467202530385365615584459601397178885962625764165279972319933856055281638512245681870676712910282407225354546090326813530040402275889413030910180807439438894674820367812867560530101942908375357108576211187263147782080383558999350474633907291140552235941807522921012736632315817080987048528289919090669896998023837442999131066862196237610941177312578792662622173946680448397681597527656322478387574027056333683508258728803426226541844909410438508340366902652897387597738968269551842656609987989269730311921094468243045469400867670451888449018403316549560592875641932316194574001471939830333145127894236994431367565212687854564470610110534872433894078974895366688558541188131374959044930336140322101238087067546915631657924782649096621110663262249521209527311337525010499701131080054877930894722093308239785874744694939250762498667629854028767226638955170252333298018029164635933088053171372851208933422115404645806294389299838359863242159100813634227961349484625299139718515504115087064567977623490831348269405881130829179790791350211916382018485082795772371349291772498716871350799732246436823614499431106592747949869786877719121546917786610282820975747305348391578604359837221211880933667653702203277199155333285075387623989725749255227263601699296289098314926733927611039346185125930308315357689864836001127566313061444872647871349712649203433399899219585364718258674027815323547765627253343515108024488211093552440720543891222837647387313643760920138071578789553942727636342331995560581225953872404138877101095483581028472835833448336063792035861465431273541491984840617002306386409843382332881994621415250445292841647904939059211179124791128863278423800055007750414221060248195255044451291030898879904164620778119498683823825629197091410803931416390426502204014676049463962387474867240940783590093063328900509906905387480505629835122175289457872747295450942978712474915346137227587075362855950598627541212700400117160918283476185563973858117685893469864134436786287920459114319900681500747985983143597302249302386368671838069992742127494052372168151021594337601531840881224381249135759879384383053321527930819507815532286524163245684506148675269086658659465000629588807493571433975850557593720722290078689028853488783909540556062670906573345140266536115803728320542029135786332268966256121104694307694728590967541862531983510997171244780184120375839828512064259282161991298911697611023272578875961773795011172093975461270118167277046797477703536887787361552634024529361873549261105267065277138575603558122064615242190430146839815699175425213447960287595679579568752429655235440633233204479083799040188768927827986604673080505142113276575819557385752698417206012959958234223160055782452101684720255531114358622206889630805669394996998200931769571227559505430883594078722560165871288850512538414465837566821458809767148308599818942427233574503823697633676476514338819750662290014523674764768118044718667565955523038459939733795089739017514217761897101471185001229198069110127117833721223528184907229414641082018815058527749694631752521866137105186795377664814608004777850145225878529168853286289952322714423765812845796597716123912245532431577975929206679484353896730877071924815642390649690404154279957752570852781018920331779365007264052917978304369113009555304306706174963734532037531597663584821994707440670559529501422112319751241560225891614034218741477760736007662356349652971004736159213899166639012152860583299964002864266453777757908996567332672962240150280657831725408349258109709912239454808488516345595241125460347664522213841472262634901901476589747914496392502867855383789477588658234486916738779604574512014375039628679674095078468905329124960822424169257150810126438578486304691845620470336290280047560715964715903679893325357108713829883808712960919426866083766266458515891862950742041267260227210239758989272251000610136555663037181416135013290604719482188680416154185231606848688378148957576723067373995377525002447042417116706067288188868960231866898839937762577601875603666972597771415764765819404967962862823185131372095328721512627077079260973342585764698113333422165198871536353747732611134390460204946421523669634967364244222687666222938791290157043064917295468540957950118326122691133935575555560923581872539330482199904152382205534010370377229286957532015021212661926054534609534220280623029431695467573565551509071954755630104435924583427893161352489777727534054978817954769675713511652541011970334953445013511685108791343048966676202244390308608807055832652230882958992114565169110209476914682053222804092330701765437604640643424494261475050810215203089568124162065404424086944936024254111423507095565584274355115325349207501365124073910480686024183031598064740762133098327751017334032148854417001964843497507431065645086180989789188188005394959399287800994597081881669662306878116597544500236712375084140575873315999711952693258633370136679198019773732740847448673227268379941092566733510062786601071326292638737227521371319574388813872247183765149952306443669089346807158411322335229480076927870892508610440915746963621787756191181059510250973076259052906218309485960534713004735782210915273137282745421740067285341677627065947751250665178970357935440346738618553748843323395172424550328769287402894959028326923108817605447313035671780712499360701309871811605641982267495727185605118786940019656890948174630087535164700187598721618776156372208156042293952456215771258465348067400475823610801161483428982906417067676158808453880780910798090084399212650354586751502454612191268722526110898791731637442416397074850828711518629705526104263760225822313764561648668853410808092895475510376237002255457168019759624266640961550775519568218487677973467774098044708029548602940776768000597727305152963088484251707964259164538631816065379109332297840588365027562704499439743325302763449193865570033263553324791101361534264612661989864916972458257927256815158419699712519462008194362289739916168887460673179592338092468430931258573633914402550758579179244687503429857424821790975601572520692686468464980117442702283534084495891975680820215373105345725030131751494291100920955405401736884065360433768842063481880105016272011517215696269924988268765007002762058412450261820934811355789947716473871975823124521511337603301915767511735570053135555747830183507209105646106769626556023047831675865501359330964724564481651133711185505589250449965535721781563588466019125317108986272351222236456600375156489496705722473851723520059451589687463855234098133196601260461580133880994964865703084627408985547080886458643545336983262001268887117598880749899893842796267797074129123875167520295717768475368301615022847041162696386070733162783428052355954058830806094928962856098194552791936031170383239953515794641846754293321639943546454962413541455640438866483066506186875939954257691070921418524134560152170354514746692676110679127981848570985934513704582556669751268901122843881983889259665167038173191762547594833280428076397706417252795825462897139133344642983039827255396169452585419360248790554855369146417450389502590706237384175258420843606724288662019713691052684654603431027008541600521649975697599249190568212399687285635155907003129619289427498337068024438428116960730457952233290722104749259390930082021860688816835096237786542321482082787676224642152803990737569706234090231021781668672961745292200660110659108638863566392640961808556244102474553964914569112362333302395465656888928155100576220276648526473909693418858893848756569373758328384363197393034141025380356200117469418969294015439751648503845035040470597726112631936493263727327559544177079187130079916002414248089481965919572801506464019120426557619871614989329150468599517184978564070551913435630605666339693390271221542646137368941277615785491950068184159473820150137502212988786810081522820169658187704849910061406880906407107902224011675632521364063647698696569767281621950992191973441475758095061201989218124131181010433507147833103179016091092614436149310313158444423380915186008416002192739561452543483221492931096589842788678907756675161334662388955567123673644684051768517115785420416764180035587020594779857852124647198650601710920975178453767685770288829747505172070988329548839808042865250132875718499277970044776920968097420102690087469658622457318032919187575920515280159217516688400370198150706889066034195184428633456803922504527880130914650415421418365894125546788235786642170261971130818960922548517057443350588101968715314058302026974447750941226865328552057387791729786760815937282138442163753120680245671925533748717404150631462745668149099972080877255543466391235052334141869928352698967127800339834061634488391261161352231476164802521535703434817672182448271040683700342209435977863071734747666473157957005006872295509350506359036149608158405224724764761752933535049673614450734730183557485886333907876411641602318914586868908555913344364725353128299220583474830669031047390370931471254326313700575829601326328085903480269942283154307815286112342123747717715828481024551224380177466130724865066744234030225889356950987313350246997420823132341503301803997040603098624138077722691627521350843625631528951518358104091667803227914332403799200141515963184707413931929623217655819310177857514532500779732476252495468006627023169145822922560073023385436945248643600109570231884195300404986020336003106250922008199664481045695437189434571112540938709408752803025125868573203551257532134858414359834137678072162251697055033549200621583218063698680280310009937356774298747729344531399757208700479753567072468061033411038942185904816276066191373440380123814395832301416772139787691246164515311259318573826804093668232158273268268204028948809392709991082456132876111715285484799752815911747531937831859482992238006617649316119529537918380585969925222106324828789449030535628684248668081560096063647108142684398898053979755525806245838666307477497259490387355576019825059239189947308830132000159939552325995465783413252042996208292635889276602286263320957553497396570970173288824094447356561580216646845926995956726146178727819516667448542292172371813029445926769856071831623145171751440319139104703931121003027825272603492285706071886930502988209156699375362610195383475652714863989676927496671767209464645742784591589290821584040505651220459786042892485991430728286918103759416595028021838525885704602329312101484399917536458290262265432817925677577080728079306447315837631309138777080927608361521807636107343530633303659370644474069327435824191558336524323307018928094288500759807707608717501186838048006553956227765626029670908642161910113046975993583860847689767620619943775997119000075825871215009847093472413244879404132613191664882424733243441573485007399962285136541290058057975964349133672992192746543645542674875773684107981276620729337695152315294160510445677651376159679725721967176842026433943725573311129871249885846319555377051235718994635718852048171556752166097619393510244538851532933852130562885868130156179072518060896881892117453560704794451646054531110363417782847418612946130451350641920015477135347281148353178569320152327343391148745115065763156346885803727329696186995793443822346916042419841401809445557148020525922233416628995601566815371802852219717883315899968411391429520201366591538546228844951384092370217090166164012371304835143511513871367584487183992094319325688428658387754940608455108280066950158852602173480407684023478826903781569218001797406163390439950376911118802308782464966716153612958389112154116429949392172758829057649490933744545589151914765263931996304189972792273980843377134055524225938021522793120597821547943836471052147068269484371313473857323839434771770375081451945530642697345953875005084699218137182026148763164290142337342685373998170688232264243779725585794990329401846532495994198284856012425144606203388595018935652932347690061015462170141879265708551614704046922847073405039993423501683513878518481592465221527783102345124025543520074233554257704157336390517275076299995615754656429468427607018119670204781427904607347997598407148189454637784442758469862008813363073145625260575957199225899176159183071931992085450676919773838157432365859911518880767055007192722754618717891834354186618836639916890265253848832093971403474178916719494586152709458023690604028248238608160894994710503732648734512180072290473561547863811184410177370355681827167023137044039909976192728380580583714514359313428582077059965373520261128836335750362645532267245434257007405834705605029158095245029186387356531305222674546733482873240487315941221150089909880483383792482328111826205369669978303739777953812577798951616832873431111425940694501580432261636707804581013860255270782684726737002827308397369172225367653063567485002319819663492001578662775463457104394408333121597800277619130108656065304876440928634781746016307753926719381953825609560761881902092199204298155127081612418439258686489997572638765009585334759806795767225515654834663515820099583020696861640134211283762486848756503151051932258297959739007737340712620364354218435440544943111634475664005026165750144805436951414872862705419368034377417406595515558385377248493145588263561560368381949048195679849404438770806934775071678738528709619687180319120868884743956109882742329281168397030511392085571541265494163996007824880532766060975494246751951276065251440999771274158407688136587627823771740738453947264951819997865439770834439693759486440834726829721489925126698262440914048971639978313379737586176700292413309501468904716646874231774651870452865142307928393041842793148866767718946627810241108784944784332519465303603985303737923897999221651083347920835972265921990606918164904242395667389640540692273403386960531104124076655219732563530016173636392121377909802617823152221393001943289851384774152381422736457014819996044643894157409377808216008333638147922196027548996721793768978764927658343512611015634242101481271538117443009053797638619504400716109975432795628649558002764151634929568022134093390260272251092876617521192561836955143818540348753901007377648388280912652083044442207305731284398947027909085996931958541517797486617038145524933967588662633890601604980569099318488696975092179146674544691999781263581421854339088738157416367909088580727564884111124373658789665658851031941093023782062628637826695994744596397086782411808873900419087139406235435591256807600445575817182854654029363458987967186140271099889011851872497521700981680637274755130234653734462460928951956370959408243448247992619386877841346257625362101148030492335578117689687180195909403263491423237162222760188048283578889456615369700305122026755312151492168304682475488506523956363293349429235199160015979751515665659174596347220863355704088471253003214505689397759158907451165377774020229181086134066837456526901326072537923027447233489071537023838430804696000230987936960863875271059192750935649701336330439915106201438922856759948228357761058544317440761147454191116179304337385763607950810957259916481173111697392567801357643192988984293642221774836698253733387960246392147076426612939544206077754984915170866535229810457169035496465803417888674535766196697762389935031572205102588528139083190971911492004591527337180947073100918506005552443975140867536845060924050249302819400899156078832871321899542380287746178777097581948484411767237925940525778277475063462039626018349048179349753494221383281571456007015500549442713355448941269675256681375130223929073383300567943012232910882130309588780695487441901209299328477976988480704298284388062818304941447581771375944128148101946952212095851364901713044265998321831177067428072914830273282369122649698650119278323947192364324332415468288409513803191920587933974709304251506488356449390223521053707251963546820593865105469653926724707442051324419585654757770876678967423808815147238661203934793620332395517473902315992200426633148597778176615137656476852920677927668619994733201984741264428781317699468099385826392487435274967722002245161844265747919086433570453459291903616731188438046352532819849711451234030033973038419253896787019170986218255858458163491769567782595059429059384547106499721073942220039309166719688845958242233087942000597334754712933587299047534018972613010802429368991050687640220236316179466639170254900923908974330332770474720483495626997458821887327517599007393762739945327692141971686374623120004964232710228960246001082678593907790645629540346253986442303944211481103240273915396381548678370417434203156392627972816776105109850912442416272176538673412561372067744456646286961636845158615845463153370346353291680052142470889258429394286985271355878313992266923706653645537795023844321575966420398507425556270551120137858191667566434664171719317570275146431994723452720404480030860481581585811919941520845561547061727176177732210373132933797396895645327629611512075972228292819236422623133939941153385208287037119951839509532888186784435386012814372115721264776130461365544949362184395957337733323367414506341737586928529992426832697290723129423370867895072479840299853733683378950378765577492858898138056831065790428936706098878648171493721106189621777241593265003892111140450768873438237646476384179503607748975685381034726576783676745946501074932496593363350592156647022053268461911040953303990964570383126759464627421304605963893022126086765469263151449358214229202668243636109954018259639003835881008173463281881058283242679211292520442528643248433030650951819434152618695059939262970756022649611168473384710979941536932388321609996634533516939195247279217917231246803936892449747748388417038319013049018777494817477004053903072431488732410533019220793216262494877060383371891350183078114027930786312317589638265032319132493368195400794857515914621796154224306488892077352514870100246174522216812672381756364979397031116755859193838122628229512077095072450368470718986932560239529639319309765090431409377286333420510326320283416734378270438111304090888614344399145458846147732954497549131400072381838421951291120339889837803539599390112255416095231541987067517762919157791338385785670160101508926030196026059042478595206351640985128716844048997639732434728688545278841040967230145788917676374667921599032206792024849678595898465113071791570867011067169475901443215511750596287837994130348664687569441473418222706729215215434394000969708302717619907749990955394696906803749567466461406672244235457859028372124394849609911299724961519631638202277031794425002307546116709279032967368447977269734916991882727136788361549991346842041970544969476958724378371445626322738613626225356654936128472860591920850925696723958572734254182979222908569482900427776390152617283718072534283471186169771540756941814281181222990280191607034763153850978820787464245146762286230338620467839061247939921366928085424639354656334629896886501840611869128530847160882834538006887120253767380984642329063513635783717203982168402817034512574162771966363334280522851279703586093924283536121296705893289991331284563244233856778287949431189362033119649164855253243029887541916808730521217023297947662157142835986797648259537330930017844221881332247517668490979200494728281636308111426017137050068330455334949408106697604069302974143614909183148895976787807467045425776630482207815242907758313196959393677179628860077527753229875418521959708924427116872629186653909504949306289701694315097333723354339887373433223501653370352656120086866936449535355813316775987261118560253386111552386377061183549748923759859539122571119648908613908367503938109109270621920289421072592056101894526990663707331988511780720070170949534858510874646909366957204796790294569981924347360436135764001276295358174556718674860925164863135212948275655152339533301935362732245457249011574598205466498565639219621788466633793319737724945832055281839377212119995165290562628887123023554152224380753308852554446375041933170970548792819284070326855906156393510476899447575334275685469644314473945519595653089777429552353597271458347048682877418088404436532522568731676638567336329142660137767011137116927306212140678868773500842347232901485562407473463686639771004719481831481879086898008355594607128420246407753078600901198071282476942035993551643197624187060563391788272486173144041613495145834877352803804860809139570628862386207918133358844073682603406082636517131520689436044292209489944850028599508811423744117221481697587954986719047443918167958250555063850302623621100018086250473225585022475465120273883590480366611979605182397630999510000207862169357101330479572667252226344281261768896766546679808375420781822744719635469397109941002584004240799872026721763817524197851897341970224655887936878154062869569314926150373270613735890955172483143655838547709280975543988448264964854192060338215240832825056927266045235927374477212111698527875536425470652598148552130729828640725338603587626752640305646117966337093526693536001558270716022353549236450054337239428799985956808180533947609851720384769216402308824613368811624083308255467326362960339852880871433408681700740392299112645548856848599455271624256589314447040387735281284990812099146890934015186948889323861212073306175906101075200895907102179814177456617495818974906660092931173087377168063873747364932471009202289145351543328734573519239084263865481163433462508759999315690054505004293863699891687322329146183537776879024523254837339149847419914686181826479908369067043068746086795407188875484084963776364694811649124401843517475061241787742048938819844028513566754306303995402369675914379716908812346959110080988169891515465686633703022536400198371817665262738897412800363048098353020259110318419217114628721893631200139628213557089195229807266905596439947794000994746715358477067363969225032095284788471354625550235328188752630242251124852090611718011811081493808492713396973551649081895150709807856321899662166626155373859106206526540052462151178474497625206176187203804945627505713805264107248540700684289985203390859589135559633411667596999516762461733720759367821637413375309548882673050928477657908185233212597548151186784529341621294237776179281589415113405146953454471634463970247313125331996604200299559376504840391805921740487238263530815685489446954648469397988132793170778793606097896601521739607966494335747989522339791458250331653640210547469355000479256670644027042038919682494895776468803521336847177856290287650706616494439566236902541348529077316429761897365538231199837046578260685346384704224843834252521052828382386455483821136623608036512320642185618098878025141121947692352628108001009017843795002944853946579667990419882934662970426754398265176717289542998364936010091824680609003981079618068493579691387819129003191705032473332131554743377245620238187275575395446008309395091118416766379713186116053939689096418629371155704130087471985331697691362361434505497454570007840107101951203280249088458148379393851019501656413811801170277161918564153464773842897756831704019896100546282735976126807595391360322338692670699556890397400165948849534607648292411230365606364539606080096210166792083006761570946043160441074904384052997612190273169069947380479599778556623556994072911946796415720532811797894396240226679607555703090423716048910205554550997862818864902563538000013030706582679999894890891069816671573232512950519450549655811742390828573563296829631791946812133683582254730727488854374299603472196130346323134664389113370206554944071008125965353660896202139222868394120324614662758936245417290346950381365740374131955223262346514569255229336166624344011141831325615027138523385923430586032214867824397220157240067473101232995607858138167859454050220298275487187968287447078654929572691092733067959330260919752127038769086076357007794731766363507419757079939795846367341109201512391429690954640062729986151041618638420338976838885408375343616344773430616859516738246927148252560102189109808614166676027058192305940536879532168747963085994066624349539315292358561909384585000889769919248572342751424516138656338269082073479396077698539234417474527607637610000253029227359208645454365832993814368173623609978087194973014014664288435713763500200625507207938269848852832626134155466226375864157771891796994852729177540594605896466630981778794808436508149838046174324593215691502456674209086866314433075139822783307474796511362499020089727471795550324744593433186820425539694010188751417775363448444463479366000115889470167512990278415516362693691749980951744554548857804787953296895319691118441853825893006467072827326310939304229341119387464017271787648012512258399276075163649943310898400829804773326906914470082401076409602124435929175953429951488630932446438501272966906821302888360640052171147231445966000134455540541492254579259596809484861906599725688348778307070686702662662309698917061020157492606783682174728937863538135951383408619797745542183827106014107873210023492400779181910115769305004045609224983765312627645101904959343362631921060033812298351502652022238912039949300738731434594780247724498917243189997258141217145625169581429447441953995325101874384367947674569318735353156940482902373884571413946247274562223074924405986409260709508031737895842304796806733066127532839751830243997233418894459631155140902624660597648202381542850770999528368772631314423222914045310744394386149167149875917479292908780974722753601120360823239921931678161763835104393686322628887458500360230590131352377134737147265638388213120269103047401816957882105098626557828126319380353722562927091387914521637138999764982056018865461440194243409574804117035396010906964668593633346667523281122869687862460238162010423000806067844275716644871964804051117886141602910264284007019170826073049836389558339718083196203114098362860753374436501739839651715872902553151841164830332990514513914517331103292396740190305547426694053656379567106460836325142119878972355137723298373604515022403963905443480793769396743617451365354260962792857296916157723515199190793675643332574545200657385629005579640635823833214867832710946645299148575872928835536432047673963075209849431962408811872564322888126926323217596779762731020343892171095635517158366970776952266256992332721371321063083270813879079756425001682828512587443480418142264833212341652118265062635010551777949663652933464204788405939865759933205931128990385098269247823852874911308990256037300541430014695831722741133490550485005157167407127777607242322334208750144480986186361528532176503165434701948957191588536826166699890942057347178999958752336348532260973497796850811478429513964228391217787862652267041718822848796516026268450721506308275803323952110664151414182276421995468783405937216318794345434116950690287683852998079989194894438453000475212768525555530783999035430146248961263815496208483725621412184076302525487316699624514152674514763438748935582584370837165860657435925256837638132192730029788613834749410491101572181043567081755716520739975376142110570023811897642596185875731219595917831618668040167630795433167166087207078335294347693595082374340527756711935219969004961818911391836919673305167377728185742908471766326492932099668960651298313041373157625033074060549037933230506270984664459366044025945565397334591857169192520462640706093669459829532925845459486716756771728278896221619583765674601151435906686574357755924453002854282106675879950721254471885533040122756822322555000975763554647021362894207202033062758256606121316918469524743989416638433426887016478024820790251479981811209505647677897497707758990564459980539475765422723245797074795156951999324540608581849401437091728823131229968797818839446683218507986644858436299857468452745769565581994302956030865284848818249618610281364335992801447878586286354579491488063436252364450647133460413381930237125404295313618987703060951208244805611492278076043413302320445320594120117120814582360164187247367437294498607719770041875279534901987169138895366592605125572885671314119390527171834020023127434565536639578960752572905404402791854181165221004720938219725709791808922557388797642277912858856452669129967092496098621414768835332485083047881714016207964328913554677449075440787986457007657586507888821379763959919273106649137589330124148368993486452448512325085147929522744897763439964808722907750614817895945364799501386698766340307528646805748107766683936632182532713503434839070374565936755183126061657835188217476016925357867305786078291863314748395747166814914354191065455658254537170420551821610937388345400432453449465092320231194219930887956106304002593370643515567933326242782338772499958507825229936831048738954572736770499811328485715861206352174977743708195891418210551087987177075530713814652856210872026771436851282067491905983658114562592696338368917547908292718632572700564098308684612252623914223782555043434302680278997129693260679313354429988324705759268084329753337374419292176202375250019751044086949595991811816076915650083038430398233509193612473102145180877666052755024793726257805500069666240876205826154223521402292792871302514581110407441084610879170058521475623841406606494915295449945472023881210893528843002837633489647550367180239614068361170985012379488986533673728097502179622934859168379167441635103931647108764453257297961430305424770540314616140053274738393262907896352344170471556477826067390788925091089918464448143159878700996101492149741235326919501104985013166058107151266489156413807844884083214241649082207688990860905973343567176613832280842362490155555719942048876662082913108342116989115223214885965288860107667936877080296040524625609404619165416936881001060774150812868258815282104199231810417622825843003435617458890084807519997133005340977612872856741714878753277352168106430871818996394754514851282108639560573195986941091942839883768507668497070328954245992887485003113149038896185024602264812026643563866062072295583483812154021025276211402653104912685972770681402483757746490185004103183031778960199389817018537388811475124094844623684829918683540367142577451694257128488063812139246310289935645282213705644364798471408444661869941731204236348960719559931645434940767782743523497397359407353226629328435508337953792832939819806030865557056452040133807269127611260945904312484775554194483242975145610693172232140906159191361708233734259333133850782728353845983805261220514984876764171965025290950237798629962680487896229455408539350256598566995817067893175967709535516620637156310248493603921885620714916643928467409952473192374483817859572068616727440088490505149194515301351612128313946317517000034683817814480259023330149556824654101306626564068802160032184947942403902606271989382290289232931596606234258090213541219268253209401220283497469631758341856888964070289701494442507837271397545071030995147826265581200173731056410788554213969008289929372399654713651949112080985529456086623563935205382628078620089903222864638211047415682037855619032846226809200197641447567833423575260299776582241972150348117483689022724756904169206338681257621011800659265267891325895334517537360327549874612512050733362980151750894198017085234140059953685137718951214584898736625366569872841288746551100339042322727867590038067393364700527058773838538183900657444141233483084764762990634439469916678551418322709450227439846016136617160007658488743179361017581514409723199740801216271892254318733010916386870990165404512324784231553122977818485619231663293444996526427845245322027108094394374494666479055713774472829424982274229960281934189852503081329546020097711691465707696507596659960613875529057015588342739552910899388403430100458017970670698980031346004817130596060606971709779635682439045169525911542460190446260567414154569806930320970828086209768657811587735797993639175761163251691520670303683726353292368478860260782664307668810701035210432749404140703669076598112227952042694320889708877324388929225788107968191465139806748012099019212816352195226812591880698331640823022859616498970604468630040923081724808991041892136571658925092982510347476092308174179925292119599677272308997623937649034996325450299655932250531341363535801320673789838056402084782917887614564229461046035055744945894199028796806151597548704078630417406599722532408331118180441202726045347960165803875791160803963968822425650958060504938080689012326210406203165137978083535022515061488413419828093331675818458858316404533096928337683377142313352405395488179706727613491355596343809479021999245200355333751188647513550632319196005924033949488456405443841875685238676928903138143152884876325740219657790606948181578869359471712044103704230995166716849019820118662548799926899922529308300093054449693571761868179945847100216705943470778539408699374481377985186413939764468614894741274020758578853376448788745725195347803537116980828549888697233194429440523888814609556806103962982002450303610854275003086393657859318723014677549100197405296859224012914070127328697343672764812981073000166556565753498531064162416656861658929423947289624490033918271390549193710133042507922463611723170283333661752344054453551581124118419936856612533246826295617354828814476244119465455278201607074761986938757265677623063765966004820877506709010555533317871905535934150059244212412280070861125300413986277548973195052314155024437376246337440100540521638069383279943458100783666530319791074609121175420416637020522732879176117698494744459557981900797498959077607914111431646622263321052659016947923814249879847911547355933281112920195680387989985385868824626279412631379455796268981265968532411370131250526226523175346940899142433585855130252471265928050548393281315626130369590917937878667441038944503333924709038451477817440926974703723796193938810861317658760536288681251734022854038124551876265207011987908835188992945595535688050045290870746795142661720318772760486783327152265148003492273486159054405212751179892295525993707950192074519137503727389309172973247383410542039125090863803648521791979349384329679011607113110533439856431673918299069020885870142606361368132449772540964686965210455366444658025962450761200373030149888832623555882091731137336467532586439212031563420627864139794923801776572614777322703722721128476404078424055010877426424861186418852599006778974593380345096409934499877033243699554780859716966812424256844814790527829045767960678421152070090034439719026263237778976488169218782164172818083095068443671485252700416288461727739902435249013893613020871967694693053358904325343683500725699227637877884456697292185979184628320656506645608386724611824362240625427034740237262120340396511171442747792040797084028569637714156540337212936062507726681170764057501976852844499364336866304197815497237374694146624552008163227566406974968891662921267218264277793124361261829765499301552922990411136527341322852601789769960409815183207552611841840032894550182265716535192761758732351777752777692795316375761466406275231782783658842713769902843861355249945697374971541949839430072347402038658889581797914067910803220562483283939650197421305780318775357290514302794057224111028245278604851044164948428828900943855295782290346227171243701768929782333152399479668781186393120460028833740865829254439719061960979664773598130581406976665038592317929860123533581355011608617347138238438936425346159810077146249967876815947207450535189117057848152901601574234617864040414080361926727637685744403054910462700341216754306648127022833097112358459914945022287412011048855037317202538597926229993324888827929068552003887851061973410682464078902140003503497546260201401071698295029276751238027719977038782616908859258365571034261377619440972515387266746898823086374040673876534944292223738209908808431504588183432597801842991892924936234314271942285466425100191563494997998467631258024330508303654331697351142986178393082561745106121978641149135139574902258751047873050503216782255342774462631471482545674226706273934455435959735754808512698996867987843479299798780718165353917743515302911286548158515200122029377460944923467496434484019551507904599890958754159798520813331178046041296869518991656005655728588099430214623822735991777200299323075653564235888410037206425925339024738166208781820243447447756111475524562436112864092332499954268510823016579367052464995662783483963635285016393092626620155380814639662335862804013363232411026967537602031203081869223318538493893730165076359544244647417219544309176432613450034156147054319782692750167778530884277719051334073474830721078751470257640783000755303840502469347938040871638467355721450457695104265669166289687270298362005522699901995398795055333310479527797903903707024900757462104962035683194008855204812984170310226753923526813112841653423846665029028879113109434418934386476228904937414027138638296857380453661272654788049025848661073604062126174368985894006369697043629497286318096418392167926697243934758493766354745134760282406370146810428917742058287364697866574839484703104245757294366929536231293936320614314406267727374099111647404542827378784177189210406354131487525067835758576017341526593599196283605929603939052962945711234504075289581079226799765322236195682012078924399230469211509217060568617907125976634467641492002775327279302756592833714180509403303397668323867444270859180310351801255619900935547423462260116663568198014106682387501104305848911623900670593478688959753916978923847740843087234000912839735949020619472103134997476213745195655425653551695496327947625433484323197794546775334635677577754879400983238476468009006854280967620033302181492636340812604063653830573464100794796146628966043331091646187868672151754064214073753186703310426819692183664413279309117387335657001550774400384639209696156933831163191282771313578774923542147924687486130997226548759182674174114321974390888781973043446384084425346711795279698260983093773209068741151871359046640035917031933653133356850163587917642945179187177259973239521448087869975581788350772539401365011624871388443792123540173125141315905101507716179709090923938144496337369218083273803618216641629624023231918747851648287676956904849079951511799332591739380335930772493372687341747196691210487558315072139541213659774319289529914998205955781272343167416233842490170077263306172573452353939390709490481524899063780850933979947219010192383513331892481818738722954988894066874230477141413256951276895480059371807544962940098564509699628814507188946871931840211045442871276897996810380942731972128208479415235200766871366150499675091168359131960232963128573141795183546700389470688857032801544306229514534575442742869198451881268076227098655490118615159973840110357810729193131214171535995001776280521784245024049862060021567726434384193875500636549876804384274277420865915331542625264469311060261511520970664443839255370428211224261855023784693584720265213648437015619270522232591638377966578886425486544480347852009645614191748233578874632046192941721324735399203661729556201928829740052096538103253205948694980172889475674350869761003750276301920591847138835490560018913705721701545285689083415355206336615002495983264942400988991454208951872150296985755060252057556923909224620237298198645074887996296979528267711790162689202744798647137501034186803998345260045119889962338847585362730222924770028603278505137593002952764213398473745602845955189434673321553386745909970292460862013808555219044496944489882273790478093113560491186079019319366586119320493941589047269765541220645708170392651901874494029414629343530163854123020768036402300621350987061126597583958957965903595038564368737710601439222457223103844075626596012040638549468674408338344934846812920457238599560068587488947100984713454775041394188511500615088728935071378515032470338289795938318578207273060574943667751193041996408790142518912833913589727226701637950534664241336033008003725674277182946555604264752985597648105136882901616131988015075849213550469729923232775606087906666151027894503805378361055572377251888921086083280910853872171426497219428385476942038659968303875986248187546981655002240683132773323398578050977999551982095390310288179331727786529803763932824444484185129832738882353162905682832141251134495308824834312091360392726174773510506540071392439716761389695327048493122801423995459355248103282718951859522256886912219089686114120580680913332037567490662698117573924375503216560285147781840481597788093650301761690474814839645467442475365572659528167856076596270261728828442566976340756998076169170608851607853358676972727028821635727319569751862385662536694058293714843117498504546130004747094262329183368044455511259124573366256311644691001210168446260240558293566616444884680847174062194349062765565809073406069636569333038412516149518170525586653523547228141372329497899137583811866795819512246127185763685815803025617327147095261010759272738727235825163058226539514988595300958718657078687764386507169021521409388627754684535096094198028388547794167206943975500253235781421126527169709364852041400330947676810689062033717937252590920755587524267023790976586657241759613175012620806254880662889006406431275710885078458806244712723568311313707921728261047963287557496769971643921788361464369581494439643150029467772935619172903946643714714354746370129732844503655373297063000843352303563359930280336624705349050805667077839862994591187953749948123198839099047684565272616506503944912827033681544766853378159847548426778228665949033084038563400821477079633289119399189146312835844253332293535082629173583316641035135859685107252275862318694447549535206419598311850702341181803121289044544512320636970451817455673886075450111443223583233049153228189650233641586971879508460968796935339089309424299737127172198205020167306260696267827282602126507668898024074225050768183707532291158727185167708143939172271602452594504801441795492680006014696302663109892360615028108300322352657832781381364568918582492218112198028884980179097515697037430476973005477032772705922534207550048845919209687061510733824130697847111373803833849604229825758615171221492772366889575011816648388525695047947278050289591103315726665495217492906879741526451446787008479847917620491306849141547736250429686424506586851308793348551663480253070383657537342682239410467215347032655727967816437208979774042220472561040290957224699260129227167795078932920864531168050882527049739151302896036731955617985771866807092870735491491950350923418812412105988735418005006501460398687234760957982773310899903123506482058156039652190784471289816151331066969471179831624688616907039422312555357739803253506724955694049127334598066717825630710681227467998534114816782305168193650585453455436024132036225046933934647243707635759613565534739208161833619773622321749461174179243690855354381291493513613178095141111048746894777551994895538191756274998534887902187258467907568411866728409352228342120445096616145514938181882462295578841035531075311957527736831397293818742857134802665126451794161826988322829844068601065414209678561566256120506819874292004315343018011501750622292343458131480101153724249916685508336993690674330787075511166079441075061060669906080842497362178055212223100011492230964752430574906098869594673197003428488336201046696996365064783098795471265954780800699080953066098241310174247723016028969183927429105416572546003016647241656669679649177206394597117471048266333694833369321968047355491254085847025152000406683485036299881901388215076968526756583658959507966642930583973197012392594030497364668714975636481709175219785854291616690292600985566185661957433993280878360251971893634143067970612797358235253078505681552189209204538042941057661182582237093105143350484081198015140295128065312251710475814188745651419751983325937940237540622715033619119052925637384321892906950967599616424553537697868889678623987741371482453139214475391658942970822349143889628526042793349479255455720701637877988688323998980075067499514539903955890817360046198908632378722991209784704154125303918565938936700926738100713190223889436524016386741930398988581650568976869231059916375928494405376420440611479592477078113142598492178780776365899849744227194804884235170147587145463875737493669051351778129214304429531051316909788726338980819874493233502745202721637457638791293673886307013548269275556443734369739129678701439475171716924444865019854299656875890082455440138399393607332507141302998748662126783928254425027677851759880094341012995691152128772036292882723209057585034676215638970601893308916621871366210890655060049769197053734238464168848556092070579865320595762381258657919412359828830603802515684207057974229503941006919443955614712876822234185430233734618572944322704404775063251694408952639948048368046690047434580156560573442064121670387385369582904984588283949366029417441612310306895632509864736951558906388071269792273610570441811666814255020596546331057267356764546852275942875230189741650951095340473968979745552696641673132684331947262349486257334909928916448474895552561741885775700628962359686612515267730308933272873853520006233855775420317821621956387842836310407161467549205139208195467699495837646076552829909082384111105788783472152086546122609248869954297339990791572368871359509797465634404360014315599455447692194965711740869040060607259626602419534809333017731272190452976948156134645151875284896453579549822650037699875900563572756864717637297636866980049278410579037058889382799672273033362117569453680834158599694355919652652681093774469564645515311426822814836287727799703133979270108670996759010179559982950963430621566643903722038795104032203373873100118831606232560936061528885758587876108705892674256307734076128419620323260499972215608163568130134061099997657315792444240798498499559101603509791260723111944908094759774928412782619693168465480678688398794228652500406497053774282346876699398725761660267097240074922522416467131240118831896288902764349693545875239467120824404982566411557153122709263291695467554596938024641008091101455217866474202771118075606593958264669785267563174993966003317018314500246424326465942447075585596727010424670504500594115827275075813900384065157380847962438781947513045983010470328332678453072108877890558821805556728782233349459825192340072365257806005720701642214760344342666606095261409063679343325942605635064173995599799758222981521557045423976570409730653781357037413165165419344644169207982485690996397222245076363803049252147851781568557564155186336676058186013054950022606188042611939116011400848545533228041530623880235097662025952746451132616807743931854625861730993418896781326118617233678397575003376896918596075623515910179673444497514579174753669508246567000371965197187982534969002867815259685250907943427990185967435323608345160366682930345539237494814501713170427915900746563176420442659515041806186221590235922385223431091024432110320015285463303982978397904097037183755036365918771518627031087177879616892827187499826531251576731447668746692825081021546524951563207512316355985028337587498888765655132615513585257542981836931125472231585194694039393526274989271581022512601752573141559754835939627437605156100877716638839953294222577522931758868872897780030529808181164418974218407274618925013864649727071395765943918858752525289988457987756532290715910851272778930565107083831719745496416185886231501867910669286073859643437063362393384388919106313828919012347720870047375021716541070186928676038981141040080470227596256358289132216211596144077863578069208029325705818540254832763524890836486184490481705206343321555204376711572621797643912122142240895115504248794101430901101200020884961133917040948745756068706235605929595695272910799573511982096953700272187656954677361231969550604712139550612567814293362562088066804678522707832649973230243603403501427311235875055419464410811362985408426315532133152721327949999663312675412950627707673909220561239484045846319561467621413071224441889755618374004334260329444156181387467856560424223113789568568011161533857078777133021232660442447037201015760878373587936187929035980976380260147172320803506095862841783748784093888965842555057452227230924638899478260065603840642429640166890782062262340367741743096957046572310656895190700747456777261617492297179321639928448010268055340050822524738729428168557836486178905085848667318204157846199543354357153828518428044922190732450653505081768328709714688287002866570219347989628637163557503491234276277568919034331772883519276470497708327961158242443302774001556676746336489836766954419047417217066476295066217377135324380308294446059551452224628289985213555870610283360386759946803680358677254939989528938862756841196238085394629107751700334099177114709039637832657761702084774937635112715223595964803160976502675598087486708452145014562709747166081035054734214350905386241248369679738492034313648872751838047144012191433644282434069235105972643386115865326036406362019588952882030654146644783772774235443532914262039114883724319642668150246724136777186504582968117760660302441221524545076487387185332782976779842207957516951024146455816999327015139367093397678260034071045713781807468033523771727222925351754272707097653859954769821178844940012746407256622722746381315509720478013523696891226952967676347796099087222608735170812728473551376795203540910686292910253881228402448479586298083454377663194723252650289349977212715293976185645923296147216666335339504656573189678300300763622540499180219356706788816249694616205461256063468705346989390222265183437533056861481515514907697566077896222517604911272169199796686359532044764111537011860462624883167617614059802075870924589556626661308494271208524069508007071927511188168878782586482686247714241418438975958261209366743427832193517028525518174652427310448603782724877520680862268079353314187645920223278742633245191716054423671461508691027626954304955402374700785287679209711118325014056417690864572733622002541579514324885314064392388578383459935317253114184713685428986950136799515810668872019793991742699308761965167840917052928571756808457913550998617671863387454802837811598178831712566078527555014412804665528562425407169476705329937932696895059098283535855146357778610543596750974166850478496928222761517367835533903857703550269071455021451056326920244075257752445404617113684480700853180261623032789708890382135701077637790560024022945036635540931167224416447252622939118123401906036971094633427742844672884052465705712368990980136693546774762292657333601867186550077460908279176142374713072872920633227025539047935329919093930181039577184961956516715288694061115104952376938833949899067550856246879215642160240753156716297442530511416773737513975450913530349061721459807038014343135872810771238451362727448047879692769855689486421269587059307276652738764110271243343900003792388239258348608913158463547454243504737023911166091144479119373571229719564090187578292255303412629772014234268882866463203831794548661116326351696218182245579321529182158767716809318113449246999032950546116635456822932254814623657679748113205018906111731614417100372154363693896359426417917621156606012417227035628918251260095446361308375321500036071025456172548160611898102653872765625117704841467003067985206056710218993042796733334113267733952033228399607150896133725223764752338222052877092565835540211571733516010970154146316012257017724375298303660335704625653926839928606492008279877801692978388072135065585730952289289949494503652744129671918677453070278669251756712884061505832486939520569161933688256862165459316759790401410916297157334863615551193361360406731863380080455499850268803911966829506817180218299924749441342733188685658899858220126220358494837511331029707417976723042215548511581133800307970584721985444801724698524601543706031077292471826347406515994568371675343560745542119792635131123053663288728027484749666015306047481017461704103757679773999665259258614214413589162237326482364622366641286865486303757616379970293375067621402117512888255260594681834651184272232783263807579956763924867956271797552443597256487522911681972903883203441576919782178522228659201873689117196815206950532846946557551653184798653477976542128258659434021196530207870620200237757150053058881463887781031616485991475286741258354087843275868614448417400541118322770411262663937897244250680764035750849316227906006506826026873458604830613847276076512417222948294494572627344296079013457094395758095099848241107421966461513280659500156575209375098364468361686867722157896900038290739686918713051414378897887127945933516367376878922543826587079717336775954288213717698759946603355230790900245937712776887944408683280858453963862933186588781470876649993236483658936641562092334106678675896197624729316830149789370751264212594202197352045147519387165913977913327248933153310998697112580125115488320509603236347709480456831764575856988052840654887960919057430957535532982367882853556418015970551654572144629778227754813758019817935417400548184911389140519151011796047354407443626201984420494714159704777057123799072534526865748851704904055700004117703393976810686533697387249997930910995848892850588095881031581625831666280039332571914042853311530339220995797931510231024374814970899634119761501896761285268033623245831459914503965421637225060821254006648870189110426347154542319259365853501742462718870170997190505245064356161136471495534317338523083447267764858004619482337742667414463764375772432798652090523167805327140924451418693229518153796852467744616874897271447243583965292356843614422388575086045991487519935410202181428612821364912793768274306588237341814753414936369010115232212295575075590975020053693282583237989622212463499160621127565662960233868533312758262357157182986378005302225509844325686399160035728957941802908922429881574444802957895565796408424861334729300087355234636340230075131532715934248875563091363326830625424199045785943066515942943333549101420658132914656076992325857031329577312739782986147980580423847771968648426498663735192226753395440152274005818838991887246818280050081654041421329124475870771350558176005513677268505742028024622577813043691901867873835982755155307377272753636308959126737962280446460630854339199729294746386535686915619268499312518835809355095946689215279785177871299464741193414608142397371106049859145361530912090102957877688584647357897517104746104095191845622125984057171115237940283303164272026999882645553671333645286694722750091802740883655621027158670726048026680741084771483171376100527160257146787442101279830575454757003093817906880229000354347215764204580511122781450625827719162206220638136386617136833302854953833629131677706377832482641777866495049107764020415640232379166860576706854274108563523271709129883911946218331184681497695809077832796997236785471900829581301395077320588040380513408175018339432144218257916199949912134971116576605266307335104893387173322471816939978843962633348526768396471946303686444117892780070892553354302848875139398528534929888629470347910703948050814609917821940613412454790653026726919574276639763418474902851871802517843898523129613389639114628510990194866297895961261834790155083758858735645202604632364783050125096284697041165023492282607445931269332330545779271416065960906021551335432176305523475211715339931592323868998779400510417075248635613222883248065681561142836553030011722530490336297776568893733631155758459723313703728781699681572772667748526719445854286949909021337321977730210866513885459129713997811757882805014963141368832415494731096929516146565155964982590206562654443962914216234252506002289536063205081220270213586920132967475797274276591420357172978699044627165030816196394432045894893027955180692295651912557866865679553163835794178938934996613839648582378307007687017181132713722858133963234203915590058965987830319310317953203268768229115467341954877900234058081464673187509399007148313253922533550410257143746723562627574890301879551492181928399415533698839267848949823332338381100672329806117198393906504789365461050027493925600559169496935538923183243270329912891924298060617199275324553875449969945805018592657339917595146547073769744559058363785529071418942746657371047368793349640305404599819489377568945538514105444216944148917534261626355698276394423605257030549341053999131699340187892564148799450140716551431560958070752820453226878678703935787908174469045342378078105216582117497704097744322109876681107492451606856595893219590909692626643132044009403244425242662704613622194439273148394840340051645144113564912973606904043568240428795380092936192742865727360427748097295945342761334779074003555502291627773533766992760768222658791741594324854201479435613247791074745572995797982444526245728698379317077432770635523896613102137160322917581415917224620995371748428571411613337181995101351767409053697208847402229893074640022109813593270829163860787441981063167052050654202373916090154107800684972596955011458608765653596606414687177010101508248578007920433417330179372982220036383148982104350807695189781395536061663901307777654180184654205223848709392622388780753659561635312149716120002855934320057627418471224164209485192411342635239909030298359383578328693284274047166317464316469709587303396014312634353710814520518055316781937747222677472916052838421564242005693862440559799347536872690592118357048747153641402930264928907036652081338104211566071079219737859724249032153894247029773273971315994759759303859639682189458910219063274561435972647214894211247923015399344888932574338029315048813034256337309572036793317603588358134920279643169820075393884454570447204779018118409535644314391119174376128245046808676332368773997036981368310788114416723503355991735290096308061507213241176377507351161260373875265578513281055905801204399868598271612386789069949381100649008225637987429845725456807721033721729104140743246255295215401479797674315050069441271864743641859101547819608659412016412105303879934402448653273770906068231590480270197185085146476029949571495315026398841750374879343811836294078402860120452195109900100262701128152231442040484932122444497348000586074343673662064152964126066354762646572564725635234005977137605575802766318181300130873586345557147370338532754525676317783708308785634917083232448369081676197491790344648398364346874543448750723247212864165565810119747290502633118009543709429938634219141832335006087856418063391351026868482176260945583013343955330285365628611198905584720177981362785670192484452921153751734742675055144591464005283981388898814620095406918731094817435933709302346895392028782828921464751161406848305622345761279429001074431089977973382687633789654929410077566773996034662363539204383401578463155470578337030884222217513766023884086962138885851755839542993443328538921015027729327690230541802544950342466366430329785331326080578538334317050231555544097016170371143806667437723314609682458872673663785049583002476361665660462782510684859502816210257666354228961985979932845213332645351267237214088697152981122075928932340339077139401030746967155309725095504405740580644441845884223353859501399376908807402217529185575439670687983167515647746113268337301163608430170945485640872810745416620170978548698086027863933269485124730904425897826364466314984659058238125826324289549438181720810490759811669266795580424415476597345678907876163081644973612353179643180728068758703954724311329835640276036169688320594110445574912486382459766727718950544497604011171135376271743760914386790998011889514133338410347612142734892448561348472060036603359492973108738123150172356076475505334018924502411953357269647822734199441041618819145993049563613366637988704603516204249847686590618995202212310470010519758867795819061846274905558333726140233270715602818688466257932052848446414909468260885468398424944048426460720343292263068852316449513928548946175182939377393618172177623278710153877204162809380456626685306088558911961642766904031562863084404177610326256148707770983700222958902794068880025306126955740664284690581131838633515271444182828640140463815969332886037485100452310635161857895680073533590631172816570544674205200910293521234542270090351747250825708024826442530209150157580849905655864935272374959155864661120682199464171889308467542026111937605771876565766701031175518618530167624089545728199073817428034947631353495287263805617346855589648859996886281149720622905571878770036746239515564606116804001612531516785232651283664213000122529065008230457999387685790155317489627523605405212353580083584968578147436691363569184199425154960165107001277616433232908371549490926339115244649964073521744513083769397551083223805250094805528941341324510340046722352992315282353994156617797621868091883705995794818344606369681536290283710048410191065263197900128879078197363616771423370104899844052507453931855303548610802166005992907984882155220461858160007177754681254808797444064434369186450255844955554274645108657933664813965956571842917857230579170954327627060719859370289009618684817836157716115075699157800698984312818476913509533012300108363860118181384154517266446023761804702747473403536848756099721944897877820542755500983729892384584588938973749954608121440308116999968728789412465310528730735579749592861798420177531601576845462920020287126564531839409965598905977841571094608737814049321402677203785505585308779668154029390983220073510715698114252511500967653366719370683814809264959186670907774480561072240450544048615569647846445575094776446233442797094321328624205892446780730052351973638741287850184496500418479851619341131465458358359229625331259537148032586335419908662405187621402458337726559590840363451476959620233154492862181596541086346859601567652450989554048178382222510548102686952620373977743845447097834936837719234391748255414299436672463890811852625750649175187141419268079825599296096050952402500588602753137860616629003406344955827026389950685818751167809404415282819514111006788063615207735151980925679753240231995675221918825511285350444303082643193280893313877980567928967815636055528496914530922065174384367998739127194856017333006820692594054752309778829403716769396305499363283516245084558633400080326098466560498245518194178686374196806543978662485633053527859311346775977426120174505084065979757813623926416425513076461387785293259077794670272043053139892115977858286392424807362583416379798340447198190958681922150418644518395826598917772735748357253210006676012906978262192620982238053896344175548024556349610053409188485429133187622831710280016077186792876210982981366869082980804990300654806436017051585032885151727030589726318560913862188681938286481511603060934046267012571829587820681714453592705173622542023381227582695166424475573391961477567228507452314126766323028942302131270156491770523502688340999019404822403520055774257044145351624467167332529272084263679148115117070336657721794314810106384647389751439301508094074663722495405261082223882816152100512030624222005139348549603551817032040641557572374415226613001478383527600445990769099151512238178302077630487738252849109059326112609975654543469326488645036647501900454779579283598344806068028283132800243256333460744062908143036929959182449873851697768967162510647792005826049488936030858637307085981328474119903008090992751635603605223436842658664255921513673866340181826381802172005044215699572488820431515965202988374638862676669229614403632868663078950045054146756303175619104263645046380705189923827209243550524674978854723106873139704258350869440966183308895706136017603689578927778706293769093453954367860835385627173126275907597142396606660567587010825273432882232482880873543125251286548954156163132840549509031406225466674848572762054244049407915391086431662170484120378747249005266231239522539174058705407279317935271571040160961332250304710273184660676772345981826167113659244460229538413243854759333847994796216758842949297444479613814143390764163682250795380999336291442759495766389109246887459562983182880231605144900924888549481530220092796127419402896662741941902467497007700595770090024178608154840925406725355138319453578366349723677124722946218157894771410051524003300862049427424269347887768948653092183489500075851474550926958853330580945148867043533559156196458461150588653639534012526283063990178885899869020726064709646102297834628948575876419279878031467238595323417873011274796128530175710860247336070412294747813095999818011032819707676795248978684000239903460364497245504002652039522364327618293585173777693175465257048129173006467796147278852375177302798433243358159836274069168464523718042360812152049125316958715908746736113033712781634495036897834405215623210817057682998723646272271143396740531657637124476783948833300349280877136434470816850464486944316985498602807215403855780904995646272161823018091819111834717487997083153954663387220484303615727532119646532095704682276626437398397781392725988337952401361374919453761710838857603125074633592098440892195651596150950828753977681637821780116304180746495429251274261841951564694112066898354059615577496160773570908125435293527023367688047399435918551560227599621225070988264794406036835064958978215755799443199850600036860992361736354560604705021654681871156076191424869684530861241898333865528748379084605227612435424313787873953074329913465300863551505950308559998509941755568426319291450526949548062389775253391794866931733199066221391227008553506334334665101376781312287273901580604209493035877367692945347636007699559815247202643859758757537442787635955299388237677551147771939479998058340310040871183004430410815090913101545069473583961399367735589212727076769863928757653098102697430558461247371520495899131103960621053253048323007444975986760646415149057213686580053035329859896495254545216152965622572282730343650774530221026803480964934597858348290693334685432026586499366970441328036592114863530067173854643940637165743393723890903743740201959938483614833152957092193065075785307076525083367466725933650954412474701907535690387688076192512098042933283577298192673271544593123026205844682481344161468941693030585752945897732768702477349089402311142808190032190612671066150290414393401555633110721443669370598213421453843433307389476759090374198476630989299013770419701989106400042330393623120441679927513496999380879010377910406700733537828453238509544789283230243507677934009368574545261911066961095755273832541510372373976764172660582767062263685868782514847503522037365809118635858024655147455862156387894718016824573336304141388200340438502975654661657955383383478828225478288744535472278969859024063461393423258643471314436163665883012578901547008602111859419552381716475505363094274440444481041700892561996289069078140230462135286753667422921875005647177052775850513488770876280382754821571126028904038214988097488636351903498577209639294063118331384001060472933674316236584960886576177873068918616223471098969634825052641414734704625364804848416509227011365213379670792608570676113522721496052374451776789877530010053803691068299569636487538969708711033092829231354761265153810616862651232110059593850110709081259529185403128735379886277032311042885661297214415794580517290857870884108132393809167358068856225671635033187472844323776273219375150979173620722376843749251606874590083415027699697981872793154519263657630788767766621954262762007803089833218089429139045427824892717218565791739943395976348794752009715549278081760904458363376033479816932756583809743548163682302938137892220085859770898078438107508884783299502505650953211109833552679082171925977231812954894676835645187185262019746296307691473185498112737970960432422280495364548453447329719420937293888586898149620599681189603783768362009668105650464266431125768322333272420904325904374288649784158522146928377633389514013395132617987271423771330074126630325315492374480804108997247124163862549149008417477987707533871662851206727362191182444169270371993646866866191542090753826453148547505274764526564279722515871343070426919953047101054428077506525796718839020867743139790383434568793379404321202716965045651363928544935465222298464388758740332836180880439573427158754632522744973677063110867469119499664350259352538116209250962772887072561338020887678669415300477180892110247096842945038956459700536028684091424400504808841754554651281357553070188739072161638704793960177265472157252291758765024782588112568795183524190389514826414168465388870486926283112786842426127454694792484548223056742703171067196868024905526179697964778813207140847732079032593770033010401278493618246217177841879483582843212277944205427887913592838075843392109700652864303194899403127810777342911941358997363673942621423566668066334024360078283988874783163244858297218418077903996948219592605862084542431539964875972199474980464720991207428216948837749143449509189017665353945309946709704512708191663076062547675557434984743666331656225805139556710253449675837807980038839308364500769698463963411071913129917084285229142050493887244279107433004380105461001185144494562777387474375748165794986731306575328818537050246189426205779211230620339969865506795438653940958699874232931447186549550252039628212438703191890592450610282126616144605914552184912320801850544567260952682715967757617792540838889057476953468928816832106033695989233858554269801726798359709411126407416499093962400797773197527905769364551414024843590797231426952814335073464106910362835760406372512770999427316763565789704880315411804718228506825245211590758388029972768001502549654717385644828877217426399687960055246619312206728846515776666907248309540792822134990607253015834296011433415480282383564651396839672910408937092124273050634014350345479058093303950089446867026178813080739614252508127768126892593421661736737629482700640453560043208222716779521387914083240232464576821830805713471639654968663212553427410272687341788831225824737254731396210295997771191136342037252348869886165387488788469253808320431091917727804020145183732199631648698101634479737319271783826904159612502442168678531877930484013712828292490267644433603672349259943397250479146262966010790425722332186191416868606219407886190935430342028602173081938033459580842695395863430229389852126816988434486221726322049019718800961037023876075373210352270123027425241520730468733452687611000931524399464583958833747702026066090411738907737385408648980876696658964904605647001757379036467872624521950534694544155315992092796426655097465491016659067940180687153152336810421788611705287423695623426420418234079747426156147698201384068766314736490641079295167408072817258193646092859041297802257292582541991798738724035274593520279799977556479376816770816093352374891825156805705142411594767873928662527517023653426278664188167873882534892738950883674050746734513768278687904631372695070125462202023832456576833190553734488743357854667278488275511051328708847210765426897133160325510683673148317032640416488076610768184039700661552999357034746756371094078472371159900160277830395555604476117104019972674175820175138348889108399672278162823445909092813773812349097936733921712094653639525016624743074782217435790071493962487303763624532971515372122362351991033055082980995030093246503357745755929231527507504266635390474078514415992554957424289661090331914975446004115636278810363184697569696653466964187278251237767793237314447596028905032780686452304147191795236305979877655475385170193997569850100919596508347610019765805529985472672546465411333243786145409427782144564521469226923125956645147722624709407402324873870008340045801981035492900099594615789232059172737988046012958507507650477461127098928578880885455021930065974559050636719496689640437289183702063991597549563651514573851568447938194044365576068907821933270556345421856090733971722016395505761251191792452497571658421027349462120566403610166470309941564848671545422876041433953020091121039312948084582513321815359959463325228083980561010053515534286478184916315189719447426103332701647518629598203781264263138078834150808588123668741136599634061179839299500662111876870546156210633361534216108934279408523257294014878545308302410406723888294657760140979692533202253751731361513726735572244912206669742600337600515564979285728420188672791114345886401637762164316163418291401275589512602803745060303403997252009174679142884900916067330255654890632862503130036442723518178142404925051486710384128172120255119976956956613672053391576455578778449119752024152794348488612339136256396578462027946830911218834188490150970727567037269314211261403193921391225652548009025260996815288748670273214031245245508436626159996367881992671461143254796518195911328023269456749184585463853347544537862555205173063912987212573043069913859130260564718186356024820730235077178585295366703262288040513566015052894378862792532409303214965354110932443494785493530172926180617271560504871223181238405804688328023147727738786096687872779159896253417510601063512479702755117685422474648438776597605646441997760780387508880116697785718097135904283131629337111012857801236715408710323925265255123604429603360351800584387905981049326716882787638843273595156392329983097211262334537455163703719546465597815533089435371632581719813920285650543578137071273084755069125649425566421228502726870052268719378138998814108003545269707205558979880015339412672429664000183700057651418603461826214143361184198238405460183653187042435143900027259289901432387394090582407185735289248296904569071724056355172693431711614190225534996253113003751677288205387368951016063741693007865991977895907980997335959530761927352426416453674943927897376174659341223058432670079243411037740617799321634693459252876721413304951383876566501886828492070383694037584342283074833009285012978518368980464528047461088499729620474904095139901034155302975538227841971938218422923210338010992721990943086614646374551373717552482976344867087924486791673204775450100382051482860912024780747536071643765924462031487267375382447397657704994712879852045798185281204624651003155319957976088262859383228967535995369338006697889054055347659447111117601133782837468046080612872828411361203369587187828128941885270812344943165463825395005341491245819276165292989729493619855879252446194915394620451636498071224345406040211488076706667943219338087352207625535312798249862820350254150285994452790728151153966490439506205990941217456559379511189269284768942827730239179660056716062113865367272890593428175518748898517685065881061076686569665270051670440548117189827668486694224334177424854228258215077807769298685801551365907348064332385464508113392844743969143048973691846463163944524622012047331269779996378400240466607355776362388268280899379714365308389826172729692782578523758917570457903459523598039745650468147979556770178293729924747208434768559915649710828855384126778502190717804820950725327713973689843910212767110059905487235017162296798991739653792391519738067670178362982668075034787499459137368628694835008465974455667518727250157516347415302189943351347871704816991542600432238022780217196448162830415069325128489729506653171200972970659765256556327134622424188754498862523138712782429183947006663802705151929571687057548156946009664701735376633270752744175460744540425257803240372346311363333980234707391966887007378736220438681001806443102102553107842585566542956713415462422638669415609891082173182120442533515163558709455255272998638957500119255838423800724592491225935240144855527168877076414591395353187758765644746244683475408998553829787436499449146723148779761862481096754589095209610956094401723911895309866141737659643955864917946378850410351974604486026568052704399601334624637535518354353112577548385675394014035200397178190364823141081407608284434672730322757560991283366956125824578416611261052685826709830884079482501215364999978346901499172687479768236079717567889850696580963283058272625458209621279451268664661153313958500599250645886187309153650698097468594537005827928452896637872959742045637420392417733852261311335288856589613149775255706491244464994315466411662460170605195063138372604320143443298048837576875867276738190651129253806196797809582392371739597952384761561290056922930161820028945792243736418205986841105306775013469903452194924293333929373238066266104587032009954462814771804784422323961953874373842511231154806026286369439314305508130172580505420725752250431962272331239368621803631188473303351732938362351319073623616152366220902640786701491454891770198728742981413828022711314512652905717165013126148017713859488770586964893195287308239807130021160388026329620194103975082061413391428435772048544460116550213006059962544227542687005740478583464131290682939471987996087759840640728251440045698964634813034741806146042504616920771044860519856446914516098180356893920522209104546185042300173267122825406775698662950890216912694123426002146802232221240331550681466605065776577257933938877225237935841276838754450513180129564608489143535613028986638698035680687533865129191715958465887048967213725487333188270782728754576533700912991839828320703486453282722860412593413099829242886996450857678844064463082919973434915999574989188253042128640741333840886059203501462569695217653634351105143329368916044424109678349192618081250181537770763603107000834347208954835054250690898755843536508140328976685411194014707576986757555916983062281654423196927257011211185864861720675870414418909978189144419288068610541242668112052939580877816082972488472684261446439817876585154606549480620667871925440526252922978068004653995392390271936888040364786060121780609936741534014176518997828170632556845970198786272563360176526730311268979856007631138256638329738330227590090829841872530422950276116045084768982632723166674808720157623134611408807222877250697721284015355016498803157484618644507783171276500148205152485691921346604967312749283535939474154373201479526022415053069679960171155285531996218005614819551382636968983386853129035500581716842298404171231367995900722861064307407021949897986484474709613087672985002600687123359833164092054500887743961624116971758443791526259049099229697233893365014588807366677207519838862999408840506863557281822764660787621766430012039101788565716565835761465014986559806591060095678520846410020143716877088444097720063907260815451194137543010248559611840161225415392983129805763360621648777645968349645973729020870768534896620099498824668710259906999634798007643733925952947073885181955655842012491367364838155571903315840333169661540960895380662053067861064906837089573140827197982759173303488629407629529140757503630170077702257641132563499258887441311162990298824159531359867248333610839345303032322205982715320602849547202524718357610718486885370805988308052108312596257910929808045563424387793232139533298991067265349802087477520360534384517627763014731238314319702713564351462262520102751309287451197153751138957738490319208931935509658842096699218478015023940081983058478293730306602393616005506534657555964367219052817585730108163880604668302809554108486551346273717118726646119206035905714776882745117110561790786948974096381018042641963587947183481866591955237284424513845777818130567802102384796047725758502744621997865886238062481433145134996827792265414417302256388688430655438786787530278485226337460269467510714874968441507290142951697631702255173052806802533622393661685580213485476056996898948231125755823186691784154800012427949473708398615495766400791633931740898464773315857470520734761066771719194273908849002755334273232150291439112615074500795470837108264986466720455368041209045336181890141334542575470625926614706865186782626210156087159060048344776952754637750549845545504570242545604155416547304717256709389030682862092409826654808715920311067571798346832626921061042363732728372453262070298269476946125345149850147401067990236015597152321879360335400175115115311716436871353110709393792638071184362251025092256124504176846660801944444762145319321908769642253387747473713628320824103714260331590915723012090391773836766097291606834701496780042997512286142808789525178122297125246467345248972184209633865083412960713975702684933723953470225667272068446524359740483734334721582736491437767636632992147514731608082586696002325443896889899319649964010216193001444331180171795819042427185759991561943311976650316132280550601862260273668648378510013259681213027248341279398947500776328154363583717366710805920510920731812792956777532231791323530132139724857664752264010500278977564174293679951366061800516452655002938598187315780878821078351942089419352672782945451950170459026220696074373265404453855263518252509040441817942263933665894145769649941057105377976441574074465744199973973695495664790827603264193470428894737855627360036315884532616996977402095834941959157424355146683586175529306754232609815535508172404360362241494430614078020917937606557777952605506916277833258279947869712766825029702941976585723493374822599497636253762334761114303964196703370672939855898912476170504771916935454587723855901263132717681400742860346515180243878826599734399899439507987001931257436672402810911794303699634337373531679414583989849259881518360881007727028606980059606502794294710820651802987345703557403012079407372418090970961070248070800803896963109812364523659724474542972401378061194675211692450153310350825466783323873522487892521640514070446469172313926410203705758363413061254399181330909003482496446306289145517180594039356981648646411432839506050000508802420099968988488590550087362828048546015049726761089032989727725152285035188308179076270911596212332424802858550527716967814857403357169547187475881791781435799239488950078371012184858974218188738311664274262821974905500129641186352405079382011130975109804863466262467331818375620840650191563366159065157709562100527962630825521532087086613164679475584284628229848021793116281140439290717042825052687037857856950964184831394971365991903539392475871136705269270165432600564543136943957531098158456229459753920474545512280891811186744374086011825586330395595455393041032493277845756737034414970426181861761599621760644784196140415062664302446613859752284094344063721378753385137732066952563921573850245953624432062807802969491804907766904497179055311800280701705844703529373076409843598458202940098430720635305681753066913272992134748269392803722404474394392582594245663570139419688447628475582521303173246849772037251787417537701054105117202136132808372530296356723881837398485342658628766333057768280435013195406331812904953032128717049204126552477231605465906285261442647377562808177378253479718588090509320587167711765960885997990197232073660674613617634829565893409449361655631415831572673206827139674902157298103485706436523315570730820279490642108853253016600137918514668829064047966290880837578008725583155692475054100117396851910682806117326832728353668252642885874549722164727471712418567771701443051923334993058875964902721547993860435533109726091789614115570750785291668424821472903235599249181572135605586510919146824193824418352431559933901176104839002648806131698323035815560703449923399233160528588591730771389476543380675363748840304125121954188712168986821247003429688704926737808637043257524501987683988778482816272631054869810276613574872595784553779795709443317243924925924850459741290462958241397506118283207672636285738702916346761891117697659348970103165315961369195590736598102677582010520365486510015933167249037817615349022465123391338147235148473303093333905477411527635298499609950886437822260045305399302405655708022792513076904692561671370729172888983371987310342536791496110108100916599777929039391146503043847268590454915857756232929038767841093452601492381794643806743805235447545460247904656137869567258225324251977651015213715943065993901374794579436319999897436528904819700194567991457941472614915630545498478796068381107366840132546284549138224385781426103474672906524351309840901099004575289051382025840217511750375535560728839723276111924139673710281287275086543859388472551933481414388879333399659759435856224396338096836423212096282643858449174843125965972664930650543107192667991437516209655975447473124312123981408484903681766737351708393365616707215762084984200555721193493329831435364316049240054582049057146411358276591643328254234866009847631918561505212768339340881264222345779528211662003930737529907036135952713651508515278987790473457777338485382512400274842937969781061544832742129002915010471247677761742568576648000331356088244910118028137048763596813246924007358055475410217632875012636897432599862995134297043706995658052457333684671152434040223709540996699171248870879834098132208065404519432518537341171196218807595486736957262062075600129409718843665908165222761822256660519474472797913708745203021023565075743801142773247613636057579001972170283953274363300145393490946802340528741131379850602156308039146511170526896345072795993421902508150152764179677733119448278566097894617291413277649759816160820616717507049116226593795627570683978551127446036454410313382348818164367730441262519087788433655093425630495797312237665447133939577766767413465137505913073211537821919434192259967634537288266429704034066816124912416259677334525167995031742520991152516868468969210656874950131634453067558525433324190790449141148863793839593054660583030950997706395837772603518915442592720135355501667837189357933785918929989970480691629815838763344558427686437616180544383432389645569295684019910950162123596711895761680673040821517094797912693630902859181720371721162849681678446982890660659285148313496252922949295673724748295305089656140008248410042291940445836295912244309536660978927670934245849553979573744300560137113252447520812408493723868915228798622233106976284591381494717267720219607430831503280037230203194190026069755757043034032030065972169228849966914106161164071771213208438611707345566970685474107774583304991983524144602384315770574751937368021183203127321590403114963691373868489127010472906060013134461164196994627073884288319771803994745778524183294087167519999457969119729033884503670853185520513975229267853112338811524746242226436902494372346636771273534123005606988890095221718009708857694208416840748966132712608853450208708318786138883357368433690801134577849067631070149129187071037486629223379487513021811770619571498264083551301655060533123707721217117569370919171792105843277383795178002995762723878244537884886927420350336979464210190963647999110397823191496203207826019353996470989062288455809219721867066269097280859543344468711913917079933497411183621259791929498476256239977033554893798828303800680325345925529700070124761074338021807267980860080348818573621967852759306569297841297309089951022046291451280545931825429755090040984899025182718307161078969744671089340790432042371415271787647514159469669545475900341450867993316655658475449632983835774430951513135338247619722313509441347085919722917738856097368786124140361615318789921306779721859072178420326247928611141994695716288039994751792988050789462747751568365966146129017802460525564942099108490625039565845348368176678663962440844967872726762509611901225332245585267812102850352624104038498427319686206817021675556743898536970844590012737703651861444434045349243072741260737856761706699285059230152827965928889333217944296299734621269213364476899352947404124394370191870290202081463136342805982784993996480187302062722585242788507920517407870132539407892547795457372397407321273356718471863399038560866697569849021178691399132714161063091278234356338412113539012491596391230639791305090392512758705615721906104542156489521456021064032379796126490954973139440426929532028853459214250465705161860052344383228027240550841593675779801447715476477158179971202455232985272008182999683213319894792703751251648496839336341674087523056874173980122561419694012931005196185936215166986956277171848067675454075026457018483916356982386858405382864945198712079418701769218412505054590334574591350588984986768229069941388710997330620316238015835897741466411458976071161447201416772586136957015388241223140206907691232512817100186312750876361316559824762997874027708270916889659194748373902673616795654130955260393695354064498904094054086498797777017581742550607404867791598378239118019883057167275660346013098281963900818678372489999554718469092824985513051207824099183883231041882121750320339671091874298469569905111336393037304515470787172713396690337189924859285753187444971036723960507999329989867037095434027692654021494686758032789616298729729530016175386530686787236531601991862427645210219351406373603532229926779073240991514672984229068971140249214855915532187923018037888235425180997461915527876087581024634818964325974248852846066451552480273308106365166812051492674777426630079457047435111289869143426419358406293120682595032354943958634057514365798262881185040778216313271596789897907469844314271341584096131068284735600579896994332868783961191292920777943507926416448589680459048644212363191906101928161735629818622767883191962262540791036697882941774688094243576925856321322868048055070701682168751114958102581433152934785678548644315689845770595268845266210758530995346472810155533107119930919230881759869427701300473729471604936734105361677021138614112397275547376448427358377273938465807041759785874923556770045386653829006516300982845195829393633975073961803286233462839940855693049872961587702888419707067749698383428597766912173482659054445861761133403590582018705536212964307534041262879432742804408829322922019964929817831756465251457036895116894682026889629995272713542005993532445898200400064701919702898130285917850056202813779691167861056592948530900494122764651531264624627840212247612033829044283333737054813144383331254798912049579647208643172852954586778797172490518482903193730821666298874447790533286740740890162258599771807494999294895528145761102487057506787700820564583472317595302767544691903183385534739447702889771417548719902201679565586144228032480558016858995762857215569568149064561978684111013497425187632343439967387578516986242855406403816995488129763719942806381091085214949420069467982589535271446365408038088580368065995954145576580057813784397646343318445185554199071553584573576526469428306163266765291812217746329545146686151704334891825110022122291824924431481179135931578223034138470467173961854859181944596591846910974713467278530399362942007355310183526135359898566771361426275582134226232994349886685264369042807154578575205197399971210184430898249379315596157308495899821711399403987108280292851667454716938233504095317458589589146622766735869228547893893654448690672145388366851645878408995386084527949669823035032899532192621242967722223408836294357867492062404908358629417395332318244989855498584741837086108885120258558438113291890547683884205437442446113147230337980852940554129047428687807400237170533501319802444105432504473561693140528462345216115351165685760937077195263312368981679417627091476887287950333190328829096905545474440238124058745771722936592668706549284580961196701664551473747807160439859363008855852140746261920412237818689138663001930427959378812821502159445693045404365919018063339484868911473833783633321538293888930702984405159688604680840869556899756647870516760686113869552009799740243587402157515544443175541692069210369535131033801832557990901674599297134969933107527215172158032700925871475068774866285460996338616478173534490816192024354472910103740012071672557332615312002445220278876953647768254716324141948297551167321789449291332973147989554663162557281076184205496820426220054843781401205845352247357850346426431955812430548215355104470477721975752948185899778343208475084875650284106198068801250068138282800515750828403286314256884947012472343792870599394459064712926531370223913113070892731423123761800653185180930758491163279410996184045174224138098576295733223313541685355804320747428961450512233084791712844401993818468677403211042655520395787788801725841240546814010354912322381951560517390546777818762756872490189046652897401501228087335951875953291861281345353846409693642773862534952277623075873395708778442837946189882613946499854066941642325600734112354770470242338709871429404484484928744823946355992821908895238038463765267834316813634737615583225694893827679957282899183422501174203273526272533918205959410057562670201870960398933182494761422873723533657010896859748301392717559247561703894109903210517947418077286325073283100267749758582764199589007439512471293300035139120280962627474183981355950841296762083163774625581252352801765582045889164202318139966288291872312102602771263058848366980845832928949155008767492645989908611316179787071456955166388000303290268493935433957792037668311697926734142173854869436140008807374611155541579035403505930219592017226500431741863757404378853118725544335509261989237207299908073973942487478945588034472287355453327455837391417577246456954025561573614199765936077255804765720796650820818635306619390915693107329397981588894328403812265383186638069408662253219331296828063830073129776380345569268307105533373942432986796431854221738751957729291858849310812400656251786414143429764704970956643448566032251248232638097627619146669140920063935117806439517334175717518644784145355695682344627784754015752957453617253772647495228581274847545327283341521285153468931777603917899024294097306321884555938191484935473361207981693534053684189862685150020511147021841868083366702465900028614773928552932885505573854768015454646081801204989934643862838367109078368735678884798892626758209052107741114945083928509534936202140858599992572891064663057260421818442592521675128277500108971887759992531838900792487923918378481945859541985835822732884698273395719567927590884466276755679570190705676838040372548474745353306997220780814589798092923364187123516399854908557156841432842581379976733032227922829073598940336814997486528346162310570520471931878526763410693316437061121747793444848803567461390971839445039008772379695340737400805647494341837251824330876958816691439482427688365598958684883221480107457373969719812086223971943234537347950533119747638339638358168917189703473860107121391940160786061324002419419559823401677807244854888940066100762042565728674426506826731169578357215787609459833026170868597004137108471481749930160775991687111266856216358749607662426918505360619607617567193532361312667257522027679473429481114719146112469482634036601606910772179292107109124463095635268492160700731012942436077450511238962511121328148492419791029061343088330387878898746551229918979594552080155323248990144639277398667173122363032151778947433630456555513024889297895053198344305097322405789290910809897840808614613860332383604575707631360849146060837962366871926691235444722768464536954595816334551784252817312279134102912546522705005866833392103197742479591636842521251071953278926388468056776574263487749227095677748958511645715037446880061493597741760115023998773781709589008306123009131205161104924939895005023125681198383700392524733557635429179828724263282799457394049195036037480353543704401584384322558238445259818504222917557332096818006043644475850701565448376000084929658689705489925809236624274062649086268811602623500886262880167587266019867527277121378630599745044343410735753406471072824216612536975262970725116760369196308022243810217686570438877631954340542561775782214528582461278177906724723379023769849113667175888707163605279782383446013361118294148928168130626494456377089911351532749664127337259165107217995039571550739908533047606303311057311238039357658454117132102708925780806358339945319369786604199600920357383355890109430147611271863823962155765109243011228977387989583763638057387980958353605893668437093276383958288554539982758457297218081274922918130346803193236958175070190546479195985082372312781414632454599281107293993071887591533532916073976604465728466258539771087036784492420502331838473058052796279891656747414056443924820572821503465073336649707441297814082707935408854783573658509434179052241939711531898359250570183488801424292328914628252198095308502067979997290350385002939106275407736724801653839667200966807428019256141346427972145299593764384768005267000093255247545341562426456071527641812501442511192932764965605980040458933851093171520020585254214230944973630454568886990279006450771862673874620114571542016126928867039538584738565359165548001144437488261843938054858768142770162149063386257303018883544572083213842146192130009383790122560332771273149736452256282444124920691788211522597715182553414412792648578875115994085697883557466147239807664536990061273325018931312551999526382128510310448006061101905709587055544362124119452339092532278414513385129725654570663938839140868025994646925231576454546187623601295114941547566546221680111297670643806681949570987459618641735556605482318944029734868463911775382168222756455934905243162924235828276668528747713395793539953473039205397707181653865041663237558517459432932418113147809691113492605669287580313703062630335460257582775001699374553440427487372965924995390277219579593452679658212094451528660512216756033662305584261646700628176639956202234618810094120578112535296099344247162989812418450530564446479186463058994481873655254284569976341190972865510108475475745881054253019408144781787201219696972384858816633229797286249544529481373450998875910586472233150504772350246423459399082843455619221687504244303509887645115581837401589646932291458749499987868656150261066920149239221382649616153927322069660235035852369720126576174416693739690170798948212275688196957730498176544321137283045298106278208195267081814837044005025129349288344582714304429233663893684336364389747509704867069431256391002123132050561633097938003354603751577913330370498946422128701895182719579490122180175772502484319181891126758444730836432758135890154930792030672410957137261402964353169703726010230966342996392055828633922643983002231691759332801646990551150259572684294728013398264799579156351934262607905468054581274719248307069623537359333450318706685713126551775495540025998712690449316590538605704216638378936249279949726118396821371552063277279066173725646898345779869598106561647694564912189581627381605066783932853432672266307291269020059520030144573951682863012507130672651592953568482537136896033831627293623246037977295620301481777703849950483722289943489323048755421810702100057016279777277502294473002428322721367176168696914216906262285825162179350708139047703245634919554742137979465380347018907195569675907040852542733426642408664746808041609121867863576370049904985381845604610359533891548404510534552579990510106643037539439694545993764691478018589187060385563645949521515295391016498669672510473954587970268000212744652286647123617987565907982081952088357624249880617041746609608971777206133715230060530208391767364085873700889576966886819722436553348540978215314686905701494843023320211065795204699427927273882100135101093535221336179992777123407665311380156705912040736511645678078531191523569182905490710851089493329988066571841673418857604141675645625440623768287212913211719422144231581764639227561924519248077025295095937857061039090127778986298576659202251433875652179616727480045919278053405624496492145285004424121662507784790624508006555569988750448947399001895808794224905004633381388989519507062021308288850542515514945993723212169510667127690665591447797229951391991752823990970277545611285925090267587090754383564477547574687205644926004662052235773056343451473311682753832097435440411421019449919059391767734138021207939007692371694183094322498606570978381694393947740171963354465547669266439415514639532691879355201913337893826422710532733284840554333160955204137358388976285569727418233825662252586137655277047763687347321664133033193198682918262770002261502641681727409810924365558320582852159921494637790882154467538816311508726438193102984760493694069717866250565840869808561563111829939936485349014833156244159087009270879266286245671438111885594367118710804297662882081489904340113676544826200035946581294726304207893047864160565895894334030686693288399696381075820249865838245486465308523646340230406616738006026415932514601544421329727199840733484341026083729250857564209198867029255789681154259889465786413792119591287960201143902054900524205078715115220727318826741980894679017409156938280802528353849009058532591503054871236072192616932314416457570046510836200336937669568310872852305501337297017095854965457914850529194152427540510370234013387477578592535083527803029771714792458931738615345756254591616866608826438376032496722538948631779156473081482239361604012137727042544518373529838951468741508299871343138411629021759138183695874309719254398609562386128805237293911632268945944306528405262077675653291307954998750168858727176507839774934378904088464645066673327372146179700121502152691800303347765560679540018850931087775445618711236502223562819573498794583955842839949887075720477047257589305321388681734904925335140242274307352550052400307814623054891541809339824717736384952861922888688264401272629760831149401555850089478516128211678971305478520421248471176457742492687732438116389068901362296953067877884980744931276911860573202868566929555065214773762436418745787559751208614341795430965618306343087219125825612900321861184515783325176189830962022347251141238522223964098633942043683308601948160480493033137671434235334960179287701787457459317756439333717842182378198438989682417055679246694022806760994645597576692410409241630274915622295596231050436412302802717467486753028218561290396881480967873209629004104579135524494469046426643985599203629016160106111846376540602949388212503264184582577281692551049550021734969370923502862435055038184304663500174527896415106742652976256480911388020529298329652124994675754758289674458890735475713312214143900050129037609004091954258495225089548719748378856257673191366625918225645208024241940402636312812248301133193839835838479402218656049254075174795001654605161537780041014009985396912830830189359502219691682976736965843356841518759237037173039633628804552707358289181289661414692872532891791419389397180086679619632263370834954836939664831066321491553890430517193953550625919025668659122729753501325165786825795416832650941219794765107285131334791578934802331084411909062232237655392411563441459952910119021823425144260900403279741719167908234953994805805161055081583596604565350629950148676225398832839534896827633080311001142807936975609342122601785295089653319168443026458988434871839258349277240387565221748310018123465131262979370036115428418457264163199073724994434939964043334420505280263431722007338191034373012238891960485495324441560841979645820341428105981518271566797997515090222013807530820517331706730552073983842325184677804850448057847143977836675244315307857187837174719280360021915635187612215365731880507099898679721326550465665734043183689485883605213552130083609932819540296213583512891399909358931403541352369379046656077433919552125248822929329107797003290657051957838225995586071522609843272781031231668007833927259448067041444040646570312756042929028620821768524367098674682795492406158892993752639647277995417491303393100695620787832341628173071787017222385777858414596057472143255442687550802717671027360343622232645674145657072623120379983260731349046313857402737604234731713846927529770196173861167665072245884581072673998507880557275887690226014457509851050933416184321532477477303653599206770902655401227626886071925531323256464260371510584762405627381994909856865274235379184352458449990617663266417189350572170283142393234445204590111984249291706568703315009115618262647849068522890045519445146592310323324832823146704789509761535792688671380965068944830564975041138386977115132087701586352387195153532665609466337244385787690477300979709551204550393844663564434754063007038007727041551330855854558438431706620854261178710410357367520343079105642998389856595485695323523624634716544571336389895557287339005063931301374845081207024255839499650629119907182938222547185347290752448680753814656938141072978090171859844433515486612683654004024349782986227114609798309533773402416555902613034329949824489806963723022778592798759893847882356756123571426326433138952583618070531493544964822681904995018625456178865142075710193983897913477464177312385916696361218157421564794900288971925058079495829518931807470729572203074209536068862472228087172724264720324408614582292550703419252708568884604563809860953837967516942508481110918863392885892174570547326249779977954166732697245870168747067905923603712732068415431631458211562696387854960070072782382361217947695945764864690235232874054527988606549349176927766188656422889880343011878110243426075908037145423210680569297325413952890753555859798842874080903589385500830133289565564876083010439025309852179656233779245225736182273192398096651870419302891231318750437054535157751740440864968566270058930223456294757199209350858183159506757945908907848541795066098083614106967941371048759801268404199453462580940222757205032879559771037874913234284727704405277625913210053342798416443061098025209022314772150270079407170705492129794648246955196454194434159301500473077943717438737391085270179656053038639068777185494496589000330090150098383980464304302081240419661096525111933069271032155654249880210363432520576645994488378268310842720414467790158143423520470862459789162530893283948230512794422545129735020856296590537887047128353882245139115394790892556446056543904275793918502270712045470929098298548707130823315014634358502924059090364538010070156325473674086569944470787434125565087277086513653911929533771895024800121522200376065163437644659283995950839613631462783429516685441086510355844724143155853053953184125692731736460104679554202521902123786182378246207218493529953305167317899974948681129700620282609368120513698491414455949595127858291047326695545319756501065875273373558055160574942815189981693979632462175698005731836562367279638289741484848148369184078862815428501885550654498802576953553901940052604574456472634431691829863680788107565137540359724104195188605020895975181105242036364186265808946807013827726609832135427104353453897955043031604893777158680894205451852188233555856487370998575563132155569111844988136744457462978001930469302471150862134636705279728965561306757462243365042301159873899232838502487810840004168533793249589245800119720219316089776686479129943466807345086322971788535129591064357129870333890740935681510275515141467755187310382609770622862987786771173845993404753555205157116624544631808323073345032778140704002908539904260197587835317291848151149375690948703180729882545297449686830875424903621145940703858643191953632507311586773300183003409656575332532176576057919694739785598212642720389776837339280728238853589868866587456924698107897136944984171008274598466356349544945905592108913873534609656316477070301056938712923878318843093124163375447039693141324824460263799273808350570628212584233309102882041721686077858118490098739156288781714176254751005739812455562958220260893432576137482705172846508910024310825481861601352668303271528319986794484117180890486530830791006644225300923822597516410466690455332227347844352805520998203807602085583162571312215171915383878843836853531141279415479756326337035726048094405048058306909133648113314723601243813748545931498355052646293950913061003778222250330639241126228324842859279158179797332077997994213029619315909307257309961194755017309878159110400910346614223050101452524516326838794375701249370971770509025312014989396950223538836518789361903861810300437176284207053157632708676838150040077453757522203774720052307621253893730680565979597820820396826032574069452865592710418395957142331150671417944207961663296370575827587464978803726094715242392545145399514647374673705865349606849612673991229618202257537014171777572352150622715672558919882621492078661849786820811670527929455287363516230801914653832695516901052988441834046095139432177481384344579615442655114582161244495307136600151515877478797456638718001950581999908232694697657775344399393567259405063042308978221715478578009171125184646640899815525577073529935178336107638445081472970534622095858999286359893148035467554687631551166189516331983750249787880411170888314754885121597537909195703366627761387943494072255200188265185534207887007235251815392054437293784269087808513184426464220726937495918370298986492284166735319683017164934379027907408659274637498241714573706633566459056695756859087171144602147591430158742407465690157444404123341371756514371413618495441444563132107760747583850518127504223194245996872837124920869066528926404106934144518163615582297811884228029736001509719526096069580188905166354247778686530060246308980720468391868507271594935010043744071059015711603413774932273357785205948553153871158230846894974962863550347424245308090868379876582988742783688709945713186085926708565688253033057951461032243834492168923891673823771344796101535793461996167428251080932113028895434551313751845042943719778621055665195831299718894972523299551766546957633238574836699484723738220541371170547703929822537249531810924805229696583703559683992087256939487168763314919875999933386984879309512233147238103006826358372945045025598114010718122643288508845150943059196888387202965789381753402005703468506637335988510933281855961860529302474740813471366959675224429186795801659636130906646730479094038454202185076779234447503876414860895237997715901210348922147772314592352922638125677190163390375055734297123157571707757339157332764751836111881294673981919999672018652105004164935308356479937193564375611323628007551727979722324327635763752114581767626685317248230959660892842091421937125015277465830716740371797071651683497072585159206294346434895392944469759294514762664552292193297939522403927173798168682459229089312493117050249915949387704148708392595369773282735545557846610475120426465407316946787267674904191076603101830485672099898363715568191105564772063968740991615978104000611104450455993134578862265026033670044979400594920607014990528176109139010978805500805128151053041028518645094618744985266950191079643942763753229910119963017388659979531971789102272842492420161193917533233969582353397711840181132324203125558685610706067665531389053638539853922787608140877141246088132698944823064625258012896806005760121570388341418387843532157586036197302714103864336605338751414602181920078426108904108006849005939440513483852296597476978266688162846800840499648108857719837126672876396336114762922270299539012887971065562895414577809343756679048632286059404981569740235581184187170966667272476336228460620867442785081133027475517061443309656616178333214442036890203273498776779639295284295624644427476828904845540987942427770002304292249804969000369549200759060545572826150744935032063691159314876822430900899424429762597869126637983702279186177967064668444172394231349439699768897437425344623079993301007884639752248287576038352415858003683757618045179111570432268045798868718817959986859928743575673167276782705687355219708461473460908353888151273275840486420992346300123377911787627757744602878172625561652080960801228980623816178477945117224829337258181920449024257583276561311433390982472344334826438256463127760261159974095696889268714465819644612185930570112256957896503429613500916904879136980966993353675246703691104790995588192280436291990049088536515234492027722943541210142949990447644319366010381611572158605361936317287913365253536484427475110465704700889678180622791797390453959838655126206505992006080507157034473801988726016380191758605753478659505251360320803052562202304124872941407667220760013607716815866782317138224877717514160958315464755939157802361062157463639213307874421664900256174098034996092162293124299144338631965173596541946680842319341866068591229846797097580609756328284985706609072380417139560770868097145697032251271957013304138741048010043825671734844628052802850307705890258535477714455524379577058118120882720321919803439593618687165363064771077108042809195760261986304014502744355258265251002619099345466511936967174313009218258118089489177664776612492812063302174193266891253961581636105891384725573455190022156910600553350873567698338551856962164156717183780860185995500779429671625177469302301256679152701671000052470525971967634028427692374082987776415660316864419377424057495356405459281586579901799083041021414295520959392949716540029311082368172510059408570741015464193482660825405407546010047504732743907461643429275652490508623297696603525260160800945974523219007733391080806327513511482158208382526247972192773381563492531457847479188337041017497292532787511534227892626821963050337971520235943537013965717319829271078795183133743329450255074586379063282161640702526175152419400442310507793065609532178727279045603787787488645837679962757750513461494636063855792200527555547224468627967588592986570574915743925450274448641427755565145491931880241924930919475827232592513554771286129528323580258492138691261329045286289787440086694670073255588489372377157754553869462713814996624625127141751612728577161257175325663938968324673794239405582950204259253745741706261192700458341618488815241553888970526587619351080264004397792711170750644363986403068202846875663312545205219472517214263173162287851628088097481457164984890130269534079734276707230566319451617926180110996668456467831076110974794974642816643508909590752809821924588164783743139405011975026178308258057341985873448201915929176718147794716309731921249873806521429537994431795661718642734688543052196327529861381338990501867540200948586619859659334397806312517035305013696591924811451371424362001518776061392644972174350844242085526309570942543005845709805078711042571916620655331111434176550858620523923252445745696436166483536090370912051203387538360507623984491849715180885819910879601420721126453369237392997015369685663083574317324285141762311806666772750579266655210339070218983394253528735478683131304811305518784081317836173089653945005685207382613818019211853111411570781190645049574381934501707619385374382769174195573424046893301011386335182247261759383169101235945637750592931341069826118762590555539532347855039512720272246923918154285995056572840249885337568508926998974256341161946667291076543289000539857885721625329856663390269759508502443071852896978886041568856430082400590314031403134551448176486541437826854083193692531359058757128429892327416268323998111908033398767572357693713648695783257061235960704133106830759468541677370002177713651728081652506645695745362555373711429594063474205802991164690929338332475910896988125995995511185476017899911228577816780826714667089079962641898600087706318407976001955043400047699310125860847254138044771797998603219458787054694634363066694886110622838821085435097488221715484704425726064872197993332903757544248169922555109181480376891057011509715908172059645933454091797044281257185790268811294398281318343470259727309140924803193565293121509792297919177975099414341551076568218245137240083353531857576447148850334576016110842402879341378477677052854349685848497681520570475319493494017065757244681803064278728733724868506669869165896789800910309198390705005505500515801590605467269754331340950214681784248037987423811580309729713587649391195443240541495308557174615193575715096748988623357156365328298257046590906203576489191220797859510332841999716326536266006052554146706503657734473131040153734234819370907251181563622978380662717710213631553681185554974470760391874069898367043287820140255045167731425517445379849815274298399771978080958397526404873987069649962014925852303053479695146700734280473084256726007211792815904531203724367244976244618999330576874864115570146336147777195454998415528194974841409150222144731401943590947229647547711763595870911762433786597223396897487492936737176418987184918505263254807332318660820168418502796703669155859294173519449750064034464064074926703345762502550447109738130716068616464631138667269554923881017484037190108387181874041355879453553050403832955216383409234301770863397417131845278688512014695196569809491632839864356101997169808990430581143561818424419474505510383446160486114917574413226023668879439266786357002605183329869539840192211290138434239942554390950344038363358239401834470856524838752623124650656497066935913127686257166340709884232289493166261050741296373741109913969770700946871912357229800894342892394528760166421251122426287627319068620275226648962760484142366316420622568354153273271728357628246973373174638644232534272206693240838061983720474004623190946446192819504130372188136841856557472280421379796297619755871733746671548066979454930047256115224228463232510802594016064340344251110277498612906617688803394112383948605783814400768475743669472036579744132015807663609746431382074323600010503231469151362056066562667583304149076615257030057337304975654928167244227083692357311176920277271273423056006429546541516033490086300671221821892131335246483786067188523027678955205262125360383588646649793609495805305041706738009368839713441029779597626105747856226841451567281843533525613739488980727681607373115908684006317071094327738097981216893832252642789857712798323861741050207679228280039651640323499443285871855080470301400806200001563277525905618793951779841611500112963329006289198645581552614686501615257292651263022113572094912236974676048281427884429628787141913075290170437677468000507455005676616981942480532501321096342368644081276589910216007340419355502788563270151653448601299325655208785851676273095734884296156222763518521218520851477457010867246720590026565361579002495881996850449478341471416239412929760168506748950476772699471338007022158596706798720497352458899273891330499882394088794981620076436210810613094314116832437081934895339523952876402160053465743747818386225020242210519651440398284402214051213831353430353186801352601855733759305866995719372783697851183065702668672237935593343391816662850582393057895861305844749023445964952741687177202634498313884071862967612472783068144764277891546362838195757521894756868703440688109274532515129819001201927457106231892431795173150047151520967927705042432074086033044156516058100248468268909134662183606831075222376596845553697969668602871927543703425597209654787398169687225355559112585751613160596543656460189520710988849958448212581308761790345841125059462611195127562636632800606264411836049478649718893269791665117689583199002653825564432277665465480958383565380828880681376317236702667574251694125957688638996278396074073206402950306183834321004838060128920590507177473909541584266478944976403740639180562624698201460995371365976268679429521685139661878580759709799372502300404576057932599294203580624982581374710752757110569391664698468904337084367439397583082056567485042701385611551518912426489787688562499865876086159692368285278513761419325363837397406539433845639534338046837621094680308291491527646828323762393257473912527839262691652684295597683663245617915948062605607518770344846755917969742731005160502832500858443717021604902734835323770027370462457327727845370837201150149952740324693138803810875067213966194225183269953580853301226381198689467881821072641386962596563419659870250674807648060985644475018301536125859939002763170587157508823418147315028663305785903425605370208652866267828251786891702828179412444416274043525320071381434960338513169339698401315864450732733131708273869247900919023795926857379693724483811081658637826584039680104328714803193547303079884735338482148911881368154252155300215405307035261327042913982865976989526841227028232298291438701984515983904388798493714940076128654382523786469234043235615400643658202838446518916126747795550251742359045564064463087573959002613155289464853308767354803094948381552729412871901814103793339906048330343721860146299726821154001387176548595105018977318415527628561462426481075981940019049181289149661627395866678578115689929456084654223710162152296765499738264429543934332169059105101221153216622054079030820074041848912332342412720274811141357045024824654420863514819158191934261593314331192005136024821438358376443550923618636958390138462139462387679414244733440415694563237671594620327559566306408880294256028855027857161388865820642637153883964498051281949909487245456302691345249786957126255310318970009755377851327121917205016123337076369849807110912095066029757556525090069995222022092575504119325892320430655041020372501320574496865609393238787947924099026646066296846941997510991422210129724036765602257898359621641146180685811208711589964449021093577806473529486455480112914494228870177327997041514750491504519556920799353923308015863198027293261395723877436455822107566855185473188474129049722755912401300209674628797043417733998086099378675919760234362666771565101399444730906761443452714418764160740994328138907128999021100098534427075635617651037880182866313082972853592785705516860226326694060554830943736018118720678786260348848692494879637432505404765120498639525574687795698381883516612226024899008496520416821146497467361826212803614790434528262679600170599197002876603904256937631612914083602320959362546424590435036313498256743241251788021903025416857913823051904161264523470180221829287396930823059067370589272874382683296459889318018595884576406373704500125767209418590521452253044677214818629686878770080885998125315274056521325791713855978866076583915417739843870374538043450899995461574382257042000817828538213861275295971006861515643317813569150009304798626456524420143009066047117877167117757996460106381621180789502359154169618001721345160879610584568927160168764036308622788183750116219310067177460241323130491137527497784188749557150631704729376857760284812017086370932140286156931037412727840106386555686007528177985415449013190005684165448470583287983327868648261183402698402619953962896413442481851650214607519560349450799822422781542418141324014583555028668735359243561705370963387432120715575111427023069405880509160007998554961330716841599628641783390099258072935674337898194260484889235746954391961276112357429089349402099901054286482704083534930716939501155013409491232150900475096595083392691922717649455019344003401461553124303093718223244745002013851299680259223660323754294142380644608546426274988051060468056617869062302536420861037831405220981083458998606678917138440655563915231392896707407628072623983036462225706825247897187973534263216439659221050145543811494839588101842793447175747671425720194137271794738924486368629504585655011773868430695155236976254395144191757854338440653547199175966364969140685012491961352598382759093147997791401952822143342810091791348334318252649089976470835395785431326696637986399816911760374703838010226642866275223667345899972956512613075705764208120363489205662037823386892668057036938389308699762489361576355174529467397783518920618602307526456851212045547438809795607022310973274518665096287337461560380381835467806435173783838196278783167121237543352252061865918346131513176497570605585643675706997609158014752353688479398955412656891970297373725601616098178175734970000970640192354703280701171035081358880404531092747432699280978143273997202854181979348857969799083107985575472011660382998311386300152977524343776881166410508268953771596042307363898994675341871096798297496623568720699606333549693596803715331874445394038168647761688190727785063656332687381199727202752423047809812594715716358294953804478566258505156565982635892438570495408177778554697208712454533616464684631238087503461926116677966706985971977853143620235153484849399301625816844162513295278012034209896856985158904319661869185457086533920515614720403728461978250965283024627653871954032288628015821916978026347578541944822224311746737129125306686842901106848225149736760664351656834901146346419450069684084195371465347166044302036652848841400101723767084322999807436396981507515913285001818805900112902313230832472830406884040164629277678956905155072338314203752555325747423808831688928521974625690658128396930248366546219097258308038166760562611360499481349343859059954103927415699499794333647232000304497577451272621687635634903027830024210083480111916077095284320495615169231141818652509040502905556327689476612568498346779670826666309073755166975915177951678200575345577241405285328608400335580873579652698279932539797278553295348565017858118013426081235094973005709812299202593153488305668318871527721208232570895602193241660633673784055792511128082243687240183876673598729924113604082337207871326520518175180998725367366655501856187932803817446456737729500324866059523120957360783898134016408568169419717498700870727007159529104915505349004137167235326926181166487424581300249662074734797202633507641954214079291432714869049043957675094978631019171578848916667576932645057620745638636486592403634647581907206379546142293908914674699391998951140277979057429399144038379780456385218923974114033731685932571912238038471904725945028877061773902671375032799070420275103552525382432973863251868824740791275444049594113221425348419458330502201455124636481312008345930351649896540669799166871333198739057158681636663224098726816203902442314382704715956903796196340296283484288556641686405976874151366831442553045321645947655403883327090593705330264862410269440466510114065178634757664999928616151182278313079746282101832586923736252525964568331973371674427314240994628564995441342948895690624161819275664453559212880737315731040677991899271516717909842217521052892868813902687862336912104194664454453435705511592146604830871247232065220914710995928659264069394053874214532238281974720183672885297390776303897035024990944030327747432158799539491822610798216411381745699986694979477228319920238466050942249370098579190919127500118308100389843088563743291084010224558084530946026504932389057528306317641704885911176438780820749494244545018425516406049419461196948843746352376512612664531509858850300665881040006508250258935656897310366178366706638271591862631153482967892852957743769022149199528258951367102525413953143788681432652664670708059931635250575045415136789724100284632609377062822743850823514956595390590236997118878399233036045768397210901417183804984387599552461148208356352947848253323798946624739490925957393502134152231051432393534157209091520242407544301641964277075173710878819567788216969533749464872812792542201274591236147002513223423865294002942121234716833081235502802549799310299616240638285545715335682366296491268284760052096267923650114120020439293850262091080185301217656811088933434367504856032611489650831726317149529464182329888008483467754110439360153289373304591503086327748366315092613840086739463787908834233316153737120022804545074805783751947095917363470731837274773334518003991105400006050368910906000587748206454397189964517365043904882623320428126216248380187061961902819858953979402441969394716964047882041150752182456017770060969370348234876280361031775978553184211638349014648911698070706936983964384804063307034381593346158703426974263230793152387171076519351527029112937721389676729776642090466148108242183421907915972207437569535450291336160473630656699705915160853407242721776489408665210902713805242558184392638093927356411359984184506839458292642681252184318610570480896069881991014174556031589299220412905293194919987928136134740062564915412853443342090421189001301790868209162473669377390115259309129342508366997487212945037275833130429031566845457653809361807314896238302212283079552195130949883352755980406534075554746923222146928666492597414967615184010557251640018908777785537111198155400566726265724743792307335140171745528107744720513498646136590511539566932256492836337779687322357675140441070403231496380164360704761539325405233024997355763444371452607981293586870602792702099582253322158948305334776292230389658829774585611412357095739201534055548815447964713207230807558067984364287356796013570616751018693422626006773621165452495076796345353170030606345358596428714287910944930904794933019854157232447872518662676119448718220217158666598596519859730860952346064324429774768267878556291769168067244494563960365860821519746852822412134237384640816325890139642858049035264355435914161194063348368694005711255925905458312042449647981772260602797352976915078514681055111148745693986766337046048487805952160721175390660818970709785022254317687006801649289659339344396823854145506113177513798352972176499083593112299956718994836202933344463564670172563828563631473988768833396252386536570232217149080528525737220565534887388546472751737246688615227976509408459417604583737314705982116186869020268154104571382541488047292902581563889630250914123199391241449572149182174085316467692430886417233047229758181258496200734594040177829361352971179755805967304628341635266167413651206913887225493713066643753392302129640597560556552495741249647756383627397413410138314753480004959622354850882317118262706559205124872674795852456079135055415978168919966958776849430333515587263319247516052452924207748816484820797557856856602036470313645243757970476313176050880864024559205087491752572265767945723470151944163016088959566663056217966441255341681307126968880290782840000384869832070219954973808185070043811663684166850001859510227560730414659021266575666155101439164429294149852088008965283160161008738730116574041896223420775063664808069637529035831543156749721950391763119244424267515055124193255814239824772521760588283462485003672766496778718925347491817236285214331586776561814250940945400421266764206189822463808870471805438955553666158428103609417664379306567404031147827397617459153299614606804246184861231844316194317885102469429273928501171745160983208481577583385558912806677599264410093874381093016504294560904693953581692801060531918611825114711875935635293763910909125292709563337495012759751540205030684796267974897566313944860424403993330601510649084050110768772050233775640566720560367349385372381469378949646767033303555628558397958023940071060815736681110570242996952555068960067836402522723039272233162606202492841258234915247047101263373988012745724945892602994341856711935115410970665702056225050227633342910289174765818175827354554964322025521585948641439567578609227882404716907116266048235108545114909519134092011685899973291811147232206313882010895267012559562817853165478678979110185436955758899763081091298101721152419888789995964513125807672532362688779121395310993877153968969922757400878780599214554444150975191406238955034067997967906562640870401756228526012122048237598374971455776961659962292334309731841585316299204697617383428864088722992146127953959817417896085480629034472983018613207838589387141833056928720339003726846627043545758986206731791945293325840305512733437550958935468185285987911135203710058855769789300017669981855470632264407544337872866385856389333174975865192809795746979226419314258026745330495143409659974900056734332293921253893055280887304010931832068357630131562190826166037815071763393969604164102308751162150620761266259078302190855549939193865897844667887933368597517044572505856611488811953047237455303374349973504190866410969265487558018843442251999227628543170782442861959167902569494291158054069154647129439350375346146826847644895288486859972569407338921634218929863291913013038785658356482444257928588556258026088647210462406021627983373199772353973618423955715374037333087935878967387085753332336135761060751600930278467382360925194471105228796719781448244536255194005332533082650468352583944235035279881715440018727395600008845641167991306249501753756518778252000913345494642798995107226447400866447125159972320930533574439327575678867895846534883874505369904096383288483804159241703127456813514041873814744650087851244143929913647642815656443860168850873837153257860091326401373885060657386029460884644245429489051778522167069021940974060164382022731550492012279489091042196499472421449822813418084929435049599294668636056618569344931024678720808672630439281403438428344257468343251989704376447843910122384260992555722088805118626867972528957875732069901363391333721450546204176707818581166765052240799421056593920901367854869769768098181433612095969253617762307119562163639901397238575521765128928023538427016795096067971180443553585201310670612003188032752629575619994135041117392926784811203671587430252761219948796912472620446860011169650205540451752179966004680074418613717937562975212664340937205727046161256423031119453340651935893394795597777086277033834183083231094840501828725356485397206512897522070767232880808285375365331847676361766904085043685767351407215928190356571665247479929027977970632839303609562017038121755394191387207508821959692856268255978434545939649491578279834386282170569317130625970590063792106214888479723887202100650713979135978906425158883300535572994775321694323004219069777450818430120121530297471906666122434659722824729195044682511847165294203183277258546591238835466405308696379652803850103448104338517256301338798750255604317927650208877131365757661286446514504400453355019395159819782056974630377897893790092252507734035874407723617615071953937715394613589164502182705351144161315689326791223805452038347188039862366569976416305024787983361821169362579041018753411517574207857123941141005292838252933519318353960910544035800779381368262206167291593845829774242526621085522573094055014405041333701962567254947012385661502268387102724205702752164993634468420626947905388803368158688645768887250358418388597947222232383393082028487676410296389202934941767450499939130773907963588779017942969926510590351745449158492423952174102340220132258353286617900919208027949703924002415038598134651262682701141022796863709199658355796992310472791180377529417771483322652170410677402254274627986671513411190745912623051772547963592792073830730162811721319047879730941503726462440165474801897173364245219212469591762273474290397838109845461514284577882564092567557919061483612936422760479405905501378684848703955572567078605957257707930617809696269679049166138669001933179933688720070325884313411917091701319045407722475266908869282206098692257788490014598966640001864669175433290743012552099139601756607121236921717343418274898437475954003799449761691983341287483887236734792971279969975340642056758823938938469991663476287044773828982101616830237788179553223958889913197764025692106680429441816917579559897966753632558386743784912465343741129875753673035049148511488093335423615729440305492905618520712431283315361844678838542183905154131917678581696797802365545341017546461754005705290039144031921823098590513940873517777194242053327251666905207693598943814732579968512807636008039403882423051137821117393854669223396703902936393791845205411817393117212475454366785466643634764861315111044819390218185160708818044976348992166991820470372913137693307430950906157419260450022435113578659693841550787236295037268282382422823103667922316432450569336890609105388359118612769074229823442598864399032241486382193155863093256721034714944404852421684298930367021621630203317893035169447741318378019430756698514919655805692251865504983415359032714392848683385484058224597100822963873667549910500048043831600698710551083794887372803552792484609029112379749742778939872204869181098376263451895684567917078816395513253529712754490208339065682089149477231198045453485557189303717097037633740081748423311581840308870990264908820658537104762459559289129273912967831124368344945525573232728225762275245165608012889195611474962111046906741136632849544643859674522702131773741112359354314498179913167624962584674457599111952222723065968026113171815151632672443884743038824282756704694566812436147074332792186014585076692030592957658678084811838887704989673423001586438331854169595799773254427114678228839514896705090708835298081037146502680620151793091661138539355056338737977833412107050155955761883782012867458466056770276434336721954674836139253240563649011018774001197750337266408690944116911246245042016720853512146206545337248862281303892357147285411621593129436606885434121673309054683912221678624661935996012673705027565165979650769189634975214201477826689078901713775730920642469869240827766920455577162898677017292843589151255934435601414587651279392622776211080575073155219862409850964972202182293012757545513730013059674881337121789577625037220248743869123387592634791015273511111379916143122177818913430570592845013557017476817408614026850856932795626369773426158140785816796286431611496678726376496606864264657464976991087078074449643664596313383773112918430981249725277330872736729755590220003986156987051885188036756180304695200955657506810487849519601702035919830819952297880968866625708321427429620162989898673430394364522714295119148183640829200856473222672005485373000008726584206913841226109075843143151761394149536248244525028054467654341202331212827301501364377745589631955540901815325428826717423795344331016043109742207977568323808344040762181309073382041488386077199513037197901794646916465888885851907316892355608317088168700249647085865970678905387143303085663916545387547334897264039094662134880636733907386473139920252521111808289372969970245742437564288565711098686129226067143402840121455425075699242986646299558979362803464493401223312232035815486213790788806260392204359622528857637316429833726971790620607877199320700520086857798188067019031132481566198832532613891409562461457931428035356077360435819448331929943753448732307184390451366973279284213800701159081737886160026673894238455953699767726797374911508835154997538919564684944681595156339379842999220375716895180904608909644753326004765206117568215102661123830285439530736389589604135613922189831692972094251213198468974829850575993111973842668384040986726500994804967768669951771885654114156934541983380421757940629343244419619853105531506328535055573771268725753873220523594298060974549659415544497665033517887322657752834855819194422511725606081142108505281606709129819904752936692171081256292757722680076222178712962390731326226183159569273443266128510194338548780579913489367875054818865364537655510075242137831610767312601345805782347731983896574915795683042491365769142204420440890853892186795292054471800377830770732145489359507976760568088725095875562248652247864948552463925751813730526105910065893087445407158718926722577206833372400742296016573140886712391498916461694181944242908293987189987424903564184194949933741798950107969053267590361470414004312442945547856689658763499307814509677218404011370818623614933321355271691216523981598269079403111113305293801306060551976101095065787383839253492739634026155725777128905551491308150258351547524083106547961282319842881841579015195300444640155810984219832816117446407357094300329046883822629219889420609845680995609511613974037872769641955901573045481751890377950225628705812822554781691161610995211330065258661052045794603426918925887800072081418173269313953249475887779109269236729710600636208331233680959326657291213841634427760896194001042960588377904576069932015407205470003961030689961804610136778054969068851322257440622130161093443176970336400849789941639669023988958926015782280107011400208190686157343619223530395000871095735308059196610416074151564320007474154259625026663081928744909770799138455407571774712024959495755856046613135243186475574063041691540217354449474427465787526852402083135054758232721688895182543442849520410975876498352958955261430365570607097738243450445909144984084577574460727173461378821235656545694203854259139464714649003907936330482151839127211845620458606096373601419637681966887406887968659739667533568035701721814679027852215316690681329664237574126097056567569410429762707355753856432264400658353442782570497526727535484619116404637980657060511866447308938506493810902784881356900019465025377321172172696926053111277291990360502824198887568224975885544672439210119119537259346806094226326038739234609517372001142622866809367882377480660938925411090613922494301626789344742981348601068103276411995104295280555353006413274491904982767444854863845233747713317121187259364055935715210915663894578175166959842923075894793338275904197316941087188828747081441330735454839639057973554541902610483018317060773539934097347369674887574205481753537860091291452196607929211679186905686291304269788960356699799976610866673718118635470657774356704808046184155724341210917301818419530909144931846107409695508237843078156042981974074403291507463891827894009806798352256409931606399439553520629004581200013627296206215518165561919116442056428624557314293364767245204954011377252897764549339375973124149058137022989860688333739788185339186387382337181505758030623063450890883027296530399181778952679772916972227343423946741719089471302722326746300096875493211728707112003203463068770105676644615069291211494654545894107653575015964344166576622845367717334043758074796816102096754429806311384040894403854582960008534120947807197672425209007536418350331750508220641169850050286008210358607793210595651091495281711350756676772312413211559463342113981486693267322806479156054178616262409869530762669080442696011770777829809194971692554931411412987099465839449019888147187089864757080830860592426087586649610455398081303147620457601519247380813693621755434890801389705117054771584655124778594080490411125416147685294577413445677956079925608291592499200377183282782174540196152195359624973572698004416857612917490481035459012835559983457502307996152840650943983949527360867094235667249494434192586001374339199175862125508234486160327086416334649928013606484444258143257375858370843584054633381950319663308034244068697027348579517878033993912452890421800116456857565314132407387630979531020192294005102768176083996819035307898004317920928516420839246258587508743099115657609070334601489337029701899747495907790703393644803214754894789912442796901590183445105573681094566187805477390708821060339282349452501268939002688273977990964430815045307721674664327399447825015232370242712350873989335074767557856688022498576660208223103830140880491517078504177286779349596681764277299332720574011284871098434164768369507763824139844764107513593884820370033103790341511303647617347962185429926437004565368336200291653710306788939476381758462839380628524114070866414210526624330662296329413675594640632709260412390067517130953534479917423395874527830698812885616810333771323441445796761032423440640396835082744200860178967935322847052274344724229326549101282905284683258291667507101625243943360811528391163203832323801666181753335041068190085893921390799727211436297153241480011694806693811925196620719475396714983839222820045752877975538078080187430067808204510756200046221899499966191244862845581332727057430330691983667368209566347156902254584699175162384537533624415137438648194459003911925453318372769100321832915602949429326757815700100492579095581924168105273208829158232889214031969370078640672167743965265819722523879065068264996777955662140106822922372809925615462827235924145599233217094578400982910482660848770423341579339805477876302864917586070684224527318276672532703835096667922128495475811889063977894601499884369755867918944015246700812583591531965553181668311261115737123058418193138846880504085343742742283152579469991643691192589121397511587398436996897734328491858422628279581575602158568225618936364947942882830395171466435306088859786244353136868234026929704241940213326131497405004308757344071575247394407570517434639424331736938246482183342383960022183169362826820926444171675867782142022484433804425275229791738985674951934484964034594679921279573039929789163699826870647188498672677785216458512273061863770084558282443804609407860457219923310146975922813160345726221255654925845865011623320217218398899749606672083709304540282873406065707431057051024616725969125665866121179459609633514875615058738794177248707677285802446286864391988721888355727913606734829610588446841614684002420075968184723565951716938056685365829305707595879150804765819766042526626814918577228699811884227207413956082032542115804951362451315409957805056295581827909608517342580146684231686596113112395700040790106904731309456349284094446597812899515780789756075217585918394598817337248956585235566618326756686886056615019685110430136136128463643431811685946154537699079305831248802439675076408507722998088218623245458636763686393686395597420472341256926619548420881811773880480523973346911751534798452908221380899755727515668760445398704752006861576584850621175511013484516283479214328526029543589869393793829106148511645558433815245332334890019134248100482168209154153334656411730955459827261637509544674196884894474878477555372968057306230892945429379626612286453419503203849259235921204200032026930450767923395133445209890087336902503351930859167401524200850810979295915261757107442461036882706523683234885116205464234408119221604192389121570649767979158060280346724646642429760572662866484903827987397640989241854122782591706356037704958198542257262812676252047600884090323909197440162623280358701739385470011263186846562288093218761829584903357193607075144244284981941047847332454547788907978162481238670789273384024646440142106215831899456591156531359583340853007203143017676524720759915730008228349870865571822326302250826773162763547796516972499966819489073064736430453386835911065551608483800226100970123512199818025371621722528883331238703885879346422274600901806619975170412501422786555428931355537641654397821069108088466543735067680913769228724249658950532521278719458604812254285501186227701249322970309037664412477874940142476617720175299928370726379243469505865987634433089829775878795304521543249661794404614233887536836870478899411664245572648506411053879395223511647098945803630724111851106010463887284408553146695474877925023881433897545289885205143251736951911493169828630738312250631560606624850978801203654734908196892064444592460388541654795423452051602411512062567210126009475593719437352417128287190562820168664518906274019126031095287501313549435685701864479862366771026892291918181929703466180029163591857232362699806405548853463584001296765463121885287072169715045734012268918578541572275600464503188748244230681798143160776799952872749061663550733384210198360793278100801025982652954801745888985409671663765860068680055521755271244142274876375896967987643422578580502646198758007714907573086681759020018038607251688256054048763076702659560478533364536682715917835836049970333166790688532185971194698235375101220829141460583864759691413020215209026687688119704330230201071976018148056709647483237496816495304062883564348101530065709698440615320150098310748173230315634412346971906248949833102601253431664627128094474538212735299852859448912631234627393099766960230117574538550323545958134156420747878651317455458409348196324834081252370060555002012757529740307515506047319725173809376110118809625519921826291564227619328882933585517220288233404104965671166809950102059630018598032939586794778497918610037870076608151818659697771070675624649198186544235881985761181418547019150082048399674369893057892096782095286353226477477420457230993873993137644263687412501483083682723511899430571488060611351741845925400563351675873508402653169627282056029879247904934625087982778285579975177840351219854215550090483304435876019451215729275576047448048481581504532113580614895622162444512140664682941706018536865958598208854042024953669330967717091799555449544541435802701702030147655249920177189917995497617960729263158530225395606035733302721430503770699396375460151105497462920376198796772915190837121724483789129606117366557804343892256839245282733660555632526830851172132579490690224637498138880355855633368189304241234323449566804465474733134061688744477449795496545386968905158199048381195261149267615266543607296352077245156862819515532426174255372103490067231864604663878828093867718423363747623194398797063051211335089317298676346219904088311249380548664446809358000712479514004803334914808246469109382594526650577051898230811377484589723700583819977505641617612604892249962944503184289016611105056441599346039542762188980605132167632918912189199414533038307443834396743689975340086190041033098989440364264110470643997405641645198306759697139309328910919505343026966029057147507559855177266535739719772115553728620604648237907920326640453288228788348150547714693342271767453561418357677769107372039215936998828424154672916714920490310379539931017077865495764486914026316425905609505161566231204405439918743190364146153590595847707447385022425449760697101632487084384131884959202666296057272806770496617036318055601513563033120052656430412725896155693920750654632382717947833179606306283182591590827283829114121655785132764192340651764153984810384381588755468318681136078404778107624445724768171992652109235681938048735331675740962883640048280507411041565907308309005773367844518813135426304850713573798583275859000072341187645805863442266851477126426805818714457148893418237236309714133283705139042211890407422375826566822159562348721599817624405404071265192912354163132023691641433513027791943395217142321670028005407785496968539224415913570514268802199216349744368129973246556484395252120336670467738532148756825888615940580970917095147720423380255174133641562889588334388519912941088963866689361437306093819785569637855205773601912937234956849601551531266216219128638320920182689446440131677432996616582687571512584057632694752616321541530755857864867595678374209555114488714120346210732951516224632822589083659533584429820895858023231172631158962868184677894153048576534550057675380632995295853282913383839309961525797273872636679834992278277525145743797942940901419788654328815027456508582382667039860183360701194370309731450676668825117093959675914934268151924561348651488082059542152763243459982784653646261079425127566693028865963964729478828465567247174238790599289221243919603958073014635692565335319980964587087498391176206739400662744989685881384815258246592010138346656669901711343682671536221533209728820651271552174751238699823028320063922072644633909779305285371179756168010980842008737886909329358481165555300232162365211611257791264704023046593078817647865964754811478830751494810845069188712999931021465911152200899374250716717701062971412260222393183572189746158448552714038075818313037445573774770712073946904868071621820684851236202509340480821640952382091066077912078398956296458442724656599687000712346759911886104515783351709378398584571989119689604209448064620076763502418968958607782863746045831543315042402211605505807795268594253552830974583849577910646612584984102926473878700769554337127464426574606037120638019335717409545166221674866409840212051820102873085319969434917502877708951317875135468532298590611193315455071438795455913783167854289920632217037536349232373587614759089122791091260525783296029182448290022847576698997442597888179915431896335162925509199690157215156920531065501200569028596568811990128744468697997538972786764436419447594967890548052820913807729592084124680725463427411021330808324076536924813788972779905602719046543274686596239519749479296523730378697314004267112652494015093072489321270255541043813580860584580980281979542731398266545114332777959603217687611743023643702635226536298864799845258930648658956068436112869501006278884668804365729762758654938563220392034760062432173869449413980576705590132128043081432076348033798491717608274767114451146279030718390572416689806536861142221494638057183845659069979929376350324241036061483583396164015095999164465685875231912350239298259437325800739792798364835210751215801215733372745925461198282306692089751659141276587543877668600995288674609958919555060370675700264580674547286895150968347507047822542952039223681927237678908303849845985743820001619512487200421212380211779628536952251874368306577414769277274889084293166996082829300890465206279327899971043401655209351460644237955688432292330528682305259264709426704367112953932131626018506197125868348355345556931020895184655643270891836572182273279358657156765203017013396864401575855830991229075664883292163402807681165890391940632377029681420337072307000830380534491697214883505597573426498391002737236117762091532286280231740084709053209126487253364425224360181207372606714111376961322307298585072715361527841295875912786903704812797024304455152298936289079987517551203415280750156617023612357043665157193742258939410916439636326508626477025599147103676602696157433700769751437404192009140751932651135692207365916038228967609578135920977434550446615471535389310801790057083054090000533867218033214280504405406518763004636812345236304693908131246138293515910616377525694285359656347053584685174704388950631677604639162046709125257672025860318444228279424895028428861151962886115301038696769768806942106804164899266445275967780917384982816284789096414550596994517889835162034054754207133779469187043682575636005787169846418713474414988132862873256795526635544471827637259574553771650891180231713962140978112440734898652474784142298710253960666706363592258208808525860836248174292477133103608122356111501783133895593029093860668855485627612309935203694559351003670049292178704160208598406441725519762649560812043578763635883826205101047939320857127017824944992858038108425425637141774009686976943091354511599099728700542682428427061833721527634333525659939201666808141154782589104375870215500983016499590243919788576246927051933417315239267498758871795216511121206198418161513596575924415784192248771245748080475033733864959778476408846902276198892243154203983184434763015070548030002585071501223935910274005657469777768656917085347931356333462595747713204426181777502473872784104878666195361282923227441532266509427454553605930131360466807642923100457048645803234614536957947897185304839356992102792591565202511557220060236735294355996543969378641027754225400666282411814633811491880275342585124424165535282307744779300919985373268653056598182354348968753464834520051347583434883123542814026458322200063013858768498982193566909252209861043396364501482076175929610064634273067510881501091089204971613881050138020561282386785058974221753211857579228048059586862692492987438695865455842229644845023012071333978438943418381740133420153143261669578061204418339208298314363302513656158006441359165351064869852359701734086620186370705274996860081618601332103826337172475633491726936632685138336303594178838927791187894731113534704078370355432920457186854291370137790842310462986080133712837595209716700073821866836802992558484552186997414362869131562130465720681173945669025665686622079542739627856670323748969070896392134656521858351562224875184957438957143844368444147127396394175371992830332078621680840320578416841737508951070178024748552759595766724085939616991931001562367972227828771927823583440097717137454242993511360647735528702034776650376036619194990479244117518197924430913136359743313053614101742202158388076791734394481286668342900733493976887178070917990473166104993858492918641909446184759308500681365112280258228189168917287469367592010269636756795052808846898786463752320114981370633749602078735952352054416567522246101916329272480653329229436219972808827978669032421567440573458314603197833078594876728137494998560762220903740344122944338934109434471137615906890616623469762833029767232294633519269754823055792899126842991235352112020420230829267341496050107909634597712785153474364531013626703444877035743430394388546387830840747699072221285043741692730314413077469631861147060061559030521721869377432486119548905244340437648945822826440787433323042538430557423047983524864108970419587721082341666560360193709706045378156884830741769650828626374796560371290874150323073547677766253255611559012743487960081063478929187385782291560646856164864379228674658349840928735214920526636056570536722076916396654074765260126740191302182698671879163716885687650934942435779630257747659213490126862576291301002577845715065339657171137352212825786676401880068388922465733918685374229016551934803582490790685172427632837854170984951697143228103251078637308039323572069944430245026405970734538071801067844375172450801337995302069497981471382466054960852428897898891953822848613024014994108000478667760903153099954085642446958074777482756833225839581994483511467848433268292018592789899168797163124698131768999605839386204097312146970848939263102498838552221686657272477294252271943208766706433314022358137897779150827176025532195398285396768267925400994380507124996495710376243271808588942747031436928172203630196291177505085910927238866870116419943918694026179342656965103487839486543238314645321138657635865171060115086319880482272971921509625283651141239070879240572070732457127653374566841198511239700760610047766021890501242869590440071821656802201415992632365454641935369211514336485762893920043959333631136799241900390079817476129127241228001511033184726373957760606431468656074188717862610188130103548218429045573897673846088216324148892669063833171800546665081611450652757788551593939705177015577383925015031127691915581010265960972577086814969211926523676025747750052074083416816182786272566623465104187429757173667147225569449309250674878458078738450713802723999087262429821458149809371111831601459280746203709210445816212802190297922293639420284915014619943917656311037161475531430382925181497071195650179915878752270484549034325416778481177626468939962487106768115461379344052264232984888741999112791047257703598712134880526971457671945575731860282720738132380449983117648394744097200538264246948302907428251783695317952490957489098321805995023530591154943952871070995694940995073677235427684674779778548891950304000136883057912857436121125927015272692588272644163930457724610529044646281931007743760309148504742138616344101129337565056880587667023354150748864793670951844173079251349075250318299817095541434883490712198582976780760028311495714525139999062247531433857252822054802276602831100608116491043077542159871572290617115849485510790016790511573528663712265490571017158123561452934034793018951299145311298685711019517934233693024394720222220424436363197209942821712731418968163597965987805911890734319266805075459160066217927355952797543424453048848415305492680251739547859316870192844150620306438789792175730159250634600813493268382546917312926538941886949183488132143182927904761066874708991336068548482533981515270609881622178053699985004156534896838405193912835564633534490710494599906537942103433552035689500976575456672337674105654122363110463450072013972574123515990422840795698882472011702420104460811996121819028936625295271184899982849797049580310014355550779905835662068491621058771367168659595643532998665895495903545486301067523493177660086599271676030515242398356924796715947016581531430879789830760086791707885790502555842566805852395593800361428231282940829754440198644927591376536113145018940045641057643491524809585982286173929437385551585520765798263079799777812993637330828831193390574422312889711539996697415458346759033534840602091661847545903173200634513336887866559824345473419443986303008913288741165970590419807545865400626665237665049710046463551871299291203323354542404281007967915285081408099081772151489142207372263968062285652813648506132609281590483189564779927163646360373406632409056277478902002853546255716437823514040590841645668568889917654720022117467386816010837530401214009726220105719926799709152025315027666009326630253092763220858030750541392282856175346567192519093522671525367836934087092711588459057549595805050131647768647507448368468685394094218237670504056903020287911632262374341226078993522476772433339067770309897090296755255999740366518191575482963642093353342531199935379963160413725033263507873854165384400092320696176634295302021118914290040188825792596335125301145713551462641178763975103258749296469900827929831082648684292622576923731544733636821347443568341210563868968459841938748988688278721590677356067094622509908207245372721885489885669056195704534110026977000220491602716788758269953485648705453972907651997607683034033460525423001025010844123993523665192527206165369883688659871480878749899212011573425701921979210844526058542036221252736235779711122266129463262107982687382638611224456095656274864115608942478540863813990886320305862679444248963913230475334638480115521753806648408183774566848760825391387839959174502891792232953141552210695734288002192613252290520839754163854434693775584342703318261439744468045224795139972730739459957496659452537735638022609332526502357042722003216551220685965995677764600142054754529119933911342151652863581399463179326342420254029754800647145114558538293546978962510095112710565431688655648215229922514116271837525898609174116308501752542455783926821159712470926654149632004614503838472335652230226297649491896246364277593780422012699463143859787134460406090303836724876486873393545100945694840170924977920985594568499864553657266358103039101321433280888747332551118514670518332146536615942089786185246494512525321332770327998528926141680460277753782317617058324608800459771078079526332857379152117165417273478352614261242006959578914442661978140160420642950970602712926621222115034115617686532156412914351813165793786454127690034699240037636545411508508444767041228164922945276519858123430821393001438044310873981076974539466923496288071380830925319715326969844744418393047042096037209970417379326035925041982144749562206986102391172528902312765226859479522166390190004113736547484960516291145646040399204192687852651718184946277969883667308293678310990025317880527148422825971998836418024608043447038040185648243440519976544860119067148933139857543162529716087049862518112144222560982483727867337331283666798169892181279527222744979023003737150588893895352828731269897709983644314423502107801182380337563453802051313543486268716940434119807791637064196879512037935918546546168183902475921880468370256096862122489759619503011995310058259566893446186409945666402922798136239673642697530145264859355734361278188892230535157556176539134833307408906188669721125099275144875508455283775039364795798430965875798529192464076021983092310919449326089513613423540160996673452127235994107326991280559580914945863859415207926318132046306707918785819215855744013131599435927832509072702654812357459550551276046283364379396979633873283252411049399552203262383019043242587813889854662651369502604609679351155822680854139010089913461180467725891839797051700034289768659817168970929429263387480637255883771442873127554236029069936076351023732343102808287432850223462836962963127259962279213314804399934048738260886354852936008189907321983769743132926262080927306876707718324549600883570656024423290517163798050006898840621365208055464788195685633042101591248741707513303427822469284673268418333862623957474327046991850490575143854277406207551899166732165133177426896361508555654778416742005929427035651515905147030817802986282369011453575376000145427076380826092996837186791315849318726181763592570108750448245476472341610825635031243470121029614587933067806373949632648157972394793913058515590894547565727765325810998283920060794464912182884695126040330860616295189188259029573079168793997852591142770327472766734049101127796825509959189309577374540724012598031699977697322677970704138345920253693414754904898676622401242450036787860317070488521060768987235031194445845138295960382571395178501563884079096058540290450107429701546710824841692270401147170797984928779994884597913502559825541254332063488541046169557482694446115734514225796995662180323494193164917034995804356178995243397840221931887621273948121560151098567907809403946515875720227244821747217597938926617796667452321446603344533891892019631598052566118585372572423227558369464787037487088743735669878706042042849105494756372414463368193948343534134662892902008557394065856707734659616825024198135523449424479010996403021107484199153135542545860300782689762791591204947740287623912146257620231190801997628969851574391730562399882347752771367255451618097997751403123287600214619840686501656208610745736167549841561550886768799752790242688091412721541005248727512246256255739231496588671660020938938426739957973371692014502115761057298458149442622456692401358087686110129846513755517425666730080058214748954541668092112265955775614457076456255280932260274065613235985168939793132243608610013798673443877298088156183164865002926163994238833989433215457123708820988737120902889900817695579750458668274673179451621708996995231341972635039938464851918817228940714953126366446421264948737625707759898170669001642032231050721281061178889628341043848781381583842215470367120559813972866259598015525443578185617465828634516015979821211517468843056984863552705099077425664246692281789781905724694620175229070163216383233392204848388596987409054987136246244915086746233985629220601208358129383237283442981551765777428392058616332785004150872155111326473042590620233534757212801573264481334906721690727534646146043934756713375862728746823481970394591963374021867068570893311184276673800751567006266407451722786950296406872039664371669752426571825885679308349064048963749050911095041286754001116179470001311027414486765287700386965413767949529990015681626808893155889309001454947809077868594907070265231173978785627427854150910932016481159120956288399847430537350589651757365797479026875166506050219306052346233619325691548609756029978433960179154894878253507367349666819906979093694763400386438655021015988337651516035018305627849597784765925690043638102896253498948860703358874178485031757208075738180974679648431032985468705335799460275949780513954955873721839688650546622703890054354215491619196865137358327622087944885089393023190473700643236969328199636052382299660050692911669115225533170889780027246345785005302800215133295245535290326822085605128294418246404194245181624465700136610648243468289773648592332272150833189079242582695807850256332645315956949206399442265234834267516362724162544487037570691918476604478434612896815091567364030476512379300802585904717560801579307821793630171208343594170915207687464165916307389915300884454138108631910846267398352101332592842820280165586982269326249144413130337222192945265907219280652691393064384153927717726914108790159729843044481692480410398220961456494862632357736933327109471752259374424978595881436572601237279290077185823913326947100867006532652214481994645353698996657798487258238405573272225813877479925527685784493450203167089622182073182419636437946187713896034707313334942472984952822789673367690347392136911212683790027527893274752258372976968796993169442993768663603388279662673999337584644943455980909641895248788699478005601481605907705670831363375264210587230861576225549144299803959223248786321984529731540745915270053390253096143654124955076423271736489874913882223473561584903308535610493386327156439857928871686781655325405971676666779016258244002435429550918120392185961168668409760385731376222960298310529692822650181477962656382453813234066446299118522691745314078334097635060831990702770487515231839103486062429366729132985264205560014062768557324641130792774086035706826162154386984455621411109954433573156981962418612733685191339606473680726275206584433657647478205549410945491434522336597967900407935083837677179514149251663664513034606949189677056689501773671063636763073577805191503196053857807524676053670113268469969390777407106656245812536338952141309598486013237783104512839920805343097830031561826958559983880855659245975517916544448759763090407124680349594687203622226593908070696063984163415975251058779778310350681784645383576762937758318831294768186449968795597286558701770169853074493278247377701436763697631798062686768038412517281414572922747210572799176702575182386574689378312899006652891226226682941513275274303264349706220161228164785877850614275359606801559074509083238294303030194447435154199643694269637571256460148393054812225185497276813965956314815295719325016906901581141403230080479716217193167269688388010550367403158554371706310628769229963663584833709534963702688333209060925670381339049785787357951413127924244655240239309249542076585651621282326870859370301412033691588002320605490922494358783649835998857746761245618645334425202324305014436297971409984687984523643488150593216008112049404367724877000838131233436636773754014944850172293659725445109332760963203009435779614398963739000014330521608857079910260679687893657264842594419877573226301155966606128357083971120590287787847431713032361605481190001400326105781033332709509849340223668557535014220626129050093638363254930694848586793237241303692972132160236221646788027135557459280262804668033402520472157849949848587850175299202965396465528420478849314912569120814771955605503201475584839908874471039867522948338854877478804803034717892668867308492256871580643955705437536439505251693957287746801042321320647613358778759906328924930713124565421852326943365318945881934266610612984314288356173903768744699425016825056484075708043244945198244184767959650110913657916849632230265629914188332550054080073850133668094398337691322177131688198769968352455531856491515404366565700178567107770476233353859656917025974412265384754372622292242981430122424747045353724371879189845162709186624396296014795582692472367562496659630831284856759761641163557601083227108991074602825862730572487245129925212841533207204635516318512203994899261979404156984796005040097679815314887367322149911650932281889189832937465108376616767534463946881458984523019689903985470782644415933657608693895522009336041327421002160833339598818751751590326162664451084168870824946430613945232798838003611168149477045657462340810670382749945161969309995351670345698540549256272391667070168904741345752851737087651869417983291283440753919557598270427853671740970057558786356487697853875808521244376170716536030594177755545106066513259245690439322285848870045881427845430882972694674757391159307878298766117537167691208093403443333349872548559677839771835561148630304045487861632609286442613011158631246778843043771692323141683168295305316443295990293793899639583956336459492918077811867477869000302751827655769574045641124810519839611372860388697525933218249068878163584803846995084549996815631518730910495518049526657193583183841793908796353659517552160747559825836927449585879082780832364517155421017505738398865998982335601400155499738720942108783478815713147360390829143464634410297382183966519090160527008035485164406706909582533272686570307922495944130139193479174670642463684434375489649570166019780858496379120710505109624766785251268970473475404475870870928975093895950335260443098125634304347122527750134765631249392786729581537009914481746531549365498639178657409457149058076077385390532149315803478884579318488170556946512059003479650054458173879811824448811388638457976096343287393958377969898934237089318342341285703304418600467566994788153663876907254846961992693606331909766747822299676153823739183727770768304145695613595264875947367690445865267901016849516698158920158740111768083184232078545413315258861500351615470038907815959322995483270826456916834461094536357313068071453686815003107959135080684273366360946842870064179223728009950274474831245869340294807444228733184321179644045115295423913004522011769452205503221555400407918970995334540408699663625646420194606596080950717879495386070815122300106287884479933002762807168301040507429307023758588819694191960345687906771718728349130956065073019351612499024798779911628383587555860030154155127387456413184234488466522872930409741414908519972244017240884443881644396860116511810291258232252751067518578972082942296738555541427114107972190724563002152471740362229917294114804726281826230632322790680525446775500650223218445577482036252537524246922139806646505876850231030940764442416371777247942917524412485264082911999722530463536776929039108599357172967327453175809428204876603542297051690947238208826765453821251894779102501185731705035831301154962648046989305991364725923566020061240291290185067416186627023732485565867601213432023506767832448135826006365380080425880580456370993201215835276257431863245784632157964190664474969708346468335342658481421012381360862800328388612186575306289896294762624444779967468617471956312081947658557923527855635241257816193028600485093194356516379288977857313738653021381752845066370327108370864360787119249829437008895277463937918678267543385336197439641539726133519883261158372108880362548975552488917149522430372700861143584996396826417058987980897012741051352753588932369095342154531385054075618477738236795907216262243231239387717669718439432801747789849448003326001179173629118723677228909781520770312528350024164622239587944819781800557300060452347488970450600274176835771890744209611145858641767126009804154180033063509245300362940845512150361695267031749984058264403645386244360635513329884219979761909434798348206308629904297154100346201084987184894622755235802765808978248878045659942128404138408864930845320947622370076869328742429617459031588274203692063512302146580068570170917289827200380066599708881816459082777176648692305237385451681293131080493060068229795381530218160799579723364112497581546181047182936244335529973599230496944219545051249174957522943892793655871498208625055450286927061408440226772721077264422193322544281815159582806824491520583479373796011067847656812526888347023604455943706894654617091036199066798383149290950309432741333484686552988944301834705288771651518837760384122911639512488831628728742849278045636888331907253680261464357978889157702557130926333004262661414266151707059324637148882082988129176087730437760339827304018852958495904368511810502764234298178556825462922354343755278558719353695239696107297256135469818899099480409845197725279797846432020296471268964230642508821661851427661489239278994165201942973151958303158277968411669983549295825444566062520713076911452680809565989435559910939960641124945004761536821136281064930124797799822352126231400022002348949200621235028377447115427777480905713166920809652906379448135011813093545024502128869841657562740590025453731546694286780914075821369747472116709147367292462288046567996928703600027299824406130763565508534250889173258118669923711479317407692991441421382626427331020763087349817940976217744221148017960121791625872733022857798081719169863505361600633941586027581658542501650142348765841435351625794320815359565783829755454426583599591664854355447294079898150104320098798477840501637492667598592609953259566619412901356647619116281240693791028174061254931658586663279031494330579803640355445664075925258989530851317866740629095505699752720207706317599365389402041262798290003510520094499113396609529305268445382203899186631057041918397009574020303403890239005475854692252636520082121324915276328909796553290120166688314779299680632810531544348949179430550873236989525529220876002086980246496999210222364499671273562744116274532685213396159271440811037549467496441416659137024794109312927193274441644825005239406622401780974706361220020273326628245764648808343121281804524920917235594463827060101599271244746701008685186371178266072772030124202139773852947416825463391543474015620570211815756688601277384460114918978166165262710500568015678424023785883926300137845469104927495492511396901525910443480794505198352351064939604089048637869629991202270773167450216897254290598054547482061860325522861416125655891492479237774283287194859227287662512361900040560212628359407513595904856912741361665053231502950059514845793826441517065028648841336798749292033044668588330006509004734740090271432234732782094890891754101491290496088359462351229678613033729632419793819235762784674568123160925277850357678053515148158739120285824683322294664407481526917866288143333142712682422432318384936001955564010492242504649802443383735264795624729655071248539000501233958327645712637804034600128629312527135751775918475435989385968363070777468500332471828742746335568567071537617814334357719333376924846587940537584127111870152511802447875827553461491189553739646988302700871886517801332626425849789663331282736124882732316047877165116845579450931496535628321602080422494862446094802539763441090172922717812220632525858410541373119430338800325373658143688764166038001344558695262366727830596964790735704292330242492700842446195815372270509029307325481078091190577537652013438746289170024805307653291442728360384790690439671752999331070054868442750700577639170965785362396328285408324555835114050711807936733990978949770643452349183079054120238784422350006057961913104211438974732884292996083185753546168947914324890330589591067404579866992151408670658802934379244466106675779983462328597509401544730098886595096041262729558409864638536070633558407800741012625729333977391714881911564687179514933677116014407561232653607845301864707866144945356948604286910716264719747168533500478717439601056065288248578252401570036598846873458564256791132652159119664497293249835497141432411331542055313569619055178382553534029231046801363284644443630506904002371669817481376546040166371056383324238492973649855209094877822382277419660057588079733685312422176921697493231810502848667908844105093625109247492319883594924368400842638663751034296547038133165846904770097849868536344085234936955686774381018662611664956024031717756948844823810262692152363014188544730850622904458661874143445161090908604599296768444530026599963527829146788051497460261940777456948602053935625811731702627799153575861045339496981184179044006623289432233606155600193945595061345151642323809226618920768946480519162018238844874401559053597459325108806076461512839804418813322357787069695011850506751368902916401084677599398010065651029388067285405771116477847549462395694102502726498001718810467805090257259604542932936402745209129736549613157725525063738246303343535955437450896250787020433217976836075637485654871134352471680394434901233236209132071818530788173887282333234054270422158167173120220138957591008133195624642458215784286137995948892965337877288500211141841598234294629310017796732677157266748242435476439379117258881189455916748581139878505166520739122423002287225774834510421083968405009150893889519935143044787550655347791655923487165891489660906953309921156625850356712049973248882103861781110112368892008914772180637808215916598086666958987424140852657762754440541463376865979669438966229356312833780238118114685560732615595338669401731593579708860323603513585525411359661915469506151556413772282129563084292835989981679167745456385236711778501308263105053796343752000436484468795455034096697206664802822382198431432704584636357298049023309719901084038390555908815784271972706886004828694223387194092079481084987246430425583420624547727502507282673086486260599650501438329992795281512592524594826708847777928000978808193910391259272967140887336249994668992134544450431575483640679518071911348421028726691230895244568359475004442195727986697425695227600271368911839973654346036985976761199030367679168520316176496583082305445455545100260740031780285302082365307081739950419040311553390913489549607209037488402777809601072084467398668095400983834610114895757922124069123901803305233686107959626110326393760958272730245854381148710017302029983319029751500773234819957205774433792265831989201113525570641166980321734286390217842318512076058924737434229978749505106772006493540037666115227804189469952320141253481185815864359527711286473665246866158348490843911182355649749476954055317386692253639057804282733220151233994137904230618916591850884100535451128226494843504102599791718364435584250593379441270563858357424970388286581263248382880879174521736848915851781687712228882656855154338756253391157033967184534203712021739663967109687551606381542319694577553278887733285168372170059816742123697570316739533637200527771025240071095921614703500852871483996135032321265811098156748517360315064768945167862454436464266072380289154339338390861190707546256560575557937815811866290720357900070442926127619846592472964048306996727093453913538305015463564572389202894588261624542529426127301582250407206106382512011609567893444986156841730799644587430685496054071628410081754378946989857171087198879642654426369352502770946521819929450452275974030251813951326735344473003362524445923867913537485123866022906659851575741389028583401210013151101180138672357140044756563771106111680239277555271384867426004146060630749739841259065764286929143670230987522230244248403958531149794716130242144866263991122299232524009641445220386542134596126367897485931758430874215516405854572611897665470719691388826272461241536837541628619431459398426747352403899935226243425220854271493572447993063204887798378131340755205064523107980113798006981991883287935111348565634829718376870349105507429807542695286566328870197287041249184599409861915223005370334675445545749957105086927136047423522416116212413685673021348004154288016114939417980628553753049435877863316331940716333005731417737747731580486873487136200945394086064281966193396087056305613427071787536499695039352104450169154023997298165601299753980745452054232512710823066708876159304621283117764946267667324558095175462745592118195973405622161363565185378996479973029019378295199325720261778749067632089674735711694557886972644080032735792025060021477493563514147052015813447565472806522750354951861319272864639660509034494601464625331030088218453080884798262536475720393465171096405517615634705266627072590417321547559128338978987540198342630500702069382729879679009718624995559594168629102590556828785939260002410809946139494854056660568231851838799640086044591478213156279841250144390141468588688875314603084089861571426816791544994169504578942534733101917726052324041823997943430932569229067080614541345598701746862618243323510370071339466870748825570220585755277054738293874908220706742710736340138271702259235382973569462262898916734920164014107889100475281715146766513693650464637005806734834881931163698409427652088625981440814966357370047870917341657921570714825516269735955573200636107399228983559526778176374802646935287665285082553801753890251678094523115436392242083936271248618404359226222699123009530582361353083848076750613992911164020028485409633564723137812340037897516309787670090809055665066464633043581487368721757678566834847644481071813919980793713166342085209090611012173434096813740904707428618543552543137406117667539648633022729881433131208572340267838583765126437700944603247452247932787066874379670356326584230257759189299829861150827904626421098674756238617959158471896208981501539080690989850353377799785825383657423605560063714582176864008031239956471113205759332616764352889977483624180483526833875229390301530537247892432061792089801943672061144953659173163789766193204769988479856599253835201643977652128677566775543469785034505061959567778098550174427942256471909245445866049756432062884666544843146471913014530279239718882149045865998304090915394778008570217274705992182151630695400380275356708809430470088284194208920419921623654255651302390422830273895379921993983840847690542787489010131460111304733514642296679876148767009206714918861772903137980346073922183410454160811959137011681762794293980420561833959873190317856738269513826103425084499713998598066100569022667966736598652415333173960337315021638367688410891489520602304474945209075108354018624459608551223841038874642599901492117217819318157159329026593130549070915709443827138516028402172711452658339239171676268295545003258309073403749424033654066092157676754955817496910840342157299583701634359077808715245592930056799381855775222359331798938992655020079281151830882577029365015469905310406190932123790920531718287760574040869713677900463251996017500376709936403518248075414086209586944569210889864472588179356053431510797971212713895841064217493075679678123298884231507128784495427439925978687716457746693188778559595283868251978888090463792835611186701950211260136837698418529002271982841395180654223607352798798608315286683767556734027913204299300438267296696154272061495151059728154801503768120909145696345621396935469945966633333933368824737876315140035556308558302465835923126284325748430119883356905136933764470873474095720579937923314715131278221637198803864458987796197637027243806680887314523415055942812980508107310769240589803203330698405660259165927804063946275912071291759769164339764287238296913543691812205402248690044428763540085298911929912135064422687275770600570876898716290756561918048206847908725646399799998978940494134098024710667394957171456079347429866628097919708725743715131601069496933839842947008315594077808533922696228041369090245505169164230653491891903236385196010559005583637293719358345822350191145964012049679411952431649918131106605237707163636012795290952839438150227675579968891950527242268775118821063800783762762725801906738629017750128574712754649182386417007749973460977893059481027514889452149220541633569303711790134914771897285691616598170129171063581556105557364323835759658781837820280260479344618966913548537709930994087667589922741552289212901467649961451961613059124096981835101232115100744561201891992843855385768038026868293558449910682823874785529601622621416782467036127216359335710215591804653127323133864101990559730061722211272030733435283299997575632872619191003042941324538989733467214097276322903126499937846770507120652240922228630132260218337185046974470796264937041555973357708940584231295282935781334177161719266340455484962228899111151924092289575616490475522991020006155803165886005164743439836237102989095824489098681678368195519151543612350985111485548688075344172366488019471151106779095361702087743981298008295422021542568828126231948673213595394826118368489028918874676868537797938213700863037544239055203958686599180134837075787064174302372316307293529198066298223985108230600449842795578451127971900989377839145125326412808012230386322540758413850393147785331837053939010933658998941458405949334478455404956870083583989451126742513574770978989200362684535169499541371840289439336575770887084173825343573295589532963723249282975176284834786924882155214966190634508724229992449292537940881731672866174955024728323391484503462310537715895890763708863491967118796245388266242574361178343538666301841854343156011530877805736744132072214148399773035195484921749386688931074044062088566233614268815285163065836517943253956061446691847728498153383212207150447600792026135703470405014018825923303615447674239121531909249921048112901261345159414731511439273144092875061431078612562165153632455400686046526802034932044845293963539905805185518531310938454385490813341863241536363551895239350343992521549552487172499828140215092398688008994157106147211639658119916303619239256773729796248043380687770103319475425860030573667260781543181104289911848816428496737697171702353473153730215407866593639065930697146344065427642149420102008402252406236890359341876301844038018986447295782676404117990997787359637699920286206902232379551071297005735349481572919933910241183635229894448542502891617412757065932812068827588254790697648012347420287383439762337694449250429167793067094923358879028937161931075614734604921466761674972017022010043150082118728194102970581162567774972610731456253764039570434080765981512357429135319181066297294417763694593021917984452366825575112987249928072570369045281384601372955354604515923721035155042982833819806077816441162950029777390841134950646068319358224975682340144677364893746006654770176361480301973981889494146404122948698112514746568288389125772570662660330920657265765118635428268942044399435086676678275840243495304027653085768198702609967087519704840314904342227233735960372520246358692080980875131584792322737280406522914298228564944263537590109603655624810253714832208179570202377006792849168765883274575722302584704960189081927302925187382268427859692635005064419950054519977926219969039471650116220627375336961267350215728566600147632523094812176293879714653914050524896554216458659312581314974925396530944793201849404129667866726941588464056135164599143996025453463260003528440089087980893568654536459520585798248553900392645054792171628316094788148441030812364382749455928905012285198867251735202818110149697375029509964867181647567730333218715247809506506361804736874915561207250731537239069837599114732629401075739877593073949853176452036436382562715608789251164935990867067622235330987471840527692052313174250686255632404079392169255129819059273497631959483006863231369134014622219673039337212403858832659345836334676461981410155931357403113991906885840404498755281490338067825401770132960916189053765528428687785491465651177164917217663161942864143582544061692641407091867770212663453910085760091582172035951569666769397242247755796429241735785771457980618461915245177627782361922009647138444740769767174042497978663430706345514003467025976159672706276167573750542744814647918674552570617078276091527204607353936421616201258360391761160905910186295504102834699340711112985128237895185866193151657571529862374307256460216409185290099351747801121728973410238403097044570931301674867274970495120964816284638604331297466492019711062306690393200581783450037270710547537325266402341833120638829338978416976748473611915832435416627999554071774385925642723913531154322154098556898914313567300798539630151705684879296717506271627320748468429044276701795304349139484563465790496750793785629460935731711270261722091489191958098362744402579472765632967814396651879664629144208142196075987361709894618824742900988958792529163594034474163079668339418965165664127589546844012485043504359853418393302385514855802922423673240419829285152310004020734625397637129032726439416089269448594668065196945721800667738306842604486377219833143507790891683380380923591779877981121889832963880362448122107434569080937443339143663420662514265010414055537255757129330703879696338065643298003629788771833507278512425748952528377281997752696150493688695140464895603044636667827060519388863041276143622986617982816324901225491144638432649231143994980240943193211902348942559214637685683143663640706828266678593602182085433396868838049241294172117962405219269163828842330259685582055705809832562355409550683224005289669321910146527449571169194321281608239382175501548359718497679351314978555061115833142709023073701713327966450223259622511010551686413285356645628424090019479533569618497936871244888514516798583914706847663510232693831050028302590090457386404046294537430834348679798369522909567056869881258593391174988154683620445609140258626048419255590851552227746787127812088474998650766632693882857812080547152870455726180853028308150497755792981394222996423475174195386799303183607680918913476679180621246437671879670813462256011739991043448910073314292984193819093565930876610804159103429733066392876526080944151049612940342443304184843371736898084989719200104043038851586561489561805266332325232318681809000258159433227100478484618243138135378306215029588384659886870686727397658954872335476206231931510779260431183981979384675977591690164880422224658260330575740331169342543337422370769456539723604703267723849739607059321520768859519786217940446966046108486107022270545408554418661749900320046013886612084164132712827291856984033358463639421233710963656341585491077578198959160853113361775304576558631394169414650756053491755460043614701082867616670355895058570769407188199770293474767367824559035694679478721681196542175344735827122714673698528647734201204790943148486533127735319244647172065308326975875670441681391759682032493864884706930226011200335263593834966683337567190744962990140608209016641015384037740954086457079834374770578502708695660641286958301531500915035087495125766251497771559575621043105458152052841926507851093046364883471501320727709893596068102202861988877754942053769148140676413939016443427084119032960779072858348246734180101905231799380572844827863414273551897690797992576831891343789295509353893277766602445659197102942774448909696417539422240998738197688729068460689389357921444124378304645125107786524403531475725964154348301915846530891926220588473228670801803412601291333912157490828668516801050092374449687988783182418944205340600405921010362523862037585417036771261328139206274964156660583835700076803806888765347773399320434575687102660097312640325508263449140690980907162065063083534482896720373861486042239707131242736815109480647639783658841300865116689870534861579278342146363783719122677235326184634984824727262356079149060801259173443868195108011019156857651670282849556721228471959231885024901588863102061367688562247034103355484219571357940982682802331973881396988605188634814611992700729142514443897492513130638461308061094492143975388279107327882446098199306624379502223773167276249337738536725531221490240642428910789541483716598615935369022891370779153538557371828046225164997864328937733984745094465626213687456486401231378064996969287092570001879541204276129551002628536925213299539645953023494983319721465514308050554386933827526854455354667649702711886491700678785985439079029357389291073358907018740961019235743461007806504794384297437626997785209841891963466699400176640622385935494547240111530224016056633182119737843477386096422965576256295104106192403529012621666094882217693954685205504963561054966596033313874162027240156673637022839522868974265467686545549908884001636964473082525431327986242900691664453356909501645232118274559095421356709630875312512984106589760929025041405058428814003709656193135674300607450067102196587888818682298970934764437603277958412131177135407323703943021933863901538709666026058001414583991110880467011652108502737165603001880558158400896417944131708374770678975809822791770229194115901794543302876478788627969246630347452720853287301091606202620530005208214541992858559605999109794883373524353638809721626073561220172867717573896447175021966287288446009502802093741322904896072862279765493477226407510383173205670962872083465913355858738770380820072813748498721109860151470428537622835128665115099205981596579505121032837526359145696362425443484204806111371182869497531258393071736437886387663750377236771325007634070130202545037983073418651051917297156576987705884451144176742980686544993707660295689548536757166677708528637481405791426178568431864648625691772290517237993620064902308391713811245507238346070564208689582177302430581181573489599634573680188519842653889321299452908900742959375291062968409295547856227084197884029728481262207160923742967511437534622551626441412633785479821854795741921457802344578770051935807193002001656077781188887300667440014687498364269598706785943928457512158082762692518737810708628010103633235189047246115056427752248492056432260479007830833143303772523296967110963895082884837168572912141515446972141609530963814868836806984325376214835660417809826809594141169901730164393600701319915992368645099791167337454092524942110577422843758466442745271780035810345624546792668145205673175875915666441701193952097416377463291326289813283821254259318255635258905635080627838813879004833725202514094832001640080046422404526888730832019579975424464875897427685387270924345640214273506600915641460712018887204163212781337455542318231811208711108280139853546746424325720696082456698139332687060202723664312996507453071521005262943812951056719705666167431469601047921037578856292450542468979387537022016729750697024047647677398295084090708351363490913644719440343681689274339705629855103131163014410291723812808882170180249260543137782661538063039797154447385385191457084556558858016576678546492840961800566243304286108445552399821286703255121153805803720566351490180134307895169821265562143570837716850226066322086126670188116150523786486265324496967909561785452872825468959255239841674395791092312288941238040378916257623877924489381329246638361060361621347832678878682158619270638313832437283830048381891995012538207119114929758002882025188137703081299903759127375279437063121136178048902498196783782613934147778819937148194058136064673168296096944815006387994449020991789552729879056850005202965812377089671393499771748551317224220535573770910931611959685090201386555652865770536185115043569962857934845653302335372996500950252744656238573671612323401637257672878218489949982460270025185731022995976158210243550500415954151568675550908528153799591959632598156625697328913880383789187499173409992371639544006273145798946739866212382637884969883525690899745244308071209278858104063628458913987642210429988587323015651919489504256469890164829800273231715625405906909282142057478919272420117634667015163502024903939055129185956904496680295379265343341596959328582553741881125675387447015809386000073905498401998146615228855252513874377570389713187050592625110815233120360888542525840280047963751197456240834723590181729386579643320462688858076789305039846846718061120630686255783238729246952435288460625046139775813857312876933796044966038830612352512661634091054521116999731411395229238709453535553218240453039342486421783031719534382924915767824988492397354720035876249565392620661647863843070044460923507258149303507329691369917964717795348427964701695745841612446703153870658731933532877945334699192132599884838179734342168287505118999245775460408389139630212143400515402692914675608103471725653186749986228058692455892568673800351771165247088658976593628703525706130799731928665304717002590741119489323944882861226383213718922035185561943075407919675545508372484855367910715179059287701847041162938737800879209162981537000299539603757483309380195190890604907618299648189887146277813139347069441077138235064468473236022053292610097573867633854893891824762173257754890731056700931771942571244693314328736801171082262320318427796386026737889181817584436650385015261458755067376036069025990009255627584591652075076238651491011372929616060118426416097545049379051142255045654276495791693231005663927383341493001444882956850670843036801158177584483851213954633459992326441927430744010222882475641419861273082927527754886742277835143644245532383097116468044192543972935789672684385194622327257313535589696273817763843988852737163945994422209267874409726165385040041667935262384184175777589724913555794248181174064075410115370703726334405277149023122200927642412626999565984910048423319483070666217369612435616440792496418205117112908514374337451378830680796867544688771876045546080868627416949616838038908138974097253278136074542278286133125398497185928059777427342339292787408096891549426577999862512857984015353865039531746071782138382421654790842149922788699858736231231063992677835183829063062725842181361283068666960826479994296861674446576350743494542311004350053068756823046763978146318643231827936717055893557946244081216042458586647966450383837616727077997573968586139268525762577777182762599949638978178151283615607986469414803786610821274018989515896469527198895782078840016845448721344985190290830029338515222787076885160531835699881357641419072813974110289351661535123277293991088254850214900339341399620400780018014206210359125138168232107428907057298795413344926531302067458245693048087349263732096486173295949682283761375228646303911628187364891844126702886773787151933650967959444531615093941193362100791101230613473521570866782197624777533565830877833281256247591610625068793627173827862789460943289488026665806131923106589050148156981281578044927991417599424847615183321157291856494473307949574457604510096680097948887305615240037430172349267457851071282646346555525995200759649876421291748530102474977944599609389460669801564359370396974012779231296357235013818904774896292607164487237356840861693122568859410404523497947979891316622486430244094698155362078897490199152980129696951576716659223598956688968750922195952141076714288904928904931615094885282833701267289466752821619533864724757937466319813203058975826130645058431992233780664570673936324186710822322086706054644961770195630969757305695766476521149156896784583717532668153463021543045136140538600574466024602730606278821071611422861744555593268783900291805729767474377269155901781508883893600381069630082373104796270766920895881734825767541378278197354548968503207208374634903830406665142894561436249399827985078665829050686386814173538461444664239204125950271209312643158083216185888069984886754663822023399808058809079785327400100911284644692731895984861265221621003740540562323078465275554891784890928008986158479540448391911562058687230401402373673516871678214050404469481570373373587189540884927445426923511592206735647730081832573790580154129461883108924426212931506114322702099569051959040633679336933289068637959935202413259713306849405894626823222263579309607973096378404870791760153269313502961822692600330917294444733056695313168924077671497284099749562206424025296913690393297067328830796152751293794793617705229433560577295330245539511611877889003920576351040643345367941820103366143452943470722771146887635694750804301967536954617718061967979398468936902638418787578544610756741852681467024874832117121567502274201955510252947869675736734110187017517396045175381366582955657703023947283747737094049635628130721840863127843066350676393517178094287800181072821663288745645719788689742461620004572832997364868112303920097328331695125694168308771107021425963531915217321028929119007605353064867348496898850914541767828473733051817435000323646558871175656074432830676239485389774801378470856649954611877653968287824756057374667319498191463287930465931126685843510317993209861775507786868700945642242555575219730786656445526645799058544415774822037107629879057566620127430836189342727614255532606459515242874533525968585953114092657851155710088459435982266176259630320247423908139187021558426074517321713953373361776437765975530157842479149729379854546718744706661193182950951440759732026242596919887257535300870749107905091539123447108258528340304159583154570487287301609626632402247736623034857847287874432611556038321514516249715780383212225535805337896824837218048278474057276563544499359442024696262078534600301570938123745427319143150987487672400106654743790667175237315612846287779127870070685972628052281612567294410620224888167738615797601795195023504872278623475909016382249622731435223873073367060835393770281908959189359833199137206651948326084660345549230042032227407260009903438904274293857523426992198919855646622889090892209261299150331600314120384832764888628090680222949391662140033335113070628145258989886315014466927534992940106805824614097158931028710825575709614227043894867023299491356013418661437376878233582728204515401379293152157818200110125356371311398913165663546832207570297014639770236023101345337732175645289233555990801743336608464648901207050647220102161516547282997261762619444754425074667084323749566473441334186618973276235412247304354152071180733077401041412310323391299519146870787066830054638208586400329145735996095500427979145826706988496157496802157149960369368386203533872477689228059315167783585568849651011853038077694886926157828119455575254697182774093514473299791852095753488914159370178988063652738523262091901091582336005483842211839825311688499858676051404197364181849507212858214134884897283314948557624489862720590639007479369481191467074453410430976746240619630505458058758673020424653161034073658398119397912816947553865737178646733029884097207039124628846842608039627516976603053787327998305857398070328196002956227532960036275805429716136156242289788824867837312067062442488730073900228775843165751519171881138469169329117950024792887867071757158403349904000391965397101094381292451012116448263475702001271167171062240656908442567704225610722970970993557429277033137735606839442875417678832700155279338894949364916823798110206737270820100703012126779316658140012030298739277201713691374342928366463409878955334428114213371713854396182578543664677059463991973383046976900660392015081846210226407384619879443679874650368237321643679817626055136688971317448263606282329650399241560455512683200502990917235614284213991920048366372510202264354458294166721617383330314204723241202051267171077028913770447032545334710615324185632129839442748527015533245178524095456647087572556571316367945912698364309790421237088506357833365183961993100800890890141718765592645990224444396988203618717535953855004271740933334617976044791326149720049517831440145446723840014013568551952098655164057877040110317811167415993345830525213630735070292261460402408799919268649002028979325381310492276626614450875916711188679041138707395035360382437868922897017758243190822214780428452442960799893314002859032323968940059951317782537638069139290967437745595884866387403795283702620590676442236274706888591304898653659829639060345778426845632382576379231833680237037751502546089086905688949009379048470577624269045158499321863179954991506466127452946751092324828867910354459640072934796831735759065897710290171821074596829262429557718608575086724713457519356795245687784671418732854921196901495181146946668193012516448297951031100082057374981522305632639463031258087477204064308747654990965978052758882713116474758432353363051077161906112578005026482812250630522071967912662190482772079708984695502208526593799025314737205035021855672850155504298133688738939543468597652580883011709443082233045996893852498297483924951329094455508742253328803655466985430412983414190818649396142862540586170104508095264059468442715025035139338531614399317814331167540531185211145077921667813239952154665581127819320921624883261857710896705639455713743881218352863445372723361034970738391355006159378811416432402877494668373932258627748651236422377526151600414884652446820279786208024859092210957582664699031704990268783240548237076419866471509716077311600079500310042473353005597013419281348870555690261887962531485134544769262911799199228002170412066458433371770166912167145890031591188468911636824997929496010126531769721897701737147971721696535258065666857131719709669509987048942616927196037872088061517215741568453174805863451251118521379374819922329983726049995714700736912813888957939656128143626397337640369660127066387831190927065541210143572966602584374744288646460110451264022276884498319858479292148503724428194967785726668527511613615947896425442603933030728983061658277756133721618624392816022730861726718728888395622664675576424568141524739649452734025209678160853600345510861984976545738303206357068682790939244903488939175224214202315657635921522866347446757620062776014433353362515898063560834797258760918200266709535878922212002195152080467482464271477517121292203478992321653630638836306967479762904733169247326636219487477058418813270468735314064465467845078945315533446912331051205827560721464070044623917150517142132408452822423930982791198390102566598729600889497912986834741666435985018201812666207757486609630742561626081394087633122457009829213339075906074268036045126258220869527669143451311889134633069952413597895086043534132647178883726805226377116474259094879616025468816042841794294904856875822565605834343789393778863535631536827274423699244173755968972956640987303298483410242751760569588325851499725235521713235536681471286739491964799849475255389310603084421562642160730650447604123706765853508800274889224581009187163451292025326085814679122382074624063443311805017574852656017384491144240495646702060533116972189320850354720609394721794161745201724141367921325271106168652809938133160570645492856527907321980675497496444383455814116327154027081258921646487045900746393626853873070338379659593514398851367052407320953880690732177882335295075925871681140286831589583374326792143019520183512567699068649141763784171921266435404076971706264513800460983855507658511495657487953856227969227034075455020084157212818274294634004985387237925208888227446900135031807133323172533350163036928992074382668786103284304884648551769074928415100334748887219810241656833305277917445361510890202034321148532878095142705681469417223102230081418300111595813785087948862030276906203027465548309005102726387172676907787660680977658570146846259132747079429214405300215649087671341428283685414231571609217933886112489742795285940560565029083534076202171142681361220313578087135591161715705405377914218980687108717797902875682821938969742245868848734978383219090294301716071096811820790176197824062476592570410853474879589014464553063358609435067045754501230965799152567372969567146588816440847344943691707782315197821235791785404409797708813131522570097978333450532972264819442208955631007244323168591406004299505436096643124695661731709607717231245879995460909970916986984734900523610695910598931028542339596577547321252386366579794496139211378401697529025608924011692789787390386131352127105002607127332582673732761972990548815975805709018294981617333351724550437225157048872564703488042764358912640704146263678469026474032002402238847143654983853543968636923172976507072897015392073502556807807431082645124007843454172755918117400223679772678664623352810895020855945695963207586520062669044594755680068093089196122939254880776454089573656139402983597866876921547316183521544503512511707976200771781874708583433174009956153922943118885410903968909813161630547310971230923271509334803644475288057441534656790125683609486098935553162752243147823762687787256763660328467851998230243175833329469522314009518466231378755144569358821323821868526645265709176667284773808353327711921764234946784206683528265395341256527733430959520665661463019915332712496562601765637523486267405411162118235590245389144755903495137081345651405220298255599558405425760510301847128128423940648783058088065048042450243393664508300511524479441008402779366524120154544731835297215367329967849189765981182873778594833395680079472697349828265812095385737567693074721681298202145119892652644046142471948492511555016640157768584144729928483360931490057165978006677544037658684237972203228352796913815932804681510259380417990923769823021687126631515871160417614583935232046135709594284957534597477667717815076217321791847251937945358901631613236732798516573123362542180721161050634817632668501349063446454892152793646979105249199555408472235305355633923495299538962831834853512542303329515083625263395108495167280532243701462064321024231082324091441854763880396444203258654115055274108175308046257019830648782014521787311448963607486633224554457284187881367695421531419770398751125694677160906654235277593230900376659078092486711333976523581918425088909230597822328310859645144426644583199029653074647981015907355472838410787172119226580657009202118212027512476631155113178998179248230216563087950742925534290629269183384090603253067470913865105294437739690638530186726302755675816053900937226019935887838242715367790254755789718701084045551265564922155954093671393232147694694989207431047115018620044085993242812371277549369936692911225559769650461043767809287933446679692716183613407409928910213888977377994433860798218748692551715150461176618516867720519027059700426475700668395625117029627857873019524403415521422146322861491798098682060937679589113671748997948773117981445940555471485739554961164430158786308837829295053533496081186627853113452071164692651382823846767520988879872375314830054178955738027069405004185988502806530491295001278320612639374002158500742803077488363962519184103761595076086059599201006469906195075774964596906364072593559014148708477239791714344767787606823434533157816959836643381786612533404243866953440711931854916412010064927298039026043015170619008133358987507228623822787950811762485086323636426724569202111931418866933586483982309835698476380735039433136065914732643790700050717801267254751460308018324131539176372929561237212265587237648490390428069810099111108913524743837180608297384136297479705900632382736900863474005864587150485650807060178370536617775417170254096589528097108959553626638214120115553077047446916324914064238000127505479858664941926844411257157057257518532535501273515513027005894772431605625580987510701993728661468796399885942481574404601956971071506443644500104538248853483774455491214791809565431255863054705672215210822272780063220471561518896371189956424651392385346326175229837629846920738625497499833428945660250454809766658744632526072649888472252594987980585934971119274007328869627189275342656520942452606738325369966247440318244844662824966263995592813908707641713484730555624821715162681272349947544538259657818367905578170176765368009979731476363160361625569898954526766346109764532565760047587969600069960261391465056855758610040324184060143888920545730344533122708586707169341121250375433158045283579878602994300637278493690268785399229865206323972506759271531832449330278920981198100122906262450919162845133502915731011137402539702386673730094925730196911942044014432823478718634748793869005321297633818951557566567752219071087614459087382045378744859043777358240768250092449707093457366443084654229584679247501504157447986798570745029442002338349965299113218520033397342162684891665908405767151809184518498287666066007307975991441514846637989785174225733890473330924565684054771705053184115436330923020542082486461225936712329931555820920706266742494951997419063810952369583058712000577255054869992860368022118479131798961582815499206642148168905511546977905763877398112304687390781527176560327220171082034893309141268365708699028085154400193309333479487815965905688292347914488433238961060294054838309887967858684289083958905195309011258567105302205552772636295920523921492877130805320945467234015954772704152035579943976252625601625962685269793391024265980014877503748172452623797068445687097886889149290943974235232801172195929042295933463360524432128086551063677427598734730722711832006634947888002682880269052543772793587756196111508900154852792497106419148253079366013179624911855246142405308933653530104031900454119929438776826441828611427068547145332025354630525416594428741577287842595693247102352594761671208361175706649512899488703251630549066482495092003991967262963170765472895917011267974518524656828928424646461429387098113863292613716720471925834585330986004129703175762995782336209648755033069786529713812321106324256012434690967087080445140597244740163882390590488974668204793759332481787319185337530935274656470702784245168173533486057860657537704082783472691611182198500126031253210104891504676049124993743980837114800164884766506560386352283414876566762894944056735197779274801590110072022386116665496325123932996749235939724159648083948571501889285032863811655269413502964354378338264735733430729790379187642172779681836153025369947509797363044268405656041614558158952794343923062393444005199798046804397689969497001054543721656167394010337996060972118103790049897587169044363962558988684307690226318231360988188447920897090793541223624137148520575101957449303211737971443204447840694965192702041221996441226317197325880820420281134946711921652935617788403007300845076273014734570476096380216096756486178288176490603076335888629498500528940424895715829988017422479946446644806693682793095343387775890180966033032507377392889615737585700519404241139136179636122988717089144212795168491005398885012697546330473427841010489802388172086978105260047500370213851780224229226275985475043146211271200091166145767959750622434420464697845078752039796429553554858001349792653805460772447341941315447918638312944759211721668428507616853991945091095089281960123754681751289193252371012535296696953679920843844827116404202761402185982791083513379371995142079209996298012808538018685575479684480320860315826442169805447931003551144632157147408401611546436747644972110890726969788454849183134513891489466638756758142209714379699596679253966399386077226582853920621503737105650040295814204858826019309739570780658688823619434009122890646937496812436613478014486066711489987311958652429549540729914726612348719369271729958057564282839992891309162900472342700117668254733424460458676503430992835409452103578953575239333885262381803398875877421477810165147599497259894316636734751365563505781140921401222479552868633540133205854122862036645740628763783968230164143630707249317248810779793017386563916892753646988646732266726214066310201967337442717281218762475460235401653298878771191925108310249984954590608186526265360783624430868210099660774125833046279962421650070898572069777389379143215074290277959486906325819531645157469994848814498678085891727892340790648762602468823651271916627980179625748148409190393260272805020400419711667915909918785993347135492906343369243298286711778635248064354819747671273415900883859990253919519731621717594975934319463942519891834575138040717157271449229881783404944097009108316123700008171981600617136673656260567258917988082399271595993382519757764013716592289266312895189586871561097423266377927672879246421696549375611747043056355231546145978400227142420922244846949651567923346019126322129321339354764607739150829508692408051026036768656890698975067989512988003674650494487891835135057140392908789948994244245378664902067294884011679407066334720206598945532191746957369590180220793474795662493825989606817254688183470109982757937325836004824073635443417580465891243988669778021215413161733165050546865783658518364916532290535501779492386594408865115622926649825751423724574602928566677875600855529952879884372508357154480669545970042675456008102245321470633583383128071841030874449508133647352790577683287691100944455657759629119703021374743621170892019322072619601550937533193261033719401836934743854774889398333048096801353289240938337761675050545519890169637191829599800146129921728518984329114294290036632778516788645194890860182115256134749067897302325913644859259885646660718474512745930928719086100563222606265873886259415959241812628699868920930057946308748758415106643156841801787947967517377594270473103727892716532851944608491346611542057921816095788533991333898292299353241624761106385170409296156308565067769609476197564046695271834567541307342301052005621092576507039918977523010348260966605437393309024698855729726160491474867581332921571449247414044152527083222976577091336575815484873169527969480730872359097589854274510367896038820862223600759243168890164687349818090801640768346856173059953716402505138766805200982209979784576699493910187580896543022123880646453624613247002702364783238882618592944631147009189881958460407238530343173953666423844838097136895955466722674084399077745640177640911104936376342932864409089103595200462202195759718365167689077641163465387296996852213754629139521199620030371991786111807945098662464981979037913944113865488533266180695178719373826877535667208255973194563012959785795721333007392678199838704098246392608633580308485034855876935131690506940564846519071757766130684884265061932615421244395776453941453171265867614353488713623793445968242174562047941544699531884434145070827554905642844980471143221566642057588093666349769578191294243028738858495066348562559422128815672547222077495961645363383011207531029646067175075291222898252093150259624056167047089339563279194503370641832544346574683381529652265835667064122186757427931402131572047500398014401310287148770469885855771165476091813907654862548641806089575062089879842948027890495472401618176372417299276117897511869021422010349088529289808319794918725877994185262479743079010345196623207192096997819103396840737836514718893049601865834758809361617133355530908699002878123658887771117754126313143184610690749820346236027225703230774269371472157955843929299919020028338471348416131555171731365467671167306658210564118012688618568652539600972078250267663864143974175442078588107201601797608350907489243778863929560358378320041067604339515964858011605826872782668479627214394818322274909629172097256198179351431954251129266970289067164484017138024626538039022651029149393095494681439229174432105856206077256795419036351006696811439081417429566200708220796512108294260428136118850611679915117879836256078894816118475992905176095011337349639288244380571260655604176083512363806869879078363533288011851492958658012772485272558704600733102331366765391718235166927073470460749105196719393670819715771256277738671441925654328564121512473568631853329103917689647338258794021729480388550107702526789990353770650531540384058885484294647450151543899644302952183611198432613797490981087295206009039240819722052293281374710191872604805653171124290966641406680139256406449593101344811931928548758981756498393574863935867343033560734939054641502138585269698238938565529590064107813170479215942992238676800779723622828099680199172227340492539120673768692362895944378109002197734947744476753377954818126624562208865464766733991415370400782342394244041513137886371909271208444712020014797351128600456611688339311102447392667652488070314518741502241377379343587099146081339086417126111507215635442162406918320381058274670562470190740001946196643513281769460769138401269512798042296446753390308653263405702113201605197633604387883701088870477522195442087907647265046690557900479428361827519899912098049537321008676461450779907921279690005547160132077843534683183389941118697263586809774765690286000308358927720033935786094548597136537430854103057007544345259603545253469507584218651499513569581824286825462814480061092147036041235278502931653154079624652313508208963921494542286048609549900943186570126716546034473065468675303015115731185081918027819615068444933204384117032861501443707640791485399205037278719326974714119071337702717185289234610166722852874464762392543569047145087670345230754517941540567054183192028781403672647503999357560267866571583277162868110318774304047165914731488227014619528752901782024612411936411479203600102746571095385716168265764067245708368996750488255366840241890845445821978973025207891372209243760091659725617019299436287676457873542624732877859758665876271546245452061551889925981699620173057830121918869711707652696735513562737506870414138871224318293713292162982751605748968246265280692378322367235365417420083333102622224031269571015549739035161461921339655725301275803425051535027705694215132499080514183420634566810812527854703764990050897454512219050730176707768083060744804130338139932904497173247734725411040755395027003184388587518313680418267964865612660959201716247449740117596767941897678025935859941723782534338704918771776320296294538728889364818348388895746018348064357169356036524293356699968223308478807450585649940071522620285196405136484814247134774702362911745160152179336823911808219955379648468572077604420203705279205011713439821370222378212645185642489167457525787308920865185019811083091059438716811683416298725434865521245539244261964865252508922282246429090056822863956729609218244465565720120255026683956582081910430440703040591983090417675918657950523989679059408299700166042221618054731830729448598767502942396304056497243625506613743690954521952942214105820307137266626557381326634545979013251844943057052952976659761824331516997800527863713024970206655916303794391615442722734806758596703468182169345451895677068289942387535608303072992883502613936592840774808781224835426251816649474624314344383890334168682780566740002299903777543279603389493854465858619896084538098726031621362033081037249497642175177258716172225731287291855778503240041961050456155134175112953854857877669978293402530863094806212124675411127722463367447867310349973576812721954932223881023889499680300125614924640879250701952725389266005197184541193628409712422651574599410890084611139992744999495958480919656260638554751992368310382945438827648040383673437403635983129770112377601801865949436852284737909796489007457952345500308771698390423551255179939394110494929593336144188982009483633409400965724345363454983493307922582561242786272286341856019194433066406821674124398209236939891397317689780810378989488534206795527076638490395717873460942432790524549056686518851617745075697895970305182821469441992843162160927794721416466584075777262984459985079495578710576957764519213730615297997117439810757724261357983462471772250103238064081050260023189157115263082484891923703695607030301130687101060689016203020005651000641453938181009470907466577622896392620842089739905790267845118949401193991168401777011146202442067943398290513053280829300596140799588383167113437195726292988003735496606809502642471980503874931596642593166093328787106624729331077583924831396364041474666155444265337948950582327435352247592899033962292457325538246683775759093737491875042272038469865495883425607778233522712229047791923769058226955804411829168936160241176306626408948627663643594736624805140087797873820077123163429838961301664978644110397710913159448802479911465843877281588673943237120516915541467383251112253926136744345377008719541891217344010469287416698753557364250443944496905146398645462054579113930172026073130218686962431255873774923400222591049568147543179103921965551187950381615776324075773666229981560779624648958235947214489936461624336495892681858640843645703272975635492043708648259624277501323150796124185617167338090168438022283389380485075594246077116218297984772386991957347047993075457678103253918176706919744121987496411354639926282436152285645796014301380538939475064135409201523760324840190111236534778191331527053491455487573443601134412890024583221223202362075377047881758809150893330983195200832593668285981690215258826613439261668463356433728155641469103798498005749848097158525201983899401521913780433839339583257789932649130338064612980745810449403616576987388610158692337634950473202283167906279546650142971158503566989050944359860544699907699605525102445199441414124155356514248559713612297604581005772512181200269095830856214692905256106043453685193242891716472608604567756120281024977038276122901597480524469974820406460274142976513981464994786973001528674469257344525670589536084877229141136929174689888648451686023667774942043090332747877357214964742351045383040063547346644040103906009949954988581909382418282119587232422100729287387874598736561299811137456571275486766380617450700451669620794363077078093057467967235092461429482015923572075358427421811855059197510203965960861802062954870166463662291331664357150328245227094264456673095413942088866387976692499205989045323390199214915193415775155009889580804959989152534158887910213791935403437460711368884765987276366586555231470760387641009288457670544950328175442529892777528757388622573868419758786745353411044182660280566686429377359479707900979225402346186141781954699812545373573396121002141535773069521549054551137635375338925740044739506626228926312918835853395675125770178524924749121084776215596109733744644011370159980104437889800782886534285782828079856186841867022210330426809630427254056604916021582472453602737240533776129865452821733828930300453672194045881470291657084325360271370582713936617206279568045692050154189022576054916145898384505425111073918950049780641715799311746148022325802312223439866358644156149673960959114743052395638101222425937299618957210238846614566894016662496082704450367770405842571130178386660888713294716893991686285594447502733752968557678820186202054480333628722303071055677034796040201033142026938426701800579369630061515727738191655783382142007532881225202893182048819501314190113773418923899654206611932328988181318410787206526234248609746985588923420199335308673099291023958023170953301433816437851165679148637538112259980638566303912068688621310387921999769933671181946214412258729237912513438274207537078691935353661820512416329379835897552117823382008731987405168955187539574824653251449924581993875621495119330688496625986352409754915675332245890465739896732803341062264280752418348463589089987626795604749858115621673904622635394188942768396970760516178284992842499804651129778219703311489511567069243014634441142257211053111417533518846646447907756967247558397707549820290572259075984365613305630848368963329437632872210999795512603296791222111114349455812982268196483405944718975512589165243426564610582540501013536858312749071251142887730786721173554112785510100897972717069157797927343580348856883497029513305901655330790625123800530097886193084004585213343474166721946479988367904179239600577242577706172213000718632721635458674684193898853824259430684751113530462655981617379660011000940992083293189853265478413514701001440038521890226674536481939506671460308715954788427254862498356892231421815574367426782213195757388491878233522165148589303290023026418840066171108143595497521830323449576497478603479965899173387608597729791600438970292155618905684633900094343771334451347858935986320972463809991732553530127176568527110361615401868458573006564577740857577928790239510632048800499908492202712923121255883903984330820149735835753574373348638870637964930540904177257350838840075198278649047996122159948561826482556050716303473620730508137768086259644879413732362969740314125806292953008683049677537019579515925569551473494361115903810700847117523560559605842169187949860121228315920128974250796525147906025378573107589444695076161147786736718677517043295348931365684625670744699458826939833150722496980736345819224234651157944683431435077525332644696315181718102721126919045889421798788055035544297249363636325128032963959866134379376327452358407926867194074652259315562655472107908044875806444713628678393823513509671046631495043518917053070813250258473519122748937444339264489305380767339143363273619821114740126021002890984411055205360755428625756545208742466607535275280464897927639224050209159358322176829552487346582633600683851070745404905414026068135116060705299334916304179889697299719300913115200794573584379894934331239640691773990064489777563417692413040717658012985255650939115762902348808781946620811307307948986850850454299712530784520994147323322168397649878887281431453842518079793274517053961364993042532830341904231066558485349245794375894364004415809211489584119902953785282247080841564406826490454169828123138119343347755168237515882346369953202643481959141349301168352656785097987342678660923871470517141064380269916554297123544791801180505598748981152571079847572792090451158135446056614418831699541147338938692622039689925168442571184339407027889424837541708041675425251801461278600442218035791230727537770218468673056123555980693315079967541557268050212591569032268214672141260818086493706735481347055113282869901626175712364218049670010514780555745287220694219587821374032723724395122725043960865617376981198729293426542809824960710273311773633019067458577819525575188561396005401693134118287531800216223968432951723159364839815815347964971492979681339997905340090231079029630255338322396838518389763688555450872446896065312290098919517022993548747709115515508144369247556559421142161872203789593780148336723149171775319116616925607542132009947727527744232031251568563262527093651628692142262681588225707092316278888278126066000977041824122532065835789461906711762768815085075134423961750121881443566847236759197572105721775751457069727000909751565176165351774792132968632607010296825143113078325289291500174731427416963842922097252996510410625090558190826442831279104169173517803288366202130138156596251882476657556263894600670685271186605191483681958064669379212296004830964182265789106483918737879447109995867179349794025101780836108324989341858532016279145434907757844950209886077198587819728270315844661897642439769937700377958150011863412429206433235789720525496720914086967022749772909389959810765097678935103135338796088978370064706717721795718782339266904809410757492960701685535238872775586135821328075552656084567707786652710328793360168869848939716001383300723406111305885621177944703093493520870204211912119042352084567957723990017366727684898321342008881779661002890486270938878125579975018463103388709118355799765291050683127970711641612813437993456766607830585858962514552858175140931039072648662228764697915623790784512832898417224753598720113889992398630581998390076773555611957207521050358978643641127248632779089040803438203427208661207496291852106406807496039834086761641093814676888045416983508184799693014979329675907914152910514140489185259199243741333776595355868416259623364938329266501651062288691889519672919025427296651461960965980599269391011010602051982034689060431282553182092870736053845469202283330432297884278702796211354394041899277224306818026434310478824729039782791985573510490388997349982444579980914702026194842815140883961326288130871014802230678047241709486511986959231821760296512152929093566582298620329574961802555055354509522369029955685193370483638192836498930631119092102549712379919508323138534046358536167399490104987018521464079137837515981782575764430987175547980978356763009442042381881127767451089377345228913919410541639489544769247863173679696074804857083299403014790312856300533146486087339715449365587339877693781166379195364230468199098993598364813877724875730429392578962276046609887911192259074769725107163024531865688601827224395134053887841200086508704614339733488183565920414507650553845664109313121604699610768800640818011410185600277148488075174826058546389549074042409757690171455684104765329914742721796961820434474694430184656505369429142557993339111582866052812600130671778841939204074860484553948270069135823094194647606549827264343185727984876826528068139503771401349653261999596343537761852034513253253904047137564631102258078926203801516609574047876551152889771694074173637915607143440600230637633241371019375312793960039581845339347142484388240375464892670205404853750097495615786304364539395358634412715108344748378258909276115856642415097712027106827742161334802516059287543179534314620251033988418914579239070693235469956907876004455773355764830252958124554058549535129965597571873696911379366950922658731248649805714082745209968004321317832403296587289369011293870224403888902458779509603854776116504009884544282209782121594183071939995868133330343445639567309410854517485430427062738282995932827355397571140614467612212697061227858303369386224374778442239289325824047508244907773892009290963816562672279760395918260901632587014661581837914527894363731690519700168405416180507137706927995507183142078504177772140366277725137806188174291228912617536914189561708708167837732117900954151573134905742488455735180894745108571947260192649767111366698001979182738753531216125611684576740274783110896110374424575285518520071987003713946226720585513514417759797714054795663562549414482719080023172500744625535295798265798432980127177547638757132471892233878317909844422062761195752262904413680195257004691666699638044248365033440982710521075144363054444943849524658240481685969259303451425457149748325487533575626356928843354646559806017221219106944959838820847252142362759927555997003808792343012194482707544100144207054180405311607798023597619417579186201409942552524397398197730288875598560387031951945414489567533211967693204437875873821284605716848158167374846512136595927274295394094140239861870572569603577797352164387592179151637084057318784354412616913863300113020831626011879015498980562530366040450465689625031668951613450531789835820490685784791272452756221003931002120012675061941219044656178361610343946639429143285804075944234545884862236492972206811906379324488527377591513796617041578156702194746280627633423507841773470730118487048871533105382407791857366649277012907828100089861213937497744458347416016929057409621345394694057333964811852842310941655349729140647725461261253146545942820708741453802697718986985467378116916620159579243011710526979307157646792550159579469857723480812177751257040150510994468703840087500955260444753004759996901164102618583621158031685446623759679790130868918720528154168285257378740433816641710598769557884254294154104053630015418711966479035752658855687450388574524966017664523604163371997698376333878624688032816699513583883854332565884215868201895576856977027266022828245488588815604456210722260599376364297879167231250586582852347073013981398745614600815446846726706527359013700554766890604581011531606954066920717655649906436482493577948481083175822624030406013884605011602824839938065233606952402514186188376509140526570911446134714985194003700404638096772012110928411395988179860483160635047215186543116857650410335238518776718862550865098383034154491978493813869935998505876530625956800346682663130008219738981216589646402707993379397267640288283854488440228340995353146092044875122742291942332478432721457986453988179213843844524607699224069339411133104031887966711703362040113752145453798234918407251412458956115835174243055628272729231591350490047589367345489421715102341650606161220357646600442497117037849295855975337180797820512663976857250257986638487818398021325919965268878548512512585914291975028587136781628001594309493167306264840950973747398877320607365790928906051450774477153953757076862562832372402297232167181947587093499711745888957406275206829074901727251929018019327138001745664035066808225606834103990958788987991295341246790309606623223180562752216741425643209917952659193954166045713218396944107864405254562310334172467361932384013070779684171518251316613322410206174031845853957701774403248613638433574229038349277939605278672971929216172790400499535809536506603298822846847320188725738417763090155617637572427554355612873399321711131887992535131191499121408462783533903910892541774866762388728700285394241295691597292115749990843236013935448593021563370746000999492283374642687363971655544797276823794592021616511153581969427487247320968515418362314126751749897036908762467119051720455774049632613514539158432083927174887610536607715881389743158844960251719688706666041828118779820862315410585598507381866257099292562665054803485957450807747304951381764666292043605226204071168530806301710441128212835291201008767485228182922942672849627965567575711764518449992762474121599335985314037566559460437550004117683374459778889972963681383179047543397631791532937253584121225393315184915123136727540565929474749857618682283345854060411727264452352047364964379004098414027075684883109104971664389075823726217857551344321168022243525521417016098225935910635510298040675713165542792965815966540411648175323072491514083759623265267942724297213855513177048408276865692134699487712775987693689504322925257766904876431659910845443860095275834401024078096144731071270652066515186973055163497737968458782362670718079690363518398433545992817309611959830872095383313942469941253873935239005683720765470628839058575282411067017789732327206170097890864131067355832597643658701545658608105279625856352122414910167165602488566285756378220831662242638755226492454552916569556731697333765420439197133646783772312174016163250613877915566405674104926415402537254183414361543655872254963508828445506088878217291001104462108937045758704037698801096138222448299755041264476736981293395023942970859269621758230842054262239573603502029556310419705441747516897654216743693565805729349656115677043691453382778319049398193000788121185193105278711127349390047540257113420990394841147117660613107970222942501863433347829363080220753439330236050063989061619385674805199245773502159250628229583568393078529014591675737802544199414674887096718220914822588250201379389319323088450601361778834713650743202809118640736026099110539901240805352305840151896183844733650354281809786469627927857381275245699857712695243092292994682375701505336350601910726929641855472252071788629214881046472276863143795774846886105103296999023198647029356672605750585809279045761386792612413052158073331902089184983463285649544002186512726650074161756069367635557860563053887605894062502371794229612367085479592662942813136851387076836117885842372171973791198116570756790528559619608870552315610228243388157198846111782401630391661376794057480242339741567639516840581204079580263493218177715087620121020093246203857397568212739732517964067149373085038035539655925406110989569541676455907541219562474357787282937085769856595591877295898694902005875086698013839196302233216823789491399708111277583053421524158280298318385830058677989147988052207466404474517810187935046299637425972706249159978849072891235378717055677481303210585271109993758881149472305475802116411711067088121408315216460330212646243106360571438175775352094808344855686226568653030401007979550797246457488903023675731765684566276474029963849055155935730538998820798577164017346055106980996910891638543018023035009094095948038491096643848209815750984595727937922844166610817838164481789762966058798206727249244844557638846757365956648151847743100159644197511312286786449119088259406252285737641153119090052976082756302456411794323838900330570479730228880744044871476490019567569864917517375377483670070763321548971055290796189220178126091293815837578184464545033824419946773326618076724854339270479704483473053116780544755087582674483997579218695471129239965271932208238748675479809468452255206452735529813570883839642308812375810877374437350737897447478082905190643718955982636354485076963034304214480045402612712624730028906880279451289257627872547009379540315098170177947525854649350621233812071810514104881708743605022981280441089842517504690734040524637869314565239682701124152517429962614643408595951754343205770819929617681855699705151749704949853392415045618892222909414248636463336265568068082178753698540638020424798602915855901674236379270783054338510511027411151808027684291220915163164147158013607687164788448183190756724330447033871546502959523953061135993720162722487737142524340156929211800887035459159723170379976354553824054885346263560329024965193344328164447859719236239453044889660739175672097698226375840616242787320244115870738661147777442356707735375390632719500596670501902875843122498922275760234107657241765230432028732999065114928942473251633696063683552582114075030677594341197269315726706903730913953696568156502733929962425610327464641502022712640160775491011366553647592134140035042935296128637131976901358304156261620027076576469135816167695799969027122112349858740567492124918415098122642231291894732626434788664552188914723528561537231285338870976776871826751969091847251278241286859490214706266081072715098015683171004454818419863351666849825889686610034748663640919923319125827275856053080750342411169664512238268749658795252846581099687613899813701499432409101303621761588511902618073496446047891419728238501438529052334644420028174254659129113717754116600834706491331112823322036767964618705156426103840591656266939520654059114305172784595223091077399345429727780455053666902465318853346400912470165414931922813545234430953522067509925720459766474227537745057844918613107204990477986248722349221812768203624657666571121610397904100896251161841056485477104515754184814779075411859128563692642768848551759005422335198900840873454667299415895628290314240470498091873825603583212635690803760888552426181711555084642213627599240127328185141098784735590096238227103595223762000337962921419329048126971374621602139271570746246191086119778045810690735381397135406449993250820715168596665501118918924778648949579581788222570864314461268149440674397737156358873328465829852129698601241242887955783334941658505702634582133396969127027823811026305558179575545664673180068017189024049291337000693851893207782895296804526835781050940879463510693414534106111204906265249912216902089348613948139325688503834597055322661925893476434542628920044027535900371694875376356864528914241254127177994357687814737346052311088129726986010921325149385639142607634799827163518000983724073373772738022587900843278838844423775761515014554272812810236900924463302403945784953402566270118379733441959772579067970875965122366680462377631638075206640650898749363133053616990274397942327217453043333378854309602085717685053529187493054478492616204971762621529684836654761978315462180952463005822042761431561599292004973258789951021717735682801352753241180857286824517845676519504009615836316921235784879604461709807449735933413258133007646842631609669367586429207777772022307063299730289392025965424043998094341809177094087297151257098873135343174802992393406952174178173110038094143744911661233933558118256509450417527838781679114621958844696671177315136550208932596894613139107288739096543502463445961493120574880901830302442081455527975727381023230160691524477858771460392250949051319104971759603604578931879359534721448179788910752580690419164958973897463349409968798835378676976660734797172436694676592578175956944363337529686592692825906585876181124981668812333828772967270399000034212076755230775518183315619391328448397296845226794954293157002188391041700701444288894466705014772292425486282093585347241093539855309084331143543820398445033437256038510304897692555703329160423175438206290343377721544150870661530712639861432387046305382489122496185844434611296321990563411767509898670251267235968704987376895268110203571934509768876948649218333943014685281644106977375329734412053173531422806765463783248602527896015861229680399165097284196709793729186942053779680035756613484230058724517480913854975379933699246554068868446474425046329876753360323617726148227682189941985623488035271304677527246481754950204616915020258719351542393361881245098762915486510110973791977984318287760457575730675565046641056964401180551439256864621606316716915679081528972854010999719210920440648760758094257252369280635135152811475391768907307053932227034235148791019267992469446268686357713493288926513538357358208069874355128303626128267939842632189727022057258277174992343624873934832483828842613523868562746668405043548473756307259742272870663173208751838802988039520871823629258549418559454374633732194626935361514197076024018836849777865440107759098499486393623623921514188900524033243621352339252174783211156930130443508784371340944782055050300756605883058921541602518549541078353845414099912234433836901097968606725387797260113174003922669006932108834456164354174360767605710934922432050813519639665367244990397309759219131905131043288602640330125711281622164012226651339827296107022993417645070743554275949784709738988816877610527565296939640600432715541614334236113377110917202574410470121654310606711525883373727451393476747824527901200632567866435820077013275641299583188551519560505779285501572064749548535266685554162428213829643813220812118138049262668855762383962848709083202625251580498302617037784827762664998974913566196958193522449831824231604831372209555355543399721387287030564816944306581002553594474353347762943914636705309592717973289090919584981908704691886299013992703211036552266711023798676366202383332567747793937807232757406654701777325149102211553741348447517393196525547077752084970275906538646805068716332467873661328291857273174101538328627353956423749398554000183416633775422390081710133246054905151122703206863517390513776952922197228074887809361700595929925296547848452615233463973427484755314881956358013572858415032534233543765708637530813932915742227691209408671557162784823326149054323186627564799406536699004185596431732812835189506008868099223607229847898857066923827631835077704583789883116685975608151007608073843346988335408519750601599834539153687134287639630819342275996410101886745851739864209557487158066391847446432537553285246617477618360837212314310156570863690105029976160371010227725361541050545613520314937384036355756562961595391617983749771738012853316229976423502109948781155471874987912059832819774799277460107698261910238206056746052308201452377068597852359371079578179953781870347414133595981145089819595769428961029453144832601792410629984257852164669237810741668574552815373025330301604651633933504304756539754351909038141083458456220375978638475524956411815736176442284343280487192237816792768444797009224497982654333922683537527787601364633624795260213546620925817310904334978666624049569480904181087708610361615265783616722326257651011200828146416093572281727185830755768029194377580772574925010306248795202607094940500112667213557267506114365640373825235075971941808161171548959154686162660610143437440242529418612211871615394820246784285021536323267649792935537459642960712971775429856644629518144388590189930236534550035641935754653672368219727025867480177310634114565340498898593770819576499879532748614864475890626916029345395114999706136112874697253358306027814313553687893299346804006157742526560681331475252599251202441629239609751623694075609521470831465305463651114952617628684347437562002578099675839282029800299200256495554443254338915528506300868732994110067111157267900984983083571456356002486725620455841797879481714939203996301811595607715096770406491236780351953459295619289809108735216057846795296909779698695902761337194362159132392713951063016946829488066953257428776618838672379428101384299558456670646417371178731160021184847119018662025339749507313822405004336344621614679312529170950945466627371062671433642979618581759479424119977624964467872324298922804606381268995964536280905175870015018155178031745205639898500723187466653479933227395639407965500076060167510507494987506800369417216215638533472794155066965321586135242865361450533131301204011341757532375104647743438076928675088138885412738677550468607000319275031940993684420406486844258880740192169174190234694649182859999702574941241711890113255549668949507727540343913042178597325855923875294399749926588814053345417818301696846826526464044568910098017584081491228016218679433607014322380660572814257836958714667968894531904024573418585800476604918724130753539968152016888791081164745087682065485395779863124622122192398812070804516024460805263034663428074704066288806901424749686504628250134101439663688241744468170991706065795922956557610113689644421125792905249067872945153537389337551757277183795064779673377631512087174299849800263913385688772142326927990011347823411906686993660429878004882403302088148625794562018233033388259968133273094613223349927834712432499518777100197579197574569562797126361235254896961744540765964218439171906072692834506328046453923836554649793588842367089258420426290757964669856327558629161492419835868603171330538754193419151417823844837494139231973585021684812195649892648034477228854619122815119365439903183915364451427183453653620337028808361157580265564688203911857771549620843327315507213915196803621701315208631766987895164579898324550185901517813672446103390327743656320224335753112579675425729575736158591897427151985592212871166016880764759953122082401567349485608297561559565738667062135052968606838921759161767615743814582219943644498576762522743480375635018772337950339581304464963758463909748164545802875719020484160979896075417178177656023144139180363338188416299148481482725520566887800562958000137324775494338482731421655062443955957830092218016981924296416735281175279967110932323979449648628215007353930470194594272556703197649285485011016711362935517807843693071491381074009155703156062981642904155168588760285415005488421007275376065497689486922494838390740010922161192792456365083665220775158580963226691177122291659350871329291391754733085463028146748802867552228292851839321419096618218277800672848020789133119662228752643426568101885218161370830547980046345938272538925418942981552868632207509452481292860678413461758936272866419150453718814603715092454259520159545123155284974637196742074076326781969061980722152260650835249553314886944626358405201567808454208933547739744496271088866613651709717556023571561573747804277990396335154467523438291998737921152501493115680430733230174463871307626577329811406800910754715695612050079702246134876014489699103171747150066018991157107296986335638004627387190847242851744784397187716038227990275221445714430814736390363671773069414934783153475446755992377229058829313272779243143675392206170432636416711427354699607687305527827953655100778069192442217049697763193635526079257960780763502512301166642677019170100800860077596029959719799781344901848386354019414849285594290292821212920229883993062302118087773367957883108335167854498796307842684208576094084686599784288696821242352684461576276773302075327889450662481129451775308420488252255463385954725592982790136231541700826871375490314594700255819193716410427778707498855437116778365962121213626183898490913599291082626953821994553816770687205355877545396302686988463768677426287674173358596938916304530170588897651000849882937588842103709016000067062742892529692843850760711857060890124587195160977592255479170312045453765292847897053655358002935011697276064808125918286028800842227797049809353959927293757957815614303032997691393522889033954185124998659349477912209340692897821010676617044001378848769096853557341454983582723096523010388760886268836416639068466955112000012628277794565040321225997026176851501452214589459399204717120832533893898210399008996141167037017919868337047252065947259117693369743302509123565832722809026096360463462750839810215575990839974080510402442149502401753907423521284949722878198248579410111321740165837108420342311596570688272699079401997705496525328675393941696714931075897259747053347332647081441540874394984117512172996969495908507519066127828619577853727066759224731792326636258346936110387929167539798137147695249359528608993375134174734804155621658212530090106960763793706838850290984026218296674095738844469627471680393669275757193819040159172856657475652092876342141715403147589685112364889399071696198721181593376415364348566070202812541318132920482088249246221870605674951524403633610191813182777402760678173882665177596346839821684637263003387109285895703350270223361074143580764190162052372446792882118528163356519613175592811647523673557865446977255668685076927461409346617226738485482607186106039927544878421619129006478705823761378260529844862610050792661443094205106322378424175260350486975131482241763650393701962435178409573650589418831402147630481786011558361667953313319820529337046838664181719559955626012140888817863048854332366354506233783557075053318674125023720251050505569192045742394369895060922902957963273631185891855778996941815693176018506351001342000922775613648871372919830776295893639930845930701112175086548750539552232634540544514064957990669240436365367688526994257058045973883657395430660282818201904315709695016882879539761973171982503970496418141791974106161365737348999379281058604498970514553921400585800678768921008155985985695217183629244919677905598105058955245189589636704714995206673799647502916243879403717103551547144597234968800107380046083357524163454597680800715664519238918926720710173946215299343792794859281549915750940391616416972204267236075009026179303714924252559106660988191008579844340730349429996035565313721769810502500560986204575824394898491796307516843787443003467781945010094572493136294467607776139814362940218249644033152870562684781732735468219402889963385626850105547540147162641827581787199968678176117961382002343985945905296213021509414005376816010211570282623893636586441023951980935560087205581040305194278277580569090603354205243494587994217258642362996408741272451434020601753419147427363430011106036540482505548469385830213503411627537666422981253752369512878600268634620438482069102480708776768978592440296967284162852764721676602823221119341146009602955627972684492247503026673965077199233850871403493171418394558148392175553544519333185042588473023138812031529141068343427193480211081692119987384219867433575400641442633702103419887432206583765831960689914193878736978439097930060941594566122885505936011332473213801835056231754345640595340267125113578316539130459319229368183760448803968379278314360903830850964317914401900875233583771454089852616673969163096890321735702148123589204386938832987069477762701952904194059284432155974776357200987565474567214122351680831621172327980237075598958152062875783337926935087310630377867568497566237604492176604607690059300747698869812826537152477115923345248137728257281461662434764861668786657363910792739989264979529944743277685111800795510296627104022140767680661992110596568299345784146302047915132041266803482970117806128397766184551953229754577817218551350130379556177377195864349263869106262993985158796609903880474673915180843952954942418406590009885771419124696974222319900082541836425241126635211714238482276512276792160456248612712589477048427620556134505299752036926811176181284526411731630401866284400767981294253108315929750946007930507348298630503888759251627324552834878845363725837162518252237244970824682038252347107484513909058314593806203348624059233564898612568297794248012739074610650163598008576812698732451960481601172710174793999259865927974999180291291508763268327005577371506928725374379737359277679252071858619616596835391067955043470625651841677067333899135022935203571729510225218066021521517119627254736568870785002062860642445491942902255141628746251174205799751427561578096400055145660111122339191589780848027794626683938002331926198244221859669193358145991053496878168033196158545452024423042575788546836308056107826411865996269943795038180597891596842717674499682414601175918103577801479307668437492112937098633418844582479765979044762862973721369625127924057469230450544741906278198935506263341361545627080045830569718378161249869311448594838511378481469720535137065081911326432843077149692566787184377074676380770797024273512799505769025977619215720948696302652083350339820879650850441910007117220447841810525842046736708708473965827384675297743827105790016438548993516134903126572082648159332572703228717572617486080041249209062368428754786452977041363092062219943809062118792911307532797800669899964650917571192575632165418510068244661955215767235885711752593730338745393014594822309869995308801042821098860447458246833211983990079089922719260218748918566716454798476303095593710483213827736329358895572706102335701015696847660534325043357352725356341180862221827660897535363891463852300804263198906969165878329941810741266271284227635110828319964000786199057364745647817023390265277903585649294265323495240747045311197559913825457245619012644737367045922200732368490870419295344470702381335208194516307807988230225749841776729138213601608742607745030574859438809771913762999552558749163266627667271810768685150301981389925892010495116102065580687705447782808913893369004397385382157225138955909540302712819303238928503594257288015549018292403114472256332112955218906942928038656317650756334338959920950947543433145426528564597779927363354408989692031357064579060314341840560823724278045063687638933126123061687847384586338873847815008563336625369689446484939086585017815139871781373879523298110615128496416065092590777792476423736247864782420304801149671676739148262312312153657124522531266951415052236819949159325133907705106547842707757547500449071692645773134315014245827563564529790585250937645879516688626032439716597961442775469504713130525991986393573155745363218751223787844295380164152517011361478803316401927263299889911029959513233636372448639224565721282379917005437614857268347865162472212876243964771004525746844380354217752911544144776627067735722292519741135806423994873087686880926238373468650924403228957124015921947572458239332752171743902165704494860691924066549744142760184892492908180900940746350130983408518894234494821481884936178356927935577286114111479604700052222830097303763394311869324457895204447875487672774708221907409156095768617373614161822798155777291093955528016844212309428125611759391707055351810190664189399912446588031457711002690441846505822535342544847173388835552950550602769624918553664367437526447401497164176287153352711528312244326602890584567540418092815745916182097917378980033957203834963918175877507339341197237810617597297138573396432639807622915847848136433664517951774676239843484250557842470701341031674829858612547052163784002744137469183559415208668890860772903080555860907796354398431000645962222085973458535188198228736091084178377538805360159304875748701682566868060094893591658259230296644254525070169399436826429768223799310585017148500785132307873497149921495356142436732065722709878387858731110231387609661021158701424456497151224065129515511585176639490346352822485955397072762660224950816558356832042535453988679311617759704940486702226165188291299813907271141878113004726053677949791178711673283611665210545648929229634069490885608027084919014988733964686023277673977537126245032725496906809225175652655870688724710671494977333401468211443130578007436143383886918071456883738728934283767613962246614643643582054942562619209083549005927131130200857540791834947629654734657108349543338365155733202096797753559812673344559614964481251843367206120504165124241193368334353720310153307891470981121004644195206107470445109651216947901639627769559270178129409548044492130873281419980634744780208927240340684830738850805271940797442825190855358529563157777806677265236240120647381745986634720278724044590341621111170003899575251088986121076399111361589761445125323857324278925540788656726378806701258859477887708149225098606996477434725088068850170867494672654003786002709405522905070587875359817982709244676070738781001842980449968191017657919062765183879528008594809876351607453014516545949632645855339594110240066638788078765421872611119898886452953305076803363133762557741324921463042776599208980353107734167685814296878211527696822306032971198509707892096807198196785668274699477263905166291293311398334999537815881055473206540630353184768108247650475617823405426922744794274239864693468755209614703951942079530817177442054162575903572134979350923403934182654674633644504758204139774460194769971234397900417843721937650658209633448722770238591981936574922672088315262470081251202128544328383582902754148608406614832588013685410931951966939145770499101166148965114547526237836887129152259472043655565965067660381415113480850661357653038280058592537181737134078188769935556866809047423106715373958323362203081493058740706486692914610765622921555172679799908480628260784170277221640547376705793515039794517281825867734988134515614001377172883911705538453361677451292418474613418310489529535612382173851953229026376311456323418793051078625376560268319675261514643708387783823647116366540145401817398071702480696897423338913489445467152157628776011444492697755564292198680588970065184762316236138697539666851603149969746722683562288643810644967659692258101559803406675626052367909361282176639455800158090831508630237441844762029504045301901518607589705599583842628930139025662829251719997234563891260617554533050196532592667780364449620309347887288562123662217882051060607307737794158988783123909895702866790513747112445290612722813377691609552377778030746408696420145902261033801522578104230404049740273596141334072274513667906275696510953568038605595841400457520221278621823516658275444708175930528180463812850640620525680902930871772098502978163620316664118179156127584467005227009322590962486938285573021438720876455608052765442590281862629032497579653336440436657935437093598286869919676596148483790937848521008634099548960598204039189486156353223235649850011844488922444309400932660672821457757887816477424046271432029938834401023482120662725210273624574163974008804996546769259016582096530194439333417631723765742489266563106662468862474699512879341881719597939501335510927914603797692295493529871084253389875910230680851659918436365543955863625464502943082765894988920224069368869984912371357511683096367615143293286973108394628743482390280313912242570070825513785832047564704832079372599724553752109135452484638312167615420367107686020258577505845767157476828317721558692890360723179456801545868945291367984958583392375985073690033850590823253317935558129141547210928336146907596942578939258436608069604351118776716020380471534927188263655908554124344999219002756743395502481644766555463289469584783907273132630360683934245436808093204764688937334471288341735433647461644205961427620377764319163556435370192642787179986113739075984677753384913397885021752492206356128622981599765007661802566254318051886717690585815949906687166650258333118149189698359790352632631432036227345010279002383567340897307718491387790441773180521833239127340121374315113375684625413965684578502002844216634122133149336879628781608853439945035541466566585887996032992362171165903849022555977085432871380585559219564639830222636512981311634345736156799584556791909784334736558888148087547696547913042566397562003452763092559240149252738294214860843889545630678763183030564087767727874537420784402124455769605824941329165007625919008994604186178214932869796157024660320509562976240678469794193150868550921516648268504707214540510606546986460949340743892894069110997589577407317238039114789542919234979474572571450272442141292864590815618481873537789788927536657542748281131769018611002605466688422565116424441895357011995808327207402192282823618591228152488530409044104827442690252710715166080114932790388665378296124565584421186627645527678649027158701402051544102713199723139657038174381715460227477799793779946535578270079453119209732410453403871067009458314294317928756751459311750865129492054196496071960967458211120737903223330668171497416666010874033482235326320997581523527624384370616137163814593986942813601052377280987879643704725287557459711510704366434944286392804433838212333318507036403406134674718953278711965262497661199660389201891566009888685504408780330952558342739679962886728562984840139966908949449552335111251274219138131895638234751397652639419432672233935240094586411949429357615346955519794298967244445339940289979101010247177932830531621171865613539439468579787469922455636384134500098505144393278182576843445524103685124983775627008506488781261569030276019635994170293103727907561282010167789667406365121602563428676564183982206620537658968299772840026560747629062156811382771324699810395294493648805769590545309166204051760093178279260376636167924976444214947706630623846731420845723436996420557830821089225794553959847393409928560303863395112938231721190516125100838402314951655888496730360532184455371596968934410611875986584495507491122868455215928030349898650732870823928048038323151125892463001974554965052376150380687339075541739335627788380801865957043585985318685150009012288074194433066581520043499710614874629393286660234628188758261009253394950447845427490433910297251786684350161338073457188931875025383514733306804097134988987640793334089185622422451587114686392773777241840452497327406600111478490849889631103324584789155333398428457402726710448147733202786617238590355367415684252609205349919745827056724692290423135000479710011199745645188806228067464966422708450728274719366024312527114045516053718734343331856386115075240127369758640130297269873157035849712052945438233339560786125910900897604227972340174918796992455839734846324008018910859862184242454926653372722826595897094050895612770754514699330826372780399805095796732899368396209311830612826990810784887558198452579157819256456321263455087715764047798876638462245078169674467579689772212196384223470839327145098995237406385460485538615945903214817239679404202999131666359160114529153411006962491967234892577737693713093552920242714624572041009019218348848948278692619280538285466227716532643276754445242820536759359146004328458145672538126643948253549498450006977633226813052025945028732510882258349631615972065098307964429256513663847759390168894292439931155373148503544505710992520784098983353839840397016787398524504552136139707237264766484192781999287356310456060028636022155853780945016348917538817432265841989292333109399379289313234911920392968340241511188855593557768088094185265510560954269452311680806740210032534080938462559187062299075159263848222325196600238334658733149367190310903498330025886856082408380033539213721168683027635515648952918843987369989206870965830313852712175187206243269719094118166772947984256630403166154147023460178456757515986551703499332328546369617554198440439233405888401035110706478896796957813218700436411093220740202940713505335622399152796393767581499401556551710978881052742807441572978343560983155865948896610846035006399921869687966090118993053099472555618200202731609660253312171464160161644768464747618924979061477059570187786151622920976324480392596058109146868452216000361536031117426069713659999353237630997717530911461945152185849759215639007818787106857434222529893790201150958760273172720890516007505400250362130241534358010007356957378890500054670173417640074442788945026397246579169201900850175135482242270027828064753846311308897544990870350120236523531387598338174372816572464556976615962661738134754990096402611404359190577768007994311844937741114483400962429053502385318063824301541674220744680747246708179364956130815131019815560885930678630838703607563694213286365604402510223845870809854138100610159613109326625376790199492535735101512242987303822131029886096817023929254791985894547140807557222001477741316722484161834465782360969727237735958072861027440044234746350272454859662804797330111143517434286286740216609529498694688419258709766077567952070611392401383370029991612664283152349318037100698230696695054146054105440756843973114402076364832281026087849900061455773862988064594236454560948930064199610263364003476981857954129652897416486572701417704482577506925324233178329574115868978867248188700200005867837485286174242215834637849425896623508584027724844903330381170352478145925470544834926884786347148508026058379511627074589629867868957935765146043016722262084305403600455339592725068334091444170883012746375144473064070174677395309118174111456038027091448335926462616545752377234318195504524910840424780818381053852081063244763615198512660063183362832545795308335232283106362429910376964873577458355180126350532697272886313797884204713660989423511037045757830278385651228263170629236917947529227474532278146580402687234713119765180133880815231945946647532673358103831689758104525994261233526557750872616679840939797200412256343729229396080389553248404051408215455185587298981359104372696360037612069347607360117384267340361368031927783768359141973320294042547340631808656528259858185925449833141285069837296201143354088139117556030466790117890049926008366164624903768849457770690458777750742453395580240305902453932370709086931165773913524695248350563881559735295344503843995397766868846502492582636394222812912511311100801266219117631777502176867523074449496662628391936860933553222302861736637336394454147336344443234355659560676036002504341829266845400039483096311169665141411228791030682472340910698487416182982481994018698034679905204210583563522715384269654032546542227261112167880911806090219233109496731001580729035646327907949763732582627240197335449522302905810706482679668440644155244286185273176030719362364031158951025712485197478650225457793942273715750653405128966227930686741371694264564387512062959446271691199777753584100444356034836622271791162848176975420069528133537933195547393230518597827122876556710230033586641115252651512818815231797492746153672873931436437753145944301535156483039083564959259342960837100349313502453643491406682490059563358044915505989635422906075569268991239856411632248693189587731463014108902344442465968188410606640936339106407432349241444051702513882707113279836476295822612399641642856311973720124058609896729340736977889257495691628761974052202281865686232628828604299530282764908324588109230432611403072727307691913154425315861534991134530710838406281626420385058364827917186804002115961532638116540434893496503864732538895632363896966904060407693925966686469854109309322030523200017345695208209047020957003120455584656354100615996443939468991615533133324971278921700622482842183196243906921588036088876371124382679225299372205908025790559926307960017984508504504434655491804663971231197890542393224104476275568626977275941400124518221739826892798065704636721081827459819508828683526624966124607720936816108459048858674622209686414604709200557882518925940501926844673536082542477975026668210093544916917757679573849723397932923075908209962069888361618638668648514217929123821444961188057364686001421270870636495321737676076081493527918493040730709081910814126696547639485121915654184836407297313263471775290227788068120452244162641196321673870618832178669251501742737828586365442333375104141292387452026353358526214737676183569358334487953026206931790833244984237892375790481840004717696833813260614071586841981330934975360744096156510625047910799338263911344664661327977757916994477460538701135146853310265976398739120285624650182541704107427241698829241505884120559197870218118075437705545753887460640834974270840451401228520532869790376685486219541939783674477278033153849607512851629168898190220606893133072546355785418683576458317734397914270003750317292737548483133132138841065321306075118095782908915680952991691411748212267621247036171837720295242092733238845754731790460849491421610428730900073686724485429537772322568160589369630183980418004084831253017542664271392471591103017187742207049636476555784551443611013007901505320872480149528782125792557083912781299370360846713227557169016558158840717603124877937857669412421790335467074882622925443992039574153925224625724572339456354678965232540209211866782035739310009161840263344010109623434832742073859005658400074786391360074751495707601568125347600400980853836436550724924078383232097399941450940181606145854010925451620446240905792469235233941820107798467829817548315790625811598458623920461639790890504610786246714597799606078472112948190389570418441354465719902631860609689682255221983618335658997912305919962986320543715997007675557807219274551289996223244050747215410989922912504748194599819020624863809778116988084530105256997931371466079862000521872419103748540059377674814635124028988815358729373616249662521602663033144761550444986809511712500383288214182604338070575069846294175338118909271378142545616346017237852022747482095475462052139618214047635663425950644858901810726490955524925341089487820944331618847043384263609368657684747019233961423084240882125059504262946242342467574509296354656812264697292495676119552875891721847437140518056995809401094725615452595393094966294939398187467694560040831059984825143529874506598486643814297020024922858577085029379450247178452245286762087176256507391002105610772041289129248511995877216516069944147442801343288951102406941886367680658816930410196417962782890916539054585972044019992882003153133915979233888747286265474282585516146584470110216352899674977811804999734560679295438809293280558350303106867886984832947191950106855391611052467398936342213456838625395871437464919113381257844779291848320418096294229340813806029937032503907412024596556604238698531526539498425618651960012469427459346770782200020754715075081088225447834809844031320233285255491802251820546221798093281111712982365411302200232064675758405325034671000106427281524864197234006008494136921088678807412496604269511942184966962577256704082206616232436109459418478889927234897966274009359443270404070416408321363308550305605603317039038260460724425230899694696739942787080732941713365554086617494747465276466532733908687322074902672546764720705847308778957951588689515598751837028266200144905063966858630671431601093271187773060184102859092869733655625275563273966323377977881703575821203203198719693719170761069123156117631656384215877979368247609010194187789363054310186680555734923528631970695132429938494950924239440412141818172887036802716233622445242756108085021604607040650961604396764136089614616686525147459182384946128112502167022008609293458629585968122554826157383515435837439319728711337832128681062047125137170907207647540899185910340548144921973884263694625702818735324077999136934498727704517524003260085477441208954501438719835104718471045923342834028415370977213628910423340989036377299254043624835841686353417501098902555780406226884096420200349754964969280890057531608386273420289510963758015780425109230312270828851510821924619173827712836990871821802834069863520098433352253549324527683824877309266401118416927139856187435824247085921030228179541814409434889404975891714899132540079782686668631189945841238885370192437815201428631093894234943435965426931481436731886412498208374953180157416638142539817350966281945615683867522715770865116245612698761443424510009555183817569180726944227978251587079915687181407486573600404570033470656926398432432111765832911847300370587857123164483114154557325726665098128261518486635718841150066056559547882913817664929005581644181361466195339573224922922931477039380853133905911686350007708389971397910865085127189018519084244313970621808678247248582809848244041888787321235747362444003875218166114214277166927947068858824035567659209498996952152408649682262601503991937669110621689921311687005460309933270548989610380982242963899945105933994201567218097187519823453445870390193123421244550554621807317373862673131721477109902088532127500478510423188212591848786091292338329825889336228457382472401748619158495830536538594028786028094171896785366116469637070889163072670601898436095160661607842996565950481087710782075622230346535195616316266205675107880170948776162976873709691964132885305634542019312354763354393261946811176919005605388447369149160147578102395581459373791213459906489832294306992085697567218062468295341299957563936399365992158154876029955277981747734893193962683676607537047901147651571630511194562369091515346437801093247304266647814795600892358127928208277558871427012460095837263151088068322916838320461491070817830537153481814970681851452730670622062570006191134890062737186728161934680926874575637263585678236371334532439949884910446909296057543002160551971744785106084808345058852789758217775767231174614106421099338950044476855640562395597134063049872559228568810674651933050765817906053196842369550099768479995013024135489839636627091583739108669054887898941202395074000760981451228254763246834493183543391172981932957552152550395756763754112219568353033248601723367476072081531919335846406844629379626328060206685247213810402850494850631426147128946855935283021423924773519368087616711168057444677076455418614616160363633895212397367084191412936615493919011428096886298747296886337184802791124522429183615338485838912189217384905386385442532124951041413693920070060559015293814054626774664131498780388951975690921898499220625580957122996895902881821868947060902723943846223885238643552014765789795909959178178924975169089596161587129562440102189097728172589617089397924784784101030584418977329358783295930445523277333403291610395091557316066742712301198551004809364492681863072975138613154775969649697301166805944075761625831154305459930347489780620984877026283031759459856763823063838453505725930033571900636466924225421850620133467949358145141556668659295427827911566650209123910824262060010108936335105014249301272775455259594503413380027579611341146256245200974701195960599488498840361641636325130235419522572835081452113206394395429644981497380513664596458660891879016272744626567289422202805118547811810094696224935719847541672516887476779342899645768755071225433254300219685346002965485096593798458837886467289788560376869552880757629286341029551985455385229310466388135183363813527062273686309657296302002041426184682506638265356463996108742115168949070779944273979331016830514351876066465713845665498233840358019571469784442103347350455922864050301328856128535191460132406194412247233216677292847040588773161037606398053361971325414053250388164678110398927075010387976382116187488152082459313455566315698411331047328563266965482059767575351676668224314277124411071658377650663345723088174035215520714783130421793671378985946018151629655444782386033390026185558313954868077337606488860639780687701419807263941728903102696282156207311213177463440605152172678542604521148596147759189559012700130894627611319512564954024342876924896509143537867845613357959829984244982563006368762900113141639151917651965664799400529194695692571579453747854451428414467878617000220433421401636238530751529782036225532037327460690921392018789794836146006121091116416704579916928094945436778931491220693809287685120026338614583409601226270188427303043118139472875711577408678223068503131725939750447085418411255650884418287996754735601357664071055345189750717632180939957553741275619372765377323677009267549046692959036891770381002264277444091721616374971061942569539513405151692947748881064948540091886607139597733348909451690810139845752650447372759442154067009663378323886257355997657341113872540668558068562883078712894847183196307716054923892490590650870743419043174913389118253106894391869456449787546867341643291549166570501057234805370775479294112791404208807630741136496565353960910510827649575213577974115759367057620743402177641647376611057565600311675146134283517977669088976052337033213390148725814887315440508500123758534308954890388072730089434330752776851523044549858737500817571319436254971599111847162299964919398105866571508373297658364390185904757091925346761018664418273230672540825651812936547504277894579872339518576071820766305388633017607401284106354512010913411075997390045342949438942812011848029255912018664297509182380617662315637027053492209466632012321908964382323478658430493650430234243968570345779116339483267708864541666947746138186640035638653152353411538445299010757993723126997522844002505890845234278291125761092347552465756983962441654179342865238212408010966227166148548082837608473657802725406888198706325763076978942495320946743055212692498713749530240761447266669899679702791642310341839238653074336517032504174951774328606763526665289699148349257271308190273608046094349607563064994417684380241344317413053034630670701961334199016606892398675628124455143116863042558935719831174983091425878364928521369933090155287895166164627174391788068024710084344251824028556839711120993488456663243494424134522709464728751636139634556003948830302561105274175927312578115576405189137654492790961404121303451822414459274211938196945284584695996680918555106651094140444959514042096418332726707667791306321898516104384015840651678845331293164346742468244394610791636226856233268326701092401077032561896192200665581578945988327973494929769400347059355225714878298261586047536848543388357290575315619126046410481830445787390634440072889543785450674540741861576560271230736325314197822903613821416025774070925863322193644116688047371960864445664128473419456298921729588582710350144314223774664576904202370425891940469596323935907025372000131123751241174803585524702019433298179953258565016200751728372520538449675724002508543508440654569840000158628652544962679816606061259870390340345234898615875944889002849319640542424698534507946226533602478601529246570710081918543218092295998570295396068893213234747208734946849511902405609917590676803481852781210268397217031478213918720846091777223767714260550721793875009509577814779791161138172111569656272701822526360539667625519346235083391685120717443225947343280733135563803075794790437016426977270837022789019328395474311892896965050100337122986447320912307874103403936521097749946071553453523198629449761430794328253145117693869667453000536797022056857215398613061938903486561626682980610597721921002448596151532610238071986276321124077767478129292664937670762228591172695939338888942811719614212490844118497207314889483404257554962703777620257950903851573339718130993001068391873367051964808533323445184929806978823971491130880581372992521533658346398495008546960272489687018675863290903735576921434078686785426569295103807340280185724608833207865558976773189575571222014992526696180060645166121856923852807654408193369360723012418701016230814307710285403615436253077132981073441019997853436441091873937972839877572007831032340574568794153896066369112858034100614384351767724824112287793442267287069394687206208262894657423985132427774297747733089781386496412817959204153534221113600299069021227909037326666877722020297588831483518040391414058212578118398321722055883580893743954050028914354116758082144340735624733716439214626495838084976090615085920494183432716146209948864367950204621995804047531253446697688180445289815247609113434351284323508817107879085025404186686586304474700132306153701789403605877489779244962188240590421151659802917144308427807163270722415646727943315858661313100230519313680996077735864645566253283440079211100472235096869107128178230350174448381347834043559584540393937796615991301625750763192969209054711583525859570862655522987975524885238131441830093080901474105958317468097068351262297177057523153596448957271558053901741098188895209371575043435207440006545828918241923756097731054242299023267392219811097250510381482570669983884123874168146968633991738262473527855558013995260600675560096381172375222884859332348027800860896653241570162406469366094970070953398547763066961971021209837659162448955686651873609621078430857452007423324691903094535335892069970388919116505024838284402097316735083972658327987909131928058137486090795518380596176367328657784532269815431408550772105398336436126510772113640456977154296057831946750268312866526113059700146120372598285628946639549375689944917107636581548329926922050927017511033933064783493601221365622210758961645875558349915568582086114709926244847797147859297408248836004112045267507680530953622064107094494305197281151243436696082206827827176650621848217914529916634155088770929262162434567566700117698665238199211596955611783541504839000316783138960815305365139217015188551555908882935979050050074797234338578648052888533456407053567457865939153446883232831191943346418218005366163271657167122137880314488851740788576629959823529944809205950475591167658019232000822976100794887162317355702927957671369535994741579540338997861989790651501870703412073541797056110341315630651345634822160219039594030720973078526775481523139466124139795047587580528961924187407676200700213208389417362950180504869646377205244826359548398236707487700358017905677020284609976270300339700268142405384637216114831476235189597531468977491411804549369079907967172004299234620316336088015103424650590178524717160829780271825758687744938062238225788107796119770725354174483939459116826516379395544324895937730191910529167724575908888636187621704306147829660520902232628389552187660488607885461833086890062288654988227172855779411424461398630469269302592566710910709987418651024572061528305307267632267559899816781072951843693872487240739504763343151226509145211591405533650417931070799523990764848827892738448123474668931105848391970125905638502878058014719776182044669972997553815768402506210530799336723556549882302575623456709747145919234730828879248289352897931197271923766821593186469366701359357068788675772013397179024599938237741962966410985885598636113865892720135332373049993869346449839658919480563469360259495333896501583097842023158349835182970484871317403558903642770802542635423094104219007237586011284260783136955548583445044127940149113187154193252732864843049376050003642046659427494209823471963422234615631930841612327726187010644780362492993287510261697898868213827887896447500086238818725065980946744106855270211038372437667081253307756558176157331643436031464686354808732874677037323341925684298669973552567505085278835531046887990897963535875133681196946716664224805163239717695929180681339536763951508587279257836932102995396633754840029546968736958849488040668396027011488063698063389005898884619198063603187825455029768574104737549795217416910275723964544508900332079832102141279567865265236562062979954551778171175471948421764393619437067087890673270471566534153353290184789818447781418828028014232671596728774593981295631912411967516389764430594129312144573765865276035897344904088392436312031977748095841095423043493392381745308093504435935925000895538811577118387381835811005721071482440815974686293641608841275055932145587132091306734445737219304529751243228883937375743473934636333944403015864772314861942408848646577451307763741014484060401342234788917397231161100935693578744284424633227785495523481381666899154205255979272849886864989800607704562507725284646480011160277666060899624306872231642016462207459038452381807127818636253501022511873132776235668420255859870959610024159526850429386975610182265185084335324445130672494409347405067526979042983888073529041377307434349013011148899434997005254703638437635258872084706378755423906164579103820483380971924693183380633581038396133904032176880404422187913161173132212550285757486289656429257657122315601152277571653917842238038958994881430631542821942082968763377282694239491756528693595206152804624436098650039468151355354418080263067345775575427093351786357639489450628127716726007450684544831143314804346040095795610247485082920851295512649365252622684406028388960581817442151758869178624850660691418280404795689977034304856989885095214822253554629266649735493566184569543055125922386226088786135997979219539907503264679511776838348399614349186407649194195994301713877884198585674166330211288422973466250427937718131920796319366625529642766659082898795584832683661270019577640479132535610861384224490671150513579764059263013849780551773490939981057738033030567298997983046964493515020103043077630240269880340980809737745118336818803521822746127176741495837928066577338152248913412541627030978544530678834596840625082037337702516631842284917159012352633466085236579050595068381947869710984989896636691433035532818877408711911202825020493464974896542293479922310294283721509744693587388376674718880837633166428252898418274618477776910717612557314747629369144506713695515849617904959826591861215165702147013003817395765433615176997714376365445033817881975823503475830206583681218046143381729744539585693604406123558927978526169688052801940591222042503783150660630779271729056445265229161701352179255954025409770477755582265498555721804456235654632014131166835391206289923649880485240960383436956004752483162778322754298153279530256465796604146642608923620945324779398046207356706790546501546928343347533273624341487757684631905539748519862966237783752356054974675347995058249501597162840676163197937221941454210461239423823224494644602962282144489465637521563330242794158267759541745077784876377159089913897053536790640238070041444692644511416320794662886731304185311327353400124214265569967645846088556902897926026766931339727610524806383273163334987611197831408049386842935341986159243387988765804704271853098410122160519164347075110536324404366357405517385300560954333207512502700309156702183797853565029240603253026406029219818570523600771182661250131447622823005470316522930494685358915985597122666395216206600699604650645456967482045286791601448032146891117744173468942814741229462960786943927247362518632895644401739313128782830967914742985365842820136038167907265977318647886815911384587163417610579843199752924561574350877277084751467907173614684079289378704261739863029941797972973061309147177524764971137967883084737050077191141999056987049324133681516341875450619402072494989256011659783700171838103431239904089661273544448159249661312444868312525907325926372789730417465420816175660326502901442322307333029934471630682067942708051406204183399500417600498688019637030605152020965220265238961992435500696124253807475999213220392516013661874658425194282041651144786635160438793216458067579532074029160213809376038086149126589910517844609299199389556526913558427399690466201709913934277260137696550509041659529302386245956368929885938878145416086201018657058676067271789583069412581470727214631905664011465065965831805840306106457889873807522548643383735490442094845190138038603168996391866088633768836846238073992122971768551051274013624359532799295299558188583387898028481273920258508213609038209415311959573268140208163103387151065285462788351380462144281853195848287977690417501999154829304333060541347779082994943226659360250799744833391343020722850052111185100355869262812977916567666002641264535725979131085780298902198449011568257067825583572985102152461669153404454170345013196225423641374052931520180558723521927009598376279545986859839518117269573258612462027858139174975668678630677895314711251267855934931225711024046912064932679412069672922837702017863530557885391590468039564846326579935551421469223124897138427934613427717874037994247026128954327874777326200323437786110101549022439455256446401454177293945455343756750681197847853317395449632024183864092068294233095199787639331524524012951699600958928402197252914171763231788826939572033759102298737558022420544104582450950023254660747382253270338466982926904833357213851041752846815543707901431191864782857843221681260053457422112682796270824132755920928415201560682851844260346647138669920159289019462031729330983999768892603406348724352653158044817318776813059355660380996324481472535043330490276369492106186642753053864293835911349736423415632715923247323848012512162711459778956853593735244800875041011916209819945041992447050100354982598776024623555073318555371087917985186313152805273117027549553366204013665588297249461604606816362574647168773865616789158421283828586910936957949342985830745501888093581002409896608494797931010914160744070800800101655880518046507589374662410411830625624532594297382678300582765794688103875279338438094590838374796235693996405540268286580707420225449675978052759465057614832996730650895597858754943605087346739027802924521696276785883964131769030001814981647228199415056257901861884659272222682746810472054257670870392063081242268097348768761320499834173828082224095290109215456324105554687557478479216563468836526585724859485940919262297637966896402858363441888466176823270500883752092661161594650924905074965239395028797304260131551936406952566426545967272285391045129391184650464329581951994427584483933395355776144127326014933818110542107066831818826791675201503647434298501662662521865963256723036456101228132403504566405133726438542451581906545442468609332848418316484903634700179087560818907866830491375050759856464369780431803801108235144248915127127182147404197305523034916134024987713634712012590338247006617083824076651516382411569055317571441580942984306463677942184249894884170666944083386609698565518227916442459432710547563052973815275373406094993678570431961486230839244070882974603026505833683266394988805423416308999965373702607700160404802235861067914647265292472312101926931258959862074506549327623193472418863783150094210382667672579131618556855755095768316258387366077572375211752432390670622585077557981060574757571255120234815881587414214538773416717146065905889331968413843353448740304485152302950067600536319941106995012574227313868401821669732528117901513868035229543507106013842133920282890940723909095013821730653271129024668288233565195314546843161233116526091515937626082572003917622420244085653634805808437332594222789998172092849790843053583817745553433679231117165585137920537322548795740704921284754976614913221742103451771745395381134937027870455962891445191630463686073495651648578084399669428246157697255727656653305284291700288933349424640304563187006069504750590764238854090103232209382043841179727560568556801309472642430120194754869836596370163686976879238586817379162115648721599091344900686070674608059899437532081867150528693407264738306627394874306497876392404037719454648553266085855240386918621417146149885114070443987831298249759064706259141670991121182310329304030642808475403338338465413091878664047713359361257317887615711402387710917870588239254537656753447164946968439908331158486984673503543911668939989962668289534083304330750898236647099497923119764329668902891281629315423553116988522148376236715056015478226013504292322407579697091871052710526897241366759419609474990448994158760526082005829916473001895632365173192570197610048512644286503413439028454059445741615316457010657107078782963441019655916563015946429927822580818764154215290089283220469780180879143043966768788604090240549203819943726150371484466945809006102764918376282874899956344407779913320077162702036340743114808547167534613296458837027590943298847733832547043791570322424862446167067994221680231170214087745038551740023122909157337991306372049001721212633294628639324008281688134978608876178487716854470486485795980354418320786914859028193077394022227878538182303251619001296296121882415614417359161222177075871710437686557852119197081341578159544509027946305390649306638941765984000142736547469851366770215157412643504497173384789646289507443985436620156888398164382789924104831183307570001981907180736158648553536612757292467665403473290532885802718269292671536070006341995996141630054302985863391659186524199118900490641904545559512332025413298925225189481861484568552160314983960319169620088100901723653853888578398884503496098679686620414807819345046762138129635583532958043001067913789024153020661122628902864491513710770108813316318546218436969950590977914109939032119453804587868846553017427073846527024635193696442480475333449831845765876420170582411252361097507632116313378057560866679342590452723457924389137202271828331872065331498559357123771152227951166749012895702358803749966385177818329882159744959662777557790362845717267280164313400524387468122484096435217292691423193948145629004156350244785415701885262666335460331513450027154641102721674183943989648544317870060372479808839743937839363711350945230578131915652058614296011714320669695652879073832337730745893308326747397719202969804728248815472045852839211508836285397612618699589065252930894241664395867925790755802735450682679142123073686009688658229522188781798355228078846854485888241491365315291448280732609192758437326604079367122801557182473848780107474931839094039905976804346852184737561866922025682648315428224927637314873106278584962244706317588366569500382363186332128384988718275282263779099615608844130926103031795287976225947589020000461663436501878354700791904928552526731780622097566757805778617811113368526405578467215913628860630388763446166381814748480049176183304149192826486570098180030692994712143369020487057881430855906353337489911405588150109208841323700351812059364247425645008628126381958792962583368276012826403330907039481568818390723167117437649729517056060381724020807261480490737649510449362215666280677816115815608678395553761550468839080622898775533573105981870749029879542102884133604298245190689831547248648489572971002437084111287000580172138488839171274411314782325517228516658570981569007844458105255402113809039523502990650830534058512364609109061577291386396727225378247746824166917181088570141021814841095018577789957531528681895092429093775503911928433182377008749446354676953846311902037546490416028871252006256566360387097661654805158109431717898381874042796770691793956390452752614666938996233206026595992779857820406134461147803279934781926540711079166049855771029374080646784920271019567630862579593471647857854564900306061131524334811286296447970424261880781376726290938029990568453014825989120910448823419450791474028553234415160850865161301042407406861583970878586421332882320295367065348479807669178575240137324465219190799311568031280315470906604840345315671062079590023015514661577583064837899089056659516524903696008285449830155305891602780005958267733287800125560586690569147570701198053747033896585011070364231180485680483254325025261311817572893229738917663424488770678653375399066011698653220184067826328260287509005998224762539267484894760574214697022948223097308421794718562609703023274375317313465189524533948311718059861963972806472821717564076075685447119818126498977527945719792201808778442471410282698809310798413167146208642033507167335323882335809469130252584386372811040716487874595893699361339379046702731269221596344004164224176112745209917167012234189198847733164566684847869895104696615300738254675551487362763210229424361049737531267600317259052529564455616770898078057074224299901681035161363025514890096244608519838575500934470068310073169504961028526684746624593361491321020615345465555272276314465478232294102925610492474927998143621908379910371526947216254928071634940772339678442377830708176592554881328416639111812434402640340277483108473148184708080586787624879346383138413807329581958222809415256204641524362171530754520494413311588900465764210342382816933129947298420961128378908678310594578355327193548503718918427761542793969680519758361012359257815021193741885532845572897116690136651056386261410894307356556887550810179914890658073062845092068543043111890503480544334775533426293565107605761910049937395112438278355918084048057392916116051837468905938014846486057146888266849893577442969093017510774812451701626941075702488036166969400020508603783009720772730758672691094189299939444010604841853509332603109353452317071932647202239804674509279672369700388653787591577618928301640335909052613936833557314725842618090168373376870405138221887911352724598387805403518078005250346363562512587772336561404059077497179482522208724726442667899027189071440000814853079405516902618430706372756129567094887244995595885506078690258727047636879739897075906173669167749269923914357532598480194421223221785447451305914504627617460191186362539555840149196532863591587487619481356632855876819400217183527765073101710302096450346366864971468695088063218383901958352135012153195916769126785855902656614153772074704709326553460188660932516495608138222698398187072931274827746198799413936314264091017023227654984964231441302101283077537485946721865141355533758320675523791153064987399196917928276717952770676961979637819458785950059820042029105711998496965587909338014952104087684210879234208491665375467433298633251336699617261269961765701387266630843071003277031404560870836224822246609848988953074054594388530650265416672253465108610662497722423402328080141792606167058865815938396556462663546650082856418945239133244249027103863527282818492835989402932384715871069301498410799286521611395788919523443623039242519235842301054036124661093675050756538682890006389201007306369917145574199048851063616668143793014563394318171458169696896111364592271833735983198211171147169268846247979670701998956780597890686034998527327690307738800692539230928469395466217192346085091935669601600965180274804371106591051977395187966186847737043751874589737924025520585212951761892303515364524410107979162302525910493694169157605751613499823867226153215276377470557772337443035466088106401200311530284546783600408825146554364492661768158593729935652141716065839736279099040042783570373934060921963751904766692553298036115904148494242233451088012656772488867741238702873489462491002331444646397852835119253552154749100746542065229527092670118050532225887569070853681942258741840118829720894848262173410528182696909520935612688996843654958209797174125181033525165950644257675303753630262218978478645526228284170966515488329251074798342109198102912618816068325561833714458220633700499394053284663856114999883816744614163256750020076193856035689868976500925338323913708364090720060489287639826722538386766705244471338179924441045192209517183896322016971664275774169552803557836410285776337528220319098967977088385255323803600837935029149892733271614358480644564766640701983717642566125326211805265156683157355636929593283539012443912798504267377283793652320823528759216046371389961380439977212501191614089905017476223753878474190829630266170901464141494510976960505937019724983748550959852952733127014818576687616983491239977170662686727235446632957843432749309169033265012336613603021662374984011943731485443190581064442852303996865076501627899985468322009183379056826814108692153548488837737120565264109549788714114803300091437460354309544600801170723370344615883597126350685160082165347715097277976255140143399344243904773148717480511177256320893615582410456156731387368637908315241795099471290466241010908262518698638315536281195137510003818817418302175676011990625137692793635990755627577402428413208667382610915511461733340017128391990144110140054142977692963790363187506687320181477359280332648184502928652180113050251209815728731832377963773304786783962489510828369114088369808969410614664217704557649926800524286458228110199499558828926009612320260234268886231148716557357115156134670847558617716965703289788004554250472270785463428989895795346738265319123857001262250344340438414924629790223340285225250213483932308562094464955470898206456548631769891938490225033651420233249738612039660316635432668647300414867386024801010972177654686057229389819647231668445631474668332750696038043939883535790895708479042995586048254452485447818026224269986003919297976886308163537683401470964855142019302866220684574817973494015759386792220070141127425103855132498892011295320123534783826819768875252644171685050067660205608878397432743312908008653132990486629050757627892030656739448994929224290221891937392054679440677630530743391282061615730452781472119569895258976546298559218668354559590423957293198454913766326702416134580158083873851563255918917704396644228231090249894751450598044716388395322366854690135752228259711967509756143738332688600674631595566359313757774112399724114884911514163628286441622058956453942036059915361947190990091701718312415305023032461710687177735365345635609080455123977854548322502064227325919933026025904108295316840766966748013092509262246121710481804356063105263605475344340618153180842554868801543641547663371142914147676764104056997946768695538112945978309242789058049028893415271635211524599054146275574645064963158041234278189131657853128618330646940424867457961384365720145282044478779330627216266775545414916660033079840790606511868370012749454519030329612650894705372613787525883105294486672430123095570062299272139338005903155235244548053865499160335765665550167509029788481217901083503340473313178415974177308464954726215284704745034624360832791428967813193367123858840600701951726280746269464764263124277775387420907714474820167379668396986410878537946213217698672232559868851660066210067676513231128951565452831367570120549565252460967722323214529798484655222213247835218868360319379880330870911450032951696679892601646396619585937896481161844409879396335386352183545186809512321247961827143290589691356309644871954866919059769327826140938006409959867132952103943464718062491345817193381787330133180914027498248828226283578321296504708672402595856676314944005372339800230247639029237070811756783983217816648037216941999886141951141200293149678452935891805748889183467395140620576571580869159924549797909988218594904166610278091165994558757726810030862554935422107263971983684796243132625581982452295657557760697056540474285494612061479851167717036080282120673844443283394879553957884815996930631689918385301243397052853890473136942757921374654098983933286938746203121621678289194472408264736014489720471588766666847787763702768999206657430179667165803188191771195186944426287512117492960997413780939851267781350549886422462347497240868264617789820874677037864675672352554034266405958173651273906127044503047845410716697068657243501365556079800717834279361530799175108336164944369449006699845689564306483368655302677787008224916391757721161081890219811041102700619400099141402230534041473670390428314601561824962653001450164085269481361920248863125145193042732605286653971249839713433738802150500063381860942893604483015360746051057388603457652420115172255409433789901808768875443798668509101018079320130321884901830239328286818501718702763706927580241556559798697055086538522137796040847060273543001672805930210314074995447394754123364115135839457746676389291841562162467941081393080345704625906427140509836320617921910104319918691413871370735186832913082573869059061904175211793144835835656976703337709337841247416955135585815237565806908696749922466098930979244435658317982195067707011304512664732201259499539385290108909179100014767083527884404071877340934446175274905633314985976192821278517227786045487480037221913904953737912906131697036516507822314830062505555091781771213179424289875327463222354388320184064439278379982431990937910635446841770198521666780182146623438057940441683467612157635215076895381561946399717033129226517131291311049158406615939165552990681313540898985238738258991734073410877862629284900139170800609586477271152255396281677392859709250598790882250608076137162635646229362759893856473126426390287812759416074233528810775700568020585882620394482186462334391439478274563170319656074776076928548318135564910977245700378873369274201597650170780163235420163078391768803159769816294829339315915267615337802703859377680815675008039058528081967373321572710128305587204663673556019931620146220453750647579196930082071916823144296727121662854364262258184460794971323862863432632526996874176445816812771096043953579321297034600856815806138003445708755071127092054098594358592062746775556748969876680400217465731825959981658853902047317442987756821917515449527978796035485982647522760820978454712904316149038758726120523173912703775782041084028939672202041395178426418426779045807799776728203637047716121453048898579307063542486052295354081677960444723874132019986751778069421159659426299689038390843694869512352830201024906561893206792487173946539428741905778599651521168295929427122205799616206696157876966854884455092129160697456039965067502973324476679277658871218630079375446323143673374741712631040144150080625881076264052468708066917988678887141399018323043301930697982225458737766052976710697345825376159120156814987997824633606484371862021286380304828491366194808433396689820035841886763050674151583806976964397141780134432935438283353472562915799197234768429882733188523690193503992457852769503879792896162756270011943113988708728489794488885541530660045547494590898414116465281899027877501841316722299073148303831958204863428726656375199701470648144929717819849708334315906169760039352876809664304126263979514610625365493193449832884228854392456535184019036399103521807849328387160344122239928778340624958856060095779587793483620841814676437891716205503086804284659692623947946217593149585378201980611317839869652529538080337172652724837241161308998782234840925394896052047310569969283741601778490875005630019062405282125753378993612016625533533883907752066867565624423076098022327016548547011725762818957694926397733937027730712328373781293968120700759926514202352672568916868297030512951187111998760861550348088627199830049478555267732520426468025605321127377357665606934842374907144823940817530392766839811879932364029770485461336162651540448447817341283218613802159420584239530102661578605148776146346810856707834654203446421253952282012607790665377887947458369809670175073096968247526396305082869511187027474200322595585216137128764967733039125859693459366910807748322805686082888574214499886378455536792340597364631996870978524866703567002525606711993864697208059904502803983255282854602363673901944566807436122890823276966161587837764017423312263763827407116525493102224304822522288237131603984735348537769824502465624250929074936947151061832743608958296261161996107027726090270294790428329158124339403914661973321771720842179697622896242393359292497566754862128903945189521133966585201613515843007407210274702263489572199029147046814542032875947031009790490614146511498177741981429488084567044094909990390961762193956078308650135306657844314123736057416545149032916719082381983227908921541580020227208213660292204892148473301683770288160091372954904732195536812565708278651738256370801826832466545636388659018843974830746844312346593611877675412499900331531309777520664578973688026243190726575933148901390487451217628857402582210712777040202459533434669230638938389444118418094554641648340827321494029685531269981924573332760513211070985298369792265690648089442780986111221468678171619072397712104366245259449011538097566826840155543785318248594789949941534480620451816771115489050108188603344278627313815402160424567844339262132159326204728338392055062498590940382534920502568180567290136260570072969464472148673618686305605464758453044876614036924341352851016297483581779389652670933480033692347711770205126932521129294323970987536369428240720462843257806982071027122415652024901856553871698576651141651462335134386576552156824379530566283776302882450215848053126670029446729452629464235786103921116293966695182858521654568049945320011994913897219476935678556890202723020407084382987622907801058305974713453548480119940774403711467728604568051100483325589921061991677809633488057329362854026147833005285768434503786304373907821631075940004320437215932875115409902871054927987220174288233815772387794635477292921564450331662337668139012614106905833711289562445374543767467733829849597002548393257929719429424536124736881642732497480192613505587125872673067505697188279975788830920180608735614737129714593062172800892061429882502925592656903816925495007409293402116123150970612150044160504039232552051080830934472872302853524451880829006963511608563871783287183287759520799677683969106280246024935084799667273774686224335540047775674532622017119819084402323847361313630523990827006135279715923681607192611381639884360055589148880951486821677261481958199789309298749053463456004020676717884911014812721634401503093438720892672865626607285672128980082785164532519280449129632247311807534470275770510371399858585806437542678204777894527498914309340474454495517477039690503127881367401480592143298898138639675929738271113853557170233430489302145165475127786275975370096142285909309073385524095941818627352631353857918432481602079987325352354913777576523208371030031707325785575198136523816622618312554254491876066588514466344635966987332270649978821038050247150355702892624939346897349552322687194948539147795809649565545630541596638984681061650441595442141722886354220283052079824380634693623626579013617248901786428270368627057564466829164924793539215460998056356648226210155128590503310683604373403143936403415221569577084875151239454383250417029391569651524621416093228859907024780869665902648868805874054201639932980383120959768414829636331280351295407477988659619257965964545761859716400170294557437624975171256687385491061541615610663212516144453129369939488962685738526418843276082872284654126314856488870587948074127115790824967408655531136858560971308180363068351050827185046166367911702453500980704895642540123820579265715217057816013353206084972416750500421459473249511518703121447895811327219584645040669990253210296908799570190180120592121735766501710946667143157075492359034434537390890126938417664193322581844811458565683967941102989802769033523002287339562258670001885524613059428842956766709754348379352068508149241073032115349329013450492331804269409524017338087992392656143037254132651380656658597465114382340069412816114189440398220306478039967720772986439859254254072073761145804698426536879766775139071681269159138737178340142402295982090480045433832587130351788558987171811161246490908295284661628072298617969906124383560456717894238718272459851075614091181861918083445920843596521816786403803652019673572671936603784548151405893771200916924987843150803583080761802762328694424879019422710136443844163731093313017085109202584727398388501921134719926603751958365878452747281290761336409704568594582015555971264591519756474715452465531289445466986600586870308471741475777606013539013389951972844128385329096726114077585363814442128692972175831078481300926733573843102880507751012258690462201029188447573524791325885343363320137809718123224489053160863558662593251903240475273640724992722437774414493083393218112087634560417418360938866467226032970730289768582319829608053255335898418326587345309048826026447495190389655378117686836715750406343766006396221576901203091996593328056171529828319767558532724697596937830139416480306518491443328202948228579626861548011036125975461329454311837445615068744217103296707628673760799530448019169571419395043235253354226472394294544957063373277499523653375297973009418950381665214731114545600749205410713904590439766438587633082599810458427059397897513107233380866376126417786159738908486885222800101098224324392657741102910621087224806279961255430339649833252322166811663677652679701927969523264865994407311448621910075465331428284080161957854424305098509155070188383614875392524825887844928445038227396328351529281082037619476882761660436856116572718706656603252047827751533970419881209709741927013854680130357323097991817812615549180403022151839913065032918616303757564772638862469918281765634741542488648373956001462981270861330020571056580382903080271476548610147820196151426497184049765967975820839605946587180312262267477544626905222186705321416075533504203030839622906809780013721725534127926735376307139918112694068094560751519079696413205292439400414490151006739004058496206994359317526862603248372580376663869841684059416770980479140195525118716946707125573939071364583373732949173569023653219379787880732329306750537594159774860019284855761804545620726519470477420480531671726600190475890607438476707440520073182064513081990429008924471384423702496271391098178744782245672975353006419321305115379305833652367063738765413932695957651228588032049082280328380112521928690892521634100000733679257637191710244708181250741398289139016899727671835297523627432404277841160171902049531865509022010512710658699010702857603502478988447555631101501920767389945698701529388663065572779063982807114338202898260459790219699083902671914148672057199661705903094572887334263488181908618064019608125048653024766193928782096777049650248786166019120982496914336134852430276532899155503199093688498823602666810905791653235484828043354621054112611659803283502058645217904562999889709923659455587482988620020345488037034724838199770134850788075330906127097596362397626692263680920026851304104496040139153263438615269433340607293542197588285840021071407097269827789746313611454061058070392368353307092902816742320653202001408312549608382927633805163054444946549249547317280577642896171519825087428325655277889576316370380249295135977800936068468965383765542416103151287136554143721446263275607494908840961842842184685748741709100527173809378067283168574102050990930360059369170840474630975707203061777829367862828755374293653236793151984110073319260759596703491664224988921430656068365248440319010764158547049631769144560335423129562584839851156667894609400328032752642915229993963819977964625681840077913892891165037258882220046127965126005865959605140656248652109372332513108799242164728984519020562148051739394259358639363146139705629923727228264520483214605171211567005858461867653765259111663890461989841071906316363807977345332239892237990113831858635227448502612620784540572280552724822069291511336965678822467201423661526899013966766735212965391884291276507310091382503847609237508591645983793567225066997488002115529765570849387869432361362768355789438226034409971256730015824633457229107456404526988787812678836218449649562163573792179304784050236843572761714669596338923565705368399193008782767167828842243131247081535441188626456327833927157413722682471920695567029716079108886896725999288283168352695110445349305129478301564449691321134450115697325922816392061237828905109633700025181233239502582851174893403872804348759327253036611818877602046456769104784401701186596293895934679062608082513788583940472681000250568241466274311371250154353444271828438716057947803704299915497826254059390309166472283089721016328929909182486545969875600892937169326239627005804977291022093292742486840030286307353368551378807479122525484066634485229481839276092988236600056344478516781804833046477257196747363637965439471706760363451074938507541297922374678235704090456765221645502744967166161883570903805173860218727416597497095673504751971834070208661275525262161861674448165183773248454090867220547451913998897557396141577267293160034427120060295699098672071632675340384320948762529749762617105541502747562392317769944150753783327851678481565418236010714761026070465682937962358836168284914932121193445657907385220551116145207028190009107101192353292334998484891864292496664076646972591929208847528581191139473012952105885235398584165140376493354871336906310672964485717874827719167100315776778921700034771270597608662496308969879266855603880858209759723501582634600537439177451050980990845107286482398618055543559417995007311825598652373088420174525717090570170558230010316752150825433026298637880190468854505250350799388617748982730570382775610274869489939118636562017677415539311924937843507216562193259135111401585438346493145694075916219926404430279262248467497391881457913336550023798103371054364794742032055299254681707004277321254940450440464120036390643390292857819467621179185329682391357750717783936456619554457650332879835118363868368044354650035868426854899986204166635236283181673299835019154502756947184295805210596992328599469916315659616364515760712816216577707752855882946465383105498283458233042174331567388835835895390599883187621037702873669605365403472161574111320176433686715426771108289448624029069868019773841963868344209792063701352368470173119757895025845343366867162605875124425063382816671626140921129432446051209237878377155618490183376200525058803609046171910808850339728162624343611382212798214920713559788832350823765900854176398494143219010780621515802735034618879268320815966996585150996284119577607690705110168577199797879069422960373466639508084558009609425259592385949574473358032267179376105288849064899726266885837094700485142845106813552944882903740478522782319673276688929884463691730424209079194281247373424133116919648246116805965098886460224812069081893454761367341492060718651379660996582795085283625470144698296126528826037662744039191039294518934400701050328303761909040551144747545099207005887192126755857364418824346824487646318671067556577078903628827606696388158325443634660853754821048736206157631738641575221982988526033772160538290961954854939665556410121698800417796637142205911798821424186851903457648592001928475015635752820679595762490986413458915182549145425453105458886630153516848079951426887043044258728605041075403738610869130075323501659171031204191049752140248560745184285976105683436556866279464837016256235462204667741602806457799328480949343685887045829845998247046171284757422019215653510221002437606330550132139413088823972562776707562080409358205451391323412491422773499002063564521797764411915124526834523086360317450937676742240501121732419302641180028516575222753011081265242674276806771508013538618059019372832488285258609134701402287127067687003001599613527896608975566487506685459435693021124187510215523830448315755581106636668632891101173982431117658280103448904056794056759683840877621843778191186089666628360701458052840498379469043713849359367159286751152662694297820453390926063020624460318725605234106966861930847738660113441139665430166640485463647998971661637859460493147510813027520155039290758987996138939059155719939520066400903350468376810327051665192825537452698635133389448794420090018067404653340859136832921999754366772076095475500563907440761843896849839886963627836148745569096368809523447684552739685199415513266221163141541049141773223483411592765245885808429560593043434512439108895274919022494100609443024899442917097228671012019717224561059215110117996261117405158095547929971691739958496438757694799546991383238549080946802976943408111596557060468090530150343159681533487573755049121806046741924058717158602824555302457107276913903936339716455623769373668177696153366273059317266341578223869117263379343882083675154582606339920903604723037654962954422837513836381469075270755180829121918660588481337866693584781928859798555955934081154326083783579352277427782716560176790113287404415466242526559050206458849602198275163810561106768458313010367676640857212916586852101244487717390568416864183442957220223884114686384790834520727860608188317790525324344859172985946528751790600439725840502208084033751780233566021868090236049738669827124521135333243710154250583671748299159468484818837398244738751024744440678117721204127266835031711300615295523908919123546350038786345642571528345700902162179179974190905461604620390685350464477908870748233671818116478563701039935806750845682459777369131722756939632148545404048659178231114468233102274463420276802540375973047290109869753849225457598713954118894257085987423701700189205274905388053677778853575805869921814304272979703909139521606331981953829550273408079574326631869413659693590423723740106687996677306710111345878345332189601299702644379207096962836747609183444732597044622190185314593867317189755877378842519746494688577218252479459926767206836065505048667728443884689392535825275580315588696422601822354981555222679108171918506284526701763531952583032870442401189576441499047199627345779431412896035305037807206959024648806510550590332198703868028952799949361120684322324622283270376616618140307836890372012237160486041396112023286140228978757458656599973792428082894235144325559070562859100421600064841208147469519153078495410007417904538605965834161028045120404358943523199996225687455130080292113480294825377738938601149302632784657131548765359368855349715392689294046447349560533335575328771644681945818457889655641761723833603027183722780678335346559427500561694546067843145599554860343729291781503907703323947331928542254403174757508245954453044285983954043848124069829525681932882896983690240742976958088955460395669554710893409846790903418055483950184398125328530914909354990356584334358644566675992589588993148703584726195425931641496482955245768135151972035167920316089554144183157006152245937257543139333359129929677848179432735649653379295441533942273013892593353217929017578835428057146383229446041927762570094350833649390765017157146490036207833788946607477354438744828941153356447811851121168836372067565423222545216229280639264139339394591314434959622528569504070587427972664683800128686244998624176083641953595403685891496825367064072016388176285924395223065399107141480506893223189280952496416925323768105406117666130331373303555230777001117532771857038102268688366651684418137868087912577303961785381728541148164968892710515219118268690675219120932300890157785717708960588730008813805896424682848158297914973484917702202981022334119694607428162078217374163770598035565128906162138968918458187996381600195562067478660059089628076261288994457171412418066940007726390461136848975754690550216034291209341607494627467333623457752736036894977278553140749414704799085653261407134191175755291892976770810291334370723168777198110524773724136337936466247902461256104014262261500894078234812546284617512180951557275487828257404991018356343396297359427015386310002903287759140235202097028160311083597095665568762980710411877862436553938366591210731537387830355394046765968489140287849495854567922840797073782454641152101040719483976265893761710859205209080311969259511820882745109077951793029251872977418158482128809781961664551850775107794570443136157403377033931330559692249267554025035411353715660430681444740152813225069411179364781542777621819128201494787550929146337344061329925871575838006719385938889322789123264260570935233790936469987218065664320695573718189572271677501518430419908466734790651359074427447011115562112559166787364825115038486943157536485361711967062970333938578658790320359022610849251752028094239760748535541767003204993602167903150758560604912978939247572696424831929820989499201642997545343182559678488085059305036193344321991327628164886774149581849529223910930208633225210970470127946521156818720444905545591630771649785114798975909030838753855545165980646734739763760771360369672272141051106210234031637685688643106875397766455157439158171627475668641765990808693335176614297650770499417944899665160247288567900052694566366986647873106763452029355755431391165025790561219098208812483785018572408565512625258648835454730114341525172009820962927592944509359871724913404400189891998833640344585418957915541941936701830649259835689262320758384431989157545459994900220897535645812063132313954649506408062572716034095667596673143589558082074345527625749475222059086020727225405352257585375642111585446961367048147935523344765167812068444498738278687367876297609283919613536755008481685449510656833651284357387183247335454919602816432717659376080996167696063512723071332355849609650990475395218086410285792401240240771580733114256135476204139950095518158626020383796454144130509109689683995301225755395040761432552006649681381877275621663076886315991021737244012088336455301179143455335683250511524419479524768556342531437053949504403350868372119805636925935273443631991942069222291365841810781730338447193796821795289839432608921896211387254684410415974246002247009030819923134834105952195282709971341286375263198656651993936334082227241369811829446385302775307897134838194988235951673208281763002626481351822163066317673462644458416373686071706703188854612795360657519518027763048823646040380545625075754823398213885874917450488708746211654587523958853436112265499332758155573120786741674167693519767590008206129208958645461584726083659664116439710609964119663724535088261400744114876735270962096647107522652124068236988687839827158560255112744018838335510567083724936634288230473179787272937907415786625399366963358833351577912152551113012582142227757307552821140323139758688570501269290518894907842787532095731930879747563033184040841039587976294278933764888715266012982813647654324373323427005370601084858572229768696285676163425014250186346605794529177175972494915498086485698539435672796220079959398982093794717399839352314798864962457363572094368860450008555499200680554073330195624871440524968965121750461027022232546776652329353581248650917354024221435752850451129981430859240440255229564551172219073805757369770654098120044143845938793519557548139983386955730883884342465976731091138635936767127276125281036440861166818896505018722179841945394155388019453592971485318238128247967209319249769848004213734366689308869440580829761623437843686406332878498384500525125410715405978314942877161135669816762908008522587971216319998832671482927051863420544420413914117679246391039185947347788178283255689398442821818500099201814865829355200162560448222396997134307930795855657261642932820341305566366815423526242625739415911012772887643912303408658300855801340617708467791311596926435686376059290162629624429285792134244115246355972959728522419900540549355473284955678819054783393175769730807412249611870507203349481528347311542405305443056067296467552424784507718045862489964713635042839350833480114908144140396923136307645749262995213915096927306200665763682619383699817285514533283517698375923857744394380136364121836152154401045102410099151805683297814361730699182447233655541158142094816114986285878001419803065013664622641253596249581194255129956382101513332248617652794252575182131109192904307261588672158501456623268114587134978017116840265444982371851268833390444915152609966517334156940046672014383658127684045532728781449170400483605659568074098232479222697941182146753150542584274039711848436792424669872679584111943900181831429561285381169676790540728400369641998685241721426413389222081797712729569653990430081953244517407225282141731803461993838490724477138146835648328783818587776505083667544068333595002410788088123342751718120662521856051779760158659281851622492874141392872621450581040824764406827393402218778673518982214293107407190891010608086276456033345602626196319377642001204399037983026817014486681376570487131234394168895720021131741617960532911675517402068523733748020094060917116350627548805233776746570844251489087766529562869724265395098998150469159880368247806166388669597632129185860357115037687364014357125135061790031132939785492138914267376390009084566487882857329204302867741558841208318053162517557651581512775013845033960508313886671882442626269238894279152196145907101207590463001958477681140837362735186804262369588646533409836193686097249638841586931271142113197484484906475489152721069067962049186461948999885894808106197748228027342931139906338122492762150252847128798059991160348124397795717805390930863808281558644249255890684941114833385949749157708522105624727004149810872863500162080122906121169731260443038543459141060717181805257213957974635882818315651191220271933667870092948307420027045668601562841543315506323103157132317968746861777827877283098512638909752680529152234268530354392833617689898680693659461812598042476687230898503956416467312906800039309748237147830972417372258342312595936425676625415652837468683829075558399710202657492026893359754907005015011340081200921189762562571063029222257121442177799985296522850004283624523165256608751682779146226067840140580357346751009516892429755528350497830466240217803023936957060029446932953186067666253212243702149360329733517145863681227319431941552051267426616867860488964529130545810292272107936027024698019366740911036184563469946140060095592453229087473903034466098948027989269868717848630012864723940909090198020175710340996276221146844101404939255020414853875568783159504323876853673300509105139790970073069773586908262744756895988834591473778088869946739456926352789840010055446967166929820770395552537454458511248896018037282044614646280524082886793208110378382103859797749308990500863193308953227370516853138305077942230438037561019199849653419455883892167291312333441032587874094117316704919585266086503277469034637520714411336672974241303895928347948896073639988796829277591247990162278637717532881920142429043952590371615249721037997239635760482733580345574785359341607976491547777874652546744702616112198822767194284380198580622579602622510825478476484917170777742095187300444574869809690859378151695635125835579177762992322731391108210121028957761499069390292226530874010916763868283037782987984046789612494177953708477948882919710926117711641331437285873578431993215981635944391724677050530033307849184798643799926859714881563031048480573326436255760978286118587975541871434436675977498914043034196419774232255605642477101381084953364816570314161627518181214430743299067587780838501387437892431815463565441802368584434223491074422033476551100267229900128834483246489837855470137157099460870353418067355627541477009356642360936308802132162559805618945804017485461558984317896497075887296794855663143950605605673129521123714485599076450577541217584548610388703280063121523699531629767140637479876249969869014685446023938672525134913655256350968588998899655681595048205066731938750796394260285544936371182115078166385070138855864234386099715990402124126213336222481521603268288582297350229232610387343690952515910056531454814600004719752175851760818727721633866103886510576972875923997330853216816792397655547008989748752575796381025270836993622760709263363743768374106326613558573964120726661673004971297373365315420443698341318231360188766334252452144103031501496320312013988046207182587624456314274087252775815948403616908626184591130370968804039990118124827595460918599910083579124126802621938058650277203355896146204649882419743336535867705966638483620817379527325021025568124430836829967747439126438949316529425541324833424305854904501451071380799769230972621384918624286296857706726745021320754843125930538889804413296029324437072682351498262524725148222515375658951871278618403266644267188004255197768119718126312750281473248254492189412939319441510291264953974740085307762769172913395122760205117661927793468951469089344066044697244735594902620637287958279898307526287905295187101020101653219081018477661117946821415359487178114110547046504111824702994469457000629065946526310264573286999118582764521754023570581667350740986836605241798490371828158979086682789168884631387674466281946437420940010979325167179504887581262531796413527994855986566021607543049764474160903879169261164647925448408831505550707941604602235275531453934457280077698162577444199961583644868115855634081426877569549321716976774393015537115376093725631283071832767875445416894837890656973373849977946510809302926753489773267946384182833564687245788978313291992130552027715854971364598452081996369141820398446693681539168348861269347714685780305972925782590527059037155544444211381633562717569130926493945527897169890891396412159644805237653155736629740305640771681083083051471318399428180127769378808478478580859671658350048571103987040990679743131185637897390531284297724384373870688469420527312769922836482350221362330116408543663324306885955207893708441752189040753247504815035332042591384490695903700464819525114824818979467770134218585921143366828611547680975686203026916455549285611383298408184628135347296123798547165386129714951929994095528848350293538208515594221261079536769585482859381290669439593080884362477289137884772794902227618230339164039286664730525462622660060523844476439602193360439604036221836684422218992079035099347988398447559972153470891339387772536880070910734081452993295897032873088305615737691070821232579097703819695524882176423951886622972475688170473730463662638205415966955144468714929345395595644948730636739934868332822355152808495940004904053701729218147238550062329803051465942387579638387360917920298271968368957528383629612261462344107564735755312441579616592142929764670705617710672482156239442613519833825874046212428097964739488116832673594546497586975223888633084377282520997844464942278533375987420863795449808039876977551655075229840410266394128121728473825522031472027753751026370310839822919586877623851743624208890307461849952026793288670805543896663092100723898620501119399916980423770451203291862027925824355153473804607195387046411843463574958417587356841720785086478640877048435900427402291091409345784087749269778941228308175321110944970286573711256226676444217688921119680397293268403126035542351051173839624084856354334824947484036385466518426571047846380606443625560122563573842894813725972587387397192672637111450489134880113884590311230928304668526530200801601880441139447000368018902584844236259624068566737217463455001994082011030620952103835467256374877656421119390918566496773773824413808815556954332333675541215895934419210451007851318082321730914703421901849142052865928068342463020605317873659429307429700626846318817766735838177069686932676637708462044959334046440757249583727229808329465028076861545654998212444740781540467018109897196478245749938158500652375797667062605903144791464747261010767852884978442473204170190886707738088993389530933210168136448844974678908693131969203496697685193074716293199161901182653342142325553497697878306772577021244911455360563362464955953640040905734636423596567360814758876103977653509515627489174211651236076948762190547970693179161887582187122011872477768776506983593261673282434030176455078906809232458944803377224202863291825191177642159394401846478057486607521014569219913173374499581722030593823493248527122452506697174033484501930754969850676826373418303985311762023252308672567922227992268085283280078790326548022905388767767085308596929322310607336609550766154386009183496147106576758744645230743696282377614441403336952609971815559540500041984239131670141882710993630404068803875324939364144037109638527767510798032920505463365507894190879729232596134771199926683178530362854975493484367219520108842572127526967411365377755320915573361798910557633412430500251671765966637604890085258069924890590464267543906865012514830841934393536895466819558210446930241749789431621208002533966080497308213699077183618286321120326128113207857286800125758182309466307418998310616803695205526856373514145533634172819014238658810854688899574882741063961202697978978715939569856014559892067470070166107302760741062406052536135401544314359663020140992782984825741961666616435597688296058046797634763101171860934582602346805860652019860313789304730528466713262533946017443606002396193413800949384266158661597077386588472170940070859102998079111671917076296845681611526293740531725821394669550463646633609818481722087549190382556836170522560155754267494729740309191891712439604075594287319127079700801491777610918498039112567695726633535612986144021010061074857969857843751766582841458774334198690425990680805339251482811916117850196166831258706213011935579214984704398985798842242969771540837595884279582392094527024270897800275351245755575848881342675817164274090147493361427551627902878989885855872986201290979863757631840545308726510850946388372197033017298596269199391125617226564954195084253306227921188208667788133924806937218359490260851805354580483085331602270692897364672136886548454451291471300810899128060998564775974761473081856317626064883397853043751635003718401144338623705372209621102688435549131115119798452254496362352581903763326912977226155133911328010743408567967985585403390765084227498589712403269540204256772336171277947536947819320924531889116516058332684632648599174877736501731461612073167839952232286599676480570352453432147742121017619861903582513657620912345158057930738341478113615271775619222713755281031805840588042124126833017309081210872031057980309318566911057830451657736467525795461679265733081259046338939311962695667303340223321504597274164284344508020146346975087075453486387525108865050717865690924754350955869995209641748610043156962501374327194333340077943178236269927903079138937403926408564578860479962084454851186135753072121087904509688970332567034642423539674227593900075223155060893437480030141206809071090595290577727490108668186382658551628144334344394203996189642592631279385358529454299970033696702295831369525674811372368019783084221280881058225205598400111448857593759419862611125306424343197402795274210125083030604546933262218856426717751104449593609737413112980439515621741542296770235542706549148803133242653986969110910764006314132731982446820973797144898571539625244540614626822411217678705542881466748590062568778468625311650192225051905452401252031509162241618378553882997082293844880445642545900765259114418917918670920086752386695909267043647226290727196516276568817841781718222501733112490282455196299763000647835631713287927767554866390800889918588282351198352363548494089707300309034763597305959496079199759916938434442610540850942754283826487854144020074022906080944426598421807534986755270174387362085876366828402437943776462170034915686747887916548146523348962125140035365672160350430041299015956085771848919209283989940528971310209568380671028195362688956730632511344702864552069593656227999130923274645256127145880635636134242544791136001837148272931968353418819914240873767608900142171509829815874812132397758541576533971649496287677821412756453504185884066287781780643937758542810873318432015085323152798306627613518819629951625268906992875976786554670223138006082822347795574256240352256420970350183221628442228855524320398834571409162958612326929786994506682929446325182241643370364309471996037366825799384935303497216998405276237291654071217556633723798142775040547639058015725963496688728883126408298159198716717990228682414397435978696016493943857129506290306631186575817921571709165016843166139619762787521192757787506841492757227426827537420273629077042489760017000274123709223348644888392009199743995383126901828022182823469143196855561049119723305830616953423163291354129035155556256232924626655958547798948915145459900857325598990885803764322477812848640409833339767452120303449971756483016602638993979108038728648273107272817409085538990804249101907352370038373622611933995722540649526557605765454095937866858401754703315722710204371082942667846132701084635927955489172739488792058727286457286307699659989958172910097330721885609208131537265021190536829970556869977618779239445270778026072531511142571997815629598975010865905413568174743236786018364397401006642109087653327642916759392423609768929461942783646306654955143447372782909070717170142722540821549362075643806938581445944316864163458143047656261548191262796537667880188547343445445323535102296329955142276611706286938197043477532214641561768644140843570649751666300086919092290854387930634782311611087145904817094322768993399344444712042587772576378671570075227774513465277250102243949238280117799210474638776774684610369789955472341539777256294288362791962957263420524450968898014118704873023344043835423857457057811585520248726305995844273795317289768955166208608935393901572932021796229696498213469365732426798476332763234189139824775919067713150621160053001486185254961885562362974116906779251452413316525143526157137308964586280959854841136508918399707812409365427831558846085690002357744829454093606014528550567712962373876887957108172878828382937853713836979326580170008195368019505118178290290038563928632541772949166809128644440237255575941115024547248968504884968825929077444381485792320220629031857659812876284761315237011195571677893806284807592059815495847328202811457629781432120063062236711806287970432518307861835299963176479298104076383378381674988438607218784154376240288786781991427020329738270663339867900586267271668183557050517720093119582261509077714098127585656504063411798806107259101922139619284868331953099745027695056992607560261616387743343869946356766520814009968881760091236146708929038293193893996897186824260236084015538181162422096004748332860559886288530269151653553437364381455430699044477160353701001730148352460047350863508875984941618854386080963145304454836919681609416029722485225660845323157080389864593685933347925261788167520296831855954670762696783695816596320391631404520006561518487592642357014881960632811909060807975142551441962683304809410337854081792156276264673585072473599102284150827651327075630033176418414770513626126758739719684522494929532737216554207404932831041710236136687716823214470887679927178224528777125200120913099338140038518893076461309937548082884655450508620049074128765152554355103861755964184089642720865830753700363015265786479209223623900472397965680510317821097982060155523015559471025014229049044730894075774893524408890590352791884747108735876905048434250273946241243539298494395835039602149147833030992985931121087848842223928455271529887343337747627015002740026872945502906645554214748464281164668444310380180952248601423391562659067609697982490044344160623786661656886591572766367790964408590612609205358924699948303874214009647113974931355310498655460285281880754451429905626557172359766064923038583233965656528469964503157363144705148130518614366605372395861006856870192909500937555851378815798135196546344261888125634447088761672352443176488535200969322552573883689787682629022630310709701000449005404562460119721540807495070804246421498066349700359699220197572451674775686138518679638662275998535631425427443773899713207966450092343174355894008970156025173447074074180117981102870817097155656538456689979066778485855704121634152355674217110110764989385161972140469612749768231618962591538435810224082929883478698728958042939248141694603033607944352979463807780630803880017989175870773619914438444057484618607296303642081887523356788323345577361907210018623584758872281315082461763242494542276182127238331692487071304780602012281805776372900754290836091271258458629494308548548031682000176929235594732962748461754550851772763276814121914392232066014415979072726248748137857908193744075031153213091642260890999516801867715597571691465070899508815851121989225639384153263808035600954593329329728788461624622891279276084584701571829855690978109102817720713153765753835230090804119398479992597124332326172889667238283084124543086892940365329503069312301998602307136080914787841064660459337235632743394673026233182684728305608067166350499185458532527134783962359979128732191912418338404486615724255451465176773451108777255506389316998194360415098912509428456149063973958096243905326575146790727194562377678133815319447384279786401204881974201476262574838862660981557672091871997752498036369076899248381288648768037024175140543000723710270549196591990094063944928668447135540689879365405959740221641585233937882332773821315223059202836564583885696000027716800285012678507040864435423943863238390677307094056158879662846388678486916583827499295135131673758918888854950013714759541912913906393499756433074597498991475502926037356471490648663214686101107955905774433955037429559880620585270123951252144560066430455143845527460159650600927903859538393872209206575853162403378396921351861029176574586228034099839500395719787691175692480347264720900569192181755471943039071069941597472323894170971002701848040242399905174056549445451698517597503467796207913110501295350322896035269833447721351428417919721378311049170168734117974874778640473421381520944373731524964034894281217490079611399800509830782950109198368866798123010236482276932843939389103849406801135590437143982191056539077075144525456285012951163210576686137582039392300130175297294339038290659146965084979805366981298114590477263626919960715723612667629200876614585957655973866733038044439734289648957453500063613797051254863981917411666727242346739400224761611159996070247266008062655076835799268948171280746453958203717433811390587382463099501511833075231555426293732660364863399734459326747791330353568200052115671706959332900414431825747316092870545149578713252778584091489336687354684517811644383116132926146862881494476608055486978636302365369241216155349076737793839822929579289450670391946215868136716286400570405960246081822892021538185114967645058147921124555597266922948090268702760970911668180658186343818653873841526649613012895357483174869104686327697987363096858563163063059668079079294667273124648662889852347109716680098808345313534721447112535383903203872894245638025643301349793084802619221182800647859664755874265789595694614054508025477759486585152142334689857890128609375596042905080428845290366660903785674754092970490840455911168380413607904957512096088658781380164003639216875520809722546166844073481829340661303558815650608366172777971868582075851859481132348278809844919980355008308904506466124123301694474849141337331727279693487091245330285038076046412570263492906116921687787831910660658987744706216394263535257238420202971765431613154327238377982399732524475450027011533005475344405947285191033755883425630376821046299050524240143886516697704224123674134878366521415613812609144988901277200020625178640956709086315830420060033109710705711581998116293293360682998449331090515853735414049599131913405741031953025190522368473708061710476789840737065909316468800513557403566130650177242991904011349601663292782041292317950715566567857363773678210987102186705092677635650485575646492500895456700044469824038841765602490875561539835343740442998335872050828109327574982062364866879312814165523204397970107451956567194449311364532031071038969136133006811768059526647989353876277467123497650690148655164112038207185990218340195623269637440030182338024974169052104531027778602755082579431174998721620040338784322846248476045915560596582595029062704835371093921321658379207825232374513779996348392192612881622000818648402654452277104887256225210623039547228723465120149004513127952950094480290659525035308262056970726837514777503529662826904510265554378606734728543347119693732686626469663659325929798213312971363586104154400189645541187713161658332361013805342663684788016917806932841693890383641774731386160733786304302842665075441003054301732783570471484248182714952815222894952547639603944507869412279446868827322094725723025139489563653290022876827622329104604636747577640573333965230643315209549069601906107330255197448046342371751548532063740221921283338418729562101763253423041106604572195933359645095620147136386455460514609160823787068184851357642242472550492550625253603566016181179477472018583664882848424229075539702659447529394567257866192107982988313889674563576558117413244472544057230870780659911180267631087900787882648872776883046413626127246559057654054285467368765920255062682941284980815669691119518002409677011461111295078718587457962424698505327828301819662069945379987595859168463337255077861835807627568180577011543942152927471540572370258092576217581624420124908250740444210707267731921676443533840602160690614043224619848633685153900708250741276169307014287127359110425248983633518400979834185599210538742207192332904689829338989780979221633680794155241091764548015152310431205827607839995507702689395601154197621670645409550359908897933943814753846600759096025330986468881205567638109297371185565807646756708111342711596356494830683853703035203990008633599143123786159923989568858956450227942018908078432267150889497661863007777529086220606317085330435308122299831221848546313571729166741281852803157561422775456828135127342690919187064198424623574730224181827719720949558538625757337701228045301433213651299178484633403771300959585882945633754882950138210576167679655147289236833355451072648788316106691489911135567972430235544637840198199562850204058477900913380025292034025645752204106683858308732561292729116717766294079330666683555619730338670632070826639244207498528098042829457759576767070868463762841521105643490043876837061776888298496584602893918772858801750229085615983916238262736885062586310150098459009315361997484009600766591823511170383034711334147966595916884405572611256230134932761712739530989110178824268681243814953218399163739266880801098267053985438281785639369773614038927515453965045592767281614534079240168309715449258932640432723133296331481954887299155827685984840614878550538455204385750306927822534656917704851992153075629212717191033652209715229514767588938346922172414134951053023321654854838331944284782477744272037397863232006122200662953264902710493349912859600637698422682237911996264633137687700233995912610818208541863434463881619456313452667983872835840383687240310184519516074255451673475295796473331937453296746503234752628506951727314671102076574626589609843076340792358220638648870534018358628913266351236706452134419238442355639513756293617607843465605064826375906832152687845870673228414985516472478446786325991149376898154297694205906810776125261790124813262998947410270927070572303311485736473523919246067850666941977313593899001006518251395544780160298674180796527310988006764463755432187558872635750809196093490298706675355933295340260244394647561325936908075147769782910274328473425377093261200785969494862720183847598908656173041557049915671090441820240772792669300067132268566179713896289886780667312129719689377811419055549363066422779194950834218846684703297849472382615092091370443949488160093929609195931059927568716795125538123901150295397512965660705958509867512940484441547398742137922885846599147500137213399271382354668464410218867991151975113402002622121358820351984027845811328441303970865446445780858468904147506179519503428516917688888346832273211776748690320422126349344985158643105796905626211624124913876094291273347837087820127609785625557061337200262900670167678501835043796812641918178779322611145004326224310150395710650787911486983102002182208102020926693915794981537837343024641179608954108923060788435742845612546564913193720187200164102073730633899177838549868690979390469841021485911056876252734613975399848810710353520216077246041572377515296250127898440517008946268422087822604904011332139850893437309692836768678545354535664611682195068307074073850630503549978999274626315072415369161291938947138994368246969524012682268568558023266292401968284619318661387466185191516494405355101424624259373771409546206079657811600244538519996961940037758909078637632262545639926258709276337294591415151507188618596253450361912338592353311937971876805492177228546575469375436137698050602366634857322150451155741976142757918013139306113884454147438636017218853634995625996184206864935975582512814016055746004177309955655842651621776547689545377698452936758654604891691908784822402319526172500515435692629114511963849583403482300892886117781947178922197803545706469646624837168144802507795471796104558040774241776669456911104808539064054362964678067772377767700801229412681607385899057305147868698787810490173725403618071565698379205307052427233677797251894702172720231055844274996545300235552362105498633725548251770209888716480305170367280416039362055531123434982321835489041765884054328137030051167484100808243284284819036196782813384288167216148994186283906262610289278800025429372185383630771888511340422476595126820044354504414668454483569803808845171983897662114156445077153503068377196671441577615104688600365220094249538244956778380310552609467510071876226436321099136426325969822457945006895320360894574108723818978212322749662842570936157838187473695144172068402945215916649405708319743291010123459837993795317769600820977910774315288598804807438411040254487504517533566252710391998858369539832585921371271976299577748361662323602670423064607492448398419727090006095633921676565950615880242550466836790631019477604604149211084778511766489596458821306375608246306055168669961064796638998654549098072446121120327935727365238271685182113254556050580275321276076480628601590864139386671279193965064645734599240438499350103149644739154155226585231657738668326074600863110995054374309674162623852486269205540612364964148356504408601321472528838628979396749375761181965592611147737114472900340397463415110158219192495223849749515899415918467743907267840432455627814652272261636930428470794009648312578900720488290159517692587601095878317962557073174410204934619093361635239985184521942193935017311352098402517749073155429930361895434326425546611771710639809026421073917708233870761615283756476881460871244701768514219737581492102415382699753342755578075673444782223090564049913071234600094225698678699911121793531279557259746283645690812981602276413820556889959258934580297543425023139184103480486029635909386727969656327880378245791423816792447297132051436096305440223526555041428557241088121482109636661253639501499832525356539530086210865206494460673112411386644578511150318436227554492989141152198071800166249869058190948165223420957456848216141404118257339533964835500045782247422093901831678243765087497988279881364797701973739338726503593370664366946911880154320215996810193329746686915020032229772316486646847064162296873292152790597569311922443132539666501222517730703234791731191896733268504438431850129267969747207532933391676930678616347663365855717603492648751848598188415345031413974346802888040068648361352461874073538755536088293918133813440749487237790314016717201553875358601173037615312130637702208043016724619380024539098855881893456391674310991788054762542185337736810930893039557803610477762712775697911154009219016749338742047467836489271522277572254892584873235343028662438735569082121001430027520230236234698682723953764838040670482476485904674273897340859518017505066762140144503457379195043700193796094970808672593586143544260786099067513317138159574006658414682674073845305900320246578648661300207926214686262348684996198871276636509701909321699709002833185840836717819236096093098182685133372001185585230298038343228259352269075839807548733540935570002628075632946507231315644672046540931361135325650450914404612889455652945137725504243510939175030373933611393464982431649133358301744169952422960475032789707059120322636191422186415367168921156801315731973898851182214145432776571009454825015694845647649893906078399861133771512853884713065068128491126457942649209605376881623207212116666957709626369409060146237007770708961230379077149379108373287489894542637903351081733117092783399022357023215792293058947510426636194663331511102926383767145051056664666478680705454810017557821062591713055192198603784290819856148962443590590254045403643399141256136322004993154616773451262873854107461119250254578893960089461692262178431789327315692424818336257389828733169582722646202304594214503721614177041435750066689846641605682497052512969983675078853597893645026156787870419466487917281101093245028113842043727063018938757135731201542215583122887419815737518532008829078147262789949919181648663806816107971566332882731959821183532433918184391084619860995985207000947488920155709646369830337384012461999359498046366896135918978933013549279416655342266135363762935716771500134262320138099657469346478689960341647390363700031071488510052484693986570522819160558359455996206718691376755986942693023913221456310887883374663486127265995981938669504343029739046944869249433649655669182488870885190974971622356720436641221766965683535343952899862664179607087778644754105825532595993140686843125358284681470727627375310420315325403799088901671112887877682461422997457976091357479132003435144443203593586167363176263512807730857778086093763035472893947434746999254843154367095748977097680780470555785000202939003535876523660006698115643930892896657786650586459852684350371925828827790868703079316189302416001231703114233834000607825933452545218089263146109666329089594589856656748321756511876469829154373589847288318393747193062263180404649254900938370035772533695094726386943845929364312541838091630180165834116695892501392508549924920554638341651639836072191421058068822912482791062824102101226630377081494022508498617370303123240285136282407030168604692307972882656496435473667396094209044501088550711206857982627900958394973797463470133453829872341237650790661523987850992159759213500742720382424184579934810764993738595221672549980013773830704945438600391746076457358367144069674061502235465870441751175896262720800247124273770241162142839640009183861666687450257049104721384045048272296366036534955216933681313013431962712017447822241079598095968534301431402535992052220620385241444307151593668092643463667037618559785265957275058968825367467597949333277360485665450207192699401944672717329670925193382732037559372461649078665326666286811819086649832780876581106462770851015059877573809851315776504786039580072229808640554189973215795637495592735220069265162943378999043955538360484972312076374866012205364944346781010153246071584542872234523907026309415488435991394629187925774673659422864239638073556752517528914157882824811367336139092035658163070820529928058765028076688200814747668372348492022901879542304637486023229750241513271501878539065746396217746107098788386409723436374802867804723584729311789421043655323249178491245175632709954242775939131199301573703053455650170277814913671746346494080875705820287461907424962806732601732287824299015897858828947724545314071903512592035313122992662895534894902766987191511605932108993077550968600395820374266844451917340071683805899372148890446429554363041889635123002504058020776302396903655228244312335228683122270265207150678743995689809621672080365438091638185359044310632733439344622025199738597071451392289755522791370583574026984761382411065567029206362938552944811476689429865254324700859506487228578305472432637125050830743149420374578512934589634172393013104059989295196921188843204690914440570699354911634170767801250908518728648687265850793116235366645859315633822699971890788532353117728082065380480750838983883663657432428835582685683067115525808832145305498104636446246543749454801641237996686143455453640888068597935661717603029332876555811928668436371896563304081588305055949827799623072477003870919652446263878586948791925629955239837063602352966523865832832871373251937362784826183877579925165255385019935396257992437547277952274180047904091522272029572993174285613667274133561786778234979756931307226625061355535497368298521792273710028923176164334772095377366772398149798864248578637967602775876926907879554239774297757981686939604780584414709566576480790251112944889957183375638421693099327966631732196811189295727906161550676924151239824760390369230677713868006709949078513131614342422009203902872769244188383768614215264600663206596315261395333439564496168315490041148057383536732114784743571807673197505292485236401292604735705863498189025056367370142101038548706036431408558194076076270228805867923449655686981394186864713838406784010919270726716789228949733291285735964455975830796911810936119098798808285129880264418456431074730948346052783879828627078964530984469565810368372752049990170248435028857251892571956285495219203622157932466518987725024247951179360329469515620205504294847077125493654120646557107525312846259525612495679808210692476958688423619911799826755704105413117510788820559600876413737482244728095892664765587650825476800718056869426174380989378048977365462920055490969916749947581120917552243415262956448890565602397546205144441815741108748847562946192611121298726186507096819468433490542676565974386849374805840218154382055587748741129425818148896451234763781391642611190483689626715527531959764996579784272286296343481160556058825571418252926793802583145781990778856572912092824062113894680768451977170246981631200541309486404250999594713860490598854163719306703628806837100640468004833047276257745165700961269017652127693535576962995851817530160467157266867985552500618869864866091196403397526721217344276265021001403212216818913865198928152789099008298753019748444220617861920149350669182157912798513876435288630541795683537014865665234335925629406249996380545603974113308531798343335163457221871778340469239835518251186222495495634346833474006390104393439635080836246296977138663361529315264049592534081811824702089899793539463361932269257051465155625809736423541618734822865257277585475150191622845567652441393732601209296717508213266965585258088900076892385619163643229660409953679816978451602417034126831039181997679566396366712175268447114594301068706234303393935406674973946812938587752127623688625240704643437165683398991670457655570071773318535983768592911918895589346514074910663783943284450631468015484430672493181196507672335282967672390090196407138593880107524018000286138245467339414909294973827940898084116223131980142132834456392429355088651248690409670297638368349177516244957919720356457943527626792747047949671612444638537582178645898625650762802995985371015243566583195881668254811105566182509477906006821594106820544328250436587735463492168523580128568133120693928101217570700907815929237712057301061930337059866026189210270308820134140489786434581930202679115163290330572065727809333319991883341513373959956285191071074959086085688228488414954103492123563291440863161095391571363358874944711309732840245990260570839778126646226184039188089006129988638828816164769662803678435571618914049622406412326055291292277783690465696795938422195210911830086827967703266262896091765370554839356537561864187923895544706957766451565531308812786553587444954137810810166150651553113067677265600565453148764097481098116694813721769484559039582693922737317766804925252020542682893123735315863192796589001053829712028936115393534819705296046295619435049280980874459553529081299217715211259783014952216080433783370935484902073153072725452399347382482152503540724563706885021894249196478477207884540720569941867871179598908793564216694443905694855349576266626292366543640556391688362072248879263661404383141595644416613639637685802804608394265774047105604275339902566537705686788840871977632547808456214444022056090300507036903265485698590679766333804295894892624743738032048120213862890757589921592593905035797460225080598837664517003487244998798325575974526316979957774506112074487876867163206111932541325393257682591885351694144413973362928252689680619097068626850323736416205970157537772036634812251552504904402870992950072108955484495099793600129768920373218929917753473364755426993491155020615731726503610744600446032668428309060336240423061416362923113746613847391104806992004094251654594851494774557955786050422899683587500679545085412861572867667297508312637084990145437139890921341340520099909737461696292980831750234866563867768574529471405775865913777673679431004055261900528737743925284358572770182810706563648921688649524964533297563373444745233729921948583444389161013914216035938699525131682261324160484584859222554150628752459696263010760756014159436362477007083195561170144420957951188805928005354141652416438110855210810312547222614093255921962801482196211344939422145492035597422606034997600779295250388921401272120309737193578569923729514984942576356122296317423915945575983405778084145082153798606452377127541022292755663490702588637712493757468980071993845177731629370766779180652910963937688372544813069882421450915250398661839249709629479901288632570096519955406361146753455170454967813943656196794821541756415749510090841734626834402360119705521236831576551990175989363684421973475423583059084197781964009723881282168582584790119843747395858227039466765397434470358959014709462536531224032688614992263704819661151119957927954991008355555802293578691453376811706664497604828418148182851617576016146046090530838036725840254392794701475798605858945563965769138902831552490404380375146941510592112598320727108690544553474960949182390136238648108409252093315457889631272075455638180235782991225047117785671986010298909628523862978450975674920075368813436514607529060732789280198002534828265731989438662421392788954284707471174360724951118429060713163918943754953254188654211019389428912636763868696654096200109678140600946638509356629522078158059966121570119973915730877346324157104998390028954857258928076579326410782036747220480135876530530897672624813314828064776053966257475809431679902327770834317617431298743018168194444899659065928849041569641842634029696629816464492245681832346715220378663481928603244280866761686953404975263415119834074610245111005179991782376979382089729521545444455431252009659456257924329040320325811224864892628911915244885178850921312700907695643572979332699562384338751436837561677326652952035509693036237716659064232200209148247105641214975533557616244203423595903413087546179335349393948484010134148937658973554558523800430106334464965624327570429786935679667448424594217874740042843675437380570754576098312586621675194719618934353719732532974885213514131747733333220319670331653381505379087359147145122602133828904506273232649158021736750291110074404284271865416087324889351466082208657867083964482779670644061216923918398967863080781897297199452219657489652152589037708328272382732547530514717536933812300993711846780774649160714710591330074453443392046531712192646790025720655962306133241307266653501087591389849175774876090621324932626389700199091123385463860036869709836807219361503130326211110407837443848346596743356062346357224511716524103435216181349117005151240856806510028888846403734276341082855821316460380252237638671375679052786904105358300750646958313512818711275598581120178201031723026538803761794736701642574672827056964252058713250564528874404079986590819845421438842808282564141388682295486781495138223101803383490151255737126615206898608096251106269843976999867361864923843836811061717230256256847090988652417617508002622395398220832090412754896294934569822431570544676050748629198152962687173231942064065643129819376739023762011892649135450539370905697108722871390232963474422175021998106945007140041103739776877015916710071937079325450314901375926167107240515322398717187076294053246351610055190261193859900322214394023660418161863618002930249433980440925651402362181867726501709192708246597646724913104304883441514557454467951017722424585574123361573648343393964362647889834372218084951292366721607794724682379356344408171623462149349561637741208408738513986774241472982063522664104383505381527320638362940849543035588890494548856499474259941662205876576756029828286637076502448859549108132003691011007353146698226437099845888073913144835801423852618206820051708270817140882255619674437252721747926440738543947031754818905360627930366886686550273272778748792895211737965848136630174660166071324772569631829090141915358970412227376135750273292196698731974100323716758503547222205187282861279700806005008867102562822175980561000415804204470566205783955634628924840327136691869147089501698567871883662966446805947948670453692911359197852115032016286182880957137083578321949242578285954202747905195435358077623611219215422876294384758331195284124151542012747134403774351963793389989305537477986275548522691022577218878234427710237075647414582282348105143365882331513659033609338164039117039361652093610071888779960925308027562156575014420263084913632946758624432273414222212009030465587219903234628195114643633379513989730877104888276624009516729764657005816861233074295154942336963509137650605649728420231134612933367022743469561444482008753509981447610080156525709904378382066230139285764048013703139587570631908848357672678894546930889901636856481972015361917628838392516986169916319213879168024786746578907425665102785675409646645209426990106266176870181186679370739718146059253764194722265038603729411381799950788870814753170425417394997812957447778872300191516606000915718854992688248004838291177923584668733882879085179906133413478898656114346646288797049482088994884914873369382297486673263045160345686008748100217604272682842683874033584418217148012118996117914234092224475820737421682588223639658128311461793683379809356233013128738865336206077381620019783173159452699947044927616814918099004793682784626554510024479167995292306616178633755997040724889435615647093838378093492393428656251808257031147256912316058981654396956376013826240100305489281699474005254451776829584602891148416379118646929295463849136589887994330121993986033846394543953462353717583415512013528376072772338276792677111903702760304141725555654866809932575814805219975658373772133021187277193797650019299935864803604785366882768200659375985218985181640415763251657357834875706640958268133966184559721777011686259178986327395803952882802544033301432123951562263594293784745043716612160037724037485401776940990563652038465073228302027697868623119362312592799806400311160143138804826345760642479193986748032162548201005030858142225649597962964526726762933113518247000358370948047122857332824590276936811814739423924615513362611259813841174807783703122433910742908832564132918943683588211260653263875205956188288088384415511270200000452369091304776343523527466599783363408478798443737720185802571916512602012039465577443405689599052324017047261275653992423625487993239500637122984872003265339929060292361953539607182939641572783545718436996947524862248471227150541171915388924885623215631327432040164406262520392470151531012373621336671283420401863260822787429186959942333146367331617138219761673401267813979304433526853262308132173200961571272026453481935930007429008662896373615053101187204352408013135203323027466911942727081792677187394448935586861686939486331662569369132164081952286419029772572780089084567547313173494003750695058757871402901214748988886889593771086217928004879842620260027425420369395472005199036498558038072009482817482656394744875706490744950026373230049370719435517495996731611206373644127729160531975979793344566024362660035006811587605707212905922740579547942664892546324707859398209342531207328962955679080145557128190971025768230715976706780341722491840353125853945474742272299990357248305710579733121510648814944622007532952871102873057017212715476290339916887864770808815536399225192357814346715800908167943243828090938005984331444844933624835365259885838266097210009816221948278467808272557964122239011762037902475904827818063015263826142359473396734017684871406318179414835462004980059695095201591629639310544448354092393920793077923589034127628353460054532967262379892651073488689401907847704640507252217755191018511007294995443047605660893200728094919973836585188583854491866280972188713291232131185772123631272749604539159413013673587575882909205934412897482281414557994090866088414801149584575816799622338493971338716600311020312938514410637824354526861958958006342106386833886976393162481885177471417314407940588795502214198969086314029430406023555791791577262157934174556807488343014496631685597744217340023877857948853266944399441317409099505649899996290617973073007759775625054906397873991503699034602907967683530015646148490134863654876199046064897056026219042817149365328420366730389289278319021173884028281129997426964742346613043511853133951526991150610232654710554031888451580273331455992105066398318580091770193860565935210925467255173381065253166642118125810536167607684371853318450601432904602277543668388409975950455787095194885050197681871678423085406106401116339106237521014141810320208974197375645036053226480070445329551586829866846926821716208028790549326239807120695152487011060435423166443639978604256023838276035543352987257837634550808379389071824784842512602481319329169856934582932086552917608282850364622130161271534747701862925964732844737982898715027693789822117529418280809068870218173744557551779555833253854371954948557214193221289613577965290625735431229128004850723718271027434349650300444419999582652504344160034458704257955957057138524634396090293834703295634349827989065893593319130124254044984739906442744506129589112258844410256443534712194159346963577159840375778796890680226179677647115785316139867046758163558432429028836005033058587266829859829407700342340182822367680399886293846691571146025829028226051168174320922419271981978300451164879876942567951102301841723417460441808448575281446710599948526360870267898273861589163518233351396041869932250077682474949729548895979884715387230972119199238016562533853604837869180820566430566877967903941977524532918409100209010891822727953283816699791660886671311736754195081724143136849512035289765501526468964403917910178702144473727055000543252022495707922648710917073200659246274093295186259451161624538419027896728138505205042230664403861266837482971161681488389247585766805715937501774368532926820303085814219968946591514196336955114480744269458448389089553614636300184093084985940879642940274291803836730152982696937108831773567472213834416708883401734034546561648028139930166776147197321237618784842316913699347868454784965426737153427212952382224341685525232933455835567356678176205562254250798702340436787718893711132130304663421176421934874327822666262047786370503475189372875086119246014529849539792006127954735149967356304543712177413018035733670575687609365923470952037413069344012023046856149545327866711873480812617222478042076971339816097613857198079131073439243446766702389551597956862632487010002256678392664833228563911009196662126271665354880700847912799573959730314526196801950732916213545580735717903991066806357117521486090707858645134782504140768550881347203292955978916758325338122821597744218368411414388909540437972623318499405309337748303206347417798655148257627006591639949479109130529904122917012829937531490940301487623442486248691071892280756503537703625315529461335025442618081347422031765749216475362949876937037320411323825828868356771369439720582647873359234285346794346316946133646825588424788665059712205653639510233697327078724204894271454750913209042958206074253110290994507368439530843908354009498612843598634433059204587995664813484726555644913123401931218287967434189198095704931136429746951966587779298515799682165997169471276616012922009853347923103964012068651681818233182428770964764015489433878230167917539659654931381044081735641967499452267182292689417722318481428016805326841532910420614517643475238122879647218692468753704864484481848820965103005704573298286793692942311908668488989915291913226086203547228304773800509374497351823398869676945700063931456950895319275424182015527000690677662265842725150862646524793245462242340022171233909796594798384373349431932257257918937784042625458192298971390119896989559309327642262430653351069751014743763037009427369569946959320150740702973790649717893535115602727610881101360451712506260811697915491112095586826727891115324598730450665194321903079916843660478345705051450808594399697746003724970622605494906963833703076380407461521775565015494846438867351768257924407511227871581570385600537439828540663498820303407233251926406532428438682188026276067647701443083079038210539591150161617681201812394929257224879858140549690083574287233273322527947049779279356813769114571348580780385359068831523264589963053185594623821685865822038003592493012929478241519674401962382542231862144348851505085657223359770875680925817890102362233047058350384681181219201062141591945853117710713464606788002415747873217594384574263516980098158327844078916623974241901083670899943331924247038531466600820228333069601629513852583930337652152225175210249833654968460009106677832000967566220210573949294018226384851846323274862003003710420201496638653852240502041569639700498576244692862658132495105350423957363584965384357267379486110033913712345357952896731285339591681675060314370879637826235886393578238628076459298768466045404439825724769350988387060579632310374015014623900921385553028204432209809710290112430234411446688201019590457601975189476236979416257734031120237266115023327002187521176300535379181064287627900666705619693044083783817039113432565012909487642673772171798337389562928848786592379338164619913629781872821079226541961042834319932079453983621719383765671639090679058741806460411636355497894646232793953979913535730952643934661053330583254496198129814971209942971663541588532975601198818062845139142756502343447790669621785648209048535996096084422212564538721844089651212419767071100493706933181786331113469007152097684458095975538635167460657293342662304288325587036783373545273630361231121749186422019105095407982096164701059994247786380971096642388399004543044318422014905428698141561269637175786386490401664535929107310333536618523342209117506201491277647500126147423241702447595832839218125603629242705331003019153410687154264232646498988614249691778505241289225225367422925012794355061683781103151151922873099571086247474065132543811166860941321946695960467406199164065096384444561435903407828311424494338961265621835746137512795805199026671762853265004295621339152657678178280792439474914243650335837335710193950460639671916897956363868272979236636959842799163264226158028596160584199613332297294743230305553313206994388974839528753734880813500058947241584814318987653674135492869475736267013300876995006429776714889225927361989666355948339483027366496425879540276777118359626322140580653911991134846260623103256904263361277310192250216547692295163774074042244113692340854276048551989729652687435314521953870997405301546749497588735853449981200205124271970748979963150975605360999580334562239414960938358246228788166204184034485553686897168522934350654632494827564726187961446351010230627817462817900130474044390775010780364515306471920031131921839504856317389405000345088403592482855016763411836721918074680147289637441358634456036004501861661225308348196775915883239665852470918312087980936707456172547335543714530334240791443191186520820008596374765958468799606912989811383114827879502412200195275908105528532853483237444402865163381789194448322661281370218576617815513676416121505206959179983795187696653643927452605089357009911484338845277165844977752467988668030848866441183176453675477064153496195655076778382723322974121975790528706500541695961687906266946279005879301405526016786901195790778864223160128847668757425539026530080794327606054413306261227221773198454189904900680316443423699345275915492568093294340192537690345382201750634487812937830594149921233928433348944630603954588607464137270300117331853041279645486257800053597705351942246599907770933402991042569382920865515663918955058389644862026118002237008301391875693957242596803998656349927097647219821454431197448573858724846052701144548292610837399017186591012801608418608984899354571201413770486794626863336622893734765093283613358921553599653018972630803699798417486436290787269978223440521294284624873981874407477792707727650146506835388991599113171996242387161119340562064169120270862494377434979230306631115053167988508371647061783982297290711782335216100135066103333524368232859596018172169510774054164935471794373968062741093854401505507510659234409951872807898205545373028102951240708249508052529933605176663421451595223078912644005000802382874338324844297153916567580489183774534082957146168865231353222845881177833103093696472085862288978892987663846218198865938462775895333316479179005655580613872971159226814116450640066819857595444876699564364183502705782339786552900063444207549116152924393307311188875892691027497171666381853540021128986883920258287077397114228207429213490840190504187935681994551079169722409145221537290680235173586766440408986595478860509636867166235041237982093745684049127293275557921341520040170343017664047083365387734650191965920193549605247470399595726547225231372047853261190358086135113616912704422501334047682971121077684024896082848680244785458945933686597533717222377351338114646260134912327151500629087181759947175397836166222356210825987243724227930680535790476773474904798184407244652181878430407762901809377937442827363851633012014700170066956044647677570654040747747759896543531548315999281201968137361918749222272743509110752005421268228811642787698166081530193650892630905445389620557839982285103870348508550759836095678984121145002203557914859043373226484786747612970718242085501822522326097783339139018214899507023785452610221774829436532856766907330216334484520968200954650591183000776764503711569948163589367062718424657566097837033998227838049071801856993892970976629823004843158007680774856034300022657316272262658625212957449246472940071853046051142152836407971590544595522386836716505053166882140742717978146394479433774086123742326313665974897098843603763321118602800019672214863060149734415613001081528916480588425522953009916774217249796065652946649477157423504295429947098398075260360859973348481225688738093776965240373636865902988452089209357437797363695916986435397237301772601507901787761096453591675376985834546986051305061051174760722175219089599042571810162401280671919339862562964433426000982948095052084725010842810308295583850622586280102305190358382926716318864173134460514030173274542884416710814063985276644929439922356541515521971367279391549655444379676548307644279758606390156191546661254294375734519742359553023044880836431922012876280324709295853174735397874826814603695555304234929479902795550525332962631537287695670170303590226611204008471456771140245611120994641394166448311306910756813854878921401603375913291944305797031479887065877326505377514646169934249999719729559671188219397061729463547178154962746061820368362455839222855620106090728876514992051324337458384206864378110507461216491582607143707357662260962940733299114669125017673937529056969839437860066680286808717460202881430173300900219153028396731941393152283641779531344420135473419978848947281983448009652050916812132001972275818516804969351220229316545499145761441746796631564227377719743592282065945595523683928873986206727735424939619993065407623558821889268993949155561904204971119149691713067789024601914630165233078472995420586217346127405252059072191459379300868151405322344582072581217018260609441098855950750787374547878823697375933895673061085865827287636953791054015920155957788871585047634639786925592119001566278712275630538072035209801099693414573919609159368406923478294296581570167464800891254632687507318445456978175327322915874350964468709971378645016048078653911871359467821130972863654260427451028286087887923819005319967610608607580647352100880267756633378697014048634946613873678481927902464658275941766468809870839533188256752268466478473355807611841279893390009010999183221312366792904140331324649194762834441525707203731160968259620217160885185159779301095784881653344675094419520672874341584957751586802038986070955926904867801353686922623311206627967034364233881301499064189266980984727214858849770741245707392125986113542023633159892943987725723085997161843475339469332322257667568367190165966372247505185542833288081656661420672918671225010795482006416710349374374482815193135363586899839441297222967734743762302768621070671753183987394265146714945367513830687281154423472666095493660881380424196179251572511925481040571045354684304780998708981100938119845564684091216499633519579951867771213305785567588503727247821013607004186782700341287572541881268313750472486640376063690138836221471350378417840301871359114232072748084601126150909303574852220125436767918649345449431170725495180930881970838959283633033115285908031510874684010945265642287657562276551509133791008110320325332765049309190747795476289937385111083345322073662857608678828245792621480869155229156863594434958528374659626124700581130562567519454687665454960857163212983267290282172526676776623204437344236166141135103066826648598536972343869797135777736262512088805466161447351981329009815998417521758626840001822043879965761850123825596117164511234869907361805912510923102896573437267474885788596217060192418080492096999148265895792282731403013516738090103394665180433756838778813856462975791582068047781855120694384498766738100637018754323209614098347868543644496452413693795080525482684495460723873148735075616428724879892216863996987164282276964015169144542822402739539357349207060110350655619199779522743523052590395084795658719907276609402636170531361620796690786376081782681709120355172990212058350727760966408161630982615619943718193303718019928693006662525314877364667526598248731377811389388765069272402477941872885908012215331346459422818833226466150062483283420287350704085363740075714488494272607204505465340386307643592327769689978894756714641409116512229328832474383734189087759575927850167967680826951635776678377750581472297989544770646172377298792135966894766000810075867930347020100713510423255230526619334221094849247811056886380276623971696298599267367019506759067840528860477499180859329264702690002823598688220883940737196969082365884827642571209275865388079598198458302978329926944356227560479802812073103844150194241987698465443844111866900637408429104255319587790674595959779462376541861164743981120542506322359181622344762916887092881812254545696103435046279244388442897147349778641225909053764546583258176567978958526724019367817188317612533287774993651027072580914493860465305586308754611744782479121370230596332892187159685955568117080760876459759087474007930931519859435566801759734262686341864804087435598262441398234772085923238492780409699360834728336544002784356084631441715397659212273716976759839611654983017597223927161429611495958686016697495946577534632319316861477170220144226271250481043161838176949113844658129406151993602208159326914833699517818235132997816441710952331168831274876782579314882814895192832304029753801147306563710288147471372787344073690720012563417843016941112957915233058166259176103146211169908928193004293619885563950862666143134872403861629586651220288011395218288558400356408528195873566873134935692309938471163245726176044332218424666636865734458326750831111117451069476899607584294481351366177529040447211809225749669064665142136664702201559699235927074260860857995185946892618893173753831518773989161356559172152734655331032419129713040289522140263495555509102675107530733069537876508943593243113360665437821799510869838244059221342703188975708312475963890841603774591860528344169353933808784414144808709753257438638553363960389207807202283689955170813013498560146566612817353671586410416051944681673334728114275538140415852909910085491394927908574689550707616969146785746612265853507093724349610610348447954976493071215201821035633769538072595662470132718406355463596619379673548726689680975417313453406327351552159186990002820079471786356000742613816089967563893120398529715142024680024689178113460606614051439347195461849259247732213602719955727694297697268180524202856752302648023639282923980365868234374344449705261532943636492600296779300149982650924666382299559098918513185357882970049393664096690333701327295741287555799136467817043527146355675213053687153721577965232387145786204953206069188845023489767720971970277683714632703168605723301106959079209523261405085610231976689683305589275313914625342326415951029564998693800200045220796013878843938710135996222434112776763180694593308679102463273595807307258098025700137759329418819085194585376805809856804394437609490333961321910380805636509153038107937027939061722417216419001177847482372560063548174455283903151035245810990813493095516675445348739887279820993133404724150581442501153319716641274266031860711390993607930866489081316646860652970891128882316638074818164995804841746301219149862471370798037334513328988088307437019854162438841969380795544173572729583903158730731782221307258235730740656590570862837545660741825769485279863628823611486997446629363493895567722791635985687566429074811849216261787825211207273287801825233386531870292737057612723868332308244277657588645089337767563463752335872207964811800122489609327425433495100302037726413120667478758902380059202328447372216198963831960932657316624828116192172334498271864448247356584713726223259905415605747815609173887630552056677316909182547577529856788585261302882428795816917276532444564536309583006066581177621270854018002211398671171396204494819748231186564584932423137901764397116708251719005083560612387819117554213953058273792343453578009103185893400046547775897958356533786049998899734873254172082876693369370983143994959339584119080991507766278817640100742975997743560335233312002783897507955331490205099590951580481119276814601845767435469997722156067292864837106009718441380253435245641091060611966640858368769556712879516485203052911021594296736079227021954532892086846266473908781773548622880432632604221138285080176006170940723000689135899633443857148827964385566970120122225021783796861230517080800257312010027643434306979662838022425454603963227339432400198958538243575682780979417049257235122796708858860852145592941044139566951291419367935035725485407809132198771292339316713039107674309270972583656310224923598953673076108107698122466742657514516769317905327513603460321485273449608853258506280509733052590489241890773893406599714132999735877040488233810372279004592153591491042597045023663098832228766502555002117887942842989756121408860483491282554373439002090087811145526511934282652350521227117890994463288983361418378635489573003301580248067100940709810320992588027072647316903243995195257961977313850986208124527109785027386923694073082413660930460219821644317229278428200986690406750764075888020321585951117496442214486046885243179271064939273862372690344971294245660797415710586490313586873377644624070931720434983997546078115162824891160892717918738631449154553842575476630644715448764508471245833622549577636400369706853339179874920962826274578147109101274101319196615557923772547044844270429038951670418153691013042214242257518376425008122182861847130743896440131283313459281997235328291964228300187277394563958449983119519949160840735567347112206539545538542506025447092194032403206503501520119250716541216620537249323939674922762716937569975480051108768403559127131894682184145308695512166546059082732398297878611800504591821732238696430301337793729450586047157640103535006367592854426653373751837715042557801118992552606461097260582138759299070011643400007036144028486135986725325556898863727702619567359370913728996854717249694139148179112806442726187976368599183117854732282965985692281767457171344760970409331168320985008697269213422418781989699033468072231967683260461243975421798965331488612608678221409463861785837095268764674812647609422745420979277718906314707432416066448612606944906902268295984822352065689772938445624501013131762850336011678154116997869890954283089421729275026881406444855945146796449317909326845933271520791035770331584569844197601644708547049976685670309312058090895195783651742716880888247700312901930613671099015512221570568743202901904939857212007834811612442674458142937089268398113476165286660868039045957721696449259961727949873400610465228106254825594330728213357167771346347573828167748862699911220130160498899975043444231428619247008188014056650363637688418519845025555656907927601019642137345942294909114402781522532141275155722803396513489824598123768723754263003693302106970984655491163145953076435093910888851974474227669171867863866605338863088644543378664337391156108537315570814129909548579617159274164490667016207409564784535136113805990138679214147905813378104978142458272005138267359812609925600546997225639871629327184755350848763500812105361041883971848999974313659306809259762343907372616719769813654102027982497876753018666674585552302006119303942258818856975453914553561605400721922234802912056325579313742012668061937053099610616606634213826705159828626541558525802189245447457915489206983401548953405947082020167873361906895316602140752457604853575148631401254226088848736426522765444350210205667537096400032062130632639944830304385320848908809099805973317629326555527359060803476148041286045269201456836350109760507609818833075882342098396798420587280744188744918062851831872801872998982042224463426915022694232847709287321365030554318307157882053460473841522289320703672009249329041014579876874485200411799453126883370958085620434390791166081780978215316288983432491428204268662612989115605016726786182186970237283450802231658374997606816136919622176658266763149759425685254338231622590800320098295789485892399030194341359468321361739182082288448123721402640957798674622006624999984771529467378547583901681018469338190124692355990452851903576678409205111990391979605686754866273884203531543816867750209837763992054920835328615158583502422490768518945212614057813131619162990265257262343353521666012411547864785965959229087402731833313939029811235906856296180763346244866391966594592387721065175878289194956544259341617431271075781169467594826722220005619912608838312251135539680884603749025071303247454928856602530359901922153749822012628874992302707644847855462891111225367855131185755405652420933891979134839622436903860412973793791189182362121433928461570772144925934027473685207501193807022450671126643425982956720071451955660319756018844776666752893608163605217476546577771227233102653653632772563060908292184814175504278255514734480672989844599227597898762067140872876983482013711605568302364508836329253960991088265320605716391426497099784343883330021084311124742993227216369332818183561368868854529939300691182459422578050831658828641139003107174562004225567921983462305705394337551673153792187282874428922114398578437686072095379582532973378106540433366387271444660509216765177328746937385430617629564093511025632936970508681806304528231530638319780200865801589579424724560373952585028889883367519572907545408398638208060278956551721337981222976218661497119819169437130684742780003057619323625585950028690652085630059916128961878175076616200376280901082150835505919376038973870055949443179884768352508079315266837341519987396992015516496324962977281418925601396577425152791289773668843652180272473315751413727318251299817178406634934331540297106251512184289389736846095004255403694073026202611132685500927747905160141363261157890731692625157304594689768206355049760702241425109273985163388419593969156970027416173024575270055943337380219362739123250997550851076457545657684465809840390273795947707165254772614906986779668942887043096394305481055776225181542749777626341109759842637644915135662689610453712996146051882294226174731250296673061599185539845968001593657493159414441560227551258798613986862871033524913559305853442221538468430152515609606915196460991142227190590632521995752032624495230761057016589401754894386606921550767356070269475119550910315320896924377373280797616960135899459888799777260756086440873731588431385863650854971625924915511023961888478597617394176714287668223318104999877529920795885999206381828953211553342685093550399847741169847309080974596556711283209809755028861783444233434036385494619406455764720243895996805309419062513881885662986023149558001438366374917384859645006562493392321650650441654785492726503779382317826459999918338086434370144149350383284099650912970935282128437280776371282982643619488723860302889485703337421965979211532488491435469797147768937539201882126449790685294555808873639341178897411615082987829985448669240405213811651040771140039688573853163465567522360905371961214733484369126476166359529700172131585073998221997871449346866481815359765601833515212526424445459407094932727543049998205160919855255540906849120534235043303788386639262422184619365888341165300345080673618998909527884762479555238747109946099112366022407355460449989446316186650047588929038455604227632492157256855957189455594662119574945995473862168730381415840189079289909633424668299995171829041177563180554717702862833275443021296508154170253771848447140571535921846295360016571546624945586941194075135274915262874984618119328616177786285368890911797265184487227693628448862422716476337203661599120881173692046686616815978312884103577498643416775942376743547498203773201859853220963386611795372149570499601501114415788466163541554769024767613803187261151275369941541856246845849909665586623468520745900556626448259628243104941694756693374818061031476920205433934199835210711107775300291863187037262135996005909860352919469465411222997795057169284278792382205307666359878948888203697237135026390698917522936628213704273403016513636773956226467750258509311151242079776004823151029644417570902783388188058557486353229299124338689929770173204847823941010409372568346227488225801199650623258159640685519660859372350441941263968299527276311400460178088854313226600524285459020982093550140137022930640599495942930178796962326876799350293699032842812022249960271274177866115737072828735890297332048159992532781047030390188035960392740118088823958795791782786005031306250215337784944609725799854084733962398479887887721087813984076849790566301795670972188135270125668861587624299671091920937555180926109842086235375458516721872870353207445164380359563773668968634914774586656699264438962493794485967639463874849790996755340528727044418688727578401985413455499161138861378319486822044578550361370432262988995006463838732055395362369402000293587380387319059166401085932643761358484573660598952318541225757130519745055066326303517339925895057487896687447141793505010706008025989002394446669060659475783345798956423603355153922748367905762910652233106554096785587973874024405419870513710152863444415536322463490709210542809043953003342175468422700888012184250508585850506694376633193204698380137019965984557869279127204762379240356293655279886725515792351250903991753736547900900811829242295051580629929035186502303212791373737504409373684421092740374017075153555105564278509804052769239234399039480305958248115728406020563590908369977059642459672389141524155928709361641224937127743337489127579553220096273213081579196961454399648088002089557082450498128496279047042697346725090341223462572596153965797740688656743653387836725515873786602084984529990445438751206175997530032463797931141403573574250466951165408330973384888287460257073293724735073791231445430941430865466804606368633867484998826877143362734847483772351633649034962862752939211064708754424184467811644050851738138845399148647114558824097170316449356062609908339014469418409274872230816571796752077019480591219906170044626621798313941782245389590435016665058880324499568056157899301088579517242826236144628448856311898103654513494576765161483978187062956202045656599626640452401804255232400729773924037034623450577771036028876901176719239319996391922706081543323115851449761141419617548495806204756447543310825354321008400207939833670538236472447837335392843778623932457558324970759728548718630300106844101185916927645797043986376843357744440062792348086507011654673608657662822942359985493876997374761574196865739688840891334472532230259045680865094593556056695353907627564770951083878292383215690894319397783550829168514254885750393761592599124082437616927296438695107994619668919412259960990589302320834698230518061855048476079589888015797248927384714407666439222523955176197335066143107481865772517481625204207215565213495475150063703049545079518286305483245510290068940931975901809022930517431134101365478775385205635970461661875503287822566147596852942426892013518637723266734843810829350951388923926252105653120161530600585804407751854211500748893283972866157854056548868941866749600715238252838498697551816815818801699824219610456131978525611092626507806820981036719233248459643091979895217393527201337010911976509029618264554612331152822815991406847574053859940100443364092652490374351338363126363540244398719016477943361652027551139249446335899506859009068695368253194564546661969447224901263277907877044170161452034663988716722083837172368215241067542997481509597899311086584578143879814804438533165932997392533039329791977082568392041007139644424974449723583390868026111764317371951179639994578513818072735560295084691295201110961278871437130171814941131312193261145556559871796323738855127008094273462323734460283431240028139820966641453491602814257042832171165798215399579062221354851648393147968399583858575992217338269215936557434107699291986566234047908137268889129031796787623056019114723045661566333635241761949398471713031470259251111123270024447602833756065896420631052383723497786131465032653108602217387858942562445787824999309144057319960396208243665474661951503301422216245866223849404359532003167386317201425045137210701718989347064923747292787229819259304520271603919562530676915361835704468158150465180286524319285911015647293331189199177104851035193465365166459766494683623466239001206817499718885081081504694484432401962783347959076813281193792680630130686326812972924195344243881617937666809653867443622996002817298946699764491369753447030864148484464334714207784037156797442937938773443507681680288534131672419516960004133616360111223620946507857416132127885319342936867124279745991064767102961670921227406454627500531799713824105601987104727096018710965695374687573246341663487612744113635070603555915508450917942303496974446440373838077742143555209956277806763579740740731040379847311417986934260755764446180108831653558870464213587459740845429186193888985299961458878211896494342451456440871701612349765727036502656135554954873387915966138702310800946710598727892582800659440009318600474610390528206881640392679704835926846342025793687873818114399347749017418095312965324679835288624604021404624892687579651680522389354470746869045058751277710955271091428795641490523088260730069507916618257728195744195569171795875524546733756937842283840713605374157892837575530960197306393527767797819821036157330430979845546017953706971996847629030724807580456176458272434903249771985021641497660947030603074498836232325698953268588965616876167438257720837724089927434578582721227142104731723840278415361427883931918692722976256896749148691413974440639537794039760239306209231344960268052595699704411802105121425501672124219998449615952859058953575627404877653383515929491362932031786211257593602683917187033253557425118153179165954161899282474971626442059273429901390620115039219362570614200266848690900416677184187316603780853570213351986345803667242690676972710692598857279686483600975103540628420065765962791716977924019632348210431975045342253382995947855364121137486982763449853814410534737752608572369370683804078597867209250069104427385912328955003690310791377609431365233083785258978538641376665383173949665546232797363484517330514036821480262958374544857178069591434339593618213797151288474467121971624232633149244519720061282902174655312557992944698823868066246335032565755375414290989395946291724259714460054894005175446865622109491686298087101883786181452662505819502777031619854827085356720829405208378337285249417614810441069090589567565377221917142668333268853689874784418882692461801972068995067055485308640646816577441679981319319176888520358791574656735443817494423847748949434460677323060730291508645446581267078574965213202867082467793298414651075734513846687002020720891522169750246053280904064870561674598755045443709216269896420952799321468726742973649628780897576521461675758676199332493101268978807199770884264747445571019546216776191256297142928962826912611681673427032349236329897289084256426971464555910529707143938149493185038493836992533832440068279358164184637511045608809419508211072348813136475896541622269098287857757014459558051668965299697382490903513930729427521933289272994941897181683728970614796772328965505891126729039583581228592825147165524113165255360408933197071756172610219244380616888522755686455347112297492121143271563034107068777041266128751215246833835734441056964256861115453390992785300204686815952791713207557852635069059192797074486386954300502856580043401435148990083898559630982527785954090029784165825888205086967097406301088311793685099201688161094052408010206210180176584179857193576751892508517812926690148107029858869451784457442225559383749807074234793107808054091107549524232649639500724666134034050392974362262137825677311405129130544370968507228686151145277101036016313193416141525138770678171893335844970411923546285205433983207958541517144801997084340236513135268711247975775167597101489966910423418333051852292782743921132307115628732855340598930767380939677812845231949616355675531555522932876155952104659701457159426756575307369325042867782428637285491451893708013340647434727431466478560314729330062899531826838309485641548656142319325200907513881968774364750388946446002592859379627798980695070467112297070937587991953264460241054308740928495777484144635071670103212364490699959197353804437333060808055800904492577321360593669151174158783640989950662273558480364406027987633326434515696655192391881154650846476817554825606233416029350279018550049903887873814737931537264423878161568293979456655188123108614146533756645409544736227695287494101065438433265490302574168442986550144872620437481948126031082016578059100208355816113864164849084100026514156777825200383889577570333553439496802583556116567775852454059548163868505039547977704900000134137505619269392715424686950372131210381152743073750786085200300580270758543453558851863733485888621778891239340705983484500553417053778196565816951213193730851023254348368865014679405624728683984015897020504109657858283686601373374626435038381130890905306888655031163644838848882447737680063789684340491920625983248962536595722837792964213946313560862338000131051981039084040578536454094313304556956310184953892346725499776561933642496894553103473149116927270940232095844420072614989805681750814155721835342562118418959796846280944618408575643376266782423822096136354951121535303776177242112912679860252980243397752866646998476057983282818951473584983476588548442674679369173870893211574494630250818037632395368835678423849042241451355360767772929525218846652111302552542676375802515353385697018815316606990731989556537130681774452142239241040344701251530971847186052484540143130627728933165532545273190418550528728551241739566696261978195035453721863782712060910267641655094624570352398111729739441607546519243398337453032556824763607246979778569189314654829478946134090768418184697289172574183421031232720244780573570445203630992991951568422551009273183321764657556497561824207673432604467958955949558285010984030705353394155232686436208364031829461521378622205047084800501861095709924814007244328457603534117716086442811888763996625981204270892671386291723482208278715334280209858093365860675564380341213744602819723060612422102651097047459749114986499171242374444678849164043049820640238572390601668210304930500091215436849591287733777982547983472637683760855904369059370704272626903136214384511768461477775103324710148114214174177430488993727830342287279233601352738599042333899908761322497431400564325379288411800812560369620642584931383645941596506027698264158680025706884238941345398177924955942051445940750327904315317743288081519241340050310412706700971723485554447183365980704186591449396882232870365541575630552437734211646134422772910902994224687025527816497059947950804854277816780473850404269464543776337395061148429028450779968255500638013598249043027976944313805637575860167960810122210138693879651780564330814155647966086622189395040345102896294763517052151626234865982327971935961590513056439764720234720848849124678300480598082251606913365353516025135086206625855646131865915863418161133356666631928687385103486463818398374529971391860245381039943518372242056885779549555297617966318766161003178169956006002750108368285985847912430866706429283174340160308118914377563880177855791524602757875764007495985638510832179757208482419981748523928335205550525248026026209811962182699412395925712272380027187933446689474051918509093268092218310448885025827754461193217649604779499330810852897944480107972096389079727805432823012155193725930086421749822366401663580046504098824834549709622725679851056262846847126120266746061169716796805860137794806655201165633605774428537220884920171053843587347595737226454339420783623204620300967138122201732702215613015807622484767729911323620628433002182011105758131093996547783979848415461193373413630742128893186920398799982582100381858517808529004992965032890884279730034946970473248116353814736909843598260451617512600412953888332902854009776938427145549961883561950175449197189363987681737593727833071315044212963541189539564111280983372200055064748581080604839549557187611132302290282231709237932265266026673066521262228878706777770480086978731842407013201075142971160538291380411536082998463950061209775855101598020987129130813456407431920548009266609375155680605764665987213038927155540990519878284600056989999343113756877486125425107945121358724296921657360293946705449657755899001686468111628496936925315902950530382900535565837285575845600608920217561395842191319904695177025749652072300010334645471814466543958079096860462595628666162213628621036278010215077704132099583877618908474322967834973255083809273077511395650472418156064150212389099439923980810962593058203564860655015234657352627832972954479677970567825912092383622318187279051466311068917939743393185054007645740288769214717592833900790028494470088436833867056720079184306029331541233573190307078670749082096578178844237888317458242824391123357421594052644855566425552946782350065571578880440284765094861377439915705441151569614928536796950929472000304551581688213381903841825955333431861177543265443029301307651384193507749856195986799762791347675822612880716209837239894615143768626288967717030280839316401553611807240984519880034163192151061026179050637728888430541833221158685146122447793794962355050249975502183868214433814907074256163054223430242216203255676766110474044164381889881257448312975688464766423184784160109731994601132569824479891772895082286348474953858615577378909246703032225514072733302614045598027930068062126901403804453036406557718576396432260686411439697569208339284867620435773226860131045535232213103473777155824776172040133860073757084572639540066441502333649110091919238603943427028142183855817908507995418955181944822739141617413986066697929154530542946622764283813930457073060984152943576996873510797207845796867426410919386563594085220528652918553745120943628047389208503384938371824687685656367618273077521536378274382044116168615893242434793615210168181663103502865170393617507808859512235021390425200141211120888073572932341784752619189899084196351607186201521904109389758778605307154533575350682246353859783521280981577705353603094814110488863681107458043792392300664369065859371251796699714643630150240549364012126976972086083915062609298544494432150353648294623705395137472902671691394683180112615573425023864723770393455797021430427371195638688327848258661288885268206942164710967106819566495187512828587293809255769531744574833665133596360010761082651253891304423330941959528724665751901242623720280274147837258543220773615586651720345128318399823383803234921296666114266359226409159699297769270321341239934003754991423188707575423179270404280631162059577176425250995765052079694082831934898626459245990271959645573362985764381369966310323042931116564473677857868031001348308771350149183890674372460081396506988593977792862917749374996361337031889678335631440101501238181172685282836431474113434837794827493140703967325591315332732408646312527694714517527905695442767793317776726150678353174841240742887872557166004435190961265244948816732800541268298770146677199744370725919573994833977524144725126924070530332343640575451116872115470564705788821407139717165390582325741839622222154009306876100745489437284630272111954657341068965217023593187175072903700610707417762193458340882126522442080050297042080240959623522024087414367076410920385430170236694661657434548669161061732711251804799338324198981902370782876709625930234937214226823449397115597096792249374377059564046135909844938391041909957145465492634233376539095273508268259831135616115315637846156526944322320069937884183892431795332024704685531718787067480119250407930049164435239950645190950024670433800708884309842259851257753638405324392876976024219481850446392355772223272284519257617998179015496747412929882921202453960046885828870070996132394121598767253288566094606020717427417071839544270508724909014376969554503553211847081513846990311388853113316978904774733832733841601726614162907249396784183025216244874217910971409195840252184864600479834757535801976172678798465927597273376476007696948212563211926703939074746210059192831467690459978180788055672310472935623961906928785954179069004190546262175945838901543994312087159237830506655778214298352112548227609430046068604626655003348518455261641870166184339650625297291103881817152041387800302789180134333190267891256970669331413431834730291049189890539162434759413345599735191391316210388034855678023297976372046700970327360502995588359980396398902740165400348358177287508364090408516086469780152998533211535422856757971193464439011691126648013500527931007301794625363452646219267213755642928521510680073708933587922635348568839022505272081279273398844676560343964202149204106981865774528384020214187992993280334625342936868093612084173068798136921995060527789627130239000177415138016643802661346281239068866943708662012979510114404150782501499793267598107564214446815836348459552813734444002989152540141846433017265571329802358651636178815965158557090552341396554136590274251941842132214614019705849837625710899863479899608975522591048892770342917345626262447518322947724066729879858851068015754169334001287728510223685121611811897866576464518361876737604973576181211074912653690985145501113651870565019938743640998473566161153623312491697577632247661781728576317083699657366213484644456408447043698767794806224162948091401958015621551908459163395400293288540221525712289079506890741484300086030979731677975033485437241305556052843995892834962866802198785326029465008109736844748000700041012782976009194876217351072231715785771950193701215866946458955926504405371473307468963807186831497091201926924181945782027885602056551184545741245558484686659663863890067537630928864639074757706652802355119221574735776375054240423586970445899265546744670417055757098838294448701689838324894370562983173561857819692532349742594884932354870207959326284682333832775445569333825564407698747555144865092374317490955010292965173847027042662917905940015245378692796923315263894959791585619437794958221043501875637409522764375419827454482228734119195482759945110291045251551213985963745413847209845011738302622867919764797058382454300695157917223232029314791976646016789347616261859992879074051850822178198045866115602399052323044964890325451835736524591842632497296516295552993593511049555021520630613125238019758638575550754856032548009293334947010312674836291011362227030815881050217086572336067425963591222708238346555779783284110993527629104113240784934921388326207868381752319985892396728643031560770672172809203834014487374612454461381017748786891763914960871646075582131643394983680945654464878926211297938102236748084904285293385224878549300787805257835325329569769081193449948762225283905091924856662030858650645697066087980529646761782818573671717500023317934037125230710098027881481152004454785062487112498000915783628612865101166909604140297961075551558298917302649426389334323985882102608266164157548217130772319925806213579424501730438563992467699851881522698382035378547436371182675498036846105414905597281439626918928885995280662765861862461455866740844005984764373678071450620473032364568691787818977530943955872324177845080515043227220622993637311002249827722711104103471495887285112486900721597504224694555720630577712658007596218872353353508583880856062963300052160388877066118819319236144501758285785814418328160760166003294978484054341285794863319088063269010197931859908759751402287813886940669611519164031492453064991825129613722822031185329229315635681688230347806914732339709917044688058464400362119939079021177740763828499047068288413092955647721155127571333994690219487869490719912040401781612735121355761133236429900552176977493071041149574719191984661012790833408476756614642048281305747840280058656240924888027036608771153245201076005406650815126162383440402953516660483882388143927854040477736743077021956866547849699908041931118619837247178026684902344258136194905593743435455198064183667740664561163319788805303443142220573727737797834749907365599539262472759915786999395025010743450208601066536338245924527957827161763800035015749942749595928326832672987144118277143864731813119134023777860255252697462821803381406573174535052642940596961393042696224413602332236196118384429198349163852880834694585682419945399865157285114877345951321602521807714228035327931231508422887851130600572319736215685304742464164388039971953568020992869279297271504239255322607840494014032249068219946765471143881370528997766541657415196372859522945839505326723418269762220575914863390787568510165570675650579760936830382095215358260947163636057161940887503817564109091278233658061351397635811254983545852653471355713146438688120771866321155194668952007968632901433801064264263574636809596380057969842605958829003682309535022591026949498603905891193033914919871065658106221911448914850742934351877007325271836338615495960915327837014658414836298168548298542213907348011501671496874872640997003132402932232077291808135739665577252577146353457363263094975012932221154999226605641413826112086437917732689999827418476049562889850900694713721613710702520452058099256953262892870715884924160515495693287584832331976896426991633581133453713678820244834831796241656705575360406766632692152008772262679170687554743095960621815021573595222558420445381813861185134915746375411698684642485383227594379577580863342301811378951848444808263737925757238284785587279338114447303449437060083725623892114665342517178006122639050373062080737462007888938790553253916913904902781617921610920164482024902948330219834950711045483611361954181084043750796934348099858122151049223177318027522679508128049700237362422579923720475417166021328624140481788585579891548423617930760923170009728678852842037820245595041431602628255785169921039379836338687011449029943029980409867948679000119571780223622806618341214103369554102898932302064410843932729467066717864967278293579601768297238741361156218832844156880964016816188802351733172540233921453818569647208468498045936697339062834416231002592674847607850619782216908357137086075897348739482343932642804428381480368000448682086087334176295394238824377501800130339432882934386247362124451273404696431221814170791149087391921245771891168203753504156970812247602034840565714288161034290100995495730313985947031472856408699877912639464762296529670877624478153402076494951470618955884120087066436450368689613622771566300030180029709211782687618310124848021425178478447420464268470548151027485605200145087597988576728403968475369790771238369856729258558306996652529429528627198935716786003064121930953176029055473536753736469650411046316900436755093235623272824303379288981367371707602428120911321149589155462005218698946493529383702071107673503305561983978540609213098224439458568973724133695694609866807641581868593857582656367034557436707400815410817421079874155959404044636558249911502750846657624793938150548230419638243098937918191890769837007178567007952793023684861636005308790426032330796997653721862225577377778396276611169020112873352248650026245012763508953382448471951808340535074321442044516719732988044453441011452292134029781361185105279224673295795869139703737187008213209448305663437351033501360002420155141592023906882187448426360005656816263675348857340046044793560384855690852928766355743209934205224511394597199942721422192755328625084143065586851971810698681314607653183190807762353503764445623133420817938406893638610707992809969310553872902669165190389429350412279029282103794785809650339534795557909489585893552592338701240466240531874815864960976310564258468579391569076249296176339729321461847048938279031181467088413232386180738241802241626535277942958122427413273716462372553958339848494302183114719190260019829744276529851716545782323557709865161838271556291547125038233881644254769050479998468170993729754505426485217080294783290943969752353703683674779252777609972172990341479276967713837015200769954309433327694846765135730690832160074646395565682447171214585748001791569396761942584421329185692051855290225227721641263201908600192376929205326370110039310324345200454548116407445925773964167327814428041123480143320141787279001004705921265990478836590929937403229302669934695944976374147518259509421119068444128432476755999311116434461147358699634738288153107011482256196277737145855674640944807626394246533590630879871855951254507502645741437875548739432701248926829433926567186885941207992466291557091257616716157690259315645295508576228818216899894793162245605644937277074205663131963497520952550261757165145725690669933164383926855089786560559179249272231574104816369429383936566317034771995130403584616560936501107081918018274797532020184961062094180196073966191774376344624532553772765085314372154905773047468880720727981665322201193513406679403737715196054489844069732258122646429122304329772339143540407301798362170282120980147254607297963158194312634500863790083247191061512604511376914018886653879272203445198712363855662740742032693037488587982779002229389200124978044381715532549512189939572091371693925745018017932114019471063204862439670462116028069180671540203996615463317549100640744294925519883514648985516403778482021780219700729143965436804602683082519135984903926799694787648339998886952229020086649894007306581005733759388740796099869175108451789365908080553928670294335438170562974981780817193590669562360470918170906719005107933785860185489756767948592515996340089476123435575679719688863531339653890892040742817975395613279969831403774938177986789737023045992217183464582916948431387647432116010944180567065115532564672992390113001295419865326474804612945763026464337864602883683606743883155974062310854209640087141419299194406370763308160680054532752385711430282190030921307349117279786151719667204140057553497582003085489647377476028061737137519263030606103010413925446805498654176446073209717220298221250040575871557202190404128415875653478236916672040785442758851499571182468399256932083777599751788578006008095135957753806730759781266462686203065143054216415044799428139622355488177980234790425731943646857695203231505783174057167903822566514747902900239026528307352172478577161689983943476256674831822038520217282526598946343808999307767214265777415672519307616061312001067431123461985156009171769801697175255304304092823191592430827812974542981163641929961831000118828461613845630367334577110466680376664670084523823457187741356096248025690475972629054430774792434776169469095149158999646327685639778435291746336832798410675043041810888414711572420495896958307221355778554698951204441624385349728963693019586727644058870100705283918072666803585803109583927523358455209412710416530387452027332919342784672612304331101299568041710989749839560420431296852063072666459888084840276171190127511025384111044064478470551136080764850833537712254356228939443269533351537076061123013883910515811560762202859311025598844302772603551382890138037805481665826182545901847503683297781694239120039211714482695174069026255842348720953738702401097725259166601255201897845342536958257372313172433338268211975925670869708652068858292024466394505116215126104176247383308858978642065522104237225984720882496900908929668474630024923025722200691487763518753823404630257192174344299911539665708817709566174300649183519251068005863201205899506726603997659639545995546663875378158392374900182435714001838327155111547023458159237782469505299024426813825385258067602412363075351642989663500616007499196390412462188668319802994942988866534876768388799464298873768856475545755375435647196581958123444219459598281378186976692035085062339745438794605646717538265020481148106670223581071529228473945142660300747835770942695605273343955793648573341640175114880622948734452801498168271368609826878328300269440825378714486901740131333889601772339832736439681169939393473803163086461271004374988135625602235462881110812054603467355804650137027078170864681457173621546937403677022148139393552069559662350828082186992913405629456072779869554080448163737601367127692171638486482661739581592382877829863301210704564868384951083075041048636345730197003162403842677498062983316407893608698395379133898132987805655653756024363230646190880557764210479445109888372456086969271517679179061905850093456006542493541396556504359951486784876498070300155675099170409037094279573025834164884503248359228672387309939692655336390926877123092792273426875995809967286983721035747417352150992141588802615209177133005490818515343961743235697209019489483445973065818722573040567246968288465930861632085902198401769328169115126163143643445604013622922395978300947446901216973108375085104697776511362493261184988977250275754296927066112655262109085234462056669239326434816825130336245075957476774502157865133003818610944732645385107744041348177201663876979509200104735368908193459311168886152101078476646067583165481676065090964754962530427124309507801297792514799919764550930296030147070024732078164468764716020661085719825419884325728535127102172202185788182382311967892171059465634208576437247962939825412889330099487428233487495778303147925475126041933011961233698351636353860020102564899728362077186472171945596546068428094855433897194798625015993991920392463817988788208853438670181861644576024806810202379056755631999205146212244088992530422744991548217699852088790683519671000249027349482599528493311842463220127598810263357118614632682517760307092297130055691925050202917726765545127790862712673410592564384295998403828874892666456635051858153789869628949853785706439902279956999123720249818694768895803922297379609068273382825616901379692636626030159326171477211200216949051621375858410894903189724685166154171059087994222175965317442881364873451748747152194869787977403954331280612447684625888636486600027580452293020124509719642738328344481750342414334787783622220273613403527798614527562086828256204149461714356340753277736878591942160534936470200792436116099426985093048904105765298542763359263085338840067852705984846220115218767092531786681871009512039170682751866025296266110720852472017949626220169973411129288987496403996209255725964358255680661705881782091579810542862677305001846515616586847786985429446627026573251297935121047651982792387228273961504927653632334098769735872323381377537595231924672376251317457507637248366042737279344350974080875732876997077988404201221239862025267719607177849231301986455880105324517255019765607415857459105677916957973433301809227994469555352832838281223062772105103047948308554940354354713814444617232176461927118542428983079844553427667735931434610313111890111041544625491903193021327474645863826833389458469395438933131087226509857611420787318731385547359383260484100676248822258298024049428920687317091432950627616064492945590406186568089379793731695968729852878977262748404609197258112433808267946671086612319398169024366611717355551518892546650506372015313287471457387527877462882679821110818061145939906515123234848041883474871864007951087524822140395934676658499213110284949260525893585406111682144291731024485999094359255145104926273253915408179056454553749360232708653047679779485383467125946643258433713602788456693288709649682880962849261249271972802077378363364908511968908025502619016312630476179338039105223896119186057922170565187587709435654701968349282703440226107493197888699413028932440788922833169559220715351506560275861523139856561469300745069151985776391118919427136298521579556913232219240743838526074147383140984628456050410216698903185626451707773300244436315011559814433135348594456508869568698695195643536717943712849389307218736976638043598028260528893783075333982919393414286002854049809820187865885565152530325499832256939239587445995962192342061008143817449068649729685059116600617751883030675629278577943960679360670057232830763523310548079997219682001355341266555360560304489703070940930562409720105690445966685263655620869277126323626164110516233041715179149581025100060359279764513099558097417969143808844984154178792634695071341368472805143292733561524081338365834311724709984181401646556012674450011520961947050554408545674280222902424811934366260764851170090874847404385718517517410038358636707480004954369368210420008645030149113823919201420706612861309594093521188228780364859466497253574352677510406290220951302694251402426035829517425115848151364433073993185879817900903659183577063618053189395600826955445814205931403513148766430955834504827467639414454042902012554058467472586367380880323239488918244632929438650552730089538524269469147937479919330763020764947731418405713291839813008778643212547064669651823488525450315856361848368460831715884309524527337326881282497588484711040672255776292838970762326484259604649273644852727181690330710323207556655528958233064861270323160886922945825315365556859501258251065956458692936122525806975870958990180569974328124819636914909331005457842486598744473633763343250055873532304789752676140682717878890241296895777846431680975296287685888748262609081548732077403571628165089652606947157046903583586165785456823914452637287853638775148353466743447983334353103715690744017827853498675190685947772344840078945805118957634024203274456762133110895828841319856970871727204145402360563967554811524081547842882149948965050622951521857498188576711169980487621111210581275337035322564706196225801772084523008901810024242786918986541347485223856720296012480550646976711588917371611448636597592264052589277919191808829485954649670392092911054950538160687475818368701433219219310602399219727923115722736091184083506822331096992838701810776666415103642245240173902229779339884513466107734951516838797324603575087092212155032439904537670081306012360208229459312792769573742799457808396042136166121195711038004991530324702478334210415573307162837016878747114980418600138591711131233932798866522164259820786259334064145565845818918490181133623922706677939278004827952836831284674806695544310151421338901640829226843573526721903315844583312459170665546515090355831692371772548317534069590314038167978015457363918210343721447875370050243117228728806035193707732355144373383687263804431847865103895739875898128205778507036737401203812585829041566229047001677473305127691468493092496545744235223268493274052657971913768325458073503359633546452593305448114119960576977756051160859259974428451153001079390464041811844481502305212133167356570860721232155918740878148076038400133782960068294516888826286282433054463952833119218900881712398738797852940511677211925791864085251667611851295628109875327006016143777760578243651525284484360461294033996113033527081242421626021405461045008422786653424662202760724839847695061153757469819626418189210450470199814054044755984472495586479789896379932350496185890394467552806014510815928664863960681787988142931114611614677884130974896772676123860210102854068696056871361192971162785280433133022225999373436981857455783815313980425598899518211400433292584933459530379737676314859914609775959028746538706959564588442739116646480784942503729838005957006895086792575659631317881077703283525079307672050168830415823722599472361643668795636431332413487103618722447495768323538120257613676043651286233418096667311409359597442611627692467843550935904774740246617318989726949076559070569566108883626929162304339831663237179308946421591994276082265106444039495041208287073641499416799482614089357358673887537946638182524306877293009076628226979130191904664894918328303845862633645585802755330218919719902741356532462213507248955699710393341164317118176237474529277011105972465796280589065984219435696741581302411589468543328732825402197767733859071325220534998012082493963466803106398853985339856180346433796255034551516827253944154788314969984994765843136514199686700372556408412708292939950163960571771715034008692507648999689644451288062122741167451193955311813765495398545971986529886690182808944703717777800999604499637313962451878393667814455802589706195690521317917856969042274966996552071048593630899202369188438726955946852162639539400805811182771517446863804196857780295816804157469846290924642469641821682377578919121599642231155417465487771649521559924287538298438253436952184654250824332066068899497684500349346354115962753862997664820600724534843767442464103821908131535101012010262326933099598680961650158135784572720405544167519749312098409575947563629133113343954960735154759564895712236900401484129483513475405736001248531813100451677222033943661356248933632796354837427369724033779085056666561287756497397845310974407920315317756872891465393370299906479421002402132270126224032852735469042674541103596182075113249909660942063284303501669607149749873644112640380199751093047740550533824541121351510494355318285429089462404133331315133610509198345506514465185848752765222567748154834548472577855972729786863539478037145600123348816681328826695554390490260237697369408524933100760846887331088769818116003878625981314480845838204128539139684940965398579257293044171296863348876787980927062119290653665618195019250723240109456701270404843293230551562175673828751705491127069622434798243655565299678411566038716004535123285772914466271464305192712479384657667985731908066936874921758796199007589815122040473345847300147906382349690578351679068336630242518325036453459883958765689479467737209815068582489768525328998567975877094835978744434035615179005591891765963837340345524159354190653783137891036499306903525706905086688735001886791665419568137933548105249283227035187621089885274189712525547857293854236896301790687792568721954431690307320045003142602367694041803371897544072557935899909869614861710629772118348014376806154210347436591409709184999070986918091578534230614669893998053960957745575640612042774860821253138833859213686166974984330985586036161637847638523325755641229767008046320363199597236545578682422067521030254222851193863383066446606571616711990794489969081956831605029590333001037768775584412356929331154409405460471209938836630290046798020216163635816192554003654834711182221234510869536103161419256149441823751489897492552106892050522824366151914252989378634598411774615393994065790473269991004705708651433425423002458018534114569686286563483406190239248455145914406128134026326426627410181864246395433270542437093534310602201890283843421178147375702538192136439600769346571142056563158109952718294593788621907356820935291862627803580505446207685068103051723716857708546547258489629677387759771260954586871961092106125238833784685332833697601055933790802433741419263917297802631498853312651875269076340970987951522494574709060237653015415994452863109718431637713082916550637834360736728485688411449952961083925685936923634330415680869924068898564654091904524234841372458949953931568029478404991755585468033217231652746415401551031030419472162613504724799947240131187248421383461816394330745113355524702251294008591206163084920133887114136056190955299552090087071765607885014501047145821547745969898536089308513212005301516261796250601163279489324558729641845595068353845744655929870622782264819609239024850107981913161065128795316529161535884959961894696361797591158410493361050760722170688269542473674381728032565055282924155737738576750960733198844011528193777367395163199611868364416770523900672991940501187037435745894409527151939669933485571295885963096632561053590062830616353653812272845104545863718121706202283991440417105515400313246210232866600972708998874000915514708620516762986690455562333908773218885185509443854573596739249147673802925664100267326228604573188613386886588507781022536292308876293228072420105279196771139119816921057600162281621799357776669563095183893014689560278180702036731361305027480466222005576224524344343221078279067793168127756675333000677547686334337589543153814828169814014527688837340197883628789211319637156173462614555229133315737957942245154017245208061660281833702543254313412881058005158311646643885822602439517628853588291084853976271878008876167119814756299858615655840508455813605591212991708981167246175905276760233799030024321800325988854397969440651659787632618810248862789790844257122148553682927006062460209350704282630310774045410550183736443718341919386093411268429117994729721619975948079093647504929247053630196784270968701342172383594545793748791033161741226409823797816000548188023279452884597710963781909583180038189162462234944334144668031565233260590789015931399798997641155210870382519022497861418648822926758491215252346485723841758400840078015111808444487643611194319717413428083514946707806274878691025430102143437061798324148294693754052661413652702830493019142434107670886262208271859760408210801587678877535798934671633769368662208440718128002958139959918206615678021644654669303006180500500714654672614560753867564209929291581362897294342420271247332359075000127452914442631380180677855611359679035145333301093333933071094451361243077159591610342531463374653001186289187167803186575467900925498783225647509324534823793673710476945424927135782519799966716921435537081937557777773345018756086014131753858056146985058561973263448430433907579403175784111752465312439165650128165361717931241984599765433556254099221365307244581110278565811087605084575756122792939503493189169099882951311539960376603163616202437937713622578492774814941922356137790905927455246095995169604569813935394992373064919795693115189010076794761543814450679994201398219197907550529458663206788003342050080099583363751369248244155544123771251326371029092182555543458596890175096597028556746101247809130191863010724941896567199402612629069299059708174630147567810331165787077952420213522540923083576888212712224156143052275113705810132558655637311843081909885472719505584742092894957303815744419126995033878388792151158263058517243922966421731637717892410732874384604051340328503903591141978455167796314605683356219910844509147144393608174208789486499893038927608139747822121289908700387640910262066717918879826879326261801857785583387737136580892266202588018131476365902583980412939238479789148745545171703894380922502834619205090981135417105354833803001721002064514922868573565118636804565827411283512696495704716975354871872251962682029261223780581148186866839725164047990754409835492036123763230137932372669953652628800390382329533554920693393878481353543229990173501922854565945444349160518093712945121783213518115932644292894747542729082537702347405716151184443665503402974404257755873329281738743841956500109654790126104864017126825571598990371521626348463253823095526785265550088210477242454108188786424359308626470011964662243140014915532227610649083312227040675784206756652816274684831316605951769453945075610307408038130989968796320461527094442944493489255027101878958618686409805582604749100452151462189413178044435637961380883258990459192802514995219299051532892774608369743064575689823373511690377493586876775043630040270509758104279860762928263924352668061369691507319602214517167042730680445959692366920778362390117821469182730052821603888667280404630280949902336265547535519670494687184524788695215781952935093291926888277788456728682375364781974028328321679498459329763381539509703623818565540492705228556821287426301746971942956071277387006285777114241986725108390679888363637004703673761515304547957312019190967694442105394469424704537669136224655557202580228563996442606260617873070965913196322468509665924202370026163029091650357246157890296935028396015682751061677865847671771770605407411859990804108342054279979252326648460738771405343882088511160348194904203729773287906322542425625669189335363838794008712468979031333720491106966691873526245262770512665475443153052541335008299602223738748090171383898482929409406918860509218411513579110956472778348632146113135216474469607172937951529493489911691830463521877072431697111073194448773615526405085662223452902750260787534909740835160497521263283447205780023494753114209391237378201624538208402035351102087509098024225362287707141990610412520104796439432659821159474602021179920375940780258407356167979598648732607758677920771070867562814251995981899207169573720258880336501686463195182630820374308534770276293422029636597192787464944099934876380529703768039748851137093681986383109164378013595748881565967900123447990708189313224051303784850474880370619755195932347240591947645923300466603873903925513688949603793298667940753516850231514197864582536336296545202113366914518586173160782134545257367038821091386131980287151341021639589270804328434710642397829151136893372454717447614074695366964788999770499128595753181522095339574576243881521653745149705795106202193238508985632934032854669796999597540066603836281751303756469159559255570147799037054530383960894840314882639259159013321036240940193834325733402598393645463757768340316284099326732967753855228962848473059360787302823927579761662551962284438798014997401738746314635509536345951245351815119115001743138452529868011926261627502780415717327386898170310952683566347762191970784465787829242719079028591227911385144746037668785055786941151056153194514548793586464893178806246432907861563439045497705373025415601328441207419306456325169579359753293513999411165975529654734496684643963032149348062258992154161749890543347667426048613910287171909888545357869742604764684118934454767919473530339027965688148080390651777572709202143100917702651642228476495610769719543930154043882301738043890799661797722382524213967475146501869059492208178263464594610643577084813952116416722131858264761675299626347910234808589178508729969534883238216878693359930378207857098923396829072527759221323983964706232796351168231634244701773288041855747640101490221898276065513389740789411390921819717438226783130628494913116252488158868800118497616538077949008280484016290477455314561625772656423568966092248993602954575267576316448401636452173723037622404015735595103654199817299187967454666055370735744753931679407803742690073533444004463343584797755704255656388958656972134909874658721080770536709041455117117287539872137955425883726709928404599473228049385592664470409994237083448241652589049397522690542287560913148410353848110936358446849369849218677568093640140390211076633013939254464090686465019032851302803087858156887116927811372696986892172355849471041779722821879903426875906567773208801668821007502532144727022464259530080755367663334536196382018573895170828097905269800133573966699801183159380775230129933565381922766770740720182945622072264248284304370547411461946560714451422471879242641868121557377699626814193099850949263651400917567812225879948724107829805262849509258331739624382757247288457682709817986239073588444595037584903628456526497535875241183573298473610112426096213158246076474899121137031421185337280138776088799533833884752830841468941843280274701377754438757509832974306994557984793482303269727482788465394319057357306683582502871421734105483871777174843514553860328690875459014225602914393614880929667543397712661737762210510042240202292663213415616359132391328034966908047138197510342833726298851395485470075026094968259809334330784306324347402841170907788961875612847226083724955202482793295606708624654688316480289532987862923684165187385113764599893796894987119758821169269651546309750292305028212148876315105522475960066790417249565510077923023132840630605451785406655627870861905211262493448811976133343671870937891954629365825129843889587519070228883111984678628020881430706164269219586346654478236145295189560962506486549105691139906495771362250397242340723477295568049408862195244314261543996958013655277593201576286069841366566163196619679374036894482327593413993713560761667988903292629448793201561981208769565081025038452895526097652245117559107318559762552565472067953098291235240566334411240427410742050099618798811435676248688724686492206686938482527309932747158147068291501624219099744257584125514942981200594183402068278393484915834292666578025886685144429299436013659841027025984989066807251027337078785561813829087048922659087961149222779921937218103923531131202887477803299680989740195579717391550533898990663749724299741511939569643093368178503760378919328948808856241233272693779064564450589696187553364464082751118758252205793402523226934868218706590207408276251246391564295487591511999860419477732630448893476079798742630200772642792427818818811842494562837686377288561627900871179288413982717950184976260519583036428273501324822280666796774414145426535040504272157314883862678648166212122728058567864890679271930002003770784119444262884393397625662588564836630485870427455594145295123158973016955193683343537958351875302955158697097350671125494767107253264038316470909623150141784219748058833076060507774240807381026063931741473327028542416221056437105754352423191547877888241780911636544166530396053766623280584664117902203613191620726377874401084307964800826730052817339909703776851218384159263890858061314541650949367798949965974209597252556315273586901950910358554488292892359152093556166054009305698573107197936848026794175648631448310002956372106555260435800806660727437371655229921014248714173953016273929102257851846952974278187000908166528543088974022640988571971926430360036230199316504552347007748165890593241974070974121209078946578606793810277857174651847751100505604870510957458685488912463820340532253980015187143459237939216238241426176720276147632041967916381977066709205710087740904840797743656724547533268514521991961399014780646881760045457698940075887721820471197088295396044331736608234025632324888227111887071102725057824233230887656309021225880939213703324756225908335961212328972783779823070038939543700683311069863377527160339459754111154968320817619311134540169628860476944222007024197534727500492734058549995098294643530728830012148455585408989520624187276526286013480997080711505396026800151741767189818063934194213718285174431715587596645603970751757774784491997213763542100887678034082105487216331871121026696752703308588630934687772511548303393763504628098331194799691760820504316016022595558005551501410180536298834169044271813609840656230622993667400448714719324160573388820835880183929224556437139506936372886277704235842726912671925355297977192470511982454570021092431796907966470430776469289847714080271620918952380113438802245309712585179310594514929221271170431215833853062808426088053930891183316719772432447490183922781327258699272831648227542754782306742955293504290395278122215046420376536925595958021101544453391524595732635214369069963419002272413867070654426308423103875799381462847788283913523021538720473904019344334979388208970132550743915785537270491774255184873420025426384591841912729921710692012977893585556345226217913791176405211981317695223042968211971005671003270427332104561873638051667538852881735355143463590841881232347052280368010087116704958252112492268314764075907365671500807138867562143704692157992211048585536573211439608778883636796006415553656265644143088014648032973584093507534968420470848063391980340020873719287668110983738384491862018838230309100191115088176553737106140709852807930601332396778857980323024720364810576511338309700508090904024444225794256310900983972278851899623552689163173399342553656771940090938414169386908874884514998226634640236525900316818663833757608012762514710171769422578969377438310804446252800162652535081897442613327766991449251478142878675711074013973648214164099827583566621080923728310298802721554746255041546180678318546662086712628193344123483462764971229811921258656277156406847131622421066783113345129155905971081463177038606376549078970006340895254524529618202027543108826037382741079892648060283362692934067535037039719443841382450458470559948627175073793328580681292528771992847672574882959484233993082218479296069825464978148599772131965524191799210676420243504390665814329738654704609125307952876899134814842891188765220732041044865414209827519152197381459837220924721945697632442241497271466635712512285618157372844289668124677227295425327847657484819150669562050500267442419651028550217385296320154765603632955413136932797072068429573009114746699098278337743872048349180070946362779343011758467235444216041778702175179385238317062409762783415562013035221726141627873310012022198171520768771189798675453280654572442244170676906365800384118792028554459504956303384945395531910096421580220294091879363466454169013305728249203584674963341001025117811240091784049475473180270626331908023145751499986302931290782647137081237656026890515471595889425671354369505477232797770296307237139419859173263332424757007443434348710651638568193700527446901030353499112353841159675348195170088484367439894436320652295155682627302674599701016514473102009139500240901138904139049592304613390799900686251735000647112674675842073403488180256725717848209348458007556232757314685899449383146321223533492135690901476317429301971462842412571122582169756453054888298695012146937572494845256029000896444851630647028958341293913244324857823497646727960335585913554065713716843605440626702057288872983118167623996572579251741616201982420819904320080193299844713318529972954427225533687794653752071905186304150427157423033636611341186957885422438345353958054543135690473902852123413121418173909449886227705672366594213602384751413386066275507539770968717757143025118102395752288559285505889150288011266804392821547196953488285763629260788845349906303607198159038405407803838773377808581453081430093760705029593925634687876394790415863727626431361745868719552826799111326419647401177074041096726685533257993856217687879592121425213126697348251029122807154142227405273189625098746795219332488700702362520625708310011861540062388591333131177091647745539009830485309639633657224905230379563999643757860841902809076899926618373519967032834909342844634590716900306240261766508287938849230199219123485159049874485113545822100927372267859542392000940230043900623946507174548142264860478284323777370779350430534042138428477305685248838586736011638508982264816271807914197093374661221637255623117499673936078853155804924861038572298373214817788844132708525350979115597162302236082534765992915985912647617306516964795926691517177080735364149418008099900508303482035569984015588130442459853004913819105470072285653404750697075258768870635316472827322955540676309457375080227508768919052614911155888780888493878222266399636569044453700627472790910875858949345057278489663377667948618002499875900520536822044561761404965238708771025508169019272813631593217258033077271261044459749165274811224838077835592189958350113886334743159719163108212816462379612690702999071176693167154679959819662334615827089151400945406050932828466174471497119098684657344936812222431281169278402930000504467145725061286095515204483708056184682560527083882870051095410699758691165904934627695034094711756149625436069641216104357298949375211576155519599858138271989360168553366096378567565437462271171682633124996692672856281409448069852750688601372545353176517516648662827771863764665860306780636584302618787329887187993149009515894894570122603670437431217525862713844660831606048756481490613934677136409587585887611169378414349277126789748230120088337571839255347951227599790622466637392935854570634397150632525921792412303717234119912375017604599657031867050892050773312951174042318955563561956955200244830075764219295991190183810229058420395798065317863517364460614441210242477848130809546543574691599235513465870388464339203247352374320332500015953896441832469927939626090908878165891864587920500477125054615629975079158193600261486495084238602477893833722646595059207318675476717899166559509390537667831730298563218030712395067654997241690284194098927710298714402825748194459356270367287488251013370369748136695170121211961313215371809630627125859208674663996333411768202588399835420464390092357806491275756470952040804000371693069459670097521461261745209704035818492976897306439192279498512521848389656488292133155225203980189376636909653326030716894596684986713285051706118893818892118515009644288959232443421201988057507537154419941502430981236262827594513482955698401435243677217794088864068337517043521415908765502562270810426325466961434042869642520786890853737112749378541486892495642061147379333754022086154489934669918510257129431436275763902330607742906063437658960619492894046178340959430870770064763194126322774399609436056509849855936873443052496311249099989141505284930945343516705068435177846020464350457030338544331152523639354993129658998397676593392707166650869637462672652594199652268550373785369943406209160963660692414789544657425425642802475947507955973744413508230386682706084711448221044665236408516546798692704801633731554488666897780578286936345640957755425292028283065108633226558012235214842024675414982898429084062345493945668795618072224397218099836984427736471952709507347203232688323471257950165637457567095778522578585911010565779357241778033773595977648814009972865060154061057038363564091457338896837247761661604508399396728216889848501409203613496912040690635530678691756838872620559798611924079634705755818669847707076163939453784009907487509478579844152896887162154383319194846883051327736701384914655451323528242230720495743971232342849944615006715342839619695203419984903886435619651649864473020770139375364425856315095615324348786776372456296903389727012033549827154319686641794268245209980236400781491579288542995388103196221242681110502790448216578422634976095043743571648978159492027552397694621204850744232641805697339987482363599426943489253430291829935436427121041365853975517248791707705471054977544466225506379464911619187857847619922178774283083839775414385203859360376662323507239284292849300856386016842620602950299035035200682602332418130159779649683701902166806596830144019545760237825239337482623742825534899731849829506398272655210444986283895458265625383398232300636448341813308564910211068393036310088962666533498853981009810974726653866067124510517607778868447756138052129786590292172377004279006445721373154059216353645363400455631950735959596034145999899904535584017409086981346599651602387616521064420847855570077651034621147040748636461234195441689881046099104439806462061715308587823312073436231051472000732212021183579352564643710426112354983351026229322474737373416694861948835182121341475621875949251215404887716989283962744877202115655247081514464459294813166519898689028229410931180646023732375679997839638173030935489847605517747161260207004814097775727019032218789927619756416620856400402348551394570039452437992220809940916297207971284932742013912786906176445159299038323980449906732354076869278189835745932506441481658697754796702205655312229733756491805429528952344411869573828685711947677192355483687737095396877529090102170754323145710857075587221525871007865276399254716750380288762341264546413586500475575263438843039608728148710699359458443549274066560135969489105858277088526540888264264748009985847460608084421468226062194201072138116822147058761280739318682045167300352253512000382283828095258985197630030946660159382432195519438604062944531500965094693539403385175893667620119555488959971027674823771828545367752164063859697290967526848781211720708116584757983874790029593958885574000395593315324311736070458562007096466529863932379820980669885121639996663072997051468426082144129456971087008329705513928338437813710749719361332843405960995749497936375351090895192728679829187943336315875977781887726953294279996537437306759022242618138442873294923045093541782636399696454565742133078905675276261579674843282519119214187832511461894280171447924320788943627895530192540165913147644749270689717796650308031695368166674835075975690897095936683937548337960821102742804836726269369445886428144760469647666334289923977801036208356158261077447886079137035931640773386231189217751561192911990755113851430183124235135748883890307470371405410302926226812278695337514861933406724099847713692300875973592549286486788719674179445461814334681913617619222301532001465817660940435666462367540828193177539039701288426096009507115693997661728465310804140970564725126285520398575271848959265469675425981760770110868134045320997701148137376087734597649210226088598820297558363536633547793702764556510504452702952740464205280490512795857181822163200913079783960250873101084115734792055708189111597181840397607181853020292297180824391963237346743100747706817273062837109767700013128494338523526009093178703007550468660817802915060545541627528345843055844548508638688455739961047146808522472251916770781900612663017859933955248072067496977888567593133036149289789190668133092687792979329024351229981869762372276671571473444240482337381916087297165471272546909777885229571290156093355251587631699827607335106809900266641527445442578086295662623171869416540548303526086589255623335440656117620439445959425567813662438448889143228788328294973639251273238785916587322095958263497544094728162352627175527273456254129599607614884339484742712738907469352600329591203254832213619305561315357334240389501646822692479728229085143145283866563907554557645300532553706425067565977306715523226061130012025692143354958640708092612864438619733990477648131583810634488029952691372528605739112147619310871151125228282098287029797927564229780895651570833593841165377629538908027579537003674303651180690694030817389125501541670943413111170337303892396235724450767595562260366024626839624745676175559383946880472528885753643375288904271754343978217816993608643655264815993799148456373023252956926572136157423728325582418948419704066354697679875209344364136512082722118522526197495366784023057429528547149102879593933340208818514016350493431445114666579462776526282546175682032311193932297268278642986231305300795197592389727374161287929502002180895339780899985157922438734285053026917698237635518398164042501086100339605314963002566600220761665664530679077094041450349190202840097989586164446171314090697968855141136912830282002114960269886896715878255271721932677039387427427844547187454823834706581236711235498336490339024911785232578992851310438180802716191347571093578372799219514948723677179829406950778827152436274049396278629544371295902344132630214088802639554033844816195689326770149812966624918044199866268327703937002946834319439864077005752386185470018068787495238043902400736041791341706564742780199171780184824478576629615045033879128033202360448825974790134117156182753692765694300510636281931909906684279201563108128623885988524783644549843573277384652862335979220572375098124227147738214730790029816908530550946697497637850131308631266359326554361484905595449297653206441808771284540367846893065444868623526479900044826888604952442824546880183876449182681463835384686227385177005015290514982814990324895854148346277383908942629239951316489516258775172682403903089618611114246903438382335711906099211361863070136886881820709273159603663995121182532376087077993021791724974251549479765702355244180682670552860226032932846015333075940508713492995761028404457489284265163892692781425872874984646005762016787161969596468681468616199086614506972287898177479326899199732228725821906964195710641376556684641124115184959407504642743319536333655588961660877632418313095874945012142822743891420735120399234389315684668239872476568499865171981660190244027853825471863897215575268488092704124257994467812213771952571618935484574115819827944356942909953304569847034323413714788087031790227877363512798165979745976393872483785569177334934627952665284705241071897834000160843018961393105471559828511773478411985230620162527990315892575044304518033229330480610522096499503354859687757493999339494762647374849668906093591053074943367527621891279191701505625565941329980968408396628067093385307904778686591423826093343014795179486438287016138734799157836272803532897052382923102748044224100268122414328922214584491791443756518615025870943717345100249722813067636390585736249348426387552752293094099560406628155709462306570600303374763511364043793637255205328243822808487907587448150985393180962045347282285108777454900916462709618539971994785093626063887566049785823299864950249303362642981747507112764621035984327252135486913327137998341405805082328301384463263850563157110412939161189577657864227712408504913668261633508478898569741685372144020096467324306377843833488701747973322560911441805230907233344377842605588795514344043963197046356549360589047825711744702589034575971959496911702905487077235143607653263017097635999879741985758327748560535297182312840182506189363878702780609559463901932236484260281017414958897163324647237543554630425317530558939643470173196063773054314384681269698443161686684179677673248104846147447853225924597518064707564617040133740838639648430700502254961919588059594309267498079697743430404241562374098997988621182418138820654782934639274600584649434946414982544206338508295767553042122183488558464971406797525708154802793148475325168551724247325017419648717877229531198521467188168204055304547226429374995396121046314705919960331411149722780946806859364796734063667740082390785020481853315443028212774594979774415680073150445412729188488938654745901517327762062762702645805928692167732797306510522457604447100257350087927740349179914164603212741250358321690259984024694052464391302489168145394534346021770811407343160172332015956309043768104690522928750792018735539808734148543223577590717297750165140600900952232896684089615040363744618690212220817192047433479039569788007945240021670163324089638744432272048167779110692616921688200497123500012641965792914725857711368446112234108562971017292807561041900666372631866223953015686932847187570675346247689586758412284613888554048579666692185787058922211639244151741371680257818792730760187806366250811422743765455118627470680718426517513418758716054333947789559645009562957587197513433802242769034650694625520659572034804589262048073008892971143734438893884112871477511662562982245930752605063078385065140919764468951267103120793573782694309871123135916344575299742907008322294936638802047294102972931147847329191512635921606252596513560284163077615556501544979229208925382052459418689075971353551018420644517952855745802485826719315476962246764157128810624303997121538925472971915591605903928535427295224689127220642357434895647810109661452533584550844934971160268487579133460075921285305466930613267420171947531292207563129398429844557221189469794554687815963211933061164804270923749605144522460534694174352775004760001484703203679133785558369928740903305571818326412954918312852663826266324261121582527668911056085760537927362834710532895386211212169514161407913188139940077892473843897235712386550701963999881286389953880818659213958859286851122242107576640677363177184245658142230539457066669798132241614968316462345560773311550723513606764611587989140326429711755292642243103103850204586784495318972894327577293630686217551456833096051450862221979598427815277063129186293643978783547181004782868034896183839147189456918337204509846177231991251192171310762371638264031340796827000724561335259280665822103646757237796705686199256034340215306288542704609650926064783101857718707865952967218478475669505246331869504228633565221329741681303199543051841144804196078253745997062436277626889550378071442647192382187807179455383333921283652621041465231575318450886895549744259213437237950311841513697971548300215354485029984056669029865585645334629613631603604659575187474816792468124906848619659667585068290428749259832688661774344414820215427867898774865316700144943229504494443876097479523822167140271028379495379222691765552485349666515823672891889733822071835377591615153444531978384502739975829909205427681197393608945349023256728620467266979835996723177092522176627060772058826687419772061239899907718525447324532271387990445308047086373349890245247137532517196804478413696045223281858436077600875119569966150593660403782692202933559544259463934045587284081660314718492611812579120333848887873431875674138257851466093325026735749792296771195975641743293219184115207893478505667189711334861022998891004020154475419122125070554078591796290628532372790910759702570202257626507732297672270035665028947638231343528306181621527898056687225307001975014182889964577522151993855747175868569678032096181903304029624364733207572277995961921292892575238948110710481278853712764798750410324485433040961912055657871515059196672161373320401575213035923028810367971122946216424606372889183742074975858092098014611063051201957486411257448145423097851237096090919196627164925056751576764307772312954378387403173546195312843658038424376313146481702420754685542708041726333256799336728883585322754882831049571987250091778991999760538782098678101578670501637858442800311051014121036134937762895235634586669834582537049905566909494219019513797568739638083884626390663954091999141214630990521046142153437828291980589700610485190196512737473444235580074727309557212858378862419936248783813638605258849466346060589732853439009543888000208482782314470289516494901296500910978578077843224350039572123070977890876018465313427850330175224438520851334631341431725144423809227659570060184208186143674789422332009628812886880075761615774420658558868560710610603045582110750119802027284458737195798861183449203256522393391366947509482787035458397055714600482418527494664684282221118842329293858508045636248571103847110161890489894796862925497687638850245632451657576403296328732525452144724945487877341205520065511698485905788866603577974206591376740522392914617354203057575065826176289949169900254216877584575877380959815689383555303047163903866325398188341034337349314130092343646156270636532006184209331087832095679006021476381547965998053327044216793851175594453781864380080881706250880000824744493745753304289159974879930554791030264539721091081302559256420839391506825669494536621467986298473016744597872561169951823679010165879623102253193706425536545407591107394913536797088785701735889644295641608797650951917288114711845449488318012181694665334386477389569811726216176718046050931090740789063467357361335892581407206482013994572818886846374573679122423057884677106166709869109984276269792366427158971220297173227365113114318231696322487752062623099233002971913012625768367304568930743266050497518438401337122153545894945288202734374897840413643959584805964514294544013440421199055878777034118502890200436589579169487407850377792195157128196907412034901772216073440003914076237393672072580606070935608133777980333291198772425475821881038794561668643254522634466049425317058670073346481550602919894540030205564114198454454467513863994337383699633180222418239623194888473567434080182767894637875714627866763793622191957050924825957829456534396654894522352916790018021720935484291813330507866282445596404225631782185323786051638897525468614327504045242386994661165624612721265151727486417896198472301189118963782420744429104603074953575299226925019981969524390122882674233942397154052161953472057732241598989527816163690390641891281073061756868748297059854761760863264795353993546223584769064327941558387266876956899508860664858180694343066174912395105187014889718420644479617348545005813193877716741764258437636037101315624076907733522838730107781831302677345175980863944714607335517591947241239323480844777322756646214240576798206199177342381928181909441682868958485165020421478314581852978491168098545708660896341926016515480658187454597035662596686859087225804912437875036096740101834178672783766162781505194745301727066250699647731428666310283764038305805272444217237180582291444747532893813362034369859041246458009286583481557644570389540939535697457594401520210676338746451948841906004344194632626178818190285731953371542807574819106490395286870804342824419806110769551665003588570925697479322526984405030741155470648680341634704774126997155503563864429762823560681522214815522142406843254693798041106824851857625378663469595083743689719335183310453110154649499391713704145430861718339609196772787975415359859419490163502153929392749059684500166016178782747573783177833377203786870973949648295172363281640871698769229004546684943960519562504501217805941421574482688750145310208242832365489136399850592157749415892400099585141017020391398243116595520682736062880452028771271715642875403771160296890534447781969845499107618129218703846739764417896316424736589325615758932372401473225775334277084777060001209273081987823627434983744904313924415072627256124106661903569944266930120143485947320338238347772913815412751977305472275124448408657805768966537619547684505357753189385457884679731678979589791100071478039507067267834262886997027748473742499850211466786970219378544042881318691801368178950186509995355499521827255499365050054292224306127869101347189090721089837255965046384833901897804209629724623355843692056121112063349465015324011478894971046288453715742724033008485718442621552062740312863636296600988368777445547017334732926822807968923200578990924443387622547038423166505167750874392746123873510900086852012999244001645755864510501646763152662455646864673421790966886686307269913143556645652482296527989892786414411374053375565787745655162663455283049592097806648639239636300754635205220600381080390301835930137363333292633309414690302175129983325850714187554814682786337127599478027632640048288386873695760597014931649003456577722685554885109408055938016327963360871388392418591985010123795975137560632680698053236024203106164149796258705023860628003016776006600381273271745282999144474375041637063317527943233563990318268924564995219145968396667001870247204018946660280165441560180537180199230828018622275643549371371005294194043752835589852937740964184762687308289986528049050439519150676298148389121000485368634699502499910827294078543656143062427466843451435063834342858861901599714545518704582067419031992846963901595415857429216522164922069090704043062624428940190717937477685498577847063976291829050224268069126513632701618314544365124039647006009897738269002689739343606036907204843824769347478118743364571633661108463880513202385709366071303428236484686634662456660494524022649030901288335360970038122676563317695799779753904739440961652529281452402779087923071403490778691881546826256123771851372410661118516408294676941325307161841447329494693031668109936977348397289356646768798758319967050863403523935392213593125810617820542507556992691946549721964244620802428173216704096367769264626032591444227057447742894790685291539660787205446638194314475690929185020052859813895414875579698396443935654898808148417760350260015978638184232004414239022652523652987616546175203256712055929683951218936358085546257614743024531585833343587381525017372366641070889895653182825089624732127134635287743365492914266313934659365966993450688826248326152614695806397342053275020751650058001482751604147919245766986596401240631034090782398725284643918681309526538738663151944276503771338923559320075064529835017028394626378606751795871361971439414294653266463504523870574003289898507480070698446078737580024170312963453807742350449649630197400590721767504044670052285248123281321351153386723317081077728740036065192086705289142598143960865672766568260405563803988386931424582399038302470080587730390830849101935764608704250314437854228655197627266571130765667185182244218310294406630914804133800346366379782470645409447777926237731030080763986863850430198709804860685966933072976686070367720275590654495350440039112116073997011418165528706386967798659770926921585146096069336405475361595253606508404164272772282380254876116853736976548771231626681862964921296474919891877107753759546823797322785364883384104052228671117419706132663932403841775514166600206236786663034947133913711346467901409438573106846136175179270143066764441514065984358566190174696241511552399004336853939152400625244410284116059108305799302977341264513749021037077230192553629384503242795103779022542796606856827673927326927176314882331860869623206020337655591922554934403173989298372836684571821372530214971228631748815579388968718627816815633763682105533302839833686085855298293057423124489373984373108831044840645730838556522794003457275545968776767275349208842953236054956511683670004516570847368794060007237195728495861263412459757477392415961731713309597805846842914032893451925920749894595403192958074565600723227631833354787420174242779281340013630850875822793045025040598851819706547775177161965270499445541302730599805560290895360289478225172957807240360104050960336066094948220597800314549245551961665027984077538496986100326739235915918962566150986025081677375427638056207457147106288665022361004805989847802492595879761076158763580333339180829052020584540397976496488670913151461941054426043995737014627702560635139472106684317353478336311705376481606124679446854978169106623748506406795415714222699731827694332625576600864610431054667508981448345849148818845806180122984732807593655108115820533288515273476170530420891700046972663221889616858364352448863617989777242753446289632726209945738043018334994350323129519471936702432739396285866414503871881424344494113401792644180046254774635770851897709377760651995752640763819641930588227401011327413328979682600272482340700957295177527872987285882516276952773679039102407217801578776392334533217609524105177129831168049480097767167279034098003604719036888293155265439075573638915916111503195335393486852029489903156950096048658976709687539844991564253085312039427820687095896925549387036351252730235036718115110866166444369505526781389736883572141447451259762100116615495432462731246961117425734067653868807156549923207133824326338690864774698701544565550226389787030964025586417268950007281973871115744881284144047285060392583063626396554711077681446140985140570903487992151447089645788136543689596640976416546363222849927062540668099009901284627040234799455216860836899477860653202543727723301373247006706461380194859421851976850803076611279430203541213546141555815817414224204459335202941853069021801712334826839310937321944173005611200338618578894850481140937441217701413571518800073855930645382153606355482271566356741067663891014329887623824467486370642362862407836882204273433420825935510265399615534398314241666565220636720522043734690331560662033766332821098268416755147408262569494110001538851862732045405774282356583010520351755933728247206658698871257383638679764350130835270530030136454872573214576325662983464634744265498385341400476271619322544755858422738158198624298964850886224004853056132735791104232594238371259633771568637108599854953956502554777974608708534882329661019981194283343149075280511341969148388596225451316418959904920870658172105876732325230742279794221703119270900010710214221209663688108929895849947502863038041727364590756446825391165534422662005340858554546494025018487218480106654035559976626361394676513491090768743501007246866053953701829487779540108773679356561829432547844095268353519820258778528839463176696918015649560896999168359205496430828702539065740054735097523201086879893140823813528529278005602898088017704035794565061471737443337287555619696190321754984584250045729209620817366499874129643819885053149702512788860490564000501856307514183893618148465856758741045385629629245881185116890469016686663691981671591006181681169336213306842856088350758299107939889633748244496450158034577800376738141294258052990068230352456426319362634998032650727492838233481436439419545058119092207295048916109746912352983952025111272302742235190028987459868055946298373373831098342696254793521142063509056165123426366115381909565208003861132738467686091872868182003319301055199419087440759811877770984372378503808345443028429065651983251838786345649974686342526134060846883915258295726034955184683472456298711946155299821257159208664777358456671199513644144770163207135328180121269575797220574562924770215674061208787850365268358633326244320827239022010801681028734632099308103259340589672529219654722226995221007002711724210073881958576219221089368240584210586155461682602467950642589018132902159628694092256752826654707815750585759312230408608392124509875453532975196324460253535541921111868635690516969944587013668692969790635842689906339503014107989600986324280962964706932361363705814708629826440171012300583021052505926611460684887340306117150578397228021376435162995061179556322693055271123182974537971430683915159154210368236225926513258273795413195722342076852786033566581202820134177995916622554427981825469791223736888750545522843883569142399360222096935626301855746601857742446810275357115385016837976792559404517014352158185111878075385267609586974526419382935809412465129000752401923645174338870999127127394998164011511282454885079527380524399836110428966849866139584011782399600060911703961913049695011528558183909226073199944298595746796680102252810461193360034664650004939472344285775478584363626333845983502159214166089532393437870601145750391035354776314928172227381623962143503737767934811414061387307857746204674109748287774547737605953151916457644361598533571892789438228899864143699210891051919244224574029176961902048444357728902671972241223833898014373274362758892234298374401706884015015959421922095614481012281646289362704937028699531902211542521186779492561120239149311043697998433842704410268627696508662352885425241282050373039750756644298686349118283099208744312058426982956454629946787480898303391156287383289009173520808899156666803593212834364805522326798478656423227722373217015487428250623905427404529201962607028658846726544661607424632933245191055267498950296815692458055268109762938251948095179191274227361474813080569077045315092371321378902538846602019343272441196645530765055274598962109695281833028703502795728712513916953370547055457410848715505153986073072395576646801854940652320808420023806322341870060756174900321972164120062934257807178143552154651651369903030919960843838655553538652196772472345796549061501971134812959130885999030845459677299616183732731674571679567793100043130330346884756724504312860145412601780937869364621503957710759052181882170798177352343073497796144279309227632682958780313596389103549307583008768317784857165478756712451304559290975267131500446252251770122995767759315093767603995120464446090501023708554143771216465731950759087656355211472798990413693057530920220462358542045843149320199616137339508565902070715873159192839509750886208393431755443609066900010887459715783829802893316172165879558895662505088591232029690785563632637548897854840238229088688007730361126314637154983216140733966730698598100969801639884287040877535855705944992387680824994553732845411757464821396106882505870985839475682123676137773032133970469205973649187512177330826534578231342012078295977524787598183247999658734693014913288646448979009658059453988199779645076659391160457069054633386684500338416824005242217225131533717440223276276768836216136423789278671484125543375192591627134895097222418127001443445672327739480151427019940158515095443046519850074493076429997293544823587984309270724100771461154490118309579869154004301000485953723510436793612274838734596319078087651875090088940411854230648595038209562338400143915478342015731211258100804495288029420519981576401188880345827400967297029913022257044543661324211698623633637394012456729847988750603020203205751046742200147489562846752218153512209371511025687503566092767327207422635171677348655253956983225229813531931668466398214188320340890185748694206059798301122460234727463361010234895639702118559700871783429694080662802597534366851283961720073015439646373268900808879085221879703294844463318990348885024726809510063321214731556769477108240167868342852323785558648531997505546150985091997886392241702612270640835605769083071134087084634720273624463942082923421430537434637248727159597200380943874286273509090857192267763529158259856858223365095094257697595463730503146789510926875052715131537127102870141579110008060093504132741251994314429092995684456009980162258193492766597463805161260344723363739083332994277244656478965875801732548443519503580347006384476439989852554890253505506520074120749255697951622882217087750975358659466970761859309535297672972570262997131196137950697285110340537991721976214726512532400442659357468953533501300543412902448665743599336102361345156287647243352018908670813082317981011530557827334341322072262288447341191866246191653237853703730712076086746072476701782005820235383189137386214022630578468791102176863992499543192844606054730839424235682391495969178764530435111633645855818106219932596287830899902973198532908146343644339858428892066573992259603697512268956924054176290869937563186019839917080660258755776452082649766135566899736680064361216080642185073948507252309319395837726715401373552029060635678822513437035990495830871360615504079774842910478786956906240388505913300208638353904279335435083814186445529477220540915043442129309246214480647003282476319759824315553581373731127208035065881780570062010192390001171111183838440562901896083714427847716066221325473785883406779767950510414905999403816737379876958395323526160907314446475711265291503423522041249396152703590635726114124686887735641030440488158808329490994009544228430238778541068342794108873059907560156491745636902815983945751719465076515769116866920140755670808931143046805767903590073316298196541278895494284205972414070915618164848514855419437035250183962293920685276870915837241374911554715302989124450671769984880560801770113045250481283589405194805827824276444428571971989831599128420147078413431121735098193577977821006722451763603050000472980624516821147160025161205615015862128739371409875548596207323166177812281082453971751860584588860471053478272818807454787089899761766126421550100004541496263626468953264732357193800508832124269330898483129514572217646911298730940633641339854314891539947838974810244174131907653712314272993868542904135719698575228044266540352930173029356887626569177070383934259817729955566740219704154698316422789347583576184455460463040878487958390853705562395622553906946379847777648930768138875460787724471408938153859637078345680178487764363635061202530054429983829966007411568409677873546868956594277612053652197878442605358639349268083979194736103878262377183002255048504970149847137525756117400324430798312775731340298298777472331205022140327869909249032611717779387570823581868887495449207378950968578734910687451107031112787050228114223368449960546667978054600140885944599237364033924563750612677426380844853359309436518305805371660731844613450093846146727326034362859071084412892197011419463463832318732098920038497323922010949166792940860678889444806190845048961165443780834000014507863823291018786983819143430089017538246097115014274191023162632793828717696653730982678481839008099647481208641275098179374556681003882178222978616195445436107796842301298894076052859637388905466926744998474388869731134369822688365786695740946968425298306053666255245846634563337235784750236362209167873191998286217054885464723718577318025886645138432373386095821773792625289129741466670020877727737123480716529633136906998910432446384849512727482459234967218304125547336238316757317916956995694674115386069872057760143494992461884401710186611281077772617059216622382780306337888994343803286719774231246708435796439609459532903458130439925205358427462383455882634988376523191899035753079405995734273625681906147237371257914387398184000312834294391041428653445791142507855884363218457316311433299361491886038553727438500291687951997274240009140485633479302163593202411964611706693393876663219788111761784728935049865354473693422065390475351502238976211821637373851731371290197930224141119135927008247891508850096368081478711326260299301989943560319787761882810475084451922270471835100146795439217000473819961707563926433307007379987874985900839330354104157764159543319438756643955098204588699085010848466001509274645044877598589299406266378511395292076594989699060333129516966295605064250608265563074689664348934164607908727660521371951765444367187990047382878501861001001262800409502684883979184820896340489489836194049328326249338161835888898126603381506227522923053769372361953460053928347285003546382864449722218397754822709084580681026022371133543400777468124365123596184805153902945907717587507906252584827106618516240651451117289410226340342842096438839911259003464464582784428707276006889446552077915760683910219164404338280399475067090701208230616383468952695819173546016987778880669062444868538423869937395437929484348480677281853843231558651197688249940621432135155248246329808803490707824191901302164001048535658890762327585306622185276327164633933515344167369058312070465724503584303649571980586254505802961262560405752583593395385940688456100473368362328398195969157807899029486614297520696407514114033416658646114715004336433745262528059627870335984435486949033040118569737613162202602572204066998541092530093778054946932843097889841259967955568870370318813025723986286145897494116858330925908807102019696245854663424563247151076509834088693167144235051818688791235142932801397771922807775399430577653232918305996088974812602688602999069688268642570718528184970792987376150609124098138934350475330094745779947872571164140708366366367474981636168873289885230094609534894305326939955784322733721090302791392408527454258986824935895918520800572341392380668739741751589514895210641596157718459820699996114285314077501108172613560686654942816535187682529736332153435370455897096971715081027838765460496419131446496213881836484883798428173120953994048062795922995939125668040689445031906028674263960002418735662416093543519509352938258302058220422037274866570880191180241464510210091102256653008325275705990015370206225769041337967704982810219504742078052967749296907667247796265704826428177599918022827502812827467460239015775819295140973762814018871058775735556427154568434431909588181394576080445993022545012567555207353647560475474384923964889734962603099593745955425967777899255374243670909969427065065248359305243716882049751244296463888402162350919989779901337253485301752137226581738907418920825637167160561899810791012659084669074969197747573318714660263234799985982127320298338299621215605209512909053747243211847901861873290100528876384105599161473573947095780867763103056091669644653737660190002786580978182532166856075928100390833804600609114861739438627846514348873753889795704441640062249684489643606510637549065839159306170528773468657119397073150098094533913898989422914110432544566766596473028238172302486116211883479814654618807070465352736929956907311565041703450194827742138479816433244251525245281652895737669497449730886576356750892058681782821875469817784717764808317829605314557867128600643404985014285225102533131156630443574568969967282691459928899334843524889703099262652683495270400668105215981741258050363159255444729342936687962182559199952627289101741480533812174361145788689346826217913737833018004464077015966484749518278946025302384277191222370887307913277736475762522759471558516254154568988881415328489660981521794857328980551927659776650395700321801415242133954380963770266877255893429354500260328877597708481533447579835846365936561281292955428240169743821528247990807186480387402984102991789593362367818223109821690999692314946882627322627891615995462286787934066253471875635898642925785288659046382385039857777442227324220497042957095862440055424348121143552599948250184613960445117668382224555430247948469695194144510467899763158907779670612961373712606189810870633171766407006865684383173127945496504149108333668726024015948290052005542001773126772949915512972654486408704532033878155797112764042344290715111407033429858335012687749429057201751224187790081615582377285683203836999201920236806094500190807309221247514397392153300904371615282444875946566005728412747046431142589225292526224142993916764651777551007264320848081372639809199168095503714987754908473010044766935546803383222506167462266887001578358092297024940188308346217509997882754940832250242545089275007505874508401844371055008218626295066642193089719707843446467849964979117964741123581434741614924066441972052589767754306884323470766804222696556590537294169600687746595469346781205575708422629500211242739657451137305565645951447661011655791640394123215592582637554472539646518524906900424498316521579497463846585133500590981533164120099884503896473980972224936237688131251279086811436505071991532349399548029540960459878238873537233903292743789010132749735185133639722332831324954099138471422807698104786963127158793199002046767042298063929336877791055794745734354836892115569227460418185550443837091451793719317447226091624599444572572500269938741617235834234280187296506529513519250593824877628585010360111480595258163406722103068143764926390529716565430738081213660666482931529475515966794298760543757046994149442839701581421569514533783695808040861926036725495014407213695499516300859646902107549834177739292094460856235417406680073854259378889725138430157806075939803720230086457601300476392291087102678670304222285281819012637846340568518712747961637691901624308952727065201840437083689173665423439763874472961559337906198700520568418454284315797958496682256104024242940751308013632932801689931930117613681902345135243296266412293082621606751177000358912262013983753250741908025408163144840951107081286064971518202871564662950141301656893717818187728208099182085707138844496075592956637395050392345080264072137305763749153725993494764580823439951115632597305382750651589563149079960852974753298922450286414890993477626538765453176837791986714324244291707626902484736520408190794719885986994465024411373616232401033301896691727502733355210009661154174317743609006333473085092151326102393427794309438644901643825312593774888840137457298608962147736024448105644220392489642506845110634530084654856374127330002936790900889665375127530428315195171460492050747687605724017023981485017911288032898773391867512460853120872531323693072360809684559410027394791099814148673097327812437621310947048258335179529700098743991062046357611142990029823937777178118509218906230091222383116631805496549794547530070951469596115989087093433851878192387819347917899849547339335541339918883702574730841675715102422671915849677079742432151759459464986392234999899845217523676534524380009239123646341544919629575333857083695862941317975985745790171451165694174573990542952433757925079373522179721980618235766362200609667011476535886584426420730424490311130176881236623299556732096062733509333501521492060646309181174920704430400216794742335893378620810960606602260348426873957905062611786368302210882202994497481732811056810280108983920481548832282532870096324643178185888396023268253212473048768519859745269695524795948148366495131393240882604140293942111728267078006025648251850874903512891667665529739974210107694540397565577518117279921006717890363212095369588054491654836311587924779502199277436027429031658196196875699878820646167640860987372090998327628204974787844590203933238217359532638230410354583017526628735142799943808291755949653612193315915380938796708827142144505850196148742049949062661385233935584747399320713261328107080667534059490058526821955725303361404953056620517672107822535292023361398763417240132664114096472157558906533178723577798737885828195072056897796794776885821438401190023619345134912545637920372638309503759695735978034675881880211451206409421452107628559131132349650189759504355256871106667002292608079694354145075218412982901415546917678647686576403629476589807734471967576136241555635579203939253872396508990733501292052182928802695609948736331358236074913247436477766206613112016366905586985929541201392175479103319923814351756970993030290812956318546899048753221529168527220592791900599476132750201342691852065468207518865846276054847261688367242129816994828237284134554490625669735253784451133880294502892099167584046504106219992627731281267403719248385952469409124166283399049737758361049675374045816830479653954461090087215387527029954491650683174649713682588703107914040634034279023781411939457391478861958573190767989937652497819782838872847930524216142980604242347574096143399202083241789919382247946118451585094545987145706726070220683974551395680822971412763609920141610841642548809958557768131770858623620063242777148380679847166905574127986142951975068290505340609125319556119954028268099629947227960612615131620780172065528438826239073977375297279981238012903978644847187367614457603071620969459207988423368171572133999668064910422443660465704355368826521080685448805237573532480995011488378244800433091189746775151143534799041035474150472806645908941707026697719831685674163616402889505159926145156860147334034269507788110576579882657529728732849149589969549711034483430017268002863933651287123172062004135590903847489385626578911595588617979130515404086837153337297315934312476250559646172841146740734021002650784943334798640766164769056819477876121629893187583644143572333464962342404565055390247067632898845846978008200819022472564430398332140575813364186290385532997591487481028058046288746276924130669078583969033231578799519018521152805116782401666880160312664935626512915948464580962990787056442497298782440221087496948786296697760725998228246518852042810577376862889657125650548239327902712974724936699988255285380445357426645021314037111316187726059599113841975557200240638550585305105375720750447121943992652535240855154615107323889284587512215297881002349226201436946579046297713150932894515833681925852859873742501743994088520477859566389566212669512191341325110566983964501270948134095723984274809903113010785612776112041289914849807903186423749425776820661116816484873132408362757882931942943037916657396219746818456519281675779295172000575241943006186186467072367589580872163266600537851122413802982460626160442147399214192283611563412224864186052249798262701205204111290507196151882833821831039658777079771788040740271980547660412586987100189945350461338309834487331516401044147487008546318967000261599835032269729603476567325810472892665391055885243182220349421836871991569796528982551238489607987714692546421346375953349866842545938760837843707126626121222801423220991392234473796293200848669220569227991894757491878558619560259347815741231341259756563844673882362974112301053872721811431654528721838921825912289375691480107513511154360632075366782706771485975578842691394422999880758455788565271532996565134738693022803244086490238547651974546290404833601013265764155254416560600269620624578118267739942974525342639524178520395040616051033808037167161526323024269305828986208335348782126562892201361140653318482443288731822553900676381550627488671258967218582206515927761984672111541584914820326750949137596766655750691449651787599938113877702013518887701739886837168464215823923843335839213377192939174493360034986875705898986987114344735539369109087721905674001044148181676938253476344720243153829509059520367474519642442775924730750426197783711399797245925395221334840348099636783786866839485548389022719074024267111185377901555186898208978651296809504465555592508898722248942976380352293615949518691572948419813777469463652838586239417743389763595290946169050953017205844038861115864030513711894374217805679461823720784702985697652561889607598730594597508994759491847613424949002250789067648683177826845786345047646656099258707619791308137534265239057378419020344122524064305526812642244310335318184204164830390501499280027338329306794965950421138369824457395647660054029274779280632702996246565610779714593621269352041322682183830433409122644587393142127760516466579981436554413371820027076207761858183394632400071229561727420564210710933959564532145838729295335380066611558337769704682485531295289908819711012103365812054495360583146294492855730094972619846135433024259443567634846279213380339318009620797563420387835340879678456198469543823411694640067498940092572666553243704072824226315992466767210727033190445877156893607150495954397552668195834339315841383782982952733417982790418827062879692500756047810607701115097891394893184894181108797797280460164268209481907369257656795663119075732524563116892745149840693743269225570119140331315175052478866143831286413775817577700945609266990112534051643952851168146678342785134582665188725308968126096528413696512716343881150660872607635642451286206285360365117849776732711409018770224651151278381928192890500467313325647882317930060808796168429537883612527374366623010988899627528023075380019212369113734753986613656844776744139317173807765254115640484092353085599471072763643928861033551954894165249592042872851396775412684939913213716293480233266610962317324449845890426209686126756303549943740168931322531128866797691174072737303609004954496147731199731117617255818646276485461423338267278610671438212386381069713289586263414928547096378074232965898067176184935709170795093101655246918313806518789042400219399023542017476735472637169579695035177248570600543344084790894815968270002597433351161589913575423956518070319962573757370354077126656278957329290575534918643389645306512974220739647541747904474669117937900973883490973074612156329433900467931969925621348468492536766429895514495429356551285583856390454456032016940126412298940941738553171432712464844990255629829019030118896749596680751654736387204281333052958728294850573941985905701758749973903177725648039569498582219814312552762953052894621942440516783003420536799843456824059411972280660955733829905801396038337739055843304240838258385260523761162547524563876476597086050081757689402484589470597017287888580705862288681660847755129189519860805008504446217067803525357443503424333658894520897905863061884976808524617588409019760697512423804952063832983600097340523666035096577457330342695574208747323514768110156491726641717793994164007155545730474830356177552675753718595594475508527242467141626722377548568675353885710254778770483994129533377280579593745122455889793498313092152763773494798554998554001997084800800829259608793271750619962383785145775761607239005214747523180471267560285620496933150494240027354912902094639085722294991157991621188173964959315475285524080581579918305381206282026718758425533128151861024136996958278729265116062113010162936242153242867866951147119229383589495637877758480701713570735910284553520838969300158286093482852495792933359364374471390006779279610467676231567210047961400678755428374069232250551918207487530255032039322621511947560018759759094484542749894612676555319338341454400736941292940839364942486985657274751917415151045568167276515598372987353086969994030680834048556416218954149508529536159066913969095978020925534719017620118427948300093663256265272421158612853027952148805769948151976396524941538216242192000373740474805522970186917874867407761884544502343512289013141726282834905315027673601222861410607928025185095616623340460574961058676316673772017382603320728645232500975662779333147389819864421144465159550437450716829551741262671637515320768357274826039016574415236809504550830347485084178242767232007263977976434132860941081543838146238040493286271435705923746373422989246446392465687931898995966815389204807702403663360621917505408488373120014813633476503110994444446410771644017779534621678877937961627622015380845883232820264162474396327990865423453538226936476158834983183098088797088907904231500401362461441816586023590623610698183098104577352483175452572312586160119931592543222888646466278020948579991043202932408421727887101967249879124343359826427124689805406647984672695048533892863842696326165799228306642355243695788926148289048695212971228694635649560329893467405075557273104492659933758269462180894290797137954967011807809688824370057986010400793777601135246622153558432187586599911931204830756736064746655726405782258509916703030239039879938310188104309429260238349225298830391871289360636267895172237121727124545613059687840822834056406003031888719763508514938825265780161105968628880371771276776812415611566848376963852448669624127339443498917016578719114276892147045317722777726266695311726506098991870430316386829085179265856805771914975617414072799538725078346086637912712436316151989471438917165679486134161927468940467208269060987906183262316985604672291876455697242422380379070206964584436815184643731204229083239417743123628621315899864653359480410422919195837809935577964223990792647559537105809288919325257898675173481136475366762935348759137838275829409585121519937276550789402349690029817138190875412550652446891270845290663725232262514549094143775232525334088622665048111896308222815938134336615211575833740929651581071842292470812345753116329352280685059313604151354202723259208485712880144759867200746907082963390504786547922475876953038880566533974969038590459789113541142437788233721996133774956452685057637004351135693864189975690570475531572537428892415204443876916493930251828876385492480296876827383909921946829898057223284332663141940704074262807537381719371558185645735384334827059509545980889899409768790095677366300181126395141667047440628397072950512168637478993584501305403725745757492062892427291270744820571997238037523693572871085456785821265486491143888305670025998919752280800476573337194168989374666794972342928291963790203238888107970353662673289696437144513978971707488098903210287720145993297290852881027773388740925435914636229129305620461469886946322542081162855006753244537367606143232543138421257607309822251598912278504438424563121611243686960800165963678489975677063161102520924623905099821476515386137278329711045134611756203590811782088756989678440868383922661435895920451623923385702710787160824852962700255657532845774757908306223964361538265673577765337596001750277393260874619701436166613701954695732220659831286565785668414138141330711751237184812072188677991231685136051878195384553574218303767321534418020676642691373859792743971027459190113853892444286736123025891442801280290709844980261924499244945370273847286811330321975644804982891911368801354352794290542867564345170132597861564870395637833402367822651060922901643286535849541290235493903784759425007092600725949031271564129965615086111359109462319866778170671115840744899459211517401421959425338131646425811566696078685263705698439378127167502081361750552881736897822305782809673483582099837099953306206006227686628204620166546021137787906973996848558935772148056697032959116039394450561390195475170941650036663274000911444365473212992300367834103906576495261984147714234352077318589450243164186371295588474845757984529465735156171927020593367804824530454137072191019253667288325521265692554613387312362955398578499378734728867080613636611743520547901180359760182402818313606727007938278559649704329338815942161839481452243781694777802100725772629281602458825505346699838543148703010286854040865622383218867484083849277550626417132847139049196125840116604207396875190173393540825328560849475890050301753813296358353550248566773630475403491537337714441733749903043438689364880771529589822054579351391700188243122350622519309671279399643386663530779525830157062333496284834531379270324899693315648717699979056024123683472358460299422356251064114018504081980699954525724931958959745127603158678023304282822951905831859687188223992337243428037203566815949878808010817267034777688231449871834648050774441441646430817259507817497594284282145151655663285493145543011843259344133114393479858178938574182695575313486055073082902741794332554603066730138013817557919603160384982764211812848142353264037939321320459589903678359836018976408479473194579679003073544220996518906071088938231520848088476715299296149916204891167619386510983472355878308744808285000361103785474749784841357563259210619964012930093655156731353772896488089165446440072566007486043845672462094842802670160209701035396849655850363080454415608017168852064860296501153842518168865999296453896283757696790426287348748658620572810419940844693832118849083786966204504419421154986330382410849786984613986503399051653891930694572100920034626645332419722291401333296816121604641249311334773616758557660608661873766406840498916328517399985351415686129276885105462860335619586550303238602971884403568055101323546249428814792371617143893224920399492177679182538112223170866568699914500438227388625975848946401324220798942657722939308905171599332260341635262197277490124392873516918653277666560507143950167490731568802508622123158733950261374622390275696613954597174556174022328120949399916914057168164517296141331149907779476804308186408541935510523873850672692086297615792292963516873097473841064478870572613106776213024924579353507921968233440685031447366156993466993969230787106046346767793000123617137441037875036923166651119848372918319593309448535188672520205305876013342145494792090395222088078585532192650950957109181503195140971233552856514286508160462954215131874700358683315045728887093407588108526798871459110441999950458283073706300438210418275323904684148503696732875574365164989851330372295034628628733379013782219288036869264258981719607942730491577396648771565124048816710675122622913682035532832125319784887430154447924936225785283039687650636692770372373029514864488421702734988975605593083111859562340850424032722316896679270489634236920621341401241077979031104480103257735710461686060051409350866356359983835232893305544000629539122831754934589654505125609693283123557768502090015276016934160103552602393125040296366839438078693952182204222084490907948832824633574729848504968556895307521962727840316514944127872899346925864701032662153087109328043590015973040186473939731237388992052717858159028478647094697940912376813623615898227646722723498194051563832386065469294989639716434072775570316212742478181799084442025887363183763334409042963663354540513803460490912287530855103306938498436631190617371343905578813543136920599510681037127635058386897610621659628136251674486915368729449566607734342107210655826839326336418545356394532742885589029437931159187602425596222968290022112093246231244668925176998272649751123901049397250695057372784675173636799140293059221361800734333534375329198386136389926419701546554197018772943740037662958033005530079649879574171937392011726869668281169368195938091352818141625642161444893117280648152157611115214910806850395306430189322331028402826232484089337742536817743847893368783752497718630885538394723906569627955495853796251578506516527940037808603821566018724895930139684635643366271555192288559917358106509651296847250369966718349294478624676294297155299300968873574104197520472016116674362845989179387355675803405030526098477409008903399459644558556443399047921750157628651830314608049186127844556014772162205140430008465431973731627901204913472656299977977571026317646637471473949500254663713459703466757626587169286216673125867057606958191189327115619052857782854133291478044085642780957667773811049367020119282383575961742362256277377735668962820622069665260360973949672637424828352644160247487979626958542441125968951583840069968049757639948528557811852952755163601282948332076508165548485795671577697322119247368622552607107411206244231495736740157946394295790800653573736944565211508069900759656735182704609114076484177818775661373891254152837457678524219061296289620785736284476072486883730064442548187814303600186347577050702291118482900921346945315472704748066186445832497978892360457452067195738281226662093773746560620546846389587323309752910512556103074334295959516761993404383481495643915701692939821382301546137780618545266783231734610789998090645247110550717214182398807909129866180610867629155847838345368425798389017957163746370545433110770253226585394452614528433539869480756941124771255408783919465063985694937085753447867528251716351392637230089760492663442588385429135317281691445259671087183131349715496196046009342356839455401404249746176038227100331718537862348749750274998528448586230763558272596515439090452210877241194050411638806685885034554823755330805551470495880961188215354161594039507915366048911452918584297017129616668286897414006433750962896234667698234621154265576200890481062627085236966712435305434183363285855226564733359351796382626811470317069541706998646331269944826961921582196401794950083210894182304406539399705973630135801634113497091458447865770244169339637788126321827308484734999332613436118516745708069104053969636957716372471358715184147729082999820609798799365958727176316164988734646574738648458402127134267337856882807903736927457463369033307492268835829870786574211323187180419577248168325961923405068707776941096005125200098959184013328238818240841390664346578503360947659164291324343022366416242545230594315343915242353809464765260233976232698490126871289894255194229197528203327335934318144213337512898525413549667682512575823606695274067303167794023858022040371715360172827850024046066141431306773816032287771529147679928241573204872098916910872331265737866816396204855441758095434458522547058592429747580689213045039124671393025051065467920597925764250607041549852948515489324649260457917464081972757613763116999889817133516366379028051758499137556991889927362374346434072777287199613703203081816120779699063789165607140272546713319890852426264294908034202923429185216925536792763957434101325019718035683946796751702072387135092433074838811401446462105735608798404376451754567189483174090284712565439965374514002141094461040564992354721283004592503063759235473472170402353123188829752331846870209338971010244197719798403033238053176093903423148048300851659713146575584169739124676966197519845009193408222732220001623983262958322350634043818277340272652737777067956517445748575406214610000266603877684512194520548847807382273061990852494048263604082715367632069063193190924832824070832093892640779766108270664018283177416184817427832895159134174036519926341395124835067352695763701605628780816117539657953494359156846123102240482435718389227850462158794419503525266252820382434878125731440079482826880645654503163094414951235114586253248220362377566144842024299134552959263426728446021177523038246467810133755697995529286961885158237663601494466209120827717554343602893994603260267122352976603429549873851043166013010512378885006081700223425950657103676433243937167015879618037717010657760438545037288050636414231369242887859279020469270598992290778165237646478529962612829862998931140718267429605113248720618639618623681355650706217009985791376108337167166682230639961643963820495677937907866535997161275298151929346860042426404894389573002910145450634622768392875032403493476130618460718965570210150373802792485470141865261739417604107113905531541508388398408494921044218537340133773770984483982063032688710969444150172015197974892317281461037197588391986490715689260808505395319588275029187834217519214434589011277745659271021999083270321600117876529794746061674162094407951236086645537523020651518383235532688572851030890564890397751673982800698379662552066280091297482805061722145400798369495243543601922341548651654739224993210513965460806740514514535627018918349550648892231426917701185797717652768332501473011151366867023606173833727113531090076385890787107650901167652577527420957397317262889923544938779811379439991629822411053412215289067476876402670195467810215841771537513895093119796068438104708038773668837416168463444727945273583785763582293790652251733857996131928651615869998187435991831894512314004449503096938487092375711727932144109086243618960129408951145262369149833960991650722506786005600596818487677277483919874861461541699399439925873231048599383075323079343962032229136397595431865745053542559042365274291448513479345655431163120377978774882833198326376598506481641362999830881356907793536138478462485166755219740774627980158678978454930757932823723743854813986096909323018925628445133657950317871560729782421338118565720929997120967298527534940097836793601912845352168722101281408295146329385181434055332809720020062681256492803393891068902929367493436599528789364056751132191497868499065405055473463129619282068581777028986594945956710273454486525890437807537495021803368601813064938549785081324054194145944875035597227681544324053745413897223884391426034988773056421682973768292595403997363302328061631708270926954460172816398334970617553410277557435392128344863815989256821501595445209900147244092382038254757645198379359462014715711676290694939202788750450352079870862486030770703104513241187696652551264428456310692305349505196323341585099716710210119363454232581491550367205255489967103761116756889098532665709504364738272575719726440513371104052454506396822775074109186642270559870438199527236039055419234576279791958507522727591852447729644223753176648185080232952534793674782921084538047456311125592851120938505643609572998375371472658392626859915840432458326002777156936441269047635295900900177326584582621528830634410605770732695845126559769427256635394672724563973036896479278376545427796991448616572002313554792579008649152651033333718565141747981073596474511289455845017856469821748234172304908514166298654932612259579681238374159287914092785308646431410168417739447615953081614070965887463401083635586118477196455662071558203910814008095936076535274352492954582907714996411662219661026855600427720722608760732652453229600040550085336566716605216519888030728763714158051182982602917247627679718037244184744046662542311424594886543697728713834221498034989195906518169885765220927295462735172649767485728229617697121104219762222354753817529242862164109475982916478936071939660822968881455917913972301430739007075286713565028413231821592203756379703459303590506888149558933239440100395813922385869030705683158480815548242981006134281801722770536164824014413435240605898903859575619310856905946680931701719919487031089869951343839105912371536587787766408093373494597129826909187122606583143009621649017582774574287599633809630233558341661875488251086609789744632600779436564976223723151739766472806347237870890010942105146925359061496071928977619772718161461019930808137627061796985901980284678051242061201445202238867855199750240017330162223928049362396764098632053596131494650690393672326279053247653009789269032732240962481641199129542890936203093149657434216527771666790778520136113090487957224726143363505455549861149401476863407964062659034954405423060543173432876371784752941664365050877944519775696637283784387204855726660639649218404247227763402045081654147870920739352187213777624866034881309567567426087527913863572092615619030945520229348194272343946180162599732606391752263346882128636685239880275082977470435029192843355833803451009530927241912910173735598892728709745873359958633997837117925855159676687118037309678202031100135741444340457236103762726904707080690735364832523582257796142910592752245813219987778115248982416459851745074530627268954566023497560263051911824938604876575910733453914109638796968584796837926835769300019698453323249984418839886258959234895886741587647014922362129285465815463511465747052510665178569875639073440182920520755687526534289073084386232928399163736060066380539584645908938679685321361750409317030593935617445444023379712245208074232114786893477361410455853781525194718672165706480617398053672804448533004379634401104096389866618376380139622475178841901482090546891244020596121942773948362265140927551548148809253597464291598869558525606756174748947610105123921777054500405133399610687493339305641647384738333072699931496767116283337384227776834435080919958622755942494315069193816845686138941335163340233670770863419709278080828419429017614460822144677795723655864777532077075435944632125322821853289159997476247473414235099175569342235540842062509676244749166538447369497865581201611794738428952944163406088387642850172882609064256758835309811591914198135030785753378254468553088681493207271469181324944872556548065975714456560271098353571834492326180570871747706459594096717770507439295726095426720098233329953938326286249880785876090653443124087721097142837714309427559266672335776272374328975883183987050122024548118324739815360244702907094338804403670782677830843733403848553662154379212046468560334319042835635929540250979153749896972817574255319103529486281512708049278117904298924014030305799292653040728567346939346554971226458042980015304215705182810042134465077143558259806140542238064078504308019453944147515662669798713046946545804751515929972555204063852292708264156862673336141924808377515562859509199007260710831136549829053498515891135718527566481283151964668741514416213005810990538723753438989362201552026867251425921541288296875782237360426605658719135231649767146354200649171775328214077528237770839776364965282096134531629701992847534303734859239619734740444208572427025788750653938092795100157478490589418660735442946922618597630167693236335577373325974631440030970494153103224795625235745278215486669694472172045148160562059118762398586134405165333957765968448079813426888785622356660361287369982146484327879320151953441578257355594892883315138359180404775214176915184961223044909560905107441735477940152423752193994580738594003461848293700133937570128866838467188312533673153958838017595677606599607104690904858133589941923821413526910535250266157938749654136635362022859048277428173386167559171131943327878096754985349728781317487393918289624935431852559912466624177407371519224427292223831132148379705790126770075311125600157017400607891228243623489799547326364731169377354076899047731516756734748422448559594776296904548618252580084493218836680851878697056261981772290392821435863180593479730761294644881223791044739779055239467650239193315569520822662220327706016371408934557004736207059286383006098334128931698975519845204216499362765822296832936847970973137246641072060225731990625913621841054901306886708342466238493924199500336279383214993532183740565048886604241281348098786644693619692781416469761529058302761542977565727563983603670906097747140547309738574856228766003622083438137367634451860714791922280081478147595970998425108199379975132543523572937218650192721847367160758106770666504670230954126037837546015097932104811800995428028420052183004774756183948362375681069192280246028801889980426790931761377087989061704198702798739027197750490156968428496783282220239074067501528624873140169365817570338216109410060546646381387062436715660995011906566131239388151761278152142000832440695816417600951678817310190723438938067389114863822020903112252770527813241807964041717569936520446722295250676573213862622204023164893311177562421256859808466415123714345856153733791167175164646556322828239661731492553057994795909910928836521030899024373809130950025025225984612760120003449895204345922931964356220282274557414802733156966186104386959606503610992046267305638019049541050479435655531200037141621080276063295580381030346955494131449826742001109709365349154648852011720080542485077204811842707539752785673398288526406292112961687285619510870457412783617803105052276183073793159934551189234240213272653133785876293826077147111295106959105150544959007887693824499397855766937164954116792415549002616820961219798804681798219475354817638396273854726494964226827908895571074697807873230285234807232788703546495817770723739130684412993150444519514021117294811646120927803160885020515004719437388503327995684895568524760763643050822902409439707432081196862186881149640702226374649847190686894308340393837382664944153487234170551493096846928128953623010667391647847967242968082973223027251087016768613136012763442872511165211937255784255622867073279748943967162498310457435346034064671004290924030894421807503712198521346673356997560798624805343773090783684250545786765592199471265560103739084853861254488142356739224885347395216496927077566778299005695789816604803642946594760635167091338245396454151319329954304516940131888814165130712387099304200608776667936482390628053801132309494072162748433014723486031843338681285238556800529293126538364378630231670354076769713641910139634154704663772488660818735911864105419521282563672597352392950543737051703258022958730709060244633246283354331066092571744679834710102902850472378814058249709654913172961171870657192511080790432477778980634218052294800103680584469090150597077743570395293093204941526470598884573075825680716664299777829071469576276885651026999524983132663355275599190208493937238353058050492866255176204773623607631594749425667275690128402394927980240156678418971347537844470306321992501290807450286870952290931529528890072697072432575082822389652753534023455028704529750677492562731713511778387872756221499349120495841677182011630573210665478235649126342753397327742292956603667978368846071734836602653587244881991154237222654399356987114030546202478941325984005669509767445376984575362157875814943007395729219083858675483210534155533023484075715126721110503564933823060593927255497477166425073150789755064829348865284114651225812835340591940140888561023824444537763848493441791282452028078441723668918229473424044912081438797727004572007606793794775090048805511354964881058735035076572998110483519723639879057028947945639819981727691207476251518668677930481759538733150983134707448978753139239144692716550136374500393939866361935405254860186469159809437712470948175973400879180067821271464493346433015676891438872706222884725869594912118372764320846455393792233500243444514550404578493040287879438998588154734093715480932489720349882895408552350033399903405603836842180885492471031637724137545730274387289450442637042162157310217052693845444080465676015265776059977135419904928037703810198556489331464632891809054172009454771454676078083374090550391697189191495345979774618895698876406599221665492785347537865997499394721253680981804383394953609850414401602241154673499350610750053077247787791217802441139905424907155936891312351261078150996397167458295382365052395655031853068972641317223883675755879966656919262532950248645298691654870119691849962653896934348268735781244461652551245093478567090571119891008301186441122359489511523005457656006101758996851629195213526969267812249697044468298690518582247250859314526081664062218517622717306834908385920197581407154453981816859004617351699745555970659594953410075919337811328282612308617081732472549823852039351768605894090102830674009806361715064340318335298447231437186558585487737258082771987446593061069761453457797813530001603266980990621339889362823438398269968081058888270174283890478901873422172876490956719958565579020615232469149945896745719489211281573803103459726255144742503655714331729232801185558807516975325017433439829401577673443224254831971726581542633656734211592760319782216983939242540395225448368592633872393441978101388286488151936500949139670070670071047857726278634747577566457172732698639144882237006226739096061847612301326396500271681075581490713885424200408827448877370758461986834334688872778000815517510124139932779856758208289175528561223508376419090002075249785358552157173668217689615053971187939552227107901334874891868665646563554015837121421551443074171147075425463352170985828991923779939998462358813003749358472391966958038191977218112349043440309501642762482952573475724186732665221641281681128927040687932765105799822975550388428737467064378620474677567912743910829741204430986835519509423560365179728032246886974302288614102714648097965760837143683746096750760413026823989544703191871991683709259549070204624063621090575282998319160736581805040750975035622943822084346697923771190691228168924750251454975075213811282404497299148244044966643403359588249818895382767854852005108185912524842633747187768190187414704420870312027721272198904108193863194424822265661896741799212125709317409425105349620557006056145053163868444571385985670542090659475659728857123356847990671409056771257852288733424801945485495517134472960752034456522904711879910049224359513238187797883177363576671449958438302312869413441262604698225807865383699512643876688061878508397337834617845143478078844386806637292440383000059210155459130205929296845798371483397179299614364486404416965340223290191390691490159838478451410401337446880510033473525479084687570043996513797279049831925295185813724776871603995644750705925739142894582014032005930055020991362501959799334073639437885227884623617240635227313177256746336037492332164379843288831813237832347319786463095011128712692647979856321096567985837109600611661725253332933212821275691528676704149621205976157636791482867374333671417616488010959021900289974313631967814310536812693146829798994182236065290072443454144192798744065508872719950367970971100932403255296930551440326889144540819304231072636425566786001386686807514399627576676337001066756067984344029452770994083608020656129950656300319707732662639042898005023731725787628729252714015331171907604154521173054622639208315420391600302755982543804767055874657958907611098074046273223072761253289530686122356122866446489020540433970625467476930097704850958728136308651054308059851767158184375306763120021613550621367976743981435838419450232924262231645127055440527466897188711638619937992518960051902788774615869592377314499434608854512122148101102027976049740026017224873205694258193674209155128973060250639369309354185274440821008668799926800975352526862310926761269840182692781772227718474254957271138940006072586574251661211121184569956750071922461366772817964881933898817946600460128103383065155058839247645954389887036518513635230667133742087710874440796985836965778205367133624217690032814662926060029654779763589869124539578459840210205070383653692404748348418041394616429862221786979436306299682688781659662584192704584456909646734416904033839590500301258152693899958029511410483379666157451886443571986200840546392713154368139997738733056754943315079835801648898451126017750227086643197911404958281811285742162529127899709470503335107167263677847936463590299622446034651389353861089433589554892974952831591201008545558038692881556814647313924728287700682163024064233835072384225861015579194690237790430702036572921301311709977635429859943446181780379678531094328950315184416000976205860077078922459662675922931795376994648350338329988450163344906197514285016414631074614851978994779080380506803758192734532341268660413847414359076533456544842967253634207887510280271620199808598953749966672220332705959962600298056121953219762673062161179697065702142877449125352021481748412617691312152769547295481859927761579296103066799701315983289385161194414768580885584447022364843354222291256065821255850877336007413294012195155517073947283389852124646218270852356940254799788633395170034525876447890903611167674644394331664608844929584228065898048798577509275650012219415588847910162408062557762347272892356292310023277513780001666364375227206748051506520255142996580691365549508464857241430082024364540321380568893525962377251160181409742687148786747559325791248659873625901625092861666995630955990409608143704027587173987764701963548435929013617294913745599131902260647043895762185852057936750310417015230082461394162734154322623611920939909939698371869191740029234222880709974728718131496592982103278065464364660502443825938014513108689193584905491704191622569046014754977130697375355940086336408473811594887783713235070766440907161693589839873712087472148454770848368517247185557374992829848244637731226899374242845121750944947147077524593755367962489058550851406338804841782495565360116030368674433376943180260547349630900856336651729883372508988396113252835041088799293586908577619260042548621044973476287909702929685188715476414601526852523946865852835802363427730256994217026944692986504010941055892013516956058011164620402757399804904825081030639881647654954435589495753433740139871413850992241927949293862059452249920108412696286356169949294440300039303214481855451643968707371104364206162570791228037518713113016698717474093044907509851913569110940242704157248793903264417859237170527177545560816300802644526251320924909358180332538867239494077738424380747527943204436981256175382326038619617155562560101628388594426378583255358234911485351283487497608590847290695901220863259600784470659928759702440030841779090034126500609847945909269221175492913794109151462732661045980568387473242540790771800845838542040733140308188324913678808602984266046571343608044376290875859445638696213611341117621659696726729131984324857526385266607387089031246290539344566580935285130528156617166315054644944912280220471922781930840833410654776939881495931374801441235258456569383799175138280048673030279991576333774888073091712777880372015341075490833345138259983795842140607439041772242962737234134424924720116732000557824466424299578347038382261536501913099808916653330105231497609220187900072936117346814612667606358632100089202700463157061610705339688581516291609634285640018345114060095766077371828297825328240362116592786082697515480993051146547385209133793908204668462567321270831648243474904842870146336336698320635753246592184040720274185672851670194911897115535631318465770225320938116175117359709772049316686400085894200244299038093341810301859829461034947125654276623618514171531904845859893298185746527398159103364021698368840908528766117572649294977081441026328744335675732999985975932138476693970583085893896256212809139627835222470279698064925710545648691226458614277024827789779920323040309771471093864299600626651489291685853462668254941626022360936693733471107271846617322076193092837390988400759891792862165078765256985692377250613929567246350023202374892762825793740168098854573171790510854995114379999485187855686689492790502137923584044341555473357885880546488558220488146991544874046204388277862338402736697556306488701934034129794280786368996423997126269098466783016971711148112404529134081525022652581195656815451301701402006202728457396930740629692288243784640919045224371823672837309680166331518509259302803920488202560296313717832170347999489157283290795347983976239688459783330741191556589872845948923629409152473749837234216882784013947654514739195319221762834064619085548461686992141345949294090457696616337380802266688516784468738857458993709407273440476061349957750560707056307920487077201117975419565931448455741954045146778851001168453513176650060168576565989896223197743050218624394285511574142972527615720757907854809267748373431383007797355614878455561990811699996663081705867191048081415146654980471914805897162366614097030005928434181644417607111589966529038752534243570296130341146110323026241907327080376622394522156961727339604778060382437078203056561586892438153943047297313705676843940749734918594496645259844997085098270358914912354458091497693981885409945000999163702132889662119624175843210584096729587409482862758494215278701569670064972542241280327258833181588438153845587504948368513533912033975684917616281779947074978889424565315736128048032185437040556777792671956800965302744868609793925976499798066000795061866160475605812476298641138048185086228062862510489059494603039858837588375133210175510463733407843605198484047592855199870480607706162059661583408706480502988771987301256927687670810877443924492337632680888204695505133829760200960585884834740522109529369020134322778630227257398448061581625644715635151205926042057087439976874530258769620089619387119485058761592883619393364214662253026761353321861762683010304238591466600239081621194490665153857074595249688673711262878891922789708525293029278705835794279167585796471013652843561968972268158006332962707373131871222816723140607504687598807377489144851617700849385746084319848406310076143064099370013103026326409619345859267492675038691352592144956982750267754098630440207619705364323004576864496099489117856924225264199999329611533316662994003253125610521427533535013344427320246914780022031685035858433688311019035064727539174495305811587361011561889989167716106910909679522542550259317672548398269025916492746798709286344541634436358799807978137293644394276607495587784964098188845129156155269606742973372181699725284533531506912216677419040477098313524385791503676522506130347796442808123000637673852690942556733136597509722985484229013576616561085349533904049043424415349892397858468548873671087633879368031964308808237016051488432667636721850670307329512680926366511699381875745750391285224288480629634581121890379408002199440426779875043377638777281386444201900555027416218805935028075367305724477438397302973507795073512183355150168392288175618349521056015595771102360232889018915293065116957403559010823462316659344702883148986369274972970902733697819071009881169832464407511348850230835363258386145818409211027172868017229779482628488159507484933629722672290425664629402899741279146667492062567026181017298567122100227544268521216987964614024047944276558070006024004801495036749686565730742456234209460009063961644264119576205952719481037582227950890041270212667816845370984074048846861829366152364387947486401044580475894779982211939805505545099591128384438240103238371435052634356572032033208863193820991416108553752636382897751476255382078062608256861658201578663917362395806668987859477260817845599065184018311034225610262455533781435236998961472954996513266157636258168307628757810176828418656960628268529498220101793016294778406950128951800093171783485290389848726728934398622229861349667270985218939822256315144280814397108694991562635119498538917824306618916658696793921363718896667223631739512180443442708141417315872348462424756817806065749669518001009131273349835831061094043361634162189354424836356919076412233399056530009102025457241254825806161521049538067037618826506184973961438159979139174330084279702159467387209369034543256778469173011843108723349815550865034683727085573428317494218343550630674492872335799014904311858239411054627132932180921447720116691834747834501999360676477225850538763488185576677728431972839233778688717038811471918391323494015374520735655344790531692898892304140279870764442208145558691679288084658803552817782193029223287980848305378879344157318617189249436622767926218107201119239507119078352936328446580684383450800611012287735947023253372709125097108395655337791283712672263488174568833117567935342723798611761163660009639698936292983126233234209433075234697887847980165843735609902226539021287498400231517569156470835749526426866785739509732535567550384852803187605650599614971278875658416666735732657249100291267359398433475014328818101719175374753542487523681464704069541241185906698303758924452605629753324921459144375212293183188149620121442532353094281040625294727954662803006491548279303442247760177605420357011466801033181847294232270047382897140607882171927910687862515830313066359989433806556162232128561310659238219065555362561685497767236005166759152387656387317785754032547579400069980596121672550611771923360978141124475939776534150079633545850479250454312915241173339691049750710051878556276501707262470676662047635889686609039004800978854542093709285493724048455135014134297710978241926393930432221288898368300179786151273825718297171825106958007657718244884325124053077367453124756484603690972841330777875978094464673620993669920878159643708695310884228976464542802953989020503803526115395926244951918955106507093320045101567045550245495450665833187084392141115740573562787948512224292972484109093444577940312057710577901415824067665071355388676591713243039990443161064251515924150847741374680081047703715463744166794158156429403455818964587258991686903897224595701849515175460072736451017452375564121920190540652794242057939523235817358378059333363445071591053479012433100377614360977266330826429495493846783672165963067818324968447523872340981833333374288798663902877188859951038215083039755908458579348849495690034099734940833689934099205315608589772812314318719617797845730525901573806708324513065649522282219014371583746616516483865548267973995486801580006006345307266465004063455194546777919477678419318252682792734598525224308042215358895215737437314401723000522499751092600085289146346476909751985440685801535842235365312122677621662923325183868158244184671065368405562019082242691154561632926248272334658804660784332634849201887138131341375920314437602787835392466494414195312506635490473984883724131558039031470610533246444303690113556312785702429489134052564158148293502600717480058743202509011826369573824586044348472139858862433471436419938379354859662632904082825331026032799947562126364524427981400340520436736251402306317600914067265351290186918988468203555115895579706814963360802638508916216771266763835152614480757622951140112356230098221527737071942839539482930505785521589294095703337206234920424749038915054213219813870086344300351549286899853816243887831262796780550075228002261713191630468780770856349703519901697633914201004658292217022625324303998668699861303664080270715440430649947707990196075245632787797440239440117108685577817431718464060780670194053306876563403848148219460098258618052165584708217353105774282525110092814457104184150497267889410143180603030278153732577339028599550381730515400052356676117870450632615419300198937514495221062570911419541608421686013717132046188293940457739839671980927406010860174256844162732332574563397974829100608269155692145842579253683329942607922993371629175205938537309338058272731412222781430495507801140335338097587085174895849150173000396400482955783574032296572328859526019517603595556593897120314820410000202412272399217652755066014714427364406972383743373370393423262793329945243332347625943791875925195287378052563517832741684714182270451910045440148162656719466315762265762429305598463774602311712724982956738802120466240622050124780382350257374715244866220186735637940138163484531466316162552070096958604054834195328822248032691356206315824658809226706651254936060390232741461805563212911213102882568347218923547056283344826815078741857605512802820277029647902514384796544242436760131754743927342188771306238785103802316551666573468983817084696594116974021297465174093392712802577436030865311725966288133060138292080707368935847566974480811723311038999920126459170806769419719348950426857079426617606250210531848196336253281630231512052006829611595934906031485564869075141794622898755611549551177043762119648712732882246674987836203489176331194886432795110090969522632044559702355512449849296132594496707973855431561156957503530858956006204064944611028497302264017194287363094185441357223314257429306038267710327032563425264961845925367955542592748285660444068362156613078574142628287444445842850743689070411309797006542244274931247861419600470340469038593701127304043110522793758113444551940895258821345784496987485329659942243970646149012096069768704341110210814314931606846429457351649160370267556935487130509720544463997198860800962961164963557217145678259916676295707379153855403284801131031669453043082774078323763178726888536606133485377984518988385476747401912382168443206136612351977387320762312995090735457412641957104483889719385538757865607944762467399117296462476419328648397027356284301050904862938898524396415763466264152444773078841440006778094170734065056140284800101421824196440674159104102802741585019422627140411806164587623865237329001252186320525246251272670220859340356122830049090509361158344903129215827051961685735468030801463549342539154283682955523273847447770104519569394750046481258801531376776114532344058453059229986585070046128966918692857384324620461025908462938411317488386829374579107204367532076383283834057749048910091622353098523693763598581483827946704099987255066441005383216858618482586651451171338721630332507219946179324473668675817323282222899371743963159761772411624922559020666365436562054719456969905137993209645281051000848656768922799159574442679135116969943263662458556228639807491990309599734311085222784011403941970758853048041030306105286843193673789499415744399326419500254551980676249968946400607295885971141484731603276947051164489061696252171172408867984831958541772202653400094858260781506741761875188164204519538389403673538075480369990134163205471174866450209860675862689203781795035910037246682635999106836846921462708019166864841344226197661850736543562525319913287911457408969621020773837461641928927637847021253212743919977492744479380912842888096761135497390338145194561366817880645351511425875246980710737546761513647278317980512773809800542448136807105816370991798933438856444666593104672477696717089841425817682361069832209727013545415057523595010807455303029219412910238319523574036624452928220178710080389263532079550413765375725149924309195157784351432399559160914391865105155808611288744216977555430728308840035323890864309607806712819810662736651385068781751180445846971221452234065997791782712683831691374001291805252413166103295913214589900446073412617953289139309190792750708751712442407901967568841773410403100399277155738461802751105980283831024246743335095193152338407769744588438158635754749716944285547025226301303703935943252156576658535925962428611959350684000291551718621281520916527690022021535561686574677721649035805303857204726427953780242393003123138796781213032595307025744457971137433195404392496880822699860716582386947790757840354316188906821804451211196414624969666599114771789048129807728024864706694220800457107872990277653383653226559789132573471351356910981884811048846457683580960137147831736943899827619275954014283797052161433091014357586582771994207810589079170739549272689012482537291545095346795105942394704045850696988415566955675316756200029029933284264318581830005296252953192267405997918431635140430009627831909193358054236692347965511098013062538398560820173485287242183811924424043230472268159008392756707399765137002574100260734137749284107563086000739635680261425242389450017740228303062272491203381886922108331954007960001758621246169251597292198975888562893424943610850262935026546415234657457887684992921646818398125960806321192569886110257053772364502846989054344318744248043638204907654696867997447315534161743203121051362013993251481635519871453630463455333911878505966707597870043684989311614604085124577759221675723870745750699639569229757874447821740841533265264888810349164675459285075308573244225738401597604446822975832530632314068486598048114338051336763516688868502878997414541640047143546442626357856889617648103859724221540411894771175864161810159999286248558296287380690947452166171904138638657942506008945685986187822580978172682719457594098906597567900105720850071778078405142217937256906018146741227964374622979027912931057109398305686379021907649961127491861736481370985865859080966060517308927653035997087045363641900271548829851725427875216224637201911466829774165736501953998453335062738353129039850160078962319491225634682768292957000843625846977661692338257945966171030385964375715086360224313614205910718703618184962327978566176715245460861287741258319782902522821064545608236026363356547520954978401596074629956485837319945423100735634320123811440297396956758670338841384203253508147059359219119368344345490603146370033068565884376092399659931544970422019605667212207561048295482363106235789545120720343209942964566428915835288444392698931920891846674642123264454989627943175773534713396059908527931337699623572357003806114680013219421801922802106340873888037046782296519460202047318321183573848445637350661350693577218377396013000190044553627959834027694305343807561040122704526722923231123363697723560701322635530941008146089265531130054353399050566165660969916438312643716801265715407661504004550368866168111830872673250015387963227320185433348387761330910836621096230975567138036772003201462339304978204158299569163979224305873980799322395957138213777580881089666053335171732063317689543686592301358587243011728963648610060632000284198089221159432692196027418151235839795840728272457049592143816393449584906629971808757983185526820662754681037532935480663010696374584610949630868951992203552757567561570003881119002197393980462564650367915395181877447916262372200380172476177907980212410985205796865757389082049910523309392228434613439381184737188153345046370048658002925795386803433994174940260932669334977083594292422852669053551327891761813468257996761772557229163235293556294634793003052409307859850039021927444335717344395444575026486773661657319090490499152124224867996342771072312889386174561495865815240263546132875551946230980081594758933942770044353968127036260009562387287294238693957715577055072790680926901142923275040509981170923406769377910664022896915937991897099973867650732884713914864375644625616518491918782073466413262885048888014804828075315725082574965745956260439410804848574182384199551865403054222870665695618609100135155562041976025920986921284541355479086879178418539730912911257453462108405334917331213449622953611175680325209974062888336449012285791317874965213973872529317206009182699626023768467562524957617380474524159909192257241203103607534270898956093629371275532612990320835486840184171299583986723030436686318460526316553073340267834592618756842270094963815118960712818571380728829686099327210780899210110228994205083842150472157733813779211675698017587238984541445066561789181031777191840707180074443649690555415068123035261754687584111179100320652631334882129675239641237974898588147660878683752909150133236452907853604936851570205100959453339469708172042470802894037883529363895534207912828377677353624282652920095631331746271803812555143010413762679860444248745261721245518246109249885681377699817256587280292762615768402165510093900444484733265137391013635175234529655303803379834374778010008820050822779775554177827938331778282826735524059665721187053235547357190909939518532179462912898418308146211639168642154251796825217643400257166939086584057549584351681182423117796417704539395567317427676276075677193800489729889229281396145215626435133689667386389861849186476941759098486035415557176771249652440967771961165000972661357030469784796274926868238082163180114946944597431279059625122531911252236658141514575566526205969702401990480276896003976607302494449885011285862149573033774555106208431011194064110372967671968112176369459687546475004683971356907730512146615414545559153735225582920316912953790236141405363004267769888346154020106524643479079114364311471480137054101869491527950096284335244966518729837207574690966673624010503542905448032976931767845337235113881705507297574298846135000574560261318619049476533339633807739804407775358625205087984744247369756272488380219116709198118210571823670047157051326199926058126632616082373747802501444310071180409315661378436765813617397595198749600112741895126758948231051288081561992311036463341306136828658387513891595114601744813040030059961763676251309647365269264742296834454059701337448899423146103793001650866656318836224458050068303077532386682239277447434432631581383506762023075606529054081414025921338135637235771387906093300970001892945565099840982433120631631680840155805196484270706735282735997790412440420862254726671018296243324307570315421298178551294649985064629959089086228785595631328869981507755183084026244546914174327564594312912985262656205022945653944453755167298048283751010136918373226645534819391115917051981751263258257116493804807149343651764382931884677526969051087657258124699502364119285636531218429414446620234744080429127635357884529058875872796756784527943708837668857316020030435610668716778509670215217273465556944574988939732410389920541579625674649138647173426486433591530665264650640176131984108322108899739238396807228405281101066638189819780531171167702015987183565451549635557450228996927145659489794691182647237990086993700011148936074335132626925949611916119678141943303958544219652738209512150389381445076863929435189682945663802509532587216876425654510912374854284679564210241193744091721963136644732280232613397573478807610617618083253861840827932021280355655113372843803956206354910003967164540003359069730719128572102559200263042997646164524809319407264117038848306113139637120128886148628763419996649922416244118545195330603000890632476410934866618947893428448147181347769677311092194932444334122115708863884618005018284456535231114427438175491864172599300573114301033780053184498368098123988249631858566828560085514000655258192955412977480834190937580852845917116429974772682845705998006084808807530280442334348717969973395749598245682748734403218679325146003970989119472792646267107468244968549556926968242688224492590343028432482091805503642721307488103209047625184986116227429315563019148783382562373059330446027838318578654653498112847782604123024068367916301176256472916407016201847653161813579257952297422991539215425788682981143633672004871755017571996269005955111184887611752242685456088629805698567181264998310040566442766849929261707708422338134178227520778933357213024011620043147407256391494410969959300742765119901311046542125307632184217963585886244215109957814463188050805683987376424314740652007577926814207684320240960156203619727166808487215758996443413842968463279584661315325821046751264685939336688495288814396877066472766930871075645537504862179114373080932511324483952238112330069626955736899776340823826954531805510783199349140048044371067477846056685083471306474447549824299147294074905048135485498355243282310744588769193961755282534128640174467109338560872046174651998909795421804978295657230390058867490325460209339424347353053469779188259376270238434010679443177376687155181195956202768787515951502023933583470008949042399641265474446244227890994805527767025356720352162661833622469495248073621683805890143294770441580304060294717824981214018222177450553614031621602223424956456412085279761033334262052022770281280377137060922466362470166506629949359916023004175613689967636312159702543752983166062604881072701049603239165773289471256679101696808138059794611104859699745680758966814742487774751928167557954293692521156182494925858394828206906710064908403382968755552643384938171768408018591106653874776637357362641467221381541828982325425354663388845773738282275205550342805099932534040489919826167811501852197408799606961111677817544858921374328234654453865967621536171736628253873226420754081579328281016196963406058019891912441018429527568562059048213519960518121883951033148761684514977665262170473159222771621588268988540898570062003028885714883890376452593593337644047325260366429750391232060127826726939610585657399139357123261525458180613852754252456209129513920724848198745535338625784682907434957702876365620226997597296021694525644209222844279348605140851038031171556617024442128389288192332625879951064166069876326037268589674422444566042584963691350180566336230105749365481024829733679029657187781281076177501553403461496309058783579079662594909728173417544881928203088586001398962953931232957397355123512707421340958173895767838779616332992194570504170833897842432863430287261265236469986396058289585882584452458011828752678919945114972740259111725541984734645328218056510073862956473573169825214535275731185737568486612894434073955662269638367997819113538688078172468225485742869040457658228335511167008652138520918115948309773575617290819703367567673363418026796283329329170372305250205883568609674408708326849603863135878483678938673763041232788211625423841814529392810751073494635362120862237946095024270481865855125130550032499293226161732596409458082230827393183514329621066817128839143318038232195763105870891866060321925987377993284049566988491348547926923899468627528074849119515114056071915418170788058365995635310911591515800593578224926663878369628626161195158076616493386191685260501926886754084755072519450620726096262012769066154240148084872654577537326284647043758580360196137030024539955531316555614832609748895216634675155911743367640056533457545618846667741144061946644849154351693719482284151156861949803851101474448050892689024048870429567020728047871028842294759340603104741667445885319091601598261354317078268024459764497467528137098210381873636310679584717560887490497515231933162061005989601850236555212194114184737398274868518680550508441534657429974782267330746104728324421238484573054134400759026350871497229253813494563987488844900660848725004491672756541510580553215832301645711296567506174650497421203661797320031895383701510466099558370499799884359030076465164703080699348956951393320191290497785385041871848625611404783369685434995606107910426729396565221887114416360167211077223727621139478978878934670648537905165101716150221588254298454567842739347239821163334872392529933189511253132651960619684940953646582209156340046307318990497031964665398573433997275555809650200731000175781303512029458512718294001111231055343584766539817062843623703542580679569545628183516216048959704217825583832395114858913180418066088229824398507342203420053864641874708359747597715598438354046397462744049129872370057458868895156460224688111385022688705760722526828878121144941809737109870212315992229770062049476423335425533561761431933932577790917491668346395935361899660611962874782499783382826549706633700942176406275323620207399668565884404850811233238734257250475911708793064019599725102999725244684578604929111515232420485672728290320661088365347796692518904189276290244916551005915818963904578052740639255742950929695240484733714212444452080648877473480722521539822249548244695513391932325500323882587823933574826750185250556102178455874598978218031091857593006696630545469212218677220954624132699528807828667282440331612161895698761538915879269387607601055925934118779438863303027584194779951110544751076860476442051556488043014982335077328044830836184759040837020900364909767254439478934111988236944442352086125798724077861245453966664632544775177256248406466959263785943128865204738488300684430501775655959706317654095258933875974110519736202364503824220490750126035735669038963827261653927182769803689459399589717349762308638320092127869995587254903480346901995242142470493104339895051892759165381650113234935265451203311035529434892101442816491483324797334294168465112354535832262040842384152303437244221335798658706074486844764846156238497841438599175509142297169632650249637369396517567927076358585947368363411089455644682027455405775411776913654749273985908875564415458922106302520629752693321192373058870505012775906962882665482510587855265917520340715485645582769717480267406072062956873878758956901870071116238981637217037250334342769886226893278184909246396612346202286468266804241358296352527375145975640530754796646451630180751393534123742805957129840837331660316611526428885483267662075159696827014071097946449842585913254713061082499707427489048699471368739568394621733036391369699024550203417538879944948570089715862632709708696631303006795293209919766274091422218540449030931444650103665053634144522459496803564399919720829217578148456027852374587265879883613246070123142783458811248939656793500705909240635504523730980178997101641703222987896617826073324817839342335986889010937824140357469847992797759262543835578061949642950798694585099544974421912162462803325893246821607783809146979934303422583710527128428049053881678074577848870023088716516275854117226064982863624768600038883138099212241213139153978017568167086712163911475034024408696528850543640127844747932316338144640845370379839368896865969270853570997714365782619183153750395737022318578832298488588068834466160896919059844539818064217604187996938704703022565904234322381860560019497436492001825985715961700100127710988292218536337587745505443469162037027951676765610287645632919971650354947962723261003698856970116284906947056775634529017666364471310765868277069942252924386183410462829415497777971142233404324254938568937131403619124736777298653202831300110763334973926117211503362296547014365667690312271736226203493434343897716144285430587178533260670626605393109828345473071451543173541170626011339136148128622135387559640202305680282096927139799450991021849451376431116082894887965492759443087355467619675666970330631412770127677094746649090557967022318925821842574652911311683523580109755765293286864461329058381966182795490856995572446123724227082256542447411519968710383239723656717905431839898986924343785076386826408105790701391011089891912859594963145253302863609844867960040231789154821077460047088991618030815228554353794600404563796372312642350644768310244223994912156820913917796629888190657566860809602365100484515032402387807956766546763026558707849696476242912808196401963924319755161231094795326704954423714391210800619710892607663451991709293866283018634105621340854862780245156639786108211276654166516942776840338049811579357226090840590641348755061073687329800688532273791159375717777603191906027881397331771349552791192513575992111072239374915946537464275631756432825788353673977738123257867385751548341586850815582628334488670663459277063755575596379680113371477247091019088820853826969894148851458196504195994834097440687796418417963598651465726197032815252331167087706079836253986196070709355873080090583548247712907556119908107543334419070898744327923453617599975362610187348076361243325741060398761065059637772219555359899506850393687599721745446377495867697368966367897341165631628378138668204922033832019155505600386572101760558582260340312589245630979577149574934072635405173193425636521791282749376956243372740543674423413205950379500167796387236682879105078901587512437756835284911133877522626047797400043220506458904822754321888875253892872585529105164527520859572570557680800008964376552993119629088171027085838920034638896984431308714739414180385960946333403853451946568839927285820624544897434513880544713180079439194121252645023987983101449563901236263808685666915326254961894885498393616679259803860218596358399234753031875939709628573683214722496820250046148278080234816904642272922698254021366720244842488761208706434482921390040165302465167269760415660586226084744038668575513102765089043960637108125885133967050793175024954134043289124742296693731597939822985211207086160195217825689837427644608273741498424521740818381505156436072075574050978720884649282274400430077318480114453527539394641626936554614600238917751338640428537258035877378768981851051044048366470236281348040808321674892747610919907097448908265065517914457264537209984588292114841890594026004609317390891092907389798204169605620607728133508771636384017347598304212864176613568750670725935772299200051035104317583589029044640449621568176053222036348526368378028463578158905002486204715997479335469183128389339943396631329592878177589161625270851733442325296626111997898340716622366713509768244202632971958230169320997003395006930067344836072169545620001536760114384873628633370910212039458328986232333069090314930195288706156939037293767264305751747116092747919730717826783138459000937098933247504573210404174182531263320363638218097344775551632553317286111241485079435015885948741972405068046833777461150383418925693726698919889987086515702178849105792722569446550245262567867882761317337801323254990879731407932567083420479506628309038087296501679701741652945424150592425364094720233579034368471096302552734817835436883234354655864694448974507323036355676777308047221582962101424822708136772977617418889754571639129383771897635049253129819283443570749956238215599836997863817751892867432995644324990228105699473754316052901287466186646191711624511728703466003323874929022164994797099252531953085902405464233378639823394841053251070641816717529358020426981150721103281789943272793926904427306485113823066909276277182344365512248838205271573554582176921840812830159505776325451844288466955528947704571471801737978145077426317254309342913347649046393540913161519300522970497830588873690085191261329038806003126778738986801293461329847748904773617128625931629334624224174321485401481882156590355358459024065772880801478428391070963059743126859531739354740708998459973942964750513282404607685957277453838699569858677741089783834230398391956230024153794342102051776387477874389713987521339731044031300360905219501451197351475133572727535240658982840911185556216220461040027923378437355572710329789008085804060736045130258909313967983865654064973991885678256824002793654746179788586685602313531071068770720609389196573515040413031193046351187432497941623735971215583478566760269611065592495268295339847917528404119834370132166751230450496716404509788058808728531781770927307877706095258009379413519295525482627633878135103909630165759993254766281295583994244539134920836190728660588717871544085722770623642210568061012963644093923955435715020448526110416678024223305052822621480139350432759395862583918173456111345724236050710189631886159266641028005923540781307029331795329945414620041538216079855988489339560378580030539120037613599043454560225528347287130659919018511524948614094181908096249819503875842808957616637558643555391154065377042719161425001445657172977715763174401212338494457967583264435043552369865271056141564063906024628158251682455109349796613338396444958095909967927446090901563399466079625994139924881037146694103792733067965796058068202123485130000925009559899842085417319355842035881186615976009582000717249054334402988651466986048694332548400019765287077735569447010004194254107807467238099138810194732874169200244473005577635501578798435487247984940492556311471793015152877107965472049241986040593299506182343237322782946003221261569555303082290880696134582343858851194422872701660881767564083791122476202623187709986530021081130257812847110259174394670645387448548403211134606542155443883110883826313412056667707814623318254271621494474802461683084734660402626446094448447725878335007891051493301683254326983594965399006244668203472349490194390256677689092763050403955381255413135740457324090815231852568766119241143893590439292509782091503661526879023191790785744616970657421879284341700565752283665078613847298517203524370622028656663158516922517487493779522684634457670807467216087877424529605777620255375122930598000353614615653511513445060807101220535827246930599667661065069465718647053374473719067855540942201330505297637756421008369303766650057567909674760136906009272070602675242366543566530389886617727878645314439337465985225442827149216842730932066815592573075646292351171012656265322088465006702339082995655423078162497420428757837265691661055483436362167027001366481405843357076156690501495718305882004005216970290385278580948975321902100779221783135120841862667361637871522504154325019053142377603052564924164678549286561479594336806936452691433518281389931101339924041406324136920791702078555284514819755231975173176811685864343934299549514686577846167412688838494054980461192900230736868460715568534096080706649631867542321902286495796366511490732003069459655544196890222515664213398557597647287067306523218286210604366830640412572171353784529823617492968466431625331278776163586140442194355227240682391607113895922408444918786692946319768719859815046878243969144190303826131281623357160207626003678772972897971334789944804928943314011874795469643478017630125441041637131847035835388735420537121206966510657243199133678562417135269501563949856694570260395035257902326269203249892438010347033531251704584447687060643227475069690481577908087798316191238448484770740071934962912898421975512853346199137341192754668882414626274549516226891035250018230765630100435445211024379810803556321351436816473064750194830944891701306082742416063712799543094828960014635247636574212312130026595020085959097308698372376174148704527654150759797403839316273920019266512230123632121420056664616592064155960582132439594081425573004965919016933721412671507555464980438480189000824956410907168237605526111182887779055149471226508572127580122080300060659424466624231664687417552507437501077813510919070630130466586788683601547179912503763087770123471229680712362642696518698441300454139939930827982695432274965901493263907557595031483010612109699838642850397857068472447773443045563427544856698357191042916403198418858264011068015494272947181077379348700707180175549260711438928044090399910835227863388865197989784606384670877972371956235878650012352381891195048089255799177330744480503725956971885129658141472281907280889395726477227703771628208878858938836684756182502089530022037535699205198774722403252251439919301140413514784056000614118985319647886272456128376318972804224196463654469757686499437218199297057451087525187514532290300355554375395545508855193033060305961709057802490612672029033143316074261414346043832071891324841193304070546514574679488349214082828107237855589699955005488514378981255045997216949425706053966231109318866962447572032947526801005180134304956856377374375984781400471877109368241682319809772543036912212944367951502590966675151216738254594036942649532526607953812550907703607634580417728230248296845699355727094265256801434688475617008080455057201481599208149653881005710227445247021519289037879124629299478457648600628375152284124509036233039609933567044660148637201828759026589817464623342973325336947852294683636317156621496038774205557109726277577513285597168155119730045858138041228206583587531409336235220307809845364093510489368810627769048851056001140237869717480310926779595669445619065210224146906382073056075386998961112675675296568280750994857767593014091985268266043712823722549190398107566608993013391460826498126925014635002680744922209061558321853913220769038599362148114042993599049503199375163908430633865728607641473236125237747927266838022760662148418995133235474446004410223657673004658542165990778354466997328493464791660599463639955265205174751623381987985130675164420405706372669341673943674604778837187044185314347489026044472190796549681590173258009891192060897844612755267599958044682381887099908978796692999536333082922477614634209575219785446494258939057110728335307733225933988885422351672219306345133774109292539185366045054800951519082017582615907604398453713455700169763885002684261462481314142122025934221112120865276230960040772169768672411611024105233541199852097706898571793937047952929088741554505875503204699331177802244521417622803830151746297479016115834036037732251530658786606761070079041151122892493198925656909892223604433422403924049487878746303946682178646611700919317370087924310460362557955238952979037063845053244884367540353727268263188217558015418950058492538364720204632928255369099877373612390595216984626996813899760614127525763876827863058347346367004041391249927664325142012874910624919382518115859706237095046914352469857567419728249750099364160129120375007787787909102391576493190513846531603383388966753484834803640212116082966994035428312853133867625585844490871309495260372209832246168247694110721401689572677573715219733567556412222582686323769792637422639644981947813691432618333371574526744367903014306406093185963910510725125206464304813915157200141461752439140139054906439986033689550967279953623634457676976076026424242893905856309723672132951166372786078397555787189940815475384327547413914731460007223604596670480120295480931623020490317283971873049784725085055131084657607147002337625663812505772521575194222996050153780875087845649529359172392089410697080820622437952121929941471716961074595016769261308281884394326692611677265405834936467537338227487039713884954873223546805524677675702364547563331068928157193766666662137032744354269904601778419489087981245944589102593235758492433651652527327493088341531904789332407226979268789746752164296496772055505591584319910477757317067815400011247666982154613142820012830361973929252579782408657767159505775152806044184100070245770250499912574995159054490919203636536057844082547029514693098302215755724463744902156328810667108571518576695768728741651443278314604503825389347864948751859908982747455178231230919533750838367597569343572075431139570762221610842298678974109956937621267869550181647370578658119092190201822893863866741807349146285612586255675619558034518941291814319025344805474313799012012923371465080571698244786081125498190685328313330552197874670297754531013734873533976723286362609442819821653819364347242105432827668349959069912653908448990781975322860954187224520435240455769701452570446523657627614506889770835039789849678985624019357498542454303784325838146954828340069732928813217358699481399806282009756157128608484661959962108595128734118801496570720817154349717501441920535372187587567920945049430870717055829755294053884277288991174760832601402511357012931007597680162424327120997861124897016060373824581128333746875788675080776139482798344952117211593418630044751787252543716808489045905873193924688194296455955620904468080001554488680505338474597352899041036900374508368953644012921869090909123744622931033822568044628065439617516860393233109975206818398380375521008585116450906068552351089997408068902781109318278776917748762388574641923527208487987346630038824498715891233517648718474593677626857269629391891198246159856510894689953418799338159172578758692119980261857111981476593818438605039164118678958458971401307214775514440097005278227040168181353327909992259754405400441875166869879907611911635497010083373649310233688828915421966151357907385795735760384921754924955318026961062218358452560480285272246346860574394743414628945537720863708042540640018178031529681668978882444731953647165046256312470853102239069598530503135708129677548598879312988829990272102936337692677410789198831668286306906570576269546028857592579757408694088702797969349754696503244632811086263223798919899734092259287273274110738957373784395804544157719197586808409535038845193278315719434945127129294323951923136804249217341662790306156678341606819783080702643477317228488423076133513793003372083434508802110773430910254166980193080523527291676302577298075174892124125392469095194732113095735833889594353004301427250278264323696744438251487668804279778356162555238680978551282793912462736180468171107896386827813953364233553890502847074515218131702335792803538465060130620329788803567976682507903064892981167472491068446200704472111509492130520725524224395931880130491314927124251971271926992059711376277388958833299103815835082221927706968583612182323499083778489844707165497393590903570121480588492898344392267966965171270748805610175573372879116006697400510969160762252421027234865501159503160968284267120886392032537084265218850550193652739466364910364310720395727393767091720393963830161479143060910348615721545460349023213216826121001303208558444746618657789106077529628896056021696296517424252082864113634361920780766572905225033469943409152623174275863727638545618716649006611552514537041144768986525060800901880370608160378403125446757524902654744899028992738267526429025940378258414413684685365177577672434591796124592311672060350207543430781173468974771474280370605478031103563212701927131003979937618153238550894158988112290399233536483193033782368051413207109537061230849342904153490756579973074030793858824339004130099800466657454160059565243141683202568406997983225063552897583742339071517823248688401340050574523469144112692513629013805724258582507204932876832632694373853340408040089080910274377292582274617739323133146873338938909749429729519077968823238264401611762846467881920839285772845680239690016891066090383406582190776719782588880309576354796873911654532632129198490509146601944207955037394557604116468480297657990580470149978670731241964380026316490199157098755343698313771989685416031026862184947996133803094149756569190471999336811713172534870018782429645106893372467955570966669952003669764666449192669199853207824145742312326366868709207065928805201882397252362501926141564109561192821174357003396713566614686268262307775532012788917905844565650907216754830248486764288602964101373219910094504701151180234824360493146351942937752531985213003666894090036881509428810718173547951596225411098120386895321499256166082540807476471115410839854364820229878294634452270977572200566525938770634501510340053850497961151305720458970093929069314068515612725420840764821044837999262139127066235864386152925279551833996316332945377339867576990858490139274236710184810700995127586137448175790507319756810357440056872768820234235342134345459957128969223935031879163823290963567640352079882614523675980545950488404441000209660774854633445722198820095154647588170800354002758156807261540357609517598739256454397961990762759018535877469342250080086878852764246247544667630634514527981476915463118813388122491174037274719543066769410882886630048199749251910748740931073768769097825045257700312822204646935242887559607206672797192480996322166512447337166617769649634561924033666709924859294829745078068685884463658796588648268996471459657308962273711003107540842965654239085767153592921511781790214290185291279705124793462054812392888961255179285388538434207375821185316952451429064926726284664426641453366737668303143461499457111139086852895904477569010105477926299962991312469738637891217117317311429747146045926747234233021466419924739035974928264266845964311842960240627255407233377614757599173062096760602437984819358258155931754931470153964907105631594262791752727461414419641710337389021799754179704807581257264528886134785428573151213298236078002387672182993757647715194883766021337176382840674250574300483176158208405128058403746697659496544231442038050768099990327452304633024032285133606844530814360512457703788965978795714799642426289815194387868995711536543187492458702236991467666769900941556006056618600764199993236385383928069380722915072314962716092025300550084996993840531482266736995911037708821345245713146526317980446736606493060237305758180092540312655902036168230061920117465064309010600904951147574534522306798750328225075871027236122614317624550624687172895627281751444131374445956912545839408972217473603772207348176042160352112654320056759138034772832818673877188300077500357222034169843161151906297881461335380857018086729390026482063843764525366640618726463859525614410752173459861456937553380720065643855681709940520357205971881479829032819750932473413378699908958972261237978621083313419883458724994247830228679837261722590324034526283512698229222259263966280526682913576434825140773246782649609913742097920047184609073441644915497527888568732816332275533139592944097901194699393375080580758503578098395458350795920414779406288277585191393809651401835815205004343312754103633625348567337132954757125650739620978493852286509937155291485817029319647303509353046620295032345827358631688036931118114761299494629997550614671534928923697783878760618697999580296134785021971264812074261919943744308569595767484035779565728885574632895316494319172087287435975418280219407071590886364303253089381923130615796958263922057830117347006148519967220439186435197066537863596855178671534070337453213023366482932367812115690432787601607935163320000643488652824791606222743094821250299740088594680957567712489006354135040878964530414688665124610063113425373092638293226966391179729652153599850952070401416196321621824695648686602578682179712419588851760068521141576072936119416936931521736738323906343976896645479499327274128672725661437577656238187106923345007843379288706033130296599141844596893175191721530177119044198792215468116034606359422531721553850375874917780846816043592921379672267933340911455694997832153817170380907382033888323260493648007099235269802111598247157099146295257140058409812100922180929472528970277851987816717173867704713744714006498155502664497274705088680140126694756871202220678967938472581718689946103724138341975357944833228208932544579635143825329809828783371550506690379441989802105762261114297113065626725030495381497760832854352502581425325653697657234814170646860681622203592898945630215088079711201621912990058625916524781358110621968044119212900036048969531841531301824882074887141283464717541908751699718736769065976178670267257469460967544296856960705968272109560111273509672225081253976689693912973023344601104168940964443372571451719981647133814976565805684451745128725961956483385160128157377786365599485440293554805781398108775734638232903242632241348857410396156117589179356888505608345951254764816323280152085358313269613258224579991325129436807624901460092082354395169874199190809578266090989312405771698879734282359093571687708830600532862753232076263068760149563544068305298943190371657984109090006302699257579772656241725007892939300339244036936749530393672504049772432030069669718183949597837326194060399852101755305611958393223978425216724151691644693137039018604558538531572488567945205770796224613463025319981541198873032813433453928858536437058148838119045932989078998746027640213818452022710306728558775835629068996141741354770176541185091563861408289582026733125641582560110658079393652568588950938501593687293633357401825024376281117606785229747715391997552865892097600589606883231800924217659664904376851133704097295720139687069462786091705668404961111050562027790822500949350784881403640961810993900428574260067648778848444117695976969279375268729563661733151968588274401063321323520802796387235932109754986270473640106210118957218239793575699678966194736327652040813108780426919052151956572736726343274643082767255905734288128403729414134905364495210687197786314402016814460283425345182268288130258246689601418639654380460496881653480598121715936205526284710839984199117961970342807915427767023102922954238649924496556439733399865355042204795664737430451865922574508711236304017801322845576964672778710895867669171841140409122483930011410599462738399801482039437902311690059386231000276814000507420218861712098957842891011857327319203400412168370496330612998970132772625147895561188282272681822352930076649991858248105782828086194385478121452181666344536874620988658065445504647785370184343052694839409827297225947582502391117704330900327945027901856488795051696793939715061851529453051837415692627990743970496808532466399839241877725273019842282029732477892292092852840831917053737117841858838973623097490800520748078466805841245541512338940019617937611893773254657974716516296524919115815143835193185408378599839694187020724507620962996101018504928736074430016366255538950184395770343788777639561529784603316410846452069469631579948249095569646596835277850968623342896177637336292148993201327514920081912439952036137947086365792871822871143826504703860486744687070254368313033085381100268540509235279572846394901129739673106465264568793639221401772868780138752166496754617053840261992780216241424627988087266900696891717861265804955104412469284540915484206095639059028762086555908888966478921401858371757489819595391706284873326092712930577574042035634281443926665695667987149963447094534264666190757621908330223699991476812477613761549284496128248904848570046767049612104733631678642891556781084807324955741438242150161446026975750517354567092005044566105473073815536116765830135326865812046665675813395734754963994656324468169160622619118502871842694766335904275090586415571086228745977231902621237615469930659962753064498842671533854015532506290995692656948008325837017402709312504914472716361498220914178400573189877771767818905299346172832040861185801083806095188983313092277363016718541405935021838510250738082068149195669850272844521632902338175307605084659185980738294281570439274804793134985715471130390836758226090068909968036105176346527444517960280175584611723533014363062947768206797163041564045506090574055162542624339212106974301516031037821221874809778010496587031870303246498220272136205222736060910534292813528567028688119816929231738580260295073635137255778983351040310848579769019158886253386063333757249583588582831950064201040409614883593956730295155175726764621777210125459755295638983581777661851027714418303166482444512127811023074745194319776384005908776341390759986122554108059655005596804417195652242919333741039149460163911402190184500643512511024472014295724202419686307534543074401220827579592337975318184280487562623624181020395320474617893872968297601055735800430216556262674221208109313692867784781472421202739525418485519333427617369218523614917578641606163089108801701877097274655902882455153049431305551976460590553952956486031020868060927410492098357651542613085718908797225227156492001062337047755711749029573523910729912032461468391605146256720778923991124845170764501045115711185379547013538468297169540066505252824129294918953571940250524981190697205721841151860719812155024887534132495427896319562492017361478837643906166436476851329594926872298892853045826389247855867550872430020042679276450177662898662555998678109094465888839266353845042298259935663806105686870504934033735071990506889092603460777905776926647228648628821058004706171492641614352936754733602461370510644008538774473269432713472273956026035811166366641554434609446085901885961834240394351529674426536999942309746425702598034797293940936071895303866303464608774267310846869156507795260286726566807583091465974696670746020496723736974217983125423743830574460415926383402146140220191108376982724907942561167095556830155003592954577805565920229399432470371973048843706438533649773080218382355124564711568040566790854488209096180719674614815288858005966026891550853971263167089161753005998223612226063064053567459615352468423591932505720945499928885970232348192307267175837634707690591960130586366523656611413458801218187354927680256303115076920213145459255898247798817817694582868808439050976813441421007167425648177712178440372726927400077815648845034182897311626195440584289270980551719310222722783332628174873358810762289435219924852358149767219184089467743754130217820554931418117205281312755551531961347870024970572387805291031928013044955383100176661866683948133041853246573164199911658725323030696396877715267673509800631812515882604057831300816373253963849015016955558052307199479691722271691755500220271635115480797167996247194995468898213013454152009969550047449971024983041870644935065616136062993386951706126469056296458742943839077870437336408546170486525649428850163093219911245766954371563361461424660198580245889481942310458055782368389902297660582832824915989766644324872656892810997330025667331437777793515517796254487689938215318347639862824598081390231676698459746493218932618654252216940497205681668144729230678678585068401868113984137558480113795140700143322886153913808129262702069406273125285630486474827532834736055908757112035006062651486682489818690655127067710140863379063861087982571527226857446458514682099251231275380374895830339401425030138124329580174442902943624260061597700178543206666144659630227666449491714380296690251567613111313026884463707670856571973664751890824155493586786140383490137292442681121985328847040415812217304179601659480090409792451235031295787616043300197060412523084955654126663648492217092003190999568338285399614365043310653165756226207189463368877649186845365125403905009407471872144008637758225788222500999668009968306186591107915412493560607908336760267515969284152738512533892262041427125778380105126547541430868568387905601602096048388698913229410594992624046568182908893576481635146755833697123293578865827833003710361149233548541129472340796584002739749581651538878226760923672574840870996021443027766777439166647235229760314546503962951933551141799482324727917754710657418789636262430288222418503601357151147220477366574513467747459812616580158763663531663035100006591233746219674062012208695428591586235940113742474359635277523716515445293049005571286987736159769398184288267094879376177339497462473746550709116954052986962880558226761745438125562472670554997799784082784721856892952760437850801130928858868834967704931236877794124452140799604409067083355430796636406675913235117457879027544741673374609693567071448433108797648951625784923821405401560127192750985990679855119953948447673194206846335645268134102252129642503174812544192552663352084096263946805131925337065890513507605205470237378027361916793250179904472359032340169072574911774636346518117477506843554653185818138117391046058719475038033350857895826417466827564276995456264361010793392414376041458687562577400795370240363459815381856461550389628299004005491001789778823196552488224246854056631160618914067881609551862963470481774204608304383892466146007386081754246668735814788799663958379854255164894243011010626848891050499813227173182905840346758279165155768709862290563488922377844803612100905232801237254626387459728724545517257329979336777890075256208087507724176044598918003649492239873073663685977822902470160168903626949843565691440688962669833796603263507356562704794366027379963585074095675747127980551179058610589198543553139584567836124825471093170942194782928523267038786107455978766160546872194582458048104295755432369970857069388876030371400408423978284114948841984260142300878979067860104347981386664174418734469145453695083849722979630236080897358669679495371105947533881017555058595234075765829834883510709217860083448781606310162068694262551932818047460679548125015626569833136139038513352407263181447114891655604407616925915991300222013813121701534501025100788285536520739973795239986865439551903815892747490929664420438619246943024751875825798917434175305842355970960786915174390903394267630282970746688730021267256514593978361222440501703634840639658859258127579791744562063173758357412497995574829722439540639271057799159825362305523914764018607664875253418191081077055102943413796350987183893889815909093892346868460175579020531460477819718733661098032566102049591198939821850165691634378416098699414377490263226877448938311847385221657236779594196666293610570727040060070768076591745231024225259250830273109910474762933131616716958419438469836658228351032814388500680007478061277777965081782922866914852670150862965356992613629165566488199378359932563192751800573651100880261666279550772825201165871687929423132923100866626648647251157609201793117763335939975694059580404494822328331734551271212418427432607141751101163600445154448893390376996827892302964094201018295661865455012329423739556286708357320706415890103213268962269692538242897138836689180434855763115558940350747209019097039648243434327245217723755195674690014983586467443492310893839965542751631262694510932012921520802020956921581065360124871001985262707023790000915369212327345938749095860338961705321845993615560382656385947388164236270494637961795134929165423574673769857063587651409610134828339259534582892951403939984025081669026065287199647138733641553726944629797326000291532877551197100155695473597436563969476855382832367100370333475739439681676539136654459263525897349715331043683955655053720884212299038823908921371530635686705405074762495244927367783581261365191931438050741535752540454280563780505837805191201780895081686685997272976569040090286432636337419733724172961222504424835528726668303038465893541259478515387053695189667254889363977433878708405462820777807824606633067189360978191972268088272229015808156179310355958508647755921248733041553837343316268758987523180063490324426076224715100176093332506093781960018423660447314070617719326426142588189479078496003515161591823763086177979918067790972449288397474595397613051568512905880541821272913410391908590988157906862531895825791873970995778026771989917814398276837702012720936712433411400856105481165093314762564947543759658148680511731231166104152354369590099936096834150555581097847814286658859293654063858946107358005933957351218741022177783701372533361671254619555418950671330578153506673498425222849705164158954700310961886969578547090893439473285401379849554297468288079822854589371845296859328890237526530962456807234313136244125461105197050903989652644611578040137315927519512123478589472629251382668972297070201039285369844346046772399007245750005526876068020269637857212969927346111061615088240224093808653672839894897785530561564119245775254165004790592554463025323060427741915946188606973119721061299848481790262983616530183703493378291244672395495927059350277707180256520538978524131224045136122031746098185286695262524083945933326842712643096500944247668630557035082210225723275425598663392571724001498665145493070942679400467878452656409757826688857749061092398896617738350260389781923189222305849869842315172528715170715401480199007827564353353402665236073317478486812094073247226804598567582206130502403039667696680545687094453167264256673817307162988140443247630659759404367452248027315302615894397809610211647685765496240322959324644421777644602164344007100520717470251201635910273204268335691269540379176792247961304732898453916955097427310047576503202144877308573384374910796615365218097811160943950472209046731586878219761356230153147143804460090966609489779553885312646259537726504907485605589919612276901372549024759316312561282813641622239658920940336468617546602947821510059028091677703694041533113603456720068086989565333860558926030153772598297746981403681863764938136568887938443000498933437109560678667636217982343456494858052093441172600196633109234585946715665624136084879989677663801160884458486966458852409632794034501312358089125357109646455262729387892664081225500926689168298667491791345900947676971630415872103860306892440947772718301685306281232264663765381058447760559028193402976348461373360948974397667069160539468724396082546518835308839744337556253590081912531285092965298350649730001375028327722012260665841377115616155508237250848032042754914702258392304229876951486771966185269485271201237422787131920141666841921447117206252208533670267920726069028288461127232870017125380412168793061115839587843830286165913844783530608427904911334092345899842255063317585941643168834660020171557853828348926800842179592063447045213779014291928960499711568241690028191164781518893061803291407206600723518020968507736912706209154063350586829728725169042555808067561353262692932932392568845799992867148638537682305562779033689945984743837689590637845199934371178347842540825561993567105766583160643158637918607579489104568442070606840825851223911436628398037194648011862602276455190440106202530946935654777571942487716818194207436183167063028802798264341806466070836815456123406145452769372686122461016034351855685048893712900853796406595368998479843673268478611318581381653285311266584097784401890364093523431766336678254677952243242470617855946933708603344441133016528870085180675713781201531989039833097159954730391426423374661009694930618372021819664436414445322020379297089691798499916322745237808631715525045334503057498708672255884966249821481730486671438917541184601101218417412673024362665922053877160928075649481756883771939213952275683097206313144112043082405582658925745037798826487141924201349865522119849393284898892876660748195997340531749407133244764985509494157694302355105007290688356871904793519881340631718168597015990196349925577786998627307386290496290557852356944192330609858320240340137407313611945145971180384754678407645371723321731271766546704054536038627071789225708598192857213245428490289742102584629575940536340515884694965196297426445185474379822269789148902538502032229890385343638755267805479893493092701824185925908912396572074093359493877523368955885576446275928719845573009726991636966801491511712748467947955905915945624423702863755189851970192368114756529912060429453182388409818690301286815131050340969799421744388891689179279407864354462625693563346046664568243121605363528219124727724186126589262931391721012305231242988050513395684498202771000504435609993043749504434840123065015246394983031724777455403359861937959161348304556949408267369893443433588804781462346410134775666836698482707554616108780687419296649325852377743370248194821895552907226838478703225382536798609228377971865720422485303894905834189096209648576811985024511810530283274431351261178460023815454193668476702718419649966080170229029305582728976440237317321606134840151739228292159537726428025804447122928519557355464231389060344026300451086031640881280512615029661367183330360881997825751536475401256978132967631692517941975874372243389872133808942591081452951259366046327382857949212208268647545548931935096924495573167880704182977426314664576493034640726860004008458796249754849631626463313270806144442129666297341146627149121889236777380048629894598013340992584038150503952940803911357094875770477164329771117839776002982266864376136084805261489881228111050966306805128297678332157928624749538763775698088427527923312019343709927772401312075380397454873930423561175503817798725665271398775507062838375792877542633496404844305667846783936106079852767217426351114045095542473001319608767839673033807438958692542553500974702329862279319779006386177905599373237347842976256144088179613415186426666626469122801879551140145215972961765648228654683455175886191773010458955854672186686661040528470656365083949697928541317369847674068367930915276263432275668570675242342354465258510974905351854147819770198510344482185049669155140649667175380275876402140160653058881933437702639593483808033039446396459618197381090857244113223488262328497867241424268005387369148285200712726900457035356695715104581257779393271744704777815686949488494645280741589192162268255053004790996547767370762204009051604027046701559353675792161527180220408660256171753635299891581414437087123485916461718245586843742512170655305357447254531455715293639082678824663656375393744936259045614060519896318475531362374804198878352976791590366177478082515311389268482847170994859462734066816541953553897101096739639696216640253344695046302681651525605893812561876184232157385358962656227008418864934708899709236821907931967982339913391917067834229313771545877919844768453519188521048106293071630511418428842345636666016764109723774801248416716259289371854807354362116509607667564517073367246193429846148913659441506409749666260126716992788513657551139269981520348247280800031656181019963899096503404022944621067983792023782314213195235297532976289064805885441395543138892104209003743653293225308560288913331741251340368460854385954069965547885770466905534119058139998840082480227907789303175668607975168640436360044040972310567131939330816853732958879866710560149097323901053354649294084190111944151742956305763444092292986852962559954645604876118712630826473856893377878497800153026803575398067552998720392792465208897955826495024575093194763732187054823361132428580582136710990357962296666836411190693890481765314100028399583580944922727293937823229577817796003701613458152660261206065881074735745872836261415176315204793459680316842463512293929012746589075332231070323667971367042164020654031077390862824880079165756812258792820466266418313286222704165943237667759738482431592094698032743401514365803293010598591226676574807051115146159687589275445450432642766432498267435349620937422145980196695381130446942955365174452541353127792492403982792043378055957970202782027204158772139795709317326753916862840977875212116962200493331996354274515169687611063867239368423738622641212786012662909043884143112673305160551958724695149416839069350201282143152818033293954177712431755316081961323011924953217205350072592030702322312768606974248239957862587570614088721478325093560004840931647780486380569924981341390200626801987020478703039410334481214618755930806801752684571730919074348055044747661599356856882378893786620767352669672660964584392136513464334381684230833795532693105596972370607571783332986053563543456544566805036607192271740792192882879215337260175381337004588797912285958745121556788939651103849030197093250512054879543076962268322178872810079838788937982455960243938107005388100650656313399898826925982388297572726486718933324942008565212742515101893390944191139231588676719527486662611660028898696130957428622617653021853647872537367689323682747528415837955480323135231068836855123375159176839068995898025380984648933676082909815155910236229559223438476945316853471878084772284918165107107130072015362090910820031502030923318391423550606414463459665212462893508971010715428123265400511660738734311852369256391722677981189131464539440890715505479873807742467038019397721403128010461979862571360218118383188006555674249208983012555856287007288075762561527246505077013380269922167414212148978117512598057316396327012836687058242994802306094048560377769022323541175953863084790978843503040003971786969991507592331533625740576031403824837018439938125688463215016500224866619642782530662928080811519324319213439036180488640250904936444529117442188721949632363719655499044561463490159962014324376508909858783279442565079398019738094336574882339625413313832369706568705996660548728787369344525624986026640186464476022209667679406631409669003806149237375034398866620368812874107442447227984601586642057051279146092002480427824575047067162153433185395321609441694953305106350610982757300283676371306095500636167223019478524899418415746547617690396466219806601781793133263960643507862340905999599028919833790689148016162179857584142995611700677305722713803483444438956151363763723712482125208467693040392827374551138710813535146199251747245933258120854093025877678675182161823221984308648790124523302662510510025209722605173939531172573861562634849528139287578015176063862816086149396668472246683022659390931580209455883065254706807437585238975009987604928510377598350352622633327098384882768386985569926470909835143562560751104344411571846759896560404451950224581479588338172435220404141275523610760923965882674950799522473976662063057858790323247268390360180051332128415032065473023794333154232501172036904881008013039062965379589533289188276569095681059817279026871083362498394571042950599779552533960989819392516979070451995647744527609787997426574353912084589211689518846888306683435066038953288807510528170531667885504053284163263738463788737992545569398347416194276563528347644009183535502647976350246918713962342610463672971867302052025875735844823729460115253935427395640797325952488066651349000804793963022271830717317681996507006035841875151862401078161681643044553585354613716458384576664564125310619971408721592282244855731656402824057180260863854891646538775427641644353072161411132065012397763342530940996532196894007173688141678819628059462639798766834187480777013216959617026132150802218685776643710752158591511046238780224622004779739976161394423365245688785404529045287512572178193206130503158682228447088054909014506076860299846351007368544165656185550265449337864611380542146301335983095095736541171731773897138566584472671034868942498916535512746544542431867159232875409158001565544358046705497623790993031392233211113215396733442763403026761514611676257663981099923315673306607975972262026402522616010032535987550110356673287783799009163415502335818698509745665850388657981274156887267656024686746754952957051777749232042237959788256969997258456297347379312395663694922057113818206986490907645722583628796670967091452768957501838905737691247458516626213165079007105272945584510504483698575030154047282120927154238620804649848966583984505367837927350000624312438824025374932429259336394255942844106101557985832277415631814289441312634511932048928287758309190304676712804797078787525139629636875458745208052226240349349479778027743040046543585170309043180531374468793926940208066427726678141915512362703978323858455421040377402738695565511174991257150201529533277418236519293880988995025709069928121115138634900258126968640884548337284610009010716528028378588917639611921201236614327237187034199643961369723851469140882222113042683786033869900908396129861701514903724277662655856873870982237103013947108268357595477607793833619409491492150629255726634892292604875279266230099731720670988644307542986223186805718664582758763607781432938160148175444309814246452572890663227267639418205078798121899986691156983274606554962121600768739567498870824254236474723901916960565696809359082414030070242801911369667412370192221496302289445435074284024918470039657466123140737868225251919658591354315543943801046768042324930308062266554528831387210381634413746707085241787602580529842515463359865223295719226976766810617427054327415787773949293029664934634627640568250919091734085683590982408974349343191654248048238832185152941930504616831242078546269102452716797245600113571084291949987737514382736533786605150037075393111133073237751465619731427898578800006916176737351278387413292383988358454135505834221453721861106764495964267924360005289950006883975543084675654838480079952891727842248107739825133135493135140093145069835052477061104991904508325284416193277064742331851357791967746783820307014673983207153055807609630529967142065405248006767904891850934535933188364473582708080702155467335176724044737885664247760795835431197657295752064749239905066489945147517376055936322903734155924291982409403115241631439964753919947168832394844057517178642075158742908260981690738415035313175961322212212234157193434490824970801451633262175288506161797507731356853956256597718495394388688672100986112594371401257567262144723385289190920446881538911619295218222986398689568866117098277764992251801502442165995795674529821414879743313592981077088889371521067439848408296302579151237448696796771890481541075229326565916226476603602271230896299925173272153957232643211941160225252088176968311433258248738386524702932109649598241782934930751419944757450015344250166961684025759771964103472275343011819070027747828117616872673367675423177530144962090314966653417840234426470220784293658236681840256571211750593026813746500022546564782980647747937792067304814312297522506823254035208583094619252485279258058108240583842003718367645440216180243170198259757680365792385175452526732094063109475170854135362505379300068715597334868828532928836715756345136612795866574707891590431822662386784015685000223583546666268359258121253437698093913116738498338859122689598605089481910037919113866352681925231471226681643780085302998994275930006207176821133987459720806559661576362519722869433724212346450293337748151349457756622002933076814360283740699814275827018207445503247003064947527355627155047954695077691997280760026365469763872933504960491172187505241461050169529072691303316970067563827720555834606451574246338194075396218359978942933269437833758613882087979081704286813055677158187402114250744800958990227909194082393103457855547091323900731697188632672128674525779723502947194752521639934381848064796127217976663694825943622622665255973031793113440179288945025078377171083745335229666868772520994592649191591783891777595095132910403672010526205064747845916474247597522907887275324344718603346204227634373773739922095063446823473630883417752649359245224094261968767187565611009123020118993777560775287058451803432669117866682772034225837446442340627516049456853108763517468362246212000933585757082080280505459645492268040637950612967771493884675575636871736550290335370392335694749405608084372930640731229239597814300896709709627682818013836262054182361070176188325768518513706671770838169317006319425072381153104619904436364655981541730847971038391548885270001178180009798611731243751462844965979057854878139541654002074200061981195251306130847413474325606194330150713739605470837772847650547556786540696663367274902427253687260721838717184938587423546659099498148649917259377137774842776379538862236566120968044299803606006716785077261137987876302498865690964808088040985262078646769120009666926822299376060574968675389494713084460240316987546067215710942692550777052251396149243165188702336519999137015003401993871971907395974024961712094783358315460917974968590459465843756365193734774458531036780882755437406243596980870067949336418060643922354446632482606806975912084810955879037401363549221304463962568103282954371887252988684167586453232890222339160488242822686288590163578798321483194950219063177387130709763154365626545284080375543642563704631055910345882100556218601828761314525405587011713082430007465212068092576352552292496050453696549448419088027417095641353076136920359955052442090051073169322779404724999734979328998824770396816641203762894925802071525828450498001092187602625465764970200271129040717590376904612275231564173264918972763867926293324146180571899684230872145023812020545529647805129913601577837977123521718714822830466236642570757783610400143817528807052485987191314440355512261630510532135777893178854716315612361090047054667443074221736262787128463855099978801040011194946128551106825962400238827003524986272168338162315692983762385835861144221240579873702293648737447210209153390975197370925615819572808842929490608933313101529381594808289238659256734324238853505932683365790010155145076373932086867322619770388707170580637962230400372270039727367831181479707953271509586480598797605553443818123626458599404761183430602435815246805365563580511054926482520007992561603435754548535246758259015334597628954917242258788857232982355934935638060490501795871307407529304637402506698557818992261696547716787589145127720789088702352621552197222001548749995085570945535006576666362811494830791226472532749576032646859733986811428667392962432551539858062294000846198515887890609602573306019675364162366476929920681799047021414277738422166932998100443784326974430024518085743181675349882038396786496236341241217824437198864727694787670348313898821564141859084478495835056229606353716381996792627634602767956583750354907203607119474190246814056008389406881056771280169709646684685611335224710997318953190499707013068905800860545682176343110930965538973871149851013760605924844362575784122636609540212763619975729656501308715172615164440139438430602243474168760357626344317886508079638383332796441221682505822953526997924527410919607159541463683442197841188324875001968243440894141742567442418665787878819790176587577638679623958614674012824578077704660816387943954469166182563194151198670874147357147677785084256971024501501008469462738240098659337630693229110148885382990471378595840034082929221457700606112313721729145137700619661925197637836070227790023621852355990540672196219968541851125403206897309246036461128170035302527719613704407206591033405217152687350367634668035239872456917622075190399226921706252991445954972680021125909460582666639302338323059545133224941533981256222306490542968293790810948108365602474379786034321521051756917317577822043710066937021987814965506394373880390073218194233452110746079295190870528497540848182306133469711703604012019455660364369017791096320190523885593646214756531142184782459944222034925831989113761568938052078373685205520437906141376366690644923270542811826362651163525056297726206370064866285831159694937199499310497610774110953765151928042591035308119124507969464805380199898667270176805475406974702179330684898770330018289239007034242522464611682751745891997641633602571530900511667056758553143276184413820883822234719621240454331936113604540832689921659080510707111123952401512700570576451030246604634704618061805068527161932704979198686430444790090807811913700102415283346063144904299313177289852215151624290985879881316358760758714785365790390473367658226332518328300891371919921929471353506202319965661230440312708979313210839621325737511035074133154734037853543910416601268661661974040478970024384992857345895293425941364243079717731567800031695546778223649312221834799866453354416932323599006355275168799841879759361748659448822469238967521168196710709856456044767474358859850976761754462831479445569947127140283138140518344694645094663230833609396539507570201938113953016223328845198259143527667357574431044081654317443733180656780129963430027930820084254377419133427368835876883607452626552751072824507826911066124886051856982670356228148705579167030487403384344641143599811891387164584243452441538652552759436735303026219881388391125761113618380117346857971501926383487442004728691892103986179079319574924065473951171170858837167013883266567041697221536614319480118616904995424652902539527874715611094281176026967576400682209251934384740604566625599603800366601549046468374131062440127029952473676034415654576926100992917483484767090879456607249552058752063874432571972679947874939014439700879221641747075823846994703108367830464810317372477842752686025570786145296668007487661776775103318751963698762937890741953913130732357313879203034343411905812372156693984501840534293112738709101469688107680797569314380369677881580583869307437471671037051953210587810728900386854665641627788479290655783131342523613792942141034537132863649505471441306321990241474559135122011026916859148301774201225788610053738454775532659114083571496531520267052427652125873384187370465036821642639427442065121915433144575568683447180593460899161469750852017813649408488535659309041839467315446734529020571288378272599409948293219291704805376525304287937751481077288569561661066992545276524475401716922670657500918664212433500763614308426740489830188228182086930966180589790786634221607051638310509158993810567116531102778495249218899229351691174097893379129996238431445883867491500911305913580392561884926178248839447053685545880566107419240800766578589603342636735617906301231032620254139483387699872386332271292216211084256399350999414881307832931358061961741668032524449379718901786911070966066233548218421689997388027252303570493993493205654654161528464288626561988253876164199663951067738073192068464117625536157485742920322317410193547799143640795820176843622454920412804298129888136266511951591631087892621406501153564993113905432511871163827904305758442574091114956705197770894168667395608866087365038268909174010175443306851972452810224904848584399219395156077482050747845300968903643186355179331248938186664693309422117384001852900244477594017721876178936575103054828642076796059203849649818706354950764050793956118544797042643171034300829342472672802628755107015580363614205933336849196207626510089183201761277102293707851873267537335756327434512934839948078120725618284990944747539045109758623445953461369846854103791206791044379522915111708243245516262386367998243334419932355947248180018077837526521437678260075503097807104212940401562652485107195404036900302803441410393251548878020332902164596051569908536693091103061424451813321587959893300253069902857882979635460243259377573650531935956736021452000732744723707244023354487560630937368949117867473459705001930288593650841793031453663556319184022139991521441200035379152833692016987988784667595997565441250722645061523009763753619793111345797673248654193194746143081519151812651356176903733655514228444856899155770926400053565650719035135604470671194731604021700254908747888593420249143183782156443223673797547762755421239671071988267805327906960019187818115905785621947036062464953725942576759800628024762450880840629938681883514587116055296003787863869373724057496157209908481515363596461182387829853081212582180242585450500398073902239182460080687623168970345093586758388638428923629863131879131216938136127729091160421630960212232889198941831200251562557304150812126036817884764549310413887631360986460715022998778551011170165438886262281521831364791706906169980546029965529845824382011820039111305364921418104697748699300976807787042325479669721109162020322877504693724578576577291603989839765770693196844923100325318067041855362104492184200308777502316244404660455692273573288510052098674767814372465474257922558723359133601106456157987198406371965355393049819568937280128732263091025592221036896315680005704975971086137435991176823750886430472550955349616722366489749424182510569925275937129138228826133377890812009835332044897023974367251569791788333334937936440308732535001795908958995395801727775492130970020992565199592738746130394515974866265886608454170522787726876052574108304484896312640659395604334821528128215042788888414403431631945912475219664946553769206757234033907590777552694256481980532687957608781793936874864258002422513858047543194659747454028247769995399316136557712236122034625622133280943447712296188413759476488187545979190910942109236332210059995677497936203491527821380292151197537890846155237968789735823825178400192977184346776383386962025822094389087071283654031347926478539031246021145822746691274365867095560959179628886019794020985389385778209371869268918855394696048677196407908327490824325614500528281825371079042952690885031865770989195073745636864766439742106245223219506802271809725322995774461113758641967900390643770968710110082424220460906178958971306922659597943300659028135449413717046510692367635237086715108187766234199884782108078173094476742403060645685907357346262983498697709916459462036471706480115183369308925892484458489112336992877068494322258645634684972309954792742918008949334423976088949887087006017881584971923967264669189012971942232558261851079367148934611889662951706696768372555043416853022171299016932636357925605948045887150067228555464849775862058989975823600485407731092250409416163553315384037009886498084706274639516056611994257516446370852937616145545543305385225479604610157663105730777916008523212481464094081422130955624830339239773721429422212816645496599690345092273224556532440781668775192978000234880622176636070887727308361148613743122018259212665371386025893927330081915148300546445213681896677774419942801204743025555804289005796156704530281765094997604033104292859828951088798752271382944282969338602894425055355738477777240045604463742083526172168383868458422200947679560052547972557904909563947703767512899830437768382017781944650082683512868456868688107253785716685627574022867151946013669003810457370214463491012809798299427055350477595475664261658884266446367938085338065307227814850041447492745249819010708623358225225578246714058848193431086311399748318203743110838286007312498347278581677503667869106082642490721775014242279568111466051741506795603110391914030163224145940910345209819827602794027556847394933542701687589594660688669242898028834344162207975844830364889849996376994180304186794275399088928986388474223018545412834328024957644262915223843895141784886100836583523920093256166201233164703686875840047519473690998337653576467783619229822529227193968416942376268465815702021129200047035951255779218682804136127439503073640000352943254405028186895644006471444597574083267216333039483634605787027146299319676545391099063573005388348818439654616279312980110772697721389918584158613235251585014508431960886947457735794028085105885385678433704153766416511653412844167969225864460558389280669690780633175726062763474370674898791282445890430319536550555920339533618034447336904316117531707473733262797049743136828755333479981306844375317934826827956560409591568665910152620294907545894398492921421432451334073226844475241409590230762531883238713797669686699823347687410604055714224376436109341705341768027193698187062068186218113666632212469247761350783074529282406398835891702937536369807987649205667652316389436214912897025738742642574347164141439642513536195679910670481697965331789277873242430196737820257267032316271407259031267081715083864750989642457279095446074146128241366752322137315636460948956926154919159250382105537023630015282648389454346987555324415002115036782136821644145887408267637499568972016094631875015335260403692238870927262179798880415237700218943533442223909020449021804809757287329488093957016333629828209597380170996873875889017695056031663498732150241274794705810299089492574076466565182405403151242248462660113778517821473484343999222199190531108301790145953828573903791551077139143560439455570402667005275148169787247841482708742765657407965408916826022620984735316077909790406645990750075121237962432667997951229112786077541040057922742693767237756282243957909542334918329568086792515163694584466387822277544981082093952308799241131378479358813918305542817067622924206789305854178981278608162290417350821579941942168550964304674446979240966925500299792860252999716405312010109727513658146208983257979032163801105441824110200786279432425833162068701952761433541549031055258330109305859611577882984900547274655136611954579736753583118638757150717687392735243633653243087669754411219515950384203238485971804158891769204109793175521921342132857548876491493129264174220632648614066974774341629016334937958776716738986870445431445708213181309069514779715836379990167728199826815932376702354607707724790051819468954410424609598349596539839890469114076135787485074160515448685963399909310647737129992180545055431360631300265074601509761495044743104587020173686358469277197509353068700782109256424867280791732141932114828307164523658988567936609106956941285195467016624837356158727831061864147909437200136936588563473302929901228826187805456480758049739470515149778901987699596249005549696300641504403391925414890710524127318969531273336995974530069151120182151104748977338632066006383735873401221592398387898112085986071109960648062835981039193286414087280087469662144295753357087731138822845584303659497808072575176688857402821262511679309446800217067928654123324731002572039325200627232510817255496611706264546189370265987689631788169364279457781155573931780340307343363601203994068863584794239039972539275894714111270065261939038150459354976485065953491249668335313875343535214832992540233837100928472298601027533327898806872898320644916412040208761845283296849763754445206975345307109499054383717904917220437086922483772126778745952240564097926733382854649897122445884813357818089407670971928678570818834041406333938222999387731046747190838068363953604426902481062784204198113554948975329337897435630908776800990087380354117059309434442298250790410211106100751330459052542549226119408815394832844936708514655844036590964980876221252345351884796662964210939433203859360139264518279614044310134191205383538343009485503637676362636278907722682595992214981784717695562249783748892406790304657269958977700835242077611274369491806780495271256332026879619493510921313689935503578601956990525444310689616396859336714269053455288965524659678715479459164871005078680393523811777721621058264155418990346187366355517154237179988736119699424044601274559315651337865434632646197170529102047134057853970498155019447576071894412591245333551678662398360146974842174079029411734937568331878386561048433451511589173462929584391493373560867853423679173550251801039162491873960831978104302041116975991640904950268202005012318501290092376369125585536496050754804872818532983331127176162223335218678335715798630676062345932089298984500573716396838141744432152748894702445531027556722679848022237789306744517449713593670530464819692221983433585391946466738139119846167155006639533178213799663015607756280286674026143372282855175184423816391471345982572798184075741732571110651376321949894137959185189783910314468683447348784338187887561109750923524528122199475817054216134468130283886679975547344293342804615807209772514481187545591553714987581243018949457305172779713570346316448131173658461703767634596668041462884289405728559689714207706380943765380788315368738361258990210858235986673544872360722128103508704037753773213745907503242799337197564080140661520725406706557563340463727423671968589491047725859237482700889347998627275150391362901925357185216807484245780690150104145871476599348704412695998834249089026734254125304725565411053787217172840626070032639995368265509979384336632860198111782285616508986342910233671895143165939125191334026766181895185681258627466379301987188288605836393160425210403091208949061355034579358737891543122008428560146564112590742387925421220035052330407702585491848227503744696743316380210889321354733801441251212257314400377256213808189498485653799690530161168434307460198351919696008888014296458640445076946536073986055162858309878843777268330681314757840930751495253105715030084490751921274825836485065097529279048539866747791464499876302918903499002891526246455819265516089014078886800033602145981207173956441088108890086514116325636164672294188070346828900836823001157608154473856261954200494891252164829370810499317199436512927300862839115212439718405348370959805023140739165083179271785469603336894741560463189000906839039314668234953466183513443843198793442567356333256948240587940535923042850175749759716574335092209222914638178966151490414833552582682794643334978476950473468396958481817405114433550196397971795325507555948103660090655467614208256266092896718329090556899336097454934232272432027788619352507164540990854407209168277766951064974879159929573103703870333183746321743921826952049108091576843591988902520867199600000865228715148413273216442078285413835253796865525357385500843207151986881351331735628439985365240233721112858612535287418862298571707221271000213425480706891216736161363612768864448037856229826561868065983642528624334715389996221785445683152982696571532473241247007185386227540901348219106496167406950406136149266628454139183393382669731545944558327224629625344131254343454262878818499398948314476741463246164384789999315314211996397813738979749505881527627889044337871515922190107641560124111992291139133337877795509187466667308101481210472626843361005234077085295345603305057805544985096942742535507344801911238154478011608309811668002972610901137616326743694584816385647275024116532930042860563626905685741736263066173228966471103580803998656177146611718365047460412216863951791339874688817133502393955627143438801205689335157729282590607288040825064578048937167315938109162769864726488173094746144792145905599132894711574133022306156578089629201311566968962907881297887498207835238519756256025896128963170591276380205947135280509571432923790156310976795468052213937994063696587723475547391606675789509474522564649400561822841164243118868370361652925465649231381869189902693680972627114667974857232378894663376036477184289601690780624553065894669380295090974436629034304753969627910003186539504524771460233983132694389920460373281079265058963028719738302426808684710777606401709691661654016261193716908426315336314719676610519288637862736606934654645806949061295016880156360812733925466642420244421677045219650637566705227484130286778195668657410159766048154423254385533834669714292572071014485223508234731983602388045197342003789214271118347548833740750109493669806434821054033744980632237160492896770186412418229158448694636722002373853810162625357741739616636604928390405556720386876945606692372514597774069296987601616523372370653723622722739864348011044678018438245706768122937227585792379092217234602955598447638643672979145225001520734817022293097850268946349777029738131952629261473728616639852452181213956894273608843193364047362530899957494588295588998337558417441625002459551514717415709796468688701843309082614121676642137360284885285193268210713037519112476913985873114531941633500665727280108779352820258353763356728389307484774255786400820714038120442529273988316020571952958287825431819366989594553521835632463844947778432483857056336421318329312922164304968174294113494076477228561635600723006389344650635073434260341650106920681981015327791789280212814272581358301717902821616490763323871325945564849781879919432385062002319215688504024763877895110003085773211833168217749049480507775475904950532799430527657758469257074665398325730484354684708199462271067827362469579566017827102394310997863704781788884743892081856399187237009886676512910767124071103886317375712565067025799609325382097497045642800994615478804531275738382145182822092443342283414234362923547285481248331777076947955882401045961159473072139603193791292120081157081488155399103329527075685015878594459486600573586827934742404103581004123531267761162708506946106680625514771622050513031501288315644232892168423635398968482527522217947552216173820465110459157906104119023960377317543565554139531594333480562313993917412466753496197277858450045991162692539871433239001081724488410009137080850025056926235624445439262219546688609045914703183251148788123217286878479998993658619827705323603343409377504467970310045468701994721268319126762951656496802627580142248611610629392334016965551207276628790800673248561385887130918216691461089789068233058056331018228442746439910702859034318056759737456521806639478732243444227451228828784387061264622258706469554359905193347997345950616377218482103187351206314777260763393862053766753045469791566573572927429196675490522317804139991459832354428952390578836717849296512947215559251667209827950015103950907130043094204465697147250653943261891906460616394088223283161017132086148226716690282684389917211420785472291059405807151900974660615715328021365469958613164647805458841836612196682202812356274234161646954308338958632538947638366590549730379907074139165732323202313742268570808442484528517985142581201890581338967821766301986110359138055144733247171863505047400889709868521566609717410982954310574724365409470438845422305810067060968223092927624527472512891523154478992727356909596279165041933979969533721150456922277517460346806216615498689903095316940464418894729667699199147001737432885493791189496253969305811839319852787517269055285671649805469746655466714604639767131243668336474997877446007592761502024165780090797683892708303801330772544206669597494939982590066863935044166060381612157205971086618557533181219754935684290077322947616782189689491947853840631055507909430450010289833080142588515809691830064718602462652904407365776587335957142738141589805158030421212902608551770345719098773393199625237318871227774873566851497685460060756013271601620129701699449259442908604821849816225052381663220607648743163456974534499503231011973356834722790203703119978330663981797959892443708178499401244632276800303598579828342089293494984687184521042657533310138199381890589333339421023867015754598369780216505029059962213081347582563172491944450145684104491639227574006748583054595382943782744963224789032319198741173528862078568770567846593493161419091903734776723653113215429913477226073249372342229384612749849156450339527009887460422888851809870225416816430181694392594553896245033760625545315468851776830218431578149427756792068994350699281559043530326109705040853039766368123932937055447417276965844534410733374001977481666496054284105159229941720789134369245978444887116318827491021917796402457405313811272800842525910304198906133848729905578757996421818141886838396481900156094887619268095423457436435338825094041317632049579818483223358975352857762694181376427476685812493526596265461973542618133312258910980880465934579240152595119529026595845064902477461228444042892455283430614517486458240407898901310571835558368370514230746236994922530694473446220506421285506575135980613806414340874833697428723205295107214233917744274170626839708588737316870714732561665290979811993822304842215669555448610346703608616796669355417085799503646511519939224202602819442929667844550377925731800211138025657302755091701845387466699994788587475402308514450351943888895947332448946442254868625447560041620919346226615692171626623726500251865721547815306513007213550673918420550402492928032704178604887870894216231099832467736389225882097016109894003198780880340088729955855056088783877757282459972089427020755488071920682830176451543816396076002240874061774319804137558338939434988459638892298630570439153892156700012688197436397415469907479506155146794120742189281547241311699083258587444776358620444814647542684829040937046360497540345586257278703375533976971931383809015173189503671013371668928559458015509083791838450246053126471466226194999896292482012063569308438282940629001440696829349552567373777378796041613527925777312714540166608798309543599662638885093076877065539280205996569289836481407111678724454714245781151359741942753593456369027051254333298517582090908721686711243905563350893597063692075640889993854206161302274535572844456865748112700105315623552475009277128073776379607830666317815991954226617733247380690679207805492831541749371167886009908006576402261014119424950870807852766031599008735837002987055153977336040117243350713559956116996108411844238517010023605635054284457936195913525886660517971929591318908761748911193204442737592926002403510407121808040166339208515504332046702231781247625385196618621595571375388845513627506393114052662728189974592518133032627003495158614151806295305920806594724296569371931611784013098598423370623167285251705256832637977367784388683256525463166881752132133406676540227488469817198864183448145451800758597150188199071586573473343908453270521752228076644192983237794163456227239383133540813421847341178398712228821970920773211741754623565928514360857222142289613151776486492047753658516027617310275556700368454709022251908185728693759662941420627622724838597349769456659212437313240642692267881601901995600025089863873812470846470179462506500552915004048321655925772802661145394292520110504586498380851347959521077660418025048013729877895661055567262861627793521784962568993950377773951463496143369918751981813774487497964303828063953817862697687006316171707972084016093366606047922839232879481715987121951068435044706512905423021788312636934504385909238210552494900354993135125611314148798998037762921222746182469800872861612473646811821552027026968567423568247153882657720016218422708637485131611079686098567167925494981086056386554199946197419984375456953783834071089786464239428569523783034863978994288980537517538040306580121409327985832364042025341910247425910744370611689488020562642238157358668740033865428336941374639512480940488434538046154533120110687607677917132962361656131720840444891570797773862062268455060748579831647357519616143404761254891647569219263583039841417094673775888598236050856975825496417702372758358538933740159531544077692388337273328379733417212678758954812350698201238717960590714045696134926360979868632488148401998369515090889430613494051092219204886862587483312622416067205310971677134596274154550506893893891104228585358324444535911138718981061749453560622449896055688540883166832830084645362272880361620521195827509766966817616308213001417974402747329851211776539637702520464105925185786488373278698776329410162942581101295360048442322082338445504807214730203900438595971205901627974191955955898192353886934441702941751142977857465236850935957674117293125758021905104267693260064999718946097737764205049652858456946951792565009330413199045141687329042437450962037203679837766403163897302843664446126726528043555248418021753323684805714374152400605127356903157447158213665732850155956469462356970097825021977016187773846530227145691760287755131375982282180384206398852376884368719539404152258533687748303190163022871884655435408125116631004609264620165984675929879017619479555257864813548955981664021192797916746602680403087467363312359530200568530081425165820040257591694855584117896602544377339270363445595483709331158121735448832362648645001304460484629554390329941621347225248885948647774184161485550714632559784402041365531990086720130506347083468656864950746846078314874553824290645028698728108103349823070991780416598224821366909800090849863780729401490261366481642208779427371756891815012407540863010287668422571861019449806970028940445663575154607280237507935687318690990483517921660903681669940463852387201128583919686160933772224747264835257980916706147009011808654626712751381294158004388078052925715913860232076919289751178688572071184554768192988105007034220109381314293196924534455033970455697566181345174302167930672406995166254742962730419168499868078079950976818634505999901279662372550651506957553855462026154835408344094020500628531531739285403503639288604248250774581827137987823660121250635365231757388990404472687931505199625982160960359686046293181435358497674915981133925445545677238767353249660937517506899054379502494346433296942654948242868732921927012393847523658929114068134940500666128769817894625351570807108663282633319289164272769728314969766469862831153444436599572110150139196463158139189954477033693300254835353923659739913177729149212462034421157213615833473799818576570452862557109262393577799519809998802870616130974090460402939374975353795209882072649436579901783550824812005355961563138411682008764297554591890291393369960810839315069916012502129243932125523962143031960227305618327297833129760709797266309121495013952427134609727552137156719012877169683310358748947407098072189364525533221322267236376030449322136243332753622377947766156498373623481926742904745348667811621357115919535329058185404657631434790280354803448216173508866060452482849489458967564273967221323545409046756474474331520124803955655985667040730362094939126617498989029697347260291523439570530645714792500940775346889507453015384701402644211301831098265573538010453616487265999023763354413576001205271038915091249981527993422975134741926607521352372774749162577879499621565140515399472940480001890713608389399060323609721588053730314420732166751345283538800691973950734991617235557325499287539843956418398156321103056871943103618050303525592452880766022079785330746291363264624526349492556129167771779375489251586645586667723922548448901214119452249482884402219667554981393047296321038673351759830756453837383741192123189030661887974993555190405267224805036638997311259863844762134282320356735438624145169888805647509079125549018521447061616459494967924544533248761858998534984468521791950388890376915258157313396110536645430548039577955397124436645675509021723993138926963261462495294231370440364060940061906775942894059484513093338466710512231402534780946558008041346593842919247780834283580980549926902261555705407182505156848380681251098819273968109739052659776714153571664632842470840784648910118250222056546092385605987731550825300853219075753101209851542850397755905500819814878576572235039323444617629245221718466612572892648469468061218873871686626584734043971926174735269309263143229865748017568987688939545905199618571697862076454914321806136980191291298630651879762722560504717452106685594291271923928692857860203053958620672237015835401429436790667645069460927498456288433515227756800042505005160560164462248719200771684987974075779020213164289913447030492591981014707479363482614800565377062283862397540118443932368047774239739309714777945186792962056989036771085155954736813579589746181124914973179895493281744515274766280532511205088044207973240783033806291507715022921759421381068784926528090914190200692628137882025977150503877190768385962347366640198455493537713096036133725657193996833748059453838389957046474860288949753839104634072138587326853151964896182246379457237893350584104677224617811981548135159858255651294815726423771859531015838489206398346899130591851627368119550703660704967769839693315518815621816635035726514620734167067712029773448486146741414126277782977164299781323326704068277501770335679687046824268756837774347826802157032250215407289786375465767020752309956394473167415653588046738544047993659310512377999889934281484576431001377221135964795844208032588453681177764993789238476700300924415010929457366030792423550708469591695244560466725258553052311064034771512541331940741136805984980652923556882150075588531912648773014678722225346712582394228064401317083975170416450291818957355952253925452670804109538091611449929053911195753869875682527803601190819277371838448999252270527895633287069812540267132785749612705381011120779238990294183173362002239174432465316037099155588083581515821535485665698944622281248293849210550455761403728281549735743290330771164122070425053130530823679241584059726033306157093895654393927771713074527055624269780135273451799430731103050665100181370455824709458194452483995487352695386902611831510735872610364366668870788647646171247361335374507061492382825659471785852358121790852432536812615147204603341964621432773955244568005816395357353942117869025607399698054550499642590983763345205024984393567327905639669199115394350582872119037535118494571688081389169047174627463887334037465073346651528839615539277523105270250468448205597422063921100469577656198972343686420657439904300787564244092497065770041587261835482683384026080088255283224947160146848081056882541296909747488805803429526019026481540963209615125380098094837067251735190318579726467237522124451094654870899945926618151121292153207227399300684028383219757904222025499044270086020257963223456005401798303150322349550745635356769715694489349191125018106603096069246068707363185317946686803716019039450725181580692353308672309301956585505418413553247904151096089033440118471409301470036922940011986819160306483833527079378338279553287752138750496858030226599722456039680512621144346383584934973131005377073623098761030039658603918236538525594652559300270448372524842824469740252611178473719052637369757340829024119786004200175093934871485656417834312677468303522793732711969028696792863204567618977805933768640115593162728237185250863038283468492869244421397186342529672844197832039798401262252825550309464678936308867644660604942079934938101215356115204824167053694469448628318097328830007916343482976537177912860101006379082835514582226431483529396327519481745948928357071507878046731695407478260229108064400136434313899880702466452611107690292774750202389284035682397326737762735303236624801028002878654570551629882664939935237649858792153187054412257510500123032784767854247741545832146946024058323256398121890541311147364567331878905938493322471439137219708790108105587952702672406751442288228647779112128107546173986226082844437776148108312706653881626254718370788218732842572055972880031419077931466396934990243693335387024890787889174159288831946827344708230142233754947558192466423340564332965261042442907784894345880245085602603290428808402745999429862339293455487077842699341240523825712507621057243029485535859523248144732919170947914419560030508312834216991676464562491573278675956493311293232273588801446464989897253958866872465574305124022205040826577481297970439177164293027752862169569200902845259735827891355310362871807186799240937738650339416125662843110714207891466909448705795912025920266451638332758543662553116408423597685217468434828041714774195514144914746816314870985481545687708001698754802496612229267338406959495750454105303680942626703557754883675166384928173359821128721139627525070678649738094020593063651869525300598313008286409436862634068644533055114061325944931320357674665447889294954221537867199134046760816975876851257907570495689639768364462977932305388039014486735409879262117644927141871565993673498234465274411941000788962141012412921696112181573322871605275799790563861928334976851892017483038238380847887900555851821321884249687524053758102364284751236562997911724920430449213332992976806634887254527376470462482248221410571186522790621966916848291712113584647251261407857652191845592654027415069813690521583845262064614025539327075460205966536861055248116554597280289986202350645312193775722459429651233723680772558658193211091852875002474029609790901153190431018573958922829066123485503291122091848182097208220233493948032970802799607694227123223833618409343403257453451408570648049974775203826134268799487007809056118232881152403946606017242345370743223129469226884533213552097826543595046262741287688408204571880179326144762186802916831256380127748317653609509601566830556860414568122480069441161404101935655681379741741812837429045639283800246535034596951227571682883260472338945325623748517556213553045007889742342584669743463335061440634106969566859301423395486788092589981184054692507116826733161136425215962488122005979938701964445535585708973621590531221610265437434240659685008880701496722244847830373170586855772618979596334937068971372543026504435853255003843136728989462408025701226029669203558350714863045730038470951267634856851622496528614673721839046101832565941981478544199573682914502453537786351513799674933409704475646171255982861609679093254486403969591535763382929836232508389279378960326280923501599668774846716297294136974421525487261764828681873663616353050805678624807471975268303233322338552852737934703620814463961323999708524935258060859266063600346894991648364946423545573581183263026853227802620329116862271836394455900575629291558441715863715658285726412405546833164179458390868795253538924643916209272937001207234250408156570308606685559256718252024223416104779691952580208092027796671691838471564799222540526548300564989447567529350679578138496891033553318003080824850283610357618680082331346897986139368984566475162946383690318108924642330212127758958574221328343014751008536756805809023285426135976180889995068708349833314472564140316807993437460932334916590483917513801253195932777218276542140357740838036284936619622110141298528469806089676732116882480326627677868217959088075027933298711631663957857211987356681956060048392834021335375663009517695982730100868503957536896032141939646257932936760906874741010835809354980278196860410655097515268481905184387532355934204320655738506136444172300236894555970292367944412571885186985360121874051305757945075924979923474397767652831570561762566999244979161278373556131832513956928912536858334968586909659559579308888286088364964252394211076070995555656411773013616655548661406768243906198248645562633558563349199840059092488630881539943430818140803312364501384877107558004008495057463736382612120560341444729761434553301619484015081047817433788176005556249735213511887326342267455505058496851542334849664299683387543266083781605121512256027327440490055987163094648554409441391806489224567437054602989254403787319459436642709015582351241619252997657526698970459746798682013588589848903739669912941464879185367291480754056698570606213818477260532683334926076798480271572513199465569764826514635033086785561593291238482397189941501124873291151252777508872137136146415087210335999547071141056828100389684208549239162426399743228405104987331478593174157636068872297286026810584318428331059495520096863149569452935577089408689605539655946096960087059780837164890573712584621033375140900709913324603650226554911039694211749444707044780393710056372112943471609560523647095510959071416478684476891193733864717173538407092100651300829615489506076568179547430916814515423331042382929392898537342617468161370098353600489512284527156548623342757694553839627540238922435853424151548540361404817652253110590581422929503718328691333398198050898084501409594251115176097286565997569759539135637156891855739757888001617304289592712327073036438172938748527563626396336632226653998405607776321004358128071888255887252382072076981774134857413763364091542398159991133021131521854570305438120861799914272439076132287261819674615335371480416728787120708066054886062121771674046608335848375009313748336647775939108674490881788654686365677857872729021235318569529332239624520324284293626663733509081017337913222466959716882304793398611869323469612370130075458529619614638680884959120308072365136490213852789201376158112740230186442063908546340025644138000629455184420203014785093790289609863274415411765233267583738421005971583882308076706238192970711959427649142212418638335569600093973942787899155625502724712300427748180781971618756019027857165190723282382571263089856302081604934427357049692318657873503377128746857618197803247859288849822845997932731925084491973640517689782961738552459002384412905102571614687631540441334443095730572317191748820423117513469380957109442528532424630343593561756781418227245640191566257845036650317573831864530358045578893705282539037850312066951805231244670843076715908798253664933433459383364559126916046236508482883192344109231839149116903461817003083017657594615160104008275036494743870112564271231726278892216953393601047265925453019054953500207303211329513482704942091125310667962067660596659950070206494143996613806978393469373606783559932644546707161810345879759160771768970837098065815876293901080073181997783839056491329496288977068978150769319684046246755192494697778676169435566312876263087050871563502918426746419038299854083184817305143968960391472083083347209293322217120389662351852551115349016303888356439039481243870216292576896045899847265695337456435184998120802376836622684158747685518340660887078383157465159332399614102436855302498283652642409057208443562334623832294644897914981852151353262857562654512461790967626015778842505729949680655919314355619004337981205573967988306798143056543650469774528644126730205109953979552616597427876213507035905589283616339322365477437329372115667298292360997913466691651989834441311882321794188338124311597936577647416187068696674922726653623793000609013823260886700942693804770673617867712917929465788536641613054670116777233314819149273127224955587716246503572651334351399707703745135430952193785358045332056729912520500786439799836080446346653659360436006332944100702453418653933256902588962988454343350127225246415125870580406222397383227369990984563005955715926453997670083032862582004093370857197061763084389691164630052507083170514418996270113828264781069903483123767136834633832283933833362027013228145031046888692681872623532076907592292197829965718984763660866630159531367432535276942490649519789745747843277521426388594070367093081743361728616705808314149725494495072789979959402943920688848924510075005808698414854954520081455056289988712244011971240289242900330219939746849245231200347098183795585839909855739040906276611523588492985980327058148013951134226397017522589755314928257477491809886099556721714306510915178817894237459461199794042253779038584792328969753329100379041132438474935706411712471798524741259780056449349888925043025369101715998991645871796714008064719486476412544058302047067093731159754491357355873451212738654019630216951610191159618203715798683182966344012469295293837007347443917363172498862759217621144546032913311066395014009630818273843744643647160459551814791590326690246008104854884348236783131355307244719375660029348012950675353094593725977615061864470613019817797732042078024249343355993014244090578115447850353294785062180372832014964868529169623112500715350849626478058000690424923422700710228041809356454482884957037530740605154241971271657742682506471894948799476056049299957727063757502073470711992896372703379769977076057610675315481452996601970419607435608306382366281564371377486423436964843477600258034931216755147067268081089999642865225535123736615711101202381671768355942401828850534881210018078403637510945402527340997891895783201586254031524454889580539274349343527785832267255546934254919432930517849010339360245341906672284308651824978667354804993374623403960675942098846117267083254836561279138363261627524197121871234059055887617224965245163172416058799875726569958327607035693750459018369732393107231350811417034960730078198140492776377895156453524924177664114674929826671823096392958803156693069542356469551791447590745434863112671080625067795450722722055238770294063352680378714536530636580509672183359939687465179026223635906250930633795752482541400768967518340180907899736937710835965571539709797322178226016294161417938037998721588898322560418282571249175312441190383054047677099863051819143782440988415219435098871491886511384997474743183871503595523060726540923864884755378133841396807467063237061958247738761820091537703385895673086637936771572409985612171697385525311903279445282549863922145551599403030818946773385140404302028255449320340603186433275874543707458211016921903463744034829278606079004063926097611142713792829150468359550091272103540678245621679776413499110960767686817496952240098056850832184043507473181133445778542240947268497587839744354525662351482790695839840040015872638086569002669852677045605806539044738139643908914226706784627953464939786309099455797671987639647556843757834501888533509071571922557658687908625238325969138353828424214205245538240261506952324530320500071605224396353178706346929333214604051157824306240436646039661062435177472924959899748606212213943650823795706039863155358468378542193960829656967038782521818174375046166646327055019666890786232882089436649546176992318652647906771377685017647814074201975796415536558029687891016037446601170600638436683441592925839813942672192881069526987085833971719319891745376051575935559476982564095508718174254838374120735756218330286407317030771668469987194895555030403528731437304655249201657083013604869123942534821624568844095685752435158295624596421139390553924282632236718310114645290899501202256617851542417927184660882378970656082705075360791919659869684610300698344910881176987900722441795845517749797498805524049252997756852533199068165974451925086299393904109069780817171169299464858331212613843830575999850239590881212396758126169228865418235044949085377733931163119188074445286376835522369757837944729932222808510260002919659575116317054385074546881111371180340849465556788107397426743029293808240916229393323613311481678399398191194546139613962679133365778468710878382748594670591832971023042422695827253657848606072846750029770006983263745883246675520422495248791357650222462717152815694404757310609809915330583714201382655230433263033069607521532399866716117716694166287848686714798074180240454235893744108484921751396803341858022461938677021473797697659073804681507726606830198987141222071015880253602043148277108754172316247434310144441096211287379873696896309103296554341154960381899428887310222959599831855053664828795283603120495388855348558174106538377783707985905939619349824572764457786958321369312347901802832940341693815955002028904747555364079254475182452553446096693671199477683494002697530135112599361128021440153475395602180933120486326774432839174150897363492278904040333451879195776592018743267656111806984177544374173608874156883415024361235222510455866753529791389901692494254830833592428713009690349587103551423917458239457417097756783541029128145343353925427079249346068423817158097236323773635512909612682992311411938663688597315374607670719107858315499848828148359691767528577544719166039516843828727521318792854142187893881278058562135665965835342490375061902155629117648552146533232186813755243292398451439715072134121858899471434548007852170328022597105344296528718669700955612813862748271153832719359614464222551724112864129176412546322055692450744633710714424788159761636382249516242902804539915166784132937737664044112903649388985113301521974244347345802155483588797595794725368134060968486530624102961932325523278696024871810745282469519749837023153113430269676825993717278079137966125724066843622323966043282972204760951395495749719204375090480398097479656081735720284256779735369699620810967599606112638733070572115019393939054508867382112325784075849204887398750130985483084202238621388905114938897612908928260440580641221436436094360524029891049791315513289097032361330237269691976365257023791026705914938190560605752603034194662569421828056972607266656722460968478814031609085635009914218145828941034786728819354360839706687809025165423111682603282798581094381868381010696865505151940234263524014000024812938323949083201232891112468050324479406021087323751763268651846226281219217632679500590431777906086711132275123981172714887940584461948122697097366640405088174821161080799857305311587920052410984168853568300016756685071336719429745943264443015356461622844637017448352621209250400799133841016938459291095237452378342535817117771379938224211735737294165746612788462084338538238190265157182720540065555671485829469134375300354720667286766867872308958185624422566482178435090705312812378387315764932634734642680628564606543289212794214044773692643553793470602628543426194243977445165962688706623517265761445321958211203490382941130671416559209624601890913302644894258021440965455916183040044583588357145753779052277408301589474067892892132170057455715300196745241118374414433753735525276792843538704650504841866982093077716472337358643195221254915007294086872316936233964041275756113329787503016523551344044576902541775699097376929035094101482677340779583823755258197795697626745321619182739587526384275916049177230180528369679125011132496203984579401947325646065090687971778977483404000823890513296569348211728549397518101767276454457448807079917558484907242908104012905007094668950391967140318995402533176893134019542055694647884817380598227933226383371941031964520666343184366643251498599450416006537326411943466536868407117624521397785872892026075554398444986396368015713311540571020649506160390063257804584621807752418528856533692530280769260710408301277160876581823590184145151666324051764857456395371865674536196860122334997461862439948421313720236397141587005160920415895134030248694222772923073935890717742513723157724818929503856911628231326742684941941814550313407174233592569449882070276342082512744239486363386058655016701330045441013939310093001110879035959106288902898849479519473169462620306950419510202309734062562018599904783414334847186338456657037940370671483255231919383261195853661946163880417700254602472112323912905463971932245234333821145773241640467402629653924069477444912098626110948672378664461685432078512998000431582243703620537312709976227631580587327428674057491122220592320834539758366343786817453223671243841553749042463600091476189532830259838142595357420113883363701977905545112944099579286601514432369909766352447881059336261269966747152504905385214263470965010601659811726514173579486670532819312771877434591158381759113907983811251472480112310062182202000105444491945104703411115907637867277206300163630502432074214859625602534034360448419953878706141298651295501951380406805241338016056441513823622381251775452163619417529172291895383971975935586265219454535820700539472415808680879321094131693225966633709932714939341093429851526931893593634889823061297179368663784423931739039070216162095505978436635396581561885301612412319947227773097370068147851317755868988515476973689100065579767569333530867411590419023654365909352823504534806284509040574439347129876747728583355573895446124918530185963487141654272201699961730542918744141528244604448827203972829895857745250104205117699896105233091112031743144651827579726061089231357538611783582199860169678837169957206041885964009974181125070017379272102309847649570342466802379184152367587980768213569502049112034302627623355271312208125324497626979637171376399562695019048235242554768318119879361550036004275864637914289701571089926302283621971616621053912094654279377513993357560820369275006039273637004310752676474072218985044013331029518712993520570167895719341751869163990880199581890683075974150048422219219437215104337930768030081109134220738625013821056811497831493982421936343047571284507285318351886159004746468872944674334797055155444199900396692462145735926188952240916287438332908172762765310524085732481950017178693691957670472897383962029327039660974948158815984944086000295299035973096875859921581809561296098615262468137446320958225486316139735678903414549821281982353478016279740654038345298526571699820892047389138312943662131145456225274807527957489281600551885566012827002178650197696800773288987047235559550712435040718402120611114122401202348001232597912592284848530537327156230639286957158065275772268061903353274625803302733662830792774041456603361275224737375943853396350833030119971987901049641029433196096370402666733542371399662595635410831913196374849494009014661296034664617354564991520830223848239674059947929315724131472486699764826286180330147437979056872465832178006358763387944355506865265150765866856105525905818216565362926977464905367648451118135578143768646725101933360935505884135496174608923051976339458771213697538754096337936781868813881467231306685869699984119697849357454853914515807882324384524437844083592858452313701350164094511440411548464757654614618418963028302107846120389911252012305311584840254561713189157780527524677454185466775413439260908753388168499733190746351451995790473343267911986899294298449038371656870844679690184290786435458929727793029849637987504224887025787553329148993696515932100164424814977137779420135517378112075949059449545875108071477556575392526662661885701406825515501832086291804183705518734360502843679953842611344161836084946077483697211346272728100840214180614662848568084713254389015167624570849126450896731665534567492352334090289109367693596114614351307997261978662296967755965304265296941092904404224436440292461388077699879210269591869377252196687404240849283229272243458097021958372965211552175321977139037189952179820436925941473452337329582119307839477101547396311042699250886302264288031651507427247040362772965898152465635931277419569681478875676881151220251214442335447894951305011778708283497198273554432664520747899737849266846375375743924888806815415538860231191911964672229952178422291604762656649008719799168631524521625671206112626402228012291561294783731078435077255244634152409479162418468925285848676540149178321336156793258551648499349130564009356912932906939062102832899148648060028063665855424189260683658702257507875758007814117218254617465948094999860858232070375858271876773715569091596798962262314731729214151435741742986018524311527591332730461246348430564260965985509502995691300872122692779730758326645450222085811254466547751305199948939297499675031768794606592271679743995448570449870161423608457515451025767424877134642403959631753471498605819842743950644788374632694275732218731417387934843400530761442357576708021451303576546803879137200710681798009077194205156110379109951903961191861877931046341451871707808661300501376097455332309801805072633410778913930928235041549997089540772633368650030863353140308479011334526740948424479730604674550132184914113365913566728997417077252890710672170226287730822890808488335364011981864140327309708780406911868435771232210187958032541391395677085297706453283958326134912081042729422010521811815147302949043023281378813678545388954978697665214134310881991023281031438582554681344001876372192433546843279944405625023323497805617018637595450394807365171718318810525869418056781029453218349872537759811187636971093914197896022059440187009001003000458623810045415084930174170675826186486081117219044053510655984827641109775196662230305609063183042865266907505903648171077492930418885824992396209469518334455977514152178428653663457823319372838362463093171250777658526598763102203453041367975289784564506259230278456333449349599813947104220293833156766570059499858345052250039722106489083201983178331913166617684167149597210482223183657741803571845292106067592211435258056670715587484993974323816830882809333890930842854275166501499323310795335159505343750720305056186381531860193967359671346490041534814967484635269998146297073629979817867575860737609983631278304142592098827940797602004397901689725517398832121006167661096933663430329536915883554431220623733365568734937099543177383992710783282701936605904706492302461493344503907637690870922724880365901950317218940177057859739324626969647496354780221815127297724985290442110018031870789063854308203151352894771208050477484559542181749310618104081808882305871583334180910728073365111787813471046353770160689951400303446703373202241161362528983256944242500511452622584680755831121121630727703290471415030174464437897732353296904771951809821389855962034922090789599431741266557497086873944497143295832050877501590244406039930984908870540779845553932976884412808564517142692690981700724127099486964529789578454396419513690207245805473948159305418346796484804506159684150840006877383458528925964196274734104826812032049728063626314860562541706043203743603466601058888320144374495417533432702919416351139394728072619481491883007352741068077943971464488731232291098831286110588749588338389676298239338762499415942602985712503148355875571087802653202450286929702227120297576599810599603953193802729385512995586928292333686660936273222295438886547995308000165760076634656997375231481371513251654275844420393701109874479834199142511873431849294565771247258418866675503254880350525628394617083807231520542872447261501883422061912438064105305125755528860998553765656330395700118821070563045901183830641764252853419603788053617687767683661247976901747184303517651147724901630450471749135645918678555149650491772454593036483024186944322198275661429398044233329922400342340336973014697823540331043337901889939419687805738807270192391169416676905772601863157942612691226717889013437570281474374983152295287588746149240712130478891350467113583705641930485576331647537081214762901031340263962606058325935291286429993829110270184325240409075846176888574874582260009806783641950571842857619793387930883299000783848550897194278703225774458975156823387805890790419133225312477642675741871130704779236393473732013388671920201731374328655550547737033064075874577980297183565183129082156723616995202215062591195561507765186945562145913285935396154725069336764821110401467263124325375328576076933801808654328629462906295232601010129260707060055658242230529253649578336234207042908790004617276881338934965782090803980491218685828069881051236568269214450224982051476088959690863659529415630443996488709030992934927216763903348506315226138407389315415488407730538370296721593369116242876956960877979969677409890260918587236434897578482275814564153068135847283319585998286016668621688801956968443074449983724728649788503245329171638541582311733470216979904520381085006488733242879120919967352074132186082758486370887013187341417118266362384184155509284111752349576339658375457845641555467824616181018412381509411396148755597746509956196546147001160026025582712695555553666036349924222434201972290075741162437815674751152929052250882190682922782643578072549199051176534862379365946154060402568570472467663684942479405264993830267234550786092910983051269691535407326756652328119833726137484156806543480382788446559036832515443154086764407256156046131197546011692025190018728998111667549893842395867397433046890729237439208086787153412440245962001929747398154975596997412724691533452175253513712847876189771821926998531648523579844354240197253716553743030992558188001713867320564465518328645843129491081641936323774405255394092739348360620366746884989735451990896541642166856998396418598425658661987379250840788254375931338222657638134219573912436160474185214468364375578982427403785035561295204146331546992834543564563815943315196552850535491586332670365952438709172590810004271551631466914047620017793335764050491265308856879746847268900744965507929063321598880339946654032267330613219500024355157791304875510833802819319727605194190963655146027291295031433339636931347698903279107036499006336601708740382175115887683397567100874595520098570981340111369394188412826383081890345719588693367931036227302464940544206868511520194136023092523418820533951820982847299016233238303154431980159903030428099361004383140544669487868093195271758331556047967688109384291168770039763208720249126497818476706029328354408322416785590869042437522884361663703083083588849099664453592547777434814965288645002154342829814030041611934290202208716727468809820940415316976596201972482188027777357391711934026679847597089707930292168487285875072588921601499250875890063657730971359856337338550492073980709176363472455028130004428987324101525988606927445171538026340914135655785430867006743523669766748576607402508992967663497844991265255903298259184501340955732574608143635629316808424880242318056854345294176079110478618445451889415623154568123065726020313903739786131060093960560085269389056908486090817785432883967195791598503700691692055066899675917137367478460467150911793244837481822900708462444055963291463648778094320686337040056571273890182915611241341865103887622218039283916676125980367457239030677575515026268601314432313495109499928236551593110678555309950607208564479320112307858140250163906724825457577306171140923977539733269287749148905207514555051791615751175627708750732227804836808175485338598334871803336335015743093673324827054830609833904244235534517882641136407587634132782772206170135478156873054217129314085330342031793100552890307987630476255230964407199544980258701982275479625445253755336721358197774993277196005152116759018290916517850804689431734675081901304728225878340300648884026780568038488786701026929827856626434543537543778415596380222081939268184914779015629851398642716967605764970899988908937862638818632823459621993416675820533976581888956262996075310220653016044152192253773522212923758209248918840573374665258182525400468199360943179983911718709089219336260603021095267576861367825270553353213437817444630524326732599711260181952938097971674798883187194290877259843461684879159355039066963952482289174510487017599779473916808104697661977929306424728709773465479327108866973474252243124535144815216172031361774170287378094071152797607518728374074144964702104779096332296707467465202103441271713245161585130844543278311999845571137738890374263946568951185597730331562851062599671839952047906757261595448645007356269587528833949216758532172245794791837591201018840942208766178680843794780491297021524674401226041539756231677734689629455560278746263089399324445314925107084290194229945241846265071614881366201504780692509986502120131565973060145946683427816537136840717572626369526917309758035098040390876827275410246633812812088401236132959833598919931418961095816578645849141806742896954199187108247851355166686025995968718987257170720496650387995637256752077926475210352025697387510220760484487754721805639143176446070123134258450767048477104960963789696820956202237140348209158624875652715259144730143446601856432128372408596977704959437315373168664542082040236098307402251494140275845675444749000294539789022441533458334130840191698634735888914388591942788730178788312324103456591368270950345774172335434235038194091296985227956615330731784246337757278078021577885106665949014699393503167035015355684879942656715564158625616672930658157539687059123978537567113243916002637564783340729115336756977851436629510795201754605538021987724507779868948432270326460675037876499076058863427289796498978113263089868783651357584387106809047650315117818220052050256715460224111733895727059129269087031363127343086873805910483914139693850186084365980683305134695745343278071879963779658573315326703398304378732692383061936228647733403408456347863061102495381739823978655819802584004559131962373650884308685582249088314818002186888826744947064804058904712834107783527322308226757882408591964009553376268089649796994604258485022967250781250005550740029416847332170455960188263629631482456874544205184463245720947551226485441694624104843377508039900882976622775818994124194507920266901425051452098184689173912977233693479852180788935584339218334767826355669958183876898974556565357247110560791898281361726646640286431879975728192532475379148656279456216818924276128760735032702710680543864503629216139456814631774890809768133591574680674781746315021118440599655986774221224649904213759716535150494397825769210648630003534602654065441476656914716635833693313082926816145418828179498893854081440943791283714743374011393803047644160469104595270715526528588371306954199667995728325300281946868295945014618449489287080829563197642310723109930235456133601316606529953282100036838385103603578330954067326148362887456287932587490219499070572086994002696975857018147046871130623168643724411735975928374784817335894874637610869595062136839057028947219496274706499875817583868649190699610908635995754653119514902724136433807179785637588959918140259452596350037829909113397424254860271539189866829265300508612902619843966215098610303268590268331413644512934739324609715345452004741946830198034221333571690940897593933570030409698532212215119434388608281552673823773156248612746240904701957668645215926963774903567870685800236930531412555879602466206129847933312619716703313957957944343556997026939974589819399878101368928120311257847366663594976008917222214961570860971882117442328634770727868210462508692239476331886041224623407643183954045016327415952115920819924630778747457901762415440760410186265513012093178067735000424360489171866327666768677941190884801011954468082697964999242751190118426825976992003756067441458704729345798964338368690218444697698401240877985762329841744707863097564071309389530899074988337749543733142645394328099251878691056247816680377056200145984424388550939268302870908903843581744520318912040503241460697439769426229080690608980790093924094404285869901546056659801335053584454355298881646369054914100032246762243451370487612001858108528589142378762876860555306568514482707310068806459183832990241701338063421319876725131921299905190535045707430030606918356720962687175867549963156832049607683454970584956570033171754802418925553203144517891088418465390128992487555585348375060539493398036162657437688748542562343250904220726046468276634269818710284697296688261651440407252909187911409784416600750176320836248091464484390533667374349368692175146083462815527580391878926413883752255153543284441701033308177390065283161376997267929279154518263828098877537746852313836163281199155925997427995578742363375713524830671256172388116026623424059345870938692165789299180736655652394872362793034323882336764263473665820805083426934446330269763078327404458626787694528269376926127438756399857610863612054043360964076100771542767994377998721152125842461584996703505937327287278753175291274765527421975285079759554671684525800966552576150101406385056996176013160510146689738653707285246362337209782812887887852280880907511071652569611940701677823264579545933863157446998065919974095869526650740002783871528547538587377430499477773390161956911916886242645147181348390772243320188021496332221482766267171935535846662380959809122724877144998900425209188832523127990374447968559736900780630146224392919577323829908162987542130108515644576010487614966836055012977038727129435544915674582952424614967717300428685187921089986752461068880386102047572689117862110421843265929492137795742166781671404108367999015779316810615198153540894353676679195028128109868795122399561082701391085760324690768621037919941025965505224332729099180536928736513699145018339588294617280679300062900955485525084617149154228229010865557898790575799335716380962175909413886560209698805408686225694787425822018472222487365126429506248425891254667113719386666736023739660676435853697518812080663940252597787135700031391342434367128550238005247184213950769318448750082571732516550045676140972377985891538990600073234847579905424306137780224325536861297959162812786338473455557723604547016933226413785449196807976820773846874666686772396793133991782761802499487115867938345760302249740427471861849892679897440003846834895942650601983723896742478009765685141867440139666602598004828274014532515814909689022293916864179745591759668891476681096605871705833323013203532671964233311766757727057078430795960244396646425210146085487288744640906113605504889642018602773525745909934852517677045633556326845654513945724740732730506148071579984000030033460592120293892566289223073169906765052229800701645103090083732492757218637488966205310392574984541151856804800550867574485107786240838256192669876754800714081010495934461439015326610619255333609535227145523464342093205269177406848996863537817983089656201562996342635711137855494019103460854593731529777584488876008554731161289852698089378917534409282279604237506656999212986827403219321379761631397833901486798743685342566044785117500859100058520785870294783166593563784857720131600951445451962516805107714195904865674212113747068567762631077703588228665997807091953797380209006191885339693876708479762038993133716621922980505041589034101473116646197556158272471988148690253866911636921049981172724482533540562389240693154834152255839468103821059003899959863264608391821569865965303541616359868190865483665897184270668497871693699875805939853004822142870142307377815359062181533313073771193516467741124851962856622557348641382700989638029299963355447300583220501114463574755149567702782326121635551349574607547434749864199170460501025876575640975607365788897770910510915075839328975147537252763769396517687354038246564784442489341992139712321769277357214044452458899432334801118897091764253306617716752940169418473269445812716251050562340783054340444833486207023348082230467445488717995096419681753973532090563481463525683650830915131740499583997701333968478824546015326397402048115149020475073744036713045589209146628833105258375575077055362814888527801693072407862838468183553469874261388936103805887473854195574893565384200650801127090815244572554536733419893922131457475975784603623644143264545468426260806373977488912837609227839338751465069469514343512792187833208666793881518781060803065321207397121350033636158861088760744858760637986358652753474587079296824699479100941453073355609363400457198504924711993264113001509343828440166705412572735266954429068743711551367759612503513909614774460273693596435573817255492528746032421589880980462320842437085799036782184699383460394076093430238980321969537312111327612168735043450887564824255825109524434108003687247864382103467026705259816976509856091104954101716750538561114013658023791169633028801320872748676476551521800040663970092038669414816616675299656168883780841268932216338203374722621353116605101176412364564965325250071661450054552641012568465287519332212859014622056956708100369280097018075995175292406431329807775240794667824759847270283371809563054423889134435087940506048629145041349256999899249508219110787153438205771134756515881957444002589629953976850925964031047304885616503360862224255734615347575935986681763901250053934628424622462954146755576982576389666964958306071204454318548375082356956635080016166874849513053410393077570985403743977672817397522477894099322091953975812486771295564976001680549618487115832120030791073777194517569749036350152837061317490651705294139028325606741711086487703509983921251158650353223495672740337264349069467627870744349873836537823079854607618051834675584006779012820378772548127087020696233472467290111682808011196024688772880384707771719077564428409953846025669815306294742031347665416046737862677546124970995580867661818016469954144625127225573757507605181560231098949879284023410515202545464804146934869401094189851284425357767116493385596752763191883422487675120526377394794202656054643823384732556636427530538063713192101967522769029520590099893218839728138541168677274866893034912850550462005329004183554389551436862472155681590724988759119985815491253611638003977423026457402259578660877014973307898704133568954316462446495992744501516846084858767145190730357304488014733245178830233556253248536480673304076164081389722990691749988211950207032469801829219060272427437913534332818921709802138511989705094166162071095084513522790027507069881519183315869724960671471042757069289521236293232702008721503727033275187433873471917616303031428139182409412936450809637060931413974085630866686622799919402416816025164100810013973829278164247414304662704318917154104524526091711308073634492892181562626094311556467298038673239640856353176257573017285364916449668595714708142106031291677170987464858382541242673643363040318331203581783793032018460472965763188460796227420916330452716482565282385221528571798826245840230974980033914150452357111701500271369663424452118014310454840396424428706693820347597881180864697556775176528724032640079096041143061928034683371147329645370497734999878624209357652287774342228605812979362099902622565552150029437804208838948484152304281502356742059067224253546416757775497951449898162832864470648512096778235968748397534672788854688462291570628464404541131688409688584039407097940455975841605973752545924526832667787030493915281095349305649764190594330243138743725956382687080845220998602626142886600275971062196773328089428115517482437369174325096325861743856518035045408618052652652686437776537062738122356124833100024834101530147394783925054873456908794496659072865081851335701448956810859479273974148211746905616784152102240350357674478984701494131791312532689105623280144965692330240013561306038509723323258270135982453316801009832431442706194048868684427470172132186012004078148429496477538910413414770140995872624804267608165878909269780028362912958277152111947762345208839234076221788705311857353934624051157934134984019271452667286669279487204119283583315555713143384686442899852188043415729231651461049978481285181338791093310065462723941204331962525608249438514134544484722861447576373659912387449302691943282645765706144305183723654270041249413772341028533827043536450483970308238975795786269745654667735564512138123180267668206115998706685984481240936344268335628438962966609583923259709877645464637937087617534998693583999067360924195506768743798833187234164212200166520486624087937418548317879533096780304358122388329734947182667048779628671137863086979781586349128024682722029048435096372148205902344129694907855867435632063615327003326531632170480482670910899032660756920379834948556257480973635413535461515629289959354052082952469100742767039937866718503835445737359386781208026714180206349788874841932872837311771093734397040735795074836336556422533000517803463793262728326448018710980674272622871322441993122004723189219948152963079738489708552100903813895757846869536176166931580525122096722016590230365833464884855076608983319197975543163179033134828397752833885791946985869330767979644256915770287741685825972797510139404626539316772925559653814597815076849238986086144207470860076049766337923308161431888322915226938744728706361512562287986576638021373214169468865525291325895189451310406007134853459835803879742875572324651663536540205954145048375456324568011953617196058055285760734705894932324488512558515757646970921777174709925337189124277936122180392423909546739973634131402282349349714786044212195670705373893332880796626382820930278497529824778331469451174682701201631708669757354242578470027275680129263172929250203915832024596011644249814047784081468797807768527463107115449876375669779795066426582476481561845066027320736221830870683343429235008354345586020437485397433165984821375233209601343361464723509680915607943830323932784628658723650625695578212400829888804592497100527840940131971545539191072867223809721494520590884664564912081002990170283628545111480713938717002427171389379436585205828344794342343559722084500708220529782843854418797250634793790669769014387048860925999221211923392542528770186146774885158074671897142781518631826654783099558497813916609309970663254752099093672317664428273760712318917960531698196748956934898337196998525807321371784011877810782579213838729648101523598063092174163357003205479559516747297682319463853387759509087393778719272254359354768345458157303595464322838523025880230096952381610968535887141601481590452867688299901205840715164335526512515208405309819269946489552100064716093542248774592371642143193123486569222205603257912863076325227753536413306275963973967017480508683030223517204874204411419243911281548784078403752329221431378411920291792160393041112857585177175477381834884438317917196010863730322656033824316199832155322862402662354170359767191152316341960410533961956402332270886462792970115274104988686151404675084881063308251522449482158253741408341968219748294445974712358459243647767094807836699845744780667348995988318529431107630566400185153685639154899913214658731592941049908545450077780928652103299129973854908989180241417902636927816858179627993498615454006213041823444438256120147244091734749402412448589313175936881084247135869539296881820350730499843850193725333201166357613873266131609403423734858853284247766788701948814173764606905786661564208257655330317921516202529875532441338750089470740327429920263959198465707345344175625259345022493245346058324486874123727762689693361488439027303676933736646708870273144284841560790213022978309545934337178446492914477517906192149846987663876684504183068239824272931867646482703744874224278334632797406905966126879804160273879152443210847215682278130567400825166727224727909548067906731342631450664020896666830084830423960707348122939736217917564544110852174591396729493460302021900009374924913955105796137422872026308319963071311127341479034713122325096273238060676829921237307712664068241754824514460874264726231398824416097320494536852101704705901923866031261168630485355769693892929358841332896415761268176697406857205252850754302865734011338321453521689528132552741685889043178131790227487510785545383950966249401814900096395099845397042155181977280340985993496008513273938063279693505708511792677317647199518020490842412223441007901116262641071597595178186446781829521856576938466080630888624768326129362389288266101751511317674376279535496681047857547940188199276826023541748524771960433605457947773494544031697776383117849196002990960545651078322945045845115490351430308832677478769685156399160909413768901843531709740968887642174194004164839560945459824864244314842432035801839299777972462283866544808119024678238353533221838420220993455009911998032451014115069137829360214746058551318394149309773671032980855156790326056750980076607121473253771203929931123135307191955075603469217316280075215197168255253511436599308071365306245621356499178742576659456162306238747920045321117999863299708896469031426492687621649192448672352227227416795278631858631910434095657759656158283723348418135328970612591311080334738419009704036909679250982889774020939966955844349976175032653698820793956695335608437457723741092872353401427857590799423024920184025768040551579453632886978259523234450456691465156999724940087551493117566020444230567670455580863894440029186703204276765978683418033074842311164521914505849773631309950917916789533229686468187775215650025537898102418178872169150174913279160522418667028399199715678021001816325547419104071243567234649818659469770355155205255578885280132343219513423677367786031064471709061978428221851856188036479068292211208370233931302688472199223660318462323964901671631969612983270477186096220151045607825885190159187890964071309307700908393292285838360893682702161255027902865953085988863040638678123702411985991146066669333582381381519390691844683594174442634497194740489461761546968581592860011229665309014201134001297961204453912657485754956884013201035333372571354575384135696005648237646430271178676379779585961413902202997771818415689614549595155879455046972461125515314451956567880758515951920093378677427366151688863891236812201507182796106125390352961078435221977087712561697089092879947677667863469078563547234187025629624980860533889444664817335249178049842882781987079890549011106064269671124743558470466127413310493655740972836011257191047327980427936749420457131035039825639303919706924617433967456191616555027443672536484049853179900454660497641047270049123801806893080978442442574060355168814320003323209534535227834292870190336571238415917352759129163558840873133905165360337097654428488267958806069579244700435132572256067359912709217868661399637992498896831027801385269899660578224554660516046998107939760166744443589187350247530401216689532883353190484621735408524525281324280146922025573800320056384757063573127882394824940373467824346342863465483412584913042637468561663825235610034841602785964213555207898181997297617737562588392614066852776311197107248933161086489052118121989474420042731066312933768359000418331809660102304952086661260738785195141399421290812125881001269750433901294333161127096648692395280310294857344514068289041787584620227003179213815087514126494168011260144208494921091121745519648332246050921449749328281533669089354474788858701724091949402653180322154055495967548375333698001850389527287101141911336104838085926891862766927242778546916085069697946453210796084918811702744977852941589423599187574874973852327606441193653406751544679137755487872455813563425619700709910818247954788816680088079401683818628148789164999520958569004484369651263690452814997148800924549764618210125696255918509972838974767561770777537497793822998399544670786510909714577893027254700731093216736512948569742419100564607252611358338435541693943558756986586010436269634145439878746387512737652443863631604955758649547297542985036394934641876702692781879001248434720775071843114923988786634756425948814203015063318703955083085140118218010175750552153729778618385386291216847825805383298745494891910281975014093934979691670423518392567922283852920424579442524580311845516031005666401329605658686537634027239639089694317175379360129060459898125618527217463524592002286416003675786088961658046654019798923049882986733127322390743967720178636307598778030441805964881239250008953342291520199541173066547489711008668929387701292192909607788274785609015927949008338579601054938738602963655494179454332625654186343190573514748139664439070845919120488774980539030127090246395046763500369373346521571100220377063238924336668754036885001512375019137598537645004396932331396841879370127723476562411329099695406335054368721073513545399875703114065161758021160394619477871966929885268132629942872219937962609499054419744826636775162582114596913674370771550696647553067000236715843542230042133335425273940177727644842311426621884221144136458156632481953163128075884167179777551227740588389824568206328450414403132689152269221491924297091329181596059306685592369780660891118855940526659242682021196471809569859483206185496103172822953781283797721029636713863726782367113952699121161842792502953039121003139785459545027932075531601957949543219510026048292282633848757164177931966121037933511606929639910994904049871365410145735869500523746848370708005011331910520848831189979167750960429552373513431139445966647115291376777489967989072141628029136548793981012395719605091994010213852781860764115977680567641860682442055750197381260937480704415823768764654268866345993405455018005665744060842702557306474319592983677642263108078069832508887825817413402456210882210697949020929126421757348202213832324641340132865685226517625927929738214562161330162863186244517943998664045050114127281663540993811987851071358443002213690789824399034044989623647215244099833386243061999465417173589853610473776209655045328821122504856561064267133598197079439664464360442852221849370711567109828597228729658522182524611325435679902492261406756996904149794212666629315233419207064097025244745147033944183696586875796607583585689759476663468744904223534860061850931774065953008447066226770207576037651579275500524005578767411443776188537386317774241790784584359301640657204109941994732324167889185148831279925056413240297880674133488919341788027831310537632464929884809122718682480210681713235194516978654798486687038251315341802049997470972262903103645875248994299284754485315943940502296437176151047373087849005918315323542452563883012795543564813533717547686698334177057670649046646215708698437374683127039466163083470951372758589771593335701569459860375206686460238148903387935944509920514723800221971764249139308314652931795224701036604158203635735881717820394493389875141675723993552012508993891363837296714288052439187911888916875045083127780461610753767760839089565487329725947606404560890733034314354726066784302582187153252203216492341228436246889511689607282718680943895272834205799080671785227433579678073864225830861324444672618239117748786498551506731822313251035727813526280893971277519847480001769474385510542463158941080619880082731318331206269321212680088459312964831339705269863621360345983315942620624941994072189343673860556429572496283668125017974965634933102776946226886347116033653104164231980384134441497621212727015072031919753291133736080960197304097003805747441749614147202514173336804033306379588128767091914072258813057757369122612334567646730910345964801636312808407320620681855131938113195125857655297465505217310444770753113355727616107396388000580979218020359218563839963879414303006717154232849722940980694042592935556731673995338690689666876715795106299573990314447498103600684966134153199408436547301061858560609634781522628889306992337625218569606481244476509887196848046798341217584649664767402667969650242047568432865840622179632355831490212309205637850124835405585806923309829915137590959472838852914334935753886938481924530596273924447802730224014484700722651697047883232955676174363884069161865517628430229991808304751473079550546656350464241301784382413392970452873111728822074576440741474736166814980430578891555979248809262122863541556780726929132375273015673658686698371026267772885909348271941527284544876439104616205362661844829953836111667206878622983250031261138149224681473160672116539158090170724416901244596300611419155917027555939748522188147092403537303575585079500828933796808607055544242493269457082863569748994553201325297946834388946651453354459594655659126657985672782796845035389828389780194479324587714101138900591687965204034867021679412607736005720938057317861357627495372544249819026498988328742198597706847964993315296338708839098376464099762353734696392220044926626235723029456662255148123917267999220583523454874341735531980788769159926703466771669933953156543117653019810576084088959884647249035614311037254247239616995508728529275075803751057380130834961005409796020670518107954468985043750142937558380358058350532553408922208975978834893375029064279337426104283473644627238440912512909781778904888565102528028898019245640921936087209129319187075765112323260401706357102840504401144004830708582863583563698749767625082114910151809969878960352248417030090545562630805987561287452636362274684160423478870821327845038810761605390405680636062673380950855132277043677454673455199837097786220412475837653056615559467644813314678637358766339936411076111055233638523378144746459096413461358137997795019798439322339850078250319674151748490222866351419149699522809204797247864244558565875064676508984330218684244779300568115154949601680584729736924202749947774927972218359220913097042942100237430842507486610392975619749036179113274199529443104992348266394186314241218627874802586927358147539511723319973545818582387177443710325066799608799339998211020906085941059084376302749015398339018807237238336460992222200607153582666367362825030088576531024093329399568491384027738571937549415674187021702624758140083794448552905022224537090924291990172108932871922459015129740847450112484062173859832013580825475235936216778055336745093914172024955479340587317868137055963532374115294138412105754558035751259256594839935954094751523276612250912639015500092675667495737558209826234835154559226268983279449750292044831586617362458546988613129312456067990151063243862849786613637092647830408738575935318133160411794111890583138241015338579100072566975647362245264616729562833159584151277594231711897900338465968938613958570739393073326763465539350547521996951152172512281600789444395961372423596477072560764160674508410523043625522834122788481322952813674148218762074519435585533422016469133871909703877371741055586158223834375997174814128758616143409100716625225131687974972008463110189600290632271917065070427252364236811420647432079164417013411073203963984903893960383774872526337140189375071588165110314046327855210140145035854492235166890590187439995623945901416377733660117809001775931627007816573667976952189159213432932921597179413226094363812470541679893730823168735960330067001674146490661550242393102001333328963440545266722879512680302529529945786543921178061494536378614616633661612698967547770533498040613255285156107839490556310152148360955915582463716450041954181616662822659555098198338426339763895425133623885648526922038582528557943616654704885629707841785398654206486206309453861080856101739020742091806867766988495788630974784658626047780964323691163163302293368034428059433832749504752928520054960331012413236714839708941970361777495938058609352396538830179936450332543081463933243071054908291728394501121903953407364684306902523807534624869576188768746326187833763064902939513685035559948664730640194620914492621516031733199108966105638938747120882243331627264702318045866063864270124105445359625936823354016727730673049766233894929152920627290866510724255384503057685293583345187467073013146255867460173886336012727005129548128018428534394959849544554397247482545327563961287767287146032507249435013871653396638768253641255766126122442529702986113492419047171652775391087684722056219203641854905493477672387586365150547481837563446500454084883970867934691290745755314771653920114356631642886668549105911818272661244368071519994348880907866030142427967856650523022841825510547099007647102613042938203833589761071010122559189250195922332094386252830591378065288704176949743432353637353146411134159031282481814629864951702430885928833088081616633762806934175277380515231972706837872747622581951183875854419506449894480088732737944812284552345804876076334285378181033193633207422833287687939374990087022717420246471447376120921013709588677722623336062449853806463020718108631787146374785732590908141353385746378510214675262717743352375156518650348704664042098732560788316790308568263450492472633964064836774735019781812496496501593358278226381184776165650457484658968982356493386458275813748292103130102897078079347689514891669174256998298899939927642128972820563557501047800113612447502889451142111094856703422863208000304099303752488143844386258110734166930603173279454632217354451999090166137260038506313179646796036846890438337877627920374092842480285952557928853589873052347651732127219394860166292622810413705042166004037127597708840814600194198878810752209053978293939569747980661619021390386863764153986657869674487881461290271029295949911757425744473735604143132120003218303655385539483173610726156771434821876672142944508328369489941742286718217189812512049670057936987351918113329641938339038818909535026161837551823164691771835247292808903481145857132939202782195484744472691329264306730273188560163632402969403002272045753502566237123914618944288649057805035380762292147399676435908215860007346024314552251859939035992124072924857486296069012840848765915469638919784107198940770086582350592997462448477973552066204950088573308546369047215809900776609347590207598748238734127699138141913791246198031937250402631012638778710337633715194618094848419249244306262317187937585297283815548122100954329960382116177140857157883862682980160103688441204605938749620001789435482803262298671608222438356332611546286629130883657933535718545620985152257932967129820558717704536154734434054591214066150069370575118619594471079906889767376442721971825057550392576820392129657720672763140769434867541497649497740944307802543118356587487866487121178319347867389739587269181983434469760166698231805015231732185221340384621399696924231026564883625488277279992689265853522253908893509774054910980573916754538021855878338898489054734943874801864056497360701219274623703663431149901325752177557128097435418616645120504979417052112048570319225886480873760144867200918272208619079560430994210181405625755324717673758387845616320296326800269435620483384879767515488204025641117460371570492073628288033616604827630764316605623142521218314885462650142714250300849747387461586739581469149013718276604024588020430830730154060884358551819141995508410518946572717702263620724474435832504208494366460956359848317214098200205076935581051052148784950476722402686022690177678674861210818089099875624789717019377163145189163799309775081660035608120158126387360066380548464048384608979930494121289082966766916980952651115903131575379760531382014146303415217394325606365263271192586400007746073318900287402490567558570084065697947445080542071555631674390558112931126591598672904901972896158413722284366486583657793166625335000816816593834380154945932299277552225304389061648474473428687598909977560416320792039880127138499135557979596353416247962513090660453922479771938109273981952929490909180739636899299552498981089027021219762976832740661566934170575536371350394005445968449195316384406474556228293057541961748402831047748930507962896680775573642624879086399277529866643280063074210590131754261142295906535598578423189078571983439742969947884057050747566322332932800014008083909622455232431601504558956657413938938697167560725431656563424534179322054433164836801557493643739190082377137226193924275546547420720085606551032565991872404201180785589996217752203483245466374824475090193954204274103522038464546953663720398453776612172486274911683364047539061868713683681981314517557804009801515013510982574731395917278060761695775742978391638328864092870381597911279332345838826146482005804863747981834810622639139586802333854286867610586931183213193265622389204309953301465281318279064910879701314005246956229753036191780263417021780254085741851840102357814904862671399126600093736820640819565108337982254487931918424621047038907241043492665290139340937922690184884099751967344241731967675319843403156125345886888610336110116872490970375951135654118428354440216443929117374008689485451485462124222826741912487356394984518556741894760345389631418263739518465989714147654905884863438684092586599374312258522086269031149472624401205565430533620255658104907158752335258367336164210368866925409688646462177471121420284303642122202999449465872651839747139968500438711848916151530489238943792172416688009937725423246023878773655321601351730831543292961824585482548836920099964848445133581596246982211270974691815036502516468016339212540112298202585761081613105743003861130529099727574766858217720839262116619083810212253385466272985082853276395764350189429212594298886663289732672638217953832693724342968653214820522620603396693373526482303776769798110679364935540030994783142653014185105978241261388047085759633767925897741158614685690265372137667369167993016260361044817459411471679179350782029504680981956725991898430998087618225295169409433040609347657962045274653396346512174965809925710747954655031203558915378640229100554477346821534794627742610843802217311270067551943307684697264084279111174366993147369190158006731716387293256936847562844764157715040991618909479655612499388516615458678244943877366860844594506634351954437857565946594412307483176916343039425754116216569344625320119305697358973834440096744488442349193648965842409134070280974467750114764012198032101155142750561222829242229460027489446553688647518311691211898498325724484553157444193590358744055307396892195308734614726935748499188631698831604612955656276899364067330143740882220221287321653825896587954034518162923557806241315523106839903069008432871562790781963479328298927064655615923386739503444136243512777720702276430952025701097903657442468112901582763800457585687756877335391989586023643498246229257149293920189581348037760700127773001814624513129279328816812752272754190895581232429840911780148893021312569256021284872746933094319670926448612999412769373813763512004593373562934511633159875221347332819107161391331383231448074263360636466012606259424472810963393561813875631743529973495279371231630981246044430449535675375893633949128451907400966946750500876569466789437671454238329446015385054977688767122715868563841323085453312949541997527361928003724036454945087661179795052497477246104583965729255819099958495144381458044972556634573741813331979235882329061231392263169387970703347642066830682332422616727802680853279617582814149266580319485569769243322328429765182055045484772159672318817920712154620103401372491694555179897775477841479333673062158382886505542927826744246096526183365966806119217691338004723614788974132606915846108689593151767689594802894429795681706135829217990845338188637242319432905186937114928088347095667096565808592861221086860685245580635088384532405815594844919325358801919044583254923333123242838223575788906280785263642732669646179408527308768040180863278837190981086916304040255642809094931433716706336934436847404003706297543779296408753406928579000817028642898138472560977836246094192824186439981126633729829750483780901246781105750509749974218926990143631270014928024768806167738819260433314922865599627424204278723535712340424789574686634303788588539335200987020161885570432828818079675787420779102207327831458210591967256040495773293564165661654318053667513451405753985834262330753859276278770836648456321580976167083716115564451740191669591292643779202676743279773733658018093315501947636250479368894348489892999087648650618240846832878484073285713962117317709995944879783779797768976265446420098873738002872032282360951970465467405470989730617512475535002539900013615423780064949711387829786519173292641433294047256252396425214107077073158082714122207523928225653563074442512809306297687234151288350541072879403459393081440473705550131487816788787197965785010243530051384103797887545856267957262731239146441639451826425937358456811329190373552781132428921982088559320977660424950465731981531817002344191814082590402126972371395969801860772263028366743341241511774216271001935344278095881930915142066831612838327958151538113747158002877091618337603410044807504953841603949473042419182934306496900323283236124082106454818833643039617166840135753232653963410542148475047330715598505197310693038458009646078396839229964276148744704541736046292237314499850036872015340029765063567381878308780078371105447583346500502484654751133524502845914160589830840198209621657592202413879543571259299264779857294384335118807646630422386603824642339422938856036342187169712168125582212814555128348568743308562561960077114280018423246633288473761715016780784462577049916612812048166174471575930987965838867064503129044180857976183165822156193693155115521643525582454202018725088872495114010599160571824221891929241957542631836239707198558352157843472982089733361929007591264396314084637210666659945330479901749081118718003744962573673830137832615128848654805289053545927486112406298243870572889324366398748768756932740818599864827105632333408718433291248219423372134405803603056158012260484804509817098470720040837945724016880692781560784543186959709353520838347139537927896539550733423658005098212869785235562574519683812416241551273231793615461904391384924423407111050301533003007474206346259988789520680834436116296753200986334883319104714660659912531766316504817087689496630969725643583497551268860548795238201307649465519020565904467818301816599260296652209729256331756655653173849360561448667780582933835494763434448706295480247542611451764754317509921377701805745213878066756305365532176948059529254901312784364355598218796454449297743277504059022760551740880432002328282813434927407392951653926301916488235996523756272489524782533737247511279301914141730951369222737373653814749375406934746234545925267274638170211786540244388014975726293745363623926090234417919847755538337066437162003732116566842849366413419546519469045154675062106335021693692664731905774951940857494398264114948864174501629251977464078540918579258177849823484179373314386832690353916331068340680124325202287386221928800377869929792945331519005815185888049444120734399275679486424285183306621641319703081802810350758977726822717939986352836979023010569986572122492736845610997627142718738028949840201341127410817873836293375096947263791639141568637820990720493909443701277787359810523186258038616165891996753010120375391243226872377173878583223280454370596565468288296562175860348249124198890010791980877684260259842411840380943621894574465850775579700797157710919733978171685763185680602868566682744285632475009116382490697865865644276441696405515997126991540418160801013287353092944910476464343150214957004220691371662474935023354340495883774646243877815762744801074747431445816770827390712744642935912688512341177491032012407552644177573992943288006443523645108707893810709820767872952822203864865942631870069641276613410953076612428436303061158085005186699799810700204816799593043237984020696039980064909935699666063759671602402763932833574319199177604949708615005847188578297940310053010492983269165186857255536304017185875258617483279451746016909419310855922643440473445372078543277556190487411473472682671401247162335569182117947654683845111033347223831137765121292297387046432971046115289798361175704487342737631221574638315737684224483600354706356897505045369331541049495321949355757353817202316543607538370578348468593903929523830795337102449682672544133371958317471847035472027255554590807656587365071697508410437168864144580556423340741026105841606716550672596530204728391540891307355703811363146021101954587347435237924593109815321652966136952110357786857590959908199497433375161680926789450976117821779654667802821635987924392647801332721397045509011022294202360348840543808071104794145517049496425810906145161672379516377036538884835487688954637471947063966822639621570682073483266068086547053196387625824029068026334723280519772281677322509319553203262754677802801781145137183321656399051802839281423325268700436555261464971881703376273754608175297139920312780462376777240486361603643157444730813897487198351801693441979159486801024542031168967607054118312691844527737560630227917877943900299802137651923802674104457962190686240880571442373026764247804863452316903740275589534078225162555401981750059681693522496096376587765270366765282351479687784971009857371528482916272158175069978833452210635989958383366910882348208619362760075381006984743611101272593161540124199818010820743529987663344434338085774703768248707025511852483870441981154927354512369866934909753657276169088899832626750169621608482966403564289746526361075772916362986948328444316546634099632172880837483936162871662298159467197329997587468129165529261823374872393972149804485496032567656738526549227048348183592102065324163789271479615850919955410329854906550231646891967861879023657552658711057943722852680266952983614121116728385541566093417401229296045531798946366525826549595889985606012829027798543278693358304759452896441382860361568817325106531017898300600556604775285623319026557209228046055492229456531195790166220522689963772682234302523799361043889879988200627899050837079740668013797119344916797089470012717992209941546476597924886624511299011801453397844153326889746620343226701020179541535117624099422739788402923047762224940423506387204651528512295538751495585086102924634916397939636677155649538764392542163634002332244222243958842381090150167410583772409698202970457444763232440326345008961686145174910128942608334056648171707906663205499348926921953479938030405905674339520303693510951658750443822945326807633799826882826847108100505159311844147473443391314224582230059719478072727439214503593201715133067376640032160575813189687472180829586963031586560879393028617780098563017815341594973475257571323822094786334498781727025857107811978864478322427530350990908458775551699965703174637163510253126573061589073790611780177253454468902878051480380752140494329063553798339065024386521996623607056134699491100360600273148467643922555117292826529518432698803402628648206096604511288995108965512059066532191749799114832983230041737486702972784026608416557225924177813579015530759493047627667180097493635752422876532270115458073530622282475205575670684449149408917848497178851460030896156233456274441315131532856669334636082772151294706051472972235729562613139358823558077350000827184529754359685281168653787637460558741732085364488538314346924982393168385107366520113102713538511889669455260852768918859010493495929027103124521880187975267739023488060683000025138400805965628955325389963460109737375253414018352525682813048132205784110785983006012337319043945680106438292241889612926963016440714235150631437981394850137463849472857148128842092530891959761978954659953999398243134523575138594095074650606878706798659926321579338807571078584821110989519499244941206641948347039681446210309741870518784965797556282842479747968119111344895411277739093571914297486147493007348679936873779977021517051914176271529137524181651192069440657698263683950418149301489591363785590502972121575262856111729085980344025131843590062876775614227632588208337669759437283112052324591550976945429042355786669950832718420943154517314802390297057219331376716035302739305112586960107475253704846652073835011952772258538299329985488441849339449403511561312079034445680193847399418969833101684874154079348528680359147089826799389659031763851653054685954039543529306829737630644339526939525208283748666138281570551573798771287479387042120412686200066906218497339030483203003003007581926147002973832664888244252042505727558536373847686653244672686146187437221149661408279227295091804985847922894469660547580430453799443148230495824151809226121021631896456864857508820021911020699488266861044482734285025633795596381582628446431688637315289829161302108337623209208507424869370245504389418118709231574181400592512707453743722526600682316204092505960598914051119950819679579442807050967454088179281984797886222211675311854591401025329630119472506225638145438372528879761114997293965387447650394652433991461700991788804778521391799187267863474268205111253394803887326219200418847850888435163594619853643874852805396469905178004621558679678296355636352320004799048763696910815222034712206125364848432537493443917621771306415896061100893893209168923759780249959255354802059612627342557789062137089453701742773389759418247201521798774874366954720888556541261529408774336516294234311255717661225954477033534033601113848983076128502475322270443684874592713173304032838912283494073377325512135678256137816535151972873448916622443298539757678426647853567669541540957986811814513453437321637503391996715981970073606163006086878950677974456720831995281339013010687653850247478987082854376155264062110646301629098712586618577717085401883347826542510903840131355813234186284051402812238635454265153483010794879662336610313501691472804757849560739610994279191816733880383203433441095363533391759414778121604801299887698971792629896498181929297373314323284664171620641947814442610543216857848526821490808775624845863414355777708475994701011499477720111623544605987696740487024860202418575605393860637655595305649947260368552049068417791812094922415350480339820199427226537076916608439594745533981908522871538367372366690197464137620145197543907845633744785521264842125622398755450156510128896694636157573239166127485630185806264048888142300428396408875101429839801307507341514165062680482045702076072445044979901144333098845193729317752341804840944450769005724930654961594155395107667564723007962523021420978658148782720699173413833066009999143536102272905221741295903592591769054451973874325648691282840529119811218916444636736760428879632180865437241170229430262521149929134231112769699550397627320024183556069712169424198254980243618568263746926455472824046558552258756072919707028084531984431880515101749607029295554382837428161310831821236721102862642307203684123558367441142778080715165818544101593214239867687331518217804692476085380209175534260739283473115148160234047847288143831208575872026811418048266605753615261338973018112696050991856118673731804302764443065499678331170218007112219503248809720338630523612733300435238288230416317768677512057527845217680944887792873475472110639823706090829703344837569747247702295525608581015180459322208053818982777006081813006744959473511135846686211948908629329211556767979430633838532561947686237178454362139509414461837111686086866619387968481959577255821466056970599034471585930183740995788926999834278811561607312279483728979885944313453564653741519466391703424487233786402832810050164682645914488406355698346277217204760298070500882913607568992225725140322221167604277434495415983470025276845705597895380447127291319363735300524808116383958921199413385317280565433054439197296387189569118097898171025416624134775470114457508165202460009046767449965645799398601271022088408011343869970770451343388762143100356123298597973848440030735716694884855095583671496608689791810290591819414037609783799834373008680975736893750607346312868032018911122848840210780524191780805175461715464234375280901126225563384481610141708594270241544101602771875899066349656001907604429900574540267997564262028638766509963615294214753870710331112723448302524035207587916004204859594537214534546035930092418726482989170567956074013883225400527648403322475754519563063651645903203861845390025762567136053885307750813594426315821604084691179795112716019839713276109217914423707116727069715728532800519008367704272758487953112068618157219232466145383477042777788850919980736790207258962081642651879187853684779776158681272850311454686925396970713087942396160922722699396896872213369177887212759921019211601184218474594313223600632184068276465441924787769782054211132936577104639002045974387979115124293913132022837571346479869051034114998651148272283546823540504382283472063602315053478042676999272523284770722546297125602600006100337009094316328442322122738923879425584054558416498262671650857591735062587741467300552454390674858819446076349146218351196581826937221867107677292112026468631289467935699865778183070776515554561495913167483941977822377131855358253782568250674187615758795569707027121090141364935119178653764430885379654712420446337780679975731717801570892949146799496042464637078541264153670146981154082062927510109320613942709232951965187322852343125809774701812623596558106014017989792941159487699114602945132290479166573994151866551189157316768776284143588564570652545321017964689688437394892828819580936556420274718816388050097055625696967737791039535194212392530890504202956107730187989901361365105834226988350647611384349212294967742313708858642169176564671450318957592981237928403296341842940526347256403082227692188728716250526848196266643942386747815397557602200962156317684892915286350876006496714675468092274556015023291355084797693981729651099432751562954112334424340889924732171693710434917138587749005134010855941924199685343461646722608740025254147986652472465167368811090597697456797143472546503564039101187934130840426474543291204179838617352616194628410177961232847509733008819973314066321791429894001991919001960365435384991423919642386134431547200599345566501386172642358937562236769407719663558689879435132102496298890122735965664001163728081354463307199583345864934971230455066137217336728587947015803829931472171437165246834210474904510550824460721271594275756605550981261890482128349461583569829725092982708102717713668858602076188081556654470641885861084001573343399344709930212746910582373470732567471201918670201999133263584539291349101504054555013960363977971864362573691290076766114728726532815896160900350415371545410473242557732617661517689563885806180439903499599620204737818885868409645827938012348825627557217404106576117976818676993075610039834635524108852196968294677010285210960262087300070384469820530087921784876789826971659985626312649852210499181289695107904036243331812682871534744790632078060629858585264494919761972114900935879136710463507982548843485932233267297929042184829620145091344235154064733490945196353676467035880820825883544712059381833284778675631039273532828131726210501850011327449359104619086486887639894055801278355787637054961453084012997383934056499730850374029753153762891468589928539216520421481159622809576946103546494906431638140560344345971034056556191494415311076647337073395717923245641858475335758842605602676899033219066872672397758159458925268334701936454809667909899294183802155249846965307474689218564917493732765327928990269903837967386311419223354459751847313595480775245265819295204409469158339037513635345707424210698228919618654424487204993739495766363669482797474353445699522962445879765325339389199775320996525771459250033938132776357293330787860714710828026367204670130394468643580056817310865180813821783569442951182417197439224201270389978189440915862205787098884497212273654608071620349837717090191182011720284957933206959096370856026540626459063714866798093734784960431321567007955875461177416527861457406285676704795518867421969874311495940246063073104036962444074986622930927436702355494576965906652992378399734161008660027422509044020711495235116352674944834921671961499844712862293054996328543745798017870149351354418128288479583465459911760855509821411930144465913318979246194208347078229731421999628674170360026943721682027237795147174732711911066266761996300568508458780805870710812064267110012895806703597318794269300505062168565125380406171536108701468523234301147102941719906023209017153457970747347715697599738848146314059388736054403078191814412600463410034668322520324904438120490156733126381823943964190277851423973740189590410851077954235018759523289666584480649464947928421581562494457141847491542133787690128635551218075758807861713432786962204967652230840062124054179493813126912538002712323794566439978143235997957292317366270288918975431427294639255732709258641355486636828431178861060802679193893537146156541596399616594444579348994781067244916344888466357771292903965084979559450901450308994701619466551772653616185456917816899012606308237576867477422019182569564501642877122621907868498995636165106644556383929886293281145833067830971615359565934176598453937317381878302972457378823745543618322317143310830875441020808933496805218507977357976712741586484447170187150381567128553195757613565504230122511913774305525534382641244897943060167650172278847901633157603354205143047722356008750128664450853892710275008775275853805899581765792227362445251313115249868535617224040004173739131804842559940402810782187252065661480770612155307442111696146958215732943291196752014131390375299154189303898900579928135708264987294056465213716474096916831465220237077039084926712653777660957530727373106153458663108367243659525755164197608420777729163907519627977151052086382429007991232322715613332221590284993994780749485424535898146848664887836226185770558219843251692794363148824189150680262124506798704971657483345597927178404784257888061732822208944339672111140991371786558462178240666286611922904320484466664863355211652420004277265027182957465515149013140516427528586704333649154620291741443545886941464956209718197567042361713660481656584590606592792739912786394879574596321283445461187871884904352907952541638863570176793058646294989911510164157497537296736874079380567891106926987525742782325145377302175591482491727835559245405691009483121365115042532793162898215626662523917384662061041301420209598226181280336808806905058835590769352489957978425451706904491402659319182069362665355104773750102930605566216139172958646909643617433718320311632784843885182858779135737460939010246963194122993229801217764578783184535454927533517770244061882306063964952123676572944400278204478516936322746098605648573905119701925835814589949546671438058687563753477853597978485103404114097581791300402785301661944936245589327279598631059785434212028390670628369395496034943299580930935135404331538482871246148997062716069966114884859835116840719040682497859248354185834019355043624368399437310720006541857829115602144366063538177727575956941446332670976694126202156504372564479300745788831329598490691311282478896558712695601869724688247524975808633714500295338245089623133741385685982473014181038883758057501123065265525823605188848009317944265495147563811560122580760478554638570959975310579616513439424291112594557827414650516534992075009276760269334661391385791385266696214538140592049173882379672032176089789408328915388158941160705043226871871029171676112094633222580871453413380465388801376930588132982631442506333832432337709871961197880633894924021746491211097286111369962723469533020652290112775714759547284805465755559385438513458871294750161540768270669222156318268768455571242986997536478868394181223583747893468520985806525708856446590756522002890328499131318071354386649924294412204677424908496522581852024324929871758552970671672262758735480939513161445453428733876872040809005596313339789886624182105328674471696994383100087856512452860969275642096989237921684188601291311687597069647190747074618615527508890609248415040920677281261170724193672470846755605906254209441762120133814883017585432309453850723169412316623826209679731650980454428171775404289514791614862184807851159108154621754777295757820188867040637820343011021084776055619362474396153374846753124371760122949285754485282621469187849375861326278253377912169930444992810190376507081322504615124133627206477038683435188634316034567651228285717835190059983569295465985038353722864199477970140386107822147957944061563140809824938034232991906000323037800623232650000926206385364559285405918076581732886017007487825044721140827083438082193023162378243414878569728045087665234391126072239420358972623234914101542748582326780655173056897430955584061152969338750897889338245949049013974426886865210976227603719277892603215953716464634775185476708190485799503328489829458984679225031468797777999236096512601596072429025567758648869477814193972335970575695940806726185819492651223022000512487011771686039225266173505877024890893411366452643439903753833067334156800242618093815431105800939390653840210009406725810772604241445175804172987575876297795832492607559940617537930112206332685334134937127919020233047674385256814645482259193640527188153542490807877012277003059136935882327911153602118353433676423036617521106007466268382953765974432201577496500193529831687991852836484365567222718084277478124093070787203419658386460624520878458964928611415457049003955746857486088302369394470083668047842109602525535977741860676526918766705112571873063665153048783743671105805410584725636925348775455166403177217535533320497868343266942303859601034331760325624150207582956278329463344609925172325440787989857032599146042602411229456381424628941111121617622409756781121332354897680165224688702884171425405102547975387598769406650986318976892708924192371356919921444375533570485023985753896608124392602588233498382691475746934705420151798424494666964031884755434624512491860321609838481264509956105446152575938218230510428588472628775731651696356022441642870237860281391674445329614489839713646254260815745787758717820395495608233365129549721017089703984286686879471463042725752044419780107021813201287192466840254416464842455313303249008123357150758032861203685518165316137503868941329660600469239882721182027346692334620826700279901551277170650128432763214622431350016934991046645087934873953867483071919728925003793052977171302461246856474576683983671452234064124117161776499748395320376066079652906957017353060398741309583760487890554140833239402092162201816721295303951221801420730450557627338517457334883564586979109306343221214315730204762935980576963799199106011487971767228842914838075866414537304320553453387533087973226639817593344997197074501080103551156850293129931135964191018761029798821338087331884028254308840016040616387092842429882546779526631198451149410306272106366213432766970460865036861949533846455276086379369780281735568034768651820974337463270375517088129019115566705016494169645531187964413527721746270674820029287343341654575580669724091464283630212700111840791333662461569392942666422485792309645238903128717415732960251819152353661194614040141653511914835183078314248134388028197701023094197808666562245525452795397753274024840710006369719131513325035868373656351762497431840291254664771346565355343603402991497290996891328114253766074800285903199964722957073454738796807054973297838403727595864146840950786321803223913635503156907173397671513666081346684019959856558545659049875823947445389895036937664598093989159083673017819725833999916527992090829096754897519423356984166190284753281724062105004783527123650605271228927782520137878523499894796469165599905716711145181083409896203435955852595464611597616785995961375606704443922671818779525951756662689791389816496266495930496296950105832620124592691450347756141244412505216567470561076394050198218597555072172045643884037823919618031926998325430382358485700364996840159455153971167316814343869288632269561180528829678093027520970532263467008664135338315197224619885501097466353399864906834382297122153651964623006056870787779014569709676320390025971452081175809551966473204033626688552515612527443731220401037139856952901777197306596707166395306559991919983493256333684486470573952919048362139204048879047750892158281750772150833894292880997073344495810765503452554076723362262097658803225470358995274340274014715517720066194491838842488542089523116537341207558767577887559819437338250908302151329198455013216296036271252884945605246822391464037433261833829253193882150224434918282223639484340008066553302064789870539559926447964665254185993238642286835126813857706978005801046674073837057206570042051292404813935327062625811964711824588198417277202489780175587026474166936621356723017508139960938596826239966340116993423282863169769562283111708829867471445028543053929511670518721190271159664185486534995850811915177119170186314264317903893911059929891770733213532296593583215238997236134446610297367215533992575107807093376765234873512109237955428964766421551072186426792619029457741374038215916636924587827470053199875038668840756119684706935670399123293257952470918120705406395063956845492646454231565025614389574354024221448913258677750293172119643332076061150492279033596208337249167365479356624306870273550190814884236803550856383791977948566084262681732003684507503849899280551160579026410708221729141850067089810898612068764854509679305100608440247569405333127519822233657067189940472489602897838755285256041659837034512614420809931923961336809391186419316670527206882230821563853560980871127608217715367075793399823300187937794206321227650397090278162598696760137396585738793733035414151992103707578015644704120839446601784657719640381821627215566520289763103369007857728269358771707005180075969799094314222000394926145685359906064735312553385060516269555898429648515865963528466201179004147949756959583361658047365388569226771186878442421965340345126859563178433404339650420514503259034602350558462495038718528142589673363947898077066180053376007352283497315424956564107148733951801951869347076328333420676577371166453141920901254628589810002596694885268223639801394978767124651647217773907008376478937950165387048184747441041832344113200996675121149985032291094504243309157182901750149601980063431565447674024027609293906118176882034756655583498611937627119782864211763787297179617546637159969681400334410392425199684749468211423375674448303391643431071092506693194105017238316290368181141443714380539775496911938888421162044115790142349928702857535788627448839707292685029513452632897675791620718995684710263315970041609836014386650736941592490086021410414943224682474976481807038067754378363639318421922140697791107952112124046869451274765684165162631684617083032506234867840533618682773569032317411813894965749467977271250105870877005901303408425816984931992803045825343658932246378966328701991722099952707571580797378345228267419850876062595690095474658077106864517964389247524391967206293785723396292526797369202913035189393872114827031507522094351289191281015256783107725098585276834227105390236077013808833009838719127232941183181547989683106689535272138356531589259749125950150527700012165361278972358980765802963664554854083876276101319262546718388178484177550766722667809207898994528062535944759699535180051535142101105312669628622104990960185284408354958771353155971757758832762882627109234502039451967184250788820732310981607468477839631886238374755241919742926195701303340961361731291711629440366378087528203594825220875825337133636859916266715622728522112740526333685131569557605739777158294537225942036708427720723279573578019655614546578759735451807433411256197802037572668237131784637322302392203727693950631191618060064146509684434442018051986729099892474022246441340014738172946558203941397361534693683077975773770777232673181695430478808266783100273267555542807649646603538650538977954094795902126820570723170812126974728968387527101606811343347516258266103217400169591124161707652528887982905072233520503013431225540850448351628680346195129976584851982652079825883523661104532600816176112040278762103966309464324589707019252148190941910608406431763389769194170670749930826146838482195047296219851863000187103948731151266936709615593023553248762908827683845887807962808140296426183062524875334270113270155263739870365932649297316480424028044203648137156089145689924714781097042079009824859994627891275589773458682946076198477236271210232123705705762215540258867447115574857946457026269263905399628268264525144466434405827666599530311871962728763911165720270695988590092727950014374446097990993252894728060594958488405531448440741722448418997523755346070941724257499130971447440124207966899608979658915788906362035626137136399942956169799483116079802916420005954731165172924157938262036730904159643904409621501184877521177000919983137589744541415446712161735543526838916191956630690608578969263425179595977327249740504592217336554791913715705657052094392201091534616819175163374614054932922065363691761786647065709359958655011254955260347894557683751466794899396988503312710732345568400196003502786193375987508325700377613546136626873331309099582242481537557176786999257777839863450194921038960257053099860978893987393151474139525774223914328260099298579772335899560947206244112884756338235172533538225669792137559348973090860269101954433228831925157575572779995548152292913116620136212138132458116041776483174151835132221971642148334206814416945062421632665845154234369426517464704012359374683433004480957112095217667072641721383815145516971339070041308737357606429135768451337453728947386899638727167126251329809722998491860987847249961601898338108670546015353163510905445409747748963881348773787514780670828897043599669377762062893194797370167327628764584686443064505478463459663606651775429387265657005181118477702351463225912724848435841275466710728042049093927103501813805918432500297761819776794152043014791790699279096776414756541380416203000757917839035830386169795280732712569875686942201420425778457615417075041301930515247969512192692858831631993741738189826231784162344928767289043540961025075626785636284405491668699178127758840161781426151230790719916837096948820861634745398435201160485666876764372244511025892172036144147807812013555746009686760022893278901929003407209737483226903306633159019101312572914341118343931472490922991996043847899409814157106253094649384741463449677192865489442411747678775082635689542680877235600618772086549064651244763733819288279978175782140454817642440290920495909457821094944375556961888468141292024494687706697909834539903877701899762084185757045988272001472844431484493881645773425488184035621845851388341581029842616675450538952992741201264302314285493707851491853617094889609433395416663623390990937538093307630098574455969828511740411078603102886992111055485485190046075491210690722488667253872506979385008872165456796887120798750684641384799083069753521185467135047028818204203354026323231277557121345975883074542829826920836850087864414088086943457207406785711990980481185665018208480238351341528180381717820908557459710455848904210884816046242896370925959472403176400475426274395646958283556330066995696751798461595777556414619097979132023085446785167956891731148913176047390154953972691671663263638434206776509406237634331527003876347899317004031839685205487062331035383658991389390016522348260806391292876756976267829242223721436466747410606973372401956835365640718408415457932888423570915537602698254227836424240048563303975455774295825890069944451794399974140848958172231147150330657091803187075395350573795963137648677971037269068262945752792027885233986492401670282911310833775233805025168391259937276556743544898856853443890638896288709194952683659487051530211165709135663049654497588924079794781187172996153019856024851499614197999721951682707729789110205648726353146839539035041762350843453118763445864517922533670707882060698230949115339692483693515188508977161089598607227631483184603431602839816887304915237442611817703772872420437380249797094643877199490930005930307678793081472448997376720445546304219776911759092565852522148086390242639283042428737061410057094030519209282967195347937078504926115223807889216006081148835635132941012207859456063521956868266456678905263145005226608439563914639783427716972529148692190808558823547147747288223315875671424649431404928267339255323610307350406752500386152625421716491443338659670389308204388422296945016314374901328347619195013818782483981260699376778628900676317132210132976476767844006614869287471028591284005618637401311639536325618887803836153096886213669668098879137506814195882949456052727770026443622288205700713798730783993169765062206975563862180383550811862120843798470649576054076657927678799588842773060833651149316013485892834171725341737661225703400706941285166744772873498382871137262946458169420644612132436069285209113082530702082941262871752453040176056426743444158720916766959359285808048224238041783137005367501571858594953514255093466521725739287430512850671192713631900867377630033792070164355607788473494322571293252786572104825980404012984467109517123957019091552285617700453673270692322861612735743599904710399210950571821958727635294937072189737118731788246421672320281880923701176664223696630092309573530156195113696267431068894522928932200924650948404414645455169962336602837913161440986409578737834375514974964801267008045386331398810333930563457386200667463614928070470415026592524099203454329677666721267281109269812828742423375592517236199514344215545350249905124459026520624314740001808778165412824387808468008965585861301901579766165842161774103174063853694586425724191074954185008573987831295998524378110644965400857548524483074317839515758179345809408885651174536678135533506457340995726595575852280298343183000104220351434545850754030323441814602039558192564428260954837588073806434991717852013894422501821822816933982657687473705651277385219368974246106713784722645750996537720768083931721099335845842162815095700860071175946429982131614070146571955810933650454650109929298276866901461244586449575690438523681946408944499968051533946444009699146689353355461780572877668180764212774769585968943847027417044050050061432110314429995055582557211314081320219321166894986962767368688610767166386618075261031777960072923302850216522483598645220017516869518174234590122806271253750635825839266915109671899596397431781741381706299481400260181861721248650354458533909435127296738733373489220848789988311446041996244857767245014341784512476614120275559330744845228811738797953346995206137781968451810841733454087626346971562831365817783457839337258865897235255048416069092380130733862487841168948941927432729150269036229519673410145652746248608737147982053342630983888009498322585532637374745855440100153984920195167305692509112687035975486531189900232063890549972758137693711363232450244912102742960027628165550434002354512388226092323839037456405875725547414974743679258143138488676046923150122861825858869256858427929871325564310005820990959271983639714975783310517203534622846871908586282027664457004730714853728838015300037457242142246161723472607665434930682102679525922020223909267591518254465216485228932132207905937854131918852888511898593985126376352664404014935017075162323547065285905229189118331555374230143547167530675053709411310163629186541646504886626475330252414727931826978520068496504147142708181979965671155006698802652159664495765150302528097156602920186496149677954972613235411081305942278045474683106522387029750878449616474595050288525009087936672012139035881860419981769000586461214195473314458540515624340410884706167555135408283161534203079049397547131254530286407505900725279108761532698206515221483095997980649996756633008952903956899154341760152035596493127653545530780411981437242558581731816714819393160807100777733430990459468417272377371658271259898504116872844765357881177809034585526228433643431357669763938518756701088980273046780883638251308350141464770133510221448811810702037104254250060502980897503744222031446351454382151577747920024821420359545681131151880895410704018459725448936670305742199776806433363446030520333427822934591537394966977498376875682945431974538248924134609704972912355859947512808541567696383089900053702533357204449879618846231158854555069081556700279968359102408726280323625782286001687151161955424139971753096012801760263398074530281242867655150205718529389258622284232930059897772049383330762938063599347649971817941569917782527452246118745979256467414175722936651408154003523562937069759441294603164025867055489978745115679113484636423768003222374421174674894341431485176708257011770965009879334268506898608077842826854624499779497341558497454716277548226827464720194704198269735374956330586842777705493779426299876192177773452093633308708944508620410858155662429709160922002052325120971507449511250141415141986837843021847812196281611153269083950069429869551528790254143377795658644208114017403105356688223760239192589875049308545550341113247546169096703506562518509386895179375297487486368848686203763815871385943696018056591645709904087408301821301001890213723759890527957261108909313268912719328530708887439142520235309617927182288316667491219204238597127879603652664524979763633951328938865354235859350121271803927266910623064048399026056674799276420478195174514865026671329765841969844133025619516631903007151985065242237310796535200520037028475625773453988872615258911524619350255961467208956572969907470926212871483986808590519336185568184152080970047790939716794513343639212276747281500986870293790855498911118280112601898046988238864731345763801603327161486463847856693991890121495218921024551169873372833410603830842668726771938775514357165789205399776952501785541234337007588269271553111877221011159257350978553839122247657414220838728216353572729672184187326079736028290686216616176482013258070189147902200613510332935247933701231751117104076191958771341438674641214628623232757442628982437432545871437290892504782419571989902347811528669598904295652052772369348436726816965471657037904862261355009004856763684987105192242845590249850591898026967292797408793391116034451412307871394928290284647953499339852967930474710871281335655980624257585355763656399654882277332361969290844361545555980552876971635298609056839464743749825708140294634716416423696135515749940483524334463357654619889640658027377841686549901969973068880073115102345337520571154986786500270762246778005295598869611988525506487515830191426485579268338201659158224651599872077707587393034550523944796969666921565840307108358461659580691886211908761257855272735591624726253480438984042809038256406200493390803258252800792758858199511937670772846022238037814388760450196215956932445777629990255330506666067221471228035222580000109750495608339036556759897655773249737523730351007570597748604846971458265017590530686169889152269917617718148578709977826709144097274503070099971602751945805564140537499442058614540786745801183653246528851176361943090325186881433634520817079765742825084182055811852559806409577717744453317466827446229369665677064927597064948184215983052164682813866851890384090883848625289313994379236029677680402388525997802089611017771457957333280995057515137012835288049944796626126205077527950876858509332422228258134448269664922946874025490755295986758821189427813419681050469406997282768514390459293144753284609288001345219952449893848066510661214410584996589634151624100602857644653653144616043978507917552102362477566993404899256495704092423093271230181318553838005387608379730116684425356509725465485613871434359940619504852402723301119349010579239261555434312799950247796707211771500548156244144525856104147698825934686062550625158908383006177210298864685368598872447689241520859886059088196847994943610356483150118020005206488487158811921801096598664536697385150878795077813133293292920280230629919703483421446020712282780328263752720535609834295900637425235039726240025780498229490227948156553702903999223491319494995324953135358063682295700485143161985105213232424477795511889972547573020133092959671200471094552492615689126736254992054838475468343677630464949369098566565036806704320586157675061970854351005022897585312527911244885511794457159824017923292050644840818493934379509086109212152944172535574544317374965521019170336097464278782685803170878169139582068441611214913875891948466828180094645599264108286002690064521303151031538676589614448398404569072372776961042111056035712048496016678564898578048750132652076498088626555968638066974282274330745128046927726888693326699386819327214167961091489997231604849406319047635198890743519093204200708788207365428032143743316602010778797706065847890942924440194600546287766602966573160298109646591562273946288236648155242271587612583717580977226156107975734311797042034268371627483950815505115880659541629217038906727869969135303714642557346844793429224485312266998705949892983900418593871198694979992625844033205573673158925970522555885478851993105215377004412457302073199555801120084340379737336810419633152295952664586191084099753710714965365998003657251771755322753992729727250762434756112319719857554671086581066618648056345588461697855075238428513370658142764112672077038872352205351092295353432444350659985161269805807127388222606740711569051290609641764715305492533156945164385922716506162657057413042048548184669153243672131121678641807519475905790002283445228760748923056466388078855492351378676756676105945000373723935173362725500308728958357685140592068291789660172419482308395023531604042558363863980918068364614593007222960684095081772206407875430534142683046805895815895934730056827557192702263223789249992204071103562094643273652853791925257255982244095251338170330690433441968084628988795318268515621042318242040937419860787954592697786989826287564603773260821042833170896627607161108901671926262525625870051964015531772351786086890887137655270454366805789331378771976457486335659496091672486818244725608547821380206055916629201116913804976651354771304829461351556730709530936205260368253663505358538199566439420701950968385237519409050671238510453378057052419458761434583332879161442035975471618435465487465534746517057946004022360852899596841115938844871729191546558487582730027830015179841778257979971290448898174192183237305325522024685528495736174191435215760126656232285513950193103026256386081441734010283886154555065164283265760075982955819637162918274098303803130890124372606359319261232748415527359959279326995019733115520712398571021520899295669103257607100575232752538060582941258483377135440053886994563570798419255098391122612832920768724018938353601595797873646318397738266369682936705140171173002908922442151974362485219592122332812600476438225079732680394556020032268354531985372296860192299699191447194497534883760928975736076865560998012732642735635321617734616933919068841384534490419658415131120856050128742139318221522259841218128638032081314943927668883169214035218190560157583220415242604810770359449135152316466621526618493680530183174407411961286912148706747946415779020199374950434693052341362368283106589004963275023013429474300378151784765526232866222619255121277065970055683265201710694149910741447652598115265314148575570329940837741716762766537509067785191294659126391183445251064042107175573538093238616836802713325098122840369977633242858318543353433393188197463150122704127213296017333703433654803446538286783747392272350704005880037016317880027806577517945989445067384820298513927601745013740943413816609155185243439897598722865073969692065008573432959856519347168656657714039745364185909020187806331860655051888041348178311042815350440298369476883211445921364084349643731185919798752238519966502074683214992747825598056436278365105572381265700717718579498791705835372616728883253644688915693703764586380387426273510826253070113150495473756554606286196434148859033846048747817475357398841209509406539883502910702191106926882784922783888995152019376745096331698587715285292529585608270941323317682386441290626040768715259220078988186383691467726711903072221052293834696071594926245747625937298648519136504878547653843634506734687726185605327659961681129907590025076706083544891927074459924048267160391890732699943494476325217305379169673436329485489011099407640795582393875582761880806556601206010407835057978582298814260994874500653403317890936237122139968390711669779332105936321934571944178687139089713837442852051378153792163033197032164058648204236128418721941550839661084472504660461538149527750176077149998142266744278031837847222864991295621889187843236120896114592995494425536140420976672546172830205911170659553090188843681281129689223144038037390161661544136753848839309008799633639941039828973025459545732509431163934818935409966640709420770274565880611531319656631906800799119574252162968789266650731341700397228565201667185888869881385928491574897098452811711531325847322133988695828460636119096936574465730562031438055846860568689978056604451715964532488712227502798747140461064325666180783072495988061320427753674542020597197586634285222948489143925549634574627471516686851963764776890443403750777968494816478754206109745217268789500426539910382174040050111581682692624320275306147195198155697336259960106754416492755884034909362998491399242870250987424719957431197636823366750198438516207238776178178021969799582448103801542318540462705272438153321416594683499037839728147741654096613500248569149146892829155870717433381716310145324981298444486200174300899282690074289989363802729367420823803783283840535979650858813181052345911029916233219375674869810736658380084346455738914462514158721966072691236024129860693043988369654459594071547552272177124426265290039971168947196533200592700041990843943847153695563153581498422897220036490188115104688298536217172071506247608145598758935784950063096848793841280992938247429143287447313088085894328378932110872722055200455913352605243245899747727221361188010227960508536829515759326333946531774543372767368229600189289275464008691178638558391295421890697556984835469641492866349616718927940056797944891835656654047377504866950929008635751701169499371615233606158915378194477414693392366992932140417873320383829160172710436184571355952009268806441285005255440509824564743758537893670675315820746046931388425443341278518622956282403841408540084037779826462989032179923613247021683088597255607024292747925913624462587399381262256935745981620904351929171305868163336636911095585096292530424368108175887642005001472006601257159823759328884488964770077632722347611772137868718200708024963521562773206722702322767721645467123709299540326466727645395691918440816984046207082417469574358240184442799297352851455045807448998024607706896533886987585520035214639589626586037137106881687217905128012701381318672857502649973913217774687986284116714363824256509589283475342175976534386440581169269981529712484323348269625323888001810424092456111821982720482265228127252846022939304448277179944781302329196430280981606587886978978814603003727242077418628582522745192179750613871565547727843423384375080733082482606164045650820378574810143118846307789792314796952250618489395224134271734303329832554064880739062111673590032928701561669856818104162408473203684386265615014267822448032200615394701209894889276730051915651065688910249435338132464144084668098296142788090882630372643005297587483564539169531104269947229339218793144147992696801976535380805086592770169693999082986450358727113144067792784131162517050752628989393204788258888291753841626850443600833179815414331330978830187209922038589411175170332614287687638419356987935642498206196095088892746255330251566208211017991247863237599823985601104713826350373604508681435851607991133362291876629591775491882775836034483675909185216812217238372565300022835340665627600920896156249647412871618893869690533188685885426265671150133532804105339206445228612570675663313808753235273912322492356268516458041295452254759830827921252621484225469390337189396458082124446992722967858456282958454715363642006369573186957613181127177133359751168885701155449375410830295678690208424888375747268507934490651756661480669534967771510841056801068673840005035019990448258955726950038480600376252764297575006879602663078699922246819902013819699244985399950096666589509044109400846157059387046403665948382730424716775791032259339122688427437641003002915854612406905354686409927350908287394211324257182226644584598095063144636076473524622352728660775167822809971188175126350657509047183905438800796384392643935122510420679027716226247055369830630363763922121550184310972307959153697012622770256876196818752104892679879082127275478570334555655798447349829534502969120598088749200945070788048995765289549881456547520940438619692378570094307862127727861946250767424143338535414092472255167214229151087573125366148259261096319831331001422209979980618388918863219084803241197566783818091199832411614270606167349310114667071592146995939596913229987300341466161033697703692250282848653738256165379509175176677632956423804289339470331213916562501595384430721802007285726024089771471470701875178234566087041113903801112922826614430965023863323692885220055438620629597547991552408245194023133510365285401744293139287490617989421102563796324651935383056696189252663372749937808080098783529031339628157930506952434187352855753281561483401249169201393778298359248404006810272810449883143443676461788934413644570994108804639020099713509087378212628654301930538107907900566114088508618910980433273530398319784922299200724986549487874925036645673752464933811502485766084105808994822635549872906856769056740374188620670264289641334841619042355559822180844866459707790262685222845758429614200402265581761206262544382349084287655819937939086377877528252173305525435470926346406360035039544510628240307325595852320082973182729946531623400041464804006097475376418037200122810933876387138095088093088981557084516646832461829033659116288611088971204265835345092490891839845400903858586255070184886529426401761869190861807485435472463773431582549323340865483092019651159041205320967764796785356970456921685889308671787419376817016929922967242436921982075683378914636812663674860222156704210444840264358499020343733428106731508664160044007187729530052458001632385275603430982846223147766721214509974488231916995672912070503047374044812441263999601360875651146826019107540281723878144654204773006264232669766991735626609531667517853439433439580014669741677543517002582250797607862641783422562528212679775891098603107678539996904990759798341893974818314883318946512424908281808329878928028949166025943625858136565393138594395967268736677310505845779360659635057775703241953484003381788776550127673996679520448638021532113596682891032665483163313538655343519773744844719285883876134277763094107898146495441862672870911469094903069665656456766418696913157413107569481704971517272793229408964173118020410964941263797212590872974447792179645707844633600273350370091036896754813866099426047391164035372476316034092692691950057832317449237501975044887322714988953949134704471868537357413146013759538196948807547473017878315853490206252256056785472653165616813490594474070593658347295753731731685148818262231414427735087811029447746649346338594178047500505432485251552568404481845258020627306495940201150531316783539772097617042896228159380315100663476453105139250416041462234854828159693800341676741315776171150592382361722707776271877636838742462553899847565877618553001599280882034031751456130584608704532340360102182043566771515095988905236061138881762903026893838982577173328535249484803472674125142777389527818308532425142652547343431402839847771646824769521100747255717569756744818662099941357575695517090690578735847341568649612225830975463475855180264296892294770633911209882046155518325968711351417665584339006390010505431059784468757562833174894552338638217845615368744093493650371789739328707624448286120872146361006845098936522621757719615182850489175812567460546234740678270932153652549715942186355505632345144578395624413009336076140751458670419446787162930708060021387685172130286230303422156756722096447092421160050148667677854773840004115154661061950173651811393423445922062618668172271575424600021354266960651430215742485960587229431533205774452451297634748563291277960796491959886998261796371242975402213659652068315235638327804136950462858917786199711704993607532862476053430342438041278141249619019668668082116388561114444319439101988908681446252563193263967356539362722043994199206389896093315700237159808521426193460031642654867624034777009858092951118773717077465408460663519997433497788765461027273631524147392868770188137467350093865492983880964101756559572648686119331625931253077827155552516887595448741137010362731234978912758268873480213147865703393286507536531943383370495780193864712101464006066703517730758928510881657839381979935511709876205054505804094557017456179998195866631142717958980670682819403037011792718510638743011208969305632975064129375327855441985170067466102603899867662639518600767023330443359925890420823892647147857068034286257272952015707305761785154102894929197689850213931279626458314487383893250367395042348037379090617992640727891260154959097787156443005642023682581656136874494301463429946701441931927637390796879134635371465647277539975212425140754309090779309677182889498598121150552658018996497280516016123558910799729674062490306534905407332575603952811486971921238122279741185226508238362271900397978836257756935730680978098395964366089532647450111948539327271773654472738979205642458907050401484422305876495260725295030345484241264262945896862037309343698606189922662718363931553707705599154520903521856423470148711251138305952981700435347381179332738972377741438094805460186490834829984001235267556218446748581010872125345896532480925281044400426878973494998361723037625500034802410621120051112258925761267613527819220044467119491914348883272855898097165887793213816060240087269924306894432569924552921426509404866926144711030490003860299672120072547099100207724503384259138293487272518019163816187347975531015873388107386648628926971907889831241453518597627187494378651509344845381921687104429145406491452916796610054087131403086701265569892693006433663855951210522627938615221272044760669457246536758981458879654812944124577729454586406786290456548635982098335913667068714521267071574237979640466274945988211152046572992787791900601487290583376485133458184042060031302032104159394743318487429922571335174726068204156384838114129469510786163371725281639504939436454890503089405888624706411073841783886603179794177579955958843634250958260971849274320165733784731549792298047189400537776201253266988610831758172673446325162199693418152979399564506652524011118418405344266901300162035301472835369610124012592355158961979443383967863173677070199697289679171750523205919750250797020840443707973090773563498617379201582582333666381615440830552910855332775729190779047128690460994714004304127882362395469686588862502777223202880144478106314180165402302232768055269396277954130519073372916401549327381285540822914371132074431041647687128973857229703137409925157072957793778424445767818659435327652634474513786183765010187090978459467261491212286266384293122013896307077834176163264635953078590030209000613698784806993783465359455786897346964040476064751766277103562734649250264967731525486058781982530631018298269894816661732347605274993790211919122323043912240491686601725731457047770035628845670864567313486333903660687194523347900336549293470718998242780907852008334192912624249280492971578496211724599356194228782772633263821112222889801275772263176190416846955787660145245598794936932964242958582075693016278990487557605364660947484161084790512514863151571619914736855587521452800481961484591253683142500835056564782867248131372053212959932046951801654995318029681654812569478155891064299052483900660310097833042220843425443226815976108428502113102126047700001712128241300295783821950214855604784791572299254213892709924281221824246117507673348991223376489049456026793481009690861241844975912236273350223849494589997554938881360200583272961060924251486088393204352956297185709114320902650817050792824164192046363684328418109447777197326795969912191649506954702822375855867083305673939576129977303450823048333908485816756803575149895945033718323526458399686594010279719463556409066524242459909986118137441855979183973568070552934141851524990693973524354315062453019703708982000490781939124956314336263009110496917693292869538926811355313614542679163137851972321495283978009638444198875421761220622002600147092152053937026415831403050084503956095541333439391991135095590772171454230017865288823706251219218019462487779458953974283821965352126741057037443532324086520464398626983853720610431234265957800680143822546838219496260845031119811203708058121360332858122073127590342229043517665986838726720337362606063171145032792805312849070456666779394319181045399339405450622654956991455742788590553820068832923924241191192459128521315876637240113898888285213083802283442943194918381170627265190622656498750678517034294488251522934483799574143163054462487863674863532550065458127882779472975996842612101391648389738687300370799627423408427331797458340832425426508383580049808435405832443567991771832364764696349487168595924982539006230626530859480192130559532037607103211018681785516532832315186202563787094892247103110094193079147491749431976435130774400506104856367442839314189604484096975496241199808878214032120351343727318122887011716777206705280338723554840288195097934130199123595562223033238404471609541094533402559194903786051947750594751397031597612517452518967506913694602011193163010348087585737043062492661828346874415548421294579431436636126924047741692982754824827504854705527787489471597217928251636934577806722970945704182098796840190414327291606857415105767313554484099065295881586464598152493609696151816326719924610661833027509933215288220625762749830253343929944557901188796614397609709260657627786673499320460536079388868852502940737606728969919835770730215884557592249635148958934264866654590442906265328449736099096023447588394352067935938879006816097717224332172941977816469058776687990773995384055877231644013955172676601990734442543061937402162615627663764617121004611150772865080016411273647340610252489333909152966149548422780206116227300982720159060715807072118773858164856493041383684448362858298915740419660620882057626580805497189389158198191802017693495462489823230896383840421271662689591445590313135608890080451996360697223948016837423588416271111883655407016216651429770697449708932360034682157828724162009211516101873509311939315162298624230412090664114510845746690877195781714953903833842582164802296084253669680843887166967389278166177331546964989236731188445973616781388659054764798351291317115914801395384349492813822129250924925448904296686978586266348378543432102736247061147018922291807089837819991794743416265593605650134920437948099018309768012888543187494226732605741036717008252091569276471078789998400857802544295291679215121594431594652407349278830487522372258512691475097600275362356428607958929558211573013795983619363035439616262685144763897780790560820118610214409483217864882616759835260339176201323117308666699992959504128120503528888029536427449257877653637350302861051154608908420671413601163618816170065384038939104498733385825952870338680096182152840780315665465769368234625028243964860713040446587508496959606271032681952323970993727873867583863659312474940427156891202316648215675107139920812607693019880751034305096120002970741268556282319522609178182482507728204789777573027351294307413895566888875045951957053242879531651991682611218157778638673670414867175553067026741235666917721555310832111027142577557867408646039696737518996624328981087137913945133479229697591192899676658240640327220121086817119187652853041834505608792222386870510904316296045653313660741277339758341558676506647682429183087940401791026973603563419380738825230925244330125232737390231609527793340889081955595850089904021671600896141662054375432423546420836005606321736935317343910829537332003539654414627492213105464663588660160956340063047523999715123692464941555247336195692113149068468534033769299630285289853667196806245999382791210114215766663274138053616539641706805512481490393935577153284187008809523038955873363151886037510087706300036708073219532972223130886743062208266753469717519055426685170538738664815958068116106815679100694356187865918124552147723245772353505714963276911448544037504570260761203822009247879738191033127207767018777300372661357534229504476874918769176080562266151150279630033589607771827441966878124309500333005409776871808150460155332010203420215131717675141778207596707888853668515501243165612712049209612155075969226117681260006172766451672531935260756710681294597293236356554135121634883918934604568224969871929347385703248078505923868048237581622967693951960261878395481635176738104424827935526118170621390896005578206533252541060071948772302587813931364135758711915553881912666781469297689247036921025682499128283711091343739967603384467752989881776915508874487287371386036484664096999515669456150648110741695154280705565131143072766530677158148409469297726355964397533773571890824789941977776710698035933409588501521443114706674791129319047577264299949780448997830220463506048249218606656140767918088888662345402551604025932944754673087937682444481069547591506206815668028289876988446622575095446570721052234225421621132421775810289966287458199632512781889377075348191296804893739595600628930787581654380339025513448701703837464995009855197464024908974070029408067798633347851819227708526975803020937771229994042219995348718457025191298965971494834838999256598057398039354692119835703390606325105359097609404859483112944806956477579408721156667576632758735758717595161637829911728102347476629581489299551447361587706834146372267508741489871430525273541450201069870870380605371767749488979197751349702161800877857004080922127358718618176693161683657583300674535341100158449235207713125068247132710397868860954936112312753537183232162276147311306807415258618594020124209362670371831853991389423076195889400632625743445250095378423323595545479368563978135861306974080905344690313631982715756552560602447815325919161795613832560088337309937767913194661832100714992505726361021668567879014625071645506748230818950090879455364236998512387789539136940589893703341062324854354657344599573417702493285751214246121814263169848818392734859154172660795957376876663283113415333839754220959113220787154575125457113565112169664327708851961409285883010757695523115039487766574976092390376322515600382287242621001570294549562900215542403909917491998831463331620515769266055112023633788263624887172839581293616099306649043144157337486164205212192478391137352483827607037349660832908234627599024743099691161863854891857530729190905285616632458607736902393976706958009549030054429964657921676931813721731768988236522559334377412389262193206613165958257618039424742228042541698164185801628636027227886425915076322161074996592421101343315148060860009236427273447405071411660404811538869682724069244125098118540455281572246842611890269944060042022231446945404075144078584543747267404420923167341200964468192376376638113988810291659432627521795803415886034222746690688511389606186378844914740965695943455222025429204496290563987249724756525972216663821384486674863166531962371969211328709703322330779620419477540224581661452055346355120658342075783212498173817614891326081956745426601849470000970891783917723570390999125163218293374559960014163998937721521418687904009635990015222970106877412879566253869343261917896808164438910328013796969079863634213764653916448356009689695348647246415703844152937103445467392590641940739885148516227865604905956275554175106202770475004269141943804525111393366975503707573755037053441014052924493287321397612437355747418649937310874744454732264921327763745617917928021931438544388742479231498574553126119309628624670429807263884362518526356254566971437673830873989909232181507300310264163230955276825003542484878789728700000326683379108380101936447353208626887480609981941194269129936005163081468070104260344688856166827880016392113235565632207934619266026610346993142132381727084347154992499258545489646475679812439356351255271409098537810069360179946746718856718119727586024465787011941327163930969079644961887764194052050104191775290929123035350357408600359893262051948254270626638452072671769891704716035904320943597966596611612835672532332786412220174239475505984302977489846444585962025831343635110861426622930690993833950789535537957194954315273160731883297572098172419251743846857458270367256135359646211433077931776088643679459358411200441173015328453085555544293683436940872014163205860966905073197501809966635689639923172056177822433960250711945183362053846640557287089744525420710880775533695197410622586245941148248289143888550581855675005250744215775501096643701339412678355394538454533291113610873692162337718976380221288326535700716445587274254174884646689106922664694639197209189310669525876690567160185129892541913144036560433229622136468007313351618718887163498083157829275306302537644046293197165169298258932259351427210320449098722442369429271821342551020186217308607585107090047363252702386974885356092992502122338178600722486781998253501002152626027181469648719324782318418796356136705675711496093507581232343378585011554563916736063093292379696601435766030658253255129523651770505636214859004349561960790983765249008762696892011348615897656017948913551512790137337817213170563023669860173118156527149402083269062555253781463145311286949117279692984858844996948466483633108373676198745501050858065849245757711978314458917949257986491419311532840614738028724415516220228911872356512256005133159010694845657726074647857991779011771414291098791569974305752426942909418575204408478069971609130857906863651920754737484387909676925451296221739706980043935011232993202484943979861223558915904836684917483186806507439643779157223608876086938958507882184767656240368175191735016880196180840217454305504738357827819778657569183613297673610670326669617517756077636315823059549817958502557550007230449175771231540666257555621293890451839511290326527543351722999071598173216305244809794633327948276786200309208160403966579038605390497703303281464495970422855943238754355696826291202584027276975152613683238561030141814510760877182204633529069082418045480590774868401662700855236054207260624709263316972146308080965219510903338318891389494238897114486938220848018572816974972989906696527220991304065035763377091699978222713735437130483496449135728196983879389160415930978634740845772176082728472746545241694885204578343597927111487307966661136130628445076333624276136346580638466838469959432609722433411032530935167876529959783477480298878230148183197513657392375847210908560552315580992927731725606352302103873658228678405750835518807864817780573635756614788487886082302066844657567854431695584647658133546098961158674043198018391908278275917647104093631851918849733876168878948791876577542451485896564700738955855820668780373865296825872719059490079642951513793336907644780207149797493635596538263587508259722475082345093670416248748931683259515996201821235191108226139232999118225756198013434454280067870179413290665947618584523205208845788614029279387689926218530335069195026450529002709920450688964174140608545665620082951962931053913842535639089127228611216499985597977152007832588641386175556381227747012133622185059235577809429857004923921743082260161166222122370681166610810740070726382930010824161717221843806348069799776581685538390098063403698505393252325340515752802939465943512506443868964084319920452239422577191866321897711711365232196449597658115460314928328405401408537865597360183968949855286418329940014297262977431794457548615780168953298292379990712841329433004872401869329832974061314842174509207863456270404569553996064875989166574553385091851938881644312366057300961743013401996447504881376709077416575822631022797606616962104801154146877976843887289609545381269473312819501899642737531110162322073712984675767549930871876504507432200146523829628931111170421921598792468579142151650340496434650909525501049078788268495907931269586613251626648846670529765408101435045090910476433722764327760906915945827903654722945684383102624821192376652651370835262208354202190765701704575857855204880142190713295038315082766347890164115350033666364444295139017686506788933289628632322136830223773612766015739145654629571322337913722879649624139197823339225410201469732830924502474313931792801065289667087871018059746429565819930520145937332702668843144216309994347696422963530700143532934585279930786698989902534635588193516028404881336713081909647708577625665956179492570611903290487608776617060994735180135017484753726249093784159833171459484899909455025700060466291103378385148982014908680887208130675404970355246785487352538608699842336689177005623400658466926848333295587434094774306562982701431293404018508355976354477927536134603081869965656525660274302250821875339854762663704168254556215163316964591700543394794238921036423934629132106399193953105859728337776678673185672446819576211912835617136675991125610674145936808130639194371223484945817904680521839636247489048617995412964041735978080810451635240945581061668217922543998392142343827903776834357859346252849292749944556800280298624576074482420217499715059469720608336840656330274483153118097804358868444938777026238925082131034482978581777355544884314165770932527242209561126557271791795756921343945202920051846412436226259988959114270036087029157767235286678109968550924958329174588762749903257846589601906985690231314762854120898357583031314863090452957659542263468386501726691736180600890877020858530550402272737256875414366293729160479641096535106393492416343111868017103839723326897424010951511588764010695314013127980414885719231211622222971559502158705298843059563077658590637414073110962002538071453851067590997794539503175686583750633969827733227550136002154996419820209808860106744437883041117191172501256944917053925646904510274698507163903276758923443517415464570150051728887676905809945297421941650407238443185662791378135085051042834119897916945973419947185035588997094408404737430320986103932923075568423628001897854012726308755341662545829075096540072789763259211557383251789780475855797350933436283912193623968283618389282649456080365354345066852987772748913121992427386164639397931350769376728196489914592521699274690924358782323233017624808740946586297297172088517869432248158344430374054408870866835924126183347961281701212135868671626614813869247546732679105205575065546341919988564618067799129835782896197818776379832830825639905883366314918709428345714113514480796307920208751219308343147514047976373240468438201162934778783646097050522667280186892944853457800326842217573949917750352492017148261469898156148859145225419703386440360555593399747366966505986228975967036469336755253697010405110559392185888314947751405558365268565599400471495131710108340007534861914342774019510989569298962828224283087764745916879034198877623734722547831315989039947721051099254358994459965119920081390675633664505364970884041049390222264025875510201081823007897260456659935698933213653557288619235440257713819316530027334675674240377497866452506967814671879569534933113046743996536842474943708009806513724495219847563929005956499897682102292292649746340765372689986547114576211535206403308297706120586285995227765201106231032295527195381004143516648941368141622440706534283888065963307513495838485667015862517232698062316380997482165667291675351841486498518685173407457601977811977107496213780673424530802237757935416797131866777217812247945877658298266938518167967178426941867097715226596869307484185426554069276479332093515844690257001463064754327347174371166205654141379548110246147616037851297963834955029548593681414117439482109164424527050812029041517302617491571595886567469533981295133146238733116947018864333803487095284219962346040680123875629142465730502218630437141310700793922223010454073050285089260568738886019437243790258632643988847995316082846327666400452522906120418052606402521269509399652234565113001716775904616474313123699169407234693246814444392857874749587456887630292137850700346395368786597620923280454476404419765916797693654891003108645570087712903584208333029797121961892428694400471398074451832487576827283514982195153305374115942095326256950432096655409950344807148923120380832379511009413190058615019627783497339054465820617571985164900226898671938016822536319505587698601744178490595108634790196215484308130614438285092986030701951240271159479741236886693384928442242892542563576072963845033915830408534346588502846395408703762416379860032878887401751480546193505973449640051430370286226126774719732144190116300971922265540022492876055429393819517644869432368813929853265403630215912842773948328128294070878745670935745102338440915739497213554592229524706402361669317978017110612219937855656902973836080218559210021415313569784810756132650331163270286049502581869195170339406757774846987504893220505245956729050454432009937054783339612399366599148104230961411185930267521869689966131394559976164592295649301922400673650525234024588295503875434331578422044682567075372784040006740750107785465688896747825598556437709006501983721085236826085647631184868448267736343459328549437329670100678527742306338146808196412856669310333852731907715559772274594833649875132011807322306310786757113681249162979742184451885676135762048832559685612687288751770733644980896950482466661159588632849472117814360961339827259092269832912208953934704175973040388304789041215387761627352863175139208289050736378653033854633778479852526410614566254936244962724835396145617832777468276963685432960278182587093507417780840705229187487508923046746291385805678315181863877567444695133336452989957834003399345899593856188816489530603085705277392094801259783261090888999934515170107778170526583761384800973399907564271262852823422459191094975450837698355672097409867538226161220776375140643519884458733743723122808566078951521137041930641096796774318676854055448324738670658738430129231573883723624655238102160018839624011233209195787094338395364784188558917296613216817516702198537939968973888448997326377526780096332550917273711727311833384918707927236521944686979169168111089326756476318534141726498759466217222550416121067668939151444725301565725426571693651479439259122719017929175367029042100780084601209884073511235469400742252582348942608964946042376314248659487461087513442923698699124932666097355267506860604133569225829486318522366670177157477355149352589244819979640433255315780337484156951546001235542783857116264399737273718770196185458489784666704446037507259245103312572431275546402904623009712214906111851145310263552276671721449308098448418896921690050084371406419470915196514209870227048268530199798147901871595226960977179799891679989030185794793149808890196475410646382075896136139091287718172268224663962666003187661479798515248584594438580751752038893324719856513736893673173575145534816863428095537907450749402887285493842214423311123087512843582285982638176263982352100566936520287989656241472297501261154950327648696481569229477508482583257057105633843129940788407952756814001164522587654280567248459637749877062943933339658588313663077194485983106143322362263649584037729481724337719777078217072069408344878262096242631800987826310316431830102304574249414819427900038886557499675489327049652933103385798463918857644100843981880795601424473096961617921932664081527914716110685578655118103198000054443833107163698272767436545309775943209686696443890785674471962860922392838582165290619523162136782322124726798874768583122327847487460960391971668029012889282968760436673346563427082968785214108440321175763427417651182065285199309445763810830116336689351958649492050011900038684398352480422888181791938978371064901908324764100362191650507886745893627641254197944633905669917882981570906210603278964174873683583959269251175556346525436414883914658331366273648767227576754801725286884576275511295064701290305446057848369989356377584420443667407229616901017055272253635139702584584308952772053417167815468083050202228630039543149526106587977836864034639351366492409364881963941803201848259361250405010846250749782050577016788573081772044473364017809580576428616761905948558006541654523837281027675830986223277952355933127704274170618838397793614215134851490728632778611751538283718950355108224500921277628162788444480165354101540741647146885738578677594117902962114464141255763259622513593021976693506366408924996175639869325419465626790724565773170317426582114483971161991784042304908554290059892881826074334948657665786428365030306665868564539640844966415974564054179654749103470292242234487659565773885898300265696926573566514473925198170315515741463124108579885976327549713998923420516418531403431014752336697551347375685028307644011644113349419813279199876816438748010487038570994508962073371320698807592033071554978489177746981738777056129830407199287767796735966770969468953345222622422504283550064423102284107106973409007703433599762273663349986437556815446284757033198533109185374804678592986875845422092228294854040804018131646723162266382453772448234121279318891853091257673822926743185687636208877874206983396629948137899039542170147151502519240229623037042787578540436103659306967238232266895055733795829341696923164634626800969858193772485881867305815550224016354007584281892158890949815947573842086518474086451483890443740153897251998264149606050201158873744522620644073224369994882827725598445073321734562110946100238030634490276871055690911196386348689496421807162877224699237081244079106215346418319681440820235248958167715634535341813719405176944692474283320320583905869940489411075602976779875894606686592663822392177975377480756415032634192709495582955675957965911120390167726473615475940399836413907700606657136460916106720071901255985289427192064969414352164474403005139606273020063179275523947848092299523550135366002955503204554645811628682554657818556058234513304224453755320685015048357367015784865593993824803162663831919636732013022615662506712090508526100733885598597181406471572385890291857831292473714645818485274984756026348211846179446261465221301712042291950386025319385233816931387563379961317964728123964358037292170977623582160064849067032370921720684468181343876583459836595702798268869666489696814107111385443281871146138364386873207772496968447188906486553956274673415357982983253433644330045442253441843583728493567392011279243298384837195639202760410676028386700768036651031218727855212161040121671009143087450850957697115680061012061282522858824752908235198456925737191516531046317388844583481158555024566403040014287802976261226625380368744422421442792803514951928085817767928387353098168962621929808644880102750655219868642143250975248633611643613706838606982409416725158856193537589189521798594339901265487159196847134498144995615408395338433005103937461413614316262424596354926025752757538087771208783363098627359418664551654351758272198717466670469774250155363881134959000650102778954893010995165321305435420726412733535860137426471612465960517865913675506701404377177840520594714249232219783943568037015073300830522411784563566935686219539671789343300446995040619784382802978081753098317684769266613616728186224867934133745267444554336263790614214409393802071038586868964963693171089127133691553638278985265227145479531410925938420544364688727853890676786237745163527481752443136275576098000354965290614370034268268279483242566438834736213779296391203526490771659879355228901811680502674660560647533023671407219274508870432413420269361729773404168991576026188367365270881417518648347947570155750262709619082163482462131339764174299347130143030697506704649243890456986944820085767774740288287556286433942282925892988895966956652542906705665114828421063937923127042148186368111202647549562427437351333181721639761377424609530864488576794449246294334167582899514878970076394981985918605195709091018276737953714589312023163318176975356415548352113433704959307883769203504636522376463835779673944310264274287745185714176827456503086114896386453926474577049008760069494191350560597195656830870879322728803927236280327482817477979170682649033431499553762272329605534773423171945982958657365890941155559258231344860156553187272120014889843462108069749969632100916502298252529391169706916479656407414746605327365207806634214311121805684534346391912902803816122986145222359225589263222087052043163909465630366036071984299213048305098608854277054175430910985387732698797669840654619164036240427420182719745054190667590125568831695822055799271195295691203829600307679204728347645795824048240607510810835346824980879921850641776951466945912306130025203440588516519489919956025354673912625053539395101284991012603209739786007198222452231477938809473123999938297292016246400876163957691854896879916616000242596787122003674817848968611970615251844131950732772252936008746006296357007387010252419435715771925318801928198822249225454083659883152235371749047653873750927751795164398038253530925417242512352317463493429239826213993656621971166457912563538940361946747560842528603267385311825905653815879216607436588098733456253010474686380146583787591664450683101447399065786849787683955539531572234980264167805860918809554776031305992939755942707991789606542479371090054928824980974394147157845596166325989062202614112766671694867086346843479831487723500497533030790523400505487665427737750179300512265366691142959155863186208146440928377235939070524982557503717359971153873129451676908749411964714649306964781746409400438479374581107598255855767878200214205391385638908287056542447344091889083880908007110725237991889488391844470980966441791530385207442851693721176961435372039388632319874220663769566841381619801414650608500890703142583821040226487271383173974462560811829640888877154011218467166156299509290682573121807833770187530810283558577453544253620246527999033464583390087697769947134656335249483352616118119024229135982719448105362640418089523253368781607560276652423476016860951139443927113231036838276170310171535839122095917063158745113360401097629000347325236736355154186780250209372674267823823138234715106443753874264286600369118323550989081652822711408620560639866251761044023732240040028834044310577842552140556483217389007485274661778017064800685453183245198657285064219789363961386000861039233322446693041327584559273036513036550441243654815903549085330442935633543030911190683530013536838791348216173504786843242855875998637817278773164834475342191784412190153173635847849753568796313158025655192986552392835844370902835115468155520674259521006885077517129075089975745867260879795007057337580245718056986842390758190132475051593293397791918794935102830378750962593603650910629800777170764383166695089333353073035734862036769626353674402588647054638327633768516487482645590144974638576467133240447760368219671325535397458290049881470729520809839637250340946964448894994948350577050944797345932660165421157145615426722701345239363130639879408895261118630288838231665211405087965735027971387623276349186725522209101718207173129762749777291421550934847009822604170663068316126795417958918595083431709613667603582756379118368216455503043662644057956137995815611135343487737285658965715770269283562949203392306106646027607366282163319451786177320846403546370817981754517578235193452170873813095365505685824180603923986273323059672080526202919766236275463604564807441945797130931416166310874861213417446257144998080320628497823736100173760542273325484968575755713646732369942469679187715550790085885794700515504201250973628771466308323213996494619916455821806193540143055536542511005454203159940772057067520939128179706329637437621096514327423862909173352762128031784273899107878881251818281349469742483771070141594091200953622699629450953792018063292548449075647053224282160872857091381184343817591548334857059104480884540265196339379714813533726239627412582772330840811280496628082010336486053304816049376655268800044485764491372145370752524216913082587252952803458548816422102257670096908823486892135024398708360774707701708240059991351240457930325050800788264447637202601206885215839934780863005584735892666995923476980774472293272344725366643248019479825042662763908471998866207947395819495854709151490028245740479425607321316724014253748164731920284015360448247315763481300119719513545611153643538583521193352545348569451105795115336629234132792372271893190664127622759677586675974760256594046335092705433777824688883371439239736847714844078206456375094654539135838025542861352985350260994401900746130881269667317253769545319252008324724525819341815959525491602201123888186295742291687500807702281707057045856594332871278150285317577157721348001695189028176292588505867488174485174200123823444830522377094615815268935469496786099363993623076670411537389597178552684912085520785591693704065140351725804282492188271153371266129239372997538639330550442540242821551076214883263180556221843600194102536709493833335082811767736643657080740877653887835611649512841592209392086248356036935520945902205857919920606630883698273186109928140006593913164700646398452015233444322816668473379238217448858097254956163510797596401779064431734259412152785700010850111931925691584184100851182799635868247755412957225558092192284813294234233032201463385564573268510792885651723293235252927674467493726307902787648347485079009166225238322226853831463118096858231661631729457499693694806847345093229027691047641342109177444060223257430800158058435161323175645190532242262978478019942793011275677890716003384395047957291194983027461100547950263546683716289877926654632748057540150596644910976362434973376473363809364254825403487402839907498395775782376612861138201220079457729769075548460872872171517978006148939235825880854017982010895831133825957817513705300732914150699020014313406981638388141236802479048949260577493320165911559645667827970188967850660896532465334340417608784871384305055613720622812389133253301310239259609489123625425521191080771543818345971891071937038831142991932955337498806576109841820064127003779285303185289210169750328371470163156914490189359253741362472174821931819003369217096814531743094490133378796543624680006400558991581992581305903792246662730310173606225662411153746674455098205968873470201893330356668698711086598166325113701000225114566686269402341414403303707113796723690184408241283328968520515025906191421351226443029048935964834131157424119029835294737718693936026276187129330319886622143441603882979415364876993475835274195811214486338455205507045985718514488525105687766094427686862849980173629785869855711881308022429075954775882312946170227816394914219174659171631693626948148457368128513328885328393030793655948597752062452655676236741498339762213739474762486575064624462632354862757028012631879708141807166965090131004559676910477563816168804325212977803121420071075237873114841313913290744233061898330990767893764754224252179335354490349434283462960028262658769550254526652486715845515448682640809880512697746579243292729277496416821350891704032300723043691602339927813046607744458414577870225122644829000963616048804718773004878865662401423917200501828489427674429700971653454153323137511511243191266336149904143228077226932140451011687424814416634875675486033985543287476675152536315339319937769679351858332514143990281372749275237910324845566826952577888271093698916920037490718034410374122203300024483559016571358658965228033336376929184552375412826442368265054922117767700803805933968153157900593807804978893527596567977123966805863902330073236781496587217821206266471765673043182216931791240482153773601440816430999583015181301818538491807358651820362265494803495199307922597505628460402952862293514194922551237992472299116580902885245863714620832159251035982612993301604675851857522800686286275620775899441242712303092296145746720277709455312732645107543109767810186470837569270074477922265202439402712986677259283112040298808940410220331469771787103695297671662888200465029683769199280235851411575095600785702433715878176339587449570941707293241650037297354656095186823207459838564726880044546192068746775796213844696073055882753341794114553317358265509941569312653867426377711778774959764537171507285885074517639812717699702440942863601467578462187979226201764578332760543836841719592910251697702192858763729275285424309034833121533409700208486819246975791723250465495132799345592877836193519538913891294871593788948480713153865915181390531065115535487802355673194044103703075240095346903745745452356883773903188217260151829545946373500308741500945718623166535298087140784582961919651085440897484762601216738794135339765689958520803233825696921781712663101457440031269071751763811008360325264486909068525627876269453047757625163554252628362621896379262750340999712517316952602293971255157138485251092236675809605812000828701538347413942036856276093989266533573872372360878842753745601747905652698162757656441417430020189839064526357196862566833641902774904066809425195211269880561188164516062852332895949653812904394406206820715478788513838923827120898103489408213338199442355552457213154636552375479828612015760733134579629701033440997972127146938679720292879367676821816983335114945254036320803872589413155013000149513149130569762561863153943100181602105015248531086067030812849618190183025807374519311921372261518530871582905411563696329234262058195860038231676914678791110846212237456574637311254103295109363631820906059157515469833565827859083273372190430882827645215786948000275491977772423235185924375387628226824773558261797329381268438707950523540374209911064831434770798930988629810539158744622875971773330939408873356424783162446678296168281769804936710601104395972491264223331026680261616738580577705599973009586471228520254548859355215761060321267271839824433541414383262052404887020400353403019270221420373394491008809462594180442918999261044317524783738988592430624372645765499124247963770886736797112951087630657474999086589729790733511200754387433373672295999446970487793969255673244248059689628763904639041603931560574916367483059797791358896091916977541400643769358376585057331988619349985275337388083485126439353616853886536089614946453723248924752028516168240776652030067123433318195220269111139590176990500133687511393658967941019936086563562271341368747959553398016177400112879014005600593118716044437779293661664343435500749531336456344032034868626949609356774761935862926470404443313204151020075284077395838154288828473523185451551796367444283980943031600104310303974042162191414058873006880022096660981989530449566426620946884747000219600498467926388724019584325742893787676789068350105513919497299608357702303812221345237158650708555423362346773855258677784957065596383690902897617591899794500545384918093172539000810410111457183348116958053194729805491435058975725014681436209525405853902867493661952472096222160597527603606079058352194422315313510292547428030861733894724252293743187089978480750663735409719291308351966671029829304435997452319512404536935186655419631458166240191142626322493877390987032218607995408761291954534863199198477935726670688988797726878512255913698071120007785075112449431100231021833242851186830237171080365755328347304393108327003158926685130885351640849568732120206870812862563364997318780989794040471094539805301537361259051980932624760914672867190180659637165223422570096817111840391726690102347198112985138785411606780944125363269597579234329982714885462076629120374325071527283148429024345248648510976406026975825788512675068504215208573607940150588403700303836337469689653631874916380797082188782287131453061826560849277641300079428866875392115682493553174513865047296625636376251807414623461690215210175774144077142697618663484746294778224186860942153945140835404007944232989559681434801913985532843321020040640331987768397358121803242794398338518536346794465586109404134425427941954189533157113344002589488875903254890056384458951864979197720529608877123148379418295737530820005346683014301140565670905558371357559924354769777290624267107222008855044245375310941019203654400559023383512372578536883040824079860083255305351347168763982435965457173221381347838113206852830906665560471681282117349565743848517888918253773204594160605010593736427504751497209121802803280669384174936388300445945232462830754881980799574029076020595290575782918638495482709063178821698674933194951929958035882469644935819463387964423242142666365120974667225295058106002511188076734063113752520687548495350288451210314280230908865049934915788643731111849036851014003600225534197603612093615655153301538280276511724659706858221373182180061818790710480091881166488645115604935390125488560830105304327881685800848217350190362696609199428470958185602897518032299615077279051148213312469966789236892282268026455621804407340704353739771780967037114146809802771450721009772408437409131457201448797060434700511579016220951694387649264690816427039714692005108978765680520519766678647952926262560618771994908701593339203314625098876773085830143345541285542384510749129137737275282517427649168402914542195215479952595189018428129048840846310597423471436285097014395697488217813988846790312377516067356533075072670817621228569818992425565305862945833616604367040374603168215767867861176980303869008511967102535442326493365246312246240210624548742943355106456333997934149689180674190314642239935343156648745642906647837685389140044604163795589515031294245840522546398072120463471528819296741619786417339609669994635697472669717168584783818211412812377889054283822330779896813803547761735191128338128217863536960917543367321197998023470212106508153044267237246872013965385303509595657221615076069232757845634556552549213998128320971880583328520862545114005845676222839018667270747442548157303251686227086020835490731687124698144005140641954572158391252300622795236213047599041056427919431067504863583938214195983652266541179186479266335520053486511413481566203565921125595788986192949030177194510017958113319391419707596783668221019355697440152839417794876195502293782512295827979351596981520609797331121293516706006413361010981672779715383527108244320013843574785315142391757566051060792000948183039619802255680154195512526550879207455691762367219077957375583950959773077057532869403234310982982636935797048514641918805542883399465232734679725809224198817520386311418416852832112149703613598716819839660796100466904269614319344290727423846508411138006875497642927572966996143933944589410013962075205563765448365179197968410159066770893550383771041010909000373543621296628898729655324569058370860935244598197844375082668701050621033991583054853896949349784507969824336733111671201418025298694850645414306305459268247607667520695462772539794169254910966181910415071144114670665750346810339735979217656150214580603185753536791673264064631065360594118501058119809763416009922298845829506044558142291990563283488154293016668721047259200129967619650486935211674294715006351536492207241478032803908928154196189425699855072600288972936604044443591779612798264612114193275622635210095563314947246971521600319974132096970506196092283285919964169065035727362834526377566264471878049607641492179583347826739859117210623024599037403943270864958137145194112417760297142970614059583466832746895078617950629169593930530270502118368298770075221161937310670618093989964816295889795171781038054599434253615621193613960682656458910776648526890882420063787908196035561191866525911714900930096784473512078660687959719617867042005498790401960216607067419370168413300004985180354610686688226040198418967691005686070743175442584392899054014979327242317766253171417259172981262157152855579162732311513259043490994488276206533823743904052450771661734771938772919226498616573370299485477114754950562596286281995487267732106550218207198201774475535323385709644325348661442084258215768512660880390754727079658093446833230082289122377346474432112115191435658055605452900125294059075477754820813475132252328866407181072209402430680699949590527190178398382438380541529145210739485518910690412979767684386607864259237804402771467381118474817095079776831720672587791621451331062808892110853144430266615101300718920583728035697077177648033238566351588399944126945978947969034770168487607250553845514448319942594487765857415857147039749693891823113508755373832055417936225961081689869750964578874347135564017611990166358640806338069045871756180096743775437047670874568826892538459959004779987099083107697926038228625465311856766230012685099389453908570712394910883327378510657329202931646710573515729346771219804657173585471655540517156802439846615758256914900876714389264544242563032102610209064340420667705061105365942425111552373444255626223999286588669683281801092734268831919690012045117518417469403717946781553512790398824759991474721963534705035971569331885880970621997114381709889333024537373140759638705628276177870797763613661376708101341743943682881536041355309963519570413408731225262183107083226286884685556535667222814591992019187328915848542778868238999652551707441310592203120951705365383648534521568200672110916569054753033119492156846909977877337522725522020683779565090510827871576350263795298965479639947956137714391758318692696822265755657061072064995025054595463747492305342533864700920322507991571160653331246071712589660174937051218070277570504913284168630407358064689472610539314574738553429903207636344926276939935203505956453552436085205564492227206908664527794936599208843094019523757113272584732768076288532597329840593028592338478764654175229005173175233909106760914412300459656335583365172020715931384453484488927304060750945515913547436575157818321544449073507070317277246767901221820484681223845380297906529267883193492392458878683582715494244039499553628001317498406260017250461975652869730213879458784766648537407140646653571234813649939382199442265143299280440422262118372561350011331574955312359527841576054372962735652486152328459170125956347419979500674130220437207213118946536161399585981909661308248784205923556887723512237444876090213595939465333672896009456914432081643860760571567613625042713567930846813344177522813683658370300211613629268625735577230925196519883863548670612583060763058705609427406416482901070930008067658954414081291656916279569868863927133732695949041920632737667268021896703593046995080941423762948719761285485619059684419959028160434636543631682290364981259141879557849829157720921578924953851999933135939567951095915043152116178343607980363805036886861606807785249033814199887689119223003568041468742708376338563720856519865065014764002323936873699686327591361803890642883410741664796331126556330184811219896198059384824290825852530315546191547514550162377040600023066281958798713733278058823973777838737871444796659122998876796067214881929672471584014913635211157278086999726866072100077393932594336717566372524866690415939639672352518429790422403062475259147796317139106373388610874086611439548330076297079022597958053162761074661667673700257173233735173999502710029320327117219648992152369241506107994939993157536077275094276891844581797434812595744133480818500356931183062356296791442304799476297421784430381446265489258271644323233589097042260978233233381536700785111362551614216570626055873899331840240619449461998820623602033951902776751043941328627692674489628280089258152655513512058209629736666417083456995951615440747603213370592661801620151695042515075790937161894966284035276592209571610142980435425301277890892778062254909835108257965672265720120509806004604247602471452023928175278243873704899097902735571702163763468462677365408797512652069089133243466617422488846492447800183081358505710479028265666328634611133397787219839737906631851648698141522945975671763145753836454451996669291983788567177926868830491415970482160779721272287897613901849229189009433218872652380028308810156572152580460223320462376682166553386809237584634470797077890272644265353521469367225589132521871633950014489404883387513700584540886971593936642748940556140830539915809266610976904206989192302250788968824662543045258223568276264750461445603578075767950779497914349279216451040268787929872001537277401135435834555889080639725755270988621488921023070395898696804115834961226768750261180276879113716327181459452336848617903226660908237641137704195398435729809360681597944518022953097824443259920774450121165390864941109306943957108233570150146461247127266750926134998059035212408095351290644954649856624133113565955505730898237671424616314964102872567875497130175171425799912291728454133713609876302871333434916070507419504698619459019004245218350731811814656101671856738425415521405805483795430708273562101245637965386981412183684115299978966704106743875998866217710648367289339464921958924919853984203508262721413747076787196207574363860486321201639543753706381358540861565574176454222100727095175681818823546708511456495663052213187214609973952771399563546561997293811385083972609495928263622290772448060480721989505571732578613523596636451438091866997521935479497389672936728005695815689644718927834464942381146423693736517808881601610060139134756472959655064343263242996401096704291604153787847366468154415412271194667637477443000276105480734660208127058354421413071655099995623486389486722838432849199096470422010269567028076304124102058128550022371073372013642754546192780112757859596170977948994960766011313822601947357547121814380141444883784908326165269298064582142179363594072814558728546455639246248402677902550836671009211834758424621573968376739799531280169641218436329913204948008085190036066354716349448544267223336685778576745847571987461448516882971366180227169426709056175326810599366964584387481040086684734103262065425900835883331597009920547610621501076098884993186708436506095865675971655486293142204889120000222558476687877883318639233312654560381488257443597829031691061466354914067633446733229518549634852606039135008082413350089679113966959437338158821734475871311300911821190546403524861316238959379764641089616456447972166754187248560840347428677393987314811313279265646522167342468760511941068953598987424717916617211492452468874205520212076186912361031483489907861325126836604320792075294271247768908793858942423078865433770635028186535620257579741419794777399670341118875898172573225708647277264785845682434180481392072997088162341058133963069257545035477774953540599199634324444037240637468724061887666358659958816493228699743218982384164829917763696622389938427924593235706584171713014176909905777710035112281186723741663900310766032264561054929901214628797740283454576915257065589523788867673936148991921819322009570299874615874440405853183027216804195148507516876741116917505217789380010253712577216462401288598890273458259680367731086411142683352065801065892640859464554550677029023105527350312521008614341939912479184886013621030375865541300190614303929521549571511167622255993179747336138018753969752812617994995451779688830145366987606823091788584270055726979962390354038191101762788468360677272315451565103114249362864302496489680899997999548986348906278468439887968602136821708507516869179724633724486635227285098435060231785054586225672362485258478969856028474235929888541074452827137035605540580046118234595750721688582665938268754328643005539150576188693516977354817724894033612451159849739408532588590678473194010436568662376221045077019518912612386834081899831256391114133795824887085609351286035883178903701068048732776936788650188351578400087499338756808690360729355677013993238458347797490680349748055934833025488570157613599328496153209129009396200326600822174649173321450285109440602959433668781189744550414464057524653155934788781937063038867328075813073338026953897156349547923709618619288951921696948319137932540849856720353487642824785851743904728691822361147437435885070111791248772967556411900805347847824578417539344000397350079572280370121832977353973996645987814083662426927083710052778269020628904888559638804244129845609409930585590761776739158562044915934993694491758764449244936610305359918128282872602086990475022568487297056564889171659623982470042940989901856402409282025980075200643274600778551217730497802844357374933506354908688155533967711119768612900581082296939813214163266741800078719050832957595171395532960805734366699282264518360525485541760938925318380013280449727151296973740038965593936581959839867699259131585307035181611026984455174636082007886975197200948843979582479605615222306370939510455370083964728597212335496006325453330909281137329830740481472786811661976748921874490255858383385459497230238789866034815386029015996115601947656521949695659333794302222044333393463847749525798117332403767030264224238574819377451870393421996223578985135480005884136618330666336537960730483363556459498919914278149704871732063778485359723903989262971643649074928245006995189834729685240949295600098956302400626192664299219782108448997279000368159068272987136844429401422386612103047047719305895990004135851701838216420092421693138036357483706990926046143496727130886303794277123292037071889853587683412497155131854420391137175977702366755174504240234648150084821919565980180104592841274645737645340477924201542070986937992210739164497785537316752238397994416480070784735703475620488800121806183893584214063974365440774652506168558772993661010800785249334433491347808103730924341344422779447896627906128572905632423904967074542193259174117356990950378962310898665222185210662222160241986178644554273934842265344897081766083824934580929092152201242373171868752325457568550665824469669238055042297142243368042689470787641752649002902696169095935435022908203662131833513209029179662196353492354941537689655011620687710029475864726360503133064104671969785011158194080049225867068669256409624058470375884267044377327527321232357706133289007962398441901001645441573566427259947567630377850888208381796304612914604965933810314531485453901814132015874663585418774283897161146372555567461201549754900379341517666455606145988111217723667117197902895894729663617358512395470785290959952983627614567205269147792829417593909121916321286221965738093730157450363580261510059233754893751290983394180037487481142460510660826188951054718682153925339807834507080732695674316143805309572110213174130779698986806801322861995913896583069367923376683721657586597359572541956759564449028095650362901892050465136357070520882822776697073967351636482956095814326022113576862548384655405526230036630503116978430451329131733340650716389605093101614108786282668205622101619894478046271024621753160605675155443489196740656092315215888070645997936411652627084660861533857772412194351406806781492499578921850605902469529356129117149491622826788507896725879743924656754782521628908006288615913217886170417995535936357640850939596943884418041205762260967050932519256119320622692610192096342391826116939410704016020824067383608220004546646791599030912333528373626215492109418073789003328713779117605958855556467587697482699587249191931925450350084384809975609567999154573608685659863339249211741081881213784687516410333205419787028630828240484891606503983151791131281533316594141259643310814840253071720916640778159683490258127996120145485573712974199968032083889215316609110018499346253408412968595938454067895340121066613928069414371196042038743841139936717455547855460847029915401550997000024067888279342742293286956309089588965869599362709064436917138653545749460642397232828013036723902368968404758001149194874625941727600882639462506796758469438553702788203687254581447930851607764903591246554091289613552377325796825305384827630829996873330092514462356049678959455574617342086914940118417492804950578521155874013045043974999737284330793021544831398773242877900033486726724832817143667091860048576096743244527011508570616889191694776490369136103173942247010558369615617793152556820823977267901039739831374653025601195301153176701571976174043428722188591255820772965394486072683115224432362466306447969645117405343284520525957791974126800380247910644432305634160876620886631263315937780877961304317579855708473807587400819071597515672718083072197562008250243975766133320540749646132262427035746610495748959079520522672707417496568128271607598652119608224746066183785166869902031450003877645970214804714810530911057317324063022298030933664075659761693478168953414519151303237893026976581398732967760906266649219805374180966910216832826987555363907656231437216530546904992349384704020533818586398838007235893049479562579975673558635192682789795279099744495639622708188782897797871179374856983093123083706244681415446422299821007141095126826856209942897611964284798377924844173019509396657514680566959106799429658351107456311336581073301676449144638206923590666940386329982659509538048546451518472981105785881617752820931263321863877345887011097212435138390353413743631422765177627360633061036680176999894152224457021516755961498213355650238243123229068549257049633042864179125534212723930008842757707267300931377965261701939747211422991857025268108683975348355294820970936096903401296309015289726547363173549210568386627680979983558442711741830248400855259964773586838861568081100926994698577026657637085189220180474061505044913874195076936460776368212197049568133273173540981261133214297612864848933455932447561255751390956571552174554763520458863550576334861662779871560925113265508260257970474354962401093772844256018158481938945129994639921078327671443728720829697854925208002687817985996262702797683112235503460907118937053289779497094000425602437280489107841712589342160775828682352352414946034187277864849562883248482764245271961907251172378082982944850211604314121566216225963525244196788414106245333036063310633285854391229843934848587124607416897673428125016961242069167745301703680742642347307950920458531304455258008934279287833573365754063342007624386723903512285096897252274069791374650079610853628239057710860573739790773605108697146743944556365180598382797869507906486059449306797081082544071289131755988053269169391624184098966487574404660060729609557996326651107216565899531495835564692362389970204367142317884898664162855811867817768491780071745731506964362111014150427298985090296839450552896831038354712865107049240594849890888708378599749566914562082955025869334503393661123339571310523086410740149422147270725467527192853846090152360423212313570109174289491147801986818010321771096380626484759910420471173514873154329472649539449278174568403821192414677737931685102398051544040703925034463865514331112466565906680846660273525204178701631136073624516246053579778925089478682151751539582823303699625638529796770528387585477887172114994178420079765425966434086571485855858020558241371890671412766355208890823157922705375411295995954911980902941143694201927936867899596694161174275431181635715644484887021132917549468213301341563013309967410358077449583230381549061259192589567937422047143174554169315982019674543260726649658063197699764336343235605184607408161495563584689896881011853754722567622492691350569556629948017617078835356415988606300422571085014691734278484096199893559079163032215816275485110267715872627969039678912369592969582663123342161508356718322550900912579638849858547126521798397859660771197852327754626914433576027008224740465159751661823588705853055090319530485013378663448336727265660365926735647921637790950561191308190491686481612203659082138530631135767359281960304864769020844275542220866540187540615494156680575776254760597130703883954642187341000063435812156263753225963661394330350949573958460145477001923190839913054877730713876058551445040333183025193405162966397082883893649909628763417752438466872062306279135151303559555252545011084029089027590191042459885445723945699229242482010411912050622663650088808081703530378623746534066951875444970498407506796668507544228033104618844550954873664371475097983279702246923778797494851446768200544611321493873995909699891067714248512173781302242040431928488944201404072622699519836363348016674251345398716484481438310123593199629583366260689660017755911575755462959397252870774366666065259594297449319866385624129174180634159275922378467586818821691643776676593401292763955035770538112172601870300996163832694411978541338180176464064735565011045285017479230412694337369001304071926943586391868321659989350993743111666780572541900304122591930419184723855981363272823381564438531684038755098508147372813893291834320126811377815963830322502890582063850730647285974350004519122340600324469712781834012143913699636363775014747757858866681708236206792799610794453298777869807857912002582947742300596692641615731451104281658170993047872358069600125844834307020362619649207292900737122066504134540615651145818572963450317515418764567240358078427917152588504445730448317458438408657314961001412516111501182547661387725403930020142804145265204186081498422939146579679590836273051667722885430103223629620906435357109606671727161458404340459796086460215750786331283030742251760163877287295666514080599057037535319153026718586113646249846730247609314075281943211605672893480778590519747414159393239585862022475404219527953973705087105797007472070371879444807296970584681094841772946529543287063641925746659510912147979211391168882573663827199884593022749697841306440003787534440990115473908106425456912960919924408408196434345000733225885791349952391898140073174148376377432370798235000132842204789137046353387006046622004051820790371071636754140193674026692945094419063034362152745602477125713502923952816975901348246669882782081019886106422752654706453302084652475182131232932010928575495786048522991948001503430911048076358984808635158119289378481510083743728712187961949268579248497322641138260109553382567818414645758172982076458603680082164047383124031660562665024639257287502526130765686871385779749949207157334526863366094338983723485893582185533633135982317464056370081289511785945617784474452626835151952409924766879675428634008944015134432104128255236712245617794929107324818354884468721651373536584246493282718252691225023711510679969922503649038104225584534043180892920707856736637930740041834668022207338203247300276346768709362986022782451855651309185299108887558073818357661177153862452546977384171584506081381819111156029812105526957725610649591070650541770140878102506097807826967634516013275746055589637032909421946299914518654124010009935769514895514491501992213766832142964967918013524004989514368928285783500140852820053370238425959327088289651128050085878538363832887153186367212748132099012838393047392504648980233210796849658244460714594426490799527774178952627407215522033344054380567365931385633834504579280232206070062110981281846392271164302489470544714242589267363260487796776474406373406478613783965247954380489488668026173556417964489027796873747192965477558244087940750998301410507471717374860998963522907690881933637532534669099960701880105714308257575434440151823574781469693210658806487377181249730007798075294999497568125016553020031847834297432073913603932815779144489922456875106843018263572738464442930122995341186741230486955485117047846146617441803171777292325006261675842301095753243000101217687626580600827076572483113599071649056517077006866200110192144584238672688992303554411028188023977237132060574452172653215677417004929874288339940654014692133715672212763143399605227517933179517544739246976680457631974479598264420282850811106255399187401246231991638534695413857499481102917545922009783115641935961019884304025593949727513972726924913669867751581340693602775184753987904367962927986738941458113164999282232674176630853200720936892492935156466313480021033453217718293696425637613399394689422411118642890406199960573589497179172529548541566294408853888809879773691569349710970539765805257385009795906419520752014109158644824849328332589149504376937483106707678501292761908828206319136035982417816747380136852860921034963885987621218063418168512742252946569401620454280501157494144955545733327490731943488324563796409142853750424476472295052825900134418409039873376277615028974029581861159995102286298443817878781574743781843987729882850710213949305710158284688159894234919279990760914174109734239817803049330177162064742331146986726470290146272878265416242357336002364493322208744346353320692906017226108581137627696050624252537934626526226440824334247370420437608097369015590324178479266004908728482643296795401905221189629850757291985672724033587551749076670315488832226204663174903511110591083432687128283598082465422801870649139354201432349629925948904292333499811429327522382301407686167000558056935323842203487506362149945395118435265295847584737426924664511517387212934200433130118238659134941946440198288059838365209633090005478927011883694530769302616918047131609723434519743267249018980412935062027741681539323167265281846696622645753370181197344223876982484602138247195964696106341326493206944052173808187621819684386450198996826712304159982766328711428636580604171430189639086414904266844411489571708773573024536057300561318721571066522122663237366124034522232872632107455300002187402517176489276915693141227739908944310531233130916704517573327077513377155792242660386426233457761488322082407108152057329642724626444880684679545127917211482548881993078708093075851233463467892141218008253273809933242888823962361428232132598249254519192519801390642602318827594451885605506380814690147173605828048265075071373161918229712932952804493703426930525080921124307205701684110945117099210155043406719790446514930217953395197461305917721375626939173100209548578880037494764814894758733240881509262444212236647776182173177331216950120271467325708373374254324440069994523066620249319008110224063950603823853375549634269694008199746168964856034255720530810449225293005234837683156642275589272993724756360395706274132882710555738249966803526874152692932373308955387025863996806278123141585630865801208937405092775515636833110135776263714708605036054962453838167438750952708819583278017956109851235142492476173601515491759833739139820573521066259521248831065802842840024905394896242488724532491767142235082477886019115513510163918437980553368950965467068871663701985094630082858919607065374574602413423687826636882017055657446591553866331361831487208914676805268507272024310854106447178588031686142797505760503671685966050434423102539707794744530404876232195974215563720961861713168859726747043705986752196404507290717426319161321299238861433534131862222853826310759245215696890521941843425003908439008066995547888431050934099934335309942105564170800025290004595352736381086766223387991874324641374153670065379634934015703870181268985643762778433854179366677889285160155842127262572914265439207947983378531978615080334523732100401982531468729601383604809189682958116014295322717046798788388280466141525902393782546209160032555945737475581963696381170819965746272266629441216935934836651171759637910499153335837737863944209317053942479751111317310445076257381354994428228457264777065522954762366525117452149076366798916786797015996502527501292254718701313475385943475264145604823828695199481627582651299088500841371674204757163932605451747174579823579842050686711005300970050778328252645901543165511318668830437744810228988486783824948428646362482515238604996826930500158405230120997884437634732561581443395760966084037804076795148144242523230189320362085035832371036380586478607676860137251537305194409400627629337631969907570562222726332127159446771526431380196619659023114938765472492387042676435393918102078689718664880751482755831972366552421091138012314231613000850863355351497699770564259115751000893231286373918738469314052133798012653090495856075072586440869617162264445770372961772280240245432970298773389046855003615156009277546958905351131334008943524173063190996137052499402775097316995202999416107968414685741401129326927374639803854286825769356135441336735834492346948643309032944895802539749191139361572170973086952766833309396834603222868831162677995328583317701936788996366169073486064675244485288728704219214010658822699165963570714788936383679679849831200603343599364705671413013024703114200816882440748363819455832782496497550843704388930526319308663024542624189818972065664892123613209885053915266734085988808352027430185327955363641430115806350355650519565323340406771795371196756909163758629573944478124469448438251430820347179121944230818266445668431815300438652642042956505070744313934661095491775887243637030339365602400401491947968183099591357863052403428182724466406733913117656176974002334934415133326338681553785492977204128082891164798199051999057557702431196428267214878468319438350503123914266561640692910940130669737881792190744593538522996229984544362565812754527737458034667543373860199679257738180784844652399135669566628956247605466711969510719597899527589263444020572511483001228897717581605453281036656328954133608408349419155639977938957387769324335718698548294654471568250084108512766441633163178266882886249122452002634968175959132013463716756189938628458109035715642236601123917213347085436578118288652647458782078710809144300797394558564138381695806159439773601944387596744705124714332553196601760844089988506526578771224682223394348647860670555904290638482040493138115538626189769686936142949552791179096194115278973817967635696311246265255204210069633667109108941318769023011228816912323238038089955018990155007790619564617579832647111727641826956841512029677548107407466086315078761640324630424394859749996379234308660284030562461405596912986289507233322460362368210396526571257158114474201281478014445249145494927027139155338910541315045575663652059914494047049954099794047408950301298511754001899257502687549550573898467885553456475121402346689982590649370108203054194296522559265581879832595428633208423581102094366093737986149042486148493644083054301584271745902017716412207053397552819068737999407923745866665936734648312123623542860797764335853868787703700207517905320124997476692923683845838350053210677423118119672854110083576158345642906259130165087344131554360989810539334087241032146758059635547294846459684780913257269565835901820151913933351604526673469086904304899494327536067759260117312632936774236474703381058458643885275558339502629820806200201021783345966628283682655764471448391405924129596460684353544853020662753118644738417440374709436659002062193487432003066662339453807276855367630809348520497381403597562081389395072673601580473485066016888289330764193906001824538486568927311940574318451466118706510670110365850875473158463697423436259859500147288741161572346257132815120675172245906980791787465316264656635146402897684064573344201661705561598566293381496635268877820952067456800435584356663818357914544335875329805941509208066070540682122653945747256820879281882897757769209661103523433432355681894034837286726111175879487122317413095484800783577790447240681394487297325383434864522414800875121425061293337592401329102820827370034102438469437430502402759853958543894675327169083940035968712985066411170063980938427323003186612669719989555712003209409214383319265258501359860060005984666461308063580130556235515942893201843663134243873635339690726269435505633685249777881412099864488240097475217582497656666066650444811563567234228281342245879655016014918695106920898128200591888962976071038279887921842433707047678416461903386955683164445259092673508113201206752331742682966815853756419405384439575070827462010528970117280264558440399657577587466498617083316399665036205844396015603813799562244502577134263723271849508682130846144166042359680682175163731323277819951370891747953815744871299198513515759079291214506054869081233343719313623060070702878503020008212826041352673898627913363116481458933117884781920216835026239036355763085651974709399988388129881140307010102172303004926140952334466585560798955195767741186603503042215890625076226729274190112483972759493584338062402039555380995862285620732504345757144133373783867807901141632982550856525567088180301340679551854427757895606901651181077105719635798118166387314711925171122646174611379298964460562153620919171592927881056736315710256260314827291011284310980019030128032679385327067101131400673763064455888025225433160978520367889951938294896191695085915469195480820322070774402234939091774208085625540408063746885716200792241810350074345536970471372663541439868994220601912436846577312872689061521009332255015019963964946605645285375144979950024360191868357983749757098753646402286507632073469431419072640292046881180829863747890593280049073912781952870251982625431745929047665006870071803574268993630491127156820932402135349895811640424376265411228128803126603004867821396061771510989164675326378623049971601853832371466037960116364548983404117302143487309837618045125081600660781057333654887239343522181134537226959309161201990984784556527534568994494804559832597049485742946892127864301010704033979141342154902495806863125835276470792452866015229306550503809655406778674805080610060061522678184417817004651858936794233262419380085597456841007887780901638674473754798488113448897251247542953919744442214455386929538198830362639828302664392830526222658179618385407348975495932797244372276858598550927539024144200959803304026952181749070453186868538246587206405693986550452803689309653279320310917614946440141676338949768800804450806477297066570000231582517885810765899446492892823209219620803704017244272110190539409055354670502407288813009997559886880176096882116195339453928752080675765841974257533588580787588429707442745570110386155217789454757971860033613444284802729315383759786921222038559153422430402863883787563421196267889784516912285615180037948452411662142378953849301814355887419830214813413768769378202836481772157633097940802556916430571047243573032136048915162917828631157673472075952640445146806147136258550071680708705480532873597393266019520186022239631814328219111313395519482801551983022785990445443736840099059724845453620599907870949276493323010759771420660764214572802265083477257235501500251570579293424224254202982438661018184198085618900778834545969521229139065386541638307860290832826925329961560976658613372570190591011391819031727850845052568355174074139076757285429879232044445809515884284248359837353669319188280407824774046690577831347692958620663429811726188121908344878091845184950093627647477678279898541585309642690821658061785474895783686884750513539140486440811009300515474709607693871841056756176806378247231638472610811107788692415595950159037244181575023617822446402535068254156552040099177161050424875533427137336128870340455107288604049254639466098122657346566480845787501228334851249122375914795379702799803787863386498780181810770141715215655963436071265405258982342180168546328686434673568851580237579446021592153061884323383321375857017305889151036555040944525471563220927734928139930572338019320246543241034509903660525181776757600319310591105777228642202836822371404622923211680584813668186558773633670846992126478321951631736539678496282802942891465914837297195481280858040167362444859864595194840554448949821016947992932711116951413806341633355529060944684874414734180030800248103084258017717713133821883601745521850954828058120796793763992579670067975807397790575762161569232442408202559148245663368773222664257252398566778299806953812810475485838385214476803753716734263404816135470296023554640382999889971112900921482395027574748376888202318852451731476036099392809648712481217083909713608218279906938100836983519519813484983110950476019882073664587422972217093438459683916716621114476720305331414987463611340609951032166235207010003892295885642512392549643206467175118556130106877172070874544008571906934146075102119714347175110567505447764507447743391261501808334699891265965480871540345324814486351539266512401340039516282006942106792824144538017159958056787887614468957781664268442817026198452618571072810658388635497551421280988820759153031545541375683187882169552786281757144249266689291412623010462468195495593361510450854394482729443602268709213584739766079759379582038636763556114112589574134220492429188090041573722551147328028559858594390192136691082675437886252222798153624537713429575709591331036655556302123393702542426678874174999470114151372337488106862032125266727454209094403165193717518952541757363389304998127152005245906178638577390946240362352540326771742074454229585240879396759660951594583926199059402388820501204698338978550782715816199100043233495256197795290013717807920871099790653304265871420953003320453979886521834636254400058266184024826363791747698197248246927554802944060166924627011040276445767800371140134890149214139899253910270157197624412942684391108219258428157900708941665206830398316523429741107795404280088968523162490319195557200457316052488236308392073343803346204341520322113422273474768897403221013070224643644588677554587701833153862956619628414607514409257922586787767683325244949905333428421220661189256140813505938428074501336618254148833876941202386641198312091676893323051238449310098180478082895888171830784708268117792392423563838531203078900086900438987233183821767518144592776386844291127628847161407566197027378443191809863137798905863909173845424231948003983968777057091895970881122056972703607269870910804263761679717953440846432439792475752684957671900130439521021979836127790322854249284013024146652979643203050454710550168535063979334551761557511224287686667042546560156728077651223829980229237386802443642815162574719665539751054404845850605264227353244202850629727314662206385640836026384344571177507867269030448505426928333370511229150006960045253116580339548934544074317583010384202232821683242565647684139690858140824555633319818222375948085638536467591475344004046808492039522634118097851881169952411170681218824404602576649994217812782251547674983730469466083734023308825922299142913090622748082437111568820380968525675704981435264730287223487895898884658390885112747046705176272264831396238519308888847453907804189426146402430789307821126920050799854813724320015675135620008429989825024322745006297103117518393264774737977752940588492601364335795597301025745791685721381243493304722210047212490351073957675594520995649143548981977082573655093161536762795931577012540663709652070714093087235483995600797564079697813924921205725132998168861105922041147575834405779609610365907133786797094381049062493339859219788678113647333118991704507292426146644507186670198365956145117065261937333528428724174543622873464379994623849288030344154781014688950968138744996110139354318561659170800681761315887750863232836934738692660808355169865652948603296992347190680404168675319604872575586459692924816205073423041195735827218655100843052791325418569441053006643981790121908249801822045378583573195137424726389396100211165262346382708500714482638522237418612217366948487214753982859195395548556774876325863278837865653611524906341746574083764271361234240823406287100420578528915580574005304152786106857212076604159768894188460990769012053070384865586183332782882155397227986836876313826767385563046690908868267957746072877605061824879407869311321319194407458978609891467414301282203334569484560522681823123303585892473069560208562932929405837958548854321148636828718907811602793668733012828945639570198873703582131704372448559871031074932367935210160350532860081677333214803835391133860903405726391751546709324135977216642926180232897533982158627044809885947335376079232302570712992847475959184697324890308317904358493772384334168865295474327092609057710809946608770898629385104855598419327571515900895233977075255586650272522920337743683882738468180806445755003717897415660014019683024759202609374881703832562629635097603464352339707812515341634816488767340294326480609959840150822275022694109570431637759024614438138852351295836422994517955993271385448316648028243003398519912987761433749162851384188963609091982252793766195185118812045702732356879881071906317941495709315343859657281135623300489285599517063096763804444858031763000099444344641597085662580721668465894709923168682560391268257386050974226270847271635417385062977226935775480116867068561392603442616426435837547318148350707858054940647932723158710010773979734617044605164992666794567783803326995375671859545147953798113779537130885557095052246153833982831628541674216066813995293458043731436857024587919668615893045639644569933481203742156433792386041423594447170778646912343326979939744698857161626314601670825204225931676839901584499686330652333336372409680323644876791126399784843905689907939532447418868316507028318824290357413556901135968610638802110466406306691117062461187386697295027957123915219696277212745125997292973662759014308676783542864861994760410691096572863756149252405177899854587172189454327672833681965107284691751382723150453373805134448700790231941375736324171970190739286078628084404034729011911037122715331342977110894840627816380257761013319801341450362030160345245203472398011564769719758026259107405071545571483829600284179325085440604339064625859897519617248088955888293998503952980911447747725016246783350772432662899336464371835533097331080690362318442272192634706297032072512819928738749160879632704123136282225318613938228211773739975675786897987823833432676817017682567781201093395044944165578922604731744362473231924938964180393118302840353281999202597156762801452269531461637214811467223795137815315613700735908512558828357544530255409666558334583700270209644916909278916881206439932505453772217640680969039031218881011918419653178604677780609342064885875276568699873765619070802379863394539237941211489170230696997072749655175824588659599100504696215491604555768806791533292317862365244548208448504213898780635211966128891558337432209148374965496967404436716896773411426897584713241770335556199436195458093794045717376255381447789791499144417325382670454786484064788534906330860179972835079592029353644108035397353640710514549281952243003165210728037460749342121970989494153108477864754514187738220763603978895885490262640383010025675010527743132352778862992578532638085278529300236667339761659602908117032737751377598301132868901181894522513214151255701253571612428189653373777525881727815818040478418471566843785403011297327438888563510684226473703186424578022288596752608951281688348208699216013541787744448792189448799477056597583282619149409607913612910855484110529485574341109861904026236589469956598492872937399630045940569296804870672966408564653989467895348544444368286194472959914625003894262435499285022543870749821735736602851139470709262846840050290752808858363500584361739615104459657974643011317139319480795377769397013598471802189095403180034263511101239384286433585099125546313116562231897218149533128608250867055055393354230314002799949165525080464550749168025569215202951988870188471062827617507651753474805517556048807831303295351157961383995607316607466006015308166593136191427559186458347195439822344012502113389234678586540944815325083509244410188389740535698628394730871617505476752602879180017959168050387239204843537969424651967745118729455508179359965640158236839925731152306117633191746885735283533516244618639402363086017306858598202970851500333188631319602316140752977197048159826999724982324542801287609701773940771346837924620168585085298347564483135641564497334618218579231321762295341537988384068759546896921937620832368724254875607755620838423990925039744576937955438751874024280847715004650450021259446102721734773945395456002918163439665406591685850074885234718966088503153835887334001439611077257026502199966928362303750050910624887368664571879086090713756806851019082522336048661055360698851244161802940690514986515712559439445526401660087930050505609283213983078959048132753226484989311442461116800873056873348850366903448040822218807248521044216888494639287477157064381887441575471011986090696703517779024615357709486295178027359542078752206274417312752250932807089058321560124257769542269456309617465996906669681462380696097632398212223016409429978305119836047903045053526552769707082126740262675659425796954953993265923387025563537115892523864508062853828915626625414692319834529696896021787876867043210012917277597385371174229499933840066582537854720441685617348088339117250058708877914428380198080367742204942717923242580328973522647703618958936100434428645774511611032606158275077972831207784503477328349540296943950664465685551988440213093715921513901421781586078139695127011705380826251739020461234894428013390817556402908014695846278987988318738424667598898276116691116527616082069163622378289836157521046690635599109358928605862083086162291517472919191212028796211306474733276961602985256083523497739788646775614048662733802551478191224843793457624716700008582046568205453417034074264197543982896617634586575730222489994865901843193808782496184548832762000949289924315289688865765303846990514440741424492562355580448903652242029426865740457822757925791777021060421821128618274348412261843086006278188702424921919466320781902261262236309135962122962291554289579386841161777241438966888754230678100561922136206453811979779640751597509495398234988625828784877829453770051253075986713925782624463860770594727556008278377906792820540186287493490681664864477465528143873816757122893192821676218797534755032243119537436149520695377284466638454309462933720878750980172402887190517925924979297361913371229589206403492771455136058366471195289316132567930944932359984896890326997323079658480448801826100383184445830943175750362041932097012134263924835410558891952461076520741961181979484560139756532049815240730987027373056468699376803659039044221172462388248964988466822590849035375208652519883751605112181135140206363781570499500737607781897360027397300026471088593478994509538867518443634467095857376230230006857898044029611004328894195098466028011093990561351863264153336691326722901733277370169240666423047005744675521157725102858395354636158234918464553035221750255152888748966955544669818465579051078769382466256115794108068297975883593520045537257372485589316761905008369038301083793028170775754674568895707551286163939426226353484212968005569396974746722023601806670944707701370306943273470662081259436289845063425398017396305360129272814484191222235893147995283502134249617325603297656399030787029707183231510459839498938547158614562134585945286716413153888854030994464134412036041839595390562650975368685094534994673394714136908372988706456587789760640968272710125653377983795860903286506718606187528849601675140435247004747040192369553669461212950981826749979586888661352814192053850192745763643589704217045610434406088850337021214824946885839879140910266945322979092177017817501416413911458298232376053500113348425415410105792273918798575596866159771732147585817201604608917595340617537649363575677051406814699937495568524019798748302877237045946518660582360222759721464359986646415472781826250878991111273792755629811989600307870953423528565924967741227020216983876037406570935971258705054032263905398302271190696425908517476631780987974477765388141733783051488457807892113089773668100267079265755678809036059416378535324243532137228451186865177641375833763223167292816995561939212659742529274429348350624904669621281896492481531178594277075694900522320396919754793505875622620305119188287550215933726322524751224597396660663414759725589956844101843922345900103108633184248818639115607539658596048779209040039328319907058452372375166335159508292576924137702814603199789201190893976337774202017659854644390556643489670476269706602502799333180001282087292140301683566161011725106893317428808450365175676914756751131953451485876533879686628653107856480164825015776002897266952532232175360849632304245262100133317411287603934117746383021928136455801426074094513789202912545967795095679150270805780739477338335400378837718084457613254617871604975684442299935942011773198824339382757789954760449385729345608704911996286163852080795058551132501161349322990516048000096253221728798132363178706515556582528296440357058882869095317543844221472138154595044153508771071230751249101334475392140573195644644431088196663404950082840334801266751359348171747271814453931681705978015595511277606791401923349501481780448837173389737555150332246969305389156672869919419442958043930537013993230597625016549473623391920569391060483531412399291397867925539114403608191614936376160430585597840965904957430338387196922740324577208054975390692675503011412289271207989060210816589260501355959961206563784330799313283192486990910470662975094191964044577551736816971218035493888829845996182631113869555240829964944151435377350365719745963574527429824749325741227924356704328225129276565933801805072259399998662774602905207104482189777707164628340748700031882539107170983038796424697624700144608331821863550809624174017502820272496264417182008447588794550530233754596097450404201013596565887624479759488984588386212717973192046089988598606526337000942123676789669513417287894187966031342189486093295705872476430345214448069626681731936557630185807977561565973992568680174555719513385139687349591213344574840164919913317481236877850771329450963496335541579566544097733740910530525579518109312265564041220925403324794145588057344871596431785350502292627770500362933874131689089425487139714546586797124477801610558976975959041510711629579883076166568917488017167793740293801992610031355326405845898172562329512313356424571889717680022752774877851467691228806003932728772485652835571326188698589103267083402418399312271138394190693256164510644781239539131662892364852600815426740145796768964776537754677192068315901969719181795908422036786606857381009660844555165365549784057702987016474520494310336124853449939099644544667714910444782653736979486840097609034684090249066339885497166446675626979559740478768508499923869478247645686200902545406050578674873163372749501898617819297539137672169497294187226013329675703088465885211161226843746467716756495389721040657552084665005155668324794125954355723482065306883003799545251173557170013035553239149779463922125687531957010488772716324510459994358390093858569146894799644481347595003872574553108330170131868969326589522585471106571974421023595876577596177659103889455057407615731945429153749712439693727823338973485314313938249219693045481873949435216297003753593647294543498347926825920743301060858444386193746411742239839574501466714374228654354310909705251029682515254810017828121731757627136913885992528331314942140613424881749813618402688893670519742541075455088269197072338130779660997540578048234794073716341044031228172339483973072765832654118774320992250855608851198602242055979802828317200681036578203511599272873434208640181522372680206148652281332896338883048187467016912376046430600764685371998035063294603005643364404470860437090574103555427678474298849541643627574379645677826847167722792505202693767399763467192185980550460043428225429110012140408060118488963290249912604686297642056472931862330581139973969355267911389137049653364303821001371216252454746991851647585834664770641343475200211593542822672214834711542245545824950863236641698701104313998691857719702927830516293460958822040777378815996286798585031173904979023788591702787918164143205686474452549614541283506790766423644870648757526225639405551334276932522467374011714838730534755849211287748667264313289534707442792827824205922870129281957176146320492455676214057007685753899368273325237969649316238514709334650708309775011974604198024255803258964225957619646145280384016683115282108432771744456588593564855414945624950295666603591474412759424640929534275768760525903710372547655128422536395967295832943718245495819420227939151231950741418295980034375547791702512642635068129522605801616366813327823178910097128714080767789933469387791698414590007872655198006787708136875325929414809536550659239214240492641875617395679816283362148257849104673819613927988556946220016957796505808838486585215583600658492283275553917638943256169821227005577850947870814706066820032237458732584009232602346529699281452674621818034319766097103109681508260091869871219044433076040137694467833883612101930391515738728693640828910878970182703778197675208622049054382830662535599944647173386879411230661134336534299571077889925279687252147719272538126038635280100452817003454063405594175450194027033600432350364578686995238766262039460547343374040269298261131825312386792021491943458473943835637997072123728639492726290684057402961302456581539033234599415317020365131948758486083488237576863016414058113844571413120372064173046195964528341384321786682928391123658786845766381825663956201077896911183588770170662669344103683406976332655307268660598682653461486016890548280843849794174422272406960190654795940092374452603466582832234911197033163230290399655530792168515046354225017021501953903741560142024674038663375854954031118523591770787582411907708975872058773695602705746352711563001217286150132794937761547768497205766729041824630632949645614229717618263035774965671350980024046120580430708618058390789644936053712731616320404062536959379859134105560322753274686344878780981870589381876841379985460437639817831525895463408826849389118663050863365951412836298229185944609359880927747144084394151503177553413039264396342536552619142471530557380417218903636040776447835225018149204720993202630977120677365043574505045068075443052535861179375498613304224658176925725868405766979329104248441894683783575600064018047766642653246527881986579500373892237548885622761452141006472101509792130376335985660840596330482430522035552601700060512515988953752507400303251696090711275670778207119002466255346537166583141763166816148433904737859544069788456278219403366618044321434223147337004506610917237429645745589810954187177649713569549801634874781486400603575336654575953815681407842623160160879425635892786138067974085713803735267111253675623816882619676817470346004810914780544604635721653455203766121118083063112962257519737870895033538474410125211997761426355289667451001398052367896805750397963347031617643781023686470783173336022282094324478172991566435219212965247468296560716713375657500306787305047964941430882861706268099096721239092744867610433417325074393074078437548041435910361261743012752176580978335680291799415476443655629756085826753244369019213547738096705895310389063439890587047908263269567182210893757784308397356394055533722735974850589201728194209753135251984340074197730324094095387771831709286482104804371343617024245592368970704107775951383285518616426691919895926070118391922088701035949321041788291199989661117433525465583298760995791562075916395481701114206467806922513741728067641555277658404787811569404825475841551892754299198823559886642186368355834067091085586171959258577291079922651721645772418721612379424121914089737806715891787374934525959688449804134953928961799884232679631191705070212655769030356473970936831345526022244405119698290654318293295735488117443772718064052894868582568976411361242021243230094251135021386284084031714005860946507495652762508324302097013706175626640880417762902838119104307199793264776148065330111293242288339932959110992867859852398085722255577993199493569836078863594933443873209368686690151181069452061944830952343784441393957700222803844609855952544389222818208614704766719109213195395380161076236596183377025458044097816969598322589052801523209712605627041792171958621923417284514404161663928110366955167578012651356783486356939352903178429301618355788035091057972394488671114609582317588127221621336237916060418587950258827751371548775896207426364288136012437737865808408716324672322785522668964343847998605665262977182971122870704834796678003096879271465258617489842270175123578468538906413998085025016226581969476330165947804380316633372473042354590599798212491491018315643543542334012808128277099769981000833006328005736261830575424470265210770338377637546122746697337504455948063721778089443998693266044661961731990508060435399713654589708178322965505465345886892692906698150798231128345335505598294849441805748320993294676287224022926127885840586261208093665710228753144654980017464641946493348137065306903168535152445166783325315381733725757890750277352779894847085321320213384745650644307057259008724520362315820360452114956873265269672234141574703215611434862484405348479859673853852289838798576852105521103904708336583468565046409278316194738899147604628214773681444614917286118664821917007466408632994871895781107095656228006875191274115449667220440711378461458572107412922429150094888408579807192444257011533842974210837524786811779169062854707600152182255302884813324584797143278393809462243323720107286220353285212543764508708644540547550890494174559577345178958399060888677910965281946707021642326240962437178815119960596913656613564560769888070347259292743620331067229641257121296718839625077154565746986522603093133253080887694851350546600575810630722777979126333460192314442806464598685582600130337393137455332900905200756068709613739865111457446310191667041368758477865938395164764585548637243475991409133958892036774339526926042739966905570475590393458841894334954848924989137362892355653077839892635804344748320468866809120019881400145241991238447046173405767112629282604701466833839222799426975824835622049959235415871553588715176430436213356513291918340646404622702347797843616977463280974865372494003678932724579118044556192018731591179820335892992204543425847547396905318661561262776714722059649914960295991397680617553832050507765098570659743375305641155525635767332466641550786919275971670839654592188895518745763377398849761568488224541052627206274009289411607885745888708379116337633267960779657574729576019917397189035396744194538333751541979887661921951486117027217479455194893814755821100489864435706372777353068856929999257961688881387786633688760755680179732218713497803793511194213716985657681429199250165914135039091942410662270838390571222021066561470937394174569572562400888628349950328313013636171270181335661200615802941941816821548981699873202443969091823375046860123199651338176209940491094633023172625289604008896194597162461266484692553632450263835719554001297280109312371613698141699010048165216325946302825603483059892975807000544967170956340391394600326456525262496527153209457705409265199872122447373913800416568876181587310248306447455758013962064204211597475326014386494253770224678636085732745525492353557184559136817421181708106644927365895662547975407252178161704790423806084654981538627609387727655118556956543574757216892526906056191789795305062796333476704202201434068968274760371619647232075290090758597603501741462825035865920372972107478924713247254347072804624053298592077641569941485961376488427033976402200826560042200498669793852931678062395410248745761399552027642139590392063093135255424827320085224854584170961683126310818510388141571028284133972257983486597213074429298317085466914845535039206599865445512298837021000887961396466285345008596221562960407440016749254717828340852516365478984701042273430417292178736564365156826151786460794684311352975477809376864625498173213740275865195901195529197160154926022559240649955171545292450872737394135369194867910379734867336198054842696168739864608719792647636340157230653682497483762483279138581827023230186603022714126110525339503596452973489370758443500910593229727538338755318337097393465403208028171254065101998003591035500839767501808612923732244247464853227331064177699509180495149369028359575551660352918840504845693416387787271782555518904717040052339320471307558180264461566445949319724927662852231642184194660969412333461439730819197116718662575995447779563793528395426042512642750635336151346279834786172732731721895588075413347147511332307387589427225795732850482530279450142382700564278388772431974201463336506863397537388442068863319345876681711400880900287816742976533197224167267283162535681229018881289983805935160822596480765650044742281436875793732212853488413548206299718572864879551608589680150333881994882732206737528944715181931355022696036080866094726674078730454796930695300891511801783560845780689691914265309829363663591257959815625856791991991572193732859400760178463459398757229039121827304572759540684701081780174866548256328707083913642831283153071534966525130659005566404135379131241206864475564976262876889979590281978167062482400265167573296984154592056868553770979333975156783063487028725028097297423402809304971303232544432969425577591101392355658231883100271031139668894352702584453194267875704086473769803139256679775227595683936165814723909646836527872501910797217062068374916550375326009850180066007717264160721915449218869771837476299917193793599120477299418104551375007077506511895711689231154757490269339143926983291110934464508413965113421378636064475016343515457894706922764046988809919699737634627935646273393259118352606652300260515848262562284465389667660928345714554955629895167100965063700809280946867138402688318268635659650904352724453124046259487526727189810279972053586491457142152648635512797361332334502775010220842160579099532813598253228107018693502473934069364898030025658860658591520955901419048951738372285667956245088530650339269967849958475375523206319465577033538066361147394053016922511673156829636398224247089776032881778948776858256969836141350519820778695629764197128508820439090045890236279611240713134311515396292908564803673527263332807626577191156897497164791406266717869303296991790354648016258078842087075144962888525610823723153737772027094584355526677285869464629447438060045623327783443860789402671065100947083284782171434346061385174544652537901752314787243560422723515154886923529815574505988437967899793338846479773131882717193186333632150616146601826514493119816965557071009570298129626287339433430880801809314591940879656932317080284393267553238365470803873668314735050366048867125192575744436221728365143578918062591662781683650860322662067011849892007941649603816133148954454874030071290863564114887835476560279092516766896155023322632963157317037879942212642637455814025233716955815034073572371999100839731083382389523112955298014772265230825516601136985197889305745964905632628730556417416139752387218946580628074002025661143690004065712910465473817316383755652568687706530237824242750166575152437370488848444895584755769505464236463593785197341989185001237838233538905525786341340480730496354158844842849700860944388251987688920297469824669692739915855456952817009693190514639394699532581682350345403009901028202923524784775933928941734196143793926546599741399486201934608510646969124477948176545224654825617729228917294071185795885809076391035917842572071804129529696406610202873389797237810787595743801066915096841768409489290387363239603616126978785235477302848745672296227397854387633562885449089536814855029066579116677647931570341639464691833237078563409649953629529189576427932780278868717191849113522725025831436039431818949876933341272467286166271359321484548214892274137148999892089165003053398764473709218036797618160735830482620740491949027244872181058222970515969695153671325968337275887546061343487365632890708157276866715897948841670551604379827353971946261584777982693181380701269508314678610321668401265934866215705144934941921110277046915384349852364905252947406895683008302788476967191218651623649400953143631055793970179400448931554670641791921746639405055942411405947784060808855173035434274108204082799296478612133803852873000553687036326958603355557591789851852084856856675482786307716658917239507066555383264526952055719542008090287949552062441140961042360082566712904351481517850383392476035933914668690782488954352086261637537402775202507109685343626939868000265885334044229163544641156165160260328945353867276628054584486639010375433131529909358668807236116674577349301509044519484559640997400273715322905763432947500882128727748570467481645779137022806204832184116817452637766590325497057131561996373210083925587230446696938513012343566720467692603073951054790857076668265526774856601740939061482598563650436784579154633513103424041386143445709168713922635369114880743931442632539588412837256972554802965185108948692515144028108819899260519717690016463297164186495565889759285326861531517472964272056365247573186651097813542124783418702714457480407951086336380041613183412486735169279041297027500538499963861466373949569934595591361645225199823338617083394765375163918235689046530629440283714215657027676579207203369179147752221185618749014849566195206312592190906020646582540900829940357950533510967678650323465178998839206647354146039843655210673545531059252918838554279816003789931122647485098750655782087692021018149533802374904354676610477243252984170723250444710528022914747598204221059305823460004182978671484254472241831423142861455454685485824054212128722765268848101932768363181199097606180466672895247575181597062643826794631401708716005336713016156273611304910498296613437146271759506588980979920688298133808815311295532259192741316870438458120456230712661097668887959939164327343313466581362016820018773715245139309738637754450420237126695755820441164104342559642083948179855753905399800804160474276705228339223872714097820243810275026443327944758542126537620071218531365163851583707853954129427722481311051062283057373028705773435989701078704111561826194722542618056411440845852940138018625998343018947595965965726572483061150052048322081873857880171661964769186363076115832009075466298818224863101057753995402960166756562406031652139850462141309081527539711272403755117646275473228052962786449060909483845278800727493294424097896880023368669075302612087234967802560165592226295898093287108064503545019538014720227129323772693624890158248222530845766346763778520686823090747732611785773648294720132171167109617301917292059142172291475645566586289105832768748566658849473403879904494576487236872079060541385415187630463402892120250806801668113804995731330760226472155972135867095237234149057819153906645785638398247638168443239939494976899260120106430392844756340575231178751105488431087983595229017633804053543407821825558797403739078757832086361479361076944310021244698009420937213954791989345956329361483628916167841435786525233653523970621004639000343181939729942276710020359596072753604141985333316294279745279853598751633829950157640353222557455688515413515276723818457493812986457731331144196076610265237651523383288798058568934416631771308999372556502114478144232777660047633108379482996175559868638160682306533148290711927761029475603334830844271064182865965777093448990614937237980328488053590101944408268565502287447729820506642073741372996233060319329279242019814113601806845865723054665165154748054213811082317624271034046171203018690794335037860713817631128756399128372690839046430853678116168555512507890632017810534706251901603980785761194402419856392939635029862515935499679348568576944720299092656951331267459204773413429717567609264793770393770247855728877475656111521156513791832058036116660492642009037378919577489483931808791506537701038663403383052825316655788325463179516317546189272347165775375489733157399942537440189898129411136484306448416941383294666641885780911767349334351653900961324441846419324286847953868444644105319231190968165637585015247059101649587969293607630087829161978574290305028680266267744918375970460761318646708985912003434556101637550200211732046912595976316488143387433257115149204040889447313083286707935605045659067309355268816146859739803770086530380904576757514626022034207529139503359102135772668507881904202136503836374109729125475049615895676526518671349947703964982784730419625116128597374184769466830190430834179964575411594705015391602376393644535219460448089822126270600922953395630395793292776801912176643330616234436404470675585263127066010722735633377869288864474589838906816885710660120984031850043323637529165710964777960112875007379856915816187546438159933193715585848978415654596908357597127399340068993023913700013054815739647281108353535564741401709444305268164413368393610496160440705715562562918314690740904206459979867519870448128060218459750003387604776622461805692584376387082613179764718501337897346843422644002696937088309111271574979324842092626440920973872301791312301765715852184310791970785891779342198717653672430151620688386008974964102315869591614074566168630304041121636375957751000858299365379261499602334589987335575544082098793608709194868180493342187133073198871448837978823380665133987911228808553858474141205662951408746075929603589828044550226106202399991217629869096170327981370282615049080547037310931050665587355689914740564947773158923358276962449203230444553819507006488116628704422882698241381067509708176116832565996623379456153127425786133092043645787574055479320049895720060033495163752619771562949413852991164182853689557273660311172265630174816288955935151795508973258905126662906191884835595360309634715911753433067733333564358087357084097410748513138011250218510793273125826314957727129327495761556507775884103162096596165987488624602231463050121217778199065178078287507698040012899191281101256607063531712986900023848620634081408830592130866360403991803475572498555725434566686738160954069159471432901205143895927717090827804579717535966626226877288347912803355222850756840429431422909004501669888667282416509001084126872316302388982483563397469815845548465236177693060116721424299143539334733546997139660751020580859156959850579264829724089687955856225285196940399997799145980975831295180442850562331870271001783896270662811726085712156298275103160945503847669585548581704837163614839410607022516856209031754652531787557953764848359182753611198178130250052342622769873634435852864839883101354988876649214345088951465248231804641457784309095807146554756954158696221749544576730266289501911444350481513036507417101718744524800559673288134326599637108033519825625745203546427213286516936883545035606909906291723023070191915108603004350812209245525318124145706456785998433117617058721778183950841085065098623663687599654429596049930986355497953222831086655491793195956840931360498051825339755360474436991156354480423240432699649129953733468876229468843109665356474879987688208927595763763292296673848543864597312522290730220635457894141055891395899613714403616042597351315307035904940530325060278047710244328851811507410831234912569482580848809915552142920792463863212699584847497413019191093277700616857157212547728033174966414132333188031694425753215706136788880868949551652542575219418941569966243639061883202399071991353400049916941799347444699830358441900703059459907543650984062589663373169145149562585283515339232924625658104815238957583353281056345470772725161257201783152159803272376756116644323024684197798469682688582400336911689286799191485529447206327710678883204807635090934003802253024509315290525414653699538867801691689351817859256781343637898137193057452081871926717867913001413900351799735510739510568886293128145542278224285110469388108336964303477584016158989327638822237111017586242775412878297526014824215309202522960344776354309193505063997569491584976643886669080922124352904915994719990866047110624029123719334892793267066987881901080587228666179290615792952462662350955241166233832870663632759325921487632431444054242910726934237417337238093659374196170439047381844844377042069576912432830444526694002341802426292895634380226575887262393065090029601244125461298350090640218254372464591936395905860927280973241193210358276366085519765119992270688220018538076105513766609528234363867069205565767930462485474005399216774342495790724099533551933112633952540264973880037464671649336918361335176248041074838987209511892974970943766770714035638909609930218350441981260836614131184978225944162271976023210595699424277996602088013832835539978448726458877482084015194173148396586403853197736631089609199621607991848442597758672345226130618393654361466930321636611232671032252668878538864113778570202790467802483538127962441199413531712948471568555542710251616933033541852026021152876750399496306189404184421039570841487645647557108561513788622365148510890104322623505859132041789368984620329282325729051635005620526502411197910617920631309082552163480575140983805699129010914442629811821896207479092806940566997793666520706178625966896400850816915105643264460765680222158056829687852464448354908875100471161126057910635917475228793670329515765883851948310981604591443603667132642522852625431738430338307309623602292743687774159308620490656114323752280803502105379549697754527539721297976215289066141792317758433543771497026305981182988626151832396464066753866019492940748119281010411262230732196560875598414139666136213461645607368240087510272577037439161536966159963077756477509999647170407837990363091192148596044068355126204456458571995656681272739537954677206654503517917779412440710011316522216820585685439956045282762615840175977084902116892877459038384066525692685405304441786215020170637148531943188393405379918594964371097395066408950321214568427749919718003343877235244782667209628475749338178325830335389436789698953996596896102721571446316523158630050099376219571400989616100461223712037671580829140967993831073982394295590938871623817845469663109969199728872537867247269584231984937309833007039594734356990294505067532045096103476641406489035197112327622699570053744212085852994670133820636111138545004927578064860706522127279195100627074354064354569334721071810975107343999382096951762533211200464157788405961561423773010534518574743678536160079325034857309699397744286327154550019781433738019187384462355797681333013611119639281220606705662089726677060225275804113537236828255152908853143448737275856453880208340689582773572871676298250570902365483283203888968496016055180268453889187189001066631462086824611456783711969506027449223890672890755614922186438618259269046099419614088881144474002606158246875010097730140236751370137346078491835706853557391080081306724377055796975003428323050365075077530727983340003941940356478958221184617983029765441564948608518199389294612750279532696118694668678179452332497847706711714982180936722189733484785557441501737864293525038684815795975459989753493975410999532563651073869180022363770989274650514351345136521102974086177547715065376272303820156184338216638542229794571326050265254790589768980031876398613168198103622878927626990254438900732171497284459898600588701797681425850058641368092189450220926368543449419743667187952302086017687275328580333879529470494572777269103378945623842835098369874182557156759733971269483345548220599819810937317974617680636072288347438218036262088533080316728528233889205526217600214199893279067390634908947105462069613439091253848308181124016955225753345440198161073586359289941208507255793564872360946141007807706248897555678260245680748533460633525514899684273821516052180939900051826875264857393714862044708978944387264983646965077034106141340981696681169312228983100936326580237211089574123302544190959302972361165146304188702209297809185998773347559470515739494405166313772126686648709837242698233576550240164006145384344400872070789324109265885847420475357720512795894930097757687177249776094073882263784236167247581606979039591579099518793906949977250833132133534359105150510694947131818560802099246969677722841456532688443216767140198328678527045685393771841789884201279079534654382869023419919520053319145740148122159076556433815474340400770148499784182522263406165013049902405726787404961554741458446882466412186872234572091792177820449678734794792450137089625849922242350956845152996733564753791522817623181005789293633962324126697435286696766422035012630960034715594299443574093635733387843913902974701891889333738043232001838644631729335877275727597941891875142334582950706065645454991730768797994670103638835876717401598708761200817037936899887115810980999860285263857971077065184499989860734851002791898037241260964145256965710913872711372906830638506381792542711304373503957847882811080939822722406476383577170185340288075448075721367770154412507061219715447249073699358515604606515857554267513526933274929166991777732147215348497880677002563387887766889676333697758514085407457091267962327526917395952015123048889508692703525373094066574411261104460925971528993977941657484312794101387801631051158610064726879067384776126010338532192600644680844507402267732116437805581466778841106853136215746976588118022747108635465463287917476166260515100678836568251446712930328858109692635952009469551370584197676615563862476817247355432196349995841179908115711493668153171324095401592675885616227492135005685094793027538178862118330021758024993241594952267346205125849744301449207642532569568320857356160867326233281345980631397709792351550177439301134087258759782625134024954144502523554178066276141699450995955998214483654016871707034801329524832786853766641130735556107100198067986558124860329477979517921113569655840746230648076521867562143523252340475127619125464731015016833364628572785186003227875815576060713366529490034694716493876022092946471460231619180462579375829379289300539688636431567878735402528031330743260996318249783521702319454009374933918929229663056914588138329221217584256292125225304915756891884965037812261287822177674638607312197204931009827866285787891335795829735562016384319459145124734697190398629405642369960879991190052168689043919310732020894949196165162938041717883939091733726054145788120964841768247519559193366618696269964349189806006721986361751465723395547243169131231632652906479363978627787038465938235727646942200812687902836497269064412436331221957197747640400311714386355384098960010275947115837100798965716648427793361488594035796316912903527490186938906432961530179354850631581663004915304165447735162082223922668563897587413352916878805333400255169430348913862307976955831335709251750269980660873527498866186907165386344499279145026288645488265790108954890215441097772933109271226164444279900066272749706023448856556191382929185810027868635911711417292871568374064198423322140460876126683469283778473576082609136355062151994518401580768736254103827780159375593556331430481234579230406077864644138923317331183733348008603764667776228569022199052267675465871337805965185781995060991989855661859129759240934104436966476766976192949255316641981458226268112630273347054293822464137204367513110800661671202665879952616108613788444945841173298565660189578564216007891896971434557090510909790187407603072661342762998615899716098806070734225035526864332613860152095991683145148642744655416170595952598757428786378612203285607429182304948222257702415131114964688249342399606841774856597633947737376141509521119696546182931431930593753779691899661744427605027346264570743721780028022925578890402215980300288952798693035092779257076618446457043187468063075541866322935321513640929765640505294481348861615859455238012950927585971244383974423623631463699073013617156130075207241711264990424146099354215966693258020740060045520164647483584194344825814112511697410694713215038320211296975053400249822581637235726426098997335761407709259106021673328327003749138490390940819555170238259206127120834479879858942002839396687133673649656202309803437308808776083077089159127289468342349100506310508091829672905003950386816688131367173884008963704938419929044487827649516733021047171747248044157247514392181917878568541522091888529086964787090708472437120484625946440449529266529101723459021480397372855791980178339517626938585805595384386487802710117000099847954830985540852707088648578990043790091465899511451742387311281697058633958587004364416202580599537651748451304801912639646371186304107455964253458146236992259243252269413116160527910105129111335433023190748346269133697266457632443544884492468338654678889403421511641104032727140677930119652509955114224097524554405507040824879147291301149614482312722513909315759809155100085576325403010889435245053462171237156646849950812426745706471537966495137348043537328633123630220498191926446052247074578665708661921499372746652027319824916310171939864112844577160577603131343631840379179534677457314795165619915985323720659736214477633883105777166595497721242483538621926594669631001009298853282804003648924117860614058159153564750583309039620848787566272752550246357966113484912476259950411542041541263127880104356390593805846026401076871302950934275551324373168474292411479964275443541705271231882826487803853973375658031432746974513210829326600067444714606271160329491705189957226725331992849298750242467323234594791681269740674116595014798788287130782002731604739866891774438850768808471946883243716977047846651146485238131388028397157256101316135911467796868033293449106812275249727877597800544778574052270651470080751643351073600062656827020655247438566963310961284210497426246643931072782577900886503167209843798015903881475353267468912937787925546782028097015319535140400057550899013611277176616866835436713210292985045020135307791731027600548543412035131930106543418235556696196636468785303756452438976743331044666132040088971019875919335934849450403974314265404268923428825911802341527182077528576466525294840656908362278393448556921649966058420504081589753502339671894603233213140275246944599550982456889811077745734245929417065731753898078109446975938001668831892664547645946189548843719585879551694319315100375514250660463225206911260243359604504275365854670664037057458002957430882605243318170696033975189210617656537155840576832480069833853772342032844418610518325913927855304943823447716490213371870391243147017131795449291395505182288722723634628213755788613816159273720077138364415933298084580381834573684954720426439643429659839247501998320993126353434804432835639756373710421461024968850557570938275024102648124321699555010054131083895434334705189110741647913217146407411255941694399637741939104428362497316574186117487197133989466474565331239985058687523435047930030416051619167881209309394138215002631683385117582988938922433531132955931069442334224416986005884655366766532537961647812910305884426003169196735377667655594684504623080197937365024257689616888540981593540518708031330019130489749415720331855714885578194571816850879782309911821839911389929357040533807038296539030382556574860073352653443035380506219704010105275933042416406997836519446491270274280676211375348867036253349647015222718518053271741668116998920806376479154679627475905271778671792420280876346078243403121023279205715668942208769868925134372228089199800370625728130815117106350289906704927577086122627935111207825579353200961471685049268396832929275803164224382220326278099843953711469419638729034187458740881481891753666958346208470036092886833161691595687470602930300072447689815800692924790234690484017107446132827000262119981633838479091830600277656676566966598625878672182223818559476199932344040163665304128961336221316299355800656354697142448701430200554072654105231142378177121228314866743309352353183925064554098861297439039151114578137995314216362780795792921200474100650276280096601158286291450111917345664202315092501040581505691962625385314829578516734930422289174988598432678494605424617356103230610366094783242172683378944620025553124276531316694246173918113710810085887610454442144092600855590200152011860226077732716007242988963274176816002722754733427967843704227912392231691806261396355514290701681476295449436652626785746968007519174449234058209709439381547964087697662204044504797124836044423083733260741787637383186580795712179533916037919663266636713518472596935545341177723891680921431409081227870954370009177006945535771500843695672044267045680292734832707436656590094107042960916971442332619573211813883150552976594569396059814191834106315123635946913250934723959062738636011251643979575835154781689913229005847986746174469461445638189962648138150981375633198005441112616964679111853423083724116588829099061641925198706277529696738658655673848804249320569847223611970558948787518691644947849789254049804145143406062869900559607040812488314114930176042304955089570088835580691815585403601285505147926761431081903165003552009837735398792749453574663274019728068302884161877485502043468209390788966780448068216615905112487371324448801304065792270195248202628241174602654643611211865504507538763847809890660837797274003119585472444639666055703350960821374306115477345451344631736164987100912156633053700946459902327487836961171666440887242615140037144999079623863703281123892233770332193878022881905250536389350820336679386615520301775672701220332078347146394135486792222732295981251374994086580763393630076585164638075935170371983019674896207303843267662333888732503408428845181586085785788578409127208207320511881517592112561987523161202366075746649594077046319344485989663976191370111339003128466960892013566551844287129037828409406205882113718040096682760494098883472810557346432481790570620157794153100698945141498852400254557609849905399035022890509550492254219319967698324922346809038857269806354037022307917472936163030193843838583962659038247739737920175864550790448342850159018196612317210840460237844551987524664530403596816400149975938618787049444715124000253810834827432462562800453183609736329088664538630269052825117558559105360098813260438688394710871263089949224909313998535085854567414190701897480670757443583356854107407142888645484368239580221244228636277436544150433817141681271572636453754070851171186831978085028541078296354421391246953773162760931608766572204128360039875260457624833713854247491172119516689824847443366579353739078188238455727256598558088564607444905242120865019673908534021429502989824681585942163326879135694849730761479635959859883143605802534549119041478653882678414282145415493142795607237919735375268690792594023224963235922489794866230785351953516216125232645316788027259860678968617160163857133050208985747721597125965132597868404740773797403643983678875490906665922935088410978460887202486830652611936862282695850034924092011127059030796120134899506734103217040710304379615139767699464121796201743251768815055828764523991022382776877363527545885118353477205982747509153836354526438375161029434641020810963804330779849037458901073731907694027208078076095250777906750301351157719624826494407143379215566287970911931167142253046514681685810020955632491963250312389279962311060484675070247757076442508878335445014423339606012140765931203011443847741085631730467477703875445162839553237040650201370203229347377206985278348580980145897224758907774776007533829238311775187585018115680571700975772043943436692496166169051781241237859697022768965095495627063771143412240418274858266386584254106310603456186530446660897233453756967750443111480838984639849196249533140673508225820318302159488421195455981669062523390579534239056531234154210395116435483185208548387423073424529400376309339693130709672160935700785700624527355242307551475156346074339703161772313691693408330160943476835488910973329981846560322325452504060244565295846907038576693650586653845855829324661375565981049961056627995319629843408362907981054108323137712657651318221155057989548710460944032784905743618350472330260390837631751680338792639490498089574111889478444602709144111626698579653088411673827504733439390987848643717148128731372418631031993438177614631404155871817543072862216872154976066935485309215876964739459135176127445224604499451815771439545455352340677211712311685662660046136388639764318319487868077541851666858921406213576841856555280427435077110322114763007881655652092648593823028898219569310434906136503846649807158244126228871665181317574354737565434845519403019495304214609376678565812634907015399353297812164395544332126695354594446785586367443253893383143555064480189570694044564153949469891512433173313391306303585262634281728596694516338802153301772683201525767430184489997461511605271404019039502668247859987924131124750539226630776218812452885960781423242444005775552727582981992648800614928250842794273064217798471498142482063088867513982697686304974192185612311128858811427781249854287343922317847106687282590606560612880260793473561257917587321747578835586399422570909360852460929179815770509063997598638755876392583860277092476180310622890881263660059346201855604810278028175791885625286242469515998299803355380287152831716296153789590538185173821394727409340579622280132764262858522495256156993310985744201263881253547020043012630682270607105857231063087858197415636188844633106076738817255038807313650259641566253793210419392190817166131529225959484879002548220447007327246688866857188884759571762079469823542804957791695968131000764612812497603469977557526445660351316255770841328711244258071333589462421781529229305319276915408452403559506295063005645678724473496150102674267864792155926065600216737340519462131870382978373161629542241413905441355901243963548112933525163282064208369471471241874545423720938279295978580646862784042988673510001727334682933191243259236341006773366567253842903639200205407546264334977557727891498457996601129451267649801407163740792906940845709964148686073980791990614313838136273761153092040238892346775589186242576851156248981929087029728029932073224640010824474437801785071994501571806269458121378387860662258542572149896176534104743798267075123135867579645351684511106298004366564884354326436199266721048082783799175890700502934126778027375590476017132973585642314906943295491452291429558735939645824550326047240377010512076502295630277034747026929911330371984442113181857598174249850064115210610961982423362242081276285740903787253110907815771128794126243430034006346866474491309106725837291667375563160675237574201711096367674031260076066106393697719775531509354173500125664046729357817003338549126216697886994864188755588785301364795625744524360871857336532216030491952330036358442412003255685461546309666912093944543173783007178031243702724294512900386530165619821063974856477791826614483767838826637791428383172210792539757843861601825411156634213889844536321305858456249766664683027057849358029452773339803549190181419472754014115507924351833175105642162772176426473957266231656688092264290070110705237465407621221530757581825904394880557170838078232276921493032563697444337493127094752462446890969338605518116636417637689186570412612505609218677806450125727519057505871608109433639792091995887000336085784574629488446541295665713747059223943815753334596089923494436349825768424135525709405596293008797051806643140961152378099604932422251206993210229786316921665088573579217849592263793035674424493119320525585762865964914267387243023215712933668679730600799650823436116258579913234833439854823578807024666622127303310741036194128775813689916449075664801355352629751638849032635912043658869790932433030208167360943255815481847474453542031452101424514021454799718373892581372157719310055052412778682130367702674880521686468133702839004400983181503141194332501301973981192622966483606371673586109313058802048111016181454333453953563730322952569215300930840315767681242990315235604865654012941986514585517096240309543764480301650005956078904847424222549215670298818075569135363862207330070823931150839501753369068762418881754077772174750465810230695184037895407319432525111254030569910659835134793553971238255073826461341813631998847432201942091148900583485018393515646138164041371145260904767176909215800397279877380762698438588704640354879332151063670713937031361121982990139497917643690787083712828140202287704891369032296897449890790253694379825614478492263563870355363215969108789966302534728508089120611337547807981092159505888538941346293070409005062100913890382494718328669367439777470076347216319921999616692590429434141313918403009002137234256514651912808266726003441871732221343412093120462267972358466332686511027305514315261534538335230183029235289535498467574060967758911767380846992902703072864886481069916530897241089696356548472307525732634246132700719175041872901963382772427460327638228672231039036972168840882142198030440401859593163486239306357846486346434159491359050321512002380776042200228563561737065649150771039461207362739588777908329294417974515290423532349664997542277897011831047466332589076997700069872323532021673942621368431749736410776185281564088164384110196162516337987618777911172813151857367898482997253170933314698923700305899098462702856243779730151369146787106681257166987224007192717506541772953311751465633418991300374753475858725330231363650426368597467896764653401538447013416789356403535999247113288781465557865095298707324263936005489364776158998994090543928462204160539826768632925257820144281846005441992435139262274698658322206295015953220563739254664027251926461351917793290147906378268867131982997335318648349392804944638486113617296037005383043739342321933465887518959292241586516567587251908518541175650680412985712695490720594764881596463673135783546611792005347478750474634662164964978482462593331855941763798052152834746076069812568054010836230260102634726581819238248840457938390009791947078804265549928014631201778758619797382240234327066109446707623907258412253282738595108676607258389164929274378429532125870679263811946240827376262805435154620963913779275061604450624057921726872319766791664812241289638645352512736723556798952790781777366447560485638079069320170481575694854932290540920092174723913927251761357471283093461417926485110973749125159888250035570970891377833829476116974623423336347296875345548188855003765759102181840637316044558329522202431518705547905097811345803999933808067066460314851310393451976075724323631861585568667581166751550369258711771874492163991023310144424812516669851992617249718163254596198669937724368120862414880313272960657912533208046389205869570901182683873394296987274145086100938800093310324935889035289892852640489034243538939445085927724414275683878525414598138342569703447645815320838944285844460114340971872897728745143129333391118903045891793827685263841727515139301027403098951252259488951736213536837740960958561508226344719837586133142692766065450115269492836925050483916679773334044101867927460219934115580465196068571805633621484542780158265553569800847832116868664264648561052724649904088403388473463525980402157381582896515876983351625479749127726805098307538757233499332574630689332386877866812522338960434217835278938757075854646715375471369793307249729978312146411002592555537059226544405151860731615832734811061458631910513079222313801403554367968512356516999507293407820210869652201030250670270945219556194548016334612200026431905035524974785954674322384631305609731696867551635676547627399122404789691400144866028710739572821972351210938631934145504077428865892959100171300221680070056286110752509464861456434791325251886511109956936309126848242800329031970673114132939104247878800979649745359512615073026674893669171391482242511293711273446615985811489382251469567036136125259248291147481155171193361463407843152737805245222503158169469008423121493169888096403980710876855494291573294385552224392789919233525096367829991959201224662854117580750360812551724607329567434814952864397562124488051271853591223233070808472966650679306047143594373802768915130068980228236415139294484023440190138265388805476367016982378574503735302396438741230524973121667250091182691230902345571623533108595988528524594374714861096606766674709233814360153608777844035863112817522957227864422756089315781699917434158423202981669602466442878852120591283096893711125242468038148150612770538556746091027211120946409582287790543868636181346792978897129834908523325300796151525639825492833958064700683992473806316075243418903311834414592034619284225334460429663558048047786690124327280403432336860461989280305716740572057777034793194813279014205620734933012477119458069223563862156194376004127742300867796214385535644519078153461008989560326497382048485930496206824808142150657491725885583871739889181456216004326100839560060341836547799276258322057494364284239992010578294618181634897868040932755937766746201999451469487269129997126772679420873284813226072607052029908387496452355349394003295997647747422797315643247949183150776313347314168743556287060425185506104093426994968420824590167805643078552877495662321629115142673755304619425730165220411353063453581360571562865615023321172025104788616219539709646133200164003498061593909074389176629098620072512230807054726323648441238768336432529014253114651539325159777123958305395066831416545433196121698323331754248087218045310667013030435974451587038726453269300903966801653266852961495694695784482859688536249740484201908992580537693826078466398802392195624234133351676006959693928376272477960811731356060380641856301725871201094570657526039549497398753265556684253778780964527588518734921520668603399226635398236384398307866378636532695305358770223250698263611281917023805970713094818197919108850285493222270234350499754231540566020944558609111799974962174465550888534137474726065807390556923655396284404267529799679377656929819413815755214930687477161139333045405386347295854966325609618025669006168701228089364899188407146663503222560748728001616602387308676102094762001607818633128777603765026767122217933956620140650518541975746755008449250188539285940440299973478616022713230474148605448682981720098380032837520546030873807633925656679116581223918867773826330129649353218731944464522569790845700531830995659159493163302657020746215800053155081228410706002231441580026906640462475660878276227163425752690130399267043799557629962026349311138765422773945906317819377620886906864353926441505416732239420276077557496972524485852302419211294257381635022829470520254517717588056106908701026021386566756821772322624005694997358776089228419244285200612587873776941058866352569505477500354550776232195210703860341148872615657494321009031356542368065527799729982969791389378165115120851551580465788836253121459291808170052597199354070484451911813378755955660558482471723557806235698872466970182302763827970947333822573844337865577196899465517949727799558941464617105234123479562291960544856543430737191864706742986891608871003503631829902353626937397243940941467927509452767902233248364826051938744553669614700888565514819664792125899970143499226090623866185006574414163568719997582660185294764606461471509391284022971275508855998337368060882461205787069090927675025792236102893476922003293833139683278159631984899544297238699311530449003845922728621394614414713787286832784669384039363130630526889155553086886078607406060716253598832427893565205755572753059280649989992423054545859082880997827781185469895557962427703017233000968803617972618055584892943250370894376951917656055519488269422756902473798463595079026181813675832224771192455856129294952932880017021435525866744319548651628324240723042351161742501131710896942266016266499214317601866449382655832815707182961947041389053042402860710514315678796270934318512197021189546525184226735538180738228874341363349285990849841274181524183757795220810477325304094177060364206412134028586354044903494348665239623706337513187333425377867571021241884040568502319698199638397445736379369725184901618027914366977174491699868151400396481921970962680470644773508842622757177117976459687782188083319942656100493515323735375824138982745071833803465450597210690394194970220615228333184877991642827202810230147290955887404192231355212345847702888108107510285567641527118683757535655702534551072061783972666799192966602243193318857116244208375953571717132345023142261316317028767834926750050065885908437608468878000977290334301590145018275388851841452287327782637359521731868743692931108650838096745380447420175853734307216299783200904929006956345372861556781302541186341760535640468036232973242738480290462343372534711331152004540913495891987134189580122692796768308957569073739373195303188385823577508334383221463905952741264434008936505922324131865823580656591081724940463380701429495268520889234923693835094565769133003305428056762876346406347235173722900076456271763810661449889634152397209171003950404910152860157206869751284782782953091725738492300613701970638828446306652154779075826897480284308055775192426844411162779062188915386254421055798467191063412265859460058184252801105566611541216288339032820763425515183206444437585647071644145534681203725351859386962513705725884908604289933483096498963411578550267599714171715960612137363644010906773811339638906077538472923680819265770942718801712059504969051616576141122153604987927212895338622735334243344570941792919297844901485164331111159556878452258648539967829435909204914666136116094178742692248300768146153410046849157061904353730295615665174495337331229653323944728372388364507287969394677974903847629749285837623530489424282427258120618904270767244617700667944483226862892380203702997033651261322630173246599495341510517669685326906525517419762530228771924971224565785532802753284909529901866824434772685853272487331031010887731721972380705365899184713490980400340835169802028507986227601277960828574143154019931678200319074713259041870002462999749446166893663241371147788465454416986686576014643529841827615979652133907482289760611706912367900117003059719909624836925978731573966111293583797028393234472468765184642601876739949221963148835380049541665182856354756898134063494105301296426716003815594081615881231189142337939284620558131287038116799911263110776469548766498349950917627820828260965125743063914587681722155482718098540262109663064870910996943129657739975583184347489162028818343001420113353727620904721390093054014131789248845211809619101637425163023719000067620950634083383023311041113018857206974497208014094860570748368643098026284172584685415622486555934367036069264485706787235382510025858842428876155020386202248920493560390603685470035632735434846096669907427154783990152527912233465176629235527429655737214782036182884110224931796199479144029289286727098457306916304584906575196618876949814210394377231478757705643275754126188218445575838479102385187872679647034782506893512817785987657046847959424558531015787406134457151897037335840985667320599809998458606496662031214002807535649593469893606648893780511881691016478737013374422159597882340208276180378819824497652348609305005437739875223748500860741566060580598340052690553691222888526129976133592852509482382261181666417624460170635586064047215119918974263263676797437084383545835079407416550000310134673791241964365865323934283700295728156423743277403458559376738134233767949455537591128959274772852411621383623483745304517264397410380141465780008932775853799163622209601938715171035744852302008573327761692211458748773769531531837251548798252389733036639038153163871833124556451123087300769699326489414809961591498955664610426278280653374707682250435373407839358659377549100793287304918556102179848084558960710660710095086396411474379156411039621649795318585515501041052786850884208334022469547532638326965023519440235381556091896109119786745162662564983168352468387458559229908869210097868866995277793242992231305106009662618818030498563551479069528562437953183447084521215336110182224437720426079724745772517216741678023565002360962312310620751524688054716168320131385643902458924733185105678165365240901789356590164603932175913523876355710077148073026572673421779653423503255065891579140864484815591897341588740812243752112476887995424727260296259830801655091571516033329078915538377537801624781674089869531823188841187441570012122123545678242541507608592264423590492835021718229674985819816099593590401988870744432955611522995554865403831041529313995771904985549144797663460401972505337262680179437023662421635327379143053112279686657202720733886765855732045129226111889332366927242802475497572757771443662367097513260038335670438544550808413493902383084076833301068048378611527561346757139117855166170385090355230994763136533108873422245538473069001592236165970073248791726358051665358408330876757602320816538607197890776296325208279301829524958945470211688584071480541472276438910477031430511656788245347760255529922383211879108418098683055136891874599861184614470153122015793248758024058011774722235910290839242906336300934571083817098548750711519429764336503904009286548638056975537954100851190014581170317376692340084197395287318269399242391123571324917973461892564971517114799030491933633552561476667656969207741954609434809078473426090364794441876588876518557181000500055509972005500838599173055171792130368412427206940914943857671974304805538699614015800758052900885467123791405911338170078106784370141529062534354184829502243964272259838519189179910574237345487071615491625359174199730085207447362268717190720644760599242771554394431343324382866039465249386219358915257798134402925006198260596584655316472409995904545694142784329003547262583363687290008822600344381877321744317888643707910464189988742684469394231664464084283053100015599944633007368472324927606647178857475117740798127708300229986627752505057958046170159128846528555738840044901903772522329806850650569232626108857649789095205926027356053451384010364619355021825280209725503859096184901416981597823767130601317487709901159302492914494870089818534972730498471759853180435624336567444092978788251436635397136794942170114324441249841745388165894039144890010184368650651979722766586387242156010351682517822817318901307531225034130013900550354803214817411660572964811441513009954366701302680889203563765865439261701315554142544763156772235684056557005503388181800316660342966167514562760505680945692190930384115236509950100427774087369934713059183140283978105904927727688560746911175172183144875740843280582118192938484858940434055530586000286903176980819725537958043843164263239395852386047804591372286249126532164143991472266167673155219542663312839699564865330893644751077593062011717254360566003228582641460639494597263022408285171345050230898551072065061375231191258582604807365330328701382458720838996550719956440299382289860308069155903234588327043227140183240137624955721850438913222364618740696168018771809331536985367984443259721078002661559698150130734266025499716801394468968617822625070527579874219644653654881844759206869763378659406144416981544863633841984937145507708352477045394849123306729260408622847780167297032729385232966369630473445632224696350199477896294273115397460712479188936126773044301163817869686454598808167690310731524545042675728944095846124860200955978759079155881154348016921430149363423671133310918405287104685614321540356642136604882341197141395675799046167717312067747852664273861390509266331383073958328031874056114873790892612837881178823685186431318526662383652774008601617347862878245693420246736679705791970766326413855703627044749712053867698258075091286334799003909892061693613850163404286217625471237812325119948908780681061069991509866187347260568947794748532869192214883329514263159765877995709052187142341786921491474839615617103409773370416715988735550406867394591747739428127159315136441005195035748185397710574272051882823276730523511822229877945821673196971570530255794435674806204454109778069570450587911737627029777526636927425888710616005216559858416722066100437817147553894310489195506282926659387340652776588210497790815937005244244699659977801896472742476669288788068419256917112099754665671902427149182278304218144656429075431628557869006956491853173360039627490821672183281115247655828839836504781792306974122108327158499877076869720876539747591553354440084647021014866027887220452484211687329732204378633254158774991934897503829872535268443694967274938227559934725502274474765038293119319195254975045463555418361465642251225629101948259341198963879666983802484739339016148467808687766826942321873882798077184189776568392349491172824661412858744292754343391393602014221647614911223638294911399324313362921874151931855031212054447249128049871814579180938595850124564063987663517941335261310622818488748059403718661111545185836857738854557238368294101872381728998971468740087551053810159500000168823154755376282604833440991196336488542025573237006570882442145631571885937567678993390312687930562031701262959548894435623719810343685703754128390664656483786632766348775271788610109079578234520957525395774609236822731462408442078183548909635544197990983516897096336612681080638721437095912442352523245176172395438143206624387414456708358361710328590481060314417055435644064208850459762680799984366603622469944993650379897390851685053283730896161318655057090589213413871767157544332234605593582576901329413047891836978095361531341953539236252318620630741011846046334549099005700450097428775085877549516019521939219238517047248285546278342693107686345386805606508288053749305238014476878210192710623333626794318216121386191922260410984397624638747688242534454536262517078768491797415629267446768133915941302781724622634813570985652371001129961753556725316905044606589545894253160945445906756753551949339513810783857127634562231029620541893990190812892818185822547492818266630626863156390620342169806878727115013832408718849859054059905211091966612149187083256615101977423971458835742008738824521142124313338170885860855931342553123731138628740535684378177805240542053730224203867303801316213888925601032729573714795218753232045412322456798253193529854533494403101139186992636053074297678794162631042123366506199847754119438314789392944833976635474598586880917568368811543720943597707623903691799258142926609716535918838170236567413772233503330729116088952574567103647919909096258680154321727941697504648773775014736723092243752016893902065135640650045427148844078580555233900536655577532899483399652103805367060333704902703388207283606011863173491969097301925908980319066285619482445700938358072055216893810426418177714187701658656428548114193818551813006034075821473197652089416511581220412841800624977943688518236318565946386109264275030828317470377119847236128831333371509669699530242122426876802276430433639375363473497918108368647976277213079516950708589320480784721412409021371704714195876509470243255211996621378269264026829616840877718159900212581558400208616350361747565465477639817655169156987440554447634020867825061457669291333324941325584422124505460306576897093858613003099436424872648420289895925968123428247180002395228184707813187482410832240864291074794595847832313643867778755540858640335272765587755760115917808959870051153356766395606459813722706509442893260711032641867926669745920995097305411528312300672559676187529878548905735486793371463806225086795346333248546180384376903262125504650662437618554247720482266788666167764404943802930614174999936671783657465155951005644104990230106484472560049857543777615684240294105588870017362820883877942120834677781852285101923568436678528742391864699322087415121725589457276025335190581019358205886789248863522585450792364376106826686758265178231182045336708783445494874777673292809242213533411277717219132963554142614243701547091256416437794762237654972794739818989207529086006551470821283499822479224265831274264149840546522771423327934883265244045163105805663195242068835893911823217996257133337011671801250905898459097804073746977404284634685980950949140612827892832582238268219671571668023868911073005291997087670006485875906912889198922166279404336272773077240055342574418706947035611795467782028146060630953653903456783019816144131568415977617437104141907489450438580501399440485135152371712693710442200498632409375737131382895126334324731475509902111908941240599605874930351104721863699518210559324520203909219296290992811225163447358166833669614575405884647792063459263768144204953094813061926568655761553185856683760262024676272496438685295811492577503767979796433715508999610847245815729430317022419971815427781420360629295151503689753538558497324054221026675801535794714513527754988606251295997508074106837035636971337796763635709429996152858246183523005286427167219322029539307441777224925424189784473595803199992497527001949491620973758728139368382198810709448768002973618761336588608856935465052929478511809406214078717894277866204408416170242097359804607172258248103248892914436729947666503823975925106013696726462831649214819814823491339323509480490371308997793984890315159024825715602590595429680652041339444950463829415239102917871314090903526677858056811676076436724970978502366965575303690891711362357840174569879280365005259971030097040742688672692364653121533851966388063104201470632664698631650802693167942113664197017194194663245170172532012750987515637317001773016803159679186974479922393371631737949181510014311518939498677141745268276853060546019101742183478405128039794830265281672691850599391488774060219198265449171811448325970351679361013851270052939630106402185442713172607802221783678970606695292046124191951857933713709646786678324823982501746036906440215213565950649149364549336255867415418125478858075976562499100318685877505992599714730914540327507063294557119129024711104940959313146653143638621257874088762800743687388817814563567911244854944791279816867546349661478885503301168694137514793457388966050209134901135426744856553956488918854110226584387361151031474627540154043325076661272915660766007007751858459938558306730924347051765023463377655039702089075817651140249810793107001279059322714433619430806987350329922482938536493667917000557589652914545383517752479095377118227422946751280298058036202209768920618962337058469067929218945748006109190842852498385069122463232739290356052249324906026451658825972013495392669467611877302883213674155932842182249547652898583281834621058916654366806590853685979357094519312288814745616290198927051492217829496282255413301597769630014422132911947262670183061175132170723474644171994716686646648702153295263726362995443282493993586745553953810079571187193034560030996945807702096757750067704317972286853182523115251650919028466211455152954515630088739401995745899279281727580245970524156251826609586357039102097526817218229089092197757593668005614508517905129575129132355667714475337177898162397249855635070709586734244206110198044206908131417828351268753032100435221235000080816218834186500209704220601482061081792704399828172832468548692431895712547017393208196470906334647551276131281505417356486088527530952586277268187241510930900217453194212640125507648324877321498861781016416797348388458653939293547120330159492336368650356340994570923243457131611444282211773874738856124568408690506012234646608285826468577192637052730541091162577392056797032679578854750151632558932530905305572100151492865067571930092757025023103231796900845966843738914754392531399172617654198806184231061088917034820182704612432236491048355184634771211585812075280331884246457841903805252780630297392028748796208285938386514231239557287707333884303245707501784714355748405100583097989198765507560889039155100029028160878334833973571707791213447054990239603043842136950149060323198948120237145391274423421093846287752279041123386707416312363790824729013666591587438074120273283755517225509072450215911370727948776757950021031898931105370683938784910341339261829796539423369914022393767116354070215529213749698520474884690901230294007285792774345208732587612098048235899253853046022517739667502056985475395216889231450589577436496430237368905714516774453007017926422443462762542181477891459215117723275251290295511970529172783086952018103666514647545689762949619309992565276386657299841358920219799525204649345794348003169980790909810754838875386090257271090785394294466409499283707636780822784213142497846269046684533909932729458751235576303119690230874657002929228071884319522439968271205741946282466424161153797193932114527178070588610847574845367217498979385718371181345027202532117014362052724633718898967563091359274761315485060933696173739102331832577702524202298133108028478614728414699803865300972219824437629539786422540233040732963717835847825447038508160346821526952171699766367235682049287999099611813506494420247008252107003985773034720610925514122707561182128952903281370695838713929851546187809160978597656942437208361945328793018915086039616378722361748296443792223583177694877923049533530669336445312670640054811805003306812496102631030207205969032655987850363768750793698427903057631314550577389613835841783194372771488621100923169197510781739769409058290512650551990880199808588741030620775706115785412945894467642866422259465810282873728567055607500314895653513912693742956264039642485637629336342972051189501597780938345622208398301297384570715875168503292357097890906191501825222723132053430333698787528560567806744881415004587107719177396676518175653293063054502199082278891443893382597696538391672631714975742880652070224972023206389458523435840931923800590419723652305589735075512659162527099401899397698079942352650475801196173843047544155900504562760423349225235488533742484755163920078393959962265496945431865063689573322576157129617877520533598948607110589080207541058377833612034844238853658961587311687009017343592703817101938030715031414478856644718417173080953603517231717080883169606517234269063193001340144013773936944003920614002771036101778433838468764791489270344815927089764097222182232519622703155288802521428178863465989872645831420635569419160359886134578506425243575482082542612105023331501932791930317473876517663211957595623257144700141279461796845568764627854583012383091081719760700479210997017539073390280449778612295534528934731062713194300892990428505727736621061344419346986236074790597400248196389269762289228347126696033618723740699657669965676431485787733194147655242918584326941286633526210499359292517577174940224351067429185087493522151967298510857944439414950191104960465838700286185904534944679175942793200893481259760268819994122740170915252173283974326908212955582729357863220125256879615599185598977426426633581332716088310509693753113164166396247174185115783916882487319596960295384560786997388227737102878358500716888632679987959444943830996292753007602416228974167353487512912610019291472629858360846998842786996537445063914891458993759176442173835831834911519849019420794721552467617257556668341751919827705688248236694932644338723281697691638671463556545933772239624772362338743484433046408817169356265989076635915754825327371219777619184145684487702831187858678756928916918418561716592141893028210578655866489271701980538049360973336390526948315375422845685626770013815915645066325599402443892996131715645182973285555796032199295237281041023805061997225120212668384241532849476508984030863718793505144048464822804276319262611237164433779882976332649883864732546323428378556468571438865502673126169634436981558543730044261251449978127211085117769349575998591557387919257047746545985316032692897055763787392900669777871381553112696310729806228007177132920970617969575957943820554702637910309670729353138983907894013164142806497799213349881733226764132009618506564415627171147668268831407794811095948544367043899002305653399557351371856014397882038083035417024758843963613597560029969461766665648489838595316947914676597726934220855393012778289640457258177588254328728261758030923429938925876031356418888161338336928347411717525543246122697244895217628098059582908370901389367070144079310144573187539053876369766547172765305945376506249194883290437924627720213632856461634376932852958324111260061152810848548312766953860898567102157442392692245415722810865916464302477470399172923980738345569511653826094858237507957045039857638991694724111156210892496560558814624001908286126881753867013484750427023348667280315952521217950293407648666355878340152355526832231240628203524818963331775288124671718226415603688664454523398335361330670899349364102308747952279507117299234712278153837722464876252381272224688359905470666517279630267036382638490431474602262279632638728737992943883664194968061341730998818033204147629623212274844580809644965954958629056024142544951922231271696265290411315247114031084152306256718987980993652376296660355472142320609431824778583023250883799609985327140574628246440436677466487615503516892701222181074240498479421367275505912029471868449478541636812021384936731318346662939911783024518453726541288107394852238782238154495602638416865464586314444811736447279683093318142824524985330532205119913683542365101071813653326777026995649407028905053706504904132227269949123772286622697171169490183444586064051348526747673112005022486397155000343718238756148522466519448745843705606050329109371314305169430057186754767214951464147470976448413611417685865924193094498375529310149874091122657994277525077842918153450636605595497077636291913695671042027930522720889740600710832686285606837053720218622333037400874543943119610850381780254693363719698228751048534580948840471110112341080572755083843449477672224204040544894245308943357957939834198571786256493950166491055383604447111123014870335725891144048173676616460351067841228183142652126860835693775072375317363961367640440633959519437276024189570049021557286643281720445434800162037977914289318860537819495066897870673589271273829613512099293496128886539896405737620785061891226551800543662969931656386362344855046590409285485017042776339194535558001367359527433196772361304682710504693724406635627122686615027823927527286586365106481632870253893509254593337280717285923138177278233546173326008905325543654772884196514067978318743717319908737016216019118358288306069675832486421251211647599189976477420629660355743238258607537067555665384884731358483193153578587083971961846971552451149817172058013576417853606290283544872404361933604175182570675828779230518086116415407471842023869147618860163962664609300591094945114129660392421763966507648724111028619665123868638652096455824810230970733120048019292628981939204336059380128873542566622400320974955112046225889579674844008676611267234006180760319481316341535663273712970244657149411175992357466511625805704563235791948314471791522687355070461510007346595154037741466803072454963723195581794500913900366258642475684651732866878341111734134993771494834933818472012944257130607359490590869013261855036364515964874541751948778764214132742131566044984208440292337857651669242077574902999308572601581479119850172475619324421456594915069150837893568259866098437953864179412910330680401995115379877663659257092324946112684419834731297066725802237371498527079838275834238721081412596601228424157544442853084004597960021659542255674387919575557336205952290766397956767471868265100102688850578062296367647866612067453443399210098339782438561190848755234529762297427353336425670360117619939794881860740350696370830226341247532338177508510427453163581064640203827436748173967686098911876950755483250272466705479587065129748635860880108595476113028426405938751400388398345125967069817108807174440050641738922610530878083206720846816979207816286016707218507412033401415266215439757723516731911395149716274563821764424398084347559500643791247613470121954104705969415440936822865990330896359816913725742407036638092848107896396030209331395739893088762478264790176314102427794460556317714345859975480121051252589505543622959348626127901707627915493931714860886482557065805588628598714651600177682460837673550944733784872266479811346737896572999635618192037182714325800576138232214067169588099624567864747135426457501914020487362663712776933491280608499636281839034578153765769056274586780220964885689751233101184761504008197847884404442881062242302709675012741043075821744944027375691972157867358421503515180586634393719930940902360575999609704964945498876799667837651465868402543124301706839856811329208523728650318732091570424815978971469327959396108835890305770073017761121036039392254942183487328750413172230235996074127498909387988816841330031679435205824578727666733483812442969129058544587975288515012198843248698493570405786699960826481945222043492745881673497543026053677011175929682212455474841118995133641758908598877167337090043788963457595757838741155278392528480329423381365323713775474607944521085645712761171949971185804121579092334156893960224425526568537389065209183911574916160595560032376982779468993365721973755329129304539196423643756508530570836545360388142833343596879211350552668008644145922218675395219328099607188435246841516312432615610439460781172244243144839492542509963140407395993003412113134716997411705590795110218918046605744795110906520962695450977797120428348015901386115017206333782088321939923498637280517642728904218057266349064709849542606330864993786770983308160232795079043034132884689940966762175401815518909236006466038403796731790894925826626022375001119997298392327048080266302510213706235203555156199527407512595554194417939965539526739578014455427677609939694980210328819486650450865457903683748673098840745575358840520390309488202963569095956230228732543595368006644453633800318100029089173239645376146979401011892424356983697921669764266144367316868257036050332019060917553805530440714642275361213510716260947931588205795867016801611675563487370096463967574825987275030555718307114831418475769662029992236856094859317346351799357060159930900396611676858669414745166619525371111543448603787116359708308644933057219332819957706208405698887284429218107855274468396009316479723427889982626182913692694850873274367676323287485269686177924809495061645550117487761354205415794899266408262625424195053784240840077298985403917953578001619109868836445661980753999952625776583992920382109914271373046288786397750710031353010509254113622108539909422981365894331284104585956524779997757769626615392560160161975777734266775654710867477902958830845760308143814619696292413315471437063021292884367769223658384946514882459046561868500573035837291041977752472092689577125054245336155125139870641488954270917026395491357571547201840480756601135682616345927932139176241077099317087356499616013859469668431999612899488260061224566011783812010104107539055356221753759783501892799683849996135095577746926672421091203780394115453024105008830692566102233155578487574351834205537650843736533909686962192573891800920595769972123470531712289496538272417027279323132429508440837485191336014132584102088529000888626989713194103419422132367025235935667342965004510490496954032134374278186122943637337767232093812495569375116300880142680237892183874371357633864921694385331197628475281914443051864831392400778718856810277230828715508295772170359288554807079611427993681435059771878175132769106630624680219625881126890182579482386327656013339819987568802766207603724185544114133940647178365663053825654946267418009880102808127166612740069571125422102660699281430888188319358031851466310707464880345830795560543779096569621998365244141577947780896519234218893974065990326017388140314141732531527752147758781647894067338924076029933452073637984328806410232013737079612937571735323889663314564659989184691957511346662039310304949829547524704177766512084263215878541615084172436613156042055868564747299620223459000391879329512640749742563498612555563783025701796983845808019020870801485810587239562225700600091327445844539899433650875659342334856412303324010104221179982390086123125618764744520876555469831142498480626652202951554199260628780903584851984744594518979331061837809418913966575535824769862891808467982518767462360078788268465478333154193158938756043624824871208131070208955322619407728130632642846364885951398349798815815188087740661285409545358008760884383724289681388375572683152195931817420710234447636858291234120954512303793081078371038890345703811012542459504209259676847981738772869131564447519516149315088266306320352598980207093169797798324662149824941609220350899578848654071606501588829228604374828845140955149457498188986201063418712817718946950670126419774703153697696055982432007465293933036158372864549408357255686353773411474818371927869311618858024621194513032155559984141168163740125665973109783353261550312518448524696863955627296443268626199725092366415432571775176863446789530082835126934838847440390238247414712462278090428050269931751341539070377163805291280730849692276213133510605491386009861017630805908877840230164928376884458747037150305683055012369782473613457285345036038848361193893783944381704810432584342170901454644310182516916720603884457826277283738432352717141353043407353411834458724845653627192799783189458125695802599188102304208820582944646955175629344325657158782998994585125213624416136862055951238743537412750310902001594293045150504034559567461590271799172374937793729077391929871421470044251668871868587729548564063914104144792109125666913244871294681169423424657621380314404983970044514166829858301907981962610794965839261261811584321768757212495331824246258727021532960171312374326759062797750661329143625174456121431689716230465834019298507360732362623109152717528314564213928613863047373563504191744345294721805295749989546957477219953199019187838556889525337082917779885065300077942782240689936967022252156556245834747004407431722808107237467807142882595023580207536137811946176304462173026655652841609670744696998048946577742981413546660969979129428955153527164139198007968828722442765414092867713224057212129167738328025007815864678478736571197182657290247167323050563545512517449573860789860648901807714414280604683228464533330686668974023638776310590969820823785134137987891724374446540320248033566554040007696208468942494021828163397704700753197562432520743147884128980837696050138655516173953502921761985040930147784878489117399431122941815604739336490723172145812424313672637291074725630512928857415725277249681249222990301214505328299730809134252821420054018763357111326209593028897975211522087405034696847102985110414632939882928396736268334048280468508547541984345451191129620999268606708325336586993991794915525883718937442053409789905738028363264491307644070714327586777849590418789702618911404796643752510001969420647986246616968799149892270989400836761880117389415502880351184043166293686710418548250534413536292121226366580633682181284779035528796185546121431268410396609342004043506770922323905873892495608569598404536239454962117986527479053490655642374953179907398209220725488202293977332470624872286224976193239276999386003799978192834732398790137423273079966392516499641414554696140838653275119355676074536388813139079076329396290166598889348063357698121248378818285344701022229963890917393438378584737945804448490221312577775652141890301090679429348292135199942563083812953730788154421417135247228625285645153310892895662352146486552021818014029566690422013006505779017771985174795048271643341152102540363656032513981595947589628467976184063180614960527999615923592555934265246362696970325041034213113272479665892046207541312998235897986000041795930803648905552458477228452667954299295829334318859913985386265036912431335594966627925810137771009096932944647166202820273469394392924990670480099778434915223619747324460453750785617636211136994680174216487134238990661224625754694389855166196276427537535238258104027093548583517941217965792881010552646922414708095740041782279873908037957113307053277375919128900782437048804236488067150175873645462970695175877190714779919248734518804707534522395397700269829311686362515627669360725258298650657522171229499019288805052493941832270623949479261060411505767626688967992635476921978557736721917921441102878800482272823494610583192530565840020955945668432736094172948322598616699977332216605787883588440196747654681405592808412458985415465836718063252463406425841326935892541486584971927701540969984265269495411508165783134699586854283132025436889374444473013531958480949353600892745842201278256942486950325057228458094786009126687322926461370804424930022487572047395835099967066984113555042221158505854677021571362641795950395636969906121141919100314577890207072709768145654064207293797571191396688920852440259833027156587390349359942788865778169071185796268623856916697190231503159850946119738337688559065858836666470883996789797349263174499403145317454297899975733497667227058558343304322405874717745903653872823537829088521246605750686514556663353652354764228387103482750594371175711429014523575738492505246710294609313517273710404049556265151396464896319992260009602800427392117840405408274909970817334997724884230607158396668409108894670538598941156345178945199751465976534260496000958769856506669650327918218171487802860596732488454221583964054370301387860105407644364446997649631116227922872087262325855120243131306694256920834672638690345657941714873253726021603338610366270544802092404947857980644694139658400007724995099396670539554083170301401189691582824841740353141386716294839524610148274788343344801301402623047875778119042907997443963952097629725707137180407773197279557697795357061856009157930908142511207738518443306737090765958777818960766385258293988428555914307553228769008941659295620300586753162217204292296756960871452096321359449052009186989653007940850714727950801398937532600466640277914532545208116308883412073959406832750738267923025077743360843220870157586367501012672275776019103624768535298889599360631745363387753477309722956719160575617309099082408393913820856720102263709012500629995340095559005934713070416531145592401509164649087712042974346342698313655921391850224514431287247877281563595767852474671218668655749747230651940670015488106821543865904760890365227760775861837690926098845302908805918702381037504111258378882948419283297965169302332962009600801774845853862424221966481941815655501473400410690268104108422762206456605261974507708792551005145327172724081284312816244260751065027154710259510077638032552851606504234010453234401175869613573482507368523342868825924932714409555290566328230299222895343944432785783587523339788944767511558631668965492249050203810021571065177673118261565180686224655512233916646880526862314029417311572616838076412822871424058340750308325412079374753997185893720318206722018419320921630957730657709317955825702872454385334810356041554100793025942710023700381538692788755600215509257908163491988751826773993469702220344473388129260150289872934335042872304470512334475171927159601432953732375482727414575184660321477140674993037914056080870577901357637931784089189033602553043913813298467694536346314056326559401704611489343140322595422977216424253035352036901463652232127193658025184331958621573004873956294487452229596886680668249886594380755509804913674145410268456334776268869897181773846507553611498294688721082771366988550464914051926065631978763788419094518474985506389744854434615853173609916193563223232665990608464806751347029675940363641219182656670719210312441445837323186215903311440848109915168854208130027325435249473227155831033052947660016814335759694726601917795532228852501266512413388873861525615331979254042684485631450290741145966801471240131593926962800060774956602841168466603299992747913502114843791691139420158932191419727419345183244454412000341672226313672449921275517387070835274496493321590648465747805800103366056910853487275221880335437070236631565600820502523465727076294370320078281954232489697515060364774989272369962796463702429449267165180902515622682733005051124307303452452645499239508297135889954447599898008699211355283795700654581287193327915004638030209329354930797241534555387632652664996664573041135956321463706773142310102782900632238502358989455061072687229452976997487417339479118207937960839024697890491090744987755742676645354962050838902604630465964693085223185678280130188659790341321115405872920056956620918530877141593209252073474120790960266239156310478485549627016184772216981082095773146619374304592103763045798128613691883457634787425157606862800402216252387259825853964985379482765847915413257853434501909382639809036549806940891896021081904004257680297346037015291395825496199202600510888247564773561212045115760456188488008695023276568957875990198275872495334590038424106073824787965887183397973162926069435593273373915547385367605359418250227281007289138196730359058048326076038850194833661710743352123482868090242199090633765628726658810158767064885466533493767915662178825652659721638216829220112403125243904852820650992476209671120725770402178738218553136306679630539766720783041670520027244397448164002774086827258364052041172257572190076707001222565211899292511591641030986027318624530593572499288266914401669784741265885010756133356296779943281057262170837627979127695308568585585376268871710482108425756802572849531981840231397603182860587891378615937009529120896591999462004255804706670590157295306328656048885546445893085078686444591533664708321861718827876134682093637583450503759470989232840078145380488989042854479399540628023906736757429623604913722983741457132190320545831054451507196822108358654939101321585554458629395186071546424428502936164106360974581846791907948427736001423322623402322863162810616525702395230921585991589418856751800643308383839169951549814762917982889420128809079719166612529717864684439510304198232446350294051889623040314822817400122751266215457355468672014531233615044386846034449932296443860661389239657982627006647425146448106952342247272404011831778200816725419696640372643629227369977738614498118792886374280954984844157858256129433688796196872708773042788272428307812011017609808575976088343971780631379173543797760104671715774138626710661491393150908145906629178584456401364352054819847834982964785246250106920611473913074863246485648173251236701786700473411648401132080427508133509651728830986265511370838211539253163420199457325363394549063894887061071421554626820196430222958413218598313577038913949714312538469081938928997879356059156047600039542516113399494031893819715513972104266088932465637531594240319074794480003370508912792360183473765159623375289166549331990689395068948814474562592807209590369711477754280419889002156526728974183981706410668952936331784137797970117597597322382065827253962373896478839516660445856282309297003739218969373119894261159852522150029278847935632046489093666406592833596089939371710313511060095842976674603584085396217644350498598744237939352399499279365263244688091760063802435438356801973675398379515624851495445332396307582702078147031364903230592389171965524412231905256166430563167305140923385932990618368552968793914657065753513354395919203390687317992071573279588299125812106666901671861010768594440476825064521359275593571417836068030387850304625564621475031914233807857515031370623378699360610717584062567296045738448741374130385330828248438119190332254551966194894927701133864636848482759238885736673311625769358941469982612508527907071617527520191666698482579208243390807343198782841516537366884059618925419065562858533731885115053923207411661291502452141891640421340281152539465649686299127320268336304606474520105070893825343761954618120140073826349549455539758235801287278107437762845807322947647075824043868980872707023466831395146558315977267410733197915962010099051775748098916009984760913641664245052904062544419837073196887248754666056938796011156981607506641716642497700457949323230290287510649054525785123860861127806052858967797952347434396686785967341263534907203700808892730607052880826696434139163758674822088062200378744101906589144122418493379808433027906952193805295209847976114787626001328500830605751705244684604522743256665425280279979956197387609623968601161523083827131586148800432825254047838006835521120690424476707412822423312827373183011298872275942351161740603355824878901092155994381092777505054174517915115900641650722208175700234307425226753438355495868893678519549055603352237588780304548603825470254843282345522310818053669905852777042634075094201338932451311918419321482348027099890954130765976196344499384703630417957046904349086752495796379818988051412056384916620285775288213341066848017214245853960502849404305216166333717256632577073545228890112900283890956672523141830616698935538291919146999648023322842496213806657250137736179579946713271215423882338221950675563089620165885074261564407164635792055307095814933904583511677337280154273059216121432149540621503405286735944101535641434330027767454669481982134059797497676720624485314762561320748395947519180812330047319840082157226659413960115893900651608350148679995930714069058349929168098646047121433544196003762311630574705242272451114231541159266821553808344761615169924290125880594225679116366835792289763628215810465718144321230025351646118557086761636107678336660521929485672756527046551926428735963497476530184769911434771474248657699668902718574687809496474871918424321900836800269384054920831061589427303033149330112725920854602150269276368678272222831645571574105126548066060669029647812283650612943329633878302962023888431146707795459101124337066154588364657243421735172752597644346949681786598277972304317010683780043875900970230953405777700408180014525964523323734838201088111816123137583329276132219260940155893091026386161248394588499641175786197460479864620915993119570087537213883855328821505652620922104488425270822839010854194582282980299571134870786737469387109266207464847842474429441126825448252954496209452534603796409686182178502133431281232879999686852552026437113595489345570753303367570181897664041598739764029540730610019778421594360993293282375585736319218540705511729101503220561660470281031093533911208467746241959814629562867367288812224256656861841373148553464822607946746337592527860219005882815707463852647702074633696592518697211236098323547898206430630106154390318238992344370248422550521702929633011950999174671646080614112340483900230388961312381868299030236489528543724362041396916120154132668531586492615171202989300819501394165752257219703951607541760306097768124687295672680420782499308685225727038100878572644373917796990543606064310850817210897292207090048243131054533987815395298506270508679636274705066748132568830503416525044271143748650802461869269402192715808521027671686699049807703705612112609042598234107315505601835378352080857238713950757893843354531876807588743233602234994605849060913814325568543298349316555000018972868180356625265225068552549120394647874549995519965593654542157983901071405624710060427915287140462413761027623802437856925209562623045818579599256713052717793402711837087009095769234310431933846879574410802450452726759496459829803498850288608564808269412935857164146216949505814447958142856102769793632946734934762552587720798864339636071863530677841585357951566804024390346970277394218588320132340834879440470798731091033440769419399005470509089608652392644936435865609288996305780215307899684330634758636457750468581682581516305194980376596266197040813201790451659590256212638093344969610085333477498869953673797660921854281015798359905087615379071338776029163321624114512688542735919455307786750071272346166456029642579676196891890903555844648796727914589990172294431582769979259001428825396264835414259511754757350612880861447659187814157397127572049523938176205441626252147478871163123124226100884266752900990491778202518282434713881018468845427517109490989893549355986766068485630226850475810087953630375014648919069560051039697809659511424375456265105146127036540064751770882055007840830798849795843694552100789095142898379309377893558233669180302179733271383899156280444527035595753655588815069438611538459450617494786937847756001713421179810095809115160005516450544429348451701572931422572968081300580848825495015432708955322177963124952415507815515719125031806563065257571408703301462592067111287769302727922281165152233640473620559795585262961735606763432510146250611774443417568899498222267105569407344948540332628012097285215588293934481676948337745475620516365250957732134709488171502352633246858852733187250043975576163571357940735137409494015582446628548585960994147540694008894762669750425812455517605010453401159295900614415800219908129182186648006974966628808625020984657834235977648016516201839066401398711861168148763546998403315077164433064417955957018092021868654168613625441033952956591399900180462553966685892147798782192402562580432574449376232817454289567051019948726141833052298235292843511455573388083544618556473508139757004304992078333339239765080883245989856497827615317287024617904643251516242586119908339421993619113203980473013407691003285764566470969804086538261442596307576218973221509020983719306571204708852949650073526634525361956548297294501051136140796235839627034486244016431881409966203688105525413792351508643366040930353155985336812744945995118967899608907980289322041110267677905215452640726701364235455590498103764537828584943017294811057860054347193498219829972232031681695320770828338664902472164627094545688524941903639639140917743062442626581788527420158912095437564240416237325309837451548093078963645840701352523753657370858342384309249138309269818080625289318702650421701810915944825397513934801171198208350322033827786067660369039254023921432614856962139305853087569064077491378920806343245518263056563205238021138979399949110248135419500725697468312936562970706657179296269148258098433360402212976796267055935997876215292542030449195198188818413698588428179336524500928764202735933554521015905735632418040457060807321469814673166303455493620736338687995304759995560912120727989287336092016189888293173887327339133997135033919950434550367900398702795673332965238942998999595710326547239022597765225869424032463912571622015750893114038012759905038424500448544588829792879690101725505792078329404055924829278250689821731668109240592426350587901369981839193493112239704513585517502757647098797683906305520811977027656087484819637927836579573195057326632824541956459572379751302991917090523301072024608374798174600902268066017617614998286253329859951729267177111016734279600881296186349127621724303049664989342555465451532665266278226859982945048916544689049056868076443733332688005868289566938342904082236360117618409367397344834563757506524744930140162268517133029293286200929862980346004991746136211687519210537494585295454140944399036793232641587345068081001985774227543138169202022943283118511323607791398634734389118233054428057944285685392544099159703992754875388099782596974971623095174391798737092504258552900129413429125771604926946478810442863801528721733804699986263624568722253129686798415992775662909541819161370163928004887695714055032693605655084782120297598527085562313046102505436254566726080651334868670362286611429250696146995032596405916142572882508764776827527612914675489528603014136447130264893303225384036581003754028429343407625194961146006659312929253139296047963141791304433901935579485279301414196178925247907002660291510908553876394938024013388015969432331131122609775569640816044460807171901789684508080823266965530920856710519366744699971112101266483540222280383302120503686595390398587084911174049949546091596086933990321494996750758868124763869235897922404941045119852856840118115202172847225312157163924094494023502395738734924871935478134849417512357637002151170759374887425763072793950135813714263131929996800452318337644841169517938699787762151937098619344544620071768124833338029437741064138270430663039735440662707531558495415833253616482739645168978509279199622991026373728429726520706318511317879726823011103512702827508839723282410594819997900979362333529710662678997179949950409180968157759159904910985988127070084385457958744697508038213764798587499747855272821886347786298700460311428553567782084081694446129884966244105968799600737066404313914861217030218389069248653486675454748287557271373770369640340051710765863125209032019841302013690514223326871845799695315713271875698610299156947125504562341780376890243860776726683920724054737937324174284569952113553396175282326491315438556249548491315829002125625506480358386176600310817755982032831895090316847861276234656272769825978847449524315070627655130576462524549125764768596274330560921571465608469072238238945629704606963249857700202512622530773430006872224503241746936181987408148923440579736530317729324512886900379318786276365618646066481531800217808531457525201766636475981197284858943827647959932329935369153026608074160969462517153645810960396963680300113695293673149435644204084791139952487390053029797234165327389831300598671996665268046465964842063795549549254520247367949890850040034669856248842151933512002203784530589202306005039472596365572224892918453057139568648401549658981607968186348700843700542797620382494054984791626334707978014333042424335062744970550701109068220967398468563920928217429761085496409956813594936647887179974893861454635696170033005603865293470378931021215676362035727289330280766903276686245071733787610161796325160918007166578351917636167433905716722770568596892168305292757382252311989106938836638182981585766975440031147366593433447736485860956738833054018224992245282251119739861257580271184896053241216498568420380693152768422212113635685123452780837645577348993394134981570270117122104298720870579396529464809529974076195920233773586860243808564373787788441670694446548055868197174183863292670128710456102369989848932889411804458550056481302938211280466916064308405267060538953344463490106481481263248699794489427883206266474616335028185651736753007950916622456054125660344367275192933081472592419288607933449922674224240203269517995680569288153501123269239824524692649184033935061243597015792236803756456411955574716501649753448834955492611803040869824555930735862103260480625696221230344067945781173487321093580123380362181172119141023060535276806133633953556948201794780930807114523216540013687367690941593461490964749335685653987511420230240211041835157593323563532269582011732940108876810510447437712275332162444706139987348168305239449891197610468175395122305241309282774203071278498308854544683533819087205493606343951876891345285467328246160781857176697338592706755318862926279555011436651513626096642439741019683580726108913342675980971837201649203233302303406493201828052242555553808083104296725377315626464686503224376991810682201948992561930362905683313754786013699716771615423770318179997205491642008106362219544169792789296397600126510028478619779725663725214647922484460841271514413941150617054016784983803910839750472366831595422015912267815404022355571031612002735105526030889278640623720585924160712699457149497742594592630965728156617377271747381714768163790815991974689584469989012657804275313454631917792815482838400697831455654679052382425868685922487153235398058352558065916366673847752458473706463007402547100969400656448927989858299533274721886624965983849178531871140089068950100184385238546034437655110481100067381342998320764457549524262028233489114807302718948673110514625380539108419540026085909073160253629092611259723823558028590464781919723566460949063047088367189041985174497192966742061471145064327579838205296365706759908601482269078409922910047184092334560923103384836806557929714188041033678649557974310440832280845409797051936480666575092348475654411715727612478763435179325771797965028350091659061772145672530821635335738552438806833275184477832415622889849832404398611368363443279182308633902607331362881877224915636611164852271309293437181548683118295608082589952114977771314964131110273495213403204560035583543219825308566121977412721917055365855979357977006144131646432911462175120665032127676785015373270685677250885382680301583486617243654893668578878262637251829677698472967344335993553020706829226870397606436910607600270589473367201912171785200126906347676010859657348714954154862423626624999496866801031464803432932051214051646077707316299714129278152909129878072013651239258304226149296360681216554505578870079425840474123554870341284281165453346206414484458035680588058073187197753061150145246861548201358842858967094784608871918837668582761795349658908134241324966199919016056064120416981045972311444958106714769839215918129944102087793873382190685318288570311576990317615663135847457362783323901123671364279349604296340536624816331621293765735477000226961511518924479178343086103439774866616351993784905604077970177050951639255320338037352461310165972404219125560588929701735562100450905257010012040010892853985468404723430566298992868642761431172635998513881970649841087520131119603288793400507199827382473468758538456853772812602473744097542105810811397069643045493688695160784872522735894624952896333743982995121702417842091868487363752105975159632982906009504412018705863701147763879908178337532945716349359970646346307314739160564211726428141603930347788963572576838193148011515498500264702925018092441999888565523590256061012320717182655967228505068953749064980401224299044253848294636342376311628967866408779267979350203244917072929950060009306809187555842368903912568338470272532436486216307161408879506264574861716886416718767151113187588428195332983892510489411431728041171050739965494683637164540197922508465251788916054566235722062827961666388412363890337749658516520619438753665148951070491985281765772721378691081069895848710975019369103389159309925697221145444456711898630714197120831035954843959509691418988667221391245586343305166222564624966565510338170332070117485471659838842397449750840352658616205712859740291794455231779331431808236997146745780776868721596841112914632084118765987979152925851168739584252409583336038373175899421207251272327375994747976080940851854211262615667481171658810411453947883024647121610211399361907844194794730821570370418807716076128476489897233722352940798402902627072243604435726647203843976639084757542119684898186473532035752056900519092826009151775509212116254219516139169730471227361647945101307207635513762024111797814041971759984156778798162460721740315217148830613676592294260999271044205252760629750417523223025281761529650740380945886006504892881130200488688183730248568987493714958297730863340194817122522989402635158238978532474564835520041540597187216008152697013347455717736322092671378830472089361671375903563453807487106723657957946093296248330372571317802315990792090519874019888161542700260989363248366828848840370422388982004348719072662550124238658253910867579089091976578449670195418169061297841884605830152257569598256858042244949821152601885154996332751964310042360231265151390104420956278632262049853578973117439230010957293508201878662329955939486580625150909656533295972608147807274203861766101870738483243255952824975115491054063019919665402238266321672405597137399634088118430203781089622296128902144045532927234352788635046017478933577162672259298611603443542278004993106239821490296592237156335320648009058407691105948301204316226143201988875653289191160886538130693826773851548098285727454007271216579405891696246738567087042315570074839397101967562433599634066767720948874145374446967747423259320075678447953367279787608521047317132337352541534292829184142868319231933298970901509194127023717917854353996858980190331756744984884548657994338854327086401428930054887870220201884756450264631697675009184862639546466619277203847205553641956001505057346254934228535721248450744747383421818105008205720517314842065011095537506555842820648639325055302088878163812095175559316146781808433899604474955897844548723672694731494323325873955914123971311817345103873992834422181101200660674436936111633667951064553593162375504199963855377564949903042356361104856394857809946716488551823395266535405735192053374394390472268157276314971498931283626449691302403585439524532301622833918952245881905392326740940367115232483698259462934345554904879115724600401351234164279750828935937786959510544107815813317936473206304612592292523997816442436289894831884546156683002108096547386933590997666397818739569595556737379523013547782134741417150548510516597310368549135613544945631692963115291593609722997081432861300226330891327915069308307931238199820484938320151753996092230027871812084165565896322843090033575196931544679200672934451980222937748254085394312163240438618900633122014828555386149708379819812190596868686395575069160836443988519510691176699368404829231876121049137433416433751418129835335838771360059340843970695859265484411695211680107503753627443489872770625075452789566584246276943751522935787439016768175623023138181845151842717281922161448048092502191850989256182674595412452520763423699192016311874783768576815524812527026824891380659662054746045133912898343507755669304016704509086333062601361543539517609690997726060089762773388489190324384788679297869143307747812011430072404494816940437412971098904909878455205372602338426736667138691206485437050782344084764081101435052500847610503106242054141033852425065104015952517883156068519590367940494900978696658679361761516648617511484563407484280996502040254591057516388900513256138482272684263649403657374127367116440915759691160750271494724416674077176839346118177620216752349765693320704037383036893520155240916636054025291376331352039327350358964720706601597261115877840333051844561833290525128431685242952926656504602847149740594415409175284320776132336153928441129971610983115655645992361198321121045843176969322804800583424614816726511632730261058231041491235450472977919323976658960826848182856138521084044534504793016885664987829549087757879244956191848811241836504121354733344875680445043686431825877269029203751637226556576290737566841518049552624474381397742059189524950141730738644416115600877913388142360907385648297415697573003982334262382838523163421320436995415064531498640905870466521182119963458569098938745790379857061558984322456615574963017784069545434368170112031889573463435716493973460179305822618964188089159478173406647509443795791236426074820453171879444701328462255480664925581270340840960246388770563753721271030679346425102475073253967911501559159683247214596033890348656780023611283966823606726333735741507098212844455073416764523779087533446049676669410634065220852937861503617857662753460344933704209002101524482953185658292950470381672939475024105881174562334190283309105900030552539809667716276451752399577125607009075085468923978593872969471067447785370201145391951112563732788066750564423483580718349880292472409220722701478243437113837828999324868947108059083914188737166746577734128369778483594294000792586015477691607904737623782344243316783179556133956298565591084557814589293654040707638849397726844593446632041911300507629470586224435682519321230112500624072244349244193682458352414685787148521526081222106569790645830693666676823918484606172907748220669469921961897621681082119784008551449293470668793764873535647087314672849688756083270359885724789435215641163584977489224810314345499296384176019301063807341827612684325699595106965372604218499378373743841097569512338763408492771159710408415617705477321123477314292011839926866313059356789310394545819225622731346560782477494186860669521919927146848954202486669707161428297544796041036591640211262127695567834314865142679429563360637238433982040199867886770332289073812435113492130965762334106503259247924757284938739587043335186558685150939043476252040875798331017895336398183153331934160164711339253418425284590006620359810383275107532640417510378022471354756654112839405097329370118405223444322623516328587761544901090539561349361552799512169197618349246822235722861958125501837720551434658194947614279854899737271828292422907267255260395488688214717281831399998495357388815922190015595553922918991729027720409916025642083169932764860219812861335314563334807620162935652153886080312760494231259431059269040700740278625551513580586864456700826377959191201424769673696729819479819154109471842453939885225774096728911664875247358528515632973845069149623410710656429631450002043605376762476787244958380815811497118955333810855355555943709574043212065415424147397679395287523374528447353216389542269472862407439906775216732807145302029024688609213229397232115968614793260382447207302498963339935450302850415598661624493138852816571381659768256186415884488903208613235943268719511716914371252468579456804488477467203712240405847429349614160386749608037851494396318845403433922244431826895381531090119987830671062152103447154858173721865333786410403394692241556074983313105247942935360796745640668674141483104039824307367319979148989957164656414390234342512489638540535282367117949601829163648646548825989716248888172556070484702629544304687835263420700681051813966341933606320491570815286898127458916695064654647179854974696452207284551077599072663131103001024658352580433963025814443319668325271372198968981180269595214531080785814129465801428014023405351163302644082519643311154829642549811404075872384911037923532058823144600533214601226386686423045697432654703033306253367723059427606431230394502207640535473114699100300184654564645308317808596541927435870880880065068569916430808548982522592402299348623230719138568629794690254558289933310818059729138620114868501465396838596966900610649357113549706689408155277940849283189696331381667786408732636481839532792031206568770961102466126795743438854358592993493489111155894257033417099442390862596858668374475199044999496325345101070624666979001307039348256780873267345706674118545058514295980354452205355168019698418913543313968870698890342795413049349750766573538625531185303946762604600346069843702131403220749337931063099116292106253026442255090450101399943458095747059073346679360216093790370550392489641369125590628244723033468952279594760230695649687905947002387515141776334782238770204322168254687601500040881429778993619608009040678908617055928617693029431644031037484357463404156466703714098264295207222826542388160844311694146023787593025931169509468381595453326747882855339250776677565662432897240610995142764392985880845513779029878961218351730787747228285301329325113620009045252168174494889801897310112781952975232355631297999886672366585036094562347297973026002424463889252845266613113450475605874834285894405130943275010670954859691109518127950278998369762428841050770762626413140037127250943215913704287256484997119520678457223274003698491949607470279418621809415209580386087501114808667444878338119963974580153296607951435784226445481907965340316491312053506115100646578396771392212433255732210799430538401864127422937024162171284701252204424318867952471947217750706257348194718495858774696622546696735685861676433736416958526253907587292762558887497629637679487820861675680006325036186609438255984970613907961201214669023442403717900039791560353903878160804905498446596931498132562560396166770856313142168667348056173918027473522026268792661384073316950458683976693143363786535881836276271306086993411280450981605466538528706682230349786004666042793696615810999659658590843890834460235296201844462679143798135711216655855037107094361968940748399642018057883540528965204970603840500351964197648261567472537902062073132169549974933392957477197660661982153630872672142021168469292328610923532826151530201557977962625271291803515536697415685991488638115249239436563242193600311442128869672744795351103473719614056871747705893495947236074625390862475596335568597004327411593314671203152882950445409297345422268737350012430851313221516432852643384657617261909909578945588040386687453352131839418742945829046913067920507946768548648850418332356273818611365676616263569859220976844733418596952984122215090497724551264727320233265076460335746527019824207913668583672310657918586172814756875475494474273903535291905712077349728715301702190455959224964474579853055053012326864976240134664576337089186145788162867033365193624182604724702236601448075042429538203638691550680311102715090388045580306274994942688530724029948201011124383404525082775176740697012875049457065198243272608581048327547732616006738836867428114566526472197076307227183593710581220598852011320611584914255393467132058902555501649645729245531454236276233897437668230614159291563639424616876645328616674490223663086483357755142137081624188690387883189040428279844778324750966264022615796646660895226634060930609802315539155817231029632601707726346386853955452107775574425204137282911285688358367226421140351215571573094460407266228224497521468067554017544715933694729388699035301686315491229295262680549033000943925205421884766708996477395214114365392328911905178856378433242406484175625182820296034621878623407790019583669418842583810484472070761052505686883429984185309104765311904317281489618896679253496420244422428297862194859925231440672378994417303602867703354033869699358505359024400773635055324956255998320009195812934191803887258850170506483365076921366581204962223093689795387175368068139654061397672758500269840579441722472221743786302021489045921542252006724579755341643969647086374101792453034706373288725135659528733130410359910748956661838346652725768855078116052513208598519663633022790911319616141163635643747501556240091624561418896402865059422904485928976471344036104120557618701627085509002681843433499145897599574257474854143924935046194895168161678562870293981908849077663597352409413237125744417357530284022245464203909126222762598380137047700500915343428236765696433918274928244527534200754898343990452787932806083881240105272342218756516997371994056160852423129226490857521769284940954886492757110305526573140574057429578094052014474886996891945845580216886366786990343284177253970233931329374962687649261867693437737432390628375987675628853918353027613667171834574640954086340956998041332932105221466017511732819627318720386512701896516728456310936566326503216938525803059657013974346883176288128852928101886795181162903292228774591314396223474598894929483466013441819265369881236056596144006150253736493115676016201545808125140313988504845641137988765498285131796599946510137773631656532712970520474265174613357272225261522171263436632471841926311487173066158568099496338589615380218228633729643954416000651034601617590633203823906746106490205446623948402717693761953374425310279900886652770560620046765342808345868602859589923622098530429270184973786360154484863465486132220147628793359341329291444664933828005515581211018980162036655964380084430283040241795599233953987712278803616887484473224800393982080818492934991595157011890666292914955076676218938322342799282048648231655172398285578113442893405985785451033825453323231204744548631155345833650459487658226735776584095026161576087439573411954721033242043135793879768691752537956769484280516248382269359546345890879089509758127294451917260181570439585749621623482217824843447565424766795050583092451951214772966916965614190175918697346283957902107168719987071266881632076604478963357376474702024044527750498628432033788632236406496321768622339045038282748580201892359523939630986836789677827824230778842692370142928742735612146106629616338071079076705082052836055132046654234985279279023991608989395711761603255449183433060873306530866746230222835899297587354728633356543484701204085301428923363711021433808993344418139667827939839109050074279796082488249889477933745945438844535357010266072307610045295577465340056559145382231327869133617063321138313875908378178261315420025122144437955498160919108307537076058613596047986939247441298546329175718238439115979288278740029526673129212682362889341501407843797710570386453136822170864941204406686057417361485211185548793741778226114304293678325067712678273238570961659969536781634745227070554760839723203169186341263913384586900179395655376327191853499137966978566754733220723361298970720137025983109982460466541716403484928081399804231809010820080114815441060096992243297534582490414100170572091411508001387196270268433163062036965821223461844054946757988266594795460169265099338058974861604449443903848537185667527190320793158822875674334054737931893693706411430695820157411435711661574075692578170963567464121454205320125572252530109626463335347237362951435387736666833469632831084602017192516027360038023649214888198169323756673426533681278538787365809680987670378328810330404041273302788218584188598737504021767912228149879131346358465255752284864202959546327911556627831849289304815958244346603292018071169451179026045349809653650332610885423515089552753449603407679074250776361991558117581850020498859973434878868414490486527972254321915214188367973954232781835633347959661997149572481539356548205543528264284510457721936486897857152316478400200922044359987321291252912756787644768758623523016932161562678564885324269947536766428505666963557229290357450145535993453118665330094046964659652166122469197933608095154672228641570876367508396607094775583424700448169430190715854235355995552714941086294274296356121765399136521569814096857156078407354708106658255265091465649001290694200513684998632924201208101958279112645393494869360491713063101737352476004105694920124407054183516022937331507292348432500849075819262118050876262659612629211203225973908702172674485395370970967164145780251314190658344215964498559102658196922280566972898951994622053666586346211115739784876741794698828834323011746560359654486388083841864743414595928303116860386122215731616600578143491473815964237330051723439890884093462578880198824648102650436551592891139178022984187686511945687322082421457183992493102303284426519113776520490623378809054848548876079675865178664001567123250863001914140651551437098212152410827896821827675933787593437294811060392272764223537607586406805887511681058351163622416607720170189021063919372313119926279670533125819927020155465518116259385667918929262326020612788762504682093200334036412968667926449670369631111054781969944543183404844172961402260456273346135793704262983104949415683095253363952997085877888800584726189186465625385538960039471254772809617290127556069570131938780000374579636927474213533682497190559396371920318466338643672913268269743715696207957106538325414545053073056012910154693421678623190398525448497522153384959222526523621615044096200705474381946382087445507216674853499474367441445070095304882263927012009870088462578161803697697426091765686756554304265101219250418132346993526528142415640918047924659199888636294475266737137114733106435341413927048050743979097497515522195264239690252960139901753944242651075823733383642585236870785044348624011328110731097196627293128271380657442671116284550276816198886757373750710915111715027650664059049641806914311516221003173706370118978898749335647101925723847495837691352795701628978086867012727386069125622721623943415512050491541124856591494370795293826749852847276164596565215695176469566591265699509689303240644537352324399203147543688925871491442808252414555249985554912270121884763235257760682904455690647908117556264075707950310235064766695428869597777866602099239577495572688674494066324883813443608139391667680200903900862772369196431486809129079111633978002451787555786605155773728802643192444229562653358364231728253654521962283638969539737577176242246096876560665492767837934830944951456995219951976896558429919491858912920212765905200629479444975789255853280658120725386969560445923213788946331919143119900468968141858414581849823899226288177874307947166495003928801276465508004797915933944526345899489760080702898738701156567980008652736903687944593792576213399176572340972557026079659430263988482512360817442413531809291565383381764779040882670018760059102809189087011847806530806332677444119271685465823496317096779305024321060622370355301972987596730949296030339493724494448206529926723542636354066067161947329867206501459585810727989448404374786042060817142664077772544812410976907879567988480197436806068801978125221026666463985418698821027708257893920331812300747360468934280840701103481650849057008745063587459074706829628291916817110194138464426941607515630978038782680549410854667415483849815636502588846853942152546443671450783426143880564668004416674950035630297405160981279191916436075078786198090854217298771935392861820138998485685138932027354069195184072272365929551053390238000497298165041330204532801149619936526711115292735329778119410775832267779276348451539805534631879033487733165802641484095171144026640393021315778993314029841908035974964499885318929343496571400069446857994887991550783648962545240075126604634317850246269341805577367665337383130523662320938207892819126567970254732156217073390229453703287652057716391956692140248256269146298691984321297188927923378022664475391870575422230104431361397970843391263771503554638126111594051482351074581679777731106082693897666829597119835010835358810649470463941559079275709744678629544946059391133549846205623533926467357779426393951838682628661396854657514322110452944250978782787415541289980339913467974113059011636541888183147965771984084100318407457339217746386895595193774168624281836767567830453768316340030252299113409313096978170103369776132742637346208023105540956902520155009448265176193715001175827218574744564372688659393575294250284950197456344427465743849483866773770759622447420607372333165172848488299749552290029507510954819544361728138850800638836677611212206051816384976494809200962750038721042464867585027229274212848313247224817931351502793734742685851935510638991552658697308137859998584630661217908063226792971050592509762501779661709986650257251392510324793270580066591771115026157290216864451224104450414731828299599092407806023454854303972191392008533483662096601717365746233458261677531265672000462801506570150099741958016440902184593834330229017416139569568375508133152966562779786617351363671977748056442124391745648075936377653750887225982609834868988792350186985267569973058414869639705376676112177504111632052106930179203623320129106126378930420198230871378577779448794748849796413063291181218248246626917537694754979864509165687654752385442064435234490065505554723069372354957610911094823552016447753739615830872784292640871814257771311533384822476643293528385745487350356585990662954679906598232856719281992128365323952915731337826726975336977124127433289652938273579346458372215345676400734647327295581031321538509459159465162014544901377504318996937010710975523190441253087332226191209979762384159810445709143188231322556795082658711931457286374101665987017683179058994100425785692343843080225745643693070550365315986039535825733795510016821915478022090911433706419781871239301876874335914905076557494472535560252950592770663991178646770253702507911900858694771355959193391143893361409149740402465168197407536025124918368649394167641235426779456627169167950476432081798747284475617859919578779460605374966700305956121460366099886786232147864480568763713767805179205526498827516157142098490300471377082085045145858989674085556561573092753085070456899254682486907598329196930981058103666975306101698047582516593321933835968116522333448884899226200357210888101617022990638265052482979482559623305691315775511298909287671409807223453119145739693121362499440572649664949591526906946176149993367720281231596915572784983076785703854877333480491180590218112562030714449614776602775467364202223308133270999403862713298068939038867370078416911815982844197708784196550422305536660576129598382181412609334586127619439294907640291866414471716146106754986925937701201125791620622468122039667756648068079751437193597122802193798529962598725799547646442130758004750421819048093518180067134002479588839523768127726751866903168465081212217131807604729731546409865965614370811661272148821014938427238802667341018940255655154095141734213786745845712136388910847512954222890707184078746789286054099639444130887569111615207058615025535746163593191314628184299433782579462862544342479725278097572292192236593169986990764096193232935452384199710585935460399249617911445420362292934211570438151891374007583422218927414194141361262621430010667412923480274004892462326186096311931803706371607473742912328334798174978424883759402109748062452881470442926020992890316041250702946042270603024275164747373902585048017816026900603875890832498580401291802347733640662854937095502257331882257450964298419660969414095723635928071045866315542154482707632263894387935009657940320861683259059926621309412611716185515043460974335314940892167827142031470379598528082386354976478724853071969928644142456612331859875172779356227229040967588811386011099875844651233479055604652470823359068495529097617117384184478212670158943126188184613366327149635561514056232053174963501004213868736466177377959971706432436286760573523582823987371508921850608216740343531827841576258334228486652384886176478615258052259754246368296352643477513445832465971611584549553517719191334202440923289514403391622343322808989338033657169471847221934791571422156571154912695939689365935996284740888822258847633062318500885681506066853663196398033720730049792546743747232480634743315921510917477036596586186960663166996116629879251814995195395451796071001956990472642360024367889671840565121010312877747994871936999248937799177065463294222676254915513662569791823293524415770787558013668134016747733533575126133444585641983062076974320412931973102336758194747422900293969242146261844877698085731662678076306157372647677344592177457054701723447013782430785271928723899045770491106768931161414274759092469983145518217738537301867348736167577338165952932029833643437869159468374320267306201821728768935494770900371844117284830475887462824659430588020580833088667774744963856309045713210376699699118144230215106704341670388422955518983231050969098259313128182625034348448490907612623237650400141382741353725306911225299868081268178579501629319906415364475921467537569972137753342007907026393120061521362503152749055441669582166187467409400396611465260633558436500111622619350589904485354219226086738923183205829227754730578811676883578910891515154524452257542234766075488369324974857474000273775655373762673567495419910166499147738187658870999070200979745739880175785937735755640048136897974342385039643402606442709051491587706382948007234682375489100055913967346661505606506909009683349803106924602813387881304917183697403159958270168142570902509161362246448244266716713480901348243988929777906887769555272765882720074589983909508473331037036731846228886769100637429137519654696709812064683070274153471359447355047479469700023696079410795131213399377536776119705815421031007325749779253740432038943161361785029928479011224594497404150093509281303707014134817046234070555056080400499857095651141346731370741270430114208319475606153662003076417897670883541438466421198465998385157555761103798010382677749815952811538432412407271394747373082918156947676445333669223757070299266725975870200425771742606832253411746714218589744180815538128546580517021018360200299264752306646993047104152762406961906887770235007723940426129184463622587643655581674715639764898895217227171101399484650484245073760176787202447389505561603026705910255969092055648631525937365503516911234538496559593899950980658717704371468090252719777762150137589116888612052156949889961400160308627642925331636019488038098923938579500749351633182813717235791367573042880576078949712990850603039233276780377769109500405950264523823797772745463281020535720822010537741785917433329970060457247091189944144909698897397246362101434902602495212579305882142768322007639350637061886084303494166333847623017943746417775219854899118631641082217534133604941732272073033181126414216045648989546433680911599015064143959508917168887008473888862645845876459084271456543080857339865830976911109032400109555646263712247332289816193875329771011237134311348864565520868449303227836491604331571235695803079752126851678573677347163387409029962498090423961650048525278604217689157289308808168747525084601921102999702461554562650688346903565395649029618090626887412648498510749853709377947643745609641564257497530693683223231644144399107137924480219326750477351077784450596498298827700616659554834123349474553532005948774674636862053064440960672851257590606721969278980755500204626470611491972073526064334074226712621611494630154979273591955781606698281801904208224014965263534298132184732348875849678534977806534910810840264341922964995558428258015802126757126728214337273034082916423487848193464773869170606000169630497692766328265375344174868425648879414313632069549538601116691969135861466380455638434238467428765347123945156713141300357389317666821642494413797013379588129029918996904671559614478784278245507584861200483857654613504027036212400995377738368828593143344819457068292524237961075399216458531044988373043484229000467578655852491621759713633244442940646498834698675424128448007935228950291248458598357375854567365981924632306772351267591392208616814887383971469724195297684296497636094446414143888311909628763310784325458938390161892344818043608824969500422717726605095958805273400399681027641700661921919828267735431712055133541642828937419450871569909992892167987021926494803695087738779831013203078558208660261969137787729624730803132408536830907655262816746083815747429406899469402800463607416359228396337498908208145754832399116000067070957321911057082995848203134942053571201107529330537686285943333998622950310960684628609882307937365901235977081891795333013615894521014862171501482833040404257139368421015755652838052486074960789060453178716045453937960844932893751940136615923175484941722986774793000971415245302049484030878240045166175295965171310636452530098616226163183889269454655639302656559931946162156315138245290109354954685025140603914153378182571680912206497251997994489198822316222046233131729282130873165668358144642511949804285311904737465507969419610091945870953722211150640780205128236167976056600098231366216269596929051957602997286931582758782972255616336182413111151338114142774761855260765009207725325206111890942016834642402725120988064535397992748149927749502006614380278058609238134573257542103495872193393822496927081489582879357288086857227054823577330885807095007349970595703078428771844801506601215086077970300697490528815004314222904803493372393458675009732027784679851845888826867134584397237876304301174404783779581275574644960221202047720721210603144572945500371586600712971312421879016399849832006345024135231407140251767411649755513855307189092603894866801096729637169779751313191964905390497144421059558226905838011793028385285275212500435121812015462856861982451824086471440112023390433178905443340941523866823867342477755637001181745404945224252007440306163476996832383252868111183215508714329024849280443381370627784345302428315869248076707341935629142282425658275890277373692365357105668936263891458114068915563103686599562441696400509392653619941120551004831205766057272342920748207850902206051514144326751331948066085684563224098659078803832404729983424058470450757034786709764683712782256286208719660455115546936733066007255802861148264508860067608752532077930315099904075561001061098880730093675364575952824629510797152169626506990042746811533959712448996604004256392110203257149611382864776775080856496482496305531533995077392613154137994477512416394268486230476185975262144312675087569531423911594239461399983143442128837545399209173763664966283849853670691097724008415737117174743039662901178620932718942446606230577975827556204927195904311230481915924795707882712849827764163294869226782880108348653391808947811219419621973066242606688346912076644135490069961448924915547326340710523995009993265886454192074836398036520546469019282173642861550171442818296281577451773372906357647076009433704915928872487406738203296734553829934497232499036919904655287822952395449827080885668484795524778335481913121441697558055109417154835548093496733523971100578639770893866280047857133932085019448364123056311950081053714660426947579374430462084992465554921500828219188323725810068649638077090928224727807893823285103812120170898792935472986403291987174785536600115416021584976481855104813774721019434003992156227722613525173974617361039665137551934822683139010144315565048195148713067604659215340236434622819878032682032242385561198545827519031431093827743311097805155042422953403965898292806144871099871575079306809129968538324846994488850911613124811690798321761134910373330974518393583869024113867965407800492648275214845144636554075672152371454583651394670653310389370159230647698019994929673686147003263344415956436395072445337374859032111567169023852076448884832223922537205263786718286912778313321635647892209341015401047522474243701154518798375799895657537087220298189786870867932491647337269387813142935109966192684296838380146341459621929137952029626356739913742853586999301401068924426052242326153059039847382287563685644007595692699487150372759303583351277899079767117833710886533402399377188131755078256023472282177538611488913470476504618059881865757369855954512883490025613765692136925282704423066857011140027576803340037171328398831002742833981969759289616088540867889500370847230166384816134538145903086239626748603344353985849493827982433111963621738213932443147873841886109409172313754329199127560938673072478460405133215550242976177141572002677532184680081719476634625085096316197219490477558896107699992277650845615919734834460569870346830824997234793543843392266434586797281445389566784836746687423420431478789386016447596649780306130940110280051498324373669590429154663350494146391792453772800371789485098789839330221831428771633902752288358920602733156399190005559238621699667144570622251457963894453063927389148234657961904132646289478632605277740456339568755420927453562092981812650015156770111078463625014728179109313724646185998049879023462808014365090100552441115361171214459906190023471855753272568458501165052334864410767015494354511529824721142977013243317123544649068246432760719888268521641612530431164562730118022927294286893382906305489284602016534310762080880085590949333079756429477030395316704669264105593159683206433177332188342051895606119629008672864174251762484275818943520400761658777793749672413745622828023460766096167747885842357264056098075322600298566318766825210386760198171743376804686992169307044124167997170822576838150372852612258460929507055666991552358017217114709766825937914081309636883309196777759292164888686357966363907772296481029032101185934148388989488625129943818651253455278345093044444564713267218952746656268712787340259634285583412690973384936613283287761319281527113797560599087834914285675031399570662456798834103536248228490336588336532995968375523720559493878716392128034400846462127888596929831617809451816331782279204453352187965250430420300184642288398030521575442114342564457641877336018814221791515136011859726252220591892797659071148203648999712153328425106154688619498440106597121024759047911254180691574884276274854271581966842474655486248589723814526334434288986712842222756716348832625227294892724147889114236754985893916421206032519375616815940002356354170806888143879519476002842503212019538350439627101107047962171651821763722155930718510182648871319629270059598222471123486498535213144721877162045167169841129743075398931667705317024710915571402138730241092333009488947440245845748794441936202709351472584445693040543637279774731702644113184002420692175852343564765016638860087581285623789661576762422254952156927310690415759700604547944775357153309058702884760115928023357015685829280793498574829598433564290995382093337289144208874845774764149999035693793500923904050550157945819638033970448034851476155239448180801114398797584241344049943346882158281934021086853334078832735332700680299944172231152549623425534924376586762187036180445927765714853331205738458509397168272147247871408342680318165623087785155614343009333730700181177743337402085512651395907663747105679467389493945673496661493486250266730133582517820505064954148792362949541371262224506945482374833018170897567406080669957624086521270577184423479664097224948864691803523029027700346103123656557115891614180766937031141705927701430278498544765133823662428858814886943156580911918250672410665655397807895436892153790937777443772397004601657097910890463185961125301521631415102354213723972702518756020027120406894737661057894382902248437353549024844761089107504889126745708287531829150131516312714889592927583756433222096751267983482026352051350705598068383515628329094409374033886431969489644856184601546379837287424562061992053700073102830544129239263949599405568321955930852646996093976370661429917778411934486945659622751609064216363158774891943713252246040495684443712550022860246693860219847059677339968590052219008355154873531021503208916499482357319968743112950952310870651561705670605577703521213848283686909489387170357979603938597436733892440076004975466964317046845541791013602804287418141057595913421270118369787965401629018985796483791420344223436447127219929791871708101926768451462413897224947203382366220369758930667108677012193541883168255037300670329748490096092629936105923243898364542012538693035066336254265774585749735380467996425417247866210751166901177363234689213180752498560368926794118717134426014835172278468468238255280740653406499211814612821455553751475304716960423483211974625517218603007733526068593794312771374736409205309447983700133372574591716955794240382178611069963743874431809581168573094805671323763099375216353984387530434986755218363615186933369913135457944160080034352641988152836814394394462871127475932189871397378465448010442363741327630568829732046593070097047148521635394559054999129070490062408735689455938728377562982984548589456277705813049718804825914686385083125104411095793709985424258369007973397261744080208752815348212732899189001051656876396491682107827619830617276942174742072100645111932903285872202778360777155391417280425450256294908148084896684494818179749205246286658651632202860381264232795631640942822832258725060069517584110013836536663770598380255489700314677398962042957532511833785744152170652122595551889051086571204511614270958688328128590020508280579458721971842610966128220747999937379751283967983675580406067442826472287652656679035876250314518645762962292671158495656796217870943370612773511805976538495337160749948169703647818165531382055873884252024110509879795709403851918018800060139774335797772595816240209536182817394364579017973676869609167293479750837138500582314894066939809326587302588273098836309992170239691116756483422076163221307028147350676020812927135229284040745686829506674959012950882388608231607826255445054176290151692958810198022674766034120936113027602754280695514991515908510500976121958283741329292271814384047128710650643311171987065709210784136100182602394803785661475883552738016366380383030584444214755643535312347658873228902968995602379550063009986077583173439429387328062525946880904532367371221845558517690523079716358198288195486815947325914205886898154877226982603872495232244778075612435958371315437489895313375787258069136802780576096483821482697368653102588884060370152638705016109044427873397342863070067817569817101071031320030863056673902473674559725643531682016510808033816061817480025761001720028354724522127655044189978357421183279033022925285195375106994535157059148608439888013420629385695270363117842221613744192717625739939687233401858911642688545178938944862157671108067170167057097850491382558368098297080207189491524033566465040687399269830345760433810754305534064415792854074987797641087768739164217514916895998813024141693790660717013067580358581297576938023282275152668128325100859311356812785657873400116712168847975831227638013062346046691301886491640907854338914462806037749931742328725238437221901550372293962063098114525113848671393213560761648524683168656902629664106209156610296653380343725895912765517146641944709856605896979030741278462310298282821438435465004590053609227361790556016923898784542851919876159946936261859078199147057643590758565229406119603981038762518164015846933019308752780133602179263465165007716829923928215998611911775782999295865289127800442877974055691704118014693751395448252731019718894003851619355668655222920089822506915648881671740673482840510444615858538845889475252367626125024804784138231707889842880580288545776797208171654041332287750075576372196122837689475612732445387709909654720368225280579166144886492894620041782176187979926005211751501328037168994922223423066791591655597886980495214735568308201725623625905702035608786417107145735015160709986322203145085887835877385951381461317167635721409783226455784552216100559769801697198474509372151435083226142252673277109234879830343921715340328270561477685656530605910003701130081493454503971966289537814892397972669920574903770576579377302381457423885780155723275229410537722263500233054073003757353697590748068514136716791518140666862994320149066284249429861079055412422868433753032766556712117711807384872231040110522447043254010085297099059576614664174387837910783291725894055268133565798905079841378062467208876808484940476880077640477079010818268307577391571132387656564817441501225332922889625992344736254976325578954391093298003297607456715916082809865770415461169523355549248598270286310282212801475016367898135295898871626158162618364803919301963428803896148297026479087017529441487274794447231202088801395660882751768499489047881613021382835423445077416401043879689505606714868704707324549680007806995020822790085875071440610611516899791207134034768661285376751554216776880461173801281432069548151886518734131742270335274447800685312230477193694883203516003030874946431173180554512670547880382825422212158801954911661125189649509272321957331367155513991166806529282064837966684266834334181543488961024392796402787323865758205600998552319975013031529027694018355967651178498582081043134538526995336198781948409044481347178791155571816938487725272680827947206886107698603389649731235091852156975635237536882527807422172550999024293750458879655621975318721720179199674109477521620031539579012552820073043107687702494179353747621136104409972352048305547185683741033760195133701192211360857573059407146447558347060353177053327869053012283236254301055019070874000818079064314615812439421943120684942729871042647107647093244795425568453429768425713449930060647118838473306261387662631809439283163756042871893450193116937257742676123046568382510913201627843439460862056329849152724732802522438541743370772446491794835075882980322897239371252932416282135173830121771738822276496700704359528879395883404810975380015430850106012809829430113792268701889051020051623056664979125146039455800373441822996446716148729755741491813977225835249326836785938922185039468467771868862030223852972114247862963071027019430706353136263646268886768648975760476523770919821285914445158323102176925737910753874219928040905634598544288299978042283578034066496721653015292841525044035011322853395103268481905003098113192325523914013585928288733867022292654472729741474429031121645959575802846692931244263993935992048040103205757260655515499529811895339799138985712576761213886712837293811302891135618125079051794784103469437033581700645172304590065212635149404460087421325828182925972791785963078494473909867058138948296472396169052765282154163602648973785089963000645145145839789205476681771166822070501595819583208785670872809008917648765111759530323763940463964384430836046792475179796811301940167583221816100310867299631605801286495441023115716635317021895511082024070662009264830620222127562470986323748261581543898204536269393268530652491631223206492081993715937190822634652569113390597831928896111658534714789924612396185752023473936969448186602053809640688469785626807324233831466030863106525035735832848014108864755424065727710066657268999292088098896289313535654419457480692297185054465312144384247189394676360561828364215768168695363400974906767090846889340800146955540094275249159478966201959544807084944248591016341697512528690016602481158215503627931882796000106763411376106718862646158373011292360265261358359884884929220157874162972300031595229086995717880190365645370044744363055151779533022686706533619588593122583390791323438278135689331410195026853003583350477580803200280273112633172801265527413271957992554218522436365609685019531693271545951716900826768235176540932032093779544247977708242281536956305359324492079054703303621302742569875620668023268881543027757112087154513822341102069964205641285046906357726780590356305456919855034505438065581086054829345934200043274510364471978579768199800661062503683516308603151771276969838471465710950069268384259148931377884840894479105029965349713842941223190567613847365720476725892780873312979636741154660011665686364943634814097562088634373344487379635346819870388186135472708930516107837474372018625611991264009507662933546776043209875201532604685656417776993665507035770119594018963154885210757020446447390870289909550612702000458228768362032084233251510889746894176274342755349514308647113167280136974453521314212975425575103677776227463875943736946999497531257445430279832854832718904554357195565002999033514246002177814849873241675941954086931655462964679660850012878524436327032721206642886270231082271291076466705608842769653648114013178489443117954101138426088559683247678416036582041411925427298092605655231433830634290280072983941522289187314578871761370354818021526890145432151674608990987470637038818751451372737019146847027231328302672476382126246667788257050441685314721544278808413727960797504064235393213255797330376757413568274575586530842665327213775815420215910793573953708305655791058884252061302937526420205552055615266200820467779631877444201830561403785773733209110676337851649464751888123106712357348467780488450945189897183211213977612317611069415580536480168745666949371322977567099019828671042104446714240259696001050581234930569767727138958873515916510782729057198826633055154679196217406395256178086827904453931143407950931483636933003720711454314906694853665734405540785697953854685595733268173489323171344314054191541539030538803954398579811222393169015198937230208983080213498137474907421456431050239636481512439273877907297059663249416168701652886728036735178898538565783996647678005339349058963671761343772934055320608705010276791856640800793431054512623348031858343241980592551692462967157361228790222052972316291887880369164678861623506694662112055873769196910456139365382996015774565688368728540957698945766121367520990286476166204394181641750462923996859970514250828098049708078134213360561794252139164074922058700673045611284523203392459676167599293025409578511766049246696472963091052767290408879437902411405510117638305069798366133288144468193692457483134736562043166418668916444498445159834529139396137040817245191505985736945877929673624158231394407841332073648181394064759740063679201772085554657870247666108074285593933842709687628461656888153012548718310485322181671348455122373536232966795845013960949543346964706798354192714137013444582318840758132357792725878572985461017408750020548835384076818692523511714151078224325554779129942222871084740003620719476651042376034445403629985274505735757433771208457304094729206259527908248481819222028958072995674052252303635015900195850071244172486888661369869980390993640408010332225040658209313052655639865053849513568073846762506834822929311825717837754457826541219253788927916214582207366977887769559215790715821036902454305167241013868559009832963498622523933108038904390939623256485980580759519382854301930114681030040762793874271368899303023569930619797788148725674694369275907427999849321485034859358378143028647826399001497184447848082648564536335603434780401141867242226788258200486499275902722725312215751528610877200862680845217631442673677512095765969966063534165905632851056407211371103029218493719465863997433956289221788684442118469606090737399344126963657577861663073230484814745141177639383445610811386692650012190148963455677118535720049434551428556666792909393845326021372802667695828221113824106368842975204926122410914056714223003865152909305031731054073509894564808673023434710731870932908325708253180239502271913547069320725436003627927376670056577958697137383310028073002714708683360200627154708571217121513200779196894910862564519249059916304064430381145461141107281348539026569971853624142078374293865520272050151126398001305144211736721984031079975421138266857762625878326017653040815611738984236437976147889540564411270303083272181017356566771221562464595482072500393428957991891092119579266209552686463421317180707325882766198924598249359101753762348673984337394041212223484579577211866725532162483799189337116854157021195277759542673411132931502096945337347811958183010843564711777243349857440613866357685156246251135315329232665101517156077734797927700556604356832477580782733480935982817034572712996031503746000326531915655002385828706001716864748684450746350081954886493651001633338832104676720907384863386586051456045743797471682913252569778285579416091536848517241648828336194450508044079421747411281303300052058340393041743642304761322625502936626317670613094942955390925044804810630488105960835788028990984505469681446965551507122946287471747859901706431777778136326496927852725663581697080134358195989675114828798952883319455971050087364694198128972590166161686483730934844430405095642339678710591078596605998225708640625666427318454207662724660764036353704551703635329265168633425036742405673526961044095953281059169285135630688712468437635491737482560198696143412311266072334295917270073379034051260395166101528749183655091482854157692107136369502831928853727154910297467875486701421115258254907593772513896502374413302692047507149542557955316529898958265038374738188787159038475994091509448856754736094739612515205055745459808936833966687644568693478422260917388997961039426949373987713690930403451274690960046466409102724980483393640039604963177439325712272865440155581601070413697225666660012326812299287179013131429086781130870713429325114041089938877852946561024303425641085912738296420679963609094817532779870737177566979549545820439526958973178730184233716530674514690525944487282721694935904334524745894130965253689265166365464060495421166146678910803327360720526133696762282937511293562454379854052695736207460948274277889132658768585122139649303235641401171195786567032720206593496198984676898962664879691848138115553717730722256751846500601685064901471702485241523177282917777614192003025965759104709802103791970922835176438648651840775718632865376903572544440004834887403168065664265924400019866123693628569578808568597823811057015436544243386826677123643425276549283960203712839468341237941982112966793922523267612465774807639698010201169943842480721479723132548606560531787991323542582007329382874638007195677693820554347958292504478565335566346575581134900289224245621176492737569474570060451100652828936670012036438700983941194324566203923713615007264473739781378836597164786692270759204172734567896715187032184766800046351479835203784887673863635278032620418472228030736728130910084183804728001733703136084770497127721704553515556512885655306890530332167173651556951369318124569148931939097628631700492788112659591449156413091340091268246795643009669658930424102652889607869530424099881687823308312978433990301902294596712664651876993953192388789602221388473354201853014520781979398638618672630119728735226852195356850265027013194048282340679565355141991334112471175260606370157432124814581833353303179769925302358664085555576630081730880733640038312212011613568275149545093704547961873485481783134993243308196530072257163341970940971616500096628969970516585356182433525954488153531078333699091995144705127326130685269266257005271123241409301895552983099892352417795738655084967194051859130809631495992620838177263084925157105131833933705005072265711401966234758116809876359388254509129866062141985164197217687666985725885758900082168835767779419596112818191205496561375615566635566701547892213028185833513200430534272187174129507223987028575366584460369654145415610959534697125556284164965714584954912284232705316599577655107091020417992320577118593757079690501653267530434659362528840118098120894997508434998202993245619985290139243842774666811803872869164728459099820100548572513134277119017442449854686506782668774692458297487886138103243815133261208685604201738287900872122763970112893150830547565342706838875740138105204900141465009386654535751099630168558402109280854808760157895597094492314611352111887924116397083750270716029157053294441694437828792646371086288611095651654461818842238840776802397263919214261051978692884056799309023246715701818969592481732450226780727804127970660568762573261133581384870375093167565573821045365904646550704050098945017263548744761520217374481945745257239784885949421833251547690894223973669980085122495104250672354932203950589890681546886962926608810927490842089126464908103917954738164563718524530158609512389861024881747778188627083278756692544248890859667386140808580020113817175387363042932584342397273735276715712943744186419085183318315655993821533866940418347397701771092776232763516119483241485551033347558812791322101480926775445020093615537672791768098390660589664380326040460187079946560216366174166296309577319706370023893040122521333836626792083499598499627821963455577989179628700900815049192756946529057082242730595578247693038622114752025795664268076258675030503835747927098745848211847578865923541228095261959791789337558315842624924105670135234325593092678638355479831335248748569425862456880939168013667432155478505316779760162986628793797584399318961060343280697460910493544427089421525936794890739547676784407698454187947433404564591887264538006662356909132826465501106285336988556783030055351283563445299637303334664931171584145032974796401617486522934646202673246386295414463098959805197587590314369765899340993209823436849596715555214866607345257230436881495308618997962948253035908894834406952860045336489024673916967994675524002704439080518629676788093376973567966515891642087195135185864965501357704411660400400852986166778500265364302220306343551970103835097500969011826888377913225112994725940276214382506724526697804442548877694664080602167233243442527869450481544110401560338670633774261401895875520103818952007104231498830025494210171430892472547575168507280527170974551705787546410083546410630445384171869400357448359829567706285453676656643217183079504039867621306082209337483463264182048631267276978048547342851868469694471625726506997225094579976793896039951135405331752625828326255117727328621197452758919882680308579319820319023923169322306545893517014880831536343194659727558263349342040735086170756277784325817029070828583256791093022405879227946887575225905147372819734965093433155665855773801841425087945663968012192061734157651907092194365473358285503543340969017800101874244567292532472240150883522467087439809974916733727168582647587173023135108687987855084550251338206438089444318491721589988149988210210650325365247169559105462478412414230396860297917337854616538028536417823364571216348321643757540267753147923776235912130805954822580854302467470842688831583882748752592923466495453728569809546791370950157544503597194411210919181371437442383865810884776296991003557894139913039540432161666347674833736532524356505056356970375215922851566866826370832462281697962322775712175743809790556597182781284618467414044148517638422576577330060914544362824837577692075172102827648853255681872508750926514576301380439811558847498203918877615034804672201598006951724870861513483802665040117901411798378323659344388692595345620207834561411081889710123994625213151197929667410310380171233374361014340904515476995931504765538827422700820862755450690555922246278173595466075681961482913980862018887252685361740130073545326885828587743044869519709185899263951450952843380709709005123150818029381705571856507751223344628483290078627305789100529612669027346650735320206707576365148415075552418657971714445365280899511049207119906336244165157562367020876801399671921135626367274895527599067326133052526761879093123629501994249886200847708575357914469697480459948465486198040972378163057913589382677723970915232646393956396097256845687595144076393305932111382109663642553127340988006964386844621492229687132849161470961446494022106836618062858673394951698698808518378989628913174382484428943841307713619526170298384802815345893783943595122472089897016586424222547615170270472469078916935468388815827443986826824457649045605969927923413604269894345140128342100996226045485889039401934567337619188889113804627429534007937067742674476258259127680538021647377920387343599097034090065247156100488188920858611085290457801587716113845673500426917489204033372605832650381681274673822803786573488885359824651261081169166219072800459136452712349469062999025293210325235280612614075092702835996266300735681721941504041595457904373451339484579297029202153758154229829650518976153691080811759193969643948563945213223650397235573372324273150897477292636323603432290369432909897294190215314865723433940309042447505604281439162307628226038021363877725825257352522946834867191213142669163039897459715690568325861384730239663535273373841981796188745647056743872100229456472668020139386562698887193451282567138672049204763516243541689812802047213337773941241474021495091710782671226427750840330642340069469615910684647681437302205624508846486407099818163124901927276062276012584407858887579665002896209277101770993504256017366621450022562842676922848079986607555385045140487885105423669054674396728563397824059553665503140983208929597292473099436078534055013175327064780247282346656523015207041110504397797029896359083012500429831965244182326209084571792459594372540532294686603309823416542441575571684981520878314396193939149904225862533366875857158935668242370720759566797914681728811902330332149985616577925537392320434291675030528291375818923429919371081261400625588558293088941064020954011436820582527026415648469534789822609102308189725004647241941673435558535892918361141182724704583977666130478389432233392306320995962020165310652293658970267622314173453132317965785516037098218056887052802663615265781884219593460644353453939711335078793396217940916465154364784454590337215412518567525782381261295689273034100360669086877849033850365774181752589009476240374278581694642536763284591426291746458020895583941314269202616581065043242542832455350486323812123377700501087408725243712324551226375539366877267922155199753885015177986101476481277298422594085359626048396777165599523120382449741451606715197177504082559957714052638293986815022823241262221768866221610346152870267300936926145566961542238545534011563568329036838875383482950850137325612724049193855055862778833019931989975978206707487513218115476531610796522626171912717150207103359323878529147219757211636485957202028142044284017915227186110164203033536025586255103288879710531459060767130160717303282077503188786452430432175650088535574282127244885526721868097035379538182743949253298405987592207313228185287387242956919819508732181548595084434114565203700252460389030559474022943753342018897484961143355680147768451859850948239769110389871061078381408319309269342513247286566150537329302002208625513151848304718657727165140775103847409946063061679456348422502137411480708905034668153414262212545407795689174830516891346879782305382514824873393150088942203765129233901311121712919930056866924251902079072640917099525953178210633566614185654212760183629308874642958086991901097881104691414715203737448840142672880923253214187367942122580298507424191496277435084018163513233265114782722940727755266528222246178782630262003370278050875721720180608387369296668555761562477084904617380458915919429654593611660528240424597840028499856731315095158981639724159287369425325830342196786828342041838883642932685566817279275428488513342913162156002053558542778574143109420775264466489333710719108502730384281529512553669765168769441092679208965204397534048776716849151086081811789444267122589492731814330517558205817760981684311341870248291127327638763785573177598279876388639182757040075028045742826576569591621787634114579673471250469003052658649535154441256789818002712894362724207488809056924021379889692581440035253935024409029667783842511501703916163412097818169035144262486575029334890802889506057560077437803203295716003027315494218178847036273878695619316932660893616441219741476595969825048332161478066633664165849419277289945671373770578377964813070830650619556822223148108198353767566564851062855096298798559162810534383786782782842739194017281830414775307476978747581165818122186756064374317426760439800535594173068337179921733625989651146478942038843725410752274670332329758751403227488711627111443605357712460189360407557704655653113814786470515498528232749960520034712110827716414981960381031091784508105819264721875409694728274301655481587612040634612647111124488957366737414381038528822098128270854978598872842875061459285110307190899167715986028655360478725206124946957096286961844363338111541035696293277531775461992971430039400065288059271701364870267696261474580592056475548733495356091496925198912784640103670596234887151892436579053384944107247103132958909180657376856578978197125469632685098658726664465934640645109980313916289058461498688859891851041328518136728969750995093628546967292663663027871714946158467019764789738151754927283177946943631367315183949835000519688891624800732623706359728397568997461268866888515817001122955721744685725544598610555921676301960360658622217254386732900846473705293394882405485942257837291403364966651407748202973804393614617026908923511609135008071608941966042272190617478020332892593002501863151477474080436509539747823024545287457634644714284661419020909651090250487666662601950406452088369901309935954777041110201928601419278163970518666469102256614075865754211032604026718966700244123316789263232271579448640887268436245191242332539127359064967186376905455688208310363512727747942177216401542245516246914511611485651532181633794782001543529184982220856713326262068845480192471541067703821190072303300313943267596293207016220287056092370263995491293216828999895695905942406492553831697290349251843834959386977543472984454616837488019057141903839466867877753587119763782144569377772926407434887674640145960074737340635366525536997181628747126609808056712577901051417830177576216004129543951418151503921347433735482565476369905150351885146481215533065611853168976403273628819862999571956299930760650035142388423059801762630948528865528218838186056582925381365218703401730260983461268064989731541293242957272239779943925505442873546418355732287679172355152017278322865401486292545499271588858827804164699867865782061172157613780446216122811577247183069129198226307267454366895771008275581390981442072249840595109046987159202385841261771700428690354578870424631428614623985836574585612584585299234222416881753708920346089165191757616680930783040414831329774509658514624442093643579134001310029892487865300965457202637351435451261421774504728210376307179240284436618638069623323798147761651791858783117278932998604710626345712078830537422766064669037526073330002852001434302340132397201011677825343598455680813068020636346279647027619677211425147610563692418427986604489996100357208262870334026260627773080937531974046976232021448965687122746023459226053060551183291349009194848305748006352068104205198218216100081469038101179149865470747711854589480791735828880170574227098419355353049172257902990968392439952723900983608323234811747680500630399856403181148361174970224674561077195697877403187686307279251045472882700588021665715340994294962490463751972737330246344184395845210963116162903038825726947584110334037246229457906869772977218596046541244654243177527067989946950993451296971550517479418362588356581683296087566151461989497683700245478726590410126296523245306146130300231499603056965285497340346739018885886643157017806957956207903361249480223094023664660853013208042278002838650779327416962263002819292919048768528738506480417665469791526073261483543428938271200227198241930357095776726231831267768732908841066175397722223071783276208557611520678147038612016128649805525565441273613969479364675159813415254749405080123771330289759742299411744118901048273582227035756147449155195805360520877791391134053042089353420286357148825020437911272538132292266919579772431200551414542454741091246920158150183094936403221499898830099808403672023911149403471212842346814250216260352662121525412806830596462472512246393924963511756141983026415479037602486463433649328879982827712729865371956224005392156211012596247667549271439050275993983967692785151779461918755777671995689252312986478468383826293916908112103246103737138282073854650833422159667712065308613050901226959878220354055173570460344819457261654721289642245333412959637969952382874836329928418923760630389051862213895502983370124998251771477624446523444715293779474655307547573174354421067669207490711547807441923917114076122195166155135235775006538356027673716592043331275418806195851357789252186661229712718555376418054144259927519818647477004312825688572023457301320723718063508811096967676125249833004322406297003163623852230870059870094627304028582666467183310131225810519202266863929462517062381831411639298109924390764887165599603517275533035313975978513966934887301291885627657068321880802155406754806095844150041354102229577568525314383183464030032470245073005285044480897298372030422678203989044472492197387165465454932760298985323726991179729749506670252025509740833223753004052949850209907796249877551904930613018268756744714862819362385781107060302728663708163928393482945504062344308190892593650689555058245733184072387432807245579491828085096923202902314625917548345124079735340704789624605218326777777364480484308651991747653762938500564055125154018120230812099910740098424310488661095349524935066463867913829824020691501977671979591440292337238018840985205805556109266373366422639024617944404107819531750834216925621858136270430569406756612086796035632953557525369599374414653223469027673278764750428765160981938703439005793828758306678479528516629627970395460772728853713904705745034527087874118299923875952931941366030095202078762746234289148963355796092997305164782533249619769959411831694348574458323982949954612016628829272288224082895034991601893908754654990900744447257293689160051976297717868314629243771114393508299254780272914832294820392734358963607164877441726499834326194217052218305898393525676694434371215816611078276082517825161056028592586471975312310533848054146704401763188381403080630223240671836721266382273591456453190304308309411957662074567441191107871476483232740612017723882723663151872886410547676944397890432862088798227922172170150912332796956436125006556876950229380793163301667177219350374951241009545521590097616285498862954921270703618573395185166070113116207144102978521558852959618439450370459442230039349357014985410579952731526795631525571791137514573852943597613062992378837810261706795640320592221496814236227006676412596100781803808889175716138693518388399202805575989811215366366292381092044461052448385982788545240299052300715816369918126753513762143341938516529702402955977854452851133006509898600940762199493670185238707174433322500252649186831253448862523923901002113323069262329403965248666531954143853063313339404202591057708050081098578242745166412754308918617465125954287472511627022099543506644240453192563804431996771323513956254652007703809788859912028478813105769135041506695097938139239358464738688751100391920608047844293632127070369525582056109127082024281029739037345620957564209780189383101519514998752751985954407801432721851988536286048565359341149110965668186116719239586864752983794150859226420805195545468956290688661725333440828641356325361638798597097008460503550158964522744493097606674692632493204044025437545176507427504128360522794158894803186640869684550265135946289945915293543958924472041030532762464107317943025389686481398453549760859300794708571683736926790279807659479376232651062413102618274723520145887822889693321605959419992018372039354490056768060331779068448570504417641727189474050031169580316558455877659512760861191581064297179510764130360344649811847588106356829997590649326245708865748868554958321147503862479644790406893128886608431667947852604263971321304913084761597968739922423651053935518183589589232527729892487941131018650000778977022583917651035622586439419743220198700573097644212064940716767213471448645156660202040369904328667521075830202502874611117597193800955383153606937790341974440078913195489930197693234491003485879227902393221799501219362887389752750378578933446381674549705294155860298290873096313250225640254622748100064746348583769523229624154704043978098994161250996310515765344098327127801985592164473816257048432473247142568862161355009080097826104960826257444553969811105638281281351056661640074044596672463973053936470955137417255215360878708732814247349281433302502930966381851978050212575460041181757161821722920418753501014116049097316752727060069319932252240803704596200209088035253522249894767029478550369638228896485838964722924512874482638638069412582329285153311035999595595379526678201800774655144484940631050646788967623901796130720452945695374743439004117582330199010688367143888407748534483491274210196474673996048255263800581159241661067196267308878629621225608643868860040355319970455211588814712248939060368437551926780824787946716599370379903663778944552762456830340308834400448229513235077928904359641441975107938894250715853897571622086455973226579351694030171799758862486663962279946409035791224066859221301146657262042543676382214409555825159219360452088439578135575885347147096531379047309152928500301689948426462929414893260204884016991844441230522107021396224896868526301075857128697057094411379084353636504767341099334643884885566740340974824890754533958532470057175600794283159421990072621920409021259776338449013853562484976842530399854965806010391917073827969363921119143052177469123589645659185655012013908299134346196438275781467022646074441194445668047592603281969904688362494662941668395648082765619949500529521418051775954228701999113655408800214671892446163020726392520918219569274125725584643755107547735252454290456656645537417261658693397790276762669472467650681549357400120444726411412703941529829774922839045200121250637326336775958428440773255118273100484175590421846163717994474536527241509960256036641717137401402050589806468918524856101338009700177190036080489387942319014321753466140288695681796293830778501647863701952891897251370082994626175126041371604629746707308439992483618050941488528463699868144895734184167432947494440325580629027976597962312031885869786411630001034646417913949834023939829464471258680811761421404464873015471285753795566389841486386675386280568982910262655800170844510152225977891918350713071451014685170750392256815156707294555691644536337791874525537367021409705373107244052503672777494038224331174967624715297133664478474199512794180352882979340958644809971524287497466685396327825166064736529094320757147893707186717766296815433962497424681829941381791305395566232790923990100017430858133628342874901607923629170665742694640142981893669072918731100215031630221463600048099939433659200904740433447152972959270590938375255547568890698517155451623820946034825498107258321753516050994374741551950836943914416536386665537159920003844174990544272853176477107280995133464064657682547414849129930378040515764362799066851818547187811993294140348273084363835117185360481718398633073564624460239522210739426378993621187799450476951822073098717010152973001739844029027725185673975535324268382650644662957628391357907890864635699185469355920080269635462706493882657486500629669085485198126858346971374574601688986894307225868892400920800719876123813335818128220060317672451205459836523302251463214928001809691768526100608038287397701246876567339540550597335368224894433515508486955199668576844623742443201497972434896423986386747362733379000413732146792152006113428744937296620015112744020124894361463605096964188419702296498533995824159006031029612727531471655533476749635679877572888309589010262907605795143303578140466636813010514907128482729010879935977814850485157786896073385832788360897646977741004135973617052714183620544265405055314099224231281199522864178537023260108274762439415943140409844162732091080464219794619842524398690527444990382221355940888604293071960617159763889483298137342804545760516757669276258475958987473282210242871544580431956879784667131976215836275037487099169214475810929597996964297337222878957424584609347300195185864563558827903741906988616428279222747088957476198203067144777568707813283326307198195672866116771206726817897337382999530985828945993198584223462321132107813997345060641671615846773158740221089930904650660774847094343975274852652470867523238315644828351124900203954269080284455866940166464212336291346360629449540408336073253609420938518974778757382939435509191710997682881169090975888769648270975081634081482705454431098081790710853840581649977825064351766762350322418597936852432256365696754433335222277661646515559384776121584241798477241723582746443100363050954830341638852874814242389746731902416447052309784700125746017277155145034046262060321917512522429166571250546645272007926085553483266164960654971512955277219174758435694386218721444780680508179092621854682224799757720622578147078813196012113043183670971334857899394555529448203213722450242115648239256118762638650675874040708817005629876814499615223847496944776993553142630017900948543966973339532685376391584156196819428456101143942463867369842683757596703463783968467470087363132460597336240510126364955918652897397563495690192129958423549288158084356849254763905779530879055267529689464132065179254171910062579340145604053996175526708276746344694356551703374416927428519163033965912517085979487864899846537554822579294868298700221113206073087816980775912625039298703364056329014706746965848996507832370276377623556094857350227148216056929763812357975035026734621714505235658177486134665550322193434530593825240447892026057318785058307174205160094599442803719565449236664630920813431744596851796513221691937806922943995718486653409715628203282664116714256992022180647871456750910366433893831823720262317931232782402192374524670741283755829780906662674083844258598148957149328901684654331505664531233504191868991037588337854061174391710600945536905975906012172589521358247909469858043094191248439523623964275342439490984626844778127111456589098568338641114731851172424889849551594648619023295907539251974559411015409735484845556477289327052699212694471565570566341943342602740899493036373170075419631759269436454609406331103025485805624076163844471108685486032109193440785874081962131569860640204975139706508072370732952192136890271334613669142426584225135913533948960622230068350379589131541025114016166389691603035612246895019985004217189154595824541075984722823325958250962611882397030577493500775694173960167647667286136959032678999412737541543871232317214192425052571415812579199132675514934660828561791736605937429003452016741950924358964836417138996058715260061317526398793873957455884576515923588208311273905330951441186913624607298194727537266591176863236626314988707519899020313845717024137335330561699300842197729215701134859857335860276696082937509776022467517744559095144715538525428018210250353454261737099074457070896013700230973405784254666155511154418273899752368137725409357321562442685461781358360123885132901701892283855104219666509928924501462698695299920624351373131968826663120632176277983351831273916060171614937894280587358792304418344982907631790058687575347049096616831157457490270645525385151840345068647104215781036620145081584963353202814710974473283029764747990727486726427709297541055204046773620454004730809733724231876780987239808357195906223939286018477239234877019873830002104096256168827465994558775494845623622069602559864935523364679435403366788292359519274479440282041229248926745616903416196049696582903625740600841727746453577553813877137444605223273483151924441944419399029417417529471348885563083615648054000531944984222206448206748138442065753792991808547518807158404918917691668557729486795179497522674433107843008895401290207369062868590344955954137470668350676896161382278603679446371398803241309303764968859042560161674803766072963598491850304657683219399485776536327971137105626501039497662103037110496284245857840034045268039775992218851271757493264885069976863958908101415528935936711963110037236933067320220844247479988526336363452556356910943275723252874572666560143336891792570591066023304676415838110898790972035498959936482694473420679156832285031150857390578357968151495259238903777878245671291994765309970207294064141843338703363501850336534267202585844040256336008816600041818895999472766875202767607533658713298611126872092396209579119823360860805988294226924456381187865805210488390790400006025766910046863241420359782905700008787879839851743990138062801049416574164499344789875367557803953862310970714491520543744588962910619271596345270239662686775307393459548817855512284377025079928551640291243849558746500191554999455973930501676155700406082501170292233850277246052935237440022882227371300721241651816871708711366186079909594138447763467503177632386199469386384803286689832470550327599303310223474440732953821606062947835753016867384692994210207707403656961676227932528011418062173495343864822663344905114744539306781336192174188267948080858613557544419216010126998190014613370164267680527488469964617569148958321386496848324419311273171796088178827004864727536154370047904499587426791794604008110100383231811096197532421033181017974582982337080860127138358880529887405973534921666111298446426841198581472384404817412442101598069757449429439530478340109030936685350152169731817465483392275417609440885719052162119024411859290614465345753570067308010550952887361461399478788526634514943393551230703504740088132726463863098414111626224387516199034720373172937252432963379309235326003939782838414024178452853464016684956874357976773906034572609355342036216267526277569628810291547971978408754403920259038173277387284170604842951501179301994544514303501706864309016519648303193308354452036691312914822790147720262292226917733117549521369311632010115349924591168774389342530119445979380126900125578136963095537328115818135975059285760392076001635858056077142970506938066292523785606391632540481148361842562671746071825206991265198170126792132353386186054364208485586756588064877782397371765897705479678235300318718720371499065430179227171248294081868791363460944660528794675804844169793668566048925497099841912020576120195148220850744162469282562883144514707765049037824887261891744432382170427220696002351570295678542720217098472733504469515820533809890710273478278104201573995613537039961175785136130033039145708112243140802093054229017884123109370550089519584428974078047491246495753350016689013586088137442672300348974371778790543973523773913308950798973500475885241777825698140939737020660371069133851106069803255660939124416559765367099309694007320355217002849761775668679915196626291808720516718985308159036117920296188626892650149352501943363243543872904729513127745635579914455570363612641795538489037371151465952481212374846480705574474165846954766793342947554293174503041480923126386271376767582504642699130512052549741629051540035557522651607815849279865026337642171928617109495704389653866774303843602257820771969680590844855880926564213556819873241720297850960799568780162098570644136036518635210436869503178279168609859298929530721300375033599926356480857434517440543470420336993994534114821631882383305058681421558925637238399429728692421693083210659934001112201867269387839941258634708795742608430482416985099401330087144535994077342586022532069989534450852444574541892676055315902458350654571792487433365740949657631726894703916827172105678840019161110171477476923812247479197014550652009987364080371210877835546862336960279524700007713725198390406926864324562290376346413116270961499443766978436678068570809477011530089205057844563290104203706991309804677450325434518691467852986746957681616229567536994247729678191801024969568794286736117947552994848573146822265659903164014720490004043703373722474160836994242478389181283719276817875882556454092595391594411157417757490768949326381688833055084059157206457748482898251007765541480080270936874511515405949459867628291165541872061795003834206941313906304645140166938316649751294852493444342803244934816916888951467790743582753506356327196391548640800324763207947110744907063601238613295115435066249686396368994395736184517476251540742369243401427125341002754804487439555878777476370279969013155674523432683389076190261911890022181575098250411959233997022604287094596819719467682118058022849772699035989891686741174877443698068874127809652610894582153322422153442187083960042117083270705322455091327442021362309439460257606415158160208250896986638180674240946132544990323208498156250018767249533010497112231183436638603507031969288869241987371377343900672958995464001448137859037809336158636444003515424064441192654169556856968967167943294594179519623752588553144972238335097674415958462839894781857523230840959662309791409821880452043880914869583751128878300859163715402902223978109062607969509046043967964094236486313970980554322260822438092781112812026595093758703671082688706436426549311965110519888391249000390705105430376900640961699565553407284727506232071677614923577384003642637667079357449428285023572731260969413708405839178628671262841178685410917520322260192815078819316069036301693153063361506711627826810120891904651854426537559998394511390041368369925445831007226981795817390744001445425638676673986493568839201945432257266381979917736698705707877345501194921191907534978755465208248198132640664916312959781833161052406794886596184379833324863641258481398532790876593934872111163634756503678390880525542419708900600770491119389437799993371420693478090375318525330125428191669582372520747294769386748441436544031329866714445953206831690555265406077507191395492007887756642330774356304729373306155556498122106518226688495492289869539351644799834765597903984591931182219073702626944400799287805995669711790015481792924052000355782311168144305328788342577800269293004259207084886656911167403610969800830700892897492063657533770734965673805251983949566166183843473875396470429825822900815146320450378917699540531641229428651954486628595853273762985707221841900785850405502340966351300555951331726315382855245697415810189015978507820581099328907096511859384749534509459732341314047330441199802472201924763975732325581001277627727038092460241139711003933031812340637833142911859419637450000752716534193017623153916481899299966372250021910215156592095766978713811476528046526561494274487939318592922746217848203056017851999052454543787875356816201040983317678107131684712140829191959544213323770343275086775399389017447971868088585871760077512523546766693903982768094308323437815830010466238215281837211271951711299914816195122946995451812270145270879885154990656147021162885763743563134261403972028176329929241632281897739083218258371465964953630572453131393323820250422726691033698751214938713659671819675387400877607702948645909056243622484734896149192293883687862936834208027869730124982962457963028538340659621020569337402846140495371415680585154415676775525457759925425462843464820849121506891136959738564328849952675230688171469349957143504597736969303568172848558647404109303148202083925406495640344618624941351579616993789199572556602988659256078264925567327353681011805811312093367084028015237115313208893334911134769999808150524824694986973189780518342223517964047041379648339782945988138614233037644043567339849261112694391254624311985455040954151511355637678305128413165107796018648172135197968771311828273195133257539782208853689913954091534940969533526652052833578263048725274599725458868854473896396644379102758451854065339174051970941789990423887231636140542711945495732700342150007496505198357024290988645766992119523778636028727259980418738322856151979314136357278891693691644774026602626742942398038416186510603920518769826500227874371715268453492786420372592704666087563082985096897530984207346048524929251534699426055455826005870448673214712019570891667511687430905174246107344434460387291313544571487352357130405467220015698464099395558092097414609436924036577153064532764069268377302358394302456544652014633672376090869654879383743250375364940231986087921896977096169908000047271474949053664200326957662032640023199754124702173149613651750637032283477630155849691146095552315897580019407432780894515815466159650686971639123467901818552952331857317211401308941499352387252597034040359514137581520540197458267928483728295126483903917109512043918556510606000299965909707486900347170692419311581222037743584805279394436383213213635736989228294773644012856406105087072030105470545871221306664155995419167066405511623267248386698185289042478207391672568682389061015550043473409174745127521037598368534406378028733042182146708121926368167556374674512194665278627592772604547335994178026985043595216306378226701528544324924086091949457148057266194203726103797609758618043302350185505702218814582575025898805551056918492538711385773163259207441205519146287384389965188418264495966270151464883588440924310357073386799001372846568206127169621300520970752011523811978530001138723449205564327144063003737960578045114646553165247049495869417711044995649780404000409491764659437858912291252839466608760092700080753880370809521544338540244248085568599480241345241422549797039978332347890738426406814878361178959112364997694118433108667938573197541283439357697210937209091907865937543579503540604094662788251222449753263134956966350196643456499175494796048633702976313184372155168874502979807768275848091567359281754501313275280806185776795937922663641619455348093568919636449663983786335069330386574111788840843189754111352854584820190506852082750992463851389578180023175670402954713751722149607157976016563636787049493444905178815226057446478550744752323980789022726374444965674475908616594806048274028540470878705964086251007002961541084533626939001546755092134448905732562743433297918201929316533912121087687672157030582699439012935459002540921329178550751154844478205467505200851997351911387123163461461999028314186551130764729119687501165945080810509950421946195451802008639017292673735628625309110872878446386496953506933695579787156958800174573645421884841563509363771944621397275511000397955602096569923180633528924589534308134149891190365371657521309725030875727451109708467087184940979525516872017338587881933295870154088966563210194733493183922115203938629797212537253049091543421902018222991760585454278952247048323111489112080837361074656453007626091332412569744832156279999429998768277409184466342048814322796720269996294209258754595640917289959518634241461204236641873526897434045243001381737757417015525922399550081695215587308768236747488529256735004629889670771448505485816240963180941056585923459514427417284203069916525585197458001739867527560259923525514123838729380578860095842150274064524594925181100869145315231152030151838718283104475451731032478474913483587455509482263086859910336841554237240564578741309745857677906715204110630329280227834184129125781905553390376031326030499527268729364941734084960046188600128960398817391036921050422960184073429051470566929185216810565089311686476911759222752785459483837731871812430128872731878254801122601273347288657225370107061136198350756829518865243984920152268612508915790019289015154873691416025790125250231950706672308216969863504510598865314314978498424729859856328391248963514092639407471830058225983698667411449649885715165514574429923368753538058513809730394845309700476812433178087579187980137297297971587905283995975224112456797508347718043207453741343456493599512673046295095298676439137327416937358590615675879433150264651975013341651516175552155960783711902712397691230142123520085538532928729448248328405025772710816226041382411023500061839308066181154107542456736094879157691515387833467545227464887591605901855659266116716291849068679936092306567678669095721464874664934168717864126237414938735760236052070711543009218364888668718574929810736980998530612509837469430702351313245989203610561666098669353752352465950354297866459489055577349808461305418996540108417346625318467378644810818692796915038435661646226072163621035468692539247598485017983805310367602425305787442897263343096752649687900653902595286139953821759824682389747840140940533325699891160199641448600319890028809960406138523762402407273874740596161216829524803672964996358254312085728971589252273969026979836645561032966882148127402892576875539120620513159112753233439182556184070642102810254977401670067363577343239416209672717440368256761263540465921842489476703060065224924523412793622626146771497815767227337988759992833844724231066472518786305957371104411663241533643714726739220803656755167360964178617102340862799806841553229345605699938401504131457323791808837342732100774252092768874700868711627200989486150104049115332759941219345710731683980545422748257966614939979071325345484700742712987733740916678491018054762228929126560831586273383664199757647548244711538793486150221949366788478710113662523649873634632947334138476457328126058888989977832702386527521105178489494347477159001636263726095413037649149629780382119285634647594841507776366394567630029849047017378215092204508077691791402586524905616237006717571005828950367801067335318219993780517052707180715385212498017314179694557064475901561230798824733186105387974282287682135580774446894877878427274157244843009092084142237801820691897946725143896992223007013079103416034227265736421920485740028714754791308923307497493844744389503037378250705766822495462354478830668786683475079434680405048717178541426008045459121205373521829638769683606064639929437495357876790341679400374230707946363527887331451681292123280920613407683775504446620592086361315413226552505676549513086275592461024791521098962927410196033771506717012581438747173320511154049202512686468547051743544240878430133184012640755847200381585967346513185677455036544284436747577000417740969323383946732200789268608794767479683002962453414348855620427350541104539591766022264976206927827930244343225704141045763431125466915710516603909049653947714162538782161429632317511075580341110749969231838471201392274378434474590060659280507262379950552532851837673075137590590444060791873638922340300430794377659685108599664121699243898763166127538839495514232390640216864599249279520933941651169388582202541544529772691859168768745227880786800140596252518049447007748204794378052691392470684484586610673127098331764179623627073319044127565724846627566052468756509277837139840814336958136882226012986401585084773970823411755790943486271910143011714340582825118286833277365286981416011822589009839840157080926329451541060640048865808933741435453043658875842680226621121028151182622957471939132307195889167004046767835973338307069428469915810382069440021581716528992932094873867244491249159994582220132563501905910477522192925325136675841259493700693584472510666776150681847205494890892280414407054600300839447039730999624116289727976014812845184430070399788067380512523986735787732532475606772840761498259579015946912270111919295203238459829691313113021219959388136817842409943721469376099449528833461373898059661748110266634946258222095892188741797039107410929265609808428098205878991474133075944337597906182011571047215614935260459780949290498744080695879434796336953100718531359624011552716373973060463376499923217605759454943305311771078621977660238125352537083171978481888956497573460648444163465679978323003468121450049439179266928302324142063789234620220329984271586447234796124165181515846313764195057728692686220345713269877146265179281120362469869596203606616901636066647470415319026775751834173145746601471477762570452710806710940206518799806804311714016361612172767587576121504512189611673021790435380397386378820776976613899104369085397651538862834781798953541596457637934699489973210597424546933028388765436905267038274292294124647019487117615990321266747555882563711270174708234898628371823088535818766317133821158598626725907839914178512482097569143819192223560341357523349071857523533197464852210302561649291067531232229987490849006176875891556849962183720793554222806724680682072966201690394995899160212081546960230254449347459696793676326147725435244345699363563530940165469470136444961024571798141345417339482134768979930634147340049525197030136262906477009310803796833853446105615654934058777485452341985162812435228438328059536435993228871863195739595375830788774427949173621918106799930541509178193470020065193433079655625161792907901121684977943790001254851943458040944743210822154970559966456342059213033421344452264639812231883837385554580568523887479892859919979383001917410072194556437238604315387746331733085108707630846270446804541184463998597459860744110262061599363822116622918803655937623175433036057289361410572374670091472832458197360860400738610077546778992555752822230307807761480923882931000322714777051335885822063211480568379859356023487472759716386905020481831887592838498800223981445068570154728366087079183636608409091240710077704628985156541777396008821518967809294248150717801795918313377902112306406256911257999007591397894284808205484333384574238038756336939317263692411887077827164235943519003631942607287715348381004359768373910332775950246531469976533884085806781272885654720307725869467804875645975645724698535716705811152840754124910949897649647474866385918822786966641180935833840822351115604188047675450981392137139634301984684287120912262799149103958479128376866686719239383836873210530149469802357976224304569901342588234239283115399544901953856702186712959616639062644939688949884022253661222720137011068105719166773314518234133639739034246334518437937180824194824479522723888892973422546055200301555665123680124072655132156022208006800249620342304537376889858934988508541381324567926931610997770469393764076022733444257173360276121711626858206167725915873406646478507100230359516510142789015185613339253415729104733482808197505673613187433851456084996579295059798166456313213667354296464035735038580071315043413196437315099092150688004810481635618986751991753077525988401282668561931733921085711629042792896820768364890044520001719708477339698506383900797312407806684487990754095380494926040689735221094783881556934152282077000399331356276173875200576324239417522178438017525169919903176032823613251008764735500457510786737927925427653225933534910891399427469190926789222984642780703151228358223008211392890235398482547890693493987979985370612553087457094979140826782501740945887388514888072201636112770555720743102965300641195718319307425819411124352456137471417551873730983237830389209329139935834156173820646961635104576897003977451911613936003147902578868261445675376795876915241306391476329938301723537475344774274473718277772769246809471645148758541233837789702829436281366114895775230370044180434200485338406701304827141142482596261860272773594881864047495164324195060600571718748307373433189037104916451889910692525605814829524209097185836027837385692658052533640607977279457569859331478045990002572425244207116336224421310865786288421676360780930721022744733093322981090451060285649136101729251432141416345524008170015562051987090831902375396053481824037983339394802496168164527686729183915158555481700387488206055994538836904577201290200494330981772430148185447535478315666536315988891148071145137618966111641603892493358855511109257513732037824888808913883740823778166836562348612573257835632242280320055185243950307490839100179557386157339920260627760067000515520666221498826394359790684469016108351770291459564164899014306716449413392142418282908934385982817928239931023746996432324363491649998322392460354052379123054237444897344351473893581867704587635833543196981098458698471218041618647944236475161555653905685127191120815709601199300666873253281143849616420251517170018173638353538976172807033363207551220479034332808120344205788053453441810978830137700699530349616491849660152130260293848737364380509433362668652322016429468059173976404641751336172685090048148755899716918271571168647193431175884837594072899204922988554410848160276460594092204164913232257851574160585049330725646172160806019701211763346867572339970122405796100962812397314269876043202190308269243494427521340951462654719634388044491785636472696289423307193378887272623030405813531501262250281286124121167007070801468009805243770208878073735890121105303112340329543665598196093755983143381229689239394536572875748947784417417459064930460458983349548845859088465529161218078021508967044024639785308012827997981842653413673428843930944123502772373213853027221625187664173701340987748117750114545509570172128913709542729090123590893451952636699297487692344488996513219804247621213895879730412995463283067748471451207094470170793007319908081996152189980715028004631871148994744882297479660313151179444246615196854615793942015759457115767139067541968379804357560085695768594894954512237061402557260878893803572618112076966289997150781867877047472881198598171031861249637634665248727653011388428450866232670929660269652014907734104421942431912201192770397183620404671202742972747842255781838784753708065573891810287209139596338470258698661710999865813956412521928276429044695194254608234195475958630321082514601706031742121649513848860538755531944864047722721346540566083246221740617174110723908415107367438980974147018471304812862143170318267984791030111512772736463165234950542229222456539501251045895629934588344310896495613096290854017829431072068787257162781058386571236946114017819225641072336359027399294217917486670337627710756325857798728454068390597691557350161259448309712461627785520199535789723902561408349124407581687253372996402326576014175205729888528930805498769836252262430785480989042328765449657326198487508586986673505773581499879130744941972188613499992269657680250710870906504921048889469737708930729493640380839628186911623723904802319506617119515461691980619529142066135897700746326122999796702771124523472562744231061466062177866496020087190935249127070026841568285933603506295260224032149154155649041603333272128238056667307483448841395367228931524034174181978796185742708847978348731170157581936603953788567350281735203138229671517733485422081334690369196635596723110230423052650841758361793329258266930190113347523661497231948420044665695602101800349141310693070338049394683423207651895866409147867408918122621080471010193373281029343020012809332195641222022959187774075818072246224404908189142196017985788698599145637030497317495446168327482505620591395299448574546711679598371806510804123303308904637560647350462983654749415715359246797323475190713791142757387424136497238621506168631904532446146121180930601207499648146632356921332240710319373977493398224382138115922561685724448077615285607214006635184294069719938019812510737667181810006371488735011475886748551268408462487329769256494184110018876460354504730521626326621153300498967636032853181131399807807471031607476367730893881340046042536977252459218502467699168558927014684688259775229016001751753957958788581993303061759954878533177791365647457063169573480176565883936896803380936488715969763359672747024296434430019430234635520840794113848457106156981864540301117001459093047808587000813018742353909405757696310779097638531225480878692182938451685122068303121621670007851245831933876808468512825812977819239778272688059259744938373699375724231104449696778501799229465810954588504942352286988386566513057066190717149059372670995455756799178133925127614828357426643697273012470352995791867474091953855150923932769497277132742437428788443788709612515255029122255734264096104238742352444613057142972870589516938747867631296662773189701512878198401953695386975166280932120449258916940829635075086873198224269593697955140466082134567278736416453234796640242753719808672364757607363272845526045068753480288768067545099111641562395610101622604284706244400331260789650953803086350831722724026421228012716119226264116961679116234994871944706048939038133530218017372425596800576297584395245562764911085566995269952191717735703784783532485232340911951815831135610466675004964655445974433866862481347484549194835969295322346315088854025340378792415885817536462373047487841448315385344143810280576397888508713237212559985698953714035824123221435208406131559744063034116960061516212592582911323250608632000390494881929711729614456028614016999988739377860466474253662498698811321566855896634770640613732744738965727469443239375219505111131644364196444418901587491829598779813716747715088706610251268666642938468327037883807764583485783393055281380300347860480230596567660034387074606246447188574174038188876666948035313166263391409189247607424819541283592021876046556345534418729364084546614976666296310028111436995347243149601543597103499791625034285987959533339821703467762277017850981927109882899190847356896179185624757075520374763958612536355257395021034985153315786039413775382794585926540717696834973502417875510843773689882843906238284435257656358979598587390050917821170793962035925620337983689414031279647068581206953848346975688400043160906590243450999088069158068298167343254343702597920762720977261012435081570143416840204191825437985464660890868316257926713481852421049575080763169752201537162732470369850110619925575139307137205120879270480511097010783387384121079897188180248230294132873534038330854512270212890703989361357614561100820912290015812040941576776593406641275362355714184379035253095895326435863673135515771298410426940677917566398237331138032278772917591804658832650649564581106333374817106005669391177237551159828017722001536948136778314627664719062185595739873650006860089287889348001502897028569823705943067558828325608351065028059997362192290918220301815398077765969800502601068607879603472641416065721623342558348186358535110533287654843881163641779935877269367533391255797496195077488595008967961703709612664014669622655790910243540198589996162389680357316948675765968551324412005945392632938454863442480640472814692014285978021835183886047291269617037987236929784114143169207227143090402495056095976931379190578709685843238459083520301908965134228055953237972741818809263597393265393977666408211311273583679053258834185270638976458139594646418525005172688845313828378714652041596006857138983110621119275895029450886269808707894218962883182749329139020715033686449528112241980895455979100798242263692515275103172516549088543394627571602997400683812220617636651768540624736793083743963187001051167299517845132063608480443505629683169375293758624763145731983950813701071886964505228528963998267113696796768438243092547352480928930417261768082215271674561354367117705800831495265580044826095414853631045541556625417104257839653457185757045237831124665116664078590094569909876588053933449788898769659495030322086805964881192223852234340997617258952017399290798679051664554585810578112627952659646352540358532963862018968789352690144898697598965648366885012795356934922175606388373656917534844390163788883161839571909468670828502020970562473231324149170122477129105694638231229972811853870120222332028106160544746903158090489455350933556730137356838212764936135880067575195877626855488745986026715739102273358737947379750830569751102619568883330818154924540836695809403981524491919034081506082912732102026762020509799742442403608753661213955537591093839110357794672139333486070361168116628059825140364520987413268719817531740251415530001433952891378370943033840652864688074313973935325414962757104655646763398748148517518034446403754336374658430357044977754759457192309852814285286462572143281161752032248608062779335363738970346470408918293077538147584525817451554500063948656882400849492117539080651676198051428297718788327103409708035965607283201979471352158805812239926884711054612089802678005396114043563985452607750866049633047121992102222603653021522458358709785148621173907727319585521679267505004155856853330216907264566179625874046686048687403573284613214630451961683372585936751288916465045394232244329634018946962004579290947132191226592109198149251219419962723221222044024778015165155294074338723854051854514425868548247811904344028785144141298114118165695775077623274385909427496171609513698834616890531091697948796053934121865249720951848926542547972436536156550598074965770440514967131344843891519992223685715442244181279097536639345372198289584717678213369590822031649707943422831377315802235296065701118351112860038535592895222572492366945892223732273042124972897893438475499789136704863475206810749233288385423483482258892105247640017170524520176495750689478603435786704143847200635197438854059641470687291379967058053590668339002189392160255152525923848308359887921957436032423630985906555751829089852242480694411991734558334692159630781045483962378287203402355636821358324712972791272503391340611649611142096793866350283192660602738471903389132895995907442017406493011512730078095964238539459531464641215382577082993510831359054772549530993641661158306694380071876575229796695895328849532182494910199398040316420531616951210958489444707120537144555164469965852753437662737095375194113422168687553876664324427997493742419068410350123671294872695096573181252733262169602546924599211150632387191991025513655529825692854882172242895364834037603583673876616567965554276643609498692613076666313873515609341239689491835486796431431814495801084495550406143113656871365682150659922839091461759473647687165195256080480679661792294004824874751309438126065165956717122466137949224707349968618404964520372279519566695026986999412256078284328853359427896407266184673016117793681576365062292790690923105853783427135511749882971677415448079615320387032731549580143678566569618670576448725385321768237709930860743458193157988060170198345937828315576746942618384006152753752745579018640081949962096527102427711835933283222385517554223583480434332235835731402621487842740027155619260551833461518185859526545380714669155633339997962706966118246888415202438148384106708827515896811580214461636144669149941161513664588847169026762505298199521681174631572733957635189130132499318735796805864277226315625334892422120062065562757580957015742319634750884895168520873628894431801528335396032959037604233991025376564984211375491032890957433636789737860919755922844115517068823409699494467264158166223375876332292455341429460334953697006804777710347626409361265486286418226707751806845450804457673843755652316239279754864292239216764715680455234621488794060285566933420517143529758086093332856313929604276253715189455090764404737278935671799640348977942267779096513349723406671389622418540058579507681308260659232937053979405023697326641385715991626639459547740495482712136729041722214967104115465923977468824460571351709821134066384515919116467570308362521595225768456755710606125832506713306345580227192935956315692129313981259179572540640788671301242154728618586366759293816143182590269376217297515610743457215734593622082444089327465429368720790399381348677900119483910990211484231569440733346921817668935024488579626602450278920232016957602558971622197176243674754882539970163785379634006716757395455472212112951071860646323726421476076380167475545065307010332549837001552106536751623528342575953247183153829464416513488051800949816134081634734476951236110514400400007321257655450274862730616881550357598729795872657591240164350897538917249507486475317380687416831753612896615028203614773464926646913022258702520862370147241950057721184284225516236975558013651052462051530447257418464336362110300795747346397120781147815394838957732057903153126508418942124543566858433732711530815746932518132144429832825358219163345461733146553126204424143879397448655137356959026864287686623393823062616979653152174616416578164515563390327108746440768003128952330297578221900120492639832910611395110149500492728016917648666871760435792671269374003847183981457796455973942934958049858196800839946850068205812113459373986190839079867251947262755114564283308874143870948204030359014193276715925000332233875702038082114751427351642770549283332625913929965424244423669762764654411501657003347704304017561599197792351161534088407865014619165776574134200610344428750349762382535752101313348799910792325271509764442918491461874976906439680793414231347323997500660268374775041239841443382104830535946168578502503362857321092633887815750069749759871827873568353880191813794237327599632267248512760977950787949059959789548089737023047251892219223343383493901874225066026330938455871620902973590886724748910352267166031423686266905066397931297008795758985542007319840424959375111038102445967676640270426813036039301086019141573918541735599318451816647065601603723817420919940429434414517507240275233334434791139988325240491986114488204090908419889672101753472028596509615624077564730222550347230995161683918339715574134596838651232741691984783552681480481925967127431961830912252326912326815348228433436385006843219789847300635111552158262777437020791380112217393919479666829820939367741983468871068076218866211970822928698509658903317353075352059026282141914466509924213008287757390148278426769685630164904476162038083891722528601472637672802525127379290536924322700551359631378143850891669691623452581257136908849510736151862867844435216067020796773276545378417643075349574324722839787189587288572441641338542215190365491864841491309129025619650691479310457159175069907731503045285501719922012810734435810246875083708380383993398263381316232833225487056630760244054563272496688808183779334538209090026137755513693490285791923308715854602358405854780880318643338742717587365361391683025697880798403797140034770806683754566698642625929790511972598137754928977246059631030581744765178643441796431602064531587300427176765748665473660932014186264241816549867664569749977843896211701055981978634243596999918915252108651481957707718456238687327406550765680650386786364769462685508590359247054330132452648406513811379537182007548652204969727577536644664503974248674735171354821939657916093342261280803538361547642897726428133501393737840221183283029510788718363815687715181308344667517282409552698912684781369468260333985885477040621327013203108057524040061343381366566864718718851672620131498273597800861270768320493201053872433397013206341414991922968394253629044822721203761968012633087813702356111377457655615610628055464576915993647217433706192829898833354107978302866948162998810853914487998566963736129817668046165181750814007570424736164466813439795212519921791028976165803500422307266930499070469206814303622876449910863582058483145588382400284745256477087774551477004662956212751100078227340302722376987285882067001963624367668213959652462977616258600254782185227557543252394301273244674673509354605127733933932889715461490902102476581314974150642186295098814401311645824700564261726648154600364032426617756743953119179854885747305791064293708363799165626330632588617152954800372143041708345755376917574278424181359671843694537920993214819884036035474610641908004975449163440455197935881713339970185661665999381107320748997012199728664370167153876387801215426538324125699367350558991423597584854347993285309001579266475266946031546247082937457064084909948735343714430215788845285938749110395578006388952331773116660253695790725369779161524675231528517814027536691298425973030084821070050121445249670915390336764428279216133476207698498618993877457294406731743745312689423741770836530934213061542492493198417160947899653419004554914788081777520063164360812965932068854247087496511920252653100951493002808696420794623085244435314133796837312137575802565348204288653344270465409957147437716533825999450680364002519402465598927651310462059117421842804564010428882563897497251628141165474112697596912835969882033053621885412773003926692130846176218492396169029625870679684226636137335606799685241873403028777451487076701616318355499319851061538357314544371264508479696204440637314175313625975675448628474982728668332174721275114386934256232500904628748312627875683437346122729254258675288125773885527186551441180466892403373615553405222353162380076644220566318992911127096683210864529919500082163064030798664613370117448229997694727959269378985666734064783579578123947783039757801410330664588256597135238254231604652442999722116539217015982057422491105817331508125788597581643588704766859396098506868489293696844776520614435477465202039661847534740940511171111214475754395865890547877333074221227497814969576362598624831475758556058254648811698124663132835697135772694043274804015834623823910402096726312478672901356973469098013871178946630060010529975832430413838754908554378876761587790500358900669068667982396919661666413410727655765357021493948569502998399567091052309222482106099152301763631348150791020289464756074592094755134919523126796343202533100743403371507420962593029699496562937931414080592329363821527257810740655576006805905654302021740077924519521382008759594155745529869709685654958843118094800409293676674879197340148508231219704095764942212960483076455205008564289530003251113199411945497989392735546843138972115947231222772705942858042836451103024208338742245100920521346488170902705970383034589573452856841960189597625117316933197611205536627409893737286318884352075819412620535189365024481497867488833557488006289542555833445041860951565982271228237822121164503232965198031480717584019112791742488558874538316898767382038494257803456901152060634953480275031842095134882035834159183399314718197570082529240359767037964565835645417316153052563786245236601382952903851225297899476768004490455103806301748434809962292759601126832086176881161457248648906775362225598588769817890575477311660435217276978970403672142179064041394394861305870763825459447234780599670106547185699561166962674966938112451849194817707514182238726058376002812292528197466229451477635471187998725877021544362980446956960059618893622198501017278770923683333041055240204676207990366346142741136061160795390989576261000435286267700429836311408687951221800619530482968519139968069540823263989669237166809381735481315158029191477235966400349617749901912781441627032291595987209805940823113206890032333236891396383546717662253700030273947785723790552451507716289799591567470767127664734344539034408697603119287298212918780941015728533053125649773603314012340221761612509074547021496464477146127898351061993507148940458767108169620159180975522029095605534044585884758339742188649770934274544465933033498068573013577440816662416156028803132171808728253562606894150573421983244872507849911596455721075536862806190013903983070207379119802056663063489596350505178930585454501900415217835064958481563969262585868890333922526581793938908007233036767525665327159360900988331568687372295079828505886746625228838129024572755633990242012202864351452734148696906885418606434277402216704699620123184159332677046402488223301455845605559089960876482228124876111814496669075267250683530886973122332425339871287370977978935786480631428976946697650707142837559355660617210036079062241149092748270189391726695335599520129439945555347371714088843708454177291668826275017984782609362691141313763520506452533380394047578187529982905296345605920942271223519590815392201126650644144761183342045432169369456852347698838736595554008452022104522819279436825792230356395664062507111944145278191390062179966167115232065742996526181453160098181390999648592597801565715697667438276183705265509879332404287627897337006158058463533823418931406636902645047487331637996443308832359651365922177380943873657345447090424818974585447932641970467858447644744719153073429726988001920891307735838962090213571627445020970165361003413572966931277625967432472047457637189845967088239935840993813999619746983401529882852201254172692759327561453481731772088421170572843746119313576268819659646167782335167745576247987478786176678611901409583330295031452314883712633098989857259891318449663359415786246862497234362088651420536953158107153042373777577134127315361982141741192685791278410284574246468056224724944053748635701939042199572811783728942657315882055094624031727278519785503961783634641581699087141331651196065182461351212769247790429341902777040173700409422766010231943844917812664462414292750163840367351138051138614698914824034482255133306365695169555368536332560435115814544938083938373435868278247837770373248691424102935371574910121394015218168917509449817406664248253235312757162344669217655720023947813407580487376304462471154088575799675431192465959673712175708885461120216195338889131252111132175624117468392660713843441737842097597881284238420577323687390869855221287891915267195254386147370093067072060222106823451770368767185347384353707459661873741195492203739064355057404170573573355772764498744495920161815887929860315206188241398079613062489835532657725901831735131408808410424075394207910848750425556452086779637752955235541311638876741652963238732435525772560962993995930568753582768523524260527916101983547022052472430093663262832205941980279109846666095125209047938923207264854945222036920711612135160317924802708164227069529378630855493318598501297649746473116080374717661554104429571850155429319575103046884516209170419068063631482999048841489592160198883063640387611167916769124852082685442667073310331232734499882852617821722936708397981105299967384839697600397920362839386474709689793006604029480735765966845965545586558855970153109352636738905359744310202159981571455751903203502575165661751079835840081707830912200732180547903393164073155540320787548600552687536555698662432403605131694546229965535719578159655619448525446632445090874828019905718850017755205676184651277936836064432869576948348250841886656306954307761417247254969268274850433026118950316084348617437085732662350156543624123942254565122365692564497931190582773776951327390114767737375951350261761678499400215454909464757457066830022474895328821118065101814048096664980542878935366573359706906507796042352784197267492022011444175788347279443436027923321726828478817648716814532412437447522476934892569876685428625880828658291003328505815970017191847869721357487728245603703662531463560904414571294384507422669570640380416130793210588368880240688543346415573876376634228313470326544909910554675454711606708184500296434338793712532105587682407680360663573503394614737978466356918549533409923709301663974811393289504332219389550128563654858408390728849166600880313609568474720271283898844241080239906660648781860637782528544146662975757149321752938132667082337494840315057079519425683158042847631570975720097884904512153451812709198010371563446950466962618130833491847157560198641274469207321931518305594883455425857061884976806585193108341339985038682776900901435723283374877949253966878042502716583744189619549877374919269936220346543006835594898274646366578334095806792821324281517482612414266508701277081283394177682268533384717409655618538646575909700258848753538526181847361447137220982300835848889798218685651913358176986914135490396382209440067226103952840217574787336406903906712535240043490548123298987478561027498175812306438554723740040847771115428344609774145607193639121194677429053416177725354308360892661757467028559565919789522494394783044638518872409882546748431912732652716014052891960694171423389719897867226356185242351261353819305334632847862455201840578019930550588104432885101255625682494385002786563977759498207874448607030356522547673986362442136887730482829550557677145593286667027558430075316004370408268200619822666144716176552071617382153935949605887577990938148030376598778022810437161043795547615853464196951411790041775793869778883630631699816701591883466793289077923727115070714957672549417227931361077525432538192548710056609588072748484637552965103564950212285690030662427007729163060588247583524083988621155654527784546334342870305277924219709445037979054013017837435402866464175640695459327115203291547526703418780727118451776083371375236538071308811053047020680848464999402246797011570212909716548148046175719992062459044139116221172749504349857730329783947168473790950876791769284359216738972352342832364124258900371717646011044159582124851556046473492089868997068469701098963373954487297199004220353943530563430953051711874748340698556943275728448690633304367449103482224411760046841619175562692034619584928533830314167216535104288575404433113161237135162954789986694855239116394671048785241894932971848026665577691306974298780248169199941983657545240716784015500969339872405692634509647374525992254665643894491686151790792135343301509553176925997625069896688269471210458496832979483495308900481471267804274344514901844735673292836406028081304414149450970958738032703399760805823728605193772318851672931728006439780604042953482889289007582628183162672972007077873695721432225302033575416702506337942167259413619127408556978256721736225057280961062838852812523243029915766410112751568135133329860322539760021417757649755245402009203269623164746449178847520633125945874032796550317563549542372894707892338566108478752596559327975195571781232012962577282271863059620039998079694612502640090142008123444616949617110410687178358290934546993939540777038546104783042613356411352855621897431015078239257029205730409137177470056207650536325330474641059872168652176958601628659271138529837296831397300301208624025413349996001919069005699012497084233690461197499402000564376992003933493346075876053454141176979853384943548299730441648978509863987377664012631907796246072820700247677129151650552211850852632163493725492300140371614752240062063387768469932443202823575695070533987609588051212205751506624606383731554538836723389453347725881714179625117596180577861975833778353498360185085736373528221083379171881035433703642139407598967985822093180971030662248039656678796398397734157944903877760567571475836585900057748474018065446218753662091169703978834514613725289724112132311197789419218927306644375208835086222107208663030825209795699037292422943721471420952060322798572742340682789951450851126304264452615090126286184090599524220235811435739831801511586986425050053131348125774118092107699024627329638732012638281530373033054345822637714513596551677830646161676167204028806758565125129886712189783139060289130003211086597104316696881647365399105048860601091801898275700046682313972395119595236266762745704161172936344587329213769891037743415816374342106224071968357607042614006038091319853546540214211169061383447454103766293673886837347640431780341820679604504143177089273099789618559889752257493062473670001811998732636873831816740434817265015370068621586333775920006755064462280912515659997754882836675844125229276341708708762916605514032380933215065295942945661401784955544895331649864561970991641002163967465451296298377831269830882211805496652142985938923608332126655977073744241888379008250835970785121737657936223406089209047577360812939292810814703104142494947730882665037879399361913172610451530343674677017426459307019497486291250888426293267707783315438136258765817690132008818994805576814718935584320016694203833062060585342135694232251786348021905868365412883047383310931512327814533687913399734787545998517957565280969955290550171674980502183977771670125318300314208380037670881184795507625369521375144201804847435416152048095558191358961212554168057572456474062166809306228064945912360684207311299012141711455426322002511563200335106413396729447568588539935985150196599471006225259295979620998068121988845394693498950930285457768034375754253869782586804730308278244797972548444029857388870363714691916335048535307538986483075806990692754015429513899668106883636730054849720937054229988310035385083131980532684841687037470665747803012329980548277260784105031426865679102966970128205835613313863889951601586890448920906429861404570024730550837804033147475731870437988363554226984083462848355542690349012260500370902343320187633944561503107932207844165380731074538027134128747435080964625777098535504774666031967508653432794649131351615496968405018940421194439806884186608062014875353074793876745154882853014874206548478276363537595725983108804653668063012687539813902137220050587884767442082262965367924391509283533057283865905148984396480486795727955134194398669127257384532552727953057918706846052057986395092749220956203675172195279497319287951413327607388633054430545076614687821602284707053612000937184887357989206356241543703051997951187756865616042673343092887705351849128718336570164287032858542510551614412324487542996855815668900117848433161370411037739374285679948658994952833792478659333984954996451528533481476951879481272650009578866250300349025239465072337582910604593854328610302159804940644392327944641877997576145194577112367047807170013491302246553031876133037844280938969368126768852969869924579186711526537664438914415581193125926064390447340399663805159509644198703064216006944578457666542733404343226789092124387085754992522869368423244821806659075958600058407877014494696902159086943049108328519739561538125655282965634185444656395081914569267426821848229052693712310267728139638567257758771402397939857843418085371392182159993826306658029244550560587554555834448707453465223121617633047869994239060434450363902704336418001360861471845501420179576686375768501527909466371630367713341216501433004027260445894365544858135837117195041897718654080690357937475275790549711564441745534817568623220950153148291399123070727112347884258487349235464841544820204142563491682792430201735871229807757417815198136202482751875407027524430835930429166185241001630813300351388826402937963980098843573856934203119440158900441038374557796855889317517417014045088716597272223242497086533448055973558451434774780592083685590046223299215379018822410461339104000310746895171159135174868579720355668854046290500373611697969067122750332998184340525281929062915325582796946605995458681004190106134622929234286907102206540912199631488209712034323098383215154408699217559057328531787727862108694408482945410941030037845280044711967632492993115667007762037393210003364376829427981361622897021073056000286290396718504140722501214579195655984964404313946925668165963852745230581592797092462631868688194381317458209988988868189571151858607250742714126459605788874203737801945230664328307845006927107789921383068978925149059593301807074357157528694270470919362374867911011384991271885764951028327307198162563643233164148475321024350297383455963989308469907087450022548891596642123789424548168412783821683294192499089127970901334146278319219172687518061759662235760847882524412789605662517673446831923601375475361080358763605824393307226147442675833302386596032712449859565856073570347598638826586180540124190700225363962035283193298992515875466986339498173037379346730658327062710426054805117413045769048508437101879158022591507054748285460788861920788542910996451542641010647857804801909291810300208871937436221487939209266719275952912851471123721730344417970716324023775880988512824220688492936416470170845018309097098824050465768916355694536020086137502042119966002439999188531091634443813862128688676966657247652650686665629889494491930809627056302339747170250639046367441833352973385576502119596926583433719896740327813641800924876636700300530790894674512697269332831087685750999238243335334570125458987924191599889422967430566718881829529321416601550322303766966393076566632154717403260300658404282624721901674225522944709239068774492730101511525445750392628056243648350796261206735133476955814364710055094058292847146110162317393171181324009440106609427391739668816283531436848759192268844654614744811972168642716904421237233194007170392449735266901007214114252146859127510336878571716380129799673600675775346611275211408898572556279695423639117550025942831162436001399075097659954510725483145810934670579246589610496524792863306351667179439665157564450159868224386891148855100877928483228745655147578372637216160526977339384066111703747371542969506404898267909286981258741887774928513657353703676642008954527356926017247674103326805019013907751090045668263938746971569929078901325278970005519365767336948038939231406533360515788428710529238505791938106264772047353261071860365431470778413207691820093909406311070346454937910287260043021779766872402195572467404806002462125493338943905701636668881074193928296302641687033749348654064253060688044452051607860563236054342480613231451612863152180197823487262619394270189069204871872421827470897580436116735347981557248587967287938010012654673603843278438191565318889056818944899803461489164311917879003581542480881015894772879778611354777700918470974519639310024846482788496546610992870593686720138227236275895842618282099980110851604515114074376405184873525318056701307160663905046041252901298155848156236621185984785253904208498839831955460118809987772728488971580014758272626360035663817151030418086044682444018993885569693753042199764892933875056421536510949498204626397001844310725906240122265916577085304466448526456325919387424783809353314638195612556954267723662136492100819602693619308499792501912791409003962307739211124116365934187155774935577335443061028018889758563755827070270407410300431927927379933891493642872892664190684678195974593333323999545855589753208069749107829185857665781658046846122672392680709144423519608351056843460646231625717331567896983661376306530963899109749406638548068378523543933947352062026082728533720007711170466152128584441185691265216497766176822412578194508544968347176948967020036820110429258360693011726664424139965102151551724473798257930893181197092064399005367362957268865121237606804426717210830656907200683183921016283033118676834273668451640689331930160521352884102624085678284551142033899868011789890485805085392974738452194323863557027588624667923618765701990089234054022473228962187912997349163235677585925521034198171097298685537292066366007246918724534368615083232195999621550766872476854716688265232506278866466644241333910073902421876358517821935493939474267712619407576723290994432261067684596372544965124601690679030256030028468521992723739586413538474528459389272948810526748613503144578476749065267881906717093249966111739644606200305746649039433151615763831884369645757669211673619071994132094581891494418723182986791523437418772463317780484028613284235069304336187181870797691855111735670273258930180928031802810993670405840800291517359811003393664247992307968074166417660322650854154786063484441346357016134350332233380813164003867803687006807246002946191163700958286317193155971046681199814642164102321330632412037915282137624703860722602554375969334751439095816569336520696122883336163795753376318140851274261887325095127692241564889731758371029291069907046793486653030660722294877739004276442681554265502680518048547955377669033432158336258726072451173322897377580781739299418406647419716968856736839875941346273255955169156428907772698639271059605001888963417171672348134667902144768874284703957380122369167398533557166053506708401252726330539371309900287342789624135998248075085538742809723026922934254640042290866988461198624716881435677068271680888421153148697170012732279674101183109609736228660392650800361717720819276113978368102720170285373327574902663557675687161134761197925158523969850830501105404204048278618407564149177063482970021999246595597421127093630213353063851181834762518348986195616218738126710865956349663124796390248709530740451043922270105143743393198675320864909979311184530554026967141280674781813907919193518269104365680051251980272303375444659435580766224181469935891102133625965861193159519694372893968335475315138629130880545566094402598726019994699643490039936317535874587438202498063011166480491949016172050326587937634666423783558117476247995014293923522805470693393641083786326580035809473176050195960047658713867375976844836329540534066190851805973528637533367633649902886611559237775714343238057486194500233818208710795043537975812081962722898018081370396904422459910824301869684369978729320435549788702333122113290381862697929767787635230137380760823793299100273889747815526764702495083224713930197930909942303940963496063277855357708351533144631658620321796813217288193816377716134039526075062033044394317583358774536716029875476461486565241823226397803416481023995701613266536272219420194113917326325103164402650560989773353684711772122098902480541495618503042858964163321568185015343177236866235947399144720996802427756691838097650363399375797530468016319594280469836039460796273943439067727409928425727796962851269633748259118016927918826352457804239023486525608097422642213053466921833675524711892219022799904545860425190155613930883616781311599956333963165583482725566349103924453135716563274856195825532812459853936441727976282662934411676755110477018247756155548405911778922506921789057377234040940790989978672842393111288788330236416175810463782947396228885080926597046295144201930190072833070188759385147405704736778854078275214209571398250957432702240780436425209342815904546187540404221585795833793390730547682331403186378444535053067314446128782244908857828478250849143129309298791142551631524920751531212707928954821504468305755742201938119241401375242447379979731617309600465274932818390095325060985817912840379188332229928220873928507173549140898545874648156802573925593484772902129229533018597673072695461603630199906302928573028107959714537147663987349781927307470661897349121429662444579566814648496337262492384260337149543011540048278193218929558665227219982427899283276682538531301506615848275753200526706997665577590181073403578706841940044459045617338448649720077430772407778247198630786103405194892415087858318295725997875586809265352634216007322178173750903215847091403045969922599504755513027436678432469623466540635265539154297300999592934539981712519823403305450999312292034219824929338754419989146917260592771779049139157169381037254237080974093860006042221283360723247660065534853606766383363722711018215903474579948158352637551353201522310872544904568546715396626858264190958471872393990415890483934833868865032805058283583871985128417363056548760213328804765153620492665365999759433676351410776281507455169892827315161747871933614063345295029604818832155107225034082719249159683116125372282354494798961809911730735795623035283094393207206792961841572771745877697301868553894721262510126345437621681054494774631416033922803412780161638219109989928663222293957061360438915829300454073128358008153914506681258707576741644076394055780081626047173768034721200002867074260856521277962418593831346053251214439170023610806342272444363272370657082854206139973684054623813197128110322674977839840765432468832949255690437672589615939100540641026616906865877908526908615182723466543865407447603476073072077155046029912185569457578075713031161772902523058083148237889385419525418364401520616023178603494888695899787343434788283404651898029662678582511773839183517882841667738836293278496502171302745488043848830247562119270621647075222161042191541750487369775371212680577640275114059029638439451833790696767774905831478429898414182679312891321993247914953763640174778582325424496650737698598014237200724757458867220279551783603865582813322194886288447767069107463509715359370121965706243820877080696432362732072940679841282271681754413528683169976271971682558979589189914251384779650107957978142497300713703910629727740386605190278444081120464264725487378842336521630641468989841953698671458143548549629933632649617350374691608608592792275263536148246655855577525624377004647660208529343852370690332241560274618560896871284865421807670870329488303591539584114202200114359722468288395193519447105530928119848857369240665526607323254396619312492773243999599466819700843087371468774904942621630903942701227249326725681093897450272144212021750708126718122999302797063935044822246543388906962692007966744926224155128496715354223561837909416514645212954222197397731825802469833574116445180738069793958973820003435874293751967387218928173260747653298420784794478199417749707319025151101082578147700070414644194287399393488193336880423359627194199909647895913812885982682858074524372808395588538729075187577223388855909799020779385917216988449328924498461366549663365785265046368443459068955423796559938920336099527679919225797739744321973985909332242167559858836251172322477077325618143248067893198957246218833472354985273360196897268663762964497491199083652849827093214081763193373062907598237126394198997122604020571998134104632199847651347746589307353447255773862600929094396346416210592132561421250583826743032499639037360154134808636125802245613460602645703769610862892947954324015198567610259444228402067140170645728516917893755797539525235126329873051737309729960574821023853692522926275230884143572857808273926863337768474360096442378479127326768710050996918338748888298992195711561072493471137182661900132426532965638768016740285056679451148303100821044800610340453024024914537111330029596203990153067154421723971004092141708468142193480498526730060579883854106784730079374195850909719022238635934948241652584593877175632791156344489053565019424648764690191361726277272592140517066397893577257003044891950773906813782787762497120357459115773864928815550162240914635241785435564918490945106493603904484531972779308829530852522795810226179448117535527801112906863250001806614126015812954810835984803015278538679739590172418002852241029158483278126334625112758600901358021400552145759803018920052890371514364488183862619725237187049612134666547885650756071859877449273356059714512258037302828878145228022174130289626671888366115716747664535717826687328267340580158859631540627664521840405710774433271869140612039208110583778602708861694826343814149586285530314714443901689451789401104455739732360879779977803553526805654258039984782453296011826318952142554503604327099594838371095497187694154242401124138999332179115279099434666610358552683468628890946876502960317311154808504975399004074035106781593617619273519204747609996580952605209941197475982743218101338016317264419962899464890250590899256746993646960244870973991221124490930580228008775415690980090385422483390852238717288872582515221386054357575861183927082089494930289942060449576603728716403046838189432417518264404318175800180475975037620911376936240721138333859805633455270602110930032308895014664626286011246942797349707042844311982934823118556846632248034355475157697267263016056334426546948588723596831695662409172904657837560230648047579472949583199197875790286252956414847492171346257853327267099053224164873104285208381470718608181827196272062710725320106973930890244403669034123741414829444585544554848214560571086032915952477761719988244625508451670580655886616967330856717141030798168494218676954801906276974151373556717584282141524109007778576323622397636904767888998557529433529580619215286716764623308089677045357421410365710796556311005150734604528059560703092902588700779155434371617641134690048927611915037945475820382853957453354964684931209413870661098900638945402355583193085254780200525385149554717893817742945163628091924596923460412047602833496419903642410560516125384268164316721749755254164442428862864954500291988760013515366098608156769336929168330171136174377786671834747299776482060894607169940614449863493666578643347011074910689736033611097591987880993175244760797703332466127717883539477243530491978441851969103067041249961607442690979850664758964718419282490169417152567539570616307412206693117402772510806299013764869239728037790475218149013876201831644125485280068439467613121388869136484798005715381933205334974512306403700998107979860626230631576546474352863905725794784334945899719245783490329923417168970692386470139732121028867368491517434006410066552783809338878431369899913895786367719445881620426178222111643034372631993064554321101628610885796777272021313348580054368647203775488518829088504502226996635216702162795084638622554207123622286986931726835139077026363549677450879090365924300203836066211459573144212212612211235685046679108198334558709849042252125101559422813578910335100599896663193488689959621145092608794286853124885649558393820049948459086856516857359762089535284405310338232402474859609672628038214659670544549821976442604889579177528661621509265148859902635856469919339400152015671317083134268580601946558065231128707450783752041307560937530932733725369084068799024621355697534440182762763414868708931080598004974610528451989578171483710609418178987744821499492414687674280454063790360335603195247409519941582221590941488307740978480902170216280162651354225163150520236478165308232749689795287645791579944977687223812204629943381136581331388816473490078936220325833581614383707685858996724543423832687709655979774792953056814700904875380353324688202860569419663877328368612366332643705258373266095147423155581118011393182385175886565836050917342393525315426241842262503431295502609795320107274499301448504648278523663716725520047260583547056028412039996891321964597191255624845726613386072885848985811776081410660932450540027264046257434494842548935951560166686335663809362474726297441332587206859097342138682830358732502626200649178859324286810506725024947558848464733665780442561004467302138987781559863933191827305947363907993911100212505746969645158160315142470643147383071094405313473056414983510181374040323237774005362891049636123503015211803314935573658934313561961065178236505097517326771518459268070000735770837103947966390264758922147034880191909825020761289123055434205570200928658048310469954601078100237073265769738879406598549205144118563272294427206164517911057936765436314124960711889052090581944484645383101153872886756028762948719685864442722870378327452526288227462522212801051625677832795337927367485221770455862155101557570828687936145364060377736840657573683076616289435083397984720061184763641206829480953833529984784786535005223978756599844972390292766584301707438335547112219049841070124527769748697700053785841941220902332780345400359901245862521130759720698625631586768782117994175718565576607254115533907368411865020717098349017427574568041043698024756599422428855249804837385910460974237279312781232406698033448322782294429968867383978879861265550863927317500597690428234435576304887393052158158240777903194323058126166049406915636956537908130220154276693923865203800421072300555554954163928635355192243752276710762835616208412262279536494018640027814942024197674358885638110878364895697737817920301644201882269095868903032955074813404012766929760141761589386282711505542963224732648419561280071888238211938150863891233561179040915315614834488708178853674696763159181369208236963461255574931423886940250168038704335862730040490983269900162074919667325303896122971058657732829489308767530881681330322243937211973804183432576267699017540799362403300214133218950614679263920065965825610265424963612043424086793965309875644286667407028574063180352343898789652328580130774889517018373754704510819446542948391993458307644086715796789914676462091630200670821625415785974345135785189889403965936953513465257246329779068401043752269264963289802082321342184206417229731753818403006906658199572956293804548905902561045310034429441541171057590499736526577672760062898000042041601229195885613926960543657758611816160747365563251321864029097710884017968221531111788522044611397068398133339494934257033113789922275976631662954543482523632400414238896061834916635141726666247346324901853299998586078371672904962564068455473434066671283940172694792563163407090049512862097475821271370907064441079660960637623211705522821242773162336946939541265498741714430703419584947388882925082817481093699633182202933102606765476832025464692307054009697297072894402473040526894756797185412592197023043693522851833844503772125483249122117515775368538777810220936603911613140777749670090291488917227210745765438645753771954174176342385302036625874693770447629951393994501705383255114452159528199789513972162165209332076550961848034844453591828397981477459715637956151315161600747297872415162926266738005446390981407188978015447487004935308416520362543733093756871565123292966046403606998842585071286932183282708767056410058643562016460858427195977389767602236504836879932498839935191801866861984918448017114370450609678713175676273141143019622730243512534995923477084860037252410174993816258782928510915195467571788503633361421293699297009113862251726039965623324934365165454376982629890932217447420818368148057131923923456915469702064877887282039212641364748892067152049433758882663413843546099433059780079898054151994768399474958961292109543539405987649766531009825989867080490805826591848952488431070135297225392893991488170127680674358053151548765576629742892764520001976702229122790413059295649701594771418331712419350799727959036778140457425155820379293282904108159183378581553249470198824208117962019599499372945734225812422654526467107981360422216987644283003200678315505552557505018685670671053171143295565743972500429636567814714541250075282438399595859660834733724454186046812182370746468833792722144727941682747273525268215719950850744635288351464473584369985429651536865376895042292667626426374107760037768122347001804722606505627857029536776776378455854203720226965222917992968206384381823679416347711879282821558923764451388023927672350553604074834393546407921170422294302617958272627478993033090667783406460543108170287883068850078450774383172451033200249044667295551800682361469392473049260838160236758943875948950013329600847932039556537191509693895095039815298976812114647116711305064500131200990876329880788486442589427143386714355004122592300167092220515583717918185633285507273769280019729955638600174723595254380733772439701117177229677883169393674898998754965855015160508393123729441165986732175974570045956086652484518411237809445520525755612283577650904434541914092414015888382271786171381379902890441672983652063508430195240252338958883869141878252793648553959069516647129522112313551339100329501550010642621647978265433879196915834145473960906604214206395666067053848950492939759609645015339353775599341514188179256704988990071687612587684910818414624957548028933857867762227546008955508355695704178677145912158411849396511277015920454054719375560767399569982091067855234362675246964623992451534855589137243085021564540270100008950370315714036772488741032248364906654150453581683203673043381211467287241494366704049894575091277883221747396006426597154941896529059542668543757779315317660317158703771409765613835190031381284131053391285290325745352324026255444221379582685493584608386577813782613949727796423215653888858958014443588719111295717385954861979027832810952437422848183655872586247841682347052769167987686029506604315609797267515639489000888017599261387140531427443629496324638894118641027956811470949648709859378944846275680748221245472216549793369182934666098615599120235132396012009144790226582776147248987729613561310335566624269098866436238730438486522646839221161220517137874297591231808175099021639553509388115230358434490094876674687503403299205226456132237379897603773396695729159246794775740078265209783048029229731017603151990371446681044539546432731855341763516947989934704015945032051641394624132101320542592254190778680491332225461908726547969516965955263671502666323186498428980892514185077001258381744630165679328958836682653832627762268743326074082444938974819171410633744190316755309564521395932850359091785110271916695027757050925339990928525037083747907297570668259038006138684365471466116883173963073625729620182591794419618167338420682875612007958839046794372253988568516577014169469865674639748082060647107939873180109596026749372999762608659884539354255083296709088057518038037071448757854147053747052118853896542190272064494608448739446862760407830904242777411434605402905609927735913008499943514844189452028338116485902363732712489368889801339809638793140368095919574634017839700694157153314005910334023476091930561418884824138479363522096162608005493759769687165676886252589688346097654757780289155436033774922842910665177612188478600967047522363968820983054337828942512744991929361018701637883947250052914744260484327396813943435672158758068985809764070565290133890835717903370190762833989524903507556515255061717489107508690697583470121729964808536673912106432272463591029400449333324587868672948888574005698884708006442968729263472894553577661657975563625917477158959477036719541086786892886413980875446012090540729837342910779308422035991660547715322597270518265589429105921598900768628861208935237274669566236574720350811538711088132815155743438476209742498332418361786097182937505544394453722285154107453669028393539174129658837025453508715375693633254047610637426825441937018051301563996171325346234814700139657820649307263589776314172005308864222834867751378094767621704547914879262194891766504902857452603106685516802138258488092347934493762146276636462826963000687740534165702072159798117549085094999826145803702216358761009912063195065274247525332725347606939966696308718425436603462209676080324579000415783668895012524318202164118469842131572869829620335500580189693417394604714442126675311569462838232425579893198377560472041704278272752051333414848768423628374369735207597902697377236282527037225658911225814321633285176043326230463814850457495601288734095150479581898985187182060647872035018906166160808084138113216860806131657411365822020939473148007446165201403841588709899148076221504956380177831385333713434303889291658487351547223306833541122404295506120111348550961973808180901725273855429406121199269622081407876315830659859863082599099634101968192473595577454720734642287004177340436886720077882680200003362799231734208368746868014160789323534766654358352399819163399749033396503982001451817255369164297324959688596023820442701856360464941762989838819564449706670679127494837996666392338285160180920523429093982687114423303515899354152910036700190148975407036521214065712109793002432189858733164669947059733859665911455589418388074278847906864138523180937932758429327356360938657319248712355506301018968943009359544362759519425412935208076704328137493417303817477335055528843246818089258197572928018452407192300343366981485883376980361811253177105950151860450200923322134038639816900897301585247742221708000767587600636839802485831162292942442448596300400710187009489489799770956088996406096231587695224631625783908089122061846612279475535589976790753589745884182681755491152139757660250331626999539748681474236079773592752263740445946812976892118311645999975300587326788988613273263452435100019424996946757728850667410510137898422614372764777521276629137359645476813023172368431264958910353062813335303738933162981007075195877453802526287043142282945304286159155863340660733983641181373773111613727619862274319594543751584955937559708284131122238371468707646819024412771603345950858795040270538858799581192989052274142218840361858838650206005940507714781001865510470202039279450293086609425141273152975294924227691592504925953320936077433244488341971951022741823847657161044935348597990182472725829544394258385662112115589586570552627564641094650710247312719938062408718686809268266427423850610033029885674519942578458970198124541732079221741156349241112303268204156263492762632685758679940503227357168995829193520030108978247034414558577268675236706903639095829268552614890266032231714014340443580407821580965238083053030707621519069795823875146100419714299133982125840108611485949551572753150490307081956888994141999780149543517051246405862918859250052457886213848748971553238614651408671093468668050282896231431108037014724844100126121744719738122133466591482712840165923097564564222879029273442061799256692525836235434109327407240532742901625835095378845554524437049166399112254105651057935847704435133009360813167362550489903336289678503701396896129237785927439604051780088085796546590406513868529492599855101528365808166967388230596444810951751164640518162181602820259358902941177074965345357082992723759795283007084725688848046713762566297689753144952009206186225319964178358319764779676273271151382142577253081099093856321832362557465934286040246767370594233568857944211753296170578565015241423030909741872964115845663611623132479092431830717570222433800082488195554117737532906906125278271949702454031188587664903080019371163225653846893513880962466475617345336264618500628673421948780521182037184502968015261425985248990937188953673697342625457074125067949737986444177288013359748401520191031598992246333429749884681796289185885000074291379759846926587433071992855867307395176945683575736771645889883419599252561921750397938081905239646824458587585038490642236637851638740350264655239413988942120877087699999486585588315584448247690829270065062947363974384745666274649730269091327847533173516191602468788632375181534705953788785921247894886583442532753156512354792727032072338539667954594747043165098009885701536699366739120582986989966680767537364163974347652826412535592928544801778238732947942939444414544602866172409303749599001178193253434715839516487831240956327676394435633424477004173750833448128241615229522466311796817806936774397906913791763807795515497313949672559135155796155186545557209707278749515834213312303112964156684638586858688756425731546138710666952585989836755265148822946172905430335564023658951898654779363510669340046099723464749516781859106946437501461718465659158547690021521029892873079177775221907785609793504662672021888173968062942277478537074490399409529206181085162123848189574977003705705542143537918827540183303049218485451001713661653884674393385602665268912788431936324223613975783093800891149335318249296016147767524461129713225544868206546487712601305969604800207550055961226029332466289698935102280253823313164630603854797516520191776227298753222492324060619492967355388347914297916075540381400120917669335445890352021071077398780397898499456112811096687419882099106518993239051036471028924609274972540029161022797438903209562028011954516962464132429234144050298475562508770708980428096692303563217027117019956736834418068554980426333771498722095343199039003770045986959347724106312834843332058983672450685046430321377684163862707982859145001746620560750647584602267989733549318944898468603236226258256527369690753801481717296967134360979619127844736304379072558571724863199397091119859725311412029791456421438232543494110755792078108071954073671680086115657538204431736173151869876728727336936704768744240640720112376353397074552420655313155850368228782263071524627099362349954101246398652583220454235782836961176700785163510796003500075388253963918848960631787420889675579545372774349363631068225967346805419398937499630886581891968609674903980025303170868445603148090979136423130223155272276361287587977992476814108119191844205528682023583126307232592385530286980056244413399817796595523741772043142125169497143819657686515753203180338329632441637644139101075217513031081282013470523538963333791744829079121641208995167281394675692172388661832938196555024746116035946253112596768632174350980050172835353586551848546244414343429487501041706993526788674695008799732670557825827320118503094143248116351340382011480992577388260559409116041358283612004096127494308774595295567708662301144770504934203906157594714975012059593631680884755661156041900406495367379513656092127763974032530372869583813389045905226750281357356386575091754859586423913587751175478428402737321960962938329465902219691539275152432523525361604177730396382057985839743578171426880754448215451463041290851545249120593497470521681666665519492054794478020016165153421050345543340141021971640053400507318913793144079367424673018547226327984216836641780476501905363198692280273358375861618691797706178751470688551276335283833487366855715702605399766814812134560749006626233435811479486272822521515874002832594401978771540153476078897704509300537733576173305362756062281776072508221506933903779291082044156713399257807042761040687432680920988810002832791363823605157667041759907817982840694602728714376178246662866701585294325156614119685212191924299830895634011256005527154545553091977525357698414847334336116950745557898583100719670069049268664030567254015179449847821424373945562471362620892081282439494608701154824461749088924054219394134234000593208672705503971112260850862709548458653969231364966085211557263846412244121669219187506893014200503511995955069472620101834367741906222699545792931234146800281566412834862866541122689302349552206899491233785515163313353564543792356116148251361221719844215965424378080869461282408355654780498000562347323432756424418641749218533754899558648997623901636856487431498729085103020442301707104255073805121015680818190110694234614797783262763048897277241873374892660992197244525931873253971383263582199555007037934852155241212315746618347325569316051710013995148153273797701845177721516218477097682403193594997299176141182692670844184421513331185183499229729201333750356453164159850926012191950998142116398055846605808851729865919662755774048462363951050183198577633262345190640009900223050775651326452571981917865110048990284998587847621674681203077271191249218306118020685242916130439441844156218096340078659475343339481939508166662739546034579546759651088268747051680576642652887445329638628420588523212343927250059405370974646641630896701485551995967364476730622405420233889100494818231412296894663826438653425863759234706866768688536173047556397774481865357714138317256401248652705766841576211275500816543483199900618141377742751345625170396790238300787067165466766327265881547900510304432283068159139117207798253389345409339445083992590874156749138368474797522260583504302458732937239313910969350485197013597770763375593647490494587450670856003937125368849051426420338555152028949530675215893382901087868311274422077652618048277001773158114144824811727767415799705833328989009481208536091852956176854947397443458111087212132977618352830539101972734546704390727319719451948400351053792298971743754064816639662771755914864179332561142913559240177626814960126823598810705247446345161539824408742621271390145219733767438744856580455711055949642249055902802185203099994274066382432477136446599303033419139220678726840013993164355451560369683417817750857859233415989001051228348809060724017557003765904350147293032629982135709698291124522287622978478174622571769951224147836019510378479195234881929904104946410693210321890297713897387480336323380110886682121106299450123105354031959641999394572071658358652482556611122240551480192760007165472276122298162175730044517937670041143259001545166051745610956571222961442045689624748217669940674798871915512227419011853173387831125634006564199145236056043032509666420317152718576189796626964396380503061701476255117152672043547215003600604178446536207242490702213660670086953569680493467105392996952971587964402616607923348276219086305909017177817533068199277293572841079389030634082337413761456609152462920604321535386672179443754694184938790227188242400627218766552525907924589854212173737846147897509464406369392548048265182586019755101586390144810200580917821597791287255031441101954569422704848370575728165686212993356193073982280152453949069689822212289137975373986872904437452447613927809332433928144746739721870491086483456870505938114518136516667681346100451814357396567111348170510719994039013914267272724281602958455612817005993893809784103367553059130025197609453866079822838102876914319488601723191589525952324444594573837877196383334555568534066088814470785092895976172548057784915597167502102466037379799787953517501637819479219781472591348659995975051454578782892520321241403419404829145569933410868121267194684208174989524133249096093854899967190884235728752472310191209852555095853538386651919792902983327773852357689088060011724660823181387553395261164035677105925709976030342486824664612394424094842890874054321582406908676878879736198385264348029778951907602256676940954873928006099371221092234158556468892584774973443367587592256913494681358355554877446810178248484695555867863003688255319970495116810010953650393220477720241018761882238419777726278177396116977777119969979441615545536919591583519768693560664517641226770445679862401673662384455508072175643194239137123241787260576869531911066788643026238488520140413933095468297170313990690335534735065016960683723978086640495772186550816297906168858264441022810132974276324500431420984302200690140756127952192572835236998088564145923747404917122250217940842039161128829866919627347093303720550034239234450088690136392796051021516804170992417796035335846910129676925102989932052919117986559865148096771715578583440185235241027397073847463754643968218932009547812154248245950829710215722753026008266306314470213951406188123832363896698865234962158418927961781673429833412666993053457132098746023690699011606712633911702177524191298964326435622235041922451243874470249730622961149120962078810226589766840274564895201754720921909469961863546990079774873812086262619394620308144957493648498464492989828916826458702712923104945543955075454811295534477049128397516655557570091858159209572048051641471473879881868438646421414430735704115244063320278484709861696004681693679139732214414790636626274418967706562602354119118296527244893496828508360997366831912901580839664217226683460112586219546697450678688344755618431751778805943033152352325583685143357216171764927731360983223962138741152190715355103565630058668283430726288445807664389579906350995586648442967320571585901876064128233458390873440094043742413028892704098016448360164284550814625110781555604342975864286886288737999797121524689555121432130256516263749797043848542826553557660517116078191961625522881310626830741269119614022709437454767505182267291343915089114241088545320202298630068329432382224091492492028412115411349005589642984265210144009774744428823932858081585324494565701390589953634311539457462561234561618470061679564676059356797521545805934206203621180078214853028258782986116483538595718762148524892995740138745723684378443760613026628215293890236172099171349553121190848108107312626071329529418005003752967895152111885326933418216298429305271584392998006065982671295149777578732573364122440148073814575181414216290556600305723128705155671625878485681324845912336376900972578864233267210081877088389921594571300595577325946012018898245426470731841017179804004270158582104348840844578853870860297667784986329213211783843733668490980809395030037005073668724156296262192431513085189557628485519058007762941272820180567746132576558874976985445852059476985041999645785996139785326115210152499745669194565505960150658453401644443635352233855223005278191583896138690374404718862470984350578924056339280438981075236632129248899341069207715113506922821673023414171449942768749167321757616551715163686633281399980073906250910861723930520219209111576567357789055768650872216118954683494878123275257887842058389865592129273781847065683412088623329427240311315293087438140558184253747121607973123447990237694752765451420256791504163580181067782040836967360988407557720719820550273197581568739780170415414217293759637322407063648128478192314050711049870178765664821837592567553212498719410058136828408335983297026297614204722683401150184705178946530723318477616649706027531797046366069120741256623726289371879943659183910229590055930206086258131477632955560944876768877308285101385251580472253463978992571233929471256502040873356306568129881882686458824889687589044794553097495351336368748899211092432326582195407976686259248976597313847907971970337321959741354908436843724274808326878007199628889478928012543598016210415494063434845065527248612397579610111452733807132643840230081932187492717627303430557482130105218050853403497941158110833365375502753137409422604990506587115654456333437119229038134449882882344895465005125291871301144839717204440175813112727172439872701199347013785852450925572828396748816713281443840946397094068847299793782789138744223735827488656906143738901905662284520797113280996783103118288092883830407095061539211190644761431350492189605221997866669522281451227053370149785877994582700194250434305449309320737455293049006455353052613415450065979751907795672764932382488849344108408292473772236015435715596100759087636765089882484164297230096163115333437720931920045541044839856482544442255236165642051492173639131873410703981181937003508951729886654087598466554060568211105436146340839990311114715071057149790431425256966737777364010850845115089726785769150610870060536644523089344828913685275470078772379838622698174450281848040950956792707324794335725696380542486983763215090562778997111291092766849303622238270129589308183796982010798602140373451364018218617968295893204578373752426924604711518385127054530743417180855328698058968338074205632428548962298583620943922892729870677132861918699185592146066245794166725213226181890769302795696410209737709702564807225905625674296149449783646754070741023302241845509763539345418451266804168551071061237536459206832471286649303788400948997297606642097671306621178803997837761671927052402232552152360298299159149825069216408848477549303418933147904386171649239307575557979013675350957711990263463615413233906558205722258471136983692976919740287532286985956063280698970209374193885203381393846501671676550727559408173737398855945972815328105380600064349006590653429782271854807177415503965523040270719263590482861866481377880753541120702295541541918152149014551420994500621362698377161519698123526073585465924135316721011207992731780326726776884682644658294872779254649922626166190023513192135660971689500642544384970464860327865883490082442465127780725678771581048545513138322477225046775982930242574349360265787591304427349836380607231506218682771664503559145578118194610555088138758681290053491426280373382919504817568501355878999652567850660147766684062721954779786279710549409019132279100998974655400717429226979328725920476742845740515647063197312918619679609742241740421115268122203707985045824916988045465011657280556042971243205275278531284510292929806564085783465234173738204574773619305947391370560998625662097172253530059253479454485767329329308989853293428245156964932000703332667514577414627624484407361216174183470605171519484815932542516993914063067008811079661291479683561752643842812550062992552162591459294585510465483250253715494870750599070897275075011279810105247740045880391843082571228111707603176455226553815062584994103447380825435916159248408839641544242857610354408057795178571133150810519071228124224817866805534711515386498559288943986475964073761320200344686419823823238241453791179698923165230676915653522356158995947936106925348825248724990299348857724662640467071448627661728871525729081408179085505608353204815878497264892707205160193125791552103497844420168055178883190544848919235647774870201102266830918620957249019839623184634836677516267170530757461730823149337230926050610058956221344667674088400607016643039837515124923132105242027543986522989494164348456493858603793884314636224058397580078610919839050039066308192480369067588447182159861163036737472502507406732249615086708894250802240624717204365207856712939620880245625585301092932607538692774710840784609993888148171060922347935275015851795560162521074245664668616991990241617116713083675076602797054185137217410693663985613115948658861508777317170824528181464496612315334141036200652322553604809761088021575350630245104697453804396505726130111654005404329861983051223006748906648968884397792494697322765031014988497430829495876452631794004436025354270280235385193138283448147931187096365021791168779738685095120860214384239083049474522195116679128103416133441253622544638504602551801254986343217903638019627832520028059619193765143100703588686644975049335206324077508172450256126970771387056681372225369495988958645339388579236333635052114690222154436175916047547822254569433630471297055860818184453749372812860293397477069798684820444620293723193858636336908101376570789359518206232109268260518679438535516569628776661362957496206382356056922041845923714129360895002089563027662478478830300346612122811444806790750023685027710295741159582066674915280192658494192523788946617700469034138227211593109986115406469076215449706489925269292534021170865060360027726141493808386594110929658331751046018446204745099646135570676300482775541160924362487105095798802244744795119140098958130901530801304802028993690169549902654328374536082554149637677987190544794986451864410100536658777601283766650546312679249233194924834480002179976242540549829414642207705212623480132300054176802400884072656092159929267062270342236676085775282375775350850693436954208127311426048699820168850824770625208165501123646662973565647979549571224382436109186584011550638388023088576682071182523682160131845183385374277547286728762188635254476498049650963779691514435720493033424751231661272532467123705522097494420670424947451417057599952488952903420607547711378633952678191766569479788563702582810584940692339226547398578574747113649259240293907169632316985432269936914467745914869460009482641810342599545412957139441586798221384173852811581375063050620381700547318723743947663844968277025794357479294874926829430685407064782261878715875045102479590930567748751531675110521107227485513730965343734038230049301832739434753414046462359454010397216598534464698830328186731440299369392047860913547681366808855417680794751110389830472832676950594987246573108410209161234185562468247917050845572763997316828293034095160212446886215557038052941530837317799305139238878309367891909634883928452509777875291774701393743840727390198328300958550084263205967044828480175775642165839314452997871100690073970580136028891251315619417850977768522337936408245860707258410718672646884873880012800575712043053051265040394922223402962586961816857031702352206984886645213382575037527014329683763434217501848584222012159754778294215640992368971839409011887047504366467218148815401307836129777776849311084017839838379961989188278198948370885175321980288797577294266917737090175756569457219503773015353279417860614645750128738251529993649755045024604892699476855330292157385702182064268987215180799161299778385263253180116007305963330016002136734694728784371656061376718675973716860945399892381476896725802987856469663267236617740625614836953345756590337866319405484116576876930982724116371169390419926255408886694665925026507761971398647733695872368648675415012992937065171718951623359320275264210585542367815019542449988001517557187601363111198782629906168221906897532856205480303528290214147299847312085050277802122930323187043672997740129915389274956289196135312289475109948065787618844162857093214603408102104409017521764501693362395218677190769691258353133745637133757403398168885620464888607716642628362562550703975419735614974451957029318929398266136480933724177465512237321392717576853617530297488489269624845538197492898896301411023874584501435649218640472257029129325599187729716483053083848976285686875919052008010946212210280900411975911456655395913172678560121885294565123468756503168646539336917111006015827481285897470206908566426260107824739056405404111237510855273972076504743687540897108472165279742313647882041886371321621218585903682584650808905592028634926746116311762607791154515436396424052216970417227260899644780921832399511384474556105904732409470294893201643076371232132445322329495362761581328492917488808282776899820880466666259795932937556597115525493714649608654468713140635955030075655047938685110399419096141111727469368832976495632699621234791663418108047500280817489623850788185490324986380322998457050760652848488720051866320571619401866987980466424015166384208052236075956167848169089024646135130325231604038598013255930056491458004678089644814411658863990555277059551190298127848834818948195057788857625290868786337349298954835553837940495831651600882667477842320332044272738021753852804990586822505497414403850758177463503409546904398058984667681452829837096856522754125614920021732355348067327036001393781174228055854628558018081121162499861946736548895235771965326101944479742572546418250195506280685499348630886478224292018463096159073982480213525345696153085953794070280674359178713686963465270949708192906626689206498598716437633006018966035678966385735978221465400501052782432154860584564394922729909031012075359180450523332587902654038984550848647323698906642782744100623320749272377258560329916625461576245447978883523962236191562217241535253413103605522902643622632631253972132036842802474585808790571061951505070968899959580036698649937105471839468863768796634519673462787834426108150331075702116364180315327991473196599091259294349986987633172077286587220101992415684510097593277183002931021130930633548569011761503403079198294389574036263235197408594955703927822424631087464665175254880594024612518455431440813198817470733584773054553614325917493248243408267550788552449882402936404433107166822022453976312399292322806552668026139355242412683614549701252636282193634980245914085714517751185541174865902939561778705017099278535072116577190406360516743946582427925374477997421691837301970240870895080412833900029374618957080953092906428478745391104451828102205785324326365315097294361056456425065521051779037242825642151200530101868493961734277716292790321216367726463873622084873289498331710545321404277775678151523473104458884060741214660932281568062394183232574820491256204195805818241911967155287446998666598525732776352547129820273715718501357133261492089881217014401636777985308340495066046995338205163632489249927386330610851744871588439199207423413274946913038389866950039739877647521965863502400207964750035486296768411267837340859130390292402792578695704149721906212433986140744719134728853122363119921011521984310884689471980159541028762995647478757383994246928253299687501823379885731768932083631391770051657997694728387447889337901057212513550569626634957545348297757405912709143385130110604861505464679709031441941528743346331293753386665652069692168362084370151391572394867758149142706312024372936748928075723556952679871461699882619458722454536547294721983986542654481564554686916732573931167357793606936590809970869737234165968652526685451302286559156472682560093547683898760172320333731033306930811259873191643625220776783748197209951490458781419480229674078795573722941178808216577694386360339771896987343718367538447151462558280689145286079784206866443905782574424810391750663754786750920685845007141463952978709058002624297228084347725690717384326407235617184981918772087964544556800943561811446114049103383280406844143027457561758771338527904849395811108848391495376121732850816969414961494992644219301141617183801501251758533366578552944957545152285167899235796783311558020983611451796963476278296829026410995074111998155903418051227257074737934346100215640926855421947281021036842176557380470623440385705950029608336618410147989749660022007130280101330793777428125234600609219109461939212888282318508491330419207679255361087373033563239606669074894041167167734923149504956618211932542928668393474993122291947377824629715885238060204759131529007913763422129066785072907709144744720286201886008562345067136194401884812039731810453766426114018872090419279230623766916891013291010534070882773951731929050982329548112559098953378481359553477204269087330052222663657384859256765582960739179852336298702218495339215285583487509051918100228763217635292873025132390253342649886590533385258858009907687482289033791275794177007501663236149916094182551801488477442165287007224575295972857168812811960023531675603352351084153782335771337285367311169692438431955096193326456370637446076706752439161067676909027488166845887073892023392209864141617721646446534738889287967197882787647867181745071279027391766263562412227128794582767693751516159649291128867519744994499555920734597270853297652585686727411253171722617753714284567286022452278090536882619989347634231335217746322944084041754772388761043751380889620816852474947211188820934531647602283905514107798240006011274698850876754091960775550819293583267501681291952314965233374993245050074735958701471617752163249795749518019748097653552165228119111500538512553770454508181564758511370463210457092847565591475682224884623718630835319567051571219869370302124089121674339509334180666667463125849427573815286709317862614336610829097070297564172149460136655586324914166849358147778075338709775544548824422676754300064905596940807269276922199012496925818845164779653211761789784204933180144787919676455248939900422019223432312777193813533351160526851164633772639303977550036903624988336379263710479847169989830406112764621438917260819084002079939454416926787350585006019173381824953125371712587390736479320330738351382429768949901789205028325835899854034599514644090018564804320260585457783021644965968181121134193770864848437352062886865255083743259453034150492351177475850813220035260745230428158054351875345146486531931239070110127117526239129567077299877885133937593563452255112436246316730508413985575005933996665503175849922182582111791778638819811232420125720562619897044426291975049307773406945388457615523899474259532978217244820694620597058256178642039529936934508688241367372147281129528791654701250358561179560511957911175476507118652163430994274975397302627914424786045425876491604895536069029943354924721581561286095810750991677196059800919685113012401002641883282052886109570065052421239084920516011913349283636628552458528377228079781625753009745168096562761700848610232436675401341277904291316516226997294260501274913480330621774267292849678208411426976211462865242406086928698473058115206618186805968584768695820865347693698703703102616032790326879680588575146359629455996379643665847494001325804265438708948219109558720814721666433101520348532524025945786802045645332639848496101112636296374177363524367370154315509223241193242480861010566988247500763423639711229597119771576422341991383830740154275033204748763899070004908802425286584328245236150511081774385562040960795704225574605354850310875330442775324944505063550759211495604651053210830551685118610160704618116572990750280511921353186329578232508290095119556972769931003547376734832983112988258470446160509698513719733114631684828192014592517988796283918983936562369574035295280497058100825048284531848021142552639309313680699580953641544205384382011849784306264146310165948486135912164862090430536466554792339280055950511287426837569452113625144847761385821372585421855615156666915633737494681868583922374494202492118212540126318768492451296313835076225805573417804681585567538420006537715757707834481222315352189903311922209759856779713070306429013963255202359010135146825194345872966366872298659282212796629131852110795694571908813887228622982915339550874508316957077006240678706462064788001672465281930018361567087225591013723953189224944842975372472164717970974258315420921481101099445152198705819190113715583360600586867544572105443655886011073861609754817538559015553485220437943353225229588066636657657009809587813176069740077588090663020435886223371783393575478407546701320673602080396249335948499020473968740195890034469740782489950665278432790927912885371718886804324591131306716624930501629025742318804056742991296673101886478654064794582501037493719864224908281175602632632283605846092475932977673287559977933750233146422587338617483575496824407637360240389282492867159636545806052939492067277874752298672386502040367803598025888569711644653676631839324646367758551057556961071329740546688465093292501474268647694792427734380510448265938331210312711879820755763474165149416858316163733392480648113155669715193951497542474773877461151966648278989267786774235733408454376913617441077202700084837983450596644490692528197032702469560780591632121320057249842263350384817786737205866813198858207808599673339717002168159413336647255713020661880092063273873836937464360128980278329063351247986664709303418698313659369110765055192054281648401164856413589940512061328221007565422630304498812327520373368193179615701563214748651293363714452939749950290528018631307335754833064003238828376102464544745556465451666122870619750449569130248807433092461439090328014740079364208335220388659328290902024393314584662096428076141275408610319436750719305705688873465611333598732679845408614066323647512057377359847556981479963126321762756899558742220464936096819714830862417285317363224635390802226327272020762385704509217110705419998445542347318360308096747051428882929656334764220363537415693299548934090594782954580714957788966731177580744624040924112407246347511123710903879230495302392356380651751608408367143765189066539324782559294414873806781533449681545367756561813949345795003611207265382680736466218973395111764972886295939673067246312599076833727023507238309005327535619032587789712079937926704286011367648794182729645240430155135330893451540398527030904892588583396342902473968272238232249191664345459434348006998066855260604764310356617416520410427684382813455514319824019622405553183217507829895763688154447915027687731995423102705303533655169615263223634214056952634581238223035560018444474054978173777459982964427590983282493894112415968881481233581828921300363438678728020929253306166150044030742689317469645834186988418696527842989856324719745106175496323129836616498446673903932743092197020739256222151743340596887394108607264486573561121838715040159252360752111853026506852788473166050313503442491253470747845245344671514823157475237778083064553693376515097540583969707279304692885861532940754377564260932479555692836164596264378481042023002669758155488493835027081966040560954311842595056884471511334789803369253474924122493340575687531682832999875018475902217865482488041861937466405449226166594880234399553813395636313243162013931906430352128357295628152247419478350463514572340248661771304226356757431932066670657680306305203049232882417128657399489334844644597886601025817859408738671295170532363392991350162251507363861405867064155175070513178247422459000913444683752742991862978979015275574178302630374061069986698704178958513187128461724177604325368013340452413996530564590303496364316618691763904015639938849818811146072568977179382513056212152944551863525847205407503567410286343148293778394867644739501629475318017858598732549761693981350474774921095017185339368873798964858323277168120796087953905083326987030445005998270775559095012449706388580119737422466081951073797722610054600984200048546202666573738897506000731878749758705496608748925875032169473417809262303394857201450669161167840485392011701106215762530233802797362220182390359221033822727508890450165846311484397827849444475303532723292285882232635865211321600662763720398221233438036489764957478602966665505156341477491007841827061479846296891222237054730265557673570963174992362435830569954139245139641710098676751063768908004107417048839930266536003304615905743712979927991573608683009624929861229405915496765500911504582856060572581629635908634055246484656645991203092631903027818524382652379172770748467330183611687089792356945310307943650559748578808222240555141988202236250915103965229750296563461968741059708674592788606252983164462028586230589808186109158822669231204558224554092248431056076471531279803820361786376298282868743334026384601475749605929829419111563880511749790149312570133284867336131030019198245894102513215655088513046287659967929206121010581887813385308081422060719721162070887724987624268297188650097510615997890569190691691996676894965715937862334425344195015310408494116051154984955997927424510338891638516087722315290066005066992834430911852441656739067723368619505908079858597742985074012088841341538904263994733937839631248984949767740741862061454967239335799655807069830131859027904534443634339525730177119844730719529076844473376376663080659992592016111373935246199128021984624510839911911431001312834603744130730783395807375299226066169286801994041650205070960158796815606462653011018567133193446960802706568612512723615014799748134257300606037983743335233717197270408217309440306096603768717558819854766498633198306310953128849432410089825117554324242741079688348250949079253350324186772493717622405312020558973159082583033039219832128087167312359575287229847828208703633486984981897970026418584523582190138394566386048075191615281963989310081350246495213098617817297002170843525899368881559228561246624276969714485247417944585656368101537043097482413177351706549623695801619434307075137703643027934335027557545698977420047962631128732028257076928090975491431793624390020064213562964140929687726810191929118791352004074398589590597324728025482922501314098163015917671796163243944450310246848774757605245662964228023254245450958394083907238209620804104969953417887487456854510759901256205979873112948387183518458335568491263076161043593783457408170448490838831236843013383442978588355680594826334053651333580047888260708657869532026433995904762927130390442295031896698519403139347099122894399954729217595521894049847248785910578665928468651119584862592653421434040873229966153033167983666580099470191604267970087427528358106649002452679954124197124850224014508677141798463901666636928938919626700095705234629064932311527697321530557629068083521976387439985371524876390882734369330643690722856476739731868669677098962981882551402421784693813187404608420621667212797554939048335488578328558224071221012841219031087946923977973674233147251421969616236347672655315996751662829696311660823485858074020975793941111327253989365546232750736795302959897725282232674567962276017625560432909671706479844780110699745104288301385030347941311501124490192899395460640241458185998601894925616529525597571078441947368691017639853991720270214942923964651794527770319072787247506673313268941517820235481387574285506499618303744755423934450674495081952384928553316141163185597699490341595858994044975572554247874956076595643953404236874027604061838414583194176369719553939652208400127285008537743641907826678713311099360546931288875077321303993055993032064779121152765115327363860386061858863241531629196523830720651513981133609183964527672547972708109655303936458433636389043015147024911806223928835277818443907914274310858983250275911924696781521986546183369419664188988886345810105205111318842926449318051313196562494484510421080672899917330349931243685127920831347988127336732872328758757991228231348600123831488006629648425719640736504672612022405855809406130368112436924252754064356687477693917011217315410418888118357828852399950922507428187758923866517704169819681353148156090467317230307080845262931061093633347307147842608467141769334627575208428852492131059127829818934512970549411294450236031759030389402719032931613995669177155803387585264257999445851242435107165408010508808353555281390805752138015731150146567155110856739167294633061452122737542912742305815542293377092888189783533421551922015251131515884638190303784904211931740839540945510064372240025107250743018570392921810904390232396459052849849164880438495154310947658654872976030333040182616759293191655982297155848932193344494174928122056261400404316303807413697176282656698126893727597960450166035472139210976804883063199468463971522154287426716616793789081204398425231481688287189991939841156466321903860894705909123219768675651175135264589887234981092350158201215192239558848218332000014890702786018491933921524095003914163328791058538642698706363635018358203322199080101345037112909374291262555269149472779482688956142854160842321153043836741357329737904674794450912868708455756984957777808580748526883516129713428067161022210115042015189883224157681825200022790820017568269656142290345321007113741970097445021546994539428788491382063046086837709368255136275754129626001120922444950832983630971725109308475174762618333570903617865483671558973826235023164620956516369239050360478446875163607151676795982463557852988546186809703977195385428640670126629361388131830289033464917488677105040584061059041935449178747633657831146826447068353933662941870554599738868800867453156854933981478304536023015777851361940067779680683898299248733582550361524169007870814520984878561850756312985512334490461975513422644142781213974315729515343035570052464129410464744873709249396587216323986654463652537832522018392028908426332263604505319782192485056150357840829785671691216242948251206541615439458121361059128536062244260994723908105787235893208909321090251002983363557602655166623842945228184341930299487102460259703229953469133769785768195526416050443544928850318056832743765812890260072047999560643149205301496304019660534100316409031348771253457147069865457760253323607169971251141544465176629621802917547951532733743451249263600174529204602657973879277182522182794612042357689959314289092703914070016651055332644360833977732949942191823781256327427102171063992205595572513101764086669389759909758725620408963055666094445807457820840745023932078814353226750129477431762452187721301912521171301414140354883718520243888049770920299868431880287515345309393044855468777113862334297060393143739050254588164436862055517877105442471345330802239960589872241735245241727597397330108393487919467128709761683943411076898576616946617506263616445181706237460446898340442590619528682714827347758836768046541672816137781935573981059021973359977980531193621220210265557597246032118931425496917884626278357664512771827191665215974932209161583811798315195959950892792352579848638074836049094885320797390484543635780358174112787611282909429118851875592776729775329854163798950441363887437623065387199468059921752881829110800842099208882162703975695108931369869004869163690872296817080330544086561371091859164972234418444236565150859628280518308886426315555206776741584619427053393307405021607527729795409885359387211770838549610134275347557968913601513552557233588900497579302948462262954359046480731926441565503955601280617040305512256325653091557603398530714619712811832616459222235500981730766711468255627349054384390818785366504580333318055088760940501922960776121105444393750716472236457438282213287529530826994725432739311975508948504458816681385663835557912405405079888434527713090751830534899673812030005966826847239035799416712450120525696050981681563985962282882925822380039048299631444033457116962142184430426529331353006560811275114009884450917321877100216136997137516404383586499374572951034631259053489866799581258304732417762522403621291394140492002818865833101835059182908104880611698429279161728507992933880029259265875177744233756330844013297382017961396517574162038321585296949337253414497735726049185481752601548820097996594112381375367138366785872680038274937147673943743597820671497472613303296016841077746747568022995938505296673099245382239215277246735068519532315908519303758813898021743476269906239196270119290648331517925106582485065577880045675926214174932437813748479028790950350355162211507712952333423196923467785672668484583560137736427516528109949260025257678300779400018145153188772594198783385063619751533091725764319788094415432876889064623747453218896430539651971058105039831243926516870373914261094999326836720504394557017670709098657470319249616175018425051340220534500626456134754764333441442815960444108159892686024487037009657323661514932449342291011505516828265912548923446247328439059313373078731937117662290039169166119612352984414419810113815258947514925479031247385539396912124351510861693641417811228213303420038320312910769046932893474413358021618736988423761542057539153319016272151415192251737406592572589787143459455396939380953283239572024829220891876081788754127185193270549404771121746535113329171653297457608738680134771741066428500132825650458030535289141238348839534834294810805582686264935174252629795248690139083843834684629129339634686904724133431519811938905136962753281803020181063677918527374786534594119922280501500541262770235720969088478174198790252294157398229147504685813639861235327464423388616406121170719832139269045137810274060828211638968457613989671086478663092204601107027497739112615738110159974667855564148305820350966280311682185695647141618516043392316221459320298535696578927865542909477565695255216536662611897034099014632358814413262209326968496418420714803830791973063200172681743678088590675118946336970160757303316786289472565283207086999811147171717139599042611699741808228032130289711706608949796419091784474047177589218358944089460572292548039465047111584980180929081401826465686446771819385359886203342058406410045910777488722843536547020024535123671150750989498678940959286152081845861630214032679355876771777519227507664216979189460214174447175764366471226676966573939094768652016971954897339975687331184560242435000600746457366661230567021098048065547060728592059289156642797349020180327324890329049100347414902101005192752248396486213606405870319773736679348195364858532511003970184236995135435475384265076520036817025919741116578819590782742912678971250143461850277704363722227837089788065394707425000430958590649285407054314459936461078326357810691545674277727339216411058872540360715606908003728773361527207624370540040936445997871243476592287963473821384146195667513876588447151716949983682708319284920834566867931096379476372200452215806578426169533823436893980167076252019575349532691912290884240592870635977524932142542822757353455205628930201167960080073878995336157262546871657855122819336084683060386824173665554026712781769432358239941113115509258993584992172258306049074779633411146523602901804961501075460998327679317000701398910464331815657705408748770673763976228206209045242923309271102409187434796488435338409902833481680981289835198171722592311480916424916398294296374403934847549038161765346646179707137356163955563714193333689777885478286671706651997493320368060708258417667792378140778965320488970421136144660987629356890793262017350289809801826989085063513830594023213161104132782630058483203494882021576690985218651500203556050699849073807850905399443899705384077219612199854014388998955892838486621316147406325010543965613748172193606289300353316104725657226373301957119218609856203716321769036239035002312109714061346538738576814684592692564441533517601560938466585358009354066945169303587629661108695717543235393700820618893283977549728633802691140048507640140295309259458848631731848466644557240862574976234192020107380796349692682913796079723704102896727831235200857671802245453833654226052767750566020015280117966047472802290447698534715400023348785710846228853712418059163326562696327176016616413025463777847419163837996541839909994971321663515698266573105136453004267023326651429794992664791449339762465951587779691660539119482284242219934885552134609008307509561721633445258199723543834209385889198098412093108146676764573876880807600760534895367241646026912293201072216689460965200542236609416333626225479850573266216847573026081342495921531511333288940824304213877629176190448908933454354805154231378306671231191580668396076641734504677940416386718141905317566052419389462759365690623300097918868782629036134611640959347526262940819451358122997906503857616386717282829197695176086058284600823347962041383499909215755041076973531280566557932682069291377638545089176576488439539642093851132901370085357575255594017684312192918591317641401033827694404486288599714476106277362480628486697721763422254647990576217957712861581219029394969777264948494787605865285956328061988167137629936226544089475298569394893596209438908753312134674068196964909663998073422420785611533257864109152952178931035278803601016866789648488373626755002564209117643811862488441924390628459754156580233790276334832290342299574123349538055790616072164899217876934503519416670008971992101815705485442488496693634807800135625629188250959125566286234375320774238450024967613042617142514917235263342221370138867760368679496882740448461880815444802450531331715296456937246727459200790668739075458643470547031990237852702319266093498693982748106260299592357269773180273168376145257392231793721796959027923679236146845984223723319680843098827107353390958032552364084696812901460203058065329530940374523819872789676147609197444651244056171836309254330532976740574930780827964219710909204308152561022261442811435943228203901105429852099002073046839741725805056812914571540584495911519766029589489751688067241890251213610609517468662791319179497887521470689734626166481289268714345997631766609727981623851833420411707113931825817576132126357391793092167663462166304636972502157395508999638192708230263091039511809459962681927268504852078195695727676645164960619678397159579921901531795999632470485907275958191761091513398772109493345534305367367867756128096370789479131655145776839337891172075869402472401914633091963155283961586091480769066053288036382547100197121882453039310450304166748320096039569988353778420662361234765259652516494580642623874084081721949898118711051708903389444324755386967119541778623711673905314320672601613626999499245529573611147177124180536950881820417877244108612792887978159927907907687603023251375256031693248595934399220377900511152267895598259430665943736873840067631836166422506055669783938145646302828434154845023660789374061368344321919857727593851591782721654695481463241561617447460493373314038693783447147713481144341348722339587640000931262405722254633116188827109881534373270325365122863227789839202710335446343670446677695924773662389012579140220691057874343811321447986089072727679110079826789291152333343589953674574969175580664521548987420292007023530650521597835884459474570348997590811506638818067512635513770409202519177401932242942275509478238771912866342635948609743996454701428383049633298143908013172504183223884654212609680993318163284335912109696346966147468960743319399654860007039645452742028509730394309676567913087755031450514330136016554192828841181239546413118304231369345745854924399394339785483421368574336624489489497564405221780270945260037262330492086840142093079059124108917156832386744514025785670846371573944340692340514004822864444173258968303614318209057319962179992076111663270645998456652933756532837389042645643570081804321387097387685672733985159448660034583887288408730351528517927658545117387469290882355428491162041537122185239568876372998088462981069673820814693239253607845976463722698988050184804414833294694877942771370476392180440796749547743034829237538200906252359253749783661639276479301150630106871677979964741836441240496852126640636609024919924802016322726338148640454677388475309952454905969683065524649909031074488213616020521956086121004046070594847573239954552027656178379600314796217885038055389301479631842173054965438785251319971270231878899619511864172057842553363842983345981238906118835934619018718192617097684932372223447141009414456873680749811234455515959974863525085069349902619416212583383399204263251717575633748701987022796295474290799796112953359832325929775697154662310009419077778690878452861239545840913738053038497452693440413390471988543814679751522485377098661447674131393444244773457332218566709083679907213485865741525844826235701370194779302036898745794457994126540120773487393540614597036503249340526669334365296280311339273471218665396494508792342802576193652516249027557862040696804958192436013092123821432583599874314950689271843319184349089770546057738956053182237252559552640339414435668340686263244858008721826385787445026686219886547053648838598172953594319870666137974206518830891575624824393303082803032932083144038013001567297023484971091776070222971794915800222648436722303713175850101723241720030316440922916896422237563836685459172678981633270152518831884368379128982334781356263572450452233843687504216794587661721949452089391185808596234020176825193721732592216485543671162039991955222660446880502083996016132129685819499194023731995496786338249126135578347026764475601398181594664777744946027739068222338933993172163602197164383804545917352575803651184824477681705012229584294306907822756752212555164677047436882208388991560266781047220650358541410409783576354622170443782671455269747804345533160731894295533277141003047559158027003132876254504427082672775418405241206621242239113606501153186070143046657098559628691560132849391988222638157887459491413175875003969443701004483418101651705566706041825731842621084144386742395875105843142089958879155183447548855680325478000526025848109078849541618082171848501231495494242569857741321888732762242419315673162717824257184231433978048709897097284272570968741471288453015803458198444277477534324743036038677530945071377769319184777585738288684113631783750408554504509410210332231766844643237985611364261551818025976651877042878018808139724332063209579753953594010497492238701058050595923757441177595720443203499979835342208815512075926294660794826267934707240047789166909062063796890516189464909929273986805347909867852931432657465380564737370091387331851394910375885070743783442494409247150903829330689931312817723711599308992735416014173834824907059698141322719191809978275826184670630053632188027996671952233444215817035222590762437053154407247457506926991003073527097117864384108181463054322206180595014917566385017000318928931604689357477577913345703657923297584032633553312540811481804479316934146442858829758833439495872530741042591250636451434981986812392359163705403178170318931373336357631987637949759777285634804143860912738560791042496037554305163686789557474867609052447708378804489495029495984303937774509443997630363699050777428410137309934810129370699675640095058495873297715670454583747254738105002033227922709180152377724528480995495358316497775667559094033714001837275596835140606895371215224820445992189598775746466368481129846182283839307864195789275306837973932432027542379854291136584525440279437198396111770150427184466121166373361080441099253255973237522515371443435545454879053525392069285438947439932842346999142387931681061423844855562603465408886686432828029092751455501697737111131337125728281231428104487070579483304592058513592704264577029666622347020492645050972114150780715763713997824830119743700124558997037941891158835904305845243658792005336812441196276690191044840879720241781279727323844900609590569717201404484770235300688564697456216158437912032066035535538347824190910638067266780152038850258548573928788067222482527450220839940460757302950505296092236661127555405608457970138089091414528103736038169475014934919791122444299595651562786506191613058606702015559190093659647657990055216347865394522080217291131158591667725848917185582285556259846953112957242361775210651621467370851734626598067381918604866272543850543736357074023630986592520551245857839707976485929914914755233407875952444373068474862057392366437476834061897640878507301761262504464142968981624304800542405279609408823965646931237820100786945331854034918749872125980875851196542341956281911188662806250701735137504930044997390620234850744770941374483311776464923344846380780358434870419163412201676515161992292903072819130150941645714587621325268634584395546071469342434203277643965969125136771016019134355978201212849688116489938436325824230341964341605295843311390829588402283848865133904480895034061347952414550533151577411029903637890685680384704859006035017977017787414456088068592246913089180578544853625119910244390111642715599661815290948489317625201985254787686234465181076402364418805072376109479570470164360104811552788757568990260827025450321312317837096865487085419906390307743825478356665141666219687502771867648871120666564571509938613791263781096396765423524637003480687228287240811105584779686167856639120009368961814544560756627880749528798220858960831564189410462864278946867038338767929363767546970111055166268076961086537719329505270582463695578632675758488626588853259856846922166956114301791326556533415269409647832196667628997218183596661129626547834943050717611371519672549845330264643399505017238517516311753574408748017671946277761260670048616070898708567985321828828461863784819562376993614280371255935252781525003763774986870832979425300081564618091477772816720488600814106666954760960226578496105408752082263915232445624499982897793957412501270741438694809878693920153996831742563036651770131733785589960697657902222982751029490253535339178517605120843852089749767179533044896467072067497621425929779255788149682308668376235980302885365318297772057766124654306882810921842293402064759318757795098904169645770346467835313598291069957937849502550675788201061042717786417142309524851471548887298088889244042311959474598027439891147373334972083879143953716010097274066425703039703364946220155778090975761936953233393239907398352406807914016212171606740483361753216418102660899616654170110363474098902410096989789654650823280957923792024826442781041135244381247478597662951736581074396009212140678937682636209906785335152264529805103104028867285192442629953151964664653664949012471308284976892750871779220353355417080987876406603088149267345679382408411883863158938781019144668105444191035087705737919593176128116209275276407619030200940745066595781165402676857081167419025556317080020297853867805466116570558293796653050528255510617254167156431753868659556078829670070575374032888832902777190946292199410738571860882585579796910319712116761550410519883099416438042903583091689220563762909151404238907065933181344447536385886390244580448607239684384910912383522104242603042139788023730307673419196390997631146267246565499972112644435282366176525383057099973221031099073111724808829015252426353449056471239259575626829557661256593068103142380649912191642328345732577309495448984488055484715199105140968514927056752001839376714262363389863542597223716774817173026026637993509317589941597830601727551929074563444678779887892178939780454679451166261018351249325589587773254625804125736248847853356451506294309244777707362565321298755882740774796162160647674361016847576417793169245503791500338061937510822159003022568702272032530986344651921544515752267121070466958463075011904211903076848599366653144118800687820367121454937286755084575952522588762694104889165129096584567430005662464769154803541823774669951156312226272534831786661555713700431538766210777333386026993619242324248301290518302812842781980726416201985543385940059979055340081617530886744306407502090234111110411099101554070543018649150947290820848973545710605539473174862995734115966075207764416996661351823553714122088842377377953299443932811728146785636047365743052082846870400401005007042612197980477226621866114438560851080156048288587810233749692158660410834167105796841576687459465061282123347832774767918119546202541980871367239819453902061883816056193797216192550010941206539399432237758028755909970102581750233271775774347917745368052716439885706232778518922854208304308487528287304687497023934694584818036037815541604247760946271270770855421419344051891755434854866392888762647202761560485927572579752736032373514805878187514258599582261952092038595747532280915106564107518734748916393626383260229996089872005851195143341553872463965734944384144087296035521070381018857308422331718941773075678421759016987001989951464056518856065336556340118139669237537011288976290793426177326827428684157302206457929541621389674930655872511243886226262359434641975003776512181898971413704545918027730999487758197863836585086806155498997971231439858317049577822806598013493847977980495829746309427714374006941947850128900179858924643356208433667399109606983556689265456387835911710292569435489001080700526983174113883362422236735329694084686016775240452365358237772547618344454383156564821338021433286497240645477885570559034034073630398685465664167549342023461197650284922199799934234380124159784761395661981847510462970997502158194542176471404597106563961800834047179018782336239909616572265869973397712876514072366407514026527452063048968421513869320741131419098067640305198965159270191699870418739179097356837675563975908693378082585919382348341702211269304201941716979182619316077137755455139688614605581149554773800314066531631322040288426588456896377574324425979665334149524383330742738707707189135837497854675876163086785486955518347056706273689843558084934537528120095766771098270088542798021560544006394596511711820336363703897516703848402774888253671496185304450683225506337633498720102942639744274200292025336365849389637901146193084406598671792242873049417502706034394238601459843936197494760186217594632622734634162130274563458833700754780523659335088844015821009537089732322432983495739360983924488659830762232452649873466099256199323646934821119724700970043711783350637768629613757773878705412826120732276974861723832310427111308578534275440904075449112783341845766261196050555831890796705250050407163877030922191940147672889383192897993304628681699637192315298482030092056939358812590479071345484411849991813384216666489830552097501459609381054723160432178196272087132820251864616602759515485611466852513312277346490253306615393770594758464742846088801452362501550148529035231432178652060850385333545875327405031221610276890790376507536010362657948365193424905696594936011820284663179856896836406829753091832337156244705158306059013317092230759799675612026076686789209112777975405357451568814687434566939490612523110641381751114020633783664213353413514668696891369591113170153051237263988950277578904744936312461157223156176984841002474826048890949420153279154297130565425511279066188205526695435930966286995422797887336221303436483351948048679397796201858706833434274724429603721426624994162323646366400669986599785454928044441140629969762203989689656753349658196757108309561631308989095250850208979829327368411365142547532412915819695195230461110821390257606582347232754240963227071330157682686196311373914324125155247297552863028123133239116220201025734864777567037985704386174148492472853959199141566196344984759008407394612336969040526155711146399546374263747579660151662312938138450513107139540202819844171455537605758273706365162440555141929330141793858577714326685393409997571020518261374613929763838046017078557145810713174429622360674628350747471520179144765748300544292177613737440365112453295066899325346822530937453951160277275189296379163866403651350142646406391791605296700413865732607926386988989766763590422683142903555039177326099571729788844634056127905681587060533566807331138404189882158864846851368856238340902934766778121440404745409346176599817258697442653643970219106338136766909195669916643746491735560141057227073823959902485243238371980860560565386583776254492826763813552784913084494439205054415247273173327149421370683831513516145341491696577957965189950673792598034501741186028142440800673629560633165357010464554771921001008118722125639138093474079621076480405806448235435378687287057008508553253286928224881518781669420084147996877975226780359991360410160633131574289352680098773420676642889497564335633781532474423012507548076247179845680212716792032166082048295441683598814066109611333215744616952409534425940635870805897881863532783055302179682599683187784549023074213038903024880326516457354120093130203717263066818658167023441457153523023041165829528568128156685975050454106496277706836003849384538621847886813524129599186957330854564569659468557410897514098691034905194662642087576740491303711353068335494013389763075734349772401030141686584704060383196859699305337146148409955606128592130841394283264065391405716873130854432246095364143344907208882303569432479328246527507627154172514627772649932781381067107197897438280025547067285669365964672850357630551109583055180186934199832546425426070281461152175212634825286982104036905298525782908328267259278931601224302210835716072388252527807468186975104816498156183400682989715454177585231453053278825721607016058453359844512458689648335067030474332205854675656366906913559695707415493912928091231470683052561751059749828382104638384571591895975628944441362421743006846773475231565011114965248964577482728601092635361360325037927749621324067408898427992583026558380952041390115116319805216203169109734957481361486512530324790486597483406207262826908825842450262087151455062241765283874197177478894658120942471528496876380559718094843623751619719046378737598911697994610934635004991467648171257165717321791148517096337210586393412944689841403433637734328173764627312969528426520878577650892823165837337290723908082498291859966009639804600553955238910534300831504576995155837640771233815473758953791681866963316035103733954406032808461970845149360986257119022641549413159280409306529882458316655551625754968714565389473037905663253077825457733978101152422125351788045535357227423535735117610552792380306433250946181043041992949646403638374415368329731530811975291665388760301999272306235781377451475529391724739445393762320320429370933734321447006080941443677825080396411440556082379353423993143914304235980554014869920441862818907680587420154155054005982658850320175489525342772993790688631015647596808732941492295580128510342154775192181137741543832681634639352946554541345945812269058724789457963016836609039613955015304135403255057100131296981837090747618883411575138372553623824665215166762114649043104144805428925618164834699696899297094123579107954619428503178370918629798756486000045253272348951104324535803309338418198620177510918289229226345225949443273370911369749425812424891026251143973531856799486591016511809207408267508308569939597313300235627667143695900377427827088890649359350209846792823272953211380674406162574391305488594694112705332011442743854281810180675111466131302717341508538556146533055357425978721954859199295697745086632105564253883360410031774327867981487284876152651758019242400673212411109388672799651422453315198014200657452809587575340058511657369157724279221660320835531088558741570220088615515950795538339728020409470862734893581525752402542007978828654267728163615267996357287556279631225672434376432183891692903317628405254258418281356721299284263077981452668442994612089342805086306217619495056096971774311014519216587701131344101241197290929408193703937096172423690804567916087262708320794737529289057697196221362167108379202091992160626841086635768606302531453799541361067566333074346030651699694211442275896413193228621525364933542630404651036465800507743131220667098618149198338610783612681212223669879233096247736052700835715696053166122661887326668709021507326506989001609853780706969385756340073183814536691468488495160265372536768570207674891091671415120285087082510046804043654447326589754778824854521602406893878198482921212572431000367376125349853945383478092568785429390899428669084609051204033181409859348446026393763606365251844221982200153908160235097146366683737989354324288710606098551715684912313913647248290620407382667209289777250404868181342711751033385696715061808651688964005552086724252791250001272502207881558808566222346274481934821297954999436245676039676462385665625526303659763846804614082580561505126143154455090138417982156636461166787957921249336476143636536101070638929912567332798562265773093839675197293348978012690763956300046505413430325593841984345403675470037416834126003968662862692985208602195294326124745925866575129382631831488141900005668015517167287487117877384921273615582363318193702916692270216815929610087142295514449038824832648420073117654981654543075191687339420922081200707340909107989709165565668138307625063865377776078956218707420102639113691955797896662539218242535171125307453259703478954122781593323718873687563297043484032796102172861846204653909425043376257427892441682136077825472008875809927064236625298488453766979152547586461263585402002831147474762783260452386355554864329951533418899886890931701839603844574848946708688789488716493089707897366272857691322191968645134005865375955542632617527189814364466513888441205131111108555850773320751388138105388548937505765221407985823987695539127110656770505730713086571050610051469080958413318312153390193203428926358833163867016769971005269602620527673720953921315469120762104953674996388443132687426194491317189771577956689919047039973045845340280733108506157826203218407930573119501211870662326748917355225574520103735491137051044135546531339931555123271505460783723265182578566501424131012293909614302461548027356536943506880669820510165852674954582568792445391228979076472697761333107487021000442439846960653285275080380819455979520651198020984049080123967426523311362968138547133723948277141648590997634165592279682871419376863406728133667039703619840713467592848395664215020105358827669744457970891203692517273405688084738529880869070639496381652591966456902591190939350672000783697384014482153051287670233134790302462531407083407717234208334286460286155696300696038921648204341218683522553050455048873204011283327372871825960505219919337988099472674807196145612765581574441706871323356085069033979599459589818035985986691939445253579804641692703282149734175728356401969378511030169532270374181431445089497407108519956728619546372824840927097302168996321712158622160701700464612629185602205362929395117912571034232415827522969662820114012786351320326806724465685083035797834538657464682661958067584747840898669278393798416029134077321866572837555839011309486732623032841759116225287576906589671022676036648136588990746249837803855258036047770925545995637962762080956237436792215304772163745724351328823026411083653642618733401304560305258376100636765295069077118666069639168044232610581879740132468567684322214317559376467733199098319412809887425320393168283371412670431967590921909584141406609186766667247074761302103432901035261844322961982860041838405375979186202046377681275890616947571043840925703069433199174112543274384530439483977897717026995939969079777974712166144971013324875647815556835425928086859917744686492557225924712593138439656949819961659960502318392889275761691533252603836768741006150145508671689827636006605277750498594937697706092754508665598805656059836956327031447295309566518672557287056711407991009226565583898652682346955169871502194086457455313862685517078634252563990277733694715043634327923046744958176376873086350169674685970038118354950730167855336567869979592707427010435479704084547772953891324407391744999604505150275375951568159405493528999751947172466327918699938289462439276167633382191274842989423433886047790332696874376402430249516521372470104028914867003171837472042947105882058201958001525157185984301346488426716259987870256656674995496321085593243077645242741491016927798533946691508559248974014157580143682943137788258458785703195303089094499780666481461254924909708909514023148854297803550440566260696452352593720579828949192790616964318100740486412779551594408299357591136857270315012262586470086016431940105850045466786240306169869885458847567672678082192868247256956039132793468678077090383309378800858487697052827485444887914815030644560248838652051352650664438363689480338650817121295654404395145513588560232296932816941054639612281660249205730084184099666696896284084111200792139565648569660228093217534712983865374487637637859503095485201780181940688713316342402872936377055849668092230154193890655826108095439714586584141423575195600278521163367610211013504754768645743956517138259637165281213167436762216737725893700683830236659014565355631784156172651242436331855430194726054928526852615776128349146488663031392920265859321046096429477378923757555037429139716617711007762182354636152221543599339583473123880205376622542162948683302988386192932501980222722849482549549161649663610820547941596929305667172423784827313457847512230216512000309843297797357924862057821759749208418389220052201947129478204897267279202420801678074438557122937132288149837979050212400366923889173979412166346713847348043081451608456723028821999947299560334641844877279612484518644420847166130241925322967604870958464209016267481844034357459944200546691994088212439849405813474919168747111234273376840358537805025415323315302251171535902383844746360634703493657821267048962213525727514851577853970210664821280047144545963849346228667333965433414525868882657784138109760435748280984695071463619392975554517536534921890181483151557114232005064094620871747862769540763695458815905649569770111303774217406266936852569238176641374372822336055776163854279451001962939622693774473491942479609907580363421874503087982105025651615110288696764281975233749187278487820766808447501923832084472075640791113992227639150698924182160796302774006134328015975258524056318435651371562743921777451212316529219493706342231596909929615558751661188409779841020337963563147400336821804152427767066987784239780115046212196160481704370297384488579347689658225575754407603781615195949093209359082089888982045663904208436687630577872150237755070849311559984930235848082928676150513831953982643713242592958423669122416211993045291963015672901458188718147780210603366997905576711593034435349724243347884250435150299222446736521262294395025237203282643154062021983477450958782449141953767083835043058511851035225018762541568055530076822774846031428630718666824183381416876870635654486179662855402745431030530021124121932726333971871986879814835907643188160960691290303196118072565045729604271278794947543149712117592744519653719351196002103914618137090316519307381247633102251600232620006089387341880468033021143379605298666859272129596258562089051981788781875425574672089130861579965216586500293696009077406793154121061420515634668930413025933646956169168739108180138263450364773452184225043248575451217144665750331835925309634120897411658502197259913254402338677379130419230027124493146246163293300943220333100649843636291599708445072441145018287593698641254359379117354346973820808636139981069692943440479379535269086597310265508067146970558250609349506477090497833112138848658660440500477852868929766853046832526685994862871366007527551825869806841720552006106661153707122305704975299323704006970308470491975245692123253302609231317588765525225936016746846915468930955444090173953918219892211235769816684234082153809752519150860198164309340872436526599052655840672502112029223248734824108699744137813489014197346602973363180629739397026337771361568352369498645099653030488839464131829351117288278908290460588877772579912596422896178392110860471401251176614925463022035558060321360408502629730295610331492891222875276352810698583143260725519852691619530278916844107992547221228272963839025154306454926821946143061333016723081500802067802321117380336451263713506060542907249216334671491160394336430769366132524549609955059037233367559153611930694266663310499887213133838928207152483854181643399829147974549552761136033172172692859457434639386083163873476178969827929989541673580559057720154767213151421881297098486006959249129459524027443584781823395025879586330007112585150025569605112819161605987025283057589015435584470257778355950284091568883284747036316433216081315717002740452601132304476440328091611659758483974192808472762070561332909213805578784034394200982276143877148494853330849727424571233937184627280913849482971693571557839504383552392098492739441244650802256754189051213511456727494783843134615397661689269640935731865153119993710548487787275956113405075769837811556413052476085661011540566765470963076990014198082838832498552672427015091983055130971227944916339703881309463827935079994633399967819959552162385581037185701763224082662085499934366247594437120243843792925773747735542996560224475731873647870776111226260809388677533999368454017561589335592032312245082366317156197575642355493772643008434012140758744017037517225839120316819274624887526857028372232344981461706908097391875637696253162434994410568278193969934486124908943683745827235608112693753957699091851907679218763597109968346420442752617497202461414301399525428322409926619525402286659377766769926358496872978889288026730116061529354321388285151383374791214953861811343498947924096621469887995721389584322195789407963159655251177572855703009076173349477366879138249301472607642799708766014198023491619933844083252980703425027121224524932330298810221823297985005387201486765905432089813194624713824961879045742900146330646141822746864520093475797530734027840267168736626092762677386526995952574069217952434282652212226697873981847268483428345365233155371321489172326055019809665252553571688915325968443399856311786765036651027054281927768489767540322455660746225917350772627450284217788990580133555876998499912756535199865726110842471974296623574136689914661751578876428150540403773471943004374811086281668554603302103540769209134907138862375221174821262881811806868145167475187709419628378575792576245061760055229502317074263788384436182458409399366595823090170967618613518910755456384320191774863848527617781530751348880764605574161809437757611387825939986815386266248239112969409672543089935926759854679586111471308459417419444529535520420469189976655748274627693339895810520136220110236512933887072971559572909500418060458502862726262599154299500261928705057664428882495831640047333802549583554172329682590959092485032842368666790532566411978046756672449228495576142190631209694653665876621602740685556799969596911799113183635156145209877406845976988675098337813538042644511527775695149025304959635977840988140445172308072198752986223446447685114058419358339955221897919952615880211257302336287079070355958107424867088715439166810122348600131050344090799655152656457428475880465958224713548112692257394212267704068686055351208673245860382229241969341810254473580761049213260310211911490747415123597565026831949550329622429719090567026166031631913238710267619667312434119184349509714063359415858268022949153715810977641222898105672587204777691357694031567798601946254881786879601004874371701503863849934607536761446948701560864303163118807379972406076743863771400457766098751386674256827724687234361937857685964944610335155365720417613444264689318731124905478301680281437949178956202290959579320423915478469768341335778065828837628478583205128467422323432963616741431235944702909910988592254654066233226622960372944240958041704847427918777035868150014409007235172944695288845424310283352534191635340414539053296162730707716285789177633389914659228580475684825198109077890374319268901111756811120341106946848851020989565634726650209198484357224720935626957381999141332451037841333096913842910924866817430352045851272422731530936611954351426300917852116724654930165128074671765642218002517531618363471452111789324431042511820150123916403099198212331035223260754026030751557182747153363373246664736394612542796904860985501716289236725030175794907984092304866425099333751436037555899777777573876853046713155870695331795701625149034303049388117667403764667122624410662398058348097775931489939385591351812081332340780209005425657597786056107217969243172804628822812014352938769805555870822260561513518180207674996757165467190630759065151354793101617687135020551493249668559929320937557013635765959254580637206816232485621798208158602936885982270473416493323238795106172123137320059779913142028958617735667692737986045388426753035024862072613282891879497604687235182460810321969145909194987444256149937611100987023144174893431256656453761049435422026256777695206572027190557392856345481471886993966730634849976292709993058837070274900734199440467436559707246340809228224291650351489017875856800930249091120416846704206740859740505021372968086839911221271914565119321626155884490355339882551679601333781519577665991073216481386524777830487236319616794754957601192483942488723628647549580019068184902256181659720893898101713849149399092578951670189135728942256903519656074505009220196991520917948771375087246113156348659203504792354263577496356416747002010228498533183731845203299309609278318539367958538660115436286510249531426546417014775363517777783180592802589316966970043796316158013218125611355190850046726694996763497680784166540166795135439521762822008255656514449649056179334064187736280917556815609691343499538483348687285366950491305556020810763298096688823944844588201960458208453002086613545659395856941498397961489805309632394806120290334205339949707508178276284918576993131868752444323500311714106137487664663954607065499715926961373662255258696659765976881437970378212651547244904240245855016690226318465857258674864152205317014543685043658927301515473715616551374735404880280432094529280767470041274904696139602827030739673521957224814410602367044605411374513734425232183178728428589123441659395922017522015315959490874040545813592356938184384350426553030314769013348778907916139727538118816141644356935550147080262929687787977451335360687839653452192501556071093499949177075786626381158852023680337602321441788611975270105659537659991311265892378356387813466683795583157508046610906463019895922046943286882458671655020257340898660269224978243796015027389937876629543029824643176350181540575114504779558385675939023903462627380670657839616941217729429937771446631018811637116852803672419201735945925806083785543916643148290765259405078005902236254372062646828559570983532042798741803849170432286967676442681578775910365344805866506190505682423297724184082895732277304593255420993565120643659461443889796196522944882607674272902510381884356319010961675298049893954971477941108530649530966700643126232285172935759639302240556262045642067831770943067496297253258596297124013482551068956589864540319024341231384934870414072541645870012438297749716773078195546127317006671616693319756985591809567291231023757484119822065429023771526449707096710873893253165719321528637339269262333389448809507842189911008905475881980180682090929142070296221574019402250727348583841583270939344591865580541926534824347783425607900869043924623888658859004804766392386505928410115857669475804033282662022316379010943951325761623124724775391557201853751651059596279050222938985239335231766751897836101059248620603979426952461615394742089057206182716202441034186894694806870667583039852771794568816852705580683532752907677859520095810930717133865639986234955058752518771325974968025905229337424188920738912221746623348141703897883039808806087710564195806629560103290019297636382834620532530136946946155800691248357320276108966315011176282034926781072780687879960376224752184822212087335504148495431951433332405256057947283274921718561570311528503464258002908377135899463997110649636866063063933409298432101234387775976112875772816360430035366460808004476780565646959427573482835565715948149039924340338787067731115185058241679560776791533721472006928086671010818368668204188004240887341520648567426797200351676806109379773953412404369459795517454668833375467111183659665473277195709962314730595297093190540558766182962494118542605486726138479448768956948456534384248651606097349439583626123792215346582084415898755019830730263408846044128529252328191890993768763932516431874434512805461746527101094025061710538775723115001853110859613850021440043973239576253263211567314233207574410196857179866827281364027465625925034548010228122574932296905020041578269044723933257409812419385855638114422843710629072864439305185865993756408093071877287620623280498647043157154068662224437653137137464837009240468308237218974712946537143770674833805858744362002887644063994525985545650599482086665861726479523201250624021354107366794946787633157314115947827719308704905523201371609136376968759236781757054784024462814611054410429744174372606784533028612469349116102979566768597139761045279538075749349055836027217490313487708717884141694413937690339746529776618523790346928778099984072073938141068349115421853189627858190493654999741269386592637988212086389943080904922686182776084857306188352325217306091399511357917836210303752412773350197310327964988390060989380880605912662762198616782401970774131712159671203202985826565982955402026936953402594598377831829407628914194520436413595058548153817579160996795490681351573700164068188673113368395425515603482732418508893587268597773928858264729588878303967378181882627507242612106401626244083698289004588955219401115545893773061117283139100149063688144508459957652882286057499261351404026475182806016544036510141931337551132245847594267775982771985431237023521981185348387610600707902067533713024038632276875984422772921364760782216910359688602629928880953555945813992214343377996607129505314972102387666386867625433820640357309239085304850308408264303929612623320491818278729980844885507131115367417535412201459952079035914380939981987139709898650984471334442667504618342210947203787814019184508466257420313793609382835992942942827784310972276892316010704520320744974996596096784899684841883219066110501248046403692306588149610700276352538917616971515866589165390682117545739316402976155852886960475352837041360570645831166499504853354972791219301211059759510560423149814294758451958292827884520466722830711852073024749520959390773308093324876595475616864624125307921149039351940133800816134510573881988385024933561237706326787748164445460303765693967802115877842204265467971756937667819414940551339267742004712947384382123970085955356173316825182032592013097506722160094016004356193092432472322927733938655421757260575000934296241594812316847733401273530824369535655809143829885496866621799246612120291088005343403857478810381029342500764493363717146627388381487948849996987831616856152578868481162786967922666946554118845290554847024956100242492916988821964025480177488972919675833389772541639060036862935685980979060270131180441941472166045600121721435842452174144648723213311860755791334784478659095181452160456952548378138633905436326561461443412808181857237581293838787236296165103588656291871859565599414137454879984096244434100605281501955441369235681362807152503670297359305760102284579002645970015319045748993318295178624831503412894273408637583772060965438866063635731632230130739971171651348451880804921887554559164591178069372622276415227790751467712075903567543344537241215038552136623957954094163224004309461241039725195188007321214870167425548894533021890350511820167766544143569600149603111908632050262372491270023063777326895586630140700898716240938879715572003149506500196930789411997024850098106065828023453356730860996696290157542903327650589096686271107605755759541660229357743036857363717324543530590852927736734425214388365022852576942574861492896641576975308240960854956716027928200655799405882903696483258880159825715383760969802317915316140447159675346357478518884900505800056965640929304601204993549278973611877298623619205589504256510797960954668978495185364710653938904587106922567140389831370536744268348982132146998551194070447172224882214137176276013458303667672658808587468181185445021328743137798754514556773905860808384347889712650844272939660402417338037577326223019251994720131445761421103341581996163486754918133108738164389597534411099916809946552450563256098496948636960035831282577109704879275312390122746669539619955603680126902446300771994511431928521358233587286915743619733550800716703306381764863708712698205505081696249341888703066635808497675928666050218965810422439320974973171868250330975282539123788699734969414058066956267947214164734886276871267775575186436236422241280343699575191854585024934488330103349413574079738861914013948713412047409331099854280938893022461558238349562167387381817017631886558714874638138214983343132861116441321730851512782581355897175332614945172011172170432718993399780125799555812280234840135120553326267935336892206080778871596169797980848856198386926222431193171372451528483396037649735172661405653080137503079309699609841703947507139624831417647378090173611813953128993525241331864823599242459252973027218380248243486775626724059062832283851817106046255308878520741563645061294228523650992440740390969220649460233081324642247513004153059261678073328069072059973368703008182399026508025086484484678231119499111675112878228012220574593983999168877178276984836599307580739911408281408265148823035703672465602314879068015594949077864944393461896201763722308819438204271299152773171004438533671259347925186329220063555470487605510367440449679375258956357540867592194953268060345550361871792933844083398317556635999521864467018076481830785563347732130445620602498156967234361388935959697645000548656798550714730190724164075208423056947210712657367529734151689817372129348240782812813236652097875486976867407919845718745902361817397651318539387395138571690183613874135702870190543853607990538084022494522261052308202707303850298308231870989004628999955976740066134343893955915002653325309500040856810339758384959600636717189026565252944638232977466521269813599995947940752122174725948775432181473852183388845420035533098003000367071149402383737840217772859272508583915641409994680418985197768576081899675380214188971623266530973180701661473963135091628784622227159538705292068787618101405627380264656047544904038073087434032906795524916112420174542575751347562575255011646070162413580992675031824839151272586318482869033129718646043280573452678353828571303155781750027865667554226223515387833184048947683131127859410643268631993861762069909778235688871232128665888274228689922125405336194055843136024380389165495279314163967532516971306495922642149523174589388084287425935227772345669728440024364977215528970642514196405998439237760075632490606818287887783812351777569691220027144920479879048061877632493868497216447803780048057390099469823863655254330501760028466548670078769009186420292734442559184486956236778116617933575481017726938732247609420236245743368143133732010855019497760228430194559720116681937742238942446117439956588526699802270666608266335592263109987072439712618862655592769280289888186458518673074530924752499726811336436579756787960855313306361475312064557454957157025368456262773974730057871531154029869527421076082393804398439019290143728588053037594693612134127188969449371332164588475776191800695776578367224793017187669228656963519199477913987874093107988139529953746690935885021096800273280929988015982366162428196804004759510005503800713746230050203594138962541104631360575663059363245472099732967085981338564146878687518851186295665429740870933880837771815388419658622343271396379174562991804549098074777013912118482393341293779182544301820196163445297422562486282909915001023092578348413575714706155067043431627124101910886497618398227518117289751431218250596537947237734557842598858737617577757546643294729032240528106690783994007405185560572616650486549000980622887643345223902080978455282313408975406403210298716876134264545241856926101302357206609156206480466906815753997891688377248370816058970217636489584852373950466731520309955668640064369403717927577359937136027241877323755975071779918132428368265198440482788203856965448046271788282023083340438003205740189738548513886237278812101308220452356979420031200532207576152254088822780891843599202406928378437063236560052262486220768526303352864532709351331025127727941501767548720769398031154225293631614502708215146895478034680668573952699306452467916290693258655004234808075392440005161690851618827989812596252388583948081088455082330171262712468033984768272159314451581292619525355049370540607048631122819342667241227626086584305573954511538028008211767916981037998181731535305788036653391672954888298485600346623349772956159824974262116577504678127078375735503494401833697787319443675798480343246935350232837696768534121603098106353281211285321274085229703219244401856097304145722153932875593303456859088554406232556499194978607648358511295310892830456954829130366550520657182170681062683026579436205320344100594035373078465001448300897834082787738315544119653285132183082307988663728611392447585408965878634993423595971739179942838754334329284218343638888695185699049725073925717963609805871626315988993017640400458794489332743575335957050532650407955662208867069146307570628856181678134076340033828378819321050028803015206891003645373168612424955095352231980690258673259646971175212649478471489889079190664694445011056078829055981053536899936264521793887794820279553992250115672142723621497391511171611809116771035019920340544567765474132010223157316639683339365084910118356500313810510036017406726527639470086982773322175930372981813319692613164202581099188864922596901902974964928606809721995754907904986514577237791797013824004498038488431546020183091764311778260279696460077022934906448778217972370669711311974015525446837154988923250161936100578492027078623251736744954761658917765054301290002718167584832321288742735169404938961880613593481076608130158661676217538660405845569443650257078706627210763361216872211329487806621244153874752124874156614011651562111037478002496924413704651036668316089816471621311504269617531072600528163268508635717691426882118844882840408719736022163565623671982221091505457798074450540071225902768132882336380820337061521470480198859012974402795536122451909784846743668658275329657818185153987574529393027553557106619432883675637535455399368792933478172505496548914832935059059041952370643693289349917313229312536726838938427797606212426639611591390073796783754048754087698172934521504434504366728924759203117962282824079205122940529300754428698330209241272826843398295495308755624668944783263606990333674245897273532952662795953450121942088669077349555678946901745272846846532650359111373458505240453252488586310915081878085874651561282285527578404246296892197746433977950202065027981584130230578088783964462626562780570421650474648520630910909528429100416288745185210824252220927050183938625402667558105488177774699635817503523954003934284373882157401621499014946572775855963009224373311403021198414419720487511154270515190982177789453084650681118769795489093688154270177677364053542536521043755106674531501550508468153966496015922492855938096405652207590356959462397675372406099703279484286086408331584851117299035013665158815893732460555095075695792934324740106855357577292724462902338077494745137970589171795945422453473000184520975869318191221173502725140009517587817718150373566426034864964962198270268062452484345995383246085364011750136347323849704565620221233959447644605641187552542793141068959987364443733012441063320258853816119509549003757145449300866305974269377725937309389237391319346919411744466706967752308030738877863706819818034352832321362819004910989876114582944710145767944985843420164055110229804909583093811123023945326592688571433856851919387529629782797718749300198248034768949126623061071606510166648059896605048279872705424626080418747648778998381185732748088005822759306155685578789109046834889185447304280183469013097622420663265913124254647546082761724940336817419174045605520648172370959431318797208543546263615566606804517118680908887933718643789614652602683804402343240125144586878004664291628677042945322505299956650536876161722720934861303214293452147339342686677251272876027392741236786350736300219133111865554215589858109023485316612994179975774576435844008350713103380595018764909632891394018099588275263427363408381647839148692981300282812053288098726296783731883646188871592115515034641612390312300383609720475195217726000906721355916850642866148479998161975777251925287345756442972854821070719713169177101588533258608803865545083289371275462382422108611856187200394364494088470522826289732038618034538884738060929742999383349567260537660734347029388446973477480931406867026572902543741143022131501232427097619134653424560919219519214165152041887958810873660954706434213506872042266392709427141779378986290635804331201522973248126900632270517243052764294689495149911678142282924285919634320504872510247426268594144707222883446011965329151182260119430298909001853396208123694766734107644262748514559038959799600824321196898607880981202961491224317271080183298780960259005327957295017198156974977269190139718329148275628936345696485788141763566692864424343533752509138812899971141446755490210762288619450222890453392785641061877386532317799688301716420927802652754843394798870794733842204623605335183773775341485538673592807368416510857913742738275452386310753190959372963584004157799645771131661757640319020838147864544686362953405558725146003917569990371436958752077133071847737690945945480290102746955228226716112990641280262051203760809477371006045469063913582918539975040076988487711656111461666566801387074473277299028652034353813009969050435461181058810890437875009511292739640119473955980923483391137225374786828612642263653906657115593291846638498920759527022948360950420482870737218366585481412318692394362973745679448762682925704448459836889577503102866768031838005718145897395546999907865640701552936864145261957146243525676594290980280495834141782119733361055384493159706838530672401372291445367436465563704614844521374827303674676391839009455407945613055703276664981206242772706711489319303196375832092279072757693973742329760749665333469270526089326315084708531348433634595386176770831443556655610931295630641938099070275031112478540714421544005763822005048314097228308064698241153880595580503362323401225849799122161261708947566475970224384902704268835625625649651822534167435926494569154476473401707409621465886853842195843096985915473682172953486257376808020525807759832737369624288682148360972160450395195987943303522170761082902158046208970977373720554118108332791463306419238550466371121782170049511331035562090495121094188566110535557064004772858721516310144184951273375542881092505876244442790492817942033342916421490899523905464467273125767233395357938359331538278772880399320148669749509045818414957282640144293357392497550825465694220677483960839413972522103845558160231308814945358047458270981881272468544589150451850244943668107708556050067046394905706416702476767935573416120151701141841568115368312128961468484156207359577919234861671815232950212887916915729006481739063216778421846143100736771438954252149076836763688318374130455906084121591533099444596561794687889644511564624167395270757511565712558071140376209190636923001402959598597822828181486970150905726558404566994633393324980480938638239526020568427656044615244996538869538141072961161994143917549123295101648060294795397367474398514869859091888076974372256102757016472129556398039500459994669376366647609903632043058379388885193782693763009023310662471635471044842782110472833490396049557301223021820983184952746684589936221460383943968196422770550386967753863685695207536004132671261344633229804261812695233210187730223009606428371969800859181433490906579141849861269672921378295900241700174173100053757631144840208890610792213506216824673121841511873567230389459388576523605786184734245562195701204476093541579081079645834802046004972817864011769416060509182623441255379081526970245290648388627600336326186081620306531928842139844924479263400856543852716152621285908065765151126472097006840350375700069702250944107521697941475402214312660714737112409677569281499450861534647921832389852003653767228525481728115817994508959587348337361038485570719873150535520661852921759686827152027902660200475618753481851257336013519812641278887129465078275449838152295812669564747223912254043098793165357973757614112404303396816963772831036209714220618431040468920321087162712667977692818904959856674424369388112228997792138778607154068595759386740702889250275776461590670722768835438775204745407697990313809221867698368692056372443309234877371001310972714634758435586012592443984496929932342119373776902544653182369416017894606319987201873414783208263192307833640448841376155902556157081328012514299962940272129508858954477270591957002753935183024926157874007516126510206868616210465444798640296179220448177681770315912185883455548312193765606787548434282485073406134835695946766401397000073517526310914742693640566539695338382743569583395390603185812612373522777409812851334360229365432417397151229079658947344305638018476551711113702802430857085332963296389784073114258672124448549026016899376425479177097677884440839191734868833850202091851061468356256444981450266731526312924646414947344986002320166242410466420450481008462597398964796362191458461573286111188542354738459598929704726979016592313133969861964785024314199997271200374374447829748302220978247990002154103785863494034921483630129169259221260959076219320539587558823815685275424323549646655389200204740155433585498531333948207210751671414159862776475058155962535813494147958697853257512160712046895406703956333895874906895505391507329220707008127518598009943629149722769465281614733418384516853416577224883149249289613115123254387078491973904393303706179617653037573483714640711733444217395465184051382610205706047572133177987498544503111169471092523142203313686327796447669022996262838373521794145468036502758537661966476610867414671963379977896331680780326928086623198075085660334366110975394824053221181247384492556830346662814730032623203403075715579439381048896750554468763941088100069824795441696239866071140840841160301945499260060105810295600853986497343658012793938619735007173370313064104672082278795805274939371548775861226980900903735408034168001830391641880508828835023868979544383029738888385139969569828338923872580273774530957942983250187021581927445448467851171026103894518211643027374264896299198709165517729100567644725126921715727194425116813974956327767357619178472601148595933018938657851122748937688876736759209732601525770829514659450971063878287553813263775126726622820870936792984626987183851360124524134708380044591680848384309269842332865602024953744612207826836079588128483302771547874902532825003778063010124030853398753358660507676074258196306080168031736213349263754270091729940604809709512367545953022975343692011870186545965762715808343611958340154695853888590456309684151618273024387305130569366615334970956081157223682314255407623396376446163582027187500965124963009091723069408324280232490988312520349798302144670694392078960947721827129100198990459732667342773964884342257948773999273598654109184248505953741751945536177585026793336759015371825438636482381794789077361373151945883154370188897553277515656026246051969472737422967787496076599294576251201699557834450859307798876730328139217762599364147470968867248513216762955559368023226568513364858040750888987262029038073882550252721504300313477546595939227030438333284311019113954475674607595850946097045563545180185292907310961574611450507502964861048673353389000434467062227999746895437402645152868467185786039467882941516791243865644482025777265864428051632867246892026906957194701012208323598334510204436486727045780091071517582031589469917279501802056772497774304446963038326760271349679142890355870225248516738735630962227828842130255876391894745313473267676942446291759265343610770853425608578812840657240639417710694438841653261966039614729305108784873072460066266171938983011668686299492929452108585382997323205310047957645949116943618768134630657572155500678611434906899750946586653312543827352869385271919872758434780388332706161518511624961311234073165333226284876880371080261623900627241505619470083277387789865093449836302878778807242200974101250583375967762975660825392872637559376338101493513249725010228510746169327672720391380290756534557251387115939996359980324080225097416794491371407802168318590946035716656175690055799242771991419543668991923819438355129120143465759785185648869757008869189857114614874481007674749417115563279374553901037980998577247216976263304603129908257938305338856827850879432948497592268972252711124136041355608846489161411599031981513841889871582409599029495329222342686490287344095189497213127175659926287116816483610070786845784180393801175577771141906908615076013754097725150378321551362947801437202382777960743681093174754447700122242729044987980850431950195727919643699298624022740661556347123788973299239022973516037406389160167175495506785276078590030008654417347983062034933529668865302256178365824857763145267863263420297089981553978495368528676515565261447809238331296640444539966741149454187324950842578578890988321528456654128426891855982932617616020226221576063980898999362722536588645487626477983280779872487367804638399498069226670632169752478386589132277442742844995742546719094798778511819498013865166064326636099877673124185333572241574250433557062577668127812571727956666325659743449620122572775228561138206336442892995876252902535899524897822999025832371038119968237530047631455533512198922353031362829817691790129726863905402458188754044579073411177908306795123665326416823538740151653891998206189842724289029793349183259684747703153742882609880894646187510951299060871172615818718792978159186557737203753885500098470578615754028814366837949211551286548818980466688965942202974210147108366980924200651158972540899623760383920388673772757801359783129145533933852858613614196511766966995376494111377042433226304822291117451302140758765118093133746370539271953232653669131907108413607892738229608074140955718466225304336467310333741500224214372980848965713965690635043621609809742176481999314646019157880450621276475165795914111280261622792487191632300963013219711425873095616969901640270486642256553954454619792565708343903299713917016290072199285277346586659557189921699351793197585631568669200573306897842068025462291036089739184277204254914636785806919241829484140872457953989514012433142563929961031431213307048241882672511558097922222011367652744223224137518469079935693785282220438411529678753604768243841156081052258548587418627205807137575108729741210736680945601254022154598227061406303239439689068297099030456157071119476025093352243280457693076298870757387718941296970863675206019090939566984367556384024003009588547621665325298525475227386801786722992761094492402214661243014263152328660607643074409499332606180337823392487314443697104125833545846333116314007876314642212867475593265208607970912812548460137091986923450764979457348033271440895007687874486989685976500839582003081786754513035813973364444553908215300005793349991492401334639464254134509751857054335380547185058722380844866284601952582749480341766194460042825874137896375718200236918265055013928231444765724811574320860747645388941440614419239863621291183689494708491491890571697411756891383378976241640749779456958351184967220617401520042437054332116816341128129717111856615344659353361733692414265032364668095941888643174860653011809078624620031986248193482779639373517185776448520735459884345653867890329966715061476246493108287655654991991990908467427427644238822391493663562667895639103593300127207172457511236212539128623831031754201405524392062085497308981280116986917258450665682250446901106929426976957838751159383423007967415382127210932018188485240424084199520596230952130794186460069476137065160508722188925350919677136209300008962020855990428756254163721860280108071744794289217560720735620120162228346605840214313535051875582745054530272890013998347124987778231496918892070764493758479413919433931511354937151822960395035454915511183062908369037388556087023838341462643833755414905212147411846088677829256126970213154375430018177508058739280924008218282710718704112764038267101665204223006202170733679376493020252346630844270879770636781611767964425891907341323463664936500744668659749387744695323194672695935604878238790917165430530029705652080373880317216581985301843819898913703221840731312491551311224509016776124057919638015327939420206969746032803243215357570196963081271988663490187028711003748727509030637390736976962203280662830653735134554840427843724011475813807180264167024587497044023862260763455438889940499144135117152946073537748971784998794252004171097010222626178305804059561751186798605514436959877268915036578618677021488806048847812679236906129072006019659367707954370429466615837732212107704101532408852955501434194311776449789362160794664633437743023601801252632835411484499348037450631534969803227688661909423236442204785281368007607255597173218732293733852942364899036771587511112739014309470085544698276051789477150832375641170580320152180417938118685954899301025861665967846793535032087717476001587605292074554561489958665297931674684036192946652271529922085454851876154110457235518457903608806135574356356750711636480177150929078486094209927656330446692128391612432832243367258412469476801991512067125206418381206181743772848251731527653491998359636944515668305055661476475086061145803348824365719271440794576163364768250657630222286775359833556595269317353842107898469755728840817043362941378432326420919045003568131218596782683677536857621593801208873419182171140352713233010740616681961227454439679429827270037526746646054382785297345622532171136724919100359646102955317551793338320875175691371906206474646485574229147901242271757954005196618905421712948585439140806109207906104381330525082525743700144577228535102056865032836392454920403172875740722331631957883108036157744216500007311564423435390682104263606648399450686577337431881241010439147837280704083069003742480904331017760992899956088618191586447302104048904278562243144507092616910388004351651726746573731422023586016340011229620386552383969250009178277249039551405635663995460762078244384390900419710187050955186531243139443402704264036509528373284186570964788113826618822710739342580832182988807511480380392373653545250728346700757926377390492338488824638405400243504581988766401273149671387748754215937869700842804874836294722605631429814793942801025291514369471968871111313386608470502222319194566675210783395886328635179362480044624919956932116245382794117985261551553469534061392146689942783604721684530318776706545362429393549575511696479523622907526310701865330646296689870502994751831499792138734348101652760895357862811983537232896805727411087519751777415738216407750407900326707671591575382405966838021239892612747838675095650579587919384240854858141962476636106709921050019225705747401314761981352966702533817289603198143429431394641384500890272723550890830879031011687895158884750843951203925725187510215265373065177825865135148971447263428283651029769458134447181207034360368867403167787396583507135576976856232440250675116319970818771965157373882740266116911406906253558596998662467137231888510141629816406227782190736482827239450524542811102734149557309118968800899105530274340125056834173957894867812390209641270107962057016388820057332621510898721067943116532684187036017248649260132928857619749166617146222320097655849396110610039906752145239728095007965626789049697151233184830862091355856490267712129365197411731524441139950192916455126675225933740584257359671409327258515036184471263888113834757879262801129864587559896278048348774038801434000681503460024953502758410512398045251397178068463262660668956922475354345755828356324122231476915875271800670676899695690388679943742157937996333770804655223017327287519295744979508936733435870744427625105107456454628378746040026081695591795723641278877480641158026795900551570550014981077817587974250494582210195238326383711717467741280175694237083506269885303311632152342123104258207871125695146482062854769036904683181587222779911800438723812444405566488043800137493109492016501881310532842594010850858287876497711323147055748864397558979481856668041089106729548055949438703591433695254880888912844189520130158438953070355199864656609917474289931614740592197938187894239543025830070833907472829531096247772847316130491605307434346590288275430402132564067233898270068413770302646901542968803783895436813575743732010876960662331238820496683961379479590988005952952363055836613002412901835196688277557053033162258957999637546490337170223747995197968643833752956849545647774173432574210243153169241991671905812536656823555591310845049735078818457511964948491757778827965301936601750443704591833649468269832922842334043322777484024027532941254487052862942854484405209794124550607518884342344615191448199263176746716145433734360257886288719178087934483501319123408703102869928606993836174881580588930588344514287760859825494804413587833065242924454056413898900552696967751858493430729040266522966356351772585857714486954958805470341668534381856736003135447343506228846869619508375358426905608536924496219783008059662041665722063347074073562260252267117083830343040356203189969948885424395415713024407506795620560985645970414020261528560840044508833184585031988156244136179208303945187664313171777654555101327434211672801897316581766729111365698530377434754039031351264768854971026581315830413533857299326435429647860959178165247394211771107090261003472021178413894821230991713099768437108161465748957459596127258255130732183434301777225593188215219242896273519243851680065778702150497841283921844239821183563012604450060803589774178290345886806585069688830356541259162877661484326892907484450055131077150055021470931193084206301890320234117853106702050283852840475656238643189231915283792139615378761107760639337081532688640017472804196647337443268615827295208114354639630704834804678707476618888193575476792889370835852092880359026711551789836445141208697908294384123904953619427682183710320854414934958974359720890518120380539843953818097700324229187729491005863268994922534592922997803096692845871671065902189066452365906893957003710711499480381177407373442653315706247044835080403706346885328561469057072457482845402822282327547482451797878251544001704514557559713782033697185072416524667317948196765440798382521732418002414854767673786085040414348978759894770483904115677925447152554556024665334870994257182779991076750154750801531870256443643196800136014164526261573281500453306192648639207722548212980953263275387488481680563462058743742027373880502340834899401874504617043037708527122116347216972439773418033393601655840210975129651988309435827694467104473999216484714630088763400476217145961304361160816090025531872296403121773857583871942728354133731856053833693741312630490686223665490352976696123051478272968660891201804991658572980104636046882972976962112286393588880779561618634418686562917144504911509058523473647167818662610634304802099972502623569984361985471559780412694420408141505920429615753555189224761976640239342177516348181687213633643364180923471653424381244729124042093405990635925655236565497707848748478025902348049789582110901971605580281592671451290988370121140039356913592680184355801172893098159829405805957230269086728921650660088831275363310642510209946600381983209715170300848720209153848627091204702211301893225494824112216037749931225842975581551055577037647107887625220881212483863135494994875817360807663139305271887345451101633066944592855327909804191536066053475749981297995704737314979350192533117593570322955900762784611293896906397164876239558903598007766461037914798973565881246976217772099253641516173815072885388057506190195791309402462336600416543819610920496027253075342626153439824755266017098618746245869398531746446498250198021694662340305143770461794026144115786832632433824251646623807674282131179974434697765804189745374838095223814576097861497397695773601330989666486292581630955326063273083852783973894430817991919136143633743579013929485567310882160192590953825323536169691815491928302441178721990733560180453576658414486465719547938699003405702510053173474792370082798342632071286794350514956629307004237592154103193299172054034089436102726537017627285413509826896913371657400829785511950695501837971375919107933070152359833217717940251467955961353186857327617989751542470170439331103357439512660606050518756756164453783836995074727980412772722412062084792609162289100158726272359479527362139403815919101430884178475780980882459184881629024431085699190410545789326721427750059622341719415195299147934993607281422521176335003798531162680749666922228887261827074387221862643780693106080425033469564530062897291763742151142061372373257010069946534961065598864270147210587139609835958589163684181971370552581673289582164094940178861698494614576200251558830524752337610731881381290048898819474056272857212612639571552382362530513991415667439026330662093061911728448459301526804835321581107683462419220080690906398049559633442036953651534711158606413681754053440990797009534665796342408802425727594286719354298110720017386761871411278240455028464771253853643515162477428190105846258521644466974974907931328810548235036513456288700515179382227611560787217175201218485540924843495560285727885231858268751472060545704221979439866019650215109997815628008486161660249579029573690391559610432224653164041028479037485274848665706134272290760600478968162801698783316336509569455628655913709655551814516337998281777469050875188408936012451233576759312497756472809004452678835469692221561139592159268689343720167080168520366003834726875725244599860812087920109292752100008913150173816202244684043267856230092133549124580644660400959393042237558491291144569492208039243962124986875185284153855320209181596872932836174405067799265154103608330125884031366505547678749927384794259377134338751362552735449527306348397099432276502742077914353337141123088569138097328304048640371261072370513906551866680207629567038457062355375637795096315819195662876875451632437443872258605981377343347374366748855876433781808534720954248647797406144298780183581530511552089280829768502402367014499479381394551238220754316705816361645627327289372187162242568517285954073358658380429316589551018899308176851067208542348230067343160813050073239773754268752710273770641049931339495935791436806084758960519568513646251310174318192888590277102311984762822872337060972346452718003599713742656196886856025832945710923963373091618044684902049349486429189716341826051603542656421702626761971116908351673622043102736248074007091511385312753234928948513203433273144303358559955051247579617320958275972938060292560859515164693696418611022597067385909345844141436842015724938177339700396921875226313729682574827304104156223117729626564803885182489653998963621620771260386166052543674280637713436873848537075116676792570858275074571178464709873823301829034655615815317831550329029331580789898845568799194516294050940340171388682615110290455519589939769862436626720235641759811094887343754864486545138754208324418219721813116271475420125054792146484197327252642703555117332792706192382169503528435190351613093782085444098574643434160184152573463834863460457853821985972536877208419670734666807978007526437848680833325499847600250908680390262856366084565574490363782277739534917327593290370285577027430254691433999440470080589291648169589743259745012494323726409948040395565834892626546205209903772271929715752156782539341830555110846028515833229590314220193915252510423550729254289148671161882342161573536761389864220543260674875823662025643676758653797937639512247161067580333637393461575338523635471018527892724281460763935006689598873562942381137119051896007516317199081271008961962980626861005373702167213258014451895194283621579095404061527103221515217174888246088058800983640167786916000647203683078980696062781950924219524253843842030098803906716078397372968045978697879560097871117137262037271989066819344934711651908544764595100207394440981514799836675946908736606098798410269211171792752586782575347981512488592248732441316274862625300910676359230446661118573783706211400291476978921359206252634380055852048630895652641436262144941570895011971844815788810602899480080061126344981137374088541795427579455478511218124561521578974065261207025978122993564453674618442848328099498579677769078258774288024728504982529431386101701258581547447859638737741890087406362989442309943243099306223345549099264398131764972603871529468820933373980390082590170707108475322252456516282271342381905387133117534748999874379333596577529715144488343626006195890294205245269526885358735242396055522263694860637121469648501883740407797284406484693620495754714103212650684629929623659023115850790342785108371025861690461965370613414636448332338001241998136666492172627354932768029288666446328042580027034464848277049110292354535483190154840472374382426100598417751838902494767293240091196749494535309962539122140082460398996596694866454826622376630691791651262841906323332382518392830909515559965486481503548568574530447324259087009628492302220242390512207282573446946193834594344988159020547252089039877724986435905940465563938265389780254381639656505537445751723917328886241608544135051109032357603004337308576362272085551257517733639637161657418155205939992282890961373877924484906574607147402684897507800357283990646758655744103515241804084993920129876569718562904570350245063174009310192543907383139268196612893600653977459936538383387520762262951000085377596554547890645651079222481742292008144552667577396918410728006469518998927244504255500794177914461553607669441852491056277518617139988825716196622008171599930661187935879653695359526228554283672413536134893974091544159400229951911814284059007851561304451909503318654518617985624257209285541726222378095617015379079625137311707040095638447928184548227818361774421114823491092324083190543797583331604030291452565442174553772106007030004379727761689501068561140747884797580143127982354761185605076284780022236706211275692327203604101028372821369171884058273599112126487913130085852813108933846358644096974380745787196254035314931010493493057986262285148696335242816264427972048843059036449384611028201824300682998658582567805893929421710878913961982944691503951803543514014654477737484238752810255723622767416997440426357917372553510386244429535132644030808867516946231650926039822532147647747896049629157469544330104259999215193442324902655548370488612596525245279483330070147241094309432290667759300822433852812859140700618792000697647176636834760650380496760731048521519356012614038028086175721859441123684507405729643000984998695346313884923899121230046675240995838872465884416002293151086353737877668755434594084109235650573940137315493495662649732722469124988987302216784309023262489381646271962325294755180419950457808141459521315260999751799682960937597683013258883080060295540971733087805850093694817483397103948068878796772848859080878306301837482657528217158046993587265652341452548393485924215383798508660145951633095303782978387904010202013792153489264093121797286147139691519956560232572963745022149253753010254941342220736576100113058476733925189317771282047189350738617402640665462792936043445479140510386835966232512338170031829413595264152280562254679790018820336700641032702062685206795816972759762392896010152029678640169958403605435764234733578182312005642903396132098914589111614861991688030581058010459407810227155641255588881031574533973575008717607624490173532533089222912407320338607148411846909246080890605206047788841143227547625020799026564776281975081825809300162186106005542938040071111796569232502831629079731663349722606231977282567790237516311248604776042254939386448433084508242281594367345974950062547623419408587727441015386431711415999750053570358221564555980526482970346019973519501203943475128080291685549402132013813290933778302565169776748849054375375622009394560816693663417288254072562556492036741254718617190290585878974472580805107338759315744038349113345087392015761270006578747594021510488641776055700557822471152634580344878257744861523362649800798279349480516095425478400020429732033557643886294026926057887236930915079963447336104674773652985113758687858431659217337448711600023930403240301006552397051698231412023279781348222236462242592601870193280431141687778185667296377145284945059325322030311909621465466127289570836872655876533525164473253041784677878223081618105906378348748354049163922621691025489153749958785929289991954424331298689553637356529803754560508028951469010592573356125667404683968893703366826170448641675331301461482172602377256672469601654658688198199145513966691878700447732220952801188165080996540261134864616396671678419203300139500350953757377042535031994006094340140787384537584273789104709675586921505463306439291025292359273291091395953824025990715409865479402035791832988002890985271164852938265919169245774848399919422912067132097704285037874239930019421980906381473294430124814943023893295658500938604410033825566664656312760333680973695464892652612770997469697809510877690860387732371442783641690644002516142031372055653726720881577217683536049422908734169081191906526379596447877980133562317653065827782164072645305613223785140440761480688578736692824682665118385507875874671786124541841362562717225469429087232285562719077737247138063138970086446915455966852364075727425637864346643635579158525760097279404534431061348778529318406641983019778057373730316258484161899785150801657921254668836611590488239016340549947779244497007080254809171218386594952082311192326629043977908403703290806802085203682323575605058104047376802526504574231528685459545416178686288529859340668361280944385587146072730175455194939496402466136982321852566112902946776496231751769052286594874002081968125037183717899412181301276282531144810362971521373723889124246273879616195112244671177723948470579725810280008435226960538201852905780902822015381462060557212706162741720976508542372117593548798655572951123725673662308609158561906617338517186716152994411345286456966467497073984117464781796246482528804241012191541636429988809510119912528000016480730892946501534858457728003131727487799566780932670448796373622167102134416369119056682530315996261868198851000899931163921998249217900797010997122967308586122198864470068532325617862534467762304077036470910661787764791856582910306793013345126860425119183859858775942288846513542164244252903084015119149015170113928212786483675877291512039926447491178727445260377665419839628667486127811431003515741360709410085069777399748956970438867885267360303871823126177006681442727209326522312065949810467512146543915744601306897698729507271143790703523012066016238945478982874253179799029181682478075421394889098388323883603917377328914682046158568891253865493435754285754257706213961589784648723030683742001194275686439904706674542081442145057492441634298465533071701126358603754806917095339324051102083502247052419112362866590224799280672735140885336588433386106001609218284089919218474431495887293116568301284060414615295944748190813538468173836996663115248049182150060158488084407628842691650319508555248152372857299452051262071199809732902316771679645066185656181170039434941520773307456587931552127611301812924845648159652019580707215333483363306350241072039504128985448458397058293347944913262864153410871697346600583338110021742009434903574197875301189794344339082232769938143948338875009887005855284461082445884823545156922465474379768475990222507317723937304224832138873315167050978470615336522979574622483119020062424650318865658277504620783395843531569093651203119285526963501180855018493999828938763983756793522501856955982503904253266848774649853134282030637482303464310857389341145767856859445471086391630436662393528568596846872281332280646530129350227482292489350399549235290880177395144250514188228833810369332193601241966655943965643828538867207220823077888402972058191619597477399614096764415161754577916882806532042704740220118198335679501082171508096320099458295616574041490000200583799792678313814759303202292085497727552582302451558069977246197171144462840877906140715111829892460122739195441736426299584357578972474749116089894898611546794809394457814536359658907639448277846895564640404845707594890276594281273926875680151532419978130262018070440576263917209465845027449643891869995107816195314069093902016309468620602216556715003293718853421987448079990988697397381327471948164641578635763668667210675996029353808264055683673220588310816299870030516385124939018113044369265369712941008866054740303667648468193189841203724352848392839014325208148529921460510587207948036203768666553120301428489641847082431247622232293322001866084361434415070044450964206452144095700867729827635538240830488565401023916150703228434840334554399737444774417383283003485978160653062499133637536233633094102936706274899245456926892951564232272123632204649406472046701048024258409673304770887530187644976676647693073742669019069469615638087387258892379731294849532075679847734668782137757626035524992359538274595555360754591470656292752096332705190493020450446680023096271937353169418068531020217831690238550076964270452468783255769001059300899094175001941156361290544003767978773221767485987927619049594094573178607834490565166119825491056694870013839880196754042990700907797595716735280656194145832671092085827146672155518773144321592424264393185099727461093697474119571496683650671136680317524100072307271862993653944324755758340411590243945226958106499745369051205110501733322099312861769031850612651607044972760033756170251201264100224900435418291154163356810660551015655353464065526848761378417933537036091317600153982113778286014807485093545217121784991090729937776709584887665473396353046603486308869241814826563942558032076426445986250714221031582356557669309478924868828030639740553538525144418083736647875137311156119356174687902745329091081409364031028899162820387751917047283952420727443998897245512798345557187239982798298077453879376123082492106122638549743891203726854872996943056195168755841873381972629267861681985120857522916915665478152230612093670919733056134090680794245824058695088582464201670444276594100596173888275673332054013627421044319664666073367187422039622186031409674384999120749177314174262124551847825967458656752989001343430595136743058801202045774623062798043844245190479290787226523973455660530536367503881272894552551328643742232695621124060406101686453839692441033228949402017896319732319749784218827873328739248826002899507983144936736236254504203845054691987326948466179125618758724242309716480211918701801298541739625707463436228957448206239663898067844762995466853854921533180188980543217371210509445179803371933718540817419405886008039779356398220067705259388670431756728306470339863147707472090628439700188563732418646512008846584869646900971645282274215912650798251132581853151396851909119528529676664323198879016340091916152130892471644959926728818425572287905273184141842166862840333603900864395392194537694612238441141984055087162330152896831113057054915524097301682091391726313655165971928907654888061692402995549981300840746617591564409510588655208073555646024362218325689672236952445211246434134156041130715883537415259282386037653859039466111436701192654087749318463654635715296402716855883865705615520357217906791188980498427193160704277056497422053332801350643708416697104480381060405438542271026103846134500766831472034413833374282227851777979914186833020801473805758240744795936885316105122001031714235473769928839577877262005627715635424441109072739793163734757602785396855460052570559416271456810617859239778515295852507551057324133326091659342510431915493065077486805386349531161251363080903437459134887325125994172273494244707403257496669298857150081922048823967959585023275821929760141237025793862526393522558121366866335126073909569991540557798577280143540045820973102491969780242759653684009330912194162952042544495925120508113606490442149469859043605103260325682804140723195367584007621380241340463802600096059944771573054699288496803098383442063932567986707978211463438338798972742930500626286634055870479359233743085987079744672815383845130499455694594085997350941543720603670114103463446510253867083199918064034301504916387818197861912895893322419059945564491602267078228337767324612029929263544552596051875507240937391518318230921419409318563472720128703285014971352393463283024547482168928650522814313777766582158149591662003228113782521441664392575080269189237896800990150463623802376391467271606571541022672568165627704674798624839068455450196178595564739801634652181319017961458366116847765481930902528189740951737676523401588473628259788573403330012248478052846695367391858554603513017292190224657446303873958363596529507708942679545550998358903153114289871604586652173382010800014406493583946465375554470571952355671514473070640172352770555600906802698629951150247363685317136997716688487108050578948511056100836629849577919596835138356481563941661148893829772881971587293379128228465195943839033866689377298972031109383213492271353168461569928137553540055097141479334610791065442740142987846987720729235386101207251412588391406306751842385079944588264794247535526469169131188448455050884683053773044442273989856852421643493956855299547747142362847813814990069140111453293708688193231623462864742226616770378138275581127322635204100096475763335145689568829481606300491973371303326374187333785548387368454442395408683485295342909765647014249521586298137518888261366391005450430307852611651376730140095986633541651387493944179061336984921807785743076640652168530424342061408723779539571434312353279284434258793756798435702473268018886850183771490823092663502865924866371068658679485586408279330620669085652582609347983124274302013750254825903987602766430943034830515475607351482817622899198428960380785491507109148310731088993270470940280684639392872556550536700994361235063372939297136424814616912493808771953937809724812719899115931415561392371215893448884793778206221768884131281808935778251875683811658040791680302253701634502158229778219809425175656959511979010208638738884862427053529743329620067610135316602372831531480406603514331959292421008433621096989171083852913448935892153091589318138832651536521513886840020403108549404031501060787790575601843389963692722675181404430586710434395682013524928958677568013884588473427894329782606922817345591188440261880291914353048018220591635961648177056374480861530901503223353748658679591663324445457258656671536219643310629073337565406397549650483611125236404436903414653356954589960689249808317130810174561338865827975468892625984519053343100054202964244866140179213440446860005399393169950502024336972324933813258837333410612400283739477960658791795226463195011142875728520101970699526555563624690269185224557003470090690921527232725164856621450221908402495324850662781062250204334684813029066744552414706285186497774442628563439884571518837448164248908363323913613361408644354090942649910447390695322116500156948909652535872315420637049423134885027427794970442051876655100591876508230804230852926159603982350240582763797782894682514719316263909845961020387135553392110016768041882328335869028348930550773128176619396212402650164132991315363955108696796843673523774267157391431413464819849024164015804904055018930400783644046767167010420566749985406910591783689768385579509582121540896193378948704508764783059975522102308732764603789701028560392405432779762983460165542724119595899089841343775198687905107329576633862201465416902755079804444222841958601078297329495726429499722327515999481863962732874211216672153638800200907441608342663271328127747566919588672804594323403963506478753311023652575575522475801860916964716117701145690067853986480393155556960500290640244629796744123420314652990456515255284721839723224090027263105536191493755792659003318351791491436084409896919429170195834528743318081854409652748271715751262896412238774484386942805356328975478808947944292526204662119843778086241969621112442129452604804397602852657589614000664081917001617289079114012584358100203015311274547476048092360931588835419558582030545696284180600974498497305572696088034168145422455594699502377101501491164666620611948654228539789036373337968264801492548940186290065249467610206222325501424484719431985792479974812257729814803199978780477719194976857859101120564750355561878711002047617533655550863514855565234351587866139001593984189843670276961918297363464908043407981273431134816622456747796339724892735991837916647691417453002235199156198388606821124550431704812800598874890674248596888922524500742724100346041338294751252307262597149147612952944951466767161127970486324497911660491244360860202387926095973308293867415296426800032644080818754113006473513429485337016139441243096423892646782042591407526518790079812443959112359289560248336693879075063880060511793835680408663428106185886288135177350313555330374266167045886066630585086558626958940814143129895497409400507930673406162960076838702348441548553719384238244376785903988054949795339897767543601639274819017647180519123114649654246460572229830467855762844757966399684068766520437373446789293010270076830949211686835192672488530041937504062967738493384693307968792362326346781331642867180606575215574133752775476997304047940678923658999817903962067480246606182112398471604779117462304579948721376382614231015108883511310879823758495616529533146719438189926392949052305594937316427890989373567717638080860654705437233512870781806539308957439846910242839580091239476955354788199942472431775898423856427279625410356092255652375612835035142376806654789465046666025562878340191947844418610006926514073901597056103910524177429371290329932570849117665396155003801933546892010420732893057536521892586594767880744314067608770830208413014098702878794721501755244178958299785540305756943184757710689239785608652161724767258210670435312766483561527361361618644306360160350813805746882150826320072723728119340362255075588219378843015368140320360735991054799568069867706193441937974901424845349259646480418749929841989927204583725704091435796556498719118619705465335383165615258689295241808371721275653439557395285970477014131727939873221386246372130837219335188955524139369081579695498131194338980967005308212852144091575802559150987039667218698045290499908064215233762865134715881396890473092797420463092473999615335658831452700737623022702670631103949255890495600114471150233508631076246451731508172085800847936256233095440718450103695890115744410207808973068779464464703950658123181921695692563846654023958378120796387055007226584990913586045498752237925972411921936363691911356420968991332867667841361686608912761902500040831089403513481703752693760976991321333523755367754920474328647795128996244219493544216385513345499892650708719987536080290798431308128491664069564488471258423877505186536454382197235002676150268144184294624142328672550078092704212555357795910482044332685789941506099494945476170376334322034380927610781854034387797963121905113701551106958557408052186899525623460510163555005556201527644539997478444903580319821333480377539036855258971358716410936795574769845063847222687400013750660913295031455287152111063387797366670149524835108871470860018168748699527186707694409324596366781293137189038017834208463469959987797686781217644841725549631480055099465579275620801363633402233895378096564774544368290975960160887881199237216537365428542021131972154108455947339229682858989917618400505836691603523658316141308823468647521587876084716999530684137983788534801424938512461856412323584043373408644615592075140207244529685469328841070837293976834903298491738729525794016607823953766310682986394712060425294394083453439801889261922745195946797199060089288393572025612567117236449636659046281640144807948909314094892012629572072096707485723684888408206489389049870990604838801480996650317950798471055506377214756905611745815858338569721723645510518037408067593040652046531714334802437907076666601569527191672563306969950910764628583931790319630886350844698746715511089231745548748157100455588645591851373328004077457742574038049825635286030138426445265142117107015963526385352571849326895777561558789458270929452342016277228564066343628034454752376848648635293332724487284691621368635024063883053216012782605346038981101903615539851320165964193776570543190754285198157940014174284510501254674736327298002933281833020516566660266101887782260238079131677031728095073461740520444297356742061555222841787068667282768314458009523000080122348669820783414545005868246303314577170947868134248622032880681099155535690246774139369485130351482698651171698855130637227453086511530743039981969842442240617905526234872491658532867625083145801580543878230096165108651101626132011794706257354476394909579971289477751647410939980840548885093702121108801121236563668137805046786826355616906523166858660852162649697485783324855041352178677483640784389930810213960519999855495677747489312313325334031960329386934551997753661360829966696341419487032304335429955953363367330011980833981501370196417351209602009747997724939531084067157630486244736477562221111984049391788810735559709956515438923728135099014788147812271571320234335244688325907504468113132841962556800638498168152497826457873135585341952262087749891372442649024028699037920022985778082865796269086498432076615386777804959126614529866385974745171294034402066667258933118602305722454568555298646511377090336315184085188757484710765380378278417868849014181293775757275338189726633446371971247925976841185018405642584425213608171031288893842573939210512941587459203570979645243850704167916407869179535313064074963224409280192288959073226749103192919169499820632127030845678466296481820509464814173634036354415991830097014589971712043735954868816567359451843792287150628689221635862481892861428895728624511785335057332018316827805031462081792131257062538174149993544172022143063217923017298548671078142220257458954396265772533564623247111324069474730019772367608952659015251180304713315874019002168416594726453839434934269298614630965994417995061368147512360847543376346416911572973013654231744669901704517777289923868101546581583625744151028642808455602290655358377770651116804627495728545143983709061903600322691030935902713008903395730156045087803441260185344302331174644787527960200306468614147484150164185371469253566489411283566842434046221219464700613356375269669228580267974938093521503282430692539006795933740655703922842592471911388783606458390579000672706517858697584142766383736978195338836189698389803846151706171443348119509459902298665384268571862662804299667442717265807804239789379671601376823302471867174078655534911926642418482199791387803241505749157708044478888916913547043135119605082477549349181824208426235846736573538707804259044360957322929018662305540259581405341570880208650791247678500494597235081384063980202549815975231918941632772550874314029106618218729996518715700661985642608616857753920194614335165394152227581966958253640505220408516439968834262953380506737958872317308474750552220484233225741486447582746675449387216710765380425863890585880882982562605697375960463170584601056695291635128245630676093431781385652200654582688242335388008910265580891071878901088383028176642582883184013616165293891370539970726210259995602269147232025184149483977287459730285449695362431022845505445330621877811853527998136485599711128854944760609779974508201666785276657653075626346987212364634779723800492261973877664885939938465312405967144766949699556892087126332436858025207392268463271491288379996576163502261837759325283731827200268992877726428431430794850732527859097773419031984792114330708129331857224299305768773032666795963763349372094206877290724707302347087121219172222932192226452792179413569294970835435146885990850144094224270649374274361272967051447249172247926018825369039018323438487098200807962990901319970402015164941053372137783843955213277595328378951243258663015678332384651709723007204823205080853335141680597991793149402865742409981244931173722317229352737605726727359302740562880475927667298680133574253820212068993055456181938264844029309797859063823683064767967943986854221240000772742898067357300787301196094504168454507116885295320582301668294606100742532435933605115449808199144470009110404923991161818411943369263102165932448498360773367426357833883440851800707370631984285328391148685631706915823369507262068065969160233264391913103952021096185936275745066864044631704137033062703651078295838961873349905934271074310140792332632115602379303963682673282693009965354140847933184188702958877704544138102513941655441543958938127785285942695554925731644958930602498989703884457635342155904407298631893889909976675413304765261479407688605816743062046813877767080595683293880696098266770840799819337320706844848865693691471778146154845065847296977715726457155177414200605829950658855635934994561395250078735981102657757375375179463314299315530070117173925039281072755791574018060320080316648641722443770972013988845306992246896518480961227768824903437742618694330446218008170620793671290355251520416619262832574980661207858362737178651700253476710552271672249490700451012854352169482872665204055253916708242149784133159672812550687707791020767055961297500972577054850183365377096264887885072001348092680451820264360711187538218061179942450252478870267432206849311385025227104891025368733231511202867421727665131413652715368367850688003400444577278382034670011375878339153003804317652510077107477607643992300488852678348238048028949723268619491842365005760584344140464856404637835016288085721404333672582532481352627107694666112207511808818110593098444792612341278691589817183867673995949890482029229280114559940707712532120742585091674773132122645739804162929412656827505961291151331551124411596497865768249738865417063542959988567347359741509957194269325430073216047531478385479297804366826952574566177991215692675314148901976940113803336660867900418288837388598154652929098143744576924123611076048713594441012474063606370149248048670786058590377399570765380875929730901559040189137097608467918249189575796345433100998845279656109845779434844459519210215034297242770210182898699584201610146574118191386192049431853468297421758503387966016449764159293109623186311365999521852800671950277172591509763205756129932888881806362980571055254127718830068727456828761845401402300422356338873992391815921915436259531480064107762388652323792360696813559866090424466625793853463539744019422858961666460373982922422647373344411490470856451886619158527828750891024276298299092508656573136920397610218949087350063268721837463010683289090356634415508207559056536248933691595489053988989883940434275009210954692066632357538107426707402741619106658489433478847978849631119727533902318858651416685748497993339087238522237960171787363483445977817851084051878900111633968679819519611818972320321458498524533968304660791146692099775811145410087177146643735816338839872498183955761200891577761853275811081132031098658840243716659246930588530989740454109436473097440331504714550031379002039007459062653520992008616729643435049985251683710819326060133357010461595670268387224333291482070294614926959596551078720734913126236681379415980865470071827466935631279324335724361886914062806654487746940733296183666468997012269069709159878164098638165385193820150563111259724897067269847022731799810406700813975211881811672505296531804074604102960413543550308219309822686711690588358742166590724612569184459155672267264050967208932835977834945851953882233919742545227840604538493555761003982814392916850848486915826428501805133926959304150240800513859558679494668313736871315462504699140491343413647147780799479982466540166666174601359642095873784137464104583531373151609683480160980214060911230365154387236673438593318730246369322031965788286287983075091130707442383006189845181514719233110995301356631661861486678104921466993971900950003879292007602450822321617297561964881010160993612899581415872611847651074210853753051736770982463056409189195298541359252263490689695961804933220690334990457761393761914504875496563312120896821241168426713697747867071878152691194492512594707783857808812609440013440612700410214959819755353173837856646253226999901859576669076018497044385398830037845033289853270527091597435462373864492418148466346598767708231554529749375813311033880903261557487989525020498101055172380027067729876460063870863382480157074901542191431674541263046502509476123375612797773690394074369860542618272749712203443801924174695112210578068723433761714710618240226935827320383087119365390897319071109300759781965701185372504929754335246182404772314800541868668166476168828404156372328089680559995884962521858974346252608909216273555352691953226908991955736989625290103489082922117929469033220353915967429453362891232062916397678094522534328280689077772693476749358204675310071503564041296822963458388968182822679874613534900116323659400395595284852455887602348808170549965844404367569227126071615563659361011888854305203734282625236680832939045299678560774362160795504714513286261409075709366318725714591979374086462154371724378850131380241016139725220615040538599008721922070577106943334107702968363456956180689256864851748623167088955006140186494743300504337897427755722033198198458181035135506005606114895806501322470569648905477463356747724785169248067406625460223379060102120261607497546471381596064085949639278767239161746879607814247473931848095692081406669269480170996166415525683346890331875096006374577399685802415379496953910741317643520968034195845511692253638403034942251811413738195583756384811398542521039512110454429375475738522056560592911659579888955527513452399358035335035872305334039696025245419001539217052192812622593107467949797417420414596456956021563300520628859411107995529292602207495846665078342139497073945572992810954666925124118465880101497764699484786395367115442371325238714566232546688485693305976494376526261744758560196179181894309698149435155571332405500805139153242291393963915548071240149891546408737815343047181187427197713769110699182295409900301936298993667376148572355774770536022123346256687795804663586444018288256949495439743777822571271967856796893788792103056467327617734340124468971346943174316996004227165871262895963424956222431411602621579838972511318258555096445975829205769055945563554773149898304914286839821637699442448624401216623587024276359503207068196841562001488165036612758849252121395340280033765515421118521203050220709882067761478945397244816323711321280580977226040722867342254180151158545149960249992253529581718760870277243297115382269662347663750585234517632273624273359427807370961620508789752526382629315508039649517699131409191704244392281458099355649532850045842522537243658909964437894514124364512540926032914517059960191691519682506501759972629632587648761035300776916266704628618238570691928416504014120405305090803870070384279378249392105302022399425463392117286881928331722738976702388467612081080445542107552073891866968663227079818431376422278239262713170599608266743171764038482327884500792299708498353865283922030215479836497296634600224874983497559423831978588344724536311529422847745856791698398648326909691049706902208418015053451110426417968933999571419296233952105255312096878385957883963225907771917590480674844694193790057559866516968441330869902831369188310943723338384793765905408742128308728873389061430752759950015205215590702533131957943260759759528331139239631632636573574778833078436241923501920066936410159106965081190016006298517677385879537240199777908051881840188362088739437828680128748634408912898324131237480615886595253279273914650556476093696159676540853454813661928415776535774181442579230343854152925669127309301715580275351723019486088011436826132833719482025316448240098362938244231095368305814628591944922258463486359452771188833513478549537018777727177530709559419607093566344479396498701941257932015024665988818100879059439589148038846481529404022112721587473485420782979435692107075963158345097641234000669954224918098858824969549062401675233880982624193877338244877060421729622439632836565713226198061099513811745957389727348904473963872428019204209941764414488836021057694267012996153342204254922921455404770016737968920733224526936720186762319333224688954742763725740536582294957102232682275207283396689461351023768206115938292275958598114286263920169105424827815326918771102357951792735699698409711428276888828574130906369718598282699905347942235267930920563882985689444615612524216024875825364531926397097905893361837967264508811942030814532821852862289657753716342840263934364264965922294026389700682493213563640102906066784544137370494104049515985422582571581436979177608263078709918323397343327994329837317872506202470853474885501808518195937272570376162261600446541509637920236474783426659567395668697396882557296812916554111352201642334717900486783133079978318660000953863105936956370479335270754993755586974048457346487502198026265607431416848020715612726381307099655400578203823237712785084586650455482523450845778309392293607557122766150476150680033468713161498510050702556787833471049814803216044766481706587595413087883612703077246361501955852744438539647410371928372436081375028270233038771706077369196161352569890017194072538561595730758804076280768286665009410159508665285001709591448004189233523318286712737405359975624877214270007689804035140169173277439492510215731782766526736222098067096131338810627888059135326238082341472108880112653966020247383841896435434038466627834582587813564544453452440016249071476227220547136592495120661108664714801544787019373805839122761940266006377379771897457065877681226672232736443181689682029816560828694763732051246656246294947621432427925906315885838462104102127285972550833326584949395880835030722498165427930972759956367983320541754046022088195350641156049407071251340765169675758488320578629689026304029815468044429584197367187962398641602331691277415824652532557815870995106570489279185723164785445097024516693375407017839961951926152820154776492538078270296882086989957284367938200322759248251085832701237707116967295107008499374265823237469520956630109557846279984257560460345878636260192870862983821682637971321210909995405007467804208125792422816805779232383245350870802703242315555448802881912809640263334076339105815421013737900657125799007329017622798206034162796182097603335109824219465235943528979789311251852213282839453224075473012399066131714908344376748952638679308251640838409046263030541349715275527786543339244200808176524165498201775572942653423201511210666326244741652111913400962475218088025306778369523072475024084578799205532208465820982715286468071392314970277230022361713194182594856295701347677512818804299456193518850177130829226191322740565194542600254504520905707008467194884084454505118568186111291769205255363232007378591142259666175006178575879478319217776594822901486171601632444398039420038829828173094801892018336542499410847771645944398450681302566530063269275885780148074659459349335452496956419990891600972840357807389493623876502142596552835282672820252636117764060587266917346594887822411938727359500605098750204564789966660100140787935524844038688333814906113055252904128035376575694414685825239042331322069689398897112396011195486177938684771878117422111448469740122462919632962646659966003650723960893535949228671568534516910445922687627475709893700284684502153594844588746630769347855825994540468212690643004308437544715342177258793989074730106167687049102705139089479564640192825470332464639322188142094094053069811862029925846114347102588709156840565521071999119153527819982234434904952801572639662511232889095554461248387172244999306929942578474167195357416707233208717473529689135584989977727924395998744094512238573832227805001154423113213273571627702227697336874672615299315330602745580153225910019203785297562016980861418977939200215193341501294030685858973516664868507750441488667425893288509843847860794333886609814502166630300886048356457737497212377501954194526702455620970627784458397926351099066731313001685966640257856392703001314786885348535141488980705679562194467984999903260773333937487951946919844739718834970202610344423222559114520680941459211698858425551648758244557261959588100010395908586886667980000020964769564767567325795040634951461154072016032348375430633275887702609850557281963347105009673005638186285149169656137619159558206090259527535193846691872554377469535511103338298863372807780660754171289394456211791268535769045801114221493353308744273693440037429881540241584607127609513232099542118287249569669524848381667116202867913962026665191082618812718632728767171611127465044284749242254610393969930462076901131559442958863609986496119434934256904808861429359466364226187766031000531615158530271419111058513227015196566210670636084878201601798494294572304227639290658081587392161595696893338251627282297521314885426677598701651584601462992547747363287413388291059956330786052914006898762056751015476497511666084478878251899022496599099072026362217979258736698884202573023315674870948697227054508232551494317090296467478861327594525061518365886554781014199663701095153968459337185511587051389459382175691264139851917759426916123080065218045123221693338690685896622862342103126775071987838136158776533267440858903160166681727883680560425439417724010332276246440941603823862281458669940275956336790619211266216424228205380410624875054709886962990410672663663116562069865398118451044142971169442121480511897217051205479012165469965507789671646415993111067043328381133579027118564774835294509331477767750005222484655108139487566029154326564178966780022729764088629332511293933033842235293242551609546502348110415905060724736765357260617438869972458084333559819296694692484359484116634589805083653190766949745533165217173886652804058537128125737944637388519961683583810578061979347764911518240754961090731858816635510360316552554304405147139935095487995756690688988833205212022297352709698108456780953888975515378203751534132598772721945504435531944119156982824812232689578788392601648673001663156576369915968287259443696360106346502489911964907412556478318112111658015171990340144390519369930094623292465073214931239816929297648828667524170828279556698004838112725574508249948944194612605698459349504184129938080401644269975136298070374594120950155935427804752537145421467569935428984178289057198451175363660126051816015348943658527245576845464554390998240550365841622105564793371961248573043012489386367245857480585346574103649577737043985852161306954674888880447600678319804376544964070589307401688708610016444495554368846539304540069478712578306107727459196277830140293089673963601493858695897756307874433113099190232188745724143015262499421013383245882312937992935292779326165758172694000782456290669980696295290063421831851981469253299720720972914079817337136531450825952254431621780401638292826824430167260838108339128783152814552660481883278502590286723328846328132360324865445694448663284423914515612673491689736428994559208543488535500380421605189668315059317746730571459929308094709606016108510994008682577961191788532960191592166058476405488301097905907240291301897107676346500250512928068110566127805733068234483281800671387953299126526934774323812613390847555516399527008262172874447931464112802021791030027624126041207902222488102690084430631722650722801455455642986842471812046776989503284143874744034041100241387526663774465511715569851013040672763243208570663632037008256465366603822283473607589778130186250389740150195393651837889180489899625531134594262280740192861224992038775382222757513421067034651196254650942292484887802355988732336021939907892672597863730773149794013233933644604288319747933373152246160321168512831813780676040100350977275839190460349122630566564131020463733360405400815831191543114229100743428073233723824968590241598577988374958458360990779513934651422366099804379666418331057740530400928145291662853060139988552515484078629238402614948037859084212364065517949145584578244219415108212859280361087748828973058800251026475107814244521558188235596914073438783683821848840643601753986516001320461292981827023710305503916677617721400701692402753653439522238596316344994778103489561021643676932385989689305655833798254082857550537863060503713884741221738211661260935339826989320684914407488097384553916347610717476985648539361366757917767893738903806376333857055301403645215339504108700020692703182794638372710276606620645431526604509211421055173126595502978626230033033498524727314941476171292733570038449174130840781693108920185677889719719936668719561592502948072191208388844739288652369972735170884308501841265825749738709868940581662047923560608115679156537159384425671448631893961806617716272058171207280333801275223700683614546162300148700493541879711800280253649960720606300482805169111474436331164158473304450547834178792183741003968546904010692230729577959735637047793012445377525836362916292194335577231508271830420437435505637922937596362780336536113926022902517642642976229916332080705230737796908132877962338926881348562378947892665849812204008023476819531941290609737253537478835713417197128097070937775663708687015856362022378085915688866041768966584555947271209299654976624221012865166956974333610623041054475032467484826114200422417788800293664515156765073448932554164557602049485603161897321608511685667958993184959985150756753011720727775110030389586962088997901927676939478175287052036965482380566862542843071828625643328074416468569625936943399658840101771209384436300953249641497643310818253116978984887388553041195249516296992737581538877531969147952063164124311481213610982093305563837644053373362966079288564988043012901164475364939407811929757921334166135313364243485374795615665590333639903173457195618130852684195127341444953082574902066739006325125945666385147655726807232065755282797766003340111832659553663591307218143976140457090366740227922020456531376905711790106704157238293007292772763735726159486960615707310469045817942203389076734666894603860092624343364279294900329914280919584106343788199571246400026073949198421735297274646113437454036747672027901822898994721546784788443658097769161554432522700019685932266301528556354571786826797510069439942150701545050358566814531592475129566295079302363968345342820646761851405372691452717728268626115707572882655108769394452595455392876867463448082096644504418702117471276060551580767111409668599848010087121282696135229728970545563651927142839722361980444037391796532828956927952082429252124565462944956705961314381141299370659571846381391662742938873448996826385663297233667854031949422111111213588396717351290521167385119034724527320795486874183623611093482884265829410948607540711380628902465961112984344637845480737871849362245076557021490189035740971458864470995176376155983855313412005569206013095760451508464049078881761367487701180874698071993818548233901784526240014295361855611140263332649716257718481490097372318071678270099887803160893778278170165803167640992790250884717872311881503328061341286229784307603192868309254641508700280291367406308550536531482414230227075026897650494926591031335360359991808472491074526969345012427122386223396298280507836108502618509106289990667174282850376863254410610831519785561667775272702751643159759876385780741137131918773277764920015683581483809227276414833524009523850597745560774520600663330696603686219548194492602661059352053672254653265263133089878597007560375709011085579518819647984684990224062669866875211997939306418524956269031822571777893409336358190800938909449315443528912979982310037835699540184583971103589404846349733796177161390462162010085600107889238623756621675886518811559059354925694111747982848818392563784233695445651248010755981020446542670581511469232113837153348843297104041586084483717196855658098290392420198096249829415735387877402026775365175612943069487730260851822902615830138883434703335145235404219980556494557820354013511595995554343139478095178591816718217070113610631373283415897046207750044445866541891255704263872843907975895464158492656916126155833392139640423331709069875764285428372147644697826400774989680521728978811723309902096560804205177083351182777975481832754253696911691620560339396786828579913171154612328671455072258590235818499127921451826775305656710871157076044349971900952094061388912053163910612064950665085202772457012605951058592429778871416921760284240693755745874847976648630597497041355152120528444969714672943192336712269933906185154787996772011631170885699848337043042530920824452143359266899049538553603540999288627092428322456744875257279745024811644038286893370640891964715426678140508175878703850736429277214753225717135791356011241023898646901743397200985650750469550398315841422748488826206222348483828394019965092456370740644315542903230355127837009914690062521905821261124649293415508744209419487127466012308615015636345132261702972895265452536189489555009764667658561971307744507346224894564644412878989109673794076712070727028747738076940380042084091398591053517527996871213493640612789558238357648261538529763493748650685178236667875478470455807094872234057100535095131965716336977975746234659116949497299190140695834826744138765460851849516824471807254457421567173060950320153678745441889769177207249985844819072601611933905123200889376349987598118216423974034869996677001790459488704123978225525266283216673038064230949662394468837828519180054021299414412420132308468276614441184083488318981047360832511008429879486467087228938351894506980773941325436570399276110693611330113207420126477015793129792638670783998891710407479668612786499420841748578574791623722521497419118489463918900483047355491730976236227499994882429753485987277442638966255331383877300367542643646169516053602447907126629297683404873828507174480282718211976361055632281483120318617421343401258175614532312413919916273514666632576947308510735523007760513616402820133376736370012273933423846819343028945923131495730498739035745550551919943931441770155032289194082384800143396306709439447235318074699459351035497144504460966892671167617559258533038886229732672494967178275865828138661600017077940008061071480186065244078642747169345924298230242560406929643217747556819040502166687627671340965058211848512272828840309569400150847702759708003082368880128783898547001147365282423228856156202567335614693303943119868562054255814208327056417078643187019569260659257326199538576823532372434166851328140139168255394811736234026319774458758931544553049378859725690105062073116752410188345206972088492453912875614645086526118695194407612769736075705761042860617551945670072005052774840980163798947510820546888369739148314566145336210184790056302713470886872152522501643091703754188334696832612353187982560778205181095483111661410012492776066477881140983051967061190734426330510110012641068991378107982966585240772319219145677886990172933300502716294287724302313520669125797034069476994159052747034209423257083277037730685917835211433213151651165297048748769341400959983314259803850601793941114161225073058554094571559866077181160786919573099562728929414648421451121115060543530625449532463521633231970962134772848105836453052261979743879715628379286076110641270476230524501391825695868077157885669417053558600693121940257971142092424219750309556297056729223499765660906058126452277314882481013278796311182204896434430760010943087950678376109820398519249875227103241655604485705462376835980841849294869039088919162194881497841161859778881401693840823025396474085647456978116657467632959510165872532406482822810975029460459207450339571197625481379053592283579547501714097215117381068869016775145951852924996059190066647523096787214492771695503551297243814627552100826861592437993612321216270551851186782560018654352827034739865790140562174608394175469008618370932194338642962617672862118926696041167775105149417621614786491470964597064287659536774696493785471625102686765723915613359307426440539305750460823978988645250066860165480091988004065015397113649935936201072694860546194216652599033517256208074483536367580632297973101469473965840635906663814768286610492433579479639988494695713496596800537710632733285593940791141668613823625621416816156562146505146434318613198605732017267819849809101206036689917598474209885399405506826697824589702391504551605483234304874975370882403041045552567628681785402842421003492718791731279768993081229918766943961057829110051988739872972304959372789510105509429869925942703985953065807927960470213150618743328226654047434876748703099564870494055026604918346050249786077340048404432329853296519291255876563545889955372656577222112344013023277447507069017380746787363120551521701594166581854496286313826722244162070034346343173279721498948282695407278992164965899394920902597501834491789691286014493473306602559576437439313065471475346827577023822882036782151584159746603934902170352160326017331149900119608519646337234555495697428780388756741970828048757856065626752675963365510584513893967991953202493104155969054518871584559208457597092108938296549881679245117422419951760760520491956194167350749100336821940545658452601761954702966506767132501503139037495031797665013267632398764247045015419235514811378616822131648102801574656586032061275108951871418030973421857403069919076778131513238126817321051870744009796145319285944345204983580823712890072739117225652856325011763372811222172723487229916103056228799939827088611050530144056313065983981553275548574304249728427498467308358261150413240800504543693388876887600265284383389035127319658665526668280052025976345741043931299914561862941259162774566078550182706720144393960062488554829305452385018369334508691223533213434169345154904579962233872692622138181586457794642003023835723995686306048334633545613619227632595872453501368934247836731963716767530164246809452006648541101821554721520987250494715078374426505749370813499657331398055067413233128112511933998884434048479895633223318710189566510290448227668070229217900350182328412743731356119778699975766588081194586185335846894687737784534172315801734843366675417238078366561231148046429868262788275196101061496717625361398398401025099943337949227336671573867136387131523690766192832637038148874536000779363106689882787817003262286500315326153733005236896463554486229153341067540955646650992327419717728480249843128139968815751251539752451896809758863282311203559589287763862159805104407076174961339819927048904967056293034787899706268418911709546142117961898355700796981619681946917437444496664740448202786518877210241916726105741417244591215372071496865126065804497956382999903859883931209631142819752804560481492145049193677577690514477051045644809612009455721956497083981383200378136328909400018678497029583183248673739750580989440556892129617484288350060546212877107109661367458466992791953800147574146898955419574994112996823022725041752572829580216006703691242079716358769303178940767415608484499001332306606749881857660809442343223906403863144886982340290831154775135846792328426333904136893651739906419901476248730570564309063287945459730497389438822065723487044828507610469869770768352424590809534026022612318282421417171193735669221665449208021837882052173690656318062756116122468918769535664453266704141216086457231328588003707278967050820647648263638853253280664938107817300661764250240403934460757809703202083947373984882144070285938713721047764622683498517020003898123687510064420370552616263499417032487570614555562627898888704512970486725995777051502095996177368471377718212065849007910399706425040144066957020091539898214636355711435014149183908394246441514754619646989020903207397598271479789617573629283671697066830966337455733670970978967217157008373547289972808971930491175893848161859430998115057647032807160310696105097678425802517598296295561658565953371113136011106946495686105812453899674382570996671099622191032842265536878397178530358223437911982217024503537876750891241048303662231562292374678116996883226226984290003159008056914932849393719977240330629092519514110867247742013059024971281784622404514625271908027571408318678185579825511258570352358838164101364102106870542730015118704532623668264118287923094309023168721334494098342072599737352172318931457979645175628444976342387063661518595138590733522997923648673087774849140621954138799173830435630622946183546115651287047660918855309471963799207975929539603525783136383888385605518062915173593995361445879072254597447990440623898829693232844177270618683423728666528377035347989607453144381959904271834123406120798058804164597802752962858922891485869596246736620230529308821883547441221697242142294974298484779933364571250825351317354931809597323169844443761471478240173611493123873138783349273052255481170214452486127474458118378683438903534247090943375329376261674665673272985644838195398690272109418358361872330621530523196327212545446737991910243016443281282874573639614448472661916798547284279082839133957910341158913916125401290520814585932931719759357883583141097931569262611342700530759821781790175286284493199493248442793975449985591490400897746498180492137890076178298205748799356539095521611321936071655300098507169253716680084654631246382208671465864903229907636487602713201465552694067803746519661244361693094835030148466044193545125285093266680738582472403573376416737872357871654122972740010031530905360429968871623246120085264600884134329132280633111711138170624065141547933769567174713734334106625166370773789408194888606131256190367921013763551201732723450540758241384479405177175234415267309517224275550315706662537106606766740311184464493534274151296698768337444115470440302929872953093446126116430200485718776984448231598847081553272606467259697675441717630564203026368830672219308159255558579060859338007986151862441569705194071899511328584498599446965849445492257446847311701213713421548844370925686691439123619805372844768941775506430067814650611687171439459156839440382011637288042777391265598284194965433915510801912232113647340777559747651289778873867732923449323583825833375610412445128666060089054969646552958090959120042670051365234440243209413998514805618711292935311508476591288410224761275306716109518573500024626090163311916294298606876741869081992959685621267889338315570785947099741602321168522165666856144094370618256759142404387317901119431074747353109575003067995345165090794560817684100491906592130548250602252867929097263234419893481051809736701762585420960884627193496712362403618586067733878604351239172711148736520062593157171934687651428343874108082288756138474625897130171074039568219730901108323852942520454010299759561685823063139605680992860624305953726933914189695049403119039175487105819748795004924009657340935777836731269070817301952708998219580790736343197141760042406715526974242257207196514030302823793852104174266285913222945146618363614725962170838349517014398606383935571241148537057783024847793753116187957617364747446380186045231208523342882346271626000432912597193966275116824945090476734105409876837236088256631822878634112401939330476616751614753406432797333225276543194387357007631510948498938547815483972431285416951168174847810816258788670278515699205251084998031477939192384928416869831537317618378038734070062333626806736775489614470824322647649042892537711628657060167193996861926635237826906918233552370581551718306643612893396460656870424473080412851690123138697391451404687370813414045183443935880956859825076246708274081302442147698929262886488274510090276511344298796689323785861359857590236103136645840203706601971672525587374227477252574686252286139864073436700592696835492854071195275896328441987498352952833034538623932115196920418812599904511327742164577312719011428580659230706876440544164381335546227059676101201785879328118039787962760840562090471898229758521061680930464848031419489483860782938145947909592209979745938083959508562599495381418250143929139669260095642571640849475049474374788693838720524518402856162154103701431915072077518349331701136776721121394929188125725646606289895128704690803046513277204435512625858919613134739945339432600860001604095747531063564540116274463275835114366474034512803680680241860437707470272065604822071927006556454090857767836273763001914050642594789552430007688225311278541137350515613062876656917713624340284778867332975231044145269922719440802831921076708699107367735162322510411505025967014376536123055502527439121185951516596341721908514262406792256365057447955829851546674603164847093957501401262792006555398075202588642199386803826469083607135374078025102142893236787385821837329301544067546448601553917997697953702176774555223288654609171802232590524459604944531944728364692587486203638356442911782646026185528255508602217247747306321057453082327185825602775239473420063436196665103895529729551531233012724938897506228118853585467372531593207879728284741152108094220190268584521495710815896459406068038357837157325921952560286419890498368447497614648117484722162100239369441288954929671785654376272777474374211295796583468133303150694850346582946155607770468031201761950835981749707929367568094094218790570544423754766542679637925980039472816638068075470073069008864783493260738327044678156101512547526260295562682776211641009425444233521880887428770480825722402185088217966697460222696283633914346225869417776972394025821059721552205169227975336495171438844089867061181059571575491057216916720721969073909290879028984891217712823381618438214107268799068573092415218595583018772470376852315339668490112829685714602115138462777694180318228579493904795617719438983862809282269613605615734389281874358060603329520093363380740010252063327960587135388434921963658737097654404843111541166342717718384954397889150392459127775206001040153290490023325216504709729850726418532213459705580982317159541449103503758119968066272087841188829568547756659609672654299192206057208828840543134287914211118283023936897444083633858857938639789787150619004802478918092089547206634614447135182245558902761312448342609184789098700528094371974964584846606810763001063294946933147174655874849544016094148221313793439433385082795722699233673136545972759386750897463707840052624319211484472910440027568502797409141518574507424705350030132388277579535381979251191704703199146017568156416572835099790531862303360200371357636665040425362587665941318796315711908896860000582561966993947428086563105396042822190571846879933335186126626625435929783954759655712296557231389937069660096377583839495351846075707310391048951136944084258120141309771973371135182913140290445825900405565943677895926795592240548551841020198122408664114766322308582227193226175592703596087742623923320834510143663665334039020384267260947436482234141252154451813921663423311440833890618894090593541750650855942349982328537943329366488484398087564801057091954377031352056489180250955566560670568423763632032363854345087448876652424048238221870604702985441704112379344969660930023237991996586658351002959265974350067349864781963983177437025623992303562511071320101068453825329095398988428016094290006646440849830183452401976083844184764212361564003904218767251170827941574733692177819374744039981820382159584367412859997555552864770010640236663702187608146538887309673897430888921120817612135506630789826788629594744549669654914563168437392491036613354534702565274478017534181572260036635303576055578399210319959926154606534093495752578338291064082465611210297734224423556822176888277520074850968115486925521688375957769236999944246543468119590655042630487014284499239112215550656050414367879833432506487340017796554290528715688339920440917832488592357897079087528322973515845720347812762104329239213343051616442963162822692711900687861112549094644217871026946081506719975297965628512925261021472777641483511613194182722519282997476004267811085499485932655973727564305263157695192652142055717452563237683229548742010687898327907743437763395057202135910520978010712525888752078251518530909686451205619096328979520222269715220549215411479584654708765015129511231086470976274824217178485154028865653136269750782880894732960785088305747365907535443425667800764459678880934224557885602176223223909428911038875135944303913745677927613626539209896037285038254234461837125209887937341901703583855049652627796465783121496543685694825171472280879597781944587356630919568582028985324222386326587421227723539689787128012502809893131631190474681954917401445926246038930428856277908440259212647609781726883701233986065054454639182038505413807085584096723798388097642427330890813915699763925866017974226581031156961983093301311739591659744208039301648625568541002259297497591048943697115179465040669967569079329236823867154744556697714344033981247745592396680516002728789378071297922233398889237710771067244424412202216326663771604381074913741273628091159487252477780442377712719387236246302228756647235274365983286140202608701858826241242506490426664438119108301829124706986139871578284947907360644381470895409888302700782243269709707381275936306378912709424121849468590459289430203236691383484658306167630505821805169451037934217627249059429080836892028672750171144148631141834301765519991505446285508888508128142961470437616280185643394974480800084766517078661814697250621276146573557997915611705438202661298059107417239702098305775256349773991032019496753964175487466911321823891488995882026488382930905665864305876150012702452828710870663199030348996401326483577929207668426293175817945311017651718779621556831424841527521081648654821599495977810961505226605081322380391136426526110999970501406552090160196190023722656534979667566997442216465208973714051478415847130748611887487268962839753583797964599763186857316673986986490715249947123755086624665591850283695166892509748278275079554528801576012157287840824635112932633606659470022430207466500610020402088773215191826141642853976269455421288400692943446091836152298856041437881476394428599797786175583817748462227988246375964906270502352133445630353224493105163632519988718015023045857012455631587208774499371146046497249506248173916977670577599387829844909391459231333920678488046410577865326379607564229888644224762645943896583410720752152979657232905718234247798189804959150311584575615045664932883945263256346956213237609556693803727191037900013784009319218632352240477577512719952892608306452005879879713339226941942836764746304173022358960237384615314908947548557654075893009885644641761794466117609275291980288465316760612324863209685130897362198979115378692410068590424279362034006322920776107253135920450962712192852781649926213187539520184881186449201217447487570857582800763889641523483960469993207938896697906565176659351354119551532737198344939019498062982633718906926143238423652936457956400839931384776675415079116212196591874756188941786261954411100825747264501434251764192557543779358735258877080536546082380981662338864819286949503039415534213771227053806926061732085444011414204132615300229488087347407902856537656552209521629611179589423944276619037388830807634361189748163196171105610059768745220390167817385186810345396058847421497418500006954295405947816606410562798359096046818011145446790392410847344286811209769118391891531721233748223079589951060260614632478779767708773597200576360167085210199509015492487858136813493098465792744107837998465740222498420172157074521107914023444028207814108430181301011840073592019198481273726141929979596976335100961474689140733661593648058117281115035097257272095715495484037267207702138153910611401485836557160488431986026216167337930602128261732178519189783857735519119353986971760157393646206881342419526753389694655578630406302880546769640685154091762628654076244972982991983520336825693494645484999888392845280012538381916958674246237444111922485631056412782922123810253925679032504762374361968340373785940095807666700356146677542989899122149293130885552371910440373643825426168903543927168658070806174021801736506910124447478273123764014689113328309544444712668296215337076492175685215417090082725116297491489017176144845966563976070903796057380280236745448606193690870518040844968327695339001410487150737053025798593872627313668889190096556248251709650824347384449939448977042233963548534803709918855676086695991856762789127034597232400748183700052561058502825259057803024225580470796679152313189008235926068000991114219944136854498325134742874157251807471141662821929568715461521131515407537779843851373535094458631002256377045924190001896990062099115634697270679709670544314043703486652642423999946650910321125903169900749427960934613541569684759822590825510285292611236482124329088961127843073702601845977138762766009455521995528564890603897630171422005704768643766192438870563324944091993631704114307734673584441601981014432298048316198270660016194258190544908943924247258153718746369892154662299899702017889043697989630000047577668536558784230948472290490781401407191986930061632539771302141613801572296311657536597966733559695279024366162444575347475500714961434903176770455899137459461851136347392778070950535331109209539459270451332666955581569898323292847236199696644531718276169082560777743742848467009756982557761469723979613971582453214323322944560594540996683504307080963756018776403980100225551238585006583640145121659343329022211932262722784223700703550228619870156345162114704017874035799033747744192306317736616732395612274599127584874472309454312128708902032051521849181942139437848232156051420474685325548295332540502561424639761515165101426193739127177422256902109454204282583195185355223314478594888314062762730711577633249023205948658865093572522410402093972453985602489624482160442835891593045682809168784081074212369837661380164065219387780419000557266230613586252805731119045939033327739644146134795599342766326049175516418888729303869858723527626607996167458279693716313703142834697939597971514426783302964934850124561677229232220257298486529694476666252178063386762254485117961893632522332308093008523551544186548536097185308974775903359173182440863608297385811748068498056387093748371051428429270562630496972048165328162868084345926449061755834708211606824256489156318096784919228123965147765738261887425180469691783052783297053201808847715326485964105534143872449447300104094645656813252635718234104820880005934930887525787736536448998288208656652183495931042339650875667713068132526552232456780234572583489147863199655669146028894919664528556450626454620164596791334073853444003848609578519864363622594285148527166641155150156673067557149794159274445826561334579309304710434833186914560482042271799656292586583110657444947379869924886128934531449640410660939663598821190744081044682325203896977612159448623306840045985060488606688323187640435387519256766776232760446822080628385141966600912548667237301472584915204776559194493367339788034823980841116610473403109799675320115349860793933875011668845084120912040804695765402477388781999421089008264110914813623977511426046732952811449931937711115291486761587740450851337571037904148212973647637975002749429741030397400295477177780028435346348941850911806291580772685666888627023674027380589978336179504412772803206841852276206398122470543091386767846606403586118251196152780025014300385194277942058613208139128643862375767065397364313326146539382547506422245392810773992046396156901253650125200390650234178986481157901698689860932077943059688294456269777987281296331406264351891847648146101990375910825295000081098852072081963065873001206841528762651470316306263442834303825910987384340606758397639342787071176991402329570034193589471364384658482604037559339805415702908014107080960608912288341557987629757312610808204015275217032983633447198602951721384910268243509904983927325971462018099740360839572784308550215184997599169117737820740938493207349652111756185104840375659035291618157235021302425030460107797736569279554329527369158518719814115711760289289564587078583122083278998348836949158925062821350474612488093504061486257858750487221559040152603367059858998980861605330881932246501129879298526499729778883633735868516772960063175112554130929621134701805090738154469617273359995420639073022224355246564382058429187818940951102476420531103697276151409668313830974710354671353323797141240234620753918535218971340564511003673355352584696978147777029290497430023528145832970382234751702821231806106306303601110367247445951105952625621847729096667478799526338914168723891745888260011414941944787002935596863864773281041288367440825587207893506874696186262190899024697589143100888803737566270539283570054832220891356640764890950537471829548224060302103062463356415501430486611729138487877803600283273294897963720291908110393474979493281993206281247933446982176130192123510268400904121977970050974314758591386651670086973199956674312892879247136279285723341681028624474026358828070615900830012929794063050196972256304571014795276742430335548502324995870014146361731534189849548183530620861216336674602520834701010714731636577955090714143542233889600844141221075299942633588949167856170572429698402036523840250098582013974838630769980986246267647268156944280510749231193182560866959969670014210944115301072557020295518407173593534153084987307073993178631675126068610069706324173142864806660441708250925726538070011436707287734490987615626448033374749852510397174295794396336421566898615623403294579247717671809328874411357447664125529542997331637858170627324035026851130150310277663291328082564686016364030093868734557437750296622536360035647325324391243316473112111742396551219141919271169253033607762337125501505136497219072889268520052516117462154774700660421065458419273738491049920648831239819651226226931201877016236713111286211334192050263602678488825123395228479352216884865013150418678165218853425138918420016465491414018259052798287967320651858083933887052287971039220768823890658919546570459927189412635075324733408909278353320437368767401672201438242770572810325594582107545325134203370919471100417707953378965881712315091325618311744259603272304718500418961046159795068465694348734793449286789475993692639617046298888440271081728331252002249552560740735827939085794313651739615246470603029280569270079906227821669588987425007209721432263942673971048016966928794615706725577553820819122975408072541274588976493494153318943388266624267543304728474068669142003286150395077914165570603385407211096327997948642034276894844581497108020304623966065822434145420955421810615958204714022882301497203088051308910869592329086865849347331052981285839356295967626287169989230111035767718890623124523720354720322126541201834380980177418953956180421463460708047083634059374535773070810499104331497618085132748387660585797299075194979960445318743529272566176108369031577951168316855874232265219302797979777292498758733464941034509118704548552413594068264846197280698389680112710473720586234182577014021224034938737540249639573054519496185359640768955776661198640795239661496677967316226931530125357930322341109877215246216816022262995717756609414073528391346970132645280183788774207529431787535325703206165990129515308971060551632339031502688300401710292600553213112458405666608043870928414594120147145707828821478480237719709559936395636081894784786428565319706439101766760118697557549275031315035640952271432275488770571327165817592025301150533965548841968676434356938346131888154130028186860310302825709165576604791774848082179939080270351787822975535622289460615746979224203309521151455085691269553971474462056664009237816029993423798099515987898649192178223025064952625888761395944422827394502574484384050821009810002218852721850108867134745860905019615917307921357856335078290540072268946076676148330213835266251713317696196889952520408086574414476855813208817286545015608731219147452587661479855223573094915124498068413148702534173104039787588474913163666561911081370542268908127996737569796470151064986067701510684305002276873852727971271927819708515956193063515257427955542788712625519251103774570878403015977859371400284802802360863594303937429894393667816502480372393933181366813442730906974695230198596655811815347581022968773508089497804261828137831566085677038030268313206659196699663165083592416210379603249448930890535038089041343876227620360167536795714873819705265766652951277920439217330548777984696654850133021119451138851928354574169369114572059836390588552508215389359983031915000805234488451990915347506004094579891598892840548551760849172276574813679829378652320426144915451626864201532568352313619619314674104283261286592893357675351112728127355692654449466725682749762659803370455798847417662535613232945890504843363998706828036817766777277051113840937314856311739764166879594651263799706525788128917568569092959506320676123785941540755824505339657867984112161545046110672634904103257065814146933037964407619864039190365370163288340843213872501287978506642523882057573386052776431215564548263745556541282496999156702648321901104253932100355905056145995040010501715086885418766918340092731910962801659296021804474212890937527211611474084373882722224045024814163042461204990558412208377233486425030942399716304294591376891132669703145574988767746891352130348193028506548013602299134609323918092664207507881944108541496368722675313157390151320900541444531882536210766365277114303191839262319320341012510365528473944771702074278716486241927748201190435335856037699954602060024971699031507625502633868349214413980814581737953640715779511054389266970221500767065163357363843213544073287555995822464267278687515833152906893166263358613295830527505003064331178881425252277301304836687582676712162195822106015486173692605034697874666641864773951840781702032463946212275060117254433277790523854954505858517855919476232593294722938497367435731773744459218529776307657175742354504757600426688927133312769332342850322507682528765964983320055786391894225808590465832339198390927051724479146228809937821547800214994505306544504297978293090036400269860344873815915029008932683719761310136298161196842615470444136059350294858077592101190124923994703305642286162657269025411895937110710067489850243470965328985378375548918347261581189518700835609037798335040968586732686002012908088619926038177127114550880881157853808085872984861302420554936491868711260207282072952915218630598589978368918374675060141905495193719106334731969824923846708045842155912961171719264488430111372574431477420155133236577058318047224863278039342399298556007578864171761429405290313980955214480004633500340552757634827715944410293353427664279609460535443444184269668235109964327041538008620572309870830901389927799028101737396930940521257951618287299385204800661391835636577160329662367433865457184804010039564597839152851081482451229990422110299342280601290565225146617624259081365018354139288947356553360879522858981239385740849359851291333835343238388079019278158477615711594947225338013127315442161678567115922678198064666034035823418521147974460186196855802050242138440452899196654096557627715788446929507852302803271589694193076082373412653132086582990702106933738432076158678312750650618132753640940655476584678373781945627125233558045041474744170513017306710680175625921155421454230847609408604153291002626534572076505568434025199235126752462087133383718885463163594801512738777582591794842464979329892912439300957892336368012533761552932213029240176744268846867396226332072039153407685130178597473519752049515509360744049075274121195821149792498277228296744573626102678360045172653266916891647637140720939383523198532830176118143386005991767750593797378645209704588151538580661139761453657889177232735119251840980657215150405715085430771991630485461437832499501985977787606817292471853386396601709288009249266644222580762943164694185071399558574973058066500658985957271560153176735861784041041141954198316773832925600988210103392494779542672047934492364440642198098712435582775430777352423881807568304707185526092473932187253152768313824369364486670502129666107481804287123686889094948507149069971869925586395061280867102254636452701182337228546337236266224230939512947696863975063987783572420015445705626316591909795441468635696310918394872162727456996082817346293672668609448638403167155442926718654422967623228050336095938580103858049368773493164582577746353685364457489285452814145385938401052547816448367217877105938159350863046005285491730447977980730525669420750221218944692242717606088563874971404362335295039818709901870312697791582265967431167952824672286136479110846591550706470118248183820341260577718976727145188835461662883653482390661551359800335672977884714535615733691116734365444985318436419615543125270875803494365316209836793088950995109095262439694701023752155353338706684158673135292181665011514241249415544903127053411855105302389403148468369044849845644892253917070146034734392874680141805002402791697176944850260807343576985731154957109276150700333276707610744628309754225148458576367342663196004858696525190497626590296760124148088742834809527254299955716660526627561945272510284962238908391116009528286469426934015058253405627546041660574000383896947157956164884718462215122433892884998933278413101677683693018267706212461130008441942532189194599817627454430190664652078835152204060345973182494927381140725319165119494539852941651664724975492441736700613299567940076493140680064239897993660905232431610253466559885127359623070601121814030909627421775368108558415360963829627501932006992867265807782949850216206484539831869422109333033446324659466927015106908913441880309766421361165883852255766020890005218089467040950996230513087134849142205685274616903215463245938792456174973622871453252581908331830306283941307154481963527927451912610897404635667992198004884107361051764477587118151174968130179884750271898182213700821039608687120146846205990253897066172931285173128795032778016484096639769315493983875644497201701600611784983292322959809966852939361042883230965229740221682802033795366102620899361901156076785548858226179148384549639379670617278527172674366807476819515155401544365767838577168746773833836036153574464218307794062738157231387998569541137357210003739137468014387216133483981074049313485647235610847892513199679515070494441519235648811246856309040507848686607742214144678324872372028301001695976116472561055434008398781121422457475077279060999137017859733738210036301715681467879642121915723533333543327021967395675409279237635970956977786918974564829141804661938312819952876718296559888252025556831546574013018450211616988100474790691085060438668586064116584840906443299384403686228831615500806710632503455254870862315820108349163369533280795387724934677574524184685528289942789777077053218898297097937608708565528491716134982309284823126453519702078707777597316538216565236236606922849383993605539344439231959678703446166648288418536978339848120241704783818541682661645103636775436100698822380787427364262507798358082877767426330010503347494249245296814628058711949289615181973399442299504824033879452800277950269736754576001750876060898542397341922527678704298488055048759380483807976925586670503568132737881345783887181938617200558224754338997522734215224321457415924256439600865078124373995766539113519812934569980524904567033848950638174733486040335571691626757954972857703217724578957335538992606031596623624810513683164864429975738319430850874048888022179644931503187986685767262659154660921314844526258166513608360272935217193441408386666453735190627500520734058974189882607226671613237183710654614859806126759798752825273971968601039520096045576918413079900925753908463922242637770740469126540519892097043559253924687489916173203481791155781539396416270205499364437581682347593522120409898350953187515522031130055840344326119614856660897703843725156190690998748397946084308529276842586150580906398469432904023798764264136338197308618436216879370307762512127073367350862918247278228987632505436522803317473984381294115238565311198397133855208914197953454785706198961404016504665254349386726517357249279046825783397455174883929304557916820738140505138834958226118705430984130329867867383844376325414491518317451836599446874132239237617468059100135705552368450339004401945928273219144235438783582513320479517211855881562540933044207531461451978682798048916137122088677824992105082234156438775488670185530402267133608388819179580873382370229315071275319153490890255635048613513505380708635643934534270430642311732141744399343791234651676437886249632035585306085537961627514638632321154652076529393568385141326074996374904012658489640848758111122942122243676526348201555593559320086461157451564418242667982318407573756874270105194777775359601070415827582262923747687728796496491893385614019809579284198580951584205239244021080305181047903769421720775812667926337045774023271917250126433793926361698363219085515101324173078495975695803527244054621023901748512027100724334469293507879603463965624230714398379820267310921576051713885531759912603818172916362404504124387701191579325011504544227613776164059041132971134922260825401438981302095582899193125043475323884053391727375441770120878941240589637297459907429050613640387367347057460570890722381734731855765231719547049042764595644830354794407922087349251329567024003929897578062385503565307596443704005382833139684441268079364734256650070033725193017058118328323130248572601526932623214608059613043796311379167220966243584296512884570384886883217294687007548959259381919044900429127671143738295182518202570671477859802378530085850140208355852709884167760204795189267916453188289448400471433577366815874807164315462569037237848958761715403243697257210140575117731192096157936154777938038933517354894704514978700119154469477438158283158665694910222190926693523646467606138357050987516100478206490099616043741642535469179538243519249664231007881787885417283142801116404692083317467507561516057402661538849773501047000204760608949894576684092044795252044289124766991199062722943330676645272963630706812101646678712142666198009513631101151497637707244685548680048245645331621777548599373516323283739530545649571315273463493033767163058500355794542053296972757186953252718691579216991484861300717148090351109773158318323765364644571923646924629400319715874002118364958501625075220904945730921041521758283378439683278586722233306343144433197402259134935037425649398524547279226270413414231041742494620195959363377051902417940019920083217132046693937257946513652469956140245259394603330926805830191141119397395595367683267041445748580562769422142065150480219543078202581313572299255794600510366551960853015746035521907720417333874011309486712626840643590168728973270269634053644250501649128075330294766652596435189723836905117664226095468473163442228088826560419630823064583553501090567291052790728299892681052008292826004956054953191102101181187889700120069652982992504282094797592142686315053390770624591365617087473299374616265425528569885994962524959136641372625305310148625614809807127530261417998269613719528680612938087136573843144845282286563372686287802391215469746062656584470486021575882700122206605855627126693584500070620664731732611388764354728213062264223322479835381050975618090352540611461335069684658188597111024950178470086170193883067891654031930069556612792639368983268482306587793194263431968151225007500044865008603190961394901357948910058859550786510651723831413535111610889473988291567137443299655466833034589803295352644915790219322928198652106761436760792944453824049761099352199818103169307457154988905534727055972671310719203702325780271165905684229640133160939686327996668124349305080866065006281855707681633452386763252575634660280223527171782501009565717105994998978217124192737309587683883822000216724411611617463857257172774384416641217155025852410781078581055737463428597664870688295680233011433222539454497975727186709941305843141224715051805085182083667141094946586044330829781587346618275009420915873773485731257489560031688954963716263440294330988281106579572011387413189553791502114362446634104464555283043726376081166899929270291991244171694175226193356203482472876818236820733830391632371356543749726579868525527618354978077770315678481303712412411914858518356370895268049864751297532306073414250367025561511498042760245069153749643279587776466920052568506943119919792870060877397600103594695493195924750643793234888469157002679681052363916757895553086454145322634074626574446796417115574921464537028030102373295403125125848690097885666959372857337994891227631081420656347981543766781814222716491492110997936636053346944933150519293197280655594761559954721332404225874975441588142251291063551353230288956468468314662772456242966588717896369244940949486269055519418381022544340477345918528949901796878591476907073217761689905177341770733718368287382720375150117270320614646507209418014440438100616393798193313124037845734267260401019998654489181537323198053706939578884066288626989606614661821736698864169964542819717770127094825700294905888854421867013073487172855318159730037040354810244764083372413370553134600388153524872276325775309817692224097523943652133584324533450020249491177261265889637230331671131316901428655753410940375787099548641643902613773772535073534702032566554528377109336816435283923621527047621723366152400865793959510833910573178435031959818799549204081442690365223989569924635350656995490138446058536498021666264577057638631083302670223385163949189092693412929621148140248749809506214926414273338423336119231866376191590517311305433850559689183069165078666524984718433041493074136219385772371009673021853291628615579388670250164190279726279541714085240572264995678948815297448693356255250726004263291899633980704712335805649900528476538341228800274561663666562474596919747221595114017031749037889478781646767506649283751407321007856922352382793114152680508089443790253370527724867458924584372101388839066061396344533110330851385475745763316247444053118820182453597569007597035504658907703048416886366935049601864602977188824556108084382779745714295062219495102195779717982975195041889209464466072696256559326289320224967161829075034915698783870602569151240698991689531284744969474087767106441198969198526246417506829272681375965464433448157325927739685004935612156937725788092431495380173531326588059476765807007320839282663347226262198896527996860451102879391055054295418734830686369145548134329752668172452004100968664007801164285122799829840572209542977955202622684495533434556214552713740553844228245725579450709029153505850196887665007065736616630372864690027345227184731439975351287236752125035992781487978250111691654197561396331395972122756937235517342972108305799623182499251851923432955661998458230859044808325035933801753906483270969536891745869594818229304693175421754821263384160493243269495750841690114206764881376400739799318981314392625606438388153873737930659257275523091686197116408356811333172989721736299554427554892352886659512676041222673101887806957852564575797891866012493114560849212203295064594253968033050571406216226579097461395294029984047192353281154559463529312293148843597763805088290958151295421079776931023927627884813031982083163720925404102351564632688796212166381984461003304287812654609631958889074177467590339341979774352266481581609447475308120554936686505842798119878640610388977972350882128617729310491813522951591024599884284491587767640580031360459285276296255579983321087857624995866174720831334908375048631395630258776531366235914762348858475702614569136263713534726295703362566254001315706032844941959999123135732332261930856958968221679677477343330365369786854663049387347849470502067671264955319106966404940185182398593297993192074181011199926391295812881306716102566007773387231766406686748686855560388365195196867493796775031674463240642573233575905012759811407615476900947896476292797310377609877000955752075908993563716542578031106009219898658539657711869677755752688581843875054246593883748859090963298366503910306124372324819605927913553772383634254768891559661820947078287112436183291840033766933808995060996558477805381425884856519773298488860766873898057386755227920411866482526470962320734615723214784405190160394515555230040096575017238284959159907956955176357094888232102409883274218919428175093713416144889161533014037222924030061358666343488400142322605658901827140219977047278187796781163892212238078755254318491568429167603224577286704310040357674650519817909077736478091267845800285009803319875207912890090901415121063319766990629376044670960201661328655795957171750739002742644107982462023538029704123302403656546029352726255529677237174088731657087721381607533835540797727893009854516945151437936724450703202637959064766244396211625580580308470329539846638720034385403056156517107606662326401996607596041056655867730519071214368918002325099149805540178320666902584287168271924288867124288089042017961416179595442862720024499649185068190776592387562266421936773505094217474537977847701365959491784531701347101475039377233619870171295631157714798686266092228301777535413093991857276332667448983709994527576819532402951890013632408786275649086802254353856057611536883803457867639373792884248260049015889478648462827431711976943787912434598809705634579043023583709191744643888150552132476565788006996478839105630848963996310839142762174186946419044343744977334297065504361523605012437048232812741785118027741097917118793628685807113675826418759014908332778863131879482382063171202928305593729313640487208797692649737357970707234694741903633523472559187304377263526320711650993985399100210780029375203966202127182909485199962238803521290321910334697761179063033293889230840840411703372567191131330977000777912754795743629585087384585639525771971748854340298679359836192036119370207408085191649693651399544075650040040275465520387050628640795032912420662682331248417591281155827384677621006025643473788741514909650109977788967683391350597492941195259817925588877865472350492110207741331428862914251731828247705470398539144902897189764188561373109564799374273392565935317528973726422685976304060912378343449534274130254539874333609623014688343845481890342921941408081059329693235070725590341737087179137073818750805095969546247301342438160522602381284465110858559664543780546810318483839334155054074555881342614489827483197528317185154438505118061772538476688745430232733543140387621794849173452891904388500286405060554114781982998336249642232891760812447476594471906868803737145849195700283215953930232132372555376595294677977285349692507022260362242469511058537549154802757831738148375244582480679878118374127437465208634975223640675488437656972931697255483449069246400303818696455045113539145755820284189298511731567461240401510778059180255938404026068658083393306401162090247850336847766889751943018002197973543510570928052289590784742282527310060258281858385855127399936339245318690179402277307083680033516133503558330259969801010493484103053470990757336680246348812638123259939740561954380220221923949168384365364358117647812519149790667003051322550059857889689860377888977219575284728410199609723783121655486765237254475367559671999165787496768715393127402776699721604095525263137347326970729915466949178135967360628149342334215140119362798070426891437130861037686266314965935775776735537211072405091625571943471635724719371615830197508506410257301448011017655177464507450628958017799291448684825830998733023794896997947269341509995943393996805094926187647721391341273262413259634770082887015491938897525881309081297628237107470316193069537259411303898719052765294848828104778930556009331431962092379458306033867685209735261855154280522933316105445447755245428677416259301297648529887614306578018607986382863016196179245801303182500557316917979445997978313878597640696683516224991863463663810675601653314165370498015834822974512716834497931149730034070135662342696107298796923606882530782550352120149139059263337751084566687626879292957407017719880531458264676381798852834551166819640166210608786474265211442602183642334096101975754425969666068035828829287207902426041102238735092753101132952935504427929288362614729106385566391557019797766678438749681769387634870899835030035442353346952118101865720351799370138980802490008923280140476849980087120493780729308441956217882596371853820112662668054407354217906231812030694682572404732765219338360736246112487357645628862127717500474134266721625380895643834739527460413194846450044462606018300465533094874663236190897853271872164802261951131908735593120481706021529575996917509172391063156839006340216073008883722061012881405909865585341081686529864157893477077379296264772310193348948085201083882051409898656624958876234845011997520369186396802152336333114231645767753833792230833849995078214654797934433992368417191372236945834932448255501999855031672498846265225002981933033965057858317977401458708199362946273300089701226046267397776993254205151222717498373388987411252006871951387286262245099461171172633136688324692141747682173749423660696099511762672688524110044628654777516258049026708056921159888481084279032040379745967064214176129545593027936605331474267374812156743099815724383133447129603623228007824126643216501418480958659371181631228913389696765295486709517900691437564276128110518559009803587902514623639277847966320960858866968127771054454657704261996121982748332284167809711591620223447193010291127243452631686871916525866635518593890821514022722671908632242812222702848682834893681242944645159150621026306768958238774214061777290869600364914424054627382532525423820079634751600465861406227945971485966511731898682815773832711812812005261158260534315472777676459773570414847852262688876171810824104728206010843858607751326695336295376480942617825556454289431139796234307242637426531884552180819923401826395993231080720308490707912989459142635311607885951212517348423242850157954055516309496607268266763091551281878842963002521893843786706886112027315052098888926935160738938477297191872787070805461898931145008745802304302214595017687205421604715107624750326120561776345027163445826586886538085786552400250928676395704956305002585487881613485614044408860538881263257744722560286024862984280419543136701174445080688384290449819104796088561025319209837282621702885107022127043840968435147083261944092009542546884667147429833751048023156512884494991771794115706750121022110371521382699803842846092797488964536071629315198239265405180532379849426837071080146132087099368931304266940920772113524466446262783352511534919602018528633015615717609397570101590309404319676066484994112263082001304125202562426803972303762218448193983507507306864075917699167618809802276360012434509271600071047426291736098960595496324759403925073762229037112138724083335468467393516250364294400333082759035659091920711055158734489611369838324559587313977046011122477473655256465478016269568308335406533289772846145127422763492794176288402084337700246057840266845230272649663884602112166013859262973644366177009200152966623325457643289502044695973755165561246853610430531487635973672903419381824099664471659762781424621521070205638355247389547238435860162684032618451032934880424541169475633968231020725127686566372986944621956383514266872906682500807553817042032145769832919578528316095822604604811706740533373752360967979087636481714916749201472454957199192500691806915850844453505812467820543516736559334188797690402578336422457102026985912146371090383874133843804639966150199543991577367742812919735424929999828588667287572389905294313247382091958530784988995711911603918673208781112496193742091479681360785951032940900230624015257221599398042663630206434118182819922783468531364056797960886046905361009056392683705998170377287142697139953614992271068111508575137608495701285664478752677146811728149591467180231014471953479776239297644991621648716714999510931915186433134231644962499132353894528018113566443958684197385930265736472141643320470761868290523862257962208774447243196759776973435716263259438987739408750036623883166707576703741982355210888238217041756183422392027007395750226105244972012074040644475307868123010538358006366728964416414990582635113638996218727957098775786021892450379656027620217030213103926740367830225400715566263194205951354689835464892390918607859994844674657808122873354337072861216763384971694090243375899191331705180946078820831735915743968809679697347686810640632903600836123853947377373873410502212666353563761884295698174184745393401003223298554702771962301307237999974274123766001088735555558796751897485168372913075307514191683319809502141094912257386045128082983446131987428052909076103735740631726342235663504071112961253274653149049440969311709621367802803677842209033865782402128301563577738673202536467428268599199489025668139567744224897401183990355629482454109169428761313422824433730357360771917790899903715158807845700327919080407479426965239834659021488195793002937168249924301471002861895790333670607640384203832532118914684519759794514415608568857201504001339634564677674580134152292264491526725107830197114957072502539069106202921193017623097001201904033596796442445072250835587109627205112750449681506346720546196624698428141669069396595379380528239395372182744623041064862997162404383431272593921765639069963251155622920201492324936771594541291322042546198682613573616945598951873293432620678613446149946594898293279283485010179693632126080145323531533069923012545810080280399953592721169914096404279440195802317417982553979182302381814030604819753507875401108561317586443167443811712130687265533104963625151611139990474103208002234681747011789537001656313212034242045307080869306105225761105344551950409164134802770850997472110045759772251333048779957029207157237844503585023645077670205357094796662044113334205212919094298886872504829102413154320670543124964033186938058839421041307853601413709224073804445577367768013086567142668977841057118177177760487719233676051511441205367415781769890555896073139359799854336374968975150835522473589110871318782128395006798013570192925994621740859646243730827319967916732067088735701746515996342831468976789442475326366062823251810883238450463057078780015052568423393712074253978621102834890504015291954432981776506544171243500326673279737549421810021301789610584966858205535753688739422586557909092677121369965303597195622794933920582121953465107578853625481383278798516085551293159716808612700533100973947334471434365844528049389170378124311412108941604140654197621262387263557169227285528877046206757405902271216687837895933709829843682655299392786984028960697683114399621999358987834921029505984667474834489579105982073798401691931716133616630643124006927782332223124460766872033385246660727175264384947334085557891686638265828793769629738423739220901105753911001792217868291601046843139719277318253814361100495621665237069428083015589481542287937609276480464677441583190264400695040125492436483644438258476351010151786716565565393838215237025658044580524656158419052475993228029202155017481339754020911455544810584452195209582999631294656541872862510551749959993314624769071043117154364637178145946527589010178201803426508029792213045355881130059998669863895474423992859251549771503807817042105546203205561712697848988241128236822249598741592052601079902673745907083906977474660251667032446598978712164868709709475813685299059618081451355784998390528201228337333494776390501866373306904077637079929051609518754600416462581871608495109096670040951297699562125408485481424629474328410544658549612179917880412201149480804266727708543996766995605751734386235999852261658782344318899908256402018834297870315139095170633449543363435286353397341170463405455776720176515294693851457384810576996226237050412551644237822718810102759708896113349779422082185476548617502387448871780042139381624200325791349015431132846824599332045413177038123556130690003471357225428954576749392652506106844856806775385768922969994511259731587328169483219001369149489232294097583100220260197905287533699511776628349695151679204929999133819487924435520852588417851018555442607302449282483463199400444886169660200116414378439076698371445232697362825414391313172159129509409874482900887509447094993862633817759949180403696799640872860466917396798459215416022766413070989606845989537415806069587169677636410624734814846317252024686209159340785763065967615449669227562997511631432557733765887646263361946803218374214657310003048635570934485614513898301323610545004372280123623362785059234419091759434143936457375233945281857336975268147533765733013622951979339438259752258467578001354565032070480232326700143777187891950212157730597519819580023946543277114819510533178786874089371308878062915431336500422894717263458969544249283463771477973256692858101742091231575103245163244540818654978625322554629964152431370236681414181018811830987278075295292627414826645197812934163941903863762864432799993509145011172318861582265740398052138215910286640352305679614858928255564765954056435757669525706343301001895448499693918562468825834184544335242060310812416957495016101466902192245666828054910904226448923605125410972421126413666267271272026145863451233652070002025644445243694598645041254906502812643531769843948021501114916205551292494455133318495254452904294425098819380532687357464850438492629071762042313579706318230393570718498835872640704910068392913794522408747921300779679022684883585129398583718432132587633979239586050935510227323490691586723688540179880614824719562966924317406711174445129652409610226927668615329201618790112980444438036840894693846593925264355355976990227252454549950559973429183746683195881589204377310522110681600287843853690276542506772262225479737208397437059479042379247956991676980072661377864991940486929133426969473237308653759752503204211629866345483688257450019828714503583526301640555952425805603929161640552970233359149262584076729981835595414415393584304673371752892276472252303863585077481792243684503438630016889072419111171022504203273304221288356435011593861990438854772319526879797766806222595069985042048887732261895438086682850881803950474756545748636559018890931982266644281799922163794052261615864486723617137561644736737732973243569389098462022633342186835338314398840011076229713289707103531232846285094653257282048896004593717769149493686614762967434987253648957737404471811517427517667062461966074420889748676638097410236734712389273628355822150508376486470230368433004272550312313008843581637936173599057184250415660136447816172799944849341862336685237929715533965730113797809595808971984700876440342258823525107492766852029046464891793328799234957216593559442682578504042664664203036858519366904799867436574306213226959600127372626319838628650177272497107320264595637774909450664018437808088033758100986848585060147392664860135606791933928846376495667696409755911505205327437911227025783678745754287370143567757292328943641833155725477051510284017011323337679794037828397696371150855958768106503745005894124150533127991679331001229348940674806366862849952806160425583757379390217674418307191759039756261067674641588196856031280424410772476547993626786347652424639709732286604081701971374815613595484130529123174013852619941365990658190381394532254167082973474826366402247415219006376627469386680768431610058383094519773500435510303178317148818060288569356646178453466295865575156756724362738303853415903268666968797971460646897895585198403272954507467002538906965808155539965258351292485301535648799631688634739852452471403785856312831910077512383175712575442166881991553740977806191035433271305735667545590908633973477261601727922880001300411077856567035576055427259317893718738396888118860068873282822307879982279650490296190301847420274798367867914903905446714905120579253575997431959905753536683460383851121348904934252036580709434427335737292409499770210007521749744241128063109735977972101900615470698007771975434722916712936099106593171463395881702588722725328403395951459719944715227532254750751111682347531647737508014524237033400272953150818247757545121194269716382490629129615540473351250727399762256117595459456842226475792238168142223093871909479529599578763468163417671068096877685573043510281237729063224522577011497541327040592978907627960157489416695019771108791433489064617812829574472365044834973196594411158633656624635582166141694181146830981981022298075648976017572754949273046710532570433654356830725614992474669393186264304649999206899357511663891012029273351948475788227644773152625520693088928093344063648347386520482810826132893072634960573294127565557148528692128174338158741753466728661840061578518508294848648520233628133365124745545548175066774573869699318505568662486348728191162743857548001087790571140234236531722046224098290239875786770247479235604069932457988032800366125105658970066542028662054134327661386493802263328731228074768562599784125333546985552107146012254720794609491891795372624238597620382220601600726589261535448927158893733376425635431305600303085955668049520480706078343137694788190186925475131259352430753177352624053036881733404531198051986185120243522301414215367600448892641993493296812127342769953844724740736581657123870194287219741236703377756060636229573838855986582415822375032918722581993968842082877127374065350677381698749233775602419563902118175803418311804886204433384460634122532298916802194638604837104630277503636125864293343008019336182437079589916627122528568726268772002613954502280360200066175072746750054318299767019906767750336144894104702990765271224018237252966337925202848278475224464059571978928905438230334394323017027756925288415908038013379473861135650669744918285912197084714869663501352451275823231872370241097631013542599303961584815619743248577077353035249959704756484921660516634426754616269628125136670398699542290040135265994408753091912762693440397098220566292893233097170020558616505993292110571435568042857581051842028140629285345091912949259081269730195302991064126131075418406812555799254084586782530479559476401192347920068657068709367391244094524329545694457979354674878200574217619623140580412660767911029718393906929730400512791075037975416418144906007272244048229111034062925103233254376681426841749260855447504246984067712109190215067017269071573475301136981476897091971808873717073436688708700915579308551265658579548043740698645344865352259973889582797312339954081828516358714195769964981413887164919197225081575284021226222126210739023297265843623301606816334532265916751118168591282472349848934910344451311193838226161864033292874026616117195427486605629336264799508987981629515507570802681127741276659728398996848364865532158276247697970699805335003176700636623555175602916960102444331474259223361140433258291686021961385621887896848395307618075276609934619442111315745022046368751988470981585614621002047644831227182984570456476665127236015225471643376747322630287896665552724572015082416151948902271331004974711705525627423149120649763676399944155623154336444573036743980478126123414667685028510406947881712009917456812579444030777687974449301835860986560516024025093502545680091532252920079750714889932064623635624473841902193556064971466340594830764002056388525800254945674474620595161405774539386287786626235729922236002263565923437164136094367542109585732158266949347898196814290916943695898296928909802233406241010787404716769781221775600501131510892084410361904194911568912518077936413663335534908555137020577703949704148918170741547526991664834595006943228033912399575267173003470234328044618863367931365680274387581842056087711755772801246380555544681162880094695308300059165273835222108905898380722626094581945186438434887198551092553755428044166058591956441553834505380603840167863430639771876809255819098122784893942742148953094976645220374271455770608947384643773879226673931625188310531361963357025620864255043709477612749530936772169061904203685551310609034049197428227813950108989790255847926168136712679494802134745371830146886907020082600948469476836811908833229667926296941745856902599215242228819507824381806707361705343678653546434522331743208657192434525799176425564220384277680489049885681200543403340502789714381395288841230274448855889816707454405467205373350402256955384177332660091323928361567587954056947725811790209238784549237346328867919331087029344038428484147828321475892552253848130013347635293145032595262964559547788015838357061426759604369841519918698873928860669407756798570685512118324869781599037399224581631442002335675956602037827564390780714748757300531785017664089222510238086779996240727321545482999502179922936188619583116054554487963866764017566017670831347458726429388615541858441176428386664293922093333164152316905538048402281844994173964089621109365953213960817913083233500922610738075454425125949220790651247623957535555791418888294701591272527661835587554764637936327491109292434891944511017148177566815186280046172164042252539505099755874293131995380361794259227484559222592170712275905094456745855768940988869994080104767216518656743928673576199516826290322259197938189255784520616866962176139615978387035150988693956915373414236298926747072429694662791322413803438760110722238360029923084615302224434821190787719352652260638982190635757508739481962999232599017170765993101644943584812763877823974318785923471984850004123146951582459271669456275626540875262295130154772959115224086185443735122538405244817309272243818635150720228338332300737321669422602727497767435826341799925809637273402996412281694252811406516795000535008752019343758923858264798504507183217572802307090812466984470759163748578940136066180349896242539034848074906844320168332105751546371983549686257647237214430472645602352591149065314291982996885371428695640311399177617234453582842194368916724761958940911473022762420858080260723521432223162823397877466747295180649836994312412070358678613437079934941040415745994911173018658669229330732051736013804756416100048685602162825223415619992240564390333679350244094986983267547359768731861159101881404969470897742012375101143527199102620901233375953710180765439133667351126316750239791988520453670534869463637495778730666636590371959681046084971806739628576403360468868620789805729446206189010027005648879736196603246127090215181669327121243089491577849248470866062836622626582886157805559533435286919228229402024779511006778376183408786525419456274215384236719703885417140380969046038939412909999827614204441579682439804763892774665316030976301569872385532933213543764976812951273386243634256926277761225413198679813329478365270423020076284049083290258825756976963572857015907599175248737712627675814298318865279057020888436584923066811222425720753393342595325682918597650537444361016673269474598661391849197767720848785174049637721030182751896444190928143026795623870240537639175900348381295366875946129665664821057446209065851245953399883612262082745892437015145257457763233871497915307582336489657658252011048468850972105469710983105727546534294347524109566569504224583395243227037646651531443131816196736954175306514685758214449765901022658846009200570577670135417088011188846891044513212972992347411237768574535261400591467797787362424497063929345774349911214960908865653249957470808830653049737706955082598563389248490605745165635727798238022038581502366840157648720117091307196154085799900552462693470052519823204227504676113061237535740625463086450314977999827772747231003718676657696707920558977664790018252518644597037430681434114213315636716437594992301543234774191440834433113117748302526195586796593123776848416496984757181599686192781207230343053822742186548332032683071494116867967077227583935925758464833271556680283891726254410615002103399110273592578441357648054733613557954906118532466284104431602914944542906817123771323841122763580093531474536138117578761436503730627265661458805956497039293029628546077116208116393539051383462811562113933581370298548002216143200558049596537093273877138294530573396064773262790735560571955960749686403342747684456567814619629956440185724979071886117968196107621554656422496823083434330655298647074846931379094824445558891522256395318025455515709653506990024729308868307417652504024148990324341132704873079428744693330059403406450900648165401422551752340914496675741708580604685228454932637329782909953372970904296859518418541565989269508636095599217076675606429371869776264506975419873989183222141217270306125487775948610116561344344368144780581893485988347252423716506787034151414826215031382724942426470639628299882575713237988070265756444104625878694368412391570053040250508449877306700199713704758242791849925772165706431311544957151648092916886834477529901967155093644925347680917726034333417162006159901945692354207212122079051613487477733607103477558847075788097504654272365155057052151752893685888591740214015839780952188538869073837081730482940032985694786188985278802108473032062896509136753959493939815683833610454187539978123122190570931598222142862795074004689281935098325308907266182764208019159159185225711860561120180826856990031842928101832254851713821124637094729431029062404458249049067353680415172463619423246738688154508108962973604113917456771542594633890071088189368996431921322893677823252959888932516622414962259586980930512712714699597840410913076291428137370745452952637244594744840589375861607810313213317081557678653852542633023776045188898303868346094812927487861402481940476822851127390596730488795457646505811231252614503917725130084760861275028685111595623321561233207285246417534320472254139788801314731657233371074358517939262055342789767345030338139492598888304085650980786507149813243492824882050050333139236030075543969365828587209918793489804938661715394338456159264767035654984502041958497323541889306892086679061047087192737794937873531789927573426150737053370510235474627886483041262444544229347633117072920939851823901762001782052618104975905114495368391218367181528061423283172991928711302915303247706614553557604103931847898884398395999246099221510252740380105405362139074939472260398557375912726877688964207296004036704031332241211813155389294046782441587987519414273691312697644602528319007075138812349365541618280146782949266794929650504576575793460325263254417363940178918106525490725553327964093068226988461703243404926612324059879751301690400997029900749547152152340277793999076553654510280337816698129933132529165432602471511711009831284357282596528517205661660199489921165647856037292427212038069079657174348719701723626331328808837640884227167363085410881804595276816231933733183453785724686947737374012842441273613655100693498069822318273722582390987558699895758388889608418409999441688397648973828507823008451082717694722248771881765546992398776041240399434812489579826609239702371318958016060451213511353748361959114549543271956058860268379498755149177378370605105309822677679986124965778348649384903774982296827757184785219046553640350879239428351153056353762023455952311545363674919701477438236012424341737651815801300738515160114502908757725000799041828157556528313492098338995776453926003972056801379209736360156194970393322707558605031756989684087863158142300811298928454395592466143817518166676879855867581424897544011412312752274280669505627414053599428924618706224270997369539538948940941691089593521474383764384441019771210570535769429292157112525349311663243299103501572673073486381113046319957840737979239564828494984821867716192729960444054432648864564792875567824884092474534269624765958132973147244706091784123761816326431588598119523677968256673337522609772605914574497416313443339181600812190490237032836073326005828435926992307692206754607266645341362547522108493566017406498095891009255719121638443005281457317571015673149273025098037465365296486120463164497719831667908843827416669772561006563529719635450610958820634833128489375373848821230338777074970661746337261062545608839964402373620947174450539488171701213644984128797567757475321478930144048870342551644168780237048971403605145914962906240713219643227524958219863455611876280811797982318967088233942536244609504503359634781615069167325295254161913967661940804387558931213809097060605532012631152293640648357272667537293409887845578795347321430754193448701929853783816247093669098496883459862080733667063101371202716477935502614439299538086468174317605125607224666931561155918936566450887619979299582345406881373942685784107391361257585715227560087023849845912938240178407350084168801919405069452764417273556826748757422287586561617419748887323148940339148719242395691832686061572286317691899482955697007036253733307507524690510395972408756411690907846619481143245153260832209437831656058960194242416572562110271565105933831655077090206794137390272523802301213436642543961177175771185761683169130712613936228983304806214756134599300289626299711331753435911400193188378671391677230145409620633023994257793975792329327829221724265323481219807130212495404770648818438383628672465037362556976400619707728441478518316558615600188238622172945333752033894772514572847339178389526577187190259875134916506035429769617127731703819356291209748748988683172339871187860890069615599238041615821194000757333786025785782323685473482855993031687699365167279301834958383085392239404242153601582653276251639856399985351625157854797902553737242376666542399281807905635856616956820059059757312473842809891766724632735655910661895523987118020361293749807040652405036241851467859800434952157770029326364900491559293492043440401982935187250405363268809252549258148209127094766519306699999906150768827211725659745435926885848650133155758714893063647856268916040358395254960859175487483736582260746262073996655248148156536587679267904227029379221925579896214702187694666354396001675060738023038056608319682951237129596902197220201182006712879172956733750824456349330780141077450319561664047461086090304532948843104510184470078358504243418273046472423407353005569545929964890599793796211600061921083305675076588671931492425218463119667822295067380436696852984593952822125627107796684923107807450754372930580640331653332557211470736747693212020598860415593909420973142653331625699196684917316423672821219378021025071807410663656683682139312531028962097702916964272394531780179691980163301955884196482040561499406110986292570141309942027922473772626871365683123016118716561235169522682954483477775430834484816081890118179221485064906573073068281678708574818633450593163166628414800714801940191132013416382853867319846658329901335432332928359605466072467933032199584510169178006894028741946957862433288827170130980584103289455207048981753155988438446487534105554168378607191976504555434226209040864581289629676679815817788357984730611154969553373999782001074592717787273036284349045615482830722781782816985678891262620632921305901604743340497767700404482289064132769860216183743270307414909196746886624772925861884038099449253391440885110989037195207854443792214313784495791390396534414700579150194849269432220837064934421466901104111137666785517035847535040352318818762646251824951257093197373346825734305905998600956773308042826332761120750041625050765074195503129025422283405476124218559873317118201873812221867472922813993704346192409553429795028713263459710698193045073113872386418828158250879752946917156911591121902909607223296706381224876753305334831622946481761673257533782493100940188496954309494214622301970357646136033513921313403971066837511910860757107994400813171094993253248235099565162016063279294996568061738374434927898622132175007661136486349026520401356760972154571498651790139510359517575069602331770496739033153577513213932581183460956660618666431952966949801153749123625946426809231129758879357959368679686024445316485723039236315395027772659261016150981168507954975704522671581407442838818326897090450717634296163108652430777426666897940933827659557122015959327166712918342577278787846833931702402178328133965077319755902341071104955281570527844069138074254459999304962240980460180808797303334836291238448926928871241657601537042683957525776558074742194349638908358392953590028750560547836995331653668300108605019478627303323258939510204803489530836645165320581231462975489169147612805973089027891351924396057982282573937450773557029240343584056197909103100726845325132255676210667927755845540460751017004843485860854789723025185633738265511535461459890551002151225252691403078997342668214366139691147456315774596651949094985469334811489889267436084558001325381365365341630326157060122653204006943489719641632656280204964742279554349165248633384245492494437348579300803047762159910463621641290752182694197950486401911181244654379923522746335713542942595669018186363165281456565735905935445185848421069405313787706057128614314936207893453354753415348122566281322745017341475266292159362831631940001783103379506805542032997580347833006755586176674001073970876090418701919015191225885765108136554971636974281628461399835382548546910776728361286384392322011098682319660254866413856240318541051139839352646732793110055524029618313835373348817773291803524005002950578038119359917230534842448719120376905147512453830310087843760813099641974532697179164864690278566738340517531220746297932661053037857752185938423737747722673098473590106519718205603364798579249510217154462140231181242967497397371338858010402349697932566581699675700780130743593814445336368345339788897885099123119498480267919235853628852458616146204801558657575287680953161255034717688286537400503812016297096430960074908540622103589518522460121432734216006930900842842461938306444668245204971775662442332915851051925259572682287583331262189560071386165007120044904477040251523150247968106939667728212920605383617192125980121947854617188802524902165328230050115916625265798223320274026963156349581882836422859451183205226352573483313308609563144255756534404171994400432308286402286445083019648826840617711110195113839580721680137225790178455911430732683741335116564728337366076088353192848001043541402430234572685946916993900576818341208115362558309590549593183328899535050607487537044928927954000825250203575366705019927306998954373746563450636148218043347339286199893857334078735165722111098251920371660294765694320024581246556847757279242999222505796111707873967054376841707029849210753828229558582495937292802807156898418575305685058317488970346191198710620462127086146687476918989739863494552799564853028539401001117794011680369028605762229006403454248811325074771640851978054730088003236531925274281582393923298229170285756819667897556460888024803969147104458748159496450363659059562116600395462332850294557283197609182650730620697865613631500417756191775010986704286900776616805048255040092347423588960595998558975634347036324796286682117124679812297793506699108808141529777060038776419512100228427371379173825524602287056668825151204022413963112031488752231793497929208197583580919736845953594486176023324558655363186010398409360079769644661201828005358730098856081001482689041771491321320634270599195320452739456760553741439124903702664038219852499298409773580867507802743934397898566715952639489516197256246254377536390006901112148572592938812487199975994203919535390317347266670984930288948586936075115225055923439335206772726524112066233996794796275381374590610555394759122363671206557518595644021322216820976720003547929013289862131113990648943046377491893065178341829242902389078404819990810384924459150411102816254999252703634510837035681180475063815660907193886053949192188372290630584539350187993665737935477497827332400500475440743135314428568817635757851867845558390558351007816726011010188733544399717644724532716873213916261480558864851062068508250974314734222084013358563027520266652248492444947077867905282158505147614329830985869630882390751922568048149359013121788160608173424432423356254445669170111985124484968661040824504071355734536385586326425258652665980691036033013141454430400828766510784469082119260138465558631106011597898637212556430889466611129183680119182017052933391437359295704652569152418160816974283512049655594205434891663585390394989419685742972674875104993258578928176001999171422252063772748502306351191377206231244379075718859348378796268545778379447024961984498847937178363804354059467981428100038137734350210345732804511498771679536909799535903507634835706236311644870812855494091803157505497432061049315271583873595863320030698793901735628975216366417270100564754129215363238925940557361540638356073553612379749467187520846845895366167697855148119337697165052869170962950370431358746239924862200705434430400051743821304071936280345444632710849050625711294436265372989239426899769352429298252425875382777967845007674973672771701389402162251832939482691640537182681797783230067293080380900673350081691988396908378253719108274556034743326684239358972785634639416093575934693529841637372306595545888786892033939752989123954295251147897885634926663059273544526704676937808785049727692152627840111551255607976150141925680206264087623077631784875194056153364979969020826207105558888555078479112674827201962662878685798857818243768581431551478207361397370775659081623407800293247624453122147024869141103645342964722163465374054084943339512158130221081802959238590649682885091552071394164989270255479979851618298978782632042577498363063127872837281974199675675126645141651645412000389119105543236999749751903555629678415087138508641682280929167139873198940690050944667607096128969970841624346287716611442686991752697313876977551203693297875661424386364679744943374087138149536227422069900881803717974933156358706170685509096911402483027288655069711559922095766372363590401708099409721818480922738788448505172997140272093980531911121977375797802491209019365490444726677143644848428976149589820819372828003070657718458882551140449451545210394762505967088001865080594919400469946389282213516112296022497356529554722645915247715805713012524125904971060463874980227353048940831363646464652277982289083666922813334345454914055018009249387326151710990092193979008067492267623380030892868206252824678721650772085743064450642829562314552572728126437340604301848481659431892829112533147458284608033588419398255418917833255582104509708138076138720971901146537789718620342800917127437398078785362153474038683216234817702420807394962195549454019011804698671636425617571141690697254300518526564040213641476717840334010539518362279029890021586314254780476076273678649303089278299609361440028439777739036031932817669766125789638712792758017829143142408092675269830221428142381469975510646520435075839249941006712152420136389994737063032244293157646790382840900315810488400442852914934926091372420029691803999858445507356063541382575221463469894571318129888021935435758675698834036047062135939476075023341116519903312392045717926531747491475977599713081996737351459325586402787927363351257917397530936972575550417733284187767108860621328566282187816725735061340574388457883270127628451989341409899517418626950155530239626875320135478124694275604858666896190396562143082684783633312562607346835667647901033007039535176097669216319569861321900927721118771425098556265877503814767251007711196506403773549001988929594226419607145427660887587716774815135053503388292281071563890854238520232929219652488639227765453826919493784255490274992595495722724231875757586811181627174959204201370414346183375362422961386412351735538086980224980380341895849173177837527555458359454176305948714668486449900404807508946773870755140958931038810759450612332429623674027628607670185714105366104724044313320087131572668197020152168230862366912623651990317607650501247321785367545138485395150247230773162737249085260846918358900431519465175813128740215283081279698063026422156257564385951189976588522609243779382809799439226270410001855201872908834256677086767769655926103580557206416401084853722101314470785594678675562711575394739042707800126265941375072371716396834897932622912407219298377547985927621755959796107212656585133947710083552505048027589667379048046479317249529235566847218430618710315551545080497637049095288017431865531567349866153913388544762976758473993345609024233375543442703546138530093248803950129307869085049692631705773053417415074933086231850596643700048378390503602843273871650248946626441960939047676645454677943882955507564137202105726692142349678699363007458891423394488616618468972595430101844164723525882853273695479156532841178849679520787325473360076230207082877106200960097986818736826921015550681681865876454612463191520869887734554124809576065600555136929748372769801359732592845017976465150885575817650096534351960173981248961711536044358454761144472255955282977053508009496166351546962035438460916380972915467222014995125485812590052582743981808185417787997831240463270121036915390557390992886608068845820793600523566059756826506520040485966391390481519226912530737325290594191053068665792058396590861081757628721004082712469729029505900875899037009520600932671091865219969930628176392160647622160643052248112307720401999827374557163254548683742800785885625108447870357046045891748635220239836013273445546564576478300785679051583503532055469517407670180071009600579588453331342486192172236391340088490603092500260735336788534609935380594003566089049764857181391857355558976461310733287664041512778637804611968608087049624107593376202315443873992838556916050997159848229159673143226923660281372637597625209115201244498669621211045609522830828867503815932868795860021788291697753606482135064857687864388297528466837284172283717896355196753210519895261795048381102402692765973041364808746526353267344150836743337211951176106531609712838909950184322649252288651997173118897918195239535372080025832606415969925774540979136380196906566526896005959972629551231842546561055787157390495908297266929635547432941878971421527235623914920372764029633482503370636027683731991489305572187811285291028474561583448816426190182333352305120399959208404245116007752084942485839781301377856100823488880850994815938351056182859479366544858700104788186175391197967190727150131999322481157076890333215491511364937759846387836740348954955955661222920053624661493297430184990708787709357952792107232310040475454745087188383721362451596457755872983387113381393079355163982360934666834988694088374054321468257010663210399249329138973114088783635816240181023220150696251230044300382649611390093147572548298284088120858034655423600602367459620224381714229968726626247567746944295266805515460329570292742270518743747338896725217947597728739073498927481411060839418104208364796821012165211526802677102744217262968968007640098850822605096367383148129072315099022098731424298443607499010942482953759471392835709742641334292281976871177186028847511952760234479797079787717562248238262497691636148312279537678637993998111354978310903731780041122466210866151728440822860347718667449349260099972433356080438477274620180252255327485118806706917917321444982887549611937562816952662776948743081301861510669513035093465724538305946388257396809694996538619855481928171357646843606911231816825963080116854209342793824179294555891670329160497269029078378430467091681130456476105547864171743778106710836969456270170943296384638767680108624998010162369498244220056165004786104250755029406787952965417731933050591470903341595434051233341108907127068225279340052556832292957665253593088841579537665569720232967825826644103092749352703499560216399777333399385446806994243371711273585480408642063486196265058354165792872040405621111277542156829433822952641645155274229360830170745154022108630827054848689139092881052466591760556360943256367342968719535238964731436915488687618138199637377828115730904457276097245623658581252382301325829149680859866492774723940020553428890008148427993150829834861554137933459614263968968719227128944043394529586416191018116173142897803192475987846601259938650551393958383126426830865048277491421188776252480262327115027446701547019603348692073017715543137813418019180730781255473547713101549021553661621431900635648362470160677203025841311043735823934274113573153146489395698629028962197571385648904694812997185636707981325544050651112372181851239583587172567228571650447999607029655394765592261008089240372839680440161337910206735305751112445105256513983373749679378696329082130531963426470875238590507864368385356325612436333948010354445339900005696308902722558112293239333767334907801573573420370105668544427485955317331885453163546586149212558633559085465873313939570668605499075567112019853242557762105771257266669462132222035090603985485133007522243717225905378909652098328248302810801684858435511939476423804520307198254191340039404116986140170510841331302478496741003691943352295944289592294764290163569350778673553935174226552037706893838533559383490506875476383393140467399653872106925553266380054247414072317106788914949744448003919170270928167258616035035526283205724980893185163773838452194948369267364914013635494213893577846760185032608317695763394543843716883435771987478464453043579503447605632501414167356408239107708704915226748823302817349827628846680739295812303373737758360544183863315988583375472812127178724257417173492477652226257716517630279400412777770730487413703011395682863078455955919462699525056290282897025587646176266956349919400940046161339951056184441040121411688596344910888300735479729947959262128355392705465564298108592179403838136080326826327049861121725045091526268967079356037568910476557547006856795410186764639397716384792180072879689322155673160836175516707642033365927179109306496673137792800939477194343586370437165694605542723296437868473212474438785467097634558662635652364291077912230951903983261428618543303631817658004695647948939372172388412227799124682950289358363965905998989517164315358935179967357978678336661980035566008646811543137427549378120661266029329507869404592650558736818181957763896617530693884520547169743644897872187966089616504275959724649673494500046042352806055145477352238396616236703161090632024231755460165710923744110907406568071136847137294031517765472077258148130331212973190997304264551213030912589061658223619747901017306063803366528360717838232235648878615393834831594940046852096609824173102042231130160064057637764076251729460382912777588530579589058040202622290281094724502377642801533762227754547373237175248400818803395069935632843755129404715564915747293997464741857888899303234196101618424102496240403048691733443911361585581545116422985721409707427471292549200495749768827671145592827244648739114412828752987195602230476557518253066872211540940274183972571375200043210774690798180270034918278985609492585625650900338092305838647902325301661480584709559053030207845905288519355929277837881368967540557315282275227091282550026598661271576235715099211268406486322379755926944391344299505285833797075687962555675970691885839735397348848807043067035519555068391785323191848954675437818125176764882776829311025569542629243937670251836809984527548238022454223516160916758378137024288742261355652547333913424788349858598160247385113735533673872181870592311423281508945787886339274844879184810341100455886924850189035943017659603146886099996752180003134831787057048469752915414672708262695274318140481186345197340024719687572588534106524956975967536641533916804152766900921272224397577237471153390156054827186245035518350895508793645467193868977491084663588915655908578687438699664528117452718927920566979152593259664087581775399092505395954331789434365886982656568676975382553120358467369578333693668677883085266825450803448702265224903947334986553029676964895435972023419687503925930159462079689943978901737107358034148560562176506060723931068359149175672816932707575240210155224990630112180243413136298116161719750789173581921263655136085779670484600068976173243918714710565989810001231950912336665311648267890362151693699745743351173352419448041172734481966815313282701791005418925287119664456298189166241463544678631709587031412492912996986777417836077781837898873419445086192696859798170520036622808287235994442083043717324350729656966558429284402309451640506810913795957446319212345339842368920464218232805055765156463809322474907205131768582059611406957235404819964794580724448412670549399888380842905131486459265777755464294072894043302263742063870142935668377580614118417174282368176528017737848222826450697837474565547381222521532626507265370268044884099762597910092614136423167598262604151919716526375773277154278692274983727861372639172115172427913163175926605177621561092489354561708073626320148859556223701471202305985534457331947364176364559395247329831725364780216705130184107618102962511473638036708569503489039495710840541242991374855121347197406472357144844290995117531930117763145946635711739868558646509357926955579426532456951198051118965087611348110114822277863214598504576353511153322530078685617682074652110498611970257384642980511822222645735655104199580618345994214110109712684213845447057652206295828518834967103246103126244959617585818708437150820764832492683591693900756480780635934404643845345680501446986291263906612232887029080608364217466566677962700051625639761923907305982877804600650275938607803349903571682580030369940256080401915711619486878915056533358284720070567685954130338866171353512131886253215948897055096741260036388955485145807413566299605217718627896469735244802444775190291891449128036846148727404524177744492603957252510733383681209560172709027416451389373274520199093665832547385647887286851477187596645200191887321832359190177298637847009878503740793358421726732923592279199695071109312312496448323847199236390810229001981352329916397820941577640012390470407469726468593666889838570345727436658705294172704560033317422678119629645937457601571217625241651069106044823830475056860002282851701441455752332781694506576366938670535422441997015044743674308016576020588145104602729644678714914118143275774424277432453384634384248721663443053724427631595310872086485473200122284847485190298454638436373330085395891559484965726345940498481574275428961508153274707797545332126954352045504079978764673167555949588693828617125575887421496782411487098524068962564346431755445245742703756886162738612293144320598581387957191348240181720139826001515649319586140618177037801561028649446607411272847204624320059640511666919738141981408050904422082519046784447968293289359906120594376491566813088618185167010177716971131168417087807847264377904189580765737216717589070090336829847785514742628961871936029790594191415595844809107367545776971864904730556324146458871291449737903009834650069203281701542621142789712581083136712959949871602047907168443292845900848132573387450953611399823523149585138425021964835930590901117007192549413152303943100734104853339280839973750347172936402810741742492515488947858084325871839585650382729114006197321849104667675429571185579868282471417681521165088808575117520223694218770144616398497655332120928958838137942081352050082604908217461943511707091752248803643517237494253078223663001745831379989227552180077837369168545788237358219301879132038060373148689188952873385077644447615480493844279925229072146079704988867369935861434248097991040623227887964455345117765052471137549178045421724932146597004631699834811503697337086533296519943279460784082871415790243756676828378087234503761998099176516507914967332374386505703149603562440509436347162365303719407413084137427494446366679417859776395005514813010083151650804763325359040633890948056687111474350582383286198528807072100808910994360846260390000779566300065128000378200279060317240196541206563001235001527332163659909051353443013881311225515037269084377162273859402766438845914882904098623284765578443430228808104498112488792287439309352869627604727046578283459941671722853432205250182884355259230575867526506202715874284588739381975221825339854656554626168326646201627785730212119610694468864542564877180533473274800910405635081310040487647160951445229953525090538856222846674901026372657335924442884167156602575299653221416528011394332815999502092440584990534099201817997084743465218194184980201944207325577837862852331080629947551758376098302291296070568710786287153815938869450250508502962294938238577231682324993761237047957921922485730277547491125991276462354196346858883736732870175414971546743577873770945237397977804997987254828606466763262961980293783494293694004998111443600444754851987215079143672163898538129753632001998932846139705875564127977031312325392032785670361357248530166569055223167629521876059698229747665079128043494163720830972104925962907012886458906416132118121195872130420192778413625121554899492211287641019977665660368207242028902298452462584161710145607123446310520602798406032602654946224725836642397979941140989554079580113773683341809625485311453777946865256226280320393018335698500014696075730592726782584382855408202827872351160592734281446304335298371590845878867622661788207961943937856048752743913267394013848038414616028456810977625092732541835798814676423868095721077970198402763480610446771878441686556993093955856164335496203701251033324288639712279404796032625319951846379472886847401031322068604683275236505663629166627944147792324895583760396843593483644491688111646437323182060144425344701442791999573085872322800180297974708017386122147397536495227000999422260605813412518692287064554328046075053342641916369870915634094938695540796420609835467946168828536209014426120178208645808502244749073290074885670022051067638448400210083900357806225107758229232186293290481733045710232061209240747567451580650876820642439425318259732802182922719393272533137561064859368230679336886645515636622172754314553958053451103475275770491929064447769763638900101274135892059052857544228992229964383322031369293272716336889488317038994476939312813743708054621792149068670879578574761751233890586933833092715997524290142092869015969858214766929638136533524040360487094604333636228879491596399114089311703610373133198612511087608109969979498423089543135316310517643612782727675983585600680303129236817516004821731144579070208490500968311684838651582318076745230794424639754738797922624690467393519982026108862955655358494294834357055967939233206341571375059196491780621704121167901817293390140387278148586757182275137226568340593547810819149547851756691271680839581460179072518423126783682648958553940512230493839450876017510237914674810979286573995660739344701589548902822655235913698662751570872513024590545062060458323087814213340772473746536134138757107280644181190380537251308393590695475478903233460444918218327300911433246539027605685719829101729574733896734874081631182910280706504255826725261177437132978884861813210594413794658241683528669691180753670841609493882735398927507211808438609506915334826273249988310524124602090284377326979850608219080462993539553904719411039130257321516904468082208500194026179706464912436534666603575250626807314089266261971712043400622486514105536439316559537785809136533377558955294251885935460392009451746089083561307453982113114516513888080526722236280158217914578878225820229635193909612446705948767290246880519523966035504158216430255105663899891674005222529605414098593703450085789066017328891243845296194427506981527755818287795216974436822519426313775582207267554384302404013332678128464663952903246890965627125711757099986356577151248241012456307994798135954628528074858573701167407879834983712499234932139010859259886439672814682990638528920877240346978013582589086357646260958567819937862940952585274727636485523548962395103766991203575350714750559311239557919495115434568319005288643027538094772516199094314847012866417149513014215211613807720294818519016666154360649542897088555665837384841646418195792755687293448021339428698595565940991548373945454930675962227998283559885015666747813205894896512271085161716972761600113825340822881712700645038368222398659153996710803578393062549499890760933047303216067303352440418577557968159261115406906389075471698532579485031398846779892653604897267182536493630880320405053499065337170707602478101854058898666460082806852408030341194498474870327733996920366302712018409809132744261518705921904570576435309252369154147582546499843101955623749298789439701840320687964013479041237869139096020699991870114435146540060524833955330909083083556866662879604750926049142097776990945307113089170985492890918064389605817981777919131059028299431470184834062125145233317757992251545541472276741971724967515261889280534099993478270748683843681972646399948567380618762788410728575984875039388043268805056113998648917723802101588212347709623824943832848118591462603301458482775661751332640264377692513939327669394324604010583363338417318835263715658932943704816384636854381494926769404673683570117175331264969788292050932529814192930735273210946305908334665573971015287753825802518679393281887500020036778898769545931329730325751994821616268303438964375012953116892535132391647563686600582451935311247753483109073858353568717696484436926367831759594697981835725225911466093954075160250193771832333392003186081518573196969785649470584571340802787161853105861180748965050617856442792274025523485886876981483261900879788345418250863437856341772964861440318454569275981233352586722288682847538209263578035445307407447786350191048163811555461785602800584350631257332137611380543874958232482120438354912674945261136511696271717930379958559835113517257843328001285001897195731207740989304990571342468326890932122978978859750322811120951654615126826071275950050356531963024042426042671577174016655688185612765819116740788224136888134891397492107701828473600647155747018899418985443570294576937513543017742630494802963754861305767427911152248612572527735753797083883034331648578847841111732713138096776909716000053367056513508770025155217854140667255569663353254849558431774239266330603542172012391909926570909563951312435784153544891255772095718183732469862489400045594178868644846804317209616150977264554778345828230847378229177323475382538420269052883480462832446935790621558476650807191112531130139989325599260483436333520545540199893948632506343304074413584284491903703056023233261154927859925587923088869183569591446445216654702468414090714248193541431018626411978702731416697103702882294401914296900029893592120249131036428956139240366047088638102402319593115879337271021572617757218930379468752870713181181636837749730280762061677761168370185371825496269649789338808408828699686490892780760785373351896120520288869434968388353684725748812931234164634131882496416368994735006750491544253892724213784713553247678346744924903963953728511472895899498758004521824455234862468101349532384655208268723030807020430856370386947041608457487907682180100887830192113761978681302000059180425875839072892532944723910469775104178379524645307682903701610815384776715044730527775975853570871711081390427558814532011677206259471186229388563852869293745825378543137150860766661193224467336109042954542187513189454248673731510686891120776714100654156955501893392398173226492705669472505888996394786445197809001277527521797520937427593657056439038713154424909483412675916922152812192389599490650957538754635211127691744326652526062758736345023906109229307128034587662436019126518286663591469456283766487570479194566832071170693684837857016800904789435177446476577904234386343440769521052623969431393699603977059180486967853771649307126743070756843807991973106278598340831277611474619497123719263363151624879617468273029601206269103286309681509359635924474975346779498993752304564597012563073359494259004223375838223289520220135463188458953162543077811232630598035805711386982832501166339865520964642555843794099679635878804895050839513787577895665300895373862083169404427608579409857659015605127985097168527031518947691272050926198600282046155516403414321040281508352868904185971133445312024835059827090297202475429664205971033994562402613129953970119361552911292789666170746857526144946581953678623499032773077913188232388510961650618437576622062098117817374894476274133864168255895963673479991966057236504086427585672121936481766474625350075288163940778034593310840291926052557506701620294821216424047037418094282354333628575274143116734251517029621494263197929318348877603011511649574599108229561727771211163242667707868425440993814651786897121855827386287061258990718938238913951368203300150089876038074340456026885438043541937196332470796521624925807265523862422846537101390150220715657601080084850912381858165190736572220552556191324364918791013186510530928824131780784765354528704050717146508346768740606522762504481356132866214082060915476543008342460986851053771671070609341659613601494133722498509746897638878725947846520548214646189268957534004622347857978692369641757392833182273632950110700657886187836775819506265534268889705431050452358772330031284542277885332072319436796120149127606046237961708443873318233143308263723715185684947084698570580019368321984971875504753841909382129745862159277364353666862425608968867587317192057775809065784639400368868674292873452391763583284725866013493965034006273723786029868183672358902364383697484585401129659311813135241828347058357062985814569515198790514171698274326093054597494328855657251091855643877447405366461723229249790461776585047185041367873120200837806962465167924577882122244217271580374279275912466208737906454924851109121950145847100308621211449816876324279596914199196213098555824317396384664594801159070100880926886021566087964211332675624342673438557656607995599680084344143047234207263865762541828296659152484992032504163556922854598535776285880045433941111417154619269376165633346874404314316464441814817699636045950263559301736495032531113813530684472655285784547458132956724495307677133055697494930737178877878792254213446817744245333423170742151085666449343576508670568394013207404703651066304847410568191170188123707360435989103831261914590567059540971052846096409438179037055698186528246580349693010687966862621147450983799907848375155888859016999417712769103434040724908725097993609582743882560021821742927686703200913448726347645600134261254280669046994922236561733573695555343373082894356133617112845361936389549806130760525480435368620331886797596840365434046982889602881474424314085512306946203881114621524802807863717301975324881076612129599435066278296059765623980929072533029088456047064707742513026377781804819514135985189818337831726270569090403651932067396192427218124035031569175379628697362315008101347283011636770181220044910610096193801914668270870214214656828148441376325868847258046183809593988400828963969517496087739940528655175681458541427385781359254171835745054658648591488481454545684044159475443042421303365121098855198711540866537409834016734680342516169308497236894454258207352139297947208249745995968783039763253530376513773784647197246512164055217183904139010766611715951630193931500694587919011830444417179859724501916631017706832673362885831964910768877959326977314196475820215757276632470374377376001915662335506380106520819697366929070330182513121388749322883510916588471621573920288245167141183574429509578473666543453248009885875931544436538721043359390987752621820756743349104618303977383867451821386431546685741612576577431431070972490921583179082517676678364771014775220851438885545206429243543801108971321546407630612208817896205392027940597047949429718374954835158376490374351417842501950529414917156978399049970030067946601212442532792261323990852568348961502691667707804580990589821744266185767675567641723703877658874665469881291289657484378651161025540266678188480547088995126041964639094663030055792660550496226824626918729149912540819999095392308648143529509763690726146041055574944208718641833740023912281153976063814767646057437687095942332565443485342056130619481167941742587128603288154784532564265348677982498979010792923065635019104900751901041813548717373636445520020415612129063856009889471036211997081864472490527434942016526357965045387976057472702553311083700201713739122179082095762780460321581330180301657007628860812151042877603474634636995739637574367600519081142852404143447745339934481029843220861049689896244229938300575748773925693189424318330436051401836796547390911051038911233636093314480893489979025490002455064039239000866474475893235365830275434380700819825330695168784820371299006521378243071220686634758304018718675448395099853340363990841491127834724132047672665077751821495015146745844416977912562125699777626574260608135183265489622379768954092335489128532938111252444677153518642514637826101525492063955583811320072448973539866775512726233915139016027153831749685893207740807399707737265060648235497311384268341993314748236909550410016419860003950366744536835588494678957823158713931961081796368661399078834326322904584248168603155516563935220861290867296440303346839249757596182459726638271031201565329400843587182632734328336316636779794256668305543045288216653800219964523193596333114589207125525030766619931457331915543073819288252807776102926318323348155941609167674456699876683153427807194755500663559241123475000457332967750518233610358937846889015680160496987040131528572591723274334288092028034946718515623883789255596382979509554246791873258199076182802405067657209319416425055105861540928607511250568807083013282686716129079287013235797216056230215987154288425847707777444286819547340876059907962119231183755462151168395505737783741106797852773962650078402094595192163450029678132997411817561709232121252563687683373945752892771563145005588831431702192661728175414500402486421411855271028537611948449059032119575050980021630861224975829557163326114339258563089294587584713225121941046022338013784253405509486900343287721203686438526804126580504179450620544243381692243332312888214682266190737160644974365093062207602575745030381279973450867471110281255621338756100427546670006795241518246026504145022948370152835701564433285602164973154873408837102256224184715584140882798715214335537968839721728505524847082148497651559783050863648163094535940515296330391642674552093011853523808702163007272100893277803421592886452060758475719932254622780965087823348327662423642660624115923559126045061344771818787378656616615302456074953370753563072653094683146561855583715199178826839144291034206821435622147042594060214219681431467360181898795020444595836143182047297092373244276277882179238554739358248006745990760800470020197417409626739998691432088728759917315787107874462753118519463758307163812116193101271346399733176238120937033446957181296296248555147731649280271262419939985212627163871675093712967267049283316368826682559896709630156165636736507558323449133611911056438622295280935682401594537112027864846997173460089936715264459151155379070388452896566819080884846894542227860553384329381009528503799619061869539068442876013367475656440842081454071653248579557790034562950302173958456034865755510833079533460907340746921313375835298648558495176226638912226502726898875891478321041113958937188713392515993668597805068964339766292396140232674684448867590892953064577620978969264098087300168335693264120042783478077558092629719707358948480528650116644663108369286896280855687127289040836557585765798565995339839357764649793342686185360623834360575304895166370734255622084347130030073100810525182160797091498010058435785406822513325170292714308005486765047557287422606168175187798749851028766362531835712394569431669067194574319063083093492630436164391251463738530373462621823530041508008335021883991107942312855357751413197976817300487138869895266591575626539305365570314794500600176338383944390630566728903008011522888989767239123623465394329521266614807814096308727511645484782996919814938515998868770658356377680382634220151218638000359282443665502176312214369966194436026102082287580721562635320740119220892762101759839085248120253626363206231951044209228601193107101477547929812940391775627754648946301555130054573172140077202030268929473022233984634105922441537072737532088483594511610775552731937795915414273915452959196714889843328962105218589035136929201070700564144206969571865904543063180646669861760438885988654552626337116312626223293249549803391093703445675411841726685956018083642500664984025395214659221699954722593452624194258780797680543529495965343549097334382528147368218451563341680080032600123500375010627825770179594671632552515442499135510727044160354088963738627943946264444295791678068480554600489266882207520282748917908796026091804060845590978363348799314271575191628206231301069844947549466035068196317956750717044582337826035786815662653750551853952569654248008564115703312148587554175818101602901123761520471265756929157362670220410512904952328191725793051257681916256962936635187710421551902738025090067960656566958547036967003338182501901120460235414832413903105287668227754431885637261503615949215219260880915166770918821498951502455815626297823540279488218975995038180965939923891560857536099252850205896993400628789955226407502542905714169445369150927955864699286358923058830451438119018301333988047329617621923349417398619710739901346916717671261075836143010162664397318828197840235466917794585688814090198720277246587473087847722297884053461430584188787903358227848427709320128251721380284597814453778377566757566071899247883150185040473504920092395849422449701520486252120511110166089483487256784401157509840008571767283366723546192262303008350161440013838988126547162055880788285008381888545369402441141566735982650632015445220130104881768265235015172541549787348515573501625702621632012104130347622578539355460218697664016591381381175909894984873290197828366223123204980014057995339673604529962690726031508703820080057420952369956680040111963026486501796281520056295932553401727545742929782832498201196331647331730887586445982293238687737259038054730800556475619805926616738691335847987753514245625819467570769268652380225418174339963279819136061605567164910435205339435984694006705023761605727780977139064992308919475784247639416628210513275181014556338765066460082990926406003611744771451410127556888177240238604951919085439363620612243221012954664139864120235906111243688569860321266213731655103549546902445162178079091725917293897921113778484922591501478073857998511753169476739192853376397988898221353108511190288278065143744745231061016332124008511490659412061362731549525381464244287111217544070327519042334601076607043254895367379989974316554790510392889593707559504253746566221850241762963817405814619690789186082993575361505095562827637314661661693963360801534211156864762873183360209516741809004707025527637498934044308148913674148586590701903176341122941408553937386711247794198146506804133822147985926963002154623073320555854509815767608195950681123947230528518070571655913856539801270356313960871162659243266462182588341287966498249368933204515730628861510042560869797437113643004027005108372276648843960112429858667902670790096322227484148693750525682089115088859379586925942526237445850538308836983883339439112975788566710195084551699236271364025676208694925464028309226093320687781899846501280313208363772655168837435926609052242464610383402417033696069389237236169109390397547103432405633730063492955440904470230943834915344183931686692862205482060516407510251952947381278899089560344671306356905012394518629080397217824777034674154514681590794919664136052870781209112859620375892496004663617185019551822468681219865211358267370074998415106540099865488283694841455361709266224367463380320661746504937561318421126362195804400796734347636821714773593949768901974776954515287695641712832666820516808587136770893759650571370610962223503812710550345539364021773752365549137599725645418165034892952420502321315642942706027898296726919420931901929309248849803456888931661387670740095967150012846397771599250491982620957954513565892710304205532425795510736362556136801858352588961403942930283819798516327731683862549436825384164049582128240337037079404243668851953368587975752255255821178489673981883217172270350183037743801402183323761434405940292589150612108144986021074262273218681562456168748546738630358253050635336166231328887095619057002502257283049735535060767274388480827799829671352608420184518064220118525491643364817755503360834013238241246339230599729849024358849592312049436357394643518716850022980699227621015752054906595201901043716859293366754255895753228175617444997510866761136010509284234471182256940573523598343829178619136196716601666083815468620335872389767844863117388395531327069350896333712500966715022355559581404152544464348014525764334715428469826646807215747834670547978245759706986447097573162040000898338293417150487996536637541578284273829879599817402830179543513385696426145455364947468633266892335331153815555121167960610410072679998127004318214648364941780901083175078648767718817517412904436192125541979663254938812321839397105177414008114118440636243709731432559073143587759941276042969319857335898344487856435824902243953137518986022041786142207164889360593925287469592175394024489977323000876245235160144812354627296620930033939250740421944975033044282618941306018106453209388421505768668544319387210063147641389093387372985232873634054492915774611404496510688252813729313862424488652584308426750276538957518133801608077348499530318201323467560460930368575603445426031438826120138563776976070642903107644530852431916002390467887999987483832424708967590674449967245149447153704315210228120238056075657988734717006025250065022678558078097392037010513107140731162198647731119587564679635808909117341133581126348661498172670680384448977244387276454388552059002480712757060015856312845882314400765062376003777505401185511276045722993923708848141729494478636209696804099393477818412683081626159010665888832102987776324326483371684092416592061966832444950704495755651961378924986717314131264255721712418230803152882494872098723753304860169208954449062853198529283866050331398533534727751328825836908940529508973261039359549747154087799321643559903072722576887039102949605853836291162138440201773821476748713110343776838248297219411370122812553010931024039766696481972250576351314504369032542810729829366907763987091127978088599790808528190004118258286044480736201496282252613275031875742355265367469351115809890852499907110726780282710196010025691900792610706010194953944912424987344826427132097058799012332067696471951199952395482842429427907445928186203189583795588211736150466350483806186083950237215253864907009297615427720045946061810167573268977618296257713491983539043611939626672084709135786819436200493522193939439551926802613794815433994437354240630818546462027795297406985922931108739837023119017138513437246206235699020845607135309403233697484842598445783272110525654625928667270817708913342151541269596192359435913320685077657982257798119842899526789310053511987619052479806879063566874887066418523987922658028980330765109736920887747908386733810164286241898224258385604702732786781562528998042448118721068065714662716151260550438359915060227728225927064534854111497956218576112177211091011800238602365831352482987493127470332127539597330334097656114715335774053597804651975981873040328145108312753255782648084065813418146621574169115027176562931692107432841533944277839372407320582499640878499397130322513557631238825121607727335561985810356455627383032287229929497080500991780236434792398514544807894812027946618991615155838724049615947445596009297255520011232249106449743761077624408496344774999480436147977342572109819617723943796431646356806341671110483226277490750237693930970261338549866178240755801505030284758267345577543304154950899405795427151915188614226101277145657826983617342571782498897233475372504320999328768474098435663808900671840583466174317729125193132970301538622612307936609028945102244615680294430642453238416808512897633231717269085708132077343124090877234853758907517322935864455186545858843765285291433145247685566150200252872215347480520324368579617541423992458232204298168612205899380050801781843940644362698752765143837267975015324746400919225633462615888598557259524098028860637345205199468347745364760376730318380799634049755029630756144504884254858879033569125243942991334012029662533994812543259246154831273560072410369760073822412587577928074417482902235493248270088662102257088764835172650963975154929749386263418691107156872136838156978429679365300952712028549163295142468387886110368193206592084397839962736947237670201721060501969070117937852151024414769250309001510517682049933725800465977343196298756719005546910326107231347778105016627094347883114884560351817839799773382386711909970304849863012603056215263835295665842562487581885193512241680914671769308893890914883589323489878156392117308775525534242550764091519414521724954772258185008386694511033462878902543510647354182079456449687179356706907030125380769503479241771104971188384236914879854565593037339085232565463786920810203224041341170826738078600808415794831887268270117289978214147753503639646060726729998751098572145234332805940852658708300019731459333171031731962280049653501254423349938311871836618629508875859707570300224823915243542148577693530801795877110046050707401609404113812694915155621493774091010045908259724490528651153623133592431062185945447075084987010113280461278221443227089751099189903760181177877600093762796547064128622018230738784752035815944566731775112219274681159115676883842396316101345020445895213614329050108589250345636890213778403008980887183823386254045681136175996075513930258522021405021688208350708892796610413974086772337093839647801279645219584216022742425916506408424269962522184081057378917051364591954494095378690911448272376727793456832353253347214549212660185152232226940138147483946983813361330427859142167085856479146287008698610374111663571992399319862910665609860116305143536602480624976457289343053916119015251405058049752637852439482206627190452339464606937190294643286547534397625121777544597177960224776098045317266442055627253658406712414833744273554057250673098079923398180191578474407987478253092897820831299291017282495626123756295766128891641361187291239765157142510276763223189759008614869826396705322326297526037314157916466699557139808898230838058235333603904649376974293293057334738509976634713792078870358663935381477462621375233743112121604677917746392613667536212275707178019461670375185451579249239399490582652645972825555790050712418399408798910924125478944360218423032104096313363764535824559619874768779181292442336427870510430150044548844363567230885032643550185326258233338867117301944828988097031005928590237811498626548619823540334980185870598899094870576141632059369572828848663951197669809648664116721648193190683332123882344391400717422822722063524714287134127216345922790447464854152976089585659696241158737680544623933730129003297527230079400669919798632089936187977158111907927769965641383276821212458952999191543026631283372084998645386608605436435632926913874562203038447556593212005770772653691042140265931580376241460335487053574873123435547407583925388793017137669110432996835256013233476705769086651510260824137471657985053689362117920050528888769745264543153567141938650855789603765175054551503720005090801668778289391609948795687506943024986829941037645967741704752135312015877175758390318594712175891625532594966239740921091570238239663846593177316271106778547778822433890805281866171769850129285375483920066780847605392789997106833982320179240170060594129654485426521762241693618930152688532045428449593583866262832575334147253910293686355584661970785610373160915702969983791572102622792145694202449419526674910535428251393101087574866243917443248948824764423164778509020068749238188471243137397480924581906817962673790777037155205864606066274991636953655446755264835484706065698604170002737633700859659555083653582020477172604759886768812460867751391703545921224593658272876997552344711127382340780627862708065366409371635678221587282562142342313525840586185614019997555890239497151347141172389088343192558053029731955327626069252891667819619080968492579876812274441930220227095064190018110071658314240497204036899873471051261425613021091499083803967348896642363216572705379206464287636564815315430529332849424803631262935121492862681756780520568328871141933680790885971257561468945746274056285978034323338363904050281517957508630577612330909019334132868411977823100627510173908775580945503206754556759549545394778699373788571453522079087424579919949368987434420669077243058671435492863467510436046948215023995119358430741782691713439894328296243133484801627555845463726052059662960181167625796659108857586139819492191361936856594939010782965912094791273692639239338255527576959583612403353032206549009337100035364204879576206391673330519780717479369588972265103134021748091184361034112895201343705547587719132723114780473773625480239350444442268185077778767851249529448679478808790630661014299945006315389120826733200150675034232637666733462151590686617360643207772271677157964717844076691339699871848641812355790354782783404112244974786317229501005299953346712452973136132344786927922253263029077993222424316861379676684091325618374546580323639776720786764316157870254906051785745296051203783572832540099029709975160907981033490129159422153275848763484218064916570342563109227345682085394988844554111070202604705014167579876540092038626767568334999970500864099446450413887890383414641143644322156322543727485227005559018873663275636944063412629687388984940957125611557952785319356802451646872072968114128372171831136870269329611075161833186885094379740162618002810810225651603602432219433620196851006919193164601341470848363079237116874536336956129632005825814036469125430132074550505702044534527097642171267485416538846094304766631233522115845874527028101366643625581297172027625755353696767969876111180478708010653103303783359271658383130764439523643132802336941205730488396421265963581407769965570967755367930985951465998927836234484564899401342399346790751099176237744383239364195356275855316098378642603344048460720241312627068235152993130769196874531338740907705291319575293045112162826828437456096971099904856763473118520658966770281054476660893461240128557065106591755743015214664919431411162077805967948743511674355375061882854097531950856469387784319953756703498052492358057229725598426663873784043514762931141479318496234618956396620153388334832649650828893091195295793048109837079822614654764495084145292547782692796472426468740591032577787841090218146508636969121129157859325945782287682442124493836447445324530538050032215389874366319794514868187080466041268410218432849187903479264975086027607306934561894008208968246633601133498793835541303880897905241680858135027439962214801568416360213453613149855882573351006471410050943945728874306565758772535628594153538773853835293548035408893705436709607487509549909224515304552121956753347770819033413613184304151654678765616304503499304944986717071073129248432888180219680861722650123062898873158403790870178532515801571384052138052521309846818845167753201824345124635154343693153536318662674148013316430301644210351218937731064045808772134624795276198266687638317155253304001606685194523398941551752855514296144385089173238529053965150896219354901393890492411995281345363175063376901757602340476549944152333743903953049754359766793851560844443081922327995763100307593552941633670651136870682965292980258884888646531599781159337820286424309952358623900954324470117269688068849430343193172837708965163831673324528900769103643915014418511746266024021207100081109992922961757074310482300131629565604946535031668172180076651139065819763440954568730560762128834019563410549691185405965261485860126472103616269925921038744491708679814309830714295745181354786848484732965972169646972688620800431615341587526081714475360826108774927989391942866847362045640445387157156126403919005617498618904501662683952825442247011865605503374509359176687554323381798428808104681298108997656942864773073626971723128455189624282190265740177043159038130878803502089382689885908230498053307158468329866491333247334495578357292527617886329919650800012560592793863611033063814999952885738497875897660272267757595355585403806127425822488461069476132413499639928896522751441075922526828867977763607884430001196724306992804578987557665173049624691853070018020005188077841323377323470619751256328319019803899211481421116244469085729023410019832958254147934170072496430507158241588183657950550878263751274837397457381409794267463697471352574880297882416783557954412400658366386850193884798763846410191045639824490311956816555568118998671144435295780180618379364320583039125639391345099152557526443564656938525374535529204975057332874939867341782503053735167617242152470624023629998318868055081584577184790980140907747806125570422825119044657865881335342946490796505224001698765195245002573410140887676247578214371287229745696113750428468170293298255626367457722300277632524601734486556313789952336015964411881504054742481999541723482022603512534839435171302095879157852541166127112543066157147897128436136948464846043605776867857905345028662058376334617427101935776267082025626155085294093408811542447075654171779507462985031691815578429802899250131176775406772729041504731643075430536325702327446034346183480337960822513058574509799363533908052975238391660680797659828461514137573918691494527358048379063061542377434156235101972354822903493580667702963283810811608683867505771372501454064911423142893807456654177172887987666248349675794675048369468956395078069505269612282310841130720868579276608946055835064341278924432452077524892531365245389428632774624476877806324813248582936722085352100005475279536726292489928598487200968228282234590473652752054189254513370406002213901433553337871397352259319316667634263394082091062144382683831244593251395094503142038610558759559294652642687732923946873911687587384283064647627590073432023599720641352819718527276684224430945394399693804558691695561101904824135333630942702957826461594224784551330743280655134336721957988084387535279934392634576318182539901934988347243432424617012042519800567162091196022401347820852546291791938923184996612405212670024951131592469107915147269897334306476195265103938729630305450797718180755111380026588016065470466638170756424471231879199028182046585077884484950224136350559726911608158887904798093007232726591177552323997842101208438789770035546782820308654561430498657681857065197961043866949093745002834881665520098435503652132755318024516025131986399515925493301325154309552599267304253480750597443735735264533226891715504578802373087434677301119763763010676658538933118284468009490358465121347421374375210238222362173716707062644657033797153953477167875237672781739596936176306006148319501958060432778317848345976021959992055708178024698624580393206879148827574861078400281146067268043085586746374559023329664753543417910446718234365533205244478748986151106697500554113021788891589985093955530048084103186614964143254875251914086122516930341422635364833154533396633787231043193270700916805432120071706147974403590241062476434397238082948351312656303462905955572283106349239868891146575514158530219145430651563280037416978619354672270014758397267775863197505942681773209475046310084389869374185466427152263598718860913813846387988695742292389071592440922790838270046553279031075945447945865425647973374721877539970397278186078774213808525815103148182098899516396763690323759614996307790979310838026034376969645525641566842473799841440594486422431244392623513858141159158820133188360450193744130223822005140775731783725559233339393237984951148526879869772258478621777009945096020824134791270359816576827435502659223174462030904877542693654374498179785002778151344580412006845062573221860837947149965944850421371567925753452705912449608574270966904075757329718317961398277335521515172282220445850356876898357976600881493801994489036675882714094671921318935045855822789059877336825447538227847735662375169715644965051912627969969277070185165943409056011588092446607544017376739232674397260434709495252524457165426655493678362494419480104109930964133943792062130196673904761597070092447498683956266378170737958107758569323213076164209252777585517057668600383721784769092850959864421080990269212915436375396326860930821496314318002045054438450444160395299254271687785643266939502339134446082322663094877141103239081691988782104616393844500317014713079222512435393536472942589681212734240779234987884910909843464391476479024895189333714269486866428517033181696465016990792735814850329418505013991082239001254393322219724097365849499522776664478354323084081960675004659985696772995459185107887549712255812926272048614474588375128068750618627740081025939379029767157154813594731638938920211164210117943198788802461461893534402430119750748222510371929818867931210106848043445298570006980758647950086709636355499664563993506061782698143046152656244269812207532742771681035893487850361700599736247377733903318295572371596452608373715778239152715619344836292297104943475474524610340021529856627724267720124125418545733382672231981598644140061222196509911652010743909289552156741068258064235081639200540581227951935311880562486747980599433272963163061052302367822136713590216168820522987282027233803924530664711754146082530313015932536207936439299826747550458043479303664128857575938915503033860568530243623117610720141125338757536243221115116596472734705354420896973317789304893848463126736714362277470795368915280122709383325896042386178251056941865969192593513433842121780898029964966731840048512324278533637455531120497091823958122666311458811314691729879428950617258416417727164512928213524652853450003878105303176792421045647266352774494004009303784991219280931825601063341670524391613652658759541004259085410373135685675086038329867656264932408292004144988206872730465221399934295543130419788018650014695940200354737509767673740835658832600044434118348785593405397300767778609005473617575978597957523920742298091113443845946546288314960211887147267253921119767096056080668550571938051830393401744359172504631350054703891286432348765644401261228553856838993662218528440421325111110836474444056512947860431452588730103641622991245374578425966440161052698913836056361171494362866420032330394269299994294359154434122544890526409468957166664004794099109200824378601710062187479450664350200306690771103328826794164113747413051178071999751007208057496181297523723544015489898730139726377288702048089598016976965522843038875123214457709956312885379704815468495889015094295405093866196263614945988953383007818058841855840945885076604035611743507551849653010520165210234953275720894748964891703015779894178371816805638361298530860978074152889248813291162748375601641470854529416085847606805897105258758251078852482654962726089159698874380266641657377087709796861317509635962928545307632733585785897923238786479673087146713758831304243662040881872992434744574073975489436531570130624593485286246736297912331852900384364001462007358918559500652780270636810190456359843624589932441102106663900719403421105797657401844043400168007425651760274996704148451738485112443448286688451543104920971656505896301938165336413113608887421234656831317788753034785583634415049249001870977266297839936085092328278552731644279343724529554489958440168260648573546140431552804705080171221262252643751980424261956917525646344661021234152381367718058658156402205592988200296768451424357925045749329247737022540699240747462551650580734141568454927484324733729240588548036301596541152830886328941661728793155073440307622235188245361653460544760781929265939426679389294770813329644401212068264520725278912881981483001248859780155581411423202728139871312968030641187981184192341943665483781943471382428067196480000104469022001799445276724219955170695959559008221982617242490801840974406312191726931597986843310383524494529880075769948071504858869316325931626608028806063963215748163130833096945398682022818000278366034562121561908203864322250080211257815359484527758681490517011003280271751410689963551613127671143351616514036176378556098583745848902178398631223162955666580558451611596544568210634367784556299728429219192479327238100002868600639757234391338130380308455482311375269013986868030640151918787297853976769587646908079695294666401410826419088111951835986580712623510733211069755335927438061291813953556753146379481503838557062031603653439199755507400779351245436377402659831958184069418170365977245925354794063272944609600743764085784503375440481948940488919384593310011236963861117768548433447629474299309102429175434389338433236963578292597796491958757958177493896372223511377823174211256087782984958242785379583755595619309569435852077874952810194827729764784897473106280433466622085900947296056131804466360335566453516152853663745151565720196657734110116964830706984753104425167042958442878148991412301887249910978363217578445387470444273111276376297686881868749063181054914102661082661831434265166273583124341147740032423597584161416799986895766778826170969683185698923166818464425630658313613010138750891358926691689894120284556970204206435293509676755803316605474822858777273925629590656524082283757281208963484443707820769351779190136556780064855485388812492090947596174543837517291703053926281532556264150068170395711901443381860732587897065390470463335060684348258234979112896373439417530760299703200531664669399101025732800836325596758130236019468843184233327570416612980743853786971727815664878493469496569881310084960283489072532886711230585246343516492335229604793393907642070293779501048503586590929719895100274176533096208264128813914522952119114954963627330905145947304561134093552073902957007888699231351891539927638057568569274949137492527918527486983889875637670529998540227920305053694052667284268250044351646856338940197694280399181410668212435170139949946677022504126668555106366517264490552452855059594719617539599421314311878954257668429199780622119672757972617433769765924224920072515415358069056150489884390982854507392077936601361451988869810887347305189486997825914994854529948103761239935617477204024133323406691504082097683116071044124976713108508440932669954119492306193167995587319506969055201186744391373429116653022131862884172097068154879645016256649249714381017414962538934410280150087635125007475067972946811994972541683592177130481330362580323218846690023374875331697379287315432553507816482801031361326959043605589872031264925932528962837679312857463385008785696029799148079432071049930124757781007156231060669825421452221514682431924860148838751799802185366137797346891214212224076850666782456608200402907494161604065949299783135971345561075647709973470567008583313942774438065248565765536289301809018836858770591407674047757735933802224323886113080302116944959922273771864282592201759677128639088273355038574636249915239037797455063635871444447231955324123383583566846432333442125321204834974463574202204449849210551147792699377078500838825430913459813605824599909444446123209717971782294292456906305681632107748625657857154184042415238159854452630165289741388684611683312292936154691060324384742293809557609906862692593743322432636588765739852094864943283008397492934363550807480678539292631828177473619311301619478731217933252959549352358953766628323401214319600175730685750609917355183488985384956815349466543536279388208302377102917608241495159185981186765805763761339392002386708726125222221654874679698420193851350305519728930749252263454328918563225381378034755232736433924260553152583381131328247334571250075150130586037483415465830013460676634961481739500072327670852548861094410438981748904917684171606768086970622311172771335741572365076768087840389459777066964903250408497240099096760905424008546437828034494610767959346123744010774063648172702469666375585734945591395582905458783548007057727884214917753428684910312609808110077097914455146910616806047009070074340740248945619232835878507578955580477320225560208769770873647804156438344732643886892982684237835633421486020227815881577684393483541632453154312624377905175265764335229272895309770377021512877824829448398527277417434161413273262304876913758956799416230592006316923302278936866534734543809454828583935141660124233009399499916307856609888966318864796769940396045742617307954783134579982079121934558636280250201392704929037770137787059373529035456639408042336465246745586252307786231452017381411428247429084980293507027994609299751045270524706144406897585450423872713929094468651237430939527404750828624072722777707836922126386147963183576242160548630865894268400950633307691684508255197897387672554816319620352670831108437515370696572818668929194850256607349546233569657002617396348018761099366406124749238681006414568492215284954127889823216817856292159434285906702209551764596307691465842004899650880519176185210633317779418341232464142497590845069496975498310806924304025653007039370046286683005308241079710701054876203149013770713507757743067464895959943780845981910570278108803476876834221259620440253628137527197052273290754907717844984058145519116808519463864817409936119295400053168457886384585447198550873887023025595503830797223137723699838521921505811581728692612694693142851318143294856327021868088467564758146223454149493692422868562702576405442920133559730491489132238053816576773303218313553136485484170712212645888491358555979239368249311886136511260947223495357837737274961320240550640307349417478416135193920679431640787141106540749201399370851320366683205421110766686249395545613204511958808500337076176028598653921072287788517036738869378658954705789968236216025261533573270446078150097244843248970349640988584370281561705613726862895321263794006089253730364827366352715355483306380599330142048503928567193193225338158717213671838873277706776193073962805665149553971303893193770772640223246640146883632559818879135330124372353516178248082528362040214217710830102027208425095959799948903204073215113390937449676472497296573986595381483730153120998660113918465876049269420351038454877080973079760945908271035637806311088360719254415396436379618463549427779475360470090242735062887807196340961277159395755877428640051604601324179926066479721586654987979553710166699030021458001267716851859790837714867488954555647532214927414184440141054814381278545102365921815084507670395420202611216040677593827687255971375508695767468295911688851365053168392551800130095737680642200437940060267647450711898396258583678480070452010731925606147563565854780245678739380448536837754380260485287261559860000624047994859174904285184016872689322692414507603364097341205472678155006209047338633830693950838178675161532286557124241180256481693324117622682514586113929873796605239409573499880394489996908181746894453408293651596893940305319310158599314426355104080769367164794747518620033063209513945786682029593423786230463910679497926936885565489672508292106945775183222884064703597217404409022832878252265815008607051928431442653584144297892865805361617454907726906761931884582234975302670304588096226953098611107244551047025685609715702875822664950484353542013521623802999335998322464101095060294434247652022339928479209145939755302300705218637826083222053761546699067962944518279849177446608285603479899116590565796959220266703640543811950369848895162286429116045261518813059223843730305335476731887267043020305369638048731461503668977854291323390584036364183176858028915530713884357900266832757313408012471430544687278170522938375440065933887742163236250542684372942034912138054151032685066631575905954559150495148994126991824438451290120455436012395216899058265075078631228706798038335851257759545669072697817231960696083822925298936271698680978184835009506003278226489090326783865792837580312731452966721677004889797622938145234163437667792604235258805655392679561009863005028279460693999200321554860019149369594757486671342037717445516474964212365624764078367922427008774270686787333148139643904933803310867474331702446429277005790746323308661296660279610502424519866124016221886279621076278594422331823856879729551072724393739782090185591578533885284681925306014066838984099401995717316875481524632822371006310702296652773615355348933295862899807645724566077940963691025859699022225901404996155925351886884233861639697901124029004633134973758845610839450468750358542396534019143150402605547427241253416010299914652260341251213177699038282043256649118057760661692136555074625296665063332931208036952917273178948621988293884326378275982925593932239103608687180602164143517300048884906543258041265205316392717219176065802233334990188686550235697877688699014949460596684550964536810021201315039662100461882279516197722182472304609582521856052383207669044460186676269309625173544320956303637134530745650510274521309730010912980200672560999245168723954464464873031141728032476932998493249775578580500486208220383172580006142771783288038738827352707660353661394099526017254091035391137877708013157592827370678568388957791205281955738901004569626007465074897049221603162439909924477897329802759657602708471267144902393045842314299231270969232147856508574422702231906626760434071291196021965092270423739732712313751846870781445053853788644236777683442954142270184790157275020645443187423735680984100900853154417162775131461689632546481223459366097071936450498246286086519069649251134001863701336049849552470413044976202691435025070382888369119363638097679999941810262491278279603148869450086031072988701674186076192735428928928832379882169900134553706534119213343509958034626094528383660584742264187263193617049916479546159271472161953760767589715023585778843218056229121784946861221098224707453581583041493068185391278458311072577271636861483469863961604586603176839966087539209523367158006275447850254394899229877948113042272577542987314490792125567946236314303559629447311428915875007387714530489280823138105364314661167817139024527611848974714352730211186949098587625947462820169399475427024025821876895880962315796956633196449156900921295752559341930984527345670320913424836569691042235638221897966536876136916951087069152259934860811755718231444497340053678662097083265718058161602713312990020088250114938219567356343960762903485752298342225757327534128675960954867629985828401424723186446725169653546758553807646413213774462760079527923962352965919644368838523830647029884266394440952178158458095362078805841249944216427620997887053499797640654394994241806535646967494711928434865140303600844113437018761244192535107652547063932811622682599916087282597207504424874946345251011832848854565068249055871593457314258559865385638982230936234113547467276442116149225995752543310121863772738944669720694085207929762937507182116318568550829167646036553114431002372757054121921785629761077400949506323579632197981209259139722845092666363813722497044893834010456056886682312938437216680636781191791158712824939613268636319696553314096682955510186631887067127427255225609715042542637438161198834765902488227448021273527441693476806729294378717075635088364471179370005603221720260376507166322865699554646956588278216649877318893620541061435548657404896104341381786932373940591825618731537308148303900028594524655801084305259394726564465957295466573705393617518977619691857852402179209399989451001238932317433288526232983826526091255074533831468551153281874315802158697933864687853080598401914156732294367144347811369482312704895965128348590479706741270180349078181435208837647974979724868945682997557478887889707365680174678319235057113106427772984457829696198711210126108551646431596034355478684151707900524662852215902690685599084059100360727960739655605761984266733077341461694778763904102555824106054491582867268720238681792137603586163398996336146575606669976268296239911538478978459513222130911536047957106251404369081464444169536146846359492576280887597571684618082873422490763655319858721193111671697733921298441800452626673268636169769689170199453928951846251207209258037696599756451809086870619719328180542533395765379472241818209874114751787448547462802168653254542993580312650868426674251810426703427101815554429585157836541740572953754306402355213866777434750962310526711497046826110127530538177923393232505782811328429435716127483556253689398949386228975247676210252938581944248177362676685962372687683730101502353073474787050560394407478628117354979097974665033757390541364647728006067178889338458639502055591467296101732949120223909539140418030137870052418264846645580269199427945975079553342484512294663542183918668426991437726571091173252943585596238761691286320146970342287235150817756063947179741784900883957915618476628985162563096647862349467321978380113013620352459774446551179422373212856916134121610136822819065320064879875401759275779724003883293184282040735040348837374361100008113635429168240931449550765046436181689441732605920318026064157411125004637997658648710389415027874208608845883881582439964631399703002863840642403967830175623356042002653225608950805930201098305503303300227119134957531473632466611649989734263932236799985375004346187955195823578583314687790189644938086847997242174353888967218538493191075206177460181929536114255757548196407057694157283781831128048824471161125385453307833917813459097388764008508607839320204824086070981446457390585782625721150116221602036309733282086106389339133419106084829288754294910384947111364500456439163791193648250745620665688790930475404335914107636331135874025036799370652848585951233963026432930563426718858508060866666365595603689723634985223963965636817126128387053241263187848832993424956145247151428360615144122288387077620648403773728469963540183254540049063516598671480607456304391595591728151344449213800429570216106999617111171127483029837099562887537191015065990595848924964967475522010880079770135443518744364453871709420105411564688564106678894237703361646503293381397322445291319624685337876025136475359469512715386813773806829795101517658383522224365646384330887200490186305614720601530950519008930468194723989075290665228448557188963234676283178885812383784549327044741541757309596365808113905174758588750805917612393803352666466361310257128426100780902622497310972176895269878896189026286382799793392419139875487100301678588729471342583882683704062908655010759378509397238395492530033215182791917100027922578284400860000419240411902613341371863284139799801357994620833780764606847405327376871525509146054283699962752435344622173979636361738084597717324641195219015147709629774945744334990746434473696321387986555532513852685473637360736379008614213279362595609438584266247324156148011244917835863781211364205517841833918185106486016504485463880946561615733735983931407099205018966240307212430841401677234101261397683132814494966149750196865017175694798882457737873016405574327628834941103851852309637426748194242619894449412160675562981965215015266511220022238285796841060272802323251702034075032243622850986137443009228872932922260418197009091411575138689103275693781242483058118591956018885030088632797539005140501432544638687286988353745704574296487848001461967479419760151474216161848079436343502273390302335869751187203848289993274115987952106006860537567063069923027691996923061701483282828459936819613456115695731295797858086621363140310604453189809361436445372250959247835566951738831048906060780097432526513229656682212306192372128050195920872960959661329792594460477822985247549414372622280018660919919637579818063758093194915053758572352264304622933089149662092827970293199005609058584309151870062540916185194461175774646796565995216564380772675104518210914870641449494083707377577012185494587901524568514967246094617024363902330248107780541523798565028315719253068995422183295828082127347770594500646119346073007600617461257126783497204188530566142520612672229451581454247287549982493825440137530513566356229505371764513666542192472294747882257349749090534495737650718865412271107718115689981903045377398274517525029785872251885739141571083921462928902133019119400037809334013613652488123066571553597271823722199695862994251642040591031011069315886004926945780667818931740720588211722288874173380292063055233471434092394234886598296234813116485806396677531126144541683768355150968623703266137856002179382720744151768613823147892630713436654375034150220731516767830427270611271664709513434475112003216537434190210435810725377508012229634581224451317265267130103882433950663346863351409598556876795628531839969403454733029688793283930988846379936364784050650604554706991012821755452916442639555424423250840108815756217468696065329969940330852417395433663060551085314636173378820973939412608458092837410490612760136666340755803322043103927826042427728360417143567245543555117823486963709561806518539914127660371701974046710992614525654198518210359338142390030595397073119904598406629512425288504629051147063449473702134103128193585482738603770791825520820539796182574809212084197497804167759701977843190444522517254767831531319907165972127741454236935060202945355673777010595246379412896563496719496813824777207695866463084651718678892367603286948581406284715834629081857733387434964328659139726298946718426302889170561665573987718239598789361149445459968023024528340424802167473204724366639555645450702190829789229958181754437231015052780626470070455400458045364307568999298218812915368364816667166005029599046114696643116558357258463687122550795321350613746193590560028402886898409277466688292294560371507297906730011272722609172933890006431980489555920678611367586239295950944507425470505802998676798855502448940987448466363012388896176255486466298378509783385378577228748475465555763217653132603021085855241738559796180086765945395806974269732423640761787378013339059282048587503772073160335170362004430489918463249332115748628497417776521144304009218821367468802339673486413529179585535531210503392485555406008929643091988444420671043627454012222318069533094918497969698417177308555885422212439157535516557715291395634130464814094809722818952086840403658894331196496876946389280434861194572283581503513268082914690152802422833516975904002498910357872026540472557752505602928940531010194690153226818674031325804915926597854208229716357123668185349909791343303520102156793275363699165101625374029907272944161931867101357696497800297338414915520942660835872269572908158313932720647237740695832485974832446956928800094643538038139231856269172244111834895800829939096255449986372037708794215930757684836395310993655736241293705657520203146318840355895679702325168362507527468695532243141980694011023995317854082623667540283380597938988991344550368873282211438311823400170330111972914577182366420946124419884738607787721846104132479229928687845614940518839860301042424904074721851839079665598499750409467817726512612490667319596842875500003927960616532895453541546882516133952697143178765325911668070898212006133376253106752597768218122686014955418410723425271786539416371526348654090835076874233110983166910333418392670855716058123860991005052614313895998945140245469870554821728261012699078827163274174794823622364675217622500398910419198800607586540886233177434186640612346426268002166506607941233987873138019262066020644874047830639529247384379033422798034828945768026229621130362667921992042760783216828038849111990498718617277624712594803803369229628310261224055077079323307397556529741471627647906879860469483694521421952222019292308034049977454003066662415284354326953011054122995452518588923798531588354918744596460960331931002354690194320256411093783986981823578713174679367000824756402153952301374326483990791380883665216361845239878252426768575384420430395200243919514394656425311814173165851575902108788477157283316162993412861379227459271077561509596073383242515118783618533493640008027674379266353450726425246507128030590265964091530728226082010670095107349322315939914462927720697468382235226548288298217403689742338870658461749662138384312201781216925582772687272188090684798156522044039115427601778884462396037115758609481174389319448355022237265092973127498347547602065529668118516987508892197599894795916460855866511250009141074940038950978710182220118468812460065425926153520490926175390359101944951940428031154909119579323969715788946706624552035630138854172115158428451277184050918612673209304334536227541291227693253101906445548370093464222665817283233827850408086974981983006689576678366070625189871249994454711315339244040407227255031164585645518647797958964013587134114913961276205378572076026556019837351064279247141055501754905838208552502531636447811330153541192503802351283540010255781291773021953571504503122086533946856200133239859327471964420521846793527819409739483648941071861699954562542786870416509376791475790254994792245269267998317574710580050878693951615320354594149752740117522887826847337778753199952366117309267668046751728763884235502749347504435154928177621045584985335813537252629235641275225684190234366625484262952175675602161681032160847589032564766834012188534359848622375952409449326655057177996133208855399512781309763658306858437721358308259562288662319376239200840666674581369459921641283104468470816318090059166259778280460162417624161965652714490918221370526948923228612767498625674558125877483723489672890924128346521424310312010045248254175599229353613158940717888584944919249314917312375422257243392682798368624047031539034851668803949573409487555063996133979738403441039159936138769436028345252718273055703117676826353260600492713462478897282895611902706777566342201875832185429607632674984982404323120592119381010358952129037520429385432403823257806807645292984052525689380620709420407631413203325643819093441556215965453674579790673499220196815240793051875801335427708095530407417714044393878520891004476143617596170219306366186733911515301997129218568684936529089902764886971336757528242570797450764545717700707072838629629559013355549527397329356608072750408547327189600992250445099223211403627005378102515651015165858193539202190205948845423768296771567606016557387565126959839308616027274419999905062576004929309662215157440347751541625876182794827875946567818202311431913509177725297935881015944043242975035143379180458118479128834100916509867551086807275923378587777301687229591000998514858532989547366031366806019612377921305158243198904634586716309477092831149263312743772856048089775374872950041708301960966826053267792598774547498111843280823637748173514542112667753837981198498205053695979559969932442027665668776336317049126277753060486541133488415385552328146677439547359015629315591611393753705377288160262643068769405803289769103127340737987877240108735943583548426602383572170566761676245361508206046292289612577688098112681422222650208416204910497117623742156392324251623790607072942962841652845596275461297490697468619686691865947382399584908660736562987322296618819410343212592491916698515994229924847264002447613097875148245107574822873853135430381037218817589600803032091720459911228305734854334435260234609643520272639272648833647463725886200031629658242171598309833473407474724768964937670921779646927554459320608053166898185568187097238089849162067604373995171862474140218288710641993516917479278761435826601317757572768089796220513200862334480827824066249290029564491856981323229355549447805025141248920578438933839687764919340460031737459538259023007097812886329361406661585496138090522240635697607318113445044492516588685380332819901795123947592260720136648857779390900335186186220478951966134107746349676401846944541819901348618073271866158693262203172619284211215062229240579955407528713903302192117063664927468587366066506412217847801051883721976779677006584862371134514330261701516459881192407026943944908917862280986320072744595657145117224012610129224440262357199729724760011477746451454001375873879865116921253087612572505934028231540412045550767135873558818196339038888341346484274441487940402500542012910265688295935289885207748567280360654071239829357254137162371743539679949616792186393120359818501136063899849039628508206730939249739304641278347112857309882392043085808286251625891901116171429298362333919724217662680952903733452572384892907973609706174290274493273658146403483499748513164653563282732571471821685293801135076186196759928050725815533738434339223016911665909316241550221487215576208294429578982510545291013499565724437714474227250030326992103305132889563411538661606767392960572735591701805889837933337367346694068464496967849134858636064054394456410859303556287383007138721352918027681121954123757098125996056557488825133346862803292035531997084043244992102121620470383233826881494203796066705014784038476163810209720227238222362657247173070006777586987178806930414000226652648599572405830385863406765251740751520663752456623236168471918559981872330251598045557925277982174413846465180582692916499934119963945286922002181588839609707467388465997386171730679526229929071038946788712696594432150360808499526086561323049619985970186863975245613531994651482160846497312077387942481141164229758968883384311978833363788352768664607854452861121656417713904719578346508535242263325553465543644304817589680485886606566536300251104433693526061647865546749564058369505351037553607302526252271114653615125177409390089898132726083731022493081280118375827115940275864239468325308822910285708960020711553281043856582192238350225914391714993801961046677277659681582311819864744307973290544485953626442547694365560289338981132439131065645186070587885027343949942858610710020664983020024455648212226532369430447744577689911927361345484937733681005886622944270963617104851878983378416674127648911147220602946052057865241216269794694867706489790791215860451690824430496177779289353113657270785305204588073740563441529113478291549675993867163328119079522813756491509110476496031515134262218036750565122797266405054973282844494994904727081967389057680056489749884901082120674020581954415411580157637340593461890690058324397780648883047495311695773846932439334396033475830975596235802431520646166574317985911862791903858797224167794615554284636916761716147331204432818248905175343207069024754518146875144808269681716946430518892026912079324614113158933107993644894945955595850315771388935942205365342789193773768441074289019939580185070356729721560020854721653717862903709296657971158166847699897519439385092951550928688184962309531982209642977299574141453956855778810539899082892442489300203412334701004783854333661633750261926977586007754125945895935851975133338491493440379809251414869623764450172081383466547363127212682399977573729039036503322547244980306245783657912282195478313386687190151509592384287185924617620497052880224896184948552414727516731869855451187130477661335203400382081474943685703868076264183995237039436131793119438923354370897080308560737032318325798115266271379626173620603687472960735543103325111148361944366951838716087622772386854756833487975723695090535309993292604471516528612689491450568918993965482902057454686944404503887961336161270661922220560977204105019510210381534585679833686840683388146730556593792575936846707651863982394262110715421854750145150912567997320485729387255106343511057668265925418815864550361103963563740435602975288794686743137508371547560930534753089463026790691385382198016507539700324972103679299085440558712904960227653385682259222047017815414827570523099982792951705639268914904368258202748967076265758486904301990784570066317411767982065129160709696888607679927101974139661476759450743494726411231598275493241764038677230675939420423795542872892327164396242543073492199306637601707853053607209710151209442104663602810706522336525899506286950822245787210846889205383623264378703353765775760052752650244527584504228704352280522572984809588171574727813698180268766076883850280117227217299391402195928218667417813550471678410565517311814898773136517082942765933847771191838795366404073150357274892532478847364395442785071007783706992275514455095875114991938248610936478409737137458637418241299655070080189061810653001459143118473960277289225749512606709980039285763666795928303545336966856242099835216783126213572069176027897414051666133771256350981578635096088541443292309439743554611338829524084612266059535187881321306643205419716623776511636386245621249327939702278690821842807580786898003570690192360491664682115123475600913781928365447426191712709766787039863773422420356402602685965579229909801853499668824098121069504153048412332859972705928363499620582653983352055366877070707667930275334446576075693091442964142509108017242507527413565900850251554726665573118084589256247673099488694714369389807191405981273931579524168047046219530019204096371578543686632252853123931313819744349808323496465095383176214693082043457926702670484634831580855137226199940001287498565827699569221094144971633927030267812410716286937888761888329550474428816669786271983897759832929606652364262019377215784125694663662747228385592925166196643026808887219925141418921054432343370005920045110025974543600256933664224814136829215521729880686260277839868070585952301872438235644887572018324862882905605855419446827998332892671049647971397134192943685908473998647381860453559380319111810016064491495457167284209425216329777978114331380965179413109522554041862570359221276096681199373585455639047422826418084797423746360866123372624010375128352108155395289826970672398825151533269149953112068864251297866806255782345973968665964576479211316721567688953439504488168208299637106488882895653243971042227068621383141570466622791079882300366112575770375194094915573545882462998865840324091021244089801424727656938948914527697561908680374550007127908934183319511978988339398145260902226947875748088083081131246283740058856279589572005949488963104880940565491510197875727511987694693559862137250501093656118694646281779205817644520097967718037743042183172996237819913329600956827953877705073778385853996119121720204865618544648154047462520539824034857757302615042388388977976759902840016678689312995294675083766446801635554242852088504101107765255545423940891126133810135811789835034656884793774818181766416324428775485608347369128641443171292484842295785469912656105414975513950025069052410413901264491714502524186803373567811076374146008000880619390288207881641011807153034302615214151813925929836945348448903733567878706050340325985695196670287582627847167646032691316425245567384335643064299527466842548445656579020383005568628402740126578747898111137512226478692817933507145192648307299008047328680386919584391521891460846854695044517101603518280475274339407922193712812518074749666783005990041941261338387197912033241206946259661831904914726330315124674372062320845324853821291448910266871271257318976387945720234528445759866238208217395165530057054826319984571275372766648697067657209098115159164160029077655847044457077586804303119621999406201802804816509817262234833339504700104793123683793948493726524823028944207401880609053357497343821977945319321445714370098148793623702752829629202189468807850651679633551761412494983266502405947790259240874277617826778686553709482633890518390547474051119226134403755781415658655885978976969468365557213559698511576442154487182847554901906536686929953767173493368103259750795103539929747546995592705373489528186718371837605236941710407708747889836315835161872787132004254529538852365717641454259080346370817443315575559128668630897114020888328425833706136251721911678708868027413817343674041253539657546679859572144922967183073778686349549914239116915413979011738623166948697896968023992166489691633733203006174232548318179782166806028161742309994553538825320357911193418544602772155428469482935566994391915863992647754568689785948557542531737835810936628576760454936017769506459844669575431765033730244720751621364048393317047053587932755642784747171125024309619375338731580403097317339335887242659795737732496416794690397990148872138318686975713361129006320146761318554447758059616046974301936996939581504949546051536760570631814194529015232068616544030467097294767659411320792178142677900027185657420971393269456541043381983295696998720140099230718600333312388144884239686857299237884113996598067713113763225789249414737498052725762455254543404579090812940327290200315811493064371953462259622314532032132886405023592014866290080221801740493219401383904861292167692620332109101976611627279301780990638048798968467969098532724146528207005006496539417999870928922091893324867277072200475740751447201651428069711592578353123987632370277163811774310985663379037896347198540648481234499159572238520491091732573225801566396464667756559138448767681664433449162340106063024360839393663412611150735197219737230648993172078354987198044222175127956222572237955904776057209338929917115382096008681462945666846595934923145357895051021625041463564482676983509617141091920492614947789793823114249071475871079279187227972201784282209186881490610081505040806733189057915517317909601082746298848507993061845549263890728627584661061185515632474762670701364977454999880103388294849613150172707094341442356559429525474524091345137881428262302748059682400853382435580744012816478611268609853390649862883440859087131653979853827679288378708446771454776519734223190953806184395752316439932038292108614978283339671610445869422637102138233583704047781896254955658372015878491803794964140835425575724547586030854818766407497705165567682032196991254043995897987909200321140007461602088310020733948507299164995175863082640331353817705208989140501713405687280061697584288003150288092401411204148760636154578154297291169768004145723782884923820679729360783821522663148662471523158210714132075359182809387134955002645363044349073106393966097165360253809719768880829234226194583293501007740937663552613503054312843653402004685279920032234338595739646756830978485552279706731131138516253436296369485545880024465707307737055235575242996719544417047125521227777198041329880947914908599788509127325258809293872512269044038886410032642668242851369737544424010548415742059147290821227741863815880551403174996217090668496798850112595918024543672435511084791553109687189207972558457077941025499842425934480026253475573739548022954986959352496598155181109411614901416267597392970502115478183967144445451550113576861489616703118733138494575443355532765667672746839068372221775543058766255912814671945033284738650035830820978298408204618456358089391562637206410140810090080387054786087288890616752300004556406672101521856535188875887260444257766876119444976471935848923397601476817721101375476695217940444204420104841492329775295081977615560715198272347048831091970263764469494697698566846727954866367695195498127939597256659294956492219566039324098745985689317183387697890831570290015507064812139134081283592404550612237888035276037122155919542075522829252915871121153284618913718125688535993685161545012500688670817193129260043338687026990737195892522583695756395059118710240694761192453421361753828125114502699795280328003226786740929148711581651358113569841360436133676480036947026034448571506212834014558127896458200905290531102015311851907671039721054842406821675743566758408126680265143108948478622904101405835847930138722748859260349255834857393947866596200677898325682796094268916327958977374558778776277867496694270453976720249156909810385998549193523543323860185396977982241947262873807687276019868201076788747514511127240781108750609226175286792044051252179156278054802276900608863323048379351700017321232778008137409762560009907476435262838597242039579837295130432433786603121741638357374385707638974754916754048542153392080900393282261482578542890521877717818795790727665385132485859544300577970635446723062941024819424082829425010621325173645290674986518900472045399697367714038615044523512934524945413984189442278460929209106001945040405108471284638485882649091191350300577802937440932784342753528037265500389246699402556810511310727389827053480052957682510748263910102471930752150225700011043631527185858030542232922415035944667812554925094887796949849858351590612443024736108225871746630170986216933881487252532509701612206653839746128189404370188191526954721021786825462363680035059291857261079402673333899731489223915334726483426733797158786141829692196712632240755162576495154309654285550280291880306876783339972597374344823196598376509886449441752068188251161130063043287106366260468874456163931525799526289292905294378067770741712395322375656180043031377510461699522041159282518668955669958019268052273853577279333653624901988116618371406325591949482031112345334203919492584093573766699726015366660724972384509659914555534314374391644228865105645001215845349175743949703054356932942936833426331772053651181030547400159804290278761175175980348288824397455064964950328885713619321772691323014264099441576452252144602965273844185519519024583334963918228934981671922331178395361461313959768097699182661831264373908641580645676773429658058457030804959220134525680121072882611231747733711616236713607891636937426882097385613321354642667828668263885423665530420440116766266110640065651668273148343889427181978132408793459675651664758296757128222706388751925408334052784846190409498985500654932811463398651889640781651369226778750951813724628850194262336081383287050665621693440166524603497045281366095609656726287508239524313661988138538643408859676395833068220459407971385963763136005060283326259286881476410746727546635606791671743992282742685122268277972437430844975980179602235523504819056954539953174203575187028525561485156912746841577133507772240963406827108031889629493766816781959028086803978873798359144686911339018987287511904268199977793793501639100388213352114146230256230557402149422527631197793980686022463540180014274131193035632337956974942181470775300932627603816671123684406254081192826412179133056420158497932782244070898251132365452098881733404521248502236056224656206481168049644392967357988720795236405081432931314531833126865951401768449820395982092452025548519687493695109697743932918019973102302763298360940323224762597771625277427687790399125167935842359267351099788130242231804206371890537707842503707118081496278127938389978724202645895662097767048118988035790074156245509060542856160289763193205933944157320336082142580139383312419294548600238353138958460422820111092278205616615907990706196611612907520900630834480635249001233776889287813155401917599641015230840753742387496906765050208971071408506936956722910247088785666014210219293373203937747728771720170519967707893989928847402283098148717883113166420932515370996422061422337640463660454615666002283531135317748504357128923023891518824061251502630973184032531353610199336472501206151983550458943435253428758869393774934834580247463729939394923420129991102055793142551263386283569615421137870479215226915032139134509199411852548099102527185701595235516803136849437343255015379866018540995089878798297328602366754658327829806130455158692519882225193110630721698435445147746398303256231972158627821448110963337465005790448199460566942067811122008287120270026032909450903826201867018664096518737671010325647867471739788572843087047884759446012179737450652427717813405327684316084602104102556732893404687441840119097791535046992027290618176849869321515756352722339330839574393536532980560384886210717518028570229313155342314964702255787047862606528257092831746399712884876002290387620516557831504987976154673622976865923961233219277426670932095400502714629012611896530204446722329825976751679747761043942266577004126677024962898591951280892681388921472315893567362901918910590430660677568020946730102007536881811212933380237513216300513525163973134816878810729482848153705403385507820106390858054390257750470425145243517995886042831164971201745931952458190615145318487087818315333670046326514941626070020000375922523356762443382652324526998871234850538864957454908797937249508970625601132061813893096611434985194973843773575411158670322335938218329918072166847644345329887496733959660011891193630757235661105858844861296652541805193735012901105710174119125072965608380696033273448789883426343880527139111150751990025680017217266790132549152964035197519661847938078856968270537126332288436794327005990157642405280394122527377288538617475251716619375817228591085973094333440226179708635776471004677224198032386996791201673430614133227223794459789261705026194788273033802256721356383614807287932532620164270542861120197085645464050572564219339737801037940112971458214565686620779639756239393089622299885471602185535100647647777045537131346407137520958916437623064497295987545885096634349471582175165163998462214946585831350109808456312485234522221349576073339638226790735859017463184838554757581142068536662723176565225660040779990037476840685079711822409994566533369084838874319655916719117287503152945805942408197155958575245417865992897871047335713900351545716151787477674759411705207554233480181549715664932661058476353329825207148673784695695592532509339731147372767613429184959570298431068050422196324642562098779631706132528702331918802353026859459507940804959554147644414577026249093064415113780309897683273070668170051999742471208042152759178550038864285008885416064467964374737416839776968199072542446140354823374199861116590633650192051017979801162360234248402685377006028739969334662900478220000864089057645635116773539340807191989047210492393919970377358268485985194880805657913483602351776839978741330499174249902655196723303721840584494189577404925532610313122829041522381440258618487027303023538098965505542470603147219888276086481378745954164413805991931915000891832234634506930332797927082500927298604887883461557946544997713392193387593042091672734450377019549325926735916611463745365542960402573385590715700938579200431810777668714986840386139731671109052904101534694759819687573147697865400635118844433421684146391127323574712173701406769486388560287188279169465474066194869323158226077516389597048311568760368861698723738581856046225780942126750840073432230239519758648522134863831474921968121458097243339403609010769657048062947865884144200042061086582579264505309927389533709440035822256258266795242191993072527334496680787948244131583545008950885575687019225872511611052674802646939611221137612684157734862170441975519865536986864165364454859898580123525776853263329664468074721673339098230903348193822638146165479489926499345212822739004875091075429992367796168714655930161009716619250243418316340909506792431804192162429167957706668974413830158701736911548832530953714147659673431689223621957427552103985810400549464757760143492895547624095577006433293842788244026642851292992274356717897947917000448979298443048237819447108367230751167794114503474002217809649073775798389228069595666701492932102054031497518387094839889379394556547057044375937247866417807030684630062097285146797894740364623310937354456464045846960525166750810941591891181976927284675756805368701703966949794900378668379604025318968254202209912477599966415162102710501878491080485436784235759265383639274973487905989537540944734503594251330362118980926346532495422674891969977729745002982113686701391186526641537904020973926594950995778957495488308323100870501582706390641051615505235941921367189748237258761842411694983049774858312761217056656435651374903789719187484554495994681218815544092904910072557409714323742995712496251938910074839803116078532599819273597057263831754562462534239284917124708081240619195568636763567496970555377542939315711993139285356056716673971436056446937697395368820975994204155071874982343594954970294819186372113641014089536309430577726217148553447478222774242715991784963354416516458992043275182086370120352813587950432838342050029733314719104722772726889224573545729471948173179668104877211991137819208099491509244134958610780769541570996657918056016670912972425133910832610677379262870710458630056764666979409646728047594497926771562975046582692131448038485260351251315059647780001526242607286347097804849758626137754379502500921442597782304157878264840330816857223449005694708953544937545762125757127603173114117478268089772515990813026619755180434918996765470355884353106038281057478722913817123722695068191657071642281995724808084353985461514900098273723330231171372713409805102182672476179576229320114939075553670096160996255912794757874617662441625771254183451812153705075411368891730321336019341953457799039860929418393253792939716268079828681448512560533981682478568359226792638895036726696005068263503274985358627988565609612461446226364923549562643233618466479331817277408487964820032996847952412496278441665586746980066559439680436281228982688511330851203607257723497051760418795965208159617873324353321713185490887125536740182162512205725139063867750722743875651231267591474474103232186606936595279744306610274584282564290971693095229114542435378026191366420171571454360436295713139851541769712012052053525490224579984700569760930466865733321001113990574295117097825092616060488164160357993657417499814966891086097920298341000865831409889451959151835164482601775386384877399370578479619875051355424415094297799125574717639896508248785540721999734933024762971453156332114451450222854130729084716798884365354529410406833358147482968462377774937088381688032054061939428163209773871596844518726049665912242071255005499216885531848430058917289722437511481010018844707091406540531154389189659875384915511308360574847229689899378558678458658770634439970700942021450081356965817154654182987028216641040134443086401245766740887443767136919826378316522340153797318109217935464438903728166227331259734480958580074120899004708101261519011555036682970653045891891183872540115015737835115351438102904221785760255836114335320813489580265569259980030813109031738025694437248298714803589288038465275782685255697709340678095783696863651088042674081215162399046295059994711128718878495860959840569485997550503492920524873292185093918581107822635978037340680128928945212685243830943746409158736285275201852554348401922184598858899550253355097966375793551148282088842300749196762005524382601108616707008849167142795313846220433904466466188883919716200583302699709660586256098491617841131269939530670457894802680126842044433315399051982724718867239295434802326866866665614032401828764305011055078634808558395916106895898740660684845387503920826168482156197435598584117365317307000018010072918640118518360628656597671392819505664000973365278933758941792017655872234915833290261093199139934721690070324849644710026203715021394279882803170356140615458004328855160229513486574846910019641131901616081457636225968298696814323352725277579842571991531800601148567056845097242022968775705854524914415735481908675025637389118763653579022121521219002881394039445785281991662666912289624023202024717869457409950347369061616639869364732842196890500083051759209686542365906510295129074713714254930222943926155613006817377220300199819215413489149153359592564687899321413742735235083681309224539874465990070845750850827814685038873379291563365002468720594157978167979771737753383042023433639364775879119453056425272096810440369641481168449769008663124254188917174691224244356483538924706636989067915106798526896177650302840044739431558048736690602451378555322402697763644649601857147075191185972009602000882680773566169259547179221648472782589567065159982165479717459315701305384697164991725771395456182259411379126899613801710125800239111681552193182351004770954187938998288074018292671924562197293500017874723006247126373724083785588813920372645082546429201399927984781922134484481456058469816465026664762779303439252639890694730346679059631979801798631123498290154152362322476106628282278461076465955115360550562517932285952237431493894863560318497772568853290514296357988395326766933729151008633367681208925635208365957130848447173416168528893220961186017871980253451964956238789516074820233534467528799646971283583345786650839237624047576870578483360365931699031361981669133030151451298352136948880229374568216153634988420626907465723118198051894681909510002711810904177434070961674406779726920744437068371040837415741602246701742429817414964401903631389200010379631208505354321881088026216937715171902570351273334333844785723137282089866340395308761880591038821109660773178217231407340329326489988022337075718110988845448076955564565769436746613576028973157771615207591516790719986525224647625564675831338564116161431741959320358917415564404017076347380919675159795711811176871721819913760508552807177671317012049690542195890169182455239201598814200677231456000084351792772456271737722023461843269783764022821732257589412793565148095041180020604464867288044038472258735537745591721627872185714449076478058974316512713437567291563892672475995813422161917064160780943801142800308084641251245917669244121406795040666951478858339918040051164934247829579512258495502184799292445892936357484679486525493837144731333940327445842346737266182199991533308939309749091918909146155900790193765029000136153422479290337483054207810620138318169984167006765174661086342019340054822470374799334840002092021801758601822644752623873228148455530853090276772089149437173272778648063946229486381182889721299094322419075205746373336122263099039269991640797353004776668798455468498987393720463466825095288931918085750590803240797845907679401293594558945526801902144349347558183982841752882803551015796121703081533559371233978798597120038335283444702402470910115485930998940402318900368579293229024465785392818745814179006357853997086158362329073202214720932477450579268138950085072596308859413947094867248849093401087200706185695395864763590869449320316090191302552696212499437818438413876604931535470104505030809553986728425009093794268569123249537275812276635867763146367861046278848138346321829300846839167237629572842936503049824003346988052094770863896228493291867895134856254619239868629162278212889420206555524502845671829909176216775074549174043317751182626503514186448051650304771781749607299651760065994556702492088657983348655418924037727790068706759655276852965361772998727813299057133632933492455767462640542226977684306573438882574295420776531076725778477402614256600959989824753119427312742502503077897278978089981414171049168257918250104085110493402524211573397211575442133059181399142235781482023199094972052812428459634733763604943835632102955708135445559263900708597496048074847027740094597732174213732769595688496444559032648961609176817237270640777194628935349901956384772536268248509003324763797152772898687872966266204440060048055661565007156566508017031183544916253157681875135769066794727505186009671444403407028561634996734049139689222870086499617752635541596390873376086678635763551421008855797364499587037546970074596327935451486721890515463022526366345595058785511753720892771622831970290462099740741747935012325508439279683602663917066920373166720750891848427243040653203690197703270080527906515748875627689329463234585275337267544272339979203202885571238220195770322357122981490789496720583346552438722881089491449406097506995287983735331942158131335446748670070427045985041487547237832846632476162920953974716295692328865957945787413752700855232857218509025527461946767934325166128983588618408991245924187101415881446720176251454125711608677510401042782166957298373253371171633662614395665220305770187987079160161722610149102897702605535624950637886374522183940030216163365804732698171830150115975881361614205845639995962530845634622940442281266250605389902114592912545501855107780962982148465000258944528898421265978977449096253556472892947742337335692309002156839606689062981688713956711865287519636529070910193217288208546937875762749970680756523152269063539895230585379880426727926283818953281873437111801194900519407406806731744060944013797873520747779405315261396629169741604463990042497411174582862295250271837480227429347370291497656835298199569172289912429311347562723498297720199011044575761601837481362648409214323678363557513965566688275012100669475816500468622529345206947400706119536813333355130498743408183258191430851586835386366819343290387020754207296392277126803254929136518460854502985920293184056668751103000744102371547266952114066144720857662580686045900214203232920420091827815230055847321166630022494105794046336420426080188520710877617176906315622383171614347867218932010546998248076790542375814277097880117520140639566121121737119926075077906812240295819464411004578521911208515847195752396324028561459091890482885673937545171754628135426476212293006009398660957354733162666084699547390132100118315252917089999247201375409128626036143453060856476658470592430258767022589467657423637488682244494376356372098607884354633827650782438102159639479131249406167901177671770952738759516181939380941835408901673240999017726508806778388316362179835442941263849254178191124771417746609323380231806023275246819947316291252294702803895786922265777770846223625890383222217470037989399711285468908018492054035112109699438411335797177265185802474356832116625175846100977972946625735924909039199934202383267810319803334387126856951850117758593697616563648391935816373260398176045500284293292223396234619612453137893954196723090793512009787940317766645243744105681980362772479316334915191365741583113186498224955972571207738986144431168668683590801032497457267224390418788983487749285520603472394214243204919802582580612722311876156068458870145915557230184204460167753119120066675609882254452656932686595905162709679177315022607391713018976906979755992531601871420871132689854396945329946627764677142064932859554702387190691119249786984044623700477977089767695961808319689625872205233061676587670920444070598655802065178492096053517115377897901777070070059495590436870164985755942365024117479610310561988839369219517670080967169693918025244632861031003066374306476677109496296440989467003660403258143571138637191842911873727884784754101761193797499928283612943119299637404014133271128910972327607673412835955946512085979759639106115901128092097231874709517295767765942058765724575971556105021977739377683807777176730973974311172148563269304069106806554784558238150539813342102514967406515246000147396421999540267152884687631644417527238717542137842137565603830794479198682426513267375630214032923823436291131166464448510437538352934013169037904263707049231171228371858937471028072934901069334228743468853645635997112926908321750943584654610879979033031930391929334295725280669265167353534127208547194216968002548701220191612972072103654262112227712971112332308403426331765344962279341346355401449614725509564209078240664481425435484741144214512246850014314809755196920323956708016381434867363870295217231693403760296119827639801664794991325255707323635017732348412276816851703405599688947727325391311917528378171359761655091169655848147880935804199227726141780411835547776485957609176865155273732670174736903592907298700457154471586733646113649064500974965048238188787634060679965636667057978105281853976540980329593147297675954228461152829362062768835150764323035325980089537737900284393107191541294136867043999402755528194132175331131591499633752936723167358854180688513521880656274359493272905344166425024285844270789765908302184733506144554273955728038679490815229767302845215981853862602262103017813504008201262204748617242300136656488032052476752108239708584731054865425997636453193648050106837123102214188128695920108124143587402017185250958977285718689386979875440703127119323717634619363196625944013319802879972538002861350058049589204345320579602843683887224741839068739632125653475289005358858792408906199300767833742375875294181635767593134157566921632297437172225478909285411826091487804717848860593932153305050508868339917879041198143717722871691440074866347929706961555510528389992911972552616128749071225857201548376514590607286025999825990706966588585141360276198278918553421146035111241696188989586352075941869551748715461983610875617169670332900226433283477211125205480922387934128407718187389946269584623866896347821037444811064440439099499220954319366155262721444266073324871578452253972149200204255958957526635100645692424973712493088504578566041933766414123796956608623730388461921443874999882380733834413451842757103636519188797092380595410270055565261756968523267371607470875705059391827857529772019057652755564909027270596931902528323961461027835044912909530708283130991228420626311703718529259658540900030075082519220910424059288183282789127639747262223461857810627692651839885846889688799969357724291514923397351122053708550258696587271232666468377754442455312279888201061468420387514226252671550382767163130781018603052875977018086862564380602562451787564175716885386560701112608763127812352959760934995121181437080605218611601704953766844142410716925726131544048191159102679786761468853896710409539796738417594862024285821794934982676268491128869911906718269633418187081990948638572944439983371910127189913897196125836043508129719443006660646824894569273725962838867958123577361003109406742874888720524134746106738576784885488870757496988354223270221531092514628627514299700547489268379421213061952038179104629485557767922551336202710552052763932441671239611162427291888229943097216318963426918725691326481434651767046918423131268353002260267727769896361633433617130813860437784508624542746873311033882201192735232504551533370323852909162957055595141122398906948657715171319192734109126138640792441947052881185073897335208037230839952950047129189611629025216709768415873794389005047311607997995922348442068903013658510433992180361523041187193237149429525522938914344395325320237403785855718035383853114611959507337846749013651587922434915296007307755206614387522717361465420379921364401488574088973040394582041873711882274434767359474301266283430805468213415222662197953225320575527441421210248103244350597226674274621558976326611390391783486732528282580334578353688899721986436331445210783237503491080123077332857139302630310533823974404374586309804098680260359780300658808471022282815256658673782363815117990158923050658515579874095803861723964975511687335223276216000060432322858353859655804220736838191419343204941213822681877935796144914353090508017600630154003352769709156328706129050003509977849435821426715770728114935632173366564143803939281175433639938846479511995785563519372476234534770996056312354592208655037303489036519107033812488512773253274826026018752622988824909710863016327660180257613285538989268234736680829049127724117015810932588722296794627818075777190016790961817443291412295153247320283362310180197857894931059139280944288732015461171145467243320580517553332908449734332263561110334205010998538134275745187377210608682856158785870787160193760284118113031523990931161529158426726930975124749420618707025254531455607699078384742820441883991365434711060887195365114910067966215001858373560981999152022506372923392267824247102571786484237855374109497726541836450937971972949663730816474440217679762495278169430508924443986127352308952252599559053295442699943962986638344038462702249342997735323636607782222648217647662158725212634895439617897216199795037950473019326535324542171486751043732055175311292096347686266253851861618913539965728257090657770423313085337589066152500483981263508788178542909670686516037427935517344711529483120667471137677674587135370749735770548487098119769371055783201158003550696252543754138646852016670834353983459434501530627674802616128604291278339488666842139745322992398065962063782068839136016510043353405349179087105568007794510782478023456934367665489596147604077854332173927778079425523717415375402094151517275050547609510563800969766325416917908703108022032991506339709555700271190591761263975066226748177786751910116335872605293792958531487413675011808511687641948026167374797522414305207691846973937688831047074294108762524218110973580406195631622570909221066899633667499540855484358880561540216933820897512764854065450251984895929205354137673924813009635403665853516711749656135424602761469818694959050794050327454811049145147315901679341960895209283977649777755942371489975130972725296836418359645215225053286748897421470409473490175949572131066316668028217093086408228331988299654639680414665421917369760261248559350548210803797381039407867127447908370805295804466437124543568550430068957688451533546888866002244449359927083636895989292330834063286124972721051586475224113845179745051506688080201013801522882339589760341892901008386250497214647052275081677643833268258802646212084840650730622523588284509540422447149894992871469603988627359261441417889628076162602362822621217972774678773887610334903790993100567762810196261122172580895838998629774077690965882705464255158569309917720568816953555742821652059942362034110986331150420575062842601950946168028088725787631511104246921325204464864421181455759789701936705797606740421708440641215134013146250895320276048962395569339741388298585497876345409424682490324896343453743257352901526969830139556614902836358424086667177863643486222960382281206386817159359066605908020207185900061609047429380821602777847022847468072784348791654287411905941409224783945326762229840000158758914443486899850780883737173273875810200697963689314929966591394285841974987211071020159192892052852912413923254765590146506960832242029080777369334952746707912950995639189950810470651460413832852244246229275659879368174562856521040841292416997071653329910590700182912337879253023553105378485380952420211039735415441402028427796484574531064424376333802923565053854183877138492705682530634490300362316186586792602249955496398898486948974617653829463895837168267614411930921326737087437559952446705257473523822354386541549432551983762116032380554728041360647746796958277687873465223563069603806917723238937993854897064139623428008190590163996000565205942932151363109996337978766372331131065648004100677978890446059421200541900555184637588078297160868045210005777769401042280060514953181018614309160563010678156646342183631432344429796204064892148408540361757570250030659920238370727258340582556309233699808103442312337822449202379007663092011523583323744440774841464273129238239129686176298044747217798206079653801467886015943079810728001658063788404818323326770209581215430997725779715670648158373454523305482652769340595568818979099301101918191687643394819745941676811196035612209255327573020906957597789669518777646324023432181422828669990946301441697817774578214118788743690014019478211214975134076232225315837731256748529033332187616148713393599445679226980526727908016205756561818228115687294591845876243040033106916323937447641127696759219211981652830416528907500270178743841790970892932178165933360996988089802608248796005461738612888683371069671838889821878687353448033486302920649113365830008069811300761930833798088269392695384654039451596880651803100178623282935521051788158950252168418744946599219637538310766428658184288096573991917353747542737186089179992726446270032585777484316419334906914580799827082171868090884006255527698644085786092271924898205917465440434677693090233453858161188012765704367513281001464632094472366216203318569149190910985657979960433375635364007057933379366840215907462718083054618729084065261013977767032571089243161833705754873923270430879886987877940162946738224335098625656271655969558715075529202923415699018828017032767227131028971794785944628249973932758833093944620900364681573533690498508550547587279937496297697268308192069803551581205522405152114911959960552538442206175492792434597677024994687860962983376818951838296560359096392497160316733798348314591612258394433749539295955249060421626968797033192354917250170041973904763767086297943036496078482551156319510791215521011186044248636196229395065774207651488931076942896376147328626972093801985247723720514636038114883061638319391091767453997052674590379438165282179484534172465556951894456667285704273184634305378299335997656544526534173311407627778609639609241790450557454963220040814999296536699097824039943695752158240794911897381527756258880842742261295943410329514795281316122709836777916206214727168256285708239110659802989373937354140315001291662717751945963072257569133300820253030430442466524023597276499846074968110519595598651038354081855069051497555217300206054574433543110470059401225183457774756131161850918894043288253431991054265192442816930791876982759903303827205364740443773582912748087619897463039618773828794119414857309020905232105423667224135798627864913639378932468124966969540804257255481917971850261835162009333739410628701775334885108087528091504651874807705578650103527925617039024423159097458861542834520653557871831189068994208292500151773712793824548911650485329530059410862437642477109874334186986877696414018726611023081406954942563626377035524289913273025041297511200757601983062306478804706958859080197235933337880605156668399319603516829293730288154815370033611497059944039091403375389775060600478273989779220266610062141777180014641357101903397582638882541750129052847887217494413231320806922995285093119049508444893315597772588183286804368461356791921247795749229079887419547584619688485923955395764410748652507269782025498455031097968078144132934230808773290394165992327479540518952129159826248445611938476109411822826486892798742378111586107019991916281425597265168718276467905232036586541781572739188741963508818447263060149963866306288870589424792463219714458732545256784629491961295157494140795200650055793847587669274114221956797909002925699891621755959365002521162586543150366461827154476470864590903865396082266432374748900641022989788417291541839022433266640847710625796414746673125468009949357931079154878887822259657972110427406006000765399018238489585058416135526333861131899702344887198973356844463595375306941844378997874551114028606933528004809362275200091807611178382908414466329280744686037791997684456132254518377373034630750223543579382652541315348003570539754369737956293703892197183411648676086423568567224597583927932704632446975974550908976596612719529642060237717505913016001178720421661188884928934406889667593000535035620524961787532463326899493190687562881327143191110528347226508162042538198792485907519104516999767581430013315564437675716829411753354579160545766443084498430664163476345168957368699683638366541805210960246399283284478665671317297841139695035697565392322461342324809177824913656571805807758473908363943643038611807783138199970069185805606917158573515396169965001656499763922384665813277695351119682854042488996438412839113405991291880479543627818760966857784841671790305010032527689924512654148769722741223266927589707820361752948163667082260978792058554344543761064377681881770653241628838636127741130187406776321424425066816443225056334453597843411186928989092779470177690537218311993310989536055072877410078359717752990926433826266850157642891638160235389169279110025696021348062503365045068293072951703963787068130714014571990886717912496805656083924958863324207966285175941782673330270393088662898667066832587722395699556565172416870001772189558474026251372371395802329502009060014467252865030834823525623055642407263003300908943998335998674198938828224025947498965348755665255165147625977674381352493807713542233648711596027224852905992358898814066704916817487435581879688373289621696540135181920423772349967578691823103363125978563263056286890468355203999111558605892186397539377746538031614921979175353574197480185718359292489018129383852719254835407487325969808379461118880366295864226489747075353922944091519469981189361698979762093748954871088862207711310754616547390730372969366543702328745642010420995504517565773443729783504975823083591617362691910129135737342369826724236058925516196209396303302994120633004092825066102721158418232501195105411966119460516366948762831564568922665360059711274647372924017089116002607020128589171776026997883121649508567259615993129106704410947229142200229665497246139482732961235859016609006038653873634457312948614996654019903916514881730038810812672059631249307473007491117846032639384101143154740656130994742517103057498585799395987324442847880770322356483309661098075448155052043708191850120590790285368592020812867150580200214063097028385655121679528787100695938266882554303869504156412681705183310108209651296123641506350227478152675635433699001420776592574050099979414467953931906703826051092102763347967330044468198048917068296286382214564765759935521533240967031682646774219663495255877287550685487322025162730828681395911947779255743591315390761615483405274081317761089069634212263345024495441215196851746562697076229159599020239513525842051218241027485076731988459880276042680521837246742822414771603995590123218393739671178740106271842989926397213579314983385105226571947988811580200406904320419029124635445670330682744204308872334865157832723139028677675319296834364868501024961533983276590557649522500671085322226989449714067715809785201037564496957333220896595608977380751466349815815410729757601084205329158821807097108299883933427424572330206500151977050413158732140748184033113223265594156185969827340191431181837842358679362850145700396890220969987170779852199395608594046856715606497166574048698080679073606305865909865165292719390612133369686679434520014841397055763650484828547582352218994289363389966328906307776425170476254719085125730408083934207897245693728961481006104655480692356233486530502846378287583961361269343025038233346807951248874416139741894925158215031522990999608238525555032651120412068144299605050020167556504203979271078695024750659228087583651106570840292495729714769368844100842302923038424126362874712516475565288259089399350916768586281963330988664782673889065694746877998569212035168936783410399132758384573237125758969703509494831102194225451885566373377230538889038278829345562980314656416389860218650145401270587372504134336294003858356121929309551236708317523680055038001278732041076706251079283158039955093991768608101320247044456264075719491286366089787933880419845629752446797085953223061507052715939012077434639416951851404196701668039480641828988143559034733541216856258471230479484951601002910065179201708106760091078096858531484534583223416000793977565570720277328925073111412763887823250959170079172322334919519546898059019102137010533485253705660741952669090297577950055575607420699949445300088566699401655645862240263227338684266018126667548409362959349493722774940461457687582368344820816639028105991348205066021550429323331303720410954970144022309713923302903797388301829671250934053976546458130273276560529030515381015774573224991207536467279407748731732494458403562071741571599961787253858683248643127490266449647138013592672247101079104832713217492981685694751652850323816091377259906797525338561716919041026757071694623759392077293260630641636694880474068037661904004484343350014829860761759186311699093053816425920601748735595532651630788091824481867799094130831135820460725008414640904820423925436748815449923990827816922257260240350351578078716552548289710438425987024432148754503149371234414550064980640375922026993395402908178193323690302028919087013348095534791616506796771998895306266436303160721075722726404073390072767246123549770444552613778411695552366255922105060524766918714502324339078755411710072593805594342588959025132244186924853173485097950222876930775177053878885807687196535384106761267714160799729411250523614960947458922817102711009112273567570720664467847211895498232456471380896775519985135845062297529482969054350830116787073423795532988756718896460871068415052717358548147517694739286866401231727158632542503056875461903636393445259156372320852239259453607369201825885356899515845512544620209990661554990066057464674702105962222931350122655635855962682691305690627636391537077465566854327000551875750789824767653645545090996626435591034449798766323614369066124120187518427883287436938924065321411446508391215119953693797193722090104946988295864226824966949540802422341126589270700660875321807251420470747620321500715500289581059355010358082666568720147737991228158517921250105268217998839844480417070800619777194322876217097832236916596666467506484095486780615850563677354827596398256865256842436237824219383345198308014731876195136363269526574184511584120729283942393640518536804534065434386747725817731114480129775501220220715003270654430523427650629572214420083353476663394734559603904244000105493333575464525136341211063966139547304845254336879616672828516156855115547305964762053459669259952060245982721976541108325852696859299173393370951049637397594460805838303677164682128943084052002126246863246479922842595710849961395759961454943728812109078906816861765660963955059645363224430668500880781231798133075645564761864910646115506048992019047665322878857996569926435111792210976547881493789850151387871105182198214793951566037385956613387353940514960091068375595203334316589499281120243170558588790925614311212521380267844623256561981583879723555050231887136272357020562266316976022468080925931755203146717037159623376053926916165209504057868617953702160352168611650058296984444580901866255820956822744638730757990985384504249205642850705701325561388546818675489802496213066770233320484075588899455499077849687821547855304349972118494483910164575964378138681612609047321336037528640902571761309463323421118121407189047037036675441325505074495519829570401805457902982606258176196908191713095897700709806600634553988335856526215820870116771435654312855349582901016636622307259256864515431011054884104909604641086277071965792710509071662434985382533181622398281454542945186678014703200794802726485162042215857237400362031935036375030582345620357698197851174787269082349335751819377440287443415411749741285164486164420285538306967664463097429875481415912186585176890612532008787933853302388346505687850209600069079464216586031069335006213712371475185796846172862716857886299808935484380905517083465386228137460230247246110627888261339160673249959830425957668769514185369398354266056976541588718375798537860051707986911191190665574854884153857861929932490769555321930471778781171522394819628761227933706059956073570385692298854058855075890888613595900039353124701424122952592791065974289716997762177147935772375332472078597545048366031007073552913319130083989758234930059234248673420690893697615695346540444289101509590830913646148666321294399260489419846720521792940242519083159542578222619115254217286646640692051905401227356929973911069654872873358640015076051518130212111564580651489189522370169231674805764671655067193390463420740648315342302505513446709622018351346135716463268446058429844084129163722469240205737146924293232064354111419220335327550997790365885613586668793879483372418266779402148642867713850779416754655960442197366665716241556531582440411086368103770057148776928527271524210456755723657816543398701828635608071990206225496498463125024422691995999497857755658360273823202813330120823980957438495489584646917101998355954724459173422299033318002103167643113449518244616195075979987597051706288027745000012552562934460136348482867944429959493206927603415023662698652333770295935822687821922343244664365833817677788172462906033413374262976822770226571675331861646611079180239617014824864964328587193090540385773972186991058134136706198227215334882891801517960360354855153202019254893446841468580941449833101855459140020184169217497814317345128966384691779282137352223650716342563202653672807881960610254377523859848196878313810932006116158649852297131526143847118898483366633975477614165629765586268454270710825021820596805734207626034812874374128308851006958898946933588054929353256141647797956494896822360162656518710962672098429372382430220550649266748196902921340562971123027631745147450200945829248419212586272186175261350160624106859126069489096159389676213836380591448865129529815076661063261740362414511424364362698886663148382496439484383085618781793711002453030650716990214048323860627325624090676989131669949895381610479396479305789670939141185457205822497773680226747360996278825223201482301184857918677719205544427333507397502963376693022888231790106264766979044865993040294399439744549716056530586434110713924396129690128027909443352611001142968233061522660918226824341213221922063891284608315757321411138978104375320784788040579451582725773945357324231108596437188409011788132864133533818479484405131822740231812662681783236639821970022660075272654190157350082767501499723399746129416823804148649861698167378816275859986074880229407301851803397820357517277536507545923298860603606943823643055101738767479382419251259004071237353537222435849692963128545580031489582907420050356877241270117271869782199391268793536708518009931663492098100101715001362593077578057189851450268884640918039625186198615518669546679207769030476388903807469707224488019035132228378512220482695287946673611552992077342896294741784774422220400071903954596244108582167812266942047437797312450959143288176259494023172926931163538373832407575388727042315725390573962092358431481844176352714714126438272570846351263962248998188001250403566891199201055386881735947168797946995071279433747305249836673081480142483843976595867672479351668108162036045627205689545203174990568117619292646586126776306672570358256068721019135957689180226736356628360648507648760376092211652359168236947213109451132004516773059703496114124439459770865390989509834229218531090216709885200093806235029116301426967640477047292015815061240667118344120443704139509421799809102568327717628226573392941806819637103949132531450150866859161369793649357352400927772007300538175957236939043310822684195882741192696872273790247841940801347090440912139003376357386148968104778619289961059311402969485002321097226264144540769784611377935152437270849725231419217175153413286618146908692341576607154893695361919037939426162318684646802950423168011211253717786322733143906771385597201096995502024022344271788140512018351048550439934510695525002627464403520510714021704319169324201301068203087394806415140482084170569032932509883791613682544636525291314734011554494015981832248553563041434124252157071846969747132522246267290533440551230256124802129733725956158538339466624498390057317615368525734628927018331875603963671675511394187544117127529936997295669802277073032442395422333444935868344654095360417649864878194566814594292645093984703773905344699164658973995095737409473418235203415305948044292069709542588499675817968504896004858221204008588909848797829778078911222195286226866170733321364893221470202988898228442276046142246957186566593329461853972672169298963258151340441781989930413186516861344231395023159866950552950970926511625010054830717500813238575420482135515390006702216529264544140601358377572845754283011890268714022714437913870538640468257347283134175179089068419558773936647771489200918780252841371818328787736765418006079038642275393821608456821068584070290952562091948247625239544412468020428393078777341457367219751189688356086878830889674817857209134562861279784425644966675792084326072303140406079603630044077120385134385007866719865384823923015114489445797033098011585114069024493438844821268103111719981308083306004037862535553078171645406373450519536999358312468369492985999635297652847429517617017838193436410033955117846774788479756947293695832444062561432728723532599022267307381260175731632512179455779034088592066981874492793692783690269084555105154181487793687849635522423633207849822990737538617305320081234825713964730360830080496183734670834144787690977091484340370255875814928120936990035733564215631628560486470504391960760451725466246202705024333556683494182243370227158457663594911383469571003559043314819823335143076859563701271179855814936077109622028521131784016763097564230251438245177755987881578494467418889802869929261104729314941219222615238146463069018408700246272927102273812597398751134369231809611916996826035191254438023868891706212520841367570719429643391852190206629157877324522804121930542988419327316380369940278833518826199506029994565370106471567990486487886292867252148681510583360036810693072007706000978972921355642303222906665153611283463476057414591180670976486542355481741082450285317977364880315230759459403321742161941718487422759568116858615132305948986702343983278830773799679356527947514791754688416309022911166833516963450305114877174925334285486840842619824895692014743587171371642568309902220315307440191138359757347908986363712174401812588014471876293071880124861241891504513196558936622419433325635620140711702531682025116597225585125444733772830305050337597354696541590516124224030319331269251946761383961411128329403720714036137894170812276315162795635823824852384392943808634102507778261180354181807884076447791472772445499651579741604340876348369285027009423229980740631709189650728498983483529991832780456498487437362612808149824575703993796008061847500891564687035829380388772936992490974447704732920425571220560158242353131967224129747434282664997207878435879463903379374829034211212631611698173693551373338925677021901501795331787217825363712945040777642707245533395343771157159632072970646417572922043108066532324476606150052244845942068292466910528942136697879680366602550393637600066127252261635797481979602912906215914521976734669614531243593779931641271971993417223102008211838659335474507105889120139638932753318923287341372391774724066901350494604067276988218161406180618427705430727458579904635657975400428650899578083636892788639019236096887465353134167061432706894617548246370782281743431714442867809107574835280699955082156783432091356598381565604209164868452682000580808083313268989715705635662510817696285575858261973596057402916638294971884441585303156278526879915515696805366513843458637172897559097847257480034183536750975931799439351469242994541980024566143414917226973155553633878107998667486025709446152249265843405493993931846553338510629626283444166725167209976864669862734402344602672452306626656378844824846287364858225369534095232725876980150572675962034691042001435169621540982049626868373916123539944973604813435247661146154641794345912485203539988498519500718841863730111688021666325908614829060911319912149134281746355149781379653670325697020154846083773851480767225314344131716663223723922672706352190506222618573839369198222938587364269886857244611300260701145066782592119555791048731475300652114638678482912381358687777172908519673311173947590363022428394921734120322727117779510958129045273495588658390866630252453197237656519722371009542187792525766871890865494967737524551738700041477655453739723048635195853725801600911857786612444204706195029716025672709593548438806626616833180304966714203609042419290162236106937317273633474488653966885826256252233133566107258565953315942155899327172752691737676180345928583652608149403432336029224295042604439534404708632359460918632972956966747365428157525766589331028711957105419734884308985418486213178034325555266892358248933901281067001772742354040807868200813988180173034686740945279302079194080872899317806852387926600412327637496702232172322191843626119770597256692253728767808980986134779872879134276602153085912905264479608072871593658567346256268314379696665343661612488135272983462312396890575771804825963742796280119613195306835996933279247794607583296388592667890463635048530032418856969466089268709360940924398535606130075180272356684532945467059573849308431119957496534608330971949074597484723172482981391555022313321188206682970738911597837467285327241440238169511417034362473841699421330312577540809027899873122357067701192939565720471568164162781555673856076127942395921996971028362680482889238858203964001779467962994386248630877298036850567368493137292846423213776814238860797924002072331623653985248658354572352685612165287985150023989924780522417418530521187321306929432882637286205175426167988316859685249398136348399411223384196380270727005195537021108811098801382810289760697068245090552143372169288717575044385039637814873656294535591594781145374248945769886230568649063409749064835608350142739312911131885032335092395912888343481720855393291705930735887004274292596526780173442346478949560235133346713391994531514799528785916167995924435776475967713712432147311520765786320287423391026279076783484734863306537595628192603513604043221517422032722096380441518272464556984560079846863717562711424279760344861278223544733839172914982336791199725304249843621356012784211941762966092017610986729709281288149440940411143844649298995698419660451914569535348508030621690872952577884174727787198004075362877787701299409297663052441481304415533320943346041108741158017565385025504721503646208576997532226827633748865187007836500500985147944412187702981775704361704056062007795594087980309298100266547062162827807958386504319773250413319536708582250797386334032950157444964243759889416044481952456499707861415805952426757128482922139203917472376126315147613422737537112025627774922897624768278903477604285225974563334320019743446399391542334068280535953722226515341796400518343835419228418967961158319217360838935346167057362601611064742537544796240918282939357373592511590569621619922180439771685951209451820837305496239582316804220732690610315552527999808954707617958187407113573080273698477548819832991850205083154032948308146192665014832649708253849583028049314162561129650655111223087446648878510007694286467051991890821392741135030847021223613142065949922007472444983497743541158918924214275786492382646499054212490808731043782195542768850996338461764190574319340729862918456097990883880033827076201563738379747596889056575531566561611934246199313834752338043005497533149241395531603704017167096996689683916951304139516575593232152177103144816775419486755885396848730685214910927483398221289950866866031933710442581860106383698716725930090050899171197659080014006567107311149780959337961076562022082032859862466167710608592415242367229867713264335516695346849872291897266178772982093454493170240841126787547854216019679908966181047548006872086797857325595279132767476880127417056350353856545746531380174884133441027350048113216025963707174675274116150013643679309125198125142633443261407688808942412321402787027471546770775572411017940393712075581302330719308368133864092990815672092602375156262436906752061280404312771143110550765173855956257263463907861253480188464232138936184709107721457043016175939653759283969083355141744465929250265338917523416404572133796960810955612189308352718547933719441627982477159680344121011167235447528580382482299974061663287636888327414762768882250980476663537832221442498852501452328661344760360857471844503645960761521397730547279972653421172429242136855696425061347066237290491825932139250934174421533133064777915842558013867439620829463996491447936905315127484478955707248450675998225876044782339374803947142792093144788238433073669535834766254668496712852282918922257295529051593322588475537472334515483027128137561721421308371002937051899575353935734553946993070532288895450922894536847930851922565658419493140285466837270757917188767750415877002223843585560086644809730358926360309545439386842956671985580130677619303322234885944419765811081440964929271537208148234197291920721202855542244146599825191585773069632042323515199199662989481476699296522973799531887559678516880240169711292812458148387590635798284037730315721351650472149629486913755537077584149914887611227894533844737351590079964939548649226433079659942249619663973647043024164030594551503287493775330260345926122029881047249411195297701953247960388631001852539424558801205397328045806340262788092211522172876463502407210334474665892262024275274684156805837082341641334391751627178064805575405258674689908681310188831901285136480330779170972914271271153878571963130387671018791122577500929019961788633344084462523539234711240530336634099212548018223697438850629467549152265152022195418036902677340542936199225591978951925899618934404464227422279238037093897643650350132165024757970044066646169918617988022472899799161530700580765582207645644951825560543071445012039940716024442854845241566240357935263273986192803054474578130432114191853830660310063550064358441819702779343552024560901418327036730503284219197766501006881293180189913762397695064030252421056002999594495815233489844566102089252431693531607468853479834026829007761522073959359923579314799063961578201290053862929853627545869608468659368608602678030183742691857918262032145780047870108057320641571987138820107035790606707091406990993077496348017545037395042795163152291703223211104183160634189922802134681894698212270670884021974539396272210637831930401382827664188828092291654173868063378320962049012316030041686321308071750840629393526115316631693837233375677317525589493090311291134160847643944641779934257440625201798196817152795466533685342257893920918372690361796040222319539502823987932105667182748886348409817208234133727236081175065722647088464935378642175714309943121527387362137327191831005037070417207042882593240061882763721296703304514965003287925806276993009174181002789942727511791212076680994841087558373478870787877991705357519116260179011421866490326644589072638957519453062837781890974467798567893665623199608697262861164041187185327725417056979238782514309026604962086359938679785011868409378066493565009314524852366765975281814854134424234153772325138497136465476298959659777422740807764254371570377383871118795741914189265494916336768389442695896633368525048664536869432066641355305006306576148420120933900242103273016811948846100252630606852636187373444973763490590291328587849758763334555130403368334199284119250675315946465389965250971888485156706330400331956141175433663358700019863165830325505823602907428252886721380844414667024672403203582902197611035156453612011123015236643262003174680348062340226733955711259271002556667576501272418344439264339497028448569162005822440820178857679414498728846805708615242718170557892754017923842524668378699296616095082127691290692643517996812010413928795860924946494561498628559711473821547004163595813620826440367506790274083047290714429795015640431798572990907872557497290195909230872779421926600555804686779428227599977671466298066898088755554456954448872772293495997374796073551004062013182500993893400318544667238359156462283025105082916108974323215985844231455172111562271843397675488527956791638555298519886559360349216605745088108910309103547627271374980133285325280772689423664196857576400570743540179149790831962656902529630288393732251048162946463475907722112882513873918845911743172586568273971947346673504322205181870384126126468612364203331662386209219659451217516804358729295680680045157511316656707271207908468453425088454438056483480463345654910611565705955349485933218453795483584494103936516936272190600883316428042325443831905012671622381084511759911764255667500401147900777894503446603890067494665500909416910440555172004568687939808035126168091078949599933986561560899611317817289447952783679383783640785647724516582046718166468261292590513943352025116956943004319228491591795993234691596838053022622424444431684875694855717415501714693626350993531370802115001531081678034762710561601541918372808386158065296970425397033923019330944802047442969913334567641810242895909745467557443739387549064137608214710435824582134460021896814689640780202573572352333402919063056197642490719806548447873107360525112507519892404430732753614370998250484691282476190371384402128599416559691102112018583325099202683407393985393513082915305150281868727960708599350546554034907954525054278093202232245307173945838629377691967610296239689147197014807631527195791046004718085266720139281188840284008752945066810608717211280638462076845301573731318945673961672852855165652189069508521929715518050742426165749050971185164886745780699408744979765410168339369033962668175879137341977000964839798195772639391950753793069462638870807324687712077458682100388248817647477093187695581558654774311601720604469718524481181468626980864516599277252563821533953522384637318752767418450199250943028956914956352281386857555270823068785866415373016744455624580909006065892834716810820173402314099018043102557975343042506281188352579666870403496322669233751009973930746259499368679861300273678743329963557401677642816461388664283794768114677539754935604251707222629096188411503083399528606203069576731526588684878128486238372166308968428844401465768612331717426147239775407501595383367789728538942383677693446183319736115918376531253362194395078221939415642005581752390415701724709917062987434259262700638631110041277433617329635089688298149418632492064570911104309874829063352105835388329869936810174457477066287339280329242531011453489896119337813793234323883372306778323492021233407301559314277360492856934908217068174520361080156500707366988218427801114893817329684175440975320755028629710329868082125906710695892239408200008374518269482183940525834713156356008073496944253231612617589337133351773016938377929673894490647042516694893246987239464009038302184960541177406597408214911954744590141570112541558136770497150757019562117747592120530763919806569445965765754585578834232472321733563891701986873847671482976740390701346859220387687752877993915185604114081032922921797413012223552510499359484383539862176962489968119453170626675961591231306594120412083023905293143865706409378514901965286484688597794377730858019761837147299527377822055386126311577853812286755439831714897109319176616461603870892053679087275402015273867525489270392274008409140160495093025049746856332128686987330586475532539728921115790176440202562414709445921490252665039614637923053603768723617988834103127342561609379835902725631927895594201789522135397631769259369552686646303276501894728749133151659294222579105950950207742931154809815419548173109102427407061395003072031445595116288758862625980819927792724311220937059776027930221879682244158046041582456425584338027177018240551407727207745342190588085846595340443720688999022174993957739108657429557776639210555970394663769904404574258025741965500434670466738798284158728109443560639197728843081444622866851875838075712619686887590242171956978979147127744271516261874051858866239283211385882790481045340345006819836093659777241329461041721270696079505534631068580396293761067320702868067888257707337139952569237109091722113164281465372900313951594550228337665809791719788235661883452141532293738215955136363753839716378772488999257347046471143227780887351481699928453210106536418119023167977216766515654412813239851221693599621646311107935283970218657691660776712386942682719980165758652719501332460176299775456868718933566296001268521240737026827991577922680609889420691638507911815539020353580100148261962668608555980244037088440983731836556923040728441741476586236120853663982482685711928241091345807285908461740700006140529949223093200388908347766053995729164308789353706359183149597464178367235173510993537747660122714095965665673503214220914723677824134385677278601353032285265967496174680178952436110347230526525576964506587829143372870472188949458242018562438682283164789140916762135865706352934298105304043447897632838203494162899970456471629545872555082258802878601811539266799593726617598223097347523335249609740501809361435999587850660051850626412868851707262362531328562433503216926207349898951857924958859661937087895192447924071465917173811127392277023083812069201120894975971770779335790052631555700886822545200288954538861377058409675255684802969110797810869620161665347417437472156757224620648527017632542337468672884470571628237535919265680295772155641494718528470769072793256936594032430292927178338259237551714705946988767319772812459190169419350854842742739796915095543885876619824079792880980602184092659738856052515938725860549267491696213111973298040209188794916352471754783499916689990345332092969263256651778561426881521431548130910977812701635586084721260199345326070886450507916500724627694210305453060264092855779447187457766548513161693970952052582392598739421422663506617677028686268924553325866932121506546807301856334710517700783416311673397730356657545660851165133297120367259368829002989824294280851645029833103946954629145236597732204522221536152816577266812077864394586532583511117880248896159192811738940455818046770923906183559046306695893581694752361438620971859796470527109286335080040155250590603953261605843917167020152320004122576944669727843564882975209470779687621918719667810480136920816365333332682799335481943778552074322862546799346739037322637136714765053258900818107056803988144339248473831445211441383669784964385669428039974275096434586529820973324538664490657882573528500220839423506475521262276793206568347640156366371285091712166602857628317170251768358024573495978663132463283380929226681678003960971846044846009401603905325952938385054545186018131048794903217567221212597285797271913658458923842409423152947465509485540500416552603500973991074329304453291078842534841152144811564200550512209812802781282609811525428668204459209078744849335320244820647986202573942440361337714459628401757892146362875795862016459797877786115323742120309592953187474097182640815332181890587587219417878538290877494134586800805621338023254575692287882565783536294078710908505679698397764649768788109205947117088444008076935880579063849610422821032506736942945298797446569695654520306961152959937625317443789895165496367518615451217297220321385969772172900437276786175231023724370941726000917221115216171018764236857961147366328533400518308429779172452862115726647870171972547655559561619600716390135984621902648832913392558169863105233381634973504094471077025688151574629418329640524314732739604742247838924056395493663221953287748640377213506566753158993647879553558702908107194981548862180629678762169290362795217141134741675734402878616429637853479156243276124702949927419934740488405573981831298369094409762093446478692267233665413397384166178587122615852252276536442214927632969693619709875428742238306994452293882730714181178111766905536809511729938134165674688165000038621450200561094147495141595858142744248983905013131999863331975088913782580707793037037519312481974098592618843906721884069630293035306464299606697797098528912079723188393511721198633262614348378642373756252241097523925073985411085843674423656515988300084085685041032751968885635127576591173817417108074677189217330428218244241317294085910401117302544277250897191452716808515608423427657860252321673641662241416664063876185883768731931309309540180020612552286260551484941708465465943950038508506222346379299338071474875284568504987240707334087106050436774009550820088664177469529598601712735069272252539934041369065429468962011181103828636281203253007243535155380542967184186612961773985843377453578199715126661025689743678646128859365751554279859367227413517891088391768255652742449966755675946761856005875360852162352920591442408712144747376537543030083298221716868244698692755223141397250544876059472567006343711640910720817854267122943985044512397868556378639322131790424558828676645252683976113307186238922139736198382834666306191702489334364913613575048637974596688788160476062688501966883875484384996425222923515166503289186600881264165845400832334201307151045049823337979528658482172534852292945710702143427225640074795895492287913342165338180088533064055563605786766292351296605777845585784822227859939575266641900611714073474333123316619308107357522840365801930213623565161735404607769398356468684125727100630476998580727154606638997806217940256668938726345221997780376790065990826444763598808069411092867636430925083857443377101558001406556858841829939328836090662773750973875804083524230069743779764810427778938483141253604672009131920843681771218229428931994456579380143509756359697281621453371613275070317664613646299404536792622213710749313909429513386506179355175487219901917909993074673451713783938094759639481109959860758322529780528169389661322675078944277638327238725910694806787063822514673549339373894828533665024060434408166788318005508249613627773881827150722502603188118729017607542384273608930455376565330674211892596051793779522234144351763293288960027058308851045886287354075271037996191277597828452653510214529252857393693782798651729240280045882960559152573582074632930834899506063737830489602543166406748903506542074597688155211796645183296599104820535150416181416936146023738349844242990573657305554561567629549673982697020901911249966401308480363932765954661784270300671507145474041952353966051494729162480374083045667356040728592196055551094322657012209244927137767791742905060691575686232175691969303292327709160335024025388825991480478946748400028367213117751536485711207547065462218003244862800378279413063383349916167277730987352112830296574025094985718214803810590702444403817856400563857858997494382868751850833838304233500309879954468298863144578006378391647876421235308274326733252044245150232745952277480802957304121979879950132301207109773838147699604786053410595309881496924306057796430348218866355566134791910084493940430222013824595464034889992958515207941606523770372880331314678582828493615646628899802641156636964827458372378664734596864054180497663298449462932065662453640031703636783799071540544409440906869463110529935799530582114769622031150892290193949313507807014072472909058110955993457503340885299872621105258048280347984814413857653219296447390398781445776174764934331587460556538672754393556844461181493537686713264544714537003993794894684141307774701479495024078134030135951313196393602114164678924430819696399826587955439248839635487914070048099585814839732377993771267331965747807488640762726305464500949393395592011322318870570557836912341814841084061979116253344534806806475424777105395272973178737400486802962277889886620410455598868368101347860352848459463947474576813764022225900534963075914328473295012082687464991112490152538315119329002088836589913635184245935252202406280497571686554070472604812066291298916678488721732869249142252578978314352298633423574541807010715101415209849698585974055944480073208043718457750908909542395891928127549787223011557094432256031500045432605867171280196847165851729773483860281769133935739458453174786984067227159509367799618386707897808288438598218738813059856256325491470003943822291255344491159082445573366400180588938582549045305349801852744002615512414759104181793530983920314199801380900683375536135785740736512928706719387949160312796655396050029770033794768582509264119362956222422185023733238802090732957507119349210699031712329974297333444531635328628225015968223486957084340612390742793147275850170858184297853916764900679192738319033999793829888763629730855574633753064252799676684359298192198406340984778791359135701495133375976341434812241348137513048550607271404431701547783416980250436173175990053633521840243671372948268113300388493490036443600285355785266189435675089549550956999343529960751316773800655677783078129602667778370787803172822248170484653357683061601527819844818482856882923259543017404043354672065773837917455515081106973115821761133992865025909311048655531139835651170280273079076768117773467070860206948943171699731605925030623786960081158789011095254443859657881748125068780266181341908043446261519388863292905925746674209612613404293405237775857517673123626326734204543802350456603018169303971519104935031719337690271844013355737255328015289680146492680581246357762862346757148033485352940980533100098413431269168899463900823711490299547436087129343076124254746743778884873474371845514471792278603965363939944437069964141728001982641909723397430484146817221712576995012125644486486777069727095247884404274159935618901472338925274588104466412869995866957346071256085794483452980954718163613447342030184081280248147471042274169988050112813147052388952552548010790088105077102027451826326714784105695458410643539512287786114578725963169899651720558329425355694788192737715374706123871422539940510383906415193088960362778428827806093902711297372575467309991248306894628447555369768253745730507879276985854843277508927246430369520592307190675795913375279271369161123946017179395483263481416950240962383801376293604736041409817186757534067936812367850502044390593423445978121358608762376101474361382646537258561392336387200831587044289146595769055644091493135719039541710022309508720220318923613452386718457488383837472359839626821653554491053045750464895078949404146917003748177457459811069361263815677837438012125203214277857520891419904832889103619701967392407664608365289557248286211001325750879452517718215563668944539403332413903204536907226611359612468452905023990475652126687660478092511342886073286301945925226167644467162663390721004109610911999457637871776311267436262187063828451305478885764368663334936979759416145907673462389780384653199502093805552313265868417045795383912336919690551117027342198116892189663414807196109386764557111556571335044192290699995801007749285328295307399446255597221037947906254935427313284982766034063890289794846508195356170681823875860148638176491920649845464676279791078878642795979648442902850355105888784410042933783002236527552839597367088398045784573498757747883416858390525416642985708392978950498854550315370819375487294342952792660631618677865395093658840472350637564604877639770169871974450466450849686146895346794838058700950435029818670859140404825304301338138191966891274541492001296654773629321996811664089768430281996824523493406060926790586463173583722044003770672701736124874661728049820162494569790765090822399331046809732015153336364667477932406241903674079777368406832207952301967834041582308297366062067466649064244891352498153216680715172892051672169733807551075613749011676645096172039515414525774180597669196489182780257841668862002634962016106801215091799770208237731337478561749411789813639031551656532724426928743433791284916694725513186469724608510939012642646966780181196921552969235201165446541314509274262111288929755201283028738165840953237446431244140243122237678429752555921254986583113830506545706860148280305326036754016551092124769226413747622455435308938022254252625519480135987646588007207966432423796200201718977132390996050092620179728337783184988263663383934243585112272430612373746322215885022148858609354640036192379230138207306092720641500505960587025674301571432856795653124825047157522483050616302576576959686294555834286689721038453095817693244566088234499003670966101985869426906898873363368857734867340959947716434600607890761705565789159800337318979815454207758455520304434584135095284055818455878312733532734158167317859207647029711738871100521214827933995142227981202240420398709531785514722721499096052345595250195691832036107464757701025499872544906356159201490197868057593318876817344375557669612272946979776919327495689464177269471838896164789000840365239525178805941110936358409229890094695149310722769476599193741483329603229952794292331377287008809865130111482544983984826964607884392055624061400662773473031752778201748033675516811379731389191394054498725236684712002106048340638202409139017719604541916247031923841682618272686499814385512401797393724702436756553542936035799868210386719824259011109738717702426185900401284887381021047145555896492064168170543103220660933048234700447600526913442449044686178893713023687439275701762525688562445779700094397819571123126149897517065641725640437836362834140856598670333500424000115295738380888257779084469078445196362604618149074505587229028039133368059969021112804069899207815303938487936225332430162353363518417823814766111345126334736287698865488439902554360857188069973650346403944863604301202258212747045508709234264222587725032755779587312902916388626263356082173766427229530858361287300465953362309534967424086811558971118772391841962564105529785808837425547927987969744252354462830008174519521291691163657654513764862405539354945778402983785223365503476352905756716341053301718469034742518514848243110895575698941274435415106113798538471853963764340838779244897059556362954317165910479906021427248349962384006288670932595059474914633522480834407677065566949520676365558943128778103462946366298145041999737572186628737856015400725261332494288817913551573252850453968103551991589666152864350160372891998585694231083473745169419365110786937785334964714925163835717170202755023629312378914377056992462447518231245002978453603372199813520918399786728424648064597290275555295972738167245753168528471864136249492608927605505372051780678424291521826274383585280589240271719338922148847257510145527279679798831461799584098389803691541571288110327066712894519273274263468163690429494372994874287377383809719928817705807893657362739235152283209453435471648051353688556428696823938752107322728241826697283723969479291880067889044918515637152532313409499627050963115605437464357383063517703857890201394307086950582731752876081603386902571051013194055014058506417449133469825854600281899902112675870439902589805623278876849733716081666039617861512407036174540254768827075900796300877719563177470771803925085372247462781662478400849914884088316767146591295299389501399454093968367493338397167025386186020865581721418389310493326259724296058930216307148684202872322129515891191788224984693714934852129283499403863433360305502593948043800296167818668911241543089692415322290860831206650845027799575142545352917511344383463934269348991820913527689183457677515022768430095031224544372160942579329333616529494171562623221548231157559695014759819753549620577690459357389966946932788443375427482416150905333472858252002318943230856367417277609554851764224490496339910678821795646431384717326564726474732736037062524061419656293756501995926991378346184993508443470469689846678267899533963790787090121083341071409954488064934414249356274215213951046047509878711973296395910044325228146598387386255214301235035029700780495988387880962333644644877655201962750978249825182228332307850710244611484941074637072433477794257208055942126429785770784301704823841232504799765339515185432577061041721438598652459386880199260787865620419576836152564165464922302669596012443206352679749872991298693091352594037846799228245830731897892537538201717008996659477833319763373748523143609684311620483001384265429975779953256167316149549160220867520345217011909963715418624048111614422721837218731836060040610476193783454287629362124658120920083530511740361973148473375184403565138984462161091185162169148699781010740625988313862145844616410108676181898109454137787185731358377161516988586132546542791648532696070502029177646767004875205028294540116315307120589787756375438052879295051678037866549606011239295018244348089558815153468124730352490034564650762760659184868512681911273426906196136404796447357205344617747217229907077738162003348796688316930046445983994832922196440928608696854485662533778374909320334256317428575956608117069767922255374674473574909681771625802503047827080415837697000366883694419348276774298058200400138431285752422131892202372750191363264263937830563237394358626917774516014588772189466380055534643186760034777004047721139786563084250334426636053332982175576125375624372566610352199302055977119047127308151913728868281800377376735144006010686062298112595621132960806630101697541085751314492783742396517228009009554835476756835621266208587802971448275418494619128762952850870975196818080609247067542557204220991654766963323869453329433520645815379266793687573528827262440750140641496227481937410414986588729605423554385797177903313273168109561159970978595711188137215663025128107141063104939645626413688503703006133524527766777967422776425205096273658700469064578180283760417715924536041554120571893610043650355416482891552279504560569334528803219682223846611944222341572920817095528465690757716565433524095987852837848145164386790855848314897110153682010175654149504683430893537468788735418059184980862213658676902044265855667980718860597384295860614258158176879254413133723001889157994158600527111208076282292377812095387965993316254041174401848349327669366680127721328166149600926418328830278366677388171177127384461475236842271502162400344861612980393619500647299597918669160261561803379407888529388463540688523505134416579345218570400486974239018145093915282583530740116254441606587627646303363677339243112807148702435612293025516385303661433030098178939006123926770533265499143841530875639107590913748834221874349393140295887458178979169485970318159463470659288302853252747809586527514985857790278127559412757147920142993978930830975508483021104266305713286934396991987020154220333581147695563243912151589368062151402388484576400226085017690528234159649163343760865153321432931178361886120891879816908428682995823555410861823505618321803761792876042939125283887040422106339953727242690738546171512266236124093354453589582547186162647285161762974281485764419472512214940503156090719682158201247221722677369750283980450748883891722671988113360603986629151400559208394968249767466125444469276247357737101511235174904592711202884505080705259591242450771964841926046468716651767220021083110146390634565527333774250937087510161927428657188079706098838159127687754831583455226072663783689932000256239831303855039853453264915770173260485638296620795613733150383396793448583973857412426188565847395867097220400734151524431121465856809414967570725188590521256058424367550580258479520549652475226769068466933162282574627391799474961292717431833588316686506857213340514441528075128522679784742734226644125110968106891972199886098552890040087778054672206615084138407617631167458012975312058043353659486834174978957017876896933574196785722400220157160271602177657509264323914608945061893266752285363787020489028703395986860042280062913794466735765367663116568304121752033169624624866493058149328145734153616105329682621444646604162819951851300961912048616394171466237269665331703564690279123656116793600137226990309061865316197909898324676344197000975683845378891882332860922668571142620057044282194640763692145467635339301887162119235038986231557804187137542371887585260237809643126406234453507552480706978273394888412421960433061697793035824946907229239871934049082376908342318757065863027778535728458877799141180589497913652895650854986615230397913053864539212572462621210738355756858780772859561369501883847511242329883695345044976705045599221127813940674202813284400932865770119333805898390262116097289110928370778443210157958944320458685918353198306102291674988743697158618227764416132236679987597409138170878318604017534150064115190435932906659043993866802108109570502175797550988649393981666304574980405645465751755636545424909931205499125666263300712360827064367374791501067183577245243630486588028360238241292307538076802205791619967003629595574347295523541567172120058445954881022570106164127255502245893608347001520517226390304345127007169006312539918306956052398082576988492270963008144461070692370983665898698929319012272642617649102584049466031156341491157589759688853164598735264674421590307797744089335385982141512678805208155491336322492897790738531437137583451476297452054155400373814739104366803330807359116179099062662830692672124809123105154551971650213481334792199332920243600217529684035473598214039959007266784660059387959413360984856765031005422390829511376846573947603337572878713200370758074732605259484913293986766539655374862899615147740101578177525455308535730115622488010702085015805736058626183456789293839931136957907250606156514451447833560493778568816996638528524589485244016964492021957318818890280496309092209593357161378185503359372534510953332754112426166325770098709272192008645420708843122285820169085340073598208893989589436109133959725015831042260404814015478208488130175125195931470696142680776237831193590204349358400438842935462429161584762088906577620114860708774436240230641966642425712814940563421659151143864769561108283706542960008308281089117422099548151477451627723300502178916491205761298560282737855915959451459349006529212384395433315526941428408275862293703567840800222936355449756996862384428141243176369083227553310597072590607986280272132937695111089651274400666440658958332401577269250781554906464580780435671048348964364184705431707126648424493918281954946308769517194830594128674329891459941915791232330874646681366352161174903762089845494810298027417194261805438338951093125032515444283344741570467814563233327779534430411592120977116223993066646826132658191337475596487026451561179392015320632582786772824782033024565307867963881814446244873453660362838089619307647458870478127297875150673267564097194564459151005690977179314337060206335051388556792225241989519104944117161024260421526631005354099140842865584927507707670736486992063617784754654319502641221791574250299665110499125436159680348060318712847693160930045510773373800029892611785667017085575358918110618008973018243189631245729917574060421733096819034325201162273662408001334885886195327654218538136765562880283140690279220176926411493666061894982427333402232195179501095963717916824832983100366893182709979637986165290946894668341334155442917157395831743566280783785125038329232277625296217564256412383529942938209105669389919538541433025162985493397463605145000907309637181369561979596988486511685960152539067884708290869897576328748432927182665188772842373609901251625169040473388039148465638994011984570238491128836353715893793912849852433451794946258556960579533669582175779942708856188052286100172246973729447347592225479967068187411641720498940210801004197634033995226159409853036084451810407793496109588822514595083730054315084628567688639739433819565956594576438296706249821326992473784097809893234063276027903316031276286361359091534281593974259294565026724552194279038059756614453929985796996777714131215564992480944218043530378805727478780287099339092677256354113298687949485674245545393825767413121625321810654991597698021550219044660281245673826120215402978978136660836923700489086487661684153108088397675425725127667239064018413032941201912725589204687548510692902396422173805207723465131397741473523179208376804108480180161737349403461332411804212153905158501352366269997566521747231080049521759904716545219325789075286659184141016114430036025863826534189156063318487572286026492430188406845369257140312811725267357079694146126494118728337698745838467894075691857236037130587836530307191501675335229610785304415554500550960611051408754877385266544742719632525901318381652065153804512826210655994908640539297741074388822193104835929230610027964208845784972896886811992364424889350977859595276046615980934965002979730477189773879832962208293019877188411799825675157456026609982440398769049370392297534149835849829691496649747335907285875205575200465099602839049644588933758686197483173558165443567473260151944970528801381695599475922070221825940506000956841829865647243839603046502132032171875428329934509205745023475687941454447708864376121504308143906245560886569897080379306968138228108947121213096340110244671649137294006994934125920804957549707569778546429691630442716939081715221093626035828311779982124612031141382703965409482091888178049046900688631881470330363952638905505425326921484145287650750609251624310835489341535071054160186785688770298386440398896433493382348431228906516080101646985245853772159244663760823478661251773280982554222574448827536707774995419914882036246614821703094130729703099086505911173678388898625381140594743331143720972343217142440396754921413467250891578678899615996635463962455987112131261807858179491517186700538904472035013466145950469735786181481091830685493051687434184523141712777609599439927418841142701882867750477449555141101958964019661824848059500901175613275690413985259613577854188091666727428103624550000100766845860047068287150724731190488352601319541279863101466489680660282438089546051133084645261239962658421815504647870348825140145866717156396368593182640518522084086514588591507102342808789712684387766518636669311264681262999440033817695437255674334103075927301247722207120264409391910515323474221989290863255777552600831936451740547637949489279548772617010188180966720905710703763922047899901953796495470891063255623552659040949234182936958710750760415164986367410947894900002810201922167353237297862362302096131055309415585877303187987474095692149409491146645916999483295069888403978955812213594723307331708216643888272836626298103086983665360835698486485200545762568030557451660501161578454940175544046402423869202700318955674896851027546426492783117394664012618611832150341330570571795237114031815811004978481922052570557341496078093777624065840949201077507846854227942452267640952886220419914418784296672097469012682862375880034525175470287773749189105277799009163331241157137015978178589765656578994665949256992095704987490374915863557377129970908871194231896681849379819844227872233292837040294555726830920166570195752808792456056623942206187200844017234829323822773015381855801566246713695246967751932927789749076952936038207910088196160534085592026237951214578659397666770057692050309209542908110303435134409918510742020153810869059752896810732098387983890712428628187925689202965602869519860826685737798055459180139715040270658633019629491102518019627661610306898881583073394900463892121624954862617184479849849579115008588739731053264067537771221371169665062059731397480409695225571517428154047780643750437734428204028837930962706754092247546362970100869412308672457137230001554950862369452182788651453420780283078571821326913135843828340960369060619983352115971220697429133302395877375546111551100532852450473790316095268249478133820277156735050814361470052737038138281143520171474704541661204521464988040075336240195418661892495398125999092579002869388197008937611868658708454774466491425730848146723522952718120273981446673270247661861882423100275436359951540711002538126869519053804460169973124451453253533875469155960026896586498892225106018405041086875324722467480924333469120810552605281608365123206901394471958141295652893257613522373694215227846464226434759449669019893223584083209227782970754074487002232558572868722025449935387222850499731698402452374747948431755911378113233438152118556424405968931198024260802661510833002129881709354414756117933676137607129844797179005885995343259289878690038956678934514325537003801502924301663407733823663369474370228520678867180670932022440532928601023056232146199407700445404046961866807520015312532446917330452757864762320497687357448125678277604946150961105920360984117289308228965051299046659543114778676560721238557991625221559435158186102256714649320550195448668974855227365824455069878390925336692711685163711622323340292163096906865389899156192762000508221413825272138523026131309237291204426401160568396961733580572679619509093009590015538431630571154501604031696508217976258397399479018218724191025547642851917646076184489133270880060393333621615351847741688092354687529081096290968818546753991920352770534171572029518450469219516649182812453118105560110161287811785714265308816498949401062403968058401511794421996720609466165569570744508240572653258057655162407967484476207178701365449622549291905766801800456215234179988756735401003254740820761935116007435080757818615686120135856758151146333825735266440821838481061055284782576205170986970499749453051174182768947780678926681417731790707368550785121641039793715440775722518048981974902286821105465336069102133544415300737665277004123992386105658727795719316819005301197691279891888785415689821362226987408100340210431273535727274863199561817132830871732518244422528492412002400151286689347909535751393481116078055737815480999860381830469095779103924574294078130882784134142782610544587215944638302388025452250894327873642001367085653118007740603100951900857044094111707112592082144183396647769540129315868173670435621268867686368559725339671096522226209319628481980447082738898269578452353112092711320260437622631565987248810862194203004543201310095842277317966329085155826212707518967914878144635216507388541696834371489730073619848732018424554018147073787221422813462540988912354043176835778258660877958250691697788482051105693431583971037632186375943193258877952912242273946371882025186800352694417497456829976701428013347535921228791290550823787335746695181654303387885146887965214689982897128775751114051321979226160534848543589965315327174660833638791510575706899046617672432044099687072666305573751142381399797971365489328707421117760842791979150700300720424632130617834471631395798642139654420757510229498447185584029450786085176131367761653861948383289606520282342469425239851299883948114825835918842651407555565746421236524864406492654433783123341796431003046894471040051193341561870818218596496598992032032749648574928719318268868502373837071485437138654831311435753692283551868090647203973900764175147258331836494371013749366910641713747041966704064825345134372338217661126122158668676981908091111407125462188882533932616402826538038388712859301298711391011633237850943487661533481851743462299688020576751321960786916981113194963615772057039868207682648839441084248458690327767201037646810603832332269887077841432740401236985386009621251812274210269769335762248311220953332435653762427511902029668710396112247891774359117666252061365016797977948807903505113892558516528701905311501733629210198151153501006304664007887348669607064280906299649103932845254378742047433789882070936073717127408715405992425229953294917938052684762026282101268676314466083051966550705007261302811632904676421878101948682190690109203124458761990843475074778677294341638984471453195664202904486722752811130280618375863222715250390551266097558467681410771050100222593258002823486574608641456640957409268506521516261574936606320612354206340577209006042281472136250991183577030826576975887082752139672398439606179646430730105235691527979127389657308094425269361482654136090091393711526419438809007585376090996284272847001071260309361927193203580688266590789191368631937943397774135886198828676563502139095346937882306734135131944046574722797146161307565115494431045329925141802994062126893085971268523782655270944470570293066371374922531732839262918628395246002356356960268598707760942543270021683135721938745432966672097274144994087207264593633928032677005470435976530334702540780671279602702242877703648286244529475546459516817645968843363199838060489919066481128678083199984311629124021478498767246121232148361126429966007220410404943929017811139523624662867722986831947728632729620273127780081295125705713741559460900657064597739895208593980336385427053179675591586681714947835268039571901061434330887959063989246624623062522716704905355104493033364827856108376615222633356277522519826661896859072733308707403682219353996125345811318145352860836903217620774258405195502501291082509598020797712533344958549340133633110062665822310776993519119078526792661031106099457802912221808428951905389141496082672777733774746350815114916490520371995836840332315467311980859282261090664459802786118453444998223188386724835861660843887286466976264187683926934755334425510397580305181818168135312193810572716766874445473152089121667629877091145365512830361323179624132716738169942043475566279461852649886924504611315541614314759905100482057599580890643354962267319321731428256747743428260226544838130224441481856200639775727009604389733380159258758368698207859953961780422704352349311310874864431167042360123965109718049695692702471040380458006083148453449377003986024652738306261343811175756146027390387916862945777671355071744506516831828620261351750424323568261481302545437304110592758132290316694770879890703945980637165912990677822911918469460139232851992203428589075009555026502850849278511910370486265090361765096050694212778750528396567399853979523113046250694657401694109852996405142023022781192624366477052330434394374053847085578922865682455884926991964524413609222943553309245271192929292382252013949846153608593499779046204206806001790003795619328454220122270477616824390639802231112145787274500591152983045357930669142673095435251755707419538547483504967705588691037808906857659136761228954757909656234083733440279284961462043041770427549800947855546867856781147630401216953269271174754608109697597408882440438282316598583649248121769789885501805516389485916795573461481362918877350651268400303869951325026956622250127554793902340510657468519205331232235656809705964762697326124311823979813778517132209577595158050951206838943017689319176158802156405756372933438274962017956508437900176759495117593062068065690169744066667735593542163117100214708702326974632711823365458053635439957690276415646384849423424194132065267877437898706282133944672230626329303889842777480980509976864482047736182599976989124041922295407004924880790558141411213589044026936798361274572708297515299502063590784162522973721746994454398399571573874169052309294678878279292753573529933651240833522759266136198308472239931715151258114599837883832113218126912262067813727025420392933082851801031021983395584527940123259361701086836456702973279536681243198764251255574073345597089327321451524119390086472737452535727823725304214434022267331620460662425086574617984743123128882852852451365942104939359161595254131634823804025055278803131253779503662624852372726405060153174274856631017986097732924826729493175763338481804761399547450635636661902434697765829561015101792942518505862524621425891732840016065342766902815579896677476363789652492195902190390162349788345758981457346772046827293983658484112156946449719805648025542801568217866703064942057873943014319213081798889621141318246851740073553538029856712483548074351667720129607991853364599513739335185288071924731708701156077239166009065793997696544807384744287561732419133473326551360131258825378850326871861447249959527875512743691403260661545030483867416483457284368173879896293437505088992411847426961675275064289172180779636638149109027771125156546215738210976579966164939084017324485300563515505426586597781301723907883300277193641444894756930436250451591494988926329562126209102061787362103847965883894303516729263278671953594339011485266702258420677445703737060388585085615866469573963350650460211429511786207610213331171117327888836367176518438439592525836292335814167206269052820615767922290204427145459127562877658175121084325731286915872788500573845973548885775961350680466450049960052121535288306233621639799349775270603646503727581035539122939210811970368207602364872011353062823785070080105270666045071072224326654969323288676119759190839087460669274313818933505491397866271315993361904455526582523714963750198412730981247348502306292724657963005538136094537898869811886759979079357215633409251983357466373053205846380369389253616404898237147807810588827888199334933479194484578925449850280668390590375059370174952192072902261735983672427051619255714744284357201472733401963958875193588639160882993178323544673632630629062385047344872619520720957177613751697210361608186817965714440862540224439313529950271966682704883110506364267538850420211790745278383161048890785473790031601087503827054934469418284060318360923718959674906763754738574987751692585596146740896448804326593362924183235371695876383503421522952357363869367960416787159641063143743571282895902779113086132828825749187377212563027565922727275475991116481321252455331855045238617885517477582844050305703724091354221645610325726940416086889764577101326542259601283589319248415364681912183319680200135691051838771043213964074851910139536815905625095755501584386432019773341218261178114008608257213177630212674354004101853815932141438763181735818292000716506689225057312689033258513397092211491225363994358543319799364654912624498021079805385417258561994671118719999952480726300457235672479175745653084282555611098748330822675126816846552864713624818137160421359260478519297578775240496772218605517274171868643717307168122301210200860123128928826020846550079853820290904495259851641440460457738474468847136760007793080868054816640091814273313410355704155941364154925328335649385157375178464588982430896043267905407330374220401489055308524769738740540624949907840974791098865152921647732802985412139124356385454747284997469756095101060718483821369152947718754812805765385889817339097037769789925392489930699729226098577221552223631403063433673915296421579988258958385726186645936629509908546941768291705050999838024208985150916211249171716926699096865294767543027368397666724277491849394453401182871874090516626895436218185330758119377748476748966663601287475621948708329535654742357161770463319696607953806475536055479140123065166681125162872894131441460665051624789211179621475349376232426718331270170718534012291544272165282413791746581027191718704093877126643245874270187360740572495263022513148438095046385706508619022682670513671760671147537807359620900591981232884666625801314009589793436058149729388018913244598058587257041158492017681173133992466016815482306927055404364640305128145569633488606611402757710150968614048691630341340739113984599407241952046083860447613698569844865411945174096846879709825606184178065290536557169678026273303055007679862146887010944602234141343109720026333190812057912369517091371687664778697658231581405539479661369893869255831326731715504676826856752067680109883012010852074709069499111014674607799482222498583915213026206861417156284940887484398039287237487318913835958509804151802935170311753468573178436336337824635294611455830180901799772883816415578925543978250347345078060345839143064202043570634138454613192043726575497459858041466974314479957051387668528575047805760862193262788312025135534867623451738831375350236602784549257665675836556481638695916366656920367326268420278445773269448410908503625959702718757060211759470544662380734862791097154128688431838973577538673117414270087360630080852001993344225548076570420837032245159022783246963955079138007000348087317699904255445813509074817843921523221404878026736535885367275672481281784226471839242769191331216577112473120312568513040970260262360860035665295343682237579603902498224286018030749529740867530857092279729564161843455493449538522780103484857061411099817544126529659191991435856345565129544580528720888950290478079602466622116501267955511746801802053992173142707816193352755905948858738322020193494499601370588928027844625289040644782523450301126030870829379321894220267052077260039789789368045702089757156334033805247544363073738502593293348839920560486532710096522649273249724609589383839206910952625284885776700569367954637796131879422618465026035825011907811572123260823622346177968225655023372980361139932414621583728391775897730525116273841059261066603400103304389059865238848796603529665653902174511022926941368109362904429974235487465496366210104784769930814691724347518909049034098971563913737355693314519357417203335110431695196511462632498742120035409154771864265850957908595566789676633737723546704568174154176363292147601691185657877441908746428509560037702483544017949557637485946323144588712142926143326761620544824795867222326107393994824088980797675215590393972401768035823378968119310383287590459155297698397228326549682463706008718198374260164052542230208749792869084143994164111790121061056590556415322533606644417414824559742738379269359110893014148707057500687020653726120001402733493517438053153459287421335525582477178208073274314495023617740619124353547816422417860399698610869658946852888865176369664296965719129088507385923727133172405187826840534488978427910734702626914382968528628883120026414305548116195839403476149658097779195279159155453738150065276776554542500174380675277994067990526971878689107233709728784166368851937276288634994107536645298471357337773346261370722806029104544754998892829313646445406215071186782588206648811163683421781979716549388671563913307986421194174136009958983974552446115609002932118228291406910628967646489399401883057986466398899459110310560405525729502245337380676652913445863379847320138163092493274648941798678976644384218294833926562570490131294086985907121528865581962417583573969293248539030249065719681595326708055456961229150524732273150862294017461610041417522183282801781508889798775890234193580179578000102030093108124730618687692867231479627192725698181471519913624999988856467215204746773154113410642833902185952731292916646714127559729819161152160927749489109383871789876131066079721542830152748383303169938195267389254054944682038130270383207896371919821754152301258566624921672922841513279060740572886660072352675299920103420049300114281758679929747551661991553808483238151438451692243902411424908709821644640003752951619278955135841280217395604993839929178109295262169780522606770836891617961327440282164247540262530094333051708396713897758533899542391321351911115636457522487980622626401941190916494965719802157465552044289902856141610214109162129952197535485210142786058899517760303790019266889871123922905860034842490040035990379439324264594443172680616885322136631861886597225544093983287743433214200763788586225261233618993365168907700084489511997142365293462392326634595442734293748366163602383256929101272188556482793180565621384054266250495355178776845093141773858921671238625860323850789117748394616113874991406706601489779771900843161815227447994791687476756879434320196426364368448166221296803852532133977062884245893619861996408052834640542880695360094999794464333070975424372686831890335910940085534698956713550706677929743824835890501902504477848405719137763505167472370056317764442863299627717951759326426954177369941552787044429760635211537565639062805731775899662438346896589838078016190800891534001989596864712319283349610912659468315516835333489281063811734506264612400660905488467666325675283230401387177027405753371018593704776236922585230835278913664712116959056145383379724038021194610357710602362384151698802129131191777410173874347878765287270200579267589464283707903760803199730635110379352852017008737570756424056643140712626618603806764840398166392300576867708341253888798148495756277577179086171957944511825141187834038095601031951250895722608075677793626052939879482654132381210065127361702727590670502047508324684207664623355412081994723046341858406927455905367009135897521360204996759254459929855441218403006626523490256093528401821632337671337376470220498650426889910040458056819885155497209923108481880194527827437065645311784684901068927069779505608906472176720716360013103474818460099307571528762081738476228798822244370221659221386641866947577592641067514752003481757492872373494468387305529805682130949184069597437976144680671008252342809511822997776153092078367504449185906207471973823307213854534752575861040974214354377440299998947370489676196861926661598067760425525293031383161692956701338138353270464925436428127452641758455465341779777703705319284562199507298851462563547209956172309022272689126020021818331212584580445996391978825196724427885377572834613195358544695187742318058062015610646242726187218619392618628095974448748654304425206639268165523096433630369891806277844022990583670745469622325142323883596996009558423741743755102803468939580281395090798729831642696752878183060560088392624289986986386457627187222104442486352986221146026910446060461570767673907846268609024319558363009819318395893238474489479313309311017899287849576212438556389075594998519235160554832942705622701869406290921597162861854384392728876541658363301727759373513801648504834337353262704126061394477993129908964561548849938960968896909005581286818279594356465307954179838127166910064785012078124700067998306880297841818035672414628746765669262346908144332637344238089158610285280743661107179913475255855300569463097509015126890847208271809814812747671653704720000088819091353125958835736143882285653099606472270605948010486689400037003525879640351859155461343365218055495503694294111581391143644842346779725159655426356658245723847804755312898198278548107796729328101793787956750330523627100012331691841106563816343686322265833053365427526050386227499603756903936067859201371470663368679686024694312631173676899094939542497863067183515780398431619126751794200448392025112297911633436802495161216477322028541960642167425440053340695386739701369823749911759317011589812913974027425049422783204214591104509498988280265883928124687494951461204890067720059262387058681834307049012127269489818118752234036843743270228428052700591654966010600186546236399430127806369798046418376235331647188607079624806659714567961629858553174380773426304842843475955722282293058612315424083486734549310281820791103832697217668121518346553164596924740800089613961428268845924428536377293516173659302786409568987870847790290461027466469607588967778148038928801698352966814541525999100782676752091612143108107047504660826582450610686674841319104284361857431217939174737884923787889598782891716055421632275870002447224517255840923790965361089916310051983198174428498014912185789757332387812452158677861980660139714010269135206094560225698663117225544231060233347593408696609097779632055627797271984197749707516574082613336260262389737997616673243916293085506890341100803054950395519579042824678225266473794433838200212222740095117361825541891967147579583777059774683666958820131635353654662977724994751418038445956545188833214975068712572105792137456260301286501352219280744361275022782751631835834449202608059984119030957880930328655511128259132811055596059413333917633831834057880177394064266082017793999801866222514568812790181601056724190848529023482684090503665122794378837692874669031884523597264909983441771066470886200164119792425568045852688792542296935716614087168394519559962578982353157212750828772188422427323034444854653580261354028301656949726930644461268979394091755290734284347395424946797341771242265444263716702660113890037946111351751078240863843923494865005523065873579384398642451246718686361009243206998671705657133989876008811186397294026786706754825088614329930647084634457257561795515409633116801325224264680530804491588509982376735637192790776710659438526370445428583603679896358061511011322734192535257815150338744331860357649898771372183284209384540477441767997590184015025272540279217010376757191284205540317454576283785565005838629336410520562725341252523433732990087880134428039487650565867026187824635156722151570899293608302070475169223416692443648695819499194443683725540381247206623483463156717156612587431579199289935552967279535046950468236870704335944793703808555750449493574709601730876248071726203271450590602735083726815138908862144737118213981167653655509434422178677241977352555224617418905846477285882155563598596240884915479003689305844420650800858682626308945535623953668537635860431561367128977950684106612824100002340826549746135402985272083793700114194435736584804621044583497092255574947367515829639149809054683956766214353719523922889852935793195398629410815086322070068100367574438806384526629799300015118377188543704230821265209390011757150472530802202412769594802865400170494532104597457780913414821835336845032145496505865320457261073096683636870897534925609541459241460212357047054830290072264842862147596893101741237403541156558794376520823274958271600826770084424559979847685466187146551938848489102161106235077860445672611404692642421511037963179411951487019224445925745942988720574814246978086720725721544691997881426764070332311059447968447214700294997076468917617755878260648509479519355726036195102911167353625282044115041357522019819669705694089928667323672329490831645743394538952529689476346416364577048115385173834579237490103896461049547468501583642107572073453301110806386350634276887341819220927918563922869096992799681796734793816582961343116381701616046474896917655980864445392137272863704946549870153828521508138793574467183898045738100785818775643387699945418590658234856562710880760251217529051349751814862886418764536730944912804910524570318210120642318471925716360242275797529679198534937412427339909454150306373827034713845236948938002016261170576369089288461286632028851353987570605244870189142712479560057354850822749506299109090385476346972671153701502617728364702897963749799090224908882552079705072160027143475723887208238452088344964328599666375853123894934491247962207604172142303869825894614881161435949787997291413050823252418797198107744753663335832826211491640982296336694470242130021752815572986485159649140987146974513901270485040766068134321187116053812463686003522587236983319313722074857726307233074749618651531618003123011586320206299625600686372786728645140732289564652852800549680552286926576198521089235926593819971829109300225255804074835415286178185237077293127223895888681474422818542281542060670659289257756594699619541036125618126221160791654841458294126707537847884585388870724342566494604078803688310202028459822341902604338312582254432779791220658985764414799803567247208130239113884777384068938136350549080965716102773632184630168342757784538280562371097008265771930544121049123432930174619213067398879470193909730707395214720309813329368887167051052709540356393629936553890967962762195270095088702025182400506078417441651494207004699588407909952412602966966933557649947309468939179046847217916552610645796975897339173198818789795058978036010307884781555366424644306439683612603809834794111026814244255976943721165504502364544541871127820895780768983793629646730149385742773311825448858771688111256867294211412486439573981301924515984766918940884730548502449398151912801718380143747425361175110641455853640044566973072548753873569475387758492845759963171361573571658085527451616997393422890554631254892226394494946742411231018629520523902542570841382139118036616315354439681184706418645066223568629445326329622567336930916347397067406041217715834351943538603669415752042096987513440708618666428100604004596508895535424213181545006799469863085633718878997335324756333645013232302890600197967886807226318189973480892705620466150438557148303761161998611769600136752425469701829354960833678736550780289710905216104700415629987020847001582509284158444106368583919788071933376654469937480093382517982285406032574798094128569849678584186851551027805376342227712179142997371783275711333525646270398216928779278482748987398601307251814178493847089808696208637813937001383574367647836930146389607679963762877747630082067323370313322588639446828778814346370766258192361907574170239475973187209466275611133168684282325719890017237328199284971485335222956427471472312823858843540157724703201084290798940064837277114957592162156017337742323944477953453348617356976218014730836920402035910381808075063500289803450665225992087375267096224959331632110496764744141569508537651083575731617831059296850454906046662676025175683396088830869650393089377945498096124893061957621747072468171824852424508509328363530124408900046581105218646689360315375322369749619160989867350902636712404720210379926777024385159083779716392532138309088488271431890446168186586770227579000912426241554283234011571712708859932643254913133797503556578706559493704797238896749816148778808385917869169992389263725821217939648565107109900303868819550513195807036767684770323738134995975801981237292876287041606058139739197903208294385971269398747898226340099396238016034875040547641250379026487113193763171839306168289457231965320123393303165757764041986164560177306645136101459306422500068460369445753525910205220104418994688584781836399926726565789012954180467933085464692304683956314380415890603074467859843559977961437086860369194237276105346377918745041787074659534181056057581302823164625402514457386960884093734594252593981880103105524223685378276237360888739166716587313456695986159380419516325264797767373359151572415202827897749415976534219293023859537314408536303588070330252880187066251829733361234690220478206089219442548466815896803082051241608393246960824134763354483376785568215186203763523825220028255511014821083538501808860478972907468061076929043646378108361309072515388213981533286393613208697738858889774086300224785642195048361111256871242196762436306272262904860848726100288467846474926698980606273184474491816599511579065315132065135749545680519502553465483532159251164697992061919113336877331653249325105646669282824645561104028704737032111738970519369760250671354870161013682317874959499274137237566727851089671238625383488346115263671875923562044517993329641865662148614763194281435837592293191800606877715200153949228229265713324095468270372441966407169937798456477194441889597660503935920887305189842983796742718153315610740198924751320508741076388404245782615446452994212419264587032359645413740024998791269154583797557665575389187813990860301144983839837880594037459054679082088912567590290585028231670439236032025062984913018744163894458816624577282523147794703966567946678712254563050030283287184208566283735348726037986857412566187399149947349972351683164104307231080190535012234780296542560441238867428283740202344745719156184227452117112444875842128122911785205570745590088061114760318834619064732004676799457279779031429516242661388908561148777522197043120406429688987199826170187170133911131052347647801804884041573687482105161458184689720972521475902282470443805377253688027755535516206607257617412029483570554936532693743707381880501028775129132115249634007554595171724404868192445248270657214183093873347333569501938980839803143205140942561588844497173718464915105028997223593577500079708823828710434305272595797829205140045511982696626987207305056619265322991256590518791257124209635200922836458616061123799936351309743186156565208446497899174704040935102597784317357270436255139323831483214063259459833962101884152279876534220857603341986035908251982799943351711496205182285410205120973183337273212093591224313800275558789344334466646040625097610800761940482312317742460841191939964276902090731065934311271641633753907221497325415328785214802242917734773605436655758567954188895208676480369545076024782121884988077779953254372621437415236311808668891876286769127000904481007927271676603541895783692787589858164977348368621699201745827035198770248989193492049393166014493929656240849919527976305563844953678013127047459285418140698861913613078653405175192639647290892709492405938026295032936534703204135325458046899112097594813848116668514768295624029282445792688390230369021819278770253130302029634231730084195288547415168178333284333748385499191535855824357087872815623877579918188994807495658055855153314880556588816701644837167211868987173183331335431644508439677918139438538024143234891035856616271634777618500144099376090236056301911210376347010823823156536141328203077929009595077203145113185558055418001668732257670754328217600056252534634426085009663209189002595264106337965975310319864172638137612448326237622668071862871704442538360846415859271133242529193799082715304111983616291698415583933595351378368863404987471703997770625450980262079907380197943116068861787403444029402503949287264969052335492094517587089589461912167769796067527141825359841168616271763377994835476363460145042245396697295870407467251372035149049133198670687914407188653613430024577950926079140313958307009880775584471445243861174367178380699161640721599563323708063079966594826391137722372694997070484474614152445149095082815489999789700196273429542758165218968663276350153217726893277445150703014765919783625220425762733115490456649341646406843997021508923449546413275203369903064394589020645900885175498914978615632112114115115251579358250903405365235868718916326432306906221466444320182272089000368344674137635207812045367114973832571531011260918739420412773472374768426537445404612203579410740834874632068269543435239774163759715132394612277378403149138188283576138008482901263920065482120297333550512489436846060156498583789932280869439727480748826657717168334425973866869423735574138203934827404139082274041983349476485946549552620309730943932727255566931104665359374209791849387565027049805994743086892065192657349225191501864163108397196222339088394679741558779279386216183678814453282291739975369628907169283906290196031751008637881023720671021578406470404811194343346374415273405545899702558278443569437030548894315974406019978520985706534422196036946408938876270064202772895026104329420588307640671861506929113220833479265146628184711579979042201154359934540875977233110610880115256049858288094397775770820717507476342937444989269884370894708041487015003294149920114153769792525628539404232896814275432508781133959078939275275108856036931615386334095608288414141359792299642029808068291002310767212050550504450631774370582936947401700191840598708724472256660130038138160242947598881696949906281869574076001676804073602573458709952280199007240036661500559411349539220563077878124021162745926922855621951875500242822119813280941933113173637418029627308251656699389598063461430933883849136320280524340539802247041098034001557991478334492566009669802207970206306539803251143257126972297545120887602343174371142526584857418217759881682141577569443471153796650219137326785828585158048856526770336623904596137254702337259170238214525375900367388086707078471603218437207248096331750087777393411486627610836593861181968133380302528832395196797505855735034456069277890634780267700722446402965798453154971903777934073709482139095151133905154797018640594896469991374401041242033955972934760970976943842647061626862795827013180787458768963729828157130604317771055488009272589287690706120045787297565070446319868600319870255470586276600204755831232055093590088172043007368726876873467070670233427425372624341723067976305030879794787023639263822285705776005247201790225084799527797939142262499565267787798148005209400235293159869427201174509216166442182350635042198467309692576792889232931932480548604717719796357812327712632631383726954557437738744496011213634563487089641122959698966696880039005994767335482454348825690535728921005509085142629443070945630965771061801153657434019084356445547027677699609284130704368382958371818391409659466865570155817845121491875430799524714182547826753772642482881263237502026941897551421265422240018322947248097741116520711716988551228571844284724384839003403259021920328941948456963558070518082404978975373585927248779976340575166046161235806739939729536788043392579079106509235992518817729987150918122278512377304359842723522085905811971225267152784922387973149001969278517016132896787704821731071716391530413742879456275956291624716343100463180513816282911156225917495325670001905279833628326393861785667194883366520500928113185224997470331013396661631339591828301144331746970524092103461939382084922446597196330412467692930798001411983721528869387589553979293624847019463681460687695714782471251947285784319733980119786318837282044145681916031674597800778380945108150054908339658272314363087416240699196628172690424604118714517183093236982401911988984698542585915019813986766652090215899044521197880757225543240046394619069785401715914768368398341694762918980024482613838310307942308653655943286434380399750160202962865558146061647896535347679266497297606328122269366979465873038009077037840478830145854935247695563530545315715210439943597424017746904180385952055403809999386695674786549265083762601737782329484215972140316770315744054228314341532123201131084922016769200929612382942101799013466636599190996835677316555086757954885365015450823344197445806077101334764899395912287250042432494330644333758066812955004799405318245885814750945599891887022815308662485861274255631246395064695052507267975905429202953493759505767266941363076959158629681460204776870065209249398064346299696831170111292241394072196642117671589858534120943368591459802467268739330861619911670604108883302445720463696380745694419449628438392069446020467339736246453351285210718607759915063551965470315197258868765288582084228338461992899191720823928612181459586045382333157686227014278516219306802703789063059306579695760006676614778111652218922936636495379537004678895257718829995164845611730647796050150259548736145528543762084970227790248337432829013048636728948373914276690760652238889515849211108934067642598234387363332019354304439621141233282267206640273128231879779460302828122032608937541401772816910952589618237752741907048772181455413555810426081941067602822760554040491616857678352382618523138612398624006401399654306539216486683964697953194440854810442044496474726645633635377696230397176851612678941063577721876697279239430890630761256966530052302413764818074260795605021405703974453787868396623541726241372808570493612491415161818321476755722149755159282022034459206206876824651754350338727887763444894837818286022919635766323695708092626792268747734697617264471378822260995359972232460846938140101122509154590931358640798677209823372661892755600101542528276246451626749634782959160236254602378276456325026541835097703026093589238624685918450824360512715316690225153569093090837865746783301144816481483681934090029070603200375181662160672000362810953329594298151062403916507028096261434531964904712380805030741546197243647228476499527303048816710819826247776412914411459342087943878248363876198596118908926624949478379439095530384081271374643828745387523148042260510129383745814555739689592107135322527575715656604143417371347436765785072501406471741065153951587061944315783095365234921443824103917174238843197706387914948782741525961014443662988658349274614395546304561470536751863521046067871748442225090770572779571081249455238807526080848008854994484576040247562366107745866126136673730026083740076115363522747789615058293620444977014940400384020590841479805596095777057488414089915285029744823214207147961834989404008709966652218152446586668279710812137774715868266533371998337895223763151501056308352983551419030065106295371605134709963176022657813815245537765475977986151991696280173072801406259228016545521107938359145338842874374082309369519153907270959786131925852870888197046830518523756869371855812061554270696870350225498979751990380989954143624215276604358207895947164830797442114192360190477531714864621859403864179444125788580749927756664774640647782923121490177007587272773182726210983572294473834461622816178379523250546934791530161082903083547014655776882417780761164344875709541293455640182229406033075459130494687643445702668095126623965773505147797315481145236391802854934125113361597336714790490901459269446209556039218253775555253127839059845290739213358355359712630549103498936053589586581295432966447367913693416982247765561309756864974401780881397845474367344340291841185051964014020295267935543343842942450857984534502420036510984641927567251577516996890878374112001632644718228060968451276635159849522514764450017899673516005753680644545063936111549400570917867984343678764849909452377958566357936996685616794995670562616929227133893307662339487168198077078270232256913655797053442880130216243020707469880632884474406799421861125772949749804706689351374944316078178025611020760319360226244083202161414093968040027874866468166578902834549446669419284374263088285042051409535973671786581540049946143484956587405397971843308371771372037045030067697838853048692680257355042656092791423427584570928985939349895463751683738440690162138951876531720868904860563898764008496534846893586859351120369537168693257903134377540248370982508326045793391799215042650377174201869094707833431205226017358958676964970666163078842467150218802959286732454722382210383886761776573482642416265938543188118727698841110506011550706354877741305382941469333699150847325302335495339859800283388349174591597430995432718178707257656779410431736782776976691386091096216107893222118487260608439278023516273567186575038662128629687417992036069308595708676438790330550672907104017581008935438269504128407006892099828289025213251879100340712619887941156330954762510392635094499124766301789055887984916058684247010303644879913018363696832809474700684020781534178977774523779804363661609868744785903392627557073992029310442468589373796808857289744723063630545272197249454140243506123092994959549447612086766994471485927967497297935240158450318192707780142907121455049232788371714738559045906060799447091248098169582093264473022333488068022439035561382022334090525907079018599899569769511300307145848523886017765531636928031188603366792033117428404832649619838541509669753133975851524330577512519401230087112730326789385222482838379446573413280180977438025190852768269166498159196497557331034427203650834401772373171530500021567044973477183573238493356983073552926718766420519851520486523213580238354541667921968364777597566340643365961290652127189691374290338466566947393648835996140425279410651469022164262554295096425279070186717594873039438707832942070279849213688380179961166657285385042043197008870735777509906362910900936727927900793994151525726283040226419865388535996340031219299425824479338586401726258719602687817511507801058150985529213189084948047600913330708406840408552124982354321867585298804551111812213287402080273951233357553877788383476469702221747042460291091472349899894754484833008667083161794637177413617658909303581434661770452074793484614755899990161721245539699326179269078173772143656838710158227504787482629297634205484795771397531066187119744206946887049188937651327886449751292055473077092597218263426957003858179518941691352664388644771108384945318596153009585478617840465427435003978503562559410055568008634646610425653989886622942863783173890142951505491355436710976774089094705192341796156950283731312653974277576763339961495755846228096848885882083153793966989975015597490839734567222061775141718952421510782649066248024696027766981313210070496190574322040406966864382579368256325002608498535520267286211702750229285331105089474011377214767128349428918774513090193780339325286073523646461650388287771980411000823282341923996671806969153079985701231133816739397436373434404312213092257840593940809088181175607390145314658248930982955458799740100673264207338640968818823205710676790381075063444224110741295294065574541588066688467461042049264682972492005413776847337491850490961333708562706182942832328328563728499712818386667217143485799258620269972760835907509762023180322889827833505663560308253420870063523485792949803671503717450992068360746556655058658002999578205940653720331710300102275957990374167400546085800304688043620540756684436434754837072032034020575972995135181738079286906680531737967091636557755626592201443627798072993976490165474025843003531621530430506044595230764901123633648732343121383184453045407045881085298646068660574790926163727098760128706521503010873560642616436075488003833023885040878296657928816575009507775044536213773688572383084472122453610757757150762047218713810402004390687908674768901641297032333025631681250696924186250507079321047502591075630182429839257469112446410466581778271201932072150976946798579108874163945371861372926656377482634278790185924287126544298997547987300760755603443869212307126914528327122452536242288942806071078145055372617902103848207553894403526041088155910541540324948725951329694295910988566112481384664740929986479449561075948739143045855821111989032858370310765385544163218005202331749019132037541138914801028114407810166958404943149814993522966704082895620362915978433388670434946421361862665047991226901478719245050159648078576914273425529047559380294728440283189396252215369678858963692164522645647486329848472892207307591163309138508888027090478071746644014900549602868017261480045287724997812580289468599958529378394316281760030984819976130025672032482839973071958353693951220989040601892804901003455845678430116787791357510885304418958710800554472731809818902828170264798829335757401040798517673229336777362246683339630272386395341938297907912963870725748685805277810680754690129708453306654903119596506909575457354418144611735576751642539616986850300606774720310985530127347296136564116126707903963915196235525091935112502574205390379335532672983186886397347375234800757890504808013955730118041591994604821175420085500817578652112596703052439107708250573836566060876193934070921501413394069603001488039094704068638681872261653959518754711234954091807350745636996435443006508528463278738258103125227238370088731704722295132357433750603226117593961108118757501114695968738106205751210134655737043392605233191186333077542206058043338518812826084397565215521257899553839964731732035523749596561974766179452926099691795506198633354731816637173823673655190420112690840111861520237819834309785825642303515904015450515217699917687236147653508331196188680269907279542440980134903234160853111025271866870650193870999410711121088915521919464867589926663919391755198758600943689138970709141175606618782377394606431324365714522376924598204384907276259720395584129077846269759184284930110952429984136468604326378643233262327750853701603264571292051239897407005060258990800209163179595429936031819680914098149244289879317595217286104253198772485627349859605243011124364956354642986197052492945026067567970519990181309575715267398782281336863839914188631587013801831773457156918241957937360640343890730312554466310601357769913383213898957526568632549982210731420058160909175983465484227026083931170625277009071730124809555436197382700131650982454321676309493560142264626167392276105419106946198632302084874577130563374673301279826902824286415062901042506558395757192974936985665564826069435455832385255258029076610778444074554828653405528188677678263839849930144040475633836963483646760581787892983354848282657601934747101573970237885403072255771692951381746911393890658886918867258055774751348496189034463305663441583276772667754796320322485328650875837285238139199097058118002043802970101447983180738668778953052795512285422764675776019870442793191256307093020999897512057387765450356968884640556757097974064759043857578359306775296452823257978024901251899820672545489106094984010279714244289519308607456092837246186809148077826273042084943771005332823708237872143368200701897541603468233482563278109478279051141300345064124096478589987741536169919958450581607581034724818980553928564409192241270120056376846816773065751608046887267099041434974175232720648751434623553915542851910702351487469201519036227024215904184960575894801579893805359048809491270458843999906266890586580940508348620174602370510074608056356518174613075263665258602974756757724025195595599115570660198665155398155672987306162426458432356664043135644257782445576552108322733508808536876416619407228592760109516181894975977552551214892072932602576521926073934090638963787732397688283565146204761944958770270482140062124062091445505122711133273136048806864989385816817741450436590366792731573607041668369963106625150437533612467106204708147235111444431171367035712874936614187186726033191560571965622906800511559601846066105246758007605021317114581689386339310773948968408442455045262857054118641359519303233305712160400235580900320280463364599578305084660350334406426685153237771793983845059938366723441435159586588419620766127083143720738077279008509168747011636601957454379384760841297988733157109187151409221932267862843417871490027937551958910876624183067824116268120827592959956386665179028825248671810648219938658161357529482773794423207707520289710044455785110034367845308791301077661819463077697917106116612772157387414227564548936357779456499438073266386759491001601680600144936896769265437627104278403442249057412402173738776177164537429327602449923501461190456910971964295181409060353451535700710647228277910836250142207604517515749074423406345867391570296078389616676015245412506832705579949282666401416197471553980159917029308267908652576256083358356352738169432865535777054176420315166719003840303438159941670255377221460731833300456939757961448248115616668082646674635445730747859823848259651467485804075609705844441061877143526414013551530606215632349739831699859787711916628942140882987567615008155823170296560731357759978347989406047146130129081548373864811434265780018573889834289223560598601108587923369063782131881263542235117257248847926865209988941576437191292655558228719908613302967911460974368525514930220344288504573023228082654486952134907082338748584235440462328047664185477437092227096703366182903039468033901629814403497280629698622902358159825777851455470467078458185097882747407008175521185088823594525850290897878574693175446595947715757292462872148970968083582210803063226298344938389218889677425074588095187480269881038729231885362864543428950382327682565464934217633128257035099595810854212585771680414401749399859357264703876113459928275203792493813731259335679085675749204009686291560839090818724062229243705843498563709451041087614267392225972273227521589964643308242857399530481543258159070296607869843059979257682321907805566674501004273508388993427344273942369872314316520604597329005186403508265223875990542551010508341314821802898471941280222425136333516576889628661463882540440282594801091903747770715797963188997355650369507550854641772723452149094007855219813580289594438973040931891616977521466385542139138419889816493281034402707595336173015636504193813047759297230242656167929517396076245410546813463335268971708226035244852433928763038081059069512664365756083206123205536719684084736219478754746986266386569037126192583423107037402611115080843843345895834464946607576924149318185124917708539696320921466134878904037639585718940089958879634752376014365522951068514842499554181001516815253887133388017489909507978158171776649107761903555543716864172045447472152737834002455365497109300839067330632544270229308360359912683318902677281029891049496647558259897360504601345303221102703500226569598366165187456504912305796072317485975934285121190954914254943934239851262336382331185609892316081061048545828413005963116227767746204301692657273248381399694701924943464310738703518819683284545800686700274322598073224055709122022104461234710590431428446770129848676596605555467360162061782374984270150519169347104692378900972146036511293413101266996365913734896665568800017648109480850695829707143923481478420947066898603231472184978997296026589251289389310008964597391616310884323511102297234252474953555269871951107129154340203202404139297451822769369155742564057383197120406150895123306653755529134260782102847267827730100288051444400754216451930211034462416748211360961273585988671703716253273486820522407376014487413506889831298229978224842574933999071909124677504513644656330532330059300512673161928069304265337865984353540524795591300568851389141446030031589938007432411400496523946971984012579324973554003510771803555895174825146106965473973880336592079613972369773897229381383988089635668872432020697746800476142142423788249483891450982911495062240858723742827182680865974530706539407802574703709606844730993604838385531175060268995060306610504194620928845142714946009247575253416564877274285575241664075926305886356695387434081559162151046982090135659235189615368155328813049468025529065013268120569233467701491363993266000452586478796441722144163790276567731363320733749872014033075671286204618815886529209791223677810347124444506297889215816302351033776741835051109760840813094067316992757466222937038819929294843575958008954487920545616696738589032950761608096509783676263438010437967418927919609031681037037305429187426167336217646866910869671152627116714791028623943421466638174100500929674684899080776113371499372495078721060795461928898148679432258323529278060989556857436161098880781036943839114057086919285202506777986365353571323694970569011733860302828197989883924033651326260135502246999600840746671868615781457160745356286904785630843910630842785825469834577579573029218432068176597837130105301402527551864918910959204789967268917519818142979340079078397554471850627958613939790834229003979217784812167313777994412949659785952475868046027761133685051913279461614411959344956249162082596013715297714209218755140977816771272988807261203140266744911063862817295159187822088739133448005377595205011749968865201613313364838342086785683806147822305236499782466355711352250026757976847976422346746182001713961385966808802380296847814594088235877663981278147519116758313468540627088163230278950651671654235211394818285838466558033527107876393215492117945058864021928343430127035609542563006591638036479336445543452574254160642166394217411549235273651243854341003323397884802301551110658613829192750111075812694089298940570592514712317770198508153899811730318539755354775974772389440432856900093472628362893591686031027841399913604919213075682927926211206504688735238719933841653928771712749755325880776078794916431615448210000371961561801893483301969117232536610203848591284329673813461114102809929827216532630115471638412230847515033272323454551865137657315704909829015968043289679063821521798694762131732145916631367929150593204821974187037413660082509935492110724347701981420868723427937778892952385939658047842734802431373108619721357317776058478702490436924951679513210160892475460722949734868830524297063673023713442251439824981152656210714165779241312427364247836808021957536881762778294591471852460008594479133626436003414266215111447712484159295075804082445474235753386223428879905909424134084121644858047616277345508683019252635776308056593062828174331182428824325492255791841114693702892732132413490666258368518888383342012588528431630608893897770865841298314394085273503651457656835720294263715820923605186813711871480045635331160752093421340745539143892680198736939327615580118908351880348264702641304774759615248895661880687589334025817783969149113723584020724688212637510773833191157648906010271711333144731647893471998547905379388287503772335452159226522288125399109221252290422917460123631450799377965944770280619518587461775617365907899261762426104180737806263798773191518760269592216261093559367642003452961910843752852518903735405842823784120038924653779234845340044403895108655459516920391694180246703139008684573612002083864787619203955185615725866096327124204458476258212912907611021358729042981329554508745739969319235582304834335393197208719203518884050894148212603681499447515544025976423270023529837614698786644544898046698035736569204843012494649284571315110915402993593239079184421293719796862696727492806421123401968255748267028381904530757991395230454271113100243295194252760648567090535691003329952108348801068201023343515782874095209503752035127133703126312686091224302202710459302282816019809267725501570231922491068677403302027174844755114641699079729900174167782694310014956445429052109480014022255959606226558160303844653122904115248370057573339040591187885716246261602435907119900530368818089913626492996612036255734742446448382731735893467442690995803675202456126660631965824170800686710680613583018002772904602951044192261031088465626908681994241034968123683607068235630968977621095457014567789529817705599528858520165551736532178326335055376942920097238714570397616774033775754658927107292554205122123959491549065927905057456482277622726816952721752120758577967301137888224651572934759150315374094954462796728291835523996102651273047707264097782883359954119515450697683703227802133682022681962446349494135269268852598485197764001009633100260365037645016217469395875892673215625209089859573478940735480686155601301655667145307935188705435508616187403665940553115482149029059970614140988387047871709929908220984383990556745862766556055889946311650762530983924314123029332313815237811657040677418041161953827015007324195418432606180123574467822660000724271194439144259688672636358238298730351680636122928345585079810812448015751438708105806947554981262650936117467860564781688859238007400679502412664318176240718924658826872036096154018519735819803727523920115860048893613103955469439970434968061347557586108567475430323259874068146184805122764417861339642733429519629031235314379891509916784810373036504425432036294166022897407089811847776481052956227636488017103679905364746241916050612645281945373007624751120084321060759852418399117488114000436743570764563884463277756812845441508499683149458819181295950050112241448342672560864024243573456079742004818682856128437385062802481190525078916105474655287379921636264929799744327925832004637132242938174883003782804594961687900339497585329316942790265642355349341058917040965514308843135804347751429329905264027969499902690021345627550492132897007923651791361626464202273087328140910220227470416930361491777228978476479019918133315399220246935061447609281652835494250072148360695301222646136883301978244805540326369277117629613621819231542693247885085309545077535627078573683343365464691517601087491193575754789990026595497870964956964339120688710039884717063709205020209758523426886040198333807198374978924742628245483125501955406967436217806935382361119423939870280500556711719723191405324753980051230494561465930564984702904579075067948681875235410757540039724606722791363541564273487587176330047992011169196645010295118173172491040187887566461195733034585702984350265853321534567637661185498462173624118403897109092711331478978042899869514471767144708524175973168634645047303896414265200614107255552324450524585115384031133679990275582343816558599749171997459635144654758201233453644170228047750911141578890842347913882954789562466099656369621147692877593044419784714408219132129071551411158283563276177605760734081207472249477200069591181238578904365414407646122342872395629053263158137541487798528529772967550138232655639731439400871922489433400202156326081434862226190277087320089060408030743158973411826705584451261650354682151027915207113941042867159730999716344014306056432586142166110520658008826156089720431043101118304385305628257819693645509856064013299759045126839689504671200834236011190016492630383808073793828572155707290315639071105235816230355363745846466705957731333298880049407465890469876062399770256429140925560102802780136163406060741416334533438710214812075648718204666678113170632088597822801915248700378321207621067177818156679116804184278344397842398829033089966651092056823525271534727757928583097328497666845645758439059463338569507396813572605998181736978001578905145923108479625957916000337874836501644304937016110333654679495217838495484403544312495857893767763167964703819167268938822314141540910651923220537417434671517965264066337060644218952660412515241243063153620207772306373644018980658451974522312081679696289035523573557933861627960277915989115750699046978030476047978677461800070162674079976638720028179141862628703581915149633432272916779819948376534814534320003745465278014586629573093321266891103344764273845484773202586301919577078361906742806606516684687805332142419726960068863607049517059250934005817309674549889117739329494232415909377388666396338586990863966243821858094566444357642639367938474952076925208752348447823918171265797159761487267645509006725418270993289658930998683790821099032745063126116277537396088172730294052649399840259092612164014428094069728788441147633927447201781885509092456504562198650030395614565387149269014857083480093376681704360251787290299033353481785278072129727303011153913345681413559590121813814073445745906908495226435774184160029326415143022045806171244002002227133746036195509390668580845196386228014417493846762179368753513685217242005959262429117585897997840969181603195440290295608419772292692777828296564004660139921747818476456305510843685247625410743221857084253505918002176234588591033667564406841948528730397450735843278005008291588376432375855354848315350568530023157589798292217762771998000842913775922387647403656035511705310709252695731823255544919569463195363921674985609118931153971935555501389445360786121586755058236110643285508619429134609012185731488787560131862288719327831974321874800905095663009693312560737504701172736269318465772529866033258724707523518616222544450414325799869462136556061416465165526022746974899500678239222701272896707001732432525788128958011891128368125578985512879337353849531177069034314344783402693373715636160142158238311455871125221727988785600348143169532670486921912002360159272664932769632366537408699143108583292431957364370576168708317985675673862504169366344703611023351491877248486048475061613200206022729624064795883983896249611874133500795778621972995913334481599482231418096848669123057840666112191646361698883753452014746922291635034005484235109374282872829769489156483850532385706746767627400668366851905162687004246649723283261211534021648054455883149295851821854752744774969862577295552805957054151023989759543821565257176767379112769299138819124666560905694696682572694299988051925635838663811927201385177957001214004272804177031579622330052948393666070406671323640006371288357796913081810413972485743404201771832284018327240045636511861742535354283666966166216485809921228793016827187380768429341048146849661049234929506636329358969860773926724548915660293196499844264966648758985413351282786653899614977149433768999900464646062144092117151019925708639522836733216599769157612387611912150763020879555883117764732057109616416264183289283886585845288727079105222398649960849841144871502210192116971313582453315757287895434847587802354565072938984026502239976057830437024667068403567695160432184501600691280732207027669724664053727078184484106553726670071391600596594694415500686026346007765710147959767540510863235899045569674699490515350366833659110089150023308349400513792282406252775423941319869224620266557570370254579165733253382812713981818703302125900089417087454218260061686571099690515492749298040352503063457544399566693387498182498603621660781065064997812326576034323541546774093140716992057709561968224000441298604742893314521510704902565591000412920381034363723394257962101543631638947238989089762557558372113201824372142307325143141101067717834656481200056650630944944755439868154904220547853722921358552719878433893066075589721321448395499380068228493302641646292830454714644316935815167286803649820627093077465643265052108945352437738704665276687513650368926019823482485622456277491024903088690306132454349396514542236153771479061044825848034126525015699283727885922020821833857899745362663932471335065599810717757737946356418937048339682546111598401550164360692803264768651147696061862255442165278488644793704969284855515938431937020178040440509320109074515582767523335091711908866946255477417434330193573395881693054182985323230357965402811048568658604590707044982992836824134154506044486570058417060173845793909905410385986650634632646796524990171007564909689466518551245355307611931303775307671731076988058967225644799095138513753228916475084453123218394967604497176371436796933759065976849238965157750212496233291834250866694659882654846696434826357797866086069566306764182763832086736588304403882240848733525605025788608465896090431818444566744950918534046178344447897603362620725283389330672875477062478009324293408879683371697813283502857459513018516404369701623335613189638969171848107532439660104841280272531322769494585548000815367868215691574371124058726337430386360502341059709136344728087609688988527479759206449330559525979298436972190302657541007966772459900543505658752361927913998578486549932073913038301514790588684504508150063488917930755376501653510442791054406610785141345317893117619443294266865827383162744707755399261793397015840829583899883557911963292355590808860103643511254521592316246725956594580329688016090362231577832747664643391141927385008987868771307091044164391035242187023555133818955043181688847913219322684178566338321145957551378972256525920713983445588809136303874173084294592519789531195812863540478090324419624884927991848324836183267926750755462631107430662955595325975736634658407823261305755824134272532980025276748988087287546127645693928029435956538091352682289887109555857988158755603224392256264004896875845939127407401875440649974323060245439539186716941995774985846214477472881138535862042621548968976627583782755273131892843955406535603549253640456537762823251078373066211712963295695115981970338399700566431479682905723364964974520932401029170475084013274001106662558517686663307358463119258518049989712686956713757848741120424448395424203606454735632386682101782395584632004860192595515978821715460047592764547901661394894524726979309063752727294582482787881247938716749697536190423447694731959572842591905592725616392030899236373355007440308337731483873148627648479320509731826886488521211136450174643188709389387226168330957177241107658460272335204185879066095997461338251030785968169613758287916367698335520026590429123339050043540824528584755354042108807043669405652167765082131284172664526310286823608087841439476134638845028858257498131974355166082076662846398677428353552816833617715690531086546305737321367455684605425371434017269501027768990183266931461135972067481357152283941283657071820414321283532840857894834139262669339141532354537874764602213017300867602073208853000420653588525437414334534496626968760130650126763974995699516798355044301124871619428234541160567693059395657177393672742392845799467707375519884045657073180403119203102518614143008042082344289318440401462383678536060968417207663296555903390317892578456170701482529721045987614275203474425227282937972405814553391094376206315135535335909897744367174136796542724351137832811183451957167280669257093566509630866933184686639114719130897871026639211324987817092525486430439147131744457537268155404886609833498592745649029840937204618861802410616557703984121149780361206672453512163011604296428220178348453423326112255137405960825147899879681266564024421910719560995059428865829880156396825295385040004881874708767281290749758925682196256952773168140023878556580550746392731694187264309730635980620383016912123404961675048823658196371834203587589438758534998890899594840651920374147012683495976292232502554480243072851190255288246180226653422532474332117797210865187478534693863054112115835217997327644168504729745892931299577254950948377854115145592203163364885554755731009877539254989682354927317719532539765135017092562676516954613846347733944863590045613033946863378168139441100060989442791894432405060760263084762905845430010441297077842829662353115573878810420367624946976543493121276704018764418085514573508671528694136503888140522553277100721230559597912315475540994590814198356076190294447615250423609208875423387690270447904158206739599627931529815104684148812680696487541380621390995286160235133332201319944583278017961677431090461889644441639471090312667819089636273748228032169721496243803629666761710401495182649106946067428151922126907275473812271591126816291791376607917478720570771263492083283381989752802487335943859980023413703147490094723177002540299782265242499571635577207192816633134875540908982186807449434653370759168872296576835743289925477875634605690419732373587193198608355797602342880257772661566381762021539427096495340667281361948899773706838991426056328761512923651162514209297763376642211327290784414763426184255370868652374021712682036115633770710164797137937383399631885450555637848283383399915286389292164169756884134772338631836526878154672681091616323947727272046208863345940919508643925579292562588621641618306407859457245471412086272133415606561312313563234452570111899642775859030975892028256410771598875468230259210620497862670746855037327522223128836882937175664595159536711273526719061939605076033000033456932123872838117508374506746939650753018325197931148569360574932938808340504142929617426177167587114044777911937929131870603139951793858097578272227390037093507802365502434521357686314899088624090370859678823399948041307009697376195841241349850930654761216780908056354828395246866547833417081324239489459833662430888301132508791933705530690188562835640228790066505251165364920325139485257800001086623929281253617307820215908352785709408342972926993632615719682981564555630950272257180442329259039732609919787653372142371552677866218474383821101351454417972570182915385199841602550983324726198968979975929815606660537681791590875264971619455247756348058120362856801123110816131831849679441366084376648173810161626363195759232727434586199657777117646087399872570926169603108397681156595987445083698754733855189938628424397364935483751707284245479330007922805600437144759034567342300117432848283613860447843262268448116527582652083298876614817606414979277456991020647158848883855730673186005332643102062335487868784671363075360522943336815662875650369998138141790988149470914420567466794029397688831760598056528514639234570534794602722357558542388420622297379429764909248008807204939514368866508259960314654962516484606699703379517781445411932318734644985782347438578881785603137617887256221503597528023008477180478818491103542084759250612415297211274427132096963726905195920250607804603067049164146023966956488189108863391919607883581690992414272608852585094532670073202448045546382661425315896830933584737888033514313524850156450649271077937341362689146986936304040826446070599099955117161087251472238905949012243087890865666595645965465233393276364659079934850868682053480481443731872223861248546194841385364521224201397917264499641672514724532232336184024640341617670743465245985279012973727237260404097593662814555774071325602829684810862383635735308909697850703897619078864578865385464032296668693542549487408005254819974468611808103193001279120845181419004575412251654199337862031586878549749497379526460022401272847320788726360369097453835646308177897850007147299426847095154297771347996306688098540374768980915827810617339749366363629702559210587810442809867892088378472713433685052949317878814367571272593151477486584107881746710665801481663097133151533077616251716123432413871977244037163105452440645349930182582764853543217087681831741867940322297819416337792030731546085591167339006237495834083810572678457317701717345154040563454032658681962248436935033565957467464453676089587387599137071142608584359298092989258044398400971344407619908055179103022387583703628058390728101201600587061035670898228463486122120930261510738993566394511465102178082912895052208602063651880762393800157800526446734557583911325324139116634242559185804318510787696893264163713493349855800711288923008516155877346014814191835711673221596021113501697193820305543479983364814976937511366947479278923661871859826547984013277478775665134427269509346936126564616667074801816567066134223252600434163811224213035644532050835588424875914723953040408839194201015242417871703516252378926963557853855265639066736619228769388552935512809829511451458367475506942433432237973450851495332532160601549991157459991435853814479769263120307938765708324266002032666558431480693748451776641987742135179748732345727228806957296347824645063969752954787140267079473184279194202164184360190827593668811054457201117586940428706957723801374703161171471902091917338403007134496685002917377078184097834996659928356257777753034238281559347696250195189673438975842066838451197976080960358713247611980268863979390297247712527769310762830329875448687966764401542638498054504977219975248632513970576509289270717045257776491150033683033592737824909627423874008160044059981229041610253704826139623451964471936901216445860612709230684192521144262730783545090906749898925719480371830229948203008799358055404541950850098749739700427769671964564374322049349946315414680574876599469473559520323493191411547097091804911035585773144250254560089594088724264427949838035895739585595536958904663939373087570262638934291179750211339042098950067544012440494581224032171478049717332227923099857950137107627199448399736589558706235436951427672340634181900363229141388120269747432674527418628070910893471277606764534406478391998753052401646774481283927029525230713163615751068350344029667170339717754208274568763475941654860555775302341992443557156889545652093486942435488292340174120487220537478944313915625798586633655088199535130256475372838162795954671840779481636903343121057944025501808366529561788796832086852209334870439495467241599077747563774756274119727445708524653816475352076108169201121606970110897649823658541551657093451440550365688903702741584392355200808213910338067619194173227047658425358134005489839800908375146614436762924405160321546247177033195782972005091645080744797250104749384066314579071249027261366004414761525425663576704590290802966084761345663147294982816578293567826908673112109749279057456716381776251228255948188949022584895812863192192369240722733970767825988512112191497666193727102456209037763052565944724136159466780716868035756885048342314914811922629878257422816427269826278879400565028383101272039390905714173877861544057490726328120105339154221896035494561560681907535913155271718069454863384402878688240309693133698349223644822974934611519905054029213194886160704364399010877581939048876003290303802701487734602311936196747198258712336965305179082400872824881188300033084594693888021355923120936673814805319092540828264663924910941033738369260801087476650256398947516478898339539646426714795040904077482728396784005542823752973977585246094559765840855547979098517303224417284867869096370537667855843318624790186588237681834805854844456900676065064488916420467363136751753675462751073240225022372604113320320493028345456583940626469243578039397358907789952018299736698630706514789974080564261141110610231327858787580219243520428389566500867159411765397466114734429180432756326479056524178313960642395411618984575629211952024314615714227306542892650116698583740578684981347730201629158765458782106839788319127934960874415136568760449108124968342324419069926980997137074486197609212785027473560880361502978763234872379901037063478823412066966230415154928992713964664178828701161785167022210580144242779345183757246601100673756085648544378735713793496780508414122684640937794943525353278482706277794869139963616261680651455827198156239965549967214650800496857326824426491779050724516498551989124477886793437741987049698123931565539869391550901533397112598455861839489912560285636269022497737413734984883310745541524021245306390830960315848754296004013446329526852005985136114625775033905874704760812140820326943474280690711115997497009798274188184944795630157137883543875105855623472896725942258012453326871872268630678220339838314456657300329265645476367505893852161610093119411188205761880857840160677970428040156265620033111114706714145303842297458624717863178316520942455781936286584809839862391178767116777650798645493150761951291089404237190085959310348530319435265810274458137380229981282610702701024730338392915014001537080224750616306051115148571039927413558652078236477464225375067065952533386344288136023372216104348396372048073286211251042253627429417865734642198395549746302075807294662539216104953325897559568978927635648970537213152380727495298041358834964089222507262958922514160925711973630836410774264569783280006584217220739985365090342032824349819256288421159876062637412382519988779980769326359774679908918612817257695538346236315192088236332254293928534462494690249712793172831466354631102548490530825687317652305013300462696221796522450887300602984812959326583664048073776098070182827410661224066274917464116409123275207516603720460997049336121855775946495474730224710210801422214502807868918390523356088017193255349439284710963641421437635620972803226058720753102637118283268482129792876815709636687048118485573254221073351957972458147432814575285248066203026131048930997166209744277719428839470962283133004417002700546715375239030903413558353489613196394618612826736460067508422886496379723563502709440420701169970631290286164352375098543186288522424396100246960002982197103034687543938216607223929223805910370959901481332192868822110124859329754998889010976038581092746086041435214954576481214511789319217564201406834455036914924932811519102921049560192460143813092715564655460713903621658711037302529841677398831347581098885260688647747402592236105688177889357758783232543654149448304170808241073425875265434956466486580598175372475967099856026257754196370494664087023384290162327027613152531452446638393631483638779624014916784912680929961731637617781409908986241329301754481789786746263126574513313436822624934584380195699923938689756286798078488577321759429728820653605762048478050240372035509815981521805270451006564648134198396028692296296241464111650029746607804906000504187032811175113168431180479410670785321650876773873085615301160345729693174411023544118347130562452172494914335595340959366933503388139166786329550885731134854180594189163882840906612813643373433077562042189401379999386396813069893098459289604055139363122873018297686152836732505914458920554115892298556142380871414982515319921115238270801327499694028994974422972426908889552775722148993525792534928290951352681715359400632969935469233864113637108157144535661475968417171772413305834489726822504313843206012852593260064571395300954284336854089195319589658955033182759557791797921000771285744354010035497930941624837194023735555492765476971708797789027404520590271543945202018062943643615158056485383903050066584943206233284328730563778444955097759607095426481745377796460629595993779756796018290683235231777553132550379298685299943167056320539061978323228347752923809208399576535114979708453083206925256284743033499139777786678028879314719735333227086158661400853837903006810810937538622467350866000615153527124041927696368785285289104846174265047802291078182563282082820938029550099452369479880003852643030533203589375703458086246474939836031931523694174611471284344134011070647422204097587670535635694222542333351406877667079151000343728066961203136881428224460976066324361204224784825389962764368737163526767387271038074847660385347140783519204110722720635295750874017384731654720171513124195985164940218822669952225953357183728927449432958565323453947748899514001322930136468888002531552704389633837941576374269171789933230785062178104585151809541400191269999806671879374237977295252459179518764048332057905239998188961882316755680024448111458571549412537673037782013280918880136595138551342026799125098343962458322733805238450288729132500507145859595472289715435752463645190076523710147377149315814850716787783273310613757653525481274505706668211961549975162074664085084316641107172824889836747241576717793465939509439841071773892205525325708392396530085451760457995886691650899772946762667161971563066780599721812522771810011138058152762611538198754347634335876266508141920752036862286824376084622478113987085121066748882401173959030458419898247014476521180028975615985515671886515924138212667041010507597707916248044167114559997374662706294826787774351687464452737412704641264778941686430279003378513131415675718530063910585433126246190334275751191799340473903967683641935514121683627765543565463841970568584650848894414400380712294274617785733615693894569512051568828045834943978026632827692154382969378867271075964291886988320127147752549141881737331357604135029812350429112896513579349843375785910958876991407664908219824902104426681566691750330773968012789502624879658608895876150528236378789934186663711607747840819785860464684695149397952760690510700650185740435183635188461397407888596927849106783217206076807569484417235792199724520542204811721250724305873019358515726860355362544919866720265401899943006125915748119548630351462074021625952058836255235929093894488900979228797282479915341563954274539373257128790671724937187065565793884579530361778893171000341712143733341832086068479185383743368004598161895049429773270497882678204983436048920484753079329752745439446390824636491511374696555133698018646119337525264927858025328115217431518074222838126901118309310372498274592279197447533387065044079938290437700035563279627029692585526602280152854489906961140768584671848792812593460882565832527787120436039648930663029253151439136024289288367892395281581946576988582550191191492265322371658117082007487907847975841627574940448970964205259998459549178226574411068368371388345830955787591556801659594135881807135714722008027838320710506693562795119579364101477192419206966203338253305573118342958297025343151803470203140269871042257029493229025841411390637003844525807573705006191921669815241423339691548990995122774085755405461421656504927579412134293187745955437311548415307047884973880186144087813851137264280252612383984013494327893866950453319230598333316394783159758102012166832594642355702137003217757857992560072457613840464412162740325526688945967664120683140033958863591636335529700200266401773144858028718109853526589004937074995479110675675019979208590728444385423070120450484328333815839103826004406388084081805789671837208797392264794493164809380597169643920525636874956979496364815828292258049774014951232211634947957169459550450990833269494630801690992899854309933104241113631892924459603364272489907959205964483915736969402837995974989990631600186369546230459724494516580599121701259843775398483955405743104979567884834672980437725547741000870320684837946288126248047220257438180748397150149423152267728144940432773361580963595102005392529903189176339486924547604530507012657729146478041856529050824004643472521060142524447786818088626899434049523689103167220301033158422494119786306730053674770328429642632605480980966090719955950970572294441011278426598517034105401298014494696481960649441521336560306005194533315585929908576799145762885953509002844470942951404574583910527973662511963099875247840727320952522286096005148446800109190385264685406036270644678891472235254659436701432266997084432604945625625855642669375817281275462648950158353017378404407130118732216429768443005859181528262026448701955102433323665672829399466456144323524886934244290926562021011882097300442838461215677628507392632973264925173051339896751166814956559796172868278233720408227540289098194520343533349178973589794428549373686073964223342701052714854223278483297374778560610415090261688027778191890996746962370320802005032847852995811710858891379505378093485929351913741083758631356077045609740411031722006352723791812541952349347840160024032993428825566742037022423855158320015666450023820380035630267078038013197693373752166722984117441601941434365326493686023301278392204292593897574714224902468361525241264176809073939624640183613758677682985479594042420952899645174659211240190814106289352926565654447739706728925224994884576269690082101492714929371944033162111734154439618230438342245215129611295707974715953503099004943298579991787597534084348567619295774203408637678109219272801675338646663613098110819891297879165029538736393775564289497577499668426252282796007553347225803181014839234122654613203761148467968653380944935273115507574477538408207871924471035000462410671917866849523064891827341099277447234167893859362019591929680679422962896823987370961957685619762167460465509119823911972343181042362892879036755189576864225604469435448969315019689510299780505985967723939194786306083934226867042708101003848228808597464082978552056034966413700350532471190058658336552622495543257574097864492156828009071090719650787639355741197761712757578731256724016160619119115630476426087246025757570957615603729343485038285707165219340706366174521362571797634632428195520406332708343127038511036204961536589102543127773091259770068048843747679058248708114515682061001918711668884829380369108381648656806091845612196513163480038211336438121145927808338670456208868703678538862238429923956605329554348183128742500848192717557428486618526431458156214091156973231441410228851404529929844366910753651249807977899532114957030463173557197676001637207158894068598425252666656192645247421640294364310061051352838654179945882304014650140572860861857217504435834967406815324655915309160290510925603447448971613978018548055441063155019915382513169164001552783403193486833310873994143066070856026648582712356206059272218579556648901940358104275293787864088553122544836182964499446742146115826076999446413375191990620283913733384262557031161315012293523981300169705672758493533423488243373038074075871954330364886000537394742842502177148278628837078127336371476059146799782019278347048354792721302915459823644906134217010910406417723346535771734573181184463784098102600447692789982858245934858258005095637826611496522112866268844439330792989898525807421843307710710132846339296946152291923275298243600343615798623196696669574713668617622198244337117394277766221904906863930898405950440068278018906297535344893720647692856928606749613314480736462770602331587051705664618492638596467258982500009865284755442018543119075646554441427988534281965498949598731735131939968726982073294812471848665904164519914502533347441288326157498966216878961144080324163092821833831969271422205201313363417012551040788217845321876437310181909522306025780465652826515092583019077276640149406558351151938449712522155413921143906092717068399735523545050484797638471643673663537618503929566254985090877956897744793628801153431372356206869551229172058197253619982074682755327415259194532522674819468008050392362355590551854830918520926566866854260582850647222502770664907467384950182911873068479728775074355259629524539915830734607978940419428453827946381023067827260764317941090333031286712619389238186142959647169060238250794749173624338447922289812561035122855109434238816408927225414713730224182228557268252523987596348715410151745435777573887061691338383025597448336628350268749359415802096905667023103337352862254123637575335840327914737147096095078294025107863470253742769343685106963369108481735237183833052565289433628494023721780337070486816318073524903761706689162301356196106540210501777867186394045798083144521031109488622776174952092010223441375417017318498642833943368922826004403763561714473103194712981444887339387746888661553872417470053467771911497219298102355375308027947812834402357925505815738491034946739266100872735165438871232223712184235241732099072765560177238268255196062674969607501078398569388694097688751215525562614859780775471934926665293135873127590347672896714448919337605599123450477741482395620373544952990365756866194372988705199126114872741876551562915413481281423515534060924821397403072540336645632628646824292883825578907786532129975269593041528221134380472012119942222500882149188327254427423665415058627040948845060258444573433469050036566361490176908626416835446270541673401496250064966449160640961557134103970134573279276238947101109301972833706320802297226395715018515531256732736046207678042710816427866764362670598095045825175598542440101437849105602532868973426713618975960059228356487677530771082872367783745476096966996067230022781404416053419002668587155304667591055572754661609229265819418822712552354574563341789234382369510706894690646140408472209064485761466400964861056205985108148148004494006780643239104222741099546743582935923185536014542871997725816898256088144688542615331922302508405590672129954536044582910084694722245713397082442040723898119664085909266272018382630591721491984224775433223724467420984358776861216584914516061681448512458141392809995057550783719458071856724076921437910540746542386575198237414214716472604575644889385453636921503851969471444550895480302064652520401165228125650989453938260038008970931449095882010566881560344285744356449914275622649427718280427491351443304034010978589469642099830337688581964060768611556684741091919278206347748994098835987517313987578062728273389599402415619698686643902525730553650232769180715719237960830635152418357810368383817861810555373990828050099974476560682488624039889494436290199098024260039291742064906026037698227656508260886122660899298357236556606625540327339133023222337616803913017317647513025828811300891824709299339117699043561907583743280345631431691627850665287830364890466268599331982500139089921483914043468779552451511692102624213832029344740939461252503628951919608378737408602686613022746654551811661441078221757264136682279201129194736546550508361957459289036373320518393626972480800183961885465273397931755173988900091998334823781704505116374088600443635902684559697231940115218066860629450654022249866187206977888677071903531395140544145937014491252584653053019140772744816841613194644675703601994898499313608566532357992956850176037952223741786212161732213709082165203715329357304395121791980305708832216836201919729101855772463652467777686324643572618251738476818530771892509757405352796732290233251700626345117766045577265811487156545116091161928632111191862064293479195653179532531874617902441810862454556470470045340643752330581184186619782540434550818637715213494575825132680566067464487943317986031476622380676773632966912095317006001583159956903341622903706693107552445412763202752699004384365859652982045243508585979058432305663398707969561940115836549346688733558057366181646114916485431539594042678142636581243584041363929323972429210797038272607726550389664085187956256692723090565455624801052345139346491900637780898280990571984755726957335885070592259302893681448436202344166791332981628608687330097369326037986997096827297719303670092357488221808407892609510895633107007574591320090134893978797776897393647375353027972043433781663156144001456480090767499085877877768082020584565982542544813620066863878272482232352050417418999221320716117975349692977590044650591981107766655408308410552842637862631275110682740341103102277924114309408566896924802773453430342523276252819573468905683616390992180208211263839392372703071649794792435308785141255669879975088173640890701859715888843783622222569096330186727589910569803973636402733933213491444326273885085525211916596706364921127931248387299381022210391627026753578795079019076862847784748987038431294289542234353575248461836840966803782841297596287799825011252599772725329688154999337499211239099652471446734877235765100708884608182368046426178709518294230181524318604063261213100743507524885833145370829384371165348296076624358735820163519863372898313038034092509220872888726460260636846535838859755296801851782734222439333315002839770202820846724517388019009736627317179990458833774131628433129963249089900308697844953121275414517971007200638414058410936921247439415311825527644159075626459252739695871614515070081860867114457279002680659146443511390787714733434482323301312734043847694410676800334452068133184959409176509436969394632233733038717710642037422361099423515594318691569688430715738220148053384114650854685134374084141828217491105958360316373192265444346976615771926233022747736419775053942215713908697855649563612405142752301865309412718420633540221898450228162708208232797250555847013911883946313273638887222176228246709750236838921934316528143249626651894522437586867997694560786210472333389937848146269562431645327223561898830902293481433475295201190414930760189589798927662927804696069218407777344780428634924290250578726624733098982156003204516388616648174373434917809274160374387454405251338034907394452549174186290691022441203540410172943591693415645580217462890251289451233999586415914850637038768058642520827795142429042259315628550287950784276409763073510108337832132931299017743240311443672412165708119759503136945970144553457887812497861321041076239855696176409388412741979956986569933026327917871103175323018157550056933321644534977495494936979414562231888548266220152927070307864164907850515112470114248771269451626309429658245228031137813256418622840138693431568993105908627822145394641618620467720998124279703995155502226498672443397384334373088998921603279725416824882761903008065047338369342465944280570738236257900440346865383519992466151108237105513840480802367123369495522363220967336466459114151103525251154516692019048338774390410554074143360262536276030715356279568482074312988987267047257703997308647261709567255385619289853180259463275436962998411261839058445075658801050331617592101409806263162857250837210471798662580801838830924501155528255320309384366709452666957839356876840100541045313949941822366781173603893678429392344432749202316289287269808849772420502967741294773870326188135011127237884068144330435470311605834208514280125170421464226101691960463629253064614591667293670343718320613357285146877732585742592197222367336878542131664873478717611535209315173722520583376459092829239852600330707400551515320279104153996592215834541185098263364385385831473572010037197316422409718758579982529404870443514880739575981290149885404490337021500327129936583767666901262521588245848974695722999888594377704419306111604208022565449868227562831353632638128373874778948240434657260130594685493115491625453285006520367553524540954551508075118480317508197862944586211162789048448732781023052020814940651989890211109949813472565953566379913474752528782930619797857876798228252638597399694490054221853444277903353751207787155855798762317696297983348337921277030401560305398843128822181232179386486194883018696286759904693266113963537743076013229379314589055092052743347101964016638576366650487162639171874208364964043367343992733608828428804489537349063850939639644012476518286058972007140279962918863882552791792463054184892091804127928975802801265589594683024231721905775798697695536086699487015184890589545578129097199746906389466049933509159472196891107248718066454248726488141884257271033104112266897383812391227189041400911730278691705043544827110243354161440320437114574018440256910159036831156681540902909348807275899863996969789771049327197098232877707179920445202468598194829017547117761827537785851280403414303366306353583922710956007838115412277711812039005616093377152634413627147571930998461122033258501486258099707646900301108406715795373507292775449320561256409979915802770607739429081713453349021859068938986013252179254807492712794262698750872714320803472179705362658019192797637103025044305627885739367066535193957100072205897368922041153727165863130403070305438374042894721667210538326816237620616923601600812289572027794647372805292403942064771217999515455048574335003216753932195129167749392703819176656248095216486148848630118833745908362742217509640594041393991698745560197515992661222450952404709811816442229393263196255562851029271740653665253297600708993900929974465875689119219863025419059349141846729931538685622368160856450160185902967008415126430675065053554878587492720824304961105330679994759169916184545653989806321754127558737333928482094127049939534609162635344847621730993517429370808771045927307502943059169366647919080115641902634209869730727123688135261534838356335205171706116551119475946633506592431558576485966822730665807814179766153604284400639072685648046756230303202217310504622411272969564811819123290853982031229866299667239239480742347605496405317015267913720196363828772036172075861367508300512993591369489419560596438924522794815388974590684349256094539361785630018265471391684813495115923542790245779465640836355150440022766758005204081576533478395639104247411278859015260529986551332830749331698111233451583691454758344313559518908868033550811914827237124472178632003865987162945731564599279633018489485085904371527314200696447384493722925280302741840593312910475246907220828391015154730144796052737715920690017869424046165519957443212095036517027827743997013763974048423531096261703680242818024874755185692479461349516940090519429372040361779276646033839043816220118995338016294377517400187328548383238534151190904352385346116794364072237282439532264094421497029017146734403101001275230571701780975693238316708005341550543745380586531398771977136072536527797883946005967441969179389461142770036514391680109045435002692435481227593566350726256062370136391070282234345029316989456293698229578890724403278804089506792168452078415893948716734766952062419512842403900395590047763574186180818075348299850326483940890989120911516314711210157944036116595600068255266477555665956846529904073964121035216744892529904586857791356075929268520676071222277758938479003838025321204002477672475060696870950619471513110014552775811569219005804317402504826685217840826314477003928609221599032614722888346715479019609805515291275058415464295755086207583569630699903807689777962355006950210544679089602425911605767604481675732123101326095002835949330624662983788937336997090854753993617976546979752555641308944654090390162132000273358372315219492375522967968426133320191737462196277691479429895139606759376278988370713910169680322728112628832318080233068137887204111005032645064156850952900990729306631546488255732527434583465883261226961670043694649691176272324683630666788405686032166625394259457887058863979321594824167626837393340166246543135692633979440799793089591268763093063520007076254097953496462009416688003856362668822898207722484028923191299574260220293601612639063103767104711705323296007452704288901349758508621588864784384332283189187009080557540647561853791316369305951741748323073459610656420988116359026247804916731656438201503916499287908070696470260099382755287784441503483176288260646239567362586137779793975594275051637784191623830700951899055116740852230365300980952139901765765769322285112479659505635665893626089189886559009415702128951941574673484580432313852408009986935587673959393472607973078455581782419685053776271913924885824465951326498673082668137882176248527980328188486757639576779818902767210530478980555644466625575889131330151279803778823062421936881020537999088939929981594733050645252613476112317961723909085164033681607291433955601022562788881595015085568095799513118235282540311809035758988678476953034357398928278803863787714215394326525071457739696314107555298849857226310918036460343807872205997100075995307264161379695162565912122023997944866340392159904267060065202702436359064944539002548832427210697774168916080652628744946759381270989730034269516923984084362229970987474714992128242596187882384185543729139534846736857130417404385996601847141013821989920145342077188553996771127573670169575896765735633897482646462079192311169993723810446813889115904554080680630003616880157933733833214117024939022169368628729477440462422997687632683247244996822322494628118958002469100564327158193846714868712860865350589212573368283496375535533090614219102500750536389122813222693253770432911793942783336617460419038128797596569249730524143455835161591246294901985130740403194179102766513470389967094086783721849938718227967495555515003267692913047786869667451910388285605626969399728905300112987128610280740798590167379836469299657656272333796934106995298449122611372173747939539505277810545700614263227063347494063461272615993864559599960692804093213147919005925099359479549554200872563624241733346983712047688050623902600248013318208738940450152013681195293487040482655221615473109131116482554477205678047453799591480853108871069716865046848045305244692110618820552933669658167470517799111937830231132419159726944973946610447678007787461446074566155969802138708471335707326148875415057764211951286743484876684539683437336126575103560061454368150571922327777314309060829055381451483061580306748530187928081405931510289541760253917721884820972570316528258381447455737801587045926496044386915839914637803416239179700350071225814857826310160292179528154992987862912878284240705234747242340116363954346492194107203105213729948222711335009081123634203535765841396343709011411342924255478948029039072158566996810751288967483878030851800616633561931197388514338766610069710993569783635433150681563713612002978117646520159190868182412864029228625456784187151579635114429086682783347474241545638247901934438260034953113994253267405031226920917695356341461417736021440631936179215583714758394307640242148835270201173170732284825199168530948411276457825271673179929158994886554940689603874423523924785100896623664241766155201329465106099896674340408098385840699949736531795354263106490068309848045222993173938799787555369796559432833830968446567129993419003021231716980993340620049765984787367398912936856076471782206255308041121001380989714335080920679610960814492294491201015048653628844840680690093323584164699711985622665786318941828168894987186932279549513091750975146060576031184100520919248240411982506827598049062710949821388153935485630519606762802523242382693411147483390323400264263792015733845306042112537833245106545082259688423343217639447383266684924866603242818309793543276634127757472877910273503477638699464834989228623603233561948684701580509976636674181846680312720501431989359803202034100000235215214911535049146397655023949509188976719129694849785737699411240248031598674393814641854680587634191466978637859770811190145786576098660004137282433277177060616789419118831769365887920820449874927154160618263112759373579110093754661633326669568901008730895863785276715111634922723434459955830883914527201735342076298375059291551189055084553191641965279219600490739447141729111759460572320868498307905680859370381954700787121419099242750334785016461816690551469233890588017701219084159907076581798801990535982929882452932576813070961672442280709679862456415211567860233517633127410718039838037111937728409764860296347499847151597646884273745029014137658302943503459044229946555535397321794167105070692929795543639186342630988999930281326132555666145437835059895488671777061392220589877846666198910710068214913461619892851657068840780041074979567928985963031533848231306438396431624114030154762756401071807965197013443240206466896400104277062964220105940507614349241111542155047588689052323171098782860266020510151539650270478683720023945673831631253006306353585364208996322662879587017286466259715100488614610628602705401950021481985684819569175724113116117476022717394655250186537505347715571907938537670948906948100389520267431050695931163779067335156569166408611276964054324525635304386682343279410952276105259909437299122071102238643518914957422705259631487607410933996750139914220400762043923251313918285857699816086530125381707131572714916976882159555989933909071462509080267078460083227445640340857393502428208745353533230590275838342873638972829664962140575038525947754730464679048408927570382620618279026138407411689423408815583337169482592602246305999295971795724488231145488381425300189465048593940735788324519009403428422547505379872406495398876635290943818785998774107529253925752127284517690605943611908667926435245659358968949944368107259248600334926405471346232107831380891621890469309832915306338188784604958955712434535454180744590013889931068580258344192424447630229828443521931497810324492686806567252988761935871981551037678213369468713792142835877918982522592898728454553213401574762944504432691922718659016660173500750046148881619304522446939425923223700028110425689319540126302059971979973549227669776333280414300226035822276744632484121937244044704728507242766406834259083860415970927398564063231114410328125898027565887081704600537515105381511946054642641041735775637530490331754450119573888415297618178245405833971424258737332343554514192235321473566116841443711045631825503306094409121838958939526790484629170290950471400792578571253588147294242401429979501688110515076130352402522505034580358850685550899800421024685982582926320345722651630263463984182414405174919635447188881992757965396515491589085340728524216908355672622408519260890369831712875800734392001542798718270695639310227972394495052402524539206547209423822810920724886674800853563689232297344952711945531413001187439284963965972080085419592301455786489938366128358646993860964899153130738606151778587554816197481290131587151765532603248615791741679149761640132460304534026473585845610155715696724852133618531203983426115033882039754018896928485784957668266721786423435911427643703815131305710608792289013285782577270135723033446419121422997814907748888621271083075638075298943995715200434035734704289796737506202567726084429006552512636306159969316970648580048989311729523792771776299755299348813871481084683510916132002242161040109492600021446164380061818260571783571403105877758280845973710338272801283629301447800065119960881014480842777984672519391931612520794343953132166289503354133235224460948467362902389679911994215370634412491594198770946783952599997067508572634778764981300610909316520152813579413230525494656842536666358391035676292058862639026366940036310145442062183476765328986404448948057198771594285881049617011539522504037890582936652984084027143759512385985737110919069956778513994540876946511141147936264924984883175555294087805549712599037918354634743583887902446220004449966299893341094867893810235290603349440402410033383609033616128531257595049415158482682479093394656639524117977898633682954983500275679718711555297400822974055561196459554816445662237355503108141733510973316596315672812420398098191813026257990797269190700041932262948554998857857582838575570693191834643588487846929939854239379889766868019665998608975936598628878131229075940467192561829338484113873737369698318268286726680055252218598987500862221738347192526550265130990394375909003434701710828191375526295653876855703794154120440063391627557622191376530477987519845520076838017556056801838620347301044093470450810003265706199210403283126199947775123491167925767891667793571837258136143542270811986485392664533616435393277474519511138114744671520464549980254422527344803235415670468988517227015273413131542517794289085433448259751887795479705082313220503384069120682986390792891982813192382444263966930135289679474176271384061684836034221843746769067755200309121365322705081811860640630771068918396445252290023819949890021496805723977651359518280573798921643798604360122970477136198373250088197420064964146440958578730588334131752407458929488610103557234644720233404445301881273684322899674913714920984154923631614721675215202363736548662340645504218739088926325139181219679751170665966177184473924245659038048464613946495876744150588542511382178825682041473260273998906885343374683398259875347505440434846345995902831540008458923720969805765846773137263881411169914816809469628311084514439608226501455673722178935164740521461353336586908578426381403513869828950246054539587327474770965777243729042326850268191646043630244750467181961790702480720724425312506198752529785919702464652595484880741389695929526425063861053190919146561059385124214463930866090748919653590799702089973327028874788901471860348988128470766480315498994855147561767587344655021513406935362286371285332984699385522070082894898451434153548533003920999197071666860470983205028802163091393311334187439191948229946852197179972750710491652830115051514826284571927832469837786973293831970446634922007122415746895408059574227372064080150735035112959466536829329804876735688505296915332480119305926002635304412607817377996735481838697064293891761708151274574016553877962314166239513590969794946489444646067307518571575454114334324833995307320785298429623217280876616363759953603636500564128614970930246085436171827202499350564101032335540386856483562099723515350382183767809313993784095045718343801696852207212896230551863353797897713916732577943419750200639564455841942754640836141698192038790999883319106675400371303778966098138187189615379847882183787557614453276162936200358299358053635911548350419096980279526477170702956642250092716705466534564003658300591140668893385509492406763794499459986619837486660140529104696463562057053975709695978594606489543868399755221992661968392923387299926447882226030984962303883535183711944357682203587843823665198806631762302592300111613513019679252172982799419607318897263964050164569356993298477401450407572532249247924654969783165428542201082950494063425220034519695796506595166458861772021891430095198092971173593038528274648663503231675216169447983698342596738539576829053842284699499311419988965228858424310163292173502642810025159662433534953594640004940223335065030660918082736766336806506131889018718474366900993074197567712899684376352196965717281262320703242779900055077726546102170526488752777019462023623968245526047961261025366579477959173351737609079793745717662020287046470791279368872745189764401786781340426711898989167011875996056169480284401261699874866121467786265288821433196192772847713705246244441123002922421012211936808205958053788463276567211576652168064416497829717780042856718376114556143683690709900208226468259506134628135163730588634455614299762184817534521889233262521414064741290900990209999058166170140246393206990156958192296137505478276898429525939950628802811269295606552794784976813362181364212798803878844633231413113200783694138041029137643386124982715885238288905963754064113098420544578595810065221738267614862256674858251199809004420731667466237327453796712517860538832925220580943992368930067369237977100968185770607775985178839585750170703821591253272661711005720588123453371453096553471129935817477488533031398896386905707707324771514528040001623129545172814684883571431605644294370180203439514299516235348576911787113760787842035749510903927306040945707679124287881359652348822855807061105672303481097296056117007868973803363309208967721306653340821619409037372353666544370425706724772748984531318325683955832392288325758503613393985031078760917173238663787744791832788884625898248542678980503722323525238115175626587084602809259025812112710792998789201878013452378645161640332551236075828861991871583962602151869804538183980712207329457759069537218514703421315527706361676587437022974679206280486147218822091588573169312155277833726657234352899444235696943395277598127648074268561604397653334666472627817803351084283283665586441712436598102511001340256515032697339920301250523634009902905788751832075262695058134326985998981580083377258825964926853485517278277429021740800039199583481172120686483117012414365400099404189039190716296613293761601111997144880413133330553105998862841291919818338795148112068710772165036803837087083393613907093607428206130685983905179165062072301752235537463057878625977989657968263568773397865586520172040664920432393124218362471734412856991079334458377455765198127645815104928559669220910481907067004244803611725066201058003697881153395760383519186047182219632030063870709372366266363797735867566368750617761042442731838301381759650607666419305635333532916746866518327423014701421521333254383333224406461414777300855435138724238481190867776092019070417321107257407056994938685947743752372090546674692171132233592355761338747699173921218568438976374976245867909671963309951366646100037735013423619434500395938506684170459397984845964445408078225830120556302641769153401986853903611825010130259435857736303644980652219416230285984089976172157989775904793195697677165010481041676037976393166632683742038445278223590146766873683034304675329110542243230544178308055301377335490809232583272538677707629497370176923369544052690052945166942631409704180874388921374880476654215366018823273685172309460062761559565645555440118917236191193372522422383730689856697759700190240495931594870119645131117232654502079753506397489479292720654200718550245994626720238606146499297481457486120913279297414072283713020834658080442130250754440728799523371161629037310395403403000548860994267171276979750168876212978097147142926959720230485389600484095499348782934638305740872916621804113865970596601647893750005868073233520175600326889211996540696435706303513800223874829999870067366170603509678198333059169835795619896809843247436384571942577453214482321069965378802505869118944749610135977052266679575032399333752434591738704963143133467094473870774328906778259053692427528072973936214675955814925827533606174202407613357042005292602335225251397274899242399745592216341057877907824179573406986815730794597990730069606929257030542628348305235992241497544596925585542143151138998601564695021866294594114325622895051220611190439384783806992923187760946058548487862959408235290369568354138185121903072102608664385497664444527909682408177857622509927312426979512780248241494588843797820776577082225185483151587925705125540009287194114802611775856894744762751925529491604516198326469300487034957972483054375604831309661267962237788738883843034442831809139274879619900189488437225013866679355841414698473353951572725059541201480180176430495297537828484864386824174666034267232494381289411743248620187614556788989079675828848271115625652905699497838598773639723607077647898975026096049374447821361515091234090672207041129356775422455041286045865157009169809004686994519219535257326310333333723314853629597429923738223588018048403047237169598809592685142905394557178343615538435677008087173476031888512002071461829245586267424260087638947576888174526255009603681733374451731679351802295243959699331991847583780799322333058514689903687697699835215195628302089344963132241987607769855041284443468016980888114195941336935955001327331718894252219484359684340485149859800809429538039185025107573969844094707190520002412946915096737490029418622645179463151910596805467731715548123994422658866035294273651091382390444346132427244490631005735244197577505156689059909504905918233204158085623228403427602921526112631741915827064674250703133279438533708276743315101319816904024065146792824832971168778196569511134078917987387061389957887829757199093670316612204328583737484805879622676028126401917030786270276409407130899972493057493055777553693983966307230541160014220663967809986639029155156322640034093794636035806623323922801006268108932475998260587705221220409599126264640081634151648663659884405577308097814234292279526138449273690620451036825954182244706311732931167694407832090591762462574117908109605536874820576428576100957520914173721138388141535031073176451281584869162913235876506301665187581953274814724634766811536779956741942356463621545382139673766445601376037918558452760884638474750303165390081231559251443453196522848944066696856465138579519303530726186460815059507396069831747246741676627599515673291076439255603955521453597936173923778548880891952145817776931637372313536977639470851105678925562716221140230964656891156773648031250568382710551186655068910143888064956726043869600553104816031297558097124935658829117487405022161467458426498008904724492034109117327422793200688084947484448474234765015929732119653716670370672569974263932617761526217334526182703670242726913560120891060402723685880021689563499679895755733517289624874313202745144473955551022656310629520340092113508883616934604468796589023297612428411806153836073862589476510098124562442812067349981682116980826191417075555251240745839907036521874184247790207588147092997601404849706014635618927709837100427510656163287186644280161931829516207862779396877381615548969084414547328498181491822942518389983774216509748802502947417067952825749872433769244374259275969031022135800114110133930720981011603911959694189925447806072761086632220847257889926247621251881896548677908664488954611948141504606887772394606950293431869685679329459685027629747013605586741665443452151876045229904468343501510664076022708215541031449967550610894753578723925291008049410948031572716148137886071874341683472592419782720909600296028422319026095899024725979461651296002449498602579747194536299129938155998345375703903557928672387343261189784187329188929463424259649864651333058459049134303882843427583122326161142065332677223405166698233237112471503596818896231900532089196848126316778734860020280116273016746394514754762779656002096003833770260060163666977776375382911816149043894876220259785238989246137120348173296687911289080050675932314467930738382632426841713011324920579520862515464960394108977268685606296613945033159639702811485553184115991726876616243845910878405311220228259627777241226315671003924724996388414729947786562225505737106199845170305593190965224382428374511096625609247571706952135959109078280448730903614083033666845100880336927908756945998177764325163670864599031542839943197906970960823170594623374186698511166683674386036852045124582831603486283586889845135852257870857514966330748308573363476994385845937132946713781361453559616992586849372543554358325973887896162553363576880558838448403667009670714058186138099048705052208525799066341713682349833523636583701143824940003233704001305688085302741565059767690948020002244337362985480820764229837465540122807336315686541170528098829679319567719704007338382665579218472637575926300627366789527602821628352021172807911802646737799994266540113302227763345616112673980559613525193809045508326271120969358610865868963935206426923168531722682843698598774622024045232928157340651162528602257625082623483962331117966025283945595202810618882548112273592275468245681924060004143620037318111155946425930279258133573919504637764578747787904708423012291465545867489396274100180360243587649695703866750180580200303294176093981153305674040461173780418075407280816775011815622665865101668007209325796899227650586378432921692989335676263865854268249972771761000086869768002376477822593446533494409141959643536683414334511742605632666699103759904704379402433565101835421772489851946518184077338149348119930540289148616642623575937572195537379791941489947431981875864546557719373874574741908342790466971304142716698619657359742453908845887967496335655743287669206666415844816651425525790944151768372485211744662738355886901786655040639428666359531297592496871655850439677340480515585567409688923727178986489449093135359091809175517001473419895262684066069375422834396974431303464260477516485078999295525690068999830019766995620323339244949713853868576238049041868902493184415660637663925519967470482751964790199461989447547534185737148839544460914337620936242600538731687184280579938593107375521409400487411214587480936799394493281263922819914666437979461834591139301495041712592671590629762391933496003310790789583725598897976409403647063775354634948577352452329986537668473737964471669125479044415724220629808161710317432899296234204528618816815356975781616861993676678666450643271451716690176280022856546107031033289253108613490078585363138476893823304721115987112839338184558763363439247073200716784584255163781161908366969972621704711234353169102796000941538519417345073890984875063305299799646118371030713506176283300102521537824400977989737282558235356864813771702114647199266598123131641621518736943507199436932066732101528890690640821699345648272548356037418245561672971385080542032748895154362568216606836754689528098196379389599445744600274177705965640881165928234859487154057626661127748978823323500784599680440282914327007760816675678413673877796434793220470442576076830643471971405957303578636458233344518963283671462602684537182288584135462030742233252707616687399634990318263336281045098299765995806800172388474602743593033711950566828698698676406679400490343938421676211589835445498395136543247421686883392324254255207666379608114897728378043715671619759033409575209680260599055060274260317793506346739198429252789654076509522553668945308209144112179847076971091708617106703362319176499440317944067184440718288598719760370472086001160410105163946175000083203123728167496205389477707201279049898297569468093207010781937712528188120369376389998703963467628221495589146458718053725367676792767022476322168528487884460995768668337891116587645974777912642950593835489428936467656538112674507737822119790546745217877803092166232817790088089068042060138504274992580132301269817373952630104236112243702185988766698307399300545610598278374478138539320004370012997784306775901324575995089736332195174575576595423546904640518604849705021579708199532246635348471947161907911568015753677695145674883242258666190382444554000326177101858419006150740890003490856571777896817658773471209908657772695317104393088137522683151839849737394110757228837028263334431379492543644195720181385049419392209151280971176844667250404852726405224336546329695748868124036355321200668360297215980854172839128997687741182609593504503118991643827910650499011619723500066177582428303009268221957186581542820984512053456711341920542819219178751588568181034568173355747445035518297592892671497674153499404871894066666651497112791333783961102377107570723681186232099906356323579664792389476848100850550664545859544857229606118117791119263416228445156214993543689893490338981816209737260474854612056285575588443972985867394731013494762214334566707164973079779706504548894130059996493595344693011767631894839043676205748327846327354042270914679365260446102781225384085578330643295748222868854088267192653660106370782747288762030066651857393306082449412032716939915037501280063309770622300016884029740245695168274868646911221328231149681772797846164149038559690658530851486061003653925833002836603284773384533392599693923636856067745165064925203654709076905730732655123038029396956015421045675729101998830299607293219640488302438741099224138572007945435752898237229740745275219022177860122884402698922343222290543592384963781611530402708130114352900180041433425311214124815535946062815943332639646688726016764500248762199566719108915492620610006557496848342695767824257895658108694002824675441678299088201908784905724686588159825855826928819075828929768224596097399270010961999707262654425422504665645662788439253627820384436993820277195621092558068728333817211913447140790541036928250935290784933093559315173024323371372208985165859851590441570846677953782858829117277940589151129060855104064466894359033605572077312790719436912019331955824115925442056971141820663540355938282907031799702641030820428764286907765299935027506233437523015570297859450122297663471001612200075249629044104045056380320610722214622930469628321313741403008245108876157951161343355789695126371938840078151099260685918846756587010514558898447811910207444470148277795457466304920292783123670759658987297242953481208665165483689617138834715986550773909818642717296338758585853167420381835692729368007713490586125433254777669207488780405651211734776016403561756360173087433922610972841571244634499960688380373066251204047647269973853816727351647603802031078987161680914864781143559547153710010134680747998591641835156214309454088954630899415747677941383678478545454488055046823145526164977710681093283338969762359048871277868196461758452730121228460118895780821628863271800979418877874227697868388774576169887276410024613763525524714471234098313710977268320067215008032519379027210811510302475987349809939700147516954763393679139980413061235421629429719591834604817610050181635822344733128377321330600237341720798977359743862223458780953240549361415262382023256908616610971769952615220130422106019395685883864619293078867024428712602520380957852395898980691137321675220822707165631646480433509540980238673178314426504876118696002192817210577618769508601639572275866522511703173780311186347312895751685769391276664633435066763873070363578885395646124034673783370384308242509642597590100237814948065416858644995909750206868283918613393465135288597990270622661677856978360544930397052218205838954297600910984206001048532191490901496596005415486424652718010352059300183346309026377368792808984343069365612265266645783598623333862574641858461095537278808654130501650268421079155668223393913649865030380043545877760401444422907118258759790697467513443589013850182764036304550786063376592201858951505563893404086762063984816175013566987736095185054872208488001382562054925778406745733036252802200340304847263045054428470991908465255193388316076610860803380300853366697264271540628137522698243738154464844095495208157703807010920869647031293726484493496375549985539440785395822814951823115959703242292447331746049632869043109646743912922957047883249149882425287781640337618286935079195334009688047273145402207194242690399673006102035352090515684299204399478344172861970464108944171591763455410876298969658331525335354788180091690032983684486933065429474638892765339589016343870100245360331949215717968321823058435899588945320390830072319516862495439512986380953701128507378061221616634172801783804789207326440264834740027126767476129295474388011939144769163146723321306675393687009703366108732679270186234739698623954702240731114135752358134221373179426608518407550188252744864512241770092454992448850899949449035587577091713288484862505816136029117883873817654904422637937633712265296529925322273334638605277973209372131078979699507088427488692701713549113236109915244889511855376391121171646436391533659143263589041026480697102107009284614969564074347197530676587635020554612853229978354294595247073704199597156314465986219638136967201226631901070995318058361064496675263481308086110280403483724193578125615826287735628607252403831044973119070548901625987894237087472338492601767041408477674182756031287845249000874442478411762426876483639217072897718620458618884519142811806816388244504437333787913943475645466690825629839013432046982629248038184362013029484829937459671336586973244830445110433118968350938204840557496845819728113586417594485264105435659770440161906107428083498941904072231411960282222291301999081276409872010867936567062712057108246667510307654138944598369195886756337744110278278482105973322369962573826236573145513767669651955753951929842947335328687176890644560775540722383510572544285189778234333590181684162387162001310843148862103728473938979893163213315830329798145168807416264898404581799151975476173002186196660347582323725996617816951896380743115702985324439487674594903029458673164658292766045918518862973162443977528295567845243452963657377178583260104858828895806113523252037336497447563939294959574146935040773811617808361363947275160906849191864280970300141630371869478346127489455782615935418367095544534767477582475971580247197854569524479903183372622136021702193696251387336937582845639245593627967393902512020992996998993149627366262511324332435386691280864319044990349872077685821095396998799588471699361879398939114562776506372491080582936222036957568544703238221290481053145067090514501933129995766509380782345986051335618774627751742583597618568047371909014197176391182970867752728971100231585422230464532389090147174034505714620032382756708641018997398221544939830030866068051879826859638864846542648851114684538135159819071687315567352257482391552622578804357835679304145682358170562589412367689418393388077962919557975288108763842912484398572712065099739324837433450076956049222333189163624749174470320506880099990893265544269335032264957586330363585644551159200014868119083365986827827229330035538826939829823233740389846999572279065772710111466581743578647100873150070415834665528340745668109164424391934594496454651872929214236404711057891299431855523311777177234226274039693498140294810910059007599310900136452589901260723480308983051866880306413678982332948663805885785918906827658426318985508975559941791723309637624286687065204469323761694266856451602147818729611202528744827538657209464515232093286079449084390414731186081800572104367745543285209718002348605666507070861562282573381235194245033029309132810941851677351566416768555327882311666379985490140416688412040710674833467902533297560065377104228373215501506391668719065321532542739029749211172630423421035431083277042092235604227974722726132621332371241401260023073670839937754982899897131311893462629909042727993812062253923648945593953128393563119644388977369002686814493781079786827809433151721070371180257546927746662646341196782528458815457488687391400886536861934500482252224991452332649879844474632892658786734733487885503188679725151222814439696882819328720263372144720257194751902220728671269785132177102277087227803609661427257579324744581350398458085758314667876755931950998777752772425347071045848338321617496408601013037057272463507613617606360106270989428886732222771966062593327638300801184575407615768808395575266836981213112004070401539928635708227157501327313061694847288870302391633511948271685374230838647965737350337634000435968325650482625933500652673581795299259109576321250873528022831257245470275590980333711578707743721971841073718884928540944567576766194433302764996575409688897843865407256868465900604078834184419922232086522881663281340897341679089976522077757406086649677277084714811379387857918262965944368156729873934003650626516595692403894736620594648259217790388377865214586693903503858797547466911243032279368396464756886861540450366675628475017537870718559092342523161983918235088638564449930395908598203005869180691554236320395045948299677369423297651937528682664448518988946179929267727789362844491656893575628808307203879765172083923293186948702721835519167487331331215741947010553500861308113336052516524670104194541396956721434549290256435366540962624433522377976893404454519068050035771408851598800748890481455584716410353247754238153878861000746163618447856234170342529718447786346783811416882146702734854990225874913289230234418597666891818357717495370100229950320170358500378869967884454761165822219656301690028538027453273375225743721361601645039873141314706826896458253039498339755458282633703199662896595808935786898325312871602267032798075518687048391542245131733056911208612520734392524424373045291475659384191248489230246035101155334810125392910248749668634222860327168295785830853143563453751042376466137859316470003371776411338038567786678865593754233689534114541023248032415901727456352763832962566437003921814199260002506942714280921427082214153581107376760658723909317090759105425136451540695814337171289507908215162152889923149174524082598288812914429807396105105656257306112169992090696566563087779750959777646147517413976305855413431078508523676664043843750059762647132550406299156152798197856538612776985928123373950778702725839129998726177673283354792111580451520905698625483865797518212136524629700383617689672685253520937515857999865406912712085813932495310314375562118424940278532344797098211107589587061650252603698939344779536069627501505774900607362146453217892440407785744277488851102619629382655730682382499280125286745484606978521484236125823563403460651160196978509988990550500347050483315925935131350814301198208344126937044934318372954817068278075544039778867469816417731983924542420355689248965589937842356526371431440685533156851350198343882285356419821009983557969039083829068748561453563455218735532587277369623933477775696364698724604507291946342517754610453138974347746646496056396205992802798701182752810661193353983087029331548817146579311279465834783044852648099729404563824239154599864171021002817361561502704363505699097753195613570760979008217508133081933940938015075238954714613585729288312317479093609066350275038857912467734065676084969906092963952334296161512303654299704742629808139382305947370708848718023209350357434207315582512330032610017224445104774861517038281356905176767399942421452917479504948501904826193374009403234470028929642440767483375963384000796142864149835985109767378206376592014039138706246065818867087922461463807917332807494653990609633705651042434650527925358428239354347964188219821091100190368974574917509204410266747117630783866787352419348302699188677328320391366001171828515116074329447979713598744025965279216370979188094369640053396355580061967178827254879637100614013185704553562335199366715642925251937870957071899599652621089467457959241223960703384215098908159848425132936904734327851025257748566018797583365141169347661483947515033807634090118023358294823164233080358924947635259967358157519698290529242891781801917707375781980584354444901528403347754257621255039517826895005720488896216458941379004466664615274273999833009357343122600793150991860476955265522323028978535350322044075788044459872269519068446811612250891580076183443666395026603077272887872599890206684701773848663789299558077765080183548929788440330779696718248944742875879687970864865003486369772691029550192431635542191004836667766648237691237818521914727444255650985665598818799727278999690531646839303077530411317002084113985066134506325433672349932835246627237884707256058736424083081282065193256129662363785383447477779893108115720962818379823917862573722566108470135726526873851564309877394682498498369581450161551480496347431975198662469028801126395709869182646296874883399349148771246082343574244550434380091915298694453561188834199953768354759598438069063252447264690973239558194866696659416762010977498393105419752475135741671741296000352310626226931622954567396519102758406591698550281846876925280618451184515664080210287822830515168735202838910741516394400110984125566211204502622294443684249037360096885292208629456680635047057682839794894944237341745398751359909088953971517448813450406384464147574252437435504869616923462664522983272293183667461999136113151935360203431870419983564604440871435783518610772191777030152281014919151290659322838455495476826126348577646504846329763081500926330859166986223941201704924443796573250128337211781882040858023337407925898802036235589657700468644594739121757505564992795529852699695342375005838445173686466140659421147109410387938921937232011180839081269973411077314278576463774063760559543391765410141916289785058995455822105561930001201931935456945783876611460156278125152756232696681991527488401558304671610269305487913019217508205864410117820528282233317425802884340547941864760857810266498652611336244414414876558382111599704202867872522316640389220012937696658591945681559264984696964308144739133307500230320849954349414133280100952991833971942342779338586566601955900851498784801559955754692619963785415145180182807363274052584390535597586551692769902133848965127492541554957252116011372809969394674915932851088073112068598769146919915587312664878431756809312864297372049957165043690613989955340863176577634186446195364179524348541078701168196864327667929511422831633080880835677823000952839974393945771731180532059388686709326919751602649082486662893325991436553259741285797956866082022791461217569041922178094418656344819336070826783638355550293186396026394769665051803717538617541831461395344150947752096670615363395542092412933079406232330997736025384718329478888903227548837533424719218685483024067515401144932167064777604071745073654166359562821214072781310867577014847280744675218667022023687895157444397717387087440283426524582511439624384914501650097127446847378877197649186447878752791644485472106472643199889066550020551290051091450642401269054622439113169132007079472304488969046200303210298254760178072180005292524826211976125950209009080070557347882567525046710012350694518494377750882576884015867652229064323863311146844111064341603452207160862460289591083567583525978440283825096475621077372335300841653101191945592659177433733940781542042315875249786836471857725599433207151258723150530351495071429743585706130102039210498810137723783014323647894802993469986709707714317567087514469662240530322064933465547414447280758501146731162050930298278417478904817214748534939890800482323463362182798223681197631707885489895508645906625135082611642329613134687209387288327752188220173551436994101925001993863272857634478694186914729087731036585450134945587081693952024144871617698330964229375518754576192967099962332429824277001930484192429645778781567872025981053397526604838694458601426100295416503304126179400199601737028535887516917533385715774076961348126598787697492621847786102613754223884745719388670457421674808368468218042935506553770528834193486185955668091632642005819935269539000188548896661750345504916009771514889495913285049523025849232563576575474990135363427613729414315011494912112407550593633475773535119746810817481164042914919097377779093352228922528403311547811013218977652566874853179005132496102579495894144697212758326680611319159227243340462018738978539422346553539488780086134730406534567387613577209120266131116135232570634460158546894286776791877699880585933091535793817781847687412874279527738299610336594413009691766328832220640719802179600658775378306547275186010507056057055686838998995497077630138213561907660956150755449799971944699578160468795922925860330036717325999204470974594240261222848160898540624432253569346931083801134402658317105517217093562189651738915844411343593995083734341577301442275907229961797542808582364648486605946069804115923184342694817082472231308260403897457947050103001028846041859725095291454849029241424008586554679129181870437356602720525830186188721413569696973747581265941638439239408438323972932920341475837941740550017801361460449341396686560202477808785425709066853735382348098755026468134853967993383756723589300641622345874880841905103875029640853380882469843710281500315501383075357127706487315045426765544088325741498403551133258227017989188972553268830782642800772356927227381131474596923588801859818281333371917771535935293105577187041935114689778548440672087581810200631266543954523864538616806095262571788270673221033065723757625904448410489284046035824980130628202557646356923777830938542873439411238890295472794518197520340377498328750155284327826649212269173135903816681320399299957301974535913424237916643778832116786441602028405092243717143926806724245049454427598126248322418321269692642279096180418607437219119784072367025265494213049590211054018769796054364061422812779295851528422081037942367988853539446142765353431612030197642338759852544655095118574116310936094269389971218531731392398371098091528325352385020300769158376886484532911565163728992145299845795144255968442306009911054061165268973779062390334400779195932581885983612613369124192328408562549183169109250078090581210405507198271310650864150115357073188084023829899741635485703998511503832094442725680621978887654474090319456984024411231934354471262037993886799740092077866242260986412490348725991103504830320066133349795768050256430606157864810223721242903806710524275868761627729473177816489228774935783144142329704099796278632767355279384057876442788062681018806487141303273852039085873311997487727103036571476913079106657022405661207110627430894925515292381124753218360060722821743900451281190143271271688571979651922993611547835231215056061057643447247671743144261382882020652447569666880995636807394874571986101097869095628779589869941716931149911305994234160118725101223098547612683259452721615060523766754929743470241533799383106591389617155197398082209455674118730361533297350575671376007403623273492465374732710013388241795283859604703545240706144044160844086129804619028388330918940182774921678422575040307642336005930301946472737279027922180244449022360160130180502904911143988046699269688845616625186826996445253626471953356119009973888407431912941903978435310747892989615879664334282856935922852512132628971181606855458560893789399422066772664700625316478716075531677686905082055300180425395837972987265518842367531210876733736319932817986554650908488967788145569111581882971372858978115695477705919924766826059005826961654627752615173320607378966431513902456075996569631445293432109166854262721528471386812080240156178023268135668295506012767914821011959542176393355544493458359157415529110460126888605428184838729978672949052661665613007595882050727328952292800805923887496402575050896565074832120355581986716538142560196380827708005070136858837047893459223852913882545787148673898916616401974316228543149054646415633538520448470597311043975295322767201052238598188777535112906162676533583786487072060906530861108230768116229781357224540463249072291305581303118434295936501158308512108008191164882023237449584560714871418348260183063519062621499782713971392034530809958004441067464326944323893926155170434040333693713591764481222717420262122670011418057919450412297209473689610816243315857632314272007509983087227527582710397935048509932051064141427191226236748607512950996988200087687196733815905065615242617073611564307414051130887027860440438249735118395036916730824137124850333947787788616852068339153270549574588282682428462972769021346747118168437169217146941730103811875947529620215862365733901424610841295021409148394996819393531912743012427812572575542873429699075469634979726739084544792015620160243801271490267841149496630414597890006409026344869850841302956022596956623340172852915517690263875441118904404086348136504918544253813877312566808424035294226340813706636714541478777641705320769781462433935428738147510090380797916248800365800462571650162954165003384298490847385087767219713617339915793812505588328730699362823657171361597610699254616212020136371497587450918863069146025018322173267841776467007220401208046279499914920538390702073473836276816511767583510448443065446267063352874755050197304739696341689044440476424999122393715603759092197547451194878946431564369904113531819701267382892330362503728004289170618803304928493562096029625440989039923628071392346954545027321313909665545775599003130228195201019664066016060771041381236094264412853355924035338262527256029213937593291804355079636131139603998088800413336978387043272830370591315334909499359191608431291896927787911347378645496910433381935271582998550940672309220520210792363357063388515446155440014146789247824168035121046166866127294397405865814462442659482320117704920994958816096095533040697628148060604589009101231917859989155624508034107806288270539018325104068512663599295296029388456135198340531884651185364424550284129246169967849432560009978229480057304030371567130907284438330691775053276459809670468846746684136442308264202091057191841540794217966961099763092606835243755905357086612810833526910877629957785403834271424623583145054667262348227098420920857585377575736512677230047239633575882300805539764622908677618221879290914777583460960682971221276310926431772971279579026639776776455313204722978972809191613343079050432466022732488928909337377511531082584989181806455314926356799865401251563801235770090557414578827804292621643972370121406289703068912615277247796244202246024967083441012509737398053505625294500240791048511767802622578074110507041937752736209684216546951587439216468813155277490889427347102760018315007276083558895404524792919254777142344280039314514401850895311351214915352744085269493411153147233496445802386492733880958176220890726883844023330841739630499305419578804198255994451046978648366942435742876737131339115469626187399309278853157591461861344265235664312369658670917617462914161224610538364225168561668375520836043958027266064535027989950300406453991999603311430917881187973058531250536229977312194173453401202423738804318128428146142707628895297227222699757762231682496419166964092134476614635762764207263482859191006530846741180122934344476202420569296548753913711254246218303048121152853618115072498540306087079281943560032659181379159821095959815088688419273155804182153659849735666654343858036714023950959220771602530023106231503376092279759320225861566732264209017171953745472400417349374472143663182128633000342521730191917481826232320927261243631871311019863869086010907430169302102644143389307627901809332724939862823038683673608023000538089801682171756593263540395321577293144177839199542857382703324939620253265641220930365099333291652283498384457970130794266871323056859828150974721836907756967473481715746181897983674633427202697809178787181728503138551736004812065260597905206215563728464159506573122940668313735884282853771908675202253711595291577097209835249102381624144328291271263055650401280150944815639271902485560817344585193362646387032077350612186034775970191461922831344544877332947688370981870686571921984838005336760304995500958363677337935981881476772169895854933918846824178079564477342389248681102861821548041489462999782707977828561134045226480040858650368170089826026311421030568803799298398722248374402021318654872192661598918399626852185099801480650111302517180088791112529319233624119503880553027328213145842210934474290399836809655574585670932463640217779360717027471377540531666082066917803023549571669478065007535466698050153099419897180005584434415523151273205001564874252199652644963853164589619355900967140079366854685753561487560922212624223196486504349584238891856036461496173432796627370100166075016089340395517333050906100335670810982350176988990568469564763805806162559130580323963427660159530454322711677453749944573726750636865850677521563927866792299511534050007923568739943082876812814087391225680927579023261542102789474784949477308542282580523871332407573744420781231323544989015000322238746093149650476851814192924631018077849789697048003562719657662383818447187350470851942109858244329391274211539141407838978571299914836376989597824003317792836446261733631852236668580097504545980821275467212319069654635762736199651385095187999129820034809225235961913343130838200949245705483098617546650463223551835989028497488585876552985958759183579603389150049465755236733447682250731417517677652126382096004686686457248689025801732263017522922938028244496839607405503634945144009399372575896751437239468855641320153671578212431945565395364923749961060965652605944767670451009519571121253760248496441698417286297802976896680672228848476584862390867691198727332376214726563476462316787610338074455690938957794237636171185644093518475637606628788987091920234640901056300012167864165123788099053464655803641930784155805247977078699293915538618833486757110528235495642171386102930665802575109863361116980248396114330808745607593937615895396350961987695069275969136149291184317233649028788394560862487528617759270631674877925469776184016171283662786102361523923244192339953524756678169344220915837365376831854566386330100516696923288499973626065616031833852950230807367978047817738224939551161513948554165282859886116681181629569018967169166257849581577307575870279615447780001783780483423743642869272817657094897565361278257424333449987837225707990202235721988935847055831328417124589001730214898112278455105304354900414723605145218350038442985839734308590095341750095151597650769366241670126631914856735988369444845474177862451074379317099526773377416220419590435259855546858751725344499968908839956153735525081811075596499748998473526744632882486556963437343005670085257996244716501885000777347544048230337245689988368643723190559971566851301419791485881624196626691618114506303844005116097534015482075163284222579049386582207987044137765003006304315648880366747938430630951464512456858245209140301086725787551367152849676968120825069337775652821460299640871781585443529492452192645576502203271540563367383227077887770258854864280743757904367085338430842513175633490667728451634864771588111645104052138777322445267844398522572411143378813268473015438399771942891915377586254968665506400015709186935712581160138974352742892728526369462011726507504618058898619438462282872558590050216522301653409641824306953283867881838021784797319244351157678032551395194017216952876383414387336609258415941549452592269332524289302914029364037619632918276308242349727861079203700368036148518091440612571117892707965965179638776963109016800731394163241173620877153417589715293879551693633352175769230420352658575873576832076282066068374238684386764116899066448534758516870881833885757028397367959966898539845441834538790265258405855732496752121075366394950522209517388071262916209090379114974901458855404063437474839446568674654360051938282993360356597757740356436354773770304139657815701109194209651620809945970536466323094815154621109224160344497577884404791815926711326670126690948089300889431704716573361398743637533523884569019495449738665162614511395945238533563742233367404345144761370543632386099932748046105008949814993542166884308015552999703392296567660276068051272661039174996375208142126537101780226413705663537362963867638913502145466451064661981208315026233925868231321089902134092800126678416708739684469410214199722505791623487151187320595022814807849799186712366301224182636857569528549030180152734528641732711753035410103740216109379295118782338645380513898533657077449334931054503978208001682359511871096975753748082875030345582319356218349412092851928354863352535674992437368505566985369912660837110515112121156847005176934246734948775322283482473931517168476090802826406890544456333166644616550132315251830760216047674851420575643341961710431346547089469152398938572818756911880356388904413633497399041416663736590863708709104082953201697390094385184001741804569794192655287114492525109704688159633410751371887082018603656860162740176290327497045874489259269985050663337785395652828374292368318635670847888335104688525465247265038264556869287397685939887432300662053578038635093056948574848315588901440527123723508482568728910675665553825797718681721881788155237990302485693956020342351660791719407144452950894958151939227638840337483122390779737542000748720894742549732892849115346547844253206047768196550018878319902459118313466882894423814327557640594231802143729808411062732753751716258992262176441867740373283019261147147362345704982216884802026564098088254524619357647808903416517060995219077623468209649458835469285806738045179389316520516484756118677392054832058575033533330580639564257810859961500318523315881191104902999204715220075389658782733826624814079172946506681676737995256947457448272429384380810774276700326119820939335317908078894536594943264051807647207597603709182749847244788559411459517734464060454090769702714248830610277450339749475386771134838561550284631084168684246285061823653102470774219685548458216787303972629813087412527514911373224304158494029632024648053390287775942646342136750748167983652620128256612584350450735395590011689568448726531252267515898776128567824118408243713654806074360847237973765983961396287105429321011210230537209879586281685838953693751354667253760631853169571358992221249754105023442000226630583559901898926836715672773941416972274413638618536355953330744373817614897393717841157887088125749116971971951506118018620064493706288750728328203062136401377734954525387203503649581570839342148490339074266218084357071048555682000226849779715065206501603854577918409811040832408923166259382679902038530551927301512943836020568009174921922793968293171441574380366033224824540163212573519253579112952029971543522745293162564029801379797612892624722424129874527090988709265848072253566856940868276123634069102118162934072513652602303777080050120211436564456709485412198763350512728229998576195109950158528617029307623589030622489057814296872453419238029735777753840299506238013212017949934732568002268230246399000786480590095634828953858744862776882325092953620732370206487462987334330682098091385506450652938946343432557894153294448860511048302463113065904390162732188678720180813083943131318204677483361521452671030374920047855484068827729072888692595715298840178142636264139564795064073471651333867294121412938171195156201322194805317562315501288392603759884839283176588032475123529568845125076047101708675736259530702729186740265285207443214686128054213165166460294232160656380272037467772417285388386370468021413213543849888947242425259762353285190529683739758651176928161500820898964477093523200202584408175434834207767998862649874691625797404488869769728854537787691924038257269130564467717514172170861126041894253378873216542814746667306891598695898963895755342205821750241863043193420983953187156864481050486835127899795497298617884552285553407557741384948840043359285766586055609740869790680534966333540903425514420155460537131482796956576359653160879014617681297438603647769335337307449794652226872715141839593384469110565838279673608165841465031843782760540922515952578173682596928147568418008188315052362294271683987052471512362672479756531077842366114331050209692823470054117524169801455915184221499118981677810281615729449235519584801801913632641387938467197711053676696268158941072481595757631413268283238923581744822489197501145564299307958712935134714130533204393187908328150352066938516455802001449860282628219594481672981350351676313164143650029686450661847539398265812306728373389770782421532470673921828757187921125130165993813874255997250763267533364835517093543552459971790367340990847645061834552357519678411086962345671945175050811977541878185244480275817145226446991694304271041733041351478872006139648463890003108802816431970131239128076451064772878750100198813160016816908012601636869016346396725403088011327556573401933380977660413829900308301696610368260230469266094244563502973477143901249075691934937608299220539316411382390400075395331983564338666781170736913141615170486597345062717430363776273430199648567312757623298523440078227495821793436657684993768729865459504419547958381475246399578919084217926407909584797176279944966284263220631673109286634162189191431007037006286011682534406517396297965073806226366675222625465256373719199785470488023050830032794458118822835611230741770665881981744670659146656877527959384863232669371904857284703606468048917142457743887685112792608877648406232805424800640084579960407679642104446616750785514694970545295427322257314635726245439210158737900185612091782373980430944423432291209852013925801018917861615012905801874221810998512065106524558161776867266066442971388451391581590688308125307661811294155063438556837107299118421656801593431882296764461381402233589571492204845737543130216243789101881198001895138036372746381354638285316985727138221278379145783533334311671147708838144804289357460264532647332504169499032472418673612733089493754698438475567213338286225704284801624716194768328084511805733451381683203645906798331015986279786884498299215490590184298527894904533914407322009636685907779682608523822984832987339871602654168433148912823972366634633779699709236750940824758334587332670411175023330625425004708922688073334137581184815264645590621792996182894100197237422419019507837556180330923920660329515887985924443548718916000106934696717760339721608100793010539346674161812468778462865255615345532035240659559994789551804408765732023292447540518317722092575366393598696227536022844331416780275005931980586327492358463530183238014081525822588146341414588421895207670048857948767243148334708136303193050028321289089817488913178881807530942312823145235327619776362655026826947136783331088200583903802015370831463924954425404364035761508096970927034917902856662000931059834763407480942519957385439476447762008437289640603163181652638199716430332894944499932562261934510847836915246199150530418226046765996605929303368286485765504915768309992692274561300230476176438354609759895745284621741129483912463302103330685284756831339212884826190750191859994246808736000928475255842146610381524979633910007060694530662042841759943806067851709380015123320420584121096389105479372567898963789484009855019725044341648434680473059080732425680435372050168155811114542725977314559252809125134020718585265394464826183798819528268568373423849525132687076549984973877257363852444787787768598692769092743150160881191722267775255467045653216674976789755698266636129335109661004021439448656092492067222342092772250906337518698228891353849443458873431244643363003012877129851894326434928968934718936372652066889305519036826968455673060515793556239778401406442416079566018422509714508566308395553586006089244867540384080346797206272404097098573291215337351609531955125030833942752893800950060184899944415070089190738560815589871542874161699700718452072811979125841574415985938579690757027336856183768975298891305475273364291507833386212845158198762668042901368785689200402791608365283232875223029064854053787868853791189566704399413626061450098915669272491982006835437326721972371487573426459920831170463642680631955373783809838820179623610778776506463386359279525232304902038698896432476813650955554448380465939786529264059262181725473037678776600522906267156994052436791665358016454241596130300216853444179817011941407284682323689623257020864574840650959069912932965493497367808905961702823146101487600459863923697048486653264539128660351254790452715666476082687045056088914929423919749415363644899881642402205477541378896929040139822715356366664159937744155436391915236799934154966460897970578103216107420130549594193598319556244341913589616334971920705433193771529748479611929461233302938837303222490337276599378884926300062435214410720340427725504730823712979453542125020070085740656125335336712022367472898085514651498240781421042699488466505726161856616050681487038407825487088945436696386506296552083719633941923562837931791983594841664876268135614903320069700610840344948077534323691978849164027181627031900659319100079238894046168281321684011605500143577238434482913722008525821418412460004758365005401815964822184794698737858105210989790187512236242320854286813800685130367375831169045208297904480226134396524318865869257514223457664362234861323395589132308317657313694846795227782029649787602869053451938010836687530661761522005225158278350968087318050497949377054733848475169301693655698524928593708620025861461150853463840797146988011624992347392481823731050892823032563600822029872851920429676520617289501603025809097332072353974049111072431702144142753975850052843399414554678227670033607120060176118512621050393246078671194104028449460049060292680808855165625125821870495065003772464261239388830715196187733079426523973653768839534330177283754715346807396816823861903941162362655485499079313098222211012512764570757247492567142940132298556661059325837424750126092317803306123638358067118509942047791429137781773544444568697039218692922619055827300127146138996325475004519582209787786374839370878417488001570938176722704182899049597190568644769895284710045735362099731524642616828719866377646508571776947716324316818117570182488750945475785555948516734875663788797009753072733162722451080346998788975376364269569038640998743641063003113469187673033050004584797005059919279014089613745103414206926258286788681797525564339809721091429111388972447963909461170713782866529867160977601569776786546900238745318946263456077420771637621516042573114329239184044379475894573466404836776805789131430657629667043697397129765649908569653669082277605914331381305093948130777686145271573007061123559114395427910184845371261226813642310165300252577438685741243264147466620231418208672926162843407679602859884746356057567362037661081978703114052141940421023675408561252099191899311067240184786482848854380758959735916262751890574422446913376529264660960890622759706745054300047186172235036057926045508516639070020438624271738483722600943611295747460055714835745437052288816367555048384620924720769871666561914132390225930641447522007621640344691993201669506274240820516705933248618223647929078950882070266221326309218331046632987346995105072363939201342518465301730248035855434866555167639793468765549895254007514883969667862977531400099990958115267946665375548249884559348549487569364843439132070297469755505144422897701582192930226159533026109978567374750269328337523189942306473497570574000798097043865558258041882603504294227376902250158533666438643287315876965401570110244194059037436079539152132807928475584807882548800010736587164347922832897960474273068998130191188465413331949740748680236616559930394381538337605407071485469855104734042713326064221050278314251959236296365116510394971263560187930066215166570051724608080559738423942844982292959100182286619981725193008815826389864406568302235922446146546775341726272565709907892612794444181097108733686520156026263635324177043031036180464494155715444892452942571911907513446311325938460141921102080240179163208962113898156256895024615547808421017618242460951192707245064372793145790935794632504785459664601427755095254508744611210944248013131686771068331560961266742974870455244309902291089875459298789796351126392126259535974634886639135505788588635643877877669651337670162878274823075832919489665047477939161888475544066863578922228117465800708135829629182614983510660419959753760909930497567537029038602104598641882317275873454810413022985897716726609149213205232096407248047962830393528386316787584920107915697021652876584449301023564530793105635622108392830459179524069220120039509251596750648619833394738247257461954175844831361041850081875247868144773930343321540546547083156800387944404457818882148435032270600058441799015024481913364192108873942071551378359157961909255019023686528864599597297323712921740448623956512721401469090744959509882569448543772656490651349492833069627266100796042054381009938461604438424151874302526933040180078008770656543578963429635375862052076430060780393048071384919969519100792705275207994235003739785229028224879338007606165674380383545815520550543894587217167429105507619983982342653829420237984162669334044213151341635198697969081155399138960284926383788351486640670542684339418198466583492103538640913244311260132613496101306610839403373448148338300268507273374915631840200269868694503705280354345056574700997525679904975241170251179675849120489904722690368164385326606552852769058680141621511187774457992767364119720820921441852860332432261022557157278973177675729058368442714231481841076428568094141731684157785686307410373658346986186124919031904897356693672029639597221505405811931067750485480689661846367198690468335344867105818933950243063503443072274169649740658006671039905923102120223994918292368421754892858715570086575847991002692499467396005222245388195310379979899014456210093093164235811867824139335906764492075248967077745082154285003550209541484380867341801560566296271542211643984201337282472621369473562690286426116637451330719619455794100981449046079096037803813048181791869226557056688770968791933583623963074112217362459696032723781589129140467935791608676624879239620994783648164786322453690157824228447956429598312051893865953333062652309834976407296211204939137318037442074835536965770979335902331969955768674616132380960824626843664297060593321595159366006958261088747922659637727040480856928579608686893406923666918519474766487662764057033317849576351651204004618822883876227760014333163393872495578845476518516425566089196719092436301996125218184217744364142831740471848769413870484529806235965297596148900603653682178472150046487541049672316288289364546236011824966001962040630659567688549433622626052254438176014552818445213012762609955498110338544827923157527537769715601711828197547304935513912551156646507216053387523214634189220882586247638767434785052139521087304360425085116034599863009620505058431197399226233829312665308959384360234957411826115978330938973504436686095647904890377819999303984867067695930606514613947935239743151060382822283631588137483741236918215955272495248575115712136566634645533758502936173144083082452016543258658123424052911084122905726704712620453309072487843838760199770231898089623317966705333417850159854873061921675537984259236684419997433074580235736055410448220394190984374978484743826462143165025621121516375490625383137598338073354136460065157589674927473591199732121441528909345242259413125396845751667278933938553349569039340304150006646449485177583006792591659379687522886541664074105987056028072282396232818112055230848874993777781899803200761189369662208300091966930047749037416561711003921230235494401875200492586685666572587489508464681083726840327182100588134190985836708724731339784726951756672789767953911220553934442191622566156992823063949946322159696957235658798110321459766754850560363906565898400840191896326511892369255305326688386826564084280905855193463051435415724713764139766766629209157008946871890932048974077982154006742183725642408338035154522216474849173981896986420485350203370412453314409248507350458114152437866229867994315015257829528017934179217906790560446107393293433590763072872140828426862861078101691726726701985544174984350975146249456599561758494562575419410846913698798470968149199768842039198156827732186623632138950962899547375209448351049417292303942843636286652406276179201217902923953632601943404023769863219866406365330504732470959985947519546699637440922353244901705001709586885633695750497395038703181929310200244406071168291033853821028025292514123686083306161564958420216248469738355471757680866493213924939392196997582980707483956167559868284961542460712273352481398680780642182328597930586657633009047432310566208830313088482645425109671601490799131458885986190197621568237787450491262437756278383783067834327416293797332686718824987369224885588096107536900769163597267410091679576616442222335106042681388027803976924699962504836299771637723858914532042365936946665393812562178646097220078079662663504359159159346312459826996257745032334148097540539829849628605978929567968601947355377879852578915997295555542051860004186483774635595895178256222356157174937936918378100389357897318152935069992639441246304576986684808704635811452098792757912293600985288094404698566802132132861190732810852800757997052855083851307738448388635875289655712320694054122022555938134980015488024610845270253052152271321290165600942622713184077362271901734007458233728915927742206923500619953391146211994903082800377320171511023071176565336308171592019298240825298894414497906370816605179365285376691454646360028014989645242359817627740969012168951392792439162726708372685068968253461465353543855570267397834748492650152040665323001209286913645251623859479162071695347221037721246181894327176463214772171497809493815100615664779124810898818466298661017133070227001170452139610748931489262438969031934821445585114156849429390892128285621467444918446813956347114676851155761649491541835957774164190738822940242926579137210677746810823737400642327371972835905417246183068965352906819418424774977801938133170917588065789653502213358381162809471493351128794936403466177312120137414682370126661781375750549998488734268939930510602177892718763118081628903041270621053804612023855134075093594079582866566803468821140794831708667618888983220240481410033559987042040193068267380510015493285099200986144090241994538902626022939016380177676059397576174682682217863906891193146109675019369306988413908736626661303963009177479211791174957716055757570149241126126294716663645962591204781526616489469785247256616069114099274063289122348148152482200153820906754200401826837398449858412058863234461309631699339025448584147580354138310778146874937081426000778847714582043094462460946100613686559974275118651531528920166007002941461391848363646517730702797452796120178015843119399569919188033425968591313309156823045171463971414577095001268547279335442080588496932309337208013027349712627742916767128580170447785669815824978838033577652116875767397965452759502644612071750390245333063358007568349754539020860318227210313498938637360187591860931026400984379103504899132930001093960488906998296310173300272306468506375873415489248284651298375917997633403708105416494895714302341650793606940992375365066148789905513395924233187579173660981118209931891509990431750901224902424454662247645241486899768838501899008820924816828792207266372568843907200789862667823791594442533389659295348315072697948615973736483382655454005009863219043271414096628757617676363725099944356487940458912918939150975952287057962281157391412853443934887488237098948347615499691804293009041657516269071767277523400425898778846631633225616164323588150735389529288177480111295589409450203463822342726597185404776233922112731107000920906204796100060708121222922050053486390320957364894790418616214691737555488968406155544648586485162857040815959127024576289468462250586418441990305616892578984848643873213008003695351712706861301613511887236688455100125867422137352209564616984318038030516168546483500505198256125145261351050140630792252761504321123766694625596396928517473722069542565957246610788484749023909500920205389872783772878811865005753797678902627133846795194781154252979398520261481607681103570615999052808734823774421038999732718037899150804216512371469549132915344133315084511741669427154033469415179283196031094260928680255177243169202074664530970747907312871599179437685665678741988206014168649947609637039857910758118497172028792856790793354113024941190290303182325779912125074137153766262922233908350130068535609558078383068747086424602922856169207014545429388471222945208592820355058515018632161978495688247164890598476388142126098446644115335449664246344933536965871885488783998817919245401005170193983360568395044693744860999951896613757966792137334965220721321146544915102112753044163678624596014893796903122101961580962308449687542487951423157922445875478343112360569631305367683773797302671978509387855829466192442646083027889542122292754228074793629106570606798595119123760803888213953349392520520695967350171495367201940911568358234191322565364996212857132984402495998562692602914317843892591426602991167136206730230329017951291608444643967185140090779725418328944552299121202831867537931746877687248613195747015600537734899136709469933661457713717046962382655207670756755820755133909642729555298873601857688033924798877804822338449330904065836748351735876728760006639978263236291900116607654096601325324454722519470285953403686826274745760199491768461168846882612904372797498317448640744424650908843620553069549138493683725216615422019109524245593770037900689513765060048345785711005037940707609673047436036655172811837795990617306524023275355009427259417953782809163995354833321767699587393329143962758868594477110611096740879826873175650313623385668089407613388257424565165155270053004210103728287618070750949873201192462452942671750806068439785258046545720631357950389280107182469476180901330972627906338374489329140570553733787376721183930593980243140482852662083686440892422646729385853085575956071043462915406285755202186021649123476142103531347396733434709112337443542863370044265729356456540978705420495793795171185547379622418444054762477732905320483928228785080731640235423976609479567896722318123520010165328228974114569717537505883623134322350661122871055065859517020836758429862381954529150806779027100118626022302642692262025976483230184889789627095565652807305762664912386788760543670788866758107353116979246136966046787871873536827916844456621879178066086422376418347537742651334354293070343667576734346197653025650177100167114012571147198993249547943302469754264461598100793268092391046696862992276004334618642556304269201077151492428555526159885717563645875709291276062507054852769107116367920762081914529256076044625159412788907083455395344920495482619716201465593527917352272631413068567362643205978380267768221450311631329649731457684750713042096166865197261980045240283484970067037355076286180827058743905107143921288902189278524765406152868263717144009846347269300122195741458878903234904732302712601376527843621734425970316081718273150702302452705285958845158778507932273116912436080172415898392153929038931107459704140920941627812558858101933158767764537895131374331753728156812857045246741346171649849246885535114970928117452827577361262113730085176143012892745348419772432134149473253405679491860782516375858866720525505519724008307823714152433557098298514982017306022418557717088369321958349223548366783025792169479048006075543568675176946652436024291748970514725441342268440949218160036595693354718113100304266569494667434128823694054024469287251015373225445921505471189774792374486764401549537326072011353583714626774814253128941787563699827383635729109366369930139992623515197536546144148248277367774980280143040181495136532012843579263711328881221543353953979008604428358801332213194539728206711777890932362704117133926741706783294747378225944733155607323794297445024209897197753983733071358740187469273757794934720692082632742974917028689748195960396494993849519937466222357638065111185683467733966569801325871324676049604808772064611252477044623947211568954513854058010034462350934699186799851558764256346765193030184209368659217797643762113829711358022389536010917455371199112801637772377733845088810639237244142054577060364080055069795977989293153316116952381605123616092555923937362345882209738012666406582950636318091462754321485191110816337234988402912488653390103119651313548183291113479501416731761804184107449892963116795218740395405964150830545175022411239410968211726611310508655901032214735513582344663200088582511071115742046683793085968039603016581093831041430621847242566340358677445511075245698942715888260158870965257091282812008434554451798519971720013907951657023894405877640368651898351260945699634636293188919543494677996378433507357541564735977986312083021894388820862355147246598368595603055608459870910046255231100651560409226433385329506960501272452579051640814755828757674513162666386156454348811729670875512871037759005282137565006985000023599842157976619814331446564723024778846430872475714901317480378937893785421455112428021277821468655537250929919895886661349919558152699106073497661482928000211498084095433860413801077562767262213156738278828811260644820314841473252434954792588374385729870327598608694691499111088321192024376811906835409332456605242320099539653064330792038015887084458911791108543866756482839974132825458993023221182028917650821777924030494644068043381238857545979099405760204863905077433929621612288388838906935891022867862608722990927404506172614253833539023304997254823409283390997797944228337598211971384830816943932305302244581076317302153527331063539108000579855489426626684277712850322642542380989123387608624072927079178254614046668211945666759567215448791948616691054242602874588773085363314657358608920498001046324652523818224875459369219333876866895915793405146937991829840518404617135477883045471151059635909957167560406062393463344532292775196865172626037940046326314027781692780473041994132123920931668580510542293209202964453911968783123861139421635382000172857512484698996300560271420867944413142869355673964324854406715145677668284934717316347581648176031615279980475395495610131784770302080421411393394230918213233292607049883564497862110018037780741802081157575501061785321407289240492327445929092814445606664768465524086947118044290822224187617848390451685746114058568151412573743263687098599558485972760698359960086574122323951286569071189803944725157745821286694119227915885532397898973060350790441082484084046940159823200000340383809298583699503286868104997995222108571583323659200275433058280593202333027720229274114450480679131847873971545642728549859952196990027514355083951089991951403603400462578438413105257791325153867888638085399204789614557483435005070788621406393778188145690345060111028956182075696826933543382455407843935259660117078259258078397831989194899007901396569714450350262053823014978775709216823820765282092300227835625559643369440915321651214746576634980665635962804216927688518522916344125903931998173394121587835341360707580551077748018370424374198866430679423319807792088685197956332223609868160203084874315912191669060641542959091178911665873939846790406943982481849408031076751213829840301858368646405412467325486562778536364630223332504276228579522648342363510103665551405834311371717320339905724171470632647948157857863351897541779938642105891536715019334150644863505115212522991872791357759211733157074025026953707942961759915350787193755496709952366765942272989403378208185456243537462681560129880928027789262928232611084514912194474877254015068461803405614503076093993196729190534787149174463155757564169132387376254691087838518922755336051351863781246530570377759554713962198503890004923746539374084263715688651746406408106055500712275798793711741998515452888902331679234063849668692120449086897933413564559852546863791841560791181999065323893056828067493315009703908845538706897146720758489129212283491468620272489217903202486555066627028430386700873812935017023491947429908524211530915431090512780836213582072140211538332950901868930612767402419532944296877512922081636864048876866150587303160712287126864841182684900370561203361333026607551813827210437216359130859869173973210596744570841117009993672933735471705485989648653063250557305105629625877614015886594147389532408279102897963895235596074874336222492631887382194505888573648532245519968862837950335724372409794797385389449728320423584116416970559650356386355769084418615567814231078704943945260486775011540635371831207005040426923002351115542152531593443953372281105229610301937201708060801318421893481979113211383026076855239808062373878144101499043630707960366796003051519324037947522470363319177175510006665816896850763867481212358524517049399727449393667282426139130287247589854580033690509074236918756371293510440619383595657884126380990557180983420459740317024091305750748660957879538677870759487040639913575546448369665216721991080055317923769828994672472275042937013095785995288509069599082254221999330141658263564607548701825299653685251794722505814780779369886470600717257045965338484319867689033860539937117659376049250346860178988801722197046275494649497465175234588104127303075234860606381275166384516103969980239972440632567573363537482062717349892896338071173024308930944840844028349336159927083415534269241203929235592222511981807615422125771701746140234019540974831041307213043826311978325426525309277888539667543487373775010341500235038501936756838267049147717753674447263815095507016669759476609606146173641372250167443103791778845724014889902094710923476357107800853047079955694857770466781727205173789993474232104131104881960511297508126156453729817322202912876292377705845532466489828828026482977745303212260679872527479379104434741097151239586027068374799474745417206181327780492624267904308845891375325836593676746926874178004286689225931691812420843007932379965756747245351769080763556485692411074468642553016071462179519778993071959905138065462908022835499830867650521531270034453773888612781025537964573938999371264489613573828532375168181257564478445777081851049556681696276899717802217837827193302385711250774412093667330770745085120788636646034684813978877279053908531102843528706592965108208862072659789546643347310579489863986569820335806876517091029341078915783266070441617366166331276922724577675907952917018634065824513183771233020153551714651906260629327203780912715352569645376766744088674337148841701361774338552338634870753831121959215256246223872185436418446690849065212326015941724414273754895468446561165721772137613633840501753788174414971658608156562382850490219956854091217459411936342858218880463980466393608369422041526728525481986655000587391116399967061185279036090824787818757277832387047325071963618532149744567605613246174202941591027143498650135468835367939603970036011322247967941013073482098695098158359300142492817229123527934255763283309415930537462599860584203273504802434563133371788873479418459601039407232533816891495256145425137930488746422366287296635371728196425857838509865616176590061632665625417442722785879775959496962927706757905935540123844721456054937197222328314299326720457029473653793380068573556833118672613192470260708971689256145211003103541146884052548036159151421369079873408623615720109483125661235843899969375421278792690174080726488457004559137886214220819097713854302148064791790785073817637911435414769522676588952788186716766504803904620935018895892095170062832352825899173198259559742709712075607765097853472330043343595070580094795742659655016703729839431629735688327084917017685015547165082863555364808305997743613531965184775663309868197014722243395940574112811440277395836751942781216317963327671239767877257302006956781023379386427278273514318177785717967528960721521701623876220503408238730223328862446258689024541360810253627158852788349779982096003548330552255102328472932559295820655618963785964403494771752049724612625835558823827514969954381548522420009474793437593549839945285376748769712067880530528583714908774940639509095946332384808135381779004988147368242049074769617900670760104445516685715152209299144351274775060876116365381505511318087236823319581139188179938177305815188605819307250373903158438363001825200358414858976898844184068189506383401458040254403245553110509590383622338569573783363610808510515831208583231305372011446500600232315544869405304734795616009799205694685663178555268864192366660974026811416536092805977123921418509914933371546084051836201487512259133269465153264799816872480191950398389049058784613569506254251429281200795701128208297733717963759322021000453699405066579851214182648486212908881101002736320647216561643447570938484592203370715627491846825186010490596805412210788547260968745478894878842793217203289157157328097193457740907967769961277867653537889701450009676858479888513331952437928628920409771497848997870246991039159331807179861622955567834243756465507048381060543459242648207220654995583048317640145094811393772001171257016882741065326683881834182249536038073629364669280279661740934065788853271408218383777026852852514722159704080688298740603340489070116664487055040433884901805840293972805521964053976890249293049934948620521152771446822189746170151067870378500802455821979516640490799066585214042263111010141578113264904524778531411730971756798998362413691371823736775196460869999038442284211599935265886095820690855565223381329363911222856889353661792362292612635419044659477353041168205550270691801633454171561672435125701105421591109667729521313320831001745234655435993995747829978433253448847532943585501108798766204932709822647673629395085480641846271874813448440971940886733464216623516285897141423987583483689426108812307024292397618440593128931611076816717936144867199114429570967585551609184762366404494034309273985588576760027047520839348613507820603120367021156773608552470813727672340923430362084949260617213602655764940475723173227046571244973705811900991591179411719190431111180018584702741272618945990792645694567020910937543935081116904102549099053226696750950986047687073202880123571133572975620993989668179967279817620928952063803255442872016080474369385104528299330895260383749673593680737559744377311473234185587974297015677036078991580046570687197258319109153434433275156057603793149721196279723000341649202786445251399551180196537721545492047544584139735693215738174756766610454296854493628057520690891042808748207032517051427366622817799578404265436986952410209895281411474187884989947614080233727781193895450203947218425926939586421216144515228477098124568441481739284668045945637644418385851424261471770616333709707640228405600457733589367155491779049445199831513649214980499352956431642140201533478565514047612354686649913454442328098839095767602118210740676204972740913623054346825049009015995325258238658686751206378114463407436305226512571177494846120434275122754876171869099076048520575409072128045126573093883561975800387443585204736779748823580292504117846505575576270252057972077232000048869764482105832674321790647696274905478135282962254611748371917382990946321456056421778049660799142945671285519539149582157998717575538201481173240303168283654148035532330186973422890881555934506730747106610393056536320619193022923890836541161831536624170816217462571159206317031499766712486532578594981931875327253289595442354548005492505472395199000883121189355891797957332753081637668249496952650022170693957534760428092719985673137337930092976694850229976737891189119720963454959058271416749830346949416763479749154976495754667408647279389165721029879935493299180494746496843705827157518717306020702295198781615942350769273251420757897620199164681674898002540423154823081854345487049318662776292131052103403437813687886930483963256596653739093876562966017429437575542949218664644296249045201312171592782534136220126325256554623495574868132393126061770675572605863771015407158360918556448377095741026579640120355439866905344642221348605280150804207983240203650389151046433499135944712539310808947512771726241373853341929383390966220868139244797344070282199211528262382956544809991322306058591464551795233429485717043800327993536482086566357972646804350518600809747071681880972200791463487186409461161840479652060165734987749501234681298413799656087106483766918955147302564877358422795378648027289056930209998561251199752324995683750275685475007373670321906434563047004980639428381668136140873071891659854272568123410144632380533967829602094982326794823748182821391811323613333399063889499325939188670778258847410129765467995831261707765853925280913546279369814337856038742811063395424424301279625310562829401580577525803557873315419488572472002721569117647522449862019096640845357580701737904408357438359298714862349677217174065176631800882072290383028241100243443077002705954761293706789821477963823597851735937731253180750449176574145369189674855931002427320336534048047999196290154793841527626357881940324371593010411527539534180265944742399808126841305595769787311684436465643658028991976669717112404830481335514612843150859097980842703472426844698308031457094339397879759603523510462982777509943310279705737864169763930267970922395480844793233713826477363365181914499286981580096957496977738403964354616950705649907167821362608840740635960037246722900095785757629041799325673088688799718535663246085326759199310739988594319688917255034464952559684147779370119342983672589459716619983929675378656586761072520949254075705412318826480418931458039939248015679138700221960309777208072468843828824234279903325429616192986464531308060375164948632913551317881574984807712048887169237593943789594399117937936616729196358627559481631416345159606223180023965747936014311451788620890724129428343287523655963712919960229848200484520291703289019517267743026831060943521196839854770043723010008331258916151732339844366488182188289809918963680640416255552575986195506409688764764184450437803854146067864925612258078918115961954245045834854937719609621349236510785952889496324295438272847130339321512690366962036835888019710951566040150636034589864549967084335724429471989636729341961469073427365781288380496982338537020428375198143547590875175774615738217796937839666620138026404504068736652528401183052636809973325490915007112092080760415438147386375536282159081887904631052416916729786665562667523686261010944349551109853610208560101574147735501125970813474152454681865639138357379067264065451557352740424471131423441850464048676101359957690932040396752112415654427998022890767765095789593288129819831774471187966732823774966560073231688186411795208561050987327125329548410426480996246173274294135893776860512321443765888061283437081880756941079994678262784836417698280652174278525372473739474023542605186018156040923336242636869565701652669435227269383462156484450280779974645853670350109016090511173044994935595696397472156940966124047714885598910170862972632482831230315601288740624215846894296160211272194639601799646741949508842856811835926922296327850686701757184303949400056426265991628309403602145077604850458834247227929201728954228048327170610176308923816529299786088403691338067575466591516928762473058864086203975630220699659968017571091546159200011843777240496988809125467637563322389776431438022989284844861056278671210601910008311146735648270070634225704200195595657740523157056251920061298278705512799062410657775930032652768585457888889038748535913699982048778985330197260013742175704010068149538407589007287963088233917279476234417294936637781133320800078227663964875805852779478028474016193439969195441380771064769649485706429095036164192935977957956407135922190622234997189281055783096861107888726823155665724427823035665747346930128389035979736831311991571719420039117562798558816735847147781433281739589336741563175904871857528852908671630945970664554619660291956647026346002321685686005984013161485417557207422600573102710259148162455621231327951079218233051440543344948767521185003853984956731500150648085767802852175278421828161423425282616396165947734396146094345046033312987422323039819229879095085566788525827012537539802346976547399817580414347366602391166747112560122439917831996114237186300690696006711598320116496706672499383502597662333450007050194142207521973137983628718560718639463108404696072090368073324028624537754691136585096497102712127675774683336648363717537131244929412801106436447489869022898628449469045996132433611829001885708404619864699337127646894989197301984558509815686028436065989434345715572672730971096213678122697879521778463540370847495474717228606634031801622365626906140368222830465231197559841970858036679955477541087307248431254518526638253122001235554418722542791536744277091061779204590331322627771392493243951142394886044687216631511684542561062520555627463439697742415373552801906393450009196985740943350487454223572543850172583896265709125852220001681318380466437916655375741738563859058384721358893270355456544955827146713487786946962001535813907512184837738360981689563986318224571434644734524377727348869029876784129351369766149958395575736104658006351683175445444222113986140453384939611517314658300976057768378552135346989770630851863724525912031262134787615629424823809043525069868386586273459604716054860577211447427096393040435738754282877111766117571871025903115092232747104072659455008548281930954624572661861964437606485779247971256369799649073722922665222549230790686080572304424800601064453694274891432227364367522176365438615474534923343644761273572010604235898215752469009729579678141100914881390690011416218065441538150300251682185439094505648012257204206979448945991836939078743438747075156312625444085462937952126655515024255688273524188372877863963915830458104138345473785999076615277863668953548604748683013190749276562261914809474400391592534972888928674018648239421368302668497201076396363408573324039542913455926452757943088236810153285947170460893047028656228859360652815764379804032359070256952288840315200185477659255440424447633128930982258904864284269916544529060867306536754519075524632616838109344465035856063600083796663617704689003204414718801852556127325699455742954522374631200188510134184106469843810582274611173182291478738208341345902243205853301359707862225797626212357328745906166832642540065214689802888774546282190134128628257504671086923138040830726331627889578343573566249586427706603401198225380393942020138398700488153509453984686426466630701148034787851581839826165513112253981463891632451061548785730827329789032899147508444264717512574404838776497852134390766975544579344892035352287502847779840871995541052830225280603813566532752418609491293526478792427994194501921289965030061356371341868613009836298794125945620878724035960512138399517893344384280409831913895864042142047301200512272314593990783650377483907496158161405978772199699426940287072139176967693229733417611206736815872054292639548300091896874310128009375035608813994414613676917025287255147479410627212838541534624371563511355748838211586122105181898405433687620597238578118887573286757515486154330354988449657225078581819773045279148417105561777130663203221624092769028647721423198509575773108831438471732639062363265363108019996858480710406858966190645351389262210720701295700058487566081258325051359666223108542842216106263077537978728639734122136240969257860066073216154798407054744294132413134623631106591846148847101172083126556406979601311983527579502310342544079426720395185325522039740920507407827522868261589365269462568023961347062970429750233371238097148359221693614966153251271544906786108596459070438812767105290300720479427195301264145006733191004763647767432187818837556320903616705130072529484883879598080099674090197379360801921206697966709241705635762595259126017748895856498519837580411358318614702719400511447739100837575147431848833285156369837132769944708392161196932433849043888819574073390651690168451170081054272156404859481529171937329164350506355755897320428209753918286158755941652828360512072246304881332752702005463671301917484006600002097873859269721064305600707770641409655312305739236353146214927589794730071761048797472827696617030179729038420729636139899916382727023349192832466738757170647216155398627804046831774165948012838242754804140429468126938564979556225019650499118400093818059583154377579325285598748870985986023987828491104602255344879135011570999112562211548578713493101259518729229996571542929853916938731410501864345034672996262695895949980920210516345614495866791189396797666719464013835225079188213064644563133854619990841776263124687027607222903115228522600616524672242899211497848513870216423329790436219847366379139214086441485880124531773394839904664626526046068934875822685594981935613134529745905319989474128012043227981152407325159914933100232354860706940934910532559923233731242838363861828722953162038092025914644918908700527678264243300279212617434097903738949592711993835828952614438815787516689128377168341304886777998917754694901419757006946146188186301027428974968363909440866740159966890178007790397734375964706671639362161354672058310285964454653242595122659927189763339433953027911192132667476358327339749084083403921582770395955898515360339241510645907666088653563919659665911942759992441585839268524523799905726611665747575951401092399522144839671509900240910134551266411060211831488956019464182359211618148410750982457819412973638437464558643494911109621581676673728051886020806241195033231925415796859546975032938125633760009794320682166206699724012054515798694726573874172861391625677751611697164790680170270729894874344842588515234171680383283784678203204217224969095962029669888965462569097598714448914385031809926052224950899159295186721888551556012628212882944059765124277788578055477963277278220636307631627934871894847824641662282841570280402392475454415305933365940725011940345306091937732339664635517488749500719286708789086840175137451262201797867602767011524563327456700843132184599276935262629543856649086637749727421948008562328989317274461483935618376957101943648861208744665947234854194975825321146701402074650855340631154279721721709980443616537871482467574933334694816992252975148681546817151425617533327797737574302678241081204114655026954980901626621469494039001600457362522618375285916942278661267477216356758922629796730818356662816025177705846900511364539982187745004229919495749660246209086424043569764438762913910154004449089021169143040312681627248906243825214927626976915498036854788900944281658387872377399002256096366217933768296028540995606695877970400111046109713825564497392761695877230763970551108907619997914222435495919288282183885779499991924484637986560191936665179244909245878714441094504065428129313027549142168467825752325756271088436516227506403091924610273883681505351036833054325383457891825243263407952011296462299233104574467467303667423669423855422230467101677138376792609924595079773952400009148148548919968006066233484320329527863876409096750888804955256339214601426031415376845007680826959953074606753098417395979514001914913205172395577119440244076342799190276510150183417409934063958110330396418910896896893910856216132560849158758224108512891063511725047938384228194953569271361779559281688739730045825385525362971622298193818817339999760514726160478044596145288672605661179055721264223348670815488521591580444871370574610536553379095701386166135265287019885957979906323772510542685918620455408078285589834263706500275247730976816807857228911722584159798518776780247682566180387476503880574395876530371736782351217893123477141364311256402074713573628539058822851430186936041037738137915635130582931669737313841213762113673537624479698530780769715637568490263362220000463175298495431097313221363464214279601397212263031721098138705930176038143457899508739590024570146832060917224847034059036597409325529669345339387014977381122161193427875492713523612096900731028376793429581367711770607554052235886825122567213230188921882355952233290186679623288281477715563934809836371524783810178773677528701383819125141385075204362543832317067221014561529827420763204911662766393345774676714508976057701069636537931316109459382332001593792341620431099274522991646530208729539458845447155481745693825407303013028477924020886422040413105092953093300451502381155574124534534400908845915412133707651213597921999082402382770755358396115714891099346366006024352144369515790874963956364294070361735740361233248376899554065862371270090568960723836062826103536568294631702559962338472143999272867564510018780451083654453424180247158947370393016034568102486496971662530994050896105506901006299880254111879015956145933079330518549551147239217877055925832131171112221317530491682882520962186611025623951375544301840344389446174576850998648005743500664847205671913245785425876725202908855186182634143395701643780494046951503349502904211562759832976480971503384584851220762566480868049102657681203461037523000697344581779095672115683438592658892427997449603040997920037895294347948375987449750186979787404320918668775581779568099319047974464583164898465687235946403004316261730519731884243453473430807459667718516168781646663410693110457340519287998097483933518227274515117724794023810714615450507380611805909733239260781910658294682233104164328596191846821164423451879067947628276920680846089020013730253134805173831125390163003241446109431359814460491177177854069321809268649802432208727827484671164438794816918755780426705731780481020019517237503262315664323685710876999596306679183176089986919675285831156427425904985656143945747947924755655621858987871808285931634085024235208365071297285184278904944751841966737672972277762063193240789628558092284780843092309547798101802222007177973482477649717262456846256768735659390348704090767302897807073972863689065230538681640517008478256235716528859769602858027967197947162527087067728062471006953453430812492059558871892054527886285506477452374905748919833291667017173539907501983600282636499084050562926179506555116865035662634355946985760086101804191959245207394414304735587490224199975290379821284740896050868950291100702358120488122884632212040536411721845524570048515170199468611448282067531899339452625671562262962710309590297090640977289031980449003691878674038738655412481643870127657136887103405497047732925981955699851124392746567340094766035694343314902028893387319027442403924113569625803764889234364186611659089021775459808392439764129295388533086541122244070267495665923263550581556105039436356770051127588673112502223507405985024189686040227514378012876986992139025062070469916224211100047981814057852515303104366526723464224231764945516031169969768744737143320146231001022756982329190774354221879902541878716253388026353604206189899985619390096971647033871537694282582465543656319996288981473644939182779348238743934766185619939871993879307150323074611616234078183342289698798804865828404480399783059883620716339042008576713084414399271913765410762511933794506573444498969717086529428121144044239927703446368405993731217779029736953923509385859559541092048324308360207797055760144474537461152787117602633390504463498920551904763603966481734332757833847100099031027312700382692129239656813175817359514265652074627066626185976794433744431924610769765078591834597663705610701589659512614999597710728606995540722233685315904739084560606181010597481183648291875199851731488305642774306124225779196783786602193356924929297736405854681184472079937211155758261773291231858507178743370576216241690239822502346890023786549899308775053850443794897296078177596334109629993766375565147636141871076967174352318330667030069077576016244899403168648055779662768502885108842053001954101925347582122649175174503706231391408817089321941008881821120365054974878097637842037885404622471478430201592570043793225082360101225031015803381877912357288309276983370682871033980875536980419213760102499703943061620100934356991043211153523084649522914290090101497992734933317276428094052243486439698203575640612504278610566505398532084709632749339924821454998376970082668557084045767713093023422576201928997780258220917157301641156242777636246076268770493072328624737636404519691389499357392911566968976397970101809521147257446775536098817500926966311476060747809855762927837211340555508820141250328995181686189272694694623155332127737451106906323445131499052112109141339903557238685139393284112851357207642713571881122486923922440619674827667890005184075039866673679914508492075091126865892212465328500197805127453818869466295558904680630836253871245297310310978151623894223430905592967069660359967709086583512759476349572965465088283712949883676555563742491302858179958387380377157727764499903345968016253614239017849339468919043296910807439718506207884798326176070546473875849222608545126990498902922585934369662983102658143417278383618922556235798535643445475971461068839857946127335170364860660631968235526135667898704000211158552640114938247583359902723954299530153861226831316615429577114522692559601454522819646953589536878481648235435353886053937849559397695562731747844857635987483166474162131096281410026126563449328298542757588299201492887163859565589221300268709189672718921962649274988680216361651841732764629180130492058687869642035377179236207728691913111506346530411545992900924867663553937076724311488546523002887753337091490517048860923282716388427210006805056016275183897984274655670425680158191245084979985770374986754193118317646773395332813161834251492994571593640372688736701513409693365631866362280251673644739417353056527386421751522639230834458099151889824057793324010294946450600550028243974682568228227803146077029838840391565478441870633343679689698172089757021126786873329099913435199087561897025075785677617771504721650494758687666975145981914723281384412211705765714339179416321058226076181930118888473617268583164390007491982555261432616665567868432323398959533836064868969652414476021258590703772514784165214743160165995817606975712236207300050954381245368773877205817892822001523671002709554419404388709662661355397877028473587818455206716152394797935604478876114110578869281720312246963685113606746984895164084324716572299151768729766274181661357379009488822321391902361790907053519123134197980388160004583865805955572328639715509610047258705026758714568023957551421246942794396009645497536077960233423987056022381998747285086889212472288985651395683047964987513474311029400363338937124592585398375376197765284609001570438437744957839689467739988256176981387240141241521555942831954191189853616354885532278786053775566191172155810288013979603080808813150325212850861176989221336934093424839661080692361023432797612012584021224951242847700712095518633665454912561820394034380444221877766217133552819247611869066444466807532892150595169413018889608602631450758388964522375550176816421060744979544379812127444767059726832078989966836051091192625679952792347250289599339808771732637178744141338434842826963237769523703964783671257221357858320601149471936446786721452843155389552655226987648190606393985406566973814527812704213073103258987771296700124641904782453197355340890705731194159744723953512331924850906177506051634086165248476707182659116713559782265474827020409197370515616113631329670085459899665793978097385831530505181569108266431105453774305159851807718185080631681671459877225248405984297879202360108295739873617074264246747988235426696030230032498116176026682505182689350143381924155244755912867414907771450481348709155254623460626197183092068907517172937883396830683200457416451062431093510702743396652792861931232129177608065795706067042275032026995115313997129339599191748769540443680719187782090109821510752529850515681796740983180280912305336635857036320913594054916147946920843468094403806785439955705778366274863635376487572199575076603136840380059879625599866070996341988461617170610309906114375135173661822388402140250212050474456949893541763528645233205505293573350045725042517922012077748626164935493088812189351140747389293599632691399960371790826132345569549181891295982109576436292715984473498375605899439069932272087224954262099793062900150538611434230214044283560855096991360966329125585744751336372414821849502947167079624621944779554805150377417133911023870422782756554232568395470069042681633869610398616458749901701648572053666588352577509806447711574258460766763847392340086652154538234453821842001477759093841760280876296094620973256014019706044500332411187433168642976564311120559536624264922087797076965719651666887360425255146106320993665507181573108611244811742258232642934593741818518907536717071124464775320313310991835062744180745863427589880318584016029676853528778486523498016965200412153315302519097384052705342875685876307258218234132908323731385270724752913655211348208010417185517134053113402566065865753615213883974030100435177550575101188439580072933370696826091904079373881906789369179012436488566431121663521462472482160852298197875451701189650268883301353583304734315198451031328226581230844741058135375202559114496154164628023717980519945259004089805930913277164848152134306142816985269925607499401549340828105132596502940211690026271431827402062337835717154423435659374266139942567809517521046751362723285218182590831618411724744863173332048549453175174142598874082490772590760881316275334284009761277216245249380206176790006424451322195651869571712014219005889225790136769037908565220993296515749159498513055875458333998440687825678657250268735249311497215796126342713243433150922913689424885341416340249192950456003318794939601443329001944891581040018085978549945934609697855492272257399795417179325845148161940039834857921328076065898863808840234553173012989704538098214276753978784956075025065940198061642564528455069861629395386344205063267005509084274731763969629402496311490097689272753592475795099685191965245595987936713722006152690850421504299477274050792699808768634000613953267322207453309091753796306044122438708333259770662322353319047166880580954721405840158805598802504720996195561966950394455728990449023310659018057230516044989774432066460220633401025329495045394142178961979878193850236352694165510934084847952571334851899954743680938001860864864318655948301799024778295705890138322088539794227165402220403675590059366253484434991079470250249900252418227435421995410461513247955854318323151570089922585927806174845911308631792016124292545492310963276125915204584180484387524598401066574151653536579548980686686226334078761387307776315900447030219324847565153091358765020835878341883819428842544065498377795973306575964200686424307425501453999335547905708949407897913294588316255763218193957595446978952236427252385454627974716369740267933908709738292816917974522514180651001027583472957473669256617094047521086226996392513284848350361508370170993502539130600576343639363528187921371041687059729996375757509046092093303736541276536268694448492072311506921591510890320063810941213450274505235774153519127605808319752966931317496526139559032016111056952406275070196404280891816950499666577732270322881084254884340073135600618354234643024434078878712898696130382852623084551737594902945673273243858285734417835042128975786849234608425452169899176933647739838027604604309889998502429849269867692449518802810985645178026523777873652216550839271808921798757098639944425242401481865281602708874117952044234398576764524032001440344166134700557486303083337712506334939293095511018832858864859761473025074652010086953273405714842390963614953282894758689565834699423213580590476985314317718233363125473026825686947505203796895497890987922959739748364642383276489256852817950214508912156678441181060935866098971007859169013678878981574001586871389205504561334505053654998528693051446242454845043934586706415981348290194717163954458334913914709561040213643313078223219950555216345595817495599866358636697968373071532536289060037089972114740185175908785944555106941329292461963460146872175066638689822560905675961764839645501225384148414298095076615281461885899520358244730626385811828157983299198715789201275706359194413415581117810216890307775093490323633598273037660730050845791788823664823322454358718868371661072748082661999451140266596452785832163856329728014785501225054875127547829359238656590439090555951244300427452564947658978593220974699930556259822616134845432196354505573030158134891403354254604644502034650181610958584842173589654604545532749137548854124672535009773800287527222467862039742802946549697872164409112679611480589609552310647512389036283819582526099888627034052671800318237786006423494305535571162738872702044973220085932312607322074949137091957971622676712994304954183274702531594319492055701657583296259877884704622696292024023079648621101283270372833377589512714943608616170526937146337657815574570681149608893267693730643416814001208464050829206516073972285143389233582506424524758411538689251220726672724786209410715023129203405175751129243423105480894868523742837948110415381263233366536246532010480758105149075265179073146798989170826656742458080580692862614876393571626156741173939228596860577950985579737841443350350842515712931067827027407870247430209296272504802850502801190069194191319625673278189704759873238498671816581007400282548415257678305004564163261983212238157087308377531609686488258015495574515659130555094064974935494662983436189347382675653515535860339743707784068340431980854768261758683253180126147995524699812718965383679597034493688135833173441838836768664822105332145583546394190402617561686538228736496792945894964660111830604273850380875704657321149192980002287968497130002452625808815409169826143216068990434127457936814637759879484603967543105925414882156476087284776972248709924262176574771971568097716131804520967328232891338128963754046433843257057722007288444517681319782624990405270647931275883733000967924188181685196253717445294790564230363116281598326204350948864334825525303761401567157848748399120353414672627268076298651962805589094816662126797087532977796101237301512753948403068869603677806508066211697410979580575265369794814658945070674810921141135509341432248599979497230178604450262540311588742903257606267898353375593568929455218921769053014986439762369339615401774745344186442888546313447020829693815812430885382488879483971203307286661744421680909478363161171859467989701873072315863251703220545684388457281680218930862264784561968868786731830201798708928088063810346093556386008467237001043407908424823201602267297705488935229724720208732406194252148345754038705114609566721256202121239543420604051459687866092180160854663472273828569767566825480325085139590531295668874174170283104592476911023473906944632225434148531297270451748240575246985282347062148454687195704523683112928467225470537086015771336525350953213012145762156737166276683233634711699180718561201038719435131713060504140747741329157357441557196949611923051496706197479831116771868182345769316124999910935051040980432331034190499497807760522288367775142637501488433265195750516465848147323284320215527441975810478208877194102087842586099916190102509669376647375063913831114426430587887854530610242438272365892620696260721538040975248118713951517460419686750740141949001149396022729213506575215806068267573143765737609298408312370832267993333671013437179515191158526968857100111235157825730233212153653653673655576876575098855623660862582240013756482114418133206543531881151416108682527627009299108046839287536895442574736589364890284031350452588996219066164624987019203955229246132479715700888445087411041970693389980208553276672808602255681276974106509390247614173497015833162566975386621444927698642855925002146543539769772555564520762625079660999046712579424804688726086914242749739226670817849733769212987380759462865012648715743343177554191054437834643854949780063446304724317062992138549647284673787323185390276128695098819809674104670447489466578858061078971335902070666581887060265446765571477443391829621681692828235361430956205921518851853607835435817581349814245231784669045133257447638808998355542550760506049142929801065799771316307552910889420751914845048643210582185191692746409337550212559069727238502803862226153933794047755342001894829638224847207763740658737991616950099228387016722328396730086470269820402371466000200263350405828458632884174775218643460836858237443413668897276516620817058371864057947328130046880541378975067781357107183824478129139038486242207778713640957311998166884480034497545647962812903464760377199821859524337168638396082143894606010080632015373771786139928495433401613280781689021621816022360720291591245246281210980262451285219499447938061433262506339881031141829459857909566412785038420880802036758190854563512695572168836900465607911268159721588567973531044342100163687509443188531949693783752719218490390523422736629063072747509458486955909255639944590456974444811164630772030612184012871235743281526985068060979918400607871277655512377821289462579531565760899689847647580290577985468090513638550373315172595171346866604516556757467179802667298701119125857306911129618127612122645117854882353952286572986807358433192204570453803296383664770920015582505494228302193173350716341432663528040221462842741453567729255587051326375234668977742871039918540039759563614608204236940778331549003454078985674332244811821745343950452309555781003756506573115661137446791549339020109780993460845567857626288723373507039506349460850323842228071738431608936567315749142979072491941861993149213517244713193854131219253529916149836130245878551713397054680682732555237217267686411217196407944347853088124219156458704431071271630994340946346322771008885756430351738202072869039233300201451420029902982407881664718618645180936249894304243647522107742545358794898967585467560492655265829572926361925103830234644911745718948390972934452402740918062150838646731121675022481386274443125512774868572126880647594824161453979050246444199860302740631411771081627812608313182469551658696856308254913979894853159414770062237252668311991933579872327131432739734939117929828977713059433272965594104243748698106562823163436069057743284701309594314328056315860302148652044559762199179628851638780729338463264861417127349613014541192304496791063313263851927386867088460010330287897214015780526593284070775127760192914604924635044256688549897546981665837748320655425156336876681754839828501181166882390741108744619842002816993949088970317559915409848957066956340422883553508294541656224354226315707169527614845708072105300917873721061451300227308274018674847250307392539685127446299279773656221194960359046903949970095853848032189288205989500235959196695229799317323113764913897721696275778847396593917250276050121674028781401562547519807656595279758175953238640984497726793508179284832410848719594285753053933621508355022896389686565730942553564105584590680663934393799482953009517107549929686746183126887174960680168608860551034256138135485319928084536877539414349764740537549126574304126587896276417553282178161992883168017636854223581419640586075580372132092471820785804457876688270422020635849183711673791863176413568262281437264896146560264256727563508074002323145306550958381286227961001203513031670590185124682386021796646435288198277438725602382737272638312320371925172989835787218055317301442890107908311069743255676865949978203858251588366638428924240448253458966681904208600676420689142811127338984149038079156714416912881036733289129265730581531224753607510245157065959866121509823805604622914275536972584140147905334198151246614908972797145857248400570990488481506457765008546168879795450111659973576961279763276522651538092722586996815837561503164633767263042085335045210635508283205304207392328462250101129229395734847732840055186057924330226775566976016073256289282692892212667197823704433647801591232347992721914781094114693709835959630520138372396141666217628142882030743695203376110730309642284386660984397817047327219237834124466014007204538474074105201536939578652335023024809779973604094367100378263662218364570574942987167273778658604680448856909701101327350481680672116441094872900618469929945353326334977355236817459688885045493646611145320982170619552116062795089815758921790924590864297015561642638040111950637404809525594140089222343816481084120489218891745139259545081131033398530553082703918326354429909520097040801512120064353954205264140503604043470279991381477816640324349369269623405603830807889621604707098166821332685403311027778101757043053791407651426891983728590222936362885572768536017130908083922641742036704812085146055915242098967431803236467532081212474488291521647199562630620728625858725945976345943714839066272563012557668676294633749238583034448145867312609846718478622132046326805314788239975392972657813365780365230982856824077979406928980376385363745801048349377987162850425872647348884341539756132754511919786812527314418782577119147720802025761660156618726338310033967643892052946658500487815780467748629276146081517115403470381720468381136191200980401630091395624500362878361268513670182550155581142849014027368586393267968887839293234217843220043177136899719630069412674818364399269681710809682086906940621004471000935088561805582178778492390288046239395943447851041296072520381958838825451880302874878207452070257201425454630573118989941256614051845024126558158097954865685507471959406178988077770464758404514510015576740902170057226853055350129788906698943039218186009706199808205693004658781546736109020622367175406506557926251470202430124871879761461718441018343215147907187308288416102137679633216692607964920178214108063144924065285684905029440738120758449147833176895072194232060940444280545703723516585345754429287130300926073621524487631487968335009837082549092298492882810707676065559357473829359306946645413411113934581881387544377368059845821269012249686832511258591818787801819891717603814891266589779621924845544681805031143654172175702651368454207953158828502113335278583573319822692385539777599927904692056199631412928650615190112581024191036569222606432374718614512135486638585167795548117114112634613865153724711496556331280633269589806633429867162452745700806042109611117515897652719371819609668132986599288647206770152988570700668719931452201230394185810579683258044113297806903575733029038472878467092881362875083529365493350490841263414902323862053975531014532430752116908576105649872365215665591718720438254543534573941593053732546811060370912459360504124179418533547684289653463099313139471741425295047922812930271004536340675991369454685329194001097284916077660673153625716883975024794442603692519949309682517150174116353477211832972951717109387719540197842055808931090951371456904705133239088294452746720918718100956009607789756849591132795804221791863619282069536815605534626919366722942444655896699377617617613964810413485677845485447337912638856224015788536569534990425100551776775231021835256176423885693046225767757579338787900745909987557121464036040198909826014273697123452528503543964819707534949064863414959758004367670633356177196611121799216165272231712405192174418072619102550359755933907671966834858451413223348020937194104627943027949776023397641757979901827036514414634769207138792200678880221231605809755920051840401790265397832377237301135459492120847311503913839935090325002309392313862765791004987897654557720041849849460153352673069027800592089499765912819007293336607242084692074054411852715077833512441683652326181398730138179822837326199841826957518921021780260033200309324489549585273088660625181740042288225960040247174495664956049544778638847853624763623000273179198996786806705438313794489288405498152532750674528349169268749580723332678405818169844804211147412303707969606964072894869720373809819318425922124804742159373466788205349081591589048374146525127355659789490124498115248197851552961436977575766126787972988663694811789617871374602076378576835299290125940286811214512927992990737718270430947546392654672360528544347114124285942859911324188556340228635132569216402384439406783967448434060861550381609692460250954355839400625738669998064205373031141369728447200432980741791325987867339643027367615376793176429799587916315735546101017792886838872644144493369593509386460567081085981411810991932918221902098719564760450760281111705482723277911271414140505406166406455723863061975467582146760788434492824466503977652592780539337703304135421651663171583756618716048429096610636175157294832977036694215247025326207394465176205483427744356482778536949258386345916469527506134260479842597216360587444497666946236820237063517288087890165196089139235317810762102862516993423393367815923141172723753933988667427110770936876948048241974061720470475556898730440513182653991733742888837385280591750041311270173861065435511366013288097859394076291072522647069399072754908326325322241168947416099665420546697645279470586118789270666930987657705957917400838135847184524582997741379429330494212521714117636958089410728056121472298286999225477200652203115520926250038017095412355635456842234752014370463488080336601599648504033541061607211050873424040474424815021135447587354919195452563695591664738260819204665602776506508033958223165031624082285815327706068051453420024136467835866016199947109270958519498816350288140317969158845042021497710737631892820929678061827039632847640912714728578266194153277597349766711397891045651796177976597998776768424003692889738521766944985555982896015490946922153181847588065358568281121024740367916479473575389063840821782234241316310423691506539105410462384035600726164294024066433794379206139811887571945802601743788872690242531457868473490308587730434991512605890409204341679164905012743217589717273482941569744213533022721100170732896545319074035831978646120066719505812159416771943849141496614408115236386845278972234896527834603269183304455113532158565201732997975562974651070499924568904163119106359267527316381998837060182938452559631850870865027250323350461572165110643561302938208505357343216144610924829067566252425891156468412282519547077891869272093884967516009226487586337242478140995794268565052361575681917606669570451549713126893389111105765015949689852090542410454759853985948890321827754746368038747851661842281642187726189780935268446917522166198494938083140019489003506465608125962945826631401889242116104622276651067391411836402472775041862239349847091578447990937405084740884421392238941498259723361360614840540938159965043448831025380115822720901872196791944350936054263986327238245997360204104766780456117013435210616754755107565286978073536054031293986807035808103028790128226332628831526299413085642889636739380806864448127354123776967285229137804767152924984047200836858777305929232230582916158159478029665057343041632212237711961681607009089623981470321487555441853325165903417507924167135094716654924376013785826375404315456724388105387465981393310317671439105595072232119351276620318645557126403093149175969482768429461739693587121268147986030201514710481971588869339736020962478183895088103793752069775365758761189970072345512140157525096808918574521402356186264244323935003429137580303080459568219096164364569831746914602258328839299394260100148614191649334034446951018895474494885357709573237491507759672050974830304080735708988209759953134398349720690433484363437392442863760852330981097529419911252881909791785983108250814735171296616125300016373767420702186443464926047559639389075709699012120503825345385052983156773381449900602814996083062314194770561738980402697017873821547969088964476097190868006034657806629623040389476447374980004245799769657160670316273294407544827436525038069686396247434446816112172204790327177899496373462533350369758254761630362464598972327950580827239423793308140796416711917170110173520893712087324981230181242397895017688833820169506222369026667194695968317597585574800991304979631813313874693426362951710187615155784780796594808630535183259106993081107049637728313602882028504917809092787853510354542332256529784958000588240170656289289734587577281713303463814136530074438417863214188774414718551653345983218173379331686102807163861067336851470673068462066592259673653737852599191608257878846016687799196697111510299915651015185405703519558801412532639178094770706524394193046131657209991511918996372048085114244469313838106458276370585964249887651959166333773849279014758709618227638098986037694706126298465295748564689020620412721828834438222778064416100682680014095251194124001517977862690511716313922497251069689940729314929290542983880385720062547115831399043428069936229534775243803745079916725035206919271814988829929950569894831567947723160691798029819563391677034417353980395694354371683312675779526045568340748329601189326861197211146137897061219225277529343845370068066562058176936856000243761404142687903439026996599569107011413268195549846271037999178371238899916861602585473656672550805999653698530871085358048000631521871326788649179658285842848014744746603536439040446096955539760835720165937811187368863784472878619757766870500883194361170494015746859700149093666802878728241802027310300280802433472704862156499410520131890614154033688219681457742449870221380073546443470999016828217249427874233430534288449705081623246044078838600363328758369289332531468302323954121233594526060891910276398368371371191217028290012519896229896271524220725403733585905771205206530136600264801889168084928397467070506307654418150180389945010524691310537121579212462866477343693256793419668885368134331751476959533912969578795834481373575018994564551137817279983909933293465333380381894680728135485543446993613410237191459810410310852933118446970630332174544413008894979469372060691529936503336814885917344586833604313590673921425950750873167786247057177077867098761192777159728895088141712367261435828837071200590435280243158053245383439712867052065085716699302221577453448823079301733537643560130248453902466537890190224425710489883444562264299751977888079016298699672364110394480221006464092600139256342465098956952392368449153189774391364015153055107709960577570696029948481253600864469830943530102278189943306352393032001484912039175351409357780732350401802405658465999103005720143224144071899857841556987024419114378701384990595286931508225417620414846897695902779350409308992233523560359225684536296323193135314593639468763799084601936201288869651397512787043374122976328810302570550105144874135826057098311020042142302813853584025255165497773589885098377848348313632100866159704392837967851938572165440679313716491891248122212135703799016575267951553379309993671492414746584684400087677421544010953657449087323888328858729492179625402668117289998843453230723849355820608492440316319312609483209120939194810291903316748381815223056662592318605447697489522679217340915864890400532249930203273977217109232275384942984335136659053617447972812853084894720806469016284127382148021540726443555530351606037067855557852784217463079683366263585951224604584781628343507134298960066442664769256336396259670017557655513998787105779350563247356678853517471303476390155642698684179994569470296757311573608073230665825443137541657703168783134037112362002314343804486374429090834814477242052047935991015373972152093121889315913818764860968203762973656556249058604581548411450064220487912891882394895510856819856901814136010793294344979434649537364441683778577386215852740921195133376351514473382364871870595060143869194274323969262023225770350969532417579993847962438987360771386690609726115326898983847147463425907015950218946616780724833613667382997218803977831855254495376574224831077915834995758559268029289787129515575992219115246415709354971159799061943769131376767345018714396419530228848226600349185237640408338570729719966182809393938600220004258589599680980787417649946774845035637004979596107090395895826590916885726612200067573717230423535570654792147844573591014625889816668755634117850870561441021926008758389018038398475545169417548291123924239120536551777354742227619149510688552287595254223997705754260148166224933785055699537587037599906198265066684941230776618106518107761552463949834049246930885657517066578663555248205357340663271029938320774664858438636451464890726132731832088292433871056250387263460688012882554505469847139458610878489096917460568665303048241261288391591566624141867006807984448514295295137049380542039579964777796948773551454769197582676522076546272893689711649416750372258565105384145235154367577576329223994205120872365507497368132922850122988332602401447857959829522829925766346702869809285585031845624593284791700728568515830574050149115996634161179866664928183981652516496606451697256231904062808558467671933000786990341507655481694636191428664202774877516452181512610560235436343317318186642724202226964035040167560967622342593353648547391733724801269679381901194975684334516775243263775197498608038557100671232452089842857023374787288448833680288535376548502890570158252405346537762383282300299591431898020715951090059108872336992331473461294191524740177780359213962593222200422742522496202361935139884107507972188277177349816382741153716632107334060380280900165568881206708163978928878002476546600003244099346108849786406244586967237631303743223773764618506851050076313954883290862861915010546577145826963563683339595872483978835577116392088957184165659380964831962446356974697601271918395219841063009194932335979585273575889269930227187864202822335665374347098432189628569916322780367096623003264501821395783263875971326162329304270954321558734271020457140834261006728852867735684923833828917883631087908817522280494815240098893715397418588160270487217117021283191706603121418068069661181573252466535513317582871321324360508230082026336123598477300526192257013496372862640356756204376892076061934884513180493345385083297411534993861681391057201107250079335820501871275356934855692558999765837164178342085602817050757115737835439614417134234573698893696015103853969492897751099227004731124076948708725769282145695356288081378053607573348551013833519260158895158906447017802235257541765695189163668635727037624716268778641221601160648811883971372002893838711763634136145755439778228647942303660521496591309379247259649615837117781642223726614526822144284273337033496754000448501024871867039971453650217896068588427522959002198491402367578114977106056123277737389463691201713675094967525706757588074395230004273932737192058104624064814280273728006895892355411841525556998957171908563264019995401434191402843517783025901049364900973974551473171134763322328389947612121908663769603277795152059790809318911974588268336616817501847994062598597161771980201618230790082600416230772970756308684496264143083087738324952570659945937153609375354599250454002524938959543965965897950853246168705175255561506874045814682267315338526562250520475277540305022176506918165455195219708478789708436719146528863555569833958479141332845766484008213471047484281764277086234575124946386033472057147473978931619175253749624297318227688132660130173527066216572912860906754315526268628805134263179654754796785831045630463402243720584820574146329634209471715268288490200793536216384938051084309057339934596115370408681718469430206612348008570048164112548677921255735858597725580866373192838568771059531451082881724943529817987158364543090832029076373157235190311306287892869130478434240804394575698305596112359324742644682057747609168969904340214890793489280313406184003214456383387920712156764428424588409970394297814772982630816152066474203301315009119231700210027120440815178677049921043343785320692681278975513834043905447953546316740736968897110928045507611321706054552122697483760771742083729583545651348402723876258986121547084885952537234238660541831521059776360324891496689683669754947562486852447488673999699646417389131645443468823281891732277032195023129942187316622248980506223052370871264903238298821526185146382002645703117856041742577941264953808683930256800514262667715815129976369663039906804953012973639018171237613667692395997247002526798476469012574682798559899292249811765310554868426334980994402771567274703490469921248985459893100212725193746900107424766612665817653468534339070915002725660500801597641192454834064698605066223733132118612207434096431354294000190985890767209709723112303719633720335590771344693552031023823319973718528425145549282022014874443351614800882485200557008564708256516293247552838506490342537627865791170004717775353563590637813349552067920636279569504548010534921385529520517667442704886981313547537756182927351205117793194643284387737760795350690259211928072857248732157576394231308794262170187264408868373852576047455480429375960330556988364889724296438446550981452755771920898066824394406106420392984938083815260587458718274038089620137628783380006972539379488242120735332510801898153989677920391021982894976616162544720929330192388607214211520100356118063554862758261037287123559491882052974737118744338076351032334477602084055941486200098754593135752204380175949125722965864091917305828838524924527774943522600132215389914662482609076748506024387524826041827062886973801966645582646923647304955088342186209291098263292157003274732082087324070889635928437890475478905590200499481132760419023511165711976746078584605964286344303173374642791488908565033763814641943830263709027886569550473673623162939416180429476442391773124253230272648347776699821638174664305930907374073017760670639547621521402280082054626484058299798648383339731741549968673634065703944200510249876111756790329913208946606433419284700930506155871995804474732648128252811638597725157713369485183873634410595398881069624377725283210659925013543734630237269073120567898275398677293190567044406330394168649561461056823819212781153404699469724910053294007472723126619271524825773356115176186971680597935829030014666806875553246036904590887973058432650808862046735221001068583415531884397229142044938688331457590166310697767855463715130357790563603806430387362951999350660189257145957158897516969776100200458896674446817564886713850250464215546956341105360592380824887701987423734729351064184614883854547307686539692414921511111317609858715354315850102308559379245431900320956379102249312072080760691936230379787990484226881936534298310007944753270663848510854863030926399567776641963485493429576839940667839243011349424415317473829002198323241906931023356184756056281073057678289808150266408556414056386231811268092975099051188773180223534672044296954285880901706014214352555778363625320801825038531563684863177034059619833057288803367429537899852234142061263201399871308190669191320042817043885363081287862950507038505562113398053932004624185731173223443166058153049617763857614409738625471771200673259590242044645213057883915122959113499128814672153549064266887537353293178300567256681215573050976268150214947279766537917138511465649688312183618291552297014681814076064197552323050589054143283235422211650590598700929842017926121419298653740621778423420680610850169017154945832714311073322744180185570058996337290164806108817738427340519210289330214649200113163851459627545930494270041921722718318913319394835384068406171545192981160605541620856901730154275280404025457728948727889136049877689922368625063742356601708530652798708169388616440529173257841670241675871728056353940404519790398644452826784343233749258734927890562833067425246327060919753917560822221738216190456341665389094629585157668035343566927696796483714819562373801824154738446101237839849096293972820476065948402281059457865969446745608707733197823258252419434962303917937838490176365371884011170259738383307211166116453932132580056994719796722731755679419167701666419859837453011779823067656272673270239009923698857125461732712253205646511809415275099545659821803777507686271808598056259354403792733134935292249577661576436725485235448952508322463283348492325060628622791458541376087810447691573208753106599745189680785482626481020924249471639275578081032016409803227608063855913977563330257372236543322228247732195619174022449637575815344677603154242628316654365182599465858862770706783546014270618078893169827831219634949724465950041426088167369225394159648157022342109750086835831671299798292020533077268836237704919448013554070926754629043396506057633700607477825088419264257499627560233520734485801671708236336767388677885962092583679952276485795353595917554308067397850888691455661221624735147290346585315544847424285451693699160794182473666044335766843228492664290349785880348006968600853332127938114459681515471305800261686317937269572389287691266778809847471331518098890860337160243118104127919966084958509668882214251355256607392737558639822818856325404493127015754112630689494973469222562436128359874859924378902648114651932086465838505273555227640435344395515543428688878266447912400891536805167933415891346876079991809272759050506827041965727683097286534088321731430118400835553244998565700698816329335150262039915542708652726951098041758256360137365878806457274451837982301440164029152754699548235193907442289837005539639616915508050648207402401497623230620788947567125437954869431820713922355812099949238681319979701675272560610830250542696244497499089200967070891865456688144412677019343258068283637951642089416083845970396464919243657896359778190247964188908041295781416764673275346371779691659441914180405092732088647690895506033933256310090457562136682762297565522259166238984756152528136510807721817577112376590921771119007380150801549998965232744227271734651449652885711156374320046398681556194542055677961077164270183211864707918550590323531251044366439090672061040671978899261672615760499592678387723904442025285938013973538446978404599604165504231766413426432743641879696308098254764507369329739752688530463461749893841080241102114259718136711116696995661899634477526093345234825996308481254828641882545179019431938065579765656477710242250175758604304228983341320962778538501648260470770990740174372746286521442000611234697034132723665720295384863009885453088900721462473595686042740703974598303305106221250162209959529131560589228263997963103869779091642220112815543966572441329570315161451424158211968049663709307766639499082909211943394725323450833354186037054085518829380704903170202725285212385739525157606816480535590660976295967028525540418754123704557713856521676459573926503870229290678896288232024834550509764290721914768694729553594106530205038202085919565328174620654975230977901855194082528265221226595090727332320140998989106341400606959117253981100526831621422566946888516514451010731850595019540944727586273258286126001442777496646037263696674906485485233587851976923972805123042120350926898512158143393907850061865123458550814890893646933092263119976931971101981684851722630542529565742369363642077061333842037776013529838949958629127529760783367076042642201653705103753357818594955477459080043445839757781751708442607305600114475681314219804491548982424009563084023510745245631774998406488923714130073253631666522666350542040821890841689834122678629821725448257062241024046203876449151036114746335962105863295069697476076556900012530380208959779147310124199406377060494201747099052213564197219121879573810035716214025187382121596676509479847039093532903626165775070990034476674292719166245272351901207551903187771517334418183993518461711864676509588560038436526527654949490368752837311191246692138829926370746845499671690000400803293157173495891108205637906501247790906012844853126204308890513668301347558928812453216711259310322224646323955369914493657222651049928228803853292811273733396096272341146592688955455639221077549674171547519409171509371660441764163533243909310392711508129687562267372561017170568257836360768217597907179819445145317604729518469109585422962307119191478506666398160240342448293185761138136308596145960436908748936928705541614504464983164480117504577442244424604717361311254292685663879844304202616723630448770799303101921562670820833915298802927163092652022287408005435761741335830992091342816846962214142206474815161273918292466721634806633551083901685344486277286425838261394731306392614913040094396521052830838307569351248364398536766157593324305767970431723869472960556317017549321500077390392151817038309407101287879197388486253571322888399924519198599380881836826159077461127178528470087768485139403282704877342979036914476151180310814498935340757451083710420533024697024390542570517698396153950975156089223477003546078443051229865618518385990053618679882431369249003822346329326541051247126551579235120019919460101188715574048790737827753153657162153115195417335435037410140969109136228415943403318346560794374807091055545755941549269366980228451560114763399364322496745628460056128092772664963408964728040280389368425375388050614278049903231563713729896606273348646290960476913886466561171489626367023900677685044818108950109682687451891318729827464111420431513584143092322465378335322631044371299278448513086146529574010099161087346597503707480820128006463229545821607399350446973397961741198010618499660268962122541837697463689668526028207096064128345777622867167591397698915206203527799049814004250654962442772581749466706322871751995566338757434588758273253667919118981665382619400356172944894094525411323858032336925496995741911646158130451095779068283390488795375993859762031044226930352804314647765623757244339365392636262386445452090222842831556941351884447666632906096312105941210186051982921293797504236592767811458417357183883120450153305051365111526047417104374094769128904572647824226867021746723858436961232369536262293783167468006216760319838279500250977328099411298490839088499211504890957941906707353211031013307600888308456737858682178834377345976756372783319300383789312862318227641534150753392622888546805134527956267369389450998182759987468040638552873921475059223897960605562255350412792073750117633573651916901445550949414854924888742346850596174374216932929909999887573966642182150884519093204342706524197461034639251981986105532263379104659096503568576142518608735450090572600677843705692571601364743550653772995665921911414412996971634565799332286647161055811575152349528288505038056113937071696477734314364913338937083797362525180146717510737343765715950581874704604764762311286573486728521098021019579561255967102073821797094733976381800614989321618051563309227970723456956765392485552145303688748229964599550836751282987797348880351752629706079826867167047742677683869507687431702236812877130937018988223432537470427172173459402935194929302969047885502496068119041571227903164249442240143249143472731840152837254431521593798649445331595396388002769301794315191923918442726781912928342665660613612007371512414648852070161504483369655893394546145265971412737887349318846666592385281726009521717294105228042283607331386143075964452181601721369773872735520578560916556789659249938809334737964628327341843891062292517042284856762769426122862593504305120984363161508708600364441368080458874092266769954204997024087636084486359090276733745541379641845606720418072279124620738632382912576019388878072899597827880467190126864249774953005932980322363488293747905147746235326818151595280752626579984500478941900396892730735227703935175659283888828456297908855879333405696580413349279025459187630111871305172146771610816925321766092155384160935419824374861429912941855561723453927749797355277060673274835589582793729409503240509969481511998275537265866849409979004689496781907788070398746049281558837626775277674728731836754336484869729545598727230120456089469062072007001385347468338564828885397476451119114283465358909125136060500483806843868324767321822205223317007682292931995257698213007880696273602011189528336891171538270161925882065433953298894717427540522149757196453789365658624971702577638087700449636022722565307626024013353036486846204493248608037719146729364402669111425342700551426033779657673384811290340252437458800551552069705519953158022182434780940935213171419116015736945876057707141504580099756040343465165183750628271435340922253462324676330849277691977639376282672610777556347001630582719518890057277100931035252156100946754665906399603669245039624976785801203291285401290731252048292187476064870876047398886232299650417443678921436886230221983510617767329751983756344538506933256108283340324156976546072128313609051140955283915805010965882431040627817104356303025039558757663331045332270576206771155536720074930801384811600258357960589914086439749573104850918329467209357442159709045488521076255499197105150458952410062662378380746797115826799953663095502217400578055169255053887039939518622149395345462581305821731354225554800211047588300430638405669936382696894720684604983386633605990309635406017419762506026042807388723480869596138496486746503401194110544256529702494963113581579988059610752034924126199563037737095512086096189993026142515517017169870045237199719245035392740481210928047466319694878187447873683163585858658022473561719297437015513715523005327618137226813287718733290733379321332863401675436945543978294383376861063999301609861126378676492861942742647843352481481423567363370108324242002716182829722036005998422482423098162866108447171149159255520359953073601215061298002363099570141419096102148406643823170904726139862882829004416669971075129804286090435197141313713687870059022490892430547587630488215212369388395347723811389711781367207094690129738362051219076406151814132114871766313475182504171444701974775771204586115787816672716700663838433063644914491997912328555857340451289415715376024086422120248347324945146722895583206713739242805271059902664790673757922519435976239687647568627406474170652904773493921328070128368177538672634960623890441755512327147560745517087224301280819750905446119101038501158597383986697708543045890478510888107059680644331095580215998637872032489414611646857863051993494683746163655902429589940817672002238543400369986891951530028744019296059046055890812642343102045545112240984814231253369178714731119657745066622421556890031143238765999218727286426519083165416630416734946562733498433043215584130675494930442803646681354169201547215885376907260113124582448447233842179813899000735890908379011106683966792026201309163967614400418130244280221734076696751235389934085636310120033919031233719103597687662411080397379994388274950208240909278064681665589737364206302894213645153242286074056907891979560109166448010824462172618732054782590562511952652509784531472171215412808668210005288476784077390010027234927564553421978599099514568975548559485052455669552189179160716971700650034612508756411567534887224441617514198005530471619348177841350362534621924289617058214426909383715921842962812623829174958441894025830759045534723043519416001349271184135887966398133853051640491928315243800607344417350388074316737540675448999162053951663614711337594733660399577361401418818284176757843455354566607166019694111266540990112475859733788089845945928915382512868921643930166158374034669066171176226475912920608234780471759262787108972565087089032512165734006677587455344350923513493324463394914571673951373248540162098790516718111404154288359038453104012756769353813721279462351242752353285286637104995535089707501630538464773909387721483925874781332830557017373602557343302365659130279037451659411440971748588957471456222407653084097852257165630642539614468222375847570722905536034205955008703877059318586678810287191194218267521387472014944262901054558492973185493411698678676682904456598830394607406133952676211279640197305612144534467941763602440059958646144280103504563707579806658147785866497498292970245427032688755501027316544186147792314443771465828921134914307963154444954497257546063343777457262745333489904376943142469776078127351510713061188429723305237733093459983500930177876912874380100275867056993347474169444519035218465252842915688636629829749044682529422321763636732411277256593944347802966636579083760202603698225677336257577669527135698396171034750289386071385066581588344805011890591981986535710845130059153497881097452807420346164395219599922718293328617819545691899816360460353967859033012008567653119312509298634426537563430622447589486069705042579394252223850112977321872424093952210275627220482362773278372876908888006788527790370693242699216237009404376299432178673196368822904314827564653394558885320796339876889079338252857698360106217542720590309675565997655676221189645316568976125740288847436175269706410671392173693559883198291212017469695105268188072726311521355032714116029909251607947573583789245430868901583445555620354041440119778736226158362014567414097297932924180096477009187694389944521141917201690481060697765528482766965816293159296798587547270720147510602781093426454499753788677611234304202620277959055852740436907020377782160601351663584855978766335805728333679462050933017693244300060118770043112894803082765352172962092259978303658972211361849897700478523501450333257111518948351313840845936357298177552731245482877373745956056656011557790933835549880665220723949770978286996748634266563117189318621766832248179530421163314327892674940204422455994723500510065171600905788857880786318266511148452247039256145008094432618307762361181422324491889479036548480474652076106260171553985691336253917370926037928454654872358697839680894251723085559723738679889722197440944984083131525227484785521190562090686127124813905921746099024509197253166022671330995553517447617370125183780275838955759621005470210209007489122763019726967171838840959079785935120585487455255623334208443619000180701317106047208624860867800250537342331141906339656388303378577034612246483806485948827614462321181931091886701180880606022944122489970735759458034948784793094971062340290109115393624625077549127414964609257346115981054005188815564979693269739999918931992521134863375976191445716683117867098647132882936186591368782374039476621138573372841864777981531645424378854129296381773000507084771975907891108584583911146701869698330719701951109540207836312338549611321445203242901584579385092582928275786533591885489054396490382663671475149363089522455168639693268066530542668525177493283333704753064817568732083281002891241723796051846132050525981811753929049416656600363508573808213018449451140648163371553164978615969630299992557473591029183190919974684528236585724199531862968826801737807345034197942387341418170215611339969863588500672248201459509537606372962027881743446605940800076211273350800757410331479773327675382698316916453083609843645302442134692290226883286687022365921114132053984164574468774338459109177209060169026643206374268228904604971036378063683129593720474263398798068533412415744998600758496071391140867436223521917815126671144308766985772073398709190723024578668658226911961822962711453011698097689784749900215390785368560902265932830003194814997358051326384825347906983716710505126637260894931138717852059184190967659869475279619137867034233008842719921236899672351457362960926881386886966936449976457439890754745424231688618450186638730566570512548745471354918224528636298267938785304474080315874898621981349988629676424102491842437298744606097505787347667278303580079884435463897701377198179035115699504731759770306175681778439737308784135708187067866970052749269424237701270233640440462064004405571950788255820598784925732579844770140611028381387802611464931719524647267511425509698278164895900752764720651078698245791987444470453783726051327721418521013765785444136089005925933855635761043272506885753716382659382060899575783195194296571861910383561047003740738789386285977152986383506629448598790156506254665024684357367692483257329657760215415041810851107612416791801685665431430064019232563122625855005804571913835545458348992633488306948959473428752019504258278187684660424486732683444089473281608518790132510314163831840094821579746625455034012782672213893336718863108829316695836258643309634535887814954530167370193017216828213414516712984999366130527021622658243826011970949100975411393477380644009387130420206140648495278509614713650688226079393126643949555997884448409959968707243845136928825866910259570495748737411928251386618342919788098035454730643269100292865501047205756215913702928514586047603931863313776500656348754040886781728553704209555840140813976364412657492829322723519196942388048631365857053020051308700143227592729058988514083026239113588770815686488971971580912923391530429180068137724890181398691163154194382296898902686303483035114900582406032261768558088398264590074007262597286709442710297189771862236265077049004213023180816477341025417075001764657788329823080694291057759464161128040592438743568540102031834860489114913687104030913208776938134040357166496465678474126594428702494536708599817827506871348352315352042979192786376686382761963970194266981784311802503188720783499984331794439276576535974062631523790233826986154113723882199577645323275079366678322155983557543413966875449708881795112028386043732012038925639871670014267921872391123246707855632652690895830700671900457240876318596788961343905837958885191307323685244496508290831791047824723535305413610216834758420011872455000311807159294556987627331046486384791078726029004592157868817169374484411623652117199866538075966848693460094166176346160922987094986843214736566068250072976963161041619170978533745215618112005052542694625802222388600009150169673144011222658394004039051431018564923836466292900379655046929133520206818867991659561247713926140573472596407508480464831134158773026635558630230080264744124962710667673299746705930932682441087440081777715981677862729323395553968834700714243506263351473022806899905784188820153775501755411211408272332258597753217865099256168466996398427386799290744544182254612481724746353313100823848062558828936221139185821988585973329338454328730898034549903098840389184007561991155693708619795059749982627049855679344770034353093665273510580343399907869654209778430119623771877772015106117525072092117782488885530020629124983399001316918193379169603205724774291032472141001884411121232804412845947618241176849199206246837665655903504793883969402815933549009337388706183179867122305812304882811119503535238426857677016149520410184784719482312005805650788239046417779918880543615059147803847116069512628316333858272914893375370931885451332539646255940856117961874609159938885513517476775063750072097533797631810429118619604956359628861778946033460618727897154028053288090820383889763040709814464612023359194052201977269648909995844385837921100551345369036779872565374055997695215653186456726853787712705927249833729484701243015992632125007141379448098053593859198655074461501288988279269387510481423191763754846190042700337031156689732801017795252015256380930640327960980357195896372559399598062505892777604955201979842974294266140810835999107026055373700087303651741498815062897739763985610108864437367588687024848606470616148188786573219414999091537634109444018675565200145350291530306638117385667337682424282428595063796283569573237721602034628848670842319782807978631816597191094003971921603212249263442990731329480504892641201112335115826105993088245099458791233738223635984905494487426165673856043548423264161741814372006742651900355299409881136674244481829481188099982857714425923177524664982345167639799840145070879539115736256297324155452180230386016868101910277780794663230990324530853971590976244507772429884001230013203986441187278768294010559015442124533187154382513947609145262465020424610393034425980567706578380655840027549677316794911497185589075908502306210669920410738232803902136652920200257491018421004133879889539821460519187734988939184225311583572340477042896130994789578153249126465762799479981077422486929646744790472476163403356089062815149744736116944899253216128194110242197312505957351399206179636382438286875335270432991294630001788543365121056929797333976950774931467890667299752385169660298607588415089288275739650891618273917388770069937953688633359783666237176744025205783829030033791246124846783194578229789775239581400889718492113716741617522346456776744629834672429900711493842424997728590738964803618042862986535393885342495387673179476688832079602809344768326005112290799550662866984370789244398011640166737541581688600374668991725665901309005925045508639234606875020288217104463232762496462550489458901397102656425921522179218379031640021721757331597159111750489027571879290400440240667068158748525068894241681440250125827317996145048874092004352426125266178175266032910600726263681260847332096547282361970284680038756620142549082832386388020194376651336170173964211717527059410044214940524814971559540814996695544370674311377169635942462615559052700172511209998150632059713141410808185705487306859834478769261104289124784340389129832874713571997149585119865505040954666024700899703798776150654661548898581666961681933164372065044578041927790276180914829175925700618423396136083470541805634515702244245262758827941539664947370146496197142769050335658528590492975024637382270950542536163222682169005832316971465277931165010561076870527809800737382898506616803510753601635263189103798748014797059679561592765003283233186908677836952109740021307184024559670760708691502137714095066827135058489696988144842789180835450438436158497847574647698862117019536146641367067383038472540145936726235609986690695654412140937358212948788502468422278807884476842186479295825996763409288294105477827046565220070485090152962051568727034883888623276467011276481565691254660125136846155159736232499682084240395510832246889013688584095649464025740178046610620775279676642316758720239220931205888188399044988475602008281664495040089120115928214701990257478939300965335365025184269394096902000540154282916643445673267518693789644108021233239986286366255914011930633365967076601615681000044915929987640987915500292620736775868567643229225679311148445085204888934100503492217130998476309655519667826312865884347294782523400904826882776647625292682570003178869735758289504016745650700409199082561274616711516105818686098045722233284431989333648483790692082725420252905907008988824310063218679060899986620598375109313837748744319265618276251566953642731333294015370985182856891500009614233560853212824032755866088943646329593767285678996975494673774077284296467646524286960494651807245019070250166555213089231479197291889364244457924225512161619422103610648241190374896238287700924273074639849458857801784743204577046887778935530990085283658369401943268193310181240635233606993369570853356536433145580516345168432439257199856578091131063303231625810399044081617749492733804268514269619673988650612351050339293177209137602636662409451078414630928069962523531254866491640298571925655456427950377358914107402961052900945199054809576930105743329096214099987533212401625934865494648935546626429149007981133839831880821516656763467553348360092857910033932040503386926315551427968473974989381122625888953183601456099821605692669272996192745237605473061361414515912180726456589952015507902182648189236600863699183162100434086206400383723360508672590876529994087432557451614740502970282440825787744735636653759734387376229908238332805561670849695081605547311217334053178522760411380436812195829627560790919728806762422235846636925225076974021828078543162196485487585588328132222465693164402551781199713523902226588549794637910654930637554217414915291339619863551328121115999567435114732924427595240144778400349513575433715120213389789443651901499091233253840332065529784296192290593882927112896639426035006901163156077705582175489500269185600637655659096572857756946511297976788008497847921357462203642184560636741207307684455947881021722971329431242542647407162503655709609655007288922886729896792174630891272089292706312870913446505661292391595755034524992400937871471960175116054103245177428893072722164411323396877618209675299395625053722599567464649542307950264776309836302841018471162624463400119789579129662795024519702720193588140720673309519805103923318855884144872884160827403381639820042978141563919246721747363711819991901268100077320010249947869771408315010304502046441250929044207336181832515042386405875793067224443857334457334676960865380349534494974942837842236299547095870980231399930371125557073558305646550359385860889022116864948177266601448875715201198902453767557756830112946729828946165836202663462177517489845958736514520955888591762123600847810495461575409848999772299091293820793071916376821098368662360602240599938823446398572256005313764594245664920970761312192049409255164671721062799303247660281325230931516830342200451039939460915725144844287554187212459726583542058080089852109850741245830800335215256023544984104869337162875769112682800352768072429155050018902359615691500697008544460338053231699615427325726883760505506528959220423496738609245150038326939755848594642537276314423227556862215424521823642200747809535022761348615595367328896700816159619460334566902311353521876693621383250220466809965752207510233382257335078213808765542585262125618477258615002219392919816191531906368859970210116714492427862673178877046642047082601609284992054534150840145631386202441820558603509985897016160241544326133086315563662058431593949205297246450140501758585822245562991427571122865807534944069087644159173517149080077490237621940644553076835854459885177121862923038198506920567003615497818567706085433264769732310210878723495584180428249140062907498877137964856061831887705236861183911350743158439478262259152875537253071699366180934622393339951638761437961190928346082981701959894298704244991446667161678290854551389888314459541571697692416349405791774320149294551847754504890486213582454076579272998074861509673627043151620349034523375435140523289162025219018333867110864389542858495806003377287769244557866606972059057128751193195807450604540946923567283300381640742792391787551912472620761093148455376577921186803757869205234524773779690599911155915135933212956445493251190217143678409689512666038231054604997973427112250723772014141387350175543540783965242544739975801127772193447954250436829589820499262802856842175644123185704004397858184940561278983959427473602389121446051167554202379678695774664009204901571580323233002118623351304004826645508665493377768839346304926406693522160161749024402027693979887716920068910500961382675345842631309901765586353342944727463522768850904376966550913973326102930751384572323221951969240163519177455082343619042951831515124559741773589381511373416140840810643773430336124009378511032200497200531191994462990236256504794819453374566103031743017631874766249673670209999576563257908759476467717545502814933148856765398716762705098598771140899898050941145009634136908403149644365579340396919050598547599886151015992141817146684742370903147306856642063883697551153400549413144862250155435365472767480227348828426117644434986808517078360274668448411236412792115640986884319851580575778258833958656325272883376184212897282932131996162158472111913403403383326492381803774901305819601603741050368103923303844087850822422737193327947940912990914964865482986865959479802804795183233878696098484575054737512115202990486036965889381493130854084514098911808854322723287570863119789257243521508391090118223077798181291099254565071322631925066574413905709270280858073895908601868761587018616405353603660482885774331243618569310833427710085109313492144198756654139229325050947462733516932250856871692419707170896295317991143032226205459279951652900908409694197743074893401457977975011214414191111460916064312454343079260765950011721161640940673090242178930335343781141963863460874385337318859861927170894939224035770827442924678593073719461401430484381032474992384649948760868381713104522315350464206959674924778923730177832425786373705292739538649980695530306421343844793940525467891600051793637318574757701115560050131974254706505096709364805888081383606807279611104867054363661802604481229402008439516255172916515484669780925566522919638695607754067734341816229689349886074360444867156997910314021556293979358801120275831294402602230309804352589369603080994190231228694059534091754952245962317616728780926328724963694399960452264009914742294869870769071581988145024394867071523183072751499979193680978435853707514228512942120863743387296224557060128106823691318134002012699650155178511507601074710060465086087329869814787395127393518405191828424245477320734177339571194982141735083522118253599563910279675071621030829698909658462397219828108167716708196292470147178661728296415457299698787476129849370680701888456795346429075231439383592494967744695930334097497201278806110721203150264427658120945796528291720726447211613848418627762758442577427419326626234120527302929512009071237272356274435005967644434854191696282144236031754658797270084396815081833397686984265852401517237748096756185506282954082552868985230415471079685224371630655823421422257283787203735595022502520940868518334502995214135990131825572018563292222838838255467143898164370337565990584282861844125382085336242861118629267746788970675905041590364949862916280041856564525511580877190990874437554572845956129178776782227396633938082497832289915936679731400168295771613942599933456985903241093688454840455241501268197586520297347886950776553935520710559708091383381014819433635057239542140407176345822252404374418443073837019118166242620165614265833227449195239255469255473662113934474955565123905482596548515114113750591911542854781836486568956393601840532140678192742829799610646255762772599780416371011362156715697968219839996814709874431506003476120429215552853279074239051250635767857965913241504027965557452720052683655912134256696916669574267514921202158673385496872457817068226460984871790220299009627162039611913656406608132777302143453003302734840481155009305060935689736224685429322917377197331498955647490082943155566517270266812555764119674883735324576579865889884553349751018740262195694268921878563446168387905241042905628472938414031565517793999936013322721762299252544597101398912779720343896961744472655946007428061957393174539290692162456874421366606063918847273049334058438778317292813091636152299303676372476424803124251828562940675266083763126425919969477387248978820199239171571891040413201831571638583177866736588022885663270717404922319173785805224643924008125529610727997224132432896409986154667382322826619203113923265548161225927929621689074541474735311791647214799575297985431262662299200927307010891790883786360233012638332779933322004137685346790421314127381773379721515974648806315574798587065788959591025405514799698890957139150188392602975444177370240784977790447588251581332201115049104199109905527489831425757785211038156734597949101486450023233929235621138830099756276775010756931266112076837622761803314902846935598360526182481510576415892703572481058661684370672799745481100410269218944760194523389902599006995384567580938252607363186479697747028333644434946785143498687054973341558249739879237800391097149969035084158671675042903630804242834373498269105519871027942049630110676066876739022712717706413234880628843416308150283560598756385713051877868545513627364858844918446530184471255963855653417276393005388863375965866968956603578751598006189413023552871121575114127822584198104477702359077806222703740086171167807727698938024715858591980777860290164230100391255199709913008916498683208453108212725011551122441684260756703106896403814842597646372845955573146175855757780664086167973230992876023101617209260531648360040239599532353880652436014114501246312324490039750351402891133013736172611284425041070346485587494240093428722809654501677302670805273734131778848467752761098471893627075973405662869995826667615581917874357151063185907342298176969226091103365582014948264880205650208650486226818167015941220239772536154417797384049356000998930327490666107901592084168782386318390493459941866131223177729347010083878056840714941063521589771338860770087029526735523193025468930677127306838467775359874402573677116371935969726937197249910718670819511716482874690349642890677857857061719417752545561698821195043549235990595285238002744995447092042040331285100236231276550328788784858207309127761697635892719844238428786351132315297896087433753568657873405137800616458897098554140732218740835555036214483800182617686373831278039408944556448429395941718728208370443391475821968705027888490718569492324046957760237214126515808993589675315443499832574781115817650693927268634998624974088248093075580669380208499635174182567239445772457009070380072062800652993507195023435906089018343481712717750405383422769462412303341665941147093385366094051901916100631939021758561956472207372016754792374398072426776800333152818069526440690628950240822623406127211977532153422019539824172778869767692725734573284589885075480194066721067389953050745844379251397039855895894817489125943563811202112605828924205557073269664758240039700306971331683083115776990487839074864937583281707026806939002822663541659831794785344481920904986429206352876528908251045510559652506950726911818111153733107171684703035894331429068389526541363910659808867591068062171648063735297200553594469443362462792478171602092395197836323481364816123539617532098373563499583336032557384205001932541613660475354235523924571543140684328623534361162902239466826977750630574110579226358238344318457744540865836846340366598824027394565821607284465984087573960447730807867162688542948782362563967461439125886758285399275586351723502317286188235594016398050277584005318995364163099098377934774948307460447774158062783086750425412630698405686372670916450756090385162323241849354126373283757920998459118226745515276549044467946377762300857683965196374657673097548954243985343834946620604427927985148298951254763654226633164773519217089469962979588477292469480952520337756402157401936844574415229416199151011047070948890140622488353682258200082334462242854730481396858353816286775770576212170120561303207970333639007918885792616421582743403853621300072994875900105317843289712770959957142757101269276307627592364496530866650149304394349461045091983697120979681327668515998953024748299142861794567512104910586034182259839948026233283237466898809147344915878625356081606761511367362915415923744444307168461782454002919652089919977752965566114585214379173212634259385965265504476061775065125321180857771560406117683421327190955934229164478203388117976250718030136171764189805546158435443608619560160345464037847612540458346589871131102662725267856290758674675377497967128122992613802047223637526404507719674100954467766728731456257486313051423801461133577393104237558910334942790288161365125258690229164181285422425806624994632561465034543027570650499999317675576330936622182208233211032180196239404297813139691489358141432379919139703112856093194639504371776659755179871629845046217025308516744578272301020070278161950626512365930134221271002555973654398244643173534305633700106559006851577247296489834922037668375902513507526839793553518563675041274491767956911565025228402363308954779397075953829478500948100836413444523797958304885292416352885357567310188966457533605729483491212506290486228200185906403384676118548263709930764455604221429484871534442118895132340477058971246737390218235198964018723569457647635182975819627901512125246752640400373244809779408853094680473799742421470282180810053160871221372526867029546030530350998218750804770208079713942736007734140982636745587459238203984145405615497360924097864440455651670932634089243137671898198036496000815271435522327826642599249112342929376278427665746757744813654957330712260595097032712480437501982919889374126204841622485267725481108218297702460599381739504221139613317362224511426840291828284442116314500970122958958867653431307467426304310239585639710196112924494654022175622100498481456661725102666507363748260216330119192255049057316179510940689268024708960737121074974396217114456015151090429141577214934469627544106318573186843579450368322163372763698546421218319025386664340027316818805789966147438820690686806076209321230588346742153608486868448114710179263344294915714038133956246236502231621659259873637718567187016072382598980707700232880091294793955762515092014498733927922315189365975567216349647531091228890009575886840115330860877796619373281537382056826913781517415597774835616275957053369595511511094759177442825227997874933851061021435350310779272648593404224169638736145544669398473753673706871056751453161608309278520916518670358687593935641917727394935106117621709459598996764390754135030998317401834785909221772907457293582796077290680051168482044526793430391068777207453145487808621112280587779165832714176966037218750148082448772158802425445403807379291508063108609584997579319295648233156264403273171161889893717231192367002598514209869918578318848131961726554281040467183171436472216816384452444292049236991136070812994914328010465797490468890685261785066232218257092241111083829713070277669766616470382989787529616293082504280510032877815701545001334359483235159588848699836711130195757459424143087338490073782154021643064555300021717768192597332948386183214209089268732574984222023759577391431802924540163409808177729956854851255634876401560380342424682922199978888083454451953436871780062567301965832254970238336487674473525014945496164108922869891987335668881540130177920841645486985640557593840651227229740545538134370785316355166595125271786141355639842078186880167747497691636756694375835066769810581776120154185527697249918249925414094387764082734224561626818714363590178141795953315934692624857838901796013543299739361907749028870179294074857700132438811286912695892919291030570554482363221479917142566065392101314044763419950576963104718678295303764219199222126063247040053316854861797888737987910172772276871593565155849174082767076494791229819467911611233056106766263771062443559107519412807720448623152496741722482290319548347156344081607479864179588239816214060766022833026326425786974765718062364661878488004763092822846882071775936325531400189748341892421123433466784970471413031946649368520674940045991147137416825754367378127579436427934397127450346752560667353383100585556188274922412545198835091337865591388369730958544210325483544603226275283845893569901517479035876125864139262578536344669543816260635881777474863836050878798450101421642488649905667801755547525014081782897610713837172611480047738798940104966303425589861467339683952450458212381111088564392423006021571379882734203142738840908232241555708343854377399087836397481507478019353409828671998085969327735881359214179349403023490124972128303998222071946617715473993495673578199854711480608929538234506917686857552491617918448650471937101769295315392321788310096157972839265867548442833916825098930234932084680158573086188651500291482821196783962017751233331086097748168313911784929578168105915268191685299870840248199602102756746377067209510770254477834671113992032671741268929817954800406221407202409043847190060446209118309551162438371767673538699124254917604543980698671460271454636072297540358053721064529752699059007975449425187307836824104165213970030114131889367939797071227685106558374068582173381728728677262391666045695704698392380198029546041450983028127092863125718638300876834293202467122006509302715106857790924397191296119669155802766204477114687451733139209827409765216447633841428264910369286589001495175471769552164555163195922627413741655875454703857596489419748318715707218733878002722323707457348118244812196176755939075500900095149966510663936830271068223100793287629007343669162246003282790536519510535584995629174255054676691800727019860755604032268621094408922978783846504181205034333075102890191477777756773680571589508508973977945128824275037646264909062993398300223477801729349863118127667504492570776669100851366337999248832159905011104727576881609028252452529518895000554789609701096274225419362039329674863698931474598477137290751684989877351172359636909557612877094145314152556905015497370483109079965050483515590309714422599548153807822495994602852138389207913190390795967899219411340100409389478740812665528416161876884435321958816167429779161602405763529307893545963263946705817167115390602867550752466803195286656392699708763137322510275009114690183426736927065930328953350790559415425790756675704458989982300492269734877948040012336486013327553770220953879889154279971473931211367026215517539148293754891444365229583626578557233755408888405193228446974530283641218481624860656848716592381194015020738605256931819235211191754435169196393910632192457022485852705114524270361580857185940480341567048092957144030501035150860576711757509255123554776532583420663472477824774169918864639719957852010627274336347922237006440300067958919762498378327409483533693740949682427815522517942381951760125263142731536818380154289037783011106931731806727289493169530843236114149927932678091966010263398476257150340744355793127095912932460381245202166451643287244628921239811365030655089525665668472619311636141396637547267800804418394392281406723789015137542725977465985823471845378345285938228562977425124548726476042876842331791528721979610722648821387130475575105616562256226388783120890331964998086376848658859234200266439256077742404808416989016959693849308358678993889066160812262983057010591690637947594874018126995652132947368799083311235229474246361911623071192754412720800427309429245323939332597294540478262382339655236994747861533377177840808333392441210881190173462098277671708883357215175966061150019934102509471479968706372768537808538967225223630864420507438288314815685940643579824365537103841845625979757214812657092617515949206642792882425405376056691886356915611055597853719917245699260804981734673357651120707355959330366493191570138570213364100960411789960593413210635521930855947519777835277402329578890805832848661001022633909530461092670004989125118534854725546862533764438903491300662619505991765729995161009191911569853651917150856793335547005309211975546076971673514310693363212628916655802589233184210638209177054040821116936426150653912847472877435446123321274769792149002873314084651874278211546925677450456171747004287223900304061608203982138521659537851312935383173480428709039063755185139894838430782860666596559138702821239359706523912347750193796796762396678491320841619448605487962369747332158382797222662058153692895320893185608444501700667169813623355911770412436308341477337755828459816823698236176590085791112803820809604615901698367489464651584746247382617653441611326891705921646801355636252363571803788082728118161750387207343734721584637910944429124801060737956523604797106170405494066346571202232466139865695754788930495491430345862548983845846741942687814861186398214856854079029145708860421414445542123081616287524483109459991789935313725607851924891364155812889930928999683427480137602886541913067334611776435516553137490963754112815897415453189732368232647035650557670408129310547670737166622199934724232823978621346942697635853567479750024082019429273151114705920725544744983478253778386501216464328173801356517039555352350000551633923634254719169534768547750279843415058811635001282681442883636445006920984228554618011842133553422417864729345222734550244536897315025487160633797033875670319185254962143277878052493726160766826825183150535375877264285594702796624175203272186431618321165120069918911423532676663316804245476987972955363660292231752827003223100228041795266301983784259325369624403933712567888037522294963932436870538905900115061493052983239688517121720441687485229008019302279862912582992752284671506960113862399958121792135600573442325922115197352765236775692222322651589870838529390201498736978387967515550692566957489439049166507535909767561545710035464075617347801435678997154644741269041052028944976093118434904242286446679822088147696099840195046110481196857234792600107431361012198577341819173556744436801768837487920660169124772147367586481365770433621659541888058455268950713394866255927541115026808237979220322864688192463336626620660495340937866505048287511936184606025446847962045485484000649292623165930140847535575583557560844507225225780405060989096315631413304565786004920142875427400068815000289856111083549076314471628781080268366308323673398354355129336037856574707779303546636315483449690073190006896447668468379573408775916456096904407673643254430907878456567547521222355223272273125641364592717558935999783611887412727919046683206785714247527807203403338263059852119848504204331184062698329250818651483424869866174194595868390039072696572646988407989567554602417748277014031614869741871161799138573386251847375532471574381401480196513368237032844521642270948922376209890374723894196973516706534672124090170198354617791710685832304175359555441489719841822941727883061281598167506334135102542710825550305877243661208382457196638352355621435266340971665200075099921304789893032662149439515006929767948572072003666804261034263205065607234039778102123747857543799100882186636360070060004212463600434197089637148043740304276273836377590368827588448180653157432035756104477553284814540398325119248789209845854950736837884120146958032034555299918203017018932243631701715589050087389596986569056505377727122415502383841624888174971229685626029539246741673318401028766789242522591030992080851677424845034665243874376950568326740622244695168327779316419125539438801630189272649377363960654456981974160025282326903118711832993435915941192098880496472036618216162305239942717618846540656313309739178204952064426272720180573718829152846440786482271662828070358086116454759761624883738896503731640710968707181006860286172962967987934879302916402543765225882301709484474985789106336385313410830444198857623872841706768983948719309846435851866904247780469424369947844018511944294665230450805476285760870110189687701551136003918846108088219531020721816188518487322644070945603398763020399945687639855906789627352117787615562078650915880796348370059752011581470296938782728140434010428915374710818768252178936390934058121454559800174859252492813353071652905197066062982715707491093550994333242654952066743902590283154270188420539503254432796400039195544614730635515692720122729703969824865919821589146924547158202811602869029566894993627608625308181507005482201430148091147848171240188687934848523216281621257410391391933912448303609162239767663926080155365909270327869877730160557305761954001785374023590928485447622917699119961335048788834211859466680850501804398361006493292917263371767740329553583096890024142116039265426696795576398836258754420907024179572457157097863725694736737476586370520390062643428129757047327648422069854550352496816405575099284190697791032616288700502496071019694274156636240793436966063272932738791991117886599030367150969345470428539727742944207517104584156119862755238962915075646201345406902666495883731071401559146291123067977855875514632066504979987121564722934184738536801412299724515194879513127784408777807206718919669573963967518962988329194755286635437248707971769700303613531900805919763223566236023355251687199566178167671992201292487115936898085771296923480832683262058749438879753845019903829280132850629723698526892510394626459944778925787523336729905874862107821586836767317243212913326543882715985354228575623176600878243069359431337701453936745944142982148631043044546390426686308672058479698420359559298591360812612751693463037685867595375341313437833381235662879050611510751930025622987988798805569425563197300530442904847487997530748907752964703239573158819354351250205973287021811823377523564294232161448980076803872200895854369624328991468757158829801971682672181648677793109498441664523143805611348288680292740825314730187619053373819102745190940539928663153499018286011295814091723648413505009677262176549553772667814481490604227483013063715095203855037394974681417468393746640055680366726504149233689336578411814323281617683236873207004380098337626174129674248656619965479006215995553241275543034624858781705381038907129996550314603733372289713335853916831815803373676330489546184607641495430680992272625530273337493011616877723071889554192431858316859753752637768234375546029514135405667337864302328959701248061141677379510914945429420279877200846866847317026836552427088874950475559854956110915145443274877564755848537373518980900070071082839745648730835812784163846186286123887289906350251379051060908197420079175928454840374536668677461576723127531461902331414705730729199028358152796939934823241341787951230859346163373013550256094611589078206886573737425409900993818943728730846843206682213199328950201044528546403973316690382267104120275191948621206421506032250225442949060219217087160440967764854235941440997717950328745223937674760822438706604560590851675930800805280877196187465877734369220883882804548734063505447225653277223826075153220195947282200076519453208787405112684932496153364570680348179241097260178200849141615190465741868967625385196739418469162175757768233905852805878573937534969516767075870603625538664075042323116708716759510211067506542553905796638047354952058468899340171343644694998921763079440229537431988116403418648290065165983440574424745971637182244984552183807216494782624657964959399918463706282251179302762809593897448142680196071340371087818742043749887546897480173165473563525688311134290088629522882000943435433464836153692444378296251138616245105430911324632622071695467439903621592725811900119878759310408589132421504334790579147393272938576594182633166891273959992210422823692719114773457538500945365792289653772897358986491608996598158427358671200615923928774505392614546629671924667105639952965062535821251107091092810113261066263037042955201410106778787381410391025484240501036290512156854516290966785613306481247015758330666027764398092161611951450301873264125944378434994347473246428872883222634239532469123183348370767614980109256399063545070404528506097646434538926807909118088986749742778555626149795748738728387003441390096926719559840814830972796177133001555604255407115419438226078070538161802099644718497409285269265584131966638926433204492461087759997864511749620524539703756297724169574355430953231597809638433760456933149683190282638187667431897537560740738543486091197063617344884856609301408837506403937655415938196679530787451528289763665700231562125498635705797278132129302892998822356016381133193565283067885016005421662430489646564476043537239319024208474844944085104692877817095210706494910351651619818732138161539690803493550460266493494528044368233338689008589681426932163976871815500892705865988196541336685547594656557060266454100258872143677911286307173990891147561091577603741306774378747631880483790399286520056345998085281006053922834475472306354034288893746862419025664277522238692761491434820825770149610744332473635368726188225084342803358060299094655457306196255562136309956838063163791381642703113467507210361789569658459486849281079571834235330934724135704091576678420072578490791016474279052884653551765608880217144307807433520060590989035488303174939659579651965679776442884828672435097112629404189515680486411091346931938177315193378808718137695995080495901400294325494804359442891905281197538285776772416656273956089799585295707164253709694009236818444870633899835594812007299144911581047457540152830769906476129033144217796459241794444194148626786939186507366763759039224581536839617354064975185913331575848735435271681841318826913955410609256317620723711860612798240388839364430604132588558326543520540315410691252215205865544403225363586026045630181621660592855363004448605128821099314279801551722336373560739983946880017774315742624432891484558823536600801857359076523942422001352409083021697232796111773790222121377597432941100756715833422991697211341095482000236800067861653888842530350857090842543387535645495003269011919315704300835241347714843874853109623070281384894797533287510717808471029307821642189183720907533338513386428645928223927179487641990882264020155498959924258466483558690824962861308174777360388866922467135841377740519233985161710238138288329348435917708399164047250804759705890926707326308153484273650630403709195941344045672420424778035333603558674317913245776834493292707588656194897182649088703765858164665562641986984017737025332518977886652682930193835377389300672892969458988476636018358682876591844776910463717410327832047371862831876389814838917612253774255665679990298643574527830923525152292423874202230633335307985604173144610770316989267746656608710216962776541227463328980753046164665541823205467386691103073082241844041375644152413056334648989853952653817344582790741721992147936289709421974111980697629371431641742772849722837435768661342697115735491197386131335627951152536689984088555523733734015795947124138712961812167675883086432617247411200163041357109441866517826030769223047528287629920618927948444054300136680430034152786517651147102431931249281660254069386353710189369319608099888116228217242621023968919551032489886139374104157160240276258630920303571625351261075482113280469331538365845053401430710845128815711247095714585846028172767650170491270136562265213353597675457781280385356448126608739153961381982998807436347634277075804584216408323339886792091294154944275372417974274265906242536995103395002555463550459201039028383625920108977926488317083344427463916241224635574606715906105203603685388556387280464386527632467761448524319085378005854327201957201190058761111728819657992298718805604773930864423946781558773364752953616340399108637359487461798476221662833449257848910414383935148253125555038120385010177037381285016747949192828883571583264878548035598579443801867521664112400254590220535290292655513866954209401021946991523949555601679930113051084891260384063556243995631993369258610536736918888053332459525676586117068263978361108290690474976539848827242023865939150255978501970763288704094223205480155483176436446449815987502245470978262025730037727816386592545573630111093809389988537665639983667981898337484740460930417527917799983651140368155482048804069586178986970787475112264544886824001093655889077120899081006553643231113660340128502567079948522777214145204047588443313869083777921977750250929958701280194293121369139985056731509310657981357932639996605988595224294872133665659934246259410469657905280468686636549724181436912509867853014025789980744051939545600444641108646784785570054561016906500192203971255645493153325461123368643408620334167193599422888333518630082317622464308758801716340351013216224384564668796844537417490165184886917875938662080502927077645419173838488732816335221814380506081978683502245710870680301526861699413469245046700252480160538117357714592956503624232483737299001804176870043671286013706544856641634620345754552795685447468847978805160476968407242958756133805006200716812473864910252515512498098084275587995699456561050915647512708045639939603750075912354204092242268181955038712223140175072047770404856349922513589565613558912101705294783459922182451475591120123221900033180793446830518664913995277004511878849403574185568393051894341303621117552347156335691132693742912327315494593519516715866568524144759023587642018505314206071611165172193278391466544819326356450742974167433123722052649837948267536369714671043388823111430268294258934730669660304459520172622054198191862737402922790254569443336426028863267116144123804644542556657954546123528566422201761571280853126917562730057996030837030378105364602017800195610736342282067672447186247901831207142368249137950204153981349938833770631485221998302705301105698183127685432024373915570796405171305331533329364448639846810988198288571340352541046271003079338404988030863217273895575605772388219190438113150238701232777413321055951235232399719051470647899805602131768966307890768606318787639081687052308573575582082125787148601948700781231775664071224466523781529856467784487208163762020879936625868994440098838169184111407598941897750799229786200686513557349758446883133566941730690065931840834464337114704859557394443717835618433651952468943480504913796649927922423658764680789839606434631926023127510483492379872755876942326357729625962078656391873460624194706935984882731485880425002572179931269637368065610471950118909911247349815010510734413301663524033154562132571828232974233590467585551585461008501592254428188970270100761368315528443789589649308977936779019254986369540293203323097696441415241389477254548739346531297813110111386947326835443736178911013979038549507406453260345655515912708206533723026641367037355356690410419853572955240196991039594289476688223491951700247099436819189744040266502945419675283995052696708448843616027005901499702594528270199720333068176748544028270024168060268889680878500636672111739279430569170223726332640953308385291553271940188448835832235940422016868193637825474890419129381522912401529030277464589522569637803470083748817506132925655734574457690172569775581332589646015093897008887262180681957185404686415415994701651768516992001952014464468185007713188808570468725301490957116559553464842321483983502888817637838487498347489258326309014482884316733799087649005123414372427542994467491488027898386206462482612807012799247870019490118782195129288035216950761743580842160934168281522668215383122422741927764785298468991390775029809765701132530023288689420394965690853877957298883145421700281848279710423665412584248367970330000489710187327078569011540616190056910108546970006326889587231757294089747442577180814573987981462685106121388713923018317713055051158461934586775540187535623684880839882905967453559090261140660306599172725236627912582326418670182619612528106175875429652581395212042738362921022883415058095005829695862936800803410498365469846668932891792278344135486529558291135292877497210885316261798755818174863560171409985329729150370444578365489394162768823280482380893281045218341033855471203476222994224220903458038354887068023367943706738011890676966758117196260745540840000038467008686128875055653101840830828742084297105913770297379949871050011222430149062120482260717962572790608740170017093337455293677201116423701856303045480039845941111788227591309452595487985385313425425226584021708646074079080471789512834246151868574471775375310212263295410060739107838713453276423045463086717472227462232032231511430022660875074250179198636297243070720448814932502270551106882545227877265554199739784736944521093127254477541926105143465025008238309809644935711264139413846745495293022678699887047583077727033429443583228933013859047214613766095301395668423823228657473023002508989219574674801686447323539624036564358982384655332977648882090652029358839936286454881404917581498691913038310556471019680039178244739865735638712566820413011447171210530303510312189475863258478860977472378222224680339853450325013682228055988851753951366198885737725600932109587414765623080708446069408370220913874456123482017861044001791288111454896290427549824039139998205578120166965266741210226650144368802015013080318866277913771188143803883858348714295678228733769841403614259738579937729057688694036322875118560879568145457059299424375124733242286384808319186861604435578396402061659087504409327771681152979977458673484777362266211945639567279246622379111263059739739777668924946137711853713998938146038780651246615804106978013251190037595880582056947074039556550920422311732403410208537123485524176096908959452387865579823784150086399507456788941683050396519185203496305690723925088631427265382790999544024692947717973505958996320001125255887375592735476677066772330664436682460365401966082073691223629421252508696306013738747293322438853286828202368215422437494995396709204598729519423655405437000289699863477386653215157410646728854975050501686501294408581735798809290503922713800253869247553135405848655934995004826099867268139196098849207050512052040727466415102365138018648162575632264783079621233129540916378323408038255441667719428126654307177406850399705523953604958309121826320336359799756058818313294204780982510291015096522518565974265110376303468866769849938316921221461772841475037706850069696372829585423391948530360796014603734541415846023158913861466564597033987495030404434764477583434318448536005205788506072047846401009622970210714626372355270570168179589750666462808555087281078584386289768773637718797967801700735686274871110210176822653943533962234823740067086417225269395863359031646801781776924819856049954881369458559257980469829809427430670989499371047267672261320241607668353536665710899794927585474919092730488391713068114095091299984550885253969811372447159620251356501434751243271884324398799671935060458349121684697987921012038773214221697758258530780234297125466573700194384313227197540964802854998357511683926866478501657841080781663091519901411456844158308754565717628139836049420861895266483814019757854834726775438025259652941588809861994757425629501570343536683745785270850730917402672284791725390923191869037006898413416336857699023351713756692739611274159642001275456505381704276253085063565861705335970863040223370476812587675197103762121105225472999237093203185723789649187977570987963437534393300972374881376771159589921964025001703354141997252273107725844752245756322462891682211023114311131649507249723077239062957653300923461653278416358062558713753979782702352360571948702333234443269437078063960297238196489042728482628188199363659026757914867256939705066251757312697574275813304838193312300482851938683687864192217418333751223443973514050613206600705669653474609006282996946952880802595498730118715718756106188192135609823076166483979555636077687642789945263989081047785794205092851461985162518858771860055599280675953705618741296250595071821896217751554232872710602932143936975075429495601417390577753055317283434002790657174776932864971555664804364992443050346459369365634162355700017890747355430969340084594191525713728913104925587431648543863101900966181078513839390014736433519212326024213239869659192288889498009691314429651842602971953434154777990286243203982264972065602976470606804158262115664683432604205285566615190332199355932494716235142529365866210949085327253743137457615947932970338876245419858249299128237384822113358680180022248545204281881973333999031361085239427387948737661099104741537973824369007383162144948565221648285118278043504741741170706242235916254712996851190251775041285257854336873391402433985821420548085209628722151563445362935138110746358798574386277481257747825210503270982284483105175165062276454962488507489189253135542677339117288237041228994680348515420754856526117406642718905965094877915089171507781392933188471098041568031583374875448589535525125743768326705107593366379114948900843165480584845516004402579048088136363724527699018785629744169183806991735010050423115081431474836756608293155811448461607236751840180910699498498497204012299829812716342414365750808301529678179427958008168273226526313732940479834615229554955240986866102030791911669774040679199134324518595535101195618845586176495085486675698131924472493515616616075335314360968771920203983068205459582551161609370427260933073429119669338806394245253680391834456198397149542027371982755438490903566242399676878300053788731058203804349341725139359398127634712014679631703296408173296223918103749759508101609161979787440435786481452292475848445393836572335927313995764407131973535925306672778389509564916488315414154975708083423249479152447042445381535217984712499584803063575065742318381878909774762782449445798580351122988299093115528700890745005489703911255987528175496292038373245738692296687279267933886672799868024417448319385429062371624272527978780074399412638251944494986391783259304908308190129966459443921272188195403746381879415710922669226526649774797458050029222636997361789190525585741702221752666825089959185083991859472562785433625060920939992057323225371046434224715282969758663777267652178427233384901625250240208506857567057840617426221250583706338522512845085400569784114328184438508109681253798662816654831523625197998257180547245091748651230078886856480765633516267402504401408589259820912259980074075727067974397453563271577937977460050433259162868666313550809927905975778440280306352551270021237537824278425593734176727475351381007528165145267058813871000506774976966825996959147937536372708555760762841302559092701382842121306503847178646183005109364250920801186203685748407051532052277403528759379762510997336667970220320752043167389590026343791096438729505175961539752797648364545827467300173099959279218656322076633545281373197311817793215144688420657201537772470878629388130458149304855668455832122683108252013250107301788615716345798069426679415799913825576241146534811016023409917555625471473731279840737660490086228335955833524724537193935587954919613613794435278878235220249760698205877678548683385345696743138128986942445699570199264852425699461570245405078608071858837591692174401882165543934478085702294855806370286511200144028872671771761977202388184715042766535811736315803448766469987739744081564505025637183989536080520301776844985739148872673817757646375778251072951746604096184209269312243786142354580545207860957052502910242958121461430148382257544078894398688079069403085627824823987729146612825245921774164023520843543060905614153149444090299055081593166335088088815757108053192105295184721489019889436969246770154669473241182753192675273619681135744910765538255924612371551760597891722990780769962146629700426804110726611389604601809933973919256306532256501255469430659940020752132035557958378282168728267779967281076436443685258378829486837836375244346376456780414739752959308772238603335755485057067862254428339594158575572624965386777516465120097484098358518036936761817147090062496254426830941564810404382518447133595917876102060452307003893973689953850201797876517627965504611013014130945861514326146534729579823634813744539786343785365968858042418566851939515303320258393814309815449989085303767627078006511306940797053769085472707765550904454651479157795884638956151336874598344643913221879800823737118600063560517507986243134763995383123462032372847725016142024948299438438996734329243081559653435964969686461396749596496057803974396819292321234906774144839599154172826082623967943802681877866526916800713931499751377083062732465913922115437076376857087935655489809024844115092822423883288911418392269564236800636772097584233962835740548965184315479261596437676962989815458959453180784447775246267664650685003044050669807687915338696800776308286594941527186779490482560880051597197546180446783274007318222296723341143339175695080465538612801571855012828448340854503760439511339689469394985305407890763555842982837407408129860362513228511123625774008297389599561105844337790384490464111284027474279511387380323457646471801159480321922284305344388175652496139473825634258066853596698487091111491877210951017244406366036448245536736020916469676613833888518338579939068558154164989640479843789368206850975273564675014746538200293582455782061900624039655672978506016015165216559271673585965529363205891394036916608355356152184360289484452479883691079990927242509524912686304106936621936079155204922924344278901205308775208062871587474259163676595844734216167490003054355490094258111327665687356711777927543926499823996192313261940018896482962520292458391318411775750844181540538352070277104234520344171100604335112657173598754954987258759991743729368774144208655165347725261059073915155351366834759555958478237756484147167577433010236879902642943066391383673971620097239229958135186579090764551419991299696053650008958246465000041343249837172632420428430405125673609207429926988024780680676191666180509948944918055720787942098648455999079680190596316070038733021987591834330415694536994191862656722499772975607258486070859897444545205122024472245970842743219156685065071638252942733763465553175567445465603690494223790277897872459878094627436778176484593552458132193746522355393753709386992913296136316317615869170248500850082120357966842536935030412384507364018044909971908802505400944674873490053186211352829023005052675017481988707172751859203105980628365353677736941440260519266997220306372610297244707277456177890202400805769075045800419382203554581984263465869871490070432310358195825541781168298533125006313805952051757140897243384964785932335917795596292264486745522388246755047932625535879466186279567561327152045316213599499761675212440830103235339820024228363942620547435351449150646180072464702279177646640008440144912543024259083086930783794736379306705547260902023540344088828193140014041722903827907786745312405968719227318727685532267290586475943260693013424712382826148607314501539346092442585586485208998060532797122554631933467439906737432396813054356360829881043634136553468782763447150456858653912393033869607771884569655123053475724043294910836975332542360195291736887396976896049836083580998986401063376715469994839717864368304374993734895651137418991287727088197633078999075198427814239793274887323583501188063989792718785565091638572050295100617322226464131446733600041098627119492274896145300493510213947211711115353635439461614126240240938937446095861443801035181672874608635747321423944884294650721932167863865604063795585712286492445246756427792889720060568839306878815949160804442017289476524258776217417831063820416288525762512980362045226719412178186326567170872610213564509907537799594194521035019905223467418963256980428759635753147924439437945708299008068130470879446710771135259891358326242261560989788125389674474112514962060479459878206754937206008069656807976691592734526499360042690815972495682109986494093701210850364557726889143842941472559654004216823145388673055967769292996558446168820238348721648594485014862897760024544854717652079288380129671460976452337173190283134648158792119641115787868950003224225073057432761196631785002023056912591562229476614754033419196836381227064025553925977704204827267579134831689568476940023398395820287795716221973178122641549404588964202739062122659052124615011053135925211892341065407400312130415343467300204446686221391763778610559392295124493167381647469342054997776741471661744033808977958881274268898670826063852696830210501416635084531125702964666859736954865950376082660733809475548486729384551242851025763128494801241890318514639839348947225724913177591823353588927996841787741888117626827489263126756237270652966081534587734140766377614181655337350861624795477708608065400672826699885230569044015794657841415502366959402219217344931067845264413147299387681705111301970487194941882562810878797762922500135925051699276444580174872442222987246547428959380382559489512909307960183817465333264199390106567469668434046818027855293734315094141536612656306523443695635726151947879627743418605691836348056170239434786647418524722073083659018758169288910357045520296950417313997978153864263148650281402446346862783145505322083356953059370338822284816179649257287047700141179971917519457810713058052534355330795359919082498921222903929786382348159518332621680585922203099217887968090759979560507151777599579885829961246902443750240836658755550670120764875242334291840705560413592515430849553172159083940973638441597656112414833255162770250373583396943666678117794552720260622456210788728312596495200522005721035549201156897978160715228087000361455557117837132774761816830376439560273052504477543415604820916413708708412767919188646193734631244427289238861013254164450397235016780611431093714814106114057298746609714961114131124123521452462620395921505595672691549850642988564008886690418924777450751468119784965069016946129379349290661861195861096798368622846705233917321136677304112611632320554519717974590220039271831897504624962931356499795168127549767395109733680255423753341716825583944515467351386747755128404615260948739378540507378688232510729534667777127564334009882066467648034945669595591282585242907723035611363507948793480366021128586947260836942997247611342661993048730379597902992233347352084780348876240100994356305274175649078605861969557386362322940766046170494310728390114365315713811257338784179708877129363835613550274639628700164406612597942477166094587463792594410914346419094982186965065144234254360703990716777326422705348655413011515006075439770031984092922257583253212687746446788589164486494732701049628404471028223811085521075134553289794918101799989670269478217681307504845886253070297682658987730856042093086221821263008689075462106459142611921003467333106479346044753863927202572228952301337665822488734832592904448203995042214629580790402204052901043453949136243098497079053199066610516095175306368540819049771423738524688867976191078600486598504866103762075298780158081158361575402623994332785417272403588189195699172836029416165979042065614878602939784229371184025995368578740633502240948367852990759117008035079175336194584105984510858888606164469922749463240698330198339038703597478555113898799140105464896646158867077262272263245478559747929354414834587044263149338474455438641975400367026011606676868985002438068074055430588921657424682311085814955402345466670508665357273048123196630128037971368862192159579647775214324010433060422460226019262014796393772730996852861423876014526167979771048750989411767964628405011408079528411868538476149275842781111393332601788131953327111645493544059148372915940083696832972660278116799927032626096492194813890569939937441363114265900611879810261231138353960556133670632070202264073999032494909066939345433829012176860845129546262042991352384047222911075368977838000266982224438942190698362495135262740429106440182540711951232278006337237857117253700244181402311518865719868103224313910418095375932070796983591614971552626285822811654759870264896354275329879711843296241963228679598576034542179034945531712068173970006825087407164972523201227712097165211295914338311699992720267846842771852003494591849167262115471595308558009581778130234317852879597641543373175140183679562736396746302216877553054232631499179727302165373211140257571758603086208540666785618434377462757641533426376156259815336290872785471084453116866955939647275500663588192076706007481059537283718485456537997502293756527552461337725836213038105718136525832444151766062487863560271362475718302829874572270299131011666804719520086145597432966741262953211250235306680274092245901988188534579560377889114515792219739071002464787542952698624297435605582144911388592715536943404982311482430906357248031771269488786597993735940596756941242195223608621766704430046657744138203372008159068471213967717107101235500022532055506227753780886772720743117898192643313726825208268321215767939304580405534618128354402170010658132072462142844374702854200474424880164924759451566199041697784554084203144469326093064411302333505532915167862382674496457700108009848688469613180478855678171598877906800074826683861807778328774378498302513284539514275940193599028313753034253534054833620622111191533590776667091207680638952466513929470865177191978132938728425382466460398839744101753883751587752538815785861555019271462751660000727528691203791592301146304258566858940734499966099921108065611062571415204313287923502520377993040005816743800465087037156002349973737708229723903464168150755772027314238380329809839216017530573922451308307756248648607093722096403372798956540349918247113391242077341795320729725266360924407813058832247647529734227414532329977601743941886181173907850139192276438600562714161788118795351408564656119461187406036169477229502126096613168583277243900996881687399527742989756415361448610027626277291159621028601582753594998471782615766903208365721001227190351814500985266301561722399453953407783164402998185615208361258102606731517379525278948851257903414158528481303319099665041733778861409180480920356165813870589387878784238654843775207768690519990980226438541132372715218469707366555257209549700751294486989512555710474069544807757695142089340523398949220963303707079788831055368368816579336147068721359808058741214728208395169480482053527877136546761960369831346074128054296538857073454398155328723923329012252635936225780793768413466083640927394791254589774515219363194782546477999845383961498496945597387964923577762376447116500561324597446583650726895418336211185075221512752209590524579862134125719933178446183854349546673874437794774085613212609481309607306008827356735982659748423000581120578580272354361424780622440363712816681525009154062020661217210054482928072169787551192899651148269925098170284545269651292010408473165567537991542575627892214636366527690008720045878954396363707219623098774452783717721354692559206798347644602340319687263076525566352039055979619708466571951197353596927670494411496006227216762739913150871316324311567579352763454541769882463843653214173892472451440987866639713440317959966661610427543760550586889325541290388473055604534061579083858950660658092545051081763569626921037779040767485898472180202019133904852572735391495417008279328776330873927422452361136324078878657034271836565924330780357421636500796504667733480326621238556608032066320012798276798158509452469516969660811761342596189118956364216751328920344084394538438677465708816506145587744295863845579183676718252054580884986226279950426159101733425979220405479731822371879161718433252833238885879352794734686977452163180396032799515799208478618577190425854229678694877929656063653005279382080945748724172606921661170006551840614227162799258071231747730811746422806076126148365303296179986605760130186300660726184713372405488239798601144281032366198781536843318529333553384488047927081586791510799639443158854678015950584360979126207467461606926691035684218842424133595103613602392800423523579973147197337130429790793598923083140671746418480457526718172021222949622849271793541146460434037775104165502499533272221654312630332774454987310981353609245904270734833251265291741428316473822894686240784125920609993465239809662336459016154834310327411193910792065929968433884075403602345096177912082023427456943422973119290119654791777918434428920025353837579716405375033996155470079822658403021612472725330570922629933248188326656653895551572472209611301773523703333855183139105159628952133258030624761088870517141071205932010033615751607710270678352353188205038773541750634871803604285807480047151340281865822945685640159391197894146004984465401637260907440313470825414519876738252603521940211642462577311597886918124836545209283972177840363783496517366093516502381039012434183571327517735639652815726522522673098399807637288104549042244749749273674706241843219078720871775950167701261383180383438936246500343324433844169363512148782020160919114462156322856260649874891968771618407357377226228878393627304653226549710568302238858196164334328178211736232816606069307722065019796589391448754820110773088340250372483190266711031411741459891288189352146437247032254292676723245125329593039339221248032584569477871084916674147299832371636821997244895800266343390838858127176304543418304136057138111909847156605838079013846861364637699975423349120150303845256656649088615021973541358939174240253843697123794375047229342719976843824102042940458407846080897151702900890772464969871771085618198059085595164135255109215722704583480003470150295787873676297774493332007486250835837632527774312287306306131887556587100755017389556153016277049166684958851509890659693989513691023862843743494615344465446416638017421151695574904128793884282464781858782759020704857628481334423745144843055887477599335200206595493823015490815093339480676011203251532004319255211514889816522458203539597030265544410344743130748959207501669550980786801738169241583609600436095875781314912342880305562825103947974202029309054897988219239378447159964572836108192899003001476405032425589750617077341043210186634516641370906929918717747542773158904924349913459474077218448064860804933597260870090073316568374181735326118824336914930471353771600654943235860821352886640716525895227529447539979407108837292675591931846218040434454060054772756368068811116156464214840050642948641872400832596717293698063125170461683134476005484324606669834486143067833345789604635791517039452570580343895662812374938007322307328600578261655798173875874194873912759760018694303375907399171401184176800536691261455348427684641213799227628168790798276365568609963188309912622340070697564603739542564548618162676814184881509395911489658093177980194883117257919536543614242733045032987775588552352297867747371801506666116511935580789575430835068390854458736974629310639545276485727961200237770140471765699290496034232281276134659665878290101495946035415874216677380029126308197250093732717692550682228776988786700152437334757213114421785489337948468831294203261571793130953131443348909758772763180123314218962913733551334241380846279259424730094200799048164977287852851560743256012001758055011904588474674625191248718510608194024084591216978481214071509722052010146896392386390224107526756250019625082346257359306467321921217495949821475605688552249406011874019210136079535613364282347639980770027042496772697364595684562535039318069384963034676655325115999103052250643679732216402120396605886108198435225807680027473864214837650480969903129492002122502655752688910399357750966972028034825848393348752414913198570279877348939973615200584748355702054695203500159515521746491111609590242523707783113943771887836649917128808499645504059954372658901527335434287223885655651642316621778715011334589715448181732573732860493356928830274325608421541659190781855435242661739026693007662474879277461712952953555730243429796094621235504925413210954462063076303240650797047445321077638773151502722605080314576390723628734540060614001959584268854461208989741859252142370717694625731350378177983211846350228332365935388076917548272612203754411083246969718343462874252134171595274637603461514196710489023833398540913218377641846231305280072697219265627328505960390805851040209151978383686698769436968648084672255743219840745099514280131960456017667179323300493995723619905398534118425974546612599372831427194578941621747026519182365929884300632522020471120592360238793757351401066572425371635574255301990464563596465667626181774100827822525838218745556377736670845758519738358765174196491159067199242059639982335083455209554821703210560795859773945114056199693376369852831917151029725097828234386433834740791167069127397954445907104034427434785842892513181456418315745355840655070225726472844984790383590107388964108891263586581199163307903931819962545988584325327128240350946503921425380204763670019374497285205267393984378915078523147010746744578860878859592558520205100401228626646876480954051169067850503518759105620450658120241795889605975530045517660291749271468826658441131237641292860130701376125406229067137909291816721497217959612061991138137845285639499501135430689814391561505559504456464510175901571598239260494268586282677134920912128217764365706850922773388194938398593626641226548902610136235606040126482983209622997808621963341455559037278262076406893588212190071563839964717402545984458710049501182484776855813423755702630569884981401951013220573089237850319748218495103367808218517690785121356725378439595941694556332790084191067406521841123809806456297224652490980716490279153187796162311814877182045859447570418147045623914859104309828274827063345912805880168765597289692099317296992773264635266694362043554414218210462520154986198667784591454660128944861553344110040190487540920420139578285987483520581354532216779042678742004060133267890636145929369822533787866498782044990693209691992603688049601325355033631941216348007172414895526707051364256068735620601516010360240128517042848084397194546717168627636070906819201773761708287788997593859441383500768851973934473454197382899018013067929721490727417207841884697223263740099528074114346415509289543681890507738532413597065377537441820298687946974625746010234971488494803126413543297111070250023327939292810739403171502864740690195662965890974086261430197667553196094418839852405216330425693156737020363774137238557451330913021769794337579209848012245745924064056404357001445137694383756421171376320649541667985793764011437156229217855944623722288775488705601145833749038043252838450890596010590838080550865062151482009011549000420240424302185157321855238016946017910953646934947928561899708690818634779230506756571131004712444337156924259775438946788393251465146985925203544034131047340089663565933520799955344924202383616320619143995332891222009002411156146095400772563127683908088889410838754175646186274007095081892056194340959116589522945283947997303533838990049978713195236087007707415680378697436316570212622604308642064072774568977606246297043959940289818942921403119745689988620550688859102169970077350055573449480213927365048796688379731209846154988231587504099159651063812548179950329444378385272880618614388289390637344310026651640328412225367583760287225706608843024315712673741047748787317554740764424340515170041811067727772090723090284179970677277062265745673854830962190274927359597589947331248559159849328725951437186284759354986824730687109036336387316338506456020046651452407298651607340313098434244208143355090086184228743165484025707859784594259765728089153598882091253350328923946388890720827686914326654713062764274915632317878601174950186224898221022894458044639940978502211863378362928090976877843573039222835277061219293663791666391706308389294347255961413672503376766077366451748032484871976788513175596524098934229074497407873553298526952233729944525374720263612778742927117323053957409364253069538688636583592756916206732863944969516688144183332586275949991893918069226405144369625631535986029941693852540096972980208832600355467918812688437905222028269512054121475685602395581160496519753753444368951721639192511694196491695709307601103444571154598866431104678624767525084555728062578599661786548452225379240535090405973852242600027084615467621561752160072238696176376444465828516505160884074688453818911307539998802355485654311563542843131440500038884031340221236416275689928130593857152666731398296842917090770525229941664343144825073523454491295400057168548780055560517115368864851870930627136049489157376269302741037325252151032826447570902724559702756633177192956338773398196543580637311430298404538130955957619256786733577144792641236256267345981591659824241498707681151781088539886815314689301565892458383677406384886981563471287567557874143400962630574907509850661278814062264412888170010737029502459356455974724644564292580888638722666013083125743768881181475466206669409188345013277733815730453416408950743617499491982391501928124852672465504979301376305460377156786838805611347919722396209702086530881386021685018786604771100800540490668948137731659589488377232211394213595718256940042444934851859043812029974832565106070922426650077567707024136067919888829020172136747623829563495785407193701937258186515016349408162758902481860756089798087376291930375047263751921617709826433830482990446647148087465373797496895083748658773999232789534289317978299658130455726907216478218347187234631564150005987030651498941124059642787063401627887181989524737334514811921122451122493199938843220778697121403348050097214365445223461678411143798991486791785120600994262195563168275848371013711043030101923519695491865047556914175300730907199011894421437102419656168376407718394354632326344260502482262002059548599560022574319694709076785307326245383952388161180000669933689673708149257330607563574760917438696015941368661042670854474704718934278577090466158446795276289073854220852545011633995590943996204712965247108806916001324544229404044672595189156471263229846683417505463802544117557366620886567631357476638685439388567726201942638314575077121805933544475607442040289767861218699760908733308322330076587628680953407490917014120456996860845337869057672807299444188919494577854310849819981608546574196536807336883589759638888659872182159006398880442800591882352324180296309202112331846626032519219715005676913054969313349427828075661340914316010390728612653339116286324604831285273404668473362157956087304435315170414655381975855352398910399189172998840224195937267783066106081677330556594283179243539843834673025180414329217171639414166822450774194731529106194596182496085159875240775455659459376176919142517167088068755965025149532171754212305629558869584113256106499028931905858351104210796081640478113889535232777127655266198792281334352904488177849220905428894111746460256103648022948160166577935160757013819163038563288975935488284495027200328151927325544945653106917601780211615175584878175485944917482925072596147316919415384213803255549792890075489632199446703525272840977927486819091427467202048858665317084899183987436585098387973288707838855062365037491749486732786609149924339962030770996926787333939972097140440326184333405913049559730498842282865589612572931555216204525677857753287492980279727539010566682400931069522752754100384699611459892333761474359191451332726172806049174612626396443074375708025453529770859808578379130837810511947625498773477677974280124684822302599298555732083297536832979957602691075203075019053527852173713581925264774630403360502280409678188696927645194347556357466290201520659287072520923408561618701247949847663217162952403089591219037150053479717382487607129048191690633637666976233031253626781455307109704958180669498885031097388695614445364398232515977026739636285448113304733106746666338398938864493012872750883760753145155796137238164269465928132919545953694574610465890766497741106099660389716885826010262343966612275278310481748781857003996801092913351145336281761174125239553764466525200929581149880820050275941190836821896917627515917360378818604888272342647077708423517468599825828112612225075151635437004326613621957042456956999154762159961001979391286356104891229670448433003739032323654508209687131930371248381653533637995300475290965070206484286857542142845491427200978618014231669315449922626682951383958533619755218261813660695069477600946389196272492986182387005145306435661981613734943655393075832208021538641597807135346923481613423912048128549482468572321303139526848878065092449014234688612910471771900197870883522576552305910158057102968311926703901476090008555126011638702913081709126402859144521082484782989225022219113373871776751380574057711793733274746634395305347192211807173074917245072191844317214082562880896954860992629099635408677481679005892931890857292010019527336422833651565519428914735624045238193697489538743574904491946456958650461659780145577699501736381315066570311606170469997582580841655670960936520179201945587664674469550366052589981633862936338564065276951045825914759324957994398201729747461275526287118890714077805854260818012942980035014730412648008023953782517117268332876903998909971574592879735354354772435401857612720451874283936311137162385482448026283230557415831094442217430621731482316395702706715980083089211930386039120425649641239882450427162561065165206325595355235786052933714345681808063519524745275692058069511384757790662206797428586059139901380643207158584143796058307021050206793412714651784805908590407069472375794595445935710175302133152393381440836961896869780268401863460158490206424725015033951418367493176515848836052836730388454142697684022554173087036921005723070878504825743711474566373122007765586641342575235383220829384399356681555363186390579623976699120606430971747193400068600894371635764847336168482665716266480639323621877064840581517702389363203212878848942813211434208210336356862474063221318815208591896096725974658002027521759508027328855922022905563393376857788208469767256289844401944036852444454034499449195441657374541274157931162045723300077162516433588933332423480152353793916755470164651024668482587056105380483257789265354507803370532778377167762209818480803627536604755587807737369264868770505427994124688552964282904419471267413226805414337023701955368614878774338520383268801642868972210066603815520515909338296847200106471683220146221839775394778761812131148921831711488797941520781621012224438316786374197917768770890333225741592502676994593288986325869988952570569597068562033078646388801088355107186099418975487201169120490607951198354155476919423236190425413972605536443299078035281933279076496234972698463142266974202955442165294902346347906232481995423551468827889254942943160210938450615264358524889176183765011878593913699311084779094583223478491676864954888641929376503291169832056814276291268552211071589867608113431169112929970653197065414237297924745255215362605647300220558734725521934378408150106949082861702767156968774591121981429779353271893860082555841740854165535944363219042070384675358964345598276638474070740908369256579547131944459384202084905972689068010586262675840110139402564568435167106965584343380804865554758120346614822698053786017813340090842235186446296314511363195386925845521957846097662947342549133387651697510869475066940397005822152495837813838787128689914070288864106134027622873104348976211204922707220250268362659470043796522524513617626803752859715075982414260166300505715808170660807915592267977639659275295983247044331959955975429735709321382772706736647677843221464098822910660708888414959863379952131020231114355079556516884458052318138981633094414020397475451310037497729717016935802732030752210521202969853026524013885720289525602247211159192598228523398159710599404742334121644188933340836036650870305103226522206601378287640362421378814815107555785870404652033239451370809894206146438472168595085584270819892907538566058040240712276518355462662806180938737574162178234607569494439103327861354635072522530621523922716559819391839082737397979369491325853992651827719340525581605083776072036211702930265368916897413008408789644029113792405643485592852321162014941638333143421366931451651553359849906356278853216893638762774594283696879689709361840636166639326290236714574052103867883285015391668958825170464715888514427338053483500310410196837438222641953029095396355592597057580178491070832388676001996070559745383981658746821147519796246739494084204237768209035541001037750277348855442981226472695449367717138495326752587878386655586150386679281083066574015419276700069977361205348552719312416764263632810329575373308197355032894386094655599673327885054976268304408784009076298563128793088346883175443206611371657276977929142724880262364650931570684649735287572152428785223057568346817286553589576959268575439164326523294756982524851651620868174472945302002461004340724418001832512110950742828310608493743228224112847659371978173005780911008229576370044729580288992930659164191677992551729375636342932204101396232341470659068800501459655477895206914209533605278910614576843667668706751899839101106512320747671903509033745432352254679945454422763574181790313019149338755422703393186632960855156131050490428880273071548386037534240617747457086660876680203804388811904121965563896466004200681907516293790393632010175543389030537024652617074168069464102386346226128919717789004927261579866759717443151719986398994836276531097764875975251636992893711101861088466660867321364608363570633548662008868132761107964851609700416070140020835541152715358596761983506795627670368370056912861512135153335276057312032472003406929912289531624342958858282444176639236127688189875189352247488619169970779808171545294184966324516344605037687552247733507707827433188211082993577866690943014341918528457339503376863080781012838797709520268881348794488156932536806379667382123443223968764727554951062471909637504601629974573712754439554821390293195068930571800959987263105167039922156117495726781855897925958695425939352909767979506743763688953909312208184331240484486017394544432900237310246709995934635739529118342856855447800821172438692915231896902225286568477664928052789453549823763508984435697509751928274600280827256713476957068705528712201232871875446395438447563152243654942824078272221459773582238937373015305256612214447070519611608604189580169849597476753031506813610026814755122758186494574585157208429241593573159705454484568968928442789635423071974897683436839093835801047339098353455851428065864389658237743692009697126646112388870235197077929628135638208303614739069994587844819374433462898249394663931845127635610691430047435629531537036385333479230811371413080991123748119010400682053522335444529312751110893391904926341352181324683508328458491781050379601275742348836538417155064046204201613267392073360910655472944636569723383533103113725162810820770617731840110618013933824033243521570542072245992623422024105079432412449810561050528552315903320467337301058453186324035767718294552521260128518738681205739249443652939749738869694862758088517051298483632334626290291085377478966592509789375985356131342846044762352018011026399632102329142419861884502373876732291965639657781334727098244243682405005132759544352176797536050594629038301671496790627610235879034876930789781080743521304602421095010192881540754057799718205962237453978350061596690227947213976240364217424308990597018660280325966765816753396236913682116687898522962471000629791161844269231438093705166475433200328341291455621697182165716817474799891921356424797087339078934159923172609927969131139096264959214199135002461621487570299404007406970185351206902550941857385442731425376936236147817211238975606306034936179840470540523137482396126777510885096874423561668439224882996073936247272573302310170530227255963387094270322240866472059600553647541569553500703973363479331176276450165350849735872382672000120243080339574966770096870011613763741606406779058983759818187484689888448583192490363651035560612892630496753930271624776070209225766850589993515281537757889844949322553945360393449546446357129134095552812179312953356967670421827622868380475945218185528462870213011775481089989316530300973031922161339060551055945912687732196635895043332407240309854732875059645770334400448755271547551771519301538930747531516711430333975934269043416331026954728788209189745980396701804469686060891387394322340382187768070484023134767057653998579147694409751360431971649066937426512445345790354771333669222759941243886936890145583603948343092083582168862764057866616060220081397726236052405591901975239218256110543069806887234190414031399167424619992909399754314496913175439274101138575391424990844992182413351907461709284808326595135681420893549568894124376509505885931456212650138251858360114030424709997722054004752249825921804508607164749462750584563199397620038585992964816031977600559923344581937671306417682618283010337053235069438322484452597156462838137128855421876908477419086683604784713688368066188806476784880270554852965768625582191499142872365276797318286747366446523898255794785971117227262201757435637647270926534728424864186652765144024378920796763392650162180382210550145848850066220619415013592240639716189173748526032955943410838142877546645729116920267705698694651182987330948921384958309167644968416378058191735798650987500986817944268569563051744048732636058771154688260619682805292618448589711171059868474264335755322960700483281098267213798167698703082907447293996811895375118912786219092032999471391903359846410676301260615528648146031087423898565145537154280011928004764748611796843739755967467045896702157693877010865118947141074297781059480557182196514818765223897149556075085146941878394397429646322143490657898708708973419891840697532989511814449824093807903125487577124810393979300730873022405864934016892904479821898074455087027600855204887768951646250403953906169115341766420636513330688240386808619761738136127686151806114150672272244726444386481796211191414911510253991249566300048847970894913084897602314987303053497916843997986964511722963665609705280667437417466866499747995222760535898882169756165973098794812763206907484157023149500867826428906721001774266622710119101405528666961022339033294137189468391255247205320620627967465057891641359274286538000239601253538925461773660106194086046199414476629635549126096518716446454994219395446150268832351040551573329701960411974597925638098304340439234780865689629714405059767192007890060749853664693267640826368486796517665799003785785565928744090558229037591197176254093315020559998983424368848631635031170034176881448642536938540595659541679230761634607173801457531585300777104170676386410865924458628996464101229187362716341794297072726513205793638335575856993288563174859094848144038027198819721890838672966254709326912964489605326534642222660426324475152085826096024955623635613596362082950256731536026897632638686334672880222407995729841740291371756847604659306423873067041653272747351979384668003313653196033676252889442312987084035902786600959442165264203209204883565083417900710839229982851494272334381813631744569200536495617013822430737641952163899796702989449631506528532623537642286018943217824562139429726981021764658830412222891699600042606333673058690376621180417362740439795981148361489209168265730715906968608772810726551003276229003027509090542715453045266576591231791407243449010814174383858786399373370981743998782409111917906356096811400542152822356572877612283585945198601918349179881493962544012162693381010163325378238537484925597477239268632773799154963128119021761494769860011538045047734249455523335689491040618378415509235180636573405882859033885816257800945689519937539582368947084816319964913684342650945792020119808913352104688931232258833432678177915781935909992166110265433488211723135803876593621766769363034666540359228313047223695597351457210740999693757153774335454266061639755168700844195983205537541589322263679699575740362219873959146454256349104010713038729131166868233611834272256986537668760385119240293306191189849050288147116947639865695756018342509965803622754756063834313002769606262804124396438496062238564988790727197789996263971927539986855614458441704031021914287915658433116427536314465665411125625277158350620445229044656067211499974607169837180340713902519717185094443069860540949766338131979427738165666268564762855776756866253704982067696246112027292917284086719657729289143613282043924071260874936342643381245838839461709936194483112289212765931910326338560865207887653293785980955904044688561709158242219932311425076844775813659241902346664742010047319311903920303778921057516869570681936244439853681006356777709766800178419085487952515980004762304097493279515409414226849693749520786618413961414108252307581647151081026182003947897648828691295114114268795518484384480550567429594579774080553938296204039086120713765924422928250686069495450534677719764579016611353699753635946172580757795592964483645499460486916284417958858669629841251466759498663546276572807864238317861039403606489400937425265136362005411505547977416594050178358237495418154484070260332157300607572502595864415882065122614904354589602914501284743555456452142774983762245852702142202788159768351473506072582076053355777667666651906576012782038941528243603325090658947047304030958455783891329323728309954153815042193887750403754887981246480160566214827838701201179443593472583893775766293744540770084628195824459609562059257485616189562865128579118621204681595295083773487645277492976704180313089812162053189099870124751646861860284546937659124900306370783402877395872773688768725015663161486975159209055669490753315074270137660245186964915954023282677521623779742300210778312122787154598043451402523171012766690892688013147001923976845914329833980780858687467944245728929452928453372319224557715717483494593918045701019163619130039372822968864923185883531871111401292131606074258595044235584998770293983943567369804946046925747390001875134462406668828811160306227576300040629135852728978791761642430232999770321822503235681084659901962105797856308961676162834549087906421693486141532965832173420031460885759746696487276518870215204462449469887552582152984943093098177773558082274747521312867157350956402021262258936891975587775088112457096546638673546355914975671685465040988611115753390198189467828052448745637990393166586425850801573944042571198118565649186337245087948662150669870857082093409321492498977883025737005385578860210545777709138074860323474414935607241069837143710393717284221979724578147151366437292309107627628230949191088786916544047138538970108845724023654725092270664209955375290128649931268242086372725619170870419572159553823296567958887510560723811906525183460949704284421574027291772282895696632652335260686655523498214854830829703706780596017045807264756834702461511690630257163178908020686047200101812632550571772984816991106917391394298666360359081962386532748787427814704856188765855523081860626794007387340909348355736580197661720631734079480096108451910276236660067023203759517866897594686756181591316094926247272578507076007147030443081239630724148450907446298293570407115375163786335713272655497098802288928186029194709003449447549609682768564637050200928223790318350579269904822399647158513162270331593697982589061684836767243268568353637140264323585513273138467633504666601395625670806536023397853118882519214814970505928985864123199946024939543158347156112206085359171140080352349590551653607546659454726143896935617169327648366972655583010651104258386773647925661604108001278350999281939536236678881755806948384516463478942725316383942996459343236639383119648312956811413192422184766891681000292778776840967706242797727555445935217331157935264461429477687113439019370710120725859450014254122996383661592078254676185761983225246386052951893192761115252549205123678668403601241301209879089361271488344815879642367599030947972642494448346002405662885332348930975651173228359182021091887755625023024283105861213517730567667428103879658125446448313141089829507763168444657322582507149983646692655527098602852645441535420009131824878101661639885754240192624035071318283896592486449527993469014718907865560461333633166570964149547260283771827722400629608813281048118902895094962867935915703634862564318812389107950508268456142328799476027274011408871756378320768043704844502861182931797843782864586314701540393500338835347638414345974515139347611785243024022915520758684884474194377786356341668731520790052951854126379712637591039067710504120075301265190307863697838929826084726697303080153975396416745526213335941270457827077098489872847680475787920820447296313253885240687566003230002455642727014069650752558233732320883082597807225988288190775437861418513497492163956550838982980663959089613539814508412411121944279524565562327933367637118034768541978217352354507016625258713200256908363337361355438537397187734227256337139004004525730951918345976502423992919430185460589419601724286835118701069009071656072079884009188331037929486378219274511169699658534120163198456666278199720878750373446216341908974703545833665493305855034169319369456744202419825850011863459001340707011833037759075030752008177214483452934599705217503481462538671796692557996959309482116363639183383197210202386697722524988052960639774071225663205242824583581300996110812869630683834162503007201139064788243304861778559600658784002490332586864692454377204403985061356684505558931077527656415283367423101072769316149965438128555219954647972412143036916327563444135123718161579158634986029804011521420590333560837920712331644818978794810375286464855404462955055404680324130096637547158712509608629890794544177469449512498571459020283179327198453528303451231594917046496058060226818430416376374581184001193372568765934343084514360091777911424694816921187255531916505580334079377154227698334027375585465477196508813344192694599146564652315046181924819716874734787667248471474917008850954027066669509170276362912646933210803622570070536499587985942683399212803454258745863287505978346242545344867354061050253305332926219395328470324697359598007060571072663580943642594076361585347876665838266564636896687191307181110006184173554242893641501383180328182772637396584997857553757595111277128316811133754845284690455253674500704125016305269200063848275845489321386199303931017228395910737203867472755390576873105139360045497344306559185573739364189424012674091256063229997868370394178594423992047944362449041887176876860672423611774959862283689401620721387464405233767196044981872152014701758272735370909774302548037542667302499574969555871446580178046565179795123258616298756478446673905060177295186848585055569578825966749628914929056134739885112128911252017985724245430642028945090599246138699149320883890384919385285069980136590598912454378018463103426150322615603199575651772680528712448178765136434511809309986380445677810550114925694796497403023580667404824884930736547891177745271649577556353150063646720492193283046180437793912909159191524087177042277380107146409651031361869664563319943962088016178362220398094018366782734162138990870546009564185758303916926204406027530556854747652064386178326354642829642475659860718041179339754137314202116629034358306685451352947971044065865501985801500005987564521255569449999804887601885403131600095772791562991412547087262771085458683461584951232432060041713163629642570811490334720769252852519913487168193913606916713331020868654239256198332773986086360653977563797596423877188390918473903646344628435116683612633463530488886500737317411682696295587966635615949803835808758910423887269414689141802156603127586420470673896188005250955543198136400296770164063662631596328489533974268687370009524543735447940044094920046830802535766569399223680345827429730330229310694569038606249780048188837607731057727472071728508509730011157141952338873440107240096798273132794272579012700480317863741956409549299809017241266657797364322513263754790096270795747189312704545349840636991174064066541642278091562811737818485590724404840963529973341946730301490699787314102526926213577621268136360443721364470920082805225417794631854331050577740824176606280934088573477913288617640590513692125643285688333772843925788376305676986248267064840613620650285631926702344110778276197936712290019011047364500013188888828858321101618209046346939558950211152893647343985089038032348295205225411939661824629734354532386554817545588894207023111855644621422203377134316868490637508022289455110425735206366382543866669005497718049357601952084829370975437058268476088455490699437878595262533218594616965490045441178481839660806034284832354661363731723809996759398488254403333348142864622254370278647769614644074541996306828931241782938254522367808947077383095456692522674722625112457878802518413452230453915693598307042610627867860979562382016595683734153103278771306729821273380994774992147811201098827695007941720018089670935994281689937011979089483997183903171597566975970276882363058206817024320180297580585620435094855883156541643382705562954818759260875098637207318257899313004442563456162720055185796257322039610676986405584990587558537993821079488293238839550706304093194630842932589645507556086952447565722450274180899264997405812120939332558773203966912201337116583258850844047904022977519407051006746074002538078325786451005942125784215882216971512995544014671217497458008057686915049878430662414334832210135894577172154546561395108137027816467103474396608858912018679613835623367901907291309989083994054246468364703929798339697298013605543579402877197874347781355150421600085435782298359059166748608914549630388684020908116496388294319228816340747200739724016420650968454881063068149604688160673007031733052076908429198297497763556850990005123332987941282070940285975277023761300989105741475844623115063560663564772736291732980569943967010875625269148414279331626019001194931980762310606629247087388883471609798087148084898423529399481000890778875871140609163911096433608354180316782129753666945186196268749938874620094766065509895789348795099035546490734698644013217505988268824094557262396992067182454317949602386143001811823214881812316373940484820065786981100359038067665732385788984653068941845384797641031565620991657113265362783192750908385506405275621682562575003764857514387609360262494081003294264341922551688676468534923313092002869662271103260657575513389385237396738419864630200026655584742948503423315880397622540308560094231025448428249163464726414450709218928932568486191570949305241533197191119153619974349287658590369933941467471357738664011689961156771548730591663030997497462548478968577116946102881610945218446986809268659095720473341869391913667336179634155614217649093933428988131721635990732117396753660025286511048839173797371077534358540130723457761679571526401272743327148923310556050427880510521765482060111515658581109715051988787887688480084671864809936344418552971224187520528397126526759316135719762685934818927566028321544137614449653512144155102118116121144937266338647692333494591765124276065326058721198966707971711994516719785175575650103604922383456601933668999961891331590827277942721122750595771861693737017211240808962652905523287101616001601965216128119309085064646884741907992550545945773702006421620380063842548245150404803575554158023020114653706090473328200974853643026892216408447392900201463550420429957966098813161616134623603807455088758453053954068849082461900051768202196662127046440071181041613148096558869221579821043280268009080278485317266857176132981259820728070144895543301435268198848555789094276313338195936955286787300450511182316626420335814244022043872510838938957626669487504846889760079763535702549344845179645594327014229713169658213413207644469129952397331711134882125613851561639020010904263328519051203883218942554405937085990520992609212825114264986308706134244327181370027826971541609786541522008107531170138916305973268420049774756343283385373574380509495920771049709884022412555687339775773616264775182803892733910799572577621636883062125045124736499526205178247543597440274784666192106478500392974016974952148824539352224379304809486259539801533540209142797443200615827365762958780524648397922215854357097223455994807092797867679943969145634293717106149451945856340931625102043514544863128329553990722191936023636343683982026511613155886002200245971753394860060416494347440213827975772875043440235900640250224185616769769402279613387218719622720086197219883300016031892027925667430180821157024393155725687863650076770402676879655847904270761119019072928555557310521783150415359081482337941865436236604219324592685743903964439095599275711506955187514980246348409037875513588818815500940516541137272318322756110948269074041305184009578108187610648301331099832032208176116934854305634603160488579294043362381134415847009114578194165583053309994567492158551782719244130165684543887661897308836549211666373770788931888403754815555899494883004467226381374726903197852707010552589868057734748362819961120382526999404063929941297171367257632780501449074230398226189079449757971746855132251362054581800785977301896118352462195837190859167487224963625197148702307789569309202202401125314315298280549254275708191760100605813342564426064027737729007579015369066322337032283327688328641909847633572536001858138752456680729771710631827839926785939442286491320203857966759367888559793292721416036153484258358663754159456788160866641609455372037119297645088909544222820968807289711591212384919064114916924649192525204359946744038839567629288952757080446360832120469603477365613413732630701327000028273019052570870069358266896958057930469842875389613183381821341443768145101524379659519661349892191682481892146199811999588381734379387132310389690553241555664343341362753262165800078174869975608614298160922148700098701972947353421561941740373879416708715047722749672100333016010425398921651699959783676899331222164567913042157566026085148347823268280320945955673731437595950583769092318043836502326958018704467996124354262693829934919830766849554469536432378145768201219947463141534693954319270772809238987352149345437700570517125171502270829679857721244190316015560459592716826857728132835626473789598807655430977755905675942826874739616025089290248980907768977853706655308600021335880501597095844696321622647760701537086657695599263401087743137232940033917926077855190354977096282982624256614642434681906386582005977767350863410286434723713103793178848942582247129901400581733693025927586566500682961571690611353396051864047175867708412174812643972637397947340717716954026257507847689960685382139565669285164830525432665379049424953552701789357488521456101522702575472028232770732709025280778306115937633378046718247489210724165662318537539261045439087507217593705447136270959279114697489941163802912317648888811652018662593124395491000752860841072279917081192135654175413327004710960660867983579570424873685141808384137353565070469195059629077620943128216517137247339843029027334135611010952510385771689044197576902007601884132327278956523322493661086985777892941414256006098237971295524731472888048250314849536843334675240170906025881628872717605674543348695376784401854156053629004896411777350443336858624937270750845632388193575847063412894725248405263887844487934613903713908615357516000134154234018532838467217236338111730787483101186160655667690212163644289397789628971576593814269703655765607107062725274548636694709601503468950595159044549223894498995352533359885292089378014079266937029959960830258145023642329635093464085241453454626337994779386511276156400285258563243029180901785645063120170208773734876479710957996586966095812063623159690080344466262679058000557224558135769609683475634811506244299049042250960260078023916654005792384493998589666195994046844916885053453560777919742501136397194364777019522809398604265960253775321110773754744060966781548141779701197290748707294010509521742472892268121268814689663470912577511743738588621544850384184173836348228519685544098927568297487003361421913563395100320044330181941348886153615042010354817777235555579515539404481153355464687519556024964253610990465306942395762907959925559129483904649734682935715700173338940319164634420743971294858294341693253321561688528082921976583960976334152826729753610768286198521625174510089034938445866172898855979060888629602849459817070307257744921348624092587704002650757452093821906281017172059171456455893650383553141423962005509166928295028482683776628460312645344005394021857578493901214785098184695158182600487719066861646171379714411870801091677979363025769149036271579915570669833847224631892929157260385584399568525750417588870543159855318911037126717727132994659889591344117230574381798853439185581686040328109382027142042145283436046485672038716362440825357893593021670369307632794002585762497796769877101120651383325043621902876987425239589618848963298473610763255734895322600052309125311853991491098176374924671977930534417062597859792207362301440797295195529758638713548407580992643221104002022534087299116465270359588189499024775466211421351544119257068664085529202685069090446465172402607965388651162679287719796166680788503702347148341652860207936110225675954002535898315016699627334639349614394314761427064054484959901603165271252902330340472459313116070059811047890954238585686436566516075020836803546654004582512361748588667832422763314573764092689087534268887095907229569155325719268072415770212365891598512617309973637237393153846699274967126657068594628157977209481226802376473885650815916379479639220753538457147405287927720476332097939501578638532751761279520850562635693664959236550193548675186933003101149244921536750696012959057356095868805549332549148129330740239946405708492772035274028618204413378033410449239460973690317252559525620975460336786125626988034785475087904213690686910605236786022235954462128615540592758459617261307102766671967314940608660219582501999189786058804745262498962764777252244167480164846004642460957357493057161437732350611968623151477333678177746699453738240898698791697572207803265911533728820368145911016144015571856886803777853643559264055516056014168118992551547558028978817812737345549665084111193823295513005416931294743502225213265419277369473054038171173109133737849916420476809000119419400985616405041258588941409597789539404103130993153793797507379704641927287960899662059438222697135485773013638464308416861001836500621349560405951161827770236074716888996166501882306392213433335227595743502461665776553035909904700154828754380914399459147513249181484167675250451582279954983501575640395122059373258189676643032734120429120206617594046851382882021497171019888951989571534217665817820637785385967546148857294225936119228821113633976877888859357026202612412600131783428175431731281871941806114574512598071587419972279074501228082368148934851081940169465862808180099280252396890077000404238197881234778160948075475870650922994972444021268946866175613104657422036245344485797469032454366031792726410657304730215379878028672737768187381913609267693273810594261987395427927852312087401984719503507576439688929402486956471771798173836995823423743983050654551869557178756209585079978976008424946488674829014621849976223588800691467855008218338925222333921420307467059805683347131204515000458369032696163207699081813928042321176253422570497983321384424181154436177653964210528807439753498652909370251199508865871275628481681833337880971742233915857659699701765559209031505249639618205603733290432024236636682519745862563267557884975493031737566076028415828741278981358263206932961742273156249505013674498542055438312376021689424346894194920844737408202257724647851649328517651353318091933091858287321615691959921774588557845154014608584951363849400961094422336130968765495740062178895085330613374427312756099205426908892695187067342990518752612039474143303364681392964589373561250590793861345008726311400909496742051570687660683816058649121070000076346922220398202208785185363527964390616335376611661743762290950667236166875180844854386059157434171709044453772966539036620906201410287887522420576637962269513839865184280830032056230077854741716826444220275483269382128102197529125307526177877968442384649326973166192327720888693458831823279470249451065357616736957973888010680808580863678975206927916519838567409637353429945680461536827815978164916067118755668792097415575156379922486892530712372821564229246800882376615763919486313539980912821646207048876249537529465744144831759387292115800920901652047987738810380473926451218459119668663007026469517376348303436596605826171841307730161966057530145479380590495205277719172037343973917141751060310649819967630864404326554900795872932206615796856510696779426522698023112831190102141917076719891136008056099254298953372226824414941599450349949078116466520578398953885398794841066989580187888650208645954171745512485194891197085938248080392381021119514317235554678890609987312228545391107737443394800712786377217309844167481563952542185313247644445407386442692239613927219120783166253703990945046127159661116521140816060473797368968905779694097850404454828965620838648645921360160923281846183467426649545772476050525641857485669027061027699610961969429680322935509589941347102544621928943164725073121795725747452692476211677864658860743635844132012374278341667961179234279758873787549095487102202359233007169374567834315995585914257034183997747258164643765912412489427561933094898599514986055238502204471732121748541125195935814642336924919517689386006460616940148584981487068437662159944771820747407996307452008765612705967624599277668829730752203660297077357491377480208382710207022464593961247112897078407253910732451963883692569927949788997576085512453065249846810754988729430525475075164925487615384046173378743837934458958490589789710844300132899950768207877838105709012360028010061503704952651204722719009182759732777300254362011837534195095430826173201373172865972162265704419591113086807928951206636263081898950932572637915767363714238249425291966169859504153480804582061629569459896481685783477769515235618220276325931567188943634977642070558914883888117382840001657661232080031826688081817002236642836114392386392666470513717313109438882674165428366007576211504460618617182876610912013807609811954068488511798240744924515232673107065813150154758837922083431584132887083572257045900989968423316467302471453446433928687376949191037049854386934973488803098314033301777764705351619636081935624842592776712735316583231870924198202323627137741187421642157598602311629667827067298717609960468347248523102810452565882792744740972435931497683385017575936845817375276375629253053703068638974039080351510629068673251474743418084644211266009466611570007849438241969646932364181802545841675251158832061052435788584899077869593126243845304414725635414033621219551203588193779203813184136494222149654194197839886493754264400526977483125020569714622106237941834089705171407161198866777708850069421719858805629894346815861103183583326204805677300454791935974720450455666997550457352377636468825718574765585317548395800466746542459493589743905333362036474115715557260298423169604557576275810597846391063749712664248908461971799816953980714173441804687983573151134591889818512458118008453180203561026261573549608257700075166623502121881132118528341811948627560131532864284840510458244189061791833954675996571663556736380341098073140766804829034553409727702013649509447665089699173890565957257348048035276247227123930503589338304358800184556500662044127004739437194598107888338905659393120629860982269457034252646874516761239317895546112170506070179194116180220835622249084355041511601378681045468736216898579768744745092197061308141655379043236982450583525041009846808025143410575231452709462533217326095182770564251553940651180576046294503394819054577782090706479190424270656636885829312018016293034113804715566331990074308097192901306629996048870859057655743718790606097301791543446713812043808372144430330292517429496724654831220746358465177152565574830604488192708004244592546815967755318575889274253200099883976539573370735854932539806237392369017181012314660446360905875629984102646013476550953334396820243426801897362110075441713911361938344445004269871094728992532743583313708687072974358207006003235180491299274146281921731910664182293000474724163432164128202801835725418813305818653074530920231010646340433266063248848147114614216809741619562171893032679736938720753710043785629253991766277391651268977555526557929202951512998997117488107122478345447242040856091121843998617976178286383494095155999767318641415728157277684687786316165393027469430248136014079029778299799068831907315158430816351757629817441516449072901440380100481239891173546129718034574886671887032330642455844268747543909550172543475196279990945946496288127308965455877572225060437965090476295316120049313207037833187461024236256961297657760253567539454220311645622259712780669503396692425891506351254859934996329921918055838376171286936999363811453717556228653866000371249001132474760812425712854777937773444232536337981564694063202865493489832186889058403321652624780263964574187956244201410050501131220309077303204320566602581760765857481623564113192321043722252418610617302342376853470948068990765839734766082199367214165720445953514959229746018917893325908053914772882189041372081653959388187801441359938301232489791557682331696424273540020957013774192700552593059630744290644920638899606623046955462552579063596279411737398536568167000375449386763721267331561341978146424004381288497179230582458985953771649818074105800069347263401556137263687187862102205771025186853010443338491135513997914126572288715117359083878236983813829540558418836324338683956747694880843486108632057696436464738458490306173917472519604419257941922507975776723162550478366035570468643838628615862455214487305863084021185012501416844737347224511593196467709849259465559928011280627173612347873205730123634209239806059633765491006840272331007618847157875385426325135532447633629774666315985674335118234312506817878463778238272717747763859543162473614906739888338647933567200937507742398042657710159619059064729766570797851366119177822828148690250637245874363351784685632547463147463264911240908742492500090274593864812175891110750148291883715716395700340050215540362425131086033764222508031262471763657630564280911692307717299925976295318574816559555901148912454013138028057049296646533463855035480361077629526959557982704714344288649429159810132724112864315669504688099491358656518886777455260707918389625697794130629538716539870541032490755158360270715184956613826447689579709198727748315263781758833461136595418972129292315672721750607514987728549010287472700493333199707974984252410878929996696664653396077641271484320285928817266454467752944240339579184455722962702929925484185279686095844674091399526452999947538975635384482546601389340429700608344491727804255018801721069305055654217894607483427604582801547826025009818458604464185912726367705882111412999286196088089806992962164476437717936759032863135559820041601750962433301746965430333556977964177896482366846231943745475589085818875844259136985065536214004643404899176911454731232845401057776111808784698916885199650035392611787238889075250535030480602279605579731692309335079522876483352131134374671604753617599584624599982400385832186214699065471158438077054766969568386619207724380752091204835555897212992166764814572107511684935315962147753388883371826011354076459922216962452905043039365319573563312026467389656238881708740140820610748350131343511166410709543782027759834624658834777889671275271507679772635506381169461714221404507660216844281809019569712125087955835710094355292622213048856797182476032889617610797115170798003377355855864145971335499311924110556307970311465704704705101072770162657329070939149099883536536787752744224963045042655936510355124216202852611104348200631630300583049458685595726096362582557272745497810536504066938581578253232159861992117534790706001222991351903175060753500605034255182493863454111485942278249942412483867145328901094416432070885958556447955699331413282078391094780490863998469653977802657336680607294305507774957821585145060694632191250364270828458979415519943204721732202356942262829317371067049592325909651432363207144330032588521041753437877835002209767421280551388249552230789333939923161440134236998791344066875980472109012644744729025353828328572289171900894701339204482348956704094994003590376424753977561189636143947908204075995142186144914590016002971578980004558206294194077892427892020018749315006148784483909233567215802737772298356121325066242216755136370941264647499677987435341144916039066827032701617002721936444653302997977081002164938635953575783712474180251811303560659816144544212006404625824138411078719829942747763434261538916130282997888238815883770893513191926782581271649895764108742739051204760490489900698907084883148448773050215820012267901740326503694388349173627380187401023370819963708263259134955861648198748053577823760637855345081748359805726649490503939784081892739803802791925420419977254781663100573238062988508352992992774567476657555153878146814150874003852497054359873248403216557401134719190030815329787968989369090947406059142512325729767381763580353725023945847161921191875100612876522368359607332684352732822291109350097886724480956666959475314656858158482090222904208761523771130120415150406651516933884726759627912496460095529871288676467379358157267021451114634071980297287192678413665262923282522595338957497287135823875718396772617676814639190029497677447023256624047994366444643718224527196070550688690481370511793949131630128450819447946251911705248271437589070650798975756266819351004234210634637783653929842839274843892190674735709588757455691682145243161478750109853815664289957223906363519211762619383636173060249713212469867183353015604246215103905974894637981091477881721187339458388071544746857115728933660637279785832733351790017036899473966586499788837839209741395023946417216402192087561321150616040549121598179676812796732390317294320811159966835010766520569138505349498233677360793837019124038824664497424432692257260182288208449820516791787689595247763057120669347879622584857209968048000181347381059212514788066379411944558779851380194137829614902986638377727805791072857789724136474167425847842546532853499917264397245259972306232255636307175018692402354883528382320786196809143236483433298800492856930311041886402593676119413003155031198296672627357643545126486465387659025529038788670625623622490846947725585126041412792574455752854898865785417124376146130266334567975420263538278578804882029376813915088332089669046084924729035041245806220938296921943555410515720519684381514670522927771975161798005483658943756252806673916366507856058986724557864324830434778205349088789551523885936083154367926887697075788205364720363837617809008311053299596403419109314884648782237797791914922600388288288869187321419367117565235416160532684714220333368061246803826602695068444597111483491269298086199223874582029695667292042193258114358872430039320753060175478310750716419195303090938988226694014241339013263257919581004899110323981945153242916834238096895940667746908558259211059564930888113948460830570371098656754509590148978444973179527492673929346264871140013739326141381889521166842367585070621256780938082592745911342880043163614110635724740815889144874791707912894867042834670089478631560326433721641145138060654848109195152777224869600282893638533897705052149535864719889505562829353731086469743932186991275707248307992039698769407915122388411436293473194174239035988246760584972518545422371243540490304395055548510900399628664514364502689097536090878381001774869958237510794585872421143756529965084478833813504175611009925376091824490688302109234846793894339250380349412276390457952767300456707584188805609960947243178729886607984117934574333648798139064297147576375299085753885002888937898894338911446638810955385980560822647848623758755467607372296530597395940820490523601528717915669255321172523679852651733517295523305220284985272332160844568826332803307361896251684346659861603183689037949603587308951959148029906520359124120944701042124090104721603165311079000112438129723343112896255493822002351952705750854290090304698381306174123996736729878187425922185026858749464491237481029977501325993975245644774293433181667523517460970949415686738919122359146548833511574914837236928455031312442616821420631241454034152315254142077941439301842524798674812035982089437003012138689621587312355202457148954992663389294683299048213219985263598789630077626694776439201410210099671581852552973023479184932609862067720869575985907714429391372944869949427929327591443060946649359539464285026834441351882781626639754474140585691474269912053382239140713419419978524634838565374545950186361423240228142009800303657809807595807060446327391774744433319485717632069207610567322898902463654726888756890514051914088640091220366348959718239252026603564817852787567422074335934761365744187040215441603827006474611842735771520916341881534593853833563780149499513576812478464935967890601685737079253576436624652007281966212655310075524829446068498337670869085084245534351865173518735724322049550950916026183500559451369241566434172125741528429134736712339388842126387491145095702669502499117695471272832014045838512959635085881120770681307925108406816545836788824215209153358552571462387618343150814082567625486337441566090215871810133846395781822514019960756517462996264720809510992529659943300217783804705991996407317345296998669739683264128368354693547953330986622857101490207778248303477770258240877472780896459963970078419167267607296979394309334850226424113410775601128838728329229283108375457951014697048377973675979796754973769377210704583044813820377678893813531643784806191119163633615030523229371031030178276180710096974614088388636586136066804260519221018230449893250935372426901521564184031211015582875040586947798514771977809092300804063338118992380774371790861211519523332801027053737373563625833602553489602912560880999740896836205364009575265747399503399123185137697306948588638994197725145965894369733786326141728477725029766131197602348660559268144661361553052441229146489011099729821724874093450033574846571741029139077202463274293116942220653665899304881430044536656629994134512134484654125468391107018619770621107523435720244748034938023144594155396258748400182109437971753353862467322797026046815864043971767604983384513668451119266450556783747171650572814153732730540571237125961700934791054093436060116198572923093286600945282882018817843196723858860336455203002563060944993701762073968606590300045503885318915780552500069351961960846461166886934260398501944310347401721390698575640113329081109149381846565365861331738657266354663361594567011687408833707622465726537650519991087594607728329939774410367556825286497551468942491886537180910440815629808261863280561986500913105068195904983747952279389197937324772315943864007587156523127457129340774393074649237434893796410891203903381801791060544975352365363585275371618233746935929568530878520089944740188700019515975873542574199603776291903472664996906022098650346290567799823397955798473474132603676567448138497225372071376144198904394193971892943730500653579845783973412741299940017537636062055752372429347850933389854715566103461088132234827712022831393021845798578336975972247241202431337005692306271651201142168748346512385518661467258632364003226573242896759878588857077038306820100664864948251594443642077927137864935850180736893838143356493265824962135290514080525751130866111494711703964676295519396861308967777055609524844668506220442961566447654747265866737547218633564126947827096729456037936290374407021425105324809685778995999657296783364896125854265910333962002039301155512657285986969582851501628219402118081225619057503185173174338442854606258596304500699179738581032540827649876492811236417236409313843476365211447954951759502802965724340549616744007444419341707117368315484453133640578921581482801825170434194369020303845695309898541755710575690353363986377691419972321049316003834148480515010818952371236779635829247896597753503801006460690995785523382680732904744099133900896989337534446879910308454576081108540540983932742267025139931861299860472238273497477505571688082417346034257731335996175665147071736975580271300793182698854382164249739026705796035790693835778030017196274151047983625299694373559090150043136377156365871526837473802030772312292242725818309200191211379670932208715630959237308733944686778976326999087997281686342122585959941190158676110499051364526193391274978214936843580460924740216069344114819531858951165920652940881581881070759414506906250497984758473451324385595987026637065121939339971223904885318903397592177626567908892210879885515383468412267971940946580247566259434551822208407288624978608646435175720458337005041058641939321094744023745000870247085793142807448286126258195890583866228783688203143629908210184364632044757435205228164947228510909745409542836789485581406189054263325658866175094239747842120492706741074347302601591960028875878030524172326222283309210557566063335571075050405108263812455732881366373408583802391044492634947727499666474427086426029335367090591135691448127433944774288594860251699101166667476572196987336321801190009368766382810942367746001448759372897174131228544456881467304038115337303320517072920936434133839846753728523966926683262960807341877123467711122471408975555700318446430446264610534946622882146935674078548608893695112106686228729867728406053914551238476289808886971272786801410773833487946030719755521207096553415966412461730426809715840425038070537261594101541291349470796778231347609559438505280274660785168619801052864803270196018410630050737607943536855247975664958728862884079839930075946361485911285580180423720360711936918946826739967024600247339862706689034867980129159252998075999053369980302239246326231009338566804164944963086770291115589965720335655051489991653607582906342137881383385430329457150892318231781079293788659455562890315752268152596865210823171755106184148648777803707023531466453104821956889421494097182500117407562544505325256664875116833627984565153801245816919416443575435487073154515378404956990046085851729065992756785350908478195824133858735856893153751893801384995022212670454575612061173075663002765812086854309098183676971236654808270731363113514192749719105373462280810793909777825986215045724388939008888108234987612290469787093012647863691466150073944780443399326599118434558136263471658648813597645603552803655195154024297474518035631034989874728880693777736604966862671107648039978725966505253708804842500804458961632436537913087631273339685029684379686139124398455558464901056298517591725157371626970203852957246170540335513514890091350761429733462813619843813533191018834722339137846325686108752753237935784412424164804345713891025228084219069774951611644884683622245817325085012421967554284187436328292690807568821696116306889233085030241019001834684183068347078788245165942177898113595389467131485217390874482436033813366791543171274746207075244590670285933339441506212194699186817021407685724843525008723031899016650232672754895381025895595767883647594309936155882698380017235038087529931701489420554389397820054857459176619439672880177645538796532171499952817235750314099723782085077271309709323774399604789960103093274672455256366762943013923301135875269871008916718770620957065976374152367858632418084903333406757959970322141603271046839405059289024938094271666682524725111141090017970640904073079978066138221426982453837730599970908215379145075539352639053184458443682591089928254587828456359365694727515662096911889340867983644417721657467633758466224668547671259868754215312215835897346447099180053535035923284866468606104374111317827745540812353022754520487728406876407153704929374524868368160575244069080436923148764199397759033033593304204910667613052957503528230947773611001426696717978453761105608590724305271541218899311794534234658283364183544035027379964901136399590635016918823976873010777485656040995711849208752796486268981756783211631792921384536266072543311985552536210119427885427966615434760397105553262529913025616983666230220069406582460271369257633170043155319421528025989033990672943243745686907621488191122487561030826813353486943865932094446265018622738411666082348032993245015338356676267702354279670383934452103688385431529000064575410258767961072679801394644760928998117074133643623238248199767122626528006300238674248315016976221262625658735519108330952057064332942322745895869503378440608556031262680488967396550863693177031311026318340365418072306265431596690065232223503190401756455658260104959235490797663436346574782883192955408971575634095184440223821641691137505788391006289670109180699010065936601178184093525265051696827910371525188125759689204100572842586013551368486083258667404404666705796534964704360345433702975019283301711201308380340973721981321629448877818251223755790632448412898133725613570955715114549846997137894998087732572340092598567480290655582856166505680679513264523916747441340677033736558403725547212842607999845699522195390476127538212815178960603456679905868346285841885399586249544060788723427002326980328341388512467196825295770408189690512708341224032589062810236291386121490216137278330193367061405502743993588954559085889899188052638141029221255313267414446491693786541961201378664758036087807130819184462540863061282353252491860951746443492847002027807661950935489000196480044704641613057036127839949211791257225114916634547429227287468043994054070805215152535396578720061261617313976388046012540325334041125397587700780688796458027988258075535661646636901936756052667574329362485344050474223600279457750270259119666579096220414908941836917233556818644601026431910239799957661839959864543663969121813354350491208526736884952280171513901197415771737323029537574914630823446393099434150316391105180256834872000126067556518910975976115167795814487030775617200445255330989357943457927315404773912783902338964309315992987175856559244676843973283685336628293351416325296188912691040491386951565376083568143787294054797650290712990681485964828203101886944027012018384061777857935682438215660093840968481939674777702147523532914385118239632653260505182982439135285176476268778177794275670976934586872872745396170158512852452610336641464453330118966723057986571901007644527878026515156908125178367775146680437878856300390921589939664680220618267391163165376272480748890605769282607879531618181657315691506671672198192528851863595735942885152274570404133182529330945963241490994522089979961965679468860322556577578781333375009645406960713724100390777640053830948388242226242186344953351524971051001292029395606745924220906795886909570361401922282838526749922848252924041980026722855636416998493205643833616808371661350780107812641584582539219856851687245754324852278408902923637818147848803182243212065908570344045732062513161692074139518352911417194433869697813330167061541240166654372600050642924795077529134622342713779903429955360417626986536436519708906704567888091194878322466744430411853105040512020752673692970488887272260978538976617862970744820808022674796882308970590293456401160145110294606335677001691880991366591323531557737379213107836230001263754989659533899635037492410420674428698267263629483881806847608576340310998727699236014842550813793735644688066673282010463570728038087150982439368653839114511537050935879042432673594401875560909387567623785739786159247336803305289393942078008971745231046863750215936970127543941267674742477211852455018213035584965501713428446937774657203840424363233492067326916011172557801360115474167651783559085926306284202879105273200758640365744514105431273368054175300419711071518784807358292056933337278874549755469579564462729739407336897735127047366291556830637692510263500933728179724695607503330709190775774839464454106268020099813214325562005268196961162859135198272202168749175776834458198006772013287887187075683022177385081540861708082165384336995025590837016813684355811237848519315821255787938316880876062704269580731909125671586620526899309480582406403445287975696345537698394904081405612382627244722801415780706065348211228271094783748988189683118592886497873523103134463728824123662350410982561632236397068350752984197567537040719048791575918668736624111849388889624952227901054937654913300137271033304030857683094794323995521880642621080831694322593562173571635447143089844299491342639491953329097710970046792980492471155209848160984084820364121889095960173023040399225690026424134022790892864687658617173161113868863500352568000373746951798097433791861780156746193420294931149811513364208865524848287314852006372544591015449265825856368214882325519639626777691101738674283876202294068619277785934665765069346119021512404946602210489706379838050762460408953516014830942970376424718312661903221048311596272314059783170167702331428609816178691719467273089497323789611362959922533125984032751340875245342862311867574049380000368492756932835478337968511627971256969136844350660818066052515053906208621660752540239518790463869524341225296059240205183567733361982654118871945627427783441932369079865785971258976970845478835032313757383209110457550298314402833748392625262739576206975163768987230542462509767165531566274228082735946725220862188491181476676519113442632723461655677872037485022109522156518862248303496176598336402179783690001250893771866551881330329845266315830214331165399089042940182788206542931311357683225357601531152713661300588300001349849497305307360569851781656621136218633996251453084583151363022121625529077824536882602124490866904327501750575157957075878079630106676455158059843359210921112263497606436342837270180799986585673653386813525614694083727169313526481923173187249647167944372767415659849708531390998998076891364565329194329742057008821537996503566228633960024193460413598314121542129573333726336014900101853532790551630521316928085219037526286870586747777673895192445491495446476152536498346400754768670521466921679778884440297169694210477425817577368851236201814362346882108965050600780146904254570684735434714786729176869834470836107998767567982437153402855850237484587446351341213319864286279085748636035309618894083745520534225903090875398727750207544677489723792358742735925796666627447653360628872969671040139842890408423725619727263895213685491248328358050319916216233791358099826282361278586175699545916409742082076642264324095439066083997249304455201281721557928095734371175113222593206478769552128890579009805961862037800239937926226930452457810694526970313024293497044814257272302058680128953466545592588346050550266479382722910436014698463842863443506438564797540875772534345788686511065266691206042585082372769244260355566773738594678286976175307836097215156547086844993208850042612463483663780880035143749407538047764172852345646199628642545049844643957297727109801234526468533710808433744965593719368818309760703510721084160696157764449937629166744886556031077893234056825001589535716160227289701418387691296591974420115386613755434862247985336598616308311913854002943356470238262696072058350178258256012779164339339619841710915249202141682123454947923256087474108099996307269154437598026528678355180072073039708522860899344912094541030281364382038995187885494658679569919101015176032258995695949758195203115318564006467727367744302615150828053693055134636929968085928561922984013361880295388367648615424888735615870020061639524218226158330398856486656774372958808431643908765423878261792228936728980189146965506681255690529343561216770252687962897978952065832928622924358288473537088277103604765599389567613452686791876091534386540971655468096020656094648853757262311011706308338057535384307330573780282821826530966934511761666048107015926138904118923698471525386553443719535895206173704927028420036675979281639999269286684628653598856495336911263114103438130836874132889261501016977671721544804374306492554579177988022375621776096172668091522881765380634032944419553999328696860499118492494746064095826795847492824420936135516510633830425642618205715939682290190796900471588830930522491011594729881649228788956620115111210421693203813970142039919921367517100541388129793446186341855667645534641485466360179304552287329733062425460279395654353551139696851124820414288042919775540201390893074269125775549625581035677363601836049109105201811649139554661653217283570149768776173252395276511994160846909745213311720759758217852209919641143433841110116391699202890024862256679719930091602998336716435208491302349831212753998635235148809415182898035772380874683667162484188631966541462872358886822455666317467555680901083172184224444562146745765299796281886863456570934553607649743590538145129129254463844538971811290171299446916481832636865142835191632790337512816319372467218569674915068110839645075024909342401946031819299305391734696102657705625219921581669292368914159612051402513286366296761414440678341356375880450013202885821043558377337917206110965258790666649049073460968130449394959421249984664994282192545116493422908869729786041575801414407860045344931194981015960787632110303108899296544190763425498364517201065251792809048678207138857902773475511353262800232175003730541280322447703437356182484689223381318842778554358141018800717016902072276300326660235954271844833365986611741096828950295598840044103136640940675858236593450084009849682286121269401716273027998620537289029129658153000444575177358951856360111316626714185776421909020811476264635333591120892545117143477079127168205951100839520557037720218256533868541502570252785103405909684251160353130236117171508209852342824549598476917206868459689466461895029700283308770845264315557172517452254298481155138708242306367820237143617072388503800176830796555675105322410785884404830516528273693828454151392950890923198959410310266946401969040403645355904302773951391044685764588222276627626429663310657723630864001629312051732921289578286435186002341617721761357024417924321497004666179891016167844612948741116126447227180113578376319192866829795857833687362207056736172560722703768417220038207780469671905907022246032190489480226612001871220969016067669296108579870278803465756087330997542728917813010318630022778849254150301985566975976401842622760465619483996846089852499224472452547808296834055665675544163330468354548462644009537360229167003795125633910244621893505919810198272689542892608686672687683458870419939670953746250645785492782411949731695992365332042420248482024089354463885071919721883291122166335608128500577556401991608418121676871783005573072799753220236720011008964328914941942882125767764391182578171881294390164098159130080807031925574987028463351010989408800593081292726434193993566170697053874514176053186383308056065952703815207617733132684416023575810391824524860509871049247455813295831413029035735389501784856359255390476336027385877637260662149305979729740433896837230896964037836079351957729724124796395479236249615883768096354253157056088121392573056159763374748747395974121809693621228228520882540627532835580657417152154781000193078352377420643899000308689117262196754535904259241845760002837073041964636736960957142290947135073852650587847860743447617878579629653008472848634980113882282059308795639861514006363533750008934589252096517737804541028022297845854815534222473301720014707746254546119757991258916468756205322107027419457843083864192946619108693256118104191953186357008884072274286145593947333126345939474601055716429214476570634179067855715364655536893001050896663655237926353679539678511830682024594419281723028333978980788463487863834406538588907364315034172192347116298787954608034935453171741892220206071724620679323482972158840446655928709836813239987767805932945087295976647649123171548955484231322131838286464741943193090585477594576603003152590497542350011179125067133665640344511102413855368806987624985275914310094061450386097094703950191141523459056450644456009177818155760389223269968154318645164963729510109997271594377127316247947696232559208653403774529906135333702464998935572206627511683164936000555745548891683437384936634899158094103688685101810638147031346889438924362768663079088038380704921499300228868407560416634369614568462463026516739746201530745609940166049905894944319099490123033444199325474161688316624010582004481209385552099275241827900478528009169002962868271612972928364780405360032953650567796320092181673398825582829633947388433267548115249903005366217720990985778386641279486761579046003957981268651240642442222051055742435160082788302790063373391880752433756881575031950265218552373599826952716651685572514642525363980302335982295481800410931669035108928516388625799410097886639004640904337262759798057048876057710130310285023430875408963843684710685723540506098940306521815389286431170032771693539803875887504800230314088398752963406655645705514411970811852413373694695788527888941166279501227457137624566027132954364113625544193904307641697269518075777088031754169411571638099585258099670825867794291153498255504845586818283261740909084561485329385078129808058271782457588101983450591247845886276636628308383421027935108654014340131166912917525602982211706594662644164104344851136114619127209408182056238347708124018563095044369003526190802788165340591322908481281459536919380499357878687969172797211392915610118326149905314239358954421951964088075018095841260563669390195590196015234531640600857633662006094305485312100854792726048268863170177538346551273987803652033970916246943823350503051749244674535925825365786168983423455833681547379479823906837134310096936186759105923411593709185489699611123207291650349416163258202218148350980970174608819921264712136390948911102462534094463962965593498047226639696714214184880188034494359738814295616407267451621186084307355776335085210168548018687366437628887998008074170953833199791510672817033007370974704419764817136022634985957753879839344284388703160153468094934890338781755158403602398969501457411357546534218162775308425845291891399365787197139160286902282436015227011149671764914974796731201513408479689954141582755271088739393478629570170499176403978270614752206528036063759147961080388160189661753885487378731507980258219509840444210166164563464502391006546962710025862645590572434667567204030378482332529911762341476400045730096508469522524341729956543370625218901302590906044941566396592744868159824270620366627228281053109093486521830055584328438608349379643033606910545649929248482028067556779689536491461472909486426158971258621568418468245090292909236657010017503713277826990576996478492180005550356903356518575048522405693028906858382190461030486903963204790107425368581964338604244899521194850956986542329200960997438236094831256295497399835722135055821935229096826172422795761893960320236290357703808957640176301063051878093270349152002544200508780692699875495037705183791948772233326830311341831875165485871603993261723126715756848988482940037101554969347498874042280296226953667865894463387673888333711217305650377954725465620303071721536404508091108882808480076326431811714873694363693116759169076621187968058778580098729514608822016179991142411693653171046202599466541640239696858269580531101543086670820896581378358247332488640035207781612308975150709372640886738843143237104981229173061071152952703858687589008553092160146879960733502818610739460513575674594015412874733402988043976227121765375814047563959133282604222807604284939451732185042880230205120980882417481308331244815747083767161933797861328925788183680705704486343203195706112780634135386200783466807554525840202775780897305663097900817516601143483525983743848957554192568653984454501396621812620936093794539268895723201430044962333007282503033249194814821515732025778638816039471190989439878185773439008776599314831522470204753933135951052393744737391516885003598529509319044375469205195757993751445020891376124808803038266395489122829889257471075922911409562493329050149698614512078379017961510609710753526209761325598015442856770092344543831708226132905846604573983787127970951039195418061826705913865761762160012050827419313250521012416007820344204851181771433686892763667048743850557624910791748205537952984607072914103344897891284849479561837722326060741113601556641702676705619045756394276123895795331328582427886209535125189106539412023811360528259631354843331620929288861679404536092268440769475777916841833233806899532030976759113539283192433495541778798060986024128243822807703571216113369060594886103276353284036611095034087201284895896132728221433949134415517668051414368788760148402213249588012009456176913898645239182605245198209497592589638811872702934196444342993256373757086484903932857202954719818867876829840704655168092197228509929917327382068166677846185332765973742630418962457423699804456637450861936137215905014492554059737184534551903670825075776604144903560636748231070183351866384662986172910142784682124608510341235702774535481041176801416629587204444369214387346906404066567511774290483398290537552286995398604318508694684542654787984838402023452827300361741770004474364760189456953302287141177825271966273109396553032003914262776108007927204579100236668453237847023003110136009223279163648443980113243889497798897566025241115627831747033162464817993738751218465820539339519388426651804969909240255532983941471687286767510123022089615130228643831513387832240428403687510695328659059951328073916914984757695922516154167856879057132811849322772479436174949343964841740116515588272873149021847077142501638199970412632774720880876150111611063133135512964017819968100126872362245105558192500662787766149480489610034412231957392087881499289983150713646085411392596481503195159960423961639369026439345737693901509079882948235559426880628769632893035413574004857936302741344201147067196517668309884405524944006947975175063968347818832204987198301165743643533790668275714605606209071743171453648883356007852291821933750229648489469344289422048963950522840176253295883054087164393534478240183341293091482396868963177699754760467693980707058858695332761804230684897039942089184394144364985033822805567931633744838002020278798837229673820652387127278817489541933826471032408928865519414937201318998957248912775501561699684087549010173596544287836380841678520152435951776678875784376757014366963873224187134461870541825600895577814701052317661678255386056154642988405781275832304556589379341919761257356232280275282373781369702384218663276200126331200674488780537546356021234234545083889129325218851509299121196099375878569486563794888319761120826065565294445225737487252592300566019898583057122164215125423553505784778386760301210197431706546279359572139320719175960671098813882445914108254698689778116733270972373416634613779322148021094377501797870921886139888206444651665168723454974719629384718698885098766310032110670498300741250439762990210373480967394074930890167453216415837300570620471981370813386698206747297365700257207436134850933202369240574986574132540497865266807949033319021983345963977036191172704895940097018593836001586447544625091212311409035362188556924157077194133136137112254233503884070490293693694330458392516692155644476041057728677595127600031208279592679668329292099534500480791084944356579664274593181700445696895648630544057569687215694486909309034421341800338943832705241897449722458831580132725277774251692193566183938418837361617681410639892261624874079982961608636194866481897246335965375037377321062868974862477559074679776628398895324409627560629994134504814722489624438881674524058933568798018403015082216091274402535327993756647521539662170422251624615731818754793313373537605578127636330538574434942009548699195642745577557355871791098996904391106112650916465157669660551997677188003513389129319468695759444923066926757188264014279663777097592440701103210223311611991199740947880504984514757269541563019451080830603801361660328991819998941849653152566177640011243568841479375964277522461963125817959139342409277091686548620810127804016976375256238974381827982207692020879873158846234363980203365916353930884738546388835298295455854031637137674669041396564342518065793394855919330105012587068281813151734478923594041728004472730466719603986281003182067554025575975954749730718916517120775793411486458801101191111322593771707383519897328998950441743693392905456451826418605451324386323172800548178769820674856971380616327233117417869985053453259272029489295529474340221249705147475102757848576209549567505995615714497306835635354386034950570585964926424071665059108400269529324173170662579106231557822804888253181433265457085172610918352098307422598736830193152856853943673313285806054281999312446646461713480323722281166632965037417301564943082544774782288041325402446805198473171127589487796100706980335482917164951587499451833638197127828429845420414374316808412768304551216246875410009862157318354830495722689378002145659368005912614237463211226706039239003846432556424028921975308000705924258322733826987102454705320130824155728993177112494061563002524516871042044173631551618306568844763117766186515283471942148665936009769708488389657151644490799771930338330609191674977903689385597606783972506598432974324779111814169852120670262931665814441504773506967953537549235300148681845605575343688744449087319927987051890652805918204076637394381761655526359684847736212508693548206781907540672461823910786584783667161605652516743145794346616864507268781591047597203201356912665707173773733720812730236181374025758003663357199398612735102316336361752525472340650006396351414818607009184188820753652358483228161109213908725129109734824945958578184129198821011729117722482097444999661496604909430787466338079677101256830496401248134255975373782084649514021424413467607579763168703383367356749650151234027931110919813174534405190631963384940400039895359086310373525604916871001703960373902594696153833470415108419118201470252833272274054508297017225381116263996555354694304373839722842367874658441713954133857956002760746297430644591644673789128177042621990693144435181378736108722670179367643824456475634733403254107166161591020653553330533267823713026598632932761468434032880166763768867556019899933173994001652673006893189051640268076353086687240378741641981597778532846394299464708887020548101760145514201227066705092853159373917672589033363216701832685455793580280076272998290226655812140154236799386745761742187488410405269414254403034520638952781948990057579068282574204325727571664645636543505704528611476813425826397137243470490907060317675855532947788088754402456455226733717428297722258604867174245005609792215935468195476671923364548189581219228672739553495331404781359774308564688292589758681500571253413426023348918445287314824110020559443331151400029724967955775034706670975105120534894045061735276324145626781812591180225085916354463554696342685651048573223139777232597220119628634469603295277718425996691782660380896643157052903388970056077329152610818068845519759125909627933094556332689915365336603972646796691823143118881204353953048353635500949012722710495969752315067026961778091341107388630699362892808826764820417471842215215919534382372013251340539281663750500939801915741993344233589890258864103766207014619212869238978464708626534776774521347415898856412381522200352474152494441274945466645857806960267223611920368205819772246448703081301982881279647621105846653270172107960592314369642469673090628590783521236986817021448844665585626945369839074244069306190126795130284330984404920165726433452666617338144097841464196143429557948776251358148881210680176367164064358604185770822047905538043986299138282273731623000896888687139442875432976985629455945551486134135145573173856650511756498428456934196460379222249098784144430832231673885519227599974634115498567632312775765072703102859607025492661976344215780257595756545832019602518742086421186856836917792200849438789356368974166898100505123848829423142555554464964894052906399564373796972298462510463094072512484527311394101807973761312605350702175066045652518926562164317642141899606160168256080648609969823674590155915861395763458841953322677181247776648519631634309354170063118578396372549776834872567291395329620343777888798458575775187402273060003632026264986441825943379109149127557262743005084856988714865978841260526651915525550865632374416406185407589825709933619279390783655743909292829175055288590013175804742429283384707565910353645288581783124240252950106091914165361207199417215572014715484755301320577690753178328172834153269434174823730733234514772983517419202382791351589311079558058597589326972434911197741351931866759618814636149157002662864030480424592297853799844997191580917422215189812421129592109116548637037143792980874299351075522390625401955007278774055209562631743192872430892294215703006131276868162524062210362564719992899305281221773851027767172519103805344851369189197941488201470389361950390825073047726378738904611507240489758694010106009541662929581899471670289876098481217810855286271161991916208204557231685473648981826627976163010658757708241652621519939119539612460174755171159690592013651980624101845835216342828977221962962863107539362158583365536606352297689539584603044759315519915097974031307017933385842903015714130718234242044799803999691324790981535010193647914930877352585393211996562297262017797941959441256154516174985555189889134141446506439000370599174425129481997479116011031935055809512324427453873065482681715464154525791061679842873457098062808252005959666847905627647178946954011922115833601105648737017734215197569581956449956292496359914682149322036932164118243419884002355749359330668844958321616435244826558863037403824351928474322584996089066110235061310598244496485281082530855286261865575523097796195934693315674076197503124770515713099381915402561255369892791723275557155103775608663022106392946776431022722478053669382121722001508245169441974139543163724144863671513078834049040255313820615932086958813147638708368264739705234403608773274172603791989347947463592603942140698699686123679644635533323103966419081316398099334636584533743707024513521633590681837797667083974663145803470777938542700653955243659702280358695262415693310986044858120426545397510673139043997766682360909928765948780764578058248542001979521715578642057272244990341644247282654440333750534850863291436075670052222026589314535384021427037155418694007399100662896066207219230147447911260976417553580406907848665634386426416425892376466429640163061277462389317250553372419909125947526979883780568973151610919365233091632084761104196079493269535373764324470510073428083477138933881490833757603088009734580891590198088977651424682948393047761075114723704763341702568256721084104103328034599037932013904103705022162481045155481586148674623446771311846898295456236842495677422785527858120922301357272882792046246611821605046465691814373525226734007864238184457745873207439811969826594232003675717975540711614528140465694933713787006906514643204175320841551144998771983421727115478408741495464519375418853201789985490073632299463482639941977795029374678355844295964645933167726678880979877689814811879104114751059857610997204713946619357988742324313141564235347434907760077548134175494181774266913714278470089370202764297718186294645228688925664156311818432258251782827893098133360670523058430687825382890347858488565375891041653717725043370212940597100568136172561824914216212410194086625076463792230912350054190533782033491836088831360921725893540849362525503648335707738636119866485394227669467781968388185065350909804736077596723223682114191109883527471282327658045541020924963606965984616708322297829313713888318141619520147267234196679807858115097611050873567455715691050074289239809565776031086440625164166702774206287628682697545072440683247569413432821807917055383133668785062832050845867824528268672508989803386608603806804899529349176390569748137539541113107482737302022085604850725445750513774396606820965982329433985008998456343557241757769572146023257223631061703218016932138470298057709417314130442699894953638978808512744141971825901504615949503495337762511652304356542029424315957511952789466603943452284121989584938217511502129304346026343357643557799763359995988207874669708263850591001128638062044275929038788341834868445582033120855103252958471892133908429623214130660906099504069061796773833021314887444892618056413554384113907895364172584296706426815626150706373646551201020726347753596221638834464954761488339470934477631597921629864221565408080552678303335756097159122159792380435728158731683085200841018956964794199462301901473285841613843749135257032610264650822799719223470607997935703946172748129566800747219673135881722431871953627028439138993599245255344068629453507349086161431477164434468785883335385762607900857369682372383151081042931560243776880975460779002202448735663829713775382888979987042958108244643699828012122935580142026134002075526665723170595632269355565022828824192163880422741596877683727626725733996472211927800468080831704980379423884796726921395534179869207259766416457187936556157813829708620113906855494787257123170029779346970102151135760514161692458591381997594222811023482882815461844964809140551459661631167185283662881942856141441945733174041730467906316412397377821499925323972094357119934288657371342804497263303942662358995429436644628592844748440051295793584139486734853640037280140338635104697165395259204316314434569277047238522757588347239815867314031764836508249937177039402358508225386251589142264688543575200697940715142333753173935032684667802388526589100540570235079371060362246194436170178822395669541293936464754790730188724207138216668769149197067346736752156691528658684651866672134218080276953470539431151847872063444364675008907165757962960765113792497129827135201957561714986408754126017355665977075106898532288455369451401116156683250650433875494349527464298907237256118231946781077566108304219516546914782569550573408788742449271740961992566425283043254883603680043464801464156804700408411484786565987999252744046291329810384577565396693162829757404333264400843108671827298891310331447492822640855249745349763757236100064995863778027793835230086370663013927528217110247258310458437003409202941333457011232005102271524076598159376733327520427857621553209977507156506807837501618131831491847171180048440645989064317621901893941860734819349120849695873492611197281147803828648609177933583350712825622293399843622564404989515480009351758918801756734957242516934746666603326377356777080440685806871249504709688407599368134449461633714045156771998874431875056620999353776647878589102150730331254582550506032484250228400066812687093208013389317999127708180957489719076004426803326539957379316682079572467643844036331950598374457008296922051943578687633171376290549535636795925544069369814145661227388127861887310417874671882889154399586474761109693244427804860982436198535091094886016850289803871773000822039416170937866036165849795042559696352566778189837122670953532297267052900763287004979463331907439439636311130383287908849339763009141491467482934505336206451309846314071095896192312108325494113264445554569483379668103212262482483989137594064988278260121535817225642732563981930821017004623262629427253028114795582741603329074821391348855993707938472084821229221908434734406285439925120796326522282136554821340260151412542481746294444911308334988514198634218483023511403135103865790625798360387315414113433133172855695864355187568026706587537753802997611282648993982295155211306654131792908225090767726140753250838496546888781761812609127057659081879216492743831154999842894484267712922748446048319956106255790429842910369828007261345219788439230714593419143923808409523616305594998160505863634546892389086076860255705763691941662037610058924001322655848896935103900695455107208827447208532189488506448102877294023984426123612532850746972202780070805180178577329696051196938614188034161698329883249676900539897186740151815066718387806292694443720103709768207058675370703448052561964881318629648696020649291372594910401776116767276080516179879001192523787884437682781729220392877433056720565516626747985753883107180827054547474740832405336314787073512529278915182768407449732936895958751272225428911926060516321883124723961502843318806575249993356096965264732263317677061117526392058565050460516675920788285865845925426538383792804744194437205788886624047263150151773604528725701779595929208809886091664302937463725059748534730180671012796216072915318147589253087709501550560237160099113913919705744092752410582414747244738919626034839488586989693733158297662165902010192542737020119449058286000685281071420742006541860454357701885124569490655116921969711261919682086460134434284662025966541831767352271046991483567253603569706721495948187228424539106906569439276515820267235152938861881243363243404259138775428921361492823352627454860174636662015783805983902095326405030497476414202919545245627635408054612217572320039684258144916071158746436146074973898727914524696370698355028847073425307627393157486032378847374442466673448043555654693241215256084219764450811439932759110506803988599661961084034873623130521266187653316175832266576353794620389439712160538566131443068009887205523787936293511719436343234840862112181826971612388717864730292061437924474380193642353325687867110537511696160632548332440624781141420373224173601726921959069752510794953098514345731206378520189139479009260401909129555387954605466521053642688211435464715074823665826379027018232019953527986057710641281715429929873487001052363513123018748020460131733131597935400305718994474114968956517016531867074451405920708468001597729388437911422254055980100496285653268026202719143364088054230820439759130033333182989176852383916313698801361041093261567457825583286193233353272414579148812399704363724084404357118502530032299054467962470304313367791720646847472782934340988558080324791743750295374651108100958721528916281236035159071842866797027677588826899970444440417210621754614150402562484633222314563877569183550756221797539478303728491625811098593983974984490240571243250172566242754847961509193407669184908640833597889857856820372573239296207390494154936264695316675510600922839493812633666634504584500497139525640979819901352439259919612177689051001531393749523400503403068609827532537090990727979447659273378488506119308014437943081611021123070453568905326727880682382334385531686547958048523741578040520811200058057167787884797274718140490700672915700076082475880788149632177718933972129604725721734632202761965210413795981737862781056029237960346002711739737542871635848478261223711115376826610466868138839155992788824448413376401736014860612845091946838175517573545247465880946018768095632580555223545797992665249039451838165642602289439008213756352774478414647569638540292128986130152787443877817801993998199565772080692212496381224843191451537415697248440671289822198694198619503676031744012106785219119608365898018462351974724237555257317934704897961610799906833324221478165152511911199933230326855333360723780694466984865325133203267792232015889719074269042205190892807293370140843203541234373113347667955454541687795659032255222461226856089106374204031108552193274344314484923731935868628732837514331775969149384354043641314847693023642265058099785487311713107032465765459132341980085684452826723927616619934426411970418322421055620758851928998517278277233400839116125979184297801667369700221007360672681086139564957599230822260906676048836445960376156347291704002808915338278903712521658384296565218201419588464846377676883062069394571616151591451015393228226989300374534026622215830300050632581617955911231114702486297338023505916273598918077603258173056069464231344596971813338120040318814981878552093540181409318752439558143106179943070786150138585855356459157346260037672178885559110533335304516432245090775431282464382291428743060198736627715501668776878280497310555876007083482438855544694904578489155966798313506603883796038697891049867697272606463801708260837848679559631225521222654669484084854750883316078438442219660166975154404388918395510709956799324740425605714883302667129743764284213300714232347872297124185715361390321339212672088631208635895299428645171924935493120096664435461432105903300429453936729781133440689561092374004426422360017233551317563470820313828717986770575295469501129332442875883744826616117891201900057788028091270103101913833253745981473318417578278746693170117651035389854987279327472304464763330711985481431837016968672521525703527714151902398034075922914879915011283686010184263561660404098417961948050545138317888571942269583172878935350266141124275652376219167109756394356588679014408209018238746402996319897927577479455531888468628087852438069280937584425187929634555415122019081919272322853174139555452416567071616786305638802859605794947334708682816323971231715203062158023134721006571752870869860401589599978569259170795546820950870461557241819804138638325287965005447246827533568742118464582061709439178413169147501280499727368040259248470232564299028755475694619885385094298713753404835950644573482388313298082741852970414292831482292714213255668031624590482964336425420362035054055640390865660887234460623789365328459440099516239492471429255171076086452922740632203933019601207846626164491629421308722475546489503670908660249763040163501155782650328292396741633476525615566451171028197761464535781591932117946207023395021133182769534378083030780596819405604368623381982234926970073714064298868978911577049688876814307261234471975397549730129065120655838068137151715624333935605337681409812584751005999958953715221392917940807868368979066497164092523353931020303043143653517704772042894550043468479507595592138923400418636354888938213006457387379541876713418908361131951949278655165311720230868549664952631508274347664749445967968679402224904095691845893698683126949316609886039438434001713533058410126008131501011757140346351582265077247681588264876466749541221925376795031556602107481459119673990320077813056865444627610505911755642465660744209685350360791790239250363330181095349834855055908671369579809071319810947303103811102703878733676556912851642986778645800485397615326973679469694497585862970272398017522601668639961180149689940401719151871153338222566897577770526926367130299159409260254287646747492499433987454761286919515177511155228771694412942484562064173018022557542930830047233229745817709175647403790128271959658276135165422435813284261333826870995283672829923676066252678885282917565258550593672005900286969298257957428805272430854931297840038245452858447197609553961008117267062559115736117923211198314482671772181286030149927791217064486197008907465097196968159942051383337949124060138911449860699993170339594055659384276126295643581265575403660030778673700913668855401480652230600807077244890021628569286698211540185760808254119019934072893063293324911770751159988131004122577329950747072003316762913850787783126774779586367266633127433519857804533928002514820048082823567318219721103209235488194512859633784437304777726704675161447492698506098497638547715947925122468836628058137021432034160087360497821587650675373231566233855402624456105993592294851959818111733164305843482106467574142903815986497129238580957289941846242570604601865626159896368090839827165294796644445564375157405627137447820829417145977304684154560446699906888463721735725786991788573659299141968237227411425906132693022160978106404539486659144927212873342093515232626526330549754212208150677884384451168951452227139391567423674342693667608187735109364770096006640635722445588907429800518944718115065037124129319747359983256799812990918953257228022359429545854403467587948049922710563853745593096776108329758871733413522916459394033440197664696083512989981009342184344171099143712892850385212581251770923642998983921072025419197940110951213535950856456444855943767617565653427979047078456903185849971348154862511910435849679755586938161944609175828516524869712438149914952196958924814970488315192419218968822162080390324330701509790543211851306902023463648778082277152866464518564343240884385767528744941197708095720907066844236717411443404553516359272279769617888366090630090857343513229707446412327717235943179021419906879994215759463103700116397337916042682095179821200856463209718364964924849134435068132749863340658208209999243146206872503728978706556299113776894272504022035916995537015799734106747816100639228353178492155312483400792266396521008933272886501503245195316687855402039257018617678606626186847912966536843959951054623989162270927532043239932784025443843970569484628190792879740624690687696885478589014174744809300705501284245731952518739576321590945578098323400617193085735506550918078751459360203985897432058703115192167896211293327609774184887503904548123944731347634972146773178271910119566673900551931605691324964441057018571481070287249900144901451937688446914896918214368607754936923111115312656502359124208291566968364020694795666778384904389466579881578100637875351031208138253365328864300020728661164167510860718549790549263242935389836684850189016886038903794942162767695251664608895514515228388830288214969385288117538025197370989664381786246609833222069351751144794712707973106569569827233155804368945115292149561669262132644139537392563691365079144946776377515881296606997468204329579881594865677952546456164578785804098480913504895889828775337412476281761652937984633588444891220162263400399437734340641805592975473222442765795122327052229578791449362872316318007681160912493351047917272691515709600793419827687726008982641208961090172472078215940432776330826669180591594453851573629003072880582090005808633198378018247672141421776578088260500617055774145675626206989758262098953440039206170787336078410575486620880830070201576324017161394875999053049003124231089290206619277829866155834964129352433612812570361873717223474118690615052815076881911798150727353950003777380358063932939440934912091366647077624606913865927087473122460965831246055299097245540836372021276106255850830211316688765435120491354831750600332714817090378153430541362363345781306153843435626835351727804649319569801076404900996609843442810337616733718032676103446241708335563227035172554611533077184009879041568353700419371692130169438399852012721734243601170986251437959723006657591567755051560059101313321814571248311131692425131696920643419550948623190051546110250495118770913254896899635953251575475736236599507758229962615140139619927477028730928260610176595815625208079077264262294940449109939989051327795911190720885089512318757206781971311364843778924107208312759784322603172301662386625032184610556192085893034530972101540498987065676937016392346274063086368450094431803919827005438965304035314125474340169929422871348051675423716949858642168189061621757377147722172162154990940084883145778966162321222082816310032061380548690691056663549168310320451506336483896646101555710386783079344204917138696210047798392065849716237445859913038974117425969863454669734143143149162175294548672579274864271060097149181459728513264995370192044580016481898965447605459730499935173778626923290333904857003392333608817813823155421242637085610616124694673447980422096876354288134386626618651192750959601704134189643456853126464351996198309895304805133058736628234439421210805047538395757646819781434382869864667212010416578330305109532054698674569780434864499646538527701883089919729093595556558575328605078660869771690926230191129106086101172834282756539731681530950922951508361243754871361210401397536151836957791694669983180969343252153885211920751520462366250614588317594321757046304337517389829670809035447525560596135997413850710251321883504855310836827978665062468143719286241039131190325945958905990951527589205773578094645747733896480197211827439623115560952697990412225762342836469746516463527908348489139422244764113106823152098446960954056621117102830606191457026844746369663393733267446737834581747581009757972487498321595594517408403797859972898995202319082909083845601405276066742857545980990045760241247487230506040032826398421514891656456083468335574246986250437414186037320884714216266964797480847051613291059685209909558994309559408636106148664124775605980979305822721444270299339077511970297860405016572236012796886893112641980475391844597909216118058871080101067284611514162627769285282668473313583962142396562155246375946712572444852460998615690421564273116772620889428670910253873565312059645176384304861664687898721230567001880416562490820307406679557315192651308341866200429776551066468226612415996715443848958989491332415617371044603420498690128799975014872129192115252077175831833856352112104706481427693574292812658350808682911023216173377215361272375196321910777715824722753214691107107460812364284551867850416216805356833533385292325406714799714664294987662569948334678011524822837663446951386005408762534121761984201710883016922379992277911691376282319649122857092007624027216827604734982394364744420301774559274998508448927870915422546182178920600544635967385002287440085614403310546924002767062574876895506579607485348066449634183680117767070053537778832725261700310579618633283887518310626081879374247962935487937429877567818878744138005038901449593734866118849892418480584444412849955128347718192007282820578371200961515717361634960246929619221086001659107781914855412203712916798048108153393572616706804562850472250039376126146166637229095769772075846856716164654149485585708480642822202226998458448639810307116277280370303467314395991791636604872155142012839846058107458976617752434803640226292259538196597994716532319311066955941177131695833264250626524828157542413428415513468215101737982893694911911192215465473958991410337563451033983829339977216285724462127087694228700606531345271239689198749419495288683145805582437315114346290425263268499810540195674850560192088432949354300728752869360970426080299246811676633439322264586225045448390488188759875303491894488697622458651940171044887561266416638082977613727751072607748959149601578945961703850115324666286663716826511901893799462645599799314985695322994534355573217688640169241493026755430756149474189969687648052201549930477579002496137041838626906941778146154911460211138996625173171139506688838812183320762036658187897254671944533471210951129673302712188381756710579040422144363701473780284293157337047925827538899110128272225149653980159069375708468757522480375259268281469174007311988460399956850689217967689199258198845109653274670110498372684852489889991894500669835248131778597560468523290590669972006573796476277441363835093061775470359301079843468538346293055364145279806787263458635998572479192910056717998857945700920129048178521414536437018360216281762361709424876467016978048083711105174806663273611106187983734289827310626122988869689437121352494622298987242612259637211107707362598848736610033107820177008039143045240070758250757851370372865018170236005041778555800185251525710393072663363935104609946351002902667252096881746794307942064572193514767868320817503994369654014080625083008645034029266727247824359004223184499842548462529009718798137873846248766076282066198539887663759645331570507674349624307253246760605685848883900792363008716882573686625350560296328491636626656620844313963375190693663566623298526053306127519763139084347608056741931341773667990889751497680840922669817433286256725641238154275258698682562001285919618675491640319099827545605830729849779832297797656999071946214949985478740235399067538497720525945520146861065527821657606674796704196470767084131358670212322540757675810590787465203282170281686657123053902499843393629615053798830933013919028052477875658855195324765580687346880468461451192102269296706032066504646440934205455422011814954178956557187918938659325837889313526970381299970350360767083249377977191823543923973318812484815542594343386564436122059850575792790154391054562949698068399038927523538248548309905507279683781857532554046187044026813272804628724911249942999733834053644138691750389803300855820998174661250034479850565047481299818357087187179864317779633478201471956663764118481803999878264738811657141824630660665619253616948893652994889911682142929414066343658893755179186222498618302792316848721592157483220301659913751062883299702422427597295958295610952066515295294422471835485928184190079590628362186428853526624756953604534776757634155086847341808023019699132365104828824454377176766230557787586467395592722838176275259082471041598230941407114742546357712293029768225029553793404804612196879732390272346848945975848040430215831661561013592038626528519558063143361774464185112210425211921972184152606430597912249949646979835646541517939398668315247498763182804113261829388698577258029227985938968901666527403928352119233191523977141355982051953936961565652848442697225013575407750794917069070503070163614863988000536021749382116182103317357340719405395284946200538643830598241017281401036240825672750620969223852858651139514903774754082240152667046419508760207879725126929193830540517512911946995705599645316435200298475110978050272199872428321123393804234773401334777452364855852177853855211309383542600963705504753340699935371027205802468636967460651596056462307424201337845236932377903857382222854096176856367614228032556313158502904732588739748774485393456882789204668391645272861282228804949871767739826991281923949929150201130403875501225256730467922151439963714757219062972893901318200802428613189524848255342621752587786598963031796945236228485670450711853423541788703272256891109791400151510785400600051564783464712526111458959189533820103309094492205267238545143188883798781527301954405919851186858534569453952246937943407284655992983729808028301206862258632274597184400366037262274876841156772173547085837363369713199149386030680491512016539229340504025890588854897077207239858121634216667721970351279823928198711624055024216845319090055133703542574565341793041834265900950544159600629275086130298189334863298781483666665487994822082782988982780239755867410928110552448433230256982561898114192752162084936970831942105305895165619417772821740137780643506984339779733617877831374590422634642942992343247860564187128076916757361833854199931950390353900356232871908205333108263153574842514730786862654477759133118188950915840545342032976045233679463600817022117944915020106203434541234997535055384002381853273759647005497539892424007837766451981726447446771550762961186262130039494420623711333785354664990877066405794944446697670399189627425570934293116239279687651664332870609651409145281992427452406827023957254569219251195613233649079281085454792388682151891373738551354835390196855758760441117372733673913216342948776502752695497871684489971376349600853707931821106534080040540871867494478815131248550702772746213730683266303555582624632067803443958325544967935075843393340159565697607781615063783596578490627265294664729259128559919542606408680696997201536974377944842767501315185719300335564354010855049615447405208994447693505181607882641708664251555330836285723293404853753623370577503214267739646212894649439402199552694459689722243638130008875382426130010409953089318019632396147487035448757573916946299373453468332725653759299497145250455197035808260925398881848048733907458817528929635553182957501534767509640217697295160772728355560932271673873884602497311297229784152015290763658650577519445726208102144484319868990781997794046967665380713100807189598562828724470293159467325574101053703135266040328578511157356654616977120149659031053917005244429955340422838652852796386330674916168219918635213206003602895903609853692782498536414414031329613058360278423974564151275483164170742500032548163684182636938712145073792760637394139911649601107825980514086463599693640311621466566649706271835795363935510683746246166914170061636472446933697930080992669244725473527030467106873289190940766128851986536745853435744364474512039232289703012304749132226702044058002712511160865494588863070959749113339314564970198658789901390248257397290041747364771218980853591449973301122610312415016319092945737783324947226538104526855837683335422457545666870302349354749654223693120334711619171700523630369412489833448085794572032551641469367938065739950012697344906750790345730519364573848644327862857332442289639438754252677658868297189441274001471276443452389515734093247858998932297847951239826767917014546826036915748489113746713521746385709099768689098219839463549972395656541065528059884668005873876317631925181215732554650414870512250090802476167362607832912817144125112617345363609531885218969453358378278171120257347848281855522941193736295568811823923972472804039658485140670413832516095602340940117037103047378132240499542682002932396778647921081009366923974657363218045710560842679244897189127791862826233304429415926661108644490732060561388502796949677322831685106643524047945300936112418610817558043845289742749295513952981192512501843118500098916573045417237522454528125874946120989454944404783357870026420041607169296672862922991482745131465252755361982088568436076982235136298864716639965711618197741905665909630025698728680531062335398832320794978957592454176637377323958212052174108255814214951583541908906167107817774147475352494781703832795763085774782887581723459027940984096356563914151583495814898280033152675641542534109122610289772543413744188916917931025163359678847287653462654795161645926495310103984727005391246950790316138028554693689985869147198956450226890568769153600640843053161667456939983703057898332108724958888604502375480211021746348089021416344043083744554125018451108465157716124788418345476345436721288151016234851905418576449521404570697707921152494527748021701816874489215345320668589169328446836204201907755579124466686786734458343035348180540136730228872479960249943827975148284288188520907350793743928771720188104544429829865141134180052159738517504282822554108746631845217423976470914832208265327547133231941144087858632191704773336354890751731529121247474125324100257918010927094490022238697404016791689606936333577383430682391387525735011714096345574258629316067392991456230418790711035921785170154776706476865960471098328595648083531897402922649140746990364009730937443952495932204193986408674487705993810079501667246474255222756217649042054423989839569128365535571869648060723812795937600567923090334807283603719453285599988071253801266545060969070029280223493806436747702117209287421405182041333510849542276037123423644140319062579473369017081056857919656742086482295109358097540486347111781667798114221626160367715636657837458864060972907575922036306862564381483850968357912813347921680202295686283883045559447302557679127402944637129515632942513853959820504106209188951089017884962103252762930384207638598292454916011145315390513275432948842434428531097730436670893285639497183900027007629068448250289711183351698359926087441196039818710685548250263287452739820086836715467557937177515902265611735223762541883290109880288410409665274229073856647776874175646243280581703540826472062096349478775147512873460905149131977336825810270162574548553336429470545682453812739184162290223752595697123605814636093601664791424381530280221207475934454872882448135361915558503989289671153863196054561315168062340019085193172770687635628598225321990037074838877673128278766098758925031209054868123744673522309351413653258317616440876860960715453655244228989555219903940598542986286193588755520061499270854174420366144687476420262097815103852833826830629128932213315139726370780985350405020600416243609784037199111053798458161588708724035194662724041788281900695771492508176569727591622549681527232237594013355876361602676595878026781944426037321287176472455252717505580387739081905992482417115529694440275888344667279227906498975261667871260830456437431687229629834048560621097276904469598488388152392086694505489146243156418906251416887408101624186876636890655646279185957792899304494278625233747443703612090540085023969344370919695434773676840550558227040415277958031255043340719059852171026389404663636644425385471378886616309527397330241011219394814821451182446034014382799949169842468521177164063442982340908858314895831166669940482892994106296719086306263632364336077402072512611756508848920534976533196702412865013204986290690860130646542045010332979381754213326021861974429861869700459613681508561773481859107858440457612789633675823199908068997022086196154013913592757227121248803527113578841717565163815047025474312752769166628153514106802089388444848919498048637504357076998945873251814278928860248725039338135418545227746527315399480402199754819337174103188149944379487618011509754599810088355143804549560309811405442871981137046067020211650871791579880143217129980279170896122837690252490899496097668644424738751914820218990954078268306173631982598546585631665253781991396535160167430130692245614262046577918574658230054380273112706436892723660003590283245730690749799278554600068526725231858633386309712512878779952405149612981680493966581572259234209112820577394192543601642693351227720932613738544442988204664002875445841234839364750648571190537923748654465363335432894055418618250578298675831459174111119005525812875563465120203543955846110095125643294964937287152058625365656454327067420941937174392097217031571997287236527584324512603821158290798563249385976526093237001699889493438041701804608392429926750602045181641178339408478015949943428522948163167479072099639969729285559345892553179308384803864475567799002195372448568441482957445772583137667115393444049985623644029930300606802178994143457294867357754538383239890034073954034588221887401978202216889083942041013183330394477552139315476552312002588856570324451078636800244938372893499532167455116278237669938444479190000849077175926854883880548132700527042997460467589692236377326494737603008070544158896402565269442465030295393869586165931814581409331260316568998913259179224829871040847494238651169640306287866647401053233590287424190310777827179571160725714484085568776708014275627941801930519686894611429241933693990425190056004284268412080685535494680288927265005471995329012353507309093434781612199082411597510945241263535713817127948374101074064563689927616176131819912422824277740167217748251911794546214686494861094231832497504600588434235055909992656888667981678358163774542158405781587735678027837010695449427471364369117866804681648415137010028194399351049781161030393908677779813753868335073968709080909418817623870367404636456330810848779193345219641610019124013994949057740923073813448550097843044003539829018519059806317771183958938301433030663652132729852671685606771006500162967335384428963051269654973335022544861720299812715189076389790878740875199614660498083859019613967302360832960528680592824090209289966419780363490863545706939957669857960246963990935962821518452153496992727493031911850219427897383220905888019850385687690420374498263446748070299091522849948695226837172203204497032497910301085330470510530929419860752396834510458056032200141616577865038122993410345767488755975401763518082094257659276483050686277297589243035962306795448115294291538069898908704692172196612568360189641340793772466379738414500858998810449665569388126268790313738646913836464185658981754479614020451119158820578773124380126746327897206241116911130174992748991412588390797897444089049526121847323436403185873122815665442746699914463158266612148071511074462457055891240791175822048608865257383118301535567720381845059640023186713814041007026391506761092983981809427546606620142013769800279505582511059533072454440520979707728212270975493822094488014039117193753290650304948533608475110401692431734820867150392089278397470995881551741325607111892106262290230254446097797265621008950560874667503299375230576107982877776444747423820573214178061188143910201425722400218551534542355109400420665009825081303246036127631768446301905437032614341586552682828333620128004862529376547609098756468919106366225416578813107122114375205877980767249021813515781822801965012087751544994614839521429797773126910214666009471997482687108511641725100195616933996720359939581871513562929283063339674580982235652093020006587252971184660787067326988530531546719600557050045795615805033947469014268952523743490789928370568136776562792098127370825436517819258588064290907577885378469746897594617758430459171484456747114232174839540977250634145075932610327302457722775474108956182860282208448590553982290784561618688016794388287809784036144234487671296586612947987480894847354079093091796605929186036122263658439067900736895662848483013134728294038530817231646333028861500319909498762085226064511023445293869816303492376941651527936653585098254780057645866843382500472392860560569107106850532766270238720611628587349099577658960593444799455574138361674622166923621389533028179163611511585941167436807762309020063959912419088926658173061453754042130991325150255643337926204495751951542368152313964759096881448384119781729496174300172138380366282904841440482716405823448798725880979764482256632310042362294672253259657969716959350787492992651221818578102240946368536711162715116912139248144461748860899659574810905670800282146087586100839094527938370188871352983401189171815481616953358483372615955881893636880354081657903075839306014525088453361707433091796839618928219394655450775941600984896122513917355172326358840429650714371962679349558191145133557994124786703963304078328743208522969237005847574773021543961240883291797860542115590109451834836415957580359126920465550485179403650006177467287549310619984247702713935959892411033247579963688189205551384489151904888262689802967440528624415397607871260189900803748850818724706075903655160345283254401861143479045767288504597107556166953150264886717394867910388832906817127516252527893027658685661153633539113757467224572932811121644352475861328150809015852866506033030526617766609063002135269790000817521688949260628856434490898407203616150663646306665294756442505862477585228742401405075017217898760004373427888603865650658825224577534009336723439830223585102097972470060806950836222848140367618629971641118999109511203659715436686174663294324593773232237643467048810430397809860756357355037812108586178641856211349261400380357856384258500351018967885339582886170762232288024236737563651027676864821561641079065707630700496998973479423278304042770876390966594527426460587287895291096101431143876519574812041434412982418797763233980971083085230607125046085048716941587571188580135810709766324451606308220670277168162925387966211614668939201755433559243786225081233759924932149849543603821668127620069035374181864756882155915129085431401931618484827724401367951548075805631307696677493165871215519746005334949932562440271164931220523192368478628066038011476715672547119420206531747777967140125350087663553227178504032097502240548254876390756171926091223862587500619936357375817839883563660265630329587522436149264277552439444563452326967045271230052455788883705424061560196093018251877686675570581073723754989999189501978801860496325417101506470545859972779198783449591835710305739395628810070048545584139420679483214749723652468091435518798422600249367116407678993786283018871663894752101032990106753156845915576185148139788499102654201545404272025162115305775675039604797652477427917558302373197493423347402971394456757776111755173389935810363406570517202661023038072038285252469440840231481854456276100136849026356912195462002524425153151695733814457210113705268821708724969133972299311115166737227010738099083178096740991889243446398768996737287231326912792617722441264198185945524931479480643864477918342401353838678774561305432765992332310492816522958973686778268027788955280616168360155542337947010791451869978628407654610360302123803993446901296501289493656177009092913362016992640987503252076103179077002900660601108935690802121585026567897040132350466686008183167312708113855585630378358672029002442306838454337375537919270626806904665562761172891930090126066776808788190988571058277417383353728676134605318951389857152185751246285603014332755222463345120773194978162566980196957027523804174531446920340594923568238657116532374638739501983144197001145633600634314253742265000844333393641761701876043829886053810436023292456041977186423548616195569818282071991950949246477006149176640960376609817501999951887466418589069150402348930642481576374645104359600617540779469075763701871866790241861912568936899897923590544817683516045136826357353520446994115584030381303726905620146884069364114024652483653060353685679052026982803593137566864948349882273095583782110045048291292511923773552332695016023595701341414324235910231501548564305107545321943597996721500749269324816314819405961672736670831957130510839224569955144463337381998876267766109264366396728224000737521469272107966256646156829274864369313645642749991757236047253100681575979995972798097244692803409204144257857408149548104968439135052520905628786674015414303343911852700688003076732643519695244150213461559184117064010934443302556616918775734968804523829055077667482653458759119369789320231737749123715596976327777547840177985385978652758987731482226316460926189876376964203478741714468692565027527925476090247710226543816599074723808445329832498554107204301963893300968146678792597371258108043339813984367563530943411002694787580934600465764926118400529571921833087091155859961200603090951744467879408095113878757446590834423051520243258426020789309663821306971008802330234778327041167775189295448446264527807709871549729012147251888328984534571178412022580379894531361349854079674846278183518120407889918083084198156914636732066427876775530618372330101450244321218580515498228368322834180132581156216432678140854028958197213012922468034496373624738213842825224956399302951400397493913284161218048276801949977805818459235659178640551500496053266514832318870302089631024237475514768490287723125335995018661372378481967785014126064786689311268990305941653706947269302210943499852019367394887255455752468848241808011450766289169871327615247004285057505504908191589586462697747016709039152036369158431775692261364210330180979347821896697971137613973075820499042883578123307688677669905493476886212560828669269934334646667673857299191329817115610760178857408549235338319375383361188592759301466199509290531231641530075003421609693786693199361456681538925216009348114097807526811909727342934009987279782217197967410205669484840017424489697732583620320974091818455135281827450436161427840873521843879733513029772250842590807406705555757373051353376775768808295420974767382951622695202205125107300826359747845305381157992831694813426008641322266103471059434348084334708837659646185168504909184124831619461112758865800331998042599500183339179870295343019343631244951487584173694489724217652710157239546131026198726168281135782036698309481176642420938772364432255588166826328230508870465869669910263023052885664927244323836356240633014687900592683942949121904219076786097915897193027913997968917852099981613977314738013194243844382136600716706800437408536323320706958381658070887396554404380320167180226107355707680324238915200190059401411489437065264271155277887784228257541175173249111197627063646711574974218772526851824649794973771677367041653181884684090588573427750977226424474497181271181337595833953230292872838384065234120367426531668689675672006750046906204256575985237957300169072515916320746678242135185881241869858503090654185521795158404255813473148234592994159557086099110907534020485150958535702455278733119146854976953402860076928624507270552543533034062647894424803816756968370721004890911198525030819699479758988088660854336164715763404523164661813007699249090587866312410558876354031411069257428433644348167833542995236852384198393889506141034272147602287915661889865646955013790895328932510783709951573682672743317402968118292576007696388441623208603964571924314593443729617327387129024352812183825360895005762760641796253695326374777842355056553718132686937555170322292025291133976078721255978878520838253309983292921145347495972515797003658865904206089833113726252107748339333885437422796786225859797808146614941389914880274522871501592689175162979375511072728348794502542902677552297552706776551610802340247170704500036626876476277107752848584180732523804750853841992436265304771044427422829844079516356334808800838170527992814310657401085801611863348401810472544499433180517639827208264575039038945802620616396808878980927516640829829119659827367194328224679413599277673458000958740757427657993196995187937589461289800132673624129928385680939604203500728517861523686653979749737460649246034455843701982779316549668442301636072264960394309792182652521819276240920295578003066672868798593826445818037426704179355834241026804715662009009793482324972054802869648801008140235337037534520993346657057623852785163752119733456411333528768836777677006071764219132322889431076625354317765270622071251559777334421757929699180734590757022216022665253135893272542081641849630266767958424879877390313404213411308088605720084562907309835846980495706797288821334374257857035815821044887134628891098980654307018983602046582511478237864032395131598985818567868568804261321827934630968694248395101672057639544231506150098146157238128294389568565119782117826574203061394844663801782237386300927293347359817648635151786491719410546791377052383266625104919092091098236194005416874131287798296372879557358481703170968075710927786404886185012656636893070661978780843608596446279276994037196423070168885023764344805122930920612036918241644618472419815582939468613352768841445712265938235580337087465916270376749062789240255251150786511947377038600141143042851392452680515586527836118411308095697277615238385790766632018901328676908834852451507585873847292709475297734443634575313141168260456684731026314750643664175482683434343649214119050624647236857539629212447378908556315011061046353686822784563936467435503446695856500704205207725423677807771557295499925906886459430574942384702214499702486317208933175512609591333240200658762858045589657894150338085451889899147604248583607506242037065386718042223943884490690092884605303691298010006715118531830420926164187254712483839694615825127195579422828768902233181604669552128274703276985728128464889830369206789194590938169561782225706076921045357170501425625980387815367727065605076679236488556816930146519659742129417302879633916854624098177644413735149379188315719385070892138289010166302025044898137151720095115879532816936893860977692529198635836172067759945643741042228082019702530569705176453550111713760699787444404395279142546231734400728281494885937889729715641882629561444333450271388522677561092547992373623518407594530738534232580526327306192793544202475481989665097779694273359152577051765846800752314615398075577969830450294128689859138322021207538775296887668507287746127384312537200244474085459983722657974403811867875219092478476516759899226342834315670272766356971993954206551048184760532465504829723224169416697710885779713027965641382306832279713161162837535782172246690129750159992631731221838592462178101915720305029199599072879879206022505576510480048350976294930100001504240210245393509727351184830392658496278848402662452017633397449539544936539273622448101160356282655285696833855140526175182725996546011726422117470768212096732153019268829652071952579843921584644917294100085683267709152669772575435892638130378291420377075091172559143914366174480720119341353918496908139547490948698240774515227890124542162075391111362638705108999093789634063636301466751012707441263012729588490725852461732447249911924023608121422073056585358254981682191777335527884291830950768012874040418830696975499710630028071995497418807554942000513984131315085397862440909778488176984172960831306304117969563274323931533905419872352743066818678158968286620855739039944528605656900957298759741110147448893699572199186462894092639265946983809229036032421724969794050610286609685785653658867178512995448111748102861828224725662285549664149482317342699297040572265826011929612499075401372744465166886960640200249628879485675577306998147568225531331793531488869079062339337021605074355830688988542981404278222809721244250453782483908017845386066967599043791780550352589860193419014994380280010440086760653991984647385295353128534299691144472111262030232873198389013718401749545142175908600749671344156744682308687961357553769333827241227683971479923743087980061988425708926126351641350429277973065010418007475532193760253794560905324231231763221399764087479396125746575407791453894081618806702267496866988650766306850241304953576707736710955940065362951644975763910028954650914488868708623805362429235301965733072039557960130123430996993928639053474628973219727213286347600141441601027625380512009622318190884579079628889594208341435750125122215939431264429497651209452897093416168986092837138800213774346064942372360775713418283413337613167070937516660046814430141573837608457620659113775654639956726968624726318998870630812658644233993563654816109094480647086705826943758920454548129955675648939673708792936475610179985640829204099683719631139314653251390054965362987973338103279183769424971702625179933755723751729923202400400071653553501518147385337593283185010053720879931320586001676099636699957365939136374471110764585170760833694907127279572098462302197278049196414579305772538785231108241875647433190059315254743043546067685876429488849535740005717638252254291448233950887109837739950539094465315025172136726149520293371347281492554705986162573250975141559165140148283361336073189753489003095376992574461334135361105547583347387726832035092435951265297014765056347275557322342969362716118744340949361087710804832916141232996810802798329161112402031581110998526704470232719826245223229595706198495211099491029318323741003249750161656046882269554118533137700374194281951506714000204636196570369661664155206011917145417827603469122407495666703117704064277309727543640779144934201493224705106826394401433865438029236184169705988425602650606576091465563819729895788264838398436642968981486853995706712806137035874615388406571350858940100668171012583098477850409123573050745450907568001951333501637590694716020562512785767482808492265273982306038563884216564223272217972482052391659070545520266226003500283589255530089977237492521997104914734764022997725386306343930400390067147344259008273172237405134213097371865182442579020660130479382940005922878395038297028533240654862310943893819914154877680834876086929411877527172130117068034863194649529132535752505742990788259807824681588364467111903154181789008347557758497879629647911488937997247197206742450541934055074984815693226007955197438086449141861231037529023653996171407988857173752296291950562702991796427275427368336494093179881982939273829623218132915439151278560329672444839156891573932486506164545549946598309955843504636342455590473149334923205180315910646515405948132857476739353844193502992037236451628206251558912715407465389120589615733424843623981951724316070010895985803838435133184313234394414644322831045969783387039605392847599230878400756438987279994931955106475951181686995333335406661463294803148681345883944105785351234646396543051172045105449164032906740630631008508427047780183832047858766512556458956570497045002008826509969534671040781820497995740406184781249541100441094969128314618844101426739685074424442116085496773812387170836252663049650174675986726466096488257701580039525972568741216260660564775926115487788396695009133370341359190363276191821276888088926098146730522547996216434224837901458324781132968457451944273984333723969816571907558272335611963718039484483808642264256149683166835076203453650571472436283529562947145180732166905408743740158735694429990956453141636295831718618827918019950752693869479276460947933988798240691661087540166529790924312764172403339641166391965797197232337601559393846018524586197021233679034555317080875196115284556924682060873486773026808483988772300205523752507080064703896305201874651540213030824836355256153922592794375637453931915376775530658826960336112074663257022402439166262244308077491628521096438851898969126368920244212215318499841735099754494793619024255742007892115674552046496253634696359869737396066013459913122250898536880340253951150558125085880805932390917970962518595987977821865986774233892035245864686599800466591373544126122775806242142362075466161446440286016656821004854070502325297899582230465511316006675729967541486118072501595650131514161678938124791664784491808882731165559800410430619630103816910647190236169321805502256627695723969374113806853580419780412470953239259296105784042117769302585342662635734479833031404150306509863941399638082123751675241824074152195275620939737433163213243275648239780991671792428849510094819577831550207959232435425890002664955426498744699133050636918500802334887334617163038615732937047648814456187974207133218367473590594650218163588154023598781721456993894693992136042191120250951486432268148972484171868456150136586980852741391863875959422017469362041360261557332253657984207489215544212708412934093195935825736642925355809961450007909607118702053754796036878618945514681122154432135590353748606579052366329990157136147470232564694749440478741490062684880087142261875928340913436027347116109178775762905541084081788691383015414552073443847286411978406672397178595360204041369186365595856111804682790074377786196781122585024443897363054384151977726437823946328666730205945129376834115172418243205863741802000864555678871572137550535797934797827154240629093696200536780886646168542066070260172828155442091419924769159049326878809348079679785756721547756032052556587911928409483103557890554095558150006381450678200846651093435650753312901321436483620871853442729077779194827024613490079673266276248987323680771255436220207994868770450589965475853509551776034041955916056420845000120597833049162424563728258304998984426425130544411266390708204091350494997987161362534615197345305114731167990401649552447604425043421981848790380891665373412181996776613061379135020837529071066579374871809141458772557999288186546579929979630724288022082359288045132729453839912588903558220644570670970109106634585562210680118801668560138351398908772127752761028250546298918963779380263521427300298402050634678989244128748823333205747949383114814629610509203529469994335706235410303058103595873384404245621013847072685788342207170776097160011902932147927895124488177957515166894683664639252131203100464347053972121780815260576496742123739314613892102532425544495199932904616031124070511451259681541790744242130507941215955070967801734843029394274359037271838629391946826329351902761498831266989691045080655195139913064161957399724024178177530853833028515988061447945770443718450306764874361148077767771418857604753967657280034739915085299352759193314511191434481558092993230014490543416460278156693205941526305115357768713729772301818103035104548626917535917135363194482529370881749582962720650427284399060551906957829076141354845316925956588016732401117683489498719621174234471095293511481957739789491554589381204693888134434423109405128224288410413078388991450020522327092575698303995935169679293327243844529846029344234056121531374120334811727370931849648317615316765207694607434838436184613154473937947040966617981091822558870674297830941499412661325783419788070302789768932521395839657482349584222042321692789461761429585478335956436789651604773130186276836172883298903220312892936303945835336604069873915665302405820863370047905419988870401999106466308574043716037099712032259834904011947323508608389403751905828332572861745534968199035995373270596780522141021850720287130089946138804152134345846285324690058081959355786036165893834072141244966937117150439984997649693915526584386558930507887325416539823223556537191350121141896206559654661118435915099133551885873635794639080882523947296166410958748478502991000303332210402437195556763338207925289050320676598015811555817028916765361488989520705421982195322905584378020881626099509881363108193251298717234332271002333338782034990829620595202192857229931151698169311156024386685151415619558934990304275986474516428611295490676496875625842629089053599190691091327094527414282936474187122694080130163915762883612735361738639918632630609620423431317794650440303240730641807407116644086064250071607688566285732210582065663387932318172230729222467126482489565168727602303783148822773875912033941126554377279628241703242707982888380141386320503441416524206679971241533525579928835976830657040350849940230912119567756196855553278498614160191420852553574802606558247965059983372938971888601280103438663276839072350548602192673826483233908716289116269304564059143407849937333779428641375360265040252196972777409430567388342273887803961640107029027388589879181695025966196645081853290340818090670181837191489698343500922945494284673088852475413001736802306915202362074614064405413187052970208877959604733695785359248449466355197829435950667840543062342034090282452547291043776464425355214232711472632484576015394841142629717931750229640825563414950991600357266437423998893317250459223025537490444470894556349264941788351481110339748326885407050719061758344091558513665333330741565329934255978850260449876642262033007679613271631570740873044342403057116939407532044032005852321298695903835388603920705562053245419740943769604928300069268960661412774056782000596559924424629035210860886339033802376074653452095325460407342948680287313691922510847695890448553075999156151237885906527211742640811757475232437100686713871899514826154278380091522366328764721304720027094916424517731125342334153824794198626817996022861302455917439049601366263479430122097985799143095674089493882042638722705211792540727773168651492218486666486496144531525954899232554994268251984957946547949461876620547210215362942068342516572951128661085656613383176536272991054142598277915351754024848835190517150270245526905715795829917472648901801662594821525226936183331686868533322635149305243449466954313533167560525854298924581002279685561282238002027174803683437236486609631871024830916721594297815905936426114471515751708633214277909008758873490145412358327837025565352420252535740989126855187938175814085903985959154216801990057789271002387560505950219563626092925152290491165771963665148768492460212147541442181260944325762537098155074544086299551221984249566471528523799454237337282053880336191529319319723426775049125571682732342079860572235370450844432401449262338286500186286438445174295954281185057585913463246570683063515806104409340807511739015616899139079824514428197332728806116367643943069662826538472892572337242772405753673406662528126844411099330700557667521316588977981895772458138920541437432274239394263256307403389016338400843628289406212125497245947898484470675736928607934062378450537506168102005116095983918607693942268386080544103975647884129909244216907600444674697442759259136456255923841911562402096668228018468090603978854526951426332240666778955577412803986936067533298111072296988212400519280567807277814423252554918519149297674959485811939044171107670650357485705503261398537921145030698802663474143293855163082019267805143894681781832475144963117727661189727317715705560017285118081418398280429918934705914681842156296132416206224806753904873753713891789649083606016948911729101546771566628640556253264015494225739843362855852428141796366212235433156888704519344911668180524579397867879055945305548723520205731006999428868971949329820117009106625036529726198504415670333196885259723479932586801894481490919164402505031614896829413184878845768729620085609735550853202201276679470990900226301427319604363093000679169317308028887876133358948749843281603180153155488977060499962133924118276565851709332063244991857199856136403933622513831068003989077893338446268488000451408045688275979743772692095717520769850939795557663784114065903615517428879864424724302580524586871117562459777285270861231913227366763131406300864710383924624492878737239163407499953785774631448266825731448615408470754977700119013380704152617978266336732044596112485653015837571920852120338011868564785679087777603635551793606223858539343433254477325493640218821861461956451802880088853551770580489805875968120682266163984578963299064798950028414845486406772264284897275394533728015517929786359244979389444064915136683162326136867071715795983880124839069412887118489137588683705812135173142391888287208183604500467779316926697934521973641219747849111172668344189953115613161484357269795253935575464451132093122764513172990869749480928772631182786589098170960687651442113453343035879461586163056065354932359537504756898968954219382134931575881912609266052602975537941871355987980901416597467089847834115421007125377697105974073650706227357514400880893040732356204245043498950206559083993450333077636844467937256257443818054377579314070453508722615283808162347747116625675940664415899523895390427066232262760797283767506636886130949516480786543610640238432817246844626243684501351733291609731320474163229948744817756247355075065717280040387260575290167534404483416697360229807442707388925384685839245524852398814953625278727896732432988734747832794287374817385934294068749374220563828153177109286146962487444989576612786125948886358168542137071302525675371277241727844376737192427930939984826809509570133562862336630502926334006792962802406443948425613189973295625259948415139010081352075889956087665482378034818514950117458353612518838035048339042236490775506640947062874611208445140077161771005498844353472723185264146886867786538797770083161587215598649895080113758522099189497046713237719815222633578754413963355668817719960366092660770223749737848037314661736422084187735689492034313642862177034855370544608450532296298013619091172704704506552035316742972858823102312395411170972371683046859736567954199606278973751352808615174200316372970692104806901269240522711041820539476829744390772785997395426842552128645059341282933797174050590927136682078118906481898568272290667964736688282818434704032584956316870883389487966459348080743297712224971491711227072141741507630338931104482388565620760158831173532271188667202444570907473575802569296163763142538104158552335759345143822945249912538823239180139816926883846419243020481366111828930316805534558535694918112839014969751076528238500859891468564686288643850931748140239525978222862306250488595364399081614599779793296774286106206263265534369167078026895003950429711900615667512767678443185423168906217192123391464915352033927062725465129451401264032517016134460919540503104683358721109920449084543692388117136742052600163291663554639512232031974330861836445234147661858873452292814936052452588403496761697798628247197968756376383015166660275320042039170292139926191149379992362219570404389565639977994894900073175070462625492843570239282809284099329782401610138903850784390384158929984100053992125737112312671648628726422791721666625892834803813565411357425706064288405321641636403288555800725604620845378042905492389238002707688528939344003397789933897158648770467015335378538535540772061016058698552761710637319451077403473743166694776237306726009474739025803703141066058580855888860920314356563885777074298736947591659010561517851684621722815834778018504558105753685003510522148831780396780416511759523088783812605943757370364525982813851840119484796714192706447190500507486367744279471618299897603496656851304732905936105940442756575622464844976687222943324845865929260105488962069791951344601425542315646787308568567220599337810572631985256414220609223260849297803888057713242245178449009875250421237988734764026857379702615694449408304994785481760712046899965968117069837819785481045368084158984699564550188186349097384867009645075184391471244546253498291349045827249068821292967102104543199790094696586858000538191756198280125247652098127080499285306101453061060484920108977796892922080716296359415496968636154066824598147533924563843782319783655005177357140921100489953726594215150813842012026975468213136129960267832395402429007829510325862787412836200971880959332527682738713451580238637490222042921207248945106362725149879986843611483415291409085671819542057688415943439590535901584080400908708633503598133859761328552424261092007137559456355883138497532708391771172618262240068922006359841053144193968849756100995226450177969487017448314126135236761648840930564619858718091233753423108050600205295877366457716790776988809659000537617406754176063241950924746202761534884916624589572268942017074996854125136390897463193088075828339083031808782217156785613491517821834624617316246989494405992497159674628458934823171822802007583395938305014713940930695200889686355734841353608615625772088561581175233601257262377055093319574583983353697126333293531028448334245131832096943552060579292761959960238510994862872843565498523216916786195291140727794274319504939175120510548694203723602621192944413639544332414235089861200187513542419144547688678284089292804112484427434799311392164027209930011291842733625586588713470331503619819337209140623237293358058926420071671095908882504179962470091155041577084370628612850636137065748909088523350683586585101148041167615497089548433343618496102127408929375865924927637589636503747440688411089337053940556643118445242178794166247199892673690816712701113602357663958090050957691438656379092392609679015964102665261296630649807056543679932026279572787113253142404306122423089473318400062034756153456379469452870695578153754874187964259287645168111577422888522414735968956861724881490206938977636961011985547311273628183355563383750311474493491830349795700887599766149711391422407716292974498496069595656430753907770377577239309905223797862831847831566942665040330737364970509832820017565579391333906727722187098988699643921556748004058639605184769821491404648736541867530184744177533802913841495023083685738291925559196824447555263325506001433093245879100124099541356919434053937250356539184208718573748265242539801754403808912860477015522163120764064612336389025240711490314359171834123747003318133197114624670441116661219511160962878941683534110647747755618415609340414812941013240983504856902989059784905521032299291378521873783690642669616815209566368866760802272352388304952245028736894487635367471351461293988115626112675881455206506953037543194765037435090110797364444764695353861639577409061096982841455076535169964131227075059824623294237506301599874259814707575601207326993081463300775987630850358496842685492394741806666011653477056352842524950614825158355961403644395702758888603768802258911416940503588675967178109020302254296307511320746897362042581172429802786537995383905830107399136151205356262440190119929603038315651720493133601247179377640824528462314073816513061320116603966202445882091937208696249628961379485860657214966187296781405455640941199618495487339271920630727288824896188734805399221279414652158540212950939140014423821939601310819900064751355150452877750162267236886947252830304089260963510717771760079566630361665440458087730881800574764420872860117473021238519313642079204319522475046965863082416539678025188885240666612863555181094132179882767424558475083584555785305778048571091701485327617511993350675037207183214443066213823529652502769288605631666378978887015731042585485762089284465011760066308553729258560036961313699472151035332825663169939743091791912597287220974127884534454634925482046036094678143664283485738994397791586404960659538667449836049187188345852771597404596558580542514181987645163950721854709627615481310634228072340784365749040944952321991887845317805071681220300371327528986807535418358217017094596129225339457948983290116487238565678087086870667674754105191898636206304446694000129442775197455060155183765280895887848555361687377081733092248592562374488381293568549144773192716194385972521867851581989906760291507537901599568814683688001761012451045901519776499553254535539482214887909948551954062982835389952903024209935268707078445271139975951377551078793567514079694344273951654667087772143508286745077046899285396842054284059788869262722035493140303407542689515086085333140305601953250057814393026945094546012664109765874037576129585982285329177661368777980347706068762301123710978234662309083593069374499954373496205226406118227445141857687119016115994200758600141406855244131906702862485855093405653665241838209667613140772671994413702734589278593165219388416451381283209820603330721244759548505751660005563006330721077024697120616675773390434457854864487323552823332211032732166529534440235625815560322148740429074326364290214085087327840014139958454027897003398695711904191630138057776033848330119716351494916419740561253640375648181064636428013315002487642138237171619260773904288830103446528690609598075031850275093408265074864039126627132391367884083563519556397420265197813377416255328777992291698640821404005328881022839669220211982962386945800638326057240935997102334610996973579047049664749404085677188159787640999274504258871026142178531933115186815430463054525264590693796521543823849857076835417786514156953122092520791726669727695084432611934963463851904414261019201712022106920126284057944691631822716278251339003060605022953539285579765150710715115511041645052748933814468552674992236961742714137958040553741284825370942318563328007787779255934315928093868769913331459611591394899068335788797259645949845353789201627848040506562887345025983622392523283643923274992323018562006623552206100307704512863655808109719395556406396123056086809278293569042763038324756433166044513609767731984024737598949529517280520207521154664151878502836020648054222304306977174250962210693595221282534689696450049212479066130308274938073779870663094892861542868589795610186040595763708757650006074924864198438096864120194351760174512207575833169056864792996818785686319463378554034394683103245070637056540946051413311639096109467498897772551745820285096960342984747548243810058640512870799404385623288020873132144475386142206184239026789212158424545773498416932407580032062061634077957625296400061279124583481731949390241369732448251766863359971644631997987220498847403535490512267917950088095795432871539832841429603773028087550778017211056195382942170073560703479449618175960103999612910793029410660341588328135909376718975544078697700282225860207744837194237621194901448287234386946758718393327186116778677073560320084933166887291168400541752587178822134101010236282796096694204313296943053812862944256073828469838442409594496344298105343884074237850291024607677622792837416162627064727165137330117067859203835313403668057180695494673257932140442690911477453284015230196838206203976091662741690026563923432346513672035214558741185915438377894373532682776817603402478362616667963817123410095504770848611550404589008281869953126422400242640050239630731153129259603508018497536424885761065838030488375476148156405981182546974123073126969638097813315687011413317540140498776219164911886246113390194171875619167860556169731693522102704163204356157683080210226709207386690744557620096475044871640916916872290200220779495802062814042105344574414748169116471423916407724466253293211414370086804147336137871011382516738539841439596111320564174432405020938270794397386982301202500359721319292608444298229381635899979196736054643282675797753152266875092172665502086486484701968244960441162222042869184651464323484110764002171531647619927524910462310790319871295826747753471319105491465896875736694150375315961693199633146951050091412172494135800142516494593502444277660034082598248816709947667720817190884823734752259029728653662556845969796980827188336740557452688117800070688496542042453709824876457181733302832789609477525562585149160562535634194059941472107595968187373332054370390834812531054606013151120451317801936375194842220532125913780574418110185941836268369694330624064782096152335516899016274470018850356194839002055385935756618983407601891329710503619685481178848354565260060968363833971124260898435370741113715990770487272967130329401654139701358713650350734421666453213417971790512925473413071307328382808142933235893363453307818315461460797046352840120095810122177214115372712925380968836490430144583975763821143692234094741837552049668047193845580992269216107212611887880604221059577659988498848682782044911724431573981403951961536955773033055879944412622007512636317136894022449455816700317646105777633251450245400794320213348039703106800439584475257656288753796672341988834101997186713050757678035425788158634804711987196944571662142503091206345880275249936407428886451989630685927578268147225441165870807742104546851935457920144380305034650507580745180764868379107286092975292627020405157639185302339786866148956242234938819550120810275813232036485385039013536880893352681686598230480453707019533570826538847649062758126441370520803871972151013835168167455276141045107872046310102695770196558396222374776881621352353695983436524300728249701573268480650615756002466386085613979960268345867117845619240290969959634502404635735632762599643017623886203584719443580583077236229474009877180387983206092707969740438950576456047993310247155554888678072543141912409905327224705171259938867931522139472924255843865745527975737087630017629421502581283051943067895092014153160756970869435998232676812030893167288066179754615207045585273235326063308019024880103040374422598653161652295561341619375155782032252337750755646106785287307930751535923723672842406462093237773372150943080032170860553697120946550965155572267244162746534848753877066681532370918117661973672327583607908216177609832999036862923586107115254535209063160754019040153666724747208914192696628501579963552453222787908542468827063326282262197252715998239950325770274253047754739687938400654114727981506447243533485332977788315978309672595645499013311223335628245779893558861272751007465525960515306554057173429385720008082441377394895197857992269856442146358660291840396584778001071823404474189866814357993012712822506961397062287818578060436036360507206142519403233795917362658362368447002510275505470224079325673213284106260286138550889449369818112474615998029786404264639860720782766864841200937260348895790343112137587723467431829064451583323167619779072645391387875100482577483239445896038839221867755945535793246666168183030866046724545161210007693406834292763922097083370797704845613518923460490818019896537762756178886098711939936837525517890597291751785432650850036413819248259536563144149131353755953252064390857661581768347008396936220106800705553057517876218381403671301859997923922105985435472407933058549411056788736982750947987358593310597117310075089854677547197556377124016616726527804889913971314984098704958276923426814454572336159494628892242109566595669824945390899019666900391210096626265448361516994705904128103430955276297444298721699662218530065774749158642090839279185414705618990027933111698578390295938357098184524254085202197575888205768902043332926468611400977381440067731496197672448113675711168564662316689517419550612224152547784498629939995809765399902764294372277562439053625060962177150643455093574022233748638005096726367753056637429002878560325688341672090182845250864202908932349313127990363786617160231836550942944048513817975403377663304421239758129687753817525800019461029307799550328145405864174076561695326463606467027112364993242680805301590861325082251411748992487673399017265067195914088614803488307024294333016586993546811783838734895987923702660759501397475643841365692069520741435535157171464308045993625111019772837442575923648676584579480981755409040691578358339256593918888866922949994082874661416142567517699703415805717176691754824631799051994069562215789612330116326223597482688161341730766186290488497130174884404774181188507886683472125435996174251817282689670239880630496334677420416999060122691844998627569735899839884748980457394420103287468832129590781502705191024178782223628382276974643490288540051268814689604431452620465914180760048331600069641015470982554508537310616149420290028153320727256716764220071364855564371892345816565566978567088944376293701961147515235244739411940680118268621619636001529913870807570004325377139285895234695439553261559490419098462116970698189243446435424458862020639743725968268469932843232126760662441036500461639618136569988251881451456228729253338154849368533678136243781820237177681199250488729442640708164455237180808215496151292818392576249820563728784980502729569630152689103509323626197738104430060058615892617624659319042730248432582364288143231481577245504231660579279359863990738673741450553150150216727419242945192620273224780968264029451661790149017507682205182203029964181050486929996095101378033455802453775784556982067399875706956810016432738046350844479169948328921615883388177568404777995628343100826450051631226723319099768241919835027671404625138408006814696611884318839507593774595682395591771964241853644868422254705296254234997980724792819323716233734020860799885341261324815469101737758386675540258510549528195329806446628410374558896706239801643891318510065769366786352343277623408753944093415906166695579251759141532936525087553688622778365823974657851363026854984797121995907292773492725887065666300134716124803819525082448090666482721088085889244865995396726238291345964935477975537522293833360167655338243388629256361945875839018913731572440658604658316357741469355502702744215421996667611580375853635281882716794769379572789901173836277129693685253591145985006163823849326920998645486160798607105035421188409145013828194467181908302791815689439199918274596241003909739468311694379729920326820650086785338351247563700074204496630072172801269977901114898327627497841918491815066308889983081668707513354873049308932885641013251386611327216418430326267549757611690982915762581265319124796357230403233069807728750910003909682003207749224733740032211607622244572520307198176994289801385017050403112030495980822928362459701134044972821783893119026098133838325654253368384179960971811183281943808923149023707848810746782970768667768235029544229412903023430625968982171247910761406518862032252748518544732793864660750886050037531907760962980844859615447089437319785841822001496635211308996938982850893327865602840436896173753727382229070694275924974984501302717777169471813815495231493061978821665270698117091192530275636953755696322258127704288846254748087842260895712623539039225701927559462195880807656189181578875577180978323921562401327243236598280158344195253213389424796175572746223820432117487322324193059998177722931353442137560265716425721333617193232602715191503781625698685439327624687948371319030987598728057117570716340323661925449366608460597909791541760188985532633512638782071195230758301778682875550642167262070878858237748805781870551274243703365382995057661161240731922223286922864020371674092263058478188277666685315128684977609743999039821529124836188465580456004982148463198310242766053397188532803035699792736112215333563086084489320666729852890082358457895923165815835196096544113031617894048270978388032824581276362282839132652915215002375171843211214943159979832913212652705072765102562753617255038432219118205142345633338646525156120599548563568064537048934818566144346506901862170925340416017415279309801175922231484084005770338809533465697983030404658168425275902945268212241196899969562227594927559157217881019367568078962055996971333906995836573054934484753460883586500573157726798477389777271983292270163935368123254742103675482196779005206196226463326475785551212713464557719290898270228462026735316025132832258560147063779211393201831058902484763495873265803871403830086217721922507727904514187988301248425634346670782424944387906880989446565396159468478742609173834415449400772102742144447539821500535723518285605498048677771086668763627815222908732558095056841727914721296411744000465194129161139194190452846297245121964432050884727288966481784005199834236198545911464345701684098457618866049273697716094339205194830109605413661578794579257180628259476296618092132626751421756118712640741107697341518751430059618369464019147486462487187000617406612521833486995755616130586972070120480274745902081107322877281275340735878614760645618353018551589140541333779333486826768675796623332728991331970213336231092683670854178739852829787148492836724073240818696803140419335935294993375975585068010303555289390773621004633991146318705503815635020312002235032883933162881687472519727813009609215392212939920092304487873275087050889259801218562065471031142917257933765291211826124769667073911349699786523968574851573591222501262441249448603868566892010052283487107798630627536789066568490402070353694623729968071815791234519936798932489827768490098692247304536056964336586656609378836950475265103129918507703381608818256625735678576723016406484218359919904403991656227351420414259947794853027689171504278566599170785914858230900859229391994735791238139688646631615751847044231236967972045805401067769821791200283730255454146659424732301894923613329813776250300817595581165605649148547301380488293374327340102655720287568217443299054930317862165254380703643909050380321868688677856164495288458704367403253625996059178129633340162536156933245448579684537079848731226118150754896834085262163078351711848798725641405943328593384679752061257965755483968504642610163642524977023623981790577937185933467806254117017318322690055476555989386687159879545118811164366431843297658866923015187012502748713811714192376194337017473883648408282423351486192404140557531935835272760682266031428095896444159883034017837839327550439295916956456334578549082992045290885698011155323417369834790735258016723220357697866903966035892677754779656295559616807680909874321886666841447726209070923919735091487460587195308489581672325169574873466166029293866252049301622748637557740053654579374372915898874492829701196705850681162505506807827874135846846538444189974431227760642269867935721847729985924798876538991579467297558455464886966019977890603283893174761818109211559843119300047820887501191230675876610531337020513594970350135439574592016031370238427622962043507897855569702817047631254227637773013652508843691616884647048578759284004005928207265619807453104633317105717850915424902193444566164595971005844216857446718263937711315819567467505752820417196498830051756147991910221679640487801706565494211773074532992603833644424486402044418599197068523442390693969403794379290000210142903241278015088257378184438393059886983585457822889581201817783145684474926476907553238192952390946021962259496033159339980077139505769420308176984411584856064950959528378515534807014352309944916722412287834754043570089486036016148053229756542292302176298130942498437173720375989632621595556992230859974814691132123135142872334138040580976360987537124369133189918148377448761319967681514266362168793185390874727280457871630817913764073720980129182148337992047591165414703021724526152490623681680275189892793534858537233022809978333159179286419569754160668060499344361583438634704943248971873948020628032313899519725242895563363859603813871028718031864807099213211348631373894267954728593418836972115204340433589801973730100527836576499236513338808576832732844757148459527698666178165778611983662423506591708044434017338613274720094188246792021879238278687850116654400793383189164143370493935379071991928011510794547386310805762978243428448295401509231866696820351881816255659297483218817323254569827066446464143547911531155374314896912617835760327496577669480817954488243293781002904081856970927244381644820995181635152778640253240179777933207680222015861421690702784161095581343691484426220382480925888451651949785831196741788884780822583627330099608767390684467584017767238679883713511029677566502069608402188590478453028424799794536187579433138200506895898215162856323453019305778362308867802317352820544563697322394426711490796673061655883886793274462121467294797414575164961478593232022319465155842114504753821178302721972027471461710169657582860749869795100116249850292464511926866919639344368653068343508289579659616030200937557880876224963743352239545904595323473455170438588320397077184703114200496470918097090180026784434949777050859195423967389772713500923157343260160794358846025109174138705729026376739396990147396919283095465109774621671728211993247263753471736066779985950367188967384448452614518113419557827190663070796536692457153795152675754911003300139536735697367527167623238171110922865420426934577729119022337459896739013201596650685559862275442232019343151114985820821400722048962722871670258976667850408034185822898857149161221783070428930993549215561751025005649255340811058026142277993751430278879079610709333214299932140596091762669504869175082936515883002191827399350345019291417973233272171419642623595088916807041398899864597474689359830693961224949559278762063048947833900306530565029457729304427369087168818134694912519024361302149291924624138987290483428564201952074490037449620120177881361598431177239373267522507556475125793340170867513682858393511983906989899625603566366348027263469965139958619202134179478312658583266751488237138344172948553064671185476270068084720209774430898980975486986906530223360047922139366194800100844907515099754866155109277025012656995806796494438636636499923283096613925766324429723059613115841986148571132641480338552292288500218782586104083519148852696647073308419161634544919183014586844033717376342381215926859767068916391839743534338891391295627549047964355459509029514138307236052723003905546249119512590816272560487369433841700365305775822938446253842673100153403257942230984983039682725060620801381654873488298775674452580302163565770634812001576248247624936455680510089108518644188027416420525574862965735191402224113973061052494727139728989977468357627688266243715985751333202665057705427793008069331855685624751659370961591499749690577564172749771395951340076658499005354095844425905681073416757321031245343687096631601441082274092221405413103753818098144277729127085700038728000091921615893740584283409635413461687763209656540784023019269774722018422935379237071862480866243182522239462084871664147585999484329426857833226590961275440636169458908069400558822975667044221886511086985305848655877134746846916357209398244959484194418539517250615806629783667295443218776715768488619961456541432706999142104849976137734820596473837364412950507428826464338521819253084199669585355313351281121774591850985943815342405998008239288078429254960802312985086412959916681086160319782461526493944347154264157499440333144623587055615024723570304326790341683509248305636309598497119221720312416345442240480451719940428589983090807145150631680133402340844950611060652232820495241241108836280590702632431779675438736993615164114016127710914321553116986364721420864927307286005829172235313067457876419494821667895984233543519245735484025654386918808235390173178003325392238902468697934219278126225527949816489519126021501333285683319984791978560320865846943158077783813972039333845464068048135601049722327268578009545983526262012476423947532755191674078988289028647185047949751049571040126475841024038679361180159148054962074512870531475022059582718027951481536369101961079081821583343952811403931701244348771113710408443223731528775708107958169864463942491833996314965184446798131402833825565491182403087989483955249468066270767274205867553405987936561026525547777284069399152342111027895938353467415026687018395846738617391800469126838680029577362161618506083382240322873990761796241465414966700007550422840707600732273638899201303885930369666739397856808849276229920884967956353108039671053528870765315888629635986498983067872989780369165764414839226542330132749081353320878721539886408866787945283745549564867224918708311844214703889137534621463164177238355203275217177664886488937632090395096362691441754491925353803619248464871632557737973014450211240250608418568428017510386762847396487843868704314501204233623501330483516785196214483210221714100608421687618613275496175267607126081581737922268752512440608426057147711712150723778657809699684743340982598893841081866596605075616120978923564048396975561394130667714717791942653865115390491320836513971108617423148751896422161406766332864459796056562394807387703921846432845810788190600744550238901468264147379580910623400090512934235927137186521185550238557110373815754476762144472518493646249959470204498219579570948078927857395511579190352219816039880300311426915287834281188591042584043427737372337738531988036312215182490436617868644103863634067200915259089598028816929691965506974955814016403360164915188087998504747904359413212240765290875679491707328899652344493902009753322168753881856788634051429756613746439209610696505819188197634820794386452687319099929270183397774608734826219139138155890407498087804390264536829850455285073656879362527074314470708131450391186441792475755810695716376926005461757883073992594686782970746962590057818495717805860253671598490793251157425919074617759605658453910011836864503627005203877962296493762051453072425920911410230975967289258190144642994857762026173310279254196466855259263572244444483878992142773836708158481735997128038293785363381063298224312366264820732354290609658829661035800293339573272566068543424457609063407062817962512323522440140716309865188283539005566457172344239793958815673357578198086499082291078117989418823273325632139312043878306784789749432400374534223830927357399953603644973114831841619769219466408518536174122035072896168627103940677892175382966246915187668729020090918663927617414899471342603154951117519245304707721813753832115882201194951812735974269114047543085275372555902915510484677372126039221059253938439634479449616308472324721859371405190373289620629997315462046761693369451249455150794124462988262125420084420973379562068513136739127824597971320359078104942386288155627166554391541495762873599166131086786461995276929537730509938525337437927008520757306197802046990690806387392542931539423116311960941970630069322389829024613099232137910032476658219270272373726393372854576568478255521352198956351051048723181849490763772909958806020986439182668938791109407386388724371863847982478337983486880075601271823930282607207265835843403313708543221421299191910688167521810362105413543936212293872524180750678994920972421327352606668311264450693501735624036865433405325887483094215378317678222939562258805136802144400366798947185666395932256602001714794494646974939293224971471626576801094353570268577015727798554436817439532464693355558825975740359489635156648409734817785484693069059363956679757396473710008658717292886840493088805670323239342579414381990170458651324146764904341002154406351678295237465808444119792710889013397374951906509965595617772560424306310198468627392121287271188509253278855887886183098075302854161165363269271209425451349892541575587670081029665297725917770418840281092282949999084043595477345444490646266035472671546094243503770620024255673817581221848773113758370756352708771214816887303980818563339320729665568989518115194584800290515004159463225531704709476255828749071643401950423120499194246286426471148398592848071818568099916340411358313988216035256281661866082734113454558769896992568205665199899127643712036760831769048840233154119207289742757351996095347994254647986792095286427502745347869021701018146564078402548353325642410826066304606008964236037400862029821326813388292325198263388271380134018146354072193300726972670700068638709959738192458864175444262897765410836849400028099927967422227708344006847566465426964112008378291755969690068771878634672965614131343247909352738455479453225661288549875706858700889628975420902553160795421311094218830876137999596383156305987605185991934169387814639935122949211945758355749120975346831841267816119446166194154008221068535533696623030957621192232639454824493055909832052649141937392150319865881820339506701175561398634809215329419101403731287738032662481765999620859985505579728445396947681528283494431428346690652613991333485568200924149996543713604768139650574712356063612627932130422023404712361920319424340992506337163205314693203538460619159038418658836882738830628931464483166789449818039217865595881108882298680265733569511673873348397071780513967683428946255233605335276872437727457130407149127565935609866241416231450315044997817738756392655062811986426723585402591022706270627387031190257273873629533171165807900305591111183986280584908536672619605731244651024800980454408533408126335698337309906954064879207222536887502983477945919580458375578418291677527840035325392518860184836959779712967321179839049321002404497121945225674252303071501425529380640034021838533941847222368094511507479329738750335347247087628850423074459638449242543837748226106574330193144790265320062269927122891825160071160963254528697981656170462098241777953631931966450028384589108341168685558333135076369814805765709998783764099145824230618678365981476280855775808249917732283586265555069593716997459327288339220984052623499607353142104001801819575132325625917877296954188558033473990918388012105410789452245110514452419111803722614950795944659099593945310304844002788135788749892992955934689074952662095461544683615843855864634266316222400126921667123381287463261637014739302787954375512650330497475950718630819006153796206391418611169693679646255324477044581825677941227717648340544196155815253774069996822310670067623561145372181928205115029906714390293999255950048936737900581843289290784502925638690760276004336268941194373473886526367529225850348383087234244259718269840886675310611270807692623259266044894817404958651998724756423493992350383135742615216053252732705462941731043389186541422788599909824490528602028497636990856306896554742831259164902665815763607472035587198646523168886926862319896917817992067456288308565395591145694566190706719289751938263330681363494638565156363532203939740481948966183815391529834512891736754006678445406226974660344720534203443445718862337199550624552466023892042817215531828879664765593425711594580558761934253859374259458376115737495774470222652838434198568851202143507621591699356459049924610767002505494604357225121940496148826002612877794372617227243411955177111157179404192629529561957563294904051979803103984484201124932254546178907462122793078536783804919761743993457825901145537535128110935927351079525851947702533804431580598106373233579709556833075195823491915644304004278375790331380503567376087732415423565887644053595570764373742156695764610942821903909609429641778741508745402197508667101346620362019225724627398929134542081724743570703804160813397526700824621257504422864648347788410001083677380583237794704622895001182249367486566250412381736724538523355621097905765354476550137737294341647607315190137143334881908705457097563384005601020561698770652914763273959644508098888189485400498494444272403101392797883366397754030758953014882800558378412233417839587875477481608658525655715520756971897589895694857631859034102955888983114758325319438827560372142280167876273394035476832124338305472565051828524371566466789827411411664734417617291766187255906087204572334704598365396110059236067881520892146881115717027397952023321761520445205180599026449775801931792518970998774426740525511435988604114365474158170652655272676129848328606304339943202642441643593424367983639032088079818985658503184656719087876295548302262606730762658214648874098447217060414099712574614310336031808282073425733886678529050346067511052218832427037396385785227716037324551437334074131711315687478161158258563446491096613655459882761562708549215897393973658134177830868892506460816234673550172925373114603127594621274561064800526899107908170172161991811063618178948249194671651838595516528956069636916952266955415319547096235853338449707733555297316634549990526140173068514455492897683600142826353283877465359372879410810858602269576582256219572763894059465666117693590010614255562106901639585810533959426811666835193048203337864921425735146203604412079172636933708987484826858091965997526410460797299115823541944656158186423642542781068486532881020983529296143032397085569542779357554365719722968926422941953114959067961920086669867613517268412823107583878431745562657114557881977345702200348956288475253268539993080589719919853154931926567888677387051232352738034532819042347695706746240712735613886391344907499750931478705557805497120359111402929062395613318097193771445296195878408304161304754791255818810108557092714265177259488926204733324075930082113422707660849951909661836833145114107322994350505545888146338846581347964385514738341106968596852170789880044176518773113821388475487007798435257121289802818149839089154986698307741410050107294408194217746459557356898805304872080422042909355766512505315627261888121732464152259714890276024017810053261887902741569036165186555117027406486763937444342301269503129737080294560091860428868618713512295994040663138671536523375300634728575628155213749518073570554486529506322266181668532683872018082286087403213425094874243305375973683751786936239891347891350635814601445416410003093411109917334704025951763421894556148976272042666270287970993402086315533204093972015541237275212027453314602854576224206016848473266131768593989721392613614757985080802261836470337461746895514135610582013308456981073546262952392296246242422606079432990300988213715024323760385480295559035325898857534290158150820820812449894227497267836079571393289825029998630053991278227955529346631671381164009144515451336522484482746527481358833860367553237016794610297677796597635563362934556222144056953021188499808602824274213113753141107616952294022642871756930865941902929570095218838345642908871095721310277170405407332741524895774378639036293282490461222830211034630664418145747613583719412492940171658644982390338524719059180026642325687847417817675232582087075259164252522908822510045578539387710805055272163436293264333098339967873429836248829343848565886200113771751234521732480631837765898449909548282191905931026952774537483793610309042061362292180111001031319167575041551265690617760219237855667572061511203509489924236751517233111475345354789727212962387700032027837517394228770018340189557866529972618063962586585934619586664887780771430648437110466075590852064544255080668558016308948882580334637605358200209669696614648502234233864629353112320186180717476770430095688728617579319866808410019724704542492495714806888524777801352220423490592253490802861402074504856751148088661333999716132921176713623919223312838684933122010449495583974499937506873809752621910868863693099064405570029372399697718991242679146012485717907428654104042588596447915642167023279052584947564901790655950429649000581605054290523753478718184379357947444950536962715941937641505003959400659316431922114173147287650316987604838091558215770704484614253534619641688335277612528678091920044386710015768202414172610438959631397436076444007861466949237405648694573378773101705170768875956671737760100861327594132028015695841936974297306896283561812158556920739854194810280165258674657446368581460917859048893474053719923342288746199119126629638287667161721745548098193460458996849098011221429414635340744145608663503219261209603157859448355662739733674729047120311355390635629825481102401640038033512415252597614915394439037697322137168062560158399899332417612787264903442953055099168083601505867771671352694805723530991924601025068905594207929404136122564172674351733630347020721311806090638797982606413552721323450575046492442176432917433439557237338862187994943993555717304934164032999203233968926110022922468449415726192849710386553965268602688042533923495300234398144079379422400838872993206500751924228655973996209630880395560871337757936872716598963211027582225669606103602386555386792413979232327421380205500822188138281591706317812599547887843897187870785747716920548658676693926330321821258625628252462831862038546332744852154064118878100572699800425059999395377861944854406150798162361873029777971999962020532160825702704256158510021436397826617086907793977466863966312530270195061417786617835624841922898216844266372779041728138858129179981828702514748585316362733950221029968934979316556059583221781324495232698995261316620170923443803552191856086750305642484149422460559566703643119469344097127300403679439194346956472060200049698070372654771345192443864604283218917457150656772104244034697949056304848872425484761724299776120843245548064627681429545759661595300514605803010021442485421830014392227503782476199364479126809451394346046918307558997741215125670007236644882018209351818028742061674377047498014508798834952623759901342908562583226217458619007013207865344333899490447650855948507929812363444508942321603955927160854064020845160479893078783845675340523555410501295846338587461664641596779941331516620943173406538878734440101237175405121032039721647960116097215095520718304351541709199167969594842748150590990278397976750207618228384945523518742370838181333812967653199884273450742915712793439767279566366322975267030924077581357226269300892086521522439642990873734068332059115477565974065357022342705846915665544381899441664375709557702410765366706556927868543581210236448294481047261015207555691760789074108353918584702746406198988942431712975847684223654851004856207892528315839236752533654321246912647824817757445435384392091519155297668449624231340998938467892098218752483030701229213053679411245656832309241346344791174065378863647316784118707642012514212719992313435702821566612724371826600848129594563194380698295629749336034580697358143580668586203236743669307188273793483438692851603138709897455986659698047317562494810720456421740728764871626530058785498772779822142802959346562645888272362436036954929096805282156038586959765121846898248248743051731639312666726831413959307854478993564169082638652644353009797959945209179794099801775177372578042764171331242906453140952089897431501633438624375031954618526336404540960555524732588586661958747402488649946937345579654179542682023173447611409754896358295970630248585851220885615028701400081400954538120805648409938281319563933292768896456091803273438332838686134968205316159677554324482742768858496151339277753247154572091032301182786932910403370771015045171857366939558181466655673244586488386466316125720073777592671129546634027464589475600918079047625770801629569126906039027394202332998781210708299587870350334898068515480370294678267517707225952227500498574087794271514198148714221052593395019702147924515958817987639241748191202788336820159830985410120725477924662289728430532691117191741363048779784746557239532791624263424988833364472996430267304784274770266831099808919915310650607954120690530319888306707878310797440332106336987432753952558599774017521577437628277702651788805938477920689609632079527391570371693839955857356284018273956408965134684931734362207670598809110170414378650333205272654281947643469983916888193045107777933098894986395233190164216469101988744626019833524218323306743075205246952459266087887879687741227464609664078884972245071903670656018252172748961139424257463356909682920558785922719117807709820555737505332325695069287955396829587724054843315191472805885798208248851751320708633570731969652743206945266482953482657846907217550895634164302911261817947567848866743760323481892357977944839598718576739071335982207703034763277055867250541220779518615360700185264385103304233646818028973043528672161444528988512637705659096915888724128434238619798176639962875439243999909352397804091834263271381341544111471761839659729260513196218916322567403265870711554564821172863015628564232068886651145241280817349421635760675439986338213237320215162477510230926132179260769885035490577103561307270652027275210938639871519260438572523768803503646078724807302581789934690263303464478622110028357971156226137559111940667331214727634869833928700373649421006839573161773694281694419621439550670555010809050594449573396286526861504750212503273971903796103710996114614133904061104874084743875469426711507008980420080830045748039254242201937482247564560124190141097578647362160600235249728659699864185344763902686191694454231934315287387201296368688534192839317306631674369020268887768338057281242552260896326118408859376394557049049958119500279787457634536839887817451797891268810700019689452730414433204448394909778037617123269753723828995143859927532343920304200023236631764736527510411216532519219262058406387290937837754604903749548667949737669062498897673767534907036053783822387798556884950194494154766109721093431737415042161893303344981964242944170701967919484836422397083860975194140380007098253133205650647701806912353452607529673757951033373128067596146775640427266241996468508673565910569430870386390996647674074478621208647661844437788638885311263859611735479654027654933926676568089518244134881745911094932369652373660217660801199828282856103895850616925963167452660520950623223488027652311125453489140387825067161904176485007435947928049016310989914042352195092886682974879613555337262457917025894265894280863528426076881977495434219945770095087948156012770502879878814014829050597147776408494932450154424796203729982012339066460645250722059053441792765245542125818119070399707943157947640796081940979405734069633878648021764796897359688380594586691088926942216459921529196518569467659124822064859809788561765778572962003372128275327702039127714812921734581462627457636220317755700711760220679014791780864524735050363198556518047836539400060654628329627629877953222404652302977980270325279730116389511264218829932991176074607777366771647202769191102639522472275122465573235327388117370681425286429600660546740857781703226748687035332718201517822232733611484993359510192840325282938240547048031816613760863538244449351801925590714960030201617412627328025874189376939367856522503203928941380420001861816843377649572036345088632552437675464601459240964082520675331277682667183606272126045928361656480754198074219383310851215826422795725035781403741975524313348033641377042611533649480165436557741112378163295664110782987122759812018654244453713043397241469156128284339546386263694115194688494296455612574122866205806974110288965406481354478881788303178562804642611547184754957796641509596677785345128270889919766605337213983395917946655401668468996514007647123553674808464973500910012331848020610813450369646810090886310499884309824375230831724403623138141155384885835396030669278136182540279124947602186230018102261024003546904129424197878876080955770672750811468314838638943124962077750969699761739063498540493040069207395223137546385832277045062889818419924797760882607624775587789338129181865931148757807185031936409300768482587720566513747619841951910927555803397956547271230000625988436388033911635600167942247000639258489839946196578768513477431921838893149281535557516336900646249821073729412034905679357554212138855433128461498073398838009553715029856405369187634299559755790674857223369039833749310307456754728163427833486484134338478779642721665897531068663222445752405620208828132166302785800501982567318258334805714037184378682626871849633324462202773400485863308331223432959905668044094742957431647086290132077406472291418675828671568340667707515115825660768543094277304355921717090410375109614371264169344904601955447228639510405443934394979561197930967791421749847789197974080579816037859976672324495562766568441895072360716579254260172956232075097045166591877799618659147196035601588316423833610704443755568554097165020376762917263919860401088699448775048227662624035679100412521445770045159184401451116525259227149474922503452130065876523777028002627778019618515067810176825002065240788577485107460311993774957124734889565875987662576965625517493406127071538832707319405163006619258606494098928386560661854697940999200941678702721683897333706281489000522404257470484034879745862078886212149805676804954466232277990568712232504996034059226601168128344329429571634256034388440143500694319232039587757298838920297256274785320824682757297124095445592994736063283899736722141997396912041345481936035173748336119249239178197781742231317392233374485935971127554948225581629970233735943562834634769336873047840920136318315925447909800343454547962502224774657323775884208308577516510987859055417216721277893433088039687055469909353296622529041400357987738401288315179474258250173259213072521570323335457771965215455779321233279133863255453204579736608145687972295494135145504254604119646357295713214522400431985115804942261493899994565290960820273571656348487763196596914852870657868061166121434149897754836298759710376412721130092972378027737586086277622173284534597829149462577987393949594468670452392959767379119104765268518379358302500916067137565900129285567600883385926126344766694450872382201776135703953179739606944088654348683883162833651658669233557193717545190239262822634535986662392487170449018430139325562857064110153378043603280776548967941764998846526946263387287023727630957481935113481806073279698917916916730510535678497218878285747154585778443612048021166407504223861630693494306187314369202801076048540832877931903723980714898382265854095596941597494671783967698735718800674800353536933345441607664179611664084807471314568969879766710735153827832544240213981765281169786592829849865823860304428612158157035541320736177315921944103862772535046259084618831691081988943752136867710195330005387332829030854018100399787948571187160034986151153869089618815499063899438094288576075842806250464706015841692139845460500507644861445997639680678158836857663823365954001293275828908721925823881401770069799277623355347130534280946671723310427826221167579579146507170195664911961794416418685006883723252585844457101126783557415235352195406977624633035910037090318977561953952761399431700946827769576653100216404532194862544808772414810745731971297424158109505605302435944930120447552316957779796711844314822424286053466654825864630449042616101264119194379370014237959233404992747318657751979433727533742781303242106831756844309397230851572329030680449325816381383536865928484355501552635929978661712221952660291209070930873388465895793199439628811156501098117896191586116624500135889421138996843078970644273347197161021572345435989736065120787907313986002415790107185271701269117783581489303500003994331923010844849804679024409362121844409149867703992531792485231882339744551520456648195992458506917594657181689839130358406517383409945877431571944463700306006972702499796812300380210314679850836444598424644714384142664748463087092881021811185056508234073961444445252998302221957890229484264420094706514560165107386852892899905344213641960855602690554726155754118901177039335982550762172307973846363275587920240313546198875776492332973564890542682987022433469433410477142175512363428133956166726199308491472664857958677034710344309731698300512721560169126970011711844504804146785202987396304609906417444546117919073518134400794871450124378723533257914130146695765639952199638175817878534941807032299321611231741359726936493777663972557759190821336700885549806488479562783879493262946538404578816273672955793440977318481831340080031535139521758355190630408380792108994075653860987305162348643853553198713627631773739414874467149387028823716968737838023871550197905818140792321754103982804738221548428606782092167645954514772120562443011314713414025322374602455022641086807219074155296014229564871513393555131973882414170984949102552384575857645129212906861314576544618950987397121582727025175129932112798302091607050524684944099900378909023793977908594233373901111558100144239063246250814969242661432622895451271655664982835094362538354971886174662841009740604159389109279619086559525872982665738663137995602394234510912347208371617653329207776284435491708459310222387485199604791134858370699993925331569573784923533030198427462758629251433587776236389326358541501680074041151626352349937516425000490738816212446758848182071772566412011758063670408716583235486070450316652980985693137538187713326372559333982019506384080525029181612193624914071501585154034661791521682688147839707239145202985635376951513182550927995217327265379088256571085255409488185472468947636746676001212513282689524701099812615835831554725590260148651425404967103608626031173365427494230208429514082394940825179618547211011119263938636092626711640383790937153283572638734852975011338879834283280481455022768039365594784062640167890563941346005516208913620014914821350712868924632739180407687806204540201784508273245056968304141062481178464760935365479275443263042774324993919393407944986498326045573518782117753608581927934004188181751222742962380932842407670253814564910917185287346325279492558419291206145887693783881544061953829334233438727844789345785514210953307450618382910364059592075494375860551168071106281241948431385876289837786569122047917744303719759743330262271160004293146901481561282974457874233309507975610564589628816745373458186026356122223590590567945411815364844609903172008379787712821295893123777194875105875099501698473628924817951441530446366283647021644101484194634239901568694702172493443386419593734218015104339795752573051217888791663369765449481355169194950201229207909768953409736444694334157120212142343157889257620327872820137654694722855159259569672195315992066280872620225302068612263058897716231369098630173109961430262905799009396322916072868058918364971128445762594067913605830372004624107823134110268884479115761182365672103208730798956083055388124122369645359365010042986903996584140407505332776429902596369405652220909638022481096088773969305382902847470328328831179526503956506387832624485843570736578490485979412750259590832349906739603966421001168332735636162197557871769289955351731701844585589812012444047734891865969462504277468246376004096532229554465020008152541740028980039676597004099285081743354535230146087522679770609357313121333330112968397182700241918111357458965360760624311222137595932333184405681495518700264229244558231489356129896045600222984688398314118483122060942414464105915400547945695584377372846696064034967628613038686529830176298452013920548783861298443893482244111713969841289958239150944906193072003123040873791512287740906910675671174071888084974904127135216806735114687217759669808637356294801716609198497350850355110785762782236398614896405433099607244090986379907017853521489685940433004012356520360832318664295964687914648355870893645937467690160962724351832145336366956340691215410244402895938261982790161484225167004744759844655989110580920122910830475613833405357996120564677701185329066534619610896964380637027954322909810721963492475965588505680256505334016701991260404430730576025479827079802438073616703802637844422517587327225733906421773661324569180320722115139682488816103488487982175823151342397773961174265453238608515046094026057130099495123261201224035993657680788193926843696167082604633664546195244106795539477350057287476911301732337291879828568310157915511810557453440730536355879642638302011015618301210308750790293857970682766822939146092890964546857207299249577522379018641723265198126441647333433697919652337199303521439261383046812398409717577701800385460263185567250940833769120952407658139567976093377582014080823369171999215918452030547087778772433538510050576711798415894444423903845758669186649281216158605180268750735133361410572142763236937372177479131718597278982281310418257806924065720511603021677841136626874155697649204206979748501818518173555346212764454159067476276089179469151697503648574453677747554857946049357645930904240310537904329678326097182797962313885276838651137591435267442174396399438540439996117484499998304100315464290395833720577074874754467938302806724414926396854473361092367893845196738997643994197418334420558890466783211858587011847332095717911096069796769971618183691764288014324024897168046099441439509846689539212264320587572404195932223371284542400998645709614182406462277271028222957548577932829976924220830283199225094912164380523777384884171851720853880425990104436515724507085567466955985028574817871287954794362375500520603350577056176979364113255429044903750633936643473679628516755389698916473171334271718079796127686067232799952597312857503205611791079603265379168655585604810950056369740887146920737567150304392513192676922485434562482902902419347341398687930102856206179969015088145906817317403835146858886684803849261121517743867228965751511975247685440238854535526569384734378761772387031284207844364007538210145930835569818928743625582132579703853652546291094418299033378615176840599949973980583744013381946313965824713950927509013060196239398640542588617990068696068934721768495459429132360409113551912918032967945775977442356657234690085560275874936008939440239503449190977766823419965399143674508260373679908967845740347521420167977282726337881457127904906344905816777731005626870963870851580685539743911587475202170250463203840499369198106583595789518360063542016619647609854364409903922889213813036325628747981272137662361813842906072907748050171396005307271249002556852548800138510414307383626699188079520186326979701448016538968957925407537228288519586854704951980392762189789477722010616989242087300569478245836132609585079504024268207556317746861390737007110241922549304797254294122545287947886504941179749283617404939949706623697017859363028870543399960685553607146205159677740603958331195312591989843344983222716171873714174171821076109925418416479873649924044610111704348050157203174769241942587429606988511636210759350897056658466507469366018166203331350581053836906624114619159767890229416779713852962610276840173980594865247570247228178389878167403718602236024662402625540602145208539363478618212888085614932241128820710062320014971459300459516161683787440228093168096156936973702626425861468262724452094683951150540345769773898842922213134798655296289355044083387978593488377097816070657023752654906470520543523716149116625134253471845039809008331342515047701210654503146377733886044501525399711875288155542632057188097136109563342948284380926929842612951791492831963069932566011860318461859791025530794019913857929377143610462215682418049958790887632884069141944029040754714703356872297401651611383517922569388416052508645250949175812305067991455978358491167629862146727501153260221444384199057494165380153735527260346709053181484859279222287397961160430834956227238158356887990899632704309216555249103732837318665672769817198340698629489814593823150281334191456995128597987958646680511414567231341900477732139179834964243361378319439335483117904333829775746603966376362289266782264532170187055451188480061204149968829625308706482347374728731261930607559876200885076408253489810341631566784768370361618487616041120483224599503533094646742812196473674520997482538899990608465113090557324844444412311246367793184253006979546627475880297188127748968938976940855305224371191020049725820039431685603719888868892623102583341931716125673875278531731813714876053614106940721603946320100588020483483450969342474923220848330033243500789054541808466048330322468937325378532445202738396878120107342943471359978622964871924456995480326838745587643701615938823301007601481567864215714751547832120349235956347274487922730434312471133425664070699120110604714347675817051776964664177917066925001331021883329977897805085633599872976327893452704426218271417199717208340443538612014186180856618702545513586489231969329925214337237560967940829143443941801517068947509114280658674178544740315714169698499476522177270526340789342699555872633483671374022642849228783058979803645322883954982643404772106321718523714121213694351609215737118667191728634164970121685959702872093996157207361429252417412870568551513304594610751025392798357999041295706973041396617292145273943431757154898985039477987583512772319429007165096760873171347256690256310058289621283776918372328995001740407056097802116031830090189315874514494489963897811011198661666440894929707136202793373170098577984732044573463639156309411033255488634632209807607972735922135909298724801611186763498987234570405525839998893891377395611123000398052056120304378635109992389572693499222308194131365220279105450939175683171012737055967684936950631791693182058717521275309957768154386805710992852233403168743511560259599470709012437440040214302891886232965691750921818973266558367680279944745989080392627355083412059645389811714221845615063620117730958362590896341390572671047549884158401631734787755786344298455264874795876523508717188031615591016208617164603599787260194305873997369104473730799415634301142071715437601284710872920259195549971054152647814499668624852222296215418058177014001009642255539574488300150316493543722265932784795564467508803124914276854785996249170101319184380657474732420299074622771399101102256550143265921993893089220829019275865384270025913306839654396145032948057024266667982199400223972824961386978986965092758846084155552184019647712010999059504835050778909895457901532261305073270974191398837425029714958526316042841400063400112833530887321472346872827679790744151506398224981370850251691869420806130909395138530904267253778322620113245126115429255417860125025299440724129602742262855667667363592330684827412220473912287289588094318748041728606407462189860909811194819307588175963209784001369471075466231160823307748728469476708288357626576349183567428323989799792647733784724178903917487861336607871337609242519981654401427498331988842776079966538080748026566023577102596155968254099818375849379516395335695528014431876823087975051026782491569217461319984546517798152155542197186401149501271522593143235557788155904753499087921282477631880220050457848933089418747000670636922356069109530771692498419743359977010094418215251197038895752270756408099045776741931056234576469337169613940831078045696192481456255736883120407503507317160437768729111038620852439133780211894757453902331506684823008161724400372734373788026061085249143197954578483702126747630194697803517104273008510557294408674893830639285567633386516778121121022348311588764471199621528776117888877635397212293015896091650497572790481597373716534337963489866167590033748755838032655116946826310447892344793000871848116966591783662596364664217744407239045646276390200901452144524027725617504505823484520241347002458771491440287068198049349574244881857103209942737359724538119739045992686039481897774918200181649394981324362781392612969986043393390292768919736724983538436537861767956872743227896424890689314871578746616261258083584340682222061532379066698458787819135843692383512602167857699710870762192728876837525795711726961398211569097460592585627801795706600436159593467719825341913419125923287319233996201622905880363992759165235018887692570641739544691401355927032680270077430768603387846055710074117870608581339577631539964184291567027557149396226335948584303709474046910727761578658042983888436931270104853987139556251448310161633622323259516759120531844000619865663401966530182466105053638616346566528661605053597390703105985194162020871432227278107031858855558315982332084505073161399240675424474973982622324841246237194166029132672091922899285303616592231487952632698957474926518063372062402517147979568783083918289004077023307063754962592234070824852937516191438777508546454361792629003425936022114580894182069285425546147522778473860541314666191671755261484555777051475878319047679552762949930284744591749414588105771163128343298287283114985566096647302500251410200210490061354549569340599059052330740476584412651947790401226841465223148205167578574025261104534187031749002572303217637237075530701047204017733697328178833575712701487842951017889526662641917585454588199577823969786988617467080743809148727725926112693662416194935719070994421048159907174552861728657513660076860286976622275596409714425865187812935088490458691017102465773219248118595955047466003565375746268302158695572171449418484536110616395222783330845590091459409773570189416154880863077050298014989123838647946085599713848269009421915067902069574168063430333468693649533681364808026478330896212412468768824097771456805492588579849103244954370715744773569442922104823844959749810186336858652683596601953397779505488391609565633455272593348429915262285472427103667751952567749928750305671120974100111423765645094093298923545162425818277690334167151890895152475533248446604726128878606302367295013170421391627877123600711671230527037858318900862539664591807521742964083914377613811713519839296173189735676149571607534728249637561554982657346809906553326772000859167355871440334086279555621816162693784308107183718314736013305404886099379200295778837904347256693410522005034445249967796111647898249723291389099316387745514387220349355701777982053539216463216092431854987036926839791463748906676445861224887468923930614466730090874301294528134434165927291906438266588804769952143236296778984985657989239175305763689658117354732054269854793401491776547473484328206162475358314988319464275548463023691320004739983847575418730468677295212294147790819957966812258931774310130873215319225152219443623977010017465096433345304839113237634559935593824231720585357081353740413163323439873842434759013871046674856409779498785446855490751225367964061326852306815233525828169572614719814726621088778811798666386209454566821849171234830557211987353658797031221621328419767404733005256175280285281911656010166425063710764802155706812590601840115541861201288366309374553379797754559904024751299975958837386860432140322406227353103423323484868297115962715057162198387097706695382680726122805804915454572862109560096332847074682707349275646060979554586421914302877045292993647824738435933644442242257705674413936373318688328441075164102829143124451989866263299105087656811895217562544591991610598648052346568249330604056280307530976190715411873633524808767072393090638118763253346307587094003188143156855120248007164628557950875572465799225297350379418284742106814786801914259380290377484249271903384605306900116245344820904056579849443804341801988562689913068888128690618551523658028663360109059925438336001075318370207025485469877465767448403812948525122406114353229923837232138612463413350373977277218424755675977526884512991866115028105612051921257318771978875860024758665603281696772768341807440663921187402772928216592531015728893713433048301449111176408332736741583162463147828257254469734712724055887350710090989895708404570915113730421279561539763938248847437882731949949684975714180428392032950562229677585760051486826063884945936361254719883729426887942824669462621896791934076093851556844073184932038490231391727809570318778840439509026795390947803230451292192042533639517780298580466102660087397072045624021837388523208112303890401693918506791517342260833444490011010815842046309326252755170605898862733270385695708287983462972583655598136233183992772041225169521312681329934342870008961258933123296054898320090551769515440516341003288616799762768568713989779403280767453050821814473354110477542338062982638987976054139545746396158734247527594685170034849917710609217099477628050715568742294617216233861920398283651174265313877661242854974611152706376822893930738143529455567890111133011052300832246628226086956190556228273980770284597268905292345093887931825524678300825718271816429560804071625709776453658637466940466768886311628270476037882816766314571412245296368457858084828179157582629328855596622544214247812076485547489201567958783532143139290477826681499369115745440014242435476991980338668378738122493334046603429363908719879259454878507172651837770261690114553994835193258952663518373670444659851298402084144656769218050340857527580726902720077807460253155057514776761398135246341930615677913157307926590628403715582447980697169440245729147514930116406875012682414461784837067728341760017990587834601522837565176863615546206786654841401094141744960538943338185263707541609298328306214955254407340952630956345264094817666682855116478033937271155985256798385806738446573093472501903274706214577712214615794990772522154057529908875978296027844460082181716268235655998774503298940499125873838349916042082539821098705887369633445009457201055949973970377424020038414256737015923027730603362429410858514166583809641102706595971966566807661636213832546496888344128454007227114128584011686678204796717685082761188351068318422556782386821759103120792812622835470398990702798632158800254160562942067141396033359250007548710683010954152566483799984587339535102105552608958183963672160457923377286277142114531394607180552271503128354980891045268159028734028690125839287893356973174519040841842187532463711929449331899507446821247358100673429310257210199306133852229661566357286800052342366112685237174119973153516562116645536901979680449891849211697751909088964574400223449088908889154801067770487518595549318465064488185078898338020596668559764743980262832660714147690145948300682688239813728607370175326221525550936841985019695118685817078303320283786468192202693183543710921464726871115704298467749786599265029536392965464338351440568507530898615119755288364199792331414013632446874996308084246294761598271400073022695036216754377524474779210366974241236316282282194078369862202206432344541496012458503567668551788615032392219368461947975664760457695527782527824099006303649446778709758409336123132812704781268477467542281068059804435294390521712257922072430194355693235987030737008594093474904958178873308089370159418021525349254128265035094586861841109164466682863127575110139988474544401237248702183342838688009347173954648099418744870209224552188916887951470756922700259419842331948720404211315068948076863772700778886009803979934076291592028530529905689948583471370519268007358995423351138228306961421547059296225895187611110181365952940398944358049025189425244173384432699751899053009716060861906930824883704581301733944099837794300634738249918216724524474652005867416246808341905946321887172396772110280816720716922777962884862758022978913443569069504091642441524150677822652421534798541407036027747393945633329333985476607523054833765299854477076029153061964199420703093060738212718789272683329422810301099341455203813720976748585129204812270349314309953798338696348633855821643752267021894815973776701256357070268900047553663066173589795095453828141302816627544393151089300618308828405810993630203684670286569342353775764370046341018707563101317754751878289221970945726934513661389462678853193054002285101585572694631628320306373610745818052441841453396662342747928750877538044521808941218541761178879930404944708133239815141543890360385364162685210417737907380103029975002173299835347884080688750141520926064877739526589157915122338841204097446014823503381850723708506866232658637526331949931641726043958755158989003385557704066437728168015567049304567787730147524824517740394166356738631262280783637580490158123540114578646212157480341938720422563622748990022369191403342042198465911918060630122265565407775067741836650175775132965025289495773488917865638246771718385171512991601976289172927339703909866586035588187515190339525563885666731613106228669818904464390329897338426094760837224833663011230744338847330841348280724042342537069738268264520835324598204313400046767718510515468325540950953052340883346335279143341087468458552720003416088765280855564247744374394411033013724037451716329924897250123329415997826078155048312718616556021395892638161566688675389957995114647764230604228769054378886314493885276293151168535406352786137781085684249771733395517249198477128488439295703623424633749284270774396576302503313876582766353299157580507632940807455028835978196399155608979395905995497424801369417263105265384643013006296775075996578791256814654185639818729056432187587229903608810519658546990525803931778369950136315005279960223633288788967316407456485127436442580626896636395867011356562848188219046257827325537122903857150232328964466037034448578389808465622481175234769211012618279912394654028964821848985855973065314765134037294538140812077731057614675918397642003475968303480695916772320020493139238822379830523709922943028149809443321070522320154736572314445571260899909706511989696276556814802437350141566557797539469749104322700966891417068955683403972393890676586767696613141471267698914987694457333724899448212310725513347620900605410678670243030356553147755959411000162749775824109895516422614282535766228095290672501173159816614751600744183684759145755996225405829685460902071197341029723639677585487261240743072505051441761217421727398102187347151291482663629600960497632414050016347235324404836259199539115508621733163064489511235047530640394701330976548823586102365424451492190961668057442804400439836902486960831736920992181334898439065952108265948438429593769961448142320884649475362486210913933854778454636516531470024069346598754210509949675881277069644557014452478035714524444735053597096600305159820482754002688387505143960200339812681234075423267413924953034856999904320676536617539536249014866962047451028729224843217571139301092863402536861723346529776524785328622794229878865860362682037672919159627112768583415334733041564059369061290344742178216985200105886081042652801531251725759298507583438159022267004182435468183022360173077094896108516544610467286010896942561167373186257693668258002924568796415700612644217035689333126999358158065556142613587254922566916375032767734063990272362639164872168434658740187779759040559018118293614417204430055622746351796644564649703215691248806355536044362915367287405934254289685421519094973166178034812926598755876272216597640362312276708029027129271278281130707098043600593107957258152599539828841078156822407439570202155207336722417119290158474440185673988307457445180715531305586658096406737741716060049388081933500941743987128091042936573295059069391209780826899742916733104725081165633123767886931268417002880058524730921803398514714363472453519946594609961785840512486777595514480061604144878070754362907979848466267957206921397168578535863903992551490081946548765689806691849689006457799822335478668681937593811674585673201411992229916381483575346250206164762951528714432670314434631290443825803953099064541093171632669017494261098319066037091355684142256969990216183086492204033315830416239389617405315558157674195754676278402952950062642898894206637761721532519666120686277796765322320499160370535091103308110318408930327787439270740082558176639719131546324183243519297565501883259219865526885501934578664438881999876968640949911706101343106359612087761494512749188413102180749619163049116340449759461600262916230370872455673220245983388618476625772815009835809814504962536146990138807494211984833889226410319605578124685154572563115978122710840839959855078200740489288086239625591123362690804034805148547561031902662323741389387569922844493772655773975752931421018850944283405525302624724365020732739459016034097249996315762981114950185940731489145324928914417875435159505534432948204613541252042816319081107539563345997534341070147531269790287448481744532039015546191175304595055475630955777653191395015758989803708445995168578375249987778704424276681422743090135555714496632491120427816209924642888022362791642344952026084580195332787222779423722172436116078183064397722675173859872215677292947664408750830050546681566795641895681566644965727526901428175589821824174572542891887101635493375598609341440008283511362629881878006015304410050795151249688426163782919394893410954508382498901842248514707771323004367084322584742259219197508788632958206499535705182971375052606349940659064079697797351024724552379116208343804195286640815141841831049111976075393207262182283311127139060925464536873549773155899431079147843218080409400502652845044806078812200617812563114564855883092821544134829395852852799302233142910149119153673140768416629425185561569765322547704124665581351794511437368135805260961656319862722150660409583140142428558354626048148362260268914864759485043551343081713042509064280719103839284814429202064675667158618140000041067852694129599155756381394995070364397224988906303250185193514287293638965693356207528003091313819462656011065831465260836600423558733715622029628211812910170539717027045516621175573648540680822901709508426242194694115423981402333073174316020946974198377814626245761278379553269879960032653685000574767634873521714318163402084964418445584644868302514156805727657292399580480094404140687761811602087365317897908578373279100892958804019523952187120167016450693919542975556723707748380652469759203221620476451682306383635910262348900440187967074508327319891677467582794654719883269780472566852653237217462650708412434003761168740265830475290639492139112644517031158721634617676172365506431432044960047977408940477142366227305468969072940776851345015549233585400552168529861112584442578720796464497892258733406218207697269201333933269837108370929739168539181084350894864419692079555928868058120961520662590463834245349687144630173624884745380587265530021513394554933393223268699279978875894004518961663735788103477918720332782488308492907522143762783405863080513116528073270641132888335249287681999262104341449870562695119273120808331690089024103034984309727174638238613838200343369961713592842069789353120082975222375687927259322691335016672580115079554208969599100659994491306546351122129535002183350482319880837220475426283706639428776569422074358095103356701825358276131930982564038708832223678139775396956330557826627728466608765385433931626068593580915714064318324847262714251780382101141233059883945087923322456409719734556188111232304103809988532659524252166666497562316805158842805892501871446196878763643607870860902746438701463502403894352071103993370462328994809762876018951137015626132156984980968263623285619291776884343648302718455822279422713271230005742083717628129521706809656761613571275943855973514498456979256806297617189889758174031268652302330403956449073431542028091886255492256427788733821603742381791648714217891842063837205018902038634319924329512767920516707563578844289196695021415230750817724505435704850741149656215611431041188276429575710176494278318296901492703372867904637001326094514705737881980062656961924447555377596830591112734306205875545503333356070858329372465261342776106075103266438686523483710323517407251557901092620786017904904338466250890687458393599736957742610326977478116585679238820583758119317201163013735612412683485261425653040936498259289399845093710078487867494569790401504463769671233980653216308361636281686942541191851962401783077227110432103604201356841632201181318094245355384757215064909266318091334233334096736532770785945663989375361453755042566555713364200942939656218517076585950079529347461643498536793989147234897414265935013869494241337025538961832421685723911867272583696216873420607060584430707977867617143940343215489212324449251002378713559460899094707029948101032896828265471832423197502976602275679274462818845810871799980834569548005465282694385530444911773981602143382189583571556790961668080476600630364500990957618758107266859871786583415186362860947713167255322513824119001171011562393061385501312456775089914192476075662635461807669632080217549032771551694509704276563261843280750022923217095976025182077799003398351406672840620673943301079629622669086908237569670454354614238446890548820927482913744317639719365550491553749300270259785414492916816609059270623086902983996355007650646999559300010846293625459602914202531924242812211819009667358370270086061214254255199075497884219933580137922067223563911863799381148009116502047888430300951795452655996440812312585345496931669884146713818733406300949009476478287416926484606883613839183577743252332074820172011784169147662233427035096571052973842702121647772275946752605930121475995423971913752084917208091816803477845102143895973235159467249135688595180804795563068871385484576602013571841507741486221977986446045575320742140838784578716661280967286991535831780613649660494615882512213939151769149507974182207299563336919980666799643153855993830312483132947982269364407806930341279266766629778982600656095117924665512395378329330726013267184311707774492569070269563585410006274439968209029143404609717318957489242292547535752347225272026263980290684599491301916425669106819318797823423259304475628561738907592304344181102013616390856681530149058846273354712278448945695053531069663518127954228178163084838591099073749523649959021923354466798222756960532261884662794373925185270410178954673187692091619155428164635424550122823720549298094756829839031227274624629997657903940419955188649229726667844862852046690285312220043424745313155934716666519522253418037386969449391401485863728310504970380934514417606714626943650859066226871236879313706950631663937843181499496176676302734975266906235168516990063867120695431650348823114834533278594685872080349512001286774092417668434483853487897685667857631295278351017177630569203057218384161151788519923485699854869025309843357172802326028973433939326866318765208103971057821659381207611306132095143159064570562340253391391767070862849191608141016058427442742188594102907285005364622235029416173711781901089356908674578048934236504715329760287861331825203869493207637059718804484878348591420266372418956990658067999338658453642009415023839857328692116710767078864748909568983791161563384933946659094256886608372667548926559795939723747354987887156239140284851315370371276701932342566983359218969227246190508511570470654683260461143766714206418060050609601630680418720658966255016979570954966545877806561759521347386592488912351272931918871597120763178106100691402003134462938448730578653641706807347981732733400035815727047083947287592989338590526654220781313782208985739210521272480968274567006075008855227653617942193829650493182731935192793812900614125711024540613697519198490023401116429815213486883703821958948872974332932739780584786622436801076497585245070339996168249026177684265209017002182176681720535140605249610055491295287895640509218892088833606411717166749480844147658240615985057120912117351122541425748413471251335991237590754025814925161215681990972962842383494843024575641093141196048968960621661132492767146270690860702443847247593140307683585035757401501319509549260836965309702866914899836818853539971048217707734218271578797736971882720898888597983534077881077994432463620317369470052017372357473113803639534112788908474947319320727801087469776462055250063582334084542153339120017768932338756792951846230229597061532613934418273855062681280486572880445104608623733039947985334240322722791738279376998246306071335567126803112492922318781099289879884005190424497419125440076065109829096260367741635426153662309008202151425491365199818312852978482369956826886994485700941893643932545469231468655639437777186119632768950068906133816068679556113127357876685371749479077439165831120070717175073607836019439431675215373786173513763185736160619480532815644783762553503470695733178889669049818790735871367032543338124041037137736960678665366495565168538622144818488107496718208571522409308331649320201115564693359494405466270978985836103015271673512241425176543760439037923839152682214931963929800272688096292540209711835722135424937571464692451147803749917262073963605343138595317398511230267232104402338704334139762595542738024688470050360439298362118996070896701284927022768629138674189670097674405476696795120907303998848252015835527302338433135316783342196842240723002837708429868564190036308399404823692989751948557574376491056020853888058527013621278963646294231739704686162673750598145813895844417251793338050821959165101254632836919709255655826959848833425422238079361554535745355189698541072301844581959610705103394677952853014568898630920799208351397435355487929096178485735537476847921272422265111004319231430098253766361973703472365271436834175999557740469471949222869979079425602856944440197056049589518052321737468115551290080035370225610344942661401792226202933839903718837082963056708283770456090520943425821833385704857070802318324847856331044663234401677858473764987988328264435421972770881103878674610413275185787582975405518688097823532791365847965286177310213400149455873940827100464715456512848233275191207684103190436018591903451476677327732543900010925160991411847293225152352907012074285530938974923998269022990218201197341326739410285752934008160773824892308358860619578596218115609825880352656672133841431573932393393248437539470162632891787194563547428453783985243325023185738409995510596821195555927905679510137895486690068150774791582445349524634816833343153741783461109180758523641876264697850723601863240244936748621476615644034036234669034673123157474056087093952767884568166753329602754902951945530375288471038935286175119805271432575587688809351962029857092006281412347874165688284660838748677547013533220044268726946312231185650237186825998469271824993165633276072018745494781131711462403945872065932415481317344973658278541102061829199002121239165928770021012526329256971330850217055696690132069363137249482939132744724815887320839291519243678201039189129025351005264737709378122937423014206369609208851435140362616725169588480672775606740887644754924446779838112618615076136468292775126370837726670439269625801983265360664999214088867260252350893857288265241704670318850110009423653042641401077586494784139259080514603306241802007485196122416324518772680842386007019897205399962912211951452960345183557105824690696315345822758387559722611368734153505742924666839644253327314946370529856487065088676061669186886598437007656301232966209440467886891697484145582222329714109220462693144521296679912464738236137704262621242097570195538114350865861327266887564723557288327269333789418628666217731470251539155955510272129923572854025434141572879368698490282729914029129679652949711547355732965562643760154772588295424318383395369103984909712253400747243510543417431358312499345474852284913355417938636305793370821251282317256605231846964990380540388707390248005339171907907578518640925290597506042677757048559408316219438498001870729106710660710454309533638809330216793286918861611142664486212391872881104809869231887703239567331466508094107300549209077134758867496798387717667524066988109097542699748389808619578653679477641895025923543593460604014900860586087343626154923551310593582285959493642353104603320709594142146838844951378282530045046094239777613522241383045259738456669265001759267902265502381473836154392249787980167723350368703297860813493794919479794914248239008041754752672266998818302513757533507588004120848802714080089320279751703777688530101517718375165508958125314507004229351159249219946185316381377853485374760756166668538588929940792891379033379854554956803447174253501582140661065670871120374612214228453752367196107856789420850011977129134882430989433077407425637932184435163975247918698930072308838487966658619632709080801690402216057820275627101705259773571975975646919408113626833536058914099688728539930201214109431881891817447099945217451388808047770547303382639661246735145633214697053424625669589773682456646346097310372003352705686979834169875123343334696876107029535523703938971625178238858866566160065693394248114152841367233455764284829826661836614062000387918239809682601564591714177674112975464671792622010421104530060224164119097195954209846159876583575174518975872759163365192843247805269136718397559728884175504977979545733334413695665986744799870008763069638002773427614612933148368267720370985891119724953245497950502487358527139759488903721812254806452109451828070745165594983212389281354740893490371289629176111812954523593430033964789106925656473059216474117703188634143479209974958794480893932239560797084481062761351199701719359601007348578713773097923898589335624762787553861508084118261007657756215321010709816870257122150201654464377326139353557747310828443869085777321232350239635130827909323825092245108828103484872591027045707752687228718649887919342107220145583351916622997826777094162188891172544108428063810798041361031281134092569764128512340569136156229508821404702918135587819299954889531187479263414462800969193625755685244838432193645780029633535585802791275995238046499316459052650145276037203067643523922988884475279494242585216805549953664746435260487207567004412700847991761393075568128911168065500012244293103049153532298587412727521095279536910006252346918003253554709302249281626709040204415358914135143357692774767255620522906607655743039949750545279029366649259968569305764337756367215694918845167528221502061063023595957239498417513654680321704222278272369901853537347146835919710832531472715955289461754104246065643724212644126916788386994366882079315639745771508126232060109743132232552897839736249663451908456052639488169086399965319813142560471675502690504910472857930541842669338832700252189007509189234817762502569025636841742162530722162339632625116081666895403423479880670522392626699722235999673593682939162506835930392455542248401436406779721153262933743997621920014152906565087716431831108746784945033636044391605593291693844728610734319468203020434639156128222407549543492938242985903014445686174446370774537323900357385854323424445666797574606113106124791692788343846161096450809714010870276609948770326074589363352383316514913896823939115986958297395911386142652653538140529790047444444535380278258997290414938938901728766641449595445497318234143069967209368822041674011066195355836513528183962920561474390176930527745019859788872050911607287315162181466898567559371397115451119901193794096317295373960082942145621617775030268333944172595636399534235990847991634024896793190272054213045387193848634172554887390889591285267359600340027055851188711210987828630121922967521090300994433648411396744384543193289181096110858209514657621119391552659947226444416855251769730878483870427465224124311987085977986998578816337416411445088769900190431866150834083822017865699218743768063492620207050933221746247219775577945064567940569789270435851731440173469036349507024579649693360590651560526300591384630114194050813419108265820554934153317491976432989526118800862549992539014621864385907904001458689761045126300496076780142031551009775119791400790816455327660840432753528509304271651518211716560692704091299688860466210084128827714577026466053709089157442446505203642962783917667387809510723340152538453594224576501988303102467468675733137569630488604983021029075562348323642190747059488768116087247966909551782075816106825098061328381108912557832801172784429016872971806345964222266503881299948351782688493326008134102985396726184920271697190987554070525826430260502322734717648335030421416151779035313951865995337485394923263757973462513085457275215811474071606204034842721873253169418015770295114765496298885205210857979256100654785939845964039129688393803340340366473429992516607354934241269397590035962423621821062686001294472119690757148120958976164957190861421032851160553789128838530889527619696692295480361200420684607288509604320082365338800232657974624019210583495109238916707973752439306266280160596677974930305212997670074177110689249464584546428583781146521246356561126937773462449137206071438779688505916181243858324196370875130405210978365402687666561593827138952174066699188884237920606174818317654465938858862071562060820609538948807403974172888702147626506853001918151613855096710744045626098530895496269251161459490940406458921041604192511595712302905765197323087277485517441953204137244376666595191541624006939323907287847034926314398762308357947074071888763453280314815728810071504137672944742779941521416112954027927301491374791845950203298522376311664952300311268481550519301918318068573672266933421069066857358017036619418718388835843595961506790682597524781999537834770863314686758849438501561466809915076355290502330715290888364344413914824973443058282396571532330503565126577617009104405561474287366590221641643603461771427964908042009495768691150479318560200689008228612496539313135924549896888313572561059187739594718412765663735120200539774239177199719904576413036486382079438882990178583839174689841046559580210648706553077419153539540104330976270683549130170882922475617950844276680387310092017141521014420124388724138530180741058494258717653902836506469955122727033066076691581222771555130272091336676293514855903829241416391315348601065898783270054976523164526319594931546298930083333489857929565337620019267430344357684626765756464721322840020186026702802596740132737097651528429771337065651605244002461344695132334741884885943185542089200710654054535501568735354890206777412374997722369235437710149538190260883058546818143814446379133012499511705796706189398192750688693792597279316797055309784270531090084509079266871311358341022035545601793262688731327074597638833798863727272328360743688037398380762269646306693674075159649650147832194592296014238364640890482506250645993332824533488198904364223218134805098000325482408831243582736750730844322056251475222873700481882318311031132938626064364044999767590996233838423263867247751062370752171721979749044386130642882564579981536275789514756049546228273752547745657531988615187113172107665645151541166635025268031229467689171905580481817370547175471247617355855522513629892214173888848323190320084060117711447549293346661577275461375049097337640508887288752030767867628825774088179437330495817628834856042443320493655591787864621495999922828259180627337736039916639866589063190639295292377374732792641153123151476020441792105776715099963675285986227228735036194961356915066157192948054366810761151426704043834752944626487046764056058222262652998725441006298666510176392045951936745107171552442350118054956479328028861313087283017563713356321506894474502091300474457169806836713117978415228489148085501424388748353129374051634754041049715726336968985164517827602553874922739112431308963643718494460231724155597752526494715290308717922102583908869824806990450237493145868929343795888334712941095237243325218061514980645446782615820226072432806864377026290455812223926107765562364174819909869799939704150364830952245435918349936140207941094349387445572493303442076016402239388862410324269909318988728758825033475525991074961914474679548839710083598337871159459924242388450800448105012594961059755281435093156555320434760051648755687182836000502792190862366016617373888847093848626831513283290271088851866556398312774522584831289786311368761129004910877657801329323225079636955748606843726427564169773563968725777740781709588501345154524285273838823335590329410779256295622983528628323295580380834916572766673587858492218706465551114518972756208331710900249561208158086258513110018349498684623527947200714626289473732465222691103185835935794863429903280479077111500662946357232221586184749323385738985638432226868212241123689904764039382437071496962882425933255049907939724881642800507890908635963045945627105468511663960078742487108885817062742359052840380870124923922515053828806806734613693245685059929224595531824524501569304626499733723026820146763984311780926093683686353198564283834988857150550622179946043556261412531248473346128054007270108218225912395734135768411974635601047736332815259045402056319880725119665689435513664442404418814982949250709800322448811041715925115861772057408589524272029186237470560641360465590401746602810315812741282200431037503896149133435601998601287222238016832052210534918602570442397805678973832776491900537639634845155552166980443949409072602597598037790791716553562433546756145395193392185594431134458118848321266321771852583440014767018257727749658001036766104675962131423637585179645740254329697123533676942070316936426087335376612311623470934511434774763281117497460972702793100417356584461008866285298977991791678164187502804781689186050781587500316585489501507977573968265996653412740485327140428209703243032743659175955276632503713802023667677158802943425867863268392604155543748132430483346772608411572339009527863064712962446524991075453587752889262514383170608888658250120436412380709678818367205656078997397635003725000772585195377398333548919000660915646640195779236907192989130839119719065222769365368522277682468964447362475911452369601283742343659585404524017408892317475841015489131627412563090074867534922804253807115304275434589819048891778926079762991392960875521558991204037681982824960703151971204198613616781978752122882853785875918259488868605045823189405845338745180111420289049699807069116436028879534989572673124753121516240272139189103976080975515635382012834698224679604413945350341947705505769008536298619484682254143421314859671934476415941703784594893893015532682000867886562316137053037078536919959565803101165219221198567688826841985180438445780769614978786150724879489908033433120475105898180191028644557488930387404988504142595003250100949056800961476262042736556450743187983314792253505995298907169937121845514621381327092195353876810060644168484913561300813960533012308305126242936211071071821677610183811493685067803751360221701085602755483853909303642721551434755309527110147413544953159770116676012143162164043097074003917302424993552337094070326726923982340175306244922724537580095926751465469832430121573774499233803978209764083108553022333487437354870382825597477128676933562087489136162119593468703491715166304362974841294176117320816091326070438983600254121869724852760654943764713813079589135921388166506808986450402707979270444562502336208447366936777158993183397241885870039450114477511709955665063119963014597010864788297219506655361410438551274587045532792938230984404227589323061228163379751223268850360837153031624981427392231598539445025691366190653438019847433126923930415922815141575892856555152098586164956219769287531049609734863878815092486095796386218454752541472995350222004441645485039388376916992851521027255236473524010555532109941596194107506820542388310226436818066217682544709013646883066481892623190759916174601291432743192220664376209942676263822575842733251084307063025876148319725225543781631097258738484735011016764547549021026517088232632776955137646431456058224713688091814317373248006600256882711835555416540200889669168863440662434126699302326121283204812979516254236525522898332222593622274522803040278124335233049804594547622162943676804084253516728506434548420525635249027890187007415301356982027543913361806490761530219657777924063295267294647450047270604265118462395702617274742842274089211612038847540269085106185099725922632907237145929568823827994432176031861596007245599132860769456412386421761468422008790367152028019537699594694184354998790569060568713344419666488027394284815103377398398599816772345311244411970132415100309169545721740651973904802592121984887805874065386306121746154522813339677921216741946688883622827799237300034516927295406903450836451459662474676394706702065828475387896400805588985067542561220659619610719209682965017466674902818297767774265233432013026325101722058389433385230870801425947138045202862562450203142152337455203309201674492534780199867621472346631656043672287917649266066097600692341254633705141724960370330247056203653086766107754397212204398052081361896900710137031852560389406939808857445222282396871572951683659191242155050313348263030358369005814825570801294456166231616839240136225457022489906905746830355253475133520780903294552649734852072129417069459344532143400234634350170502053172963533937526687258787459490837952975504190135030294065774497089529759613514011770850856877839448198551097811345525121228765851695912234298151031891440124609366082439697355920930039568908176521194962924503336107830329520648901291102089787566244496307520569793192004734166966306649777600987190600656007040764838350887409740424860144062784731760833928473921821674217094079568159193679808165097334962686970107970688401740491134152061628927467041352140468062311879362841813871308090905077783394082205044074535441317167206290098041896970348195506222475697635530524103585629220453152900315581148078379911093626753875342224461767696623228059878066176516536335746342243160094398571760057861821006209032535754392382893101849642629089614452610792042691015157946925145950693794662928032795977238372157974827104715074787196143181822214383910162552214555634023321893541986601210070528839385649364225172179115296412398512379584447489519827261911787273444688087856151220067548901177158913798572301776169738602707912093173536744220296874216146772596542579514413673578302491379159165171636007476310145605096619540949114005730085401104709294769820384149048864033303853208889365440297171161594291558692782846119372859550774750736860624362747820480938795815529154036194495435340833631226097570142346749804078089645640142379737840169742316494213525071000629148718503524669351332559534401741131003483450837726949699473069217460526123253805282555354916147986896267372405286865293241524400850810952532882152149049108181498832314825391994350463099205152162044911870972748062259622419264385077003376486912287061251154368746518782308659172572658310375586153562866509409932533686165542866959269733744141268409994895621507310792124576324374313006350757265715727602922793067631203301207980466705334038420527517997286468302041069405679085502189456380255052952039970887277752206772166317030274226050124213953803600227221192377197894591244452642991931238096817764111524936170853710786235305270883030296573332632100778117361982771776683996379750778817675910254715317178119989229050508995056540509516944477496818079884709986196085624976296682590612249563517043098809551074845109718325352984453953639567029396335132773353346368067081989395751743562530788321112241439095046107005531383156447165593452912032008854782275044962179344940501346078395759222309755908740599350091093381542761260969400534432607957045255923305292437157477239236153681363856621947849094577702105634515634547985567134631257548020814771132491753917278220760230722467182934189584904092336207547104330793043287289520576991821178207397966973433748638002298079655992924538082246979240296576178769020263714942170091766389005543003092879293550560042054428328209414578655943406718450968053396101660418566737461451026748285894304151552916659713522960492681050942401826467842091767378073609589821814934319074050961814458237458671465008625884295339262342810798446375324748875073366722202146145352615959883714562605073627356443478069737811353527615509962985115490858602006283124672764286509105952969092658090312924045261698520378781367505117017445874750177002959905470507483109972941911681845745685789541522624675015265287593218741633499068427904775023896694486481655238799129678819947376022516798952510377629599568228502405329773033494445207492041822019213590365841077029148644219189773511803710917120424551443060089239919610079230571215550804799081397829073769658614123055006090513167761568231054838416348888537599301860681042516709943774101018658907004712930697355292743137049041839648797744139708312104070507331593139576915084476943252210668712948520654550718988522982861536882306417433283955746365796561892559884982348284154944529674916443592722646595611814622164786104911972593094380489507438989300805190273536419382030404183878344862324202740214926793410220059574705920500751250469429141410780120961476455378253559116616173293649848041035159062765475204885816416162860138006971131425215518279348124691228830190630671805940986494040700664346060914397032191328821782441900015500547163914211180097853928189518053277230178499550435043975651867884352575210744433693846135708529346090687933130410940415260797129231174890600964047251036490967433969809624287021559645576061683940837773658955858519521640275102936828937796972274140068160153060097112643491108880415257666314831822706428264970833943635084364321152540770628188989140961057285284121683076080943213936401845061034027158990674846870111279629698170607999655009149500489221994503863688704606547338552903714980199547404651768610735060590268830594941933543442495216326753259123632383172503589939362916222876491825141226471906820075704540218097390648331536181084232149234507467597663352675500358692980104639031659530117886207237424092537387627859373479705436871206045737127923570567169347638368642992997346021411398359398598229996202115921450723173594470263432833472579624784077638300981183303226602040083357596007763733078009222977086864923313362911662061689963043140423839165064545841551436750252457930255327192050715894435529882103326728164135235698312404993186662511057757060667637692917636143818062384402731181475762617309008535773238174923224290554628592365504618140430346519131958695772754211037814185315992613710548501859940189003360249809474866790530324696460955247725644493876446585621766207142651813140680304581031168294163792798178424180602508262036576215546833540993094992891292096478681478170164144468141500804624982428833609690462860410705989653701176474988029228767364962675582789620781839917109213867261421007663294784353978590807977605082178910971529487929291585675932354099403889227899800685277903498466858237704856534802793280780311304583702016136826491317302585793524612202185095301600588783325076678690183504395138077883939704535104127782176828405275139585989017343468415063807405967076326356897590825335067076687834026099302488694729812897325504303169718935903372065291752314494114815852362104418858852730802517028520603752614305046291555708909327947962751730897473721291748614416302403277218127164717521307458042600217682639205205783074975649142748198717657822320766400374479003594131696854980037550930802730325162818212814138580962636980353729410136255857319710521589935975052498879575931036159719016722707779551894072294808997080378988391393194048677436541816990157368608989847213411175351328950825013382843160281778181670012816347466745290188572532076264367764306677671786229934071216349486628490445156393932280751648553414879787473484278777159104062062675487752904160540340413489548805086027204169032937227869894438511240820371773025477738438656750080832697946997211749837164928862405576367413918395928119385951370833904330551432487798408771704757819356005259412845138084360422312747816728997701555513090827447897449448118824812241183547125134041974697849410711365448093813252132566673043184434874548210276751140159273393940687709568506652551216113724405863282896029306087678567893174200181020314181279539591113320969511684785245106834131363339343076308262118460695836193245558531624941890462693008986124030303358786135455801680727698627123829225655608857022449119653762630404991593801677329980578821043768279376887382761473503991471072413968398630675658993323810025611821209950264884065981207417874239128539301258216241915185778291695428939938406977724924811705507929884628596651239191649361899982093380987835379911306729345691677817010348243463843287982057360753241988020546706555449676390197559794597314155441467186334516497728402091270502633962125996754567869793286490936207056652365177277821279383741386612437597226082149086293847501822506165799319735060902002731168700709150877840353198615460227271522530079017426905122700872943008270895108715455206720299862093688394378135390721886475395248068120133100747563288419743724078372012676714872782791291044066440216681317422091634652447955541007700125092065920284230898511062624419817107376779209582312344676221856875955062217168892181235478118246486542856337627545147453802464141476001580228349731796870578580365271976607062918827721870511909508524950965085924084623829446628767594740583001457961196676583032686446209798133023086379007853671628149889335213579098816547959063860820411617767629124979777997781956245867111949263127822167965179729523469833844638801133256151069232230260980768642536280595719399501336676048202413953041125775305159803657844007093918234846008299298988070873882881134935281817548809490676893115801981822368858925284263721018389893002597611458229425608036932787395264835681911349259208329504394555460574131301003593016151598908659343624347877231152618801443720185839937836027229555132639855444584286915601147525087581406639902785917254975697422419279888850185428261956669233342231302616429655249697440750161677563372335180975207590090925442960502731049590788421008925346650538830552506922789627970710651697254218804888255667163960737340076221307641979427248701168879648100529301900334371064590387918254187340732195149873325617849783196354413048165601839495083545022216375945120679045028938034657792491059576108824794668804598971531603013082933223036497734035816909177649196307857344449066613031630052974533917217729210937172026029698061912463868203373704702014637830803163624953754078941630359236318654629261375677768984339704597219842861240005919013436495627046282175995591420248216629318802323615166576519707532728908948640189208421118278041336054554079199165286087875333653599227833910337079372434593698988303647914549832213825077334497163013850796196948856983734664425065638209515911337523828690516077886669711092394068412356413544606451907026378702734094432178199518592380734444004510223508338187299821649697932439787087152431814786506396486037667607604973814767026826275717829615232298988014882839146973696683579022830056391294510250439067858000724427819193654801110174832922989466863805349699496874352853925921357517127664910358517207733119661282926741808165238903360883485107419003312556305783853445119093838537002199724209512250958473740188700491795170694084086229257453205669311236558144958052681798318717229456542661421779474772666134489630482130612290636818086418381611240855516943818093298728560096358926035978380690105260088522459453807299638153428011601775301602251115370609000197928965039317024543054930780227400232174644081552199650676922636228746329408930427239899916159115189750203944282452112831245063558017809290194026664657847966117918370899454831569647453310475113285830784245335594810002325773466907063529002984225728370655976588510438966759450443805055558947620141744816559766745805509169095650812724991436584482038559466080040943416389416819887993962809748442868098412429165661083701349340128905289232797256398545097784537471525703866870606640099467969077831534470767657730784590230839127658582173722305903280144500557086555149957270847551088555900322508126387529730963306890330377926162942906292196573128101963283989598980173561153402107668707669086235360380219492256202579098260321434410672573721201858470978916890726911424201235362468250552637257945185624980144828885420614074061679963921770657960502246738395496894484019640694960676704809578761316080496007187765572080618960861376529715052982079755633624265642677472574359877174294634209512537745851732009207313411084657318590906448479662141800667991905932759667392991911065112900116723135940717533428162747685000728630819271369494539359007795102102568478409602636211179395071006887942400774018986330520347543810850657248347353339482980360770134986411131157925693985096127080181152463715180821419462415899487243744084307171780770896181862773159753069341805863567637650739214767210317111556838192938200312370763217565114374639907080264353352393910295867935115653931286723353549142404605173636095078513986462715722038177498345086126278132372954948198328671888353752447954297210296517596631305692742737655678134808319840878554294150969114115862925273509752798734977491875797295523695246087640416633188500403019657449104593428672482220542816858097112252953026340728999685574009418504454231535543284002557984124445263893959758956597011655641657284225440792234708989098156536184829961664010386501915164972909479046953895633985015086744710525843956654719097798876823446202203350396735661430130388446274321955875411882329084646743240588654623443897473384925099477269027842803190148391611001085136265804774398981012655314318619788136667597502148094994367022681889145715541220908225697671769230458656196431740820044875577443694019769757728428936558451542092339903987128935230392997336210184578395503342475206016643576711196876109481474847096023592134569957722434674592648658748369778074218190860540764301329693978042828393401519929080090342540248465916671864181640091674501390889161983073980668141780242327319693628245879920888701835401124362196212363443053570906627639388892017554430170331722318999106261974174057561845036672353833608562326583396308637342284392042003316763168930788785477133007472529676715383539558443057331035268255669611283544774076334550886884963778748605245179602604673435646094017042430610846789008492713335419592376709952061094030863220309165312142912388357038212262464819438648191198578181096488556544974655276616716958681094700844050634918892031958326630831158801088740662414003433698367147747789572963749609723928640070847110670221303376187829699357052267782918982694200394992323652844580244761204045831782425731859079915942584655805398652241993844992485059581013304100827553988963208163304861532090951770581575204821468977922198571249050325183417987020962246375338141942741861876662918038285090086257774048524326790938168364617129393396444120189703882268969318229720790462036879020712437687184824904899376364296153426286104760173291149454333711976631646866841505270055238076001866816589697124824539132611134942075084337003775350148293280944384281508790938387258843942883406680056728277215126383217862965001560659769110124365188387646343214021157804292894713046984303456549570364628691321878845509255868025523115726678057388546191779312768331887094062518579433119710730788345930072952857861569324355946174373883291128242638549536702940267328802316033000931716235362673382458000334331547600392597124781092394102281419666951985067741684042947584860224745408983415199528956357341003115363060315085231714395560856067689312971646119783092184299796709527450367025474399339841510277738705736166324200317170902308764952662190910651698210180213042049210862182046825302563668007880390706164623384144382942288228976253981848146785137376403909856302297893124332707538663939947560299540667891222836342261538153867577799363568162145437718520248046251489620424466858816099585416735992835293645764698756856305040333176763132723982898762814440546674782569572581674585749023779007513048709107698391028768969794957986419429569560687516435089699950660335438020969805287572136005812542307866252113075805589401757681980293873597315818961370822932395707181015513249282384635416653374239445386336322440778157357270339822109969161456712681949500906357684846238409609851110932014574576579488586876622794865841945455215446982248217034126833870590470516063437856675559578569371467782076234574737918119634183999025198988650361793399814836832021348872064604853903723124045340076095333369027283044856314283168341902430682709065529937014989190670477934322210588475518839142884111684934073516782843035392044928311450437541385266228866838146755908199319829036478993608427509511088137020503635741550998440611639116707572725392288064910735195689755332827924708319907243104573451047411476351353593316736497012162000344765443840155210948148415196419546102354812348115500277489788064496089320277796020443693362308427995451353970492428308529737863229428157696388766165657654360984003022040156157957473995922366847862840527439722555951312012643071091375029582431203890895078221496641795730927644510278139689835541943096800000619250986215461380253083299243747265467222847259200308492515376168117904812651801251874493757808946713459967983139300689905016371829503315535835070343688462898945823353770146705325683526112536363252957175321980169673457094501658764901117608747273350489098989533116650820235447508020178386575008574393820039329135415447726782106102173689334158095302553025334062780684521590772250387101171856299444585781573390190417237562287404213814634353869389766230493574951144713970551538209146503946762647529232560930890122255140548568507680209179763420057504216720417368251896351718731913155313793676997163437892141323514199296058914046786457546116086378607352307102851992554790259403283207747115687351754133449291906537552782194522283126891382076281434730467960535467555825087096050720440507680830800716013656329506544387410636115315357139475112193163262635723594579566110516785940051311626574082479693831612227754533940968823811857786023708849234854091369349887969611422050167724431341818733768794606603673324171141472518229636940355466302074290633265119696910191760970421698307946309238297627568781815707094914305248271356642073364131481560324201884019400035459282406691082208209762927749903349591827250110727047497637062404032526675212439480812631687872393237967496027723655415480417090789512490307453432700263782669941973704879965737027868070720647496574774162224427348694402800593408534983122050675603302603504680381349799084630166214170785574957017219450425949364879755892351085064088871285475485218714746323405053426876011818814509231140087773541165030008094694287051995701604131969818792399010473517476758073831504725991084764928062941044303042113327092520084146530054997130444045409347370750749653730506366004428321955037580326282989071075343232308511360017773426676988053584299268504999971054383365478033608827745774376316326439249036673810322746757799853932631209643784302725763139807025767999635353944397734611834930372637292183770845353170909573437876847665860206892198297084837025019188479893033047576687487066750210068539731599222981270386178891247470152069204913261134720322820712250243275447886151097629303883686819985245415266509464661822941066785924130566660495575305440558092043319783184795532742034430351499511245311091071181228013133923967561839338219004066672564846698345167415556138712583576118350998916445628999822086488179719623445916087706312346470124738664823215840196385871692641055680376447017370393598184178952149240590889214908204279867866991011712115814111748112713701709380936430111197604980858067455908961636150274037975629223938665864510190972404443992495728697109432605200130672015149525850281278434840145538991381435077908874183153355585716999600307898736448915505392649239370795320840876668621175491406445116761569680255950212344989465986129483213771669236143433002014363386765043465748457918485146810710202846648582171762965259465798543791660215545034715474678923420576125640299347819513563833907565419325100287437371349671849691116302287996919823676348808756316621988071240917859606292501676763357758132442795148286889027452111346464015841256011522120195943528818137645625641642830386389777822437752766683875834300886582893861230834296339246678109160855619864297850017994815773570039043949470902662430919443183698756539764787966694105898077562843398463559311521482788404875363543423647577080289771379159027028248452834261060782733126441598251283620253120015420413988577910653116935578219106689906221947952238594105443205562575660455536471540509920336115036825804290765458117944807124894894149289028776443027373771078136624314581944531944204137709395293884960842541962735319824318823169746398666746492811804649474259974299328762917527276707300294088254233396870314887431840624759918626148992857196591911597581763304169292331587410053943549796236469022834848500153451355957201719497911719371638128634606362436210424537037663709099784307368049266391301868933100742608880649062123377738076416258590762564900322596686998921132159955743237359376283456923208544355060187522188400053234240565982797926624036066346281706705651630689663564342593650245891715945705988839522196525099970719223545660752824474904511587614098059752718742719010793257372288373268413937254454537407120304619103470371847608553710764987137812673551245463244166219247392998360315798921310152965323348342440082617866085843993892586170416226532852886354494801307448849827545831216657249373996861110540777362524336796672204482786273863956723057381541760365948317376870397353824436323030566570953812993178293347126987069130955232844149150460148301856067852953804261948156242618137172313761887023213542872805406436418058949409965052773970035976965730911982786067157651659406070357483168185315662895304219778611529298219526410270601021614409565250905378329549165254731024607000597893165403469012751202121297908339284998636886291882641218448482492001617358079716082687720753932283958936976188526624321221437406560485645016964998665581292069203088139368129489146324490409950157705835704406798534837478624824276092010576490862159287610682817281490256374248415422718977539738752423393427377091561683617513402782022126593149355074778982559650463162047393068510802893155620173889893114693838743089124424456838897284689145343803959048692675738084724970473141037572288851940037815113612583302228682661553645000045577559611740436688151600763688146797333231047132598773854787150652186021477488487117259922718107401239203929474874702281826925773439430053949189904841805737303997329914932059912732237881830178698995907676755696476368180811071927093923547621601511088940948438183566325470968336895820076191231175255805295839263138094279639941862832630032332013417527969708697747666676631725796304305314112776999047411670221914902731736920848496753332176674860806813076667733358970969406430244375460707735314677990804606694073256554702957221192800343739563117615802014450633722927174810119155794885471673950816811214901418428117786156237058309522330695903884468488535926869150913931601606732529902840733393041716763614325263910417834099282645921686415342860149469119320825408515560584217114747950436005110627178394953218321317597438333560367495700812601491131104091932426567908768390880978522222755839427748601971461089924898855047608494015006830486359606365242647236861334200535644351077743771330837169601908388857645574276837844590948511627833435231522991769061773044615145754366721242450724199320234592347026848560482361947474575685661453407767893039046919797649495986849340291480230848949361228328636009590792860121895120929556161116665287501406255384887880633475665897107158656439824909896332228701012349526728849757355098380594650765961945669441377404891423260408228214080226943228593344514144311515318231219936145319875006764604922562069890539479732808477904354847659003771683170906503360906936836336523016923581531290087560686986030301816898328753964356887379459908586795348532348542861548614308274830254127627497692436497574722681592316624382440255297488814071711550887118082009654337343686130317691227360500541269679192429092312002472822599963892421267463271890471833130015517441821338427789379828540415218765269885573950419830244570437125901866705499958739314972579674317476703924740979106479387408854937546425654922387905488362875241027805336242698261051269813675822458289577897055974723476704153544131117798842549059159888637932820569364249078742518021682634311321046535826358386284070662800498632916355565126518759717917055656520282344285941569096031145599019854754053890465827958379161740682716220898017841099349984587440797649448460804501331673893052743509550768774426711988632972255452236185560188321998758199272135922542072556120623537916052140034917958109761966865278283684159001952727292304613740889609162958115403198392441409631472375322803248986930203214314045796110220322734389883309245667382308717003788413303168124023999910460383073765597674857279223146830845908308031396330322269777066479621606416959501918792531537173168978467269726561014309677047205140782710092480126672879507233222193334428640751000442421130191198563983144130480390677520480811495258151004666935548496614066397065883004950620725047088181635083736459390303374213867854810304627369351524126856652481628172391926245608814664960068998937356444607670655584194654269443627900906296113814589171365671322844978853716712177261461266540803023773091637478518002624207907601640260084965989079754132103346403305301104760729329107108590016872474809163520960426795498240643389506833304374978202375809293587683175494352694787104734704220919848627448117005089448420248873773539079951570408966604002727517719985930404900311149717120170135920999368063941554286613385557937316927044184199277265436392195251851243843322683875068520867158437715706423567628259963145568854989950467386251786103266512080049746039314711671454383727315981415427689035273779557030520338598931370390474661559747960569706868581374890416236951027545157273356989726866455990391012238240435196213032145226734026892786397370416230149992915847955460536780255280982808943393225874740176544694836433074166052006620366573828908199730681106508030267926170513364629678617276798884650586205707302747468269772406859638892337204837968030054404534552425343641699078646121244984244734006062747335621751363217335935087784701100774334331140880392836970137913243063866550919258032479810739262922320640628370170834408045348249384327376655880926906280779324991815123724673913024254170135995039723942606201837844365003138023180758104055948656347697937146132002632377140198973512665575114632167763552631096846892610016223588845687750781093668036070724847991936069186884759522324525758778451062123073622099129028358591203799867345245864527164839443986216760625863011348989286738998305874402112154331795385830068724442730142063796220211267789349943480145101099394042757785702121648293559533186549601156851183803445181285769239760809935566521512289683343370444399861227485998239250861429775480534407025251831197636044019523511137389256700381710639981328765613000886581159393046983457805583467246684146229963874627677518274101853424005746597607205951140288275248458457078580970404271944740912694942739304197073912769926182463621442613421533592917441633983689540395147363646770354586157638701933648695314238134577436183612362638661680678785996394371778407982188675772923398468913414999385159326980295470696977943376990764815693569792162493443464929277689876709828661593752550560015154790683404446254533699331676175432572753502877005034139642726101791953088346070676919529817784332676537277440328451751003041891526394651834141270493390215903818249400365935601625076205759473320999272335937099181016968315964157281027646325099934476584359599860218187270351352820513160472671511266656029638715051509426758010332489516441780829515996959685014646674218195864742827663436425133681651713480012423646777169550872680336270234980648290290828785277622734009249885776214651181050555536849659509721124656499315396980118029587012921841524034736413350437704592153532669964448941771849483149183341234608304860672891775609566542440070566743468748185553162799321768153433457832143577758672053454493388440531115502900613865061391746503352733753130690664027565172816453039698323975565944987621692555067724073863829608039567076128492227923321355300453884729958937787585796168427749013832405486330586789651948783626915741158508549840721003742711217571407138335007687710346808399684278867805909157624871767691353922969704205069885180026294352437011594738962837021925266675647670571384347743332888024120970708090962691019870159268615354698789581050093911976911958738849542755900956047934532507830824295641702622204474259893125922530816158426103873739866647736327622884000233409499153286193377920704959695146803827844720889444605382988560434118787705204190141028464446215634250274958862459294166582249399518360035065980197766328410852903074044865684572659634908580964426384492913845732338782942115424934738383631952937069817932881779543709851594726236499355735946316089231033072007050568909059091036006515113065722449683972288742666333701927159752114811316628524852944157498576968680044566389698530881329914811373648489007780679659941678643733666175788729788376697615470560203496880851821392875072790679259411889097790909118256613821407648260912834880484663200358068184898369998919251420456084283622855363372762401774464434144448460247771801597615322031607304678472602237512064410460196759608682119891473646841010276980554337358841569477192619551507117677718659956692168962476482638259859004018127451501614229102630448563696625143956460606309014274304597178439291951927028681968691752932483561223436144740553524665210876723747376135372342465383318062309910974499982033854684355585088787469784083262873296730792146377942101908770672705412576991094314064696557023555398277230005784029577358149577368683605754547699871023839435764965025023585112212094482923958258832291986890927492359284305960531396720996997585754375561742721047422025246897597568546737413613673087454831583856626302501065850483997009583836247085702574302907622217157084258756613290149772362775614373082913702990542734132047209227347737529550876380368661760635059122428108697305601172604318090267929690260190749987409682297577171066153964105129877527736283679356520498717679150556438465887842291895636773481196236275654633680159927222915585306646998180012448671063504959179055843127713254099022864555333447718590042572135373661719135944745977572103710485187611523873220410273762188378051342322635546316210023104045076874343839478509889859569966965084986628956678659138969148942002872959929033730783378189755529479929004087615162722154575910378392085577790224251035537736274408782592003442191355267402596376422499770072880158289275296395848055871379181584037340404755874635754019463371485968795413461136730883766840347842487034711267309993660533902038690435625598088976435142479143158938217058237085426546429285634610371159484397291033973539885169760535364637184550193819238756433043908473488225585384292777266380220208451317178412870095089917358830001034921265667588420667594608048866159531686801691908468443716200519673556671813075669271520074587359569936941292665736705758109614397560888422140262342401596660711883511002188234892384096123889643223200064221229822560991115859230508938810637338450940278536583694636115411062834698385227519997821650348521797914355117611686134121348024874545858944673937597202411783286626953499768924665015130258640483858020473503348186466616093463539380748131705101762494312174890794078665044857048679007384397729850434094460737672442223316169418760859449989306540291381946572597289646978320384083914555461087686714206569174614818854553805121127183708744001613131256718883139694495075176598089813740776038206459044800570258813199713003642916929260585058949083868775506518952710058745975347476116915769370730282354816369008416762338563743279898406189060073222562881147368641449460993762040838968045707036392315790907911278136611474100053488811100069093236586367169406982548860723927287292805252522964570303664113855472193163355131369580608404259031709503754789625393886785709780306196997591510389170865858488267554284715938660618651094867954486554535819461227259511611132102260229303810061331467618095296492403255702702607889388990320358987619719669884554212807761143044858817490569271925712835501170649798027237174793870170286143906618547291289320063435186546140739880977566481328028592773748355038507905210702816695824056171606803055153404172661768107226360662331403000213672934284956237850828730663010250750160130802382463331819432025192069000113526016584286456886270346072094090735964295097678554928471656419084323179660454863483942835230602074972873863767801637565773263915707817042805109208791311728579519023576226811345767274525833492404091304879759154776025366235204798403181202195627921697220658145634929336664973858712078378125687689150531174564849779264056434687106584881992100154430434167147706371686555463427569091451658934208112946118635969770441959474860092174344025301292932108212606105337304487499128547294874312306593828651636219679155364270723064463277844219496545386376430324282355049761253208205410137405659763566239509981445234121432307511535493395590328037988819714324427288402882381988952345421711505267970499748832464508525381332771852070420912047037063725600337517148432271206104358856796928588842716953259507971779845655952800677438635382843101924768831677979020910992806857884753036479133458495214599957865438723762562325952734934816579535267140672356563479425129586432471833347439119264467755829349834308141683555806274069965978447132804547486079385349733473667817123410528038782521109013364269983302891368603296592604124112129511078058960654682421322497396202991388174581585948574328746063151761233643453486554655613590472827536814412148175552364738765876782847736038538143485266079891385601929877629715901866894463115765172168448961696128302196015752963923259303188972285971619919783239974468214867032202514209861296023407076102722736481911248428609624133482554282464649349370608053366464069698909172782276246708474351496670149956696038610127518267363321763996606863234195947104435898617286648187145833805083954814457717863879066015410702301717147181535377168612080242329606793036659853264500897564429144986141803510877912720469014329836208054304304339528167091046844429749987771287431181819400273968690153516029010125348715905583930524231045749731350135193234394514343457944225845787186053648940928337017794786335219163003374240644098935680314275617189620575264347133985782292261728965882706746665152968883332054863548020540993968262332436708273110165809694432159655825203860943546868823490628224491027733470277157532688505920396215813959115970414802243176153429424318655160614181587000877471019776593895453503640204823366441499660124538964841646813160763483685857665586690110468909716210137539650656456665913456300767023130814577915732988650811316504788778489512569440507628186547324993608379439216713886162411879795787842065532518903393857499544336693705611270494667976051769763422693526433248563464494953822060126585267567169050252428921978393838142081949338708661359916672539830912622262987525910455006346004830557126471396949191059502540053840156779044431064306774897998656366204986607287591623456214624480382447115379698576309679680203153105697861448711427135850257805191150566611956315981429327584836586930005871412685483880102737613969143574291320922684174372306311000594594857835683273724248302146412890833989929190180025189728476084218397775645545595933065720424754085755276878668143692211967960910194257740158449100662592522364224993981841140080974693235355114584997639877161403634550686845001702581803531676826399811872232512946563999657910301161360827282988359345884899578813305043627508618744830754933399473787658354867342688897073227811515969640414577187909032880521338437490224063757616837423070964858571212922041632098127059712954541166264430299825470854906561421331262325126880712486377669783915337841564283421986307933652776656879092161892378896281132885943458149803309756026926582768942700274462606302011869691952817800412604371931456622617693672995734324427487738267988973907611199174944789866338081870481346590198197061739031210422532170239732331507144719882108094749334152489245356653443671282986518950974170938797596518701020528348319373039324593277564268842682982767778414851030507641005625950207614038019614383387956850488860910943586403492518084869733691480430192341985921303692264462683327874010273594997325889644838088302625704005509804010311859113680434606715627156710989962284217438070073513105735437256750682357999054168434758942410379083371030769201913947309106397480887288041774076272411005750215251491208470593781222451129729713284127517458062225528332148244705042647872240456007461771929027930512767266247243554727816624453784273071302067981713794536945504457675064293805230154756023112607210821710966004091805343659882255511230086619488069412691997187721534614376733965517461281127581474424826166307417494274517575984653629860573496484578481163418148824824237289298581084283647114158325707693231446507778337752494438906828448149224523533383157363964422088190814952564148571530382449402165988313749939042613334365389190971376508821404506910844133695898689731204131499745980841533477856835159207859053489373326151231340650963476224880549554987752002566318216907791903407613068493981751144592952811994457750987694252920030377056945516038387751967607913889016310767024265105881953908046002993400669663318351519673809508801138988931480662021379923684991144637138741553828810311952411468193015182731682502215450343332083915897025924925740853265719270125808020744415133389545256464488253737854962778212065000303573491810682642764389077616735616844692827361264124644107683389654669276634870257621436318233703248342466214107686682175398756376595527459069384979487732617662664311657080162382177178236738077628546008278971143738268105738624106156900375211193168410870192081919718168949178722440039329944639869137641748469731143744337985688306677249262927708010617616353892381058321471391405458781919343712416116638578180263010357482956795847100375106208879537966436807406996310452643546788232817003115770589563215887850695456949532635665242315197440294541152780740037756415149502008452144762822222533411361813265421489591553091949291955626607215356531075848535437884138446332401935021502825911995274067412822718583168871239871510773987442632977956085736708012894765590137417969741119549608464665780762932392291872155321415189198666418659114370153256389554841886945198659056524865174533600452939909961696493179563059239371833011805044198648776435970073171002472753235429027072090147971560798862458618217816924127388643897068856910359304784705900785620973255912987186464159420028303248280902560063228623908273835213364651658343388814749443608685736943652978761586441138034495508479364451543886133961108733053392547810971023514714530659082282371792918082583119186253078130213442105433980741660589693037707969565091573973185082697349970421874000854839697313503887902640878645736043630215438445712029549185052625933659841479804279116067811414484639240121029028407079925055275940587465069385811023525714985353540383100829827585037997105060004778169172728133011988710536735975968777804732640779541176570127319439538506787050594905126301949694384186929427118881285227411657412728384238356379373123001625824839311164743593056097982761671388532272012446720696993567623969390931129956388012272316082111170406224704440085023967044624933937570487789075702655653761404646358192871717696314941842565452769574411072124088422134069838002141112739089472468971537399116094401800127617577636844266744981656850037641440873594393938164159554547015674546290823536525574006339562448290649851371895499228975230733882024058513360035136980765975525389125545490650064980255314945649025158119426313192683639412184795695811231906972850460088877764987381457567591185824785998934756195188389900497291192054854905402124769926944713275434257296773107622380485161523894407337077391191387787391374578883605880102446917639334740291880108853248165063042582367038221463571082645291690120774867516216860953032365350619532887059095090729341724784938538760618768479913565442711148585306688417240822647816778288011696906732751846151312710511208508006250239326917322260693900330847231777435380448064087254858315645017432826954958170970423038998435948724847182048472347438087811421544699269900329996284996497898949829046634521199809061908727697801544706861878799007397371196515385926980053470116238855159725646789768607723416837662325587563271077253780402069339005888990723930694398260637189074383290612398994809622537790246038392741692096403897430122418857579158969567548923009210963872696661535335063184170965838587190867080164246791235827489574746405617891768539500769207026349061228765325776020350264928157855777547187696547983266430751294173629453812235410614462455900786153888388148453291106428168974072307950575863197043069525592900379432530269938064958090670357970523231967276683561586199279472182993076816861546653105711829321057826164120548501069275143002315711204397002829427222352082502377360807232578770983595767368192405146008549642163194253055853687385200181590950790700037256989027920375904483551940138542070659287407672651888832731454763663250555183395472867450915970941374220200816065856179218977248900842452168230869080057298735423367722228098935308402562193126071066761386476022938972546034205997269726125310265903491958713381261563719461191795519430364051130515581283902921345267474779005915546545733163274067187177207965576873532825145543578416047531238877992894433859716939824225397552374545548710865433866423004566485916999070779028412884802995175815645316746533436871988699197612907703979769985518869618109351043202301481073506705132711912756005341152765038806281006236482275122010336805870751842421407068125308084856855607275082549040010659085444382066460184596706499101621997403221759583746988528173057038807937132788072979648364017405421032298253732242318299532090100581902103626329658990074464579191512503119442764084542825161006229027673523913033070686672267424436726547551964267484404578318109963241848625182867588765456499217803668863972471235370427349076241932837310595080493933316107163445868154253466873554383875700234380068255047407592825572430492308974770549549096224602297637811951504337390477558294816848416907062706825514393644871255104928735351247399066177254810476962382311295599988697000944165324549117739277844429849138536779699971196232658576145922807237900645337314381480045608758446842298152662159843881181463908902472482983765843983145623917410399527030161237734119718629125449545724709178451899527580430114791549469997033643629512394801385935681723041819546111314323049029686014401442273383752754888220970520253293465815552213770320540280430782232337178412918066322589760988354875921940881704857085561410908515198283516543928892713749556523576186889377202707573406108019307033116301044042580299217809909845754521621494219607636905385219761104102379191601020058063489896375319822658624171697937022984248086015303297418792718560913078020141634968997175932094848417185494214576104487238878692587020581448011655703597815091567039090077167292649633461115480262800792224141237406801053348535833513427458588220745210218277480888300490077206512386079296062768112451661505963716417265484767374718086314184980199945375061634803811438727205633984418871598115086424942904085666630221369738886296727211275881143061924716575362532541044894496339559180692262904859096036100409956158161733488796088725186437913978949776008073329344834538139597273722483733704589506848175061987652297163264313085243918392932000541546407905755549082143717874179730822144561741258978176181455850012156536609470142402714277189835956375765388634319505212492357387240404740660877999060750646009811030537285539331767819420473995998749154777325757167181523223908082647256411780102702225752493955495916065241182619904047080844572283991103271810418066554621674858904904084405252197016326175408142320736604737685448581744385998907809911309554570636008076295810858086385057390976043317456492222309375187288793518367350297088085604046117954712757085739249623247757741333582475339670208923471268065981840698873573019464456860722132631169516987792016907742701697738187300202095973264668547418557168699836328221064889766284559129986513361103612044966893191752454999144644197404872502846153280662410398922869513982993695905260327351201002956199383180651681483935395558509762634968193499330401372254212768262679790470569539757650464964596537705683860861057781730333501849356289203942966178477510824903539688862788577509285381292199061102351873215781684729807364590601651083206325886915507527347131319969885789433665981842409058945762807060064264477703095214053429596515196156607241640894759508281068080277545831788549739096077273272934481272758857993949328804260756120656945447977817048650211891637714063007186090506195777548671376315583404775764898800632402020329012327085813157640927391876243185809602965202020674477503382052204949542995678317294519874483428616471436279187270573392630850064671049854548665275807689469599122545515002605987479706467453602375159136539091643112194663796020930772694785207785544382876539738328854840017508422355321959515371839029422617335335473207208998774093417291770856727983695978572319848156598032673036796561828313477968837041514726860666010237656855545777122624642711536720485208558463948765963867878406270326461255991595152675313025231932497108269300416639887310752055913949896880633203511718930509810463360889158659607942077051458029539214257635128240362430111389583350913250062117085990423728844065059768172332655579362328422671217620828400729154520780677478881184936845903871822987361219647692752473532569656920280898208068551426731156359428477998074951834663565822720586961464853971266452094948086044642893620585849588635804867005742043369370189482679992072725828293454219015066476773149407100577572843687492958075720580136347857126881436088814291618634062500094625902308337158398276124662048138819179722435154527852479538605596460834075935155387673159981554276333176264477038697131087200738073820738436365868582587730443062706286991894159012183184707501528684596973880838621762920903163149041975920863225413979789839020934106372393347718974958609340472371458818195458253893882108892158131697230105645294670561118222861781058664119783486594242209609540090174455135682663937255301291003193843579363379241133097107174403166551500724749241541760794597783115254249585896341608418081635243793544411613420594890821318043644894132808597375335826925342409018111736156727925427560901959393713589631508743320553283411872660188659898186485821514606375417309644315873248585008760412710765565140792645942244583758844882321716307032084513343233291846044568796898674774824124313101003352107324468359188059985878689148944746340714367930012288410787277919411856799932355182374071527037931180524480885338962588040437361240977650144380287716318916060443418427959805776249260364525718734955643264023025621446254452878072844507089635207834597358865044502732979804651106864150741405861899779220797060452671532558456381436146223717175850018333650388184200225159296368475339444154316416205425638526699829526781446966067390162065944599418406232286860356106403784418154732184059989666679354565429591751209918189516501332121716131774536010694067403959744518326639065613720854707744066334821684147282019309244638693382605846514678222068563939484796577605593786601882091153568164859441849171287821812786638349873011298431416329120636297816188787548581495047857125013432780883901092302918076304360593446494115996172615968954609228140557219507419117097674353344683754125082819258852806438615527644356152427289357435644126796495991794271103734417826575484132296836443822157230764812977448860544889976544634541111914797867273167917600660955789665199708455311085295735443303682545833615967498318791618463342439171177476125003264454006479437271013218115141235706905147553203332363694526405853721284219256261101690375257451572482323977522269707128435068405455067049294563704771155226310932046148726335085190144876086819945695850723844013079551042704548167041842736648160666929628489519641618958762819183814316872085822151838966662767402082063295525844592150713390403956523680252252619772254928287558685911308729785433722634709335441818874781141525048458591107727472494748262737196322331044137432372454536346486436222739293255343984214340768932817521033322064994795463640506338142056224190870728198399391796567713429102099840129132219567263823033934249117341371614325590276649353063960848899448924340047598903318070305636237463204830888996321783458719298514242554068024849794031032636095792013709587402643928408645186191309154450540218719241444053134927662170474337433861287158852013674137666547070942279520789562202123836233385949143022411915048701054500071359939212404334129626013324430603551330572339310809872700235289401885722620420893341100451939178667598933209816976444042200856457655231397711917069679435170262915764572463131739636001522033001428012828318298268078572686869181431324428987422336221323531929534151350692840017622903176042064933333690797706971929383649013271727410124677276544235427321213099827915428531599483674683902637909912500943946056044674635908441701686203891925580219655458799675511370505339913227144842912362455623596802277274203377498984107810055233185641992190685467668186084426162871189286809580514304575027291220070388863467467122744002018028326595869527338397241666061391682958404745701454182021583853314850889512840068993434451890892696411408232450350698683514980041761648679461550263671666406881999745696444284100724027872035185370389248987615533580740263472604912540148017145039193364891341100444430449568125128397065455527472641154042696588702657853878404022701886083950939340481930098561628844604650920189995673556115583506019234981578215389282156547723625411378545017825494311257529519441609783241837775822099247058784239720808105551200337202360845846310274480586473750690391054241745397096810918712267648470085728344846358988110731828204671587524884602306656204557132440923592339398575358645305593335480208729702943626994829501302216878713673573761590418151973485784268864056521036774088995549749290621206425668577408658516418257746950875425496241265929199395370639488955161048955632515765232333553755169083539620488558261902337373207870904854765972737311004381689928449292554647421172820801170997652990917337489465346597820710339165764987259378326098748874172762608571298417982992079487000879961448615662211730318824446091305074094694543314818433676532442241268138285115524056610467659505327319099878281563660985138087071634334565697173021977991995848915611994556631688647197173847830037273010006283945298627136018864387976533260610863761274350216169226147774978242858903864899608134474072709641118975408206634707759421994962050768488868986961102280556329187708723208046584802077101655627694486671222105517411091935044546254010134310678688937646141649947407733306072597528570483918289418547511624689028021352267123892065398095241700435852657499889330061464602119468013719460110982135825399937818803099362811475599980812430640776966805149306335621601808035657558779198179445834992339230495589319492800152983963943546138819322833049007544040460950920666286176923557166834287139490607262039051224213868067825683022157374211079260871374778490522504972585826445354878376042279551935093388332932484357613432525258141299080484872138179465654764085328164997394244576757947736979756102976759760358283579516266347996143301428840104318474871291155582904692424395523221238809411645442967762512773883343140251467311031454020901784789194624047289129216370380870957501615348935434245101645026703149613208948369645379140186237963232510403154156865024451253838713516279420086913973127064167340712105634196613497949023024202273855695189558967105335048712661661988578640664994358595608262058708540555359192460221132393839615679553676110404414812781927517323374675352438911819800356210226172214591633664113005795984227281313467973526373006234809660695963028310871500505976056232628552480989753891090291802759115619958834965533060075368330962729685843046517530424918973939150140806713961241983080276039538831216642375030617035146399994663072967730108496600216315288550186266011776993533524261164035901398159201565159247301415596852022180800140241500631006277503124543591175493499053545715035036307897796608038808088276667243715415203055125245089765702591466740580344867238717609950110153648613839618224926552028529091664906509360832008144898920624433955288586403230378792861689849620194949360575018732992926230279172479052688995257128087849235137582313915044147577067440591767255099972471616937941910899071564335763757511999360329331382038886679622325695814029436867135723404996902138559975524544382449893762081782599599919383936417180568430200338807390623772262685191109928804986355800784395934520799509790838568739180526786094124675570233770657057909281818547012756597835851888129616325640600114373591674257629056587010961880124845748756759490277960741880451755076195205656929829331339297070397721518921749260854044334987562959082826992051331673349948936339830846052645587960798604071798309262078034609386894357702497036588485414126767418597086994762638780351634719077578956763318184932667480773794775436344575005949732351216439837984517892343129077792451769705247331230287302924352967415157632900315451224809383333793403711846827702016658476541733609834744564424447382281948399395560659009966556641299898480303081172211256112809117308313158220443455022270816595008649015626924470473513643965358858234706360988893068168054346549867815160508473451497010498414960616935521767650106105058717679094409745267349944218934697205804715323424756464265752933264299902448769081382604660564779733717567195961776593340367258966375278248080471332197830004819766243232967988664785156553748218581897200322070639806173816179032503227172942393955011086944777682552987762635265228337773505402122044136050382422670701394504786611134991926728644892931986633419055191381179322620275920563596147655776456578166142812044031041000769432914639375324305322217591519404840912787783431634053031815900419918751094684393949069141536390781809515416342892979402092894156774676507683275211900558095146738807893240573366011214572096486427976930221624937583074356336703653353274271963351687407656642122733039530777331358170633671532472141037362648839111554126937303131243963516200468804940651491318968764012441155019676606670180837560752916486368204844166125511406304464031907190549659724348563038676453855287658493020272484126908384297651727844995498304802616790154533106805013379542352014231432168909745621672602632750376053774866678655875749654592851035186083685460445946867045715029044300122498136336059076261175291652178613234363674450622222960942200386947893967864895816649334252282869912858504232028152608641470898738086788549797856842595733435071355980754551860031119701165643675703330357883378711687801121859950507761383153640036369992622197522214299293683527896586712471989222135170875211175219938313232909307092058178245701433201136895589132294018645582028513993419033716349842273558244188874146104128811322719380868564158166154422957328594799894280563374768273778790705367909524420835193471346759467282661515443786392598231352723705984566695499793387350162002941258782633525644631638074099964499734553415216750515976718797657680818338261220662167462525465510838835077189984439195995638067675346122942588265396302716531270609965217213014572865486192212287711195794656461958854797165139993834550837876006589625927146212401186437799382511532770924483732134976291718730955124393322910335725222529257073089702702969409216188562578648155167275463253438230156221986381027261805592599637251005828537283309193507971407340423309599328240385380598699871155705660681776815391089060285609840892997393022150215929658597115256844550004720297658736933251484099357713019612999602839418145418554280593389459879543861469313032642023369638412371923034899041873512802016732645673986430842123930515141121794600949739613057178915916376860201170063990371445462775648741437770057411289213191804644737734074072879631773924239767416655816917900956005080524287221350430011274731695614870324703893512223588989195043454803458790529327067147794652109491305934414891427404031764452031631120949906918532734127601073613403851422622662731396611239608634454133493900367783248708435276863699212595154661558016313911042245890748389461559831708520237392552381158805618015874977319661415159607624056276200732018816777122122359259311256815687451729060489583575418088976851507715168039996562035292996553844420482656159914594533530555454480343706995442338780818540050055116544660748339563838967252580731764691690695494876237918276288389290279473647233778796283060715853139431075669948531923533019501331869469691010176450710399109228040534242492265549910457977555887996066249424814425023541761037103297968505077292565581221912602681612076527619077554707140097974282134440787595106610049322421802343247724888631947892517682950585280506673266257514797896798957677628080300888373887716435945246574272413893812803153345563505356626176620143863575000898074395383163148105842553640696719837620344097840726380301825277809796870784314883552937242107949115782837430232068965269885274197737498405696358249261141837597229914276597957970631504341077130151720376519247698942903826309883000759318368559493188960601316424492159670635890750205692823569705902794170998885570537504768591196537197147363812260270873726578385291410369338812976983499354012364144721773025644187321356032386146848411707117822481192199266990685649958699679790752222919070377830470694419730061037902394095156597772894859697479515587391749817175242547322449055043198393069447960279512613804851131086920459757289740841604033446136475286020698049170574959244038747874743015248748186550163808625531407833547920105277122181024261772012339207084943912099412077652884964854119668596418458069791101022126672631078387674394212572779342759455469220641389247530273056638794968194024255105749324333051403324159998964515705947122422323835950353009898941613188030490549143638407784150556689243988490974307806977020799115975889006375940602331712628268008961611605894765843031695342267993674070007891196333692472182175662489918814133741040539806070479067257521095869578577812541663250924730055804727235251548909665880597194253755090347992832693198568002733219751247156542199325295935083434513361796707590435303968786738599836769833744686626982387769851587676047445748170294296337549910441944375952186602072047233196394102811518426117289541845411045772790306171525669288894582549673690732498509951920835813271632822016943099241161552310630809748687558403995775549400233275680862383664165659594721647244812153182042206411267752794779314894981006309678959497417142898549100466409183653626964806932499991371136881934541048529771530172912674533661702792975889926653033939736195608208742102635460654411575306459989923934478270979171075532554372993429204937351965441741660558781823593071560522855988185887483845176116009583813300630271597925865688829210390806315973265455746597857734934996966591846425012495875033453544852550995242892363654280817962537694546654858697000260574324429773329288366093364115241975658673257312508550858389608234181397625095949443234636122449528696052152166218467659183017573177110799314178131453138043772100674370794299339091366853258461244173426093705684995053255846528239739162656540020001001122969522309957804619920290836646752953087230673655476701402263418361270845949463840333769988072988736843228442806618065397693379181392993255421198178539258368391108236146843998500903865528071250165763077542973607879875435051990317764373375174127904308730227025502652574472427810060567997554203370054357469534045962595053631978821073000754299198323452325731782866514318638094713026480064466734578866937219150537762418424798532896446177902155603531640052145015212449228194359788564621870959228490070945034832187929117805873505961590498642247959378118296494678459822197081229310339667581500152473832249590656976332267101035373583238719508603568057561756441812473945583439028626384406749016325521061072958729526585026617656156021358231587879437618240397657983395473087522909177732836816117148165161152269999545151838929825067627382963990475761233659559604932698241982969281051145226029591958767404570210095731118095492594679158053228765083692846769985197004709662017599244048401512114797418664508098349975137067610759360357038059098261339116034557952631803864730112953947378598590227937457146113734871627943648047679332246679841544405395911087368454942656490859151620104349409091457939523332367201437045676429951946727759785152812694544920970331338775486063829048476396691783833270621412930529138696122693701507564807424698273371992798967536392296073749467792758958700800581587801488509104971897414452918566325715806046366978821280095528602362992006270252924759803319806259168984411026872254335141201650178327661011236296207742153426856168224223070535465261375598639100413651632764505638606998268781266876821205578876148276231747501935732901757274623797292350165101943199964098507260340261093414781321022824666687638733219453140611442024147439186824594159591554820281078210909894698072222360528727894870814136873930249454618143065507974170978557760782070681849249856512534514964673325897582848484093867794697554841227517971296371718078260627056336844622702855882234622616841431542573936728167249535667446099118511289774783661931101863272446181327895934445841118590833860277573130873866148291524818050245884457773464094228697491608588211706754069068246696343294257082798657438097109473209007823377505227844657721795877879455935939036734077846470717452402372657021791421935312309549710166794090936758646867786457308463563589052403936419073035828900540715864888155601433587792800068533071601447241161387218293051052071770625484077445363986848740053312768118646988255235529646358575547432795275047896648152295164822741777990541237073868262406272741377742706024348206481567849344284579167546660265837178875135139528387262938498205766304800936428772525725923308461154783381278129487659349391934165263477487162837408350302807435258488181832086439858174368225115399890957998355080482364769885264259495616041692298433992254431304430901683966965065689553315616641378936141175102632139447190006321587864681820814397933235617203975633925995950623779377529291026477463873428689980927597663896634451594290582303828878504705842938863733634977877630809305297635307353418646630356196652451976973266633725614992038739957395088433652692321262402361800615640475863631759432923346688836965669484602138047889956577087612883562605107103563288124475756036008371262455226740896225352351129651807980786857429379981301857980366765626338321069864573350170107195295051202375294328491784402514826538623045207546391463697721038287892305381149302220518700148675208504035545073717027524545476800750497308956445262048220160890797916768963065526229898148733642804254272630935310389577947754937700084245557594238915619607558561054388089753912580326101526871349031775719343772079359219510693870169653789029417612232765249131182800373023774183852908453864009298600923745615882044360254774329750511757437077607510915476915905415545188178356075982152107866538783228184070995582422424082195391213996170174354663123683707321581827306837399782985303417229176106653924028397107593281938800377117794063246009355716464662826958069696978179605689603976500723299975190273243138731388857586853027992896442097737033182299170465914803466111230061601368706472566197456422907483003052700211974505169614781344554132858897285245827510622006919250029377158252118535352447518668114936922032928874512625823062608389868116543820219269920818567119592277200014831878723119916286024144983930233453072990727447296002872071578718468169797049318018052195455823965301872420839260273758329965593574234502346353511852026793383403487588545562705259191995007033519811740121895060998955800316797125389190340369926139964207227551036569237409613111732247091082929729347532486029824224691962320089760125244779370244103602820137718941212003546776843767320316168393034578862802967310858175398296204007089323631369958706691342370640853510742142320610622744475750874900897680743118383005333692422920785136856883364004968656204672216071564276268815511838132697268046064205545796260638270945445606204330740842506208409536472204816703075341929844943552788014036102741142348913381721112951143640640554400604802409336408914149621252800983086778983954665177091025989543449833759057658446254239909970786357672073118481745687549562050143271788462604240412021248402913415834629739781071919021279820354464089511013690058980605510582557810311783472509058265945103856390600709653051598119246733329989626411872781016669337589937016009813528416748697818365664394538423944471674895381992776046220127680731130031854692153258856453499550533952442030634655944696432531870847776827734990631069240834727573915507779982908531030717842019096223799027128674467013763639134688574851495759380456006005676597372593452212334017591404436097614448935344762457184144611094052520435754513161104921308929528900615409548152407298438691051185411515397951951952084098588392907919550072324800689362747206148269744971156469551886200865879345793550635188634666277106350710601553189859981933831881042722197041548806777347350640551304680504746323754779094137911696888245663818486217505325283325521074431832553268670028716095006550003844486369733417944047737776592294693153242563387569947774013535109088209025086468805779557884937931965600209683636322051594683046005611394744359838076806650569183068096349798999895067081810032583271404237378296813268073596356192844158702107359575674026500905117558058732945941292638940955210466590263088504211358497370795379270966941455029698422785522175416673005608828900116557932417239885413114290408153649650365266718036844193554450494168314992696613545807085048609518233903304725388308234881552967849766629821503010165553550046771454317142829112735434104737508845089074162391073883224944986494053531562213963853582913584415785493412876568700753392438983149244203771398942780834864752186272361413495770641854349252467196593700251943831973350083636312725028734784634499802718958281239149097786753525188557682288389144926635760820308492845561507006297135001761069335007108416478733518579632885929221774997902155085051688842555144861059846838267622672237128405361940987397037746420602454606527683852612752769813419997283219712312087149560196076315089119539616377135783136109092251229816115466511723647218481298613653165634838313940004828651273820512311573462061433443088179114868821747043861668940437008707352463262899338962151716911567158446161644029695244248281476286992547628391225876921093060206544392319861735402127452035917678039009894455644636694746055557037747759961527349878782646975808073204981212403684794431808546328719801101855862688072804374741766550115717876224581999609945828512609699080591065309756949365492453795678375563549804604595566551344370701166440237878558099030948355595607101730430912463160633258719537421296203015779091670666279909357301460615653262555595638330355555462784303452382954134143880464929919838260370869190030916095410078523826457983409975024768503775051952575581164582191525432093200144488285671183071512339732473749530866907709644153728536226703129405137139638767540524714337261770306453394369040549519591727877373797540771938416248038570036827767092484590776313855744629290656380233932008448039579422982000564147512761592082091319429148996883536264417299685794260839516586867903978061031485674923533248750260514580600562045837225462098915070771957993725118571425660775548945458824642917860837645180830459289321759932052709514617273096939223634520952700682580997032500005561151038044024936006397448030022603354104750648344762517805358581750368485660554551171274464055283690425510365738288302683270108756036234330056941381890269534661754503306435887922368328395061372450881755211383113705782273667213891074607211883736942000128899931664071669995562643790488028927660411494853928926576045984294354301165302093992513411590061587167831405540320215776675824626624658861622691016707322058714459658920397344537748285466416222893723982263719406379766443237603112084201303660443692878332122301807840793445981725311635796221834902777008695331590890056288962305796616061787836933235498677309951944455558870102754668651151934829092739770937988761374198252318191178748976447530217837929721166520036422400633686719731877597102660007484920465508749847254270353169947073423328911585295494738142492521656833519438946761409151479924909347270698629149513531430446775477301484433780844936884900062829147304829741124831106131789430792978879580728087367562975365767373862554479520072345499862803222865922637042880429716285954886587510868453084370584650952830395300679081360216259946426705032763693615841214488911941190879838356837908817936057896380748603662919814509597980792252216144036679013851441584329829934573842315758772853799217074434855122381258742773480727559615343589967480464321181696718933338618064168490924983232744605512213524452837392306484340744768119973877074844650510931839962422680761079423615876420512101140828636403591926913290596239789957375760875612926594928092523553501787108155026457892581524721411091396884690814620891018264840406410218059208049958475751865811243725115257950054402148644718559714636758737391199170484847372440721549550136708399015989377276737421695435425713037430956120466410576328218388683632308262276649726252413626102649615015803947822862809487934691650887778477154249414415213351546214808024904750223596295990907461648527612428123208149897976205600944683355610854028383053017890369164552469128107648721723887447900670251654195558898864148597262320431146700490058370709750781132536248607829351244990136092309968422623445834323882185838250266117402121128915764269823677126307327323537461695245715510551388090527339845868051677985910132619995293101692597684539657333155596961840665934311982520481850704364691244347137635477927658192416653592147978486330752868353163968816612004837288715854981612900127779485578250782678356643986878759770644310697276680414401720837267457915530982232360767954591139109004177501217341037107732764663437709646577936851841049910069444489184100358441070414329159064042142667950586570803704199962654807638484800745926094551919048497680000786582548848026565616855111135563348577352799998338510255288353343323011915124160932992590972889556457389098416427755355565438732154354623709927661169458691615896983429308681843845660745767808459696870077273893140219195757685785729737304161299023268206181060263626603420713110896431352353988378407894159583438836194415280448080578218392316553094156805196544572010965281071459159014943803968176177552742216956097803925314959071553899491877800465103024207360979630003460190812083534692264647217549299807108498820501457467847747534868833051685828046798840013206586376413218092159816145979742911193675795354081760271477630872276381966827752890620239595482445660196504301656512067261920899373916499328269306454646283386831965881728465435597379830563937885211847185674060861197738185077496234009958493510533126481711128503522395354486155636269652389687965085926878982626114689105736409376152584087176798635935278192466487164538840588812770797190838518181909007100402980520287243846119315818256643568765159535288627158773959962788035198134623671991687005596809673820037164528567474794118318725193846444900875717235882278614987843279170270307468929538087749259813512457204994854641065239570093628087960590624535665735709268924078931619287613596200228343020682571308406559279802480017946925384895470168990875409003310282436180452842818788404350752152835789977447982417476735571885025443812965739792158981081210497439818318802311859248489276295443464150289310262550898850345531543204404082235400307842882789616448877137487442809646174441229701713036763738578447638126772284604108511879104836824352456290944068830065508780639902231021905518940882747139527546757933350332142226042748968241598576094892481425639653628922714989077759525291865162866060483459180928769624745834184980312290048573405873168016226284753991189389129304246948419139693921491094745752654891445188240199602209933141065131272938472974369287893809001842115533237716066895251599353034070844711481954368430813364704515203649939620438684301303842604447443135254529759856333389320722122895702590367841727202388480736072080297311334122297723273746064538342992783458377138519203720527776319276760797161596970808226306391257418645443677389096584098299589582957952000960055072910094320942604048729712624165868426111757755947372096302066185568387112998006737489803814711613948783957972105648994243324345444723279109486697256829681919468063643862425733686438444424275673868884388178941143830059165740249133483859038972787594652444283091460127251738401558280563758909050702365377296716523268563130371722597992482704824337484070749653455828902138182215335227457006188377809317781235816287158284668326990178119909823097298431292648377592612780859015954957305199421450530444632475632160698061497023146812048347033654536826728063149411870096407816408784952211504666640934118766654065924286521458737546931506174125052359100040639244473079987253575139853992855726343037717630563393955827782944470754205323053349919950834640048652505498639671725172967620809335650796808800301051976627165984665853109583376884767443464878784082002653577301336369479045673818742305164237392775394235216164117440516276283443334482012490032358028277945600868944312058959042408530492130330290478405856920429425971197863811380640712571022569259777150819260811777634884093278879496359230861349549225084211498185796394386419520136279411083677549197152523197141596125248677249611295613062465221808491592305289389069837897023792769528508216275075084658983594766555110304278948828430983172483386615867956536453926174949888316756188282821619451261159960419131167519077117778054071812549269879413846089585968928080126171751470308576806314918213069631021352510840180739776590955869590316401752940158745259320224335924604973035904972244784014673910910882858097971342110645768840160993326273572282149484045858491200363262472097126931851274070537020575499547494677895556035438808178134317111085289443616580635525164233614374612152218263496003738530185913784741418668053015709875623127404603408319052175750530620378159732598807186145152201205281297741225050266036939210156956482841747548721196554063118233415659090713081608278382857056848976346584464493395918741491937262588850070914161188975563435430815273829666196446416240335492632899824638107532873785942648554564810061003799977284950024842343675832588605290075919999367361476415287583383904620967390760758223288518221781082958487465214220007981300517451503952101195222438200119645919894384459902237391758748466554096237675033751919979461469280433058471471448733133074269347479570891624956049138288747046478115295115730859536269488909337710644206361357919735019747405078224296936195181647693748807682894954044035889931633142635266168871457160322254317172457677301956225298727582558558747630223074796560940884457811088261071829899303798290438996740877918897103704561396696610879566978674247309505035608010676883426786910267291482317968898546544282101958874852621652019809356290579409388550488108154806866334262091259987525629694050858918544543208924449806887852611571551219919044835330685222319762730132787397609447710008292294017525389558068572533495396905445956239720290630729568816870953994317724137895787901771460568049813035664774031312998403494834940234215402007390818351338690679445112957659780689144119948884489214350224888297476423837369709051911798386772478836269248163304159101014631970468264242643546591876888321658985905471698994387806166319357456245473203590801170423722956987374222647858578831807617841745245199113929226341056394509397678104615535890774601269184556142503933835955213351907700845758277343818889519367446447213925460624643999899420347990403543851739935990961491621484497475469586087624727923926740011419827708183430035494361626817246546723647653551114131826504556283237190839212372794417071968457596656034323307118506355955163088319793586628072018681105886632473776396907765648543486556218131453520223492807331573885283615877951417626493912223790613621335299587916611144383249631769569817026160066629681473848066007908992279504613721213511585336897779526075479721656906868769755725148112195422154536968223850613075843422037142190978158823547750155020469213591539445192525246981704752338033971181921143838707783658420098424147509212826716454601390775664543886053479473734287220405630737694970919119821201104967074330234709922821642368016728267777579579660595204806696253122800026049722212419807574426933961466082715993950115095144326566866426547960678708275682699297254397341569406122891389941638928017147062129996184263000842359530122949390992746734327831435385451151801341447725150527775911668319914210555698323964258652930696983627316987055376531851804431118258747719269069982720591390606636613538683542990116007542484199641851731512337786507519555015944944754616895358383335916875699950736126836447958847752720871799437051319373299543352981740443222378737372723839278152136930642417851475298052176404352440006823129138620693679443743012718499553932398430539282757345533153959879788383220979206327301853642910809231811884075343131186889932618580298589761047420224008922477710685154368212602488798915456825172680323218277008622098445922965247211364682223565356819644840346247765676509611036235809970696658013272839724662143725979247545462788836754717223296978002017858210254079767878314476386807863624365303516781767443741244565557680430686340646081916877664630054014801124341474891698751360136817997001811228579880353026904335829754329369671416369473574382754664142453502882668444365525414139634863536544327745315559224305580666106031316496064297006215861594914495097895915305882438896593816312001616259095377750096793004399782357113406132876133408150971307644937352648698012710500729732169682801663740888677996742956305739762028485561030083150306268270167329962067936499102249762157653798442915126377685484719595382231318788957055588886026155079232519393391844850552404248881175520716987410384018780052078027982614448732284664729709167922488700204527970007601537111136451020440540687249568399820700590582613715152915949676417329613431927942225337491396815328893666376184210520381382064004101746827384911323440689467311798462195119038921759499529983892503784537187554468397414145763004151239533556014872757124950691919893214881900427455785757535739387926919416348703338648009881376936580801235518064274116111329149198476199020984433661004424862845633200869430037126365276662079408924598413065073134245480107276183678686229221188812655570600010210943127339649256044707444624152199238855157194866197345157133035585669690436366525070194075169443247902006269690364760801236466659807124269559407584239390621008357170103978214340874446463842954091689559654897126075326861356024923247043870845245061840875662233845704138847057297799361094274029259844491829193340090416797374865541335722766112477497549524980878605273963443297402479770216160653883973050206012078184368458173553772749844330452158119105507823924197955703682877197466806723848771945534330507705576846357735351483792445563520831059045420011862820094056661113476473494707521022742516254942903083127017368994796126383691023881393934411147023206530204992912838185355411540727180510769651861930418104709872130836900440300406032887112631652884536949518750753224765006182722821131573552282592950401945490538448064351489257801596975811062296532445595931574118262720931929740781745579575575317496871247459680188927988418691492878735887850880800978908843796988507070614010952979997950137797415198816016928167490646133763979403360114060260486236561705380970180571759380255270738292861636700403462137474178742819538601698586699704282358074908292071902597992513022513796769492993107918439826385216310577389257091208471638486026900257849393483928899664508825320812636897253783871993318784714602224065202251956104615300828363591255397793896247379901000350918489791681839007012749859986735292112292018890308262165534653395481194623448501990795680796648480687178638833531697427848592698421561145508887444133015870536732713755191822308518991570028786984420082377134752757503924695748951630234383628962371038841794271182331969831391062840400186627824590952276178860847628858395846856330571901639482909095163906324849701174105446913529955055629553148484933014403436300080095461007771226197105299990685381003156000600637462780952236383927979639331973070059661272620321168258547730806596687740304168742770176432359158626091858585890317459345118160541012923679931503815341173570771759011390490071193255450838262191013280772901937612416524229136709365450550838260613633467330477586159580802459662301591336698719437066712823474120058547307460373389854165915997597820018933488526897361599480524903655748026241507185642307498244728344191890068857272983303885089887310844325253038882829855520090145327934419517091847800594457720215548686774386423364009209227802389460261693353971273523601419735316262511531019671683140890105505204533848334568634684682084519898014147433120887632012817902168359227913840158384272631165121498423911413732438449146066058415011842872633864766092233254340216183059903608262551739239262283993523277911164337581624271720877361883683195074516684673421886019798704131785268029891156512741111535569881065079154735778629640507744306994956380083890310609237128859768694803003694794897577424685685909135425515504609450946186761210892599715702051640499438213731463027185880689670001144356424609344678542842750357086652175008345185346328733274851861777330820159870640743662452301900566658139818449622499640085265107698758376517748868384029753894478640485337064417750930987369364133606782578195481092774737416116271900035019817943168145006734518244894936765240890071931160296609771341753896207072181813720974016082674670792800573627206555570347999984068458401661913341990087412903527984989762765373289091401183436530526346923142452157798000227937305727946371045223327693223587212209916887573977289287745772502695611324168984363753344922568412406707038281017375023608958104435381575543740819402306349829339986094813780122643908719876617687062825536482419949542632877635478071880354748231189517532388287429476480185896362624534693803166272213185491550766056117308212165767628303450134849344287184174668288561901049798493404163932796327368611500418315178993893522489932216741968699564516509828095234271688810042390457993065797057418843007067040773675608148516249208005414932648046887044211797773354832849676968049707747316160940240120160564358769784307577734182224023960903771402769541529942901649682429984664565206957274446839373147984520065568519908825881547066121250885908537252917437679923912612008537993677551465956560367994138089715291320935856491498004233990831937530487356825333588775281431670375546584880998692230063604435284042575263508846975420115044292971372121171284903649733321235374418692176985722227526399618170066296888223713000011439739200919611751712245892241533539907131530033750734567292806621055501751220007902737161850773425488528049655334553643381016568971662187378435934144224004620945126720590704943715747193183564738492416115020268857413816006973818737439736274950190301604482599081522250431971412738100399933038693123842820765896298703665255485294932537525774471756169655854549659792298132066942630143575658214653078065998380598439969862816778471027583135135202114574083834882828627323903429895129397946362454576778717353941081188930990852082446466131582509531115192187316624557270694936800134328352926266063549002740148007497482276843109954584237391442516652060384112843087112915254051189365880045952743518495234227680575852404772131023811978962477684265567753820327307276338527263552138453057900260615583774331229299334247831871777945164302907836462886474680657504904771803016136686393304260058919428027888466898001256402806808078408758402176145506892213969606395563023907549006714410750058284275606994037783974884189801297104011014892031157289415564705249313673934948617096071241394028348526353570246903507372959111734621717579725340147890380927716068608993185687814410632344663581036825969223004730378646422129845820706606166608629131297308795486456295762070025758166906324667237938001286272314606740854939943715709594684253943420086852175170319727742848331392148784129966857858279587675729549142412953775773478041334752362273978369921795026912567682136940212652984441858452890962981472603932232231939542071829077392263051443097929420290319639685149100232728650273157839808906015684672740372253902358147313161741555017363896936038107640526098208551636953580286607596879547177121377201126088300627149387331186755959927172962410595236187403280117595766998334062251995427562026170478863320747535936339416495608548308900730916786968946965329651567349511273479336251150335075118539018601636332577716060128670287050281783328618146991082568825278577553795404121945561965873879923105130398736261169795058141099464800129301201074821314204256515775858520508445762789456522820142340941245974790873922548966530074320119587303499523495842846860637048008722915832401721052458557330834462211632894350984405800746041255709790702640315790895217774852047925288711536233546777244055985920519266831742039889725634040586182011607234532927016692053009886808826588097584810722913800550980838858911383842453276311422556281664922147106301437197251390532190881675494374688516670599177996828736384878424950968356124741967871278598927901897715588782028933562091450830091399170899394754066517051052123447717159626604489701374738521592573042024002547470177565079744670494748083628904899169297913523132096880558087455087394745728268657296646690634605749801638490440022933292269391995750418975296524317055119971249435564423453762514122894905392539231019303546009183253095772138167122314069348526210650721294137222662028137327951317938224188777204624740593171418049728736082894548220979072938616641336207615703598634046237329862665080133969952000269404884713923136528090610064262360698034987069248764296139745389833378240461439587467230816356576531739967500359359800864060155349469383778121888093925779583690134148541935183292170903235159409948545327101309325891738610947499426764562615504255348741300075457805389517407884098526409644777365779392288682902549312595171824497759058952234753305984038605904434790752307500275305881876079368024041223819307188755630523528022652022457875118324907410020591179328912189205461260511344141572295741192722747929954456734498513315699669491319680628532375284102296230510754655999925629726586707134860219502451754984544024626123229717592061319079021859062631106368061088056772504616662530302481912455664725026107242759560971187723317800494013319555828012851772049417631318332490661063342108704961224061999885222529760747653462687303460315380054158427401356914128508102147831042877631906485742873559757549205893310324701687095783861882650574347607862554423751030769217154665320859635321127620125316959489250362020812220012123822010288833927324437404804622310741214965211277217235467719361933017063071105477495748984509988861010814100345573841793685232400003183743339046356070593006747154168539194694082888664958818499517004493921856796043380885576635356081800722853858194109261239875747766478636848880682827977168617738956605262451269099531526845094671180531723349399298774949818486509810383573639655509127501125182780824598214118300806845389134684586646632205115584950799208465852099599841284181517077575881467146978285447777769428514951523973878365211634249799648440998197817088966977842410517311248851322416509633067643677546759681355584275383087471708920329276581148519822910879311685492837507944289328156625253859757050469449341803835202735994039144609164087106027151957937031272391837107437246381802834287829280816402219462545819497027163961786537359725035747358858869980383263307978711831703305153302633490153357331312449386666151472551121520870482307121812755846467027458166262882451349176781809200127245946297842466731953707483944534167218397507832486428085028020575792425159271405563421436242806675037289107359496712373279955967830282679065553930491753223909541894890807137029077239582684353054438270644838441677380675496123264998062887561418209650146579388200681286275217475308739261418337315601345312225567994981446590096996123721269462799111376299796342461694123628058115933857861812854774865300686153423635413930447670533006456134298546077025111992311278351902650603265521292453445416598393728093223545534775021129384582240294552253549217333358035744612744004531632880361441533133967415811976571073141856343264858583188072767399704054708638575977225170921823345979536872616628523435354238025655312507366002300417841170349760249672308737710168318372765906062497881255619810197131772016224326963974186089970558335930128131731356178463666812172718506793070404402053877771951172780528869103434405607106119281334018419674743785999742066717861238295051788556463007522851451995820093209233090976597065323323219404946685765283058441672606784131257155671022833905684198179675413420701942198082031598702396925594326600581603671941250305209347750657999793699206020912181531838767844586649183196793593967321024325133372210442400748614562264803550045590396459387791376163856693754239076501157937014451489513590054493333378382094895731821785362209012569845201360070685903302658608729058725597709749395646555476652395497585059257739656296739270469229623883315847234665168616554093156498104685902690911910477643859441068556884749517252972605421653785365297821195026903257372098989124796592344329883790102628458686065168668419130443476301685634737616662509268649603620721925681203300748080906551234346749403925488705783428917186278429786132694997226363798105244626280779467620812251701986203974497900871731742680936164039684014512937643718027748666374542921233616324809894433859971355479279418888188764099398558802398917053014221645741120668857760620372125283680380448877006384467284175981207155404238355247123980972977840437499748955092288952300246892013561122765974011749201727873706975709799757272836700025783875210239826198477465813534961376511257352995730512496611635161096225907779027605795961654607611072817552919087655845860865575674184468017093838840636375957714461169657827028439349010179635595312947303108317873643667725363429000023070590648768436266125966433838315431661517249760523007380322104877240388614832016827725548993582551287091875097377659923320147063339845673345088967463784678145307960365071422518802392176473103617756741203437649266369408362432124195429114991254186283998148486775379136506980537505105937011277945702038958994421249024959691852072044877778975706659584089151307060081771539973361306125450854823646531221237266489004709326290279945614812049411592486374556800860019739564925276451794514664411722329193503592106177738849941585708793839880685113452783722431293086264618172296150897357185887357737533462685852853484253011672980508051066124736521712629958148630025584156720379388338515146053865583870735234306964676604375572875235282874471206999065356399096664415741843074469494584411489273509455448133684029918877568201408321662435661867083411703402518434587467118468890489503488744782876956352566183720281348422468573285777115029888860207569735043651216848250976017688876719353311613372480455615623487871944214037772903564927673413508580133861165274462761454005967171675946581658087931317248360648385393748468052337869290401084299128617955636941135135344849046234861014105522326441854501830278313829589496004097698053770451174140506166126461689183492673238652895626518586474269986519622283863466186638435308325153166280291265159348421833434925251942975157016613731741865536048473938349756809903939440301285260090121630600110038315658289541445447031549524412914473004822839109035837150199711080949336443980528350557122751631206760422525514339267405147936551359429606085626835387400113858579607811180149585205772581030078030367463104429480628498483334986946404504808434683450760075883415382663320371861094403980144029899740726675866359273979665441647104326043447549943893003133030278601127497353072104145399944279530788345726789285684817018944241642064611117074041003316632357941074150884189780340770223270050074822154367540415688915011781388006853728835069797954366151984488806608923424111899788333939410917487413829872828213717331522800465723337554317816002464625084512105183592667486091339703262299120797883610129183464721269813630533000785347596267873877381050671763242637943074547105579872454186477126189892699552502430805757854268823254223939191229698291837878403520159541935174369079350610167655436089725822002599956383646942682943960035441269959258080804322597754885303554653668283930033472658774537247286863956439537570659438278081324533354453369322852731046414159697973543362320723238579365170466196115336915284492316787465535706995566511875955376051483826709745842103035088051053848139496159231166600188415070528305981133881871685417817972932131480735233580411495774842386315979182951871918275375964003596457720143134814664101142994010545178053119579812859041985280482189374594892722835434573747794332159946118264291280624352523653530061479650341127557035281324664691601882752759126083399600710742960339737687501694021659259540348557178454881331511976550366317329031465684360249187377546680792909295364274502818899633219359427472234038461140917044768757691193694783619332255159793809381925376912984632356275870321007867397780419805429842555791509628823643124396951297882240929370797717781628279717230934909020805455107724575028561365007393424153275351343975607968755201054207093276108581164790855789200264893627532940240517222323705604396059328107189852542475338693845250883147277980892674778688510205519510807054816956176839370010425923007517539528801096121548858916039212668906722258989677001948522738167981053971763647755267055409117119040398593903263967311100736612486254111601522007329020047535692309408581891135144132713241954427840836482007856267602068399921680311779131082569310440967293908518437962759434318230259607788310010991217890420308162782313259044364938850406274542936911710155991562945410162397865370943005783985808155594085326494611934281222656010959325642668745277018640795433079712574575328346255107678122550790986605669649370662886591577899544871045830262962261856129247665716356936375040963277719612327728425689413305747732051744012110409386562412200672273667658601467058301788188215642832556630505623722225230205025583525004419649889743575685828537542193654821019754956606625053158985231168892635403729772411781883637838880532507704406116951448513865221371883504776875593357639156248529201060595044902662582734914588568558503345342650273236277693922302468151155813824682156768375181254876374164783288152315254464170546817617682104240192694357294054346901194339637111924401915635483840078019638046273705310231900993888673717602870005401060758589819752636608275634790517021182739644095926640559899592297568141497554613099041812065248413914626636131215151361200213085961558683969823934277744473789351036561717205575131618619896755251325398346861299280327593328372453862246933078790526294310417757300328287749862387846460929836961421286620593185789176191861351184326707825209638871494561477505468379691050497662429144747541907016546495554338864646969424762913862975209555039722265401321448559252802342196613543069998741666835586984355912325713052982582199691629555401671847614712229954089936810566831000854777732782990780208326062284518836987869753151521413701617080584505502330100551333552328178370250780669704001677580468356844806812159559342574240689946529013865946356457551949490666656049744096461948184596933474130806435520375565057409778608948730412645729786150893112347718089830736879353725239207683680223275958279048627924509864012367468744523462321146584424877180763514305343011124760571198857907587563101685809863087904383162741377111576244607501001343381098508866024957602167499554597654287224871734999173947060965485820306237882397406178100613221929071357187980518289842168186681243098371400487282604740495115186704769525004716606389009905887125209205133713522413267946850712632917584887877706887306343723430552045082596065428843292313993917742466734453513809583036030877811406651282663059685075477379615018072182141129260701841400096072574842394545428804437244983425917870730659677321497825257524752762021612639022083404213194998027026337042549441779019511649038370352894466921858912756144022120860784817096961233888390933650959997243481787406118315974107431931680975829798250430235501762972288429278580367446134944657101955219319509144686179828039557506611326420687225102306431367869919045190016360264218830630604548378172834042681370404647944714098100372837911314352717668766753701167444645691670283736537220529403664990772749056680898916949403018860876028499244786309102795225170443437450047730169431519807849614877406249782268261717351974012665500078903783409191533816771071433243179325765582104471047967655672081871992081555542893852182754301053586433943435480587626249632696305888002860822646568025812517998377212463306182503903032491000982087626747514041577029868818193834046370246028355949489482973542143163414814839675783774708326346471084840791649717912009635178516922593808073495868416832547113662375440271353381812936826350701942844212044354503490117465118426407847123374406098591496608301670359249051883134978738135668172938758034611215911639799024340469841650724312968698775536028137853807393011442663185216719210812702557071938181382965576263058324001882664539620020221816007983200410044066737363010800936532617073327258255731495025409975368182219315988696556702533464774086250827872244950074895041586020782998898003869484577440736778463577116173080164317102029757468156293111067056362266711011820936053580235327479878093671408452652022975421151050794488789113937650724001067157918290386873839047605111375339108260103862540912045994111538395823743239409703372792131636078562154290610453150108372599718054351644932600492102354493683881031975876468460099254253624239583582714340991610996600923236182079158482194022904244374931611066595115074923155172844568451887511744401815001624968451836233171072636977663523276106221227092573279011564586109432218414560132714548601258714846270861902372482779132808507137389076469894326670344407787751975060526596473145702246992377199009029251977298923453524846840443340165787190510290188298209106120369825285748979266329250005518227488022055791238181466319978713643973465076760556097468529853825268978985312567509201872352546867822938616605171538613113969521514560294289090992445702454815197710958327397858327426373330129890255306498284275369810935936042862640463891378578203912791932495708269163508544687244937193959263489633774799133984326524879819170799676512563071089992252933939115233127032356640394759096087940161600591217863582409383806513525204371414363061294174868431916809071118361064265541960040008838438267836414373432703189757968845329275524095103059464248561896616290765593191836129184870778500554199824646462469531086831864749594360227311798064562125344429130682346071992656944681393540431217928956890820427635941416967905407633592772738103199443908471290057417334396894858148766653800813098208477761398536507795162733654243677170103457863517020384813628122557035416013552264926946379146607780147008315723148290617034672053813901413338841699733339530086890470003457702267265947821430017920716326647565157545499925694439130483434425773520202765463659834111057293885226082664412665377977494913587587272422197806859241958966874859690309754119781015358038992492792329854426140648600476704678027318309109113412226819899322603292588135364333096231777459655585299334005200036558326856982352417000278678254313573088402915121504896570696037575110466453983147979846553281524948770292524426851370311352276349251274478075309142675894882993442891271371596439113444354267857500718610605653210267947917047806081972673480029958552722118120647942341157575509692038969842132671677674716317035764155892437510875598858091858921549486751165137085837699786121031981689203295490782298658893802809774767268259816146175539357427774600015088241481651626352105008327727782763239411144691505081918171558940085716597669368928479456098596385337485932578234634469250180549707075870503168693690729505763341901002268895276316156963518874455715874817278238740535913226968816903817041393145708345864903220426655512257703857284252084017153101590419218455774526431198284810866734524435304094507122600280120852143031338201603725637257695882120804759646954464578671053403254048588074111099380265289473948408334296299212607703015552135753436989014230726577335010627548524701750459539178580468648076829565409261596830102711559774450967881942594065051989531428268951579169735348169291385711097373196251094521345370723772367091598705023035206828354114049828067542708905522794686838783787769035496305218337860386302058354925500063937396844661087433942214303211581323753549259485787175082681966119467880821317401793793701467945440572474751367695893805971663422849878211359222906897968057925255510402229454202156700760928623612105595983771102622704116140305870791144176865179024566492213821650117374925260613702382029003466514432732514780800716142309928834641764627352947479767322037649366048721431342374390214635391887507110157010106803642500606204788405371873088662777370974483534910327071636770428970702154887251384534524895025882758541460122787188584724202069551917324548655046930688977743246024805397224848468833916528847654860490592784441647355355074252744883701435220642104213474813157234584638382254771800940902944933917982272560088936689638049787112698764807595825934535425209673250475700403751739073488973348211177795091708061618183381311325827453110919570336111443750053411819548716454170320184191647297055486582866266580759742555873640747373187821351146178313917174403358303159378208337558553464973514531771856987729805547233099660570476754316063844065745488827893681264172883959338507747425525765588869551237351432833709964154562241142284755045502782600128083407069677021389928157522410781108424700945957596981572848709837972227494006745620639428488009671844500641588121822187628297750071981151572021446334407433126117859680736366586680166061789371186410715033443339533082976581211780042613272248423282010396541414152473698803522352828303630632866055696677649704641999919186579502815676948985496426904107357429966798304090123608792814322715096108406988071811457961638436196339200813116964108356212221874305254174538234525194963247655145032610276308166598956998067540258112537860964016948469576193204851719989825451376711702348860719280645637289802526384997342485992127721992262579153897799800063105721320283828844123008405619215602745631903120316964471633209246824139664213928314176242697518046056172804744396220904460803450466736812919663654659350455810261202817166967497625845483740468126188697346426659818378189785217430645778201797682875421118554443644365830600867788483226976611943222091783961786851144897015380501348180527039563543162821779080107887666843907590810380739227439110936112981145859595606899415676661920940797195699429610250409929342966036149353099216299659282422988484768271465232186503410954247552340476172891577737267338892908200962866494328832993255584128079997363278106633314703125665282964339383799537852968344084316940100031876542579910626714334598051904778641970420073722025056406974328276244991477328703946698703699713042213983253239899989776451417387910940789540146046110468095932159212137180464607075822042368407765196567992329638053185216797563325593924772131628997971970303210496581876299877584477063494655611418260883913742068010044576708225981953593057107274158460271103623046655993940493687003600316594870894305045332085282069778198753328881642355443657365484652676698003855792302227346862120124263865582053889017876780153637421739822738863073948368793647283974219315983209409315218628642518963741467139361353369624479787791786310112288645796344755013863494853287357097573931960048593490135836583551799450822296696472633782101982518666792869013495518969706770505978410665409483801601249074654073369909558151800679820343111440521593702189615534627775059866614374357299134774298854588203885803007838024531881378312863709689564555115420019118540530052621404907439206559228169628972891329970815335196599741669286689686222216701354179385316797587695273134927936749976996551584083840392669279313236481179918601614589904284281050970539388700274382860491363959111520940023694928671754512923917942672895725194394804943787070090715319712581952965493844317610629254269782674736672478600563260944124673583473173985852586528494448955471833692859875642617677512853394760012974810464175694399963089584942287168525366526907169628541546402304954138031487589542356927348529508626165997240898089835239084754476169278457004131856356510044104541940586644819012492464280915326952508569122384738911611740051359357148273323654921106028291252850271059760469928772864654679188611814586488641802867981301986393965092926603470520590412885264763936498398720169958018263121908875155529490855328044745672137003770907236718238004873975494870901415157698198334977584648563032095236491653857573433909513011711248813156880300389524557789687718790711462063759640054929716749696271006996553900731919663489195891663312320642718988799806588437740004462874309052208992356792525597041496126418181282272499860461549282961787931656624826570296167990120833435583655963876342377035041229021635261981306324045154917232899508480089676224534916362328402098463864496116866246108225265344201931077623108190794045549968842932903415180474682028284855433576467071913837580818459608144872964634183186653581395730844439891848788705609078955894250692148897724982824393315838126225734627573986409263873359365546600162279050028882790675569302157104769514402781315387865549597952299849667422432896375725507908855033458713905087602552624775949343779498952778100050813222008733928774336281009794617033796311795992030950058485483113701002885384304389228703399101260182465576542600335428074741996388898520119421827922469872690320130208803584680817035135583850735683768289843126132670591180276052529041194084666179815543775336582533592275552165851064131387426679458642984855360642246123537945846883999249992458598755848604926128495743684142355421995750580977178960816128567569669110246329021860901027158140757744752569823631199147817831886894473402331477227892592279795443247886608531785659618122452410081889863851766546150130881439570277923218638548798559724854598075678978760372153480328051469286580199991161411189943801095868478474203557571013136029646990447609032325963869463987871858232602982721646293288291723109338775912375889239120818035942454608381258136592260924477236418323037014220393783830127589430806142357980354897795127737636551983742088567915686723865192297707487644347889010156024200273094189319945509411543900140425757904197434689687898735461221864648177090372401799610752517235793920893305351374472848688696937049662199872344038486430696346957196711610568218738498783356279230307667662481718497820869391258761633958856860949304993611044514198860725859911993644128288883308315670167824479188932963809248036850717062031086331127309662514041110837838193469902929670160603638033602952293457433954815021751262424971834493979771707635053054728270268662587329117380817870934545670786264854851566534141964085268921279125060986625650347759769441872666753848680977163080801492206560394272948435464871617846272758941862942088005662171006050684575786672619169806863180415009354566914313374072211293253097389269095317776362853244216370063331710273617605725641219330084034522771807718956177357827674230112403064965009172206312331085416499269598089077133416254604059434270585513352521649310661150878766907733137130803662497377535364798113121225889797179019116819879009136156470676181047077594350130145190236764564066357807297153542740602570497656890657540115924616806166266391527284553271612418288915407438059393353615516657785793537096620959606384267920067668072846976299462594035588741598792875096362999469810258748148235031553223532171231738127669505432158860353910997159786371741715255701379630467614572693358971501673648069444051267755559416471512084635665531719720930703102222815101383409553371130032552347797057378275464379602167624476659790159329848804695963439756076894408196985201446584021262957050220581270388304514722386754305975200907669614646848367207158006496584620103058217157580974372893910064685713814272739649395580246197210850818367984293603335956836546766160435755623166530763869832382358041318086122784394158793558840353343070898418217050680645214277501466139228224169615284062926666178231754995031681138614274423321995759635123771095137018250086702643626036574480635431999427579964792668659420446401180125409608135445706871658992703624371443612986151047587104311524429647468679465190157637600676575374592529375269361679349559155972210247464696328182120952729993003299649823045042120874440309282955789425334373741680053019315695749566809199344777591046439956334704164286138581880698510075673212794260980134091758333985185060307471964236566382310641702168577904346913606546176395879705299740299162849863838882394842455439384047744413038180397856558951156825839365675993593619491903666511793507968087079165989477561655087047293035397825157155252501306974302068921417927694841244539736930201453327376082749326445996210857109095437575638315768152515148792073622337431488026037120760702364463975820888386281792498458269064611142245861841644629230658161736320989691963686730470318217897031111865769721784961037720056990513670496531389515166950695544750086190396053738180443650753309595720376199207747625449686490744771844542792269189871890581642761774442264008441613901034075979169518073084474681967621123622522588020993869278743000611598072390030912670001137214201693132569795124833896750953313406432619338582971681335298649746961193410926425940814189161858680615148171437876521217220980529619736443852541082158043307338853991184167113182850861076917202285239413932252666189910136368228236164937305409156124161218715739098018814277199141643645677553921928652397249128182443230201875532060685506433966803890284812363013560316767334626271091548102251724705316167347741600201726571417548539195372364698454227656411877108538790113191093836513875660579082020972665952069108651749785302351523277701242546760601168303673268003061161126249557355508329631212243895962725230174636036894518658826318414467257272754909219174986627526192576913058950036753924184694059053918468387018831093737820996840036613873503611472133368718394232541765577483371356356863154083349039286039134824575765292600137211729419223674687127372076513833829828062560473376141799267794571023649705969286462652582354044511502345926863585205808552964590622139675437787257629979769339508409282479110697411776401699646866349291754102285422030212923284736013860138051695511127314426815326366776544643559995552417045590212650526763108094197691898858341840620930726388281971258175259317154592358230139149639772925367984391969197794625931841968727807683427702128950126420816957536307069720555333766225671622751152467429589808891509288819694144097923747451851851016453896916855754904095379663373598626445162032635238874389906112481896999599438006193247097277465951524705441327434350929691899823538550296657712209794818281616241039192761725712437151584551208520847217186411794267899083745090976171866475140238138530462175121049118138397726495995805338528099224955304662302630250322371137203882248642089547966125367987560790336278281933007107954559206778380241252989715791528500327544697564290918338636769034873000602285917540271340445688445196480356483041337630192905184707967342229262655472329026826540138931096924279004229093020725611833606595870392504071901936105330825062716958014373966869743262352135371843593686885642742655514922833084682304868566174276323281075979540610850080756349506179065548566379791087620236407178446946971274877487451324185798871164546520625629679256451962864606316155390323590137130265968195501242505641314007089273975661465458704355569320821812987690729121168554085140500956142515737158309056592009736034082249970533632001261714189040443264298544743363776395552787594800959891623381877093811195667628057830793929115017490519948366378509171836857337239362798892128253456734436355434336328072641310137759983368758680350710213049834997764477224427063365753180216834562133315773637993313512405791074502132726388595285926980344086833797529691551751835418830957659317309347748102479057933821594331832486130426208842370109313133492883786580480543889019282698252393586388166256364459431952361418944776675490636351575363907330744331470402491618955846096011791486687445548823387907644026170141875519715287166118853610699097372301169841811327041910682893808320947232117695671351380910016959793727322590824866919997782961701249977177435198236031301721139850354667416899916155576549901370560531184459926587368113418264366544025947883384808425824165022456478742338103772153493923376264866302061454614619873940861840042438465197360849217856182663337864473292783203852039308820596481936478566224441203923466719798464156480077003305779994986776102229125871432418271034558316030933028945846006773393702750538837350687319065707988392387937542845254311410650770171441615103549077837900736567366140793044842501986124483205326464826967532134119454844442006741414206269460868967702971564714703471467946029428552141870836541087988688646860817111159305302418286490082861721174426524948391110287695866935650813904836476835488045607801501833353515034392606276882636141311132194185501905782492930161691971809377435647325001981460930333887991822616748032660522441098755439097360661498554174213067178826096993049526323780521430313569112623372844945016553348115697980429464706734094194340034878459213708497760326757005911542244255271829981679325875845712229690079961650102060285339927709477729204734305307958950258058885969619554525993591667372653208024083259432676390526028327499406973701893455172097717618031926349732176177746076030014675001957936227783757316141880553227508019509478130240189512545611838106415692968968725086113952325475966921963583453719885681344454165487946340886248598610404417890344227152208663752106197108783973314328980611065905369961185895642437342463782624414679671355160392005614083282341000570197078200581185742793022078262647628960780174209037877625713847066042147273260586252703018253835437242546747674506410807028131702800550128005135401005487443668957500753453879867393878821720092265642896285586359243483998133314821262883583473802226749525535608217320203722863870176060637032818688575056151386167670192662519724610920625240889501147482207468836224976505478618669401447151310505981568030956542235139747709763817022810020910858441392515295836219132496108698467351877166699005641308849496690399952339580767418010900261253524906007653083072842140248260855626548424913127210117206825882020616126303281292055535972663374603294962102532904618851972619454651875893317263344940565589732192334366663789642665621203651847102164006064345942632283007054347058713398771080601155458492292373882859437511658900355780787453102179678407620941649579332662005562996476337242833733586312967090241559860359026053324184511654355418280155267303093820548017831819149868076886762585244881593217483546036284962985911280304563753615490002319778501760663008505545494066688998733589548860171121980227851915858617460370399199374450224726565777959781755012729877653911551452347271457663121483746954240747976480345741428371772337792572498471179243851123110646122417348875484977278024832270065394705899165625413078501306236663123006521656497046050112728417610058490527829146668440668219413720277394539990189057401913555042149140191094854190116779073017655726551876674059330954849805977080382187368282418547205858329818518985381917199305456696990954240133903727729733071464216259058453857218575338151674912001161023004007089677918643879421035397094010564694181635216310515462834810692857696398245524007798644507311172866929200943752972434139397621231876274127083594054355905090358368936337183228348280770825788565880303713933822392570286716089094476083804194670596977421640632379772817990596561648463462523313633954892980964742119007011527020411765741545017139498246517974914465254906234426627227443713909965165636905965933558474397412220776493894325508262400446888588255719253276954682940918162199697400648344391336673234250425650384172131129336426591775250966933821617877516704659802135412881548559911479182138640466363816504162105993010277231154803916818426954156917711682487611073092473553541404034047248152806896541337727073413539474810209465500633085249702543565571043143810360349996276348202197822211096817705346782342782527168323080590222435223190025216351775398435806043843539570051360185593782199085094488127413955144822082171650285808766584633351950164023828887958649632426199439621234054577707402618713746523866025151865087777196960614077313246996563059316784308733544275508533989667677972527287047802147373482836639510769559437571148710004917321527635647712950569126686733639289918287021404878026894704341964403422923903727350957714698845400260213798675643508882112075197326519336602002604906974445726442964384182118546506199009710887111422041004904763662090700634104529398932982013233688012132012798822730927553222549938351487662650707493452654074395454303595087899594836848675127975403033989572631799267928109248621698659313254778585733172054054835594918072521068803595902401216736884487946395562294020953536272937841108644692340742743939508840320410177485158246184480071727371264294902590856425039320420927050781541723410049667198605623427859741334284405659628322532126770618765281051674939556797679451286950557063287066568468925083845405467146300336857785363831773589007348111863241974152429144167899695201230598561394794169460082843065577276137427789771334363250775215937087694734364295471394695357504833031252904798753378752383412508455360610493079425492720931886966594541463312412864612531018743972581915228258822713045141564546014117899527845275147245316457856959490340985890634996595294962941024018837599453219815273204262896423546968141849024479770204795069495927644749892012441991349950890354588737662167362669709253341654510932003906991345442895148861790779930226443497218594433345409415870456508442006290781415311571153946636431854639100471151706429963760768472358791172097647118693841312949419965555734282955454464536040190358165772976459182931966121333161964881548005178426067078400951849485893185287909802689495944976910786084717385664021156618240924755854834924231624245125553526862772553476330477554284407038705124709328762022150319764903112777018434763271376658691788310113944824492304140742139132192560579528023661863260477909095525616779918486635334714320732875904873683392760761500854091515467519604781049922507877176234709253519982535195462050402411383290605933570459973813579418995051697155145472962157051179136400504294272396053412606246782198901731865488861043823935434581730779832201592800900656450739912511362022229127402248746043779687649551659056514603590306163847294612535231090605915491281056563255295520301627693790924831642846249594457048806509502768517970628543794117925434886175295218691707348761985218488050309621766401445318516053325873758164138328615501742416834347820828425590120151320157824209773994636483352254173047477568642674072148743768997790025614559150119763973068329745263458060306211263938303448160562005371522088874524670847394897576815585608642585305390860163763828032760948355841926141516798600985238659380154777450930818725601296834405821017133329669751889234502310470799146327549429416014818114918081408487845128826803546521941972636633560760632969043683758249468862348195960623345847104598977880806712793638880283070175353954664777687778576380190033715661149662775362739381906724562431349300568445001429695245003644433303641230376238311176028555070693772949984277388590208312554635779884945129785679636834962734051787229490427195706048860101632267581583684911116821781716719626709593904291185850442238426208871082194700682653223552514162563980720861981080243946346825397893557133391239703626361339161244495496168706454956743380320031681663133634337833130753109656192533717152714433875789487881247012716260792042743223843848578492074542746008658946004440790859408085695472923056200102043132182313045985492546874371181259875622205805600714282139972902118214291943594151396855829853868652288284896225903617580944563297976223400305828791230245137771155349063390044880640831874712219263404725752168927091948605537021974289348476053724031267187395378678901720134066242693774303742060349300512033825872561461138870326953587260801390749643251135868527544001755084408483387995992260375990867541164034305297687761347343828224936888332507313775704772000385713635465083209465342117689712473213866973294527494383289665373465681150871586827711136505128151607635817741358703288502366116286444773713844583084844349541539082928775693146422484625700977357856238849766382495517526841953628735253598828838576658971258430509272176664261050944950010304933417155995104352742170079030164892243237307151798672188291106980204002994131094334790995691070410472667481845756274761255651753301254254731358460971932930214801972169655480541757735909731069691211495155122270843996723962621397205204930581757899114500725283614516721613852119145978201238319462995958684405031723191381080662535675404480385183359628483908656366551476736328045988038702947407496347425174907028256546572275262724370943292494909077757387999218587223503956255944524724556848986270530677546971480485272031082756667645746350046250682678953405594734506802568234696012099610844928516074380887752183907360820454735485802979959597020756616808032563547762481043951193760065435612395678938235897107231753259791629173394376131177783383988188129409531711098732273474033017662062272764848359436669562643291197552483377620597679035739556754828825293345068511593845871869333426238197728103710530764868496870424947975178391764105993988997528125682629184389407054203982063686229443242152252510835445082657708846864370063726090864405276970001559363670237375383990826840921834274659060764790204760908578832646214262737025334136148436783910300262686950826650303808571905899908126740476286940169461639728429026842394632155294833943755364067658479341891469677221235421961059757481965907082941281148777513460980083036791108091832681306585140473452631163367807920372041162558025773475455051922321599925630481774797134531330245246727273060040846540748471106430665885564373657469646229003685390209528608897186470100701084784977748460545700070646182261430349358950010288511344608088596110665686871419478225237341646547129273057764061434565863159886445950430307650100935560994576103577508555590060545653511680412044621087922477757230670332187602316745921383608357969658443139579072769744870202050176721201376760054066446472273883666602677605147701326949691990333370642071734352081890102768154227513349335640433213569351470630594912756957785036678282632001122925893442356578660163544144997610827364907450869693245437428292622945746632036852440395297715577689528559458607987460444486372979830174414912571315135297215812478349707969289785313143171016039845225646529305455513038713748004132929290932171629355116954538087928755222502147569629512921710396176741838492696658530749418641727747190286997926681277384143916545542026251312039831410398344552215787087271376059922054893049500087127496670091143845793961329532232297946438919066898732360766234375762655596332603609483253402004102476710052013291526313725489626405777130124922980395860846693679557748146115529271920709786350352085468973292994507069034112022379777827377323783549727070467637964141391631576581380374778862908928773406978574708716369084970064454828112326397777224855618947435534911764561180446274326094033628775153839287306971662648291925066006072525313544527628646869211135655649359270096111868349792543587974874278033225933653915925299473551877011490316132073411375899446824953178824962792792818446225003201648196484507106979471813110823469172782219199264021780726095518430289763002344358570681859746910094702918273562211764648475712641711792438289191171328365775148254598007782234369793984631804433408709189839059260074160158449788133843937761266347712966910825482369535099606597770236071464262091583211984770305002264999063564983623892490750164679881678656642429028037585214612992518777702048183226896164433953386064020735855222947367552861496125046446464402792384081792692562647613381884428605643997586959497247853455832259704836295101601574169100261006639884413532190671439712650196877267299199836967856769786894063634418468001230969062171225170006112168809085359593987729472367084888303029658945065212322472942123318666693305868809297602235066110541020217336928225963963695781457564215747335823390326945563817028079339714394726405797727212467662244241430579755055775036230844183162998713071066762118977436743177693515627814380159811849914422008179457662538593909646246194598423205498927130153237178489858403732812588353499159722928214872110856150391161491439980826751091944845759573773545341438308573718618348196222965703887900318973501707732757894167103673592868610473534435393100029753276529851841866419699661780863434494794724455342309668824652473545627457168479447006186762127031574762689452749158636281388865415561532557971857150703508099724607712883240083724938232296133019315810881532075301353842581883196053208378746949221397461641969421445983602279247766601977187549747239563441028932592938555778639424484478690721740341121568001469992143257043206067860261119954363159676580343088793979757002913880805360653375377614041586036623137272471890270849362937209152293362256556754175837994757015819548400491193408405189156278225564459138132662200498855471858598167643054707772637856636623077634131103517664132435735166157241345450037669635078621292064123234707933486735796760245198834849497521211254139239738518745407385177654024357317448230199166064789525669907277780226917314989330927079660976208856677650343096966319187189258595525026293812402445968645487931230856510261507125392004236130646378182974489074422307271000234615757426994323518638238792469182319053724575643313371013817251949146026060814342036249249867778782416442512375281985864726626505472033335247215801346315387558459243156192346545669848027596401563559832735729561799710014225921871661810113315053247270299436042947890560890181184175197185183459132018824379794781954498615526799556534046239804872632895733973739277447462839746373019516158668028125191443544678334004641178926914398945336203205864641939727317042402246535058419164991468398708842818177034633926381997313122140930772340015782647949451950736361618561232347177801126268722031512107712496456569694560668903037471527140122352010006045120597434072657418388493811142357350864719959756042314414240823779263766182879609524919581470753028484758766139739822017441367571109437858848008557148622850770301056669644844125205935910425527564461450139900337325496348954204330610375940249695325509116933501569960951514716369325033126720032375051189658976327834016870863770941341131578795133604863364135187967301052132598153815543057574714913188672529297195723349586850912622951953748650647811286887021846806345667990138760848504846670424906848474525742840223845057303295660886275118410735404056902245829630882563237747904035726368858076662786052108491329113002976376599235855762660723084676173277522994131245474682567033233780058938909854579563909998045779094889915790722893010582333589157631584854848040364973633490409471615736749249763157020337955214338562681827331254350533965574884070316692593256434938015260632898198787340762364841964818027092625950360491337548991595276141402178627305956161486867264368146672498659110489964724734945349235989778061824180498409361082400519330779457996298222990076497673892533554588170361787499476043777415967541841494686948583580004144923460769515970713894807419551275514118024150598156506650733077651689117889530400222040770412601870661816006535970236802506399728982280433949689298515303505973525186536129821270956026528995845868860034006957163269600956331839759672388225875638060544189017060304865543262661768407242267756711110117389547074543123504525357972041991480384756986509045018001903710260471855934479973567737042649534272367815301633597917123789392205736026634912508979255236792209874619948045569034117812355601010391859831647558186878910592935012386788631224921536354584744132721909094575590316173854422252329067932140416498303183863280624194247523317538545411190598343405130431032293229060039841459605224992222566049439812825318142993699104296041654752894362443522546569833849728248516697403641446802490073530469141842699540117406427118638967263827331881823424520058954633029945946531783965343274157410814042606712232769001992686460081147610898468298359252658235402497545885380268471218780205976674485236208297391559966215229798210003778434849508913507951267854327762569697698506533550597797381371081575822369613853799652632349866911571397983078619611756511578803817408538206848788160784560428528548478718011450040988518104444664541313038869432992776242259314942039574447580496604647724993836365367726402887560926403848050186636281969546489543224082576037223544953795952897540923407509671802054566008771952160112734551635090111454372684329206892420554836086206610419237522617216128832868388439378106795685259797109964274874363622212808768295691495585994872358044900671831552557477448844122726296533774169745358449585422489438025820304698067950871225067312099339342826435929114051327060417726916471576093344628180413618507594027655543739433335890388998922023560463104798299061212562499195024216944966048055294187660113510464331135977958975816387536967341386380964141429902947491898732512283405100828555874404225803049534051201616441889614963613940794972907513059793911291309397585363333419737521908819912091598224792068080239147133589704033255741286105264095114885308387647765257656390106933713299303007504409822540387012585427089958998059626720755439309503376724025914529764437637611662752788494090183719109001907792927240477637212276727793374333855153827796223034519501564562424683803755741581645299775300746141813417102711480696885504938749248825257371104644091668241783789485828987900451018269224351577721351025869324896067948382189039084251593791567888936351378862191536972742894835013281055100345397193239009820139059321816272330131201651252056186867244866354685256264130345782285961621962851568160061298274761839377074083123427424233345576763762798733591596417995328356140799616238159566114412171422784562327509083814334478826141611612831301155561581825495611674511583312611700308196571616805274625964781700380414094834040082890997091299163639340028024593159496184893559249040660707565705121813788568235302048946384456976731517091598636295919600447305588318558865619593299957499373726590507420312692041172530486088285412874480579326481944128077063018401771941461498636124958691286378287620725796959903111136023157645567863350852568490949866400131609059466147435967161153094708508828410502520603034830014781022973505641020721759054357179551142357513630498849642130988771799312106374691974121170475339874164174314325916749005343793086597119608495495638301769424939905385074794273556288759603708216141413167095976383131718670761578078711747490529704366370042173815877592292207844082345532729901458582006345046996206866472001250023794595702280617060840616075997509690844269716714456982303523297681876789412615307761422028553332475864191067604779876174596063093653344549742430402719055182890523043126383701899021181684416128569915761989165685807468773276869600589667148982746868951474238678158516280545025701861494016468333078707227650101279175135583674683457997883770935597271631213276567859659347458669872915179787222888368140364109179917534520881775161036104198577696624282417206979533299203464272322824943236321613817405615864594593501378818248781600816131435405310270797948736458210333146510698523993944424449601576304966197647589797172477162087768537642377065351975719981380017707585539923212797345771726497754079993130482061030489594653013495298201998885565414717302462387125419509155713387703666633247881893970380389290411709569167492696195325943882637968193285595474254673117829806079908617877647744856239134192027830861160686988096052231496785625577517168494168856533790058476643193766014065076490400250160477834325897937589367165765810536838975970822716325678513209500424849350075164831325403467912245933158725093116625400343192887003219116051551805689505636237860191464948297532928131762351711424145050193632315370654701680647778381577066848904892828736607538701814546243782667360987583036643017711526406255085402124724939638928575763859394848644014643289910309600784280014095502212887779111758432102479000198353940252587381353098367553559445370513715022873013313069706021473303094283822876644394548385590484994194881446974897379795128947055407173402656956730722172164553596348231525866176813151427058007391870140911979950439823342753968255881554573582862305092249423385019878159508366693596335604765178060554730900451367918567774941932785266530832142636701078693617105229771950305950299666132563435019777124387977262687671315482157837721679384394851717871384219017208404633230730848669008225909491173822052012994948084144803578168503867628004075111059456047934444992014047045032952112671892298396454511143362175827415374777744703193197392598271391790680954416109343806118039906369729092310554482051440158049801924179434314101000604081633004250278657131225946372961968857174604681470061763054953868737051830072787620679421120392489709148725588296258342696116577920138118146281021436756101974975523986733681396008597597438275965737667329722377002056921889961828697851584114038390111418200523550699489364956517673688510433371718496508179461858575981746674404117702921356411942058620071803658689864900172445224012838777412058797125792620351298991611897546766076372630371627704759750292594106600329718254770140192925755932758784434006906123854455062393333579477329716120418917605377475325554573140006704060146094206807137331614975765497668261130113838232946507710138723252306568421428538637083466374656807681526255358484438170270959266075852103189711254166137981811664656482323828170792903499594972239579840049118799184791151576289286600113927691896689405468256596971270505165065204646516789992413992219391578523595249921607376728605066365440355168722663153228498493782422922671073740249377977443091582015734654805005380261222951777685986537396522997985251770427659044812143668420621084473381174823765218421845032071208694940788654547426546493863836798940876230741316096899981499410046704205961358069197948698589931399570187553501100987309864370393447366972520026070607129567320247251013780705900896356056452947833991301312221223646552343708974053580979992746097559447786980365731344287385968669755382641107011788353668241398726165946944356058402066925300279788698121229374969282310820664442663255718767850134721932067354087876743800900507125606879750108881008943196771802618938788701814430982092930204359024328088449061466611953207516437434796477731575404164144513505969950134414228589036033753796231661110968204184469689106462197302633238027231526642112830373169493836404638662454438674550954290021241011489598660846232667261802462512362654237002226005165630666366979806924594434876383475127184963812239182975969667219788427895657127661032592409775902161908565867156005926368693675192170305177809913228554649589797770862350128386998506960608092105221675207304461598823230718701085796722911254999116669140568385525319666865032960453518673944047210149906148483519230784418718750750352293166834392656743917066704695648580469533658986454188773136037744075188423283980201243034775668100673692068094147145298976867933639393866585407204529517283717644306180516940055468183835497670903046096996179682500168486358614971479999037715021772527212572561027634631327058973593667642184225692736071527297393010262423627035486774975198334954066453069968130103081193227757142121331601343616462332723488196519411658828943915606908135291401198992830146351416767707569859394209586089168962133949864451956896046620625153671166178023295295441519146466064376453689107717021362407372038031819611900802109784713765444344547922965207866117893404783063118997523842795738462726913312381976278152058805753611723661797459560614467974751209702316201098687036960997236963609593992523619612986091903895538455955047418504674540816427010883585773519765813329332769882952537049727693681628813542910363117772963292066365226989901496648401015201300155273371484627815454797102501837909771129098478366891507741798659085982990951209169212979744394424203251401411645690170302368097723069984798882908652485558003773447129712266717493145193272038423321171725710041197094492076960922978728026871998707861850006583384931333526031573252008105513964949689501947214095850451968109893586647885900603973368263119526106772346635130045556501949219973799313230326159740749516960590691127696022415988748325363784275192717645952144311907068692769312854772341935530270719944448582604495799189770540322623570438164515430464303550782892397238175020966478413196591524331479796549817839175559097787255693031850900620132466145240108527654586539724680791841887169447069126178285479087765415034137094606807123279672003862947818664710334990742111256277473633108732798333604987967437782701251709190614612353309727188007278370069751781757756506865025809086319252942786131511993710609764647898671770874805010418053551954004633352531503603680142114820516633857964529914606632540300668681068883415514841033825548190333105650283911949796617451495054489428644563041150430818571805276324466231056535180061044232863004182985910649791404657815622654725950898493364843820557101341165686390285822704686231350318444371817651978470777470080169548874740181026128551038506289762782334097946684439726054369073225444633362541224330368664001416252167837884427734560807394617742241574313717633252387596902451644694388852916241289195721405957013653378793592905353191291293179774022231852869757642315782022574838914443032403477322807733711160941774716690519496785327660421588969778955736984498198311961324084366453243429076338790257484405982223934313978296037642564971277221283609790629821495139903999614657417576559149284713521026648942788226379839325304407818982654653510101383236208578367971265270125597753265203961788052892002955168815478279045244079467645431509144372100073865120716565928687269143387840366449377624988781672165719393453813532697867067525043630563638810663370596169138339488394796201797698845344471840123382794022336223356041026270465919832981897626434791483322573496324961160714986956885603986141681001781307604517766121812056050796752696503344211664244143943336216421703892647559879987213129811526742633806071290724821307792087513093915052820473193497439731169476308625560860018535716064014490675599272997279956478154839826715796592771069673250725539494518590901477262782582718520004825715892869288465663159934846563388974003142683262772615673310049655802612082126514567953722153750644608832108875226967175139010546484040071276561150476312523066872333894882219602836110601340661137749053480668321644416741170197890426467319804710660117158001123999089709696344398375960419474860296262536674855720885018613631116807410796120008286371694528936680713863741322517477624584876561893660437674952660021181892778905855737613139872632377139458570845770566619356556177802818231577772818582737416141649961111024829304119861270661623353432673567695365823852535610472822780222899939007120162606978508752086415451156075020683466396242707140092548557219633267032621751615242763566890765448551129393531068258048890032953816087827083807783265818437579799370256263945705477305789853719060530395201859566236769847115841075123982998717951869322230285824106350200260685194905137592708077173100768676758474420869129399239928054021543214150439292460428014404875087786312386704105383679098478056358122318539822542581189245873807675798432029746473969392006495513513130061583289293274502945727909025732656714912297188581521801492705726865671469745106841038473103862663774669157149340353761458708459433340038633398424632327901707391565769902441370760747324431736905245214395356053489277749153108948048914972280151800932468879112644457767159526151689953399412465140027075753335269994419809355004924084254369913037963538624108903440428594893369214421929981339986846556660984514640586532857045945824645305107168830793781249724248630878166863765933677920458938929090670185970621686349029533775522252824175274659358564493705424849222253659597545182208373769587360555718447652951201262217613320492954039226312888034391531766752480145828070707166806636190234879658922811406291314043722646099071781157149478316159280331686884878166113900283402173663082691584418860272411821097386876559750897743711288574689458195311643484795412475436046849062993739023596877938573832774680962147619603021912005150540919348224465114607990614225857085989930652419002444348766766424686041519897597958272328828005435578690428992305771894950907677149195868634856329747907477307431466335026173702854942167319695459616877920942083660133419423995391857908041838332135112867360226183880386290748715776267669823333617732656929819386412299586001331968733271937097194846231391382049387064183308805478211343355506112055107848112303085326893346515647546963213181493744343100170879696288856769821756482525686768694547947907125300419898349499252479311328606796526555386123675690810025282393724647880829576350567943338651062483216628476532595040852383628501047103488099106167842371274566772076574551387435066802409048432487610304139576187628831115767093166574316764443410845397991139974419530288829060428359605019732022011130614176427809674025673006578308720578578762201757593442266920204624614986222736505086210367359812603825359635446035495022997634999215569725472711138968409968855887902923342032378909416627378098096717563677821913410189268843463058972843842883213705613022857293796353772810563784370777524319971378095040087514475596461055805516329921583063523810552548789011853691462783610546504876155041160346127449447397938917266479530206294056246376064529310235825493626336452337516047744950293899377238014808459781991268633171889681042549938794830611238075312627718216908756112498542688270236212202195560903808400451691333584353262961843762009810443342391670385477686893857927927552187395445730573587798811254576275838780683099521271938620260500382357518226885341692199118977402046307112160199873377857502591665526736531773510193682420604074483759205169109407874763423909183305004846801702355939168254287623300594860684017201718947133296917684256706226763171739614208963728839217399945623174205565443817480579185824663615941566444614066305273425689174621893605744527773205026600298161166526883798658585657510271773646268364452853443063599573797210719043988790170013802727186535562653095333308466480054510398166819561002148100708447708295497802605414616767750788317962253461896482590699803047199350532698004505058670351853800209951611154276401040515213793218433658827751288456172658557111827431429907812713272492322820952133498291060150437972086424062105635540675323142867028212969746377756599198577399860576994772720199200200709694816362125236986788387404933125710756767099006306220385187240710871119911685443236798938849150532444184137545485167614972480076309800587208917135770546731259619854660167283780082511541607579292705891824846584535979098493826028248930765898309254930310135830259921332721505839143445201336301636276198850187006729267010433819958236784302248160796968720657933770756485071267676568970721267314285013858682784714783750394809211482526675790567748043007350845077657363782080727829942086045391462961644249962444211140340916318026814551569305950452223962434261045732206235804516109445161562487760915114488564875480714119195293439147167745301377454502960963685406878058307734563485136614187484726285802498323030755356178072422957135655920843962959472286305479163332074507427532852007064204923756300529144563191151296078282399639696662336023295205056067172443850166721658437675319457756473249587842192379711589515835131014838452343608332654006403408340114674435363822149088473591489903540031718241145068612781533352284659185550002087348016080171166468749788262423600799024287689243834742549841976196813972979750127265470490538838059169568459801669252118469530023632477529374257166275752107592749777333312904529987268689873347370086792935729874767624998459517727179079661545223307044290205645355939011203904578799501349090329465757922957998675299695073933903621667227447561669212677044683870692665469317661131661744054976711334654446695852287279325767383903272140732316567365653559386902487447019480302617357607909589845834941082214453257189295857194072429304000764373700583141034233078620493190481005637738950108627619292330440465998464485479280081455482006299019536010244838019890629487494220593886091797571148410370433333906540918414101727354614137700499070784145983291485629726408119536942253807292679641434051392827415102442975006925993344392839459646522568637638307925471099399638128488986402668046500796778701703036095879558777753746158864872708719451782693587180989199786968039032141591329193430513468845915516647836869334931217246374473903051858756510973288025949779487326165203462551594377320436667927744261369505144730367835268231438439462920343419747008449796676498445473605922208636155158574871114887564167245724396423782597212060560433850969452442861275168608895989506851785440588925355513556479537422808270331587027117829984271170226088334422734575105126176416675525008186808420346166571947925306387408404530113168954397613303335451969431761054348446287206292692478006692724580566977274591885805652062267162430692804861845426172548662301551165107217390386446503569875173915371342214545043476999157031296313371831846974458929791939674707092986178864912687347164448280680277961050053996879968371148159890210290408760813551165394638297323982127104360806550536346646677681834255531500081354356436121611870366578212137197090235468446234428738489000238590401789223469440145754117313723240464949697312258022614833071620623802686913389484548794573338380727832433376100792359637489388985003902349297134987755105856353696467427837864140523778739363950674903067540346585072849330959857927782007336877247733246164986235059227166960303462525601306748878466477883253689281035355284113513992284911111596831311112966204352585904193086053815749176961455108349508355252483633458609181795029485180880163313614813439079308068143069954017093848034775065741684824983279653980676560076022116337222371556560792267573868087689345846915177828622364251072796613082749401821464258867064012001117402134378647281642079467965478207694728322530396877789360148715863155141767885117362931693538219488009923902326932522964364696909453946503824624063686138930795559377736669571080842762355209025397146053258768911429570315618015552358922568936496401304346199894087982358270502468594633774235621938147952373830734868900063770716182770038558607931703305302710726010973253320190152325927414388535679766824890257671931367807682304512926499052447248392321126466435443549518766475454973062375453616260902902576276388043241226727563607760573611665812519049509278616196989417702901610390594638683136714202915450101054541980736662761598251963699618438197676438408890887406011490572943815396123130004678773469043167570372147524740117898770461810540057987450290800195556158999281853315099828803694554413061010615913385903048819114810292076168440336757697610441098977846022235280291938176941190090045396531988208787954416939520405306477037017813174729656900962136737086662251840074085606018567294107920128981690120134951573844733916463238601828398196659521599302621289425582585590418150695616938576067940670815275862430505355176680722121279292495046078470463963970131221785198459636371220602897948678428849489111627150523655511082347410365912359134717983716257619074236907987000784986636772989556341089568921888519874152547949085975994360702663987587893882111984825714756290074766615766208224169068433951120395526809953545188515908498325962392887377136094077376909009929370112498155984598516324833231663282926233661087369446497281218510198000963921991702173187175172473900210853278699733510913865139357747946811594833132643870157630739074467479420826530272152432397846783582267660995484830647981063222194734656606070885615630546040586818350207881826044145768969349937201844170191959373440361274793802036342490489369905436710001541887202382885874608121239809673683698264491600282361881330552967186541385966942440890001409408333334234975530904070092969343726336391276613044541304289840712802011583157979440682786523882368351804723867989395878960140035734073689307527402196294494718894126438817663028417702027295412465481634934866004500231584825347050786433429168048248735266461786964259342834067173839666780898282146008711290853328591024708646621484054577667209380348271367566555721784514689483914294205043190744165992207308742113396840092645018169679585633909327341312692228957043694842986256114673992976890626945088325404480720225209395205591935383547797978108364061696792833228404285693771787203763562545620718365667668311186172584808663707594967057003783148764626276137806644605903503363452271838523835941527603675878286703217570380336401881898222495244759687060855282360797417591182131956488863872795148616329659579334932159860675110372943662091756392812300305703800487784727894882338814043628679297103704686963851341304271289009204123736647769030262527520991528196168804128484255140082238917251890957441055686051227622123229785284868928665264316579039797224121473318387109049679385539535064553413437916044933220945852301697975421905968964898998643518957671699965221540064331622563540557140424233883744532391892877153371541388183856411815770916699925857311746947753734548242272229237120133309980580198497072288836485888867636054541999498888747384808053382179534615505067652436098633327785156724021527463895274839605232247387666170574856060003849772429737069790872232649853136092140260799981631448292303519704477264024196801162151297821207150636086759591806270433379463733754299612161450770814060290206500261525377933562428247913845446072731270238692557126443053042663627413208176048618834143794999799499132082694767490178179190067295804080588990729983292608954143383728909869611485304829060576785339973845752944599901182333807500667442587807729842771793585388964610396969449655825980475027956737561806053423238592951857920200232693000896954677459900770027867723017758800345459203938644592180994798916995475920761502136742000860067745529749906930634192564726124901562656694028034079009549926306659791575015795897937500247631398864952826483029392517714309613528928880312184667622105826359962984503959595132625499054478606786228123945611283081959101966495964019695709820534980071337894029748106712059281781784243707319567381922019053168857732069789257219587043105031005851392972702238953538548932362595734743315420727149714421553575727497077846686235193805068464326290561888928898906494467672798539020424724129032940557205599061931625800216195820284871955708722818654470002638037356759636818277308617354629866937757941538591022474961776491159017409894632177845949699509460925518618947369016520049039589053449447474461740458719948699556903439919854427318783714090823776705705943239578350662896285070505569621357809206215976493990268233473037038569267149956031284616603792465249806097535971303105290825898684575307329467276492423867504227273500208161952102961430965915110046674555091896835134527638069687172314426378770529260675000934059154833561943923336036450999423647119086245044196568780770758636795139087051733345977632657094617403466680593225382545426111817698374867755212336748032818821437265096154942971684189367355919680538007402269022762691825460191930670008579851619654575965010852965554965970209377219541887109481209250786080244100106764228989403486585985096788884458062718601041958769117525973554925425463566443143631764225575113020390336088481294367166588382226287492417271559209054114282555331724966305957618439833000942102437475958283818887386843435134071021121625750915033059506388449129818467012717451350735968142217787685323680850349986008279168440125746971779163729098613318838506558339704817860990343178891717014324048311882227466680808297948926162051679362907923042910593122946556636857045385196597400464826184716173422307382562820516972031099185130876733896562529044612462346166135359356986375600849782753974855532323423794935902288678924938954877221116977711175282576287271100351905018561544213736016994064408867965882319966752862754211147877805344098042215755970558181441878513705086738002691555731226456104804701962643097754468791156520184444639578724018513460216984565705778647096299632373947341707811224291725657759573245019905191868927091617004811566304125736489212812148388806818113336018039577222687626349738474663613338814914016348413884030134304786365805995286356115816932684737312257885726888667289644168510110347376231867965779340112745925457802104111295697402794342419787788720043186135618560857767329186066701415115360501465908426336363954348538366462689125313686704231135597857402188001672402367946859833972057578579066389034442780131950054516182435424713876906476937776868121561942516110947051186208857262885402918027282780899694417132902348923262733024686540526597391176334051586229995330590058448625279981282377590461334910008600610379348071921696784443965636688197707561362716182569585862698519833973185671689577140651574693807337912486001900677308588654450288635690983416685130288782120313722164820612990913226063107219177991694088669059182219372893442967001695010529765865602055685670384039505344652525019577866163784397485015144068392889386575349349104965858947278080550768836617262026846724026503909985276772209959305716852150924134141287617874988617414229671043233703502886160870054809209122373901263129616228644876559613080094826344436095513573674701155738886846216685872876904572286686381357528840449637310423512885502001832506606124505980195233808642371895983963399959423602527706725402435571854068389835373121988892049191436351326290672572302866872906623085221850505393774042637523214883150483518318546283453281476763936651486540752825809251115523761419214825828210117962350381946820489235430631223022874295185029736797500188163957053407878605698283394881092811154256860000370369276087232691611505304345794298032000236481417302893952152628568273532973338467059785363152325264113561063734043124332608698625258941389378993317146922008977083513431189188965866749569017136278505899353864949589747452439183221049279636880757527206678744057639644175611293592009222718899400824546719089438512155203520107652095235585720379895175081009176569218573703839247418767972197564751880539325988599311724161795714321893537566589903478196032124292254354206441238881938202424194458740543709688253117872281966575323590593112785595315178590500126116003503664566319800775088896535530235756825458858723504519338030631949805251901845298972684063607630166500974066320545255059563413523716995128784821926150323470647778480659296578343683046399218975703534186987795592623825024956401035275956102711347943221036467630007561900037617848282241334731333961484040046234402689086655107838587564968400285044937284580950403198001934525483429290711164484792060171862832535722871311355745464734646775771919896779785694634292194471603850945518353763699051509152611467942292194852325259406526579112212360768390285990932279098128828277654345412945366480859867017036165658570156293074552707232810412337930441472416343560174320893283846295177738719328429513464072333043259152987011045234128723141397488913174557164733294265796753701325705940789405761730624423391386650698754262820967381317901480049457519766117733324520475992832094387499994030493077975399709969322756371257998109712758325802028570748534123427277572160620901723314218574160264140715446789128293086032438418987369611308806201971165016432326260798781949044260028600574511706251884730154572072315014379926421116446450800018125826450223454591563035605993585480192385178183886910664689091723073041065518399027623210980659321216691289551004543894139464855703696580794237033172074979286713865522508583187433094844250614429917176803083532420922834625256934335965658108187007446769518640267025484416833334271008059821111722963047739225645160312335689226914995172976233066576992234959639813571821386261389674620263882590546548757646634838054909204209068238331946902747057181312155109984939651941477890583406462730650465004379412978399625812293232804171729308931628076030539009932190329681159154562836163443054442335614166195340591020033818642231392595390380314419138219111588020480415336143305358346018294022810822453657579557855266393893863366774921487242590236117066595118178315301846100479775030917351119915918418675733874366777499310712734616637829826337620047050863486587544149643325058983869466792313656822978637076291808639580286961260547070772704344753708995009961734227484988280089196372802139177837322813593023203074290524693934218700696078458801736562788563346611258874708831855188078808992858498521157811702818129948150766625890970405883747609547491275956039682981598832877732548815347020364526612639344624169677389612862811069578892971934733840609098297692655186681736016486163571044230268771280713389246727762399325126733509116972822497947235301792463247932878769647823578960622494230612682916790157575811856655084409680932060497728922380619000801734145874794481506095880901896424430484708870318726343159066493839191253397288651344956580070358545963260959203079244327901049074465733412925725929869323203950245262886965180399026634829056721821027047765975523908588573502068794087543877165562985227169330332093077325313846515561305920194419872443533116569682460861058751565548250585356315156091186342176632021200642056767518425179175240345766759161406683806412092623621781073034460620021773345520060082595051197579098776224859096492041842674273477003813115479042752781391027589555428560158859057290525738046570211755928908184356372919830200023472920486772041937751589876969902501803635529809959993025583509268521446929645298551375351465689097497973263645799174154926840176913744613285640169976575588507092202517297691283125495734068886759974086399885426234124050875332969689915959427715094805703603557482801822872578745557765570964918024880727347702089299847211135790301872558396429542779378668793188292973489968251864965286747084620874267518040354895072074029824810381078109181104766172410614378230518215913006873938299287071300029719134949065642979892669131740222882133070058179007349083434501676916078869029256509824870143949578802512876505322194283478265073368099353885367714431106094937102259009726294414372793160958077867145442536320478532808088009541530356624641215833783421432705956056937204955513012654274724968875839552342232343302271580759501762252745173437670474421205346492458658832179670090637583241136878738343638947457763684195224256642262360747167295172055446579600996869615322324070227523535297985088459597870749650262640653269792449543810336473444277936679736593713311417581216577822846592299684324618176917247875366757923297293007722873659782652850893476709246537040057900745713626369582707366854767166566833304840707477072371544778219834558822087388672131852076221009275794077029855150597423126224167735059264904650053160597965841545706114532980279074470264392924529872811140625319249527398533759443622203473167189253025967750306841799683707551450299213509122667958262189076322841290645020095668638985897397156582354648951096259733410893403211453396435811098372954044420857682552422554058170146016717699597081785819619558849799156063525965552733903335660138082038745200715110371475141631357244725540787081530144707580441326298103204318835008223612699166717262939367260488719402155508950394369549862672328416239826205836010972313714217988587804852417622713077213602107743974631042582857223028254125646513829469047817989635283794888634025400230396123060736743061028389766014011241043304382692270191530732728008718043969223629960689207685902141033112995419815886269822211409630072197664288237026326803169792209510120658550672252696855251253323447147512285610597590602886917329690522244033546162194174203566889005593632514279603283081527057132225266783452555910141849632527782302859576016005168179423665628739629978689278627361660814861650433032356194274013243024570453563112592581642592790291002241838919594820428974221047137129293750278062468787181961868424812916244985429650488348443892873236706174440458685913514774730123469222810777100939753229928443410763718123116157210099058961262526339583842150672782771423170117576842384487734774874554847947490411736142672517759146064205527883845419930404178346262700198927879566615994192836739908863708162234719824842763432428381647313938361619861307387731537308804673214656862000991944385179002828019462368289074405345406677428324887548777986133171702322871097983083290758600151175310390233306430892576641898057240937326648848210362477406807315221176590295968832549366314396600972306178715408260879506518407287787677659421972406898564772974229752075579548723172757433749786984521286595239765842715341453927661011752663914308214721120872048893065824958935167633282499983138150902416004741119396779370619522560408113263911874124120683855038761280044043822502834382494785571265243847042800469888965171070715347191064161841791823358040802611748926245700516716474313873273741398498273635339376713530098685030019026901766161776388812510868532772273000661600552095725327456366783019881839777761319623401244519508296422749300996358839632648509493045583591276558636145390689259720800020471986577638754365820028878285589126863230960664454020587502490068102835625799829194042288280192846912053668782394511170643307742061630552341084676397590882062977660500682077973691622269737159075764730626051325319068418774935145207565912578830844051467840021646375490544590259695669855854786856889844450417215585985608557534670417065254702515839976555121990814608909299816162285838170153594754917524157439359312553274660308657732225554275881787560001335424855461984547264641020910572701293011063079630805369900587055173212815560865890567123947102665797730532334476335273641953257224118327452850705340708946667505764473269734081319282082226518942969381277065398605324887340693616616900406772044421550075992377895100407176095598544696659328411795603522996418666642057464272584168508389268484339830696251139402022650727323030879469400682526455972506693273639542675994134109917796948459618912341237844913630963675534184586857912846621917306593364349818761180016019563948129361503008048581181400005241358384150720186068415534039268362636507812715663370536498107559795718992905939721483677598140900048788986010636286933859681191632672120974955161075711600459618728160969217118996590072135116340389085247604101240901648316499653178093095033360279450028011740949759135253693067326027936209403728246210429432759634240437631846649568191996009196185225052875163713603319741303987545144235210368307588469477433965801053683140069715786374080722808811424026038981914771328231035336486769001124994248136242253695359253284846185068831465843006493102817302783157910537581107939014757410915516768361563050926727046354840458762046896598133885497977581344901522247287831625437284621368559053869490297274176539840985182249562581039698871008274054633977480391708925622152566766999106068743190636522643330252750985742176928423360272828118292591204390526009738870122160627961957918093738468720379496461584274588639107126496738954308202202690100535116742693706508021052621825911477837096846906865508168026925384656670501538960025771493067346742212810558777056747469161763252999794430350512048163384740259024274471981878714076842150873995261478722255500991228915841758450307439966791322779935467589763357261656077435171731006528462319656005423868556425050141870236455361186805707529993022022864837344553882747946637248491507357199811076926718043938085602393212349064589584275032201118287904488797849258184677834823969848417195482321919743318412706173219044761851043849869122848748121483206309746672471881398051652063891121901129882721971611029776069151333399754002482740255001267353234340546647157841554464507688969400317079580874813893241866431823258793424501749436788151764878922095425677318481610513939471178299072323069084583352887169539603786619992925734442618105208448937353605847266856863964790214400047592495099023518843256110012047626277068979925426675143260189058677828164102360882747457301911907369646621747193782220360727586551459531057165585695427798679948328830578396888516777589178499956331758496151769343718744800588139888071282656364647197528802506542854455741821715830603715185094701134001586512317033535372803758411166366748630687394205424195705056140489880714866003412687143351655879755574982070164321387512041094568730184783387387894914265849282938147900775751143032953310762704251896845157654926255351126415733141634528892750228642284040391805635196902977573933238456044910591008436576403274838788567720415307713768267059621343846461084444854920373399603698486527363878878156808604849557639084000258923646047673566840061400890345345060497739550735413243673751912094426252640390922596278992606011505987626481612954311963940681783951072765337280458322557554321835872569130610895656893629243735982481528630444076171044440848431990312647419158123516240973670938574677457635198651502299800217840847942689849327031717239152121820636297430252909075207847882234887854297558501229711186128071502480264484131084375826049002952799957767032823224224839186775999852001923569011519699415285230451907918400542354484930219995517084763464330810922131047469844961872363956965838946635585168126123927134103075352131821649531056934735991187930552514926083223943993433888384696153844358275846937895798950585125407477596998308911568959363803090950939934811967334110272819051106980614140014849640399086831207951607591681110253383213739061167609539296557878906718814017761820146832230134801762000817705183464169653453760772426531984443134598351286191616580795354787107296857408989477142726020722978287662648645059714645767005781213547877151853033413272823762029922831524271602154317682585947082767836991821500960663843585607448839401059861758136992650398318160910931359019878542895812522673909539995722478266523205853438136925296322755804010282813816826968969598056640685328746687499446461826284415526678591153134470594296426035917929342734226244786014343813506461916267506125977979224434034258947793763220660956920788055467812821712779574305415824585701286058595839134514453130998107648122139784141647690733636935198830584568711874037274867947536245653726032084699712314788483212743729702180195537948016232207487764165461077281803624991720578023802609618629321636887884957970023509476397199187929858115190138271681086064830808238818422108888197921060684327224422037553251276087273841584571290378082360919786269774587172958895228209457275555495323933444619027064962293034614940881645339876419913364831234489224841543633255070155268909013170656308828888630569402612544935671369785457036890052790887056047741891087391149960349044757932730867515581148908605195908707335652168405747619715908329534544504350904852682783924375185725493530428702056681596401939279625597712213550199628219733550954604493885796202805107801109304925258857711240987842819201443492888611605153146870944329251715577357194318159410524251515701811409282304052653414578961758608314020452348208338729023279149128186651157765601940662443892103361292258852842507565316194682461035566346365890257418006582638156178268368397605848700804105342770164594585215516433648419146161757407390700650480657676762396662032951478677015474697328613736037873573342741010806457261757104848826160680745631612225228601308061702418987049966323992227176843144432161336887847773762840068785835312789483000395193233893567563071641592357013347254622032146676789384512418520015232167176378401082248369223703593797006928095739552818521413335320604515609745796271398968495520476580063531258281718766742844309251844782393579839386216399807564366762158800752624695509615653251031063903252391267723877241854417138617297767083731093480949143167860601694740658015558372949414530782837827127217270075903751084186398326871257761521932118010714295163892228719747338259696702158471254339781141536964593847382937726339432747033086191564920707909977509872707681471670008197370593620191281760387726916006084736927313472711092220763125499413837049682818889853039391677962837711421583992455381304771284639127704261310358203343529362698044102435141211899644462661100713868448698332486692779911871157788730278079847797365801863261936432633454017533290629946860192093889702998492799099361414815796980254130867802289009724730352512817310113545860864071892039194015595431412801331766029123613469586659005951697853722466060096563486914588607255667577183836836140212246382339825384276222556242073044729566503908646416724646683144882998732042098726720032954833445657891587518937397313440913948208288587993000389900743964214186098216534125909933283921535413865727145407772718705976767467260991820662259774052805416684809930625120303300121588499030662260356875568019665282356469452753857594317777677476209329345389061231490306732625862508296399004429850871587122035744220460722427093279217687637812912889413242134405123519089005514546194737697628706956012395597551002615467661864378240964181821411713319248808981436216250829538869844103420172442879921301848515504149413936742327485870607850514023042778984918589804737296078738840191786664006532038934513396244971540602146085099413214689093612640206111160684850099464206707692483111038145300984228512467443817900486018347030556905143324603950358238736516780920022457371500344566988484699505843831968979394040695740603086702447011314000129799251998632163647111953703642358290305604413310969117246211571573488410396474493965202074047500235236170189864971278510809668051409774317766354418161431024357373326854901893512389385084815956574602892512772519186432294233187224594226334422748567023717826863367935811787899455227117317873618340753664684680281969696462417048370090679763691940866566671988292922480785228022473161348498535131755015835626889839857134156301505897916935125778433584484177181953311131645661192079723997582869015410491102294852296421019335456686900168426297008442640474512095588822205847809278353633268874472445413343884252404695621188274427809990708381980836011465006709453070511027449580620179625802955013979650703093999852684968080450633336895561294134267652271658430081299864772701541101369478882174822885903141555458620745308816100509115070844657670719986141856090868730509119704077098654060665841510668114121988026542794738179254273139964259401137060369674176036025654211926082902573299905531436903783922660314225963525889867691277576231317612114960985818234989606622575987525209522772006842702378654308244947011145642967885044521140864540854621345306299833257932971366035078251172208655321080688835088067619763179094151953880195267716445006802048647599494142150642197969067176506427985868875077201881129023826636608451445313073891738892829496362100097919850735317972791930568832580155816702916013908996931180577451819576185020182519546319367153128483407484068692822752615913781958709810340691643837025975326420486637957271395600652666247375226981685878711978809726796835268499708773759515608360703182862690592033659110597794996863659196161898014084528304382867914376954667073818148833353868826813311028414138205344559430344684999685252037084770883576262268940512659872666671932875555665149770010514463221599279134014476045746995546472024006958711473914863933206379499081104350888559100763779779241670787790321306263049669197265502130766296525582874277307557975779146526564524282343218017947424388483194585185788146856460686566836601967020167325489889974654134605865739240195515498892445343974026207064384027225304272258882483975772685560620173372392313970799542552933532235783386064483301217178631739228110383705604775266900680126909594679075450721736326570415055577947118922085768538596572793940358345675061067947467630226811176013095206352826026471041855961805708051400361526935988307517963372651968207058786459356127265691315139449572934835042691765212246108587879796849794728461383516262353003325099562471565216481008711878210391651055688845209656257004501239275723858916235234418132987956686998789348621183034429596486885971272411481297363238379243856722767252332127334684991353907439315013873040911813094129535904355413060689454001839834180171129420877695795794112950979707539609034645024232849381643431479436955025017232061258048715808721064671859119093914331655993915192945824030184220759141870116255131374062767129864487257189576434286416744821051956942642597133146163815303708251378907390732332436653384324467782056183975859576440251615530672317943517549667820730921928045335954763438735429461727102115590507834799950603037910173970609024233052375185428627233660984033186680533921660676641827088259279984466802111161621772128794612905830416221364032612058572601022993209235409322508558775665801962344456368687630924025565013906834168277729728580846499967928908913033344395546409589778553445973664421427542824262871523831289610243151763420918019223984421305182515302908621575305018113847566163925270409632165157021699144453619855749326779763594311179083984588873089537406724239362335370418537498349657727527001271728449854031450084040529093555658893465118919441802480138819492166508304607416461015852134162126216746189869208485545264987761970996724954932910869621175447035399791956303219136161477295838900155844669877228213412174561481725604287882436760405381937102366070788343345144908934506706562362972795684177927142794026985894443530684857166995658606941075832410895547946631122983288261061786149750151025214759674904590821253276667727517900705354607505281648769358838529099289443273873446701398484980354193279252025016745990869226275007699264767106488047733720589043629072554467292545803010817471474012865164151775455961862849875188865264678116842125423002105657518287919113513351226987000014767893284494244395791618723642921699486185291751936333436070436761342365339295733401441383130203595326799435461176665490484623242922435984429994091953765684346577137894849193416522202568782277244804826177865113162654003077529683312591599076219122346698226729554420873862240871707349782067837409053176407349709232257230397265204122568434072354380771067041670604726833749176463170731558084327834714075568864859754318294598454422753135316231248254375580493418765438578394676613743488821200019508504576942441163196009577901708873769674182254947368106148911863020732017514554486985364726828510934512839333928859208025370963053109537358709309344970457434506968981883504498529810114742023570151626364204390814087604675268124966268802378900014554890962874439003985349332320402144599139145656021348286101477796996086471381134112066281674366783399619809849524730947933799924384855479426480218344165928652278667413613728153660859054286319614160591430249381943236927245552049185521339159332702630213267271196282219870841239442142356235180947187315861521279888933737499101406164190876491356359935284795463396593445144874948786313733735312090078550108104076696213769363376847677393283387428208304674370865813879149619944633707707635288060188718816600034665912697589586034864641356138417628590555915306770854429075649201497684676543702726467701422917356733628404878483437838057742908549661103970210851377082778978364738534716234285568980715459281107243122314665936541105300988974697886691533929060499368477392820344075291893144395575547546683278021672853609826156116336008034020152372548071821827670053484651577230004728020064744046779745903316902660322491028006410200393049325506045645105010389438454289391640986800767016735244156404661352173052011041452937690941192746468419438887695178527317283089945128698484283155936504987268496289012125843317526001891712193492658888583997811936329921063258231984282649252281674742988903502236517737412692478433083184356672725803824468796278762594284060654971413721760774297851726143606209866476896518142732160497213961084547910299184170489271177033951330064797285317843514672425938405519650398987578741973528743061776555987254775997623471024012610740041656321325798058638123330291088289149358352510363962868933033663572413922701042753347658224361248162064515235773726673346329106597836921668256372476940600297271619445349718201268078937331447090993389702519367701336739727578955142609005475153560097873911212677668018979012531800867189255780132196935896675743153311514732617409064839433331813903321453407757400736946307672125838321521744767137159230726510247361742792178511905355214992244535787722868984426574098987621831750178298893085590965938855451782945644756303674791129463461791493887225635406729126302466082570620724797622489074631103521394084757971982183969844114527789268278512676189745725944871809318553012561004245532575213093222539732093179688319248929776156545292857205215153297886026484704470340423616096363123904687850469429943961211948382976375838737962826844260091764541500039516356035641537614331787700906380953369510369729029220014571123054659895338143812166143311191756744137285985482821676499246023682282865241026529050016337930376288544740197317464603641578095589067193641211809430359120630457236705962663585340538736393455270532414522589187491950433485524463894792984806524953555300560907118456904722767618717698778358239217047505297334840177127399687924855577540070820534511038212502077210084244212290842688601224551033299304124993292187040721405189604811108411301227830096763652091175871403781385346815582690603060885262030374733495192063278258946302279642599061354197281556149300686391899350858361473569315385074012600052733712598850958203649003989224513600808059837519138904205845293151264102451370718109155666133485236059528738160013384546066697978570605010467412244485479192210248429885042005291986854113235453474411583844988654392193805876912405169557801714214589503835622104322065379601785671522273565405280791379765863141033044849746679405747957740602411011418829566357446858903772148914346456542486619954962277303399213855191996408177584456959651094876084612148184377405798681783088090462904024427601777746660418866656771705000146763580650762389073905483083147393697752977179635196250379652495470335515426673904528535132357178368768082585703636690931748516166188199683834834252439608502601363546957854322006185319025644890775150197466935540854805504281104495437616779402271771935837673872893253582146435686935058936400516881613017362123631261384573197158114752509218904393842474764548544830764341091207971772339615639109006531693746567942142610161592189328867570065517597249281259136797928952313737855508907937919024415566765931519610261281615758123011614224761072999990664168501458244731938194994206117871995233203202576670351286944315455652369213967772756756656117354667450680350590551858575183858838434557055670846487559681883986778593504216430286369361639526122388202225170889446185027295277239968555137705725098365665964218472864593042392053808351487441962762036200178592528049970224976905035095251057796558313101468651947867548741429909656137917363929963439305007970938630025617431116575813227920550816157437639503688830972570762009759768555632279280977153159109776838918248672977526484861880909771014418249151058277239191784855940678773380652980716251356019167704135417296726460067509273644039614181735507407033279381289914851199482132584202642204044646435784246648252221349942995601839103251731768641015499358284616330850304776488898766534186065194726144024705621520963029874881037658950633499317788380943318810368564353339094391268258585940475221282850892418401730860820068831300849258388421988413137781707095510771493905729422403731275843844106098371189805215964995130920683325770516234445255670381347299065339823665350387423213792446272112389585529308446192171956660916839130964777683105568241343195669879259355598262044615985979492056785590814342560136069624223547133238748250164929011415486540647152677857852370120389461128928775172656788333356261580208768666129978380262770045144648706352596542848618822394087909394604800726398090971438356555315849670801762167082498500441413762898107405467442854948279554297845006963163305211561720109660749290363282260236019049322773590530577725966352490853481649128997811896557492250862692593085188873471223003320397247841774561694708395431210027826553634050925006388983833556171036849203938837935183495805217496162289425469284780763276611952568078062552441574489947327277405239558794288413602424039039860898047366267376617538693229535677988540678123557941053289042438469646642462861276223295839048141899892352094059440087585644014605464637624421770979854308055838240798626844793098620243736244964511085075698944203371158069640082567013989086421240044252839103557619374129183397040878499428167231343507443397540227862647004900535137786547879819708440274601605576910159016497787795694672665258648195298707901180013069683636534809456054077109356531144755611680125301970834134584006696313905264702728898271108692840954050570879793126671618500387834883756697367576172493497223151650076898107780669791938616347929121612174792896993996016729068373712340113630665002646816030636799383438330451076613987294489807300729182300852333838748296476501593934490126151051470691040852876844439081925686678926348930532277698579965293809090098889820069227126802425762581670105029272218648219587128274675170835028717729725213006045131453478072386954875492288198921537805326835688081540550402439001466040261974032475353508633588793811680939755210170666590288959529824033880545503107975048712055615649963839665880418307355279340138725523077407506028512400441236959161860516914049921876842757449620289082803705085097944255518432271056026423733930413441937794532505228128015977598526793374612420652596971738376729387364373269628343019479592065905422444820457259873758103374250282445557076045340450037628586855398407989591968296077454788920198932331354579452027346139028398065002407165739861613392231499605421601991328676490291155701337817027483111117300248269888566823697567935758016386748694619026892341178564438406987463671711083452452009644358520197108850653391424991427070873810762828759360961465157993811128791427621152740109849729042454994128076264456977005336655971899436516829262730561056684682847798171600303970803654448705810755250418772742395983192569172313787420937053957528343549217306789836817730326415217926502747410091954577384867145648068735529560938994921032677637601503750207773892724292957862222416820988634839818945526414861500056705007857517747958233188000362104494348042816310328888650723356713232906163110922802850838763442875210307592898598508821153632350110296835596460564996128544858081433784857085918323885025435124793327274914863507051274347860213470436305498298252542474918957231038197934090478684878756898250833835126753253031749664238973058695602172948269203514409212683318638689146943366953019279230718799321351210893216688418848262329108647310007357008579297497357057524044062760486419210619035393976192354185852776206105844471203229959916381225744006216002262967494811710159439944173642004644431812780093712251540695315948262848241014799984719823176311765981536488606956279617231241227619593665456626629761056519799862952331107768345255639087913067876996261393297407147904194907729714792844166827534905407386520905373466674069868462469644253677772950574253896837989761891637631641707610083243775450900002997225164008996618043166278517174740242564241558727693396164561424451078718643613792182704415008131251682518592391717770111154398115786807925425978971705789460881209083678551799205693232076485336646476252889695954700430250323308378482664751301919196576555144572342373918515298814341732621926795467846037246968624221365073801512124722868447880229995929755284653970766644713911467840783034907840038251552469095135200491696471180458965347628410628703633697502139491760427883834085706831854324429206243143887306155199581551103163507457226482715942312657606659088551707354164400483075844670458857577518836543587279471385116885485024520351742848940537867339743710844400254503057419675208642955046473967778444808087405914352721004962110195351697542656577287353517388244806783612354326599770315256053601684076957367008491659665920318731516435212397143484631533751611175073290777358817567773145076575258223742462570475204998379849721313841248152544071054441494387395460654409089825525784390727396109819460535229727401361975867671798234308639329970815169678264701202144552275190478949837350628198687183763853697643484812741652779079126455498094374358564200421414481453915359090377397839422360487235672955396558458735968617997921676467544564220405351116365208102901195173047969891160019265703418884001833213137674345340366351646331864096836362888317309112114365015654721580194841148812297704641587913045589507891914594440240532543272164774141638068568651938891651735395414425599077366505782076911047311707984805570058087388954189961784892790123840921825337415144407462244512939016879556574199721999977490060771568178573655489123875976871872745396531519384975875754492922885257880312287146688600317254494531430423751264763808883043253070207770274313090251889227343635295614640739172005251045803391324987178774942748434048599213454345015694694728715038220146188450819857121527206697812431349940576378254997542971094773259647577364635686533965100006822867979029437792055586621283382821008004865430919694632370019109558474550710973612895211356301950178290753006595848202495003608045092187236631203730775580387135020231649923133930885457769869595915372938902711471935691682246902215005546742020691291591984712766898994638125788677606592884615391942586597269461754585963343399477850122715759543810072957216292246422583428945464879503277764537034462467986950936288512535341651047403519920007280921152922143778221557682730318085765482501665489223437025130521153466393733404205718942845261360983003217431861432261106573548491184375534982544119602934101456274767120507989778310567951254478696646807019195675491429081994428711869805546050897917626908523409842487875062918593423368498503070019124140156654988225398666023740704321790926605257030111324201318088309655223128539387339202162189560340026792832819853252523601492172123267409720796139594557851245130938817747532036526096056011939273394299312781945139772852127591165532032223976926570001973166037786434811164369291514221338702699960164551610287761613162004199939335309910150424351105616937729966432314334966953445201125243274630646569902437426698599347201265783971445638942836598772572270011783517422797810840680915522039085094136202165214085610562316179757101083901366061466312488942067063151831457480199601502939786389483405921219703225016819312670843924774761551244019555079259704931556842151430425915473841025876043127225931431780240115056550010223018615870814555849489016197526534272820615548270202212778832228415835504081212754657720710295645456826586387026012135181656416685215310569583423760941188803288228058171455678949389318955556650112055234315930914458409221746256442009104811005155707720328669455270566856232862462864874091006912534455302011134060062436229930119511475175671035171508668040593683596389696193588152229712330601305156667344021329318511378345400051763968380910480713299810287375074494197207827166964757280295059747551847162088195232682512275968238887623505798519768806923718374983919782291093272111982440251423963795021620976189770435725372533550143114261837583161705532381284803548735708798785699016874419407060558354839789215396179538843786590475957845523915992645348866742742102844451151893503811803484615897684537464042975857365853061042759172112104202115539079264446864953507265299589552650631496097507200877142232432890623448986872915215546402653276571049518388782053335877351148505212593030952637961143074576407767626314010994198917958388492221175839825732590011167155267405463148509990482670649320214961118939089193955243351694610598993989527612774717812191502807685555837766636576374591501976809299374684619963608018586635889375427504530964117911996012291514829030675596195481008497503525077486037018103977759521089250702267489644966713259270037911563897383250856313053343942022917530094456942572061990957873205156283459262205651590789957190094256663768540541443460291608724657288119672741166368370876614474859670337178853709414904811453322958434158309630342783127795759560961498324927006244593246918702480457324352232552706854841935176991331461404967670144375563062907961044464669126312236758961973645778443559774171668165341872653307619207107897640112422316524876008113317166563513007331429447464478059825677080722909338600146949984520977297780509863075351000457792056053266110396273976336292418366088722908809523141956320981299136814868866968385834457961394999481970183028460389239529483940828204701193158636933271247534666892036884746583343629527074899616287363967205349594392017132688586960942731202663643821179667108433878902241107130650269101720443969514524955089835327938502168252543344380444596128343389657828288746743585693058308133761654483762310121205869130731675229960505922649360761604064628789429079617088490337573192142291223988166725172653107715012495522980205322753167604243768125456429007089525708256315970279765716332896342128804527570545128541005005724928717631894087768439637035991481953045776168891753351271107263040871742214183043235619141321446117802646100394444703881558026810709216996626985400441251552244547761725495740802495709580464926948387034257372448201836696486375113262961424958754731671315112718700513099644315850748567028843431990925968027259083184753621569011867314438808531361733609910682881701250931867101024821490977011591806264056524023239947174448554044933816209535258274573676375448445396399746155671728662274212565585196098429803328126795556380273862407350106438093954243727486767543001348912745714253009334007819678126184057819885872919260781530192553455115088882415767228458199382521846892820592171260029274087976378312263417677333703667820279710906334959266415515259635081994859644179720561990078396123999974778504355942813227003508827019544675557425189637778994890812440330259051869223280607516071805900676864729461726325701070629638617224824285225512612028427694776041849105087650952254314720664903083837275796482843878949027913158770551615151421951412902452990077711288208253630234333913013758095035871471070430295972953226237391834840623095883955032268105310975616809136576028881753946729602119621061021555768532529158497747230364047426075447930948924527588630059057152022515905407372072792236540179785265807396480999974887325067693285035879896624120249829424102653123558941071369677518988096737908196032923454621249380601650721993181897521854943863675770643810109468441864475891141819303651304346659570114033253583516514434809414571118958080520172646297266934423346854807605768004750778786286448429915817346219949819894109222254031994649335001586334404947919756107260754017795554064952308488817303041221642683319548771858166979895664686270344674148554047849290423848535199675928990399820725092568588513847335184184238238235677419139826976646323254400509915398405875297864775495636492488147529584023524508073987130818884731417953610397537983390305776145084372520809760817187799182442096766381405211683223747449816553359708260797826156483083315713018837097784648104833147434809497892457181971529977562767658433033477106293525452300623150658371031379930082645605058078078299506717429393578291403878555168003618098477033070486900150156111160253087348018108397003885257662418703028422880735950322156036553188212242934039354012679284179184987323991279670891713719356859895545804835627069814912481707005929431691909596180082149775003649997562874490870154944085422137347338017634589551647890480395005565975752416122542487334304023774806382549048171437912841487519246368569116853420749612945016886120988005582667908641019641382224828381276666903779196584745681650113446871209895518334850531823565552616329376825466296689659826479400161154465354511908286334408180677774044818595516024809110965809632733071464836608651597201309277813494634917925135698967422338235206048269328479677017326937039399378704478805769562267029595376406461639828659559353795399697862434058124530067016416795353360441466597484657281330806973645427909020723123364379504876259760485394635576977802156876286106438291786446628480651875464881043713678252494467700772997890967048893901866843401467245402774942907541901253507953192937243762088595128833299997252092269714356370304883337412170000553353038244582685653953544618143591080656406957081448030735559745172164037586207651309995506955588637421033645619247080529764718788651784451144576965601401280357734644080711470231937228468868696809022185349233796508183034669294508701767174689049399691417569819283167765569096301984654296637326748756481641123503215502923348331628852579944098179950865233106636551735903546162752374308729432061934311610225833357362535514253468584312539059749561145736318987379444513532331706131901499967776932255263233949865730763144646353362575566351344875018376089068714743469983782188085059806772009834780653915337040891600575613843058673812891645701466348445297535997253847991941849123690561838726366921684120670515828625841813090914124561755997034908201149773853324849736022939994270717877020475007367879499097699823784877807812501765419030864281662009727536257181307416971304828201427624085606162669832017758659066926679484134914542238546340000753567405689473404996096910332242704611122055800244009348497559952553564334764642985625260968265283068677269346516614083437399019773451239108645064837523294729650914596442287821644208081992356376728101842688114101074105830752691688874332374517676055745644540869076889278145471704675013537624509790267748160691242499467928347908951370835936057248596472209886699150991480313211101627788560109637749646740010155299264362698770541644322627415507347320005805225498864149552714012486513254517810459583652868862012066237512677501405535877012587534675871749453131623482987915017231808322976518865095495712827112669233949794832980637648370596441938406178015728578005391247533635406816895963846815424150136888502995920410889345883100682740183096278808113143430195612128671332603657071563274721358584703134571303111562820737261886707116068210866023855759223495421253215669007751933105320639800683980254923962482533466207000456019197416149770796576483640098069839439553112486828670827017139450024241648248173453599435666078000864199879334499079050344083851872817538583471964427449564050302188621706506853513870965842456130883591276054876217638972276281695609911496375653212413575719245210992089570443407698699710624937240014043882308022507167992802112733617866566252658654808363369456562446515286293271636689065296799550544340566891595014986559521314844531454864773729052099277534107882165516132208967876235476945679053710466245999515164744331986914078824191340549664886355032267381808580300365990576428500418131636754841636491234525472039357863039067442223510793774793271031241597174144128701793421521329148732735175912808357854693420680337514954997059930976282998829761842344520905037715324028202646697785999804625119068961864326222301380890779686129528264465687185864635206220001891296936728385117883531335967512828358356803540486868016035795852470918966839964217659856910342105053155893537259909660124663723269850227821999802754606442212754064184644471720249809700918976066994860541989290100957770289041342004154342854936789027573535499293814365056095498987226363838375261836755991044865355322606162807591276667233752825936387551938088966332320112945767801960501492504845960120319022216365522227098767160606672005544898166508193492018867232571420554550423232340401691826337908365802175257662700267836367555537745643122567963495428399192929597616310796902466825531786022713652310421271220164512420244259290652585059196462329638270735567898129777508035300285354793971808871669418041157719482200095914345715783693339477413408401645832459934336379033746422139638396703176913714971171429171178108836328791350435304942478645247377649490456846456145396675629133414479143061170022555375542070884216883498844233192029409062739848252498190104686945584460202921732667363991592187789791795988429578935126857653037685266715544961127625660169385247832950776146675872136017072234049913976302136265634316606784541041891702253945999903020305304022298334602236920053692633791152313670973052312150663785346590870383610661957072491978423024588033122937767758716886205740180744580852510911286973557754922107272228615988530296108994296971732441016219810858555524395729558439574334153062213599164778927739413785718812734283646763439914907680039669254131200812083911773039315096176298253767561168432534913473641769706697906966002901737295453059107021769473373920647448537895117241227717447188313706166860852405456383798440530166065915164335490479026621983183817225302652239910491637138462357419788206922476802821031082526546740473164288056632144974907147648483571078277613849587669463935155932480517360504952699065824478120662357316469367704076194429888820913798916612818109009424071665686149447420062613345645676902065188022446216049264115875848392093336619340196230615690157726393277008550745490587200994305975837905712873931859593299607662965104747675085146092708273978957310833863420613865398545269884115814076295436086192032992051602341815819901557855235739495538547954296011368348705163003854078987674735108863002548426369823906773503490256490430765919420859877625916064315447973500719790485124637758214678532334130757301647321602611061147065526970085780348534392253213184363335684309210418814592540997501569935079014773040839464391571902536848510141061957600264269495532804863194268037286385128601440326733442324781530678326956775054803236438455961540603275849175976380638771532056422549035760207590899191822661555541021939751273622252329847311815680766962405424993650891211790570924101123544645335931416068843435029455254226565399289173838027683427819511424386580421812627757516064396249544162349738899979349149382555095375729490096635168462355025838250131145306053818190776246937661864256289587348773181542374428344311519575145155892376912479625894872895986319846853908510357904779165473832614464666734317206861493760061164907826144059163276572655437281965897166969140832032729413297704449672496106135272104716000164065626325642454080400426197749261135307843637022813676326794748759821090064004276372412419379901676421138610067069019001416066201453130454511794227430463413504465406919332493324120433492661904424590092956467988772525499983143956437250573237511333163921644005312343323642115780419272037877798748781137527691696422572528002220530268289133132701447012599412493125934208468861123806518630999311178014796904977289891085699140663457998489527056120111789127967038716043309298229533133326443558633156212557534994772113113611058860258526666655880626957472863755255117214128008301553640060991952051669659956533399895651020772234873644346138081683273940749802112384996094018260716440448429509961698436317637021915447320928892004141907353805432021038793349832988233428517782443871222046145138581210530166685743708034494276769578764537279767146992516389478778781673402189138745095156959042776894481502924756682141327179565837386460735502786047256828058502780603125974497496829891606334133721393788385318886822606205062736346603086181434420645492256569537799858821512976989352390936145994745121613424192032432112950453821122572443415672770548047361425385093454249646394863234059364573863496657080277934967481214178541550730914468606785230803513645400947410146344977079563122389894713377806151307117272137575922745849064965005352399999323970448903794825377507303213648906030371924318448404440600625429727305963130596452294770669175023376369927886150047030653847403483415813328601374264428012968146030416095288595763594362520394309480106111760502589029203272041772614482794622496572582873791081807192592982597993233847716130300289469304860338106580986643914244186916078063412990584001117686358086236031896609482034624092200401562625431912885778756863098122922952394535344814085411833246116022458946589509346663670555209245828164225241712535999203963411248082152170389956179943649272946314513581994066479580999625935236901654745212669197270044770897454918358898841691828974072518742613288159186758548297076480968628877663211191184444473998450624685540338375082893096954028507076255372912549539789108634553782861659403236312927154628594140274197804989624735069405201605297077023216727058413862117661336193973659447034052364424918063883711163750994397136616085892392989434643862310670905000317983335790170348456540395205688932015362881913085015004946155902126327369987039903242707516507736424125487448402199017024608228670662591898124974023184542596386120060567911035609749498583399057672155310212288300817971408856594593191646154689043905977374386164827950027694156923127484519065019279184277050537960365194042436059710319633128001543061774023588456264531121369293193504546638693666700305283908984062919145598345209185179007565432566693018376680435714323381219785358300001341097532815583409123926004874221481580472797289701184071664079149975960022488310382318510108435107758474754729446774273136625615958761540596759124170226589033523448576810409961709049118486189752672054705159406619850031722894333036451407705228897626619538281890807532127407347590558545074066680162743491809552069350059090059170675003533584644273605139975973847422600591242999548223093513677025264350092163972452921551171743519957380021096869578081764929738867101051046457889659105428016151658110802499244496034984143996295149923561560751656027300849615730117349145637052712956280091722038137155893026153294895603836816823154408192958655666239887547147536417892228351261439475946012711536834725838377892535209020366547365745773151068955115797636785284288078880195917430855490065727617020574282360234376072506638431616247985736194201481945363607338801800108410425510135979363895701687571312755031931873212640602287831060813402715199863834234478612291570334270007174739329819126948942697246916722764729238268619130948725306652880893432845560702550386180338736935653606005622689597430152500994566809479260365969806903597722462973367057342727535987548121642160225784058721263316619517432667217911153419034134310235599492325560191463315028997167999684707834557531961820233595431013516105843030550870154412994623705387042566760907383457232204568132418593390289650953134510557797099597714107273194487668649776022098355558558474187605807290820964244981612114627119101486740536110720820167332287644478148274007642536643658153717417363332133786961157910097670301054976413219634962892214817440471144691397491674394577158435788186600774150530801590737478279011565137957120903972759893595109043054393315254063131654046830522505948489613672116232935314258037042763129983927842241660844046181657381345847171672937926965275710679170850850103479018876647844517681083773943778304620307450501851222578135454932901215299250645878534325267331774720864561569676042886745264885987572051590402045727831638339239405698988664854118188842307495811661176775350784652540365949860200466709023007214339396569495284986515228810988768122423111193374457545931130689814242866861946012994990217849863306016193844253642869161762408701462472459699065113773632501824620618561980901268072737719873917460191677541338526614404797045212245478207432356298552209946012573486297059096648867420702997566129805635180579901053028237433319151610302037191094690712969294372487111231130240546431986087319442366058119859943999731153421894150066521088278757661791430382884770756973269982741689073183750580210796240476321511447281232364289199074030937760094375631531998413362003756069483322210805466893717356667310207728028173117020394082675771613604591883393723341121381320441921260140297302197716900086506786061612171732026512483881598911261569228158861657618134843150391327753065436398833246211088008346651681632550682463873120960133426264313359161959772409478171189534126771051140800786212957091540764744276542714187240883628182791680143963157618539964422640715396563980020002101102833594053850510905877300466895357167305120119697765636617670265870915981489875794790274125302439673304657972984198458785088158356739428702867146588154176424755125136409455640399524372359215732342312239075465313365974100247465459701761146553594632767277743111989083153430424727317078589569664681446825082164408135681366344671510471428713792274080889585049760926675284150938847220241482455756893443755150040656865093296452832266206276252319870784015770521950816469416337499651056505543795370215063729250902827107770757565396073571494504796176704857846849865317585337213258321046465680013177529860274765980067458867475540301503164769658800123431146340771769074525698709845387280265468998960333114748971711070565391685034568094362116755809067345232828223706930362213465215961782769806632631204541614524962607442407481387500585750844977954511841842881480382769339282219996832161981164953276667952207297435748825342779920682185503484009685918612329450524419858829582392931505252010865214781388611965724483970294932702442714586180777457602957371792066455968039214624674276374590396417742500751003267040849465368053335314692953975818952756124445452389521776686489828659869270594736586727121081096841549363750288530538275991033449945582995840014474053920755936069146605947991627491067613863747611190330702610098663083581493704073999069581900238691668116800059657293518129223825977372118086214989953774657451092188902565925948935224968746729238919662985962347292788774841706418898950320361548563551815330991434513909407891028767578600267562327905882235827618302071709174428750239773879112615949155636599762570245040702087052045822989292430644152862539031851385242354831698584658728647939132478388664049128790269915086891631260808084477241530537883716992805406495971661372642705863121567696828627687891927598747698117597107125823300981791072529117566731458436458070126384776334065202272932774753587721554649570218653591795929246274062951349655147922955808348439448562965984536792122890618393668993235864430811316490857469265186306894278587482249171490203006888990155408311943519667008011763431441194838562642627194598239743834623308197612220542540142057187076032377397680372862417483657541944019092761146462849920946569769639891252072440208741072747949848717873847472056120365773482964899166100651140053107221949955802011728135367802645739776808077586268992345118030400406046908014981987949178369987200168322355341277588873383040423392442700275391543641765976021620560418968116982363199076430669122727472858864442810026765642329252533315080801471897506452822962537944244691655443307537357987685999039031078126163901376672911892502186890185639638527899323734425234890999232591243093985822833300705039851776233137425201117355326834553652441960124985497634702917744861976662516837132984308631647139430597885232743224551340709289610885399057602778886412814071492544192462426647477562770742274265957007743869437557115418308903917163875051250140168666255820412756706106696585277977434814503262628904117046744511311301579833608060736253612658597035105535954716739978681952875087209605242349702881321103849271421452949658975082847233697698162125626528874909333653469794671605869340756975257089285448123968625460430142873727901315553003242116071734838509447845818714521710365918297877537112254965943950805005259897218881056121093782057194070077799540437231793934637653070864666768492122338193901286901027164821352991841182301557711186491689285329367563492666224676964352201638944642113329683860493926358260887662169405144288822430213060509723305177041694257019836163269303997800339753833596242440298865181989982804906848431860462012182608031299187346638928885098966155751906639391227897898416063302421511503726932177023901129691830548604465782635761851843323866449340064935401587126880555705698755186844309289506730932013548102106779662255931015706368044130590790851806904613533208026063640808796153825723735702101029639085076270176344936861391953815590909440472044595506382512013131981572699090780377096463856685508054581001591036987877393564197113472068451858631635550154002633743426288605256976528385100436851605279240302855200677015933753206981314332077878335134684745705194890839706815570160972274761125678905815345235605001072584655901510866944711557914343575979674485972985927484376950109541669915091990716804615380918082271744625732207984965929702318847590889797690782520007851294056945477136994245704372301144174076669089983068365291579520755834581591561396604627555301591201602355859768097628645010878322936129682618310935353770126176629529467288780484476587498931835310475643740258123760409684235887479254754579208903713857997441968931973343839252454038787165116702393972462934204945255289156661861208686054221415731135220833258482371286606103197873216345789359011725478247444086718346096203638263315757729840687676709494202323134781459834659106003542295833020935211272029140205930834893070319398368209744669899282661185207336214983449052404513884080702444199681905996762240756040937334749756009140243551830812117019229416669389897908485458103655227419542074519113518191076325785150613679607921315224710685326408894556999771392052724040156882477811795414972457245203704764119283014065921946579483367125239482079986928787622582918323209974320691588159198708083607454720653491806861869767009230868933663020977916066197394127361526054935704992151969548464591151726240020777973463102982902173824578136855865643673716665981757738931220138670471409470526020968095985290831627749640002910771009672746812780740726715470360460641823288763103034648890857183558954643486637412084712242663387922272524052537764150961917934345943077519336224014224333475375288396809284009634240588848807066461090247369814363533873007039100424754239199961058304823105619119859351230794279548401900446010101385586148424898237000914801203966627843493088608269878022139672165823525164220943579227436009491247138778144054110655534556213257666299122088001606988999587692402638266377279066356416588523747408228346078336724907275095320141981197916255272628812030480272552095409389872241187281924447268357590637756512285601149850800891626620414015397162929594879136564506404604116111835638294395911730965984920432010761311771425338451466839646650369083677481295140300138481875486410884190712940224484595201974834174751138554886539337150950586801924998431156469134613203488556532120071378484758050220787105038792131710193893852916722192120374729797846590829800060411033082013726751893139145732792442188588541378504382086842667341971269637454727581886589525889301959847401226641823138851733920068789994087054401269311668861381333825801737298196321328223626886603568824818938548636124057509230957721963218296467719888640494246383351995444013179204174016489764603494382115824996741205153496187089703689172235581106420696408727783603960430091387326515538524912779714795772229113229572650897296828952491286686422603570967808800990874309237719630680012626614143742709459456857061197748539503813453440247502737196991870617513268100132546714304239732879127814778223547501379905253147520386725486072894013455453987266317655624280057788100851621699148721540683903742667721882097376586893202740086355496610089540876047383266651680089241657304558336147128755787274153011630908471859954478266770889287312274050547635599580733271540776534688341707774379359123178910467393947862935223839479490506920053138960195178712917793444207401564799016864568586576703051127951615349897201703327547986875155006314245540371122856677502893900152962125148232755018012160326757341635217006716617258588552561571723565572062543649885968240572279146068600671559899376590371129201826675669127577591369409910054756362616239333463385342144625514809357823629816280817184960071805061139747411292837587412959075369678562904513109097732082711513334120519952329111433633673361881174483955733812824952925411830874072676680308842742606113734841891826883384792698647282048142734400770711515291367714710502648036794909061165099628274215152324472355231633348409693518367469008554952028678362110091212950051769218728157352041282044252542427395560669106371631145747700644595955762218964800388546261672129911020393559311092834979495971619607989783091284674752432711998999352665680555056921199950249908231480960643154305906712853377202917182947941765784256674830014380533376335156993605110401143174518671727584700679250640987863983410111844202658623962691638879270118297672021867180586978659443774465134858746948485836708426928977043289478922706561954181043056772643403452018502200167958303236297799826998518742982452715598013070398035204700955709265854108091192180089200023188161601072600119565426125211255224900954620114937594953556491931500600488940473988187335684627946414781602977697257653583421211754229632282442703496573159798925314055955521813734771378863996556121947053700359042476270849643671003557863983013537420973079236316205585349036173381152435030381154780566200067104868945729794191139070493903556179580841194261913990963519747360597214633541660996281837232521040108419931538271099449825402883571052599249096600330930335470049413885549797027233957266439086721919567827469804437570027802757870219960170176201723544281035421286184849120701625631958790932057433488653479924339040729518154925782066693220373112690782706461812964169518048408783541715470907801113222686051985632585750857966577475579017925149428280213453216784268172312444993140903295977343427478389307895084488213875964344756798003521363887266990114886257893000618746601132343636747021610010769234560423280843924915881324966278468430934648374881239408762375725929935583494704927897418262651759027325265044423775368755559953952038375999998138790214727565532502573369813259888004694605988648807853713226603946479647095081222582192190128106338076838665279016130867638350729147541903183334790113976843783147826984420366384946247321936119615148043609397784951814397845882466555312915980204531093952925892134386416500291463779518137429739732232101007435348963077352645926893193145626893468048737116023631817663612220710491092046976455093573483995560862896420832040647524358534708610504378357447640801267459190551316207000280301265921622711744599234736159606267226494627820764175478616018773430063549381028411278513340801698769862131566911779359175130733870694923963162080889793997945458477454333728754629295629682856593420795822261050389841992767020478325736637533999215171930139478298263832412957037019183392738837935414822983974919770090087384207988697652088883554985323998428770432283141289076330632728599496131996136497222407047494490681125844942052223974665365332937391328915189766241101049662859009418696309444806121861997740573394621450487406414608156520741523250732863988893689067089514282755264534378230923312975832291562449936429170266916848944736054209984046388809009485905222534003398478924207071948644762398260135850453158112493011949440914877556411497524868493922466578637528968893218787211098702781827044278016861090648812565088223032140764392715487950923370565636052556390978541758925376174818858926507209678728775545805092708166541059232878257097895360405070992260101044621741801343795126436636417914981818522217258928707024127673639027544320420667386272233794434814936240232539715124462725815172991402136460483667887952668863700815547930247490902736864126583367616005304630898273112835988035954765657445110345597645366000017333716685364348767158867065760248973451811064653069532187251462709554922480798977669165715300664571278305006213783329828889617922735728212248355512885354601494517407252591023392627475638751950443481830477570348126997106791118545886061517679834741324677223787982858002195633081166070977759958269994125054109701874651131213175175831816603377474949362785282646423776810109805398606975830961928436318374242162884361974122148204111685121244582703518957290695807003706928736712913870660480400417234623327491447034889953346269634810706910524935856799824368102999659230070127876139690606874158588864655031011883684246205221900914602944563926631186083680417824827806465551064648670396339513961538944936262965244545186177443465803180605480051383182408481441126727300500881699512063812855274441349887361412428839926457401341581377771976041705797659085102567291205287697568804884902216089753971360694498744824553700444324850202297114196559725560380958134461195554622389314301015945285511203461040484582109222243123520949279171084483905079894200964400661109953921919150076500719165926994399969474231694764565340008212262689532067221766052565912751257203568512724547193201774150459138972111041221705434235410180617512173891269004021239468642566750836702375403813005336085017678673746226856311307262606709605395128965105724454755845671966585899480097369601232941227601559583238190184018959154825042780801666353620661321584453863585596763564013452635275257322012645134333669710536912635227429505490158729084057504710344810061703513484127965406386259392191318392277137565463556802354273599408860485316473161513284840948195178805131435131472605929439119410911899459349748770294696271430995419256779769568678495935386998615013858830853223004168376430361689207261580750726014443248583913694726207663205655647149063461544049183201288338782177448449386649729609533326767497374523212927086524261442272421176272405483172632383734079079819689250664347255030952712605146282617952717299076103715077137730919386592083093867783469206669406216727050586423210472251900024043561092158206847084952640467070954039297997451629212097161148371168205015008574309459479448638731784965129564865290706846750086424234355835998682495972172923626605506494385539736330396490899183053325015676866997647568101350809330681920850882810754602875314337231925209540818086902005811728788379601819050187035658884298861343288005687905146801530167689324045611803182725152272281357265425076314145093391366373249304683795777040079721041631574035179690385087495796789928399121300106568188818895248877489298542267830631575266816181085000103368744486656456241447452374329125215466999293417264532700072666855088108148116161267843620343201224339975292982097122451623302601772315100137930841880007157023784016237271212542022129683363740784042203598807843694958942899957301136645188535107984287150394478283430539845355389715480201738647750149954836729615055189317068159459709831137930234587248938728660048697306146011421576663401174406367081136306221568819616536846686431639052857444841613812551923246661012649115578283844808360408266046000032451331262255937377382235045854784420624759405438128084696533265472057658332437974023768940430023884951800026140776928616043024074908809836701050134917550454545357187443185077146073260067824151032930315440141783465384242928310723362511737909552497105730819253893575441504575852492316292007096574175176025830487046841730808029958926851902065196450179218153982321885181189681597877837697857829052121431199275146360928477003066701118883503813639868330676676791483933774142466184263148003752226926256450091481068155037239127209586941283581447939573627641060912055045272188744865286415625652555570573298844258372484367841874161553156841916788366548233633798194499205393666629948827399054105859531497833775339182965243634012620787592024067750005830894093678443363963983063353147017785836597574539179540038967639267925424588188071821622150069439857055088979986296041199924525423780934764291310183781648981045728253733653834182457936688625528478905872729820178882272870826071940470535741260304787612187397038284995450201357293911057980732636381559303758635904468044853720474922756093832479737015360593747706900009488992454096870371028275103552762943173891715744380839083234284677365967757282140911875507121867840256682736229838668095682102608700688429036257334494303902043118739070036571441067632116408203966520907957318238542204314749727525776203628389472183675244284975463380316561154093567464132242700597062893339876936954430036244635252000573266647419357387091600636370926791403276294635842987549259877672476287168522239722797094433478353386256270019213427406068015654108694924525606598158401295338893987124563265736016396721843892837141949353614485750144198947593637994936961966795155327225077695680656902998988564043555882273027403561539591833771591078520492757879610594836978299798318481180791399007855374377244828544817618846096659063975888651000922148280264156973689389658178322760337871030908127262848443071531364849207148521175055647017461339701833519880998799204218478330301615361887772413279923707498774269911964471980625256239186878552302222705402956445052216563593707512586431519142794311312946096359515596465477324452425383891714647523726452698090372261568785063041139272693287550626692759070854513178768009207784229121889148877664068087548839678261914781509844691738534677815419612062191929617944508638167233758956287639858398329932258136386401202841034381496495463624410291279222146807965086892486950524660982314293990321304614968725896027803637333303033316251301801466693010911696497796265861472739512731619753835157884131718071243960044515800271350980156646423752294985059082190680020887525879326561355621759198605440883049828370879586917283493217998515516830024370898426904468085865601555280625425567091919633043083838750328889823397132280298816405400644694622541470609369089714592238269647075963581038123539540577195095259357797201120328288612905461095062101997477418204732604630048942140464665478779886168062136828732214161015140914365609081253879224200908620535528113759778967741734852725746161014053661514116252747770601593192866019226575831113637277491361458979059357803677431948259863370180932617994452260443822916332078471801811582199845306306193328822745315086215961606385508904489648396293046672194865650792918787991993635363329586414032684055045348978922759493258681259573435939344834021651144292195721093506484410622348294247611362240554358089254931372822567270241474350794099019597577415929974137984398191010747291187977407862847468937823332369174207052074917917617103373107277341702741944605092497730670539363481924072654939226390542568818376610993786679783373928770176539310546293754056250881261732349076517692040327809700989616535960088201420409316135716335493492940693178635534634577510998564653395249308306031935985061663883349476896048939105231447393862378948200535076608566862266091458049623766417144940184949810214320013012382242006692265832692273405246367802973185733921402752482577343675027642337611228121061814604028612847652107409972980927355481084664440592170246126048915407153962990007271445804415802311410504157701166012297344589284153550964678496069765903677514874818520776343878684486578478962122121254567459435367061473568316159386045327469948923655816560635655464218816517889987266689264129572629302705845568787874402534279979223510289078253451034439487441230914832703790867052519213669785067163575710444895465725910996626031216019254126994120381781759058581903257444875843722060679545338454820175756626150797242620389867573020705744428756487797615385481011548572308913250596695764397690759580509668900608789448143806450487682110239175477365741429613378815881400298637688191485965035786283930679166601192650476803242629329741054676480297255526632364983607174229334813081444624347969304186280902159242100118995541198613351342521768246816408439879074455020160285159021876971691908722751065230766726060287912418105008149414242872944453622118999216016852116100130596115273183718081036579469299267470695901081067514906432557145274228077821249130932185749711374297432299844041408943840651920485249872375015382190665956364272804694631584497869616118886090947993148127475058854924602385359624660932275648704281697127427086082446536388781674752270210888457529350430889546875281935271520257694495652347603968644711021649707786951395712684312260491864588573091720902139166818199954202342109788238061384208837484075685954301942610631274133166520570182803372438014398317947549473221549299940200373593207180654388046529755997419721828725320601991669545705298664514030867616082610388291396132829371500396610032126081022164387752744887780796611176230624205043268842426404587241982279869525040329481565326178568540823872135520804104277277661352533676721471872994174097912732117234067679989706256852206819030064638749802945392971582913821197410354754370457133763136212314267097439499331631060939770160484957613077611770547993396073185097973637497394407730790511925521298381034452278438791730441461282915626108212856082242405899956002827404572108629996106936400668475443027626090081741099621693969082852200505355592548594052190943307221892716369896590090084475870470168625460260709093372520249984796879009508828033968159982486147846285510072692835320384405570787092827669631045368057842717059334122099266663091581742940388109745649374654371565906847275871181368946990985424623291388503082975542853231862806658210024013757533609431553354270644066450116069892043509124227930176214374980836242271719779739847520929155416610145818214097758840044514679647069744081296348449555417997170312571678505015042453767715591098241181269685482872627212021641022074658088208394201296492552453539707395793780155266551443596988776599093654497082819580374681232555479981071168197174981987879832296538293739289484460679344768815544184793912218634757287191842869409413878345989470141909876427589640363438013185877285309919053547011234517161052902163726195955933707976286471400381623750019074835295075494181385324082562946469870081503635350439857389236762659072092355480396300615387297327931341849614558991994854954085372942040949215988512266178999329308778151171810151210817187036557683942358772114998067690563492959734954604890132065761551677794512676455559708572430638797366923794592591411054055224606409307074725321331226381898347845002351466949828013189048662973502765844626683174214387563623424537958983567869960183597758525084446779954224089609553484337841968471781717655846545906221640949759431002505697543843605512144348146323408450199971812547216610101671959758275883163119114148516617555489976962326285248156747916248940621528658839248261384280036270151166020651478521547529555760488817354671838458498011198169370515697086838220153967954208338047818126389988391723011746193939957791645963985690157815744761867999568998922720322973604145551635165393137875381871551517734304024794871401308058995490749305375910975743621387723963008802965614314669890117330698674431707036945813987583062877285937946351820051529691159143459308554981697953156537728610760263410803780876999656346998930272038951245996516855426209497593628947542033503129171704096734017216780999068643911257324899580908361779037308022307536597350776834586930168941955561463485269980213640850159869407268485632211684620858296253786653631414709218293398285226876333256142086999487681225344024432245935296332107886248108718120316554988913000087934029947170937715838755953542644707756735911522942372558749215193588605987677457675531122465936317940628129649007253742317825564773481671414909046712090058968707052691926555481160903876889254703965850319660765269458735524896474973620384191878450417500397389352564619156230926106351353856088853321219196949507631849612511394129593856536975927892382127557179642914633490369004522403927939572905942887040877398546322535773863938708309366031095469144595557195692086266377310376044706259894640704711873279231979360477396600059353985484616366125527135011307060172884781521462306645393928155173141027962465548921401785089920269589432362671099928442862498244850250470326765184404384191490705552828154759010904848782777501311343507271996535123460338523928890789410412942092613650502538523268700658183271902832307697436929388466841417379596898391812778283204541640895936506062563223931158103246379386024273889157632056500661263141547333286475833779816497139635172534656070707972701425367585774738696477484963840261635165561103627422958628594225299421557689077471003693630188625007754763802409727987109323665693534634934609684700743220201607349636712062927281352316648637324860745945160465809811924738834232090649390325405556595706355592815678219419757549806115239971353785460810458178181382501575142718880369312823966609010763937269470496290736559687392014855963665688286585963731315361058284049635013389349527021449923656744657684200530616760438941665483342133579421988273155456455806121024535712363502596324411409463224233290058171859172497164553952570529593423326159203812437523407430818684773901372169582683099679942159279043718837145084073043478736401326962519624674106493585622039261760212535519211100034421178663073780763528074770798752223388162867105590845943171748905856081455072733532317653147275217611134284279390151793463850231583465372241445298190068729592595126352473804617675386305732025958323527319667595290186615054610124640537058398974142400427475673938565393631691725906635602972623484355975447170569945996464074351885816830334239753300080334604850181159426905540787083489020812086791660623748730959161893758957531648579108485441613044174456728578626103712361143315740173382537496767117511229753523564896015014110910258321688402538551878125666148771384903087334158158442778972445802267082978390221836000871287795273741655830899263404501349973114513406382504318207998087707719426004727107791023640158501396282793313420814124074984987905403583889236951927010099881693990168329482981497472167323950273636265846829918114660051713678023269276245735605983118748268718124744871087595624901962026392811227747751835407630354487092801143590777776323894757526604829266220771408653568076288742149368861611678837402728614601724600883735980567416439438758370132987340766454102859017733293817454782394552099046502447180001390381398348505572013366931740632703856375574179921908932949564918465968754768138976715927573720866036630118727643615211469771902260795334396938805036538297030331737746392822802584198499859320043721422318026239976525602070676231578698977292186479465462251548218528523000221838951651214879796631920403120899037943114955275078803346163850256816345083766047914527229749227037671459152636092612307894738587746458787246947185301995756492719281926277639090309468049842854283588149351460121831388882585787941797253535484999781411465986695478856191907072841710766261050479547031766626817518610912371125804525447402621992334834499409580846855154983777520523972326402367895837931891651230322390483006869595268443779047384878882063855709325799307095787049692442462512869830319791169335807969681006945876121075753136320053203999399406231676259891225863313670990694982213316484123470277328223336035125473443725030834232732624093253919995424950561357538441773123643741937331789167897499145939032439724273648249304405615544490922067511308225974801812882818122214102398985876672427930229130715089959460165021785698624973383989040095627951755393476508268795074193985770350216754192692725835533180079725536093562583526647379175981284070388964012285200793749973846543055302598666674392312922076073850798400078258395028083582388694525117243778490746982320373135821584894312277353063787131366419823071198867929308178426177057502842151296076659696261006338191867593871552584720555760018722757848524780503442961034789245777134649961529422338372630432596309388559709421522228933564413868935385256508686511990296556905749446088743474997801500594835651475207850782681904050301715286709167260814584235264886277217137096461720354625459588867559634822550258990258606652057361172675947985510206606947058225870792684421363604453558204285561284507913039952393439141045032828867981182390144021981061694280658910355175682469660211263282453307094573133905959297279210983243135380526419455365839097878458130496842707986290380259887897071833652855583781160249260378038849392273853692002037955017922265886655760282319085735797516758489053975509407486633951175622545862106235705347898655101805841904597004295038903782985943614876524974986739256117284017503871367152860776079099024559437328335210865559771760804849766821989934767611665795448336078492939282421837135503390884775819290233557617205487746425641655449779496091626325345531689324861275728962922625069566282823993466211608990039715669635135244340486983656347439883431845704542618992536714319201946270437939048906222863290311989165689819668652564995198610500788050970756685428166526236019429198524625844375405020371516067759183947877102318372324477316050485711796132011859149490950032326384108847254635301676377413913872483658251315653396870758733531616544986485286362998467925352208485586484913661714094117260609808404805144037793079657952004745444398724073656291821454907282039904442823792985816455412423710940555731258350749866861674898906585963852859138282986495076062178842062904329290066094083438341353999898106591658777994587134936387162915817103636544065054592680757635089761058665357107334836186133170621897540123452158644843015870920400738809913964054617642188138745165371839239210421152759535273166725835462552779666852988399417569812893139192212126289610000573359192348762862642504165748196530557413775703755104785000980114314391019264417664518212449510444968835972167308281046256873171182060434288928486043995036659499470765996594620469248290480523104915942524468679762284651083983509390206105869740985905854415742416204203315300871836468920529415886673793358989158516825719821391139085028005475799616499871747644496065069827517923640316417511265294846104156570240920792925733560023752759044858662339835490496185956889585173991269400422156294418896508809831282792619190906404687355502774508226464113350287966281425724204961489585387090292599087990505166551425477410985609215881904309133611830455787134343792322263616112799220972326238582434422583969443302745048286885635980953670414923182551932794559644044772444741288100246078515515642742855226417092067029813533504304657802756254474826201970527966531482366217211508010971161981897866903818052193829472320686092872680902430801463035946208556977097172526563390516008132639228230095700093755137056422167917742111080323859471587936748759027678189971448185478152755133639748080288516630206848031429344239412095482807569652179582097241359520098084604411600209282097092419897484601019845471030077982766785038502945531323035802096013707481395929316811345443386110627717534650114123822448558212774046551408721211801568022574453575197854073538492098724508725693730041821745687566152927122732488204516410191201355175357161917968398199468972408829768779668323649043896132082241934303841581739916931925220404437730724285104659638682958818962464728465634587938859539413942757355201031903772180193790733382093244323778331726211471807023139480774418944701969081550779256556383700201500763850698444373817616656965240866415248872864961212161837195587333989244528669924915503577968369179539333585222981733352194314381346891325255290060752300635946135763692355880969835217120255000978442846153618355627369965663549646146662213979382895885841546461940199463600543681551841729502235479188515630993982727592604257744619555881771343952653937702819944192447390241636201615620294215794480447630134661209661477525301415904534496673347775984518192276488271581293413285955124673293794135492223926507141562175853012838549474434265424009965886655881606493383861703585074979785582163375773621895534178940917322658845301696398780436759008043111192930589693769924031609992118445673583067610076311243802596400300027686369581262284089204763881590715799539968355208416504372525420775622920699534957387180626539217137841506605442972529792578615139399224363585669578207379558697307386631969142092713402198007167823941978915882085773935191646520201928935469528328785419979559207394565666615758615630696983535283746020546112478178730349960807450894292895966826713875573157682039734517647400449778877861610750995693858783843519092290209004005092505068042912829861492067173717209776623210353016635460243149129513304216530357342187807521084442993850305881461749114113979801127459399434045755653447526991773826241318064784419394193684912742916447641470071727445857018455736574051039978024933374151355966983165030365789629179948451896027275001422200852343037798733963220064232829355537883984777052173974108548621577883948861633732932821191920350039024872705694683956312881950498224694814961927885723085427970149337056214811584909501383717290740555291731006227350429538127653360131791833638251436992242479567516742079170346409391467455393948504070918492717074616386228088566279617626465947224336277468263224029351163446185960763126979133973450891977354598909809580234985171953620093843223920612143872936633410933669675214217992101168504185659962490633030893582431144620699358185714272366552098282582030510138578425305750805799258086067225154138132322718157019252519470778775758250916961766028657757721323150154615648521955603875124078879815077388691980369719138888096035406561751376848572971659307920686900723417189960886137058380105924970383862684816490825606847598252428929181889840402963088686739165621845631268399000819724867145340732995760319901630420043093976049400022792151516333839301203286853789684272216786182332950246660610765203837709937244803288438211153560756477464943935881509834079299412455785419466555268518267253990221600797607300808347638686798709297282645566800909051657666625997986669580794147863239946105795578735380329205817640414329222270834220934497109230891715929683503597705534904428323935200099946506652801077077020098333901482818156948406845975853735635324796166564088424572871052889713221505695770481816090891356093817531780285452659866862700485012195277039110412580427839506693373910142860376991962929675856755898328762096948799227045274545659128072825206335128542514523387671654036124405685799965238027076180903296291311045324084742197725221737826228807531757297917388968934089764213673901540914045553643761452262121393387314685303925348732436123726263420634941233425662725458393673612223641530553577032855797249640704397715960492665699802419417234351446037736603940226433828553016139943285305269410375884072836571688742018668594547306983054879107869160527068143753001412458521924719283376603091516512212428991312285239152162190836879617076147445004666357377894250717113122123338510627808898938420489324409734540773506706650103656150761575272485087513787774175453085157643552512838635082641592516014518339712076456982683251160255803772064083076744531507962196642127663646575427135026778275158506113485095614504307325815220755358390197797414950616883679349530450095519015388860105413186526250414621701041198091229530430075247146459308577001638338446301233196476954916169463035918220995716825748163539669070807608013994165401676929801084419925014754163036209009458072162055004457071418640155379753792925995853710333794603950718623494217919830205443955777101647070604465902018241054233144861130848953975752075079175884664873942326907699323133341914848445440742002944209390315248322988882063895992274057862608775494484118849940712603976312372262718457088661436824302603293552185475689657265246032049037189398397328565853628144663491253835331299712703544651438025179190050065455455515607230158740321220850470534511268763180827667079925802152226008255394706116366201024652385264509724534205962058808222338969541903276685741592999703117417255421691091400313006737024666399835182079120290355340737229048051923436667985073592477781845157194551872029057944233407529710742009470672633580870582990422818082604165796186758280570830575846680123449669398078094932599323958635429509799846961538761904884618728781635687066149328945787676775858412355048434803719212913068797060104966717207639653403788004850645549892390424679312875738603346534071242884885231913472504580696142646659120931378590499775774351860482515701086882267303435171999745216598164703812929298988146671597511404498215396808293538381116725547034924300862589213077761331642432155116475416888545739792979005226529782492206209794810488858379268720471487278721678606962275599598844363572912467738825786115678376670298994932529528377644804663677616417651863397844099579521561887063574397851853639902890507918437080903921448932878723284300859633996825897562818371355266393682366560044700306033609101338410820569528111345002710185284568647843565824689410807815277411511007434478181746025587672874964485743425096807977846351985987763709634982497943389739050044526547974657921728983397828358596988278519439119411620879055541008384186908310474201923556417988915006771008977132647401422721498088888564288812093131710943168683276913862473261487202747326219480584076970980159692862984943008749402909199830264012689379354234183946727460777456370861184124362958395259252894567827293322877514535951050824151645371095349935880942746856719617997993284689125896428239573551062080310203563016028783933247300628283330981259132767050470217730872595494834610321535125673787284539961940494429174002262239084677035934840163985932817203488048447234965919064449262549907207280640859368853625259023669399116925394492315277966121928164082754999145657655109718885032218935959516958967862984092782607391126436308708708115245076849383623647773635900177220811360236019224038420441392784407893431224252537750854036477132418862605244778727406295112490083832094009233046063642293477535507166692399189510462915609312207315719975957773302362958632399767819614201791305920192724179677021190804347242094961999577342268236829470412288707194700622670296370760619633174381650324238407904797194500552039219750306384286014300109137536169481065278601205451559932646526769120312494180329936645811951453816355750634657284563626819436623883904748098071025401812239174197001592133396100078605969514099376924220054852540697513383646925143556998904129617544195581017706030687210852203093730917850743771048582549353997957149846351165435921368591910324651386696661639399585862736520979940738087576189742951195987515852380802224171938384885306149322904872714413681014026323518808320460239914145629873264958822595830352524403325310903369930662141802407954525097986078666039947968962975833684576767922385884218270403633606426601156512403797614288310644845524886320782188372670575748333822367677306193895186164574177425797775067568773912215565936537002786704013507286436049426607490148351570810108499503198975559772258448959781349159973394970067547966186883228767833900862194294115167424380229686578100974252445448791629202345991982400759308747534670747371577276673429963155451224395621390857479572224284849536518466963666038737013935111931508725240220728664745913208592721805755445759668227100380761892371657711194862088855035877245104640117227237372171683446066861362965997822525345138385149854301040273262764119168306878389170451686193976185909526936730754750401755959526633324307097779358421587310263326553863974257438527989988853406227233056014492314763408868922311337293936076603806144089380123297193638194844504259741936542659557320230058091581389757650184462008765676441135131932438920789782978536991356307353724775155214206804648873579666106680439936603575287685109432744553385747481840474893479653899351104845931832517441417237409082883478646761862494703677501161369610243821434173155740169530701340932463189180645809920522604033038816048314452449188202051772673444885401867739610481003931521123929647888891275757527376421626332435339951718338068324659464619641620209824253808105349139437070218535047119081903025858186515687118031293711475359397974352943082588587491911900756183314445380322894874767871674613235745307424840862835660069010748672614045931770661597104579273424004001009271130372964194471286198318079384814978383316586009565124160573679953102934978184027093247629062328332991523682564126972519231358054307605934400155237392139605013377163734173665440219400616720649753209837379942105776990447780352724499775494865211872782659050811087065398723231441301044200962562999633888953882331643618559798241952985288737942899089296213168696326289518313200750761676224221232117338326563528524370319203910355250340930010968018157315425168665224944241536805774422094171215959558754597838014505975343597002801428003499582093567192446369104092312835731357410518155995420296938323987876405830466460688321833107917690073431362668029929341644548438706559937721253993578903320433661251978335803414088414180166546620102311213955737432943190006578292259565395754141057105624396720804781962000828967050858945083978468819816996414435610469604500639111315108409005286478387141853118043279627316606147956683381077382090897402060435470210036705377666405488831680741949335095311599053786925385544042679443331394767504515240986767663006580178860429182841143603190768321481779210415633725353900747733819056918581652233741023049357631890997470613870029709990299789531427961544459851804845722481709501757638919955708171213974624716055687247210499071802854283735689025140870641030514307656398795544522008905798206545532196765806282218787910105426206387835974160161700725525706048010744251698467725487872507309428410431261821443812474336809391197101937350473571302226985097085786501526231468708943754509594188970765092368523441099515671247406467496958369516951516187139054866536329229068849035770360577978891223874524961770624740200332563911817097316033923120042787153865938634127199323881470377757309358104147358491255174196589885257115618913793158276186077679159196595477433311650530093866733625026433168366510104812889207051786095720570496102287308307361043292961408742624966144742484231372907118057472328461748997183468738692930228488088067228313607247982840104121321237602962355096263600929721316852705892891889859398375913334509116326997658779205905987577178294444481700335328927624629276850444384171176123350355860764028986635294357284508322602410655924191915023841357689097161991112349565198502650414344419247417848280808208982895921463549007582759923236596623605316417185433097095925829029096859743137020865642182986404414660164896407621407276176784602963470018654689906265212622739807503111605257593006679068564456571868470298098105786414285578870309712875356765216185653888115512748459308991661209115900124161700066663105046336702822277671890356040565579948403496334162565762210310749711970585303825695650877566212076055328981874378934611453772700206806480916221500937654995089963505590633633853851773838225671457487880984794917748960757541202360222509808634065726099515061792274200410631315747247669760956479710494601864728617386299628888419461444108446429772353812940174592706454207874874466184064925378703024031293336121888773709967066532666359453255364652039184283010426721334595515570029444290757883651061405858363418849438435967414921553002616248464673400383946261000698671845936681321990187076695147180387708588118718541500201846059062436142181102029909437112281422947635656253672024208801553581906390090290474047768784029058911400431729959133856822153386424901628359895392680157405569083639000247470538006162759104166613075006495535920841414657172178515689919686220884954541644814150659588178079315050311259540417757463685509788025833708945842070168812203103828809904969932920087416520068538809419537257236653144228624610240819688510323777971051229317889956897118804182496758686687302554419615334585865553816299888974615681942762984410325353506478907547246023406088105916284412842088903442713367980576738592919009483514136701381513762234502449943230973347730149497842728789192441730673548487620677404680023347715884730097265393222023841876695771165537930970872172589743202869705946944493663837491290318639940088640479637486614023233792452376164195917146365401976141179630723229338464615051474723065646945743923944316278030259050015239896366692032421042722134580766254294903688614647888926444744656955873807317033641472296704617185948213784169411832706967478573652494610888271079230587118205171897881966074546011562832591074266921782822217753813960613417211666479266530000801222437573109480808884791170316145651118283987145982601253946434636991397260311160068764924856131392502729809025313349989552724076097962498423836242921733688418020442857306121052563096560203731489472692591182378769964521596122401048463200080543903915056390908796022061198448114688693295397518626887324249266616818057948806872893868992445250710800314658923979340490672301038153113533983604817717126752862686824455545555617075639452325677635669044502688424900288096624612229111445685682146442897070230466393539590216454546147106985104547973420537194299111047664877055145093020407437433589492954377038690634776073182406356649832143150488797576693598605212445634449079291014989199737685398322836291522714746266010577007226651532605438172955664112329613364295998870299924326185700554567109742615663755047878539503030976321255256324449588615781494640599171658870458642456832726984467553951057371655804520989733585068052156987801635226151533188969520311397875814584822770382941707015898522903696628539248823735596195479072483928013561097491806056264619050798298340250741312124996797904408936465616105999107009286307768015248329528265810099549768553996875231149323118937710438011734648943134397189053081516177399571263300658927600153184337103277685916031517318029427973271140446648413706182150200194762192607316541060654074528877736767481571625160636779828217682917294381407925909043144416231185268862752347105109687566407770881413242947828832239427617801193123723047207416111690134655480350342877524186309731949055959193909776707661592689280305039681378975482448644151953665556937675760365257329450500680570309343382050913769159209067242308890492915733123116758330037786096045231689230610390015294476624759945569925843707131906335533636958777428665662677710984794041316541325664179993796621028250458381318512215223573275329561211268830017997864569840263326999500842550930423478885757329099188907338370121899044537822576648907663369148871723356141169358568996798683846821023242523447254112502100465752272604818271011196540684040780180603197747416551277151414355552759709864782580856415014898113751784377178514326257084637904906000123236315486675249025319443277832419043128476709069499819692988807802512098486001992612556633951324452740880113381600069435264684150896775815374521572379464393974347980565636036452710326235225782647222431882382223101006968917384369410220843475065427478396302209342085525415682956432951278485029126500139535742468389609155612175555909887164494525825054206483441434956755077590712944230724142057228637388498563332646747826942488047505101595469002880491260670334228673793146889232902236154148095595059785477077417906832541846452179442868308381571814900382697793511416168653657525921529743764729142538630165242995124162094761730089908214188456624552485024346678563653302744331463067653215099032723187040595832980206406801058481316392690738722899292996824054128703150040463636222802543074052232206567035013191549582846720955026747050671911318251467274098152586145941837931923391155428058457058744424348747724143136162675282964884779977864842461704178745141975831535160639475474286036977090871515641769655658455171596923098261148268138855856118837428808047454449873639684745991971204873732742101533759702350594935329768715140672091108581552558861096191377438230343860803166917077311570154676515761087822287549797641062073360199077146204946939043739555356907246551258799775074778454588915982504102485458738610446579946877651565835446139281732422507168448233386183377230552589335387054927979257019527639426313623666793045393094884053206334342789983904083653654601993292292679497273178646518200716737983061569445649720918380226802925205348750854243532909518265087477135535809421085203090977533304014455937227435418571078983902640544679248387530725295232902378586997354253698979530321028130345714354596059987311811496712605334569969309845956884677997806279236531735125865977502576401779725148615762618592220444848620350710254988083931212062838497649822723605108060839108861728041101005374651043269656269315450844354970413669785689764547471601898743874110695454433245636439212235685137775148581421654898493179871358068677621647123027179909407198608369018188473404648645528700142029924873998931794275593418815487824469252551715836220378616285520767779097298498348882579539896224708407081854681861084068278320524668510013914331257689070101559030374160384906779958737063884901564235187225837501699405003371829486181450552852505123058982695210416603691184716716428649789720830666789335004250944235135424332185456010668751570175943360873274997207214906367535123718457165441799466095830189857417504255537611954267171244768983119599854589511536274631866142806018296933565045247857115095623229130185096148958939619752954406563053680950988421183490395314249906162265766776953485567937541390861359084781515354739916584820380145307055448421220266890102212944679446531758796128406500545878177412448407166615390519663912313880058617920213336145592684673143196564437221473026620865312650868457759178784410839944152427218071524123300659128540678590731671896107954701987232513412437431404104566065519686645700015421812411236426697538537589877109162943291553020564541383581271246930918960828444768353596264158269613842413024521864064262850566143764192856930393447311352779488071687487842609145753251344408187729293205888508499941371368941518050447582861749427538244379756441678113521794630710766993409256112946126372985977796833145283995030561498820188534449888136947750583051507094053580010274681168449165981418845888986255239288858801359392946089345701406663340122442113358352546938549120349357643767790482320389321557186255668073938199904697240257787935935315117067162156050146933000880644725292891855221212178666641307800268905252866693286475896159969378301414473538755014576942731343369256401494194836742014663953848541764776022046952910636099956595284690475638851511422003409872097805135764791309295755969586380990051754824481389808035812691368788708424254348859584205427681168342227125769760398982786152414614463651803845538756600669657116451614366702301647078713014057854331984766957604956493598793870979930490905365952755666415108885468990955793650765730463191228089502565595994044544847888617171415759184680235699032724085755847097949686942638036251331195226947344858164246271377095706218682788625049255597671260383204382596474216197447825522805607905154703363532698558694690757785095667382933226808208397688683654295762142812642543849356119955590593860259013742352390233119360424428592786740966793973058511467769752704098367684446717286179532631822574578822506888547973397985642472391616447886140045598052050140411635008479678581141333678751892793359077073587854800997725219435061633962029713666980986331119013035207673071766146101228539115281613994332786098700490634559064701708463035983159771758989145984587317480286038305005235315371863771014519794310664107968695106619737372937715237388913553512742535624149237706073542042843275077123355427737794819611430188595638707287031024874485659510564327902939570129489575704207173059882797605480382748428244200505854958788482049294091525492272642073288925485967082708426113214886175881313826910570450603568799225854948388973019407915677987744202223556164562886996503435051655825393760207598509958889642355127241547645269370233885099992422391151542939357563441843037782731190452868865475590746410857979675604917835728467037729056123543926099151840067378764706025093547567540460847525481679455553345361295302818448483711791555569054461194125383144488584081505018682191571097080822756293957965532327323218977139759716263845881564069482031111198698062680151200462284190439406865089939175056418722081117088306580165880357701183726460681754268519434074513132188430068613214705830060493026775623004106956395057135756607431140662314460715974033161562110416464772652011042312493963709692189796225967364095091229113160582296276513091064807090447981645754452564655333225187193625928621658200242336101627288909741526469089084570197185900330779686392553000927862569793030046556359535017530546196557810956064300202851812119889703917195083902358260192918240842754989787689429487338849937269210884404637062246917691406819212026068074494199715560491445032561680301731759651250700709809128593183893469185951851883600268560379698629635742517516591397937675890945168160504925950827986861706110693542247237907635114409584416708829687151006540925871374443351376871926836256091004553430618810325259905777729204433876183100940319764818080279898184094811523655383261436291347943363989683598330210353498484152785508401445886972416110402611738683845143558381079271044879023448823796490385412749923778968552229536511495399578162126931107977820633406240453417773827952102913282426195344292801790327133467065688424369981832517897899001803553664863147833599195367831908510313585766716651241661747994764959850809409762349659920321333439678266658838174712852285261822357111556033577449298204310795589711775154150012525701413050286093299631071195918761822149944132126053778081946552666775220530932777564757278813863788431016787251926119196636096924351035421534402458865620381083723414206529962714500319549898590406942880134611754900065217882031689077675324071599980254335971604145315377931114666030662321046440805451598282826130450952393294734767920432303945835875143113545386697638500657131261064637663159839019658566293133793599192826566290177466844932248002937271173426350922692290568114950620057819089040347291985346249763132953896882850824492219153268805141134143606144544761476730198663253356273356688009258209640467918670921752057377583587918539686919165955872239154681680616244130718426263454753831170306300691563293033184512141647297674062293447082328057466093920944213312161033661170948815693419310473434563485051232169314061668511594205878987993206205770288190162609026310220743196073596740095073504411508006528378816012460136346411475752524751548804492133302445717201328791578252779362239185045547382189329506956208945905305675965849845452918482804729410126152953570504714896881031445744061071246234924832039576138573403014076392653827897722790536129472480724779113754257893212755407719731995913159725737634178791696129716039639350831255865348257291602782418955371468333372546173229211460884855404186178884067829844760497471070913348842960399071963868323360079700030047240784838244950292717087795493702716216363929549739937912629557517702405472184554956007149237591252292540477194878322557837120414835516668796000800661543957642494154333362381074880500984405729749014340412087395979286072753517373733798183564263812380702289206975204983897437271367338079306838286325090389056561209404298386714237387264990274674301973147243909724504629608240796313233536564455219453513287197480192979325720650803747388314106565007004884055272061781990729946918377287612462696722148334349623845741054151276076432907028010838095144594544412840394786774824186012882744487018048330947045385675968289331329916296219328847484151533922596370519702479761444689396492736853981787103189300578098065650099572085948798230594902506414704140854665844020908815170418193017738518657916801726776081808414400580866539676531773731914654510820291402568691488969171809175985859730750670163067027108926118504345098626353972166292512418826232826067667051407793507847640211279848988593533173972156621835348315250850066335492005804767149312191911061163485089124649590323840389870885117508498857281988744864216070956350714421392853416368629002618542165805558293984605971725111901269892288183980132268102826508089168500920129066387665252027972716027194611029964964530850306003086701303325474962816577952337377426624270199075123117369083278581708272215022338729846601813051222447060666930547299081226417788637642525005788873077514328015995765007297104226434887525260270322025880984559370042889563249917258207294944503282275566299650119845053920663345683367626880668135489185001795039097590782922460970355338036772230991139413327237897638545007649756259631553074268499823644682334447956822203928549831666160702965284159019868150130936149554053110617035023362830677274258841604963234385122473761840641095128515676678625846216258628697998986599111022678857860095721067161597569079128828590927540218475083614636710313443874469728359732964347828195340795920349448600800202924807454026957080943811498418580874903805046693848278316057377403032460180529000885702489322207003651267365066975999797001789692296904091026584118376710964916476792334464154197819693257357231160425636529265650829516263128448158799628401513800595350510845280994374136853415311798389670443722391844834797413743621401401254899438319015184751719857314868311161179586857354404815920004788611764897911862719945493402131197606542826010852095697921550681324756717960215896947830401615982332386142826059103539146187089677294988092775880272506486730975914093248452792079315250179235108974716553958838154512225805905396012892372620811178481028659251354802824492126122369108330021241827802376254747611489165706339497416534996512398993720694951818971504521156474780832309516991194959494933803709749925211896970009098436785874746842112095827021006890305553998225991569978566430051893924596091652008126439647091374936285445095179914850108131945454057805868749114184607101576573964959208827857552801150518065152916069740674188833087745789007552879619636400817721387872317396124338974957548975146736568030536536319385319849376739655137665987450484921516837196072033469593082169402349179848686997103994893470468469734851399905014600932860152557950674377050866731483765479396078484428913568390509570018890210471352807838348821717442016552781975646827124553401734949563914809673415438482296440249157946715159488722625197969524293541017444483661076798174544127751349126283837580814263822726934158716745715656673627578122008418691876583516849514314188503085127598133156228965393022417980631020017828775400539097906049903741558370413821203570276477153308406998825099621275267651097066274226434832956993006991075505006365510918394386148029107752184029483274161498965619593520504484355320049572068055160918802170785279714038747270488864600185161893782470916782793506863931631202841810962921971803301820386903782568355315544646736865753152415048826580790104143957659304959819837322319398939687798255111920537566684793064037703306282965820147105393306117507287510718289858888945025551185243118683567000052408144113592981639938989201117874190396823838660416066589174464401466738396765925619813635167902007341176777635796383901805529970046400555742366270308147480661036676747171154169869544903711937588698753052789097941671291046060545141418946125211754884749239304420841112181213340649768129456916587341921948440463757938775518041487244715091644463080578431291415706159533701341969347335873720119736281080106274285950171177264110475146898442215729516934914208470946937459085909800407274827126783910997366443580753555153447328032326344068690922257278910841060929348929368313303330823382684374526965300944769367875697215969409283069950678187870693293203704221189627782798690260063524819166498367720149847522603179716608909819320274261997698898304119099566934200643621431079245313922662703641749173497962849020588875287114853996727999605412886960598946782367627530599240546324118523913334991266668885708936669014683047664361409587930494533559762429272816510396176234957790429900789540277824927883016663392726908899877329751097205498681330201970530451404767587573862169791768478575020413103449415290871010913341598013646942332468110898654864025042598326933463355875028922722827795365872146648833887085194496938728982130303692825395251504909553691662385073988817997943757972151062850589870056737210644432392147751246928495839770969030047358964841193996322724688776150958638069427495115799813684657319641449188133127913904347649403729874705718831004821920901536836154991313425099654725391156596177352315663592675983205128497579031389061994267667390627215944532276005138154170373768376153970368925725034663343982924755482157744802818869407650303450811525901522297299463366610330271986313948754365640506806625097001100862526282524779037086938834280705032531947651014968362880804554306632774678339402838336616692110377916580640732288953665554524287193224846842831941305561550437786868426378802061688002069673303399716647746966032428475566880931449523607290815705530875336633144936215206981387537343222068181710869585736189069774293697689525601604562275241229732278325138609960483171863768021246490112741069258915396813689027484683959208205493952490597338680318107480110992123719532019599266030370106990233661192966813484817943458690505511646971437350854116004644585994196746981106569225802086450397158318029374721185969155134522028039940773942269414901939751238928240680954863178191496438859721026152345746234494596685318609018242010481526081392162567358639942265350841415643987439689668719476770253262169765651915757474219284866504277774653191081281782700362178396430910826760030306838626693839957968221893791730972442356268610916772869878154870538261826219813622743218998632454885894399324028712178374105394033673309059411522166413183774376217023060074855036318123976533600034858649940089666726386618050621330937192671810002461761430386106436424320820571548925665086028747279347230504359075355032794267345214346470368159154267506805954674666788692847048840412617053187387236035882617847963582282974184579936279176844696575934410975329825700880387849885766057593133762460667727833544067424396148704398891864699811383446842152178066977967077018049998660856927275383342780992236999109728519367768367118859664680952556267207997548904176794218750633199720296271905451061709973568274090503863476734161916788976263228689819241218452181596819257688974548293246607247130869033377360885987571461990260418760093688191123495346725955883020860248898728750351948047394195620786268502766956814243097252080949809330434254163519164965802634151544136143162989243611961852294791144341290959512024310565400896498881833061824798432784359950552187090600616448627082147955913739181771153936591778245018724602389046971450195286430668033450934781225221430882037222852649887030218768289232537013339346370284244769777576588483500009794111339300664144833302693165268319717845558791058646155094037234360052201305212981757288337509219621320095424140306701523172577611983996696730731548503192853089079211123363306416424415815101478196655241265719553675424439045891306446558585402653860262117058421259774369086811952957130273696506585252712979671969859742967961088039729214184624122726281263546746233371500919038701385129309522407055495057893308431886057475981112266491364612440119362484928343104704898390526403106446934664242199904335355101951978129854662053225665172829668480307264386464659296939880831277412938834887260410188342964260225237373193268284134947686805778238093441610209740370338797705527648880671899734569203289699177694520859129765652174561953452939240447327068369294829707493457178391896084363391101703580751348651771940322184921881269083146255098576392156695112638864968705329164564920019386924792682527158174738770395457849851006588602996903117516782650444199941480935410840821096505249251527684887070211007758849923106967635022073436998851944919650429518152968773748891151616948508343480373844672422253910010648300045459300046194770251604587185946238890174267773735402160980239833365937086872844865169413329060745199909496722064796344726416617189307513397250299301994349431260397584949553103321782510268987632067074991400042399990329625760067594281525512875743382205552896497210167569860631694138113486637838969104922025507320771146355666128466040787433396892667529838791359272571782002948959651128783746081376427387764295497957150823165971746601503789700489507571431574464489006696844362448432033060312718560236644782190501733432370929264737657026350334792296362183909995111603445933334594253332577203691606166341878450414789856234780599499698375759064637774383411449960760590108062753701960992995685975432350727733208309430777104773719668218777053706085745294066864044832223421759046328666813733379216363489440267985696788969992253417853805719463858019198029244835168080023099200825167836962893913343675418324906345823038438198670642627405637550011710867234008297854938009728418945682723415738432674051963100282899207704540272232622947737208346114330549347442443116787990508396504088204105197772510652022286391966662671274969721224365646329803772095778147889224296549062353683199833684932569617366279569274055620170496874690584828869950892253049062011313613668627898025195218384543396895464199504592647278610531486428742992054301440687418117565053441676505474697203274864126856893126501662545090564964277961112224506611639528869294172481421338713812136546779912613058723733897738693590566235996387807327032726137016435441918970150869712534338037092170631453755592063592698887340600905734141707733911738111688485401995542813435332986396014489214816414419007068278459691885419548002860811301302043389818603044122539060577019522856341796660763759124281445693391535151904612550795322260657892022094980618109087540425279954545115207677288238585586195693830018131944241984327585044232885181580407073552434719886827535213866216736662419318493183898158537542711910663834199236486025794226628101835185814710076366259606714785458580268848384999388692452919885527372356032122474183750794120909270668952816779208964372243115507748334083306248129547280479807139809961414639557422562071171636658334559097442927124556474114721725059705016660258189005155914650503899846239206480018569232677855054588213998492550958401342339629060300859103450226831128034648648772734440422253579510230066836170194928483431147576787212357910833465742965314238469630237802217184720528764660925997837191511579831688979489453271887825248201177003072822843448212320038376020592917208817588196893723257528397186703700841873653318015923270483123272347278296905166184936853021881679721697840037454617811864435590776169882946954460299890526398768916422623179019765471022685269063240232008563991881622537685225275009250282338669700630417997071541838321768269208790141814624291010416132576937061724190393011882546243647272889203364153127978310962715644556830054118012914733812608865863709299752132178844972021497740324584196682587479580448655267811320334933446671375921209065946663061413738136103568202509034602689178052018601611547563939069746093464461441674811808754311139660988889347748432340063574822997238602556295267385504566576858504108653828656395519901268723841430905606748565319027993162726593832460730993518112879318291190045984951449463503260748508405825475727654783707217900736092353873999890485098878137516666787666681465862128258782203057277592055944229068527299751703162713184512379287482592289232067587563057670650352045046080476086444713856003667451128350502397316302412122860406030923315115734987624941321556098039914425605867132648569075203213652654955988113709705144544746746550466299446088264656011447625275891867422165458371472301633428255778919761304042091147092970880111917382813753968805914320540402520958719288634540264611024170428337720703329402951313444842160256905726061680892721850038794046873281648115985871846937725312518709236540410127600131524441173344657478431086912321420451404658259898685897223392929268074902333039565935150219109348881953095903558832524423739607778032207818755122003922423901482496980304420922550756462564374413087779538478797813883145133402286319721185671911965829430102859061764375471501162712493847127904944071460332754995957637595994678476265011682019683158033379931311749332957956728895007115633415258355779288213729711873517100068936485717833054272301130813155897280863770513555150128249855105463608896401136001913683437705862041632028403814424462462083252081773179556651173471123008110225702032566326023374665407927403189714959184734379187663689909048911874835156842041498173652971842963471773440879009336201463899735298904364039856530432073901667616857290339931260645338721722112945939686197361291868887726740565210943334625789963407549172937467538219234718229099790538193682002990572544181195580733273938556932409406269226095168315212134577425432597001226953866764439812416696438105637820368821382876082116493094031328632398383344929718430785006641502630428405731508915777245569192538891832716380232867414942741005450024702482744842787963348303722524749753535956798452764938735407871646604255229626233814205781234108463819353242719079292511547778405442288549364560322935875796770419416427636253892525840945570469184664997239124450670998951827469614787838483206222464123104164099716791583164035243290242185935653062843835373579336685478528724891152109942346371937157294883391585300416157431316882591963047016649152606471551720849962680141043781679087130349733738052793515046359349089081691907919201948029426988282612487850638098240249857036496117981443048355807257689990688689956425999477896815492534902178300247862082878092191354259899549778783854229481708736105620319618160616842975488974913554841864936280082045227339504164664534718098983005519896169025690426361017244456927326122764116181817106914877006178221872557767468721351703186082195572356968410601440756121020872625923738990759319874208992676199710032143167271762190688495401148430011246642484172475204052960335840617294894947359882338155716357295592404496947585251496060059753249913775773445916562155778972780395685837296519194188146674090608284913508988953154804203636755601603836669709365630473198081587105193176663271342848394778042224700171674779594704496772276593019353615542574994686117946320070206006853794141001875636557566389555115865596011167934137189884629811207618420805032790691371171701588559950520802714716981552662260239053702474379610196854343433445029567553619773861644758241656543872360180881684048431175196940412791428640923331931840511612098737470599568439191548964344162245574343356819599471918170716838794510563401818587157887654969377533857670100961872256718713166754839354748453160014244496336614420444883281718157747529548380979630544989075582833048911680508234704279098123472761649290842002590287702785560976485901766314077917150351638093541701136009907287543479762441660067179759290003553473183175236004499337676735577753697687994188112706372441154719767252664128836945822634314290826021976231279500975853687685068506239706103815386227790858045747655310472832835207337658766221297382629832992215521842440316422549701705009771297156763594729882811177712790300100825500109505423968243755775232946017388028042314992775539691796455699826964457105016242862335991630883394672903050879992220323272498139323289511115799315611876955213070977058571126375659788736138400776693491884635676177857433880866243117686475302111307749051105665428475454895071780015216651238713445641009937102762382298110772974404977265564817662963890082745802602900857339263637210841437451059780324389456851156295041892675021695971258164705883740765625723316163517757796059814129589134571711391940040870029916809933830762232601038787558625946159076511619707995327520229317454573879575704533575577538194837236623207591930405571548262079433015604809023872106297883870776047248804641682878833986542410369932410926334858297399421273300396256681084724299564185040326647398357698229489810211578204472409282139442950004727276444470511772503688285691343292486383575659921337462363653984583166702935235839546661778426995889365204387338838512512220904032712069474279663461986790200976273625862089854676335420229344814081264215201692785269714702563872642694033220762521983708877632793717163901429193541230695323337516111255069127835668882369073914736854111038370142188921162534497534543452485898897968757348389323228163572603511915440702832717328053537398486670176300030269297616556922531631193120106186133184850020193989913599745406388065762795958601255124617324235710986870376103790183581868738286189251797819878899385001346114841518321003664455906922633699666396877953667639025201517517230209332784471817537085173983511297074602324562391911136793749314970553149303533482127494085555030418775371137201850627871390015641609423840093173816774652209189410560299014783298195333756322995221615994054592453991323771001189903259151912822449792897019011294661136299223661120875867177496797662582559075310753520939639831309765855809285158059554078650862283304362959666428839842209815778581767068981208444789137081126728849929263262273750200673914843931428053992435908917385338425025931098762699982217178086139789059162937877562706957454896477123259588946087219251119398746630861651392618149225716838892578048403944618690899872254503445910508865070617765124225138403449943223174749180277807057291989071652332989424756553168872847019525768657633534334508262834065901068919028487724363385342436863032888706956741849712141092344079101565493419081069954024619397856621984655629419292989640876659239993608236826257122867983593396022517364532163087173833457442546213259037095112817915007556710164925746922408432058545092320027891147216456220201000058542650630613795898551406710698514236353536402658572669196554726046852663308663254458343687875971976298447705113305307504961173868241411680953166416233768559726316523444705504199431302689322917560439472289670564328236538544294189995617336698832572178185435424880316513033674486999391984543835638095041947827635493620330409026016106927610480802114837356320149720084289959486266332484827129879218092515608169744946289712920374949734285631640650650746960035324788196028768294649542860986064985234134593443024061363729673894778746679539057446280611355002662918469495799632897369352121028868205274048824732653738883161264381188045307706640267628391481281075157112957594366961629826425621658452009451585213492190921036886879010477084701695894319587170421552867471409137167101435494069667444132179523680462080858191529826459717041670781679040957810788838745606716994577966013553125494575341661470308148244700465557519714222844800805686864885879241068269981740442816603235621391167652168535733153605607046098593263909605629118558960437471091813746193304266144952631724275869517891916831768628069703518251145995321570215045977237745723878099005966328437697101953334357159302031335448478531195760682475535591739762557540410780217789129794943491283731227425443643517371465626064732589480890302538515796387744971838750852085561906001151948752054613458283131643308698430209065178672741887743057932294108273522648471920425610491936750331463046628809739835852668570812918641230825238248224374313200465904093458562372233090396195509131589011059267203639153358697843092055354306242828020233417810404867770905213629774729392460618852093201659579033949468125792147080267469437050162086045010185266083906030287643493963185582187598423280425421680745479923325260671556030818821261784983823127412943230713374333424321629644342009089829175154462093075525705048002335401906161919873389096356457966447676779129454655959654939246617683226796650312662048689464644994582393626852304547341840193080903421638494060078474863517493695255679123189141877492717376198101735041777321179377567374054498126588229053095641100886222222947121063671899524180846625937009773776214455417776434177055154544381424960796303905462866788175832125663484057852130383493483280222497146384730243161164686859840154225991345471992470491587863602088112208071704388501213533016348211941439844373529509597972758288788570546063317706609729809915135025305612699624311829639193853214806332585299237685642320301660594373104941134366306755851641811380201074540443023140073123589730528946896694951992547809422578375408124157628202738536618379273925078961959867641395647691574457315040666024910600134121110820068293879754154978671264979543019380680159208493277242218006981106185583880977713251795539893278389316176066475511680230890249826200570201825284115081270306162050855761272496853462366920836311497513769730887096695056494530418529057885086700908526027789293261929972154327117857151811136097467564518137684005105768354946580962977559236487021715294980599354464189080933091735965399748489363118735151087754906668990955689874401461293370717433765165589317807975151774734608908061597260556350541537150203977386240765908077877953962127007235392631049472655343199455024681713114549131681888231534829485093149560769815330051809535390339440265196253277639678738634191632675994261630724158472819737334168345244569279492072498320011309385443704577874221558273104881797919236020312974134910794477035145258140704979020076588345373068463330344457966823092836563864698172940371897589904685606491845285761074502366533211509038333583180227607783449526365381513052444080787449538106388810139400486752659027749486361953381193597146312415229567919454259344679685476360490926741931521925166111492726009071392820169346189371947353671680436559637878004096290683071289788490731325184214444715742733347727003684018735532381950754863381517317970274566481633540198804156470117792119483608135361731745279436793319182402907211040905877689084338150276527220984300408418601148411095330675988857457734428341183724099072837435701042158012884031978940443010283124116135801433797773743042474231960781488763811568246113766542558652338682499586431895199702023477421824161355680315308476693054127929744149374526540447959043740907003138792400433948355042143058978604819971014823771365457494208746086451309756849172704875100688984388105595074219463661105171189903195926394767127530663500835294364845322466148600984834144248757114192237015441850499490243846420611731075237859576072830878023559052321430749843365501593939151864718627309844952730292313026539277711971880529931456709372731358673474432125602495734738474135158199217637951945964628758950117284429893938294962853669574426490617054093677235194360312453517465578942264650566461899292271871398649555299342021460722200068812225717519297847929000881731202729952473191742202874523308656152087668746476025432913304075680642413406417470185658389009772991150382731294046259272846528383513884606851514607735861810649087322566513922944322699760054433892289067979192011739111110876776439039320949273683756243635155940527770464300424008106722339750818004819910125624939246788923674414592016193670971561226671120948069851418575477300760629754973548326900165784541916166484338345817928722765176483075207405900996542437760727002706007598361417363762099848079906879207932157637833307776108350564902216841119304784566865830868431407285632174925288267158352169401419811723821884921264518137726983350905331205081673981084501735766134608619900090388477217554704137398584174130407643172833920316147123154672507230184318803332840612729860573722998405388602841396094666001617724187458898954607940949400132443812819003630090496347959548539602686114831708985471959166295236173820362303554597227027929637606991891543752158913716552866640778704946442501991818563633580060055045647645139088904069093538808713972401926219463390866512869276990175621139993194743290615892332862435536520767535801474548587129267099146779188348563910934411793719222102902500108864669947694684107850854104834588264883481019508048552393605151256281716335690322737278287961440301446336507502762996146365065881748596166945673475045186426452528896218721797341643658008823094230990003925180089088148049571538118780559445728681458930885815885638993084309313138435528649382044175637207367526243414447880952655165412990285576709015453855284083002643223846095947657869215526045991793235571029668628538068889489038192637630083338373833271677118519351580333275534512924471614452720352104225769952132343536495244751788549130582148646651469299840700109084425895425300259940227937345955599627025604326807496598456970869611704940368764519904910278226871427175636472497247829774482273022382758401148028215820323512308090165409640969893804356890350869728225075037898302791247299995020531310349391833222002777087719655672761686966873726424000797276298502366856717277642861197491230068072169296335755952697147811046710487756699712413312476697093277460100957558080279021164234027933402136440506054249635251392929743768535181953707012623809888611487078861348094745494504259419023538317812949628678677141879116493186006078010013028631380376913981660390079356576336005682096543456475223999152688393033815581407612492286473963188218467747952324453028533838393057081133031198175599598822204204598339287412942895356725484467471108055567691760298714187337213187965547887626797068851706150595946800139487555530247343442507457887181262371062693180625505309051193161888015829086936597294726407277455752666039320510685594414724608036918220439169184156055988705917684669502252737829093138392691652053126499111106666654397753386157798425524053715977478918946327044840322364448217651470227494278396144768164589311374431167932078191837338120493941257129601498727822504565545064295792338842319736467017148740402339224440014897893562019971948820715902916740179850114950355829246700859878391465437289674608754235887295577122200184406234295084683565075075601981098153129655997375099661114435887098195197388154897472229371791663026008657237377452105220996458612561355220979622246145981404034492159991677032903585210291579509014771951466400250456912779373524246019229205848333808082261842027319489959922522881162545681900145632281902290046158851387350077575216220365777637324881336288546016215718652621256295774627048439990112015161782361409045827982858760170250203330475180360435779631853232868881604484737576136662943191693328839668751014974138610169127354136815830902874396949227892096078418574378460504914710653806720765353998770519091474216332395742276820295097771076572097314431202394254447449224686333576435788353744174695509849262968177615691295853385682932255067917774179195067164243528571331177738062644888990477572691102597943057208469550220782363088207057333470933695170863373744333245937385222455167310985470438919220337429119640885449946307143171114676007168144846243338796804309940944386802151200548318833582878327584533404997566101122044543463442222477529472664993650508207146247766405772449331899604527760766173735313347194512315468894238868548076448973446651271375372436282516750769313544144898872412195544093416671696239643826259707703255523181137516852922977754520349296783571033946606789177137013930846778968471773203005042287571284906074901003415809598736061219972385548808122275256191905979083725001423192300957062101185769660311830950539003005702738879814519478500200955713884179677645385565349206208868255275433628604920296167908479604306655265838930170722369840117763624517217967449840509107729413772951446181234961480558506496767557079480139813730792355778990171289500807286431093659502984780827571857572571253579749788885839984478106424763606871600533403295133382836458571353328096931388398394023804456796765421219327441704781648658670701704120525667580019020773141206168426749134633360824762634452932201876171706307998957560480559108862972317689045701272887216947393064726566837160595483169300633310757739019705851578515485463134940120854518696228304886919034486852497024804266549649938260826537852950615267147286279222044134165806714312277262386361915136054631630324529189131605446126845727733073786166409805921753636732696081098909332461591656867578719912896143416130710037930491580924358137200432669624627547459390636569930941982119380930091929283727378739783775483653582947449355407552485727307465788475953681649602797354277551880187639660279845622990096443491080338848007117702099222252503701243484882175943071243070147985110927927704444092263612790168785781125461046814564823180452348295749924451508377320869776269757270201493916225503124910197450727990795364789531494631873798616941434087229804951003212427815710581308589466407531893668946879660754024651615554955508543946463270627131480018878921107310276026217228175452661817802125857577063326193019715595464389617979957361180406286666917923666703770146480488990196419224515365240868174494596326537514335211144674099732641254556251468788906716497929710454140587180910723661538272338987674145232987727489273404044111440819130201111369948409478711794142284415652838180994110967209308404948700256088696596581357268526278653310554005253667579006809674262712284955567561884689665182145376292322955023226939447297239693500313709359961786689470307547810819814755472375173749257020743774013032156029707645724483385701998738258608940476830868494356309559922620745669090543233818898841829062651292173981884863906261670527229022764255609289439591494119861006386663737458529486285954048476535849389469923581166076884354823367903502978750632260355062536404394344012898752249194491368631975870877269301899595983530444279606778814911677976176766107228619249759880753257617733012588797062625999792510870586239652935674352887180732031675038383976756339589419924964967105349248521348800136380491354707373163220274609113179944875164981558072419841111548342136053059794752122156374198005032345202435775236385689668788183333457170787653109210035842996381944257920620642631671668174128122758662123879780040654717685364228606931735406861652528207497324228961877047336989547113476807755180493740681244609056911534630466110144162695050666530967462243781785073237594623891648614003564075360135695031693895643566054488871535453606323955881614901039326837939286375787268699423182845803500874233271768668620921725960590161995339701338891186117844389250206054060548534267127258576321096142001199078953225161275139731493273801516316940655987619056745602864630689613488749083206725665368711436058829339868363786327670889553998924469508053781049530395464136750318833668295199810493366720738206866124151573881861091774780158788390423974896662575763539270095635828287247483904296709089372901411398547707750271942616513209554190545654356293504137866706599296691420559736386756322430110020822784983206483498544495340541565668762798384771251385275727778172539445213651563039679629130642323505865859634357986156811885223543605728513322556646924813806884027593496417857469992452177984924096332969139706508001952307874016588530073885407789903118093832124895772536573094605859366778023239417251488060505149454520865764967967306240123019443447325921048117185837450440976936739467128769621080131985199549959989815356059520755398955297517622401690114416336707097947856326786188624231816826822756857956388627742922016936199735192956330384132147796630452799360752925216129277662903463432503465889439187683718396900477581368785954270833349219377157356750378363647920594514337273743392711543139938665942556519199421836357950503625970616270856860955928913855891338248402683491654045065371438893136537815737075831327907520746173951512145268354253706839733205529563336084225309783883737962078935524513005068442372766981382794907453356253077288945305984360693719789627170834255334511949655190560094541853925518921011223838461162003714172421356964569217546323594574222354141280673966579902818318947856800521291925086013342462465279636270474443910858327955432211413389416273844065303216853296764644867861774240068805560054572727391767455675711524969085009675145751694994115743920924581040302635404043135291372710214465023011524843271481595433943054224750954245092796087157901942409581148489866313318374962500900792321737504682696232882214377365946553386753415221348230516761432330918310515802066397182872490653797033936015428794045810248542714917160386665470450906483229967061115013991271883958058137931775031833449182443914926531782883487305972306363424835051711540904630634121006049476775519881169868501914515421025824987425901922091068574921786058127773281676328444123077443496464660253033390640538868893090969789272098407474393256318451100667703443213460252875715281854149991608558389147740599270348534182651143122500149042029683125448314418205568619892280936203187573092720174698107843264910871900006085741434315750636280330532253811662614406299316845982392250424427978416215814565251540874048746584086928698579655566373400801549086904458622485418482615938918058882573163081121667017190018636822438744498955457204235648791188522762399796891016149807187939318741977357322015335393496531325662403285775186927701138436877540263673175731116844835162515476111843520614164244223944988767913916656586174568630696779549588467090405027256116676569848795745954008052688794545217313697311823244851363809013778169252061607043399678372378302812511050045053133426998510156464018493589557598593471446108849049374924457026906503884444044559999332459059373450656067990316389381435869358172069040089776362873338958156872811550203318066561613030678597842253576258353400888383603934279483509405287187116789132554082897406628959641415010833834745981555797090041293479534304994873981054609153067349898964829836669782441408334061018955915157056869567685192464046713994267441745663804553381163779250702958955381311107433480361728090426799592154909079849108504180545861845398471436595647699569725035715051021710530902163627254174725691396200185032333597775738282565380523252384003370926482070062248084682617576452716970870484888920603975764205630341503496486565541601852974764938091359833065416533208159875278052021277981971000403184548595607538348191536131822195295676237640998768663684050781406806870223606735592123899617215594201069411510386003556160209760379124811831028254970774669073850808992311712013033267422431103669347213345199751662267595508620704149250275660457632096636170200610857086008403696914427404530664702190316942200576159104471250883867792700927942045167041423600367495808688402349085658903999607294900072797775785323829538129147558499955748675469228100908662366285137947509173126191153236677624345774892406897914966979750814853325343288829189716121200968246641281188499494484666403020504743797963592716516994054066534100043857875152719455643759151830748924400470365806881161238318595391889722246205357407381320398068291459127790893390497806652239827165065720047962222732255746310539754949848120338700646357223181927095993769455610485944353071806128985544059349529572921629800473378611039759914667329541536045314267412449591331544145439810751508109222547967739497365008840132351459005496176750153802298673865068423153044271840549840912061547419567757901637929795200062209548862599162326993059025565382718618838532813522325700264207124854773478466605473616733863525568438069646194110525635353940821199981294963431854654150122605916424967731529343314054582553505545268768205439464487589856477612031113235745185362606437261786678338170082397677993478810535063628518345232561300891764723998291674682035037433440344882855913290943508184060969412935080052972877618217767657947187911832627185613161321050182160533559664162274148330165648166055243165607210446239311158443306746927281611177255505412282775901575395026334410527748585523836680281072706337365876447185936945968724526818357609911481400863510463105586500945501103871050355501490431055072382961234654234502507269507131248089423248497947133126017512864546412383197375826720112267259019774145289518706529119724094956590452444271835304506953421679881645253132437375667084620590368793518185128234969326325473746957611115167201910694322675320984846688631118040072509524372488577309585466318070370073972526456741263133271313717254504830738007974541143016888369038274266196260003162884265938036791906558177678761662070969902307359335334084416118705814717475960478660179713398915768871200754317680991781135018529581639795664740056501477721856174853772312875084358638850422872741380946216623089231326507224376376858700623837782496486304249920479602625607895321598800151105090373050824030251833129534287115439588397329277209871255300578331376649867075682460641888176736543232529363405009300920200785954270428742247338216421817847162996231511350856227082323193950766634089173849438602371381524407368600783955378457991159235009014874326684667748958199520503634148792542456327820564782286798687796655275621992218069165529140907431332204775493414962712673863231314635711843636496638416263100869270515017018066825963706900313893414777772294587552011281134051543398408907871299855013133312229277287402458911702507888404425398917721344663401779537021331678544396720960329600418690130471963203428135007251751415296508189021935787710902103779939540607408159740721258510688519914473271514749847268550241992639738494458911739342021568405448372241886122688827991170140483576673877888904940583599911633802801262349255974636216752307521329280100748721839282575140098159484797652756573448131044843946704760627270496129953116742376239046847158223203511391540377318082608825652586280287845896096342847949887228555862472931959429616111062264446435483428172575088375527986550403781734773863878273368808332978157435261038704369816301571694501057970686070934869012496449315720083548050246040429160472837766767946709635910982159372324991562772603949584742204484173274570925096855134003323860224705429406918883478771147873600240895194898253474574133318245301571658159813393503933260284083269091750102471724127627466202578939256756311764133159338063081022669527574112895577480013929736415846867323371194777495325484305375227158301871591866283474766298836986394343419174141770518216879426897455239814625295331750635280023217777653864372060463620980749352067236795824405058757210479586606477798461880793151276277158237802490506418888320398901509296799587756249701602497256334034900753209274575504223871758160229158842613742069754825125588898253932259363557956945585122113190132286980254521412806636694603344773523948137631940140956678084611376289527016294536893886904638828427570278468593854120883860325530507864307731615371127511861779642326618286635568807967326745869069640214589845518622164059629125858076574701880710680133578358238351157158034978567669656172655762979397362414025746773143350124725555804095291877289833223235521488990727049296030967911564041877999779380401675878847215116357334471185401889294381666459434199709031228317912122193102895453570380743738670022533517763777666252234236439392712316509563508178564913629328820152959453307945698238041501715664894307747293171058790210876708788002052239404821098636908314165316901412912709642557096625800506182988420452349206433021932417683243767193896247392533923478237925179580775011718002954594923824568494904934242760566275320136793805570054362104006521854903684121560339312701632064136805328763646655572126765345006511476510015714220837510196833899008759764090391635183261334666533864332421795540579540307021384581836144996341346533283377377843115734624461113412211644760640275574226718718720097052032795310289161265132295350422340914156248624781963299380708999793068973847621964250910104944343715244110884010250229654143219553874564215570062366135739630711728723380162761232751979284171425149949803644777433443667082730039194619722509915909083237159379028247975893855487786408428099878885539263085730501031157524591303661151153845701246907046115984143296801935383697415996503578360124022888725826852907101768315850364934983583395546614329203013166486558766319140124336995569631133187051227405781088904589697047306383260814957999990922505876070136372457038750886329880131267155642931571202788715756260016046548783493999078150690587292317916095387521151163453052058955935553960663712800009007422399301306339812958526944802813572795648407345713760613955622344584953564417107477111000089968622499666680581874893093157536415947236133811018685299075059828467780643480053284009712968388703941749196273317190770547949638488638420577402860630563709952498797990494047753200545247656337901246106287038038337834823046100767209366634937543294952817266081326538756433005753816905467347988008011923645332057395455306445462721704530348581838157628844285103988363065601611003953234594355670261883491032078775835134342131460614399014192202010612404418228600091179638956804867615568742620524234428278739002689010611954236082992532860234359244412083033103621060505102825936379004109525471703825180686949376686869844300423301102038122327197692475949899986764664576855158888089674799449612343341431180856577375815455625351873021921527391182800409163063759404432358349151331648239797254097874267021146517903303763233728372890125365199138897233601182119833174447288707588066499324153211507370535754265903760185773829853438683777997312211175508768953165134224870010035192173440489350289352555039515747584077873548130404470314570959431722733702311447900260333605529798839527022006790188026545044416918714430485325545850720124964385595474551004385886666611670519758803608742625333963773704637621152448087398310466922291812566131845065443001089014259789471015308859977509431451137219001299474423981043855579474920310417384675346420383287400145799167318271900570589630700328040094123419851937478449920156464608961405274801844259089941672699191118869174189306066848226952159744275368255075179369715403567611859570308921345939628886379101041919787790747421627867546222249011902213339303580875583171459323407266341691390356274675498753196930036631344887067098073812463706920982226213766469030040238442454833639079792677650313746236291728994364284456336714541385932813062799416550058416166739054055746147244336389605089628202423199314657690787263473873296718443469205147029887280961329235533585864333044722866632122105412496253820926786403382688732280820356269371953286668217243363933229804324550311331643758160915549399860051555206118143546630981677818368453186255717762185750217743912074443351543457408857993442506130771778456906418896298141256469388224355807965652807540661661835891210101247613932720682888753068067038023137336574758492953188409260580174666779952140785063511083634082248613395279457264891233196317152072480522119645724822831611531239686796963184032667949663379028258961461245643713257685674001799650872276760983985984923138680741031046574490835919622718457008782136303645498436155638495609654065926998465912214245525785571725691393521420779909199126884409803761492066719282575183962661446161836890046900954898868715710553158644441679566175958936337430156709987170323233717233864947706371221842461381166675986769404702484098626802132095031445457090354342967627555961036855278746878921311460705309234681458149528298158280526985910997085046947435908401823961248566368890418720933725313616952266892028473177391581207683996360216309493353884672103337678108887682486087905986612428153262955376052719740856839801811929366936868728239378880467989796709656917351952930676882502490725495758051917461454302191341312648327432786359556679785724452146125788475617740555476673941919389015125883132062265485890529122249756604487918284097344858425217380786122143085522485339948199953094187939283882363509771688593340813870320223587250938171010990128341441811064954729694718085552874124580637855960890609513156061880998231906470131874974125665801062765544770175693871889215592263629870187645097241303177916030638570027421111571833367318661534148586369137730939498846721926865831540384812429328294087222846199155513229702085303777490449104842308554324686616259382875248341756161651114984714976211438926351583333825034757999358762467162759906495427822956876482711246037472336039168660031128681220780803896166859970812489449715268942227680967585083491924870368060964828336361902065157764952436828702846910839120270519908045471149103381585101751870899036507658447514571602849757629699322067218182053755790134647683830726512477087513822543809444472132689191059965997919334186476560711620014858201909558982745707443723757620031449975774235011842848687526087554619331809399258085318947819358542185920560245300660325986660656738053687095566626086785444345498961795776256247081790407717165759100019422972928054763899635952321562567139487358593563613985800806496079841104381245683374058649727578380028835022372375078838525131207609694989569219727945664655565942688037214675884470984667945383865718009852300455257858631803017683769954458528856955756721003297870826547361763111974507136866595244355732934090996205797777406554746678606776691085354773763783525956137839708949873320035510043839814222196032800088791260065676264379956363421275118833117505775663312014925290150439791430523007375345471155029237235228621611043703428736428910958409209801687904107108636207163433881663320690527148305169307539622083010479616208683144009798143873135950152409776538329949845751437844951951307130046879188181663001073820733214964100031744167070144407674127591521848709687566643519340987393729353967933260186404530271170555054049395790909975148681645913909528696636356294292968594853768890902463560356101154661087665581280891659510564357366961587007016230829334398375625880811111950926857955072028187786721836098110120715548542343171487369834532655260159769406208645478308890433099547791086614150914905696613198762887259651007630132681374259764475320624245694713051064369083215302851029418792474489575901387577002279809786023406350125723541776510607469278095575844419631691084642504877707460655328666131057567195351532071623273778845076255842842518466939363996230526872581504381708302921714161863932905572849785628376457689222912039736528952857525339759056510779682502947078155137031583066231273469056020146855162991666790177946611209647529798195728007528762967429928552588614634889580133628333276990775111316436931000836339259348635564160226278156629067393979794970377996164488955702530379384643072345291198829276649801458846439695592767685094311508493916648816664435112524598849959290592718705688233392479907469531522756699659529188015781531408320041568885613983702746926605947129629379989293371007207675088013694940324382104630389047773909035261117418102123789579058851412312363971331442588350746132891577937786782628347926277113428452277877976114227549596016175935773954732984593587291264897208015868864001422363757514551212458138645676348614728285119029688354072607783237640185693662303222766946607751302969262258018857990591227532917817107344659084544193693191489602050862139052009350060368877758095460168768574154428724363856925147936008254601632485228760112589011140372419604254558397061682011426377216982714143677656642068591453953944806465946639020628158683841318378114105416648299819376280214978593905735679877960961355975248162472802721763849131229872664279087987219400479595476719718960994305689914224786505457942211193076628140735666360193516795366704816896476477446593462730967249960884505934125370025061606546524397698736501413936632043304634898991083103831313979569309420773627589670353505193065089678750361525466516469681169358107358827537985580453521111639103385466068675843623166931029268102450280464824730596001238144256429542654161554444926099974742082396111430365956561967694698738387542379283323147485079962082578592313758450738306649977852109912565895859057407156874891710085773566139518132212681461470165993018409427009589555472896153722950852360234768127528077911186525291571800953533294444255668414267172190795790928429917362891445750056238290232579137366428152320864894739013319102560748407269910062890749972281847586030905807399367497735852515791240254835813774718229112436557769152420499883933921452333264666332346635848454093665896267939650990384602395205080302618070333878210870489996876727660688289448986401027096178271226159267899186401399086394535446117284181580178361186213872342031348321113237486591486053714301707376693555091815043592389653500904261686247042751369950832070291405787422766529991985363242422654929583527169584184648661666701795893156876623476836555222249431591055984768264464325717483477170170219843806205056599113977752765370399172426495425347301165261600576403213603530913943480800700659000011638110379104403087486737591065182106927217925903953288145077023640849838386015297270236146124428377003698957352593773968915313056934122826587791137776769656714584010042904137524454762898240175431506692934982328740542405696453221472320549843861728701533821890001025659732916936639846532348709744193876722589784207173652557705711779739849843263115922005899695856315631800964601897586773353299524761128303186817452296071199165438039581942740274450595246317965489117783438863576585381608731813860178938709322188902884439369841091738356656805923837382667819517009257449918639402978041039119355061906243273277089693756990468741244861805672826843269463320720933000509995015532886799990189450525333179155253871374704532878019069561333632538298385921543010320520592504757863969387969158783905696600039251003040289421654111169850757157690488937909753811972793360905918981531557113622725734055740280803249864132165017014688987268700938983105419933355138059622936169338463723467156825994730328280087757730926953504588716557131223327558280946122707003579938909591869506912019779204703548118815740976135013428580216554003084635897598058185480327623367260458143978696923005384498688274332362873906903237393893511642259253540596133816923019795760273167451452088598245737739284532210962887073905166178781874394471824682913015847358823990003737706100137397706512844161139549219889514915709927018334609934263765626807506441550107870078427213558711938014933307612299593560313620188358115026803045757760214809744259736661172417023335838824896333404797239704485207461259217651569802855631334323787721672762804273872851416671866767066697134029193843678298764182786597508178411673418039392544595053409801468539083532832743364168137201868354878908255232487751645367223404746635036756157641093014515480150415684395933143757056180768176364763371219863081758543184118895454788215397449535176121616856979331019494800719579422030037377275867223050887340312580356210854705860976729335313053174462952448146980398672329132976549406988849383847940887308855049115830614902336372114848982439005276312249983241909104079089236385814783338591635437229960138745766137421288484608479891429123133555262366581623599833469051167324515677728550565574175936270564515126740397314098370816744017268183206001516423593459483053311174026707871554167521350187182862114811471088846850879296643984992454554046226252039022415658605811043055616515720741885091921550334341501915234356666561609461811811459588092400123661909770971034300551071430885617995044218931639262629906155224293514813730679687207131824814425971135548532932427717057436200793625144886501208444746504706542893097320299802176784581393467745529635599231939159366944793792129720105084374394844492281930919210753919665817358676635048301709124990292369097679356818764750268264480965929465115967597559685347920035084243596776816321825643343379966019933600234899655603649478240275059223921783590060191703296647728404829474456254146722644707127687906096951028437729920577278210065066043036164474766349392682237067006970215927047773148490426412539887293420361000608638370517141179559525434979467319712216516796051201603338605963335658573885826539504057061919204852013113571432294910431556078382742414597353353653394756652545796417229265674142011336955215148259280301433400342771072127592519662925051215027461044339947622071177585349177864655304982756734270543093179695027953298438374343318912938041306261260683257078855686653205813790159964602544822520532297212906126670523938542686272993496113123784010601426628588420349382568057520254912441856204677654683865088334705852358183556893705111791772097664528709057401691226851982212541059816930568603887474482008332240619633474604406750739031330271402524580613267744891198201969456494415458573965817316236852532023364602837441302279072334014987840738258915837574881376452581698000678922786226545054778974025665597929774007701963825102155398330913795066184399025506130743493042533925775366648199356176705563198048937418470473865185322873970014103708226199832661698150292414461067006181072975468281900107827824998192923633551057288439968268398809518331536381774682358641057624786937625304210055234773405246730640584497693926302559006263411452282000523832178073616767318977353473593227404532634122519139328603716233489222074755232514827346437783039810496856970010579468971436532053594618897829987579712887688867046080929296068041908482567735279860045904565873390625711633876937960789474827185264463285646306194910529247535998115126997396707970808346509803244175235572834882494823770880070567250322157834309199903170803104152651411573861079218963106695597309796446259128545173790395407026990568277815326692952981219324995320128665100676474392760994690158053334975999650175996029986331024585758040729020826876608653388008197101025166370867465079370370018963977932014178836507827562835111797348924774999645688770238293676986738240779903270164966222511518706488108068992404609099812327103214721913274731886718372132585985997451258506204440781777967996677520502847518335149142410324177322732253839381370735177580132252160312591791111340919051788186025407525046549862390009591996937329932851078561461434904767793313649730229028978684755272050374402783028567987071158691787864398420534887116966509286593039656269082727915989401590519098069203572982542242614263751657216922625225006264190511606902989448874575855019711538874057987983521751448351449543692487664143663719461059748434444396899056588287925002346761105317635186753866602083475472328624255039099350463415188092618075074857456325539038079747817407040390619336122745389229742655664056892984242075817092022242809120503179362418128542286573333464346497049331376440338971483874802704643033128164410734366042685040886053393720476494722238545431697879976280513467558993066742107567200121644807597567322726378617391591780869337465994695889262713700189440725053804155274529038058539154746486818693947787592180844835954710662780915143646880405368028029890885481494096322859562643416182279592333137247298971155361842347025725232932067102398466665432115839857206860608867124443163364553806780218617016247811641093848827687141854111785152369281901509945574075272324093627193592524898948042273306727141671891759539147088767783244245360475263313610505350328785282950457462792789063506615297348469582071892272189079434020919165195007909544275993831170010965097577811411500592194831949742465632963789159117140831687255605700142293868677749310898389767167291216288957444743374262243354830113634860401018259346593395161013594373696689298086326751031942543959642243921502288127839857178926040434977283037137440835604206283086685338131171805955996305892134322812497461657310782416442390589041201774940952046446905784818659111761991173490494647569791645775458704978035352983609057250317450339360621181582017600662710254277022991732484167230271529457333714975632362348296498174859111794265849286079009924339198977082130823480311169404524296825188315582083004120654777172859892308313157556733979224117416468826287303807819593047976577183007076523983905188852351629399584193024479042715120292900937304826614826252401850117175684639266532223009495668366136062558565659238464621835981257637978876876979099234260929702527739806297362020505921619263894541097103650258283331223430852082723012729243745833872405566310449633071773215960923437684580277206440080772286040111436201692900262096562754655799008501259055064724720995481336705007580643205506661724904281550746557020191578047947636016771852189857356530017899416793743953290916718552375125514124647817771732230077864736223856867287620782007718590225309448057243411187521516460613010805926203295422470519337852772105308172808104037602958325543073264187259088135828397349758227744966329776980765061771964813065472152384938784619445738660184931282764433914455047324126058927798441643673867103563126194179446400686475565118615564586250282057772185371842297356210277709867643701245606347969247043301401383409184934186702213465112396221091719956083015999767245801023486861669463014649123532868172340682034138637924014613736787730225165413666987608403287337183619961517813665623271205946010006722358680990571569537817688727033830049660529860954086751829404860796244250423610483170279783225006032617744170335072594512366754928205376852828248120102358799545687968551745023812115977018688944546819539681095870508603503481323046143879643297338625356367031448118122516013418172786431613698364187605934833735318394095952878314554504982912877770170506395859835567678601446675325802654074644924716996254538116174586840350555858036965295778936629400418504546188869171444393135049870524999369661102742502143699102394844480769020612466220419616083970623164339953375660141562601159091321854063254773163198191410947069226228782684884271235018721470308016006715746842694486314554947908392425664264239601380214502969014526236878549300235895988272871110783431883871565056851591284691709293261459493083796174324506051047825851023972651393724318585697422267667417543664161457201053557165245469689596222351335721343765344451475574228468689662937485058067946225841364844708509303969032882165826318156821929353985451745552688154397641019363096616997359163732111527930318545144450220289490542551221516285401889019059638634387121064942135986071956391533299254415052510201062541936210894224288358849942374755061024094484278102250096459016013160754358600139933497105716419500681319366944776323601007859236190486550684324693750294765185040455318171995068324044838632003475937575269487886289161167988098674584524148674097407678805362640323066588114133056065474577378033864683823233743726593530920437924659281580682620496300093113852633719509522589368200393318962056196566086851553019454785433095332652574182855470708779774720565487387902348761264435199298713597199575588415755696956477222786514816727466442388840870972291582255034302004077461429115045741147930194874260877330804921814068250627371765456484816706267118549391440505834100596139166488234152686813037285296358920412046301663321394903157368963631903600266126531272253482495727463444966075311359410139148321483752995636404277254632008270577489806001429754071482060627213676177313710155266298507240420885709529344190268398111622959261641848621608377525578556270815094922177097654794082830513765880769497463971928986005031763819393424989016698904838086736396798946365629901379688885147866752193489828865378718731704091462216672358744643349959787360932910363875621030123482952462356675801986030394614555621604036251504686643069105696803188361213508032572493035447089043910339122108448159160535342901133527430143759700312457509022777023301751179359752664731958293826311200726634732922596243263051333630777404175127159869517029961864778440683089218805826302287433174374602741260205316610826307589295238497622463992302605821472201477122184645575639050327225411190106648431730185833014994657640605287347412493486021387054630876492054880404497445605210666279120823818502813982661023196477939272279153315608561983129517963306890984558411776667780150021302518170013317510649289421385195995082646237601243131476783923764022212891743008317535689340744344944954153881343466822161830580451435463344490702236352373405108071276608451163427553944197975283687029242409312118442373179664999368784783312887848741934407031982338264256327827861054039189684677930454944835631918018431326549661738727575029818715902250391972508688396629550768657289877999001102075336141191021975719026380967884473984994238639985373891140068467201784644503686945404024615580664833056649284353990514062551617274183614198634455589323630714351068687379779853780266931491588708150376200933921798613063662129857685796665606084359769898813100249324790481373712334639402713615768994537209557170700173436616754962274678661402874207094899766367211003323101029087070435085670248705292762166293588268222698995984388010393325086735997560206861938404607504725979812834296961442393741545025232307895435659752915305195450972913392756768174820465259433667963765383711320602273788966074899034376368276259968981317345370611545996494568160480726395586062565151198614487672498510646013599257527524322046048127776105712167000439221566528801469622725338804694611550849831366443079682008889619068597282837086681615960127960931451605397935627656174102297385090059368396845876792817937369615662479929201760068806083259712601912316827295273451302532738011888100155060049853456784941922124977099261997891214518309246853721233580313461604057007783268872056295595863803464113088583103538707454835040148237306649729124762074684603565829642348174200128793163965258608647000461318046501496847389304992069779410024187498571767410320038972335815575215033520150481023289118718349702645291288552328786250368652618160701354936337008774793909483948309601533205562307859269617530715189451344536164419878268469935235396470791877284909112424130118203161551394197594418840520766516514739490106032681957973830739716079611714994502787214286653683971476592685869253638500748533827294969119128272040707206656907452162039237544431551904898607057976855958136468837247472959244558228976415331989444741868412572539791133041541473041059692264342035441075488107406277065114331414077131570948485389113520882178363003550145557203262105810001222801185080613874156414903276207437315170633860212989361077614930450594713235226466334912696050339437188174830910992510482858416638764174348900807413508303335226072455840865898421449017141734897396070998629357374483307806887081048444609580583858363000778334752245351996692256439694903648517641641265361859853050624639050946933859971750708571351021717147942091495249068809239704287821084490418177449007504719614394063480855618141315546838981178787194219603601414293293750598404306334250241545259977323566578910956532791749943756025323810667062310682699837407201806548368418001065313155027664099792451767368478750698367684862653390734865870405286362285339890335527938980677175592230344121895020498459758274785134149899598591506821812668785423968536593285520724696110899556517225848783982916943243036289856330338210307771092719823540667771678903501938830695333831271842021305340260012549972608916388166911133931096376602783443132213208255877273131383775435445212688935591184798838838719439220971110275086369142875961846666783089934087660504016432482929215200708075401049012318119733223329464945776044730610884685665560139018561923687069072532252317783770201529445230315228352040386866502576631292538637027957245359006871743375186667298560047576663557772389379921437170824843713319556152401750214991120171968607453180237284541423322614935694569036535103258026171409325099133780899489052108007402266369306352406515733193414571285093435552358802084644241312225448526006445065509151197933614808512659419445748924682969136046137334584615116891132381861517337388082100922571432709943415162891929025172990148934112577906187147256314242585374874557548101595934448331027924444605970128424314630399779680314708519401542988662169369086825575239596770704599941845072410143013772085452176139177374081669918001818146700313932139872025632198564958391843194490849525902998373086593786594577486602118697498742215985071306795031250370668746086802521290934011823020915055257348369828003694989919605242725217419928858286560889885621864988885256833976454632995249286153393385966981510231605805878643045167908027215839723435983831747448456331605301429775706860937323760398782131843908531373765402607169112938401472730738587910890412216331469088243824458983461771521296466584442154540394524848140302191704251832963334593458219227033503259358543313445555976408490878259664538175107057515898393523994233976221936713446901652811567719581610532293181997224117761103279392371615281588797603779641015845379148788236688791277840373776362572135958216618475518308027756258813491079540911065875889340660379408469747518470104976898136167138224402406988481251142365391640643837853993274574772477861733289403190311600682906364904177907848801792051093144152083835845341360113025194511090744387604760865762614682106737774517345096535654224809113919317516024235914204982174462960164287997204316756942459354606170505727036646819394083569925835537277934349784660035663414050269255492212035079907976984130835004209126690872828676911370826823835034803660625975856714182165630145840583002685918127575054633616612135336276520105487373281624415006008844226563630461145619022554753639589372790369926022644426088093385667935845058896107514434738377876756945767690028259029853957316587178355026528716737182640734734263910055089490256618248440602406976650591834078523145884452327986050220222608189537590098388447158814964751888556730119243298143060096950236213279251089272690748378362567373230205950815793309123016287042875383350022872172643077869462945443688068368850667272885052875620572842097165229377512295210075584034076402160481193497307918595471189276498800182355952851768313034406045300409222676491232662966539278026299968233397241398875566045138860324348736980635196435622024049576443428187905521781082652431203273117740186179189375339662695820862762669674444035106746350790167018464082002363916983732224549216150672759551353449765071351101055661080281749538814346100056441683246148167436327135702643608977709066280414041949807514287251998466784838184132570191621222962141886726574957498770606342918261985713104000307572672724337216980721938893851846091552194624139797850097034419587863859410699676868367530578428931361007600330229598836431802354679227139679704410870925422206678321080446489567197092111189292151627452462588168544893998636532558741764098759931436978245222143252434508583700437552891399142409701539746645150810394080302204914369766627444317482562100798878396452967435371042940204782445283382419780723564917501563850884055684638382656023832182570146513399245460462994575625529657065586184757535436000979824549383629285591254005582489581549797869701383647821370104669914981542169252654595850918755922797881582535874075013627446338589871071898527635145091017766575356999725437159127441482365912479634492432373618861521911301016100026945136617418566021570705192036305460556322441723393877708486795718195205977759704747959129068027660065276641051262799883137649817149042245701781593332266454355136851528568504220055568271689991085098598877847147496222373368740967410323857525066469367511508895887814592041830982182882867299440809365151803916282056693433348434918577824557321385850349683966244387176291387579024488431102875740962793982528445860433828725744755063869227221231717432884327929445685154811384298411024932527964864453761804116019976032879639129918577524879220618563843691142359121819545257078799119023060094128208765428088217599576566427148630755321324569876573093158810531142945436384008567382375859703430689934636175894175629165039930590213455776187231816625902133961000070887210282112224967868716217995237619727314960556395549347266397815492713892120512206870587740266474539183425033033629612834252143007813142150954112775322442450860794471402693290530831813870790905641973093547044885332266389179693202125488545105910417608074146871391593293031623904239609885853237778963759742331993458251060933679314713706664066813173800592902083846837071294885339159574483673157387649809709852633650527876691537440987713666218630965557401310250949600574382730884225904032143048302444232826179173540318421711307107432529136530719091660152707018986734181453818347724685248677970391501924382068127762232153076404523159769371217017293551844701382924318192839079629394243200589481144891629347908571959096174667315046977779172947573858956061815031298883749339645280114174168651112737011174924897251673550194633443331879849500626608163710055944406302495888381531203247639991762705190482756559182778988489863379060593990823570644499443552637530881605589029862609759635310646668594527008155413174669497529648502696524954099732461451878988868597839352285276945299124300517139075697756108141412586967249867961751290282220154283586995433300573153261882982655407914301511489073852621375873693541225839655280253656917837167093940460400647137696444164820787539447070678042972413425870547896003291006900374860578010368964240615869541576948569977547491294305501329487956211312015732080736329195787646234857704357175434741990525841286816688977873991387213494243899245852389934051786837211246767986872185502756290493188746734163680430870946318907017649815569915993513249685362866760878650780491537899738940036304692247919847897854878081750190846313619505353068533072150135875771505322152439495097935953228552795368812787597764521139754914106160793569230588888718501053978136016180588218627368667937532514597432426966290764818926319941359068823576569827543275711406762656607268319826412223397821134071490121401278933330446600970332732708253076543740252415837206485151986470547796989379679827495083438331411800288235655472048781600427162715696014563188223325330611716284462366067660746058022861968904821601468616323500671669876857913065153243147669520242594179031542767605062190088578263913045256931314318670905824535770062308667876900590936609221269471940506573137092263565212972032263128244842169104967047869711058738624609353380842669749365254606772835104691982740686137174704691910932284015287281486167005069411949334807497000108070155404056730838363828870196453423388805669142366543476777612394361610573997615780205220291942476841633626639402556877066700596334541861570109252261571350146258889775833517393274783871983906297132794064094698925713418035159044978410880514619767638663584195410467819789630017571978710583767558588668860194963471457911156647385150193378503584782155401712645475387508887324604514069477135646464393125130922917765770874073670969900598377869522407150376354788156072387798422769060845993911305533253035535761207969225681020148630596779677927690645536850942153468034829426424360149335775581532482343873386949302211166575866366160316279574648296781905925710090546788858532997852238487269460944334675851726409233053698134063346509981245102279347995961151077655726694483101336559835987841821937908175863023064553200166959675298124042103299417387636114042324389154066842877258189750039327969801557717354172069565353671607305572491090283334513440940780257463728712067432016546434650406073008893437574643447613294068858291343489486366578419854755471429129655480377199658087944864415985361849636351120944560548180362615642073814170092365066397316881907712196167497012655740523082784860403736353130739600811575315599364836552566875055337318895813604254580267781506217862358851288173890254003708922319274688423388206311978037623456785405700306041595930796932674693795882808630677600479640287451176607960983306391119466016174761865273942251303222254017323303893873914144331753991830278182967420152272361125839422610417649419229253729015645540779792624575907685465587729845210158201451559621818070428340435932050554709962623008126011819644441834703643400550070554203031604157046386231719183258643413415082620708294478263496233378381636762231351315745711061676815913049678975036885058481716681412115720128059430672937814167463287456822330486879627354913293247908195697041930748059691834731618567541958801766551345622595939240352527300731511006447473758439803013901862645391874000386508402644076652375994717958610214264218095414791023787796325055701352523357043481862622018171747784317814407758558568966873915091526327768253798853004410253396831836628311590358738073238188682676767446146088231723748889326894608656467668721490264044311258171146167546534316546749379913613127195354961383727610387865367991233561557862225347812604991699021477456451199319727105319822115647553845144933782777404555664654045121892279286645805096183935006544562678510653936032281860178615314178762383001144086655933616789220525547165792243001296442275233973014998494232221505089556002901176621559486937017761928809910958034630062877911739731149229093333678965928720562493427969467993852186933311461358315084999603988644350349507331276756588171551874360267359155431763997091458721040785076595535447526230978316174460485428823898399723603919024106198493510473330567300741672112407430496693118244747773779584523413801810528601481094601646683745902914613914155087058707879165270409925281805181042085972396409715438337908837777045924908966209633660041361029900825884129890415499966173824712975016571661090311440532413102793053881670854509096785914171737035966090045265195156639910278329444094713577127157083729712154716912119916462087845318090574415411597307886198325929557454001557924474855815428737238967261131429509167746781812550008514486420773946685316156119944870519040372026136442187780721965020396475614940948297687420740994081182022529925679052430067143497681814950156296006753768009371095344859179671447160840349558804591463065828000581080989545367927121979458025457712616027018653741974962827513785092668998326335074483202100044240038196386704625947943290310091479545748549805806553681115650452620818882705892138524118684975811257952731441875671239426504984862883917472098764807389957350364014580843501895960407185378949465016038922506915816750900436957732242196338032088374189919240224803908551616561020732638811116582075637775514100109386842434204135636292179444555368371360904264443657030654223036542268705764209618516358681768948857594802414221160421839606388825576038073751463073187195410123132686539529589074831682694160707499489710605104979938816080182133416749782500267746956597342567880896356904593696147227301381643994250895011422899695667140665519721404553200847285393735207449192425307765552115328760193171420897034661266507969961352453492508475352212358008383540624092065513627599684812139464235949152765274159645253779433956447595456037910963007424177649867944451711578755608145136413089635294186127784252614154395842189913425871338304664390635720622764138119039291620079040906920253368325246249247703826621598120439236763189025245194614238536187918549465128803822350548091804377079038938761430304961675748963498073651044320048537761036240504057147865918681201633019400669172460110102036412174617263743787315771302160034272607584629657785750376996823036384488592293976450691005179618296265746921435004343254996194612246361304130364713623827874463046307304308839512466398843602637042539565243658640279280911170089700750984786424671808089651381589511922435763439933073752464130742900309585932466966211035996118355557372693508324724578514329537507932136274218672385533704490254442064336898039555613299285137600844631651907240872253916217155197046591714855543817474200399088125922538439915629185473174337834977453620820135035306421768475549988736419732553847828270475979596786254695907449108878331610885344714164200700399767645895446107996641960120937667339325150489302067161674325311446078048107229798139161787732941254295583112669776001640100122135785606359682531765835791673869366099788412256100204215836508924661299205863504356182853189261057007155517593205798670423073323983723362650047304791246349300200281060784007860129438819707481514188785833873022694993778729473744355585283250582892329021826276851642762590041682647641999686575135338477458300334104824231576529241770701454403865636783588181892778970674928016215151309784758558595833039117779571315613149861744763298492612676522724383422144489082940269125632743616589353099817986841562795044473582082036625826563248384744258097168855466397738179351945770279443546156680243165385526072189374566132560920686217334895340415625517881324218557123845894425918388704623450351540714643164988983102840023639508190535755115808506964242336371329778443845659164238876984975877411270977639028918246275043138067909012024027301832167187598334836005815238087908902299925984778670003929406266856904066661784655061679085421945146887279071987587965684682269947707152495520132933060599927706665358153138050782780525131277368196445390045942614798401090194960929556604712815053240965880084326932996278950290584434058491987736055473793679434970682450754941153025203284825427755312095689424456383226783336423711071296029320150242448687349462054293451272909854013516537063439533287171817662523712055719764048265600952065662477361820694271440134106079231445762117749857412230329859514796469307404299804280317552488073756440829998127130259898977417603229101199554042606944134408849873164028678019863935995468648973632413798162214154567573665451952123143852598682000581834373694017751903467186612988725475287929891451679697446162295974776845368298489338331054043642985676982960767344117855117877209811363534209956446334522007527321399018607466045320779722798827266451391842406786257065844362386769742329003915464827631500148579284870282214862895642225096676523047286513184293183727433081334382662773848364580195825842173025603422897945072724993898405594686364496762436933307362510834068613739386184236373849398349246946621534255400673424149463364795033431655755517986009502596446190516902566384873877523989132979943972307453880663013518801583457884411417548459232852497506734652071074004303314563149748590407794726292846618776706132368466976093731406716796100796857976976828643431466229809357020755996838201895805281235922600367413825830077015056575379003722608161176750545746536176845741221742806568537681524664759980041922846868087259408226409291322342179450313757730491808379915805137346919939390153731216346873031372677507450011239850057788399862480778740869061614212210887533634656576433981793952483184381620506411483503021467729611959172094176954542757096668208628141617413362055999516498602558631413444423043018995452972984843564586067418933506264091670722393752420267355570073789623873996925131354827175738651818195328899876231482711761423782169097636788672821696840674903332813645109336778300920649801321649013776204045990977230372210617433542899363392598890312363336355298815948725099773626248872852968346881560097832558042369924119544334714365433594666233174039607354778829797385848094601762240375020584677374158111467116794286274574820104852069211556450173626308131522766972092035443834946708347740001208759679351749132249820655627594929246905812499821042062692774493626966185115595497689355914320886744160532601409049355832388522603647095420682449366368832328120008092806333445026679951925182537383353626495317441395812398669665012234665659813124402906769117451432610553560551745231989802574317930364919721596672739412801533465262284690795211913934270550581257447288657471138794850087780467642367827618945249537652359655786361312098813802730616230209460271423519275746025775016020626388104442028184289813297231231276618332218521060910928766925258706998275993965609013704453582302762373947564992564706149113346394774831519541673523279098539924424352613002507817313576679092894022826537282243064999304657087137126829681072636372069555384446247662195890511802434054230470717343854155650752341459746719170723937480849279052494711383692268278591381064382083745966734798097492284078598035534668332018746678810597529043346659837344671278283018688739430722877282119533865143371378084828786836743385812147777182443320798094109828248647879964021566628325283454410829954438468761721639864948738900115999567628416381852467019824635623917733166791739629441015254174972558708097587842573225333108302889234385593384595333716285270440830303455234576853660308737744908260523781879006843473885069259671953320327912327750961957399175786999628393370729930117350185898143451394584122010486469531521878068900219338291725443636039805329970728039527706444408711669118179179579450549102966232256406774908341055497421735571471009443943527420740586655976187839263393185795237551870229938501949633807458478582232293241244902730388275492095914491876942114603293173804841891642867878912934398954983420253522508038978994645663943700196085785651542932133817097816149103742687668132656960158440377587538221738782573139654511056319693061290031457926998799020146559067911912084569988851969306188558877816825963195620982459936583686941226828482345137189732920926302807365018049088112880536776591645477101242256533794617117120907135230382579720974574125092544303880622668182115893416231185454813327053009330435072208839383927616602618998174521840351484509020888760238956302163522383316476846788007680990452549582523433991895248527415026100702676109914466657358993328758654812924909534899216659825029702251642594688434843590268615883012383570247492507857513134626238586504141388194137677137410837977552972995617674081703771595743744728732582237193402067085695835360293325243293382700580968675999845974703424561489968772133510662660193425837187037130085424312958232564103228019035689613387769834627153200856678680899141788841021368998685791003276351575544370310286671894744695795168797759669672322517642974997106037299099558014818097167020956634176929912829840707503163941317950796310756528662577979670112993364998564437720789994389081570948036276092344692484880611496415930145585420135472898420061872051280051417327875848539267056109929726478665400831230598123655917423228119584406172084587570496722523642897303080879757588478714923927258387068132498164774551363197948244891830895893297238457436969889358451803661463312855327219996518650845708150270816847393651888335429276478932492725899555992038353157036290675890723568305455179824997140055928954738400332723904010139778736031207897007310825862449719157012074052836495376435249942143924041031592176069959278861811519672813681616245480656148222877354410068157198554022742337594063363710088277058503640388868002345705084535215587613318561118291024887725209938780082465430127003231659842023507643992582418857534245158110157435809876513825901652226018453136602408653287991779172889743775092412601496963799275094269116224509212436928984474517038965654535230239059037588996730916338279588211981582599308240970236270568262545141162249377721012764768212356349617428924660154185334900953205556164028489922939271430631365133988873250632105453282864709907268122348352112865934002079686685918241057400054076891382688976464188345802062360918681587417154143809468028975825018801037810401978782251464359385593143499319197612258640540090826608915766087108437141446122060537698840457271274886598794643262199459653026076366256224507613961275136505870529898508640185872254828640557953280161137167526828863534956954307006466453009130041638172672525352129208269846504292329909985169056247503243400435218726951253410303220023352786588546432993572912540142951589367211723697771564369830535952674198212370747095752871966773588321211183849365935057984078827014562898155622702025936074454721536593961585830000948128385019216803266414746443588921733293838166122169739072167969647393667314882029653610351142710266186301717026670141367529968095034541201202702668074816151479694079600571783934625926964331420016069417874026046649273368901924651381840183232724944918170317621027335189492376592848727645772854007619676921144377731979478311031704310137820250288316352768341387250212796799998046559378781158261737674790916063884820134031539043424689162091087569798645510303294217955798674855432118482535179715685644953977736840275287885871247869082670560813229562521937102178074710028806008965695687159657168667893933481552502660371769124716189167172265218021410756452497213668306231073024316876198028007504413907291385238311097166736746799550925981755731721241838905577450574955706374899356265991699905762984432530745059620291447870794896299673183059687079322575863172508346676477967733417332874842207647838304379931588765874293116489447436474844470564040740203006957482870849281114595795525435483289683450848118402225568223292409705481277274524815812764611267193223492243121791817661298045041529627885440825995906363598127300117020195868143297148015726862780186256135680925849429983774230228716929168491739633362479238206463779678671156868958640826904266223812370409533721582937828559280059679976794694395307557277397300016539660557782135739197481836907793763678606730391112509685654762969231763470405263089169532671659884885686686194597254519323565654140720845221944842948268256994956185830895126026330907424078418406667774354067445296050537462235476760816213804290670968296479101473219061922725515990517365599191952923436609009661735223969352033208315581533464445210081152025337457736808525641350582088292712855436272209731219995345150378305410039622778665076109748224080853021429600997233503687947200470149126583631848696718535342454635966441275882654305812924177956941032630839990169423017608600342519805672928995905225108086455456343000584125662095789774655675542023506466119900601852358766694352347913644039645371507001760318707468521660970550822375693612958475889826924340786377845579012838465654376771290763289517440735670191891708769997396974004147047144741378476156377849195575880704648780115297962137102279038952794518829622286487200338376357891407561967819670838504433972111130880286030338917502445896638832619854247040101723057325587794111637786372467568996047479671971086331078470027812070366097147857734710062050051046897899458858435351824286357735594502807800658466324788673960139939765657733916448065874831470798301765992993473142881722400133659394091665846759641068831562336903848129087414010159019066802803928765943950533536068208414149344069612024258023498411499746838768935227120756735739063764937671211842835774645729064707816577031444866609867290425450187288763704053512255839065177196610223988420522824779777118967642605435034154576950580717270711759339144853157503683994098368014568344328289361127636218663478762282315684038112649840617198068464657138375260134242314939745125838532444921467815840777868614000594096889300357495923856239311461100291909173136196496048132728068228989067846113828039484729688706453860226122410964238005138181539272580172761089175106102902820627808044467322350610117945842979490748423123162943068954077178213636558827822840903925063575947158618795768126917819215344087032039952982188031847429627848058946854834806098745128523282975339447800020931544749249211987768457349248471670513154713275913098748760232142783304543821456593603778227857098726572893892050492737198085356567104239389705519414007073725812941239415934167343582364651347524322159368779682423883799544296570875758426791361940061743166673044579739493996015260411231828348733606996487773223709821014445178994171113741100292354466682798866990625637831125089827744404565419566639032995068201886729015601231709236731746729148804676367564961213332569113112790710159034325401336185907388121877229742640922673195630488427829776597300876724042246430265357767893855664817534383956595528230397774841673733667818116203118263182327704009925770801740575049939806279996631872007374406547669365076117939977801131789315833509959793437991955181736921251683512066907116210148536273384715764107544329140615516443083832705553925378839240064652120858813460278937289415697425439820846661768946175336857742989780457779690883328537417854121737773552119080717833557557843661795010663421875882664423416742209120911608913729405797048797001427749339797607634845328690512331161702851705290728077415219716372104655578354456495571873373008570698990453546945997037714634337619548393815288317769493624453241665466431246786406294364085961026160293803114055243838158451228481776234720097742954854320867747884197376702061179007199268467878472553127725992924456813154335514480023986014748601795772200216128924489091348850972908901793469592875214062915830945670710418314048403743907871038328838078499881516635369422037784338487136141513886132507312621307312454237414990920409642488043756247890583882050728121645796972062788719345784347304847980017671419612054890233486319581048510256441105686847479529994989133944221527599413165923379016988420151914949988398868775415211832937681134923130544031374211658268915173847654837856841432607608137913590878063120882111841373760099455175305532154016188715573658122427615112481950233472467973751685207728550277316391865632700826908989071218553499213351252526283367540751269765042962823555095634092239706321898142924431842816054344658190613374582036483595931916561413741079699992296181743002636574738429230573670521894124751432749806295759228787352424847664131903083511181999505965128192428490961219900687599215965685156153333465314035144410216432194214623317300637217598898741300355262695277215374180772131220420504570260091999010516652012708688669216688145858458917288711378341519819916382940731089897569707307162352423468828457414888152531519855002818629709183906502275159870066990758602831584617107565537660265247768526834489096799165016775555550159112810121408191907989883827817334030587171144067858933662175556178932222433707220888779940912200299563434078611695278294698902333299671218271921848946902227097023303783512063389489636883188423937800705492534661248267674218043572484746960263013632220770077391916627052871373510702982125330821819767184046206556152052328433396193805123281001169494818321518709469940196574865812049438884481666804233804466808911191285867130521390608447275540620207627320880698576349194756092056788434999946218808252846331192391662324633233201449560779811117697736817716709786848183235280155064593609849952052210166856997226135201426647423117339409042192682557498690118593386096831949928279552194803580652474139812918396003575591182561097770463459593523757920057009040658543307632874297810528508066684179289198929762197031013710832062610719163773634246977309478035773011981572855416972817829524204428380769983422576111027991928990387359080438123157616440517982627280324603967431220258551646510789279693614183951879147344243406547221290190033845121419572439601898059648208319029462107095424703781014064262534928989750365012031318866309326804963578746680456197495752935173768829938598824902711175923632643960591904731468260922257162366649169549542091487722146770286468083162993732314850073582134980289643114343135181576656344597099169380461099743491821404702938766475689724151762999759859080072727685303923634447794757964111321529834723877695507108831767128440050469835921776813841050081496130068640506146658014653493503476876207752420446927246933736908309578618692391567476548395444561912183871625950951338161015511960401590952253068299893266885386253884108680861978580988124625387010846656197147921504543268225857956911045602540977372728302512661125762352402928136034085049998732515804164104557146741754956783245455599272904550287637696700082306047300829210527537081215937761919181759401148345173329939629544265860428176203703075217813294120277638587442174416233993735376478062526064253938476855035344574457496925555831041594103149315569903691588579272841022731450945605697174036358847303852585269252995695968264489723963521289749858738195787206378648852159652589193549208558838306282858988935635519762883466575285111523229672801367882853904452228957351006413639969893126264254326948459294167510992188854636957613852287208130577126332231925100530350392387719173973759829820011492244339944282565120121059160194348251935119039207172302266275539013971827994337107004055226708853781338550385184103254344948795657604850882941965881209038789681271096349484221195083939030544235247052923696096408587756031421118684379854058192080778171245112900819407393846724036435623504838204081276968702600543336951960715435465094780782897883906173551466111419465562340082381204232987801981643721877037160543019389374412569317451080747037172368610038933219708864878674728763461581782680246245427358200739383953685940163135696520090964524079808564782845004133659244246618531421504531238342445276465565402239552848159737079762289795236835937022470594024383808427170414760334916947774056677729794648652957649024243212636397919168168358228360883920622340645151843456491904341288805569399067997807765153257197957494224981016944829006203889028590894580995874183728849024538355201062864476529403378356777168326990944424862254934627408193391520779989779975827467923982382736700317510018270693747569301625032546105607579008913001298243400351447140753909289450960287552667650616070702663818807340619441357868220163909255535421402456867689202366826879543107265384600677126166210958026734510798682115245222667412891824603663518509339843267492022627767345202264526663455450020323917751642564854797090052130070847119129005457691777972496965167532152487431992986870366272408657156148271820078763945308718955813067533988185133186363381824813219404197036985866612222601048609881090222344842774248761003398697483042186427418052017031618803189221442144214982340422224180447739285611875196656101411889332980903542262692820437442762242665022431297452006743615839681736965647710267657108312268958650663691064941727799443575175505155410228510917113342677751901083760279487856962295688623030338801453295962543274233116168042078316996848871887164243023191292813146950311456116665793298494824358550034571999887042886124177579067120554675505716505132124034446915767805553999031979611024130230751162081630423685051872004258375444866283352504091938778526303719013391811802018853702463068622538569790782223549784596483819282478356547730167154769962873754442181436607870757541249097657466659967191008095696038573125881618025150662543661650503512122890110964931028257016176001597233730175824928880138090725818211022900998811964580629098873107249737490162315782562581422420425947996107116999709183069652981946557295168077372784725174785373897344788883520978929014216408089894980156165978403560978200495309678204808246988704900443334749520109034685385250655566087369431524521980249339386374818403006050871657016369692607335528719019552567958973399061275721458335499497406139282211779257563980789273203948106604986412018781773581143043736806678782838470703350862610219259291219678745447438577882783123231963993344134682245024767299676251669476442117510309055359292149168667022827745780966380209878309283383746647830398419292177055512620266248827460375639623934769716957240212082456991299262366052068064558297121186175093630950444492645108292921329540586404206940472456294265335010399571721016945389210387616034724975709503628231884742962964359631510534007420835606931879958658335221201838676864921109155822462553410009828022204904241220284244225699897462851418029038134272588435596032779737503204046335490327174651580599414977525811822593815243953441289964466579743505984882724446678782969842724866652538279786900872584327544385033939394348554289825979984516743922849486665087676681012357032392649941245137895162499106259930592976822654102008937496218770406263637982547034168549784914993779395499413766101529532361585933289760612055145381947334104901965199721645541822885330830710995068038949254647814868996515828423955107111386330312762252978857109003701891425180732317478304236486533341620020991031269017532777646721180964069765216520271509686095252080840918274268386357374422209161364673108383585956035060838100350291582752845080884250086705562275961009297290076024958374220553971213608011262794084725948137299265505839320281452631487412084902931047872798282007048790001941772993306239444313381184137039056017612312283636955826084522393111535396309206767987668756831778721008151460054067016806166604054748152053580052675438004263764962873514253196046143592173506353345403515239208719893183781931110757587463141094905897783767507936796859725548856225188789231124601830360205221311027575903580650766126748352035878911337018402168327579300036782294019555849817927513449359710518340007692040123586405299807089170610926060406085766534788693793465456727758334786756829557750099909128466282482864910570678993961759000547718848030346633129681033809117741299607835604063072618246504034591250205642841194989335831141584486760028678251205022254648407129832409350332567825782270275108111215698174079390519042368543629185938306451494821939421292022665674323708877640771905599303946755327758039079048715220413857502191293058356077302975340274200656989498388495372348423624604539698427474685919660008272398467828301164051883864902255452189142968676564016565419446861697447981151595192729359988697407984695298022089212053965597157002207658851059110492621508269466198659496676264470258554194318333251949593413835397243797492725255050966295143693855605170155307786359645381428796352030090799870259410141867365319859461142199158177234914871392367777407002812487775802916706874430426963154973238973971464123796770720301752770652458953753431054954153592710664228515271251831993261637433140903157403528499536694246222331015459875178531131593636825406880869247166491519014152787820180076722554750887080819913554159759797283563630237909154885785348836307158755252368386741245652247108016105352986657016192772968685592951128323329350176196694923915144739553577407196491552966856160817558901520325215292555864212234821367875857705417369219356441047440276725430022062478653962832162816794902666027466973876176682900475186448976043489639083312446064341196044713213752337672706189546117301378308403637352490015186876084654475616874181010967710595771444007084439853365411279100359381946089858357004732703065927844824987238282521291606370205033426179592992986574583683642249401593889653166106477677470891072171389689543760987301709034916815366246141520869185262851533905757769938171967270664275380335641634071916513515751154756630993619671707219611224428734628560339380758729101850647031874971460755441713824337766210789237795753309766034992807815087446649604326174781460351190895228879856504745807912242056858500300863244068925298961247298872390885904465353815714829699763487618826899108381743930760054616417613487032493290040306878587603514932480206441971904309834361868118984983831020603442851837122358929878228461371070190881772368579330200652705982476364717449167018881125879650968428804471117668558875234586607800695042720735591075557099288115275503068904272107606389734328627897412206052890385953741900977957580102386973293474657542887681873649194035784485605953512143174070514239763567126147386954106061509267376802391593162201332843376778746834458549070982764506521638858590914428802257720871321299199150818850209865117274865224076640563132749993783650310158034372850847001341711246626890139669461064875796270421187292623354404536683264074429940289298653297151659778178430765238255229180764105642174286105583571975572648516327574382909811260638969840970184701312344138813113536705234090700244208313598188532442137605659381650870040333039525264922928273545422363486234670602079506848613167891626837350689106877755947055978837934862233093709161218071946119149166175355365429833178634617237167972311267425022722657147866459951759526526792595457908178692612289242017836158210477584017464027530792006731176138369848584422596668169740680943775697005805271250789542177767516051566573168275505047247850127824050235245147992808149162323148447871999354455208206749574184388703062857494562993831624475647528103704905479349535063518507025551605321600585206918798817430405125186374881821011016897305904360066995492845096216781041078988667170657595257546543433532749330708841900333469933199617731866689653667414576379097362044711319240741305014914049791121181933652474113316351171475878223568393695949128470695089261933531619958253771055194281161332867393355509267939892431227960562123992814579266041447971834396724523312821422089929975267611662150841020022991311928640918536307008995436354633083432800252835384269901263813922348089518680561583760047125304240977067954890035816822349661037860775125031968246378741927437998566772552001335441224109795342668821504492724414368739624892519002654182935798191189524556039261706178910522765287532460459510797258308318151104815037107190725538952847319453945430479114983392143402737475712432878541015391121198628220737748592088202741349895467378378954657639016713341407766857242040732701391805277013614990953490887979880892358306264633849057827934886657381723900076744656532184396729314791963975682768706152019030986489383748148110656538589845348563742187667027832067100669334712069965451326078822665456298129279567158950356148816745576278617304721054413246776738592984519521855869511799265036523845342664875497770827691765675374027986685577831487456039437728450278473850922915535745960163004631130897760594806991679316154481550469972422852515955702799265899399491458022990725527738095948878323097700257069874144487043847326880678722401850503268973843771005366228417428915627762707925513867513503122228451427191347747818386419067348773843370597654088174989642186596913810114433389092002362686242109965235849630498351328480371022696205891276489808789577057444775892128292479571706299282249493666865698737769067031297406211616265432659304272461201987849119203451563496948776294590926001870794479505041304185466694729741180871428702639606595809360897913212173789937282668695106234017269467910529468417880968126338366728332843147712197055881970289083708870158507317232254670653417872516427854256893542423732799911794691451227844789356881995234629278474936474303754051193522611797240247476145803682400464217592746574372243168215233479388005022616311028936753527464677851845166885377393152897249992262236036481801425214809597522348352853247232616962180479280851116889886852140423422089602716205138154339214093010229379433093503095716724229175479566852810145402971260625874481612236003052551296839150384758653572970406974721950197373343212212296274711295111817015925740105325340086743823855106955148915842626098043782468690823758246745539679615751005953528089838446664836913649221796537453303856820728040879612812334369815646286285524793556419539794359455593233308489551304391660765853158946895702748279203130503844910594423750376951380317817361992404496518738328023182815486690481543885279131316552234041056124536663936736234817124476067135963583906372981019791536786472452444657480614396865715514319765810070051595435279915320441849922193706638950664354200866702875515414882342633381427738404750964622494759007138033131380982525791745147882901815999814778579519022569471001521657645861550719228959456219648039138780622360733778160673959640276483654378791022401707951487272760643434365688744735766273821078288565028207629429739687231805501516115065348263773168106072914051732091244803294968706586521631606132620644200381875481183006098994524429804484983451415761528189971222790455756353514503909296675022942329751786327826901951961155373951303146483623754808730295956203165898460628541676933648056843233219987614872673135119897341672353979969109758067911960064765169734897686475955297899469031789179872045603923084004886493466440409925496223290841956906000144448888487456185723250187769802356401049224171375010329814212185983806182923694597999968666969241090304789502118485573500239130262423648890766926392911806031855063217754645938043054965259673276823185039789651323247570500202979622485989889334849074652460514031245722727522180973734773233876283314147873832049816900669754550539060781220653641063916562032421994584976847493273804157601683352899135892092103566926088683445526387831492661539178061494841471887502019342373025974999738580014770633529790294419084765659936455367691936657934707994233079624828815429069106752131218919500238372465909905711886387072177780945843865658275745535370479235681865818883865966707776516357318085201731051920977570679824149224497774229599263547226849979013918600551428509089072343463747505250213368288453600450289564197467978013158926270833063708314854811218279950785690474627655078175632183769092791759545284360203357918129400617441094694345329221552008638280420570315252744657295122788453866697789462920201599473817823205634600823382644994267072907603529052904604062202577137267627552087595152791906252465180220320909160440519209475484210004152707787731614552445679863157095050600995355376529589354561741635224164393371968124248601669591699421420736099130624826710819754978079848056156667862057578125851973276453808120857760243816951766505329683707985059400583613007697133222338528296959631362548357754439145454653373168736152244424669379446417841249313688183746632936166208044938065085166306843936877057098224635635552138574660393658457524416424426599634161151103082806861263015299628676057075727596505881943269732298022363441455193578843435935651340099121388968234557408129071452788192780143398048221815291934646454774601322672303580200286025846597402973047003938003735590868004666530204369200338822633935755104106249385481187117921372815854070533110558741786332336637964574813259107094193383828548314845883329309718789200883778423900865953038745053116011596131923447955943348960044696962866298590841345892583954503090984465551632922865088318812952640623981471479397786250808446027647664076638324439504838660809093318843352225561213283590196506832315665326838232727053088806453403023846109652374575319025938493322065594750875139621556443507980135509090002202332680112416101073708782834735742843922029403725802033418079179156459994198578649396465182079518312231793063641735683136932890017291090555507021030649756876862001254416689948514154373607389416406062635895584334176620283594224835158781982474840448867587386888135069920861264192513006542780840933002340717278144461630225986960215108735851763971637182532713874549293239444642476028794454988243347589402324606989128099482310451773794452389047113657985908227212146286919137865900831247976028400172161092981070475652366658982887246684566804293905590396601219300673232358309981159820527890405510996813959260766687816701148265171728859863170661123742121200258782210572484519044694073764138918743455475235609850793209246058187354113563075085262376843861123020044745466969118540363584704912128246606483903954403632620050610629761846144657520083312760236599735275324016274679906867967146966027662603573947642400564270092433239393956117041577099408262368087915637331997329639790078996527096918016559283522298814413810391861634104310099648668132622267694362963354337160196935819972272982979218054256063476594483071569300690520554071192830020481605886198222605324237739403755546643336575715118632484219339266443117320925234115469246407675517696673391916346920955762086863420617977958541550976984780970825747994166591657530613554957461216212097000793753690804239656420545459543648561160716814726011405118587642890636619515384538087777063083223173329287711479001647420673322226171190428714700154895047306285622126710218384559309900147721748651021396641530731980669953251385788819358454692747757920016472398128545033416870528859013769990789702759283250513530251687810732586730373026973350448496056414776957887380861303596138836080428076875577741114254259297662128153541596115617900596533157426297177614808511579045486576590629746535604240601978139201468653046541272832475702051313664969211751936921315835229757541446048389311386683252100426984711001900731608458906488014168700659320217287495919824577236538937433862342421761315770992495413206357911482907784197828232038371052423922590622918488502129180441919980496302588855154416482936340251989266754161521256778519470557065162845325933815275352237526831814466988065099198453887772228087173488441869343800116140077006538371507477728178708982623389411553658702639194386924920696894946873796558927341842916641414215508798549915499730233969329107223649596778505394987355847663747778529324307341524859043512465151201536537092165560323509604519073995159039001310947667011918525428598986733205725662220511042123702822969975912135306906622101993101158383390295342529786997697683533538586742244110508438108314189940650376891668934076259272745680303222983287303001973670192524800095653153312121793785811600121213097372083022263015898518285303235699159267638884335791753850962071428909445494997165351671272458475062868499724489086477866281830064970357910563013951267898119081714172440787392213331169420555595717577424135365382324914299536471605403932147672056703191758358396602524871400982893816256018381726759038764774397845530834970284087373622198168571130745779060465803922719608345676487533768010234482598330863715779266507117992485102091222135451363177306146031620183748836717649292403378732060780697463608959923082277303959412593130388189016171495763290844468245224468745635575921328715004715584593265184640387588142432982902138328862138142209746856944873054633687411621994086745396046184767527375465014372993366082377797547150660768887326246025188605058272761139807002937975014683760163616205840539890746802045209807990150251881117226302507587837227270770122951025463486954802750358102753191356575162172246988814340360685150211981052634291293690806787008049557313728564996220267004694446386961732340490020550315659925331339889971623591220360225507455488647745612182198409282344410918298494694201049548450326474356525993620493964291206229299001299019439056429328887267791393722271582869410238526098675904074824917876340841429602101537773928792395956527661061509350221440476541246838222723793447146619503069677441214764495433598360202763948335399665950081006246925137312410033380918299757943741728140651543590728157716358254106599540639750245942815009666032787229769807785299009963363535883500583106688647042783702173475309213830498215350476864630271181310212853627758944117527143518150051253580172894395977931122808859046690106557101993115852220482822600795410712859355303553653515167103724344056846420649747116137744914179905113345404586556421160495744131912193082138908096090319043715825200554701537561624626863400750318051905818176480481743297295115677751531673766740726687229500083973097801867397441411346799227157537254716624608944955618114118233904353991507732692541946036631237116766698133874849775331300096240400336714684832570511028341229388833455440327837334790316519287036382723717778102560674893212080639177330333096743427462605009076414508576814186633910998696301311069035739157528322506463692485336277867916514368169185337647080497082180784482049461875189077381399520180690617280852613098939125407067513467163719323003425036386039435740121872742816475230891427941889707447279939141863309098046290969758577218443483022370912621170636899175933937957812818241116814527862033594322983774242826486676800434051922548200004750826938505307550871722492375952346367005002971259725419724583064347573137072694405814824728238444264414569136897836353549007071038947350047748398771400520300463191110765266607272664389810841252990488010966160009957565472902348581767879490755042555701194943355333586355572413076822525488352940768229653813886155356690556148316406536878238510481562396219684494839568598655115502307631845632878024618904800164485621886615881197906533668516670728106602182093749715306004275767374125750856758991014537202057827736799573376923117641112272590448087381903338912998161234562155001375082843583599244258697414026670817317426367740824193942852805647740777680654903865867911796158011275512641176684034702147906789027214451381418604225000146627557667789573413763619884678805020973510361710174628555845871384525334053273654241182171924775312115840448721104683445667468001567714548538776608180795443817859005582030077112385219811878029069972474358577456325741555139420296728163551418935787210361391449964699603898587540690479322778775910931952198037821745830119028276684974668055868872188976725450125907754189156888708463137039280327481777631406475493592538160253466133822492650066848344791470059537589137178657713801025268030730511517283750764764552614493053511473137462874264850891447665678414801127144143771501737221302819187762878612625104836113138237946232602132744666116028791650661118675487446418934772049776629245129010363325517113943359786994187033361613377829411814477840265297959055858632688337067425282902370959411376897520100585303399260850321293442194246620110722486938218545454973662616927343645257432537938351802897100477082796672811727066859507000327603820242486889195310703483142818666029527064387928491069278827899271663686225476011513491679778910864760513671498923106975986389351351995865654608144747906403591711855652293267299557712500284803519508348725405743373725907410084775528006133472092933165338862406974383027891658158158168206076606466060250552504583716588751689444428230117644962557696691395341305619862885984938056444605265553338117164533652377987106705980697713246404297881752091953386734639731172454022130588270603886631102309301698144949299194077375294846852078221452076703784459907218165209300358935186597639499033166070488408376438672132982512018829876910376648467737820730330976870732765339000518846790009568587697087422497996479637593907978012922584844285583394135863308183881746296561629720832846302155223727080072665377983317408283898690255430005496193092126186580268309954076336674119135992291255487963410582312726555735845807574266862807898633934685229994122892573439346638542071707729052145100682731811452263725699128705038600252421707816570304178105006464075318911916199148676037278249953973127906641680909773951756498867291629154564337885782978214163699725137843725882346663252999711835734311789266047001648684537011925046256288784433819591651297585048690077490753205646059673072942280305250392273731670585975494241283608160424458646208477174401760204101509567401740333315983504791341907252838993907947868134892097749903326983636318755216465130959364125093647791718994625512996787721283979021890575836013424640454522430905519951606852738700419863250999131686485693055597678924374372314643802943901638812249793855571609360699743670507345735588827159271563075669881214734551068542766913567290510562777135867464111318134010137144697010257166184292861196608838343422627043191415668562469179992729716057391998886912278580990948902808492991728240334661905432309056141998893645691078508596822039038454565340480565018051761106405058122373244328132283334137335951066529961056546986214939057507959834517498744416332207460905396150646841224098361755827090452705642061089425094175502959839777566551301349363834022524547722105695899043569188677291250911726708025954979928213783346529643517284480687437765875842870198640824214571943856763955004113785853845947518777081895010014286405099210943519523760979221229692813616238533792590243229750034318669753018352886177669351244931715249034887744130351542556304276894026919813111955749046129929997522709711722424028497279561905062779072637689860821787402096236878683942346073428622468806332367771200894827009436520186160557586987085480842585835381043707385330556084381267565373695057912828376782789505536242158699535827710525039234978198115625222255864907955784083076523879053038455438265996883034455274076049764801258681525576980082585678699701168190197764697721707613070740805056446189402424540736418555743473047111219529375254330872617655002822330970124777003626300666425948330129664316573380625259614029170946742174048553383002913651789769815084893699791339508767874954234181774155259768685759435413235896681330911479816901840246237822815054237947201022288963624346566903665205583842227897849571324711541699169144364186570444463837943422191961959799836772256364308613695026283456947142123166468621300525001417707823005760778523322142605879861032168798505708881441673129739626751340937309424040021247302460027949024349412180103701380522018023836407710146122512667380422849191146442703436826981785096775267056466303430479232226464070599687362768098663972151060749419835991643667610675692743566836619093113701286243457518807876489484287873978612725809205893340297447136812207323545614553640320139062857432236022234701523957486166821763578883669751460959446509935986562329399259986786155452618137666456432545516427313430801164833689375867637469697766558655189956019572481261570175477644791612406284268645293573657334312783837402738677110661356792761226241964351837837771355158636757704740310781286223233841664250186352705629071311831811045852587856160555197782648215022498473400363706340296344592938324617743158482349334168702216960382888860535525464106814416887893704119208778688320079899069001347968038033153558052921195467546515920978860598104664494228685612329442056159043208152413320616477991919989727962823876818109722051061628733618300292130124438553162590130546704232776143787196715199248890497923829961642936482308101669149313589107023998335449703383565600392937949315597598089383969763100493009516775376231841466578211898645186926982884705782503413174585958660502349486117603406265938030735424843269222598699922998868279842372734886249846694549622066886177403285299076737507361732611082158568086282223619869411175469995723314664707812234091865500067472296909693619293762538430900463223833342341288115232665511565173228153874797725229504203052079893373492346120252876439170405572729841609338110786374706573542663969823501881195087844484706230005122937822754198207653213655460533662838162950233424774375551184718880915938098146724532267832948046302289991622537852706208969892312255377908215468767979359317707538828746662874591645783070495857407059382823694681104126599908148566633585785818858204230421371856551131692271853050262821941718698106615785480590533022579730671481206164683719172984495263616671426057699445076438403283910827479672707173142374713208816575796008980245084070732344022577356865362930901594152283691843215275884479442759882821364985191151621166325696569246972100389373119231733842986435747858776587517892344886584669277508609985171420250273390413936858945757766082607798242383836799350432712730409858470216922951723522384048276667005322114320402134306742100786322477168698771962644606144459291420813805464324140780218422494767939464998310220099508259394660517610417404737966329181363082763939549925698970882207349645359699618041323078477393443800951722195749026892245225067081970560157651181105973973809334782116371504373883658920104337986745884857859312252803366442172830424715926474104524821551035576587716136141364188265997281509704107793620841170818588658540947734100311708977572259387433137641911788828096387829840598051222001740511460617550465994363404252450512129821829073638058429656984421477009033221673201087862218468424291534455759622030740271488035444548360662510531318423794522703921295801490988734716846599325531368932868572636552076908685266836573038972347503256377286071069030866266927172800765418894481860098843023569011329748353417455755262377848980824241213169772555042898272588565144828850064610348472420484404969059824170564694997285951818492814812497358254437613638075080828532214472125115330349852907031759461714165123964279317078959451586094192790764463099272124574007154732961313684854136522354435519049273069903574773314029905868495442739844728231990610424593830677507164980002246920189857085979759092691055345964885640306981926355002776662377860109518532189959964449133678626923407659297900408188351512935183755002188686588490638936801507705672554767689135516112478034145612798667382741569873759338444069075334602546901858913011943709816204934000936992940292483548466647382723951465834177193828490841326678281415389052895758968904824296189942566815806173288168701035157462541538010465971238417646796647829227038933205817303308328695991324035373625287744922142707072468414996472102845548305781389197410226133091514490131084785470938269698730216317118689577729076041147144721311285213801903793638901850205095669115032336510928422445730604705990125001311548432252904632486566315488112282758278845103368692771277779077683698701865402348856945638951773691670420164636173526306946372115733229387451519778153566307534457531145378424293374569429984215386842472022869381549490501226501133451807632306134613930783091889521225355540155816028914813721854363032471209574001460867299360115395294379720603447468946070011911482401428798152350836741141208167005385239694157659141317475460740495104455123900456081191493773653137689833617241148427573153285069744702374642555665611286852403806362122529380262619071236288023773857295689418132966330137665874893566955060533604058765383706422160708297808160722881073809587092655548257253864583499753535666871234569705368434230766120619468060933476695268605234792033630447281646364020288877165643303955672446947448599337747005497350383853272623158522272589538854728483142335922302972950703035868022902026594920286448055855978806764186572566350850500122443359226303134645570953550425998741947051349767899013696750913367455662983584723373069920933370636856807649832431229445041947656723151976159919496248895912990018515864053347955822435141431034050711977613044799439342780470324183897623525751000076259476723359119112114258584918849653803832799169250017929433497460031883190629707453621929077585598515329737466887540817544928599448850752714538070770334291788718503315362660032286713588657093961588594879724270324788316827317327195974143168079750390428426546054165543626088599350178962441049704941100882908021011621800669215736138456796512741995332841001257295906039262774105767112492126326830253312153023484315297458200837968468108892327089721007420895466839552949192742247846031918879341588861715709537200196492699999788538468260421628679997346871295662320476566434208123614679274866440732553409869367086545194131614941139710754989758594460536914709551634458459872512644641322380383113766750508877271946437842303279971376880500518684854772373161732018404875544238404730888934577882489486758719590861577947951576616496622461703855121725955837985490147575032860928616698970793595669684723001682613149475522954058957498823525006680063397238363422652050871316675959709729124265180127428218225994832319659237298635350734399875274814264369574548967866703109400354234782796728457876563075648545711374985573236433212552545487442767164206929129152039333782442282001749054459783526725498673212137168781418260476975239730348502279594030011315125288975853482736852911590196647916491294519330825431913075880641230347321736337631015338011595360319961674909360456826383956977203715638329529453967673611781407615051317568295654720270791243547819442127890193454996887621456627235410527812225738301032958579105985032866145666693579647156559569284871281748332460333821465311122580982482941219362438753181206581113015203381794004036765332013633720284955303199960721129345281095683530206623926237075257524278108007394608296398249971951587909604753619406900573905217353205952541983544904805579550461846110752144646676334879548020206518525630328405805946588262033913245368370652341146981755129797221519053424238125168918201801859264757889253271862833413517480710856583611026530269247846346423542307537123970171094508428450830983709216347102387939559813318381554614311302355466249950570634890463788554218327746553444903842308706997483220939312811276130117103002921647673714429105019556620232183291028178322332840308914884288072182367324505284484204693779407899465679028839563894244447119025101408820545471721354742182950929574500128740607175352898381362979760809446179007232108853124839625204869210250378942555480520619085022715060019064183748682793154755952517762785047649967930324907129012076963203383597640755209471772541622225825488484323568962908868021044130569810200739120622353444479632945927679948615639776278947411951674644523451066359733561407760385294970374708929072636798303970021737976559310678009857192272023400062498932842452919253981999976964288123619274307338043717168376582881003027056155739134597173023492552693568658801166007478721372993495171694755451529057396295797660724576993487221237388796145383524778931319637957823998692621598846269364924281279724259394685935460610740290127115362121670804570600063644221295326244797320585529831058007418045877551267159142763237821486443140429812633352818882334210758322863471880328665957348588010228393425786480589204860785630214177817832577019612241800211324375225010173991893824748653147748186227902392408212449025745448994924632726649999127045154949463379633911968709374892552604802774657101237600486364387154524692418390495964258006895936453347924348267660019681640082309897805099466882648824142258626211115252021037990738021824592229517823061947304254551103543239554108287720913237488469977935370947533341975457478606070352078511029008449969763794723664632241304946591659472553541797352632660762920496821150989390739427180014669804482321907912051284940551766431104953144970098182962178644399336445679676685238414545056192276872217351009780397943630759680752441575296820906356583967157452140069425031736845601393231288478419704542503706722010407003980163912132958071128265181798020752965724904410987253899270107995354136466060765958357720112516363424690831155643764017827923057910109351534000610827925881184106030435743524217054624258935056235256809413633121465872547228172684435628423683769742092898148958436119319115225657349750836759870337145178103562086309415613747058707811529704764301937651378388379528559362051355167025270731973185091367102393594503937979462016617313953957740550550515016197768867638311270908427515332408308172135846102576797731412041117959635662947249807616858103654961289946750718292015749784264594288228101664419667293647007522724117262348665604576870602809660921744215987830673380814823899502448244858673293664616297204020748553404420438134129473077087223984697048664033563921576833708895369517800652361929694296422275161779172995265397686371711115591019904721945039829882287763144290179401875808258722644040297251600565611981392900703070667093666724974869480431266160618216887330855649289736705532101071986836507008526806810088408357061950268856641289673215999572761358543090546034497595476761145153318984958374001200447864200521899236441574501552674663014114364545156903238810391046147387258274819996064732263643163161067159324635344901891537829290975128883945831210597063861498607206563360379346049357049878823015695810708362464437023576164084105785935080636353074867116297941956817196394098541283373496245882119106774859084530051888088032383710600935251363646789845426246284924050991666535042859376259734988634456210896927941000619638338243241497677445066850374664049332486186173173098907734426545761992788467145627821440386206332253741251466620069580101096507390300725062039375498680942985206036951188000800121382340213265366665156541566601138965305667115278457273436160775105440260146811139275189333933038912727530029010508240887496240013373505812947387991281251429083630055195807816184075806490196392697363705138230644085295997548262229448618338969338099526175584345532676734856797961766060895533285171557044523971220349729453949701734048870324965247377962019165762186311277981038576923114823730573603395099821922610638750058740818566350448724184290294847753513718739986944500894981239798766853982515896225898438779478900657003512593797258908623745517001684519330817789855454391373592821072091316204408913103404437313293878544501653493724223899449175660795324218797008330071984037511568304457323911479278149563206119837663525943804596256868852627196422846830543802907351524405743869699899492140459955336188589703953193342014192534521298476936262889890739959533620721981110536312001570160246731600309179133907665389503266662975508602294422372312639797339648990874756389778876743224344901732121150769847388085978468287740683652031369975241955585533641811711021770404912840357265029725682531958606432834433694351192950981276554823538475138337265812142212370016856045443998476865075081787927710572598038500205299986162729761899950771940134990869907071982738760183056026864517766027582811694049484246909306535287280434190590011019004507021575643679358176987234063797589864615184563831548038122596326816210480439315678099200716112353632232242383602937944228905516265931401333631539994182589648556986624831059881058463758620208538603496361386897379521905909274737473907017815128873013218691078065804075636151514598188732657357251290736305683602906496659970587209487315870895112455218910919324492642133487167759473818034552253565222993546845928569472022374683053748087530722255164198824856344891123357118217229469673861187009552874398151293948940280541439103280325543179080458501901469542540287219602685011916151177059251025473281244817991996235540979431956282638241282570085554726713899190859343420693638920357552139726817273033888258523630973393419106285526816900692376895876317544771692220929950027964265647726667676973712251086317405255671086094726383903144986721785775840591613773055684597013725724116288517953276494902712696686273595687259006531154794659987110577635434009594670211422271902347649209193405139467784786485554311911003890975729758983586265852248610483595448566007480775388614901084528054259025995754585290611033725996589971282621086587334320331869086583877194577864046164998577607502430264038098532385189634195504204121847566410208440282033033522942102035759598544589783116049831407246448981014978282912941379822635733873715658150623002365594955045290028465009529232415137244221835603383313314826944624143674687819956999327434826472548444270791069165416232260672084317838039792848708226493798263783217272401816184364826188894948138518305485614519167716385896227796523457300435241536150708828952863125722238983570056852588757353072273213999015807303632032280809954997026314810552243674839080843958205180286001864923453210435502966430593190325201033761979318704401334136983270559181866129701144382118042615478158144963200026315476517387615715300340317285572477097500105562120228351336198568123551694073721233739915908031730955652868418932746912444582617113481848835300171795200503065094450024495316328811954005334265714634505757167687183803887644039798200973609187379977317670794766516374998124020329494861378070027247333371231507658856154876947298995015623937643094662164017523063519340333646495674558626286109850619458678676950742581628059153747900464610681609080191814147320859898925990628902398601051386098667290369457542118405204081499235063017715722802503046523347160281513065467829757704165127386824577114851859116486938809260867297963901468488430496953414564522511372212280476341645535924330366682344338856225175066747923221263041437822231939717744652902310365379581580414481328173735809533406671826775531422826591503129188902873592336710134165052187965248091873420891951579208709555425467960371698916202212362358501678018016879117872214745438212888663636842671534827782836218103678980960873757015108119648000250578969058100454182759877868018861927715578864067275281391013041734825714666942139332495277559464450094740140695828534972790845585223293485637492546557504223910949659645698687714055405193709091542187864022291188255947727940378128576098613664712633005055458805968308862008502481913948083054290567723045495804101543823868070027206462808510164393716515595459180902650543219907951505564702878361232320950954227384747660313984910174448795481811082882435001012030780280987208219128677867886024858253606411678037807526721286302844188925902341995250515872895456635181013297291992193027785768077376170872945565936071063634374443295542204179524741619892892177672067242149282993041132121598654498524298450369047741840621836265255826995604733808510133339495480218638103532237110121300445583620283848892259040157970868904458495254585337294411603339955919829085437962513985685668702210032155957336865230726956338369589996048223165985097958389783848966809202435463917909703572481922182097797386498664961006354041754839264020776386090475999649956010687712613543448795211224426118418186982989407352676910387997985508758963515543167997408984729267577302384066962836429712117489342271142423808764853121543908208956228375456019702366712169451184177001655027434359234074095855063138201032523012083604561877127978202761916670683402170009046324139853663805279816592653593929256708477146118423415364004977469091166852472805897431218198945025602878093015279352839338210961445905684588936588930702617032521745782620934571044635163750037328236005243762804984364670883110393038207882898078307863222420404833268701304935520611259780970068076601383484631363736098402985363776387156513437995547955932658077852899142333020424875037591316872000723201746616812224410235372348135258292644477476231533470780412261811716083076300717395661284090972331230430817745786549314942390199296052397287378655827676143024239551442831014601064950022030216840105786845909550441255599477147110217838217781386291900214901289105947463823001996520375734750054343738228662145224383704469980553975373562935866234740099882999385856795949775925161254076704098199334796931055947475592293903845069225674772457724295394483586726070119143853609547347193017542428851342427256764419743005527685966428740947338931495050415637813458803601552013944528764004476060787763685795936996818895775957830842549649208899950566960164160798935953712591275971607541113104975599860025087787129858184556285974997185606095244374786414955789254470552211217486571378796532867530542327131886984863647351614269455513452461150245376732226856726555020515157164723777230529803876357937921169694978280207838167289228366890236027651254095189228309391665199588464892490313756583852553915946462113373614304912734370455125978886461453594496214875692537469498469842201872251164086073973458089866165040910325256704265029245652134727227230982483021990242370713831461002498825959072380127326410600113643791342045880396530611803424202758621754605797867840322834191198852545933621240148903332510136940606241141510619133935548186298935622844505957435924636507252079078405650180311010184537058064707899118917625326606344143924377239647399001997306969341977507243045664026551742325890612768032045209351281400374183270291832630120007539936323929967277926603785016458971535704758080138074952546092919682197892464191497123760660223345243137440136445590946108128405214035410217117091899367766197315306859204877967125439459060263727834606712458547501702546919612088685488888699517089583037638165515844877034610087013589078717161784985473415773606108446707850611215060112005173054603918413559655530153158612176747686843252387468035853178056761476945183581611686355132856773427203614275939893767587954845209806863157149644787441674664580323967080310332464419067642795317449117951729938943926368217160194527847476708050653162405452167222251652318075846329514161191248171569782761705163423314464770432347056935043225253029517727882691837964617604732363788339763310589520598295988459611682430624343370395563572093682235656802272853463536940457379062407041827614492789332198385802238658432091049478568910233759130601538693852031747035349715241214934707963057675861290058989452594172849184311872599363314992593629230176406060460622135490826641102684689950133150881919639838682354070065052175428318397610552849277937556755930251714095907521932222641130592265519464608962013447692363417624165370017207686759238313740427168335792258198658866676426110099091695826754291891682193964861484523257556307797376087200537810180050327997170990197134893824508560234385452378397433033286193586667948483245113804408241811590650830140663946345215698574462546471432709808473032981707920702979307144082473241009475798946326353300398277080720847765677043203531674158231873583559356769140844310749442729407907885044434668087801217184415838420411326170749206455139569534775889441803737049498121290384872355522457176694511639023625024427118138403166205561235931015869858961676438907276279094682574970712917358083241549445012273130127010703467540112206814019395636326653886288596509531666099167870423661948254636921165834131803022638359032021616556435472453200606833102852101857509924702358487952276866628869338716559009822052691722711037800112835027386857700457160945176438555443966644453469772328984194299054642875900987993857090354657885076251527852755938858622470276576853446643440068339658928683195945280678878323144204629899064243675329459466669659459269873636621077607250681905539037399672394951565590340059104819946448628621759179571348133878958606459404363832951507951827682397109639415397077631063362646224343543993567996624383470897179355966203462626666472127448356532290102925473448299928827599413120306717126399183064446026503682944736674361270864848670322685085524380452245995225923594132739310493195056135426831439031798062023854907141336413167878246933525557038718570514891008237004298234749152762223793755416617491176973312792638286768797486378174805059426303922148723961815610618810374855878389694385257725964494814667836715387825783180611225361837034631035008863081349786291704092168512732989154400673056538359415025673909778472410171178665683690407095832126135405462252428938335171177781460999285089231321459110780002691116881926881241999223202348230922280762116810646397116608419787871495590048331939240346087311120120661652778815691461628524711094323877849263132899167502124986385859903509503703933804429245400870362234433673810071305944125271257282399096221418384979244761937254403831676248773693207255435626486363190270267717686063374879049704949881614592131044600362869009503298141173419258567383633338617351984093498370461586572196938427111941721856085145105808027228287700879408422886516470762731405213482297832429929238123796297017859595408069991482286684061469892163195801145814623335896780998760698334683431530761595980328018903793100670996101781640458716163916821439889888065177859247830706775333653189604591304774391411246204393002518002635410152881513544573026348668369478740603104582914761927211289673534930567947912524883363895365381635489167321860194010484023283781875483488044544005406771306150810442750351828059521592942204141679894313335869753622572881306917724021820551012839668333308878381160861377790645555828110982278859751863759731072423290510582198596263390889606851643491750277124983163981121583427581972894184524608075170547563256826049563091045880109517095302487784168945727988431062152379891169028319743162843165587578976386409334752993298659679756510879001271868239835955562317443522945411800941676759538460689334953755870860993405782279237302766869652577129370669210788175423530390935570063954230008919948196454633264499191826937667999641684818340917155332844828248981602679740989789553583729879619929191823532983159586057274875743968008924874502240305988443920664465510400147358744543811540565179471203087670747857262656817508577082980257372850080901878501954335966267410126782787705866145958112073589284996839528791897916690894525923209908557261083262223522062999118184768292706660350073511043927990086697797246888151170822383181222085986554799672547058395820285808608419768609120680584677558758459711756810845477727612328291729672152066457268662503556027125128788801230901721993165757266711608443530765963205384438489844641601654502260637344787671164621834187479784753233842602056857227846712605295160058647668035411230671872633907816042412891888203357015834348098335918904558106018914551518887470138300055028287408865330075716391276840935519007571926611725200625182003498838892292569985202258801501839164382670996143613213291552131939948112142424368829730284302660064489065002292623586986637867875326163606738518246981236316611109949653510130362183408052831225622255082187630277123445647644330383097400165015846887149529581772521889109758752087488068827394576506102936491464009511071496041446819410871517277769752833447075084660653321193924832400326439709299623021884513941731029186798605187328137519241519650928711098648912741737424537414684028381994405060718712553901360019094919892204698753599253918947046677775426494660005225588396958074525851559215637218025216576822655229402202089458130983895686789324391296208311746100727041259456219816923555357099106536442115384863813704165587961226755680730521338930042284316521138938069820996598745898166810416186815897653133778140271253019445989254963812929613955971789432411958933312567833468450610133981535838223944987785891152630318249809996044653445252413944649715691081967795281536618168549244196610315894173124428843712636162333683420443800681779492054673413317251887162719604455476267068452101960352743256092211719330814979638377649896872407016004394785918866469868532674855335338793964520516609163497107093337645564716653647527698906546535017591176783480068554983341721300218320429153043240475706602553246265825492326678373526356132101960841884691146922121039077615238920819325574795612232525789209552510498815624030817799566110366881162258461769466856751981026811976760551976961977380506661454172145265146567858992336966555550307772173744812022739843365321243066978092798708701104131882710301520756821543380682885640595499730358212443512196285893706446619812917651488577927680509307904872148695458292279365767290597853055819260197510078897391108665776600127047844071910771998303129731494254539252601246504886781139030842754517698526041931025794318993931093201994190338089798577040972497488198617859883657782312718188320396587947435750185547727524728815812435799971391331559297236638969757998442226775265581229157797686577145294881389668516425246157316365010471169674598261592357574543293654994446701424355419771206726115700440904136221836645125604379328057473883671396928362450816526283730164496914509341483365135567554996644468681116758079243085629884391233139027396353080887268844318945405142068624969153321757897600236931059082664273231463621168074385384677567935891413156024116564823881105687184422497140565682370604844554709313133535729584186202508282133754036101637140035659405458438706949361651082413833988817861435462314264327070193885824818923651748568746824897782626141023186656292879083001604713741664664963671317211427037561457706287715253967582442614152449869524402005796579058921988572970932352884337490595113072285874617430798789552576904645346697439035851166429944836726186458047149585013223492272843249665660450041886379063137219287458997309066776969362911013392835429135367035330690811757904811269594131911930353239589438696700127738765044313334223074935870251210817144378470685770143262038128457618758418125798713047893234572780407205889283572520959871190118103477248193312902312678497606145673308598715396819178309394928118871924901302137659318281678579643997415077491890341355310024348022761517545560493664831171444641414396936498005700484641508736150247953976529968675207680343253795540049997017049435085411265251130452869872202642496067877614144271147272652241533851450006917199057087287591337179654471373508368586211629290257285568852693588657924556746513102863045947090080796962979309488247853097148363872297975025825420417398257391693415414415680267680378511108381397646967748579632382811558260728305636395511694956115554937199391095737675540373020207432946482721808141070597903030098971315125438100806177738251217214245011851525447560831595567654026100042983441266462089425550015842575940789034353039049985148375680089148953152907578198248361434564053213156958715848155713124130208414216661482954686805209075641100955125845510095262281206759477647911796008489800596165482917601541242535519108805553936669247114824703026379790988431921178948221834504340965398113357094102388235100968035413610959659732404235059292832183585737064732988344166356912460857223116434152887748514813312808521376800402054710660485171867549524637305166729490540798073035783291974866004316017245904839402865027311433319032406655396304481217134758338690394814878145841117872003533295125315875734979619291216784043287931409642258034356892809449354317906104492338965523791008543574980127611339578669119988427964774094083374209880107487670115316392554184242419327338448132910879920318062910576615722379688824584327709382173117539810070341213612087827830279704035001902018919767280828089360303416616403800097023777016267564342438595072946772578576895361295872666754649816741856309149410819140742330246527897947000080453634830534760092520395537465128354805837210764935000839960520155581208706067594177720877775606479493119876433924495657256001468749044679447190211385201669474768255168641774768992573106030334856399544644441692498398084439257808158109290628868907860414742710010708825160812067603721081741152108495220437402801552523774088357642900387068507935962366496403777292968661727080434290881641428256650584708409928312919870815542396055345475333299689381028334803656284869054976665645496505084189143470046089992571488480027248389176145093209155546251682318588466066301431550847952966332077769706268887023923532578633844401015496417200337997615005798346780415255791579959772030001915315489372484141307257084451142296623574666932555016088612281478462654496999057105886002790496013825430969240307356173948359582007220803073158938921700250299637456754654262396821840442155691733248307439337547140657715314231178589579374447378599437473052395899584876454394656761924258692387408010417024728775640176121135157078486099930505749821336866910328154396176074594339978573228201022624945536175733827889699518518041461536644233563835337134033193574298811549983956679349207803907723982701771289827743033594168449901574687590412013478590230842557293741605560610951527385779601424628550010274110435824373034491292821364720316996816439496328209213345318486362544949031900133448830740657991204872804108875177771717259908966637475121219027298205003228274592342532759587766241988223993460168716251644514552408801427846993786387867716783153042694169880876370542485811371839531758950862040450462393824453196330989054930093175166227353391125531328579656939382046287086480354773407231603603113004206296166263680139732061652634793029111535630420495877530283622678103365830239101000380968297142278573286856269991503155656381780634169229166333882289594420359600850799432476530627694530732680686469395494183356674959454225201846953164020797120175992177220985052229688717737937672677792333065730405824458571535102695227815220595714750846671716157712210773132735362731894023612135328729654037125323934481441395307480283095874072975240487300158173191468872053009671446835067638880766578426507861963669423770320854558857659459812669543948781712617389059030060844794717299539155509280383140833517727853655407925005918015065863163315693880253964556469045059966071912173977458600591970525043098561351704771997354141004556535206195047834064968021987200270517724279400877018790177583391352034286674178052631216771932121366974434301766214271475509677787105403689188297352383705511794635604800369803118129138630312203339370155286067514710817362446735522845500868172694973750324196044412071333617975846269528475901037893904040450104492480382196212959074784446276268039158139243953970901085746852190664239692897340583138956857483677959135732987666907075947599889185292681646848692656913685239618957970909972229742101109208700625165138221525541162929531216009385132762664671657004099250004840123880039380027899595779647769237418521372004018896284319594436834035996958537947318738852070017505476551036460287085952606607370184329648178312733104049513474945815143425351158453332056348892963501059473024593478659334323384883862972165583358122585136509998177368092619394093839616006248835179323090721090099273907338553628395437334257579604174203463982017572717247494338768557174908425286176470646286950954675108443151265484171067237655849302306718905055125823095304605819188705096060660852225784951646319176524401172205500820152012010639086780527286199603337247214062043202003376814790316107808281141016617944413341475322644127222587972263916305683434920583968611204197226732665220912679871371359986703745780820472900079470457476565076297024519478839601174170791626536948288344152457555234358947165885814812931407417644346671023990907608708653084551575790965276474056401829072440178638807804438640715718721394698830957975481118861699813353032712346282107287840059655295452661268681417839341024466517937221464308687740299155948953061571256484376432751885381327290453490521505984477104819311676200734186999183412494359975265662676700011856704692613282243797445214923633216562805564259832371308713171572322017109923029111979898033765637348431317555684375809829696827399632333347071064372504162609815857955788432358580050243206153198659607795253125392920074638753246673270494358566846655420129343862581949932767393699952262927817180219596315406986589156224583622913105235227712628097730707655225630990294071510602693650375113868907215674836785453390037680838454168489936897016311332112014179872666504117443290717643312492223518836994467675323279555449423073994103811717149287600863566158885502227599509600976994741904364983687317451188216125495744673868304882279317007062129952821293295351434738990556034077130961136521271160133920446964226667181346655877826348599435765268076851719551461215131166412699223664680384862787323784776091863289287670198404702612417445324407271505228000554558253839095831306318592103684894022503317158594594320302027426362786783394918346332215842568627367025567526951191494443773047990395420784070786331315169640615216879370654325676149463811857962223902409130128243331479211358490850991341734679106609053322711581964768567957216505073270600028244534383401140290247845508329918503200980299404177781080799711785968047662791826480180391170550962342484038035374970378932596935505726903074347830253031917701955483482571475170166736798411555920225263494048016006339025824484227620282455670688077091839800822067793036045441476587315705617256691559241827495307068308801267818287859685601601899594840406209408549344869808189514753721636811499058207194577488569079187285602501928271048953589219470973201506422163045818105737698153386846663050564698956178308332373770488661584825586087995091452208186146874724198510116500435389685406416248298399841244341715330152773035086370907306160440315206363487646252090296314167088957863814550646461458133116317189783800856299658279020259140572263177395784187389244848775960027596801698099258998491564264222865876094042826859392235237788000723101768854002717470113260130651253829165687414290245624450189731852420175812387736459453651551714690308798542262742462582176708866941564068343573328950464085081684659141509166715137729519440973003641622703271185443453834922696717925212692697116191467308230688636660696685589001489756772854698535736897137177899667082085161116351962685851306834938302640204945083026606077948935800496599169437468956341766426565634609261910614785713316144139112643901150989138410382918157076222166447123899502245486672103932281461329876164416380739367975817522414025322029757611054421161380866806878851230625702606982529936039475973759704169284204505209362390413513881019051931098350964102814523659143582151822643362997071469163813390474499212248848320442850005360606778301374309628470503377851768119918765871118170132472569847852140339307762954186511196846828999775830529228292229429696048933032407414309471818857890235895898661476108668422910814527314378940204204410738801374792421704741751935498490163021364688313416426116354549612278965301346429961793089324824572819866564375233215219891047591691623798872732486058589387660572331061392370905558478238249083312389254307128661159077205470923593838554764046846299275738691769703921963722635363182497125156895957732887445301702004512646431216358885332482132928875094211112814769451661309937551636581485617773070498938441561980487601542870479063230077232389939993218012123071379906725139357324295724315153027632179096781832038569471045692649600350695606841696322526844006006164129322727652448299956633291663945265297372379236102944807218910941669247353991911237355191378851151143677533123778472063274606834031547541877188896992755710704247316309583589305889053301698983025972237126989750429622939035081460736595836087690752275377400766383522055484647657157177271693581708386036739739661129399592378647419293526708160962210383769181769241356981137084048131820931111629798984157494926791916940009974826801331160087930248644404019810811072615642224172025892364759912613113796538651558656127406359550216090544330159459271415191923537480177859248351070645627183732366118541749909272519656224277424772937542430248490024474931440567655223534383029970437072995908869206334408037853838147336199274819117201180529537120326193478386235121220295726165043613359017841973305543834375584364486725798012086576844406352054559531697498749221045908557365183279665511621134202097653537632909240771910153111475287199170440243698558664637902611898710176787617788339623622183829605494743723858467929553956523661974073655814571772166502087180575802595717476664433114942958945219837328842911142123502350629370244205379030095427070097752202862829341997815665048280494382913451459053117744223628887639636471155794010451541253236514128653718680938158613975342277241487940669193211799219722537990274283427895549252394351718991694984537325298277702643272342733971573946899341872001768746343692391813961134210184765502993300117562285380852883423995128267642486898483341921507019112689277015203647999952285548553056357036078823183946475355910928059859421776443961980068154615493925960757486277708998340776722901798481142596101470209695731745433889422954900451994557812019991492787538983929678010644546996588863103144120466482413919330869464724946950983491642687361150127238402306970275478479637026198727501674615621948358637447921927090952180948662286534265715038353391730304425821585676469204900081034697433164020344409780544634497947832705833088804664872044858143231314335401980570442225460920222430251368240033942350666052242868918936002354987337387646352781166625363248004644909542711739491087791149878768599478571357410759382424241162701868037976295345696449135091467166499689251598918919895741970603705495693531516358591617492802139069608035818408476849504789048370207742620631328193249533484664260679515675308067585999356559863989932243878927564038317022592291130194357378057504058340548614114501983491694011891895623856859016440132338569945146908889686645180258998361129289511814055877716309047893833132017256435035246665804443675593584075492611920364111497592875819906155494102178841304307742534844157430821133891505267726291873812733272134406321812499828721052522521219766017834238340341035746666756261741303793102065645144481086532908485711554467716760537893692165044612790448281692320320880736659006473029092358758722878506481750497770727883430679559442786825276268992612227058722249269364636389333266232726120997549725532848974758045072060505507260340712479603604875542602489549192228324146328888508002506204446726764458423958086660755834475671024774552553795287757489173652285984748597571160523523069997701026059057798054496374727179053411095012739125913789141134572358058213793724973114057569565791553145139977717943194475621384141000841617946653538487751420255377311594736206930054924333579649329599122821048826790625679971120514204384626775197932990373694064198129873184263745955423296107451713033866720582177163682342433097898728221093988289399626311162479129719387544797291634920112950867072327307007279529150183711434253799452174302801552072206751802840879249070777638521077324180731315212930591628940660155026943544848184677979683665823265145440840342421955774792110306929681977820155105024584061997565213369475198414881375891250674664149273920167646727582668451131576598295751913432510647936787191220722529413580301811804839187816927000255526812910097481906603164544881392679808606854800840908596509867644254958726135408526518912514011394954192701694004062433354559499851338215843759067548403009646450196075484890313099395518817831656199671510604742991854084248762683557965412997801068513209981853959004896539075650848775466505443834018433473620276831210131755693895168657086284067473830233368646794777776467209295081385547537696170977522811001932564856704711319070495973468003064028235036745230668683766690593557679900807058133733287525108790676042100855150591750384099152429035012662078149840138155968816951476094115456429488049656570205434622216737023357888605538002405136386076946666252771324771479367838645608986471495909873916145559124476296018027167638921491195347030671908128237690237770439352204796556756261910122586405809317327853028200608701876825760117392981253174781507290912005796019483271141950563977412717172872684979721954064450871898005470807137719977625869943522562398968726849592901844477559298815118313783601804652791861613775001843105818893207859378692964204892157409183864840244268235687371699325788131039414130310977254442095688315830804602575066580173128362332863951630189573753835345508978908946321072968853016924225903673814306346291985608826784132542883296589486027383696791337773791525289379650274945233419285739693397806404601369357436232748329592715781501348517096599995735440035888703667080403886831737996600439650398708691004053632194826181846392042473171021325236474898984362853705652180149927581240813801404633452472592954872598192794082294891959740708136346570483637554058219725287265793503109416728647449782514639441225569954445747574932523163736047340590107858680333218346393875192454708134167513510540784579297034788851261293969915509479531731162402118802585878185080608521526075260661939194371958628150722034329195490015426323769880296700432188521330796403728521505820959278712331713873154709096174584497658235143060155919097579726485047481201804660395042813803923022257197465560424284958049096491335312623957218773431327679638601969911743840186139196060571597565424909922543132077028905876554852545416146505813649816466142481297314195529564129885964509571902976535990260726686991694812462743754058186676815167666202861214808866097780767146202262218571653203945505825678369727795091148020492694155958144186345243958928299980928340568556461435939629127314512117312010616677415006971831240045718794441982652117133978372864704631657636897498424050254424211001949545442967575345004329796202147484714201691926351362188635486002772871999991919805664686494312467229723999262442963737382941411078615902742258320088551216448210767476202371074507717644492006627984365363580008951466837422056632690388216318330542889753944948144298426107935933656515868613394308228226682048409932252486683244988847822926489433550733934497729432662012276762107717340317543846361132982798300764972775529091468581462384910853422716912381863965247678445785286379963389440080108352717595441272477084864027937641604562022755772237021925581046634090099757033415754917077649340165130037048705757416893708187318626447777017196986194240506404831738392043881261607185846655250157611135997111116298125914485376529870254176714448330292766621672261962080603832338790187770464955172803392317855669607911841159839745756818691216383254668132087091674477249689478335607003424985155155862138154103312301710985599811954902332474461002895705091982829891066572860512398963124343576072829821011877296142116090713358814848217153533382129650630920148871881194744265363502127017319131179108683043565495805192390927449246232019491273312415631828321816523691829292129763550075253206566729502979387961354701358236574323980703683111003521401864106905402080762948079408217318627393755316677057963049380990127180814646360390793804015307647167674322597672119152652497776344454231108936199562359570990950776733341630997299203541308932219830867296530489493985476154693062981961571124169108965895720943566807387971104488368086444220063389203222282903612289646161650418343115332709705499382098018673258025837039660712659076995179298511095498918253806961368424105045038860931490805973437170787198499672182518530110531806453501207060209568623676099229967436277955860756572550097000478364129606846393500774607702808546506409136470515932045943623994736611157030580540300208283367466914220631675631809240631371137719161505617327202874690398190625170819477632342792696980794021595727103333659449285486280391257432700368106057373914396320587566579193791910637813160239653604322635454215560849893869836164501244402147298001590262152026152002038437159652112717704922072670943189342372440869215655023493278908114460346850348189438942988020920144816415122235203353543174457831950112740582441367642807207169304943948949852863245705560945826840845368012501596200590283089517303782181098853597906810578033429752113344035005447861452778994745337934971628445554009845198664413730872013084582563143172369723761800941807907754907910465581430623131573825801802252254064796924648435394216781497868667461072788833016846356863796540116426994895298313414273136282725196136379318024798086966635587990254820009730129100551686731167707239054200577742588786872178201800090099848368794509007880244265774354534510048270994951211989932559713161958275579789095704956723116104710825125637828308774440680575611919192382538802101487384948151432398641898137695145789669487201645596311889934168634379752004264816303510802690267109085186625433204509165982424948450469111755175542093698121178064927797491358573064745984437862050308704072277894359658413897099474355616520010252811453270874003562671341978362517699373732146218153858080411242743688963457849765833376172159501146618116241866216419093033392240345479323603797998361354688275852542873678743357990982376229701518321603812611686130635005317771707922725523960470215586106631200275750616060743266553504383579167181086210113248301734002431016111159255015564018579805013837341437532484225533879422097224710923984290893879759128953283345878713966481512644164142896427813894789007179993703938347723777942408844953619409968392740091459481497140833129078891760743691632325909655079597360776451144133892002896428306110048288485624644063601958121165516440006784497022629171281928828037043579531844458841606286211157775297878847064282755105503600307384213145379348502363923685027256044992211669879142876197099048197931425913425582802771495108862649007063668584785656956536380829368872047896738416607762861648899463845634441514353555479060247740534465302175354824473239282254861996492186752027492698577883732120958951228455876607012991077264138101628571624151842766586607364508060449830916407231935333440387194173571126705770263828956150574078137895168214398874563159092529077481555865709147685868409375789445432584483061805572211135261487432782497993599146134220120370758994518966822312492199736163561605107729374030255463280074393449809711747674292295446408953659406140948633390488877492857272199202188949276680816183188364788339607141437713315579312311301245731946689856559324649275942714218259292387264720640916117644249644210067738910527573144566705845304883327033834489335807035027416700902326727767967768567308560992427899118785759866234053709786155312929920847866716502628214603356540236548734477372524664014978214365593542987949505585939370302202198839212719540341377685829851144574501854423931465148014584098763125668262192621204717300628651547113297872382745156869596477669320205312178981914893652801816200831024837273357681440067265591974465404755521837180320646790175899689773745856573497686073893170497951432778680159132769723501336606982966908291477681912951745890399632465174376567187658197552911626654897408626368144315828750137849903695302730038238886472106886239381952173009927274404320829916995262642538442878026498343493014687982686380959942835436448745517588060462693119718676063309349654193161127878280652154300827881482362264356478351541734889458010426924873801918170766486719582791606545055095333306410363615157507490079616412634394776478337717956150311504158912429678139248978508263832587562889914213634064184356232082286270325648788737628049236018712071379137408394251392953229139627823710599560045799228322817045833479318232012126901220098367209976143807376197322615505841115701219866014076766662807910596195868283527955147177464046699985659049574507025107189990274290809520119880546267662424103501800897450950683539673498485624093357194255778089797233221527103503935382573895350903629062383923440346745328863093114314646913757613560696566670791404239291371299528832652941113814479951770071264149921163120501682230473119303962601990309947484015707808066876795600683837980810608833935164057109439128303718120652773622966982399902719462799283678270001766790360770764638025117536481632059564652957227768317763302040375408793672953220464536268369764036957731759191930550627658272199630234486661877607864829981497656427617734043332475809285883732470513300007121314202486254467260377589107517287752408582684276128236505562197283336476498947805991681757592321261696698956318848624652810897546435285125660325976132912562310978196881725667925580311489716430928047595153424829357284777126051323518082367242734442780849125609535551765516628461166280419738538436047014520097176124765503499496164731360412296093777836418896557291886426598744419083881873250779694768920239863886044945968204033670952808733346011982382447361721764253342087281552814677851010456884070454551947229234035357762994791372130479062885880702519745562091682251031026113408732364095866707837873433759391638413637428318518244842452281232680685331008144024956480584237739055126957039604485937684498064209471094287046921299676830284216641711773054843144562297657752009278209142511275336599558734106588744202621702481981980743425459184840258811334265411069572549522716364477383159592346947731211912728802339582408376799896465445968340035067813561504515311230465493037975299401446590084587545401162589099919695654037480385408521531815855802773531486137949845660609988513967575205305446162776478119669235802411207163701171489401823980116631888225199693327585898800976465148231490756795256219046692178574581032105395372831590576179178901138379336494795790245316738061048713887365239736604961284848770971946288212966424131008432003245022139068438791222099744649846228961362314413701508694456423994071046937634270911774911671546220013923922679436729676300211220272427931082429315543229307683778745696693649320133653308810088006554689992148874643456493964162902411731838670499368865686155202807342287997177887638007544978002250114820102405602123088937429309569346167047194051823018066376098108570302613994142319947867421092556426636127497561067235208277641129980843971785491701960701160336468647777230948188121660313736665408068859244707999910042895073147607077642666466216658746324618893932498187323417946200558545122282776110019271031113637716596958676565666667550289524483174056882098080148181921108426464185378133072147892616965919399773704287441678130943264593861820129244960423213671992267781163306318265470236266512720769258580931167639424170374887519887616199328737462291255718412499530768627911809243163426819464409269874568417923574438933969135550815104688944173140004639194146122539604122013382520735011791874168704044681619166339095673973084763723226011698778590130874788420904388700077405588456655799627320772175920433293017362343678339214563642832241499319464606060227435538227338305282793291817573252034271986197718710275518236696167796525107657790974178408841141170272941202969169283457383675295410977729725141111638411807363483500443026612851857125367890122931375876164255719178350919528051800826888615088870758935854640385098345714585399438025790319332877673708877752052282554820940530002104253680019597264864454022786415030462815094560597894782494382958765596079886000202732426745467052580164424113614609376426850265114025045159604156576373680680092752832611996765230393142971797935392560093576280425139191185331804217507302070356649020205367725236123114313062209928056346650746352621235954275998572656306641692746679547912720841121042220035274336338461314316845014124846413939656052496744192329130806884967444353434290811769271550948570865934874582442021708483235890786837486969588365864039048888285434674773458441337903427151008400411053874521663351571930525250999675596899814095632851461904233525141681169250195760800867983260337844842159481169421787769019547090281510311080200234859588019733621263098472768052441683023567721964930668365566885554635959975512104953749468892756276100755554931161345129291802039592771703066591835256199137317240421553567748955809185245416524211022492862771426036882953520279449178995293054785534892756949737091684598712793034645676748699725709646312514715218225366787532098990726478233540836002147955888846173275400478704595327337612688550885536296001937935848508970659470402970483698966141782621238204426895386341500122060324624370927450760150709243844525463033774240967861072060504128962126293346906723421089033082255275410381131685840756198084431224442282160088264030024843064596288881472529387827505001208780063072496027233614519717471562713035047412459570206951867223669195139001658075971314210834102794133457757092076242342145712214183864708654822496616498324215301098542222992209964564350894249353748522446840574385909938824506765938998888613632796057593079393920989121857298278709454693511412816548333573505657347316476328715760016257955733756401075527797870761198966268737148741553469778630477034169327926722691411486968857030283288897760990903654724534845079909657387195263745064077433299302484084040482583790283825377201162537627109394603843883605808947686756671808443817597590150210360728268338710629717188130955553257570294167817666341183898721611611021346337783522006370888439196012879574166479430620358438975963436227308848576777340771462277883099973723784161393219960995946890690846486233242759515145307497206942704290411597596108057413936529287249961650330006246350552347741447129540591236824357995310768026284602042322056955578959948797290744040981109782030858096942981120466204554474754806148307760365696439623871871675857908956222586938610054403367277047440039460944402743159476066025876975716659537457013855399111660511654263279351584898798415164495860409642441485852257102581921540703515937262200312773886491310421547906193940758189750308518595496741324642503407042968122136292920533469828504357379255972701928679097381297950291018888259689153211123222103368158855616763054352512429782394239769044064338893432707544721590358749343220769602810633283667476763625984924416348076952112153423790694157800798615792360955867970724794434667855838598599966266871674079160356160907701386594048415944819739403643356130970994683112777994702910125600714126077087816795752588740703335576785615491319234100349781889507696152833005350261670509221632236087584044800331748274179943863080897376595151910360232119871531008833829716482516046174357977871247335913948357264167471920980699292483049178847788521118611541562916054683455306452425350198373628400787645330967823435447316075006230628727782698961045429183792193001542458168441701965580204226193521835573722530589425147059990784209187595831128960668815561063216293350269430653375144803576861029181432519946420187336956240749662515784641652988073790139389641465716618305299842390069330522257426919841247862655621447318446642748739285699871047971516303212967358520380263697918766587639946919334900078616483185677407069518738288017044621056362202586359138234348667244340738758873097076968504512757610528928863520898953822859824769098770676075220058883358388239268392179970771411791603542850422303199896386376422061570124892789290157923255996744105725096336749395048752067903397881267958897087115525197773804278715261789897878520298174008785144086712416270792453980141062969509777302901717823431707546847144517807442204592754252075133784582907042945208429164832841619517510361783837472949544004407372737755466967718560426119710302482691071341739532306748606613284087506003405174448174836670921282985244525428071137320381614629064112732715264280130943057293963349024288878675471410178793844747480560719920191781634068600373586330831724441144413515457806322792669522034402167154479970700221715185997867294398666107140141909365445120809877276293528747339971046343102784134432573799442830806879570581033823202070431997853255770126683034233790459059056738337867526669818885873569419146252972511341605326675646782659856836097725740762830392319979574936030740852461406506442703706030521929688504291390474016147646916820620619138223777464960418611668753754619498820511698744887437025968014620335581089419675272958399721196568866741232977636468690656399562877063135986539195096990916789133096846901812731405723180727281343704412990271103740543031083771253263877640492525616359054005473258480800286484423427063831926534827237966079526666914467700846417009813444570193873557500919429919607545642895040770621164529779313893364866558083170000034700182182038876518629858593650971885939315419588203710448249451002940172904970426572106775113624614894312703680673201216793598206599577552766960251892352164178971569139652503990892169213232575058834634810954207829444808060233763955560894936645982522579516320772313554030250991639569236841940610507268168082199115099344982345595665518191702769201653967408871651916316913834436211730787594951710315739752554686700344846203703588027359088933316830904493392469389259327033661200114728828825104245291174789958045534767472822739469135856941867530004725793901168764036983749804758026962595514162696862064249990152822092795284578119231340275645216525084284847687162928740941603174288596026809050310466020342880759394540342192466281936785963805627174105420019033611677314299815254391503841091567566590522014949358854436655096481221471899296479528502665809324523661209673196536216650140084971756209666264517646938257713466954955430788124401877334989061792382526585888640429836810777780930180998554320137332548157437402247277395761138879673075291294518692470416301535894667427063067816276229717616050650103565295185751212781708231556910053134609511235317455695066007447547993590562455308459264443605958469269391823038538295515506362005373477369624410746394247629648748592981898374121081384068037444818057779820363924621528561535558680469692187535040035665709279928854203158912747474516409090918029228504897105859814140312669447345491736764060675883412237534021046624766079261541450705799254170609231749668745755330291550136667957575225585685562482416176431248453990784238186413353360070096405290338887208812179590189044327928695596749064810821115703338732586845866837595044765501838330598836025867485970087081613740928058838812384114555222945226668037531469439850204178527580596466080220089092610867177961960083048581702997437966552881251935872653469191996246468132333531294711801834349593961980335285263638818660421156580021970281464083591264914132935490399095466061999786458897301633387679346318563994536940619648606822838642258160913555842517707572456898669208901918842903926523088034648031109657587972409860127558416325391425187786405459477689054589813921716007177491099896751841983492259969059764565208044052032980001199671419113841496463527394783070364141260809630015637203859941625755161443273598477558068755997342560396473449230836403409770466404947199984170237798569781883905952746463666250256376809649985585472791765157861324245618110739111966659399355005763073663853193412475760925298565079082998694961725489050132493004060416280711525169168990492360235264780461586989765342008419032457461424829520110156504174057122383795304707834363088796225634644686919718752943284877726065001570607231136192129565720815784832128195254079648279271308951271283994104553974526899053064571876509171546620445386672908504233775146335011502839070672167681309185142650012546399768806204611459071584314099335491255960969384727776121272448520013858076974570276890440881778556353913321987028511122636296700651359309479323836569805188492818658012926484419079719316200937269865021453322682604363298375443225285961337917713850431768356657497041293311227279179260749056636380772477642328632068196362557747147279873949997005813926379843277436825578027973785743305554904528833064599308154181409335082666819284027259859600180600543612877522757827636274953703418546640752286292940160649782741265979330647233907419908122395137550306319010528977077015732252235091886091865713830001871154155207753605398173879168420305828729673541235073313198195133908925755079624264971175812464961221264213438726775983030541524922282656286049923456233279883356813648852782648271669967913043071081508014247081223904551016711136287800599696479029872248279083565416975045850694160324565883513739996642155309692744409926752927823783632292841072596006309377635588961873703418459825131976405263303328376907580952884314160326164602935257083443112007813262185198044503373706904677503785262091258414609516664231873508415870063201167979021977245577752961237934843979574465939050040923366809789341625718913855409532295719383481572295613438805517060227472349645790476696786288971491481719177807504164252905494971239723540996296799793509043550296535537191972772332188432573351980283059928666872078331921096941503652471830229031770662776526004226224573497054092329031623858275714752913486091910470518824605896642731060845183495201405933434446516571291360778772017286559436304724109664405780187169661601763040938622857997223196491836244206968290561117452324640103569891614407235979516222427617105305812945123143520987150138356640114591649781649698084485517322484205388271537795023807517020437777716414670697214400201317546909913751059645536891102716512943211613971604659909739355428602179146279781459857697311285997689303535048764743845173559662921532519129244665809648756624069340191538218493237890894356389957671402160874015332562833369565198745371550474258274438952215700035467574972398978278001831199828926218327637648529801183515714998317397029071478815286871351309655306343521109637668197170537279413103659348970403476409654087008865985625735454959428424308521315822920574471834171664520648452068476234912215573957964911669881610963443099627485648671556396365258147717199376941547755349963766407297384392161863657664415157879057779869908499384023459418046119425860330042266783291834624259941014972399889723073563009011746081800164880136004850578795411355839300111856837474566555579541398742592290266725748067054475881473973087179471706481283222790788877711864678613068578905859041166140666741694998146338432991822271291052029652255585694768161594322761748214939721212286684094518236765515828563673692620437648734182034563349736005371494275360688530315668644181687846756624344118489288623973450351488818280350391697205558656590607222557145816314251069226950491178897295972433677640147958974106104537278515442920479804151116995168265687543610973208755805663169845998080147568641328694127171889012951133988651771415793583136783538983887584052699206699182424987571526418376335720584035324262533896085264732039949299786634063781232579881962593616492335212763248526178350037383576089350235543242981240135175028806577159895951555333719356671065101098889171173148860720951293236965479508728335022705387514596057965676918535718011285663060132850516760711982796241866763320529161496043061603673842147414503810916388459756181916390994078629975305232894759636241777199498120137651791711937306555632271476401151233004351442775654807924308784685436991573151348093387260205284788081184952681195165855984398499933102745425309348234703388784436716864220486393722995191739145369241998963697252937973132240626890368314939782404916933154673205007418196234991029176829607374297507265067424624156222549034869754863759460768852856897378729489685275234077254810976998425282408105863635632620622856415814139721889134595597417761274720436436235048113288994525170315041605912922953322242454416914162520149907647070229300119658258057874236214142845627798005275957932072696174340529871854908956725043976534262686344878213123258611347146735114798431772228263390147217468513560546229909128560300677626656886831283445798564670542431160924627878618862112988858024084961004669606785279961389777426787173525435105697726749579441120057919222240509604532577135621904289952243415176383155296748170592697298014701528389023991461303923484188350481987291016378793062349586064230776864543064702829713677242591297572125494408125049043755763715596381530523782930915848450998540596797156712925769344557987220586537088060290617977329816807844781576875361358172031087299539955057162123806587838433486163418070634658884661648467432481441968975112062272359464086649550094049708774755490264827998030094318841140552481998393812000237620432511691235513267318664596533177215309080707270331523499125726836236730397189169254823073801096018847572220690361130228906677185686100174287302427283690790180060289980674094234366162076921624085159332573077018202748099833763262526703120726925025469112119802031642887748361963591154676211381962295936177005150974303111194459255242328319860402174117285871444277165948693143004542900782455873804072173854639097392446693268924251027140255086171109340127092449304892750961654905870358524589051455490053740206671681462790242261452608072558494253119808636475488870803843038265975487926061840949079311996331765249820472601220582721370186420939647579938425887980499081652829463721178953832726472128078436244610322061150057880861911399038444961792041048720475370126517918823044082723301668895818125067464388301012320183237738071270979689790219563915820155235248458818755278002332604930304041617775862880693891237706236644763261491632823785375845798504259635913525313122406425951889660478484294447726776998677501129857188888247003425877540537974305952129281348818218010421769610368297080780736740108944264299104075343893247139294266085538304227618217944229111023843600259681110892434369466959152273058348821148054987733921852635251672065492583901232140900866406086969921868242146691931366556009306419990936508508841231598882541831311823782581912099616036246046484479118885076074412075192654655733015090269060279670492617251877134881569335767636046070150519869553151524757270399340135059111362457397842813974773395077120431135973513134997408034742357481864224455305716004752972479801868859858739690195266712858068400279143163383077408196274635935246005403786790968340470147651352661241939611356018643140424258619183873447624487605582613017557293131287131937072814253626307198875395094428608157982871215886353140641344736965197624745375731329312178018106078287453022172265561962521240330137593641359492013492377888052101202871679929577229697400638539823485881511186630027294629127348562794417465855966070587832277991060129335249914820262775222965780261754434100524804662214423641619428023449612042717783989222160061236816568385644810152958449963815627730368328795945384222840206848460162605774614126595549861426199875988756084219500034573478117292428433484495343265504451173627006552672886860671569680115285097751020839162147128210069478817260782589292832819451333586934924965264818051957263104382634558037495074600963638392553412653548244175292740603986277993701235759709889766822844519853976991050229322566019718656342888482943079793894382424705992621400294262703412698794521045108891161315561371142989590479138931544192599673846497413343871554967409865249449945210636845559302521321011402377230750442929248972124285895824416851731177987403922019268349545405901608210059042950199980597571027024253880677194638004164943061154702928860961101727430350471964705961307479440989162693005697578288381085795127440230637894516599431830923279450319695879901147368883322741505898916107047394037876059081610172535683548729388613801629924412578895546613647202041946128826063777491147568942230575901659383782297338393273823969310861602664000832316557654435489583783534214920528515226266017785727231501821948643279453677828287008422506177533395480826054150188461019055598265977618014220863125246539288417060362253301022280495388724782406090415181918856476950407457210770440918384786080925255394050585268167717412518663455111758623652907189141716682380864639651457938678270142583325328675430398337295961056619960071925514361472304006940997827943032475995939120421778879083273069380368534459518525784113671630454615130695412883674262127611488880551250020758220364652348421531454775275548108311380675322940497366749455508729303770043919267582856782646864123105087274815119448055453033542364305258537876630219683854910596280285001100893946814496550942317340264780112615080725446109684118043756904333434924750296308478313947346910981499397672876121286805389260095189486837808696138625713713219998343263823793985218224745638153074273239190013785649045881222278695684071277018031653389945726136650203936140365545139085717792696914044128454456148127181815932795685689281602896786249413311289097907853580182870633543006355757484516812206725947818524073680034005909064453956928570164124854778836208011506637463090104175960021056872277321099313911587006013672699898100751409652693450819572802169123409134859020886167611463640010883319105131113439261874265627929254951551201980706203854453453137339479818985347142294117243389433818991353131983021284015309606325391267713390329858457119740575920998360701847266295767626062168785434836865279526958213858650354728787380901417703430979532967641794066566547698160055094697444204647802593048909756155826053158434001729146226240810713817560769635268282620070798240027744899996909962564120734137827900672485009589807203508182176212895462957639825525034015707058111659716880662884749486899544631210716907975487251370572066102950061138252734029844409162554483909643804053659919140282128162479640245758554320532871030240243043001998974455314903527392463077980335312639232536168816041556698035982888859350271917014195533692384334387626703981215821903988823731203630937792662029804680288066260511072361979606577610919036474405520176361350769765393384735105853813062131134005559694329547072848790230781516530581253348180179227561732216090119753054057748220168814564698175971068718177290932264714148007372284444886838322982332117437094696942065801151313093839192545806748728547666369306498848926473489165645350718601308231365919599704154474127141419223390833011854232271974733868941312071399685434146742575637785751845579969367661698240267707865397441319277386548456695931752084900381630536789545351917634162840169985722209042603714581963309572733338930342072832886111571243733482434135209288351447589908069843162078233430014587661964178075563551337471996370285012612197672452751933801279909337525747108739758457820773116194567515679249196058531987241567114931554053541669125336007397108633201723160615252105549380446638393817512049554772747784119603774746714611252126603578182491474697642071672648544230593630525075136571613995087863105922438026443032837054548884580101234459302832045100888192304478684275934682159912862755421045548179114485280942212929106968796658046736001342603550997426795064929533836144013923627382264696660217473319725994364636928396970873930339070186859884180831020873866531325142817830884402549922951226953388102741327019359701005284278549280314131249841564599609070672652454619267475904358190029511446310584252497241251643964556519809303922926996218091410335690050320654369735629751034139716035950029461031170609846036903147860407677287093322133233369080352696218585446892868787366321781586543385424973520654284655568763106755440488789077005803566850959002573499945011895586666998110535365577132986804429924251054041248090732785692698872164209478351714686358458226230839742455530616448180277932267616384624109712572846283956484911175600450756395859495682994729299043099641880205297675741705919954417861600269673235176822062848224929278188423821792118695182552305299259171831800183443438293981445879315810371728790521845621280214579719469646169037887991714558041731260545359053765071105786868329729806486400071476861760546521696351631452514769332267060220373486674551171351847037609298865282165734826080049807831702087961668739250285329984152301904860418926258827596046252521495133217203506140423654933952820440168973088713972139700590237401187839029954264721365026906955451763967685606080527466894980689149472704104551789812441086475001688695692274190494469300834756216100289400655242064777122457834344744874848402335737337011993380140845812091388879355264078482285645453484435881447908843284852716291777066995725202351474648670886124342254610158521230441099327874185457673259134665792488393250095634091351322234910038467699258120496270070224063477446686364701118548546810407846440475109960247926921561725650484240031092759787536555263138863586657882653053706462253670017141096869015281581881674001533333720656434932198891345172666534614993340752416920319986227681710620150039179266294311420236558515352183376366676684257173527077806961794898815705108028633381120869783086702097220368134557274039948183702786562016885510370929779303070042046913609554207447097728770789749724713107619674878067055466471548750077328526239064743447968498046359886215898814882590438189719596976261579704149042771648445799120354545252468694769506137365053702076073644953497968174438967300588383381607714501972576189726349292644302327466252631660356746482329757702451621250911908963514581244444152462911792519037047601737117818636875947491196546513418131574700657582468845051752702133236125547275435109711665404880727764748275014913734875942844215647650392306567295212505003726657253629990097919993323387699686975867812614882882842753682982641256786827649093654734011669802910615157526901448507449588385054655326736007216313904760341850275315852783106322168911055536735253291102435921561283154376085572892896161109032995916172597900641222063592142589353281623979500139226390741830457569663543405002865233716203204534919003208700363967235808598472380274460301696134090298786147099923224942749403269144442681730541510986154089836962096653172820548038101398779648207395803890650140867992188754225713352670561175043855335766472463461191097956624006295220174023638557002909955067757804624050875429830204499832551206736972380177345518430345928634130145623650331515594764014725433001141057145915712421653258242492134229801973029492857727095656463792059720242994340098077118973048703411792129744636302952443705858281079452237364185904059860008745713225230811445418795654889553560294782727171583496626414662774659354959991694163857400141561680771301155658406124563447976888608292978946080674468136751051161453464432618176882323428598058624926890936051866378289688154122195550050683408086650928760486951023613947896151495471753203924956640417593112857649173648695538312803688879542066075717366518129816400023387873943503601867044620232440786890806902660926957259195588573112303508554180967249003494391682872367089799632010553376807380020416351542831508653961299076676546373322691906990455508559723400112327215478922957912792059401465928131003717558693392458227858412850796992323487191527183241312351552792433182394619329023191814432618188756295261516216388739732453972371652916333713442923569605048720339591078621854427340852671285296375817771905479427499483655067648281311776746647783795636068435992145493334418822473662691879995131706181380401675306662781931925971869403045470614065976126332852947101740163751795966075911725368718266599636724754699492523229148182667003699199857320198816402981873161616996510989953366431496267928701406304991208556987852385321250984560523143098363503787338383319129709144945833824944009743291541893643401019514408371593288594221590472984050289972944262960039698427663520088934602597377192006256250835596712361901942070421990658040572242356970128433347687800394406076225171350846626138184236801791261149223227348427409837850829630270283362383112776003176270073348841246640174600822011601622335213696718540805556764529925413318670171090134233035930004717959095320762042561594482856194324269849004835528407974768789725012742054987297659143592607625315756650530909453261468609363128192057288432594071684762581323619826972141047298990734164118801072909689535599152917642601048068658874677449070325944812865125952415635700816065911359320876785801760726998673795129674568096189731749527258350439665247371311166161898634069879186212818983160936655244877878831269565248116160319239331321468192239702803954492820801604796065489970726871489110615019957789819539534491777817500039758219911049936131310402362954264679081637726016592428838977111234021801003541174682751249544571591684186427186913712129345433298782384215834668971972916563878887163621333118809663697500202572875527410949996936196633571691739434375341180967480958145469359450539735873139825244100855671351676067979148074163645136212648080414421536348938360141688757087971796914182555487539898864879125175616304127865889088330356560726544318390675776253282176468368375851117526120097157935889378585399840753589491823895875631097088751795668202066401729553581056186281122157189770932029033732641981737032216931843734895465528052783207050459597599845103897558161811301881116521269675619079879000119614979240303930017200854624453735750593181454151936827380216788456269868593078546339630579634998732380757388086589290301979671042908603336785733840135900760910525691873127230900602550543069436312151685507131984058587204406797037293976377260118194920266963430880901250026968244475944635197302997800001916934719488514491832153232888286116092723327267003959435483597381952949214272132354891916359444242862561561630956450503151674942711676879593016457413686597312503036236859514769520532396348171886441918812801231847324116947602156841552465800536785733571677351062107359683604971422773993812962526324723000895107536709719406105325369770616349048462255552486175720490885195832341230967963498205606474009828112321241417966066108752703264866121229609873953867395211011735705038699107934953824957689671032098356884329417248696972231887768634560788710353415278468513453057378928452876501208309877038964791161004215350020480885802057274464445140230905561216447022883492268462809363697766406696552405998002002373423581766111352056509635696105735403261458110673978744294361755969311360987032110588403219921037255430015196775138749283227211249393113701509831733869716996082651366316440263453813678402877155874836296176702079941864203167633193535077098774328628274924377776403427460994389126305540316423847311952763813445017608104050984886339275495732338113481092243354015234201761484562723894812669048521907842155582063507862874994461294546672187477660863483117234006133255959121950672099461373263219518988950240728194390540163282278812783910893754071266313035512158813968087439369311621227870036199594502399502908705269261187430016164469415324336742512085301085908295144404771401859647139712506262377290285346854565178094989439340013552808247842277447808247531629262502546877840420453701851435962147231043667349434746896438293485860615101416971329363561552001441690031853582946179952884379976915912353243376938108632948831583657646924818370293547731780234177917376611501922922856993686156687750997930028827043256003397604979763308177160781895011781082595147724998099495742196174153122873780259137586378943128674685901462703249254630061340819608911088412393103170244431332459986050517446660122358487656409850276037756504654244676799714458149806508907056359190384475547244483464832170750841377387584021005452655481018603696155704648838628448575967777801509036359881169836155761226730714436010280523415449157459007331499286407761707400673483358996876617231495907920247743438578517830165562676104105951918419601037935500655724031249335461013611424992620973709164455904149834310603071412254411766002440892452380123336763845761857712569290084531088537550354557254343504197771075106427815861294089780555188618686136274853420365089525072254806934509652683982058726336057933991573371230014914734927901032428906485012111619234765622803573002676767951539141392973860651205942252974015745478089737113251232433777608408220622324041531757466490704595607722745901961743681157864929265234915040379075074704116896543674224666342126673199247004174087481790417876206327714585190727271787365789259275523324337314874589280247026441504414376448830185520194332287127829857863685839033799373696212098801067877209467898193951112608045420190095083923709250232924098923988629535815318011828209243521046388118869922514276623756865475970036424184251623689052140486725484980714192658419007647435007332348343749798497634769060836078813641823769225698734812732861691810628549255690829050236936268447274760531650244275449692158667570144923073342731161896408917806988879509307137668401536918996457651936933913304615957161822343266740673555414066770105163971533935996858304593890582363587373363779517422057651560701293712036182184041010657036993298267314405600852779849611367992105513397262048331447717531631437663372411912241886276897526059267156950315963944377443248548598832077832709164939994373898707640679895914870445557931680661126791792838796965595991455974821616390375315856446292421899991715419326630670769858466878862929336885414548555585797487844227716638561681162872789561232793376978300435432360740248555710699655166176355220093007851595539265634998285724107065540571832557267462264739635177061776573395673749764615514415679572359187905883829456033457864813077093974499277436991959438669808045280459685824772330786513613713751081422099419913918990009352755305511977524740208167380330958087100402360871215112061894532394575628075161177312322455629838897353943822564539192668861247024149708899437772761848522083814622478928076194337803737128159265532994524449630028241855584649288305564774463516660936886058905784099062143586885466055290029092090814592818208133487965290278545730738662260845936168309664319912976937049030854380873895373714500544507897606368892557058464305783561389905151531959822827325387284690651410340091151336373145228305627592320403540667482186826676417601743917844015243258285122617819983322496388379132570773851226191651535369965058102315621133788127610682572964225749633502665730033704762942430819673881904298578746317029570814627961165726556979079938571216124122205151584852842688962808052825543820632596869320914906202118487941955383590371846889116004148472754994481950744092638204371088440602885421863776201000127296492930565163723712679302484644781713133290630934863682736989282485553021581407225718323088168237321468115160233442027116110200896448300524799622830956901517069110464476995916429629125599176548070110907343793864864840439466615350711111542358732881065613190714208284579105194717292560505332221155754784575515804577616729120336947084936621897521515701986914813381980999953649081209704707788380288974232154570948865598106486051503607239341066979781522576443658142747355627803903648681745640413508022995948298437035435562874286324444494775395132812710827666370915080127734435312337209006536686846421022508921586346994916040098889767254841437561314989498357335635343301466844087381263863023233183364167307451057537073003898842421911079710338660680959529705461231264907697972075711712273120621313050611244092617467313054370954976664179820634018097472777678447633391132472615673958290693330106950538890943639174558650097034555470528188798795108322551516593783218506910077775058440730424936055329552863193541635186685786188720710367891213675234793176606654501775072033151079377885376548348522179022669551600506018328068761591239794127107001769591849905979198070216983791940932807349380659720724689736317927900561078881100116262174700298871095530742664834408068494767602734745590216802764381261946259433083829110972964658551202513183027129292738125340524324874061005403924661411620128657683511906605125004693122819771207587969576944998582650195131163980466639533169656015872751703359946785452404719697853640781191437266373931230134111062035659156187462583992337710091992451177426345846146602444156615932826472280170435261528491816754607037075781300313632763127929361448724731058552572015237210825499263528412244390439277150399367219566542321533898449242710739586454149785204103360337221775640755913234425245068824765519084327099448329505389912990764567732638784822678143671284415688548533214858250172288161355730383688952907494163522581602161709720192610174784531255770725394445300803613755330033823238741770600101497467013786272797242008399250579303943192034934212515401051137162482407740137166522362692564290585184930416994444155066100581659024750371505555029080300648603074417491598154121142777923621674696518015397974247071543988079789509605057045748984292501486309779220751382152260328640995842432469768322254218952634429006391447795038555830866484804863378180637932667953159652673150081241566199893281052693452732247639099757646896307133779994348748023738010581974832987677575942783339586963834254529008995978743999170340465297882306590461373957341234213924591787391801203178621436097856221124409100896533460805964040863498846790074445404707802645511889103121626924825474565418161921493281235329827289812000929022433082261505561668921579876142457218994941725150171344595060613682563417394012135297241801806450534264106015863851672732635354505332120421202402772521128013109686691036951145288599292147589793051559095247561064913676596256144249331946724285283121845960928943116470451995095110385865772266880957764037537661338269058375282587037581636780936305239865103905683727849414690054996011395679844686428525440798047465919124217492562601454227305454083801373095432030804225367560869830233066710415417359094640942920320359579890434171948615890510846580712478204152533079837019704326496487056483097516316337110241180297779346092245660321147572172181829330546772527998397200865221137389493971456947676641263653181921073619139395905428435807237694589414988429033522664357623999489313093689213912173613650278330198154987534060715924316342980099322913396234185280783784321227628232917850611090258286396525566585769673170157116325661515121901885363659710190182360620783318200283523161528894919089607274182836075703127124865721713128741948612370492562822013996235951412383392186418486136689935103294894107991879975450123535416743325440835812388734610336373615230079799011589875868433233560165493591237293848734278271205958006427699072746763911027715090059354972295024570885809203385394581175633425556149491317310465140870650419942910526311266809182540789266014273577167962775440263332421617321686848188987047234725859150517640716149135443814173187910875620980665875215674384852134716394186390694573474059345683246710257160874445207079375697878365356465351040318054356581495293895106628469410223420812386515525422431256310397980700349374313620076522022489493936245132054881393261317302832487726040300124824098136515679122440441506155545763298877633503015016298936469733101793989357054724734172831211125130916949520339368196431623228186028501258882914385291232967198487629992484557669065576798410806145556419795752018947689007337374587968947964941474438214926744801606803130243010559803616121042904366752269176913441848048065059361022710413303721405861199910732133303193719122189656341180002195652797365494629362629928147553618870625080895060678831148843781774813384538912385575607781464863865955508096027612813846689958301101021616017563226282642069476104109949801594180616491892703208949392628399490152752423576861811179114404307861642974114774497403684619164588189551222943845039256427187677606035946321596353299904676374774813599865993348665451783961121314667974085225510005636794552866611984574299566682678684089180727087456183007889294183371365630926544964261032146881046127994113458205776023361066748316533027306084017139277571636582031495857798849864049016021665083723617729216798284882854561334931705499462380310478711235289123678932963554689639490052289283550048495550133877291238092220458887679445757053613377941552589647006522851746996504373351909709909885500832075038862575023829487099195952442034381274139971940739176773787009177084871759126690832552889176956225629450973025764631979184409661145697236440337818933002487662385506220902482700828851934612797534332328591405733907918807894943903386264454038163838261515707365732522403085067982292718073939540412311078802862120435256609844844452899080804743470463145196977096129718807913487646060275570077618691648490018669110885434721880994307597619489842648978006157622622388082434540149569390268143191988502369969990833350957017358360245591566316699542960056910355185310106634816219622532015322774351279604663057606298330035140148105898178877508369803066548805412556409146524274551062064406166957120463835389146005669506601915262273714276691269497841013346195994445218342078802426784554629005119735343147537080547391265611196238999650254400165623768342971062125603263066934083111332339593717023896424361545435390995795002248848460147348209722900506604043347688054808116095167857786709701539978286608079953777813166311268646669606435650676192712111309814861031254157521458204706017244677061845181420364876008871117649246989880342460355977237918284386169989653036955941628993959292156037197042932647216719422362556462527901342027225845857038146763015593986867899646574780091739768623101641793719423258433372265389426439006041162932629005016175128270274384195078868345602362709623214943113203262703543037973374894497263256635323564953476923175865333636285085455384420052807628367646258370873366997505526392286076157214306439581146550763616762277194183962818102550551826360828722800853792601866362374458118980294032486576400736718950373388610297403182341411152089501485752674449595947882441128242376375683617704801190523313453764353980429303898517706849584724334456103803384411729374103903255438545108681286177292639753630441939682426774544428130680312047739102073383545040721217274391644978509508175459635810322652686446458069707975221875194852964164854353631150663389918465639092658248742321722166432830156274139453676817280966500131569408933773768005201754026501224823663939150381138535216671845868245535291565091844004115216089336918694329595521907213718247388152373668284693195886365220259454148013394743178973389959499405636741911561819510328468053844766646626700368052087471228336386492919154263086671701860950843691374485548751041480393245633562610365678268378518740899358569592426999877230112579061752799486088264308956224848509633633422334399568219745787495995541840743700682404092381901941790912765281135561929241697887922112720009885453402214506868337080921853211064843880456191526364514199743466439027638592861696582564013051685953315650645913976502501584173082200824008732854039229250605219449193368607365402829541924838575232027169627643426398296667116244957073636103332111720990313832619093502925609811118900195123358634359429535594056010506713554516297330293691709519759042045733175211485559172572088907870630576644804129820559682551168040390049513295117251257153583957460256266586800018943460500596218727338298927030784559490272226757147418830265660435527050071069771882560459393501081234404992820221246060922725218595943148617081992835190414477966573297011139015977181366554760578073942538015853393880048767711886889145904474761920666522686141470768290381600756650126831624368882945551684764288670247273147859246610829944274448976277066058934939845091073206976392966263757546219565429839275034091956150769073097915369268741111911063929683521208748860922639784834870622916456664305282450469750959688802218837435089083849422255830608381899111604738383692773200138388721705254323063670267281618006836503743572332837627458479617044535097012494357461137219634177270991932596483214218635440882201371873805647184882182922273931757369227890856783032341393873596377056864075721887475322541991579991256767498857248816668602749932203433421210017848334743276744362939128792202712575598507469061483798336284178579517615738210671739902588321535855831712819466694787489122510480065058050581348192966694504661704245765006706819235371402853969481603997303186283855646832364343825078179634262352585229512405067765916138215120680231111744541306526251185832514391633325763296608358672994425446538981070875937824289121808136237133858380682691511299000133596296975554713547575140399402434937880801869027142313326327888151917562014194068766927329440548650857450660932686009446237671710490376186509242118001265616282388730491515121703732114239427513494724031237718111248839473120651531387248662912694040879754077594985503985112917280947833773684577206738749242008112959442337970629705842359929243076903372006921709152834715209881827418269292582785392208854067051462831411576893020232812003074012262793274042451200579682823030802228475535328288767576233152701125060332293708511724176752465020616317554235679844566600865643705526212786608985090697306341586329461414973242568480940075330715405003254579538429873462313752765381428313853266711070735777805233154446296647192830093436599999024217335512280832192101991333902669331941940723609706826099927291908766085554386018852885037752142769095848915683750923538061293686849492171194020749646311972441331936039440278887841396238414906439013596842929531315982697225063304625205160323374439963405938609928395735056102488082423811714811444826826137167608423100109112062004213473894857402703902637339820603974664227322750183160929972721558472328937257556009364048737432859267097392740967822553729532598724192754202388738551917711297073952999226318570773015992344445175406265737822023823312895649936794736176729152288663241341616002391566347588564672947795907405243763802426514178847318479264230011045140325686702795276774138481668169222726578385056019828780158103274784016710508687378559959791268333360013744981824679778622005767980294972646192890199146880144156469982531111161304670387610835216839428552437471502293345390272079940328320303557839134508037190805796025332757710730704107015596072052362052335524775643534600984193379156889840670298350532243243998316214950713186944092170644556207589613037699171414213066508521300011600454107265444357454387117884961574594387358631090731078837073581406143983652056345873518005775796512660275333101592674611595383494656939936910972555533646562942729713776817533804635575088844850490254977622586068553758415135210720307115532096436739736587195915077766800884510846311097205807842235349137645472680140365369563702286927562311006840928879425773310614564295321875464638919183893860139888218221910781378940862426012282524349907869831783607933617288375482536886020776070323366309531909157481188031687968138338086514673373119986361194190458509575109015494868561273229270474078630649767456228598658412329504675011212716540502429181540095950720456494396867582065948214112651196801672659624481783940622885127623050082022707336463641233267630503685112155243242004423762852617314592597217435247788905446339883372875279295662205681927030411412136066124464091117601132299625472418406295300597260128056650802364424950628625421089862808760156736826294067538219059555298249043448006843516994822967039423386275660552809961072399772730526675928265137815036102438484983466489509677025017830660743594119914338283173415324211050218322536332900519683970305616288215418173851687343165760469821184983776876292846661522141577441940989847829559090885505002463873552646558400112756224669100170073474794969739988714450807981182400323284549903568472901180398690263317067064596339511360966865886929307236921083781341876116809046664130353922967100827412193719974419531553592029624463101492854079946356418352840178097216359322866688104334555706663462754355784309543086424840123207071776557301270332572841124676559063541980101443591305433881352386676306441858206386627636311318445598501140472790965527318767088251025677877605205119885764952078391154124317533427412904877733449063919895200581648222109889664798283678762751235021019426592468701981830646495218681806185289992440656683286133477696007234353986875129041931729281829419897804369138992331239387451165493452412912139229149660057838476352913887329480235667465989150113449971428156598920993621005050998071322169456112946874282043438245985690450851863551995194529199405431501571895439480859459800455972750296348575422538461490437551537101056320916224178424756971521753624561258497299329056395732472409005618935073189325443385379494786087173503004567262480091688226645275147723373616290749649277047585828894966422359123980006644903365109445089302458872480834786387016754361018840617495243430684121615366992420329370757994599597340797003110241362911897462591692075996063765888428576519319227622764771609655247391183763890982823501641998488753286203444132320529079610036434557218389247018306993716037334082022575543039475537080636339192135253562880007273256780368216083492568646899661770300012259943518470216593251950449238514738453550171590350345322594768864692898924206009866466029103727135851649173525053409820062601807208942063544148551672485863418546202893657059760864096325990393673247383409492435347298700415339786713899139744705216025589312975056713290872056636872100498750586750672192438530942338063744277951740433343504303055276163192841358458213911200987058072285917857501695528494976721999509366345725664665241393075923624478205181832984033845840557069748843306987062435562938674730606363030935861273510094990933102543593061419769416260975444452842929365358413941823058328597454073877656323748998581856068362299111041136376993412987701184939565833398878666081116237147029589908625160166839724171145208247684289078164557820500823437570572967688576968157322992818923975736708028278141150436507036954829532179452658651876152791950956592239622173852132680136904264433333832760361429311883877925395847171713557198068937406774202803508729841926091721156038361778004369943546875156549557571192526985747663561740992834847853239849918944840414059705401850821912051887192883310326536265871930745858717143044482669033203624946025032998660239338414238729210882967989483387807109801578561580198686404904543963983690587401910621405457051663315597004034097985092446206945802363630588892148610377774555670437138758185643854520951060367869524169387410036559479462801257225649036934623374017513113070761485343621464159632637244437772295450064266351683209830779519441713910485486269258487001815714209929232964009795852096786143598435817281755216652104326494014394370912580551958078838452998456565234954340984579707655505584742995503314125474445217899294532247172997472863883494757449556154872527267069729974068802686134602395003869030504228962933088935122029844018156283089897999504247144747671270924994376297089728887018663937393176550020836725944638236026068537523612177651697708193111333067022367234436502053902025715265498142855829889412664453845652719708391920414987788701688318496821870289943495865468021063825717188096893467348665994536821867620345232425670234710860797787190169005260464126119724672596407000652477906039829316707734061773859996326518204747554368345707249900666987179088428565008317188166284623602959328116430966941319595461437745969745458957707527202025257254623595637469554750631001320064194363779026286314505009559753560506397749941682624175584817695552377837598064254070560760036035076151579381063810124653544074441807838287797823042908517034832271254934997295747343319051910359495742627863767244216485839858205596721619775513988902538068238799072952237705573274047287089127871049468328056785574338910228169285681135572733395174274526973548309507875650624964751630535487675190452643379214348806807011734379929010297328415003310442945140347361217704861398492521136759079976374814568435748018708269226013299164395533586626837795149676127272316228882770018127463072641175272825828585859718228069681211691646144723900761114112350535056796851284867721997495128591338874382884815798184557727710833199485767314900460512903622508890071956392973976659702703815438626999240193392699579928157241951944180530063061500573916200247826352381365490747413161075141917144441309568106090605068199501897195803442119981785922523433720472384721788208973970426828019379430871754859500594446170725400703424521789548311031480033923665486760042215018807102124776878475435807159140173576329619430415863218671397866427454884497792734074783241934616293905879668375166827267407993670387146812786066469316912424855778842633142691947872385501072216985952657341245250917267898504027945254441371992798132971546987930322714172280037440247671908223864192110382276273379142134487486635646682300288424727773059626087861545773964753152608841808940599903568468093687436469675055261789222284971205732920306544667211953112531064600003335264978789805872940178955116207447456808138392452622509992121114326067700825836792290617646942730371114767822678249754828057969737383333454544431302740948261589033021681829173764339193063969917665191468247662934414580625640602529123242495285380576763519263394756705069809743948766691741607111730805481920438912930743232631409517481262271138464432436552898382529492038182143697482362688223224256231993145642429536612957912090704587595814735011579830355003801991045439650942497464493294282281661596108599224799222772354103358441623116127668816293356961543476023596498534845614557121295036343903875981910957283395453549007456588425174396282839797250438894952530112290551871388778514771284219281749228692906595724628949646436599464070423997996572378592419907204691273311329892736847424739231208003837298401294496368079959739455159972372253505966370753372331270081604763537619661933708520909663265107680197140741100862238259894128025618995513383720660043445544998563230642084016182204321252143000872365188880206515558480011683124172482151083456914839274959877142705070945046805384666102390537233688411225603257363119389415846487034155309432846895331528119392311405395173356427342705038674336727593332790408458587312322685236560310522332635549395861330442645247502434765114609312781974784493598742117432992712498895533909982343215638982080451830687819469756468436253914334182897769413162460135168192318849667734782556832924617477683952498286291815164755630533400691535299489228079388512212688829619109052031052302639485661980853327435351513239594261410991875276831029567535756531710108392731004933476463550265239618736045685722878047471388700699672577248366573891771975727297400948227929273406879937723328643749574549189635204613560085135086013079513553095543759351712859067380319209668542163731968704764342877176793424738716229085428977776511431457329878998418658293915784304424032447954262929428570927553855986163603668087652150609461060384837745658714843177331889056319586526898874230319654302836143242644070656906443851389487160463831258217146691368708160937486265275215099695481933352655261326731891943060649617286045878143600739348124513161315988837869630892467367798071643894592392298113042976038451321296801133328785919296725815009272816401414566919524921370371155516961564075962340102413148649215180449361498269489806854576111620573537545905625373755986385405838110645265538261989022772434783452040485536090729711728857859900853415478199732196027868940752119511725480720306359953598296741371308547520752149987256325977298559433635580163882715332912318528083046845920072708110216922233376237634857412362570447592466056777535095559404490496604906623227032102224971535299851277490587742426362290218393476069249586105260291961745745128638792111785385926778293455308050944034892961440906452008277444217870528703194499309158258354225585446393563064597807152325206654999324687561046970230362999422501091919806323988798964731070841888863659733787207345849224758285598198927901378066043578775871191153652993568040169006928949430654772661929979821140313577911380207670640091435807785169225075100083532189339937491391965086076946360110560618473594314395370756795900904639890232498907535609357401601277495709317069577049384770888366397741175660862856723501860930779716974340992317727718060735321221281112405012932804156940306441435411057257359129522182619623282955644062410538679928068438386539699586583036229538271440234355781579816003964992750352733037935194706596925816391678677457544122839504999784519555335507798494521925720558993986558824603066921149716300902634875180157592368434745794255078092701544483400625555949913847728250474810993780289027010405516872052924517007034958965001489720288595792481902094736691472421798756812094774945131778266138055076074138851785690528245725394536232294998128826052831610116232745208516677293829490564894689676646512082953918698483706774743975113191303172422170963236566136052165389369772044225617250461741908442706013483998294900157969945032228438000218917820675729854390252434288741445059325122567067353508199967162743732068429040152089050315442094205825264133795122404280518231499995883902006806574794429738983039662113473836417600769554395534104774291306869668311100584709107603097530929746559287005794852219306426014691311385683257192590374257558105305073419282238237936299941101306061837872086664726502188298198805330112178056088105360693349913952805647776828531133794081799998518500257579243241456888076212991770461447712323589867430530771275531018041249417999765259465777852817286254962557406354717203300526802159166504590427824187858964165901681443322595016440106892653233208452758367204027432102742010982335748457162899437717533936160726484642834654248504399951173326869698282629654912548971602783565105255254518821938222121152283723319422508132764927934328952504036718151338427016102001824980612515685474455324922277761958989476761947250804545384052985044996461686533466097065527320380875862619172935330892529485795438630311028854563188203944226901647002246198166670188848176525309153762822956854408089458515031270891928623435939424827896612803335545890303311981348011839642442377320793198845091245002691449563620587356506228012330768332575089164988137225752835663549500972213075784394656688148895017611142198094572977132042608178629331823373996583018663808794052158571244271871469855864526177079745628827517363105135198342555203988652463286516828768271927444401509112675877854401542257424516614728721406281772518949263732455288333285622455775009691829120653517430342328063095428765805170733050841675006642946109670710641829640447845887145530854712905991804776844816311622795146563581834103555410688210713584887620953916640036478408572666070338652300804449832660406260269697815239991131295176781973715865934528772497917831748567542067738972055679119044266907703652028936043124168831225452057773489428763153507411178173307970536235412891015885819115886812404186808543397481602827917875858294050859808591781150649635149525783262210659990180924009331460191489141458674689521113412655418050031988363823874394206994784374099080277943748012235006121647369113378258488206145879542459669363722229473863932284949835802352658080171453967937562520288235723830592203365062841906030818994291381290241270288580649801633069119626025495001131800626502126510880879811965030543683804087532899741058976295703309814635778760767013723093623030236200174620062516699571956673620752193948321291841944485001771138884075568690270859659659264848074002305305262272184360777809938239582515372940488511105987489545465233984020485606477150177680062415946424584613988732072899153330543184494686497211931237326027997439744174986908146376586167853174165599961259689244219033660003143920928570864212425454962898345406448989731116167266203428300199134219603852485241697428320579004903127470893803990433187557875698038370718854638731200607340406129905835850616813706151890564717853380100779757662008840280973777898793290158234686552675829407694916353461489887825259363784980475840055979015410733364299866363860540485054389195986011576878138208262487767532465552415051477615547940336919906036782208445362018717846727590706504305626213978651926256193173401142931935329020537200457635768431614589859180082173667045712748383572444403187135213940754991588174923237567424518848750447906613415171997176481267512464573586744180523735143108097850967683968389250853711768691203604298212017075523404133472836530426859790651401852354540141675772568202387123340593109468101901345266594986715501403950937144903438102213318805876250019462698067055013315531581849065084533335779106480476720037139849721744964577987000780911576614481040138992060891688324224670349805056232079806753968054167160634924592139048546051032299533800730075701062231611483743580324660737329472472680156409215710612674563817733216384068509710925778123752253671018979793248579119902043920581513117045358143555714718924321360358740613822317151958683504895142724758560462866667579341815079774605386279246049619462274248325474079066750812618576859815593487810672548572849786946617756090006936920085403548907389303007612340161157603213988200786067409216482844056692264738372060529997503753191711861262078583706687409902520334087747739022901695275266179988306941465360731831981188595653462316973765619893268495993302737918917405641966742513873897697402128369178430235186637500050004879764693798890968193018699185329370699803313535016925746603336397870571441835869778464414782404757666273592733177615050620563616618803432764536007896353825769486162433238019076563469521617913935385279787970069661044248320232499617242901321565575247676079041173489414875747923288784475458449686990233758424190053427629750224606256850482492937407710026978608520723180210870556728882216935200754284342960795045204211956399258679381046862741742098064112120291444344392463624677562382009015456592363224850050923671078531811579365276469548712295941608447193141581984240739530408461830390576337570759094250793799077858550560917507678211721025656267986585268254524788849246550072933891046125588221898652254449272593305370957858977695555450046224666393965146326918165558123935406135168647630628572810117706216347827874787723024477802668599660828706308691005318248489939907282364279061947771170831778341308530624800042252844680642205936841569415057482141649342659256998292304433903853863576207656080847316449367915147194936953415251354461266467638909530302435159321438056832178660528154849687759819554110664241473783646214634658839859553456997618398606701612120490982090598134377214671940856233528948426802114419758482614458988125220912307305568702262172688938427134775307605812749000764895164731982213325799591286782699335463519416229989241809033147226904675694560950586152154522336135050273006780788391966989567227729128239271417144537968786118592855790628677878774407035911742174129962755175053316036416137799773041175896699558501438644988049728686946298608016274743298482648405297173896302951199388044111838331192608048943748758317333988071639595682783889838583967758701799784393682180214489992370113311807742043145231186836235119179532605263047859097169898212453349887085988787467818784919657053199322856553026566624918721122001877428092025469268615894769888401234220792973109800905761822419898525633881427914820502626328095601304536186309464546674169546465130796243439198136971011701563311293853753669824881674314876940976501311531659934633649917722361369295592920892113690785441297939082303253302493433623260554540613800615255435552985910844351760953134040895921383022538580497836694982459636234023463520778855582850702193171833932417177172090402767873088030874030923295570497439984223553641810457835250176383194777464032939853108436223278272221048853946594579425653185282853614476709144142941523602550025709793704311517734573556015709909921449138752349398349352826967454214346475816905839911433401075037307282358441007961853961903393957598904340951246755621563506219401763836736101858214327491069887457788430372185285276167551618414428081358512969762715973907427015257020012208600331164324962394313927811762127477724321544671519267792369666254797252092363163866577310873983277593914074663828774044013490914863468413130574306019801399727808531012371485048950452536326875068339544618344703294712474922596071401715403547277722391735780799257271547367192227985067227846893983049638063690356021992608307415619579137156762058828893212209030734332961223075388427443827742080224842349718736121090750269755411410850087896631866961656060287066783631831797750192691787038376052462258278772211928628116896309515835550230436173376964986956818681518919408404326286328334704845589235898727832959119355880457991080158411629571323694075527503732874484389487960730165309480006258915474416844832593028773033778175685314909997508114093611757782996782337623436748099476471271264230070952214625590180589351914185538701345291687676127175304216979516054761216071478308227589472760911739795436303640752622863183958555290225191757631019832630818682447849802303431850372291931900413263598719907144963747122691689605173801170655270825902882114801409489872251806407829375239054088753114295112338427606881100386374824869213043609727508624819599574625890601283997490322769092199437465250684647331306098448748165231170283377249788177109378752657012277856571482566487809995863177842777853580322443018229945046522332965580494840421225405999353144112639524657439745967739703070931050253482910227319367444860827367738402762330632793583555653024586169848181038330542417562863104520517564889242952276456289736060050398260630361742730856342952636049157575808679472457741366907937929732478320579628463472415675694456233937529025187387438523932089969252994245164743083971217128308385498520012807976806192712773370709902530815126054581965868268738172339299089620225430894911933817030836956156806050325816617786104008934585007031134846493250647898032890754966512465771375141667991344674199271115162011847756136575477292175641656830058370301287278446570253066342429584056765078151753294758053510082186174857553566623911024872667558006618576011334814152136607467508141342836971386727075414127225443711060214627232337128826386262831923865865318532054082015445276265194047203196551828338322162441670143264570121257640977349235976612251891175684119391190628386471701186582188451316043786897800237719673728230400083685610089157426354424569532491986099684485048321056353851878528695338548371514583613574749053990757945363943566253480942158617674841976858138898181569742911696518830375233653305906164036015361008836580493760282079131013882380413617747273986356385982470862836571959595673855456079536897335160212287318184460005237661456927802392323677431478630634571122757652973228653113629033669432368768840027918326892591076182080730242844479291868552805753548239248154891643643329686882742602153402772442649783227456890686169401399172035518173176317760220155189753540181173433814180395497124817948046955193152252301941150218207925179788355721175104973533070930978562902310417985540602423672748835795941755530781076503537944987664794773429778238223031781740970731741084665125505528938686830692035586052015893558040184509448044043561825675391774993569794783026434101261955161369114690905184548605111614147273159228580525974450277211734115347155328967736304985134686360473506500848310348066328788780068956729800002874325809179022027451737893480411858393728408423132714015166992057752137438747101411993797870408240891529862884643434697467045596424816032174259767744558700677240075332707658897466542241196774774483262757859613414669328307721400075683494981861851377027363806522327236092586919264614386518218037140233487494844630162583922011663235344722516604744088850714942760778761871352391379317657310657873843209384509155405046653471493880780610183982281094562223308849566699760810999970065578397554681820096334176030204309799217943600340079385738781397835420963305172820709883175980964288656983656380168657273706341906099918055024497435924565741559671160756678775777825983455284143689253526102020469567370122814264829168516562500161018954632806799159654422680079649301748915587478731667904060405096920005490828333445566512072632951281185248973918674549256933007794462044621428379707007912252274629256657817564497195898365355395062936096461757657430314880888161034276948935249685938286496951508068231752049515776097067878962993982553993226789055496251745615347054028578860720561724464268901508297517740355195706953358530982912584979625543694594217449767619151734834850385853557834513940763672098793543820973934519961140383267349721659553688647469338371855002601108408290167494184619544255878232583511484180186380739504254010852573960382809276322143642963107405385259829454857583885670266492357402926390015915925430630872357066049462362980183020202617140616565208419085790952674469283587241314488615721711193867811109588081184274514787863540167023509794815610320936812119894471514027883739585783610478581948118511508377891221766294222032742059712982493955848169993599621052092993078989127117206453881490549004160706688732734265832970115463846825747251464939448395038030807610193047156119980458392700164473269110845235972342099424017512695614635559760634531840439431407547794446924763931839853872730943250613843942772579104339109884503634189423498088185638354403742784182406910924892009735132642404265329297532825532569335682755917393422469841132416907249877262989666228448651330959053602956585691078008656658243445956340252428577797148612784257535340688724771765463300004523634210612091986355570079456259827225639938813358746296209105944557486611569059078959451911202655453939067431249756164550932175427883406553214729692842018261574143246977576569261611005122885773377931159348644329413475258250055369309460637622829155092037435021833147506852653626011913495774170858302329001981170485777976366450816293940362577449404436010313538363888816570423169498922005250946449512840209988668506475594763360832210981909814071441922222772875224829850445045486563549098920083180123290460248099543111422662527910803870667696285205903539794494941515350197129985485441021620561785725605736529911220617460306652452842486508783719960503318018877241682861239501517871106178992594697877232012439990506346559138369219787090080530826846269775594538093092573996929216893667042911089118442281299842641650871644466520870623612515558157525540128801785451634841457641052767842646724721017513224548527883235110310988637162124763344039049479533177469836130142330157601818224322463104945997124817003873047374472758178388726873447098976513340934799990302054069031006115275611017181438872319838012328778763428490641756187491504033231183446208310920361934170722223973559666239151714841314876228630589927002242713192331532691423421870913770891008837614161495816403062680636285355254217068319029621033733268965874328713943818551933197736347329070383497685307904535310939786780138668599711848810561111855371973416524240221577855659738855048943098247208773639112989846878613233963135962723705196402334073729401870519655739673420079795801420014354059667962342727154489472607222336629562639213899291314231559574674001669441505472956051217695190795300446075539100277750971662442546762679987563816015265060651341019139173473442600732210047797370884447875373052154071790244960782949656269391487675939745878131775333873495341018755147381862737364123545453422107858967783743639836444819348360361932372165828185627942430939342847946860347009782551022581712985704754269055908146465276620302029576495801199099805910355639467448972828291740786047250131096563129561714109398293039592771132525065710381005722902051719002611405950410214589432471070076405626304432938615753832547188138857914809065255432205976895916701729217862560061573179227012996142807235905609084330021975289399343168285824725063346894991216165619751190260437866766207742153165078564727683112373306446974745400023377837468711320352012309613403641830034850800334990414831950519584670841146722713039033427906922439513088422827601502856165244052097441598250954453506340844370196271912768307393653619920339107319565066262067321128401472035210279738352639394212381224297268869300669802856981228434656713157681189439415734111888277477849530602146875363633242105624808267403682995716146337411527663168225329207627710680423620848608949043493740578871168841111788701439796611110767948718248946967233110916851308975389246102821427241635508902524103598403200121915146091520523044615153090154822627159980858322711242612875545550826139231864728448649450642787997669672776692895409825452980379245245511797090581606814345807367719262493718225762259912216061117869139642600033550241212170981221653845864877277249638992048682840827028377377443312196455675545748220467940020225533580028993456681955475004166109267977568614050517389637808853811039162578009102066280997369617425244954831660120738128407847459758372872338078875244384491337557839269789291999031979522375037951617843219106064486513606783436295996809643927500298456031154964301182296530911159212287686929099641278983303827494818064997048164881212986057801743323814321209329911069111140808002393051665747074421546791549083468439215351664029532044429318528060763185769239474826954523878220035809053502234483382408238122520867238644530607435865998220849636276159356477735866774102229556434170757175813695687727662448504641793817145660836949286710342949338247407934828406099600453027738361192057941564104710747145837627093074480883720462403801970776446069498057568635965847570709796034271928145875827229687047301098900335077622637048859138002532256983990074338574129190515391804725648621916823081782783259447940489632008559379213510076508875165845942842022615087666250058163457349858227734766796151246690063342404094043730238180170823658861551570543835826740324346539837802547480239151950052518214501346339172786312121483386778582519641047399305418224413646609072984289143249122848448831881646533228530215572104217945132954308443146823916156013845645558475140407001945252878766520399467633460647972403547797125462789131229386632266148929677565824588758010111783158373467229373330560635623227875892451230394350269580727676322548664442976374941567363017418844602195955316603023379292205472415045469245821558153763832186403831442279193798231762731832887868380999855199003930991413441440191179356748639696977435728819683436995271477225772687945319293987780714909960059983527651359099654838316359294605851102582064105114233667325149645523823470514926525881965768236732228335311903561967836460826179556020114815611197992861323653881059742019867611295804947028978020557302094162804943289637162848583219244067794813832578839375193099742581164311987324643903847586124979811278892201623062584578114669023142648971039222082520870316943027243569600245700654202096744793705720017495317228325895198687962425928745940454413362798384107490454985767028473816991074383435203783645231605494760393421845348921502026447123941950535530971911110992711057686956480488390518958326590777177542300455381552400492829734242867012599313589243626199210368583228951099552668305789078507538428047520542071504251990329081408259935424717322225597489670192697237602769143980092288024201878564236999949939214136886341674176322859300260140703703319820626311141154687348678458843098184427741627364109413546540814565166605425433349181327768319428962044351585445821114983323890589594035240606050980973011714194470975958114361819574788311237441002200108586110332231109462161977539830593507148926522476903875405404141466615561080481341178973006082152238104353364476095958347754158586748345550160587307439953304732520339380558365160622372989488511712488111480559130896239317942617753565672943656186846090284137715615662887967847857945553429369062289192214467885052779363630103434060649064169294387923702362358223500834169658167247674130161210254096714176484547160985955638615498385235793944616063882817003590987080113200055152105017205010500472582858742016335142704780226827260120088636571557816925064802872998215088754680568459491433524083384727224675492370073599883862440087426345310464426617667171457953566067491585287996414271721243696903464558608276924059665567146824915127241775246117558736987185519048003425159995233059885766792229911464317409039469816920824113812422708496749640135248686467614771618665144069097517558074798374620519569850916632911623687684020209374400421864034642819189099843136693445905414422899845666271316648785745602322648525490355702253332794481515383782696984098539553424443749912126764127895363262979687036706314820882197550181445221315031245866472933816389769728628656940646225319941421516460477181271080569035132864867572760875921891351569029467475953353558049213685638091213941804598806377351189481065812663996743687960616959047479654649348996014855233269638786326206662934095086555212802488384602523253128009655547708352175508218987609890223297416989265110212939741969809738971275621857818818317713338662508485403157635942745674238869693487340296662045678510500375881341730436630781301646320779403170482927729515439646754842934691295133025891595458832414065946017479519145590406712753930563354541553139760403447155140397460569705871581848047002784944936632111472188463137440431691019199006278374318183785019672422980177231599592115914201682338773493722440188497166690484259817742416032083533120407356706999992744785538423205517145349099851868284184587410404815232384460562984924194487829955787139703799367723003633237570828388456138286092861058901503979834161621221280184135273379993831789423570987153193754970577154329895608298666311113582222443840456378860847937292881188558280869216171441801165160891410012992551006517717090796740575547656861345577316453132545439131764113078422556833304979122674052494574366327235497352246917050254489519827532402644287839249871736288243313275097379381025642070556548507001738421687986898408039273177875891789110510714747857418480428878034200513438636231505263307965047455157571223693599435113035660731008223791551783040996650817638406064871721773369338911809699497993824949585426179016284669187504302330590106274825756087265347441889717824964649962478062810903733609784127917814242492786087299051666239008531765326962946206218783697939822391042490013382009736210979159214111973331551120242374644898138401173465411020617888604594144081162792269399831195686982029252043075756300101545556892640502678272497231438431089289768945444223209097122556461148314802119015679730171480406339247926748827818368195001364427881912701233088891373118159237911741708122744000892310715143431414804979736815853227798417381371859066752079279362385537808733352037606610733836005218547981421781600345894419657690209082619998152669265209601567392390539706432249399652601207613292041252999535062737367290094812553673014880068538394983650252150322705488222279469277302088178192251155896024506066178060297021867656143299597451112273625843759285197761542172545380845099466614896812125031753328520180155459367174688657401626247785232092609085356196980337069494253913803272837589173151288789323970048561416646168160510451402461502911427404144451573725654097507695610321264887992223085328923099326414969647861879147527919536166211032558914322851588504437967887170357699038342032086225161701276636294548061407854036790747327943930820551707953782521548625272591049616883926969123428963616460259106556190626728623201617720866033947721380915005368636727851377311946641244819664751707190516064758388761152441195062168100567609001935248138972893667607602464871496675790467527708733792521207264573279457437970233623367758662258803207010824423994015713149393337941633714791114382873934070923065419890341604209261884689756964996910164334450072896837837850012226404412837602274300661304079451162319434103921792404560696975784513345991229458459816692847362694062766323536194067832696997810260299412942481427648738396789334615889492037990163609647878699614909553645000701876454882298145173073582701827401618430567016881345735708528571286215579723852509249238536508570284575348061813799158380298129482783941032513561526826163535015726748027920998077531023889751573742436751527771435427444069867327392308102763839947515861106755869403989123136354569293621045286121764307668384826079752728641961164774833027227835903408173336719796884213951661438884394281527764444508365855123611028194069424005674383419266381378874912457120832281048699659499356161301681778634783547081385524178177149301895702017315273524270794951418587713060156449589792283871483484729937230858439571164396701300192324019993444257756879403720357528362228239176729911605298100515337841016002833841050651228305569199453015694355356863355760725252537653787490566182780657648196512055719918333000834603465318260113116010976332018701986441205879341377080707873865092195303442088053424694304732019955160517680401942118152995509530796441779430029478005194141020853028025369743023522949305781826419108260866948086398642778498604884262917932569001322078980554757803025366658937730365528518492867126964877725603668889240027096888227103623319789415683595519546505763408761071435953530218502114937920857171323919958298028592708127714715222080742572794998861422519904839256834568406196878781033915843756627060818243954170385727676320182688439922711431344471812797320328540736206461617015210977205884644142726224503718169825770436561391154408124963490983284944699581024858737735746957942732345251243777723301551184644687844558408055644229526082872191821303598027843497693255644436624082219328521689836480350134775747755556835455481397350866898682790527598536800883282424349765408388601052452937815990626699824544269122295380195183292673995184160516172805203887191489462573810063696522326359553650548639849352381697823155113205452051870296019120065085940746869614135945319298646073724054313593379087578364299232579429953384996548746145990938834446753402236390158484988741383198797598722244743912640392659479302088494961548097745979869459838300864674754854173169423919280738464311978635718463237308763549686030303594657873333044412173092649778003567611675250993598832923978686295826544675186612365607601952397823772752094318455803782506704830205230509794721121639140229341231778799752430106637595495120761988435600819040867179621569418403740472411942482186181586463981358856499245590691195585763505808247065853111629678666883122825594609426698604025430077247737896069510911802813291607309059545447382281573119722065402034799340711711866523396662828177500582063292427987266748993994466646200039194716254931048709497348654193254814062359192997842022166370910966922255362564207730255097494200953199571272903871598584022232063833276922819095293398405482480044100574512929957530748123849539643741088629624878155797685398405052515742808853187663294351577003331187014966186563801664068614573066739326369693312471575924719884621909011969392708374969120708067788269065116872141826770740120928683040250610666860526510234598118473898769232231458774250278125018752855690196536848647188929268544000026278963593404039811920868261406100103980135882418349826933516407618622325004354939631584857492612191262469186975006519469774819171508168558748878585198497581968982866808597261954698510888334204617273189488346306430693729772624938024123670062616281074602748019943381609678259176731691001834217787176180678517090196761712620711319695151141083070497492617925232237194010271210097851164892096840469861338707328915929964965762326355544496183685393736239677318667163340077279290580286882045430813637717481694860895529394455128689526264787141059266999544192816797667600972884516565745854604770967011906895222176396053475851272861208594137063296568131145353970009544544149978323883108503152970045336834359586047353346243360978869405826197606895867429551600806657845183186730589934723949444921436529178271285809433710475989637442227870969155700203912360688308899707089961426185879264379321252343719595221687880697407868412482981591262962571710747581685157861572187222488258920604971203148557621287381239595045778324958354889077719775434166450574408641290077641363316416454884024528642845745793626900560020402216609215417598128707476623094368021334470214482460189910990277077757705469658053138251492332904808647337344554078586871130292286400727703431988573055201107177082296594993531039993135988598710929693879454546827140139609534188979798573142435500566837993121240139815573479531984224875589826089867580642095807478080304524105459320207766863113344391076780276992318193921906036094624967824507754582487013465837226804407636716923749271609457659637181897928409738819858079289687533286616763133396189088757564442095409334772676955188507459422361414453375984212768026757084947504929707503195798038180726473428294874968626302915811118113665127771340830438368803501703506856744837625853202798649999952547291957241483048058067848833761655188114850662955326746831258630578415459855737059825116563946150115796856276304633616739321179497074194794149751567490162738418945505418444452980702641376468091893835466917789628854546121529238842314176210589459452914650322402449194961004907502687528652805871585803085467341098814435263218181837001016648475820356759787180811754276271920125785361192698748961756158996399297402297221639163562171555228011258014848187292808610140295207081144599354753215410783909726472053908867621140036089617303203832743772573872657107016158163590489335861863596255092852089261802496576871043030020229192450838555554298639488218046723632456700437605282937114686489921831054029980962516054152736575580414861407194673628760929741615438836137380008696628928799948483108074868503823267816432636110018996713977749631941653872101906530308234884164681067177362855934722087117709913361562643190616586959279954179340000969418906793194155755913142445957412920585665886893728272497067592419351573331845376740980065083382982999143266118226522409797872971397595819748566284813954199583988850213202643961247168594109110017229901590757507404962973269366653494956660157822575232885973156619955768818728643420650627810884337203882086368196181918105359268547547545149406142234924368898440814020685418306844581091123374665951935574808710628532601455182817525316968328616967319863457682754409842136180007251621571070580048650163642171775657984907025466532312054914630339511279775000123911353492220478093713867864637691535063848584005695495016717199265254866450804519335624956617269165658766138212529177722827949600456183160576510520994169386762610046369256032806598113654665050922633868222088043683123820997214831984580045072808534930410801821885389136514791006051594636728501630357405243876154679644117561332284246518548893772998462116569106145184024252318953656792781462453921785507657747702330470140984533386870442318571219405552090761426908826815110401566550824744378218291633960457043516342172458964409680190428803461865880960025979532492090414718510757238314139769257313069908912254714022615975203316797757078410495190713235233805276664235048023041508919897691691876612855686221348148058608856636178235427398213509335833567522986733835654776846817131182841829770692794449255083914417990982517613504776145258480669451607993942516916778543791237700219133022343240232433399207400597516385027729585727877871475340096889040073892196577080551506876723656711699345568691018279693340705744246888558717214802729007553995883634700327281901673014047459157187961672373329120977038223886427613021677444777533778909426671323315142116100255696501753039491046730941261868000269279990714484667085881130820298973473651492429964253561148568967316174382936745606582803589090473383426192911496896098600159168349462714127303340400515155454445362530249442730772225820819157060791415306821158783083805497708826281088821368498074520408803321265854409151230597318173323444273491887299309051552061054197984069590688059256673832513361103312176228876947974627940356054908761652213148444441397297100418158638641345799568925674628113535358387703851127574463340283555193928763458641403749140636091663906185647132839541977443437509805255700507389789370096754787651073595396736385634676663072249689034240369264484402593112724838104147213448474542399699129774236310408673990483648951024358483880032518032533263738165219765821954346227920427085705451438724290415546681928708672434333157662477124615286127830778239358296538099332747453619275653772861702961109022901961759850130850420512744719778816545939023933662155712287093026030826691337163983491881625164413337537418474678489694358998077303032782476716695250451271175091070829462343599489567055101079618076498635628826953543825528088448222854094345237786679639852717229624157428223281404747725477643915584519360508626180221504553883651572429351956194077581970230438463061767359338304408131209626903499399641505747059133623674954035160775274934311673089313507699822785313422009570264452966801365001778611465284147414965424909544244802402171076837945727726086712423111430924209635176158827136569908365679308817086460714976221759349206061745414106147261977578723658793078145923008651007255682973223220273642183558081751333647684528071289336578671627423223196743574174880650225039152479672621953773345619927154213932926748471617387362456675177776079163632726857257015332550394513450040430446887289129942346423691810462641612546928745336244055129599021233502757862810073065776640114403327343733777756796941218821326705439756824886910288689909929906647362451001446560669581948039354035602453240472185496657370139355255651732240434523772859156066904942351352723986913749643219095139576215798648896007702944018145365854229955840172220372848467688319077329467124455663674305277117614855670099604154613084793591705150524495497812024645931433005588675258970291769790341600350758110561902419805028889776199697785762250664528287465416172538084155856734606309567670498313111239108939785375593835356468566472527554091844425929965987545464616878977554925744780572996318984742289534781345182148005321209738280144521536903883476211567218025803895538397869803704987413454429661340710799927273254070813645571914272318525132590690878424014450131802357264590551833018798958416376368064582677662366489676368839373726487943372660636956456645937778476228311496926223898413935459293144886051811615693372418948984988196680784682315814698229182919049007143219005194771978420776537417964386253010656590785798073501838892248855041191275251340807987644571683769097422728171299581153457531036895410415461030434232418770273194055846980069591916734375679106757542579926063709314457738605769456789678576033794468983665907820881048518417263394758521906282219602538022769849628789164990409783407645893002252427552345548975225301226597533327199924974430286473300000845855542338519051678050935626324861766417537991704732611070329694771830170939362705988561839343254935210938181470293249947797276771872053886617356927086377919545694295973357827099768179207435598553312612644620423009014334194560436979649631947912297796399692866502001217845626657449662169072674244710314023568146357532939789413184425571038131862113842393317857637610653079409708460991681812502064279900686995409538732247673747428389708865649968627678721935714772165123120629377845967051280075289756480359373540105751737744542061642028932955935055221109769689565900883432166273175205348801130394642422088302859340020604461883959038843392567246388539692557724660358941905482940947783157143912368790477595231683526875000387932043331624532649519751565866950167260805258443361158316462352370040408199618328571871069355957556773164639171704843098118807679574911779448622775010692203491066105221119982551499387000789365859552823546535535516055569017754529206862241607334340847418903689047900707231866250723910457919372215345582577742259210530325508293173195537589514034660716790735291553029000947843624674111132704803794344138973668801613766905462238401263884727682010351540918027476829116606114884571874673030244686774944584737343739266216210158112356711561315451636013006385120279676755108237367767691235965788561688890694948270558645352760549733638337728584272073805028192022765690531530470571005527177655929762355431875503861829593797431787162322534289391526997672947273998693831288756286642940418079182272569852207853169660280955365861206847791232708970282639194357966423027635712381739516149484161818239445182239238418075872951848642040986430419075801330932319542843540523067547664707432108439147029538939980531052854251623326589398745017203126060547947194204997593414808863894311960519250732969315853732634659589708982310207580777382628183503971358004008894382259118391538933890631173601851349371838488872326425338316537764660144265111915898801478552712587560274570525420981454632613537501204192128849882640521969467579548542041572524534763237086878413578911896800963982251227861966595120245726641388726698816775378003696444718694615860029218095865125119484807135903834198323318180261417697914985641146493634763213836458273687516263750067734283651279175275594847796846051144366792200520815044662114169521595185228501490352666307248846119344992776368403259699592126164681078343973879414678962669361875922796845303632506605078059978077708995192886422624679190067398201591565764897148565531029748072222855226943361506422119541884332017915931213544251212219367445837492291599240389359074935700904445305421385951867269050737683710380864040402792879042362420243837127969074601320118823858439654321660596617674629259393653587024897989535043970101808625972464291166780755243191009171027047951856262683550648069184348433498542090263693495043001274853231384655553342516172825817391131927189860432436070505566229978193515100945691030275593974650999254711819178404669563339613324515296247933558609242396875303626301422341419105499165366182957198900806699149078768987410931160066099659173544601881998059513031705022435398811798135159312645055065905714239829694665017011372264520142535825685461995779767174419531665328741806414001020618968110201889031687636987471649839023009895302095155397483674919916381593663073182944235362615661897231282875327334450080072856735934636525161631244723222186581788466236829087734152514293851244898525388007860797430549038445323205109019332462007981188748237676221329601438204046464933119367702705830564163574833341477937525147205576258034804374732325873298368101954053352231499982926617398312840929089095070202484098026737197497378388639215615103462965120783322454175027467217204753736555096856889833368280584436005531471918271580121568970227704375413443771762477403039742013992908205034065893469949640616575538339681025211428351287148343986071036561267451582526039820017339561803397975445384472149830518748874999257859215680927700823397632385230904985124326748694753970748322561987134329675959595441238100623383054137011042606991629169095756354577754045679110741063688497794912512930233179349105641146104520132420288852136515278973533517999362029105722423348799274250296264264325319060281304548114674490237348734236622376923649651479903256189793588012702705548508838142836945345981817298860014852911674370539995559227767037239709988928342156962864455871250247729016548690626301102811239393476394465265511667795326318860886345603849493263654375512769624792842264376473510569394567540887710657758720272540937020313828112701245128846889643573438298282567463768464438700527556652256723859260381755973078321415108222050720378656378742641651960138946160147706592726866264813207445602419099885272567468013303629724589667650461300142001556166212109437409387713300942957491264660559384035123559375910371067911728873990051637852859672546079711263953881240449047087691696147070089958743157596493439523325032901437087451777076920968456475149943036120842048769197665027379344704019683623550348464669378965791729829117807485409709233003755751191037776872682825756237896317330826874115807041637846995139436550739804726341269212025525893046978228454735359828360132388737670256512193160665876308802717145559248836072178981992426127743697850328543585081205480223536469076222492147756178439663381443498279911593799340718117047955983332597310095145190327093485345147291473541944141637048091197592625265803512996122663909152976598407916941673155940531541778555605992657288586892502370282659318710957889827398545715749238571256900455447798574423488203961457055303732168203100595356529564282589125066283744571019085882197191298454827125980241408127441737818503396296434191796682170801975438984637862933584814409254769401325406149560970464160195081576092039103768832042161119043397899480385475504073711829999342552295942005220959954164970087409091414846146731122387793619014261971156981993405050546045933978943557208044772014198122043556566303777058533109764500791038917756826455616839584353771019884104272581069007588452195530460682384434510194353010760721859955698280374098436518365934081438602069342225012176622949532237346123506628529564940868440397069238840423875219208875117426918593264626124190223262863425838410100053084907765702861022575997894523562905106043564949628048046318902025177464556262921317485267079931462173019664828362890253027855489057687469932770158309012777889971192400986464035236898748041708735135936156014174181891173295621663400008636639515389828162799846424819769369921101239102464958899566849253989966122879650208216645393777470690736669916010093150100836427522260576788042186820062817106570830828265008594213678697024583127721250000115912221090591880044309835246819848594242746822524348709841136360375735118214671940101665722647487479214300376901371468634009785938728654429016305385038193048728913637622829089814362589382517128887237985890995803409405474891283089699024694459211318862920773564909649057090563637757465652991677553112226820984373939708728923884593299522226639099103580914240744112660637808998284989984791740051833090480655673673327182506298343076558476524741624470977051650478478264596918121382758320729151474225172040384197606414539055442662908336362552284656912422393951830143102790679227867189900970598782128454777951574278737393025268138867357616812068879653300885313650312493186759719619694849311801947042494102275701323779481366038751043907557743392349615092992862065197991001979636419177885288468525570162014357734867585526186340320688023456297210499348677031439416555329682651548857927402574911105478533061920268252999509515508964806394802836923460515355426285756697019202153060153191274516888093353355771033545833847209863206071812466890428303563121566637932310965491658791127441861060558217044218737454065163096146105003473723979164066736348449468972563166081745060146715432388005744982836364653087930180424683514077057438719372627765015894131057690176856267039111827789687475000003563166647126507817205743815230016080243367680382767619080897666389082606496257979844637457168172360880769174893377500305611394674773161000444918759278181106606109834222630712175225038475085751967961714855617268580814907939447917884691625946096478740182251636907086460710440424792865262575984285185554661297368508830530645616779808006864356053176681936213719269100247559132981598231724029360760155229214666306909123203070547489737745874433559660709799434358851208305568868514473940353396258676325758759286472336612135551939366367485985552781854363671050565750836886912675461420137189604313610805733871918860476136711213922439830864674275674745593475147687893756224794694802928690149449345731475916096959106294207245742417357448380823407550067231501922363592820630911644796270389857630058202063649657375424940173929234776607480879379126856975374070336987368534804811392965436170952095798737820300049327215055336199357336785228919963644836551809783577462021756768440347673095696016346910547846396179707267398598888662339200106069728448917320550136168805452996593429823058695641495425653185500079719463045728855779703956438840191318607070230855063047337531284811071301023055450620485059093537236408097196825621929540535293356816033613291750026218540784869889742895621121345291766618487708610145020180642521516269803490460856192064404310768721413898307652973240694522279416408072598154930709806613719822314838321030554988126708726299263447964449431955751224887121682749477167855281638586744564623716321754835251444655201396464689599679346420014163863741278955159714935664215732988393071718416025418875020305011670731862821188526398518617350239213481366308462263186595359217165061168438084313357513240771286272071795920908216768751557812510528841308552224439852042627754777357611272400802952723416939188419371516491274761020620611115000063076432568052500824775083689032314363829560126047831971004101270366535849013631182048725466012802501043800447477022949091060206139263915468167152238592416299404053023707507036677421127384037916856800942703551883185323118815237556472175454294927415559317807574322246372842496368817599194741253117726410313420336148990291724829288894666453272435817782014009261665581723179927618459062405205453304577134470142256630330434796658390222806511268393975367100102837975136283653502918120452267455871775874800791673338715518113486092804355992519845168004687283090157244322052965440562281508493272809254560281685603658452851871643118229374107322412649781238675107506317129113986446830271320821675163346499278521952820509883359869345408453328589112737719833473624197349456590461109402144990528734997376737931476627606265401513431460000076407279929377910661735819762192333328959573779380718573311933635378816069650156659494512635388618411060847192932113624034851624585700257943407006918363150271715218862435207910815379787058100621045553351847663534180505758328676900291656691599706645550914683741525611024761496875328288812279123091247344846173405147639794452522787639762178159180615501968029210995291006252181842284480998157103357402035282916592636433736955035339586154481504378452119137791854266153955324018754854361747104078080806713444704737279477894164774109793199294184665028229332824129259761083809995929028048480158475314852510713299016205254603521700308261100623451236439799156530074682418887882172503408568870336302405614718875178455454904768711415397866740296309370541081381893595790206454803194797822855567264365014397750850359990567046786392958958890927054477450269627749659176937306744255659926652172432543061551227155240508705827926226083518664850826657037905901066923802874521856073951084066971383019017567752254141027372231139174665054767175235485702641807463804882681107920280235005948484976300715595616471614351327133118526233557521833571652892942812706510319185017485978162126177302443280842928886862357738022537300857904646472199854527651289861777753763247008650731720472352068971835976187704966907293071023926973089968887153220471716568758772002159147346380765905141845006623275332504791642036318488875928064831054149786163815992674837602719359774980610177169918397787040790001647864614555785638587064652886280494586366547959068822587566306100070676776869208067527557136172876633578866750981264571536369883989102040245566839035390356428810743483883225020832682360014392762565759676840166605429139448251568432766033958784440542215990517325567915059510764775774854872101241315944856414024772200106572541275635186471253209220652480771380908427561042311196791666655285872169888025468555487619163947112712696637335411858336864884579723359969740289162691248639247984909009046662140180780985289195714141198739406828449047947729198921751998821079230428034582375423323221419747123287737256045758748270819741717322519993744230755745884574532207827816326255029711606526163478926488032321246508318514105510189198832464705371157218468285093069407861380397975151570856768121280308035271728097297611209441077795844727447586106941137519059007779668830260761794585944042089455940778844753620423736585699248993211080857729378714341828182771400408961333639615489108270374004878615256310860047124222471306835134733748539840441838358147050349238120357704014694521588953429873457901745689109422423912486346916305287790471925085195853379537514456121432027811894506418352644423375152735821350838438494759594193674400181860642791026542063104499596185356085057260514084385553013867916379006661703965930619683251749134126015738354850874682545278927771809900676888937018326024598575791810459436557829691800153606554418339490711141492313972833816327451583449246662971260119784133218120399684063818578572017617735467445861154308412519182363167017828110477156418299844722842829259299609146461668288904128821057881287501854375020876596435550013017873354434770795054134255811126087464530490457666827476156566470801777247444585054582370163357353932635743789567475638113636517843844313164969803483058388410659720166558784467717273547143539212607250589141212299708941413696960308421259853093668773712961315955349086328569710543838314256086332484407087410044115171416232383176229332901866918073225895954644046765702082687807058754609140451216690304278482424645117330244623223869002080085456120305407152080226500449332886415096722574431211692256988025769119161476026853819783500917909229031021739636798509931748819710888151183154432708747192392298402891490126508970442018453781906034732415984424259479529038189351748924925401090957636658442801292520973030422169451680077701633428342179755594774962614471115795217762231847853886068836569744658790178195728283563292714707753825697768174487950792767348158857999448065794287029396889304089597024304317326415563204497825991491467749091981834479393923804905212537424476877890370560017818827064195657096175733604780615364723637206442299532182539627369614904236321898480205936927432348759058289290563730511830394076549119669494999289829403274149129213591057388412361565134729367951018286383466054187702448253673243684323529102922116864982440589839338247176492675043849201273403272919242707059203671053605081755274983335330314297003163056566306554777613062694939444003873119758218858884924248449852277759405722983977199789703458758793293432417713443291343987721907965588450268751994969893177383302617882654362453182328824654932442983484571087655503453232682770345596097415770916639439436890346204584360573357638942216774456598791582638132043797183972963151991110155363008509368670846040754874682533128517917633109340364895089910319301154093041127886822475618665268198058038261981385011580621632609439635543824142974596601757093869289374995947340533177789142257191051088997359217253934442727803906379962444580340172807219928587317055574320073723917486759887921925344370554210759021260094135940542216667530534782862381032554165668898363645777985604735046170563431255854275601172789821335434474280809238539881952994565010871453736857927246512361087182660789560873933654417308955457098782125857335633672405327130722945590634289208650112541023908026012525512526342748476968961414627117528554522384407485838453568367042079135376311237072150518316869191166872503789772784623949577752286088721396508220211330990526941883003455048449464559969398084353039278660103329091862943268448721376171139139298161065786653868885883645446421553689717127210063536659023961781821787157206226421684672942620367790024558617165248403152144836993727694175237809325714160127432331056971368002156738544140308249077334774203826766234148860640420309183780903426355851258505630677066864635627526329123272801718187374107771647720189564888021246729174090789545388195951980389982989602769817658014629722386691803943177390897059478948198471178446850545533266404406467809413691229670872592363172009236150923798149510260912350474513422204797979737360606309424155642662525151667399292108112843945368494201088544785781614048094126290852448539892350156635638251366069473411733854681166309355163750649139753657492099359242794482340733810205680679954733636023470576445388072350457816614996440115650542041256719480051973779244484930513861784017089484787161630910312383499782128515790177592551514406941352293308948900905297527479652523694938901187639507410782995861416623595650557120993212837658342098930491707824923693224217508353762052361801761544271572846423260215131975110694574326255432993451820464406092047196417162176828271409859745637158932772603571069955025350461943946497817905307045976759134908282663145986611071195724671234552882714432254505800710375699770471991833803213164576964879308216570568539912527175449399241493547911400915788807624583987591305840535385305670172872522003674068187482874747475426922941674800125290187215764329709136594445840449644403264970568906630603286032926815131270462080910763613103989267673801680218971319819062630835499015418528872887644786905601198335229290672362807276175794946653503066035835486526147413349372885686965537320572626512324324654025083313593669676362394171442183548625612530924719725929386021227642172341638344381215090244735584721259340631570644314604911421004173188404503297379310913713947096753576790122949489731493017288166152730820909170663978723582662580177842362930672947342055511728994256181894143875599690173126297725057770115776324144004676085248967608496206306123022503251355549519144288798121773792724032105388152806425191224283747421770824309577727137357681986783386170873845760239510985464186019938514668550203254167617753281637065213460673661827361214211684924885118666777493689625245257055920681027047224484504758446145015276300018730403010684494392669624956835452024149903950339045485051295605942876605089897073884172173461355345549814453716748509841484778724880588153262758061441361128574176364858229581780584530489292425432577955920719713759669544424387753955167362148908926486107778490093944117963957488242306397390649669673734330696434131925207242027297819961672980822612296070472940242996455427522021957097822077056813695810022661451484366101706703320348553600839666285433518260240413024287562955979153267022486141111096731893433464473289103459124711131388501225803526212911762190367016428605948926922743182938676895694568375184096544129180138936659778115871063060231129999071091423597519357781338122322452724807358902265695600525674454259992476365172144687598526879034966538410268062219993062602146450738354114959812186381748253851717048710848124958163309296847297869279254507155100722681830501094159080907563642045774809982955217528331845584535264473276780341750585960171113447149245344760997509694380780657689090353643603291911637994521693056157253242360529886077864822710368283259588546519742566275556288490644099737243832846059509736834801121062169055459109586848739636522333364139616446371308665654253767634712936233771608377998016176681840976970157021335349758829156053062104029065371724073463469531328321625620001851424417753010129783550814506767752474990897738588896902945025249508206789106590787042530536278053381029626244071257533542869779691897535070542297063053024203083246682413815531098142338097468499237202807942637870498505443662806591225861613862240286891478299292600130194410682628592130782331831212890137707425549657318801968815412627329327130642085514924483165117939728421670356541931718343500673671945920482043035913353341459944596587433869193241696718190371843971762677635539870711967284101038736586453956609771857124009383061118877123961153043291555458832819503569092061411016503085902441863801079879469664074859020046606944890354907998660458707800666553159128843619159553567235909589058882474111439305435110296247663318701787082899565876382272024684530835291606219807844241149253336483383927824331499213199133199703657977992956139860383895839731941509456681241459034462174370248993007838743642637817658632973336998585318057431516322432705364431953750611485199799217508739819356430135250257056524366840851512104688354763426037957627626295808300751853878613744468409492376508188419370131369549888143139167244773030549485699663181748707425234131276905171869199335799791610203777169178030357189319185740291635259988326502433714129678376525455791654326356304199598722921693997354006496263570053071929898162723288982177871760511699848117145052054116833186629163128554028104569759622455157125094751649695319757240939470776602727401949515506471108986943885402819469584450165358026566459347819802569279949887152961420251232671778133465211872964894802075336262980897356936812796574876604190619424572675131275578681596477190503206879433603276360002453170286181453328378362854300330939249531460805918826885936056889706947953166420525493699445130287334776448471790010788349638446042034726531127842808439643908335219545214214814145793052497847450382774301536334294070481069312090919163539679403185963994856441255991495859888400063061848219825104205245438996437818720695427206869283446532850239277121170554769133750535976728476991519885023080118419045396123974876406047067029075836235057084711907080008303430357473671118298611585550598350425936434220505974446428702253186876653075448235134712323390526727236804942634312308826493661927305991118938080433634974504448006275480765340330112186291102516267407037414988606326683043854446921717469176220376048973518616045290936101032637246887374091774372045359540880897842752417288413970132890500621766577912388584337632926237854813273486015465371045982126309864253476329219924144632701716693153303901561538387793959310525953208772548735625644111188101235077962769184834520861009879738257025564829339233395311563227718472228170175830291493918027497467949587714058382986166885621860234899042704369134828691140665269293601289963949644281094491773671773649352060978349486380965565127903705024511273538315982602594331599581024770545819240973750783335335915890410275510329237149340482507862346488106422719175655179903538826579707170722552545711116410416055929062833684427693112497980372792941224813633665717948608779671707018655587846834540960916694012601964625998366575725219917353688516755249450328392192190416562217618845014411642594984543392638969723793431783609919137965862139299419612394318829113749791533903737957392644828312876615358525517719767634535455916105240005143910295146656041993992116848134422302544847001895334586659121739462618679276970693992669769980925203178683222909353436408235768408147103762856863378548042191026467267071791742704399673268596829781452148436126043815460324280817082386565266371905767653611831090823177588346992686503130618933585391542754007108649284978162561990125017478575811782432631267496675675059527522631896314289317153938211546392734006404885789196138725647741279896809513078754148683554933800815282573575763204869288216332104144325244436535692129886440391167294654147970674051699786795310038442566858975636037957304428404190891530373197886646384327726503028660966097861163827658744789505320271191073443448906542905088959848397638231308706141497396239705922638941967849994733505480386715073567150181391239872925055501292295574869893698215575348600050457586638110275383085499099398424523594469600747419314876180366102372845190623340391802022661429542687823154161858810013127150391562053375969264000466988395022192005385659899851339682868558256691551995387532240596182848449163781323318242722620554525252135477010034683165072264105896887991918727108670751801700127175300547091827610836616478126281904286296077744240930415073127539616307389339145876263661046353553354918931416174253078488769010846540108039047583731412682244779051686194663372620233416556549166324727505092813450680721972223114775546979813677585855320574191111888695027952206503377093019716067620574715389840266274092838546216581477472425126232077168353746021018810973141264039079179819825882699028909287162461664615646075217899420308784352235533900290655353591598401836950241088912397324724437870459464599237351534790877267264828259085245504979103083497553909309100497582631977200367460744834530734166439402031717439431154845718581281006392515359959564963590856235100049861843235107210019638039168822483078662051015661105779924980250792685135563218213958443846775778947558995906113895003418471327111162361424733367642654953929005820196970356040375980376708339483042289239342531447211841543721904583892948008315966315719301043157967517484808670403556707530738242380194013207517412244414288607136457468897615693904927949101392674234345523890016018583747550234438027150575537214672261066849370537611256467633121817343590173033261929045517827766814542154161978376475442424344694444063207688867747255213764217100276861134883620220843754359720553303924580055527234159314217176877628467900335669814567251821862623720380968685783535362963299427215301334020628134674506138827115360423304789010467541697584237243326613929861205592113341453829489245146693826494211034869214346707307395170921936054564399964169241717903633768234681455731539072269804359516415856450722724504541159227579407971155402066400914337075664402447272979459877768493094816514010840719236343794694610294469755696370259203844719900493907830921872222422675012805642275303486209680145126597247106101966909853328695507873367029142973508932697700346341541661755044715691231135386462581237054076152037426145937793976066702659720045483759862018424368423602674535535406674083711617630274280489214820922366194785153004135350483304429218706910158451251548547061267781122761057585500205746257918828432704457926324701355020417594388270010673108856903072247238072804280410287024811626081716137223405989058565140720043565243439340737307017164425166040420536234737395363401673665921934496911971396445235064869190952375665369680009124447016640397419996971083125891372030866051908543229781731789182250844605850722906335836151457738527095080480353376641825478486694173983121430913182101572120961381132866148949251077186621842736600628841066271833179498892494267073831753968691366615695422696096782297239707579547730743233492447760401113938246439994022765738801059602782719594338006153359155665428570430288492862351810666240024217578070726825546089708355783035328266511695464208764593675813527388165038548537359290863385754438010278485514157206203438921891823532722695064158173555383546465797479202067953709580337639793075714928486921625066967370034969256097855864053719135245167964853707595666283075509776733843160968282998002983621984460565745475019634251011029304027781236613713045501970400231225825857270534493156301028018453243485991072987477386060129372530750173628420282581918082598192557043854797135150930397193026950745099836532800100025863091569579466641770230136028209289959409484649808582944748480712397973984433816727771935664986953212323298616488550115501785483928736581939585399722395891907793071436619475457204602041477817660104904959772533229714172526143856845369748822404339152432954421308048267174672754416167790503582614166310710452509954872347635532518460384971383500833762724408207039306133877944906328108866258837153331110284797885043949103298544594451437688158972833191149241026320562057427650237049889310137078298699636318947504524582794661317734790100766286753989780113430701975978087822797511777928393356109704451474851387979591447341763777529072466955396410914408743410197226425669499250620459940633832167307835529931121177614916116981550266129162483190551898683052192945116855992925644628562796397259423399312144672128700667294279536013152085865132815515405758531168833189223358427036695045430190963712517852892127652911737095474845425939709049579203367748529005936732011246815816718750724906968402158163920383854414965555246242698219170492780827364204534814049838911765263321358681261714110944696848531024443931899422074411123484018385231867629114787095210387190377899924661392332731446746354779150381088371660022878736482259045058720029861463868662427696132672523652925147725268661860290009779826197328850891354647897396853298727675133656439626711434382460424802563751402231138406739209516460382503913293578700236548104485238635070268031900981449712902411079682279000051198444901634219118638723119075052464306855468711375961702318166144354395762756568029322511834900792841436026845183807510458903022011435671539032342000278635070866717350242960709069290777462470968029861873385575306969395640297463452290895031054689756392895122408710140932609447006840080826784150098117886489279916719942571243830945068096498117359050354444916022373326894780448245419250692771138257172824000247167703251637199248355245877072989170197784982912649530450873654054753918876685289464739522179036214211082696817586903873033910109940886201307472704962959102761266646834465681685136540266246581067359167102294327166513908298254690019104840570565966444248237776474694360737731117266178969795697021121840456647621265689988588173698420998683560838584729237125827053120236500106896180752010295751368614495195246914161785333176586008273228551378457137882050320922669026455794246873351450108526038844800646229656581554658365355153538288083919865919127955920698414314904561680982447688317515866809972356471645031130110126173556998712959963631286491875733699749333868939879861661057308559478029682338161968593834379148702444438902753192735031633604455108185686981918226166279779794441633342271670279936945512084465850987803447996519088566196611983782419077645151586166031797371007725892969257719726389955937052480561795095372162854920117448802838271199831612796724361486841636426192145305885056049493747069913641094633975493131730663851913289466088352094702221474236397643113157061806131903770581073165797363283848893715272549339764270553262106031676008270474669286146728195919295105025971437766130058686267678607164426379656639045285166021090084017259034855489693534332925148819784761355907646740658379873153696981863922196486438400809555594399513955116570360902670110141566605361536592315639525938903245165603538323921103169579677162781612426389104544863794663934628624834475796391258337350854347421331200912084993212245028865430901468782269710418892999055254021411419252493952068644260516126667202134296502464788008068182182944823449910446823487991598934005521856244958202845505472676230420179613254387273454038958514978064789823779929596251735829631495380530193688999662768484305954745540140098862541507256009763165910471113626357561405796028142010272421571992090588789896453140951274283207021557095100967938950454504663773784601061990019021460710417478235046456949559505576557733257035521667829059751683263385385372370832163113776497415048449417842295442314801745604552904826604959172736137268945309920763480960430926818027466056873771822148476899574189546538365709813844788388349326390987126154150913884267696929639390589684719363899055187942081845932426420363813473350341681180704511982408582021983013142918399704559350776517790068001351860147108248330782015825307936766325443530481255596389195815361206043754423979861766894294941801501466040739563869498940989633037743139689161439975560552026957485045493036500935582033754387073155487641828473443593094563719461450160034160605279126374502534173052488368080523588086215969333033181223575821600072829422215281247944843359154697586490520391785837853284186829993902688904716939507800282959111049930940276387160861991449167778644453049378452617632713472051516488902427516947585071784632676254360838559374228532112808336879405229464135020642243605094857589187882931377531116515290684961012960150055328299896338371975338674267621403996655625927421938944413095945184171437921852061626798818797794289842287431961338506314448283779970882974064401977415364004343804091078366073752985737996401484379342280957184569556936936512687250489526003242435283991253939386607270246494859739767461905815188408656876952379963573874722767909920852205150640602562245240198595047516588536574515397267912340010434684715392772186877858098856597449538504684999138631404584792254878475006386973825475975935470849204050491682787214741561697210978835263698950070248505798806141842912530031932694335639680715287008978938724384449980248269744608826950054142802690500196310603040597792326083608162741838179547921498464599779938943546411916154716514925213011551123192758471361211936359915871334662263666882363457156410959693357910095544383367042707885354192436388909632238880239503888239406946824315417672608637824293701561039826526523343369123947396350563802105780218471897372703274697651636918618080831137464910576030193751963908160275494676690205664323835507957175113688545598896631015936144556440259868072871431113575476193453331795170317159764772132719042000471469292540918170559451787572619447191771339914523438094252600338493418162971018259130419608276262965725580935770650568715370150309183951740000466782024971824233321085453870953625091319616284713840248562041788218907420926828848712509485657261056422676367962746010634180188055393081703957831578513051697672315189518295248022752669622730442254954330052863946207968876426768892974819214361557128520924501059413802393067457550115693404322965669608488588054878389737479515063346955067961700304096871272784675206287460618729462203920819514123781833071702065570985580891217643914970036537531268954231213614104367416727031460297616667902471158664518030104507268296762260023063094835050675522898066131077707678549657623492752696363103837999720402323658187602423955423090062064084829903461301844377946897850638173018464996424819744397313199731837520801258397615183291761002161376987458320810248557318327567511883847146629578681164148878780645083589922920694664748278068546205884918574828911666184454592763276053030913733888722100653269492975419124414291793050693129256467232125879439525996524124261781754962927453010765509707654521511666867927854712547779075607789028493627805786706702301587454561518664908708780594406611053748906432080469171523821898921295943471212795295736755591658369634622403781346091086022490459193387257350854850167847337228010944714179166348081961850307774577204229343496998252557614592586162564020183532114093577110837852987411508010284630617283449798799399224122910246908558171061901161293718298118274040348122133244462129231314578105360603182487902218075116583374067965995660668481646690915276274886082609342222217880928679848656189421899366907393640601686715204579266748862264881232574011411110328806846863149289859932659539689479750969498983094439003951894583757649351978580579827365070796744039325800830289399601521704500453238404499801010561364507682045266004648478067731061775802245843402355279787652110906890652511094084375765235397349760716396367687971665877716736330787197917964250097939340617145805101332402588331312040944763085473576369974794518110156422874968884935684333598838692949381941559473950243257433159534398503214492903720253682545706864124065503580687805134355171273337563883267614556953505548615624187102279329678431681544580270022703509494370975377192129035247803098115167215069907934748305195708043335286659595191339265698667974461887326871647774459160228461457454780415841174249590498591247621781370809303752635380044377140972289920349578743523024493536214015799457172442832461235149659070024437459412147496739862184226685292238953156184597312191127731121892418819396116400357407117742037751806499411208463348725205063940613807348404894698249177765733096503590735055010487043398601753043952221961677155731023541867643314888984480708291810017928240330827044727895937467375851412807584795512538970629425655114482353601696394095379253804104402299214174859857469792450969475915685193275347804373908588730148543223217058169741098350467242841376984759289539060638550991539901756439729718743970887123454914110538095288972055646453642313370277111168954888707663693238627407006261258901928410865496358850548424522427304321560882011841363299258729426314221038927697233694726228357705928128815906092200676207229846969210565834158399317408196229372771023770706158215864266947545232278987458786655594223355144545158813725903474442246989337192395362502834109174375409396527735680568072846212968707764181294305204016138018598057202909226313972511424617054161830499940356765813772999990563613781667659905427581469920049906675788707830938158830955273646802046968751677784241902259819615326920280162130285849920286939658250260937382266002214143215202634856279123003587056381991536358435560514138380667325614830901604919890957422672281339965077515934513492363771327418709043309463484162541578217184799517791375468005816725874780415866539314994764490303669902186904469082114139811777070179682180388105117714825924029711706244339923341737724166306696582082962016426725987234151196859262936495167819148509332178506919833307878021374628366593514618861113217783001328398505921905604309341888361055969619907229328623615583978823803412640426956878987495464603431142339899363160945938041508642171817573351295685746992244863462105304192856902435825209464919681712891419078983571603648320598701602568397809816018180410576886082051097970056509816007616677586781638163371526410659261089673032417095859694994380993548885625682335612736688210264192217057905728182196337137730822926829166002119268711727382345867978161104269571732675262729538988517579503986042681467157895751639940539425555205425909357683433922137270797373506966189389302957862277853649216605553824992076041173500779061617695084312988471285433292240135346571315899069137774558700990816087422431966577165180201730755748483730681795673129081708818651081292205364625441323874470040957424214050058986083722288061124798291026326164801988583684650971016031114330421335617594520398030006641467266526596910093726408576439363867419999226963092753292870905509979747803516980862045580801614235674477716920459317499464088117842143380267315536860403731422777877401145747849525452936542793049588805085891516298660912380452524782951431359519100222270145081768817185289593653593624842813937927281104676610113825969349753794629430660780212246103263556051531116767085803576480760089749715035213109810139373532877708077131985782290297776722773021977419442307520749330858807334944327868757718334637099779797475093702491227340479486018438625910515444900356206005947626799421258881785247287132868454947951777846371439566211061161513331365833377177017724698376611364360027723387387033110350507342701110424355286955545490555525029686869482783746562531476530237883632423361515676610358402586290449088924470400337139888480624053762923879436007016323185291758462659925467173537637084929215600975430724743114721115863629524032988437982234386250785647584835822433227626090224966813218227536158949628438096424901113458784954269858550072200388255339850041249717746027410072759581630942813071063355353736216795579638281709115214775100174917464510284754675698132505714998207891591326875188436711465880849202274368881345835955809675838956650607135793873929587611932936729652619549343599807309452898714356672637975642120879898497461451823684310365175905193379074910806501005920183842878311422218140256665228157634003831684796325744182658493625103112384795361413588040149729232513141646880211459236369552674779468874542122012842132718467244414476535869687238740494826326827563826280937193296281750900702585724437012738475578344903723117070376130120974187254655296116630394024675072125650487963179193471176819181836984109892318429901081095839551020345548154720895013247493097996138913076012139882633079559471585564320715351922871718454335156654195995465625251023641404686503139493964217462437100248315368539910292464915045431392191197409370513098887234123698514258814437315344293717123281636130284988970661364209993303429391809410463059734745503860761488491136460092435476033692595569144031235393371486101248024720891399785750253173875553512289555059395252684265295036528612783535617856954466168780085332624566732835751605551252309925073021055958668583196590754718262702161223474310789633169252458528462697982887939753746388629916827423063326984919145146041617946342492735590968658469171530099353386923889094306765334951636288486521719794811838196939953602034302526648615633905651560319024027440286435360894993371739829553656829053354492449840759932227058216445444138649079023659483356424519665860551331898523995553503132324091530230334878575022520028350496008813194935490986122985294210465769136384841938302985917846151344053684025049078183729687808988487323454970962117443607071828327870470147391712983492973676579126620096780325380941136754815672159495820485144846428369591555840778691588269397455485441384109397429682075670408175840314442108616586497414806705107841077721376721078011910810808272985256293734221698381022382055554589942359843096616730695359293209868455955962727129344676630943939867908681310791802106802968477380875293359135899314117033040511292291450886384124730442018974880405307150564178576114681899369235409217437555059163469536676914949627262723947554840276642603361397542316768773662367161418483105967595985359172550045926704889457719874066798717706508734981747680252830094058006526107818329365104849302455267190134647852792748419946833921616633599898674295578225096434265538978815328792352270992470836725265332293592021501615694393659305902751921413711762425003011075735314251235054990222327621048718878659764582715250769513503810132628578200239965828119264325267346815591857697531303899047857296702278968452757679156270363880031115439088012070813052128071958297478690904314149349177261988282508122080894527894864024845593471777351461154376028601849527766124529276675897203926345399259334851054269687506866217356607938595323076269190735507985925888659718167446735704843576273352054829799471603798144139404530661636985291957329810761448834880857027757003987339089311536416940024265157980588594842451673656299296280531481723115631191310559192572421182760708792898008639167141098349753583940050230074847223000187957757892513492638530078023585016194305840998550237010237231607519070098086560105677016339289925035991473018576275556548393659661042611807705476656048910608920373280506514030335802249300749902379883971395597677747622990026815650256484245663742335145267481539974764117406119973346210949644535002828007002596145050933877385497926944204332471400733982818916040495759102754695153079495295030446917513348021942969861884170520866686488690097977355746566841129282692995652559268837932161310046258625151452064994195880735317705560171450910197555969652713147170647007428337635345183892911940779444894057883191430444787612480633866460974085325256728576923343881648807093444575603359306307249861163366810197275834682372942139696885587892908423980005642530387071069260630844443176980117849611274973732981653691812200321760592243200569466853304096866148195834398395881528150297361556723749040880199345898056983773661891748952126011409286070890131966623499812112682796163062549164382146356982657223637664748676215865719594426976293691054884858612705391399576891378651434778749379558505577664001969695328471239128783909551486259619603420886329269606174306366456946645505619055215277385567451170654403484811373360926128221757196188104688495357151257095046716883827941136110635955364587704463512535348526658125593309094845090454025082546209101397195508599702757705634939196672138682226832818677971354196759789030777894001283963940292809685716723246547393911324609174031714722182015318836540448444863043939802990158647916179856228173033352269621420334301214757956722117506259051728753726702719221645162298728228007517410934360202474421367894885329226770327541904738720059359527308425163639284605480373992166862472540711553747556037942427476636745959673962752197171564851278140169342569221396965877232095543786532004377620360941184298747024100709826612849202085792669518165624993845855274581864146817457524964171299591877502106856449757062661650915084265594110412479261246467858199200676979313790512143231913007700153250811249073343245944982228103432876396738667289283591624065330030515800953674589867272428118622539324796232586158472416270584903208321733020207421678135555369069728277221856141537769146202139826680888134277056250837965871645268222305413883879817992572401955510030461965485127347963390065331661303220305919606636560933541602246564136814392233697898075875816767677285388584441263442417052716923342272524104098405382191893053320651366731822071837543348303030005566934937361358494642704085623678922634980234562774374753076237570377619764655474744521688199224294378832791695595577068286722857983034622026657605769066655197461541791507626511725599567060572074793588662493268365928185502718969081618823533277918585578439841169329041587373290075130572612016349590948420509966897479089580996097669012438253869546261677831308817998035663972290824064344524393726872206469758169625611638121104125513855359240639606726355314498578755697979389369188224249518697481712824015498825196777487166374857301149578008865613091539196886160415860987053534509096864977200730759229935378686585729805423381308944626709660341585034470314133554382579991375574127415059520313764936489877779058621573834673126083404456286196947759421365672577383450956069781048219496389003104615053330320855753581289615806318481204287924846678198667944476936837783147065212518328405404533849409024252859004587961699978982189763585210555032233980811429222427105361323849055883273729738315670731689164162777993955938164941653311462319064503802246472829976243728891403799588968924740690560116529426429735298562402462743900794011110758933985280693651911594972174344610850512258685337111074935273373682751010974026575560840806127412494805447966733089380256852865732216123111082247053228320873773957112666847959715778819989254355328723138824443395975458923436924203122021133959111841774247427720520477809414454563295330139516397813030377900441911157282724051370384258343046894516050087998133819743241215311482508992319500837317082475245629152813929554069061921185254977851593610578306961801146879107076898647807306499699540307763523649438407477683219520143032110878884474551022087090338112667325457507714944877916599272729551149836435500383032299340030391356139988109976287343932517858044452231267907047272757909684516751949725658157126499895169665278304115533232763720636073276350694851383271044911186083207798167605582673952023171927290516315658583695603408806489484803755530463897551171602668357093846739144975790430744169931224369060711164966480123613588422285909399836402341068251920650496614572600331064361041676489958202310806581400272362853880301417461566028775360422254895796053127133051342666014762924447180147153320556749693037906016385477199256541363668520887285739397982458898771846047558682942837342227632623207552373344627708545393693254482508915993616712565884139684464649632742242475584323349685539332389628987703536123216488097055770128924820427660478928434941580967875410048404775687806353113065053702702420184844060999999143622616276230203259593569898387076952899302978326648857828180551173162948412377358978301505998731006528641714421741546779867780335344380332712640917878131368788988037841463752644638796709289707162278160785809137609420539852076968368282237434799433969677937167883413215350446154362640185715398519423126610302030065164137018509399005529830267456360982762842883413519817318466405703306406398386351945791917008609303637460147852178927569698149963980881597561765419231659350020710865532577626135523003263260003885027835585008210734728847182150741790422683797366496223246349523781960105065456609724025885147348201719967554837284041944986745447098170200090148309456142672774491364615755098709211447300766892554283473146203490577044407739998338290099534537294592836719247637540978118025952660638340388198152275598894992748086978876138801055405986615121273018445198100645001351482079236329905456300811217577573786882950649617784504332700450207280511685142735247624167177910289910665206972817154686009511732380636217807589560788641224032433460707263930404691974555389759719642054795817069366024903748775345183599430169840547154698863897643560293864026953558977589669071710336297478422008045294141452327285459522448864531697632275517733183776375718730716213812329412796080579613631821239636839937861227230814522299342072893380964854175071988265372934200387350881663719942523575619734071863408234066372666044530800389399592508153861113404185920569339069963605110203361596365731662723001801108575414519268703114114192011650407591821210938081663316571694363374624561073740142464623674213311668281438062584806736361081847939691583081456878551557494664619646572419532005073158203987866078198887292572005014020093117979298547831825313541776823449685906532975798249846242866677014215498231501070238027264077469064925624915390880103836388981408524988491769592170768875616528552432276620033521938651370295096339518389776858514922562304955001842774367741132870025126656498897486360960779019774280406144252160679171951478680977225371511979936852112196428857267899388496336881866993408134235875056056871997543923830028134728646824491521352930249798780510914985562391298015397867145195960712656181373045511149402207638781740175060139780587803175484172943786198093319587133834845631459435848990381637154914189150465373236060776193772110865086419913599814216568540168989915610987600452821352358328574428605116976499467965285994600307544943728148356617439684020362796007816843092743967681089286399371975480988793177222980475137244322625832900886610819392762363756999342104289723825037696688121011299985837936808333740432427869966010787216408258630029215532980284644609302006470188787367913229297951939099800709083288587458894950003618944505698970542290884854031973229981450983204252067762485960889785928406150417754988732810050103608344005594157755743268559048438699449001543994929136495393374184317948735125829503856278479498351680989679095894469771208494558766797724415477874763454549153467058478621645162827870592039730413668321960095195719528524098653273677473471347983288123714695007581081946457977760101710368093850594033925810231318008071149302335563497602141882133575989793530393209931128582588033908219283751702872605667113321055490832696194628502992994173316673645082899462711368037074104740652333766832115765162003769740022434360504221802245898673386185625860618057920463786112101088473319691160008596500225505863143299972519570947999717842822422712294485899195987321219305060980928888051646385923161957300731172423873186402910265335470459776300701617652892801766761673320391079215660244966557441709100779833495819163779932378486292359840380845601838043745287959300476118165684997696810826928265979055431041217842187310533935561301926981894632841636024348212608450129519722860141897866167529615068366541006182633062703712643207446313943408980385405597421569581034821740342800843284620061594378919798611911949052229961543858419132067458951807409675663065915578369021450660197485472651427014074875988588055152393647663447309139759472361391590050206135482841572744448803044708941173219590418790355416958751831937898796803295770854309227036015285849688575229250698881574269479406250792800233490066065467444856738315145895548172837893153862553101051734281395041877111214933085395505723295084842749329617326679663083561906877418459675921851610274098223320916412071600921865955589434038273570799255872835604484551777469698140160918075402351190230714325640652486933291421248219945740850000031248175095294777203557315967593764136302729401672712401816251089616961379814284934681900428845261183696306013509414762825886277830689867327069410564245113214652285990330295407138520346477442658664148659281855034189915695831640945355205336878727629330848344778485353714526250169553977340745454375849902424750717816818767307513986274268667454633271816352204452023592507741096781561591746589720183884192744172107769613955044506779264717868495326889980279254990097643636056188749694260069071336684487669182526585149189393064458800615603410894945116365266328557181674689947383486279621959484087472066908985598667591087256444750395562727557520411779848170357852006349982984000319844336018747889153467474192115775202337832105926226678773546084049193364604164707800116109397014381792848374170120346695122290022133814709239644602710435656017043743883957781435849925092884393898272691092346654868648051925020085924313126965962252762960612193006101231400379622941062735699015932176808130297192466205194064352155055028182864777971478927757242743128623905133316883619959115101733701980035643050381012170056214729253010836091492590619520575758887359131457367970770992785404032205876539375612793004434648593429734990521956871038492144477724317558149118038918315568206472518082703626442147675755471931472498689666840581498954541623915775898563184764282307926964907858433347916687778199051758546049446025029536523163781071839351420197948480117957639577878207954319301105575599667141064888159074418212114147812891263060110489192813941320948654806939712100393046797230021751905667591321252265707958223438646183273114544235806383848907900156124159725434539060298964801992663050127454708150417865186696497481611533668626058273814008516631844708235385113671522524109534840390577469623944988066197214878382926837758111666577369725862020874936294234030331917693343119908663124990656337526215948320715126224421208484982762434335887644258747212030664987773442913132736881232246530039975647702602704772422033491550545655344977906291174422989095463953063674319664097066963537056823199697297995634673136098577216901994173073522937183595326273760606794093833764450409226005359190179460485029726430959185524740061601476300355369656460049061861779572903879483819474649053016126505673867215302688478555431138519028349029768866440862146244569380428094095642500367522665187415891753491837888378019773412528953365910443046667225597396510753918090588947485156686897515886407941262625440097609746003489517159529384062861477970341489779622960208325276162182878208828951451371566805226803610488792230867324967976242948638207991292278305422334091339168413154878648002478380962140951945322728178415117478793641348535371954350224419819508503838896354594120744342088560388994798730999907959343081732466258948126504326708146681657875556338350862222735797772949762665209154803822135453139493191108074294710170138000564994713131730949589750978276060615505533231877869270827942808784419882032952308834814124381962766271246523566523008527398814984916409923998536145569289089482442989553514840583959138409193543129983907196737464746549756769216519254645701450234913803436082452099419854049934125501180844788194000885815586460658570141432497237730716392287951897373126698316969489927087133434404232375264919864420908322380246014192061438269358558461896130305394622135476003964215000228314627081731386451925282447837168690380434391615516082317686356898001432707853529371283751969938898196383740704107380226859694610611148015066990359620587618219716911889840593913754244245287463560642059409180584083661649314492252586909806127678513514894296503775848851686365393691845817040718808167727056027047334620862993379425244366756189649618805343669837377329863703373692757755528165982478587383633219967902125112855062713510954380245806742967648380103728698475477627884850853535953272049429038554294641704597778323190570433047738735032739061231324354303960830140822969529605060014400872512867545239036387961182717611935163783278835692742636708496418591963365885175480513355338508881625218966636162598649097261997070457756107244532956598048162883563628664357291993676664332847908637561105579668695847193322274880638756083764537140008108114596703611656143956330842441493071038334757749046557064382784894025995226546887200559009534067623108984048621448183795903788831205276026967683951097490561255475648587619818144674075376556532042755692840813199137180258153067459202931011179359609268744088070982295011411191713641178962009869156422757429034121044091596814626973582551133333013090718248010390438220908813398084670371538912760700269455728279034837819611853767157842101786484241298527681898801177783862776338967066142291697800036003787810256980064421263960330401685931057894671636401235279011175817171264969637809521779157876672353503698001481371668230614604416447035937252568765196243023688657895358655730007496448479176498577105631871707787591743869262432205321958180252676782793888918298921445826405241912505568852713133520627744461467350854070965879149219922020075549577345709295786457202847654668529879262537573117389814301886082804446403549038319514427495950477896505861427367835583810899421489631668020831941652153239026638973599167605113531734010991256123020842086417462733594629645912077914209066590884823016498037173596222919782055938443079668114956752416290149601099803714152807317777181140352424682548037716328338937315074659694339242772633654638114141321566147613230115741473755929162871101742490919480330080030333220820646294048506425935265749098748383412212391669296232272808484911364922575111807733316624021033346555146292266042914618786413080903821498740110568235070597742672269933346456043364845757021530258291031737921927815759871283628958219100867414390576323731218880532067241003347901140009711508765878093947915884136153709539076020000490177485335292378765725554567019028254927707974556044100710658323816986852193806512111588772556788368689393049251794713766947307302848041019490915624268358017321701148747273358775235537104596714190796369913373519634407548874489091029725094617413593828572463968238993737199368102489922190932236717512941778420346608320808087635560683106795944252089849447726705748579984362503133677999407305006902022301602481228464987339725714638080860404310761849575312103925904496218819332303575928482920414891680743021032767284005269560174127234459895869138616599058698872920518444037549991991085819447841008137270730599370948777370543427848861684676677396213197864289037007811379385751948298049530556742846325926933428233596704292828599299901173954912138556893172613497797507714962350607305839357756521883773259314255531545829564985771346980587850845347169512618911273182929084258536243175918167853242072160470916114057303634423421097291509212979823947135463935038824820438440309085015256243791590195451166339801329768256440267451043686658959272560036056763025026773690774018670531129650236905795912963904472243066671075150033604090472279464911709259265320959860112838121299244874877597808027232947130887640846794636580555648989322638898615610651574230357559580365603475874621565484999274042836869517275698140325030818790080278323846650921252821326693752682518486285326904078839638706768368958397231116272487685951371512245860974557391943413335116701740403080304297862351067628743480585109452304177900950338315585619950046386937376726894037126993270856748624191799139669905024376592822402231156849213272950203084715273395158676118454394033352676508492864880440171499243509528925786665430922092164443507961908494997454564753215163039046651618454447655081014797236323194984814730076535507865485503685580548456146312445952025348623687065735228588427188517167267793492720367318070542925105357684584719039253069214574152303155835643019803205103516973291027048978348253187582719811707170072327880479992851720111541318651834855923027952283733694588680236742026382660865789997549730400453744967500597645281798266327832090516687250491994035816613066657162951899449720141095739132050622705553376098985851591906406220266743449416055397523036550687701450078783034878309311470720658610628661095762923747114823703385618396550716197301567205904714326440074265709028557911488446251322260082292855217331019412912480926959332404851244709799044123430811377084696943750727447808848246194069338105362225733744972738465620993149311181106546264366827928324325805484322316741157617266366438641054008853061862149945563024049745798410058368264992774164233785819002016304555192549542231844371068187053585005981759531234024421981518300379981377365525777134383770472191967725906814697995506699474850552822245709101851540343253903715923324353865346740755364669134605264012545390710589796787003735398267415861767415060378254180181910693455262305640099902372056142073087665997810339569361278662202182172693160483142477430506811204849907052330645219129685012703489678240372488668884498061617127183937438139695987999611534561020896810619188600271821441957601860808349326069067199420600140932872232965453067627496142199348993586236625958516032753694998571365500930931482902145834987707194986375268106639345351042207870014451000347958576696335316819062354440555667969018001800660378987038946866988565445652601209545466922188508627741751505558582922555957601506983480500460047782516769073176636659751076017129250712263212970847554285777986424313879414861129762089531653851552280976492329695850762741560998504184147851987432765429045572208167158419953487009591450024968158632909342575602722433679210197241547420961145445399194348822516973936597378818681228278345574608365567921167130327063749769401071589714467847069157645937445037896029342415377290797276993898229256849716162791854614629969025465511701296293585414208812380665174521863360443148596725226953283971777432202636634459133899002485228478491185634125829011367142951335450155649686504624197653526132674523034889321319404959082711954054973957269082958251112289153301393013098470859270669049048602825648486088242771712675061647944739998169294963429385592062141490470939349008834068657648508813785688301270313528240539218095395330828125776502759962052095208665015235975719752448798601897073008941971507694091960467108852961674167865096475753770148586292934914526001985031369408516036932597592480683443934493183162509544012284222974765272577997983570752026216881968724815232099798938307364694398115739362252123865554840741772228063968188123684309056202097254355212755546560534457761990109602269920363596432648788586301691250262915513230287939915355633305174499696994859049738186080395546687734211100605526290348596684865761773351850525792741256536126056618335651865264820818033022292590435076990623207555600231604491229287443121793245805717790952663118471506753291538561287979756358833334795239651238927579661923934626936123245620110603500099151793659694778023460031998681947713109899665266452423994517098462394175488616836564498940795235115030456433935217437240420305225783297860833942871547671527482643743078274492673689622445234818927101227759303178206695632083847497919179317753014857594856187890731199754923495467110490851031684616128727504757703499079666833556972454920957991480724459518521530772461678402224997783243572808045113437249116988937183449240523100643727255679317156999848945251512551397695662171497129089580981857358326772877287593351822052600758838180169666519581161700187901876687902458074830312454010397783658715372773116454342770684223249705667307908617423897368329931072180784982346293870835911110989939366905692145532344423767033938993760290176062735391036638701636250839281014934552341225731758667312073483785644862250428077260325030002857132971894298858277963232585274604138699106217537587413922102736947659485672999191702646754124051696721284178363309884178527591352645159938289362174249078038909139213456515660899131862044919261835286016118625745639901244294700552061898037471080140767065977037277930713046097899467463235997666422157671667057751940563990378738769570086403678870721950716402765692270590954416965649664358939464685279648065238161893608045541024833751449090365533541029642777852356905053509816157699312984451348719745509518655714789683769998217964943772465526564729268472211391415905616612095024861942754978253343198169583462132117930967749566905585128871260894094064982263229228275878699084468679670757182697792682878813518948993302754639993823329777019809209175227328250524750088319361458278042180276568155347708447823137537422474079473388240642048350214511212811450550384795263953870989929444175433476669220544701676850089964591093821536003816978543112714382299479919051333477804771583115458293830919150003417867507444595090068039635845080902418501081714863244922579794658886517024796483593321947059163218666529224894574627244554693671478275725834143915280369617963809150369964871785633101237611660078502537324634409967642400417806033145284443200977224252669169894116710196668976959028823067235727457734509478687691113937019682926139007816967950465848877038656548461048664959714514829788063018365796495994829229358877773105554032979251539221825908746324938261919922164232146636266222682927913753890632420543531182222666727114919337073690995254417352981130381121024863228720747940784567734141156311784899675242052941015159928551055250802396328502137090268560182974686990994694719319881275653737439031278051685535676478264407451435028704995026200010473179471410470933573218037362722967903111659472153876187242318357377714705281342024934542194631151103430422429838421105748458069140610548424362256821405339000366057654081419857559684313751253375851723931848396482131002457632277921049496837461299613881306386877632779427543881657740991835597075770927065820518708519569413856325352323876328519853767624848482570183061504582488020446595345475103207598607876388613090817802842076543700568464703523136284465205595412136550467465892990727205019169279758276269390530365208652787822795322713231595105063476178392254823259814615962751341248053867914334035294585236816544092933003034339752511310573386319169132339269870247291078617759355219369774436847295438108222939070101314871092363843736154854873945262401700946660573153421844642057840763399478849444519131308081917933533053027773302735023549828128882151972884034306132114815922146081625958222019296476692305656649142095197916595816915103033682870154504645542213951415621590861690561935154704594827783427248720855127346527693165170589965461331875132040657447327516519414502838393070401054957016493699494828257291554040451043554735716195928231683831405466455038005273669397363687182102040779676210266270931508965816454248980291428124790862251314372203764995394317150836289323672769058345980759841439638572753012543242905161824680831275507924230745165801877664773110634123390282548066460335180614249890997881909473482137595897478707091172670870740452801861526285370386087142771107155446849342229477702062624716819358419788248463926235241515679458129299209679450767968222574392916357504980352178255371591108826702459131654847038987303332016343815786670656177487302598259905424673372296554085767547141628902883219852679993505413307195615899754337306709910900217467515872163464003744687357556874599503637300542465989293367063335451687892864929176868360276033848182913338450147489221156711728388074913795628482869598695709044823685511416647343934236624489361125229127791031813753324151258689195208891642551963139427700647096033910838172384273021327141178352971575308694780255398765236315920110510850968721610002097153911269160403119658996557106658592003118348958201558430381688222541760065724083240472966417097862981244335854666921712484405015238785827620738925256015313405946211911216236456867063971659323526268602200335651707004088690732686541691619994392152582914637453873282335404952011933703306542729078883721417532353438248612977733574048726098310112968692283551508615173857739550052253653158960450088153317035747462392060294065212590112079003193613822343586669218268362723160129106999368603887415046690229084399993032238106404974422853395114638746445261896338018133040218664034225363725229115355462330501973586733373050258859399672841297743498986084119777559617637267592344486064438222159956925587928863828906192871286879604890698537396046799683713013280457560186403159385251466821146431193582897306320115706560864380392457383586487400675196351221135282675094999939599122410572185471573653145433117814862723816331816854014570221231608401138884960859928197935910365456264223508424718251095016624977769756732219208677587518368854580041868035244899953292705398521377483353877676762501209464749448497172228577639862759828761032902146640155098417719813542045445660848985988473032578672830690874678904063083813255552103757417531928830755032234558120749769906807037501304334318052036903673133776151699298349405995939554357435066061682691812675621205155739245625995850232630365553300090908702872674198731289999195237462335066177124852103036567315204655415687096577878777900107695383635864026075358378542277836715501514755891946969187902871075874984615334191455184188484381411044822929959976356687678051513046585817295242062274847576788204248582096263381511594907026997154584635040273620847376187361704231561301134874887680466994035127524641304557789997193965127803143157129273450433534396628164877129015011750984184249855597220790822460115316684302906214147108454935327053882351843974204701519464995831778155729032509789704824794333756254649623471074735065107217390425909632215719833516273159373494070052617201656873518496145476143463356296207529480799346250812016601253168303235051781038251315454876232164249517112045170822282899566330688857326055462283549825352196183850490066050487878566348245953846377470895331366254606482035126406349290925857871197240458272573824539913865738615562834618120804635250758218098310665236265674955689665324417301089195056448580562959865095400366109571679778616850953404133468194297216049665529333945119060148115375747623719097851130009397115063432055051591759990429917794058149523023955212672710013151866715760763587195013621727145679657228925308545688991199711703507574274981036694161942406755448573926492286728675158847489700140876797481093761503287423836926291025939093735828345389322292651278256892186768051214671726025098535102651147806096947597424666861544650968817172594474249771549778238160784398602313161023073368032177287181904075357676439656752546904941794128421445964690616816408178629100880550105487153994297607840972204666931780565609255289840930787635433124923152331187577251060939108125484824175439481907564395583932475226681006535455467927750507865846591120601201629414188544201861976018300168859094925547830491511123078200273372302314651195212348249287959048544094277872043595988417341819932818514798881098666480537523909673578433744557451400000759239074315685221044003648418449156882391788111228454976149523694853770385835992989522559855044470594857881612099514448568302837397687292656784583186225437244217354822567882982886252430776043079968333909951626186373472295767400277339545987234344254710119767096693305809368079766769353876880072889131675420461882201774946280295863024147236818458093675719855491749769381934199463692338131968192222004321998453644644857994478827281085118936018518115907668345196092954253062774842879134691162024102804702567741893322980499854814306591799110953219059572175337742309885699305821085178543992088806335453375842032628078556543971620570579665042162914757096986856483785578676538459000446281877791851289125577851086922874815017659892428460123782151005874241711989977444877307209573414433636029829041177910992680189595044807574224780814606485492534336964259768903027089139005395721069834375320829686366830818716125978042546693386528174485244034721646902138307570936046198964299607706602138548766111045806219150795905524200761551031399647811354584520409608992760496304499278082789139465995373935457031162545357531448470774256668857066189239667608542601561640758781202932347076396465629193510054042592148352350649181053198286787757064909738770143540464456734126569592899690121042642923625087610729311394939396945206172345593382612114815097083647486388024332311763539653760075263654656639495398435604603385710297948523924337973640374102872851064998779643148493275577701158490413661383158306506894615321805363055943304742105801870902442305256593098330550767192546335326635088632395176827690274668023513875344326002378415122729195731664376863806445294735318362009320280083350682110676056108288878003604237998637335893658014334941150557001160790692200176822353033937126796675376146737846611605913030165034051858731744886503331981539056583651966921019268905992693291561767045946159459912086710157543681145356311005733537863469947284052394775378916453933800655506585237893397659904446847043462584078125755685533777321749263022497612373218378486834700278111547895353648802450477836660098778244018938485300129344694588461773343456141859823242159689391221626274699793756844853576697082853688559815430852474324347366036547207156518230539975325648989093055053082704095271434906838137511618619787307919255011945410188834699981911979875336719730306802050938816054675390848449191406542676202947530670969500307696028600826136374523165138744683708753190373077682467644480995138619327109053108194760067015329647785830820164724893091091971724911495091877149926776716475361258441298956536323871576282901136857377526970574276283784234167170633197312956497886875019399943516785761244163344628465980628227922307015676406249219156275963363711599953665714464744095394478227772156375970837545197252247440904777731912428070644134697760698676690966336266997972707895477606342806145989321877349515507896740196986486293150295624896365334287908332077107828338547374592453558718686793647572079318146000619526498893284317405640928145688063665031224516767385685540831020631337174599533914149482750812600578155140898141942315680486812794939059954934066890729395683215432024134295346772025478400067489267886662865688239727651000509783950100874351849715862813037014914418634313313978805004977401814965110654626882672038613248839466224152629273456959595884320462549546211579653951532811918508526806024716112067756754184864727196136701492255868492049835920777930235553468802529637272725329952606568986953513218913490101388277846417277809952849015046588405741774410100354394834894401864589015974467127626757234187958945100943149810770403952529039370858639888098446163170782051766198686452665715182650607011731561981215859885432813442910480948890344644307313999656306045840891756814705940600941676108283223256068131540726783021964657634382788964257958539427939551196321525257995392038735548815806518057195156211217987023450859034574932184546389233072449201108109699619781671761863833554483466390224008723354911736775590361537752565008376370623389915552639372895503750174712743665769740776397451791374974640398918979330082462827112024822066998436067568530374343174243725704676570580708113231187020472119140466279954072047973933454768146996907592679803947331125095871422645042117277770555179835973403776146050992197362139123947406818259246262438452368711408828481857550714344331981165451515756588129978386437535879066878568920003266586197682088212963507958759525298146678549530920587715741014292713650551589678194999153053952139383209421584325835393903531456594991931270273165348901303427605105394574579485686423627620828082714301949044044089063041748411156898971158505373710366510077307995989248192481098781446873390080457954462216295818560025471869478005044817618084255717407588908726143394838127871519602611284090960435455992226489374811125748293568701720193159481084473919487322709035448729982102849469163543465820117156267567154127618916787141070272828239794086615080500987995738538644251981087418176359725784243891258840182200130394571537343000805517221107010828286527392684021206362121814383986242693369536484779489704109102618890625999977053428478441681368350391080862192374489081925607859679057452804963380212177620541332926675432521382396389219738370884990914327718797434511760471607807982588502933528601997741194461995035316878170460519888724837720158606806260189551753528486562038620369769150465739317599740043681221315847941783333316744249150977903233731018687101568903872470155612316778647645577654240314995528363012376003332865985692478403425977284481813073619576287043522198943223857220162122603626967453178727779136722659637874222597010212123332072607787651083158258244447222461499154598297784674260838683871009970137667414604244773001634856791791234609213151965782107240617730975230031034707306421838479424825009091420039284594113278067168810609693789024477316121382046693315972859501009431926043599234346894057303039109535652208996238023814003831729108837665871949425292918508968922305815823544485414023212033841460698765359747466635256548910735792765654888393749298285071989645416828094219842297937538791486844114002059339314494054470943196495674532234170112606157339730823779053546166872998060238362955487964584638322072763209275971749272654752363908303955049413734767974701053402924774726680792109404545004565050114293651094630604020532705572630973444058416706324005034344978115441020127188309733607898652493771038107434077291291628031739560252653077546139983786428287382511152190625720940319319656776103475159018115680123742536590601308565055001276844259971811252862057151737001078891799433392743762931397031582923723659542994834490116680600662671800011123652146004825001284659394029411649118293745460321024679896798841863954609826547262296508540907529628357687996882454705620155653628899368287318347815232482239565319872851471309792976900854593642950684798478824177012755103050273020143615371926006036672122481238241830657642610556867408714106749187241493280882277721549441766692653524879123699099773937943787477758166423019461854372814443604014876722686910707716641001026944586525260519597150182753440278918255151639863730807029990075503210829043901028185048062256605221239467391857680462585149017942996643181295317330591482232771797859471714449252868092957872770549867040373041495300010915617949063077716639835673295369676697538503966777041036575811036918059419779015241400090828100700025736568109831969491755125141353243023481749131839589441105090419888448491755545520737029389791960374693948654382419432956249801873854266642215094830998621086943595651245971422322751603653450884472456734640060277653665372996306082077311741823335439096344917093668378339455105467919399593987092752670374256533349381588069201415487420217182796499878415595957623394427724841236533661472965785676732759459970808756364577472753017502427652907273786294544680232762450159000378334206286051825351502807286312848462194434183246158928773931114920971885203748479078467585969714796299495761225675791591394689659064218961833112015471848685530605786296548003574680287380818093453983455120563455927567666830194274042602918851538590417353146578318437235464335920725306837247993416966601404045193364611882416215856206510856904998163002158574923665410214613936230304236904217919667460644933082537728599760994860674909679565646068848849806611768676229113046310347844113124214987738525018323351196974186235202831032048283931816105848131055981467677054559334070637841434563959675321057916638820546558600535707327023830978467251725109678132876117003669036120835825699789882768824955008722917096645164750110197849384514761733829346415549655049164780236079969640938527012918532575734070160251392703872165567142762796613964787551712603668914977649308508769811071543600677109345064860763770751709144335100367987617390736621124329026663156573949796356297866861435045161340020967418281026791910011337363280082022596757870973488822795958000662394143686263746726305417286190359233829472202843337853632361437016588053380170492369552171670170031839450706547526405767004229788533669050640978811264691327269673506548672162775452475037799822389342462272161700326347049738325588137270076280094641622977593416481850675219772238598274808034665565987578864894107242575291957660241791951441216319230385382667452824571871093728366406307895066021316989284735602278983093746975123179870526917932531901145783929835947645291515177802811938911069244739372051166785728725604588386180714416510664735990392021193577698056945721092371819238693578383286517880891311660852243145887153826372650176170458284156945528091322947485936606621080057717119855160561895753520758935804506409857017394013735119888656309540334811833804117461323789916525088239560071674433290410762406150874533285885669291863702317869222065765025938458110809796153722138299924953553345436657887780897109978995278812429905866729421640666911557045316336692381500099665110890348784037417773561283570155934165888836478883840018445621780990906660831230275436394057106273407631809927300391014740769712449255004442627560217183455345105384333034945500405130243367204243579017550857582144890688537017720957409882920084367793948207405732235593621733888727772012185064315276506993719665605314147039389469336351827536626670198503596030797569251454767156079877226723967847691097227809220172592540182624784884942665520869841940350563423508815385927046534069102826865494259325609037797127865422825394920459350666979512989829271208811071386187933906089583028748911128494379451714478454222901312560717569922127620146633284976650783833627446915643305866830860082727401343608730724653330936687518566065816414741356896906192805014454146905981199755289091750202394269682704681304971960903922001265359653943114254259860088831638850487843319665377942315946012244799592073374524344179980627393096624014558797581505648712717589481222847576862705570844001515551107787523836049532678815180716455229170167862397538176637571167525768883150449867002638274862240733695528719906214265045299076776673858732460781241557994689757174823594869035729907703917432080624664258304079748902342658475176695259869509777815149915976945703953572520167757191962810554161287908951395341337365508704496958062443170884573349678967154200406566517377279521457848593016048918475998424077432491183345151643572999884622940924061493042152213670662849004781714267550324558491089136280296482635951835543817731805060655355975405908130428187024625277563099931254072919848009728419802600118351179959815532814565514767918758319009238143784410732563154695237168657224282356005834396572890415980901497125942029878986538014361302106113679020607354588001326067893007318890951430161476706789485061837912739206062159028126065074445341626496855928880845845153338674367425715279052312182363525817106728485290563938188339804684620915698617725675245784062294189555011542266801467834672406769890702908825020812681510181355746592348566607763564712753265256478687381620945220514068489274946901478993486924481091117018223720278561098945741336426745815176713405124867591077013925155547129902346011084481689701898566940500952812115183555801701958869465968905111292057244865459339945133035925918584494104889098541062083438430224213295094276049888593140179411820138239243745038103900696590712571329639462082232942534257876173884762232974682716603929610813342242415013323777135824259691146306277989692015376473841289601572531418826340248645693299909151570357357479414370398532843502037301259071654790254675501062749123058175332109201459920974886741491542413584366307778239117054551137676009175939145131236271387946937975087052723512523064709152424341307912673227313039575666697124075117519665069962841889025204657946621237686486755692397306071169647114157423676956472594604024244167340114739096376189446146044561653288177500783909775300381963408494873356173353272765301455736878781451052625099891319271392168243608215283152514409100827106599022731740904249099672573617971787131880236853115640029201345731021894838099341814700379482023416549238938198042541234497994597449586187138524362107347203390440276319363395782548818019083621232898606681355803268872768953715688881019558545618739730538162011259468776593188899261131904902789979783783034149148522999694868083152848712956546998318760565167680813486553310434823769824116034308106728928935893430614737938725076524737244922974779479015013752675732011192231085543683438579623210946270172434962962687687821587323691932681005099941105988654955373399578954687195664354489297448904993452275972011353876278688399912436645900645322256157698868228222103212053693281473157106671615284040641518440828270944313874196209849282537096251221486854345017179179422311284743206228836356055576239281949170706975493035756249364705460155213502084182776268390586853295116178148224769683651018583388806345104721072069465504082297384173196120281521999198234962498637743916520399900468273682809586649232485509047068652065287406844935518196635020787941333252438001291574921917723685914597669754006332221937231388109094116936463629311167319172613438784348198315569581399848145787682468785678297666206343801577679156446254368081754323297251677179842839626960657536627500668569026932332737575121804128962000099098753759326643163091344393638282116705864606351107738142616996306891701496619391925945107351334528574678732213473637831607521825590386666376020545862146938038856237170830540690597783890370903946306126075906663874842071307459683785101228088037405779052696923292381478536567617932721774644911748346154718169931541886501779486185341695378828184135317586675446765230647809659141919601160673649163601543402074184049414791403179385641058256954545689302393131216037151159459990767895268210190542898499594231899001382631897099408698689022592113549616838718999852641871473625508509644754054969490613365582311250922179631078978262159059185963621235138394187658844414740546417160379653712180295572626521804234185197313920299050387088065013003869391382676413863731746464356608444861404200384616589185253244063051835419671068048371533159430410142439846748416693218163142615316973754474184818338575616623684026556739191981729450705305447969352774834008467014165539527995651874975012061891412220113140498319806768789469650939434492425494463377996488672489350334772562989484150969996647478914850240360194286181896014090705140222165057491988744314173413641310926505530566925426219275060524734780436916297059023597573982983442394394460736668609169640388277422367097871099252940955376370052059296791347550507313844678554224103074523354923290293386122034032134102586620495831165264631239914961093282047252295512448902204547962445835153596139545278809529362333917335967304253491139098579287504592823627058455584079766444831931880825157328343022964676057164387980205616578623189533369049811164937435276794204398740116241494279050475597421768920444302973058087215864322119029294901632352894375991995856722097161196508889318358945704075591315906041010619311019557584050137931141702207058081032539217969250798116930317958214889872021114507783094163253916374622775339556127771648062121565454456425126229889290779247240639020824343373851676257552585145309150053793859367402152111574326852446111792230840996201867279530373001962841041251853385724684724777929374207893892686622942871632887890088879846318403934625201411800191258754450474723826585994095871124374130007215928172448997164111363073833249515610676469149078635089252461432584396025170797759841746689686189070271453525102458061476170675787210500776700517729291496305415113287618687356838208609609871265967283106991720869178018562520255389975480534950001329788511849931928784727042408359673207747573957805190149184250946553459151786456069453454715178771437395021789065191374581723541037427047364088608248777730455317917162410855648816595648869104769773270793222074052019114756050537997738091421046008425271525233105642120099052999499448242539346395629346911035712421575335694845781296084781820808378305106303949544989758898238474373534405934995262154090034184262246963812087588835676742708740127286451696542705161683749254767057776315620985501328573668278678932263872799909209523801424023177168322645808972387440584414258350144492244424027657687049451155717967799551098907856596977821359506090667526315942961889232578585420863841989962047788597091455501346522016850917822399801448117319658956570430103479679442200715624158713083405613854558439644324114653909087190360324858308570100531346126085103821235375477674540421185321776028558967016706878755005442112170737202737891919954369714753765576010071891716899667470822641963562528078797774658641139063398978879804046219440069030376657085241495946700691240915969294654482519901074933341971177523110710003981826798443758949591365460866957164263938517406382291203107910583624151208525045775974124436848900132400256700482314789860332623901942639658142295162171911758861966943308589961630865874697047675477836415625185363516427473677849611173054226616767947489386733357902090487970262377380295533972410944174911476262262379121231427233268239762522182813345657538261976420041721052772284975740997227319779087230561742133007388688888016249721352225330351213856604830243354312948184496151924227436153066696304719940074297581034373053533720906803481367247526177785445696911205618360905699740826640669966082764294348396439178931167177939413223525483635449920750895045104599427519168718556108330838440075204259961563633571932827566419264191256653998992324152834890153158251593104570737210177750199557322000274072838523862673199299508363966487118785793103402386108379889221165438979548515654442925456916087622744422861079899010321757458573234441190482368604676869541192397388774205058154510454793268189733599929517725276839086025784242506841956250947336920699717332056368852192983552231099086572661606680415162291851906080707397206701979748767642681024241278689867362760181394927047238138054591849296318593928945786132168825885138042756845536479721642285742584337753130594013525042878693592428011698751774619652690424708959948847884658060492121838206938335646704139598039938743673970591521738772115218622631943828410646577383116385907452473401385093795713538182574428713161583059065642062926536359934758800634240826697889708465020191340982468218919181769962217151756582327845942577955099442845288280520121527737035268174767154404224147794273021813533965717796266053423243982503581960606885844242317028424433376736984733066239094414594620681050883244509037890235362093160767546769329441091529954827016057350262038727212195709239450217421325853635936695229760808736966061063801621525484034155705199019644931873735688280501135546903171398265682711188925210261008133075835016283761334056447841220784248326096625165911142876927566203742629938072330550409222422412955615518725297923402906432438373523319081391942535552519387224370218677987006325335799207164859218472972763692479369276285106289270378126275102918742768181309791436872649827983645901498555914511017990161398211489508125947194044824523635700729526352532968835776329590448202822996949568671235693470576280985094479208618805753729678646479048914615240988396601087003558203649539206511828079817739442199779407726962384790946085879556863219400230860526515566226411677057939548489991791044189243847592645477983019974998851669163236730223561396813228608835759800183098754521590952746212085735891835798333878203660849744333308858836700530832169056999000202086510873107515604570872967892271009428722615340679468070924106240277425921398833131605544006629631907040704153831176307488700529444999676319907560962416740448035420714327680824848818224218061473491712583854858430353083965297456223825447169699590434484031706094538921724374563355791264605681262285387844055401261466167031786118704858838242013832219969319329752585246729652985500670282453552102429082958806768466816289311979550804040412979863853874040230436503547332473007344297439960812061041358526432617445498943861286262544627995910415501905297580739832285053205702817285523176670601601806637515884173438478058177963845451423997094540001684187896830508894417615663601178683843093746179674135874751269392898214084769239799388347613325927689434178983288458683499037416820846665177852753294263795074072736455141091360133237163895293252409605423694507190874285105353990283224099278195025443296467168458125173369822807139218687407761151436689923470950562659864174304550415548756437249367718503737714501982462262060893054867403247598942920199937115082305612807641564152179092337674712892066431564364173472386764805760984793709952014797675100864440530233558966036045965755003358393817980169989346526177044908976055359674945542421293895803441537938427939331262943597716886666345895731819036433152095214836713419039310448358134154015241797860581535011375138697400643632209345474997719537712387323982916759174534939293994548581567320017918108889776773552298905340454306599834945034481794792668677074536684227320467344192406182182152839607802954048403719592499278742662201854185528518035670246322899305291388360441564566122744885395234397695144883054360581249901913067066050460762806751603206239794408241416389893551892820382026083697115304281849233941468648324036778662015468298615064440803861917054203324567409513332168120027148169940171007538666734377279798957779680674099617801573234617058127689914095919220910059200807153759386082332233005173435713038968491560976836332342410758237288480659081769412077089978436537764354425050203513809055450573382315551900481965181517576360624612857096112991752608627784648563949271519846987057146113875673696134032927586727083089073880257159066960495439333633817969263235025280167627978614798611691412240480498216602228869054029251761954183038503400913098776382032456086688588194807691442963636621246648837815663150859368459394575187162862630813534961513385385616025761220406541620870298059714961750908501422163656207911180266365750273756943267854570348974543420861952091041354244073082301983783459708636750147342552661612684755587742250579922043096692952320596986823101701997995253142744360650700595409221070465242704921361495267968618490469945734624187516616278176377442171684928563055238846468327045543635698617657190886907868040961052692721910702589386511725295161768974041862330975430961550593336502904618276491258133760056777610269760922357059011934838358231517643952712094038695873183739092437686222747092457449459720426885219952623313297604850348148519655568998838842010180363937540722111666064875580620712062531206057806137943045865634362114797487640847126627331744376977080847640432170427768064833008585112036449466420230040373043682927172989046913535930284110888049263627802503242284377527364186327893384785859467610403650401632962602742434112363792480028188260814637673280596295513839194486173538238858966326793820375164195041444597111199213324478629169286326735521364326953134464926165452970771657693004583314100698547220297071005024866525419037100918616887903394479222032858755449171814041595158086109844705062126822678559093939678923560795730931646222575352183885042089853160613222145052013810037196413989977886270267316394581626562521060045976017545923899215958393958600660481473839740493877437271020100431675469640188320956434694580541343245644887507733980536502940845463794724014677795422429629807546967594353102473559525034880436882362169524373222368399037569050138123227510822781536544701007413292372125075215474704245709410360653302777938900703596496571072606519428664699720103598486062354715483415022901395546214768171640616420042982340169670094130627053143108919088697735596097325301646793946815348306378371356059855666225168349293517462883143646182331387008998040116461196042429764667109655235227201568882097532520145794515970578647004465665022312766331990156448698372310224418070502549792826619766877608663803459712409327703407286212570897975061341509997207232116551709927208515779843149990217448861365968624767558776185260724111236807169936348446910736705368773722276620948954838267526819552813129516244446122040777379208864428696050630723696215189834832784031030298204835263578211028676969670194623110937632066581358554193017840129309972814593309789344210511463045463374932060116442043895137396575336124914488250433786462783022267940643538949678722035862000634452104494569238701499444251979325318813536724170233325856729666535843526173096538635701188956929034950064836232410706055347644472283831268388321847392411603074973942929331534596203709214225327349141140916393705504241639364004701081779624759120510164553241260909271677577427926791486881955312856105227034460373867247294000391460867374012694231176657040325787369322395238038856505242238177464953521172608574539398911656984522006905668529213558758718144190234495959093166557985629816228509475232013785329270755250933780981577139083696325613145266389792664038000836744701712500988492049995219074873928283260820583034415574459869267854606695946177623682574193831013946247750136953387987328168469328864347191458694791703575275799158325822227100921307086619595469809419909214673925871092221888187201769863551867310089978943414204109255196556968261886576591194381693445916146767509638793534137937562365152472891834679508654163759387867884745865148798883473216336524594722506919192133904937514001318455509320566739862283354153836642938363844382433503059100538134923354096476098244540833653273831059724115220837902530324675683076320833342253812031111155825273036445143044814549235268987716940840500122484483893859156610806973852852535365013405772681882994503993870766945860646137418912123148121988470069703292680209095617804957112760635047710714537952356465418292789623794347388191627429176378618189494510747613783764448537450264366864694746401718851645434917583789223760748644018422058247744738579611960454856855606046732218388156324213119262769051301584752620040020654668093320687301521815682164828879603987667913624978962362194166030100783912296378980838840840130791126786638466803995368712524351923197763504965625346485872247497179580637843791172581557988814328618222464531057336656449655019747434233346119910629495431003449716018783477157189888393309717092966216094019791817167259919307869414983220768281714493617882853182596866265184862985259332199187642711579459556779671899781169735699624458644358716010901871136271159344764118381259416528155870312041329348278765455188658599868367589532963107316585733911580852651115173054707433899273254275403577898792332359064510656348136486449013679839918639164084380496826353870360629849382212136275253114897277367646208894150610800363677359332533342565934257463757126739937535244511937059311875672487761109831042782221093149033034223385212405957655814749771886280169691760659106589339857186481608837240392775442208407616831580500376178455671616628947677932557344379550404757625046578926344118853484898266652371628905891840857362001837598590933358267374508841330212314760276046726464694578564965206461615512959639795049502667868190730433477570595876405141979348396210393499524747837259920234499992445380674586156811579970099477139089187012668783114787706547110758199981422864402285937119507593306326784144843026802604918444689088539461785839119479491045184252858624176745845110333405884137845750992061665562526256967580061751648107028993219492375574124564525596065846334044221921880424530322826133400790407424705814990823693261478917187127792097982192592789872860912699953649430527714664731378338390709429022256724464973272476446347107481371121153662415036801789409570907130135627557314960396967156795126675530114688237762360054789612427436682749152754394312762113408965553517785145832326379837959264987735476526200136365725483888877675521649623809343133733400360740906521624264293211799908585850588901932214175748053797758287322252753418567645440323775516636789032656157705620551262880870404553602847747990775195031579200631635331268480216751763720693723807379766822645293429886330051209218909449185101764479189239447109804593205292677725519870440624489229901795930904035275765728481216556465540443964838540011740830016077440029467209997415043080427268888008484943599226520577270789996090865235817293968776243664794225162330039401454668554938633885360877907572327464466246919544317450084767183891378433435186546157387276278805296361262904453607987906193544214102848485459883961553251016091357187509008644349928121910090540452506425432366792911378578622840555191399933936798521563796416496156017408559805185726280328819617079458531328948729164167400685612446794263830910679893456323463163460755058681927714328265207847807668384102304015738606541111514732604097919678183413449539738240759462076826752216725712132751736913031575469350631547033104138627122519350099320661887839848631102105339050610704451704378811896739892788757953724596583867102880389401567672981268494471397593095867093365829095621554321226096032779473868151447583641215269858206751248509265902706966352764490203073934577873582592996662859875329693370812463695758527946256439131239882353434475008438574239465535882486861141208151013335904145417439491617502832319319745727260523768824404012135774267873651691726188607260272499566155986158738611358839379297142494025525882353954883276087440874632803153336137787482518685057397644616495500942190515047883077937041867356624504208834634153632473108829405619870818648772208150946571773459573071007087051052918378757359957807460330160292493895495000836922088975541774434617350288204281948137444455670758548934411912147819996365546410341764667028519245879493419433201173979971493747503391436676399060845136047758639354567022122816714347391241783886728399070517213683311041515709111538582314498797865049814700304976736868246156945723808587890109963427391893008103922241251683087025864484401096473503548772332864661432973760902323903039981970557692497698473268428772287240777969321397311479085640584007709661346230823912571636430467293062099116071777318113628400504503913444044801883894961823489928938275388760622686615067162313272500286932652583513374786349660141109137330639165103875143698429727437557933004137472618757877203585524367156961181841778842804213715723624182953470213857805483629614443998870614149434801100678588955755642689006942887894940791904339306386679000700980491540723940847544070260192221010317145888345807341233999767821723296200081455710966985245332992894878948243125463836452204891225496092743454010257711916675446766888283493715675781885613921896602488543408443988304179976624792124874759395975140654098009155442908671304337804718611848505682284261266535093935960210951450487008449513482956345302924267326730328941545848512956684405724422083057360302322169653379392197867718387179215535757901685111073206244749317554296174601443102134179480864659171995876558190992468203925964302488480431206190577539334770177767868989485782519318560558254708264041200987538058954875452239824273255087165856738008844914973040725351671383964588946369140912690259721149756089713147445730417596989629158633963406792394584556023683443854061167135557257689590843299013107450369780044115208838491141538642095353107012719320450004465372452668975122649890524425567646975816446776549394568701493416323149925301794818086645158547931475554841604882129394266045762905013192377728965833604934290413744417866739815958775742973256994166440666480826534452086379248638124415306452299940265967486353639553742006924600643908051987222452261348439781166210286790679469024279209614083747543650628014975191411987265420055731306310609611066541212524668840371640781689040841747598714050123836955904437743761756245229975015326706464967296364635991729622274608565747433446821990410503057419572763265267706588209205931219981082044053188528731987913180220013251917350456278142361354282250665782670153346633128554477755872507731056801909803448450176389253229417465272661334433187117133287314725584711190700459364788507246017069182911329960566409666029951208426351805130251571577201716556321859732073129915746747642374729813191214861167174318276250839716231205884384196176473039188613395853996861515767876037609521697685239113038470978264325803410115722388324831126180336860318713578177909946537253302112593551797490239559890118134725874880867558304764729590513296600934039820872513426300394390772688387990296180250171289857246100911079387434157018188894379405006539335371956834715200009452567343759353874557956080915451859817865120754807370569054817720816647208096064756439294159066848054879267061055484622792144601917021107889410304216548036271482589133738086957219884288115261591402957287286401287158369116526762499534082096777040013367978086677883629312385578970735464604898553880426795026388292603810606634626423717842200270553844720590946313561473295166926712083614759546539497072059484094978338372758614689888775756574768381515575123243785068893283530674938144091737929983233957654633498146139665432669739883059397765196447347203405806259922355391551029101715117224429262000012536037100592582795021469152728422244162027215030666883107226171826614543651239846996093422354800913571895738039055054442241595786720060629196523945997377270560514722352402881792033322723446128749505797818381556032547112832877373665533930616660886186806582018057635776064709506852991598056103123515564401249208732318080578092068869990604828310584522511715015523291624086085585540803536382242152032646979837000986761014394121141473553777778307252865353786260869289064500698253556272153048505888184585984453766583359409010542261937040572298489383948433040970399156587417872438590746666744080331407184070570693723299657308643106750429020183158300436472620622352284813085863792566487866439308931881968709668975573608216830992257121746634193914258457796227774826778419384080963565660218117312351455159843612317495197815286572531204203995343841800293976436552454120946465231392334507443366946752679811708066231603070484817646684328802036631301620846249344894231435093086802767465227733083849793839673180344718184567895433116271770286617033736159210571542689540810345844846028335137623185137741878485840324563132619925236950268613945434699569752713266148622859931917944231892666353237288255098931362052287411208327164719743090398863927092339024899787164606819174116654214301063320971892811219222193584504062452892394385418428950963412846720347386854895011014852259443246071223309033658976850703095381407013238111247820972538637267970836641823736095138932021502209286715035425266171826950614831247815813612721939377563383016825813240741608746690904997539493979661715010700581484313201703802883033957784535044879639945582166430419043657699718655635966115286663348687136175705675879412696511972812005880312169461365104133044440808363008314239680102659334374978656374107457142131483878208686113933819225892262328300945052481724644585934797386618473300265943794074310060783292151043867116419591280812803556052763415858071317548137048169520032154627891210602240923556377297904492899355471252128391031186640990439917911673902687905626379338130638400128092379158646946067010108995859183978876762598073556120537678341526176098597233207877546798260096800347421214624707338075893635987689977348676889343027474264589073001797097744616342127738380149542940620358203070070605579537894875371953098051009765588332750831307636842301286196610229340746663908360497221052133499517035895727074500538468446169434185366997843759612697346770609001571325742831952345857744040242522027253935076045209209944887071515123229997671839851080012967722077355429912983371008589621486231433155813482914806286985613400941670902199531700337010193541186805959784456057740411003333480726587308661537474205363758113485149807345545157546046094491615700860068479074428434133094422219772658053302354574435220055279026363398412307060487210370037413984145877282929292932907482888532839271901380297655319729922311447757599810296171914165196770360635376558589280519796097620737650816273492375376744435958922958161536999453024982250822694333407762393671301126439880284529108183757709438783043618376568466067764543020610140375618689777083556120760345015424976663106704127169214565350864354972537370602146791207378006648716999766298632764250047814767008611825851376934286909446640800524850879152947258042559174499296870602585073148424780072715049202802865942483332476623247450220765301529459661380107737685180142471884571677693870566022520053456317402713234051311346683205368399554691291252177939287564787789990845573683969797759062844171264816805689095519587856767811457824095605960516152137282669504838495943733921401620118492528224561032097515746463384075085929510831646880003131030942145803332050412263376213215433701984496386562627660199995300176352926702823418437567453910670678030067913600986176467903526046753724231201414241375861964181202354041381354964484347406875385466705857528615805510663300588598575769546445935773720663354068746216839633753796712276026269166421922898222373586907596761837097279967836366747497464965835058592393910368608985813862934095415810516858904658878724524984292246071264705497904891470772144512819180741997601774085174181305086527183636456990618843953381428240912184202788798422592164469327264723157991319510013875953639574677742084949565061143954290442679147839790796448575249309952624838191577980871213818225045490179087981296229636622397555704779733681311475384470609497793998340061620581682031395180856138402983724090236935443642272708679094719719971928815445845112871251182334923443044207621735084296088796809765103683543845713056113853947488777809268932846711764476858412964471246433585440988982146600377474493951797029966287270069545820548613833362098628657001642186437808480719975657288463411288828691127005153776359384380288749654527272971772658865699016584323640239824602202528711030015428107111542591035458378319001076863294554339079808296114197282243013687767934911380361755631997776467854596922467467218627913832622854625553613321139511333209663539843311328229081317588782233361377474771547482174976896539023674957886758596255015215894219950399012022998605067664280337318005145458442698584226414775073243737718007648776252005621042252847191687504281663957816158778746084370342653484919243936153345743408991336664402682128176870164782950081307047169369358860146975871060426058524491936961991006825926916070957619295497482364017644335641435060870029799077232339047152468568888988988100027156998547976497083803611703959516169799343804482006557387195016151859414444616224512439071731657377685846256542580566243906267325833100946722321269815030983436978560950352310929798169992081961505786291550959993408372781360429176860871254687942312794177758816046647406278734337981590096641380513451764810020413272443486690569740408668226149294252478669446638698645212485838259899648686396993837655327848688657427490317864904674950938697863123540041674334398760083278921930567579590934876589315030837874209450298002543758451637605752581680866622070307011861691489074751165210024159299958613826950814834256826192056338612477900511562855933031414115054349536342208432326765484317301472788916888424482891271069230720353266900851279089327604641295576378177033999455773603427850447434471107173235173340037463462915173731563084169665012595086318958072833708193454111436373700730982751567604190041461902669836522302448110226256173729346806005147961058308953558886550846969430594259230579111628230378049561131190702754352423419038724424485689710079920003001211126119161429482662755774989794562227444246332448029716820920271150851532118133862374482481433142354295344660107502818521589180532268793534183514484379636711017803897712887011984392394938517723031590842198881646247142988552828322098724748787566824303214991484492944262781694761154277377427400999758557844729198283186879229010819256007099289150594820499901587781741530978161296784797957991310287057407821854976760233814559928654653216516917399370410618078667169530231519215100138350262310786998597566333644585257665830919976930587455451212482438673939418594067634092114085199469555004571911248019058228321081462334172691409685340141106878577383560690961100629275919898403985702278912411400380702955759097993954455900518700137941749500544886148986011632076696638406149757226806009748828012421025166843549411277292848344437431830635000864151732968589736357638391684187127096071644069281178971109884868440253803657093397366834133021645956605684362471310943757063211567719750846175935761871210102142212367168565735615711105670227632582091628194900601613092945971440159599028374519440320038023063075549570605199369435966761297683762958106653149801347056431768861798326370735755590958107021946335828538793702917212756027971855212602221543735419886831504830657569727485410231603162860510330921140678771463662607169644004778348782620141904369879111266899447257172387785209964418450057075331992826707230669725614808813931552355942868212322566324415568366263833485110151878235988072243656895054692745818398800705060601196259861599856271981157960551998767806615741499152933257432311959150263001378734701973761985205517632064844603261316932351959826771436198264129542606558925265193136870616408675582153643493820001945368597527178568581507983518190979477338809209795339586369203828902838353847710007682755972725346030611618622638858909382523600426827846479530439879464421126932465674665460707568543942644653381147006583118077461284319511899662338633220659280763867656399563648304306219576931961497770716128239096992812358562707917121561885406981046197458065026899166107557819460167330499031885191574771227667419793086980881426016627167376597810552467471311706774972596309072243573974350190227949440314863691650390631443286680564802349488182024687111694316319253963540972986537130923844275172662702707007557259965047412596080098197947197317827040380773783296192026776510869191632916830952159918132947276359966152719161347116413900034382845744925951805466741719192841639625794877290885068410785394844460152308147369177138105378442848186480847075350615020967060792508401236066251380372654945092625150341054376487239242887301724818374328979568787375246451678605966824561345037992326733648533319744390831576189390026510257312767749474292049086444682915363209756893279609427359331933325518622849392938906764292283743476889741472648522995410772599028691066646474662020388070308436800423896722512313786384425248547144491329156716859327319906849228765445311274025769274308010933527642351187318988929864226728864430855529296430912208300710045012361289507524593230807604454913321433052936783203485413356921051433815478068762622826793798400561525817072460586867359595803485347881636104731432628379692607592906126437344691625048310687245284855926281989142982262021412508038284489939987523853680679459166394146953053492323515705802991796331176620378969960871047569491108145042952983396525094376637096668899897186532271246648188549720783640507759616084325114409364622189773676261932312441358464085958242818857585196243332023501137982214940522375139331803684155886837902428936455705697312020310513309551560322610451074447134009354639626016195227192476215353787014756690431725604651814764499513845058750034536540686053776778907805287769145963174967471053048936673093010141613947289928449848551041670978538266095183609947004821091055453659702632171552199023439910860816893943986115120322026926814567706870946753027568926315723017756556229808348886942754171458464166951800818080692067978380451300553505407494111611558062946859272628886445007314400532060293475405904668741333097424303799987187293014650185975717310471857380009510202399153970818363229484212177630210068286294350304733138923355938410219652547029753813719268843742403861989552448502442712748227318307562812413906399124095779993188651538041847295479804881209850611232144215265875159002274966486576078837308032489697372509438366904996318411876687290962736294919753827336910156839683430758732627148006934923007715019894552883859224623033440806713435109382348696742572303361141859830659935768524728304453034831173853979229378630956878250764561153618083136197214272417684575180418590444010888299593097578987697579350423538680372471508250211385586439836768635805615707728562790871549271509400735026198029967327391551210550849317615525727227162213002752068604214220149994870622276976086027532984151709367190772889483735714316524800997437559579964443421967018659646534543006230001454400627105905751414839811809720100462199384544704014424760067664981030090277958370546014146324250235026613805148750728133322572465360373719746060226969455231779643894495552998359810131801330384652113811692873825140710894877985868043068665890814679945570823699954649324614345082350041361493799307481493683119851297852718150541234307984595609290420434338574368585287494546029290119622727068150113882668754699246726536669449704344215092482402044589889101193325557751182986463170654219198529154337163263110986454963598935835105593853931720205275125747992653943957679463124575702283435959613445812806536106956624627572895596441191229452890189182240375706373230112136208938901737535866181590511655639629743136128406666241517357714111033335205902662017517427054610187938665391826658392086708009209531618766853399627227327719856386822118631357485860708477230485601560020405257623295043109607952098965287955221923630079129558216166804832580012880142865191996249957085844907365265716255671357261484590326781776838924983090265878850804297128711425496896413164194788482068281804697837049353706587367685881343076976532868856651135406135705666575775634625230159381329545544503714099851322127147704198120049061580049798024277373233998770170342742045394863083006241528401008931726915462927209260987677213562424712444279938533383495077698120699758216870301387323258745371274837499552066288317044946139677588014443542006546796434115907644495805193819601311983257093827311224199033246675861280999318055259033030209603693384266495158181748738607693001803575905483838092595634347253563281331405856901417863800485089843092616343061905656694527707543358067651208814144543789618098348693065435348214209922650121101829784894824095965462518406458491554031811730690740018569181120150342833649802958568910784975537106761346253774475579339798927518439068536184519489773391667684002480350565667360552315395986788408720319444526332752465365905723692408186176142555863361843269491967151937163014946596113868785258717691198991078868723887457606873869403830239152807326223250104770535849488137101729119510985377759695390263930289875183940572382540380054795267127261098543489010802041316331824311694753163861565726618311510443022326281549131243112086539901172296654158848357648021045683401281114891720758805988491945980446890552941494851286581021047078254761266307820890117429461486457368250492768401425187230013060331582289675833600433677942268139858938536963074878487064702379908896215899657937337270248808528592553176636089978511284824840525392791626726509246354125652538603156152035314312394146239548252140323779046282583655872029361321298943586168316492019550081108379222341013255841645550106269701234349654664873741117643466036918510226550633845683437425554154742824933362686915532333400553466506426832186228602700392077140143521462101677001136528420380172990730764980279529710522076635063870841831245797068140057233030107353296560452118492961277838125823457833605385676524625999580346249159429710912494134814478355151975901151680083166769409296086202851319403753042198523883696911788662747975614884696610635205068989849050532507492559898182995491295126959196917693882775724747172548968556008572972375826919304334024682345142452932067286215507236340855377700563399213428236268302970782098813991183506853009009963554840589988354806525657795662482072695163303707428406593455208114496856258946197458840269739996476671612683203018539649863591323265610769576246808814376169150673863306221630303248694261124414605238724570864873587438271439993729982471811799196966276478656605529288002043127664910129651493285613450541133034145639866010111627140913739853425060701099933216101008464947300602784476664038137647422916033394328242167038147403119623205213103975130528065867137644935407085416256421119639773112265072107790767394570676190347515200471398283099246395427503463291668694060305899185253833706616020499864331956702023688064212824015096073427101886338122420698936579775988688289860675981535620198059119403544253646397442089921419829235003716144949705180642675055973445008581357094653297574893893956736552027714314058562345462993438778136391753130774341415648970159169647208741009909236727173815732473426561642695036241132135781839836090426564043871325863509934567641454730472448354566488255762623642513626808085716145005510996785366237287977123621467675037764896889255837351992963845173688050674536370003439013695176710271833765249435079109470196234140660887035320104403575481685324122146240333976218077794874386054215209675768127913957987312165549556337564843408752380622017117199632293484492418323636986004863080804477043866086865244170748203398853296404910037930162287679389015258069372330071931389094396097259360250750799205890046254593802315167939791213399820363246189377478185693246157804773219978817526470289276667170055227578224302259170192699730088910610790264553967100464361722657365146799307786208542188197027462603368943652125075411107032152523134846431384136810845900516397361991452757602901770285340520947973327324187861763437663001201330656070716268883906432026170970327983977844348906979720916742057637149380954300580309763071839134502122154378697343182250976406665521692110388683768162419578265348295731544021487432538593424880948104604531844980988350575951416338589612279661542333859060936055915231816812201498033704032397519861382512150345899232676695768587084581318565552687540406440227375365834736762628034015083108096599753710151136026800696707277013213469583178579967082478355946337532662030623884440192614002331823484922573980521951490901747587933380288629055657607804453756294018506906794956826666973287045201662941572055983305170155354479329307881774995021562995533506134107067554733365143191597448715073136902304488162809185801621833469462523495438628499422725843660624484671392446476382706399352601324936535526665224541654466059566116807697409292024581146050244306866696749813838852995725014970040287940852590342794930748106385775304750625030372002248612280456102232697128507597412065249587445046622971648584905877344329628384022564173435552517328972748447131265832145043143552364138914295604906162194620867567431106378283225893395506404976850760337120823429856580691245312161126432581438601768291729268193344534589564779180434202723310194571768569987405402378326762317167146403459044609714148592589311179601946826952792169306145336113801846539828479501359945269719507631288623310410393945452980182158649344865517997214888008723610320479340831977070197398041391744947562239743002861333575113525567151355563402329170061526333255088663848994370692452209829419284688682036513070536461299004527897180786239273611927466581593144567987792930820227267746632310107953217284621056310039297168649252534113635103814791403199619714217464936541387485546834126397765678282658391482344379967503008674882290952120623092083293252966391359414460460941241315001245754165886555397462504849750089087605915682334162184332368158122797934374760697776973153039510140896973831882752194172389975551748417300806252855150834220269305673797571937167839641799524534337075706285339719165450755406835595231017831629840034620204776327721496507519478261992449209278826710747413218086245118226980510394871385454120096985899497245882733079052165273905334112592812105561941762318419312422468095562075566458957390449304720182879597897935736324361282779785716509733012854317473012366150097234718873865453364075493625185407406956044300074807894182867101502985218820372100071510541127062532151909327726079161177920116529964282449546587503491951256598829958070502611447738320859363727303652559450531277657969077107719469515087697360395295352697233975111074869611472371980380158233950386345342865843927452810332351943292086026468461280419267763846414353209082109592976622550225058647874705142323226027552918756623549131343689367009890609273513463604813089933211429563080159430637487189697350291405708093298154780891784880029214009039135013837914883748038653459192598195292060424762142214573987604589646161088655615771121471653423980817962254673930843990927009443495811608374017882068377562101561402811104303523704393696073452936205739121841139560310031071889107336418986002786698912664952190140623010669623598952568496359958286946450251156782149243305705718799424270127260182232989250952892811903652590200846225468054894427980617994096213589299880828091460556467912685682367063382122010649839911120287468494903306188727302956479015650813480919039238324813653165192498184178551790380246276779812020614308063835623680105031131142443906354608449570595970529537027686013386108070567614885962258325583816740132535563838272348882973588554700128424192646612897965092710281791384390865677689850352244586311352982699460877517292882114288141800666957293815679915164210379934901682604292691500500662108612122583591047745135330224709647376918005249514804244280363134350688696788687230259036476875524441061439203627713319938754184149044654093318557422480252065627923057252166681025479095864714046506928829727635103811328361957635677727166403260599460485613501498344660761762016408232619520716971723626538159370335091492732829410657556016728051064471376063921666847448333940109975023302562688087711052605831181837341966523346800222448329727228499209548392966983397941332689079532247111793882782181704739010455386468148577152371261334473760670780287003201894275541644069091916146787423422059033005208998661765322707862131775443860333435415887143447850898648988515335689925275073593468856556044243532206484118134368612620900406486258573883661497035085680796583023035798728729844133047854455969770012776282441245872433140335856008767065106577842884912409809893348422242543628883494927854874604088687131180746940104793788308778266172342456108627192977426762138294277646290134897371078115905173687793539745274593502271760841205858580520782655051904887617650382549082126830287428241865347051427860006199795621136243436598751180865553516602894802150485657232540186174479093208089001881110151304876030643189757107682809864754116739625875507023056622703733983331668757539781878855379212594640395039462640149052400180132697407325199634937128189703589831779534735598510820436619914077975594893689961627078062748246925089434542034071063547192599706111372164019308009235619197610355414142942222131376418983267436608006291995493354131792344743432942201971209575520748630095060168525823340186484056462462674486446821731720352715283693494057272899892274179300651062380582504082173780868347491439101256455040854184082928110985140107721008734070850796936683666047965340296825772306813580624050756069622368369951365985527435125950193177360227752140766263866543271404871812855949333171283024324087466346704557409805827771980220610932991056724289900739674044440798255317272870057529975106266083990706228035100396929875826922778520009742571364503169791466414265236381779361870350465596025826887020437330460672094302877886848112292210323862741188903714556216938460897883300243726446804255202410879422192962458993086977419372883192054439519847349126186684446239712336181225995139546730654290612969604273532160968288206612459435911049733630368087801688201610351535930208333901927352239549942382363950767709215579073596960418472014445371806859177182623548773788451077940347457445729929272741669667347102426175547892901200826092317539570844074955268476795670405370035080930124828710364428744797552301413653335284862901531081121283157218359833948507709765456577265803149594900879575123491183393007023672870043219175974955975103693135684444001443288567139191481093064823923374566887201333687081421379547260489443262901577004328091794033009967671872400752030040528103865366784280432750576474629408640091807935708287215370531526213648336673177737482573194009083975058751267075587033354836612142144425993306964337617467507322975701238963107192219007176413544048092365880745996247520385496242040602647960514454200817494326736310805749501926714000476825592422082297863591528334866039915413108853245414954338568198498408467395229058355623686482666122890448468566185406078632534258941682966824006824665140118451051851170077743038933472931563529103138157432859464870096629790651191369293149908657802997443028830746461782189034143293905460717202493750834248409656065065888632413172350358431833091056871069049170660789564892020352665341948840069360521179143898099570612043286605290415410068145944586484062229507526244465913230190567049730323702737168044500218750200312024347095474232712750202453735206561836197496996139928577886322091180207401114787911810762715468908875939032926719053831028974254820341436853330891765548485360557381215345375198822662025190230849050430816717574277502578854280237199431713241594429417763997612121437598431093833931795158701494178150292168203475474953359341774966792127180405780328174932215127460681452340430183481858576376806122355726868057502329553584790674692266224018434380941717349212217700688107656501111400235744416496620707758534880825622870954789018807583636619020860904763522311790642564769746763925926102073156396361543581769634381120862125646527291851343032861972103494933085796793327757477773568818898454977633526428650287066167207785546566466456691202621814319917204206446771807919135973471969947563113467742613585747286087864465244799922773566658437146293951329028677087741673439673559920466692850326343969338436943504670589969002393169191210919201044751324496982362387660261270749766423487702617322169974963464549645381732494906602690507231581044449789175603738496410603497609156383853176933081874735076986621579369795685040539897831601870022949821243814672449151039836374223528575128946674814417766874023414266649915385691281987227235716022901901065552666711675540557393838324361292424147986781918337254861253817425107651287746304731353966468591326286714358880233509454554357511829350444738275311866094598860034527532753447066702597217549032603940996480784215942129199109056076429632198405890675740786891375373785959354582101552802979645707204192117091329246502184143987528426179073388703574962033348294657605042044175792018842294561664491314591179866098955082946032936414672078483612270819672983152606070769660702261998477787951561400087647732561110332736947061311158574911328570236586337683824295431970202953718130655823978296108952338194512211298121780008164167422290001677769890222846423249917772267993964464770496966151745571843668274763301052797841335169630499041436574967314186751590334071255775944423470992012319371566627152892109507372757105542527478126319380492103289270099445074177228094098691771807761534847756929760361836446334777462564082781305960550780942865133860049070508720532378373884229099840733107138757079704698203680895060031374671674783213714258412710646940593157776431176105672152877753952103847435657891581458845601458072220401842175091576631792092938009188019540523183587979560824508979373355109001008468106196520950818011134663831729116703307340709056941672741495604473399671918514948786101511849070403873806186414467111002055500909333460262999985824438132640746192543799425451181925364570671014372088011020352214398706802809494643626634876767816300039981195680732162462617425453474449737997186799670772614484921149794025673956880735923138678805095843316370563441359308284715667897837915248694830015911259486320999463706525577755204424706488124890171213755667711032507180898942107568671041255416089493416399579547069810714472185240096911283806034930761908241307377835756280749514964004338233385722393601459656380470653165207470367080776519616725833996863061362940834827451966168169593106866385258656192459112380830637410410072462698007928381460283188965242468982377039612557829073060161594185749539368241711512195579585766685683812632715204551332141918104248193523856724015175064283974073087657340151370681166677012292010589192291533719679093110380340252329007623654091670612807058772426863956995327613214433114422341810766710752465523340113434016401299651134255924079964873630900522763978157580447012491213494746872131612180875099554775711770967753473394630422116661895157547113340914708448205663275167272749502981306277523642026672614596617339336393548773579568216303098412535146104474866113647020703519002931090279447563174182797607011861518144412774802860012118200171427462438178779031605677572686748473743525249080379507964740730851508980307701902923355463377385224240933532731022561099520808589581343967756175253322996088752719456768429668338029107915528101549935562631579154473046870276794790485439207357830965858643744128192820766559105749209398740565236440576012345089391785866485275918270535894632038077448428596483986591481454702890674753002557195000410574143073098117764416086057122805960528229453324334756490880329597401999361728361482844763395857146523414027781623634816191363516152746765919831117704247545757103811899298851159225249077244923425511590020740314288550447797118399766997969199830796295922068065855077551328910037048983289463983847507859624476297598959741421442904884625496690368062893921912877108646232915111943646219083415713255957027286667808435503352959617206203836938616633184636114461212907001032804715613363523668862783856709894284632478273175528108258979041383290426523047955431947818052006613769023413186374765874206967834782356388680972201547956581022622648218693001004174003116518099602390568949988878934388645022481721024258019816458964303007322500279674513251913232421929316764486914130230326147358905204985875083741628209185439325656242262956290895637610108236700719014338548729274690778281854512254907803864612357902721038797464594307257382341592357197447927165235664770963475802096670455721770254153928758263989132529163176651950238444025229861463005899673356623872738419548753744996063892789060285364439823159265914454417308754939873871737095230874487774549304521301730794865774106285674704734211339300414491702733636884708874521588798522287333528459481332905149302534719087282419206654200633995799586519881471854198712616981230514681624731078200492638359866159301086492269551876073885487695874357093589938423745391450162049177146122669740085262228092804842250605958478627073822550622003945084751375379655603852738308532270644458973743323226463840602653062619969451162201234167677187032884572726129497805871225234790226961535915245657990516971699903523196766486112021607501626585429010993470801383568622095757112216150526850158752974913230948253235945968192777242028793818967490744282764292421855649541190005287858326171686729589353956901381862646477457152342366137058470379255800020825235868022972195206657425910014773846087786859321360070437127190347835143275674151162224569092903842838275711411395711984860941411107684397322649681019521417736120106818991333193154043672861042830310913332581543397867187556061422838187754483073583147855060181629459155429740744071350620906036327380967823961945992102841607219934422927325981129034829146578130921862137291045710066261598938202090693723991688533273599340725246540821175723156418624874294212425049040909412001635843582507235362569799109914723853578286140017776707090092082478545410891335877311604373262256972557503657080613675007450831055993459009612680325017941213281764657391085487489010052494922017469213170477079527992119347339922780705239486367035672959968353262466022753245752842872851292099908674470654776919891521046059483083693271252071178215674931488845353099584385847103915839727172243710738013036778680841018631231258112111360078415192385788386077275775211535878551625692217958952268791600103275384982862368892708557566596563438878860052678085901030827474909598415494450271589101035258994309250680684450694582146496173229991536491113685973244772499614511093666952953973620883118972704730136059039968612804432657751435098502771792211494514982288715984722695933627501189690156038029544708586439544251861202113536751081643505305060706084668325011976802637430184112060795643690491475547308246869425074678922408254806055542920630633675135530941273819654840856218549881156291600502762479054571924222054966269424044113415545271800421936905161671497558409655953562612497094003272935766179710494467020731512899884216477227728619380773634060690185047328521229722174876883339230055868946481798530567574036043821984031869491007697596388746321722736255296805072851877063797997274201072907346765189090692158792453256426529782750664641676054014992966848453013334538243321195284569271927118662448706826367127322127350161781559264629089351105437337375802364753358276092984053278984591334511069677648520554543264230541297427763152768623494113393540674620658114159749159552778828499099340865376890137482752695369139023507143434843418578150094865415043060754729237174840638536172428448673932168590098015546923403902501420076977113743591747305370809112986535987393237718598497282418244942876041645372468748892942370101984829228630127334677671904468922353924407168323962085322338164142375893587528772567382100475844009623056141775807126154655999881866445116094066652152336180668995553997640853844875598000916535013029208448788714849144788423056331490746730774782629567801490219829648117445201267278894137237816444861231410824800211849289658694045033970405082314044091894145066826590746025422489450723000302702108005822373204306746520166720906569754969758967960707682192297936285543373324760104228422609437502485112172047724647351657584044170139258179861017465383335628117986215089564349545406745350803416549439081289730916207390710610444209402571397945233229456769746395828086008786647430593018657057516588672862351422644404071558179184943478308900863249716585191051862467769261110190277222065788530026881595493100743485858910476712449358658837072113769068006275981748911738756522100080276078089358799276297367422326502885300956874783138193178138445325500016277570658603515996074668351957586459312838258228649076828145892921372328536611910207556383181025606374834541983641767605982677487840322120752875380084235611164640830305114126441707842216667078026073302203900731464308725426832847004901607595503367012298301829549123330244428834213891628630642871840909151660193233019410626995104797631676694770832495478554094188027938739190457442133255040694674626846540254371275142993663280226559887526242189886975050872235068070912423631341018074124936688894810278555933435552303269135674726034051570803569754197341867021761382047260070085157170563111265254945105666524949099856320952836317118559091639583412113707120069672817678811125587598112084294758670771875785776848049490310691451911979074455366910828154788012182544351045201995248887241254991999230975822802113231255650401326137595215664926702600907815611470150097565529894583286702690253950373605837199288793679310201371093602308741379126624733757324424732081931430420533401669674405832552967692067523558803247308642211902477898145068115363207948656216821147551629833542564798046339667058122037589721172401855814190670432127972985594006856261050148008449888516307689463585009957859063657323581680289085397282183483002175867804717579840328109601245414515337089860440509970884160872681628828814350579892332969126887795034095271255261443550350660454869848949019037170247344715184609307784354028089342176691814798606511733014536346282143817403768535473041878681057938038463034025574205732333404146571306938727759536954712635911701582800276474028485963782598442087951219281947458084086109849569514170397277561924669527782521236000022888335694490181051617895337682513100294474221612441588033928068200522927548211749270317491398240076358647863645174966500353045978296125439211445515771330731772757606594140932636383385649803824307798723616940370865389659142218858853155756689198672268920759983866600658772017971082225722480424647242324473377245175632321590940751975847549369300905442321625470695558761175625649074969387134298062386933307363682144016382385146634173500192754923551831598171182942352756624904923130524867881587822686851691565944592481664342519843619822081792268535656063931934886622576443585627465869001801833409621446398040277184794204246720276307080455872098843777359578419854123144194463965236534475556605001518589408912070951993405367544337315474495628365943594685152736890317498063091263109117553663081078951495033633692834450156854955797818026763108451994993169805507741864752763714158497072069088945298370452286782008455978752602201309320593734965465939435919973034194496143737986614551335441771724972662794896614221887801231618293246536268287076764954873264585050846565901201073981622278686107430762169410412070154508297985950472825188259842395017239898503308567621384990585427703459516245976334460038619490258071178102454708975000518611501369249922230909945028589209072157660579788897445344078087971263836316543094582401781914772797061718386475265039399184406223220902373966647124308800560865686927528596924124289542901252771208211022369687253304015770450799863021866525114195484921865469614559350579131139589301420870216416738763187019878967769147314399625878730448234734036060474186302374249325241715569349685075608113116214237807823421996695594965797527641237690556030149939561477083068568899587750227724182153269467060688221454505920789718488784433493152261511857940957245032186746383434765178998938998731014145734611018980408031926814095438509769959403775581376553392088454036737653821555331058216673863046426903897156757443476672234940423846406198583839825458173243387853792811278408171495583774992022603254459826007737261201838922507916969136567281352833455792849562019877055527374456873209834715681442849583096553032542598628890041251316685299992256686156248525905188888668750203196414776827037396607930258121375380164833037225082092215325863807965102966069279643595733118325863419748506779686207287911641529067271666625303304106252378302500601766823776991204206604854947891002793571506390161259014526511657774645954926634750570593097560585042949480874919615873273752248898094169211893754946460536024073373197404246604685239427135123603637990906862044672684763239666374508214150089806953740264852394783731506378538447629305225408531494556660423157896650441909331064766873922876638308109437604886816445218781713999646888445237371048159907430689536507643513777253128989126305813286800399399336934340149826138216459325976754997186645360598906197394746245445369850012816742534276472199412927681492014950674585441749091910232317752943307874028278855448909132199571354457339408536815374038995402739879518908436917493423264146640680760387453241689628276051178759486089677286635884588816425459450522610444092874938860826324109839892557662122986304680124531394370874081084052718336098970970912538339802812530633093754379642160813942184946832548576306804180665479226882230897087690526536883762151847957475165766234720193215922478608653497951015112613521018916411417960000121698746423790600644156531141890786873068842327137848654410781152515944792603058279893766102791049429527311537461069842153436516828179978107465371610105391934394207458476120926063777886214499407660615968749897202967261122523479292758418431201854699803366721501642050920779532281059043478194500396273909185591743729948226991981080535554308494666394362741240755251459800498744896239143775318473438440054485241200468000881995849633731427156151699478270202567236987328573730809686826137028108712657827978842445781026195786184391466236690218134758066911409342199119305070016596823543449595768004428139217639034467079594290606120337291748262161501571488617477978611541956858729527521459426456860408061224610541432138253532172459012257741641653025670079764490858660445984377415559811916322117094290834365188349970151840382128679174030554916526633375133938341161162459807711184520270303973445665576877498190548411410828426333381823236983232765670986851032085956515796949806338535807125376036946871141379339281553746697444073021124002367161545475727379943774592635399963601306220311972190384468177292149871811350721026250102100131187729686260278984400992580488586078776914960288037091501352621238463578500510284994786988441717571962176624404268721153848195045320195477163066778447558687600957571993691517535633664797401755564447452850932573378760753381677145295130630052512833657497501429959265924428029401423343289735557179887265656415353644909857609735120598949220103543329401594418327877102286318771287972522863544223374533553293583093639551908823675482680941945658686723746644616326006549946005586806526954723181842466652543497728958634463260155314738425240904613825969098529005274636123132080010543131888169224062857709929483027476331383630676926351626466380155851247582698753417930745595307224711955478383381050887118229269206046872368261488582726757994735611476885408588008885518881801091955830268570142570456535118453129474036886242926680194350969389942601156784348075967316837329497140707279322669920676504565478231759864890018712208797946785775986108978153613741496569803207077213530512096030791106590086794581048706817102894916835846294037001407129494504840091931808246035526028961495152446807053325452598835767490675273466170621679450428162187920280021425806198935128040946213343315089034667132884477492153045840100243890761464605187399781959012446138618452032471859368039886492952109475547318297239311861512252400793488871628855612039635417888732656407080108917586883714734200195315244187449450580079032393751305323198070506180568779191514825825514834428422319394213122622552887178613627902281370569978376535684189950732513477775473392253531382029887872967369969618745742675748712025246365915359342211896822433245842911471208392699152086124959888624514043054506449269441792488481733463305343281628769403514422179286093535345763453731667839071708362278212485187064246514525453185569671495343546103368869017610826870205267636551537216707583868428806774050085694782259683786200771034937622955992429353192442256548811349644122162263889230190383665764486333081283426797760788160851498925576050832724798995523908180713183058572684009009668468250008405662850755709709988508848652019861162219357884552884965231549071599219972793418601563604416732737425220556447205513785794288381888123182977551000684227225706533372444837290290204261044763779168312277142364301430967496040683027670307992006124406848303774251802220392476396816442551918293447452487909791296406351168098431513005940060636713744399093466669626082749183823496470428754244176100288593129417896691726576283056681066300095252199149652047000712745594045034365509319468477165428145122635010872584300652701646159741579083636009571290404391631184965752508416402710602929916298730540854748609340176311712542964456272523197490545725625213543872202957285749200534387778952474300234083733925443489306904378256264721738613491650140086575262114165983631685233210000703310195769533810344408932205604784518759103712876743153201208671853761054434916360580393929827049890948015543867029589961846166653179649688178692892366185345492296145237128474564267851860821153538445202843306517396319321104006482112137069114068721316916422427864035608099013291799064615266602644636465828050836277218947405071153978752008472334030850438400690750871204159525819300887745915623226640401361855000196748623784554649676008036907656098668515664937687797873186391236368873909258173847192145269715922568572694701358371039358135596502524733206229635548712379636724904888034227572804830178015860518653871562522880461473048114444217371911907851311711243372307370117502022215695296899030024481171571444013825851476339104079306074250333023682782670695753659346154659055256518104303313688639021104884903902299934272225606558813325104478320889015456868343398619002978469236100758802834693381450354694194265701651319023615908716383516389757359221059336797830189628761967980284404016181882530123167068474306736035821949151075223367201809412632446791482391131253786792189812495742845551108985103026401775914711548316794958414386378532168561106261007050027896977349169517854945779029631706563384708378807603961875600285528903186974512694015666888597669978339688763992978904521264387214033357453706424400875674574517920705679372523343975361044108167906184632542313373206373000983542652379480570115139847508019602455515343254479750241147888488689059052661126449026188034325928574997658827304809495875592780260826008053710671933110903872033461747541927380389039561243371826322091428466532166586616516824242515993190345364938354161843194651065653417892134086859176147659910717760198977747029178469915459530962138574283453548791509835868149571595147353795459561859636077451927925680994168620754670451064025626660669485189389403062330852483371691842730426461394324664533562699387856766917068328957244990211028033548905175192814148384748586570696006217458984753297224752716481671556144360155762718325404207479137402631586589735997485097234363858304084464141364183340536822607769797328552228474918499491941493107359929742613678715429213713401283323401795818547259816627374889841953055733233773041386768203791843663431036526520404054469494065571246524285053243775214229297161844068034587655872500789674823297532538042855280801126595525353669732832892114329962064107248829096520720034184788339374051115203732787182185428301902750244803359688455222833061360284121054587610857768224878320283914660052154898814621911042293199044874805319042234174007942312887368162028313554169404940602913127780011735574123367684968074809502382650628644279378925892460649548951720189544931034524803161821431808949111355874517071662667282152956555472174740178312080243197146420964756202228280199414914971405451693586097871469562226815836757362383224584210764313247166043049710452727209303357453531932533920553339544028296369783563547601724628444317073863126484636092691780322911530812871753068445603065257177454492700609047562096580125886510423335943069935808352358432789836220105454237803961512374845556695546589679670491711578020072739271797016174488697663511487777594857877896163438328794785414934306898693979832003046575185025014148260505418393442780213747747783291904699214160865426546402351126865592396995818901493322579819873809933413207704944793489705498462998924224877387282145684856467202123403480285904884555098655778028147151060655724020094508654039895346247931082340172201196772557786732816806618861289197636734016554486103306550882173919176427474839695535512336120351595304870017994766258148996932711323410813076964786949454635984786837017843262616186640631961254700169353535781516559833671210207003249053233891418227799469786175862764643622616194065706170544629904912875987466990352704544780127723943473772743166496580654257568642456242145988576993242308616274326097094343078329011409798284565918363608157439825056098041193564752539222748525590225651498118075223730842759279086622579353821901808641353801213261430035588035853273357078112639566410553677456799979582063014766542932794133293987395340008278436908094878324260213049130878597803099583744811321225501998541137072703621241216147121195859151681387546662533701537789216712039580664092139121941200400470539164698534131567941054494302889804237045247253316071361547113664194523050238253077570097653036500382689517227322148710816881777152383615762550942881193062960384360062896940861163390380854834702163558411150116899269044051967222142670433253699434982257056912307329858139581306141886839342955466949763777299115358083709398274398704047880493686401710245974368393204155468800653015437331007739939608328115650710757128460856295030632289243717959898741425826959685925120280305638069500231258217507622928249460329052235584778471565868952741412099513928084559159960830603029249704830772314932099939473819117814613759293551484419547731927545102020647633758417711808857893178360265938367115844407224318967521996557282414305321656235281308096094439481564256577522885726800620147037379167546644952794126989737407398219538244601549347035947906248323478158957739688312513666429193329914095174173494689337322545574303949309172959200599853760227368433075184328605618895104714364064198697585565160321735653891394535417630015712723900047702208586771283040474774237383491654641204021898370341355370774639355317736625318276313265284531687012065780745413346793950429704326851615748535543011374428452316477657165087699884901760047558288308556421566935397542684141143160521798277228485464237294692167266005273934464037236212321650103032506332606634377564004409264178248838188408903379032251581212908691638832340198071462329780712980369823746926199330349417463012236449572429251210737780778653609185870125932039547519887984535752036958391118245735242477333891920545611554973184959281416374085929569461550361669725082843267553002339920828473360497472988167011305916260597412654081667363418118716798887850337417926782356904977481551745919810818718238492603238712966478627931236845227785443600879844829824419412389046598180260668725396426482562390133544062270304863530239155799738077793873988835542843522663813392685222902537409518871086245983665635116502059157917413578066211504536601559295831823032397445167762551466003820463213344974417902554727145219544519363597833000852572840900841709907877509308057899405433353868508321927461183252224082435645007690656605737627778489248417957258317380056853501785684472762703019736796363840439168685263421497009615582429339330959404750647413211565257048413727727485783648460825929285835326178713365442015996425931182138346316358919908441189727500242462905238714411997010177769309232848536917536265127047209109556245254742708146295125380605658720035792607189139925653559098759796089715969746698768905365816230833658084612712093889946610975747005878719350176030489832585618231745647022986362053275283275844421526486797342351140758768209149755073304917333220002783909869667619077449750839064652559982898792886446715715982135853246105088402631433345661063991687835052395532334492433625914142909557525101596081691960769764118095769997833110843794227605256845345411364291081278021743088834178421731305962743836389205635468379487888452599637084410674124854366415644927142343407061432754378116527915573058744219958316699926035913964697880943909434184493053772518923374590791959827690072676936282139448985502404542545506641499238912009645672211764496758085579091270677979526630355310629262388835575420770549599357772259225827993912038790154145871437647946919894377838988766220061981556189955612148823937994859551085181415120633592917272402473189903512029292448286950907021937540602748565791440937453461121146057941120967234155286843635680548742174260489740820011438900460166275371339349550210817048624306162181566010821993460262648150222465287636906967289263302079602893621995460053527049928572461033067821215084677588279841895863558776879404591665866044208856483078859298647697268672473259819972309406751016707925183587035606892698941520420320048896745266411529868703190947013344453918808312319072709940379133302553635964566636729558543382644707678675242434367513335693161073649745385164213594945869424612663842472805891640078103657459655026320648999391092368372152307093791260970266529874367578859707487325831086414042427746756312611182001652361024633649442873179816125230538267624253640520046429017276463189312998038218924668800002692099095710967972370835789609967874518663256865842368133702116182433881038599290993945300510283526673127407414485345708369423877032718915276155774073169521381509234901433396370696680135346604659629049792278003532792199564317137075806378437648167866964916719363559887509332459714092554545484320469008772205380170892853959842229112753654652682053177983040868920210311690903559403640034784198747807029935029304468648170829039381322766973643657085688884249150849867172331266954584362282755969687982949602006407316683989318309686065871603132960955473475469106489714880543340731383914595697437065635506308279510015359078186320780318135976455594021690628421110225558355781100274500236118552645621709421007827265833896149010289407512026008426410963447989976139375911918013907622454770952683395944550921330695852738680565975886189333964769111966028460965117064801748467320083594398828251954823846365200702371662630291951209474303728522803059971993728821579232314849617021045534218937490666096984730551437277020732772294791748196546522746138531853778628347649607779849859949186315878749801765619074013089570088164021009055511901748895705019803033304880394764627227796876997864308907056792050252510325356154557101339799975801810302012706782906307039875582370566391665802094889154053539544567300129573893219220318681232504343822638038799593604417380848103680412667852477281211788437849587536700678342875108598922524165080505022827680635728907349240409815735644911896092769447563032824278429009849294474029414164357148989782941809938527689687082491234625278969816354506280812606681557332081218418375986760079225419562291320793931102852674968865637195901181326808285499897061214221029344445436579524694370248315558534643978930909764781752718678321445091907188813715661996472660803038004325451008085597262361077515332686491767359073231854723080667354193568056283516433967773978114750673596995926783938917137261548374523752104982563184920558761539738153755919490762067645589597725689841462491360945310799146295461149150912238424239427092118303160520434874946528339273680007455266800423495693529552122748203002885315269379172045470644262969625716418927838595586091808109943201448412872811905987723982718722715762964950614878628832371519158816974043182115244263258348392591004667792990266836094728090950037810136732149017236776598323654392313848215024781795868305945297558425721663921422933869392990783641748456448446760683985455477811191935449563802713268298097043155361599668531102981911474130598985456956500989871190577036118456279259527472176376080013912691159358288309068350933748058413370495780195128877594003070338473212753667312952461844980529023787872470461107514013671516673050184869158181738549417708060597982530982243718772933175150915132433720179147292965960796083256584408538427033204132940435513734739093324323506383214511959564006756977399416454099194220009260791097256735292480577981604977556397099403341609124448379810143565899735639249315487374119833170276987753090090240666323442574501109916966338600661492879096037809136671336718078236950110737873351608160499599419085019935410834390055194638818325827003206931074321877305070678451536575847926714948200190217787708701538226956791500173553952949330458030431092894292031842716832710921533377127182678878082012990194537974925923246138007822862026180609108835224701318123027118997110129394904162508753524942452501545081823667767542607953754700388021582429537338035274180530460666501752616778736154259648084929321367581308819182388507060154909936626482824944895190406612910270358824412824859364161394896269745824128168139851212522107203775993025334954021392668339363800421432483050509323925425889257085316125140037346853190982680251606428497996949415233483726533119700291814260618832995860095349015550311224951332200509430272523077034468516389543018530995881274406131152950609287092168946857233032469875464048614274219458854980158431981715699619808433654422032654859083160456542299624257210888467101889999501742736588718798725012631778924387020634358074320844268447196596898312442035050966762203360373557667903399245670790549688358829847386118349309232646177537356347807026926794780205072502615354945849951798085299932677562554795986689812694154606543226509077084669913220736946472934517332516083389513158391495691442148368031182962568125981813543967673428452254198192840882664324507173827225463438132395226597245070256207753431056641432829938425581947903514762343545529024239544963298216176600644257673223554057660994070257146805876997682435278294480126637757108936828541088970562991487474944872786992928744881472036034996559415189112992567767523276701177902011648044106938825316942129448584831986086333896190669177539008180834432151056362252613804689045545715388847231585593872552357407263923966808978659834665905382825297609154500363382112153604716884820421928827996514002637349412921104503324668011070206820776201580290456315112762427310841391533781067347984010130472289065322845472532051328814485681627935545141939905156871532615005360341940089803946618967916906463052349384250598318117368362055968518100997041259647648421653256343059373085801315936629464997010770389329562133359016630460517556741520042257128152557373212278509566164969458742824956180308298948084455061951067194957911754240884148855644285714181721981801112640487608931179386862017534371655759502319235473396899928724366797872510701142334106113947540624453212772796144105972914349253701090821474419770919110616576082378288047134991957251492494139169161330710978123682760002977881879231744119218139586267620438843827382432388047407995737283433163263861228244707154493183776887390152211932068074961868678068060558504403072638496559984231611995121020901503816502735247075825313247083026548563838144884094358932206041423194173893009417519865197013896679848504512864046073061528162797860064185932574177212108706266485089873117672341483619038183004740620051313927540156586455061241543413262481947487861394672441020812796646794701183186256924822701088531803597442158420251141239145629257950781708147592841575202197387820170102234172028125790954378441948275438196960798118363459075389961833553660612684698210912522236518732961415441436281799719080665664522952912527249576691767824080593108592451167946233695604601680008151510072552297261340910838291526725318017283290315655132902035300723592687525614786617922985464632517624011012080597589923839963982198535608724846340708991658599473493810766874197908495097059578400610219774105383233313381712726227570311191744844972482312567836948675744288631652729402722311988911082334579295249809333165693825225252516853173612894389733804230280730825283883305555818586820782344088549120838274501456038791471272984630237022648797639968878079732977390469663334160447706488306693238604676517335875277701361040136587888274405728561587653500920163505737064836148893191202778645326358835846223846036616825779061445419629158240791511584106495990525631162661229238152655900306700438288948880923731351027902500595008974322225223477239341972129522837342414369417493031270630544427387808732819896463451984168473304398954195149242794975425260194044220299993962094659210018335626857537302334319699620085875978418976688309448074143918184187181165924644195436284910042255159718079269712121009193837493747260253009585309548113692753347607532813653793193024073636983914388042917849909772399642542915716817766144730831214320916003899817793664668224405167518356911111345617726539650938247479624368805156238538987612434261779133029275768287853230132665684015817523174348985107535743977764395935958583317043754896179557350014041980997298592793007267412446683405266405754177884167768775641863516240864339796629685058331544816901105260770614825238302001503024123249414302871911263601810727859715868093647799781845469797832403650061562077773688699755675930875343563433581455929703311144878459700000616001242745271264562507260375663084906212133992855361463449837233656435252003514311960038007080398265772400310517507433965705061505326321024634560318141963501800848241481410002090478536757201108287901198325033300518596331704449815638553016410428872929547772921794355008231916736873292659483926690668664447124471833706832354648202356804502916710770685323506294638904957309370648400630095600071881155683012439999080625794737804649062060652986432369503173748637028300342514959080918061313493775765244713186612415042113925636824711646520782522044029519859582285796161489276003897746934315915758261262600546681134494384729594896818011427627398936754326492615701675234230277557636632147271319817288931664494132849438309697911813890950656064494963951209553556399788398589548927338523165690923671061099212089987840052330051558294750574185147176470714576523699432001610661140450322913386923290803183830889314624066625723338813149038721298350070558610793384289387824492076489563473289514216178163919706532884251167057122662143554734436049315011109192852986468894731211672171227701806925101733217636020254919663058291021798834119801509009339125005786871428495740373973328054584937421429802626064701750091949523845863693032541671602714683931108896665192947788441124508413517279872012560160901858483548803450692675378235586002463779771069984170408812022664533140093464297297720614206761408212966951443902964497663732142228540686886053700013243189417543702214343509480477746273735519324297801289000501859527182333620426739175063679807745412613369541673243420094640392223762647831213124163980828474102737336578537278980463449616444754387181276048161840203110876162146313592594633619696947145484916825174366597383932839098902141556197518175508177768862202933746037478992008994565590144384118900713466588110352817991693657674353332945618771194233243739974187611394199662613864413976295013613442149914960134650112444672672523663745381057028035971448137888136223936308047192336699584229969937609246646668881399128612440283326590899064803953092459508698730080845520923220727150879227818341897072235584919922658188158481960236521151927104313173128445847556153604758218323940106814424904775222987005311571208714648126496052390497138658835385182427135568284228329958791158784046325561311443169442293862403399410048310111785908661882602315902542507878051820940849305628380420581521634062096448741095701676286783841117470195930190848398349924897587075142282236949688938389632839221773567753151938911496077112582713135296346894352089876643984971330479283928909529976462357370567369937318138710384457010241105170634607451406512030235205502006888512851642884197137170270740146308363503970202900758951741685114393738227982299856052309661342688970914134159139822262887146720774062552513336388012023091508449850513323470690829634534660588795575097141398729257263013177400435003997019465942215393798090047115324390609249058178910057449246247224629784841527200014203940502791544838222684342690751071205218048164427845792375893827282533883411452975255652506006673113989433018575127238668349996186149957211541431076298352298835247669694995175044720043374354055891624675570802374481847877108478090554752073283902046422462064444306858208492404852670583323743720231064281864032074883562918312447089664774020662979928837216108514043441489256091645500386082824810598519963248495926865403991161092229205794972278989846349370518471590954145545309239540305815548388514023228679096706100928027005829836518635678041288671129683682192093503932459994051540245610405673032972705891429589452213318421950993529814233714591013904880526181171556540963760081639491948122897603755842409742639753610682466748628290766192454656342356077406571420578411815349945143105424385711160055920170415971716136721772414935320862944644094019094561855172865727376756313956573259525412030257685580092227881199065706160727987576282758433072252439642525126517435923665406132580403005673983627444240074114333944115074649844812807021192835064959493800588901929364827334514477581700105540548922384277729990934917924473067617941877613734710015450957765107827920163286635237971374696198312352184987567878573889724562134322401096782884436970287145668179536796570800526365323907763706754105491558581273000382076841443696421053690987178789601299089075631587377433131903346958177243584152061767510291812483168886685992189358711327803911960956214324770933757609252809575810586808493219183919799585457344462119029126701763494430487074770591661905828823296052199902922179907257839722450504955027858905172074576430540913022723222390123249009472005208242219311475206923132652817635265635496104029954901215175776518324778635344162231887458767783005366024659842332724954618933195411721208638898871412831535401774618418973417014175610888090482776742327761916022513895686739502781716029410311446988834512375046821311332921254247198494642038506015977761121725053620388264119531412844210775592805975440970470875156831264833553600420899916868678855471484606092967985755507173044391935142675183032209917992249021996724412585601036841398624128600707571125376406046101492552497800552865869761892015988329033511702978596390050361689994466989774886383463711356584631595292120177770444277921739201850490512196765923156285484139832631329179174702013033793740296006002244596699086452245283288499184175861203398365126190189627943948795887835997191547902117226570653826468372700182209105277193684212407324516716305018011558650549520296854534582740726523556683823952950347871948712858500939091467417573596021866331212751989290173722449971288552235199683979577242698320296573953848482031726832623344807141288786271186303630369444948592162578891216773448623390011882652217915653624231626752423108022279704310801152833753571494051859039178144644417017259038094989132661259683813670623289870952490776079280774483256881490473379652256401093352072325406850775290940722500849220075789389375959365321523755292463795654087315704044427041894818945783073914731111430624963812318172581896197335075101223583100548908852583736606434136502215123772108298945200268615898508142739372257969041263010343398977015965257123548107146695715039176265723693353432712389954502096653404404495391533826778619400819853288183782403907802216677438513174121910446912046386288712255755819104703107909562510045744975034068773595236976165514461831178783004128878521467975277345378610573683798840167987421062299487430796617216469043521846876160266211743081313167450076812405196855114072036506788208745660657126394926766104197857582535538185520020338891640832803470635678643250633899635193291003072925620522202935469668734911450312192453322680485743278545199104762173084803068106860264578537324760392765255424487929439075322063661405703134485308616805327089353943776914517095635242161988646974137926123627154292612242701791644154107607131326039828225564413611605684446722090816510386754709281271367938809930064802938293114547592108968291519593263739740274200859728921236407406911033568058130007836498957547243495823910287807205648371458161048030260584201164000381818242417437137101599998077142374792313999762953444720490696431273229144164977803040045025559524494235823383101319831307771593654109988400121598371096121690565321001823210449201168633498990936990659263420005850029019776376782135153115283301567456218135685860674149591102747586442771387191552050639513477508527011081669381758641341843932323010686971630157444018696369503183997957811356318018037224767926003257111494430876087844774561026357383147771281042978690138084157361504251577058156049630772244254672711199815630719645437280875213660513181796451533065403654947544071796199414679117256907615392098569807729467678207715970779939011174268008251638016567757868393606873399773013626708880098720339282488593277703468118343205250115746281881577025828003621155892849377846947100151962409322618641678040581192431108343944275031776894113793217221792347407604895440643978318359510700910581382295110223542275455387659328924805672995484597193103177529019181553495003847862577547191090049353907956437953647851323912367252837515326167515483074399058426207128071742531057229926742511997626800289882271308154398680517477534852217588848645725368348423607409416397174105265340023242017518659646053453336155952072914370731798059729125346871935080515977235706869637058459883289095989518751355485160517565090907328287176519354009060356276785260281492982375535375580501989405054141353889803674506139730500416412929195472798301096714189818703684606977986582709262157204534744806141650170912683697630338162829725166179598991520012869303031994373048459366145337643398827223647354596548411179063558922125670629895404645736441766871503349657706458141289246482748701555110628547567364806446273973737325263424971438759744638964982863942480696113365250109975159333710777247626758076117592308357433032320212725791261813281844948248616304930216039168168746400225851726790673162304257484688275559612721216800668744265265615525443975940482023006956604819745379758606505107235299348256795859518016870993463427613665337496227657860785776715633286606727741838847102270526915426892258376670321185084424650384215668538495876774684758725946549042349667675184599963779933519541468902690077380709789123709989763834203213572124612862958974481167700141814595240215332452599393843963454918189205643000506245344269870743082444435111041108218608088756010084585439284888246245115659591734984583867172896187897084561204596758829833223024800061294680219126434771928694795563672520967213572689908384884362208577447195837689737627222528126619531439811755464625669750836645753944923633884497749230982366784319001083374025047802077950265653439084630928381748390715107066527887285868217121234549230396105019953255923201479973145442574880158307072878678386108136017843772616892779666285009820510392791930789785110000215837633755287177859031319854997280627759341369179591601170446414675367616241557242163404477234989812376682610393920049115518529927779230678613740810200675529678423403252994812975273048136988557332301736327597620787837858012803249553112499151587116568312539090221095526959212174685531483385714484848397699929280700286461701515508478116822334627778428964864083490653851219595946282308881695922004948597407390793652374100861458361769461094954285269362834387869261640599688119613350798110785750787284273766196903846578245207875526538728396301731973774895887341436369039208492875350122098328554562258982708980340312005810440574495661164706759442279177609282203006162590167754512141340871229420052787135467821043830911171788009922044175787181909261515252857838257004004760914241057961716212464571171102688600225212807755857978555605419485054351711269805153915190055353783261592649916419426927967747079483739800658391133827133048311714024797895526419931475105481559827318184454304295716271958279046815123625793438443884614322843211109344942970396319280573487210794775983410838528966659230835642202556280431652017506286281311602348901667548845289629294273792759196942555337271941348236013634087162556176165574116458375321573155194707856209957323874088263020602471556446714738521997348944493504954576217463353091399109066656488896282136426649466391945962871041660707143424839676677295949327120760563041403753103528490793856638551868226736529435189765985221750678866464395147437752726160823481811629687276405429950574730213070786116561325472291040271082638740712283813458522350199188686479977283897960142267526321928388238514918242608497458580067836693139699680065115227925348367893139017358084409429539726845117370350345489631645211345591449938775042669220164176702858711332565216722346701586338343592322785285529158741740670212589623238513714982873738115208368604359685868091573728201207297781223613004920993495242328824140109678349144176258880884001877106625238792202469128826086973992352253997795371924037754835882426096860486661388354773435480463005502548885835827206254652008858314706266201312829658600421004117702763475299580827398476360785843687828797614763283010093968739896096723699845065052927946748791064541492901702919937899857536995689306510198775368031432826508657145676159369741703030084953570844863255162745801092863583216266649846957079196341941865545082606589141154080145580488887483699599722153480596962041554388515264955987317450140370662096497630127368234713212582712827696266498731877968565976869972591446155617046671240552262693992861306084273088514404694093485434439463721729244295607866760099001009732459098266294128989474357360659983407955565385382443472242390736384684757454487231021804648589745032245083609968128314491128755420495322625766690503527571964756173075523924699707665836005769041952655506565985338888721434777580340530673998096807377806403798271120539176371602024350634581405827358196316673742120631154316127740001114877024692645237602406513673427894219730544698607209412576048248691326708549206835075666122754313430172665169750315124061066039359794700643345058653750693229346812990913048347593108444102179154652285910931284100780809353293417398267824043249456350044628896484513907290983365651820384721132553913173673789104205796726004823803630071305100487139410302056371244570696076974340352433571316002529131860709222470347435277564139988013131617437130521076740059762156743801074803173051788171802442707685680071832232312234295842244637788285777066949550652911803732209023077592472624921921481315055071968676975938578665453240852953635174904196041779326151313450883435025609121788028704500801252613979295537428222882393166564765787094852224427080527031274057399464738509974289511872914742717247274227265184368712108980532171816180423714908441733174895138074489512080479457653740343514069697814365736744586072012386377787689005622669414956716370701602660253355068414991462332381361357774496300853200986462817464164825562775452224800028724941490846288625938460566733111482220421845263144200420462516055326005401695511119291668918458310732488183383338094239445742782738198054706589720555149314942389472905182738248228571387844150369312292888119265536193573691150019410146526791334700690101771318235620279816252092859118627883971854283109879512578713169111787052236925979712725000175971859672945389957087221570677690969942590897571688761210086114728248350562629667268376086467179159376271964745963172716985480175782468156690398269485062693434023645455746187628084102622598595432720365878383793948626032433522618305503927649126187128137207545314311121492447441500004508334299183644893724642887322122496757768901038432886165239319072024909174842667998744721865549263572551458289803995475650848132782401217043602759587245506809233359976660047266966181475234776116963342019596823769024562745336067691411827353523729347424242381456741194013134611826083216391453657376105069875037583916491221427525712983965044414781159698399025780359763687093545260394076503927563204460444813207628342660771389715235042221777207234976138528261210725648330575969732236485458392291621927918230709080067064227361900507117026746943030029241800578539346189962832017187222290551072755724649272670361089161593726348649768843668813097750606987181235789392024516848617233180435077612905444806392579642990969741977217877486232304061030068878773915913565409691431174857072655030924857766712353027998539119125515496429932599865236210602379145518849945595766558493308891260059853066165917323339084534756505531336425441700750963438772673755155988319326519259501863151287610989452927689835400700136245073210359114092022698633684520909825297784543899955217577922739488864058787740625449634669371740182685680132526495309335911173441468761282731125745529220489435041523696828175838427043876813997226685426935360279287029474235364785754053397511188466128733214696315971476027766506749995686446537156238615368659437614166956675738280006684209363725291077817938403689624576781744888239307573475900857043249666197436450141256178896243492874801197597262615006435133672153198577970983353902426057842855089765628197486707156645223315433777549083754279339291509099052012164337669854250887733489343331443150748958402792446574332885343201223543120262596974371992764845600210130937115474367997787392493803276031077262680382331938064477858482401300365247137413614990223962478898174105568847627421175076986714625574474897469158772413056485490592628105379777240220069463559080217178496932113660487977722870432564080917007600333984541471660542871058462960300301784310225908855419672930620684302399333805595346272727087542787029204571112054929369668914795012009064106849472332658988115446958227510618511497676956445862452420738169932629000813277332533741827823327527732984729673859844026317399684134524561362712762608435169682280237601686451618607552659682119265916642875537703297812077649705109937425543579365554214115447832962888557000128450061132870198855188828703436149302817532962107754373021989198649304353710093646002170541254789594597154026770212277905690476798434630946974576610618867021604426785961875768821748981212318581767314946367903057684896594381645578046580488899518533711640125186006719085087419548759433227423771932716767608549071365024229478499809794572126633281015977416545668428696076567265688776393320355873332987038794271697300410872770165777148258993685787512622792249618010694303334228853249080236865154964811505771764226878252256642707259177336267211403118277209818833590916520539602130282549739596046017733335644913053739645970030226353898151210397977029386718072485898328584291505227970054311540911061346674156774238306248200554123244302564607121995464660494818030836958650376107025070336184926609139841066498984986326672048825466223962635496526120443780932008407163221467599624622306318738103415841007000508441899911408470887301574055538939430359988085691701088581270299386510828103466803837715091735661361746829574472083518160169608263783394857095894181646381912573189930293136849427358652363584412652665491756112526221234103513045442171546370165190201981826011572730738455211439109870507683377809674788513788471396935826503052966550301050237362045706110735903705974433057472610368210033435145786261690865525169153540120563628596376577905246097181563784444780898987953410373335644706396077158830458727870484662687952813280792469833047971131976580148398068959510121192038936894904899658778638604014582649670943877813659670720257159566700660507030763008702188749377103637744897570901501727615917620987309015424180327546176006838827508278315638617352750551360725369676342238997025809072469890604104234120775607156083453861475207475189942960167266598915167645670678669709996327041519474051327253352899794387781439512015149731135619749215198451875977242749889673825698823743314544516212752253877508969249971275591546934905488156931178114535275351033438226585627020212591272354345490365371417402934768349149020237049168641168729187312803176481113685739589061835477671432132741240561889467176812316830249545526931870324327597516316737684684339843490004323606172230663522546057054740655077258047955523454111945971165550293339946285086792704107808363732149295912540638780209115805826943773594248364005949276961740608243900117229922049042733299014001811293365128155804639161575066007162115748400873760562442495771654328391334127225768812956914528453736612901010259974294896533471465024400870871362601336272213640687897868631893127486612173134560941605878455252636814399190718933051426480651834290638307011097650304453515088122555552404765360128913941607278242330015978324261529983514284292363422865735122390770376644068710196358728437154871479879684728624046026949830465860890937291536998166466519965184166761370573695756497521924478413998995343779334150577466953970522737940063349915681204961513165493487252843525077890836985810047401949269681689544910791281017556561847221665080773035160772513013919303805971606823837621912940346060005641768281831438377639473802099803413189555837466963444316848879966686677471695796865738019636120347251058744476999701113667520955769521455308836732699342916990253405855740249366138527835281034050394691258537237942853141583434448195893033003252738531960165352380476353508563480697067469176361308097397037779642192485539201184972156495668104918238772265954957364703059594571741124661457465860115554367076885859027111182649395614857074909597880897313419681817540979923373277290944242966956816493984059021707665141704638079445234710862306760550355113710175557130886481202494827448730836138861535171296270281149281432688638493754099667507079207172877595732735999534513213471265468005888317175898921838189214363343899169851894909372101208917745781065337433062618378436939514648541875988825213153670649997677966656635501027783881189144763148145111800350197076961699927312190834606502309443379146587410557026221738366693287882632749513384323634387858980030079509097308108755001048715076277349878388151907499743970861899343215694655004349105616012106712958997773865047880732153308758481228731895161472229135812494206923479602560107276459117396676386541445678895957632958087503809270343034246623329106052693042308713765333535428979889241687791106375719625580695382828886119844914253968374785522686557889191532793325894456753784131482162230016415636051164796647713015694876607095237249080560133663054580409952243731353534333606969902408793589025049197419539188882594772574724564112913129708421983654597854820295185778336444954359967591265045850138551261036180002584819066597003676385588805080566412989735909167183600413418496105498619783377382805419809144445944482283726088522382859841672868332003886209646805756237742519260079882028554207737834509946400267633982211243251905627482406018828471554561273831669122168259509989987531093520039866757965941633185230964075880771688298875180631820271984053946381235763549646761854438634430245886918103176802270458671006687272165001222023287775166135561897536625993719636192021557330094792112585139850574709532917787276245286510212292676356872263528765326134720993780207885179230816537426453729539567039590558447831355017734077573977354331552488010551627646188888323525422823976867427116774041599975026491676400678870001595689115473405274839220122735122563590080800440120799324347402770378954250441527926229067286856088398750510338754765790902544469176343905562208190578010127661549211137786123411202699445296025372300981747738824600086554575098038188871772982343705005668642929844230610830296712777061998848912069713706500514199977763253664502422916283591788238029909583246131115965733527755659694225096485807091956204712378740551646582728589060172957726113736527143890075824127607082740056863811316430467139692019494150175118980794216097603157819938555619188078491020470438128833726973698492432008201271852975334879776342999503061104685105724080346256993526897888978861475224757171400407720130118796010211276206958179125241949104431163825081240204002528850135166420171429229103594175300799097423779217525088731503034805024950769021514679963041107815301438377350756670315942598814703654241090877399335164669715963385342704719948513778965578687448947848790949930247243129723950008942568668815499739709306681322282738440142383330905346232367698365497335767136393264718383460841053924998171160708576519079361467414957620241783906225460333304541858605346536132398251583927188047860852105515105765187354949891657889910396072099124657911894060502988950987562032781944319655333388231182917317756034617101569006193870744790684010389806365145509440905889106092130667034759023066300959561061636604522410604999264321219861236712969250297606814223871145640306733305295257041203902181039395209746267683579483300362148818167964571679787690136315393269996691986069637183119585949689195463734535991664788341968620635130173455280460031924938865426639911260236576347495095069433678980633636769754298481703309372014964638875130031094698515097191401474350229578413178031684115144649448616560285995299227236846338917230476888950470292145615041245727333048104367641399801844448190951270458572839267624884038254877454489500844242000359114054863539562246568100360232135416417607876445579093530597088043289635471341681201708002927514417944749175661022939749393026007294086807382417446244802089233258641757823105538881614522580209087866056902473183935711200062926546832609420353878975594455511973918895701067807922403871561613226131185673707653748617975593558537612322483295294368596977254630389362115315270411779825057765459781321484858601752567986396394268843348627483018197830199743380159532523782130025822721638542013350281849429764662110248953454594653259308432722415162886351385369597908357237978058303975904478609442318817980302369397348491199208166590726232160908020915178936045994443027740909244420891267984923615963491077656426491708382339769063092757874569046074035425802886841297251882192298828830148458668481509169367223898107342499687509590179325654875513994461768399563230989987050227551828413374905741332811961365466581239115481036888148689903432165953966143384535901783924254712272844473960751914993954521414190628131839964667845360244944578235628123902716401043174008541555366304039912095544857936714858496371774145252268180645426578188875227598091333271340465230769085378012624374312544021360364601011057530717825446679129954057708373015193463258754908698308734659986693220167000572649251900042508488266947704926556554289484508568602543133305467281549788574307990102025421597726885271829436762990065568919602665988814018723361559256996664049593176735907121747381290741366241112183174219993475321378912189627856297205883052506203559054007744809209728259825217840120808385148756570332698714601923148894187509343508244150159254182897269215415219606955061586399572665631840506969735936195276376991660561122356434846168345634823878910647264441199678847478101717562158865762680435179348542233960172444711502681864586971926166015304234012195358249247597235629319886189257900487900696282040320839994424082834967244976179249041107389348369059448613058113684519617372396904651669783976037101438885969984151214250684558153232493004878754736853402531872317267924682871933870363361821913082559488065498090658436115052027406126150889104797707830413180598153834195921901501201194987017493885422773570323670505552900608392442401855900383460277761468064886884090505220221774759076017281662408249235826693010187112075533137440441473204344555530561744365892240902517062022402502615441999307319696621276415546157487451842038617067584183894484610332288673943193482226907558211661924443687086053142932373047457381997301263651863163497072845009424545264108490213432655803625920630700118713353918942569989903750926493533180275164167975932010295384101192302081163747700442226343995710459458040650429622286551345873780752387782666545230565332178435639513861972643822761673635616686540934314770116744578205067823240943664604153359005483950080797441255891696226355352210930962920339274297840736969264325332709303977414769688325806028694889922929192326391439243234991996597043567879943370617331462642705439092898981235351715386094168017791282305723568202644028772957345395762063344836663695468687849611012795613407582371808308595633427239564590729718720136993522439685986998996647145501068415126115987213389599787380893431770375261094441530357881252504067080043196053258379917056934746009765203413265561219442961064032347035073286785995452030098799767046979753056870913663338847470171069981856779593659056821829899970465160921573309441103027703944565840725943981681680363901374613354985843886399539744371367494515598088461833019805536751627717296799962128900781854277485651441879322835818590739444280054503244748228390897900986983493625086202302754254667982552876540049273604574363439468471331440935618363049794691220353847660239981122364106106328726640228621161775540660804290711154308990694223824623773474752320676983228584655646657404111123146643008857037807476697589505168677834808408031304815449023085114987854853235779995604879395144781399540271456024594418777920660965056153731192523245972104068308185637647192498200095923115057453194915292839851442556805389851196648490420075834968925965881471820676442588282393497966565406631939193443592881028450492463048673959261073569075242754128748443261361888398319479991677306445490660888231245967984856821156489480013508337567077886606443918884823804330338292826568101360019918075532480509974091208653461352167697077443953926469323055654480488010341944250109376506815583070055883725343282262905001904068492450323872569059402142793530980350588747873114774576652673621319207114564759171752544624604119825520682795539611261706922373664304240119344462268914198042264649779857912357807048023534195763695114880704157828463998119510104008691542241739105108064936938004359592092014213268541813494665107670175989594215653962461680091312737180460108509139045049225374245997185375811156550381071525516263516556940315982716673505770450144170265792277713828424660327618072910062927322608402848825831495481613113157050636928735427580731483268021111409525686127781960566690685865115426971007554950344460087369466043737035860785208325203275488036492477924122858025598338448122266918319828908142177153499415617783395361801891404380714405042443461725375799309537362715724595005161289561861805493305275975755106082257564671723938520697142812985193167190879342359339454568763713078784102891775571476933146934193201473074522114374041028930296251257660325338794375330524090480400816174179504587230736259154954352220240158382495507564883176827734682851679524812019218528720725017514327518031053093608678686886917624110556762470817444565957168535218694374733795032014759889450685625649145550595968323131060638152481170034422117894645866825569758672565925073016181234581576230136370746376417767924779265055698761934767499369739280350695844996768714580185292738838561446497641534719882421757437033908654487151613270843021169593892582257042633818482591087403186348673167588939474143126317283944870499055583561170511782316377225030321738647273379426142333175209357909296309075496722279247042788761312120263474851591156414558092764240422054253481515619583113800849013028261712775531860518030763381179681333139914187262403982703977822639664641783624439686356241001687756714440352040858086028960224517827235549400713357263990080937350321927924059487549850203553398978891849539948033475844239352832478502664067787545645619584725067555508317744892800275241483343442166856641127454345503569481805871309874364107609021660504322717213036111548272732193191709060967375302968427580306226039705845100960708327679367448265841826029214155546424255923014905506066213072705440284246411598843714204979267298913219825540922226344963619401459974051090218905460342977623927773474140845011431645335794790574114254448332729288932991582262602505486670910019714135177251310281942116468629273533448043935764195735151109800912147729196792305764246218493367093597738163278319192716787735619245394549338349142500043907545586791291069756689995509722103674566054440668114892553877939211605135602188317194761576998734023585098860167938088652372245797331058275247718223994775226286063389527067592295185954555696033726899583720136729049902190281459889921695139166193265807388959914326701725804595349386930232382883749781567046552733076243906519892575976005721419675955926976360039083832516387217799427734066277402242229562653931221732679948719134839753697357819413697911969391011921771927698280919368151435304122508489740469731775006924695351578694506071064914003641376128734402034236257433097066791328811695283457113559121228642217494911673140820973409074670912477252254190284562649632544169217014743557968703689638289604089026702173972229785348910821528179791725741976963405061561688237559875985806047734529514650315555477436348669384691588976642554140914223236919311470155600204419156249106285258431292838465750463243752767847522480176054192267470113461619282921776367839218276206325958236767027303136041582001780341807403001943515720779445375577930351740989278206302067864533463727655992846363626918758197618923264908702221872457673151943519204680993405520828534496418043376125400027419053265526352345576408537912786914045777670342836507302147481104949493572047734748500120825570159442650145279500022400191949296197111978304443873975983300397393532231184653085506239865278591628570273896757697705748647865856010876656864452168723000052962067281147876465390705542223718454130388694769995105942497547748966999720379573327132280303250900883243918441489076241670295694202523979857458829784751887929528513718125031029642849027617242538991039657163714100818764791714827159192740023343133566727906641836854868127587328319728273005238152405111239766496936993259629838573623432396775335502773549668465251302328382675918579493869344331612870113563910398715201688968697181347069652426767949130545669956590448902012995693016664612502291649588151718917343804801373170510663616414786997839190278969195078400556621843450222757591724345935135043796666269732153276603628960555550954668811118753837419768726572778724964762517528351513661354894740223592409711130493965591972200683656556792800823956941486412087482965152834428219310557983887597296522203181815023011432454027385970670226198470857089952713883114615739160159245327957258436135940229893452001029062191030477283960693154111933510268674923800382793197465679132560484093051713601592538034722658376231408471070681350962683396878983297608806486127574112808519256798018891280733688805977687082142232648855238458494833709404672597873465012674928734712108819073814432798809727320933181534859971662116551391867036846513511222006336065696499953109110875945261418816845062980793224077362877231508005639575278562371886385831237433521204826581228036389237393473884463971486415975007252817512062581402834355526624804239857467213607630219668261433706769667837988414925328504611232846643486575215220101314102639624398119457752540132300388368830696374190402874677068571082967393593213828571165024328722896291636579437356822583817933118990614956490146590160630159041584537316381597861982229235009581871959374710384911362563734513058292516139604800261654196193448854089329420226550222273748618788588514410440995024994606673967464967630663430074763946158322507526707464842194248995824762230959101273126879312443653369048550533743646142472187566237954484919077355166658422660894070665435768897902248037541820418166046323419863419597821824706105201891267075063863877065005327262475858554645793852171879735601138647102427533114386586118724781285556454909420140025261560702028885169784325783014276216007831815082681715900295163365962101627693959803287157496694248600996787667881243419855167738728723767723000199707804958441220755246606731285779257195094812094991973792951010981492100068507448342105287211830204771929282058454812112347046405687862270156604485508267430660650178113127756808438864292871405607055678209150702780477102331442136896019919383359393194321028660028797437987137110287462191189079098862194085088941777700477394086588224850856144263047270726566215605302982199383822000813939974537791963409734216322190261201037612355498291293970332430312597713461698209474423161213501554601185098536432659086523588803077878585875857612237769244008606054463953773585960647729100971181389858057366992717662237271494152128463708918308871078334356364777790427869116521368434681984389552252803803222062818539394713666415177249186468266252938990956240477651872646215408683214407922274773830709993490972100755677802452180220627867296117299300239633633591529239407964104315474288270678357337221458040171893369402381795347952167260714956121181151887739564364617122256419796750277084120072700588118657177284558714237404038351823226697463908870478732428629459414181038225104658987523415315853969336366947291436920376118215390548154477554319669566965753855556286591871825318756022206127933806524664536015215670841340024537804381189574190846574926176258440213458788091718818991682835958978555421973184906907815076314494285946618614317927061799616794472918484208249232778851156518701245777760956443156012703473267887757835826170874657125481199564370466434381387628969962514540192090814010562541661424688497525367114789190616099477439053578949282013800037129917795946152861350220647369687064777598012373564915371521827973010976525511046756077504935643311353420865923238768000282237741184071631811749570791204873419887352524460149764198294394902918746053488241187200494684211457394418015346880737452471344224175302152664575365718491506387091549227495430960277188668769809886785704892520028871008332147962823473876894880833767473314361676177966778468492087775654550291718350647096809843192636903739385422867021866528642833714838946665192992392898368738973354848087152470174661193222781318449103928369911316909664540276409590227790148082457593851405804257988116813456635174897444961641823107304001759932099334474952124328810482571210709518981308204749082003640671207173581573640192280582981304673763436358727518338603607148037288045094754230369456122536787554528240747930149632517169586437186132770692266320205829235813424507428872991616278432971142794040214342251540239528084749210496651501012601942561638577384786930634027606261381590567468589109003129632530277408435581625814470246410461854115840338150706845726758252896371870814718744667787430463969973679594145950738307706456356985794338975040913797859297475782551664302296819032569069758294606367524962226604233680052903231054890424171129551860283911723159559810681992748736583481512256815962579301915411483748087283592495327537924841570240188042546069961991477062284837577028124383844693497319272342061237952730382644932624755554317186787528604728454296406557122578081832132836980435056493841340256589061829030923732287723672153646422551878016098802962855141322033083438897866165706005224188408664883816570805867629153515124439489988241202742020312619747039426746513655259304089709453247673179554414086559318066128945644153527035219531410635008574523942354449110247732334431979005812069886525439195980278939596078999292095101205943278326470405015107512181134039185606488498843292972604930850217332780387919773514325795914489381183671485143357569465375805291669894196237245069815241627294868809809984875547337193076408258523104949580779963881650432980126659855716698707399823545279894516591402348631193418457831182357920922011294132187327109484057933752391288444870106709397399929739291820419045355221685460975471009590152420506464374013068629222952533083913622734732555203450744909064414973249370242349159710992295740011878998763448285415740882487636784545916406977265484192286728048915755628111635428777415728861168252741160736998432702273860296480253276692465905272633311956488068044681687107302089572188143255348642825792217752072137497607766555379397878006213243434828014140142870642783254940125353827951176893022184350953625735572858376350735659298564073401741016042524502986560730427017420010257219807841267907862166936231904026220472548811005034795788011614897375167002796200207268026870757704184586076703086316157288368555021271202399356479650466412922422480816403100888187515457372420279381258181026938294035280763944160189369138872179639979119063575997253204888208929062137771369911043966383559890795735531493666740283363676249800864163527353423075170341302169420939540272250283319030007560411990836489180936576698926729071106888216010032054126267581951176043355144082767423347362117194460937445782804233621783016360687969515930089389450345266051808119017312985300756762092575424763548097550224307740931321123439303387926557796218785243451814874661176727055408040143254226284737550146236730064802965578468077412021111315820177710996045544370042166508533918832903613814885844397313937146168304009147607644826638708874937572889058203640050046916338549949979445523716653509126982434017576080026081334522170602395989042281723682582375611659544739608577553268451397868913201850719997520906196918433332500809899457345611503106675902632999109232742326627808991253485604871570626077864720251340387259505287974809062096839417160994199997212961814226718384211872297462760176105249909143815458452281070636332216801275702302416719879087513447328777520809038957708280406573442143799329152271751195682470346852811251742516280456850283209515592707265885403099929299434918861390859587770014254181856890900387197935573262680614024149755154343059635167153621218532864298920762856041460643325580768254922209441515030357556403122937849471286566647945378116025702657907613210479428402190288690691724939511670260833581139094035687709170585423862144583672250174048039385953853322610675079479864491717466314070379964658396249058344741202982085131304404228956614822290987652082889230576043980141684043324386721929789809216122260753424336941789486591703894081639361885687502573087842100232533247431959901191686992584796313404300434704467294749750122161714123982167074381804099706901609773111355157656468604740890952614332691296862604617456427909570979900434695418069584480920493351086551681164369481442829879618350816844163349273453166099918683272989235340050722220333582371204774548417857930578974558602805237575164790333237038917877276144100161341898834746901764086120551446471623141161224751872045889296792280938751533965700287487884696997241899784054653110149286770317680716113406833948582659230987030406255679118787130368818036280704742853266198658550261491044608290963163716590225492650748144010242012804465309450266774560642790894136720632864952546007751851349021085714116628037218141455658805059061426742769899210320406623841832755675100898741485004150936212857778968360532018218362689502614923080249053337710767660054128973520460432063522336056645097311616728338613118209463769590910436786654684344524978755320177012844280475912353047892919467625746629745359981281804359804741228399763513917953581222572436416364756987269755178895758112870352982217264975662289651893591682149043575151660521263512627313981622514733318573378229290204201280340671145938718636435992261790619131742667514809587383019633240741991784917742176957982466228868954033465588286535418205871500608715090646178117491769532638755259090858666343289099102291265072827417253397397620517892645547061495303165963696977429179331481216751616102526010086178744701294592652943502630589137906898766609160246615714205734774305166802533373674006885613923775446861335333977486080408137916771256883140899529512284812190569086344221349399828243287223718746245324692835380560588340770367109192713125500586005590616431988083942746837997977096572849094689486667343677450944166263468100606065634209207124073366152946037847387484825636875628097255826859890541436211985112602745877667184266230389695993750358398061346402292894786211497606640305527058177420626527808855446042653373104789578930385160354830970913025445198054398795387744085063166177718928483492194140585405649933335709272836150128747422026344032887085038170458815788405810619680680160265316776841566672695208814108546677058588405920883924138604007749644807566615997832090078904790547444499190139765847401590784905309755128740580363621151618653469172268875842596000337404383435963351408402674689025200166399514886859949119597786572425177206480599197370204879756355165149062789615529242858684390905322090981435587421724284926671997648653476415671434674610619429802089469236480229487999814200911165283985950820089003616331343914899161503084584865322917060057797800252577035354230136804826350503849950124707120738939205747706298414510492257751416476888260449589307657918308203405611665953094387537118916215067104602532060928139520297972628970978771194611126859631527256259632131646980515418909056895495035439917550735331130341592481668835729782017173499133260285188504256294230435922553795962733407325221731675428067512181847794263798506470294885545233400599939151353390404750290368502293068370042106650290017359822307794363437221203226325627088258258138019201931186982487748133221748836093020720355748507160610944987444787531050872191664477470671234150992945288780141022114945840983963517139221432360772390918831525734114351654642983340199787777412304949255752902649318042393294435166274167773158627108514917035565198164845870922535403570303348106387291318169606702316367931277049489237107423980719877177502054557937628333161387832806406578184979800254928982252258435344950266394544442838282201860653791660712546946856388638531873001541536467036584600987493713023083624628832002892346451853250328135531028081422732750404658054413064647180028607213025986834665122651414334581046045129266438481027044334334571335483160261530714350613259098464902292414034497444276624193922498605265260416252666180900332651225353313991583603110244552181035240441564221403755659223269142392388370475864293007248337232724806518829456044316020912276203880997718202836492694465632775911944665096366075516397564326365844398789756920401410323760125794669694347800847448053572297132435680993226093786523411171763751751094250881026873087240203036828978326432055299433145170881210925102029528840881916486064879034981337312677009902147939349799197126406159903436266709129694456753641708419424501660310410951103894880824507448509736092807133236089513966181751744730880541806459583703631958578370993002874780495136196275759130248542748035558743611948428784540982294036675146008689387509266609751957866414651866110527047696258598322408501988349703608149088532812465084159579457482153748776560333020439696987711929035038549375143657838049250236602166203316668205010495094798003448788066294424003880717230317414698893329248900946314285010005639378426333607660980132902477176533518177770341880734892456262602788318998240895022977063740902870327865129136730779122016946217750738327463844447419256340903644090316644258407966164040143468816535113381919538741806569558687239089086309177636350735925096859632823234477422459454987723019326448065817853590938188083737884014353261795876035978366139490888179771843235873816361386597915523766649569037568165813986590772259492796853840812620172568614216483678118450420081264645325081437446292878301881541493291171292115467512834973133822869192114436109843230441533820170775039709396943056180631722067733980307031165313069807550232048449724288443895862718958622498235539505666148116296211044123695980682770509278575750479491276506059552844672651007361571235502911190435627751350606054201155041025285003611925058431893612179949624663031631505032311569697887421428103284963757745167407374353616471891947971414208838593408634480600234257100868466834201630480968369023874660731896791478948457866999472410786824629435801468429906600590062494848454205355674729523280113670517932909217592819467618460860150000455633842429580982275416295154639833067133654834345699560681194778228420595609407223132201889191076869688033737259252669269357737918926155456827211802206962041996347822281010843811050791975460891650189067563812296062233525146080971088431520684240014931721607050380186825760903003798040632987870165947842280457272886345903567339977562780681364027979897610662407495001058795046861792301036304210851033019791854110518133372268028848808209045794634254181623021246712797028753759449139529340753475783425054795012136823357715707012096839421791564350071421865212451021273953841836376542472806051558750769924068498849529694121898293779407350428348733387318142000360738486389609222141963604169415802281250414662332770996714097481402449716465763953803540621063706556673716007175912159492965635906960826770003344319799486740163270020629863053995371482956472041007552994460880847747278557736779285001930603431458491567915657197828778094499617490251912196422407951413036601380322707282959441387201036370834485791482558340568863598382905904746317363214870285793807929877364150347365235894924461968471597592626913610872262757431269496129249598977098022188878624947188722180431870626757841006728878369873216166343462901948213653581454852150963242959318873008705354687067763782372077654417737831100455923041207488197458407709905569282998020556029843711450133454375631521495918779699366794784263172825460692852001048161700884863364764696895183914027206209401579625485255842594147614502290912796650033630479167439172156962938396266133321653594180403891280475990941246320548209780203165413392380343190457475698505557187167668224576004315840589110676666386915955493369580304203431673744336073282583008746474139775335384628804928518160221166531493278040489001043915446372281202447527715327330106570724690166066286841018077864021477548279387284334473376170693889125106828695465668017302603930610045210989088947506433598735403056972557396795703888304491917057696454909065021182186722588518445984329855015872737418697353678589114169883892370697708122864670723689322270683933545775160140952651040382376415599567592599167286249965083032949253889681806994808459847018005410551626235915266055085697070761334205737275868765813280940974417131857364273895441318562274769234693999090260255762956362347938789950189510835981653320695195971436075552072092501711089310389036769323326505265307098618147411628416098829938675620354106310942391926815918949729105621864931885303006734269285792837166187073981998707917653638023710642274385738514048352712715664922870889141968703405570776874970399749543220141411430745113918130050490616292894355263933269801883993081007543989181085351428035943018886755268475274361972729912825061600242825791844636914871102305232137529407792617837407202232443690736381088687168446653074973550469919767164178320530553203767905609666631515289635013765766171097722331946161453423764947601737633578974586665961572041077867948193769361583476309929763010483450714689692369740035176589482248608059072845665253923079028683764212991623895490254522463133063180077290762710132860857850465744700426729347164201471394784918985995312464737014072628506214026144480711717661339256852592300386555015888640360855924763930597224503964765158620708582695295292796622055076018884365783963799261895833010586365533068734050907166348355541850659278525625917840317236760040099207541419633222964052995652529136811357141851249622198844948160504221507878200289519646000838089103549305306484588991191632609407809638917761801824831771767128856668480154208118298120081408088064602443713052165705164363796085917993746544593428105311875835742230436748870042909554843387511965630006939595163527488139257990764895771031465994472008633045200737802426735802907326713791692277610105406038964141506094436697836619871166475390450618095525653472093953048941348414691980679213382000961229987681592817885912052884615978554693024386067701453845453214240550550180462684055484125583793292350938693752253777280549246925950035574769252507863011984755406672358181993582510814402978380648016726937959166315949930784787829368381884520631579197885737848992570308432896989470370854779486695551361934464602939819737732673480461398573926280028054975211994033284833769657474539369822791328480549852421654113053886527966750980565110065845204459042352883778076096845716887526831717026948451283655334724501150947206814279246423290317332652883058357581449852152066611296470904110233009820304332525661405894595688072983783419894382162851767396796971762971249792483661843783998173378957609314993008038944252223656961777638934831098197873053829217689059279743303992600389979152609274217317061909444186086984428913680904454673914725783906702283396160282597929837229538324345790242662026569421282638563678663036188769280903873572830834603958642457674078369302851087940682429487388994391582401521674876281786515088860136635704911562565115278737640940250109534923380320222671358772445679021541171562067756097013133129599961357342403014726364234159951528627662598652112950415078977311930716018159050307654899672540559718112239591756073102961634940919447734150305557254851350430254646906267903701068273119294271620196826988739926228415723152499926195343206482481273940689351496719030121284977791937950838842485501057212966438312501209751283998865887066345267711335242799445441228798798465123203888426389376745638082083149092468603959546317279000723879508816696079774290194593793982509368993088382848345743223131004249704082334684638402790103307203853526600511821618678565292888362079947747645465984207491188303121616057764973200541764047268982181057916965680394441681211340917390544780815787636088584812562938045155886014499667873525070231054421967518822517706882208916153661645164232996810521552875785157113400829469639251974843871100445505982387775866666291025033226206253827475162663613028355117064592756302958316066364011948625088498131173758986529526352810822099215816015317618387780035398083030268304056342060226530025729279834581736236929569983928406723104889589375038463789674371391341608386457452746016187485767525056498144133210348733192521719371568976800297600196110901712903109289633590786827383617771977395651264460924684856585530680389940496394933579720495422633013535728203614549592162438884254604018552796230617397848043041011055886049797855429375301752989929825813293074062435941865734753897872088078985814166889866972954127029688911082701242289033348143578990127178029952588215948052820966021001924458367468934953876279774488147182232819245322936371743780849671534318621247064564581788894336050952662900245325467411467126686837436867885407026110615005448461928054962832165044259083387885569185397928016855229907198882090440444779511474670849732307571463083726573953919237343310049171965326830781018217159462506046006924892824476289887879193900494839192142664807604271258274061786462136939926902542880019014776071282065527830636915634071197361035082887252337155243815255349288724922617407456051783441938028625525618130741112334727304319497641419054987848387977901559930855659195539616635683616595514711781687700583619082066185335541945199779971809016154696023183347753908343849607142126092100040548223620604585090498598640700384700728052038528449909934790125268424498963611218682381387052001347545412916879363671555677916173636267761324519371097866717619460226467133548748213927669914831870096799600639409041187023489612450273692435087921404696367421575396729537180359393324898775095986903767201865678104788613284504692571136935573300090792401577624424543900649599587972597687689080969816435955788561586442857904335648810814558335001196913020926120466891307530234632069457542196219166538767713769417182589739208011870713361302316732110150295993604300678612208784100007835791310969061898902636533076412504886718477156885748195434923299956218328923767382325954645117585006376909703284020082521688533543865441273359430507329569016278814187488984902695978251146655123756828401559838299061048313145411631424397577972480435706837623418209359576750283848295083469387940992652373345788285976056594887453957238284298921005094075470384933181736362200259217276546075666594091281123786423989819628370177313394989270553385479826525271124661486073208011993269065889076447184308887599456659516298148346337882827659717172190008154429093786432289330893796222436065470714465895713419450310543970072566154154784475221185395805747479663369904375711875502626611222860114243552740214563920643831209009021846716004800868990229272358104547197489683507957573358189995698115883764436146827344856125617804879922072187869622775839203520901630022373729805004173732973684344494006937373823076547935098326668043917537142503869656736145103946973968587165032891722204192070895209225628000845160404967546875744135743267018897727763042690394584389906871428965936084317646034745045001983155778011766921066654218590075779164990543441722923354858811728372952925611590509524278058749793812412420218391453133067626518874662184597639431078118074510940876966976128140683534028831982897006392740874631803951736550832710850884103388403225991061291760336037538573865780408189986451115931989403527708312245505684039175297343092215366632798774873684599707262740957133128639770911399413019054102918227742613826674870858893721461680787548434198589969100640386278543396793293479501364787124651868966721986827411600882859792475658426308748940547523564028061368073909685494817590723290423092962805504532524466071725138344855627951981601424450229190252494692143079275591169415478639845401072126792368654465168407966171643053521526800833455145928177007650270206407010629238541906646244446306268210876992386225469058879714076079512563175260227602561699709263613818752064049637030083574688324002756460631416307168768359115924412607904811348653980965181361718495975457447898386161908780038263035470976392972788962256414633417749371588709318359107121492851672308939316766982453847371749108861557272296993389945488343223106314204095832689931787517286626083473319732106482499161077221741813146251913519962835620193290597586455293570173561896546478544427948078086952740996076137504364102885062817126146693453680613946886492423931642607626222417823948387003830508017222812822056564770943319514427587114362007474769639588508112364381599736960004482200395399320925748639096050253049510945661096728972636311223587108931633459248222446583293535096650694420056028841111439961702076187099100796778396855725271974921704478444221309111906890109858445161785228607933722163758810685612683982749168233278078338907915823656169825169880210923637178059650101757440718483045171983398880434702625034939016594651000424263732896628584352257318924083058529153714935241579137880534987364290020028080173866013644531863851236484369480699159388949849134344736498113422395470043626697145252944004198803105108330741277685167660626561056991045865590873904671000868797182753209251456105247421397129114653939697624216515663552579254316580485052893666112564711414357914146114516730798526880720691347872024503340064087879426532165146581400305190860113185529738332835107022627828480005513004852231798023316677703377775349632544072675180247311800334472161848171589019467645672460028776676752488547930781538047332515121559581507677475206745550413631860601526511202837804697724489998227631701061054311291114870018138563750931189194864261464865423269730745809406709535935801851312425878588047459115474634771478502392904432720297068510291280045655539028221654880906946032166191524586959908097817528915895877309031298967598420352095364838969544146003131556615471546322565707393970070709472590612302544180100952451740897150421636516041884289660099001418497593487374227318534176296904560913320920038678429676580236963122692587207680707804625449125579206248554521126378713860891754925878083567054489250706378428166462528561075032449554620614950553223329120065742248188512230259990524568708267327271519789440677933110664174437304794203942753931658727416374714418513705413373095079509840481038145197590056970013779692017879361817700790238547161537465099832188614140777099666029195890752158942115187430182815866675746134646222395323289165586302250556240665882671477999659499789313918766046741432489176564049561369587921309868865544693268710431029298029005037179196449764759667368325665159080501626319797083335118022080968468324199109347898615772208417958237080449472308636287772306369887711195920945095321103124146673263462729302110551525676659105251637056629198562845633740014171414364487377538288285450082966342441768739902359906744681257238551917434829432726829041425690993480467603720526217954319131987441947075530911353593934968144811256047659233358310740502277061899697918121522093330845419208634873801593275921076589165070254979093660235258253484344215464974927976862856704444462105005372044803742881335094920290691204432095471055362462532355778393394931881579298749200743348945509251457415985424200874321487961785105856396404516210335419343501620485100175089496427437790590649585675346626363252647142574138584370538914123726168394513635839540771449055550609559337098334884998460182035176691886970947547441132669481033972241683342391813259113218702286204084762587550696893970642037679371037362461525385382135411139304072777062046230015004262502890777270392385051226061606436315648124063448922545854808178972313488686429556942894563685533500451230273367605600048085126559396238089676458093362136805435174083433069782583734631242041866093140002383695598911452039286772525705107046275874866570377015732725205961725037442433562925462565553328268808085220108392949395370772808851358165376118879489322244416963674205714867276571265595756794160040081371746380252443970238411119582329698878622052378116912303293088714839293905275198527859912576326501807810400043379703201645259481566702494559325189599983405283680639086947237650863085251635494942419018237069476999677718656416647265181150465040117695573307407843485668673994485976666083035563625593545120801369619461929399138570136399126275595337075794370799277728040995792669829022801071258473491950839254068735540106509395596401477303205442822002983926981520106091061359214219939544594215843011556132106925398028740832483574968646107354270696686557211219805756171990465827845666154571987645674945772950244262746719565130524958671658689973822655554038674279166795443772701837193615917632175958814783644608933787416074177989464898373844297252302397572162351600288588642626201267573843686628732758217642873055022049050048715407133716727091081050119784855792298026916134962177298597336506212925888369923511882410296181489404949258713449153202627708850091917618132842757124060870686736885660598307276087389092441245189992894550665851842079492476855196199069706408696059790637450235416999624962429281236889012085388072478712677372451043225586597815003173825598465348252695760371580513877245927598136312038292536245037936749988065037267977088035389910922553539042589714118642627188031328587573574409359725835469039758403538075813467050850644616907285372897248689623664856290815804016688154749650307354667324908451193003884023426317269193929239571899103528091375239935039093374400759992642767727444730717616529715552732614885490045939018189761739535892288580708883529986407232381239274817148738755591971554568875626062898574683595097492574199567797966325533749044415980750512063609094281065815363441311982760850834166269495396875996208409961297980382196080914952668741823493696784411653071859967118874197882347888616131497669063950990507281057792184180310279665474628133456179051752394166952621508914569362044476080166183945703411484479370680577525534065293420696449822587264279788010659140125236646215120179684708308146771373186269044846782918154798242825917012284565928547426375642799942971359386010791919725710281079365458010859668587137031466488898870591158855938559961084838198800100415348071020327687599762048261161614919879587193832886681966343668562070302150436626750700197983854968355430730877072777815793608476196584528550175980749084557551220113013108101825500871802844513373158006051007369071037078726149499411617841833823048107385212480484981325360586886339222167610802848103520984850458954566498101134573234552008150674518552019899332702726835421888136588259060156169759729032244800227315825065246436728521236266290645996030094482361810265690770695195646351113100822401054907223758219919681735760117706022899749605479640031003138843158926614229693787040429391628897582618529581326992339918985735291491425390473211612384488820023970957160062060520293742210961896512366820088344064694009192090062194759662836823055160882600284210563574122885193127731514958625098633080321158601587555199639776545097984549820897423799150749533170909082086706037900401043648866855393360098776607327062177873903321386155216803544259213561478609537754874740786256711537524882090384728509421589645082349243559213334032051245216305362442645004339635195622504048263779451312089525432390526856063395344658354723015422188752532535157502498124271909638755185375164690694449617380113339553224094600455991485836754758407083330841680098643515439895667653429906075450542605659586834273930961091460963548329175956425240909918995176701873425473938513181536470778275951593213701812496073487433294831626353418226011844756316407493303388107028897970929708222383125026339945973358222108514984938246427843129973792756021161635785926460563834381558814455404959406497152226748595024745181326335192634633658949132937729072940042658689795135304739803253058987895621258342372454163449410176270953923032079499599152123907790416711188132581007195427065758199497975877727738381457341899980472059820085261046523235946137663727898450515460850858810746986388242834205829802441250172866615882223801935369849502298526626846457079195134360357531248065588381404834858397586382898542814282798993518848019150654402285339094635779780627523344965926837935603319657038103095399344509858089081795539182538468724399663571451920164350392744444111805857859374271713750822658495534599379639143991457226413163790747272661998888929929584759220603993164991963838486501714791350851027347700838809102659350781332990610435006747242122944983788667963545296047494933432571434032077460085923981188963936853115354681432562637552809229481731668714710294978135363160274087191206402522398587116726163043708482991461461367934246284044955172878175689724623704870031353622512525914632335897780759188672844365615309370458236966634672036405986309847212883893993386858279394756468466575047169269581954484531521643299553820292250134052069828276861210096491189275586336200798271555717282900019668518193120110138599564873491183827507610852870479723681171873260545642529323994157904409370366897401684258607634148148364816158434317253668031126291795326955176080467878762565046962595295723007431010488919081563331105181414464598434122716892311075262225521041890183684287589639505946764900894641254265572751848367335036138243488639549530450320053919628642612978244163849676793282909359550455875362057665936112534642587864306279689671483231464764755583876688199192616949786710855231483288101392631710441563323147509121607095481115346382119139965583940280577514873789057519568107501345541240708328110410285012259545296084785688117456735484349618244293438909292254023201410146120799050636102711664718422985279662314418845346808107059316234395929347395908365128444296587693120877252032376982586131670896538329641609746360681319838513839886888646247590669504408031704855759040797081202251531109551253934829430527157622232719868398052233555353943213025218243307947428923033819594562792835203541248845140883520139162272365591150074698277394628943181299772144297479285530386937653815066928146631458938686197287333218906132191394024225518001844887037924432030461192171483030208873375256012593541017455028855633137280244405359873594992061710594315941112038875706397436677746692286109700649805336829476305967587879850125613412713367604882914351193403712992327337350171693056212806138588411578496804382251681978349665437504405108055773749722186298950404201328216931906316046754475924326727786097199058664651178732940229231961792199456369311847566960240970923819156419602953644209958509718082708342947759684913352019471236890609500033291749239732651807628500745697616585446992124447125327146175326689214676237908357730438047618936803765600507020877507112400982198859519775797080187601852531044955984220811050311168232726713180946600491208672099196368421992617497075959325379356344285182285532038045594778352140016278678374883087607814443725471541209679945779417470986924894804304731760844721239495014574736435196477769246771581800905452201546539905032116161696526779530446784518751260677721147773107053363845760691142212167774200712699888170500546313181981213630381303174185696680610864017505622689614166938173467134166686408110264144208731885176647006823577260421388917134636745122795280482828574730206376031624536619709876832644656964055056025139419700518397769403011981124509354273233559841438313695228717424796765838128188689517160710795893357226544430808328327723480666479913735171229570809192472737299736754898628150399804747934785911040569964498426746311642513131109433026276185402342150977995720684527497390240471156303221571800407370152777565096793836344509673214916016756893340744830706475189404988551055905530275330643556523298243555010988613426686860029959135056646516713940760460855922677282697435624980951091079421730225943749499392979883171819288182575169755493593961125986688652295508733813678954064980385089002669647313894404040293113220447316113500099573452294397825160360835744160814575871502998303330041239863640055675770135813087626260045526488125052644635835235721017391071071691066141045448928363805564158858536238496357350622172214511737529397520396524764416032148850611216777568250569874373767567957615938183538358587538556721520033638353179766200247746737403539223759421201369788803584164187734509105917404514489433000538134987636132732579560714696941365576234112615191242262840654003041828186019666625498835297256618192585667390494272160930638514209045831313111685627006962037662819364370673750210843435820547415595301911830114297423571725709735842904054138538636784092383010293143929055566248306180631018578880759002222838485835048415085098611108072087978962432541600998198417341215213369282527774228071550941333522737969601810332992309945288000341229058041121227895679263236016564453622471840353171500762014210220561210780228494993233719044699905171298652120715239331925238480864596905405561057785641953172518740312558537454691482338636627664786192393546148766542488833693728346358834575500835123517284765865260706430308778000510936462537167471081249808614070521559871978867723714719198876819980982082579444606465075273354149797581832331734202146907965802648497223370854039873813010931582398453698915139968956078709330247853888268062249588365283465423063398574777045257638400629213336692961132595530881049339602850475416252502969023815948925328410100307407317618042126647343637775213814438883713981682210533591204030124872575429115780163234194222856656263627577146027324839600753760535612707681222107822766775632639593528791480057792855922899330454479719988457996240932973420447985845414063345731047521415635660335341306252816329898593711501188687832051310385976323524129296234558939058576856151440513311969690706880121773709516699101971784510416845910543755649816365634303520280855988218740002370221061030624853558603635617898390426566984414572490002648290634342066106153560023411190574087107260392816077135109336856648987382235728699699894572797957983981204119130944855196195259151346667820713809982130428512116058605062321320783085102373468784779633358568144464342637628987273287075849618670883797549884236654927765049966526454457135365028666758590622924460059304120331240839479423653649441533407429675628519880114776975539083235759489542892014139257750501534140989357996206815109826036368441973299004747723015412970984873337995170289213246356101266891704276264578577205877335643553246446369812956797268417110087372860182188413381411633939188666694120550727882350778017549208747630642592420949464609595056321450492609734153814053656830381864193099828815921427167820573044178369945538691587033140835951136955189191161711875275366087607516654180357870130607366749243565862343809204246280832105249005702425467881210394053360337962619265861365110546450579947388426134896932365430457444196529212153319466209669586212614851797010372467571676758217797347552305980850529291922935542999615376857129381216402730713850089328576934160632179425438226835848970507579400897671201385674433384196625640107990489377033179424057923045407600337567498807063740009017916958693445744561131292132486788613091868011233009470016959627665890822047230177005463109398520138622313578442720489748998537352433842068715113068991961692931100289518174505609507247354442836544935953963988677179684458892419368064482017046593521412581207347249188479756516739465763077587303908122066426382277857867786955848190548090451433337585790842890619913777538910583318669389944000886779508641511677162661033745306752415807014093860625758752447356645965089705733243946096134073028164094962122823848579419717240759176670236229104141636935455578289629509550498818582850408215891335148696086575127695192656728058016362181054783882801210863718559585483218259313141508751222250402759720771245993488627800262739055391678917076134349139656809564276061519357815351229206536194681395005441554668467105433238712340962094536425383698987740550429197034898512076959061937876576615375214112213545030059877012133089720323276950829530332965276583373821885413406568545787559625823810438786649145573014086485926206793452795639583561177292334551197881184720199446510806513616431259318253830961911974778628199128978671969801363493176784570514436629458878145640829049543534591041230380178946868114841354046686174374405368138510751078570029301016472704828264920321495510710720253019079788062291138893763277343231957988909724554007008856272154990984833751920261715892973344275636462341924744747070365349103072079576829206903167624357608330023016976907503691401287944103926242912256675581726235106354885225493156915848950156280755837066184832233282730919373122163673552547410837243278247293147959814272960578913550462866026645864057379552808216375806933886682617202673913118538006050661564703200471579274354032389197522648447416657398456784923936057682118662190279407522989898537681000515247738550901640175893759856958294443630821939874275323694281659444120711084991113959605761808833360874034873377453559166482042266601034406889385579107439935394812843920935746502243624538622639302837849586529787429014493183977644557543532018524967797479871339680635932132566004668723226865613148577473050005281573382827850260378338732693951076555053019464556736410663419772607407985554650361913221049297200041649026586956172289628565788410337860878141096641538316645751833694410229235157727147092275609575041913372059895858826398867127831075118189962752457516654286216371311890991415826494043086760101241205179049915898053079989093978643289942340245649211501233097524463731779813502403861409243307383167922374578098352230471210343938410124929437371067818436398942507370036713404103971459799458413630272374378506182184144196303909258622672932889633922971375625872130138648052015849498085523210404503165037828628056578980282816123474369942027947901911285536059778496793061678457842056356098914997022418989415900824244561710340332342246872844850467967561630427265003292883153867918715658121615541734566688737450399631571767770524909456342333563809336609674028302213019066365912003513844185390119989770605592235851776525541168147584875334282965372251664211004036288689648167846101004537628991736910873745446452206995105859542983135721313297730828859014175500788876495016201504851926850462852859868111263097726317138275702613302977601203515024346274928078634054795004307552884795020063052961803342529897486945920194005208444157886589278758570479004278075215219631846357798552814088055926814522040020485453155858574707954692905162954690823045366759162322154910795454409300442998937006557347265598948511461497843112849537631853119567146877348048313623135865239865919192839450779539263838098376264509463928041265871010345529916895916883989787995970594144607776152639531550542880298190678761007225138483233138651413438058477877573814701405534227046998713927269419117148008425698482010818103300541013308819098077781115924182301164749504636666642209438022808127984444862864932046049337137901897889510541047137690408426746672256007280689608749479681986046410106670970177076178546662680681782106283224018784690772116877536238433834994444287751403151647088285495402597105670387843436881576459855408738609940098478022444702555004923611842802503046469318202408901523692329250417376076873818716120826900633787095819520784559182279264872466474940112773254226276152521104651095514009282419561773800617503330905551515868305479401222502467945723007505206210545381887931057381744730504498759236977737618179764345153482739611963261966033708896079474196122973390058063483442604431051227637315269382759500189106648495417583657021195392404193721438662467934848161060000815685413710128597099368528757241096472536978621798786080084667731359252452492537400003753730892332323272737046470515534538491396579385793778354063110901035085313782718564075955641064562987313628783208933107679957970614337214402746460899291726694375420736736375967820115818927694985997424860391255965868811877169380661797367540021499883246303585127453115768358200886743872458463395023510734057187416745854868281977137543221867535403876329477651487681015052787638147052099579785961617362487632640695449968385468892291297575757879454871840916833819098399970621259728376067390801174840247392387438937489401450595522067052106690889578182806737831500595289829051485785824154499878526088168738018465916745990995485615806579896217520479703700335244128602139184203778797684807145355825671283371679280623310181633784569368462275096057546879092094741241423062904417574254389225222668091518851508179028096577121904930518653622282016419052801663758034294426543863771986103214341661860826630986543205401471014042786630835281594835087648585500370286696824668095908150081459295999129991201112584694476082727808820456128860712384427937757700728811969983071161696002718260151883973945574088259742226506591444954114147349739013067017588612197535723962970523305381259053021592607346329802783572740726294226107897299438837887425765922518499378755960297110037291084577202272782286408487759540093775309733909458032459560925145833041100246041519112207527793850700111873399096043733175279368385688073217285541239401642529506404328702827945073451207841408637633812640487925729242287730352020283235686527783421708308293127589764132194625522490304985838761619693294716770702728128373365844577605535518305111719356292883769226165475832722042345435709233876818876260694162294049562227107098833859176507714257084101011411479223040542830804438082252715911901557901177240258022500562561744648436330761424286301672160064372825816174133528126212526943819112409659490883684573646314650499123011006860663357281007525923160388803879792580446759272410635919837128992077839770478176712242249674970923918506198450594377818421118604165532749500994151192035639046956206500736933677661646574581828321307049094121850435305299374253692889325854102890207417091684928260634127137603120768713361741823662516194122176738747802481038465278678444789127445332071869322516516671079032274407690740916006541423329950226307983733429957882340087286427639604313227659743921797118014398362135662409748651329474704423204795968006489153296685069742674743937788928453235148636411032846474137907820719285438208598523923464491813943943905345452985564235953074958177941508891647379581005763945298680413118581599414454036712456121637558470841445574727068019938189347733123820517116767399369744677965208868750241809488477870797007539313840687092028178350529018696191465324867348056990678077990721891835621484826574834219389131937814574477576399094870143943110548560006269503776838334188614762988918815327037086339182427241561100347723341574643638349179202119353482539096657659409045733317096967271255199673771286058736271044129239706137808991345739806192450714767286678329907652454778676907010307296268502337834618886969413533135529498114311614239071925304973279035176626148779945398692743461076495063338534929025412458830979393735503148627767176614340954301445411212582655093428217154050536406822088624993355995654202701571988657356778037221187272837881962986686826719557382246210831898511706320687994738532052068015024462968730583544692539562810928694044913718824035482823478946414578839943436790576915584708814198043334708223849452074997920199626559331189734612096693158585535780945605885544318330695683070392240479484730526473371414774002091785008763115504864079895467245405961213689589779827865305007544289916826955427805045081801509589995661543001968500899976923594502694987404244945967214276674584399764440977719345821856617923455203702178484748806457285015336807459798215634079373690491292191411870747713430046486262373423456429246329335070181653944354589194091511401143092478236948887936701866205957366693171616342212631887571102910256398144266715457065154476540833551840071613836051917041031950222929107483246728894723767839484520999359287428333737069513637713290919269496592692755985160529226580016688991193404661003794699696245259592693745677446324634417473455122852673368266435991641457288130462031243462375085834176614404908184385249916743829287007769425489813335746920490976197242182301513728343588311305356726800594279473511397339146435419580765792909547083666874697929133172368575511719747276204504718115169722613474994587954974546511402118664362168628947887779868151649856147896956091132362855683573809366485480090705855185345025899443410763429912575197647775384917875519575518842886400289446704005777030887052113710248058223960770683315955219240190973010974928125861963914886462812105791820658367815760052978161473790664836028112061447228456604850148258732050756127907911117001912470329072664653210896418032033101447930480548711869236191782577908283720846718713216340721374932287446831300374571529007149964620086242013859350686566051921995867470763687534105465785004530852066916760121653053092790982027789295193016970866257614196426187092263757142345055563790448433439425125719496982896529985622007007213693820573832579411290114178165412438588042182687817058430333487734689182635237057793639430195779680190733512953120752039433010025561955115832306565608650864001317166280536608250264686731846949133940127492806444607079872447053009949339284972974576665080228554311051843600240912017593438714598610826809058266092512447520597015664905918441437958890426592256174736606501227662449044734269147675360643720041632596112722254552609431486211811801743448193187931062000167673580027400426912396417486129341445711119522669681465233775983905197523706213740042725617572343876550725173446328203108928231584298606009155613067035702346274429993985814961851785420374679436571449981902096061379679086976006490665297649858120365999515268347509569912023081462911843184020823406834884263599717388328145679742681439718410537063381162503365234907649388503203478553134377890948460209389490590870456750713179928469009515716241566420886462425138360691638754731619633522041615239641000106583980962107120179479516485780636338963682449242907519759593575781268153018943796828612580921664512026584568859052582489323811712929376194873116197646697410145205279569512498451203238432918257400670154143579257040828584169090844113835741417403125897182103990613568203896801438755651138207940768381065020817161120095454676031373098894915085845693282402347495699538474944458959214418170830312495149617251504311984568722918797620541777377437109483868968441153237211023910326324262233880413891443259016448627224425416855878555548329872981358812952479186258717717952075488706734672212964639809643648040317047766764576947036318864779447887647525506636546753068083502988383094850538029260674180650051421917221599135691981574068339586247948475927622961638596103394112152989982232605114893077009027420415298231841451785964075759604706098382627293534207251588544209049899517435362186762118156121272758107280437565269504780312759338885851624981467267286524060937423332123504507839855945978335500345071620329842304956821212947128782619756079926054562124362852185291517788972203484585199470967726138702124532582376149076645890665669162300802754619953976307679760266883040862935551645504640549022619474306069074175210658734387603840722909214331478918601579555827782954874400509883091713490419298799196576612823068274468202075707404609355051751007641156060015265839225291956511609781781368082376648707953770344779628089000416697327422249128969461165335077447639718908294718683457388682456864485345741047124098515585849153253749063265340967801499114632400830480446723468989078455535472604688944852213465126083044396328789303546662843780179941932703698051565841140271630283309295011377033966335889802627321719524452488406845698948275688130421774861641182561249574920815150768743210829762484286854914718839844436409012699888628043597143383796668267821100090113098306840327005016844016993289019872095750505586364151236663071851699989489788098549722753160700448950307204710612197602705414456780754793699041180018010033728315562719784622721889672109624732198262775078616034563960788142483738115596407672687864123335989238744495148714293344105644024482912562045524956892335958654986285638905891236131063674857420229650751226240731400255980391221364716858648809358145114867180161492877187020993192216752637748478963925484681065134504400792151109283485356737218126985296150817053895643479082488742517941676889037631740605480530556707720375238036861631298446633155974315680678366323962631336543345542157047764103879462302632186355937233974330936063755006072106730545686763062941014888809581167215682943490112803427832747912890346805037689870899181426555933678614130697664230189260346109563856097657785734246788165180604172967174015835436556971431254111734925709461665100488486553987621096358093533565430073249172901493051345011009964127455805863788044866343065689553668694927310068840011987379556110350380282953021382647595428093649775065080429188549728986340837439913273997904616764858609700918538240139535228787501454973364547406950242097618271631020806902227523429912956506511729417579708114234883000117532066450720187315166761404371221181289920767054268971258021409039925543755264135348623399383764858255662882745619798830584840918312798893918947382977850442403182659531867860335168830739324684278755562066751827171038051424146237672534863483113291692940739867896928101560212617328777466923901320121361373754170035808288485872968883306046413778800799831821757240341173954317192481897811548844061897058805329909156285700691694960285284216928315279046975880987168562159894507886419290548105719184463934180365204956603931655807361996951133753827532526950203090801113323411171715806140061539568195981465924418485345414286764513484115556073165057062161150502774554326168428994352184849590931710487811141421512315064889343436567051520888403512811950558092990814867483241389870394898171547938021252479347248303279062254936828833681228390772770146932859849372354002470772968022869087061244440277217923773696293130231821595850488610174220069356636704917243253785713670392806400496630999293950034944227810197055067813065606155021006751777782087017149130766864361431179349599740720105632826492895981471324333338325971788816720269095121007471732796307081122256280137569499634636523394935537470667650232076976365528700939452608055786902971054785452186925700997758577949095289208174954847151703530487684458910616101698777202986001098584037443099574933638876596503022687107353929790241251996235732625184145142260782457878578579642855386971157891897722003266220763615129865705409301968001374948118782519247649035490849299119378319483719347239402751120918113945565768317830803225386132942343714832528434078372431005298961088209521641157451716425603524087044552544912927526462777551444808586907287858585815231342055007796732555445943889275033376403095088431748499274731748119042600506310603402025725982357854286623958749566731407018595491848022094441612067965735353057460168319230274474212308255226597722422462322544084256160540054952909045754070090634967205164300912021327647991052183224980685690619288016122316421483681461976617032744643307501372419546490210554490403228401242751725138451609713172332413359697807904371386076579722173890951914883171016242187364902594395447627274567650997804645352821645011688647568486430687305998757747350152110406043171563400883234023123042384755693310872400094544529782285680698122564570209015685620007238069404125650572728738155835260781402281881873411481430988897777267981624672801382725225621207970463533769619857262329563541872945417060915342441343174684062220973723810864452598250803245008760388774842222526856284816170702361947569694811301925988706154070342963329440761856347385446906638590626413730548506310566957508951919364697052302876162230501386638604773820434896374541503553095935707285046962591016124581439750913193340509544566913783837968697217699218159241149372721920902046459129831016646553086539796862564880753458306532886454806670287670541137204189241808044881738187072339838181166796003991447222779538181022371515974692262256029450716573343292522820846174304891850888672806280864468920861621003213254785684216510306848897909717854978862206173179206103331904903542918949511501003240228242484072548542040496667719897115035502963921526371986210237039392948304377368573190858762923788161942665462922337831582909622509463073056811211867042986107828898167231043911999813954803923303339044012367569296914259044976084483286477660514929147668765818998731611506013807794655222110844978413958456597553736247855827112314170711782631949589437604642715243770337608532488285360245001734057251841051063615374237506171661797049561789305879563825533057953832794047917033419056228169853103228258169431785665809972347860178428899662844997772428224748946665626023561257333809659518746016276505461926612604177797826760244001674066469091166810207631175639440346764396704715395722769498141235284643030873239108814747478766942214773132920439813938969888870313991847882388170872648138859833351576381330314434715612366894947032590737679799084479492104912209611679682894059645060335797208894039854354594502922017472143598450285911634602838177497034850141530026881229809901878396284919416586571842032395213956787759913122673448120628426603543250282142717075285403917611481112605684951630752318151706556431297343352321859185130738395256274113299193986635861766917149432039728485893642631604225322289428585417683608149826581549846878847680287165337657821847032954841523889329890958886481096255197675698826654800097945626298478137977055085306631459026450213344031098813860548784725524169507846524580370685349279862086700629394510356818224350732940383674161934679862795776556225964074162898984566338978848126386326982160041553812130982739341233061756169020363821902516315396214854128528561725724895290687870160863525867770665786044033320619669654627445895080396208561425550171943168018122376798473930226655004595509273743593197725322409944991448814976189822497110658841484671038407860662687274807021533985707015362432620047211530293982591914451832776367750178462616558700522987256220648769118866138573227369913422843604249326625624534218478114165544956041613150262129286410411086618250248527736428812885354507287006246194518166937196825331808902075566303754129425555765586654665647644013554489836187333890671830951315553758784226844010473429453782439167165150478823898666247686621351013315008848148620167524595034021680309639003065887956748034073454698754819294156017352542045404332766136772433131673438691867321351209877172218192670376645921996626743202006148035873916453820970650133347899443879104394296484545495448400638665970687320294403607952851222661329446064095321989919381989846302110591976777821055825831792806736761092051291119939911017375447187100316747442051657238884488657602711971600545725137709684446007357517746607680638726093082183199025710054044752310723534024348501268500381379599081523765256866699205734379967788318585688911604486843462870050449596891070417051846130521459763551969389233267669489495398525855903744963100038282876200260821244388364585329809472862376174300245883061535453424185894206088815657491161602203729744278178109600007744442733148626112238696123342405368292877362783858208161976621454779503662575617277468106068170908972302230170109603260211954455472937615790631105084879883560829810058056398611933152079403800258942996711820540712514440656675519595557765936121713527139438155459169748648456478971844369304263871264805002911590512059103040891165515213380088002468630824369343276153814046287907364874763287023736865002569274076269385404471165634903116203445146676492934517053489871812506397501873992532584734951768098068635848458734225825183904270893114555427844061092780234202050921698281007548895025360406583009782797856253365588897415386434246370248060397758658727587863350659121076734142575078152863334487275639767132821711986076736706283152735879371504554845776613088131812644818109771097942132752990429329213050618873910562270690759525801462480969921025438563281525425936772828587661397498237325252205708808364187841588605050096934664143824721410902365930879986099066166816136328045789172557001533638706648885813409857690205696935189860669049680224441587063769044203770199733662477970745939253011722731386742394695897816764658013877191872464682416870588350111182081209916889163945081422646314568563920601555087446155236872223020958408423059959271894623531240486669351822714787744902133864699244614146298983438122925207886331321273901996402887592300492591437811858896660369477961130754699339786223617252404468963932670562708036092422319678576289820686222305971832724027008812071196455148023170163205151116871405469760470510640509377975783974493763603830221691030204088786638874879785926448221691646923701455526295481493423461504932519182946951548732830826336349286079068369621472589066169552330497538279235061335412745119957817928495467310114808744669592215957970321375380173736294228638569244678826202416014207143996734778468181827493208835783157661118205361539688790446068127601076283273612892846111591759576593062423054959822749722544792114444685684537137087324027548555715027254576162199558150586438985402558947186925468315989098415804058889913244719301010184785401222455206619000337131667544187089128012632505072356222189562773541576614891945411205749100268263329408042025309686711793014418685627627496880368374703959931970263904930511071284011528223618806470386181594515218943774068768945866166536981429641122478084125288304553021834327592153505594956589245488089086787503209774125732721739937628701436314911728114202739295451173007403875433515604038845994188275291363531299975244981277314213963731908353351058371603538339589889991468106196198965801412653288078203273441331340757287169718846131045625955496172223476607237447384440275015648071308126383483521768431212287849244246935942458487507924141221988100702312541065223296099340491918288132540176614513405250985807593770397554613090163649304334997421701883051936023914850088596502337717468744367611800899647068116399675210049037342732586767510992897171417375032097136580277847021503135251649418589217475300291541397242758600328895689672420604767972828589722513715544141196977039091668502070196027093494332430593071977117941271846453501010605382025732989957659933843602052371777717400229243770058378922859014658487047986689396404548416479704388774418236793170846480887981387515951732442334816011265553543874889109802892386449681491648951196078676722951414217462199363147625881458493539133343523083472829149292629783161890822838977215324943363192392779059577394948377907562059506932731321015781982576528284229349203926596341117261113679918095687476772616136286592617049062102575236320703677667462548163726492696112711081418161133590429931663691195251163608720913232533086396186873612995166401826383787009903742700075777135486690519111078596054666803928067982834924893280490722220480204760497440143486683872328261311937734822909945551683394931219040408012154857160036023428357713756681654167007705454260790645727210428243528624498427801681235333084562028305202763289558805498500569040870748313826723644486954847299023420954697023254986428103048842788320662742668361665704685903249197570305336418518260712547059996000552765715826170886457190375244841573936959607811969356722582642924825869908127947270854701177448556055804886785037900842365067777918412631764817903615333670685566530449937230778872262866467864953128201329549084799020768066813925840722767632188544634273410422051186879578879787638871027279192182419414663204813619589880059621722834404747899707615660580172457496041592352512645187145198717893242333998956106470878138649433082440033643152388807356831215296077022840534398412931598570410585765059968618767536748595599180167112077323038165852476921628515592793221128485958344470640532213856208321970520152900403010143496735670492017717551179627181170899579376621724813379149603877758102007830221112449316825629845408861439662966969542940565331007311307513700089288524801858294634850498491187696206809247293373586907384098764557895846935060918095310238800990864169655334417389906169893414201244772226835050207064107339564359953822078048282900677426872138648520734102627981039249607161511274154409751264006915239577472969408995828359983170179311249647873146241647627331442367184904783824353152537757046567170820460254088220976256296862608201628993105343191825705331998639081051960818357268354409528031937508468421065493431201099448480867171991499791526519965979094865348246052407903132680685438318930973293353236662432510830986764867388804404504014912544872876989460658087424090239092289997383374300479766404128905567823019376662125390056871520630934513088357893440718759435329785254698474371761796743654162583797711987747371407821813647474756401807154506219465361571278893836026263879790549902294200133055635648730335561545762420302067859456160367384265662042790061069230942541517991276312046822912869721714617182115979546971156893938088090777033869420380955334371533998110254069952304560708873714937223739856727561928021974149755898175589865549669535523377518991735319407053272199879992978553380158970628924435139498430187262979190961508615519758718885048020788021721113151589280048489791299235316577785452343271252995778756467217392966742006679813214682981633380175286794445332654330950073975237122810552089428136341070447023745104915766127333246742995307956566216738659994071416632440887548696616662970023861370055247826927155351360742561172991935838849333231777964930812041335534093966462268231517743132973391901846997136017246761433367266606434600773498901516104529709338129551867680570326877615615644530945909146415182480173436230359326182731468704708738229823975739100545254942176988283364909547687656158806944848684121720934357467994048538463779291423499245105378733252863411819600713135909226985479560100301299510755192806464531973265510349472445145362555665888211453254205891209315037670741377123616791941973510674918800770085245558919554412961807635392868788157232133073569364890100209446407495692441866201561602282132255556432220189475623577410423204336917775683146975975881083479347772728077073208974683907877064180927988378917859947759295752920287424726223893755833669821037136901179395025974405135895489886745835590072284480816861587781309100708787688049621891686311620778231635191460364686875883011662030557398115280724636573597888956312591116383392162238996075520721116313326808187080054554153775408672590008184480047474601306207682529382516471858530421496282189407617457079979812193380810715417124410321956317445556224634751077002025974167493294962305372548804492640657169295760564841029841674005709131882234967731907297873537979202375671488824172052259622688134343246425847405085064087094560006129071239448819068636996576466699074556908423903109925007537233594059813862191942226702860320261522654880695628521153142309305486359282055781922812508699113678618262786436293738274472024497256370930537596792139105339814555540682808928195949115364322106861037653250878914835500088676816486908474751408502782714397138427886108983639353921806683214656086553249960383783586654869293271010855556396925689622224256382371271918838101403522513958680306589052571589036259261278399234165679680425606148940570245815129082186778107350477140339980611621287007884520622903825858369949983703223230472324962726148295914739581413718675089074747135079656014713248171489407083549800665325524070906483723357196944947030243728143560898840615752192215054617177136314449119792107118225489192453535761441707733385026872940068633451653432205490980271094410862609515126319325387651687894147789502082414113378510342182047697487913918583399237700259517697609546973503883735542394616108846015999085142889493468941776065685410058873034655832032094335875008802452265953268605606994634073041912074679599751627366103719348910219462376964387924226408229241806033745498985132050785143160350224777956617808960961713179124097689812887655278962417476793527216897967652848853094438444835077658040289245453393286429696556255847359845867644906106530033199007490908216487869822768130851758562442868859246707668961258470175280241666060128553487600866220653116138869976890549264651325516321801751396286150389458821720168074390273440055286586722852767172936315949162473722964661687678393579040966933803025386959963324947350978482739551863322741665645652920131922235856359021417581111169090831900623548555801048165491298889042857294750261305139993386577000280733626591057523688286313244531910092341087527538623404148654489745825361315684955636495752574600167475673518527770857474812848550076589852943085417648186551607614421004059266480902115179667624338471842759036908199745162156783503092838038237836701185743047478066397188134371440538775773925140053178736191192843481989083009457156186087414612749356870342059267433820444380427229706470033250926635499462199992990310578585756157505504046222858367967404515338200587205864919506598440936960415121166860341449211401813940996132363800272295140395766309392052722839713098990864661015271980038542081065174451433478174662359362998251391387837068011969598332639446547866565362711091138454868058391594177494863140148143717817928517155786731289753042756444747573185576723978658322025491354039483035210286616865957846225321451352263871285758227063465035207972369516220438773839198064105438550948454472822016362630117568312073545529267489246511173337887496511180796595768020292263952963784358181376203700685529523855583811646135893651583825679974673547709189842439602872725572750368907594571119553004277003151138536958893004456086305510525694095755321679602748396505085922965608601887327629606568779347992144449370614557103180285690788587328697940631307434549542923683864184359955242757031274193240612802854523304179990237675458503321566302504989315905211553219521906108170090089657931180207087428190896935214292528930781260328350279051843594946215553875838499333675352155546124549186413074909723719922204924184950325255376451435150572273415002947337303857469985815061078273434362856407592370498265952781414587035329728644244319180410743980941846576716197246872390954870356539493755026706575434326750490611903956805172080785020200673350146379144720338837544838858610248814453090113059267166902081605990309695753126637975975039570612138227407529972164912402711044143532640697992809097864299868905656776739199315586872785949871459306498988598734938434263794835062537518761079916515039340995340686104311996740628053060321979424267062557346917617516481368419745918917718711272822181925479708044440500337622939231188472670079049066521103995781374521587297683217310537755765826054899987076570913522108411568284196563232363202256217013567699749922637444795483606086744308426993027501530132810696299951694167577325285194172625074392531857559802503737808496776987667070517038560081783325231381028760734950246696518708626582184374498776389030057619702585804599954886550307335948139166643403391780751418356439411695585307546374277776987549187977066360143770536624283093237085636908301373755171865471279715489291290505262127511205232481767422984558728459032062004262909458882299157395001136858598666527645999943264098294211212165516881273661877921096893648004316410700563143050935618715013780569705426999271521056200527532539045091450800310410109599908789740748164692320576738786195743912653975465114095886566129190775505525951430603172701322441557827982945593685359435754248395035955162323666236917103527962824152029676544572052011008455315579037446923116948518788110384047649899695128176576253774713659844455019900217761595640762239133306697286967997298978871340825280943868422650128723334121901031993507823553671883327848420834644738075097774858619273373060469090638820868696791439825172891118021226098751649076607779487644645874852584329155262549433341187889996431050637470218879275166029098446500201292098796811296092560489938868353088805796929835650482528630620767949897065222541820230681584232903869986157361027354975557607575018237700917263200235256426781168093869046594918170282537392127187629706041388112053622806492362133028672264327672011414156752524568889569002512613783378896761527886414178653512025147738607827428426120044415307043982631949446486786131877360297598489153184517118446186198936809931708537279446079445153457175281725975834657665754563548741661370594342472829994851966090031285286820319752736038593000221439457753603541841155478977772095512761871102950817568342110388918607622410670478221196704259304313379546988485297734455431924746093931357338811840807402870477716248413687049896695614675334129477640775575347503519587264536108760182781462440796027701562810144858442593106634146779532063299894649779355726173289577233344306761658473865906935770102819079955519866359609854815742946498242114534182539158925766279778973784261013363873862495827870182587445912777325836372644424769968541722667603441365934111833388504791677690119260046947416169664243005597252666346946070225591601421884985140552593791994087474670442533350567611130984015411455956460432064335958268448022990557544904263457615107981069084355255061362001725778422099466884675480155290075131305227702737298255424538652586548389683910242655510312010434233092061321079902177554580187709254098818613349036582747891114969042708449559007783584267967993949722435861334596400975598214028370693291048197132560725259509852154641364018958837293772108008210521648114147114537661836020334138769577723699074655475567986705181206642382617901251511455048874089394725295869737698814374604150322484734193111124478813198153167855075273604016627395024592747915346636790103020811885419666969490815146037668434816355340160507208245913672803758050408780884207186803754656523308614104123848873723768240916071844566569448659583735017856706711117112100340186493777737177336323967341969389829582469813189306015268892066980381504236993817425493366189095627852155507712666830850430174565216534878979921458762805419558998518424104983567652175448336510175838624310901370012084377041867173051677806547871942451938619872681892238411027701714348697144476484628692226653540239459843424484188739368858006363082858125221661130252275440844891776570585462214537699125328406724345240919548006078191320200809052171073059768722660962713316453232049044959849952481989140695440363788289789487777043973322163785470177180725812864769590666109160297332027042283990532292999280011871840630892750661600937822399996418601491035885733985039350100003121341922149301721427453014408301621780096027217341440577138792400802020040817329884575675931705566960678027465747521699196872020546606303365814920076032801075327694322497396417014479466143958746872294689507536736545670635036475502122275050437563419335290760055309705394127515394577262624168293734363334504899377003932887735208679657073529170417074532873777607452138472651348319204979609054695660021298106882528820088147241450874549999311636864700869324919412251466750964092500749759644005701969062276511683630916891296903746711078823386229181045378510261193369434264992463149926154652616458702704911234170075706699109039083127598954331781820918312370486738675253692812981027606658717777568245193431458807920079102131043460366796171899013908536139810188302663907962999297209695231046259768994856790384132006844683990127899573183662700834769420334466756465409808507623929433109391081981241839944019888170160967335394265195583171521607921549737910661309295508771322089695157520729067563747785390473841498645668980747980378313768042222459964606904234058150798645375669977844346053443825169829300729031327206275278628657071935662010388599136627182914888248576491557907719958264821085997123589901099785214857706334964098248237011037288582936212340674696480836533153019619184749994746302872990771295130600743606991333277538160837237942078030175065212034222349475890193475929513231272560161573035150100957383408818289611792034309542578999247147242179247260449709198431034532202884886922678627990693344317595059106457985888065200573131638935380120964330225719697631552210764046250730998924089992915981872561727232855516068022440852388380487623893247181285432669511569937996151650380427700665701412854424684425251053503094491231430778594644944922653659465136804151613729558412861058299989369028690782624732450539088701206520052921313398778859404562379882499413338467570417974024017384331401427142239454252436304041890552370487991133217679090594610935650686390660824440383980392720620301286421193619187891481595016903360489797093701754636541804002882019280693008821682774996992627494902823929550141961074096000479891224480674610166933357834934640616825836406391862788904493337711199254427088963471519341231185424264810536307235358180709788396836669079539494094110247861034786535378215111086101406399468633144254221213958644865677735919737289543982403670296313682053981532707693796591860273648581486953218874087327919707810267747894831189096398196760654219061859412124749870381500469984471304469502886654008467043703340934474579357113875428001876065345851883381675101506896692135272519099200671056138442729266940356815894425921649284476848273507258338878429052347310991114932762560911534887749966558801981510007478296342823450881349522664946980983814713495217459484694954189128447667330205118238376221368219928530121751390322716433352680275630331245818067545675127844452689096037892302267257956193333996073497504833352233322887490003645048216410375954822998687044916823855828365066770607190469930107294873200139389545712727834430674878587379959559654964285137419083580665671005090776361110068825961652792427006524673676809647147575523377638866770896036797403135191339438050704017694675436651439347438951995566219487432039436873623735478631314984158634653452402617982189019068439091217855271047648780529993075992910269058571765583380515982785024264258475807600246930191652782435742593646225728934715081237191186598325411983096723975027253954788809318839432152297692659904066242464092310756313272093142157933339352093456110342693490419203269526263293462406974485461690499711344466896215886716389848314114743889630363790705156994848926735381968657192336635441369522578549021309206068591804789912837932679953448437169115154929752965853202955620329544889560218785141623565964256219969210608933842169660278686551540336946543028396346501886317765807449277109355523560695356215121328005990857477623939208363255793759359760473530807840164098599121996679494217111694786438457489966120960734201049302797666313813926501346456503945964889367834787011762074528313196660219185361390904788092464033495178843480475196250360562134233635917642586561581553418758420539145516263116199681458509465636516333899345732925092741788852502732932015942385441912764585877092182239557232041099815345543412795216695009009610869795308160706011387676086903794427513604961376679295283926074892883712042662406663644377491536837770138146233429800425354582524157016245605260353809682124223960230419487397022262845492176628534723993764855894448527572191229213712489186443442790602409513987635754822489458022896081825329738078080111254742008090468107542977873451346505210256493741322789708780441090632398663220913837974600855817012261090744660619419897411459345585776039784180178110891771882329037062032088330604391511809172616258633685746396993884946954918825548396048454635685315299397982673007294024137016999694416175704049059845902152286278172993052618949324842790100000182987749478838564845536288154412886114302657854870715057714938559245340825938394805276632028071207045118527993084160269306887722649181211690009222011626139755185907087841663212001471735241867922662345367972716100889907939660210964875009710672826485180844598813317079136519507159963265358566173563902692706779389128238358431759418125010050124231816844398305471161849417671735178160130309660656334343220665609679609435038857587995919468186369438776172385393794491379387150261646120387146098505080203013673648542525432741395647025734212037789387550290356933099683956644242999167013760428989694881168072636060300250884081193986514723423921153670274842267512481841771262685854597747162184936126713566855674081100482640093602887961392773935893831000133396709028946127926814188367897956690310861440641803342360305497473971261301556941949771527816165438154799312781604665226577298990796859389671291644957052592291209024445576564798931093169079861009885460463603691029152079666250935162054462789477920924865503285600262053936482174972970520322317989364248979350605386692474438964547315940018421511525387488747022817524805637278857614888476617789332299142893843815133464630893197341468957103427444927395097630892146110239943013526154726222036963069994164650667523990020551767099805182011435491119853202002810760002563675562795719207178940319687366505133291835241725529758501342612918976723232381612886554124928273668224229400253334846030815022891621957029450467533944953999301588107750916595735093079029354775230487483292656717788966241701127180003266073526010623719848366993377897701077809349405548050072474309215906566738593713290142874641338053357476589408273701760493453843786302253702827232599050164018815249497098811219864859107749737089498279325275217487832865208589433910952151890169534393794536318699662442408528848955668698063272396515537613930065320102762652748988138869440105993376677999165207817470640886209171422021947597309766232168841071499562006573300849761887702759680743772460325214337941282348576582848989711440435979869365264405441315209985004188153644675738514185474200751142183333551520621606081581885894226556981256774544124084450889968945605180277556663207213126267534470089835661446995024984269481142865515033907500868183534237756728234262616706514332782620853124124634741752444350791335046933785704671636213533279801764957592322095011545529302324343157037638948319252957369786001939007750676059928976572395057678013808713941348603250399702168986099070623557485690240021333702771429132267346142574460667609392943308250652419193855037888260975154099203056280022357221922421149694128832555839619197489923172239269266634436802933265347322011626917653221838213851905029600929166796863100008831942819230315438125845751329607428594985538807255440548585179694349933132763918526278487110751956399188191624567862054048706752840511784090585331150346912929765389919457748564559639453530422149544448894020688000217657393290853109670271650766168488724691974055151920241189585835294459929593600709140334748296322553097373841816668041112333978140152276079833554251464035135654249280153863995519774992756218095574892345876988855651028246938830531530571591136140576406852443578435040432745715487999611649835005839407124895316002359945120893290825513278458551864106543970864812989368556686289699776949219285390267817207634473371259878390750187258560919313124431900205043174585714853956639434774911714835310996775976688306903399698483354644662623829021199811428782914844078227833374005973490971990991829481426468947426489004829259592767718278229453861435892382492964435929638601253122874511604589423119988477742499106324247838885547059427632862505959147564798962366406171914044389139023883931168064531470141152412662985538088523083199462719755563188323251807960615723247800795814920987899887878200093199468319090941688914907487097230532843345154940367097400782194320958778454504546491636859899323925516915791744460399052081511536716792959490084547672318394831225980445787691451849426719231533220724256299959628207433720693706248031032803155443142609335422895537044248350571692222712704276648982361542715520452605075720045034424217933863216761735665114783723350740139641363765178945690627526647041574587430747975160709908465985099372598691145833394117022788080981423338847803290282224469131254361145289221192772762630333125484999506614118038544652457732797402750017371770701211660615790539424983413882606382399374284507421098723193809829530732937785933668023979017362916764918569854174098806171922557607403803902466138035087598378678875050410761617018304038634689083894658956882070514546524523920478588465258973649709522588477481148407713414285346756518612848122524262813001265337988654213963391034098529279268434354969047267153544772740996438573060858814703620875379675983833043239450730875645398006316365091102247570213177507425697728703396233285115794408838510193294500262544406142320847278357863281542257668866962756536538430673287323003552955595020357108785614081691818473600463021579636312041206120496894007287853004609102665196376191346591757976302013923404829602235210813496489785956455903730105751096485986501099664584317035965421623654448974885047032138773060163347477009586525571042869377472189009731916914686919650489326510586566638082753492878414318076957784572604209870042206882179497412540561927261584549442979256701862981929404642424544780425942121788135937101172036186117253465570850976646356126066598704324435872576634324637581111928757073915164281165412357171314861838294854543307909359996377429415521303053675445483520257510852588206474195590913082138600187019060575335086736917126993999627036187101097352540076438028599462521736733754293681040962583686148903722818553184398353373756242358235326380200624629824536299993946179568803169313545242354560323401415257546589631910144991667190106786982463491082081815577420957157176305477266337159367743691143146640244846515019943252799093654102722559366602867487314748758526635314949097707846784057244880649338942923945995770888684597219930868556571991857457286588638727862522487008622600688337614462516518160765480946330681983495493398256980439483270226373238021263806282891135236199540076027897038476681230156767973903975779719507808672335753899627424408984678702320829070142257337645222098035423177186508863087424688806422463450313410090730025715669115986525241140942333571745989822542905683462259007437698871603826687812328130165773996626177880494899878348268051621978880903851585470494918354350584027593873547093250874880568696441458467040740042009987070157998628304180141813318410111134624440920494271008991741879631455421341727017544017875509980326524656974402707040631929868429667197854089639195711647066682474274616637667616718418941619695310414719483753668515648866673520101013616634097165860390801633951802259358505548778297637851905459490232722871165567531614326459277224760816867160287658904530071827623180618679826969223916657235873095463660629587336343935029985789600287388011126125053358666889892486465097118399884067327717444969202194261875862807950507767731735501309743354214854207960905842255622943874975511659651514058366067144607711201328168220136817898312786135572279462702221220882954071983863536168100665748155032985840145412302751057037490036865389720153618992529344606596083103228707721858530774920864454357703528041540826875890587823907881546458984253998914914954697721388031811114363508587783483742962492541516964686513260893770233295649963821929452732878122766490331994779279442033638675816581140348847216580116777473891615053191199727563073918240008587276299476256989441829200913448930004306979276062753328203367338348029779306882536388454206543664376121301210685181942350020682501865284594348180892296699740645737978866186460405771408887859637627879970656119290226650502483182612788867081905486323023050945901797968070833291301822385330888405149556818948876996631931277747946169914057243966255619499121213467732712428900013297438546290908324468304276653998033935415000708865166712432865613670445043423632462636270094169450044719909367332687584664230400564894685737408321875243079354312956178212665526877515586906875352351804829068813800634516407567970681075770896621203784482030659156459778768826199588810307612005317924626834492741561154240711779882947148763405617201952299065221899980767512774794346604488334442363950659056286992572017853413913059086649833599628143435486771230850779539944811853998348191037501813288364542398072081617684103077376711161540731345001970003369697972299460902752766717327117611638661244522026863797353559145501729117881878210554048191232524916149985040361965004707042501058407783371225454493046194132176315371885999340294305592575690407013087320671882024528158969152188139884234290599798939036043127311522877101029728150100000362922073165058465421294461315717839089292645665321354102609162011743700930986959030557136547427894093100158897412041592935033349047353674047402339527022139148809207868323997416248493144818718582241310631232331743637579023833772352543566187731157238688894863258418047652187734219083532595745524742600548717810194851851314418948872884031356423092101653721561460523208483417361623837237833645878748999952817358352147915863339627505676902001025342223041794014389971755847076420404325742577569860259600785073834875955540221503742358999302506165179864507109832291548647421936287295633558174363219854003183325293968385907437504249577516723076172416154589457844490833939229530150307294444263070656511023511069381415984182050521076340784753720106720498760882527966438589841816792364184066344998405859898538930816399216561358611082009157727886885885788604863564064651599506765372156984355294210539603636222038800147430824315814661317905222028842732043402266809763124130310870439404284346117823847354408916063345617871159563073103545059753486687368763477607745378609911374324499834048394851607268077194617770669718896773521333809468910907799796043375766492727302599654880022617368899336553280220536742249499806444862712102680728098104814054489323375367134948252349003720795710612511427777378916055618702519699092061343787839558027445336064987091629199468340935794003955603860989693764728038943563548202638558119077457821236763128574397358013768305302485616083720651390780952781115452583382185340734274924338173070966265058211393917814418470681509854579310555963762929305805181713205603119558823453264284350148556478162964390437833501264153867326148106443991846072055839240378061835728885023278157653929491535584649032199235563865930827652872742788210915596843636206120726048343286636743125949596788694269222431878549210774623097644849103551653275694864228159148071974835315824669072417073613337613347392535623970063724064809467611776791121382207223614158460824547358367782113842174897612064044597854556932558622680801622890048753470138852468169338404600528822015605589053628754715015385892439440328519689316845603262430303186485394123185131189472154126972366898626560749363075369641526661590011168199092073084641442420453895333519500412208976845749338501135940136117749961112684398289545157890336932703544146588352044738560812265817300842961830042682598332144218684076910440584104563913719219207756529774787299796286718253386541468318127958091534420822147161472493683071762538050107828521528515297869349400714861664307106654699004139683585202782568787274563590726071184156566621380994559195723395198904985302555327659579436134326271864266793372634551418856373071008320198504139263450026482452724223805984473986627049927646465915709282675234655066674115922086198302243490786806880683389959025166114162668513029077855612033739290679521242166280651793159829942374182602697846762725882923238750575484511063423642881453242753914089195710336509837649755083036812850836254961654123121905818594242386684952722056956572801728351635646231854421583700598096940988566963917868313192440865810236615828193590257181381573894206505876994492285011409344119307986504350000016302453452119383257652837206725901034581078575893084626635874824600095267682214513982010586965860493199615520224424495864008594719594034078353893564915925122455165508583776895757887790291140365501574673168692870157262672337021678635606663576529628218003118414688846349913731065716781527379318102858224062460124988530256565504761128230244735788085466863911558782837174105342252270299484872142756966434326020274807276584235525889203051618194255987433092586768248519678347120301415692664005422949598796701449233276280774413923611283660924619506670064741437131112735776051108277235862320527055794823624283605408220883470891523320458007275534743982226970684259053115228574035512584599112935203640210191668959494142981984311279987817683584038039185025554025547334265377455224771291161871814455742619842832026508295060392721251841734188666198569362577899534905885386029122589324714861879478238762972206140867264783526090056759070161249873592660215342121554244868519815182013699109702705657033170068423464023804011489656776940372076829589558851979705026996349865637994942116049095027796919890366695668262399174328096806634536282584000850508414115898221433079225308067984900827226041892482760311987853640186414601765109275817049293149913639525602895438634140917934424281624462606931978548149425627644430074590046829400020713245239735187302299423263366673165703446330048570497935119935031602246295672340356528214158136778710512260619774768715944046174964529025066412976695375715918860491891873294481002468171903320848435905238836017255341798786456160058278617454994178715630198776443828875145260195168351639227257667342858827900909455397455583034713414150540558584824245803803060110718288149305560655448199536085124351867664564878340425906505083582407897122823225591036959314278690552846849447550337768123528719707317117090205277875055821242752035588654927356917504300425044408587322400571578496623324414611267421485186224483859720201808498762092226304641153819283077078448826638244302643532755896360371734706934432869712386606853133666955011687857823244054245898779708783332949335220052596746071946451920679325625371668581852600245325095790121654641639389895594744161264082952391182399578024916105707066896876138358124653372430644611074634066049429836132397436846400064084394113437229427507867440961198287623290115715722184062627080190141927372285229464375068979001996821990121082351043302270860520164700643613094910847467617003377588279542304067326947746431309735326218734469190175378733993320828922742907748367187179337618523771733090027574730804392411864811631833131059409158313074369581072081082923006442011211830705898772486626375310574957714104532760349779691233706056053272559224070218058769038412069018315908606688116112320603440248852029221833586023666937779018205972790232849157322979982410627154130507246696330942669317395236936787683565453130207334710253479674312979733252732491066486988001561769616268140964160609567690659288691493040662505348951753216943192931954417782935960195889439723080532554040139243240788799634158150845733221892333637276117667428065624740341707046313092080334859908194952077985246908803447732826901396989838535282787678901689467604558604301839771880677022445408393637946682499676187765330253801512741419335275492064330762318790366740559507763185117720297478719099969914671350101272197006580087951983938744508329732291844514383175219946627882812085325515213741539757493259984324005967496392998984053345800049422606360680686845580321795312600874059197644368324810448512611764903638883028195557420527420631630519898632990970763820530563488037404829050741906824455441979307435846175662949074375519635710874460566086577499997842743847966157985304049916108320358403999598677002280565400779233843669661930107618559132573000980441980682998121038487562405898805488856243418782524940172648978785978940999068119745908189124973556239862714626611550868413161411576197964320048344240194410769452681014360413298659777450958360211794027531808884375443521315354033491947764875322457497438270876596537410365020157953163308611114230241111525560793915723800321032178392307883907821144758601938977773176706281451520224447108506861662867155989332622581024890195328957757806430204761472309591901763967078666657163650452101658213036523772903912678389911099001079659628095547015556110615079080523466009798747350950189631704382742216729359826826154379038751105461541476135809163270378817563649003128523895134888134959526252311122504258239618391611672920247899495472891407671091751365306823202545865195542989391291288636026956919062309301367417080074955764489416305651179880554020610389927449712821078583547379852856965438514360903937422489256716482221694733071796380589131955261658432970938230384334326897104748590494960313479851967113132556873739928286249880109240694909876909063139734362740033827961908239439315060721126331490218673994127188732105979605737974701189869680721359906182183072558281887595113913110784421681746956437579425501065988568687647637797008150623282965621243563145384218134008600165110404641465722038916339018074121649561539735159403982461913200997714961730385513276040478986576852218756979611707061383034917013069350634605739407139460623058841338785487443854321750202762152371445180720968133664191463268153334110372792821354126177075156121201817823248155376038543460386546695918949345220552148853593556309491552742330999045694169569843397441901290228563550995901467758565768908470577577368558894633919195832240116350718377850296921294968338963445292276316150435893440487843237439872385334099631937808851223897495149919780061134083679177751291735852345218029466700813389267692274993857242429596898930620463553804833323770548435685733273417169795691349758743038095934651428818858632949086758464576485841164561353264403789436338627530627362587117142179507867544779971447356646058120034998271447443680233131766131891426515551516387835839240885115046212637387055372791717534288316263183792705385524106418958820597883468044306364172907871889234337931105133673648415990375215446872279233464061918589223963727682803009096862929403152473662018411700434460645265907742023407039519442423552522261327905881917441723083717481099580902335926123980731307476174792377946279756107256996766394802844471491757269907296946949071489456618676037792401258331446494985027927694566405474715365373772204469942234858287215687358638187532489762457923261730046342873345553808478588104528494501981165795543262857900561054337809136845173777500197064717866118067003919208217640819914601553228900202702252696821984263067875311303296173289793357399532766479147177495930248525830398144465390998525331897396381140428932539126349007704335912986934877921371571844559936045688587242331507819310761973092884395874770206176640147460237481113643847968290890833030609015404590515012065150501696159093355388960110074753919582663721896944131491144647986802605715831565226267918274011350809125269451788377053844194411571902955163607682160621419540236830858721299697518986105794277765845231212601506203353646189365041190818310996448537025755413696809170391291465668179839004259412276409808668218019204746334454437904242249383775665332007901494292319209175018960173603898046478370026377549729297708313591226738041611316741205607463920577870819288947737449934893910557910542448205491294087853895512600174686019741918960191398186500898842712660936135118031671024856228067474046265901615904525150909758933871221240046649440001728331593367450603840227207813542558924976347122811676556818330518471912910444188338216550462510703020936865499058380499601393249341813331048372535512445959809767427326522367694886659136908601237114416724324909857409156295517835358675103426419143311026601427756003260422363541061982772785994589475760025289503135548044011612374947497441441806220874400465093972130089629134884656024887434491843238659390288644414823545841422414646767504868974387769491888631019355355281196481347499887885796339306998262030344945617868509799688788481676463434037891739860107791890425487032735745301896187385317105692241240938723127002426998956128376381361173137931166280130343663675675387599104063964129958984278438939938299059646352065320085725869636033664857061569183086817816363973806079106593510464316275956145666870255335703206519076034931574694708388889787042857676587997238853956463392995095089111308313002010153825598364092394829316118612121184182198132724458291057780565778798977662178187925176486653131555849583433321390527815204536980387871253074471478382064539394071164364838529765560358402933613511822321989552572977734477419110833953262570886367129234142636032403941945946962792538286161919705588625961074826189717999961741815424020809016696488521221620049507418175084682156921453646671156825196019076915345095561720121737642471607342887676607716689861431061483872431867161902819901687790045712892179003057267615595949442763644926647814270396214646678074488249690383223271426628258254047681709920785173104524731128510576410732176323417003759758587953005599127708531365724873660767824465242477306705249743571566310004617119374421685125014563291228937771023596099046300740001643494288625187742709199758492094168565418713794627453628270006438627679831576029987782069866636446819609451708613803956705742242110865862602986182417719886786774839233793085545797685467301422146199544752705648934266368954418136329615157363698816108678374314564648958365118246540606018152741293949437750934361015121132901312843401094519598071778974113005066384724948772232163679894416793768442543614453311080902792139800568057326944686292036609839877381131282961595761390114331744002633362367569067037389610263068035810149939063264465220313181238685142560784205015397484999069933864227975309149502318032740395894991646095871104141184385434837813385689349959061165671945933128587908618433390597849899937507442763379501679675563224579148069807580474613168102842341732085148572033609935790433402830064431643576327043922564325009123546379948717355303595499316568463926788283366973865706315769972510926940722668460561084917679011088910343185687926204058614711904252635163493540605569243730653601884176162093873347091975842953095189466305598315942656056302035038083467613588444210266672929553963348744227159752968614960317351592732007058565034633918450139164191188297552379872829371290381585762254124315059549370700836774919155337506259539694798392505800595274707703670959742291508588407700168871285265487918881351987689906083994129147229658414397761745309402455231756158111610432298069121286592090436046042095399890927047050540891635350477185201244043452412385160494343733006747770838057227141928297957439281129711927866470348300955884794145066284304817971202828854722159210583762196589635958318850895550459848271359187043428239175311518203655884373467555383696168191699342092369733756039065546710193197385608299038893021968344202520042694070695793037176513325123148556484195505511319350207428806394608505572031906442214402671971207107696666034682718989499663098652539766704119308783963486222048242128780114193673308937481886918890521801223290337191784441037242518103981224292154249890894650260436398356896364086350943722136543620714360915403844231217320754963554317656584904514365255600365099940172489842171638455597393884984391878338161439485049888964458220007162979557920998074240390475230292705999401717964880462467024696534172163313265764783508460767231951481231323389885487907304792093883335049967197599669411358023158575983538181725061963583962707029111879552533494240649844191497411895050629595130316809992604426574543482624449853972447227428870040667724523401127539976220852706325909677085583991904700751702007790395186206026195088274165561217933825289356276055872298649149112710366235320093240670816230635254290382207369380873395960424937561878970297449440960775995626708337243782559214545519593068637329102506591935784634639133585373461096497322859347163582906675124618095434887741393456525442771287127288594566326863171139384810762725507298561473468068113772735514458512167195259995592538871658095112899841080228372100386003261303951566763513411715736931696900264397052847517012837854093727141524398225657404242273014094118675403125862689285126873428005436531447066162673752297931699794630134034953053687575307039908117090928302336178125191706430663992576261531058995295652570784608469740288816233158860936030468238660541692128910224648663296322228885169785842985880566691646318728109409382654840915191676496728095341723458254804497477754930767822651195292625026251186377264486530654518039774491228605930195394601351179542607124443903440732490951948092756845580608391921999281392362746940434273680271934921975840977451069399612030568157640153064516754739691622883556458798961616825294613085809258871766090641972722104013857837712094124003092631520415622699718825558246459332914754771415249620943150759564807945523538371253387224878224798652958082111766993049260815211564101823964323068103778794978398757499255081525092738851972598214617631906334040437832273542480158438698105574605063138635898594974007920256559242999528259939263419171665753853136652520709746013544747116245641815304899977860620027949690267244975770830272937920373207491594925059856665652337603177916010356680682914351456003834588955243038136517816912441633769577320257021625361284200558256453370394276364684332873145359984964398086373979405275445308827617465439446337476723067449829251914884830467225750936003885730379846049710598235742802127708405480283092329207746328407204639817057293788359826709641114813066872213963007092851031844904326350859969690248342209664114680053228422750792129017177411305347661937704249757624840020679216876522627285192143042444761815265800495325458615517328064337593142623502485622166297538378027499531343130981283530580252616483480304328340345342176964990968127222878040051214292636245054793763355561962280459795596337276170936173720667290908048385294453534235227583465457176136926901368134381584754352927893915097821536854509841680050400190691804079632598569865193185172161545815349396162514871433704800313199745988087903146716480982822503830955129069983072040916390526883312414986484705504645815427293889682406585017884962448028159761681847298981469987459156129750543723494110426076388636338912044527116163433185627423787009902654904391110506058261862647259335091178703206789362467518146950490717382707805658623441702193981675856091768401556092877780211509676489091311305440205421077741883366259079114630835468704637030486386585468341617342661566079942105710315641020609857056576962777998038965694188776342106530024429634847171882261477769321545468539813733504611197584087674215308046487867602179445743469148747248770539886968065708495093251146461950483923472444451404694917128508636080638848632038131882614847399133662471257049421858585861983550862809225925819137269088737143516637107263385850586373412182639810500774612579334544039991692567039977552556571317754928191339003241027262526624560953879253930434371685037197959565399215552531121161850984443944562569023535369905968273593006895626423436201275165971562713772640636804575539169025858921586347962579647109754470104673830667138468815573753484304298956726934174338119797424781842095708073550944799691258619327128930036247118175771209234433064066708193942690723320137428908684210660084553581267740844684246935348039104796494771297916516446524349348233222836494887128979932066046364131905302787355269206228697275169925083790627358123567448319625278221405268522738966446375029314291853061819825323397865146483781255499299372334189673787832777680579215186872654373814739498789425533053315175693346174419575197338553100434836788820338632782350770390816040906713504847840426879211487727409377116890420470468259027224027900232803489552050979569332179599156635184633268759404330482486176903088599170388960719465241539862404735778075044104057599251868912501862806128294066292130630134061815545567831739792566601586785801688678295162706921481185442967225692700683071762018489191513500084854832369928530711059792223230558488510528734742486171915577454881072317235454869215455877217458583007872107001013588860933267362437411823863567791238234290715504957125314061443821355358681275979286479373867351378191798283578744152791460291491763848733677148599377616719968175028987525033396595454585240525232720465953560316294432938884101432655475166756530843741029427844697085440873580368103159409499109928276395260749287889397304222586608525049626402874201804796054063875214899793174524930594696024125794956607812241577683587855522344744998576842445396275996504585935951014824254818780578456544295201115038170240091930531782584649963292161463589986704699090959933904028865963651955623411187494535019088782978742152758903138337838798317881348486902264556149536209593989387601726891900093544864830786404079048348406474931956084532477794085064658142176984354927563423730051342361745467138281189139901328340409322489042115682934433264186709707282152749453825993128101617533450636192036130469483466045620524181883622986105212032454476428552941326737403407730386657828239416000665952970613153949699484008482208988964742312325426145198441057707213273171719648921011081990328537734460111058038270525599682713755016210781986679717119134573802324385489932462294971916106313695651864127505078251216830818388697702377899750824947538482151377535191525292260452832629086506113672137339088129538275922887931066667603827142092040313248209559783856507896703587712166118077859777957780300566117612188208686590253315392003841862056501243391798225154291886807150619517023267219971137566575620764789360880871536863050039066689931156638264022955217375066383927830580772749399527429962575855474001748010877545208921706974443385255384491438005798730067518015601949199120856095452747847666303606271241036132455919307365660200961590161311111698953387840777217600679449461757672360941497965115003507984428351236183339649875946692005558355524986257281698954748409974605618712017322979164307024087111035577541353473595724010743114772824801163931451931779418290650652992159688255053805044938552755943412147583130769869873603341679575476544952740952152159278698771473273633192874280145304852759030843180644585559717027908956731589170391514416232306772274502313058049678423821170043972593770597983119849187521020932150619321429801566329664747577017871895619970994341775325296035386355315653081063860206453275277199121571136629193050270903544685823145471467905533008924229815140843813038080062745297776952534983272504955617458315326165279243857197865682081293846075283148997422565045972950223562696647354566428598179928141327458834235434239140993819133909534774868553358876406698896001596549338466143344432965995856632258303761083823421635809892693230538170679931448946555806493483369864847025966433131112288924382435543943128276306076536687959753109161668258440677309182560559381732850383000707181744635205601873326416390800066459638070318498638154438628160496453255695641767288645800132616440164377530395654340314607874604748442594283167569374457473375735636003380513591715802628708217417731143647272659629541121576558463019475388522861238092899802568748591244178311476242579786108106971685162456732653368977445416541727061083593387626500591649932057722123403294585875976842701833046954431868511207268992373318674233856834850900275058201164027932257677273419889901448211421597526162079384889420978835977400092749648876722346051869011362404652677744476331095830943279244283243150424349857746649504689301366018708510473186655594222973565498240561701776029256216835864476108831656493106459685002259674665300179323577411594051704533348928944123470785485520467340872793448608334807605427709703047525659405382659927213692764123859306932525516559239957787937520550656372842708502820323731065733350454470059753947656102518531963550175879411539819228526327749123895926677489270808716412396384049643913450512952029097748758864097975229612819715541940567840306562369047729602784427247357025800057547641350250906598707749864122591618376954015479686365324736488797648929192690473610639084919990753317259830542680538910954827554346373846630266655948645050832045057399826677297735491391926705391020629914418143599058399522539572436945534954793325273865821198687991738175481170518421300331983371028152201235383683293358241940595844268240337142657039517896765973458445433004992662562418898394722796024612065064252237545639270209316331889858742678619122082327613135316124211098640303422594186339641162601422131113537632158967667027184879092611571551172477441497291079419416614435770260772033212337627332745214959429888748124333836903636442743791833520404679566987662112286942119780160701047749739157577956574022538709327225672396064121583581009024733423903467157800400254845382795966932854343932009220236172747262889795803443510551077006094090435179890779775757628917005159506477000951965397550830202729372772084538020848587591326296735543974823568806609834000870191533980184070034364680850168015897572168118126521848171591257324331854586158979552119019185767169609797524548070893241197652966141316466322512929340998148665528515828949351452943551421867573456115077045855102735034420942006453433131868957555275164027604202824995169445161165753163372101126422865855745533979180782958973747145841077339591421418599534984434143980340791732429238596501992637954825229169390858336694696227042601811148022632628232923201431363189140379717997529405716161619429450752440274360277997222039101256537118275365621300267315633878199279350011595122958762005317878655949402956672943227385232996374588391443794456307959904811563615198312198111641500100178483799355750193821824016824161643919348572729865044957672641621030754803710952795075887890526136938352702823757100772617470761991322323491615192464052496667431232892182907008128654969578533949712198143074983110608140523052307507667805166098564625898723647441405855833833671919017146828412739656211300930533658242482317397157985718704454561999306313982584719695327945846649474479938224781906944551115797303789066639295033389932363218547345168455959754636281963973449044067475310637738799083969259890655900891843094434341103347253630196259051810088937205481506243111014198908533155733584459537818293962708859065631853193620923380404234345848967093729385082820130570437688354256807149438310362434500228185920162417803095602471553517083314827773563028188196755257710371847055930387782122785041225866838753655545224483762619652750559583607113698216171106791685332705818227477753366135954462091089706085047025213179126366354829902363045810225126167051004895517073186461087692542701094819830872413817986797158155053461640172618037169625796692024711341639563636389478538864930140865777947814567008674194739583801807216069191655300821704927959787100499940181695501131982507311797440387516690433890271605357555539195018540923524617964045143651729574648790620587554252868791208704635166303468040711128266399399107518400223765019679833530671479148627057330620444580176569525094399526792578250018735377151295897026121526982807754583864226807234102657210879923046411547996995725794591929993664303024205968643386854313940888081366503067337339559025281223544545833845975554783013193457564482285949951264514143240257686970102168519444560309761623605381284361132139027668410578182214816442451256819840340823914618664687333239874098614048414696204356772538161037723746959965633425564404973286404829699500268827700977173910833908078109635998045303543120669302814571348261342325591971483322034390420864859901802997562213242593750741133062151038048746918722707446674980159572738052488715794480468720685895805201938357224567717947418605460550308752641837253986173420376018290984653945099204338899332011513030374516260808195435017220246874092989866890718144106754028645847204505290756758061862065274618812747016866105922127630630694634193531893662101842117724725383979364565798408534978293033897540724345490930725115914724845040515565221171025897809035970119467650016457537089912126533479553564182693968274832413553152026477923941245594313596570162587916708725553874527171671378235448617866170452649743919882204340645183110920004419725921482593534504399347358595469379123987353421471919578836307289786109116909331284900938942070672891695735958202373556713420629708574750128831828011173701724217264324635299135694981055722946755503568147840344892557682658580470328160883322987451360365180629439754167943426153573289020306347340221800956174475124479960973463548549175499230607075116673248950057922898090999233368557944018123525640431113012610085016859141981683847720214866158074718315310293439805707805173154131346999887167970565238897815896003691982795936706768744708766689195999448305999357582499294300631714357683428792493034873688260529061726138501791653124481099397710436094313624091895851014759806677978241392716631201397132845717559727695813664765231711115518167005293756787999634396285757940213784117080740968809247386344286235254298190255081670846413568320523906940036664323309791554976524687819278832475501487872455144989818762900568966951599952488680999195942614924145545022629415458879904478260001033416811693129389865760996577235190737150758221279195608177450211642876111821983559739980081988044870249378913149022668739939869051593135547716982166836828577674160148031276731735983368664918845632454600210591282053666116675779065178107653399930288015458133332248303351100762885676287496311910188981354936211205817001131088437002684164520536566057186129358231477998678384736167876522278823217177322761655708396131424359506969596924441515906284208693962412888501857651465490038666341103327709714647538423895437684924759328807208442963969501104671930856808088645187573765823274407197565236305309988287244650105870552131407220043342955572403514714953088743116939007550679152921210728336080671710980944341179529334461666285703675364248588272994010917975808026818094014676374521464690596036631119264373945248186777603140236367394279356374523072780872230052112802471439461716200991569553655965411592711721222544103851290407834681404108630505296372640936889201039406877493052457283558758116946262308458728409635780221554337543038978385377573810754628997792267991180874134469117523294010572748981932056377674978447413773566288249828946707465029705942402032573702848776433468888634591553673629246906273603925598532972976043777146330601889910627709719786851071058017005514279345377751097311925913641197204083399709657204597463997928412378255382586116831356408961404169292219348583282615034245003964043993403723836601669569943290829626594827875536799770790376706181248357706174210846481399931470403096397479275228861769300392464647138284664650169642790658255770732780953960441791797492493130764844652464427939883743454373812785167930766863678411095681353584353392133293826502961170507766266817101871513770352847190742453373791340889255290042950690295994845569822603815802071330026486740266687333231332338807775301432002514745126857264982770531617734810972147284506853229246282138134682322671743619871726532531553346123792320797863819635252488530858347083818355422318124933508659370769329934119575179912348684693957913047846910260443917371293371049437348317566993121117077685475087429107218456171395141090394526236240825244435955128388328473920242578580830963978056494389326462029448339857869138447979599304845623946388486907067745540364617535374961252129434159899382198699087463178710144442983103108409752492472862600400955861163905779037177888331849499566607771418541311862328521821660309567825294687382526478608564754928917455568967339423856638377550075499094379133386864144790466016015071728077606976687900862458200973117822567887436954699056168946853955883453486692574654852840139271947033705838648533099365900953584089646184546963960490179790786206028924201618118490031588553945827640242315293856682028425230141751446327184906558408572176289124546496398541158266678398201709492242176931242153544631829397253617099643102350803702302782130206961770304058442447654207255695539651855596639462661548863069217244329406269884059369120481904636209881031394226325097453524950420381493687417229173126504857406154845973984677444180461888972248858963301972819688553172091650898077630841984672829479227032004123588823623910443501965070721802556799661295557448362308049433492071004869054135081489671529170402332246265127825257316801112786875886477582915411791255724511690871136646044968843379352694433137934161293884996746651865277878056394501350445433912631085303218245843644126461080668067726755472797806926487044942911892181811477309930608619804587918666303413930129900385585330882105186551691085298734471793376762866196932208414361151992189088907955125277072084768478645322841612257047675712337928173800358603440019181421400549477392181738755858108866471906640473937817139332926703885405643551819526335310545265005514508453392475096493915323075996167610094586160967938090606986701301440278471351618980341126301994060926652251558276540087332306437072380426404052503002189432245117232499716702125979649758116095562976042844568918373680424087502673887125623086165316904539256503178761330284907632757860363447932757566500643984222851667076134925105998772449294052304093788652955463546748203883786864501335691804463133823349539324116979189132109658668805256397797368476913337883134100052847794489127907416449624171619781973675588570599531628873145455043071919798283458005858088943545879612155014297693129114065190551755415133918537863718691524955739712137256574751874924409426191696323612807975812554477732484298412185744697556803136762184603872482733728069477468906950996500693545772190637729254068800359514592173569233870349429339107875791457894565545921355793711898343409247849172812105029594742699728184285199483066515014936920662110431076671750924789848682268158909400978071672477050347553845744329807329947142350777135095381529014964588373637683120205252873997271873987987304156204234931084089560228993325938390037730493449748355661745995260289399061604320924319946310206880312067526334239326841824898531796338264546689866010581722421310474972431048464359324557129640202042999836541444671371664852562620695397886510578875386463382614820473994803564401427311774309272502389202963124775737931617434399356542680410002966016479651455249291802308875611453655921685915689702211759551022437119315765032508633007097987848123325597868421530769177511410071971392115147768816427011645990442038775358274974490397257051781516793893553775803907784662218251473462433962648537325623974196226796303928353725493159712351866128184678444960617167377188818124729775722498302695082914681182960864689508274877957783905787634487044336618248898259207369434325871406695565465481405510554623310292814181177732512744148341402106391039849539561066306330688013485118399422917750649658640446182829820049567017517167713719999842202992371471011030780285470766306885804079634015319439411443065554331497624391636274155416800352290283033267890176239565074147126602940725455087155576371787720362132342468290158157311859192189720466671285326575681517691470890064300277336106267528189270740999068814385158709321163095491353878015056610249640043467736317144503535773948602105564159844473998252449653926992204693468044322785987351496064919530769205613049052755456292428475256978275365124618805699988965389000545618785842594007678301839925332459425585456974359880589599200175574215703165689447161085418143628802913452046718260068900816278080295955230128693935968861773306338032404122862695670668242723167251862101119418595154331559835818314551331918555092232156731003325481547838509850971787818315182478836060929866488328178092781885772769712402749397841195820502102850193849250450998933577679497551061987179053534335726835641925464988224349321490657830775397897567160666366584587170821058136881607568195741737718449841399070013777121702043597308806193151949838277373999018556833817925207267015582779997590400588674368770813413299046483829178659904470007476161100255878239334996106192542950331748071812872590575518365365465038676201327275826803011410069222883166207673386977840602454166407065877673083962733302585979445058314555567755876030448997528706098672539690552656955026802887729102964108990255260669905392811309765094655628930328816227056502288238032889895475581523818782434368568259141799369879318543459061796769764908725873379263233819032269069780741024628148676299589820350316066016404852320933001707776197571695807317438988056950095384288093308879211708859103835646363530418977100779045535360570172662058612605054514463578199545660744365059213985870272035406669503827825961865609894788207695376979274450407141142287181192128258577016321494808041608014441473990656127956951994631941636018487729707346905456487087534838856057219622222038296264296570207775741667638406301496065522392524538559831374586720004963843681839928279869334481852811649252543692329471996717015819034339981108738202116610059508517039017838417393135232133251372125078934376037589021766038184642485196704154639883238427189650287496061470343887550531968434766934518771675835133686745047247063609200873051665176081496000848358236213301300236338712201152749368356593332818132964068212510807699527963463774964389536999351306887916486737385760638486006457572970099207495842051608444548678178955103972828536897808275316908945380227350882303101630514560468433299651265644366073707288260774033256131985999875529809125949782483448195616152976643663413599356880661128615742435578863808106565905604088962018797699818649617380687138750616761171266460307646138179759856365585183838839532484117225424968869320466999541192290158537920042773118458036375895146551588785655176365364876924089592393421122916300115598274956733569130065049593914990167535229851942873562937056531046508803600326282897764027113036558947119609874218999405203658913108729331338115608043452798427951367955550053092810145921873647343159895114462326584675678034510052993375866392819561244115486645100596171450832994348415600804897918835232570948926542222964252695155858348275869404584862430845907285768403936072007193034352225590204230064489902468810747616050069247772817501035913618437413735603457544562485371237158795880621339942963501248119086816552075573186433016445093172114816528273043012462174877420021779910682490303353032579801435399693259616102661808362770223077072423393591653989877260940033586949657375463330802012203305503313129416913146263687803684028240753522745912065256608329399579033401996746921252061828230400157657247973501831884415840059150505797854351761558831611184381220983445472650995292829743230426863448681312692921663002812239370876770434737030057510374200483703743807780657767916981200951820855741942169728732093755925712762286832522234592541262072458553074303784493935962601069135559942331341508705868881542800664076205329732616069290784255077315282109424539878306728087541044950843462666542129885482884550406117561458242784274861673398798106749521753500902823223429103248396453235824195970109753409984850835874561452812743251960832186743724111699031152590239636004624406456739052267998662629434395435484102391623445742914804987181335441002035775226843054816550510143621022595353634350193094286477306938463540696275048312439008199250412919067504382461480797282556993568800528091285649278553513608612766903457070403284772995735390546984760120288020496569921069206385015075800289793511986578659125911697799534141911277658656231018704316384388064388353648356800513957489257071326857330734570780557216129749052290301814646790721307320103859052207938781430798094497877363125904557126412616495887892947966428485249461976944384782072172195778395241332286611165815495169634734341366892410613633669262322241347893776764989526016699013166259274805972929978237198085749671092249919032436055835847131424529686141598917061495106770020501455326504026570379722969455789813993698127263287787526647921888977134544622639994004060791966255533144385292029804360738191080646772512240386927573389026893694376798356960350605802652490253243924556389468868460158166447528951182557432639555394545032481871190916814947538620622551432956605293726015055009840343391513444070011691212436854286713400553507849414004842448910359892715449385599749956279416762580295786488150540624834946964559870564560329353104768264514958195059413357429019844388210665839556924970024713255762458860728850060268573238010352009373967890619297812389474012129712309459781838698467149949801358697864103945535231682133382239012643204460600551160551737810008033768178070882453695210640092827821515548799239937957525806765111674262136175164582256054514001531554192510475167961098095360179641437558888920052253308454087946069877790154918770542015573934554822137643881207370976963511010000533911632376550237886675362472121148274362979624459905977368386520001584317078377118402215154770194308514656636490119211457697026252991973682291324700131906084847218375547139621685484334110784096741620094470846032649885287462397138525438023571973313053239805127889713885109732745203111514732973005766984785964765544464295774217454158354085829783224709324622329389296371776412257815788127884951037434056887462234894228721625030408534487112350181149399041101590205578807448252428138214414752306259367377387200068974829350726101041163501745210948733372691892525983764067671919529829700472565558112000443560712884214093304022699756243471007537734498223730456244099357931249939367797389100698505539244258320880429543042929101815398952954699310539443763481676241840730918339066279177062619725032825918280291182626023083250230207353635195387172024402542455201130588594349612400995557686029757355680126019997576447173690702823645963967991928803929577912597592926779013746184825468976863245372635574655136548096152237611635601587209220848345998011934117517402336249847972858862292405237934144067776793067140899160227143288691014564147146361468880963743248797266889082463426181493522230811965511601151306496160978410227869342466884727539741592305917562163903837662725406456941302153142831432940343759334661906135727652017289405836511694750894284949821969821434670243387005359944301802061098339857675835158153866699663635696463649883200750874500125131004313646353934818178773855294960877281913957459790497223355094128077150896488141731980076979299287021323072611573104023766140042727296848470794180427152252205030506836391876782372636025725940835311611467010329385406743952469864592678273428861975635671827509981885010929533365367631079390603551007797039930886517248808407168790896300493730599303826020751182252917838072123675076822855898533371483347646277163241882943877665672854297094149543983797366710107010785910412551247044076698368743317481406025249384136093026654327995600656524119582783138828474634942362059981399380736890130569480433295848414452126598162080491857180302902988270710525220137437118197585570204084504815609511926578108323960575112273364431296300918971912308420040287830475926615590408983220955567525278681903694486199703467003649575715044877515433094382728543287664242888144520675622382810732199205699298376041079304915884761101030930634471285825653261489375595742354237710163600227582313429539101375305550361465009684353689922245904259212010905429239142560467669741217418559086783502179901995617740938095550191417110027219360110698049479658395075702280540155321844099638594005031931523899686222186140452766074259591061207665925095251644182737579070351344393210741014869265643753250866525622755557131230439338425432449839845081731921228114481689277700752601832645760514126758194174553619385620139521356835797033920529855790165211022148414096816722267120236362571448605126052390226974049551834388386250697306844847663721442461143705814812106513574831593779840902614405256415984694165194369933366404008400282804622318627584234433442994174075046395787212437271299212770778221672051702638660090115162759362375866946602349058941611301358173462056370242204864932613428831314128285931456962490137102070250810149767755952146895698850500371078454129347943516019391930445617496347983225257536193366478590099017537474740481283837472847408316874823855322277572625126667397201101653155779515093373927282605771650550731217318064189768137561324192660451007068145822618290222821851497286187164521324167908243354445089857430025274637038109242134578971868267246679947809991897313020655969660745710535828767790477160714563607239545261509132684805010954715228098180094973862366734707696727192976461745199003432541535598820020007900582021408213056552566840499127523050279284215657045883131943616885673689019711376827851981606315317946640087503277778582148939044063016362601870291397166786896359994837361410949658325084629570117014624746483149545817441067269066793798873300505527619849097096609164689949935428498630946504165996959557871463106199101760198181468938433556097279579796168076103003041206798849659930811768695094262477409820294340894512810921626952643318622487775378056290289809813983064400522830316966722219922159709111996659939249309994813317696444973446567012701493041019315558615142118495288809155299736720631140115812747287959152587014795631253110725159405487978341448947963406125341933440969712961958343254606676466914214284951819007701974703213515917292300353189637192488080682865564253667490756091183492724459970284754665856157645062847827890173612692133777323431973636907433347634938093937144838852013567075252887127303291938880194339744603498124032126498991276734211674384556453734340186953411195982713981548600787361560193026760568923494872785731564812219167240545716008255902865703091023824329434941899452360990647067709626910428180438670223935420150102692043326759699833960283232344566614647350580058962416849470608638413109283049230483143778452673554331121141666498007074619743048481391649783072793473187240196142917367725983332913041929293651820566530059748064722390389429645607040914080662969373428179534812823934402429934286640225218135212296712831729830886280699030204469636102155809490118216998147072688402656026302964027542478405867649075141818596162997359494372089594121007565861022434933789198363558347579270964743159326148868478117928200241451116892992506004443011999678713131299930149041532230597553910300014996476564248055136762542210123569771186441832138761477299910352748928373267433727853963888852095028550697837331425092459160209113624640173195962393055829899617411046324455091376394270297975769997567867927597370492316647344213578572033471389400975740651031506795835020552286169040438910344311284737194011350430791888328960546986972768099309622821425291823678270965272034693524071929381789627293443966123752093549388653439898611344615583299145207118952076141995703440989774371968536606207547236546110824726404438140071069034577068124895443401956356933354746272441465032935724603927819230162978564951760175213508862913696573512557378339285447471798680995745342239414373725184285690480916617256831671326358723456773757904233433689597934917445212961255406095219907572749982160653583230504516425293351893311012090510130348687274972076886119232160358797860144416580748105741244040959558039133285374869896536045313483032418310726625516331983195458670012566095349236415364657843862508677428243642697172065910235681250885418790584835117059893710612032721654542198544947623033837249540819378396846470670153535759997108079628590939849433045328155490927896412908660610268335261613916283650596790277100293327430989495688899890051906211520401547184314308050315809196842735225746998925063496195067173309606895916107537447953952640756214795101217821018503969325718306916102949115922838895457552284643716999779615092496452703546150083945981707893753927129603369109493334652377053176303436958312596474677661303472779282533542641706174673838211599761954341104430527547593155381927345939756123945420771891855316008917124314363768465655090460901727235523665967824663919914207498679417827272911873832423231080280890841967301265659162971188664430788265756723394933224400336084108521051367138488396764150307237726415752319353650371957330983685746968122436723902223404589878903951742151457816387190332832399984995609795773983240065844795975416926879556838148859038812819884607610197136091076533493786547663247810636825870055269154648977585192848290116003171440784859289864503181714772538208550585620076215190319773870409663557417817374775665459672551276493361818635033473110040232785343662470775906351450577886758986272214289144393545702296285611379243071472895935835860410240207319187974590499870413239298637282926583811836971142918733372885482751773100525443835148417743941791164714456001798698881976797402512697362971782827375547767588676836887818212778737210002043839195308072170326738372967080364854157531531788441795286774988089862165532473311739307356656806534993542793245984948559719435798289020325023582538468219290498634602922424205113759042897372940396402177620194509585422941717131943780882860179870728943942189848281707367651147126487675494736068534706822839192486456548454562228003146464248466582600405572128288721198826802460964307609440755596474563275367414570177187976647415192087967680626295768324105470140720033907278965031770436185209841832652607467745092330064686035137121171421512785470530236241080491285901724826981942940762645468409954857816578906091491359254211626202603616733955890248105924639419760379062523455590759541513153603648368599722614786789731821490125193492976104866358502843969991696728462672554138741397581853421710337783140059418090857881273498758466524966079938645627699484839925823848883379568257901877233344036550324244680521948616071882470053666477655121879476116715182407675533430490234306754984297730490607707197490727832501134752640878415453188860300103643594693260285308330861682013982800885990411660596541450415892788324174931784270139954978547585455610443862803932696588748815490451492846989127206823367320194646618109004875554858632755589414783714021455419527881414448782249269637912388540645837335727690643026488190740305320159588673127963317600888291807147406201449673183129075638641182171664524900881797053416965820241360877836476436667552108786120710443229463744037638349599938890806957974522512527823224745206451408244353438887597010196658683590127434828130346536602093531528447616019131151904306383795236390077806030778835303764324622207942323741359050169857217834397853807482381527470810409558782198240311843645296224368808721927764199396706512042083270503729071818713550024110486636101942857146690381843678085548836921713733398358705985418302418969389193649558397939407044868705734444865853483816729962389389315115474059856404063730008657593407867648574055807113924853640206932366226461724906322313786888375449217768095426101299538954847111810752871431758551186075697600700869048706712577219935227725828880547590207932636945063814316682158229793102204603861167282190609038143062106868934583210567169797927317476692966147815900993382662708133527427324535499380776501231428516294306225340982928598502280738137603655347640601007106712724246640228473573021283870628267844863792544701800537100221230848136130226229758990167418769387669895101650878675573089912628487667565374924266445829809470249224959459768617317155537048077269775051383331844067739961950276820873309379711897700758940121920464982836623178329302780983823272929423141559238758841067679807722913687124444579305399836534672758801606185527474023088185326333503231156283501756733768114258708915385479806908706170603349279476477209906288007280642742952989776686813584739460215844151936894505743231711329091675163000601142476999401392861958325386476228348281989708662264066782037274277694070215126264825933727409783178209081878307455420319146943234178455662374438578705317546053220045820590318538037181074823517126465325912061268545859301436952603330449772546741904851793648800574865999822421571677688509566470557383146402211324306808101188677180566187255903190284565134594263782715411287846114998787037541483016183686816051177781833866391837473028937552189085836214008302894752552817008105805055100361447262211334286779746929409440799994828605414486480358182875938701856628941278912177893703959911935449177053367154912800346133829508693200904416427966966779338874877611623495215351708570520517511989715542266773226241181763263912831083116403393137514181993566242845559939102110809248238002331043068505046513929061815558882077490176561972265096709677296834057045513419617657515564293151006301634376151530185281165459638236116526135637109938478386056928941292623843725769938432517982187437594470281779963074261914472678231900140259277324937023018284186993524048417969340607223966716082101587027901292650516744806689920070662088043706479740600714135284706420881287789918620378604476059913076783149913545369728165998220940823894705050126267551741297612886209175118697599760862790678961931771867631280738260489687359893543812047004802697400992402348849755009188540983070275104115525315102331096292783891301430746932810781316613824514649438703559230073489074678234380836877392615188351735648351945310669284980200798489599051454489990127413498183569817106436555686519122188857250462870357248028551845328272204528785569496303811391781553663055671580937178716440651188688393094756003817779133575455062047189173075941383199086657935441531125422784448075663590331273130938990768804679215806782852371758233434521725205356158509715611785778402555616949040503688035771360961187777578322605428792312917903997925337984456046894706456313942752108151078915467009134849809246697811341631132811186244119935943980590231577952503439928667980051534517936036918785422827798792986420190363322216727518442529840891336878314897369922935173180028006056262159705761385502678036730812519589465449364210791726579936571934561006719653575301592943262835507034359867145982355146362904722402376425639218041479400928824637483850045481417765966824564713334911259822035155686592526786491704414943604029100070887094605876927966277165794413499452961779199546015099626323470348000450727864601013945520027643164906597474136713815194033372905518172979881080741066625201045328417015064339267222830106063801446106817115053456553567496799926309242988029234401792955682846178592268261292638371172757288686745333306540336125679762637295217204853549053520257167899185839514015387778648159569706894684372971536565201355181769170607851840388466281670405248522320475212854681745048047413863272610074494065859457235963383782745414522016774874455553135205597295408144709064040214645791488621676661621638669570155765581864683225431221431902204076854320579850321278829072308086495298081319075277459646772286505197711867631790474854932212672999789888974751300652799816543170084925387869339555421218969722798738843460249631391738305086094237369991020548814061131651574065465055544836082971830554144961529140857829960171900323191561639736513199602631746595808501485303475995305418662276095848762608544356342342298179803234474075560294040741524958783134645701747700099765353823965563119550928270638353570749739942965919892548784497578854088381659274783424656060167209070609660601364884726989161604781703098331433844047324793508324326297379347518975473440078981795709847524748002826258317067980681872573130953266053149997536809512944326892194249238099607153060108796049648060225894066873363653404299679939097456440158563451700989063371099703103733468500159109075816851898809213413767963680473170894408632572084676438957900987612983877027267530661315914660020693941111652967207661421544097639970093964999835934144779404440762471568579733815909485414590088412269933475059567570190002727967048189486287435353015798146476482209885616983709004736365677552957366100431297054278365031938032770181039869565477217313707915750291890135610759143672155182616919772287317483882923521540279437853894179693007551858642474052090493275911555365173465168248872282912058516677693030725897955997331997079085704263886184363132669082150864424941738289725994498137337698491408401797007909166323208594952912191490548580627477080052211956408077936047179347210976030982278551403748261216275290455389736455559028058327896358662619791258786975172775822878669230385954797942185535897041324094499498917940478403290837105832865038736080320160067649491705392775266787248242312738966968768145236485332967960764914053116169366965041224267398405784009724346982181816577585398612298576566957910378451496916008396502489042414676328643073321734164795995857435268302883341374945146079366442656919148634442405419204669683113836240359887847592540282677604106382251438730431890829839093394980695810580629757514685597599586669692022162837018323782494753586386867208320527525136663705077743369212275293131795259522836695019597428405318535168410368779177796080861076049434893877115368775606201523219836679449897911393865518665914837501841018088842095949050767245187714834712860632974931111775435524065836501180423715022050864441019634532548640505369917991221816674274583990108467469750746792607697602772245600433736526911464154432823389141655677634634399505055934616665108960039166947576158672338605289184764836277065456451471543837778597063295609335201061014781484076245105797570073389973526740203159003716444493318944466792085466803151042557780311360701529211796847386557871427770701514467419112906237607331152746774948186724548635715685004564500741802444029173130853714717543718423372433340095469998960209533536537939499705001649617447028117110762310417412894633384178904613746930027854260889395698675325578223884292399169357077502633770647719135347578625982742437641799951555443009146955527164063665513807655764094828035757712778479019334726147892470635832623285697147163104236716044234957994388308307042053945456719712846278376352647229415407402730788264365011068368099992827805403809841494496561963252437789329484921293022562288296276867077026271996690640622470394233374724261688137739571922780810748270329426276476786955352200167626314389192869539700601672590981786047220565962808721562136671118406956290545736216350186541282485875648515278843114432885746941863944487176135463906624510417100728162494564897921889046755660564468611052317401852989025443346638315303684639777786029889542612651174927681499930890627931508534377379800168920466307384381912908578015336027653290265748287970588906281092606294930294183448554025902901810973828760587378765232700158432609609704603604745341965870998110679670553153277786833174345056966561003287284852004074854845019806000226049115824021574356457075723545130316623162128972159578611475771527346243135663255926791373790542909770505531409890085465137043343605394384622774045466373236940892271464263008131533356179156596410258083656582540464655859176308661372046691606435699256205045633764243739611791179451121122243538794641698038826723467906014255093252589181357331269979473885829145003195536890526480882688918349036924639582614253776987783254908562881889754197080015754235108546962669717658179340642900524764203756446580952050133156115097745976242123951462327746198686199490367097218303019822397584303992982504717499481949377686741588195725481868396176257414214145666386984683968423696172905229260255846883636732643003060316410584417582479553932984310679488618015915941639966818465076321324186331839488578080347292834662735169307582137322236297107911120127135175161407400550932181584370347548566477361252714907481416319678941369679549350861187647182513275872597863623151811549033129791094505683573697063346630980168055623980663130533052002679132396628314050169027551022978222730273875062115210865132985614349046094146543218173986217734455265030432596404151071881224862562658161174728541572980699243931250240669557913797561521460781792769840316931526126185387072177583804934006866972602494314188236087641086769836510441657651169785608698603233109645181154520812378360823257583288124129141349202110472522628107423396095744753431799078640399482777180423476370806385753248425569758709638491943625067627104949821908028511253568420536786478453042648432345820378802725092277352972009568049210224467198011910059070532885985268801036386811702179936196833532767698830392432384628949195440860199516650993352414872732063380388917105848265002584031244228960583848162810382067326543668686000758104724585524500354351244183817237609840247619335396508981111295828160260689244727674381531455574887284840221564691699759020408954194491692751595287983852167275416762168265092480307975496091350081161328691474347245415087825658390382692582278362542551104736531792187827932372636856433923763771771717728934096154305618535150387854153449652920456899591605895587568633678941594617718318475512988878891240871175140665188399397722519308214455581872712897270266275653092284423347224883023245301292604300353036049266087825173534487415746407942406920829780386920909187805128699716294144304370593167132741468573720655834586307528834440257475432872475435676071926570833530681079911485940004884794119908095438400910825968943159860914395383685990699655808495446682395462201567018994050309271681262763501427309685463393594631286406570982939358209675505807349017015505115128341331120808278570289478411569566427135819849498330124690457274319897791172204890014843423764841963100509404910225309154663559706119121372579429620860177695620360149412001838068516578465254340749009829355611527608078764989177727990363133846378102366462772972923677008028980636243771719374109929926307925210388364321332200339522617491892277348181779153416462081235171064659432905084399094905901633911437920226715860343137365298720515501089304573250937395698394738354340156444551787679439345174348121863369379873039965477399176775182544943531071158950107905579017155836546160435461106961689555231031801804464123163391946312084345573535908295806419111917844327889662669307060452448337713885805198211699412571310177552353917033685866498632069779967394629616964787500917336464613672772552871892424516995622427255536859282241014867570760701246185181018180918556772693259156971250585200328338681474660247787494084307798893243419340377748875040068609960377327848080353574195490038761578368448167469473496788373631854899786840314073657852853526947329380924143662193478184927650345468692974374814305510164809870383438790094156062270544882229071118703541922640743294871672110412094289073812808175877175491008078742193567693593306786077691755131179532678718973799287464926384239678950281626426219886545543806123559260895955518700155132762640970862501348077645235122592022636382929495746785203913301034574370806885989101810068279932993297792342249129822305069357660479411253228122241761709246966976200071833616339846403644446671639863249722210038095176190639426980797471689775435932542743368161683233624732554941610668667916731199851397602172776818928790086606223781369115956566581532836644285751710379124449753254364372915747143812135263484966952197975887586690959678975893524284615071624172638715702225477067492724332813105004094652713977747613539842534057482294991313473720128203774824807158236787691886697078339087223834161514204721191343006347488159564027622571873273607831320866627402490624337267469931663088072278958776979273251996865208559304722982388600090022959299225832127518765860241111575032613931806882842800002888278173363121725032577550301606960820872605723302738488049445524229104474963437095079910908161754174287001204337090822021772696280352009235955658256559828353349834665642627971457511718589005295204122142494858750047833786994520214446804713090619227883692857379388151140097704689246886272875221151193879409641006168352490830494802347039826881011992009874775519449125270245508332676465285195582716914073533999521381473349933978132101927739366667897418999207579429171468643776642805501579456334394310480053546072571303630038197306194827805598124198370710257805986699521702877227675706849550814218630213088035161296732975453894556780262887436263183838620678028372429709618075871553027241109702245690377989887446845452417535681735340787949292934631634349011387618572805263112076272725687303493770169445127774171208441900363016402465471464376503381991907658047724724481167397352399668809300745732544164720803339380366480945531655114300585134268743914382778009305634791230615015566293788459654239856525254994887977674105149117201307871992377443730331064455592979164185292360491077585934620833193382917633467518300580195506914496140477078273575377456580802721956811911762755906134643004535037209555019040612781381263591451551246421283717884015220470885735305769293308799057472148891529473334888117314423988496018315403232907418276730845791118962914727533634122213296468214422393972430920627611216319211305514956378207873319788350285887422771922787734010278433072753680370811411293543325151871903057040635460904497437575936442047121942257593327435112099606180173030251300446812913595961213831955660047268681987400155846491457749227341448621571791513027762967067475046457043419998848214203324866619619705203536884144097816630915913178149652118572985908203216594864015505071116383572782465075334150000558197610865005391047576744333592185230600702625333763064490887005665853510239190107642351100543492367108881427138056624080170046282494156386777117464746666342124599187900307867758972699912144703142044967735180027802941738509582809952345310402243244308999761056716710211834807929559034749239658742977104762878114187139937853133643160499247035033545634449125294715203123999498568686773030251973810569178335371636240127073798411643914439917256644713325922856125397730890538142240995492817201762310747982840185637412792413698618073638545481977905821102013040493483163735113662582574703090032763789886789072093405736655740952177505347158356571936010013213318934393665651388353613000384443697920200577978478233749046669485728233232547639531380275831001919504649434342680734896485329959486372522742191620298445995939414151350227898887376328338920500719850608632695896579377799803672659169389997441838268846503700568945857239796753120200008449484756313296926553741864090788016517399642874107675584821487008722696931447406411884784536726689223603224758127614230169054761860097704333886742973979183156425293093077111544843381351096926509158539508981338429421124778634278558823089693554985393640156325804964427669922931462173286760566763590242912952420279690059405803684090162982079121955672832926448828880206316878096036393178818234044860719519246596074920361711840022303467132859639479389758357633267764472645263260792853840009746202495113945709773177317749772700246038976174046038178533052696484361926757945102473963324405320343049393378346732640807247045764562687349794766301077764860954328493775008306624649170352720812939775101920695628609133514345260269267712625559082769739492134877007329088126311369008716747941545467411983352416396402565670620089506533544806562185682160547681421331004033051690862392826749266043899921862201954834811035891714285146234082200694177467802890850729934926840464389043947873677441189163541660819990695659742479944096390017886971042935697839735320407611625952275136812003339223793756279814421671304180024371555696026038564584873458489852804915088605617220945417565657379744449440984750913129439402436789122065620114672663753662702965526882622900215961198036241045478083285172406804924020797905172163854927303534477577329731535368585735818222081609929241328060138672002848670902993528606097697038341364729010632725425993324099129269628311850816129659497926696676387928298569278421971947515105865924003165461352749573728835324118283449226810175811461438882558326253219381909992057709716091672011863858882085376777205884213033668016518450093784141173456024809468468094887618704826257538511899855001093764792232766752553140075884698121256142048382007357222203480704524397209553394844054078972994315028106237926175607831747479437264364609823637458129822399811677887086543657606146998861233400420818281236567318796812492123897669964364053181999607818555023338037859060927649288743403590390591624611307967900084263996568879605795559036908063338306248987694240566664767573033788905424615523685517175534580333471913143637754947742969165823837870775822798207975411972420192581500929998796980100717723422237178118354000996179340473110853775582160027644233484128223123376018603907690697035353840892178788380841786213801684921789617779276633072276413570590434719165498530131629962941827480182977513588615086825891377351310960424018810112038010988439217346618072906662593716563621431386448891005606051666790327512128697284723702296001555659735472850376837265580869525665161047374116357356098101581614379101526032696676985540936451908053227327159103560150541113628025322132965407957980173180365541129397006467392078186916894323053562276705499177490183192960936524381217002150808332569818806040611620650033043947521287018381869883977138590259002869624176416519056598283365681228261559147580233867274882601527992798533056121395218300588052775036066896130972939687335541960609540141561924450390947766493133946694661961811599467561493712675187910495401740396129439594985508651668474617679539639608250015652503082199986487229519023909890872305711569291996529361768265231064254568466647902489868446871788083045021412458630709335568984841080003636596687824578292223064644923661796523340629671209652837628541081339007677778422503645589057337264194365566309174032444405490333715723790299053039031946794519796233923123485680010242933882073074935211040314074006340310815827151242626038325344492219141368298312094481094669494834666383500597279663792817595576106110285523250595979309082125590278320527165963239719334280953717382983493025550458275714060921198492909131235557936888759659338435646113802004139046245483583804030300334924216557692446473743352383278696402137281033392511891519863178468588367511753825175888713811794475282822481781685313240077398945395597177698275919276026942498187253806677786909117998626526309653593458180178686293419143148751884610429605255522976650436174423869812799887995639780346109225407318593127837706328760697696333596604966343892002375638071439082763130067383882313615965476448283684113186020110982331167165666112078330035153516803177459645548706830983316425105152169716213132816030497077876714056204319923905690556400070623915558969956043953875337877719045850553852095041411138344482884309156533797766992056040566528220318213927386394596943058531435489904802576841595372710704632650007103723791748120288994080468771601492531058234154277380988991738367916813399418971110497854591454086292035345972680246826968780136733121970256866263284554421854675792230338078493026275688965081795254159379339880481134880968994569141177070233005039447927748806554354189891968216713047696868705761633395213282582565071799175143567572859077490589423714562590752446584201377697390130895223977326348618564089467304956311157683392285952028178870247288979202177747146177839939288644731486871537822359827682659321845208340068773118577090116108838742820538558511888012844400670892759332944417997454364210313853945957932759953197546270311568630413818003239663819633778183178178634655413547796111301265097039180407060888546710072687357984284887819826069405231383613519538405176069936613499541844905338562014665043415676551516630837612384228604718666530536341618733009773914888047141325848366188370870198658617186083425419425721987120428460544089269067077468250602908340587334172224041538262632817359220397677834704307399261745786697735843133451970225183284968105956416445468985129903909651818686274007358130902674193658552223470004190614474918659710002074681633162472874249674525959184312693543775048631238463150888419740155689622721749800952594810598274208279011802922191094445612488908092070290767103976318585605522727316709724030387083630087595941810031181863531778091048872072598219514275117636511422558519737986783163184463246659673687706688970544102878332992866325946777794219764044068552711108066586822196774311320875071872729152505733770846188119890439342432861547831178034623558528499360270135362381672595276770217244821838517711631275075595352823110729726222735946300451762306080424254624675551883437942425560724564748309786380143641306647134386226253973981306821136034159308997741342737689395314956677435731528013932440178833295419547233989656342176507030214785091409805862805647582586683033649766219127710192079019803757434233440763155393741052219189808074824294043260335007924507685955918271599199372717217219363898012476638733253187223571191438410842282859819190072026537833908479790839672978930375919692858307000727477876343676621049678146892021459631285057766395733867917089658929256557103147659391263385205425807033934516158929826730624592673116383364552584090932748042194444590934018281705247416642958798522272414161241153432414194634406948722785152362635725847680540364493746056681113341804971928952727419268833763641378540185175350990767607554274928873905570540140135207212820128402788806443201836318462178442832771985311653266449993529173998201948799785074390493700817240176070507833302325179522724534157433648918178246880845697457523597354400951059213575239623154223347649104900352226566528208701385391435475103391544242068547734111430132722856760638356619850429015127982628217862072253932642529959926519843099931641534499180086889007492551926729852142804311936595978407375104100124497111699036956182568690387848703992821667360114297657714875222041141024955341123010066114546943616852113054113153636858458403293641851128181470680077138959349023437793266417936289684564585890949719206273607844855962485439357334551887909561915038490397810064894124834996032919399417195823782984364028928998834871508297770427396500173975005666059567258491177197852175401318442477441140500120918100213710294599604321403656039393456206630609273637934515728233386236587451377998320814541204267768158283714919263675021070597861122274961397347286823709288238053264597207896940077743608084437319518377430340956414221586797732866007026464048118051306114046566050480685545835647582153066305229912172256654988249711147252565930955922076115372400339061353478849001201745171914748891261108113750007437828313740363303527444632419004824726319230514409844065864253582998905994367472939803932222913667104157646476675748076979780807093234502641908925202805340488648914453902665650082257093807722255490349916690740964474281785613630121571667859616606055689874704869578920142447039119211104791386620134194758610753083336718068695889506712045307551281333637492629907033290739332223413278971080606724014921865239156897353027915978952121028178758267383615326355663813100433417542608455977904907710880401103737457221279269234831306907224444134526286455461373661579732701124447400776625363806030537316180420990003440456056021915806288189090580595361425576831169947704051895888083919702332510399118438835142785030782103773803207841388210616951482811845957887264094768104132666545967494580840627232242625185858268441998749827046053689733807682079562032347245322873075925576502434283804661156102815804234552143799233701481928894947118672545208660688038814701028334940209185813552551744580291067734272669707686857694355034203988396707367795596002616741370173066841108723614638275970614794936274522663595832942160529546502921784199397164031639573391958921558969165538885238002626691430563943991997584241750687600737439369679674649039356548539555560041368942206894395388390418553988250504296196528485194934233347068253079102420467690614457867291250512246257072552691165053233972593749776564708611953701971025454264348608975050673746694051698390710927592261107597405025766787394777648419139157919216135422787168872311479393700472157088712750083112066133721309535687144760831581727501701548456702154354261990969664176338013451509168932295577350205422623042331565228997760383032188896966325371108433510126019649212226007988659306254507330266017932237356839380580035937233369363622091105037628749394859647244166176070738925365912384653445191386872117921819047272670879962497161016855047383070356776445826922903270052880760424275338510203304904342024048671699012274763154128831822977016572031408031196157236335873023555608447300754125120696022799712583082006438671350925605719381092895665665154862806491260259312375515869834161955234617866290128829938526294291428634044863142410928829324157560923263582726367111808233748815870798727218507855338336327421442080671874594840025463674169675122164371788148863093642122630469665541421457344768074286360164957900720567244606463604525192480200614754366373573300483044094590821984566949808001717342280243746497229677890741800755327220715218112931270941567019099368998401682056947499057685886294742691333797805150046504673142257215847115504190391723912585111663279011494753826383523311962087594243152436900630234230296436467537673196524628482449953632551093129621307943222523520874521819301716368763819197360446698494443688455765003424787718215366152861664925220488710123782323680438667177910428329337368979611297908058233903522288184884797378488105254334113196030882827726045129344197116426991820337208116914348282583345736002077698449787377467335166082852441723910996220267669551547114157638909518631319979286271279901691181953596598208097781357132021546576138204067987529898910247737766398724148431605420080059748887949877007950561063636835205694789501697444918684960456256961958807443640436014157836205977074948007515574990886562647312576030895464877495734156694866998848272944693000928545543246215414546291743452883426350802707040628710845741048026355097792052686356646581697280030355043338313471436264931492837284853565802085609846621667823201413921381714697555470982282334387460724060154459242943854571421124093390847014282290105356621634274583863531039151934664408330238857481897930146707729158710671990062791579498393376037834611865487099446912066095557486873780270049199676700010763895861929367105448411396920504814871065369394039384255651466035437526741610062557262385407195727644670908203676776339783857883488814252387653917197170398464906586910754290366064145205646709962133785522522157700958018460561790706191990386444931979405620991626660382457523257832944530977149613565830935558820669707267983913790979429920845276186991192702103956163990827986278455025590744539157804895843889555117824721976224800463323565222153615274212938574064360450057793166935369577093763119596040617994701093926269108595985707650207274837783947855769704576118604346270283943306162165004709482423839763399335802358538842533409186480257374182947180585152605930913537712249593159568723191802103097675116029972879680916756472060562174993743645145238860911457701985698940360452810465950294782591068857004476995950258554415397245885810400602784765808024809746475231728482619106800818036021991488851066843338493844034678730154181976207549169237050409683503091179231368534331493920939073931799620371528966646163174622423449380913887646297006668915213114407616037445255393295860479554593015099145012320223920272177033099577515604032331763445050801503486154186214134408186097001767236542600094673033337281275756657359909983454981355874764780813864090308859773316993536411923320568991891314587941433076965629046701087227714601915853662534765056477370333084425936282230004346159498842023645369308743269913867128911413450659999282821312873762090809228499941064818834607273391543691338350429425835978373274318586079589962315306723106693671809087755474015526815452486971070744793799395876914418942979848702231342486128809768093584767911624248632613097582587422202573894115498115570347857289120889833855950652624483801000534429387877095449670527434015906669051811402459233806247063347446051501059038239244691254709956893645507204505187963327413438649308971548654976810907552345364195059045229253771711997131563738742319719200403757836094362478154205655049343722707807557196454329404959666615177253877101286640144789724374464256998244867083838840255119729659727270885543415648212581975343674932501429890879559272723185322122388138703628981974962120305375697205586691802246137967551168998507553145530228418133917355822151164877497319423919950555278865600984120515637341598623227896351882508726675715816815134148255923641139080487027781364168743110991602923390492780805178868247192491274625684126334877167676635388564474963925984875661411306102863862077938240124420515118771072363805742415678631648804786233472490609474550081999478347828289324959943906498299673520816240918186052839012780493666260807799506924304255830510409215939402541149212712503820900165679349426871308091305802564539178281760937478493191609413641425591050739023748009995591440132206444549482138719303453445635567442142793036582773706529667428177564446166148588668213585285913510893263720109101362278538524142934498781570035290953119372950029862349249654132800263930633610065807446119747698833332246577548748217828103196143572705101237493119549630312370926627555037871226190549541147043894791230117647449169209373360680344016194218323170864920729782742095074964356755748767003542293671144584592110133732947818747634744938367018992163823066159621717025348793421508133892183271502575444370520094830817984252392433085651751752059508631505403684635542154506387737902188142943320481119730729361470899046145922911314934037443722175101385010249809985211816318120791118696168114525846830728181103369532830936921920566204555551687545877624228120276417680328106804207621027368967792984845580032090363888816290806392580791892328790997868644765830054428783144559047785444142382440230839189318425990758433414004723387534942251423290575677686956929610797795807257890300191992111910949917134413317601466005052939459905541315831090777694746405912964040140990106199054707051515536972291537021886306100312681514197803004188869136090791740669612444408901375809072741871932279317004018581420660232380890968037851400948872453101587555289771700818837433963176362157107015118935028174655628562368136815035571417984977019020548576880228295500303035302465985258744259048810454592788570236464339137209927968876490096552426998387987555564127658727162368468281101515524581104003615677685253761705901671452171077273324662633144392789428444959670229503546401709854927135751362711881134777997285991892497660107157902555580803165085073022164832781329656324509401809175283078588632119678518525067115331522520366724029098646316646426167854599144335578054784592012171062272014436039715732285474877610980634460439103644629509061400200935289600454102499994778172864530853110314403026257350702541316349055006562222290925264840015186571002093426431392947333142216253753503201250713977235518530710550336437277784762417298466306626039114546343863325386637846647647036363497796024691191140506134985553196368722951499560955910489345253016148392702249727298115145301239717956752115870397931219222496627548745585739787885899993649939831167760020740561125518577335446858496256548387496587420588257332333041512103698387622403364571460261484345863909175680883352013831660982464635634883849414617186762279899291227240184531034084383653991069081767828700832162243611935884914683742065379644680121729899627165029688213569855147498012467963012850396381469720181270891438523135446493563040898456418879354233339863092535005446392454050537329327231167824994031880015828337984494217037994658406777774881423550772426243405873880968090153600135824274653621342135092223238556619132314395148641151901629967228916149237878316978652583506741181419521108485010280767264091825512889905583711301731547076790957009941498785872841243433740883019629187223573438966443224827506984118752127099812702028583956775178633359526266791168652089630365490469891671928158124495287188894918289995900057362688714531045662039794157938931402922038764168826892305090432791410347748318702434616361561865359638926543680719378407375134345726940907116055490667824945401497924325388412397719328943734059539738494074769718820828040652660444858674279058115490592168646356146413847184710164981119791220942658907605320415693661106913472773666274055168799642435791190874885129140295138097014466583098289306511490826586366560654707591881933452788621491728667960027933647744613884189520545631657678436890136994697039250573093166400199594997088551956111005012156342261500102578815406180266330011940175447314035763984607314265492848090044380098287194047898839501617798626141690799828282667013280554293185049820257896492129438883512210547540473114297516128352778306807223785800582934009378996897504030105970502033257916610110194112023751783323188591049518562024121315488914528134408382878976343897262517352394706402534627300154521987358012108848113748424828770178637206314334812164616420592127869859423850532992827518534986702648845927532062741087094917692753775659599849173577808268779382491086449675083934089256322976108112921086927664247339777734664687752788721170086465031645209501578873686775541645457842623992032717964266659796031580713152167796812621397281320606622896521196449984553368323409455828011909902650784287001048303327162811493894687920037863650139536050724780465200515840071889906315447947213369572200440466450975457692896097064519800196210737214363258828406536660141318637169736155099684024542633246512710521383768304481117566775875344992070456356310978816529752202193585498733666570807196185479434381368026106977553084961150996994375483633093879410019757337308993607442182368989589016174347137048605565671418481615338682334303336354096107718418025071289353523516088744147386158689143185769378698067514652831964414651184481820574038428239084760930909854832292415778760958152536044838018051897489057014598012646961871150839474959648705773541406044234807863592740464624314781028298113216487346250181160332243407800189305052007512239937841153005782580166913988466649454440085076884732230853490362121470718330254849092227955300079247721732301824233103224268842291576591924284635445437365083626990831967767076354284825219906399074557588555834767095010386909285557063834354365569831481109921721671195311559055798268116664055350133937347126744264299820269969640797454202799345897891964668078574199856234979542196502493356154618321491304355657274000623699521286383056262537818061373050601077727255750057947116365172622788786717965918781086418981065760466475809862615216697680720412112824996922405764054575310484905864069762166690241962671288530992961835707074316894046628903066661917562833616673341493540716034471543651166486803116459283930799923535162524373518903376427543871360116371583074446194725536576783454238131263543051083004198912204819332267958072408572092077183450219255471402076124631751450352026173817632846695841732651900856948769945568207049402936464555748878227125034682820855172472830093723140531084603453539375768420235292259531151778970850598824818803021514539329532846759442302656008185765058961153376465258836196416488243665606623264736830897341016300556117005981081700523786351413462332076640306092044573361971155724938121834283098493231238155007030309950827655127931248348427944799148307763694366058335964510110771822800641081794614864336256334469392337452385527352515353297284595213713545606690002511756505297133339777619047708158073511390015268956887307801594284017280102215745634480372658979202167287759269452230888934663280185602800728313438537555176232578171769475818718206716038700912668762696180406139179014406687715831827627649283818154782109146550110834435002528154067592071344426338794156413819808036351301401135313457001735072796263142564117151696502498096827333739900746928706177581144644722174328935588749722025423637031756364762580059197435506616194294152039683149599301020039853791023610804317035285327589322764766525334396846822862867374692943673805539015287137024289672538826949617571727209810554004628030538369100530143137512824389883228251771605846099506982327351068621994602856079186309261556047716732223613266655107328197798736658278690460803910343893373338010651644451194324233240958891185508084068365908897972342227787022901623721154498295307322954725759378190503391801177458416498575622062111656489495339365354457172827137305724045313907170653149804615405503062604139957627451187201830744514970675171631807955933033686239620061635553927758838948958653126140421047375498781122031021132275456150317529038761384326246381514821812293132970250794906138953689101001644065782012843210065939789371238545949708030508312542668226706650305997025062818860693003802387890824167608811605432594595682996320981580684869002810076061725781235906683005386812186860395172494471856104534168054183340409495833846788869435282071358167150417693661522176497387943123698568945064655156094035769075274173166904663523146648350947864348550950897363658810139847447972367254504055088060724674081147146820554385637984727800484250911406315687027812437188146741185781332742791393404817375844993131048140395378309001057283986905152996055805347258424194122336702359225357175287566761744128484603095117068081692556800805548306394196824732320569235218025619958030494531293242983571821507697292610892462156913560628202556759290097114043328696975103577694182378128590445298961203125493951264155090310008037370553712649747749597162100753474844725945525171869529970634755856339505787808982513136362762755798387377425022950526467340906431475527860727492878066606149136695918393680327059767416768707265505361604305712488821363344153432167279847049263750549557986979201009289654690378173366839659716846869876084906710366358879281964629892754271526665229340678841325306644504440250054854163887541458084496466761940934308824748412562094249038644726149871738854857193169304169678396439362806922992761373240133316107314287184372180424903922361764401412503420492730730336523995348630058002136476374656621813296858441668279979691232397937885932487966596389832297401906125409873129052076796918295296275947119228963136622036936475280302050497752768684731001357335158139356281472080896477193621012567067907024003374869693433562681879735502352928474910187598638076884077872747633811070359493866578393805597305349972198823734327019635485039443304563465069519448401029094121224136750224472518942654168031589553340284801795243679278564521968172761517318504916413842919775394918278704102614229065892477876725459005434619246707161741683451844193179504114112596143747233580194429344211253829257639824952767487011208293762811805931300964207126084843226656198925749108622106403910490232805112024422197639063110248987122466395910870712382279347268334611686170484084885521525014158383861697420567223897872101186780772152630390030769105208203153894746345268349334564636541157862478129377008932821898167815189896652496238289782703450141712691705406976043403709095032576345993541096604644115874520329406086952545099830949432199792647841202794687267780077039157970606292198145816609688915453638386464988347117441241959919987088550330312821979233173212168563951399727371788786566252913827810551023993795725944614048558991917485401572433104012458135231892237563936371654124976592873568695013376029295813644242093422707704776439542663202725375985220963227538932189701647610916028313886652293224465422248936427127698818989041477746018783324021395838798865469593894890831967355978884173002449235661852141546630092265081277171399258944730886914322942010017767834565608273972223357552984914676679680857712230471660139873279886360800184725778260921402972442619667170885667181514979575977096268534801988423267629285144193490473608023173486403387220552758982845709057950751715022316961875947237061410623450200305642180559619962788217925396673948187875215855509660530700491845521954231277768740013448055806593898808709929676191874155346301300359568980275171357545667613331615067755157209758105983197832368809721598816685193485555390574167255167948047260781682951877949080276328584049001470260368665599699444836756735241741205588210421117263343947616372402209637131423707032557948618439451865378923652921061267383112760972882950031170586225616276346972408139689285595447902430274808444269178607053260861773857534998882641533831649222286525795016245850391955711500359680578807136088907625562795076873556440676386420824336894548013186020982703663628823585742041695918392084688511662367232394424895096069681035970903925981358475132281046397171433922491174938407680646106933188574422714796529983280432489773821305788099731281169278046453813762949218814674285208840391718437501309936743675484133563504402666401891903476090006026814997000044962000950947473892368411565534883071438578570216518457033576268426302624266586604256789529353421198186095709741723343587433628327695159844063436684890046960826849839124053388030458983219368175233301481336698366318436239180250291765090298573483379659866665164892206480955485719160453348520515207554123130294950672007501173561794418877475354099427309887590508429051239837585177370345959714157107861241341706145110598773838545223259322731830200933363350893476945218076527334840229149901903977986488466581330393738161177136023458608256579758940510211747408277906551704535473706363763664019654856804615485017399578417909892575743660459701505234206719260483274614863993289772361565931755531145268869527270423634792764071138113953240374452716370613080936446377823283473182240683885962036686536843352740411522765596352113554638326155654958181169535974401390113407170698775562712134222209395458760167896038029025100431179119982617587874834426833707932712046523566858826028766039639474634366992333466276844697737246339808441267743395564181420806979397364140314154885938859438825746709434303959062655284855377077994422154548319023195886286376862277691671468244762724829072983281567195691059256976843792264240615335000677896106076460033102162008025507403061667635269384410036372156926744652669702093892539653787774346493701843507510748095046308111293320416215435043279073894427216629589165471969893214533434669889053086498206750412507104668534227402033422850680398233826487305660844097932323910718220764822834098412146095843598386658449785762004902624948231329747060528369449892046852671901858168770908463363196015223627735785228431081527429813773040377223883633917615211367961696754676002031072640872115168075663786427178564141508097936964740681974810486611662260456947059963097043990296249624450865758887286483914230927315619606919053383487112012277998280339495314897923373334880903404356989070470553682049364521411327136483091071460717461309034165375530853082360948613791772988232471008820946649109069090839819552303315046607243410836595736609003979087347056801092405928291108730584305579843451805770783893654115347252344793714522679616099795121656064512062772531607368723698374937096761978154113315985593414701108438578210442407408125749714601849562793920248844304245818157383577409268039207677810241488368275084392232515634053145800154858240850381315000505043944345839080198527203186298448632167600554203859521882465958565352308920930196754095172873685312536845023852070277864420164718712631812098307208313854033432598054602523824607454294440961839174327414920174245590677989236217366388257803768404280085828391312051350522391286858371214796551061070008736265005712179566204631342965725553383577911790592619962566855067479057909959961682260059871573174571593461843158990571276712005933133079301227737893908846515772129112965659162068118283902138138657068911927059992604372468719731131614924701963498959628042069942249753980624592919139449342907239367453875827478154509864925230805705725647134485334932093464518737564329716661298098628802179990576625526009700431697318981256217292368276296056652757948617617359116188556102964061460593964204626102726895529891639159984698887632304386765146117191693572791491828969654468343291129159318152918809115920789205274883050636295229108307716418570711174498605450885850880766900099566579481772727913303666085376810363435603234184360251235649340431084646981340731071864191177466043471642593751083893947094435117353310543387357305455652418483662844377223252399322862382534028164016347389415283703004448655922955734176360550354636878207256609519162403407847295900548311006544095329195667270583305545585005745768627001422249349976700860367977635178974972895870121786277763703464164247389140310731658617040497021828420248029786061622442864013034225964137971108357445632508143210098417948073932787878085636248858759625740824181959045489736001913584327644913525699927109045490526866452363793672094688188254749452397652197975653648613521917429258352414596818311959450156701156499148179132191538680638731574271074564605986982967163547115672473575082110086405921704786957781324233778458585584871830963812424972054100544703793955452866660994966960110169244089414699721930240124826397572151361160458418103715843734473447530268304305362365120515735927917543394079148814872152328087074660282704202600140584046714309943306670272591728782591063101517128814346311494659137248368245528680905440130711205364895193058577785804826426233331797684727952825949989757545913957366280687435733667124625608192637660756038334892793921169558255699402244606250423232175042442948160552889474015860934037682610034624898925860589687960524388133644454018867434979414934249852750762859232259724081948124894066881010163404141918295233567527021942090815234162646047293516994852066665014654994843825735988845088640621857144341863130970932472329242070183225790953753570511610954549257443615075493752446464308605148269522444087634695733019605273471038624549617941081985455247034751373362867152595845940439516390445655395042596100161034163045129121055664438838129370118573143783648307726053816708301553934052829743690807828446792867056084001255814979966960584314741607603122468412894543060110128587923042280875942153450498210630957568625573990829104685910637758249883588491040932098810858295356138047373699014252337489393749361050252172957065737604528889725354097952583678927920800689005609455144021522039353372459050429206636290363939014837633627639830277277521315284005256382517966322897739179186859297088213393898702977827182191602986297573714157098016055280914391963595985731081514323506368765034508228189823824673028449719791858023589466041049297581183724076396977941027822065232536992890259385409193059397254495188253722145794011100989733355085353933326699766946037185936198612419107505379512755742333314176752378620561234158800724991999419445741634748504081966134926352494849149801667991466688204010338755048930011680509075552108584433784523745663000108958243570186977519368029643077258935816957531923125787182840744353511874146470809552606849954545122090483421754290033572279553055906706688653932969205715679119211813568448345598559859946553968737193979460356013577631581044185663947621106399494693022770704308579866848970619815623843807302082700638306295655878974263539251843941895237411864901113697314667180650109989934367840554734839877769495124944880075698327188640356965702806915786539466427217244568426241301010334100772137270896288391346825469516344850540399205694953984712248740936357337157392640055031957709164309088494824856459770155633257699348154591872216035442167539898315970030095461878298154300501199525854621520403729064155219323272889864364398890611759879943094058361357458081205700845880650649688503360524402955968563989146725151397246043247969616306811151412068236374638481481743413680717180809646179200792849565551292351778432891665577332806767523572310849475384740530410637385387721845091397537065632898922802258885295172400598731069731335292524888437907251941134339641763618827501040004328129784264761593659594856707547744780114325028176235918919477608309293581655422312979911409054301171933652262681388155369516769606271841335389274450360249091154550769163730703864277404703728008800374386356642020927290802859599302559374249128788379700317954274317020791204201600428339781955412072624439840839425692697480044627295162480419023948915540604056512800678262655023015779611448193248118998722618014040061496222708990028920241373600863160476337141805883096954669676674212017765511457931144719792960329322162024715728804173995775868596651224444115628332328634815787804335697612363649298648888240993056316414524539392758536508119711480811284051283450321416370514714991248168263925584350428363830148723687729309886781431518665574479133085443284931831380513886581152579420586110586769360717539102758659246773892467615831956223678014658284800573018629376121357725480844557429750169525128793751640240413484058734734664296681600769916881196702720684370953212013108702053051284289686646722689136730308490280740207970458767560546618575480833627750395021630652476350938023631555562922772074997179153953863635333049538481751183956178029300555476211042915626913985853068357765909889685978493556662240316221207210163903048054909194998861914458284360568755702513012564605774269155529926322870680288202705700072795243285738463603181982201477706715965653469635450320833442738959644201279738836404610127129616034949947087779822908017200795781666408313412871465941351866012811297121438977349641673767105236576149266679622445621984017644351686529756204992856832452527693859928040400874023021787919800239418418156479343316142694993382111598914081971130625522162738189649324810856467964962008772801799973075144530305151542861777590814927555406445149583255640707604541616641432622198729949330592424838201321107415430854193019972619678093025608210938015519244867803778303105264508885696387125639893213103861178203989599770469368265138310050727917325679381798949710719254974535987455814905967387773348058130831953808755753640573261103242430677474202165768159454780988166389374956296741144580473824678658029042681432955465885788016479097080323263132962956730869419168280085671119692609441339299966882587974637720730528348014968768057008291616253687755124392847375241685325851201367986385402965484702068975746592173979335123823127164960146777960356877575057893568161803611883841412932862609738858250571252289267745572567708637667063908663198173642257405960521886915047357542670108006755419077419201872353051869907469322300463563581408279929452887214691822377437009024864286021962535772860014042528306590539911871071754326282514079233315786983037313239574138481630630023828511949242243591283076198901274843325228374628310801364577290095379758015238749799303877820893880115516416211402176953159823255969326178227880495377511731697713536336250525098175073163184728287037142021878085910202177265904127035694208083966116800307130607106236932470545214264647358209420157157911495916085218853284433231183647823341160951127033286399572787796730705965766963606674954233930913914213865530860968418212895908939745772903395110542289063072563895218755477235954119292301583867190210020967939088759334855962897981770646342610730220735974949980719994124017563045310122482480702202940344979621955248843628137875050807885918632246629797603612062072228686714955853420688443550190808660083274137945594505621942280143712885057696313764129507762308143515391292593498676668003730892506813231062970118176969353837805187617948501039505520239309923908501364355053954786446495314471302437024257324299160030008532312878397759574344074138358182057473490758543675045314423068872196000505554679891479251201926049159645749787777699416674306808167099454009852910580346995313474550057808124952503012090513134189205916237439907761992499676348512521547275790133956418756065086272721710853750263129762515415464279551802946863687137223159733325528916506916724526320989522244706142573845351047586443678712403542326207226209617348981239082666212845664817987093229909272260342958075071220054328894941146173029538952170694917768833806554068138317918296058108620037294612974813456740580703466002792994918566994469189935025337327560494075489744188575897474143594365089845382364843775695902752170238525541617462961795411690055609981275619015009402433002192559174005364938276711489487114280020147262069835601868661478842746996114399740967238069074187774843046407922945436413918591931674506056340222283635898434615163900986197334880009643302605452864995955371699332851372479253239488920386096672035821497222293773849359914371416206412493378390426547042465156050329479249461609266284303281384083759928123147654926760139363009520240358433753729620396815082447447084371952011587244288364853703462643495967387659797999497578436305301670478487434264547521731370691507443119028658665551074857314407398110300983442421350895290275979270839562365712752950285734804045129777828788489082265912696213453487574728489050569613132653051715171460643041425834003759948057649763488542285580810938937189550107764685597550154478441927939446290299849563983324062297830207032275890680246888997173892718112952555015384552480946301942855885196128936347043014550792696805835260258144903782037763943803336898989922281629860891037330002046091658218225897882811322269113360217005981593446907335676200638427541967806349001156322207566877104049675173416296380427351191340014389663264994517612641008840665915218881507411326107371311740470824095748784946649736363415388062131680645129956995147241731331783472534706283636107750742872601764483144751454056290961803071554269412124985827996340785185574339040399072835860521095311874961220304905817569217315370695498316863559873248831500198009096220981188935505913190899138099992858190652604212024278793561319043581068209914713864834716499221268600960337956977829410877360942620406521906802385184854496135289411636536373354817862813129580279162101220275746143727558344648121642161656997831316826946861555857162351041949054442147090725995798884564636464752919036923194129058541527855931524567815481916265527898942157144711738558720948198329388469616478681127714657033566723195794186903949622988356869339782471318361131611851293965842322248464566741392385514176585741252105872786437221407654403938128167664694753044767294942691202678571214150806097294131633545070426410862522526738192113997070954600408287796839723916462036855374638051197601466456955213497899587143155006089284496950780586963030803867359781604855969124372867357603943037593244071999758617919794435355655127170577796540759251398417299576689027322586504558895964341006302622569811464913255529203222583641024986712316285400869640980691088396145420463962841116322404542037188091327719303888425748370530922744398155054237570988848187462599676893871834010858590333594993828391615479881348523278764606458233465989431871814372468174776590809592751579424995071160923938167866434763505561349744769892019255868071057938683725510911041124466151127537777908525282791735504384898540196180630257795901210226535956903541874882664504617480371518768546867460577576042664559644408834925892455996489385058452675963704718034668999167876588678012665292181079250243337548582373325738619976749857227071423729222858282973597372577633776762106868039282542736224849172966545450779454288280615923366744930836768547034680808445042368925338811871064909587744607235005056581118163318935153130785354461781309528751569766054067049989179267502799504078662119922607143354404026320175598404092902403602997350437772129592118447858687709153948398209308106636265469236975449387674045706853265845499531726252107156906658633962713485584927082622397262963050159636073124448523272834659882237641052942019416669202428317765345193024307432848207571742024569963062842920922727369765289223417798389999237995347861155862294658181913907404490945899844950990443122187309476175586209977517116400346244056231148314642230479606436533842168926766093681897817280109166087068632500271197782857826280343130137437894554486739283858007964530184566650579754500590597990432700218872444837867166409669070360975043835103569159631392076035123366849684016990146134321255790493427217718799682921528380717132396534879405183457840281652122143661426089085972639927760288314234365003389469650573064912217813236530587516102950347124781851255747481531637851009171516141616079173373173055370555117952486214743652966968437776733647539274042531268830724770536567830448318483569362584881861883430869825668914645947047840276568757591914590085285889123118237801340131397487209730473534782144981568201369268237996236786813251699198984065345372801155424868824209454124563432635810161273730229290924135581937612929233220809980485692956011710210646266277583980793974173793411091452155118524644043358262176049645728295182778811969545972816805259320618061212200912597389071529937191997261070637582214675531960704948097347115368777844127445754568303329208839147071912187002072484107562978458131056146915309852668486293736152772417788200984655294946472134456585916920586077377463412425076270415015829152711131110647110333265073876725837906877059788789515365661661890605845977169957518194768649085684929323828209973073635176713454126596736505070522288189558895199565675183764135022498776843708743137870002935057693661854954142168105501828421076937407126106543159634179483985267574524772721665238066127638081808544551023701269127663746136822855226929110832665166399496779905149835401185962654808337529570018306998503547609028143216926295707212624518061393918630507347798171491076740936678383438561861431524622162415270800598051064301464027830065672115511182886711620036186761187558143448986935853610631255568995039098037473869445828980444760734697365014567760663833181115759421775414167282893431883717986824919278084763559539970787535852562617300860275490975458393687055549386083080165280440906517205482691775441851364329204787874475334942275835526630035302048703999184494159420310277205723647354738978197430311418224433491984582905822476590578232243923937442943137461223344289709354053144839980627401537146868587562640988963246524910225080481132968899018988424404244619016259625595146166310487943940069645384941640365459691697597283466337745722383582251669991557253757118281865296882885880744232104647522251299736706075420573004952033823681068474679716285065233966470808288831493001405539944606856676532533740244221982700505195502481870359724951790187885631066694957322900878158706848614083459747702595848176025681105991711537392576654240063490989006753561705943729399559067374459012385983471903246104548115626541066514996052660270196612543426887434296314181565268509851461203297948837496555173210430139993404050778857930448682070727704230178551227624318446070756306703887411514567964587293971222493636041037100738746598351497834882337399930190032089814913389566908801677603785959534718915080117596803272973774404067382803747116661251973806030909187414543133126689497021449438567515824457843298811772919147078663895062478783381760248633331915121888172829334916644284024091933124994244738521520698435729828692086147457295622225092405148526976345925074663497226664314049102571130568330736777333929921424568914182457753777079638240786457319530336105828009164120984353028214786081508267595320191293645083940356730970739812075450159518411493232672706261605197922575630002007093231566774646329326717689656933123204784157451492502654098957041354493553891776366232375632658839794166666981728678548349439526546295035438831040037343431417938999866259481862579089657984205150844823543000917866784183403214622570320333271827655617142615458059346762545024673458188531422080887941658755829575396880648834074518526909714431329837609173293322882158479368167589331984537022601747628743822748659479968300707500235665429710852089906040820473329042079040105968634319935628871736902895879790690983109316522972437141164756203714859662643766004395592186857068462808813320797353368902492502213296978691955165288577023541797592858167174939092088831799371380777771325441040871186107310593601940684891594694566581956304107451581948203518694350634503820296282003097957831185255407815930851391764900665020320977303770878099456279782828350196783604392722338005629741892608876627683557218323157263073499708240674567843821366247871933405690468169880582321889351929575139343900587964558936664998839949736419036907675628259705144907928314397954972434118277135857328374104980742470155715252776900457146275040924004678745048802466686854693024918345420260701208285253969633694157367280854985738858992270277624957049807963583463108981104430920053959840773882238855948259254181174884542013102257777047130016860265250938430825913033083822383569542396919785303062886237070433110334748464775901865193026427402822552850207527492972293276813752397965495302169937021777708064041530640200544995392845654598906092931382379401891163393491747114444501785630719880942856312447077610691132757450562887037948762037916709119489320871220623720967064006903993624420809851646859663118640122912607137621662268028632162514391928340746499781505321290602012569673084596538588723060647658332733100997273339790240218167430184189150926791141580349250768585077519164871841653597917777455031602771727336864886159732948326703755619981180764040886930360212215285216500588566119694861829789147711997943801566148182288841690968113442567063792139074413415092716776004665442315373464709635011425823207396962370321209206411670243587786934654845939020302069711472622172261640218982682258918931401625356341878010561931552952538776433841078544630299007147774510183320819013200837753925983220683307563424807642740683840606681136444791464949731602852143518580708108785753005588576912706023530273751024708440814282157780036036498351749608789754138051896089577582077577891237803958043907062770903048153334836576511618681532707723901779401485880749996367176123185662508356007493799195270500066141999049296806667016806121611237377599363819452656618014384399182895207782076836050303265482636938838612671447767483250271503657379336031564943944491012761403099939701966004895556226089091934288794615393056489497964998528503542900843513219558167968946471137117232031927621686361066179856041231955973493712385891898562733254558594680743813945600910452500797813669214267604409305874943430771283722381511743623458783652788907482546441577848152859210512251503439236219718697853273922900662786628177887908714571263856990622795332950729443762537881451738550584125595424625112706866043616480221813462225868887642086346412682685034888260953050486541118375079717836322249692504982698593851019082363719313928479737171875313997547169335632639447969304540591157469338663781566702185889874053500812854805542552141563549882929895299583341383199448586179407472828344858738644726304095257716541221309922950141840869889702641664380700183059307581831737149878733275893037506695688379683453938936619750983110073189963060454015680939299196660176544815494905365265020597712315952571163700055466334251344453733973989286946413259183694722348128599851343131350914987507621627078042280477243211715583562981405037750720593369366282349829809645991875376388815694615965941029958599374996268306207183961239105475426320610952478636293845859394519633056415956694375723890788203797748509736906348700277933220173299119158443677428178509572673673719714533524937479002191033832426073263600699802178991838763774392749279063096165984925527175179424640259513643674560388562466629561241581502637788718611246602692134894674134428992909790653549189146415160689608578262521638858160456986312468409728608838013918037511160105499393559291178582148516553790764395369300862454252283081875775546973562035482662205986462921637466297900446365670430638369646090137749797567572606752627876761598427823012940939904856955747635108312055717841139340224519433830163762279031983259893321467910848864379130652798208022740110233074718670019002170301115361250524785829032790693340704403859113901442003668745541414416443171429311055259419224659905982226079514225314532400053466755416095424151447554237440505165815696394788752932942760304635972788392811366394438489817437879002369868217637850847244360694201885089340708845348904717044982345739105329608711870112479498670068019844205465309614490283245611225853169445980837398735148445729402843243684986645320589893450418378886777253575286982810860675651069008199942486557208031303644678663000083839896727027113802756628854280599889184888801384735940245396517374314530056659040788893197134508002109959541216065731217701791072174378308983052854929172888198754964563126908771238352183358338908661810723299887601380760597844962703578230412714831838252022266936944784843546589542043043757489092598020334240379597226396691081878955853335947366066665657515013841118280756247484986382707297844678620212649402486056848709703230170314213740312472785331231295126875970953204799902460477779833757179220268749094170318648272579247668880569870313009672169079223250836999580530494611533410949050020186046917134543392953617062319107998179447207059981226678776229179488069608962283909725409175582666608607669045581452354295512438942833716401730050164026449898265138308787676953570968041231413282918458841885360953498803744321905480616780148641642955822805389674216060067993175043907744438163703235367088494282512818623891242756092648551330204031801213837808149534387799361767728529602853650142670036835917102673532480891810225882503810820104054003337258450941641694071406575059785278519055940230432698470255523192377856726199586449109477257142593332814736728155825902618005298906200497152350970252713479836762222453249701818552667657163996132471351907935042468744740297697010170765786053368807995560576068610776915990338894371373551826908211107205442223191931549571220834089699712986363768677115193053603087829773813429592626547676902140012404863104151977458608642269287885672163206516737707577901919133741407728185772193810744458849075902872186838994757256543126207845158076880221248065995499696465330944500682177558895104286515219207334014308594364914994417861218527588023170132453513181072092311636032456674388589825458967571154991025764628311686214825144039821859913022977185628956708695709658530183630256925871209545616027868164972312612912304775749614240743297641790411435140744650061123114999129264012792601647775371479080778517998136167187644552203829451169931482882530667983738576747413214374449952829215050544531989212304849106029538879139443030754874492915362461971853063447346822944266069217068336875909171663634748983369789338789355763086254654230353105295313740083062189162365680156868527555501194766483605768043738694019083294251475193612643220282707141680250073697750300142438856178444143382698140502081819584805975029369339316057619656697145733182877162429392333204807512546348710050941729675509731599925969256123588238846435053758925328899316170293509903798535473807695264042408860502308639334290818695654770805590391127372808861161142102506989217532678619704930834961745202177418467528831568403310345692091234044994196530483622534200465786572497698328934834175708504911710137659116611658223533980170067681014663857892292307311717510850263190599716525757200534230207263074207660398250126038337886805089311812160630734366725206130805968615506244777342129461725298475531196678045866722557760862230796026029450979276567464999490739290443837960739905706719585197880839544682131188047946761942823360588310825732188480020613558985738809386197085335954026879871634583804544487120911925504748410825370589033963678360731744096847404590078435576557341987323682567902636925955135244174253379417527490759453493040530960129089592166234923158685067764262886773558540029581333759484102372997922229722363592648807664517684515888343937438510618640939998205126443422941712662263267511773440576004100694240094862312523517406789004746059020461832449491300443880734986937881340634880252954741535740333381098895457767383455479829094745979221249156476490070260599926542566433738937716978594564572610993595360463399518493004828806986197171398271379167408355146924535343692925132523094925706957915066875946606104059594519474481864500368447684323262941587506158182754790054775983891611425283610083680827834329923401445083769763420360884345559434089396275282360422860327494126364554016577896319986019043758157428080791058159271772233315782397154147599111459860107502874367866426839519024117668317740529012055903012220565106068299282040411743660438743303747411128224778277444702633951022734626084665603509024760537900802147033493365502964999086599930352920864547093551952681434112606046454223887571287664066270410900196712567053333652503504922235766082103761965550483173271219829715237188673257347924562981951964744753752342768562892899504837871847542107262719195694841683627174981223358840162441744885902907876859281295684065990235368348716951082398112438189851575624606144015877718698964718895366855171337943851656413356442503614092644533927784887481707257245652467088288168299901480331747391335691421720177988381830189198213389823681558362703419723106655414216521765877435079456271750024169634787589269270539140059090314569797327320436757622748511968826480333579170438031751029683489944657316455528071209784699772452881666867882892974431396566184497147080395652675819584554150843185504218497246605249688808897249537600258955992807069943269155261831243452122685322864479461548612064894270946266486194797662657212655542885824479925798079604340154948335726673820685471559807979817970972955586386486968780826954158187622818086828518742162375578778220833691993729561640067625294506545266702613509624864801176482906315440977241778953142810462129676204008564344583459651293179177742279447571229110533354916525322295040261504162906538306083617458971396504440856478409687401687197753354722684397338593214739971250134702006688474300606893308860104050991499914579446916248710865342865255382239801045657224065810119618588178939979972127817916123389838080813171383707034643254494599188093291916207138580328765403200750501411067399293760703377114578820728280901124907506099228793913261065011778957909184116084328831546796394069339701387547738988297285435316945071950518487903219134672139439311893459280126538560203392586576662504262020430096027864878508221792557843491958669903796062360616031877694383393017885463825608516741408032903008687783662026299072357779152838763993622296974073515883271010080222128664227327467283675726741216468916155843175780258703541425717380448044026284396184854292413398018620095623345977949103239280346644662396063260765793761616299184722895222435460676973569468734055611647130701936521709292742434305725313448623671403301008270553246118853411822299651892511692230085330797327970332962518946008587518802153438495645953831927430101285902591948614283153879205862626675701253020650571741930629103498167859384796489414870234671353003197317669027978426299582777404692990719401274140190961944605976557371249898578294537981734358792377290348588604660769605042415678701053613756094973249376226072707596225974289487739023371229828696345713162516361870709869904855547986101698239566831430841522262501837686573567988055033223370035538495503815733434106648260753451024618610405121187432271145050263420164332847969447911844148125169153046305316516589132090296247649062435463074290574441266730691997436686875608401580396365640820967498600220036141852956316235195494614666478143930494317409932954067070517302830758629719480353508509850323076680676388953734246607542874421037897159096392751269673577242852065634002878522211098299833606686524755759388063043036826634800472772475020294768634076410052064173057744180387672132517679986498363329508592762096235444822110790725327539607254884386672627247037154740864686173738588783619051020901689948078012822417910871999993024545496428946795079604685349381391513233866672479433637784761252217272348712109508879808242608995090524515256117457344533082362542861641344838392814879732953139999778563269688968283447381927030516397999634604097494549282299534293049346852598796418147226371142159967606731193536818797696699258732307725829547159582674958135541038195188971405842577570010698217633983927417832052135907313639448644814880034101214798060063623433674876199413410213857077113327200289695687806786495704189404838720778962482164588239013597094170921917201186007151240028146245713541146678533778002915831068106679007046458715115024722532093067875111618212632170304847445097028946457586614698719088095261365489597452801957082152719464988199314656832528099000248554126006616177633185104426637220649847120849652674825349140242887442883576732741026212848467895013899192040053082000978608444809769816911527611854467895744166953763739942251291906535344430049851953088650337439834751352805020176951834729785597890020937139167586831780507234264573440594285532005933308596889859217160167093317202009037398109279282505365615154330057313642610249018590862456874672750812942628323886779948682838468787970982646269494354440758520615194694775211846196908834395367695933065129166722746491510708567792480886542529042263742825716166352186429866927911645130909012041473346860554100635821476798242676246957230701749665732734442341761630002516205537450982893188409598207552059736816078045247959392319590019183034378159682781987501036516181291524340057010754938515356961682248936075467431079143056668822487684604716221925444063472671794000546368232935062262490375403503363410797732507214217008482375371532904041493461638734477847329273306386551971411472091741308503911061640452725728715876451965571807081163780341340418275888449354365065036349672706128276540190004374271060948249465194648613978551007094340090662396664009122495561132187657007983911886016716878061782453803522167584906738978029059995399331242802446241149256093457301007990235204748353888578930861484590632370357421832759591325640640887985588122567235603910399764577580143780241331387660944470095976013588707005115383352813400592431305460023809522835293687314682104734358496441194345015809630774398071687225952824062424615771974473749246942569943346788705976409599887716344172050025618130659690675183968771183401335474806249774765396702431971663119342436854934926831648683627314621658705524101343944560071917697136895647370275019871562920988260490088414276228771525849570827867695509150749728901099511202026414819201710120688572219220447420488787258212483658966720301837237664597993195038205536057634070196079192747560279031024135465708620420732582530819738635057468265448400554095576938675614207124705343425563528198662616141755010971661930396954424320296526951077310305440220257553477613448372123983806696591193385041040036017246591036825529295652709804972426003484900845859081250389721881828743511210317506653440567608726208238396301210509805449774856987755291051595158547309315929170306837434417966977746079507486511860064414776740381617093017767483340206293355233412166634191094606920148226528492460812626902350688504222601107139550588761144545863402645822408622551572548108694074631367068689819400194537073345342141295436291508333584763983781334299542698920897433135851863699444409739846581955598012169473951716086209364167951310064467330537053079756212740184725041912240441881967482054254745407997751051737069980507957973836842081985505979316274288746479319107619683452815393327213432275923729908795309680160336746657031057884638664791083528249388118273190352214905579451357938832138958786052181853402822204621526286726585392317766652164103219597076743226328243195623762478424455590775248417557959483069714333716108511002033519528812975602344466678568958756847825238167980133728858244248801749336057946591367891197326730508912240273613373410864584908911124035387197961728066451961727629789116876052887167779872818337311730276043594673149073729229263506240053733442417847544893700158492947905560854952943437064365446919990651607741406414269596435813842739124292469059997472059215768197666919228323626243318648668602213405137590919756400665741770958125561568892418550822237179940452468987599936270391975179822991090279037978875128731208449760439897320614385154353748957844071938543250504212008511344654346775850656084330709742074923401680499046216506232305960734281689621851335456271685631018564816703664660260889470124639795701852920212548601979373936536131978429599985884520024574978248562819633536896202058833578326435545879763973527136041143564086892343815591297010290033488028992247642871819772862433439332897912660864858599629345229532375232047224939555592558992899347299936217862074411267822651824514591520455943075919132503291891431885593686390418738738678218979404845068950859748795615345780663611263726063655591113939773530648338894089175505800266219449148818496947533865818797533215421908203074068271728531334807296293801075294954335057850885934487104347334428776867240396589774686797243150730551466884010250414706174783923455617335137663152506765289350660459004844993202565849076712093674540918299228210423696889567141451234351583791422009133676985497287134127413569267377155315279145391555273407421817803215166368415269602509075374539715876933631452294657014961591388699306655787173381575970215445005513416317366123900874038100562438792604771759406866331241843151662791196000867058528054577820456422073268734681588458460486934708173971846179165879598436512494794857560977317576947097064799510848610722926738462737391800204317180785205342899264022738771313595193179549678734824318450617869079996998042321066859633965708986219425369462534346074290621197692455122852639652469940650728336230275458860574888318313240962116041715352130475452108712664869212057008281233407978507691445651506204392811994842549133670440882014694755431397131004296620913876506522102949151936752222331035244553412560447291664299434571459731710124542066933657250445357007380975601922813955277824010071677433386447787330106518416398723341758175143520613465415254285251189431998467284976071237201962052192252747825892224181717037078141476879949836577493938969630962042604920437817047792641459586795701521940666157555874036632362928527959031566975933871729069289177569209361127356595583011675022616875558168417407801881306459408157340635512098972214466979759333128968162417672370616785019027382475932744282485448534675522775066596686283057264425769082638648542534320439786982452764245093469883710043412039744652975033489346773533767865802931501370882263498389023860443265554180504945866824294837180226317443598363576535003688226641971071971035617539104572337872431238476560467206239398772755690066439708136058395457024789567478855685690541464368255345942979680743696930980527798055296981017844341748902088547570080280989514126973130441068433574183989714349833954698729546918646439786768284308908620440787152379419129608736808733642103519220984136385263747968532224418251442172582974446805307439906806193511316036156316367518846508868335057625228121907751477756120956472158606430214293979460246067029446150469942821605484030554692381302049405000898655852016468036905902857262950976538649328846754257260271723156668707225543969868256116087758415658915082396292362817730561571683168055499505997052453226940315167372798427536176494125475892910872334859351155481437527405097455893475692978257011028361396094427279406995675975664569240768605508109828835621993325368492205239547962410089922897154249263714677991507408802255099496799339485540532947447836322051240574711482206246634825026188516931499075022978495652405688301696202939657224437669209575942191924762921426354888641351409429283055406287428445237759877943102325830136574373233839868011766065693951959733062212103510147197963691998044837081474204468894190238183336267276319133763689560369449680335253926321028544283624560611575702607416536385282481878864402650948220850940870093830573210426196311207457557673053834057705383695273984072298875973746535206971143952444103238946362996858624391116396160917199529100117870034483083977008505916981780177239699699417303781332193008867181638896663046931592602468563114820851712310548330864722263810998088634076584286377716493550215285829105901434821246235664309551566934552712923948796381590892642237782408400228482876759604429544876977783411483939480902537662285447108453818537658957983303368740035313156276913550079508433122557319992635328663577883469098179245392039381716214683746189445504884476973520110320475980526406887762018116192681269759388132160986424816600663699085203008377614026468583380886600989125362959534667144733854547041090354279394727032889717720777021729517625539349925319181665997366953838769442819824094335533096911067983293814268917411604909328125883115377528866312662208651501735280001259697186593856762336942855619972986889932285848415584324506252961030032295253625711926980118101722787163603473682850511755895591625939558224058837053819528892622099887775898605271110064907966905846382092209837152833240389418792116604851941921296315707924997665931471444971204703557091717665710692417110883411916004898104083840687924229832343040230770000849741632428763040232863193579242299683541199902535524263555090364096758069282213011329539711825014467186142522250806939660465306547020685032483151606652068834233665335226338238017522033409578417767813658309051051286945224600781881940016082735606389321597625471378473876234076388950854596736209612699310970616820385176672379813635751853157550156830517297766905958496239623762853267076409642595812218343881759624538711448581249710263481297423120900772287851965608918303005677980037238021633949271111259530565420382987159400434545774070481643123694904853512639050605184051693290581486349734148711285568653806928508501023424343746762770097352359989328719755267420572504914963862356037233792992008293312555545769041412898499455189914275136853702391817527355207155963180610690063171958328025023344331770000825922432248142142652965482877234531911749428408085988831157594580370619646663647293319860832181569457574713254765082357962032678628616302849382422232932607410778098193512216781695947727658399248356258102170470757829217107895739225492738156942717235355757377991079684353892398969013060732182850971037288462941726652226270051001409915975349694787114991557838674505987843565048503838935664718477412173928948959323555938039705240878429187270323493932205039395737752555722924721706572560212016286112243600595713166400456318369671788434817814631853195775531747688157573291859822169900875203690803285795325348962922405052677728942084826045504473781117803632237385928088207927568388811804220764984653989076650165212097047913299757442677614094846119480399380114848385741063494982767559859644496959262554048310243905360502893220122772377998690603587905131515950099676669242629002823342996973588765932857129617936720815858042189548570942606802264481774883788637939235401760018891903294842683505520340157297925164498160478599198331292730288622408291970014407315116663737578192580293667133428416081574860065944615742449721037691305839456585549966482139908247689669787925778993540775472040128967171240171027654213243536495912662699901029648137008487248599715251183307073579865092813762284401096840056395452330544032191031550498270957386966647629478113804371056087894298156966688366904880130690812718787924625557655879220770166050221350623386604029700486258513172521422841665543402747735150104891768021872803550207945416863045098470428305872654088946094310436762421995693413705118546827612547434993617180749886266001964007421811674918196559278082213127136004390049401635138937892515122219372379107345912956024887475873031614535489907581380845479786341909235814152461997885707917582396002003668911500551067967707601456572854803691357936142904682162736098425225646802169473486102649026286706953024918213072916638268259664285817789075414175779189265873393283310481089181362674767535050202003250387355104039763675750208802636326445862927413986432272447392094432559327601437889169404043349159704788598530909549382931428835691910347309781774419162214523324244144477948442101286896916325713558789137908185713129798587382648523149073686337236652410323249278353228630216829096395452653968726455772058572142580308390891697063475114425475721277186755245157374225740712166897482557148010927608581468880885951204435162551263469580927180202270929210828930897013588264080684120902195226276313872563246399376337904887705215576616622636883369460144458174240753741075838975131543158371966053309054465204375335393498396124429655349575444253950698704512859635769424816977017757755522202417313236097296180160772361049263077980630229575730491670751679127459494228783134992002585018205415555661872633605906355097493149665620710193665738670770368475251444483661232893824003030657863092112768541990855756190033718396860301806173044278195550259076381529879744675377942173673566594655823283230735828358890718306329755343227804810736895576095959940229350128257823011036348022062338628921041580767535407913084015139944218017469503255244887279755198418465197896325534591135375230142196485566668915430635061138502853069993215916751289607512325928084614152723072934552247015220557040979012252653298641230437364210231530174248494234062180677069232155085065918805256275288552448594994471145079160209872085264122210518051438384695198482426728332240445932023221216262007812281352607722852013162844855663644569769830155510345198962210397153525249448214320832653196370320006320054448425329834336820312980213969451591729988678622908953532799624428699160964322707585189432718277753514089517458474734223667901920455767738867101545274015933990291177174478368333303401436104747404507480480822153508893131318630390959160287186521466674686267995419767782620528851537158352762781488229185946687533389410743097604123840230197452227146159634520553628945857725994038455630437327472905262326163469384334598468933596532420482328658794646428812846720922376156506631277012233651795281407143246501041770663810806922368842588931254460676334711714465641538340403224462311213239062196487685045589976428938910934905124044892540276136063327055514732183426223499738473442336212504040775781895363655752370546896112647996170216935043367619020407575480111807370617517225927929124056161848070660693317985487828222725285363411303984699270722516373826175933419170723296480162275714351199379134989010552802652858106570573156183539104600805149778889895077812332913365709405407359332782062479552304286125296732009687640432427776264864367787707971996976026861683156609745974661382456523378600945457914970624472895221635274772667966861482359559952970625269441559892091403624916435557487658647607374582789066421019260698342623733820234531280139950321351536556790590210772306145429753643674657893610073081500633134230471679816483281514616460493622559702277786027331471293886174188783071975141951396068406173772423892095092139096205061506469891915106962409385828315997725176558318382033085493274286406658494543531237649614498619100012065769760515739794231413044027945349346669076140022479862999589759085973723007034991577219733848158461566937589779079331559522491521300057166744569709191588657451432383789553238371997222279720494879947257477482250664558921559253411153425828448860136583855600294436881856524607184755609455597259083289044409742402228101952781799268293822182410299135330995310804417149295896766174840202534360352406399657380301853397177472295110336997489493626740806082587100262563733589658076587116521221166531633469615076059976467062427151891349327771913476395894235878905365417925894457462908299367044206433385406369339182327142039875547494656446728885060759992793239866656432210486611725054675727556678362914849331293056362386710888249039382415857813748444626747023124688259655894349311639781840447561658560602965571471176572778052546293454906105339298186865832829356663233412375654859367237537658583027783435560906279726278518974923582153814120391497392123901784313293746986831371469683250032691503903658104258216438095735974075646143028284110612799670777185024307359828398878580838783637916063404487463005261018373649835871523536445507702420502150165671468162244377890353565585430287880172398655130649645591995188331946104334958071653039510033786781456635059250317159244762748768900582402699049267180809505651441587494281830403438713282572062606900737854807896587000261582711840272040113037515935248453899450750465116146185338541072180082039694770578453271722241636355814502410637587027555225898858518694126593254130735846555354217206923008801921008079638224404832457451133201769485152585584434349135674688081457208072119218037473333795082653257653390406819235966757623191716692189328532653369039905961235040638184109533798537294205864083365883896548637202928093047576429262283163790458218260809038797855846980653398272539557846273380150022563492387900185769927809728764534262552460747971462600172468878837644059188021579460416026142700167166226771754250581918578155826595631674346651458010103884501535135065896843521275376652742578987921659100561216393513908662169322885740052891551152596351441655064859414099473942297494784131225841049512297350025503750478458341575763253762426636915746446719747072999179711924319957729169997176242953475452768626085384900302324161781484580847257531583040691634402528071671307247044651197060047400545504327216157931292113870217396760440260486720456843531263130081807750030571241620704101407438170099041679447331674135505453418504123777858695986661609818504592883228709346234838919898887237497820258939108036517291834445731676180647217888815569957726596591791830499356292482480871285139727987747996889404393080547626339625382699484362428563589228023705179460645242536429277919084529937467944119510227494683242695719225429806603519544856350555349882133811645390281837482953340727954781933827978688007171763486662888203972881428901806721738937348941178266413045112225037999456667289485181209785221854960820319938001194083875519952177555400801708414353932154341918187518256705986004852401514352696647030081292049896516732837159098577493295955200793531782326300705089067835928537232904568972806027315728931049197468057279299989064746904971349584915797033618084262266108937341938775649448997551028476052533611058078413844028752042561151546608034394225577530510965104284315628360681819785615284508632853964003913673331505436279556307487530083841184841284661757414947012038197686029026586450228973518741409042752113999983953372365572591373478494565806970459076082712823852075636987757800381578361963960667992805264500669189196339254214616850234133692808408389857417918033147079223260798123745311096932224101606197590853264280069295249972336217946291022911918703992622141597377833209215675297806250319695284080508690673157398861399777802909919255243943917751196395085147318666742200089479225183778058639183519439635955606860318521567132117871011733786243409703929492159107580923924445431156689503532236505360471755712131116973988795733416520704761638022474932219749307472196241678664990349129388337657129970330093922372580600228571640154796727554141476428685058176081248775479235976773293340659007594056035231990031968375301848274038938630672617395849160406728635995808216817025968938617590448532430344535534122560697729516751737997933233527633335517843604747460796192030448782500709034838362705646382844252728375455908400769806887538195831064588935355430119482485915664792934550052381902790174274589404307341228542031240049719671524254332219902084741971662047042686261885560822862031639866735587717049337115075076666032495022703633834871389008711934824680227060314088141948790673014947877530961215261922577399306502165803189902247594695351607409275348957625566489524905242827580388117010413785161145298885649517360531278855434949121452456453239010031711870809350682159894655177581698237697018061283699097851340088142511418545559231923076360304345300155581529791375490048946499323728007004290947756450556326887540510331428889915585381282077091108798517254377894407748456860065341435024926799454272563885012451951203797538005049770769948696533564825475244256740524544825043293993118280238943717797938040123159085384113110407751303449061469200078618190151142566638258547184995911455181581538438261575121121421213748032502741312793354195765527424977247146687116860371675221043879065308276047437816375037424171765506519696842414952037547279285849218227690189902568082164358655735224672728491915697434763896252130718035609073932539014281042617251594129080599489162838316690585152184725528275512345950660449398520642351895563535023939993619724992781784783332474540030715663586458290561590263548689187968221383172581066471229008843594718190129696786603685929052314852798492218228971570091978270714072392431154683557537912432731117572147150195693770778321893739007071681033973236775941780503108410875208843976391092357073803974391406459921392510037733065406308719640070294128328003246736170374643610392289603859728199969592339554862900382990875758184706510462511925818843021194900652358877072470000746675700738524592832947066920281883025888146055744240916391252525000931199826748778607340200758480949240438292112172888511867707870907259871947263503748918692533405513165474819090082898544772151284302952699723029318778228884317894396927425414540914523059102335854745454540281750777243044927973792814038759012687531155336392835139296228772238791258553428270482463315224816567318395534782412684997493166114445461189546378272277245605621004122691885076367022309987047662935954184518613180520550970407599448509091195824235210590287653852112034962733395302769463912183993641381480645849705458406501729278090479773574477392102465131069301206536947476259981108209340747993818123020981600661738237065786611954131591182550597628330716084099839098257972726761173925249954887773277804853652204669096245511003191427103838458929770799788070554190729139212092099841734284177125249290205844197719351312988209924122245212468207031165279118053785187324769418526198251822759589499274445996014850620279117675394876795850066699000773619124556820429052159539283673879497490824798517472036396994960894393781475789005896169450205723788988317378700031016297184199178586776716645921127003259608869100029802052751248901934190339153268293045456491113260694938598792664868573852383832984154786069731014803258102246953566281188744501002468500516975482812364302529676457691130632891746697874389487299332340862867409837288797162907400929163673558883599389309981950920630560998820585493555453895326111035600311918014313703020379449298687093529006907842993425801481551483859027262794890125310054555413819114390948602727012566024396775147692994570089672223671267274488819265356953530452246539612574349226560574826817081753716783344314039706214547623098698496136888362326094227121607138299634708155985806126969019318939177980773495509553090669484042742046649468532815330701573489808704434496160459749407651862093268673083589515543936459603909029996354915836345073863243566955554096086802836017847531596699206472709485369085652060715064088753114194157829051426493016250058247704334924370520046504268262415954715041097643049508475224452530753120922071699874257196064569501685874474045020636378867121857370826593050864392943274761561357136743182225373710876858045510249396415004165619608663116179246252105876661553785077284145541696945083279870781351017029752330432021589657162002851777775286128889841326226064497011364590684324128925808809350562162354291916819251895384589316241243858177889711247735024942572119276579171086151905846188201109277028786121294877100157030351641773011532799815256748222533709389501940148996296881534361395446298362972355261871199236866090687091820798066451566408314056048692607243742841845454815439356637715092625191972725564933974786551864843385867221851909823367959637857889638333338842777250059760337548438911675348794384908798800633195062570486886804522436387983176194447970546594775673479677261161164542997909386427752475060177784292947446655554040216603137092136746792842537310581398542145745638152645799407395605753086111870874919942326461417038582735185141020654335898162264634706355769452725064375919282209657755198235300619788222504782887030692477101226522702221257000072874051167278096795464407252904224174021841343211390590470252808294868386670504926387903901965743399660304382771423441907161703080256402900062312248709510485576385691961589692868948300979897265832858656017169565099586047272711162112789744098324543339457614492804594209331333722175488732109532876729301210084675828420727054257645598349766470397380119084816778193649086138061076865867682178260046455356872982126899209560271079929047192810464431378284679416169551250552015908399337170442108152167407945065594544037974545183626238754238590649483505665507713125452649739723463256492743864973825993555434838860190316670882726407531302864023796836059913112536581540562203028028538018519662060079581178575654910693323490879665674975184378199055712740567522259436352819686994083021232452389930403697205419355936564190117620561321379403118627362921832066577629458291902963212330661189168076915322034175590218773960652803109617960623362111354365478090269451541668267943234590597705285199847505629321022242588788568676094501490224559006373514867493931635923041263522578008662996930005478717519108419227237403583794255549507687910721853999023057309142068339037475454880575699765433481649307401338293020099406577924329841139569646120116240148967793915549779599205016557722944532870587304797784638843204555917941751516356331580908327188453059692412013366630157930116817442101777040377747215117858442841588398229274532368305805888792613586834437008060715658561902733645700415543802647738098259133530203661011498577054127721073325575139844371128198844420477123245837242072752165759785821874070582614487037665294334519567723017864902509349612385823358700852403043740820624891478294308109978049153438097052666406885076241832957485830452923327319495217744548971082536494677132705184911198537161557596578503582515346590325475451440285229285895505116174293101516641003060629050176955120767644667262099500617420473163362568077484435194526386027018054720060149720400892128745799859100139723603606603735115663363236343246443185962558725187614948539735362002686664060557524323940343805854954769877998749104059155498489206336293084837879535684837342796479407735234157478881472734537723991807676128700330290102141927645752484857006992320112056516701513767108405690393892484625455308763909745352007409561134409455111988922161685111827545702577751058632915731553822103275510927214394184866215332272903474783726296099297456537428888956641162078173846498775372974839133225716354632417503526034510802319231488753711106462589526463436241912904283862825516299275272780728401882383599080928014087018896854421907913354855429243635286139559600166770132362190863556787293222315173198933407459968167619274293085972050098935609961894481034126841260072066604974898580867122366049244525658767259442219763257709591619997123547275851629934324508654672622981089530562873511843046599247469389428134081678146166395118277755110791144182043408357052279219967689246091388524992422519073985569190630052940096272558751019675618213288763032699268264504358112267967911415282276769321802208502252327358618445452395943356992065774616618571581384153923129248672468759086153189245924008659784396996716050618632212294163745667036795323495889767033643644767070831890797934789099202520854726055211378288918033487168700906560846214692973604745525269682051463671595099104399670078480144914625345200645650703291609873095444349502364494785006253683171115618240269176018421785602613170487651699819998253660650855244356254448297066874109975539694826229215649672808364462877604129747696140339928091819022324760130232622321273214543889167706073817211023409851383659058917104289445474961290025623197190566754682640129969673977220295200668735257457095125082019382075997140826790972685889400602764585693848382185894096782302526808465635612553679476066578620110610820408318519385220515826438050633897795819559375461886161599560893328486881997495634799818405077565452512610410656328485264804592303213195935102342675180440666119825887519067578269099385032156558565638279664139553510629710610161018387336178253839432954981069207842125140910966722225046617025762002368655465500199998559859012382643903536141631639600584374162125686154129110408240587380289716847722482303992232519990773141083115752101120515482657518066808347197996302809838442677008006618617154486452925543882330056989024316314071827883042174817241492489171413374924481876236270249360459908729099616744393628839146639632342055160884465407952748796761116922352626017904071329225443822098757131653910481524856322375767116553063747407249069978445151612221029742022120863981239392922341928095087682433084343900179748646598545531581799312688727137675518405803482560015117391881864328840401162714736445757679933935039766565694732474561239023345999408963914878899415463547738664609087288873737881932765086919470893354168273547660126204419642605409763881849866955918677558815524267460931788035329849262893315159004718184295211664971490903038721412498739339698580757476182168360599520569954503567442568515271930206871660115994177586169576924686278947280498831169896152661542056817491948257490246225688033373377495137076313083892236953089762834261947645142068593054807215844128907790333989912806446133915085212356973107351859315012086218085586110008048352534525276836145548624175620670958860129232366474235242946059605517664238602072969515666317746788259712091526027687930584215796888009104020748153532457233623134127347500787974536579092775193688951549798669265940097008102643211291097809030448108819749127946291666054440140251280473497098304514430139261960833316444220337581315508958140599809065052680848399253565358015040009424264147240708385579725520091521935614669027240338570681428745812605556424470908931618886017212192154482934891833932387104667496187225442897325443346172377782020275563989392222514259915647656997930942084086468749444079203793499051808012724560365048975458659400174491091129381249630318957653245932846030955749951837154580150412620411777445797707934654070157635348983461127146731408915995566573968535360895935322064378146758887059289728302869638155749483243583113979121740453330826146109960230928132664129917085459586658028461925910451177995964636755769470986727341177638074481654952973004877550657617186958620681262733658439985923285828742455439866591206857997406217046283404470493424839870682611300547941736016836982152934756774136048671398206348035620208875146226164916804134194951141093537877562312207987004990302619757212500320767570903075042810074725937184936140481920074621770558506334135215978664090076462907825747173040584608086865695174412175682331601921248867309223103561271325864758808098640487029531383634924714927749631075181211069511809979368421256684360010639464258904197774625351647780993251895551774152219275938801805648315872033781375875752178782738775227471434332027061812302516313212900470766717279918440434216699108159534615932045054766978427008332945965186283808124764625129984774958871887511455445551403297741484938126314919974742352479598741419535424834129294507966008789890989736751845768260389187789835025984081713986861299851077672101152490631466917641051667378315447915617223947196245262061303784634600070195104139763000080801070400809946647076455262283417883033727573389272155429426975552359720666692016657547725664337605456865822000580398156132938790051690862593787015458392550250254661225657340985796687631257711048836471523851649129046046576097695597185244368754640180152572238674403051582929486746361368228126486501716127762216458766423609959956162127326137818436087996084174692881487799434959349986550922047852568415039096148501504386437851903032590087342105599571028813987278044503345174996080300621580035567665570733897399384390828359354541584704470942333832554270672538683279839065506533353533037902679719279011173900592302883068969548637182620733393317839257773105811592985138458534491528923382680335824119697578349421592878495459907512793007314130107696653650427851802220949137259457223968476849526900370123130668546852578786821299547349316359025133635079201901150656657305843295710472331093016152016584493444294077790126756193269980148618324478936187280170391130384915224570327099762474792600420293701415566809118350870496370465057266157469866407498030466548545840727173941099472687703680431861424013114639494139394695299252148706210141283915361368970186711785919680792321923948877916469363543099664963077297071222485756447789056194587439489581307204141630826703514855232103798625850143467649356892445139569038973461752309441266077127074580930688865644309397182402163413789331573389125660192389152562440603382928559661320532609727881841982887189514747785241316370082954938164336740222089945305092697683790406705278387294063723384978118303581456974686668333848514239779706225514712903305285756008993934434955130441707701671787578902329482602211052094645947238665109293192325712093619334020054136619340195320328656636900578497026060932238065417859095231875283119498479420343432532100750223323615593591197978994632251419980766247306370980496051652756555016180358179861637861383957993341736512201445032433541583122075058148624394223490665544980595001505623458902386562548594226692441306695097580886615157613967834728142215742119503878317812417109177830032504372874416486530788897898642302042186147582741208846826013158080350249907850910576173460893852926359677252672140819502519801156904863098898953599890641051646303111750075330021150829397964883530079456958452793699003780733576742973883691996109082363807061542850578961349969469216621716276375698294071407876539237751300743968810345379815895526659683519439144775094486202076302218623293039421023258125212224643162182222314160990378734498234823161562561365468762135813674267308618677655541424356936781375728317508566630727713007291240864604505018289824437138825631485950265308288632656294406492760675108269173913256626306060880831246592418440479231340192458941184853498019250587078436101117116641264418235586108612386296656658698774239685968120751516925086976371340494458673207853436993792184792805929071574744016138569169064774602821529100052025930278252290199375746875007251397931260134272128462335900707180338603473102980403303127618749969333380175527557678095225745403855267946728370580548087705260328686510785748254325541250929641482500863089860929304003648339359237384482827933848796756581916536566102238070748366032164756811553685757603115020177679407488331063897392580065413467640126094912241106320283925781944712260153688322081326225693768227190517038317122255335085993678498479955149446766244982163748437641515749864263098121825507049391507540741620048640548421486619325856547490310894493062509455609745224286185824635004510446987035122701599592107992313144685800052332443570148798699513916366739146468211452514672684070464386067154910730220269602326271803339103110947061217334086589402283768395321622354150206898152007300626030698235196059374206277098514969925846871302708436820447265480128737654337274536010646814226600086118310033249456663680180041924767303985252524826994195708471052624211650254210188870725037421037412777155514594761364779977064531727397562962112549690835245160661732512506331654307271030119779184554730334519117778093504997947462859997570643913145911329067727583542944354915726440541441462596654348619631215805000206157113578129602853231425251358886872569790715722729181397027752114672869649159981642759333361294179848931705213190237235917552188278005945729995375675421783759836400589819064737172518667621936147402470210902722431285047693969494323079754376338122403297799318791638779215817648950298746788496781562596144994488733978070109379819015171171804007049228393970673968729384768671718107069105078651834193395953194570587599285246433540836358571691403204108933319901924521405681410574235511643823873323345938281619509433132105767612184513080395336085724377237331195436002756847745753047310657211755925017150528287937599035836409864043851455789436356791213748801636681985543546961823752118482273252958565076294115888937292644220914570747968067008632740594180617637899235987211143809870382143751364076649701202337301654848293720329513862292075939867736003937874622515614895403183248226279583261774192336230454613330833764456337924173815993967444383732212514416577571747704038052132767033443766040727491487839474950180503232126420117480875790192840742878485292903242137937673306254590533992744942385328686675101374701689552068714724332429960286877370455626441084252651718477500828334301987108922229655650554776621878430253405939561813447216737302700202142581219173909897383253788306302963807107527495200064588429639849326135614028376375935329463747747703979342572176468538590265789648476944173225557050200139371865037447334396262502593817797243490710866125600514807068436086918345605146302779443756137534811831038750721217506940884122338817226942605979359491880459318931291989369408223626195094443572628387226975601705483784955783119517485722873282595856163626069199369291549401896622085100042409878593151036355459979228736723514391203342459541824246274792852098527760610765626141812389459876539498865305494263846416155097313506999540103903535714034647873848021755731968821579200690134753173465133118692173277512234740417353476940137320234806735489535807007128885627563893971038057159904630897655358412017728343280397829438083781132668061197855378075886099924562161085083187679238485587698828534556912578167455435052580150139938342136208501631978622260619024683704156782016235987959567244673746456301638671506876057945096919072740954231790518757733674310715563836862045007088957572882134908773369296891234093559091198320660748379052036513010014399927085785442383041338297209626819266381698896668114590354653033894325461236307124606725011591748813903345986406428598155525250191019345928806526046229217999264871715890218134119142973697454603259243979605336429537204251693860915764510058399488777155020226149646620734967184223945071498610269473479511196069432566505539222451256258005756157673536082018366810751623270758718551254143658598444969038812646774102826238570945877894642765800635029560217868801463676230328300079858440847122949863719832026331504143887261567558611814148571261709436261744523612020889783088403980893783595058901496079642764940897003167249606017555445396148747309036859242142360095512129652144436460549501223365583196090058072885239135588764157745818571338671574475847695291179641037930315799931100240390640068175420922853992905403077191135364493861831328888416836118772544006505648924761037388629164685616761052092402630118441015081299710034555500758673654795715253638456200885439900503128821475081012569194509773573115571583642850676435369045405924222331652902702436489026767204485355761862241397314933513285441723649408391613902313983361225639825323317714576173326948296592332228866147754476869304975077472638019522648779223695742504178047911268680091399891971390044277820426312662202654799443329274014320386056935093284066346572867235346980401374458483566705135196146849266153955901596306841972474373275374058031298137778233132628706217256044695689023631316807511845361837652224918918648415553662549714752253825246618332103610460488261565626590068651024010064460332175350624104997192798734626849110525513518043566159529107696286312659899580684627820738036432944055929676165905053354883815924586282581648036496902077148124207465263678569950585508872822680089256024362398587849613709195948213142463061745619936578467390295948875324100938727964076377932461287053386032677157037561053062661388813889552140122560981154166052506191565449036690266159200627182907080481095668315381520253105083314034037736605132159019024969918796767593380643350443515504280450207992039621932242486214228106665332204501752782945923220598655616149061185839437146040536903842577309460655523097438047776924862895025221688045011434857743165756228545104569878615077811827784456799704149382914696293979743529959044194186140484849633678302945504072667773114367208820351130641285487789529154242402527237487062710348698403045822893027052878448118765230253260691749496878812052727125156101378131184570740585457775708120802657793130416752229262547938524799174538012548988793668826778816064336397886674674130587013382208735595841706905208748806572906972762940558901005733341710450224457242860848302390160847580968367513117668998832163321469726986195009341470574997573002468088628884546434873455144030954318675762941341354295778387132880676162547617271220810849091027610915199532419720334839193653042124251385861808249581753164239570557882364503614251538375313994815970005952520227927302706381493185392766666472347352506429708682499377056742007451078681572035058412456529905948672991947148905544661736413496479937456401298634857280750352047769501946212966172970884694496122120822072259065208614733200872399942984747908033850956454628775940026800090330080839118314265928516427061645163529548815730597302071984184436658244355747736787562499769747355679561057433948355964901199974979093506684291654057544947068262651342019218251699110028187989136328190238325093869552437274008169073940515476821421708718080936164601063957848439226136315165201717580261962280983011209773788986306454004446258510763520705939458913708219234996425346978542483637878183893103723671284854418266107123931245676934615399792059449813069129503110830255776654141094655789680905741643725228956109003528301598682035620898570208151274097944121479916636083143153666165762146583774691210154357282416061274820044163745976176370852235657684304438295181750917009846431300446119333570982361959791812627966568567549506292076866826225042617348662353263977384410142069904900508536845536353825865665484408080464583344641796515875285747804615856658511895012573618056757994648541331720752699441263359650753576123336338615321434713368567123199222080895311694400954903679715751377348664979172235739814418987458888133661687451053576042439745788617791900094927779010904727988752670294726877889106582656857712112664510969059075432582091516505710328137515517107504400798440161339214667242820735467730928874124004934152566284712277264564034328323796212302160608494436700806447693363482906456513268379497777154526391134598644881823890370050084900981852478372293484496607557172109192904067684246421515030093768527532941380021848470066986045479191959200102034697959205287391304869846888304129015347010819795059641431671095685639916089097939136677140769633850549904551237537091245670328108237788201757459856005616302022859076440541151201602689200892524300736385228212485054996648211796798591216720408029704080191708394099538711466027812096990143002389142965919891296090339444461510256427768866366621260653912647142186611605728158783584391335275899744014837770029005962672164529830628080612814676955521213179484637170605579227030515945283971044683421125696842823600027607882153759363330681250407194464904456663361734286753063730215999833223308813984476301382643701793863666576853128288884131116146109322136197490724562522883987289667367124268248428990473151254621097751414991052348361848597129909842692490555201940919146281124166607508877528567737154764551334973096321956620724342008238828966990979951213191517438341824674828345888093522274598170754816158839161748163352924459053207100755368366386209190661736652968024656200576518590314168160287590952721458051807123348786193243089416871299005520584353935532175275602450103879114145293559199596091773766897061842041280721847045485210815828263148447807421636248378577783320332999540358392051458708217651703702764153876669355302897956217770657026566586827881663306130173455923803683025734497840502461809277065042160498579499445745497682369318364770192345928618295805170559380777274115838881308380687926626914834709710775510692821111079271820737397112536376491375482774683971159654637465195930541370270667816476256898998086066107481688532739525454492977894459064830960083068638752423905767479938300421885752453374376224253211436834706395379226134896804760645170063939507123920935799446009446499398473415815403745990946304283207314361992613593467083345921476060879416618917826893757101015692040305116321385717263280663338331704469785363615351032527161916243098592580392138637122612457260996469838047971656057733426565079939507255315122381713830028318007195637072201693512378596011751592222701610833415335671138455352833558122649405432626827218289844936939379952275568763850618151885119394357001814666229077766784928544406995545086043195737025276755545012117424496027857603928686156984130977218326920725066856603242864719311674891345370826199204515497973773697993632132194113525607836825340803188622655037868322078380686244000345012594933798692302907869461324827352691029604336468370324277737258842436812462760582720537963671465385807193941208657387052311005311870470893458639763095166850101916330273442073251797316425172790758352213926000795672052773718626417661641221049649769201924087130829311555185898585825906535091787123012972948329233851124437479357408162942948147427734595948865534148934640060121810802357816153248230632241383497546486998365335073401068535403687485929809363830957109210442946575493532278320764237175005347067366792392529897382640492004410086931281104419026294287423322792112924105401721860296230713887796501511590580413025263436857411885938933496344632487390998756998741357542797108833098917873203459320019688727669965858661211339948091879948787621396220885250588206795123453960349880463332670542940646783419996107350592997339219875464772821116049039046881525631234698459893950612004316256605766653552669627650977274135049983463039418992771070991458250302112898486728905906155088890327591860162326491536453643801234439000856860705776016461710170572091296150166795453491941322554924418659333736862727440231221358536000758522304331928482099611872741228829145449359438709562283127702259461232144405813713377409520539878844016228573943027624510742949228775374673880019091829091536811573090163076480286267912642973943763279626114217266961158458905347005096185357915626504074065015293147048230555327573161212552026388448524715464356786079937988738753069738543052086697295781807251369963682366182146617769489611687794900811488467715927052620238614028030578356888934084572014890234425891413044787342830636615901670865507882178421234167606831712432786521253895536380827161035600618342016951355294756312367316475178732084168610910247235565087111740305934367163885649600399523547514924034424672549439501668764961904698238232986477848729259359674026736120134417945398070177742588198033810824378447015860316875511720073075775512949812215704649195801531299564788648626979996791653740793981384182780279213041097577305963762606362073356133402075981245497688227194853286982630432383855535258623237265070567053422990119642041709552117884246897879669001059815547677427430440105675721865789343211851866400831054687253941796834908908269696483403686951128387548920465653574503487167967377831935148407555851702999007100591344971144214854760771604558504571119671044836962793783201736231235488266612720399544666422940046128791559440482040898530967732419932095981177189561486500563128605681232837230959397414080769730025146960928867909728620311785573035767497245472007968420126659078743210060652904408240690048703091219728489126645283536229000875102051081138795642894128417188668916736382241751453060293923974720505683317500264498105023450395451569406017519519162163670577129299079975986708211978772340433404819650824320151913807827847591210226750621075886096979753977435014799936071497451852947349116884620444327990794539240760272729837438896261650599837643394684054848355799906607868495611761094405377783905780257805092923161525629123984587278940257445708677733953563706533201711509481036264749841120147170911234603598636424965514006219149121154113348988880723727192797987155139415857361614301469080101603416511266118735559794031698129177846832263425709631448286719320137353064022051966599134051169928135154399232799181211669679924270414408888685777598450146578509271629691322956402166384282370988462625761229290034300634141419349576856835819405843527701585672761252720274129638812004585451299952912181819069502249972198050850540946577519212625112207393161077696245724783383573835697746639923424837467885363356989815894587258269924370246641010852112450929263965014865796258521958886372082395830581169872563323162136763036634357114093095351860437100628949228540752273089088181292070522472729649503326898482068055584605050923105229233994453730848735669840864705665001215267223089900610168845613514373571048954794940418674457990252246930979299726504822771095719313146352444948279592644199056128124139733188445394680882674227816363296623600038153061068809471375608400227486428551597521158421000031109517294987785080608534520343854416395023736169222594907205873433650836923669969644919463782951544936467196942174907251058016816842658339705783496442469549748932989073504189359421063307210504308347105685760182358779543683593572816165979903233102903202791909704891738193118175958744932421954361450901914410891965774033791760870857252178163315797422388079354522033227899882012304114031458359696313421246872814277511353961829595185756295363150445719028262236073013012835736821719099612020800394846671396436019765819223698828769232369953209757340949830298440273246995420664334437854853049428563539243957030965295120249273859882524688529850943098247876356006248660871733480821401352079551483606781727544154859470889460406670360564467245659824302817780033366079156370334097100769378627304069374028937156198198938885644005533824005252728882861612263790498583848099609656391107161857680856060740424810886485650262599772343954752686453586194900109323341088843092018437767920922038122568856683726981585185030049404239136152657396658486377018375819868845542298299865864725153356764334439426630547151349002838083459711145325139417127539429020007337944818973838297000635145872932838745068613606534682181227541996018079243915783691777728197101650241371999633498341918045964357896266998399564464158518129206422912113226412767062462877502317644544280945007663773209597025854962955816438904226674274251968413841722830457965304145119585517510270514160099774635003182051682749163349885542410548411813936428589996249651673183132655802990673059840365174950529799727410683071045545999948534167192538904941612853867318044614082025236638395291623310278607940280077720548585927757693714469087474138752536538122543075989140394207423469648854419835992388528015633029658920234608802406460385209855179817593342008737856387378490976709551149598014205520220335645944086712948600907255701660697335689334121129350227393805205278117344911849908369759565922648036673108656290349366390601136055368983780263496611894590599212352675157744789636372928067751918141678094152193358577048573775672438418053823522444706489075155254087084119966793347247077419432895499426156407834324300175708955465212565030129459045479597601622417150588130369354661924529569640295556796853714546714089218387554624607763983792136315976651572987943750624978591516168525068034243168825409448032320416383335600058674480017276497163693288596827568702764784061409343010511019777548366153463817550090601817551853268997616455102897186125869955158881918627516612697164254249957250636037944901501944764542447220428872258498758595806817138022538697908301460022363647801844771659958800452042086574929952935101093431459356238227934480060917677277864206286618293121086736066813717215466841469891991390314447852373424488204762566257231234860701420692162877218372721940041660487224022329533367553696219642322400896664583429866920519063424651181182322519403023850111656213873153611959961658811782075442122716505386416953945216277045552802135066998010925953556219007898424172587877806443758809238916205626945398716956703710502284285610507296070233198263395945576520148125795034418265402442628794702855018852095372655613918887879934287412558569520577195791527647176604409820084544128005018374632310375513134808044910267387547426471077380876376846186278845728627121016098007568538679955520616074344604882000577929675302199831559757148004819699986230619649448586268416974261946457195633675900832035929942822007991571050277712426316233396981834530773910165376730940080484859213673109389176256515346246152927622879154048454796958858095181299526776514428493914180855657813055284451904719564938309477451084180072692858903958976350770255361028517619455636492608728659662447882415033647753931273390847132165071590375979921681728277318035724607333170395618706982502924088635111543085857370118444331809515807247686673789585702271686807985691755658695567600922765936555973867008661924697332115993676831303042424113955026848253180866544279648525887558091907708925636177719214779898424069324702211580229173018703130929381697645907323424966401791818047770814203218256940468871476409330771502567506500101025590589762477392328528887912638966098935398518753603617056249490045545650821420672268380542466518446258045700603940893625865585309142838698620805109359069579133240120951488799608679725487208716329026632632228776758061450054809031378779419394381683011205733423077885751291101617746319973144128995222039070899548428045610546303206310982527635812652329587528477679866564786938563549044680686238148887584372536781248216984427625829095432436462919251134829183613142552301689988036371056906755751858383852972520125487028863373946237083415221265567893519057152585100419890790675378450260225796670444593442966965835984214175199902921322627630695063145579613336871143683197126154086352336660031749829365675109466643048184687167309497214277162825104027429897643283510577230570354819160698384400182997072276611625665048348596315641883157161232073852585254726634069817568893052371062758055746237630471038931442489163506351566521934052692894205526612131771872026870304656884503911069623170976515379500936391404711727255574198963715985386645933230483216472187689329478121418895027102738238307599826649847813020887623426682830754399567521572560401807764268255761865961966030104852438911489875686709564790442292989397237433132150548345243742530003329104272885083162998322049387857144848520383683250016451586381691674626682630368482968399950594989295163839264572176550435536132356753135790106645272851459114043364422697366417394424125317846108539745875290284720200668723568173132935625621061087515280539312096894589989810135340532563459367673831315846692678414085220972083204985039211813489225636403805911944751055902442366382112327082379121200298586979099682681370818536747997470323258820200075761355427872259343975581473358346880466398460933957507004537641497202999052766080614352152136371197350169746326973512306757782929999269862423283464679062968194376699254165261138705940455179762547942389558217957951728769935601537829376724669512025046054669844596783707663202546333197714258490306878821314472065055161202773395468734794617126100525674122063708007099367428786071529650791357147152759092641938276313627029807842975638838498006260975683760745731942043541659053951936949671407502648502846635350430327330058553874149850285922415605306217670069443004297869509170787625059553982582536164717067889666446962880704086325135367625391999440382962588426245885711285999921909864923958329741771228129665844319323792504761099136158726083831687892719147029185608655787618595684082654934179869985580136027496524109294583341574398701653558377468350325467533727933402206314877045319845204668423707073024441212775873569591817459713322345164863966563943607549699893986590528101178854396529346478621452200772095252014185414238804658686484233059833967908719930931376126919682408572075657249378936829699296821003747918053163915532766840391018273976156181567258409683889683210162557271526821785356118360944008697183695116028491238158928864887570480105394431042819895482409027978806319680661669764067892049118302434829213710475019284260982923615799409347850602077445106843686403447832272682907270301048903980224101840501905629752142572518246835380971543487564395454007130177156068834991067596366483158899610788148819868584736279246159745092269464939629176715013386053789917883534649637169613439365880431822332222132193064951523220504175773532821238590607561664412044595239607871118803420665923602710539146693271833465849165045128591852846513234695917928867758121208030969183398577652830365592580999706950753846038126038613144260535751932693041896492120549592112865844084743443569594783984169088005489260591710391923138482040123010331401856755656693064718999263199381734515945588381521193400746404528849770751203556742171953938466362916506313893658649418725937087448691108603545170010824472652264449926987948922740381358379979685428869625016018682923809579953324037694096144441700455512037249558626021023685446130212605300579320642214881747154756597359933132237048492089191235384558421963157793160965986905908291057062713395072315737759613150431908775489161642358186370601873579878815018312175513525922299155106597987640789276061810354687686738567864383251708711121160951490024893207185116696168661306214610229216839996177927081839767598636402971904387384993167947358546736042306448988719183561888360755345178465923562829372250067847184229894464551107084088682018947115235367069131329174196659206299277275265736971015902725551431040243661502782038530957202821799709670628910016498893687247663934775387696736046518582000298460504157244830769325398665619297248629736758137582935857886183335188395728227800111190310663356727353256559052763003553458159706287310094585587866935407292349281589026031453632794589341201720908708328015340811058414601325383399823849005722406699378276252951794004805239728754126973411505922651827189482778270943497006114710303525043459937441276121282523251512664193965011188494644634404044834293204410152287760977318454956690914638186964408622225852406757968541041840055410301061147895833783430928068067783542643602649167389341230556596250864626397646286369449070281108287270571388616689057114281883057051492536827497747394619860470539017943764263988870156324318914219958553283114941006609070025208275706878922937712886973756524224144503609086095488491449789166597890003587436437950451661215421313020342932606180002307091665285070699309447914712932039637301089837940297307939283662615105574776276643486030994519365199709984909296935257287530091131066556428635655027833890183771069191838606997034693948175490288342919501314372212697469551405409110019683061374332678091520610901601245524579695380473641977207145481500532697263955953817533132069014456354763847654275973439719294004434552965489937583644244084918468105383452082911466503392207949939293125297757147621041119454872465759893051887298074654171925689964698472927301851583187294160640345140860434986113662250260914350464546175739018027370563404230699834395231507458610656850364949634392962340524902860564663938061919912225905215107443899252918364271050434958638067706421314827952622469196679907924312582497143800916106512594069474092056343483375466331175486025370349058445588065108528945485820292030179022704502101855832985186885793651176778252608545346959396073823458535591109843592321020781652924954315183037760779691816637833509593119095685504768060769203372197701178584025941469076721659299413289221385859101575864580769649245438487525775350837340605027520730826128952924552971216750134044916994940649502757490088613977914848098941796323324652006216096319445367025864955272893612444853574580688381077394339382177788441100933548783967964245948007490900411946967107135327913337632102762760649540720785024216029033968499142621822827906812421403515070673259335231198295452164657444599708998366605647928431314839769061784039705351614478429930848500747898227578468136100933493567726386752384863089549883060070260990247534714668687653830066463481290908131062575049309158384317430402338861673564535476581894826481631517015298589352447896892406146146025425322418918177103291664082808356410474900987554278887430781215429253330111012637103238321693991071397558317595446097659704051154077082920960329543542651088779786875895495187001261899899741308614486508146948239078946426117602328501461315256866046059513113499885726341838342922611082497634244329107322757821945704365710190532396756093394923276603851899673626472123362530905829330206830749471338948368749803344574152253958403404931218260783522561129817514261340616423968362079843501865977761553072099311285411815822959033702922651706642909133189293710881435023069058524434004237470514368823000252584378715252891506750749592607608086507065326793781230984238325710684941258132148846697225452193637801132205247497130805892154261381468919550704274181661524361219039579733196016417754966803692690379227640594977273088782131616108531489745334934950725116214430035529629665532570896619110744435237173481287613309518531767941465937290814356079836480093491135587481372928403356952266614127841578355920060923926364278744110460793352015757913352290675817925076768099026382603613210183143445610390321282634902615172958775339878872059734690884692388099969566039786798548304182369563418498767764995650860790050793353749930689329474478220030997078360563584781292922507912926444053566207972382111587158383599440957989072436483724721173726304297000259256350263315389041596427133967676237974054821569990351542287186939746246644400955666339190893276412707951283387580886458469237553470864864277469847611676246693847693707162935597909864486512656307266726183364690077855510489690581844646166406344573953907368806416699803695811530662974198558183163664039220674074272435125313010338191446787265653217886946644333114990031062609385818440019502286887042134981019233135321877907092801547412882742958133363289561352813355772053333245536446849765920059702960012546109979274925575495156630036869230746618064516200980746983815008682481154567098244419874734993938432997581332138348320196992729578245279704271165673835687096030166117174107653937375586222374090907759390128413572329189059002042162787877465544743877490801856260040722986324074722023470717110551794075612186306507382670898093882076938671250610486231943928488330554723798827294136446065111443438049546371502705388473142500244118869829955020576567377594118287336215804643928119028757347563711943453434511175173052518407026593912748023863796174058032526997340091267122980057504616048604006887154192000017953133791393590870554541513549337916865992587091915313001412823828063855239835902870180744506192713768323958267180138190970010586050225061602410854427373769865587707098724082846486368801765970637332024894334225509536438867950193359896684722919457237354589979540302005865874192494285683728061878238904458386445010038695401128220817724764744033450324424542802447075509741947682793106634009554462918586127420165533527896112240397300463466799397127861808122097638466216001940683716065556467219379948627244244231416935885330165671741136940390508175798540821623992230024561297462445919879733429757790872880706135985115436476238231459640931228680169830931485386548715559507570663028591091123138162151547722670999704453947494458854527733001311976538787676405901049840221789599354039269331655086484226950743852409099783309059104574272021963449297021877458518426942119070497949114508696174698202596051105448563317195413929577623033823728839385064023795719876119913052669278469605928808773507200691299519079622629390940215344349225238525965402285976660889483721131758404238378266267586347279053428199793984205831215612443962014621080936413304236215778746119192980646637255615400334524988263747081635254229557217131131788602637087744035270062060168623501328727571044978727167923958001284031535855445181640692835885839311418294196274640066829885256248887514944237075746181539416610660596886604541777123189910905550362900712030570428133659380418634229279781922707963729188546432725729153141777171346173360851102548199453403738410530596585168860935414683207310334342398218711805722976825065375595270466916992209052072350426561867802182057181931986688781895723109713083313804073152351495393922732768543499123107939326839915859856046299589336885794355008967696937017630717635351965756681722855225691369735541144257486641758668102284239182315850721581526198753107104786134201865241276438239810337316826319604115615625400193435180281283224965191918640129975966183764466610028116754075227979524022178116450480659860493988145625679155010696388722389522622699157170753529394229400823192650654749784574625450308990960879176951042010866116662295447462138027039330432378748435986585515963367854694730045889682805921048522781951368492544801405498771185526107828377870154489144388987114350477841706987641258563144052884891607475439170122424169487781487592575269531910529389371707688000850996275720761832613304459327622377520222553612086069950952015158764650335390125809997290750012857881091709936552857017360720236498377986978360589147772720267314507347695611774502794113115180658732436640276701235889285853782192793411144901676727529383826184207826850297661033879288712256365632778182623090536899537485899965948233436232394363619699728443830387421571499843741233040071403707513954302873387659148362199190709646715389803340415268571175792828171452270274339788427817830569765330499092881482665408468253716484622588115949948410031267267052654175406856017476279350734260295752665467684777150226337340749536006824664783691709954738290120241811245193679675432535576916974382358530662399382571018236758819821005245295814191768248064758647200750305384938748922444317902546462718590814471296002928970612730587134594627345026364564116775223231666713426398923378501122860515579344893816825923348904049742881080864726000780478377680038585922048764451577379025180493817307352352559421054697920842385440601446832223331204505278342461688251189884611847916123836061164352935247412880467715867695361213848947131051459807181475017325926091663183555428227063503347330568924073851766699853596429526167801594722439086630868488655727146590937014757661304680649484538261108644594627107134160379325587107230580740249491637741027635768355891885672623647524813644394139013023629857013976081379475262793253067147665244032853056289760478583911402074764245755367009171496653965582230370691320797690366663913224769058110707218472585767232509589010415860402880847806393761091653213626595952483129252532848080939503232419593290355507863749113178005627125331338128962948735492457175046109971372225017785026225036582457413737151370616190692453559908746865618247679174588060829120721145453219653968253295211187238242654161487420457187846856885164516936115081746656665610795736695552653602963339779437037900295928337508199922437329305004886281713945221845956141028513843280550759277071194296915563407430735342380428859806144199427043542305536899143968524410251276383422325598746181692569756878041556550769563133725644043171362320618067187496683709841676668058527834341402294475147437418040080585183922697770222412739263443541176180003539300146831344542522474162096744417445509005455820485161941296701438070326938678456499863733388173619099043916298285545647712836373471006438628249241545756193297296566898893190949530856639777888401328783829941922328902953088211649714184624623106554602645974023062050420749200837885041975161498755205781952441392984120693997641088278212806246689219467912047983335319567451088333060429291146576160318188808666460369500833423480359274180782380000692161624587353551643259989534884460941523300344685811313913516531949387224403725714051812702912930088187974154807326318583270784027008576188980390572091360366797336791645932157966734170435487194112855049845682895535080464939179686377852971261345724882585664483875607254942083413294985764934450718900531897542720104614297502950166204684728539656660064275485516026473714708359385667584146213291164873016824701414725465318959770171596660354923393198378840786669268879391198597187826214656455835753060580709491925918931889659414373666429886006930182454782842629556524490350854398117414367222464345005653736183812957880138249687298794675376788047735139120670838917271890181172796826273884667651166479154274861139809239239702561373853835751081394104567467483753068456055920350103290935852354718027958030934668894925268877794115390036017927207413472715616415035622592603092121227737183292795381097537822587813492854327083674237341420200010348165703255507913514980334131029647409505234465752448880581673043915081564827209555135096848104414957636530987306592041006285802583580223755845040678684251112010785253084630185991686942716508892270453695215932361637414524949340858416155432540884864740163742148187689551183431936385946469498460357294717222617927088846477227559372887817075537524101246899251224341420251995216679337636218558095847309232417622395506198050598642102755874947635009019076614838608953446143250297075166538355320353987906379764918679741540944272941819453552980778709000395851177194978302594165395932369086837433679166867006509059470508410303955000800165806373776293697876320640909753150382345719206088231065734727424049202894530910876203803562463037445530374492136732478418141902254771956993058339202321576180304865810362246249083457119695096415545424475531670800422766373603462458762914301385185015223973574639714213760440145327448868900446111786865247938277006612640149311491224769334659969306618529857434585891659236285840003576592609073911055849767183546254076464755577009909759997091466905099411937189513512615158022840659341446975254702390793359578408942149937529383614103621428447172607529443102295046265141907583944548910621430870635487999892183843282026624997087308145421867134216845174789246000757930780139182553962217012849131209474394263266471736003445843744264914137687129877151384687644818411808108443878402043509999725251030137611880522966998999743394801020817570479381076437249988923074929809424245376116151310844189893178660708876766096638627492070886047321656056167424747963377255401818360767892138485899334043288647809653389430459154526163186558266360121053809131743367100425365646730411414105477329134260239010909386442848018258433841313073331984317042099708879078706755350895471550350058972878525647699036863081213184085255760570503468946769985370442969531691747858678243676370887102387797398738166431866187344560620689135380631158434648631367502245554558124002226897513423453341073212900419375086158339489169396518630136988782856574084433194592833192919983399960649258550633073199834244161741103458555872397864841080656959553653450766320837414379523375111518639349091546606375075497588342423521022728836686645319872317940509723340834635120167866741226503364682692255685713498456745581060907729790012877927587039258915215498988947093827293927561189451067929340857988541258650005993313862599009499581920840253097026361371034597506254925334150952285118176389140618136858183129076789220855492998559922978051278527610292353038213232885809239967817330845327806107808750100569321254042301461139985707801558675924770351305825514189041401644631997229268963521577094200749534138908742047323236947842293075631407198200572344133771550945262408355228930725602349317782097781477957687035470137527583468677584617169811878894725751545795675849111325880445480266852580233706160267104027172181039408254895459225599322443793419322541023927441324699463319106837187488634242329400989843459175790154015257594468197898316015463940133459098407469136475793110488694257236523117181449490849487832944730394692398220360096164059466522080002717220966409017468409861469334570824659957719805199253417288642681490196139946016393402620289384414328431011520457383620227102799319540550851254672961200765253169451415615608092642148190543025490283063377439567055149921821998965208587933082019101088907896899260833008727607867264931066935672857536495676355703387476195993687270206089751800660704902595595642747765324897492205224034069875793480831686510398775117001857459868792226484468880939406639893964608848293483886821504073638998746416310188406246210950697861478874526339934289084620496681921313569259117207578827786429874672236127578107710144849496778723409494195133153699557385005658872465516406087270315231743678808275055975830228990735918458801532338041337031917130083532923585151956490543364461782662066978218035742966003481117135693606437612356331049122864903927651886295489423812044546258936839836766444153838398386328382388214183708680669067004899237027899190793927830177788669335993521582394564307812843233442725620539966468028474620706172783097308297561908937615599024293113659661851834754349235834221057191563633402114036120452008595905280407645417115972498956000449784269412008388546220655369027932221594757505934679210256929816581255498940103496613298619947258403197147226404732621756313879466048380481094085909015808290111004519586615119034484820669459894182735005888303867565263745327329658200079266884458895277613122967658894938772441843111726754063461585007543271396575028958348556703059292981872496213909160482432481949560714973313453960345819899144895918200794923295888410286482693305198872588788797168613592103069586573000011506875827845368722196548077089270074745865541132963155725554808704313412858919503940743308432081230647703289596521238406268100574660506502907490969783435666915663626920365158734002053049136208726566253933702966503941381432691257017761461104340283248334624721396758149722586475005218179921436174436270471441656874043466326874783023357687242234693351041367281410332732446620322511018140669382807513459457107124857291838972481667587220423004830173352463812526872108273991714208100029305449882098600455652438202702336256291338526934910696177235820735220423149075353562858480874946525561729324785974663002206678354744580535411204771930167231792463299999938365409282944423515420975786638758617483401514610166549042627035882164908287994074506989199120293992276985292428849396514174534096912045240750715582744423171455440451184690325036452403246072947878347941202673620879782146075674803831812810656013453213750529898297803852053024378132153772201803935618990947169137189418711658472917114704437982000460348273082239474325739892587513037540416134702091373665188874151734923246579726532416851672730841364945653232319491420902269612914770088159526334736942582937059096024280712850732968391977358253140067386028015178901572310043225269807403843337086077756528507840895986416035275602332258564444226442854450139002450207780726841880490864174722205235501628534825827797034839789098300039861622016859013469730243145144646145308986313824875916911267560439651309750246094963862896872586874902065471528153118578369832152753218953195834894701218762561026847160555103039708545418671402118730602157023030486210604849007407951834225749074625231486289698598563391096057904064546340360335006215171649309021740735675840328359611536377258698046444919078930932953622429262387049770557804368309603540095220399655646542202519889697811281899682088578425706196376982168217861890011484617611633315280709263493209037967088110500387622520207295196445556890442264475788646538982421918762959499728313527325073518224385756171409624200543261981964788029257950395651204200383579805450420554340907027342311179887462721071066216293595602408091372848943158260518240195457641178011360628745287019724640887334522050463786053590083350414466290816554858826894296091936597647224462968597738961375839346716034683805300932102550133663707250317655218088024888717696095197237850658643562072391191858207122994985187576521133476058467067606368884437535972267406220284188464209146253966963915222381958291741627599921570662176831992402861202900092276550213528422513706549227099276798605685409071118129833299858772667547454752536158844676608926445400670045532624118776126430580466355496875588768112654389894541429178584347498133886132150626406966991246873993797535540888524839951036940676260304633372543767310077638235087252496716270855223424698204587113933799339550828726158185795380677297078196555808948579442667412689147593634865456696491911785352101863369567006273379334692949689307858373177572644835249191254048202190378014446712375796190641601361536064113216322026170520026421611846070751986082477768119505163633391028915858822622767515581695459627202496374291400609419806320704858412777720325222330791969223489927947777978341075670364121274071972000709859736814198166752475272396343407798859864477539292317937267701520817272235171507113838288396304820629804503492468586067932921484979157332475824172733208127826075936539791352291028370212318783270725616496213223636652992439829096373809902206772541016977206021519826151531180784098810781184302656071308993313377314922187264162236150978196817534115497265062607434743405039204922804812938813613062050275341144397080768297539477896129133626362375293257205827956944791833030071496311921604138765932075170612207867270939130865345036889395805119351738637928584998197231712732804133604873708374637514651584289570801204620941739317424428466507883125059870658007375010833968496577386063983159544975597551745126179426035827957665929858983767019164087627303596468063300479429085216120547696164883375306467820551132821836443121899634262908988476066242891871045063176699327711533850124230545861942493681298255438985894172204751023884228257707018683395056665947812570660714368136746588883539117645986512031915263114593976494348346385236380824899240824239833589051376515865221795801977004035703179017458589413487254758575450936815148657750118878477009529876504071426430230803860553209065288353750414514840077489146440935981924960038167871563037993288888996001063347584459972350226636376381809681356403959955350487042197688923430491489397795260322662405553988488689463242663538291903982935490574049641833061484881835488668527497939392829954811776146298937962718221464064923081152147375217492278586469000313678188742208435522483243486338910320739968389667845209421886777539636034128124170125545810916507082298307251607575881207749497891668238909735592193739120036865739440327139635186893916946849618104143812259449773997708730411801606251154576166699116725511342037295579500955760525037918592039457231027219243425849264086846483896891794148169234039097136114836908122413484597635433067033534819983902977766972869888585332810680827914749751119656563331621434819412598673082853203002495950173539075330057176979535839615829758900250528952281701741290429258027297538648160754542941907478976040013391871948565740592430217855047684592566882128148752448212519289133087349755991176015459414684766595276291269687848675463376307063738582230205034480605275842708188629569027228423528910614696213534239017155030346013145995911218031117636662118773289031892577708234643803222016058756181471090026524528878463347148216144580011094073173235771010281954756139522596331419698342665028887838850073503337119529588558791707415067869122944211380093295841697247968929276799481882101496871819800289691157100602288673161720279888037421342205218941095367412305661064508890794259823741132076170213253211923519527144046672814019204340807123411415096276710265641182796485832518460521371834229849200889491823023948611438974655678735406986178440957725461565321100074830846083459124592719116251909686936151523316631949370409848282916899095962813568808064055918792656516105157434817841674322709625498520619600800903181469086708868773096879287969240901361191577062109005458754988987039922515489080603876079379812450211621538360647713927414028587330696868358126769089096483848349675058160820592344470933459896718859470930087804845059680120686897371343704973585278736652943214940339790253071803131721872421731199195468227285422552611431877455649741536728536836948048454558786220282803410060187392046814504775695590307651446051294196304840461571957455224243364162302138139845564597040999164717866936083211215336041408274637621592962726720368071939977864935351887464465956926151871282431274345430259941672032292232097928967784862258763831184172135334955604363012258612433300910690736335691764440957170379293534856571181613363644165585424190365963168006587420240470334204746749195720112208529745570941836417185811032061148193187179976026849800945622604490357155187040234053094718824171453360578036007515769389555564735270671993225288205743213271305469721992854436390631472534498120072358057969774217623197588307663686208630138546228302105600728452259963549054274644245940449958982564107245092433526012085263778273728701100133554793078161521460080872469984087576774931681334125519670973067515739554787934289640017125612621317532515652816571906410735084937276603042930803822096074360980237454664252352431342006756717959912473074450357239056489505961384586003356026844699396558662053038851907039574364350269071405128582007258195394215055994494738876183019601466501822823246807700993194210030387421967549736668167592763439507646374011517593776148268445627913454245051054344440459329853730631715182615490543339274461838629668391691834319034099378814235059531223033822348870169364026113142023190090165450637033777552259142233022220879343201018623316373323880759176586064869087014908474371040425793814656695097043809172709651145931813802825500514161534014089543744828061510606648263611305156658751117124459379779085565010830408523753099649347120725157122015956536275629860299036577532294165657246939810508861722168911499142416031181698368570080753267275016507901548759070963465563172632717585866876206110416901739636020161760129755350426723399441330584446597351301884240501826759735669481345430857497877750698119342503453616603801996329873040193486381194275721998796702262804194351470641998262091894010897711308793915166730512801196560371714673237778854431655696536122106766675150047840438102410432596755397112829898026142615071995697286756079237799185651491960445338995505932491246305037379475719993859905283740647508872293895842555740301938410904228636581649496049592411201391374496086650704058923113083848083399987487611574030309922579492353993782312877351810668458331332285064829329231104526878063880159309341935887506796944136604044882170922001132053989168400598480187479918756278947338213102469757601389951352700720054433383587581716433943246332588241623199997705525744366229426170845184229321486327981798077388407157504055167419104799436942889922354653439169787831008987927443982033832104211810175842496313701050726984163943579781087098289020625508388241034803969976819868692815156731677247917992370801280578505463204382173318682562009389780502781743935979703144099186205167200610152798884887932500415365675257623765395870626945194289008371588060087015863113726354589882820481002374702927096481756544725476833500487861407463871791486577071437529167350695438880745097668352477453411004848425715842200045403083448227507229195719667652912533812788085592640902489661402043867142969443044251187984041444903639407508320328131474940130650446283588195550342503477971537435338612806037711353404809202854353674745937000251100656654272164795283420776249321126194801323497808436868230362886284412859679702723376745377500165883660614289912110328362208644719815386706861904294484006518664883741645855833104755969394480662573519581214108032894802050742732619303267254450600781665845099779758051270393113039100370890796222808224551189601435291275093174340233741614970165888521154001556741033669259679392950826660353204299544188082805017460062099674966374622518804087476390139804278213724715141219781455685817613908780095752210885915908182336650367232325553492597105155791255568859256339818238173146560466414319268045968123054386138029209293523982724390969596359611767077310748497333077125528879733835564714164358452542451961515805381505094875485915467973867718108570182133062589793223344925117097594659012567135910812675757788386993743062329830692338182835343363900359275095563836752522113336060679438267150375619647622052098175575000356918831693023464005496965988440866592233480038309616540491478185774151538032411820258647978507412419624477605374355522899187718799962679783228193290436987016033658403517398187010313803111528394855001987577130077044497086481715171907638779771416307097356313132356996570566925666459318228100358675267345353345336545369874793373632343860637275266753039734710239245644005813615688843532681494065220548392689510263294498468862338084698945533253023201747262148741513695784098117796258319987720705999742315860610254766597259037287413300127557662530207002249094196773163250990379933492370932496214090230464795079130190942614204434552525723675214659963691124594578726051451504983873460648225944452627695640872551398084982560265105558470904801555071000952676867105573192170808758281143967439566453304092093559338245592564316755253278537742048515516801581776349868917518306757635095385380084782176322555943127627238001007677324039102124856561511531031918282976574944834173094020247886686149743639201024759724517894988503650666438041442725602499118072777083325184654957813772373555152934496462504594627724122719175403186763350549345025011298180183437835859518632998951186163752436173051532945565945587575387874267699367561416678156880518004953959635263127323058031606532334342401383489321642535270540519792971346506163113740023292689723540459441716695671863297682172197413969406119792749704149718460491426538415978191542671000246990561654633620478353029189848631044544640128256361591130532059679189891207389553617331777108216839068588366539548589211067046570273344050627995358664634382449346905066095101915586806979275095072006344817331264824730770252681899896078186015492625034005308459593148343210221014122059836487720576220822840725376398235444425322634291994562818462782738346090023607145289525173751591768422295217998410513634492030710342573874759415925544498774406080802656094665971340752538234738498983773893931572599517185614654139664587673865784712129788717498813176049526001346804313206522017235087365850808605341591076210447749864643493987331608655680463692588019619842127438119672096135867066917666157808470823797098538978640105153492805237395992202916013706650223978425387364956976571713711778642423138240624002448237193416080338168661495352578522362274595551174288531704678367136332021203028112975627102924679842434337025300483616108484582731838188024064750487873585547856855058573676472151527444078519034643908152245128640347547410693889062729327714094259722201159327731748195105622809456044547775170281014363598614138723099320199208913916134430861154842130724624059828594820821243344647737867887847437159560447391577285818752599581334245026816816970436557063863471304865769569120458772104505033889012721448577701290183893650811297737428932317745227730655212390150997753114669904685321509341142342586076899124459785718812372895773523734839514310997533160400290954793526619488157150072192344620210595911363778459184714301859391029026334591187520410260984944142548633896565508375998618031120119167322136038633614261047621641663518317283733442335919731875912343240734433213888253943303487827030808788363456494896134865230935701575525637147254903242285599440775131419620505730559017243145979346493732107683462291308953064826704422678410963791861950153320176104255713192924263438076585977973754252257876580696169575421469784246705524384116766590418116739875512500030501510447104797173759108249519209766064240744562086207487292570088142506224335839741419753308337767963639613844438830948438173101960773354453016891770575403250392877351429483843290117882534097568193301539005150065708009520214122719643038794519503520248843375470716100438059423477618157065589671171312127891609216286265414485566944534044451241427035048647534847265957637338573341630935457124810326390065512697619960506441785054336990379490289823109235929711692185019283099551617248901165907223528582111717617629529130850602792223342084229324631802115079873354289065022749964417767928653347997929626691612467595008270255557286488880992057410381802105155844526902353695199721397865482232509090537061569345125107680241104821233112924595060289343247252559906911878061681478331114994506551010705172134120260837313489123370179223506683123311859938081958748381802222050487289435462712696694862654390083780832113486046705263399284118912891418920864278279240436472875038998853536771614011331449045674041921704243746425829969356799930322710239036769685317332691379608560350765658804742331844284767747231956870191635823576583851743844128451843988888511825045156033727682019351174829323904899258943005117752700652232075271431381658871630489747154822386744687190384133267158206182436953708480557054000262590552015868561887535083727690379893279276329385435002392865514232019369458517862092690297040182662374722475770737797935767624668004201316419260089002900533301564509762094718106776234521161903268054686743795926242162486024599408002656124486524156802214385684637383788172298642852788589152104704517328564897683232063173368975254602525282868740081680103801418569678931541056530152341048304192032556989531593452786259163609210355351906859726123113622903662182669184243477636505252313210627504807981751281929809430222968820473290353226060440202474296259455479357410894299516010217934386872120754504357894696127699477676032563435754477595096805144320996985253764028925453605955041986083150930059405288800172717041582785727080730328281946644868907699121919918611324101443194688049088850748592966786824728762244464552812775811716041013270475978586261600557470507683907678892626552648978538928417348044564603169455943598462569880600551830351230140776668747769641166730003105188513869311697124984889518548634300432403506642883667216486533716933303607570949421015658398605121030857140346403136162944670918168319644701160647672390495977955966669755990419888959766062869693069749401684361447062004645660356692618170973767491874996687046703398475072937407283680883631681125841259030777824215961266728838963888813361934922234471603408040614822884155706633696412363639330997586461432213959107973968535117329124998998782070208626499125430430364555649647491960798808878466546701535992127169020161307558979060027781822714205979273624925165496869486347236461592091225215589528829404389599137219129148954927708190158441572586670716374664293869246183976214881299304229024053839290222136607047129996830019796506707150300554579849641860962833296494069075641463568154420676523802768661428870365372518984170239615938743165957197592171530284227885651008487009387729450532354945631916708336356239131202323949899870196604519745918357627936128990277917061070783782862294492934619180381422686675558062810446152445698708750356154540961493934988025222325963270008956505780985774800439188687915184712550182629591466981773909771074300975663810343053575613399856490562795406691070480824129961083492708872296222546036017635808623555909859581914498671313638557705859279896752863427952469573337337306550820120281875392161670089740832944490552307441124804214757616943422223156004267936622403919001464892272265771751350697375262426684408066690613967109047041295242929745739470021512508206965464042471197575431561996123245510266189780863226266621039711792912960470922033000999782349739265067372601898920890183217967106466778898199545480583103624016964763681679097112047640282767170643427899394616746802191118293658823077727157043128745151507367844166559975029656489902919574811057043055214279596505050673769630156065208127624665299058231365785502017014183148083955344717209725840931352977865246075136848233462622469766287449799995590054624400553517396323986481403721076300100073801556615782181706265569418022261991155673664050798051378093921204058650228500564410146047722974297365562806916672372964550116759811984959357013520433680699487161152218215446489560540926683439180360932516848272431966596266519693958478220325123221397311946097523553603685921531353123417656845136467899575906772901546883610699662472590434960785917732622006686378640664195324501789557332235617566215255686616258503892839026223414260908992770721767335470696565228668335456412740544446368561886863412406912505995806734853326898401432159907024127198212346749294126004923599687753585282331092950971120364359667803140962698628731516304771117057274232409114313976046702728634427186325753340105498521160021727862897879448412552510706656775015274629936077459531331771929568244095290834316364165991599107933938767029277460607554297137612474230497352859722706583725356366242631735603480449863887553596099556055994370191421757461760462566900377751122764751839928040200774831587687534255706096952188049556073992793180057320049066312006312399525515222983068247314674457337692995259703753294680027029369151721282034201160663690870800035568146986519177947892168119023814219034638227785390387471267547809445366021452707248819975029191266322627540179164313829484635332050550007871808412445392415494566838221133925234045139823574876489901745302890599307364518499461776124783774089449597445034201400328282543808464815396470924969379618529683255169133070754238005033637104054271972755765530333462230935898965692901100949859876755638380632593850859429818143686660309235635542281911954491462354478476976428962909322093262570138557317795648355701603843196689755263192232565914394280315514814521260372389028668822962445752874374412486711807994162637744475438323695530115230387855244406572959044543222230076257329970455111432632350178564870198651893435934952725097521165605630488905107007924994217063267658137574568988191189090007176253155442713808501809407922650543104412914944050907185055818116209782244784107028162910634858028264841275931788515604346303328993480575149433405949272145323541750265748910857840448876991595535442829172083712094768108146632605209811754741571494857157179520198553340931360446421081430250601015249624359932955849126776198835187860456174466811503831982672552522838574353858856456450658043802332493888644801261584900192253255408458394801292198181748712908149978346343888998137973354065505225974571249824423835156176605616243121404722306335103969369443390004811668740549778146172514005807756882659840085711550429847395507209305997854479054182721225399967925501666968156534458382524010482614224092306706969134417517342495482049218320730297134410497191001584690717644542115608643970858163103614379587198825799608169182981963676597164274545321433516462330884078118622681535729643025819368203780908504929901686523765073295498966059791544128183585374139864012064846935183434726845940148876243900714610573031180337279649421353576896428766087061963306516312795744939053014181497141639025076256449688343180780828114707073585492784836253902916243858820839494000811024301644697131528185065347627054637009147059154832062246089884683134879708040206431835158804280863228910722728892453133090254925888111551205695748278901429150887825917214550041976598128519531671778337196060682006207237496187885043651129425401073180865019133378149600758980228966470576806685527379907165754506839435696392801516679953185881740976397219329114582805989394175270691405798399386511379747924463501995679856327453577023380106431354592145740569595854203918597731990565799270740500326686072789340997621333234393765984594160627095167819573243894576797015049032209466038334036058229134139961554964395684885534643549998832281906106942469858394714003201436154620506124436412551561250511116204717612666296678016096770241833908965368691758021076121305299608264655886084768615149532287042873355939885669829447850876193225439317802407830004875635923400033876374200674194021138077900679235820364448185388277880028556177703000649068203098733210417612342660514758108613083438713765699455934780023028036032261935008889120696059548650865526930636056210011829486470292942049985318243965705520367779527617488937353391575969694390252326130636778369199628913237964781160431474936453129561649779759810421512356973945547291858308477645663318952701576389131946449267643064604539860678935873848606549049369433366071359563055460557744958567836746508759635774482525793589976274127991817007331973580667090581226815332093930116578039335562599115306084079630220558777174056200762945025748759085631350357245986307908658406796738954020727471478289295071292077384996226304703506988443357764388347296336202689034713098294889899769350324960450799944548968000419687939329650650572473197002805327687557619688604465570382721054699322497333612812418198884931551875817365119941461387049273747292114982714789816414541858712845970280861290294195550425998454823751871730987696267268149705729608627178927956174266783310076753414220487338486321486385232373620739005588316001855288690101604285832155228459647430187743878048214833601369318002492233092335061033036353445757049580023882214670075634639573112130356880478632774966141341918803628252176964322959130818315746209787812938520442697813668710542455115101672571514518907173120301237611061745394384097370001449370911890407340080806101527705916674947722808206418310898083907223717922422850580439532749650921224616795507562779463494066520480099743219728995434454734185123052682653665484468856273182410238026192774878943014112970495699431531871648423790933185602730601119682500183084679092340566134652260831086598653006428647723840491324113707247278973407149499256187886275057312949500640901918106946636168140588153202850135922388412814555275960221395721662754674591521340008386165758605460702278832014057115923895349132506311649853743648808266033111218690356064856517829651758748409576576175677343319947570248262131553503912855405474543350288645633569337165538348957293327767534200105321704413139561200860315718548289283266975172129065220584910453863214028588530856260197505213257382946001006975987442482740694327311555043289687538127092670233818982332771553899474093051106499604301239970778443058904557669283126969408178379388850353967276820641749345322623019295090328900251248958321818783634454137220429172229469064043894475482066603646144450729865187898141437871703068409354468328949662689600491014489704496701988396017731755827528822049825320344888390160307986974155389098821370166093151435646168070009646854003829497056535925543814527718029919693238030475813796828328650742458106898256598948621649037022807175968196704520538163836037623498818361504857581086938795650100224526623688454021533938884561506971377339607537166313741821089746943306091951413188980538141133613636883024261972053390111904677386788831397176412635911069856074559845254687126804849890149500329351586366207357176139473408920950800561869326560929405488267540212484074115534563366565762040153688307727155362453479478613042997119558832219856965773482677281143026091514722219368252053422843372997511612389462703829008761687799867072059802370968039695715488958273155094228614506590955601973950790954158570610834731424167232137896534897626712706271149393949729254909100143124807132617608831582988354792473705256231975852008887221968675769849115567435088270914920529269888554552084292047579128120718090869255149764747326828029066636544908776593636430501369032054196432375997082616106369425412631466455541766050678321351894713393816725880022390152227726194851200891996728112298053194815068376262552713041058810441563612203951016857635448621643949510925863795901344065481156923732112375918242036442706618845995532225524228008835020615787919724500516127939707110444129453791496251126440914952357098092099024401895885142995563461331329147780928221409617566013197478769099941622659460689029754203842032188002827897742766196578382871165566879617523371100408432841048050593532634633505670019052909135994467207435750274379777699521608986144754667179773105479537933157315034524640606492800350425090595298078057394463802306411653945932401616840024766201532102723878126272871494002782010638112642193265500927286830357968405877603656367058718815066363899679341472058369779112652371402589643815123376667591500623041269574967651545755639830468316050070350153603713404843221833838116870450205315160573057505014447499968786169769915282118548708253989666354294241773903208534285478434460685872367578390773036923074654822644882746464651630358778282352500908098419025464951314054795006752686826679787588063888673091779543586102388558510913128855228611268606565519644493005698851163804099397499289913016022340314002927714549767070507539944811624590037147401310858329939618034046754563588191679430965582807760670398649056196997128194311463092479057380099387097578284950388310580588886873556701915321328273991538285661680094886813037752706339571236603389586161105991213712378182165413449812746125876981286876188715594970518879758029434329135991058940323838490034670039075898462580396049587710286906754695639934105789130031543146325082664032086934845826066095638486849639447325188201184436446460702999289379487463343640429534947023450481345286695694241181467924408458597959748024920555185287662667482544295379440466264313227846043545167858998110850009022769982597061122905187088364729863397010720758360520572012135559047815749129112784732150698030721473525441145480658735874152199884764066764041193058867249653875560149783851824092758918976276269884853496975373128799107827221739738540362867088154457646943059932016941889771870979057368133769363434852300864064560977020648349180030472354283199805889067840390468904548848960014435878131897174378073987577362733934635423476554392322880142953933234846576735312853086032070773526893420059142219852761482684285188063969259358877134307587824667678852936259382558468406313647846239152229203830936574000646797823959729894047886408300628934916846701497451509823774314623529669689636294444449597059293251224951142786217780343826828027303940697258772534361811888368643406635739100762863383784934764537386594728262113390936268420709610330565243377067222908342579800651798446267257603387192598680878248607106740255951027863870412345042955235138552313695243282699069777109593811030074890575155063030216005003931913959937633746831850556288251940319387035088945778714820625740751387603896553920842793764278672017696512631205683524834604579188560548057103436103474968787466299587976047648932933656480623195032356484934193315902098442317129433528155810848553685425900454452141632582192289367986822206845061203407327555481600250494730448348935131454724058460235992966070017325088339427432386315399081366013336954642081737793976977171532897834980496500394416811366202967034351136065521151644302487588417789883872590735676064265819868009996306033564690300857440548633235716672059830073998194410944245109104385031338191579634991393283281046825291542828751397158335079955414992041017293748916073023519277352915932868716944518951536493760334476215633102965611978114287190370178970539353367770049951218071644522545238538920960566403513708105987471642844532658919893498398383757780348650844992223040001809743282613651651626147811087686539186935599774620958437161063394602016363337424266869102557502913843702761361248360523339524941317285054950405339955526141535793068817716980562977643550694403903348137477394339278953376478455641489278668464752465442533795145097343148628118566635443589234853025702121640346578021712301703560083004716387954992498450286865592914096473561502774519828694119532964858491558780819981173639212868587828229042393345656274935978716878733443740824331606741232783566083280769539306997985544283518375115561270941542357259088651501140305704815181912047329571971565008127313987741106494236927143099049721855593878912381473909649129484617670096249515997865314508938132130298228918128180965257120830662377575975201070078864046701456298888049720735938832462272227877601459936705606178319242691281977876003933450042220357920111485264632561208974640940497226321087406258777457727511926086062988047389724816981248631296191236185599965606500584874126205821382588265965663129383304491816481700328682732855918418245452497490747864135134283403660152562349908160754371520272335490785770128426836939735816553210459002963018893254961466822920750875327082728689236480308168137935040426523173101929649140038431914650735822750691131127341822817425790905317526962886931215279133727832392247935865891234122744857298211849032357440338602721678836800924420079674109360215772207881900299904476498015418819820156717604960538972588685834154579909766717548240105101741297842117825872901922361796875831477578387804150749986210108560840697047415316359507080313508953758096479806870012820131283668083094317566629802343540516648936589271280593787628942756483867382150576064147638024774898249901039815691538810151060885983903383267210668077493057407616620156619191482298973766552988661662737466505207395619299248275397186800378139623482399796905481347032113825121051443187933581842912633830552697514040527651700538899662084105099482252321495376483396845251286293894674584056377241238793567466113706115518191331380367427762287699693524102216786145948862235677719843748072353630628728675675609540685834055074993224991895838025672717209184175778259606006588299176495746670166566038253444483553186338748693324539935547229026163624984315450999258315917697167574127850470933733027495589476791143148328887570743047322622667909399082612696508777504889561454334686738140484755887434467171108084423764615036327794106362576227929026994309476170203614224290099840629855891411244426391082500176829785522040817980790472397183804896089130026146262012082606154626756779364649718343398081125488768864598531362204909864443348471050996470210799039329492140168775668270252769238867707471001900940691972173343418080610297616979090468448766863350012483039066151488496210267777993812588504959718822809350545482022430979741325025674650386436764672533611327420623872671001006505643032251018021827847889938808377931768085524303286659063562803127812221513764321432504098606443736347287397667908746623022531975488957807200524183662416309444502045078805317158701246549643195057318049144141195168056893939489469514135232426845761909465689328088597894968739322673268314654213095457335840035174138258532540581849076253070535545517287463308167704548095889416377041678592395145596996834302845588966732141060474058828966773814741701380484038705342596804486440166502571574828110969735009542071692441432978269039897111840630397660987648505372090930389549580966492213053406381392500106748534260443497751087818268409158577311136723460394875432080760614760963229910233019487921351540274386032377304598007150237051935011278518071146754994843474344357361151393820599759615601147619664770570138362082056691713477484821621990998128233524713756542525969734234182429613091828904197099397759839309610915800768060482338886169640104907963836920749712110229439435823926891081076254946535312767683604426452368796012528406162189751973512567419145864237639553688163500630146675491358306645740708050211359046460739199760343927275530939781428821604156638030056600998587020413525535604214767532860546444575036834539918027689956190228573519016772669638275311755725058343507744249554802490921153167090273026648491522953561017664275371561516323461673706485359381804579701711864394499315862874570798858437582378888078399824966276651022663627029707331888415286729761496389922040746751118971952332448915393030646037400791950064059561636118732077599542403737879760576454528517906319428841527047136849224950760456173537755002494227941730514813281494651367404992711314823942825380303173081433541579641174356574429833499440433883495932727162718874555853235074713433077922782844494461816980398805694070122883349576527069554461368198454626261995556714654773089243007158399957600893500745922009138876462205695939882272440497366981172612816005865203452834407329935003870838697501858901873653953007590996094928989959630496099179300485433650311694080572239399022322253871532574494194946999876372149867414100391628650716970670095765972501760360369986577884087225371752340784821054458005690725363448249557907297856250438065756344253029747305601190723580413757387189455539771622626298104834746674112370576748480966311347837298301224380009010997798354131667443277358413753835653271300962066869113174615144425991996699633470404543521257405169911196599748730816117329713335692886551509243231017003039153230981196558204524801578407878293673832000093576917536027525794431559771369813729771301673975340604403796305971113348825678803104114883523329921912630461821767684189062888794964938460090396910561156945188313037384816825124628462047313302303434983761848879566376160304785562892708703777123128011701325967076883386924283632483604079806865193748429240369888518641554190059531494418672260241692560281354287863297981500943239734558825827977191366744016627500560613641685775984635384533935928389385871604721887875045855206593190242424614728738291497086862482717008779954593849966215146943217852458613016823510354609717547170283183496171607782460585479828259365039836634394834260939160447864126335612536905217082052994662606810207301746182621697339519869254533060543159355865575279076781461339511873164011991068905844492032300801915965976416735412104404451369760096117885550472324930034421170256489104047238481102439270030270370326244455000017602063512862220234886499602304212283931033330112569791707480548260134735834101915811006741214345338261602395704583825343652531107854455589383848824792227450405888646481120177650923643355749162936063748656231766660136985503951455465519355833010807156707558542609789169864511926175432459401175743991493659477856720937131162753540379721675721915550593473310066216553981467895823814316879710646105272887038970017863656282302707148392832609641759511551700893536089411224131610996024324007934819186830269653235515784849421585855627166356099969151247084092326484049082696908429450889210362843726262535521951106831249503838928711214800300224132098397671849744171431265135243886236178234069635695994239483357619302469820616781205843140315771757968610073026353801693825763791526572251242471244663092257320002508526495112705592041915892795191077339865117924354482258349032184752413709710794813683948740620176694092442551951063645566010973052689879966802269345259632870003404576831643966980697887489466705171233639406931997511353068380717567684800925729346035711681539599409745329580211694163815644526036486894365239796650934836258023466163529367595728484684542559735562693930411365160370539360147408327787697773634279937681286411235961177202002941731656867809295710412118686153545300793524461641874039351764209080740406657049684141806102130732112193972036584027838907959658695331034793568073209137558048601650012641971637862404957203107724784885815720956028134452953632508862989370873398057485200351556892274792188664345244905029666691468648693711441572597723709423014420729226339384534330286290865096326662147676718119981498588759555243499580203244161646166832198865653856901448439207337167146884838614336002840114926898137736095544200915597629003714123162561164253221703999294437361461813839433732495835761754392371091329461771587689609040875524778871292306211076087571055902245849343432343481248831161096509920727635478062435207813375478803587824161857468695313064872863244797138964978617902661784726854334122548055995733660849915952984674573394897073767914392007660328164122729054943006975757407887290025500412526818872986857147477996874975055272535232740815095759859428647461203641216294676821736149424680450676817485456157808622028568886166085551462151369903852227754608684212838385494059989846062354867429760978476809362176893312752305316834385076087862704139036607658835640353850707083147977177551281597500618135027476555964813226115784824712129661409143427079738995482229436944006824799697164616979421007909005582228936550800835892352614462482210224073559096097248760795387016180990037871977170634647696103172810589216304879864462248676755961582386842322560461737773797502345893421333371762926718287118488635366525641376917387049727313014608167527106186773208561250566045552167576655189486263096998553992137411427975296200210168756556508606172724220886267352896488700549575282205041992118466221789934830731401449858179290153198250525069149790141829250473403104283525401585930036038345863706383905418206627191982019690475860531502239287480041447987916101778178498962189968852590936861775828338599547265272621169239966296037440483817356076530193147126456738790532636761619769845481826857913642783772323660506397722416536588652645871991765263495524661715553454240959964612912710020993311498914051321425834804485719313271235876928841924135508227600668358301106067803521902441205413610717673631166061274061218371838976253346624102679714118091552159083926793978001569003251094872233301515479127835521790873501653810292965939703371086563130825238684336324233086887248343336885994903216473890072432377041881822541276534635334402737919861453218115951734795724756596443446618001186271194470973607876153195330106883044846827214696243195520775886317727385967608067365639960190655875471836841287097521834242816576142375084931313386479410426173026585259271088747813186826134524447833335913321382002304703627783392473435048939598775706627061466700600973154945585536395033434360596213128920700597085113399120764317214435181723073587134568342156469123785830599258339554555436970468325137621202284583110479473855179265219193738790975350721606741419907282624650614747049404293424745641844275488746981297106820857616569219208217397222090118066413965674461876120363329958200693784214657471239141498295413336380163447152156691096407611154425843446631744371810926124467439582910376303050959823931171187520278032869293583371060944456386029032676120428866534038128334577218092071496232152816122000512045995266477384918223016867098962414602583118306556116328790973736526131917879242782269395026300094006264207575751179225352640689150133657547443390745966597953454289684591405393722580519752456639258524380196614592904654355890556367700027898469588427757033326824563132650109465187052242547037223623347472426107435429179555566696272360811881614728990767935111480071728481477375416836369106387142315003075998425880534912721508972670028839665441163574554988112930044188271048820132010606176175184820209713414972253482180490579103698614522114323689456009284235199950747016737986283509512340467169588331666874500504183874263901848101157899824759154812822346121592442871634686593937470435993813028993753443398824397861904605954979393873498642373870552343416801873152700128749601800525107564384391749945339125037010371685763364216885309304684595410230611561071076970588806252762541466341571422979184010081206665166324249899057492498445988177983731791473378039528113131034975529830327267058941004868198558926591181411352991073887829653279030690662258048283771129926977098622359834512072957093536094032383956745281369903170125947849485409323276754546968461568221944573786037192547255891365888234415118083653758850538095711593305784200629884434965586769258962045106748509022686302586190829435310136284681882998598608879401919848421622047674975486234465768103475800623314486406144823646945803054152408905102363711662184412377742052450269547324755862051384932416545224080347744768839648862772531215285832001007340039404013458475246388772825703076494531547854401073173706995975073861873679661585383907043705685851332760961040062666564075063424102162709028824222094621452763772291779505372344753903252531380790329893478548267577493955141585399156658898949700949061009693141601561969018458193997379181275019287096948802256210338407015901695996396276210466550281156346570260739188752669036662504639247166736826706317355296585222644930695195521914588025615842360977371874977422179956204113413824512821207137196753960814433428691349565321302226162467925539390678960009880337959218172817011994961886698420740390231684110851808468688004758181938923150660886602807156036265338620364910944328525854006049590820163416022116592665386568144504812452103912701494511093837260176886753741371285862178363870465195541900245726170621372953855511366539028757624591762906283575287559372742407253717942762626240638318308213133199848344254387360596775178266285184101371631596026625721599737494105386714151630541476532817023891251132191183112742272057682130065568532627130118784752418149302612448560858917591530804466029775603097564691760650946206755928687251676934493108722024016484339491865007912284833657761175351111784916084795041021729393033544445656644618245649827383959439783509452223795647173875662523809772447014033761754720190513458706869283367982270022595640073646551057162455008079322463054074717777232578508554334541550910100395833232270979802900712806941695043757760112138243507306953858641114854615216176929168632511415729905252321070692932667998190880321759197867600441846413164357689764031185771771251115981436423740539665238699454538623344040726142091977928035675565360193844775329829759331299604751210873025042266570914795329285776674297204978334602007692963737064867443133720175248736848030597798303174339136591343730548933461210812886777700985557259831255970055187249174685338888383195448508142113510876723857700126836815578412083586459934684661502164227751126031306699342550599642884895393995117070702755130481547591696894266111185109606334755133455313542969832505298858065236642531598044236183242530504490771977388246584204461499608062182339487891861285136663510523707329279798741148993444691324556867499768445928375321267927203518397754228847461459280314877987092566881397887989602887374167694093383120582901790337883226209435323883763064950734052555639518652383696854984599544433291683835186449750359529843065039763641474716824453211385044873298943595171809537673150607911459221458940120839895050502311832125348251869831476266973148661365899969481135166034912510005564341670358173076519862440956449571840961928606559023844548035650881391030040836359312301606276454337256578302041618209839216070872790029439024776209541989309881707669805045197360434908050018489678709317992608879439861129223051668519390228675063227026448860580683678564563922479393823148945088776712481513087074813698765195576210580589041658862776965215890203694500659297693243661510298720644751682617549342223400670902289874671295290355350973827829058981945149829410145433417038259567763684783788351727158296586544794045911819395484247418376595430026552814869549470820924526836895755245676792383027962377795214341204183510154428043750190695645408034392970678664415474411757662776144526543605580493978049454496959576395341887669559579550824103249741669631814074028813994146082586988593031883726868475489804118934612501631610312724269011146031057689014607587380131085702070300247493962935374339774875270327138193163447115314178192409848674812893064075234225151655172243180620170047782899043533948929060404433079484629156264558703949450855005965935526644991264723453509775569874050384069773993505879691300181766522652774821474223626090136497242680427537939148112892505258251409137022137803245685043051479374063917119919564875236512445077453010510961049710701469056626264699017574354645344995956148453462384915710806187663607479978031858985205959476776984949244613932449591879106848199903016900785794323236823523256945750144824007969964341533824087091806945218414050523777095838787200003637156718628708636812683527795221362872682361448361873469725401952027649581557209093142919490222050734936139267479789495714928333367836520486309210481697762618272139706644822333829242713313475175871816811978432619277490695241938312216149478591249919297088689317370862040364831067482047629752418745122575804277581529047207188353067607942604062382965700511879229117014979222249802029168526392526184079403652325266778218146590002235008072057867221407925753919953244032249475335702695238019894936368981488419625904173514293142681496020119943195372727669810769014784284597941779147121884311752182140428827758100193103378442627203949659392580673601981205994246155199145691053265771861853593705267327564418932896253510950569247366626318150483631947665700530553902773317585606177998544872389800064835388902786634176751775459404676740409886428907952569990098540331079600350505888887699303964336959781624620693637531737652123115752060479350423158825802172506926977569433314602361292050463184324454066826797421211311660260663020054553635773205499940714757244069694717499765321331493646659544923094647887138969754187618713145233813357813090930240262651777861944757922129137127757794828635858189630632992153351247797145263238821787459403800799040516470888375278974305865810661696062339927187321689201214693038765273645382701078332969192680072164837670928510375689306912765139152498933627192688765085485580087405381455161649775484700447846564650543673833791869286365527746367366837795890261596065610165271944619694520735938060808002617896183288324901256568797733981764055236429794814376924001354746725753333049264570902066555771321831405220420914944995340977364358718126319118929178992107695411549915386693507521489160520074631990103946514415804230786748013638496447289913624029652526373430192463168595794539614511440673790040809364146860836409255284044731072697936634454201657476681745774990191319420095528525187836997072175247874214507770214825088378861967150969410811130583579880418064466183728734726105260970426722454636961092916630043031334147893153655852737551545281226146723137487586058035530882722241833735093157862691989158880084115427248548090494933966724884935176094592147679932287064156316425074280132853039557300355585849173721565524930803493297228394783550457878871232114363348426210437057039087741974909821442420892942136741240473870381573585519275921876898879529868893268834830136056641601123002124695968070573370123643710101647108806676813025322526026411075199742402737149786026298261496543468733631367571907320577986243756710338529803224276895793061336166095605693652803456734814093267791755299241844078893177667726243584608942792133196106293040406085252629173461894483292543534344431705527918037242278805457782245564281592811477901552557279179709162534154330873022341783160665661439940896335584915232238721050309001538099891595641982535457137301667771746156318869652405567125241697487140240316592299938979558012497369905946676433751089134490799222374498651402079892492341560470023987705996111838262404455292490543525561596795805262785213892627881255417161004960748363654861018954292665926368739881969945866663821051188393679211096860093381498948966600724908996155730656024170478706692625775124854421309852174105616202930076334995914496939566632725799639430490539442378886038685721655197370964241342846567211426344012851020628285481823525626471484301612335058107065530426490521980805952797095241736309533480033345990067881011782727846312331906942477233886938372724274627705474456625845364569958498068110838989903094863956350858898796294018600765465087344013510936747770910263505716321075942345675762734000871516625615662863142649140291648068994856670571154571616981408369085392845615706480485778337175064204666297719477136640299349241097425911520089718274429710638851801974552974337383650650214651388437236419721282419269441434450059442953755305138034470594204699124277481310438283835704491994288469296357746997617463316627758130420028863195667727868041015782081278585613948466466221293811852180185125131414017060708017583737846053870085377440374370304673518224518171099457433778925645355492605079784122147095667253851061665650448917070741851450252680575290372143032385954937533529532987449676865703540427223440496462116183681495560134710834182873914980629313919780719795719583384643943953983955310324651609770596158001558740170030921441621282395871924737213349754844890658893806244418770025893525008331602976134659826446766573113633085469481340991222514470612677341892085208542866241018483347420556275312274499691259605199658999822371942254663064943300875616923338528718016506267827335205974678446260968095486321821134690975783326941404894093113215294144985761310639677239328799251194341249049916346579210603023210308485451604990458620642432341955761313337492202756314568283027468103326221007764401080482716599257614302971373115474607265083618507507453273351288439189151584541336696176163496504269980879489654531925995377268118039719574286746068831080955875221082093891163077150588106987693286325650406250609816783910354357974596311791311774966658851250319487398830483326605422670111994645697987677055431770195528852685591097555663703381564494540554371853069672852123287891882132677280714176988745233230104857627422119985447584019907110297942418318721670220999975983746898892755787195454037204421853727370730161574376665467067156613996962611788213135545888599879888670633219679480034920635853126052618160410164837997944689963386756521454543437489773182162153105454226390542307564101372341649153368692856250027949459884071928942976792732913309491753742866159130348311116031769017386114054135923213747354504453137177756876201190004570510389764004225552193351612593516817623438065613719446161356341678011882340205225116648716204231925503864672069445380152024064459557249789748627393870258246934291946757877672158129641340616823490914123198725242743312529182435451211243339328656975030949260534252275955006633437236381964867039224337627863169807560947046794814519208483040038103404784126365632518325083627788853410348208432730296398756050814637518668230432141614623044868155756950552215771641065576481534609853600032071184248578018179231442718308814549313755676647303592356954159959611457746362406238215536688415372894669885262859000757568847297488870458886523452189382617628258194386622093037129881232547711473899508708729526414574827043061241886617344621583777838127722017748375682518882879420999002887915842114041532943892326901343125897054709798792351140911751659800621965338076733185310021202995438720162309139264248948851873215639036412004132218818552384237552407236974139358135896755256938829946424115394917482195493406918382733698299371812970830807321525139582524485428595723722963988011507577109540507554546364837738617920345262876274499186076444791476698531971148622702966578483360370945543448796675491287283233823826932019475847440444596225653595335337661097009365245654195449970853081199670497821742141548953311149990876407775705690859661680582570437184410927818873173861878630888742218371905042390920748464500741605940242920872513807052619691496072143361621772941074617551582198785522226160025130904845712979170176806273930171734769479335747289186126945357707618523714890557386140391388302334557735969899202495995029295911226373858118081395239217468932784310811416940970208786282235734118394002904861492997830439616529365305129575468564366560684270474166140465120737581015632232416869325175321638908016960355472607911929945715415032650420733276149734876302109306125569541883420181438218646450654698510415536833506676616267318851534679147512320575335784986602879430063783803143174997475710560701995481462636553065690195066688424183999858696832996750953195096738658184144294841245010586708832693910616672915863723429736872229405189241233423556363404508357505443345486141810524769244938133041883618050255069387956211421888867818922709762532700627355864580354059251535285884416989353078023567326044931797786756891312835951877040744369125936215041870498870120131715029502753584919974625078264603612445718580084260936365124488181645499826859951270359715432285013703758131135025547448768090388956533801992536194506081404969060801147117662280861081722578230277458437889419375309065593651375127501672625193248694048916768749056513435642164861222293886815305747168518361525501675856942569541553464611648183289923797411960266667260741667612748245380387248155384448340715374706790486003979343476588300027266615024674993839945444310609210629006650504995769829029897449899037628007244708083268337070157291486178997451695108684448106531906814369932408141778926164040909418000771062240495706024841802446740612426006065621270774879080037432083468217991756506233156642766057351559624859625829026830832848331413732386160638002510895170769407063077851853794970941958869792330504646525739642253863144118270480946174194976366698343876174127856873063047470103860337495494546751594774012900364901030229442849539291669530365389121159751470753494419000301227957791276571600350849738352537338002973183877836989090084469998530194130929497805748403216440931039121635715408446181064381078360168586886889345653569036111991565204822774832078628663989923668340839983343332942373983330239861641074251291226679454757556470270271558552254137638818890484339937053788931250488466088475033081549018819315331434049281703411219979838162297550843876890821425958575700851459785089548110632899309962952117676896011751512557540565726092106735304407345306564251353081230543465654476253226666712230256090247787226149582209505164969961892200846526300209063613639401421789445069709747280653626416810459313284622018917101248274232456501684766400846801067069782483520904140764251737688063494744531649225977459764172459688060131256094504698600167655893994120426656583341136467025908465076336836379439460440760045429806908906010739700419215389557193427810463479643854953150160227474835987443114354325029284949943235316548130260872249903918852905857767487195784665232029753180230239836936628442690474050797564065313879730666159152256812229892563547635909549450369568683240989595848805672277091549828716854968151031847670073706923556134644333253880937719214745069794635722366366131728341405903602079116475115098933747720971207758709862573983153685100036463471168545334170709688060159046885687861097729508692293220616837664609627004122292453431787687098496837246915586766532746795040853708870818740834115708617260174943051059116167147420483229703428300741301219115730092814557800767243599370502856820638649685492011622161960706560398187815709680006178802196661400444332637570487752136295755416941637675373954719378796679776403251052342736142952831539710165881011617866693886854453383565881950981806352474376048068898146907986816666798012880748252602864643603796851558228242414151839476209109471137677884770132789478597368421039953369780643205844683219383187885654026524045697477611772914029908385585756189368516255541435145533911646719420062318196508133359143727198124478788220157308228064956885038376169821048978558723849545054116400387894751993817730319779111257424885748511517446508229393259522235522052709236106018842298106967333581823695100578436483697638431503742533683398060559622704067522078954736327161404983295312079703605886621182862832758196772224393905784080395893701640317369924484306164311700698135638798901999536566691255974789990421544873094167748925095796550798474020950704154502778875969103766842804332901697108459976263524028507502218268740196320140831267446497579189891010436218872006774968824832928530676239681402162439956754747697065370027511462216142619427359920394627478474937219527918386129073131513701997994322224343490544292101299462521748331216857303988715882596099627182449307971354607590396818652517562037357516773269421157829061750113862754090383270458722602596213429852010176519883949099993154799350794832967211210462632778250641963397129177211465187047851675824081167057540987187370377197351636932946120838293782357113642628177610786068246140198054716701585207828985723945268332200017762710936332333215447533460902960931054767246474400865562648934075442551349925414654992045703822860606306342894728981791876980206754730897686636073868423434745230456512054530962871739296463163052464344385683368835609936247570546217141834561276631721199775908862268436130221782748025026637305071728573081952227308323324121674127477389762771789894864356189420451282466191916994412973084806620958361337352344204957233779212074532381248834558048724878882556781587623758380728314325396579236532978520596383612207023004529205158164540071799190883409218974886404263878387903946487021468760161098492018745558323490085529202332901894940537558595980140391831014357203317480703368838946292558777815439009277982190841211128945089647428212432940048747934845674440221659241080946543124619288648156201691730651004396156592923109928850713552537389043696720349451526213253146660999724013850468477648703556848628163950150568551252721616185510585910960621632957295402018793149117978776106989610100922875470224109800536716107470041448304735609901914403120158160940308130309070424123930038240028348998800022968182961601021733560583857597390382759237273291380304962220800912287421603168689961289558245483096049773121746915062526021294378624845619703530231495095839526968599761071807913982434929183314527344527786272384010634599366218064158003528415115409241686409429211882520373524227127079160378956118081000385921660153436258136158588033950127067363649853412806795234180674445866144668336907205200905958908028619415193199511496444256384228064993310742296258593512800796971194395284352717687060797490789929804113161736026901724375442208779183796964705043772525084921041663732205487690157247219653074573273149671144060052395576750730545635401053678870896800758394115244777950169246353528237083752783176973111535937036333433520535222346241850036479211322416260748786423954827818975979961492520119883016069081000731013142118378398024584477732536293280190663392923161950439930675167549675150714448702528629555633151135988081682217670837731149262823341426224438069703253483893769901131816004126658551258690343740519914310655048331937968619029005286640569342772213212465758486298910109122184636775134746655298958153960499189358492023659026867001949160442286108414303353563154461284470072138947791706358555444613817313317874613924605919626626999223623691986320485959626390122290019237408710685035971384297502610879012066753449355608677939239152008896326753526583145458008193610569965101710344618067425247371111427398237495165091515091464740378263374650693095513819544612674243929216520963610046939515507075756271653672907376102062904712600883429592188865712812757598230927753853067768226723666388231962430276668125703743014874220625856210795212694232352607069466457269859632153432652731529557596861576477328865851791638665223649131313473999609470295442529887009002516658088559947704658360454494462748381573791590762426912926446458191740808631665990516657381944822846022888777393741502923023821093258643336893532117228886826719282250112395824267155505410891170884549859396047505328126377634419536249334961941747509976402903073388888786883066865495191232997611451464852436296542903995212915100366197020879125494388918104323437054867260168089657096925749205672889578186615891651421476146656341642172860279827383563264987321688892154712560234388969835010338115764867558517045871313890387395447589481121885828802448377162931730765640955938487824023425351165339267547461441794408374301421833248652981737639581815768388004983443435666099958652706330114777582896131452129062872666932619640957152420815235764997419076336183223767047559490869746321749054783780044979760456526309340097584273854550171268277399685706231240836345373278542676284191315949152373849906772660724528972785040716364498053944028894558845603899959697761627078141482240503674397224846022043005950941598945192716657747259977517695811993882916512655822355892417382407236340560391388725648328351222118063735587388669722636232755606465159412432556117453843380139951320218827095820393340709531182512243043428850494360675043605938530251503225422398402189200624584594830193868939718511504904263773795462865546152469837272669706595216639144268346366772339772123620981765491060429261413105012394825441523484981366900861073834916945684247148600800693620725911070281436855999681544309705392303428551675251404078022241559715980506127869709218607032202740847278746523189606485678604707177589863016745387273677550745860053834536775210189207574714622723602198302205422448228949934263247958418636670311257181534242209036192490237379318697844028402057990031430294274221810033198779090468352973544382106267040927765371890050513646449317209713278789737590835068788225470117521428461195110417704608311749662971589374556642353332669478783214601671836004310965756364192834570404562460360233555279820136863399260626537625149529641073349792597863617687546473304814348989761670602541297783525420394761585060228552480160405120511376285781367965492159557634822752074146544078596797494492681003399808625656279151664954896673271253597683255614573671725132576171337126630740263973485131617699539162458944271088877561955685783232854544915215053891247377253805903625585460141606987292613561294573416334486879665810300868175847927741327350255197651705671619568198521803008212754176762694264629123574502739682774256315019684412413122450489036658803448594785829431761748466376333657362727555017181057282243040605348814081838234298742641691301089241986839264961930172830304259876920453908888857370066905674431399719939058168940517744902172780899658406749974528248333320255516375070106132784146982121160931293042646105108346187796689449598466182062298554010228763875388579865899509626917964184597895316990735638325715187402426450391256911389854202496588244078087583830416727702103917323402498608338559121684630041758303028417600976277497537125692151000172707961892978670633842046412173990654125068391549862507179540156085648300856854347420077011851194730806690561878688448884624628505529620718916584088224543803615797609129907513930285294503543850718296032551333011527440645026298288705404175596935383869224507416872745441300330856737304130961666823678398409121317464559341998288769298624735752437000450136425163653243833114364795451194031225523789793556925239304686708389445028599999262514362770773920835803302013833395463963153449563928253947758993239072976479107486435346341216177529150109381893034018298675494503588693235751848069937980156990940206976409497640856601022687070492255303680729235884522967018251488007040286876429459168790734330383793906792540231879993558474280436402633959976759829149767308688546471575822009785307309620952095389596731569326967868676902302736363586148218492443656713270404341155035191010574051693763702049891445706509728936712697139411884211442242704943758458005962269184931238465425594345912836582641408832344024245159445123992020219000499581171683596422714420344855511114483351379839007389141436980911224874758158442036533656756784273483348692320367624454181314119447665939691846328295825930245077414564554323541324066681820263053162547266700596889203398713369358083042718538429588361779373426758937747579680911880737176565003731939030637512332304327745025116265831233712932658280299259001814597080055966469617768985855825466223401491809919664473683528042884379330333940754903356177649517905169728859483572746583102980730538097507446353083066903014100470526778825901992241767791294217493802297479040400378004296738512785505346252598456371853749325356221451023786348682058856875980679123838379636758026547340327155281119119919189036174170630644908793557188195215924829462941361354153826135275334246514393268201811870792566124516972037314031851579121979671778405155798894705746642484362215151223333370478666562905660969109873941391679693961113842513900342593945178456089675110567042051463947565910823738927105001014704258015522447328774418813010948353218832773834338472142820097312914446269506712034258269896771026607884638502960851870774617158649151071438446423943572628431235722756764186506662277219331760309303723864203571721377456793010836224060198005656113951034010959854347579646897873690589933586755811899219342030308793346172953245203117808120366397484304564295996775118703659522324234288534046541992808913681166560422009809996558805612909078390104119858691550631832663048148342302594029509369038874513097476737349721693796171133870187040753035483422013189035688113900956766566372193379568156477015218252204084270336799636534052775194029066473475127704030578104976016863293446304435300082201948197908076685859040984695050532992600693120705966257288449369966851530537132505559045855057747400648141151562498064558088832669705640486712708170476636413186967661326418431754111060564452938401919071378419716958506962896142469417479279713089759531678294637255025768607441523140631715326076874665694665068075338919845396340024997350940766417416003154043446997454894075783454534571082577117117557885809658525809528938110909151091026937068259088099117177378679641818721575441471163715425409052569217619241156870802453653827922772895263445420770028723896918330351335081138918383031716323808593448296168538211744276108124259173192004295245257024882995711356611530378600808532874634260119140150486037088614267612655747925297751325059780493303558418102796869801424127959103805922276695023946345351607163167122546279019574074432341346404936748696224618056558612977921026560314337202799697387842627928868879245811611855158571558858924140431313049938523407636387565914025248491024659757380010114507553414565740161011339240994928855914899608025334845426804525865794215180267085371738154018326009820184083091180419954986390950119650482718521751961328727039678751650406874151545692158459446397615364688528497421533603979899686717032821038752902411293811187542934027844161617098088618735367113685401596614508863091223155783135838820158373597030762866668071593131827215069603054008735555468229093294376133997284666219152978949084989826658008794494593473974373404302580096792317388287081220331740053570482155980898735758100553881979130969448107674032551157170598162658897473299601763860991401028466785187529425943415480594682481989454932423390887230732659969522899727447016360870687477586734237231055451505715635535892202859148783726562042135271204279453876534247154561181397091204226185657977730835180597957161417923632777450679341932738534568787702685653119257840664474011672629167602059782038150318000308545514366314816301243161726709061674478922399371464945736294774968202678888307936046697509243907519045314425308637815523213694697048283361191473758463070158739570638238630549426433965662422692539889954037783505358984711804272983403717947870348918763201405324990136491735634935895596158609080907578293341426915022987517942853544952544211969547752753856645752498253387314438917091677462671749329844160157305395592489184349939058721331271555789523062170123790128598410355112885198224469269334604708904597873957708069376630959799146154026421118689208805632448588208183411398060930101171313993075687373134672557538146079130435364259547237846805455784944540575418302579628629928639918363362648807778057887438070183050773089595043753798823140619734718749840987827791067821498114767552175175808953778261036755136517516986848987106227904434659586359008776082977033538207493754451174995615850115291119137340574571665377695450333236470858695657728222865234330732221296843036937898951771397525260255811188049374161110924008666146187344290383676777639234431406023446886609098204446151580705877944034811467966346710193500912689267078886691196625860039117222525616689771470823788283195840357297736758992833389180143662974107487982680565053779962172377094195856046542278996007870132952966631922115276700140936616649582679711556210613237465910896192513066571762068086170736145835603584256144176825287469423643883314392140868179204985869918641901884822419805500075564908064664884917536955437438619056845138513874430491422556696283580193909435059611233657582643355449460695669422976550313624481996445066177890878745439815764077487562551476933071897453280957524215707584907565316043059553649349430748530169340259720468825552437271478052540995624301907040261818383228455016307852185746206369548187147743526442775029459616020724533913667794263013574487268498744735735278115309826804676797610245807608693573170606114731355160645301594385807521674296002299335072311986366217701839094064446536391701633107095605976705671069415950998080396593324161766862172780326465730425772949853533835671050860324707413780583498546400433834784411675263826025804368563618448798982327559110912173825428972732786475804185019720232642501683004530389888883505523808629489847564804251944513760351873034930630757288133567684711571257308557029401866387740202420456318551069654917659442919619109946235594780367212542342485509082979387009359509384474057254657950037492960035982858670171792198139386411398122257629986015723471425401597085548593398476747687531418174038767573001976206297577430202197396772134488297714865216845384270830562607911285790271224498987087939950262921726118910163299126700518866971641961643191339795909111630197641470589059907672921040057860356828813226504881448317451430442510461781202271935572002090419165118262010391409032458394972128933870083703671825275027509643166670728862422339441407082771722266778486873308842074308847548563941687831343204397362339743017613773842881321487976973968222604138447951502919526642508358186108877593000825024052722200112782934531959972054406347555647076856472171734946416671759926888962735091703990794787750802249254087901931550240667442025884020763237233021741215466666321320594167666977193541368737145907337604074235842599167736106337139405309181229762947022591461323597806012612205704160710114585605243064146651454272110587678066730908404652530622420162372012617034677913364268313811454129548057084868040335298387507419266710853279653618450455102870638257630118423275023584612734680466022751138723482952955507469192001143581301917175647794636263227293523271927079256833528624087992146042662721133786555584897989238248680220376528120216156832458130748511467165133413610005319553504516591446673251898651174621280093552013714518353568461934266320635022816779360283405334392846043796544107368801158420171839569680092472996581435596341432583016779563534452793086800762713457212207729688045087777057237119320878981229237420335804360089117484549765659536929843452434591912960374492151357044812100209237060346040589953272456827237777463839793512809073161791588920607834741914818656293979365011172325522957769760372417738905434498350562504557135437757484625622339745527367287285390624795209811916739321316984769961564054979767928418093940950395096806154761573977859490607910400129513665259835077721559147114706219241525051366285681786654655020612367744256466610005047124855507895524444508832928727379430808977771705059666025650705502356223213568684990450814417301999830592073520507562972218808059700665173207675845282403020192590650324979848822131245583751830614640948689905771122637511855940137041266715561502878271138214311281116579065741880013713525637094293203799664596587531711099044870804391085338048394799357990766591230744249492632322007177324750753768299922949558931631516796955941287962848268864939283431740570706830258920903680399344214066224656193748821729219590403146075195698441866435470688261134372545417190188433276243392559300802422703769424798180633598519871917910472711709926386329864502733904596704233167288432044837529955979976503174238128570564411614670810387358067083630362200164528188446371419254134678844884093802471097740191247182143351022619115993033480438228225895673536607489238545267513556700326593596534280076099541364027550806679142495937617970723636975264378467125439699803812950129390950707320169102142650699546201906047962972984862133071186916474647919612707103920766184871222979517069244929925677094737230213393047839118759725348907503905968069220433280833402186359290109576903755546249851628179669102498679093519623464645714824309709971535475867640541343880574775092508668068200683397004638502927766446203806499663448741520867414767461296582645490125142267265299449217915491643840310389574980991119970636877339950198920376085919267141752582830755285294462784197224260186465518879003264730564291389911797695879842098269252394314000636553119777632296988196737064026880072460567099438655417192720166356772855993334543796807955456599406465863435666154616368785123888563826166095933257155918461534655471882974584206889206207520547481522856223195135457962344264697027476918612363372584630855362735632670201214994603501896682841684601769696198247288827106808839949669104847919861380122654118915019620465437865705424912350379705694371751600106741389869011747829952509918171273861993759603753671490578189044086288162143482986617877757309415117216452403684221903641217304278728612758975114778928204353047715757570808891816502375909787590654195731887994725061472340561689558515719263816619792667387036478205896855218440164134550657958754497327377595225901577488523679757800033045121776418542572732437220862620779728999346092360266619400505646151946859239334679994474853530008129884024333200003439154865540935500251542076460848402526932798956339752297579075314634396191492919938698699160903324003433066394902570050169951386153834051424422116117625384840018430967557154117944234944052499954577575471210497252954989586072349886497643746230839492020829848180348072500213053707977031154881776690845322014037796348638641395338717304077870501084312551787348873249676592579470429506362864188077771044930083432319807707923249736570516424753522252151721740306260577532928851913600671598502136888865051667848776253649937896440133362315216580456875459782148774512923363138882841940733326696477480359000812105890078679263304686304848995238547077423235115263596130486818265482559977862100506968884494141732439856100692011145720346322082017563783161062200511013954027280605906115352975273104982146961436082649705327428156256967147607988261045567099738598732775943482985503263728379663028085361849699158055264223295509378730821642307555483796879629947428607875470652733954413538119609807717937709125739065368682646937532509671117862499700922538782317353031335482338259366616374106433603140703725399642681207246732613348664388023098186909368184287057436761254512403768180505222799893939602513699730437832485700151080650091085788095327439947129950204567891864972221167076499412608920308021325480733266421650081900603907332759718472296797158580619653350384669848318289884413919325878364616446397133962852868216689644950488715595503190528857714991355035389202116117775589134877495524243700012658322480949975412110059817166227584982897795875997373407814763541921123228197489151000210315978101926339736039506438939008314923592728891385750350015419998775026342329133160284265358240966216402787151873372275271447980246407732645110718399303092438686754078406011519825277903119576623985995922886454727382398803358130347552563123983169324915313102880981600011908691092255838671100987989722228931300545908046334098696864222599341135670294714011485539057527037967473730888203767398157233643456891766186280627267442352806401638582525398371446946292730463492602720275018577262247799512483113754650567547635759680511608489655437411869761845605679047075383929902488606121707970228069960154390370974866403788450646691005614351305634643202025061700852932385518610655123081135973401025888995309053968709190026100770309122385444043631402789921760031971806356914747914261514279242292193604344160822582893683882558931826821913300482496832568613787700489921942374136327418984373501196162714857609103131211793251096364689562096630192362514341035553620430983093456777535044377160329198706553015521526000534220839888634751642731869427306180190370417923576535641798366168538676282525350212255626709778163814087926668379837665205592703677696100159396021070332471683636361434515255620586740099999986317057950869880783639703976426835588276414933002270688831636022436510817770042712561652261389627050537282800553602251867398622795862490967422919851839567166096797501278958493552819192131004358037119930382549523470829427646638829769028617200587718860500509883697825205214197019523235143455538931041574399411543053934219501269232735891010112749423288254781666303039773988461260037374421158742917927107761075665392019055386355675759070451280669355003707861230849520122016379189825620294793151827642946016977010628058416954824201508089300408143926513641361954297158905639794878782036625937308534758452979656696856392825723379481691878215606772933958776025771192694054041366078046162139493814144967654486656155394836550470906371951932781657161583768034556876731376141505961032106947771875139461287302279733891182062600949853697861948078122792290795578400686047404468409110942447835351546503474017295821905123077260224003576071794304063083805769743225502797105885909539123218927401149504140626189885853567189404551818721792000009798302638827418053332693024956531610941741232026643838997932282357271376005248855846846865090113562388048045001777127096472018772485773938194108394098572527410580013974787924867222090643966185561140055771829058601100087876164119502427086552326936662954355862932614887190109477095961141543902108040779039077565744186283547450492483293683711775183372385882245180507480890019180429661513485895792538570420726031387444334503824299678126589162990640770946112314173860157095894831365034397336629543457731478292482578202509187935491882483162466219966097105831519789895438052156040009749193815178666880297059448214240552189177050540314516602332812423177172460692992714501960046252487228041110736646992487344096395182323688510787037348739701534191892156205582167276584685017113766729345314434593453083732765186619220757460243096292171556192674244440494476835532401237891376461595584218734258277222297291656597298026714555414125897917143518918196036182226386868754426866328981104665123744735982181019803658087283625011856762378352640386647269074951124485184480185494274533110180177085954579307992215161221351669596313272417302535626985948091152873923347255661589660825010149176087373430954323472125699231996596972623035337491461163635070658327640572946473858799774479168561000163569842370886135013293235564559134136072687718195579146594223313884810876100967165760772060155986464037461575029425545204786652659086888315009719027563292776613168214403048687101702908421189150514894018648724671649808282233930069187611010612613781911720324007458882859097019572768601752691291891680554362383427381231233630187481920380677700634517654315868165521492912782026991157708911249580937509931693240556073406703686896054915271161883475651130616445764628512805976789074017328123748730101664983978704797855966560582213654172720648336232054771115137256362227370935851130145911131492282995945045854748183085488621028509154961811442583902506221195499286202428509153389519073559789017118021218196313784234077704209291822333110716310600084560964365593269862918262822912176469913623103922438622297776212411753569516029140236498064825590310488134646825222961681427284384632643316669230417108492534218738739016787579991146337734126323120378990060143780212848581254787074486574799551491655877540649372530772471678194322890256400378551983070138076821567833129774461818660032281989570716037663731630270456731933185865212963976537410444676222225732444850453017321399769268061550467468534696133388512567172177693106083078450735728414738666666930356724620219605815938322078448436967757663064973326106694426612776800048217112578688254218901585619052367972917740706485849810797052711122529154114437767794617497897177389324130587699721317505180343898717772680001970602897897120304407052332772725691421324467661022608521452712959413054627918570060108862940121486373774611269727051824264819579727215719201233152731829174862998555464833869203207528797869049864167907889950828738463992926391692883972412827656053109280638042615667039533846845487545197833637433849534706614637739957752777991669674641627317338403442364085438708310357974068684560648317653028884738022911404689460058132269207089895788868803765380571556568450433881681139852453147182770563847906827444996494812168807587520448502923660088661421368342379959394891854766296067168942020326818476872872849456162220297613772872222829839938267269116274432302074380718727868519041012646359337823088046678710602990719292648667763830282324211903749708103877240751846997252831840056911456754957191395736208729798311492109403505925414251662221867942509764106963857461977180763960440911812408690254931390869044258477044686745670512572329805397075927118253344064918422901642451208408827229418302838498843280276378315934135089806760449559827120411876170586373489469161352930632169717613802080649665153338186829261000737590615847833094788303517801010802775321940157390888808864001700872307844598411662781466088193903089419931560122468130483556984316159660700344108521860524087194961577836115103123757776143142319427565466434362016930144041959037745935892692482383581216081344669941187054524154947179191882615713820843072267645928371294889849189221729235467689960861840344056254667016378800321521320660581127502690519995979366405022186506577263254479919461471292030577085399169228178045422590744741126246005053704303314193479646617674863202014910029227285712811622008568625060880888206933311992273017427898530098052271746560472740840072419000483504126303971640396726429522131055949679697046801634081343891863658988558231365813659500486085590170354785290505785994035576551115526286728979195251769125953714631225794522422136001920312532324087608092394826547379686511674219978703635432921312460271325743318035905203489547648222880898384330851188928299990652962639613712031460721117409136360840496481585676524479079046966762963523091619256572525131263198734020431392768747384318523782445893122591342520089571407706769451819216929572114260343441146603130792310253424791654210681553918251072535630951373243669046163993613730044307614765526910372228088436476654912144867964148861067753459213526247408700868724569206429690383519875073655632970372648497709924841820044046421047791605144754800563993876628743975236984054521871765242333787599903421282967906184526060369527980370276797495458970933017675046508433315832257816966917170100353381621787554988839342951130752284379262868713746818044156329257695362901467296309525271032628714307866758278897829750410833365905547506110956046530371070293640357863408153198379209116084150776319692860432575094055000633831956823142288895402944483348635847175964598278893579951190716226564110294725809425618466325372995176976299846352286140184973917102945924622655094753321434923679948429527985732826820219632052402937683045834847546396201923804615665660261030666765583336686772339287969889122674654404311381960527887364626823901560854228535986318093231248995488678352705505763509395990138377169132224870284157511070674286100423871617109073950641542924588385803566843382970140483981227069013224880657908013998979260853600628987562661308529625249604762342410341148453647775689485305848227044504701008684021234929370064739626903675547245497931564086785334146349299484865956886188769788244982830874908839347011696406403889332307945158872280496991212101346385926553807705389567043721407830931519484306507147283093074605253001976555804822730906637241083307007083502026633236516371745347921396562720332888594455859423659490626900582111337200731710183965369912217318766496402757590437927499735704450946932848613324771853732717108952749175537266150003529248341240552637907178421998428935083736829232646555984995237747899672065767398402746961223970501358207163928967041384873619370227744816171067972720581580848329816857036694116619734713268553249509780202763854119673248780194896421945591201529768054911724488302563467332013006485339106376143292025504990372898616760426489015313377146303100786110861581193992399645084980898035665411701898823284682116363195860879562781455174695931619942513975181677000313063056352756220152251653090520119493462347884678751145332097477555387725065433541577442717804892354452240694502410120846142129754605761578689381329172040930708373093320433246467094215842877692732712072688709664360404217894589365345538849125874027638149886712772631287349555663012855162029832190654185787394067290568716723343484145605802613737008061934215407611354098868524340567724372453537853472655690628698029936495708060121866112380516624203879789080581515756086904246807131241303352974866829470778840591954663685509147447489094591310844797674047983216126113231832873471105453552028060240651193050305063164542869845529783359793577213660139154503180205242441114863839700617519901810647220970062963417701987776092361211022501343285047126344771360889887116194069146127277955976330282677950026668301402113031075340217661291916384700697531693650914751028116578380126752765841650519563770753205370014602513387337087328822573941892818768844450992027475908826404399908239889467457284282084356602706349999475136176011235462018127620027643050881659589497373013196475532752459570509930029149827301577424687796959038338191245279648596406406744461058832294920987228525450472472505961147086801115838193121018794160625524268891429882165765490100514098639073134759192396312980914380885500988278662518052809926605658547556844783670934309524144832959318852534462035114958467591731690369275370431238136088657511426946501250129511747260867695008520553604088975179497155140915005482343351780878105049274403067972159085433668112889444103425639430245187253117351183431444281497882135099468481316320887697516553161439877952724705085546577360906006401960730868586193827067298071192658379280170126359424381403516448809507329398181052170146928592873196592832459298208997200792555985026687006218641314714780985086292865234615965479030138663336135246385650697546584356752946217799051074047975952565290494837244091031895221863380206428046869565598002991819268311337438542231641980073551876101132884065027236129593210842267723124248238400800515184003331939275386551516292305043063559051511838590026703175104702520902960850536922004634791569252028154580324524645182690384125428636844292946063792508337298054420006778756125365051243881477502831518585242914580101781281028492492921693926547543397275742565359113403319025257410867190758992396438629966435522675260037137875307966767021944665767451681610885656139850549350876002622775167704049911282237271264487832212415529234293647641623227618021288726234516413063202222991651732107502891228950412910565144229840279198446448219614642601229151894122535759141460734169295825523011459279630495415872555322270997254215403593147143851744033894487680907073331498942540105991516138805319869085167910648557898085511447933797855802833661421440602576483756355539177828654780969973925607252508106862866874699260513647130442303226911223628076531742713972684912242624119219514896953599691062654253138408370470055653385613753910947288859535240190542483088078524000631624572699458004904271913260197890492248524518103599436970080315340273854114295740463978897891891913292751832428995068430689699165796965621357427224334534460620438215668131348040676214781445655922892750239126793073478609221734463824831299802626752534715262922373259086378941324256953811826171900560986434955429118174882080524190473980076251319022122002229956358110730232733888760905011280580750246477434496303606482275990250393336518891758214540819847430960614022530344667394444570406909377132164675336551678064251640354718871411483045262764742479797890210688265403503709181591241486684422576396718402392049544068514481010011516181225905585861061663593383902175753159602144379098553176968776748289987514450905156924886758097021500886404517833595495072270285725003624107637340333489533058773506820733861301445051168948683727873871584105971106410939153158623136173036418970466456936351148531103621905232941441040618361533890554281170949022080161950644513174700092945804940726263757507531090208289924834397880091249547703803960971088468811843035209151833868818276069624068686812246281916447152916601128515715958433708060994185160127060993345289564170008105267355838574773185443927749213588938099417651697739508951340903337889473597267475382240156089956671028332670161154709345112847489484414051320482680797196711203792626287240850482679920509963028416407662218182362120982242628896641378114011269793226645724591046020539585722097565463366561192908008670849273707990795005525980903021985962473728264499780532544370147938291495476000060773341591633346950095750884133421864998170243986988602784859931358588277541885649011592883225975355521746499434466135102020833019991448697659815900937567015007620974032240596114105952231696324345556901430282121713747418726606463799124029887845188544765957134732861266995156316129967688670596029902048307377125385147173204062427728954754846305426651559042962632776987757690845909524322313911507447291048310858693689819028014661977450628928803356289833155639296701768941583625924116231892360120328002426918214137604895953967723601209081768962280133457314537302967092086180449279168371283467876893480421212923458335201434480172063978482952716480858493718436627525177307708172638145450403832088416909424225980858574878782082453640508626107032012833359159674115836553359816670938588603297102091849100650871583551058861348102781835086694584533040396122188577310078032466505926510855961070806908217510062853989112063447630649636390423564890176610682491121649424933595493702463146525951730876286935638879254234611530636295516672621596869540903588516556446994910417172846221015451902172253050166615240981451197444795801419483524190781867936243636809032416731692614207515944601227557544093526939666094756115642743488368338552489895932159527239525414942066243879534803626426890270987236299945560386917082979471098515127582140807355357310758712376610681164715883557071756931922880271873704545860309717188687460157177819068407119880016889343478427188510407879913024057810261158026880003638982246187609550991650988151092795431500225770734198348282598286875151766229364764491573689433087304546870362304683081385405256753779818656466317131900414978959854719737186052393717337962557405592639108088755724121083212053643324642147830597859456794081569381818050328167654248727253012306918883350999733845227300152489857880796586508776007409629338109659656911354691028847794029206693808041154231687505891761817847587942034199537009340873634969222122950179019964114645210491836053379100379667482454690372175569268005115303705356148210164376411322860898530456487505758227576746248088398611839460060229207706020725949063812145556010325686895241355966729986869726814179157261796520941216917463158381080561792554442758105069493419613603080775505224767923355993934271912599762061156594818169270853800121531270857157875939999526687881804923117266183386268067095293461395588647221750758442025356191053506858367931142670170533068294900939077159870374173923173354104801352541170852103202294194534555447653172911792711098197631939025898768886064193659837271576948586226505745534497065012812801232271302054698551972878459425420965089358213145431028451508207751841411393727845386961763627189792248563448732972910569740802957088197088031260892241282069812685557227006650530994430604798906100492229345341126307293393318205551358520524498025309683050100964253833486647428944554755149374706695245249318492730720044876157445284731328394902541855382087955914322712670281956138552258391630828564265288196167894057528835638070196092271498895661446186487986710002593619598282325985201663378967957161950408905412247074237310695669362735458940367077935291307381291028113548334344781184018912590549253693454590266803404359811993344193854452694784344324556043098127096687024595630322583001501890739828495802282058536445746641336252791191415841522388514932598525226787843380706775435477499041755153407578729664327749690390097600788786049722206659075331775064313639357914076370277650201092348719164389748110137640788488963139446178052578379903842057783644885163049227343129308548528354061714831757211741573971695228580436771034804803484137375234771836097668219682331407009827700527672346204938844035576184568764181053666476162907393623810913553152841201629875662059032489093158368843442265790908052457300077231965320698760233671271331316363340082440286728202235248978857005248690700749479210393624206042204457360697805612922148175847506245635964882774527595844941887885197612955551621908643652837712276290517904884508637790968722026260895207667624254874253217710565308445483191332996291572766744529472977411059716237721917314749953528625732930025756442823176778285995489386737440829218689401673488491784667116502803640390533689943875235649025209793077917190785957409870546460526754156430478500986908623055783478619042163023959711760126100953265820049992210777444106264350770166673923284074074091278832918104523679555494433316156907835916616909277405002742736565259007342180174333734028365947611541681167405888923453143212852880792574622221930703142446984188999868494709425950879622314944837684715781524419390995054945414223743140250277595447536939635858699230671908033184811632106452526228461672268631669047269937960380283338190749091943759289892464636117316448616181523084178511670280792260394265890704708103471333305548164064965838826567060710081396759941321673927571776559502492722236440380162341329991483062602878884872437512608216325739889688356833955949285654741135723754641701092396324961784582148695911153389815979050648388644007891057814227814134144014149873769592003941860751954751474336068992845950878490317310565916632481514196594716412903373043624663733518846437970649339179939749112568065913882881412145549083966559321845836920515120416079547234977593692035425361873640498683269947746377215074808835638109652174690148907864935933783256292619724336671497190760064338078826597499839445818588960365363365343263572867404516658515984884348994463240043322969880492388808670283297565123373844612298267453141553310091281569116600448639943334227838081612102110653098073961392153259325633309035178367540933347301635774215511501992959284195215899750521434591343080656437715951279759891429903701644363851230135474267921215782591007450382911549805339772888065528227230057077527934130252440040015952739246567613466955117090270747569210002432762147830544436677417205892816463730655013887214199451711748278319194470259743382697476675692893088184864600492638659814056531283199340496879176282073294944434956971170667650280901738879059888296075153722278865907300020967791341277688211225793271204339446491406005520149561800902896933700694143095883390222811371633498649375961604005116877602814561107917356637066719927946798133998427463383757956309992459329825104619791821151665488507391698502920483387676882721225714857358969692365697899275190187029045816429553233733498198488329119750768986335125770237410324574573445916610117543290174593284099950671653237738107255291793302456945113391745380120124746914776252416636806520843618894646140819519848102947408765066214467308364507902010976601097609092853485354069377373881279124385499413369623674402789192553280050521587265536149280497413145146439633198420474663577364550621615510374067147792522673393463005854422821151253234111065334579197604570262123839705824900122328680456481210216834608512900366994989465607487150958012959597659014935679426651622776194499854575817612709370077811468401105559871030985329380524715723208315973763568768785963378582723047860434209540211299917378618546462100274271678698994722722719368765672501097051600174883861845804739935887044184044358326564927978475393287741963819000227490356443489189082876672095468832556148261414474819988378611282459963144820363288317296877353418930871103180653047618763693267007337959070650041566492605716210456945822226345181882176143328321985887782154463248206297636120715738000945757425073033344941404181103514816422602189785250064537103787791032075700638063880470369395174415492917961612857029869784442438415115934474526805221471668648245676196279405625610332977622140743666861284268094432564890350455788940704163242467811423139422151807020750010782364842462895794618058451240789334379831785684199292275917798559298686463926042207784621987765147010421808049685330375793731041962026711587195500706661559114795193532293288810262008524462074613911686313049733268916831202612920053662445636901621667620623695704594067003730096583377120403585944525294659657739245458870338718015753530717654830079112447527571171396083734560820380740866978961146792588776259871210851738168740855065241939159070430373451052247052769509919197688989328011664269679347357523088302188554877886670234213836530291627639452605534008030963426452963030013324400679203216413945986666870997581347273644956447884750774404420237179886225568646111642390925675117550621074504503711218099613457504594544526968554258429404054493234302067240169101772804232551753572594273052716678930426675753035454673994983212447412619849526916892681353251256261711269018238119658061032463905491986078981210963590715538487820253733740098148221719009804793798451685146981027979571764198728209597053484393945536654296075815062453492767583781781126287487709764193743227106815152078418656707619844293464226166527269119678326132781545816155023604803369803447945504075823849494723673753882945896845044639450199716528416468505287395545694302678034987555064350968577507487851775604227964607944431209879554846331123098197239931450536737046236556505980735872208648965833448425258069496421770367821048557887105973987393202774764520041846881461977701779309818198537404904582789873884041167347254322274759757312851190462145640156453957119219389395333089745980613792080894053307440225849229106833024592550962457085600200681420325840841168166456551719509124583502692317850031949188926030125790366023570884668049237705305598026243539178968062908687491637357413009043898851380928998871208061530031328429223808786157914693541634629070224501800218292662932230793905656873764461490786512555441353715927334993833650889440227061641471244525642807283299710517021700823045798190935131139125621341882925663224494153769172598604793978624093847292789230359997628853991694202386333099646040340511244903920915249716475458300778558517395321274104739401137212354646601371596795085931286605734047011773146249089770716390263393258746467801291669272460509542707793887939917977748428365548262615908129103254992484943997831213489077403342092258272254282298097410142653239351306708997539090007135893760705693943761178880042395442900992240431670462624612230888553971833610318650035040104750313705792755603152617614143247593048034914844053841514561743457000764961822555007894327098460094066626158997428842930683956529997458495473435917437855842434200959030035789532506802864688612359461885085257184857937037848342513911050882850834583977141564430565703740631920372829775917108094275481639833160828829623514679861182351092411725566106974578673486765958706669235780184978286242433149772184695986389372962717626303911530254173465959977059944854708706775602882455767293605700246904538962765694024599409448089883184770884562061456360501875641727491990788246028911657459542192974332413585364182495425608444247576994372380534265529619073978362318041186936950115808381208178260274319445795173004467436899206416319876505657890920001887056881867380595526844686225017204791906289670569860737245276768630803483890875536526221109637625044722529803782300440216243640417091493217543954128247237435708010016482926721877425899968069188594798638240809242482102347900626301446732083347814500637675167256773621400341713098832544991246765668745226140002127824027261241743801194440413787636573934213679638887338843722051617298592839962927568636062136446478737707683654180140434080428253459114754865762743617115206893546995623453972277306613637549100012778371222388266316392189934152739078970308238908397383127068734061028143088766429059126700650963945801599933681397831670668766098767979459392771902467384289379116457397506825875008686349796007564136424751632897185537352559671858044047420562260418585339185937081753088660221938659077112880899344495654065306028090673321271407870010931040730885962787703157672950325389144262719571247871595376310963296852684427266609958072254620720618103881949543318497931218904544458275620475750445439017758728324170440400708230333161398410647759025819503319196559661285719206296699338446765764104234386701703724288186269346128796382984702658276355603354105815972295305273532904954079639901825921580196837088210736287081406058214390711655971072631998758383518871759381477093547974643450958096089013583345393682410317378108284162822594069261496748660295938289820819518126932927664942047875407717536621615612066958691547906410169085352754515359405532867079502257278063887021482645166764018036109587255657229527424367637336823153617520977862431973663629804595248633405704319567853157511675856780319950678197090059988878899585045686454139396146798407883203410818875041683735169199977149233856430691804147027420080342706616039612264445366750340721999154742661122375424603509073798041414198871141896406200130665760163606214343398030234632548681773160712193225930124193010897757890158300067073200834151268222112885065755196915949860493301166617276524842637738533884185021962359488649988106911463286879755066507926660305507022105282526326156288065480717605193132037319559646935374585627543548087324220612969673199825911662270882869369233906326361012175767779136202958707935078602496918970931081797591342940045234978342927774027246760400221209991840430756014631915189259614263578944486836363467955381677321809758587699985302535196945873095049180813773492665279955036944254317663992244344570585146078826795385195930279208592296369085052182808253118863713851383053451121474675233207320375806438801675528668748565183826981342098839048647723527982373297194656436889612648668831750543876870217765784088648698051331804901483745391398707876707915321927245967278229343917833188566593956311274509363234251027440099343799051231295368253518627573553019273529806897800861283984966953615511530112448835410372452174741913523761645001443386401170454365505169342747315866015832334122501828316194877698411677136456538139083817056024998261297085221379083915980104360420027542373121514316365407960684732148289719628467348687294625387735794053515370732343528819135624014206413677260658874896312975555733512535761834705711730617673329668012349018791310227472256404624362168946545165407245916691096639587607145837069882516976904112931209388456614473989652732438331993136433908502028896277142960028899653516300036888868690075184321056143659262913627709257370799520732362538916881291508938445412784752809034277959322677537312589971086543337834630524094683763696631314484930576721424949263903201599351425297137232754306112690697370566071022582870547653894218394805103896188722994642678562541389263719179211982431452385251570165920848502619120533210969067856547217918774849659465020625197007624002788051077956626847708567684794336893535692560063864316316337651133792722270991124435183020538667512380136647971734041840642062796242777537981119127790416723574682266498988418901262257086416710790306870892903382899941362471334323744812587837466669110635080522051004224380159748481860642798623797368224311443364505906557791318497039608173509498148390106552722519117802039849072006787874764039425588365009401432940442316813547544156652541954873166643600103903065252010468762391664595901011867812575966253150112890251565906948568383740252830802906834321605366626141656243272057332171700161262866552011531114967694793581003163972694466628258518960981677714315185175230572612324163697247167160230845760338786089593648630865486811367522989543848231280794738788591704119778214792965367357385084106693593298778654973987175699871061417039819924534344392160567266648809145798241368665860937789449297843834803626889453999354819275086178785784556391686141489056400823602477058731190532115112868587223389622464159238645292196684328745856132269715283275527337648265961329572650637736998275461672335050937287055680426655065114150233372760689782607914792810764578256721274292182322301116008326123904668574685642992977024502855007453710581283103075033041007938626221600106475055141513551968614042393059584099682397556378517814520817612862853333975073584241760672849325499696320174856433181797223091963608416898715393394042619420461588622615729644620524018122458876417024105704252128666478414100921262116176383043324850630143503447212343203125606487177764047199709012125145272284000725393205342597003955684326364303552744748008398673003424753328044710406716803302967215884397757423016837378224183672311175400504650108094944079327026795797851069612505225256016148617775152775821452390807648323360866909005242571345714706372240977768065079935996709668153017259544263375605467884924800349094442631239409440341711270607097419794738770848521605682076116982923736667658867995486698760484218123304689037452646757137054435500355991593769745512997619942975711268978769402159924095470273319193912250118184996080862278879311474224722702096874845533656467151231302399494630170587784824335934449875213189057808973343055514601949510311632729264245394746499803218308912134890048135201469294255546940171562289875299886390786526875273585965624972538033391323447638511727355036715096027206401948121223708769761130944388308820480457544635090348359849287080625044949155610980468033771324370752318611511917283025147953720698563650999321709997045573012448059248554709589256247299474261695926454169551067427112681748875387699952614180496052635036841275346433930116423606739297268496724450239291181704599213051727740983375998135298192020386809376606967693663776015622728849155787646668899567415496901017004361309026723071405808255816919295738081754419670448268722364085590966179448471327556056889733162373080888299997990042346657478301968981914322272121117470437061085732936014659067530292370496436798277102146570031417248926999302005086678608193641164484375696625786381183965624457101318322719315046676039945702675529379585559329466546614187291936417762164925810328549997828136110014116007117604704062944962375817205810582720480936064661124598836522102354290608199989570438895238823471515535787153776472386287388752786920400116692137194912133859935515061535500969156340782340197427734452928493401415672215684917300114398991104461290607189281032826142370788028474275594859643878336597190805714516721442747266868247745582807507282535556417718145393244122551073108955130661588381672146086178262655166718577536043702526283132115173247363386715851149601208644140005466539478308450246642996643394198065463556653829223304245808825607071076132261767426326553507529346361321134151996628000804635445812095258408439075415862776835114467402122812161718378898949574381877617135052541302473872303778856897279092153723420102973922089687117762132696109869696080758253866968650332410726252292496558870057234026956417121755411453034593071527628058460370915868425925921765189156687705303322144849984396439678248753305986425314540436143116234155843499546162929760202855400702694037952617687944210792884398116760153357402934384196663243050359762138216317883288941667891872246158414410849751939013138603619469952433811512657899150688606764156357437969445360043208415681978830330557749993194846426537808853797124095041837875240806883666751221136451113090899110993001844329876673260060890747752483961373414746412010186304088343817300044216378877810142309955422627183171950858150692963768218919854867799155637722714274223334119863790150918421591283236137503920708349408539547159745571158696433223464358291915071222902058084670543946918965548329609238973038760157680100623164531940406154110883142172613612012340054325658775030239694584739585101153480922998082481288902237937281082216274563850071739568720727436613708583179338709375304576656281684161740312160327362375894233321555777502881885086440683492333422182876467793222718701777262976169859364979314849743156092356724936296297125070115221559344640652936394832799616754817204598629094613792929313354904312842688946371487424877753745551831581792147025818345219015621928182943344696425694537879417202861340993817409264845747763520759980028462091531970376999609308391969911823119009812385506394873446696333610946059161812648800401636431641334532017562777860824700692811605669318117253046961867098082396805647234482359711635394549693994095039664088875725448718592652509156695576800969716504272182620542065608325906132094467419178291448010487825499432211718258539075659149585535763267771571736523513221204598188458570523772131962493877696566862434012820576652540932138605075867465463189993397400362521349357169369799543041314637720387782949149202111574822494815824207801319187616333666040100201451302677524300445129009150037659889634369884901612558423271075089872314254751760221770928611274660747365081318250599622667077825424279022595516838517188446488453009790950909589948325986706706638570710910932338220277582317602988209465488064974889578815081290019846479171273616147831312432604866738682086941566572106590228015650842233477089697366705935948145242356951998422016736881147237484577377956452520025050537405655131073850311934654608085823637906077764067966358775387631977552197935342496452251654221404083869769783108957224850252946838857160141416685411944077453100414107097331946520777163178433619832830684699427792553834221379944204558076662728639539198443451798707203895752048287711630097319514327480945092771284279309812998510329457649006817181286951964776935986024000656403824402603856192678027055695439279159498757285105995349454968630618615780807093288456532273699239724851268923130324294732703688672884510493472811641745195593240688088602608139975133615499169530067291750816578970920304030792218176985078364183149629281761700621627935878227053511307787248663830564941723966485622074442421419783877523031376059179951853874231489981272699121489813204790998407414941048023374460060439268981470511264210871122055624250601126166480740138197070564327014198451244011617405575990543491827006933044433128063121493109960772594215062007958861778730093970272595678277854209370555868577174166482878491916546625104054335595501136361949997294143780996346331226547183805436812573037538154002625986660303534167820741763009544488506007896215353186120909605780768322771921155621752862343351166917865009255362972098728286922582436615031331317867017346820546927679132025071487062876526888582017790976682089786604694361188269974341832369295541213561534046671569822824671702984711630760963306823217025135448955262770218423989193569532192746992551184848116615099447907057138345920993197657924931509623133405080484144483372611452157115397602526573179440743473275579977098744432325873123400708431379096138061009704309434578355672862630507661850876658987703869491218380072629314149509804654279586200653575189427397953982081161638713869424472263017019098174361021201193035292922937230139489329873780027522795276767481605943935660453926397432712212217862384631139989491316332820478880650382045078527894415011332719638947196115264606322744063390081894269025024215429052796833040382961122261915666875742736592154813933120931706305083573473283283528801710577551545371137228035846644761773809809577740159675324989892945166052315677884665454255516998820033532833150738836432254582251052040361043511973423150219631657461338516191917844809586427299036836518839037443085786153008459388403529187071811645932488746125829553643589447444670596983869466443064528147390544239519652899716473625579598628101926171529072609734609448339898420534223168496774241707867097836011483810971974694090300389767371253594631771532126356670656536682299363736696793236423452738268662156335212685370138466282891273192121783093160485619497969209194722023977456817824330961136000812000804108077712983970683522583739248147537262005669339765912900434565590584175405066825770340874303449582807855894967354113010231926552307655368922058166449005981477199972394827111044593401574637206433374901999304131785523286219958482083614910112611709406275620348801208207688395579700808487845324599150312238410426942174491021374719366814211885718712556862317065491116544061542310181686054282393810957927244118554609746574980177318440613371225130540503108470248517210907387589150538988781167367000683253564700402893432552043339990260495662851987110113431435160086080088820415636576728423930508093686317120166961279661887958410622327819866795232151159528167070668754628153411246694332171657540156762974624433586258444079584250474446470444340907086215901779106916346150559794597456211503294392531340471598736291188899618806289384741470386423860610690768104379414830840368567287996684449622870296534677877782028890532199129327795004600829118330585484446940964868154391191861148407097182485694063968408074110309695588160602329318362269243982939421066151054319334887205005773161668626304399317386549444866740685522777658869758483607838316542747018399607081159247636375687796833161162272835436610142641039177013255051736186951402162074821770771959147538361424074731488126331961298040318773334507354566251547311919808321309282410613511514800612467156407070059939255454105602000529089430735452651251405712768319279750874973509506175719347652448546250510140160613041939604061219782970989465330608953582036427776015554105955369508321787932749880319829752559817796733288437832792281545860769255175783644024265349823666004275808575350441765175853281293434317401236423467209012574178621247017644641793647719814280603108620017865659125073179004977752904708621419123306733718958640794016320429463117652711332112505757009605374744825080084684649394730224410550416485303449042085579712822118348867853958444699052118254457678904026911719338780217873065274308521219510813772276631241491068733905155316783620314455359008370102281944726272364256334399139159215661710882550956595499985798903313415639438577952511757437958646186981608514106052585186643886433226757170236304746085989288457532125726169409013862122831667464867114791872212115732117864251644963946527565675596479526295112854983274532972673714226555926217950988362847148144325601461879490712053146831550387205680168648505992393407697191722870311364503579832850775938602453491182275661246826359815207697074881323199205138586316387990497447057922309476365823974560868279683289847136779553252326272887150934120810736062407794326743887542623291419415171688946774597448870013826398204869068095623591403653735000192265515770229796700386286303589164374469673373474597820021137636801619064266640352616388911070831564231351800703763115344845014255373649401183235076305328128155026223520884606896759815432558557678768857449237243388778022378711796647876068392371615067135663776517162929057768599807940942548922306459405200376444570456687369386379196493833251531185440804449396725665233635589809387611974060941034955392272095692043219047462736996137917381225676138992191792800433668361713347319238146607173994788160810093416014476100590757023322152929399769462665694202908005150970602334175559608348392245614000844659247538012545665530102244774690872714133688488269456916066906150290048876030610684031897690468495989145614072252451550541885536457325133760450877812203534807814614386481877525387591307264515862341072987670572822274636614354107557469271198274269559880865594063435943847940191465983884772435311003420963088741248634788857283287556460035368137914032549420216032202523106264685863148988207556135139472793380081105146358542243261585753255063706515461440254303814841061398641441229070378351600810743726978268059546764141677749380751775572606624549871136707904882163858498460418891433990093833825157750312687265402614980036046344461210224612753256107008135306807856592910920063729401842210373974166052160743089360617274286750293922863516126618924200469137252482228587804312383340114489337148894905346369276824253663070036387102945661828321123714471381226763973237767411098483008800191500653776313078122788118860942151263687729916422243724814241283975004161972501593660786474058043661175059778034236230058193652771077624345799024467348338928352903032659300268947145781097165377815763208494272482591950169779084748895360548758093828656526803263361188428591586028237693884887635621809163982600303089585112702568155989648026362051697034603547282242303469261400900580193150129502862777905885135290964402498300211983035863633803960812217186337275780886822189418130526808879802395528399524481776189399958186408147868712061839174659491447161750701962580026236428987407857932750248945269645966198212468194551512564092458812877249895640960455249337332992705407985957111349836924048139484072108979506288433564079404129352016871837886994610197693480238223528257451233977974624278520735728234946809048476906370497505798150686944495317750033016749413537378997063998504497508295466762168531593848079300824486528971488093756243778105734730925738618378538389827275189236701343802995472648431103582530886739483204332369057207741670948674817883491320461754454696693621274322654575861768680551742214396370988172413507661380692224931432333078124278666233219886038283094005865948702145886426390268242046867642245992774210100279799955765688805999684949252465914827005840324109469484348680680736844997838789836069193914985186669195867237587824288044324514427734809873205014852672434084313061639174261371492681789962961360866142245444743479600354451547027519080059005643209651400743287662035782331251394177575101009141558322870572608014866546448397353958446378679734084668280525742715521419441542443288969477082910811179076151305642484929948049873149510003069812081634261707622003114407365053941904237064905668750564623947761085291094893633367012763354063660789808109825783290093567020702647560412771161116125108482135426261981079088241739525460354724504231813540537032052762749597756965525202508157295227386565081903696289341571119271474067424227338268932194921755281820999208220423054037414944944324691318435796476495172324061147225481906773168618115938349239870495673779125392861630533801787752674336689701164293548163337080014108684602453541137375193671292537200735081104657452558935428478268194775000021927360955164199514830653241223810644217306473938152639005091170477579613988304767323792446030221252824389467778056406747767919670821067086652945266210331152124581510489413690417674450375445441066472964097908256762748634731403843313520646321004766437822434636340458114048529327180232527910836070619208295497649246329362932163634086874621292482812665432303869720827613001470875940965048169563775960988288318420401063702666009226235901536241342722922658696670427059033026269813439241301263578167395677351379238626580771444433881183354102153392700988268071025858505989682878590454243738928445852861674768092103745466272768692449702688485362607503293080227746815878461284465980125685434198491698925209129677043010272760251078624676686871424312479235381105200456859184319658411983803678667595575931198078934736085208840323649015478267355284517199346310574044982250320496834164633304900183281479010765950734001819738179653098254132113234838344900343626407408694586476390918957364308428416652893948110517922498278146412863370784547763058134331829268324780122814550926442660904445806176238272638343812855041638688752958895807604962643007713102065084602352705136191872506586252068392639022607038831349367864778844572527245527666329939604548519059153165664137761958545319897867934860017214405623757805325305656773385983553297279829605671787750674293269604978647448221454270669502293845313344587385607769159955499393560574620350566797753588079586261410213497769559584489558718803832846027091912026267859603306844189906693571576747224462454056378017848540354418284336087953389613481649726169851567225623737836629877382310151387537686810901884645092660292747096859228766221272933654662212600257539440710255718068648328879772224375795590226816427271354795322224875610734731509984521261027267027644830364159609461401632622776346530101851064320691912753896349380371390916331993546289511790121628887396509361650301713414293671802793386492903951937265035671458302372742357081569831386618675320926500529232097087636061780134223323125679345850296206755915014073676975348216663253870707652070384887822579151984810630791761630552061330795483870213802437016669842285087330158105520966970032759621487671652476346795522869058637462067769888665269740612854598324381505978530746317500316570490132315288764307176189226209949461344818625536694849310554020631995815288568966143070227366034286738422920500301452414389736871158405067095409321855678468643742811125080985245045439316501268546275856661549832854027740067824373134149248589619302052591469187480862408640181893542159592786557402717812348823329662316288543976140374158795936253015706759121650308410912164517472720377677618269804359346953463367226570754420141236586587681501116648992800220637713025332487894628439624708463129613855590100090418999182471366420012287397428400217536500091245345762356421135662511450856948294085194321074682312466842939657530615281918160182120754344484251285694739142997205838000928009004015184572926342129182889091138718993822674516403606632272831599102793664237510401775261384267778494876784237309166404622394076385910912817374870777941847389218432010399730285672253809724389749875066577697602533293911360455074529205574372483776673340852068063245341652846568535833682311522527018440050006069578605147772831886059955421490321558370875814777549631608207530151686728501290594824658724852529767418301337227310330779135706914382783049313421204261564058483512040364586249715438595233025269625990106682796118578134935566203283556365315974574033232928782072678433975717566764678953181188422295650419809941146301219170448167854049413733184788236284691848373230555608901445064884376454740615437276336706008973487360374379971097074187718066542062872085843653729983890150886206504753176553883831013533392208053337390846247420764565954762544485420867799871409359289256928349341130885086055668257780699864466816790822188719381953591441202269987000142319911359859969820578423835382722311311355014078520888910461024133423331775081938624148898254859795610405978534113704945407464630135183054842108963450597861065049666089237855166160434783319843196826141956766526687601195613323545449625776429432124330990850390202221835555580775268046677669739164094190062682425008675293672720719974664627702846968298155629904181810137322850516070574951378770876102785333655822388887047228834209388700131304277481756163412401382824233428066646331911959853059764094160784435172560614951442927781373756509514812216763625893568003863021826813218514017019064186206926012585099827930527386231573057409335104986717798509971559187761528268751962358218760023518755329242811349527360734240072983659828784341490736190461642939170403382007294149174047543807200871955752396393146962669506938994928664850255777398496715793763508687874365261210849131797034675251312982852814223669102415908768709403632551003933011503975485379899867017543564709792163392273593368717401732773816819804037983339631235297721231072223362013793544209872309539565843630348371494831035746940148905221477941845205047271227760636017795250047022928368866636506694064487047004159970618505073087810864038310908196670015860834631271023815349691857483723995676139064796416412618350191700748074745408318265062312776137968504787019403007715852283110032969427632281587672635938026407050569657828676917091682818629347801100397382538954142796030523183624211827693088401008996575433783926820169105503368617867203594125314504467945103359615117476680597250019100769347295963640470685412379299165364438789442515290748162440515229889914973746487134769255601299241767855103081432149078119487855485492063411936535855809226910155233775693710455089905520189016083697513295145435855319446827987957953910485574278803058548656410783603262704613064437362578151274573460299339885215722934588154742457835342799537052224769701332883400740310757942395789734890299987729841234285408413485655355525968361712840606085286277406477665336610444399562757294797244821460831145286100038956031035654931180189268354609546490009784848449342077511665929152785897734390621853888783204088763500646556003462408468185062600129392699676627074920592116310346868576121492718505383600294849428884739564840387230144618013894278968910117773809648779258564199748444860490240504862107338925791459909456744297050137370551161461202464861474282119866814035489133874223543773871717925183707459102782830534912925309379064616499599809709840720123643478051228411193692484758465928569621389976309976805775873838513093324095304923559000085248195503206407450974397003164923008460161788159009861939281205155369026486604153684558897162187932854631611264819202456924452291228601383847756887086533251648305855907670122309360461754275837309823584296467087400978524552883633142006058968231682782284615363630767623234660897156878488608528025261413622130622503995844212067006213470559503691364178501086473065863038354676381750747916216871648171640809587668547092492667241885443062892595034785236353503955958409022046284293768931252705494987611943783910694370826868640893790326235403244368571416604473938560905325747669644843952498084885660698497814483985800319775955623698774238450717520045422984275038226364286985211846860882587173014403681959134326649104263343194217702358475026964876003494054070938297467615166382285231638729873244950545021030375493618088545900727768037713170106835268750154661993925091714900221238393698513784278565707008404674507432553832608330197451496138736048159771279463673855897023607169559177227715050509896881479684149287701877201568213563273939635997206398833797969193744753806201123470857224415926932357825836341017668057042069695818326967356148150485811500522253955347594536205119387730486770387532691042817899522659713887251664492703392047363456560733894973554302076310457355700030744550188532070286699091636404724326989115282028234961576365426663098737436581433367908631583158802796346689720704140987301180157828554330418044618560378664859084581473145245163294922627802593689403838476106661134378749117373032645540602047305992955542598657340770380980023845696583515301888169666017433203885046479257379744450598517388211204625775174923059148596372811327445333371202278595842413884166630867916195172162673664096415063676134005805563296200643870578756354909819848515127836617831477643352573999329164199108317859078093068145866356270571187958188918087430737712414373930359354865006181672702995656963594710597302527778549238842361578244189939100813948485119402270216270352551363661801160155714723849126716368124622706930070722872935133648090795659709511068107200034121031276305779583375453305783149178091296883983107170498560506054764646975544734963333799553981663158166224492082013338579087294063547909139358135335949445835914900468698267415235732594536669284084460475093317063909608202376035898379300347298673493538193702665479892569827489797845015532655467001834578426327659898648659354565933401614538085101520122346845125218771730679763370006676773805630525253688395852188745711436255835589245543737678036893532420294647792537601026243106037856807669115762668722143495647832015903909416659682971934525845997952080577839402852084929256078196313139723142860096676343453678400725304614735640531551424172932542040876448653377677939250252439629286142566678131691918957008020313303909382547345723377307970103304099345516968863776991391212001070555841622220576365814923716221847912452092683648565548257986315048095416103819082088195426869009540182661954799022757344180876752667465729012945284994934386026619423635884757816016416491963495414364879827212885478006462320834074417244817775312260539002126934252020182344537987023495045697691788401777234733492975477197375139032290106470844786369566550907572563750775452128512784268759559219379353414042711841607821513237006004054065952214854393941016565110552453088848126103623176087255900646010733037719863773824624922093501796190296123736345649492292488379294140323448500644360107813241294935335984734077407367016245672685386079748127010076531567397852117373222138381814132372929308720011210186980873109051782940280800175646426628356874676864718104322697645405150595666418417737056180584818721106714230946419847535774675138041901052374228887442506574541368058426487352886820949382508536796023606593731220933379723387740688026167420412697372881262826545920895798930567488534245698802556972097728545700324312830456304455903738928643450426657713915254571828145653805213030579977333325938434533372352327193169055556333200836818898579187399212106747934442194028630293981241472143967859806718559883081231757797852676430975354562363685907858504641370034341983394174538177077266425610166543844491801028203148546041617944391712309351074622332196459402674998509040057325490506388579817384029112815817120491533336150362087068045004350982367520083969353599092652513308507338960519190818270294341037556170563192995448924727942057532362043691237910702414952587397464682065988350743576218732627715582249469704834980867450393438845787225517144260324268561809740642828523679382576068347499246035773428084406864784456819423131030683940532415388467877839789496292562014687252219507313165792807287071936452218092187433157819879765985501765222281830677840778675538366436560643493474133370958473420588573740761327910248508591215799618946635624769767345667679591804757038341227659242059144966258173510143702403545726677507858796378443550941516275106802985145262292752287094155176544995005096797661306621331573512352704771188792093647040938165884461295872418486778656058448931277548399750821754250863949475419294532921428921608205439434761746245480746557437139277932566980183860167941824572901730349956896197097403052785821033359385389474445995735215415432719800736859562695205654415412568019735342083212563479810248168075992678004750991230128152587445154487972828350090182760355543765611264450043254449827708432150846291814505667007719416342574758982149280425879077379411044682884044330859933439163030207225223437886498482717073791995269371792986909169452888062477496452210081755399770098469465138838511236302769648425934366202771826025210942851858202397895609685349692205503758244412584212101720174009379037441175920120454234051032913378691083072004281187114476350050170307677648602277379689961801570642761057043431824514724401603528115672212062355858721020864508820792400474283199015364892357087531352013199847432773623474154625492892062203059245228096661653671130036656634529403023082216794189251513571255831854869944922002176051868363269833288987777518531087382242172489390576238349162165873296181788142819960948696306822946518684553595406514507206409950996359381439105105916128882242322336087698656303828456474718314041280304403679394424167520663272708068134764490460590236406458974984756669927752627647086140999444160582312391655759979092842883415050227742025056769483152509434966339163914054315342650500083039030820887569854149183606655342719178960696675744483953263537906540744162044009634523051132634498179813882304034911460591732740675124250982109437541977312991507287363549737593381532503485323002792509092729835020540926290467895996965418523042733767881850861111967146860641943324757897097109209635779542632119589195760039539475338512675588749393129572611128617139258900067878747850035697598642149166683679355334751428972538755797331608160743948861089107000736075250401349976536127205931475910502764455405604606947088527011240251868109804843315520369050517799981370507551188766718497143529446060750690167165703993576391744715996019169478316620546213547931964293027492530794078541359517821147001906471963643387682477342782702801784946685145661920275576593905713796508205664571238963839530834438136529965439302315652244835184189104729412784805626121968942561305452320873051569452094338640354050445498591796933993487875461168353942775039749628526478726052763902136410010909545839544059483476569383473444820334014342716226301367820970615151054507552192401372293078649223458359542829853790933333586230084878793848005706762839498757767785196311532501608018361084559505615673746259360815639896789671399643439759988145463301337119386301375090029039607356590895013946038600140619123490890268198996368020922763761993211860368399007555600630895719062957946370252187565845924254569543927742815194345664770346580442534109028156608257686911109982132163999464716226387709222528363939468247786575302064890673146126055461301323625837838019112325552040783625470363786172829992698273073493657595204400060745910437745027599644947706614757295058338502860448250714044457503070027613950102218806713752690789808711087920035628588641109390436480982310789457766385251696013066318228490401042739313110297462053789234837024401591230317391462829131222608957016009023471499674826989620860429989215656087868015789907879027300082360766111330407472607775742951041304033650454849510499406924823913501128176286053784105697991608624043523345628569478520447144993079051817029180823565120737335653958270848472676269067850400935314507923257524604394470614197324832797596340673285308101920245862344908359453407952388749730271067431111605418105719291178090997716550404083240317421349580325948959982980211924110723586094417160346762028268527855315367400018248420155761024682006277492670570818174170900408094104678038911408846068434061677104833684772677946346071065958577503518982983758808568255519387077883130181565581065319317186831868330363845641615083873085281042818513405773805898571498936010681667950707560439615147913035974149080168599827051094201758825175978531649494241610262368539537951785927728436504943069139528386725110637827439005899628503090934294560738249459654786597834176691221154738582185231887303079889376632833074473741095376705265527643729909109100874503999227880061390839351297835707058303334110400653206268320399657880120823661657295290309531149297860628528707479038518766861319360190713906190153939748833239694699805664523992627070519187948833367548188585737222320630249006654508013626479281830055665013292277857693957912558043521133575154863317312035701572917676978976873612904275254472762501152687663495585889844701889233347377932216404058538077622973879516112569019918833872638701858129720147162670824530220367676316472853651926199510151095763043276618978556490682343710882761837369227391289133616734719256979680267214481817280261870524451462011480081868985313196638754249636254682954427984480161676211407851624320903401433448670398655286137639333178277072874880138594008493461453998149981615967831425212746779438856971215172661440016775296343448079528925599474946194445313143515864178659529335171870001428386587117529948095974589751475999836802946752541432901193108955939698948553237981614729227530011935026672669044303651979225256524359483079494027338329282010523447045430535273615306459153012825068290934774339648083498488218657234199508802050905381325549600903375751924726790179545503575848367449194099007577508923012883709083396914184872490575661018766480129189519330461048245059422922367227948321577190517294474309705030512121593699907719770263125258213824789384519371693442919954989440049733722959353687771284728364123496968024283371026937051942986073365696319774362087659362520803845221851075156028146529698547990272226270448491345086154967821998120921422357651664675360469702960390846306021799534197123685515262538508139596084281975158788834127383884575631845572307479530342736318985810364436949410840376908769682907583044714518163150020533870694784652716463646560406209720486103420554631460087893801132041566546337189564295189914857991008410327095978281557207850041493646282546275115635090953847317031704529999826563553399258032329128097926502925352182348802528816821537036569697876821185718545411275900001155505974914654073766080913194666170774603217369939756143674399850351824456173291231022544121390204372007026355213238130401165674781450943130915779345157269657717601499440254983347380230571461310299959091413615575354220438807662969681620752229801422361273110408323061921926101952480906005187207655013347616341144190559221979857147731526953548192832924093973183516545342574511665054431239957797592966821908990625025963647152611643009576609247184455593690631360641204928582598320610357225769880367270237984100413181449552117685984398622406412713172039512458527404106384977943885624132647035270732813793931842771032255567380852727740210401699322068402549193956240535244306564337361919671497947666375507976313998268744146626327682331522553596023618582802469566742758803628330818988302038932958613458692470283612023733959598432488654602128917063201841268948346064175048030666182639238859970746625627158881528181301292395841886337267075925259306614710816204415222989101751620783097143339238423866891632755203452871324834759447234783439040424493125735897655352278668238247221872284282690472852316981977781851556799850946461190929499018135269544946846980105587638038370628956722054066168359549724687002874813937037719586657932914865142153170179112343646315386278395682647549524898210754001679832917337810902004867515941292140558307090331269834045001432082994084554384335373323961562087823941557885204688111176752997671914216887436545411980428073913261741297838742686838615646167110743405927302028784975126661093045478327915643688809569956365295657462489282110777722903849140867499721939134438719396101531094588901662764201844080040262671428414473577375033718347615477232473010276058486532884296901606826430634235361645314575559796169045268717592480153429658512928118591099482714616985526890078943082693656939210728481039069927732422104555511980755385451752195901270687927454632475981131985389335455332871940655053236204798036684929669686445018329489646124593633888338668533221090510742567430437102033899690848618441973972226956873760686287353241157648197604881762100339647085032389582048501899985114502452877836007321412051223823754751572128866976926097646176138019721998399975078574888484759183546533589097824622284193298647410540612567907753719033640274766859891616489166474089562020288999572732357671221344081186151125146427743889839306374411224651112450335557303941799120339314152316583336123038644955170824289807159556802174582597140456966624538198384370481697003524332921273232694529261614524582888435284134030899029515979012273454904128101880887349938199112502740681170371557040100946064842201902141265979812555426463956890219589924943978354029539404820329153799919910683806473143925891774117543478617660558424115393268704913904237726822117409668474056714512603965896777408135000885227596698440673548571528092149713071604980448400324100748330236920453284667150796851135800925153359905898850385621274628659463063600678281309112075197325980590812175982000311726810648371944900016962886294189402601791241589487762697909448298468668013020274000064867144505885749188462404258379989468139173865387928589109406437507500438479294444502126620687412079105966969256543087175099829027144561136308366694049509671967372243675493310783165923315322257386391228427438001919563229866420352836833447921221783217950220003776355798785783800877907149125683396159113365215675180747597588580989791690698014971718240362281100095693271927407568382099013603113388377094712491367104548141963130380178956062819498609078816774793828956622680716050317219297961576935390680784075872548265383797773624599394136319665306519625187379566930252641863834538937263604375977487594323102241197808694702248684036198339462912292473271485857574584204794472659482791479132745322272643198982964500208802186403816308210384118727213479000068461522702059474993047511627159430362216549971706227139073312217179985058680812076939451318929842190557730798806719165806012756453379766802229129038280036431254070754803946581424328441136876539817153157530614035113119813736765368790792468754828767482490056858180943305945872899088840063615622939255858749662947368913465132161552336236067948218996433420646397793665983587749376283033750134423992614104060228436386525534610359198570679027670703336345942553385452291277507150400499593070530889482374534293102535832906322675853878814954878479537443632884891679489968420045231645981300275034986841110230536291134984059483511832635414769650024585964111705690358770974844836430711157915814429054509943469088467610105730705276883355023081699805016408691172259385945377685811074131880681485989463437425125686787146478087140502676564498888112238484211916125403547703531939475820858743908474110081062452435614040652142598236429541243418551995758089381257844751750937847433832258193808938937700553417062214888589423014308463716600639505278367026645644164349274238181174132536170024927758111500062758385053755260825530815385507776044789349743849416346243694236912924447996666178096413571441858246586339531882398539924459902402131186206584806868432461938957393224354533375702417816076722285775215840173440101410722361052685080516916011168362335405900063619045433143281513686059986431821813488169713760947951373151017199152314124256130172258369888656674192754710590754561149004474894992945833257563785846416199687277921006673538184068113952026496772964332668038036666720528948917318693518930674300962315752295536183539708708927391706087439939757937584910051682902519199191775135085606765635883594530354893704488519264904682390654860151276210075448649399872264530056088693787890412435641696295379380154874028738174997484912644540689864151000706625428602837300737825319285481505584033869403110523551067655951021411747076379271964054728757350201331236869183395016335167528900415556388936944248935629116936704505690429293773238952073705108040881481407064305000586975041588583131714532014692711681357830182814984314474761674648081509325339760563777963197963428511089559064432997754302556863046760880528240371708062381979488960264654102885413344626400713644771214394031653226402388424214005126933495972320579937250571955689410390039054847942842733104249414493090864195355894596080114780681953573519512780292121142284228335140319778474764055918676070714144095425599547054396328172266856852697738781972576555718875484781992880208483556642028015279007632039646026649895093598129175712195892769061078878002521660491531545920581972011670627990353857556920396974676663659156216739774435944255536226976689115700232982700952574391573093843259365007451664838782509144755622106495767808446623072822563578987792809392045746067169329036319450912302246479989470338562558132864965646237581025781639205592637028466050411992252780418284898816604610522754910836881368329840765217934755749942769546715921128694642004001196758662977932510728006502814336245424007572835980277205857782807665702797162344384670713866184138691546481507771141635172956888730484249378492738267565232117479823923006062026428797498397963880243529850121290629275859453608658111627606706198910854305077904346489156993711381564895647047125278898525214246242059164165827499580625989329185193699656434125620988840783816020267708804214930367507110403645812286559921433809451148935347035132947242358735071137150315782400997564729483456288188184858792192516111565984133470805553517052637489182818937493377686525721488639221626776232211771906240120546373302989816526826359346193982695245690360986829459758073030738796826406456343098524263255174006733309788718711068170480282190544447560332604659750042802857730334619807518982149686077272982847155850437795373222432164661046650674074424700871629778423323196122609548728942782567445049249513513170703090898548357149474887192431938481871625495665369555750816070271606492415318186828109098372711040367337484965879950970890588987596182526663282554272367106625292655429171415593313067305994110472992895777003792451521471615216554278954224677904087662047294368732490193935854824999743379978857760419032122599431601597920407524326799822627360781273207659733780998259644792705347706416361750705917112428019122028077051120167607577439484865272829690620027864485829850769561356925714701238074084159887620413869286093112899502921998947035335652695808099429801716467088626636161442833548495015464219656359575626269135479076925635860693866412514242760632620419297413672357932667811812102631212247800166544990449168708799266245928290012543714310201587636477455046021067694045539298205652927305501811858289014998799420594436271439495972446455843018431868176658580940175736314764108381748314972424065246441644189762050524417571316775451614144825932075284563765765126559483847952538762907617199604799195978726383785100605282092510796226749701837785041829854987376072788709310685258972814235111182188648690015574889679459408481837426857922933837772209303961123619919700266808524622289243462869268956779681636568777075207652001366971687546718691086583981720550760256669780826129161691267089728846443286383862821500851135654964262861449178483799456441275654694881350154757427559577151350842220530141047137554461738943200857802020943065311223433898206995244410355584426634819540275030624479267742623521008530290310581332358924903350672287236424220002770580385774697974337443860802508072448346245820945027718934656790231435988303629313344646245850861723624307043112430106609887115909729595943373723596930939438534829973471692576787759367826366602875968357449861639308601508389897368969853147960784562628406307253014494403743056874363006645731534457694167821536682071164393937419543954198373191254132343257214699742665234576886555271358745067206417993938335422684001181372085523374220558477393613286878535525669674262840727590958196055490336355239942025204691801874302175552696655848353827119290140864420273966446064504958293877507564064074706552425893181976611852332318206198049745553913622492786232469145770133922501597473661663916400624541915182548416862632976981822627278422532615087048103632762383282651413748340379734827938848414170137448527281391671992832749186702662824235399700413865097612475529771706083153085595344529814198554500627387474051438685437236611825978985212953056018898166773917313401805534368172660414639395503483680131355915197856793363238756069901682593770158739985714731189458659792756678118421585579130969991265716123029689797013652729690664358792862480706488506918058394594409200149698521940190535971275920534852171833755947980516502951904529550665760976142448920319970400893999239670083371273785239507922980097757722414406456270996150800318140424565123711888398854213316996323650824428100688561055088348636862045160562107023105929139597351873398139449441270330588473808594117335534281069838271372424605764049118449047146452258255132629334010335041309693690366069961468347635382696358372656851986724721037524469043979822383257847609559455494812223438100309784667715059566409728290016498365794121276658470169186965848782304502831503754604784542016110337301281515216880040186425272844311617675750604842649682529918144755163726906086213387402506649160096824793375036527695129422278109553022325647241017602468204018075139637942946856004593837202266896468567949241201786197773491910521658789269444982059332317537375094551213321494013677283756001669557897945810399513059041589897994311428991808509703526782751100501545851976225784976869197938532385074516613437951005461787046605056180527427726494080843304926037912656026598611087760848141770963795048836108630137718921858081823796279614710831254349983848710823565050501060300489302465501165352137141026791580749304555098279949815194053016920708525520528522332052272791735376915958427218634482834912224441139916606873153736721569583346747344620667773963384257222456309619952132049042651676206896193598369201171617865282081096365126451073193239466907516418784077687002234941158924512433960432537720079440723833313100354438911563628356840850638058638890727872753330787093267751360716728144260582087700162163270270434538175027380785092855852557009948345426865714968702391633947702519614930674936093791253219859235538624710201546711647673015818434100149771656186806075000410877162568106861977673853961756012417383737790760645992489180020550249201954200256709891174507642535987159596843844317224571804710108304814985082718289012258652723719267183236206451924191627884884388364519926571758507076212550171254587263894413569643374611196348330685288262951452809675998489935229351295769497041123292766252927123085593661021665296891149852615876725498038746469211918707626626424649312605567000868457499984568861827354739955146877464807759881255793980567580240130484839734201076196808534116892425455621302687607504257640022695843582014355360893049089497153457926407406961318275746804891881864536078766533646022361963160210629255776697658396562220078172234795848874176884843821812978323975527162354864242759754007138603342074773252688582477526874406023647692034523362121895521385059833353588139422960487865845939856426822866561069011937374551230157798319325146958374347262766769124680481907688858728545210912300549546905721133209964044620005336785983375577905205630147054010043991918872681446403720455936305189364317894253915181818433001739830660288053526304264884818345422089698224950428737178450079863526791122228452387273952755897719131870964535583109411131596761524399022348637825026716254992189830311613443944114747897064555006720345092984298737209806784011502465677889956884682108272755598366196503902734143278196981476242955441493576878547535514071828552974844375965575002019208237084444408288526388498374096303291382072560944618834541076704274719764802317776380205371307671788885707018328926159741028034297961234989283383907338187104417018020784039851891974796577245797457933354492739021032834559398100091063450923136857816861650646640199407232054232668249702285427402773930716017126455183807997844770139238745503208530247157040475288735092332647764632471558501010684702492656030696699342118424773338460467801354429736501605716826186637092157325889758088590176612764831080965273871223267956210557338005221133928942159529682856587615229766919857660932186483808390360881813010826996299686582538920952439703114402011357791874451481660249240829575718515077976425807841025921932042583487960306577957296212274509529028398736995375475040957408767575032922428929608213374707503669685026345447264761583137631008460550096197598232549269159428742914762471066192170072893242524748457342886342437337936787073561117784485842738676820129692636890700282517958946739697240018971194791228334485482295025275680791007349130522424352748764854764199742664597918657401014354978039370528365919337766261266965332262459369604558018698036884621449628685252733661452462939082524679039077233204465802030090595061867176801745842430979448082554226732894252038360104857500113479219737243315821562718329141786365336265609530348741951895393379166295470190508862964583740165720006485818459012662335484616993297189898119066233073260556974216262426057349623710585118491127953423374958430483192343645505672862404115416581023307893557350171587114629769583920781113630211007656328527868973325129233758998041052802606205970118201178368822042560843893475207787170772240690516551558411739370879642090161250736715199821213191257208015737820613369370445896919046228771901154315066675454501775825964618379968732790124636814072873949399590893334778221214223008464966644517204945141073092859611987655716727197034700610959842399650309115165240869946199225699033703024692801085772420424742538191721044111329347893597449305770801208407184762294760058456440840749419809009299074382694146896108573144494930733343035143534123055724356002708792623949963532438168777051580202362773857633390601723766111949172274057409046496415946676172615850366838964285795386153021660778289864462658074031595677989071708620603547606574403089063519164475554341143401159557690445146713565387714283740805678533832685015912386199036597963093706046394779772599933899952522630969532588033134533366451823030359160539263617195969900958395473893684129974124275695871484096325594823864091706623221020057881435791822113470950131751476083138779140914444167163393528642042372819930392367456057643826922645482987975979713479224253291291454352658071540325895757404017733104172212514378545149073509260835505339511902927395099063081912330195066453670930106480369910146768073217470494020049142815769949671194618183400935146210106386698518056342297512079309359183205557429130605066041315533834750360164959095494567554033566589611374872453903321117287920983480680199756920724886626608636906047914562805596567766221471278883030087043454395900809137918640216138235711151673674760603452890777654888171841065505523748004375050355425282435046201272622159291947568499101132448538229506048980770760850251116677990900622296836453102110011836317494438565019955406880149369270097397617896330180145625600479004825764800704437030978610570957285167270028853653921736872398865604842450862673072949214905175786658798494445559911397679727817919295502360180437490300162324016186665311080686002415321470909479771411172974223496715569357214135402777915709398606751796046528196402739752124841736690764053351627639028365373622783292077862400371958377882842472131519582033130281498661722878390611090494880001071485278018976905715299792544202704359286890551956627811773568127932267943709456679783150749115778075013812221831805044624214517459316485960015653217885678934373835850376368368068635140530894038627988732528168241021377016495846770810347915163288223849322101020923936737041118743022123194431862252919555414133600746234677364468870222856047514946465877739508559738229734118883849729379314064486425002751833652949559161608851615706749939092990434315808176348984620709192573710529853150341958438317210195731894457028532487037924894152888066310597763948314441562036949323112508147896935423911830918790604133144095073909171851034086437856227418565348544633840346941402791192207265792401501111133489592685733922202534860584701403935402454235499871947874165573946964293293455198955117254445911153595023180213110702666356274525087297255329877528937441503493181651673935032156043001808213029560307167846590108529166945147592280293961981700117463222123238483084848503424529026346242430846817436187500492023198374601661263401418220050474823254530466128004645187114238152687084750984133206748388445833666497685122763685030307515858420404925943349600039311176515856375100471259318830941334071272066048446551724047954354337885272020177059899037877889248916129030489797455372044416281214317084344674437690039903074337827540998471723412639116481278683684243992383263202637173582723774544078456575573834634742846204574498021462628971276171619258949737300515726308663001970751206711716883877604646032080678203606108482584940710032107009250809318667343689535343612662929037222492919877470768215095853211185971128812058141289339443011119960702006665339155600579022961915710427606803988141534698502675903979140661099412764425039075871503292919528425815827861012311467013573996494962199684903320100546698331420690198920588073411313320631322980777220099529553827091171066210319436231893709659088284277452552510577361058492844357995880884761974245575046485015258132688976196799962189469862629344505119779231560905329768036696201695753004926519935304623737471852956605794138579505931745423129525431566528331060844884613512500800673933388879788126765978376977340090618351923770428329399470055192683071934673038279505857868650549126644389238837368661051313727235775624098411365557466056216756226767633182716224101519875941537619468079297290385725131625277277220981757071485886131461318126285014786013438113573692207820979786315532153373687732803271631449441101295419355845670762536737577108631712577196697760437474774921073655682403583550998971226778503536183300827726215849904354422316524043357633093452382191071265353038101350661843505771456399548510942050436737508651943840389999351980045233998281922940190597344132515178985456931451007410914261721407970203814126127983268329602778139651547379551697109486255464968500281608377398239542754739787096191441099568866887616436102118608361923144453155300812782856951884067152464066465593623348036501815766602247009845106983843190846996788507462948465917079364966868331746216573838722509671685673885376009761028459747938082776466374626616810252678970529906852114759920778870987474909455347635265129775127486852218292837164643688795307476673477156716642622576393333365468087476374045694464681748072699298640220952998706768598292324630387655542668448950305656299889490972239784094120375806709369764413371618083888652675274886109749448570163227674124364573210032225526421352021676125565691078833977478513595500288511514987632423446264359045104177015845683027921889106633796774034889588520222797624151251876171036017161156128871458738942878658661755666897253707719964549648879968731401958185258693540015038943689276843518420578979774723674305705625112620364934343356615897304163445845346586312008499387810900596064007939153081377426621726068018033857035737837675376496156455134265401005706919449596994007112878546231636406946372269162897764406279703919306616688840373329760192365590608749379787707304338711403852822429338349226800116541683135694082456549405414679826718715493118723021887605469297295603120043989591654948609228174144505216745915060866129559704513949731406474815302794344033748239345555863824199825006312294991123555119662114312936119351121329699214812097907822907808683498110623886966958000744095273266424064468279669329130333249902344319128469290869333941582535430652298935864188365055361759704648140755598957423766370783044121559618760198245973235525067037758043503863893250778550674163236872038361772352458850523651357498231596841025269630085117732541953783365208567719604204868406841386553837607819433508219923816092567029644347012914941321223202316081704059946463992441854599780755295223481701746298791256412034128415746185779132258763698151836347523235065671126644788938078243263971876626275180918013907687012267555040665247672659273099996430473681316521536281548497575594654888309469873509858231095129583584167584356146808888440537607672270755932693913137134202760778802886369205069426641168904271465841463825536345395741000120282774646330931461148360436840690742138297747260579161136718308804368080346968150560062164811336701613590483656979840524476639296295117520364584973655689292402418601220616502403964853490478293364005777547329227869842990381886038352817324064298796400234073604019225619772397878456064237767527703481375582123786400724975857157432388265337275211398762884857937792101652326132189620121528183565332085784504885985447407950890897587604707035935955449038708579192525656025380038028459700077789875388609641166390156924190269740442477718370398636390415255313609129749192061738268279310164377087566908548739053202363120510711161988095560486856734096574243593410980314266388532711179250491516684488535998658745209962229669954998000954456181771705448939082056813386775252768451886421625311259085630353561589174849903169882145502639005178607657442510363865266897994125572982531109978029785980522308322662476248038123889840445470150679938976900752070404870582038487506000270561072536853589966369879564048366698553811713425145033492472989503103162666970449123378005173919786452644368580978907614346295499211989625457919100013955789584923539647475178042963628270089556932376712334671369541250967364684862814333362671013438260874347456205077637605000464197809183030433656632787065359561697520900064466902213900739613996235017004822686505267698584149129067349396926656497437475177232955299218190166128981903481190047195894453089837622180958506077730772089761041053557834828220862630617402664176385399978414666877211194383672265981672197519426243588524244458757142797910880793485164171397529793943493635513698887023550086823537250137218015723462380580018342639348900321394696583578156613474366934219863324492466723836231943266529847103802276836588769239524832850467791324098898255666887652409032402265667996673284892563008515860699884604860794291197200256525561654973190104692942792109745336580292565153303971901423637802310763643443525032937458831036648551454568428001263042034118371762367340725982367204735062466873851910985940126413028693873913826054064145741911339081637626208335360951019896564856136073252822447801354560394822181748423568992203124331172068514621318221155087733802106127086707228449022122201511408092970764100564951255775480318151705367955684394844724627726842126183942074587020220430676559019802656245037893754956773032050867166541862191440698835673785568563446622442077381738670106720221646316092360050391779947119646531402547329422375752675635963949357113997147941991799373301332337307368301537206103836646344879018529578524286397713108942026607421645916509889218284452295810569922097748561950224102891071216229813930191319172369211412020368133915854437289859686405294283868543764706334618538088502539092432341614244026201552810397558127863369124650443744278370022712003478706975106476113065936283211559332844183660900845282164914513996738388755642797267110002564567783670581873826641742906890881249420416994616598278538754873903183920212751697470319616816973468036289497226423176898969593669666006110703875225482130552519946658243327760519577389656152548563954481914990108922221869642788810785084224210214745459979586408490861172696908585017845957951452297595269611718040892957734947785878947641454526618922141460185616033783065939223518074339065914921239445771319312015053006422599658874407547680198945902837890778571275807047300669068515612461709116570706521609969070385245762495304513703774881704079362021346444758889512384382680280212535616760112318725792148241380114432057538097327879866304572648971995618462390687561519829217739580636570749567286704691456296803362685868985812047868112751274788434435439087801287725786655255430747125841655091331647724931770882820660460234796470534421824008743554243847052982397777670015129383910056317237608850221031193530669794036719253363702836535930371624546930847551544445769380076292984750714537675207553675495777892944220523205849944234789426911823810122525516630747004173821452695940602339179108049683545388778351414500719815193504242385504538162155697704398808325277628590178612538722227945674852450709551636998987460412440404805494935338532958470842338360407231380328193822080884880600413452724973893004181816234320078187364278470300012353915617941178144977287210799110294714239431178700439012481269622588794274269216059704936611060518515974856166819757548473410814835978907213345744368648047611725642509530878872778803261400420302568173082161952315154245756117543191019160112286566561574460594634977672263838167432653258119945337195129488254382739460407682994461423866537991704785894873289710876252284087481698500349466479404352209524967109443717837336442618921416262135120029408595871993993821217806823482392877439749723855766002978574676511458955826299723429941181144685293826625580182855689479703221159630543283804597887295229240709753221536810710761548222138692647475171366477457582251745245983643563766910997649950279135384294696463416498732523681385204501913865217529331310146616157105314541194404163634800917507602037119031006671825927472988904785639591847944598116976514345147068042150162112816372195394879026555129331105988070345837146552475397649074581597166051553938539656460839014583932686489839224555153326331185436587663887377525028899002772671117826425309091520097414399598770003929175506523854878287481898113908445885163136225020308293960556629761910617805938171809953246357466821684906741710691019234605348329043735654493100886154227348741894609929739054299141872333673495068064523718508396350693161200936197309436206784025723448665299723637034410763946771658518899909534711034948929774692564008728840049467286374074479532908206855011698408231094677474254475717608732649636591667733473782808727426464680503077059204377817372665818403526851601370411924869155035683326722466287968610388721510111341845330024895466897021651121342986140679116798151669661351038076917201743237251518704766612441994337111406927687814946707604212450824061711274780025883838397884925451586615293221729447804395996199047578240074716992602457330675540232779518298090776418792815341347896099810285660304353759222642179662136585209239383929693056922758409188721032182895676545593699996196743836609441037250532655738922015291497981950201732468925353051774209125418886798572990397889891758979184014428766791006881327838802820095850312317289128691788729353031871997885533655819027730041655306050381113095365987890561206270610754137401838299287425857555551507957027079220702618278070895041811556135815008807034756047939663572675767586960418096700016627896616700502279161357227587697433209351363545736376119349945287490061371914343316538592339619392256375664947092047006172336639936673706520337686684219308643183149288567224501717400488000218273507514748844722207219109539230692563523915176263899529675003369974782282628720661622111417815030581635520102040274427207366194392887527091923874517425989156947528263830446987986639528059531792524162947113218602234314547983688847956811788772390739148172810740743472385086427166637151418096105264089482255574296197259287705225386227812905343958236275057975794661083545390495476097646787526698774007890180081514062444387527989071997022263546900944245819702172500110019993034716895416950991734563932530464823581883999682449521899307233538480077351953686254951377205013433417476041904046474162657181083708527284065160370592597025571686499066029209806678970660789008155989997174610814169854184102304964895918817138390325840642179516291268380051586726414430075569344734149469010085597943808287481509336403665393156441310755041825347054600610492072817618306014333341921475165813404267251174969091521072092279758979150689574497185541859186535626450243663065012183892618858425116844124513558932101684911189331069693937956879719731544689673758369979260488174772529409858861533246306192635890185901425410650891568453396124275912268556812114196296227076205635462784763197071647171848554469418671530241358483030234868243759300253710623176406031160560372348430513440656537240088330689053411797503557152019255055320698450186838079112423003905016302471771970506114099583087518972304629856694278137299997417399365961379182818718684897427468868799189762245236831964043058756427841775580841601866171640263103661662933551245784488735097460490214644129869006387131818019984969357572706738245635431655871899023222228165822267206886667253237193067773141877423167246917698559952718858517136171778099545218937679658143964506152776312322762551724711200348768842509476089258415472593460554284920387699764235257469594040265860041967458740283103466324814184200760886464134254547375068151482909628565102235823439352920818954924017718632574381896065906694015058408976235307166005986680044984184604736610363754627771042652184715270715162015276784414754583213908105031377221493605757791107695912843086309206639589490628937256910529169464780145599513237289515329391554583800511619666144141453897213053971232785623961927664329636406985900916097358157955576078370696154352881888012112073523354943332457208171827156301657994371895627731555724219912656751227695795029816091452153082746466856773888881393550259905504146325008576932993323519533570577359703269084707001456363955720821501333702785766374644619999460604211857358101394210683396834851818236275681093793483989457180692627124114009033126139012499937842829060178542497167393796050068467943717024015728794398844063740300559434327247718920075315543962672338266614280006665426750244879303967140182850436342309089467423357911352164916448598866857511631629733618972372696102135290413080090732409341090891499592640495110547785991660863624741928089886609253542835149400628045241085161919325311843967065091729768941945436670161451942146809284006483657676923553168238033617684214836857764894069819684263715249149844242357905518572952050103204320286286924327253629789528721481963411943739324786053896648135397141721432866152825517911967264254029348198782984453170058982996684356310926952660861426226714650671634428579198216103006764552319568302456425806190050839748097764517450934437113172564952451950879065336878573086938853294066439906626532650674211118745858118015163053999228176701168574262834188900474085813485010649941728813988681700690476980203135449596589855762531305960719555736227442178047421078801316374801299839272189095393325195312715977149301082499457314190932258325917613917002515439350976912416180299511713667048301790642554874289098658944299557670549205529196713480745376855242685242249160097304206008617987299138388151516108509973874729840398939840757615379394058642515313909981671604643702467262019214487466650596838502369319835535878160489033694482174439987493960895359853301736681636382667014859084511251592399157888768671388819022879942183527084652288373980564769994356236870152080610179080320485255204028917278643730643247876280261423122890422854062352823343791267149267906068089976521810527846817225085229014168461409056043733190492551223755006054149948442688227675379615753559627978699393896290313110813446535013463097880558544568047592241550410362019334013669921314509046362454185693304621551074978796935427570965723775199397153731557025834037433399021244138793775039257384910744677098535954244657513504995054911134104942827116573160494414306085813105466805446420626535281386345343783663607272143599499624091873324184616527285827824825235679689964119935531288069462505881064180033193847384506274356847883640323199153197863649078738118861103304803134496956298930916477594404822354557020826152023369160767503883125789298772259773839362483699475659269886389110053558002029457338229075185073415549937508405508152942284442591508347153558064167563369377696423642453022150151027369311829524483921704085938846991368720132873649478987633458436045951071077721094250537851395659342271811141566803658413182682307980162342156576879911588389201707216430178778281406264302788406680883362107948439701564568791535415184390772421166139570538939278900369514171984108722575338308621702844804013739681404158301884900591790881669765598094906385073146900225322235459445738099741857018871707843035205392146916849910069062378565738952228520166273783212470618634714072212647798726754121427607648458989521959153968064086240480352581529773331888060542821042099621562235422569017553214097745755828595303442831268343552102944450019378368495478016301063892624974211174740750246404265583912511241817543042893117240676288951329852608011940203944585198017373979507661036219667248727698614359528724483317095925654221213348391708933198201055991159237507573982952833792058562890543153749279087965915402180005882434106107570318130158713782467441990937014282804699787598760953962148641663272938249882128700556967810875835343050516212861810519114297251232100837326189928299602418819889911834254413043540832075809808835020253277155802250663899257217482979934231199754685714121733054101069926875056426361433672782295919165934828842666673362612744040515527550322548405757858674401375712383106770652438314713960879140845148585821616914232010230467783572364727862591378822804384545879331402525843598711037952220344962947299199661273853705841410456072890673303779951321526113667851922332875444846556725870683950258421852938887515031929738756405067750499421160959782061225263681853725440534125738005297010673584800822128144986554580950761981438272633965555738601640764344815941333544835020716543740103613009599713213525691786000291672938381303318433817839184409325564459612391122923280349841260568202568978814325452444063819497097695707639703385463071241625169511913219515687875845656333743215620400146680219596739492441498559908740272028769814519284304953102988866671629734642901322571732055750001142811456671712396899407468931776426778591051848746302505142247221350265189999179081619202269175555520577995532646461055227015164138975899954869277103905561358841695079667117799158365878604043664568800662938041434487008397487505506106774029594178573311286056390721701562451108446583793069449060328473767842788617338021476966145374410009950696449800001435900412789411712270705582490543731452436337051942189204996368428100800918916859327602923992423808671164260651261177133141079423812264010143964315625064541564449043072584183687790135103628956609147481626096260167276849103491504355529645053383336718202347536996546657100190572882818384279218796060643067155993221488098580281033521660087148378234647179748819288712027091305236274970547516054199558869122978396950942422700826912598877565929112131588707984509221620706468883252459611440234802265233909581156582650588368873470665357295134087740661073781967389260088570239693277301155767782189370012225049551001785948922766533694969411378347902618901219446519379719676108832511153497188770693319567215945071517653751748971037250555428109775133762937159999988737168589575212088576932541237676670450410933083789483857530577534809804610467627859839656897443979286472663220044997110033588455989961847675053683803277094155446958320772122489113051976471356549252065396504802445854058607269685351007112429764421299817700203067698068561194829200372784854621346663717264669363294361269548154535507814039813714848666260027473920866547649104050251612883550207859224184175274497914356984326172481998060995220584234830085084294160591461249672539501000586525386730503391323664665522405516999507970243545344268797253620427645776634107777968829040274740439165496744229044622106036801988524724691585011212803450266352526570063400331869441196233135112777434931640961714286588804149191526749962032433862277607063584437923152811630408692664480404972285470525800700731209483521023066732446420832011807139108869649088653719437138104818682913730866535994629198892593256876061006523470920897715643774209230922826872101889583150521489420852659448809705940650163567037343545743817497491642455513464177675844837157463062703593983135273282619087795661252026931948097605326149644641503229651970347215200170029407281008312459037836551418491667214685269627136219559140528607653148194510826239671485874470396120289352734733673051486692925086346477050383978175770110493432647261957660219188420379225020481897199235420521705163868090551048198024374555334116017404324030662584284254117850555868231989687468807029537378958735899124896058383072237059956854557972232042185732693782568438959250879090972613884653014581740092452418816541227488381702328690987592975344897828061729948725843838798334078920297847818953083412194269833184936080025157588435951749738936463859351552974742682918514453910156234815153632496352178081071285445057282311776504865285088962174762305863342304252568843740039169675353327659958716263999253884425170899116506336648431639331771412805719868648494721499967741785287900173871901893625533745161690828289772173118735615177466678341991320040805284984363734253263659831259317256431580792021091214210283955170168163368517854029113049155845968541839422637161324840038863909020307498068498938668527141154642584953329943973945624416646970879544415889971071219068449517830361958633640127419626023635527156941222555220351978823499668073962012979591122683891795475449415979094359782463822863186466939558106197535462220582148946425090458184189355167329257833371739082672733192264166381409422052722028122699526089403549561368185591963817038992209955720517950480196107761923167502282530263538785387565671807770570437903426558490183329093638095386430461667750873091538455981853226197894854872544086197842298757449424760179614222664518669473804677582902075303753255284032758324550229249550717742896714274196673969846197640716310601803006133897794233979594146825702380353932136339853725611956823571731914268917278937393234156346331933848404882905688566720526252914830724467340040499971943063246150630019734615430488535795645158191639063992738158059887384982392440423350844297240378688279636475151935893258458173513485531566618566060291291286101702217411648518217635006740322374574995241715893984420161541368817105321306048830523286762405208629252228939840286356416244369433026075458298934701096921446784373404119141235433014914215868955088169909940337222164927847422283962183290574665965917962698794859088513982294750324607702917847278843334505630233374495414349208055705842194869369061678215170590483625497842186702951701914818590495273121192680054041790755074167281381776028508702222184513284614777348846565560387475501324243506014986324306552708451070187601237175630322586671769374373410817457082331079218796735655269387313714759079713603009973235913409565490107223209656609260533731664700102794830969087062094021259377064914987583472318841699022346963762374705293192200822831689317416214899753073021784198448124065330814199026070697283250879573468310042104711409960379148587285491821560242472276511681995733321411810765197724682976045644152831189589385443412068782314591591766659517347127975008454068325591145328324586636937406101913468437494263851697597557718605982308694781177086552018201354640900642356362280724218743160568635871333886952527540397375600359686109515004746949110369845515254901808318784210842513459333939195310685704079366411111747946630010007831029208087512754958646705063076058947618927933492463562201406506554727757496087536444476220133610440149489602095553508642319678664095805860271917956206589991870064952675533251327372773207041855056801149660509953827986778780694322720661393265682699231740669099664172849173538551832946863738342957198842767847454431234916315045260454466810337678607945978169232323474135732445749583991480522660247458910871246597705554010240212801445391395876485252075132201009956604728657454025474559632736578857706140538616398072408499518912132257266834502442077852870048753858404705646641645619904140012234123416837166637349169125545810236341450120870034715062637046181531829788606521023444363844417475640212154801923479249246128682991433621270547244095528208483773107711336547537801845459697461759008214880994739812845650705943865336989304971861254675494699734015656360910896912007334629204897771507342001768055103965429594333311339350280367712943675566777737337007337152375935043247197228204615118269515414566868934686586289790287738655295448497489318401110256326933979945042917964553595992165366675516529532848329661573001421841596296723688246864443373359384863113170528061422654968965283479469728756817216491170332827066610936361411224149259366814621741549374717147960044228368844377087297959676609802641394728474141377322946165105672277899110636014887080792236226591763093746790979624043949094943170607505136200152062468606890102704632688801381278601021815447095265340055050162210987948567929656942633806510818028114671049562983147323880429438580620944793942256298166415455834074142320539278030932582815129553057857417771246498189934614948318001914460002564870202010168609141044718147229629761930280565267069064435793027524728407309993455724699784681340302877774264068955743698741652423083414147942086006355972197326553523898574717640590304550129932455336010151048974221284721024882691174384731864720438027023618179921398869143072569886147617175176796563931997031884863385583682627494233505093935833932138608513776793641094473634134410737087743923283635282473457472745180709742475514744432764476502569265956175567131875353300147721707467540380819881201832941197551408796480005811753520761032662710404719134269591853985158680171484286530467590112608844592925820791061902779817533104600966919112149756019720658665221149525821610312322170747866570554124331464335742111356388023528142630336493001195194218932242863827340435394490438564575721933812554517107565514288308016987686267210595585696113567441516767063477245843377394841562810204942528931340967259177670031416495294381717764301816604326037196788360362820289005929378016107485882271207781010897372754239910952343502344939425199095854962108634155380059025781515376742547654453533558409704323257758247188218436863120880666241769796440447175315624410808774042672978201414033615596471490976997442348094014249030528942859385285546381893174173567731592477857021733407784356964660349916385245615670544492438307823851265362596899877507296243821388732262005428225712871552465502855513505537098230896985120803634051582213251613003368082786053078280148082793565927496863942286374147140784422016067505558499212714635741447044042434736591803757639137778671568382527574175139922144787106693938125325988522394018499214258644727205602829648184661690549603392760062266717852651488028411079631763432267718464611618009842871270035878506661756421991410981256018426663195390072646447338842944498581007615290695506306665562527790943543491634641908890617706657674994085684359860689996179303509894127292434867281984122457669643706820532767774469244526738545939150284667528983108763452024242044540938549492103950647512888220478293547327986360309664433618027840245293339412820835762274072637594557163707183725268747978933236490856257153061308491442575278650190741789151095792572223454947830067204669807782403643850100991409697420408747158944948712275243805579633072521973575893340820143340393808851014715392283398188708246463005694242577778101391383435403941851787427470625524671027257143486938754117532424603894095368553063752135949575192864258217514618602250787097108106527462795603297669427080134302982345920849209305526385034741579594988424374499618560810691506746468069175678243309126984373918548062894234042247426420364629374949114613914542241918997957085155679748981410006226448840366691085156107716458800615002806661867808082620724726029578196082508764306761283452224371312497097596782259760111643826788097337726105818968463624197433474191571058304444544854235299858401723670047292202147878522349626703897759316486684091904773050268371616985851659715093850757624531574252039633444660129694716640194499326712916756984264758637532839944356497685285649067725186337077037995568581451407445491920868691292824874852782003144994596616991568487941362034087506609910164759536374250784811166727258284664280645091951620187796924351205847828977065175074880778554362635529240055518561333641291667762487733429475900497702305313434527832304750696287514219221230276557555704078538466274599989841018714973440981381176097473168580244839894424273383586535904650950127456048727995364074260158843041282343783520115838925315219571603844580557949368052959015860736015465502187308848709434559036383085170041376663798181006561345131414897621121379401540371699226637734648855783624005961032024484343969062389127197666064362028319813396062867805594206077612225844879034548288832281054412935082544220718878514731282383291287235147791562692552381240718942341311111323649261242441435634592199446243147770337375275972685667433703312636360621730336864913401134689962521111692423361342787485589866416974434151084844166171071399546694576959022404877189729463003046371127205637752139343523447038761024858000999758803032116353362885790255619412601264431118556972695443986636776207951907640803197545446718457447593622480289301853931520277626321298729902545094243360298393766218926550919276035679019197706861846665365081296339189534767220072353530276524233983700806068577086549109747182932381006700482712408022131919840873430396054290058079659632086120298213735076117578088997593214661667698882648220265839161789497166035688834775651595460980431471064484298302745145645517705043928949193762446508391268171097452662027249934589923723087706375957681411489773475759756680504469261390037455723432174767447581692810147701558553828081729997408297854585077600348124159644754858832660067986155596280206573248220930057678729028150999597885973332112763536087810030472464243473883162215970171961151051175632255105519395440404849559335742494004262483148111895401415556320737543295281296954707609068670138345653463539762511478680711539502540897270096107766604700785421988572003061603279523850102366295624692780133255725215777148455430133713727940025888824113050341549883893671274220661829124897001304932947997165769388301934923297906461553179878246326841796668154361405413522512947903686880271529782183920106970690381112726788641978566436261862421236558714279153938353494044075883985703081700225665394067720892808927111334675068127303490498496282995226333399705990455782509390872768157238221717835435663097374376712066347005808382494918163470961208535726205085877996838679947856584607819417842971242866906146058881684022098131718830512109387498727907870369201661552973691072648185443042369088239274688506745710808284950171883988224884236940972042822242396937671942593162652478530433188785701769582855626164286066124505756753922056755933025707523223736861894396738334032839659700858125950707500646979245487908117536023974769915834508189591609710468820592112497194809803515464176246290036690378090991325467307643599109452202718846700278314167263734383852078031458508291855916168666928996083541142246937774635302667527288659687122779245597905858858747529120838640796087401038452146541067573866239378915466994353253299738781646348898345378539440951812113127307952674493718008252723757181744091970450380361369712895737131807057974468193366487813304965041321863045352833627264616902371950863764784261214088260968664575422673905200925664710025623444791946354599863097585903571553736309352820524608334531734653469758658869339244855877454610743914997080926434655877135803209557873891373407462958183828731085907445852349652743023541151997326351124777129919794052538650419585325825488673644119738546568164095843825527218965863059892661200748910694464970141259854273922420091495542465280451309799067848718250924655432646631874055937844853551906297904741538738182345347247326554904724663833628788280494239812969104335735919338111286747978307923731638105699450268697776004265166178655780828482288020450598659766450755883707862798833353235194613714296126886212967724424738498517304497518447247761951279667740821486010946296522879080162186327896015286553290920633516430944942357820683968144837758175729463510199892664782696703251483460730557230479264385750122399378295170860615174557022941223792625037535678492572789087282431999942625976398010545208838304214617168733874735403629804598828340174357274898257157046588186532601279345694712755904557401454341663528469585935579469064940514386743428246241893808067419020117933435020452629361913388219913224252030855112761617817090361670406302265066212298288659119499639856995710955734352875362848638090116889719107478019317810573454724731111390046505965580351594306017693088038891091479767763971578705592918791048204120936614426396298594919312008124739085845976969727289013980571598767710726156133861453472503653769347984416551048418966165158671414362665345491633783245930971544136684875230654406939100540256151659854593371464884099899212975134148084079483125383610318468609009042214094730263904884728139132787757978444247286935160420194568430980049456525373522485926189361372631114833228421611381623251878889514677111385132686441522593845502090260471126434647506100986429257449443968072565500712936982618419231912074467898600418482981377936072929094397646694833869491340531452931688493355471542134574321212178507193207593600870802840389032019449200658343678203015203212171744362954167020975846024531183059350787152491987056827274531067108639376940660149202210438400084037594366664259402654297927731146689173255261997184471212362382521226575123100328873678152465807760812353765419688762548895919502407879247834608261701319401409671604650738963325439450699484073890089044407847299472730402101106522595436383567965068626222632181426526205454464171266858261771995215142859692662644753250464517008143129391679032772304788081956217631156182756597392670081006182839286647697973785912262524226333115070695012156395918170313519237747719515335295307618664120514797462120563793077645093544862809979835287069790821147276229444557710852240437807957710427873249062789894474986469794889019252710068895099372721952599213305474771959837095809949763053299944007553177780369064000422327255945978977596125299973325809617640943728443508612254588011878779547552843483457724588905349827904141820536587506669270631233700529721298007229807703052818777922834601081999329745569158491406553840529222511457816694751964794634113975136377151528480938550741605343589515338881263168656152952070816698144101256150226533939481484432722954837760327226360663848261576199431683202202430358341119730540283111066895447445674217297856485891913525499604956224077957283700569860029901839421260912412598300022311955413197513702262435498767924971243813710406085795473115942617518339689773245231849338695634815184941438994813970083752091151399454610047454844359370457730335367656673414698995509584208813938958748463669115823016581638255624452174864568956452180088658967845612758916625732694649191771395534370466542447008008170352701680490901306419081197803809948584054555007610151426533426248073265104558700035582027905259161407234170147626802059276136409058192725020176991211002339742880894254628765816087531934180659341187375006040922431526973635747838889635939716497443534167904486889138766708334818640331992952333360299746066909359242110199683368524398635264290273649579709705767449691774309015781096916484622428098191553563589017893482479935784687409245906978352754366567313226777832721226864211765979955895731181389577553398842151583664355319284547000444383721563000363565236343117834459595178921625653148836826522567171887667670266157518319642589470761859384578855221281814368230336078604289741335470861170550047002190205889799549616346880116863739089289835116297872293242259989498769137601509282929920098844476966940506631015612811404836559992147766098801188188733892104402522806222089923593068123670290621742022553767637412311239851586262270182206321264581057756799955314069438042129562622856728376337856989979876696282291742697970282668362662507703915020937617399310435320101100172324284936771526236836314755420265588220574996790021757950023819450940557753554237149606018915317821876786151724161088953765416273072503676110314591955905383100799967980580165178593441493336138113460648081702643675265075560783816605384562034300941422989212652805795764989780150264894067314252803768766731945561966151120148885788477269501292880008647611347362764475970867150626906659092134625758447928881232252655924382772759211026676993247018339255211115205020021303492633270669620742942037961948807645378232984328737946486752407187026266719397015538193664444183025672447066725844917529549265264635369892217136279610667356131731293353131934749460039891527401576507000440824485832446472474492345775991363007491420520401342527699636857108460033378477490929008059312672553780191733072537365539052681527125649472421240467836138146508949265737876120798091949438191843654841957303605520304090335001111550648343726198258415781784248940989088049378469067862607283544910848697889260252517886045709354788608640453625780528448798676187899804249024553230521499607099356793026130092806106399814897013342551680775101825853401460568240336874317230567338142256187310673236941421299837992183019798806056037899444676698777644388032554747300511483981835510569869351166478283469097609842375049568490061375729632499798356001833959702953284149162448327269576399957993451248973540069486880293459435436863403542284558554291749503302922760919948941253874225388209841827785332435869948836995801807597051945133455142060210134753630286556196247366236941236491459827220243124111669013878931462377301778924369845634222492633936971968534402250899073758078833084124586751551944278453264636866910907576645423424354832199454055055194390723229654451486037355961086054338323775183658911192449680330541200841666758071238600418123414489123970861538252113698373388033536103828284602820390755836628963386825174054999992462842193458342716363662066369535963658718059419066559019340261483028112917787893699049176200255556694904510411834945145862507276423198827308364780353552143543542110587698246514773310547902102966707217790379596247393090872784891768263395012313762204913346961174544312515743215509055568877563212146709895993596565035899731025355805597310192265666008845510825362234152309999484221180051807130108778217644265492446032917534940656859227593345423960440426472316732142380837279130246035246156145433004131660539259540849361540883895550667547729320893002435425798929044829219308599809746513509655054488121306093026977630900984951124898522411152855632963790651735367502509646902555964250510919591790079863892956392941828187087631079421331544373970167475729527575090779765371271053321017946811351690130316329620162246323891984186256193242234324897494909780705364870748095880427502001036317990992418689112362704773106624990724530835200727918221960430646684919420938507746917069409055537928444576304907939502442049391200087886146772185984415279493419735912340865322199752219488220662795407924483861065578483257922552940851327127431711771031024507562598922583273180038047483600765482975398586394850567780988693319507395766102675125639728504928796554454317596295903917765593140828654129096368363101251719758672456315910433772831997326691663577319746955981256893312215146582450826485692626694019378447707804338326537357378113434713276955597086879818292810647585524936090618157716256225784028832733644901843710515588399725498435395248159401590982988650514533110459763177058185439706407616518449148570231240170344515663821946453882219149473194780828715987933285423151912757056386033178547650230821756620747063574070607578904129218112399481098288704080165852648196801089477267145725391948000312038829866205342671820050284073166450409786416523963439160596483142653171025709829417112569690668868007462343812751338165229179919284568847289796047630502735016759600701776596860668997784627990442205103120362234937266661318373450127863096387584112250112539889957654345740654092091020895569879021682011089694230752281973549590131854442356235597448225357046097518721093507208823258888037169320870859305506986442555931406820244332645307601816891549213719671614779200405655974605421364629011326393709550284723866703571285494607538043126901178774946635687045002752013655967335617083579717549081132895336274184285010240433209440740639868773853540894774317732860504711631587074653901582180969452038480849979064301212208508279384636933730670584060004178836324638706458804762218127830872855770828779421878055370657505991481339526224513187417507209312937453642456826111601231539750093981579989943008564598540331403118866009130117958193000097114536247562389412727512960726171419752093227078848117284368156925616062594589988519861779462045764555664186360086140003571801898061015171481214956010800647362934076578003463128600899731672642994783580788700480335660827509393041204979289176084341753914435388531783678003876729985954781899068636243829419302837118251610463869588975972507004193390703463313891531641782647023776733315327736232206643738007210564962435302423865122194824753915946508976905099255722729565139931800598463659552069222658258576001420770545145250637813275201226040071433944061319929306350658936634998070104383638102242414789025621346052371683049434912363916424724705963385630938009316330836033744443821108289771117550692018408195817132948115439091611361150267665736201953228586270932881341393053868929686902520856981029463114107900925855826328752958179672183342513127136858215584799213528328008538431080769414461336459609241457331249672085701742719378826892144881896122910068990207469183750188122900507039505701462300105985667963918263202768523921012824984511597381384685305743010758914464478911655684066547918790202754346757930625922762272366301946548793640265359267542784021456719281421897851626824664610262619235250612791786419772170892296754702020416038143711349532075496094665823490262339793835149179447759577754715653982306473589035008534994557232987024672101956228465755700906996024964487517580045558124744055160549976051665519877515159047821649351123796032590844881652942189088304307531953346805618176918981409801235930771656361946843550755562447754305323724425155738838762652872032198049656343757300893472634585382186044245888296973793839508345740765282014735159814887085893842051930726626314181072361595037608099003951268339470227837992650376971197123270903901935367877452564314268596628250773256879882567924154385048595501715348633068390393755532395840490633769425989310273671801758502005351678523495952259846045843678579981878359494432472809629600813201517553243448043218917325186680308892340879108841862799638495466369538442720339495480517561799514608035458991031249724591958172370203123831390651357025227114650063123283160480076409630987333719942304392486118563130097932177327725010103916450188425806089640051977960939733515763848478008278962737996902663689306774919581564489414173966452107634872204046612186927012594513360049225076674392656049479451994143960919215981061954998934571147284995610310173955745540912718984082781401396927901684278086143670167807742829683895793288684101484073252496266511689941616770679853218701044955443046075512674977530401381269465392732374133916109106915811183157841190512508269452438613584685706015179055515190838134366877274026492950279241303220812215177892664226930150979454332288890581918618575809191616080303010390397371083750028238992335896207719180007223537669889450539366958598835473113834883664249948059856110400614162914948591279422944217540409092576125359070027977441426597311080814719203602791978590960789956882001087629783498609496361802116345352010162707462323104600664528456106992756403939066166736974126766102129384640674086193643300611226509093951443173570738512228031230388122072170214434546834165458284018635088663078289604170873538281966038489752916434538181414187739831985091442419748559427047398643310589473580477534946340494930044647543678695723994982218676473494945209522335639057006392842466658416525821327425588271274991363363566178190927377561341695237375865374141825498676250538847028862105527146944264303773177784925911368676749748005907293957907705124767669273752171611174691972178118889058202953130232329419878447023734695077992317642004556035411401812727073895590282553975700411594064960693355430122456556027592663977232572515043821466281806418329071826674578126155521217048944754836145407454684757080189163895529105289159490147082651483802141425077776998336855547367734612697979990571150676217877401999285584113456648624482824800997987841753376578832844117784427007075547547652773264563939707792491143228706725306039197641158866649356328837063267583483060352741919195593289721184661853002744558909786992478198307490875213516712543728240225449902079770837563051706556804891797389667941705061493643809563474755635007817254783766267798667823153015122749843714362136855815178003403048205586574297898519938984438821897373525243166106414066790129058155270036410923524352128488056377835927495443099715982613609699626805141538791816958688095567317286157493739630397886709701344314919982089412478858110596563919126184378028039699792209652336693231390777486233287797664221249105243095864564963364213957962717265281657428037913261354600669105597815121923897910002669298405098291064980108534435610626341824904857796666103916405085027246348412055919589119075597597837848049115623944753927892524497020058527972127630245984329976846789812534718355743343710023010892079093561782016747116687795804733828235435706343577768839047535705625875734593732240306140929125029690744287543242450333681660344677870075833929253780282539103802848225046223627832724706329266931456727720583850487948542111587363701330288401618205998047895210426628837364029150982428222694285547781844659337609808604952272317573546882857619804955740887863749263329014645264082094619043772791468383963625499377293984544769548453788107622349590130353187014896474740126379920883361316901096309260812322141150605380267017325024382249810017440557806842469012917439338895346127699044665739469368375616967744073643354092433854242419360552502564912338642779143708109810686343005939790613666855219982545262149678006840774538255783975486541132859727012492668645440988163763759891580711277745285291544635194090618782704266902732952460202223621379750479853283216205577069087958751519202631752175034192211657151212117361554132405021895019168981782616335347536637002982342163069724621647836027167347968414402747456907036549084467557222528578037422041258177067682965246327724045959479708889366332016505602663678022188377310887140291964076424302251358968905647845260240451583746060197621951736069546074059770889327776478637181660556778912755702391381797791173898291688611100028458518979869200185124376393982080149606941793596684978827692745890698408038717852624570471116991350237189794590906883095542038488598378114281855936195489926584502590909325517368311387172149368463965183416328284113004175451925608372693299382307329327215987516454202306323834881729437299604082520220699643333231306525226584963507070689855753719050441702180377217902700925606190534386733677147178668456700194903579411297172896051888105164149880111828649330667835213995656151825097333764575455067641819696537732751055766302925807261210981933483186967555462348642251470343943287869041478303468936244825102151694246483380954230971642703725154650267525460903859678829029275110816332027430310127368080698756133823808743673097112791335168259193530066594416861211927391593826388612649497878406723416544111608690467757767418645223162988561343115160503139646405349541288753665526770408843946347411156921213138361960933432008533627437360618889609516400619188814454137506680223423206235233437505460406385520093672642924185193571762234186888390942127746836092623785763265673288018144821081362656045439692189894177052445459376700793034583675271273481312557166893045726805110424340077918405877510269217550548453008314587659460170226738958182326982448611937127093565128587626000979539216621509189455998757493686324050432378103992708476067758375582167784627043649023972721373809362205317282565653093296546934060698793084246476997998546487081056580474700815172978833258722934496235398531186247227248081027404019105324039609250032258300854752959687681523693225697143110805837434534886809246814778212949188913570436755423785784739817937820594497181320625402696090472499708318888816881856517281567569719079904565491796806219168147635938554393761658580852046940813884849825072911663100995289702496324290630492398590836364443919862327684693520144866008428326601149137112993710837537015218191817362511389964185005515989585771431101531999765000234990448123512246687166534545871718593865938856773619840231740338221154176641644904615303255521435455428118885221019103171389999766855919361142143977847505592838412299443221884672763923525978879234347159730412769362740218549740599970107220909937492688240573508904120279423906146579506740091507803322104782730725121012385836372038448741892601509293568859247802322465384499131268549755899691694701575449926588764165700984719872423980901454895203015894469402647568405722576698091227527239283243415572951034476496997823350155163718261038614863619401541304217451103965694538339056022365425708320509697374327283272580686140975637429690843288661504342673393010786748980259458089509305092998473911091616345685527234737934335282545799771213193815529220676871001635295037049647701174025057275161338460850509556659504018419383029782969771820021162055070417812108804882528806575869516076052369182308808937478020858152478718343470206772358716543062707215295426184562724975506608805833037921094277220818561204832957245113016120825985733487460254370444842559454671769164042538693357069852325371360480961684390604690254298735224845723854138907777844733859809496324073914110185973841598610959378524483514043740196462251102934266478212644353238044847649264625749918701492158118108161659804695429921940700911959989747884411089233986347903875795156005256453831181920277764424110983040288515098586399049740255584161990839690410713571500641208204727995072962345283194168243886967590487912109825003406946475707296651857066649511579699834928999504339461793054309288517233121235839154051877128161033875952284990339573305170237721190026528384957899365371794329640712098946950315472858368043911477385762210120841423731161166381630788017490648699401991510263461556863702553209613351026303911324957544881796197880389630758297937658309401086546197951349640785722085157216517106167791039683402606106499279503300268965062360619232817819873812747330418711308503558174601522388230806507456044192116027127010741387545133419263798639252372963348340667039036769131573371408303472295645037688330073087848655031528965565449178925499108636308945283393425316351521791669751136598628141308614585539263676627966262661432606275243932211167540193860841968424297339458106991505944864196658994994703228706883665466478432179903560242560167696036331436913764451922517987240654147195577734396178487440217863436778682635440693360702847521870021087501139259185486573922919998616831373688282626221835689709817876161455183447595866500041471399017408494633237906054336378050641688354812739729648341679173991203375150372899074266931760416839152147824828583478998162605430265488670654535350055847239333441395983954351890404063092971593023605363398153217921045006100579425090260816365202457626405815896095217678858740195449188964629310370445265861540296934946522944410037926921832004161333387218345450185272979198907317719784159032409345769086500375430222020015155098149009097611881977781181402575628142382523107210395054562092164846877822565013769058857827201893562631422834758729324643015108117475243972907306588212840017519947141831291976963004022525071323915073701180211159367023269126204240874117892431278882171623233378054151779573458925959777238126094048354184411570295172591954796738585266430519854582971301591279755584394119180399437931686853453651848089724314362112035501711038493049753046552495260048661755198841498569180259060722839981114648426225908848094703126938968817676555002676760204046675898319651121787332162791548392437264836275340360642475120126804266648953646302812698875407998104846609112412049591366623208351386113027788882774743029368675516567537325052188506858324194675289686801567044413150543607686743765861076638862444818679534045461101886845975512678048457972944733116452200837876288624489492907816530390497979989161621289365277846287181775140549637624561227755541556705819494869325843521550378839632891215248783284626951351315134636918756466459443760139848144114298715850956685409004812712823527663779351720759188011818147440053557781376967020519566158971055196856992842435321632941492794378563586466979260988795226165772968943377321654329967657682586720446478508015581268268995644600542073425918645641691686010701982333772654480805542256493604642381468884467944267498389803774008782103636389685214912225080029848603695972039096952572945246692998098512751241746229070991604748119291337929552038517813501700035981613493660439023346328401281755515896715665818889196724472592123145062453095623646742664111434553925076780507640676337035652722914233724405465382223728851405560868725361937250898550982516148891176492573949880416180408321880562570038547762187573257899611127654685434532473768628737453543802535619508428637602949229824860716436837502001566070541566167976397306970658193987995538214604065336209286853422608132472678001593292999994540950053690885784282102708325866336697929484163329268695851814535933505593574475615555054904014903793867152076383680431178353758341043762962803171739869851349763908831358538450273457639442710109560545711143032761241285074585224936725951873557296707311714589183762282064683540917666506092816470334917704128460149751059691055990320648385667726379401473261547977178108504186018376933809308833626818734528389338401983205032080921639127613471559759270724221180811124245426089514514082901253164690343748113080222915999765715874134041149522430085674534221977639905545389892586818935814768469435743934694405002941552384508578826006166530504140021834028352035431227027070510459520394889508786569793327768867108784046192946904591012369946186455084084471182503038032197619405855672451244696464302119367818117226718565131595794557686026313235048012082612213635592990830430597514306785213734007718533966985512251296785550800853334973120409353003744401592222900348335322076957720240081164686847977227764795056837266528703518156412977496438573179855598524542403957837790957096028988948210177161791958498119124708202414166359020232874417387788991705241026744045602988448917663467784568664903446822999120741330523654418102506436800303546739557126515933665336071203030224450418782395570301655010996440220927198804631149176943230994855109972542093628972495376911393380127242196315589818747799177728619462535326835051875016829106699115017791628268392835752099671987724672124660217200361271760704050315569036450313866016838827922474499504592672116878591487491030040958456549741550877238213424875982054884175908241035088938087965788887001679153244217500235549041751840063049305036481633518100689589213746118585861489982361024656043811444281908271603969714574792363044352371547340276252566518341278500820963796257359826329395546388341100464334344344796679915232717031306663118695482263524834506256004346176985822156775577683912934947803189193247558999055959308767526094882221177371134970614923170530325032932826876750578374909683207935956472177049554658391185910423136394127019500890463930132242273567392855371101598310853402704954932259831847869842362648302207184072672833311696707784493641730714708535256735210746708323779934886903109451590961023381270443737738661668669430505434993262383821319891101338003105347452540380763380140495991717201654247620393493128151114975702385608627052371928906534407454160532635217344721994673677323996744993008952964728117940511251587244352425930200083914437926912562204430153718821902334200999485760897271732460027973407852615545697597824115898218820818011253404337890328811844299868635721337212641398481680060674751163266609932523334244365371052901361220801409712598474564275428238576835035600407923915370644035969513508939259912711609511574952183412196745674474654360082437033415607729201483958672215415796560406036438558750099047549198607257206101465379581354858268687183142137874139833588556829320815122281031897507568157960994304956111351235704264311774231659091253764578194971929092613711810138490334466696521733993381165347977777585253403440104851275761905763753710328762321802610817548931454849725668305908478537605960059279279204971489021884084597673818193433245280686265995847445412971853484863795884035759810240251363528435499975165154060509766979273203901064659296860537971962210460860391350564855344767328581729675815606437025475263323288239892693249555782265934484090487564250553990415517235064246183084759503509272903471563938186962935351240579288337852556463469046945898646674965135119871462144889548828274326561260886374211766794514999071717407388017249390963162356320264230965536359845475483375286810454940779648235780462075629973032570205109097766971922377800695683582834920614995429543529306241691660351614360402686152143218592999029045782045776066348955062881357982197277534107965001566081947335043404938880311493480922078532666065958289619600399051746261575621466436212396206126056173005786965408456194306268874551246907681388872618097187203786180645612536814876964512561397699925320340645789049618735462347339527241251813467589954705573765458832633775912923600868494827478193256169494810865661348741707825817635288967786792437023827614259106706318811092100552661938040768539199703983510922184519026334854954116259629158274206864761638272571529671595850070374297088625417411835100083249540089824938599222954014013809874018103183298357360133340825684533851640804872106966433034466679125365342104462698245250027995450433325591363025631416077819409715934933770688681577150397679561142368223270860143345778780525674208318101011027904324717272307399216585657398334558447059782147435215923653026720643930416708527006132403217642338689466365203540522596749570279876177389754900376160950288473043730511880835815643852700284762750933185588594493376267503945064535044336214625689662944481173180597467173693071057531372596237587281724949499445631368121333949403289185501329675422855144587561627048301587757931381087733720167081291503899926371331314475439828681686078175447644016020245868479533408907532537681276715942279615290627878697357021162703625052514434518071372704463274298381047591879036042832237095323443839063931363942884796354519125196657241674490766035333935824809546996912827005879327168609678762799512143401094461834768670705690466183630897236186085123344400220087212623569015091568501493536131603674150659691697172580475775201151736005126857589909588975210202714960029379932061968184413217377565249670954933003314403588396760217700960093676548652024461164711598325348608532204760628046136012988127581065926465893587144389342145160344658081762044552567055628788377298607022974174373320796162040959432995607447447385673864717912195378101767913203742701611871867853819375133802090210977127724301791401669834683004357464799822037736355042326432812593995449281152012210527857506565299903229010275692904358323761342042339234397633879258991508296408569375559062378025020702259381699363716682800561273106359487985213871940773152090948225208469021715348440821994124488158483130921749285166316890600793490888165289749558768761573103805901410038026065605577799173005692175529372361586603465742652107914376310944084785423120162131420103001575291712053858210172507015766716352669827452884297039561555666850413076469983908885852537569236122560304001823792309559686797542502136243965343380644379350594470333317566730307122724674533901779391684615501870005833284338050513755736742637030670799230750709952819261313059727033050069583131480147432345477509785243065996057405537057983013962077608914085561459026340049798433393990309013189714716790065445479551949494528510039871981453948176277799512841558419701048691347184412318577352634769908230995270878128381523023031784114364838403451460074178476478932504598947349136664063665652279565291491435565152908271640361159477451135046017793980808246078475165560981158256461290330993585285242135287447078181534859500067074618759793852798064619751964750950572718842043419004267632936996850344561589299507337181042809093721949850409199846582874559029734789569446482897615296197881826367246273013322334354268823635612138479328990779974940330710562460621771528895008145020583948553089966346062640340939116733677209940892196709530724341311668905263196064604979009854517320741264618282148898623407302720645819505592549087253757535413990405921988087269013366688859933385528240912331018054113362148868176247903933202677392664367784219970674356994536824316279201572193091100565933460135871130219815880082605494086417715511639175344149083060868780261602423633736972025190730481672268100974130368649623026337810610289753434702254507882994654230179826558614298906534206536932215616330617039797197473774249360690184870329424105696137126514955976075865065625205299859921175235392567343403198119558218665328076265700323695463191789306652209465477799524665971530101664029684873011157238472427207672501544837161742832809242126100709340870560383702140839842446094867299149361388134711196314099115412512746241178805241956615727947612845249801391084085675290533083680045449777907363856502949791939133336119305140059938814064091798328737403218798517373190757126491557133970932281714321884889326226503803211118273389455271939823986767533355968432609101586236485222628409033095080460996685200170363516537791334014769806826721151809547334836452104357736150262968759068387945165155440732692509191700699667677652800373145669131474760836246191927079376749021631325106288005049554462245350931856809809432198210454711231590527888086224877026097606997561782536585741380748870955388883460575458517508798292113787657974860526655756855540836572876992498467146713804375649112751061336040856444538015897665176688397018668458612426500181317570288688819889291190408901644610258628440189374392783417856947462948353849171129593095483977079015214199496194565068796094218307214891606862797059281048991082084322839792549033215003151124376115462174653111496367778418627171455174508469438741417123886333771584442887429078432718131218818331167501412702721863123382584955309066277487928755810167900998971827864129520579370782904213536757087131992875262937869581122813125142732559106391470107906057380252257976143118775389954240307903265115873015844342551979203947311019159906405519340934313369432057914728463736150631104755197662498560341415415871728215945796923492184031706989139862137484189864115332855312880736195923937151176761352406326074127764146577649897552788831384774441434812908974802067965052688126838336972372748378284261219327923175328714174639516796492829290185705413483642596629999821482395968778695375802154469727803126613304781881972861610213002062380211677738791790745819821844460654347253909284522978766305982193192990265611945152257157144233447681293708541965911549672520593690893902913477063837762500389833801066996991039724208005499970558637897243283299683865207780809440911358627904776754888578960477842724131617608730262162603732763910752084542454285890440165242040638965389424670420907470916019962709932951306945471150177225334623351645235888804181262697056074512349376756794388317825903337287433248281853822558863827970757001468048042267969278685520168484120481242462640045910978277327292250557021861790928118462515879898036493458858179935253514971286427039993495899463470797043288312707755928663718664771577450294392449235450145064714884366874631701436479786496864499631754894483132260478889249980459364741450784706038543292817368497839511543309581233540287137309225687926950451625302050613815885540033703362946712742358593020920847483065152033203668733361749090642214385070454204725243653173223796646364130008987664559615873590905655554094963601893375309410105647268088047113795535112390894224657045779591038162728988241454007477528985169091261666681098788176393346567440007040129996719899842548255482869820097055010894199647814308508645045516142851795828363626563225089318930617565665109058626693267412283676799080970037707445593966768742325963107322355817926519373353225560621766452038806314063442993033349651996526277918152176333500511370184746824941579010711604779108319577886612917158933198860933973240269449503992464280180126303483138826610720840914915458313728712179653472281730318330301955962396108571415911435290457595404121641247849623583375781662671746082951999855047035420911965101846014014775436059506833478585505650476880979975478654341625931404109134960466625731654368045956831817414375219647836093756520234101714123136878195063153413253564082059469468476006316668774702967106232166184617700649382893232862484133899212350712166951122809031664967671256366418697897457323230695480820897784044165217293299754916407344959892003878557993655122400890673709193846482941717391544839817795218727589673929193034442125129991323883852761679320112541992625432557676698715363648605509471253888913161446265397875119363729687698554364031644708227461973518526193339176478338905569057971355830677582342685166450076984990762371751814667503072309745070192666032920973317748022905099904011861562069671785708073562222747553062915082589039747134465780337271645202115541147215573019784564746980714473370977361405341990963115590227582243941952697820204663748253135069482647836043175127807950855881856239246886995597068498739867555376236158258871096095930362129407174420888061805433529556523156209253810369248503919977877422775997500975304405827609299059698077691212683081875429493851411270189196779582374368419616019818385993392246392771149459595408714445488813365101718331967516062195383805743446593421668733750225215308552393835801305600070041323654816341168737084625217600263189086175277909875567180798793172957871127483331383872126894765998037440967742257057682255203033683268116885418990233052828855694308387714315844548861881758834379672765340392917137374975027561255388196087224072782005242127946317324889430404731497762169214739589762109451894700706692765732173158158918135669645470431239308009370611393620251316316897329785240373069099158856834722254100485205498026270836021131678172504668974083845213487827915566266922315500330949937576473170702382154762840437671077311473673695498210987855418580005357544651191025817703610566870078730163071343915723580984502969726194825686949087366838929804506701470540265903462275610421071735618684150534619028868230068707333664705091124795571083619349799320844413210146544748597196000683449577785476427697468830213100666806774974264525457826182896619101172688777261352624540937051389868776393799362704804105838962591044695683105528534266628696164008586801751462822924599600755114975920953868350102401668376795563894027189676138857895215005957157033261233055418474427366080243330129308563118216557088398605960567438399169535092976046306231189844602882948603397740366174702159995730914579268662152019095167190357352902599768683902608353696557417525542823237271603100887487759605992206227289528080420202310555707537537928288149525538189712516067880599169424968500750310938560841617402696760897837991097211169096482223658983262471676763869099572713583400773562119603281009960208144254850053676344892658164489838706615700847761747754493675469478786737983280377616438328812644034049383325630773393393462792454571630517036509402472912178451704946631340534526030944611887098404397451216980330843698870631613276357922128666622589540328052988773431973714341786351912051196109291962245285526441219611260706633240056831265808726201935475900306044484841603394242115143106771182260325822961339943595128926333410164794608571682817088955344857732188197975528279718339617522472418155768451755352984544083316010924826805772850828555845376964979699978360166999619538875444426837693936636624103738946718892337379798923634762827387019279342877609843430246726636007603332978249802762029035035875408262672367257530149180115715336184918213124693521926047134153652256154525544125038297597481841311483198883020998553400984615025798103256296357941618049964838186250454438367569684962458298718992501116168949745413204864401345263790413832408864472589808395404297329875467607199798482356816210017806945070751653661979784682968016640560177436363068208437500450683299326434453215235744157515271985660060427628445027645431146729095924599652463186325196514941942136327960382969555060100409987061955987865133409600320436766451768241409852764018837084853253106940252457770152173189047219350010501903159966564000101536932126343155277804258134339556077492069532193668492038927821131319108061799252394013020522132833846020392507911621887054282327428145428173720301740992281378551458601806917327543972683260854842654268882303790991451985791283494810286400253344966419577751595007791436425934800522548134501749156115834920961635104387403330990690462451756740593200047962908028282554352668715101870053454301139821205158015282346553705499977322978529979001811612701930262260141292681647205294976328669315631399070369763014975456649700532459141926084454537930861095473699369285939180153978463741811205445004215702535685774442478465482026853549713670420497736731430152866698673521209745182843756863223835372009717708069065934816759596589789154439984905043122629617112283990605744150361924941144294607584402727942216356823146792926176610974152697378241766312947751667998761620910911406868863450001878426000059791199296352614054751794106083013998714141675829361105176715725101674301806708178842606949460665278294617514621349959669761296609044552252185364421485008756571842393538789387664551169249034600983610481508270927176290741958575899269967938536550481568670543176045153559609903266103391160513906142484880228886992120435983463241293434908003879738459782712352217253860459926534140985668503184246585121627787360128513198841909509500949669352838114688879994463863976317516419784912287087934505346582428408159010333968028932185944811383651749247906920763048308359910729263554340409463736714282155509575237415020569978759372212892237054667401369502872654095576610395742667609220686296182337026355012776816766966753368723869821718848537502393409246483085917292175737420871594895700474907216482814759930334117107724208499582143846052079777906297549094927005516484578044541962540181598081194290557860146790002146690363879006428291472965050008669066907800385953018866944604261903807980850178884372291134750838580907600830799550497254839443465394715085559516703407202545286751021729631678076626395554046425393938867446626014157939252907008872871039560025924747265419976185264397894906293379097235236956336124196154269900100277778001746324523794092544370142286993868777061555875460419858142450197923567433907068235727099711875118324354608317356567165697536443348004693188060581844937778009779546915064195729340550023347299895832931610215707606346678876863620236033328760316046456888967179811802121040196547141176838269832087698050672582344844600229780255818439488834944379048215361478538346608808711700822153403097915782418485124117346545618015169037497558123126882702331431987750158281580439139091358737038608703333781841628783859588955880791359195409086457543906184688445327121815216107166716648456708687430874878026651333121163264235239426441906014226141004564456868790764718456690423324976053575969701122731805404909677100515990928560776312672429166169885712399064675840229504774374339539439806282233250880180317646321739387733883682243393480143610045332441484948226174393027981291566647251482534298297831487661655261716424664251475871048519700715927766799077881512047250800707897671100613516053552799062777313384009167257568041109953219508371917638077101273587078618030463071406724759828002018414790007908069831064442004012162482577084198190371295080574909313470292966724634427688448873879100102380457000319049388815499863816347046737545518015180089304989395441451649077187752716989137197989898611144832282855818190118100101142460430747466066542617914470566409204099951880174635677693299213725722629121277785202942306382377281724260392993610922344687127406001530376144595256714754038112378505110425128133565361902696899811107960147190977739952575026171319065010251525293821432418262477579909038551006155392218978372796300229034126319410063833719928018241748304135291007949322187794504754382618546188438200987165078034742224702308098082739358112113409294097319396195974249213355527666029716098048117908983178037771413623947860398082162575712547178160629616708257981668336680804209953445575272203547093244705543592442327644782293876775295471534668674589647230894025699925585039823122854807266005638453520727864585223805321586528789473480511665833088464617726483912181760559473841678473935980644314932375380296243479725114053330378973003838445543624861609493881309833571441966902200414728470664326107800346586098322421645467556554038961451016682289946603645298744811070398991337377436878823331070214757233493360393022783631447404133860121250388606987584753224166851939009075636341426976265972497928385588074350204768533973818279669273229503507281106658906253128746208833620891702560370062220889964832371109170016754864473236016431984256942734399565422017404688290984144057539029941345184548141858220488535425856854952786662345426134941211075897137531819198490851399786317612285656831758369587317250418099988099685620313319991768350887154895325381809584510820888665893841229260298479841124531723573893170049804708360942186876578421676313948727290658700650573496572159018943379946306875128652669720508912980092865793503288652356666722187264871224116113205446768780295878871191926542326346958161476975272091129007948778708440079249110159902049531374173964957240304323277858172352647875632560991820792947419757763407980862849370347372832014471413749850471020528709265985345632631597536019321308174622815004117757498962772988576388507011357373693592662478873135694042459547683365379911937597546183389667804079961269513414268648725025483925868199276497172578403707536753268570297429717085974356849806632891332466921605484815013545313325287545424954570113738252586132312397825820994987941924285864294329505721410354604948604773695316016028207719792925682979773076306315271156724821604737936764933038787999569553058651095404646603830450069692338336061001781688887906277734466532369659011603634748117689390925489999545497796816999497360166441152155098203362221481562359899932537460560211028543806974548405326353709787695091089148833939523239558818031623185575705158309836693586820023120600747454887028977373031195023746939744731817167183096061471870142104539274802824876281135950859676932764579800562692581842380872812568524937795340591745706595629366367753281915143055244813633552483732639204172212403212712844479453416612239573318586484451004588327421911837136222048626044359204781437200213653906031293970555130364151978733658521928037550446852763026135987675332305561491126481940453836750644655950921522703483971987346083391668498708271830002079135244391900415256546991055942085632528571380978687615090612576340681157149581060984939888171827907197141078896174019744464709899605349157948171868173614966499277353448605777343658947360686070803621673315412405217082368917053141120308017113538204729580202901675152083149223656503593147594780111557036277328991756477880458541686866903733041664121840929529350369938781598872370244931083366161797193370143586518355924535857278549398825299427033217709825240526596702875888818212618172647848066283317187248851170614837834313833615532812653516613161337227430830192428259727697111744818130647560140801300431993422908561654640738612836111776274982183328516972958968573715888586148565056604262020551527284433255867088497510589006621559195603592676958918384642150816206765052445122661786098478072342049237411590671372270307714043406639652780766003323511847232101049823062058618962526937315162275767111513158688846275048291683041084303201568273879857006664253159547709496655637480361676954798519356405842971364238382419038172076670483556886857052213783578254679301815102128264726814169670568779115110325133895196134738582967703130752524937250733018968742931862289557410983699234715506949266941088606474738645586920308308297669178333833543419994707015535961513314988886518522568236887549203341613330681223044792784516670361687547018379850727052712012758573721834693460848073170218024556041978314012853509301522660523643946582692842428801798234069018771524055688342994017046835592535793325099937226385044826833176766207894374121716988947688690278071383709195130794511037770848878135882622588450844650194908093304775177384337242088189040452997793907446981160568783745237797409967802468171002284330931882606508519381253897461052175246537563101997791513356771800305451109332143092945511150928621421367851246066216231197407270935501154949988732607163184228185109029664224464074480357714812421734174245651298498415801831325008868405719862717871455817145891079876248113456422834571688705707050068827254401677708650367473420131522262679129931347507914748777099545674066320286106576823852320964519659518520029668279990452213464244314688524700610971639934777217519451157758237473753803253360360755826392915918147293132366496399407879843207536089543342437665311076630683891068900434753899251896139080748116243934989801085116562487590454657073311252204933950480469095908396061833954223057813602876957131094483230733947099835854065666811133146396752913626161872370735368770394795209879004588419609368101581918842659777080980649332456869347835819584703221593678405298684140010072694965274786806710900769274640199672301998330163392629869902045863701698449349194582812961869921105446877371549054967988733668531646528360069923613341227072178444419177292167958746920816105897598651788671419188388651125560892574375559765022224366983988737495906740136271610061299973446221960916808340483886745610944337761513972442741544091252065115856344027687014075268080866835785908324223624571644205558745284386037816622593401535141530107600490229079114377434575861311738948543038691746603253944060688836033913078010620391056515594571721163379738967869699728699067323055134111256522960447202589197832043692639434394610713223269273084191564436568282726708010386543424917950626469659776222321968760063228702035544587093370818595821392257022125749143940880711594266337460778010213776957072790307174881439343693527056172602983269326791027445157148759696149781309554834885222439643853452534470300767243374534448441840444592928008688802160531855205548439082927074501132792797741228071102296124084416296060631954320818503109288571026444556418296897565440639508389452562443359170875412648925632221776274474652771588827652130594719812873815855169302142880035219615699064117191582230394873680175084231499772063196553812912335039120807123205205961815572875108609460459141258524700919825801407015339747451202576680918874017302712461953637915494709200199148734228981017305840700570015676246479286234358945855968899487426555528243067445366749365345645703104078883674138180672897251534249409705204787319327089757325739970387626784918899259691507738288181146594162002965758707932918263524470191093718116350894740553985919889919867513184534853842361585817037439897753384529549732312302585881425661494913196705486734046465475997767111947239816440633265274020446159133892867709778148718171230149707981337389920104353828395211959326399062058968036973433286577095156053197321229757948939665346046113904098767890601224341462562573225676569602603251951711818067222449719964569900997795390333763407468787159686876911896739419984286076609768253630228644570533818251351045521479315132225579994777276639701468480042248320982011966381098872639722280225321781323444682441228434391888643378160398756426761283470138338609407696316638299215787353868764662931836560096381787591909915476057043394977894053652306596282069493257620303781385930550656332288363607420599944390763708787661203198902581563723804481029053309562732948282041856257454384990561447597617582759395044093674820654152847994829889121587341525530261953699374714188947239487737496773910585516678163320192058867569375477530677697041907602427429502109832136332908864861301289579729644483865307548333650426158772425543006459199068972573329029592337734405928062337523293997319993512981777133515813238267395102100427526673980188876643475393678468796475601513864081805885175927888747734561082960143905208230435439734402619261735994297876391882433269764751340633267120897831470920390915539273016116954491105995043503492174865952851086457177327000848849403992526535362021994809885897113113672129077726019310900568548260795164382926653629978823696638822579150489916350585945323141297876662418818297291750335720231716884044714172793062749792729854306929339141644368653728834255273301903699944221896649808311797774858508145197257924859507175303744996087397267557543475465460374691816374104138821975729066520803810947478295637586869938742394873476188843970390787642611009798300811911447663327008872756008164303285367033935557549051642407923639728354127115133889557278810448922231316977845272649442368535207252467121719121877966529936426073594280877213202758477632227890401605038678831524704672766636328425688427267779464711826172962834217085216989892296455631897279348023736247128368869306701723303936274433658524992494513964877987815360994951821174831099561525047737139090615212347716939691637741097406175596729149861283126713880660650727007889332055297626339834366890476762960359259258537281751322422649604024023379936631076295081553506384902778013468467227461871518875769955392294377093462514366553768416878367991061007689753968287099490200010149046919206800515980151036504882876416230506994945018835829510627263537724946116994733724181288860452761514549023429507645238080586626079050076396728420734035511967225031767226229088566168212364322927719923128117940763205226005403565003910679145054849799252694563333875350498339091128270419388346165798840089399891121233160814218845463935467805428973401519585573058179947108972185315938808983085078107964135107391423190875279193161621543668224258096339920646982192386254735658926212347178473085474750864214785564130476659101622466732768560847415692995704791564526740529740835931135137355226756595692004896831223430266686069963282328705542098801017088363510128620576746517666560509021964954030533178523469319647720990385396764977529417693883819873036435021563973778189379211266632105220527931288413829094548825958309283103824802590041000557432293283466846415049465632722123492625353338327495122552903554345268072026612846663394365026002415015824198401154666616323690744119456991125628950005982097483618583688171447115425654888338841717287518362724007719372950292599301999917697063983394791758304194798177396585004041108924710251234986680568255667187374243425914245068536110634264678846273763831900777354005917492561539563121223326976523779271282618673247191305747947481811883809218456668109080694532680364058500802586758925744493007033334684683505790252593643185048751797327392360420628226398693333710037549674771497306472633079851519736924266635015327531786081739014317840689815810714514029985546511981072395719691739485371141229526515779377645474730990913522731988066762894982905328638665588249184319783003329668391508784275549351485886615514534640631601977846453703482370880735090033512179552556423423750379806394228205902872219324057080619628367886368383690199856844092818615421963505352747891115950634408625006238234941895160231229357199698392637992723723046602894689629909396778413714811272675845602215143386784812658993804454965918497144524861546042584525432658198346547826262788780827241002463577846629914570232640043765892045188128840348343752435348766378832476110441495054183782141292406004009205415116165384642789730935488059949111097141450914246091182470126183331102729739204633206233126590371133582098729080592663838714981130742034627942890441933453907607725953682196286867757884467552647626498669180088078249517068747031065966911936842412982738290280312838377115173368361867232372231029378112390674337174022487782341566659449289691107804290634241633810898654417862666365840856399516130874047850151655924062699693742615513689992476014300514938294182523077055467895629964407298919950604219909039213724124837344739008157903941508683266567734170627002553632181812263359746453154183817020480598578511308354372786786449459038319433346324806896667981069670437060676172503004037592260857243116249121310739060735596473835497815126875814542485751524530138877021090238363374344148108124413947534384974222517701483695870837540915795556313489750024939458620690491083272903674482318259532189264532284967890815878548720524578684234976374628959724248222752803469614097649548973181853743475753859574678202114356500296753442582700131796595648459127767490241240297353116368725355448411556975125137099424088722405964463776606309407631909356917429982409287698806101085432916232667970669199890317115597497752190651637113204527573816367685878407851509446860690344705864051291085472458903660412994281802418090128599155257501612180386291805628502414763960100926939481999234294296083132095250285795788184590248869564427476645066221437042152432548399388979487641828592258411047485117067289375321219479964558083817047394237340024989976777675194492375375994945141942719708483003628556805333441636114485693765406503166600362652053086483350154634723794707104368578466215819421380032381263904147836646397800097727684812284124830726684889836951222725804648732475940583516959690445998194541259582142055957087797713498639847894308346796248777318091865607165118806670825946586213654715476099033683025040280260785329137467532120060016060456839917740530426741281623335725672379488689263675565807363198861934936001746945246930359971141884627638655082129661188302599321867353544751275381492069037175449696383596217143146739596506340981216738495719301942607743040353253942834872643001415883929947683725490142466194050142560729598544570624387106809636620185204574852463558858064741910427730698834546681089432625031598322928786065878502841266961075580409798846454569881895220039575557177681379955903443995631215580976597500876404172486626230923777892549957643671666245753434955062097962682667954287790434592553588234181927915623975157090001300832354594315638277498127195465494460564268377415789790852313303252568821546210333245928004189180417335601856212130230190205754092901080360092568945098258526832640646745313431563001372527256215044868393617396987913189961315498000827841416234871696129235661007547007824874943329740874209957778129704807719962172325630027455727685385233941352547022415926395836466135040844000805504878241957148739556670334584615203481497188606560749360271816877133640423150111609358814260407068689580341554009356277893748596217153993684913874082393836785967071116857988681463240577489607219339076997452330536778706501996697735057324984028586711656642939650179386077176649726360029366731730426904764794846962992498579098464925818978904255590653953772762718354016200220497367246469334739543497124310013979325345146822110821398605090946784188968156743127572987489600509775993660534070999448431497074482202695784658900149859409040511753615096960207618371424836360994458124190457184450549403118706625027285070307504884020665850376262598602737603116892232128542646840711914685447737228883606253042803394081154413714972460197868709669833527474400485830594249380146946912944761540059211714419349209856691221309114706502037397034457835002982686628662210606541354698562667679800689929789248387356961849276839167253782815879642086304178325044091546359542502739839919614149858529401703667696495854304153497682405025390008850741871942250393879069110444065814549006401156924584412964793034954850594194167395164551274714834011062379383048557562486566647743226052175966054932030947506197405409297320179687532455430958787367332788220177776576910067584135769870812218295911311468462093602411925293982107260698170851496201233137017178933629668793783417138663209165031099406770789491725424823647201195634768179623963842142188995796656015886286011696823190986472789163161332268258903120409153580481709529037689297641302650282294205779391364417965626021791529696042150029793091406899517749215128343065423168665812630634535269012977775148576043034815126707243879100185568041303989059982688814289751380021967557888784910392094457705574739710263685240181105345428476960569755738348015854637783546334674682951605118174240244052046537297821191474961471759178464047276950826890006775200046254969784133557032124841015307746405204119558077912831296581894242271198739783662541931525493182715559851112990494862174355608076610937416934382067011193878802739359399211914611673152010837117639375247796535464693942133611706860474721719114486109709364788550684386507659995060498609876028318261384580112613794197559780939918988984734618113080938392197999889326058386292026007411701380520936661142991284957057930447554905914441644477353357741845840362240032615844875608035548912422643946352099099236812478337600369751919083117748792827827450511509933573081402205653905705664136069465387462154424624541548405636701888666272809082169750299767618475029963997350403876211953600754382300775584405020690007595225505036751895706210024976565707174311295879903031224292321586415961524395598192239867330894498482100974856904634509845683486051628938953990691684243240614851311591478406189191653900254734021067214809550642788354369097108455791963537076593001909805218219324174994160944372741807574974925266332048736375165341763822319445486275594246441929964558323059976217810815797861135308300784108183137122110777205463231387988836961613418967062405186470021740191653587202493765777122484689624980278116754327528620536596284809006330043893562163425681207192770341773035269009224961663811292584142940179281930422559701682992468063522466686291769210861172905975255784277199500119481303714006519793140859752307489380064368972819351594450435098552361170900984565393766980808733155774446327141028097265204310581712942546849496887867306816306500666321576258324687680295468044349771603562948279914779026852581347822202131895943399015520100682790937379530573180894866489197587620434112559862209894940490646809551158917169731833407005185822713439872007567391054050533794960670846107995961554865822479340653044980455792303933714650898293073050685288371536073925914884759237224422222768683058999325226849217184507686424954482539181797530495203058776799602124168170163184703596239849551144339422895830297923068057081264034630558747569092995069362129493301725753476330702493935441016877639759087961655984351599043282842124968657853066790013460840408011036281308394808853530297309425371317682729525331197145287107217780580071695866036282123290240119395547754000471087844833866658017293519327435865883108761258289642584209337328272655180787594346911561864215160551194893709328022287521787896183010208921305944089121692219424567998709873835285904121460214411102174393777414430967508404576714825656748993837480171266615479252318546326366597380175049361351604806282184344737738375739879412479595498497730172556492034830478490874227119110870081475152876593870837266899228690425661961657062857697431571719877543610651675365249460913911943284193564129605409958252968499230907985895430440057129109092649301392998559278936993223702857347051911128734397171333973190895552385308150241907582269241596761674368137318000162097615333150993367268387800027605084427725698925296442615444999323460246600697549547427823448797174911909839698526655943081643136512906550166257132727934881543825542761686121244163562198134476048694970047702314525494818112450583681778886094327881537811945526898017937684368317070299635685296456039368503258578518615752809573548173620025374349146706807369503108122851545195047474192964197508082186742384993355232136467450066070378981039541739768987740402512819686122173931151279296560807352752351633835684264392015773254341099309377209931917073792937475000859481882949881841304876831250120080024951392775818898184260522761871281143935463429110726436593860932795655513962811144889359397214908222766039303008451189028257559053847331027281136215273694694610380555495414692773072788537016956063866108126553855777489668293101040672857455046361359741926861669926744473503098818027165980657506962975194682133443429984846765902634174131824484206790985609072140455853941197357199658971842152152343924564876140019863108945069152482807153101620448764570696343776001552534952361246404964637712931266249992525568701520436070252310265340891011924001651492726924897941183922083220692991725449050139862256575305517283133501468542058250961166670608570826281964135862742334244561833063485687101427320172368464318306688311783547395065254418177473127500680565140444509205116785218788661562868609895049378508659396154783699595562820146371180778945055226362877976131036392668450320894428315793980729529087972043558866071638634430479613139876843471226732243415028615521359957487211485121783827572498559284487298317287379770155526192095920458206743448382502384012256092992576760489618532078163950393770545022650947102884678893431662252507927708225657681674762715349113894026104123822491982983312852264625141248517107117276682691501717554983812800916835026509555122721843585568664645025028677696537630011513075357793049215751873079999571952596434726517480304929362875924352066569923144928962773080520604255828102762832526717247920699854470846046035910619978576486208705101737440745955106534341670502621808665441353800257888157510224718717725629746507422548455454385431197673962273708343519280357460093237068461176590690266434349747451741181456232892321415333551864764016177268764854232381882470822427294014372133072622661411301217665487619270366946775642871484726110397055336002461519429820241141110248526019997979109771776693102900357873812588649335692664395311474087151404879760552719207516997045914399151764690739300067143377973777021387784211858538890547965608486498756700154490570145445935152663107696082819064983609390787191974810905885942228416057816253896275905785102812493193752975979667995935727144315770995561667911129753229580457432712962746344491101095695362522082584404756147358954538410638212460114183632646133046328222703856964711826946611654360314098366870509357354509706205900190610590402562068096185458278599449454997585245195045186508512947856649630225831426903456859157659910414080539965474651283288183455941630985025333141566175110137450596889627517930606027918275723152579826087272437726717402720596746316325358458243614721107929404072502374895515144880695582826288112659160030915988631537055835846909773830191076347230212197785355516601229852117971012809172083980668175036362958616964343076858966450936839464890100797005037967948775161489731480437867972296160854716006563620314347042565808532875997397810686986110933979501657859241076420163981807016799996597301301734077085302022051628235784229572811787537058983236147552919630933815156659958406075082243504494624248549299730044993926524779227430599933487813243888650764896908933831875361904371907466179039415622289905502342988070956780695101926746105041367485350156978458021946172013124317929615547561643102226403061679769989158490760147241175367736285492227186014489208351050405746866349420713298169239278962191100268332538280286807722688841418134318665455000701145233192870796770579978858667310186531596804098453259115843774913543070878135762093645521719604668584949987496501789868592940648207349560987413765008952711533186282252445917167232664206508270279472043296267316088437513890891808472112902227499424813545711257302785334485778530872120529215399313650073555106672040161929145298357894808264496816773028401570374377768042485347619025945905172391281579056068945148755742494623015053083308837630691768205839829403450429306540952064471383965840546452103845900352337974379335876686350392569938939929474074733840917679449027609963288569045440891539620330315074421899865504408591530782040090074500447806519538980989437327775627869130516483057605948759014087117724244316182247048918381343346627788905808812268523539124734809826799687229518287214663097176293273670925344027695188196600884092914799948488995606726725242355452650199621333690289411453618609850419619353979844654141607717840702360273609009477455222597247031249051466376972026521134710362987638477383893295884460365786917516008328508975993024588803092560108442903998895333935700207132185184515235088053977321304257433527044312967172570848864417459749305490898827089067524847418256806815950317689390757080610617869013382421544405369578539687066648769320213997414678506055286610018432332698833357190365469871705792065395137986236616945928182879828309852724543714917177434422676197427504416896559159315453304148658489353378312028507425272008826717388552129869275308495433298395088817513355558801247375924413578875595564836396638376277369780932157466553478123601164988619357671877432105235201655671778733280256275929131141911598503656688272202754070350037470991838302510689947612077455482249375220400391763365161599679147811670228179235159284887463929621215648197173011655992383751626318106182168869842875009110899028193448245325674785925351752045159618215555359075950135594374889376290945669021368142193802072321311473047661979954659686168543218763594766766017128254112785196128260571882951827490808117669755372877913608770022411939930613032251917590187952524921885099086843116996910647522206822413197764744961419332940591780663968489867891519956113565073039305753247183678825027004568748682720099777207266649554415684123881607483090397149261452799542121678455534502075864073541076626136698787148990014468295186625361572397375766596505322531027373674626908397399914624952967030335652427911983764016068236199467707596593018100550226719804585948414605096889491637691979879955768142090318722180170521340629652316882773376302482376874212259328952716629270120530954142720876068420217118984177884615624745366154088654561227767245347623597134135185097583796591714624273340874558792243806005388550329925948191583296977929731483323062596927960684904760893949230447326775726494075116086857915279875715561826370256988181309623054175608335125527079638636088943527186814862468465460292529568095393555995990610503170360422124855153537166510895324852448401009195195039194301847300683355020836311579027519919841070522640368296783946432828869549753882140453013553089894202815544676876771998235368001299088973235044776594413869978789134394971913852676436181004545378085590228635011326291826181757426180025159873351940937570413030830319985740952883879084872307795940694761370172005004716413432666434035304517249072140577979325740043991738823686377580995452617278348130724515538912819869221848244825489711832311286185266935803762781697530246196232850643833607012042069665447771085175898229354466013780651732775306342698375741389604621821139609644746719549784325946390798915530426761135053547550187821855236016679990821397946881501246402811729934250126910167904441541453587735856456975480534625775551097747348023362494953993338628030784662354287776136265890893733123735149465303121246668591411914991262594104863955869149878667798674042950374995687051843854273119520734179810892938560087029041536599095561677154722023752141199596614670508956915189927887855933028863986653388745923711210708184074466773478064649982393099773178337960290633559435161038349913913274050830258962835428878084228981681267605178936366110171040316078975513405888936441331318698442040534831588387346167212383620532548965662651981400255682977823099204431393515520720170001603843504607402987392256821679347367415834774953595378957830237671932921178756339956876727601992901396065246170307727599636085095631652471041700944000209878795235320127179692131093008721279640320288765311386594557602394777295794985882772125226690438279549801614577488524693569557003998232271126927217621866838326908133668117752650091550907733162193713905881768765874366035350493533153574452909002304155279822927447532341180071220492937267773333484307738933933683599728336306347942494306737889528528241795650629891592586165074725630267054367424421288893603863069824519657165763351531784639174693360680498211789708058091201757389817842473287402670869943580928211478626164993098377407177906124428047814856560098323392218219128575245403660067495314781224723657456073213994260009832879555756116429598676506758516771435967938017908656097928920734420888263877616216318818536800301842562959702837848189738205386719489583778857833081295616013406209838710498673306462439049275449124307749329476966226851881889878000601684009110930721716439638473436457217258999939981202815597695014694063436192479239081478997330049645928489221977402606174770088911593509823246815613290195262949932859993727818707696403191688065829197276741183144325684525259044553649431190603835516903463453291653985753655569652256343458913198198151942643254895830494153907863318337025899192283033526534458045369359041417656640775336440930982252414770592206644227868039335549400586345422882386827073777411613601837521008680737598853943475230026750965850061058310190882161044126886608983808315456541578935750300383441128893759076101451408796499587348503279669178796278866207657412439819176311077000709761006712963478033951380305059552559728412510298201834449353794816119850646373584723710540322182476332455582075356383802818838639374147585777445113263178998862931122227041887061782220657553133223555668956784026118990476964592849245546922809327347375795774392416465204032488946440195066008955895044296208982853384304118730219036262816408615676418843334271075032247755868594515261143144849830054092080590774393930951133063685665096250748705758484456946139634824281652239947122836676593660119765759936229574825604542373559561163834188638006744349889099724573512863075161892869588109612786145517304289871066173630442759275612540238006999483815905713147670110829635714327744910007816339931734705979396129996976395910846627136772804201714955216362741662558397472929738805033482073243863100803041285362300046278674030341884853586069549967545383331933256891589708919748075760370801257481375795174504000201612715678162432022866903953776332464877403276247714550181535321827303546819405079492421857668338252038516340715217645969378222573058613543837039496938741470617717402786286998251054857548495950884691128829443852869277471942512677201522878503850191344956309980129137373560692806485404512293234701934400576231661353651601411023931727270195770006269823613772379088787339030467082907428996746693828936570516782397648346793588264680573323445117333455591477696012465710003171527506090052192249607212300445688836554221501140032339279361005936956990299249415855139108211193499132842319861242847543075687880481496280090369306052748573876627495300804866723256242869371122065100523691200908028289874747308003857665100740230322047416892707329613080520699925120225959921577283973520893404669990012783481461879305215772644797150607033946207344097442104259288286351190345399770242455531053575349107539306296328846284303569617934701187390132428673040881267633473743612732880190576944461940097089755815493759971836993149338582075777240984548022326519727291627300577909310633626755721508873145890561091793266608040682042347546098997510905049253881834307154458713883415907696543909715109229922219060951440853059661291686919942816751449742567267964303736068252338398755313936093166595472225590441942805200879917796904157643919224760417989274908253371070779496346602544864833228135259804672752464498319470969317687395630921123501191950125362591973899854282882916078578515398478857319933241591956035055057006740844439567360948093862680325686818368240661627894994794085143286607594378039573274090800483141679576892664631662162586950174244168667798789367101734491159270446124258401494898734248805445700983693784111676308813918417408169730530611334872112867452198262082378720010849125189753156433748772217067122516511780204648059204337903484451469086957637119124202444301688502866021604168758809102410021401933549481256126686250025814503983496910070070998224070430382641041613898836661898598967836078670605258850396763736749840426189509368915281600030801469641684600767327360577844382261860422544108025545470285104817073824635181619646620497900734238721664837827456051104380758664761522367449497185645061717962317728534456399136762076142354797238617571735581806905276271863100317754667325599655409522152490902867996479328307015402948917602611969268684213235283494258320582371604541265463918862756620284528293019402794505456195222051462110147906940430940816890201773427365022179185850627900931972797529071407084722671194265889392626087238890935177769704701423032344877564542103505619077811539809396536960904782978242265908929654806417622639045852511505424668477691996692593097061536281251257723331904352796795614130786378468136496289619433040150518360197988841802729302536189705484055889381717187430523263170077545993406022486439736469490442507964639159430198003112899942329128801401677967238906013464554164485610978397109714635602955611270559890246727488241497938540281340479979881227522586086911671990052466638553236814332912370078472858865723310637518878592014942329993044526874517229090780136669670278402814383693844323384525619700284559502077627932172849178199657506215086999420137169809373145207502755115874241959401582163413433578422384321569805066104973688363519862055962361872803285312601116010120376706863940274478906238497412974376691139979728011667512458027166787135803074679533107320110025922602135473698924366370147690878539902090329243159603986363979527418287701918650452715617434765556838920103476395672045641977969915276659729523530195719266777561941790252465991556580295896492742316058402569610550667127572924798541753772442219159289508926788809714968457325277048869598555009852837571324562948862232969314457957951893460723437326552709013347853625417044434321548181086985388919338308071260893256463057515782988745891220964705274102576518468813526998831342313143367013197883423228416654086082861936085705444285061971210740581113109932232065021299910103499579391958634023754469132584579371280291866468015372930726928923387994851571988736942077965881075318743808386767525930161165415714316494840180874275504749495372908744997820135262072021830010142967870661995722429577328001656462400562843517328766727858374431131702196727622591641670294172315588296810769347526535023207823394907135193009765007487504697451193171765877052718787634260493339472301145133104515888467759529172190093139037809010032311288985123166184219101344257847480575112991722916395285521055165806120034043933912546263715994208644350974389084535174368621897786547134808732766361901658791728403305593708572915418045892250343445685612175481979996246400324771718286797155345002101816545648530773135419732242419992105032654332765948371155487595178322705518408219740156127413846632521731003250939934595501685674705160812757334203476009598438372872853904610176275604673335216772094651941633579198433021455396414358120847970310337026585234068641922111599364277715540402170560915606718082763579033095312555556974505283744319856280260411177117562469810389996677196222879141736076910349190294601699889633860707173653888987310712149732217613044410568595469055428584916422996583750173210408796419212483895110751220720086499322133775339056966743330590804932021998977450346465670164523714555548944278757548109777296177461244178080907155503840270017094759553577167250922813698748218212833495320413225621408267945776224789379543741936446286777852709378204634289277304631185316886921173590751972506413059208978048698075070824619526571866997499035085905272468636953917758529347630184902979543246689965059854242067831754871446938407459847164019876735192901665340864151860963723202931209119378218468794734724872638929475097242847841320578972871500889959294598185825120469025511546855876012010382319527854003985170668263714818979627752332882866830177034241593825509452040060243455498747142499487009225976368573875423669619300582382299933100336200342752438723191002618620823882349335181816409113776975498014654873847661147880330389931698173413683328332038284439159077343821790320384197361305145036557778968439510611393911154103541012705000001948857797997625771986843898717236481578435842116798950748242056662914413202661347405884633065535572512928494515004156089842448900879908681329475354927529927830963424041105587484296595241153164772045275214976075163861960155485790605370683456147433521503089965855136830424599998140486451059049520148552984343840119871394365545446126851217765978427018280268117990198475498717866648134534259434890876479762755119049461416940865889134828126926294630012321539833296011628845294112134820297182650375039857272779481385507838359371621923295746387893139857663590008773803947184290190623898859595556622880016761089901351642524451825657111955854767606492361715994652108985107269613560033023202807963870537244014434738580819324335204096674201569114631345054718697064535594862814662589894627329542604083349215467148029633829816190070064440519897002370833361421403419357692728370419257064265159058374565887159891638537579407101568323054365655118920328342748742250723840304527746876651942989901213921733937173231569892855651563890300167395375372364975326882635699368788460809175569994021769562730519188590663693966453590129516121793155299508194135317945656643825508532801462063146939497265631018223640791609096073700743944588469152239231437887473229077448746675223722460802780034487751505203814192296626907717760938006570108249831812151636911224571378054663307242599429525278910720423000712625041061429860923436584491021713761895027929016674958857952381233581711133171990037053592258340340260718877265782720456815533759555176672067293760519207658808099999858987864467819909186011904638618328573248139129275434477383002770132472294328656159373154456708936867612755932764703497401246424446837663148998940029476434033244149785251733027114861247518631837708905624802982014372310809711799099954601087478935330576954944224563858856489814551627874070119581606582921663559860546825863375476292926970628825286622371912599392591261828229807659435949739702773372302326246570541819088423306464993519480859764751823592995280991272764106584419683450909354812750538979721780158383447670785936422896922999733060752596609229360243089315209995274381324671902966314922715257073518168212445515443888515109040386035169298939865327499413064351930772342559089009937641325563513721275621672791135346262251329922004501870954780172046649269344454771363152182668904300013365893691142580488880246007076347268840747694528685312954157784976980521992510151621842013155875940386131393181019807563355080264672142978300501918633949861097660444923984762316526911902140867906185881067156270314483082934622712045445721530009236446460183751184557814833476953793953476829634363787789522805466006883673218746874278581098545262868930359757546593641124260147993053297721008505152657001342886882885672834959473753190370753075811038875156314676286732381811734012285216765324968004898699132062902895480809999601977654719097037689753231873079512316713477750740186300754005444704749098208197431408024972714170800989155199253991569498687363543225290411332855039216482085493724825125617568433121377834161577353011946561516056315762276215440314602467964508688845081734875495664143993586470386872235473887719906712991554779970091839449168459268716859349092534227223226108385271692902131878941365781222995304183750425767028380887464657082736630865873243373652020442080157896058859410459064691921225229264703749667829000994744448698706273524749594698737435381206902055350826966750968257523340516966606092037470467483754899590668624702217286302309795795592721363474395729425596288703370233714759277228199324233874396759139977065809119924934813558098019788530384072487945067434654574454198225656938125630517700858586485422869161025474555705895698275310162700630634169062651765306836562918813245079830871571042157266447316755809670139464928689192483484845757355650653586246503809967068106812292725625692004043074668874116468529103780287200750597667852104477880932507414893123387261618462090757479225729700676833477533183892397919326047063732204120887792396992415791216002727300634113190181060725270519205474068334054068287976116631145748092377855408321658721864060656659775230839960919388316885161211510692023737549190459616703922259510929301346586741544849400735301041212461027156051397818624142129692360243783739057854327571465776869481812319919480716071068443726036513295256370308844850292314436025776203434782958953583350437871325909128566093802696216420437147287552908757695731387439914992988923066216142876329010191524425935447618297662802827654834457469285349374717765770204919591306351736190974250727624680727195683417144482768392246988029601753206166037261887441955136228436432662093019378359663723363334575590424013191871212651722009468285904126905992832104428695856791533590877464293566707964023041351149904217935186158583999685286870265163504019662273066667656146310734878578648937246458352632327059134937972441383226915417465230217338977220609980335891199932661041988981471281758960196744510676252828249212142121822420694690929115618966069663260881790825619478468080403906756774421695978584648569684903016147864344226120139938325203667619015673214654327851165271583075289867288204080851039509615338638592531648282412242041103059422925641482785270638881245452114342978679589836478163377104635220027663793785879563021821416694522520502044916336897628023210750248202029280575328964275925223322712283778067391464712241089094790859621238315099363273084952844793990984681266151255991256394817107917210905894452105177445950113544221514716147601554655876262190191678928056691594026128998089572489923382812748462588387334852764939488019312976110194245517573022392133862408846382738388690133458517756442596833246928167134229332727130721887055123872334949775795453087610650509630975022284017180795146757998553296223141977403249940715085553981881527031618943836357592541194813832583315661298286485357008499440931861076205856851000139527507229592041713727726778275835115277035227204495558805827972038699983486066707819219718335221699586918206718519790193043611522249073951950844604907508234663046804598822650584686742161793976135225055898623614136662680212170798213057822101831654771157416769151712349489752919487729381403779074673314360953864721018610514613940296327757075277906966326307078308655501547560169993454069721797533642060951526681265669953703084938035328927850656074927361411728120606764628824447320559113428987924587886905944857034664002258567401026824726562638086674281528413843860799289790802702288032380950474511032713320900925968981861379468803361181817793737760213929085804437596715097894826283421863544205078882271926446826826821596422675512555446354540906338329396514458365522835428827796422891394070920839424075387552851738487764332175718499399356769371457130534184085337348551663880917021957268488105816069068548123656767927902828974334803091702419337405618635985647491332253683021243025120007050000165951782032658890831975913651691095080236592367857364218161627636762567040614722328569891709084835346600345378837140951529278325734435190705284675563163413197962757610039468519499074849558642903931521309926053256873875239812611419152586702387438045573888173255320838973591320964330623194391106667483099869491774071762949269970114562344749089740062783170973906865545415578310535190919070717928684560747455580697345119816635190504162028486468175073569078123496526744231497408789254055255217284933326040844202371434970309406990156445245841305661626631247763788828700818394795243199027288571634781875651235212841844673377551650871575211531950817836102025312810785476349565928483234047021742751305564818252300373850464387531885939368125795799818232338354398994477188350704978635572749499044898165621820256054585572447642462660967592664577034146408387349214620932154473490569807188774425934085361994633996996268168956091890494071910336897434485910630173073506972802210364801642834914723718702599743358261181908956894858028937336171564687187612124590726133316807276534549498905828402935917313584003029268458259620409601972307314398402710821626596129099840272706831029195556897291064165816884934384622038538374689612667921469578087386815725773797678423445671497762923150252804027255468349583802190022642910191725112134978593249828002872953343956876118920057484970258349680097687540185169041046962707288973190318886101633959219601603459042407374611326469927908082754810010343587515195336982694019032320836229472017639153269234787827784899615788410224528998445798127541759073741073929391741345024543227387465023335228137452083272522305535596024318551644232134659812391710847260363923000434844903773237763436888066389725939612740467598824430075864985158794624331972003280318132711921850603607878108986838065395436515105462930035220250919957848378445489123392574724051177675803300379786576299038395922514270329334818906930899994204590027023988360857149403663766538276939249892773610149038876876022961194735848609989105755198203760069662836157968721795500085633842102084217924771896077126799679156586757404818881179430919421886605515344782999895301733594569688913807122434021449833707365295724282839324896457059507097038816836088827937733583451057647833347905740696160745721158265965635159810976669714992887112755582190792695046490288656078467186089043035068226483766512981382562553117918703376850908443538758536646789113265048871283288291165192211428118784965817386618338428832917682030889091563164691436767041609273924908437420004212776070210579676221306361683736382843212751254216285548749303317867721682544460512873517439502425332441735810096269292636543724202809873892588637170237983975484625817212970208018855415698635694148680107767109974358606613856928308280618251955512816282516180856435566308748074961437123539446926734013630233910478261912805076733223708222582171057331589086625036483121940005293511035408901587704186648332348654676371223684214942893171463755444470768082124538551047711330447701952788046507978593030728644655755784289877617135212963941275941415961756400996963466547343331930541638058794065036787986075722604197341321803094765639194732421124943711125583631391523522315940898911465555163220785364636774555006535801919414504769812194960340351802081556201018391961799509575559846949079737310591663484368712033030261522064790228363835513211746972570912737262300297412630615706829293379565930652082862334852742445660675485919949132086596115962269915294834173526183963324137372903166074871992335848600741412449565205277347876396476758446213449998040904272213054240616123213083804491361496360468023168519988664466106726429991868931592346267712846114263565503156383221647935287298995061727800643645071269471523735161643843615951443372426108412451518918359618281363314862349545221170442747993493290188092520030811059562686949458397881872575567873714855998921206741387660000223923465517583738214930068390477693820079906803078886600968946725312727431788829252129925434588337051121622509923466321242735895174454939398569219073747361731179437583730353680550267170221850973317234705791358248708006213334404143565351590648372493552745739618844783605404961878496121285965834200899600364303154567475924268150681231898496119264693116882033388536874025471989927244413560329228177670520582654216509552379592326316618043460066121548101369122648339727509748011231337762541988202409077461065656570367191041609177683111179389309507774788042409100158704383295600120829360597273192317738829750112196376145725347780605071689245042466553179810727701548928029772716005901792592127644899579108176078914770339128507379115709603592932998266796716156308801060048458154014536272147115876381408688617402035165642785528024012020553957902528741918916224560516843288113938138996923661878082635596780339950726115951396764545298176687018433476465983760611970008439629382483380834212724857752020917844931641257639186175547775961826155616057103870917488617406832349637867326924706720947537730477811802302406840063711750101866150772845350638209752448291470438271960857468918441098161492072058083564068353171993034012408700161455302945519682004216004654458925713540140283452788176115389029753368943710636192576582552330312555302611449101062518236894032128472288519048091679992242860447856622046827532442929542731805964813495264263362110198984023253349370380693657753951132008488899506145844991962745154454939970733043838150786935118815165484134249859809979083107914883225971337362822788050527572092008246070311705131533397694727861821549402585973008328296236507962629273521743650928032566476257604782880575150745354619975235557852456124920459489064266725288010623224258249724706042225390726111428613489768455869963930379542213257795996213496513648197600686925130706551265348399541425552058430519476341124877129440789070531404674873722485767033891491807219651228721791391341507942651543206784791728715262935850048277958552172262586359683482856948759856385785280888221068177098667617729895923588685893257223768851738029135099987631651973219014891871749109715083843553184750603520592479112287296132536536619929520808394728819378498356902505821425997353176721921450057999709564681226312293558531429538416278385173094268432004965747571724435152214692580470628485996322567844122758258552349946180964443357407640547800497255524073308786439667618642497304217680338536095185916299982634823065437273790794539746907738948472547968423920673643001174113351876750830848390778430149406841571458265160974500546384553273529123565701747667774299273176306670930126931153179730711256958946532556060154888954053259934753327162312240027308890487877361807626871058411418268024264696170868056308183771120640594203274546604321436657022866449061726469367785010431641601576552596094823269472340715429086336582152978892440061948191436963655682234839913247544585242246829411411510527475497960225575302265562268444711430792252188918116287648350102302750859835965079501881260286777777758240739108269968395851915850657710610312262481852092696614283827229385784669141075919380800183584728238457058382070599066735451725957070973906500908147075110719968066216017533430774183622842496861033280745613928051615333860225310196750079935619460350680411234052774440355421416337523169605816489618300460793231681077599711276605158581146653357261320216933213428975455928692204820351425613325109201978413216175135367229861084522927918373230184245337587140624707491895749485630747582136773060056710275420155634148874842537695048704363543328891501981981496394274428768112436047751762758469293979758663837317780138487320783018996976419853594469748055947997847113131754438634442606864726147670455025381834920150627398089005973794200342329776894734122220531127428949080079617660339411890108769935837953309571325095005946739566638736794299196208639282301704369604538703913568067882892850620348871259566486443644329415091885776703088192114249177290966182656371365688604923280900026638417298064764506889503325970590270108840611510891200364338217943183335186905988972051397224695536593255161515323019682182545513416714137694099763421056788571980023609078016387996174599282727896901299501664807145759669322390859061970609277556938856847995828971603311518291444110787814144601169369947006499835874285192070298311408166477177360624410721125144649619231285463849990645277793053223075432743189683944885235500014607976942297081421595615283426793859542673412067351968310277168827471630295032642842889062566056230993217675949474608149253847595539796489193012080808016928869306323872052959778223757382254882452536632893959946083554945351931351397970325351158211362445053655098914693354866467774444519610315953313606837689494338906849795767721962760790022477366355517099952362070110232911803336912443859109903619439948186704203341024025369259780928160771761607392852306843403859203768980869731676344947708307980441641026110227727825978877681954487887155861279776127780061322712787128277882641408335180290254755268758744084060143262748067385364854071493097456107331543771386755892976672077093303630391126567255132903776426806774560779255020879300855218020755075638467242144500712502339323488149253842747354187989587546228010607324566979371463438436919556119200497585555658478008966392541267811475455377086714583702310666260072992330492482785579175766421450701305111029258447730079972219468400158675424491188360605095223106438125492790244109189688930678449333354035625206367163880006757528403116360693688458084218455829650491910394409479401106745068204710802555074911796928261780233417702352699847128303651755799473250604333428473267644267433541764297099071094474363705007679806583893351992395174966775886327360836907437122315922402593662749476083452943503377702580746302230803747848005010049656548722424968358270107412586836949229853958781682827220970141151018289189703037304906446590756261407482802967611540463871505337455708608202567510312122115947501297694282283905599060910149648581424033590265835474163081956233532602757359392525864284003843181942704054432695143791820548054607733323926681266249393208948218282008384656018718465229276387607963426424821417987009036786982526187732036568638483846580661868970476440506675048871817704158898305676023973523919309686681683032047246862304017459675900545741745248712642682462675372339486226620872408274974804311865811441532328530586511648365538264313311131262111820974925341974933037891974758108828058821720909741015302028911418318039539724372874058724408127521752796614001869124859694569609582858830252621703794009501932923694256999959719960951514238368435608859940525788645858793309415373664926926721009741674359954354976471214603335848465155334787355572726326093563682121856781678456289568421559887719795522418328906748107322882571779730719804627626820772383326526112195880171509485037388325787198444192853481000590334652234515617019893633395587132044876863387453503899337675951736467647174681691393103678619212947930024504492313010033296494663080612995279361350341830532452485738964857531107829403114299942017869318541287422193279242394939204671231765745688001337304135024522999705528450928215843965893467124767033453799423299150063639692336523022382274932424993741298456028905398359112324205876768956735060819108345021209815890492839672768914426287350006812670773499921473331682774340858346111311473178104537270477969703012221868525549555324618314055728173562223359550922000690850362057855480436193946729548865873338446955036436139516407666673758860014604292932217805584337629686777513180304342881419459123827193782084785988143562576531808133380127510075260708441526852075984901204144241521750535931864402061316275593190590056451270722762186766025668475831103962387252953094068584789508278831585983853251163038772832998160191684222140603342823939465829673048891780910936751047348423614860755219205091268228818954233942856164630314333084421669716051565994703079350358300595922619330657355362083313172486752160928744467922242720208621818938002709066010173430857266330727430230015406319168964236725238808544997764305035590874136303763292045921417573408829890304523401755469819407104468596732714982233789790702846396533963671372534395873905328020075002495195341718386979019455138650783050254609482818391107220780458009801549789592349595854735854287824412963226710915076329785216036354870044754136530002514901599716406156999555982047857864272788853682020509083323587563644988892009437271604872285706596751439552420024397054577671158779723340524103380699824849978905114094400353345331943258987500215863046314525053738285787451427732393993625427627858922370443749906058505739488896119738449014260584126264654832564732795129819629491618052933829821886350499312813794075556229301465555746995036651236234790879197030483904788630702446537075085979428832607678047710722288646634065591494677529772068255457007630750326041710819308770072496095011519942386894759049934396776374578048889887820249716586235664213370101935496635058813565506973564392772134706802753098889499598630171525770304512547922174721494721030017174217797197319980005543463432165096300941890409042690907596610048210531595730892613740305098430761825833924930728872897732429050772807343762180464399552150721752481505650870416094270849951038907873393217337834249826897667901737954925402572853973018391656116040116096674122970456646623634322886956777206078586991609224835606813821515253785167841953401183787523514668194312295948048313772296751404448505722245878042439884451859445932405564272015141379714634115223365925880983621647820657647039311317044060400520664413460370538832561269630912390828426460338236406265762037136112679377594219278072775901878431196194944248091463209019651887936108680446775673950890242829531277847658898412362948882487877155548460735978835123163615686358554725653890459393477129335122332866986792861504591872829405456609336466290097993790533373246232872804280519717474826881398785820669985598610602731785837490807900636216049238628636949370657968223988915545788966959874808760747034597452055073608076215392620579037740970700864625662992133111605434417706082927861289667087581632835555143281185606545141822985560515412048339123593871060041116093797073669528373625310129315081497231113656490323829386586122177499940253909499473127047695066493809527914684328998346693866187764176412016125859394914845925991948196665287092165264449494345629115517297443311182436276984742010338989105827909372657215412158248469205618095268814054719821797628867250480186408782428706790881890119721905165204683483510015564313593436967991335365295921903725636029779600045845390491463109705078713999118919726634128276961139401001999837867859835809727626169582669920001399471356042370686457321102930222513391076844812346193589235475981612094179595692538195672728688906248013314113261711366261406294555174819572375176690207824882423603914520782994686022512304455159839162686521584960763316597851983275012695067520997755962140342549309583198895482035446700939468020585474200314661421313711499420479544059309598329295933475022358995101576879166860284952690286497078525337036822559940013608403526962509170129022106826961651837104035357017394152876268205417259111762990775031013843613114581100155738317707343279667621742680854680520866292753923629371843872124493984395855048649791144192837341791630090850067034071380313250888087901778185649872353293200500255842826667496066346377739200880776808823582008226084254433572490717087737002395203731988511499985098074744864084971962578159033178928257313551023839141686395084324794715883005708650786033966707828159650104401784020679580177142753836557653691647365122578303445108908918484207093778035890135708111926338394171939819985250933100564436436929238825913146309807720616213351990192440463640321775583992892415106530234220700300490592239107823569232315682286731647574974826981579032385662124658728612095387412669788157896400043782165338179688644330278054982590579687382341301941028954718139376893496666577579891396747729389319490450423553452401425279738939799097932551801928986521616603096153246576478339377502176259383376326426436626704927343410724077383659740810930412128357975473451966820720413909801522932996986509732021871309558039211474825954438152708227882913924931740946149969645631167106354609898142392089872412959751006584515900126503774550757481277307279503962804087829828333416528983311579464376356542036691314215028372391821910778578258053859103662551469814387735072344842242315657012637939201703641479144736785044074853460764341265676383282635563123860861683470272274952119815624263805798629575198657984468764211617276240794081862030805323323422745655337136223910567520304580273409403198526189442271068538164399333706036007564881428238073380818447283958067433452283074221442177135327937368448047213072201183385918812534595533272540456508319797702894732626741686607945415954067962123886685673353884659635175788935122925189449743454913597308528347932669127849763750363814317170137027517137239361737936230125029297058711847348751157368600390327142654092160705889130526305729361807488597228581645406716467978089325015922210306091469399657828054362241985309636066565766619189871177510830720789720970627386959081090774557940447487890077390760138626174716942547323677397584110188734239716958310240405236303217557185789691900422703739696046044709971905375542080550836465704114734240172795620239673773098990663911934318851698260885220197577257650532182420050693270685361700671088687314343985947952409004541471101883797525489096435840604397169060013024120816588760909628890766749270609099219422731591083942258414917788282166771492705748779766782810163740997359537809568857642444025979842962641319127381686199353771358633083961561151326355246807303516993368655353891478562559786178342752568474167284315586650955571432428412544807673140402123216920180529995802512937107220733692796656023313429928527922547237663460898755977015904497237618991403239319079762460871832805979936651299022940126236454966896050719977578505485967729481623911766161820773761567368871069804911755634271398703851649395614700987426841832004838824501708456815354934543961537612691775058649778822814015859805356874278146829861114012810744527609753172705148862637525505402233966725241700255328198149215333952032850746160611793586649971553930180679407200087250381387324430803135538420701479719436006222203143178999487323086474198231614710371004416012176405109723104555544875535657649233157229515688959241779752037114054238953450751458067364084382340386176269004994471763035870031436780241813585840160590323326416280754868799044783852571814856878636825687944862710283778067685474271661236633843897858054961184215252012010558411094315551075497250532446781806927401140567220352967451737894164854359497903399804621526649003551392762339872524316618636563133679885499930629810298940527210099864605612434331478252125793738922312255566237541365472539587984389335229408406854316088553979294744250337722467031201804594418908379546555369208176607541949629707961031499292751767230762479556752377474263279042579568452056597202686750584407630766497169287054211510039906956316711288575532043920652374927441243195262877008944480296849383833150986299976159909947280573515602518659345813126498096913894327174550990416197926146556141077431927818091767333628340130357795828472011820770735525837645320289269021390141531344551045877934477726079679614857024101499150081321685523305145675331469185904651092745972629784792084889285086663541524661089509030338524846177477573672058301435973557043141425942913531475149445257538712235269446953646589700130615053459878468946655260361976431033535034871674506268324834507858739678017245435167093512041896545832735646366376193682265437122197323234805897116858766216650244029655837425959003839676273826818782952629826995763436964895722930565634932334756154742748252246203133972278724848917322946791025635269163700389274100101573369976481471686617196480008476835008867703322523456011434715653545970503880913206309022126537021554711220147611429135177851115464744995695293732027408565655753067876640924243817957882945522728665417793078578497886480505720347069579607634465630975576229737137221277116535482009451270781903767194288516042107100243577822738369713453570837532997815082316854520843772246231783043037971158047037526109200229727979040524997829971487987918322949893187390081558865934956670373793147554315216702692898385000357631125747069367196894553779849414617449002883917320806592857295598869108413794755279993520901307217302996088761234941599046126315268406595065579852553906318794932377104097901113821693397772229028794141051924175028022639609202203401890423672465312747773552232797247521100054415284054724330666348663647054862868588076871143016279922727927977299582910574863640320176189419261768314165515757703470093484387148368119109074710887772604786120724405952907236393991764443571976562829793094106301246107438519647785529888200925366979078907465712063486727780985240380062635938439715572178986120703618730363777495671934280149616083705575795598350858931666938831889799706557297470174221148666237150752167315186542320093790542984416889430727401813509163560385600544382260680812343233324481420707634028238193953086008746320578462796689033569531102249250386856392714400698863062644906063377215524368337123627256146683424817422914248339074565220617467646589755662893929928562668977284362830074660167098593952952757265695238562047413538174803932995749274971157005608265559054787636211346105642145419133024864930660632676530416550909410591675217949716376198786374377692425529059086264478202535598335183426121538364539903419954580699612503967071279655282840796178814549866101094197547357940274223564376075384499996790197818765075013597696706840540759439450825943936404117424914800910334903141824256846511830663588504045371918913015408844659202422718811386781136735163176227940080359283663384403691140132632986451216772196037352764774558560306828746598345845176941366258466178163221486274158310843247389041707119745513476902274631007399214336058428129176886372591061705165928865576938827472557785516939184941582630157111697370146280328719274280536095248482782703426422649876747927181745540971067217457150443997941353609521410491847635137094321189883072223383976639433488092844228002550796742909817710299068345927841256698390274907032117308604784892885118175629970386936764804638648911461363302432147728407600589182519529978670287281860297850568050825985560156813982673809771437329062264567789731479952636322079164214042587723272928511436153843544986599154601750558412333483926872705513772805438380003865399630609264273853603443502749386540841584649100026950729096999771735083887576081337651126144779109178489304531419447774701386329807741706529053482077400056226820343945359600602797596595113463015568629285374102595389763828677500053097068647569894678937334380263763450908949520769301595453008823272791132747543898753022580534262207427357127180925157183332437703084050253265117084810576588575794119428471062461215440724120002543471954228146017789628497155624760529990937657856044145337719080725620557004080050496514842921712976139384580527792176425250583210529213453953821743340467373098869740551188032368595659941914008455291292266026797343860700738210628014846421400595871314291025850589509835660999752929506081656225871829057846349722542482158396454802627958046121248379787918588663865399577489169479319484063027635668210437595485636660505990296076462897717803364102648462818977490750576681947986612140828750306875863113677003118911054277731750072419135451242188596677850645249382952368416289211061797756329541067327868670259925893139779882657777884888894591099666023619527809908663248635155302869076710614435127058501497998230052979428798883694638089507977090323770466282108021369533616967174311790067179037862462381532588350881955008563294132082162925472894556015880903851430081993542515723850564013792163989759210507137879650248911851123539313018544381825393355383204573949089688205586152342560722882983807366966288552888785429690315781036978019408158839589477976322222748368103935950606753400330471624377828063953284675755616403185973560577418051413695072945496303992086090585335571770613267550994141013606817907671978887341033699505599671644121249794529575754013601788812723826251410695593455464651642966387074807882071141454088041285812295007025249370598390597010541301117428996648853718807655562809032816404911005685277663768162982039052733427158512574496135393007291939855546765095122091079761940322274169583498645799197422722037031575420426927927114924199974497218120301832377967390620535721870836167411414374091318341946754493618629769439556320308878413370502014203871557879552762978219574070864525438991714642762904783346385152583072381120330910886561806595501684725642694000570879469584612559515446219459442085120979340207319258182408231084874926004421856377410238798914204984417958794637975343848206848348895838786250587336169604175294872554290312023603093559728292405633711415610900058644581641301511741030699133098687315296387570921236448454167743120456507061765180345128565785457256053296103395255739922503357845314214608682501209976676388293172247734342358326829144209133035237849668085134312336484135158814535047874146572263047923519343843077291196129000845460078452356893479157270355138606915915903752004574761477052649729819273153820568210407132895320290525420593149958941635344146186229544776211955470349998427244875223767623612045920867625255253546268472905094905072582185962515872140273589782288543546667026472564817048920053313968350757893190581637162408176752278591097009328304950388304211869383593979868100353815495043496715966010761779062790592625702805183531330534016250411625149886504416772297162980686727619978251862699037890356013116463352051792045544283178691893058218702102086762759819643226883424571500201406324870205415446855892288113594356788627968005285670724053093043969486042863473534999531396080321325105090583209123361999378284957104217304951928887649827678925009404615241437663363279811501799725421713619144690871405786512277568238592748049628893101450841552061066626228785853064983211033968891193418965577673680375662555858074962254708152440505063488391908538147216339472498034961545492167453141001188007809522347131955801287807046288763188552955710400521522941738203559777596920011742583303796873923538505452856497652962463504225119672520419582244881351524354886135724502305870799756085314704525675857804788484262780582248584266010430874477279850709109403644288068007503066522287200541200378256625575663481595290934952168537060206870989753888239100290592785159461875488101505713277566811293304996751230497427594509559165982368026544799371592961008048468189204351275408364474191139587768889795614853852101601292190263400410659467781520895727126151556798453254780859393932700989391070749366907769703171464202920046288798120004981475180458954459153997312904410944630771941749845935396960443311755636487307164017566711773692989287853869029109183040493626417176963966490396470837859095762241804435536765962334437733715337956061045939177798142922350851545532391545072298792163209949574773697361105591413049838522017968351250205153958865330437298535762271285455858999396052084567764340770066453336065126451819929929347580203026501530553215667662651975678421609393761168554488542794161577773818899591794142644091762530292145247276111831969962589388481116992265979297850396061299589881890682014944316930360189378824988204637214478364801575182535387949206121723082922724938275886775109972165639587488493350551879550872748669123916447216417803223677299693517103665721205875899321756072434060463729625141718886965887288674269210884647197042228446568210349792975676331161918706598182901077461714709358604333482484138615044095235053666757727704672483148019481243336802902923951871450271243985029749545264759306123597143485937800712928209317736420770639069143860959302717197725781834219848198217249970284958282205353046040841741621086689570652713112572948368138977608166095342573976395482465895902984565794457003761760455908393795002245441614984797306497933579016858373523049261749636545824467732902899982249793917694136495638868436147343961309100483307028849032476008127976676205802150350931335965558634249098063067490928455919883824027158368038660545682589835238506740262269649547209278068741514708150446945683271510104064886248523819034476684856686833086879737249344944490838901588872616645120256902970112735540984607506903012374023276722447767471237098226999279316632340545625334600793435343630513130504524166803786597444502489668153593256010990212039293270432259898887441086046280309425493048585195892838660170473631265190703565410926735715222806814487755514548478913401882761334367470623510553678377252274978959611617633298284452670738116078211132272811766173749534853337756310648904056026944496341369200517223452008227966878481874923863573910193128153118773689577978910354707221513161571014522653867625888795868329059921189877973936200758778597686062673444948633886227551822624220790058688767640788712078556781303774928566661084205824341740029878434259649031057065488221420181148312361294283069301339035056258349874243310915607462960011093532928685730890330244640901064597489491827262926742410237155600415209827838065599410964145945634620001883520966869472174689161377286027455582551120131081005380605168271803858251905149008800021004553464090668618444054405691576765731683606157824818704317323931168746233585410756992343790371467110301603146120405983526473341276643628143126564919160403893608386395326053911045452013661046967690894451620384643146747132637193445536333500365412558536679692155945334365630750021948300246594042257311213845662219936008551431086792744799306163792229190790404255792383450153328488210778497855774615619608972756646562862173985214862881857508615868104993010449633764621129637728198373419177778018991521816805834299542876682325511648930998791681155271196725222918289151229859471898241039889717077953960505199155774067136988862786570377361559845954158598930447845085771651604423780784842860878843537806032057110825277373241925577252209793024207284779766188640732766087125287597125773316902801109511163728892025308557082589873920230081785417037053464850005784952775125025618880241814422145244350839854655858483552467722322653256286341458450720796617922034759889492626794063311338888298200035718378582209848213447336849716198319143995106471635122663006286160790859624308977096560211325753469640933470212638456270893551027242605423714914511861716439087266908416901998642403979862016133314434926428262963780141750226925907911762363163845792851797503209724029192205945869482872426305635666921788998814000227935628566637662824704365928058427001948560785685301876060159860306312595474938943523012483696591872129356148103553363398304789457830625283659316693797388411879642545891095942649092868499650994113516220388727079575799175878157605976009659167357709036867506562188731162720898797854050019657324049218198238659763927244038316392569135776095521510986239113409585661712471281601129394940811003920881497704559910644623606948601201894769298092671278222862088456446726252296185041930565329424674692394709002848031701968838520900915905057198873069300984132753368454018482741996231896321267721390235175026182044274522664110222161565880737854141229906913773150683292051913238324167222296558271031915257989050305718137960038985702031958229350509293639541216032617150625036041267414892101579279251011169412545512106450446205715596005098832556891380578313740023933066680644501222331729263172787858842431944040013851838136055551357184098277137870354698319254367262472070331909007519722705060385453907825892433955877598116611580785142362192165908126148049876613349294643344320429147416999015635272360097524744508513310923736159812973469607679746706419804682263463368841226180059950525456244697212948505528328162831740810732713380632771446410239326812936627502625866940164789908215944982534169675228384229380798541430034737176554115292881451924617364255634888669952893555824057723309510185865948797251640074741510172176666800536382219077058189069240097161927830397105101377218036622840053008705943105573975524196072013674114098896711300302228913754192019739408916912132370730724859129995201116866707699123286860841346130095731712746333792590747140843367779450395172206616180017167504893474790304795393626999352079065849510346308855875190306742129014368996068682131357790240326915728210224326935129311429291120982369341184328650539474017415776954019245227989476814597896689210438821235980342831457553445147377403260497612615202289625915055155387585382479168530632046677609942965332761294449120095916164258705548199730935770785613368737384996750254080696883733505332259917412381694605557721417450137661098555513330792858166570174121814433972231634411141954143705919771271772255583199935141000415275887045318199156978365021566261169121626356995494047047079471698664701496589435678698472648256745014219091098655790710338803280347610262732646587168436694154198832798471246052590377993883243551741675465281252530648797017402828463737613559749919277696704001641165253150229274954135165745472975034405985070606704482698045964505120557814959634851994044990136788083282980896844601084103653163646007231588148405618704454295597934062702935967604524547459675594850482336504793791277956592469702715856995885354508398115237471855113609693165686441224704761773777412666522095548522199364299182430632819261945296393222208695514356096703456694422686105485589763000969857798926359982889780653521642357277899022127116027070729347644716004721089016518619076653823648583168403461594810776842479121085557884361599263300946208181184768808234655438383086679305982234368784216403154318708911558129314718944457273296219297805017238645761760427520356429106443211517736404267989584822352594465630055222337551660886707926927949567313278404012513819250456676310638703572256899049510713239782035941309795257392805164965726629174669401430251794984783007087007537983887227588419784715797694751877855126951552635948656646217605370236790321818973390380925308078840950042471681811470225385002828124845197302003347981097460614771184920043839557757560793985065007260406229481520298941344534928087142852541661995503755671554519874206023401951761064722144559097387718979695495398368204427399310330210943376644215193522106190324958667129953205599181694703272293344424989793175953151713141866736535257252011254196995170421824216470984907866295948068854139355982579045066710046030837852691378591910797689051816411295656008487636315460660588286529771909215698846063494156827185090282778186466424422233243123474383333136369703462674366098068610158793441342304794658320644080957458216883115151902855165642936026268719159031507058501769532327357140989116430350761853241169197647846388382096431977235802410300573255466535557721188204284884852728617046900424911945141612466052348453986318002661647034008841276338106869223911029426723518262955586174470986401899162992650796282529605693009038487954644106156356264370814003124518015734640039680955570572563572086605981995102412694397289700129576397012225440577884249237566536336923176546896543920531988040354078207699252315096404831741066634221210201747768412351915289672613598180095270831208169719472057766785442626508449382275169590688918860185362815963444039137052288024351685861384321434877204328991483859271492603229649747151721281381945264748207678219140134718748908139120443272293742846750851429439083255505967360218400420313493933361864307050405336813115449803833603981208672856848098111828618551708011278979412211284511892134434263567506971035855537846167680626182409626819111484081697933988917374448441492479232358187963833732179611821631202140969164857825066470981128749053912739238109509905981695442139232303677735604933633964198051279315704537234218309328925878984227247585179729562861236581371444836771405386134313859262279527093827775675449712067111929031774099923130441262038394261492845067008486461058850657192078939522618145213756903032344556910013620543365106948918157349386937313956261768939341271453997833480378666447451061335384371070178992209712687003809317854394776819573235580952823465994413421517227519682083262532835338185969050086429866255324248550424339031511158756304705003549957675101303419543063074091231303412227312180842620888530269656255970900709839056125147900714385900139696515048597924721121861698711469099040785549641151697949848196797353191721008453513950279007603995716972194275479585030241260379009239213514253521863765030950234328165986335490078486881841361169853478062699232978561218114031438394149227887350828799286956468071596897303117009891967366275172097402892954261800426846343306730160791697363525626027990918839331590214185957199036206034947325170674603161711449369941283661855232641301655360349319614994956309720179992237738305881273222861374007579669792762973909450816414191208810998063834012793189990539090454994945228370487930154315696874701108751504712496760252340992376313679999494620643039922362100478010086019208555245771578214205344901666662477591599610158174112676065644784536914400552449080602304363510566863738943318511354086627261295460365847002041834555862517643666209426456466629576095534753971427949508848303404742325366788032882534883306948405642586649242440306203971692491803665055376972985167003470852300345866355847027011757898217697422935165229793008985299978881981651983655005096699047292698460917136206605469635420987380846665008826983222441615886526688693260222090639489570673867232569052266261394457655269199419558153073464080129415981986175540082433798514488493195962849711172134288432507589611082150516451552100512663079969282016458002008060049689013050753511712190766136285483113762701334054256267096914471903323325408563586288897465718668270263850168637758691363849065821515639866778436382886310475305602785504506990165581018826166144660861853968806741757761393153332008146590288857221722561747396500726299616265086740256115448950313007534286986097715047312910487955599437776661526428787669990874283756332906733815185315682039082335921435868548843066240453625771797535467538357536816647058101421888171252761299171329452630699543484829444561387202734606858448265853047025126546937201653749745243653911348491938855133869304953814803710745493137374376783497473348265977832272469526921414001821421123796470918102883594041066183740442333864424839439203151046042750374064788462149108463856241928024268471572589880059221827712348075109566273882001153113715547708449260473916272116735689149014077914114438573226783694142628840057961333663201537091502512701444736728567709253847383952272679435014128318425751213031724677990813945909701337037731103740681349236434575716901220142629366196089838710180814654305186139515071049765668121306200530391496822275544864088536203701126914054984656639718250711834902839498099473753850194056719523811732220801395567169279634202877017003640248274640313944967570938885857750269587806131878626317887856451183826089182593288304130435526392074158576597970504475570165910882409250747399151431486731121851867582721192715077953861531063699206925972438898137855691161802401856638084291214377282263475501026838700236776042274095395002156182832608881211703896070642740044284897428935506066516341174533147647165848867955325625982681907696950287614277978934658028308649960610226858858490002721070952881013833735325364441787635286237338382050784792367097741941030312529557908247105894889441473988933657844361364122207634352774582886305517862171838932364293471236187321441291252965063072506335165656167696934388193137831054731196406592357979234601507801212923184162730985813762306579584797331623119535395533467164507798167738906394910270974537239566040520675442108500785001804811689298306911912432895681131589544530738690283984798523812184879408467183745558225366090421888909365877308824536020632481507065603032472124068309791078385339388181030428614515093068813312492731432717168321170971268764669472546689017100235565917916715039510682299010172327478092731178158060822701121673998592462744673369361350084447834422432263263398731491939435135160558950330712937158759970830551668695268653965459298486150625052142232811652402239982091658613636333434286126215610826543436177804089214214804608404034011237198272636571003567752552695074820695150089696940683895176017834712751659348645602064264613777333385382102692404649987953843860432980161928088263343326056391424604177152696760838904049531464871049567075492308625465142697175947547586535981977369708179420971750723911504564089841216960686406908287157807003754327991076372067603795751591512486040695790081998818477555639444064897229838607542066307103654873020129477589294802501989405313634907317662475094070760092692100600985941852352039999638233422453800687658505675338072855337348521531625770112945857879459365102360656860569075520447229619366890660473075437782179360816221971767166591031473498435100948886582654587652429637553493168996372975691041807249676614430824267954717446761482180173751580180684367866316212563020136047693679848228589582905001649771359831630253111477777913174478068252302493174695038987803185401924592267588511411342717518621949545161385427866772356686929847623047788265125112226195257701243395569426160565615305256301632567238083057840896983024247353986012480160591424076292854531563554747180477731051440257924050726332535890869872240016159713033253408379804804810579802590897711408814847747520776053605344591495483955633517986420849152098583968120105289907978946902239924668873960540299507510525830594474020086871789628003900401992828503055485399720982610664945293425007147136680838342851653256858747639488840839793423808626065710239761250688826992958260951109131019792387017612175304196901500837764434381891652709888284983937672303457664627839032470683410407242687422532691002330423671027215032711659720698588896699514653361654873265171441365692003080072111820160887609659674910433566320370453012247699446558900294456191882598455413125064702285761771679828841617957364538600617987161756035308922973060775091605158040886353114554326919508053651048589105276936201538798221032001810654051429852430020072366182614510772961433277903317691044992239190836093389763391865931968651799270608515015839770048303710387220661335803042698758254221969025895328558777975518900664999653777629642179686595852046660826389068275373724817379750038094314081333187823758061520130576250746468063920692020786503535342728097057764044910427252722176914654783996623629136801724164930550978991372222251083667902716801725783906518588681059692210850073901747139098349822069267307466796975368796365872881682449360411775618783316249325492455385293351055188399622761026613182126055903403389780252153051635984204472607240092232780846170962350292737982474023794183620043552794628511924825617506573227218161627067801674099223682457576032397691183098318566591441098614858103208958283918163415445773058603272321062045721651282954346152190855584052414188547637074432423182093104950403311448769159316783854006411659951317149632264341995423633029053831379241491807232632852491797675766935284610457713504634789508798059062314184441317465497072887753521244334301386085582220727155877269825632494452437530036126473960905532833948180448208636121995713197007583697059820639377373788560792776711339475328800006265977804525111089983537292644008328773365802762590188735758856190920884751470081176285124843027268105142082527421091191684499051098259992301316955197759820281311824448993298718536021271228088599405662977146947458047277744924971144327107761717298396715740508010096903882247851111187632903374633518784317797334500155548240583841322577743995308129015727562142249717858656461355808512554282940574021836360300428636666871577634180937535196454592156020667824530494983999693760388750999673190599162960200233528587406105493580969957142842283631709942155592692047324393631535694157858716131550343566636284544124208331649074247616669048832588311503185369415668043323725370432209303764936939534100027991517482657457589486007954332304484595074388703472950232000454068563513106705989515790917585010292408452402752031186795476105827567754009462775297979205723726107906562253065275829929637679132038577443949580928002535278782833361378593478617813504790683827235429500244994155391113522742024603272538624311371948703103085580765715283383170517641228625376666420540081672533183473685772141388118763254289563550588957907502062067633298682809932630156627285779177596316369497605107657475216671863104682609215009860688676509293790652594115738599258154464771297826513136028321012332891089540123667580253003735601266637986147350715806593820662016123013498492495366033146995745528984619661604692848554513792421650829035041594035804983596251622549415771059339072678074117635295512242337456732711169711219084449745398309880324071026530497813308372358301013977026405720763118898937930010447037201006812673222227763029347399812090847288691612890559121394696909822972948166560793971120982193945282418778204232660869554407420664338419452880219679760972726317601451274382461693495489307871478674226802260454860710127435560430074459377718472630226965354137520488894761365750511399197715347855048141881335191310182699619788228356247526153751693208027407096119406807047361180169701764716494449649491093283176095776735469426342340069318268060458220971774128322157645830201777897473107349902069581149383262013864092015909416682260662315632356249745243058612996201138421540855441493977335939100923612518876612649140241727001628026461108699259338789150188053129559229093409728893717006824786808399177272978545076425764989562329474951750639055053167442058299832039536308728106319134412265267840076570338264811701932361736459291122800647574626570845618772894061614771820866950395289730288119163524092176384345460417374156279474767616207379212134057840501859003736942336476497644385048505993947835984479841359533613076906828165102665835015756002092531821700798400767654683101790786862856275218015672416397183585658605290536110680883729864520746560082911281675266867453128706105850114318078765367856747082257144924774763335691974330720614119600209242775474687955526187934768053597324287558444937618903684591424901018167133435197588005737271440585097998854071233332466233407078901571711434625095224368223295492678149156264740394995160902070288830020614634739133449559407493850228065503230465836807388561595808011803071436930369488504634234010890603704640441531493923353689790723705545450423723998182089270798186402309564464367536785026963596648553546510427720007043032333746670453480584398469779932136502634693172709506208808886306318803433818889609720221456566615872857463129750862671071584668897759055063349418880339728286944289137943840026023541662482229372480260971602474994359192691925154308339404034042650002683536316834309366417505475311629870696636830893672393132754035602966804034266256000877517890254670114482094987030894467451684542694967455475812916588692878245258296332051900791414711262895651367512108834403909786210941222237162187065226662795032621063494148578383348832453785443040681213538185961980593392702115131260081245128248185625859527844596393045703487225628905490305426125097653861999099665155900252702272709830470811538487008779800589433081135860715984093251099749981323800321976557873620528940661622350405267527542166672431200763334580430531082695015980059903037507186677925508992953574480457696386119347262238817899744441938362766310361185748422494052187411249628506645559591585890078727574629010417626436632917967434937800495795647562333870178730213205017121070708919559908360526963483044011756187345095268641847931552237512360251318727442101458075191934687756907069973832085576030754785909475789118232454475366328979721487114231929934237370230185782013167999137359515307741750440073739819561446834629704815476137099121274512628886374997217895761081153794565763764799598411139300310872397741391446342499968984132579525225637017510599380262682689568115014462562838154832273524398774138607134918890099592390431856916469946032817329817324933167314318494394006341488867700272008716296824184188404538836252150650693575183369984130143655690008631837173046737988557711333925019572496419960084614085461312683526301632980221442547425664504005803846284125769608472391416652141504549490989503026500470522897781374335506798705957377611729454720539229330906918027399403310003956884131562366306192936817053151251070392851332290431220595415580849241850133855598850068133550134445507717069954220768394676067526697852315864743326525686707990610423047869225234600675710977331005837558313353023869263930111785917182101609136389345678207936206854693994633012983012025414169644140884268313414512797765619705218863289882690143016405249179188982319852696870686088056509269061216956050810142762993473337223492790154805333195822054295375633533059831120680898127574715949979805236244900485664872865902396644798178132901083715227047266502921236072944427334746867964178188306083065005090899364716902649692806104914075949186818562560933760578859101480524585460893197335324255475926973131936681171662985196449630200686750073784483959590802383445679576421259446211545773271009393662811480226303234932612398814586259170825802615665235326975078281473754486823289794270436319857581418266256106020954570043148960185193320739141642851513861142850686017310878318664012615064204762871845355181993786250806163743131324610834548662287563218783932227561779261041187196835434343515340568079590536189466961117703316867485506845053658782399395214210181906122995560394699278922674618292276891623039187165398641364107200770755114211197493148711496447806611726027400349797453135666236903445915550880593695411466859762899103248963079553199721778686928167576172291332993836224221906324812577402265584044650188897294679247027678441120423924111517919745666599737546647545110334059562321615325788568871364343523304398372401759524541344336851487978252474619899134727287538102294334608596843688391191719347035228557062936705446262398109339495197634475378879877931985465173185505688693216035508094016949988288486008331090573237473467842209816921300923270111548349127874095236995212264919380090740612635256688693592996412285642002027566221608780389510125640963988364522362179765309132527066326452238027915009859644232991313283309520185609841199584410588117185708647079118899549521276361161086283774864037446871789706415184614696168140405247190579198143268640522497443957103547078142329119953816632237195613855861042613378063076787208553427722059206438541872364191446245065629860649564411004682020867058521280664651320034120479775288127218429580126730052465483644287107772117968626625942742899672540269233456268070313170782686565121232410194978692799445783436283181617606757246892430298795832129473875327452168757051962447290349278946302822641873334443891861414353498888399493989672173943920185920591384930758981816734115787418843093671453073367047335893577139712346602217869217821597737216064829580013235138938988404978249643165289509486772547889756543737087324585657129847166627371767885391147447882697442449085297243507063161462042800686984233325318654920901291622948062358901435748448701957204494488855514658576015961326558975434804425632963984237016501636469298478472610667150777097526278421213497902456112797567229798326101129940299083359310549102387972108644803640424096559495927226250604621782254765546489765076974889045732704032653757571006812882835007247619397403827834373405019653282309077718428294420161301672345095302093567510271121368887094755184943301397361349490662395083766219427723099145692711438695616830968665687671541790435790532897377304656174700766438003528720594278295613601796526977376356207486827729334486980678531709853298541413086028804913356181111745457490330370784278658998656603792520264566905057890001226238667329967899024750863969772750099550534765826364460540869938928457440492994386524143434805770927685395453104399442484779373685026299220347781789527261898974845066802169240700476248474601984962951212620567137566314873249256429095882506963060653654471361562005628835997968180086960620722626134357696496967599210900933139451021545907937272650983923530549610472020225149765544323195699628354993583847408774045367341373174703579623747870964827042824202473606790068064774563229180759597696383869228000622112399976351679561996120256841649662774453598258251583382258065568136098739114002270136613603982390600728938801341094633655889452651303709650994642273049335637411408948865769707828730689100194255928802695404230661041458000708402166065118192598690223421239893693880063224594003393015064872294793212416663272231706773765233003314892001867573953676914886178660668897407549085802079295679830380777436512635434416431260197104469639846912087514784056468680836085678661431338546094091542521103940114664709497775754391926959095465197944945453004279527618971216364465026844193041508430109426550226270093518832425034596838331412846495034635229627915216509652953958566993240684973928082336058444971722302517419296737099496186283469907616441221558188942624027768348142593054215918394924368291182919476324110880933301488005101807135213876396190352992226724060584094459149663899938963288125391445692181932875433481302226567195393256717641387422854321990791256331772561315366233012457016261929546330451953134974581845147459353893415123997892522258474376457163447380875652974727394922373642824247559377454995910012691886531279130223526796582670269873700449936973399834037428325794714596581229767715712845074011109286121149846818582086631547269070269377941724172135400035774933711184866695314766746886664158807395403667639868144265095700138979317949250062343552565182899497979800330755102349878812874029819432838057254282693914385241849783293120952772962013303341552430829099565569351644642328437325394813821795469433103659652396358891140834439047318149588326318663764257970998925324461947737665035276125376606387306753325036722652353768863943276147049563555892381379328883087102897528580734663509136996613657106527990545617199075086632174746845627163086919479287227872493516517031104473692920371479855911257182181842247884646823463264287720871142257758732616690697864657617445916834345008463649578988605574194614600247835405263045529355668815869091370317496472030183885259936789665299882600030342460734677210662272513691760939715913224196586560371028072892257212341783816995204197357358829051139028273265137071913705111634229447664405065639396825207270594441778144013755788410240660571252184256286680251827877937038169770707918108288400108669172337737537563237455837244978031030101291713751276755830388714551600749673346539485913778376268944158104594320301506355431205902440193707395836057781553525176549512107530075965109834449372130484466859735520032980679125723938779160796176969103959749175622792260969949215069588136994930486134979330210335240093797882522684939196499349227630480962261299060955776136418844536278889860924387053778493551059370470155572643385776892081699051555648456929629565037706012149155945536765055914122796857940287426189602386934711216663462136006620228309556753563741279522451612715501082580789313027152319823402062808525952405173892919062889001952408108023504764420583566386501554044202803108850120337498221109129079613802121212237113424925009187064194342096130132292119886753802086643568836256719966304068983646661215086804872318600684698891202691912652499070807691836982119247355700247921597738615807550504169765256286349240259499953453017051848319972270496318770812421490568585617210124837751755270209008216906781670785106360438329758043843549640323416363171658780617695918078513506015785880288039852624383131877192773479243988262770519968518231830077626643144937388523510178069434114176084728209773109651908596545304038708182035133353149361266335990071557981550770683566615817017401179744822344464164626220239463022303600141144706952482451393300465685409976463704821326576008192107491051315127353836783261544348587558821297168845496850590634049200122317211913352156283530401307597130632260170927397209986495533936520702332891001916952519601911046994660714571853775317748121066597195328584679655181737436446736045426224870100959635641506611287362136703332901496961007028448472851205531404581155827145374529998592610688666411049868837311704726138619816276641895315439137256087988901383666348565811629830266566350092107486613710930427846550382538812573067756531776968142942078851145405512368744109013448313572134984160310793450252405160442020838706988922810764356416269114931191737654956166187555037574363736610241043857620189943576386202657410167346515210451096852819562413221105746197633153264993298784783587195896433286466426443069055692875967796746680498583932624123049994828719231657962410839941200752442837696539166526487910814414314462724359400329567034963716406908790669915870513023685582340135422581022484301684782801765381822929734721670213673471042074632524902588506993350060632033538351717570170204416663569979856037956741156986385976156621541538472934103988530062718371140572737326140631261337720645689551720772363703415799168460187451503001612425828349831357466530529185559335890114482890990738405854672097783229600256981208488735999781007474056857109801631176323485131439707951113801223856739476358551501154476392049155743738370169246706719593537094056307103351431619110025996565726210182851274206300176284040588494464847434681429131577202414119286270855128975572473068947075619122681244404028400785899958522915361555982044694912685670037381407593849801818651159469422529762127062885930896574335343609571209341347040451092744060233294524315362309645564173608964900624069097909540460034359553841912137390458060179115038726215254757300245975185731279900267509369516875188522480495851567030994279160974989354646227196170360006963465362609428612295096649342533416680423965796569761243051132483691414684954517831625531293447220038546865766899664031310991073333826000761154086449956974579196517861775390747774288039926669972366193260516697007766335187727988230612222949338101748897370796461768415725339763353461531732444985135721959928825779487100027219601711401875265078747044696904161684241758506822402027990498582011866531314896235058872751299637352665724199639499509272609701957266572303871746433034173451138545790435186384307811476778231056275034694785879798584893622533535069414481734870279242907957758388738581735217398965817490944604699105771606118463071099868227962715537612741688316712505803468980107792946373442658456312167253220969760171402453239008877381335556602196689973786857868505304784183312662344214091779048920970624323487152795721249050988107814390490691763993004391066688010909160151160899878529780919022700994414996802942948568036036588920710323781554537326554384559877437474258247658454353966888091980979113189038557879157181174406346880227049978627023657407088892278666987658014333542353350314659041059230983649558915059163248423875280473814711811437356947107971970998501061193000468309491524228859203179670651388138459929855155674779027416063046218414316932211027493391572128667909189310465628896047862645914039860782895783045142061407404481810930821535215011486194292982301775394003489222217887147200213777082548197199723341526392394506597876269530477471265365077371228156860720077511097929078375963593797211824436077286594821659728348202913658563240175876032091897973426490352757035417190551086370808833914504521004309551453252788213971460825736084527885455201626564074932056473482104848728810315976741396598962571334448534045181351729400519400363184048040004224061548925208456494742299296566729511030666766835570315974651143772239864868335576440136729166955869488640921886618149435261826434058725945312732871138962424608122942593028829986250046023566922043706729316581768040262512403419839027574941037774756132111935799876187110468946483568584126054749762307953420717408869640642583070133634675470264888084901340439411631019648072653244522092579338717974132616797317000834915879476389683593138653051805649461137448929046778484708934596995152221363787279117188882552854115060436796536676310943453373146620877862754717524094519061444623516975203374567989084059584510037270816606447688012176351776293340145431112624562303775104989800918324178390565188985116611212754949697222896789546933615439290573525036997823638974575931661688546468026690616506863930010186033894832379578820511317089325336161382650202985389429962023262329552399893826773473052510017472574707121618710559780880274771534871579970638507086517080213257537849319083571904251217449808039325172602029463721844750837639583906748350084578187881573784349126119399919241827269229829252950686555641983975972121921463929452988100078987749226941562519218534029541374697156979110648776415318607480012910550044901652657901379023522919911652016462103976549177242072239565599248689768541954543658820796516853516313355761343357711443750326096888931065466676096971380526941696647711207257190180893105391114324294376302719626813504735737447556528186769500684912494094130881335305875085980900608119764363288793087489932859633486624750439475759632381884278844877848408549841272911488551077444097912143032968383864743233301669526919371167436518294472041172748536204343127551145447251337807316461760194593261985405815374932428946893651888387409856725094671693301660342585629150772488939484286963449604619491914485336176385454697809192718462950636368673679403483925027246189085923411426112299366017705334161562365769137771964827180831800151411795783003987608714266279842796285474305058865885089418573856348330324718941173669541170132626139822966012539113321780371250765541243605890800187936462249996959008040636207571576392116704701950977407664319570981115812181953481393936124802328079219205306660404706406405550128474582788034725196460125934427428486334570488179974212958654124622771734280672304437729575752985926446407076401674760758370150340611921854576499615442854962767294837335888152758394251972644034556981389077651439764700955218103811693899432485943503516871401455377480952467954142783642801763127843057490404789926857940187748938031352272076641556271970263497122000768031206060918377912154013258626537923645721043726033078756027301959627066673033017262911253799933503689515318334465561803898024803746743443907181532477402638390267981344604684929913533922277225855383765570260779198256645929820876089910850067070916712258668933940943225325707065773554629558440387663039848707543775586211857418447718251789848268151744218781646878492016119340270735523767752740093757983012997416610407801210318984068576065225634564470469647311182520364919535956883233627967131850661669325585835998909405650041031264847341701781771522138865400469990717727160861823348114775132111436419096472810443242859754732386882776775040394368156085044471128097712640234833913537454168642807203347757989957961546828902612349844600112703973065643109639831451719074381652205290213368316119371486861908526532615878112511623403684600086391485503578760283020802827326410710484514175432475891154384239245423816717067427041936722075403338592903364973421448173126432433319165894154367925976024316191462344423959490991402394636662352613064495885431421228536090586186047704671211953468627160610536378008003110819930477502530037898823461554263942065831430260684205626911441852044889486067207237907003163854495716501652626164247814553760692617803501730801601210089399933935701118141687783246033631343683995940189696735839200943205696376540594425311654445732762444486768835303808489601690417610144976702563512146754321399973268768167355232350752699314771252239245790987510995111772088620203936517338732308616680161577729693080402456894846943184337929446452173155287978043732183843791017138172784416724204422890837463002105332220589645040552807616241121502658002508010913571141990439970367058747866079186631900841634439106569997802521278035340435710123565427641489894205566764845242964530342497620006123049542705570582337347585270455254720228626774815317899227227190158283766563756193664058321494901215586793385584850337313132346757893178309580553121848144078909677867596449169738746418048052034352768824561906965871449570218619060159142629507541291437393297833336152716104187326314904166824769042102920421010669776528832015607274737983320084004322398368935086572793148847299031861184894585780219499815917982873781832123746771080282205870242003082285491095677974294744167701346578095582982031893008802702346402963697634780364856304129204878295506484785411041769900624330926820424514337676548182486836718201645838840385814832761931614343721614272001945924603026085165695334114460056088567672619114521547878936284968420381234881621526141419572744823021673610038739614982548561738323910904916048979437152256727743896835430609361460746838462800333929720840821385311170690053964260435914258367592378994325397924691047145547514127308104884339755272022642724592859011862632473654013503951672260820297515508466012941409554565689052834539117222792557889531433447042037538393552009894830521426333113874961828480891497962073150194547650405152380650924515743191150494064156915872953463464141055967810613631073671819841205487853722898132717982042073503375681550977914325596489675090830215092700269609064157916061353713174497982401539955945197137396887083421987632149083527154568884084641685180551463015341748308417103279246104194184391822164204128801971376446978164977894552193637112939199943177260033970593456875781607552325149441228779908924967481024363850890522574619194415000710242561317707688344433563222814330020147047529037166597045300659380601041338776617221491244677260224867452103756324465764074777168286245062853078057827139514645469594950780499251885363179157323502725249793445887992765057064903867395384884611329364131784291658992444168880375249558201338824577796210736998011503460995481296832351518975354019353791111232268802333459168498178674476436008823839699125360836218115295727518136508245942427758505690931827295820729507008734521231841296530623027055823061951589481285684326911957698786963397040511231321514187477633464925143421084444786958417092442939727818187283517441457104964296441293201096921973789785059227447099232110519560338153762256182188772986337691500152295982999113753236318549680820381069486653085854561256328095199996437157719697228787261077569667178149952891888295286731098042977518981283499621543887578805361169901773172614317880758187557460722054932878735088585290157937159365866441576830264715431115010459965841763775113898277174547695857901627886452854886591570033604857381294148374242054437140222512390922662527204829307991716890242348609800278858398685353672915715959123071713934443346734493577793486980698010854690498988385228912700230632031063941999409910086286264384131923054437058876624247710049857933544098382983423656639439074507913812978322000186783332642366261160447724480220305825407183804026686103007945235523562989752214371518879391106530102460274361340509323990537737870843661783740116069196180634417343102976723125463070053263995397714846044922986798746756747613668756986161024147809269316074928283293444957180057120571281738466157125904483391890721016302502294982625869850853752641459003760193308171152081081392351408483825736159666445450924740606367046368257393467517450047081928980957400840909151444266699956714686427035669718250497760756414376463468472838187336608518759760458026915650741907267689490337953814753280410675711126295089022005846100358959702629921580680881305828067767654011667729912228341338668668871893527877767541992458700002130556972262354102738092659457704631967588595118863930265512770563033167154909188562426485727972244785991076282910781571238478086903575837750620118097972763274438799323932675585166929729473871325005843135663441440317321798435265315641611400265965213121023011033762404764894398799868529805866566430323598825243982139528670408423004194284630779728687082196494648556662523726772665360817913976479690900745784205933124254635700794621068988304667084141644487257710321588805696883711454064691805136640452276222756378698853930664617580297616871677635592724855228777383402864007261432907323218713870392294046893939399063588664289677788160405079307454641303103601673466880174579699603202216714253583884307084327766221826211235053660366972392120835007452367273489565776141974392875637135608069782729267805209933251872644426554189295856159423745039818703622450671061160023826502736966929448109091265627447690131856764484684823325458356960981747968989604441822947553705784154974933829278990616564307478986240040262142202725867967743826972244905251941688962795697521756434400930657558305430382333266923289035974497176581865115425723285130481742145743970993228597781553938663296659906063437568569162186935554707150596741098465829068931350864632827609048922245806244869733055773005834679907576098347379983924816690208206599134982987602714251768360758669276663926250627175338838420556824025833007514372166138536046771687902309718320992953705390908460317986259027707821689852398670922247194086927458664716444271640100117097597086797934622952525684564286794313960660350601467945621394312482537044706989610908423638485811283467007274330581764285281577264652273922936642178835479750310465453693654861788774430357807908498478753500984611233739412210520794798130352003603417472116755116267858448066380910107810277062303579571046678619140815054782951335017339052921202861729098853167795819670009468611890092615751041026648143565651469558044766938930246604466279423394842184035945049981916422695774099371454589558754773493497154114798734895196274212600230245255429212193315707105966048051650805393825314518340546648273075471499311686101180295375682608524671878734951510636638266786755376261919977034603189502975080603867559222253661588518678931632200371930610126308229088284655315590315075376093836243802294033458416454243532558894795946723096781147713197904973489995706626097924267990137712935520727835911188024502610897456689014835392837860149756916882896303902455212790050502686340612378892425046810074844298070261007922427089763222013038144712272271298137321004275481486094231306036145814896245333459263838772494131995576143564089025501371148654471725151942193579546058726789609159635678477594726282684685699922271120724024125790170889479146162586581907893089528119723436737225220105923739384199109198183283653356313975543987605354282040654485973033431207817022338463449355232619543004631880355437063249556931676519429640058140826492515654186244098755057756065135967574180917964807636827027684554081742085457259537121948519682117937059771755988321695201986573805832679120000564474416974111160615798069447276372515489325933534931316946044843336882994290377424082019841747359578224831867390432494517532356131182134243576906799759641127454275380275859098408797658631399449440114805730982480314128306834221179180668112674191806527458339060303477528477608765414712722747158706830958374416923690701364349142944645582946942499455980608227957003826595359714482215116139549056038998616186060004421257541030502668006336637709920154003139741616996587772859807062044435082859032566243873464005921947766363197782239119132416155251388550818520221699604533751868634823529726954279479870592361342881421175504979221293160160586891813654880488804395220107051459225092937852897916505743825364094638909962772881299492550795475154784503921276204950718008924126186015633440684216954348929793149042419623859400307756002291935868938610121931545962419009748739481445414892924681376194504861707873431929724558206151833726190348993767470960567344332723888496647691614496610038220039568828670296896262585238479425379331113011567123885951640733690463163412388547337787347379002705252509314560081777296859386865813550028555565923715919704173731812270631900063058811625478977668830291912242486780218925769387686441059349647916939403691201041590944607539426387186628106473553419179726688680045932169237477171313631806201387473670165421106120478511110160560388029395587366558837519477999262109215074440600121151653715123262626910851965143904195341493133078900154191897695374793631613510818803597663495988798544416266482518203182845015154719516467817925147151587101550405861763467028160664333915418938842393432264824809580316859896776732404369620032446986282473114742949937469756682411372401079889486176409571433768961241185253051327311442550400845540269860528305136053263372515129696148022882338612821354766519065316171674283489515892698004625521932002749029028663056966589077733988089514145508651793485268911292477265472885646753560574989296069227540436212058914683256099323751943282499654213115364463475362448532418648122306398232843191050127302144719080942149426968738770508776390752767269323284765806748324978275746360374043359779037209667322609535893494776913200815597454665843796994933936147551606912103651324668418816250857534421172363234512824660025237754304032094031460411574199981689898925973890870176934944782747248280148817447114825275442578634772436634256864920960924838540586533996301541174067943885588361306932788556245430263943078093991026348788202445372939032846122390625180643012002537728158413314707124857735350124357178436447082005849452563633052939014028632043495029056473153177602721076579924423282317578154225549859828883881219969073736429933053691201735028047594650513171035747128348324455070361960839830240787517427971567877640677336512562443446817462389874212099706310380113948219806730668498208405917756531513205085225018414053580865678881939101509271564689701447397210347034760146166909136071786739642886933646139787375799723703463851906604580393137206156868373590784875452585118244928655947821568727351749202598882198526250500949486211013869143937340536404870090495548020394636203534274345295253559324050125045618151213897506021631662974233909464525621670736764986940168749419751595506466006620601215419096414252121744153213676346291418089647358048900485163006534969387799310305668632159786672604184988803550268279386838682052102498624078066598876158671785442858264614485560259584379781276874010601325068799536925330136226740256236866620193793165767795001253346374629042829879577985249643652266479602191417322401884970668398159433334876478032323055635344356026490724878622825415394954873037051268180684458204707772551947487983818427577224850197945182167553381798599732842325507230434815612515384200145561941733245130020544929783392612825844106900989183658968974843016046703515064256520771568366736867331453862271317651940836037575034694641953379998510871859557616336259788935219777160249073486096402205131978178210852233000656548285413011368473875849258962227421633588379899242551305978169547799778123750761220865576411657995094209849929414639404917206262144248183209611428946040392160982935040823077673463710498728436825987752144171416037945463701768856567500534150724181869516487952119415774443621649185733584903797581638842513775533083997366505092275809707547117904713906914366231239086356534678120669005329863858794207261437114428727955801503452407063826570344786957515047563344383892867458713936941804330955939934808055092488648968443348282638051934297232671922288331341890486912110545168224634984631371811905557159661414993146835718952464797581952703942197722506329722038015067544033730488224000349768775601066777986115416160966994541963618036113473322047944864779153103295781039945188717113315056728001242984453240291283815729446560728978639308231578918015703766756323583156165096264695229373345754222034504469288951093690756020858950829575731991014357223851505651145494460336488169662691971259870527554257917510560490965498692456501719746273536728600537087768337300411255428712952819337913136730895070815397290783274152245251679469422207430755707771072579032126381354660534372020033293323744195147437464640692684071489170163707687742523427810213812927494076331993281915912635415621042174038802208231241802089156035005371548603539291319480743031331450004515234219353249054471661577564797362573025653730029667309009810569079550752789866173228755266242200259554733201678945766942685265755045595537592073719828222781325596663321680833986579299095080632516585613549865420269877002417917715366069933974425683293260318038696900359597754039760593375637209480036262852940386541995745615453092749412265189149172484642118832597792459837911558189948125745433328468916931889415917092257326861816093511217587180120882789293995712361812779785087506195672965439676577719609684625254646192802501322886592018476690048015182584902796399183866464848091719026644581441536647314489296601587442369539990625777915538115445327177154617782951500037163208550634323638343178699973328205361525513007361697408195426496535105036692232852811722333019049678419748673087571366089077594038062891560803466252185999772171171555630202439370138296284221529441146473588208513500457332226808249564634396599852194420650534064366802483953240117239554404629122565958048589620785689185588296316451803428875218249941483371136892404133378434978177160909075121022472736265240874774424642907395746388838672393925703099220637163329853023273674858330865039112473480242847903971643267176391464734203373610182174974862205386036493989712500530989417831674576228448621297574053444144109171972356224376770910188126668276076024879626357218501265995572069359210192732164593028755603021522594442916957523917653679110266628244614867852946734004509347251841102265414247995452396573079909553869710948894270601805292499782741024205907965068484663688571119673221781565220066064622862801630920671937526351723943626183856416143928359324373450186786692399998442603965482655745556900857310039733068232232776725023585900922400754406482144376347324841554673126503887230699945680687027507912373476278497071997347042296609252001419984647632617692984286779720629561401086474140616324728749848261652717718277437586328001684196471052508431040328289721096238921973388828064202100082391639074570089912553464858955705120836995394647017246941233707004720080717261486388076368085062367860502104322013128558777091385973786480868753386230904900770500654694260256955914221874521858087736885201475148506434806751778195313863882748593554103823056947129865873618622132866781512531965801677608155421185093951277760665884554082046089860660883414057159693530749646348816125189364069539610538068122795490062449452293331891703740601940248856487890893399602222306075383914437231648831486800943827374499491011173500777478522291035413278039229145915452367348108041411753223656821517934749787808873625541615586194429886149919550375309215031203942274402499099308228136148076234677498408520066015385933849084977138817823963877430758737686176484583270219904352896540290248984011238559697302907311701095304268801099421950153506282016275204170503157894251935554873513996348731887743150231449320251376145141342104078539096835381386783927098470820728532203363876238122291316705465750255848861810740608794606651788638432733313885428396421253653604213298336853200995777866391089662674310805578065607270088458501034551706525779288047413876727652649669447993918619022168586989107118518656053155494854005568374264349669132829632117886291382705019145708041297566092766210884539555576791474972148692631972336262120085204537066648057163473063419289073847722518914957988979046181660623635285382644040706344864555673079504927030415753703192509560857806824729711063644784019803763129194074878364302681383846494476157761256401276407088518577885314602137053572661092332065580552781707071613223784562115223120282224312450528564713803010313810416002527379736130245418979140615001763490548151495321365679207974732113212798703101934351842636860873718950477586947986127114280055238477295791388304397794064440022413037240659899290444442589457979228295687749323629298097613355197864674678937668374093843128502992775925210398137875621319647989596365580803089058139082050049160734211324887120236377257995244984430467764473578967755426508262289792356618372626967664663269994983780711019921663073414409419584770888780419969260373020763499348202979035038902728415044013063203301396071841287032911343243259468093102767363764894169110229986350218624737370294020405746903742123352609535895255235649074038503277276640033826251214109749402672907463150161697546425036620441850214430867748285343227341874425119992657256870445083810445480574063643880571461278023457096095036893307434568743691736982245832838396831222985719753636563880306531983678521868044103548598766746449988661186542633018328959012453497163530413103023383883899530765696306342153885517557538425045044510371400559169069411344797378786288247678469931593977955567923588270792117352098533483780851269791538246037315573783859165282085565733871028980146448503719539199804131856324461187283196692441959958906699913329296889870890278852681573345310645970449412668709975646230871442643971956087808103886621961812800408777933358924594304366248224260664372434703284357719818901237329428083901357463377583839832800269492373080152241729149330093746445695438078736197135409393016834132717737775885818996417900395085882729770764549005491200583383593076561482158171554741447689146065550497616317827424639023021559580506884401637993983737145530093003375752922886208438669038040841310281090540516821625645295032205306772028248867126386175339537983845959685618681976222939632217042279226546915241505017524915286321292815576503066334325112119910246315905157104447758657633141206518052951149684960931950687142573362053150382335744569985107397378563141447993251894047878527452997765925210235136228299243448612736790540260418442370584200499371259090034590812329162990625340514309033128705884533616147801329442905461971518898505165167419692800375001953338108468279822920898391699971258226553885214109740348815714779617771609181738916617138211256097596681297678377402717723883784116495853090872906542529500534792724643280181588135032983019399931802006007432519912284568705143377511081570079311979067100271162146635380160669166599310337188620063236879655748085461943357526150084411848894147111725804729659618922432241527069766681883183249909665217581733155837398231952511199938409968349731945870050830331961859470513159050135292123040460942224120191385911287437434572082336228788737122880702200076661116162744013432311815726645552744073135646462649669635931864514300312028429676089672329146391597397749188315883331865840767758140920124583606176805342132515340095735844117643982415562067959907617208107148362139882055374413522093454395380374686887751760705789997930115523203754315875443050904482777646211527684848438324846667971695039277124706626488233520228722473709173378171780418279816391679791128329787564596544481308667899001399469923684718433303432040601269074994481660823622630615696275903090214384081836936579117680749871633137490860019932480151089598837488571111919217122386689930742850052852742807308453784764146756857226427152157637792170885349488600267753490352545864938973021538277581947301860773693327127599584694157347751628879852341094412218337032436539707983517314301964971976812395222932239903660643594775753822689869057071697208051152997073954371414736207870099296238791366712058609044684864333265639016508702898406531954414505743472722478877081582152612684007681394279634977227869084029603642920437149106886030272193966529005849222972491329740265713366347349137294640614152254554992469063167448778544952741179805997943288404146360261307876280600774095992123377534256431653664460370726387324102481664809825362257121629277841722256726086551672675511137635862071527287784786732990961249561867542248514243216543771770119947376662679790232714716098058267896062940173083126518910204465098483688434090591112247017982053974153249781416888123563829938067730922410132821959077854220065764078148978092770753580402508787998867287694005702826307571517735593736984588095729050924595069078112236640949326816192695542427158345863888897327865005806581009593664293629147961864676386481042542693512117615955449833261251510891093132831143637653345353332575344893801907982547647152076374655856059417635058666089949311831734233422430458407294435631175649069176416537406997688216774100106129550832015471427001263869539719445218664428015502394977927531754685291972585676060005066629093271385244423584123230340112132527187155615267940706231507947716688197054675506452040262069665533553600737563120889250076322868209981394827158270933168063509853328620819743603091133776994837771007280598103818550915731279459912644022078839262196141228638745337609697267042559612119753246712883206095334412874907990706353992986170641344872277126926675978449860933309661796467219258326674707846912712066642844899406085336344115182550669348915864672500928430830819248895923658676386836562966730291219611380433667886312998823661226982714465242698790637307696511615328252480746149127605519412799019716980713987217918303665562511797241788135169142767022741994079530896749869438028859337307194414130205696991518787757388460986928663842015052922720761433852539196941085058735737423337623092326559140622340715261877969130977007948799937521833060533600366653955772502433864145534288205591201454164892053302350529459782750630740545167406277016634031623102601037557360515926857033443293416097455326348512061611251784142377870067891212618216675636520536308020144718787589939863788293913578450978237269156994997754153441210466603562009778556374200596784454430657706501720796196361652603125231330085679320781903458303199034764160802500715320693909546840084483674449405491054221058547115831404975202876945906633386070842024250455393551171546243821031123824092386868846484503505355939567885007889948237896370631419524470447580238143169545682159345719954445330016436910952877737893435194070811047007179139707418614765467104418401760563876377020352281882048642126563894435352718178297430996368743713938590741996087857837209497355377307705645364707399462657709712323311837713669946233322434753622466200421495543779076705425764876263051871591417444322840046554436548468102010158909821392475909487398062733928019888611795333386320309943180380403752894483766828111186937860536763550746509160480665316469235410007360637044708966765126995974917616180979173116206664364044713817633220336712560303770804051199569560132229639830007953779676330763167700933213438753779105577061306824279516840088829507403656542761168648664912944115977178754921676796262559942378148279982260135849550720604688591536230067591157822870842501196289719746773260291266878427155192540163387370726230252033226891741510346568450673036684951301316315080112484919118146427367756533615759710536906048488441722406957553969635909968230620625180603868245435072783118114029427360763688581162898403514768067545739094151415333789981090736366547153720433378587425501191547801667172056832103091319045564699729288383339709259065090931251488693527202305960416805998971670600048297711183004302473474515069683009985138129961490168334687958482728896612688845565449534466858019776566232888495162412707880215102402913420469204434640941451647471166479067221854407629602608849781747179511398535089948800409674401670623046008099865761367764601574337243238920445609001456278969219371515663242169620962406685920751748536459877365423610273395271569067342203886857504990208800919997239642699771103982588271970739049576636936742778880075286001334898566331728120376231289049074176563355700333423568100321585426895188586312423291946221088252555561381437286662877932055500623261106708992990222802476725727990032462434424535936725479936869383175865790367827629138010431713821293500895279811726544019428734288407857844312137660214243686655962145947159286532764396291485006924283337187681506788362021163685333877554914160836340185073167150698880682326833383473196198011777993633627405417995958794442059823670455640445442254889224335068287532799420557817313841277312823602166462406340938743083609769605193389834689969885646531748116447021286230830700564841040271154061471737105389306072929011417227612510112429965727750460839051572582960658371581797684150633021553591720753752688427414369842881385390545124179650660368406396738501547968591048390415089674400150388843513895953913347060090189958510433070705336243552491563896867395618121815913635370352442206980441165840687005883733898027843253296246726787852325064795348552000809454325266581743754313573599067886320673302839952768949162877381060966190816062075736880767377504040459553972765973940367065460207470416850382348912085983098644427565712733753499634025700905763857506947054450360637205364689163944671386123607073514401144155761515640648131215745943976429038267863867339675980837229589373011349869058858870391569090885416544107919914032761429434186349061462697923114215135857783820543399506075676596071192408999710265824308201674106325573740983824075465901959610287383770128512613788316696661167634810676902929886523123647711716891806909964058642921358300040274478234561734736378084947935574539103375757746989213993058977284637961621010614204361161371927004843006897680266587360972236549244721877977234670441236075605559588424570982233318689271236627414613001196194299253914016045244011169388189635064326466542181680757917418835500052226123712540480472401737691083464652783463356380510207813623516971591990922317334235884507664264235931679216514258889368883056012864042975820138032957837062763951749300312015585247341081200285880103668118300141199149187006206801726144630450395681944222443020348558473027738237405462135451541817988584650038062687028333920189011697677216287081721958453632336073197124076436880458590520997004372801412380227546301471932404476824769740487374652022809875007228323276056930123136658304156624843237037926008541184059998978042828368643505699471601991504754585453516183667414582427726045317637809547318381803651179719682494476612143357826226397186594517574105961289232857789010844770144594582910344474366301227270605308605957598591953706854520220938289748169242044956106051905516067077336880803831923056878152875106726748570491476485141846212735651889404334369814239968555018181571740061239495950646350865219487205276323660517742051181940659739498972822551478982422927901470904875086045751053411896424616684438752884735733075347998344242286450392663397996023744387529174412151492680548854313152034423342204950842002078755906740902198286008054510561343319716496487056604210559362808221192796274227535218577149658231171424647985496671823292505155643907238468485631464373533813491828306209206922843151014177533691642194941717002732348566387131487677267475626647855265721689683534236847816984490356157052674837927967828143156414600473423665798201162152069094565241480803149398669018029738210153898744096504591152632377844900281960792949752806210053372294524128215465278918851154554217101047224037937145510177567102421784909314407168278853700124760612258887553638800853711513513174072707883129799823969784632697955757360080563744254217432134873727051063175078345137318385086136588848747236775518109463568601955099881914300149719926221068701418879004857860518119423476217718400993838268367910271370721345329711025427189752188646568489921407964625724059199138482207512848117990955329915379133254402761736263006161598656375081044925400441772340598879965898846293556873420292464746478336828031427195008820458104058564569192283214507221514188762440891309482957517566281085777357360044004149331854777610870476775690921699936125607977151014119687992178979937600487087146181142913823369298899855056821297469183782374621409223456637836993023183089351356971613860789104578958367541170857064832036139817430758201661423799810769864448909117721318945579361784969190446643665098181066818034732671431728126225341477698911947396952126893979955056884394992136912737097256519818382512959602613596853685989384188198441462775556161685970753971587989201476352765666321157115828181598015105342502974571913639383581268030410213885145332318720772581615711969608729912359267186523009569003583119937034979542985144893464319192635345921953787928579386087706258114133730275690945981179136209399170863486269110684656631533869163698115455514121112756794567886979251659724700817809749951497983300569145821988011311448603194767782822897142190015464237572526743675637245058796713041948950074808610875727812334997145657320156719835666328164525628062853710272002597166743049326130816200834814417262224440455341483030022304138101651633482614851754148264159857196550536290056447199117544827740178492877658531204009842399881202629156593140805994024536070969448619720294119709344362636282668516204817180469985275932009302133719806211360714070801230896175287693695676434351905271956603533674643187375298413689344235889993165219244996299665221796566165813956866400899958744807290375991264794909571073095287589341653153853035266211202838411432210012722680373492765659789635045052424054651610913500474506620584562980026223402859394944111831180913318299736402112734809037956996138424854988228657769745207554559556598809881881624331749016170884138078824610319008335356698369489842760211269813542168247972438959442455575102657064820767319946786072545410443264220872114890119360733481887790041110535110980224968838428069876476961435558423957533678731740370242449791352947059709340264030075904242050119974145843158183581522825666349404577946728749938369780216703300825829420274476597210606084449912436930797267324717137909683995810014378651639653202498367574348575628768599741932528639284274205255706260576940610870782697470807039613820607759190701948603963250675690725336431377090455999482066318960711756732367110317767924348055514524298145194690595539139733275427179268563472818552334860100331828182199571837280182345421775865244243867910186499199899345783819917260894677069612464382363409800874349275920872697713259064113201320109827153957086889879140479259282960026936349901184439657483898622533139201917049816836366950668603571214910827050746917907999852991998333383177635394358356126154940293565300487143087039387164478002725528157351947269312266201847909494208511859481594457102424104148189145929964924341239104836080976488268704111784253047175133580037341491478859667593143831521826856866272585738349614099071184817515095102038758502918113281120771369462294621832105724555729895601032881200728826870897279462631206054999132181008230130907688477516709968010175398893175979702695944605914575700476187939220416942431333008930562268605094450456112918162947536739204594392904131766660676462686827700209603864754528824383645460404855835966391010443393702885886510014919206484668160653820144714993626769002253513595287960901929946306603021563254003501487039460290932637958236310440747050788329989352692551277199951619012810604052969417273548894002783433864477059005814059244107034374138036361080368159001080239176617670984208274814293757867401093280917302785991942486490060513249263333950012989741266190613807451382162971425020621348195659317714480561538746178487665693867406584541630671802853578720374809206917909599383237513286648944406978759356736795632439808209330621267010288525908580298662764172698429187929071532620710190191101090167501280030411974424334404075153817430202566257782789835291273867806459014509893652019778462731463199154785943321295801087806572070484082495723526523451249461598822107426826763009364257683403595635631854798865309139241579914835930407510419393009642983735000504984295110532484495803440637555526498619965327040133735429566303334265690800571963377337687466389338956232270554736571058605607086204195171790282141445390824504222466776088792508881128910400860168674228612565464542402402612146994326297054141417491283016193372283537618749651923387798304045407036507228357112287313952603682643165475453952345575454329712492376198393178777818220326618780494421580551587217836914678073088129074417218136532581103456908311851729681884043432505583722144949342915096119847121513481237432501943261130367612514903745203160627197525210786155322316491727217358629754069545633677296108130682871451483404838371403142394261441394918789681512590702348046885541655535029151325908910367004123151186976990679345924882903553152616527434996484185853967649538849410857640549052125476248591977816946329472405185366979868038324983231201049647508508048607958413305286336863387498336806430798066816785729691114984149458439100295982420228001933059882780960449653236508242320392036902166450201235625654934374587882042187394218922993436234718694141197113120550021872000445047880882880404533662339152990171777555796752759849916000184439486626286366164810516603887257864234055506736754801790858603435123941985370354187127592276335706807002385654938285280413490461342256495599996280996315642391935283326665534483364642058023329625354039188972880108254721811801180034177860385713885241736822973308466690534664873358755051316365978185596205607117686492960352745655513799289519631200240885515295465878940740807875784732219542073007623628390950400991512492063577717803115310452125348539749177032705441012517153846741906734751655203316470307591817209310881133641604378109788490335607196098074026021985877773739178055447562209180099364260684045132090226076290427093665091814386240416885490293801775299026832153677277698817710178321038283504862685773005831066651483220563612676020061857455695111274126387889521497887603184649178930513190888125833858054934067822925813160970587342805586974372341525581448053215062350937018557848844843705019783061244393565456820922228405198643519306187245839166684942571817104908680898712760896454194121135288512326937787246010727651687117806253460840917108238080124041233970962236332637444705248249611002163990734473823861591375331492008550918314893707639669379239108309384812294593387582206518930197289075125699512902692084353621741948255986827212816912975806708871203398245032911768201935500432179989642657201106602695534212539387099786463679179599668679511493976036840532829947801592069938686527928355736892303432140684304877468567207806140946091302433947760935696583215675970739071392324521256236434449854218000796549579306833183097794694656939949307613790467587481090161206303120281326021764267561859865091360354049556252159763216778684071186951092836282596416258927095959850657897969013521069022365458140705468319070307972702137569103987235196346887402538176812156580140426064833586402365651929391137164121866024057070378525568232258026528759271736191317426165174271044756170896211990164155384162967342296532072659079655360347841093897030941578951022852817795144000378093427244738756037706500736820833749949645779812159423040087315259437877312722553081418002834320346449362633675973496231529344207589449629000679410813271397909483726976833795045355897409708994906850272806900315750662960931693247753660850909820608662389723707300449105823993994813537089882955336293794145317377905618183898355084823288788150888139809223146086235369883941741395364599784166122078857367625359341710548804582395173064614689183581979921449059641178089958908008410804860057402053719634485293396045508076701446308243926591223213833186021875691209256811051590961986002350594490310331818110206343220358329337651313577774608720673991324146835442120185200581803741031664325410563642196702411713591105886385708247078365055423572064027912803988008717402279743060667628586142538272782286235477646431493854563001510752639598011014538070858185490741703588552015766682444180168032877590686416394876712088169050594645302232832673311274205993376760625389028597232302988780706577957560875382379258073370169129437701779384570595670449923673176108981478888745278848212589490619812348375136931956353917827517324442358880719648612720286123110074672787849936936320008796287742249464142317770072401580816209698681876615441886000264977006627761820917387754307721404310851533067728783603287531332258132415582644576050933746471877352446295997303419295741111062877489803140192140414780701264916097440123099724489121112675938683686970506506812161931116894883562165276763694250143897558521439156799722217423515041082363630007412005068334509318498552177850525497737018582421458433719119769496711160835933383709743738517360844462046453012331913029988991103672462372576540127306757357553057265920242094427174447978842534284906316689936377734623761198932710771539099143156788550749000370289663893940851450772890967502764442807197724259169555859759811917415507946900294044840764156865475923926199047708780042529865970313376189624336341406943427511254855778231010024534142595074454764367128727844546710643321992497166889696211803472422228635426434278985675813032116531148173891422837885224069586349564218104888643682366132649421195019870860403231893722527813770788929978963079431516308481361552800247379819371536338043659292694131707635838653323392206052308678566306227498934431327829961539562084167665820613231977268072423581950173751034078123274680274071299217500031943890684871075880820767028554339403902928670386650845528382878969917837051004482734697900325875323271779056887263923056008924285292232256735539175415453160423355084167564674599064501831991638022495901950628273619585292075001039874067211622480823879912819082095667579452445248507612228722714572357705637352909303150884768673747077373870082769463341530241679978378389790166889093374918289166642606767640677984760677412874721674796211536661979838794749446031718385738189170173144103509303899477149109548255710196572169981101085353593483332791248690443537958120960374217009377930389521399999561264917446964880434838457004189071323821065300789508891397517321713163762259996116082450480940926294259740846563100687661465765365951429872532456364596238270202139186095422226455670491995740866800409912071354355258805616698278351525955320480796472828093976852043136815819040745859048864368856226858846834504972417960590814894945578582172941536653186898113929383279062940456275588976024521115580947064346972034692679954994325876679561428580306862231504139638462609097019324413359818684729104725045775070106424796190425247390092851706043552216538606171036689977039808523775353387387854578204700982492725285708393033775864130069893382957864611014619418344134324640184229943518073674329978584168961106593018904630471644234772245102762225335475503791841194418077031854408995175938977141021681214427004361838519789306976166862675944748039855099950142799993426379700239367523795431650391847885374442867580345530139888157662877100920174251026073699124586710588004980184533914157381911022630268344146486989359507384435804997809977433557776636192787687489537314598342513066162931041250083926373745453147872012684893602546926919287523052851091440245710814456919575316983984619483604995808540514008855051258153400246844920989817055454650978818913823613753380586649377438547352984509031860359486353411706197563792765195857910401392899797085844675823419274772067981999894098093942239429815781554928805419787334225347252649599662982683446658016651645498966042414329043664132371265989351199153064878752306173768034707346448502842811092943378862006136889147740689017709133456745893477815893906795731821539551631567209966986088087003363129543236033127001379427110869620383474725316488128160754187447043192827632326038060612554887595569642168055804496613805892814744304734290728155784168100735946068360787571386301198839135794208679588722344038249752186066622845817252673577928255606643443774800447421245140678104960875886080366897638756634946823861250649655566465894418025672626363613593922548929514555480866146796649864266586590760483303758135844713035452467774991251132589956194896123863280701314002633067403030725825973049416527830344136770805727602628186189677663117147036084110580619771717142121537678041870774458846482836359816547888192546463652476624441802666459684713514449281731151930607445466796769404680756020060592288248532813119858410272142030777068227588031382666830290280236780078002776038183509398419191768918640784806540175889475363628835568923613325577853045592628766389725135221218059092423738045304649609277259326676994153648418335951781427558713850453956452227032968453039881602297701729075467386131007385804404048009770770377992185149235749409195029717021253830193811128840089724501394039786839862258207876916411398715627052595287746062749257466517766695883054541098116632395224363360534732495203908677601443737576982828423146094199334575922534673125087153085817647549094158782626922859060599190784666139855317015013248933118391984284532669824055271590123160494501118099191544952127438125611000491388623280062890006150090384385517091778715091506809019895481248136558745598122724798991012011473239353482693916631392252873613309090043839425608112778106681641250304794035406554042146739202955612279173714042685552455757087317817215020833032697610457214010751436288561271960691112277176808784300388163221699737967078015396133910388800158835547564191975441346428737190038117560375254632279183392749671794967621306976798200019407259719792129878931532085984790966822530763406043828332408173168175867645667287200582016976609764397075542389020266878286381050694509266255144442211892892675646128500671428663049363832295587279717462618377282083814105198888427094675147853047466901851560915363331479332949415941186105359649450669665492025692017738906017760485629519724348106896462286608702988699137262777940475533873134957044522260649889985200857712700630935675681407750060187044596543916676395288433536211100900104221040245514362564991921775356407210934683273874140099524489786589560354288597981168303739683754173316619686717861295751704347038763641572477715445278743227587907935087243350012616197291468475980798424749699627531245737465003610699362702896702777320869102104154808968892361329870499122238914115443730519132810436042047307473752093893563345397188932262226703382610274857393510514805946202478961229694192126256406519055306836978141628720549856743211728450311853164049847725612019910751130367448301828710065678299541844875237779271385211060221283687882064336056431328273055637502568226944469740701813585588979935078799514012544406904574732337055597931154529260463502804877780844045283287584673005901568931017252628045209613032991769564662008849364057089056095587172934403062297556750263262644859576228761170878091295273671606326336068403039526508033208238708089944848289449277723224790011644181003084891524078381355992506375366559429517219733950442089951250272282922639957716768071955801567317457781873556574640826010551387436566139610816084746440837959307794679807496266720855834938417426018687707407388615592896216681836424703799030281339060558024240547788508921861747216617187737469147078305461957664226323165625542614472483341647256915363772686172953051826392993695693163587538166484360323321317125896646890681650104422793286981115066342903191797936937459318673315391258989596472575247317684385028544496168423326543220865475378669640177295658042532145657181702905785958820211093283346796344094662605932692866742374265493936867852596425636584535089112808182397106895354204796980117094777478073748661357885962632317613639751322093530286586044734905427568178323070012490937745313379122967069339041001999905172210572335905258127966363648662619042899066348976542979058188485668507663038298656576878885698899602686009232590108159033169349909470635944832989894101148199333196738368851394694983406970363647816784305245869221705271278007674590964169429722353821163693605790426200510228302894211349834606765164366543347781795881146353953983071575612148214935108677889700361473787073236416825712182201909703697941391677843147656247547697615704176299177157879817940050944107315111730524086475929729465553758863627512763189433490162837876496909058023438808814080605081453521882067491412616541500496496535690321260454347800880929107392309823583326997816071691184301463898071606669246067328042228568029681069343230434872963581872305075371574014110102571093017812012440069344850959783445069882157122988518990266372694867958115445420458831748166420304209396458797606999535115873993509377638636421170515745163178826729311323924042516633979431093689534621686744812435136554196213117008993101351962855663323033107883956118461637110644706885589813751039821602770504066244205744550899464005087398774203680879679594287610379174254852608387109534255518267991278975623530012716009191736020219488691545690976747002707290917096170122726311363145670920567986998056801770447761956272069762122633998977189523607684130720285068500885322061922326518716150834020311323600332627378138359973441158143067483753861965077827737485277008884832785459156975339867742061006326302691512309431736861884986993330683400759615474115528003848971269640598053175818860599543303081724994558878335052206150969658287515090026352031948276292628949350108516806825241261179717638761708853398023981270670550474836971187069425794058445367094687261931105558173966001670639928659762115526230217843701756909444037865481749873228896819679789186812299641052271122129674352440856279629261850508770078760558329162085402452603887539104073211603499449530105202617738167274568882103989540212077623756061430948475478890464654722285520588544432847579142468122006725119440863898862396611388422901609007112195073914816805590733358122956262378080118237004039782730056733819299218700541467707348836948848132168125276470395979792928414714172649199896454731914988432675870989370324362261659055313020231401762980442184465921379345180041809359090618133012679674254912588151296978293270724829679035799305579568660268172245332491216931486537471213186521709764260530486768611151092189128038930541094537477342511410209318892515705398487785535555269576655653949419546042216942005345582482782842274425825584321908773653584732950048302209597159427166064548901319496176776735983813808735555389736726646474787619240861346642125960179174510361089158551998919057129645888724753011014205241004852033914616045907944768615017364137499230558807247447928420548322504094482615464422327976931195442381366817684547517699144977792988135837783158397559431045903145703009296803057078509463830178334719378877892975487381067308541668842396735770843029918689903806969721010930280694620968490662843518005126254796649379587267035976008084604464014432747736294789411004235654353568216503740876458518930500250694273102033702221378136112204295263815345273213902050321750533334371749840513418914569713391726843096177113134674342032472477427839644603123592079122959703900755735514935126973855093980146766069840485819178502102865886445425686629302546318385521978241234811918185383946648618950753792615013726990048803348785721117353184711289328121397518596771809489292083635963953807912602072711652782049582125768877493875219326835877436850539203114580501152569768378146113651557914877226487111838886965110804923211512605428233564238239462453107556222240529794730137058497310513374096724963335739080601987347620435377817625293281171245649461136334366464770796478949292397952061611082751754483783649869083779953426765128887621637976179661272246024576948967416031989299396000490244911334897503163269724981982646198055617767376151149615835191029452895738832594894744826958463030356240540680494475700296765894507620700296271535144871066433103066889132621204418000781762956066437778058192924751306216132801880382637480185210079406779162810773238169131076015907296729828128717727665223308406510889770545631837130997547345633236779507049385976934477409226141001946498082274072620902960399455815922476486649606279907701122285104703795309282640029213706678701798214745337000952792579451714424244976526163507014857244592278171071861571601864434785988626158747232960174951674342385320151822140285352687035796350677820613411891277144421208295229586130951054783019333667742209823557264627571569595752163928146535501644301643613836839219820646003751829846808425609799699440734689682244414425127991203262153565635775234254646314157282122666986086460994743726786566715422773526798248879123349692518116166962990526826307752624113889346639875808210490481749447087092654330134879756029139678410668228696909226512338609833439577176532828912307866530857735739399676474521390038730001272159497707335287135628043092547082975145879135877335543241006027374813923479059465952470093209806400241328372879119019110467654361527745307761953538604585319157679045306967758464889641621246198961511783937805300622054934277844198981127009223856656149392385489494989274046960117801801466961922991324790563198258749977913810473476276661723916586381813140647114785381218819547230163688085476383546293401475300529508355785062833635897289276826570815353897115612735898181234381386169280737095333957320776659435683134677808451175160555370038904207408540916573646380567870720564038444372714620010498638894412420428375962597969570815299855396514103426699863199724161369980481362284060463447618483727014774972012794875350866225446446827793099560606933209372037455005343720234164450756543799075590044430406626170939423000848915606219204808070490470902835022348943291472033093877841824846214477635137491923313227676545801625408675775916336783428288207973119636739319927055402567663312862325139270311566517989470662112998059423435130833372370411263033032291283039448031466629020967224023256563469080767177967325728554882311304890840061354952275441438258309004050041102890025887374445945527471307065820443118214650580760698940776055790822550894490686202251973953382589959604547168149947849513822635525406935781852774871330261956663743429453934402677066449839231100700716192993478260614468586416146579486370229061635962636918907060467125109385802343178302697694587831214232130570433166601810441283541706904313780578811720586104268253148412315492649447157560418431289489082430690142276676654081108989871022717739199393354893406194658771906505397404322118708110115832564300722263067688015383124377978137872250901441944529788660026403942397781013883673673560287995438675454034137847981028625335302985800314130302047719298461987452583622734355792219479498869595522845054524898431627126395970007505053333727642687418447215302940792850052652422476165765289972442185748709380809917526213413065408316372968519819420662839239242581531004360250343555542849335563840909694616737111631785000689876324078597342096240566279032193014578984710727173210452682869976433357504394378530056027560737826246398204089011149355499316536638633039820484998261639921561966766485320349714371260703307545106793206651316400872221247876153126816925195062205044506009709989682724747010476236644849290012070338191726125608043026840695409157328932133506639583208920832629915615654251465063505193667651842011920057552346566205590627547382924449917407684479516562617760771378193209104464913683826232065133231052048459921259360295649782196398334027416952328366323710779866684118927089062070009901650644453848489329295678803545392415449999360336975204845841231457076330984740495373893323237332686420800491086660310261599351194818472482072832282556198762793348660073113096004194405639198792797292957758773310283644201798194285487611145846206721086681409290820192771446501823615169576944574106020682317379967883994177762692779037664153893562886114089253939769596773935866850566269302861259070981890828657343383110051471248595701646489244204047769259812250094572213413846742342123236381551476166744326413631307495107227065844146091099569231076657650041197953644333703566159857402849775051230706866269791242142928570142541968767453291745874079604716108202593247701551659595360898144989512649260577858391432260797979954341740659509993310389922759345508698242091237476455880418071853762280924577960845481319614253717368259355857538035287166621859205333175441372310197483525582936428154221701098010097069408756155958519896251533728529379223191273027685170344826680591883641743759257248886030147154112344556144789700912581577988688656308735077675603455855873281435725461129618148247072548386400316040699696092675672975794309116163592595408679024368750422354863417473713138281813182749031781075095235124132000480226451755233561108628967660918570934779229108868882098130297282492461974037408597759130353611745023947191354455541345756402999935326518225263672255546069247714184850741601025523877222322225960357607156750835452982042960595472835771073909991228196958686962628814769385269649781942430788287066664660976167116133412179524679307311287704576298506617383525655283001022557503414927570619597777709180361188647609523976858918660621524249570119386653445905894554301145093896176719502633330573534676506743487980815905144695582477228571460885001219051754041364098270492655649552287252629533572955935670583584165434404938862456146489926719074025412694883616892573952244639939546775884036860595777216599492741060222778610981368295217537163576657897287617821117293985003855416056570799878430301765106694763418172361953076946163546390122530362058669293806936187832598683508983782646457814410038174009171704174663629038380543757392469352604566477458792134323523953727303634891109296630133424675117988574487834830735917382677287508843264096709866148448192133861814955576828558682433533174490522796633508234295183684486876731384114003039690570710953205353143399001332250587335787623865166365515255254482984361791576827660432491869061579925437869394801697345197613989837793027060719923716435157614626086699848267705851524498123436744829995689059103091382420480578049067569228626240422336177611654432780132756043766558296434127459986015332541578542030521503702569193445290897398470821753418129738406794628981639834652673661386086842420549307029994087240423698121544061830936374857493141861267042295609093219797436389110290559115946022459843827955084522396005089824589305051013909457101600916741097557990463306814072561446115890857248624109266114120250693277612780647017247312943522729471077963127539047614288478093477596593410806242171453736631559520777675082613462003248446231566738592201471009247116708533207340838796610302037261243693913411798317950448903564969580666777842987507425429094906404878246958710954975739750608399488141191886878807447747042927232822818270849110657518369884970653911709739276338226928691907018353141425395644214025158993663058507031326062451965969953725586548449076797563105748543547249516749199101266710525209807404430751109095196440338960948620775661812527228214268692854720797007205186066875721504896042008224564863544575685657106410081191015070886284236493264266614429222017943079185921088468872791692612672576324373828166474010937222630943275014730654776559951001861186962653220435090466291956838364622282301209744913975982021422425863117695048880953320983410973206895109668160909891318708046320732174926862062734177680231987992735525868239149126279496583915569992779939522570699137826226473387002752811233988612055154012076883048879651736793358038672538883322834793051304053038623657421357903821315155000153747997859457564831380747203569517090485362521542960203069639555862643848339821302545169961928232209254727343340682473545231972355832706519249372729394691336200414880943705653491841280548707898057688432364646680597832316008304669699004949127727067901089147965879329073214221621094993095842894840190233337449135726034419576850491346387079417920495170376601761031784988849007363167490524245003396936257275711817392270048282175694840767194992995746452288776037447611864144603986895009451871619695479198124891446632355078041584615101890676381389658383964814553551298908487162758707904849907509044014184382812159310434733508009976033961731794185039075427896894336486378528692664644226541094038902005977244359230728513684063865646911586596471206427048219420912920609969091138126924849866931430179273673201291607270902585039646954787073929552513650478427591738117502253656705830963978670638677424532496811703997584004709667433383457351622467416708907078542751124030402298791143686140787540916569213086221262624480338610437265850926224437873947255398761852990570690403038884906898636318018059346473677516890231265262069839512982326155361376752520267046547301645600988505016841215121309669440208732630552451430357877811667524905666147907527736382795567537718178608139731060214130277408929026652951277990346359681866648397309993218941532320535611992712146778834458029089517123119432150312126836389919545001815992458476713634529634489167084049192344310788333064556733444775218432351894313624591761175383132872676953630883225963851719359371166417970032561243856507848924125072682001100974791978207708116438328488090209963609890709227908603074621647839414892441708198652707730698186987322585392446446724755800727342694249264354464101632128666922640430664484552622840471751374286635982076550345192164305727829916653547366812516184771852664431827563167815961297619432386769594181249723889423225071367740225054147919179196127303008080028938653780408116280804198998530424667653305878356011358374905002743573721134854849398339018741180373783531110408920377080047194020322973043040984889378936808988423288453711489058819651864455208931590993913071137121846352679677983738585192944648572480507286164781965612458452586726613397951018219026297821982713120023352526779156698523038589273746094719674147392780774511469469796896675348811555301792827018461589939972386794699588361594615636064445241648543523226384372980104677618473953602903987415707313499744901230073757225666895810097242659644067360528691471831041178208156395330274232158582090669325183961964436136115509273183778581714823452771470215822269897606454925377172309357694412312865940198888947344303583204014752388014260728438135034609040845872470069926311633555051398115860976888802571914081890326226634360212241884921791771337269446015188985573265121669559452109049380297056608530380360813448570656535504946788503937877468067544905465551745120361551103889978835686280682193152574966957861376157508335893629306634930639646381810870194676246030672480697300314523989177391022725709083677797282346029540748733127859069706351548642589493396052577468908755509968914637378127396410626222392845081411419952554061134461846474054807519161126241845544200218185261078594993506522241202229231384408659258595554849849142676593283682681261439525160940365490688266516312074817962266975171958352374235819424091037933049812794473089948696958402810299534296971646808249067696545017246093786729548822297170757175259242461591738546230327375736795359202405955775381673555193603204393612812216190023746990640506689719351197452341923106836691051941547333789540879089219575304920664773207639278103988965168868046272476493668500570198888255919470904361423887102871391189134165826587298179866507004650131919399242178507295320061584336298737968418008025769189378714784762174684817146698402875662293217096773491410042406785659437316045873525903337940619752839102867152142880647119334916229023246033972180470562904349007616534369824165377958112384135732342334596822495552940213613462879936049923207674497460709558366493997295142590671175767220692470726400555618650892304829147834140122523762330161481533941973438537019095081012672502358823622156251441327275186027525142988344925590624768060020400375651503293181672824317039356061045478251194068457153814640824039034265330688894046726862869108113161128496156418638738401434235369878519995931683504702438010040908257988815404927432826446219846672843731993058603415467274297196108565211758058361849927528921364226561602217692162115181485751733853836360401833653950362376059791996603236352181219123179106335049757235852966323898517525803865908071887163350037110515182662720499920113631934733164838416919963032812571601782040108210497142285767569894309851574192239973796168608084422145236943722190142519894307702152920680041151434061040836703745240822755613410932837945662696443880166129219948997837383503604929517281740811524188579904806085123683419766196463119614470118949553410943430167226513592968487402362766711905809710001356892779865708397450386481111503836691657512656462180460479975753214027098581742143110394637673489389156498998546245581534822493401726204847779485804199136735375483078382868185895700976746372090919949984760751853853780124616191502429876304663988756592672079216912294901379061551389934502120124388408810421889756509200871579588521757218463848512924145909517502342706708270172916771131211020494511343277833948334913355551583545506331258728875896838780525581108520926365731995417922783303835706159059772590611765271833455676651603965178991932363355619995806356903603951423659464334734017560928219379170625027368278870477203484871240316902432010470827327531034620642622639567252991833084731825505044577866107700748283850110018962640279900147350943315921305296329047948863237199933428189787896009445529983015105922673056441229969174212761312971310166706767823563295289291902432121750096367698483869488456712174106894476416333795822072790389823328650555138881279583502388126990545477700461845066900079631524528230590070760448084631178067438874241524555350115008620685031986307202408902485023005821157842607509710894369249504116370717578275707092404005920710296509278180087612614311757126686324083588385652778828682868308735862183181932536020893005309028560331533009775192505612312263606081972518723074576502699309798884194065948489486309316120598350960594540668231682499660836770269664634014607689794007066557368889240116001455461628543236908825126942664444084389936633397832851950473857645444668317246924580096253652048784123240205575753191097784914445234613414738148739635559181791261541368442296925271521815694576514987637242819429968532723656857333031727756159378985933207569857746910117263484483859523346743566238546012577925468184033382887396342857261712329745788971408985229174206298512680150851143485290535966680029317778800178823851162537271779161789949368030525080594992142420143384303029787892521469755814552924848286370774645090759915658608575200967736846893282948857321212140025305416776119291063703351664332344137438205677118910358495284884044780733684850804664772724021864484561770868894731430849649147904600802407117405260419199489151229135598697775924835612758728676375354590307218120587877213268269717278247326717757138938561948527323365686784191223743852660049194458656323118478693750961828584093886299631808981499608443346653459377779966051883221406536813645005385423114900721795816630078359411438164249189598010370615082782747275499369516446809646280306389813182235610153328334872360290677104073299932954357709699787321408644498241905980008573084360340951778170150233089242045077719322349140587933046830449566040612848223759103351940032848258596841233685949575346300610247851504820102065191121451648171085149478324300991254032221668124362515889176828117547652159636480221082435270983975786708852390968123024721502904547176109637879982332628881730898607865967188781613930301001709197234001628468401829968419441519145193613784486478597206014367059020239622208375870696414400437092578842115806314819491007064741016558745893488217712806296210418310483197881214132171995921383865166182324671695163611484871263241959856171909991546591647001987128343462453702569223182717737044081603442449160805743435912276732662613782346904066737031344834656350182048436293030536040014083537927622450691911900904846932986946483087407216828415855609774229235050612337974574503849831590639408570528453325111548062817798507291906700931883417162268336665545958235811460201757909556475999185047771282772839766577852168399846702155634993749991859841511086611148312865875637255082765434795116055617882246984656043573204721185525809197484696933084404843017497084015698396737178547477216306534807658884820014805046416589284489425466907602480862002126237069135679306164204407304424925470622656991892386005840949851224614688489055852411122172821828407224080608173660777770010698166731184028321482495177169913800781997007163750468019250366685710898981313686058340441402217111768441487893155890390801212648582066317916229432017547860421263641440817937854991761889194694674915626781000918168169258068708580505470419382322565909925198581371903662671061472732296416440890739553349863581766973330930720208673887847622485942122024948866598367663153721203485712055762933404963529133417756241101245275846841325573036690320316821699965553423932742999060311873778162997761754575410272021440989926179008476187924585495354913179921971327358902504630437602571931782933608253133653447248361540835480726023026598997402441636639599870174133019417532384163415788137983828729131984173880350417366840880995881867729526186305895366245359272244857359210586948195052304410654518885910928432007255611383452965279078983121193767790560487616889971522050374090120758205805977154060027105868823539750496031162585680962089821801792750882314605800477071855339603334624214050782466425913468886622543249782549972780980763679834374449315466833125587447832548752148378181747235639846560627272074857968120094887909281462877675664809161473122624539973991740121036939874294752833262052187049820552098709365388712023771406499083473124505668992263397546555591737328221249124987590162864763815143031082032545087887459500910915588783003451652514026214483926639093336147936311447867610485410848647975616522410096193217058463242858925102989446394108054255503823587856651650562467746624181291972080172337302181571846833606944547300532648057479313680480884200652677758116171704993743390937839833908741185877203068297292411502646623374082081352555822827398243852705013220148004059512180520244227428181258966931875987264730064982568814899583493591107832774879978433216179324064880835272222857111862792938877452046502018006064476318349204732167566637668818114319635422269505484353097143305694136137775314703896182653338336444271631716438386154720010535949259500400757858266090731919945926817567034718156739605220807842255882457220319354730984895392075584848727977837131148072357729494670994048575288444930385356162194955192274475538778034816962559976214810151623107229112610353605228464891285072470973194257179307589360607998112278932939847501378795104781977433359004128595176312211097905041475312590364348628823192540221317778163608759266797640437171111409449998376276791160208342322170962526786126360500470324085851432530920960931037158832324277077925070515751009732039585364675352541885576741797134979053754006968042399656714944836098410235750509321152147404931105324171989071340445630129330402214943113397497487547860663584896209406268153911838568767762038958301981682053808035687485096856358696401219209917755387580427862673973633820240980765157344179727961679107750289412654908460913728111431652205985036657591179427775017879025030776417035328992655078874793157816594596837185422189610554206135399535328095337546586304083656788416256273233904638422571155692211555219220308056546852122314190538823722694583242691999086153753210202685478348812980165348862938163135577613907810559588688477989914642715149392334258473678556451027673923215532450787466814526327580541088193920623019155067132238019363898306472066010153099364337522970448927813569623314030104532288446458437657377261590520638634299019348936259103921263236868016172851494864392327778086028183179563177384022596149761607642751628633738536981907365484537207420048096950721386349323846895662706337791051109742626333665229290116131425676313214956239646075701137442984417397613359130327346235231888690441146705996399300713770756749440449810497657504655330119775115849549135110296812563669732970291582965266241986842224993636429624589104003871374623999706596803225914211188653391963812078654750771606953144903578682894080802818621833704507796276505029091010897125059696058355995208875007017873384608597458646662625164951043962707531202854093313246354608132836122414042693797994490679270205415781085399103839655625027749152706713783370671021469392506194369019841536621465155447585115885309926551547136191378523745339703754585971663942669780104759089339430852970058748961874065411267701447271176592924877528121875253758575183817650613828629643424778500070021732632217087797852364042987742184821349915677260912196534975133228617738775967546834872052207908600339476514873349556535054904290436766042677682236736292110525155536801077000390778957985935277674053629981120103012912163540386346107839862863788263822899395526306313878123368707323066870877447388283603262823976790136517151115257111114031689357780713305792624645203414737028213925830358702449842478221826643961010624680324990756441701650472008726505785281162436985185205463088797094306652658614379239479242506951421517742459073835030303372042146459289060105026439545792266507239516175887641895799431073468411752900253454435059300804134157402327885518692149569449629982832597180256642449519092842407657605186611100863222397792628428815231835450093864384080747262694882126805390778570269203544965513285427277933546993569944234126455967730202938453245187770724330516788944357082318307441398353466132644320988243468380346096390480416069994254623054702441366361028288485572722227479355985066124714635693090653136787939848765022829042623587773619406370279553635898168096597383995047467652050990721309329361168982291543338986023312162927169390509798070150408367647163489786955234220160275744467752362659122053775053679310088137861876270710604293535931169090203018774592619483241223627159539514939336254505909923456301039061329774008426286721438306380830178618697382292713647949527484813121866966911542725343116662118669322337832955727924962289916094455981737778279905014857944269097562643737336091141218858996767067867490395251378312239657992189994722532337166786036589607171189684948607515244960047127670211925302856924675075389573902068411118873696349443303490717356448093011487986507945477118463354519186228631158450551423084329708668599303745885625329811497855890139931029230869125148261517765056337665327560035339252865062093957234684786587108698513052288490580650741576458729706876843679065722114639838357864335362743629371624171977261353598802157625348225249306153989764181688906825234153002568825665151976019677477460393629561980086708194593573700217722468320340962789148422940406815069934860785977449776932863907363426133607728940804077649763608029898890547145668199750794138635746100900351737667853191199214291249999152816623935702345709445935263004800740981326283977250592355118636051546150882489324178213034585164995993119274972672168307526373078625011635896443243345217700729327581532065480000381765307851684567908040619239567317875465282637619728621993002943312789027969952383762891456355573102071521528782643116957683127793384091572030486543621809955392445315088689821725012635844728529468374936475427872953749811753054547816775144379947172428700562186322535146772457236430050635529330868364487120645756397657128214788386891297450561490429077943647060248509239899711085730151719474299710789952199586447368696865534941967874115181142300142931394010246908132446266249442696505773950335060677643872924493098879596227981664650450932137691606057410546873980525692318676293653663068281063475227909890633927354255076136476532806764103161271215270886876119576298882386359192200975094223769650018141789015279479594080390534139457524741269180141392328362153800226983484271357700180230423627508540947909942541718363783083883478029980457131466822640497448115608976558920292623214199751114328263111002079609288626564157128344522530335395898758894968290431472899728227058490198131528758034115885029996064142826871532691218392770193718174765861546334881652089006782579271122904047932514714144345658129252755912473864227331302518442989288135514707603253171352107998605480754728443168948160362223238905396034689427230776138255828462901808959696982992008456994885286905779819018637422772596841184490753053406210636679522629404910524235165563728010333319064249048919907844494853253567370541207140734357449833155633475716614037232171281240766017972821429812334683730235185449506503309840253947986582112855536591725626076107983712994998670825613707836219259621114951763654110783684147007048717465770262753453037355432396996709829773591060735306892559177143981767042789412733360946689573181599024527178805611921079965397242731969914172789707363363367744308465491298409305926741893515509183891689287376355602782539821479240934025190365107580920327455738231443394553889657909397486608150231544596937051866921464940219508787709377800805692799123024439140435708615977063283439314180379155689875879886673289370761563681437110118381582354139504470791290192158079919789536710675689871810900371480140619111047231203049794318846093142050688319664756378798810864608923795886638351161182737214978686203653200547796757338717672484010076892599139997162178029846682550969472820423389709654703791810696356138605473322405288034323895511526410876603214780443488839248857189713348139721078942103268802468439572101229382228171563416135648932509536489550947407733526485072171123920647809297035977727516559137999397112766377124480696727346705499213981414106416067245511738321194524728579957918611530390488237966618284926106845679508194949771741793897794563758153657667361073081913858871620389308281320217036276648297130916505997239048770375175585796870249558702248047390108804567713544841776286223934243592225420068771484688528504229098390598085028406250028916888556629021247317436037918157462293048941807900702695496589643161217959169736859263867873446881750769772279495225975856556397131474429068765897003984932295025181620138483643481465665383992697762675049963178181378750953403870022497685877966407971176539436118576696087409807768844163332643943432506366350886050355522129593266797136956932174834368027319901888914444114084686287365796862608994533735117236234205784843469788107198192008936171631288158669448323889000845368480233257564826522118593365896317665296584273738093558584485455072054352509773083053798673281626407124812759286850354415641977750906109154205619224881413684541518517567349695217191041565700950437817942024347855887281313979817336342386635991246455600204804089245617397903619342886289628485118619407642841274299450525119300188513560692130352583626242090608090320480447821399406524931422061313590517944443541640924605667715175127276540908341322150864142202672629525032557996978921917977131577810948654229174072069308155572929162795933503483508933942278319707833404059273088707766375563057241316049545350689475921706898797953607454850858736228999603463870588974244882172746493642192173729743766485980393302130756646828867713741827503750489333383944328166298778463076217701225818740616267969604190125486918537119433019407878605530980573922445542368868886578648213063915618136304316860623208840777920591989137739131592595677198783664249562718595983339039620017797416009864752954358235673905639481042857477021755866248488723024883139862400903311250532411397055639030676507612118671858073081476012112990616896677798693207549369570694614728389089373135010125187291654373086690748036818922243164463575942696512163626807760570219206425975801745019459968270064200808947219576199806289147816290108472278537349925809556659369204778434005908801896034411985673435061694057077979858251380829658265806683621858648593655155137083964553545396712962871539979667601700855855696280587585645404131509416157653950190564414366423190941969627770637919001164869172536497226327297228166635549501836527692888850331340139880017495188272295490857360629246020322622344909684744668907877624717481885492860310175961340046048658956205199214912581951383666381686510967868747341332551186101449252320044230415552259566166418105974447618854464595122202747768348598892711850914456197148918592717464284047878770032516541140087494678729553776321715092433580944973926962511721882325451671862680056790065865990498305065959073830308254991330410080320364891440879262267067578294508708826143859704532613990665878877092103675165537162991894449903514018640835999466858732676117845536029626110781127001204871328801658981812392019813170014671529616229773779464878922228570868014043347114598090909719365977859075493577203539633687282055824383482841525362201546053374965685695560448712921611792250870478123836929150136773266625374264744296090464195858694184700986561920460522014479501966485351626127591683637222381771427871654738648461247887281274649576811337059059479435161963386011311106636310269901881602440304842667070278043288617677464210354253624956984356009544028282744006090187743197313260223959899433274182930526293239053085194553370827696939138948841106042618886898392036675225916996935253528882560116878322107362715125418052828549475902987757453240053165991089625015492919336663028728157864656304289973010710573571496460755794988853750372074628445094630382400888337184755793800903160894117554504711686732939235536444082516964451134192993961115147251758500504761957922405526227782462805724579372542260011925378875913514017402443122553216136588145827152666668668125969067321251362594911663970052799336388131146277649554011515655060822746290658341381565594837400694386404411222129697442654507372195188203520994802133318466142232964491879717672695323174443980900005085616289664393902027455238863455576018495610524477977751991546034381378562349298782385436400761108218005611591095646577451387017991193992251650816659577485908567892373152005906782125637924569183865336901460791585283334451551047785013756245967692639849834044275715719535209022475848257230227715386818685815970120377188425705686335710430433408435381613938288668145467897831063144764664717660921374698252960319491230690146577874842021493949188919842375980955248340273370612701469097661408264092284247626543882801083355963923999272428746257735145674217019013297486218088710584418209115603691979808481705966046134129399733354857570163386298095794013481613761960935938773280629398762233919567524146950283306686200389880907084025485093915254556326951221783876560497302908152224727552800318401687428044171300475763066967234732709748249164666225335562206153561101865479508256967648313652416454717173894760612353535958816743086247669804270743691734962340892390472452948080088999037834310628775647104933972575984509654569755518065643297492279151019274246868553605411458884833457363167679222462396895818219257210500072267322984237094164172179546431350159015756718833713352436353289468303553479883956841857583068720736045847501735258386793519433718143539473626030631033157931100279511599091496739627684902385006192654179021669026579514919800963219258464585934228030764502722237148977379203666304352137866057529246167107336982056918624569286668087997935928023596321960796842934267139565029430373717938114633855465661399867721708065969051030055117861359190971250505443458069422313708307884173565173819012205351616197773716899597427318072169602775574850209940693394555959366570059659156739931286846538654335134037510091770481558215500266404440458752909650502483738137190194768681988636737330220603588074103068062063838106142634576921103905846637371967833043072255505629299162392303824316976762539313800429472062035170998688547458655196396462677016514664023629057724671618715942671436697264879101235966371881568202786170969642499380560407739835606710212802212157508225542546723704688958058441555405881709729967266801122590572030127041426096899010212619175168604103373678999164673270134711391829329029730472347264645367667340301050299274336078297686214802355863330935929718816223959538784199280506517297247708112319936867366379187767188193739345847426043947473095333638667090448116987409022984306403467246542140506856685311646208303195569774063213602621748582496640261893138490578750731989183488144038840660310827340217684641021291757491166973597944462066922072344660685057594929943630669533672648481611175148242792623704030642558211357328376741106009850286922897005685191762956411433956678764710824219130553821570170999991690607114138801557284138290997920547621652185218309013739260927075538772602693350305703280719157789964053943141839406961962471990672643786882371576362483161398529533351841088868582043082120588149903340219466723584298995934694371620813385345099929403948445674162247937517086711959746156107334386376032680807880607144292878802254291601740708696737509340817580262591121342189415750434503700175506864222767368590121433339172039888434823643212869381886205644098678330578669119998434234006534597206656700628529482632444728487154318427968085778482193376109055001999821711100964299836463363657361881967572271497055649353702971021359166084868946163322784128610324212241933599554935146440443405116763486505109379722373282438696873215809848568554682429313138369556179491119325426361631196226318339964868573048619449515499233708391020806966578299287102999661154172153803769456947424968365806829494299933603895576994110906601070959033038846613646129325594913313061385724583275010953554078917364754761653266382875239644221939412276953716238148765498862792595563890394166414617506735323878944374960976673559271127326693590813671406702201640384000554517596267276443763295937194756292762511616595164416804154769503483774307011625914630524962393853205981510699708879600651208593596268165931063507422452080849941132478252439189221491899614768949124110343199889860660298838817690134548813837210836081105611057061249618902125677412707299735259997559948286657815642117118020295890514377136866714732491909855095761333540670866854509542179409503013552567621558629855222610385358436663019104172529127168482418187262019693557988922397916497923673270522716145646902402560013282699486996620691155377662809192246958895166820403008445145155332671676778830278210483939708292253702613323090573294220658086019287239400872308363111538792203240882533401296613019750829522409789089329028283344631238988239590786564540101594064475844884596669000174953806309083380306314703453257247996051783649377571821237649611950732215287884897978030098443695948072605316026005927973812289577652048585680876609592297480426444927805840737317088649108952203927219751576502683793046390029348523142616809455845048670489060256545349633172693331224690588191737871080883472070927349229409669344428776070016271621142939557244595963695063020977884193589331505122449195561879824606590440303115912553452181547140848621523009459156754519814563439266418377345230435740511471629520983516783566620657019266827145621096342176494026602508705964785918335967110914406089131261571917600060199647339447437322465279316277651360375447502055279262196910644592421312044228721387371230729937233509190472295412439429642965680223871710569144494849896355853474238670422141013680250221948691285489541397346830036869163140056531883160076291978149062298422373248735225410599094813859844367585805986137129848996920465970206760957704223698105636359966333173956673522977097677468119445758676081634331726755641314713439392177964804939347191799142138035051778855248548655901955842547371786433861775830382889643833315298108608462892812808260312404744327255663590785247033811602119218003504121866991526773065658650964637226223254587621698540331520037658197168745895363497938212372196284306584306549330890760183174610760229179737297146245927774370781838413019229468623942073254946704340339738552960647883814681757667568680269824756860585200164348120981782515663574474165257686753228133704322267605855588532566224725584372028355763289707937214181294721748067671424819065926000139593169879498253193573827546575753599899254788285225207683015491723823854042043892622144626416641544161454893487752914752124421403924006357817404697035663629025404575808512503061534093330504790274085218584998029034171675371140944120533875674597928294500978926639747536102873863616690960564072800335249041049498138543678583165212937091186044668712236713210745012442490031899997999671493494123332857623576425423982011260343520740586763771679743330570210026881738018807101320333381944261229981148125831970923310299261198221947388120772547366998388032025502317438728979785722171904383698517230812243083408354898918016118783218635692766655140219843375135881193423764605106263107350713761697448591846447893654844057192454782500091093106514502884761335349372142079601156930174807040581935413556955313188286283286457197747397519546550944778810162126160970775527561699081134620782747517112614518620208716004277099985836385731661578032291107071373308005985929322333529963671771159461428733742392894471901227333346108501969988687772572486333801740522739067450189302477172789942059999640717488263577160080421643802550571315866768892660492109427693058160399990768719115911458291860679170232011676079726987572610556589543477681602704860408194080606223733346842484682910486604398579341086707390016513119262511148187579993558352549802315967039804308125244795542539636702073528878626217568755950269788667075941589850408723031622201540215202952868003596953199508645534728457304858952921524404880407330853206333603539849387355217906376057343185231664106119763241183657575155931274072356201185001484883337509905977456535702172272962892297461777776473292771807562857028830142415768289275270798397745213464708100507155752406729971758975773266488086048821327250626082262835688706470289115121037681903881479944957424711840846125626277327969738717513089078249234211488182785136878005353999453593341904640860084039822574978817294875717807650898006033190055357648579805333555413027346978539693353997896404474424100668661862088020999492661192028840284633959686763913081233519910946932843192190170059382895277822819446820432752132223236188959806310735890261196079118183900312745228046263463348734618113186702629305671478377799855062955649768255215814568719747653336970052620099239129310608642466166540048880565236800746376090088636190250317242974703614069830666167197251269282301178350118869312653676126997510331030900250052202734709923877445196328489319753109359433247536770816381020944342974905227851143292197444677450269129204968813214721787622127359945504425948909784368030416922600282271526211713554813232031351933840551745147893976112641097288760712152700027193820265641427613034077647020465931274728153663481652198840720114058291473732817321053014649886552861367000191100417530818338246134284798150566725987769623095202810660476433602661636979696645511488452973081098977571714088289545294305337258846887340254591154971728703182426911592361561229171347340963930241182737237491298080981581812547913573719110542240913420738174513057588199244814790990152415706644720548677268135056631620447659908108034424193781792803582516188451744331792667652469321653087030811086923332322344536160138159050720550524297605588541222034406730317119362669025667298192854252658703713468029437787245598628195195086244043572435599664585077122635797827221514914046377418790626340832872716576020226892234115289697143489760637149371099540203457306941420491142385546776405580333693681376030983660557887126641300277157451034520811247778375412715876270539145220508903850731874215308160469868151812320360481827008860529130346471870619493879450276810997592242556920809656174498730106576151383096701421657075253406945851500201499711746091136100321997549976782402305457504373887387757699420922509829951466186214564273788429708699268889876380153893032991671106769514357380021406193624995309582594616558778155922921197553124860018575338282404326868425401777481226161893779202900564980766785929411364120832634029626809678619904188653406359541026389501867338680207694750063743080847287340240709279252207949368256456453901124445794600956642734863664973322251487194241123105028200279272694123920769569904577637890592700611823460149886550073528170209539703829550454402627040780342108500897889570669397243051768087517899794663483545825139014278084030580506599591973771205812244813387811317143651532410054587275482617105055578439053504523322824392779629568377356068778198828809713368164456572445005629272922312295000201606622993800597341871873327281853385322728911533860361897449416871891836163521321211759635197845803132665391816813442603163291285849472627605672880548867290885749828472742317839742925956565049174495223738328938311846728560085506177040633411000416581964232568039687573871775979655573174103773298109774980071147867031196126217175898893335449900081355514593165440627929200970159919219203599211740860011245611179066537685354687351881241258677684523045951506847394105414722616818877450374201589244872875362963945896471698793844333069772026843639557561589561823999432141279036433494543392568937304318824681026209476789737889910074383393164528371194638946349537301986824459201408863212694690323663814178783572643672922260378994574914873459478098492414670800047427110727802621359251537667865680315870374834052918995337943187265337409379264359783909016608071821859984611535151738270199579763124964784305515188077829193033415140194215134018338041039827145478153609256913596954878352378215968194838404201619234357325253793452301979671128405987715412847816504040666916789629634367650476528535565315807845115414890857987847914141001558981637932576284425114302762366081122539847418971871890909640233777203771784261975496017778591706196160634077359210722140483462382454420852439403129737706234924186356066982532584317587278238476615618897691417736510664832843240837606146141364970047141949279858216772247555985240632102713065409399142568379934105093865799226308565229083086439319992333582544555768782378656532218927672169949185855386460487220107967334143799134758944198941509382433239498096219775267737934199293275300085930257744891261489209362191413026668853501658503954316457731421648605994366130229656185962692339692617187020727800676738249003065505845578244492057960230958437822488027103005483332880925426650531608863570661451120801169862071644393973811232502459655981027360365578555403662173491194954544422280837077918536432376825832274437480724914833940133693736499182278201912923895790630137570094041256136335370664575327185164733326654504624763886006983029058875606685057973427419599456570058392286251896258894815994058475504817174926145864586880217951329577360498242346396064127608645762721948235456472017964415451567747005087767081374161667369820451972510424858359345614851019317442070696002962853816464583827631933382784299604455172235414276439772188572311363675347991788562307613014427651169619162571382499707570247453630469038435068492357979777222084869367597458865213061783231605046619851507485196862137375459968158638778393620445880848914308895150771548556933550785354836039350984237371105524961788764954406933516075487005819106212597501065370483925337485681193503278689658490395998515912109171439279549706145045359610062008817660632160499496855177164086501247781099198665634165379096856982448492018588535176009333742231682181652817270933512374177042790797835158683073393283933411707456056659365801646853133063829531680654243478913921531783158881056067258993771381031326510266533496645929772525562716757765928136090989765592594046357176191735130212928590866608531447975783991761889605077666179874400821114777050084976488636590860257481456475002284379108148519832968733077665422276122135365520026099367034168608604228161189987708275187930069793454798975607370122656352884691652031500696628978215284688046959267939236339755210466493182712065127178657133839095174134047944600723083402859820634262235773121990771828650928732406155884484486739248887797029795077936504349831592250681991009611919991840290942524016826603407537065501699287676133037860361101025727965468339524756430114711408761544856005690792403680212773282919200650728985335755704517085799148896596173031974581126039608234104354580694663245610947176785679801316133970551258279664808379659460818211106340777400708560723681008597257569165921061284866030278252511992539616978036643201876870340912924698183936909512122787272318719175029614311015480629501815917940887634641759357543255013228196381315274496643306904886014278312146061019533301566058063231390279831507791482555368007836175800207861670024083693593413156891518304309991951302442743482656259283460245598683454874932805413947128208257097583710725407262656588850080012440665677499754203220266561231958412791505163170931228318136666786061880779780686350264757356146177144567028165060896248674164211306419951179563177693165964226660247211255119719066070288032390701869663127659915251830344370828405846086030908839789029031918629576597128260792406404581937308089344645567097125568339915715616182318581233728640648721032253895071096137512150885613861056473704478697808098696223316396647233404349248199701207179510868463248944259978654745028511584379013793218107863522861423786686361530517460074983327845944557868039666642533362930728990272409744220715755926743882530988240265902783587179687315957380644799175468277939688441630529998384704631971255236529084287225298828541534335584696149718646986172468681613013590263766534297561250298317268977842224041902410724255687550646726205270573602473019643276771211520843558717019238047176179265943961616821130878381336574901898102975082888550715128185488400175888255825423821250295900436679659930213362719129915000516856230656181858638856734260896709471285225802088780942800346897451888856983311590908921586469035906975672198184356985890130643615475464709048507837304387089782944973845947787513219254377018481549939912769402083453183365710457895048016760177895972176714331015245153199832643585808379681594726555550647282960811191701774079250173244260087045389389722177867580362857907180642976628348215891590939841439349849373625238205215296747867965773258580248070645032747142624621439321301231310530394607600430870704523036336334031285257838290467037895862988769069202073800735691461632408033346115239705031288189270017726908844399632136759991869641698361795929259464783078644593196949230665821618167848160055262897864579285353005690539030331309621309431348202180424722199719177834320333787042834742996672722678116056527665962602745171180503324066135168309979693113660382202728875981902648472357027077637918847334401800675416042335074378223469770289680390061332548498414776170938998574356763937222180955231106620703560063660612966330206136019746243229661560379066531572018005943303622354127339978751627298064745289355901161471180484344250090890151885592475171657869637087653170209473056251488698972402121557301530328101187626096851950536841524571411468941372692324111182121948378146460504504591987599196069715720344764547183526534766013531285215874836414519321484705135803204994918595417573513781572189290233896588684170032908228533342476657329077866989009863658724014076080730357728817762274055554481551189098409674108796826915225536615715795967129511993968901804877196779746954748330396352723007535209719116259843207837576261369875193728813247819516196174998560467757687118136755776154341685492184717113992978910669151312862933284313472257007976608463979688189337788961370136027815365734023706184566516020931668601674352562452592433784044857930953010165622872871226977200321197512463423478350085199686237370034832059502643639440569516970204777081206476668143512264080588255572504534856582069899971389623659424627873328835743365916688166374734787192692960045855782223741655725183481741491628075578023262111077513541602426483938238806267285640933510775668442006734067263442453699112189955640284247251356372189678126238969525059844467877499881770429919486404476229016395342247010833258952416212564210155032034355805880676392997532551377277757290823772301373026464413732352564660129020522554773493559855969042148741063505691562340095744641958338181016157644422217000125479237692946651404038323671676130942671901829176734756497930064996256252881041940941955867411649435073478536725084815478472599365466681605725098541036795956573632844289487398542082225963929092959716008162711165628610473541046681330784783690092512592856133881045048923291757698452787157626690502285077090505190778536682917357867868394597824272719161626531628498229854057830873104124074358456136327367048018433556194833477555615343982024580312429288458689518386518012919070517445074986136422915010008550980473462400356338774845863951926590383317716483352223227103631971904337656558109638512162028223640419100428763157489384215430930243685580549472065493378138696075195097327367180927470417491336531718038055687238797424151970058658819696344501811917396010049711165324933960805937956588486977744682242345573737747334584138217255223553310050106742515453951710443214370125105131471720720368068919939801643987277619286882896071862513859933781085405236788362576428142883005675514447450863071642001607080781197317188805950355757811933850255530689187163671561763266185032903538608602753361758578692501687292745696052286385159330307833269080126497503811303482316690092736733035555350276371225416832069410303682454322309110288267768583300757556234293277850830211690416902630218986373592684184343405714087516094502280555918987387846864507658746758450245676752830820739063101435800414807079287066976891203136826353017240610553641006245395174451137430389246602309991459680383411875917983570335878496412401376645598756559044505226696245121809628050802415985843624114594039883352221077649485990714888185563079561606627379248644116623526854723170089150377214562814543497315667344269487810911392073102975861111515703123719604468770128979908066418470499439474061315720715049230835747629590691395609047229362001775215683490490471750641868547911196168440750156459040897758866342290433922634726029274814725285299634204572529374144002124686026631477586450127419768210331817963887989613575926510589774000435377035787207764370749323509379945834870626078847376506053786241583213992537664578529671179203506961705283631959239010814486489085724267120507550380482241987535069315710125008292216100192125081171300120378824321526800574582802581927974303256014666453744303165804037302179040462052938648767150701611293549962258779818476377990146107353722523881098035411290642347046865258126396215981760894525840245070550440691903312145254147432471587842034573168327056989334548348091729223896851906777289703229033581715762423469824410719072789816032345048219204417450088373017058674753559358443233272965252370264423202485012347013718784784002481760747369349439361517140030294973246800251818917237193194585632067005332145155789502598591153091908793732717824524873767428187602301773760322003844893565859051570877827835814745439012478202561902852346350312113414706191539811737871049877799990186420999335255021206928375058590944319012813445120657389597620713373649098350148150815429945332801393968175724321431529440427459711836681361921247893588771261265485948513903846176452688511726703155688298281238438042018263581487925340278646453158908421036685578157631562337582175685254734379042259189166520435103368757454972995439656932807095235496223605758587964989588473868811953176717634197279540705945114013824081478472972067720740666836840335957966007691044944690804668537067487478512292938145181113833449340766950069677757666564220870092203241842931317491475606800408012576445950194624562172344065773159875330168497953412184845168728491933081246011571544212284370988260622137508681673968989772615232551958742620251876015502920099190568995794853393944534979679215800627731266968890008324438832847644837005874655428867585876427136664528437316703632972506035490427191777535152760885727900161915484972240584056649655806629917135587378656478222440789526939105521652737881104804041917137251551025549653894253299850395451423765916361403943557244829263060957139693849395426908150209139414546475671600405648056870606331146414585493493184129160754998077627285011624369472967478878160803912088862924518597308505685982736351037812734231564932349665388694760835666998596575493574984718254765463658293183895880485472169155949226086345500807775099618520905515468234977825067804557566942850373946547971821573183057796299519545600194620524946523803006096817483713386645858479788902663727064078073429816745093678441377344972157443606939874870468229490229384687995380279541857312018178929894795367684546748548568565057501253963796950653856017348771537084611056606204886507898430449238145889828367858804841295794696636151961490149325194660152769574035550033003471882021486291070888096188958090312111159818390918889460253353345493138666946678525810903211847145493584727169195370427818272661903079206554224789903362687960534127874051211520476690524839836186407632699854518566825164082716444563069660858714742588079182907815144740917154274475358805713476480096025751331524742471088073845866259886539523650305795094549947577640108772071592834200275060964596543542103379128466319962928794710883499364046469047706007026288497157357887677141071378110557268413037123995919767468522478164934555910875498794309301458522066784916205952896376994042251131964240559616678847078451408413969283064229014580750074848412628541344418135738552395685180648376219352267390118796899472070581722408346135142530272836804767063846935098960650728383431723239977314626333071904281485300697130388835809515109134192140311215349882573291961935675917611283809566353157186706081456621229112186537299894361197082676584017276910160384080190339454294180417148513492939345836004056287098498046381770095500613836125936233813046455840933140395585519772339888305596455168537945167537594725610758777747217940926616780262872614318784366251229785822627715230438242230596365695840084987898598787916153785888086337639866368862289156547467108771251617275248689808646983307624779553658679267686508140316999131333041322411092674984257805908542897940688190206639268460096585427362337817221321881692755806986316606421304621785045027358767319360027088581664656038020287526454586229939613283537303692557277858004371909021441251693634014348349751040216733948063788902503228607436956445338161571498598597805294044123826635978132353744483606153938511019529481823308165646448841124735449209789072301903395172524794241410644034963495757160668868993387175925630246795936102820454111830455928425863930956801768002638116660764387923555712795291090295031960338993002086792235480725470857603462273333119917995749107985292714363988019036456532815816755558865868217511723112265541457013633109066439005699052451010585986956825487332793818448568574234972363595117169851363656200090457979603921135817209685141614016584126936045747989031667209605746485607776709198936096654540492473284876190270345094852737070401273154853026291480178547792406002433873569254814110784531877600011776401432881550521340098109475513878978946378815704652302272277649701796871732300073529616207527789829557217640417064208036982123033643240803327723665904834905704209155607414029775628059093689948140300665774590741010919951812047878229453195024796329473781583104645559986472041976013486679513544914597871428723616166086493007781671681202377542385524639505655659196485184050240443906626564013093870714424028457825041290141414368588309324014278553050009634058669738648558671121371354892816172397614979121411568194196559632752390488685764054277010988843248184066312476242205364357813399567723444244456389424521309454436617844227950275765452589486917069137416201541033462881998757499680943346000023390133042106175017626135528405001248384847233812799034769943930451744071218418256866246602102949945896152989438307918199151231504712399953852544220199936579036980355887008489788395522353875986236245972673094191112189502210537417303228697355776123079361298993480995079428057764695389118682203221694020279945593671910209130237196972663330692820796029487039269740064485678693407581535440489875062065326267020318472736229915033115306013658525134005155142638723668557941364415524282073863518411419520306055301544603802456354960536364602939608968929363205418205447230178607877315178371061844225830966286185879810989538370939995057107964979889109765117669232809578281220901311770359555333585960749135501826994584670855816958324828706032411390964253028408665350113426539273131183688806184895169734968101070747811696727046307696552112209230826867587621227334015756255310106114382283234741395238760569615208698053104694731068543117856396171091322325116119971061418769242594623892932034905985553853223152280329914129687644593510911540088783796825647908190908866577497260071237845798502078217464206036732157283970657555938383978846412060782848150774829111031927772593779240215739204620470381440381547741022987835133044930978443006860461101943099203697551939795089144116240142842129974885520930128171631411397209672295805543200802335926228837535104342994151391630190691319059486072469091267511871248353611590384376653762192006371011725432360694128031470232645544564181276785559325833895416949821380798144342956697158237470417242764619333785862494111553531814540169529099048995851634386153513436714594753980752180290221802912340713922149922991525218854205651005282719596569561564934597762913479306615650550826181228140167784582698791698201837048274295798171146444934398192248573049133442009621054498486617106550164780130871558659049699150036211961621582539961902172912624322729546947350819854645039940344736338178258631130528297391555210190413770328785901394048650563488788729453149302216125081940390351908381086417255777469090085176523075890555981917427827071495128998101426510538154606884389774062373841659450200896091702114523865397990424434122891085286097229241507214469922944128688218471320566479537691944673947165067296325985040516471323111402261846716886656096310696415828591945981982688172756705454940176293670386014356169958642124553473794397330046302723462580063807125022841271146087542402048067803077750363109588802194588065814760835253511510537633752893799491325071179686953481455547764117596524552398184874538015865548138976725440964689600467539684467561904829957028641221814833395226902956668509477088208341528639141164158606664553292695481053131632881673010948308008516317484349081853516637219947438306751516880654360927522811600969589464498149923467853056108639443303889606107377780113861137094523705139851631944922198911034566412418207454684792830719282212665521902295045708990978496370705525278049646377706486707202738499611050242420883527006412823999452093983109336997889226083829153707737949277905946594730936263330325568582288567351610040826791744818150386310328520923934465007003163572413689742265494195359818466173873582274956697281105870870214490883186603472619236773877848286623749497377535263186843281386621666083459230591657741328479580296704593368878269105331323453796121700371351716217503752587568460701656956071430361498403810269769682258608888419486342254220680262614175967448696974536691978664406005906500640247655740505323899312030307722268079890943316215985611947260843842472231716819295394863515229848984849006145741733265820657792940013302262748905830276987830403565037599300064578995540348648611415379103854373889760315570982991927078067273848049104715382272569234829564368002759132890323479347880916686661619136727914648088406383632662540634319058683822032864000685117394968436124165612103025645962223093680782148035132617628728324816343871577634156543175084638567366874679787011934353444347369358609312169546786699293663888274597151157842147060774549667978668680873052956744311301911430687062988832418303928249128507175197455835220899667839621351932452918042707352183753825661491262140911674517335909384584004297050130141696302409345298903182315663153248623290463284369651178219402763589685456268559551244210573501072819492771408013080734397628990532724213140661485656410945531490759013803336903120778937422954342778289613713325327029929171593156663354748024812444808656642802880058627080213583109704737292377012359027498081387031932602489501244154154011812544585313740410711001195781352370068868421241551421153075712311714477759483630442130831576287158705040759340372938584153002425448953520789437044079466196584821935495919260504119032154986023381440571905688131147836887764227751769478858416900623623959837475860243702786472672884524058557366324388902040974317883242563180476821387514487580651124835407609672687377686317237362133200405468151613640293020715958088655006831016520011127474699623886130508029443432664953830569864169729025166650829076398990295793810525416707278246820037424681670628740249185502729107564563497442454134716759036591745781051964427565240785237123096163433967034300956531373522587030681805756453401467928453305824614398708049087237641578368770368671835206347369661061196728914619927242546691156435666765113295058480012034985468794640106564218949097150117274515129135006823209160482396193516104124840733512503813714829686343606592386973712769623921507079528367974352274592274032277190694359095076149117184348287968311204374611120942338710568521872434731457066300356113822376994836210026540003133537877510952696298287367850351335099561541815987434948884095734990758714036512279883954091714693248299366736443557238395894089270578138998346309275077154083068250261742468503826337049172553663454136880890244976967527789858189673556290872691866317526146505759944669572021655180547746569711141146398194438742129663614022727584190120776455507107239833581074170785750295128692230597916941270925232146219150990781797521280820578609864043203350282059100900908122179158088461823636228481527691794118614508420043664089980334128559184834383302767344881889407744591062703658648245380901160882342244043700540577331316612145755782598893342466852013046442539194469959722603438773570521160841298820861810146598973187466278997244807516915930996914153900274769172476632968001695421506703169982198087181796214005454568532440961098206931340868246131051241720528427961962853581363953903969212052570245887213248667181259945103924585354383449762370937371432347589473176586573414767879843608959627819346946602145072071026545160086141556508342804008864748231511160669220943268891151964017585329436926258683327287860253914153243975329081810441862840599368939021236296167820458902222899177900276187357656339617593177123624968437295230950099803590827115439056668945812281240976373430460390589718640297289285597449230017470430134407663764255913515764195240071410736738615944645447175616614748047907924932904201108718427314717607541892022541456088653924755739519426640748994400753730355062359378142400462046151844739847890950072760727745063709519500440659091431306834071169426412408544075366912499671487141711224147569486552610577705884817294617249506317403091022752290221096269357006854957890274992009955646893100357078627994940642324992072108991973998170173598034923648579036054659193645474972363230963914373464339475303670077382240629652632470911739571974249909773845240452802016489447830385915736894837357212980439368456521876308773224020219673752829984623519638778066747709468155019606783663446161074984467346565448330418738314026257876621271810614339813735671921701379102728189386512864412771033198343010660221800402766138170334125620290784867229512598196647457021310713605268213658150467522549805918687511505328606014854159778233478982631954155457652859249063849247928309142163933313399115060969754728259360347982001583927431080253811200473351777140005930462215480251154239891708292495274053795408727439781062576332103996433274078920130580126262240410334956936866993697385044964447758671448020678920228270796549186415779135313417523580432795328750572368096317386651940314802913364884516938516266196796438237238765806813486226691593128969095956961459171502822204637306891925408203499331274784773699948075686528484714535875040389049933358169162855542156891442539203995773156999314406936734519910328830613519483542626739771218339545380964211127878324121600169386379389795414716031577520543838654341534758555388841153822990872388434958523968909612327664034086678262860170732856156633909895750263469006984632686286661681859914402818891011895610941230588545773691961902962417297673737004152120388290870815618960397388103363595069934573081342334433192799825181406788566424156768871704361407550198317004036882087644728838200315311293522753439773513883357499963898826676562965982378736098521842972039892656720343599281349781533312492424779000673337685242585356787680655540157876553119664550011590159211497660646106099464208395396997976380534713675923612009144546223626124444610455902230993846513535059481262013425861004482471785003474463602470842913612829354978047241741347080360053500642985233852520922783057777214411029254581870617337512351656841915553437762728211904873063002233071575712696948644422692742613111591081744477088943425287061844790709534868546219591901747690563635524500353786762051243716194754639746844086579817919930260541148860896195451608553012347705183098307230330872049543619863338200298412530118691042034435490969105048324368643932767211038677249950568612953798642617780920811597352675249331902809256481495466213547336483262238077477197614001394559825246503887937684521080673285161094829437376760806143451923639970165690422809760101612391075710984453707904227879891580801790794054163036938848765264508162895493164738163907589594900119528172468146631711804303957630952998369367036354430440352036612534611234240707449730873856279065915057461298638401129214916153695261479655574500802972178151840789147028727010119752818263761574031432739922762469609958112477212297959786246288464373901329646271556437497168129348051593340651823894079107782382361595294208091782084729041814394544819400438200250952426685356869977686946323473754982203784376900999568821356677132313461911313601682607074289310420656051331457871315762974806106470246454683629386502412410884452805889169148815069859264212453599342412230128681730546325269284081230597827545811792810204669561530282952714538693777747610188146633617386848970462128007419207569967023361286967838307458487508977573665980232729898316361212119297972349064795853119835812975933628170258358709472141145507215153588926405014236193759280463353410781737004282964304203037622889346777382588588452623089034628038257692873739937808062456776016204555971508141159156508140760833988132418599004061737330850043265483859221711146970749344348186249663385698136270215075127444441154362270537192427775251071653034302021323747924116485520114130091727897722739695438588448850610437405553168412786673013473975480542186694573967831603510094845895252271221955933773090689453066586338586828551037316601367910466449798673258238099052526400741779663393561400798511543025451759920549365860511646405419123544208025456495529762326641821180699980723293780168134557609099812024415293818303846489214706591553049032591164760010455171680597172532007342725375686614436377851618808901454374062038217169257367858337614523400560872732387673463651241631225748036712055488863325187121297765268880089701326072251072271613710198063046908557181611993000146030078196341297975932701910814685871290045882333812832956789988959627035877478732100021991479085719742169785020649427288641389599399284663164779695058195573499071108906423529697350865412839767276753916723785789132928286849809388804054462948340123319375532427023354151356456260064289827927983748662056049617313056008182223193493035764008576547517304580970496240798992566602180833858339604702152530899025070587194722661038570687696504323674572035464771266444017715157116651938326830668336723747579117704508643199079309370377590073037530121436121959192112628959558699659575078026532863654653196061011538343733496398962976614565300122088170721659335296881189361499560804552469599260484688606768590789492687514831602326077688241192447929382486891142172097994974953404655713702894705134608869651030993882852896521072065798230395548247988784302589895279384101219069263305623829237588697564289020964889551277775653269265348643158492866345486429685360752033477942426911508264778322326331613132327884330174116200604639601403540947820780053679205542702662993519703484753275229911462292610590582092889177992958186435138595410523997367933819317207940834368745736925940193449275923664488976754115935370771442713052713696433577297984931660936718891486016199600247752934769389922558086478771655035826216891716145346766825858367128397342765614372105641224832818030592618516629994252847602732125111951840412838015456052654676504126667859935356620685477463514522149467903787593149461478952057755873031637889725291394113694096869024889846913865859246430038718251477012193781569274103494052331674103254691810603983703308865699099902091505273732509997127735300064734739342119256473496266235398566423014837954681391756450816806422814328004153066589942998660503324188882840852055968095362894930404193172607611277118535806216517829940464629850733175345145700620378657285368104093927771401127128727491676805479483004090187014652949831613234072355373659634157372908546216152234856854678804155146100236060513739218573049759432563648614086098015459590818934841586050543818602879905185993984973942877211204715684949953777832467306621617251126170769393287350327690335941148632586197837414813264557934460815577293066399520907213524656781324463301973925529163679915973340264442550978975157916719642254120812547823842149381353604323968938306922495008582323222364972110478645793574808992586916199520834673056536497771773534570637046039133858918628647522422750096071517939323981998736256515340499517339634450050143519035007470133487083167035885368707712449440632579923944928916791786831873625778565626941597797905013755947458147086128181649704077712956628970399138605785873766242332671859402787041023535614514622312130587252174240129962113828289995602262222377479096186472127187363113059005696960620843884315837963356786427143717614771578026232905856855305488935184035272623770958552300391267971302783452772463942055157014468826425941230400853449042058343923674092425947891047344333306668559389946296978555358016395695202095009493850039482522881536993493913410106553065915645450820108919870742012007853597112718336090426517062702790206732605216018853494118196661140768089621902151486893911581621716635292374774878617867001287576287207436989310747123533133782114173964075188938299035477881695143921226309809143389442141395883822240133301557114704454157929846588056210424173146509144447156294710587278146496626986642049865030890577451043097220826105745378372706856949767555477380033659996551309270453064807722979848473253475782479737165280245988852946795784195814053126289476983725345688572680070065492887412902151047394301826975787260218322801472567132794351958829093158734571958775728429392384720076823121991613932962827587602811829976552595229354671647268781053167201919516614344367359087347348997835055088703086287236207003115438282367691206617228845506812931381189130236805451242541755838510395600594720879315003303404743404235498714534484185393865128507414513770162419232681135561970337831813477938565383083579046619741291215598491977562464148706826484230767624273084900812574160561704565785831839372676954916103967673132180881196119386437290303657190688121673972099436933469443523531733148614196907503687033431297778916703655951585774070652531999130784019638964252369293667959213176973051600390720129068727944865951900396417038121989528683598004807282420622842697697960413731725806933630572188908533783384867162643694119529106959322413295234036178255330952084573698094029951772654750683603367747396887423191166422467525134162864018722853315696259278833789374751009662790847607320882362980881855073618690208696206500754009772003274266769083649229693831788088970801816855573084424789736139744987838036751498564574587698156777793496512137137214438293068894183490595674346366175649208719383622183856493552899430886646611902398382834450271949367185710470464650921960486261227234251074991785973453681670426536201424571235295293882457636514547201528901468408933273831325819879445800153532947612170976285106536099777712858520483679017281343056860821618425468882835986004691301678072498492814656831001206174815440226153102694060433710248003813163788605889148441660166376562538199607072064285054155832052329477604034530517826579517899406534763194379314403863298497809284249872700955051662311075761863443626138301604595339092727426530308221333840715561956074983037717917284030579532984163481925898518613377283242662387511162078408269849384884006537568828708795912720295300964650629714197131984860135893451135290923582791302842542086720722998401753643780133339680511035750227408580592565341682820263154476934380446108267445844498990834843115687366693130968646226398460376765607755353544067570327490964364087842106930680580910700931950489116663719261282327426280043892675875566779557936985588627016642720395079665869919044132859513595267935988396441418546242778835358142651420325278392950969197885994488814797615053482098764261218336799543283035655614883206682285549388642908365323607761724961759967389064937988303654822603996281117512892188428640357229247234206764050152944927036654538603730009927066487021432629418292740248607524071448024042179477158012467592497462764180974773148635227151554968661658876315177651219739205735016956438478935876268138681767059954767432044883179326414657525104846088449461461846612310692154286548320632507464676356177889627080209116637771106751568225190210473620739939469248611692025844297222113335679523373491279662535620680839491286667919297576991680770769383623156126812778420156390078320221021262807092448470565739873858480052018811854613719907848013270382181103583281294204429124522790169075931965299351668198648390299010314800655229065835263099881110977061799947213452450743054383551819556333401442703070049880570579564253501530033242951911018712477758710417505272687247652409402573816229500032786105215461087084724293880204854687449698027205920685746530508329053763455696309864205764089597271934384674860784270335017217951719587586508670507939913343143273647247882344307181596986912241433241384714336918279466859938580539110797775475973753166881261435546672637623448339164009033792990831019360097454438662038077494243897407364547884857051518958929308100153300657794593957882315044358687131764670310084885173366436589252985839333908709046469134872528187407156163409599868109086336413428020205096125291663068068494267189496930728118957744577056469289874180612566258232510252553989982110810298644994899144614448734454782993532361356865865580025131161655264810126042224896932076471584190560159635719126778091732066187973586225478845400462304535619027689826131788223849110319574917064404290404403069282902213074225590618341153042184930166802176489409374043449265122485676848329384596255620379199231317040545581340928657370980654600751159984213946743182450013629524267747881291654250935034225110888842881120357275806766167277554716327621312280073935273339380919589956555637509763192276780232224018041917400208276187463112103260567965715989551590983004033964757886157145448167091068340332554038351138984143811328410281577725835482817816516564721410195017805503145045123718276010671792998042797339633102776541199341178600746523386516143950670726665643735315565686132444097274199018618452469481899559736085270523183951636926606106594793543500708580362516542695406326649848076493754207663600450718941749461501252919175039368025028148010300794124991151327394395177278057342756157764826408980454638416736119359564869299221849689124515521763987887909711672439368582981746658428984263198907116739860874112408370090702520710139746412723595664976414257116485264450667966536172623271996264886307238316455133162231465562329664706683887948991023618684251365889065429499070430594403361416066656074603636570113651938043617982924027264643031197677891983207638852886643993475894038010682612496906383848361914494164074843060000069930224890534120986054500464427943607517811816129042523115519690105248282844172609760100565906423145866915324703798680065172488780590092852292110283822368069157458742079071535782845969690300247187271741585770544591619856732423562269173067837225833046157712450773839536309724025644691600621371786373748010198856748483686077341777170204796263032607051536498420141509935929230810751049569438093410473848274765420320956477062174733167436848934172756707972066572564591571186713970231886546203834605089801544512856411577356915231826888831311472318665967625772667699399191335357892539601077654079976460549005207383750969334534565377789455796834228389228285723880332426122109387711972469663959095684015836900739327380202255596069773930866761099516855190315391766386165318604136760100884209859042454447769879227266008256782186872476166767382564615697869902786033992831490452712339804258979954850398344044084002378979449523748960920546744621174155200197395706206957467000624857309714569576477562023018391198301079278697249833146306504330830535372539045193907399461016709127028946053055436073456096781641245337053415000739039911974614011428200619159949036574557006035631525326084263319150481625709224046523704541371904883483365636495775108637745176224860257483243388592286572725181743307546421585759815723516581724865633960030867094106632904648546461681834914393828945244281603954942386028304347897168885744559874123670274197923123721488515154407456579822970375871079699267159224725651254797489003966639465649215555486729041747127320485543373798810322023984163837456502213432483448512675129747498015523531641723107829530669964499661944549298690881648031031735372187990949724185454244467597958844996256981138028740795850456075094564957905787640990752066469792617939988837083926500286897973494592191881373818194736031425684906509217704751972302171728854471366355234526664199349166187240932339245358904327383146847925011049931579757950407208655713812173724068189773929992239751204356097060512429811644053181212832206815833811584542470520082747124262137597610008314472043314595829181403884634717670170524819847239099340630063446226997867495647503508346921641367138990559240564571385848000074272917252111172240513567113722173757947397507283034671506809554951449988514331352809948399920435217439786138758410098613426871064528112142162550637302698850166711557177713349894331265142420354394199238280818822202941816223255196764764525057296966983045783483211619749576988041045585025117203403542568617480236565985701359729691884724923617796907382601398663526695635257606702068817216302330314816479915421239436676549852821047278712426909625788409339602353818917166641324367615712149319228893021263366544417282430722184958441579710752499571817405856640655597592315229666894309592024317027391927116977917440652395877609401818557578760896860119194882698743463949078533545351889451023096411940417752615759812025819020504678821543991793381304592797043050919453284582657073149887919437765960987847757231219638927469168072854389065990305297676925294205968624120935916131749799377548774992413573078800455012227780198919022738841138808077574215150899478709093249213425576255465855341729786762183490651199929706102159923652221810256698199125639948188508539804891795094201794961233670177110087761840967731850170112906830037898499589328810583287576095035950986588520386562348593508272167029484344336731272862347535325032330944695032865482913999329191102840717193642460990332362128324409872285584142486370565914063118061976228092282238212769292202094581541594643376601737277958872749132668830786361956610629355769646648208685680786863341194981829799731410377960208545283361637738529451533560154555303447409760582667500115902611130594189027064591226233401127861884740949019230823824384284049780355929023217958789964722082516495915530116719993147594174501342559540028018232760254317444742405571089254607486084023601365420754907606514675009321840360871667254381763238170671164852811925444989413930645435649034847239762949637555266068720494288472875747717988423712261875042990027116886807560287742985044061934435508798228256432728536204794207782636646842078118099352909648521790429188990262962669030725580501984244620154613616256620538303162595476990765210308874705861560609977461670185477423423685806578527872767726468436091238560461386644771801925496606591790979520031664516367316142783314195432865866538635868965634335756495116951903379515643304085521549796615796058266228039156301962445393647036948737314986927342514034840351847757122959878320971133307038624000229063876035162927473761938466074601674717987266234728909950790337055888199265185519818432848992838110844380915910166823090665773451233187058710500767549603034504175873581429905071742573532796806821642451074157920529471182892707194451262010176857529435841907124865775023279717516035206860320055194330417849787253232533736493159321425810555413476941629327942602635732160434720306621125127219415756829803630795391195057325364157731950640714015910602086511640112913858352345352388351130035631188667545880865636553862887636652974275912263150400466871667246877674303884046469305944268213736283744390941997188657899749832554797238536773637346952925991889637874451150406537432598679198711191092053391109285401200615557595590271590945189549757218043179418868395992192015775636828310152186955361234936183172934022724129891721555064349441629677031151692897979236044180083994881512598755268656966387237575563462241870635008073458487544710066020958572398528610896131525285091234692605849847325420691222761439581618309158875877865761233513596700780082259223030461030371430339111485160403465579650323077635963494469305444691540795733451616517046411514951908685414807318061231110033538252385126014124008696903582131345663211828164946826621500789769579704583964511896360497086756735249515004326746081453475041625863261921571211699113882480080137318227585926276627535764839322786591692155302651929688261606249802200799183803996678111337897568842372931093194447706626939320146383615902240476473699873702664756083929967316752022530096197701193248061905243568984205999870079156385447335165830503817113640291410848339644714621419463676153417900761201332959303142881745459872632988539188189604304872571887237669817353627170075186660284356334195611443152768114130025940661961933481667446845113382033421954985326950222998265103035840182499710155553740751928341559657115624334167236893760370624414703253441440330567224221749421745870687588800693245426437654648613996166009988365115955907284520789065113065338686354403329019428169361962595126197020966663069310507018812787857268436217641699178552855933953605776081498653018976778373050328270294288355211587238327989939470161480164257558912376753599305767699987236212308233348937276195169543162941639200788828297251241519819320703241871625610262862840454176791653876851994198641622777180103697791276317044043311826013041908255562201018214343381751354507472919883970665210396021215179989483908495201714866390668189564489886416399736150732526899513855087734407931563577558047354310369693158768428348164424797383013864017480291269085591135882949963582526520866020569328606146734334347962418493487950966137536188626038860267025838601093139816944356472273734719522636543445628054138487984711009070273749107560682684146573114754623251357026035751691203585435746951862608683754715419044336644497759896738609279944767309864542517181405054358289031187717848153364346022542345585826842996721074576598716694416679291086246620759938958574335850402516724229448131819434295574016409809588917409770612364972064218038828918015617790591229873034519286081493607165008768005589296513147913146795308387159096604081353513214161764831466084577338682410860175919320811167102537946548449735840228103147665154492293290571128777871896854571737664618931263721697271023638077002203013804542123700140611610969811085686235557799044267744381504380602637738916961428391830056759109839788777036782185029938672049289139170952273697364285448447861703857014917425452151467900268763360310585213864902529289986432480481252761874333996202600546185520568417633871020268732054901275107718447322779668272623955578853459112303779226330843598535279547714527145019121085165348805315089405680495747783455127241106864687768750856708920547239857023696121491031733544789752656715783052699315082150200643658802151856951605191022456702083038270437838145720525300665895173502481869888770367910146087321305460728398392633799792594065106032250096382580740718823627337514712618067067605967353952223275565582059381370744968028924959126658308267859756825297723127602612722700634689499673846404880519328201029158784660930470367093889399599280947794531967217181334553962815197409436093998553909352072324956762778096430845743540358888038215973147884476648152100961374983150040242793289357334007330321378856658052352901497547614341859750976194655169672612111692292452240231608298989109745221457144613054732130712148004299638307884480422806432963323371803117958785652207350751993774377746249687940906259941940003832128911946277220384832602305184900235287814320060273523119576158228994819803694317673215244102316665075830143690797133421796753865789114403102440508367668102507913369650837162153385881103766613891018842547852989903972986801914050042559268523189673141541890470832966608533778209809525441938018618342793948631580969615523131627426461414686600474710329534651787157739599209208463284130399392330312419914734342191167751994266174353126000956390135204894630591500286833761954293608916367385105060581101248404643005275386862235805613441544423798594895982839093482827180489689887337981706537531641852039317335556805141487524577758351944856885579511787721940735801160581492358070224626803143778933368521118184815620016209778629012326680466837590455944148175844479302817537306460456233705094180860946895309564504816194866891182068898410395066127281635854470582820597784887891578644326497533287546881941989084311593381071549283227892969864617354088106000114196035872343114406918176087051175287377984281392848052772094943578272727324504917173554016828827765937021312353812040554345233486853168494279717800037220937167703223845578146898236199385308356503944589689911647776831856973252457215943477864748035895219676082466829209547175136389154947276213414666970813402101299696638990806538613827697382129534845525294773614124499442911471176840263562979824680880303070085145591163627467406695873447559068421006931561379418774704333660108127729907609266561642112524932112134934129908988360445778645386593154264406015622653934685501992929687998429269278252843409254593614432289505161953312134213481027354443975855180151557314059853824955652665855175541121147701903171891027099959586348590939634404967566539300963689883028320356774566328700347845293970951522516401466853503760727862946803149715555885273341011264254192377313196582109455032478735891461246918606296288587616551859816411288361529300555923647322418211652055048085240123833402448017179776965704568731188251137212837937890494869735090951588405513406279829971844990041774179059368966536720647271757790171935951392903318118289857605660334156469138580543828234574948447718736456906805301900264911742282991425912654872576692007258606773703402016433664694960049339954062715367999557288613278512849245193683086368599238793691071300317817462922430610025876466000183016938956977718236740631517699166959297215989882988998509163219645398173266486516017846746513480755893227126913428028783406130017202703538915057731958085553807620329960466104023298012544122446184672815012234342894333420728065483918895941220663266345023277265278574933079534777736643898520256741307362834266177205539079759770241660856343397295078189366989359401455349753556293088861827238974064060436491954420739096716489165352687158901486686184888083688253646509780112733212625542675948292305133083782641251933403391742120462553428744237296822686036288206427348656373090578805240312257900662428730518036212086608588136270319143444051379212272566464185691775133689842570166292340958012356785792484998375497357305539873573751026424361110457793175516827667279550564639860099973779387002524982181188863326775669889204257492871082904684541642542712296557213649506559265714211955524155060372395010757048348465682246871548116394512446697017293571041175737076722843699754363773160049164954163196465901205248984859902999751407084454023019144422483562672201617129964472692089716815192079759454124179504624137549385739817806399280969203227713000394204422181831952726136473962073726205174339308362020121078032964144673394671391045743302659062919011096241940169388305815152274377124951740158812306386898857964492895274017114536702859551878672201502790606244170112677022000383872070148303721451415132714670947703857326359298468426114210666965009793626579581870440748348475287877732064670620554270413600615013577095232250387557197210561897948251508379923272050356556201035495145957662826275825260490107009947778975229579958135998879295109573955039069250044524513229311744897948761824690140478068392280658060552494837747455293837855569726111899581763240221330793791261434625110776360031919396541401518660125716976885249654450462405993208579210432990773512437064897494450593617259025526816194084898097802965404670157952429844835186459844243887900529610484271682852899681290389599177131548586077370304799435672854094308980049653347015034737218173687498939277889827067410811496215763961298456289272764376521843993120303382414492858218751537883866703234108958616332676682360623275077811939691672779348780158853350114213582035023788196099688823902278443770869223530685780431285803369545705309843589356001713846082457923625891742328832838536964770046410119214172083160794017263168764508804283483333216896446833466506941921788433734590749288071591508380566174303166235745014141066799750555631843557382282912917321774113587291357282893404738140021081050032979139377429435545198715310331116618563750181372407735387425574080684666292225377990882062482915848202500328416648304416147496118308953862623764366918669532258808630104342463044577165421152076132197862714968686164104285426367351561759409307196666161999395438249937223437338554353857191683975025708592651956765124674079668248123494826578278329444153363588227902358164748851169851118469166247537319605234022016761836455346458105266063508697996062428742425479306395660499990892100883809976974481858366886457562341379687953026813921696879713703327705028216618420859104944712582962050402281744634785449818451297892743294230050189408199998398223927585268921687181087253050815585280142445263494645335229819255888246914894296399537794333612645439714631029949991080394808673533466585157212707479104552254274306877646199369841195672285991325118956010526538660514965728819935191119811769407655214153759413072136140922567276164914006731216492749563651686324406723797296776822405846187872023912021711160903276552236284852772503577551216714181867924865001672870590092492182824610107368923987698492568454308588733774977702721766098252279513593393170421843908771346264224710473351534700336009589431669373787578086678505177599286819299549031821427794811353798564383018709892744517743597542756477113734339790896338121282041339487576668176947974053534731443448464366477495011575051369097712030896113239115531964454867882822364345215523861410221217833924769258743587534783097717428773571219362836077695218092815954089324962200206008893000098981625136859633146010902289642850408768495207512931498582357793216580287627029188435332878804715368251940118125273033098312181598883029128048420608090298189949019542654054353716413828124888120132209274206503429482536663053724062112311271235897975751325935880084218963829254576703875539730375378635415191501050643022185557175947964519763554276180565215933186106890056915877235776153749418351784301835865747716511912950380021082430119589455685831232164121418928808227992717840171859882473109969855377518537695888969637773438804121567309548424863604779018765552790910289693277793086754053707227362166164151710978758506458165421910816656161618257319941707088041028753731959616394433383256701790826186443052211536855894503425354253931918750295295324174644650492606104740242269929636830396664368172468681078843761388138583650873538752069638029539888986348279688144083032704766985810067229381034512950069329668321753818771137405076767004970328050570583156829470502733377590481401708675125923065140201406202126859810873511908338385385051703456721705218994058431832445050659163596670991596185199782212226431780866611864363542274432985935055358043846781808617503974769753617898500565723676141380736452043011159917667013792256204595720418899097606540362717350050975042425611870145097046099613242621583026718118307311489023822081299109189185376987183053562157764656396422821279269605754181293192249572718306784783479257882633721636697626100986360061826569704023877147200766568351250361635063361619129977588183542895422747863025866866911778065901947986650834589531400379584600910701811982231549287524942443030113216800463101839263682948376729329166791278969822628476112799682493377368695213149059372505597177828272866845669195137480147078599798487042358306894868486023829180205468218162640038556493321303293967981197455084344215466418322902631504426283025994709184361979835446234218072671235116817881308545354971793691372575147783737213203370622130514358289993736468093407247429812235787865775618550148993829778581563929571403951595082227806863882754616324157340854617528777391189988832126105225198379388123916831115379839439062679396306952696619051703458417883751856544581374172349797278355631289822253863997025754070910491155633006144401953860147871641143901129903985915284275816896589387947707442948680734125808369418849605783318486401639762468267687620341113635635130847586900648767825042484339930891155987477209915298313073153336711143356057641694746563531651691526893075225830790777298897880935123440776857218641690583218511564080265856875816397390611892874567195695645923631222353538613114545220870104878386242574441774904818022813987277705673285585570917374703192157527803788635730914820346166132299363204435485042969283813899968397691590680212472078674475891361150651085515059765136366287635909704792356000317741576047677187826869295738343143305069100589642527753616532637131298767814411337921686783747974228735669209542813088954375663424125437122099923458443904692412200603589905551633108194993177984625234724362246251197752289744808825387854146259189665869803049425606152723118469189088786695726455417618776366004472598907893880958603537932847927736634796621583720477923738667560173868932194329703072237842547454046766282353497779458215116656924316356782915439196252847148573819744116637391896544677991585826263145179164079181155147149320780019454899626159446541700166370759815787233554453752133574755416616147833473748553959333038996304971607128524859163482819166311625699013931270312564258469126508253951623722405546729003447488259562072662134365099105380334191318584382980091306362960168779781223581911775464219861777912473983508071223297675696837160043397857412726336804304956502918837112811265036866711883766722225592505015782442572108636984811000211230626477350038390816076381847334407858854735955116480724262316636883011090806191898135577786879403207106807340527125451235118634976728502355466939605643438299612238787695393790496327930072605728933459044406712676295550367393816701837493682013026836919164145720781247532353895515975090326004087152488327296632202027299296697261124888972017325002604656082173159632582098148506750028624530831150025002322250700703815771750122047894062244548298563432867106163716006294236205636222922329892721990632795072501954151617623690046800693755118789147142726875206733405722544240183383732984586863034867568077552416691551601304604149509535598565746715064961266354833046198720985352938176178066835506098503866619682938963268369124646500805137593657846217492396536617303084520897263709789033906939245415169355369010712059894645769858770160525413910498894077554189869894380326010618483574638304652012335325205620443196471199945568717762815472362529699455667514724797999751954765137764822336961320135628713670534503081648586451038390799960179540181681376383199658964107784451303965384903609381856213348088786663770655485725607819748305030961571614119412143627933616604130113020340704616958790850015681971418447399231945540029736840891307435518376279386354620104184772135802326042516194153461305142661810959300823094650966418669449990976365101545403802760417225453289446108515242015435633357175814655169009180793657173730981057504520957842066408988511175083412610841100865483318105441971752726362042955932175242936624563204507694246166017151616414711643489248529817333621406691998302470787262170144837502682214058629021040680301963973641108186707251782808685490803371946952460770133387706238787500952334737786490581823900945494423787206535690417782698191579236517333247449985783207185923670165007359023702579282138511624134899164045734065929209534880212194732970853529578551237560723651963453536092664806507040399648834505743064378509387180951133253504520717576967595555110010712710429020668027730668422053050176107247524256435343945255729462963133937223113838878270747970366456075158630093977111198644459950165149656617075235152812134230740304745150580213778376395409635868066205446378499438870996117702574246671509382699438344348604770879116848025167232771505299260249918898465459647508380888865465249391012236926526284831615061101201241777947386164065981574968573066774078089522732894211468211029741821514339123799258444342358601931508819309919345522889991158024728282242247318953677808988333902005886661645370942166410731763853555579478722877387393090821437789936804076722644848206172388237707776747744351507831985945388068514969862277597747023557139084526003744068535496630324959295883043334350962365786806934856121317387024182289246295586252491331980960364093842551160093358979620205368929425900174067451147358693437079034884011585987473792916456415668565720097288183162278428359547271829792577151618157029675022845643811042434328966116005707403485993626620243290025935898045804834494972397886783198822619490008128420930615035770800062394574907947155513712485097866934976051211072517704152522332409230679070985498383659709118354951336582781068420412869237312339403619968250437453388246256917873879836508227633152841582499209257119056714662835776951929186238326377990655160289512456435645576611787540630317209249378183068763979937639834704561289309059627595059888969109641136104184703533068904696627656049354640069717036001978342299842438502318798051001956531658070496079054766728939756519151034557788027059947976563949138589871066477959381742734211712159809501297383363758033854351653216291097663736204212400178665900224892399593768811319153946669472418507049029844904795231695396362463213733623373280317260260859247268846917976151551365515365087392794652768691055566424290040306674069877597214221519894980784383989282449168652654241778048045687594906653059039484642062276095836083383152580038395000424961552967049876876244578619085783178481464473828860408036004458233309280669897495878685366975817955204646730164059361610953534706610385719624901373665013166885951492663368542310979576305328293645077735098345443163677948685364636026993199440523666890167212446830670340790993540364918943345650937230073048895598094868188553280390081792694283332462903948146265917570513663302120198953290413855966053149485417064186212013373698464409792859666274991645642312633351978520072562980485081186023971623620955782252735125895253808713686053927044945150717511944565090109132566366589082347595972153546214752313464515063246897241727262228482824047599304268804617063968506284133797822523385967370105327724156679182230473258481126576901625738249658011534376888961728351682607042576027850687070150482585075618523100992890004023241581358630641015445662921297992315069700611121895520463722873895224277993367075571299620526804647423849803775448284403562054883471472917533807918994538899808215359121789468898372960604305111264806990150511165269500685197768083372085038792255994915320822932160038500367476226579942744350277788730636726837798726144541438220649291401335487873672396398931897186542353397166582731662603333375112005027512102318138306394317666095916282843537593819752599024492636541957144445549242489872817630672715869161845340881481945662466987787738820836273206968454111085449501721940946047587661282382316163505615924426098254953522872856338491610531535303917036948559181678879245847641245332557144992990340302481149354017207838923074408728571087373929042582129506089729025977891745570771780532869972933493476191910172349666235296230729171772183436174811540193412827716024958617958301712977899666260311510096694811108729560361066048378793627560791470857872795309351503137030793581380411729773371493842482298889093875172903277460859040956007938087087021708448282116636409446513253064316666238152718500887331475841991799410488367974664696171009274963625685494132838330373187837650045298529622660025055798778814184617368511256003217530134055630684892153045771894581553944520056762994197729088254627423002446798161122312424730438866230832622599590361427221847057942117545249233348182893700972635421788868931107818422822675907218008194686824154875832042838054985008317649092521373524899892627091794441778449745889668419746188393319844660331367185844065230819891407636124672642110855795531037265483522093069955546655772543476649587487155199569573860426291226931588498864120962042773942329425980262396899313852607910058212320117352740931997762444078282298210935783716912441135812506444582539789132795759591236176699720311649724253964446362002924447486873466924755524860545635806740308426675803340700737388787698752988174866006168362656739698712358869435885460961647626577868051593960773184231252151896629556315235540094630244686562406960441580831324573307864465711686201626370878808001881802835756471128581732839751240902864848457196827002042437402984420544020938560376026162211872822686396203993545830953197030325434410955387535035177269434709813315307676696851964705119305821591656402171545741070336886389265781528824646248234903998185379474167337730286646586242200506106192646662846430383695172269338210616955311951021512148029409995416894645616912140616332521457220348001826991397260261206153019302924317265732533052873021614596240315236654822078996146151399796794842254984827139068508035477670451606856213228806543970489266916266694890251017264412660275210389794942410263478758390555150958378315759984780282412976446305702916982323745725267363363800155892326596708626252226582641473878549729218948177217454910081568073255284368836289825276561145714661010479629488518515060635355821309178933536118475162974971959727621163389455414986867139660292436179741493947803420535543574733058381993997165279899039239654669499591961787328650255758267361022981376273907073535668313383644670411982345731922433704855222682482115223641360760873439093221239128523474936965898090866452889266578555587905390866681539861285765532194198133394963971449864877663071783967391816282139642503068939311674104652621457382116236718799045743800424373192659202968744766452806386571623892598813503595067018666935390187987390650438175927030690082948115259228305038514400443987523304042842350263733737155288255533087631511871535453337729494995221964603616547123872057973801606526969270885402848048405225293711668970590125475384366598620581523754186488461374499912081830891651530747049734524422683885978909012584779733108031147151950412218268643546578141514577169798013920257224221006339368003045602197448286423516214125427748954026902995032715175801605335305723195305759063614422837932911141368712945247483980241934740214673604769920415566453597064511451237801927947638904428622700647210062747484850162758528893066181450151914467898180009675380099875912282777398758841636186723931298891695282537096555492572819217139577481066057899248160266211686389199061726388600240675501741337390293084369718837877995398487433287914039779847893009359363673530219116341433393831030150460519531715301645204740221583885937032480942553526883080861772244827527378106977198946078953490156987793684931830147347259565329031514451233236863629394715373558470130691118317110606203235255661565074148793439539795152875877916835590954728177420390934497132514745303432749775687480188215213096402630530636089207657870983158171847223630218436801643238922184522958282471239935812590425061000612084705248868895139361588964175037979128201126951328336244782236182728292063619233810164661749765307386335518683598908235917592485263943206625467346681294719503871891309459669525739282514156759392836455137201551783601264580792342274585818529284602946596483915184534298162933333236970403833465142265089029105971530736142625491418353019654124961564926031169068936984130295012580859746830222744475271548837358309868026583649569195191560747204858624649582509356255151473620465951984051677074112976647042718197164662234988985184130799152129787051439823407788841066099165788178144647017878926584629299016018339567516020411233156697062299085340866542217303865829976127609262782088203003659050756640471642177484889701774813168463295752722895662352480908627361105342312139147788821717782505224779440321385845656742613467729765905804837891537727511333075766020003798448783474138274486163771233082541344710931962870650128809615308772224193298648871173382813188671257673083574858023063499972502941689980715021373437557223051651055751780169656371427842343392018907960804051076450468702543887027725974370151075769105249442998359766585719796480234919248699217817789390152946694596617597907303929213602062556566683165839909341521124571890795759185782665815172382904924247751034415735610052142517478273519116876918101750307878876009288242627407933564572109064381326852553849146095210083531426762995353173155995741446454787012504444687824106801840498844694153679535971355482166242336781426536526502540200790509322693018271560618409530543425769663230362584006947298796463673248947548329462268108672386524125613240834831099699953137637092103994830566120433286671033845395260742865164995200803504579201962065675163555908658186874104290452178583340814290492830939972254266770374184314034227084857114848379088645585391033899740364401289740504011067211692704175083229941964939026019255713540664462361615701736008858669149761025415369809661565120779521616862985312456766050398704740279302724525988856871887827514657491840063940294178079878398387276314444178865895208194198384612547056521149947694588213419157138385455685916642311587084573377711417658883843526789487854735032509486553213932567997604551392045616803407108675475963901959517438155606568664095830301307737069286766250890167353696058032499923401121702072799394921081716597381762788469852054485475189564192884857735855519063345866776387509006048691852763901535081028884298657910949856069075770517514352666146860055705732533581388788512179740306048191926353094291795657171148227693865445702165828747854143521977107048357622476841937371248644585856501987053650364102388151064576089626126492759230811493893012851339714755137899969282294496214877061934600785433371650478883380849447570053823377020405684009209263308039120429805578842202486273584157543125255245857311790337129174925774942191580954084128388613672623061641416110178734391950949663659719405891932264147901509396996767099459473231555921014176614882590197544707275944786239910647666888744113487638431793098293101672390556580704482180931579281204079875961315087929863911929052700793262302963694593591759825008943695295965366245998990409249748637255930004189757601343218932492062210241060867036012868810702621933392192586462148186850486625651933003321700528091627182573955210131800842587429636748115588022915251487036296696843262367421311581999626766413797281576308829835505544050517915101873334484678660279707417839402319609937014035962179520767954222990526727187853101300288154990092745661485321163661449252625735855771626840975033591031901244225254259095789842373843392373379006597649696201911723281529158096066430557944330038406299935173156198959034709682039791501654599918391855075282729497673744393870355418649924232076661585635204934709221486592265438751356662452722690992043378889475432201542047417635965468209401381182482248015438087176968537580007504936738985169773122928468635329812098535956481414865594755192572454985189360921739139103071239240954691747490775330731509705287543005836243871616002403913174447126067387768295195806448179622919701903844188660095243157383003292674957342953652665912026144187065500603076185375092451510719741489693496918061696928723584364854263528523745222196360427681745231784196550572019548756665778576224678760029138584825384329751934974984546394056170542091259748840945526031471489815726629458746488041551948704108741463820495466682360047495730752405004403858671231070232799464127794784781210155315218946884543714412821328985445451258703622783291444718402566596132335009098539775383120903027425996550224820883854221723316981432165915759327608271227206799700762945682298045685879906003332433772154926762244561658244399568876232063189041843648410696403891513549914843312398315860061656740755311194296082323810673270822721469115242983148581635653160709653530518212181363243954934669823181552121653810435254471876303840344016021355144675182426029676953033832639082684216666606019888988598779040659270644403153682448515110598233931724751365021855247788319296557855466293347413292140858888526610955132213524820391218811683384413249647870121950900725950071567595722149473784040498859604057312324715786998456599904092171227977473399586774272184950373789117513821890643112043684736655864438655612860950180651375922860933207894200960466891061171693598484327075541445235424715239443109163178932600557794480903286017123509677483787380897011361560716892524250308795020186139473066887270436862847341382087696671620529000376452923823952218081745822100857600426634557258261453724484351223438108738852260143594693523269538354963460758730852360404848350846055714277969049770002686651648234435305497455632278233489671586902429526556930292135493747987784482038380726571727600426964567284909802714590001521059760996540902829666753999234510444969435389651346954958535912236598607087909234413674709078639583433451369736597116324406744618868143869467894998316006417914314776271362169720201815907506520938003940959876169446632558257148350956249505127747921131656638519145876000391813906046368035555583712714562040283932408081040652149470676954553746203911643304768141187307837754981694183504760672076013719969856094354216588595779833814643228085489440215443708154473961848888779700355135371320455781561288580282565388956861829774562064928166701153613730931690717770021334310033104100927128106062306687262476981864193649789488895872709180098235634697602285327754302822481468845453214729080458014829732652921892235016017178294093435554673772511969374944886127778807309284306387341000016339187097251086972115085785964370180700514853180957346976827391239004226334319838857065502295323659013520812653549601019850369161623150845037342326375307617353458818329118290584362764611605753665547300227760570064809336086193870276350953069744925047309090524281291497360903933410273707743057647070275656829009089081661321476390765223540296805537006720177167207232664026023169886859469345451420800520194625064260881701117244324812233006411307514102452384500176065082104408307556666414712117017037753626373864085646747095267448895612432142679774165395265209081315523196908039304890450101360693732861522013169959050800541555699349412251610919163580900395748348131891301411652123940194906297048611235493435627630653542749704965241821401005571253427329494028146347425753776133152105303482586570977729949353845075747111589265836540077312539804840710880277331408073424455240709154914990342519387987379329795248524885663048700360970681084267627202310738306061842815311426623010661156637539954252731846620117809227716210419113294871734735020853684798965158845244446246658922648666322938853308604133420216619764006272247237013117385855062723283366754325484430359426102735846114418622619775142332692977435180715057875443228269823271340607244980254259685771090498837849006157509364196732467780476555409675901220636850496872413470164375645242695725988946642013639558839656192841079476038075144169660972525730771598143204905233350156493599719817311127560313563398832794466019444197753751876405625998310983928157371388427290659075514766288624228331474714836502630139882040114764816576636202981955266135430981203382626684944756289303941412432415696160442760457648601717300839657083653641791248198703633200484749078124587768407683683066641031253678402140674967895494253842366725165398681115690877245061085260982288556913429921718388970113565178385702653123654047180690110286474717167618166213295954391876941256053879267363235489215791009016580042511530453583707238293210442590889308688960619660465759308350258551420283902934702120983741324257950508134103580282129664133420855307907135433949812753766447209327407570839148386009130084175644746944277579456475377383327560870499519573128763618811485394049414414971827683900959298438154690715919469694795868465663863485088255594853105262063996969385691182931677482059681242962737925545097802688978624192474025402287870226791801509087887418612749665793926704393021030867050195157884140865400147106073545375873161487892990212662754153004859316814617515951496804409865517982968419763293712284499217112659513111663870346256412101285562811870449978639338779579976417502656949890816199436150537390086988692399012931986666220128577235243240998589337327030147542844882576161508204989053786715741392271822881327092066706729572432874183934190109853775149463592067626594474488893321550177409920676019320679459294420804025586353093267158392602741086225877565089292640136035054753621583560231882263983535020948051199991850645240182136636035053111396205568374805578181779458719262763004370050833425941381999992314086405267598077492959310936765101755104034480468286728949483238959938366909854798014344356405800301235103091043197898851961241570147859395956397824069851829058248003762969746621567199135382571470950633949534201327486440227228194265186743411666557678569246051399908255744509905239921546942992583931356789642146574501687966031085929161427230887930233570229316472775529039724900781300099188734299837536789587192837186870384706770152909400917927453246195975045232510134539477347552465410747202163425403825090723298382066627831746701330915451497637993233484489619036429618430474448569266883701808878014747530236495306769362128806864177203858943242525973979597224903306029627543361521567701244884204225605853182545880823986282903437161601410434499555427423551060752041441169344620878950928728740329511901338729009271979407596319878776162093318963206730063097318699459712315490534762981440363531655112209925753232529739222563914209246498463414490437725234659083030211986566362014640062767301966297131463941164465162881811160719347375724745195503263587701425135071730775176601617050959818975628109574578556647761503144503522794271849464320092101299903535568978714292525545438106949320800402730400103560345476798346908885402201548345863357081999367772041643091586892892978005972469689994553436186296348528817947037507626309701644427987300327468640223299552631498676756892380049565515869016334122308556903922420006624599512694692600077001940798970992462665115192337966033815285112398258648812750796832099580618591390307062792801611284953162938519035021243116738364964678696630436970726748386245243679656972245152894707981075758937680245472906664460564643098430201917057786366969286322723716733422515362752279246472266448161331031331754247210103530867519715812277454534619746776336026565672262064211473025889011547653788308173768314230714433795266507993074819613801113888648291259621881570284175427486619281774072553706638598810266538911656424200720891471148325731030854143114496168031329074719380144725320776315688061102698797647875244632787414043527243084888157663245773643623006868756977553771107055782688708871144389827168774602043401613963408418470023528057891187151873450110691816513951731848884235463121332248911595918767049778384565872686473350446305394131460947720759106858292138239971885880786673312399010303884751211950593349716950466968330402580114511379279599794758117591447606637291975153778320027677373440979155126431865920111642863776249465889035662226226054358063512076883992918830753041383028026016366428181807930466887385837469303196114629109965600341228730790853436244957939633847289376110521255824441995585799440454249163528382804898049877744632704654702866120420882676128518310658173857656039631631267763010577614066925812481675016215824247213532958732421226317386049180073386547513139984532754334242889850628328432519764098351398545436380426297559982626402485387595689522261909156332226831087277559025121208412467408801154188028725353995203429455262324744038184891550533006066414212181562155457952252263387869700638207351276616803389105045751012388705161288162233647515626239559749850673047349221092974220068489940904131342671671131815383189907774295025009437715675520693539026406947290127792434938443173246416111957859672660633180721980256208663760130414997703612563691563644435510999102968371968448478389547548239177839227606651541138836140241275185360572544087037782419101565662772844115590495928984435044813240535356136587062717575941356550639341884953832361835401633701443684247657742130517776227257205454222441743845625322957937654220348621834009569839555183722456253525624656953481632758043643588083124891197522927104384047432040980184107243650892601517329949038742080502251429818722450055306043824437393238828496525820909855122454653017165899416520924017926907359206788224452253858904977619018041883476542353397057314023265879242803017476587224434846836327603738695273230890491409311725764105264164194191376997662842652125878347934462007263613790633760034812783477631452811000190027945557939569899967144550761666562383196264994796799523612995294124920269032548675786001780382567308877163162393347023424002760434598761397066411212934814321060192892090262262857374016049102681521357007412972473409665354331291787343188619662929323144496196556197746246134865966995162002920531383049573311675730102669430835797374487004861193511999516122046344559173651384074814750094052068895271788753995504875602563234985013905367197973476060624439599166477135899770762401570031985549036855513531843867609377890013441948774938062980097416766438942163642822475225900620179311988532864086137656670801026466259363466672191814833877764389207075812384702849030551099622870367092982729318480624379153776539114747098646241824174395210173268451781531590999639761232241246608330437530249225192040339508154776721402290530416479471111995775502229873204771500634217985943361869234997219801043990721837696001022857134906005645806924968718338422873937250388065352760157395412574681156562429315433475525915216319841904194817763715894508350879232945728935052608520250703948983760295659721017372102294946119957629913232161466644509726045544623490042830874648112019120923389224282333152149107299147621924397849394648421195408617459096114828963306214227668413176066055576505029570706045364783406603720977063709648293236907533931305045742418988962290797626064613329072175914033913885557169540829087524839051146933024505159792383216747219180590991215487064804264395213333764662245086494604049912826469237393908222163872342046765095132708179817523555951230971657241996050850638926422940429273458813040189550769622370199678705292250726545998883059917223762466968621055987195392897654181094003268175294130456085635623371756412700748207161840587595526446004874936084420071821549815158902084775430047780426887888201292449229001432354083736999641929804560345597635699290849521288322677409094840564830207256754497627210281107819846065724407207617929559432358760167165577716466438622902337971904200199276281215205224749102800597736101412304524052161448888346075048058168719462289841456017042594614318137865180955621404504684697927952657757198838238429667135782117693554224182140906065074445316057996502433224153103175765359714349508177701449301468390157166323452780079658667355776008990982558609956765141673530839010367431259379142659249212602964223027255720059863136715982902967607595754393548225837040754504527163002981535025284291416792242240165161223111231873845233452717713742424149124871766948032564453032359035824684953429229338750543069502561022367215379319102336750393974547449178398610745917515626483911562565593334414067492985309659947492852493924225249039608376992407036048437502073855360834281762336684865201918810149745849786360920961482109897314895960723929732417028492526464585172249725448068660477636508394841813976622364652668036935147150903338934282460916732771495408790622296150907771814945745759157270515340400991943839556181619546242102872873422640441514666730619893994817148238327978782886779755841672808829133602271943108206863785453301131012079208104475571664419883690936651863731232757113447997388956960658853948650511152551158797297016250787083907653504344167907068591119309797605322092492696749699119839756254639135429735930823281943457711163823862739608506429894731360423667560639617250185510995761555035777832671091347799824835292494094055423370281218730679797042934215080504365914628704703235072858499215665111198247073825178625104026680350243151748511612384936303443913420682803068237215868286470210450956234283038996812953674891938834125860035913386706680353504527625100421064557449348030849620828205702768505732891791024414539023029010228790665102952326830908273701229214862837873931303564239185268493570392065716883184092703706892853395072051368806419929251204201866340821288017761712598787791609364383661405265873869531894097110881463545720485520939572833995116067971415821808672561423586612646961860820636533039728812756617593282648620847211600717727632263604481158236515914634849474891835032836411024542581275392303150722649345740814292704362975443806249766566109523628575172770514232219435031906312346998967280426648978405515305586775977412866132551018711103837224930475358839878380683634206807835075908164367570604486092296713860763607365043698428179069731519288404989298859106406893365540561773352177173981377328528885350582960706138363598233750165033496677810188620411634191799746174187125680742108237987324614953923732511234554493717112896767596967531600603606786386727455794680127586450314529691215713759202808702353408676277148684899889590054472105099344907846636355219736566225716712122276342351400170861119040547249108189274423664651392917331051813046693843591713198511409823421727246123197814109542295694174082723181395126811958985432034385081384121236725815072253428789269808360192617251398354762161104278854273081196901846362385736895670865523696268168681089201936338499558182924202180473932187107541154555444384864986972854046162440586664222054733562943398042496845383371817846510235217872575233905851650686771011214502655660080038745406585428702128081045126185505872378626125571090082403334020867577589067228639925283853441855699537504870911486436565655601038289583766702131131293061013395713195295300250397115396030397881354237905591937690226414879393323191529495544746584658030719544470670631678743216176544165743145864227703218259231272029596641010969467278273172592923053084272404584515044950665965554219808314133348922842265602871006110903212685145889066142244424057162797250253533172457731488701561406178583375235222628989894527869118449935070592560414521286132189037942463098934043472469218907734365862939315199557635335639440948073381624881868685280871806039433139112063761612571580760295862003049740098591838543554070584238717173310634178530745611276889515524575427087888683184942606947507491487774032158600877259325775361705028116795046285217762427236830958767999676808877231168771259193438329039048204170631157819631821498527075466865556968180457898567184302461767542780109522060183499356363407122014184555725995234449115053977584744982935421767862300195690448512481903412837956665907071904308773124564532342744665733476348249817856479168937923675057720339799779443800075307480239099214912916516086867151685826866835115516906213552639317437235621327745460460974981074432992904997704759858614128588432944020226848026351066123766020798005882221798928836458954964724542912225708691510277417789172883551570469236308003971126712701048803751890600836889219356286597685554123276336985918018350377155332385082137534137833849276510988300073578441196963770391054785137454182003626205912752713405957090956952132806358470362506450868998981502439346662095989648043321089079605501614913700266341444837032508836532291224926489243382425824386866501140892792252105116443128424051158584537914571298505933232714391055514682204863314659246529457798495285477394768766042738008327905513555235335368256198201028946835077843409238198513475164096293748812689644522780382245461205585205876774053105801967539329481831691083734852137368608269259573412190479978692706209745281839472866989150722322851523348740937723908309304786659960008519718189498603241165187863865803014955899401091072429178770405526943366982740338510467371085652183544654864560022439920970417194698265403183689418638355088288936732550825046087119750931679274071312331674022420003739047752167052981804133261538463997188138563660376078091221702294825924276319763396488488227235244672445627765335828846095150691585556846342976999929478898158828182728649177233298689642599243003023033152148625410173928834777511544152445097277880294407677101550256634413828147605000466195792395159480103716510242693377715406595367508221076361886134810190414112282055399454133637701115892069905901584447142575344142413460010290064354451724896666839927162961966576922665910674038702323950160318254197184751294000349913198437257496976911157143438827088163378392559064935575088461571392929093671500015206019010593385637996947338158817586389199558876136850777370970803244582515209666901416827938320798971548334975563108593396266763920547063620237641295950707237859117298324630800501810372446714609646212022567611029829297052535464401735066499001743727066146163319862726478119247162547417192156642237094426151063249877750462636694474579589215401996401980635748234892015492606379951267459558644116154687051803447002262399486165259652875151977697038655407376563811109343032713059044114315831821471437584105909759887657791703662949688856987999651953106351511880282072115497228488569569449798795129243295954175614823743120339285785407661405266834081240237442509115617556655226640596836392542379557905569602904298084804911599693584860165741120626965255632993275627568050799621445408118701858847244028119921618780684121810920959880865908142327984140870159574455170301208440989272119627204550927457529251799212654921671762201786967140621920381136122483638415440880977838982438838241275423809482335571353728983415641226178113072530567302589336495708165524606999929729908446968146789118742876906741320714566172766243978454532503840694059139122489522733468070731056404847006677390482298713034390047731624360869908913324000419984640843001854777376495407467808680186860273057166958166615222801457536911025958462985730480375038208253855966350179512834214385908642120737647988920722208491827569400167609993306569686282546670208007151197745590658514146655032591712854244702042961153069205945987998390255195652502305581339421167191082690959238403097689737106116892462186756746438913207333158968192933678367357459737258167466456031595700178795887584692268521955816079483981327952791576247974127034689124686578243445963862835592350264098202389359117863648074724576551201221206394210897748741281322182831462982266544932440658641725997817680783872001649703046533917809383965936502124532349383923590824814396169585891523665391760866545452243903791370454035283181741645229372218295854539538480313718462054828440480386695860702235256391372445471428715507817617274555952398933112406218036327771253402164628438371841962275595971916831791756394470273374999120471907158935320540308383309867683788909590466594334865158600720013823853407890010398740879725489828778587386979506424264520289334666372270733674143666655719220704703407568544994046416969033975593257555594539397158900545370963799208907971037011792894972725209613440759375539596481778756846053726308629156303982345264610364694665573564110515789433948843268089665956279590699460418269281715015423307099233080846538184085374492746163399657163699871451425804875926642065247835890026612276578277334053988541749392894468995840363018848280102042989910110772176236202543694410066973920118518803309718334502222139402772944805693290354016215160274056644183171987538259232021014923377622232350340289414941603460476714150615354956931919120968993355036124963914410667807127370682580941275381882039685331783748182435515857016468112651142911948339606887382971552210926719343005850726350422850982431849038114887623522957766531484138598490170175319914689492547799276664411708690334275502693331793251738582889436357460174631301403090655708024468879881122180429576218880810689486434898443319199502639613935035777609212124052188972745917556840648458108998952917926890117629944059271767594867243710411244137345045051183697646557990384604040629754668321887145914473022934284230301684426609351310158134106081728584310206885428148663079173970860732329776857415699829344083310846127538201041328981900149274971049821158228625828544353656509933098865029080585667100649687974433905552300363909221380960523700874314097324933108533713616988920271826937073793310802430972736748378135525732597869128895282813556641561649020617038701512077329491893221169737649112634370845647087469406260285538260861457072704089244772959236663130223127932107159503394248711327123959029751414738967055749297488555379116091188768476762267912975860131710268493137506761399350607224529323965387158929547601587574181093384465432435212091166564715123924582147573842794646134589080624722827932710281070315637870176046475645731849514924518499353481969477943371392219807503406620168261651640913893986710055477406561305581182461532127058715009107614703054263383484795053803567876368636920235458439705410396909879160200493493010216721432394262824609508828539221194739357214725033945288242731832919534693082311601826214877903029254993611992963741167154319454567665872359377399250235191285713031888853875533820981261877245774285597406769558465659170472307753995373117275236662461816340008837433246527261179456338814494635436448287450224735200673641321596212521471113477528087771797953158727047116376629563646666491500800549039377383635639992179083285472196522057318590987067298034789479723821195422029127091279449763536661157193081967556196755054025498596820306927748105452345866777129642529304119267725748475658972157700076200923996921227588614632502807118955682267736024003893575229530870029654344964932217334312054051491215706458302370289304953902007853755492395995564774274072956523932182987112032753990743584630349262947192367539902499509568381911565979812375134309702367313268018131144650824430700826793336287536655827889105664721692987344548521063821285864148304922876606251362844793359170386433619144071312461985284806675200832864123058346539816839842869960030944836517402976239707122488931730950636002411788894823291234636877437159808274842117999269265317950397118206616930947911261308398188442958768444733155603285877142921536352427294358345112868473503432987154112499855390634633146029072932553731135765283718310547744393886986465083632771931615906667264404905022720004249262706552928061990479347467666144048896632069836383501121882476726439207144861888701175340878909275563879433575947135282761975921948325297204455777865729536660603808451558382551288992493403712346853840611392794546589333223767933281496676909140302132711820257182155616519381312578008669103078192043140294453292861875865967704720766406240613588068118289718629633392223887008177342225924042602203163258760706146958275144436885443347122354444663770083772015514917423404873939805642197165723650263485604799652040374677933083056495426562044541992603268524561211415654156833977092571532612317802744238092384755108357501274957711658712197820511486809900141643699271040096431715286295367434636778965936174357005926595850351605275880915441282415023197336491260931920291641191663186598847278363946059856864439371032531895099309899796791622724201160442294571175856487298552275998790004293595156220521852268416933539362267274074843535690342952103302727655135641722315948887510833407067511929251866963819246790565173294765854594598060830194956140075793354043719472914578094720575818215585506775538333093772206928797499804037029328402483420384771103957654742188625706555840964721616089861068361944941959163273527065359735302936422181391732020272709701085986890420457086985105447663286729777995219357382373785414373232772985769276699238755976475959097371426635247733591015596505174661474053572440615281470165131596586843962759477587058112828564408038441638511918261721342660802723995337814891153404302724338839103221768154646126602503236785334634227701510855900516430245415443256848441820423056391748951472530190921489581753032321434153751578471761692704988325252090393826805697600474055351879669628620310035442838752756114909617534675866750879513375521312010837953999037913346831945965929281066819679951146952617486187631941327088780345060349947862799434684961043521094038072905160959702084475144736683546901511545880604823893796560846033492157817852212287360170670815784495766635958871217336729616725557459814195425992188426622749554332052359148483735436820662571027507937847593489242305241173407779489656946996754809306129602020725283782236116219048445014583819506735195360155559932926129198700974044468165479361719486299345423512877577404928424290439524216005550577009389349688382980218179101973160656285509611603908619836928548421843610034999822272913641178839918074752020944351597942850376880145272555530136003191647293030591400492141157489692128584286368452942847202309060416708550954262752551845613604034716442842371850522364666167059375148709934102780867381720660197099041378475887161972611892633813310996546193867285407628686454224278002811311825663596075133800322550438698239592468263289823168597697010841478954336146995607623075491748771831263445601266902632503677373646378779718208873392120371274687147802841647552106698541267640997269601646040362016526132396613064212205642674538047268169671685829396567443697696433012596890235775998686527775609103298157320598332892160474695561470986648691334977763458792271975583477024573915792614276145338989594292303277617942104233433124983189305825528408822142771469370423864417015944044303463085719808455255705690895717822197636634017675564448922436445439122687470049918660748081303415201670436149534607203020542545352346640246805722859121834591960583671317179487226370602663862447773924274176844954736893667217026757598790298578820655230227914500231912275012045665820191021352085096380935419804590848086233982008172541348930534375802273446082982366867165557402224920206596724847499494928897353831007230317697244454351542101315281883397771254784080049750649712352108870580507740759200006166593249823810892933850325139955851769377717554806111109291680988933902605606424844121137074134035059787447970894709635051350184929666676770005630546059591144736190443360826971891248232864366521167348077321367297074288295771264361566831494118571800731902665976354571371670178896804129811899039715389818068649497994099821334467623799592418293920505879055428149452635775873911752951308849034088661599184251467015891123064997431571874329621410305587784110821631511257642665263112427123702443876351560608461123973553189263413787801173810317903645617455664270706865115529667128573754503748291595424763030064728014077635456276538063358226556647122124254864424705955856814667807144976156506788954092352087724379597828771459045753079790294679762067713911264423113857627053125771827464460590212607079774600139261512309366127923812210119659032108490273428864738387259744371504859978708445131073907463171097931661411876725371777474416362003680461412070368782644941715450171893230774175745470906030386619741379532509240543212431403957974004750237990575453806103852154329512293000126543452726888693377875307981035235128164606631203638916988988329316669543089004720351231510643070269673029844065131495703735247736790563160249885991578503355635806906738804139269009733021075907668969901720900087044418320969214411552166711269639670733131550564485711456488137512612876796454735702334277640882528368331445317894707556311515859567530126027195290015158694868007563158113722335025125760879631858336201986758228985252062823365630431072867338479464468244184840076677305012694091465240989315417796502012816789375721104403451816104102883478059114936605760082824722582007699231456262110158141532442297495098091539617139588023438899704958967003247296449581726664980336490246523809981779491327158341676963222127802811338627529952083521612497411818146111279910887611736412806827367122314316020238756802729458383679911330930154951544013364768683715057023118284637346690790956343213326527169693510940742561494337481229890362158175199445845980722367142629502723763754098835431541601181837650216936441198260110201534603627056135130281801313075650554409894998619855040877698985693661146314262397229210618187651956671014375250175915158825598891019623115889171428188169347983710352510492107090215323308844933854773425763104545649270833611819447687572595095369201834319233176988353196155974338941709866719358128121960068498930972080390835171097833033690631284148528437997546902972466474659825743428027400866329247379209498105240027580010099549769997125641650095340287081906095203135341231489879735508173216479700606856171958286306973980064724935802165374456192396049413742149853716936047864223096702076438834467073461366274738497276815508771062251618860771963540218537552207775800333420154985315351370023078039301727804118110735795246142844967920210979966527517343295252209830292840963709402352162624558290665630397232489825501429052675361895202007253552632527246077703690074546967109528708441771145850196022230557887382322748367168221899542660674743017210045740321635996595498334775629583477215023250217993938281687383438424032810938084920089653187300576489987977869907352570389271827808556613453515161653010842425157112808739968149109396080044617474041431774294193912693481016808456357848890029807269035875033603573406430274918517668995968679781393459189252403047755132522806098180462988615589891419213210271378312454839680068300215411501236576538807849540991725930995041094447507878948787451619740461794055148909512343934340868781665441421000107573066882493774588103062114960782535172035250017140560915931446612650282334996026355740926138725329840605044905711062379562864270151216650445025508268159195826446374074792649855006601731138101509714850086079813608260678408098589338354921743208661282666382005786187791170588082690935433545838015209456027505462692068982631718324321236868265112402266262768435687061816087929141158287764044033377795917795997915942586577627382768851293050851249677075966750808812000721949176306043942492678637454814604273886852577038980857922094756985263718620030812293885668696748328349759476846829381742340579457459137267734519256818860347502370069125727420985015423730803766765697814829883206675213024001580150618696387373575621398752734815863944618984881563177315579087382557128695215159060491743459996263248015625683634826942032129629790515300299446023389341058658409006094993477600284166318039957030239120172564546437688352090161298689393339357797873096970760395892498264832551301165687760679614050632789080488430240041810542727617218300922124080531811182265956579870168712925128668396802906195927702941836986691417084803154266071628292545087438610457780265763248521437799107757231089310301448704869463190145097933880379467275611613780593977634813377400521978985639186736023972156669775960034390447175913906276472441124324666359853929875817843651216747126574032636067593362223668053833742708329290388009002268319983651454385910351058112163389162384349705640112561727796221805318408934408589142470565600185716179913257197608201660899738599759047042888998853566182063119629692504208345570819474256955993697712265244111785492920460868670279197513732473702826076560662555189531277528718759358732246494151264979079806544204033324676788724544644031053674318528131217408502981046339714347346431725758586862516381113498599596050556716684939322527793071460603817735585299145145675001857914558459000321496105739753710465016653314939898876414898869509316636874698658802629629596844251827643644654998517402850442993939275512438248934830654327636986807746792592823234287809083168133610762463799244429167117864516959595708846686783202709873317171367992479175195368674807410086590630892950564158913005938899563852969883430082838437678886234068739490978581156801321756856379355389363886444532916646653228396796883979108536354617921640685393898843339992380177558352477684735071435797465352726972911373914402539101225902795093074984890213083989573309464296680192754514048997156723885823746137473840657173668910271315188129155224003072562312525428594940267533265836519020667902612454924568746152432341129494980380301390025510572820318870696389947715923661401896627182712638698029863749415518895333157469698272634062475755543425859177949179459050427714045857788999321640633765673457540549618199628201228452410841073743286132719454172058803955217913656318604230833519926109069324578095523347438581366619958547023579276917211129070037739346021195896831610277472731104325822378602709513950787236756898388433178635939302229762990118702989451729675401971304580536213747502157488348195422705624708630645658536826339827988575616182745521599127123205468797674646690501868696595893796108977337906182110019378407151758224792908887842539252186613293727834120016505322847510713737260209929316461541665781782293147280831369711148633629348072963762959293453303134049786822184383120676131876212822908822269784293949923868617350392421898195895076917129788242231930134950548552291290883513568843753752591631991205727376958267328290193963120493951489210648384769163576861069644050774205050645256641548148956135152168113035066390539461595853865684432603678932025453072664049964845966650269012016056467541233484353700943230428603536949824498880271405628690423241842858454529109683570333018641867043652292410295792938847877977045055900915009676542572919227243743102322056570066021766756870608046515631200743660659528258205874885245329303373786046237921631991438720553397017679476695520759629737082518028089248651288345074673273538096549666083744467442219019018941141478880780807551910330277409141402323213232659385335513579418073000325530505759200576688438946795510046663900394851792777976828222477867563180436315989153126697544752339399286915971670601674741207198392819082038633314930768142458081051922208677808094692235892459034666649655798587272192718461224476460340367547731606669059660372419587225440990143429176990353027099786328038187263170203344612738592782775284916636014587012322239313080137630334306503160006964450567994953051450633845687441829772383219083556437457713759388167830818057541128698456393657559088695389173887040385079977449977324164534362721084895205578857705465653579857068469372633037912656771266982265293353989229863212489895972780133407718600081258644747293295433294424305876625405353120476144500866987990326936165748067579064243668672822833408960407932539856057583753745227839588446661776478069175821929598387715468955172563668566359821805804286223343174909945518857682337935321953577666023806860862838325280134290481908500948770495216730142484155254979673121869828951666155443700799586880592114500102079410807857261782901730534440022029407050575325885369500488397183386202678461594099084354895559681843840846342604462368778172707680409143941309885163504543957850708180153660615850353053414193559694639353260038474428839426535166199819023138722332236437399821835239828127105935069847107208255216831084338133246766041322388888976397710227613757920107480306185171733523531827104314249323580083865643872907233001219739372785485029743753155138780599039910616830137278376530467962417620543624560361170124934097126340350740778000490067248683515103222980750722684401702470844289169139289120730736674266818227668721410761507853972955992177269594897675385351003969222557237816319968651417198514983566001578366761931508216996420610413396938170010985586832484939450013071819487067187365722292430398194484990729854409782225631575169779716351368045556009121387148642347747306777294392468408819172045346809121128861467797620914608548357466277659626589557070816029660805621211733097924528103411518101518189748751555374025119822546853254456994958588405136416040273843029165264318419819576492434502152774004013246447770550284743259440463734342762320517022893488946328935329529494225858111270808511573499776093327201935408728654908086594396172426113451984030756078729957592323431018095029962345379686307533109394100389655439673863456153934155123762683902090757553154129622311545547138728659306581168850649334910839601882241747302978450571554319208966596104002971032519648827690543650628939463905768743512465811606585552503242230307232876090375893880185862957409540261040091748413101624353032641858089299940920942184161004082976869184958865662326644710206644575694932217417609058349858330252183279154299146764525176079611202595319052844822244420777080797192541001595561895602337843136213374512735144277020279709119282804095004593125589507166690543995037151874315884746809200107207058232718744235498703172258728743394556475567110543117827107753593519469285570045790242419894357828133122225041260447402935746373436386447083892205483314015474401618527673641891470002720989745863287546716791429234697503606966583978972895041517472998232902872721493273699199687152996361085144885907639503889280476860389164349773814412007393458048617994018451526967127295417375576027881308893919087192897532786757127799852724421084261302278311743998941402251063658411135067988686949369453601144597030634017133987221154466077176277494912206911032510185209837564080198183813247496971327456448049030815684540875873587416241163024370564158816693468735437406781343577107633450874973433804297747538742351080542591357395900379601850548183509885881371255840090497153172154977104457043401976887411931667055898607191649210227876790504211446200581330351225262572200445704073530765838069709979859943737238362223954346574030194882779918991653775420450663888482317315703658346127345869639960892135954094519926252138912547290766824813876759939573622065460326717651317580357600649738151631474880500471982153287728024534498700906956677429515247076897606967942771578386074218895095386366257982001397528856328223814213897223281377892465865441266235826290613750673395029191925739266815000878921160019725859215661190580023206593405793280572022631893965063205822134462332711200556942335542720624842150774927694223924726731400134475038182008361198348194956178982546374547131695484427511886643249779606689725212796467905200005434877749978094318964892551699937840462065740379314318146701345323487995059607580239218378185240052938451232561067210042457311136112727847644190602161927674272670201159459273201063098369102895052720585310871857111253537455113016416040649374102406263542224663139196851522012661601927168106781801756168088710837005371116065200496117067224726197638347475671875804022392785442037892137028798616366339289098664682016144319226909510924069563682567698557104038489340177027727393752026189611720508452166270918184174877803271530345639103417219583727337952885058203629624132252303741554025413331419933098658285107406739836241210779763064768723433254151131824338428654345936584292536429005988447917922665950772140749980567858479088786562082301354375440221137017036924057649215975684572457350072113130378960239567063261721366243003278919221615321337853884031709155585595822157456313768574527063403151665914622780373623252993987111753841158232468101648804842592849222538306969185073855488546344788704346981060729804543793389855384749989719828595557167644107254811590856248864773489021327895453264339568965279110234595279907039713604213170702789250159951641647583726167247119876887583963897702148247063979462738865833825649632718531916783725063441317040755140458362985588926791716132121297581120505869584918481148579900029092778565501529412810734513675635155353612333351961060786449228994760079822323603847074093125232724842367099252330299480422047202578484932070022943764829685792201666393443302130557116252451890456243254882479703370128707003149175136424059393424298005735016244643494897729833997334786310594284140548561885331533621742241685550565453260857128086869422613416008869817685321796480566804845883592299418706799254364309874921433066981888499365798290090196169547670416293729185080581280930305200363179335063785658338538311204429618568548053781615810345504220473116485469276358316427285796118370780409532664713401822534631498317364608686296206413612534523075392505705974136421298558124777328645566462269396221487333961158459791357690258723629166838773808428449408963303850856326775276196824075832433700782119382823363185342251328423424530889809631240565872391357118024945277292407199611473253762776956119269914732837858623369661269157085761974151491000121635708761408331281770383259152314747954046624445911141314753305718250492369131915770980981598151784655281247474466065658014002378538494379856424476167848050665328812491778003253688928557545468040201504010279511630451370079761013186189403540101198322792951952547599201397229347468334456547423298130644237356951258719704515198995667508771909848660935567138893101798340167088104917179000531860834422124483727521619478255806402494733001994433834853863967634963918003222199160750359976219206445312926980086181805341499430464911736312668872863902387668042804314493235327790422328677809109526834168944899262004189257004458219161511095716905615645829019738578647808235245080281750068898738021756947688548445312114790544624021367295326763568584698820136910542826201517123737474841147874916811583212450650252784107015751957060756681573760343953717084610556615754549891329589866818700313335356533967777059645424005476871445907744761315453051276740384116359756868084896805579324767520016118535765638503057573411080980868886153803229523972657328794920394814404656415765378416997293769959035787136048517882383040740125330379321970525195559720932489857715750456363784695687302171735957208902950801720939307213120213497008847343177241172131811410952573423680053861150273994695967048507795557389115005546390328506445217231625646286884225507192547618115096404490223487433309002186194531922136528725078035783280016691556863061052875986535846179454602668340464725274806642351464036976122776223025449161200490837410742647170359622773845946731808395234799071428060113949784556551322242237986784101586912545916968105255972499794080052489933783876646922697956457366773748728736285961535144959510274012951173557350000052450573864917304944177095423123106376591764342413340721994966285735359405586209718041113533946003235803665843764761411816472435574914100768972549341458537332491963362937951743410212674131370826960303812583660046076178549549652983684108614124647986900881773468708597080248959903555263503945268036701466262078037765162746485704861655905803937189036053993024208991111296534544665263644156396147069736083499856215435996843562482507524428568076747866097576656347383712230704831037553800228210333035340502372594369203248681079793420361469650152317118898831897427488487855502694866693977656989809089446656010053303493823246317315412776354128529876507441998127150841256673518451174905399443993675457404254298389560885703904557845097651447718446965949724028929450596890691333557516087164550150917792765805834539112898805372356995065454630776507612772778649535496272405414139468795126281925311981225699562376837683472713623857601658956711495609536234415183025478580945331047196341707578702144485472245395434905612958497549986900112251983884051297782582187985089337248104900013613094189689279711706627772205746160635313972309085495557968802573296501699854706410695325325720073095420511165920289937854795663243119139246142609128396341217714454697625480141019552357441309482233382842381522390898030865530691394279332219821524072912249556442410459763871228044159872719847369136331595382056989110847097270975599531162493784981102443847920957137239133543298645359698734836967174462327607842393335065766951996376640894545701755190001504514934038378017958042971079569239484267560189452890471774918720689351465463838187619603693037621136213588243909477788755139427256473354606029935934646910426254479310205427212492156934955020518260054296218211043786671749029227965937803228796042143689736196633431962398548254302957534638748321947650003891863879664460246140073099885341019392967924750080077559729862213975192068118484627151938960668126185245482701215135011897563374095878892917354249119822034616590854811688289959974975956333584906474381358578516624036735386751640542365351886832991248198100862505006820966027837822945104163362230391487948136883218678753000360156031091726892104169361598665945842005590756156105119158171119623584032486523409721654697624890305019233928593710663001485980969547831933544754292394010522910323944195686330890200164039683909604279291118544916829744024875291288990475243435772843026285377804304586515116549067018930542841556594862685204022237385307172917165645310867239898135316600601063312117334200890849546957726570578077576627213039760877449152897333691194429157082461402830745500703543004770531126398839698493610988097332709206881399699505284155166599823093701784539464907297334122457520624483084722154690756318200490271651612677024166583387837864658927961120190921532017294794420462963368001578849024355876550731496925251573489587533997546841395855479718067475431783606461360093233395550344831858604780612003391939568385613539884823312391450931868498643077673932249545710301283557815474449414680892069957193111126794543487027132227106021492340682732028661915942007725046591908513611951040133761259915051532668976522702761179137536726598072920849770409970135701001209935579067874936986572701436112522658434429026130951498299125050132003917022945465941406909427691409087517005211505403850782080582096683036939684466350492812301566787655834215453231596865250455991841314200375826094450668964872522848204158415380883128956635797747788559019256463495379845424077183930846388267139020871614637372270616634599046018098570594776452441824859126560780897228713308498948141477345743075388141694469649375046261103349992859845060745322547849146873920976318918769459018856560977827178272329903583420946181347864660958519058443322766361274911846860624022113808316883957486253559874223998096635619777312338430296401186199993758045536439861281295831333040489098823586824579786172255431378604817091300173043443057376246598915372396752835625013373080082780540207588204230193836788699673637807401536902269696945586570885440535127294293170358737828570050774248988394244436437241119013644665064290554322938705589708421626202289080663538340940644841023585722739153932785256076618237555661573012544500139607211404844839603702983988184498580900128722715531241032244722929270626739619920126984593884990406120383975915757332778652394745798089560756552286613261088637177231991539331035819220609250913451495819796321923797082098908223144991675363693873877063321584914816160572522954646131409385276402949173799198697004436584109724296623466464674580417092681564526630149705685985224993891527647209691708765603383183304086919484607943187565161654865451566001006952574677712223295370866661088721929438297999377065019861809596022516390958352242956063353905879189308678453911294223018659132791128370028072746780012588346832697429879136523376408631499676138607822123796777234609720167662192986434644158636032960049992446367002009915891335356759780441224157930466529740919090247027705824592402151522458394764275618557745246398410872520714636014376289010541526622968082611834336267094674531179696501576110585892109403657207752472403374741437004285364416283197805844553570244943562167635348729320225681761051669782433788198647650784836123335159712122794240653491327049274856484414836454664347696307424982046722271791242376299352570198290047772224578621176005126925360018765799422555403903565727423148461089056959134570666795202883278958177184085444857732447974145274337330341836874990341111373337559714468951003897631666078127486113397635601426271409548525984215439799440301196898659402798310162213101458974683954183870033424638589595769870497186904750281875526414530078261258725849691679113950887896695425267320127192257235576809617197847612757081557138063292253634702946489466978927763802849849150828124877700038728363155068981439740741905708801493750132458737649339782476765913115174742030239152335160945994000824783920611981236012459348858361983734401066121783358781241391402959362777783671469896385295493654044972924436245930085915674861409631917560531670483573069360761317039975409364963419035391829028858244393318960202290995173902579546856434940195290832207683142440491954599069703220403437161706652971603248015283008590201401694394632970734069910099648994971721705771592886553442367646937887964027873813737456610031250465003164476904176314284492476820808437682542757095607811026614266474619330322020865968236780917235146250949876445204906838154330586033116721080684697531939540765787344884720276545333468729835329569253682976371676642226210868629125666314514318465702328136076382678657989640624386304210173026787974755558302701247140369309121211825417814370702911127441201220950107561646523493372010804782753547097546505538114164985595478672057821073990920757175086949617943508357445984887647435768726960416296379696456501436895139457601982510398507902893517985823524159205160664890406072743155533003425866017708369940826021557325945612843375834036493653845035328815537113514156944054594138994767649811940091455757397241785148034145889265573282622529932460040199386202456036683039756148035490042378507157995914412364012083862299446496412809640608231206294539036033782334418819425751112536280527072677539072927765478613859996155431928861044841227087833275441721381676742935295045019670027079392348863412168700089732845521864683808716386037385333070153588621489876574120118651269347972871077292740099822176624253590631055153711685488840389247816152705045645716520818483837467874220193650372896923053545332089690670740273813469105286306820989623678365589580129672612291951250441281494907213511613565176071459692957062459117755110637912336693795536186791198161994146303269031718868841436262353953366092555147189105422766709848981816816812620416297502842720807067147913254364349408258123115385881872713981214926159055850604698009676640067384576892040936987867620281925788260411547481908016809203986879457484861569479227542682150501191468284209413951046526958002911049448648852404679507322637801972432140016124605550005295191397230872619143767827934740455632837864885413455116596820916077427851138478438325758095779239180684623541393148327530227067093142160568678046151871019862131055978440841661392975726068511098707675215141329728720604411904032934143698586594199183042596824464909525151522768073373341702265710535494670708592893165902708866574272044047788416473205061089308407597230723545206037735447791929865679700316501211711467737017306048932541371845549212016568936393109310617897509957556371906061510344998644153246681421977239761890308858263803475267524065825601801454929304394441679258098329067616846308415844196808879142753390381350558620378157826371041395160898041956496334159127784803210363955696254270964699407008460586534494817120609972693784882456008253364300449070643339869229505367085662242314006848020311462619814080253434952280488732674087788435545531576622646950845398234006335245145920572642436601097121058434701228204672582558884837389729029654823283636256481806697523683589850785917545240120412032786787431801948133634407068672761794062877551047322983654794220954836271473047509753670344016812816142799084109253717684874625436890162850432331888736088016665764847758416726997236802625040738797841765496250540772290802515663675781677124458804852789357228360306848961370212514966849397665526759097786567664010078525397925516593151965946140777751719891842753947593901651889000377410632954692197400488055551117843141643044590740860693520302615868795889695830919987862539479872308255611624910465023728868709757765002096089860591083477352878843234050863672971631840635095611425692287161747901767557389051804601796482722085880854489994275575219024557930728945371635477867438286291751690265648993018242505131556363004264592779471544065887732772593712686833247920176789884451091880027192116665629438036447308145426673381863731710021687722898672564848705408702091437186503767485842686855882710570502872545451955203835176779931153438080127519214126222841985758215537589397951359167375951428697314483388894384791109423446524002195672618335310595556525864767128160921240908420974119246962493788960808432020319576723954998563935188847843242021532087077948697739743127845333351244031619125357879573724354013496563970421487939969830566785099375125785272122215408090803618364343166563156818058393154038527278957805782808261489234341629228300952815835349804921503069386488072876031782411435830495320727613643797956338891560930108301616036598974973656476522671603417332437725997949843168361192743982818231203042007932772593393831180056056601054832826852825308722475306513299882917328870429010817455314529953162502516178993722731266949607092953627885231169925112578869803558733191948096405478207892479635845286987506527699708501387268015556908338350101351610949657651202646019246221069274041375361813473772637059462307358054797238555292789598350570787745402007602403739385800499496161562444343773896794963581700846608568185498959941599293565133463828626524684189183735741255832031577744852621243802150513492408527997945459905218989964786856122022110214596600962343664865659264843978009191971158216268854534657242086748866666152710074943399735060208429209777461898716057184117581431290893911665068862124953356942945290378312823699594555041534589709349017885858281001328816976176017306917261013184320955677821709285580393829504586351848784986854328245179338462405160261064109387520405919526955205443558806968697182730783033394823972074437427342299307533843690837957693934194426165447030493811494367931090952320262696131050998142016556163237387286212087099295371756179284439495140209104291728871833044964875214882354395940355587636986148388464320006306349080795292354739019015293896572906505259829832057859789818274878228709534105673449246832261243598666948904660081876015492235075748836525627989232181698558897172706406980263967854957329722975523229028283965963704085991366154650069407255229227830032949378395562574562208921896610678706588646367156303075744590178839752064934627241809080441108930302199677836864773478617094495006927193365410632445332816910501933519143425431898487146443394522053539962756431404341065664113907261836026620585011205170373302057423146433773518398200773470910418400005008866630864863274956098487446936319400934928687405561532869938477115435978132816511755341608823672324259423523732854947687455216515659954036764149910554646007453200319268853858622633907251438603859549329227596655990085030031248973566040901757895850850068008085525225478139188788192837542628893918360533820699132089412386819551837152530282432299394819328837372187941010865632014869295272056629134678731739406095483493332146897495229427059040398678395383933781858516666219514988440788727847922844272779658565618480999311780919813052852306261035089850685510111082207983303305086589495243225830174113772254080116297587165294721366956780858753355753884383711631345090856019936284327856089160457190674949231390754948056965441392993093045962266087864250808046974514386760591899456442667281465247839830830309654880583207222397631678035017447814344713523788728021512553481982672238066725631201360437184518651162349505151691012062494739373360445659298234190882764784069385507453581402719191915490408399065487043035154114506670823666084374132958113174755022453808452608694799651393674168634713653962844163233656080237905640236158387856490293394837051449419063105831589438503536507346013855486346693785586383975327907429163860351286564991598285383472287263807075375191320072883283267365180995542422368179024344055273139634481593301822267033530462226861950023176179759725404491256955786673633532104417776276140379391827379748027236194307985579800343571700015970353064530316375799000784158580504147898567663415346132912592559268253585594987788201197127270222934464097753669381287439283942469056757784377027649367800666342162703568441001232522848988954723579765807671715479643705713996484730967382323303484875529582297321365014789455268733331361506222748369761698569989601810155026675391116197692503268328962988205949387883103985575541340361769928347163074992202761166916471736322000449366942165841432973997319079943076689628529781958078271655323458266251146691052191943703458203157985992075415228597044196959800332953057110690165899267945574802204969737603278341188496016861432992176287335988331592236233133951871973026513009959542270960763583227000695972382112474154799257505853712966939496972738468004954471529554433542424700722155440514310774510002507425720227015921403772376995082604803360237986578783026066070913796767343904136788999667819482150160345041226824894330438123092220401212226421599056613161649938955930805857167206159328394217673083103016286149026506222290933900312821733747237386171472400204352857272402717636100683088499723990884042626221763159670642385416983570324762142473250646101237340218729978103893137524069579493486835530356490388859621132288069970844809877553911043637716049926893927533035965609577797298739164556082274709418299331893382510580616719637615324636425329790669468702852233813438551321168590413564745002918309263394088383303923803150282964402733148659275200198616878502229833925931060197478649847009922944964732665100534703847110987177768746001916469185053291510031822633492203464265951583760393295853539029537753633157764706257325501132372063441879906975260107550640698262978399883605399352439588900626161834899863997681938532205664715834477697643842258919618784706684930173770096837994639234576948008430650557557764488253685778072152490830052138376980708538916036874433763825159217739894981465069104604742295283509067398421176308252913639509571868962061285146654003578065696175777057421460774541429301606071612952820854147858768312694769970624543103550460441626214997014136666556296472385783174300220688524734464451678377936470608072174138852814736015908633239312907104189430229936595462070571543854519915797132824079973219558550214367085197263435126433612499869648868846729229113123976984211756179403222915101242930450785084111012676882600097203734956529354316536445898741157792812175471524963723019016538869561650276373222880591688281001212423758231131837833491315892720841530055621017903717606048867388484926214458531975357401553136499449750588234396536469777852497026485826547418939837693654156883199862345822551517649929404469318139677229668265192443865053499792050145661424932571540962197867183652188342488877885173658594729870553320000414654438953147560972374052382636218711092944998098968921851433587365503623100857903557546651163250285984662963588111150578749050815116407131507835686444911196398520900172290878710327466013074789951139802275547704643849656543883103263949699500384456194178009121480535541597496247588448971370938192776846103174336984630887451086829626212900239405280341688114177469797419026153018674709630267313314628347264929749317615577155403297817423868579766002619199846382810536947121760970368467707805251827691311797255713345867849675272913916275720619101101243326501163557643220898579736648515928477165068285634978795483401223566919069516762361424795055141460664756495389220200004113297554236235929781636302351878113240133883613602911292813188161210521478036234380179894000606562792976700112913635651869639510564043768949027706305378062448041767473948384632871466810151393369135786206166972880611546441649381771416589040692422315541587561591612305326532141862788974295508325553460538625636088422682469870019372031290626073827243378758796644620366569732940815135612925864380360978070346267528052254146808434653306915194121175862270028759028639251011433442603366859659980470089639174015822023767375933520899954914351238244964997649396779689022803773996951262692983176413892969564920171355693580570269031377383667422402933480346851681960503577136127566955872241279819322926530056296343332937132908226040654946316449138515012465231879845924887741746503825064150769191562654652448261219318874216059714629431179015018280286522588832297031554541801236810538370492482540376912372376504470445124924747085612301773143551654807991047635518946066395721238964494020341048689618545229427092172283417300135255464109760209751334158678595522303773637397411993181550653346277203357883087222721460778394834938111360884157404490428235777343298334151954977395724427696608101400509911442429065217580561065077226597625005921844314464911944625737013903961791627733477458015661612889039859755643452342513072439533957068677435556587947348812049045159484780200970019800790394288547609124311882550384376895736131456616033847335744880575432899057888815964828322208690517613130832785455294801119929399280213591968420638504946168059127444483258486574892363443164290890169893038857475494523770667030323842561937916198351012312211428058127707623292194242811704091682317604979964525891793178425873805079489677342589515247289218493261234399987288495909951713642155070724587761501437666295601748225099160980646268699507314559118975253828128600777758383370265672727024492433056739019925439607181076150544961884820723841218166669019723477660289888751575154404337318070129066916179702405954339419652301294458390565821502501817769854719766540391437508750519627120595535259405300731038678125065180991774934889276609422895458509913598980494881191668942716829425999078093948314188927036855953269129993588119682671015753700847515283024465146740061502284576574741896414918138009748322471145880505800485974969026994961944759879239987927096563069856679436693420101309704117085480508352149719563758417317131147477632073772942823030438824858755102074565166163857504248389646943813310783226207742099185764643514175709125181429986987485168040101827676359323181586479338317022988906307221156869747500097124901146901153328331735571888864020008974933874051186781547626822296223764024428778628083331059082226388138030372749828691124872257477411032362935860329942150075753920787633336348457760152381715365981553874659915458851907499693952395774556832376367574911867617856982679928199856839055281550043582514113923412190922603765378068469993281809761457198959222940858758029714465253939915430599609068870734377206089103046244838204011127048608699574804357110646623715284133949821992760010194583787316304420260082757272143080619308123734307078934516766493551061923238859703857229147944602869376326979442817466343640059063987200183322393654191795254607135167900730925759227495494007193610696923935085987315977964139193086951493765425560505320145095230802786529276988892202102317182412939437381147687037311004476969382301599883708177325323151198190355574537084493145587419941079975110976255468990775753111670266280864347049642541802476856089295664233637949823919742179505001394525687196320393369915690734777620775773705189699579262910757505888050886634779412411901457967037908641879955362459742929180834919262050259362878310858137503654127587355364319622733140319047011406616030412818401382708095207777971875910032637689641938995395014503015198320378135888253995682358490349066663846284720698580590929534454388434883063314581323949922441033267256714707505099807276173577456696392778829271362947385186016085179355082116365447814445214321281445859402977097380986089755464861394892164541156897309790935933876943794539423113111090964281596319128339990433282198872281215390251554252014748489283582328855140479851112290439030517182178024807630262671490949841888189275618326904602547309826536694172237609405911387896185079953281032469457329564084020728630064156791835406672864624726179982451059431193292239814572586397960941434946336684568447067912049429844350871943071878880880419780075015956250120919120938631214744992741810198512729666084883428641550975292534151030183505362250628027029293400334860260286416142020698294714415774274301091944817437589315461615997860764659020413789668582785493232619219170231135824836070108413980115838076838054591747163118146233072199954213420927771328492017924770280630033671253841386918417236461603299219250794779308518389944697812644097329649978879918996260044451212733054669831625474279868063477613416793038830219971805717498118794471049173284389391399389154504579751942114827859889980385404444533938572127836379066833318493160802053113589198868734025903175391152887510355081354996731937149448616205941809652467589639527839445205158721457810044517769719021484185535676709359561008114351284663617185191862087617252528564531114815068749774492505787004031326594071778432477771547318510466160468369011436741658105655364604422383599995905862629298424284191673253562478482768846176200033861892713424483600143402720329962337197646028944768393260134691878128534675980573881272221308178246301713189500160698372643575513618178793080415333116952372718507930280331506767805895428335671846727018847903673173409384129603287214930363240658176469456485927933214576372209469473474818374144176379068544503150243860360845809682416899547527696141427307442263793800857391004826090174131164496724430835909190691673247663247996805312307908849243954425269445158796770954138725596049991763208547904693879430812421639721100075705369970967736998927327669434837722664044670633868569506763554046681136437872279499651542287012663485572216986511169422013938739851070114822271751944775879196016200534852820583114077727696874580201492401374389068752262655609746474129005454814529679078502474027520011301826747262414077011062027967654784390132280455722500287624713779688660363093907077588199322478581318967969254508997797895757517419718965135735638005394812855664636982711304661817705802968968700781069453711414636165007604675128130738457548545218907107094166271942373660370785211476342494635012716976227348885065809929076049985222860911207175020744027786188926039159947850969048066276482993244440268490170345031281826281948396416664995871900270507960889603150696687894106144536226112913743487584245764439966147434303947665791558679834279110777642345958268033542295880123452299223803126796360871044899307699251133485125657534987624967645768698089933222036083926956706746742185487292475930543871087518154032979525334076269624919583998782069560976637311026241280742280466841081667587668159298730938135752215401571780566646776365251326626579797731296500698476358716384713755431155816459040866110181505789725315990622297539917714771623701029047773380162867392541707317913315442753073672832418565003517336149323413454959525241764026502197370374104905901914484645121578693846673145583305345045566259819208092967712743112555517208090041509120378922961438909088083891710478241464347958771902942889354528951592965715633227840397154414849673102626983245484559718993255241999165429388403669737965475336288760006620756223349093342371053489495343874702032761572168096879958218755059648724310911680127493327702106269120375189886016286693393071864971895413632533507785138806594816358957076765321710248229998857918577421260986057103091098716000248565866708297398848511107378572350803204788682256889932422414806243687246046985031145722503388839641102065326783243831454155436649792087910698820853904297293290387269109024239736624092426902419725420813160967252239944057209322276742125600306398315543739593095461082145984518565196020236714664331913561381308504909067336231102772408199182765236564571141528311372549703194561970412885893078479407064300331161350097669207925309077019591359893358940096045246277213470359283640561324980740250111600331167199214990498585347032231053553255464963111374106652503441513024963024603270964227832779724708680512615897138080773764295525339537946999218534865417379732406076681249901151940048486758339057614511768740353631251190985995540209174533413317991435590008215074305539314817454043773469200468459153946490041216995819281909839397260423603637263014225749035879756667064169362350836581973058787514422449473747029164372068970643222924820064767318954865877697759311887704638178245811633832895803731786881257171906455476351602925097370699606470543927362114159969739905624119989399818494927406125862291308844336076831317698159073728233752101944097726331123052047873314079771483904280475598517123340349315779001025026697321188278728929914112245930729590804963016635780867767546733620086354765210409011481963228218264168892980726383393992046811226816387078120439591714511447123098866893972012541801931429871852674652003446977392266243675612841759491322593922951839516770935228888690005813252164757185754732153005277041210000127670560870194333765427499166588762749945247996851272402903854460712174794911149091660315897511892517676008577583058870272019684418830951212554592146591900685677936052479049739006746857884428469717993667997749399916549276027699615163952332147476885716922747083416612461908323529221775994852869139567149099103789039614358112080209648543750092366911275807577789577768879445430061428221404449125555867535421947062666856433225446081336774474317035658052736912859089704323089068109356468724041626898168671843044607636748894953990659718254427656873290689375314102905944567734413128605801913597910113740339448845417652598752955813376417416573093069107236933455485082768963758516393029761698672767259627436817463218380725152471346390557018469509288791868259502256528233963629361749634638544855884048429630257127322567595611237670351070231182708109124798911967197835830160359151985623570585199396960535668147696216704826674699086540712702616944357187453963078698010874211057160708958250818896175169384836493075009550029207218673839363893177340591613005604351872143595002337916036433107637933886269557551914263840934772719450434584120610684568025091483545767429930386104658869013356589577608238827954508790984141730734957261221239158610219707031577794317125125992949132763653818245419038976115176424510644939692010709695640724041954206348839536000537622914308498656563718493465768502297039421126765640316357009724692322964896817662362456039646921428373738228326150970074802030178180378192389536511060591227300179942159387717273159298992068573782525033932481192825072967711174505343894015087642812787030716617727939761844853802385737735572560112064533832943244855502386455433910830914154061785311615620492022254762238547826945075442321631189518376180969956916083647556737310447393931675749060456037698256529526960259131081570321729830734683182548076605106685751943989253663042287352292038213185096163898103227945232153703240659425800236669022474563683916616588981939700768757117387845538431838164967288204670224537835942961579572306894824330829744031232644281747057218798710790058931141994022559446537003332418605804164989441971703799307361821297552262796450985483138965447994890877739298406372343829647331489508562663117515632680720373508654420889580286514015278231943805696515471794439581021399343288652092205344544380440845432178878104156921440017888048721653342086167227746790750553893726224816677248012297341663099998002522277051599161997119857780842777719745637617570182046700942570478237075979560897294103782108983860532966767369692937731941333792191444749488294576123256167338658915045235629306732189661504990838173121723112610341013715390111128914488614547327775032854388016665388082266419761367776973461295841066648394074559312457041974662964887959313246879920739182720768146576237697806485802220021075061246312707655841330099594284679570662441195803281678944748255165825348796105947115163646514675555918463212568276247561179364133987954558538898133002214424216035795734026940462043086659952777915385192610603679391304380112395568315820646885127107908614911472216734832096179131724019907398212598377438714722496587606882413339180617671941738381322468865961323898231488695953838382923088640805315127127525570114022876206746319610137929769420609119314111428491998993141006641921729876791135459440275831106287485161486210736996812990979920588671025655511717518173525941855507569289005049779381486815795111758622738548056677142050432879937911776195405762499198320888373685112411719876392367315167075665161865798031267525203685562196752744163210161908998647800519508149159680007816689858284108946166690593821019202699849767342683368134672411288401521829178506314214075044480887947731250102226386511138405557297067209269841733293546202419607793757714351895128081195390366929907557122484306457489898576384488667605594746294832521316765959045966082915846014403506803471127624164148732795966728092338887915705108424901396080089129902066013925917577790542487764208648242671305475717369622252838824946530945465501940781119980475099503512656704644065629038067312684463586563431676033850481781087110447395138687625142044689706052988215373861045618409992230454869801078316080767017445954114445234428757311347484444517928393701886971917477656069425383697229202114851959259720930259917740470618046168124431152118732396707290473069092870069890609627374903594332819451761721029127445374737326376914496854904665317093434578733370518272308730005796487783603746239254309653605766695252360177298219176108187486263929858028708306159459282475599789049104949761359281843275401836228945063309760689257917693781692839938716171794200376565671797883553591147418272409670909385896311991792207558433921601613172841315526351353609944720389882488384269189590277758770629873536231577812813613218961166572235095263957010015352204155171741090872102902868979416144953224945653697753468324990921549899195764845327335469192048018105719087572769991610577270596922246942270064050479658120968322830274937290475157127561268084669538665255862735686835314852016589322862828086493337654280036661357577624279385284272066261607386661223737068734996789797312370924031279863953660435572390138838459299345686811817018316994790527396413167053871739421149180859081490036870170731257630246243925175576445523414483985123204124042371117719777960767654225482196853855493698396483633553102858835517045380058289222371527006912423992307259028166273620956992446880168444869620762978307813967082065809331962187253187514436207820772384756904389851099647176985198790462876933126645538557689585491548361016911670317316817456861088241952658233978897267365536075193377493169228971517977466248095196260693600183341887899975405245214148423958115781429977581210250383965184145172493221723149831541793319781825885753776677771654770973471915424588184565748498876667503424142100873252758022138851617184168986475174288746097931790205405594279352519573427630719655935236932681047836020228616994659386772404989315138367817008817693174345921342706490907342842539706522528496705278541158419387575098156043634751482214397562875861279552739192324302178197219682330574496688994042649024935482686562637379100685708807984362526208759763582473825602385507794413947997517754567821529361978601035111412728385790332926751826626474426955726030621562364506910102083028613274475236024099618345886866889855747145380894412476289274684461836487079177669926803012118572680908882180196102485523344519160404177405261927502929841970087160971376153189411304349961126823168857219266714750346025781955988050626625702745255938380682662690511865647174028015561360664504507225853150142078230373261716833737495673006287972255557606677295646733449638621740766052028290932896836544477333061700183487113928845006667488801265119593979654809428105409835408439049083455496223372193811727297154036482165565312091195597940077701951386600856787722308465526454208538311785533711092186768858111221322300377263221038779408092515089072579688671231975593532109723075011546382355155260305759837870158049160087820016348533786701680253206947761288732522972111505066097744627909377395698902472372511080730897957316289667001192986495191926063407264543838606556217082661502511132846029112913912302582791627274418548121563637983264600472267150893030558764334011473944638070345353797191225396018432489740779084588956272170555980550749607974646547582056544203837835226993388673943814433329344503053190058800837639378150438002494886149593400482093239687186564158387076012619266957972467334098336061122739808825633639168097949880629687508392946030071631944130598805701422189249035668524556520138779577422144316155335992152506526650435856636029313087355553606285348024926798220897080276514680531349497430986322046932938759963113399057660970325631834676341668915286886686345126808272658123944270942338366457504496270801200003037365497328276373333788623936966439591649778593116549521615185088097837862450900621514225764391566479667966267570553549561865497690034426720313180100140287950688762623569646657486157435591288023532201488924217039925314776721067120639454327855619037603596326401001415442322042848918932487755622989364155132216035735718100090218763839868821785383877927390286665814554666758367289085772002739755404866411877033400872739745683218561340897986553756284085348668617119778117263611315036899798537179288246039044401396478138898631469712806205168076394215219746457888622265441770808570026250298572853858092920731371434020631510393651457991587472668976452175908992296035973959574792638354239370638235175956266006969547681145041871000250591382822646649785879300862192419503503135334346885215565789344674726725098274243984513252946970617701806463772895291752892379057657597506415513640664529503630280696666943024595748754157225347717641162689853812242336464502454399075998522863187299166002135776563409291916330037656439141114643818102940516392010247192010211667504445711965831091145884802876747258929320356115662365958435081099728715133531072925085476424977811746588976007465680121443307238674679703785513289901717235197358353062505014808588505150009948654922736314649344118578517193389250699025463736446511277322424567240311307202386973425364091699362504239135847722261205207616296014554829367651699436947385691730626002512402972450214590298921631138771037005510378562056276287644114102903628215748802392646069343655111426765207719822702896151625863660068403072072511701363163913853979079442625559386445143303874747304597826346103927401516752786569782806718723702409759023891660313408833569705329580617099303128764026415535784575567174330619106672044254249442859880264343802658078624040346728683918660338561611782268556049322330846476261521194755199214767651432918233356006549035081170648304915520321806763791526074479500464587515773023200155723214496134238575475969988384863374519980363345740378700655687768154996969140346595825305845617488009722648945917923740214018973524191632452467547347867250437074826552158815734189463619682316026452153093391723047030858791792675023664951314576760878346415089983068218780648006306143495178203678652741901716490155669184089562077576520357208265388519087667763683672903624067172514418836552755114930706207235064461172420557705530403202269947462303332089197334806397899993835099432729470520815180111058637768995019273546171647311840965519502532839365427505805797306688511482149870247913972038159455730179264006863795224697247540169220027671677297729761929471261935741813068231862926114818121808188641159945399904424023032398614646467974618548559190116753838423748894372611582206176370981737881080702763410024433731381718869411043438261608912827413205837321842435875891663416973914729507546420844177151833635835572681492632816493586676979185112352035116851786030984767322872396678381702503371442601026422229121065884562171535062140185751861525231342198351616941459420214599684708951262993421687808796835473120410647738629252689976743802428532170668663114302610895713040492080031771673430158372304887532320577154472525111531261514236784109804646257519224317602441037094343531645431066523560780368787961856115379400938437155335594097981897185216448441483282628688689238270749105713842575414394442657868038003824792923263651882377336075430964103781391884475962732074496318795488363936449510116395659321074417629953678875274790547336652356496872821637326323730679183521489273619151342019441478775432593868742927565065088656682166239118109288610575312895367007957073248064868195548677124385404009814654881502264244142728062938043184937786507995770630507403805164191889647191703907222269981214854746474452624601576908263814471543863454629151925508551486771182396975075510390847372451245861562023475615177097760943126439505340060012775722217908187272660772846602251688574060262705326590240328876544656175425788986892788422148933761732068769113911991141550383014608243082854041211844688992742583309577384932605442424154411011649052412176936418852200802131913653186336432065190559733025084959940991302307806551439901008336914667547935732907741597563110086805432025600929678874827789157752957431999473039935758214727724067547761224144512591261741294729284575012389880522058623829986870264731519780908426858993299368747974451197517925110969239675879574986100929185713876361064592219151254288524624775134237937314760580646195725149218772800225026935906084478633275357942595596713734468391461445591938644241732481434113795634378782015300229274087278697725555565325458867030212503209876426023968596549342114066428446649672315452868507182310422303314010031898562745300329915486630443788402048376136919761035232828588001626561964754735771175603267486440711364595608513563874797334954414678847900805455624836729500850452547565750543573442744898849727273614943466635646215470572165944104667092288987147732164658642926948375811391268076006130812716673315779007735740232023520739199339572693742608977150427204405057605528612411316611658477135575398751287561472975548208389948405193271773885420771487390183022273823901271446517156952256854099640846927194925037632079909291921349970582091574731486030846034651631749621352143438138240891881260245313973352595517878282000771061857399805088258571374268397282695039573797591626748807295440980892360230978631603497864325436599402761416932222635448336698325729346018826149130645251145989501217473307051493003610340298693491104762996718064354566788985030542888926410366196640249772573728783008367285769777919096469589038365155709159873003849984080507357448625100058686383852874771178068595909931251414265220389599072905200773641424216076084648013281091851877617228821129557221839058009325144884056889805516147463339216069354332850632613113470057690648179895511547589492605148307996266745922925326610360145095893319312132242814153398211038282734827583572237816590012800454177177503074459435920429942146987695681828962821162395768892287112364202559584005882746272705752701028055631886728097733707576670249744761594074557544264603479798153863279582611979221436495536875568195620721349626988446343644307092633704566091488318659867433695387578113558873524630053111579535982605118725651394722748886498768932860531911723631367699746916630416873024348402527446948659225680581710163143414671610968999394552967710715262184341328238973150273960902430452277230955367994887288338004037575323398123675158807430678969257127610723111690350393084520327705721824559644251089606821617946246739824886736751285033238906031485367024379924058236737935460854342350837654934717629395098337452658802018771983751187545808242391435323825386792157189075355015516737081930008022612962234016323126219141099138487940733700072066458622583765828669533226684991061233212650870762829050417760630977267301972505401626063914532228741066204499444975641917565281751595341397922317950989462574526751267529021521447682480346561280914258008954608033438228777293004054820984052474220140441049130245326847137619565679215406738831519458544749983202263920936194583492898788328086276238446842999283184460804809873429840076798719165130964258197001220068633915682883462057791894727471886536552644620975839901722694292094497154254251351560148307049510815028909471084472262366909745117756434871572385434251415759907776295091289772646560777513692880818053397829683295186507274455144423279394192513598430766662267692068139121266382537484416830290327846489301570142244471341204669572700136497282883136205441454106297919023410927040122989484180226803024313827652313489916561065712466659046456232000729873870710527975074168500106826147279122973984805248526815287684463776615152388762715620022378548013461266980784484062435506552393869141857055014230430959575383683716249055057233191651006596933546520183586080491565527575785228497060427269100217646519529592636287155470992818354381177141023891408646161073702373816323956800441923806746676693806055205518245482855047884907825759138395991014450104594569556210378688527125152009916799272198867464452595522891300818300777346806329211406955738629729805008754539115763290499434351296750412658474285240520992789136100424425331544282887894599173259906634254693801809285943664146617584029932818461811773062542943480037535830008451935153159066435253391287710288483950529595627284373204629896757237041007552793108958289459996046919018356863424342834044119733018988189331332618669757521225488945355344527681536172547983936684484242366334365656518880910309229664492009078563423926854346353410986728881898772174826433412426439248220584936644094209325330254853782522172115177851793243536986311320108308538796974468137022549071226090334690002332158067557421400653964599836629671823505678876349472008495882221027052898206091558413090494469897107673085486313492707809377804204479225702673666865284272813136376348296662780103306939477167042329426166536684013229059335442987266486355919405592794805594957148824115789072746390670460222256743906705250277609466755408375451583369472273438580882042603605873473422754645634669245242812491621545976068952299290132043883123662120980707213249324595619956842314598057950541550846976582041359740193468849062466789805569564277757647987709291370135976830000177280930420273637079163896632350806416499676879951403969544117553774736595697215575168039729557154425854878828976951710740613051737572261912042347840660612881322787936416942884982371994010584170076535566292580446226692357119261978673911624496237449004834678755827523911597486646834473448575821491480578977088938289516430749553611517275918537849543413960131293693421168331983442271161170947474646681466111724580270996439020831721651752084763954103724613237243377981600064442614925885749626228232774596184376120136665505287373974409380619650727781793362185742731999589131314661548798746056533714559646629458124565006355490678354964392442438356258019807988727311302421196374188704671540986793217184008871437681844194650767927166024870118705477254816449375218758366202451392866927892653738583621309059947834733157507822561889875837042948670565605014920153152381103733954065719566865072925863139595720384889330773798138869162696012545751260124358852044166548587644915924641247458218055000745660759295003929461054887051662525178659646613941049516034734009459673807806795417397050021627002071660975030855749526069937196389630091191449471797353716176482168176796364847463031130763323154100723559170790883820382920367802257673993286331198263049722859210322098967776758137602344198900911349567125583649106282259485649749070057990237873173145486069928402091144622710825115967655437965805496926858095357028900095902142807730162398777165396414486406756917640110392051525883629156071396878671521193111344956785586393044692733557044660764902787690894588878866807303933850980207788481571194384927044472940314576117068753672716377196210808019538717186779364414251602801679280708132541290660906529015018903246473773169897833001378744319148535499011076481834192617205430643523765299437872305083104236990143040628369165160629786235742109081913597109244803987838043961445245814555530285661601511789573816161267276577493428476054802103360785270370561822105250313260453362844887185783900731366867366275764992672201880430401568075410373927252939809276620608584316344358309307234302669476643253019918493574873291175311977430628820046418520513845300179336851177535426923406345784026667281783952985218567725803056066795270080304420908963786460120282227213642149976017831517526756686746297893328568731085345033334210232214614405559369369115586499130134663084159632248072989644949712672955712811974117902135436062003038163282741079650096781532701931931291668363234101938001843373568396750545157479572191635679023545641722186517478984359214716234794227390219002063114997247163915657459788354761339116664783227527970994354954876080240551018713567329329747966454896638317087345278883277762276969709619335697249269839341641073493071911835211014261170073370076764649918950472800428403352143169749113670133254171651623582156409892665948152690791965984443030543757404835051710629126838581432880828278083137220075798564689768123948980762817396132701895912173838680054046349412558252309022385840848956932462606256212870832358898784274525078401815027151009845841893229989247060841954272928575151770508874517930592621667311440223361436394936648073650471796471703472277228437238728150282148657578410870941745419522319359918043681177753522901624558096369633518757248828209382330194593967808015053430768230889882500632586957560193997693771631127135613175811299633252461863345790615281098381369927332611815359131130951187832149793131071719219406252147944907996356733499586844784429810591071943940402025804395012702363136156252719088006036511911408340652806667347429257938133510928444086692794128701757597515344133562724146242807701646874146548544124156392970901342045343732853089165659572554872494463637852493217983494295399843517408475963900821079283583563170431033132320913008359627483086204487301121600753717970181487873865211498916532453606896949286451597380218209495399451071603847706326538548540601161212096331118712260504901534713016028179456943679765341892326751879577513760892352922544415039770864563711930956520615797676274234727093482717894381450304452088320839881021750192096921861005173267431985005008893325335833399774521638669602916521917130177805972026626809519434333450509883415439631042889749180153555636209943240312350490455927470979150406893320149040026917690154177857649574438262445350261057142030433060353420492024965155871099265034151983290591079701834144343591475299034671596107498057579902697434267952333231768916190881987782224879408544247012111978933858624022408781307470246448762964572677951938716508417585419622518331814538091890374370397982494773587142098686026341556938239940721015333987432339257533905591302467699883077032641177653481262154286942332220813257028052001187721380556336168263145143275175099989654130009106326531435686537321249546958437047586109913198239931181343279139311846611198289382816731345728550562560935824133574457571901067342202849482573583840892727494804507893108125088940782783440800814650228401648710327252362860390767692926860265831407556176992584686837250459163021852795598522034864097175413965409548358382679958246506724231344564231067518280004110336725579323069144425963290997275289123667201458338774021817769116076935901071636996830392932236168137653192496720090954775108578709897892059450329634746404468701351892416119763284392738233622531389496044319624406079735190410697942026771622642590022212044689447948633211035659869790811441418304681546891122989187590172985482032455995087469390708141816062990285427961846635134742450567588145697683693946293163073892965303271610686030709924417678211758885250652281906816794644444989401567962684884861946027324639468051108202952275350223888446971147077357633301540626853959861077111990291729989662055114548261875349575100013773900557875568354013346670069324491907608987256836027141241267542497380378969380120085905850926743984748024455513876810265121264091014232392919277713584621282527720258365020125579875454181795184785846303714135053324654475873710825345592322747654827597056156921422926765586176513261426509855707596416721797008387766191692339862512127484796777779428314712503550150748812642527021064464959559997625480933575443773928925716757668027756523665536895022878901319106608720271892232753142423314945581553262573632873498739198228730800026137905758778855755531764384273834663658034891152924043647194289592346795442691832485647389850591417135359563916342164942020329861657283035439429806880062185801410605383818209292056557916734415998121765200381661000950746548798385536441832324104882387413122711491117252903861715357735999762522284479680043201074354898773781147437054653181897540520440124287870018861040387008554344228377184343480506563347753180093357594508232373217132836243248199010322930924884991765523949221316659314902441818520514809728301975494006002283137037117970387823884852771330908037626561958805567949618939525588029418590625245790501258791528091163157453415746089605767124863882438780771939863653143528984431376667061653742322821328170547117729712227852052146566575588422986644863454137677976702248329443672473046666826735624956125506501132047149837132110435319606031439868648113414140779192097399701311309373922676256362071498600964348437128581800598072602286282615169091735974972367564449627302194461558690009088448384341038468494789625255406025837923287870345826256235720341229546332889963373817410563163819679027477072411059115346307396231022950395571770155815644865783275262191151104501246136689955240445565790860780689947419740797721380324357810872308826340313770154657831822224690540299625473310480874712919328530988653945424581388983609521138063825109239863015122556898678209911098730589416247353836509353993514277332333182891873342896664129668308950647229145147789586762094846200281479266640791782500633471549978238863230096895408555358547731647347789180705643851299579095669759117401918792485870606471090952209955824295331432196741622872223086333186929591512449816012296401252204379541139501410591208678579656402612565010567537021439244690131595001618234716030715159295220911275058607490250885320202611551335639187622001227581381203911841252582519400670067538037727175929189346404251488833623796678269327097915374152993509551379237513822991723619612871920105748903073952008363900136448137933868475923333773149720804584274111561287910479988653551134067579346802407375051350499284541581071455398636956826695227854114132910698665594127960189858703292210752064786851342213804674839857612208603228391153635391420529178845608065164345239903334275471245624104802383513606639046918572450113557621776374909275899051887153385230019015354879653611277092761648581842937112838747178852454865958105451759535747829109927982915568257855735913116223378009526343988059822633004997536554537449817087034146368054612278143079792332443433714725708771145450893973565645006840190291935636955418143326727350664591892161657467635344086855615966846337298381968474586662059604381593666558316685570143973097218706662183806999510397661221298072524316544155672718978679479773999695722755134792327421048537953812875079730161709316980919464537553581143327449260530951220486113966789027583885008728108445967565450987408005013435315482001147319438000083272988052390457257800164252547349992443929575093843702673377409644429377044055333658310954940775175578851559312286519960712337462695978459484158895929764990908153829232947750125403232144655044538228390551895557780399799100880534450035426629274615027002863669851630994627228259139522310071307711523490548615344978056385506739016630499774667816538134433236894170857231970131596515960613699933210976872987097723019355660899813096351581156115636759303641867889106241099079866530952216475069491680213588301041603981809328086989451661534850840902164988906630412887162169025890501748655704271358453105942604054692762816806269753559802708462287492602635974295612033272660024908589977795634047884280066677410301549011747060904556633204004543138719243317746258815270167885016655063314140843372672004329436967877358196123528115851769109444794445535483718778272966142100061559546114466261771204830514070547551953909017989489015728941036996457221632329652066728380215865616379080443532144249408036180180712744867020742941791057299969103862567234819404759220911404850914123419106631094989565320916776603396168646279222934755593070371491362830218505042655114155802564512972436565036319751529529407532612974950084950378566671947708629345665246582340996719592674639071797558476993102737387080986025668955574728455504281499628226757256739550576941931392685323268700003699742467334197676235002661764077565343136806852607658318901288591227275303209841740489666963049466285386555526369712343745935406781722741252448060016768120046267176443022266700660043046069573717134155962502817235466707328930087287336540590261312632723173363685694081110044978148455313585029987964993064598574477857837565267630671469034382158742561776813362860044513559627952972116328834564745269603562008067837776134788057525321180871154091834618993780696659699261475047049999530286556026793652897134034792990234635760340880515875144021954139831185299460730140599080965984250283623656705853398890336630558522838208895483946299154029488068367254616582878528769914776108570479261860705673997401336243793189954132718310120053052544381568673598583332228111329043194024412361620036236977787317009010078204918718547324220477365225058283177510141707313369953897200207515253855103138800213342056226273289158784449742787145717555763216983234768367200032008157225959450130019062555680553373226642326834244475801413980561387594958902473470174950401955774928383701571204890108634457894785769730158915653394686045565591113171390040178135101809119820638220331258491907988315559343415232637440852050310070079906237076014623896921059909035179626376018378898311650255380283044433951572058248960151739032885282783301238755564595255830951276423443848953540161320390574100019052836007999213437356311562838970891366155192435282355368111012977358816192499434701680261751782289662974774478934249546920129679461701785067193982529289540668324340201778698868097115990363082072520803855443399180159566883363097648584567800109734404153222132049713340843150485215047266024708479769022798649426256658848964352868992401102588868869141856631917018326781223136872030945875341486581151986753428364564635110862770175835575486098828764186455255406459339546552484833812708176317706748544344878671420224673357684445950316073314044129575352518802263501298848411046030450505481106904381022454828792515705543035022449095827173842127750818855499886491494903364120942929199252820104167514265176891123387224368304980247677949163848596011639841761482764777446503005582052100226098764721214357600527805302042237405703381224791777967638560650862912423119851464601750329775670554728111120108578513764921946785697439028971549034015962439790199752160742815861607211192095880831392012847792733499268772869093924217443433693287129149111928679270992858190088056162532407180883058328207087750300789269454476406788129081159548073868247257042344248736840682624222468678770921107570196077832114343331684257215544218080808676880861662865379240362350490625755764635256633066776893587625655322962858077515512562242274156895222583085256017776145427725595793535757489377732694488845358874425210317512181807177741119874831067564890245001328714083459652705540130767368598687520094876154978927124599925108530587130951361568079684787156541395128827813534304802495409299234018210485751875173857325998403299715635005489077858980387533672125757142918135232117843292642184623632971202717738424500739265530051127736858315962201684095183942199928893622944326155864148115063971531255431141705446686019511116466123774342363711159138429577950359324707750202148364081119326389563885610441168646341772090188116746917874354929198948333711165598736272896191013218748231173528181893988190663080934531880203610596680617205743081465936322752796805645627968536951544613572808138274191229005724723695294342772357921323158940371146133255925383473204622020843076172274569132694068495579962502153641033568958706697425445253529999495256342485253452434141706622218086038340955035083752407593454657679672070112508616049256925555118001167907663738774124514364435498001060797473274834073066648160147686087290599121334917506221020044609523469115223389525398508044828478075700510467225017973203490679612732909115897281996264066748309714369710403848921229199934396958759520484942909648288180490555973355346581386413738161689672095597270685405973595790989509911851783851504108594165039334138088288426523529613046668867460223965754404817771569544837432173935480396255956832704060020178164080408462165077429192565778321256757501194152836568693030599864335156800228694413904817235759736277715352823544367692748927978394704162029084164920125016902615342701770631479409963841397756291410473196112456025708655375047933184288043160736250882617954369997816508450625277006465725999868358595171546278263135111515877500333565046153062291316722844252478389415737367082163179419827189056378061324273436123102630490706626871050790900796120320844541518196062480920430999799145251775476222856188327994620547904051725934606403823547903059316175765059188716016576701566397261935752875545423753701066578250457500793147338299288705020327508835881358427959660071995905277248835996385119520273318370174393388779538093432703099882602150840415859656127562600367549302567915853663469691083549708683711863748188018554714102517444895224788539418294146293613688987660679152459932198573394411948767243777111182795627723579588571156389439681629368628997130125040428295792432621005461448943104010390009711483659554800557269346621761672348924290320301780231457662483191455118252988349610202553236539454813937722488399411184996737498086447850449975756105528073068163505556708441232099270337420883159403886321617209714529564070065265945514248016830815211888107164305895923626225267734231863410739602665216819272848175707096738337245472427985502376128894669783828269972448315089182415001013959572490583521178808659703481932065457354575896357613170971594812037189755569060720691263707706138844838255951164129469982792380128492357813843670656327294161140861780809624825092420226886714768103091983555461482543410205837314892360904737000189583642633119531483081756627895699333111774974364471830561280260305975255428822304222348147278390177470211344070353217691345026323004020699726667086228230823459893913202863916289486302314493701529427294376169544441051585221275380883601698057818733772358858623142284850693337879516137436606970450499464817569352335897047997931565228848197844609607518739934102184342458389635984499761744211007361634802562217182260351605798665736961312723955304114102413561732490927185844582502144617326381374477054358781014549982722565824522092507125078152506219602895166190886872089855878578501069466518875018180953196938974573272216624895601408711703962890307554684130278165860543476384181182899390779014456646216989664993344081137858967657786565350143069911122307022773730043401648253509492830289558697759095563986443182500468290207478667502323264272359992970224284382010333826578151910942630156345627664244077073265437432224349826895696910412721241383894430292502329169383207997841251560274536053720412223653455814904644359477118230178735326418678582402981476037835685604910807488124751130185109916971937750956173700347571065659435809022962707552538683063633727821285728202452489319059497002806557078754191330193384531732956973115127374187086535994599657530795562266217732151748418993077330354654131077099008851525417856372650920609554058054315114705418537544700646151124934061784305226369494107308310172222242623328273855455356382702621854453630209729962300305471809977653012334489622755310574777588675374458158802201046927566971439126753615384080039540519388070713758393530521579298391922133627660664158289838657244774254614207797624022372688871849088683786788369675036418039540039855355228072959189601236700539358202809116919792570576758868045725524963454461771781012712651834688330141604452981857209471118551454237731009584034866433930423723292291346707507590699097851727303845238098028608608879475724720461856572935629652683176407146197407958792180141896307552190852489471137655757647696614151753184209473784964800385312836142517380820726695887033680539492432382915469200377784713420053881850090355218404357036977835714287831425628275862992290554685980245721564185514749468112084015173027684213103732411338295543855063312101686292065665802097325511469930650665423042070123814775246903736720291895690547289084042966234008219141748341037501101126961004993322892340559202659885490788734249774843515495275927840628838617233292277552997975491818406492419254064464257969231203820156528224305268759741997079325399653032331637239731546161269762802685547912788502112559107838355022916037390338891035979635478379624373021898522531331307267870174028131694104130427688822331484786142919258854525862607842954259760205298898391937940055917923346972972451232032715090866875563169025848326575779503084486984833427223342961483734759124086447193590917875548746419665706996440873750599918698427325419152529484380079225864712698052750213352753117707352448742211586581070210115156004764161798569272591494673278346398388448216784731485448527741583645661822473121611631820332288638739108604512183439676813536572349343454093972226511918619919687314025632273010061947541872833586013859512567098732419716482770303085379968847137284530683387904713303941057613203751980787001227332923836738284511791514822512968797612908765046713317066762461230825589218001664536878004618732226551331158441114717711342084443700526666563934513213432218101445465427174189139953840967680603477548214330904502373264822633222810735030997337343423035570905198361844416161505189278917950305487243916197848604220314620022214812895609751532704866680743458631526788339232368420829646308992839739605793056171147866724367158509601873613963092819946791271587896065426044999121808190757577769316278928236343311680349916462331102953624314432260059234035984529005135867161926213744183977996081454004263947348292798462448536558953850324410595372036591318862765995826357344000402571969614249722665191634058058971288243927323189312373017692272149680138031954493061323238919932208711754894188837932002606612721060456721981837756109659426916445570088948343037664513169119363033430090614462602427468892822869238428523596194640203744546630748741051368599136555699413142064373434155656083413802226060834809434577813923499919439359247736854910130975185317799010267236918001789155295432859885177860046838780893144157113745337245349767879300161021425849279261822753240109228782073052120539470543723733891785851595333240770580212739601891117376056767592893535849006058030366362727437806059419343865758048430151477211338384430622225657735273726837586282332934917532886028566153804293176453883292151034066563904302478358385447375049416068074342289806761817558115040284463019074536667313449547153564362578553403594750946999071893014242220639006021655502897806546243459041422658615448582372836839048995751190765853624354850785064883223226588029042050078353957653577118029680785543966262092752544994800231468969456449799131683706380283882858135096769478522349722996670805099787662295249170825960795367954977364725377575561592852959973578661895719961710992133767536918543453107746164601535501872260108487240407254463270882166167780012806479287478847357282096898060465618855936035026977530079853777798321043481754644734288647299039469269490001128063064581124402648394265937251520492027351463523605165495803056597444599978990668459909491431505549332937319428836803153431036582844254564919937195543577759052472861415663472277704643581322094274945179346767838550340416626938861937839569581286037556740620922631256425791397624331194958823728360154930094001873989591282035280027717772907938613608027721398375458065957705542573075247722631335951418567182694049056884739109320705222404625958500293539324862745839394658158937441448833994359605239709155251164471645217427602417178135128921412260206638077428334319999465650835737156870151132851353343940537982511723647576195546497188333162243589866446597827138055397152596277681057256740360859169230538727531044339441813290921288543553891218454562473690842414655088161368270313851930240161558909050246083000366370187269396162609291985227835515082128176700366096438048169049673519460186340260777161643958612126045307215085138884018287723710163464760778405866362852260621342003379329205020974315969227802219945196138764693241273068244324169286956927015504417974469106061978525103003656482558795417129557116201369033444608122846253910681473265826084539210823376635723696958046161068146948955942166093866432516291143255374958407110351154941953964285189261233624884505481870598415934699690704258419984225856660319627961891566262668644358196947554763689690779378554082823107652868262851713320469394999399698185427756461847404925948226037621474973365780333819351089189026081222706174921567583860683259288162967416971190556940991408463909145875466157169786722964148458643334277481353168094753354275850845792771775740299145977907819917506265174613316932169528256336661182203859733343701572579538328442225235792648304992708254280400432698952523470347843154445754200373033139455965259695238473927408589082024894631525390023287438298047270735481596037305394136983929961787678571425639278640424792778247170044550733578006731205332023952662307254161281635799140480835811846975416537199045079990883549250000243575088062325060368878466245268689737103688833703390576781939491714754118892115674862685142271687779581488591291706365026608120314319995016950279612135717680861488494926401267915245072496027412887449038666184578663038407898314853217545724303467379552255621393289790966560994572074906375375307878076042635618583234995907638696017288148777230197476509301553626129150847814686437488940423578784960799138086120431890264451448157782990743559351809967473704560882618230376475721558923206063534982065799271071928432696165336304434324237455217458515856024083532216443410892452780572401231411122253528833426150245243259287186838338394148698866121581256454375187330804767289247313077291639934377763039371092312832862055581295526919067132317816269924971233822376938524413364944568929565147673069024700325325461108572246218432133169110686114619335075383148900564623154695828795060156446242955677391710132469804500477326234653348351272944667057639101806735938335202242748243010016975052943719940655530739595302957798803256525289070506630231017409445471059083261656417312177767275648084769084392665108618196717661242581314295372419508084145705045645687800973163088313025873094561079221670122723497748112121947185700815030138279961452929659902214307623336301229372484488465427752607946369077039154723272753653091568590962153103883465891858703380318880093990640996164803009339380853051217003449014129622388380975419503026203638288956887144902404218751617327010762740317400244844753230549463119534535009998563912035747704792694934005711857640360708236266204203027085357248324081049769708185310206857528948188250926061330045351767553130981393475424261669327632441182852939199051536600825223969047939095109333747950414923913207378062914344137633727818641099911731564915082015652839615777442498893597722149235894684866401164875422617632376096758637365609452409498959182088573926818491702030918701459719352794696723603955609596808834067213111682532508090520790067439508354666674011585532922486762905974265773407004354396282092291894498734353173952250785645244692406199741862266902720143065223967638374470956496972096875599657201557596114325767895717886277152878100568306938231368771448478676062327534728166433311586132838221461810483983646258599899388198468433409489974331643146974747246581554718689006558447411464683011474307342147984531189740670546178726893683958505778091903172841313000175164773945506283706096076982440138163435668194941908417328215493394998293158952345334295719117143643186626020348362539107487357709505026253386846662419606159726715991534100432394830076053718894494339432899151425561438469573122260658927334771843860945930572973393455838327502501639996147114543971030900406116102391655362239313676015256380193447845534353802277596195058227703728816728551072217436566011882529216443481827752850855024831792484805435703674960167523391514210734880666983676310825197894143370547002222820795329099591824970544060977996135036610840497509569641542091179739449117110593512266713932674515769026283918485546094316497785458321308308762743663098582755060624111691552982143787108861706964091987445930823564796574298275654568689867212718549335382491657482791019584266440266876295125544468969645510033955199758340824277562541476448815190851252951209036976894315792962156216851120037590173258433569911821448268235271271963092463458736243778445181737075716488149268391671635688490110867524644352615787892022249019704355324523060703421765753448861809094979283482751498439741909984396444835697347356229413645577048608638507869403915352942201741509524288819532969169569096140581795778235851021310060391870557517516045891581518070406647961764378421048671785613779665083897196280922084574468369118623104862850513871380146505156542170619441582302080631999890406879487080633608208373000231896141023170971876342216123300064069149059770359133034237037842625865900521338857538668114305414376884120263126731318283532042337320714958523163713661024353906721709437185009409140614090503733375494348473495188331006636250791035780111081948233648618766404905720681303686983907319388182924713713990934144114098049634033651338381065026137022684502067340449809819379458543780762524906530049951689106326054233960246311719317355633907650152027363058920643309668087187622401588056904768864310133399720658636664167119563546452834286626720538314958400134624077845860292065719781621968299223803769471110699387095914353357872389026301148792789399001671896102582003155942268598390139015254926984788046170778902993298035908539364690368757036163747488883874866431935668360261435989833150954881694653082584249662383463059529077252050435128575776411373376516533451519244591100473710376972703750889048012074320724715795160936807691751522790809587001096373493750928836236181167289039577899229237308113000925421484042501177069953109063251319366627937811926972310704840965844318534263424094796595951783041210575645487779100703241818193721088373666123798980267831345061624871691460443411989056874164245816816058789710581802485347964707324397747337934977169157791242256248463270176017529511543330451567611662520968812129222436147263271413218810706270525366039480387263424318367486657406839624160255302002402069260865403397067918838517141019577623870748229958039239527236839429288492332316031850032154362252388563096208615129651332878066650797369771020970927639017146097055322116515968039103552310345412149936754959832415792225627865615517711485010203513861536885804140698038912579007906245810018080908418697002960664094992849310775940337090611623720751608779414882133800355929027219793481161362032069423327186076634829268169185459462995267038572549647536096813876572061629223566500242033491236982234800176434696391642620830623259714659004144571032429534534249043603205672324232904287975253368596313049519786382338480215857889832928537180997463794847692818001603865343021865968723509223873287829015726367538085277298068511212049338192558174707527381117125300830627603115669498522539529873409366749702372500477669970434809930647348134205402180798629843499916283352124187472530911791912206810695917174817457509902210422649038863950365654706158092394369920592523154786062891958131081915507220930283370805096421786354999781901823004339682211945318878127032403186271911152393420946282479140393867854894300683712930315907971246516387600913068665482621494979308353144131234506427682522124101263550059421627983273884342780294363909562275632814672014131668338157030821382976382560602983072988213564221128315698863872252360320568146216473166662673217337120151397221124320046980995247592921059440992972582146242487081132157693296252836778517750355319883569617514167491327946733109722129359862763345925224230986319411009458631996168510398331729293800537074215107126169178213914886275272650065905425959892561251777656335722629088359660771800276448874861482966816861125966726693898528716180209039316724273918361090634038976241518198249269017529139350395500253993722838401656915729816706208223045790877522071045550234050131301202969791050840723061741048524797003783556846923989734935265344862678812701235237282097499705147843358570862589525857014436242138859368582081157573571885268570981822665654700395834916990103037641624382734212235317438760891375485881338200673913020294277336309184089813100558006554830528422520714035906033335978560285810482366875339554146865426686807294079227284945360973128445328683935874964808561506996372688229651774428886843038602021274642176333221954256182540658813495726033119703914046996772672497969684074589285251383416248726726411468002400101784875833739734041160195919562384292471374550802142486333820318652020245575513006204641439160427647265633737475293931870219321831555546188104459711741688161144275635288767434935122378010559479489163320312497184854067228956625763491826405378451152407566517232314983534093118889711571041234246920029336718133157621886597666769157707094773210407233908764649431919290544787205267778673017779566460254839134230442625787066548043337848577227141332542003676590415101604261609608636981346318169860301032861791265061872990123192628940472957136138037199991708650797716045926548614096322964956886265287077434135622125577692341138855617510084147749677458939613422661599745832416686331124146534670818508851002020884627485370845680322653275562929335903265548934090205432048325771796859475183949545074517025450078083871097646791799101746884614467978382846405041100143255201665837264536136204649692724678635818263347050444235106959491504697158462008757442142642465265030396206909692646840810150412012671647626779712893721203600883021126735356951685207949675483309125563691468351139741859857165946688392398854636805763920405289663108447098090201892658750126614931784586234321682372551566289795448036774431908255802678343156570206979087063231880047792248490823430886406073750371769910678042550047278729437623169661279381986289618036554631762883222069466555210737744918981012973424711735793314644139670478176700114770640584182516920113964827430665158675910293235576451986073607717048160474237688570514231059697478328512680885017418901233120995898335620582533762808098907992827855825442325994091520556170811027638637953510691430785589321448128391395115800523240018219638540557945041572593902589359557879255576714683116039983183786738566028341594791081928473293330168298387126158987302783456096094461764135762553743828584492979367909006477431739611998057251298314715905584564223872952282316138510587719257448746947320294115645667806175235702143035249598705204009966010917243264858537815059236383449372080632612326688105922720020443521709807577000983329800452271108197352954566609407321160488096195610091607547151952450916106802895752442283925725816969835189436191551089391125346592069896557468295710864997676538355380011482951480600075425350038153142841922162309395246197082694562213495128487855461127803101177049302284845565592295767630896213903555712133280198966354803764331951882426338335947428583960371951492719559460471502425039309583959263777204689935782665434554088985317921881199161589034850887083404335346130742636887337942914831702024006747697099652426105586154175955644582959487829487889542256943302196529690196786155689849213641938807518102389742525372314791548988587887483161826197901529108588065271533568731802016446506858103963148618648823484385965826182646526852833935392709125931234200371366067699416920806334621302580841800217269215160926873256775353213396929720949725408190686429305245853801539787902704815998640457078006426986752635674367147643960985946584187175077846888766699776687370362169631748467034544899348355401410526269556141681974546872298669845978999176437528190387656030560070364015196887793214454440603448618161202643115215707628471538092132819412694435197993611238409145693157326369699037067175396143209957896068023225782955071167217232806391208085803452188727196240633948765957389261257307769604279624995140543577501609388813111983853230197829231378497037542032024600957960459653004313790102193814803650537895441076650883409498796671671935805086287438555186425548606695537157177362983605154446316608537977500385043622170348827635648346342519636689094765150168085976116749106981152171760425897747546151452414497642918461517527870834444072348430349061134812146176667548505623159921888201001011523491549498996541428289448188751935153605009772429934922092997550199131617309524514810876810122920969781477788405271152993266871349497008691127384690297464200224591032583134158915686414884094029222113164008383023344001905897811589762888849253561797729094866896406849918929032964229934664845187340061822369940494770308557716983493149958825693272265396076110956696420317144120160953248841608484650045629030213651781235219441703332768348141664157221372499355989523135197853002627049085487893890324174544242067029755133991759102346056584062577982540125390397547555369600809086822293786783200137359799891257968049981797832039113281692091999077858088490865024573222779184604558925686526973233194227829600726458616945301373446405813306508401523834269480747866105082566247008791480899341432570953119881965145717795988552950230886566419666013587556524182445329448103559124393018819940193876187661116687388595887509516519959396712713471003659417925027541090195834595233730005359485129156920199113230662595537408312999930822476401900666871163917301120291601589414169074103752526362715650514981752441606082409398770813967737530268781073291110019433553682040882511689346170111437172393260510643355641983908906231419351247920651033299920537278920053604892979840363010067773119894215357211815917483420068396844972484307735273901715580726048282776509162316214346856153420779766090134942371969770330399072442220875268965535363063498354766579873057446074164998308473412779763137704663487048712436089231133414723032931227951937326461176366170387333695801165005259590550646849000796149456933225025750086422082184847733123267483824294151997287546800822901601115926449264366797514795751263625923212728484174568835228860444192979034249683783261751766851611440835852604003279752117614763036742395655318659023988157231437725601815602295590817377317785224370187820033165948079826342682952232850912727341448651870599683357762432893520623781180337663178148155978557809308869585453421800303310243392490914606595809306136330390290326719984437744530318050544214626383250789940158323681171527873084262628676624083439898418180407752786087942868018219666889275175772206887863912870383565739002062770405950943824757137936191166502398864535123070516578535953119092085271404453924531262344372988181561044856392432967999225571457573792414422834873471104708358629914691022753985926716472797758015244390508367757349753569096250669373043666796567501646929485563328411390321480528730611063016635869984150557286176914084676238959177068934386898184769906600464742303355861623052072419582773185007733894920577343043151206240303789467691080526616026411615982214036230662725511198060281118891249008547854168788829675509242099377927108355725681874743947570076102203523197828032538519129443861566640143654562087275540928916421798826275438280093487756940683277250514165412295496418366066402359071537776734136431815128358730722693013304552167353212420225758487415165610057595859719037777916664702738083031183046892946105119628343002278085855735649773144753573392659484941253585170525948279238020685792085181213861903368468518804836895632740732210143970799853860185888842011161933161641091229670459261790119673829357012319418676319757627152358138217421716804779216973280212217432983121332928035826701729523706920379836069919746291818816735443092205351027809407821256906716984261032112951101606734976720774537711439375619778989489521408057993106195341279536324575805886116367364056334094603557591415520964134526164703458739921488351566458458632727008891560640027730056435204887031312090689759346861189338235573425870882155772277960451268459855413311957883528608154875140970440405091259827472551299266606042738595180308082639809710357260258175941315847631073529108236742629322601286314281362343100791825354631530988506153026887830508633098041137569346978137666047055542250049630602177797408617122218635869580892827803256701594733919789570917697449941713375700892675625297894564366411029387747983801718164426104857992769063420305297887105177067440612306922485665731945180086904691088650069983427036305663751750848126647296871981165800494702508780256119983978262952404471792927730351207150870131110881361457881025275112694273442354512647729129074689188865017229920668303002554383081278924682707398041916810284097639644576376598757585757560972576602407842957888904862278735719717938332075875783109676276420909552767239713755869940016207365591298385536648059208661182899529953785655507063046267771795463063003828820021310747757528343984597204890514883652051416416864641455970372744057924954786781248882905162115420988767463051414427877084655865945156977055328946226269789118802216688713197678922919950452839795720690291115128591047500716912453702470993171678974319169201886291416080059379315601998841384668684939489488579817763347330679989373416075340236754208047345534315373670518422793765559168562030258025495949565103623440967277530600195729737195304108040057643963675575008661551631903237359689918669416086665553375735506918450558750079524124845011930967789412967368165315671940271651585831054318037328350170052600755932646685873596630573333046044838166438386563437396731410131646365126248656273064675005454271128719155281497175373085393579400377059572435334991031922730975937922026224865243156515100850404216492893455664311207424509569495139659804305073526639176649369177196827391241544011685307568603120199719397456094072644078959420862495076792171258006463218232803386707882752441133872400056382776770260298986595164287096784290980497064865654622999614755882209527449191586956012835006555010358175970133756774070547165603630974266931451592773146992704614735742091782169523815657416956105103532468835417912410996380664779124508410983678345260335321907914696102947744837940716425416368516979062301099469187189013630302758779312779046839645562285266508860234125912022456202734946151821233078102821215456413570653019374451894210276766359497282401690748742143333984804841158551674777356258638589886212907862468870602064000830809998461658418869670356773180077201291255350406900275422799011661261247358015414528240698307799372546839764029554897824986103910579306824640542268511599545313176780182267613248876207129911040893568162536157545497176878545549547101348872268743615553073109153117067197542310086962870492831993471703336648879118311738223469145337605680161058565525461596681980694988314323062111790540281756267368319003898584424545972404033433739891222853973224236264134929790275722082705782002404073365568317439994356508574252975101880070458788908701721389811983051658940434845706260777363368274215204256035696995662274695031327584771164640421048254956312156149653903185430322187879469585161778862076091869956840741644146745110959153173379396878164213743651135723933613105853630051492657292116426590972699286239530867567860971084957589225033948461954958650011681258194557666273047964744501909162431239419882125005575825682527188317027004115553694222163147360357773120933049129623006648831342182540555682536736930564473373856482069100313380441744183432395427372438297807511419449910944236388105704890861077022964770440563780878354301593812471205600264444024257590138590744265189901907556268258215620360631247886681736967833003870874343833690194354440560281267735222821543825006155448317128117202123548860562334709674260890466568800796450487864051774926069948959232169325400173214525619357320367998798070531209511290984661622541502506649896224842215648979008747519813322946199021086309655593049894624038669882363833635737951785564650274979899802481385116613537348238409893777499584521537117843336040048147307570027240874465619688995285584292168525939366497164502518481762124294702279880613383739310234097958657749151133873118319400195248580531684638809981479367584646128191830905655028621445662883581340627313299865375507700299262636884435665655894388244529578683850523654673126889420833834836219453382031101584575033301853132176373813622353419813385873500363194131821056378191887163331078510130530790321450379996892507045887007571325707406912623194614009175390090562855950233068783839363364241299076653207130215511808557520580983871230468299277490744675513393917769561891955296138411066163641277406342536019419071117271844050360806384290102141121741878084051241350316778682274568046114545857994330439833867783042024361405337676762159285952715404937595367207456225600542551270663456474322712466008944863589003735478295079884875561733234139685887372849269655768900721170453273235345354375566770358168852616661171976704493506804526200872862907798077671095045897475985295934344830498858444015753545176872648602549321562581921733691068496304021233127270273493121634268647783598045703957107202587029946855089809441112797325934001815088198770856921540195430436120565824549185083508843686798210092342901327211605059777023661827093255437134411282868922455074704507270665458950065705145338804351750170464338743819604624332580655370531660550737923886768824086007006369704927188072033515880364061012611136783228867464264756978210390685938951549748319318473052978861228686521585642479882266097405651725000301340081033037499228261373305108361393581964450354408701061338310150825512981729941815292031870034697649698379975208195410889488324998315045781229986520514081107081072414048285769806366985710034084581976621708553682188258418847765081458018873713679098604024268270600236500451770023741787000700904553219356606470401260603431492797975913028985646389643495635533626283263753546035292283774630954290877986812781329921153309187041166130366373672359296011192230039745109962356856991047476724119932500357068767002322628693353898989977923848382391334407481303502137636434158783602723904356727725080416467961363695374694623110332469019153258753749215937766514960524490989638851940386013600457749297824167070614122919644217049032815827876768805744901908527296299335489243621884232581458247691453984038485120967991256057791233172104132846947618257283805024329248298660117193887736353569277255866991921691876860648489036209978238950483223243031659691448212927783562452769588970755882900454587007404236891517167935769046664875828114185178314380883845734428655189639574889124634839423715222716387927414655194487537360160624330543840154790237539082524131263070020815761366164393764871287477830728471067663493224173935953260644276582772376298216120849477866954057723873358191196530237009392996432461123895304780964488012507153803712966986602482926454566077268359021428672538202272163765720735878206514645404395074585161263226736245065731334928201655467241672545353285761109131732125411386805924423738292813731042475943629165742463392805735254198301605646013940291926433284057157994894217785937951533690052366788028874511124312467928759630490906039103887445540995873762039448376009993005259225930573858914928750411201339217071566937967637721740296496399589688500927270906672738275656699530140684107093947872734043276821164192728085712247830011018163637902567611016622119712150166568391613617042992022893848794194175133856072844209691992150922693889783139148694489519357208932452534517777218736865797507550276906113686784260466815820708603686207794258447821787201184704459589779189468670136859592827401209276041324568099455598991517686947630285554689348497387997130845193776298499933804177958716073062435989727510562406690885108363118133103951423933135618604979066140648570923334680999633191797499599792832291586458182284650263004484915619296464951336988850767965285437850578235833867526637777449134611180799806334246442593488343078706654306232682833580810992351226765037527858634124118711435469488197477236410670840785615219989041842164205716707633068205945667159361951653541881804815588453030041833075514949602818138742222810553640539872223681719626089677653794002815731556660565949360827897156810923846599564136403618127938726460853642891036293768263918937218817919904080355797740474240066490067352858946777698531088236994788955634879044256319476458936943581727552035706350843337223609754405464335555319094715999587263851511475864312060021456799912398045741266304869648405450109716422374366863995162840526608996479327145672596604832839637271407491252238907756401329754053624117520094923195341296707659792955981237049988613958763100243883940972496728302679422151339231914182411657288228494764345187206447056497303653507311302820471296975755832486223471259638186679037456735019903018191475040275780650684473063049857785758165512902280976317821050887732787240981281029852242972661615675263581515321021604336768205905500109512638598893805871534247762548575881342019183518549544813765728679707907872926600492909986915856887081066278951630361288519596934312073046307537343770233843562531581245921102298409659786034147330966664674718038779972067725237515463117813422980853736674504741051246444037704183009101932618959510751196162832650062671246652825548840088282569465669241708813034585284261447142679713501737866593466054275934162537964389681149067130403016092000242627193578826016612759599799750524641911168678176511041366910510498076210993626287004062833209544733988203725591307409400179348846534071760618976418929135148767858709014747460591748925821794135282004130843559095256034636828382413128276815835754967001201827022154761021564280916372669819232143290801360669146428829784387463902073156801773697507978909729022962555826870083184367776429210993900489619036999125579317878063543878725045071062451838385041975198874591781610954073734445779252392823992138293417198640817077108539157618288701167912296261797187178252335895723992719428295500003578678779159652098418285754057434318945742300556470836320647958344750091471840638971414528618896607399847138726200302311073807539608848021290427094606749580745052363388068604956272445457432727606337409953366355342495202787560077402398239695560380659450353963157172078645662878539525837202374500775757807411740148845367560071537023100124630502468891713873501387956656869031324987929323912701741494265175018828201904069301113124145640537984721583859158382320353460498893678435136366131842734804978514319396398404606010140831717958875304586114192334467978772454205531155080931275307753037385388576821819043338763937591133095497313522021999630352194703978520518136879116646082445076804202561500466567651065953236978786238160506976520378537841838695139962588205335323372431858232415179080932690707931459503675727044893444020766833549032960857118972229779801693227128620535737486188219592470547482489522504615684841478452561971458011906093422913838231260904704309237038151723484209999075037396552312098978676881458023753896468656223452438026798140908160417499912190676490685036359502669579201245148315564691965329751980557212175137029283024736455264757328193139777605948902854587784932168391083262492088746855657735017029809818802255433132627465089664769922855964937303002652142423438385486968888970109966687315782975792008070603974177914353473358208827195172238356752791637377966259154935963839984683358513176946344755964087125657964942402697509831161799453922565335050147687739213625771840067703323525012683666368213106686065618168790733897142622583845662325705909997549074622907137151485888555880189488338379901340038595864073625733328707564513450596143288403835792471464609989881947720713537832042065249424339737537730381939117574481086999368224623903990759727949327637708399033828283920833868519905108603839453944408902064735505861541331731815796944232601296444933001461084043827531227656857280759328586279644284866638983205458996532056680247389277434404655257346854769916522029241189598819681325865350367701539747510668850455789096770077690964922754180398321379761493760830373922857398675159226924489419570867180379646050004372817245002674951120058718293221508139099667722724641645670179379755529108813419923383579140152211659902698295492574796908607033160610356160956693055047319767741840613556943011807319595184786392844835230032546835885420261228998977807359506591151879288149598740589873460226202201738942897756996396297484118818114832863477933125324004754470309622571935141120043003449849263547368795238601159892070560715787069611292685219535214952515697362826502667308761124657786188002129013563540600113798236755676904634406428119346578378892637257795321164228413413573622995636476145348932366829393375904968557182458843073821117553293936049508559535554829552353327019812882212869351437049392657912953495299050510990691420463839563425207741563206957699996547419378779829026026873967734905386954453284481619156472177339740027108143762299862782119601031216152977816086392174344147426187457019167756413807265359554735760457471360932831779799397826077175420329725983010388173043282449324885959777367394844906033390743832967684986101742097100976631371948368110502466180827939440032653311017269980051924489561674065186323316692125269767157143936129952383103855350551118711978051439360663942602828766970836920904779187139190044713453267620361284593415995185111674580115927878786322837023368489166201857049719337461339131245981574945469658787198135749240518260089735498301887258540735371796912858291880170274796113680562288947665980146676589260429724290693407763024982455713326592244078390747165813675440893316761049473814343283610756700384993775153880959258045070965315670063007965921693324477761633145708518783667600259437570151676298303614459051835769923166439835873037130364250122867446312725144621389463704768172707224006324420694768120277641564846745616290970409611366370339293231666653424268597480234224355603487661410574369402335335679380483912618842967902035329763925951428475123075687901149762108479103297819285487906117802656631854814505858948079846338027540124445602553173920572763925440440020203617729680195056413407241764406764168927063678249318248009752629137630012290048756544297687040325350358943890164258539091785590777905293100149185256954176547905341138613985575457882413332434561461678847244235404987014856864040862796056447223098186068053545605164279636266421743842026810037038034839462344403196542601349007373779885849999998385097349308954820615814828856542280021465385250796733007910131737508929269386505402762871740932923326859102655338646949233357719176864380832065941794934157425844773050167499040753659837033888725267367570622850903582845948232087812221262125934482061487458483647458277176034215076553255614600004173771250781574470040119368607647804425970793520233833881202944181046951432693435288479443147008276652495985399060719839826447557933321451630297431829075231851039951423775530640605333578871432043366195510340966875178935794609535793552567707387397587928971498319821604858450558794104626057422658800046620016808992185567466564631348578630093923825814200688262512547492328546547237015897979103739262452142182261981649380553529581318224557584332109164723915227364698225692163777935367116645718119639633820310573549678426555366052030626041200406138542183249379835936789206794126034701083447803823817844477579842466866778554804144879468462760210152959607936063446321271599897552778176968131053862234983538315760720313185422663797166548944684237360471524053362461477136834584608172170567563010868617061185841218324819258752757726835650677083100008780914327808197810250359080067664072112534526230412631815136383198003747470584537050724686522292777110333611548289116928109917618782361422534741229753793187086381763072077701972937444184967635545135382894773420425133227180550725876973362063172489147985249592749333460565747624484725793776948023064322024317206595834222876073077695997699431887434041075446438525934038907649014060855230416036245604104003797671714132278723332240879346936851059071777641180192620271843067411746071381434453684488813925039074544682723456721015321308340996459970514057144216456186491019297437975910303700703097049268548774607629606911966592663692306003231681523092491217325190755241918036560794574422089327195669257718775277848353253572229726327038017230767530910324622425169183636091289875007647279722999199511474365814524568137650162273511924803235788933063527478679690633073652173691692811866490961271429021606655692501709373616597309719278585099403919296357047715267632419428983572003774700583477382590744672651608086894674218681968475901959483690717364392424433395580326300745664050857907919690542753925249953986708622440165074090469484074743727613262531526263598067075941456991750987050041783438265386424010232224257448082115988481244300907490797925869848114335703221031342978504835455332276886601987650548191996602389352466615169003222513345337654935680646660230012387437075831709426139428157679958453024336892714701108113009738074267407573101984923254195633552335139414831888564623442800695385427878191987555749599001289839446035947716543819011973170787392356907528152789721903287137079961285528240030203355756977737591146879526043303296921127914670493871206937120334926385184257098442860129866301066888656753380865908535115631160145395965163916024866170509615613034317090869922984154513839026904904290644885444136239771777409600482179563530055692094703673257868897343951606764688713194937286671442372483755045261277975755157217371477630922842610950940227307582324370501280859508617123011270862910561062677158940261690427013910870513322586479236807862485509420105739306525090452992689865837016662614834010422430493124544304072363928581743933834150598687894937903232870973286087961559654333360709974067143938482801238136030548442046350308240168405224303525269806717532910823283699205241005281366061988893395901675268108915764271506176667742187999076335574311747684785473570841999586751389808459046728552646638543551109210545900980855377654092696612899467621687639749443722972946578775080566389554383895852432469457785949512454550284940212908315604272010448019646977877759742382178856927894326419536751982008804617349705592161656762329554574042440984899829219068911151615845263228848459826886272110649753042964530328480728919736826074361779779109487251837106782960915688458927933125361022932050155834072196544072446049936306416554037280582420853119626802083534857847241186082022543737023445066148854880782553872072066558397101849470761668156457125222983234290151668775594990616247080111438427340143411016781139515825297865343503215687383023772699556864302496239267650357327029484533181628430722611942241774064051591908082489248489573271644329836648984909217921884481229602947154806883184898881412277480920998238637755025432517580739061710717405095658131425056518480983951145539470265752277024437335921566966539890576902975082592804972224684713508729694618103224366638775609008345755656511793242044366136570075687887154211061732945624898224699490254846339763504019273621026037604637732178652390081715729582028859269451403857399818741697737282963438602565245952218606672632589985530496574458979747511220933993952862261124670417255005199845977080125861554765530905090449151423333905683843496656374061954720193121040777694921094747103331554539961753062443742948435797591268153030424837618966323698217256549521282852389072476611825498662517439498508022101554125041389549667412512011674985152116019903485680794967527772924768262573031658315386866738015844161634507663242458469207393844599313629516578218886535665091643714302894552923931098526343109003898032903996856621462224057743225273495551792937168935758718384464695909689638759262630601212108754725660448216834574773184723889426888918509330679627912903955262062593905048951141691316760693871309233643104682218073953888047635962372749877613494372328542686077755703213770490453555658585130813076452018687896774892932741961615933628357086231594824636698493948659282734049238138957755116624781823797169263543923557346295691985841160042488180985388126822175764566269034300850805334788196981720103720210399032489496380866695698296670402521162366088615819665640248415119251242210186710150149680067139121006765777705465205909221559929678825916465315736159652789802421144814718194466010368231949926582956995484141811575338791753534974794455963526154576082259948304598074859590965170088988684317897464008620996747051504017213229643206646555135907057772369316060614455765455211676819942604466588402976599349162446212755326932025420600254891775791195071249243332045749256591109961050866714114148903942129670852622481057656458013316031427057331842442100145316475429173560582801403282570751680250808379894184519561009479580722533201250883826671948553997390832465380113188735214104330559196244288021962667339659715431865234330529641524563418305602175031478878454327110189843332690747368775366707472998336393507205251583889537219879280090908392399490689729883339475726219554746988444675296871096858136763903333528544171008964487744695573019570113936216912941399868429839605964866483438308242778849226126988474611047207595517043194188502644049823180879920134160533993424593572109903624462133101641540405451653972693848232465697880801778520812092007399793495844220244808138713762631368684047245990939296933612803228432671513663270072578060241062418249984155293359200742343694654546629427085379841104376209600622374607096199789147118425332551843806061405517096797404139055994565261655371580952808661504618271393160621689596987286319718271180949287593605628451423897842185598226602942427116824608809857487088214574627645563811666719945115662349511095871506739297191650895083005180155097491274713294922992615926562413780285105393029499880838650016681776580536911673256464479976331809883347312767396739474749119920903400547821043504941812597682343524792533264798654722922778032835278033093287335905892224875501925969515287790840629027236644483240227016490520832440332909754008000623109642364603443083938432417194852874890028022392015299560119539491248593848758131533088886245856338661584900663113289857990877210140319911159912217275307214491791718373589193457821733662667092404468167928841856294476175214287323581420773235700672249797584982699466366764801921839139024193670934645954945904196893525355036109190750338299711989453184464381430112056368013584097497132231068300321509664980258690453791560885171566614564645247846841155048924235136723807654140557740775926071624483978657451916057153249867974953893312078883045864840004977967469438740970675360826956233449850471399665445584151274616629176144992917372362599289710423033965945443370506961095461328269814605849084800811814757141769648516662507147534143342360672565876328450361008215809922845627889842332964228382950666691950366497443898207052363604000686054390467828794774145513056923736888214365016943535006309694478028838033418554357817912518531038211393477392829356512560530268000119996663249401739419769009848033943904829432064665118546688631977244708121201232495991113447855538260796964495230090408672561692194219401430158168814327748076146187643304372745678198688541999076764993744428367200504810242138707574034733828273063203173045061407697821461945521882874264292802178295913616484919041963287053105011766167476003980022413447956875113165805228233645881842895701695780785796746513086004334203489346475873853479698846286919335539639715502600832268080485319505866205250106593676143873222175764040955995514652520749311253656831961103697793092614750945938442959203895954259310501097604550487958820488367255262813136025919461386373311616377633162731314664271178937980005062591071642904089044966566102774984799525311910586016658252487066007157686918305576666538885088058877432774548773600177381851738819362905946058916086309308331487291265221988850035152969592638458380812388042676454468746137240885832630976243805443919580830850923616187118049455846485340530904742976338220136322486183116796900468906144054262238495280389534632375713257144402822980150947937709654137080674009218296749958094400442001588801432060555782923502341748561617783797344544739228566555750163723171732077495147948505908405919373201094318026486711528602280586658367297303119303645412121830286662510666447823838239698111966423695336741364559572879050352484744490489820502607760572157322042066131564186081623911127812708300390520953136085362717644327998098820582912950407056878534738538946066285442415580977705170690735286772802119264691752899674605955294173305600075195769125419187444810020190163815565291174874826167133872085004317514967237047277981278349322150448603311124697824676188887205058150366437519452244277844979404882419182154242041045516439021150713123536758578179370981663945288546840514122425778753943771478179252687002923927005299765579344787503174572588553531240153707205816332293817186126279242117002625743942020514696642401071829506975691606224487692827273290300936224329060037188385234097375223684815253970599723254127224755239264941558199209765402245783847657489292842955428477327501708746221046541000247375760918544709122666787219703838237142060377106309841559456579827973669914121193303627679872628390315283856723481188006288786081753719703778224386885311214272873730450352121679424917602894309131113088431605971856489983719270202293723870749149127438223206074259219334350467638173425115256587132015067865994406521679257721567877367096068405163557834520862625467331742117204293576568844938872822019375856438606326355039533392341560895777966900103451370362963611289869969716048316350220102261450925237640390089453162786413758111816684406594009291545628727154222506853914906213841871257464929049498896090114546267051627276504093732786004139653913653203697152700805365046858489544300480491031026275179023444610067377271034882965601338218177119150252710058388012236657866330412116302638272672563819213981849459958267181555493423692440406219072749840078138916437798805985191154585465972570105365237700504509366287938239769325344900847831262247802625920958335592565750781782213547961622438091936413483079981188219376371561185780589857387034210362403965804627408112425727175298060878145323056557404046458727831446213378325427688757854892984070733384159233979503670969675564429488846460843843111192929409197305609289706677550894724090996909477228820009639454260554612193133810297993634493698551481014781349576191116492036149479616964892808866445940652049802256927751973742214066632178588514323653022475466991310210423579131306458017920681810117677500018456043679323697663335104631043456425618058960201518484487419801135625724410133725330107890964833403258682328777351233195070033075993083154669470967775880768689974104731642756128212658191949123302981471928851954521524894925063488529574804727397196628702652267743863166428523165075043019597783612179475671055352077918619062740375251247717692244958303221599030544810529025677007637042242695741501248849463996479543223562097045945949542888757102047387923338709784319158795878952593134034345514918336544238940672244093075047215736775777834498325893647934807148296155997382825219069110169467434742393375204701200941608637575547981393182261364203110451352193911598895619542583692094289940415509177769736152562828329766810626023301251845256984591541814936483732188129306160077199108124771970038494389915758781447973801553801342457596961476985069397588940727163357991652049237882136931630876358418690244147795784037517900117080854083432632797517022580897696438816349693265498344802818617639206643169144282782224546127431215508108354534727152821473645042826427363763506843950343789882108671964158616920200357607459553699163304642887913478954638898993311053515033080136802260868352902964680376603407248905829400713706917133107774276744221095424905555142686139022759649031510479662319715378684954149827625344360460620109466670805748184963397756196490415951792410429813754909525816131144825176334770316515886032379489267864016421040446740364810278906574005806178828799856684706419909276974907780595685560475517409472361884283332478970898536360414766058331631002030173218162152596578460329944268226496916787793361800235387812123373777536434829152228965900152640365230913445651520963248600317251559386275072664850564954285547589475031081322183596237829093523641432502016432213503388673889950551237186143604209431398141006451938152007501317599719631711950258382189381034579338185211742544386080395220591203050728781124489296526226439385049995141330678782172335650238374153489601758743287965588044522700350068112679505520554723389532742939644655801249237902291739992756004907933754771816783558386602470640582994084955256520343861626875918199186716622678204493571507048176045015780231400227336096027505478907527561979800495206204633663407280454461665121977326774032594994816331521952194649577209214699657124623048014299842585041762007903573299429138374881088887303336877604568701974615720220102647727516933779131550305792690653362999698559072169905541314799807359741975587417864440394207210566188233734894134538203173727372911902564623132293947691702957009218883249300611060433603059147757755779297587164216985615648442748232729839957646495062009910107515503173341792784400871535315652389452013623961592566319412392652265361592296547143748351295616976343024522664429133502623641716942907893055572495992981655553993114352796770964391001607206113739736580211854986809852711337935200857672126387668705017742692201551139771937326212887115056422509923940411324841300257369745302509946548957353431704565329018355745195825679006486812195699604954916507268904059531380558851631790463810449378117162517467514611662345115580713573851578827109297193397476625366507802103074497635451131506102621889399224569848295734159707300926943886793866910446382418155110593595094271490382003119182443764598913633836335620763620542704148808994122538584153455499809043168633589840128323515080656470398143851476285291503911315828925885771522652214817492456188294713196418228723477625786537143643741271657716841710229934048377265836173714333295134855723397566092172463009447264255646505148183832028518788292963763854311282055488465406538576654241853344666615611022451383720418133966682576813982344019588865641962710795728039245922658088189150412743421594432970485823499474604991962353317325285941703993599205780105976264677402245694159303920725596782513176816235024094620696630157647301868546000670851556565308080501987470875044218963228898778609078272044708890203477728891304450576348657085456393041226247282686569386537008432095537655938737209778057415878196152473547878115267784797604511471934057485839886437648616099517966555384051585315311452486880290653840572926140897747558712633339384705589893063840282681271292811306299011687342849178268417301468515203478335193795826020641640220632721241011670237314302918356610591222655255193442452571986549723335859120269196340235121942738945248801943802365554955704363995091770728445455232327548100189265129053233170317602823811800494314606846450987707780629060546928041349419800626344778975720674924637795967280430544173678815898697877257110043125443824838562774462317313919362204411301439680293279591378155634406415084986015310047967804520922118492198839515203516963291417867609364244079578130466628655664345715242002272139752067327056481230890364895170466910905921439919397379584942651043426516095358849278025331097529216834961367735577980099099354494933932575774760686480793820479727252590532313034174702456660794872014064364673629748375178857735923495427017153716115643997761116348841541514113021627558531754472995479335103191932860400187570298247058847229991589306290060912102017005987256494655347378389176053741056031962787351396691029377199256170276029005188029576490486906922516411892397990383478712526837176025802454492025765108546184306236921081764517973294855529394939227450786171055510150404525764618138607817143825273150411025369091683559225294162612676379345552129657956125205863734758255875128504208163175588629918606196527803028508649376526889212058962073173782274591755440474013607102846921397766111495871658751725148980342292563662629514893075140377588094657005379588242817982782168213850866845067962138707549900730935924874912060952304686651529081506918465939620694544120990628339345930257381103732959843812068577895172332458566786785114264799287785447173750018439067739112870598107428113456508858290503983863718075356379771658878457877888418076315427031202054524848882320650585116400317314320598210003235675038739698489722958688748095299292956398760187307672150779211298296271431634197872504873791796961628813350608547409913525769610011674900673591730534670924154079534985684181178409809895036383811879296895648790945831130792625564102098726778223266970454176281558089393266809430540028430078990553826210064791545201798177133588847146101453367351995310929940941323248887653325819033269565312650071426035049719666912204700071744732039229133678147309677960192648377790077665035311802377097663591209079427813479660463144508146306124607182573046989010914251324955137710331007046144767432330851110356566788106110891768926681264757047649125502869879929630350684141878661203459658410415274942900032624896656057363392323773214633440043825614138126583767995402430849508579907729074723658994028806448743080120912669178643975745934369665625600217740742431695478603668461862031308886988581280379489029099454129649303863532604386558241834852163569300076786133724988165722051591792824675875775399353763200122020060126783209246467456118765105112274935015932848054729087704317451776782119309505069662800503636788139214470306555020707843131814523470482801655670323656955508467383598091789946019926455073623420550751927334518643647514283992282706395744701928122656007977844753339580177119966283038964476294719564756818932842916805680174302809957131436586063786101700408968788678842302455003199473007795145103490404177400119879672316303762859286620022706118679937095089770171569121937388412329567413095352553403200744148908394736036070329988120562516821857864642929000773580611104471090859144097435077532464216221167445864646669008014432250698172126753204400965740570745405967977378473720660907441486572984421556561307073459657216408318002699499442898572347158887996455819169135789158347929657503082179372510375727048129800011158965020612204104220953248062144764185210580734523214979066096620538962519957121298523514221219950415143885003014902509141375165611279488300173025205578124100796767817651431231490071501759064690736316616010635414738648325970812809866248275084522531105615182524856193132808662929525788437422531180924197110491113533385727104180391228031915455879058223194007975234073686507410064982423435753455236368145748061667726556936169261338464954117730226878829456032573021264785731824857251928333189177031683687223119236228245990372165123169865441486409427935442830493077702202201353390136592003642559818344709263314500390411291777609954804632456793259941721893074533159651808178395355794484472725631478791365845042764328543455619937529578872590090942793682944087562712165808457382254057724596370736191424707544900940030578560945809827391472772308551940047057865573264574846123476889928991938663306602719632943595517867364784172152372000692697707567817541858361156093319234910392282463320320605059010809899685726950148616416779834962927041009009743178948100022834404734692359956301353586835166724014002212897150659315520401925733802909147412984831351832912809176063250028101983788505259831813903924988946991053923729054110080639326248576203511066538931370843638406113759788578561693898761401852633215078060174633011464864263008393144440547931377266166066703719565278614137471484138617367489836618816104025151714949195878171906607943736698033042296348624077351836126350999281824487439944979466256298443171949045756521387441487628651796361086150385892465632021363649255890315110232602093105350209566050739879244415160036019720255059072293156070386565244723267976001331827182965692267128711355644208534391027958823993735031862308045459983761228224311197970857280548518766622203016607758793875732636847411306289775850645872824825992322408192883996625573615520647503537923589999050361810982697347677391169140651995963200532833537843864592554494454002609433396952507672616807589177991103958993752594441944617233809348467476393777017082808514115098568547974692578515807152643276427653260462144265536832112912017827940964870926308074517189980477659500214739854109711459174748872056135398610136384896919893348757082785489012872416811544246932066243145900096355412739532706554596939875992554599390014665265954853522656222618423060881590309102248726097238999498446875991342781545793048205033051339386927210489705215578307364630995159722281292340805407071940323074754739976404889199841494751929505264091791571366482278914073631408762417282130323041076318740341046641744605708275084145871501063283388153076996325477238254002285768809292643138269703093627934279491014986970470511835346658240147792386457394258917633546807999554995968714140169677504402592699762471718246913559655997729940079158083095755252406073072946464361415973685085496824575470514051054661574658115703724037881919155965869458529372607604741668525359121312365011553202667101592330111166467786765044360355563625541118591866285196137428884734743251690864027988789883068753494647871452095810688437076202337677285540570467925072944862864857166948967020106461486916235530153681943803803765815808443523651227073832335875597181809832108859330510044265617040632145362526364290976374103912553962131686472712825266275135164537792200401247284743124740535916642638817817612249792968588730299561975602542107407704067325929805622708000941895624663908902919761217407000134928324793308239646990163647598843310423591758215976945112036953467308853127630601159655889868637923293104897619927645456480728221916615560622881957128122161708370915140275472757494666054513390856651333170475871980250149376332845777303185714668680418862239102910292498581144370952967380011943897818257262729121291438989391939494250573000571818281506454851199683426858424012486976828474720947503089610901497743759481909726017235090030570041203331288842459967567355543976730560059471206103107472890116859369365969504738024934359325159944839784682520396241243659316186252567905821805927042477251528749999438030569359771770322944326966813409487425917068915347558888764127700344020138624459099903799685994129315632380001304134991564657097701661617581298352533676057182004292121099564067732047906890292310330361228706712832504070292095358546306864163689470100659388175804728177268145204549434294798196814216295326840471560895453124858934413061180219271525912263262514456861575477649736125372521421646971907108454593396790262707589156409788608435996662968757282648333990730532789035700007776479618580674279246437763655827150987503530143295954480184717455418749359979688935292863642584953629348378809830244355839919599155323863886312798573860345743493993020557973734197989067224681050149189359594642231745709209420344471043157939282185647304713188364038592085390567887814525363187716927524243472736980943278988050193456772155530820140483846412574770714231746348456383145215258936463532999862129676539365036388335245134226482625219983832687478716721634308581444782008018997155248443158109109944727196072659870536027250065043094271504940166181437382285561404030981810237175800876026971440765101446928396755513926474179292140657640892794414198632365674258005748269008126262765358201155143432158982531819650912430196351654648857002689547473781542232037599952238990176671271141546228520545718527813694498604243206454749599494827643773522103253539041020869305284551202258227716085598030188124547153436985284629883369896707426639145240561752687918852228923088594293821867381032736912501099929837044715371539221127059373370955550774344116544474596158499503581464747102333849637519739952414220729615770043594105910506818195501723638892392984948575881603675745278148540432015046755977053534553399377556426778972023781200158712905410526196930750573217759887458092938298615592575135849557997124163301873010436718532763406640223844409679204390601481838708208642060065678548331442291525441223857154642990261783803021822948824246880157973833193637802869067738982090700689122027745920301140591536997998550419994551508521885372006312572864003040594738579392788125222767633815566947839648183328934265414007018626088160701282732997269927698989847861663946903709408172236695183172554386889041681993087253044417136079369516413282452365612673420703178875008226564816627373421539676059914634553964303189780138079273830730140408038331206334071281775103134995268450721064233743478794514495515916721359039676013361500245389283429667482264664422554176258881613796137212993293724298892247952923712974998385398479774425532301621482032013633703341217677291932922392505327673097807278286727445181478896461862298629831173546974276251733637853096374915805310265084346635709731369948909100518528930590388354917331828723188474209524140394992647751679062054992716425156654949759533730993310627316473352087740445813270460892319438416302624944871558838288372367341792786029219003333063017843076941231767011986573064318001043631322901618320247600891160420281293468077337914759060611707873608782069170005192222236984255519117870402775194556043304666835590346729710075877147324656937007320163476884855480814649571943136411960265210675581316103778846485878706603273541550799609047102642004761522344741029045471128046625400062119598183282761134093297673406641254071920842836770391057996385941067678512345039588232971533509436400692567747066664257090275301384076493818085363884721430682930407888927699740361083468023529181633440481550730024751355014553467000314139751067734773071977405408520441906551103124231975522101612800302068506989202141599890034210312804730111064158864831186448552691637864355288631166747947109178536275039106693659291305757567576888727271295044787790137599383427272289794341052898519907430527721673179877409641081163129944591034654510111240647531849165209047126695536499879166304959707624323337057054536251269271520767889594455925162958552079557178104595467917978899497525993470898996985925461332519905543939594999781996026460372517647333013790874648193760075877857911693569736865127919924164277598064656155467060564363002930536333442280887774141876037686153877326994512288366675201294220735387764463556569006568738197488626712716684402283805036535329811385356581319334762955678165494402304862641890617961812497304122287551782340116808688400238707115852443544904067669347292479249359436003927430631598456236397780082679780066468674613702361975139559464787064537039761027654488776818120003265798696277759026483571163950562154347089149973987534806334789361632748369442647195789623774165026605813501230109989897812496463652289118835503294812020836057065705412214063028058061562140808368566561165736547584916104470605040167646382636722263211097335646616094802038950282310768469942630210678128992265217007967710440782775513875756393507488483542834171904006798909624386525142235109075495080549749102745641630943887867159065411277833216088734592973252633320948634905169615681164387029474999907478634519743117678731732010567796483210314740642419534344502651981913910558415730337236237182964961866440182955313005365615685733718939487812011051541358671418029111757583657767624868518344425471523559291200465840014382697403468621967951960630895333444889001669167807166689674376601807812142641453917496807683222700946647982525171038135753609303299996789738208360245924463103694514217845537459784224207050803067975284650750205825625827818441317854925905355105584349294722557582568142878335165814786059002730630935629300414650305293406059313610868126888456778899949512303182263152781733914964698677772834671240893673164796120474236964375376683755542284609455681563107645935632676135239800531486259769465798563001546276947039262599743688024222254912252549875278467176588744834491743948584033038218266597604403489034276876101814553568641839270810579307870408684474771040112145614395349611873375878875409339147957535469138269410272634335201199475944652670255434192115531831610508209525958648581242895442472913962734804185875476607813240751403592407427014771484021380335481670515666104680851457470654058873218020223441523265031755812139549953227459139925690672198365990130464887695054429858475879199534735668346215078646443138571922555033095257379630011103612219358009519246405965171897187344141392436597696450453905231159219771315231514897199169422623477293485205313974828849924260304159440566920699137141146447119898733458495739204155502444966715504949885644409214927129273726994452514495506578322782218103877312933186542261260714816976967746802115219782350163324039693591676956376275571870772726973476681723397985097002787639152865494173844116176684541932579309118821275668739243963858965996193721641628406263172085462943793135383828868094223688457182066525726976256056548250457249270917621912963085758609607069801718166903814151664703758727089965989473835827212759525723325980568880406118833846253518581607232360207482302432720489237845117328644403855406139729328695987781315530105997527420567003106755558298252138533260840235896970960083422742994279657575070552711890726207419577590727721062339215011302879561491074065796013603245222496037063282156056822548904746255696695659740398905106459963888686683089622174554863084510095839083313321523362091486425109644098570377187796636796478552095919486587630381734310653980093776265295377297131850916780256377207442921537295943202575485796979568796003394911177808511529412335578153906768733407387888605135102694195667508921741109642196020935576023589591007534443917773579394708484635361663284079636934097447949384566963131656330196002710163840447441406679724389083999328125277283381422308218518827606394374257406475048219236390601579075688341268733524164783856567046039491965143128330682300672645573748031636069232726286861716792603056099192487037894606641259975002312812121140178308800615418925143794110729592225195921658557056213468948374404413677870092237318567355783143595877526049835965332298225141954638143482177303381684596688358923481768741917372576148012861950225418788001873955420068122979292980782533092307353513933134923595198948299403774575206238539333580079705734804375346344391994458496850821280273520830389144673012715500073884340683700986276653454844273720582905769341599304879390399294004319170829665817720332543884479680233261740499134555043906220501068778121417222513577685167834270255482455226760659595569220940393974881827148664386984096578402099074295776305494991536263593984499928310391437443690097410632343445492712096068837427137143071104351063457201019752582864740864248113665287667131641657260736119698126652198538579684454483530735002387977728809348592819162878238477983511213410266093411935157600376217352924429632974074349103610672423099903526372828848591708011560496483540134197935456480348190852208974408910315135992571873680210182899062757420465053085728187678908426489858311391643166738245588317422127991985360720907199277128514206039452376115893612712787667829527841218215553833599881121426686502794070018641664057808364867239408673839502614024716162053010595488010859237164601202148771531698476506166741722343712006132584829560354393427840592509267130510039399181167052743097084093062883643124834356466985722960432778018722935341016353488300490193361883923727057451273354781855598576833227686991559818233411246235236463628121828456473160451150447091190412295123408125019864951492210759824857044005994033766504521796098248112138423192359588040746783799798738911319155887866769647523339477601904001371623398760041333895039459825712503300308293348868866394692483307449116274474941516643836084059782023002790525805196595938635140985080657986565362203974293142730525161969535584123192411748219557548595666379509108216966251592451486851633636726868843032287976322098993222864425195144270744489996821855363584000101530040811448899886713990315789226159430324515537527063839452374040100815017188057118304135901116917078386707683960554586236429691054364160958349336155289395130414371354948085698355311242916137273734275869430779042966019943197592095341948905595686572445628557389239414829774894086009498673972923736941790396496547626080448720831274948299979720153046719377239055081120088048220408660500829366538006989158561629626365337591446979453594331602336015233069422557463613147489851670501029723830333485482188415737676225153250173002559304781891548526010213611842950680611165663036765279599062238025974914245136222249593474864706388061088303556560714840586013459870695378874995410935667888665658534717881898385158371801225811832122417396967467645791777688387472142294570488966599576225721471470366604605884437121921188066234668586586292114825926389116952890010699326479630780144928550835758873607859087861979487059384461411638182940360672991263572638879009033680994031353270314482978158019648363853194834584598856238514334175610942387600301867954532659698986484551246369884003863087908565383750540126029138747298956179170255520866023493638961558780948391203516931313265588928947794247329667225031992185889844491807164921719672667091025769248728536688972794560397235531869946513545626167239124498993811356089749724797452068994665131500365011858545167324258781205265493484667987600335016239542487077548919890704200267977275044320459990301362421759214230097936813991863977489211535497650337700138422935489429943427419063699464787455569417240902098824969390095656825110299230573525315316989995556942588431604924204497625161463087857036110884487272944704046237549821218870057886219648665199806689148660428963224848469860174511070299399208209536781047674697043564666297682824419230785912350874336495410423698506497143269024010588676131530897234203305597589180616777296069913012272599640266251492052303018558853987840265379398709464866191086102382316890172815293741973801148623988499087707662735040215489448135199420531578245686462055949112900252259728786975726883518322905725396281152100254506058701203968174013289361047314174230006687653967166452025494806087581986484565194538419943441761916364966503715608239962181883698480537260600314680404754112923048178333575557822794987450906779867801316910485390069782811802651335869704713546021748389220546354206212519860810624735275700136474251540382555389498922849460292738797585618296921380350284565216682347762478148036701396878560503688120845298923943361592121634929804212770328059546333020617298114897572946561934689529660925913583052009316469938025728689580207987581163653409172054560835017991400007484068651718223678894556133428899201018506383449521626540918944052660292735747302703057675211561896127444203191620106982633215026620623324219333654970061240752424780666229875333344623832616327988650415412689449019757890709690938219372799699543753278134119973647747102977978570369016549528579134230449852467757382256470475401341387365323734482482482478141731949355235688321887464006009968647354861047003847567581745979945531565893264208311183801978351662606099136578338754478820098460756459502841857011673545412684200773077360163851032273604345275026274124027683157635426708944968965330727574658835594075483844592383781131951318777533303606000738242106742623960927320792268211379980555333130307038890671271580465655156686506565257565059001426548884723183793248523225578109066374698274195808857474664471079840914436604289151246260028723625377559155239964644268146331729701864681246915464423368786071221428782436437242488934661289228932226819445904545332602918465560172085160203098828280712864269865455258374248415552654844654188038638066343963156189004003962066695909605622035761257981417176437844846919704516357589522106164504446922951285830415719189040786616339786798714443621002143685185427764463174818284709542554220564838605274633028119082998894062788696130758463718839218426265328138508262724631471927563101616975148660295497684957155155352641576791649730780575270331509901275363990085954029884336084985978625903642682235330898107135004286563293261557462791450164729707455771761395533216827795210454640697265879015149389433734564317261457473884709508307823169913759721285082665295708850742408061279548411897515937983050044011113047352465432793166509209739131664767598257261416919058903175434958198093953860157686227574923953866521757540288954602661654535343895378230469776107628563420813672497568489824108343457364967734211757171401446148188683594965533789087493280523801654414381867351236235378594106955730014748042800126882860805147154241802898435157030907205687311539591653755610854283157308124853996568073671643415195149369931457240526705941206552983049330908369478243115769920499703862272874159800807741932911709091816070851160789086887934930229900598529121736454578054477212434403256219064949383066759894345384983901913796641343539480227608441634254157696238476166517376968109857162072524610327206982869094267386056067040260893857855099391535096694518370081450072289905131811252192442246436586263407011266146719319841913928856154645000279755549829161099344883909083586769746687077119711365739766398935265819720276471621794180281189558560387102719457816011935856458952368693231475924925118702412817139700377028361029454444468487352822066853664639657520702315062270189539667876075970870087248534860770326195308141405354640935419545195623204862745161155876205500828750395553941683790384128395989757471491650948285883036032081227476187468382113230792716215191821443776934781142724728370601772846378267657454348061826691781920548986472632730256441780723790733706016181697568995362447559548502485082726573002254790677214810421337491348631025165607206917485335645119001161760593108380289013625469581857303195592624552198423546020305839649986095865003127975769055959351047899574613879008578414516226873425134143288834484472732916526207443088333002369664750948323600719385052705153124681908410365738571378427585608187727107742327452889638083074784217826359625112341916895113459015585373141062894703650355382981166568926236858853824273669566495765638689832764011485363684046107533332066182020905810614931183896152009349254205372495139514523002500209130135922597607873437016139616854286260731233088213007816335176037901588798762279211322686427898132191298106407086420511168501634533114158106165575812315645282885851416564775370635253682590987953454664279969948942147944753741311246241861431333112983016380819631562521491072753448202642468847019141101471889141186747988758906033509085221808077784657997051079563689816506094034733539988940896125245153784519628475366424165522486086495824079118986312656539639062451019286976861769445558146151539272882945226441901936817154056571655172944525044933715638079914586888124345416324139237666015128712644877967624158165957655005546078567921958458145046989969420406131508011476648881627576465443209282535355331649991078923525813512261569603095808183104003422636775525531820127812939331650727478706899796626511044299057575882455810485446339698836378083594854732482166988587660658088227046798275639029751873411171409298101133778064214276904804826654687184407307610471971872014287402020332331689925840717550830299112920119828405939501504093550130857813096183923509649056427535562794198157083471262617416245827369477704316886067657851070364946138004642150046244342880844952719880605846402116540910161026401569069372228075160678510938439168817404184778122731192458688689003005790031600900111588215347571834342977850534457391230392474448738488726602014303595364127343568614557042968890749951093615389440787704063622128054955183262612358862578440296551099557997493972065858855104934782923889983166831622319546067471416511489392344961223210355941680085158765090120263523174796141529080596754328584724922496060811513516981488937323333864114503818460156603039012310085527017497335385912922598616467441350287783827287766749473747111776904347379788037904505684220575879029237857621961716401522181233241771349039511804754839402819583462614736282215355845822267291612410439170299616527722209495783800224083360736690765314075010537560590453185104961956228544344412111956142405253973486032579242586563521762736390525810350339240523493141573120145360581871740151694311052387231298958092641326778161407976393971116065125834892638960344519392291708997333547648027385222552994798561188653099970988513198627024174700896886417619689067712632762071194628448997112423395379855832984278467952151646654357429539875185411455336599880024088776343657968363345095648488891927754399582987857144585359721416662686154123470554199807566809919193615090275511539030091789142532127904159172498332542014311002269962634505560462551231002016468724234772232168784811619602464190054980011443868947853347815016776290349480284838915841748269434762476714248269576973648557502572244845555865395060192971735874075613033020179445210454450413576730480421632122890174466205975652490793644401770332124650925547741096598704339542593347981100349508907473225379605689076505794240241059557117482797726055908971509588444198784884164563266085826386241851094650703024833761826691272460535066677742015659644742634772575207234788191427037607462831719777930878087749114704403105926337836681287239143874737900817177688016956141749368268242102458718274924299608941380710927602445068082653587037766111107606488249768351149919887561702825858553453894699020056161602634016854531304602806365494522435348782557862129526570381312936401517678728208443722272585155799451795129720415220252620738165297896666276611719119572304815025850058334128727215936826158360809873738894599895297535540053781945191203016555652492405545668036059849345855441484073925781965580901225961793755710522930328788758029937803751195451038997330214788513310645003643107815611418038584467574097913063100576518759377786296560688861284932012563836726632650034540073487151192616145220122877851440085250637410946638625082213613446445489365554319025079735345449126514929442883852249856572988018329580077465489315994751493970657515893746864368580193109573333744289613342607969191219158303669747946348358634872676348282819540624481966819857562538926689978498508741136158469392281507343860499580264571964655661958970224320325382317634430536019925994934017742278657588445091319615602654164558132385770686471953314556091874361414121929859163017918663431153918633957218050859981537935665413506809295107295137699453450177027608953168671383134336650347267599940891021406618115230292751750738448161720646042851485357031946224752512612074831855127898834863890494161089858605863123422749738582578174526871705764574781257496062288113006808822191503015994613819092401155730609411800089053691788285027207259748100487690216276837066348008836254021217923929555622895878128302068381797281491384439399900214871826404230623345774095919532219964562884948847824204503078616506418769295672140966742933247135285982065742895122587175172175726550660419510234351801020699204341259780110835931823257761395417397982839510738444214960123284295531485880147280776844323839408705230885075432022044376631117766730755212270522073830630199990533202393579015662308390242905152250803909217065256244055555409190843318440670024708130769990363413886977865674439280663444134748848313692572752705448380141306961563459237225100514998535253915670889854256535335597254007761666289039471615603171453880646009117160261315339111860141704977471152354307094820709852743506551168736876492180349443192560798306090036076218967164860778447594236945516801121246034728413189211521214567416884173923234995737396305366665357578892897578618161467714291999855273617034146280025345214748690172476225183330420639233922226488260816391542034333534188176177416827867137161193633487247732837301245226893285565096792688867399617075171145323047455484896202644978987194737872029622479307410260328975380893765846438087907047659891581289881420782767428243797657095557977909907460753261931957338117944367092694132253510130174228389676060173109637614539779215303240609957958238192813600683333737742432895595991177855448330559292520632767648928130467247970883381184984987831819558587985492299415243249063062620834749691028806529298015200926057752039088141503035316612253432521100561854919620190846552036029232448122200471210612163296408311706168113966451304246161558202562814160748339461962140142792037536431384628516949286225823539935741862605366129529743424261938392842657001260580909799257482127597528092692099533741625542689857430232719652795963688440822895869388699041131090272175363323826463168747117283020326745266806495191645858566215051392205089196393327078345487320237893877936992445867701373514946128477900791484635154902417703742793155169495292180047299523960752923862751295593090402510100842931785158884612476331410521381838579070289409324954624102199132132431505122098152701161082638366291257571702522989847040489231879798113844019274879937340627855160082705693668807281790869603567652293982535761871972936259347754374134619036560636785039308751759596774762571365695063826716595472733021042942795142235166377825555945165623358243084976902736631190766315559861714319393886293298184220894287683574758366399594303147288983969556739516936621365819093272921544262019170010135831928261905759288089048102672203270307753505159706117437918511151430113421270907481095307390047525717765194687279587829640807789636477606750639132396840441279864859713632841171505855016992519740102978899242344698662187111635967443539793804573261127641439090092414173051375047878230221024442214638715254809045332604436478540122584220300573011929901699280857069387074460914519024956553221839174390733488810131279122534804948466919573640297776844600773033488077089702793910504841552814546850089016824398377332676760268359569764486768848372326132885573879204775602683882315748070619717884275947558811701533163647895240318016662895238159324951000015457504535062885367286552410743056576697515982042508506313663481565309012020473367122760784715071642274484176751287562084636807379876410558770078829727230830549758479204642811141399998867039163093988897107902694511711269349227907215662235094528024229675016142105629702662668945794853603493781172559136992818274165921642736001858272518732801740901623244688948927802977446819164770291457862670620083019539716005313844821922327568375858011295364265854927597637388855353755692286568657125402711950599796268391626958226538307801286597338491910019493341635285067905015714724364669779138092987883397505818804942682729537496364701528627964340599779487804295984495270040168072676477028565262672445807699781523373819531693317133158791098280130053416864213638000734432063539380357093844027351557238940540985754211065531452922976432743096704011786802015819747367653456193049439396232563483722172240085007455785181613468538344930123414112299698132274834814762040933340915498318412058643177063131254569040422556403512668414775374951027877206210319627086858298507036711483542458898555793229757963559415671645024539809445974880660635510135524816984937443058692229051644093167161942171800842829980889535495863033464781180978685231794789974653174027436360763957005858773239646453332193146508859707559601733058124165844356744894404483874171735583944446520522783483474204301978690537716822532458591002417178000375306593007688325779970840724883490197341058313107508873628144747657253117388469456716171662273965424967661501897115102152756345559304338869987531845684814462321194951331227543326119327425895999985574387812950994936983852874880617417755076226778698225216263762144326604570026863650011023442448580340594910511309120643324108204022023509260660810734739350226220127963397588277113826863654664805906632964545294123993493846514263884778933130120756280429462336440836326077035021766801370972914206531281049126399049994286802988942968800240211798677673280814044565736885629526107440134405284694816907464460182303253732265849952435830503730688733147726772720056545114321993894998377810415036695432895490745324221321815968865303959607211349328239569056697279478319099078682543188431644544203597779707787757977434950390943944375444134402272127713659422811103622084937462159387293280963608388187733546394375889877635014675134176806109907030318447397967372955287154190941926732845935064092729172784818988361459147045686135432953071060012187195124004164253412150343710280803669258665760682744529129275157731596412676583789630840711959337919087124044701255583813329840164273250783691088304005904690276184461379425494441851373036836023283096613051671405486584146503249794320202147106360600583248489491215241087240537349213200516939011518229616566650584120072190433839026680260908549118753359170451632085163084373890023611045391766490914134103836640681482202978361133099303430136064920690832054216890047761750574729357837225855405266098530512670444346633230110935671822870117201393983716526103644711478275081283410365228511006634388525556626525128843405738894189659379339552583133734277715142531037979978745794610740637017657095494516140807401863755512003680836870518649079354583431554370715981666699575520111009739707097592480160287422901778230731840708868601758535103875418927204281807784417349043684903843899409492430126131597686212671069835108120203954552531850123853561508457759827117492361660487574953981602765117188153815768804272003229706471177076061074579582760713276045704967443594601661931888404194243842234661747691859213256021550949971663027150262702549133989513988553411169726818032045566919441352647070758921061161764239794365770978169869213430085376364132316092294149153075691706296253123254883860496162509062751229159233057227790298509043991356456946519054014616157522724460705183967484340476087362561416468490872089009417925017420140032622924498263009549080157403358625906516189357561627502494404090398200798188134429071088921365943475040588813396120356719837552840889674141340828733569953065673323582010815633771565247413160779592136700297865338280458785242805465259410719648973903242134428786159036172399834904630194022891593412745921424710868224438891444537166654018365733623594522918204362761697853571155982995671999712842566614428021227868534118713618527158661864304795334900756056826245248895507497001216702630971039342398933564545923209671904558165528446451594964544014615654025834946124329976955073400084183239246857702551280164780836191267399866513665178989697185083164754655558747704502560513052465270872962893470358629967825029915201729747568549541880834068955045968463106489690281465582216533582906611244760679598410025171851448155545558127180785999568623152652863545829095982179562777548947772121376138002892385299730518917508432227413445518369026727692539016318631576019662391950849547581986879506405246081537987687728721570041198800150690223454169315277696366795359211017992161667119149425751695369712457826378265258095801156485630440155981928644681050974958169086129532583601156107420342073962637213128588710282279151038836044814873732511036489057599381918261080716662588580594430407434986754617740084095573719891043497419906353050932231127288429112727670159151264695241119773723005395976410072960242291245800101380721948854928432906803580003006361197731278469274938527878238192365410362293681162576605940434099862872693762734790207152496400998997813025144043248067135461113432415722094041277812465308664280681519186177338793027274894615948304785511562158143172315995385114738419046782071587191423693793681537310416329543997138434385890599406123863339780945956429484632963715278590553618507495762789831045692991364401510803355009109199839874146218099960828914979246808497291082897680439722765575134032600061341228333716279804035403632601440733303503075475747284018219507830447462196874692728993132710537994001513400740976625792354583020097263351722244131210267112592625929277680196997627315910301994813585807441970004644847581374864191417835636467375404215635936036691744970847702741205462020002356858265968166478250250848537898660934628252989402574825660145407865193124265035233171701418556189755326447762510749928395140217930436582565010831587983031571415448484567970349593437796061216534877419596570482177264272460037238745506640024438715196233462108077131202187028893268654866085596869674696689052968610355770025368292193946002884716253049193229676945977310805302123139658915282625753128112625530401273307747073638536452419720809436297985786217109701804112726256611714743580885795993229587152941397337535835117461665357457638594751819308283095704192472856532295026265679752080719065099545809823629527255934029425712484683932761710979543520627306074017688521144100378902900065103731638441447977327137420985494247196200129636760181014220295672311091595021805376718238192300408674858361095694319240667688873799346611039755289632429685799908461201989194991370769054889026605225210035332797526420690738038491699478635206190164463899900300416459478551759102855002861304569300113995137648728797607279953191546960832299110992165656701513393541084144451358133195836465517331649228427435038624831155209150681067770282552375904443268378302265659537627042084383863364154722826104038282219031524081646976621134838888929847744851358245069591393244858907093479612506150744532516231192926244899901865616847249107556670478052985042693198504962925922438311390262101366052405412154896300904745878126720930428622166073084025444764470695366840967168070672083348613466578699781658626011036905935237884910322360358388347051360190260308550080598432280678430307589487295971341675890719631804738806552734653160405384576418090472552029184392583067427823116694358497874133197922103375876200203741457572604360258367760215021571329280499614500487127095348311776816155559587533221932365841169638725931507530028647648464177642834342130182924234091994034297915265730969801092198687797321443854626999236822682396561856742715736145620452015846107955962692659286159730082477775517462094609432469633870203332299229451775523705646345597314039608840763405807471018519184886804673774860099992930087520864377785700916990595200339830730849115602673233668697198439690436550702282090257158501462008307786920383651175682230717147179324790140907375790009826479318052151284443217483153590873913723105513003756901678033345388335948844705205613440363112937015747808848078447110644462813433467149525002102971727646144422134470755826848915998072275929030248078990828259120919663444091056685249968347197782609533775281433113491971535356447429172044823933744720442315635662055096141189089607769728299023863466693874254089125658785434012186455083504852441129130707573289408573449972214158225013258335286327221418634314212584757438369936623829673984372267040363600852142711322925300372885920262552805586126418467543195297624071558691780813917916744473882752428795740299727194363604126490664362762261399981622154217507582242779844985307912862389899725419977477112977247973561232987221627787374496257404872747969199125615816120420318080323932941104146934148683490969392185655108214589470256389082491519523397675553885340588836471219703736235055076379734441075852473182411472470690664183284938469255126932038462643608163028509587924014671316948866933181789620299694266969389338802026831168357526532380206478853228500902885537120156363123977411057744713102064524488741342426559462794603533291333793319715274270742221535940059065387882962039914829865337562219895143834523854533053502676954809451068716899319346720623643258350559012030262622582548463050342107221648933140950567220073700422555527707960963452450221725914853008047377159275968670098836802867568630653718015497901300480389096640331517470266228851483490236779106150270825093282944614867466444564440455227907099021824920881547046586856998062885863344463156173961396589591172383175876112740071818154623959842370383739233142073200914336766625467924893685570467083611434978729230512023494359577276598455210434043229470621054851195814111633576309628553247306225690503189042681610628817943787032081871583713565795317515364843261806723525298005165421590113832026968969331658547495827053936892204856179551268733931731498027701924454662940746949031060728032165365606168006787513234638960770942275917866965601677683914925111812812067214336797639318397650568084314553499557786670875795762332658668812164634492804839744998197711355520887900301659224798838548616891997583832011855778696332747627973702140156919246813090219417106810939534018811393115633954015444021564553501964330635046827882838294547519501188131515403980949455557214022811833202062960579854570418690759182327979430025620493137710514578515524140035970040037660406814204000753468848737995332038351869728286167234229821936619907074274494006394331080258310306412597680692540442466043896475444333736682164700387931838737237631096134015660637051191718995626329877810027511308937911038990048568313467934399313567760173854695237451297942719255510876986727051007364808515705747576484559111338319640998978219255901486810801938148906422376690528575249676517311421394359767055742190911821281418298319954051858796974956256705312947533739990586086629634121328920850309590072968410381336891233183755134581939961094419709400296004054903766265215378692813467598181962574625254400542975490066903118936777042367310638733052739163948530732776010589346570915820510613585152339028314667225776512627884797955831700666556615811616082845121068973142733773610333659374474991782539456279436834402235818653114056478201423084066394327496520122651925212212997220110368077957979562722274881911687874986411119462447969927584072723017781332759023591123836722853014405927262113558158937966869397416898226524086211495378240562524824574277773287112165618358993227866403847978588987130212112855433292122960773936259452816740247417812140763103067462522570092706027115969289636281105462811024901565308256971383543168766009943139288211305292854634633717179284830054535971003227641505931466823332070718576198776956558744616781595888979115851627903556755516249672733134758609196485794992619091574974972507441531009038540715309027461538561869265649100388743486842218436693241345337590564074589267461862091327941097788239795444968148878503149176138177518174637777895296476204647960309679444052312287179260210342471869570554399616074436909970561635160648346026187817633833527229241521516704360596210357937018886247386902702544782530024034453889956405185430675438706706890065743499909065241600075125146277216471752223951770400118224789825184572902446578886361652339697501843747434903566412852796089095034926209771193742595723067606776054507858767010290390296956720969701392753915563114389621734229004503825950565519566775943606592303022871570655276146042835505623305507778366959263487985542405832810486799218152652909956966136926273075633155096474863898292571913091096104045510391364367445852075660061577917617456729723572397115398111341138202529115557115278130371014654398579170990508954854966370092423836611177833554373903920071528193795222682711941955270251110257866098065200865396694399409618287979268424967214685759637978429203945222158818959674138699481146223246270801620709486805394806321549698448556592997080822635502839595397207797131860005781060767608788843288747867605739585794484459830374416377196684573367541301053898171348834497424893829641991972536149033650500269630675691962284412740410584913661490740505563940437470101332436032362878146570249270734108686057221769215407516765670536809472882193027086669668586764689948430657962892042623901466970195920982895102799228613962207983369555608436256216959615251274469816689410849114724087672416118665189932606281104118577021769117221674193448210813240019713148669854856956842757988224008656293753361112112372714167834996701048821814534727078080601656064379183470456639018372401947869306123066352143859931554915038528123103110265955430442850812401258404480854712387037012642006567329979510784580081621059091397321345331831420339671005095918842145472919550983767207857066226322503400924269831866446725411339277209040378798092973441639828451525179880467587726248433989666962853232237245966208622347105710163908584523492098934218446283760060091590515818813380713978868566935910966528636270151507372216094893570790500603586218970123507009331928561419652435874849085250918633943037128860062217220052354696619441936413479941047247570367181515247987175794001768219371086563168969112775859854509818755953596074604269091153247260169895295236669298385544363215751172289642027368529222438803181085043771920963667312622261535698183827993310439681183745357480674873142005656401272877925288078402184647622974041686905332525787100249247759711871869264935357962989207149921842577480922618118945046816083541772424799682160135913764573432840398571050388110504174635014689328769569893187083171749333695237907309544675340672785612737555116464408137702673358010201882626666062890231725322178000621806363892925023599152580409749843910075675421587989655270125446752581381425069920586048163511986572941832552418249183032355480633906843256424799128679823673848982482424872906040438191498054440693596516127822772729617362876852677285394401473327575408235753036707138351862846065009739416489139117396054891998433470857311744904508074781233507713108517730785781500694364712779529848344518084810885434989651924070437750818294394160258635787174376727663793025454546764657461925811519571603604425170486184386130868674345912079944276223472758224334207293853679116363998254420030044973261193815424958356766254902736342609844260752052731638277551945073422871765885415715464467856953764676399922041696384155512075749455050105256271125321868942637983136563033959164657139405426084046628652691802510443769409227272756724648593827291790584417929129788191719379825268497156033876194972324511631850277541217902195164305636658856440789383267993969541421437879102876080238478954923044185388651178533890282922438203656943540793668521710674527843074410766029739599186100619707072532634792626866163656247512136705123354673500800570349092120118769067672782281015764311178052613355599796792623541133257942672343090592498239453692515134436899485113587034662396659917331121244941419860772146586346295503457868848416091528625773743650013704639788966378049812651965115760307724501629863353755758165133451410352867628811944555764788198455475523812298497144735354556157447023686174761042780458498003417254083719707370803261961742788419932588765045472670875253654255494657420312286034973796828635774075255636124907233841165901654056588854112144196642961042925185621517516911248773164591311953165593113047860752580201000083716227060252634896716464544425251692962960555458793672046278726540049092485629461373086245771366547405714970520949641383899415433178693720774143925013768642305070177954565887322735555187495050403873021573279045714908625537076343355373916845139669032592303643192305431820640908947956470153241121376155853073888017223144915397280110063516795325383991172847218280086388537294874430953558798014189154041579413449725714672255162515780924133648385017184526359787645090203864868628977504810686543047545771299856601591293869264892837207475902642220431564373899019291879139957286256166002494608129252724569053493141720769625082757702178074321953801529995071001266675895332116201900527916027873942338698485314059971194105539480385408171933928095001858874063130874050946664479749723608685359187120128459066040168003647301772752860007480690702234711242684660649976353074807897923219401754493877559324316653921597539612574097400893758652988557247436188606104191239459561645084749830233986695938043119896739982383311870463399398732660389243773683227376761235921882578437782345193824992125049810405621796228930860069717990061749557872282436268137669432645131078109593261355172426259246429444624665276864100319340073179798192636929147829168265576080678683014019920800168612057997464569438113900248583817880297013063143295129961592811525405034848869326576834940682423066835728454425828057234163826816729520503405921812408258938427007408921836028640433638634292931192518131569276309343623612669041138238580603133921906759173227463186177371348078838821278233256975714443261435306681913222830933673204177750866420069149363374555520977665950483342671819307900479435710710681727771641656250840724765248951945317737852392982713065985487969676272833965324299396715789074749868328221174602004586834218371457510328148132231113644403664779217378853961496559766011230444693520220342919493581052316111460302155586570758272415586539072478082072097483359382176262414212393723167087576600542548244618172695909959417013647833976146926800573555492800459526793456109363504907452230762735886644559512037363937751312341257340000277387391734241740780524209327602891682278760955569131758159215027553003340956547765767458592992308204959097527998279053391673361201072627920679886640644261730490127515197662109627185973815493747863464518961558278611297057228435412975775752571019055720056602840618027174693962599410748626519153424238135470844785770819767281924614913625122824129960581575964970519097057488945390795129304524025116806558065158011670209477515151391322987156858979660979843007065605537406459847301420101811318073194969400474293931419005040523768368238535993861709669330615159896227385533596554329404777548163426360127205389762670306374448707487035595341692213022875452465528492524472120738158967641972994576870760506233045697522786443334423133044782064162130973282401603633770715650521161707202537940167778152064955798546804598563332100284190892242564597264490159219320401887931511394139272110934310406779547993551688188300323134335862089675473728918807418226739836948980826258407188914008906409146873368222942820067954647023578191923574204871701395410338976505941089927310505356415108727675040798481431208542491458455739653920282423401520114244173577591514471996595338571025308876398606533162573173918849672317455566103909763768514646963778012623245241654654604404049128367871620676481780220626530838108580148768563107398216314562808646598711771026148306070042640442617096558948349121759932612305522603706649781155228012488134932549217158329218888974041870203828383263404477635275914214120682016184110310953845143622996655180409717814701953794377522656097459772343544698222758569788323631856225676249295258863520718233270170114909077910271350622986400643134568370106984149178951534262851642937813217465525154394875391343335017313196885408616875309188106061955293520070223621305636792491109752169797736784568641175403375397704872016447985743923842459852945199142323918418359928203526990037506201808154539759220944520536067460114274676909529469084879677366782331123852315824565396071230241193898025668175439248183285480413585315243970522106708968581893364902852078320952731741172941659554837188609010894103154045179201953388902768869939730159763683078328179705358106287884497585741261993839928419139662780649990721217660526761359290733871933837412605502463057313449809525173296912562679854999391093994940662821790455033558035637062897795328604332651984901194839744932534138427774371324893892074295474208015140695339238656259110467792768338007068019193674395210436642208509345990389440957218411280051218676140031992542124484472612218374227732050743200053487189026115352288724879027184032360607725358835897484162746174767068023451682354992841093543746224662706216083612369375064319519875116013612302723653358451814997864649915616711653395821855360064745272961343319860402708550656239965549134803854341225754867818544021264200788776488322143875559125510206319634538710937568977675868568483424480186001389140078586095799521038515560015501062986044591972989504840840090723406046526257548916647419899537634563768475409217790125736953260903774793051420592083368680094915524998474143984248911373213678926162279322238170049264908672712045078200892572231201873606687934912310973030633085531637280109990863066589733289309561283572819892254780123077459638685452541847058948360188986462775104712792020625570129685901148251182822369312720815692567244488507685137778221727605145433728483457140607599547300203876194426633745005171355060462079078740491454571800343924116373546758271525244907045047260132640631179481405756783922714537772818997106072135985296421327077854626453901134108150801136136684192001820767862761904608805909377455269758692035707959093818775674341696428747627228291591434177644346012910536745286199698079540463542152315796373394493785735690295895589185803165359709459110103151930107082474825815397952214386201966855194165350627613686671353622313124621728754465195272403302724095145155725075292419288139987004637479372963684046584491970701894813459207168332348587948476492588351709437594640458245469920446729047910827429963950493701425559799788267905717181532676248568718681268743415036680479696230359627487462108929620639757150488275034863779528441780617806682063394060999374271555734016551347847431024409993228714053595960201083140696166915071602128615453141882002906968082892620282712007858182086675207212353714957411586541189882755920889601643773931651236688592711685374701843957092370726655933909474000945371064188353735295592252819626266689967102486330724417695608139309020849073556652571097358638817842074528906935256703951097536570718429278860405141819543915395346240085650184583977070568294511479706452841351760098888258654131307279752589590297457334232015769605114171374005996714638112182131422597520953250223024676779552624497303753771291526356308343861164544886531452789498009261457202976978660983594261555750728266317214421404289407848178947794204501429888841416290402937423828832757384596366599627974990462238730303472415406958375250890085771036840670122386143066378311549322444300508229315282924708438156455748533725593189023613843549152952219737226006694886543784213967793749666205718166305539201231575418524913082559479142071528895657000123528563540651353697959638998814234963195386761204887763957822289361140651569420116682588225315945402078364328221388736999408616363133495385360711956424469281356482379570005951931460839706405873289474305836177591218251733921272474367583242994287017719005392553002960293391948222513009871933292466128547108081724758555796849830396823504863206207899338959967299676682074542851331257285207733959735625337213543080770052584050095471004554283051585616850063015637075780619401031280474438378737132264631258851986779143735109747918401220510083450526245568770383928980165644463648543358212696071335066152713022086685950193551967621932651276433932514826077775122561647923089160513165479528290408920996996692903346574890165176856841627729536709504565972694442020554976189162470512573119707801806680812671239616153433113078987802056905588938441892595191516577447427571851356638977106591622139347797892132059040980872530631253441046217995845743067051192226942800449061126375611179770729079115338764758764177262606007253446342089292513547817200462241347998276359497864120241741669294837674988813768493986022021835859032421087985065305886859219694883243108664456032683995996168344464513547365560379897045189284110181898541273727641297083943467078169782053469862203056374544332521877106363508853504789366341868307861572819928178546592132719580541864096407989905476160146966101069328028246603325801887411501634830112078740321214189403985214906595742191919108503424336360023497870502600689299616197666415181950104574251311178571186546647966006473713000986173091624842519195574908639250260933681914171551030706537192756538153047618947824192223662449262067606704188808958184640980886059235094043033440555425575857817232297415812955890995211310265376620823356433031566984478371840919617943596953109165308639422267328322951241248916696276286113149411236359782564647696756926685651045185855685732201673234238646778625608807650239155005819056733313133032602206267408211471022394494820845119848125563033767805570137730958652845432741577152093873945014012563609836243332428631955348908002831949850883885883041836305350612869224579036196928562535920989695843705291786077473121052076913708744903805588145968140321040928237037631960862569170966346036586122627856065629830327330530677000822247434136810179757539876350608818782540785364665863825062931170377640241585985433327839311584883824386564606346790683399979831196100413720603527811468893091809881349320444923153519849283705166553262051975376143649734577563341460742121614184580565942558647982245530469028962966588425538849229326166915525583642361183576405089816310954353753003716946603391084893194784656057126244124519395821673299247480375210714339087684942612962525788069225506397089913934678488290301026520098875605419541960989157721016984509010908695979392514568620424536816488845162620551142254246069168652090884074067626657567107496189413946288734500152700685892245412447165511614650910028585942470621627207104423120074434527495412367833305076878998972985245139505643497567097903674932400616732685177370164041186639118823159829971166834750268244928412745309496409616386385608422700934223074411970050724698762880045197134049429668530046863388863189271741783805163196944612171256881718087691949972278304901985485642735301959724307106179478723602122439956133553506283473143753046991897242663938447473020625975238947361166503065484810630255652302612262728134281084013757748239402644018942142086079960825553530913937941845864842810058108339197561597132751221534062657332013547288671008430210998130288337948030228007681427077463222307592093421904877759439135438753522631765525866871110191130341153381052239060249847627658349034346236727077680023080035914172975063532747515078078038286816343793160386901853575201785581516465803458374155907881879451492228852244939285918433547376733832487629748116041322234993340820165607921763278879188319244356536070914839184166415122433328130751957293472286198113211935631745914928988271539332053374008755134525173445744633698145847822639933482287645162208302493330458663371847834228359381029221593059104307345612397179097484880648147467490800849657873630651948693844277114436343901858095096087887978163834509839122539783714985686419794668360538725058039362866231546153773579371418412021842624908530189875001554778631281067077055604839949014461019729076774760452544989117147156095339938445512922717167343454518863193993553991026074778632827755949884254318064868719033233086265122313722098365616733673975876793949025638728520674006368460995351005598545063557649540246806755836036414122094528713564529549976289442095093876670551445426511024658367555089502265143822832112822485794866023095174930314867101351156678587359046504564172181160551755237759449604647771451560290386279882261923563948803650331062852140235304343076664632872837039202960565585248287663117271960114745881191273687522948823896777216174226316917748604186437449240397293475253798258398546062454330696711955563053382129070585804087309380860700839496075365024801987850414032768413393543314279823593518241116487039515508479104911711746082580545237091476927999928895560982722313906953049511574491264051082224218820007274412658000243479947117363694862339667287486035105863905680218189782555698742442016721992625182147458169878422987125433142405974568164353921011803050072109911194113028604318432504181052083415400642580829318207127855276830161291342645826514631264152255892914314692162859094223873978847306377090643237986568743006742185042808926586843333219568978367464721273869957878327542518802200186822334627768820350491476279264716654022601118423718520039670001373929909569539378514739055272550265337684087460968193819700134398086941449279107619558618552406281573513031799858685041004658136271329302857276112969810046055850432960740830293468026107788805823556663286419220490125972275109870983141194778561018886297339161478588518176486214639942939531885917296999485669419692749028564698702865586467533860273772830242251504218900435558928789018160244793488088367513843213538044104092368830077883474799292105746773139277184261849281037362372381827823316352431370571167096079264690915989300945086537847955004066078367354989030330502175729039364002728066449559385134270724720969304179288780127679928712534702214581752339223381851986757697802012449434287218661918337778229341820205287349232118460264802235974848595982308366960891754330246135388445635359975550976876655218984918895947271342195873281551788580484273950693801960223659374560204123197983915386224714726374920421418306995132378564343916312987290523179933660391542130520430880269403427526236695981699039417330865066692357252132268383672061255721710420668783571397448878239345961750445835120689041990997021126607175734074205005670132035775651553898111339961609581170703421940353913904516849083127212775305589004240543587201672627578923816940520763354812069892136755022354670807605373434674067286206997357750161350336057262210874203867460380091095609959618030833977353443291441677987304188132691035787154708340918971970759275897643114992046756766384810407454706646655804773797950693977120848509596324129934505104925955892987903698328732294647756830599839345244523895807650988056493778303634078187949876422922037289474697110979492425742870297233713749496432631726790460435720650944578445375002895382200687176520612062253752694081320558975115017305039867480201155253813357917413434615243360374151648188039586659811801551116772572918594739709588605456246076807004996622645367941844466100582768188510769985904115405893015014108420051617309836980808830261633410483538861948834876692241333474277299931133502965524839745523035409691152377624260126947553003441420210524204740278752207777768792752430579881703960221518925675020476011551435212646633833492393627799804420310293063501861083258592787596941218045917919121062017229144953136498018393079930737141909615459753821951942904414126435068373346498766086707499092946031460720074376869202031982860471184451057461876858149470212506843295675507473547125783327667579687020805023605009631018330500786109004387619638688362850822923090124758733130044914444987328266633905331173269824085324594484698940973216939253186397617449175403969218252829641354822794329575682321007022677441961044382462565807584997691327701257053145575052853467593622183985162803569064899430632476855247050358013987544805628562416675636545327002394984519299210826750226815434258315249548755058080090825299286779674467589286488081695698713677794048861101514318194621359461413121213423502469812161652921363235036331226699464114818683006570128203184297588693472839450111288618198649947338568870073490067094820354682211777325391952406824227192185121469792202701525657503848825144066596960571950087875659619106668367690252036067091958298249432896496779578039628287060339946577274601462467583303476959495341063514155909496626293381915419422775194907850704024390349442590075964395966389081779800845708894070110780143118384963431409223973829248874566140863050645086402552132984322795996998525346761962293801053991820419762714492341990721430301598978216130161131821518169938608005997761889453221430540024587291892114400195290358472192787219263408433422713763979737550971568690509348289460030707844226764514897221591622207392878397530751682578778132729513561327258387443185073848681280733857712511070064992583397479040498939986184026004629279422262053901059126716086908739547922065745240555412088471283522571517072945394239254341433841781069161026947669089130693854508464130610013185766485533010741204350132535913484402200685827039094172212047113061430028030129385405597074522251325347609053837980821030890158499922975567674927598870943875147448053872199909265085659411355942310098654402788859151111286371784114947044793386211788676037191802602566028284421056170862788613788920640815641181920414349250269146374711505278098613976961733562537603146144100212918656199398283723182973190552158878122298735893942630762706666577872404432311332704968362333086584109503131274866943499352119931898051666582821395248530887349584223801373756329928781693147657513140620959928867787931363298022407144363808232410068327826417568977686190188822838066331308496438283126232353363827351260796780645357551351421324026622335414057845884995124242771259145156058169094771154849376321029957977060696747945088865847650041780234296058456949584520523786485713634289190781117290777989216064557758978090452606489510979167471034774807923640127797940912034218294464498341847915244807907459021000590136646635622950133424915851768275450490962755802497644893741578826803441137419521541321634115654770170012905378823211304981224379756832796988260668278721405594154226967359864161282768175584177350807030270570911404159703327254771263892978482535171576489050588190465780064974764205605647937294163152094995773617450533857512075057456962369630287102021174045514799544298200793713384752070172403348642070143172405345547777159855598374977777133199354434291587235025052929099627337325211710184862751421132392151009581743031927113946575746299395263138446309502436521672003097124377839079558450061453638165177316162179822774776351597349652100431698990622967653322568647013996773329874919302452732034641700084438012418126692908759144028280107001418288871567739586683231649129713669358691877987536804822117920055743373202744403000504757721476714717970477983883983903978523697877175330763071592415791142557455879865138712740642449042879427437867509275167821450525503198530968408093032023565718005959218189126558279444044856320313965971263947209252700690239581130999660453740535112003543473256259016350352517964156405918564274768882348276354666750526686030164163297587948408450940421542156172698046658165708140171469970380168081047294824099221428906096529172250357067502468600318080813577081753500949325944278654944663602601004423041523069504244673657013527457436945133893671152962244562025083008932301370350711828007477085808049036207173317857284676167096272067401937798925452973043052307864760672888113235320573156042160917855079624583481176270528316603523318673065637645483082994928880911045559258978191929569672778936632678729007947981822418858797876946673230661115616472009450688281777545513566968557523776516189388999289159544240074671100287719791618145772407755664974749474766748688022753617060652991668297110905045988739909402685510158944512689976104286972363561266887729683944038942015438587067661321909269651808270405320001104408819852474810434262623452209935899171832463604236718673873829385751183952111105176441460559026341642463871204683291335272917009875854425074276136530464294021130678670383093124254991225039163250828089921658299535904577924155576768087432870284033461372751517640962564870054430903774045603465030617105550037892602820094718948146411584600282412186500788873042730078207397752030443497114930565239201097673216146830959244103075425978476776336649731814239345183392522459963938386334196447578807524929511722130580617253517124979338806228866421529792140181280121828603558811991940417311676667673937654848621353398023187864725267325445897997722562619056521247708503892407635704275403288726348913496659297692286711044834722830911155070192497273219242037836339691884981885746477870771033532880463437388782115087104205524802810666565567848233528863874543657962190338643736669036420121260186819032822477508353708618204251642692363398951702058828316989560213206792757341517753877375255590385228156675695901811166885378504593189183077523458976654948947550239695574438291716153935472217706919369578538189201225258128661112975252885613724836823240752436161487923072352794649145582401995887680116318243187085695872812997323678343488200425097258408221850314164717533121767817457960608682189531059298857718154184421225338963802429285227168170608341366637964186237156985084627641518767796149517716898331805372186921417591203200641166838437238586017279849355960758100236248461311311477501456414133023831817286968942907745663010292875458986552833312350508004939277722825587765761386318057306212559065447275411858078953920568409475980862084327054133844479891320806344487022215038946510363550802709624065418444608837096275002017471129535193299132393036047393715896347188757260724085583766976969698969482052082903083414868385212814378246854327693923489309015443122461291016312257269686355679529550833204902080653432780743690125488298962710420634647045371986996571162661561860533434448409464405421895872029691912453344153457792360559535984713257715899512209475314958646847031512209675471965256625896000182894332948161418900073388285416021739412049030144836719827098264925042326128625994871427411199485864311723605721834102350644203849160570400919105774575832286568825073595199511788870231196130300143581579548246751253587267680773006718543955661442235851371489839445696523876627287205676526836995629629439335346798027180363699882254609288684279567278407626869381122744934410011393122021756275018182803899190804766882801704330851813605308201093976357986972327562494725864785802699378176095762200664457600003747839412039092741743814893045410991809386624635976275447264147197955605051795040381859551032426106565349817345517841476772777445273069175753793143171196071508101055240013089311274836793142234099616691807794333920923183186649062588145842884286590930800849961398858838600140413926114381606834657079480567578669238559754377732705622719621405634351968028125106571266453966419331106496723949393935649467419893588916841259598696688473427898967799608328929343168258324801197002311202306040740503122086740157024320595510586154655985554769451188260041110100003579238061012420050464964937637940175583259938893776160898998039566755299678509245971446368031302334893320859456751696348580026744518383851768460500499178439259213276074975370487605205992136506441672002825149522437107680842114962289127956000048014703711608555912595327314204817249686072969475580146559833913109872845258869344920016330413169575337584125302583432469082824177227574487831708361024169396630124012445372508056097699292282756720809059949999704148727924098323870038124633815079475082743652569745238142478759500230289498128700236831028832307398737877294566596713430599632519582569954814439886772570902781430028323528743347726954676640824755755988335238056873666888019331325271143441641539189478177485389830962715183731338896570597974216341806915885948059426631764814128181042127882643670578774220515675633980400437386786468328195330359336881831689471265556097980183439786047519855766736056113516517881502145680460481604575798686819282736267623208827432608877404504099396039943933027085165059816266563723632624068766252770047450989552122995257875236894712791764458192082178872997289913191608664649719694123150841507933662543376156984268939467819122332559154000050996144289767530978292353966853226916597009306029750128082195580673783173906218047949752539769387499428941114194238285432632537957630337444889548249360431164128791586719442496901322065429381818199371362304687900370803083424184670467111368132726753188767014153359798725881886519427525044427910178310978099135503121865993371495718086410705365662196549485333692382178623566345178690439830145957736524062567155655114301207813480582876634265786603755029221980786441227748267314120148959049143408405484150999286967885544754045295046140152254291986296920178507523885154024493710881546354067618895299364143461948304336813439434335327920831671073146580168559610329089377750321288143396561891501441007602972093768392419945024430327648962114092942544128100385273545510206616274991872759824981542715091278599782602656040302144754976885251791958627398752386409735330781306334508811548340724523988872371703492841117297964242004776990311942304401904149060639357218135641051584223101087826359907862856885850395195144349112339928757087696381070196112080389304311280780367060215551520773260567095580560615957300857328341075672420765283912641611406621328363777500865753516179301728526960960112238679086853251897653336039222348743996622374848893772560041834026708380462125978907932642370111848594096598061724076557282577360702458088803569350951299483040137933025732334071041619087372210269100756654676053360839381876084871875082508536942356359707736383843237943411463716670192777642576634695371876389583711984729008647360682602231304897664336980905372509120009260431393378727654912868007849544353279499761482781280650922106776769424721051953935851158843301973351094443200605316002836141153492777527482666788432443669539060481472854330111489953045366952574160016948482233867896869043456149841226378355252814313705460010890690908170020223159431214032884928308250294188197967023985905315893388183238307794319435671369287705916418551971013935096270001659754091576390831155364609356530070836408075868035658578870482271421389593348262123308931707528360812323357595661086162676248971500108240460892058117714118907991652431383726959938118232813031999275420553175027077530654348457920474245806082938330990494259164834750158035849032897063511672481194991123706083564461334091477047279772497541296681510931209036318633991454208287761968609514447401175232842676960776754360822845187492077001748790047962373952381981718008910333092263907826367644766676028583694488362196048396199043891901247163652039021865930619303738292843425400031523405876150101093368232555670841346446338166908499397462909198830233635705474500274953367777946969252980544129958172309391869540721444136967550523885701837174136317369781442012808579389256132670146744166002820107985954672842343072730187273203886697056518062169306462576614656652250853461894189399689314996905162104016034285824852563133287696583457948708542194322095702490326362921108769717753627494053044474647314227464239852243316759257038445883608688358211406105638870722933006745720971427355707356555031311678914477072006216323571781681722036168833020410642141903582451525029415863593450818177718021510312780709086927541034923217333345732205226814837276663969067697636735151660416702719606006374771017982825648983414876443836130874666047671861571968631616771452564360941178028691976276339844897411085062674383551557632123916800185286180065526810465798786616862742919315276957640830609758110386408200152947093112691116283283506255837836026710410127121516371960927993308611800634043387101325827979671785076048055005542651942150377657386963463331756856146547875325830737140382061244887130198082251399859516993163760766889817151979337594806424778863560637201026023458949527566198016325695635882383003702506116771394533603211130031310512028556211629557590045364776449886863302717074939450416459375129276080655478459482739456483776967693827005882006170757710673031932246680081428924200786783963054891479866735423912354955897472414328564204152593351953653401786552917978971060401334051141986989336971107565594569460506452263176449106728335281788373932383148166284334095317153069205385096835187974018958798084383128898112242427170675743826866083961028554734493182080770853039646795047255845538495569871092194845115153610584501155899526727136656644210089259773205077758989968687997208468588937662280326060550570730546577207821657304753684662377035452665472029736253003918474528777552672368893827767325842049273243078732845885178448210789244860541027287677616939909534274564669773056755974828429173019540745389197221235436611832170791320323850597721550303771109232755956963995196270351972760072468897878059694149799584904807676878108071620006685909671593319458781597071011167290792021689765371586616563389005617995709740851309257215230058714285629487198654741010294509965174694700006600186732043204245149741394116032801636916230629678226409187910065475811735787722754355711986798238637888595028263794061418424594778573157446805244469033862742583220394435930964456566076322354466002610579146650531910277045510012243350128624784685657188771868577113867058745029306013004567242923919348968099135798329654036182826384314763896626212292787784474856174011022758310866851375517482443431251781215567294858224533763848786062033066230971431160600221305677757160666207536715543746535642139608240840214500539151082463625564166098790667530176979958269279686510379085658292159920691312022553432470422446523367182447265153311291780927221710683534429303731644599094088170074239761569533274845183484050132916248475031199523201143105457899141253758778727958481498339009928172057552735243703855014108198670978451650724896521844073108088291711482515835560762838184290687115208822683280589201999687650792884197059759600225306786607051930846888589340639408997435311700482755865614852043917665438024323320322860897580768152138261966529681199055915855078766602443881094315318358171197182908583592249441520856691217728547660060915626675217835143111007613638744618433636218792508059418734131385626988477754840497343378825079059673249046923848692199386625596752904575265027355532730265545109989189592748619784206996913135009545363863931190080376973235551604427544110031254254780264100722498947494674610864610337049134196966153892383727312333058394405887880317992742286006214985225453390722800942764547438297702131940219021846292246302108042509909567613555136886732836484361696870185462841664428372498431428057729249215556779213305639811345194777553311636838425266157276339431295337836821234257140922385256789887359025848584565333313502565634702269702475454731882234960143120385700779972457006504528207031786458705862471030453558026213534184020707073448850046857725074830186463095081493285895213017082199300933449631878258204028402247676497027327373785883108787341567382801312965964258423492888690137470073167834999700047814747228840887417786221774993603354290353757869422347289677537901034088031889549742637397656464786035941434329032739855356317427329324871061094039091445083721069441443423718250805524865098657224776159278092598178552508859776199170162184888913838943468001123119707764725868571441991376543238516987141693231310946958698151878336774740207304195220644337091799567458469349250335925982081178549879198430895541170384301275445143268318124057496250232733753492323372226987540977127918404816917248841079160202674506863587243781265565300174884484546530169626193083941095368550478021912695017310629786562193227399164123469128169005697421326300702091046274755488338486303988953026223468538933464431508827933479243906430696845850563363384562085744248906753865431480457587472198303203674068582677196082894131810792739590162521587151989256644512821295018788073518529539339995067285748154559603931960810206909036514538714561193748703944245615152262160836193398820826414168534628726589420728733215910111350027989656174633056142015943368279530708611072259879051126899508025771622145487547902880761758419080858914311648456903458485961970674548083973799844777001419744605425643017654281949110519883536807363462525609535937753106498504469723534273103048130328299867541955275561497187528135637460430669231863465719956856242978737119058343354775678738250731652247556389561205942757913542801104460470174298210556982987795307289567905173895764491521480556113540578369470517349960560696944838181286263199460919493097861473033917242277245167520333258595313041322249102799177112201521973512790416551212518329994560282247454395438949603645276602767547825247524426547550814504737310921425972903930867198575537167016175770703114770933294248410141890815791634440252109710196507930703284852579141231730666041321116594971902382764425212110613719603279995567843539432105252373374594447946108713946197634753300164110539092438243349266428027795052648402587568928570260663535162339893851438366789957506116302427541210213857215561345842654090730101461742787382940276790562411191361848977579528420444483470553513874531412293006241690065296912438966086725433393115618883235949588800335366268380043583456851281484622360332824129245151534683882132812530337778098270836783846277221875720680819901108486949441641864554439578409608429829461855052164170235045130960925688612937306761032752285139486426015589024528667713325718824773320564628403415402535234224385762341442869740823882713313977787049710844323565219801904583932169376188669839121836770500079517318427569875911389401323784663427314650131078119506454118701361824313541175836202881593867782331011533676528853153161241193412693462795702245893734567887472011092903496033656268658916225896876643825428351540567354146765397030828476906259930626145231675840205748155268215198820171477775981167509835749466740193914545537263484302022616965276539174378231767429727848924248152594240720204033231036973638272941328586823908084581034842487465247241561863010570497513973108438063643433817836336762965872799959004733932736064436407077911278159643060896743228789684905160594777341007599631092961626333828217667264896672587416582491926985322821102934148555221445164208932841001844379782131540135181406933737677420822538606334306432794515548688461675840604292503516916076752482561913533262104723808995945987580098927299613050589317051449742147651038987264942631748851650852240253080578036433460856902471170729192434590395306105475901500157700400782326752176917764024289110801214323662569859228507991283556586044289390227512296753337420163816573584544063558158525131041059842562805493767183395198466930943232132089311591463219344306016399409605865309102640498150337045127915434637625666913715745239592909767271332708773459516322290315889547372160337518204588968749323831443053092520712327344580587035396832454947134869868023556216966546297186424597312455497704142196121011724311951105802935373893516204569228871201027194077501185952937790072381514876067366090094273306322979656030266447728216154613608932337547546410312735063821108678073236255953403248126134512365626755253019865332586435911304245517428378317253451264967892968321989862999615580157191889352917507562505137791085036044064814228711841629898312387421906873713744752339732194699874535751073990846109915957315650497483447028327337060784901794048641205651057572857049348194438745690947074255610586398212412416304362794886461710534540449496669811635506692706785132562550630070960221931656936116842908498339391302002607467445371226513756331157485707020968910114427763798833301829231287628644420681257109207672712484122099714002770443704733935634618890421786884730164255638951927856081395988659972270867875254319137269500975233999649758417747045814304832496587361620800553434037016763235429597516608220129944209176313355398113710212562498343877273494431698969868406010103762417492399924009278951661801686295281985829170951581382885613714733269252982533605099598099226732540043667238519898239904054712537215923942544219589636024634010999740725651117684893419650143091905675095556295379826920082006285634474578720597062177384515856220454954294530571519947326475872404059627254223243722501522729530983276526209996111512827129130158791755577377364576179271780873426403631459562900168084215293784090757185755600637220388573298596160665178891097658758783221391054064206206497818947477977850224235487637578247970122076827300200757524004693704822943763630694304779095002359138303490962650899210773405466155621952655150715340989796386125020685441570097130063080476638557802297127747860930606466213309060421272141948650176722594152374609670886966040884266900841335036605069187946765865479873032824162570590008482647307304884482510126424247896307019835576264899151278019409579689326989454232091974724582318830531081479158492913952073259553836394246925859274023946370368963575031376606876521812740165067271309384135479549785744113761846008584945994447149163801604970779799364467670972729939888363511738819143620762855002130598048362870603649405401802305684977289098379621291067108264139519090698530691010107686768372771709623017613432884037687715171012522771160578050557088990438931739938786582530336553292250153215798119175296000682169098777986794297624785958180877656152662321082946436434957197818611649826350183759494281358125219763251612500903146242310664460589002864222427458070402743106595651752113348440264271255885858894994836791254740678527718593263552523208960894702903934980713686828006979122293315989405490590926665708555066542308591825271140789730175507957632989291315466686262488777597129123280942412615290211678949359129321048718178910426902034796256921035343866201358956084326749851756350599761311417122565749104681140269830980163852851862999558928957362366962698890742348187194585827772054008279450649667671632834773940784659201597656206878441308253178821753912188394037875923802240598553322159430541998995119479722583348575716224846139521135585109467502017482494146311548490691309777442181467173267690008948823985964239001006971114949085322831522316847948378615672456030934704166981492921463170459796136112019462483414067809260554986495030480526427373167279533746843351125347495656469007416994291644266358520139020559707782164340202035148701195724001184880820223739618031061574345693335008620799294943902537693370877344979190379239571826182468058419883217925162280499668335844066320346403216871721284939979550106362756930580762580409278721918870862802972239973038727801276727920667343043699417184717680654759003404013746933328384947304399916162462985709358916543338380729862735925107758379328317320559946524034759781153374254973001163087179168823432912611711955048648372918744900669696494730486923952770145018932316302183435734567100798703762768173593970945177354005055996176812995617474032653238844883848273098684330206707857775131976779296702422231398476862396913100445438512320553136560569277785576204605582774092890256229367755840445861593987585474518497183300907376122196746826589368014626568802367221823910933873032979074411366727148875893011630059559884247054448811417476143965200159256636087089900743048942301572312197172415796710361319729086417287938359499313970001073496852171625419808464385357633323968216836153905164640805736781163258108731416064972907452992353950936823726787340652937567487828739570651602859747503498564339595556971852134709665450584354426767811073768880849561215982416683626476586882577641315203846714099557934532694041109613395786412327593089501081925997724849901855909017917355465895920013835532822093544757400342311690001846956296770455644028954462078535368776296754676216244977345049816523311152640815271086524098547041587648298269271547412383314357167866816902909268830429942531672410138305715009167049146162503268219036130877635089942212156033982592104254768476383498111857695431854199054597656807237064002209180751008302362453042990658441513351508970368090840882862341332858012911030806480050966154086233565120165797322417846498719207974908336607951089911101546615048627460629589922828150246280017900226718536468195092774327129359840388755028246047333361244079837872903575379622205601612960307432543689055393758069802021686543741993075371495644360524459713175631810869695203863223305242919125980040856346792470937430916943004377913615554837046581889300578946825069564171428007241860770371721144670244547338013809097036358435867742444269808559444035498450933776156726901268913076604683715093723325797307742841768804352867711765349892485301417198848876728568544427986988846591856955335417118249299412880886429003102789177658761821206250815290356478503734038899708530663665782310260405129420633191969057056250398972062608561695205337032026579172838136888861603298919150389315643844130672434175624081060672074897214195408966140877785725194323067079441252477515910792135601883678935468105846201966090080868674738521929183045010864292647589029362950735213469476529610395558085817959901508986086397860741523819283740910111589073618260127010575554936204717721958367902113248950170704819059540739461471824050364833225416250536480888085492402218356376909175059258744754125551706617752232641520874205152779591612297521629059350403159064544534257120987319173820158547796417264169572433052099333569981064672776422956777792765113719762665373319050066250018034938698823548833994346178947832159459424445887491473906702379409070206760407588685497268643409987769283552944212982093822377676635052900726695618246766806898004133668226824058961636424207643828650502662882010054573511853270874295492989738484334926937015968954859261369323844413606554186649632501943868676332468653221773070724307033658415558670846845463246450974346441081695400292185989443275527800188351853040515791017025619883530482035554848161463739749890020800579397117463328379697198174695747680516538160443262848557035932140570226848320017583801993106475023534228619269795529871497436023603359163510786318517859599218663420718584627515523782028969905498249763453466388392755047034875957165231807227222775508220722895209015193312155318628233938405555677574524318486398700227488597615926460791842201381692905270776185120111762442036880666537005328427526455774305989535043431013884501048013566338815192082254886395977472284369266088450086784717687914507587338607971736074230215548510706683384572841768240457312317860008990867147141065377980077141311852645985797820852389152701726689787353358099756385360728973637043582319720316260160105002718116858349294525272736020876728678711446110826081641734478385084411268380574008215976659408378518111571936574518189607405898630031589317547949338950897315578247203944258464690357737166992614887894819320062149357287652816161411536270444048668391833204865006755221645162043767646039903774843081253981201262323461118223069207883846196299267521039673714136573178942730582030381336539674256940168394110445504108677679183875688735452647210393466358676280632910706255554495060202999134199796112572669480464300522957606242918754302641337203459502543365683416074110045744334711764161249885241738756151823762891460978805343221842317824432083344320864435830428175387431931829059143916813919034630091449166626748325197974040053632142207319511267732885617190751792730709077055124077415092618706484828706086189813602734845560822268269280382579479922691786183397130488028792717198204442055649274702256619354084398685365862373803667842469968528734312982507857095848396185898808500960360036387335094844260954080742083207513819048319257524101529154753315299679026479211541299286892093183050369984684663435084975823386317200767509562450815578225648488147093032373184511031293087920200205801111456048989797746331755825588356523397108490981193700223326686136571372100005531090478423611180853508577048098086581077403082086581018908399200133360696013030542943526746913062168408095182207620720445347610177823133359272781135510095865019791632125316031339434936572956819411546043866901786303289468486538745313538387344528913838547520505836696295999241025413169590791769424735949563242341973510971513253805564847395319324336531133970336645282188231677818292258643472506112555830519771248417155929274581020670101184379590520764616457028150168921492463925431344319983668665504745870138097602721746567957435023712217637570156916015855592057914380509756387633010743730647498425718161930143502321767778033771643595814830877050332521584140003071758798729153048043645189303256560449727711398686838623792650847452115154855408672374277036839030816906965886393342318643259731631223128099192395338657203719754353094054224522219292979817040087817186881864264612422095783818197745849953022992650611079209075227201035562051263624176127897810932021914075796272194561714411916725206293568870082552647316269277914995646991922664916838893271140007769426175262913380944839595067636848087257417323874836483051654071166754063885076140385201917664057397284101942567970432805790590976799179127699398137177208509413169765398372219825854291382112066410327027077885525264184613067076868247829845193069384259650521997282851589929849538953517981942419137561709850645378460660604356356329797551258773274056645334329580209825469948097365953521638819476064122581664105822430255579321331675641856116893805481920542323505101685654342210803058619811431792004613992664157604003841052319691032455260214618409552215637382147217770147364878797552492999730180299203575737284314955849420719084907410623983243378037471036808803938972617327695178632775962823517336294426780704492687986078553294572081329922459573970639171995407618352434122398055764829241425679319769551108134844499366964483085411900156245104044400640594034864990570216392979954354798739325550951336874114754003213952820434271415762417764662075860875060635181619746711973870008419616431766661193659575350591677090995313678740005688863814034349491497933170174395754350555723409930749997702800592129657767595009227585162420881068757584862141986802623151163517025802557593236197473426072859691864866442943328442279623098961700703708231187639175587601712160102846774404587231908422091037927202966195562824850235489705208346013559569489209622327777819368965830678665139761247120469303618466701154980310849812096002407201589553360950552403788269786211004045566511810451106414950663488430396740418755216126312907618464828083670213026772294373440637178713916426440100941022741509015196867472512662868073744600864387455214748706830794195442166763798682878913422108581741278414925285335138442511533098569395750887791683411021025691787438670305119180942735744791238656317474614087598033471530487651436378463535659031235362395850625575073971995560292359486839000660651788638120713904832489836280663275622946382820456082695133839724448631514730291404984555854078156067281415609818696734771425874707855305144245361610407520766748700610745023460648035447785466243002175881854264183285985801903656672667520275300136776835616709420928870511401344260833106944970328280514957207626746156170047298752795314698896675722004029931053504304148256494730041240731002435620287978271403517155172592950906549119517236781748880445346241569672838241254863127104040243834694968138731717369596065306438946270199629852908755264117627818496176317469354714921088384808739540711076085334424027052035169126687856894245296875936866110034617152383536649201548946846174216112781559598251863872060319270148848575746277281434019722140927133630876993123301120242623745845844173278760154813814402309675424658361218587524341796473374748508235781795367295372602156779724679578698646842640184838298386872861457919564168861246244813760410895685863633540593709052396586104573685762472985806777234648891216405854903178569271772882767993642553744923158317661197841351057283292412459136071585925041645418415117478957350878166615597322689886749378619148702734125352941481328574975608929122574563422284054974215238399906609406380685736106981625044759647075180681176002610769113080510525403339399466626602473864607681066230860599114870907163068720348860898419240342530142025017231933230524378833265108417797560869146547297409706862627095228830000380195611120137526396472111262793040755511042440112796159171011653372958606424612575295792346771853777968881013472074104783785049201903512114739210317864815624474439255597472064411462974185808752568076583179646186608813860102269545339674967481370435743625719713351091497566862701980339126434522739887520900334843126411180151610568351239580036503985332510511728894617824200486317864273612210919392558740428734652392044943702804453720513070245589288097415253174366218342349248624356474820673948100352999236521410815422631835535536306025897835262531457465219141717610098695794926451830156528238982241646105015225407304847722339792304778320117519530138992241117190950686558400824902766309088609138354423356150977058917259218642756140051666916078838238646638490883869187497849131677194558126145181078098775309987201027977363277363458034597586754440581794349648009861567918855293316900076468597818980724443014647112202396790389748778109000854881621422872379562273773223541214881060015072505815884983971908959855563870444443225099371543893405283175924419565610686672581337649061436229846103981550566243764122242154246538926344406177154944516686554015198314965165071748941836825247590228064159164588996105673308048351280364267786883900827335629194173923749769986271290521034495179816495434138183998167396015570161001778262907501148622843575107652910096714912500079595364164980276627881251315171673366512303514518590263453041116065167709990849914334879558543503009267164326964208386122379101938236518451706105589824598997293639662988872806784699172618407091440608898627500702918958089683923716020189394887181831166798683397062906088206295293197983501422133613297257128734184363459444742299001462160166776278996959024615541641723279112698648298355405705402620931680851749084179408341343252960492341168664323499585238116789931695658369593992913954312995351249914233344931880707452330377739196592306012245051341681181670417691339084450644638908195899420636998483323226743798457199067562048852222136281160714085752763871227503234609331390013069022374846821465550564507525915651123567117472744374188663835068623740637638915676416821098037113872829091124137380777927456026335849774733877707753208693661850561549841024042684785377114488184387029840127772187291472902086673066543451255556752154204321063495450618834921563500781690400383227246096682416258803919897231388883404013989201985413429069854498550774912203272945744739447842673058772022561904035328391575553966174513212159752453741353392369955507951140982699229795072173520789541870365096360132161672378983532958823145076510125464534260804972833195245389525382561455559584103256244448062395484342243842399336919429042329087134972054164028919163059726430490922490727141795201861458305854482114707096432745675286026027755082976185543077761386976588985719717593193050006565558453480341155141220650768767955870569272755508966423337482450293270743034813713424293555779192620561051588973910297711893019987574193380273548917463010611153191450534689458558200138863773656731287336397752540991918459599211012554525925940960317721410741023759900908711058727540126379329078565525939349879457576671237835837067558712431832999589585199414471570050375365182741199653627896169411319855263313076986141934295535839030562459044585346290312515729010537453158057916648225093987857115073122979354167576061623236765971396384937991716660682436098754830684597343827921000600214868016657510341068355716225268937471943027621239546042842619702753441376841059623686360436262391533195998403004537179297355143500497718265765820760453315165944014140104304445096274489049727327622722118238132561253025570867531920044152123693799745922353715947250846442689590518617595692227781169445542221151037544341889523371356267161682459839064984365963270107124297899233145491191052139062766615783219511846604463062084120637012843783096712070001066958471920268196113546715925773363541830230138881819017169168916126755353699117909026324364572300255986247372970349051843546511769503682284048534739802094784291561268426264279089810050731055861851824622076693485343969039824285455317503898495411432142783331100397496836426751569562532852850546329390834521491292522150833196536426604809089284104736290207475254569663824875971904801499468762050364526949458049155613741959277517978744302325284851165228344964499495652103898346855343704295261757192340745676358873546413475341190606720982492690647174775243123367440649178366437173537208067441450240458966572400137662950645367009259558362865668979154734064458679223277168679997742597480027967534101326926272262415791203175507352223243483653366975854018669857510438882494373405540110899772573525466520084437274008471025476569002367399436979189901428109024485714128008311553385188538563961953228259595211814256488325947184748495997212142348285818422142609283529539711386879582949971274942195714005153513825523442067538602020556781033680281739832061447608798908104672681961565119092937941347081638903359688575919958625904367174572296825527848162215924085196415975008927090717295775313962076327133079019437634082077736770687479262714446301188443242415663924326147314174451202805089245307807418161584168679095265533013999588158798525480868144276816603411729917687034423669282564693810168688643218346914915866797084389332111461930323308246478977531779171513529214729335199835171515636107386730872893021312053333042455906205958044369538707590918576962760753157219076499423174625714275406206344143548292417106465888882372463545615232880196683537624630510590248671716181384900041811790938956181900450187291159192434363675675254003377129267936143410915618330519045263592841709658353423836180119396033223149780555054553725914528349924580336418621035877655259434058881800011982452332167508209902742085151318624543832328256581505076833098954344123336902023699699807205568323222446193004434504288982735312559347410411911486333700040059079424773009663071305605993372975288238185502602485366239035065455383353966968231770110289084168389785766472303136289794456766214260996002875417695993547875671471021899156722758054018391829682491855552593056536902890250486511829764948096567179521435530887225508988249637540470324621984528792820504397208613452437320405090283622209881352942135295826707242967412149997262650679771877494018841977635221786735486870741434253666607221239720474520319758985360345123694058781467512497960947532589869933230777674703372890473627447645292533778898261114280021444148111823996661515017245391975794207572480553446003731889004898081143360672054381743415564456256461309114564556331456633997249143017209007178895194691079030135910048149139763485392301064687201368885053413731228228125298845897385632902779757310418604250913551948743846597997388435237857807524682183105210258778255102725718107310095404342827228798686969839377236529610828620365554384859835628636348525340949431390211175943433159013935260359022370562778615539278596068781631846438994681331361692155105710498305662018511535620159364604398190778905580294623582507368792512540977514936330825379530664423311626139287054899590036387528820858934850573949812033293978368093083811204753334106817719654980411160572683290562786014804900976893326884932302889346627255010960160838484932832585543918114747773919793696537410184377852356712345550226078143508848677698552876973108027411547692327692630606983623896642504950983528076686187436804408596403765619938828616313966313029075057423474847703839824075627720034937597384687303095454588249269395281818943245872826109752042395049935330015169081115937035197818815865843919159122679785071083537312307678669610387124316036225015422303468678368059341053274177906708606760022676333806805344852758805879221995346348914294052562451158846884030050586635460947417916641907546143342022120185838241970326840640751712466843108037292214350266039925308745863080138648541179006685652509202025860028747049139340017119688259765362576345636259047833666501820625067866311159439535834131212045781481900277560317240503178897856717536128126587259525174086799157523282951895126559518207193050458888120114574107893550382928065407967171671054763581675612583082018317147787260737991028720598739685453848535379495676824864271571136092037501721569933515665698314962703206160163174901791571305736859043411144001436960569662346820233401613223556853431536219739846366929626758773320350355605763866542093977335113095491172149917796946113458848791995007498371272581810933667646810969158050445364702987562698168693323230748589188922092916307514546644394475116819221175596901584013131034629943802685592387335598096185257576284540665312633694124859227476612983254114323038114812784468894709071928105581257293303628999044259604067129322055290222414224576840024257905413325846055775095968422945859386989634926848636392788292827695203237683708528606129341190155360025265853980037027800439467710398668699971444341720683585847509638231704224605837683066322861738167693911863850795069902953493681866632122944024884396331251148861865104122995121042727223607669782243512793352097330500155332371438680339615755426875106585881801043127756469500103129160221214806720564456633177724040759733754632644815211190219983872329401809178207029171253217182956388486143148418603070313985490802566383584982908489266320091416658907885369297169259242406116165302121034833216992947952495097081629453718322727135554097170263157113434950767201917003496417886154175470135977142368981676533168944706026793045492174433982993825352096915322424103961406239974414947662470473992728028038995859974997638738663784744600287127411076788748804812806170484721081675582139777207309733420433376860276081741170556734833224535831793251024790851053593316826968041104699107632574970734741314796146776068286636611144763115654847275602012731585573886570664164406781728291394213337563263028391604575022490054242374159675518369335237332284490092219887636019462769439519200955216562548456986926671025760324437845180820382160041180185631971991846302927196390189136923563870664917045724200380015555119173020626782413386275165567773166894406280825006917779015580677917405574956484237394203071781394440991182502317005806732736494287627677078279876526641244940498434340365546586641218705981839162161187102445075868900755241969239465111301560281141912154624144477538634699649610044574677780543223202943163637790436244584149087128523686051565061389459477560191849520050973423551186548793733223046368809498039735702088343799664430089226536105444561517451035060229591233453037464188842751013879387443450422507068134288701293667685311388186749602516645525604786025083681688358030237230782281964833696724889900669495119443057889884570427559441679971040210698928900184795103681566983781479357055593575881003629246547588244161415091725144369364086753476787096952556811064920688230829356656635815539511970209953995532554434994391237561563961092766771530016453030456272229089888469237340212060120287977701106642282904448926351059226341554838764029551549489339594549394405718326556372683045664144383833888591173993966803464565458163808435628625241319870881776623179429306421952097489032181902806351774242014015324017530683039959725645669641644855393560149191914616452499556311379883847293927006644887202109563701086648129678240734386476463504804983951878140344066467730222341773455001015696071470593835448843746188022776795303231667086386117201400910975891904566424248805370270363903425798702069390795090327512250846145108420676941012512857820125771334039503678260907513154425181800434488412501302672686826867310250401358407707921900620337803565478631239515812209115482103537971915419539104078467220789157820179902261164200162969401032313420756478728943249764674207118579193504430295296070142748847362018891794370652985735320010808720433096655806338074155269610723585073074885835642478136562143265523686834702361455375076107055596367037343768134521191690720194709724948192400668847514793814199668254327749199445219681475446986359559357767507001662024329974932614909033924711401813741684079268802574404567061277671764422361735439088867963964783160582575478421606790003065480188154647729804436775768804390626268973960911209505475927228946939989711554315806871349515405310498283446246375020576822724663555424953415758943501788847789405707553454388406848433028295786279573706394701157698973459342095620155407166333191500427418917465335107909541555307970398943611992914192566543238585343811358654276940475239843543566017041340617659723050106280664242073488553581030938305371689308161642675618066876016609168727579687228810787205904381044107179757555584748867056015945981251117327076911094872232554745649590071073042949556763438290698585899366763394004324681165011428986809496756004488894549151342567525581463883123180196752802062323543430057112590484032987133360777592092231589101033302858591743383873647869365616648433078439694355866323865059658342360524226646048552896072592381042566502851213818661822429054068209068452408070297619765149213604343529686396965363625044605849187966170137269507122288155321527397822666401297734368284870802620838711867286275178291856037744097610622363744734447096657092856084300034890125266437409438477534249305315205430731414831984403725115726248783029334687922364955669094587053361807808516892759684182205060628132390030029107529717815201497058333520719774751112484553396132905760545616833962501618812043525392460129515364060659288909881490788117236120299659085517452722373866728087898460959497669501246303588341524325261684951125819204377255374512291669773083675091813416034364721257439392195506407132903050043477657076001155950141896831344549366900696174300142967655993837465653686192537110654081479183781699135643911835183074600061907162277255159330823501467117289016354502407205872582777940386487433108217707136380365932504040222943138270118472525346617657211327420441130930435204761491510839426188939520910410523202054189131951585202571854298280128226436300565040413293813172842290361461106645570660379295908624605381919185626691874210816879525220668991553604606052993993852461815519084095407971389976055282338022808676192229629508424179386280522411043817990724371050635810824278524780207797628926471358654403924923344054969453997610518838239408511572974698333789361575824671387762221196482880399941590402242416812746142079359108491268028057208383466589165336888868426886091365314664646339568481883645714477494784967910148841036088561134334154155455117054041418701067828284960511258628552874272950184588983362904182415062903682273914481659974799426202027258206125829611404607652553419710757676195289859404425205598573882575566298326183999089143844364533565633217364856184941964401620514943216890988979569838053706242295946249296598584526458440197645935745011243723237013564759693130007184748582478930580168491844556480407576817154371760418266996809234197448120039034058219230650030719658364052140120867292026736663660665903041178334272919916114470777483371466705143864649757124494450399127929057791365789108970205712576154246468248366700845920916291841389823184028993930980971814414871506371416588754006028234564383943823058677372377907013679387782941698568341331133497595516974428682666878780647626512634896196376627997726589584211170712286479173720713125589998819318656595877299967582111923966349398555838793377761676034967346675806813358191092044644793446198678343259101306151351043188882029737928070638299564303869576588166939649191846112677672387424029110902756821359326208596517215044279099122832416055153788629369446451507786136044068185828999282321551153556261723018132940143166807858508314584150052086553631493391271448214155048141798460804229315620620208504266101887323195768172188291488385751131563732785476660510976367834727755616326625279723222931157091911228919632563165131462003750229274992128499143874954606154266926786453485775968393965198557670805506576599819697608535703073172737428938255179803707495236110128374059487336462021294632348458878159569607949105455681741049084493964559847245924801667489456416013956959196606524739770046919950631187201645154284034041476800998226971784479482473178488905240269436044363176811808561813062187544227739678110929847040684047108587880206705594225375606634756975725003342975536130165742080272337323053439355267621435254523323749485058805447588978685235928927525093083883478371739362948626889015043155546423397151594203018979366416191203269204723722612860042893215474172161537998541808584932014482503407260066509794649511160746672645000317474433861801929275174706555680649347458529465873439448375285382322648601512318194651946735666155379880131339805466500196694839507194740394352328179254378330941272774438764771959617405476133896568513051102877432665766494601032872506609114161167167831549377665382888819024791510656649801313683770732565568692280306835029910137377277866253107547643420316573010702733930589975727631642649335613372447391393494300026933269703970427700978880433262693608575928081622777030185302294823045517346216428174865933795141909203723597202209673003825884666050934575016816521749571770341582832303266983872947130900463246289324963967504403041584948248558472937122602544405276996717195035138474950321507885848608514564303674047257982717954033958526127007519312165307692422621680811255623815179608992943345336664907202380243975651151719009718233307459875918584715361568060675221788986969170861990008269608955478283532296822396460438363199696983504882754484625358845596553679961862886380645391993741111940285808320592765070411986537827382656904445984887065587706682275964928765997218247854218621703199453955077335925129199267909193198420156460716320505474306160800557746194105162040387745203315382914418416017227782396322366794771107122144885222163893481684466822151353031336148799414572205379119185747349710146260316290307373979578853056523962474604321934666769322737166713662030448777627333615945965503971280736035246209597510438192024163136563034111700228404735031842547700783805566753280923906196185644635061232549398177786762371999744833963416140753672675912128098872104156851994566720550278673327591359081308396675127003575731088587493589038853725443613307945377038479013845473712047072450328687001439432203368582539202257761442560486153370259972948136295985100520076300257074143210271489382488880727412756300378221576959040155946695488805744328642628482761280576063758196053386306926882066414097556433669039290707329158015140743015732594756334266126042205578187616188811957890097565535124591397054815055307173193269742312997258566393532505245694069670553450752413070661531100928941001030518503766386566863477434943509425687910492414405399421743033259237689246611910329081951976257632729778116379461172871031870246938305035082247090193393539203000232592440972336376806119428194209956632732248239127324496801192956254724394264941964502976797961593390026837935972884583808950585205892756201526014329992967501646489653359220977812666287239885091545227125566949532510564787183527468222702549166644696300289637149457802691507173679876325533810192409525373571412318320948956762041834486670973361313819332335348249430081749094143826672163450999814974909627012565151315744442869523900515265813325885654277551067592526539908126246166125835104853514553714166016483633659192755783309534759434423365865393472114548773905221060251165850437575154385801017277788563964874889700827971552703441056491561844542235016386017812760618127884949185794363719702250203827554102478662176627505108433703612878588335963206287947669889015320505585122392281570265772688978063708723972563533635301499518459112899856732909923381520238479229957349002644348497283709559057564817918568942769821877707221516345489548627736948423979424688308045200018529953851915762553437997331241690176874764593124199940531350920825005091534589782038494153907389978712686793346985765359298416896979934627545140219646993694194147890357512026820574387929557079618431238889279018610276190446369317406201692232515396026586529715953912132504625941954356041969212257203411929595793805612080448151925340098712739334193822937350615238260648673341870096282584069915619113250029906624991408584985427021396820374051243016756799964846739784491255137730876368281788247643106713363422616107609375740080656185558133065571960625477423586184965933204907854280857422515623679374796868899868936291181211582152192482762613856707540251445295739707010460359038199858159103202068295068835082661190662958590263802073247210499423707867670659745530237708360850750577032613489297828329353822626599589817176517476441785889138213931840517308193594479608034824009440561367836259055458503936996324462152233398253584222606053923072220059507923667561590104872313302541054112957784262125243604773067833845568744538559767578002499380059333965444269811989573257632184283542422288584726538733210363643446991917181767512439461296152372289117721966089757401234758408892688813263692513187517401345402464209549961940437059070512320690834464370489667182052702428655892571029658816747300875502162195641806249997546276048994514633933377861887568225750624095919615252838943555840287341556268153308931660981272762784520586010734390749438792166952464429582036291364449935744380676433701308369164710606992985470172983733753105105056613293054378640161670094222069608153236063647234657420632327797011035251547075323988779460437980456563187914860028557124191831922097221780426592176323644272271301366826179339313748594844376642217839177198641581136577492243029591759262677876082897083503430245287122278348887349832180503053475167305568613664753424786263215256637169356465509315784772216320624149325671776124065494188438873572015016670975577522784693631083292865212473115824144976848493291614086128775547904299395824699567472821949599792965193247425611123699410957492003681943390340808079678080721396595488710046364074846561239852602200649098105265315608540094263558992122943405677193179300348941673163241276228500632735315658191670973362897935651106878787363388234783616658666935174301183187497696631605149144224760513059456229128439623091118996986722429613308124524906333348980441641581581711159130087784730399489437962055640317674801416169142566328422211386919553232476587694234918741384737510559104296458278654003022509049389037091405640351985034716546084598502371841872501499462989854159489538132765219301548701544930438268984087408867285055540752486445325330735930919785121131443974258699963390700721261732860793306425424705895926709910748679952682245675474331433163006816577427140301449114329083622785898193141577474707781878893726935432391962565406264327836055854967097529749243588302001060127465289911181650530507293075479076073661560645129750389411650436266206448511129102071389518487064587996373466486009381135375896142186497391589629579058939374555101757090234281928926492592951892086543655413868247816564921247056200735932683991177624644048410019588994971270709537957304829481931594678206501459554353118361788990940147802184503221295209584032201263215869784824021299445168428562497019927575878124221484242797607614547291626502233530557438546221501434021530278872606624705196220663578846742777990295110793092330533183254483708769852262607261942523789234896535990420096526635628291429570641813231072043288220916518799895619253527981037186428218104802148461995473130132509618978053236822904241766350211384774891187943791920908455988936379999812402296053535022207928494469917374506473237427916988033544953351431896689047834963109702487688394866240432768887651182421572303452995763783276047186055255438276390537411668636022706504599273634152529463711573593101768150643793106167755926070772806074564374455936659552262441923503199199614925863547862559128438213976111214386053176351817540710491033449914359786567807078594670477340692191409853206644219612664247743122439089261931434807439463358251050422274355903636207891328437061466474829685034961858241563581839026917863046932949644367449737408059524599157663374451872198926834876959574034867693109649129525568502496873582686023238181424916034084233791736356881724603913218617902413433389581225290136399633681613265269619446446907401428072528459393965513042668889735373154006041714684369264083550620739213914212489089191982073610772491308609412468304422171576568340189897711193480194515964727311454311745261189478811975148499161726085074026461439734430242126782807094737853517151182430276698594791048728573819918840907711857504983622149404118223950787303018023835346211400543993128597817455112110832589852362582329419210382189155737389688525998877100715930105321373927140888857888427823940759753503464280897893559535877622313267252311325892240390294994346159757753298273724663547444896608227999168269468720312751526638340457341115482388026658640268753596703729015986974794394794541672158654050359176094196742956052023324923250027339839111499165100119066996614257033148365165332728417747606079121468422126231741290471718522184811768482022809175199316494828828768623085211251176828488752076926911471267593824002226899297456474186574606634687160719986024921124561112406658380318242083621055173985944042677854367320215837696066976759274655444077683538035752351041585346164729125221788252697174409697896194181706554461996414460926674355197752638108939145040483757404277438379789646355320215754049196028926254744920326599950515014268569537881360821182211696235785644516159892116341154368841006936613469873391410155571983709747584200948737602938098679849473858151925272037707692525769048013744808839218824651779797855316300799090378400943624023764200472077640731279388659960828725568603092373006041022522256030754230612705421745946117693694734704942565935555259556427142548244983673765447551258145038808489987052056391775966261545874464589095185115851603946780025305719614787991500036256847789862572726862148072090809718034338598446685679878633830542995266782955126393243477951853396718697689384492129216266185198872742358207167870887074309434996300110350820921502567137329374764563597708440571656185727877479146326058785402139017463482609908140938017237518244031681293023507199194599659192007767581468843176942233863840194122769690773000308556648457797916220789917127773479035806200597359177457010324493680820488616084676952793327724830941990190667137510617215478526163606669945071401918651434098532479794337620358171443312586672428619465112571152912881450313087721846798149571817300844074425424084847688241631464448538128517557263990648849301076473634441720834042434468850273612403279498858120028894384044478028673034833548578835501632535567363619293320808566382686503365965266802517794368478357463460525024419846046490348478417647687442849308802315249507720370820998981795986731766191760765961534032962836225170646984232185764328345909169742811703310617009316010529816382767234344827820382347630994781677220334612623394680358332002264287757216379613985953404400698257998087659901368093766934471888511547830912596832688656056747812418620586218537587005419534043783273045202721729732455284678703067396401870535077509589464631293861710098629776664073923259038182760041124694563200253068968980527333365701864517772862709829061776849400662800102416373043290694165350064586343634656625626368279255117288049407011196106247828136991919993374582153684941366648787818349541165208998740199507783536231341813081214539050692160845650387052021092481438931885170538224279663910537537915679918624333677291952466735542689084341017430785327247831552868475571925952156731869368909065789638494245415304272235686254597092482043872537026010241508013183615961601849941252326550790911688624994506837937597003547952377742477831244538785038048567591679598761812297028870077933995979211632502181778276482430217602907076451135870236681967216649627992127262065087352636073400481852650154370406152554086488903314815950075252167931330014519642879547230461582365798340101795116770216217307056904760671778322142244502249576452296267890607559960160795168322649435053648810549063730265380442424775183345254040673492652364828198511481778438252134871056624244063145489113182370157925870082505616231399911950087412128657577556719556866074349213617316698346384148676547073736132423271709744737749249138357338128884726787922051951638655385546849984391599320249673343181832382813776274091180478540679431250801736127095957811872512589114159753419966077166787353832559821533329189863867415914298407356999758921661333425762193191563789209375364717237386652428861625033126066433999671912839836614195050022193500883953265446950713046918223183036688130513951729658389074683348739029855151878510329612140283161568351886874953094343103732449607106566441483168890158831407920888815963665251605271569344746661927489592537292514745854731858006327367664646172660737127086328918507998337437995355116152791840841020665771018238091083646011974017494595937277390413628232859030815575240245447197927598227330117137314188967809492360417268749410637711656254369143537833495089568237643374580053175964671666764833221921460294067896355587824441533829264679765276494711058746271087411896723520359887405086904989777330150125200613024053433113421653246770952804069092108799532988619317730966198224224450832780233041836694235138795990157293426483725711118234850483047157517518458125655687155856365579948978045832284024733348849042358088366698787673896343293414448933760906383674325050639127335000104158292266304409970729254470989599174885890475590447034953322476580253694773629553155812371678064417511212815943942743836111152752268795670833505667416061794001225488188552505370826473065524521349368545346193986380788867992817148947131658191460718695331945282938002334136259250648095830266086534705939398712695109071936449230027273252943174833084187532259268944804883526294184914515361917971588526312179187568991274613697531105441308677789273329998799043771767182337066276615059886286702323163939438937633559969340370564128218148386854991256786848320567301338397532623268088797265283986012728015120063642259347877904145341625151242191423258538125722672954444498193988902428418892845473506884851963303294770484404939933005105464886504243066241536402603372683387338688693693644234465031130214900730844341198751839092020916304669939057665970476721854300937025435999334595677600470699897588554692734261470743402837008761493656598239966863359830336466791123276779156084933829261709264434674724727433957824488796679111029807801104937685223175391474168861237141877465286452926269111966311868821715958691979964869358206995331888752754472400684339819448879003893860001811881509136160012360622431538576587541313956081147473799029907249608238197766703325726657529566377323511847324972995376148456543046582526076442860508393187555490052269294553177923299631427856362711053129687318249573483938596640664656932304840214060358962816314246583425242420033408197789012477841678654807676289811724934290611741435865953195362119124221730791434494547123131968626329555825147017826806887832450677483962671693208825620400651209961699630536233438666937246666472331602922032134793492783645414011392489083815027720458244054944517091816637633164815556968072668119760584913219123009645297344261576277847674412167139201844390314588244198507392540080006183941892544647185270942056064942822955654507664435171005589330046792269914766728663890063275657348711367687754760739186984192129856852371144342259466098553199345156230163394880654946013662858478914655592908006251715994166667649988515886854707129270218574605628955218847791433793881452092358152114435488028541876730771936466033147005656027305186516564697283218595156807709101484140358261534251390181143019991363987993587432305347133321932087544225103166513904223604750130677535479295685988475368468880948000662550716626955472182217468293137583380314006750049557218047928221279988518952925013180859019036753179431585169200014468193127887300165943779997150865003066494728330315217856756457222383199435920031826534988291026630688794797605247514989261742851443378631778635253707332737133447537203870535499398262152330009843518592670817397110815889398003948109504581835184102637265839053513941249081375689682890622624480814333146776762946897053413425118153312186075548960949172534860264065552523982328743286847935425145905173987853735275437624890931292591023151046730652050843055214138924166016187493437645640435349482880399341093888970689454296111289933594734704866064877629150459764775648816790977964966880451894192928120241015220524545548217624785225659291842846765317127471816102272739337055104551957090850067504233784344404286863763928651495844564517048482288509025896827328587291664191787684118160688130223507129873941294694164324420901192298914004103812140117086036915651855372191249448983640113875705940360522888005641100337952140424126513629566003207998096225663046920677914786873279546364488898478063212113272936704694035430645063687401733712484891386112113838330568411961563246143346883952176477504467127890155702905678861236117022042377413741008631532966527008942988528823682800724659915329576966491461105365988706285039211197266262983148815883438273278569373737277182311190365957329198106435595610849680847954534195124726227584773020722135566432414332350038493148392460932431437419556607442226971454550089426263437661152144676926535664522297102315040335438657881038012214941242316443893938000065131680962378474745586371586293326520208902664231935528954463030825216618630433544257476067015106737596452655531618122594183160596509077803518128851548464459281291318719003216422447516794069201576032921562254115943941993019158742848250707638545933009625844336997677859835867882643523294693853687921417860799558765901530496458639623261852627331671802147481571162821079610846520365920572468159581734837035700734714079945044556340805144407767372319816396922843042625477266809702941409862359102594205910364161271182815516014627615929607841717403206546321765965304518169502548908899418071215476577175558498112168978335124734659560641850347371601572456736467188929970503266391526550638284219286462481690878295170390448162502882701632451457982719548002796409120118340800777720873948007075795790828384033225290794518560884255737472905612210860780637863692005213925668104452393976530063010333636122324077325598954855459117900672990853271898410693239740111494738593981797127893421147062160722709087136393985119982161152805787676436224081201161787374806319375106141315372862223525617072557358184525309330539801297401806301316147172848060099479449131296366803285768575097500019834705646310003081707872417499952244358030982625352576660552232926181252377654047975001905696328913739060395183183500106474568967375348692326113893968337433042367944877981770253171625765847123042156378578891170368504684655767483737252705986485560864883170055167856545388512171555227248044807285751744349813416633523488150146846715815235117546684587422970861141485082634395901145609984650982240979056879159389047058148589548605371982380565430949181230120066701441414321996063804459170351614245479505238482924681048333991776364294927316671224454555168481538721131672000554554401778153233016642357874528649363141345661717618236872551456119479670147224490241988532816762150791272346555138575357059010245166620901287039472009917727197770666044249888834955990673722963016092824230233673781623320413816938824039943467384557517126431016324692827573008451314022784034726048186771091125247668207775811060201798507077008041554218098609327313441363139093789830594155180565852635304012104339993122501367336943445046182846731243311722106412633032263043819705038232277846092622658241430169554906051824345341794718408993995464517848237656688538977266180802623962581651111897143820067703491804088495146744265473004285553029000094016174486458807986362968321928627987046275743894045744323713316819778815662307646950051326778456367544278560053207291806479329697979264326368785451779868300762584447909933822277383974645376372250105930203371712023566192131044009019002421800529388293120853941815509937135476023278699490394663122056662641499469673645173452570043080066060827973564741631044663808018959013561854926638968940775560145930689560429686483975763880138097356072748365188417728041577870341441209047439721568597159183614628555004365355580933843634188722234689223584292262908164593701795010005618337221813346298111619447583597427850184404649879434765138410458449021540711730662478557274761317454923421090937733781958668072755295796792433801953494944951292877242414104734613958601023550701384188365059202510571314444210231302989338876576557601397761118579196284843058018884236575477331459324060811662315434863107610527534422770719030840373479925056233485956979437339220087205910334873593933629366407629355647786433500678399653807933913770707170047608734845368533899463794798515054562616285901415943990638942081199120710015178802229001126721369348224722556116460328451602658422842640289141678733073119718060045852697231030172312443045160695870264045217710605484692171560345647081857735078405163659726599278918111265396042616417426889701325967198115104342562421655356072666337183416755452302278286975221272560407753710587796795020642938133792608313053193107409348854636571091433512647806517209074826673978037597459606913913086042599171955097345058302394579608518006320580499253904608230995220985090504366242761841363973317976341676559730627271984660005356937382786144882650286214779629435264276071099035588684696142756493303251413566245073940618702974246907732033255568439650076630859341781686832802638337782373529060867563771843473540620185173384146400562435496238352127352603340473948294422004475310946532690060097721598549953917777507898058590955236587097900203397902897847874313992951268218385079834169974525444572081530075976282292275272847254813259182357214717300491168071895889867975178811137786217803968833762984543885526971456302342084653922914053800406068339285102982109185529237391879547698922310926356321740734199114568194547810982524424888646912502807513752125458601863209462526587945682688050453411148291700032107749050042425164660800309408268282124019795810422567738279969616177735756332696787140237325019453797259630323399057369408047637469522409990129064855241930058432400678143348944407164259396230432908733728259225646954627153895875882806262634401479791362701854226493849054970006138026675529280348003838571951145517015721247626316716678655849134064015208921031757894532466454887325884187487224224797552552236773817976736766818602673099000655696294424041231683636997636813922824145086919100588274077550731821951038955090407478475869351607267377850056292350607660067557516492776499084262677473684925984485065799777801245623059560779424070786672655875391944788050187511218137225917016397677205082644206588095797406065538124139780591991821871823146567321277780277767797965787991764747027995339151664728034352807772804752469278597415928827374093959449990631040594537588695072165538202450302199796661325354476038682477561108252741164113881445291142422791044159355410330867267343331433198168614462593277346620481417046405908757774976701654422331632020495228251376830815991241187158457025763024680482880350172996921595849621403244642693128201428708400404360345389730622287559730012208497503663342576182943660477865180182891286387559026367578123256416718510966269779487513484827126481360946912723710539195328516625841772003327826345850209873130389073104007658649596656308403224599002348304339503884807771609028967683881638041010871863700996826882409139395272858734159301373958455817668024196761658887193576153057425635834160480632037714158191205624644598311707134231456140553689632533216215177815665441488976841837371840187191909136657499537185724118727476484616201263376362461692526755766642190498077072305208114533182757669904882373959245722820960788941144281333833725054136265231613579084135044746737692541015152237528777189569411379796633297233266923377349213858729199731350186932386766603640387833442367591755199571033931193258755771982171811062560785463533059764275683906738591045653150875047526747125288476139434592616646332597674448690485526593683486637895895392330924044751239123532925442296053970775799055807518660007430923986082911697086774701557068645650183574888381957569494896224942280195981748698864362275113539585812391637351911301832549593541157833834627468413149909017893546601614897910390923250285454992338857015227654462153906047297665321901091605768442843159631118997939498482291095528034677892015509861592877380116978704421987229931857198330658717120093940687956369324511496009036000137770902284468762400951369071704332653808095331533678867431478988525347505100222848271610641901399165380593587056605711963336856967870922355546608879928818824136955403716722725954395718037732355764114397566105442265082252877081730338232448711808434740271066269936829559469675841298262013078629195771884883480874949244903191864320540020488285413670606345613331788570533925781723536910447177042297468432646980616143718594473734204063117318774712620374851138477145022208498973973361279123549576166309269232048923168620571672586992879912971560455742026686506843434075494540153193161812399712736632354618170632112052582569476071299850051599755593389841719769105164587972932304485933586592706123039733041984636542715354514487232771226457501636482284900465202449508993805795656570459019138430482253205985690487515033237934888022916773655940696116705662420154991732116825881577527601163910363836864371351298386262899274536608194557097993274554786567031451784370100167772021815666891193758104522212232670505207829647974292305648406708820231752040644794254071363665689765147448129603985621033488234817775639720256950091217194573201743893794228059773024234947792382515866971896043565109870774371308316619253478529907946661705326038667759923766177736282047729181888242260437338724076849020542307237691159224349546729936874177167292093304751042895356734016038233081149531137680809762931109336138717738571911228032569637668167965677100597549308607043051583593780025532032433237508573847860943449295327665906180863036603364672709223039231198322271087698368271866969299789199692660229894325346427780873092210729129290342967628292818502467780698302450124436485390090809700301692644050845298053947216518654001979183145773066960036208980846829871588868041040999300881917761913234034924564494752848168952693463802415733961345148078075680184165611035851275288562403173596287273546184894339854791932508444167717577294442510959611606841762042119140501222289229406562733307994715452663574021855084876982149688021837899200758382653710658822679995640995968458922312576974656074123855294179682352241753473815373008892414464299584816207050856098405194612697197601543627268026563487806796098625048253724866668454862636403366616956536187987869773564283045310927060333102697414186780152388999036085400882875122261825773210613199493303542508192846762108667372758716013487530093903872024011918826054943841088853110383918223317686347280176926597211027468902458039681105039590057775755253106945192251693297685756053465843808231589569609165356965761012318803279397288683563831637252890485359449889152775538337275422006942188874786245931417944254983282267717128852966869041351238128291700280901822171057337960749564505959346595235381471085194273784149997927539366913872172123678256014075890679833106204319009878191877516323874594600210251325410678874433861014223517037992196709964612129813099830123956931827508861142625279419767995362090093158091661749949367117174233364558661510748312603945410565362593431527574881960286087609545423975226088095704771010337884005610384180123721150790012249692566764881472018959139233132144423857558911505717260082840920694847821940456751627749245226860556518115570673252974682504086113744542893630984883135060958779471747487405540693322283539118419736461787289990284483138342070575593045403763957236508154311848236331310882017340531626131758274825996370019588339232093419476872722743906564054323724681699156884118858603606197182930713272294964085336490469848001147206294036834210750142971788854291932439405259134877057645202316728231119684347215377098000383541617523652231491331923175210823414208416814338033602897463403349641374248969415514208414844331570757618406786775584601843999665268470895245632690271002069508702370174337280197977445343592236899220401554836723363556637108557161916503041282980039726293153722055301333820657523609859359253329975353392029204260958213808178581597261419250430359252961340302479684435300970342981734355088880625339041717162498681112846702834284108283432231539802251486939828652511378261662119879445404166804603970969976567498928042707936300403746453412630261478838537937236538969311069069708058018791138707743408314836648081642189940809798308777355099584100643184357185545222856913359222413798158650835559947196331514900231081771824376380892959557031423204225496665652551273591105410048930485434698794317523117603768501412659227884528167023833079035607163609087825150446912181802220130853096625660670333349115338459541007677243260399545876472830589972190546616975770105607827290073582990054323275860521285470236301047329391576807223908484969529919840536167590174659916853274394441538041368476705240722051340265476034969600562641512925924546151165187673523645454188101487524539851558883315542994768449484829038622213453386725555106933654505295106775681289217349556231205434692850571785677463152921353769533251723223444840803617201692546093272878808543265102123306167696511746736698388104496257951408360339029485331263135774857378888087437420893128091173759765342570382686830528880292286967587989087939803025469639773474557840332967277858869872615579273356654807232574268109336254916454859202587315227747068387508473797317007321811074200129035265139861483949160327667065745242205191052528880185924487328718108273733587045828804359177027654992656845192001023819287175736076887605163543195704858292780751923755573911898421668669872689957691496333550944381146951205890496775206385231505719774028943522543874813667715862322513005568888330890076959816088008360997031424291017633471409814084508518665520077350627156008626878137314709941999533820682479723882588500316154099034649905462050649535596982696646977414753843264877433730896786220692735514246836426803393545083025009240234058306597712075380052035854621732045680872930477738711172249064777508819670305534829682537709123471819971534822108346999112360216396405800587650902013174200095224231381283559137767605291885544321943306003248428523918045375678278495823255464921699316962670216036365192237823620370166666057441252908311993223924972683171597960406422950260425580470231020390579574016257864828712086719833263714021495239064298128508332712193477923303414462302564414668451033179878301896802864816653078004212673064620728739889477053833931946300868605575124527427420604857599651846207842656385699273175542588441563048816836417667202744781672583517796912058968563660004905978324124853397273960123714737007881167206451374672632335927992387429097743850437868593666650293034696109729069980558554197893391158373414245259012819538004737536992009864616791450268543526909102190468804600279578006438103795995505573903437600310096847410650917928590265332083015177846898042553837425650659912159308472640571981161893894876676225400547596901274761928326326129338923157020854048010628067511375143037114362379949321783600284795457031823368562574051571998940518117704376443485317472218829561383185182423626246832245781062417987381304699123483380634584325152250198982065496191638244963810481580881565070629904534592073274390232320332651149020223384025713474892081484352331340823996202080520133111508031246599638862506854694822339602646122642792954812367856722512612263356410478320680553999134891434021254733866886264720769246529251692622004565019797180243990608746062685315015796584873798546535957709707558245685792325689898072102465029772801771925646617042033830816919332831874694563519900986254982728398368026932273961865417461934983213526737242881013720660069329388920941042624249542666985467774870749424104619447375939322512151282120418504020017123195414306779482039580888197020884759746838255045857726404462495316357529664172910875302505474938788935638645172803595996563204341372841704830279650770803120367446903388489317518591066744884667371962461417990224692620975984762633081048007924908443379104007434433387023451936405476619589543571324837607723573190949685331753158952126941456303982930991910537959645540612037600696767672740047016368104305519485005736254318298199731362454387439786854464593250489036487066070902426490096886159472951884698578275148975415680843057185667704334551547326998247815108461315407177672319843594610860173327618732177315960558355850936196311098184124372722238284094330384831261313409895811994724757892558927593427339233027790815080295853568600939411354101156282602941472737468255587638341671956406125141478619481775072905676764039903993118766099600505433199325365927233852876900965164282422368485940448350130645678945686030488940423200690121822734777111090067700566490067758741747469719583962935231631232918100324180191546220776416725875163355430419569989988061390652437943917475500177433676782683725651216092308607134382973059619909565223914281227434604348605789975973430621108356327029579407412628717990045618031396422960716744483239539427533277877046728682317200175611745205090040394810496443469727721873584373531732377894949130433490298026287373533972259685645751083057145225901941405752135132740558923008540512690027946597179073675518213041207371198680012821183054630876808252018751082469560666469681757467962177962650147436218785400466868069423520480625968277131208449835060405810040670156684677194223126275980387561374351292069720099578553258870839153300394341915381753526009190536375943090464303224679409392493921322275457040057484485616674475223276428791287489939269393846956721226065676119503996356343531226408481783559149180156875453507785959812334063622982031128424355824559955435431650717293540275282740799114088770688212954125852485107565282728781609190234113752586415251657247957351580198872706562679517356446177158670286699365147878513415307547272279687343908727559409155416764212939273665027069142950194467563948359276234433033180388122920094863205873640965731739060417845501410126993806702213285969546598593835539776628373860507192445048109535916144593891154478035959372447697477870455786185126121345141451104184081791326518206634998491298467994894432291552135006498286766930328628555820457805580990609460673952705649800864785543730769044418435353910297779854007243686714923173945925795392062252899815035679293530873966135347081497609590555009700427553368034902735147041326734218736622093118866446717631849365965689679491856706389697475780863284211606659522766004406061174408894581885180740160363988064349385356437250444736857393512702305716081414086612613716448337177934925369882831453830633207458900356080552360137813677217886452070859048782590539265875076455444389197989115129612975300785625114238631708837890960659737266762685951764935049343478953269031274275432171742970451023346969564104082402106983924379653179916609507689252448375511981070927624087500644552160667298101169914904773031407273177292720494995699653166544723154801406464851018120714660154767594713783692391339433128477473840838579143953927246158235976166109728628182934710079282060399898321941792391530410855176212066959098677770548694053506416957043121695392043140654458369264926281542470578947678098803858518728425549616169514874507690256803826303491547585808425893778027708992423667099736134433254805497194813011760963104614177168817684652780180953485906788846228194075745573703529632869075032616116425014236717023881263976423963281409563292244058799267032153842202132696406498652533123703713760559356796032480232920512910670784734127299291615202571061450243952649184954194486447426270372228634967416426410023280840623251460375894744964375994854359307679946708910287767378648664971224296330389921116471576499649160532823386808542707576143080292736282028811882954574288647993161613142486885239643800429849735191807411919172642551437379231338310832714761960244995985131773892542278469625257602090818589808098314694783500600663812971324467393239443264805771969759338430659380345755123326821293427373247296175189543098731519457929662464599438583908461469083836900610406787825177848166595730652894671625922732922117287895147363545598669776792549500970917438151609428107259135967951190143934998088959745884634988382145268464700019706476720313297989387419175501312361562534785999934068034621381234937954171246472706897102635807732290367485382438572061795322628590347003289770914044689786891136487187752982963624718955714094155481355767049458950118875422571552086964651469305547947820183093136578512399522067579497611967347164227772861772168856793270247571372688574799395118844659118460307522200787528640042547277809880898951332570976985868155031293173898538391497473867581745474126094127072256560442499557260574264125243981991621845033587487581735559687660577628032723913432454360378531956186411309662481404305174962510900644488983439327624205953775834329083485617558309010399841644816406583234337196644943498105356391231336639481185420829319989602392319383527670091158577257822293258728232569726805306520860204047143046945734679169340398639546659841787958492658608877079882171372228484689397596415923995793691214456530157046334999395523686538555821692230480553084782215140825267310379169467400048355320793070020625000353147164972035819324689289645876567640739673918872612031031987221040393228916722305730196964680878889074521130040633066688994410961141995215099242584098223727506823629842446841288948269313846332003216106328406790431474653607038358736526101628507933880286867635563522974409254650063493787176718926093226571052814888311990266483854356983654876467556581071801965953074513720626573057181198004705420931250740471246167421611986699730406172156946431364070447642747364795397192993909078962446602040143265521411659883221312961582469313759284954859447136932814501385591786218273755145268288768121930132128285541592000697626444094219663744594323236648136310479271223397875218836947873993031228389284426745718598230251187248295945816617629044558775242358310452017489549994758451970865543154013526550434898798556745458114732552631639292821689416329110139451514919412829385424736103280345955043014261241910221359241796295353430138140542756498965671548544680087507444908585908252893575194685780596095091395065784576636389088468659395047385259930005212832762910154292059755098302496404245857856274759741706201446559694962655072433013900343874205437707165887191922289614563876281913309342368438910318077898337938325278518739955166310531686522099544366854740083480555692066570174455922411771512107174755528476896142785053661329560205542380502312100410946455686022040958961983634848739037926239031449847116189221491686438717050801116447834446965510875220542481660974303286660852673932909597533803326119482535857377863024525976646841035739946585900310239974485788325888429349579001821992072959951440907535674473592855991921197351924515331547297154508870778623311090512135834265203500379671324790938908544420098207746389801595471132573169696996687403519820739339212545170223539566188440011950798715967408347667285326122067447732768391520668734854903347170662810323847488533796291912907429925936980606453281810916675043261076892809923713039417830931159984427214527475773026707219755779884021139009612186596516691953902567329247740239882175160184289034612974798800849251708028997832640344756982563782795808044561743661530949958280060719600822909241898438558086939437600541589086786553571765891764608991304814937797787418487113996495301978567527607718838138545239080995413069176142893792242888329086143526842009969608183588931413130384082968047469781992910709518610975110946537775823300327975063369460763674062181245082374306935638427574368465465893176733542708920023381884757368198315549111049844883038759629599243192571259664868316889831431403774859713995627431835151461570455887587060333000220098990468075155086940843343966265713480539463971219908228394716282160122312359664589530605674273503175352524028816450510805109179619966960238962243018277033201882148554369113006895177697040005020229673200910946304241823963081189844926185346647152326862894474304638342874342479798225524530981901997446381005629911576901521593363666615889710397333382745439846037554794040512051381658737350379511976809605026541382681427474803916253806223474026633174050692059097948539541840168963863908103415014185481948661468779808953153752978328970738774401216578810957732261625908820593583476623504246230525116897371340055051745937031545267927212040177029165910694959957919279115888876288025006852885280054235033543273493533637351221734208062078754303015963122877825002000266747578139231481417099779538419062648801131195079129006776800411927188220884736623496545675182672125657816845311237850977246056089136776828444298867753216812221294449924791638888292693613859953716828965844275800839058202500294169564971181978166516298303417506277539120579460308485361431580141974447928837709907564387134678394387396214400882905478350837646854618278355962962518995642989319636828458116093808095448621672326112754515919565265621438951069748958467361036637172755947497957395255285142893439537220205767564162549163252663884367189868843254850327926773641928922892806195900814941386477885665094093543231481882183868308356633837150626515667157458949487110597200027320118180871834540729423486778988004993985249221295198676888983286136974812430217771316949859750331558162981037945796157809065985632913755751308822030982909978388006016563788410528080020684592909128122848865880092912762480276305866084617881687377436633911104764512941529126288796937507796625948866805698948387310915050751406087022653486471697773467451613327422600488335349817944279269364675942608514226946714550730752889537890756567363598420839112213517086716311304094950219424696806728648686026932254699194957165468595522307597800053385373625098796052206874969120802883163562110554641987891121133434145381779009247258385735132268115739505099203223644534675433196770040822625117603977500243647570578679547711060604300646685104243504951278043241895138772017595057806594807752492265075568946712451529635538739522726464804961743868230563824847575686249706820372336555142490963932078168928789726898963028156087698669935161654104147901185592859772716432212243533456024920789363444431041999865778959581890086352112949416406170239858315536876254973599806332304347372044993148306377459996795998605221783492347697971445940377167062850377447381312385098407272389714582953902125711858041056900580985717113851797762174576592488685680039531773526494633093241010110353397880094684454759147338500348282685201565208488543673547819458593847578691167671912981965005541444071046752066479480595131556499696341615768797152549072576328669389313993386114968014065707059805182796230020891451215724390576833778166609695982159687195669691985801082165033829494020182625171386744561866795292113791976370830329972009463508559082671199829345603104049430876687264786298845622108101919268817265177924581505636417345672949933490350206322101846832216028675587039699095740890950179272003433408022934241523977170777226173354093212877965875227793681764673781482817748503159799410555487284289232495941882793796420330125111955550527444650916670585181799000122491808990709427307972160090592593967589896477119312174842899549842794750434441806158502116684141498574324821555683494045913429950368882978342711118487807563739565850409372254040188864308568612173771812001081053327815690031445843027686342663400559124123835225848883319423810123566024693369261055276529905263627479271812653477387966210530055773215133037641529536156299694636844872110522621380962535853429132535268843376402838488225462735496799754414166004839390700844104529926140675102583867190825426379331042471161688870918626452599031621916257497199168171666031853852765002045698412758224243847527561479505669628813808738585571810318963474430007891504176320111078988362454873449923450893481482131949911333641987556480892931842824165221563176355624719844813395560419082688148005774603442442521193635336582593878391974890917622297676043667551296998138577470402396736356341847214520179836295740717657605015501790386387838989290864650106709298064039796729773193410445460544559608388185665122716455319667602838751476169952378526480257461648650553858052365887882693470008637074057973541825466745152961162363379166984643790923106407839041784765752172829067515280001199490567206363821741641568297787211211651338322613273202642227380795552853040511930791544334777879932970060322258885948737202485522278018882231351870419043333442799231968830534858463153523622454152907066186312685993679386993249888548251664429001925310805978754066956459463333436548702860978315455581103242418874208116015312830446949198286536653960747932515281631250062973552675536786310192262648102671677259428357461885350768048487332594861430838950883822029289468047017846650544998558338277598877295358698082208171510425111218742936920237128169862565131167806865906603081266466635397364717113784098768139650843792813794472399520609152611271979343357575948842851125889970237108425218811786822317988544118109791450740083814626489849139693162288776829923862232212353270136096898726329496655561794417363582339615086388543067876539146593128771540279578886932847607778337155504140492694312964513631462426419894419059829991131922112292063381630294037942080176350883003845905603746297543283768666215229247366894638048596225511869002058015686509013747422401110012533302462083058266370116946883480412088352832840500088700233421751910339848016250973181695303244521060931058310468253613089646914496799625405669289075847915348581562474831797308331359010226782918836209990871908958561668305469161368721684313908111385446913380225792650631614258665212144891592169041842957922856223478120002986275098290323293609732207674213187482229696139722519727596637242959450958782668926876491024632911374480040333798185460269884030707864055083212009074722891374224837373971317254816515497468022571904464560957141867508870811272658034271475609982036893840298307938124198124443189288575380419845450557030525249223406031055631187406692785235920043152506375498387750550771251255203489070034476700930834073939972329215492722140916499827003832463023589570486786807315128872476530462349237702691311735009747595523428474919526679407571327009663153963887170020636510046623521111178943257492819292415632461153860512487428398320083850028714922632714259087931067575567978193695921272552467243686658419796545831293147923694168854069620651619932265842555598080931167135582825783417150141495489768799817658000425025720885569207873994872194848399819136857657926371276766153191561075372197130059789222079693043174870616158298296668467715683314815455396524631642943973975023557475012377089342648986167597805579674026678129017719627105219953831239502148236091884122999153833550069140551801017055319239290139759861053289926421085774950258081418662105838350724357558985986582732889296227923586239655213284336433219987554143620307928112971962432179039991278650579371778368290634593113083595606876699175377742665539959333956061554677633464225789804634761725858563050555793719770407238014349673491990455748111567637012821886080885544972462584184762566369021651306201049083854858530726575170992332111515499818902820927508480972781583661461040381388357606423126560016195802291084297088652093271571985676992954412688297069967452364681741491196157088270155997030783629709833989002529978863368014829407342511335202158414809292382229853586682783934610492404733336128863398216505571491978629146227797677903333318274586977736665847466125734527351607550746855326736014411118662635682035168191919616531263432622585493740863712454032666943089931916810555708169367179954890756317072690283748504235196230745176001408395377720793686262847832257480325972491505329001042638166210444564347192503947387451412834906975054625857881064597355293606395133996233061410185471573287092724906232920165299916101475740533391649068710386671772245135276312034328513839975678153688358847361803072568555491237940571593218942310145274365115720806161839093315478556109376759580552040287560756765027568166222941536577690011448470944085581909125386457124361107014435228442116802113254163591476566408860325147551983677417473672652355947352384570756632683041425595595689334287451587115587772924848011676451147592303365912364965581504246941217926373828925524469978430795113711885825365713001058165644472788110905471449714232418463717373791750660935391195539552085207806310456302761979927778126791975015393795787723651984807842559059625071192023631578709298726631847105485231451292810601309320162988493062926904650221331976010195595121928393358385003635399344720440804520942531130526586623949016691027964095917519212703948212013613055284290010505754803821241306592277264647670619538508123082661893783211998406476903496090855022552039258975844506975273230825760477437922931430202007045058087327471421289023646870226996826342364780436443203085520898953886066757480083684788148479435864700266556172507522701647363166942202539391035217755221556758568415265688210116011971878985854645216044829207477001595862857345890042923358128048516835397776704207889323242798875404306456049860661875041154029874743522689046414266750977277364423761378460012886651095267966666480994380408558634963527487936378882251731212810309609794717408455494886669299125181910883372817831851832605144268368776727261260052340071324602562734901682229388353042318013729578779759151018252288323648060375064374988278961487247617758599011818819844577817268267452070155567063445255858553235692115608634492854181274273994359189181762856398711578124238911737823808622491463712065457503393615318219067272522060949016317408527189976555349100264746064759554089168466322681730099520605344237616063591856298023164815856555071443522797449209078082380882766940380505236752899137526943651529574421447982157113929500470460847977244234740782566628909856265792737061584771351708338823435888941760823344580120153739186976559356924706339935910420588321821633011601255537147007522815813917673062148286101907323820777297740449928173729017049391271511973343708857372404023050854203908350999803460044965686978072120649266648175375268933586459043000587842128427132997985151514139264349791827577971677866623276492259412634876115384025081457609433726843390026121032524105089062539604899514917533277795736924226850821836602819312564909023788585941759713447228011364395219598146108346460473430174475944137057089660202514134910243658196247428949797444530385512525881840554079018884185734841636568957243724061260296848905534174211718159698429841618173222969115683898662721347079487336228535262680094642301920593041155827388337303036303297888738925608267756442434198591474002383497134985309422534352265000137913188903624346263291499181419918713424633002929324296405841151562523076901414007552419945138897841058552324955108504014328541879714511925152670810701305602575994630339569876859863049561371623590692411784641966978412822996623812692687032504905867337342944357241853811223303326703179825683667281066717301377619920705380955000630836364815666743882087454707845150371178467324484648016315366945792245583613064757802867942260475204859086273102753235134721411453965061683902433598447455400309383994795785785256182046151119976044832249133733715699989037494876360678047475812886590113292773892544521347488668796100662667818167997215766558524749838466569344605097984321497516236430522432719827191787506909655366971617572223240055314955562116276687562850626707895574122900375184333628531568134532557876599934655292803110646253211131566106523381770865413446096652102281493905389786896262498356875615694940252042621213508338172898553866232957530263642442632536650861930127112845448536970153682435695893945796032044680113715691510590623405965603731341642288362938552423831649073645230505356393240598222741436016769642634800281139392391410041739944710042001260126799814066033825844755112373614079109233476210677505461931425276152279895484731036156466762527667035703092620401065339577420590029342284198310211987643724246731165680356878158225275968833155399383732956876333050219086942325912052365777312515157034190795761577996635084027963384420965626783705375582417132194890617892365172282162942606730509401247745275445447643904873575410487917531006342453050640879115659503493233778183139344291529922383252718125995713651373851521489920787586742527454479339361874053577313381754338370803715120874456421574370570110315093283483838650707854335002215238992090574040057510752327691331345997546050600079613812361504236119190472635265276025943103960447961727763241761130300046237909133051204046851146002051490480823877255802111591427321163708807216340009316239211321184396666299775789448119209184323524737978919588117343998437048249822141254593525445418266385291221142027690723694876142567196084681221234994039196667444461030503628131449975527995718865606220994481885179087653873928461401113976498748139009444049866641275996487743069087529244698850428088632270931005292558272294788901992595827508095008926048726439689668245478568393437910039088332125475172965513735730932950034206970860823518926619668010452296939395111273912986445237492622333486343783129160700178551196320784345837236279416523895624045934423207592069480376013160797818578737053077573675103095699373964445031887816758372888196281906927429501945868005638547957392012029435959747190544883510912432927862716089820538743508650734721032603952479050989001272356706167950569568665899175474529604712972876562409543886257938700774631273926730816278442927566759663049107271156599974385162194895907779956142585253097387831471631353931414335026048924229656352746118336124569146971124491307633725349725857352416910878199156177353058693367356632678635531942046081048381847540012114297331894353199001805071728713268181485259686968598739435682788807675572030628341864798063639710810432469285407458746200582004382881757706987684854432561078824649699157894452452589604815913530300393613758344332210847527885548820120370285352699161415995738773509669082163132345443765550327049914534421728821098974104875386311413023085779986693598021522504144823276375537635549606999719199195866439142354713332488432485282184545729628615862850007114524715272537443439035107396892612490567213696668390036528084851088574404829945846270824766185380247811073139419923163183110199286784480109617060803421800067057892378119094348931252629433428894866582857623275946650483254168040319693749720864964459588946828007192916286284075530868976754814956836838809213846173330386219602628431658044287119995422608469306428675749704155851069007472196731192781383939781343046429523017567322588160808138553337583102377662949617302605164512254330853109169672086414421745385372109229989087978307299925498373742396159667204279948668226685397459639130727443648867735154410246227863340247332478659993624467057142184253215101514279705525759416774068087092342849015985280682520563129150143780255677458288345976508238380591868845001303828954001601080334794140849364483880368376847122588445604503115627455601369380854704988941007778025491493544284045729413675501540114247527446016018105230703848444071780479914836704292787663992616918380458930343420330226600714569604793475328355275887558075480873803039920219136225215417333211812294924978613652535472837279348119808881174870047739183206679524303017352024825509915024819309971269510716712497297437112051459946388507560890241553773563195417370827735357395463856924815146180543966384985911416196895817924430191223499781924165823355967271551369387356351778949194051383051081287913142028508769571596031746934283529745970673007655400141845136960467124777188611542918202906770760085705045248862355951225487039604538182797711036462029769502163487681655008064175735639099304983187075047003173465707882349677441989479917979669771544473940971445357535686724652536987511534120173974992384792185887162263187150220923997727247570482149171377247414534876374671296939688556979528856086481791828193316296409098015070803089041009468999731113556411434312845108106242733433592943317557886906085191007952736218373148006662299305762606610790222096949689559347715127848455116316529663651919427440411150096741164908653112112175651718566385421868772550000762876540400175716187851899099707337847470249531449732075179063538845886573946818346605078968463054559101493676817363998749472760470850224399912717915308353510802772084236215557102350585442476624356737865894450529907860466632771023357117346060553388710158056973357753461154561220631782595495726967632602244644851014545492588133995351794199117508332790209620051761315466479449444106339696727219158288916877955559288271144215902659188580945301306644874710320058235764420352697031467353184743274121026533216722564908077147250680814147268090812055646706445601818060668260979053252958241702669398654271491919001220434370006028488814743736005671976879629954592225223512975071421156479131294773162234697064506920552374542019340714812230824065860749969446241877860270526192716262205787530489669490430681041536793780365193871693383345665661828819845708102248517830968013839037317522136156336187724401756239990770755762604055210967405503126316831828224625330271979441025426282379850719672408290589735211188427484581898904655693719965992704649930843683034733722320136506669832305442537428966443022732263780861972614879577051725495351268800059665125294631980682184753701950533235099174861664838408742054402034869891322682030763338860607379110547928310624480010040248323744370637259922536959606122956444194428123856017196079426439685861650208606039056951721375190418832462074387650875376582079213851312459555848000646222792173314721827835400625240655179144095976912981874030962244157200740709511927631315938248954572350438610943372124257410125561768780381303800159917755095623419703947198750659089774067109170476676746400771547750939277402253761400074301696685719544735522154984487318976392594270196500787209313790136211018154817632968110698626058597432512338662634005781164068046697862730379143591580356843274068615607230948633099551594453380521993726859197123422569601043165129744814927129265987933135237387813885010523385343119707231700213620350942121122636942024438126587977575510990611693572777291715350458802981108695926040686900807047822656125539300231314332482813675335518515111787689580095293089220790245268486706762346748900976367317330421116344086393284158576109792040714240361221692477947595029208452926445159629482147285635374800981842861472133537599654679392454016351457791859126895317331815402866002987690240483504439975978987008919957164684357799277603377605868583379494534455411873297701925150820698200746317532122098708109730792108868366390092837784964708076860036569800049747876791327855078521141189340110352597704233308427957889591488752838762715891695339250996993709050358291695256640842792256835504974895179926170994599904514854814826460213777154612530514396846456508119577853422730744177539292872781372503832187622122363142160746208172809195874176751881522799848798103226243799028810651184426807143842120040655797463121506774884422767216132540182100608309041769121888371862659004970586355955459916091354089149464154504237375065007576726304164948265793897223378978103395674354417409148953098486783582451037914533355568094464938996843697908388190149835515308498248635621227829095441209201453690822333497256938127153398018369885550939881390904504868680518681711365970854666897896617574823641110942749971549535968974068722640659599432899820202417996770383902555591091761291419398600118797645321086712301961443869887263523299408793597860694362782067344596320973659690410801430783933548119672239748652413740026768737648171418162869737216628451895061401752801575224498176817708356944352592231451585257940011953934450661278111356789592910275838972924539623965588143601755667937025784490563847135701507647356360535461271715040216958060890559766305005920625016058130435368958918718541191904293519713089389080353662346131165366147601842829822515455537701281381670543801196050649400227575015559279509264782458239893124981584046417725402105473171120987194434898165385287147562892493405494952847323862498799111290488001775289553601594700814855374403293456820255191955242499533511741738963824541367358148536514485325183088084485509099099147071408796357134581572967757692091041885362654064059115380645664379872097161695156029808156320060613014970074384706923848696994686467777632699565200867589403176158779019350642545746425034678117129330747537848070953614313044787278965868464260062077701835512604593052663993095732045454288281904298448224965126961053950037949730416959772840385176521606561292178387940780916104805677627281213943515651102502299310234079535166803064641193144223300445387032629648043453615487834744551349609489786072395511606272402699948167968361801201709941136631808965534928440069787291434758508349093324645195793575843601727364344459022959326908234400085703571334885450023729521558598615970653055754564830904542108781189644713006449896989432717630170356050498198573764376167164876667029330934865150547781448164253288042640490116143993918206224039504093780432403929825880131837045651566240250507425677756899297306079476785850707798948822118465458509812897482975221111639712189928156867099820432199565074377987926771389946157736770717953663435143539595740785991897141217587018172460408432361192097104204001034620856117143898354818293543228911535699331326518290336179485282396626128325771530801379242337888522585946599883829049101304729111702392962612355011631053695168149412330797169615267175756859435618442891702813577823110869145551308352072609464771439334742606310128200079464186015037003549469347128152140290608937883712141813155406365187431070661709857389836288066527791611946786710253819703493948155654127331449612985736445493076145626234690608860146339980377544718951357650902138737032988108626467698386417581693717546496212703986626363224340426857255491493262072195191483874588839149799970433964839186211302908186616759862834305181350376123990254677809133808059914234135953425847899033794493664578135630359489847634397445076602876028854002413701226097140312381990710107169964058232733688262828059533449568716988111582688601067674662382750615599228344547971301888457001649653792745960129262297717355921560171149799414225450846891304922555203359597407270368545475559989468821111297455252016387244005429341566978729811529840623266244079402643044964544700439379524746358210753898733336126075082406747671264289173261376909932113020568707650094237991144683525210213600107750352799855379549805222897293383360675921399288798626108957909488452871441827679493806776195634831067618260070814226656817172020047806931406331848633233485575774140911891487826547817790192604268316251894359863386693740238704818427775972141720125840170631318309135377096300811072203918737263630004795326609549264644252156279487775668582124253322910842637868313604199519700438121959253295463360641755849973759297416094062366913020843124319135975111074968452568888475907258860796596189947390769132187678121828798142477971051168424041900096945139518613836828241640569879414504393951115206786835484851879054518594384923795950674456147471522576985251842563262021419314647732321796938841572383324022955929699050315278850432424441846082778556257367887087062126762731204475625346156205200680292251791142043845876476648596065288853832855424534942029498740623862047843358258340358012657503605904743676915332402413794043991023069698967213961175090095195558893223715756739781094374501743066898607974636010539213855400371293373084479052673618343041201589731053350047192889156202180015659341819573914128587592513870270384970989069382677289104297471500313731053590080467625328658854140347534044156319797150337561784413451987317410139713125358511707404525584295593729512106123404442676581369362147824206398466407589338907374212152221804052011849044839468058595691470637169292346063246802215310699465319373357327935246813017522495480286534286780710763234486421837933166845620478887961528376161901816483954618560651611762515535785591211347398177839356356889015305104959334139764691027857215089252329680332003118269932870495108512814101448971622315048690888426995346041680815019000171444073539849294492295285348266734070548506609366094232207597986094486275374795325865920907090657530121810562805522832084198721774066329815819618145136458695416200041964148761163120829097079217378920251239239473170628879359871175987812395584500444567778190201531202276165591271633305859390084886680205691701842588589715646427190118284502922776816335142922077399602937281300367276863242314648935206754437403041708984556763555942190756176631678103561058901576108503450550181233689398864705177302083555649672059892354301329805124606123754259502411889931750104298960892889870775893417842815274733631179950062051225733009049675574827193066523061731307486939556393911688924453096459225279920783110381576692349189122288519523516490491788728141237767906296730142856340647561410782835463438754463182233407710671519787601712086158082240101532824394309714715094555233074290563074685100075617857027326286513805246756678379140776019493084814992335267296879109924903104778993656864757929433459004878536431972238692624211484185746645118039316419067138242707374504323604738684296819422025678932283712359066020399135127646472475726163788773434858304523440055740961712330312676401279866106061195158680661809636769488516938941923994323091783651464458415019043258536652005401520858085244610801591642031065008880540194917640759110290433801995729405782774804573634642978708806910142321187359077809661942803366414799367320171397701945771195658273904536616910907598244809416950674227206221777797198684566065459313269996815168526884749443237012045911790384465044322566042361643698094132713613474008962686307287805701400127350685734648954387707909324543302775351086263991067993391740055581352910812712819949485449502458974852567429369250878945444149800201880514647565878707521747606934819295920084415885702326769015540627980730954700716091671816998409355066122310365946512404616310664383157367250064721142086797638848450554539199301021968503369305181957316363322325265231266503907084802864816315794568033948010328331929994549542355639142459017270642135898212485838618458949949375957283488597894770504515191645851931191449922346992974237180603983497271084525263540404815176103368388596829678073590362993225570258522299674462910120217351553598259440440435152634325261381576777423099606509220660624212904821761501162412338498108121082233658046358524522093552617549495079621785097728694821142758984829813328900901053108253437893384495647589485476877149562618037183529348705050890599536398091866825671606255098875677408888657971896632390310185035101124845873899274623714236009883891475422943451996510213166134875895592875254409145586500799699782580547594233388982606186728587230586346890707546408834631990461455947023130602185123004387886011480518448895422211653249289586104788440628090496243455567356811376264410734771970303910180154032774307252991644999499966094863076101100202840411803765693365072369706127689550454065289741885475501583262474518756653313637985286878139314868010248228398992232221644516202987084702194832566776772130242886899532452096701090067506336724774634514660020536669032284686429080446243419501508154987177310318231104172865598824010726671035276558319756029083822688872704083704919678789912205772852659035398952586679632643040079948448147142654190496270171925658622876430767808452108658939075878401718855604625873122508645718509997563318362898528087290931614889861896522346671134077700722452732430438155152264123001165808006767773981937981625078168989763956622963499874504173254476491745763416056172279507870824480828307470370467518862080163717753995914928538580771863051174167839644284856249209125873469458212479236416435915188241824443914146629654075093471034226103484576481542402309335209926623252847025872483219089083904469863329892079027186695125121438699961799987705889068803314829290673315970772077568009821935217116929055528825825203841326513743122765580420154164123177918171037374218377268321856826555603349060368606875258459039923024515549715141276008951783809385899092379543960912285224314318404098138688775036480687349946941206600835951230818173775586292420456263278478652552523628226940783426883314688719542175288033409837909699626564844474391232477522991374671193371171561969508201121612915957213754221993390534173520014226021630244114433009622489433866099510419670431998578399711102014831575281227381112131547108865229304826100314274854024877667496540231904693729340333326653182960153218302354522355086181283560343900841154477996522998356488407085410627135404809593586717918938997312694367953435018644182365303367043789263011222865655058846608725399670789145440133086352215047861001922511410601590870401564681389185521431074127430023435419809728004151171629661791287313351540315128696567231825659006726257087637996141804695120024538588642430250234998547824319284767827654246755949333092428646191014428067752439694499256558161250905707284706867818932262150559461024391236455984061545971341359890086334602755284568621213973670996531906315852702791981717245997724537687254073865469194348152203791871349948599690109901430933779460149990519751766142650489271323412788116802409147864553129137724620072069833072595125448433360503383381450153247834445159193479117967683134247560689346088977963494267110679952278385560821215928165683380521405158802372204792383714721766274546879883827902129843279513562921804384080338458063433516027828395352851510172037276984041517900441266253224369270576145481911391816940125749121662499905563606333229872463445846129906670029412250926928695759062263216333665563706503766249316529867676938012589236959703697392782217975823121604215895485326937309543237413337582697568966975591906040696490274282100944508870939631057840727616647808232696040408202210366646815179971173641973073612639282443063158937026611616633738932629494031975191622112521454870670917380808852113252485960067373787663834095927959371707336696621216754850968882750146401039344798502087894731004319754285597631780508502379596639232623698009973416028813018333958830881071020983070093016422689477028280056983839064548040299040550494432146297562343107008082850125064257417567450024137068264735716590728929341052489218689321172051519516695680845228971473514781453639291831904528994698986622086633854401769184348379947937886006218380998565890143112951943117216864297617502688682561622033937805887219629306712791131857656818881724322340226311742037898427976753883852740734496766382749444725473138420061181072181738185177121736626504051343611494515963544492507110837161115946829412375106227194210601326509900871381827284608616391765850949873503363872880398681786448516092843346752422470744251277722823282536007237143498130911784172782608442499518993217925846059115249318309031835605429689602003176854950374150586955609960103978572293154918845339910927777668162880235838601887364744927130266923078359488519832842396650638162375877345179588888201570737008088048165712109710986890873140914954509509456101618901900139302340152772723966698292790696825578231682469100905433295677603434484423191331018403355485930309168288190914606872675725857133310463520362009920849754967944132435017360506686023279060675774416310921325332485266796189355439782022871422435263786174799632717170319306559331047354924086101692595807349880788802246283216419054847924295085966580645001290721912776181481565992353393706077528504971604937808194728831463920195732156843140914963638410856870751116438971761185636821028297811858886086519175005157623856937557243841121345310062445845795539471359512440161467696904368548145041888457324223068566446620463449734746669092477228253793390623156849242899369958006960693303693537247420627039477782927992028595113294503722208771129196871775139973862476652543738767731175880471728766596026780870502985807040506713284026767232168569936920769207758031553841359515606530135048023542530932713581511208084788524412303823873281695730105479647726218433442477164156394791798615528399073723145726274231272150077751398188729849684993213043083787189927421445591533091104577289992767208318397373584903305352825691772236950888187176218257742860203731352861394601540337367192385132284818180328574971300787895175622841019132391573119523862999076293398042043519132643259589899939658190384336503309799074619700084653448249184873281326490603140841188743532699902222551400218163862362107584398077522954696225797848251404997054149992978877106973209843767833077882788645816749609703519015127661878268127162968168793326860242516302755635774366361949773152557675752070100116346007079395220605469320523630488416444546938144377858540966791290529823986992843691317004041604197744225452432180291813827062676190572213637337438643586965920743665566422757469718254609543395104854506997678269160210025411212849839271155124928335009664618483410165730500871682114099080980500543989906494464439730239343936356914345738859768481915304067899399356647844436495346982463077683103292756581745343885271806697283805860764514326679124597446650364922346976128218930537469460124616958467665739444997092420107538168360180637603284619307679916988503325565785240663890678175636244088933051034909700029102924227264875023731327100730802037657096416908351339601916871861145227242044019665820068861071029567282947231213860280600878325801106372828835155004911972179705919875828473482194440074437373155285676697531751931612619527740694474936191255840807985882669004946574987078788958726732487995178320524790416114242782618258907367519474373825329913964246677526908715593949117597659601853321837476269933359747553230249453397462448819952807546192880160806507165641562404079534714985535250107220901997463971359792122148078028991380130403779382255555752786839088724817875486580772597705605095311125669413566530437251048421541867717755001073753491573308048326573923603811554118255717204060342376698667058319948204886537736625531105564035013983171264711602450047683772253351346235260931804814747892858245674127453423657615590072091349224955444904749577396800340582241406061815696064894257102619964078741095241989502276363486079325864536114848909564300474450694515582301460132388989822244405990920976510570940388303406751044889155832692808914473889732240196425514605641906832131301302458178731162457203618225850856783769699078306791919019763676604131776096934212035534384476456955019130334281532812785249791910537436590517362813617439386542214008125762012287562217855199953106981208158222175473546744227498766273542757680244059218650765228312036468881399583573226509224080664036570200443132436824545554164934048784790579324787371881887292678482108484703562612654198965224010740370388443921719244894102494605087386161764010179309681329144754465991677672058789692285269597766673171298855481703489202979577795669867139028274199343413814603661206294383024326171941957272280192433314963013812909641298799275574342422551425099032347823279630552158554760098218666493788202557503593609568025690844073059471567432554965203983322924815133704535301327870767987280436030812814987533594665104708059087662967565564468383245105375436854880076028835019801487642474795553852701489417525750726129934469538476183722525009718164202063688082507262148183030301570529411306628385158334105064849474275161880519555332934252613079694222666318893322908055908735936572882369945653615225071236084942262878880251744564426470960216951921699623684600707075778491748029190847633285927235827995060310513330332979762770703989916525708004193461855870426836528926404032524231507709884850803681124676965038259727457558862555523515793332768912571695926978857215711698981542007044421791085301269915066994202123424304860621544545165835112725411402084150153434219230300584457027551996618368800862101117948880275443608745880747272183631529461450854765376156821019026879543896801813896208021496440466526828643907867598382980126802781580689114200738498648747670805830815820289848550980637011870995695799610932625599972830853753666030568522586674220003144015923051341439414358349599271195848813265627448025963531098258200419178620415249270811874328797551363522625653077972149262445937162951433042850919611491861590537460483636138626792226511626242297418428423058639920272764486073905659473826129165803278610337309723045789251670202859762826229703416638796006447511782911992396311243498053043295260562627911383633661982034374830678586148430669253150155327001558736306834593506003414124527299077892126316698457567216359531578818638363247104286491057499578773578166642221284447058449985142683265847478059700327518228260518290841480250813244513989374046307475000742943408777290603471550258962311387161255189129693827711863061725561126075113424429480676252562672047899359005997119010823743746122169125992421657167181150060642282839427407710819696025472133920670228876080186543679738320298092884483654713238905866655625887121480926527869326039250477611830893174976705330005409312338275260542049310513800657314406950731415845180117398270321748843701002305777393874937489868493993235086259310325048100107013004892462031510840496674216353858857511378354522554102759119785881692901069671372873030178290771965812086493058717133368869813554525071630898809670605715848217659358407122949702908243424283379409224163533178392240022640365694810715838067641940045876804895031783121623493213592526041995474311853387296959400699979547915685685135434358338412598439502667883979608586336642007156261246292171851645380741789447847392087434739282125431698575119864827540189514250669537264729818297472540196280339981586458830449020472084816002701761199082996403431711938150153145807545868980809708495989018212907638709916234860560041329985302167270933551841512795599876333046561510776374179297527551808673865369745256727095756974480740681828552006511084063872108086772379663460905165527727698183780218081127969150974674838482869414974873534994331139569008652427463021201062992334150740078861697203300705499312725141128745567841679653027469356138628027899438698614670006823780797887355549369457103013285892675387971759166708445507098119347511924915639673680763278504723392750112959669859252461883593319117457858816563776042877985024657020070592452899059371670228500686120868369949889555021512202167385808578690071743899777108604696728025429700621927344586567580771719635466863578717926132200093738706308421687950636576264350894381473828300585642224509700164822548174198294046450466831916737432578901726125774308468672623236711789073448334053577837490979634768297249700884237390608828517528578310918642242473750944740578805076810932825190365370365286452571357089158062654804284777537896834429718255893312293492245792640273569755308583154609536871470761064375697059654989613966710212049174113232276023228322567757631239076852958088236327629429759398606734691816645107300641075678838993009904262517755471806248614401535574929779423322114927302722956491825278006694965046370957845458265652404640118508243362291191451337459524662337238650165342031567202954415403053987539269048408364421591867195848239398497136338237515916615495704149986105624137307465101813723076040143604466835743522296647964688902320441952766814561134431896040569626272212235127778965597295948282472671972521604855846657064556858107796921435685551973843958008261286225781836633648112027155949182393099914543028370995205172631580431940359344016263778504930377466146636123681318645984797581587765719186818523328327409464955640915127028886449032348895630372664690862682061030438087722180861985577320321172406967703880110089217920851326582504256167968024400999809025018513874275703949502150995004697932837145207174981105767587055764474898420808118747332320907926673268578132091025825634734782058791508550484835125231855076874697271811258220734738105305674879012871428272499170667436635391843576001248149845874130121026329775536012558809003938355897485864558902867697900699898295037139147427739197782152897959265388698098943775343990072241491446549699242001482193164979350352001909705969090787166817606809538498328867949700638323504602852513130865407121737758476893477471217880638120192385062103421831092110283617575731445649201750389361980215862145845050350093414499984291471800017397041505856214409890841218716060539805310887211134814671852425362926683736378905472104703116513447611044106090700524885540304536397631749444227419996990533534042583207295231431315176365169710181695061783717271187048144574677273424997396309988877761388768571574708102505435199036420392292343584260098349521304038684157466871110299581089942718206651299555929403774767406472590672554404349266038827885375059317844791331724765173721307338308303723273215223645893307592693337718705531166538876997543423676920385168409956154479442818871819769059273659313596090408728564048430003820530428729397721708689165563659992903896926857424736392723588410323509966426082434288982347972777813116255602946022756861540987840396349741222557292644551864968942766032438883798457907729369402832254152523458528683346749825208102920307843676578666788604383273229826794006645796000034172346553505848636256639071232558237978857066420636085603844040648893433756926965106088657232799817166419063390599253089963917617278087573079898871493200609916903982030142114544855494873573281861777846682623916581922301297314891551015020696813611300206518069174878984119728289241309013729752734762161509170799070736344959496676173179194544438761115630754574065064965387617732327410419045828281840107870755577904704166021550452823556729633331470431928627592766266721274169035982521314820814142015928773499336410240604285591411811952848855860305465021493262796923934978689858225860869672584048660767624514624599942782282901410432307081173748037409995823921586736112048669042823813490148039390037122950003399962256721300479961791555903689756974145042023056796169751768911197914062038223878822218762312170722901736992225599748130786017179502788798385799646393255886380194197374055303044097649619009678376605725951819595827502039098338417056767385094690498545594180859696352798651983662030767390035732723726123718035715951245570412746095043060197797736205466566799002910248146463084970979281914713293542529126058411628160301784408779780734650265165795721587503185643471067795325225113541184766896083104070657077952907026561301318807803634334565175027890203886923990342989637985165162371010813395929754982178916940765464536294697134546528237482591410605742453547297123876122408078395173587352495657939112620829432173035975900495088082247734944019031403499560257631696695721459806207657804942894454498869880857074640634361665326009831267019273657268681858247565539463048083174349417968807045793281450202649286016166080955269093196344027259736684485769860450330551161749732049435033530753943511650244735181738369455285329214490249589177921765193808071850410318604885011434101262054118287122180252182618503889290774192891163571930195439483601279701851261628259957927366296723015681603393834324758948867189103462951819167523945725230276903622687270674805861776928965719561483266171568079094841877370143150991189449387983088231278008870116496806215583711706055922694064862058192426205375881033522951842164839517028896925906164367536131029176735371525844501641917687285450524009243055620046974330765544150657337875866928757975783674793204734076977632000156475575542598009321009675094516768009395950517155408818707727572938565711105137406735803557510816266557272271456060942331184066872755238213244594960487015007898619513134434104133841905375407690252569768036604860067038653812258453067568691415514894802924598906333060470529874211515624532558949988850174321120051174396382609332633573270485757682993705083544319209724815548643750138863683671154329035681463897058905245236436805045543450246347854951459111359246253881442806805342898759273186015886042280339681138229701822761371463724757084556079810681513207492534637264647156966901552163582392271644010082608957168690564479305421907528707730640116718470030959906762727498533614417926135903248835097013945842990062675807569999773333563536377231309813508982627840223689018819623089739958281849153091568636446960568604196958789597803209315863343591251280970336519710171925142773392236701938422878244001626570373959334478220944098451474662477711441708202708794390659133343552241340737877894212028776501346750935431451430352865565764353044165557771321501343114858735814027609013063183410261542170719256383252871948748611569695523479399817186526525593302304387649344827808516558993533603168357447969162062477334981172258888308354331985884524024584740717773436259401326657408629389071641471032976773397320879710531519541955355025647606533643319118520574379278374189037788939171901737094974145753323019036506009489194951346430191588442847229450033182836924394801399037740037911794259586679357649427341066737983871635103731537994524291087287588464231180030930992348533289067701489170330389469480638077845931718824583773661406212533012201551686669840662446214503482418037150079313078618111234918765124832614662209455284042332118310099892967364892746224678897458164178340568011098606348096539817328925068037331027806018050428354671329619104556508738846815343533842237569120541737649193466688098119356588240335051076895703044772128103853271364299089390492056826356236130074042882668644123373641981467454679390015226182876879120637692329609275758042011766889811770577806480665310533988031588793280765825512926405077858293115596059916842060495022859706783366489186360014706834713510378906188365915860923604050539151443246228252027037280419840136713877631978596843712414446169824457129439364458005700809854168692833262184656976489356111839862511802013890278196003338778021728364147296139862993378508735098422818269222855415868593584060189984456697170346801947673216181093697839482462809922978481561815634601094552609384292469385020174324957089594211050961530156039879661003428201754897703129005623749927587121219272105651439978365950941287824227524634936236737267641886028840260827635175500711777838480543256169683859604774274659524962408782732232251521862488946972385483132109164621983227847190134364673771075370272719761926890703005050033051566382466721076158595963260763341674561433955573787124978604994878830779338652125241971377445776480563343158833550218444657333903729241959453417315845718090328590346048255078716942884620299171021089351834779925419369574226919326937752351166171209216003019984236498172166818568325217576296211453804380451071509835811928241163252016577294511094862553331217922655787746708991963010732735896419708278744855629041593223246929972197204036528667659216745786229270669901633364000585267925821709377344600834176902234732882349221649498676969770584478940843532965639616915652482366000998732403853110471454457407507469294536219785050664101299070279329793490081561679824264413645666314101874331526102716231600696891390060342449731614892815228214817749928686284071318021797404681214051502907129570679450589120966100190505452651410329758131785043942204548045798958180168826113532736545194314018329763379293695205091067564823592649074279036459290120233964762414411061849859471218513189542240925150139522693939898774217341592702468265065814092913551308539093540996163357263187077030655180296381886856642620639173822777708640776909401570416558197838676474140991903261597043837700148762672765181449425437324770821379959101908296599519145934042577569307795848601929878097227905330323362529532064259020337200199088027171147883811794207820898133027293935182145406257024848611653664415211480662466530959072732707597376849592645992030825266487246836507344071724067901574002822205902321822790639743507693254862138124807491688300810640943453259612566737960350788487524399870602978138603081931620565447946389290195489190409466242377682716583444364292425146988527804438885415242842363591413488870204523854902847093136048182257458219549006619313666008928930226398422203026833326409419108986261819939063371239639667695008445226184887455751474974769446936995041647918879412318728065276233362426124898243169524944394672195882352377355622224783327131865003401470256165888263815462348938353866640856078055836768714428699940596595776907006483249303862102142892374759889255888421364317207326512894762603461712807290032247760569692257347590750000124130366689245523757923194535280420393244201349482676789386890410312132756913599817804349067700434746955161197157729496459830305946733255597642246619520407946052664628918578795101957443421298785471692243022193139031757451145725236462840433674143672202260335124000212170331411939778751662725986653048756775772120368150343258573964746259151582940990043835927930783796260813369348912649299948836048259952885878726564159053164565318297760500665833347404133247338752172885220606727763289818550388277913720512107081562693715648384415388576912508780599011647229969315451927778012488166085119626244379094571183572578134387210807889967135990370965281739741264644916389433205740260688273781937574794003064519063519324548195305302444575358541543386320395264398763346468498503870469462610932205656750118773618167164236877576233120189234770960625232866519575879211809202439682605502018253834016156800205068596572693415330396997442048442263076424111679930552371435207989407133225620759734743257195938596466697915272059012174247880975226126334904329908401133384757723219257907975011286644978445325444292795834656324464193720856379053974482458249799710430023053850120632760330498673996275464882074687500862828577553182488523490638858247545854457749911052484242710247577240979986117016555683180534717399175236791495501774715990919230748667948120694977150253379382921167809445877332607630577940926450264841707069081133463319808022210176182268222167980700165988365303563385754532385361637154818799840062740362145360845071165924074678432205958750967589926908742203238744026167358918899647202698861319729570717325871057785703965156860954304710376527720690776587205626837111164705132986176745137327047101425677703279911763594554429387872742173513207407567116332979646873899595225150247435976146124222389908805622538516795432663286327566554190320539877678769802094086268933261597453485597700774784513548994885384834449166390745811298932951204607676946780285834307647786843119245676787053365479299589977092039891182339615543041132761222671981136334139306430340301720715917527168838056617535517811154997308251451199257492006809518951693470704798733528880860191121557564735040523691744526335990319063102452136454184386620632961970454901624992460783773737004633319570331937819242120868153381003693631220087514315982896120449715938749180113069916071572293321426324091311661641384907372199789642446006474518389334648035959906698495182668832554120308661292956664376423680023681942294600056486887101231305704351489878024410933652958379989938950619112682848324281204043462072414361752411372426259617345325029368266395866904632075690569803251101473549037972387426410532698021773212136372157705338584831598192574547314319009145663331314936765770426290076672094280398847436870286835310771370494533901850753644808838167439035339645214924222346205326416289562753884758159760524337260125022315302241972905810012708581304097076027010735703671585281762209424342012058517436505992541999676487522020526070933732926657941247234948889583851470899188626401318556556118883324828692948342194351836444660661793188466663815814691881143686828408187843806356417000906015477067750489210273186918085909438271854797332969946801679010053632778291938763718881273710411186762359051240178923791740704199447354088112992580088068010368941131751584615780152845226882361177190633100355525817197093500855466771613945796020341143133835119455765036355821559314564656579291974053328325684964718381689113221425568306615432821378092206646798880798878179030444058353467285247713860469909548788124218549933807654669454765442116036919364311148138694064647958674385027391296079442652459222756732169891156268497911333698650809385343238879409397834824080877778447499192552382973688209142007754310291686081110734094585516122912522677348441833388590332644954579865017273180518352007010583793333265438551253447874788225528392612531903825539207193504188530038653114452037764149825583426222625649360849549995280658651938438772870424392826818680359770854153654546744017629228497229682039795119164512078255646665015578724041481901854307056787082096135883018238553210311359327286268142340930228124587790860734154705547503594985941693690221065861826532194093464085651216828683086754536819495487738566554019858042033117853227714891468900656660364634315472296147961265115034513771993217838881522026193586396282237226228155051858364810605022878188145331024801670688155662663298944954742789331469614345517482483176143066242524585582600552506354045857059236645201481468392402791671018423704007954903971818915091137419234534678483050342388980829030943369748475918175614331855923188807645477466910199998226194072276764038658423730374554835072171063078562080087934558040149679584663146020099422229101907502350245060685777728880579726917383734479521268515829561688798342575143058426427549600548267715226461345033670498348364298659143742389918585646742214615666041783761323388427024663198428611238903016593013201884243730416673311587957771513314457616948798426723995986401543839046659739038504140273545588288416677740042136616630724326797030756117405977173876549607269008870788882631167684823586972326271301312927848105441472625992845604993645838201030128295737105362362139522611642102776711588460279982427376587791421084920315789384792261709389237727734091387671807571481356881495286044540638139634950079819484438012518526976777547144584995002979946402141469240633990946476728678955164086889893084888529384447440040535947023679497163545917826897389089959075504890807250504978650028513293628677441115409496541567516089055886212253734459840841726947180851745727825478397237681267543189150831880394760635605308196716003831169481859976629881134191402191174499451341608943300545349147718699825072709476471213745550889848278646392900159439721251844717913723329020183360536231645958770878827998443072345482661278259211404213468009273077471544636500091008276624119089085939437374140106215311521345014372094242473561131852043340666201387840894403113082282052847834949687500955746212372100061751209202881592535461527788308312708779784287999645213457519816885403098371108521298652877538813187704122167946695699360935933013491796526212055680608186451836059587688944744593296769963254993800069630139523057558737614107453298489771908777225455612419126225539182220816400538325713275445129861047272523829411352920847232022401129788571864281387809268125685108472537606509421934397406717049984431800177984627590914879723877092752307456652560849883790150853356486634644469349345326687564393931333657276749728276329911615365590746260588586486653025625813133717334991518781912341879693349209359120451234938820217081763278184983097376035399107896387705191765315859763150446414817235121448087627880238336454311950244074602236825099932776287837592440588746921550707929372528101083801024422427344674928285927419124530765409585496160273831568288932980097569839560063408061096706702129740774849713282413055671358292664593038193110071072972217083802531053643945661334941907387063149843998860083013251528643347465880759730842296177622916018196819762672900532415114174299005766232336860265513690231107606442971027858952709934271796191684584216533315045480093308695518822758654336066836123478938246351284945771802065601179046821226086106505868647507224038724378780739675709891634873967829676420397161203850280399873265098700330505305928366992444345325244000917646824213155140218914641747226802527202198186931749009362180517946331876883880452473334002460052363461602319823601007846784646745395065523691885191658484945471757822102156579512418860080846127666356178618033293147316259336611178685621980402994624449054441441238665186210854954086586784493755404098768381967722713409582024008817671668995616036975854077609036466428576242987902863707903737983682253168091108761671313478041252606596990433513619422948103741367796115414435068843919463735107203963570131280311100748826631412430726775881076609954324169686836168996530407937387158700902069345459781326971037236789381208867488428745780836176401588010087492249388499979035548554055272932362869593902954371261602819800994876486556458458696061351015880681977520673668861406237785128255018015135154468984191756472138394724468782585026239567445446130703089168214070538894298961167092053213519442083087960771771522134344707770779911687657653443690711950884433257556062396898541494478020139295669400331473183503043246775367852386630280596449029248124239597065323995658286440556336593544938404334738016198345095231795121808308599696428346829770480326963988424942634791624121234829514373223305447018648368621346673053354785894131452628148974961266745632002092940955347921411914782303135107754837063055953059283963736469424599969180852241249832599872177065683987239274585222867493206796377146218864489553787669742081285657049402285226594010662425869666891365096985017470458803399816028457936511718768352456602000644646070180171674469251370040846809258983219051778124844139349731788480132896319889547471959183187717932486213854162172327325247832470719131236009034785851429564994398375815282230189579489134300628925634434708460862665768466616822072397163052434651160678367419720384442704867121334062485014551393249275530959671858406967671536535764401985866409007282699723902665187218054786919259913848867864530406518857616295401126882965293772903395759306882664702324504932187035898771294571921959149275364001598764717374931377816657273950312763736587654502560506382132425498128688994413996488435858145256414654253826647190036446065522827725534576961110878290100148523827269731687989746676652191618970640164541910612796759235705528102584231247779051596187101183308080152522995756017056828774702568245171858809391870565980558918381686802560301203637815705966707712833774071265479153700205125004413626281310375559358965919589354395755864016822701407587437811926964774705843693408579233428380616493220302642854325950772199347811678878121234987674800859554164435058263224436393245441780710780626726822706566673675416048156963349752554359858171333331112107703011360492179052579348018149673431380282122708762632470703501621970205663374415066843653993414793060546895636171425664052215419318643617092280538525319127013870529303192486735670136648087347058215508797090628907175089090230221323786940205919843288386445844842771772742845428467222714661255246818784592464097173704981052217315150746821319370201887435370854111912435034366935200710712188780407008945580642678738568162905812170276860631524574359884051669672889714149010091781542112289863248245469877236992855984571928814108503281175585690624598327300554154146968607011584690309975216541730773068933755298767424608984458563344655473375347434458255767661055855019557406624514618280382715051885301230553974238580577580904203188829528278689433941080560035439344993218056935981932459332297602054692542822503152210034898021889246066994729964394070572911498891912824440260090337424795220761671652117527543483820572342992750757555374969346020222690266584803865350964412014444948338803418675230176500685411488645102532442972524043366949753980663208534297235617442910025148322194139877472232096414951716111016229353430237751275521668118197466058718040888574723915263638132364525136702904044562786342250788192627087120199052641858487064039515555205067517697820097061528446659093658599754466364367996752846688986778177094832937880607761492151972546826438121288367766132738876619719292675946220598467157298432500740689498816202211584188909169792835508791554238172856310523405892982257371812096612077201506184787852230031943574378646978160550647266419324477784798479881465353267118174134316233816790433714734654782811380577200396242513299427340420623034384262893910836984656564642239112070043539200644520699269575690393414632017135558295416541997897261946065800682536017403079222754091861598342536331435283065454285507637697744920103830093871820320016231759126980444639383978172265967017032096733795168641011128794799545959612607863515316009109970238084628700767863515397543869193957916245657163372249076972376957688533628040215799318268880735808411913685907321780718065205313392124820194906335126452020111885405860313294182914619953312637768502408814234159126894486753064803734281639570030868677477463424307562452501722636174204187848203070287836914339946663846451008368878213418203680993990923742813475157375186803594802635051126494307274303406466356651466568297985866302469136429494326257865440812458342227467101329527012912570190286444568568218560370410894054729135680790054184541533749800461192611206750794129992206602747345168153471796730568628991250623496337063697925860820817055156346034654757806803943891892103364711986351301742675858321639552957013976052724479868501659463795352884474732257808233795654056229246515592117810001516328639763263670385223548437835032301307011364398258689783251358526172352780097076237582676323861574734478865327185181605742609602262174885740300918789376387513607715970090420528353761932094072143897050555287890205867666263641984340259796622116745010581899575730867538551210374151589368103545977272230309977388105767223602241309215020375401245631309299994362087068241605616272400908206708098043154065854015290171715112546780345247791798075867625540661327326715638068164962751727462738576283130561357699483540326589280501461008417508549509640224330033003237792617925825540619212567438878972905886219744845882979141866775014789735421204639390760706665471592464095770058384420692672436466113486500687544949593585284033395880558612895514641861312217498496193629360306787610340076207943032174003352467894916484413449084991100523019603502357735266145087632008012209199852994215528579989675772196605756410478970442370092469111611489675619931253238580535240444081557253005486724180161806223143763176003658691182343870599529989066232781215861176061733144442151013999369393280948884272394647044649948804525892105088262319653627735974051919030133683562335169052621099785478890121349687439060976350877659344812424351806303668617401757737233910046344088252177200555752713563116158038851710454854803602890602922435423582325404496326130216656992586368681026509366137108438581793238170450867110841347811659176573349511651155823132697518694058388871777307461180514008243132273716060949723784351330210831657067981059079147950679285926260592973944669893663809218356178736712283054562401425633406022549785769000021460979251845383971952570906962986112277253219381009452590009960420937912195900991147510150310717803937741534840376685455535162495921244839244800034860745241452646153023310411428616279061925973903664914464933564710029165317287441950148631350511282512101608112208219113298845137653889419374129743361176109634305095770096851751260822330701026813433775996193612728347085487281523217950353796119967370553779553704167090247025989293972673188105986746480881616818045938467823148714410176141072552340232746893333354714303499196483277650093931079524407794351090673799268677830882314983247487543848067964875352290526933221332597956503546295122431206582126250620626937407293679619594670890157426739606789219059332665076411799392004728558365147871443637696737851959844921320580675520969676860825442079973615620088551985534701840858834453644506434877926773037281840724641711136188481954721040067426452603787596426652907759873562109583376050393107642081316428931527477956534025691578158931128846384728732257366864726690406045506059457926553554280675327160058441542957654164055219485678444987826007248347612583103679991240717108658638152730025862862243183351038331182777694539075005782191167542328115623656383065454337849907700069877351168756766340083484613082996961978364337696901096104724403731336770919209876343155464169965810995549988989853683192509473611977347662317487614804443747041452112547386385914050839321427982190665222220232168696704423583040106374698397624207489301603111236531179933688539219721735571079352781682307258383336129215894473990928409600185252300809149752575937827665486342965160494525271738002810948347212779721632453829015098125102132411623489100358320238218114566915200999403721199139810923566228812085725575249612091674910900650529502679201282156062673400478433542789474554665247771436300903398362831400183892819189238249332887520631353629849981267428142549027701776354007366938116631886919844686794977974541002306950688267374692912013621467009477238404887584836714070431040269625264311642309965527001120480504075299985634775513631708027017341521184330465896664738399166121128275359328916279087313955342843540523514664723808872926891174908850913494961830070237488022663776219663404602851275921270795383912176766373914615705353530407817052899137718201440350358428939090333550978252392515774862634408300437174231611940471758786005840959258851261091548878190188698101322163314339492432142050949687461653878011140463644151945654029286046361500647887810703506886937133434685900029331024663109681725455093104938713109621512595146368284573480212067940211953669173713962286086249553094063367750779863832380002588254766068011983843376070735668016043443842945369813956496041154343704088527995313179795809190170552807083250609103789619152032517983006157244011641671438110697599973295044978618824291947595729892857213791123164642489670427664921896174865038520051977941005883179878101218099689164663536360975555552796993817023797712040836109252286881596022358581454752102725330619850796000735835865255606278081091724082017268887611328239422408887140794632105232766811148968790533923517200660107674891880399669878944307080016312207489034683556901430272186517640602200033611175979866313041542279233062531647718426222961497125592473467920420167269616018661857150732089540224450025949134078618228872690123754217796686706588427509975594999269771734903726181469806005561627883595075004452129388825525163994420939998574737132791653709988623761221226832409817300754889333620054150460889754190298245446425579569076836103311708006365549907843980558254552660485760114365117820711230762318843601131235373313673345778121317175343006424826606946794785188421321190781267583416915579064910490139975240561332406405618631600501873270022184726279883238135770616549190544357997648703086672116620774990873575193602061307202717549963177339094823047293883780287826900757223348545302215977049982463391035826455158998722473030546160309215466690881238009585564056589386470998897187510302345871079832876035604120764722864243596581558861312692752494088756532388499201158023864719895131402135317265604851316859346909188004410548264063009363703620563164302041520588074097303760147383504077057225764205107747542984055589433350351539500817887639367067971863605174240167304233976826539491033267157664192761821557066173997048727786894526843043380064556596377609485529784355997506330482217797796820431652292362282947043949868879642854773248690065455021010778334379710610849643761470461545338559054596808529979603227738435995245835986479058856007535755736168966862395350148663674893224813517670576904826421590064608268821133706794892688277371532529830472980647972723907311859657017536956402916477753119715690856041741269901758867808833164896101808663158810060556622984384822741925890146441032670005932302129966882605590242069242559177766812425033230773030607255203366431230431943896596205278369793204509176006925059062142512447946385758244382481003207639854319109619607807429135000712423877669655175182080301661250103135079177131088477729587780570024899676085912251857409510268735795217313263403773780894454495275606790797730488436215157005474391337193757143347326817319593932395682785407336092393524047851363514208090005375708361491557730363696299424963166546938328644845116842578153324250224015541345452128850946823685011548426630600329429352285453161590552085467055719146389210482810330185359309581560234907380948063968332935639230386390240419634774858932705468059784786433239753467634398775664684610743663342193960407799532505646639858504794020275214523684967097380133173879621015336726510527318875030706328423661591057058584005614485153185886480732140369012924360826021721867001825332990427147854133183507162108968510030663924065478246463708904139404741758819529552001145084395151431202422675383999226766326717252987974680647138760669386423143139682054012995605394456525298751702461383686699621409249385846284400337158948905293173352068989565803426437579519430924673882281112201715997452157104564473627183051598040359822242016762518645964836643949227824820540074767744198315135580164010638729155924540097011750085833977916683315508694547568710473706455097421892921831636798916460618191917265670827104496464539737656375960450893861787547343519501687332191703580266418722173891127005813396568941650891052663594450424033978900804954458003720174414694837917980578268356246100071448143689150570802330817079444056244439719958407075624278278449080525142677775557419988872809137112578219445630473699580956075409811597932511094488702908609115149648411430696913243648813506025150251325773250311472137252671800894274814382050535208259040623768833361076884409108746334946161584817247893352106024633146720420646118180730882147388641304427070092764642673883678466059742943609159716998305748080116627682455494315510631524134995926510829681377811924318046194711463159119897299918148021516637280828148888833480702099777933827501753562458660491727065960449589341810809942602726588003627030985398223816932240495364350828272435944284224799686603818859934253767949442513393179724584472482301886944545589193547410687220861190694666986199256760387866664289527064116829442763142122887630316615033657851311805964952446780357355557647902203787203962307171681183493347836766723482879150172464189702539111413782594115543935701627024622039268243165827446699536716355143675109453245613926186521751727062438047546892677686432089315837357134156345024042780235995078327855227397161464208121172481306430915103566828949400343287643259362103938736109351198917672099282058049732816464150497122284168517614912529252723586844008367189532222910314411213160264927738089296791485849965936155840441327312983054223581804791382809446754241581989892776857301844440241055240395564468511631425296288348021252327604045227870314798294498816719855669926522445453618502710223194046390319868930032365419270672149303311329486248017653237187568701743792785542614429489045583643028610645067597057699158652156249973199225082707433973864716566118240553718549486021076306032377677991312970187055149952778386339830398710216561609457810152698881122665048984959587435546970646520267171947238134597711327262756993591193369065195459591185825207131387027490396883171264617480567358890049886649394043223346961955274880984438724083197304620798285066858717549297924087650059350137689043825628328472905283421036242940671111276137839465654437345570477188361592478335180625732301923622202492283264659653796253432985102250986141863388551984884089111104305605222703152720386764173523244784719169192108523358826652507541772229198827772969509761085127002677251753955671932675508586637991680679147875419399100211040540708928107981907677762152403611958448421386130147057563303533317881134524739532702560451791677784906515666337641828908261476875440014965672881991024269875042584873396030548233569074285274977581774685191113219766024656707976502089009967643228972371362076168431538381167203056856353208970505649951722325536444184643512880237588634904968569791547115693381019376221713719202693284619563835163724484976957650127948972869024386649375249879377241823650159509307885682439094597146333086724601569112776066943733825703690770227883873032344732418596479910783995612421420847424706736518310266533355377150534787812886876998126426303546754160737818823293709544783360127653197001167295566537180113417381243838083386637739897514200499391351038150455120414967801353123640625409849337672399392541503173237127972415965752297570610881598943501187873925657684822558111666683786799686568731934088246084005836191855143867644093781642667509192813078383228745453062999463963166915923758872740563695921888812355100376867087772819936266329116287304358376571371507596513642461823440738190741817939890072865629482216229116038426799901748958114664924365060963629464119854219248948244887554528329359387340631011970065701305717496097830764518112425628894163167316628254858846620008733391413662089302001032385731182572022647449742175957636179970316562874296849763153927651601127714120810219288725133290065611395366100674806601196761497103137481960188363558160791481544379168271923961544194433054180101539200105801205276938020208986663471872046411710444329706661745139002333424316494310415641135417323398319335820211080502191089706398290885813628005376847854247813048819155329417833669298140614880707789616265079510633010407310520115840843169876326429999076276744128852018038780801354619244098141623817104569033111489361508349236977612919635449909770011478457452111612699700233892398599936422216029481322490044650135128587692761574413170066166420693025763949566925291532677950464901021657145770231446823255157453605207468215678853821288090432012778636126325078255612274332273451495159304373169788933668458787249702249906784309765934715913603851314707981261516870080085904101154089889040470438402972157573993496005359616312565136842272382659045095256862030026306855588819052475030540877166616377016380555697270861819776388731299467190848785108317120178726350091272341326534595980833280354603192896759048066668971342018846406141305587267384012965537644956182426481584268302574764306660628554469022087140130518904900418694520350497917965626300699145534160352858509277767108696729635071894441990406577417306724749720828833608605257960130929916146363277463289168992421676007462630914416120533886918990147540927755537168979088790204486833332252103162557551234358266451022178183135571251900177030827306492388638883610507615498826633366674387096708757855072831220444103259023678384247346316152392745118309711256533693053767575792512265863145725475329880139841432697275074302341416124922779818980252812259735328043073541087727848601081736997579124733960170825617451890718595125897807891701340657310775931947274928729560381637371100735700552130480285460491710717269317809626539510786648811924492141214899023146240352511577543581086807115909817165669745563988057917516301764535812512642078756904396531847604683822991448756703496142766378507070479931956949628861907858704719574498557132353317868683946154245874337426676615066182093436830156037053814053289949408818681726303942824408481531452637756004059814528235373458415216107159043571439003480983593524758627077512439588650862441412500056289521864707896032099550093321147812533037233470827206996881783482808839210086895516669970653702744759224579206994333531696598264568441630652537255647443925618623530719474675384647997034084468786972346846528995455680499750080328705714950641682307992443908068028345230294447022817951650257090033378429406408559991101197723368983400058340748980609875845603345708651177864514379369967457974400939656895613014831491118212068893898347084059291375307429720683937257043121947475455707676903602516332375226398788422351781397876635258995157991409127765547045926088279415298283884888795253180259575500461079899307412925842382806416324476735270289260858967408245281947193665521063607938280404268559025134202210640021314693413181232017699206835573055224463541579217975415545030653300506261889679907867690138027132586982008168654704666224663189900021195325750673108159746261763844524598262007941588930332427476721760562422284131684499240964528610216429274544714073792633565700411563982413256436349350190701108459105585886548913901315457765607426501577197750512028768571192396392498425281525941230557935411678047490743090851025399295727442911895363187302858880073781083538105679117156802031105987761560613997773290582507703244947562202200008424207893122245399606823584242916751207546163650620649616068425063882318072575997855311225203630583903260929034991045447639110409223434714942983396577863319309950358664368157056479209005861459999711510370946089810322937851981856591389177225774597864620729545146420177859077713242438112961273314853104044011206990907131545868898067083316426667170421623118171329631319023698440272628422754364832579606965818148601999949800981846263537686736097384870579755628536540995756348964870173375489965937771428990287911847479214424081191170422286445023564132395032316592852283596773770702584196791789807288353027389580143904580282794680273126551716849050435531932976039968626919255720295798692237796723061355141664663018332036884440361411370418648393687748369368083122094960153037383834389684411512690543755704952434151613172636700194712923119062296341535901943497651019342252241876299478215039670734603200298607967814892598355789159757239368812678876486913834407955144161662766182328264920090325814040880066547548719490577623803368347852858857448975190321055831612833046002800032617795616429256560456793784544693908914422543389986525936922009128057068391588433213977550168569426850865033842444847177525975411195240530419153070799656035253720972747579990738707296732880027678738764982820774695780744078486777741938675695774709689173934993533873284518563963696707929010010912334443986124323459343855299909724196115336311470460505238170819497608977484665585156529800246944348806550163530031890450547972921086469389726543097716551391861695171091624332893579000066906117747656991332589052776340497069892501891359778295316239713204891214464404023076540413276114562480395815272282223551740575729878677743310748414353365028714415944265287738389168533229831059224112189133747335082301700516050864177802535505864752090994376698227036407328301088799671604913641022627110035472571196687700864562776120481122831642485145361812024862821068482653939633244299669785094304280529387750766461032339321732276657224649802729597336243999586526853635762010364735776635221523498042643375746721031300798907906651642994112262115273544942635594897208978990531621232954371443590285772761345525246056382666470956690459678340939489531148233034674344660206836781036603829083191787247486944347744399192177468048427228998363664153010523203426873973121131352913914498187097786457529220555120833171506538411658109529743809262282591679917455013290992694255301728116619046526778021876805364033380921145865398688215307753413859668210043908876046380005633510325142249182742697603122459472378398176588748758317917315599443300804117284527677590874594194557026391246358978233447087027695020403239716567750025778824965228043592066882599836769187661165172436220786000579313507436797573762383833842127747638271885200716228298665930402711960745934012629380778610316236497956942248054638988702469942317880093319433119536033405462540264106481904087702445071153987137144371301328500405629636843167191407862578300956302289827291455340556691894874092976576892566874026377717402907461611356942861666841439024038895330483551833792072179807628317443124012524720991240767493739357031361844569798005219556858508607117044639624175806235084820307711035941136520588917170370064715462572670223289592936840016566450257816359245997392842858287213621259365668816411619479325033836005923626506546079651859318748357920868608960039283433625944192445524947511923895341104258194235185712346985261862530221483942674687920132682249893739242677064887060945748711445505953158815365617092339492617125680575634932152678070832205278512689373588230042757188052243423736539038348193827199677639717912897810823419945758180265761189158792493217622999970181850018858275385162423191618463773817711718317155428042944435021701809582000283331861003824444916769076538089382429613019058486954777032451806236542192743607167698295561044630460734091556554469908899461832204096386722866884007606044312821213211609885303230201704808727299499937501769179495415528466018004869468955060424810502401204128647123657959658219820999341312766890593744156092419310728523433421737377203381427152237603460398101032421214924410734227871620103651085291134499254080286981312302240446715302121503617208696272696487629854552308246285780260064525825626725677142633057315302956504423210105246449807467531313369455600364348749491766127940241118307559253011104668985762653803314988069535722073162203364051571783388769358606027542901342935763209725125430326638032955712703630181940668106825661041062526823946020597684189814705843492295723443364187602194244451799770938398113316048715786316700961887496649151202727572111373303639339635464212053553084297246141257488282729405737353069031591943150360455434648475686236732605709463936688787703068928796502706061951459179241003325623458433208649469502918829242803719291249664180376763464755085959338925581276009451328271417147111559944181836628353705078515693867302696096825358469355453575225123816173168724117149437095287267450537733734388923598425465716350170562511621968933875229888758080791684751035127987611724570577477587086112495585067123721511728671519532858765694597698514676722735527990417831274894739153337201987087463014567108401247616224032947599026398123139784720550504701643260248085719581308613164027191670451012771677001195286920284386386193361244510067246058395158498565130953276774523422944474064261076633857043325790630715174463879710315979048217568848319971661086435452164305545006674573622634688058166609445781969098482201779838976754502930877763256629799145402857568305113029702930403176167882024877513462724137777388936521799373670558998388709041152893908391784719763240466287796416384017271852240134334438748450071002842776506862968130861866821481934316994440756062747333921500627139471404136794246426133963785569854832624918473316061222892972436584044652876783146084045476404196302167645061149582748358719437888622950170965781754111096681664471854975652355727265071566414477984350110182130669472396511974177639352339495582025442554257888526248783717111753551094615965118462933930112754033093187863161999669941684057661785516859441914850541167768063590504815905893795789019609147407684775116957275401017070890881317354254557313407592024623530911480678648120089977567012072518399911409493852648346985724886483861234093400529159857296400276227555740554717438686806256413909540432380848558448208455523940677233089054858080714318665366133614196013928661996582560869022707928520936327357388889873048791994647460787525863232782368470086859379381499091224028907390767961772109706906707749282683920589272148636930317777468682717239832759221410230963659914454652388766986630206019018657489168351705225573421870978696439976061615934835418749521654084241658749274328904108627421128501986279025311107970417430142539210578303347830249171700165491257992574876822912439373523140769106948170079605366148004199799928280009128198992209260357409394848533754727448210171062403204667081051344729632868145407616793987046006723098855018049018398931186070982530992934205898992340127551114821062577425794878535081382686635899101682269115903586938667027494869382691628509673966703616752569260015389843110449068751716087583398824920688657406246817598901372489687826292213164492261767351174285205293621390520049757076672149430087354311365026010125773388078663360986133602563778639866697456793507774523110278649983109339213647906136407932568554060999378174832904176493014088813091014473682463694376097836727265322259093122410996400638913285405728222352267836139489375351787447681112454406488067115198874415243172849941068986197438267265926904890756981766728179586168789095495967377552493829860484169167880388446103645915059533185942384854362627655412237437569017825542127868378257463412972610369268970571425048559137142865228304100521447787340523622066702476861844857750552982156106180813584245776148099238332061884365612161164198901285419019959341789231118865469830451332719480595433070412320158735067466765466054103995714861133252005707543125683799785176458182720688895535758165308968127083152279831044717715936878544222972712366361556971365861762657520161805464608906878129082023336155245078871777981970626074040362008682987218382059232244883616544513338112517883756767575870438290976735667260153542932450956939662796203285984206561920246384199341814122188414670533282381329000589159418423132070557115715542987521531845390361400838198065737449761965033455832435610212333958858322855230416552368505409157014636096156035967782658608974958341617079678893297774024750148913671703864935478496454320072356104016206241863263563094200674890775369246048408240456763618653059000964770950209792598674634332131877093208247242811253512043482680290826460888378802388514023001975551194243840949457324207588044292324246151632052292125085284400359565217379478812812004766147435926389951047468218721596758154405295470954269454514401646114142740513034463587102793530396889929107192178475919022641339989921656618417881105652473300313668740611065914196931935244686528053964375906913077030016221574450414194146020811104319982163167174768243659635894925872430635003275062462268771148982791414106912819445481768251926705942098846941827650514252472839743158629804216012994640382185422026722908631787967904664406503808386752913285635012606723880016934574338332469642931080940733294601055799391985404610364005661330272441312884087018832881266576063280366130206373560592211345522967335513240057668416074892421128015335553688011912875299363905260440975407108809865247532046937482289899211320927037645966865494877814688478493866015552678529155801574496709669504571178104907103101473787938711270479355830349233114458116620067179994039049368219215106981899508601806651303015628341561994519663993424335687660851459739547787115753022959889830618108579996412583619846907991571737972302000834244823052923792866582611724011419298535495845284940834673782552050474217796767760580283249404110122397421298778990756996199657153709727119374297885760911126259249652570054172675571275365590435329143454819451700593310672424868783382498243018538255267323729387642275787227064926223944577270648429361836953393727545830782645994500336147329083659078325595517878393210935945337761476073582181071269182927957410667333677328240815172821537731131084492705925108939966794597382153451888627679997287133230091926950056420578081882032677963073113824302307639058130549967575330070882561528849172944556197493406500952257559553548119558689742043998070232691175303885566556853198512500032588963108956291851305423198430668067679695198604620303781456515091130696749742257930755565788544579432205956372429037298831258660322604770567729551583790214124935379070143082084939859550466986178480913980328395202720776242062727210327043616325183016800269723966379418903746269035693807899778688366687237696421183830050659447597251986818016330453964690187667189263336634431897424701449457570734818930737166429742453496643484371827135274567433207287358357074438135463835847024880469471834912405142433382908316144503535353236188691377909128490478247479594303465952979628151599969020861774429407828017880294949661592849610660266422592996320314511157541159062034189030457969215707795759995153477673406718456519895686211060939989580601828708563720013902949677894696172377129621305245447626695566222803766022561785146945166422420793160414355527556515848824972986069541030333761876155462515783549995552578807740238891269766753814459550306833178364235183739528329761833903904992384666752778430542685489189876418703584080968671821172059123632120893030533388531229182677295519095759444733929355715142647392838664451773127598737976865509792638702037519791283446678860465461667109502277443007956066683582490073395569889144401367319411538998119775185116951772463434561361584369409696415043147215846382728204409151676019380101872149354098909815539778982982874352673092560258414729322375366812085409936781048302212917155201291110412777110469173330181978709071087724952900574142117187741760009189070648046392042489664075674339459260031467492094725759341525624154898282339802733675210358828834560645462619406842575150539730774547155567872204916002430363921152928030526559100222254264026377512051672208582026651339764202552602668836735803997663556558345644537427016230496663182164418586485494723804149023261748789795750105241989304737713385911275042211279991824025180528797465330341627995852789046744354161949221288689520459111952162829667402719725468440273634860203013360418858492743976759683684545749662379292384197042898566284385622481979135225162130980490882482357157556473395234196669231471010423333632564907675909417644740842190236018848758104752682062944199406415490387791224195305840558090654186114618790593067786557700559453610270512407043222576375792029817879428800989768990552952672867937556022119138465131209197240528454024510252848417549861943685821808700076398648820868805768348117709237582166374641079145080495460070195262706583659041609418792346706946116446980237027402288349247462608074461075566044537171971820623954192457290761373601491779422736267287131885023440825647432534518691528838011971042438111057024263453464713404459270292542460539535950641491996486500055776534036318906551942026062047855380154937514248138909042302384516538007495197173194853293116700492175742071885680716730984457167613691535713535356525640428530923776493923626140811417677808507847381219832257542365572699605276511172287454231676325043979336962438805808995528302349334849958811820392334222869828082566665131774734164941793451387839218755290333984794912579469436147333806340349600246025221877437148115035614723500421192833795046964653675108609189460972862468804146908544172177222494164545169714598861256545180383469206781505342032305752546325302268825015055429557071571623645718175288747980425012551914553233624569308677241296964428034466192392403432902288786700145629566958411168840386611287393987445060883255143870153463836938368288018412425233700850074493667173764572392435427508979320611769267867531544145077368397495536855463023027599545121059260450257850765043376137053413873724347179878736965026337779075602936226737670067077190116217335719139562836835754586577828603218631863233800427700805427423937550631667270013599159658440940771956903617639573695351043686500105878503300872147569514967365405731379662070986337465256461944986446875629721111410693854245572771797832604277321811899793608771105114031032270896359505149333668128298762348249018518767579812802990847669258118480492600956834995824672609749356297150747833023842845604180479604100903660465056607330204251914851854893176902918950670274108434467274853733378072949226528295119744163366762213417301012313327666658048381826964927052122176798030704335201388314977772751135004520998279565976599090815474415667204688137258038302509921212549426762397961754105363763104540293175676481428279731199150976845800740259964380143158677928095508721895027206168761537028169421195219446505788127927250680802556106630325279619511792173985915004170969055973366081753895602600142364106793578760867720845355154985346273490224566532299799954857141545436308930562621096724145789552584814499255147189139114408077504974490137622719354758505779592162424863980664593532812332359490895302048304888827505694325555887203531005848667131529362366141464497956766467100643830394528516229350127742912351686554373420593447647860017469688919625575984511293357551068642559132310392539145927495620007087254968399357978866949010737847539343070960880849803747022416914674991756469745144079047487650868116765008028132820467916875908369368698242736266349024594151884223324642783730532532118293508643520384632561348670840228907477655896026394443105519884057974584022041581003655418143478869912720362894017604264967318398659513973456845661946366888024482482092198494379852283629662127317595448190141928026300818991371670275998140083684478752461379948706048040858321186472175494174556277988536446600908057430779019136024360953555560986622853400079936235743063018718802353170113364271596307294217799552207152135822942371545925942253170673589333291076986704539547215319636121596042210006554282015647275883008717374555056422223400762015942985083736584087879444688650019246116299791589602410336849881801938707864907457775573564989130027340645004937372395272485337602377646214374014028291993928117586156236075350579044522139821259945533932629503200790012062579535581979568248756343878949117192951231721514662689965329362114113421233511189804794581519986994530688102309879529938468142236103059417764614198025749183410872989466129613042542633926719240128616403351009807414065906193409524168807028029543318980038272077059694504497457806095433522882470928938110539024952351850969062114345261188948176525057357748405515226072532795783267698655816207926696539939587848993866875801931715336543775192676407361849302859004941611813664802151448679631884295012682388247953382460575845569615092287726286346528833347894500460037058907739768201087466999044458952350093803901156305777426228300908103232365635977063093310111985792407510655042593567454307500573972324878601910656733808737581565335952575118348554242163650206921135668509276453986753747482590193514591916590352540406149264422983214799675987683351401679122291880466560199269575042046865805004616348061065218863709282183797115615246192063322369426247233644081080664618759559115841834922946565574370084692242190663125543291416186416297896725883241531931140939188122748152586508366677780503562508126410165659976530993949990374395599480300486847160514272859869699940625460976553554368436533037073370812343951882381313332114800823957432238854105577008375500141287823046743367420068126303943795779873246060087853282588296616195687316792579881500101072729704431571079709971132701447410113567670275400804894456932030673381372643534687006890402789941757351154995972964162558591642268481481537310830621803116552897655105260119712426300693310310496473265508860014359098418233133215005056407114774505977545717619707145083951833313128466449028727519165602092662451469125013086701852959866102280717988744565618393180387954550828700683462283279223351819367234797095917849501370733949451115560247834514022137741948434149087244339883894864045971083927521622480629779900816195173143936910801776087149056205008671630717640568617398191999265538284979686651507010386331381669732012918508571635951980708724126320458181611233538074324762497230587344393201403802723239678246451202240158195594268528909207685367064137168300786358513029653595909629685464265519003392217663708441964283334532635829134294278438318103022966823623565787756055369146492861654146850126182076891859397278267758695771426932333088115599773551400627980264973086529313668805204065796277647586685285942856501727961234821964474140772232693465901500018420809729881671010315757119353848171933725992985524091565856812748761223177728757485630739786579642890052451121455477775962110306388041993168170133038655575316626643834713816445834163450233232757802218515158941500937305229716566751646985974540263929720959697382675698709630384708345667973897966371432390930814670439471267665459298137831115378007620426244434939178831399180787947695027559949808427246561818655592943473618745400946336448231507022775393236292952911453820497322647220191732773360001036286443871179997799359338325556391089563899069744292677873653065655011722802440907046893213115519385056868354759137173205217181419453164761564231876867143896635018228224160992519978876962748273917566914543171065008542127141647163583632998249814245178564630324684608916589792827434062155826614360429750405210470426427298831563786355239777056539604184105937183018433478595489134296325093134015337492049647742041852855758831932513095930564200412854688882448433742177163684706278365193248008518362827742517476149349541641601744397027408895126218538414510393658964749323881698411201547363057054535298289050931820226051483640056499866428508084406451506999673690260857340845093690134785647020994222536652799680142403534216322799626875415065074384574740490960194980556694513628031573994227407734830755086954623070402605576677075688711874759042922599594719235958439165926686210933915556731085244920007023293551428725836683473435381491361428061511406902119807859438540443963272338458840763432762712639675592126914187791444086616469957149490557189952489737175713171407835051153989196591855842469797750062291571649991821178220034847671978953719338933171507157513295030884634803446479777478259051091758737624120746841207929322557870266512942640349794787399875412833071271061893273619697779289685819019883106607292645094122468187047998420719892763744008906661257891179616202011970064356997771721881801946737067743567817038539067542387309550641032979015671924016139873043678604524803048052321649277322384092087464386223353842463045346082641292227116492237147255125051442132486520364868464173660501048422968737567750792383197286682039561402145510331567295755432577419404578433003349960189902660389283759196759880435404996200410753793601108378400715408356521268485480146735213529144695349578974641474722134838190600663043917361378361434381284473524655567183099403142550282953384065500256065315810656712324994709912442141477534727897326515667596277008388206011742836676819758227368417021004595946199566596377301897148437272028025509744128986763958806230025077615701048085485610671937876269625941305332189795373287256163994898747892498134822299316002487251069030388078583689539985600487148281692938334471662131177666634765971078773403739805469810390997202816405204287337294219632239864261882665230204392407042038033571836824554875573677685053122767307989047051034055066833490011823103022679328191502707745544840335067576196051865981719587353469186020702996106184384275493807489271446677805469381093227813934184809154777400611431100166838093839917070261523518518389414282784838757160601164754538637801817044525673867923473066945893201333113661361966611518480228416424627228369385057779213413515135382311518817447421335371949310872130198355524311980108669935049193817925866291659543859212104502379381668454497361320843753096675232226358427939513614681589209267660605930895234969300203683511297888445806472231954381431129977765186912547585276827114421968489730751443495841322232129611611014046767120375348671323332504734602180454466338559287471853241814989594612956864041772739949810138954204355721224213000336507244672865673147152361631480545595949119699709361223504903507671945856101412065841092107512946372935770446086084466926767938244974126201185132989048594945741177815362159410177935596279374512354641915666344594353460931714537491651188227334762034116375065016568620443615560456354450205032927637838768883441204147302146103092706764813256218142225849065444106856925949506585477907397110435353968362767661582459640925287498316284971275392094175794158169316171552794416187378979968037459166233473612129014354230981800521168100089050709650098002645922656132131032879990316586185988038756939182762752860718205046385259111779717118230125347235097476609418019768472860333315281454226480391673514890000018912196364848016846076115543971484015645502216570814383295934019658341837163195543915518033804194646864059592400757959989107821294078262532882615632575775301358713564439287907536400337153205369256310168731301203586476526362870591023352122810716981331044135937284899269169561620258418078243297926106802973451134539730725629264236416346778702783766476747011404900382451991594031918907395402476300282957873654217606109254736135340433497221663080747890490656867425995751575885744777201804927556503184831675521749275124908612434268971799703403454159246427311210606867507301545402153075803780722335211446843367213215036028264682620720779167464147648555517258838424352151122857656151978376808993571313416728038527781059667848488175141372711954301319599774403940556327091915667296641182680343408283388449274943747846207331845707824089128309946186579634822378391178556881098260286051572124777679135250165043593312607578669571108255864328797275827952793781412492063038928796936462360021187482017528923326960378446250439830959500863687399973985061839117006879789891869537645158390686502025893702089561273621055604263142335247467658560282455149400441954733168278407598236192762717778861964689249229716776650630537440712983463473654710073051906338535752974576586564218789107360676231310456372972642941784553955187381770061684204846321887963124559354125860867400228104341420173697087435684781260037448590787375741451353687551744530482897057415829207377388147236099052494794066123766296491918397496165258371563042248472871228166055886092011541698162625315577223712021697745831668230006903464634350693838737631457249899564019459624161311418361341538364174381977020267483095669722700055721831963473717603720199212669353606954578690411412899375453888207062854069795953692402295509188416056234239219873452033367897840135952292586674342776580598954089277256413096335635985649435593150821455825374220072292939799228803440523626978355665740590221788798981897649234474683552630478306651162872416649167011527843044218930008888258834089157898241337232820686341368873681962179721663289176810566258830382321942908466271498603047537965307293548303892009600010655374157399480970136064004673288043078752025485886698343513331519413196791994100748655151180416598649556345141103078455960183132360661501926853637131754430977980993376828807156752729976179071763372984125571922004195224941790179615749270131489930874721335406684523075128562703417722689592273605932825202201420326536968320437617524357911089304841422553348244920015969928495223258782545772669039475651116086612641579454136348523474860820636037678163216915967862620662742882449214851331472675210103863546049349642967060595971531244504114659406056690033278214415563003623227212144011180609936947735345512418741810956319946253042052619090472816849911566781744477367373612362683599644420419386034797204315600202532087437123752720985803787951095687681533088536361680115708787624124713881002705656787632772283566045678000206557328152895703117601438106064117502346735487425913796197328806416222754871663662054631382065632340245562135555898791666639608142419950652370168513028566273286658176359258690807867431957310385961302702761464892937696209378079048879692243877739161388540242561363577058674407499481702893666119496372755569458125196750082389289638865403190975483507669138832659235841007990568413436004149902219843935141337300676661693047514621137395974927074577812610167761969529628500154986035157279704756047123876222163819881769955889396588888192361309735156829256818631579907773218538109354331913696913344174747284233167605418027414647459305510293443545094655627003700979578151018514158032195677648183659199672245689643495173950799546838268943559973305262282069547722912091704846197836395546465733996626819416591103363808260607821726129633041717320088176805558836331904444619023787890614489827445902657475090556631300116897060360132223662163203792653781016566415529680168700368256586925452885617615718889630576944744733476757485416959044367918260994090389542694654869939333418749235276508800890219936559882264274247295607958379367547283051173934653855721591822495591288745350134374825119468154074577632647518403529029052249142611172975897624141085628143692901366779659529249361640827532723990383845502787460124105932422259070532894297830697129371709038759991584272554778359003759401452563998067728229582226521603731069681662978857821515628795443471123185777539446455609808442956272035667354137014845524450588948071126861603321469568166952686945573754955199052779777439662437136856344184500644472070865581901803540969856557393815679218034868134658838281249462659365608889026454324414292904011332994254867114424340498460004635841834179038868012165765258485298107683942227137545392713658619519627593721776363930171815969548448275177638838822593116773723287919865818968254600214037001440634525563102286741558711063121569139529234213327962164900683128015799320765702397849782955622227199851791322500948938546941816492990373268854395484823085987508882047941240803497713828402174346728076943495350183332839719668926778348863665711958814603200676906593740508658318723143535662947898386686834513571373554572081723603116662497369166008671890943898371304289573775405453812049435634745927148096395079461618865295925620152419267373716555640742140322592894024531543064151790463461201993396307237366361700808186134571101092927019401891648583450299603293693943290521902142424222513898258558895996089415241847377696167343968635039779162738469303566787738448205212817216561089065986702657168674517384404556516902333862481811117840956899053062781647973741445979239843167716376045114278246658726071516889961001765621805795437394744518689585868580705979622753108921562288792392957405085036279967527255457941308837581712007761438752976741045607319194279374777809994052418523388243669971202608138459123405669200167444961862754083252428616536084387388790332557431168267203588415306966466535250819534965062059251161134705952550957082502131652841957730186939975494014518003464034790337289663037783654172082634348690689957351065917809404234340394923702412933980166892506046637459581533896112744148583789064244688239546690133457066238797122891566683454544568657256561414673465901293466823394843380373827510231070541890624515582825145016124571774302049288384407759968098800902170543326432473110807384780511602956700199003634195323840327512709754246134440400323824980760253078635162781729596677106126404898376695655313523761391384741005792815259231360170476595117282989499438748600610680270999883801855220941906745222458407323644949051326771210206926727980639385540040419368534252649721866260961423245785060130532676974543903135142272564813677238690687848068797116417241502852958280947172655748088192659898634902138194609766571387841380408273503335036253436446938175091688848560798648155691202007994392272301235564086984816973541369766795352920079453876701227483231217764854630939790976447690767893034447589140420822417801707113239663940677805572844114358987758573091271415160653715300828369928136148411691331104893532655949463458267888872208711000226897300980092243254758867241020846307617295710696162120093818770045053883373094247452132352286952175594527883732417440336234072515204244565098237364652145647885490764269666887890820027815245814758894729180145878833448660510520588594774490875413573783271738920950158441203729747723367535451732776919150524427916048201700853540683220308655128271671976191817952608410202317029288746716282549489016024618646507889547897796973966702214923431327438847627899961134221591997664718466263167472831037061018874905353647643633724072841009014962687803300754087203457149585147270027082094865225586368406523312524507666140725962140333284161111121095669418775406145104393765457477098909911321355688563300144124732501491664907774870817876809475268081746455791990085311993873181057279398134827663578395855644635529077456021641880610898628459332728054267086489692583104367264830195078201389739382092809695628420702152950183073168156999966321768279780781812471065224047260746641449313975479885813171405196374599503118262148294068273587995720474281805856763369573208407054081705915637847260572107417755775361361965967679186010774197776858134712783753212965263967268592410513159585313002272198878285668118435695315343428251111952245829759224618213861859496392967544216926420285092165612435461590877294649109962031809676310159667719133367426396803824814562559265241506657353710735175865634059951576918643732165507510659180071403337456267926433804940280203572906194157337298046834639272241761810293853931111025982839897703593595121920217771501392776377646511572556181068298445465344615822032586292180869954715205375793110888040540445965942458251026781290030101109346924036075587946081791750903962359532311622467003956032157744085495227831844728752686145131909689624417157340232338664843849620786880594068041656049318489537108718829257483790764102796848953829914238958207785563258721685240617817799621791897645571534949751726490575068951521403080327589023071215848482446545932139321185913099678910943712895713340793923921380205961200116954796272479301182167405563994826188367037643656101582532240496115988198466406898565366717077204143495225944983166170908997532219050156235818882530532529377213023971959819314460183051470973256822055740434333214409144256978217721915143914124513300542418881903683228536814723470504011000294623377120185267958643137968492961435192437388967873410833739469075367987325207290863741466166975908001076951753890433877817092044734688093010984967346538548523395433874855174868188900219069497503125682210445677064485771501608975036204869941027114962636292825198284386441599606000931246587315326789394992672384604113494433034803157242304304338344104049663190569662100267272522279270813700301459265745969713164073807953425962238537898451826038136239116764742831762424736830067953521316603444740929343964358768618927212068360696777716980308681968218562569597802734377803234411646139332111909800281389766700500760237151634644998203164255776503606376824013832522020094977562776948456680358551464517217638284925111661084015860408285730223867609837397629718062548118534258391730481151086975501015557058191849135697036076747023648951216292610349437153849223304083573728392972065914806094626038322309518292373900491555661094316285630789023530110269057879356293693656713781191652524350441237179826664351222221809248238714384834736752035175250479054254802980373922427145015826725934551045216164604175423309955286705874184078295426154000445405441257247345060684246284357168487521310874187373949059756506346071333305033387809076360493366523482757534617041597566946890802367515079656689602522017214251399974721857769611048132898676102453493882945407312035715763821170522185056207047842825901664484269680968345790112503560687367831911049732331931606478477061249884566033245490903661423808920200585000140472875801178003193366639233656694020910866126695095161042186634570495005663640819383622704846640972938353095876772679005203165959731921403190653554057599537848789816590696290708725394705298199754552688865815532949443207106591251604934762045143890334739924985136605095495952956675201352770317662176609620436240140016353235873496441034250936723477368722681144930373466545007227134373010386267906450878476382228192404601857741335829231096086615335323937196211943422510483463920327882209517951416870763588594108092570410328455518599892594907869026040223122836749794014662489154288070203451891523090820907795389750578230542801406755613396883692881890839212054539684616938765008657649164516417319209201228320655597794496518265264344662535611634266704142152122299612818795884136271956436819763307105537149043321077759494903674655468225137176939440506921033208209337794567834028373160072121484958306646424716679615996967324145316220552214470311870794600160574674389301147664626064217490888793432939927202241471187070545898040502475870971094386936799560780091947635199294477233151631469021678724946445281070908162875200539401841858634817826481530127183048775889573842051066768901330829925226639155357597879021983134065036239483190414285721948080415768289752935882884545236769641582185617608995587775562792501420036413796985571666738935030374886640969307475058228445458159578994829919903658355912978727904843056182451365279674083675623015344398441014919325934344125139101604815387396407181807658207853417977475323761598126942097044047123068612152672595609499835714763657319917035606115999798862006270500504376922419842376261520877188247929871729560009957309875272549929151290493529824777457460071544776997139307458476134874470884000024944089423231560262651298987441223825737158063153041337098535968342429831369836878943170416863392480781503433759875424779798059433900647515781700158575521009117994917756840886343187765647983095150667742682368697620583410454237599986501223423284967823300432626158671393388366145152268892217396606938506556912749763388387610256417656309034636560731611372039044815311376174950731895191039001138876597173890652559086331943644377157480533411360380229253571456086463423150083721337407733429131473783050055992462746656558621905902459030246867439918927390555189791426650193537011057549840872334941431072620633892931476698030787191781865633176014233075045643614896601134311900034265455352612314828521460350229212530113166233525538168533466602962382542322916832487978760540951865271360785697824132294056311581038291646630839244847845196664098965166156115305302060350096078202814532025592823116965334580366110413841712324998633753754923212770526770992996537341622566140794282586382924008965531387135167833777859475362685399257960574995242054029994935890962639960463625230954823550500294402716356250354827758973653152926387604976444064039030336560071770144719811707199201265189330536142058681735086574774831073693211832381295163854711814827256822681764662741863622415170551697822682247139700595419374729150999700106811558890453353390169237626622469278149597510207084829768266066737042275708191357358835687182511532216762464989427585502250744749621088679919140551431622715258822731321770845727800084943880925215175870473213101238905651627344281254979912545970120995273242345669372645144230814412101843685856999749369099570166036605419611104665426270125583862807286112249128417512404055766758812852467958046464360255182809535582865303894565999846997200753197930565323691503552297468316540994483340575566147477831111502409464913928878197599618104147366404217397851721056968910754093713066745569513212776575562142649835264770120898272215476005006603423138240380406885994639560062136661278754207037413523292442050309361910011596460209845553775258294819278809069842920974065355662389320924246980575767317159057770312446408284027904294469517947656716652275106307709265936004891543265317179563836649525860884914088539657815341282483255585187930713844840883666174762427121431316222122941800050224547273141864396199821366553701785805783670412984278683007029496012094429236245105059983490584776032881664856249177233743076454128090670100082753779790570221987377232086219013218942955363162810795773136953223936779038969279787157266967747105060475830657717438095668616058853134531678644711444727748438571223446197882294499009836411296407196915151031481387467420856457658464700647412890597721464573290856721812498550620273332367156989236101740858795807984830649589054498485969616687872102294958869239349561443925633563729239289540612020214140458641653232975788819788156936468593681934365626435385218229309228400388027430393298023162625281054779316286794366021068846980252142213392162378150389774392489820277923459137011939957007164376167454826727827864607075624945170538609228458483486876013317233472856243897358022961122320725514299956927616436868503346250206569401629540691817368039229705934134603119491845424664557151021664341266559690545698589589326743865996237274220832597418556791510140358038308538817855064587932500497351331854601896145947719382144781009224650459572743633044840187072753286404804337110563750903581884641798509538309795108568841871448480480479177336914398379118763596641497103530662176447995574152278777055999502601479481031648987864338414910849486583333968742993489910767326283988464770781150952753298830309085618889271214770712259448406314347268986544738059817652603854496230580683179133278424263282569932056870784950336428243693808866767545617920976720675747695827748561651664203432124570384123524146156533382541515429301305750524137192480407669992558004171088559293054438173281231854280461631582667540688752992370582847842965660509752891284573984143828857145351994589015225058300534437291205248144323817458932040365638180018058463664989149251506857253148776284864457282752033638238684906030205245532134487499411483674590960303390833778114866955466254191938823910662820213452902086085598249775201437226337471637463380690429401511588837063197629571992972907557001263632098316729927914793140247219607229608972179122602273112571395398868689073371711172478706682592040190912758339881206817246605888156716091162935786923286214332532304946583388938686865556971204709913638314653836185334902558057699084830556729669896918332545208645886289127024066697760049038503768733870812304991945936124761902424703225441844720831317916109029585554354178292229293489396819988048802268675144758069794991932459110537003019501843052213559599728096337497517299786726930898265269874410228675379686664579119959366492005950637515502393422653025959318601711653448731867982965361439663377939676343278250303915318220522493486574939719094304656054911459765340409537533519498940803441258710853711475922349875535245985870167946700096224307812403770572131592525145445191660989830924346965572995711218322961034786932283101950927354232515732549929737024587160314736233364723435594861521110826413283412280015097927146549885791188142077644206221117667539669798290213283980782161614922570631431640568810333860403331800585655422520917535020246409907269874472769172531006711827597785018192431914548327146961241346230452736306299796563785898143176888798871818298746898078444774397216293501305651959255025901614543494889187325579948493714397551497479852816733023715952328805174821294006133041158917250837808456482371257406445451320141576801005029450341281429407171246890135854916931320532982541564003859075206734409464150099299005703937799586130358004942291348971669538079021469645699406946827997693004337292021310399485761918528398799619528511289942866376664956282558898349160132151494704527022980814710167290343908041191285442328246108122388998991771012224120073945479966926634539830435827323055198971117548785142283097194045286682359894230345964098414266967051148354586048024163576645059029433204801032224510955284821246571892302572060717834759099929131872811048602065025079282592913962774215656416306869087739366811594612029089751292826292693337502563398000049410642961537630461774807739451906475753790022273772854985962559640367489270587607324988152826428791882356249138017061791500686114642540807717288509994312764687581031421169973951213216439022886121440139753602351007294025489555622789880660275205976882379719106575770576718715135145746264577869463648392913908009695033039376141190079688601684673289062937351982409298229760562841576471860617273522985086219248077388898927971625386061734879926666112296596294753319986629812309352859510877792969976256443802543045450429570930696041475127966933831539643077455269039997517544037474377304414046044298591595637451902458945673055843256562334309681909469838867267789886715642076907806276092105325257398960599317761303886677827540271774226397741007472414024182744377185130234776660220043076821603606302503844648478614652465940343449404679592494790176379687847573763920633198107718685335314884794894896478868379982896244420110288024193023456093277387336575388022584349361269494256840076845207654084495034789419463535891604881436539866501516626212940220955786024352497685762126240362798583544501309460118262008560838765956930603940081598476508035477242761260747571579488637241875098360824419213616387908101956922826477509415950332874804038190366075811880905322563769444944693342473396736195444671072978023619624003012460457886232848900135038595208645896932887695198340302357758857975731513786467904314760381607934161717847080107551371074462232967516924553225589984888767323418931412402353243301348814004411466687472699526243450491528349055782075240520355426617237887796830704938090091834308015405432874788013868935287234873950411655252200554835405748046064003033048905428117118292569702741579422254770354908038942372499738061218274114481056417703061243632801255043933112589865000046075602047980786979764709889096333832320038945357306899140363729665064988395728933894383518465391845994963707846817585881543326560212830058220131592733552092099925452426899126122241864728486191332948945823418043014249968498356632996740112107004772428109846842114864060492349998571080735089359274012397988737792047940633391085755988951907835950034535962930667993000306960976022920812186576935250936252294564912458847850762125452773060541514577413053198105219092720753556897855103029006628000698118171363539071104617806500123888804451618767088716924767656176333500181263602985287679166244883508301153511650126205805590432173830159374420150331911890426961576127639478676790472215778309515598244792129533301980492050400448119986368794679865429012192412399328028711563927136276770982120653988991662003371366965774449937961599807137797371914528539464632847723343458281840502656063721530870676044610947890031539369849075928836141716306944320589970590293529816886768378264054490946350643045841979146783754135481740872911915952466662842912911218816279371551259078280356460603169392738470441336813596278743620034706298779075793352881169656148720925092357323029842188742095509815376314863267629956286875659762537800937358695713346834239837976139848270207421668193790363470151795564836219040272447544591220503715892545702159138925600071342409757464722633131796500262067708815443105890655633517152229479400290153311087215447476625577179312937165721302958372536795348139947958698165816667518505667475301175657331699389626847300050983142120167766632387342094859116293970354676177146817215802978003194438822586102394375185445806637049425152341122149169463346242541800036017957275640671570103466734732457453950147031216580818587538773874807012657584132048189126709176682054313581478889464228190222029465950345246415445445008119132973761528420367624083159224529485215610697036109518285750266542106148063639345827559797380657746227917742077576801826152775171097890886746763254976904765905656870527639303258750750893775063708035828300069918657795423045884971186714331387506197088038004471389515277053979294039017182961663612126620150770976886711855563794873638629948162235982255881702243650728096546136096848001792222734823524730080482311460388577580134778363831976005363106823108430725575143322370858386181820914337791526848568910793992366934463559164213199177847911366847350933094758607934943129848428600301486638240536580856275738922588740474444348215620739522871987414277070468833430189989384700270878415297350973783903557388661358004807734301564581566119560735047173477878630866495066439030357561224610405079232739583294337216824208014028334323345620123251742497486468731901588199616554451388089057499416813085830029124398265708624452882129627748077021837101049326161597266809277183506934399783528667533770179656204463683045410421004385172018039022747411533870036417732418623222026945941492815684804158041962025155240402063569197762770489507322429152649376719423527007352871071518733416364351614315050338182532115530712233120711254670745035044220141775290373585154030235117010905335550266444234184114605120552474117917240850794542453954881871368816182688125084450337922135723814545323511442458191957335108464188836534693745760279481001573991014245293284204349663041106264017706180810602698499981729661049935803229453779153452645910602860537513820093512218585472608678949530308974596991147955197300241331517824309062149381534166451952771273817957376005771618518464520093664350154278956340848099021499507788647106037948326414916683197397925006433497513964413118997738973065672105504926258519758108359201649880119893818351643256838317618963749190347650231411864274936399301103620150578706583232114586578994607368036988660389134202784516918810323469731950675332567042123976221349335687865061020825773810829178655210745190750647562314394795653504193654396927534754457094511342673321715078638664934747267760228551301628367378532935994973060783714438975909409401979790542282361458416208264528306227992045177924022505621897107678851435515604529595823469542686497411790964117842088438460068976670589161983509027168823114433092367087377320419744179562359485773584443095161740152549293306639393554536337909788861696680583469861890257880991398675001682404939806926993136913139306221286797361872827752927367937169623111017463312473176099509320606011630280206211427760421485017653172386393230710277576995409996400604749166889073002466283905780562306423671372737883844659563542165508390964530093657028081819883755827926237954564203657072010963218571265295250153288603335134975948827895380420670196212787191941195792491701366230171867074260160389175776475300302549366111979914515905329160354957342141137713516980849864291281673369629444783696056891907357846492908729329083196808889032529057518884744180652902630245594977999471960584233369542686441548976647192062421349077089423148995620830135559217155917530894489257617882939674719424643292552171561459613987005586999382887288200035360831642449741712075049574525446430147374739805588080496973321684106777354162664577208372452586308073715866746013263386518887818841128149120880954778160468208539710356138295244146963038624260317506269676923481978468421418468870884526114704162130423050947968302286010451266501438190218010034870648271001022826525604077603618148398327440400074096668659463090846566319945241639198326261578899828632539605470885198847855747988428104458665278879020196663555207031121826367918253610159570551627056431901287473723370944806684165141355061268224709798520862256770273044124268884898297136268612658928216510137278681345173593352387307491288195862854714324556379014162295930189007215346811397869978851027932280316183670414463192980921183282373434583259726358607172941509797328115807802981927708107374212934310103336315664834438220790412784915794125068774862953019962680009646060617406495629332352997675481256756573448235851703373100134749729130848756116027775483463796222392892151415907688206271020685855944718113214945018608634393486752694943230433960528478626604234347093258953283194337440805090758315125611345501973486888894861832909770876111467434855837940626687977714944480029171273810390526403575625017868473357751908937632871934946767307676717569178911594748971227318431088691113240227818982547313782630134245398674985747074448445308662209294795476041083265900833767577779809620976790670387896004259103201196778243941089922557610386489126096757504520056888413214861942728152171141702550704607577493743528154705552223576884560902105947879715706036065443115769817099237526448711559621086854509912551556619983397372012569393113612233039501158624471888717673517806143820520787553933886277491483571158163806453455153832369703828666903980894710089277952370132538863576782484765658209332860093550686127271738660149952169387375787858734998946266297511353935042204675969735690991356362389252775685955212549828941898140372350387267878191380774585664132254883481132101444340429900451066167240197775454825060510943097950531617909181690446947624629279863737506277810011737592415510308656655886237644890957966161556036825007281462078121529887958189297025434889421493307439470128017928900917977650355555548872727578962077608050818259073165723188572324205815386475883526619383735257023371364718357579215341454028221858641756650006385865530113666637426453067362531766888510181186626581687837328115546515168866020708718084622019288518230108492234332787186191961409787869513511856160956309138485659352732345678980328696683439982142431201568035459556153065139572395677774881321020045351507711947603880742528147893796460511872687385907112090373283326135767698127001750360966297477504370226467342664066980112955817626667216736879433092561465843523374558630539787330469559854169126272061582546840848043323979324078866528611476505833436011493164763059031451473580525392971697878989080917185609168469917623367608739732926608147635825519871031204471117775787571761496919049881863552786703951182438956140116082654171969351310468219544525513216434723430829835472867451792853141324607737385311001487230300268713721834955371317899764183747204579488795942194698189575340022166680033650565556557630271076884780678203301615009233330037883160331943764596056376020180751196398959410314389783401840241996107413848477278070455070044424701449559466316965489720028385249531341891171167366825689458213911389363325006485185793968107078865429098036794228787755804647623261989586627435228188299828240681972122832014026890667134549300730226148903134245118158820179173754521993970460154711481336707543993705867538433146809184247581349601048575412333716316128121483533510553794414467001817954949818891507000348788962209343197673701043383994690489693477170130961585175795587693017882557424397093537887179600597278068886161250466784408469500052533914193774501813253688063227748904164198146784175997173142108977839510784247449805196657411574267838105631045638048470520015334472113354497808706581168055324638285768053925789055088029519651670357870891722708366955277823743944077529047819197968710326255558278494036349703032050079037264048754084812632675963721896417001754525952785312207626025661665735890983188937628432477392051483697867688904830831879128030047643566659257602430817859016929047658504769288981000848686982816408960171791929711738927595568053258506686960074988675939228466693069318626089599660201789130322364424874782695942671213463341586388106716129487008357949647096155697905644497681334811086206351212092439064711353786901593000435208877237639087419711363913805685254056371369390059031860270720100160493730217118156933719550766001505140057714964779718889100828102854458085430848444001926865868242772008999395692254468248823019007851093417554754978572634308926792358281745737065897363631960807873074969517574767761104505802873605932292040882133497864973556084169191628893440229829594656431117672262100068989880512683421582353961881315209003490967690361496319810354033078340687645471050370367040834611349556414246978246908371428039266768525674341581361072537777758754825897140870383121689195964713811559372158319342836856114939754248365914189151839612466882046001661906923339207130615245711516010086591139134352746994937057879788618256716662411373998721019537371321233813673584261549687816146736324804179778135091040828166721940577679328865557865173900622858586941365491701144467307383143176917785021261300007284718970099122752403361253671606141493055353388629627816178207863244964115267139430166865570630338185224714193947101519063072187652803842066364572766756495464956348564387501112089226720715767837085761049075006843444356434696615409669286855042393537046167263968744194486476890419205043411838408214477221313431506912317900017226867275261990102798762912381037908994421594005129051244761274681277400583245434985843263334094436507634846877976741552134862345187947629158510750857626352627706622153846381236635109771620323819748096186565314801519897165831006935729242537815220611164257099959197117890867200484238856143788347055315639600829926684225946669830511988537730344939926765235722723292823582642237988437343751526103524420854458396774300273524949569565417046102077070196785753842055310322393671291645160133839071216157390156225615329088761050815768056578730297752718152964697469634155880095777064119020686476899529617698959035956346895160036942447347535327883117344495792359824907650188504175937331392007758432115384402222868269024934739481015692056046771621680823363430197823347256083748210041071594732217788625798290845115791920171636971495011609513881310776741328487344117818416977288435800954377886100532152480560819513392349122411606470661745299382608757576937801725762883174927052426410176520644377252872870591099242591604925113591117979860388296592063427688117590421007535074106556713048728866613333203082414855518878715684884721558870940395403424387127708553188366822297218948350212914399997299631262948070929936893863543724276667289175763267331129512130988352572914949842384877051473269467803124168084507312215161582680554316292747757459162630597393906278341307065366974802718270914376806281744055910889053215245180618075911318354554950432761214158283961382745191985688705124953229047034943557193222364762389796354327742254952775541306031874186005925331624362154453066147376248869429564912936621934261675019893135410359139546853626176717231549147281163986798888575985702954804212149224859449829394463138619466059378107639025639255596747146046610994062036941243697678761404013876229932705405392989190755439859121733608118889277911894408337486796710232231721304985333909563194187141712878971012082322073151228753722426154462393564062701085955095958978168100657519032462806176730009225856469331477640766032396564007981010802702313533415992866899507871554082495244132988117853898704167403073799312282963093906571738581368833383791789900866924842815021773040087377435595223521076076658936426331057725452530196563493178122779392804450612575294265829488266561499481851703246664615100224693164881896119595809627718730578805579909806655070479018789120152544978728320173535740737421770064705706155135337290211535344519982450134876055868112399976172527255847000448165023661279471872753557591809564759488841927566369502562330979564240697655968362650838144526296424349762518164059077253726989092014330565933581300074104122479005531499822049420262697610299693851052547894647150768182874540164754129696062323576106802054321545093242767449215860766705799247382691363076562454241664347957551275651566260403619250541097667866782592589517356750679862035644138037854619470169905120328359490647629103849074812577886571060236881932473928380716211291294086338584302783740213345654537722387997604543649598186206741471806688733386560677456546402574287689960663023206165247658857729382382996959324034570710012784121210317751370957140413113860320906163165293048244822815931918093011791705742341224757956270307652686141475696725124883142193308484678172465283828674248859853087220099903210595251172918866733521064852704266403762492339053037108954121304938605111852654842117193325236497205364426204357172227614781978160911756602436403887775143906658048111911399726962862860552986162373986958033526261222869402169783057091845267147539543056207022000429156876796537416610666643935945516711535235767921300292001114317206296410408123672926488909082184869504264007331484858057144034636020499395461456532653352421815379885791678553642375626596124229143158785578463954963882832464527736107720140119743006936321566893758902145840035025793879732042729479304150840730038325729481968415909652254922706339887949970594806989824806743937410717580443514483697324258996808942467464443982338428514498341945366400451385265834335724636709644153744316280027898163977105318344320942582543672210652809712689308464359566732711107213753632864374166039929575845595276978681563386309934198871807512287204775736376410149126710600585241375659338956753941048926286008717490938670608064332183655441378225589755073847990680526563600189924983219147605973465828267039794050916478945723607529399080169216908954525508989574343957045981172742853645272129301488316899545404210773432183181677874224188382058106622232197960650133548720148401188850738544462802076540886214554371374735230433334352663264397990221776216531081249339441400959890804453328541576981386655871376174140111198370041285208167536311729336676142792746497769913630181094927826285499670763837087171668148755315345955067454821800952244053979276332072831683878289756321891979867000646440510140691217445442829526501610206466809330852568369637885886543175426991178291687323458887363501586998636990131356605910882583490891276155810790980901657889024275110736745906300854649573154836106330375556596168345961849150781060525147435295213118022775110403084122607786154321913812601541700273981575257808714345122434476069890152009496211324822669511714125258012898955229916025070672209026659344021775644185358384785822419194965512000620521919132964925924468645837908821461119631434144588933367265647375811961410247397578509920084224759840516681893313198436001870639190006331904254607554417452520655708160892236112966294983366936966505769533088102236057095700648586711989206868126481921193326404169894105277977784234464080516789878304696329787834696608070235903182418409104249357940127910631277105485733894095190952372024828559197692774511096699322112019913185470484823245141983690718520862392538556882547883156118976958208285365117574036529022110140405348344615772166450146274013839377412142277569531525558862776865021383700125197866013043204267322834917922913537757707339876957116052586245758343489174119924105931073839412160926517738559695462188990112203469243484723488464404262067770703922061158673370005319333101292871515782848113204665699428985827519058844513917077571811736150051262684631014947778250101526105885353348105047074607729844569649522326718873889041225781337800514717776798312875024471898578311417028305472232575395988291597075445371998113943364954256938058542005576519641479322053261945224457820783568667934998573624314432880817549203184857236495511999433817726231652331642103098067174156993784052289067144243028777130402438813092722856989695882422434165509036983525401396226212791532974354036025124773761593258309184091123850369319923043309095600057502685145610597705111818024149176883402172063483465056371542739682090521651764247073567115571642419146239044418191143570902439634152804315187882047834952363746843919877105421457325259028782772253665644093090199332011038185782689091123601867409502927670305019900103643875471210879026211906303512556534728839208317646916192775726524960772064644690314820504431757277846479622537554359862781570874305125315794781957918532528047024158823634435233191064320714802008576870923648277000135201950956526814495237374520671817199180303708142293281241642986338259642964237684580214912840078099642658110845795977925372310330654022095629187640558530865711681957428458938782325394528485663574947633847418570117850222711576502779972617961353197830432088523649097690803753783750849141195610877824634609897239921968393758044468574442262593909764624500551049924522915914848604767475445730717610745773743920352857970914365804163992596534358526543219224512233129244332388784516732759348515132181578216308099511613771291489531292132910675644215063791797645472166818401201456050684888907038926829660219149977803930903203954265264210741609086932686392611154314420328179489438810170532612628947427264624197997326112021538244291423176679483792478735110724517971832675739832400545492709457159788677493566135439317850916362113658616255983685698677704905998583603744664667931001768105011307049311273439415703844985728879080311158286148511808173682908663328305339051596141082793989880479761113479019980292278601564704176995692492244038630660840584673709871996264542636155408900528204608930485183257750012036240545761410849853746360770867934863790957168145838676509819962075404455222583403734962251256209095156483067775809584635137494659233584415666227057567939778185887430011746906741290989127742806701050114297381053382841481323736613265735640281719382564988762565203704864693855891629173041004970249523548507242684275804485861169135129101957921721307426492895988876126639953642015405375309768204454646000561529783835824639684795669782150518730625312510948073914869911575294307146437470509852993818055390494852785616416109354836152827205308077522570304081988535405381568439825695452235410150387045584982394564160356550678890230813507449533071729975713505726837771571237500772847681273142154976836950113483071197355747034330229932779728252941101176468736149321776048188284952598424714576120863500777521114991802454984045354293835057659237920066691810987757736051749793925693089978591039065240149537324412029000001408281801382122926793636270707219836841470299203226137672049954878620265753767882199996092273984384410051695971499715399286944888676661191996554439771547890012839110611436948629967763603003950348570353952886864730537965827477209610458800050153788865390269561082827457004872233984690627374920510004937909329474068577558890555948506866758596294666203208470522137699816058383980623894551805212805282629912175459382939585135612386898012746449495886241108534156139862862693854714040250771427880616056418227102447085849840290999855059105725233764650088667217385308322975740385093952532299290360463733900180068170441107712152698263117606619182404633851902545485904865294971910345550441521063703601244707378286241784666991115131704685623613798762384442266205445328458959928940004181092662153958038857172970701284331131857035118308836981511036189071472138238219671400637611550001860911457722355290496231461711010265217662000283189091604605426826539022632412579357812550560533436735811754645122172126174590630562485002045770921442836525042844718489033444335504985336297648039200257304703847732816112665499738495812892770066736085274506153725914249478078654374058004789612289766180941076058924652224167613767710761474925398470729223636821888674010082149673536066218928545115211735887763656699991751710402708275428614129533308519489174250342434541901919341109044997857123056028526459261581113617273302798558881331819842951989351700675779286553806298563803886751871997427070016257027965559448257483215606474003717874666324228038259396086865458453114744969043788352865305356938325456438477368025264503979254309569930075753942075557748937279916857887605685362572244653289800454612316862711487713301444505490477472214939283069520295719862278854422245584122156948991871847100359499870512995620365930322257626728820959703003017622792860079228535292278514808892643591658307542158258150975491923218314566130280202754510637414396591303488218514879165410644552421666023824537064204083783700263929651886497567481324148541537977539980841074895104645212704204575331312133467710072893259741085144922767967768433599106326488990064730571742381695651775779985946518089682047796580593100921420684636903537152169789867811255992938919370407515044939829059598487266463936790973351693183250920078047629102333594611877053325901018240229188047061831429172642476569183203252666996449478251168223960596642907907211488137511673284349654584470595750570365443502945508147681511372308997612496782537498702133556275859803599090592443916367441308020095169811418505250367815000316583540891191578458001686158429626206671362086143277860168643868699088244638086301317724434080998730298029335493754617875826525538302255763814831906489522169375523734282071336379261994383485449926513681788687672962410342877663578186998955132714693783128828394041352147663074160417693528763277394218735313827759669890093937263574590609371450640108509634962121625557003746537547905516862520807946102441609617605179013461969404578014270445597483902942511428008612226631064411625534374293344506174096060830923257935664096033585865234431212485890236656339182660403927058832880579940984827048454464177680147723325218434523601534000199357774373242548319546225859013742838477613218173416175148118165369608474857085979598668554880588915303278341672505741187876660261514564436864843346925962645821740936753248414189041147162589042802625966615303182664242194067054010754625144521318838133738948403317208668053575894986045967061031774541381993185678361543819278707548662230979573790739105605287878340868416628472661156856377272056669323851964754395990755357698718706201807373863061627637623526194709695370980363561783494018086552007228247429637401662762292563743058139572037613935999313485267346975908215152981334478392083810052987820874579516293029549490775593973894940371274461322196879720540406132999764487399696955280656039349108262301636811186677930599378010748480545702617452838750652407345214106769110627501289621680678510515075552293275642492877168671855474958158205314610967622434144087518840010562678145274423555710683559453819874969565511901818289922365950436448238229351906549666175604104876653456610600665723154342023768370699306137953407221706561782770975863476456096706826841586375424484392789883827431766328712534500453914770615398810222313079367788225559929219331764403712396316407663575380510472498494616232279589722472750017791861544383893003427940040745757188316354435549710167000203737774602043620847928154977369938274911496315384076037704071403979118940932715525937344075497969889681640503571930624181668298036264435371943460357935353202983376730588669292527746510286502883089457196518053968181259921690403716784480762207877373511511362907680102244955239010218202818140114155620529489378459689641310430939957171660425522431206611860586247519369948047248070009768191951744241407757574293200203257820970581984108448759450018542953617922956707999899539054827384340863595121386600560515165720136587443769581710600190186597260300449402816258683761102689313031982969806671930835055878949082709132497098988153275984235402458645770714880990081656330058351432378209594228373760936264504652940052284295302197536060943149093895177284760930901529789430175543375436126918733059130194103193782277186126943661625204407152733829895899525122283041857842081307529252229667491450505133275221081131710769067542015386347464333960141351820412379498289585799617294985101417046806201540925558177312863183890176357762711934753967343583282818014254684594933124747090272923413455876803809523309212242494482763948727194932694011272588847180113787901388282560140389144496422272828015943046773139083598248085585883136129659126787231666924924601012297692904725553532554048783936412002962507288441443624740126798618061539923340458667283874430433110077945377190945242163363393457960078596876450657252832697328118792533798699149530921608188462600819905534931423534690846001377543404508268521382216259688690718354540955652084769541633269151999587252756344755644522226361068340537636148013102198534482748987349591851022872393014336974302235068629904366908389208150570034451304159524507849711613918293751131943438293632277487510645566866429839952445655887990012541586506845881046357086779889704348141940237745490174751614031775092600338500677648484826434729136821100358524501158614682721128865239899417603086249212938399652683702179966812199627921836169947863209468712177380416544216791837463737003622974249878244673230572471747203261314342180647717023040585093442092141857208578857802766881726795176045325803280020325095237005253869123422102993855480771602835183241963589653328656154890524662780893422667518449845383375447038663239002731387530140293428495943706076732767683598707438554290434678947589162348840512658200099724290295543641679039164100363693557659390182660754497656797671094465683940562160263805052762933704768904581998161664051957538529857913960954250933432083865615197111171531401552907776268552299935243629651023359566223389720931842322830609553638552177177845174235359474846314033746898684042663049496464786801418512820990546570032122560285801465037470870333536442390303148084392829271827907581595769196830399466551535580495959988601950176330323309594420919614487822402271271070949453851329829370713784349012819724612691933744833683824658893406179684232738712660655388118376849411678105577274977691639161415417871662691898932342357192826061038694757002827976315873355272485122246661844933987765818817200384792609283979182786548830881359417259193578309415551918038245857937786653563112590548979634943647904005501254456662657135944207715803417813671829515543097290268712287044464411752944124000673800717519833175991792056712483861861480021264718367909661482621746659952087086514152883198766843819756597063667356768110865570849175535472821265062991112550515202857254906745946186238224664195222143941346434735825374992937620220587172564313685461940742274752196252533752095617643913711692939195740656743221191418507455957413453583082397849746116581766656123245582254238761647335411057308127661224886474714670335561356597063365531940607729088820153497541688248543546024818262927711074268202653899784264923767867752607601341427732443971408601237697162607622116555374492463811389153396753606981411116822284997565044175656099822750913602320178819758055578674542750106211434774386994471526776804480520418362303086298054876024568174394405717920117494258042794688100605999225280995037223642586401783984786314246949087508463953985134260687307783206453241877565215040201019339955783938397984689578135445224692019148862541176955918375171210719335551570835916084230786427194080136925583746252812588670569510283638521884361208616973794449965271337991452139886880471888706853674334106155999381189475906405691844226948681158240924668680602273870200486146639095475469492185129937249254779816868888296960732243833710549200276429624048016727229874501458269792138483420748224922391281910450343467772618532287068069011973846282809575408789077793497936723725550391668733704947606141349219698651365415573198507903950307736653597308710578414247271392210248895793259279850917013703515585992029835242660614433528301622095904601048717748330345615840940419887859012412964931762494823796246352944715503921353136122330850539209727030490695017197233197654000682813404942590666197950300208550389865648853494086391244279461315535193485857631548240574937621195946984565766801586398187598365376738317961019490482027000232804499347747640767784942915817614024021086806800810935932467352944493880416867772981068662944311557482179213732371172497746850590700984129181873349833458727797035163963723162637733109982609250404516955599840617522315693245356631203675259855802975485128069869225007009386522943926026701605975770679727546472951882848389323166347184119146521166170082012451901041282396052079356462143844047665805770083757132116535879531142342441850361906603805435900025669054250075628660724855901927801408359537397404579746326779325745078325292871321734145903288146745556687865707474234266299555283879854476012717033187472825045616403953723295806270660450223923742500760130027636667563812867107402717868841836966497990649968420018001639455476294158401290522038539824659646509607122180611889319278064909496864787779601660640721800329036044235651845972088084583868410751510532963104751879780520675058839339787813417134601766627665434096444808609508972900167426796178311292794703401641798651613978651662744431256731188556979782628977296925241047366909973425575590262627621081229818008823967005849186868353289105722708286419556185410145768195516174646525686326240034648493075264309449519783869688704823271557680306759754404537533265088202157976880243656329239190538534576155917007657027624702494439196864999310093198044621027049760491880551974394862066583219451973263444705868257124380703843068225852382215082237946467508007436112259274988932223174234286972187167152846023119668614013708353039498965588728299553512518105655546476863310105624034806234346884310644338201686232979080294362378678926020284632981236795061902662118867048732808044288896276911248116652143384799747847734270184841883309928860148652739825714399735097267474291358557831047033127011098312417435042036153554021392789082609389218464856285023995119796490800325453046876973292757279501221697451181575839429495865923480091590949281812233000287936045598557544701934393411863654227732352035877604908194488194535374631816954312357929042272513281601334069661545318498228845610173374053781928294568685129346273965701582517043717464882438487259184162667959915242061204284624864405390723935945241038984173163249811981144195000796963079181967629136624040471891885096931694041511160051183701004757920491710991343323663341925309688473942706236479450632229245226198335205667297961080311844004245768592566949612211245465569746905150210372810840111352147245774661422114220192250488063096599387075026812942086948123959076804972322799094072272121863981926222204163275423056518420897233968511161933058108557222213476312958430575085192531582281502288274914472818639020230273594711656797971995441824251095657230474527005493953036450233064172963350481129776721082587212469467200338870517098096521699529998658399958013646974893790511702374490143048972957191776588412709271438234224977283213962936683489334363466759337691210470982887190405889999281795565519265291798112871415175185637652622165778777002008446899688161531512434990881569200353513289248620643175646681796836800014273018437469311684164461244195625725483732469863637128664011970497829574367040361287088264794295391304181275907083653164590569849354986884256750433491304704049484001913480090920224353295012753588061663796832249093903171194331258171374282045640216651081608071685111516006318897194398728705284459014793885504129398265190010116305775237382708492807232025329203362120384783823015281459766569503374112103593465199843878517212469741055188235596047430936000393094691106177579911855084935359869774212612832352901801550013039055062782241643001202572781772113177488014029494806860569789390794229456136481401084366035072204376023831813170633584054632676427216830400557085325070063774650069600055072390936978603944838121192430943175426250578012414582997243818935292697227732160115072113494046421481512833901322737961100835787628055709442876025988324107137860127031337760450544322794807427561901779853044446142226837965106936304143766257300261046180094488996282314251702293343010659707986316862208978817374760465831968209990721496771002847896114697345644171588344533388051251339708908995150622474080479112219722513391792136185124547430914422259054020524777225326394815391510710977494652234455457336197626240243996663259013174613314425137953152995333343844606018911582792318832431955893850124399227416194142723965709201066381874606704061718755594831322160146725410423007542761480765383473609670443925889497697173873496724279852833715256322195505201895024361820044665539667457311227355564806612753481202332342514110179680442754799556748464909384342328868638317585031283508661470751180990921090861513244321157359898819541767846406772909761198254003642433310860629734071529793307543325937634880329298621439345882874806651968579228647329603948098651516276221033053413395701252625354006238050684687625550268609255778254820503987519755849404854746128953451457097333952560424047288130442150809664204801834444263253350014460873381006439924756442060301369653160523987358777574747451066293515007292180215876168908319553547498698143923018437792753142311469068786493347339548185096799685102230495382809524404439775855979692805037694804291835963990896677510623169505469980790502133104021787624204600322574971910530747653515666645012126539789675540310012338680082707963087535833907681685942618099955291901454982579481979758145943310202424953728881437434857022320604922200474303464735856652574940585207152266046134088682795880076145411021258967715191493505139845330140975319643051512767300709861046821662685624091135239037902541167344353674923328429006451792321923009966406136916434511763919146281402623218279110433383473933550407164562089028145716808343426235368775751636565559210712490137116834852161133037629533278258813343738439413510067932776932068273887677418491557340283807951429965649617570060820883187212045473232463470099842016363040139718715328403457904967399829370161202303191274400736924293649603063465059091613201854876497097648748317708620012587595025397579628030565341098683822487737701075855040255871583018657740468149874848254494436437359949382926465596362722944169441494526638064056884366258456125698375904361411950361315868547001415517480577187638683328836023434898314908073801376111231461821861646158401208384037582232983502519787754051575831796779943647390546436412549275949707433033996154536346000831152140829119392609057513889679220244353861426049997383813886600513117842539259025267492911656061341760833923663811390882602280611879770573130377168383497088953927519805812363455117591914791601117487481551443251287755689119087883728356478305182444936706471401903994150974583212356017388344735570955546181607786416540743878898204475176957120149044062130535334315214250389758435538323775278745843426767743166034237742381668934508805349926855518741497726625431670428530578815032419210541931924005341751328550875548431371562903176794576454795817216300370089831632777817800165696249719803470386094211178452417338615531331448721831846363288530096013597953113753787472569304342725374595500307954225878138424329990013345619768846938930559211363870123791503165622784529091705810373700561278931334347239981736982640968602778941482482941555008718205529132370951650776638248703823638810427348378570345262812326975685645614148039520455689156002918208272264812592258484002954005132625394033159855920709433024797725715846203911664288336630698052725795574668513543048069878697581082973594419709219650013483458069587337268757177311628725276535821216875880893399186523916474654086833977809367971701609443017687104361991353053606587128313167083002574116371680085129905399856700724434966137591685461816144123359636099241465726988738620518665520714390954673371641563446953372448791937635939516803258585769910697639923525902430599690049275367034622914780218520845647246358388544416598465398876916099284701197022927575515094948588156032769475834075040601246411789922707987943837465408770596326586152891924745628998958548789899931081406367123912188158853828476958362155564744566920128503105529120408096035351891412756036518695320779465158711058522316087906525195843319201826989507188855296622035711287718489674341321846467122607723897021388465924710115969242268637634520876433519487951670718176588855522047571718805957665981402123911016884398676522161251708458053033330412558790674248614695166459915757009184111507385045445002774156442656310312497889012878845516789748189949276960606627273672086735527345842330036197904452151879588265096319869827092038223626297163229306544665382573388991409801103180553477449759601491791008267031292354706376441024390967035704526019333727328093276293287235381001959510989262776072781723857062733815638481804060484036369967710554464826504176060775626373481195202514878917870854733093007412514881092528578829525893668451013524156507380223061357371115113884866395978517039414800924337086647946847383143430311020159564311026683414321802295576912432657416379836826067663696965079431325061702787088652784721241073784264045210956853154142921747083247261996800761532754981186634206155481798795323581708461453014000947239519491764111716974165390503251495939962541563182222164900961320685662381612812267235426071840776361197165278276599127756358079541138641248254228761384122164126257509310500152671671266562142440333279532658971068303027813512429074319847266557240903850135414656378359244352487580431975654098575344707964798428302436435757913273155403321125737371516935492301510387043809723300455424393053509783298575075965935488940748891902624449842417573606689962146241475093496563480261217536122289898523380371690478193201911973074512845399598646738324130374124851676567126614952465636137330402622405636345404864337193666879985241422295441806993450207578900093050311447985017068914296906282931026719130457914624174303130939918723742657535054078536289825305018756905218199128722768882974895320873656376656036495301694143495506846298979920749264120114888282177465547502385133265759299761126007999432510892036698683414727003312632407450582211859799440813109945869613710307096578811948514006244176311908362971187417851296489563867437831779277796408640164460057307517765338005822988111732652136572699244648503005202217542736985710536530696362421668739491719113697419039206937777237159075462420535085228060633124006064117650802221724427640780799088449533554166104392831753703941914801053908959455284962346881830821048179874951717804810643686684808149659753739457495710466689770591082938614015173053535293532860939494152985814504566338836760104432217359598011771929030997604076901058981941376832592811224269507614794059819857114907550714751630551681936708932002323097935259956775966040240836472782385851808672758026247909681395096463642261856828306994202958771944213591810202336237576930224180874089959383815656500434022370389260405165949251812236950519721081084997276565025882910980696282503932306314532403454132967424089642519342211365945298853972430542320764172942312636824631700286139621623106491470166446323900700858255823689695812710218002119685048263819565261296109736846944445324518801314995566645461414296784193788510598189475110204442373630004437171956889739269371726340636186150331345961833061361904746285097858870221329295777783778267631134476019077141591420292176419374063335694247831331767716345550261681027243052069726812469431189326598065691778791822887787541190314864986477383955863776767460131095396058261871785607303335287534938527622727379156545447762511569092324877642391721683817652862580899663649373441059260059272009492594751674589299001990662848774725039702160147648986005647209419645203221698586704222070893232401783661396186722567300415759682555248222840100244183476557452839105297095298811495278717475281782575026092886034022504933099013281760549564260738689408248406702884380603895558358882926700610335800947069499662106888728221415568266485414662569350959283590424060386212318449405175050982378099463723702157178820990061043952874318978049488515481768030812003912096465658915579027922674142963455675122729018660411914984441913507061978844760676847252364093134749649983557749072301868971215915721635420251750467064914047960022481776493635619187971065882881069648216615821461335388372601823177257171433455359096397633172862104282849080196884483915462366210224163449617228988035039609432731924630691260645999093030599457755779629677629798424138875758026637713347604461603750536916106211112154808472657821945106262312749681519757846937619871203616751504053727315702932292313916288056298572020213888261030327664734839956662196510651968228290590539079069072250956581521752987765175212788450286062803946504527483625728369102517499803289124841254242037056235612946123541131410928258326241312453548945940058160274560948695446796729137571192942782078783904484652650198908160337253976191604464174971730685325748049203500238825789132281889391898265471053823806110929983635826764102434113684767980349275421345078908787444922142920163274055954433691446306875231933662282557109079499280625917989834051633496052224210766749424246910943320101192167187308210546404129966592251134873404592985368710744065581568673652093918333650695248129401973199960163272624202871183479102841300177900571289388431074280052840416840342985431647895747287012873606018223645350765299011185777537780255768885863189386427567915975630475415652651701283370409011059385401164295320471282102956682273074949929893853609785474882228032469498130492053130735178392221368374072146638220546456899515073097875326697162598764675195817341074258016929025582617796825836743043110719158521039017765669257119049201113185776120320149106682880981188171340714683059474309774613321984533047868665331092397697447346019303729628962473689522364841806129317635034053133406928232734939314900212503381907008212544974653144294405715577728658796527946297931219670269035635158633077926866226697145557374487651814686886221428800896291427349151186943820499264952525044940957532723549684790652588384791369261311528803611780743485289590653599768366605838744881142860462076711868050241846666519198290363860760076138747171306892773911725802627175814636213995411322434110575231939721529432776800398246669239030205586740709649811388915929623175551339608659036069922589476837428446353931221986831491881004979301694998513241880956419271725317626412189975831336956662300113225486147001995334400941005300641585460702450748789822853536468389856177345691363328983545814253156150863557389809456085738661612099933510651628371450830744658079972209485712648969393610825015258134038991107104118908667200873864614423073284848171500366928995513414384212598336506120806895239238716188368913716630732968563197399632319878340715232635795155371787161790323519771376927878941235364262737106723970941931306335308911221174564109934373226674802678213480574302812032621161453788789258465576814153278870346897161913702957839709208930061316180547883904281663999290990133860427081566973210141468252733181318744645527695521267603676699387491799454210028136812367760246877834852260466176644538638058531904791718435677346932045134948376815394720044357648894361362888756148605780568967633560815742345150540087981210033975269545043282482122206471193556393511225419830190218890702529715048553039997843661169169415873156896628934364918054627252487380039728286676673499672682826118206045061576091050776951900444045985098591527406776810674172423429851433009889028854716824672210947865168151598174121948671302804736887721733843169039120864010075130735702914006872582794097957981343041400489134545414090711805785298643131852169236621149038193769796898294116456220032011668373929993663394899637552295048335622353914231423589875912408269282862012049535684528158169314241882973420402806799580600574546872288232960654304404923386628400570191349519399374275667109686095843636347009045357754724364745570107292284281906176985304004886160369677170334851993623293782445701667725070553712879222102548108727737771980453114743224922186925993715406371409159612228032307393279907340195700827062865459865810648129839583911986787499346792854383258258937095533479368732515393120471196510915050943255302101199351587913407528291079125637970894985800187012434600416267820209022022078204388244716744934446672562975459637954276505262653857329991262789024248820170182291626876669084026479271953308488172106242083160851976424335054555054876647849471289650322723329879113344745269088660819482208359434935635598923617050648919805868023537769886506401697974293581821225268999291750022724999977661162113314135213501463374510909502167747696106929681506332911149280212947562168689661823097206466189592501824086214795128725063188940053087593847744057569949303201976525663759580109810393874507246126662166744268260021577783268621601757339109309045195838085488037685325827291880399996118013623718451061284284946379650866136210186493324916091960685489725779687554543204592965780843635659578267874525814723559958142071475884948315732856742221267455329121749790114877673869398538451091602697059512296708225731227460054268386567815321219421685980696410730368963709769177865666292927056951089224737278419935672166850291959197906368378327208984453804592749611682346086304930915151848771191030370346482118068118045647858518853147693581977883319843766490229430627322549860992814504405974538537799045203336214717713170909769868267305534030737499648790322406132162340863522451222795348352779940920066478888488608914629349315074925903976772169770164993696386417756548371233189006116392275508268282518156939590871708159993167354157386852223316518182771235556426232510400173087996310118741983721637530052984739303959865139847437250433162256848164744328782012764215578041013604188314574409337175828139908987729598527955059996686021139909859636118137169039422323464529311952674511751177883725722085497165294655200021394213869698389480996021364100243011803557875732675280167054675021847750199761849160826238940914457876974287798158290247788609239401655881175774710790675370636751317616716787460488881544201201437691726773081494723320059830518738588618250287086943905913471710153548979920078729550677064394263429144711864374208904111783623756244321191062444319052597797254614471978255766743405225480876113813301995808776915877823991742548499746600008941549846001975150001651607752214869545335108068742976116627346807285642994546927587274496894147997833662589570886952515273796548009431716987326510437887696231386275901589526932861093954528667767850056904824747109837283373168663675466749068009228146426027595696917264593181271067571746832086327600211273580414905981529219103963601275728369977003678431238019528408792261349758171112844184321348790239744182630821675584781679937279987670914751243037967615868329990282303330557662627783051035256622743838767535744191372621816270684932886042201645343269807687825507447209044452512277791620074666033511469149246843996669513996137352044078850702941951201218916996285875628780765306153667716888171804609081490102718009911893303827430145166758815038493448090666119501099367173179991989526838110451893779329225965496664356127559505279128778200532565519342024881445981135632335716739143852675376774378818010900447685524050107876471038999303118926502389660430083933203288880154541773273116374814576252588941213771564105025330412159403174810968614261900697325811184945929031693867091934196090214423285936791196731869321581716096329173124764182970992740282842328380346205862575594095397765146773366535310090456617837412896375927474858983872982440425529858933787885914089464581640773507500251603381610452574370388580499749895369085382432943945700612455482930524832100377863957946492872516528726400012520637103990863465370735781766952177247853939311610129038730033480528674659058123290225409204127213366380377113896528536280599603468989124262720027549338341129965156349966696483550080325540819158369052128282640515551754785874667112039530726225122762589941565660102091526488884219602925543704023162333150487202406466954532084788434099164808034896281251709601178409778519129785611108429433039613680900417064782261953954605078389546818705509713097863786041648564977994343806392750097134583017154850904703643043801704988218691647266025705237324303975901656844192538778110360175194177280947223016184461263176698972121765549217455635336411079192685223427723805299092562439486904222202559336845561487322079572343655462776587107129440135341687239920323240467300540730793956564605078504729001259425910254122243175397067845945479846809260226428021237518854140109001725855728707367116333340955284421058342122118059156820395422807963943541158775332178345398217919251795949698059839886263525389915950671311868125485841724099329544995788027367742756599500404260470870536938658752552723030092842836874877511144173186125180605106889827736223711314649369436354242355708969399858711658080083033649951528157571241106062010880485325401307502563833752689389196283806652812473501820851309544443121294574175007937735666913708235389140504217406903330907666085065511281187742457693254374201035604412261847127301049969850241525669223739487521793918773813614059388001819038280254605837068463980127363450397303178460532092773401891818068366536962907913991756588096905393526811642302658965735613302008414717772056675746478846885873635496871439470235944483956165229075742257760981713985313223573801202524733054070701448691321401905543738499366668113678536653667745296516152276958376309510365201040526724482811537481622879256244337238475001675700575427689862714955353508762834844707233510962723229543244177998630928034054439918348062587964258371942743114033318774595269026280136117026438956446032378518611891674006825179891685345940123809681376687227869180599990540910544161864619768216896550855630939582544912204276559546642721421825823925781051183034794998405367591917924014314736496972222966476054423679325594710893793607264699140526433745035816750257459901590845985434589367274169379383240346564106200181826391264560201247009270707556825635212582361757754444453512149189164956804205415245374194329399347165698921069792332223500192003761252002884394960408693557374874255209101072331188755628789220002471343944888522289322296540029127204609149263959399795282644018324853057981094291066067710995099954453302270606937861141394208566526854131851311613492828256930234567301693578533175007080341436751039381858749121783684188399095938066623815158637868175933335465172585635461505626607271124804704412355751980904575885275215564796699162240203196692602735556224936749908299965869029997561049241464015011042887642536346772000697477326254479279025512498648601924908406768475647188343599893456255935498723837526225473992664821229133687586603672300292765222931534209681433953502447662456513486266597023185529433735041639142773247402614459996928401052280029746839394245574933188847133116871228543334671048694760599165492280325770186120437804947084199687289117595123890111013017766277550574681062698855408490438447464619294941554508303669015761973908633091450309201659234422332911720270537724635600568042678001845144270314233077407751925895017961878695601684485746724393079938618165112753264723700585626737336552018500061292000799659201539630449408040742807907527959953106508639827705355381816322396078960325779323112964067958333390453380562052065497449294538804585694245635386677550601538215888476238991860887605444441698231333776926970011908509218494721470104562145801593441179144050487906764675045528090900366351955935380292361237949176374416928226370307059422436863397002208487299010344807578387140590998043659483266489252210119428469137526441769779650203309386117009334970418888990031992989425285187073225439726189090124546947699415866508666855392404212649146763307203169626839133717057395488137724128500224774164842157566079292541527398361171787229069216212865160696682734905195590630589397714110680820804240168465605181709165043943235867899967723467375970105457673200278305908223123460264690797831978542304698015044327489269038663837752816541636462181933324881929645590970639385882613755463003552354694656677826145324960701957551728739875220733339558827220423521078483306960181469629121102002103157988794850514024549123688498952728749640535053817193571302855604443576038023898799874789139810417476270332129446312483820215009174572475433892315310887095935080090294290322467920882705628052896560838350698265757305846016083936298886469221882228131602055693452257760446550252580315296303052508787971786841827861274875604872848964718267762919183441825347270054980840527362678702181057712876666218793249597644874312900524030898133326882829287099618577864902125681304493823619856660271805536820564266247509225519390089162445610350320491417254899976774378609702309583641835079885305566960053977629871940480441260272623735957458972049212063077625173227594175178912304492250755104489068328553810544355092005271587253053886119482052381248020033124731087879965914523943020993088071732834885083362824978913574381483795732926242351771357314569029181342827565751330209372856354884053268776497278055686625717289734921394378073392679817440153729138655174626653051704687153950334880011656815539523518260927672677918203393741008332657975985416480721248513965473888887546355538654351105368709412998123011528619183927802156958093685694194989407842035179267188158624567973037163803377944590536541325328653199819560775568270829207285593046736616688780469943221047151827075979901324903774300225252697574276714874028151064447409838061863393144224738193622459429817324534080786734828245787651772009693450268330069416799536253036731976371136506380579305521305590380169921295489942566919439268814848092588803812764358332961218778899852552399780653753200543242945167555946752560928855243965232925588249564367570362536259056321803595771178038707919942403166102286397322068710696369888144912277772635980719920132896781058938945437428146052817641595380436571169362833684930496528980081929336964933079578637337968691641894313603481511838614463951708095185163635105632452716403816341869825004082031323085250069276862148209413084745157677022766670571482280670244811954846459947457787042727883725416360295579804130610210636479044133557312950284457313459531038740257423676805200764029317343282774559344307716127233619675315214725631867163694091372225846094451729611223343366721061246779391239847432780044884955027439341708832402556235419594531612768481777023370280006672636982116286847676856437339269315974063980695224373128336435786452906357045672752035144873330821169726969783053073080918644734418467370075001207668805565768635465362865813485430799243718371862157250055809960585322197919044509633341759548898828273293766167907100211180607402348157459298135084621510826084090252900575739426361226297268408193663665190630165478858164495546086323626888230962133968942898534534685718012725742375553867894256695240081501793890922917695836517740575829237272167908238314378191748129603735869083208770839388225638463081537417182573275655265876105004983797180479059806729919100858181445606974945865740422941834176445847867889884517005834308923116302645797179092094173816431618252690618376903975828265223448846128155812258295679365983838103152954912980760082268078459366448736196560257133071990238610701596935155340840449838801267146356140822866052515465409727531998707150793781315860481981402162299274182143761718304392795795828080733933101693599428035023675160877961463177716137112152638729576807035648519406859334841679491605188981256745476675397245680315204772508089192041108327576324987532839671563283900556516066354639806459582760065492201605259931626549370379403857765069644779093365869584597088782864434279254820882963208872534705746528652851727568261343843475119398511785265639900572003515595447349590617345523785644882532473074113004676987695474277326096865777530728913030604090767007376463861328426522998082185244983012400511992526542648069357362180534375058116484944568489124150714853075273306477403702120943179128253350654062600808834414221764673027734477737502368183263474192192447318592398335259782149813817198444470701732035612022804369749535683681032658008564726109638715020753055615795247902909139846993672118624152995077346136829578267431067500408706976309607965293071046522064763758441300314840035734493932933378811989433960329211737528648285253420049773162187570666567772215672914731852103377875607550857124332533068832696411908389573180855404924448974248068412296011444995775449053497654517559899882471556889310112130420696064412849417075457221201436292530199300112105819722089536010146910327361358962635516741763340627708126935449575816252319778543365885154941423572354097676548258748225074310959794546472085641902587738660647077705345420678592621896890033107536654108400484747370055367744614621693010575627156123087469618726392344719743448590983134139076228141134716152365222963575822284335175464930167499975190220299860048014496407906727920462176616459623207614588736802969388414497437972259873252725795379193644952741342595900568686617646777245155644101142257134781028087208916147318092464843246613719531381608155196639323880794206130468415354881663035352214668261329745322699553981776465503003896251849154228264407219440021946524062883986844087076495801145934690902445266984518250759651765410504054831323416573850344992402612167414909088229262967200955692462300341665134940035297758549338164864174140371757426774572260505311990540278826126563307824566377601378962470449666744742933015963333779543968725249210186841728227175690818028080528221135272357734354062660309167383087883101360539914842746136491647607775164525473301920616638672692372063646184607967396054267516905297859553897100807629307768061325495283098195465501055518262865135044379250243696612573487103896886106870130304136628990689337288201574492345809206643383780467977323938052075899199359098827613728627961312447387889367617171992337552919951184275646354565180848282603395756983165792218934149103552786137081253077380156809862803359317233254869763941964866944428369285950353637967540748796118675941730004905669753946547849779773039850850454039664967343543069891018381732099096599435965940975049409137978309502253326261502164527212203693708950839753731992783370581615532609649808201880670744985037176208712910094176216576677174356343438246833870143070819591239959047454242993531946857764647792399885733603276974609624226192577004662445570185020810013423895853119690173988617896790309348463898873353506878550167487554105618498073811464911154785970535266171811270637537804087791027662245568990554204390842704230330939538286036517464298059242171385316227813948934985485520579308417473020889135284650325258208715291309971948247988234507294967580330749190640620347528758934020034250858516708229582406757379731404690258198190367374786499946324948513392518506157322999489058103139275843591117146451619029197205700321651886021672955338279154767891963153038642634748125999185464926747935301373504256894992422962867856085083994783136748886460501058598115753157897913323288361547136959458698993119348830667388525332407494063826127382308669620996491423673332169722296331903301482687483872513193300729572528069736060000719398155968917844782118617048127238523528805393098649932561229121420453835322922340741138663978302166425206396775538057262657492361009978237260397886476894838419513278147020054475245383862567049793922093592250016366063732734514325894261947733268230525445191079106449486720811684100396176114614592054226087466595883230197608664528598643401780483469839791734662605103507457446763128861030678935973285310567415697997803006375451804919968010556991641086892599744394945624187452450338864400056298333582929748196418458524384964594669964727233821274208305101305812973268438445059457861073963645606487532078733010718450225569035680987279381689374499114568846687766042711048409669224677607669824496960714925410173275000904974139211225198382626266747097224473254496075029330461384074156129739354490765790999614560483849064609029806666650858285725002116746624644344297868242626327529523256944314443062735846177909575647838464366919324432685102209216118711283579773529516364562954777769359533189800189020132436749747128755750144959000541406782670204275676663153474965624399019476199969671517238620428183907024617061511247568448315811859121022055001140861620748235499363816987274453031738320727637351163610140144724848597209224389341711089400242999815544281308566185742043833096989732932933752469349976443461480841408439344821158452908792762239497285709855502322089519692133077727764362987616155351290480064275566072423635531559474961783094082127702741467544952990880948761927343237870679508561962193599481530845034973071335212046327881894947644685413780347312038977690558086436440783817446699340461076766494756741533233918745855056781347046771682271602100691575641526319945253129161212981399526290624507211182690815475539001485817905192451530813936376780294905800360106419140306535191151652415341845116669502607393960499917275022931515811569494057125523738571536324619605181262930796951905069890545973672259960310640425659771138608145910245214095216921790240552228176729265051071484873940184514063704091567433102959980179240587100370042081901237798291335219657648226430612388963100797329632147016039877801805545495628716922639771524840142239336426564703747207523211810458118677641292141993215617367435019165417185359198737248092930790574766683258414814929542623398382762173935103494846608630993707669322661991394338546383329808772965154603202053129734640832867368722362361138881293427797253047718090802206704748380595447908360404621422745778819180249590229325605729961229923217262357276555948250115542935226905340973738944876947517372994077694869633902886563244845931827413319794730454882776511092310435893337034865914380283578975817486858068178871244408991828853501088482185769524509958071429564482800376908252312584495864364991067603638044969046038402811095696038306759311401889148166682826158376694595678500512490140317617707440839643989247266679353417487908046592211847369676129455892862918897922603863427143297110079828679457879821936168408692018724770910540837731858910120065919350256413575526410504280140996310378837234064251202553272941256363935072777043486086842963698350478450115374292677215157959359401047518573167094710118509533002366196334557745956155379538222589450555570351286471340338038073807840601672276085266519547445006206728192883831255401963675224595813076470559618969377048358615377774900856521071246560994255844362090920597190595967725417072737287270859536619271008915899990794847925538352474772727299246730479587361250693414166251299915180019050271917353025908304730538675844300504629361268967879335557129659006560138627350914115105731581619944451416279040799803588579819314261014716837421919209770990997190795560118334349960223792172486192982323252571250026035190688496602156001891218379650846505212453842287012153506421705773899910904486368985157621674469182749478661732128795687049677227696420455693265680265820879562639857061091501943726465464429341769766893487881875859377619287860280070099725737093377959080410325765958892176551693019791820249514533003854645188441143049490127311866047698067734644651551303605839599946007651907929442789966170274429907039814968365225402089707636365263681930172247029959777145000346355352497289064147039108305713232706539873449161148550051102244169262044653346151367122203997258111313942504121556022991847269656272999873241828119989157327341344356848053746263999651992340008172812913790963445828645960519095892641320855019355119155160479264215101161233650797741955551294776711063709258947926802948729610709251690516782489413574322753861178611696993467312012932636563287823687639158879613405874721540904673537362161712457046354353504542518477209828736504471489505848172268808204318877441704972135866204005352838446800885301876112397776403076568833184630848919745137967197619363743421551806374541600696829318400856859091122395138302796090254980582835552929999384689165733439072710141571862096384644649729935315131359547741359662152198049149150864892523567513102250885501738507394444113259441487801728714076459142784175838594801544272379659218786521466334324744124086307167468927252762635629863279358021796094398910881904740293028233034070670216114174581574372753494498044122189150217865912627766119783474123958798068609148634964788817255797552423419696103120921170146266542113025646151354023722359595308840767506507186270575000532887533970953364380709864850625508110334286853597163041858976781169272774027655456432941541002172480176436498444047384035504323472458465215720332831125428137126673070269979462273734821697823543378312039094667222985327974618756454417359349506556803787175467148071855760838299685157549085274405527065555690645348950916009016143531472697558520531381210022023077488332962630775153217824342412749369344626002203362532113258861384055578882593785287461194374462134677911674054263899734025340887020177269925881701706683209978124722670900340209221101264616456791747315181682256276432948932573019235353940976134688714163449252658365342390736817366462065394301064190791108466177918889499639974014324640270163799169467031093852330283031456289480023913508952947309339202578037161103815668978528589407475048446380630929909495382701264888780778304615226998571745021868231583456369248235666966677781269187563663091644583627624835556549476614329145731898328277135316437079489960660578080468498914428195463217176076938047726096418983816508159619370354673840049850443416647280616922430255778227925538983106976067823963117139281170046830775637845334403051026728060946334747801239982923200812852012104583719364426156737356278558970526723001610019593951461579266063250128183007097830155501462367443314481913615157390081367839457654274832769837618523506243031428752670537630116801077815651763049614821193131966081541539045072420906688956382661506590342312540951242233813449342772330863969513985533960417754131249832597971290443444958054792535970291580337989280673367354515297921547851430246536391934876616835014330489757842495360469026457908879179128519596869276452064644906488599433903430883385689911463600842716543498488661221868846274703973750793356270373429795268857140833087265737823942787307780199296526355306392808254351750685303886895557912460676622645806533995626496252648236526474988192784532606072062022445980206594429533823471394266284499390666668173626529538322625878864525443024948236865772893493462537902877043806061695420252290948454597322851075897363501548609478290172054330804550493166576424744152353784279593489159860231297168059608278741692511983146697624190081685459230241881292385705213689801040880577981893347806934370336245626541595883666975860341586520328141703196926646524922487077189405998352097360332367203924181648028989303872492495538397023560673601025109679252264952729268594538739401185453669629211081497463346991716596374744699778159972487768490390479726200284915803352638095666649774902643332690722003058695128936273302654885206566832879798941402368669663440835782461926304091125549013507027532137823740299138687925012832830546971714405252754723952529560374527121535115855022699760749937942938135261103783849008303777976387644667291713703584092771287083602998483952718053421313724279589602387881038499993770342860851273939946274352037860233006080935565413602841765287989294554294781074411998458328552680673359527008063296108680081847471486775743640345053938869273269096303744926023310861100719588826729813054047567098934724732454687338735860804818490012016029001190222053511570118392318348546314901238429896027385519935534159641137902988063629581738003662123712501203161904025992887089858236268624327894080885943066220301687641994601931454816543712238414621092159134443696847406155514122381556656082492673138555840355055737588193409271000921668451518325807581119619448700450172602967544068487782185751623398915838537851726399549402279508679592022691589228126191566217069805484417521355797260265146172371845747290504614457425018919090663818877788190099711891447089504276970446070685872571057558637229336205891310983363371591429065608382175355920630707051296362966103169487875534630691289228191209160699964847643177571082826770791061223239868988626464843882337301963074679498482719493515585394558948370796322996958691637654845336452630644977009620093709277018747656131603277652520682007421097709647143178624426821161269247135732896407473426624578001768284737548186884029213460321716504333089528971152599921267279059949101725489154355765362493975398737109450080352565636966373045047437596602734971361709732233748376191134679535681693084786193232855946411566400643878066613069578844465105746340595886885399817210389970823791218162826117329909864758769330896507555281951133220815952500712925322392828747727304425702157000090377900582174299691458532523924698211331501050075326938128107437249823488805361818973498795623562606727784035737117100085028222784814084071668739910879066044956743096329482084439312969775836572294175720996613517924331547898860511989751810309596669259045510914842740716935598730053989016565062167600011973548928818992066088598561715909855790040154027347365046777890109979610414960992865104545047454920644247256626213607330655106379584008002604690202969148354191465286380990466554345177356862493660590162378147423004598989225517391817347112574811461717372990508697792803107842303172470506676664826648525326824011402743683747616691542600889168590784499750620726368619295279829998884343438717197525910315393769431687859397212114252945058327731676608862310921894492209938584554845117470484070575046670248528328466164369680356907556402928787932598505471762252152698682286417145353813039060554356075984539651895159235416204915054170834828806641471096405911609120483632488190663163775191057176088340624236972967425021794980828809171828702802795823834097008964565225901642752370265666762776415645422794907009096843592196002125669262190928491915828555583814543063797099830368024489158915045888981996632631066584915835491095371350779890030928216112397389108510064552536494946707544172772084666325778795802453022617409659595844549082849456893916203761363315439723805624582834757229706020274965282456846621790661751406579476943903938313625287469695939616858894938433855546770455929263583592720428657945999915878827854124781165796198169030652907488215031219855015719785002816289463246240922263866123138845429926418697629266267312164711554547167971516738213642312346089766911909472702542213455354726546923387824282889160690510130371853054095608514214665621796953911729908675977605104641921706559822013591856611995406578722397956471732640618153014721678685075893237278986355406107603697545042154435084028570803991224627390047418279892827924757064958282494057522199344738010564098737132591976191534137219494381048593160026255917099605559293880174360353080272319747194223962023522973114261751968574435235613572204942852332524256480427590177878474727297789427469764921439609393198378390525369519723442353899269812357029215198249411715441105310571313293579330765969213671151490430471740546593923439872765712388566473822934564407758463933360997164971196829999079105039981260431257633338445105018793320121546896983544039222636437064214750322332656717245793453202378343814335158961894111116251652099382590187951840540292990931121788229845044384177085274458200135385564325828319911487472890853101202589625238909535138850722525306360565146737258247912840978918641570095088797823320962083552732492701780201401575558050596008496824900179873496085298812398555308590623081595034026617193307170427987062828367667139720960432662850952290272910966898914252404992564268977399428618889502601163545838431839981861865879849952840158818835990345028783827690630731774235314953567768595406334469427749578229303718100981067415037008747304959638910603475755631251167413214463411508883178816214847950073201594179797474399497120329040199095174875782045864445649115087004339365071751873028758673465420775005562786094033488618334312524162172869329950405544746892322021033558777914444653690919581987387890183581682798056168498320970228623949406199535378025934865624795685291224948100920177579270770986164470091545386593695761632861908542596129559164436115260747639142670604915610154059685750740482718727864724576370772186500644148415729372026174787217664137664327489164135622542427657128345589960241421087401368573474501112884476952448504821948437420296114305968594251746827102900173452842973636751001207642345361254493392140526305172203383653802018100260330631353550067022924235817440442430518266748401025698193470510095267495048084076146757669272049084073528946329563444354265777102329401240092769284048653818196796967147443471374374844742061935728054661320976906314777442810735731314241094231831297652089580814492766624620979804210500425984273768020578531970117171509287981695585830968475281303555342327771100807841376777319148386382433983021397830097913887537778821100355619746952980266519738032758983432881442159561779770181692124494032611520914171821193921319324330683685461956940580741773563498482260932891012689038929293791663388622675916697979763282679131548283649268904000266365084762694559575454031838874071033266457815832389274047796013069305728270303989052646250274699095527125293574962720581844324850060832567944346996116551079925361209259339988451969204871747888628083594858624392936901577011369213333822503223672311203131595670944581305231641742405753736146165004990823181688577036779579666299314504824922771478984599355965530760375636471502957079036583264873126184019669321442512976102464600300245748278911228443202407759662617412069055575489202206350216137244460933721685798211379584989705232427518172754367690517282953152732466540676155247019148069403166021504443428503423791293833975799488139445191582377261782004602123814825218442445389119473932776306976272864408632191728879310451391024454519400651139816671604319937732304957134097977001428317010501718163189841655914500881916836676764436697486258179364721176409735092281087242495380910012288034351492153805377734993713959100664096395614053611099034879085363547089094639881207441898210183821111307301698209751776819179062310123247948655930296540041792123744413972592952621614562899929166579539850316792829672905541644935873644715376647132216139975468675631536829299390671728841249332153213071508278159234194811493634106829530249490938957370253338396263896611043135136843725778365675094205642995677318621772956504295313356685381846633028081070055371574701512626482650930172890339318092851452049740964070127120792166463984254137820127582281304720922128092674149152241803323783950136870276306082773048986970743352290929849851707130717832476748863946018644417919698117214116650029438228657091921078593671058001484001518531279525987939586172121837908834874586680659641534643269351304654466344110587341922281881037913085522542546960118924468530804748839376107944407431682879615163912590644238483062894908057064842666741226596816991748385496024115371760550630718354819931791099881150208366953394818252851222516608400507533433697058623954638249842123648725072264614622240050930564548649309317720399176408737527279270035443502695890324680067350704414111964769959500134317240958648648993401225267488464836877636594987116422648833141905907939322957799565066586201393380307118318281714249774203873396282902753799843368613751313119586800039173684303787613217801004513175663120098488209974894092881079610673200111536773141683599463043239477510269005122637207221329919484739353185125943411082394806657498395925095549032777466908323585647643642588684976172812953103581354062369552215116395960036237054147552006291816051809560601275828537573420739241487178393175010871254402336701664396261293824452127456360755781464711524111684683280752401397451955961382418565734662187431827801310592522203730708444959672410164946672265238592116262393223198716938050664804382171846348582458353984069062940474242462358853849036079061505662015137804606757444096889010836272634444943157900446948553044966131008857632764550849328103840390359154102940602943425756223337375723842228602515089992669954183749218667622463690085267486262863348006205218578332907073796448939964841465688908099530198432801298237954169641640009906581054590128364480937078948123521772965205472832294180186590422712688745468984286262415366613531925724251059428131432429301568298036320904168352562524208736383139873812709916344721137568037849362181373846116848841806090476824085747580323445524605260916035365904381286507026230908197372970396312485085507734099798134460686350758012483115670350002791844495324894675557095025329022662943287979670623781366922530374902311771034424279786517101374461552367859791335847619496277425675158561041737312717700904595938582858990991042181266998828096020795821370418086068287058289487215819482566965892659301597866695663754975581728768866011551048763832408222605195982728072841858912241811462983656557861213549305140059043261701668117765679883836472408037906504981260790566667154323316923358033775824826133129486020279385150285619092000508861534849840722334379170340559626215700151258791413055858159055685200892941039239542662459101651581437818512006081865853154693603323465171481984741290151457091292369867073296920783087308010719546496937777707924118487917297249225474260258921406534357559382267619680412537749156592981476874307903735206287059058145404248906804516564127202817192421494653763726934024835725626878518625827684739440334042955614415019203428030945465989593702550712227163804032613779214245294077778557164091626257170574948375172423156321834754883323875033233594918162088536534905777896171644999473659584239690260478199296024763141241751985285053471990300758990790372697414470642161878044866896591821283330535062820696042282379235681350077233920319666430200373777951490845882177600605908860145651299683489083402236633939629756510416581142768848170171344034248061382851095193637487064349840836188488830512032193080620992754470242311049152871312468847957209895371206445032084475232825496013516968163285288655551052007001425427113710035846689025339683635762034737187811779528623536621524042628663265876266062169349563949889025564281271676910630116635539889396083089946281304827053453691271927938745893193541664203040753346122143208698447780900965522346968110376907659327887103471774001083480381194408219763324518963725043029427608834862289354502015652176462884768183478288695109308133408330914491331995152465580778853740362153853823872858802656044025047361208554293657832695536064405118769779645040832676156373265285812860262006730762501711515326835267162733178657098731186198254593988665691033724928458616193532664457339204153509011903675818154579739250294770572279302018086288825092334817180404675712538880108166044635446443945377392060047885512911876580223795331938982774351771186845317644513492759172939415738419873731772873750015369895293900516373412089658756411013011364807765408134962186355740774492237669098981747711725685307054676495876859900209314279394613840655897120246918325076601758336270694794669239750452359125586224154680867052951665860604299294828149472408130316473476865876394241248254669912684319002855720811829208006057464254394798042040887218534403898356379549470435623976569437574027769409001229993684951741473205507968530859198950339576807273679114531211162993311508580728676435745201131195582518152476458165713633622467388156072141744459675068400368662132979232162707255670877798271611925683884453506348834597851937813777733362178073243710872108251068111997880780229536067636151131108502500638220868923656534080375957180012417252332255712460171095720127837961311931451740893050218429026102517204519097832850911274649571521615610843209177802732308260200705927243625456444579548263439063115259981620684847869867170174556319622063680968241624748177980895979114579811942239729991089121419328627452305097326770731876646871500561767682152158043675416746631796699201269574471330863159024577480472855550890585344505130213855442660024133469946975013368442787887864299208332975487949912496877204929142968592271719197689052872094789837399951536312639099529492022445939878972086983355859998063490393054238025476096422454214404896143939104946935913541235559390873690487040544915793194245372378416030559928346119073143003166003456690245212994307005356689997430465707879692335906676055166791730811889379854822543714103908899259469603696136496221244844715130999649120513788022146723492746394615793404662262869043740646034909484491141143581248533868307205774481086693954314926427103916844473886598979067665594635155715814175923635464846073182610466494755352680461948865486698729227025849807386210760693132587598824865909777576933800802009318351318657250124044470700956092603502692336462925132263913813304992235081591597043070417244114014118598204188906224108163363614038145450971477022779128675507633980198778057331887538988052294097137311849864806916537679845591098637969020344654201824203388853330978443785437317243745830574647801451892715775433853812363173781331132233221424837352368969843397249549585893991912523849477130442471254672697443451858761154194854188696168855699945261330004138293303518361805865955275598543124849930163377426321893914647970931515178184543089574945739571499695401932820080744009392590627954590348356496248207380156548717106376537833212281383270661834587446725450766988621858949336016815327924294949629650561845392139021886612156887891554401194110754339266290400649855632284857927579029516419781883531174039284748655364651915015187609522916770499179326380372716347173227743776436543346802885581345761029711500919587523950517676882682083313647196014833690317057033334566829556729639334386602327974977619719218020967281835125625743819811108610956421767009338139935495180322819048903068254891437164481853720043275563868749471694288332516019390111722155616298507738958349429950789688094006971308487986737019074401618610000545192069573638196281511590863417001143626370980583412498084390285282197971546379621685500531695637243207345900694326314071385095952549041840519272929876290392937016082062893055125782796999781196821451624380580891628940216829679984250928964828789922483408196926670032289369276285410895471565171841981975412543386295541401911419765184504434417610195245088221856700560846523588089099420279443792819166116303130971395628686543039350956265036207401676204528202002825520566785890050460227782490782552983557583506254489030593235031594189470115164181051089900912632888971196902416083276823902111216223240322053132172304621718938956081563292744130616766916028789132357720896848165338554324183557913181031435594230531322157524500947031010670109071778193762102287463206374060471776629649461255243074097042019204642484159493042861748744443929651282320715407568655671249528632020357946274972677679924481774772955235526953119147159066513759048797743536594453080461568156559674626880888602916719911287176714585710863745593270018220883969208777285949412672491512470430623825239936381444471201392651694644673160378277470940959498384606070229625220780461057176797299097165974064943043950683748890615104274120138292257906949989213947434212615988195305933895596427867694412652340799185764918678540711790143955719184129368716038261094269670416212641988998814750577155836984241883244997258480483957548006182666607073044102135747313072511111473808898165546526098002851592070464611290398779053367412249123277061142342088078666853910387458634133443128068313086086971824319273065288851572325047004807464055228178469828920460561779512334040375567870111702535441354932873953941977809325340119134441291310164109475405642692301682076418818841758827929566736520224462226553249489548372727021626100102338306607106358108706014722784280545554854457532088395501344380370917858254556428003550028113905328449581859129786687343703261844762642479493958422766030722519252349996049291618387789843598908448823067011165809007480333087779208763919037612239810113994151456558450339248533044286401851723647128032545973303949670276216281370841888723824251062548482387383377166659729033568776291940109174353247405335130574425119495479569137360212732254564967789680241210563223478027308193723734797977479005176481311074783714976314276904793899810955801152064598993314902640985264331035960434226440402834550464312629914295706974312605284788223449511254337808586802767189509792466514970477878508498080409420405322212511984502993624840267671808653192566076682723922882014106917188336982344027262846551946233793950147520018121297050513810723449559322770495501781204541478454961254501820732892806943479946953597454492936500798091166847830114800810299433804288539163802329274224107535679410597115850631395093139654297547020405324526021144441783958123814932723077925975499024254201835502476766095575076411699928400740905751425405327441377928252341531046173624203188745070468923525768814668266337362148563079577210237719070174550215845224642614755522699510249167348313935453793026131731947826190116608828973019830261428186133040414473704108743779654248688092187284781458888402597694723128841982519363895820435934803149741789634974949513251211540438346933709688302814277841756005790510397997525329262255936073513336358812493098618393387566400586573800786839439306219679076021433184341754531072462405024854512127781077990055303630700555797084926619073752853411624732165582843857800640605923332334594852470191547291662868623066096238587728338725479183081750513145776967833771609703312360009578496914192577967636392655464891000890981031953755285557790058970153841965321767217287043382465422408310065627076283243344889576228505921393094983558309782637543037839945002071708255018899143163600726587298229693534312426780285995802237153598894779315264534815271159738278642833559894360753521585749396784466366428610797851347430170086363473743394339338618897895080022022691281082483402847277388870257532812808617919111150731393910227722338493209146678960214822158509737338186428557640791313985406397539893018495280142743311823433945962951385433309761670755876878715291707693783547982934401176970426569925594176267042163630171287667514722383917319240005152316797299157637854916738741161455415409866556425146944018041778196367435997586868609865024803022603113933454310873754476020072454434177613750130496996019993807668618432011205743417733048286414225641322307410156560716513368841654809228969360850658229517278312901087951660911828970471087086147379752547204101711985320489503769598090792958505741070382327059504717015503988879033635475591988544734281213650069221432935675341826981906446146631137464454146617588467835515248420960391173551659525198904329945402236704906050198930752547437644664035043081857979883431934256246810373355855983248576785453373638069791817232669578336635396479317526918754425840348041102703670785469859762582728087071335186162227094887279139836789287281754116558559420446740081963109728103488798372309067430862956915176983432843850366395446525629188340332087108881530656824575298952047970314660860112566069191498169681264416546937439757102217911874364501185623451845822263289529261666279515501684787789132330658601870091101569066343922936564528656700950649306521653229879981533193935338087844714560416327299005886306266867134071914454309356251749967458048767473271220446104362842852304958818245804760953846773746532302967855643549587486768945310204109269168754620003663805370310111944136908686078500881952531717275863250208525578466137158377191810164277644272647060521291811464756549879284825041371060496319480868208895225922573955462695998607127905772335306221543402014025895853063563657695544468396176880707457007816954936592936947991722317248461139251861089513198832811179999600641652949014907390418706595769938916026986032606218241023777397512531628646830124694937107435937341068420359013878438893307082417067614446877053121277680406307177800862813804691890678061437815055272944447302150140262731365428163912644764392878550489223623075515440549765963241187691198335105609308425159137548065887222836256543226642890655450566033169674428323669583291053650926320050964790710857494901419536129964333924656040613251312769266843946151357099676774187505370576018937458476070716585758907512893954641270048828828321188742935675028099387039952279537555203026872355670339640639735897612057050896464486269756895820857871233533454608488475109879285096817930620151781019385212005780174189915083734565245022588769173563363326848030818438801770138792283044567858881475175076090302831851394527335052886604299645680787083857273365342125012662083826802222639700822498553138310335772799428227864189289063022863391616874846075320659862015780260971757777226256134653948739650361442600307786784121829901404983372992015315169144065945182349165917267412488361851767690497370280785656010790159271507015289901052273259181912380645934751944724870067234768209473139663934086167767809134686449189177993596608942152457451679126380058563637633734412754285079199931264593819538086412385366465693290475516946439351607805070337783838065565287152817875947821454757813961010053905996690321585929803528632932857485721871423324310458329182545608652616095966468063232272527069361109102264862645535710607702025251690369276916867188956103140461967311268428453783972965620030109697374810711119685339397410561796352465361540267834772574693762727997640429451287926382018922139598477832011114313206238826701803555262188356030340480140167357243795435622571658899528975225532751800246498206330492571493057582568607987469291016079462571591780443470658500057363539458910496660339157559218913509417057063624863219068429854053267974276445799736418225648266947478914805236889266733497870399081139167937605124155715685553875276262970795757685131662772521758982884968697921536165903627864507488838759361762530977323925828771792823059711008590921906946498363775268240710468685729344646162346674425713397907642856203627581750606904684783793260429258472307257140425839376319920746280797811204203925339064831811852429328514939199419792636418820987776696278868084489877105740638635631190991396737772012298840025335013853493623542144532633692846016350804165400416153678610633300384539884984111867096568421962792298464650885606986995520769116219621061982346493395679367518539109360012529386254315554846915471171723109801104690704656081711964791771026538265242288621172236576036942121328169004446660587981926990701588975966155088981615754129333170296717086816852140070077185291007501481708019508171620385364676804488982087160198352405477317602215896676663461468652327656299299364687436804113743652120511208513702329115691978958848994154307945701529869620781304728399835190703387195712077227614671824203294774181398337286273585698185691904407605415105688999528314297617890303496268429014576769909615049043350056077699116164616902174086376053042802180586259261241738242152825138814949404341814074599759306172181771154518136897112755834980489714237054155740117999963361212218090264677091259423364508968536837840331879915069266151540539164901841041783738928946197095042850868393240694578607248545588335664548179342386201541794781871882401655765828190913503449417960171859570759754056167248983378713934490654222209499241744190522488351316133271118996033254567814062917799328177481042299219207735580047517964669778430102058079208125447001620421016779953943709809812480979190420812369156803816747754978619488345249287702641378372411566793213752890334649890804606514013454049969405581549654796911355651443332480729980705960276632848749637719911863907893457327327929621681582901406419240408872185752322290697524592753760413089887534536542634278310918075777165816360507210222379035209561852245421446746396495412313386718537616143765962151295691200576878204396116548651314142010987537941952849484036851808009740777465670131504788698641040926053366345961691907934455437037753761077138230386805477076392229344331813560609099960896851134655639038018171462961398832632154947954052231602075921483105336670651240759921270999422567665363411983053428384882243515980572132427103116294910451989944377494970739729921930125006017022041458133542125462023919131736699237638055245763265832262334701962401716756197390797774380577569624180148821466089839693985668977772956774679074654836944076624411456566738915577321675073785630225251879032212069291486987704197339554002429569275770588110620024058049555522171884060017284890902574012028590032226186486109761777658555879065742738811821302326186718965756397340747905277256557085194661047107786889862031881153618143509899022730889878860854474471481935271486212818751878895260134345165623127064980823200031041451236101485192564444341705742431008378250638137546899710218775359553981822243088017870774771319681075579070098686579355995707443638514020176242226659161184865867008748360532260855332128674652112983617480380899994832603198661151204560343332682175283775906002435288500171426432435547842033986816175459022897917107966953277865682106510363636509616936381176459686204360384394563051797433402269791571401016157889038387010593461831135567389918876207156204455282743971332215508424735965275996346912249728223495648232123411303709740541245879141002242537629178629044138014975622822736853388094796550863868358628631982764633361499272491775280074110090925695438993128775589344834730010151369736632104332900478385801130484055335162147754990124581668381157236790633465568150815231269915254477921958269467604956069069493332084463843461813075841000261139569883246057052778960714249897225118085162144917837783730353416444433455203226607049986737645922765055295546783215129611890471046275052117311785197591727336042492943838607353369377637638478307094910716975724977773764733064716245392835207747728236695670375448964081827499228063438450853778844513531343533123483784368859866228925192162209443284894952420623792771520299323412743627658944349066299595217427824502906064185933319900861717097166205881942719671268275768143725105157648675491380062914884559078251545344098369213496221891277225696994251340061323983255508488274472637366286061156976416744427186322299981345352692363341557632342823512540529501990872279037514931546360712075817917528402240418119318621044219843033770721048203524804523856416326211946745628562592854476840413044509433208189492114972652417383201345331887491778731347756275339964581409078058721502730743247807857895977575744398601600198402808106946184709091256689753244254310495112403984163719571299085356488975889028523087156588381305930593659138915643192589015374074509424627290728697102940243010720731413753577047652133027000069465158741434201586104339305868892600740491469134770865326040318045513862171358272270753635158503448327463319873021603385351228151950562867132835874169029894606291389945458197154523220540406247686192935749324090179234316538614577411839972939286613028701332274314636852252571070416227694804743106301839892227768276624960514476164281590330894430413456635687175911113982626253871821473497956293527572840214936655639736279573675279906256906708216547112752350509067169620428320791115823375265976708808690090458011878423010931441639842656656929175141085292818989050586561559539164855787170301799088791082977689683639368103297396218166591114058598956916987965094100572940214916168669744593650499769122864912107088881682354550437135128413156638359608677584354213173160332700165619307744088929683339914166536023641007480695193886169630342644509494966407594485420800368188198006825282006104112136631292954785564524549473656278592293693193868035045271272566367635055104533840470918673842681857719306121160763184271316253671500007963784665515994300667546758904351804928058035075097351894002200501120750501452094071614310880102166982301488224688964411630524779918226711831195081821198594279069286213504779319037833759489658478742148430154749126396893378129902882516205057665041987934711725426406887530059209643842831711146459115793322996174762079427444269769948694745036317070470094746575088404669805364354614651722747225707878640562966413389109920199913603406621834311368245068320718442666180397517937759197128801788705975804082005358747718993700028605571120552159206448193580890859783760801477328262354744074253046361313330776127721228512770373435222572399920075297852468915133821766592027962559024678303974907229778261020828534110057334206401421764364278174832207214990892436116375232068830487824186544841914100458377173492728409310419216206111695036057794900867658665201807482806374524231954060794109469027587176637004762405934756852853715427795529544802942302284468098684397791103376921827031867096872598927864957421514383255104507709309866605508947467453771820506698349402098963421282512822077316957391566161108243904024952761909578463374607590532753466558389203186732038255355041663283005496189790906314509693624890345416695443195639053956656944289065190940499892305715631191166969991189957639754508203029725905662560620138381156196314939217758703317931665686762768956390772136073516032250599674506188638483261888648433479090036953059238091514539119981449386688893921302560373421584715745476847691748967138467460766471647883958444371441223533857377465342485847984729961667782189619751851836960045318126398261219898088735729740525503243633974023229989207425419822073029757731877096426862005934725811903860705934365026263622475061817018591835276173490138057870521904925486502912397657831255918888830848683476583710402588861488404172337983448690250418200945984549529447713862515010088783428656174629373798270652954762572224037542889588654014539158505415046311014916960135388175939885072910283090129765608287374716868643500593622002921321706982502463210256431486042344215716428520107496398182427514440930503909164255351560913336021099179217316523383711629703901874964756970025456195536815862136889315372060528779758381540436536630992214206106962166685897087243140929534008344994589231805832512316510759650989941268526015894825981649155230184782233851085245045274438021974840313503241226790330308529692507693743755424305586771057063171026485430160478289762122959440834360087382340685268816429476341380571356439807203923190977111198020484350655884195804032055519577864744700348416842802535877259825417213427595015608801825735690905090275946347182164816480232182078548263402802307264422913719724200816200453841786828118127845154403401389548754977937129635088368390178123352518394973153907029591139505905050829263684163362827867058953466594974402982807831165568665544663451956597600288134541985682972767836598807702264099607105165601769276172821139911280700404846502779656181428791666311756008431610177069211985715344500043366741029457586350489500424003479183850490811097221156752466490708541428722617345216306947862858579624808281046757937279395843614721510144334046006126197673342978763654096803665266542058849911157456511085124387199832028651658359031841145987059061627259286777182296100228396072400065306376238864921512844943941020464785712609287643393190753283633093154091374833874934949572426004073057304566249882997777695296146815264155498204147314976145424042069124221933068931596873650488113388604214867389610687695544346371810539441987562814303027570603690408755668155620761482373250499196808825561980393595294148099294250704430677981778404088873243738538808168812940217322832981321735993797231806934906185404074701501437855463446768881386232378562603733655440548909132646442381446465740428611410843593078304144817790843602849713335225576596291418308873171112806109319505011197115839240426168933894987616977664605262719302383707084142324803263617896813344865687622946978216124655277312416485726585166726663074462816314954696194876815991700173234298891814713836951384600634007628011211453953961049736752167633666220359448864312724875753287514791148745447640144817491802529691005760509481167898911386146495730378221346812580262137470720800491131367778982726528713869420273053149581211640482363769279994345745169945671133463661549040961469511449811241763953825677545132316735105874147108410452984094801611038153338864453549065219846468810130140337225282925659660181868375293770859499210286084955199055177476145134529430072805457113580267875471069448173515793746610384523513497577424697818817907930651685783641467745036347308520346398228132987356320428638582192303738447863059304772014305854946076947133284347103806149765727759841859166899515707213121168771807711070034555545294943450628470057565898715811830052461258941924044200937241370849213871412855601530749813198600836291271353561206753683621717102861772974507855465956445891919178039048842044110920822610037011126043426090617744752616879855625635970052146786287929730133192949802582918026950992708842374032778886465942739586089524181875754075023033879057570144851440972879707530359918515341766107033340797513201929127642670387018534063543012576994996227083736956026306845199953052388979793699191555317088039651157095533927513003726007801687293941870551880774906277375183312267932308836425709794260574922667859110393989866234336357612246340681107310362952701523549021394601388703349591642765010788532900265248071887532507747816651629021792674871260584686457305563187114466520146174994661363915454150563249944692779408580178913724396768550778840262305978848659846669019516270445117154878649320439818631723450932771092838634442422404935485851914645161561536282616893765707898548890009107435955019239786037639357053432723410091279477579149999328374833742801508823326175083196214714408404055001659317215110402930993094116008477260492403731256936244034743548056049749260045478214884592380316776920026667817531918257861221879168273876710614144362699589205653285594120105915128050668719329601333730033545610564329337919536057177121833109586166442795374992808766982378380029860219996441794824227188604857919890175224344712342385295862354075542316812637817076275592198421577059398558190274999069080299861070928450656075821532343340750075676681414687264591752037820383934738783553721974223210665876976058631624184040443033072812493643834576203511871736760248888940072432754221007094757533974210312139628186074827521225630967660865399016787578969210130475006795085782318138686081690663118983848022485234992912885316442360466588896042706792189167353246316101992819840929644255653289944941472419495399788619330920769883895741362017248699140888026619231713519261330112881887149253264524821867583485860178155852240814534468544045375982708014060792206984155915618751786810950062824555929195201948927376708035446618040384362250839769420493751943649512162268012963071542508712919723912358146227295892464880540534213837974656276984772570824748659375819493128667339702114654429515755133780247814362499365541472263227731550766511761340333862815924269625268060556118619169396765350648971961737651629160732613270302876314626992142577113612675329386300821678968198855227023995556384954978434319943845506845348693432358612147410566222369165734277109859883231114288688247617509682516335236937762793654913217017202538040665609855127051337945244522702560771402967351360404977725175160252078048100716282176880552318574243072342087676786935861172484071307409590350357180259685594731070119797454030788751980322430102294297988865391947954506375108639468015281991877937268673037092838878768509542147494612597614350708048727725815146573841490453401949113880400663530545742595160929944294264233021625213131735941557350191547867010940172331114762456342894541116757808122805646472428500482673335425924034157116343172662074751891978535271577470582428640093438322186091923763237951270585658483141327674703004563055976561461359066535400024863042667156675769415197507682195447850105196888395147559489910696273098904255544335916108393192952365641833675573107530328801186833655911296843609416754726613829257946007633248301340345711825138186295609342994442006611127873094014083694123637918580141866376224501583150695698698662500194373202564593138484411724034995935471287110354389925292627761322025764852275712457988468860746848606927636215593574633221201201225030487506686777139664767236314657987242114799954476442435053438729824463762725827048099279535338148495279308047965486387418882320905893120828620677089771377484813576546841303418002070544202351469170424248786084607887601754113064560524480855694158764015150225168163349414232022080109203414275626712337135601137265817580672674970520185177902862367853173322292747059453325527151080280325520666086360050219586433045618580673551594787782463894993807763928638000650366412523705209871604751717376247993130784930134981179624173536633521195474889997921933669134325120980607255924211096896183018331838270863941536363847191971661419121797432711004937907579325870202526184839552865117725826305785281204687911043091937481793152734017671793867490623423784863913997873775188322078319075515891172774438944324423708017404375103781965575476119690783848327900958973725388658884214312515959425633099439238780521236418090220197505786248258937286690060265782660273906386000995239590436487357697914037138785554358267268792215776549298969411580333222595821008708027744488184680687018085662750460717551725371471013642647593272995042203185176668959505512432765994939504964838518521486666550695434696407848516531603241842639425808162754642955512271940900082966589598341494379333440981922303035435597927192478595563409446367731955444217521198794535826797728874955892718851236865381645008775483097819281206853096763559350002818653120369805213034898809300787158337544019723318946322454847547095899458858096678834866041212716943509175334404890642069583937873567131809528072060691034927308949066682695164040745372286709570064120042673080598594612455628158013580159760901060360472667958286518378012727928906022297802524605891292123629784040811252773094966661442862898936322168133826287259198560976358686132460561941074968313559117338649444658741099143013730765277667654541086850052078233339609956818507233860142401486222815667907313987182289723114755692167772654549549328411486097666192252239141659924185351734321107220634901979131018596952497453561357659770231592275686587071942912852451438757275700282041726777806623919023358235694198665293598832200352875478643058856350572205457018978599019126604192160825517534130110766014635562065525102893644640800870528216896381135498293093234194298301904434830779040850969641368963749844617280764879939613703345425860360249917559406560287342144259495318531434565308934423981257972323665780438159990846529323356154625635844594793670569559983240686143723879347536558686169199136850643153433474573297169717976691367390068894384664012674289273336000853508617885820174286177123384609954619163190045285212277741334968664312094406052432270087744237055580842035092543438603968997612375853208603784551796747425661521821308466994443139652440112887202608842046120025912549548890015940160080207627860773774360714171700717234242210839685806293423841886432328898786680033727153122350562709745571104883692007434275495510191602698461915559916539510703355685812026887127316651022977272486876666087010004121578364407616065689468936795484825346347853064708629605018169821343637049591206545092583637309423982160427869037525763312275417713198662572482225476719810304652405828858246960511462874590905408514918843213734084435466813931619321659694155444900220348079302388198245178277035771126107998762564259585704123298235087040594463055590761175560324937497139569583712108430142464066164945568991066793227416711613615727459462655122973633542864003681264257873008964442833704621856254811674538453426500528004607797811549692275256399515831223603453122500100327643532818890729044021186276150320092822436011110945222884478998473876874312871133186455747092674396519314487768544291425394683419356901705644211021395014901370259314857104104959137549822182420868542986915560974835217438340742925785327093215291915289140130893509755088647201020941032284400199970803003104835359739417731584483967913920626477615138240769738690458808166426158756759437883907866887093245960278754916344852094005267341426746996236510889888684869593214769951832918862066678141124045946494926395465554908618007678502584586706871680128681769576233848820551781676036941183423616950020829932841449885740622893788617815471448279165473684294912318838400414581532004482182163194358000897903593152439224437978165847451917786990166925934466211010497867825426443004181219994145273925393945063522247370283764542772390705934408078263843735072555526727484317911524708936425961163554246130293955222059558582250942659385765999561586708735358471041521824198532885053546117980034360222320897849908536334448354327148451712204362741543976477912217479694834032235247746066188756143665721844613238341450066320338392312229399177363339441986751765629281339309071308433218831769106489520655004227822416141380705992809308449129503123768255279906041510120867080713374353094558676259970424928680903890444702860875277628401993872380741097615079789553985544320390990462361682248369430360070697404055602677808935811264323615461285088547767140225863459113951287669113644113544941768415699312168099568093177695312894559800073732451205174925503336163171154070919185819645660815651979944067510444293161620482319316424540814149327261302447045885882724829780748465859874032570266212100544917113392520632432621873548283650867381260597199973720023946557445412051373452689862020911086502720956658820208621899680674389716484797676100129909415520327248379713281394832728080935437966097648826928309821437249028412590540576835491405693170262258807750461484032363424598404276738355263178013402090354104071157558582397362848589397687603012144103608697460823575757659957496737114289247390686235831127684113069344418147723865441580954427564310916986251726311988826627708595982796314086841819465480646306231690575318732421276177511260385826019837417221170149165453702942233759389357984729644358903565817870551575027545871927865079853864411341697587843039195468752420835979396856123073252869229961088848659387636085438798384181626478941986231963215330666207489190219352912962582051097743947807057132907390341666854495680535241559258792496270324344173996522321136524771745860619765672088472562400407306674166184284988353130425576566837786438408350226919106231756245128048012710856494129453605767765830541294037978320394017534992413959146425121278854330228995703658899712663013820566794652687514051077536048350880865516819488380753091768601430526620231961777662401434156099142169010413476454829218540540140182232390370075003825882982235905457563681665690845771052207201190206878231222997342094746000127548580155459963429040383007456766816530699541850540036291761881911711711894244933731839162444107258954785493061924971085420829830086344334477262710605532043918516095057117928084801405167754836941438096182200509329613285795919844491111989628326086544250210191226444436154907759401282305042032191130506274082622671364887848853044050500369502904318891314469415994009065514860165640867578686648379828654314233773214393173125226315734221887906189495541914708133868140752156077734409074903944136295605908054001765754919367162195488380303876579309290507929443229164729739376088766315944402477024076585837926311252631017213211051130941451782931131018874599115853308874617892324044226122020116527907795698124342734171740041714055592715329789495187747013537282856672240304443874236099490832683859144431492836648060228273011926703959935471535687359210407976583669708400335316897794194992258233881409759767422946420236496397236369842792226197173460118486306297859382489165566792072865672585385582883024363526000618234353460953410255384610208568713843732492371916737993919611680205886146741117154439562587458044250012250543381576058405523094159248682349118318564276789088970462840006268846352802768870256534106951676449927578559085663697417618313172459825213204934447826420455304928001386918723452119182933993945350618601328320366694836020766069719914581299628163994928748546352066505778754619319299903301431711483703566220304752989997440636612739503103731020234966823378130581840462917313501171587331920672237198952307805866503387472822243054702144711827224253284730061135186393631308070915399451912956836983746418674047784512966615186877491917359295947607260691347274747769920451570300264286441959288679936566685276608867926702726552391190006597707562157107272993747471394390517063786136147830218967619968133784082808828245272576399811328604038986221840973812001115911553797611827771892906611866922567515204395677703890255119905378041879490017741774036697083122956604898542202880385160437058970739522670867907368889999480207142003579085955330479701176524224668506399929392859911724698670016657236584482285512491643703587129613235761202787730142874848759118529579433049155796588379782999335741285319854871391789679437911896626557378018439113883662215221998471423860953827603516462205980550153154422164739783496083877606572225970184663428132800332750396305568417116629212161443134213272410052458464421510841640542832266341192365280942129380378154930070547950978957127813496997844890119008295648247465878615647881822528974292864288589381341373079268506386369694195521645528231255928315560056640709343029652128998030469818585556029406032915049238668419045845991218573570583198964397531056363635099365024521941175667920449176462980151894483210751047498448679366679337347221095603683810624726955370084293896689794967686313143061866578706787658840523326877318269179482929482603860805496472258798910597032086213762611478545516157397705450053905732806776245304371363115743901636634921620504866616980109810488951712722306215876514195283701325079958519399873977796293691469097493634624238073096485782140552366805410297878476885081820891506674760456366304022706953501523631596984195520261987384083067497089760222475991143349478797795203860290883443387666394334440395432646196471892254411368399755629751795695215026757950537954521945149577497166800469576735970345017603875562010931697094955437210668527631073774813710029793265388113015353213241051974370229070949312396261507366876231030946105237105796702150657684561586048010015974288775466455973721777057201690292901364654420651155444412682685330866452049635372222633451012458810222132374735205046944574619737824622132935935790736805296621081263814786921807184398129727564795986687389161217025627604411397478468750447941162247356465646697103467625570215564611435469606379951724280701342276532409407735293325078371838552661365134564462651061560033702311278556895596764396994955230628928833807057597476320000801357320644775982314312081339796075153717155640782307276961688950239580789924506342602809768153056579536560411426703466579007172538112334301145174813211189672537081399085808228381383296420065305790290693837667503976925354798027618476451308607450343930826207721358032846421744654268103770021776761313117009446762895161194018977933400063850949307142592250752540475860271729530947453740606427803649037352036420688715077488827689639366659900719378138662663264479660267671575318114110161045492655367555153199159545656733399839209118314284011180471905549229725239397709180445744085099932224467273083657159028742503678629524595332815127071593515570090445202928756498987305388433085260917083134887953041424972750181684543151441231859097017617323651081858920320021116055684731939940797127581591505881365579828018526372480737594572938090141719014397587302444162162093133399712472715683116737792321361104813286875089521693539362859118987466781995678876264219438724912136621610892825502193003382442018484418238216401620372532419629787762071316720448423269190058424929074077513005035128479835548933352588195882278527531778704196697685846129858991092206091356786754553170688089816128400437160321629624792449212394322658863847983142861386489327770165537788061335226571339525652611734420052813557926691201327810769471828480687167755978116614473211175883450337652182506994515142876599283389787238426019338001912415632314616967327612403967490985310651826805438913043164303525070778765201810431044505706797235325201096008678958773715760451257967441706482853133041797648690139059361303665726277003009598319470075478729124067966044261108491759224612845902643209523127403799182628467396654582017257561036039662890662472433385522787990740447946379856770981414478433735676708606481981471946863651689690872284110520604647824703808397248915920921614714470639117283246868028833065090342173622563094529052899121149216407760752787120399637524848779234634188537121460668543906007377073944415467205374225797100843353333121697075230830258029684897273737404531655021366887945239806095133491347373788954008943047416729876521145146825520187196388003296535717174807846392188896107739629278084164123226402239317641175563807687534702490401378237996629737407810179082974187564990861821172621357011696870603908269930147594658179126059478024663169866119453228752687450865688694063394102940312694742004678447677676514118319450298504967779824645995825384194715646195404436247835982354374813849175824621674499832828972096782478350872926625509289882168949604471674912041802018475306316083136439865751589346974530678912113898901350531185908114877807482387112932282177051255062845135864213383523919888723134188112430081651226105538306660760484849088993063064927714674179644184421198497988125250724815107863072488128018506276930500547301026875211090784084487005908712077393039764266438554334842536251932984428599720489972003415171007499298291826469360477757650217914154180811527627707564694171502019726123324548654121761270792465520527626536042519583528474982069697688543455257175530341092478985049985958650139126161161410428276126507446291186091071184268040546523093206520512846591183686009794366209197161535543056435791622983389757360581910373631519942250274887201069804040904462851078734546199019590574931795102651747317529125469834267412761522196940433694911797992871246671727739022693528724534103309533547719931498200781381457217875850656547192814791403018060604715655379023524111367904074375188511034479533024603137793323156244690884355108489026704513334214977736820887234962131235770461154761761197183474868839644348347476420022327457830819984624434282007184636285838144584045021141270483201059291693334231633897438444632843723972284735387768976858519246571386574557123920323741405552755154478114183309826659948904251959983767099292074337201124879307836465954520887867805938436206600620855310436023504972795726741433413224969696345667991873019155599854355791123369452279862390342107377496842886080260567656554223376276151134536028994397119362374318068068333003792319248096457575684159648230246130469123146121638004777414751127837231429402757454435482170245154001953805732933977778038639348253251090489370765231926421992996051273387376973425047612217499999724378850394146992638360422679278045038937258752328507768227110998678175324965391276045291855358541626017136804117815958527648481860220482027390083357455438382214745441884296677909930669286754669074884238204374384160791906042919721477395337288033530268993373624233997961387434893536076689707663475234133909107499897330232254811876499885947549627028274723267046693996153159890992617089085605872522278121338197861203031693350284841055226061280107957706766593839830308537059315747490253678143004061626278768524134540524014797499300727873876522929171380600824016640635190976616116335629830480235010455588454553340323428700091220980543424882884068863528831150269944475620567519465070275296818648337661950152564007392505213125852385515382285970877168374162478948290373954551066315196316387958120133717114191873370921912833762599032922203252743573264464314366935813902514954706089534136699508990232147631714174224772011286006865546636489164787478837077634747618010230879982848648680209181838705430632860631790717151560536914657308494831380755807977484340075105983309027722020298189360866673443044027204988367485068607103866181111146494205941562804582585094713281396041164428564384294210416909938142694916419169354026247523215114564461257382051018450438154936894428289171361098598900609919083832198175902479657307106338532859992793993467905218881211856812001883717471371881008700921782744050042281463375868921472009187188674191261667845809597896504459651231348050208722690061151087231142508338117307454246117188780299788397806024779655376903240772755558358212332337492973721404328531326311553756641936486880861801025549502207222413994151594653150944511129518720955011279226454682493184367318757132406343805186601440370559298479581612847771251968945737826379975482929565018410982480356736862539767929964993813904891608386102317847201923847751564019483864248805296391220567650897419837547589088784725438092339975235332322578622708902882833009617436383409945700239817294280219734655442886676475505651500589536687398243831510958791579844756321087670771286735395540001227769107151749654806984701870682500437176645858872330927217705489982830793985518274629470932175346421881684719988444793176251346475171677361096244433183149452227427098876220221684907454181687658082830136321645203770951313043500423008316968361415908925427794910655012537510480587665111411968579377287655618844553491108435170989073045183061940354366992710636932375879274733141745564970252280667301700266550468789992284116938066149823416678615424711963379705800860252014126624842529624103634589405096488129655498068843491952141158388099018663488892351342126108992381319763866340309116875793172900016241988367811130203397776428583032076760797298745955423361230465298003158344245365418075878787481445123398626049612561821487486594630850384908399431528467878357701940323257489665731420418354271626382515838798287714147009120099538004689126395959682642294918590538501415301506898366706941247082700923790610179157516990932258785863185714002471529717662178926297433929240969138089276915655674614287857553027476927286704776341672435852265427564703221904589316587783953266370928708573385549153902194350139222170356417283001169852129537965351895047764849225100812158505817222853103616723496928445816904272949611753206136091359395850799297667118262357865749828631265268189220277580797233131816718297559472763335909350180459456948555976839554994937424537423041664420003592370905451889049584873679482205062187215139416093051119393615236185368174778220201764201777422352392096360620913791575268559960109677818140198273423422553230407539789371391036023376764905404677250732631781748622263902468079019258207852412480276102244474991906290579458737004894427003073585819389454859644058407749754720597465530195217259188088409973546387841336850272727937900029464776301170159974012701559076229436844523380567454828775826621130136210603166822817751932282040355743758804383587924302968090684759058052661826610497968089069612135391738975398981547759657511204979069919458856818136636871922833993430730367106857128031739527227242302642604365417698604432138273462615591004193470835405444323390247728869594348633740276416105022908600531687706567085787014366338422466382367585193670096484373659362559092237082687490192138249393043522102251019632141519807013928531269822214797557162801832770721374495437863099208914512964182939424703643467746827873869562321135150035012279258291745605453936594529627306787121558441646432698770258984969546096027547436126458321324435862872525370642344035195076441516596786718196952966344214737874515937911032220384433658052573504141647648716233931343853836394334617431431690009438899316802925025118381096517644899837505550263549334875071132918509643159333595060896654251331337046684983235395729872456725754303169868284969318703783835735229375501250613953862459549796789458874212905272293191993192527499268483320440583980386642877033660114819015706416682353696348708389509244019707904676250982105572641597833982805978024815072527177037366014072280976115225352498756724537308243769962894241897509453031319516045084065597569018450694002479578822839413195199726167886218866985402833060182955812707725003603059799224739010579481945961007829804440216692856821134534944847344905225268761807354213260866036538963967466858776627621303909560528068219353017760156309556496349927646980068154994759587253347719069760496641617920441937973365883630196403829187606929980771764441515070846026156807571121765336544112674230476610913612466221935868927911291407853618995974724055957711166347954264755866143145681443899205720610443017840040611419851192815932837136957924312312298687427617575286436863967918031139172078001165645190679938424930871979767152058538570661332887570035633925262888709480182769724113255655159424063774456734825559529258035894159823347590132131205525197512697967168988922696536970780882689767388724454454331795088554660474992069828685632780049576321623577417567164130074083804689035849092688637033673385319468781922219919579904758198360034086373865813416019135392202085215122150596922872309137641254017939445421113837512710649316052809318987137819231408194689714076475626032997112140559897085322944477933213011762717121815068688278183381687273015541824533205876043700749022800971205409844432169288514068291204926918164622452628220603257007708200615352944313137611124282727582414026736749661551030502252754852536722610485585537842883676341861693433945349454911266881640381959775017796804418085535031520071811220821460553834597791275155070254805373426624676430741145457643282702423437404915001570820782486692178058237136166818377483213985718001850346717759071589137449654703302007177478253699871571510388690691591745800047372488434303417521829209955012464607624965059626451980063852066743073136892354796909661292621760952454831436771716549609699420136737286225854039156394774647463264626430777847713511877467532953403015885584819502779040704466403909079927436977755851802747587906623732843482270574806097453842794804624772771943689597131402941291332719718312611595756123303630531561299327813537683145384007818977965697078032859975174039096745729435724022817661988051682961909419208994309525713977584464052131582558476921376759295549549368650293673341620011188179371950713936699658650317671689524827640091338048339069943444319823014228186588431718461636273072317795930898830958419510606575251162827577659047841729802079689362221773868554383478281433405156459516168992933155667598820857678496592120375439212883715093115705631009840768821181159053255170766578017450983293494305620670455325081875368606047675018534323445821651014160084449242882199908506847990762297998178571378965456363338898357000126279894840468502363744590764207437491908002718145301717027475528307338274321896945614307426421122589367682957235141319813033590753883483874159718435480857146086866295695420515376606013710376250050026849861030714370739524123106039134868197971741431582261243719925728810310631923569274065699024818070901820011126830828994145136458107362690084367700391576118754778757892098808021674678848070804985091670864306755218083186982626016517380746027398144013369251433175478166139477830003678200475019829780455725484387691495042061910311442181480744504543185292104671284550512152966233276854035103328523379797486245547174469808788380382515925348975488611918864005709646064472392207818769659818192068606953519315697983033805413150482959434278679929203233917070501070264215528438821170406487939213794555737977628107728640702740483820393646585193095307663210531463220602955616583239207239732805979558933406390374402384338367218658548171926967909126819805166720907477605014646110243321219346680052005016191531339092317787341417338172704215255618112040813158055410433747227377893972246201571138269879938247400608589419322144760360827816923582045109751864800948596248739439931262456520116925504128353903587273247488123781634815623586670949524668996456410320145937510794896141413260677904365117782782979716245639764812369573016447245459897880550553945810805429193158643276727780711731646576757829155892571424755127352486270009427759028151390427545617098561876659075965357727371193573726456533501026554280360481951540868071859008249616712841914191256071649363217919483986881140652578231152187778874833185111288904545798247101298818185648772531103263286814516809204878844375015240445418919874085393860441864486294732576768648944062349983861535732421398827308394962119565362905762380288726743394253485097749888375415163869220312396487141046176143722667901247130954819927443735558472650646281055177184994014937977992239983858507215755564002654605627804866463074707193387986696178169045865479305939481447678616007258771653022248371284858988753416355843314020882320060744210087332446027560266402876858714707135710783717135519561876489841645441989014578853895975713347317086224098124666957976708391102706419855483862131648223073117494006675231349615031353854155045747925120528009051494843194868035025503353104337364986901005159627588690361454855007124593408095847050140707360985191065445830106666367286579236878877932401552035370514765759970526912613311584561778988863960757383288441250840965697560107641486858753634110652381718198827731487717331811511234817605630933313659270884705277307542634083694812963325810585846278415689699242550394644005743973520632115029366179756719595172243302999742472757261761358274198549061193262761573306354870163586020171012163557898379112135679892285260942281785460522573878377540731128510210452853911588815603986927001437931347411201892778671270188593226856214679786729483793520107275206552987640767945636357201393335125893858750497023899815417774026473188058445610963300782544580854004916236245075086943019010124880686209853328987031855195598922239664078062580292546024118236318377632498804579948876863756741332185059446335314892321314977917167741897171387940256565121674670896354118070309090536653860397445125331079833751028109861325934824830355114409242158270080591233969636122610174542700423905016832267235061260221530940309515430048816509244945066806441661671635196680003758838012864666751531082056472876200495895014432709449784443077151748201023068984329990769705762899534161652213804264973900240716024839150493095135233529583387414123380022544243262883705778982057289762678948398938658928956664822735987842893072318526433078491822787871478097442981193588372085198196110691877979524469327423977533421811597247303993681578605467134471093321958692744691874701398734887107110629105152915865786887387698809438301752869267946103828527719392740220281652337641862427982041826277223117982739915195612855117027431306722042389448578724436180611298589608337927156071119614696687218582401419982374336498373039778048122858265780486916095519736301139646703546111613925554377556630286155717506245675621814141551110634308516207118786064926948566993667783649544068862823752034798700482069563727321743136256904398606770306756899937886059957348999004852769909844281338283028179650761135601766286386916441877583037820640444518223508888704195905749489032650879019795209049720042820807550750219974243618845398473220691008243331181651930236789336539444894603116810587279061560567859535566495878579455145786390370673869714245965207170172089373695109509927293553672739111267103892635094515683773806116296428022413996523400010679170068173330461225822674797385455707660769497505071452626434318370710137749675877761983931518858329917834790513144872642733820255930078136901498899649404033933383487937494903645406055227817986412245008819976699171178668024507162803786119304135282775551115566395553952927812582709066667022991004471331830817609088500393691565692035260743994314010336241098660412956395238940438061288137482288151721713357096517953289649321028902189579600298425170747734545544493084457915315572529589827501741428574988505333891595365561385041624338560394813595767071866928895563079097631703533688972332765231344976921082640628579580090009385732441792897706034035560932293716428303427489687299971337350013485667621958577211299303355672043580991285069763483875344829665388624972851250420493341419214114597955381346109293708163056701564586848138093527838597490751996861429115265665925793658779091171309723640097586308726567559432080401784493461159252006683812325230392703859673350392862962036851456547009562955833428365622368073978588327392188726408642767228014113343891863984479268443568402618419866804347072826481381922957205379262042531574770426990819301472484087944686335566927168038932184142270582325043009286894729176899411110604810492937094487425318588893207038023004455388003382225186102440701667317218659489157948230118172978384661747183683688133388543720619199301121897341126658092919280764876825048703633761158070549774789678078532475958715011089505587312284299765273013573683544056063157277435438185062591486817146045998742351342554668085836016675924074781519901699107905688271283582380963013678596902668101655716962416009475324481115925934510477384356904751901777510134975814045744410571139008410684938787019182714437727728242437504974811495727534954225959854865558109897222723784741881156771288845635512833357428533093863717575879187517967349688430239966711609204638922739129462116519889551805886277962605120107934613354878635366614922518791427934263638771335952978319110174128157013509478451603770750886279577205393480376098616573724546545203488728705390789429643214795412485050072613537227827914134662680924752328758917299979418517927070051357893077338845976302204124348671279683061658045857189221634194707604477801576797031068991881311771707542773305830596778996886508644414575695071647813541147101752080581484649125521840545858011091253906186764714798751745400070411142317963304430214786532107998203126098802350431301709680760190864411195177874453768997202398178488662207324864358176654317674297156218326977910884622253411800094785735422949001968632651186392036914575060132124124317839185300746270153119621814573630304144837136797146577016370854663474727927263537876904425729202185912502690709780934690875472249702653526354824073833895371468721708682393735299660233833482027587450901948063613062675209622981540934193178015585337414196946918037863828957061270283698706757254282584347676795490176829784497382422990650327842563575358106300086168610395528631527982236482180242874892154324156178782484334016208371959517753528059840588947746572996226162758553927200369696658811889677903157644103345714482151927233288688476675064417270142366048074235082139584723724345759834117302463834473801422170750471349854169320461030195626437460488047334647387670989021996932156300967567657329772343049793368410138597477541086478167251963860535809266019907332781563893248464446368330819810940941590748111419553915170393036824956002070001298845896831412123991457526512586176540221987954690360824872054997612984045759498567449160804936316597682645127732288273451608587401865321582927260250245427092777017449222000681804769414105575718839533868135697697700037487569799302597138505054108740118469059884601039010910255091102596071000163156473119107154008095431723859183892717218794259672458861153055233284279153586829282179309348479768807779634708889842169993855689618472676338744816779838761363228800403610453235617803733044146445245490847437840124636328264465250958557388892557793829302910249560269143142762114766177044210843679114450841900249024691993534430925284320280257212346319920234099184995045190303132923731599995229000227448048180565772535565230510632437198450368966068587600750698155976723384908552085262992803934297256435268531857836492104773622425630350421716335571075885328034149881865431681786544162116256413983250494506896513678286803851526823385265071648929873426007704677610604027863979949436741559838218380264422180203383958473442783187474821131829436870067621570754207853311800028338078125687419353164670751580608293003702236066680415501591750073744161471343264191653769012119657126210523369943778613431233123579308721965618574946430883977989119965593242571174825329323508621400333152535800809680010997626529110578023222443080565916063336938562782240300413942940517141142349091537955425940180067773643105742980837396501588490260758196349149034326929154739114512524334708964079341686535160645822905226889661526898492908487539177271763782619826004395312208339521814557699475141935497914876603734573537317803972596789414677348909934993780167833268623437793550018222706489781831397169712949525706615693841037261728921730157392572626990490480036589442869654935409555768981078757983268418246281956804916205237521411971617346466421265386246398840843837451063195404418804955899537889168833009827272623806955879292779749191751150621356228446557929123492817403337519911513964351252430601805329435093006882108453070434677587340138302377333521764176288184523296491723529119208227703216113036985458685103043526115015977126970378767682306180218133361183181597717881639251140363314495514534328091772434262460546784701473810075591175950957622247731787273375010867049243098559933650588352010986131384811582754699381283433760127290931048394592547677017440615377500070085225275562902384708154791571994606792603450380750078618699383509002061295927758482464590810966730506554584154095372628744929490781235354556781969597598954080015407261433301840476171788283799687350083298474763386814274091396417962575287369212252572089738770307892163347464802212896648777408449803409619256852716036693917447454916372007212609956317174969646326478294925038420960437529833463493313689964918374040253489203324350242048949013859467425750712333896200104255774560052145796988275520945556234481424077342264856500113248299655065447625711010469932999236106162553261852207699815549514299965485638420333632713341108362602116619549570978999555232466518771806253624327032843446826058486043927602268319885509847740980979753955012407631935334840080263982153917533591756987079224987617802186862785913231500058068946314788416806074384084107964688887378451725380118617976306003364675242833859603731929209288379241419654750336769298093210854361186267820603534292407137430461798985576690422406570558158921166727960786954552268630742445185905489881605623820483224774195301476435479611089124126244325410466096155472169322224436567585440881753985130873220113181034028693536412057078859335912155006608618119974760585802710520870915919793968140613458913255546774905749451666040765140580821640396037688537176760355669648275582479279976997130864939953805412862985925161242928076429724316110834589734871644374939954481058158157958151323284174370584271166600797468096857660270842326425724254961796299979505448582334618228725342909189928951670050067739371901405714497788008677512621586171580548173769912027616415372259294704027305322655669255869083248271724665308504162458320591496988935806296531424471795900846342776844758622173573552487345603454654780975132125119431275331868447972015174019680929211054501335702017030738584899999096290681136428770787073232893920280761015476038319403668176429698215207266727229661404389013450503090350097982841403831520463417596354799877785726460410367221454505240634244989012689211092703867830138851200646046995460887487567188819113100763287803929786171802990992236243892107765684036110932130196933256135718018667420608496533713001486913096017153626117972378231099089814173135482129996937082514832259794130808537907192517535611889896444661990212525646289599399436152114025855842909025700609583861476444730775256380839829958414831737647551845612343621338533330641719483716442836235586307981945107574534296673959824186744812642177577598653586836068075647713713313291534504021910751273873100807966395243349824126421916923307910757037104864253354496145768561107926423713192724570184221273884404841371892230840542709935318630093763160262086176248265627409552855001345176934318282024431803121496703522683081365277772674579756009493610886038063284303236910092386410006746535850516724208461496728474491511387103846555020237700765421080994006279956562369109105338072483917478023691144507115438773303448393377939351919108533427158374275050373226590662464219318834601605027961771827255424273282704758978617799113513472312491163752930471436478321381089182248981334297381853333610832514899813526496926098500673860192506443926773817587994789076068762910623466099032061385713083849287620990188601150974339657643880277023689582876477264777069009481401641670371653214274206342070951679762918753810407845399345482281299552002305949021134550134483723629903635576722817065994121009746234125886866413454203628882144271201133397007975415787745490159102340885689283910972674909972857312024945723519485881381583582349108309330123584592380509402008459301892050824707851527908711030110661425513296615386940314681829738275650807821153167586290312486465324227401090979934397213758146932984575564126121148037640558320281709937320303337128020870135725538089425730650440764987867300996850179363591152441648648762269249419234243663936986898110094471225060928637561739760252781227511977835439643623429112188642269644116428696608994780179106345869246907200181918941605063309645202518358790299718868163707072126426593257048619081914607207777971240109521205692989657558857123150679100757796986893118967865685389684267912122327143925765800218369971574925598195581040122847878336460706356301861320267772520734324972327173155908941380094067602176489883468213618120401955513712693525501876664173069280040185610788136465254974051514158872406955827197147685054118911524343890947738828067325660010963937151807258254936409733501755880654797073809029477907391516427166475730493367151553881482943647953920051037872318369886221281765357805028526551677198258884755222317176878765485712718385931084772222466276558850765295941229700517390788166577986353269546635418835615272358172695052791606505128092461564108065883404193098452362521148699078475297061999927967623164856867806047568585485564352647821644336337176602278180809242210087573419380261540064347881028662890424212006806226542884120072632318928554256749950247183934369380834668465583431906708682077797355297218703682702160583293410765450067546634579204213371636584901450101912867289763593444563285051166566751558145605153336878403433588965506867673791835250221417292263419349072897514438246050187085273986339145557461678702981026793626453549279523471209017917673918633834011935382119357646861854843581685362428991851165596023319781187374026351541101771749540425141787702834750141793608844719683589037611442047801907926332739315725733561651506653360755843344971064059273199062728572026182259209641310364114224285292248135467256513067572548124562420612788416189517929949612506413463247494081652145874580624509198095316215980097930981986801298895938527222382255603820259332289437535927932157908808552768649456523092883301913216851872084774902641864069463098014083804975144765733752672196662086725837670482969929473039170737870127624373247125310226849772620067557397294289784740235641525420482648656876518965233493358650267503344178548483779594368210594432835792605929561737179534506226048457681760901373062071630501934459967202094732685521414955305385477683827762604594348824757526043028888785210560260947078536684200546311615472647963104723175578535293672598439683621244680837054563000079683778713026386846524770712706318959588509553058220692855901338725203299542330910381637805754457881342775924392397533667903597550084435608697967759459379281399808094611658678324741611566877696790138615949573206224210159362057906118893772861403098122679297036945592609653312633787326531678892897155817616669646581551822705191475356511996870313741612939935369226502578866906615969944639404080481040669123532764133599756883951408750035951010001562899442756205209602838181793119826919531373426695470536605894034040991581183536230293006283944527616465055667235794138770542387672245288671525326878942825736632689031327559190078791409075620323194584360114449773916355426889253612023172359682525375846546079920823031049309663678002851788641923808866353600393325010422673327753495989459001331215920938471826323054714243998589848170494408609794940815558154059613205561211249926498356792762208182152883170493036883594924230141229376384627006105399369544808094875852089046596653014380498417515183996067549920336422197110846089082930100918228984264618218046549161508808722235201741437781948442008473047451856178129557918563767932020487977128640870325889584188801279841499634991528025802835586743132368480165816105036224211590092669680607849640492029023558720945788131647704687928291680674262189244969134615604726527095361112853077404767551075637907266303957286618805668186983918824053726673653912387461827647996276958368444224902042377124720424056022477126230085817946093522519435097975125771307463128637633248738853235829931047602083930794839011721231616644799602761173735490163666207173744847653028085921744778503804425169289341497379956081715450400361137402300010824553034746486537978727025912923536070937587331956151091390722537707584904231976064629278917539414418883439928788705495803832376566442657672847605821362597911241389059894852105680445991562151624294820780532930953950321853421215397672722004869987214324456960011549655969538310304012863676380636083782782523227699058488444754305977027702423260943710276776627060097113831909884621919723034375204769646240588272610712392615622423626552162239916701752636268809389511698566497498404280194573318851603480060167019181985106650186811976401632398906178127915214690615139506032278032657751717785983660832795635200806344320764601196206159227549040135686942620637896327068583990258665567916510809356761206911257694639570261260788452686875920772711550641172926910891174601537464560768769993457293556974784363641038247625784044361818941831101606419634795053752760667230165474790025144196614922675399262402877394815178264114456188417933727340137185008718797652459699242539820147437440841964939554775514109433191096186702386365714788984104272422055113925916042324196650410403662029550636841104655892834635154050694985067968257297301342808881165122051248625299872622717652579303179364831368330020843579210868414604848997671471760327046072938766655612339250504504899164478201774157920570414225856439737472091313304316773579481887655283935123026704549851724527603646627063042225209697097732235242817257348376504763083797204429033311933845426238465185692570978838560468133346065879918273879557466340825526158768430872593828121406881328240894071658762125463567726995268617309087221983547683654210494455647718699666372029349691844634802780333338560943951942458916170015876246513860448097041500191705945223130715822216318564560136689659305846830952733209436322933984174518704167919421787947502651634776248198745531558149646557868173677432353881662801535738574828558642119325700046734958128505904443922831577465585938933295497068278148767712542227246282942739501230606442323360093984088567557104068883649238998977278672877561691263506713707160122299059580244503047462376995046923860055567006647516847879527575177230774728822983676388880363920952125979914873800949620731461576869373485731193582114600636649207490000180967785299185463699129039158664126869175374730831681458396548469510234726641560451415581885560093731251920839794836725989133417439728018447356297324738550750893853097251795289701751122795836372577227642180597362139691483916208071159269944700867408943216353767748977229772158955041987961468331588985312432491066662033361339158320170598276089791330462218311119682275788709365960719366287742649545136549891354584571228176019438633472944149604199601101362557140440057812440186020787175543144576757484371119817795872116919575265801203367788400296139113574882052104124461795812871571389435075989135954732206965151312266911277312033064804338056794929880623487141351717228448277738066357672875875461396905230452975384268432436479064996289670636196429886481759710036048908063142840459727856225354060892336501273048681821234391161747968532205917781981595066642984515066340571385328739880174006363317171435436058593686217356623135379034500896992487132821705017125227053088415470739655198407203957062279321322136260855950835269107096707361046741175164310731416750110114696398127175636030829036571484269757944657900094570013220273497836436967021459832200352508545255300095782435472381615281269758745411883198325413099180547008091228127787510333097921189407579425994497757841389944485435805805519943364262014150183896035729930376011704503585146927201196482748054164094255605404551678300950830310163786964972044488467971292402860926891245532648824218761739394654930065374893030065743728633122177406423571798895088688017661677321733255548107676609811603499433726369271770519523124010872213993655955807390814009447062540520634696885835286475883340274261796857723562247295082648291498220564483510077111865271957133458493717135783660533456185383990327383799937484472496293360698442460464356109164326212223052946455480854572411373410484102214598943471174230007269662822709185913859325933208719158167999687025525663913822240414018250687781502067790966491981781477739905142410737422737175647097478835056454067375900400616843855384085276919445647406234959921853999056111514754977793733505898905982627495137272179619956237603369598804264954449857605709634637233547751260196499986387701375815463615307857088969899245226569628440085664338643610766491052863669336237077496401735222912426629910231405651804867441537459330513478497605305907706178689856597423798290824716330278351682109022439687920118039145579748479242592699372459523563778132973004658421468571986895925367134519275123060348031802243959562994600963282350534410052650638578442391043927106474697738042767062869275347339223098990149682362148712034332680677279091880529290216919255146776147632877291421242476492304280946628515027765402042954464753659476299648484110481519534918173983713420214121755154610041928565349317235585073511875955137269153952124611669662814600419094352991406381494182776899817154659433487998470040445617079091792888924345822087989060124736084797049685126850686731762454699584169983065280607020701975590802931041128197574626479877528476411859476337434301144328580775483673392382971573118340054839308268598468764018043369869878862311064117167492247161923052092276862450182853420687206874604424475296209834859905078623027420487604059802287690016651115516982784662496831398238183003049624210662714228427346945973435624612983781799123343227832910707134753985915595852363359385461716861031845790741291696638046899969032712983870531417848821844802228460107753709971427374227500337027306681975549386249076625041969065371939429006040332653027322921481484353670674830388236477280972145963959655232380244218742315396452219208158073051609557030136793380550649693006691257531683401683526306312179651435859165031127260459564703748869792007438193730998756431357030440996560225108746924450576335552022036582150864359871998126785337939589714835513463096600216796692307825633549612936176832034291643630385153343355248659767196140955444421648635130544510033828083024005430454026347425589698092391931335790904742300553986993055903135769332142321221612534389943558616428721626500300783662390863535529661233059492920792456600285888749330811256154905199221159698147732698448364128770567511377783611149978149141232008358893882668340669703486969345786426244548057637989195740334122329941514092107468032507926345896615264307063667174084413789755694344356291950232072139794306943044435750292392792901365010159136288580366167100230741308033407991257802249667890661313146637660117552193315132957868151486278445788324048961977438530956284041868748266393166338572606489441748179535379308874911508873821010726410579343143802143220224512882343203191897593460743774482048280305180401743098742794382517888138008821298225696727393956654656301015577295742155442604939537397633398403127114807929878489727494442117537113101868659650387599611799475813667000826932956299087938246586257972079006527335526597359871808088635588936222418202885651989087382527927988807957548845114272232853815518128337601208135362100434223088675624331642997812507265095799916643796112683402350537047418969473672774570045917244896848841780953657463557407015303428359838863669292663723991871043756900622267141321012145462440203936789659768673645600387695281494475200114515955881625324981041641787097079148597093513636773490049682738576954081261067096827416579201090858692593843537053687154350833342930998012021980759423076086837362770449416234061780733278767329038829125125841773226752020655236423269656752230032872368602236787582612428448138908933269596789382612018721514576600138576812642144401328707899814055021403805018755536680578445150909397639704742380351414476060223462173633850345203896483069725428505709021892790832663239275585690418176737431965927896544642056079782734319238357146563735575922809345306407775324531658714614056479650186203159169276599892909624229284191287165275080668411725923580084696468907696143418002914827683029301068680725237774466540028892260540085843153628525491333706580479665474846680004272214697298667207212344605499383584677173021288530391864995761450240373975594175405099647710057918253633995197083754624276382824084173078461360233293891415269877971887549067962461288137280465150436926887396881911943575202364941181679244095839273077677551692832585056676585329453449896767097760718153964203991969253672853665304250652923734620951014138286624128196203410640383138686737945614907902307737921583795220259886966798895072504255321361018349942290391154270471951613032662884461657040889049375177040016364146925252281721752080524637155805710385666720397958457955537989320401014853878376528759640634956723568060089431379461170011008652478531895116100516180911020295888778586461728851656898206252024945014928875765617173552396047230475984560744526611680204799493534238073750637435100138321222672651685886131982569815022222694368104259769262716202778958629627648614815678149002124480508201460324639245806789368196540431597452969769475428070012324410738856079403042323910202797292402759862219142633311286965165305646608795147582466790846620611003318814867977324997139797052694653134155422001215869565386314191161878042275367172080691107583273290883309241816871210181676056315090006722367318336709983467314698865085276837784077610057615761237965348198203791761077749709566625285836132961417593042683499841464639482217884110755951081382797091777746400704381495945301591883679549916073917497502702906428510227206878644568332795203925014087606955720907627319319158715132369386583364923653490706424597915551437342596667847899072947349071468953916953614269708029480237656890435397717527850729989400962574563014218732548650831364971343346328607265615371847603572026230550822233660118994784560695968838986311440742643509685125948717715759011880761845985724667061243605138649560594394331159227782097007378974117174681434946002695311062928797075270038744760453065832248575190687427690839200978945910248319214946017365041063528242499360926845809537693714313243104882286123788040416241286567033003070190027780134679536343570917919753116200001527271586170941898946225974908673733399299449233602469643535909598884348187914087682199173029315386246044744906429219877564895635811506172778416797609860734851187191356937350896231836952026734033166309661391549371872959470683291773560453834759625711184349398179440168648791019452219606913805819083347840985975312352434426937480864988195846409758438312136967262702448347400673026336932718543916888221700207909893072238032769855508872378852490524455527132848975248564685836241811934992539173256310135849288850965793288320001131033201192321150714301025399872999399491778435872063928642159093420092858514041587893710953938600121470365735497782648235163609973160788853996257507382043146730906728751909791125167004673810082708906993396884833282336261174109184367298425489463494777046975317524744333552779097236254840882676445358183938671637900008837374465152813614911294237204133030151177479920296723285498996180007735363398359117240434464059592863404884822453516425343316364326137949486574214908290477949969503632864457527661868933604257218348103023344263581193095502032163632957866428346334366880417898214778645876414911035670222988623049805237801189041826259685577881707338660722673417372944578586201024242181711002292578322763725941315221167810737846386435591537196448536900945945272497715984204020497506476379734596672530788135274140600262225567399342123067175441310999317978323126018237412818685841642453810209211801864564900359115671149819868558865380162614339191306114388133949433342889758674886757796206712784098377857769999386962764732666650860545756366287076147987667402346299553853873970730671607309532491068449523636087693653027542441166818448144660371832898882183356639526431294508326161992583337490450847388672560417706570635753558493920714797679422199472013421534814949928383823095092178977824301918027168740348220779925709980233065046400368475144950383967535195049158871838037336722960555808178253578157363259527082628898394476432025633444743355407485219229536948105499146628532818357008627165459481753369472108473346716555615224765796521095186107114514265056165444246409460939793398410077429574502691383433682152082248953865411467144004309367111148789074821755870845808724307529897703860217448682458807635867307412006959481068808744720364737440583291309862661523113036121930606667172125551817449346135033066129620042490896766334047554702192168119848824393293701360731276132420254901544251662602361518784335055471304770144395085772070657881975470347863637627607272859191475031079366358564744019576826606682380738775895669180068273330789950094935270715020348575967209421199379885852672147671177887956403359117186619293957911221600028020443360318477711753047020592733026269649184124845219354211033331042151507105929826533484878758760631436615604902654553764690631853562651167867600899244784986667186863727921471192623158831552797495140543949537979302096415531031506118174276257101049374254094634240715957477957179634870825912145914720008206226243373827800582360975474710010582656915437912614474408308691225077528635080213555602569342860878534549334887389270289551886829618926982599873222001742993525124615384984853174960485452859865192862374437191015709468599273153947237937984633768969585325573956717097679474880585169311051263555058501222753537729841242429040775569865087128284537928535920167017247458174701503943706620298415668231503768571367980576792491237994889453754760293825123517641191842318353224719665964935640140260054735690576060333947371597318834760927540879978544317301813545283059976874689519805642509360671552686538417703799405762026493881596932272924028689225148871611544053624400359110463785363843396499508661043743468971487099701479211824754043660878937846533237322592820862340774458721762969941079331919164568974731805565788244091574299537853091183555962877173306685104467333372657788072545484931852014378338491544605101128959554811940919458533947340582139854040576523392561564458240163956656052447399033122379260726019784655502302644175045272253766174080670992156218620183376810651307356462770180715652829216804597630346517727639158433934487134499741891263334593031382494624254551352839370175182624149850146347077067177447898203936404360574281484492106584049964108278024783006380478890435095302812198997595271294249720291240377496322691303309328333741926187764093845499912748298096124974277747707562913669644756146700502798443011323337043675979019501387955376140318683097644374924974382274201515486366439260666064611042807922882077212194250346972311814713866442274775894272243211873729176241398240743597972164927810095710309104643989072321196214555221780490490749965859851780628521957582296114775291983210349911608516146550250687271276955097305824362735316992168723588324162906700463768560573871075986035346632889204416239127790292581676140299421584926379006880648249262933606857098979966468765808236040619052496437499807804815172877946817229446750453454231504269158526637078175912591811990495528233002605363142249814635114205312730605431382810118025607384560060655050781466708230505114287621802948253155972457383238988346357246939845246983569268069673392240928425904784581203480312988076579694298772199093991231711336741791765496445335063863758555583481926147685209741576367490480236856472595922827777577130811072789510868798528368376164105456635321553479661135659146214947824338721091632483442074845510320039334653611175755358953544924545612644547130737376357966758135744009394639101693552566254515405392196071911547208435739561667277155513517317409223224519907728275835293071387889085366994910937715430381586828589447948774276215859096671989475712587558907948444258240337547882105672969156932862716943085252602287885933149103566951034761620507132475654281001862005050957464093193456117142150452668016183928628449882305010582250200021272521496931326122928564983909643157147403842856007061079460004446007222305405589280076169570671648766718224621330424690869295773714280608267612446512888431585572603909814263514904861971876749109279247741042726285350073236716082519449875938653021106896783113588028984705901133763439231450241754681063785614262381125174183974466969449849264036269876889973998430298141129851483302669929038755616042002778743938649612269583729332123945511835395707626784920020717890670937138264018136084267728933812604556481770512663565139858234456015634698691600712199252347593055780039284797958898390357866337297827043055757250873914053407938375998129701016525800647790180957961602639653449526952144629845883012475319147289069569222033903311290010739725625451274353559678132701026517625383919619073110766557870801382602169551163223561420785181784744387715300044942554918879176900626736770773224509146345237676174523480747477865352829886359129641121074068631580790493190216803504632305212279175178336966484948898277457638866063491755285914886889595354452291506357234755416302432388665118936313845965441328492374970954285579079695497797203777144615415050283181966216726999849180052553882805485501298020161390479748284685328210846501344930891907796581700733011519481083235843287982813377943139810033287561435085686356020097741187264454410513885708987538821663535631927889041563520716383220834885240245251028484555132255275912044655459468232951521886620187684710933895349758035561122854169182019231320747076649455820705875648284988958790904276784052051124172231662671670518881018424676490196550563674202827416397141719676756331573511895975030159619197910035359838323161008979691311189461536787653275566934958410719218247932575871076982801247321076947662456940115542912248435888807003681073647326897951075509804085424376505617167291390904271913953041039179801154296724062597195111715935960332138113471281315412393019821933819525367305104915666373751158095646249928178215066410397677475443677937877638112298484838888350111144948494047621064151788227334609928706225318956949323913098134523285176135607969968621860708315340864071162969891562054871388000810100090669472068732798494708901733701935610619227944922353993761100125181412358209315078431085629171311240200037023772777406928904413264490164194996544595371000207040655431389429060525124524417456352787014046122972212096185545830124435872860716160783048091314586031233259025781479480544378416718717791081721174711334252698913869305473492216122794410702097653108534047943445779957184455127898698597671049887087794164892508594766608915528382155815995724919266332378493094193291363660763848219073952227341262546521669871340479179958165429290881255977687569729524576446536008458928096910681113585145494911079104237956870980709094990917429158129747942572794969859846975404560643180821568259323961731086626387691443061284510865759614372697510749099087411848679794658201520272408452811499055822302813004432943725775705485299963716507003103464946181977149043860401090401780789971135999026895435214647046935006259142784041084231320756387755597930384822352579741786200629753452215257685826641768451684137506918007522833663642003081301013876806672561659091819777107824527517779974200723615153058572182534571028054631516363252725320207412023648371865039693586734967313999142955367433335326212555229625559019469813126359404621486474723506621120185155979022005907529730894583992590210298377506172665297138076592599019743713273627609180522995480336330057202850939122669104766615910796323327111236165438367188050402072644171896785229797238198029178381159584570478479395551197617769260061711444912848704954810511723586893969481191481365322501026169402465979623346830521068592856260309707008527715865462800975404469985755107980238878544161859555181278778915672310447107696535297583182961350340760790302502522143448474249599750630034364458886862042598088977390656292005347525354597502634327510357926925193585726086219466814811212581789632492496129397492371397396752069492411848638176233048971979491865505131363679087840944875527575340954575256868023963726221604813021354739065245716193496050399130995652377403251208061197341822383732169828905104203722182599811456183063297097078406980265004116256121905999028704840077395591378247053114139913581013357213877541023794578952963923841364815680414317462108520497267862558056209743507386676323739898326693946499032287644861568522948302626600215076554570133098987421479172496953192150542557584525156682540585112255082774818240814774382967363529825210468928619464969902811743398610367847705121898210472887059234009987442483233001271558345435167837949395685279801371786729660132072293060446524865787340767076637410080412079411428399291904891974491649794617418349054396964050664593009978688607500803569626945012366742586838171761412098331185128509824714678289944706896927149852751543638929867164015951802933176054568683747324852842761455662520928333088579648341640600522137129936810054902747532867426314090512144119783056904522486246582271134418873400480867188388588965470599246312276849981116501509226434675028943176199727659608162566176632759721961845381074487744508238689076690562577919587044083239193047834312799212165495092089117730859473314635331488481757556825301254223718218302318101147587361794629269128734684168816148807045295099702491061266812746262749474093140759746497077422051947014639617940743835253878312089265018107134783070758552057618153711659176673148780267337156880076833107222313720708305301777321410743317963475964095547652034565993985459277347752496496301815181800111957396314039843332720286206398003144317441679241029712913317393576492674324399092625845059838500905012770239923482603384472911886987537781714840088658293899083404271695740782684813614400236113901453914295197839694504481354728689336588273506765261989899804664952129382973658394550982644424195219784493905098861233815194138220500203950730780961078201099002886070950441518668305897294572001419475753442628813330854679398293263906342511871557113154729730913881645589106739684918403032908670554737785023192430403571913128373515558208800574257809169751562659906824681650282850894492256697442801441591828861788600918251558967935589865634774244625153644238035696421602483528166929490171318883826971420016442206208488949933197982244457396700675187967796423646912580944221336002590007435288454112552288679613318311759387934225895051821153096923144357113493744199096886258268065592761013455540356387391025709682520441709428074605125031383537640799353357307961856462822841230580089935258970129533368242370180627341665586890395172183209722633200322707788231837851699223911699570254574116084579969643882701396333686705442037921566976869240867373275100442708355102239201575704174764560511133161153194636717973459107514305923731479005335470460336471774780537371711064072753009663521883667863008682427377236659431841907211266057358799652798079142109393484545856618019063113045865776757588559811086367500552395305345956984716975827827152146578199420308408446520267687552742882984871917101892197330003397635394136423621674094883425059182104386131322588918849926128720653170174979164119629285547669354288296294439066944016801326993622213835088485644165863379045407826960630168584347717765280074643970357600782967720998109764425437715051913202200512309885599047119500973784284572606491310368752858106141201733096916639062568409079734385272221761561061506104092860480628446761356961808680453018690992151944310947554473051410823898324668485856283946085028459779243100982695485759227025251297459076340115011969665146455441787232884497082933091110572829523617482983728803777505793449415045470815327573688759839633441841944943511657786839835821159969296540740885972342546279114602606225136791813950743027727985119530502132564501286445913206162907494148169050234173640731138539233391848075809369864021766614042195563949177610649814523721759947370048231384831613928685698188527377434192052817659977618652956783207850278915594885805711259369255996736615092617384698710227401743765192519118760869947072764140981152879530612219018088076944938580643978983633324411540257501962163384020281044964350947741959818431841708150887890022883735828816981911848830790804003949489644247439949666703047206459432790979587090078256813349982499842392915139424094807902877504941246701543619323495093805467707858698984016203056971152033364166421116047884960025022663407380515603838572825869656776877398805212234990976912824209708902351426961523395206639289349274796001439095671583246747533081478704266730800706951941362899876712301419220806252434424087866876177166338815736877225660207616472134731478163416384075808550990333102204307275439228350126053648544431874088856596121294979767405944274596240341783549002444319481049983387625310672001484526390985449281401457142496243511650890005752682019989380847593306710438161383865162275546852009318947058474873559810515538175735085808189485483133697753051229101982790272589930212078298808487451989227202829248239831740836634353594976231316481539897851678985229273137370830462257758688742003749585052480069620693904037522421528640975045234344917376762336496333879510161037442879368753690219692950606733208925487647775265980968150966310562220521642253863185266004027959885494042020056089012101784804152025824749291350580961351269986831887226822918853689640796491164466908052809576016209910365403417080554711636196677038219887252511223711966120370010656440728662833532443374620747621000730781808167199226722746585269407320498962541078605657639574516399098713843657684963309006585572549373155863452880218690950666641749218776685109477754604576757283846495184176206101016189148849238741300963217027391515739130268503180628527235257162803657649862183521623042135813806567381247311747364825604795605411775200806729767159363377630890211494606092996398817323398467271624182176698379780441372074499811790522839059836495910726559164384191382739555681388900790857187391408108978063002181969856631135137307832497691305814180332976491595006015507002294531902881259785132764567280771480458180682170408925774004736760862142495111279676049595828526083158927550674317193572019038129218788833917776263410645924603100361887724946657743508211605007506024802974238000397572523604391047206533385443488808453239017858138037891550782099652108365987232901095286381871287545489692760517839537472080736782284606105284929219487463927387616592100064012666186530862999002807045659442660591896450756167531631283791663354319591956487306273800686539677173405139058158486284078355470217521382190068894499284321308828876437420677587665510632017242347016429258676676896058935341798314278666828164670083594181770411145926776824782026981484564805612574326446776437131516889111288126228893687176196999994126008686646297897014706266597086097593116896588185873964704329243720588566380675776718163635396543345376295680257357313312257142699644635689408021730743722289281380228413058747990345752889973620401607607960742173436195274097096504346916906370282167748279324308440541741300158444898165560593157253863818515624991739400940286778430288723271726764543060117957280933367860930710403688064674261336925798010541655373073790544178149755988526944161191039588906525232504705696691487858296993580398836319218333596376935499655140520884605899034704794922297610270497780870446419948611408156935361977383186653656578703741368846158141153622022038765860528268667106761138363625911531479444623461251537851567449633499813483908579986420987320134071010424072445987184688418008658606438288704962056865034642853597547819803876939915768830311041911717414657001311430643506888844898423406480512729460028218964229057973007977277601441647075525766340663504618361785998091882514982661310345228686463889153967056616592376525801640019630785123766990176084718426316461687764485094535502403182146096496782740566772295811035795159581362425380400693837890132446067468108414398032068684714715178451989606737059892898076036631952675602165545089245514991177203674552917145231130376521078770769446564912645812824561574629612790004266307191862418179707280522709134327397476988120970739135057567903684714265047759341146488271579936923311809289160787985954122311394962101847872597426040701969069851226442274894240654349157576131579126322234361208130389415343923577673690127238587534068737592434090250431099044361177979136910065637305844371743316085111073531029862056717718351493544756667333614952589677953365914611125000067217340656398903100848305098489067095546628392536306148423918197997449913541781575351465357410576360162126522964728741974096679487302571675886181601504260458200269224524486357574935702804887517723881618548125212253620842321784139886540799185956361326362649703474571349770812241767891954799535063366038711212424568776568099321095473128817756509460675980208770484730595930221757891160009672820364579365703040072865561881288856286642666301342068506650015410763935242886637129623764529333967525539878231837951366743515861048522353203003188902098765580981734497084680099809825867078508169175069208867002350384450334497896376029747443766847619000741699653657156882641001541190761884814334741588819892489703496004020322129586182051183859173152792599272304255967572881397645248622877581952324062703287695447554200963556242241783359047167321628845299250597975692361636552206254693950406805461223507414692979109229738463476650416025935492890296071085146163636289707020823582437385783672171816773907551149933899018121632066854580970527844327988678405798653479294304853671430132219505849060404174912733695766108013338113641459439432395115547706523265436792322385675915329311210735168543809359215679861046624356493545787085102836495941680542499899330520520266410831892137182364108061671780873859414985593322592430722166009899676353416830713250366348109818198033482285466955298346471037743209479449195620284503073541087035728519285418233655070745322197681599398642812063694436575099694818137930413277867295330405835157744116522602198058610522706907475709399695906220600666073973705110345727520972635125237311404600569528878430664761383357699675117797863441938101528088342463900369590565884645552866062371736574080415376556371515670021906303566665631072343978316958118469135819012856233951195672123412591084918312669626779126511644605222408072217573220950644958519721486043536065142428549380240356637197505279397271317491838320386156309784191352904027836161253305648909317887201551154557887088987181101851864570995960294697211258906030773299126604105850771305889300957443237733275729526506778664753800157792986196984655053917334277439717165210789372143632066655073010379518120205131418319297739190498471740830746171999017500847604298209078861891747060568997305758748366618276333424036212152947966855162740463932640699268383056529618221592531401603098750909898600846125516503236185657533718475119598223454436258502810805986308466634436618664268874219439523826042545451723182183531755813406758542643402987106283947508102858109930871170745122004514324145520722132955523362684216296905577507111615595835447689428381369469390814497772752857425802207845925673593236383553901337391506764417644610546777338754458336279499876154511881040925495671327525650140994390212388290925062928035646027596680611045345265861825565392435535122655135579942500555146559612447445669918316306619301499085869202430581016203966714614025145195690381410509834373599308864428904731586261289253437569879550284726366916090067922760846987607473815168117165817986780402305201793408219244349585618571671004685661732909160535673634647503831000353023955845964696170080245303987741928572885916693283203885681993709913946455071681001532884962641519602041850454138824778847033366676142327934125174623561774701253738495889076957864862632723093999143071485894345595716647841926537414019054141515467097649570995734932900131810938507121636396139643540699897816867428060028149514272864610358143915337185798792520046183045639696738433424650159526275128035629400090228237377993367144551527076804968931819476680676977947227423350537082417261865678155149756165878993128320233584532041372248145801428399903427960324102571817390476073947436640419855326038929909450608290839779135500128330849475300997275234914248123707036129880821494035203344863094790990984957744475362548815024716401466207787629495213069225960654004913216063732528960757084879900970790550377036408359938018813120903307416549759336192041333202389780542229396701690757972467829427220929042448633265370716417745960799002352553754234681107125704627181048012525892475522425132378827110626867830412553244548161664979522040637793297041843256365895541774715302046833903002920211438802935322554753169228165639585512942992624460313236426329729553002860004856950067025664284434091007835603235620574791055090934442480997047199166293210359957483239285412590777293857985954770718707614736203458050698193436620314292995427021275216136386067990940200400494263507146352606653484190495512805934507527770712224838557084325279583034981610806275393288753318845910493870858499886596406845011561121812814035354549731042242645832007603265223125309653323572608346541921575984090009685277406586463941956586644053326041954245589604813814857953401745459457500044656741209263831753118935819462923759634918262334256847217139211177968805481205269064374582508657665874155261325213038495061914053922484655342735016261457465537394623225534225232511489165428495984228626974448602257653893966266567119306823929074398298192360373764230357345524305805514021773482526316175002624204864553077427099196778684807608421227021974957157353900052046783855149581729763053966709846859805919178912731778267118316282078177239716626181663881279127008725182764802627935988095957597376444222983316313175250690519949190787111728731715116083811719512522100888900554607342725370543484635201425595778596617318402103329416801581793607747208505661050326370540059949073969259358643678674506012646823828590357766434344904668512211594449798052097841825047563407763470561703522688690788031620471099967950122847784696611413137348032620254244798826954987316204887180845752141894822316628750811190042723595332563163308413812768567598169899846356677495038208977221869454215725424989098614453903566909818435535522665527503316207019311555803551240466593876051069442101562500230076727017987087267767523955890727308166285094704009119336669186806125106067154318098110250228731477724120699572002391010951078095768379020902007854051042817804613606268235149082930334673713841876239595155719038823766978925314968206006469075206489400362586073236203691571556864985976528632630577472517316264878297114635870856527510782937825890304375833211372986155232606262543998175457857558197266843946495815960258671163584335230976047875818721768732484554679645895605007331502203221292222593739700753097209473655412825249265525452661210754008035773452596840884299847451550702049265053247161002570334082794212836698400774259097910830602857688973207410291679564331306633589494234349856737360958052503879105644382470500817914736881989308138238921914953876760801039839773096465752731811992922919715434515610718848160895773538440472120009080804503846923029662146024648195160352719809601623767636713125227823761901357915707909777756996775977098645838170214584907614328095599608251504982274711166810530974900984203206436574386511843815831252593351282221131890031073178176025319502482932724723422568808163819343327697098949509126206967364035598961922271203683807562734563525190972679025521067709621886517944454446256465089899173237643624784657845747143845797194638988939143694684528394738374178706815655482890421482572543181244909652650237988143848165954395364311343408551764982589585215540756242225560598300224433897299791491315912721964439626334498544579625737347711879570502953274204765163146101679204579297417569881462358560763108055564439178951810908032231081609628995839261498725490728289088318910944429475653796929522059336437748269049433882529815676737904208370547604482316396062014695648513753092503298682260652790239261323257728618941005439556167907975888914323149166343643667177329418944785932646919240649960893928360340362616178039166470821612504980440464864198481659091459519632082523952656634292678819415315909613432642320570728508561621057939694040439960425428017726624023203428057594322329765402033357399203766239201128870538640181400452793036440918818273776367774058424923221630372845137466082455687626820762846312072455281089768479138892986931061994545400489773232705820999825263459739937888068041853798812190868637527257263190500336843261958210240629141109795702378555169178334910120906326312664176954414499292801812135874482696156459047096127649691894502787246852569721956429549152189382811050543100554691594625671780929689973160408086189614930085194155323171793308196133261663127606880467927852007684377413993422447687613484757474353991930825997335104805057375562538594877467219183171511550103343656218952526416751495721770385840920616499237792859781792678827278169442756443683446995424278596145023134754157634941747017895424681991302304368634251271584720651455790609950166214151709172395738004150015488848377536058051724479300210597315478393776299066529614467585398325424942572594992464356701869928043215501807623785374416030756430205238895336001156022927829761218570976568305767062559554544773594663112659036939744185113932785358695709474319064185572001218094093255472116031583986323142080876612144452778197274779835584738078344940627846024335104720500094564744304258350846041638231409602084208340944861007927548683315372448522114164322744806487347818194281733037094925627053679066058626189660737365925417222155908351798253199072213365341317716183547071341515181279983548000232800609334396720023685373374436262231412932442905866148885753865367947498165208070339560902698826679093022729759205844396020633233302934175929104750518337273230372188303897544618323227966209035179492150042000257054959333062323383609937005353937073434606525835613951794682074959470782285012143027641414177669142731462552974157842347808998913864276010782406353523057722240043667084315455832729044098659151943121842145560476135075951726646052414253286225284810697913203509336972454159845904442957392173747353306564491863546315355147926056106918378340090734380091140809837969885715115951845805249650684545041877640782106887319734428303860296243347632119957369562978230707999922907706615366191880385444864608494205190722015714227334434346973241370717487404855802539935747093879377063059074230324940749535139809610254248162266058129318111234488517935385119499432899514357453404456563138349104887285204348605595484378864277827217139064214230043603305619987468319971110414398762029115535935069153279395737966179777178817818439423095300398129256963619315175304007011357060029513760579037019902919625867268253759640055962662231257790146008048825746762208107533165965553351368385016070999504667678773942843964749909974923936913809651634756546521535035929617093785209965377660831056007974309391065130883935128874903982596192550281672870065128534083590256576509069174936734992872342320332568723652109300367923162117134811404517778955388044280695325685771160628731009471733281400298608679370900596721505907390158046664510554498820077122915520074369281409161609283396743512800380102368212362619066296446383265143323257268392498037002277977948148981682470658346815236508768588172280561453290255739468447352807907995641063009156124100094166514841759001691228006727409168988736223040360253109680495960746076445460338993803435593595081024937729340074503226043659186716964251586192580153706401494325651595308970879913509218416586900639731623940942364674700385614841754742623156967922337510094691745355796077824052309907383838513753285044569707664402619882315154197288793586606970903350827488113459762240371531097624163344088366240898037230463614538320738262455824718515509551047400731786765721238489023249024485234342419601319129678070381487336265351263627285114725942592847958144338427864896261460402774446725229730713146010444276714287959752586161547835011241917606399538056408876700263862552933654241612312997790465107053378737873093022530747518233929010245361004115840286672269300812710674740971652567399460237863154903341921289889729832040340044478767929144124767071152075651766545888471648362814030377400497510023209283037852589475958565584685628802695003019205574957715918845420208467709977067423464706242556898615306287954597162536723209429160951989411265812005829745437641533805948772069786318584534629053175435818993063056323167006218444177046350305126863292029908986092438025561279742992385770073756317138960904138023523813431325955909225943427253592536209905201119401019808944503587975339434210247856223383790015564755980236759685569108661984767658718676101019423825735093697580331975365901080762927893644927110158565388101456439092497813539665679668317920013517951170444506485726695616434117495575578050547601722565484247023291525551666929675548861217553993242187040456862447109520942254810614104212545591070697692579230761439419978559087104034550586173852200982291725965712729213378616274503611696668021861323990628038613230607890050055883038742480369241596860439954859824178194292530238669837102868694507958282296345692910059292289511270787776693784918236236909242032766684709844928741066225023521057686731932632544242339039030535083192765316980555356162163187944642678762486001834183348273497979031325426197446627844980585319519764765859088408105041889195759394214983815181586452887789733543360218809635551432698034863293239052532488432730759114971380414795609154597438760619692618598639780838386564762308865798383204886872927449363321498632357672363223649284167611249880887658291214043070602907351335784376208243944800554756069241186964006990650894457430359355301987178249315967794755297941284398888959304001577336494173897526775088024892528997110657429205664390978400288082739914079244483524141063076304098249340421062109719962714835733328171587856569075235326562599826634387006788874189623047573039277669121056030812499422559466460267495568466028125175594566073932977420954668700445269179497245983679909830005367609125798580988526676441365606976031905373470263070559782554023212898650273681149250664409701812330611191609947785460628509481771390552961526794955116278826585814550006320222846390982822922213206126807322419757230208007601591720101270111245543175973824535863576145558291426048863050182685939002772223213222227594436139010726669499519521893966831956781079052953216679055009240068974164680875950007088994657874912508558054689870203451734852342154312939813012022732277825342340112236216709101920786880636777705935424063623221584851345865510156195592140602711418011826850168459047770059060243685970156310506549568163349308329161916351130007673114715465624728215953729778657379736312144327522649011380606250693237225937848153764684165581183526728211643593711550672358488246493793692348963820066318015582365875658623536452428199214436317676228231061060072235190756489019545155001934306389082028763550211917706478687953025136978674024307214996574611975941313708662927543968586837019676183084116000855896795396907006171204177881725864230219364021959710685329706373603856117880436343306132605787343107723292409051224650613975965407130277878837222933964926778251215635151973551289732750328391846285787393884250553232770595193175724251321281069172730726527520880992969401042878274027056805437222553208748111489340766325954281468601414683290571035674863769459040322772111435402936802210006270819804956367472380721640738165636381681676422667636201648825590062741701906244750910666939748935100286591398286587329646907010348434414014538017712594494269265939644130153305889463245539310660019475275928203118156411380188706785807200696366775113659905833742304720674004861441645339854250315797973511174851862060292822558373009148440157617725091004713949089665472034721488912365062496751632794031064972218541949608354095764663509660486768465469893838310842919643441382676250840034623949603841277579499002132957556275640026771244372518037431788421514296960931905149368100868969469897274440124184393813900142915092261749749352811944127666963809141396717377963303567233462760733123314379361513643139034843697827973707443171526782949929973622989446444722605489829014719887582896849439332834022408065709292279197815333998088696462424508950556337558132498384903171103133149714040357053040317518187347959398852311849531295417545945998836372097398627268465724997073690781101002414642090409159393654809669105193572885730185031837898317875419695002788296912669383883031733752487400900294923702396184089166755649243474059238713395146477776512625980327187197487368719791693800174944816409312850375774492654980578519636954688236526711219651524463117977450549547895439330475842570241419037203694501923942152011303919384851797419366333954988103509419854173289953152921072928261661725752116467406809111378957421400003876923238065122103565926769235310914219408038935950670654375574229569725008227651339113270772269334311684944470663797954965028735335241225320885990498780222293116030646489555359110810322998004826655634429117311901704821918679755586311451521566352300017169895757695277959153270164116457003375659321833552567091152059626653633681664666179825585000491585191548802184227514296708756462393881377083248103205003811809228186311742003430017764124521170734499379372708791940641126651120497327381058830167448839087582842390542223430073558011131071560475038711548512667245365673099546516023654850989169839645407121246231746848574657605431475736757121021136260644254558292307631020411303146624018234822111315076071723841598561727018088603366995099853148646757373519654328912295623502882468677820732726921295254442302917137139809231752228572372225509699921448104549059460649077394266216342542055973000750605794692489606354927589704498985336085756340905058246366329790855328056631843265466149523553608232105492163274312260196769756542300064292037554483570032294425716748820920349895490592102247060185656889219821716194157191877187607727175762419711089901786220727737745747812001144019527540373175795326066822354595600677353911290987407082499501640507845337598789977556882897856813705993811614743599501530512659804362560834176921870812531281620590685172466212116265796495823809161874173372346214809175289399911781576100723446905998739294129769525841563538568775479360802882092039017299519766219609312485540749547201899244667179626799844677620293072210125443749654944256396672182271934684406064048211898737727577814466368433778313308305072835265021882995466151054388573532032406142398586912882552687433852167081379034139713052460620178658997632632842645449215789476260767860256357196486571833526892830403389720354763157847288518207857901644191221145635753037524981049673178930086048575363885087229581999821599326108119886429969177765965065896458024423702567128755725108208229998507262452735677914991928012269758604630344060743704616364886421175363606738055485479034181814719220838794688711332025992644528189081430920588875778532143715794192812819335230388426822272606601492866222070212022259322039960753836378969125795926763446833525225676498183421857583125297142631396839031117255274461743876380699333165233548947408301197722025340667058631402656298523719569322093588546346172767094890356099045780919622666863689681310369047673044853761392584733923434577222325867616815509627654680450375018203471167635523064582379255029214422629588527304078378483697364946538899406487050211037932729249359133994259508414399540997633942675010141946425040445169571135434848588854935257596160771169411048029982417753135609919208644746436651244513023852745961196192898215803384263066646573312399623830432694334593393424529519233574145891546829941804419047073499012719848175866276373799872076745237219520553447161667259438522580549024372093169478326180798895487968543351055995993768757835301459007200559024183282908395656168567678176857038317417707928446508975051724795158263145437451253878782197744379891513127195133552160919038459035999741320367958067259659532044609993992058351682232151332915560993182860046158321373354321539915242427627436904428256438095082131207157323258233841582589474787893413714089093796042623191670305647922729459615272411523417986889951610800615159779965891056047025698427385076456741303720823122036375751957464331631890527895114304944066791324208753632699764366244738980499119459762015842255815799377301172616083022748445536965159895270052699243549421498854529309077515734052552523396798064227169272808665776629837946996344964435499394434144797653797384043330481493709348204651342768335284893438913266099497328830351820198409952495429338525395899999714429654524165713244672133301859309430082872234351013358023794119544986394308179790073423634724239468548991271900698841170096581338523153547436211290877116546277208745823462257736952970337792069456333516114296478998319521686091175230618277657313691456697278336862570096886663056195352817377575611995054334430955067626243495835343519415788923612937011053128617969666925654701833968870994081661614485088663827003364427624739204307912989041586779450074776749539725673707368598964990437380285129947246160439678381953016579541049954513169120260859693979528275112622601150963023388817427452411448207821388391561411443233141422880432458464389932174446845132226851315160118999616640378847206933086749990656947080443795673553434870522972193335104021523364649839864133429244961254864912032672276195883505531690026646606809752864339604396905712402995285976592992542647288579255889834911478840858289522993494865964621666086811881244930545537956991164949849432562485267630787336839842104568979028981251642542881788026080761930468188797971807110823117149829182846489337854312197235592912734342463276947659484029444794949191721043942827108821280468953610159701894684552489349124795821961162148543805792951298729860489405878545043715213374167959298044477298626748949810580945365957250788788417111583970283004737250105323620602569475446968288409278835002392766971961681126431493525120500577908833364652727682438191598416209671554478879853181794786222486750884036811974611688947196959039712756541717277020982499030176679745019676559706376042573847101958448374017794543132840805122086816458916495137717231806630631225798806447230465416044525964343543463011889849801881338679742604093756490825082815384739331981520549106196249346047690047516034338163174990275330444475818230779106655494049954934883062168683854446103853084825812979243270570983864651898454284078950151626356719792410937232077106631164982617473820902873884634563662515768109752707654848763026179093291901401927328896870802025781740894222199169530214401507655532718626560740072409735295193493341548262309142016309310090287163991301711158952965660031009702745161380560865389067092500748397446095880030796531149833553423210539157517550116610084011606136225862977666092846426698053721454294456135246965254254477976343344819827148154107730952618896733627521277019045653744175080897231023042381892249363025139306574946390098966110946301459603886748197075220845603153893311528621932639852103092801270675596120125533910489578577823647257065069333058132977142330820699480411556521826136126393545692519990128595229886637256159139001704405464373629364335328458798746487822228356887102564074837003169290801481710939841847413991928782414242959525486079652074365262014398783118738137010052823752759595488057061711534233329201452386480446783004823205099478860516844418660785478940505609741019895937444943119867096418512841374025305124755003286180231958540167847330235260466973274140202730961940053421270041908569211164680527605510099742202983321976573268027787935168386465406042995268306346927416603867011915829076665794528855159631705464981286902350104328168070675565474354947323172936251814741877114104269835796981467976893855532994178634634345681405793287449461674105227703133568133966345633089872798777506589081346678170115998994546329095340028600774299436219073955380054624873442675074546665723595721868287775231281201456045277919989721440226580205099490018034339453140978516118067861310960373371591534124538355250350228545942325965215155188276534350633046038208278569035096092704968431557598120657687326667585687133698551867045951207368504388691497846036882305916114858317848056320167559923366820514382626944793692237468546218438179247249063684637686038792309088289009078201129410981606997021877960978324336289104766570811439465223421129839737694771587861942636005083647341189423391040463994349012758230584414487669368093667069328815870650780940602782334012573798150508326541198245351682147714187103466938449422861988410158076232666029952179683375133422815400706830764596289333853603464759412942287759240618490073757094236216538148707237026189361782643171505028827663967468851219855136757453779270157037945564082054929081454134808812088386717331457673956326973345918983441460014767245374295651830740385728645113266784752118392145509486851266620614817726262037932886446561645339282866141290747438517591513070011125741469182178050476187544059953455512743443791746608434847076245848836338312939802556040499496554898894926305258081014206794300900447631163331320492639122668527514875031188234751808899753566208871234693657192782704736885138914361531033804049609565213007212497053676961657021191160226133811793646213507604369248916625694857450903541791099747291488997874550418803005841678892359262529634992705667865962772375765907826785144942118448682770254470394814891401345544687969344315827310833363812800551657495968451972969759684469557600373864681815577289043324734703158601431171266307996988925995480782758123438473303616146831315967294764047682741509974909880184002020997391730221765373789180242147960715676990774746533434239574938529861724092837203243428552702149960430203564626465141165962672187783739929358322735921557705156051788920355798351986800573982470582551998663058193167098042251148139879739925088971464360594808296261783738835755182137293263110097794924655533757004027196090206074623691929565171313425060309966766357796033593282590231662238072406060662709719896212598720696254519872967466288248741416914778013052858868425845685695099138378657560230906896497230169712208257266889309843653557446521824930473061981769861211106527070037990038467661932255033390754029895806690517074164361838719747248293114392224667631862927118953837626989545773083718689050134376288109056424935925000502370783558651286347074663735516838805823339082907568955573472169478497009423882839608090401714519959463383502616273696711113692212786088413785891094992961877849072971955665047300864310308280990753077861560489290721593050576807694586001536543554340866965082055655922414402502406340571913676913944080147185548428168903230513099940015918648654526558036134992065040694212563456698128282646690685225908419269840437983351670710767891208929393937289026984780967124749036135142756912791415339095019166298290876705538368520327362681767262129509081530936577545058084545200471094709001728564055565379938152426993487079794406883853851372478992847250730958433187056640051017128940798838634441786671894888438183107945635665151876678707654061935156251556482778023751453033690242140272872526106295840894497492546116326425286984574487821153349311336990637231674207548227458797618643834572702442062188431259171421453173590640237764321136916865424890106039969847216935121249923343052643727093632915238337512524946034354358242556478175909195915242439257056961039132667186793715144463511364053537238364051047035950855430280593077893497921797809504861989217551645050642060916348717900355300001491794755299229546059158546254130903848995099053797413045856829973944853424892853469780080163978487780862300573720534381013581211792685848692245021591429007593509668260837158632330660514410767707852201766509373409956276545934345732147840351950944118858694258445864099944576112812372417101985164878523475062717096324864513981220886005763861561698718041256833412411716879974116080549820117484660622056842411583779001609880925911314563154839614950326352377648793671566789390851577834833898714333239020676057872186722896347903198195127450451780299951969846668975468318154870107617115197851552720535196958209245172131640461631739486292864118104101264110097531937127023396543257317771263545913718884849136979906455865785309686481242725010988571179544389849464102996898436439113479810897557323785066212271940020687504479689377493508039493545004678715456353920771226233678988613109094172495307531957074783456932612674756266514248431920641863437317274439896955525572023818090619017998911373669730725901572492846578205404574243211457360634309063343626584436513707872265963171180785912868808051146962010072119843553685304464332205074454560783756356356268865622763002299578265981247904716663735273025189242019581081438651427321629228175523518515316121744956446462536239824925314025946046521386032483425478514587217586845393805111206340756773552189186663252458382083042671506983925154917039139389607323003999468497162627840038954129529321275838429911750250199100609892464209757379301650018354742608979814484350340657520726593785732614726198106472930120100836715000301341531270110947288336547880050267382641443397673129077674758370595613703338384011121413406446143744614031384703913583853004493596951931378669366829738596166961544416017404162106569186256846911573020794928004964735932773442003446601418985525181631637120018743252843042953077476958031169165311695121864540456630055464754510389213302804803167833808752199123707783352955217657255238740518521456415255558092316305419700568296724392492787950634491519576091429330584646077735666558198571276949000320805236676449982991577090955338070122565955168088056902541444039339168646661500719993167342642018804862287355086784713994008115926092454404314683981895491219069871949354138936652832148971505956265562892774096144309390145925347545695275407299656528476025077606444153466646389963036684999275579201746843783792918099865766593966953870745150322278429565703906376351334778878250087614686723017880487148389911345724005217790936795173364149952694580508621612234588834399734944715096181389659025134552496656033733809136792630238557603234107989174111324030153523426255850417437392556071853703415004557082279433551035973200583199675145946207606258779011225141401752225962186258487085827189889405579130383641230552518149491987400509179144935202722097398693525014114251085994919938878796967760997303853109232179331002489253958157870432727339150554749611774867776890709409762812724327965710389875566845988719407048135419467391122724292881422924578969114937091641378510303757045867819879980998124943911709300594043275442904632290001449632651816358983735469472938205645183149681641340530402909397145479854673447750951672009175210207213603908350809464544875616095762529109722814257077442565214646614316959014572953732584648049185624367704344886320932509938881159636977661580953464480458976988957710546440189588555727293436034785115876281048982059381613980523075978773546931701083955248418764982065295236750212639419219907049130152951933867147819898879018611151057155463790396002111537556716003352779638090245297002902124911270219644605140579350689516104198075553998274710058959648831707883438269487150062037891448350395208246602301393375859209036083517567292410502099456790280842426307660953757507382039969848837317577109078017091959982998101921348879459876591086529130513029789706021163473608204871598626677418986423053626592989125771038399256584435169490594704749708876299285492907909621314828005938637385520974023260310881021971733359267022829308668049250183536607246823833017731300005646807744027229039171689060118443820971005947382684412661184582758849228260335767106639034789456310184710851038383263633991609187143428948291578153379948307772463752710457889487062999682564254443186305351507090123424368254070294414279653935516861949184295433495550965333272206510815226327173359005043961284254526041379167551299047504596135044312264683106278410949628011801686029305580300305291926055916478121183564547848227548843007785088991805386293409958867596069404534391993119481811640605771125325258830101326796524434985433372742439724892793101551236223330644329531684521754707523657062363554246967022840434279611858063354451836296663476989127276155925677974115545479862734396325745293885882540554607620532085864122246237273583733572828762949672486519150120021498736992546640750446774158402235592912217365365581231412184400099466609762321289802687898623546370610454831000105678580094183067354869616213422171594004601874676679534057068293330004524857415727663148995720960414273840562830915867404750644783005063300797207420877243075781043824358583951843727120836390707082518913718621754730849956653954446304363482137054839649659528291997224815491319652098943885719935058147030930911517805280549767306098675813910193742645297491701890810168841307265420917601238607201890973294221942413569291623208644730033692762953985839482256836810998726988043398353904676848687150842826634548712459876624985103302270581975970019167877838060810216398795554071083140804395108731446442267090248043856584123099634305121522691627212197421552710873326148422544310551596009578631634966273272854109293454118199765841072868587161746539392421618254548985962122157329981950950838481625325179647123409817787370965788030524132169217087930028667930907703110139976390330992865207908426451237041410584460408955136775338616842729323436250509004409198329653847803731332842837692156011869532445321314599155257972619058073460296028875301517017838900534811965317498717015881396938134005364883096854798335578991000197079194463273538798786047738895307917171783177209772703209315693975772650872675452668240600811677363345175914212502228663584363563903522402445808347079206254443258138218667179276334361333189663772247061963250455755443163210063323512753579961291029863344297210856528069612256259601108559046724281597962824843573671480661362914644583010355898664844515875085284474258301338320896907754572015811073179285100849688417378356077165385870894282511406117596528071067329184867911283551436574520778711690634404704323942859394890548099421164242287666831845787486445709687764062427550728257556447194035934753528404487681256348115782308958798195649480123790068081664733318475100092494242179772797926224585882979574807715889651880544235221086871196821004763759110589890281865314955288274399152230497099445874200036845910760526962658310036231573278880316958354851312356365141915458471443133188788725431357147387118398859436518156714202526316727591889002362810658385453439997564440278966040378006603656477568296267590234289052918236454045177817781455859690396953685071452824966377666086438069163489670869722683759774818692466764030428442822134147943355398692439246470795373740226812370450417931807601789938947073876715301415538841515045367254335722534773542199871030629290355586975986690739781440308772203704639525997435370593894998688965211319442084026877902151149863074149873137153959644737909264243912380992349306431264967266469549520486403617163498607257787061104018088011366559015562078413748322471123671789075727615580585430687859656354368195533904455269195443364285941326725686347540644541082976806639461484024581991689814337320863767840080191773085189527415794032926812614770335475505480936420424449282810029617768010397918954039503694526133797875895605342026264111752054346445830729931582841340285576511651929710397876719809979183467880545159660956802251012925447858905863262601395327308114499918814710239422835736015768274382908872551042884677688266177894653782626421855502958004549557466023047021141983829168655961433122473460740277162220992804718698068708934269279935055549385628644141994382460316636115830316328217915180030007281991391187345040372648024718912402536460207531028700666470793720143738727632040097066978844859190751592405705844112119166569513538056880305833881294279710642490226726591853451610409859828926873737890009303722265543414106258424162746919073869139010179991387667453973975898155684156733462511982162165368331327460265625179930527073326147772435760613579511934324415503601372211432977711933366010380999939897851071941627688326296968728416414941794861098327365051104007724846903647788419153669147156614240625982707591521995964595123628503134111025079283726979024113043954627838312571643397798220696774598755812806647114612803546796657259652861992867205221834917872832113750747483909973414785324364777486295921855519791542307089804326899202092604728700362941600997493909903237891240433939259578726122256374383159518105264417601077609195013124751334933660103005318824989031922703177584238956649189843839626155225941706230618330522364568540351880894316505700826268205802343208043022879511033454672517862905353573308482677224887347962387786461930341942955155034941803877217146897145155780248508311204104322505512743110490714336362577554722052490354425780301593625259587618991596022020452588687249914561146089215877789688419866528830915393416173980989037423852786017951914306946684588903761478224085314355770674367100155846180163458891081969533471013246995107256842061458895688560307476233596372734261977706123200843983637582516864395380767577306012644203423927987362647305436801166850258234815107288919191015520365187202059723018519951651252824158680068255446473017969934692869834736676751954646020366298123202902252171064704344976402461381162476665004109181202823712620554463976307697595573502843049454565653406063617491494132567594992211256465155739242042885409297629570573491684610900472228035614801767315030626911110661187449159472162847078060103239090199179885061588642935983426425347146158604652778828159006142282171075746547627548274148290350921823382745087842056275682364746440049420170780537893263049437593818137601175293293063879768883065452719476234775080968009185024562668218441347062063391951448567888297252244238829191591675398920749696650675481709623641528626704968067954828637323049644808420390320878560233052379175182042389827231929772000706041992115408375315566959585825228720762829130814124982385492930644657370238489919727521442350490767502775541757580588853191135995681442139835368879469567756804791424309213258196960383193344044316776758541866970085259934472100652279742043301484024807413442671333537432968041519382918960642086629210337731916498555026472588570546050831358881008547721875895419293389225963847430649881323192511157377017838003081797828322880154749661416942645468753297475631219906495209379340273597490102730758267703252858629789800780253453607082731677460310737381066411167061433236577002585216116391408122238684682037337439860555199663038756219559693007733349362848042780081559753250469625984904039535482612984788561178049503374469969472355960915586061479770467670304746672518161030432919454620614972618287737086108959354502633873209152005210845756317029415103972073337134911999235457373115192468587700367449235115721534993939874725629506341696544493609538337573647228582991195972419423660554637913744797312490325376060206628067129493975971863981062224187238290936138245321523196221852211857113560397804656346345322644788825048991859094281080218184274880826468635206845131582644175420918197242772978934389532256990336478275029839377756501378297362705222990552699737925650998427368886264005899266032664563450200211141217422081626435067263532005014608377025466806971342742455621919082593549235573660643007415154254317666173036942298065039236762449952365560823584138187221939358909287813893096323786356653075733084561668510940531801755503200565254305636176213319899063696011397231490377826538146468340058255211291910612517288771385877354629047164167070450376895650952626161477032885455338187372340866601784565618436547592952492335397672389940505923979577128062185586238862199945088662120575693155324166872778722353135607761443825918560676539493545602969920490739004495969392995283341592159670663002074208800579960411736872402655283037797206438939557038395270418724270331232925409624425167606324821843440754887347290606977698646165986996372309206553301081307087129733431721428554795869321063306804335601498134946874929012156000101774541277441030059711382757169130733343083445406281362031902522093123199411823297804409113131647714983444264264391353867129309638830205127453461427814229172844747383108459988222373023737490010539152937427207935032309293761233993948722969605500649858274818785586563546171626488075390777566016935992847959403813150868254485519882370377462900987813152049768503055046639753673933241386534621858471256673690044399387622221234792275934496186372113626821017995613686494825584851682051550094396981929838961653367324513911682361380602151591570502662541129099462915599811420557039051750117582922532817206181608835873286896784098194539406902764023610750228869444080471721439551023450985160769102225171126792849166109861517260563075631703187695851919625917533370676709625405264879414004296109506559241889615980539798534501568121801492387361529888601579442462677048461719187875231884102339316698559811417003364113211511060849489018254978070795640080992981911399224690177120153752696219030153886025960236148747535261999073080244816810453046790490675760905271466835315815727031926006648798018800839731722304960411618572332335859247238727392313060737479703443281052472934045463767829093970060505607324913473721405242117021934498409312713348903370939550918626213145135137920261690560370229196924155364395625500222069553059513741933293609463152121378818567290033791894675894747366342976476620426654507513538154230956738835514530398793023448644546841284338694774258368276547823535687090078722056512906589053727265705304318819272156649074052089118794848196165008387743778984732738416962183594967976786998861132137722309850233072190661747189132638769190601530381629206702830746294058665750066856433176388737740746400801128334092252805758423569980713378828160614859689753708237793026807204349687354420266154027306194474065859721692996641357789250228794878593948135100307149739917057150654445822570566297319639396494526607596354105094916836591090410331339170512414926949307836988744062271611162842567555741581087712404296142085007568043799384246291243663687425902082356128131088523216523349327707532387993116664874061289008810966355496039259211862027549605087063334054325308118296583798775159297362655389077780887992448241102889550666499114476904761798804941391527870681542555502861688296003568282833484497572812068184703373616367673906616180475802253625822790338106620773172603630605794748600965042867583203782243901701642777913025302599470025914513371822471615583889068372156210206009612030437383566022357962185227198589889979165412774149600787359994995852338399440095145770225716660515786814090041865624568958672779564035810845529733926800404568161341685443079057393176889125646954776761147180224263952711337306074072929392091765172997700745870611906572178355813579546539330876845897323529801045332301786259824073345427065417601458962044460044918531073128694829914509022776783097185036149083087969063767473881745186835713951937304841511152564302173282935353814119266029807292473742331803235624217694849594658094123409742100675641229641100738373216637774095100209647628206117224453464641178915549638502727868649027939902500461649165368758528458510128023955163454839151224036276756930689731019320769603850584333121248094817751346792506427767848341876251883581866733320939485429792117080670703882801651268164508783125237241448483204508625343594601348672769413310626527890987393146837220750042996130889181600425878434062978452028001836579588895225129216592419844419345664808701357124774386726629052569703241868222558410525552855833176196493379911380026849484576969696222632647888400455693904020506577967867650401378228153222212868584160266750146435130400727516429488480628850198024064620958662091556407229874644561105944560287864847027324642612590582983782332078801220369834638180882871032937292810302559370122317020474076732464903962934678444535143780095994931805708348924235177186050641455089866720910265553126079649267385143148839800847384551043159544012883072030005380386788467811720747560137687136944423851832793605016543179552113147937969815253326489210485203564234020775791654511299961729898525141517288670078637727595860208754075567724832448966923543480858252561347801452243740918590539503815072774228829249622231687703403976419198944225017953323861736642448206466375200342776265219794964751448368956427584260835473727235322960569119375033971721952473166178339226823196265361557299299945585487530386102347467400971549969592843551584023452609234849206244885547916928033003320975167905217179843949169705280562762634580812601934432541731454035044423071700632290601614752123587428196843273890200741126618518015753769091066195294912736732144114418635462004109499010497570150650677262215588668323963935042918395379460079837426959232989942199482578167802433485269690746827940222301721483509950200463247901430850479374195702584543985646613974116588154845395234719819954018699286348622455039974399666055269854679350891916319499255628320598198460774423717970360898452975394524850825631091968924722902713996220221508399762862216583131372979625059096289007312235209458061698976780488854090150718810942256498635087382331014580718410082672081049319990878905754863409335771717611780626156545497598691112426506154453977328306528553835301905755615917805500362267897843251301904499801385423624891832515868424423883538297987724481481512932227339744484249757973917938705843564804550942658750758010835326965296049855379094701821195297406644163146467413379069549756908989026341545954357055413320781067241646878647709645563140245608688578022050572557727153222743789066641164712989708916514053217685757937596865557157128310547991995708378199789209301584719083164735017449647252160250802232842274919604415715994205238507615136076687104590311850039072763900089427370120693677700603846726414289325018059814602990826905538624716496085638713717807237198639620123835048045687883129384292102533548903329840159768388086041020468092429643164390298043385089781303986811192881290528815274024010483304937866636452887706020478629229518475338878548410876285694866769168461370543851586234922698747518159578252857176936044104633225872368036514154507128163781303821899763321313741193786867578471468913810095616932882581526011079671897970754341717132299637497124516300182741693779031412048750889991914090669953121903897301852777087980619443709700595895392797666479437545713879832303308243633683325876262152082871639815198553660851830539593228333672797617806310039251306715843909922880917837854144058114574129941052026965118106954963308614494218328730461894470601967206756617663102362661434933324743788955980674748900576955978511131522810957421645853281018760444645792485678117728111914196332920003052644723160666763531323516499479284920693640710454603590130758588231340533895449410853863143566059780770015064488146848353991455274972947629637273977649892955211841368483067717272469373017960766364778686085304610370594967427326601274868251034250235569273751551220184111879162507924326575395361482544879232014088294030476173905845784136289076528180525542792837698781027328914410783331079049830062980101190491704293606176854551359035182658009978111922822456656022749833435330203722632671190579841118837002703139710552007512899617834290781729907803296650005814719713988319543172311011566267219240702753832364457022886104437409129188276122122000414630263497223417181068192545663249204882922234580939287493297896838633233947129248462604989244577525230971031552649149294462892705149933122412874807058115408108555046757629920384614336686147567803120305358681615938334172593019737048754889843050774554010834241247308526846725626712569509511165160525223994539182865892677186198480233841632245578463097474787603435213699165329279292985912600164115160948092819573305308531532314401940063697957392298861830448250050955353627219012494484013251036143332555112440494441516650959281968973571886042194233303610112447414398261387385542176007732856133245156426223515972920583367926816059376402815754286904269315445262851201073039417235863023013855050084095249996120219768847245418318041060225076320382948624118513318095799236803011109095539571379400792632639926939727950612380149047014166315394060390241892484022615470737707886403768280369058174105293819741065441127463692985363774913028146952054267427370717154953488659581534580194885825625256864152810309022030524277122948578850285184670162576681696777647591123136231120612809722719596490106568257484816788019337365448205551315143767789738552135315508727914593317419468069206453773841292151186598638243845441728040491568261358500875277815656793236837875169754480434179572483521984236238490749023060584515635759142361715733337725103970270144747628900741582064666044376126267234388945811626151846708061918097536445865306166273396818767067510924045253392455527917271899802413189765814974924024351989036824630000942973113743261322634836093485571920527738319261619213639297737641359498830192056577142302360348768284893509044698244020749577550192531185205903304854263497901784407154197268253733506402660893666765749466932071840178184430211300874100446151775100003955908526602675606537565324163609069578061244184031349800692419746890104195362588166073146631426461120420958556948653268596241447737909111360456464203055801129978272992729272811381514518385434124883093662611264588397947257167092627058437321425395658101642788482806994064427780019099650617376800410658238809392454327658801522810665993314993409549742963575816233126787847000116949584910136334341403350330987590970929606119302042700137860275598704910460400085461813539233596194367714182431235332282015428064844842787314439417038169069518017554831303035533803944123290389626701668896828474301288239801668150883589693848879483806156702012050590572308490793395052330920282004864700558661753161792687865624225027175516107684604606274959035507602195502458643254329530859414338724258792549604787699582420058515650523291030985963206146107518613764927927239962868723299305625074380077527699592706220654622902423218177136048858462940976048859786797706222651107472643306795270139007943382066730225362350478972604062377256943772424969925153627169929042057047401241519148208294992911617102435925637645187526829214404651459109016915832894110135978261207436560167805356879667768733931190334101780520028490320408353370750298558759503014891588682634524055608102628889101378682564575781164656516494579714195437108241916218168869140407466416958823846267666176066109896461060284774286496904204159898688170747986698194516350980470522772798466974795693817025870585161170909089053869243798094933899026088202193206853644658164687627867207770005942234765368807668378153800414825691211182837210412864296273616904245590605654649259055283242467541917451129428087631413007081723509676459377044250846929448514880992775651219127283098270250634148912679221946710086876993634935244158064176776432531686829811682685329973753549905141485158887809108782409009160723636462959778551114611695038644146412783935511960920966542134907909881820619499441747524524625274178044110708300589871832744232601528203976868306273799240841065959052212537802447479020402418214107677561768926021815149404121086392934351519311855871080595534149401028763816222385471384050516433227855425828195871111016682216781590231223629235878433086516938976470417925826931551104515487691766436966674149288892288597496788549028268800930827379526395281397364200929391422922545155004359841452736230128383603179164599485266462790122597491957411943675431074281321855623183979241600019533932152607346725967557719316465876394875540225672602550775048180208075565610411377991127811308098320660270326861234826223342884603495635277549832142669301518602774284279117106851840539376319157367426237840592011961283411054661027095977227392313864927308760535913437523111134517820850137809169559548733445781558791708811391906909728342190547546766347236220217069985015098504119949439029257048805793856541452386921719785912542478583716016681630480950598722772591956103572181198871477739204048621812630487174294368781524444542063702758056234317922729616515455209067478681776711176133508515160723768370790832157450516780326349278165738156253121128656429452818810085930364533001438564672818270458246542519537826399473232260311207555486927178750687339718765102798101941879988605141910231848081295822720928997423608922552947043490864261884039913459829422690301863636627567108010902851583735798847170860961440388172220136875574729226205740205573560767302541141918419745939076935797031853711731435351234858383875819380633135091445041668613031993194445847200087743920200136411060973746718094449230892680317154288918930090400703384544421363446854615744346226849618463472840743841376989768111816950376566688550853133949893526359338162023937642503270267622872055636409277707474965522405697185530795444079035270906864978279921820065408876322674112092185702800535131003846745473964930069398364885390420074005136302727949410198748632500545184131331417431411693120462662001855618689439314727115811883805311572993949759621613070877995276272008642051788720706307551381237388859549959033823915480193615366849651377074890659233069422118004067129163818938442724089280587983390491614181418248893295465391823823908503465376336258947006250831935715246575599278008152028926468916771664589387605600258387932381728876014264726866053653083460317507036498829376095090845285342418990747136316135014719567966558005069366484124464329230897155289166881184324275377132650553938708019268472105538516457082841792719898372837769362095806973371185820763275569773068167788800224837681169364501256903967262857618416067749097870472435300283750511419578038374685644027501438713122435979622585056331162977645633332474186424082346206028709480640437350107701397105521631341577872358980702564993002492328979112584583685151441818928400839540443331381716431196647320829639517215372313194845661146488650669222070043803443352158267123663809484475552433698976093947798799489653260677944988730406992870341379458519091061445603407105576886442157856014637457414330083916222034235018478358135021514376753442380708185513713174588220501069406607765799656458086285751089630270680617464365998723365330314305464262081532333578040763594701245520221665419054612248526470653929289430123345338303422348022132927352525727899357578196014848035036392677562657245660359027421775559123195676995205022588008431710156444600948860447994407103147317092681906331053221754423975067969332837809529361775600041514741986193875771065437852362330814999379960030225779852354611414926305412753672659050030899633511552261510948446375430350493762787545439107402545358355507218255351482374593716199242297672965115245993977430996959650955385817247672399960741134886680386474654367183462785885907912489444559666666683822221955719120493079468532086642223803284880175512063024012437814372851995867171887377391368909424127260593848952537445110365447906911664483982734924571675598837498435028691564748872583112527555348481090555948483566574894611759684642554710119307849958796785976302990384598621266208386435911205848228681403530152840936272685045651220760380668280308429110062614818714347511771418730636669970926061313315806092048423181215803231417804432666239301945947525173005409597937215081418385495081800667134999715757557244860884896368919297205062050652141565320429989506145515505690682441624931371095934160200011049521316977524242266206870047497937514171662784618579325595829235438109769150306816439052224652821387031746304856778603935099097155767714712236609006303478598673573073126553649250467808466357321173710329465675995030034782138138058096597368821003842716837354451222862201594016283441445833883243635672793629042198255241991656505911242113462183727196077335752203710682628362578686041475970567299330425263284499989352539418147076114664225965410353303635513568017313020531109639459378954792743261839358024165025318100164691557645963539436370282713011939242583269545540910046397957573266191584799046005681891651120189036650660835835188039363642680384469093175294186531684783680259479541112115388783017386718590660496973187648655814028131967241455769501177810395895026325275681024944700483978463744194458584343520311992282078374742186117517906435149203674955390201964679465106941227437241553014136003576122458384411631966168162791793396179783432893261987307613652862450509560515061943552523248994262756143674626964557602833879415113921248227330205501572494034429284430706972497193397734543511814636922799020580046712439778479464727006901774452212834752719182721611746539693279208716200963594148387239020848769860630790069968742390143228476701771580989596076884714784113186791328068926836499977904928954692247293289104113407716429387708967599329378707113088552776949670342687068944078612281318360121627876546233788406317593767580874266537636593419144364732783897342493356220308016167697589184438905477911541893243195523803359870479043137280233711597843736864132184408455878837111387864937953782941114959074484657525110778543465549602249097235385893426344868526229970140676258777086593416012958499954671733686141963116973365858892433544640997471559629458204877344128412439493793015744894601617966908446915679631867666523365408266285541144218106097807675429386267155430733861196846493282171817199529097273463098943982092575139473491015275984850865166137517279196504177954574379651701856961920606177658484874402752953032545525558056620687951126361608799107913903127244672451208807284375294439842687813294879968553215797019296840557421312463521425864467590842543641698496302679792349205778872818080398163259494327698613769349360196137445808040417334383702510039358242720843122093827595367559216352073122485261434097599966220618608732256060670669987253933133490053496248796480552330798380435016846542002079436085502109043269593356769223171551604195428889815974394372785969569586321779897779489871193987357557302710761943411404818528468588872529255669269591465900958363503761101645094222776623387745585928781239098024987050844992814100243073978270603109977078669497142301507441738871662024229544167424512416198636743898799446846410539243829251598482605368763153812621830923035137522640759738080376885657910002085311649311661776805115723489166136613963988599751869854359793593374624232852370253422634171567954712511944440929113131571229985331950217692664053871295886265911352547057459884848396804055305847894055452157270610610613189047277048505920200158616832665529936126070546925233876025729000880877325690446009452901038427539375341570445016079931512834333091922685204301487936543177896962245679264164276534726320677152679643456812531760946308471524091507402149811285386098865518656963054215407783696440596945738436357240420592397576979203627750545109751945450968312825739541170483279312467925611078555394884199313819391134574656727795938062613648201179754600050162386674511825965119195061161686917135878908465622068603588941072817127678921211426855395911029869668976504612312381288782097753880841635027300775498358802879711323820861040497217807076344125239362274880282774611764196913773767470602510866523778832619208693081466499432224217066253373618744941660024610710536829884415001081146642450519967661895519825512858087577089887979648226611833795711186464373516815097986598335484267078750625529760473262223164055221946773183503195992347131424333172641805879830539805590254196814609423391522416008110746772823070356432323460735855193927764803227532867905251101263372594350316249900251746554384245717921650126345198622165767173184859342583310506858888554533091694299972843328909876666999770604906567180923166749887591126683248399322753886054686484271045276684291079338339771671721112323547158435260000776242327436633718906881016408441147474739897543486881752852951575713273022154609188050693287465133737666291432124191123781051423070676950195972355902290215789370933035437070829115660393361164660641238426269778022260581017199843279462360912880614689309645076272371830746812032570406876323363388744049869089400604393045115088285152935397360680816541252702755519711979387176664656318053268276766419231703318486934532260962656705551651456119440234823983229402808783327609587858292955649725545785890385982291844889929746305967566902300241125688478200612029393241162893428494078509300473658021901584824030210591830697655968170993607943237519185165659089818072876587729536880883315585841439066954910609534371974411998361653886649964277063820149855526574020547005109604082416428013994364662119794886440277042489654245221897322933942470051154136878430478011115667936427971231769429470336979444849648633589841312517344320326098881423665808013449199106195659751636961125904245325303044560816983983491937170918184865431907265240519436506118160397436477825823613045105307985115968536171306608429228086713582942599220803503642984326311447414364025692154776316294981797454035637307393593350187690402222702423959432155118333262386295986724730493397138548688740898506502162134513490563202773156066892827838927408989131778613678807274392760052246582322388091697038409369739083994674075503709142045733787333263130393239781967851618341029732565935752397871961736860246529647340287521683451175442847392799255832164119020439160239291243468974595075252061335022157190018958232048779755268978371190745511925070947738881937787720888260439711188694952816988298653450712806912845760715709669576015743024348911403198900350359750335686788408847431848193959267815318580149460884951068217662705341890083855906429845110566998368747866124542511315603362470081897925938327735338173640170700611169848912597424561666483569019372002900035813647820963029808117772718287771347112893764339982070474513947694418692810951260937747654556936151194986894940395405703912738651093606776837079155842575976035379805636280093741139828817069771183270599918344930307091156948971053985623151587627028694094899512261263119528613126523836424916605149528635566168602073369410981628991372278951373754161087687450570816487556048097719359440925965387268184406422657987315770913977033538083868218440825538624148348611562685868884498263757627654736834543840590803022216776626846058962688442997010538956297666828828691913281279906193296109870894910748764044949165301551559301562164993710267733551316796836110873301610108249389204562610597771771569172847421992070716504373115346549793781362557614330868152082602640780658555925815658864790468048051386522635638583056292563183943113570648978187444273347084900980318156163087332286275784161228819193239288710861822221843121112122694834544630024229818334079740118333403636337935550065737442051023312329007360361013513175867401890760271403185165910394918250158807179329000601229137935278782105355529847516698990183835291913575787725088853952512141393784717307082562988416570036107863538620349853579313408332298253891077903871511545566420958437326207290150857102095038047932365215484124285259061998735978504997207138950910157523204534597217644958900554775883788708633619500552478164873412075800807750440531325631693089499699370726783346737336593898065098611132506664245391556013077191171929122011217918482476160850696241800123888679657352306326275628895108293960178937742635079009707221941520774499138042260193137319240037937603400150723498293301657615398005427066258099944173741232602938184073597243151529482491416719174670085151943945462479767646774808827491769008973348323373835184145595569340245661004448476073175837395348539962798077479930570952791623211369182357465185467763876964417314600633845207757929925650481882778954999852763586810601550986715637298316144833922340022223448483105161065393429452703824651809909122594409623442927834164860830153060453027895761013721112486680642457843844187927604462447528296386448180114503546285621500763994692576688492550858492510524464958312081143371617142368641551595184995055248862889012515111078404790152092268296232521830875085808444596140399666680832885194581479810970801496978548452967936462806694732973957006317598518453906810880586017121065318332009303642314921826669965183437653383973057392762439310483107124585794914792437411793026887328773354921971807189456241737367111152287349301631073331478936189554421295452839729418475178767288051436805595831051947033188011480108926121622322321646128087221151549754296589079432735081604198927421983021358086200435057758419578503080428371313406367130979559349799881437136404455223332400466381807505393595208056134500059521530551601121614498775848914280950387354803086743729297469697612906284891080781851173344424061860304788799123849461697909226466271428921242496661769927138960919253480531041637987169314348597263709972640843230575613341859253032918056809857162914676368533834712336629926829548736489634920570123069148083306914875126781093901589097040484389886963669288082013780982257792031546651437562284449707345708599948738436217325902572151797056457158315740452390743956118318918168151073535565154772926344079933074299821100504795724566620216238993775289161650369678448955110308276223087947337952135190992871596252623881651856977508691845202295255471372104118375670225550735553427230973364239969042888444441339684478612613412072345100555719408973085500454678050889600938592011661143988021957218199890380890690826841237850860286469347981634602998140243728751231395798530224386506584761285187423239792024617211010903098003866422610660375980167488755362853292683910390630314130889915031965931659066061960232514944808703968455868163166543281232913309420011487130897535421149900961732529716824757562945903079134642246197624771886532296327489409245115958408091223974908281479450586675047781309460409391221499977748140684690066556233622431563780572244112457618911915438486935731590731786103264729176529282833425168498590365452620783489884253325743506891762290854418083409427290105235123928578254592632748960695518617675697683192135876233442238559114135659039531047375147592025683059736403816167361382723088344346145728650062396697006359670359978374562139958759786807786804323307620201381792948795653435396854843385228443057680222273827675561025794864417201065765766859796927062440634044173188249330791290519332921931503763496268755434671735989591804598160636449396483616696779321416765279965486982795961251443461889880445647345990022205704494304730813641841158190204729979817817324074590910318206561496824827499567833701267052277862482828561926109186012532403967476542269235785894206775843536133450329784796316881262317479379687512137831049039387203768822848943674756509429601760456261620235979829535713591999728112210031167905196681425499335482731838112333230822433816313651328863236446284458130233460258143644444099402277664145732105502629735435023398691326749560894232997592120282665353033009001785422667663725744003504067544026858417644692382846375317985803665577639607758767480075276505013714857186114128190720119527121846386837155447754599821337073251584231716158658651249556066088911233592287385418032985570598749568806867665030209762975391158531167506860714874873184043189262823925736713734770404763833308685634823600678283785244268995235019111128430938969683421925558038111734295097901690294247374503914475559489360240211306221287945648853915905204290990998584131081862204807410208979455792746908788274760940802188826885158638233024354447826276940554026658296190253516504630489960416567624115769249445889097943377075386662608957909439046164359899619458331345767668913157486120782871816238763060377431414142330598403563347497368629008025028315925856211724634785177735026089016997456793061685517759229833235754326667917125330496525793418838981144891678429600297014274421578138032562952509112684580753829692479124000973847916424515732459557193728722014490349294736031215085748602838852194934884577061291105249228501644687264258223683318278491449778512701667738330395039729959213680371641554356097975237996317220812291198921670410347323877395826956508391932271453109607555678480449599676129546832380944650893913563702941439320210716810184780812398343516790521473085998447085636954936002872719310890145339686114312453328026307249711944437658035960602758363966907148485257119798810867962376898954724022095668936000403400429754816120865460115523587486628097759333732423766496591882182657132438937013495100358096904046812725214503623483050552619142221144585193767710433141330555544772304471947798793141033561696138680721825802357432877860002013912615395470960595070615620610861374926502802792962309426168618911653790224923862871591018329242861379605123801866132486365843708853491189634445545410865705747590112652398786127192156956050613348490350792848891132893494817679282341156368462571138741633308535181250119994983125995603925494389936308303667305475525074218988255518248590962801022525196007009048548143052947687757848176685213248387864520498993423500775531664992018345901683654304277066523560416178271696842822799598186813568325692356273927262005138027714729355949536819683436282984204381186005545796854773726583519533035789544108915815031527002604963990501611295707756251148979039247692321009353994347971139540804835598167138931703365346998805700497689732590315880786817684529986506092702246541787096195964504639469622741920682377457735180418903055464149099966514468454971979674885443465348235592688928399587254912551078041053676187798893418139012351447572739871888183066609840802567911486503126375020437278038881299858184178118356506847917294169086302079399918393196184853451012514762379952180925687691462402700583802333443049254846058075877382416305296364324265640867277427989828983090386623646096788249584666899942386778021123018379041011020866944344910383756399953784664897857410591591730643761942369229372463561701149887703703718451240986101726319894087524752235780846184429053542493195240468723378389189033205021551625994372831600045227341565172571426164934002269452263627309164768346040721061863426773836090062742945160063212455520134581595259035704482990560062018897353255775900026133137014966793407636470073299070402948410355063648740779947807590080200506266984955961811316799969455713955761571548626786975525688611703210960257605157135632172110175502473173687440871347248728369109798063531162103590784120398714821713866959062502501033095407231952292373795114180068981682499610924709964142399306942380440001857020734829867701862857423685746605598206553518923756328996630197944669022897588238961129805399904960159108042881367961905436554554954734689216385591722030722541617442383757595458608273625375933594780777995069808030674639335789268483908279989769701087666870170535874876444645841837179180320979090434005296950133906031944885898441844649154210119157339142994601960441830225023747091242760581656813908138284147035534038681193841726391762363230254781051861308769291160281285828539648377480183032339132940455821442707229120587903470809491721125094362407429178952087934019924476443087113281611607062298967550414424896676134439324308343026943060002873572051264934225988559560484873098785421093722127503486711441074506384251151227054177757861090698139832086951044005719335990669244000907653794248162062632937813049204940027216517069753979506999302081999179934040046024011046929261737240033810329765901765225766802261708028963562488030032037367718953194502972388713942988594060087237279222011035443675765647152359493353305858791266488892286391363841239354073891444160318004068314806155446884938100979718258701869278174731869435743394828765164699657090985845657272871388242191399128630462492368016867016305118487074298094912922211301100899216337751578868797449119212540492539989998792424930070471837533433807214240782542573865534058312220973444750044840854704593752192037351282544349657953292915783410335265511457935980252860157800961911750645263579806058889241474499997457691237562195296862744197064509767640833752478021589619819405550164446195981620893298364969200898032404681367915503704332950780401161848121127099821138629524995800685473393249399714340660507790322689884284254282722295953916151131931461120169307254171789927933664533427734808028677687017146065443059179623234254974743050403501261944583365885766764956246719511481998996802354948506105458977859444778355696580219263610926512047685992741309652174830413308075538673061704468565297547201662351258159288890693727930454275706097662174418162226239506017087445651579824227672614198679980092713662668869461473824167326523249377820202825541740957613299016699750207402026137667207521250031975731177569520525175270286438551628082549519483162165105606638673004935264783539699343906850385717426790679258354054038776364788283428150682640316407969907858469085520538662905895598160935384643456917943192459339473834918033584918685140271929370361109760565322538822288956248571748562604570763057203194073421200864944488297919587137217987563986588218884717903915644581050265086859182272314820373390378476248097154416075902831228695444383140727236068584217742254505165016644064450662893835488784855713253340650913899044558092997800661869149380758216623375163977199446514849910983191929980400600436036968622934860762074588381867263078288652890536135313608770339402961307128574107874410874181990969263750195702432487613404535671825833241141238544242739846039310849766388671651426628164326996101859165161894929137761452605026488590248761480427566984222335474579011728265854984479680664905813776416121811963020143132584315597426015357914462682893290622760525724224295082294450754518375381574180579746748408701436364109242121330013783384069923881295437212090631717556865212819521040216657057563560791116447301337064094484650711886313115704169065754776100484987672719624929636958569156950653705062749400733935016820718616203399901400370503143293173809645044487797520834510590515816728871868659752902843783214700942204275705515535176606364976095746583024427258050264103526165904542792564391786388422893017491289893456355821337784371608003358647088656820096616534564699296475130418019065340023671824098180933793294863603736128958225775157444308283284824173452687480825367520489367829234147309233137349453447555625834551848021132048881273092590018468217900983980381779841570045346916984788528853213192533017726392555311062072502475267023413744029325854599483473629697125533203869228857136079947349622467965673016633076737646361502885840974703670265675893522728902607277944301950891775197182186061669375283255770200941295343724702445765807507693451751997569337902621277339199449785168944474165004414591056319691228174393341967902681686724099262813353517066240387493484647149881630788859107231330180358463936303548330820301578873003127879870045186661524589781130239216355899449899693502098949310648257040169511488020404550606452520195863789271406376289006516976607582004611069950500494721801609538477412823273081987324088151688927262106131684557456875094810646554305579128902188343232924297996715600432256132852487063819090687706675526720927971140575011157181497841327625998594317500209981334517641452777701529614324350646492197039260312021262215283817942998110964242694881483866165330291515114723704619113827751298688890707959642202035669548544555223458875259223369249531353009265618765654230221772218376189680994712913733214075404454730437144562643638062693947738910189159575343136970355384729562046243043381584455133933279645099748172875531196250590379120948952463607682184427816379117988810611936796202109780828224421624275680030817778326474701920367406472446594438815449914014459791323363775882635580346250595799643561982989819337919218494729301919522025531724830499311131187886674194699486741845925410009509742174547009314161215312943060780885327497778150509380105384675426628864871452806088748315863254270865574958182965207380866437206025076066547316121349339529814151128053256806029554414023679910728791550522637298889839698213447341907400170667491465660630382502109363529223512233050709482269104125474045085581591789420022631201219194181957221780512887629474412028733486235964271447920232870523781621762072997922231674503192847709593170656250072172537792956256610009871149866852225531643210524436559923946673096670380846299890150744110496580255154921861009206929108888920489318845874512731077696277368811220938098660984627707627073372947695981807303249725331024084666832407119087908912748519344113096622361242587376344447608588705490289516278615181796545260164318797810949744399389649442969003981076628417300600789725440479030952512688042945614118732752803699526596790067050322273129983015474345595359017522094540866841586134665599709430746578474752146131325592593813294715719042702672851554305850399276348855151419368301253380594780135249374746025103023484676298885093140414045442617659899527361645341529835997451302093755891017833196446686044167584099722040107308770483313882109617943732159644719519438886565366862449622618779523854766487277481855776468615046941153521212587915357960760591104433364824595256190801509139422627523856195864115741185864567276557428405598642672436918977584700185171619351139563965253069072403344256976650647944969550773386028917468424784057083826715782009095277112932964498027988419574714139950977921324820246532190677405939486329881258689575605744261799210340217393334568728382614075328863411020526667036974456849977531595653817528728672571304684630832566794703527568919551274939181605839436132947007711443817952435334868950599549927744239889470920543548995191429560535181252008470073685039718144812897637943543076785924350392880008908824224007222275609065741121248607161229350353484506314330839711886026115199871196914906844631166446522347162906927089833288655348855061453846600128434593744766610931781501675724875289361038851314911694185609990336887284353208041883558701175455600418990258028001988494634441466607894392147614966594150228869266316238176272446440984758050551884388970463394367015876190123970175332615158159406293735661679025417979149732638802671532470350178486940614283853392029946761312026270843935619322254372214790817384251973201362159262740822133713290104499320130209784386493140824280205535535491505552974051907696172102910323280439841282284526503128204281388802325336497858925660933948191829564625002083756050456658682219102510661241586736731967470533510580772310496519511556795099520784673675921910359605869376823876088263831609970250840380799795223132534511968028010118750705399324197863020934138629202764148561089957269171418679402899112594647421046262032929531235158574711789321694440085288334604509960100288025536751312555716360764326943337646213417437167562125321420401067459075609788729327143588817961190686024665585290117553513402801717928883412912431485439199267923546764938119081666275254124696285729194877787154566031841615921165989340955559346700809533019273475646070521061497930848213072552980988696967418014634891518649043496203912076638813437152511084245596822593962941425870786846260475837709979527191184678107325771640185808611201025394614609320682218946482572245433042516649362954204665599196040267171149636910675766533284560657025218369273812338232229279685839739196852862622392539473093035141546370908473222444787954392538086168941863064668201611538996268316447721802962831250300149397372980261090739028303394062066216743224881511837235511142841767650404360662762067037903452913970973300917566948693456796705075564396922621012511936746111493476178571742070772268345790868919573742539862108445088312810792636646828866651875819127075969427268691822373974223409139578669728839488785600477848866530727449584329407636647488826648235542443497436733912158500063341958593198214679721932713589379050818416115111929841494625245979886413285040961927517520050695337143066914417132847644156560757960956285296770347121860273587128691186864675278664512335187126056405713128203742291628860693860179635035892261180300182449982820378524882828631887691183456381890351183711532446430573175089571059239877479126049651603807508122255781010048454466856838110673620576420857467620822433790386850255245725418271971823031310483436690551048093392819619686792195726186623578306409229487045121628366504983499033786497008012338757162438464878320426329941603066889177975205867107561617272393114238324511631554948992194535748157746324287307677139486286108923084991332140312330491369894003618208137597582811772014451818357517975800016230776824096146707381369376710356370969390765218184317571280602850570470418793180562479400907295209485574921994085272225534957709357819752357752484599896285542326476082633540917065108723688980427524250553203479928099096168396699584445719074568929748061200441211983021126744462516468537140286789290976204145484843989520474912044471894265834659388288021209656463108235703729986505717687142553900546522084316233134723439335070392446530546981326219504814545103020082249909368483108428073228595975686901519054466520767946863676269584464018310750903559796854122302723642528775335107438573929096669349810643836495516345396444582555926705959324344480301722250714287476283999418034424891860946034866897973985595820324360302947228044739084404011112231428911504395352002187703843579037326435808562793406459656560462767892004838521012690091494202143886053879708348049922914559511383089608962109346010738056830996365142663375582133925099222787936462221866453668242404813014441088268464573308599577496877813298191463894703586770901022520399376465577520199447468045052187477138071966288542237940322844633582382458816883024015573342335588268900185982048704148025900501777384071404903986663349658831614669107788246421310463528899555725272388559333964226066034062483162467273824478648559736981433148036186049883141671021861171445173435917121023738013637603535059636720582747934679778102453355019307576691368274959467098145236392966101003114609450200171819703122987200908340454947896001906856257156721201716942723126492752918242682774578010841410999970609041281124650258669183638018043810664648993567724645851663530143254429948636093114057340483796160184505069168925023307080466982517327529464675889239993888771934463339026440455431412475466787209432186456416489147069439512624589250944225691962271974088930950731721478913002016919423924079269110186024808819882392932845442793938147466249337797804558129588758156195901002270477278946735754472232897707620687212450013233004931441039197588226646464671143008886072103483336623996371109746339292170071651010536400941236316415492611650507920551797845106849772515277967357918233259955958032882913316990673924141732003180466254024120575201584898615612321894974334844402673782658052908200562965657339823435512986547152883334671753843314163403252854738231155429979317674292706855052285434741020613973598159256997571931493142154836825360668215599667432711792995624005508459430095110989189715366693452504469322805331769820441524513620939077644324503598739537413353723141131431938666217707439945186542056519091135090131848596736011667718788044065071325451964029620284218776526208950273588294276856742286967200019940580751594017213171802008044318277709945692918853057631701905677701623704333507464136961802935171489502555674008115013809868032100975003046317392017452620444789038825220459821938042695614259574739869938951723731870463663889109226611890081527488864689924284223462740728697415145878853809250217548165281010287413998290573586177156909776993589106840045443169324553015182304905453459972722430884776077748375537152974938479699367894975489693973154941651681563655455155072198955079704046390515680696725130311433184193075077215072907456795791045717892669784040897571579154631246350742154958476949998689260874187707220240676868598051045855409720066973529340530784658796000904732858075250084002762746834553992076805023603883623404666126358307272442342334611469405095523632082283004571414676248395771084812134883188758436991722372422745322925554928096371952624329277507427559736522746152344510235932025759477688948354651300319201680251891402941414056251785968340145356837387082696224835813422553900095378089010598846579724452842440460714475553122195494198556301838371706304451808228244569436887053713905989494331179248300806401455967892696647211488625726708194333237526541723875530432289820202099116155178472821912470660838279279909754848719822829132132044291897879585075352311112832518945181498706889277190852729849422418568453321498868381711873122301638114733842500463682248063401919072349299255673489434118838384093597298270305547795884434505784175646439008369561054528974431516053926150772978632682927130927720422040454639020550021789870182854605250647104758691173291955653246473500089471888895576498930863630661446199294007369045562168409712191847396298778380941183105765962633158279432901818571481344716559789758036451063267420577525033383835320613865198963340088069775472321253968292330669049874180059079458346530391235783565496109984010170959202805209527024262047862132117100050163388131736189634026831648318144566098792826582160120691274289032588848779318329624534989877980544363856993985898720724747922629295936981438634688439293609952505336792134777566059292096303080017890354572244525776335640718241483595681606729228701162477619983372407774820933152866997768562666588098685708600932370471113328716264515585264826441679331129589454123248006503446789856906549360825415834385924217658591442751194953178467806107202274688609466904349551678321922461721150776815349474080881534219462696123032293278968285212426982489390655672197048163778984610331767682754718219380323794158696060088656564035130979256510851159149554274333682545156264100315666401477833726427939196969887421850045755206028277079455296679285037333021421531982556898273945857760495843884873073124569838236593606814983155368929685776214173789972651578011109180178484863235028518883959519546820784437558813544359888503463840782211655910067668763581246526843358000934727519866886424956827393606429112101196289012380176044977698570508765052952111161163069520911190060807338310647509883773638708528787489911673430966964418803205716740479253775560463910993808474137450495807607099415054597439656033774997170174712338236294262841459577633485477466773268251081679789327304501156716623553044949741897489682247656260913454794479040766468358118390909961819070209026606540531430134344869478534372371613697337060366247753218713067599936159595459588157570821334067667225390419863083065076118428067891110628611167881061390143468906859455076435850073570787683972848553721132027739200697511606540349725530408186428360604595592658149513998380722906164821306576767168659553438707381012942334832878373323984645643994870629073831893795902389005005579034445395510278756566004125893752007795900164765102408278846764338664626319305719923986037098554379341686787304597934948746045945430919061416888782959426594744598922272510399518859353576492287256600923378037342114846223320981407286053605052188678785323318487117472301954965326179106502504575282976826079850182078723469061667910525796930316643178489518301442435883323780550780506129452873107587879606824068272383060153592660503818124869045910605948054549624949433597546027379784064762777376751715497812542808689895103262956699133973792815042551989889974027204822416464826148573546807574763675503418689159210918845788973283022661637116462129981129121550377692748942618350274697149393499278316339942006806636913629503480099878370830412752335663767079434705145748678313105103749781652481629745097215537913768980313401965262667513500401672171179092811139360842625528653514780140688384936002411705122502403617447035477951575767284860052405042666591735013370060358659464246899101628504655925386612900500508287750654863408436856175422534929112757950331429660662744369150169444201084509728862024067059420498919809847188561912991057512057240682339552217016781245364840954178707080423583261458608047647155112658015411403166375957145047126131306767556713742916215969320006215147191308525546015385233576432190885917149038924265489418690826480400878342549107176915379332863049347531281027476899313193842927868930820612508091129643121830622027653138899658940843819938020785699551533537205198697967914084712926916082774279997732697906961765004529018282767212355943607568169667769216651618343402694056851699631105379963517841355832636976756721261014309342844939768225046632621236514581602101058047761594753531511308451936345237054482254775487381392043597042625102119554737222586807755415584918719241485510396864638931666797059933775961905422850283177515985525643012356075907985937751430332567881372679543934691359119613328669511456409304725123861378784023333160894356887206647497833257111484537527876988929116570136129037441797155736646197230526279291383399411114925913158154474529160478427563285769068479656065995403030623779343127200182309867608687842711996402658316127545338039286201859163778758290204912088308246756403071232018544908450312763619335750171223008593484875764634270883207031142352091296663895143643215385838339535922753400721137592858567739342394895409331665114240254016505508827420519889119816869726945735057843961689365814314327578488892549730206474035199036718646819185890717608102131215777993971294198019731977076592392746045868541377131961990297534833562637320412104123325637432722700502955896252612514156712515379341004128058472088941339257233964881961706650976651772269941409051958352049216813549387874287605422280992360455813649145133765808247098075646818785237759314240654608909199104170333357137075995477838795255121525102715254971129733164016200337214528845634678176973254102185660605839405901542412385528104832712218435075445422226228866858589906145711831880474396128979590887204178407682295078959326035328507734748841598034328227543191999530687745050589963269491243755133003361964427609069566800190096965081963834543766332631673681983744752570139952691348269204947403444576697229414212118860024458396322135622521402270131036153774747023239427796940594503006854476433362438889060403244103308041010094733323201947720699864079454379197249793015879245483738582255637140022595202848244966286684740093743920604400280412155147909563422697125477397031431039113083239519276493153902536182938009699631519049275791436535545968429913382787244624808031997412753978471384113540108296435267362680321239826391407732245363819714381431438653244607694672135392026625378856360546030619305674473645284218807970349684348545410175680501463193596290210858605690074914136341483788912225473449545989845556569627519850822900046773035058001015986207371438985383821043220632619152439381098957966163270624207517599957655345939268171361836185459802331457267532218252955903863506423586973223242683938697813424167581251953787956810182530059392019238020519686178103306069532514021126275239135381817435680076052817390129871260337579895553143897665529771588668705237669645351586687507458549844232302600140918152219085412535933073695240774862085478256998356067175303360815177711449667643154176864614778262077310560749865436096528074783940445083777161097489475770275211617667884710078026204736441758676417727339519928659804408544570374825574627056927759474594337599996270478803073019517199967470987785696301304903896305176384207300468235322791663716938394950668507207555258491095200418276209428759355686909216865241853936785371496736006473405346504437220078285651931055247257325804766165281940292339380321773788126407726164168036888578032131928403353733933607604861696561987912272870188160323579835725793469643591015690812852049142544377769620857437624680491806107928167591602388155962369571896523966399512828222600463270094095704398178239697502650556954045635167393560376546025168986068936064806346238077609964613596973738655635707757508119152775393534694273404317768967235025937172501243805011171020846253627335009319555004464481074616697796007312290140423672805034005319626290572655869593807335825000369582919940780882321379280486133538558460799091050497694795028901102837270279020135816245760202549123481134900016535201234979991574112546752542961574845432110175512819084537082342499742686190194172963666070179745349754087073553636817382978984270632143607086663499042563600316286600580368509175589930055487799144697047197798138087636850805805999404412201368257271207624332278389499821854519129798338528055966792202335549475318322802388426632561092020287504998717727309690323467324301632244244231565945001120852824159735391323463083461134357270076928225096656462409856126707440305529849125614264330807232476499872091264975711630834885926353868906336906889913895868905551546124626986315811660319182803570387448600015501987990755580053387011198335794078001756146395789457518977179446765831078515784528522237978294178819814488612485186441956452796330350230624286470355681766097604250500149155487440249856782444521236903540505217525507214369480005366787071072163719136561056284936272241892725372488736604511151802241827191268835611489876893344535542905985322496238654938634106781555556763202017253787667847118721147414775169664552632179985702325895680763574311418742694186546128217345492057587570298375575608042701194911290073208144862708763624483912587260978714485688285828615430875017068840940911715553960926546061993152767749773650376338719834366431668729995213033366385603985393001679096516429128070610987334760487169130517867643743313698049901432149399018434911926149512158066153430171099508519781499669986194329571327384744024601340152274802789408226596575716668239477280236745830330262139531320371947491764623207643980665573905171857443761003014194968539281987055358370712214589085287386604396360194272761059315662181248621390851297750239809707640899906801225836611710745245185362224979861500195187129853685478435468705006961355635805912038977188422529913146245781517647903692520019761145165418819925149898864085612308772876047969758807664796249704591944475725606909643899940730114093946493226379845462315355879588296080100094724326523800074139857999674026376494755888851956747901165593472752904619451252241015645218138472045337390386033296381034031525063446870586086358368197974826673562253492694783449568507030087321127556691422334002807022104506128982089650912234181788111610955199763657061953342560181140430289786509562221592597340171902510349141168705952292229245596221685398013740658756245731462083792678510046702534436672621147692373337929522020167139918398113323265332072829725714796354201438249607200155528708823343002034658164987163081905346585136388033594961674471907259940744868534955978240730159488846898570491342816372042990103879526457831354227979825427667656885336004976217666405582982895901133246858252041549992042981880800496160574604741832286369293103949572488165376128732584254985351555468466660352327875486575075045068006045815113596032021004191461243279022947678055373976816998204910431367830647195205786015938185678955868427285661549170361127057792440386228303587253366095452270251490702138488522319536170994979890592227313634793475094109614573028690844881498005004833785474395453690263974493175604035536005139277664790277363695114688247013158118636291623608575012667178639927615742268986170744413553782044363557464471715764397097176256703295091721680910142759191120220044398673351659023609548812003661087490938847841040938289480179093804523658740997304107166038341941595745135257361177483116432232795067103006317244168667546703297743529781795800313695739627191127980393879039304157861320333588902731302957837040216908537515002681437861151501622624859315877569204575322638864926557588343045216016370189954232705144502259151873146282846835196752107439672014161847991904190072748937503165795073748054848874848094730581453614491993152949098880424002655392349707268685276640147888421499908835614453775126621772352221688262215831122357286990317687323446487352855547034701928157688718476643829087500855509681388264007570424999753164557330705360950758881729873632364597693989279739188892360326185130181942552902959339796217590079298649208841158037445401731607671813279796503316521361178407909313421387897188495928041196758480728745059311623058473087554793243001053678301939668365547922695872074919392634599112664958130252310928093166412841142173758385812048649923760644241308594402774938397290525435448043277538955377363655363962111865615674536834754946603778538480399942236319411874953616323400568781422272035940520815886045011607877093796505065302534045111694192222119243377751674177822462731599601290040565357747320392264337027251517297162716963893575330580347224033724592037710068573521676802768366950312198091531776540424475214219646449945115491677953934623003462652187958645260246908884181021156652808209148193827797503792568108820740991515006810057289004551341644970035386117410826687268678758202641239843290879888188765413385401734652441524937458553547678283786690302403051749554861593148731631796509896048606925738187308868197570086442637345242210018476956344155478708826822888361906112519361615751922315738161660151042235206764439113849465919514602592486982571804000268216475146040128653558977964468641044332049101594061704806896931882028040376733909262552398474340592409749023943551110162305641400740689478649801782432965713471063873215137036442589509104961800247582997358155237842653914929019012082777383727041083678559446328227806426753439978590989417162914958708626407154687159474225995424459079548843034498384224818801103593270413561059126102432452505110031798685544098174340144084216708648179283502666236511502053144117450503909029393908652316392981817576737225570163955300185036020884878783320001186316173233388098286250495190374715312452635551862454966780223307505822269434453334648135385506169966601232339292895384957072122692610546928735072682023159591947075618531073449765260253673585495637462113322622395805090000103135595449077251909995257382367545753196862287905742222162639734876580635236889346808992685044348272508109913739491521214976438436364775508050217668794040026940009860308512900641712913232834018119167462242247209016275551049935588515626659948315796757354220688669123755728343262077611723439959697869030441241864933853640195479793491691587238931198278510980701728924287970376392077771957432778881195302584751110008239323997069995715047065205161032912813337783280194724988914625647689954078116631523481087016925164500337434909536843254267214703237018357678334421376889766901359486999496792378421858108506681128701501400792354313469281055711931134166888063057599338782249203729789028321508464795307135818549496594812427623249729644207182308432961463516974380563857205179106352181013868715346959219733063596200159311738159050296606872515760114499359148279358028070822217740739272375324995257605455479734466324921113523728517336752034108195690854525006515501063220749965129783023522460046774322530968732538995479360124478063151833259136150065846414093061431813160379134367990601300468498636683572773094276623096021685765141217283113980372688418977078237754002155749571875550711480665803563299803966499931752922009926885840264492847660862979117523718746656210700338812502447842910451089029924828604562781298547604161240278421774073331917062354726759665660889389148007055293245074700691861963962193250305841143431182755518503141683463779281007374705907983607351485675267391045134781175049640101756288455530516504787446605574340866817066154310468405258063195856200320267145576176950446967425935609696149543801515669824161521885924933644260900638484796205394858683885323830459820148619509930347398212073494476303360130840283762045897606361835420633140508665682900761082389990129793086132326189821084478041635030462525138295007625170576521224048751581944630311126514969303751874588815460314802170454375489885284574811671842013879885033791918001050572408589188083545267625110127328426014696309701459100690338668554169834190144648620950464594004819270439794117978523564783472206413644423428055747385182785830615447626023197615015457453244955821914109096201803613219856908340593525016960052128463678402667440227521580278468457185149472055328191330692382137398884577450832694541019593634118808379458724472296674781268935498012992562135786160848975040422368801216070317986984010498026639060856351161174570833972912823250402145688793989522875438797918432385913607621655681583346719730565299432737948975739632863791734365220477326686308899063366967126442109300601444847709268489404992395911252696198418794876614548272992066469729148853071800055176213551396937944725280635655285513141431995770553464287565926703541464227834893692582078382216231594805095337421032227950208010403261167560477586164180527443907680225757255266271193432805425952675517288783907677002611958917710149732214138069728523407094819255581174753208034365964574219847715110535636748829425666754449569904109108081442657256443693807749886558150459807605934305862394025856159029638727784042018420630404897005904479567354339884611042010050893613455064684005922923180155528539369800871333389931890044333864085902236747706395573180614918394242705095178502356260512400704400566657667328960615688698197032437452604299959250338241039161420339165933864934029541834524776320464447277364777187321821219960933103778440928433031770597619370457019592820812914974603675865375769069328579246925531935737840113070380118011099450142179626279345159043287956463558623157547420764096248638634649069617670809870793809741804095685345974145708053435106684010572342222810413998877992479189249586077435511658333099430966996013118860326535325446128178869679789435065698125643387104922552131219740345221728412843536012565071218856816864145313025637516368624795197633722871268706146760250315807027957218866046142372952727826838804670315009092320069289733907807354095102345414152673661976811725851232115091930038083385426259246825132871152357473977948545818554247477244596091425158090111296279183960419789098458701752171316499141037085293910320447754285917667964393643439629882524817661292057030200678847543125961372194594201736101152518386435287257211435760002793316516610474039780671245944864346607880728482335241851262023869012590797453936933172030988284440114469373265070134114524430924188871031690392320211103312477312532655411949266978982184055077911405865604712490676010877090073138782587139872819164522685685789084135434450143113358570024020766639437561906332281134909766052094882169694718645660966298851281965205604109068010753117749757144708686064785638013746524734747320178714331398201533228961297418095644055101576655579309745229052527861496313808004730245244070485635957865813264185833318301359083849529102517413941457346554814938614339113718161521462139632539675788511270428312870299128652570147921852467359453960619305968522796806067165409636960967351759932225165041005769191897628096697244402304406238805865685889660249815010058942346551526033972892875886143207758597644384628080889509933735186766616879890688792867917129839372770769581723095994223820777816556234897841397420680185829093769168306885674775635715110488664949920884495102199446463082066374881947534904226833567006474347400982963883689882400253234223392912951805979901420372039544309885769699679436666415317145883712782449210872579882104352567087159428867992795263500900628454851114365115514792118358649472801679319425782131236432862048781864244969751301707289216043307593883391431779231682089108570760829953725676607960568646764741943156184363058955585017891469473471080706450204667218820702648161386583926820576179820590277060791008375187840141683325088669370295758580557057975304006300801596528630018770879023022559036551193082591780125173610852166036238245430389182271084829368579193395134488586406900798505870465513664368761538471203818087557173822773523657131695505752467755751890612470583994842392235237465918860967483165380494796691547107612626393415491077271298654276835561723068543652851485660135515838395041172349887375001132103110804571156116552061816385215504749784780783072774741003513553931292838667120824563938367079560378316540970411089961517395483289490435878689784576144378324257824424993636201537435643698037632929214616045593696539223703812178724323693461232820454718713200033686760632049349262283877834090395658347491897801564942786573048118604838253997421561481818691003994285236275011270767619242169864166617513544426975039184789126523613244441997587924172349285600331438487819094906169402730888354285369019325317076600513466335258444080415195186901799780690761714432314401896595577433960493431232887398948771585509400294948666824928364227040254016167472944079988777931138917988579261379432334813286293668089634693651839839820925092143862257883828683551196365124476323097847154278674960093705057781962483355596316809391388009767652245972721797026690622285919818579866306948894481061524795660870286565036206148726104849521507565550343807693752883406798759276198637997448799620973142317218050490356779722816452819374918069916803216000582093998339841226902245754560951483379534704086776202698794220292564621458181406943550446415042591337076226794780942726508739137533184670532550069150115222498362824976376182408819169743305949128944869496098561160444995893653616054454555968647732974881635509810751759203067348520914914998647657642057952355830792534830593015294841746767288416246978072880513807561582909467568138934234996740447222714188366955818660257114140581157000577334021252297468701912781306627522348719008742207414132868820711882549484711947026174556872561516790046526721659242073759601551646861322299372347562863938399412350262668561966116265737402932490066892992691466341166433030028762842804103344343064022557054789544667294425266185012552887621678440867689660034770117916411844612635634855025273751008140767135240445150729012263836255236643290447040804699405113734929766633059420813818598226908023652722011719461965915640039714059782701682613183905521894822835267550616652163274009191487431017427893018410274517401808899885934309372955554524246444300857211372189299680572112866171966096499206746975592043875332114122578912046293701302114159495934896810327865426055888059569145880494823052914472794777158091462939122950712823492461446262746577163548674555887577232996040269207558429920765114556282557451220211409930163917793869884541332425298890015432170681309394843607858834827400121422814878216206552808852339846353405263217671354791170371190205854339310939022087401351693981772478080723762296440099928930856729006799605431140589221915236392524210784282803717099158404986505098342235653938870432387952802000269836566520805800658727701631426393857181246110187066754649955406585575731100985682980425560580958949822955820052253839210858971320560457206393875307338745229324997427830409446089817382311331419176820440472710956503495142823757947929163339561982210346149835581808387944459281383535422370939659767123140402354573002714246197640662942466944866015997689842704966269299689415133353905301002601521472409358748978762487554498410235727482157921924500829478987997698653942672642353168593350884882690099596502368034436816863345560767725250968980681519225282108709643338344609750553819399378836530697607200021421565693529973126409162882938399120852918560366254341485549404066811217125022558566885014183791868461142172053535213873669108242193277794667926827691712481018208787828228539790863667539735025619063336758297551755889086436733659828524777605889431467614304852298081320984927546827309011211679671200195726610983889304174451592595086597453374458748864120067955488945389190049187048573287852899448111439954895470665172036946751224081001900904256749733759242385398688471826160254798736636033258424880499544928415801556740622249249482277095653735331359499149663731994998625444343718869705676078570339818817393997312185516829869094600690757479844765415607393286029108923982941780424967947722723849894756244604242195699508120882701141726122718134575542203038444345261872202490581671510843431956497783733305615110430409805531425440112280337674523357440001468209975805888569867152720707827226536618629893400835220295743894201719456360874204488062162185322808545436876404675520167921400386309422664686946798992530422284924590150356174252190127788900771728637435049860104142090501575931265030166305856743626168641232005547155885811878027393840921297196336603826356299775345652227342849106138650468966076108145686626972340242052979139909073348837887421558039116034293909362313635606679336991046322692981403142172411402956489920651198949629065823434574968334032052146769015399339151730001709270047480163279949069799051447084634097327546838505938221367855599483021293847906709155731496644579057455135665244831675718799604935665775436927718552395965124622070981181096812470602789581597559068461966444463047490534167584945749201696693120510205425396189494408086958905557485557499572822827549916277499504755720276524399190806115138529977103584311110355098051417013328215395666024361363959334014121685971914637474492696207755136233477164521546881148218598240182257741421639537617258621525471659245867628415946978631730733741829648983765049860470157977692754454879411140005976876131748213595380962168906221707618939846166345350589905664626663476005130748860525518205365264609018330939595698211608104237027871211722789860420424905111868872251243711479487000572597626892286402979794617161694745042498964155646486683655754856095375171875581453480522176466775299229751926259598905098463644330577177018170528038287531264104951906901516800399994061636991899107058155618508199634866711371735727979711438226648967116467834032595710510041851753406243762511321220557844489892302547295865191597851916475691568050510280744989271741682953473844902317408142800522147898448672085619039514807799050364746480545229332041442011828568414171507751320980493652531407420177811395132846128744433287405042704410438478493356901884120565729883825515994029950091828352692482820871262283241939016567941068729340818589848562661572056955810279674162490258708976303023094781244804200785715600903737065756850070453302201185332102290629292662694444321809556197099022486826752959329285447907459819783214537949539259544064721403241937189885616842054948857518332976036319219589964561505298048173663663722172929578875498617760360797434448099350365485896571874831127310809830639433845472581142859555210118534338022941316823233507688860099094806349476100154374655394134511889689325701771788819053506845635160135920359489328749307749703517851062709703488923586459702508280797116945425198604058901525642214722378980681183419556602504166001586414525209874222061851841581012219231386193693846874731875769125966096192381296758743568668745778852557866305880825411737533831141111133605252388873161384144259173013714288318477735931042176883838095015229368887593487230392323555722180019464059917932138625944055164514726587717385966040165426812442650085993602697610944548287007220392998558428544984612706588335702369753341505756902089068182441785131724706786881113280400534668919967072554662689331691492704648278653881975879933134879580608739836373882920279696375591260823483810110674440256705639241676970748232569766384293076397332157866009818652860606797123242049078006703974390200875876003945296170887344472453625754327382853930707029926636854454308299468218667870670882220470511666370949149792330638956798269103387873855990355788889213082455359795708190705580548424427681839246247403275854957476368589463936366769160224479721683430194717924405840716435677173035077467623695243586641319520321932804790419257664475752833298758034672507864448635433398742878375645295538561722752329281230579264397891897871972387520910616798816145546201308098183546340392004446318945034998423860331720926903500644587366284526592790756204890691050485440289192537254420461726335561266145050124565055052133066483982813508046549829313403950695071288180833767220250880502013544545497045268745324034706322228865928124589769973699654810012256155631791857187905689209509280802296798872447195406861921823943298285309208956006352476842760843680863453153641609680512050351594317239674809339003359075596269838426832400191559387467933454290505797639715844057386800266087840777118620959826551206707188053261386590070979141742207495542810123217326520007911285019423382394765254627852940072693085176955355713439799098757733488016870576328356174448236710032699979622799782048281551582648200451280358136767363716614332352402227083592445396844449427700583984946154032690018851716548906483484671318925155542190487468418024273077485729402629406379834201057837539571742653075202744783177229306167863009052480650870736943251158321517727320071990786951063277149366622719448393149255520441941587916759062129632334559870734713176301061326862097551429883980150941438289842888084641688554830472243635504152591015742657568110670680795872864950651201859455273247362517595886887303052921037106649094404082441904627052404198761371948253777098178312179966572492581055852332161435623212498492969899945229842784449031278475955140745011950629675080420725438848454042581564151161537666485192167128438074304855272147051681936894040310428106251815391600583225556666375622752480535533098074882897976632572058734384409961561029592450026066296598857595944651814639392063316837475048372929016440184081633281551716011520561994589194979671320236538000907375856518583585698046836567334340896055905706528757445883649280167616499310437213639388094231443879291651343904633065097396287690310519052435985049840721363783452106732460622559066711928861916107579360734157923797853184624742231063097226289360221586827816146023853222007337357524699103859933066409366826561763686958994560226914687800085363207978967017397704222673351418473789255319197360303055590335666916443014048257997618510510729519538444455812912290293245338877138754769391968724442801576549280984606964946848817641996454237870256853056544956405368046612322070739107873090622485934439646621660406514148576142936247818692851911394366793143043505101604537248483983084629988346842026175743349464571955903635974555423018955123729274340197898525993330114265677373153715831727350954849816420659181516680302117629153941315504571861636293711350909380148124910565148107462085604939757003337499348815941172634113095938703933852690780845147323377398197286243497613983247853177594541675500129214182648104241780231007136606453211556327812157441389569537694693240795434443607218770484830390146324074695480980522184226955293112458718377531857466571420299159856953066580900455368644953470555083067827662941244986515385907702637250474550850443964521752628516200165621989480965005450845763360802467880205959528793486826560105806709254829259702033396897800921601492295811933214568236605541438741897030474775698565047635191394741990423497437978197917509845562203475845072441810965687509209830029989312339633082815626097430895013375165460454127293800984971261106936749245306810374813628858843514765007220701482363815591175535251435758658160893329696525600278746393331864949025121513018244233088052804111584360133430309468618471550208155126634539699146026312125971542643560519575270601151622413476419818564548174102276945950419926195471282087870467040721862837174452997759697279590083604095429355064332428333669970911272312363207176523944218160699060669198855360776016184984264875012021041488100424306419911730956864865725314655777847542141571646272439813253504986197481805261477108284786407084305873368624609312410991258395725841400038407322177009023501615513907174547193766533448262840767114133952640578853468228666931172726196172967397761044643745565358596030758191788290035268426390129382441510423126170885364280889904257528859357766154952405734107144200438359834803364482083860268850979170064693931619407416945575465968415714105262627605639050010680365404193458503824283842815124009223357289895637151824378549626342096988442585953680181634786198642496617019270838829294298064239287495251792065651041631848855941345902861484376612285796878123856710635864640673234018598670212714462718324532837338916015709926312994066016642146459050435712594945051179805726606288452202355706020191596678673265068476123905262917546395028767208549007999550451083366408860918854372867858132100270736356136762993229031061039840140233394775360372458705042723535579799236190363676299329624502130755830736602561044984255887943458395359669380113486882645316834302221913221814478373561794019517066840457637195180210197948363728781608944535859722611325709215288306977899076389377679538237902891114112547402625788771253092602305809426993413006310755639807724862614063259467770597316966644517983496330089499718019077256884742542370014113476168269025662755217246001610586001603089066424370423633453195247787369235167173849654538796292035864517884851683186846229858419469531392155365027336712137906771107997149212697819983921071799862457208576737171522141483030089097984650509430376741781596742903100856644303462231058616313316417433226425449884883156883347191969234974872817575129682454224147867811171363299694080886343385718284725580119266278229323183355914275760836565088815682497795925744735603212955245249705487589693194779261198998555692078059751662928841092552691488950939697397648690662691600531280733188197725153329097835798252891793035471118931592130402894797483285420629027865875305119138913533374957362473271338241590236377129103029714504715510106160843824400406875799190358199202287627668986507952944405584420395900380861140421828568259069711280377610719779834411259072831209103659312604234253933033552263791905892167335589631443178555793671183464525673604886400037379864467664916344859991852762978757198783970001937242097747096330414944339445346864742580534932196853500007164744939017572573030185495611482469869850070457552202388665961694901090579492194753660797774826488925663087745192246666655299902347008719814715821735872144540380448629879599713131843105697141735005188507349237628362775849677572371587434124217406720932888119652696356731892432829375869037396156774463971311081215549134521295897053843321549533035979502429144485437194927495425270976744634236255360689504218484962893688505589187189826086362105901491279204926187353402007520037658907921167577512950314466844062950490755573130700269343765223049362083791340668019259567113676435043187593395731684261483078738222392839263053756026660776321451123450637600898986863426329728542819876599339796957211962253083444033425544593220678091322061490241533247122135798550761484854968128720932815826417454050913589953917838361429206725842535404857717002009683187384697138167300915024839984379224602917922079264391743608786593361578614021544002568812328899404551188487206293486748192278708717077948870704915136590795392553375216353546768633428078329897944798829848639435713897458552561561724623193106792606443110792655830350216332155714181055077515415587320318576220635936279236318569559729780897532056300619738665614462885697402164938463325632169548604690313045323873571353120664499217948730500285174275536117993466573314772542591016734712828534895248654049023110480691349452439648017378088985129338171693288590960086721507994593256316297933406968862719339713043619333515537863575107785960542462137351350445934272604964036510906698034955940972047312806143120303639659179452620907341335128093609383015162694213249790119516972823552917526635617923752998435921288432640988229108737214652721434749921449951831304631609714832129955897305628496574682747962415248878037972084339655485779150412035971149120594052572206271704738941844820807511568436797817593024898424894635257707330886527339655454580595214608678883563465008977743365678450805595400693210947776564330340710657049910545017245372848501159084367302600134093772696618027676655606351489537832931629216250675396041190120714634151037407940123406747644794238422219032851145551208920667406893825809266515726001480160194128829041097583542827746002836386738157993595616172860057537325806292899472522403461558479022864131266022441019848963877818402469890315360825807863789829061888473221231652302884278221728300021695302904028728994303085942484773414304869296633453593623927058050464449841591603959573425313431076050514318428269453007249023464606021902996791259456045244375563535639594556323741007315328298449077939695001661777999632005734221432903038642279219173887998498648544289158064781579431866447063027270243363965045628424645861075734963723037378457291782418681059984460120479207032642700396299464304792446340596349853263074454087931499635865458825576639139019756229183243456372465279470266917229983751733829245448568425925513692958563659398109484226565127200400870086328593020821011885495827668685262214137574880387954084471580668909901486483664562012547084186389870440420024600626946124690413761025336456393168700186320715404235056817256532251529922593470488470710854748834965261090427894890682157181312108470672170296868188683558656637976363929640296016518314775052988900583914018107287636751408107850982665468781472998819569550950726056776957667614637610724378547640978257708601706020031844842547834971820612841187375244699662312443907922448114188235092047957384107226377208707689240431335136500162697046086486202863265175335140546172089112023150896513862417756990184429670761041661446836284484486017141914959814170311698716357924127927946952197024488854404726148557398825431824680097225917732630316699165965303346080659099275396061879199693511288312439861421670717157233203359393641162450860527455412358845334473115380578249175704230696274491057256615416879680265455279358449753691819758691115245939140751990577346250031737158080922203825569947391079563286923824054227396930945173875703557468660094158299086193995913770250591242914947806423920546420274534631576534742946928030731050581689837454963763500435616680458103861693963822235801572014291491119003434564126407969509753480613446498810870893830268249716654792407936714169998476654018747464104807708339701290911650926650946926894444170378951733342163731351242413971137497780738106714461137057775961710109971831099634685532726788445054507052293845395114942918497511446030101600634065396060109508109964594130902235059973145700725179652742359972851644326431367849222548828071463534535901526279540801285211282703294838336350704283053439290729471580192546894467780243027420426373086147876712085883135001269870964657421211513485608273336486572653305263133488324128254873773864974985466345440131493789430116709424244576651098737961074250959638458523398953631731568666047475017748353400993253699282425777236246687632323266916242009966092438790710192406114911277585050329779325427676662571454775017428894572978662704573461998128725472181232613573303461625201193722685268668145265193275509016505230572764469769228045073727501476957441709219722038125424455172835892016923116087248790436106146205191212074622004654289730662321697189222527570628432987932296532667642415358444206447279514917686906723640577521502102198994866886885636761556202398390896982622333352658369355238280514417549706502306485193127002418542850888387694039820048429074259483339667697152114560479981112384199211698681525393109254846103818944525106681030712228912333311069515397668648234802719495316123273382562210303759394040018829455786090645391861605042642383766506699924658069853016201720804361990611114804538983972071719576344799641769864241074451630774782430581669726697934243117003575896176715563191672953007818272386537153937872272165402614706099608055643347009290509563596835901414218596328851360874536714661317671939803361041031921550617246239062922892608069802655930514850035941911677074340715897229214096527932901330065849589810054017457139910544007147638749460990716964702000092545236631333154702364232111518774288546186343996557159341739113159850692344009006903388299921862305111898611327377699870384423161847916043016473308136010283951289122443515522805833336710349116772101340127730152003830203744736140833707853840242202623342720347762815608379603276244574354904491989356187436176089089320348670566731409087284410429320455319696592095635995064872643487427039195729741506992274236267778569282742436580507957378597049449337508064147154418630017109705352854832247369127988695053967124877881523828379744440552514845950992284954686287315855321805680841334471960735944128693192716420550968049793208027046811551765805856385947439767357389873520380226125692241270924943168929537686351279719894444629495397561626729289948160157629554663242509538696155003920382510833600134540429023397018899154275371497130826519901072095605841298605563470169779832958470264250552447189818021914579997675709281541367987377679928495850006254090736147076095954029768321406752778596432885242205384237308988132437120480849689229436919671053196878563599302485920119054066322085050184192485243333097231691778762486796706125510441091817761932228611168664631998835014129614570269749136727121847560280699018013194505794259961528033986546717600218733718069260122539209575497971976848504649315980906185359401656721804298400295719044339881823992336012682424499938381778415943132236417776097212692078352570484447058075701535371016758637016930539366334652019640354977580674979416034746406393254202455234641315650764321702963384877333871355502533571358160175191474347709762461733377447794691711034850730459625416419568644334279744524480350705411481594820909422598178120190930929746286313246913600325496042237493843909394720485976638593738639079515295866318897160391744399100469382353213466821679502157104835726505732618456293752654954779259720107400806609791001765464811929332823015318990464900514520449698371826155657257989446523408787260401040066566007170608639918016105752029713065183403242885952952043988214834947091959358723504262367561938698836283813247920269524563816940279353043301241336766057387560227863014494159374232696771716510172294763957962773912941253804885296936730983029764904483371639553800087778835544398408807613446274727781646348150956808186044500404265792700049636175269759151608333805424867710847551206359972360355542537225039457780888843946682854290883530168054201083041035192005147120887602314433467929815085248059232768130723195858289433902752275663290833654244072047811453926028940532081415942159273347493239141450392123665062995762907769872390628330522049005459440344093433383405776093431083778449289732578042091076230063273546328345596504646796457944704514535236771946519895457395369234137587178097776413269754304716754367047614278907963236498016680988836990008252870272069299623425657023880797779364135218718103481035144443740170855362861844609964161646784936803449011299920163250066926321768185385308947498112037496526515023983108205323799774822029284975353870119322600554933017791327826511370008093994651340144546386071922716497193373681256778678371516793955977639051813418855502824471493879033265529339649200764177323640079739926220081430965321874386803410752736784451220218540827172589016796993111894074405817189399619707745672158720193240439325055394999839778637621700380232935741349181062652862454336736508166451308622625358049137815874206124954641112831419793130115527041221366973686504294922430173139155503595960546230314409222115008345794571295291730404018265359926946665952994432845010903044462474436837499653791891774475724257246876849427022288654419523438099862357323582564310979225827209618650409714370756850354288874009524586128530309651261841817128017841292349564758227379070646844452674383921784988615284025940055519159923019076576174260813658647489710279091112190824702595046632554206824619553725916134310040516323602784687574686836423923481509583625001451048863631091863129049763349539093324255659337360377118572776585367753428003871489836149218592454225028765155186906657322603081268747030478818512598588505835019066453297167562592101450850663295405008203286626213316955022910987994160880872514970031639081929909710666946958842734643807117851629288069495799719010973589102591752694597314422501420434832430713955313353317764610096046115683624993812728364790871761763291337357916614886266859296795927665518052034451581781012764677309498766701614725273634887915471204783567351315622883739762759975478478577880433521641911038540090572306751037480137690699484845511185782609270777669336357649746831270146821714374847646408678682845238211593605481097357748382463393802873957762954696254087397475136677149943045093153163507504521974614726772032740386394216986687047525093982943235658225743296867562245178029445173672712213943135605827482444389256321804105423756118637445599043899683920313154123320107257515485362615425546840983924991866955402466390572065159541602158420331122822848250627888274731048885330714331133140222729029452098946281598899464742342465391308898102815000887238304701090072758795372869097391331872190482099353125564946363645214102032839263905810085969196311339773113075462146988671976330910834701867509343637657011965658906941260202860817105339630131064232108904985845245806737174660848014694982650037127139747871224635541919532201206755744783769614350341029564735823479571386281745797513112535570035415910117094820257748195840646937601110293106994649783440385719640221349701375844232598400032065204402460441739781771240800074689705715154497538065173780160402354902775366716931925728722170919811094160057410134444386575708108286120606993916099759463720436714444374210982987459209645042554170710528303160852843981203752057013481163659708318768812077558199178857512312263704059167113026810097742708726585220959050489022934406559752483447951845236803787393390977926416003139137399480651095276520423645713854468659836227733189719056515603005264384513435388023248187377456739618138674721775765420292664311632708133209667389133843516604330657800865019003334065877906482444072341323930099059026335746423272488112075261812304500267635819144396750631311820897875213058567858991828416083851526446086584175307971805735167354072829284172584151772016959488681185726656333481189474887001300003941347415898037549288667909994638923644215556673983791941807539855626063349423210792051025644526707358781713886024645518797491200137383932495167607219753074550353606855789617684390676280514981103222087297219552188782246837685965152935445448886861738188168136325436490530630268093455835784613937406241481538538384776358237273079775205454085822014301248828006306526107730957782253161328528756356823107792470833417768428470451954866657198887522609370529083487978238015042628187268554881447199428832968927680261855716308218586475794990608264408562296710745582465447540889493691289982811965874854156411804426270701095023096099797452383981758149186009770421780755530359166491897492803819598675714325670396043592287297459892837847334677974495333709770205744464771993053101862926841612765310244867315585984794489163327472592191902169211141282469394274368450329241046084392054931032872767117312953661703830939536288546904541141155309860398156592983647529499266200002988607595677162362614727825047364299952296568892076323574108595482432978749902181161526616480757590500340431305258538698785084860599666287006308221231146957231761477376929713857753555395782942426453212213374677790009863822071353611988172729304978834677618793584506216592898125680991603694506319338996463479945825560601157372695430393280654291192033814371776196814563955948833430054464986546849825181357345962140298035348044580567256907181161484602560475470299581134735383021193702813498921250367029698150566877604838926804808367406323609770704117003490508203221116239429696987493266687958569300411464796499628406374043055066518134339091672152691256209761986874561876584202136142955440124482319880647770732084816992580932504431688176985722614517977437339723827890606645977168384829423868258543080966516021621238551452704752489596255554417029471205141933453613972557713900450593476358203449354909835549669753082528708125199729716967831976589930332517296112824584627456842651429616672111520402260617579703746953775824157654864543603207990495636326021303917627443354085184073259740830111673557002151080411714183733484916466039708690649321569856249758600490415709968385720508963474732436106816119752212212777670092014821759183287922488481400091518572118389552311098074765053723528288780858518521518237135636436377693256206695317340360475543338664879354260971506561607836570586449400837040165583595947502368700322279867725703459906328802228242033349469148659647948046131193521177844893872083399774531345300843071562251943566461858193793675447369188673404013277026851940071881869488905760447253364163592431870763863531529095679653504951078616002979527970809134905823336918258939188747914617664931939007206745021679383181338613754712549279701488206075836620152653316707967720539794311438114229243958337605728750861584069056386105430129820287451297338465458521863254217749080003044982640807095875352683618176075937872251794051641913496620001839186457208568986525738477707103999232704230922876701991510959799143790339758189011351918321361414108367912604430086182169169503310699032350077685119926968867325781612828560369303367390351842519709906537130045706299901031379064826701730987120398356611923339735941553842927731856877369416668070930912628023943672741004684260558024551044364981618550092484824127768588645681475494927898106597135911332676516647644953161661588214987137884289845413433119736005882036499901983994844832550059662410251862858724772577025753935601668137368866189934274150525554281150559044247511759589891322967650528598189290581120914929444322871997617384992102905107343905051262294184357838315079555202315790963743210168594231273228391031355160562841335925724938135695584843196656400838261000003427052438664511736407770345796663302634472910746967356278141696477235874079744674512243232662585630631823387141017404862691283480388604994496624477189519564692814317296879998118991917563031092503527076350965000253130711384579933107407934323994081101494440529512836135893301407147716429389805488971220674457467410807968759859129121390202616348595760973432697042208124095139453058892553360786190673433830961529860864820203553365835335736976773419561038997058673964628300362037842875073010323698295214166091747452239268634578729644644489658829188933992910496398640709053272735237689451357994436283773524504693328935633387410280053041464140476058793449796542538629874271541336659825822055102169692370132383683896409503499735770666952946870847063120830007678631807858529699598122724173193804541330078490633557829749787811126957255061246939404776288863039275321449889775055367366898205708750837499150856523727243046965852007206139725725867404044711025799930223204335467533783138354605145106759063824422846346988784584260986018055444522674144372156046169004304509181877809229590952238023196522592759254010960732307534009102218181537308222806612441714965393720997725622681561038779423612013116099600981316819412834887155065184277979805210657355176521311692979156057148175888836846107899152327869820346497627954408723137472140956323847437828160288581979621704398501488656631188339148753747515534901178185069737938944672991358756329990866581661683398192432322161917177115153962903513647335161471306877058048603395309906633117488909730377710444909999649511723837289171747988046807895961737522872228168079945068053240396231987864083636141525705425880795264461501660668794327463755634407804225050680635240965498326003891743592635009556595351052291396235273575008544777834653387513845497777377453569314535529813183428286354071175228295922897293519283521027225408928632450630567262221564084509513048564598182694669497847775157699252490918344727694000069984331012756282196940401789124287120931120187582258868692370991363545214600974618893328200356049538052864557761034347206891338704334014406778440326139704836106019148049906686950423301445442641908624555979527374237467235246404240179075769265458640508374186734487888732919165007239482126528722256770052874987627188469271904617919025693663353138123442032027075525880948287591356892362093663260944156927138497819076013385076526502002796554885332584957500447103768299075275101226519196593644558104043529759994350332611352809867365633519848206799126551722960940834454593784165345821258309975892600367602382559564074331970517508571564218316804806215330250385088086442080522869762570610253218365874600531425875329041836969286693997531959883330426737188659164954075256841821782137607687986199149689608333938469274565592535564996740731553329167475852301378089830729174235018848721277907716200817309164063090380438195541444157145668836800244259065526564701834069878342075509656320678753298905287973638589287275149928787306285076699309344301653093611534595716118232360138034597889805656161624944528657094513542069091028686694963659398993899302696961592017211917796835542007975780417534698291211806290020271390887555467371248610318350977437380396122693608583945863716734898002462879909381232293866650305828413406914511064192427326894015738742957658783008161796755076852357764134383553585361664980719221622664013403259251301709059243084447680904293302812232986465022642474835993435029996907148673761779974322303837343045554830863380146405111244674842877548736936554907939400868105032242664272359126918450231165674206871562561430460030297310870052343046796058877706957462638842945656538980386388234766529253014618871337684499964672575634754486740267439180201222814850057590491965295068831645040871228309151876741028286430184210351969744564437774559776679935488741062675654197358187066086791156994002443504601093917867849734487832115644264074456931830031907447931849569176191397810944725689054377534322761766822619866652001553752864410254524856685106787059854693714317808629214650842268218610280186902549503010114776598646151460733526891845916237601994608160854261706813967186214323259239573294224289429571895574773368171297499614234854889919302134609993935149369542766958089249145652116898299664934267476607078246423632287656618678723551673672825217850426636952267318674808348014712274391861480976801527565585013218987179611105040062532476905482516551191181417964671646717463631287876002323791661804377006918305976062328020968916196754734988982308752472422887144328846330565652223187030236302301183738038545401027537201196816495351842876637321744304363916058695813525734751820661579852102354329317606164058834697623435438184092980581229641857720742951558333302918439973937858214724738233773162317440052337725546340008293511046131329766591071345618349784459306281753939624049561965428093379942826255686925846729173581572709085643862755725326901850938630380862912787313103924451848067136959366948472481564568338560976214567361434650937289530740039986324581411597622987336657927653177502793876833023729398802448478261110043092487419614455895389480265834460083631290852832255135655163652456308991758176432278355979762176677852561141352888556845085330592539526270999532837901728192101573718692383779056008665825800732294262797927358802918944563713302161894522492911648891200334210528957339912315907119028241998853555254051855977662794496931472785533861056580340513831656571489247978889570709163338147916915680157752646021964258189164550734823890281108237393817355915283022401404318973208464751346759452601887726561285603341136751196577611416986762315505454848427359453962840628925686693831519275152601828595413744251004794597142107643017021697954177703843779331746003215958973280502324750724694778431237777942129614887969902219230299713014758601211047675041786027857660311697663867478179154738708238493717054650753908610943394678698583732327818755504157852370651142691632786226504514375393087778109670885299273278518845335905014773075231284188176552445235493341959873825441023800783391191314836276542335883674702691850106695536875949167326704933917180413414301649180537027162903981331033966382850080025298258901798011198073937807895939581413920304385756587300521129106217388387861212139401187947273485037281513578171882113579462210796661975995349526144045855751781041223200921048937953432695747005658486984929663915076853487758012459285048647432781286180747860462342616894579945173789401122088125645598170115707620773039153907708416279961975526145651398355802867554920739167172485447391368589733701055737302852331153785547863764167201439711085739167010427389584954965355197133147273917386873479779741712430811254065710631473470460665937892601530452100689769244505400370209289242308651993100262261040792574149543838130639875358095301222033568849414314516066497342395853813835921495801851710580491341350139407968627964041464862953333286565402439951919159514848642074141394006582099855772900607116669515382081888010648170300809017558674742122005112306800334215097256286967195110108215529765443744227299307662000354631228547942673399210189268486680997022724149969006208698107676791990133808938001776855775286634464635648367219627206066292388575844561111528255579458612904682814227976548586845159918401002640675335155954125249308473528996030927987090705533192974225244266396108140586857523514226445047313284080913808086349108649236136833048723080679992804912589876521654675366580389479991082270343677483589888463190142902930795397185011320705670340271460879892436820782431998168889746387403465215034477228316662413215251986233237570077710634523857220978567209701106387256177224317130996251772992455024880507673017959347092781072642627551502258345048751499968799388696981298927386075866966096647131297222469165747714628118421992987926284407916267608377367469933294941999403073248151248894011209824740270161974844584952756259590183788799791443449901673246791687734127426200268646705771905317158933925503211005951606141677023441410092349194125412748964586704293861934724100851423273349021446900642110436948486532997417810883958100484334647653109012205804548160857174990455412743624526157138762194103244825550628829427304759359077320469643111175517238514594467973230285112410154904049533322325816685493422591079347400731600258744286013307560266941394753645975312382249453648375731496835124289727304442676907523512438767887861383458044596909770936337159974835863083909202908039113697457335308984286311322430968214755896038761139228591225635105521174334797977971609088684975691609524809537776773384546529547501507009073009958791394948637125125452669737607225332965366070975216624874433352325199225903651207713750680268757447124954773894121570417401942882245438871668907990793235383736206208796051506667304544576964383803682431076453798568254755814583249747759842082949774015844542563193500060085539554190944896167493995968551738171308876203790854907494970405995115726270190207421396945497713717504009489220172323059288953224795589510560091676775257949549650729521180421421989708110139955641249852464448677656883849921565112502809261059492999742020518269935912657367755111788804836607546963839510049143406316318504656611493967605037498522453167203243179864725591877000872241197961149553589395254805081891280526648747173902542333486524657844037179432068968979061962482599925283535738457157072799434076614601039187211170594317431080974097825352992528023821664280309461180434921963611664870639926822834039412027309380227480347063183629808747223862616690578123178095073482490091546590460914889379250131704400751456868997357347978873974052617983775648511507355015827927372772266234776667752907689083163564396770897368286961093085972352264538952671406054911176241216343997800987085196511520956276513655036603101664326749118273324208904912874421911912049123299580603708641542425335576169912366527615549019493041371384641944432953525158479965588436727343832984496014554194932583016330267191469065140849941971421733405526871479618714719356485324743946881883265552995661806948728259373806741696108023463772903329307615412395328568243153985970220158645177874201309953489934997703944206580307194137831890031140140516694384387047516338572437839168485721515259465492182963019173622664395094230689070003696739058811024844463130490447149815475841946689618268933130839215152013234123361217077124653506868127741409360050733597120358184683882873434411864235998131307520753347970991299673681680581334753256720549023666480695814795801933188185121416400535927644210947664409651835012183879902119743123919227910779840747020262315208160664915489002499105281557962775179395531397611073582468897566303332829727601284754622781623620847067970810857935788976886547762668980071521990279489521872546773477567857385047818489638535794535400539149886556961176266793017806082700335882612837245475173283574134178414215319038667844371812475724191884323607549327952415174962645178441439887162377947929420194599734931666692757100796412032201832947954124699673254881535581616257820564597574824786266389019397644410759043788544331319416019471527654363758769343099516969794442592099748187426651050706577164300935566613002907620533159566834083756375328014506006874143868494094377832499418358794476585380216784417686373003321714720474724100083792395181386923991382404902386836590211841762552194854388872857234216440278713733457470636268051880753122505250008096854002331809863817853919046616060569486195444762955763390843980364323953491255448760633436702863753546127253417821714801106866772008288824942906253148216491550185773693930563374030130442577671858063948789373347057238202889069651070432617291831469243746035330088034007351475491530857541524839018511742153567242806007178994608894156716153763242659064608073837388513516979909848107811532426481429932101554847802679984115045488184384340490264263665028978804736920248697979925413268525130824116614009374066253652553652910223262676785339927213090443219871888993201942154040855040114313681919457875191075467080212374296552569697628786887461205655199779701652222542343415891505876920594296798286064263541200879813420034243133565737153656594037129993751217975080465173420503212446846862598800922949527466483580744570424084245129880076475443983164752793025570656666958587540989306276444319678663522967228492212789934194178050287564525139066223202830553692481685756413947756111333608815594697724107037165387493459995483890747297853198881489227020255410728634199220488193190849795366556852600082011671258033807066751378948181014563427253285710838556331124225873515548645008541887021600219363085674461964672817092394794196116135175455210144994570407427994904338966871301809215116419128424006288469337588950799557837361732775010124142303366983880654816591197654609315569060717156553819002013869033626050143282618963989647505969822695047956736245760490944534362902370770087371011036535973065179867174811303103393068502748093316756436652804659147026339174544579344056729086548470004156382193994687858997283043746928634031417948107845073436274475973858223997893140470776488340157981342979090141971695808774555331186022142392785633341738455124532857101736510426162110533891012007493875207590021369443595560803538630534961987130583419358672162389131532132806182309538318894687035324132718432224247244085528889601866983721417182354519412526223656128354407900518001719860031792495185031588528697030048811982262871329551943307316139878554989675327806633647452657035247728641470399134090762174956148220111656280931901101861287380438965312874817450964682274120915634629849427262133593088420670997549298394175859322659288731917704146397090152360910742460887280075010460681725923711972578820242526951948590658250820770645342257125152875050126874828044751664069676559208644416216509467726998173516533789893853580564948812001206219267083182710819713252305084481806420487859619036760265072444482079515389293624830906254377707821339355154222838722407542681817015582555996844018628574336456997631990425434057642153404904177369884902512843363824556425817380726531982531916149774851380730154217643209859114902894243096182885410870307060705197269861941679001050341041447811474596337371615836818022021253759314685824601316483475944587852657546028300985552314730540784496088450652473449646608382521090480752455541937540626186671376949177658727026345539209288052442592431410393011124687469952254412857321232946652858758187432895093080357027675300991698497384270377622583858787321598697493218860990505537527462519718407172117495044344230748923485267530673612273503174977498778995347735762135367273850109331704269693795010250282708280009101897499677063195736176261687543910350459396160646606320504420818359927174235962906217619582178761784704911826862301010750796416322520142662162452294102707881614802834059312612295316063411685985195616464279611468132850256079813537663314516538357692355261741503516939946424962701269234022970926180686057978295278114362151537126334684899583563210148402042476146866290872424780176174046834545998366730204082905813694242693236440450825698125048414858385147982474486209181922496053564558541484095394871476110914545387457773228513870037209628620605422059704367775583992668499678930222024937826896013398007868935716988583487341140926089987082247401522284247356873939363650095814087365918633441303814139041224597824796528157498154433123374335875108920363474502897449100559767280553200620188560134250728326987064260060329791629582030066064034320273242360477992468579663135949468127024732086692004437006333040308393409544657120513605502889509940215191836839184070788017210814465150447332438197103233596007100020070330701954378463387243961703754432790929127626579395372915237445968368825495874156001230910580323545547180717812661583807655104380075079159353296734998050148316402158971430574478167626960387387653374399832769826136294341380092438032671301576404577352053412328399891389316986616087501178858918659084030943114983373521267577697892977335102133641906097904443987112787751687769384898240664149640936912524181315080490920386170756548627036634125748459791780043280299649730667752338470202922217711133552116973893962601948600359158056703665338800220524713614750462059331084584542793401492044527195009268589700965879270336991621388295966805690425110381280227748608283134049880946368134177950969685711482044070614888073999385105957660661345231498884767134401898138007712048578061086823438351557365365497582696043581998438260135577343871455333461404892941709052844564767306344990964948582763038102049706190266586901124659066929605820625548657200897977604373762252891587091388019497085708780559416084948453276273188063983242177131886454038131837954506692172365390017312045304827063052067377905176676746205256086241827964085185634795815888107281961837502985120420861925811753164041863009822882350053374377082329963530628030660782582952538405650122760295247122527999836239269917213232271440374534689419904098438702974077998236280726711843453197465508826172170545891231243245871058992062187040646066528423240645024117684669860229024101222798911841231613683247430091955340724992715318586802769832859366041166907313135817884049008482392853460211509556172790039050626963682570532209732690377529567115057217297856139260507591892316859603659812696666629178433286001960587050878850688424857699986402045559659465443202130408328421877155081898290484278213941207093876114919929817843858695475226734497857964703646068550140627381611199320529996968020929338579231215212116015192722536191729979028341626243846265904098502650087444705093010112910559455518537779075084345243366350609321196542567527433662977035386452211033852997467155509957096694623032538162920957754241504010760178587815551422450500851550527306510574459517247049287814498281927426470984810670641911999484178389428169804664459153676871261389019033207413109508941690316847615044165334412317994642846146935150507683014108924076037615447260962013568023747641182100139819439012614375488473808169312226843630618525399122119436823377788793765004106217754759216633889383580415668689573006346384859574190867193688056268880090395478348230879093809844141059356579642974540755358406126419820552520274376312702167165888509634579861432084020187785860804434838397232341234490851112312734313740457913767624848483159864584574614441531664672053910314864699219335681635818734567605453798834991065823867106003580813564009077198587804571738877462264723260318920751106293681423608963986925103894153861759794673058322788762260250488404381428066280846339331731647852350668388439817045360720593300053983318472619592061542779079234812474843620734739895598227129341461190675463946858242895864801696466742493906708849303222656759396756248854964295857753260337199941425316751973660248247669650511406745937225494128042853829485420914567041792308212596255029262801380710394901453332895005354536238453726509792681969676579589312951043120279158798434752940585246799412379326372903808754717026710132438548436200665041541659137298983772478174779221840977769298861053907742140735633337356269029638688066988140947408747128577723840922572286206111556528811711576989923621769037770547856633212490116541430494825365208389552245115862655476292031138092277529643022387455723375143783364500520669999940872442792400862554531998465956690609259863881702936276582500913655307518773074304058593375164913970200223409491552608662297832071394837464952622148271636959140013906421689566709967636617338835830513525308319050881378925599898056504988465578800968554988026196061403894022579974803463548597460080780618116427406678132691883640823833576147776145851983802805911836818051554663305184545859577116615414942530545386545249226923911762234446480453872168625711710215150484137083322642867613986852425878215381761367361112890780453509874537994483595344339404490035470994156277736685503645436083287644405981299069997346005152073503218017680947045675382720798392469552088119343570924060692462654099396791630077259494441904678296419288803271984187575532211498029545988976320666291379242888041435264130279625992408981219621813826937667932643875699823697733847378285179504230544069155980575740695029588218776123307051742877188297958506275517214141956499069820003773341289240560224974342921209981672504128584344451407546667294442100414026516768168009973694716035160199455630045890119166734763285592329437236218293925075210405778464180228878422352510990562668284669188691137790702922006686421498279477179412445317041449749456735510000693825826315252441165509838821875915690308638795707845784237517429074616972310564621822460486858101764033710303986902504268928622893591847311628764944235936640569045190086368032018279931170496937533464184351194708896821032275488050666896614148123403115343410714418333201092689293863583275839144531876013071993244645638311193755663793140119354415244838118946289956533292297545115158585897961091143516143840923534104423592745431589933604616720086564359904432209299314177253093792407861784526761979026112973811952906071771030887460714820215043719346432163318046792161640702665511882578457322856958261089802010796044065927431256739915875118545414304738756316532378685259626957438837609454816290080239096788032963538817343652090877359033007271243195207963170160735537561049018490090798982376083374377133742464435821631992418224635863595378903897788890953620213436019039066239938739968777022238589741628303518686980824027507840210186309151415030622470489764919413876436000788884047629439703582632823471706317953983806561111465589433305368299890893510065358708510868546153002654215475500608101975061620079148131401586146480783977521250503749009714287076340750652729087178319203460655232474341517508253010294479345747213711400873800807688509239870779124345518235019098679097747745905710754961942475612246267162390548139837689452579363987237274673054584679567650508484056967852722163541980243732798857420684322401884976589412824482220465718215045332495440092950699336367772906199890318338618216381922931866497102354895233174342259074620898524718761072667957018680747972644574145302299340149297642901156085326913557785579701378394317899267588856574829869409557604781498469290206874026731786533497222178799816732046463826401756394847354180357409611134165383721814998912376339780751366272099537911202189453285170361994684655712668363808192428572507276262172258960232949220235945840602798388809171062100807795882331869577592444735032789182415499014755114253730325920262400865050304288106437041973305535158346151231617671481591257933763536164884630818525502872759633061829084147517560287042473081861832222912335979890918358959651800466003486264492374529453388981289341563672375593557487293525938162072558123983908733667223918819153971380605624731729969787333200993975631509235831697566211055849534683710045232571536284451672604413173851507924774593971237844565885565021817913866574298487623671400073977850404060204052206511196666186769456303849276531814797774398536379631131799446526447281237311599777259579468251414477879736018241865424768462135360392766724610938726251509309066083053868140910689238958924447839764319378136948010128948607370582682019696866128920565146150640619645730547686211547723979015787858950219939863161281194325594856890343975952542256174031445787830333683131403439967678720115890794302258152038365384442406822651012609284821149129947611500933804639270535739033115448869935291543085850815046154893962140050906992531385131799694352754969078806109878483734795322989911458040833469383841613198550327196637313591252162697789995460242057044556652731014160334199921842863562157141281171859156030424306339430628374330450861055175558455952873442729342158909167749424916176429113797011887772380010217508119280216465583725825543236974653762522202318289355958848745920422757929674019002267016221840083671394542296045748539094435221544082160515768024615381298657442643393867837666992727517683790063595480571948617252382729809944700848546122042474356610035133617791200649534343246569843655410297833460234039678199766937776029990985277720742305090593660314532783807125456210649732828901824437805354169359933385818089759220123156883918875327848953390140346999291673693521434962428725236174500659117668002250370522838068759065436845402934502765759105974135412935227894516100660147898221120686559116726607006066047940047069815941445344146052276436077944488671428000504295361756633904201812198727567208553755008823154596774739631227078522538769842120420676758738422515490272274787808905440480430419653339389283135153303929368711531443616069458431856900228252103426176796758107631676670997832712600102864346962045814899373768416020850801490435920237192536018063631788499921587417310784776468570584751328764733730885812094642400154679379006541342188260558474082883429344062752340633184948091007270613724836778659443943382055427473473333342484874674187374862507041459406164991746618433410117907827153023666592844503702439640451672034122765359497900634330095018717018940380360919179702440437947084043498806544899610934277276750943537534779689541147103922641839732298331387128661226651377153963771782341554445658294080756265878010671073544885409081778522424921277779602874926495405053945521298577258731807933346644770334290987772879657866770141253908502609586017806728756685914495940401445796202015103932980235796034474128924116729410837836653235458704160604947439729965189770153359716481313966603453620648667309306619910344074970416805435288492226702387310085794793601308780532388388503980950551837019416309369430944530651573698459231290653567787217003876812223344203113175300228616319713766817787113349561637431665224321830193757145641318561877485146536726607767084063440951328457738007750377678325733996729088793475670053639144184608741808651235970150811158038056678939020694142120316805160189330500211306923415025172023635311806796338932466920444339251907695287794144082261000086501139565108703471540926252609129317375568922592456634675918324996565557887502906029629160517159776797901329056892214955825673978895458566615780648869089102768340419998502012213286232324696174845004497178278624579162711023402764376475024761853504212192355305559440668190656144523386231487968485544511814680796259357841540019506177679629273091247541587254896211910836541733130516864603200837015186670460095534524277238928005755975520394542975529414319978012703751750306927392297758604002027995517032153804178175076100027897540155420297306319583324111406071579970959540553469717571128992874483284596763629580641941826316078535199356369464133989412125407149475865483766261513804495366970143447318873933412126450790242909150404310142970766653878334899109387018261857977366381033603128377097608757228946835607333560717943510111886195630362848259853751804873017628604176964712462237071605850315217060168971069535598038755072159447520377057755849081133142185336422006575886021215482045813359779680739933487297527892174476436456460896316670711312081080692499260550984031933584468241214810107143283033044497003391220878741407021791628016875967624465731231232658278051834216945194321293422833488031901497668268336679522387152084913561968217648966177352644622856509142591943933737935774386694102338333413963662584857229949076458092592908675080467075248807776736652546340943660354997768818315687760702020643919956705940884631951617036071202919500187763160762930690507348450515058925340191501466485634306358603723242200766489285536470133414889259149704880995938479588688913769203686402763905066071773585552631665856203959191527024293089036512477250669805206544581891046294397426116999794681642073285866332104157256752439488624630299226607972106673842812953286456787227328753639787584862373241389454237954069552995101212591973310247900047167406878812701532106741548847552910514056904395943179461382395315521851977840510549068175507462825304436566985669109854692483039872203128975994917890347848810010326547507884932448186365884767831254778576547477743784662635398219030531708051331323718896887644611014922211725033855788563078953567942589217654275544318071175229160913713989645176703845011204846340043975412954399209744959153696315305276957060213564278860079951287855693670060661279113902462751439479050885982852286602819645330285807948938784739863390274414506548997423492343441239603947703044217261569058366903271280085201217931638912247124140030683924516100919069157205344123623983308139858591759733860487894804186485839658943509283280059297841955089155261195198792977775267584895527892342900705469748963907728792144333716897739707182143210089036650282429250898590559993783486728798706045248166562701311245103543813288914434493507626592739148295968742815072990429924835994767866462469080584385370707164539557055643720961185839064880102244628342453577864500974539184478582664023049658987491868474499260415389902611070926320193420506694275942255981624312028272921915604409940460325821044503467269440187923315418114715869748389356006220642208952915910136394951715140932676722923603909989159102335053760434488148550910973894249374201184578074383971764906188695813084474038911859568805363892186214557311511033963801735101593309201823609854365056009885196062356190955316804636837023814487911915502875948135614580625819071706178147246916030604725374216850909777064190055545175895631788217140662717675138832391434822471878283207914386705804218088483637293454464221804514765767654018014702662557710929120710658830910876189975317903145755256167948676378378258263396800214818630334476778288234686361559847634373780004138381729574872429815131314912836110479092556084692118252938816160700225722314883018413065700046407587167459011585698829319364920232353460732812158409817945942188405074694248268940810830568408886498615874316107395097992124201155483275968812554727905774993086685408895290946994293649983813969882821509704168943065380862324814442394216183669193184347542144444250367110361009869053452876337045926044323232874544950428692991979302217417644149973023936096988360439593356151760909522274308836905404153162671045816885136906303438166314614948841248304457436988317840342489137184731884791364693069548087990100886032559666213603324654779428086705435332667483910969351369084055593111224107325893977995144302378264167009678482013695940456999336844936154872731423191423141825301313625149431912526123691825329854283366948768809906250735517772023768725503773937246191303935019032028247268288665903329661424749949861342567670158248420986739884033655909157487871220394819630502983577392886788224806724978876847856784632053521125120522198294546418765696743490515508862237019660534267092824352893223582351389810522984072606140926348688818370106078676619270779682907691527518950681874501207798312001046821122854983297728351518772149417316117233062833140827407247521307586180007117314059209680434164424448680488064437624233497018108484174583038592904293984527101787846460198340263980339564580482544550221432765514632334900046776518472656990609151246075732933601824069264246709220605896388252628568980102517250376175034849570084145392213213910616654051053096867331397605465420379391444554344876669757617922418211050038961119245134640401591969604956792540541989341736582754025045722329004737167963407649819334129219752842525432003460974223345813196936773749371974527869494513913770175011600528532950497565420305625957262588902374339713851373234313875316161887155704665122409088729923162963166802018450441621008570792554299569221880776728847291213751602195161815977707198042545066873236880131215891465458725613973855834127639650822877513293717508887508949879144684261281960485149520027856578097538423973098196566584175648562023031929848856923203450056855510629021086715345139032346068027176156643532294777754144526698489107581955179656635722077654164890885073856667349044521131126798947421914930640009466396062497824826907564926398942215612844790502787867695149125002652319254569864892525451689200604801102792830634707363444655028224523215389064569499326421602954192593554416993423749061508557394969452161483825684995454851994373356992487396805497590116709539482978001348406305544366939964764061207084351180876880602079510983900005745498654197290781004629376644018284466235120384647463986186744928428144769125980101590410360811849032231831029054326366785318987111845604882893679416320799610661100494955654286099018038216456351151736819282502158799255267891306046727003447957350387465521178804973017685776018299508083834441533745653237304116278991818019396429266183941435890314173568826773751691555411197146405341670263980434174315864502517656185150644940253097136555315417825759785556015662146647719782668502149687746250975167852502447393501286624635953117534587439855621979365882443087227893349963154204754763066233685964275254106370882105013062278905785395952500400231411768982963840801062771694664961484890754650168527000171430360099546459059143920837642963519264164692059845135677034642072788227098434522656494910287425315240151806263528716818062194201641542475292827730416380512904501960143655550276584416494746744172214092115890424429224913137004839270837246918076623531107165735097351165180175628351985263671065998449971345616761513313775026149144029789516957270040431037119966748499616934339486702198253177040843760635538102798512401770649803982573336951205811005121360625997279723985400364057349807523066444394057393900019334059172220971383588002140706208716819836095521953477624632232345922580360303815519341726050610095800385640486653628356146194228892395551030024599573880995438325621591212050752614937185522806652667210816221983781562850525964734716466267453008760909766001761664735880625556249412432181785388099475446896094912948219988412882793763709640094758443758618563604221941355769031318187127954507615428196087291305174236368049711583081190270256372412996229246591292941701067029967227905835725411064277219369287105451918423381698932645716844704349684314917534433321330770272595328494146357241246871587330811997025100733916867704525334992642835271251662753882620747058644484044423080021840249818662279464103024930821586389769731336835866072340613251244243981612722808364349729390022958499276073359632148085291510322777498199488731679121482994536762116025725111171713335766856812247490870926639957228595168310858402839361318044748780796442379973330960255422732899070126757918744309226545085750669404525359926674005197796634793974108179977701728546752271166366902456763520822581315703411379816995506448280895845618287133171971370372899578724131966906712010621067617997394838293588557577458260311519455026066202894969610997782595012702488877873442964016292800620320756030372875812727720441310465068471288841241893602196829241568846593038020245752757825294564725561145757201178490746049964996077899367332052808319932840769850571692048691632657009186757092997465692056727607248772217281403229608269735882445123318217713380500240537461345273499337443396438117727965105524751016696844909442249685755373490888873226028792018010935151451070152212920087922266352279773463590060880112201762435036982449592098729235931364286994018428778622231609537206682761847851548920577154575576652971273280220988960830762979871673050111544517344398523643944152105632323961735681745520510664716196021197556380928853259482654105900243374974467221494835269325544975881893818007770923474014668734148891433644959752080820939180336320688747712061135692093700876664794231873628463039315396716673062976023154597876872604428540980595228920723766148100941932294745898270415665996619100211871098474790589123516207795215157013406070691003159982269570722721113981778393892389785577135700185816567682549916525436050319594006365642371963798862039699343066232731087012330147047033771075014648304824749350280018685416765805927024582410448981537225609655622820037929175778653765418780557969080849496845550699680940394065196285480454957893757081908474088939935555178058045959207587788359781472623278539899163153890999235874160317672734261252194407645540787813168675176399950785733650022145090078323940820001165951079601088534032558925871591799181842208328593704663557321862914900745256997336826206580451303850366009584097182881492870235274409641892678592808036932485529610886246470367140472050682566447887128086083858603718606224141518279745710647186862031028062998235065078560430491570904169219219649218542592820924360884291949686177371485403759606753476371346239709843970751093033897241728090925712236262130065901366037277668329408142284745254975324010114308022731229134512775542794714159603210550824342443448769938030588611291715273839869613116463157897079056577638293882814890333889521442240212209384571661914704899883911992153627281988130427830705309538275518842688977330081043038599154744861327383135666178722574634288410545887483938303742603996376774382598314352166286481210118029740326196804693916519075106626850974146708882170475610960138291301890639344360974844366018915049664880908604613740557734903951617869974243410389055174971189848593695866535141046952314245426569814180356232098140459770251170623024171377856921079454920672993688281634872685839104476884724084325133870225599294690874092020862817861852933026430606259243765558027903780811073660183595532990242980051962025236861702844932149201290840645171664175874746721692606345767123669218896400076375026626387802218018804755762880047806426781921282907763057143954164539513515850811762923534486720168096238367586362486566106054902284420626843498950504692929632974324674214157435261920251406890417047920740152696223182540101734129171462760380040623199400682189223523301714878521504470784979501555492724754564438229248771919312065414812569187099131868800938350527913006967626101047411832097011597006058461294590593093523912583206230672720934734985700127150301922530567123031213553772413509322282865016867700085617163189664589289198737769072771217862092530783343177169952389425639590378053681595171965592504473726606203347112511982069105774361364443801805706949947272928635023709888655546007521769362963796125780656646342727734487718744237962009909397309302038230580115870672043951444105444785511605290766630106904916365680026882940841848241052691761149684478282776273342930053645333980300117281491836365995540763017151937599926890110870435237096654174630443412744061814171645273068476238591425252948871475767259018333295171742022997412968829895843237141179292896796729158908690862896159453308222984816871317058850186133570159121498729762399855055546139565038380632484352115342944907217262011509250326831980543849714393785254527216400599701983936421903355424680450957615717799113305121195053349566877360171139971479178563834119664854627324970049731337098539254306887727587647581240465394247004271472665896445438632902632890889836887489582852633001670666752105467558019021346645723560702550584714174251305788767695493478000362739054768962334447496922420001881289339738764312597178415787892861342626895734163991885030124547683876969291147870737135937867350317794213986038591320481602316685797649019878053949126771225181815024677815974236366120818495104435605670530623993173602671784212631547085358703811972889080631210003938813707906989997089084128757542439681243832329330436633405349160762444198561238482937730813478333306040817988708379538840333192581727671331682029450580647508092573560832205231323268956332548866854493171301510678313077391699546299214347121406207267873039918717318107486802010918462568458226575197797880056869359201064083870018061812353953762824943458696161270882431238868546169113562958571414027946208768877370626944576691463990170043458480523953075011465857875965032941382962828898278373688348746133775997611302653916817759534129370308229701682980620798388758871056038863897211745636401962379899181073276093277051793918546425454709856750688307004251001321421131135232931567056409605982850646741750332323644246428353324640406455278427161471522217999116918665509332742268697127889601658616973986166216151817877333404834359019151021889125616970982712866590118701578287345083795858793115573277080828931221272536009260187217788434346658577293949329357010517024546539473778440299079346609380259530622268317347090852113839627592406368169051229774521804181833763189976899932907224613191526267289948251877836265575560746882530459598980486475341111573837684304972132214241152825719385861033780108584793862519732086575413632597868025015675990092194608238551642957809773280802923513499332907959635369314100451321128945542578337630198778485196849255737809341253086839361590214479384226184095381211723037861472637778576399441192398893319083312862381328919617882012310420282796528754187200138577344828330225111030364065072126596765828200629960826630229734016900027402189417427009761199289230784358806872327458314737929789565756217382329120834153482039366865502491432678319758379083703286314410272713605645612039886093429579826061750642695056500780681872104567527954652353799815863150354998423542559582239908415086607663426161295809679831455328984262505825878747439206875438610264331518430812407833945687792715467017043381321073556498191271944830284486355924986065502299510545182743395700109228688866014789023557864868149242528059485971054368795599285454969667114309550849962332177527734591943673542070550896026676006401939313404925862965527169043873094706238465995643066791441652101504505543570575467078793099284317411094972999580197068995235988991172683987347788467802971742032849705985724824794021107122554624114095164999924661651021330017177016790075514226943183636762894749142093751138749032145469155267286907194981533979778823225311181994517072574234821733272341877995314148019662841317102612212034005546345754815251593644387848554953590067458446177836728601302384129062714672311251277479665743343518196581214117242940436445684831982347478202000892392755350231930167840876909348433972508646406318787989438396134536851388234358514013151943938906576075941329988669098831495199728441702444438541649731391972728942567323176864882836434031490399668891614089398002016898415229202509485922252262376282462290057356132995093903496308392045898581966350775135068689535478877048521365105180832338817610424681071812949817622868266606717732196993377600167441458629510230334878979156664030259332376943023405337526627641174126603508382800231215940974069695787547100714642203582168382169682775087082338532297945743587452775694714082534607193146128684751360870981198358370472463947204514139476558138346476219317661964183058434066934911009385079223888334273348452514232893677311661897826229133508222116092771731388491489311866661662305254612223807474419804321163918503168306529791513303584743659579495245912972751300469991835744094286923237656055620520713853452372390731045099328375212390729016478332415130142284163843852098870096588714300923997197062949890108861070830843093685685746540180281074823813833568207776024377571197708231272146040423750526511138046645138507242393513852432317898551991172815135399366728182410867193866072794511098758724676483996105829442091310855426682152339131380794522234122885093320062181995669759860007587259646158247770880856300214645909746926033132187769464200379980534478700623769939580128805624189190521099035934661246050097910303043665728664234695856421640615215857161477417949861574150045275385160430703744999575911486558548193571938477990162208354070526697575166976243309632619708402561244940497433838567960480325473564250355442560600555348690833821710448954353404370677426928023104555257034842846990721804455821406712576672398178983367459994593640367843906613921112233177501520868236454324757771485580987480847417749864903784593654465764354097309319422190694891794912308030574560747037282757559635976392410868742867545004034027886693145242461448359105163164414525422500693482967814981282639664749023407338377059531986992514292740453985929389826447143162590490423470526988846691396255157126826066129213253235503443128222498904754024678415656170708621561427523101516426834394878805697028816466571678626759500762276643471858901206061461685440941903628863435363112213031712812400911998100769359519675562232966691961314755076514687662371799414838759824010549612794879962043188357825206294905399739493968988165996406797702843227751937044898454796285224525211718803078475899320607651780729266539850265634157651796704449031385672307682222369267193500497314131293384267398239956411728400647158579362611199233044518575220746292387398159310849822784206636656238819900928469441441704814114462654550348963864413015671342498119351708241565653404185582575904032369060669330257347293147140514697548204378793486225244192118037947998386147585627246815801910552070736331300039060137201580021841376045266432628514283435870814775321456006274692375940206115246930549502588437782839890979271564019800950720796089891805043414033197523343167792198337079658679658589313323087563747421736865135547161498872133028973519291363716515294234603304237810139590467123982577881533398394146986122360171877110725305033622878298953646801842214834021585895850656900534556581426455343580895640707742523287902640412028353295772184759321403319182135339726677051957972850199620636974350896160626562602942138726204612373047498507223133950764438842043614798248794933744841292578718675676352087783486008033067974174928020025701193320241351597314062678700977195897652310561348808375751996482212045136172125946610972870623338101332028139396983939519493962615892440852677665425484501949268082182997068446764681346401547698398725065513662091621023908652423462746429534106879501098624624087414409741623990883426147368622193650948967168316733106292976700132407718390438254194293187161467851484157964700732579699116922030713049727419106665739505927822309008801090265720021965356170892040739781433337747053623693314948541984950752424097784197264795023388224879419085578338414067566783654032891138817585999736365328111798071516805208642031556219299652533385899883046754040941610041526910453616260509471861426803327451897315670709306766341007800188041057876068693080037079006695238562114372502934512418214510300967756887768042409208279485565576991648694688423574742902369924012254435704240829045376482489953117085797634714380092923828883427196633428917499685367544301415288941112125287425049110296681109445840623590982556674998600174868432783769573964368494119507690927790235352219841875432945852463998159866506281936099560254427333837452424961561019889729550261478369604865957958832154078943910996006057152793645794298041535127867666696793535916921208600453727267133947021307932140376596776268818356740097863370335732743188237020368461409315033933354107454519064834281606576202111267284719816466655963525906856873698825685826103677723736866977200555482001246251815443769529340723968844518118050051082987715422212312405182694086154710102735589999826360286163652068312447822640440864452208650247838293183093366883500835470804160713027897336958752125264755427355930937840454482425260995629758752148086622540461399371391972493582951336909637889436891929194825485184359851655594388753728798858857832856108738473774195199354061672427191776753509370925735691698863724249446755705294366573315863063366258993162602452604456936190808760798712127462483235236358893594814165344966588196943325369957511565840999653602965791954420947021926784386392288188800816065919736181635706288160562831627960289482206618284909539184674645538608959723023845631017868421830738951816261547352358729428184264861387028357994304732710881511304454426915352995955482055628643228996400483133791429870141332275522358327622243771467799162589727255137951051023924810769446840718438613467546754893997088578237399243109679601933768188598395806309711180443670582364749049188090432399065995507000244338844479560053480861272926347452900949593338684149643771153185526468843633911913740915640311102165521188532512311335341911644226872440894053154502065046740400338165986456473702852930218459051911074602718810637613895039536120392476228716798262231576782531776310518579772554546592702271025168600886610825067907190230580899508100331907464899394661047077072342167054128743749724612347129929772189043929896786266974656945263930010994690436375438240211310801120046519844081012764680686027635205062884715272906139013407509801674053322480357734934795767766805302302417435606834128991101834277088780721596465989824953752000710240998591590179490741346206563920922471877415544067124100488924930954841705532871804156032929224148677048482982685471343292024175058434873125129360408481969184188286532127484821071807671341982758739706099997186582517707255339982953247089333448982179127479795524391681494133850146149272377699397119841013532079951577239052800973174458217249422480697280463484164582799272076500255228587605604611932163553322452968719631587393920516937205095533399479231893726088545417258802829734713020473991568100888631846469225971285463315780662566263382189341089098847510160995131602274309628040885349338682131596853863299998077973767710790273019676505257983531989981061838073299162084130978719869549958950308990309152911739910981852671950852269505275177767095608698422182522929247981184467930493399923444853300160479054667939817677434901222707658959828689868273858692978343765544923327511904775937293296803826797956592135327771248108707126660915408524609073770653524061162085899732193214121770805795448444543803895090415668475078386351007270546293261122653247595961784065510410033180608899211344156215895101908114184102375001640489049565602835588866155710662278838514899882039070479116908130335041237778096593211208058336639645400924566289659481460607767266477047630004114013497657374555779575139971106444559363869567299155748288433820198498255959340106373234651457399489857847388221825444278647998976478447946118164439320655580815171733214161021346731981188917575798788754536628477978999473320917257074628861049305256535478295621206662939330250818234679620233759945823246967415843149759140659391686704576820241045464991650026488913648573998884838417217190925400541576779636162463831999905051093303140131443900163856897405590044219116533708828876073356960808574482372487202727874140620727527206242022708536554379926521306758716257167274318472791194977781554607312074824297722452389724238174580539471072145301949495758709185405621553822583128006870967996694781608520881816204553479163271076306718354991554232870901595541055350597419374820616070852964923674632100715840359934755919911412498552330111418334923883878594355012036041045037049063768088144132100303279069302235628110877170491571822426661268882143766209753646358533215214160720246990544832443062958488119451734533571598962112146325626304690039633668971097554616442573736884644996780919934357867501150320920317291180740566162119335367111091316411106615073003415065895325307241973431899629336142811438283756126771061101062160686628181345534854741683186596719615019358598498926050418021921270577817996239914356093139926215861961674893862676335132553425425934854050649034288088416545694633467192929452398880136288764557253672697202425427945226487095808712576646816629151545467660943285161252212406328993828658709582041529764578159201763626361346453756521850148843371313864361029513093663831422946917405908028990435919376781769648417423922759565513331668856489581970975131620493200306537306768450445385057446108611917689802656377201403753415524465743256774648780376537677044607939723040478560887654622446184900001907353201142194242419954344789047195232124785871334615335133303738291288285711043504910042473390658973751492420976391595992805605343413767288843737155589277638698707498750568780943974758923361257198656056607609679121865861118079427873582117895334249528130206965690852645534685803460218506393761736726111865668873157822371394980223306081115243996090499319860781924608359738292047141866093003237180451627785034469924813235242278960529592829224471018282933009927659414611964833553282347924400502868423883298868288193781501320353444417658779323794201028932195677680271512777609797750358731458344988530783263145300616659118033166811682370548356430246132431809415191827282141637140606122562363257263070378328399121237876078960644639945340393773090035081858285065578489397738501957317105414518439897868058229753233484340472956436622303731524195303034963789340781672910657873111994759000054940033156184904675348249576598916130437297726744547883306911356810725447004781471615280012374136525235947976076651683804953425398078952701427949901760217718467817993369405595119638359214805233091655717833898120872919845334896231065884217633864064491491723727513237983199684757594726620597283594607411167814762926861850827793452717453996642224680579718699990757353282830208893659638632400813167394680986744883519626827479444221349518331493836766500216852018846116608746428901070698782371366166387360037824802916148405634090680208295147689859015374820489556339901423670345236184536222435097766642660510186136953017581487924944120692375686770031909455314616919067957401212531740142060777580848506185124259634990388657161154239882777662986323017531671347423213019779504447090955594713800960469284052539926822458103693989414955081348411752836332547466650774695811446697557032665680168581064465950190774977945671159932448053652630612917406911402191538827854413779555874756649183035606211234609590528319187423650550776200119718907992805641696080778701606908969626398178432789535668020458034193647521298210032438745394735284311670869098895534866979397138409423294295075405157055648526584442965802952593537069647090352239319029708016421322916487997746991828845109667452791990476957029390851085793025724219490895970402201527638859883975021275307013038540929637430727629068245201410494762319348785075807652361207712340627381249732095150081521913381570808355771728850580411704172448937398838562788872807834813225184769035687887476292606482683620111506443821836124421970716143451714064477963880370579928555075377358986539231507300970496767471138739971401642502441387324578180679856932924025886913274705075879115166606703767184429137577546466178635119415818650530465527819821277441096440120198411998632366689265847176921662748315426244393324508284836558009932886251904197298872495911136814146640452408128297526281723009907640837274894684558999547743027413725671820354835943333232458744678989139258564989944851300889914199059160454954528137641276868302518947104547808076901450343633214881429321588550319707320999633989207093021937713288036634056586959498694441754039389387913293010018824802769991037888168088138536486287813455621703326193438319273015631269318123837493165511163905966772863342071231752288643982695199378023689740474984217245478468256217971340032034157980936156391655331774253299908297185695246336932929037676362935929573822486346859461039120482223672451176673147000653129991198676229858066976247013353578971500256821280679714348352102958543083121596260843168453413927140996968489435983760989895711879196438587430927501594141511592343399437383342241533626606106787322226737518116210704362676460590559596917770535703829308936099668906232476325651235787350824360073875566935469480357323005333172045002017376485649545518686749740950849634064276710686976067587139908772423725072270917436215782090045189518608603709537734958122091393608350258269973919996302493657362793278115685230533540237079082394462543534182694270169010544184837750259151263861914693969028096192526249064513065283713863874127759992789813235374075828273655608974268422198837546093001713140564244153030998723608893139521245575271692202815136051298873009756152517646773222424623021672793358537171580603792618155208486464485349342041051976261398485946198387818471604304035940588360761456957057752918230589755423490509459921139182278839837161468756971204147406421903483749328927723562460004070955972676235855897625912932378603069535287425865621333423489293080560140267734031441300360485969574920952405221036763589818261983101252783237746722072782087345112161183356521626491671574113023780310261764243313488969718242772289033225164449149829874803437089526637846853777828440710535536843308673835565772982654455200825651366890172243895278345666003213457274437846404227057644834547872682696437462977690699810154808725021744221246084535308650298675687861488164310406338696739546545212915916292470635637280591074397784483074153852631897373335478689581335735445383785755801613322928767642867931064589332755326061645902046123426898008035092006341495046076023597529947334858134993438967734522216645122997645557162046143289419796348064758641390705596581636739024199625502642442011169159990189077832828182624993436021154090469049327487180985199390779601748034595846524053202973283486464416188123163046275215488255685451587521831263144023604839109207154452340046218074556048613875531704892132404056323162485675254980656123713670927719911800548489768283316245630773652434022914204490024953902638592964257728732899712337997090646328431122928185028540605655864000455535532111618842269079428345899908370038422470282921775694449355763958997959972363730115880116286444132174431837143550231846725169315240680079294449333886168180366518384573518945759045300713837035642250989854583554376310960830976192698401801508618140783083771019382845583064403480775655291936034599380017917066972683438194704545940975059379965041083383856312655725746986336996042579629208740704708524349836330363109153905975849148400355016398408214558137911393821823135058297980861656972841329373038393826720317434421644221259673525253555950603912933975792655924567274999015869144631153139679968484630140904390862419306275991473299020504780176900178281648100486789690443340408203403897735183921706461414528709726422423067780485073838892234225340790786528482853361862364965829402433817079564330302223749262218543050529010028501706683866652581933736173463772637019706545609874864640498698619582973142455495635834267432988756474580725204719083403743708539139444547791808344865218465147032805809477379758934659760574810516888202651773092187190216636228430865941303916623546074992547872650947687633409626699579078177771552228163809798271128534549286159762476871314474272575778240659484604462869577932052716833567875323977821142037051831008611679581258586105126551071048637819201091286146654392684159274724199836361439772898987208311236859012032161631944837959824871205785278386064545776155051480025705041891689444042785607902134541793527483343253980192892322463225388381053645689021743879284207893948540723304966138593349353626614768140391647282419611773140520139669580549484270324758281419759523732568999612880055987893591297202362646791115671376939289240510411304297167696174046534462299432370326140080789267433960143670943386640359948686697450279295315446250340990972328675303473653313658348492706448766500093923475653635006219209554250418030945657905199926662626200125641934245259828540954819149975041086578361625832152522618064332622650886828957598169927061429200890907447703595973481276041061938107984069385138177823703697285412725857384346126342515204932865359700139354906203713249795211957498719442532323999712900959121378182210285681512381248524677908670800502116964194798186568931075392533383354414982424026525874380038643360994573753616818336757832941645644237285047556919681304228525192220308722564021271349066211868724069605562088875944677379757674125788666368744678395613355687789829511118622897830908146576032601366333579874702860093858545300383534664558847977743239502273001106118695866466101277613245149487463092784959593650652031479419397907002167121907618249489332931560688362265422776028274316951093892280819871974178401626416165615621768493874206313147052903807710313001572454754462380314384213169168571808585760549265186915520663884320668973013966453626942847989267793972575182840971330658085368691232810382071888447229890872214398783765547207845948786344569304688266822655314574400129687335351692624197154440998917197129376975012888358329726599659630385183089952821659090495943807057665329525559551612976258667458573255119108126280101737624359168698413272079483728147348281912106521711837530178450151324247794378391008037731005876201652291222051133214243143902981783286948309647615566578015042760717378902275551176079467551329131127651365062868113249048501865181206432948025598110543256946127467400195001117308473436466760564064479412879814754008896066886680057393636829059550053004334832586693228074350074078064630571726585511303988899519346678347065364132369817640787702659008419067064828289021000635599640879311789475044640116288214511824027517626779327462109212921094156579602854216468840645024464912591742632188761684647238680829564448240666359181189169403554654005916750789234730728553764965990693441313039468066049933943288224228173601006195285093983717621469334848314984629830991500946642100807935801818640742543796823980720637484920969216757146366131106775736093341348045546060405254525361467719049198458171985327590284172759222731825797442228598562638576903293797114117050330285309816839075127185020766800389839406871736434055745921692813771918769569479908167353478636742996523413327183071752509449911895690116002196291249930161744304987211487557097537191431492327414667967059326007102035323964696667029989361492878650746149607930461120241076768432189448913160027668064411281062050928001171055302694617811818041995934264264125106726475402755612297692303337407021848804568078201270938464397869821661091212009949449793483535991959198994405188412306592575207563260462705648115736490963445669326353831967767794572385693791803945684667314558707754530070604597332053297839953381990478437337714524497067452004884622073371141855924421272234319564980593601791295099162573134110696875592540600298732810743804410892107229608765377419163661937452234769983224198877121204689762466945622737197883218662439064629661185704079363780033212591052972572846191224518418494224368894833465629241329916774510973584780394412622991760548290843205915497229745327872455018973694380346156806457819193927653140197666587565205231578325515221503849428124982427203738627565145806383589240602790594127168321435794024109279180906315863648007725106651854541380681428310512373216801706308859477809366200162481191555576978079075563283783150619721831334921823562829830362461819327380332973527529809104427444553044001658464282796834728915615247139291173510682709898458257349980438650591404090672580110415068518162756182988966976843911389559536250309759197512735077366051393042774911581190747204531280504335368280792721568190298854297077125851228310013718555621045504182656562411780782891869706708684761633962575891544595563463521511453308073187833442128154870107988665310874692694332788931727028981194313519234284172935133233807821861650783426897141781584923176795994790917887073484754696010536404656625031930495997786440221939796771472026671487405835461534907232038269275060329263229159236547393944370875326629966515004874492271705235923373305411990594860099096032794579505279105472870546641211131537553724811497078941023816412251262767151749054081939939940761315401011777465665594186027589847482966774545702346118958881258329787808586135967135489757632037150776513879888846943284160228014764558375378512005883589765787996233789270201122691776093416134844272381899847039074746322149344373559620362001310524962898812209649424979281979380235537456271574107426850288816388056957230499338041671634949575841422730971179766245686426888763357330502971960872092434464805273575452711398781164076539821698599923029033380860630069775862842890223426250433754198796416796334966176310632217008519676231217855956184743165900587018971111974060054216166780856649904155232281184110103096059059024849115690667079329330605414830676744757093256385753647641565641329446391296012988974293041633351242092514560575432803253884251801677611108476597919614857669366107512578156046041636368871606319774137442284911593646527168942226293643592809027454614958260742585932813033897677665205756397477942572283543766848532381183016231977065041247319458716974466461458214930101539761212919422945578871280469559635641626239608248646946397958225608442839003643060977624365178877351145631919975743892270061451906611693799308978553814660961008179721994537203883378855874445285634830872680216405627709825718322322733164774932655966626116337069532317243714992725983465752891153927930842759058396640831086102527490209448535421950332373633213358286638482621181608218024382925845321182718919177512502297971999239015675937030351653638563319962754634108607273891139643244434875093387803130070226823442806654354139602152475542581430835108004195181896046910567728606240728664975986470561222548883405638131379985534420512699839121123486713517043302948961873349998797206110140088690374729644990348773297040837427834720043772594651244711832765343253993317620927718556441014190859582781480458620033547317023960217979383227905158750089614105368068982507516058317454006665754430685311022601238053018367758185853105433565893690906219857308007065950690290256469212895291708143320326174116780015233087251794170056441742371554030623252145833217733096179093938454294222074659244698304460082044083857971090540853708722526214245277189410130596816018224661248175506093596265860301535932415631571022615944005263586080137031598802482278669742206785537671574184511749654001525424084766127456485626031829509265771693212428540829931759927720916086151972177095993109506143365445991847057472801057541654322964046158072838345109689713039999585038999563897826852167948307141896204015974242931143430507045828050586721867264401261443609203524984943766280657538922912552563143013923720443298624107752732295360542056765132192226948272094081098142080455021062321637563695698330709198838985109325642441635290989919154760618152466615019973486578776304297343766200343009277792703144784594345550290578153680190593369918629520388372931869553312922696127709324256701066377024655536638682360604770230181671459963524915791191922944026715729106738293064297681772860446147334951552093679062106946752821006912152737385805955816550158700652100506942053589340087448072645645063294785692408097177874740960241646909238766478344099333158192026924606432466927905482038113415583460587206197761162798718697291347141868956274898245653511759205584371219120968867428291563616782161768204910938490567487651350192089287610946320418507328498589857031282554217136830462666810650011062212385454073144039942359308016478732096615055563340411469707196792321812191835492039427583778981317943044592962113530782781693837194449663224604613940515196061308551695382479466983384570221852563356350686745744706746575329936566365957169719870144387748026646216001952619471413490706784180017849577649964538692681831759891440808088980932782155966953904534873586038229952505186982856037304005900639830110833444479083004761416092505780744706139580572602493128169178144243236152773014048227632276430945623804659462078796150801309261402623374598210750954731615123630547501070492710852542959882261573298397913899671263463061541998722428104456347737712404430756054926300654229713413974807567029240472465154134262734766283095580088180678263810372589472218964258370643584464756153954791207499282527352753367957018294073448950174655972774162068518468461630369663127454108646802766067437933851295092336671341492830191732303268864829448802461450830476155433964018234149503117486845421625140256774422778782207381374611392991911409047544559619091883088481248015313703973298799895617349669395841702715331030632284105468028877982937996384065083728590705129620751632395334200501520725023678146731690553906320890274380317244361048137039746698246738985388355698370655277329355132104432209871931875414639826176234374585300729662137948803858942293187467514247077762042601012957024584322726189770556366569290729466611064275249498591814970148895234484214749610897228657169429217604918076094763382508603017468515580245384847804319962595954002267155395649910159537099191446997029409063487730194870442468164787293802233762073620237964461317324040626610899579913479259345037511118163914638366299106269176186623002915026828029824921191392393182856858420240391951951767952067730973949485125427221634596966704358620672208292984588870328914802676008058942620213494828272568487502236260539912124575122110494979223926993709834808733240124144726977775178420884415649824515048414735301008292791937149412707382337982953917495877589253175498948091118414692589831469972438622436337424963990619065816594264958944826361666431400476482546713108827686393677756387599203084026369908357604049805941645594094678592394408929691537721761524922291824096670581917488984385953311035329104456377871447853975807151907347353082502523991024625855226786215582207427745483908985848982588960700182138459991897824344607683606656116827026363770057524981944698149846994279435852082191031961271563822932723058883977563214048314879413445069401610337829673509985973386778788316994327764280116778636375632583039501826136937556991692434032310229153502899202908643364464877383738573275865562128175966587603948216274417679885177648737248177900539720200490672993849682386096423586434469927262297826928343850382207262096159408464865897270914009423748577273386311403982378618067733674509306951035113699170125450169323670020157102273712337589708629785694326521954846920498358547678533013357778001754738670115566734183693150448541157122230779293844583174767763151928326414314169887433310831393482039449159500773045621847819431719582152941813049839074103237584926717062826588578832111558595641337039794601767587475451448292411332981347114867531615049104681147800546776474069416979430150585556348559046417326012341121790675938552485406488132057711195567898420375231810100948076740957871636189320895491145048377141977038619269523452497925618855036257168924996062269315096623569135376516211003043410146521303421633460936992252021639395968975065766080657162342772622096425743792563766362171304671083650572421265530617852876619071662544171772427697128670346666520599381955558873535787135242412428144363889428771636269131701170960618891962777339818541906966996875118483846022608580034394134346383596224638442751280800512866869149173578154675605563422945314165003589206888055095156498424272309777212921698669420924310545543853311415672044838506472360448563528792208119185580835888404534597403877799377548605597029245455583163283094011081081487231889350160865675837631048591477445316093308565299038925248193248221262377960530796457049332746696011317449481560091406875469721335908055991791467206817904905228632233229599681814864199848239118970306982702256254531278551895300895409262165963399941464341614442221286659365850758561194585096226333877454055170322893466730104467318745874601254144352708148132868389964760701506205622044764908049175515438178807425235214021827193599442909903805294395552075559365119436031299067012444727683135938768154781851519742022757064333105475984115973725000227533636947963438166456747550525661904704638315605371484001934088879525734578028897006171429551302972187543871532289619930245197805820017740162695197720685784390812581305889736481021714373461995977348290798076918486895491037535693552718913370791120753575618818800409003181375114647711027298601901824950293635813190485034674534727941050229403343324079640497350491728574962046616462781039824861741015126009023072525382723124849155790821359744639992883626659733574334840235710997401378018830287607193514056613933907626877199117311195605329437231883209442445240744616559864412935159819879829254358241182715297954973301614673871086384545994886177522126857029391861308370931131737467562810176912868908238517273258584066160424664335324812477417671128611624982454385886236153901456648182614923624030895794503267052987302344008962580871099626068891036978018959315679379843854805036343644695974736942479047998987083354963806254772096067166311479579165048254115858639678737354854859517166823577832586732327360766614204015375396436706271519333413349460403002997939242378410067402973037032994337086866312029010138553599778699920383189788560519551341375291076103457824281889769089234595846375227840455206800021691104933699498282065632324840888991659840868979640961111955792936154195019808567864672721452322671536781369204340737531858556919810889490341890341970236149011612123201268521398104631190293879165938282787962120865210642174532887695168894221331842060329700687036637647542547075276439379359440115234176580355451510331495277750916612694168065251934929153177927031945557125680981198715633175852210219553267280065784719858681644333907328494108645429244906267763008604242438130776675342406684721427839932696514103035879324173765049274936617369915229482303030242501603500578853320521104920372675987178084375172219025389397655599773145487549435227218883270072594950796554930459944884952726499847661136384177752267346325049761571038924970181941850737230264327332396537972573301900413215475862368040067644948343215765606988650705070290309494070999389600095186382649076688486988843699977759660773520847923576252085196119912729349000537260040943163481686296147548177854980102896820101379198617834355998613610386737621731431094160102001594766120253985845247900645952587419534634804215280473146175790293502604773519112969816849306525023688332102915456754985943866781218088446337917180699488774248908711201178008786411533669890481946806978434721128176757588513366880219200859614709765568700319259584769989725171000139994145458815971582940264085828399121563616603903194922928510529521851107146304103344402946641003932510373395055871771400824147084717462462710548219971345752690652259565509807925137417890243644921701679086082497523266514992169831864628621181133514317184248888581547925257041483997749554863940537439288606176791562187698926149707209444183950854257879108869730813976434958306447109571341690933444270634000425617096802358987921744823369262987556459957084613945973070625922131252422589359170032705771501206241644225397644938393423967265830485151155925075939369248109030400915628364545868291915641875650959476601098420002595181360918656012624157887107085299528660527993762146388714848396737809210936547083962021755871873088409689401717632552828255144999706021452610281268297006376507404409365063912707882993210101413328877311168413120241683011440797769252366357151321007516169264741861984387431381950553396776876222825380336010918167088688602816031505621263907259008486699191067726082785475314663263724575955040062084210825014778752191532411311274814756548119767750258425293108713295126312712791097280225193052215795591676017209468619849043416598830548156690586895693464000792752324982928955200519347868682007378003450319306850550429562829026023159250026846664381246404198696406173595829568575487672389497810115333425830957808764140989228850251275272240671847413600345930065590769352460943708632437173830280541794958708682232663834809950563871521601297748071749292577497697887973389756979363314249678500715627949430892148261438930362359329903723559709815966591670219375072144367822821167307127967067700264454276412236925360294175337375296566905744235250559445733989239166677282039226426376536433356807103716042092075333893970850668966996892856173359192855125458331839965527027851458585004558365328664131404212077061089043665237533737172208811074008186747355268928260715866258979470760947529652813837316610193322446306144558996523977820491839741388489381435205749378938952867172073950965399203112416737229881069216350664038659347060087574586290957721499127740728612231635580922942602320459424648244631463970012602299175923577533261240565618535479647334283950668865068791483774170842115499670058777407801561132321101058802603714204163806041569569014447252882755822862631953318692015553530223315540661960896191509777760495855020809935717728032093401486938950346949358294932296777645745476292415843685046057830363295810045117775728373017234829284499553473528408021994278548401221890839118641363565997895202437238128280190429532000926665221040737448408185772528065097935319293128134666790080591195230023432655393996909696057458412914899955631329946783116550367648820957272670157017707369013522758092992298265193977163802900625890908751220731362400236231278048209477284684263609072633817630832807727126096418741501152496599719141638845557839593667124740165767510196475150483777592990222869886180419902329917327473711972316437507966876894666929449342995510633680171559977689629718571610701523915768314616033755713099898728878368515062274504325074509261005296508281667285655964657474735722997982374265451410615455824418292722038398418837280882643804148919691790576763601686350805047232587604920370697898779055352480865446922537728752489845732576759790532518755243625440021299200416619666148226597928958734352440475476018201469564359636471566537512210166615258611311958427315905201940443238980308669033004866938580212024083474359454540690290416425070969299373116679298481254936336688754027511136468028446081423509906580750119078195225537898125471418735699370320939721846935620213668677366889966566776462935034561247406339490735583987033606055046237849360758524070377988361482028787039102185846940367661382006209549200915441841984822099348082845938741386982988365366255609455315224362096630070443266587577697099165329032976293183517397266233500160844864953818325046167371417156680064606659721656358430846625837399152815174759088034020702909830782919946676363781631043372988498171026013924849879590833830014037736390337264247432099802133608718259547642804363114399635357816330275497892358838539214313242512452838361909231324377706148962680264733011198580658447762789758282348467739473122659754275890763639874261603679282006262443127423875612162308920995760404479584620643012796615523873941170934292203186814643705107469439456027232518084250712017177399645588518730757183614849806847339150141889360358282455054787485415708591444137768915900423701833462584366377262183252171770306671704665260271688042715400867791143696506918722483149954217435185979686146332049145494181335430158095246714012557108212327125253767521120684893081214361305673516693042054503030962592679885931136830017576333938390210271805399092691756659590760961456127261147784483638022726977341651784118674644633349257295861564352932929813896015189800888367186664563899635081193486279634419103870844866259067385506179210815512466363878994410507477149955848038237684822864019191709929785575412857818181502972016398360642258796698618426244208281032339430336128982168369108492945739250268412788885351900014425964371841707252757875036698916229052298705907191005226008386178325782864256688724609995400543847951921977447060335241243858819537187942878231718074871675746259814731064608858878850539372884467012115045551138654549394663390340661291996058989992821753898472968714399940815843079852158177757365540036059052937682168613493535797648049239254073584427667174543174092330485507753394386419724793185534933018787508883362883596875303778660020067129529176933380957144739923998441405507960837801506053454611226098832413782952227972999364273972869948465496118272460321177834367529265668642221940721030588042361205863232123310831525746581236391071844471466005197058742721049631835661475618100743613999316056463121168677013213331048835339495749999549830302254270886451850547587034178351489172050247238135236903607475673027693457481089765674344373446997549118499635401398064569559670748175504687236315184174095290979668956066336422526317503544579537483273735517288575735868371213530947819074064706506279844292869846138991159070725557255103692843898788417393030156317601307460110663301964608182008221976038681744155094286321854725112670689646244387370873110698653897147429987216795838589338267274878731718905567409306976960504797058379954407669268268168620337655610025345516981365895453302256801371092301997219824240477926631645466283890690097681651269436370238692933575345444890969955201038201623424140260532901085768594274774451468267332666514353955785919043838261555783459275034293912943319675105470148755794628518688757111793790156443809157692830759395515747000038672929579223188303468960914916934303449247981946594137799098036297388287712767610722755812302761667291940371996692346795573000218967761806589452958439931010970078011148498340774770754788896898645066161367665985247260720664700293503271393857072387832073467377327328226919690240863181566221722234290588342899628196605117579512742916292466190284148837914827973601556264952079077109677245489753683177163980998472694442112066825318800412734470144221067119275803464548395277141859733631311241346626010146931501114824090595617105908200303022853086843288810222321258006700191544607126405849670814782261368348976924401450749845387990826632195046268769381368738351222721113088625692933964861188925271304959837047366859726203760678746118360026516986861431643963254662000663301592376036155599063795442818678704924948633157341995280326435033482076410849001850898123083706946600154222749296433024728957836702206282502395270342712986716441276776135318437808694281496198540169438847721432419512957810461318753770874880149963443917651932648877040179196047817880611710470983320651388453453054158713855703368203354624365862561039272008314132246947247441686977154954992744626299801288739832589307217565469326760885040923986114468302492714156794626019241893946398173593005651616644882960813065581474290416000451440160950992420725078228568692647942690131230992904674097152469680646095943437501490314632182184814568099887265135207986580751139700413410473298001940151110304432669507997412961292463041733709887474449177525188917301791602715794371833325667587249558908086685301560067379393886065633115849426560945251437212930722563127859150868294422654258702020205348479785791797359014537657515576692123276377419766002796256863358260933636200098706982196682640254670956910191522564076443173299914833502747547583996175053228661428375095790120062726928813598350512691887391031249076921492878964908658187520567098908430969782177218571269624279812255967213558982627781382173675503333582274517752010702582044401364428485299400249699590647544650091496973850896529612801724513723757508435356524315614669080322314596223636813762126306735600313960281498100804383443058845034911554974666275388004253619196506011766563423915992204809181866720355126035766825613817974540850095011671210971510636771301077593755697998335230434802784097952477739304991560681370058306995874148687247215551053091884308394293955672588947513774242204400487646156281003322477472175122331262573803222310996729586514697436561225664790006909554093801373661509415414232095988794841741812587580397468414378365940821512796469482717936422991485158972582438735988540683509669321787386241212679112942864966699772869121507583043296859845430196124387070605751339195898706478588096837055975123494309414851274406265019945341230038903457467169995216718597514318338178565489735511567515260322029379253892773861783849548966967441310296960116074811387178919839710002419431337588644752524908627625519107602946464600019718647683530688240784451085652996474453782130048856283873412751892672858642175817127758777170451842302178337503241542199560685444872126396825832889645969398211622452337828628354530922555149736498038803718963277022457633440048369711319806064709631030480307483795377564982152945486475600868494779815935539109543173601998852942578989885853824900334535286899642830119058299679688196555618745354535343329316822565411791437364740401571651705955102260097610115172774436292199152417694090133438029080295260612887035073619615651902690082186475202890794719105647880901347575986283506224219042879864459502753501549430946352508041434300429591068465969490689759144615483199449785691575703667233715519394348463883361261794471143624675000334806054587047266468630707604110216040389750435660013550416228044249244400618886458683973840298276484232462743240468640949371916739479318174350134298473166005972560683503729723210214317042030757739234334453580447442247226831859375637739749260205603944343005061138778059216394968283207099626387833311867542178718824135602136350034943529523983838376687381259673798775043765137187053399220834923800894908751779112421032658077026257745300622527695200622471547156574567508637984312208127299866611147846009916609260022742156974138933701473782091781492408459948465626586858796848427738680687336592666609815983181275229569297529160670812630710075225360737905536030802735452299055724622550185131194396031146300364717656340526532337805277423422622832783379402731361760332810221242112082800608721877885453455566122606264769722645406496771894563514218511193816082152050491235927685343699054208352468839364963439756992953346198841946501762091282877742013492552654100385875657192113022028854112854867745613114288064400721551881230204368674965877912352394005870843141624731693296613785617858357901333724540911311884339707968759685764065958319598225221247250909588596479570568423377133029882098751739287324262734285750007716236178106084663612483508839363711313973520678351957489779449260921359223721532580276364292809262972739643389302491573329306998888066535469259596809786118150819932741110283710569140148850530497710236709376395399490473129443438328175946293413124468464019969126232464367532370297046672434508702194296229491086770656762348108741711708615607887935470583427309825798865226872605017191499590324971464987018878897568783877705324704871137028674018000799647253749461310801649607700874903691624361909587206170853487967220251735212652658592879101201272611698041617882707987288553630908213819580927116020195382584577584983571165796022107630565298080327678951593678206165016711925362301514297198588369511821558184334942931540423959557911585021754498609946858294269480021726521157049431130291236266564932029215436859365118029415395030878268220760863302203939852922801019893008736443920172211604828113719776710312219616992953584077408347706610560435877397578071938926362455811722898988162490874880248562160499157879848909445402407872526810626445029445298061945890689898197728306204005624720598364992748751251437430228641110578353725916112845405515298109661165976542868965737123705713610204549409015395903915464920172356574894820134892739973490042942960768027894047335425911409046445842997015423764837577821849027848371598994596804569609682461960664733863230025137935982250034413318747307776169986408969157928801500565861529822607016763848695875771221712095245163304536142184731618521127676797125361277711896588179609312567196868075948524965324190283085084725450549520803089659967151668269848426669739970943452565466901145143472655208312888912633602189413461167205512407963632194497474274600971303883031742212893456223969419264912048484924381254434796133014355054452959979159451445724752727691011409778715864877357649395637279338444349082877833269949162098988210936901467616495444569586011289569738579615553369606884009513109176228299967849526358987305151762591978174726171144010102870737170343340199756615356436533057625991202257301146502807761699323277265657476050331827270307157623699848455531577699324314610157221581233103887812498898147069759623284753465895927732837167839815253909668307180772707669152008279629285341806547309135222559950437362509755931465742694427770814700151782450580862056410560354921185731521275930313124830660666485000144409648974030256547408888563875066591776032153142184120285982598279082999359310894323638016170887383867973168599884155439762466554429056344321579094704262812551006398021883129556956704996379843118898061074169643791398382488523642700284404809129662902697486739528850398167065608525433691427315267299602162951588301130487295844491947008007681907642374700481051035145656728374519414179869289202971041247137566043037197288155367863045614112037449273432920383198570913088808018293805412040560252036108582880439997526132795802404169114898334997555488711857456503655507218850164258539225570825348595609683106279662317295171975656992458682142727319282009749115927700581995377883846796323334489050568943570167935214157898038591886574661488898265207446913127765341571730575265929480629985966483274845116937599372531676636361483901606219360000137448950330237577321321570406630962874859185508474887932418189678793083662268565051566572682343319642408934652787951614180347751865546089272299821387729667417169605641805394330798013382963815826909304040991681248343972167470982849798640376030184789533344423889213192780434075061635014190899525765979846957055651743535375475573713736450641961638971089004062508672148977258839167281870243425788136811139736349278152643768106363012058303216272227979852034213066079509267569635082521319387051569188514115331528782293094401222987777071612835274475429998818094577279998606172262471801612016648057373597010051191243016355458685332023051677136563214076679696505952766949528587114678826175200922019809161254462649856338953673273044667237584471025381284747329153584508493145705110849713404564974610325736125354718564366570504820078481605000072661326443724183497002318329797081215376399128830554284736294368153658670549101933462722653462167791332602138187645781407491147741761529256828966315431268479605917307977718104684970158488976877062825279239259510499526935937957761395555740284326418697206297738158171354926280778185411033255490773695236829416012555795719008553105988975973016061357981746445520612956967777354963044633873071340292155676251798155816914475423995143557226862731704481559192050780663359516256799957278905382148321800518718901721020144397854359491630192341458996357165140519069627963449890081709299436270336626969234460253018080860765256593551945917155740434370100294390897936788022009011446186626473123485221155418012890093465224529905395781158282791683924313946828943895127708885254988416857725815772146199945339805892729377287970970676854498053827550182412522230968693905978936383399003832831130123878758064769828668460944283320269853505502931135828545983802590712253190692423479214546542446949563235262602322791501203541999688945574705251127553291372431664338362709697345637153365919886705519000041859974354473225931173147394438037717046904705071079152658884876604420845722702464291725994599578550510781312185811231167413825190237096302981817507509235523875326901670509166404082378313974363742948930647133825850038657081972977250336604555281268731188831415444446847875253456467509269215245982311446071088427254738408559074530003983472269732228575019974137870013310685763570519123358126076671859467805957952278707029454940016082296892553323165618717437080819196465001568702066161893594630906847811210064888203209323873039415218965970449406548869589526552974751512529728224712589202934904445391832897349795542498829363984206369086468952367016895094042342168003136520627456980438907502608762479702536357268416192013142719225978057233875206870051922774954001716452552412659838197927262137008796161198176507713488398240664520637295835876715675783880643570442321314543332493470249734357716169178547983215703044017490862021065130340801070348525647341874629036331832127112597746087297721633348316632617599585959129336554080777931503507978016023859860194480473959922647184663849338702616559953217279571391637212743948731785156719479538197416057054546959812772632775420063851538294093797880376451901548986545569097337726484035736035122445248090734253828537951543411415284613567340488983271761635893885253852911949755874360348391299143454115537347386640002906816314378845281445490455339069138030537768992950852443596650970993448698702439311378523462757652743319720963090978384915154777506272091826416834830288743299098379842868600122208572081365944940697827028520298157844645004110636508611834984865876685593645366583890425838929785424689597031841075650591043167945797078044523857379634056424878379659523353184445121136201592161847002360618527616017288556592701726156506404908722270192385839090797760509629698837234946245205776567344433814671709558509942294164470179368058601919701875555448158915115991221243348388170867088339065243612265763956938386004902639766059550072145377700674263275097480286640402502074562281515806801038362064828448212338313901719106020955852088211807167222837124018074155292458544493728183658512975885362993188641157501837606916346432776007767703429393335090417950274244944550529680528674829956534044852587616802557970772271776123144234072939188104967929805570263897986162915665662336079659463219271021315074940741737288699877765341111002115218910165955544813358252222474432287845899163274862213255080814968698598753066236861033604866086721547943079433118356634629046557236165209471262311632234598586883101011046299436838236364509145594661855872524743133736825242646890958391015566944608443707229681472580504175664710841576465759075062728450003906075343237390310873893976284824580116768422195346185497888713231299900937015968877925537196623721299686524556072446686780245134209535399495050039571221069247609875144760997936879440890378074555861154172782338621643662374666582676981393664475892217066455473807566292902230282063283150163698997128485058523281823309629245141256898718614807193937923405582033115937925093806524014734028641156402620791831809230707599932767842730182380146858840901313636267357114721183621991185503260885552034030505714468508193339191787435134438675626632660649685848107922503634860449173535225481654933566331018503709714201796828054782785559746528340241086584619258593464659055119357715198545930299744799226734119961207969894093939069421477097656936125566039643939071598826203400570276418246975508395009810168829938698743155864115954779859056191795336298897537308809648823767374209951071569658660449710875736728313956458603561284258193772114878887919251052046497264487883444480700062151263253299972765654164494245053058587848556933773285678423659126045094830235171249593917165059862652711751346909748341624717505289553264935297867867718342528271441233163746686349203921274712547976300413492195987724084670100385748135853994465148337413689723076521932279082557557935746668423376994145585347128139812308750139560970904526626018151058700102068395890374644424319987154840137685353693324084045134305674426320624174422926489640199844298784211827592484781236049130675024412800271397269182577341155498810327609154940287163060269161744232802759920545332248513575724980290066055947832897794675502443964512419515010124978094149200049414549101496329977251341257710091169572892031496680558585123299674941623442785362509789870467395696097684267092629736394552254412199744007090234870285721567445986191014744642688974815433974369157985977559840996759509840312197244269830014921727864016225014881536864390765868889716378802702754235600640251519476640008210503989615554584254587468684360481474493061595171871408736574716846614566820585402816679685900989567841722767856214864827625421107088464317857767037538208168195597011925035170390807706987929921824854673477267016882769955599947776422302282964351924701180379756669950268532840200312531660917671100722063088464959950272834622470145482569544428145312616903778735604613287998249497977993017152197884050556571236389205838362259381015492111560952057752018432925119220090063460065777894747623330037937008512778872523971822618209999116200378002140520038112311551165095935527196982340535720755627455359518292702798850846944607766699724252422039031961123622090571369772919627409346880537456581684356185834689148921303809439181475095012332550839170907493303650713341794588071794699632080637487463860404316669188157274144626335795553776694993252479504328752987052295630631388464078612461832128474418665401193014873319142531620960632672116862483323847971489600162230964025478357183862858138751644536314170007762145236203647947586083143541637914615861974221701123174979909498821201823787973996721416241637500497444854898211204413289743829674497362406849088057736201809436440842146464490026667158513610736060401365985571361322639453811663753368808970954988199291042520579228073485036983227282458163917284010509913180309238949360457765263863373021197834191338150296953695012872367706154997498507507894945614128173779954709704562419771990440337952402317269763953355015276726823686962433476676154955108536340127866277527819882554289074790003758687502520486973545779846150023151594125474720090565062083095333284882586817954267465766026280986118612465231026545082922706856988725636142769757672585188153668902366471587100092408075082187967838297266016344860922736397787270758222266462838748842974810611631547345497128174755087470289187709384090192976035148290954535292242233570631484833107886643760506411034350854902734420297151899725200508232884925835873333771801375118207654403212325215578710054277465445064481063940338822252828367256204790572630188756804158472694701998686846541836877504519778841442636601231513343465557857493703289321155390031248179188032157117249615228070757136256701881095885493780900944178789570737878355463200345409183008241445507355557249365134507055979925043615862055000064231615582640038355092621143641418460645815781378496207658665885748633069036105146496981454094881213709956377632700615829228384898586884797161628125420453112793663331961537832863989921453643689873597367204070206654664722437210057384298490038309454813729272096100056538423158554498015589368057278380822893139538436974001464443134221057068138615728892522690203749997389351963193941381987305660021095959507936596137676396562971427818662587016301879905339577535908526150392823983534520275255607466537203493575182681388247696086831534075495491599504582273545607522641950696694665550563447816365888057170107939683221278452106049610915008585869703989523405393179293265624874320347103028987777578902663065680625889476318153242123791173855190509150536442679512802231789660767745984079414578492167141089528284079078343071589284981203183776066027186538596593164734285550217602604431464923979251093821917360267972268172726641619711272892467314456984550180081510141457468031222001428161374658458675066222295554827381470068202588321826031392859544804627681844907507030215169191200119868434776748769979906958486660814459217557250324103927938515921069961359576837877471147620852606074621974932809727928274891895659219654615222275401164645555473535285047619696057406750479474766136557410499021699757787897347393189400360053980137542535669373756895927925058056810559795728326039922339408036187972307126937041716586568840875891003559146457675883685860758540676756332921141415908521479112722670253793129810159689425261573712381734452985952990077904104354714079825621394116395209048187008986884605224271025393383152335978726156355588611251141177118168381059097715015361873083328312626693960052372478242339825354751482953993125121306779720809943387355478710707505912779073063276259545091786943322929180702468179352258964753875646944516466476277304377550258930468708794586714829088468047831977192103998426162424776824969725428997115528169109058797526581370003402710748304084568719841494803372439959183839271308349281261033335927122357703046925661300790977591798208771005729037320068600786449855942410193539740650148009857290635209021148126539825158824137152660883994979012046547014977610831958169034022743619288234514249479580674905591204873662516894541104054295356365107685991163646991768849150335686191463554814730536127278178041115502195234890102235241899829692208259435555802260049399989121516667972163898099272888911176286674513336974986781287472841713285782234066558976774071481556086782310664871934783536997821135714468425208819643292961286980440204009702712555323851538560631132318531365636565921615636623554180261840548293848921556642601442334550128798368728544116950133370670095671566261861832390611172632916806072402591641489699598547408476913703997628399475045768424894028098144069429317963863981801561868004168733723423519953021550547798877519030077508968751066202490033826827295494341802852223422185344526657432213845592437543337452896770469510945530777941371533638774604056246947682253169244537212082563823203177135084856599922044230388048547108830740031393211762640081097058976822125464966804265588498233826204673218729349580239754751354625653130410569874885781046892828201359007225303317908280459785816554396112163339873256663052598285354976330114575182086282034939758477619527830758522586264932679630428638071404184077589294403253623025883058417494940402754524374225244568204100770257708974304497139175066662565026334499892593743317084961324723764154993282069811345771271131971644309143293650668612799341779754908790464561021161357981507922335725817084044025725105084800611320529383571329891489617752535201573743353891997792446565118425407177811911183597232114782069483093465591289193281603508979973274729823725863424278157226261012014495524238927487461382465074574969126864856597807916364984096160102196923843085777590410292114198813453214531312118070586104319165693161860994000947757034093775789283581420778448923812745153481501668917686141754925780930376151887154008369292812828331206359822166470599602355002719026950687543203814637319420623588392669917477587223947901948764948110789669656677427221134180827929500884185836248124559531102735259113880008900864112846009395687110528710290160724795583102190728097534672064899533573409619607555275165022056097086420816931902969368884368777586442323800325520045025632732167228297692763293824665529828354056085428485538490772645426582663632525242185424873563055780621375391055982374917137162472366674529819575945583007774471461274363313869839587111856406082750576092236128949745440785804338255285389583469777141296838878895942212911778183738975054022215390741986882289063962351999892889363071114261361641216574770145838429175712309118220048727877230333890137690417669656877938985837809141800413660163126155806605962369566266889296039147214078931065136943886961946770486647044753010670695293863635360501980482086116631533116594504730850791656044643871449427758663960624929361837675124529481558975890849906095278344931594148379395633453402483215064695319559742557428632791315716945795582596411050282737787408500247742653329506397880826151183957455002954227191780031849626958497443112095138478946992529921858198350503884221521602340879024025312499303096835453724749454189368283244475070141633911415893499033728080194470478988746206913852094799457344669340253398094360765980545714250849310969272083957559252757951880369990104199666555271845000556345319105852135272545953637701029711949331309758723662969890909723539886823280769209946293588655014593205270321216346805779897131493233120784438162299049742174709299174522006486005854849484565246734440919471845263075090460311845880914881645866895804705464187133622948385652081801597755287820293473292937835524789853712744987491701394648330220733402958665294391410918298048710527912964687954565478769673294954463130214695003741570652475616915765559068770610818059954419683508738348400133256804819443983553376060279438689287932530575166730871303755423361610804710345914118359040471021499386384558579144244130533943092537790528502044125877720515009297061870329758343940615463470095078765173323714898172416508350845941097687130840260818927286989862898228954046280275784656909432907462134734103354347515647406796253250134323730064872363295868981484613048065341650142874069107085723932321954714804834676127391574315182616013691033262570803462496398713201821887425386116378432537229295615981095176999445817968406970247801749007302183832566554442845447553519612810452339702074377077039301159136907788151551015201000759727794642828199515276889643596826822326733937181279000111809140890160403940123281683081016229490216080249413762070402349638348435413203011415157213647739649639829660436361711771058244980682239958821612249732208183724131929511888838078519068567294364018482503584801500648054735574642891353874947278359473725290127668979335266344994993215698576869206088162664864343262133344034713010150428527887073757587104290713637041650348446033105489319087030995721451362721426028083391776410424172357630728819563953781338413840715699982501927937777564893760266516952037835488410358133434831541461749428621442435662174977388107686939031871714549867759333176883670369486559378919250110182228213225204341202686968638145239950986305218238356517797190723800467252716812419780437758231829110146568016655885425972605142643844908258785641801372674089229058129699517165902443525601472202315021385674502732852187291161855780708670578357967093265838139699326668250909407844814305933609964811357980943349467574086355975137219595700540494991462458127086175330095669084107244819890303495945870295888332162887534419695081022390643965375136661109211649613084861001585168310219722254255855917367571105859319559028469409302863314182319214335157781469341990145727283110388288528492440837887931905181060069377499711675506631192927209186183607565482504185700889254145530871091738023040425100664046265341474726766409823984880553148401840594035367787069394524422826437500215607225697895548905481782813380416642209206370164213922786328405106373239143021438451185752455699008581799545051274760071684099097484572040796626911477949436176467935441804620101385232390695847362790268032322329463108173370308606451442777099286107969899482720986058975236245252806688608524251246905262019347732971887738786784086676751397830217343094425873750523729186778872223974633237943032991230710928672602858525939864420630334805476864733056454705211266672916665718776805697741562435938946303621643752156352565449246622093041390603458674948734495335571120681638396358205091679508455668851638301316946712450392488547231447490165138917966138883075335764225623075694199355355234591724633215264630390068688172114870436267063823731490500278547442783274005593812737087717992202155376908417764694314065869870917223166649036499047196092449701705562387506582523674683127003978394707489769904226179890680376381165696692776341316028462133867317530295952148231086341682983721816946611475616379855304225018499161496427853148279241566413424496155545713956916135934369671558511341210537102244777453062499412205046130353609231411963199694611782783545612863098090395592664410636112040368596647943473058230068717311201865105346541276544992310484916187547540401379496886397126538566295744799859734820612599502408270323121319630967169215345735651835215843790923707324372420686159445153257977218342530234873560038719288892721145411828533992050587614219183922708049451857210674501691074752781484139625304017873926965238124680001401143350748686393699052652364569344187700144198379444446768041443330347900804503634425444025241983947746321048681530273736098754281239985918767236795824793420398360239934215737007304645181070596380502748908522540942390750097434203488908598189277149061339921956989876299408217038520798657888291137424585517367466654141832909433182522128597633556165472419605541711789926849177832672598411993257219206483387344938358344286413771672245945659457319435156783672008045487462036738537956939720553395745131611050758125895012007923226187122784439018994959994265890181799139097571184273140149721363742025842555338158378609746818127959135717239232408409354722244862145643452519914439173762510487370840617746455860657809717670627481317850172058895127342926734497868183216002224140977880009978289677214637177098419537742312202510069055135177868935693202906900793052151358468874446342501545593676145262193936298842538791099064452311226968714835758158215791439090060166448396148613578161135450198481594690022660822034977336458955637250084361287570974942579447664900931269140949490898976630171416377449341511978732895825062135367304120188063713066031678433699210646855292619072298309406955275113606048988360411819144050937912002475001442196817103012423609864071349383237400195300693931567429882719306335501367496343111949602553050317920811829198482877207210623786130507914562381277324778224711935638756390230265125651310616662153885419441951239888114156563836951023740258664654762658199117472684640607166172257968341777728822898544242491264084437890763336868299045131404484649937319677185577914500815542215584838773902961936553856938699709296122949494992204301066559367838569050891188261960038846105755655026951946291974964278127455090069091838049432574120686056548396914069042434583281852671521558934512973535120159657539583126691614939838709145025538769969743251928119857684142766018044539837067401837704998047830912117806683823366559461827616502503034287343877958243962873497381083059052205369561763883935833843840986137604012415159820784085992125365830995900623852651469688756237400411681628255301870247176914974948849478947905598683868009810328340328536097077045175865212781937627598690381664934189852607335812506993600657138856907023132951165617458639390172893583372951986611974818154200960859499948155491546485252248560751485086311683684324119221681851037600715804442069675219576100055311377770569492901236922694945970806232240384221789126012721095819578952913786607638043939997078240036261325640946169691911189661135587829804820117500398244729054937854862173715063442754342687848147473511115574056957974633672279698511042574029715931400199699967064105263660538344685456284804515800808651806218095386180519242729022160063774796752578232895885085628911801654024122745007998666011121700032986530986871833063794109207653311115058889043462192751704123577852174680731650024819139643132842805989976506202914138028749695191450355473846823862213207733225987003794310232965549475820983083142764772859349367357843015479782598222177172688995112559318856478845278346623612690722464193658275768196927418173089374726009708055442576847611158561095595050200061338588542813060019231270711416977519493684383344098126837465136500345634563192859596122698707126686775066396928040112255178889185303915088658448487201248317216865661634258620854470782732988125718073059542343645688528929163018343746181580812283864393072020861897668826760576963122804404193913097526135909206142067361674312328438895796312013411449412040390954014566949708239733594295390175930371958255318286759752232073756191931467427672694764917415198364776046426205627157523145936857206495059223700236849595965274556958301199742523735300629495603456014006396101308138257632483725315797942539217176357251397398724771663007206335607494517480955085399062326017934583603854246902229955843470143443349279690066185499455699793460537424924964823130391932477756797472610594176479968864035617906110458262695502729062955435316106528490449300766005041629904671651082926884562838045237117210640045218176998182738325015934059965382820579753911109011017982748236973342508368062926471200263992637576594691624958514553875844090223059146022867133153484835177485707512370354811079911809548344973431239357637431380216677600684731523456603308241280966073149528571616241376374858837032839343808536660739978300013006812931044361208862772422609594282959600944042217440985492075817934422065592230950033124750857072654964352747278726760721433565758512557814699776646549648495370555516152469201713251828151997686706219635055935168465779349022839218566192317594934736189237380266461294697019023610169687338275102168843282260760955530536252920667332607944444922718916184293281745898002397229020394503266096872529087660028155783932844053795116623372769923232384591063133052809167426902301540111761255070094646431443416406756450985116641742466209629243851612839334270603430726802104757369368131809613524868051376729439063795541194453855975146617358376181118770667333124581020026479655507145628695619997690426189992892437280944728367937615385095254271140496301437884198579624631187629681106016431543418076057305143045172871524752663736729570828232296600556935512147112772042592846398974274561611872189170388607601008255471409935256344671316257322450935305069709323938554297837842564652601098738607526523499015079957565651118451461602084883667100978311417415068481549216827952238003683115322436240661759454875249238666696286920109708453577931835548269627668813010079748013867924421697943215693210782047898662440639932317772957745688758548754753788147847189486811539240848166346936068420998189647707059862046143986478457309774361408100462362781878747942333512119457051351525115352308547942647083921784517837624928635232697260469995244604692788967876617473126281103352687812628902922484108925962330456703010332126395877972291000381360356470751781209610687213595697979822977308382697029339743916839240777939759797138507866169686959080920624107031343425905371416828857224030774702721055352932361393642021244139457673455685771669325164467151680850965187549313062035565661523176609083965411016271439029303228349062859659142535574511210917840748855726194531083678238047989430953395991294076254202388088858948223144088765893356383134462380611043895329822049919747459511861584801319262455176554026392026514103214639166477870466536025648010679432030460521380135536519646327750389514430807482758451324699020920177288682890909144581281416110601512992366458315337226778325963415546835378808059048403745900756482717241544308621478095644346952801102739474587687429995172415225253097714112873015715554673868278771464846542377280968617107852639266030445003526722330397021422803092206171630516681549467632507034559718594711221059754211805537376043256053517723735865814908634530990423143019873556249327118862754025204179815246680104907654837075708951753297799989488525990271286613423868140570716167767286194282646089402617096050505719785224328651804805098188078885495777806000147063403729113049274962573317589994366186744666896340374047591142124855375081044940827066851077604771840764134617413867790375326529952636739091070163242404338420611944032091473372731900135593139435369810813728667393561949126164957763807115346262610692713730095589662591615335149868268476697071406534468091576920604999966782010774614533687642584246654729679010775208468631976213189709213053666429767767267457593177061331938936530180064876485782997732084866962797365517790336877402074474322626452818643982900547961367131907975558484955525972639861478081703126782519794185989756487126647152277294034086084228950957014594314743374238763981709479358929257886974065145923518049040547467142594461141189464113985804752085691659502020466498463774268614661810870213778030549043575210984291761952788176280053953548565149815444116682093127422138699845361142313930481319123107848449457309286424059194903821497710612013663988566518170813441136352621635054796698190153876624316066560261773210565489398143369704047676849001483271642378599501119981391818006056952774529344214328017308168950464114630616334213528914770630520518552936225177063695462463771462667044442522659010463073097085118344349229704632252599355925129388564690586884538997469638852548898880403926231747892930531397742781433183638992530478020305230724509619321701071569730887066136666034404496692601780396877237094826728652032307683128573563253513955861937071802915953746083948306618098787798011547095373515569335413130125476335189830847423735762766672264342543448769701164018134518741022625497215446792475394460650343845987718675525913806794677831918252211422845953771733129415436628210729088580871379761161323442817032694914813704450381836352907278947474422534929740756655674429330153597693183860789422577103673644127215449780163003529551876097899958313444853454955345401905954958537979384278386623328315930595923903032550522646114182135658563178326056883160496336726654640422011753857779791612997785591153885978356773722251269236054807549178484285636600605445593177954693052535920455545976740563663927160075465002725550939257996327664814070123421158842078555767484242868430408311729203787026944491533487349169382400083918436482805655375140067085140009254210583334337845196620727214981492938993091579690044265810163191002216827631932208948286376379787017343557559292014140440675713963450707735939292068423629317075907534196213350408862532022575905598367698080290587085543432852351580573501602177108249610268788333530306859572442592586669687223404856381759522059443760778042269656414635205746417887979176692744163211297026944789932117917788068651876571250875940693694769625080696953160049453490717611675156304494661983933546473058966642964092975709053681271739840915084491073777692890582964888017674790741564279735791985060996627128508069942307614012061888874864478377307989004806071772787961610919371470033816398154077960027955332769664044285394390409792027368435851293875077149497508254021155714056648652731003865141964001341526372112706723419332628649897180867802663043363453676588245132936503766852250577123935173103083250787897315751038693910616451477332572775200283706199306939609463361136138226981667482340818777263453543817642387658335513883782830520877988065165714875098994250249962142150689113196507803538473909837364065361638518516971783652224646694070854635680761696221894415181086038316328380671278081777065338680161622778158044189729323556382107962828187119131952139923351249867687327888117660096692181398819098356408658728934396255002281006708888206208749079323053505065745356043813992042279122458322553686005160753712421713777751522531302941827361003212799313270869560572671985309862395157403884362885535587655338366027142318873859180237699395903849134087321129712179271275471063789521712023943737356469424382728373211698724690711763309826418242605760570945088091282866538422055175840920709561944378794267154156491772875275025967915261935311198954796928286758552196703390587305427462623378439328691822880946425495307237045177360905364342987198572485835847297275111751760812450257663042158149111292523217884230759979878407127448020929569194502240149338297772708415666925648009057116470099578192259846780889642501713245305688468445128700991647010714084575493242448752460421910316811130498845500898016244352359019890336269950898389994003087658230021398106361066226210455987450593604650216135517506030916569781256072277104979205689217615657595442486965239075335848879355809477515380517963346748412853550109636937231042030667488441887375444898206968394095827017689347019726905361239196084957635658635668060115614137982479281543226628882996349554520460479327887350278598630276783081728905684977689479882443093750621396982608651057258977513867740486692332083427643457216477180466659133205166419602895956430602088427420110231559687044035449025923052357945819739528524403253593380360272727465151352390487896327072611900924534490887462481508324070776306403509644294361583783111489602536685235892276899525928203577296025380800306882649444940074590289274559002860749064086080447202858735667828445363383089232323654973323221662467214060917743499108973971735753816245533115400360540825465962017289341543299872309977926591029769634049135036091478638354435649983796304239788496542949584624640526065353917078398423555234076117630302600742489280492726312951989628383242723147255614537040198746911979265827121893590764859505499616950201473891830057265806692933417053681327962578266857719073867133238471109065199494366286802950124602182343613544018673610948976537928685404078111329128430837948445828084466472209970033287596227275159630164904419265904754956223979486368335268605599913848557954783344045650899854398235986221110242266345566544749590286376098655864024729306647346952121074762247411581805306906202259254383433427026086652879378845749764871085178555739089276058309629493876203075117645547663070901653790944948527523039111579822778142878377687667826357011957105339995997737990395916446874749353429129206766136461850356525258159912944052885020250348995023569159851910968557363620935384862066556415574754554915193264758273439968919530226507846464597719111495322510216338054387664114840140971269075171575244018514520246301253733146913689929135036234737509715615510350733266777288381136936894273723008846572652021839917088789362969517742965035379605964670776276179219455641833513086155117616963535289949708582742146111941497832876139189683461766574723892142758843879132439089356832964205161601342580035895610979517366963932880925655224635827249502607774830459872902180104908443242620140268001649171690322530781773919517886966762920628480624002622497832150497963606486790376297729269993228123069757017574632183104107449819702948126410979907404995352267596659110717924835183873079485562948920940222387565386228685744805993846737141508912403777028263248016325172710393716043953709571905001906327228116299111817706318094043652913989733017120138725030923191229969376054996512692822144152703214718650626186783027391776131303768656717385704289791823357342504382444589336448856780216277809863761438511819150655928195124122858705006644220862012193759958195421195910370380829934249993300251360336649953445472080550646334344111655882578586343877519707628168164797691371643703538513858393405821437437412571035933899660207010202991348396096458987420483278452012360566110280491623462387367162694998221282964779426716485771643397617170780656592325208050711059359301448426353023721391490639724149340186947868981784854989356265561191279850188277091299611447053360364315890421956088005918100005886537360603852488663270014737280602599717861180134350242683746712395600297326433816106156084915133795477263213760110276030792435485896801603534344611659324422329101216945974758432826142529026761727254094355866844097565213434995329714198727915219753820923139575262630679307877750326323654048973443445395952659531667157959565396207116569764618541192796788196202018935392262955252253754292695694578628635874947718583735336891911174159169654015261642718314034019874799969967757324389004386039344083791958419317712237771547858655289108695125393600600380033079107423630171170686541041979052402248024097246899551518068063840420734901992345401640363145531821378965625052009324865633084760887596393865937429904432315414540223951363430979978844817814828632989486322949582471719025407870168247769008259903792617614678692060903349295155988359482305972661070330564820792295132324804449915429327177444181392854253450752571640868542809831096592654103702278132933533441926044873596413226456802334149763994406225209265868694871542305712779284823014985789435354937464009793875957675280854603710121761593147448350088056562389425935154066858178514203477244155851859903751130830651544260824821031593666482733448044727297597759223920993634325473760053619921637899302405388012068005974236669290141409354526564341066276332894714876153118262948684822160790517855418988290720688183669814704362807350635168911118928497085968922306689041951601241075233786166986874705193355217421964273649717560824097039609943327031379777533333414194687437386303483071007702763858751518439040568776537060327882487932420228805338594657463088759973090272425893125199288302410399823735070113400485477254814207067696620992129282622953609754999279471025558632921512936406244603951363877820264041457009258563943985897783365674656255001341195972763148223551693914005816700816165340237192079893612254876653999411268620300911291082671955917438668685971210104216642798437895530476331652815954217420462237874233414809446285769276212436765797054930916235604227777500797442864391507456326144917014605333905425089068105808261956370804818231663864222443098512621736381405762922986155038615812834437188555673599300208190415059742685520448424600302009792549504764580579787610121645251533698181195028720317772947774996104081593644670720949310476848658298658155902940168455570569076545630926259840609239521995309001757611487404043319652761706202696808227064014137193026416934018921890197351905790417621169965461875707395632338867778800000669010565512313695120503445406835073280866177258595527999064811193458292364485826006670036031613489327394332296538682230545269407577300628721984555837543998171153916972126067726521944599322099084939600817255124684053139005542837605981817572680491380261399041223451180485280876054811401870194153139129115261556648808113342877289915989430331536207565871649125424500889296594884936692597154553158242609180502044617812962726573283558522467943463621819037464365715547193977095128228589487132550779538829858173845796578015353332614324261915146005305959977983564986436571399750704203408445143986891421097267627455756158391736810778093868996479066038031516805652681604870163666355048138314624616088904424018657227868160887283898646538373732111525094768180561814590149807102568886522970266659121290544116574073526986330494056034637244666148381265023022311358298790802893183233498172228578268793362542852743994892428949238799498540930554019299330676172561003891425068151932810795517712693149908185095901326324580436811359862844793853210213988405877210294078226320075460540744419620577380256681940194795961836002178583320747790687289284027520957205077675199766583754447145208767363978765974824929465297145106861329578880888198552416117726589231126865048865117801640071190418722930858727865650209317925624076942914145556209168076143741381120157343537361209572070797054231260266879919771069586890684556279503464819616106431876764504047109743771678402687530774083893114980186786885248241342104737133908525809407486244655875661208917225315303660793789360950519913686703445585675837572835019039919403683256942390941953661938483168199295411555418926589185969941726756910189088469746372351934349308139663892141122209712341802162890285708249885356539728374033783561716064723267073092635466110197791294667438634806302532087675896380535020328773207009999320458802952881748226785927672872620720247525357455671267798525297084868714551307728061614682075246889034843107649448918735219974087132058132706378986146565126827117396469693076206496919349173717517684073149622545807564949048401848158766703338795568634957535230706444786861171295818274736968785056085634244000316173074108911666840366246261240894556972972843154630038156904038560095371800326205329992871240713456808800647312021311895637256108013201244502585836789000516221372616914824876248907245276687813467710720939194799587912331642556820305897322398724214441811560094610211528803981771852241120319943692616935158367075673925188550919421247702493194910232611979473038366233837440380168460344483854566596953424581731948753238968733111368550654542984315919360028551789833375022093793110259253334719123963900854222314697237089189018065818399815522140844858193812733628057938462257628310804760127154206857561616890580155272064909377928649959679551518461735448153316980115497082762870465624505758911465811455610928580325422724805721537974540530924459300607473385195073388327831528554939670118808300083257168963144854869224521255660295467120600695186185557856297196020014742487250941580093208040503654429875209999739562859185020834918706712683427157351836384886672621226264247535225161030530152992030240918126207100435363774727984077066076264785679947610146513612936327896936804060505692159216951308626491133812397576092115406632162766452550878405613730693609989180643953001925220145854928592642516172567738192399467914111050436050169889286957086727179390317346794561234550622753382431743783665567758174275443230913483456791165028712785460511088375004484105465136372579904474631366552551008227959865780841804405702477597487301190461971766496453876007175421707479776041585260130686298953550911146086866426750424518431898772718002741888536478733279296333361996060152470282836364802616633766583021828876868456493250013667058256375251106357771404762148044991126280514371879282417607730406419373966064974412596483882588433279835207608228361360186162607181835474768473897021949831503841988382052333681506699969429490930049628457844102280716538232391405746350106462409142278709471401786193542342280929466176067604789358970917178293953811560927728050158670752050994334712780742606858586980338909948791106630304277290313085127054723430476458217855121163449142077907713660975012465052359957232440442504468482733542179833428694267442656984758853784831886765388298535013340620862002491737893708049358160471248573042925946478863592591563374181310690527431972517618535609571193187700510947069338788201301838317225327629516192182841113056857261559669146640690266637597991242765071003681914854905954535633664889612893215929255125151752464840782696953899805385985468722195113982280251935904730047344689932750302244372996162469718735891628472207405529822402984328794912667577913036225248724886444249893907330620059160683064438233046398748214528895217664373665978414185024572025099236120391857322836578401342061383855859845800490534294873251515915504832296396853916177575437725515951981876350971497155705096996090229082420804532767176356215893751762164892156501193842191691328563117615525953582147237100420101888408381528713422000059657821331835347473607488961347192471370723328353152122041109579140996656420230947496784069208454728209938358052602304312277600965442442374869008106709944798548139315320216016008079083272415034126523987785999115241786453644568346084167742258368475915256166332878374918542544031051296516078010449765161452646255167375187579549730917786133137214085563426393139750961571050075635133170095600247248089599533091738616001331342959734006529255259456069476074394145696557108075144549619427912849633906105305443184927814561067101644657478486816750233537100092446801984071958208776062951965116886953752264524969357324158114629685253177816952187186098145707563499470490971131743391172827723308763116742068599297208570716629774350718542213247094387858493591214222107677911666470417095144184088742949510125618799728385605786556628338480405630082797063512091964688011816445925561482788471160493397228170616564032968918714505488184271028905150692803953348140271675446613841244459714825456536032680523725898783654256525995014847707933891315015987274822386990125391261985213761202211290750353233751559686772683582937592428369279415104756518117285967415158647614415703317765965805207936847397085249710540348331554971974995315784460637917665932880768382219588202374755686174646989411373196672781219346806857445974332917570639549706191706541600844201817211348599017292932864998655380005145802589691976209107124613143832679614126219920993982576877522781275959436084259235264812447600134159066195830109308509352712946365243198421306998821844733578266918829581629791610277940894920681910350822511371988394095882888370480925674727177414078645216931795155359106317613174640219639100422202210016375037803635928605000467623795387548324647516490664842604847871759971491013876514151027428467188597354686790174806781227179332268187544023666641236170337419560432541632366365485930703692276346240224069105709802480434415668085702528028849839599789534871225040579856751424847249594029741191776925814486647992498724004686950146619863847539298400930815911126206626916540488601946229967199505022971837813733784029908345417134609918345246110584157241073373451228028355902222967017324530157784545770924278128856227766394052907004011804782451817522471116930916090953125522694794903436942404696946653953647924275912249645258218269927589753935624004393334560471759170208078237169178920913235184630302706468905092346669146894017419664334813756944308690355052607675180710935411572162233233433720904101678023696528689579930475667554100789630860845485577583972316916632196014336520611514426493432660120632397680657128703073858312214622565552453425373034447490693332227173403685729099406126819482558607723826172334924481100807452652583505706160970370565836114150571276229490862362306913752327348029750943110590474576609599452520473804892866047725582542080446113848866962747235883158055963332297800138583906523085277397184288362191197237197535844943423915933870293948738899047248400592211976466166776212539307123059557708592722401950657135485371600095001556225967619293713166847194342513814432077933958847405474089789669947821808600201681833473792559928889672254045874077415829440918974422341912430794130998126806417812081473665451571787397672351545427462696535309299516821883333305140088092712409844384712831986552855544055626706792661830920197048084090431185120906910163000824578429371072740976350839290434795053795845104531809031570541746751231684052382866569063133140460735817299553758000838366119493111800915437347290937049277431158948451592949198134515462397379954823371771748703866812955746834084785605903727572526375966716510654625770052677410292456754446032055575518836200261178570338877327010313921118732405830865641737785587157169876332599989937770253241950215033177726168317935551610837318537468959873552427271345576196578718298112617007714318981342745678209324382829645147481824725365787486923834060983841461866439294428645154099956795675103177284872743846918007097712651218792008522948256666698556855217917860167793156786409851360600462198305903152835073055204237442564147642848836635490733690365294529976970843269314430467488353853572543550511658174720428535565234316498952301465179075764223487007571921480909597458200259100447003732943849090223843251936210676554017612298082465839167548349282828881962200087673446044102620373995471142411460647892814326806811933716019515868502015662071386134829444334903553732941830629585351971038134940438533713480814531824525416041026982253392633549728279570420605080461547935072660451719305101904608924111964461731255791483100854429908011455265476098549735126035140463970203420248198386881993298747370666276859406019574893737971417995172319809304354056465739989459118353115241211410043643640831927380596716433940662465583834653639714592607532395818309242891713598497090200961546039912956747582137037720023279953761599041325709889343945789357471342319246628953819717305501961563502489215698984499426194167158335666851176133526640732652187057285184394618425914806349257223240182003852018745007375375196709703943387543549399786242397185760471427697748710292337531999136267547125154748762762534040738321907284654781630288075500950625496740879293059348997852982060133090130699685998299198808866413517685957076492374704388269824787328514289709319577130440774346488356823096034587360040383809822035977970246539259079565540157177286513526691682237760233429215504973657260040546078078757422132517383845655096265882728979695576680432152159017795352031783087074669724902855016235223832248005187515247351769258571790557289810418306566136350049530063208405731040861962355514538827927157887335735944627936801436804313590736341683185746083325251123465363045520501553392478624321191159489758179404793881683103395102308633706573463515266440573996777796233965170408087894959894883705261314082681968806345910860570004628342461328401421707759090076296608879316312558643957146001837058413988115303606161716632249911542155886744994419120257853717603620984472708831788234655610570472709218158716262562750488347478636271178764892205564545521600222221943961030473517106952432295816615907817735783614453340032838832243710664385947555295283028258930442782821955656747779912283046083661743151630583232182751780786631150303696339871310239807494900895300493407960626286530222593040439585482141895335052573943728943504445915744200687044594816054285081427689023626046860176572981016226952668532318663905453066133056226540367336449208232252746862343451817027620799638660094108428328226854673436257526378061668834256226050567685568750067537478563434886222023296007433886743324456975204356963317043545631241388333191762169136764724161375794241333815115091544252733527694684737509932273763570205215631919903991299633138268322089617763371279349734640988174263143075657089611919805932001562222202147968784821717529017648390211232691376701033760752694373074567814689742707527610012784784926803868247700440039102825948801304766755921560120464925824157489516320704974203511536149903637896093006518043232072259193065960430200880887066281918063208727887449359155105651507343818978028793448129079189463079887149710046433941867405728320525928417804335138674685446048672722753423513198183771151797930201784465037783746380602440539051757512912815145018278817135358690069006173170612690040146184507139179305133590952572177586489422110318740239511811360039746210979969149587080217809593245052366585845968339675947363070693263346132714982795503420923178998877213709906155805346889716259671580998386685786613452868760948680848899480838824433470917434550388011109593980907286521767914808130052446583270176564906265600835190174982875249069890830336155575657533195939185363494370150254776019018783416372410265940835086604306326354914778437863955657164196342312981336437876281164671708853651872089263922486888793568751827915572447344019317898529781742884233151595041488093162694634221215088843053718734109015772919754786139703073952205709252995570528014040288884834638791895817482772046110061992605200416538554914040522516311775849295651397913629905580125909798213526457269691082477511441744375046916023783188372462510359748712192706452671446349237189351376639057076957771789023824992324480590598334582964906333922209003313305988060236926661330943538925218747025831318509722437943461608911100213296408831251004995231305084565123510953172697821420036233472046058532252862575208214558048029108148169356949926665221335742613489398795113133502348180624046736472121837944429522371594431316280454224479513425769313116627892539027289262174316384169780951515724775684979287793666291139323537679476241147635568561674169520202448618481844606954781005296245112171138676038333554838594146473699998871530973563425018319292942273947475407049392659608644043284051304160324554733173004137800065231829870950495376181296776588637678069271071388013377683819295750209312079659149260500601906189113225450990969119234537460466152152057966112913488412776565814005466869134177003186148889825461292621826966003079392922275729927593496178615362326634914891466782092191653186490320418684495090381533637212434497195146671761534407044117789084651348087980439960484371201590022573225917174471344083880518497011355583417508091480537044365322263464347829880868351547375006358438395285149826532471305634226957595857182691261193787551686368244410575684908503834289204144060064342103092518440227012808035330998621831856593381762421126412385186499665855517324286617040965525453616216991836570678600715355651011033691472622664169951036212065852606846904368557445108689523972222974361568470549255613968959436170114733181413646579514427705903300969535904296138482816634287493921383754881009922999605114768944708595717852438235431433748455449988251156079646217011457796905432231442568686537849628927245171856965990989160812794910907659858947767658139540833269111528557943865686382151434671447429257243488855323557209395831064179080346601718310185155504738672979356939596610436259154654555488211516022763810830798875163788537620168626727786859152254336877235465098102864374793724773845502085671965010747167742073450360741129867105274102609104639838481683837002716324278054886023562919637858679341207203583712391018971672337809957097395171855237605769404552749712683080968932985681178196183759829950865999358619639346163657288934437501451950844573357986398250456428575936983531492271768360513626862404504194511831462504209540379803453722408376442859334109926818983882927165290753912513203421726729293628225684835123075562270970808850036449483111443248284192326449909305158378484701157073125688341717148571462984679093647485315071606221877350588524729943104425320176914341233791535667892445062673865638414930738351661594041497736959872725758516596345851889220160163184874069037264064426205145742485972472439025657616802301782957768985300041101696463276742034231988561828616907798160261867101688034192133494915075696908456371707291632426368079395938935200437289478978641484488903200028308531317828185034471639657080295389762389881653375561291504253960018270476132153485786942880459439675916009944572042582492008811361919138419260806339029820175206835098403715701102322489801743697276955808530443804666888879783475674251946538311651235008703025793110249952597239448998969593352504224160880798427443571576667474007540889826363988647201087356835098845601147128174166746289580024328177254966249238643643439081909192407293103784117981888314925664224757290601945600370438997901924581955688966191548342570415516371453237257336799348305601091769994025449479849519669195092792808375592955317792468810271303498625872422747117497303505161331493921494935547271792906400497545515604242754142974883049416380095327795612218951986804155890621242477693829897971338145995447332029242387226584271411785189116675330459356065678437299154070571682659644002162993293438009365188985772672967935102652304569366906981094406190402668471609382471056029615518162371124854158061339147518220033831606895937985043393003667074460528615592908484109437363283063973200757733420472778833651697484320066394261089349656333934596289998598557708313746650399515510013034921894865172018896536185600762074483094561288773904810633418850444746797161706611694266022923010520192702800856467052761702115104232818838180582483071960383836504317698076110315109665929882835527690789059953434926505259731018813780251338600366315654085296504704881206267331045416376859259202038793913268961531254722212511428592211616050670238777967785113009015960834291938102829063248992226068757917615342868368085825849101225381065375038474313011135025744931498263994720330086652229028962473922090973610668967646344808728604136291619163982205331778110214968355184623167338814418823881750906221751734994351821649835141922273863537536215014717980956065797614623310844441517847936381206879789999626174633371921725760970948056392265549510055627150974497645774266810500456136288145466451583288296085822126741812785608445160244000452575608840184387227211189190594492685276575372029269289274845057017144823045162841144950352365489100132070664750107642560121179302347806569350623446500728307412712668358044649616851610438872227487455406212446778557258589127340016556157760499879035573051335902884211506728500156660517777112838567949438262263802294057304562862420478630731393757883227007290797569037451450171953861647915561369075262486367322473871943696690446162490842242834196725361919453717117260724010353039206472344391839758669458244083547451470711475112003616291024596413899241603061402789300155866949230640708515333544889156343944477117926795088945663725305105997463009423163183197753065969987746260813142534154495555567034397619654689193638302368843987009558560697217102339117751914118798279026125824810896549326263123386464467005685075146720438364341046588604700865794458811523632608630301539560875516041536861596038892535962147576526259715487271552707005535782248629344561414333077208886087395814864979205074529665535938399222304947367617871291469283410433613713488107315444281933277621074682730854201775961961436108788723401566882034218545095404882960934803816218896033304522076967236764243126631358577135226966340793407710627192238540195103767317194757516224224299782858137810315174671789587761549712433141303702012239436950755698666005716140279635844246837789670715682403932218589526786162885087650255343348801710155664624923653095819141172606069776790860585620276969056930346956205328839326236602080994776229087429232492939526462185306427116126371062817793356025699031877839531223474135260493501047240418186658075439091829308138344678273641042638437225623651224652832298352329470735726371724422513939223043133216518085040874999677400046316350794703625035837038206896255578454560744631392457308583111350482337807016269851130771207803353485327205169931128711933506790170022390867185719191349490052125016590170127008196498168803177367238873931818637738190380467773501802117859174934241117444890104347376363838746188120707517992594495412824761671754379141815175054548313364666831364559857446394886654419448903629429865461218157277574601144571244075345433858148874143866870246338714359070600584108453350477687702448619593734368979649314515377022105288193351332512090464553111162212747580941059481874452989171206905382765077137748075951209874106897578895650079498574834297766151160690803850844256747133634520770206109514397609215882136026384745704969004114666746406645364132363996852075553097857448638535457381507134898376864819726557900612585923474424995055378442370007980826705909286051173343863530820620110831391116576703667171353438675572340210150373649865097806707042936938560960221118317511057509445864755689232482133117717742376684726906449437636871779221130486817023435314845944818756443706112937651436258829735202447501631738276392479026856096614507494709326419945652293305773842202854587200774439878982125431154423854729984421720554705493755033568656326040075365718541242223104990311914343572317855184109121967305965703341516052907107352031985800297801877366879284051915278418975979788865947798055718352415359943726444196299344308304264613103295960663287149983472707594791169579614055080184051224704771398407048834833027487906192835024869017585415770215436807211436334538847568594272494167584634005810840916186092731951848220378682517623949777581922416956776556820149073914134232528234059495070705316958939785408359327610927373450404485775896565772438976385013586102424758459889334307160701672774116940848123598207855841950794921387995865272590781685738814777025745538330313134297953550388514399952824247954928138469871663158887420130742900787520149110462053644182440060835227226159436349912240975355109730784071553725242638631634779202303887684715931154224741844296877356380693132074315780604845605637285657174172659406003507191638008741165270272926090770682954451250871532902912602167968807760374892170444362688959424841528264168232122608931648313739520788417255779311626603877937014045003235989906330369258719801222568958784642674160947384399457372903028024829883806791372688384117500516865053577782693143371886870354393795132784099970231399435412084765297642078106925375681336821354739331027478302487025521422419903964878034388522237605022057962956580236506612746069336482857629434293321902353179365461316365773225832976157179008911402459600751251958180619188272360394851956227410487727703678950739195684359746709028425002207537115884172699797796535766150528599696819514502886904171740647815395514509313987894238295837553514500280553006201543348659266122468054631453807428034356164960241343622998610093178027692798559266646104830605808603620921800065224157609945053667171364833130958075244936225251457823163880094584563226471515328713734990747324279023201539383904572472271156438268476879696897822702525764897463301710849497392531253860098636957697644450038387366922744503559357896988985993353228432561527886496566282407048172215356230334839736157293029741400649972105784879650516077270847781293219388019540866480965770744157488807105186780622139014162941149939271234653444681166410632027444278428058962968033745394219950577772820346882816980734799605034730974381751269948888282351695275561211830790536345950784169256475489268007680949682771521096645473101818311275286047561092266208191147327506247187230325556465280304574954517269501644441775303038909781163121859877864721042748479235546715687165970562017818580848270917956360997824215748197407244225496511287996160857204104061503665830491776884079926135313121582849856220774273003483460665005987756296451136725328725399097326216702069287565500082696335067126085637204195790234735236042318755400554246982641543145419402990701968230446193179241109506680732938593097886278459303340761814667946384366818193522216053704834533072901290657917921364203000877247717157854262322986688133568116224384882536103412490191674790478073576785956560770673011266790092906891323345970432000748249459141869389268336887540319298611057194734510502548872966644449606370429848956337018893370959701278117377710621553870164387543498086684500901147785834844231947409562462767386975914292726776103374961521567930982234527746678130213166280201115090640532217525772625908864939819781744805393111270067693880344466366528138793580903620473529205689674904025257447886634665300894479984979299613584214261925357585154311807273940166167748593146429456988964552063445485693760032982400583489706990119922849794466653143723650414396383117735575423915269779818435830858961998377888831770912120069292965784878516762463742269591978489896635505421642172222456483284912013137650540355165103098333699183592841321256587221536462874928079403769108312563916376840373492686052729922314580265099630320667922650642107319646231029204171620641339936794191787188406621184738129791698374451442542563866862261702043666307894160517034026719593552208610557370930968142978681875570794846337563416221742426463836181652964506880786753426038573045396095346434575189226443113413566525640612753457268755637391775720067061994291457158613348782856371290967443735353407426459979439746843238028826920229690420260632640003592503945248659593577717622372517234761955256007947737575540274304736194406550626367932237300280639754100103759120568947182530134876164314349009850794171136000005498333510789317229466661477046198154853420952519155174075703913156727529304935570787454110706251380689822846035758780618432567829991473336572958646147694505703577593842253201686090207875141479052202453657517696690336879041783029389848916979537085209766718091789645930338883221626811283390064854146647533523962395243223981939586419908185725419630999767938179290902798576360063173674623924192544271720033037380605427588618967132943812900578361601798169179336488766595828662461765764207388570892006590479317176057728354285862672072943537713395508991663037684726785224088760707860732621777012313312893392539223747698428621536225942274764089093066600586617610917163957445959855335305974852720297166048154367575299858123970861347713589731209442203886563024803418312005676693306649603431074892300089457053559036107944007430300002812848370858250667356514532915424429267317483143419129337118479864085491397804747752341986482997826487285261033184972195433905027386563960400629103810448714566209685898819551783769744665554076564879649385943803305951953750625690948669637752719542546652777633852998996936310992151876237145563313679813254935552546275519690917642299121749169334593530323049681600852233686395037082399272833264874840384252597192004330298654936652093091120776115346671978066631537139094189652641672248350195103015588654938420968566347601588006438568507221532351843684511122693862012806542782019673992228418731042931639985567807710327764956173857210287482475114094023508988755146806647805509761687951123244969602023444541736034934688535795580903094348832972720222887734679799579284180176196408651153074207967169450507519036408667388247192112958011970853177385685839652241498062505974714765097590774882851294816114311439711933075769146408558071303044943360830860548763936005753884289533503449935959749330160866200273686880033451908740264328168548843116366125020870446403034917861004015393666124860854016906732753956697735811708545531827491981273161487038369070002427558340593950683726342176698677017392270655205802734773896987407705352976210352061266192495192974631700791820743265665067199609420281212692369783998775107586356806724703059957006557751680691343559953354446487665870234751397233096816944760413837371577217459702300164134005064279232455721461195783050368503332509078172630087874027825857453027323698192173813407011525497115026323355823445508244061044949324720933307216288898985587617005478042756047781582869886699642460145412110952454131208922982919191205411222743629180791064896011956117177682810574343756079044923114260089208277589179904281316167807068157177428516292621636830937146345581134259756036724933927435715741113484302083642318232574559748795050850343557269727095961617032901831177869987733271726535343983804317046578554376838768152571051184831506489956443977589587778091461545465255030352080789254261487613853130713934212009114850526381517672808242890894877451151464905360322571532984987716494000841796774357658118806799368020130546364192263663710627509524826784937068240496323564753008621268643188741890885833930632197771760784646927607729452923245417759843410227292352428131020852466320563077334043283510811427499839523614511850813427561451822535077266323037794563648878494334061964633715608650523865065886045722294557014026465086789063518064062772546016859810696097621660109487960237980197618761303921168917247170898103863624352489172460681482435500108154159601792546006976109684285037289511662277725911300082480240658284346097409492405842877735724990663645321187301737906859111653009831765445385026063106713153784002404305700795898248485252190711026955665398023277180507779632296575992901035411009468625388312701090334120486814679649275969968505358803773067004837135247828612252148011736066320577000157162948009633396797793908217828552311172117623144301524966371354302298800234902835077278503589495959732548980691680796936867486565659500237605412596379854811861252126191562570944427797079728955956759980002179454974953697622208327626435878392273887336851087561160557099676819860607570984888167285964927291134449362484806745315214765740925267081712064407299721395979270998763606529475226348173336590736775630230326010432459580729731766856094214219140780665103658913320505263616974734270751457190879199680174597869571315494537210491716760555464378574492385042646899609459598233023020448821237553175313172324775300962124949432041490298825451627758106331015674788668350766103524393235943281778032651382395709209154316323925002542234050856200302038040314139768931061652625374170525904735664564263880891113774038087981966350338437395155338333570243274896987530456660698199385049913373580713044874275244839794715448156048378117972432502995806267429511538577038743586465119184391672761242015870034691497115481805368018579729140768142112921420199925717749716366248125244475879756031405821691698624550317266890560407246612783916393841780838183661379705722586682625502032188247380120449432489784653219246153484419013635445441133419255265999087214207336972624653064022294391661876464424762089981473737126073417422988694341241591000726795548266071248694847873740918425121385448215930214533580063197459805666365861776544582073940002537475742769692089915556795096870648593467348635868899276537257128878198907033692394407205710066835032154906153168026860741011905786065431426733908113877693001306931635760639642674044424142085750114648912214201113318744999133309469141409443899300113799077245167089324103262061740563264312096187657826142955692494988349366008259571261037980173806169523521750653055263523041913114803155099905080764713609507033414693561608934775663344331892739695419015917020826821898232174683056917100774440038556927278394729117506565640176225962386239558322603271070869927195761927408451895894154582187696001949708972040374159602999065162837607612499366816606098153605843213375802229635076065468656241051824992489231989715573555184307887783484030673180819212215081984907958657779888234996400463323131598454761652888159109207308057967689929114562253932536349580487994752533671091409132458009676271279372522645614922275499946832256680475767657435124924973897146360356174373551274957711444540246041269014274273734362090661079134968764304684234028143844601013592520764994700277753523265887545054706485726793222835827149367727489327877573312251921029548825685888656276573482754323652236632140150175215411240554658103873102153915693124284179835889746233830736310477769719799009443722050343079156202938966286545324250346554532763852370262407162677336036081420931343313777108699278243378671761141145781798230212032928044620009088261405870372538128435068912416359435370203969269954252641004787341333475943552747129662683112926303630596401310875213325889071812180233710151702446676942831711722427717158997826619821890551841486135021894283893777202112565410065955362704754290417422411142406029281359316491174473477173720722959597687189232601024865374893428112052061692256171738868929532263738100025241243223788785944125266929771927375272964798878765720717299905273497505759302326968958176420742210390301084701054673784576904482049985744421490232921229711882848458256245153963174681403199458246928100902746763628064837077594444416841290724663953573001078779345144018925183974394677027523152985751543383158482360574378825133314152732015487574840572888282113878331728149252144514013524865662290864502533137834007509873381189188970026185323899887383223728638314188599882639596503778725266623610943750007810695090301261417863764832059991877472533771176126773381797703673462970632875117774939533177234873906829162974023847029924557413665866038293315931259331531146695434892939534546138151759917994109505001533707732856507722409063352189779415155971838133334059251866485558670317414368206593473031937410999526595218729531263585137619726819498867737804496080657213345314487987271297004619574746419597573828169407952366341331451558370806346262483014354307929985863240638024403284552656279239183927941102927372667022322186975755362878792098465454612230048649316117910000660533811713547738593596105993219797237826261954671463929913027848657151397804157240542341518849069747365622024316118956963207385119575980985262738717583604520504171109785325664147096620645724696706689236317357161690505011916992069509522877975373184511897188952738069469368906883154923131488928434592063680154129650381880089829949683670363675696037044792452534727929148026277740598835507176981521597417248820552308151279536680837349396218622607704959191471654150972110273582704023953645001078680234454537381803753465674947879534047164203526792964236428292444670985763080789822171319251847201938859254775509960505320287127766778749278970341181910346105648021642088202983165486920628732663232799219740421515613049951876750605519489146388754737279813594637195606857389238008800953114163460004681786083691512960240724567143465015478518046079010617262728239028256503063868582521839753219529323928224602052537929302696713392789803775559038349530720303335187862009330436222149076583022071420856756841569936805340793556410643930722898004960894394346764622437539088505375982662865895428479847093446291811909712968699153908560705405464547089989516579071459383756895172345817782157764725850890287097924721043873738290916570278902365576876924800478616135577309809881859650866084196512699600724765114364930843676169826173154363030328530714035324408170939873208953421004754781505103724386428967852286631039281769304281878610378437022338998607684811244606804108418691118680660730991535871847855428394538088459396803463190621240730498161809952201933969986179591588652984733062315403415769538236418397062391669787554090072762601664817473559778006496262302440601312931145174246784468175693306775765811010148867053426202224899535711122245083775274621683080285702256318518942029916980359969298965516354361676542981635409499338919180857279446713063782031311362512686509729900747687319310918310945450335101256836791263030041271995519653056267935079019484995425305909253287883739346093919248473598110241220685724746611208018748028667053617794207732301217769508706465119605746374614720945814353707056904993623427147093366899666536493491931223278526832382203371306052456432444729209884185154820639506895508123207913566205307181670481973154393258921427624598886359531414047341532794170769086648659281311131019918857392734492085796979076892963264724973805246769791698481763375641482238827532458682675280340768329975543030949744271921676782641899435606977583768216129031718067242599510602937585132246179868554213407722574858483657467427419626179751719166708661483794960755528292073917913784502386705819193310861127893581272915312176016234200225595429499002764458414925419040633674830931946217844097679532228311871140250867278624406686091031587036718586521168584972019846426569148264706731394371030780955356251288492152023953079850737893308525227817439882889768592186314750310764197816324041856351201949942185398649084463918174395996223283350741949737735053922782588048405523134059109021145500245465651147156067806407933230448276328107802402900092707521387813330630631727947462382647747929406756848175887672120014427377835991361094935391278753571407804029406737912632914396476095271505619908010971480109115016131610226825714026702276022333756305845494194224217841428493177476203863484953531095066834578665407357958146838862866113196378256109395355155510281235996360425923014422149231334079666189474160336768987944980812659148939868948469435694282167772011631614402134839030604786064379991800422266084621469515076464779516218391941599065510583405288497366200548031045536598839755155100296026490423603215730164052657293137964669489540258857875616171487819893584354007527195742978186188080330828964586330479074739374035732387566386916432389320994640986602428339803945286873662081203853981200612092313896137428439489980530977839136531209146072230986139141514340272096835622687204147513734169447681583721501770741159376706025246155514309226769411503283312956566797168105984945085819643174829018160911254274155901326379843476243929552989739886512894226056565244655057395228255653797180599868243844505598458041559402731780901657080484538100960131315604118793169675985237438789925214298209111139947849057965898641988749826841952426289590092462180054623071003000001626725169553722615298415344289525695666465688221242952274105474170115468641098873800161977434871499612701022310559958701068961259991382123018681227715798299380054723753432873092299321002298091673505960497517359988733300422240333597149959713614875676244472123839894080225951963537263089008676811371449907957085659638530147856029972382377737248056441513280094384277495207370923965231425950374642342314796499621641502037430179833904411607193830939207894096086104890962258625227404654046907073176039329997878485883842937224902515602454321192787447863267342809629298881781248610211161987964358822286110959005872091541854594628997882572940362217008960727632321326807023551388643345087740483909344695919858772461479079642626483493335426488870651358464804512136693273032992084783544036187529139896415930722738343594656233743640181514987912788536998458132213127264100652535893243677760117106417844191535048547768639559721723177574965275141455920049882927945230339565264160773351143225567576036879279883039368779948375038055312944130002339215432080757862526392045605352046058326653884360871929173162406694485171037423557537469953439333805963258170529295053805702853657029069458889376317112634358046777175728085526283349550311949145541193966009907349151130074425656376859635268840592599989356757589864711996177950975485747083540449974813337949405873769689894931424891465023086706305720891461277284937858522649804641549914299110935234984092669877433263981448321836132715827188807799483796299199368554881015931399494255229220554669960705039361705493217069383080521376250775905533274659740390384432498058775359125053050031256991639026224926155063461885833947522081517050924326439888391426206823243894596873352394755639052763535291831645944827974160893106603501548287150166530601425564037381931365252510947059914471586269897114819075761956561670239462488264049367901837301312773711438544573399056958827009912743742521529424779570573539718960911573649228285509289705841413679942261040469831661557901312406097880160776399697340576422255530009341088591204388329942082529480220059462068451066769310826099840388640746439249986997792500707493933968549721864081095250811029981294333740493641716851204049773317518755236235456773174873533811303298522165164850415351430993527048951610889683560581175352795529299929367490538430663368035757130892292846726793424622056201158212053686293935745762158224575406581280256867215540437092114853053754012496952612910102738781346946962131929110334214300135974798606814312925497040731768048003774255207306485121504365842426748134143777014739459861219551462659077423771736285273921494672391415768518441373331845047003271290709486145490005810367068546755557734398272377337363366648771847095674092400987347828531555295222662389733357730927435868742462013744192102750359134472890312055091762919664357369326854527712070891635245881407140019457004980791778618616584731541505717422452372156331939991238363847041438698337700987096070244225872638643341842027833101255566607869523564291421245861610047799551087540603444051571606155349909339847033289514531742288366440997936625075371821051369083039446262497503782888727412487765680374410707093502881496314380917664217885822403653423327216319844623690271178716298438495368688713849080447283353681387875007324452469526124389929092497909273064386462313960057984060861408939342655651960870486710213406254818611301185800709062972406275780445618911095704594157563255372011881257986952247000016060255634261806886328889678193738802434354274272650148225797779011518157302104942537332162707404415382612895870310820743657940331645964673880597202931680783283562720865129540024965435257008834327358065377369782007931056227418264051645835070071571138276975167543089070245020743915336284734152507804596813331348460583640366579841757437897705331543846373189933509562470091289419929870740260903488668512254993257240593848724272346358885683770185878875931576573131068301779537575267387029899983674287217885303473575768577665180696303681919647110373859933801518687542580880720469383044635864620676065689375357732789070560062237140317026752718649731386690837413497579295656936793272540025952001293825981951652555036259845091403122993462502632524656443938823897233927337609847406031979799122943812444892237363206448335913594383673901301088277024557325512852482694235424215070571211543386903616023147863800536078118330964884018881581895620761690365577010078521873828283824954186220787826860499582532270954572734027374702312746954519367202946176633116953104049152787488114534436122719375454575213149054218483697614418223725417724962251027834246636498729441471108296402226502905014416875003421829238332157306521737771981228746976395657808050767658324989946856222974201799618962051487260077279849144031759458880701630301944368471293182333305970976055002897278693204829991641141162559192753840602456117878546288185194063699371890473093737116956428464487154232969482910298016437756745031872378070674434883574154713660277904616054026595081585319414676276290273017628808881390916315421547088862553298997060441395877356512592889797004672392968451815502926166233614854805087730279720606976193033087777781718055251672031788019915777751032919943997557166648495350456890693656518052971352224972652733160136266136901646273750560019359691352440881568853241292428231708510278591462150066168091099017262585691229141849179495319980680133747886271992183632389874131551514691919651218860773198495322240741804300219440552472874238790759458048072436914618556044966111174784455163332318667408106597057776396903259771779160724384736247852652909672374571802330753954733452418216664206781920837429446161401238794206761488302516524681372963232134392882813939864543016397954064266464520689946592794713152616720541006912791399767180232415898939224688350428046577971772082527896477135451607522957947984958196983324742905635455829322829296892709584427115789946435787129363072863634479092246483820711800210988912103517827525095802605099987522264771980523453649189323911479546584513467293599407687346766296220990527450786651688464154541803839492294006935078910064966503102307301006728980391840955440407206692364960334417116775582877647318966074025429150687497673970929038816568934010090655986354507361904835479845250558655939406108539924628569360272382681629629257747818540711782981089338937484649079813374816157759159357210068453005541274642361785536952151519089754342964183737093725317455549747722019946949006130223481845463070557049433428531490217768513348140830824068761770786034253663165408895158232512322474348363973209219781732955335922186949830954757858873345704410559002034175260865854171158575196899298791835537211457668248907994183472541593690858656168346863910444191973354448726573069012469624577629011756931323663488271284297508797431150305579313936723864291774608291967488181133690368496911142363197513053312417403894426246118845384103067377371037217632816852272223437494502367525041668129562910759113222433484606723891615069510115034676497384884321662955558517871664348880156037725081256130449735999343726247103168334855519772324723868048308252232096737974895735818854008066848403291288404311139669001185607180948176567793374715428600261568147995237189992936306765835079244941906900663286701931275417982437684333426221753531324911124204633518434276700287458142395147073779693475676436724808840648938906347625534453238068569416924703078428139304544863379172081601141172906486327904088640522846505017823816145629263651278079948190829260937761034720270791598550554743780347879864779672618712991856749598566047243870995053619428821965819535138344337184206071248962719296105259310699054064004650004880512396438674813582064718472386174940183575992619246016670617999959981515486507222501866143631495320261317552464052683963111808479404304096297106248304846300613424071695077703005252658568790880766947062861485896975195876898567072069184918597326041848308042815054192730272664482951934489871116645314504094735905260123975216167138141048461463203563089568843622076020289828454569864796205141475264664612555819807649172280564358487052542357585883860210896055723262503035951335243212116308284560140044982231753487775983884675148311104660378944763538123505271670500147540459341667704106956636928491351410386304940732616202598516347612294695919654818943383634533635540840711726027526510653144798879090120950925814855530712259093947518755023524076001129200724170381242737342165283859764130792363600846160129330935490329982472811501775514107676434136041657798784584817326417516023423709487058395656845174474508644394161951736189499944911335550092150608561170753248582806116729617225845466459916587958332393468717152434965452879047650931525885642669783163721769120149067195498396570042951278066778968593511430023464384735710372423043060744143944039083642982740113928287695109203375646227518783635396696503168179831192882676594040007364900353696361671750540244380070819699278529039814790197238002873438439060128187255496273142013134293048620225087081424689540926263342840147586213561379588406836054481875057045358811813629830916894415204407458553683677119212120900415764748063101362799324524543079974835650767194956338650067357928126306835913376477684076583797223840985475857559162255951254485385251349101737042700332178817841945723455766822871115430013544326317091952670330394967377069974359793583434594281878696675831423580907842078794872296604996020959632195981803652954793479057769877123766436003326121965132684012385860405888662466714497452825691855262073159906950250482498394943357129004000801285700550428203585341230795618729761047927607509509611413116047072728516368304840454260061110282495607802635566886837090048026578053393335318629381126318887909350636225102105481597900627309907231998401204596109541380329835800853180602860450543585745818007145680197752139277217406128041663055127695150976523891002008665880256098996912164682748984254631639809642404141156006260457230452113903233660125040107032974351506368092234749137611246129257203095545164440461267318092594207043029663408428133750662618503299424930426995845150874526681455635760801560396931304022655912323630648395554563943354503421817475453524190082985778415277362954580580868392428046044179227681600330216449559968695365770635643691459375410736107877259774477444222951888511047384093715767359727644551741582654375678728365986897805715202578350894871402590736291376066850470582443928371949181255458309906727308427921268199358465207408045975675192031874870298307519236884898843613361202130426168548348812404529439968292970387526559587105007241444722915501720881410437591174586267181498660231035826725314301756020973739805146550118103169919069744034854120613740330360777067069950758587377577838872191946256927910230068344061084633567456217272780054879360656477608939406566271143615024314034759418458065385762692078053712835851562980613441611148057814424103464842107362655922760588580499464861583460431483219108441197662236099947380979695145123010780433349319665400172734461595591601160274080023521132162405537573165931980809388493517236445065507977032189054998676304604727289684801594700909765969618640068236824841377247675029077058605455751963761258267526971413431152100339753891742640220064700743041054767439247504048637469213716547814338166856291320538629646658727309861070867792234558161432806262523188545213306091228931517613481127360638942838477515543932140618477204797917006104044267516513239360599190267999522716201610592274995740658163247644963986204290788609220478192622852103141365812664832849754081448591491321955207808201415515013843689243378154674342332290666539440273176629148472751974106961124495530874662363719394310609101362928336846095719583992111843028299568926573773647514646408406271186291236939093442284826225354042382817453681511969141006416636032192966719986691771548805834428066756337366797643404399598426695381793836294193339689204741204225199816882106976460722249841440722003342099985143498854030358113594719017474386315747381920273894084367541173838891083246114626595373603878487042979955646302033039383757475577858616360951059777982221730233957796298680344368440193740131795011721599045532593011077262962640495064413014668675664571351533624062081292087440959277908395856051064958879117786191893780873624969315507308093687675417183803721933710179250584108711277107907518077319838405849008639777957718650892292259933530465634516767104100323731776019822365213187922929548367549992948530995970045406496070567201302510657955302144844584198564282828721523479287733611069703661979060983281337788535247721324009971749718217962685052156268783120106423541206215578795815265630131590331145597301828109073163272349000310820852488029500458052298728870138723401780882929029348938698506107190891739592300754113992263583111462096142480058192139225372050535261464823589088151366214838879920158894951632842456426909831028871268313211317936900900279957000430341470221409747973415919081520639383956258032839659515324986386585728365099577589025847378289780512848548562979174361762870346893778432611997998568684300635283771426677252141235215097581287711852776576426115495120277494299776792558264265670267741659971561604131950451250153013176861981735881816922743970709265181646353112430532892521250412311319269511190514140536615142141058456883384646380267463599233837546338916302363483856175860219586251633547387624585810128020466008511045136467286801223990776738033999554029824814981797918893257088182973497109663338341396720618319848107240806496460208642398841192785564575948224437124411934377933066968921422671136278093799225444696157090246108674894437535619221332267921122484429326360515801719011651839741473924316369583418163038283521771114632482062992984888082836922483577717341650216584692051132072898186258822866194214320982542316002705241699908139577396642306725684458970083193831340344518476959648169917541832178945307405514601176458331575889574873521433727856436800514927600011924361716562666622812370321145767710843718976647719921540647602988953661537692193448015456647567745866542780620886466908760354174229207786004829459465435878775239563540886687750361353713101222680191687560757493091498893332944841200858355519551703305649526996650314105335689963180906587639886582150354119813755325055243438276944829509300667930601512402477754080485287601863900084739848178690307298754693995622874132866498005277428514085703438909872936379531266117442138213041541899299580753811068840677889736011980047292352057452880364763395633581721464141791084785376437795210042001602493059437801390950657239348258992855529300357132058364749539743860214221528126825545735280288960409448340891202791544631214439428303100612537031160830263089127462093023633453843992981297557541721844309064827564685731835281326051291459466000336193144441752706455847986665196657617312325961175518438852350531616177472185407422165473626927090078237337595260692009215250272958288293009483212785595011090626876820000512583106497929494745314908076176084564888935529038857456838197368350239475873198758240678072329366892441134895100529399068082029529826866006004887932321221501298012744947177301767111041323064460305583869696764816424585970992966841198052837275428877139462864348407266182294011394257691441164045914381162167508123457557640826639821208348771324503921794397730603589988511926261668507458556273450073392499482074540681146183842778996913522810628927766043773788421657374139388335755805857499234396469951714161071084867896938207915163581691333327775244710664736363043982265143740110662994827477462614930189637606848096444991603702517797060338886769160932223345385077793773033877366579350952222497769436890212282097495464061027551456153178827081251121607322046945823528238262189974811631073362173673153456662643785281774257754985918826074651600720037153662537158611952743200287916546718234273614578957674759237133162612032668982183088488379661915410386937913432214858223312534911626758514802017553186944368848476984679024322815896628115445057831850679127741243452718964455508832517473283051044583616471817492865552772901708807831034854535970762006387606660511288146941662165530041416133252533891991134434795976097166512963885419518368137907117042282462804073487049786903682174218229385284057989276599222964849564464485855161413233014733921627537893275162116799596127919170113538155620385348662353035067262814989209477072223491817965343528022403794843647776349103082444678925437831516414869945551075152077164137676451013137205615046628034138501662874908330852303624257180952936538889023427443170744895874075237779757037415716759120450016499539780087805815888286927206370722655730349077247456714237346409505675833065932658901092474459552333524539655438467873125298859643088302429208860451316792273451425342731744210713224019494634239874549548378100290075244870944295470432656571324637200254518624056131868173071243641992183585518724397017804158410767613587943552669935009047234494218175064344852696202490062236128506492263279418741733532693170534772413701199233666149831771281823728342126925564082656551833071065846605172225710473218568041154076322952768459869590801137641159414942963665862540080400582598322790482229662723419429389804713727276811796388862206328496325680585260442564701347995529208872870882950695168417016912519670851750541444948495404548472302140261295083344732118583749654152478802465257351400982172595076174496363453900360054198177449100873672322165451639723284908220155384362444291082085222138219249237070372545938464309396502902994477621577156954225472469161905929842024097868997290357559659366047287938021051156847925061051378618480027589483928405884966116017685447864422094742433714759271216751825825790667921212445960446090667744002179344014968460590037180445339478711776381136590693544653893497007503345720303840934529513914028576163311326679897027193651921960623842268934654925558285864697500769588281419391257442741138873390432350946993228783007215174175612901190200330694989139842930144611635381916142029160491474303341631666323499344493819175800271912843407851638748962959735226779299091800887301609613402265665864399695463139391370620810367163902541800636842113765152116593135166479788310531086263514835910194985673822013566533331576546065520845020149378810268339888538747195740083256123356480931167189070729614423251726513967222184190914016312261681740304551217647429996881439600528062291907759630446603286868744866854599383040567433561801146571611536160994764401251917856921926118061049016170119276651818819151197654529797049124563158673583410758447432979259198712406404047276576387291732980534325378104666209519538810004365052360709632289161960918994552223535196912133645907732979085152295333945683167240019739443714266687321841033561820466134323578024231284755839787237414620127541774513625592385454594198101409649091680969100565669506637215066732553159155128092997079550940001828219939277867043558233862386250110709613981011307045962753070358339476203760339087512143765001269231409820629071043910283625039100947431746857721720887716530068388199969948139240715839604322226020802191990316889930295209602482876396710516875436958005532033741917363517915996143463754107330576816847678034292252267451004099766146306634300750529325074825128247048484235739494377599042190624970546465369774344457232574806283760758918698724667153865090416875404238730554525731274537839752323225010089050467541693245477565903426020546723398944229939433911480089283114910443278182530803754753031594091059960480589676245841863517440009835225990658631540055732035480740681348025153898121198404025537261457376839012257724185269976831904361281963939583430099837323473180857342890590227666654936599561742341026698993772121681576542690709435668046252306149667321466811815148065761409369139402386706378546952380896665562434175058573432929143406377102395577942676249512182627962377493237296954943183821004447933097036018050892592310777234903344822883926908378625712635926127069034230203140496726533246599858845369885768051454941555342181030531895048022363243972751365512989029197810683181049511114537745492911283345259802514724026145830152122010717837967933257589896704536686116048972694407174479258316863108757328007013237010434086402420643210236793791063441374521813195677787016379695414272116012573306426828516053965788668463077880877414453352814933920009355249617244526306142599140611122444100192696974897987324413062744737461320854581691497711580838933669724250829171936167969732821967108386694805068230213540109922855657686018251072314374999424831385726736187755535798753778418742853296448923156534117804672055861128592124451972697735017658509451806048771644330266186127221712104068179356170757659662260044044753542490559409510280691890650979973831325849623099890262704806652306516389627304268514505193656769513809570111528747368569777130219788181967263378332032184038883927558934730729261683285332476885190484132753417791169049857660081912879767428341579899767440764585720645367668269538319484164280316766798844609821161707074316528037355364389239675517941420368782503276898660029157876787038547020997191372315954935563445787684469216205953738463247143104327246183541637828406029157650842262221167557405643964055999429611241529243535866616343011477145821033195509621826854744257043170127180047494113773461661932925258245387866594445680516069072764119809964865668478055414930558290923868120989758148364978422012728362622861946895104973893980998573987618519148474487821483728012724975344233447934264641593077464519060917849414354671516745387953067545069589569424538382372194267841955373387445585489165455390107849257356094399521824341030089098275675580283946178207221407591805323620482499497820876380271875762963344401288693674356464847319671778760150410235620114126908841031794139749140529353845654841412653449494158550734474586603610635705241832949386183197333275066486085065299954454391774560155950188167715519454087238258692027473618495850082297773237412028572608218812809862485763080003951565453150501156931154081900605756184228818409419912012913876474884977606752543696270063708135381699860335733138780872858832162059370190748271859400429559171041965573751435420856307645626245443790912222618910696973051400263807421170099035876288308589802406920121708630218660609205480622005607880839100153227831440531612135449590436829689640702071513377224411516377877197494053931543692689477353901082460107028162250116222535594055609578342562147008781938471521052017612157834508944794568027914157598727829715127723932782126483484136656414781243764901357262480032354252894032147097509932357673224964459739542231741405727391420592838926719256374476641989025068241685022341002505855667383273105416651394282306414634430442486473674968308366671921803529025557001630091550318340105736350530829870879888144746125924661901325885077797025307967513209781326306252254631046538235409115159304599453006512241061653149780476962920085550233400555530787388192107551987823189716559143062523372907452886484057082968228743391257467547884508948202769613917204541580098744144459399104732538897086517742426912834140083774686107292217940117531001715319028681683560596185654672289703889274544293420400618706910447467559253356894734708080598249355401645397199363015809585793497275548650431854851660028731298380758211409392142358232935985174973456183032893180361690285722737700344351590365372058809632960677558617977287574768416198948836732399555645100262686322751937902931714865275260330642590139830179196559730357299271449158260728707843681662226150463058805178168480347467031724850029469402178718981313313929688098426145673436474587612104718671050746903537863028804497883266895211941184426985736397866435323114767223980058270957065446640538013207815297594607356691767118618957898989932911943982980514640844405961542657101482929342683769405278980877110980491089619113815248363636011049556255209183671669763199776805683187033602824791262125929225547435446196080967052759781613497923742668732393321592957941710776779153086970864370246884786091619392681393826375546064066101642648641000729411395270337440456207376323917526849130039839763571101889879023356668074366027677766374584123274839819494542663620330054910611935118714132899144736569053173232332335926829326747762413648983167948965677710532880984250056738795763617290534204068254928201759630635782909520241439210779364532658152360298597332627076358191448640990828929449727269677146310653107243330454804255276644269901223420717956693602716322294863083056270540712139117784613497471558478489804396477281368505934357596811333431641873386337885913163752714533811931254123347644902338825221495039099863738271426793362840464890375906730852010426174869037078116649232456585055816878908909883456624547350216351616992009086750840682031269986112548656913516270238981080641317854319392244715527061930762476567675430547192340422206894741058837716462056371890326674221410653488348884959327390704504975408962492601471240175778305164864631056034947496433532891669156645739261312521873644076271918102360974251614513907396853435331608401222689599188184490563242283969063819197021249004116271886210966227523318181291772217177540815239948898230834293353672721488379763672429467146630315434781378863667131194476806238185546485001313874650431006097825551319983576790388410392971047646258761085498241672630620528480081896013267594162997323973530582033043853284732722801240063476693581407911326540977942325535576530086275503215046292831914983307669688914378103358741749936079461874016638455332985239539564728446742387386595991646181025514232774987495394648525015174085210564764106010645813829780082594190798273204074064805388833950796697398588906412624238222498469442246456984442693644002816671430662322400488925085865559424509301926983260090031580225489342438797459134374627186342873377933533339164338390880382827317278297310515273792942451942470149346413313644963070819413223515985670971092719137190370113403581226562630690153902841271442119417958164958822772705419148946671078143282999806668064952822833843355345516480862085857033117474392928617056336222645670395635518222977122130885346518892201197394072701346963807237213653226886925705600258808333386363469810716233478187453284348905509372357442618106877658391299280269751262958683865416533278198934815559960486795640501990093463707715942842241069326500725591140651261670579466997867218009384279338528276966624153342937919572825479164282030962104752645723083996354038516031864621762889558295915670199934832731429001700466745417191484560800314630871713104520186434432867840036271620041994590872748341513154060371488895622303892826382947338297474760872302906134834325410783926627838479545616332858279907925412230695009959741899275696719987663235482367283517517773448585564835247908249066846806779909043322311763696986007851634155358241620916422562597508748509360948012923451444450522723504113758434145747555778225574599050641605369407007617175000604787708616584433063360332359743732325265789615953467316844386060790619396205747519461169457938684769116526044180676485086091585432995279829854471415456319185980506118489477826589139674340253600915501920160134358281444245619125049610412666129183861304468333289038466604771489029364692028295396041279022166638696479942871662861422251487095750276878083594533979621732411963367427017140422830599834577973336508847033762070643818895930017660787343015010720097926463212793580681667278437602554651661046160468552381699818466354886597710763954592494384869368479153751642088090317237078059144787560350571645914845231359178747999892788771675824519702306474409809466268269787198723676915722125051359358596915099296647601853972270976774545019493890195104851376777097081108456492058306772277925124601772542436172968523178815042445753203736234576321622285064778680954366933836573103913891190887860782122313271786819308347015536529967224138866586134802064200666792858362503419443780341968541863328427357834498016904568437088217177999631451464636001112123422034265630375909187060858589978215359153388381924740554445730110734681013072917833460197441972708149401637479682358953723890959533925633534446126771766902942621004298503868974123008307086497157077004535078691981617694910405793997053177569300953701467207198148060956701836283881062674480764651907575467464576288309548743516296562045377349674388414120989498485064827232634636473120048009091776939870988803197604890743199041725088688803070748308796172000714019667868716645175755426066341950729850071634594390967939113988901635357839217992229266614764641523911589589003415105654691337276504530889337262498976934353743136243065348524521286478811399367657589986924322141759610973711335073722539670840854831743848607384664185565231026403599756347383544306422944683297680705919295826709945944820166413913314391328287086883288628641237944161710310857359030418694887371834913871794331910605328845531417437791893114770272006009988310014538969041130265055819086547984524154422535076429647800596282588803160760610620028084921216221783564404290367735791803326781634318962261628197268697002531899168973059019039785637223625462356518665214058108130421226042459180994571473308669445597736422169313145865538235111773540743864978290012474137296492089916430328666461347588240111861663694208934977512809798763647375306617296447765895589619647663642095455849289381199072687701878231704632849950437193262180717347248090455819960539742454521134497052968770937395753189942763618486042875354290376696031208117086830546589518380345449352012474981498307507250651987553743443131148839531314418607778716044022188109063463676249601378132092862300914079693713025318500915561863127881855356333519335769614606931849530183628817580510124284626476761661813544304274407483641781062472436838244117466661911757438393787430823133467097589791404057590424349917653175578393812763432457936650452448752700380602299075387096591752073953294360335865883147980479625836498305829674759645478513819137949770819823217519441042573696089011852264403119510913444952683937506314117349532615909517796266971217204873852998273201303669670267172935225841220509955600727203587491684874139648864753713443790009048498680728870699905847027915136589565870565349702944565481154132869414172221444539943028148787362404559630624871045491854394722579374281894230082928466052317295163743507484903365695820824930843019226284805525750805936034925757733217047281580314873689776457967016897598497093220959407251307343701473611698686464827830577329673422184913642624435740688877549522768414313677692178748333673361386295579909923554243272805883512122370654066610155632019186192111075891289176978670459891424489788793105182491446364898531384064724847465520805660373933206503379205213574869260026787894489866182149124744661010702263281626053130792158833776791603520903552461609449482667886984685082305948473714092308604808281964150203302754538800429745566464015559062464222148308102720554444572642374763898301197169508032220374781865713762333657611941188750115117455205330467450068955135227078843324231296716675473656643997317083336314986134682554888330176763947344954242211614451208000790898922306486675428209488167040480584782832115922950368190699280294532845174516537438386185762115413473243328653331837343926946113005029779900000631480457512042561969553482427443522603854823224115647792198189528723318840403249992284327880919296135609292369935154909083278384410357543779917689023957685343328330932745394207992258597112574179267660201525809735259708323097247947171414043921969693149880921437065204664869076652378661824442760780930309781915811881184830463891566738254003523960626982740242143137180181171646394675989992772548889756932991018888851641900619179762275618162095788906514855351893819439647438362749232600064509865089940819648752696493178756730443434135462652710088325553311061940276886059961311520941044384950873734411871499868959603146152591237826001940337353153926059669769057811431584821840624517585989996477996449766559902513248374623257737379264745765280912571139931176755089305868616053913693651204612718155100621834403845368805043233716699040749560971719745478658794465090570545880953824622906541213307473947840654790843633294818981459532226809208010136931876819591338305877691383110328687302687876431521674108393988690116327886999974169552856952255547576562192478977229463234963878428238060723503384343065573589051406328414124283336935909499139959543411467067560247815352568681338796403123069707027556964805856304445598783990399793421225758962634517747484699239986829988810158332976950250918324158898762546433411979341976013977636156979555825183265081207722900970763112940029257718911643534562382314229405914684740865911701534017826118817948716311686869550359944336780091107373105033526295502065241772490437958379473556043001678063947149180958101196280742712128361269219829194941685278979172026588787422697152220387819515151462545058072392089644578093976280480584551029521804712920208928498869732972589995579404947747484735928667467381711260440042297522640388375363130906446804865407680190457405627480515674929374579909583301197444152822222506389944758852966373048588273742861598607832752427526314068920117487545329824419642876529313227691220647839063482856414799373490564997396638315137099304001286140774021274854753089984871438384271031580541613340225771605673036152625147529498342834002938130205816132993022730208265799561752598689993829174644810281634943981673080595861216819045857267410347974086986820170598815335792363245088057398427055300133536833061948324753950621498292608007253296898088102284385694908478098190748941730801575819550726201444344291884691706684651550455957095358352759004668247494545315522262148173229665375831111851325394579979712929174551027450730300712428649586817888307942609488949503990144613357495840688075962346472873712255225142951349933705462121728350114226324215140438251457288868548346596233254811275391837273657368230313618368974192687557004235469297889406236342524440078423603477429952577662223777043357292375246108970673564179996609510145645604666310479805614340198206974084454485704103960416344009009161770855385310242118167485111510218988330277725941151048905781125484563612638685301480677026512793644237655798916168733086036146819563565826786185426824150096476666073107189980658235684124886764227153465998074022871327096690048188162289374494817581674743619317319613719169904359450083807567332206849460511234553905878692670082245639288887960418811506985720671944575477735373050519266308187532522330735079468766206863387985749768062474001304398858510464876572666157676595345385921105045159103525737470846160784237565954389285611405011089721196062770401022200112092855778724782785614605114389706656636039501794304277576615695637736120664648990099104419018500551367481095096390113430643084591185334590947378568751958123926220925976013928770558924992592079203675019753675235058216895228057466493186383016455174347189398557614077554746352663029017137526963364744296067970192425598661562303366288023195693939064079008108629011743771434622478790370369527181099008020419384516205688492387773552997634489810543677216324506274519663006432173678127526441207785403642368309135701567993665841517498047104981248684923650310085139923525618375676913016647427914449022677410578380013313137943251749161198733549195647124406337904420411020404047617941674240652720140201214895593243339580248253362342804734660601076674594969718699796943125434262925776693714543632598316759085809130620486724542207968503236169016240525664232781484810392927546653010415838241274494950483127439012527944601250178954381000181856616857323359176205049471872297400813953305476073500471985797479084536896895261327324105545558105272095085478542513762065157132807479827146801463310293663466930556894596054929895086295351761103580014391848085928211888409946389912435126981608786793047199311053877798360957012008452448888943306201858921071321310185197687459064000134713794953141342437437092520342842969785189197970727852496690621989534244080271850854305757008316068430051742884330820880898371234975490699784605892920968184694542815696747473525650858620871096240300625107394727791304217517031717180099987110866361925383722444946378337128067675335413571378523387332920633058028908556642707142772942465860015163662504707354758434086321381568124449166877233437079300826647728573870791874830631670030877951553459902916463090722272434737314931064161177524184579062656383072610736819029592236703132514091272241366681595549892994661857321987140578764250860986948984234475625524112184058107868296491594215838741045270298818475430034739533457565100545971824177463219493801458209209168224223320234274163226776237702169315629443088412465487674940725781672181664639084710403489127764527368325583086128671777207050196200112490392646071276800722875684146160628291811279830705464940676076965743398908012987931619170885534716285191796206532116960438091128574760227662493954135358713890866676703896594168512187458517987374711067653684247410049519393442246126640565019545911305514472658441791191523477842516873293121218903009832643033376871696209904381171200654299972721056944094097212292992861366954574135402404347672755607523888665438123881847499064893746868778921428392703495371049956997988031626733456572743085884779438021482886380110368587075216309705313090884271131752402142684532812613009123153788511364896095219901136142081791740574245320385051275203758058262207761061742035550638659635608925078398600847891483311137233981317147375827148410866401951772368970954524245066409215202020224308156610075596969479688571799071664672003101536604901445642024332628047969318127479709746867366069506907460144642879639779294853676348306841356997824489887990499894574226690295790675152979590855023005866439023068514522389558300122269651110638378333155100552726916804542135359180334018455516502277757880358631744251723735653586112498080143744195090145735763078565843630419250558340574956678516668643409099501036334842722918580288308091145370120909886263253013671293925953921399486258654194498484350877618650005865417389191689812708921648691771106963140179338755845598185546800004721668707387135865280037488285333782631018540102603794951496247815573964005834454242496276674105610282347987534280185295677475322461757235878473851770120585739881166675739765586180964155575677050562617097988968530424299348972516053747406156693255441418221024106502006446695552629962570647142104255678086742976829084737366841537181892024251836140995921607207999051555159831072367876085017917005970434055550721892810930632090858615727067352158006955961238627283811605861090658043181948555808985826125896906149836027734713072600616493740447559337569051291250441534768325684577175973594813064216068150530174417670982407942860437607673272026198102100551938310874787204618250163147084307921062148642191667620295033502188454703591137150819773375333182369692350508459948651539570319564996739719828879781420297145583157493653022011835056701788294986604294665933866390568990539104623396588392387281197005913893011549944451491883565034978778367778116888686095773392295917770217119685577815180644825727906780071792128896928830915149849341377038375601491272157511642310503080204755199418848313190618123877729419280948527734491481748218638794094444457482781624929535086920925693878269077812816202760392550905710058418816443675460195884408484484138212950429247873523190124346274861839395829883353805297869868910306574435123768961658481769829901835954926631944410062997444240918556777444127991584932855369137705206117029597766695058349485725110368172232907581817813097035858328089350134492179953110732072274893654480748886937418293710336733819804558211587296070254509944402976021003355467745239056942975119238101246868819076125947460170366556317776922457282794258494084038298940476996355090220607877371343284019214062791703555722347484862236269764246161833725414637754730048623570115266283239834218127644730455532493886746444468569281185133429164615501566725728184257308829750853349157489437207550684641627085408545842680901835690099523976189403136124687090519434247332671293152332657449387605220812987618194078954738887550692858591877757298907829831065538077502588313768327570476795959455790149433011306816060504189683775747148095216022780214439149678573001868972494420343463874563889713425001790932479353828364904564873715074561674834284591408563052556056140000814492147659556545449455512041653160612481561726639315844225769459256441625079674593583596041803890286469843175748273875460533988358408670235204731706011053794985553707731899410406487626346780969714203365707485435530857283997727536104748687657960921374415830668666797428422410173210104620161955336113568834792027357642789161086363335656148594219167889250558633152232407831584788962943688190430352482851271323326897370773164422328179155741821609197978235498659564101535791074083059685182839140261675372311827050535188142408543272898002214333693206063967652908922420051913734935869876972815660440578024890145589583486269246841566574114453271648194084521325175894122529996671538503531083893825101034678785689358914758449051410149736800780909147304273865331760197237612645190422441591848026202188529780961604136753115310161834651804548033618145928695417885999601792476853241315149182651658210893679165082989011557804289043398981437703788382725391364830968257679916903364373910352624335353298912178768331734113214891187272011084899602106869953639787154433306573218658989485718752392112916939380651222424975172794385549174727904086654343292181683135800050563464751885580045954543816095403748939506307318944433104326439282570820807665592533046063885267365799528422098569882596888384067713210428803036322526598169123578281547477952662212131082864137114717156963857813917135579875954576800035111906537194941156577323048202388292586367492722553889207885932423025261550955043321003726628729875317130624614321396726431848661884769828132373505234720482984799147086163130796954299842898435388775582565655885545629372805026319778636765903073008245809603848065306706312543831514175423360267746930318071454631345111436916449291475204686275181699235797581794865858948309629313332381975301319877254751380528222423979069555948665014410804047691525982618420343048749007245872397479469147278800286291442484333427868698624273975478397751406661837238399158668037281130877214066220100527102376279111031761425174294509296170339567664854329663213886184105342454623548700635823795555632621846370687336255278319268372247084414363208950457883169696963820925645528971185434646543130296708740656193623550316025569279104201972592368174382818645019243485092321078944979810876454327281066730990993314060669972735845068836922437742060566248827387546254188225100027162568519930667634975113613997841693159577441557951479435338728329896043975975910043397061121518208443821622228707428326397360207835376600367823834289505512598053946134497056604631613212436604144403620287365572310989908319665662673087478105779697654408039917709414520798988297625630325769991606548993202216870831551368201186290845035833838149652828872693326378741583637585510586510035318064245433868016492729886612952861078709765828782099798874665209968970611436288970129428727533861678055844812792562740102164118775272465425990813223151969941824317513587069434151970302016588000803313012612593394357082099081983080094437517236309362604856396043950967134677727460006377612847010235862365965126148932852871866127583286634300145082418852951182800045090966542392660170040361246488737329459486023624775039744577337798400360087956808586286659080044460103315974717626022501741795819533538134786015048302671123388469525481552482850377222282424362689031285762621189677486667801975858406512412922053864126319606263947783362398932362612787945083348648982065536840645329893029791518924247792160497700457162146483032548005718452008937340289582448237448732846102497864986703544237937134755254947994312933660838027252799916337340510127186105496413964193066593404682097293063324932644647049596925101157812047696859316580850225249030249416310185437089481712065086341205261000064995540944318770207008167135005736499751226131814617811742389505636401414933765186633346416395875508695392870874231836990805062977769269104231183698342470325230096861945768464712739476936620715074654695209316219378912575641332085954566552659598559321386360179917319981139403815741037383487241308413812431742251503985668585317151983206056215057965584763404613380768368829677089589047371557562653569012826238521989994031250574369181298894797087546169354958249881593708544288662378979811515600002256911020324927024797357067524593606486701484671041884116167201910344757914633358814115899226983159644793711125961913256655329045889950564887902925531434316277039744966346835194793011123801588574516265784100062149601131779586672633105566695974765832068720601645605613901920612104502158274676892885914846633822311787690954388431806142697998611293310760314081599066662778156905847538970756933727682046076333231576507138232339792537950198261737278389435865874772140956752188117047325001691321078014610108026703651764670075888700031725258796112701591546940394761675292075689478409993138503151722720396567040403899686212581506056830296951390909893210460528889843884220904457475280429819817433605660767464482383500507442778557866916060910916955929572739918991173499270496649540970428378489486422368748330476379792598967087579277957820725601819615465443917244071159648634972746360076851246361051792599930945356412228950326963375401739617953377913229138812764548325544366035044380607088137699250472289433339918141527370533913766699036199310533510590703798426299844759406583966046763485060856213142818492441884482090149652813518583538414984572036426747101701080069249338165461585270970099346136337119337282682485525349361029760757548817923643394544373394189425463534115505048594670627912827206676790797643903744048880395249211488624762176935430644457220555304187305217466388530491349741748660062282112176150270371921124809602952778489561121800475899798530083461815664926160873347590298781432863418284370160361006427279753328611048130193356456505678282177542541757357043632992030626174891071517122737539156292819820010288736396154506928040266144432253613412816468087555601114760003398914290256321380095424079175195592771663537417903134764283042230326074560377421246370504380568932206694723916144870106008797565499451405493525248213059285083194065595357944882584100960214874872137662004997010890167105690856142850108312838729435210739128788721756947961468938017496194435411771334560329707656035328137975916737096185802025622148954226753362844471189886131112326280799875376167565432994689778053600712060704302664344579508301413494004031253684626210557082004186596587369650693934080743483002984770734419364115735943136352466031911595903865408960967371162694585620706700521703548710749261255223400955307921068770185869259414349131473447960995900642163147320056776920557152876801581236569008696622279323646669228514314742534457689266460354916776504665834726071426398702452119780298035736893988429903604838129943929062224688993883974477913771222215639366407841968318488959498241159782243407827144329704625894747215204296353420195466589247450527620724414586586950017933726688210661078122861437385198866770074598424266368286316654924215676785107392730292295900052178866705812768777891571258476923421214051928236592362163985874011783727634157750639666248418077621883991820762142767419568344624257812871806147665112952311832237285921448986338281743872185442907107264984389909483378728640909821324263060340539379183697463952616601758710233406757091804176378152763747529022549308972778656029712551789662730534916899810357783071623578293127405642090360420055143651395609683897040530254844416240219997120062762813656759718183811986884261912094034747588783806390822929621776433704260179120442319400719936679274787884854165321167498123995835778614306644434184000734682918056204669252395738209211035683141737288559269419903803577422084287567240823231957858352041374761500906058724911914476855345749052236287969326156863564843743163513449136425611061534180880592066894855025672628807311128385982619305237863448138868662963820019842006279597967811873151259889986576116445245301844469318406253558063592504129240796424354459280676860057610124952767020126266708452623627843114700700118666235559698705931712152108879470191270935509368133598933355859655281436113474808035227794675645684510105456455392248341725284597260531408496230692166830392936933311035249028520517477417451352542069984342954366196609358273642160925983867673291352558463253106338363601675845316502990915417286035997540170438873626351395978274929553441772529108733418742323305683924670868816146704358565892537749225141649609433155940703482087050043621901232065527517936767990903777904554773037230607646107735126185175430486402886065225229094516031936685904468465603702471984443138902148327552783727025711996752756100938545350578451577750240937238151211391704918847187264169991039031637392181597368698733011858252132352268203236890220254602754010880093633770431124267571418746741726963957824673375783425977601705319774541733989810073928653537115874545099778508208922958842580912955657887611371291351886237568023216825013820519795604650991417171597633218797642341984383293944959073135773837903601830910599383713778657855337223582783346867417162951303358622601077516685917723444792634550016896044900138346794952481712147435673640000075933030659468427012748278969049162709945615089571546028771792370111464750659591929250463486188534152237320507767422989758276910207344427682728426277126819641822796131231676714879066280421358862430059217710523427507253242282959969061300962027808666649327565281568447780085737721994344584577677748980462560080959092846405312336387399143552558244911706256337643492724850596607418544056440190734583671342800522055912829212029206403721577384145922237011083489974072448078727400169650031568257365830849584134836743599162377150656629139068120720493583039678386852595760565182652979628673170039012269420963082117884490270079276956989523330967650931084108607271023416016253280007400027685041096770465922113142844932369778174899726708948616725608184208866974476895347492193931353599090907073271622561835434046410337686726891613708452067605525539792874987951072144435970940827310960715194109595645519465414701393740071918185877489866357968032518783647332988187599939025794978875058630578321381704008636444946657654534677939597462965186720441749809011432193967030207086532974103031573084848078318293520867451014047051807481420993914697445253807132536144185790774664487881217953035346420055952755223837048357160559735834003429253442057752584452941468963673451945006403094172170257297981453199937238553935439755605288504045906528339924870661074141088184034583243308583698796328761583137235932318839148388979014817343187705207851117711492264174564259293122805305108402671005207883134706841641635159067489668756722328635183463945588130003570017012456103481842158749273194139390941474200292120703315905663007854913439887271878344599387781470441517365963539283529068315588723817084349633170563176002681101875602613540159651088452821942870762924950915461066998599303212596041092978959302227042990828383029187788260267947089606510226034047503835305178872780204296792050754286420445267552282500550078477779708758662123000942593080019653077010519287051502219499074554620660159201721948330444388892250042705687099237599535884084942551611883935737439410613404383711455290188250290419005453443926356985479898728247720078350002258572373909661131292719062250283173471029963808331841864143819616886924519230865307936130577796946196735938567814538004664170916590095841586431527439836243843963395363721636201458112827420471118461588895489667840856471062829428249439111511258359826193571996442053211873840971574631355352608609062124391637900629081539319931997470463080471510879519749101748842327910478470020191814482865337614126895470175820011110497000232071332210148389595294501413220111140740299683648940940307923331113338652138994973391367094728570575041061883459584005918602751707205959843671449990711934714679286391012727223641608966593891629478554366310643691407554886381274793000261357401710343759775748046724872657743232835414197780853303192269329458171280171059554366370559501194870337962389575848681826188922019476673081110248930764886358774894975530197734528215413978157524545072816963656440880295996060830302612791928637774199808342819555660535728380065558015574513754897238129844452163536554213822326304634605672402502208410419651952480408838321915358356028078424144401945457819300314425555203925166504977435091457070271912130704286999213503168004484010707503366223299191266963235973298634474398693746795645699419163177144034893226605908543666304679354398084696096550728826860032524731212322022520631523520706045457152538549017464323371563870547896004399331753496212829126193970113822947181184791094200194660466442044857755994741853552277157199306140543953409809572266716157075452319494232091157890145951013360196500370677188532258928136773404296226898589606267391818454522708077215669948333655187030314858394546116802644802316531175993584499598531508988327366554644989224311538506045376080447028239581864620908535759001530200959387408014078587715069273524659619635259996001626616001904090865057788272380543194738959966440973903642197935924458392035371481054492337422787769137207768460525479191561417146617366065348481212464978702470887716654568159482913235881699008999624989510186636432822242726885534074975442084022757400070730848204332664356103850432504730177586212111009422616305000311196729022304484320421499296447538273659654830452439362974875085410050215426756351586564458342602131581931729163318312707786279349714575726937888275898569591410269990468064397926040144835578652432375615176412302852076188625198517883110171578106774602311043049690263176569623982308723617162080448215832679224802626849956911452324461452282299941082618114843925861980450238376692878909111895619268018048353729708309908045074793556923758711911399157881853330071716784283353831509324672601949169765140084147696515253882187829561652044688899144509922071955249640296347551535984934165149602814359976543167074825583431072282290048618053133167906829318007792552643000902597359252466825618123159660764221845013532038799973165011537900574327896800475920894733787867698714160989402564329200576880722276140650369358950531668164380022852847215709925519446918202439928343334115975128078417406440301034817098760754797499139680799375935728815616167688397976350440834037004153400579941422927146607968677691872015822415099309208020908031538547377708869523245248332644851303524860637362967841430020491282869524640477117828704612179412223135834720078348876719366349279108837750993163816430145785501535433211446521705200443512376557624987939793125776900700728005892738108661747589551060196337799030241544711536899548726998324003286542388109697733623820860326414137136386583406952655278003541710893606902309448056954523958239952464196078264436748571627982592364187089864215322182800236901691139707415265191599581250333799418388531163198203211968160688957291110530302684954757943623034855166436486796191480997593351976910638230340552609347720893595850043637994470976336354467988487802736761782343523581319041826031776410627579062661617842896307508082390592524805740293718322583936430094414112466836223543883100595985804114347405964660179034375051099960097904316019264665397180518880985834566842913403088852434189344703954931802829251197482869539900357525104182462285459981627577972760559281216261208547386991851579586369548911233245108931218973877580086330076287371131276944641783454008784985117418065061910044048698907643905108629644513597665543102365765185801971278733753600360601820117184365701475399385469458736180420454568975190414539141868158411347633885845680979215955197765787546854559979332093601719135958625489408648936035289457306846515464196850752216299874517519688421667346097241264380228015813704614539813786091941902772216997292893391308789155096318295954477165102093832955328985355789518060814317312000309493684560886318939271188176559775052966887032200485955018548296707708872407195470092723528370345670815949695299557880550218020324430871739599077928112095925824226457094343995179351857750345095582029912669991746967390010461277686404827415138709630911211761535155812456410328929359492433636400523784384232325946233072106309383697729365551774129742013225331751589991734650798328413941487419923492585686314374266619923326221907427767900134444513069849530740050536239148366120879097549499215309069131180726875555176463772664050509415173956570169592849629804612064300779770497859197099543224696586999274505556562614876327351913378661644136280531265906543699061124437268009809277664715979555810328658554763379299888448643066310181470752310563349390119625131321201248247850371198371338169752662652551131952586186619853056581908950058251636697890662397326256104193062478215539420137227474054836895482314188059889052289007586185017732965928791496644526495728675286111015011074765293862033390290964592371895114740929273743754512276379713792392688767044162221066878855401861229821920338365299804724667542600977886575436563850583656889363910138126358923408535037230546924473339048121060957999324879506679754828824531241120932492984672730912797589770729164189931225021976137528547024175905222268886497099015609240797803271885067398846352591018449724024959327569145805851262729775207142625035243984669634368225972915036777679624235541561480868720958405304630181358309674239137755011479324741640695664865468885779356104536794214958087914819603612997950190809325349677380515456466051148230954103754289601152765626992001270880323784735412707552845083534391980546852371767742885010134377924262763592549994167930574912931293953735634164434872117775578505109551119958600503452371942207727992146022281652071514998893937282137386789993288681780037831863532636425249537256560506466486751815248192856585265012641944586770424899965427405378161591132464622031212109655545491786516917992581589195598584187818643766393137200513418850541842889932538494045152167401061423770787410818594747471781996096018204590979610104267825579422373383162102354030695660948054810894655986139285716690682397349458562544586756462874133798827609092233058957595268532315274540068382173214948014189031806275742018594621058164231692402172845217532226011434256341393523461881495577196983519392875589289682708732175442672104217472438641343594533156471270723454835642978629098262784104544499964096222891431425820399482799061019051035751531544491693205910283420637117957023172759718754669444666751684510290822039942230750954013390860310307339482206590877682367202387234267226958273835539770781099871741279051901828566486824815461574743728770666532071036655985599143980427878217221044712960799657504721609343869972019778065603037193778138549303377545883605886487834645062645059521984949231416571624455387180098265864880379610968720882346773313612877199482579053045963167089076654323469661033070505462903621399817474487718038205198256666830061826943530536463831582893361100005964915073004241760517018326290891013316250629743986318223274029328878046950582511878964717032173213148520577635419748077601875452292503600485964191932705400880105890875931898055740903024709744756438750350828838031507709832616708155883314239896800162088031196196477287199254743478621642527030391417919624483005483062052930128251338771385338457115927357464228883499761899841027841303433212995971545070306840275524786162981412632977598227784111591941653075842397017309497984851219485036384330971331153229138529784636421352921672787873992579786957928775664113853289096431816497446365254136519342437770531423881387045048738071206710293392206142287542480946441478210630366613715688347690033843279877682367329289612305004905153355205420633005697843010789682051240914346647645243233134433235895791218055781845596642356071346712106785934739399898350241940800664503531686044671013668143034713791561521557096927386706687227708639402766020110356976852472561334105184134046600774360736636659752554070395189577305957900243528127216429998932325957623893256292264367907589328748304330273110218298165932356299872553225071976547980526878562594791447580100848449790487161943512959321520054373940531110880403899740008125227325931168407302928205298605072105792065308808410462088385651125361002359220741529974454483661577103333088915977078311156277142212886465238142185105872606112039847673721225091117414436159441882996740245642965562834959660589813760463730425696614844955732640337017506151100707613332141158073125245746392489798420543519936664657832403811103497532764978154720502617509973706187663132083730043092405244012095837903093543368560623483564281169008188953153256334180582579704836255169166909189985225895979569357663538058274260062276905566916665921990193324060267273745382682749015409989947397525185263185277611794090458482154861752658917263199108607132554557581214099703030991408622546981926646636055035694935153764475953470991951153745507518023415468702988924937375104175762055947319609313991511294663463331919509856589943236250809171235469345339911302282563438857930542729604463946978327995511887233589931802841085026641510133679302027206089429385003862817087655326569893647354547099480526231348981866847916010416522656240510635384197704104567324214805314443962719252613262045588081126709361888982538951984765403352139754899902727069609257742352062406797890945379604694008178308945364034205211040780685251219178041820750943596259145728328020312708720588972354474832204965450407907449797183398218302255263549991880352564041384358117306716263720383716020878668637856391413305600128186048010461612463656164379222735987609279941562935288157549332102255957079447053409375921679564687801052501164281514726502978482101543622388447149930409080731549836901228922854595364518568978002355101243716371543566573666627109791433837362816368433745398145895052894786833273318183178015769988421472072616718145111322357118711864295924202384178755530135093349610765525895299569134520012698540203429652939974873556405754554310444921506351926230355962922388597390484364630482322649665539065921767324019066992849361614256324984230899870323147355823596167775164813027597227446100801328973962739412053836318687791745405490318452930904422342631689027755334391024769472970611547150772261131503304627837827025848352373206376082854747795046865318100842415601401815471426310642394936843952598807326240124253537220770274929891842441868460026873922450693129786771857028612180922709802243335925809612898887151048764482369943167112909662728314502108065750686980400277106614204281203355082817112615242000186422406747060957615240643757045581890146580239377429501047043203053543730497458903511012171348673650710938039488515214652276867370914675993479642856770022742654297589571872478033490481161522150230928035547067326095607768406416348592455239580119753450661023793437412781187721040047660065217420131314326961756445284167570458020508112700388641793634080651691747705065115863202521763143268573865020621088906962710770121138460265581576730192201538204938910021054850886562278945587484866029704655543469890019163603772167216342740746598588178557699945337731851491395685200554516458408513951741344385665725537698344721849226718951006529190207681669094706478546072718693821768774809171853609529767633392016148872344494450565029353197373130461183163161010789964497966763346973547466105859803932644593076587091314251361174319790640180884346718542263610516219652470891844865121523678640413559244154125013170248420599474890636816007184085175783944962462226133628196473222109387604075387742093866781463218127235518599246693766699220470979349424789225019465234527251213710972841126406398263675939942098344944398327814559447788110179769986690163508789036341807100103628249913785796757637118132171817623610685577151914088825645552515247315370396067753925431811530426709970962701647822490885796247966035372077968773042109621693711649102176312266879144935748170705431262436213996895058678657252753686979775182449633491724012165733162007554548168137541852937790619394730773772644425783979244034742436654136530697190751737541235716012241299642515276494942375469864663475085088190040574423274815239690546125818818294575784570864631808488755703768899012950041680664251299756416771835136731401343344448172918231389881210574812687345991661651431269188181911815819526890586075991255890741947990194276679668701847160404118097913568964978895954811642729964003789896599938453662126613837485844046919569310277313276227239538494432092888315518477613750635070988075591573657295094742438690844661569216905848554697200503390045253520058209564809200221280169649490229542473886334164196998702151980072746540778085392687232350546401769831676988028308017268067373314343502339039290490691014153928740490742181074360505479811407945227684019161838794946927778594494396743362187905000350158350693524530170422565623093967789965415484894329065484766030247719228685528047445180993831750041697297434625539792013439092684444593839126319676377328073082598595812988026093635931246178971108630369448643881482527133723554912886289212967247216984897162963097847535090501498383931628833683188053553690302325494428060360045965897321646366768841105366899695846154699224479060760745508682254850607864812284674766858832991510683925783987387189451508699522365271691850501892809456957865223000338981833454011355116785737247403426599093925672439511736165088337411079055693515669773847939992122733012557048119802886833742526257350190242430029688434003410038852675185510830813747799253866448300224950646084778381192101160704528762359941752543898680772559628934788426199147194914533038689989946566287228858078992236581886925421203565085128771490651059129319357068455839857229225919814001829015618330876431278687452929767126669769246591583570135561445084742575384211955741582221789067756335557173397335591726275051376235279979260944503093538368776250080177970036190486532868550285969075543356938347281810975213861548039835344010736294143487203886071115862728660718603157415335066713830766780797977587722167421646338737420716523784972601026401907388862605389924827873027334530642988810483246096604022000881481068842239947770116038815739128454304364605656533396306416933819824053515387540807739066662736639509993388975672262332340363865017026960416563946405441693362557518497974596325172902991382451773526646604673631810890738787213704503826780053919391174655587741696073888139051722141295355348424347696578264831558920131040769473001352100433936849331241031380574879937453805356751475022649990812709236808184717963957874989824544897981428631617183924399481484797034702430222990826562262573250744806540066565028462408757805717364745856421378072645077397818672342706747244078579807253811525819270123754214255944347361618509598409426131429557566330137202811162388528482960221059798873692440643050682341566876083358408034568641389914297909916590768815254542059125758960112315509712677451834145388710109409737309690934207067502722495981418073923413398394330763384619302745781252145356815872614301167181686527697062852685181872361203904968352074817616743474144286414665933644471681345562454103996321788565791363198159572432195187073013360220275687923488925330974021119314217449344650968705198273626607536272860732287328244813182087175538702427236200015948974027373292555051406907838022827781305490112125819598346319433268421026959466857311549350137619843053875151892015317065961539001023529664905022548821401983547580469148065844998335479129257692162209734472966104737155630573640767767325712802123765785704887880020671263771336353019559981434707291596868805135653289495942972716983947306210256379884355110434621078294234259914552763588089099199709066540716573923160391074113463844617057383763162641658985411278985846893544425409361370641350528672624377741058439083428314143271398693071382705772869886894484445296303873830156003214274924775787999880270963351343694902524818766031314640735678321572620850082673603912195974705590728029521254532846235166951206702429540841122462774688101352344782983433501239845063120224792474256017170222253513908989758922431525179130968470147801721728636288572744574461588448712029126214485917796716878961550770406830190421155745948537672953321462037372739048442314780919342903214426936308999520224417719282023083228937384221903176993393075480902082829588785096547097986709269322696224880514538135652104929723593990810982269237972919721456116051914394993627185984439862732761443314687975426505244982062345602763885237154674486321493424655498267445042364793465692552086752747323553373213188499107855953431470405023016494654179672330287720646130972257454246896547153022789549594759948278018708269496182566080806836166887152220283807697007417124326183641109787030830039048460421072705661705278971962038193486712490522777992614174230312972345358195969768715980174992970929085946017412115125921492137254343227933984720504419516136849053680179472727662116046953054366637482732580369942126639033320710558912967224706546492767596873289740752453875072651708139665489465896535431137900226562189814445461750922688653505060151343105710787939275294390715528342660992004892070698548661921415593526593588257020756288583845256354095794943615215567769947567068108665028829869950136399968381613677423840614154348398682429403174871454361598787085757052149797718447617369299558624663030736791354010552857221661241355495725111236530626049998965369892237106202473978785150874574737370346185704167145997232394525153578877752442912427662529785489574524760687495254348468550318182585666489622174588596986068849256308105149826110426272840946117952121038029691407069243873814809554128937416359775762499817879648778110440260867908269230537382348008450063210194344879524691408706729917339238772160846761359717069880560579850332354763699932311854047842344186351660593301160455468434067699143006160544365936078109252163623936847131136095620037954223301053414809981959560285925457456212063300430364777024736009195892324585550511141551662472852056115268727049870821211524406028709633625931272283874933455605796851538988120406799598339108018879688704314540124376463147118362596210074118242023567100094883703054979487258363544328195261952058519834752855613609265467616681453815729289054675511002337624797106675591719632441495536947894012855952564955949406506668342242912240512987656556564455009933632474504167463184138927087317073931874271979915626641775553019985106499904162986307458455495983036951789335439011721117542563727699424372937244441864940761693474439909956597411471010580630231859934604398756210771006811266827717106843581163515747896517816948556220233477535112011845190080466041854444230605638703113835898269311510636034297055181229305341502925547400868173967976982029634111597179723751004317417912785312734036032711233636285570511409729145372812262467272768601962090125373475547812934852010295764823017297234769658912122968931914382371612534083752051808999012199541798167931748770412479740390305059379345504377854760041072983448702551049714869945459419236973861293064491447272049212893855898073266932168869697248594876657088230780867087631888179362355136042084368501599421356500633948838546338777427904797197345837916055001773227943225533010235529767015239186384280321046721029088152240239334562674184092310922811684303858441773621190426218937438005404324680717021303825665436511876896324519699671201500975319617176683980495341954284566129095436666634877416259264777603693930309153484638323658155513366803446449459227832871846549055633705283222845774377536569279375912374408952412822453115054734653818077495690351932354682360391655942680031958823962599725527783046011613590755443636645972192123061733648794224677545754823147766220721681406215995004204542150124414455773402765954563490042436616191799621831766482224171411381142630600254119616728903979753868456571819071213743831474113980784210526292896426395524448771979280353568492818223987418985675179978164455069613110602493484659225849672723230879731978088736074489848154957110122010443789338364175511761779660498321185527221617628283446418688303757753637552040494098567248493987604537283572690086283798529231044970316905053810030110364960885169133203359916970370014496541729359437153110540461060542872573438775330222554231136596470089456136909893691744219153914446084110854594104781631166156496929526094262137868799320759359514311875794135601674972406981451733295522277664078289927703265628371662967403199422279149593203224604619627419227552695864560910248930383649397049732549605612181895016395184152320996392583532836758154457838308978228341584769022562445748228774808167591884086803684144888240444445199414432246498891651846228740583260186733409363380753657117832852847552740789239742935392654765820828340748484484534409933493947554948188969653920242383599414613375545283433604446049355522673757120088751216585672864506238013775632812050242612870768928590876221651629110737476400498494378340535387029230321197064403421333308096953237770959875291162391202667700130646258448786225071574772181751507483070392752927529742603685785166018309059602070747289385841512812930718161509271910592893803803643954185788681584517753750005122883017679668753753834469399757396189376195437209436192581438814206206746944872191394838179251456634507800059089312667618899855825180422075517512300882016701668477560958527808820879765643298858924390226786500798815298382317974572005732579834426213709979880953981683050855867997945128558396594496696479927923527238062032793205074080066809847857959063666089492550815994212750316678836082901301978187106072539503533442740322673938428433340275648987553522785437980069686286556521604350553178238937980836131483256814040157868564768567623603352488216829863231253617965040450812219860063387455727375951809626135781546742745434435714785133789275989787790480778378288264989995056791732815135243147591050317170979265939877098814931118658841627658842402385524714837585434356569793825629765834505576402038927341843007741832102419702428828190285172007391736153570099244669470290921067694567208268788081559826007892444901202973005782695312570510075276556234843722041566270595166384827593869773314001611714474347017398964457911000767567256949821541295886256528925669995072370388745162472324333407135168275228538864124819417050445108689663543407434019495855722937695444663721062061647279485900354680341792142235362967853181048047001170214933653120326571250763623045669654731820633964119864085945733096653399748510091648656172936294448577354861857340537556165823677524522522363974962406463006143918696334258755193622293434790759903553759170191473510077960964568694283096183118064334249832559854040356266508423196590996123780445738537703804951193256444756030422080794636183135475278106119776628811488300765686734226577023987138979555112069280380267625145900901554185286360675061938908452213993852918233113047799472262490305135899162200386022834128428946009406596480814410206194645117351016514091458908685472318356216945600584805345522097862046200397869776203067322900223155554021803757015362859274922007498188572929661504963147723720460719265440249156205534924112362040335437728959899663963195445684636130972613128850188867689611891654598343445373651224658848277529071255285684444039847099127638497380678895953333101914035643924733358357944020037140404056491958804546725159032439462134400765097830405044059098855877858676691054857693113276646652854370104510154767341902114101801266062570096127894277120113232629674783291783090266093312871153257629564899388231899145268866347035370471242870648956880076157161160994300312075154890781910679914305978578886954050522388465008926069605296179788150197029406201562393229320542356033817980196260949635721613963661899526624753643781892631871009854070318161606847267370424002134643604280754619368021407056583344841286046686486781036502758528455453735850317283484031126860333899379114832376302199921770633601861735771136695772652590261621408266295300261956657135056808493163708392518650548843385617755068572867570583876113152588543195079272879818645218860848651828652682694063111187962220721382446588298447540772065931602876488088791308154753536692909443543980863017436641145533730453736809780906679026901183429274810129941640621829068370723621414285017130566050618260546073035373647024740881020706901903850550538225957882495584520902666809206332066829996092297648764929975726484696919350245025282286797936556188706882717058278147187260335690201689556830462410078954220183260683254423433479413331374057076058433466834811371384456791557468244930728094176705682534290696220162612973052631339006337810682438890408894697312669478177616509309735241500428187929704411426420424378244095341857785671364741980727641410830379472959534279834782980928580720844353345482380111629621529105722419261501331937608811701642412044801974695111588984260465011473675061522679029706973169365084999360139422220335656899191842681912191775500238158826323901865656493547012717072735563615560241889662585332060930238612817753825553680175145643519021578198389588446588645023197984813442272360152175652513334786451910273323077815301915654711242909217216943988484945493710071510398055069755641441339795386145622985813647663029368103300614987554512242299387502436592675566242072822490339975634519734188394806401844896078829850066233088236826751433526816938115927493083841827623605522282559165373847561654428469783048869505401877929887429797504152452579036547681889521590062582951464206158507960116858993010125819408568625602102502149184811887640572266685859997451295158629230780872729283229369843415630183993565346352639754604794301943495331425837994727444546356641703884596853985886944885249535303678201937017491527343242535729725845685765161354035503138937142345335538483315274185915386744739010509535714481442906624935518290804675568993610239516255500107674020629378442518888170689860880040971696835494158062610719916323165315277653006989633923718575637396640843762124616357433150927191715978238865223537603608077143715982878216609276427308810899542955875142566836098634126362303054591012250039249612205891072176060040028881827047603465639995023588108789383302408237079753952660165199638400567881845128094740983598178469318261458786571988821246269863677938912171534779541940911247821414596041296151470328767020348164611684716580864466858568000938002942020605106270615978220422231832063134084365302751801596517403952159350398411581053462255114735177047040602315192011378316972932310242315764703981456066107807123721629484087936287842825632663384236042415368625265050625288783114005741194316878247501702038892685468350583287808400274449241892186114472068568066355283619566725066019299264731379833707925384113848627206968944537447899940445336494235600958413472968764110712351405733450212420109333734359616102720979504563158075596175152308258661024823724346839785160618295887524469186931246908325718879306899127868097079342419440912840848655183498695709668896084187476357796678397878928735334899537840803694873677423839472502046765361859337939540721637563111422355570742920095369948828074405540307740889832094313448012465623559397518688762697852258544982524248120815815575671938871359288906427976803333482224460820885492607348927291853947838963759442462215826299213866221287135648369236023254549830271634478901210564485313986189192438011550448087434433756284710448903802322560427020716728868742031679735362121679625592456293157201358285234728558883419134877959380262334375443913304344098243128510073510996960472488041245997152214803694668707900762223415475665881264860075796981434204213995098788145132106179893434375066748562570122032623378733338531487067702408125832116801067664746058609935984663041040908800974460847748767011161799633856341677825972367269882310754830037136744636200707045314432927550775876859194920741018104475421133401339016469177942818289690270998188664507984902766321065105768724841215342752556158737289429344736526145288371697068729733760646805520378755130087255304904430981400436753535148070842477336880105175089549664086720294052165789020901352838470741534860803680007729211500681065421483182647155088179301241607527923539922314363165365082380847918302356532715561553627053430140133515076213222876409136828418687848460588762458475259730779900532350570632650576970371908000941365239967438599024899762923404398629380521388406198567970465907882713689468181418553634103551689445965491249945958108549099081593348143907098505241575760558861218344864133988315232454433070202043319282334953263250795882342175279580357135525455692810979465896488393859981930645129046615219381118291248941155707698229068075944377515776831127050153574561843582626305822073932617411938763183891368360827175029021253789456469860748221545956926543016994487225982785780866335231416218817963570225759450430793035760182200201652328006604195091467381194232964137782529143360742495219601465062266872866366531584624587140814272903484196674608008286806644251105852470257524448706684536421871828666937199517587570116189385860038013537417917304092495090216655737480514156036402529074191414094536741265336687314053157497779809877284571391612736564309000834013104990174336938934543855946656943998037232381233554138457861983014611292903283129336628062165940168379400544878723686018520107038733847737800287630262029161076639580551753201321820250195575725870708305923014814636631488478155497427815454984140748303251365624035285791504267738847550682043747444532943524085176324387735728692175773354743322330988360505730669262758868525486595494467331218996150603260716549005202797816650545143976776470996086304985588653240865624923945943125373330640167057274925467717720676281764983222114740135181512991026409169348192727040350382900959765327208036954606951316626530217365333432405827163305503335452685117449262187443809395740657528466395009625844299346932848340229824204739215590673366545975572487363548255432203844960206245039586213534465610238441575356955207775533563989109024265247851806492441560284578592049726152156362470498958658737168655561370971063677456436833320147665626446649328120127798044182380935007276112986731461429388799329692401044723316314479689166735938563761809768537183203135341619430626844656086231532729271992374252096459731677460663330915432351895546326124906302244986514693592086482342753748927978435193214142745040026432532612753732565987421869401653700396650284419094852809827238053145285774235874816333839621115276932672399084223400263593023636836203688226730928118189283147888785673946629836048709655957173799583440138724095204466542268811259774269560933353572290306746529179068922885478884054742209539836914041204016573110433988085746000201336854077635302073126347091760106907859259855027331901142400913663901626967571292971462470077131109138091630575832146282113050863329910094481038247900442474562166006917362104291788885742490866167566868754547413958898280854337571825766466760937578205720418614542229358860405869069218011833430990636927823150531221192074854612428063339104353072486363061297633138413178197643334204955369378679877098939384998601984609107742208778207485959167685391807601455294490928656235822506639021914326992362981904999173098509092920446384904032860070284038831477725413103626862947317033725460927780838272376977002498925218718963432505028542960435980162290696594071779680319131371667103719779377224133951502914497128534904569794296631785796203331769937207499606573790540573643775189346416219375546201205165898343223530417590888748284015126662387299444244617452746065015325665706895903427390357106504356698417045676842730454749348915824478089633522904578198070199318099825994057096961459537894720826943564865972598731976051249726867059751218657956282014553281304359788529258874941025133190408028496504636051145040884708460215488740022634373061014691893476996616477327907724883942817344352406350368771971471411262552993533888150638463641040533444938031340056638359579208075155114310628399797833978793984569392783107395933036919739840841935189144712100885315465300145174790839229803368984042339278600572074276649069109378642051741630895492866107468041365296864103105697416607441271543376178239906597480092856219390465548139420858974883625169613162503753381592747802210617782998129856053865239535877348074050894369950408757492273357131223742201488791828422277021463388749987850920519362520361273642637403935833866465705654900030491046016500787070493830750211869607840131906191847751900141040651012866152501373574861042107337844094196977334974368855982202908747548644923155219668346651019070429334356826922459631191227167595035859145084735555803291460524187382034507690195524209770000854506742161243752251039714739477165972540153884637245752175269606870926193511004804974577017214956147201294384651699106738033648678928439385391702144850359603077323826629696748265525277182812653717748351440803891575717332363716475728287676160169641120755276325166261259597656781526676303676601838995588975806726393566086356352225397446957255860504294500928542281468830315218098530351780734623678683242755733654912274741377522212039177273773579582254105743873897611966991246070579608966919915006132981095150460726699239453018639012553372405527205686662716937795238882285285284440995577535087158447991321358981736628371323251391047119423571070235434116198694952416714817618300451919869513055633960681045593914960939736523831639712520974238493760122138995894701332249123860026350530263492097848091379146879775236523636492582700234105992813108797534997795757431658891735982030043687689887437344956176225455429898363223476832023085585768107792737762084443916590578805314994737553528983511354251357295771471737034874938309512634128148535906789264110759621416169540940270251295298012312543877603892566883330445259457170325276937100122817970262917422071310885054513237261981759776856825279568425219892006863153967875091590168379556930928001911621530021837611222127042403621238884180497597501049901643030291401742097373227890237131590177764721229151019165757344390571790467421904381290978421865946806733527802061477883281398876529787225917391131184503091380227122868920047367651853078490477143219255384666300189488925770789180414580965287888765129359841577441712747595707300545374948229388825510696734278015415583001890551091974612030166767672554241881496358075705167041691536158525863354186783037760022755790450801989112509272019723612324417961801923328905477081602809652056397578278924215154874422007084045071903971432063827595246632952854944016658089388615732712474838951629838122392787030948972427342592563952244301718216613045253928857017862054691813791378655757749421293220342230271596236759063394825262922624434383136402193979116304221492871584817325082838233023922349875282026911538333146067461692547235175311424620618029742206530138829116047638213095801151611382522099262203833106030766046904778258338296756206092988264067733709485885421229026565173162043334690985569901531236461701254891721508883115230658138701712079889367799473553459217572702909395562603825670982588777509254320256914361474390130449726408819176070491309610371263013296863511123034257853522058807590748827263701985381602872828050677685994786411343104969722770451495254343342324742764256935572647699935094204573542154268253199152728396735544145996642268248422878141852056163818542957699165756660392132496541322188594331324199746132884333169450735795996177129970812305297704747890556389335945467371923851879613449758820451922858386487205492295441105267721924938284149108021218692433607772985837581058733752692801036117521335271121340603743586896580955870050871905891055704672697381435171541321533172646254930937840840712072309984647149738726897478535904841804458540170661132959178324361971762604505564179367633794671954962059336594199168840392851749271983659839136253172108588292833631959228089138573688985095185314473424014180586602101745703052045894103056201122864174865104984130795238252544748638075540065748200290376891031637164240239448792802223812587444539291857870567668771175599923204561482878320089126078900902148631315231448115414108638282524906862285582873348369904882543191757841323047423441469991622255216889174241703217358306649381249057629136959888236311992753060972901278738688019941486114058499119103623088528595565827581321583924623810884397054970174740718288828767638586612478099681120279598796279359891844581090810102549157197229599313580296172470614579012273830966794855111043195385525761692140980858403580194308030771705197358917762023269000871233430249785900393515265065712924936456501395526431056386906224202178926921730727206361022879895793219242572191123358477058129476927801995243595138833764516221662496054326705986264272424249698521686362993281829215482988605309241081243553898343837637434043396487217296278854536939012334132996441525580844035150136911217064935021742594728019547563817497034073138558051453217020835491596147175245915847106949229557425061525707033258081956439616014576461249171168089436490526314245898445506123768465662643237757775340630811676384235892117142765685859392119093922242291386959168819596031814052637630410982482815042904731090067883886138968230296660567194159892356961117625124599773547488364408615602310416313452683335169794925836984930813563797130083052744316423217013769397735171121761737010793586247518763737372329522571928101583253780111838978801531889538000700739131213355328511534578543415781892661540368520244634081606435134443840281903785954804273698607338764399758239144660693155021114342460640538981442246879147291478660554350319183885430865404863369114877368826099746968672498248209818207956697062380576861523229440455874220496373743282027920114717586452562910264912385577057487193141349859028749810062059440298338929390356848273684057872313244679813336988277444421867080208210471775194717889947841733104389770058774262535926682772284418612199838762623390736092895839375162501180106291137974195661473648029083044464776732406774757099432321061700344771600721627644492854838399072871850824702006848456887160835155556315149027411050248912245646091865659796623734330781117442879524090944078476277864308838102189570812632793515214086899357009593920905054903624019149015414876854105422033377611919709760752012317909415796307644998697982123538139717965913149157681977270390040338751964009985112061849982435343859918373836088849050380658618016638379547789231486042368345220910266278536116407121070345572286974278809439858070306282939391464662893066740060314752724591447135846737675294218740905313136695962297449565480414648051384654733612893643942720654232297668291683687584747406957800391966135296935593420116320363672499465037501215884141528997945062997788034551168614956587929697128402736607366637388653168533826253566393449865019333825264677164052394326287795455379256983042442558969244298569579383515808948972103011251712336858847574750620362206029567090930439843239115443222180091369780678263584807446302520331555586867724248864898455582245044611057950619647390431909490662633137254975967639250466575821739031501020623666280037312310558687941950109860792572039889341338544235767989687806390004185806287515901069375171901778907232181392925327404566605572944956114913547903781719831400607084667059176548002337575798747809683214612335938690366840494720161243840811844914707061209217447053809195317305312781049143706667614479865082500071452618489172771597729018631020230665044847193438726556805313783427918410258488460727916562196020938206079916133757269490586682318242338033147665973305950301616383537629479161475771498323937091274802554737937350456903733216488934019128267703300137326396850166866220551323869239476383551105999863355909707141025785868758069072575393008802388255051162524358556202834660573687733432105948759883098973162503037797197247674629281881448129702665349958083629570871008627741351662621369332627014511195078737368583872523196687609032790083153992610545846877066475517311972449844055203097052722659879948060726892029609555745961466752950093577755662558274825725781191263950438161327487362904242406910961847533531642743840030426238002895557727517985739438891819511413598466159476952419401115816168797844393807238366000942221772933642658560037261166234915095780260847397314017876577951246579238114761536187515837934474581974884130756217373208941564080028068132717833731723106778896631931837956545001177877776773036239417021433318158957469739062607142717582095305861849164906835341861144288594461032823720881382784840285070669550523881056927753857927918169592216428165760118045211385980675596676931854437237070915274281844995716656654011943292629210618612478356565759187107300608894332368335367840665084656270553017172329513808572568138888880370603784235966348048136348536528641830800525669529038469050307825882146668738273344645834033564641581122717321225582802468492271319364115546132897740058109186297382032364098843015319861223121990936057883001672001457128957398465711309172153261031868631087812331372457066184611621815147725899376901982200885395028931065233850456296887959395089020108693084855527414695993354569830858415887253666248701843551103820315847222288701825556249162170332908197751486644494938666150347334258545926026298821939924575080422007657379223710528603904981367215935671490832189202101549752105221931984488759337558329158099763403930076788121506523417713376592200588464390795228696101679795647235445307881929775040635001195879643787884622597017011808569338682121410566265582260486927510315591970462349592924458666941459798296209755345644134981197086205819167390803550609252071679113966197818313881907801338947702145048371853884850978098061034143352184187564532100680438239473300361316202586564709627798280246854693717626672576895879394804801454775550135967252255113766181925457698759508803832246356456200895039139510685712098363856531091326755350704609828568189030544305183859552197632380511150900261113626967566680146360345562248404979264067017554163024870184073777721224685903773626962147702514228662595161881105261838787566564959681371315112912010106196819603997462475398322701727455628335909724769088453337712718622583452946403551175238020525525652058572313936710193284649048544821134035738531526639941603103737489843920889516663890359577133522342230313779942632418789797121904668996701846475095393480750615562156304204711789008633674805396420641333382182611885012218257128393209561072557269070426096376849360772621185531720841312530874000252817394997685319267907285569251523911164943519480079781659322172160671394275628158505728505327601682353437452598286285735243689176226978756732861822655026885232575304165741779087483887894159520952436467327021192692526923993443040452649795230551101118994687603238155739044324848504336707216521742880797875902711115381083254810206118528371955463388652449175837720659681228511005498038987275095403484060153606871042481638924297328403700964862890920947602458074796872866589103057031788520516722763828301145551529633689218427445102142098656816795592622570171519418040694292310106475931542895991576593670250088932886691368446050828629170602965738623842673532476065971608529787729558610132657866928242177194882774708877288697384942415422898793275318194990828499029191988338356003485677935411946174638755976040815788208763429925506348438551691655986492214347387717227775596501260628935199267130124490165812031186953747427769445746343447125871927892505036126985514506630683976017020629053487960138827833746005002009005787650390359316264568844111389539897604226630826167038680217531852949416896248032781396894176626526461800708832947567047273311789420367776005484246180305320885608306793080191589839297044778650243851039691457088085938449918497823952251824655815987346568897165176765992326130485719487463723488390657864247273488003751233442487505146800661300185232647111399319436089685954882720853295037459349432015554833096426531039967193261848818700407350506623601450042539630124035131483160923391078728139890252224173226328768395573959007385490361873209069222992380813770977851738341061300827641612012365437786965229471785888153615428955425585637416578032716292537626113434207510664482236854016799444168109594883744644137988501539023098781630405201789437770177013127972512097759952070190232720325265365794888295173450429969430965032955262078924856783265464644533369552713862849276392896628015507840410701848387015575347273834124301093365469723502152042464593254200512283616846922361841687252486273495860647064162548984882621518530919590616210564052307257609708532471601244973478052304006421220447517826056396220941246984775793579176111006860882202669529827894445696460645788028831171842603870244194873580185405167351173522058402018816357861106221163563862716150207801357276664463834862705838374484233190285818639051405898229341851394502843427898759288554801506855129685698277697428479700673181515053953226577509983540168336794628538392058188895069076842008753683416885490411186287872421506097200073726297246807771692676488548937157481327138000846332868562876741721928803953669402269221466219539078759515714357156192619633008139254111298409884172857350726362714696195734053627679061051787275411569128018169035245743043987152282178501135927618575074012315618293251735791919137107581887421131783267611930121381152017891800786624541511966192427818522361442744261257083294375105415056368458503920170394022537320547283450443846304590635405703632927290490109781909014110480120218675496097124010234176056538627352663276685106947228493011742451475623177038867617222635196482932129272480528608878106533655354115887008055334143094955214844752392858697284402720329230902120952552231535044584772342645184534183360505061187465414387425145011758086046919926660462277600134748878808092953872288943346045798477186660268715553052819421971247014535599314633509717879838327572166120524786790510569949364447712424197201267368188305267738517843028038311223729295031580784026772833026974195019063437915072266692042722027411021198871588836008272762249561475018016942298526837961670524433825821137921899258380469643123587156096317892007850792116111582535467217009799492587112624227115008106113230537317651368612690277818043487140696055610909645919872915113660633699849856739599712251813964863810120152693606115992000397564697163189138899681774587005955016730828759037118227043739810336103702265759248140792139708737624730509475788424169102502242588893517296907211778681267972411426414596746398498765833685430479497915306284945106216181644478117605335078678022559236482112962855575097666627201171454294263326875219767305792765610573398470332838842759555823208169629349535287431964049823127332251832323897477911066322790379818402737621436184474686127589548265504687134311880930216504963328741607087126457580291843348577095352633279412819501828789872792750864030589569617726756916956884394545504592128982089995683437753650158394327631224874274099996823878035409722409549527298784087260060449980109309233574230077438947466750126217029454709638147382893546514201751137445193428711649068210959756240991768875882346046864089135165436406439490122825640779492922838157389158710153865163974122489781073081196284917446056294202004014199077063561478033075298081511302030556096098257563613030289240615005448812855153892563944449727348672666762729759924994672663546601896374372374728769304337984327344277094636795059718343208476054593010233234302897397446105400188637935097943413181832927348182949872571097583289269659969745453331051421320896909041876051416646445638971644450074188757907865204619861947351551263476091022696985366070385394567329639578606462278098251670994748210814050684072134725191334733834815659480446841682708452032240793294870298996172560400625786127289765399887565953842182883145019058840159070680877360828776199197055302983290024544244762886059404013630626465595265154911417563306591192403954105156948640067565462033724099086057074407741803942127293888406383388882226757896593134753600710732083328782416308435899436253760168890538944664715854109459446066149109198526182593256245995953129672427908214960646301693590586320919804324880952043447660719137457040180927652351437549825949688427273905482833285007201736919590081949824605016559920489632886186182316288810502299841381709491316359259371324867211630851154818863408357849257622724936909311059973182916260397265780418321940083780379784434382693558833435587911449054702806181775318664853574338899194597719418421606774940014528394549113504682073366832902919526095767637627891272541475644548953862955084441292740954709834883119378347780776768072211909740871336466498703764367450496961074439486874946462602357240477591739524661483052754940734918456822351977943864360775619019771842345559244139223072781169531346864026675912913230788695230943561654832180189949501870710193080553329562285429963424593282816686136102524346807919460290915918004912688874034087866101241431253424395482037925743922421858230582283968016134149134759861027184859077680523101289230576702962675258088845812248445122584939245107552025256757450580722380407727634007043723971914344032618607111988548386383441353568885741127359714769460466333627775650315517090044884907257527783995859782899567638709079535702417455980619214394118975048036508578802059994570134403457470312733260067584350223468761859232550136037945788026164115723616756584925406419500501479081873395776461964429363021185848521826358508892998169939562508203292771792992789372337912246100592944713380175922853609106464449119777909668544856049910443395347108429548347691970514102335887066016993703797741992998017947964070146878249937395102688586034702988042284479430475572823323921823233202618755967576381750931696132744365797484859520138009654287972009069138483601456411804562607230175153097865650607372280841603218668405059428327462234643434415371970864612751963730174285720770020808372381626155319543724762481069252300911084702688914696987100580513543042705129068092655524952462587996131574221832342989362157885588915390537735439077500188417419204092703924096966643979481559843964393162093795457128179820818290252758958688484838908170855642844191978686093640630335739734082450606741352513264345112794719253067542130984444478393084244463396006318442888619125053761371221264403820711044120029886815723823781191213946957788028949137405177266291189435343083301729644913075316077813270789969999479767383087278391034486997383490266873415569299105797318210784876660859837936439281469676496422267345151849250770358893799520742709957313825625644080473328243387245854050590086763413749688413830659915097268430281104697419827851869312087010797383242315841751394088149946442744204227123815533830024504629783536597747453906833989826580079251096628954375255723113749385328577497495481923281308463229710809121131490457934447673685438601810447899415353774791091457628545023314656679275569338658303967891469961397844302901259715696590542105082433474683934207013697040136238725776224804556584798107137019447464876049810306259989381842033144912863728191202800222526380050480554611666188701299668045078276873556238000829097136029296000236559199007198769880792783335506132050892196992778280677380506614539284655376024869530995931073987119356860654748591280730940470311862203323666772739594265156628237052381571772566805600912606231884002407305841271242619862261172247800161270963664424086259294668301962872038648887748226870210264370966678950462991418164243350430085510895905369271675222131482588578667300701691716825473538121560938621005415326038956220154988721713996177703530365251014176735939321970283568972427231791321290392623246060869433697090668688407939164783764047563533123336851241266215776576367083213533237135455058402045515423517747153286218360909701775005450897445758417151954125764786251133870013267210410634878055760581707811878261805771674123299193647031293600317592246456909518273445335211923162920575330061620382739187624802762744030950821670507803323667905326103949690804966090709907407356715579918997203383073637950208901213356211172872357655411044404739018459050546036666194919915831279217039477789844979057464814896475743834317747363331628830885429262320983571076250946947129599506654336800761438566246177282969581476937541251232949143435955976345800597190675657813058635597837568215098148825968354564873657605791541794519407879295251204710130963414260580878396344105085121384080472393544221129981064587490624217321755991212365207991066777543138839617767850769942516815398901094887259304166691989448416536082654843363590242402848570896053194792312344473308681833636784066506535415111064503873202207442188944543274895853762949408913351095888691483819905444996711417320696603910291853479775133566636702496367965270459838835834084851439633938853755175343993445467790877029583167729162191159452907227719528511055041239843392520492314119694281909816057811253317302785766319445046219381321622792800046221403640549117867156836905447146222933870445581470601774350387903338075902930548812144519875651632903026810907345392360350721265107283622452476964179601288609556849649492911266722414946341895594301450350550778844196776928289311620344316471129219650440688638436177317533344455704358076966556152808114003214438436734627511674119499275528714963507660656204324630640277531529197603717636665577449104456094209853437995028135956968268055955415482469362399351653340396927869148740297159285580834282864254455049327767746674284747442060751385751093192659143015948255109738018047007366759887981457500954345173027721034828866537393965738932371027640666359853797621813310403919888851246738850465984105201946671563394752372232329777779244272588068279456161341012651306088447508362030763926689884653927453658493843086603451236636568816725765153914925548822492817462036754457263157100969014073281045645316175409189254759074657089714100200515187117960198659992606120165363979413179186301237118474480124694425569494977112001932034276423313913299322675141876971199137885492951114854392593326243398934543111582056526802157505871994685527792273059442946404636173137612824619527234641689183725571523942670367165730934343807000229814168852545109481309051714278724498638052865185509594321410365974461233739401296933802476481794119522041849932983972234137480497097126261127640714307572318555485697962432644429802064685098216499218798473062627007439833208472920382435212972971686555458066825258347226131153947038219012789035325436549891704363307455153103009089769107430557323433006622712566667561060246276785901825515961030654394939749762987512827035352022432734652206222905331412005153433217394108711537703103964883937932657688598987330752338387898436088211399853415282999102475342247784115151627971516078452500608828816185686944747407951626460306782374811610741993329798373643021386750140824547684698435661714660140584973630608068019076380377792466277409073088891022412877599182011438677711158081277245418676492170156471992111560470322031219182812261457787796934139188323089587742480884413913034012782509477665986288563108458493607424587961342951612760486567405952085941177724764692682703697039218397081355659388897828610448853319777077138390683329724703185221884464021383251400490980548192899153676846752290876752372630424646317600225206057371772454568665415724079560402988872146699042697383070543578464111804474381605274341501378637722849273474883107036904240015744700560093497281006630478094352255700586427779683035761291562977014919478664115949902479749794213510599743348728965924767345006321705817431053295722491183645854566547983846823862763630357415435932034111869899554998555145059396490284807596655757297426892994686235776821542588116400278815176509974550524128650041985898836941739406673654130836145249365554305458384351846526179902724899705231308780918737885653657077373339330896953853681137217242967872117960772071355881307629993477813148115788974457290617111064208075959019290517973418259230990810061399523513313324334756720905848739915170550841662680603887525735146102483157039136677811817798152705299545082495273614232100830128245020694115404847631264832165933837347221010767286613910763645470601120445060391654180514669331772200009303342560019680880348931920082144969411808113089585588689087052628149797520678866101715699684455156112020818329660105845783737918178814228161866187117592394984320981129403857067777834266773786354230831648290193990071770833065938696207459908617740696662316212781092321036899255761734758507915221867487138412749909402580621934591230532082596649716200115521280202869214441832237381957315922595312723734871493529143109701201579772282363376436350310497951452682830062142082099725667687789824902415664022241913952806256914279299288442158305133387754563688074058483598987423170109275538269826580714188762747294463031391525598721933196114432213862387373246037241527710310005583944834282612122920877482028284316747275695635381961624784424723955369883740037714333316815464694926986362161814694687124852893789376700245177815064141005339426515023075012858792669679366351639694248956574602088424316123766776422643320279674405725329549375699625588552614693502234784481506385695227375234994763574042654035074471038159640876539605843624638644679424368437172811737680617234490352238626866666696729718948708935442971395648126981632719779181352311676412475759762153507402764699278459927736839557511656684979368068677388022346242658754046240605315021089948013507599704114930106152989539784953130754489075609696581177022064478788944797274623288938874683449967548840099303409516100251308969416541202887471446761501727780351711471819853114820570374183018368546660161079797844280160595322656266805548057444431701642724011719328126258612321208692837527006557251090016672925719283074940924992839408705689720585336116934983518831740714728083345822811921826517495972407503075647449907504070111892120346750853202714766438612632242429970938322174423465439257361370289768301385124560722112095273929900765510988000682820604261611047663335363062479309543550386959637967846024420287438335480757888194826017739461399266047299418419541716419660702812315674933601427089853638409245453013211216700942653881592032790483096573250460902227489794177440892125971932303901913172321299196964009081865993297712945363290416093048723833486765788241814885540217914407926395958503330330600176711205477177122811846044776278724589162181355480927557299982019594248834146916588187501404022052300715547338278270525651256653336644012105965270828219539808054097411072610955330018580907512280102701458198949746791832057652659539024999923675711117960944807232211868355863184097648116994803561330792538450210226669651799410142188706430806189896451610004143691654627928035910326852733555605701150799483245830945486418253913700709887942985737842975953464920697248901441339321121093790069402237910402095989614661285700858071741322680056369699052436078400688668368246504347041534379613079676498326877219368046362397189679113624031979434444686603518042417525792583912518499432063364415750377120829727495790462924108016052194297047548544486921994991103476991816090380457514772824918787392148996808618242433481567553337527285785168876025784581903545415433079697832303981046156013653328490602198145523021003188969400003120592175839736462687062545918814454005112742821963067833205210991717589170395541759996160941420887283359069194233350948295680175152002609584912945284422265811084978584509243998872624250901823322061780503512820211712653964466761467756368072914686537080768046377787903228481850319586855187025324866603991305606777048113704473907759686540351688275774105643671301460594959335704766453323430844256113673867176954365393077916015673838581891588109603113288677808853331165979222309552870817787427171519422600232315424631150444428352386728469959535849281424733462485926311549371275213646334825592714326197358819094271424733721779429573112058692941788741255817114083712795798454255865785084901101046802261244742062276067201813898435438480573078972897836967522332349427876672164012078527863326888129072602731275230462513937561643980359168976444400060977872490674552991251422029331297043184981584719316533554417735641360245485078875294304686827203522605887660499857649219661458822849045361335548843539121146198160658879312687604245572985532774441347068599323442535593020686706602664064025561081890441934746020662136398284360361528822581087422131966386583104419531654809733938698993255430203834425358940556992693622149222463513714362465729427505349844249245777187821312631915879743422455244899694916639280960965431080016453864575860701977688339329319320776233291412815061109092959076057514248325652888165729961941083172764673286497974739761679205853905877983528475878225740426133412997692914042493879890674788204270306444102024123617011365636808414494166754352797477076393331972222650799932281132287466478525163264516698091579924708435364050778299141010706976042851115115714185606601683246689090317833470230236700492558609990592461452707606644475237145171565353573930301702857611604258446311554733274213809250650977315392602415542797758819149487337235323241907613523917052638986070035351378301139169496851071221513282094929954629353657789675123255747325208416544579004930712364938897233957303623634149444298851628288223926866421136310824051566066704550719110616383162779299144403924395916842011769359225219597676322072378686819734322323961729428594150880931020390966858713749556234621773077087614112291086241391687554530796942534949400752369502697101487809984947623292373874339064835573920320188420744756496992488861676484783456950618923785811102532004239653406851970652175969669234096123203747660895988763307257586055423334241551543576593716351232897201805936336148423050138645425473650238902351267978779944673120086460874701436428647451297685239592655563553877038621565982789565046611704370767974841647338160382273170165617774905225301633936517239817945859914219511923277775485469153225809355194513755193301730961826882450766862120208692466806395248337513457876819719373718695543655679851811232011573619929112287480639909546023493495878712813091545318084886604278015498322706232052980420544510772441765399648602903691221442640446251880811289925690800040233306401178418767569808549783489503662248631607232046482966889298461501865417174513866055477932670100931559092234458088859302823979695750962152770480895849304162547994622330197852864293334887393717960557949191806650127546441125217218875576555421158666277733459380343410129965590317194197956773748295518550926528476181728969145202122456164692078067557629595099492966406546847616221802456071071351433883956186497926747269866623948587886641138024727689541760466096450369753004092672548949949298396741985567546478658111301106104176938361404166980404428689079451052852444578728530885008468446331959811258591072765149879246705117150465400275030786312345880454933483440261354561050352652995971761951931179753706885233114357107807070233770639376565115507435252672516962346560260845035045442726387515250426992507949468920811678325698994004424005715116481880387733384755273022999019651539159102262888806582573175290032703002404250189836985206272510040069917718404354729596223505908279282587481398042419090153537739642410825666960753239771913995063496063813936689601500951230729136461403232428402653422157041164775260007808193794147929963067532200160158079421568052980869696371440501631951354422497725670602809955764404700552944272292158986039658662766378319939140137734665905915798489083494977321337758048385769161673370426296710765009267917738960198982438597922365165689921892148228769604979742592993212875964517968065451069642076557715957360433431080947974855073449128172151487613646820076048985069510038900138345254331778622346803434984016272961623787979140584736984217542762709627107183080171292245921064323040484347320657439383274854450820315368592356445635091705425401325340084765794104370822095366821891414097673907047588815505776880472066481894615973392687627532166590150380877163093962855483849425068559989986724183640300466895556369725134802509033290417839133918215425794001237909085606360878471560671255490315626512537485206909596865584433421861321449753613950677242076821640760344611889007029262716515323505045472728907449785506377952813773695479285333178561737010074865556782332819251821874849971805971587338083204362632754988604968693315459130525456867873397861520057815934531672271862987012447616745733194002178957069152870473371801696044055193413732405046855188244594191001400730655050059491059087766350633435509831596864071843304738107203691550435992708035223427321901522864957449858610757064442831723479559830572270888101075944369712708603526371140425722722026325076335073569566221308018383554912010648523902351010378593127579328347263330953160502872069984864600604727683026408028222789416896384158157088590102753969756825604215972701385183156575119845448691305893771539789007665982455550355990880482718143725229824044356852060111437206582929495688913431650047380441458403934357621872814407931946716132432968311035642566567401469488581095597043586345636979951805476714235020761576311987977840219962921370359774163074709672563207097191952249544165785743806296337841878080587683703375736158738661637496618520905884540893054521836260982744038520603992741829459824864494310375145380176432800992650365391251013318599822620699679324526046828301107288835915715044421204022033295220010078676284281664266844271470406504739362288622279185650145400291609883519293020958454347112174055728227931406702132969760613269777269496313296311377473772778965490045508822622448501125935858549218452555876932191010999171546947248434036361080576968786765017529567808224718278215384557913741993358379274441220079293110237851857893096762926275373449700387305585641611649222717622152268908328040259150157061038012930778587372253262663140063419488726779888154400753935809005916287591280793401060114239599607131392103586963716447571130953146658792237576830426843379597570704081395001946868651462311454174971056265574123820829785387495225523925592365779832732012879706181498859072823010879349009251123851106831576138733814970161144903763634982694157476294903185738364943804882516578134288784365054650535680596309027290040918825610218063910593132533016120390790465027386237815149816271369816635211412119082007761870935591645113847433131290552684594330639134076536058758058810844135429386737398463318790111320628367953625318789703366098845998424938264001779177690754335974335787660373915947560190076318862756275578803282734644599125529801043741457731636498521476133078146569047477826914473742086122639402007624342924701216197688007512704005122749026763321408962719808984153600523114132567099627821110880092191450864411934320343784109181640868547771540600672178774298629540401334244673494184652504254334914680324710010793888312665599884652202427595286073476441858330182147849220970172012090003535019270479831736463757664780311308482209850516067295022824135327139234506975748807665861184344948071521031572946579735228687973459574818132236661170783596860209964638107099564178506443461157043689944916539658165669646523454814028995224155827089544270686220374629088460235446717309292670863267923010253916318812742599320400483471114447811166991501746095450988640384428731938053674725506642893167153834994501552005158406474393464116825538801067564164255345451320917710837270127877572436339698017593558710644034417868296729346599578179729191594720130117348824567693840746158452057358317545199558516323060144583688823526888974426817686064799586554372362620986640368502072368134806096389096627238781102797142732842497944523498441911490491466942627709173936252406983199799318850003073779861113739151417398228798489079602560743004753528354199648136867056263005917975333495756362609717426808267494992727879135121090016837541225753558404264203918206899747634951374266904778183471001076417369911694068520615259357879698326051158306025203135155217456894991734471476415806486893420272661443969941541504095759282018163599803025145623696124981193966695555805320900448954643551432913247495910461420648450155175795785635734612907978433230060011634271538849309020646295987921008018623410084134844179715266993991581209976026070007605400295000681546867437115120267386684610530237239772463152071397150619273400779375430345335812211620110419799733150359561611910692885129703787080170463294487602266805190149187209308126980061306865350213353315544775742815030731382873183481300004551060398131639898674847595865243688073971680571479862562897982810419930449227729534444228402902989476703764103021716124307154311437577670880796005612292355021668177226935340766604368427754975533555190493623417712989686819275297713317595829226506828038961376167600306639771981412451254974936188905512308227169154255982079892582906329595472364643889319133421807316550898844667382014396195197384214559459677065682900202596913282427907874935361584630406159077220710125623133055246176750669855032078406266169932064064414122771654393481724055761428461953862626905466637885162100060271408454540532123947262538828348616227381956423693272881489972343236798903487217441093785242057195606804702207226173740477544837182784049638983399392219352175517535201679484851741952356187626242514060396052378367550882751119356128366038311168171720673792613459132489883780281899696578760863192478563254417973996578207132389516252737346423632263461996059980760855105491634926778766624177064670947650227087023551865815259005475065251837976226531157734433289390146293304991158306543338692357314157411352662746663118814440605943906339330898485450698412947824291409296160896275951744015260088817437502516767827027111608077528717576325177729511951377232684864625083732968901217370582779526524296575443558202410562350608532220527106971541133402761209034026217045222720445892497576175748799998955017703170573948147006644218335023035057962677094953300208080548659701220338569276310021114119006925668549585107792943100756978271535598707373229770534484072548221199635815481506012384932092293996128966179666438993049604753968848994649547976460766152517917201839793590842445431691615026487470163177165562743108810466062661258730192729362240891719719260339559098977804060447330493866253593682967025742773463306848005601567101658440331833863209764859217982528370954015216591777403415818566876717644866193510398780837794575164546309545005771170759303680608589573401226909364851747017273704813649922720952136689345574397962126986209204419071849928061791959390471445148652742742948900278913382113370133940142721706066548634320060740625791211085922846261196774225668052007330026893739290903666312347460792825331490561809106226013324934413258393092883060580976704831134358950743661020364363451626412352651471272448117693099025711242579726376825869116419344376891696588172006465365719525279034476288261870706742532514151485403038528199826136968583288746430704907530753220186460809289134369678123913187867352821282980251984867756995935812076261554585122957797302149869758944927106996028615864651179420117819411555060724221867850591770509693706652095328734078872552310235123339875058181865159120378335278364210152157349290935229297328208307482943040826994546344071141508031381840309432681959271487363063511466190484880835711814776237853313787006702026794711895914310395823396298484071771477657886417379582475449525743337890498246121935165762041572090928691983724824001306449839959010273518611736430199581274466420396127207244524712044977588457027766318634672567254466441746776629554690430859442276926271743984828172897137669945111280256773244238206708851620117265071151450834834943879297684001764810866535209712965152238247311510321961446464622913047197792333505642546376890844640272281956607055689559858424145967215430063347006538504189387412988639078977296898828561887531895942754148896055475902723726192891053947408789125593312602681703194131917926328553788534735882093597225285074166866292916864112998807119632073554293298381238385302464757746931891862303329810445770141580327484025995504358568779744834478220116382328736561421947571509920121598349974852488364475510916073510537355343577022817863231183614915763804933533515627340515654890983448665999225269833584964636828592514169033148192093489487992181395530029525870032657384769948097863691167228951552601747632214647816027867879074450227178009847793901562617797384140655535040704752618573366943616376474776997702526098027381859465442230944071973088825508465650464269657647495947564854538418110540402822376845805470399068539222950616063319093693683300201474044511724986198121369423256295532259580316944814199990653059264133602315057080822196031451361423281362134600950024132285839410216502641705650011124819554419417729205417941605988554700950019109998410496741104869259643610526873260028525749977071784003385143653724887152175652739149207451514641421492288370957331787483409762595310379326252410017548548124817786909772169570297572233289281623444456071931557098682995386162998482340345058822530882783877551129274686482039952111642714152665991662137294627361074568522580620765331797523460457994918864698785349482592272894418493954341044651391473771299704711672066801316301665379183274140444328661279075306737767864158705586352219424859530626522000614057964966921012894965928126369448518038633267318328790792864007425521675240759955161557528765871839591153635238792783845807144922094681340177432662635575689116708788065672402832718495250884168148767159538174812523316328008623319327530403612925380150342039108761537029296013541865780398450862979859606748166756240371052096474823960833316585816087710199310765711127447516847194207542830105182214733951864782025247894612956093898004247203884153995190755064716685271344320344825808954927824043732501481987359656799205755902532408749333558565728808149036400616964094607590290766353566635336553331867093759511692266293198255945440657773450914148793863289733982237258599921426852851480626455837137635239804040261429199070698274485288058751755095719895434976968182116117857865696630925389050622554685892389257316659098899778910576943303334708033221558271741870186835674245104924007990463605530857101556187821682493370442981433613546968995535456623330886577441490620804709965111699091050201214213274787598486471997352910007183591500884287698890783613331477654968481989857076908993472854611022486089997158394619220956300495952247615469798753423203911090649499842575798286687155303619518002601623919037594618207962700004357610062087563154221360582520347791558712675067632601731688648895129677530041987276514746414977414776281123133919033135497565490892149066428976185563620623556947658555015833104823184032744269909810896590625561938937188852476898179592514946807132661691747041900769352614803668368922101420707839646613096116387271827410860804147684264011574112577800485007414577459433276564647782801321192817345738412318456350138935047948408219576639008642053033713514462418887560450723413750412993163400237882388620460635461070101615014281767884524571079275109418367528462933959946812631428464841555739504442997171196802937960205788572684943771331421383056719253394056239548331663052334080485027296791731890431688669641772451329713253171223281969669759041456188510276598096358971126313820009184312542316938781547620299795242724217429420125718266844829716439238267242312479187587627273067433828651301336930068134351963882656218842452090190834111630202679876366666155966596014314628331122633105319820763892337499321991929510388412465870350798808603398987858097761532261934620820104451532149287366759047517325344765805459642079917617751234610970565094823614260010772538621447635035604948483701082553272461751767676308829827435898557558377655540669530804921511032505604525627883011803937176151100674588987562738583298000947862005676717112399821924132712309224193816795266607839080431622179145258600366695072387586868383799387422636006715865904250857011499238442513260826942922013914587967230515994092600052942165089044856382388328278970988082944379441254224305982078798442940539631443940425375889517038589117124832793134510842722582274269490660570449578614063715478428103215532766704646588203080227531596486277163703966014537780611350732513632929302135615470358063282349986573756454088329324468004630995251331568810718844135427386687810284290812980858562765902341517959795368168114797144697401242841724213861889275725945928966418614459488885468949756055722791038166503142582503189083217676811752865598136186618157533437937141950258580998742724872165011500477808202405623110864489770393915011920827092030849222041312568424037379428999123253344259649092303207425709399602446487808939735960245149587626285412058020345961967254594334431294113308579152241208703968452351219645833663509223481072526064334195323570742420276676717034869130282551032110242351393834100785491863266395887442471079975403541005871370259345923516773591836884272394893289573292645789112378450502483504157651016976217083904721746582619434194045560451082394335044061071944946886986663283111179442430549372295705789936115225682372750012592960320202213510886424397251499746425164486523434903518773860578325103843973013106956377257380674943262244985648680744875850945786871552346602194151731320054481954289501318477893627381450765511277121352540149674731632421980963973497401417500646610349806175667261699178332688811602674581813894628834271694983972168696101922068368714155796457922038772145581439905803819439170124421846623141287310934570331720477137882480761649854676544483753707667772967616539731943462102388891841825421996967186610847185420698302094974897828999869223999810560190296017524792899383774375760359030537089974397212720721702698427154245547917758233936704814359624260819533996711273365280818866067679870202644775152993648158789644059497930514578562796198333526931154731834226229550382956821573978501626034990448927619217455278481391628454451816236873522412396925259365030618767451134320051586382509785083593861214373944003881471559564702559132377108224329368590770248230134737198758028327720082887567974966075857948918668710789326246580730044757190845712631519962120288316172332449384485387785267527184351122362217660840205029513224687401802388631718125609301759751924471783784670761755380678141534482479057462612062783336131918574919826429473177420559423543324184366228409499318747547258942984642965168946781655623574311628261373221379147527011419498878823475428323348864015556116587759462253742169368221418183805144028901700107886246570962567916298549311004078432665702682779130159520574169252771466109604704578414703885020240231748516821433348888320352421505114814657127857204450650033199151568328607677603285014574375818044343045589846820898945268191116816083200742372638828669056726561021068012950057885868768770832575719164757757992606551957024149576230647742812877132477561180923100747305688287849911800963125550877698538932175210753137413505758458785614775016887178856206754592706476829127730921659388333510249191489399887388511641923752097928437957059491022126563825104953591785809017404723431327041785015946059327096165802610570059229424939309159964855045453908812360774448947598342564540686668255648464381384387760321885303832549604113894097407283616060357458931230371303087480292739610567673726306325277232851272966914360953300776626462812173766762800802228613833623372456254138381617346673234097362543930185912003458828107978003647103669674575012189905759333494948560426946174398802065937747977736292977472188529276357355242309797743884373687763112123462722502412406085908392569472878841048037027102679806278536990248600394825180270723137116001481216970020230263637762570631683095731887820406284783003140965509855580452433965138905192840716300098803324052534606145089439895198420068343624567382470738525320122158724036829562314033944183005462252820219095559040496784427209588580106597329513903527740545374341688046704708048513868683146846701331251706179997452253284677659588976198406779404896939184821147996478431761614364616620163834183799233290151524190779196146139400366779373479936790713500916995217706055709561818225623781131735143121836359064467415522784656858004211070388070300646153607180333461762714352778746253230259627987940251801071147038381286368897911608701282896843719395499620172041261014366239853200432702580376278436355231246823737502642424421050836941885846630196292609004782837283082658211038153562842345839575637131638670253328348718153250031999909321198120262170814561291353430435362835189527026060230832433749381470880191462560690624940618343603194567557567106269418075207246406936604854311653031735580966565449699054369788181548757659088548981299249036205939747904724384104025842327128851635073444432328395525155560114974498601919221314309266711255827592013607253853785915608223962252598636232934735277894865467262984310965629455471415290089876648231912680897904395475399989287499116905138212241611946619376750022745885856415544209478485471195039979123158535867903018606402598367057848611409244647801413039931062593882429188193964254271332957315340473996996284656151733485064422246227259047751794012477284955150928550108199660042824937873357643954073718799729321795278306486799688603410005311073434060559872342995444162653799954203335908491331777882560960650638423378985555626621411814949810171728341655947742617057529605143191504176324824887168691230078040120391607111756948815667890772484678364335377989924285145488910010083755315408679836330735927807956391465674324310851996581534113285012627618916543417444839042487586167656361753968210383884872407189119471024275372000305530110664184073258168398316236422590128453504822044644651880866133824184361070602087096829881392750674274609568129696275955407815715146248084791725357299506780854656123341533132555273573657932528064757841445333222866909743221134027726319373183536757414837032767669745175889021243403819891779353688678828906914489963877299202310687974294524521145823327425040414050268557835704914208610037806539150938834504873371285175469210229333414840683416578647499947653650539397035742722440371252273206706362354384515981771959228011419602543350067710498059029381313235203278321748294499403144023479895262442840920199721140456051122405935019466760511019124122364787165248678654703157212094263126067436268930241552228777269770974116566378281388379982137954856350062165102874904043115756169144737302212128563200878891184671793410359197593666144898761468177813847950252709972323675152270122455294658940830688843064809302410011872810317098487770164589475680791736258334111119867304364113366161438137612875603349447299641909001957371845090370868493657429269366178859397184286179271331049708598022858753329901107467509796394584838906675991380438328965780565944761381286120426840691975819922681857138512324069890518473485116269357952849834713749771932018793189468588262509629141898770469034578954014665426484718452294361528633290038605242990495948569165385089622249448792285153742598824019615293220056281254312532523187014405727569398082571216977606811494564254909207720575800802435459274883132586227285323626432451226942730757959627827523178634334740512640191741340428272352688210959410892634970528984046139751694397777943490175449549256955030621968889075653512798509140279169330711021650667346226204334776614112954937130418347836147050235552023041849884339297170373657810130306743757245531561775461358772815223244101176107457293682201495153528377038166428383050177098912159780336522543594565150985540042374715767681246652926220157485191098433613638726182182218336233555871999757988785212926343468097796871796779124559008338857549111956368993652145579377468687087615726715030059173940743479449471415798263941315328846460601597169512529643756664429925744530990082752476077597021972433298330953232409728082208010999338328397116646396790795921892264212659317315475934511166680231451851300401249371912283954559746108263622123063754993998736490323097321920035281864655443243105125781354048222242194907278182294873991685386541070919076678721830582918490077507469510748523794775147481525326008100163386300989855492074929952509894176186347325787055199177733866915433839311800119860951457927154439118841993687896046337551626937924517201848221928463067053076849712849075277930819319818820907237586149058603802403579905964880779364419004601801247334897618634561614822488198633431810765358319767150439979100253628944255908844006751773767133993126541180371452163463572967411559619737677408534732161442854068705522425794393425991619436458150060809814368216699147576324869162478515055194565828465813839369718944442940731123651382111798946075333144945396297443385641158837918158481145543575189762328575186790396712716514199480679243680920425545886822189562782924959719362927949005397351049326262951291166129210260953149595075274676838547455653045158315710364565206641433493271967733107623331991596045591033991020221413590593501321396102643460876978039877612176459662587076367740376402309965217951290878183115682405555415815942690425287046151754871877542529646124518702481981234515568294369476495843237443037739455225893605031797135460748013734230144842670199266714275886120951673360282920575341410312761443850005594055132074151491928189653020219660136492323098951881830178081934255279145980850771002863841498845132390871727696649579641539519378383918649430655301970918454982201651245840873734816223360400398259311505491293032468679877757609398649293739924765938967090604925421416659778625898718943043057480627441713174289474917011025074424438033567040739395256691416854853968489888995620022766840860220211996497570440012150422373607352967572361425576752463425980439557423713612453822335935561138044401276462623420528249128067403224828900915919619066969052695528512690372532815256722521770041730356309910455013870293380536473896112594845149816271474672315496073568547246503583810493739167089453048651590723504116957420579138850491569577656354281166821175836484349935676160354405636386261663139908784362453674800140637526747218127073052618488835815191610215560167564404560369799506705087634703117618817129012148969058932379000360437268981111496498454435915679733351512871543552755082660622766284248838092754356447622276571485817225351169645551193005319146495616923372259423174160286838158862316580235158331060754510578076624257144993345487061915176247844003005668264489936911583725477774194482102125752377334422078641920778518870179497696219683707981167574800565447748118321457057319701143401299378041517802011693598537898873093422772417530934856106729476531624704827561853274234631144108216863991303584613925777287681319596029974756083145315676169034390565348209025121154437729742380340586485394183553407207685994298644152728619073750707363576476009835183477560403266214215307368265645976694561390996960920544971856035131216756477745908650743327535457667468573550780525414204273379120193930862489071612784408423701788096470221260709004092177850718663153118161483050585934074891771603308195346378062891841166571293310057090472391548591898139558562613381377049426860063663045373567533466489415645139167750273414209765516280394561788269775966106030199398976417851618039491914894192760817225704016064589132913598240778785573853721046987950392195398637655149047630429345676881881411068253124706146991240413845023198835076958928161543989489021399027516090762120080020504355525723804228045193640177227755954842272540907649905418031810208009669101597586330904502382779576051038067249445161679446258537689496430971017391365332927219306614663620613265059957574082255431724963588072803117068372057638866892218265756363817600450773353842922141874151554185730120422669199453103626060503395891307040861412987149335178260458532274779611293956731031131390337761329802381194306868450534810819067999846599754413713294428143734032902845274715634499157069821789205313005454540920515761499068018306100536866372278219222392296465707163497762394143195696244662224667786491193873440849547111597741572027189684205635786372664206523142888233499055502581232010654649014472664935441103748376692077678215012376027888037111106293442754739804724141652704999303667286932483053336389734326630953562355999129977034532145654133704754924340713450451221699652927799873308441725453549910535522558665631464984884678628200618452571965971625457725839738430615492929430784887835950958575458868336238877829601731198179268677695692504087400723518969115505070111330784726610397152303330386190725134936346586679047526695615171384651445100159777060866693444048162392573755418640173936920719694801549150172217578466627860153142721610323475737146318664154115830058355585061628342717415867567503256713443342269443082341037128709964335963408614065305186877235323817944224376116545948317189726758557785513507340161996205185114982692083858375524903636748753119285647971971573196638016502158023109169446096590079481382944132859159628526927417059278771095467853189666991779522911781213792303101947155408046016470344129077363082633165770309712923765999389222671226479750061971951715189547594180388439280720472148578831528036733062083266707035386796863799542402237952230850314514757763658103117492372145663605482672840268365624140390890192930426482268411130294072886145532377742989496669810595083159241554409960631531257498137973496704417839814142562598226293066133826674736969027989742045199738830961535110805133370759351672180841387573776577001383246512131344867690518093517067077235716125460451137987810771687275535352404810472252410268605245090490821249949030443552174383144965474806422847917095221319823238791483184196429107079835484225326090461269613567375566286915168217096031846464701601998343592225522221121859451497330725654369384056770698416079252779171439720964387195453048627889810222358633686988019078318048427777741007440173622513545633027262140760851713605054466481813024805727385748458848230974113525212797657392506485786745689118709995758837194505715474492719118541034457323166666212526058113006641370300241075463286103860770437928413904894537462378126065974517463367341617584383189229168998606285609405563369854555017949788557663840005463786475652398215631589880947870419045561670881120912738685666886751518898441113659280410067108946365666872427207661237272801999822584879902124791291820106331027189905348989674314482112417548621089050258809028610123515205928828488082719046970788397715833018029769452789484426682554668686945148145577774085953081399643503458835651372102765922555964397219973558750994661210227624716187548293441714102761966115466775911576544957570940280027152307906763938574393796659111111500355498230877382789703438197846129118358438473150500139726248341610050957820208567716642995572451334028194131173314132785612877140811935726591462111339272383042596605007107254851114091502207212589467693439461056947308594547980527515177955449668456639110154657772954333868454198327277656000552099755066743667234923475107382824034299223808773939714062036136087123555301764857363435225576302336196557166076583608224490963592987847156559276391197920593344173824477120480490373342914602415138014547395774463556612218056030450526952274172281538671900937429495607244812429788241334419699082777086830502230990669483743474290626538888603338022606366462559529293474942062524536849961199994239616213555932751648092611581214376678006204965874462663883187930976075765505886478774670108477857490191914851844281610084351287790009013801778230396638918374185157171363166994392160921011792112700233638508484323609262282878862942452609299303767512646208777398745780526553321731425636551110478081312275371397341062665507759835305228687858523841333676698962371789621949442002776075862965563768617430246850040563332680562218648708252056747109690651512212815509345586130434193277791000582281097944727254735603649350231404151640508077332062084485503080474162170223134289704723288621259959646592658628769024763556918431409798085975857353888798732455567149663176266590295079810012792932614202752465547610098131806615533528144208089295933287215739481510956473810181305665034539135280763461476111386565055470160167649500086697554404218037651646553810577520574648930951270243300704026265528535601913408613612413315038427973514852754465252513663913457213929196249638517675357701178163769887266030706981391328747994750437793019136640309754005551165893260228870718602992539538125828573804995526753226895769292397348450750420420269356960948789308437582375016823897705625821994855433034227987357139311073241767605947102154796514861146764402014240188762121658884838363660952572300943859979054217196581904724865108556276474436071747738210115346340501573866057615394582282125565179779885037753258436302444926874600260678459281683412266679374608345161122293424392246589417871105933379761527432143869523303486856326983840939703024974746810386873949843078940882475160778942802830308395564567545903817869013338968616134276533839402659135851305374467343672746789431630033655210986522015735617637362575193665726662694064111271240694325556859869072835665481331045457266611664241546969750824291736944660870006559994552297047993865671363957800289742004884204622092195708308818589786015132492462843279579582059262651441804586587274913655330102991172440935547854753006081099867165711208646566132644828081295065971300110021846265573415885833919201031517320558785627853759141211527820302611030693388682545901534282719958391258603960668389834689971204807117508051180781917197406204041863566085104138174103670341676890794170616059162001639955141169237709506523817744417336001890740736487375600235408237369577017102628972140651054897954448830711844420719477511043430587584753353826941847062132208057849603045698855270159505205960910964720843819473442046086512775587968540290600562330735538377530543229342708266360350182429345431976095216233215825294135611703861140237124232075669949183355428532202227104382253305813139837944168953814088078339896994784979228543522772758215488817583996050941860166135377481639397672134409988196305908693171569846107763811533349432163942873286792954851948131754808341774598455208226845939354844716213278193988611685703115192938011350451420574851626031401807336087906609688512290621203472279805843609689577916590994820227675119454431359547676359184592694224368739035152530354369567427096483385284875473273266325086857082555190715718370629302098553036593933246713834842727299608223587610175730753458388628439784809816186772066250557033012089564351830144908287900386785679006223321955020921536921560112135509180353689969908119403947106558596435788644936913501465191162706498366927160354755719154792567125060043224327746231394137406861224095851237098085128942974043514765303625872505110287042137438388836021857786714634736632353248519223645254550208753775212623844875858881322859161259935179810405529608777278006812840708023236814424215841729600324554403398876964279304067393037298917976424435754841005313733150884805549653459926212457879872076336576393282670324230981438963908422424884958005065081869597097045605659088613588137858245585488104387924268667977654112478231390448312175342169042778293515672114336713610234179224651901980836378078414070403562890224705808129485638941688845171704988451632461471050990736018438318722557900833959946026962625913988852422997102576968959180565796594677484704140694223348623091694340374085928124382166895949770724194001029954245859359238186503246045383947322738948519151394049119693462547621887772868338444893288520836935408435046401058539172056363186918471090740609600551659768683905268477360954932388967401397191403872669248195759525619058749693995416403722917905430459129524546171768650472561121755896000507702299197631353871817153123418730278877340805302412517146878281289081571116445919703728189650325944692869930478737637169684155545718038185055490077645639199148561402516475937834482033870462744303610710706412824920422583329742484939490102743076266906231764594728382213295014127892648229832156856205162835515399046204743390714139245683906767041797120280263505183404780505716680411698709532305204187911670684011833693485191373768601182483636034262600595570207286193732673423379596315659894422687104203791760366414302686515891955602633101057710650026952546499393404981273069843506657417252254162967459391694195875501081942578061075777032966856183714838357212361445982128853749097941650162690217409089473467689792432261234786733499172462433942762011322664616513932704899046404064037506172360886685800610018144071855953299462851531913614811648066238362015863734410607333752850778721584726137663344219380589490318270259556898092483001727302028421208957555300179349152323017953547611621601214851511946902425624579793658013082601446310596876311424811242286148425632058528123152996876208595590052375737101690499282383017923644267814179833795518976322742498093642519410604541224708746123060440232830459933514544169880995157623215350165821933643519077720091726617013858644467807026311770828315118899239439183466241795458592353691249579434065292477755004174230336513708804935275138256854680507608377617970076685097072086035699597819140619251044747366915994272279213422229879503016189257769270842653004460088094678098458845744593956260029358549430404305577799232853782353693807496138170937848964068115115286074648965651238730065887348257795015586798083272199656195508665256006955774360839436561548699448317471125059104925192709917740199613772278841861171831819269218984711533649805719786343995864619843262422955755543220673639588649718660428923803894859858283572844850702293938054020170449916516432617890079801013802564627618121751815073928489072353688863216243740409558091977889546350083835076053130397355083842950539079632156047281068994172884986514700057712527418846585797405632890823004369962706042048310573199442433022288641823019124538633485768881708859865326958150568429735207746527213898998711143779786007923107953031563533742175850905836772915547455979443270769571353849250454465048826015944879802954530710812114358596233452970307637202881140698109226190276287533378888415905770949878212492612750496908389589565109277264180043382602637269170313739623153510322768477633507170046596987446792182869011292702163128940419887528179311077941152714632771462356112513681641384368680451843616006620393671023586228860399102628026357699995592507337555551890561235986722709829584039958570024911833006252661937747760942752987946701309392765698387440087161008145875659668216440740835624926206437268817580919618238547260501124249034124807882741050768485756643973049813825118659777329759022199086291869841862154259842912628138503586436402879724614786305327163799443083138775541999728606960103657152935111051634073476210133411442982843815370457631867952203625438585892545138491356450322809381043920536642823897246387429597432344276201541404375439629766494280744738365520401717486960769775410536082271705864505451982819561677144853886122353084891956251842903161952701877414805357509064885764123872901232251161091939115356711920512367112556316885268371448135578334188004560056189280253550273893889751041048118018274740432864541251502613514063920008718901570186764257714987579357914715978478707078135131027376280399479462222398714389988036942628808417273059444631448055615260269225201930572070861150949945905006625740184869378085630705962131693425941699494240585774905818673845252771445322336102949700739700329161521197241032303376914531596446809018215644791944694188704496372137302900222255263461623602510133171842296227608764290505952616366858021953742521821666381458567298715944589273431420681464363807214929024376670329046137295867427039885272126653726784557602540899485361570307035119324061372691003098952881628961473951254034353736918889213557505352998314320374669834077101466753444281491655442752248450835096811842901185927166310115521410992450371488968537395934408428975655556457237187777573586642099839231840007411809868089944937974141633315740930822546099643787687579631780195406043624557060497503772763123842724659363260395817942839771557512454867197510309658471871601821235376419148627909997576037640859886295275239289028251526157641839693883215303877778531894810979028816153608732900658013639803280891886829656773008550976089043536629882338866474807617244592193569068402242482443338837796982204317725111630833388699818947542627036872097660886990582320143404870884985940223462975460436013292101150759300467925476058558618755724162685565299076695255393560018119627982796640042622491574484660224371898623626026264184515168316859008579341993145152789338724568679481999799216731873659873224666411316001685491627677514676169864406497193544630723062348946862656552702590986484670010841713595175880962821453888931902286489398995241649490426791079093636246283341840607894356335360762363610628853523649065420476115861894136608815332444392135490079012593660454606695001390028252580744262166190144591890838888115337123329381364253421630045077227261134947849372654705339181697383175166594582377847853506068927394760397576790660170752918093696437122654326333741309385670524766538403077736934144460097213718550977776116955333688472806198481009295811489558420515305477361864136064499174884338140482861203145866668159624154443509759157911481182154833024050457568753926846766844371800818184501116564511377133132388762983257875897964890974586900295867840387616898719084740816734306829671586001564440873393452997973540641008212378767351254853304137253621668586613072204605412963663214068509604398867977239946090384486816002638290396792972478078058622291965609206036926601616402100717057881956677578335307550019036284699220946591378737432403805744917531902720422573002585923209015468435137856226972820188461529977822169195615280017312430525057741162019414226274664787266125485807272611960544132152590570802433422660410379978099557689540132631172625545303333853470621446923353773711251880137149383823828189845434630013383119222779030369401715696677028439826648410284302379291241701844588685383837158483394578367291748431822520742340415072225896519933302082872725222699810943185595551967860652804767871566189462539228089646025213017752186679110203961308398210177713285745814445521426946098734704641979130958667381526841967285055843924911697229760227422310768439986691704411611571409858143910178400769417646760100469676904775193849644802927754495344354956568266851658197029642285843410746597555201498953343415043960255209483448306736286334642127623451896993447752497205623511087643909420183610698014032108598079511308958237522331093882015343809723581384911089156966351394212952627780188992477061668198964054816269316551660512626148978285197933399395532408877819667944906967796779188647345335812584643493932127226101873854197921154333031528138299459827566796893172025773454879966423994236088470584560022857510046066152384537164999142980892133022470348554422188048734388213367732531558700506988124153826357023084585264141180647162372788231332244835266777172254457021542981854100153423068804485408342817789083609094097163098699050218445741920432565366242629545539514378199580840712770301182734653887667431352413196622936765690899493926586294563260614058030627325848508428797087135087276676098875511702006055764527121907637531657107701263980455979637815694470544703449341585131011243283347752243647358532832355393567029406847412188032467262354077652451373721606035786171610675920304272293884877332268828287856899924141977340895180574560748849465532630926908763570630192244215136410213530812131994268697991601631843364133110304502734670620745217695973113185392251131847147406464669855007054754038016186367597442396384289421121890221802521214025417943177085302453894656610486756336567880853221023930578507036236266362698308858054532477849901947015780763543583335210869644888596362371574611332333640131589608929873730331353990566675763707275939701083705157304156131968092998406514811552020189201844830463777861213935022800518368484099219806596166332709000407226131634403425943933961433505355738586373209863932021338255306278033640087479426613823797961367956935938076712196710651643015308147702581503162173036529660307696693860650633074421061894032196855475319918414828469139652683882138124697603493460943130991215516865861063733000764619253107482620769232613846126871401072480268276699113499530928219356685867981505150084861657435631497571535884294609451405232524351416107112275319512161918415946098403919076302397112762259989786154917633081594464238195299270502982139821822279184458198382422888421155325912525975396811662812046835386268512046803478624929375690343375362421986319508658825147237734156442735835604991836642245336209332697639990749430311692680673489531820659422070379806075533339084260517282779951813979425558530094081129474739050458913214042456659598485498734344955001693877664805891942273274516682402273926799234696226646582518558463635583003102702591980945815092010331266556950512158946604768053155028891323753193058056978627040133598705637337106030706575061583188652090763146214388735784650360499600445196005046417212331063495511155744424736320776908761493595032126780787057307695158511766249130220637329665683731483609045109348598699214626403332397766637942585272866249999213704920718571078170584897148859494928744596220653740054314795848395702874911200204228425078525792490484243194707431826153888488772808248930119291775283128962002921052854444276551905920590912790013974874418137324050292032590580233561928581165901952075859543693745833881534100325807095636727694911990444775604974709627517261599299333080923408909040023479755519582354791347101411189084181176265423593889822839561833719052317082367942655892712560650575823128280035757619296651656742705044453204190494744986409374914657178273108640656465977429651879227585648636620353101443454768371003475546383203358340652225235058275329264195972350610425291356190051127696814589536279029236427827016859751771751412081961842616752929956923425103018880273995542314624268233823042755762173286846961536737092522173751570226166304146220279797526200132677469437943889156378728687197254404451101520199678415973035573384394756912734779674608125050887970600292081897667115199189498304283891572960578133871688814345684092933762024447492784352234028232104982301695797508743614788726214697701019844448854765008511884945709723084764618056656940443395713888986203659484984055488463232003262357477238375431881815428948724244178514761933966242331121731232168252263432561899722522503927952777983093927164564399154603907378246499778109109650588488749428331347675152549172031610186746200564109552909653528340972643417360964884686622866252589197612509549588269254370045954015032880633747851743135661259985312681626395400446504482223377795919596499763343388262056192060018896946309933034078868471513551570195748472273193933552059415757321602444937812617032782756394451648848232968499292912852957702927367860125801082678102538644909230224607693766612446190713980257981261976964078810227378873293277636901904468249214901171033608814219604270409715735139302861242382378335463698604557500623692983467767487744707530377780971552412297111799091051631702487353653418305998944605970654344756814132903511131244934804913576426201478943809649311474580277504895288919359257792846014643967258015556627489219997551739954051764340333585268793931291242902811313462547782043208642112949301719577867136137997131809959471350850845525723124017026415083123069967009203302091031767899990329896627573410375373071834020070275374784800437484605192305499469077567722671741750604662496070727871908953762898770928109266878434333159226776537367028440697167239239785146609393187058242259764266881328897566876448462269661765208201591490386697041335442362819140093469680423018325191791756897367670939133897724742927672883967941175658677164467638233519181719001373269345192512203503048605806321709920095789457794175102064853558768702464664929823979421731873287790068420752328031232583209250061632958756933311860633653034624848814295073541534143062038182384808834859459833491640779850410182214549883202771939050683678512707190278514575961300297042327684772755546244756267810909825243085340663287069606938456982264770427223250213306346260591422217158732050305215587648569288875895631500989148112017230222168878441158680871806701517784261268197272984853312715638250156972674058874114089465455659729952837073805459960541752389763864760140857631683987703057310835919736273054097747167307948928518358234139408245891968932039469669053984226347718200994623051614902601096744154931220809339503607220939764480412028427762356368440928997153962791284151557079186294823956828478608896469793261567233501080763462316985687105657690800910015548183285304414395615856791125316206134823361469419783170277541546039039237741739354956540233706600097556211345577334470232653483210092512964287391686775286365764407686687405432012269215555650523071763962762802718202973595569482028341357358369099673096119558588239649612335234072064233394490096887308885366160132579538552114339716605742672464589429813389435676595361564251373431866183010575047657235515639925946608035764663937956049887981549486210243589545341090079161490539752900323856451916353185860424594097153259854345823375236693706992200953765976812609571203981308119252130729116109901520519973549587755460522450229986825651752242396429704143764425669786626396588008186477516846336260983206751529473346227647484770550185594945688157549408189368013935257142595597263622968196482575367404732652105566546053564932033539156736239722415516782316730115069306043998938243220893323133837154768538470789966135070317429245585016944883806859920183486153476742738600173105824311644722750736379556795790822078766998974778173114523553246948019767184381222217359413102342665270220581910150287689829901105417835182446549574399848119371978530707431304155152693535562109620468509315164224697354301651510379945488238073547944073329138240126766776597463541432500591435948336976407274845411253395295868375814276640887263290820208736210237925625679736191161536994038187327367782733313885918358890648511568381813313615267012515306763898108357303455701610263078798017638363044120855368209986643835103544484818793519111291634646888971449318682615578047856503861918374611409937470257366453734853547739433816814577318093896932824241326508017685962929736689146724570321962586043443036513269024812402076095766471397220098386419046745044614781104740592440688309329983070560562655996472547190991806820743806348224427437626637492707643049708095810583999692461212855584509317801425589342417183821662891195076678405180928491423933124994640185081747163438500830602216583111385112802126902466155316725786106912741309697751962953388442528133155217617864337314961419746296739938034529744252244071571177312871127812002161279291151199013825570447779229757535742080133505326687002814507346728146148082887487265784689081348879805012484440704219024056279315068863511899480478476192974894351737676641668790018540667220882348546973165950460652420397471098687436566746083736562914464147369751661815474099749593818604515794412438532238649677471563406063349304689056768118000445821860260017308374679326005205967932915170244774453178978352451481529270644659049202144205321821666897248364991540192072156762018127572135078491025750701855864079157127092935220884166729668325876116701524714667446698265162264433853633349592572421485103762403642724610288413346694500348720937864800409134961829854867611420307435842671897966694201016736004085198876669888773312839201436693889720914885388233393369507644323862209879412525420588232173178615735120691249056964013217471450299559028702939797887193163356715015676430965656151734566523246013793451311579802539833587169872833183521830166212830917644694729515763509491256879816067452352942269016576608515305552769313905070948683553964429936192826984738683022218439606431115636761367095867575072953449500972484548593494935427851945904513645227652186297774907967159135350384891685834513080362549787979915315243317560546364415592072953133911485252336440395299746448584823610238081437453145965500892488602709382393727733267544513417988434426751620317411756251883461107259338351283594621826274933508610914917896844897746363854203888466263659834515132239150285800976655588224640941674813184796988806344821438042106730063329088393933999482420826018335081696432886124241751996005832535101513407112874529964682899842750951582626104724429588516332320792838358462633316532770569800459891686372730153406856395553406635933161882027618774620362163301417751177325247856599629737773942475957269464157340078142417169679204287280209335159496856150908558941605028925055512782314500869972076352519140817155225999932777952535340172208931165208121940759894962455339152151640609091956089494106446240090335853785336645853431188190067876575048090244800321675932843100915388893766383876542282391615657434583823338276287533714722407917689400557937552507040039068912871287998493903328187098556811988782814394389159180239758851802910428546390205489363484742469245086176938701166209685964713410716382566775559257242096737711527882167381897455154550908324946570713388759641981472510957189219560888447945836511787713899438298457519520491064259575622701687606591533356418742172228705422598856517089002987216337762969967734902868087027984050843044174154668105570734301245862988693166524159796421216327712732746771346890974877893717357901724192559889078866782124523003841285375953627742445060180180510192659718186015026651322120219718285994074726383012294777817347494594578755671994496124562351040657278768049913759165482292601468759717572606995966633836934826418679816998553909618565456355968581759935831248090694542812303776682772013495510360685616367530592838844652824325431075564220858772148728373776255839798735330753468695541585681625132468156157956958433922280873287036369836818997380103892844771824053339568043775781727936446791705511811268270796048364847200233021394133185600727407128757368665400381402957322798346587230122505137554651748038538275372225719689801609857163775859554908936844032064963474189705514642346509013762832977593135970009803409105359221738030966156485132379927457142468563177105836477396285775332680608082630635832004995608856488816260919578575361333015146665807900813055211748679644999149972050591544833594879113551405914070155132724141631577159849380521845588411677161034381851312416961984632421335330931277933040960906016188901625467700881314292982975179384114003037304721040766001381883223963946580087834260725938820599262293062721468959581800659023431222661001759842602612479214431499092010098878784357199786672381122992525454637666804731958518477280521134815339908284340671562130410244249085146368761997177609783547940972327058413509553918450117729818345022026533419669020679209922228689260925225465352797040968281600406477301187175530346660732818690817585642392924768514032804317690992647818814828013432475901619669802654861887430102825080027331895109200609459808913378721344813827006598125687750510490407168475869170810982415544036083947263620736838064823014006738511966548774206239086640864142794381134003797601992586793157047584619377304863649318534300368122735912798307970803354133663791862620417547025397115147507183280670233770459304876342891657071665903879637426071109892976390482444768932639098071307338576012664121625626455359708913113773525814367974432364138096283406240766074806985649527020021137256050709051843146507285463170191714641714070639398296742178882434005528859315895438088283311693662313550119000147130692138588996509091701947396096881766585111892998299919346006453129249586812628595012485535546498036991434402654391187115011760934496184304910400373390693521999658492936125964856321690976811210335716875733330841198764655901272001321880316649237661672426291201522573896241722062633016448413630619949657528011773860722362877345669684669511178676273727845070143963967799900488061434900826918744724457159290015905709706044411686977659181378169321112773709730820568672602316038459995018577442090521757758140448036793188575669390690408785443933764642789543803904572918612674300868801561644715884716614159734955346356722022732650392874733062766524076109942660646979717160800952308139845966354587868197736511622454395875913265339523751356404607558487613820999941247535869253767608211410023897688148035090053247390567241337605882406665584920806222807242172763014809532843717748643137135481627607426451176390471731222590566332349331488725559172680950458129772190563244583630770092006014965806860077077138609009334699535885891851370107550138054420408489397565261819638745327418731968199143782658776117466108462808773308320719501087581953126831671110413189233934535526363975756424831335096979985171577370604158523830583019481091168710095390330397809560773862652803555686797560095124849217018374973237439627786155623831759280258184042591800314678605409972015700100571366858674951098699888003776591224784161628976353128330026968672790849965070074022528357915089580055104254521095626589481156777124557844416140869462338702102479135516346846741399426300470642343773617406276789295462623945750350237178210970343838436571601595364542006139899406934503471613248298342725959980227600473911257439739111112910995419749610774053097383161782159262437623391124699877904764293695044651809911403831907449782985775133511476508090116748163010493814445358875503822041960920013942842379781067891344252203367169157972290877033362683105132773350023695765007015582251032379420486963599972134515116871201802633583334978824148489169489007848069800234552232447532723752037446452836093879807452149217808867930037170343838861147553887803669774427318929927748743677724448919614555250825495902210661790421380922616187443205407811603322174560534759399423521096744691393675353254701011250693766273743691249808140723522893036858629446838611813426349544039484626285413704209613762698776834912372342324846895833280281731335951268405796616506981030968788459434814291139112455451570825579360275119030425952292882711473077898105149392555598694635327546081812207023534218205305047023755284249904030564923668398706711628763062766260519331762681706797492490672094179424992732511046418425241340223996952148300741975312951899858792801684409544871807236407404063071291685923360490117410640947195055807120620963806688556298893446435750208265280647069566165906306272834952514030159657803802458671696284315284430833126457370456756996812977260896267115573457512863435973891703040602405663443868427146382812762612485924331721987515460377007293556841906363572957689709573095267167729443972154141209789750909765832889040428823462795831738700311017143205376040619069161430325537076557029524434602960641901385241691393928043522779534350658133554832619751800915466916602319619153260051746625688716021141669430626739028230446115472219798776224669437241628066649241596683653737170951390556507547135714938622008284928686361428792028007355437700454483822279978896922805589331006007562817144019324113730171561817133893498937933831915477934650343796373522543493401182195917876682889538846329253730850938273602728249478600859973844697961076488270226568414358369063186512086929842278429453592800949071944818416540194606778135020783269612550449968198849735137365142011933083905030669735882415616937819491112539773872464943480071021614978035823626615606850680443794537051669411117899269670896805291038454041850020463131877355740564202843143229232986188593240947489208415764035730721500599506584646097149689057550132135819854950986856883157644889571974775418098886254663653472969384761059770659229940063947338012677202259921852106014221332344967031134343902052903914596437450603407131960869386428788237825462707571384107236878170074918928780178023746843545667227322967795169385485622940691142985138353926761400063803228589097846082216357341027865573852493792750543825929177685026120164725934779383070386574964984065740023265029448760472576461351236875502113970592932722636424117304595482679660353749208659039972718156621970965056972884630755924127640410046425493238546386667316192055656223541974168604247433116327490382787611360706272989122478228080387000643552583473071831830006109102581073731024692675592878579183851958026170625273654978876251855665430788769304054187381728708714651115327344625912944958601843817517854974009538129682353320184214713103789297000319497257834078140578307303092476328467295441834137942959464532338195170177306664891999515983769199599459872942443109070808060631476492924764414661725424791893986287805336331511298450905777724717781837674660363107729756087964416945823534383545839385201372173882694651235224867578634000004374003489781012674865794434499109214318949417008261147698711161107133610735360044334846246014613822972470677380170781914675603236043299399587786980342767601747205700903527580726275823937559786415255757902181011937858125564879909762492070198855138407372720837696190097937603990798901234122003992626937840901206271744208771791985835491567719892998797399082851362148226719573035479517137322802960098424268103871245364887141477006220069420835612653390513441331150044870404774391928866127999974132787261928545410573309597230729922135956252708871985367866584675331621626848774940394602904948735355781386699623170447878828714822484826738120017804951210073072326295643325461684150576048225687584456711457924960216829488558146076357981921791033169692607416651545594790383250419685138794919834063122838215509402190349169089310250219661278141688428063880764937746877766790819714994938010121186311072337328379526112933058872424366662795402482300566280707132458820238354296087600283015020762345041340331478589153692740013690585713864466845829204558282517201349207464809272839721234809467651041567991432740647547686589613129051759565333466817166849110462347645361338917785643570882428456187296131819386609182614914469648443277291345584699672852025203102079495363246163706543495044591192036036188098566001690795355870329132090635206436145743479734119287239876273990608904700404667493383262551865374663482856131457600273371398070395405200203524918085123606015471979335615990286713429791423754793308372080863629258611118624306969610492721487284157180924285178714803727605102052562957300315765237901327297023901351517514657524315839287333625411922494652524479429958291259999327476543865016298000805240326865240333692889134534815822480130288667359709308444674635495031619714818049049036329226576526412157848277238250928320748892936283058977225305209922415497316672261474757582658359621020921225580584970507521928736796223663457598758367625803944785470204121026619702526237525711359447685084997320140431156643811633017398884892732799829266529652637974639833586467668202741529481173094573025300882191576232633155803069059496979428103509875901036591020310142136537539799107171716448225005130338713237770923030849200578402544285477294505967668381359143691193628787129742551055864246908877836119479965165089876914982762127712159662357488668192655254320218914788620446554220110529794364072671822252142669988188070741847156721622402836551784069860603403555829224675620111253736797242547699808496833716707341316194016850288129579906739089519585026081866232815255457023153184655730753736467473908937973763459515636903476582809667665587559053102134056465948993737694682957838769921070917617518552241016483578664172448567966589206017411807288623526961492314533805932006187745927173124876135268113326620797241345653328648059368747813116207809786812119169736834777109847497905467344311129817608166112299317366195032125009509065813578844831212387513520547844222947323351082678125734031479113017995840076827070743129828623182206458979262964238082679167899245587141187052558724737816059201686934984399626117340859792825705013617666609875829060705664722487943240487683560344668565579056276793057379637895967998209250673437631192177963243812393685410816324080698272055330152853897891654751161538956754400201058246497793037953913046132609013530186251882970792339281986803029076073925806604464906371104814051532061123386930318047193558727771100385752290941027698683594088504945001212153823854685264687403441464977609714161989570274506439203233262747565568452595056893297357209341607238180066442778000959951540307734549052117445370611621506981093861288012963769562292846139351905030616460890397895211985486878435652010242019560708146657285545188924569078072922837289011156317087811488391913380931349541570382640105058812562569371540802842102711535230039858916650728657322582416211488662789427870474700993087772910374530046124650304522041880647934510854772313174506832037785784113745210991246250159921718128322245949980075903131431698097063435866222399853902858264540305227634135794947133685694331641904266409625409660769601552699331165206677494012748085206765094833288507218295272245648638132979834007975237203064034988138201520627327803854897152870421817808085609084006046105763486744364938120732043322654879402304869460668914418551209607969242110756429062146786971747857365661407687570834950291539276011092326031116966816812383491518767844672820422756756445146601956174664915419339188603639348329090473833804701351895344162316822093054558666712367545999908904465782769314332131450934589499897356505255567532155484083506526190484085122889059323617836780757790571529246687841016090569485760626530446492163541897949972710208865888325616215593222749960962617244312278493300926243106732467557778681827005448337213265748285581557015512856305314392051289118422761673737138078434514509772794813992792681175711121863508792417614196647324038678668810967232074389719019814535889627989934585386540807728966863000680363760672783266190068635652734626027559594671747316977428068291192550616988868807986892953283098460569375594388002488703821862832130654108499124282559870413884709604348019355561251317338417083772145661188782364354476004896653583900507212489972811606693712066376127634497619561708305665080671381222285305874641024472056059363352553094208713204840257515813472754959291943067579295572317560313885538587716577364384123312914487226270306680822995419007129824132138381721874190760126437157641193137051759795564551286348465443611782929473568297728430434398579948108286625595958070690463506807985878171275134946957888730529309537885891869365371629358805202663511996362020949871490709279278832764719821876399046013854711548956546595833575555594335740953812488182963292755137617245743732487433971302870506923248363650757225326782773727933450864563541301754341545429890912014133957330837511324679432412876294186558382124974158638056626620798086937317645883789776719688092608489072518629934130385131567146527918528888292415389844667352199713682547045267637619176573200276339247614316611225423252941842148060140809838309765018860558857309803030726474314940328796800359810748884272653411434314328443818143430609441308535642567877758657261593310201737352060969330036739811202677994065385493831082185370318215597465940427051861210521111342355128532456194965122655563628984133551091865869447593061645894112693520970826744168491895719328769038623578835523870188349149330110803424300921269009343869495588035139603208015528790891768035093621959868053311050714392692031664265467955151444979016686536732681157444945420805185373989679332441044421362241666218947703188167362654831362284348870042187510458136475510082317945056615170158484826110895139549674995572292706921228257721722316045728517015409422523685854203419173407449280716697475756916173505752887044428951499232895875631216117600228839255637792525656643007684529520653851014557444575838698164820224456375722990594578364055766505877621123924502828140663248944957887599218847595855590385039812018551685205169136004410517172356563916275663384942768046939696438663187632449305013681891587449803915583685261497974367361540553689144132571234553348671711931088316937690691979789300394823429128509590327900375592153275504401974936290611871076714503503978404250077268351714760172805186827734481515682328399028798585612132201544630745252045221518298100470073979532776858041319667547873143086262480169287753219671529598365855580770434779040507235671308765557210705404894268862524510230641447447459793074190114742393207142803552179870039847595552209083726566874224682450220126669410531959662747560157156584456137775997234519426015809327471576799546677410110052488391101292708309554617880311018410744856016772424578935511950566760135234067922371659959975779934596859285850486144348620383172271604616234668868004820948569142780127649878121360322751210492604014678336110069388019662706293844233890265412052619927600334891476399530963440594030982698630994466076639184629495180310144520249507559184922383543156156810442194502403263640786334769232831856892852888777319657292378974498531362520955775186459692594566260670225846037466804092415900992211580834984951299856961162314210312097788289826062799424896307436364553143091797472261698830146793384719199579423467606107614800125175477849248841563697511208639264459503870127836387372923302450443760160771034995689185489777611698773644528102358487533643770493576515374343205364573528632285135455725088493945251256153473887921931632110514575194461827001653981308172952042051701174647856315919160573720287150895933678558016559884598130402708208676509344935769385607310514401268545654182535295762968826213252755846052342439047361765935531579460883549215133545342930072941801912959416476684387355570101658495994766659048619581279232037233144498886818521640357665339759682693878758302238380179603092568305053575644260847254839632083358917398246150196751361056822990032071222002653661947006431641886862712547693959415101486282814510373273885654628006602838905586663687226013790725682217763969599484621284588723576154483939044796947260521522991392376370332201365606021204175616620427677049158105758438715779147040698376970261215394987870606981863118410665495247027744680778179097438429910203351421880188716312742730653803007038397186035500546023923639898213127848613887522782959922548714226683159869643091133775604857782492597347606215725365798590925851756148304087164433855777597598107592423372982671376726801548197713049521492882272136213238472750766171315358483284606014755780991834104270648757418783343425807743256662378154536197137515977115806356085813814198768648390378786382561228320806073107292002772899204199907133477056720188499497209516302282989247077422296177571955620339016686648849265505480955132363571811539991801829878602886418910815340556594139349780413436344026573348780822806751161388907557911076612277478915830699036706320369734600553632003381319536763288336913763442982177111281309627491371679402305304434240723431076553699695709194777390480921445942074993514469924539240123905578646895010982333453370887940423583659156657000359804570442943944599607563923848458698365128790863760082625219344913749178434884756352662441143508763648891571899689055511438126314990385395441342507573458389969599103383360173893659577822843308598870117187101711445270699122250784080537387988034591133835077303222180872742410185744357950004111938677775240582726805316242118880240327665703365639301483320112704355128592373001351441638892588434296873981028225955522804053813454180766851526602494478942111746933888859528278867514561679213691841323534058090105717667573491834476715141500479954405481345748427759756997888737917083185214554722785539947689541460296601277488198644933507296549088317683265673036535178834961602422224276283928304386357303606976866399067981612350981046711188008354326324668365464250256642465833189100577215339789206740518840901353573628856409875862512886671329435849233790957214598535016529465306346803938735290613298319279858461046696105854122054365917655568904825861683122218658371040273345759246648995510418693916075262813487035505085257511615804886530093774276901468644726034022882413091380940741484318071184476343415574991392485081121797581757645814203966330862895027936962684012251932466101519972801016437442413089921904666744477214760228976074537079697754288510077671904064333390156078869468778716752275650307819819651979795033739953967283794443133876690560464624826001843677406940746439475057225448188609914126974443144750390895323227945902082717532662850488576425257820274949758844119579285770000327779390655996962743618502477791142864255944490532970076588174443557245129205795687198573210550458889745177236066680141297773424683391191226320894355577255145360089099170747030685447851871591410588845351077176525534142774071344801200004305781601623604172194908958414164419283627224129508358044149423388827635402802230813891726110233763154629779634889082217923380762884262716635576665012656397871855186912573577079190803322013863983191423654625365164435403690836562685542074400756980615299068541338872617634986895818706460890827877480612162040862407304944751175920675086319501348653206965120774737589686520059765387355135381302100515088693675950389912102201556265038388267812314513375284826202215556656008546905158671344079975397307623663849722258827949671329092165182573512451163442060504290218628592808862605632576929369731550070554205088254006038209637264669002086976213000549276167083060635548452755418176361491950301134683469055375211684175416185639465143130429671979736991740322699393682977823370686979619727912037377607144273037411357285524569387501771249594739966406222197539179369152182674233959935107120674279727257453414234638606955143357558087116175290601162191090004166013961802103995320200746336848657913859163367076932536312284837497814213847572122632719874517565491755846915685023957363157261200313184763104603055624763085212345087799332125930893319884384497705922522376422070878931830299065818765950759315733617604519882291823265535797676830268851819272630005109992643553660813676219920893980228593092548766804800056310259382061858892177426644084342611876154219309861209717375183139251202105530014712844466950515095775058641838344264471895955623011271910263302524081518685916537305175252014275928045464977626376120034403773264025195337612101353266486796400620040665537210779150579999503584550882873312174811277812794981179210090523250793006764583862967935923878239075154070133429657785353133132564967094176041348343980676798323121865236828055880981899013048558113990489530499983819778469673941078629487478771273774698110033908666632633744981477959912281393270973528522570866681231068266913547301416386069106851935092488959131715765071882232501971638953485133083792075971337295938949121697395614363038300337102542918118380362654095174311035311153087679776062087622843917977128400802748405271790423471410713290482713471587760898461716757757787401491605289445025644571589784790633878274664275181933734005262880674226885292792728526772819594158813886347628047316734329875440969877775722386929306068662669014007919537690045881524253443404916498252995431801060536151518624960093949046185063735887802950929937123079650263403047793368842972763994213485093724245475050649945555667945818217846854551541016684157756825942004209280906418552826097411412779681947488204072204640137293707299554654970262978057943752700930094841652514155358637142283347397488838105554825404786377229476901677019719472962927852921502113133139908902464469301159540833971835408618099581380252970053146612901394954117231146863359474704086085671232727682088925947240926014160421141904263252358174030974776716252313806400721310010201124460235896387612707121709129356037454579776491058046441016633629628894497617750113617547210876138455744253795891814159107129783200988922569560370342993767801511442742697636291108426885636385869253645357704162061441799653068458647753047725565482117155164738817039041234183375906765278308936686798743438602893711720380996048205133410105238251144026943120062465681834380230225213151048129758095274242210468993443969214927518603105098717291293632020140154621060235534901413502298685505701056407310381059311806176978734899306765873953318948407298071717305982954940044890640822165781273683613681273499296104989336634020520461168126272263616586942660786612970218173429327437036653925478829341387464427687620375253444307349898461539596868339757727505851994430062219787411102424945410473595522877367410913078671368639622933098016261733893901142019391230897237783361764013842097959245439451083489013729587597191625618559078082514623779262355286395943650890823328279346410427025662145223008990655999437092845716048476559894458321641945296641842549352005235634707914274535481422169642190965024477157459350871125460416484128852255824723778788018075923413150337268445360592033420901040034424249026522281552447423761669238996406330545903759697658102789309929109502122207312513824607553754870672949198261129845110569440994992505914322593737818845610773558093070464046097597426397562005298562846100554853283735421116452376985353775285182691127157973459879310044074772306927489629376399072375744500572629079809778795080806453223462056782639116066169881742605796851009924673740427612770824182109125444327563860897431705483052496884263050884005018321358895495535638218013669395585828527055430909701397316705571353955243553318287383585868025289181958165495252037284943413469047883423592996240363610162173865404298876054246397101068346395368178012737556542044071248197379606226011188555105617794015152209241146509653347510971247780946034086249348960580266891152356639945184056133918630795926460602054396847217385169605775947739351426682148713679148587567094900415001740321934088761820225740960984617861462659363841669943275461789380336990794415544695551907971490517280219399140967341914177836813668326291738988453828657778180717446533291647282855288651104151679486962778676165098216236578064899265628939379197058213780200446057971602271264455321219620675629502432591749117433303276383279486775572568302468693280144828931808595431015354947422017206497849329417311113047521868543441365803896895247065787391068679311853691828556075820826360653056285754626582462104936014056010487365401391723686618562949564416387908850499424048002563787397486014006621825892685938077208125897856957247913841357399688841231968313792304715149600863195743610542496192881189167658940267748666486768597515028267285804239492285529596407208861214404259823705201622713521439328684651097595732314142214763024403593585728058626096254805892263309171406675843784809746014781844748998871374077952124731285185740745284013744316517890729934940346503263857673233716769222525725337845201419034697672508504565773789668985914298093605594436023644227524478867013873113453614924220592898690865185145335917973821079716460244838590577696823954673877652905563172792001329921384114759683112586195567343549983488194087151306892514746505840230273000759957558989592821302546585352392174542062090416950362734605938901464534198159791747882407285305988972649834977918706178334968624991568108329821671419414166854098737252646783535643730099666560736854153240966708046578649917739048144034323743097041143772656964571046592423814223667870302898685407474672672003118058038375592560249947152239659857496255969186754161199258234382689799914681716709145099304159438790296440372122982271628994784460980971670550002750004007438418178111723937060455212483130714210873699289830970946418730236973027683110627281795330171272403290975156955690883841108886891358236472465627390769380586438297247058067953419259409090314483667272504657950498680556112466995714500877191326688670608751368038587017384345803206673742216821692038330482767609586809643445231102767771729961434509314460141888399938861522333854760664507101548614994751616481566659014565725190394777185200147339376213200736171602010419086496568362446929946961327452671785741757736083347136321799833988918253533601236634668736355894437171323407333389800700501038535415643252000423309901875874259632631084510115042954881256940235062866942950829697900724212063107741132227798197068228510004242614245260485459779926043600509279962868199868647776934978074842293428888033052624734197092387316023623833241757731335555157205946564230402101814952164909847094536692092886055628949161827988391071746672508006827847212930177052630996150345030203189504246012608511093498663831196805451644936981280509023275688190542629620436593366213653711600792612976436144181495267840417014062731921874760342061816168825022368046443824121734388609839809702867540503165332736373495284571165065379948173579329308412505466373143926761063126707721113369279502845840670573161486161222121836671206361127703711539360567132444614985361992930087382613478180907007209953625203504432304178187574630080187713993790620141758000552912040409153056024336351337538634720002898405217382140453018842127451542542718981798997839848990764836474413169923154569947439140082099787422380113465073392466206941517835576393941429477660382944986217380960074543380671477886962929210497028604633938919086687152070622073674685693978697452625735503560146167988126159657096430978067206583066306565263945601908342222048670861410342176760348472420947919519116176235521593220210181282835336987820862712352053573971748423353550059843251976645549419726577391509662494422817987362125976898731020383119069385506219785166902162574928496956292250512804283653313599706614638100501367847507830451466665035226969410710962314391199984816758871776896566156151704555432387306342633087525953428230757515197742579512219623190420698079448596872762886361876630726866728145493052973109090805590753669461580215378940445681438213538634907359836076532645566107914557213416585784326743401732324551180895249292387536372987932600602651487191545751218971620797956258604560592844370053968571966012730957341482571254548622859391346497293493214125659353776014303536894278042656327522789178475362175354367735887369464190516879888185272682055459059836418621793318328322490674572317987533308901015143828029170392807478179219662539343039436437401218757157127722656781380074776901173506162570226779746679067286431546557447580564425336453062937711556527825589013517268499664953920665557347203342149896480268411074293986163351952269499671592847245215119984268723369967864816041537134847674393897823710325376517575403525610775701976840044192663116617195793730797924157763400021121705401549549994063155125420783609891891963137937320087871484034613988316367054678819153800454178310445613262316690524764722953558807250825558618420282466569212008274409720530011632995608139873937846914942721685205827646441701882737502274412398319863080075591698562870931497149468430418305337571881221732195998529419772907792378924331542587599644998275002960711317489262338701400836316474234138359501785890132289140397756689839143468292730994888850238696908602673847697925492545164152896202269396319550056311783236104872125286685402794969782430888784378944197893570938575566201751302706540057128827797697414258072113823125247503799864392084228739829033962423692822875705337986183455320712114924891307505590751372136721362532331794046154214881247008740617048578471341591330625214948095844993944759772916010437566652388331585950825015653257861767315238745910312006027445151420208615497620619345668691504219730403441430548073758188728083455222703573119458115704202058011029770657137723144167458520535411421136665558775336560184954929701901285332747861616134026755854528135430930570673490970917910523942777877583639298669559697967216923523542093009031396819513870101509431276318210329811132851708531627900603286437906016234932416602226967700780776761561293799572262288690279178809148635563138882051096621387691422725838236254396743104925381446792559318372893378687364170363894841099688595322106513196315042828218972406385266349586743467270063813047125920080207103803933038797232276572463457114853394855059959476951627541838127946218252168126945070188114410288861870582946691017285645598430567511193554296043936909791827031611152458863524474311473108561414255747022266478678491025197700951918870012039817767665627757284450018571700783706798526846710620952576455601137235415488980799254632228759859880145356106186476565577821499761422187030618884666229429435144374051959519559482652289882516587795336352295971751932301826745276432401427990276820304217530966239497950811708623865637268701002227702954036588304351163904134483788074200886449961938121229697171487339965325189595178947768150336562496210518942690835601880594406047611214998926688028325648267004767566215206273926821639319910247614381642057298423046817101896239051277191284832387622855580430796027527120325135685656415865518949942056744547119135979498953342567518747378247863750145747164846028985813417568340927006643309072033184542727344146153984583418878503236542110257912934798955541107828702868595867277833100379233579835064233079174668602316092299893415214401744190575041227339366655664956328534316195848051982735788230430056517003976597450811208691381508809062005226881938404840142151246447437737097263078830137066088012838401945325020479483810250609910743314339736038160238495327647745577464901458003967167033202318886913779086453219137997397014341751898554229192746158594874039721240346277063330103306729854727926613522181574158501749170043843082350613990003889004658306774289683967610719818496473096411173798241126501331574949127181401153622323718094997518983570927946853177043899391964688896604446715256656099326755109410487044830919890995194120675463688852470741714673348117089434023963830790610136177515505066636941622893408155173774398152937204178011253287886205016325373341902172034609284199712460786524371348539555025724450572848122233308484548868666302333142999417709405314606337638002986179556826700681319870206332717086273725195347407249048757697624388377806728047874299475843145374996605039328383950597185516057795328163081930970410704932995723275931288964762210852052620797011069641813838629268004288682554545619185327218218475035056760436532513379741077425546831689359280372792653301420501078002557324916541413073035585047692283992421031533995654045854753811162676304453812891044935276358996970772415572102559717097533533566138548066890905241060910546263385413787488009398065629431651184934887480485293373624434870398067217232244110456918835440675461809368598448285780587381460047443821797386347536653057919513639982802389264557044258274599575543643872868072388204748362775939620520174960000884765967432775659133691065122639495446219775903356772936423524717685326671974016457236670729037496872526885486135480002646798258221364289973602040361954272098966351291124428863539125072271232660712738437849435046271594463483122187845136455057070920883624335652505014256586605004711363997152797523346141883894978280040777214535104164181705426965600629591446023062530966504466102693098711686797578095927205111349332417278387309306811378574047238748593740550095662442749119355733712652565586063220122156874528084256900433306584338423621675491704928187653785224630345770786366658223280440463297569830037132558586250866212141718836134646576226980625376422348191893501372189613888514233451653354955190193581514585674525580882225962824993645981636394400674056991862400650586256274492323571209910403614988600788382532966767846779418635386442562970001811841233070028552401956395542235525897898658320555164674755858743453100206952849216724687456644172953519943274046590987573102454203778204470533383442101067301833961956780733982301837438367282875332797736857837742053525986762285846338989860294656454981700345699855842865413880572146796978813561449686602299973247740100832702670192388013913872309279154716059366278556053129234635507793294212358785353608096037487943778139015496975874649378985524040538120185837268029899026266783917821234169953632387108563301956812888278430296024172126553969388164872490506896546304300446672466081723308483809403223864877996178370183384155314862786105308975247247904731820860781879191624640017324201456641769029457996696580593680101157488477213410743996196781775018483990563746240932296728223206132779268443542056232097598044533712121050516288474159883128872454154315309190233763954198953670896436785563583301862914678614336581916710256901754167501808290725693364896709782388973289863288083680391415239877835827298806097440991546060771359691889479579729207863999637168923973379735895334368915540615848715815066502441936101333291591860324184071958897547627237492493376523389387340484340588159446901604151241987997672468829348221626062176268071397200259423431945479312987648205817570796582314171362675867756754315050205692564369599964494500631535258477364515240053085332131858563426965588167208721318697650995462444564714214793250955120137522854700686748952349843109464507675203775059263713799537829682768652367863307443627409614631507700786040302030552137812507460614614514516857312139906792416999410323770718516098081237570038458581524726790259144669668233366659507740621498500265379622282888574894243804427470569735614899067322717998414878721176740735026341627177626106215983912668440060838839906567503423288517407908915204175237544674360452250222690978555961286354986073398824787359678246824543181072265235781516207038779853580149063454165424177056113453727640406358967050902460171933320412879604489188340159574710148245571177216939572032718873261709615682374445327888449685100975428617864199553254852618806390750408857318404411636130043710536905849194631813647330680464221226628963987070961177685370025068838910167483140389663388961971450716005423307014118436049587754047654162401305407308269746527765976782883630212974035098984421860997504659679479737062450991806358919027252380370536920155431893181218231439689818533921326692041815211542419083818030327443769223072884901255355257172944785363023792316094332218502656387613282619724585509502343462627890796809627794225762256116045980048373422203515642848209516784072564005783031029597811306462889720631834465370589022375892529083458271847616812100551374679449719614811434882017060139212865860646543074719086861982823050895604203259806888367797814159328566588951955681011214609287360183982600089059121337710228216775958740526836344097172383161216991945323920333477888293394482801979034033949515772604574763901683782852008663415749623714353526089287596195293089215838934610642259099634861618369303262423464947297546424499145742586406301759394523253366863708858247144869806146664432397704671157094994923680105958908080738767858141407254414634271189892606748493259529184190254982053028699007149066744395633235102366110072574722404422787948585141521859075715507821543369850755917290257623740234700491981320210736224493351571106782624735658979440459460254124436781867505557461289064563170405040854440974314448905355538203540780601295234138295687088871600147926888390817885436692072616139317182488549456968295482182211795587139656744875508335608812814595412649970218362765607199071126173965072448977829259484200251264205329953095423473143690687016188919555832700972025948794043023538616499916044134414835048770423559446706199451580582759517035868805430972596496425036085922127905504158161697317466890236057247653949032351096802496856934777121411369835796282786247730628787163071748660644480862805606364452671205804838865576636972800005502208246154284769386457045867330964231586631173660958825763489098824482428815171701997242186599147555874103768770407831424347319229622794835605007685189811549898740283469363742628740841754891422685312775382639712923989054669268539972509190234150715035963683746579481577782329463163064473016548390401665594296687712860706860269296397724277690997135096457706921606746644108196210362393135671284331941320300636847205309687550870004141414610896158970350314218993024352732601611468478477098727944666196722746161940169474863830499042398374737973605624005553230120958994379777187571324852840648963935891615608132897182128887711501885473084081177659123169036374230119732847565187747417046349245544014083139148217635181230143765714320240428418932858559508847355664298389544829141787469109094549162958411926532216103929394441369095223989507709228518124985406938332121833164495222173518120670471817957433802672079291400163579779466949298266352752329861801577744296216513528231242357705381426081910383781437664688461819718887397447310865242217885018852846676117816674186082877042619246877148866029313767559553005740794688535948112185804189434812603786617985291910069332310180268310978382798718791090179224400545332475747688044788063448723468122749009239382369842449262930831636867936119615092153241117343251340579413773175447742565446841271760637435095395566177094015418849306869986914023424585959353499455615271146313254788736727582542115001037706553100280488082705063371414944168794412539639200300357158483262823091563705822451922382245880565880183725015013729027009303921723126029710805052587137896390759795433332838794474917376529342009580454821020311174270644572649746162510125820006982047279444837706405526663225186567642567113996194532263699937505632058583105503449114352465647608398722454029180203100878043655264262269780832598828270964722685347838103905924690299068447660654839635432404408919985666815231915146872408920637833831947796993249025189214698030675555795338709239259049527049872889258562947086979627282760303769893656469437568972589995710251957637714769155025302567046572465317171876344219010180321811814825459501978984590379957507534163527814348852262935924537760208111656380620033922314083073311103530357790231857523702508962257724950411202019393313790866782822170678932499811670558695299740168166490149673083688450555173037770893342630994954955341962794935425777352489421265494203014584478927552204355989716809887067653020352778976264429886353860773764882852874148424340010752024992485438296041167435865452594469570846925688180763488809701070928902351354089384075294191644227261752519901675643879446434562558161766459982081861643533068748044053793437794480438784420734112400818642021741886624628415623373297585169049896961191681445946094315393725425977551504972754637253181434653005738862537992219455812279223068518915127155123668054190718672373946331791141832379100719924359953319752202390488481188191984250980921535295172761358796634602578627444044987619224534067255863190371090674554290182792666417659094827961054961333897396442775416168623880509886505608109816962464535492283178388369998504199199254617437355057140297718460064517051475341111846851126842683618984040840059061922135088888845355639463428782360046747152404911862198563146966690047179582959492653332073176641238447014025202907542628377206167484567585848032583389498585013559658888232347658633420548887905559617237801932880670658600156459439759247290041736751031291139079261731189279625175712620900825484591500137860870166065440530361128825909269744801395395246891329031675497909208266100246940704881930917847719974516713705552316935800169246494047594977579277919051872319837554447573184947359607960541322458155353327194085779051222069753298941071907930517925208092252925134322829801637916810816394517832662559255002587105249514082622349065085164591774057386342007826874133288927132067692449832569620598088153583197045247883963757716917199284501298065495761722857921758322579256209460229268739385833790169658779071372816754614830188976410729905044275257724842404266980851221519522688932290505464409246971556953735861646349305998528463567543031924221430819683391591208682207947030856670973409092742574489667428407377056038350414907979688701333286224247894722632162984331948627591554920779440197963775679823025108226718356280932727833729353360658194138993696386585408919365786824430076562402250264739122780627075636598470034489501206048919839841733879738080036389977205016672203655696788028997375409023322120042303863247482989732974917158709916785036683823948119866210486731253968429481612963304454998859696831363733502580247918174917271079059454636868048445611993670374419798335083150224632614970937248424433399746239254770806942532732452244336722282724753204403725193189344198980335777302198313458164710683142366830587525094144204424778066731198900289166788622915413131545360655906074393330721036488732023146899327038826230184802721983870998052208929934500479844235028615042866164615079203270250330427748500249088591008039931363554024021904516217543534012896277330442953759904938244121339882887470531774732342747320021157414958578324150921901592895244563672421010862825109590846463157709826863760627778979253137126832157411027640960699568616779619345960104907127121257790450831393747754672882497649394863768000690147507867238661494003767497528301136577516008529419611682563252006211019671176603857193169866487138586272300903316626744900364611251685277978162756463402030912880134052018110913326250013905219680017581377519007113469632247082071132591564292135066098260865583057700327367417455145335718704726173139528357537284865067740022707738451246438315764186633500537727058224697644018404997753272984192043556463112380756063658282951583787242136350412278124109998801432676228080587238787374578751825660971383201912668794082909916300320250650000726422540716569503232153288935415247248933786297142490361149175905337003097930478095626696936157593153796609084817700992735125705286826761840848600111444934033926097098777778338413817400542707364761770315404064459611579929990679678179114522778636269069123923005537329450445748196325760342746847363501132698997401278745266752742444042754381798724936402424097358113861667713037209464899934402401234738556790594177086654128110629193369063888936069481076632771823751262811462722346116700622425237897601185836095917146078784759125935076265465292474325226766150871728897896369663516663521390786507003264625704569261180926618815206119945868965123419998870429064523556805006910643642831791895961224730893192370290386814370186140594081905234791094987443310472562627723491359040779396191649861686003475547238079818800645558788034006042297819542592966090497132896695274919188390007442588123723595887040087531031979647783987185572608445021577088869546262897710491643798697432212332245892727209629146203107743617099816046673706175620210437406892446496527216324079648345148043349343581937428923602480913620277931818919856899448700851637470188703107809797048140267101601374917163314020985025743565588822728022322358368650413025702509065698215699164267194054510036915966417779765868301185025836883959188286330154028842886551006798442169311661510759863438989043411448307096860749948741406147919846220110498635835765212487938621716998636622757718659608970006869403297028910523752796030498299248280598137740476662598509582538211516357064393932454683950897427782932070130841018068605943222193498540505464251302085113147782119102485062773249980704668550951728721536990986224352664310630674803836569440411575059343469275981840972958791162748949462656590887431666142038872353324957961795683759018480804098169369622651336099915542566478342173125031779853912862384316567125836384875231704595589325134290746709770456831538620911797849386471642126587442940353141010827810524123546523623305804087047630397880270055416829557090119864219435757855910424384533380228655250338491816029442801064706759392279488948721735203907433740476017197172600096524136036384951747359929838470779907693201933980214316946034604244864059439429049873860018531974370262300144639919394530440828840990432516210111839802090325870104889463319506376573367288508096870359712446886487055682711430799000914061471403997625746472555148923332733647623344626316271129652405987147042798480953054722060264770496331891542586287863010295784847003654619955825376862507213958659479412121756521248869186168162417576326180840844505998321805466849413477661918100270514020374320328420034023453363550018479547222935660801778142258914213763377120107381777934702754107721040973378407378501377257146917477648317887784867541855914517578776378233642325889699318951400501036921048205970957289369417371361745325002310855211402017085479590797956823939509589142636345795494409882139854148660752872433564504335389031907162382573849264164541464458376448247688526930650283000774082546681466729199406636789272220502898894308581497108663833357443082001901639105118783651903387872553828532005083869817869428943017559096159181337604926468981547817997135310484744337511912176735780529730905405211780658672084083259633719615013642548696683790589913989336247361224320445040472890925346761103820801339550360717745504872945295868915700632170232318273837238379311903251227274924791715365717879929839355628991864562035343974209230168135543251492287620904678043911747904112924993275474788404200013081847993223586879878054213613833030863985163091341841286280665524845267422914658057196993853325292860578816539399550607995448868273065216429321855286434246552166841471301441725857634293096105872386137476454291115239634787042615708947039964507282918611436662114680235564222283375259881613513156877728496848133328828422310611906388393554811943449625438205745404375516417565552358221529574632148031666375506926647466673416752288365382146295979141733204444684476025975144333305814911565112270136737022540755963975716829361859754083841931837870612292656078374572641694814609112807351365594441420515269550388986143452881982260205630339591341785123560660477624442916820668251450841946311976474203107145060003946369791587884379886685358907508404797121389294041533412384112145547690559975137969761127432044050238259684125738279015831272710276412643739503844404282312427419451077845463131404317335122024881825445143053545135245386917693412972394575349475403521373703958941806978178149181894461607369967185743225180693159790553909221593787365562605337714735782115738460814320216954748862675908254280131600754751713085658922760967924209451608802712563695919910605521054176372353445735110775154535749549262623206742300807446597028650588385063292384610335506147795631622751603446492841629509947803157963352332987959796618514945677559263445635771437228286176151579324445329601205261079213705785224995122816081110577740333898079721467394060795931950134753963615882422150174903919638839520491202178363170306498388929556134821749413977107706584588003919115836128384686923131671982959986589690556378557548397729910561139726373762255986501547525802372476103709836100470012816490223744658642101125000216917160770674973975476912983942234134751311161270214712809541958234498824091607905641737472067381500217614426251373927456386178841056178600600566616942990980480854246769754763221263709057995443811388067523928527415388747897205073755151043633852316729806404400691588977805001625590992271736925531784755015192930675959780778229903352072246837871589501106668896511029600109969566909171143615296228580237739580925996570545080646995101225290138937177402415602120587486280860220503654237234752457034486944279464351400584246352069137669893666079462092853634122448813469985343728408785938971301635381343137967218093094471937704522452986929575528662752272049746183991304879943616068087713258286723695405760507901156409034162447069234950661238423366352182053872994107874311269930591663824851047088596720231019649531662380304197116567518984894514353711111432121101456373105744098997572368173042845975791922046702447629132793600904217772225314762131699021503368081575968454938474371547906159032264137800248292822549606118857940334893602892797892325786274322466309354975165494707309163636684217378264237917246768096367818816013020235373569003087845606955499296126133203491701982455624245421605607434049014833267059641217755087656658726879305542331759638319295597621606553219766810005098138334640518806098131649213884253953297510993936577189195194842997209371441593885296073328304757667949895229890206751094627085103507420040102503253079721405662927011711349729478145777257467737255854157813254834564863040555096035022121673881066131343870532493781417058893460371879504199841509495057626585952147735919831712955683482643253281465566101145443406640988325647728841142153880627913406214022908485363145138407323983454376977501051347248723047039070710145090055671946558569246934569652630256232994280873333089273599463074199801279856778301289425550205559136242797780388670625818146487386852307251958808717477664103673164638814940375881649377023614403267665137325663428484658209517358483576122550561170081290750848205559586425132070613862700279324365427303314290799214140239090416895083761948351235773418882144544976234422791076295540897833644484712293684683096201218047106701420265492530808326388478610410426325726464376948465306400332809831554073814422515112777974652861269628779496157835492756976386821138945118819043497185157729028337930243699908109048278505739784994931415092940370683766222535309078901173600383360067771160337253867058158881682004172020083024732922315868686505437826429492517083347232797239625242659825734983543230628019027775223026986849363879335031571135475784133353340757297025141279721817145443510857158873962050720911783299366843892079541784374119811132607725414958623490684155078427250792445817429756590533938123287698451716619245213824666977655783879508111947691796108027943682847795764269747872247299341369260909679596454850746649628831857528072682318691633465056477076992565890065690645380568910042849091881876260309647078963358410229790459032537826400207204819856174989772283129793695787221047591988139204077954291336553250004488499677162588264329662339886535182610523268040326711175520945878745865925546045989320448374627446880932271041017370235469686521411779594987026551184001947484208934550193233683138220645403617385294924357913021248326651340393294962739106945968032554449614149438839527303563239863128494736080235281159375259680711358677221722234754059827173508735468378066144231007714734161858410311360952037868236854214747928421158939372122776551467415606453570552454650209434405013908335539050830893827141388764222973404517067435593135621569091566801030653981380122846565703737099565363678174745037508714206719283421557251319560598027653708863506341235071166788669765269812998625679680715208659085648602584405911559687089863557085395777037466734569709414898883192788206935447370539763466925825648517376779004358935655424491907312757387215810587786918391059659236541528612372854479557931556129532496134292520427576382515618820048704544069714275187030274546893344596071810337015209641008046641996065575547179980703079672900552510007272172358026472811252547137783592067577923890007260390510225039727165588667055824541727049297143340080010113559785723943864034221851196573364648168129290413671121962570689925559325901428029679817030759243862743427624325847372809192759679023327699388575051571002244227286132129083681552391395880750250040153642309091903474578685615934429802668157393333878222152422657274796110784555620609952670133479548674366303395193819723813240105310916493160676594937253777750930564254379183004684432494490187960769701780958134030019736715581079453201007692598991874854822829123179731228960490448923239831120054371696022767988471498681873917444948543134624891121776535233017211484135118961424434385625007552963145102973570117600238657226898316265179052950878694058669384153656865236385611553467375926636544974084797095160309243400228992259332592283227571229492684318042771721053666661811314467571797766384022235961054370774707001140925310536228919580966251514967665325272027412309736456439054947344411651975320688420490051888889991172425516758837356886691211418444132866529281960018038699572582363178920602469486629944303275109289954252834198601033815530901784782630674689061210844245789798403423871959960719345840811080134639239018709523513417289447018662722767142259694373072311817579356828344881650845820107565266419509168248868922406982638968266660871176527002356363245808774527172001581186524329956798868340156493769370070953258906655005458834791803782349588108207380889894535619758694059152545123909867461185426445094506166283496560356356177397189269007677208855618943133343578990778283356594571645562157137103232340989633580011036550604102204787014742760768027565055755865453183715497102231643372937011668013125693409827393720843558403123902938082125929436501022367797143691423935845703964182935637578160454638833626177614160560392123303657395712460559534268213277489031718324916724262947651256345948597739119294259005044640172030307601304634499609902806967323682066391645918739890512987398233415054633518154257772608008951101934739803693502729970070235432286478814555167097056932041316145249887862122754011106707741380165379245552039048224884805197452714426225124640710368306853171841312171708188634990731982466314120440338489269124708946244524218595642292562390447913520719297634018894654254359594009654860924092456274672392683624787989042583478330117956306914497156011102647252559516282691491295643909925001268332473712275678398951993047895435512957964561641398173438877101488523004106945504233863259695757041155190657339414598498776599564062694452058376973918336953888537624572278356506371556670598807468285392987128960754289837304065517322698930565000308766252398142934117351235604623903398990753785435960437811169004687369925732762265589236259633470164735648931014047728193938474077573962570301331117692359862376782721206882762481840457131372474888449230600163249066282296063293857206079931212532947554246878099293258703249079610649533562459863436130621695780779731583074278044157848882998638197397172241345698749878956799328090887085907714005003168564346851044059979870562872573847103017874713601073309935444046006274196289596192918427008386534819811450110085160825295319223813513698709725474119916743305798244497498922120549166575907831888233682138897773634497728366578187745067945151597195619944542875462503759845905441763732936883446414364843835249013929644525889888773296256041143259834802268805230967494780357773667965448543146459849790404465737173883980300742617198887027447248290466000612230368143405280330895580099439142802491317527435579533633959102622256922053539631141964813518086352182323853154954138244396480919021677897629917461081352038274056397450956958530577826243716100996178154087922761134313246572793590823753508379557808899406109289877906474651259795466315326918331451747158769105051977876201773667770377776382549732081702460014445618308734220854926275720654442948375827464324366365156857653901237009598807549448203013707769735102316924411679734137785674992648698440946064084825289287751401516640999173273237186789782855346767644104415650884916008878167706071226239458371378528889408819834189809859241142475642957983686875548638550980346540034091087756577213556836890998862283551770884390899055970111910491491198000057983479550687769576201183586013095005229766560888721797635671009710784612298547683267107710340500296182902024623629891136110054173781880399691935701165703389491563545355053222025700197096479044095707037577570657407305088632876017746862138644275356859618465061316441473241041195792296887792242054504582874995483287710346851677092906805976083415793840368449313061284629395275054517188711704691962623855495304284587488551803382744291118276181194019836737395391866257184560611310330470019969053508686525674882972426504522879020864412979065533990435356467109603840442198520210354454508745314995877155369325755324754075394512594570651864769412890358258418041142146406274047963257040130304949985733280891385057720660952741753008564172094436565451074707849787527828716830383357051734597127919428881334819811928803356952954470381069187972418330623625033250905601497117352042046514003824948557735999932144321211077675560998023889702830559385926828492208167576309470409247493783694954490115890354216703319291506304224292140489550241060385175134656945745633593581109851136714701626647479867281624043627266773344988533290120579317452718847089346605487062083985132433830608628834202505696055878943419247795724164379694870874090575921575698123242509337196259142091509653519463596976528804481498078188024881227311199663022864871593421473963493361235201651508480397728192522457222982090152165612284555209882025090504982635586740738409742511181238649616051404209404573068509997361837992490103017743306209779811968426726940562522815146076599711311418148414716925148691510263465436315142977939241423221612422298309161049120837063426927192871315004438351890647887687954802832666215232728754175188837474902878780504123879023302116268492455957700367237021637253988316563787727164919925704982609510099442362468530526593410823990583666993316461289664592163725502167492509488776424175955641683215874929829718754817449983691975606015340856293072877472192914170316502233248912282362713523748588238274412192869604737766191207993984440017296924671482340922092588110221110631267145272453689383153031423419456223934496396123763123702012283710608599979526624217751010156435007743973980519481065922347289904679226487205342739878683616972375760450636599968716756879128030066481151999970160806239175519581746938299414023352597339625149972652355461375903829139340862963329694892634974733601236618248281645778974536080898069824699096704376964130269506925902113632691979987958663039299588752744260195603911964323255232926350039495378889538955702089358061315426662001831931708779269771923903118909063743098732216237833668946990068160661187100256639925916848965426143638146463813147824013198096622196559328516670000879705950867255689587768068448599650545828947287409288186673501479388297043918703013172664467643144514976663549996379635495869383848445957343090265155311029804107854032254455282265696694783131053074127394470558429233002252913667733850737405969242608159699189657455089861717289737069183819795042589626095305258498857070371116248049616474425321204169859419579508070798542469451334146349958246974258566824530998811825407564467692380340260996120418328174048885235403204214490299377535206495492506493883969176905855143822428126669336440731524087314951289650087940705785954417923794265452159842220438820518676743763614184235633277583962322319245855240582278917844664555798907117731816585322384616878460206237642710653824724442358148821669703118626842077912934112961616973265779661829312343545723642443404736438611661431831526451093409051713720973643344382243220185696521514779435831412395722412665089997135728587618485899923760045967596899059537726648712720121901646982253899164707609035518100983691356733108323871802846381310870021429490294208203473000739909145738671053716894711575158359148340246473301918764222759229976031668333258316482347414652126792468593713527338775079912506299139312016718433448878557596041515173292845635123855017980746806913941148740529953407939761028995326343466154424929440575975305725670940434319684565018991997398196275916869056072497714513281931213805949502593906261651568309775626451491975688589620006632139785097854737484220900905678336468277684888032170139826625662510563913199967605125497678992818465434374577966817212959165119263807948002186585326662659991097093986229211450071395676069745671715117533445756691851333411561246226206204340552654336451564094859698893088404794610369126568699122159231392002977721533604239341818327305018519004094626021639214387375771259329705050112509701019460896021521300433854780212327221533028796111512664051150500567519386568793484517115555121173204870847422873319655977211328430408398447940326850074028425502630825836630572932921133561618451244319537895529794944911435017932808985957521612378732590703877113599335105909324516322788827918377748992327778038588614964006661189959828609882857494758038427327313790302278326465263634843374224667518897776797192733775920039154878946382803359253794832159586569903255077293407798750741654517031243858656902981589856211299750252511464005564825068154970365740322789207649953195824532048301391063793039658247113012958299237939783003286207686824091775086252545773508998828561908233810695520366034275155750661572665862728941180313532503703138273491181510837636397951616072043705951456246981311763161396040078727025665755217475922600947947192924379393855017810950168828179202201939988268661680890081333350308110682904856660734764568982316087343713306813049626209999647998960913596538317455528124144214002609754549968215139044797159308630065065705779951287821657297676992811387772877649052660393068515222202728444593205592595925972895664254102400534411470617439428195796613585207013236429273674603582250445678861255178759570489734970205355334765261243153681417506139024091160041468729711842251070037928881717724215744169132387160734819107459770232269114910321272032870922456324030665227139048632063705054158147130229044819208882630498345422663495315829994640150664105910065849395371597779795524131820602195013613349685367271245687270713254880762696859763516446334938177091891883811029076350556834720346822252661729966624156255607235291199619052946417845725839346427880848949122638356428576889056335646380752842163188687464716700544310102596788683401711531607847859756412157354859721277564701543869958836321342667217232263329331218142837152545749782027832856700838376189856478117869001011511608723258714516657278825150118894664771613947639674314013859794746632372496214172034824825879379979774174112622026526980618076869519530909350643750789827029075963678372198063459652790730750118030223826496679167038803832340506409281207858437740033653900420342557388671857023595384089862018025294597377881106866393403758949915082518572136110695156435952101002098117889106252906635697423687798525250202080271323952184661990969610843182767384008882517574734623476801069316814945335786234093089089001226549921628652488587914150146370900667852825228206258081193230441846526999838032440269797162670334569345504252672723819824055365685226417255598347316996842379187223759597306183320938429800419779743799188770456493897833195955478719828411956263046615405202423814617831817230042509051288156696196380086070226791704593843241155210761454916576477354440854675904671042756767692510845444726273312811522782137258422204747360362324171870085314519385447428798934241972593825206472067069020718437124346533304101327374714633935027115896808263484443683454747027971863190413801041597172245616970103574253113998758177944456401844320261206958688642446724813963293546785730994739388668103068070198695260586952815020009426868150770904251276320087662656306219933856471515488896566001620066686719960466599973763648529380790303889252114054768122398610094908686774976354379002615020463591465553438475569719437344944342381073447179265657217906262722373479690275709364028724791859601252874220839727064173964342290817825375124095818045538396075524505920161259370189593996875148993111993563925476192659063794218796316183902229901849771489682077961041965247514137339870736742805485556385738622774698110534129051982368936152896922800734582752607875347165536025049364862283530208381874403668573381276611020243866365079100151291939027796966876424248362844793195644257460432193683387633390855865497780569495196963181272757344514330432315894922459334467897591921246502118090227442052113718255095836120665157342497850055750241459180979554788616377715885348233527975371673442977933021282154193889619398095567276129557896672689947987176844814849948270594592304729152067741076056431756514036532567544342013043997594299502800484594222497284901184772278356234121824631835789626148026579733060860080914240755433353643598769437400363275454331480911564828405134539856743011040117427060944911167921925977532209223197773972326463450596181549046877480332733415717376252078851126664523574815578766688490351250570850653004460726892371054059083171888468969061596776655209689873429609929930656052862993345212399561641133075235566049120771603249215790430997855000300646638835599459696153653423698221507036066387468485391128710995550204207019080779432185015385511740767795944325100894153367121766076901397266875455541700405880464080435298755001064256210015313332643458489009048948694098310406659719591819734523284014999399629115193480963362726379807185952087378532857716326882481686937569567907323041532231633641927685482022075311661741286111370823168930266189286002584274109082909775865347238117832339658058106286220746513356234688448908035486500930489706971084331535842017631572463223019402383832615300543283908984530769912959426633378988975499801673140333954201743045319112594336724928359883611261432000556120046820875861161966503338471329427202288759161159084030580545370497671100446550743338660871640726191671812367000944417043922599386989551743426440760870227977661355429332085922163749787513058504131273338660510345714624148814343685336822493202146530602419828426322027028805619968923647524558518453082893000656949116961468453623298654509753940701294787625330115805001565684947087240927165326082265689942184776737731073826536388027053378548871547025658729880859632691204466149553986481718228004768006222707134836672259955550304220034611494607108734082812365773236276094620242350740177106107081449418385322286507160147634068021675589893853169000765000077708090340974050331971054828478061985944307021457964960354415035912616996317641475358288528541546633740782988862191714746883938710462151518555800755971839487092141879178621683496535905120577929033718210644833710528057683055404798623687596088506452163431605475966770427661143448089311395712788622395374549138522745813111171767921940793466006514066817630102026407621054345602539697405362865173132635447029565208006858038650297421810365984541231895200840848285652197515326897990023853986418237132560037356804110442970980936492410459723664839926440278469417925387182002149910357017786865919886648461910343595314247534554267203641043231232115202692649033413012446015907991240063533004480188877106943856306592686721464093868140351699308886582388181982682205848279344305775386964340789229378925815758456154585185655114225692481909599720028926454231124718803317698276580227289697378712934115935510618932331498217433675946691649140417306283086407229720432768244414198978349110454618894908407110566085266977792667119363512604158527608091375683191241135176330541401378456017845569125853079439903202863023125618525528609783926552729546059762328585555896939033820967319279580923712581928025064831597654563906164870611701665595793197778126978106686159551554360168082372417085240834191191562326012176242239075322574807659523044965055303149991613584961023055004680209511166324327764193698654209435776514570834559068907758540463207642748716390464726967627678841842848421544344989819184539158929593220749068406152611455209550870075086234228337176232824052924389456344585897327079613915605910378153577113758153551774622677856809971417438554430583255852983530797007875189255672926448761535769022881447365482216543912006535399194519188324090173240480749657973990462514525670438597636717722852878681253222464256156259512712017914819623969059719688695144635263882995616426770233862806443717072597439085933882959449502800619320564495957413369485010624200458790336396181101668586651269540700781302762547120780578785109595100100415328141785893166744645231580186577050664207589695212000717694771292652061632442153074833558324369162423667967554403980833747574882222986630748484974919446397008534314021454866324810401517964580808443270716247693000099173318547103403518504489384052544644490755956989265566458126442683608599625421584157805046758613510756741273064932300357208417057150523170069854058356448010564213269837990035869816212283898140342742076966360015993274981296638186010438242801856604938605685693141307158971499855600875358943757815286964171589527355541564854767058578318659450897873440373729957370391032684327145977251996312499804786072933766438070521293911479404257893234404753624166074236900849682536554592512059829526553323744034273982881010389771821234546564224560812989236179218357240954384007248472167769394004958796450399521945630680483347067743014526238332698507682026994593348562449543114209484968308129614220348328619707383314478958328813282375039064696640337123717608398130015063193232859240942774545230225534317583783834551380076089302481710473475317527792983029306906673053841157999417039257886024447686658243827606167343980158477904593225501354502655035663495900702475268142219691287195137129048962213025692345332376518005826423199148539812794095715585790859241255149483678406277853196383349794201972495661541440857201676587738551799725111505907016600789937361577969383392071676012499302986552448683370546528820576708550770857746078283989183577995004407122484967937026591463115606455933515416257094774555130198033829285574022330722111133485398434559894611225160949912165673907691523714207864544449703267128707706420088004458351828125506913457742512900658139714355034570748202983334623403621416973561875523121778508718081171676474789896409789877046130750780377806338097462850352348915315664895391388573252829960341686779592776024777199597355920512502684064471963719563374762652753979375025390032750485871261801642813383097365051039271418074672136002828323051176283629190702545185536630362155270113922920767129248627889631622902423698960334669656487612727272835888844214429932370028110918588272454849432381763674459773538813406532300574513239661989845426802120008424363735918386776705858893099296432210622167669742396724925293976642521159444643630072466546109765597096843634235680990393902609132452445180864521101032834999289266700713195244701826519272880514378995564195493212178962576156665037047935121340338979258624782378154179402880687785591638605427108700157980251296486707226965520841195558466419096224310279069234674484589336606306954921327156071216378718894365841625669720002765845605620455384974867409437937752074080314352492646545763875235362524872560419036490300134436747223136530139556918604149842550019304788640397079990877401918679960176896073364063292540569259903841361793041994574624933557532567693609569447860233617230628983932441969137823449015236109145869120200231419222164769568983234564252954706357461786166710059910615968520501300778365797196008879553872179611288735189052104365667895115772659116141928285810546763743170418552352383262096392677501512090563215855200114476607088512880721825588182628731970930936592587488623181463118404703465014936562721993063492693456951639691854137671150244970043918115837320188470253583083703181530493992180824642047379678869755209725443349818290617016750055404611677318822747703997960078211905599783195073701927632761788616251138072337097522127127210063194561736741543521711737349005358134333854818475263144826772433100344671648212248374496512990613744557270842666173362278535939884887607754432214459654385377743589748692203150227865300393203713016117349278360222768008391167797103494305914698786299294295967259076319877893140993096831304111330002541082853682105509823030543034588409324621691304180360086441677348244026858502583672124937038569297809877877652297848111571264880641768709495832956489393498370911503229703956053140653928836194781363640395811513305650948564084197333895026043738168190519763466227343190259391369175738962644192259421701089590597991011886597066863522922585697692155277414089821404976874967565257734300065427482136008064451945347956266878390815874699081810820200739557018731657672194275923941327283888665594642866968950902858615439119606750376364830072189843407369301918394584909002234181055914319208395196662157083105946419282820806273285794636670260681338670635625220212439456566800383519282270284971473282336878363684164489412571816315626412422879551438297713534740179605333460809328572736878237868044958917372523751517859168409615100553893167754956172404734269395861002232998816772644552835225045175749810704758635738526409620751508538709989580717994535023377143047815335086575646135686092718619779369139709579868324434067447571142789299613665824355953812441692110044701642700456441685736513667281153729283918330120832025579233350569372147319991173662342561166820800560979465546637906988602961495230251838417827855872420579278524743223631371553854642074455518686405164314044114688924259419766005832520114923181545732322566040224983243706644220538307938706777462586913243440921087931481366714194998391639157763344588606905996396408297152276433541397115576975568934685322699860309021337119562945784011966410784459419250974453240171135986973779112530960878379665743925455138257025163710635555705856016934154808717437426532287445567035819824354890683440723310607800343673609221384536931381942076987999316448772630007709012468213595209803806103731250327144885008282774596249002548132070537431124310865607401226497924202019215442696347388992727009999342482692959883835701780045499294863458347487494108270580204497433044452530303946721016439855716910529559931790809696356844323023504461768694612721623509488278017739606931798155325933834736808099988052006011537754893315110818533266972042862569198021184406494773989556033077148909178881254710970887403996520128318592446735013600924365180976656464050936784625206003925602197343448508603844920899887361530260129923142604365873254950312955663567880990090739381566780860746389003640206026324594237611323760613583306696909433329731659346460108691658404903609573706672559956110754176142825295991824495237847198845719441125900395089023225738560897936733351517634073499408488153945148470145836188986524954942321142782405259981744269943312612956710575814083025520251812041194501432866879316880378468342651025862726579290887917893568945290922149676129555957028826702161493189496824653188498192507925774613768506088294041207470953540912763156822026866010618983912022568920748968869209212782211995151445477461723638706806454848384082772827781487772598263257948613007524606182408750387098612571662733492114612713537430127484635294790141373989345169560264158998282872682857792550873181712716523336220027633877486929640681079065155386603636250450608957181462829485748888230258791594341424561978907775662881288719650409669355529547155375710912801927991249353897307780015996768715604490692564818077229885071097094881534643134992690670007909571996166938369693560557793641009839830678472858702385148958486941492518901755092920450145490475395609375741427127226405644732480240087001855356746441532784362533704692875499755803030463680374439660282435355434574985851423434716760316104622306503260975120514736816853608076765426020538522280825226804880723401837343910764513715339162375588935446858729528062071782022313057946554713819976397917818935450572483011207370898525068725536165069813822639689754547321998832494073727111339152441504337462974116784238571014443885844533227068539738685754167836126750915156059607084647151907045773001693484370244751000618136642102340897224461436713202727981024200987814913456952424594047969531428965047325280458389688601551836470177396978994068950319644079082278011111713630055726442208161551121216697085789430286455836253979860483230666175836875531764426655781647849985282800665149839475777104429706840777489520578089508480902761319940248083039511364733008693492202310488509662069367548787786360653977521830574456582178143280109940309898988030303532822582097634923560351281998701504130750725511122309966114373318371610001941481675849943176675829477548405064449231759169043268316884586608596036311313390073389436318204659595011071036780401117868145336730630373498380216059690349385057227555040026178134171631921188023125000533960288100779417937563215757199352801773537905911613337949217711686123807853509013237366238758729168926466098681234084101030614792853409138636880357173269710415468867706229512409550477402750698341502535715892735479988663723079087707972410485776342345842035092008542132538188687969997002687929097874100604394232983015803578994134482917137447896827904027145708604033903952118745714690360623709781236376955706929104526604304582345221800649758470624958710318922270005494796528144722130045131765782483054760602761634099687006730571202374082248597673257089784047389069238193755733964267709498365910927134159203759683613252807091793223487926565779503977535846810807385653609189641895624123202026877978428525445527458601999754020506821018746613154095590955010136468527907581327629398774000159599042354759122112214586273261818734642561202621588568711604974335408450687395866941914424590848480459569586040958209663713546481316348768216490948848290954657992204236306271686889039013024646268561960516128377861251850415234038139014562893183616088171751098918348444094467702997090466164744328674963420796388815663574993523142122022804672433310132567355428753922239636503431363965977177152489294631713266669463294356619437450798189198478749104554325350076405141937134821552161363581263060346407091331084121330808114051991164166764289447530532051839233432665370240369630818336740886407662920815154654940482103561897127653504546466333482635383521677277339830341879555915264803850739861608347643130981896419854992787978338101925426606117128177767709546392725742609983841024748808369519131952664238543540814143369314151897828916081209211374531168626777593925367611893238602072059199629202114413649577445583152202818225559124211838265426597703836730187056571261432129123474290497676623815675940012913315624407889175039612815178755690847287939489782175786775458572114212363358441893199576586622735155005815594738128599568070304756978188247937010460642077955082319563329857587515238066565348599730944271215277805801050625062829416574701509503834450737758209984545646007107922801531486624772179374140204237797770068391090094444500054517348357314227794474301500598292856238084183157165093775738530158118421749830168037695136106024755201513368238996473958141071948781440437761698342043297172282808836199075129484790279304171189596108933070173365741086477633369500974799441456259683495902064028528355448945959599582162813875602432506319683899675798978540521270248445436042027292037658297522269005299321395970822958774961455244022652057848757111030170505964210217647818992162119363501842020586691858030303188641314975285790831203311770901923922105654624731892477461205715086557596765253435387547509194206198357971399394271581013457476574288819549526846085275048048807135408185588325831982036111824418506235689088704591443040614221277082550282092542790383855636141432784385609900082040013966538504485214000992397980108976158684695334961548103550842762893424714222230122368261323778311747763470391521880970677983303529350342959860597916662303423498509447337505157514836572367946458681728587998660267628134529750070902172115147224992457170648610454474670891222270870416597308625880933218511236818584980269026259605537521431139343242307251711527780978229201190381921621184117106303169294693737432747119263058453691381164169293747150539919004106669469376351873890828159661515077035668796213239381576307124364285308282469619630790377862446756898987563158239446906388485981787380679896138750080376743353019238037490291289140052395062972909251490223721846381528882158493778062310630581401995360490795467877774989562947867872454910906591031679969015680842958696792212167015309498783771402799356216608272821993921874044430331086704605758194639517700346877083367971683312718216334996995157817133508906271147141650370476402513130376180793555447038662544110911833219129506774118281373467458861684419369273432509742961047259550629952149780435194802095173952018868844756210302272242115968864076275065877478033673884678141217081356122225708598821940932623248370231141956544057443627933320235752899215447358481753093356824929413899273762681981215463277302677595099356239241274643762991680999108850657384038404569063103746056012105503379312174097073741820143627042201741099315840956911150903849685024739577403802611827786751311350489051416377301773924987335623852466728549491057730318221107462606101548717733277053294607583501498080243887517670229915987575538626825152803829886318995704843408591074430890765353120114617130691837836348169862892806555352808870480797313105303299696041234365372386544676587145289898156418540179457153450213718986350296141777787681505060921994144616209737230702339584331372119482842310450290640793191786071273009738780648836331206683199102522091367660781749824692534545665747670658988445542129784321736878595443738237300548863139358510803860007064901613528087985002414197769849955070528788483411781966735699553898672185843196694765764938053542921673292789776633360542851326399229112717271088193504113000307545597110943174479242222320868210754068459130571632079203767562160370864452147744679860589004389773227854156240389926523422824629264941514621366813974062093808184773250754775101288992309195174417350474300352541174602064768260696627775586852929577314060042489794787363405374155584102120399467271267199413608632226582994871384916725624153905333891574420698707218155093589485491726872491804516886382570044965794110758124225938748083993530921302437702498303433434630358075428047811120820812579991271337760180522449803222335360536263119412319568021230939153506065079415358173921068967392027769207981554436099499810488685912600712418467486412769759849199451323618721961934633141466687910470466816311806139736825852914794892959512289505677923842849746105771775311279628954280309929716279363854430281898733524407009437089957822927539052193511626032869773621249538593851397560018527674126227534588744602781079176588358472729482870767609895905438543886746686140388434255910328968652954731806688009873710766673438654554625452963050735920716470008903150857855367286873625441536879545721800966329820881586638323332938092310561223472312813990199794086887240756022497210369663570859704842956789569648842164901149024122936332541347478171767456356242896651702143545207959629525074777284584143844356231283807094950256068249140771408822773180575114168185769890115256150117503274412933462178993491250755682315942339613471182503398507676051276909420257219530548613924019290032204402602072345864580052524671218599037557461453500788073242169324177444467135225746560109285620471242936476857399874824444925027349284013406384787786481557917022928301056082386596207642576244113062168408120328607447635218588465583294940781246940183686575882633992257520628142052475516728475430137465413867245191321769695079663019429486829211162574772253212738920939379256876304651847806496282945508350146451466365260070190131172778227715690489744650319326204318332499858250702320969932787618940441359003989298085782352836869323514492709748699774195244216061748635770264178547400817842861463837714982337036230241977888793594402133435351156917900652986390165460832457610269156868165070193661276949937543956443615828723079848598019214061008061005311435205399466898963784122008180685184697502387143020574687353335297361822799064176986381771374984530985292375528189212670872920552825262834828831068927710026023167587187536618796459964124759582332271869344770024087509216714869548354150631423151634142877682317940501673149835390767433859379816208085225232158373331592610521941693412259267790814968607490712714480429074654597172675675768852084000297283512185036694773161507639559060752690274851565688615309453171550109279690998559911597376241917059216845174520008851855994729049830600449647079758929892639704684945354258637325344996542199627533490801330470847962033323478760615307400196460260855254690119363842126326296674911934117776161202451479277325523404234861171263864529263973168628958380346240524906734264069065677754403836957870535766339078288713216891987297431991394841831194222194601923326919092698886637561714217326245062011035537869228354713398343479310667092157768361559857036977751847638117042129246778397530862379946532580505444956654335648139817602598025359192582563476964699883560028965380322501974984090374465567138149626540969486139913936358670088768392890734650958380258124850935822799386965534406279465676361935600783659563336587930157444499603701058025556898388833358806856281936588492967136208269934783338707513674356222165764181991334143555822439091262294603521002276738101193915273441036592011723331707754035370567465296595745168625677775138781318817234063904662291889867839028424511155736074963222530298962768525924561450933364481573942496413499570475371446214400036352850106589449770925115863294164959312047723663332498903554918695326733072292922314050545801412335959395122232848592151334097542887945313208346808545271361870159817993273244785628556146538194873143003244926737311865525167476210400397500019410388577241349830330806100363050988231099409769556437579676677063404756259236532953890112884854368907252634198909656660696097900066646816248824369443484811403464779067133595325561676375643807291735924323068145274490845847320676317638497741371260762631477189663368780281835847135123745297464432748944484347103788547376179955066983873275739262628416926247538341365369244863047055970971491393026193142302457513396795518721148654089824581026740887107640840886346307965866394304411611897334704972970524305240293707393556460113744945430363578003841197743605676907046201484253224943454167346078664244040055643283917636020479484898331356079456259777699067559040052055730061253421695156777856827846307467591106685837049630874277689178271347437467103337654585145117344127580010452183159270506630130915236940917316665955426407782858574480054856520612516557159833038846000090606639803866543924219208465657698799522050032177103028086715725583802395930532646515422951425119956097063642177617144688282122810142282785910511465195200097559482516162914821949094847226537680454165914125426295497469658974766177242428819648020381656082210937317170329921434594444198758803477649760622576662307883503006990581170302373126005402693580617448840864631414843001880853526823273654045008007703475760992551152696132272383373787202209241740966868214820117075767836608550538151624044356672012692809662463184108312414329985335026579180830995244388200481264792170820935786162969848835826070057710732147981289015173021108585861313257707672200259151719920167286997510537382045513133866719632532967027427215631969064664622256933744166252669982513506678215714663710199816116897905894537427970382659126338391712722113875149578439160758326297243129569271797143747488426902554460818823195681965284028900386108923271344753548645338526700291760230374326728490818093906446103916724919196343195290454396732640570891846173619537825580448763233756499996862149569870389673966559712823146672941240296332853018793631672209810904228225099947550562724071534223406744223738359952472558049511375398083941869383525539396676886994055528794506268975093212889916523777488184026259175748765527121847520837524564121704823101938813378374349058294092006103001394519843464854663603374006742989831729467451779458920626234306882487023170433885529290162233439423852907209718724883429839396510614854567935246619278074804826703973083425052133351363674773775548510844841632730830663153274945952809908273475708795159276134117243880776674489078882196880626957463877541916606509664929727964393341181697063742674739948743293503732842823885499339738506247269442619986718763946786202065100639136048644075681848675447276873061671078688117189757390654137600051369738033100995466239973434841315034245613297455260565010913908899966868284007606766826012391103486482634495789967816626415184727419822124697969143229954714891747747803071958220431118039340103313404152616193599546858398093925087015566352945010953414667897696930202136107358934794235153114649100549312743560741093477066086356689934710549786582170038934322409732148636311760231827095321041589752501741699775020458011775612444205421891617808420794296241944231735331203852867918347545765111675997207305537110184521537842938500142086040683581422286615268057240684257556213610621638205225943469926142439944298578329792158797068886697456625684568551793931192248830547693798977434207031746974351397541301530185206232877308854122622031157198732842898245765901133731975705055528947464663059229747863485405088217164967766068811029684075999126312636552322734838953727766728505713461958589541636195219659166851177933807377148761793628084879793250337290506435208204105842419869797844319464659538530965699177009332169164073086179821960810610333591390832877078106669038998170379261868980917287674896054018750210875330096379349090529833610504046632720804438942711828616782432603135897784387547617823620276597027290594030698376929558157725918078452502494937045374793701547089349472279615868242837488430932397742254869290670189280873192215688451561144423109107605632864986145221478290662058719969304535345914044731537725791661522191817239657025565516827094045237365862314513683168334707143867420598873004186675097247857217161273425783816172935225030699756845494662556038707306328244412771824743952869899679170851399591306049062054290916554547090844608800090442173909869758050633028786180270051525465950076827710756122836794175746653347156956136569299077267485132775737896834427436321600895857243213417568910421791638219988728078643965420224817688473941126637719454784126132209813908383920903747337412738424566804794921464196383955875694640578805577782116485863921027248023727713238514858581932313845666132218107338487778967282996789420962935610005161466299281443264569202195892657603462169301644034685099114719942705543807241353300602357027725585501048966990214342851839669209286337079536822330271208394622713663999856582174017213275269123570210849208922457543535547832069654636224109775911850462679354407163683810474840388545377565653170253026921112324041267511781991853857264819777055767478253683108488122032706688539497759566873393148765579197166775902766985745600385105507011633552561450653192732243077710552619981106086273850963585551762298855302264154731482271305192028570712739801598455285820820068576461828694415444327079888490021703654528215708543725794294546822817401701284292865290369787416482227966470158410000776877966435815221184029564393800055704226166173643443433154260274933431967347077699998241121181511216151582285500623862692447008162520226007688745249781923451498716804070678570585122615379386208342888481182057909375387631248837072150328613418497718929433496587521676301483258903859934367544025399000009515576981444445185279069910843327974878727964682330511801557364371783711507045096103721080564575168667122886491118378698176992161842809804135589041019031272719408836938063473602299401897795183919667132685251091009450941671494534204661154312927848171738091188140681876631000395310322913938697715466374527516224132571508542987872327727065944834555294833347281002893814270665963775109548354418441290536529391798414379152399532788260227391760672533301944481403733131332418778947726417744210305130893661916081572633364677399892306567771604556714266881441141543735699121452820139953663922278471750741645064837210251945154160347364795615498059589870801389974194106370731492975976476749738287547748189075559786388525847988215333146113919045839439796266737326266019065383163350500140965289232396695301760091113585528916086035724963189930321361735749849488368169992773179418619299444957198578310349430543047502317208421501518813699919750091610016274503700685367462070583453140508895153565040591928863613512647761906801077572924683651337839962647439764063636435914547654635842863357113535738277506864815501541469719548774791129464324530356354820571227583935304259361786419651886782513623496275343213122437150511466549338825245283011342520956409321430791111421821883536875665619759932260290678647293525500301325781289994812492362775710132771115917083036021132813176051385008125741713687419898391806831933716231613867065774362396777663717695217239721992437722132694575861193924062293964002970858730505927936381486313784578976048221160821806614900831218503205020824199784161313610835910489800230174126493269257805411601102143867246743695928873362647368750534872440804277255731240448915312624965624093767379575715362654919693073892090348263112379061936364057816627598064474093339493509968722286234147268885256128105805131682562374589341904705973086845015154128123112066657036987474960485051998928545510655803148170987708425695575591531741821105361466375678243527663079570311203254356024989252416258715736443849697460598012205955670265111879965810516808997683260744822781418015476645940135671676998690975108456830666482336140507851281939216105108456435157720187291317718364730991497426319211082604199037474274354617902893098133054721938310261647071207850581905233529891836141446762305658877622237623633606929460617517234815388171346794647717844716080674882171985748691196850638033988561562496276516618702787304845972516754423710687657720443509018678948970974426686287347920647587555793427864910611505210044060158714369660381597127405355290110789997378226186673095627493693701780885021959239914034947038857810243105494639003824594735896674192265373720277048335873363659891443471249153829574515292911746354522230595490418213839130184699325584333671206733817511388384454491017277980310938733135346537442941199418178256381126679325253984053068749271537617836430217882571278278799742402336974952770673143699246959695436981047242725561168503108681177001177664419853883296337077961986339946561044394887507948543791366527044311646040103171510844446970434612008646150375530703047835270159344544200600302796221077413636036524663567448934140311998117350615877127747763772961137618518158865083101308789392364796415160916598484268035802958402900007806040710296194988127903048070175149779664495050235138548266330168632096627675350202926716717205259534247342756723046709528833579123004565258328503167089995678004444483685102849969394729430765533522502154737696198785443745300411022100302973583770352565681586461369939573628910538570201220420401288592214517008983236177823135474867919771429138739058992617286025466753249674940506869433079177321452854681917614409643014061945337468335783748517019645821877044820573938359476451056797099483511634022581270005667778819829076493298013396162982003658290852409913137977060735566041844397225256596180148798240118666068331829676587847528956360434951918051170838266844017770348091998278137322382907249181888247450136482463561592438569824017232894616564627454942852146337133213959467487530691276833611985335571550987668495297819442468647152106775025137902185559423022261528565935391515757882494162776290761122406387309201645237738791679350298043355350439568434030616905655822967637938489268049879453489357550266463575594792246789534709316447084233770016206477094100307627878123298809711445270556430126810908162828553666478531280481624985104730846013645511892260764856405230859300455019136121809653476179851066370327454477979988701933417442116693427649760118073906046501124741022924734444329278300587278315296619136295718504357573902884433237654331881873810113965245145085999581849151748331462241171676069884289415642478074905225138936005369929269122624688079970179658785081713823647158039856448097395045805138821438246644537213341387876467829215130648415888634056262543620414381743005443445749583721573627557513385127474952675954379025157176295452395578113506540603492321193181115938724815501702254352295152534079679600695657929502300861256111994187417963768685955498580697636870251502720253842712729617559149293529734170766121059137980022605296672119397153786363287452296580843456868265911538577431458559738424576970665861938238176147358033470977601335943267557460236425886748988391288558610961708095801552094548845726015401206919704648388821328839828602488773100064416356547435069838716784708533405332773794388229030499491151114416824391926161286883847748604513652105289757882878716796671042856224811724107185324182740914651928138397442625090893388061767696663142698808054513525023195281922975956749535868790336420764757363001233923079878664881373020154778506096001439220349292910302501688431554035731239828522678315860452013746232295624399956686564794290863300948341834192369476159517025802428918295893964490992212418518327095420862856618523666539612999760891473228220090482070050268522403237371290939014931538533084614201629966126750468803352010017956798590498527939161857984218415637625824648587371860646359460880210893698945078350702831034962452149667611570573056441887085599009579252431809298070463807061839717076266096324420064846936979058772737967462865189345388747846214774547409330702001557680548337770682373605667593444160193095920482214505896228653995285065606299299236594324909519740196585993983281931150835526502684026561001010976395929918909018896688301743529762523825858678183689430323853876956755718262242307157076716124702240859886030643609606103552739811757667733794659418545154997442449467751714663898766313687447550734299866116808860888624678563925378957623586454794803737439356399344108507980748941482648876945324769825962985665914970854547997690428705766320521359505560064469760105551718617247682525952534423178954135509915421992839813445897634442613742422598180867766919088699932439188267338698880034327577299588207071877530389139422191722932477081163912805506578578183443310962408916053774634274073888453949609514671757475140474194961998796564913364538475379743582749326920448851276377707618741446033168251240567176836923161031234988711489525751650919684294890613384347335718819516999852996899094965087612522539315739668815721061725460872589446328147496872519855886368343270007734334671749431307811932625277572055735088680336391758270598201843910342236745326404115402295324310015776344183650575721733839397760503985204749154861356848654272657908293688538704880641377266005892744175059622573056921523445271901701005693046820561512030557483578947852457857491166387204038344364964959559315607901671072944424956089655704320609191512544967590925273126812834317886741250111390039873050543401398999694629363418032528478386934255013454710185896921189260789190707794676084546705170639160615478408612807736881590517819992298211060636287071798905639829360621548096602027482029130789351675548429012606298717465089582743270869975308897995913602120277670094150838059432705983440551224734221768340175203137414442253989882883390641936211675480439909740592896775080882907650314498154986224054004238103704605099693350838501606894057899080411586866660404344622690648154387072258428044457071894066975647719285597650572746781538194647703306912655397885381019802454319948535651406451442340372401487332683459877203498813267604559915646880574870951437975992424405917308380055306599187033199698554984041263081584443120285357832411113159412675850143897078613447170544980603020968449516288844462647687730122536102068682242080283197617295885578418057915460701358376075669322045582350007168691368712982224478197847261456655390879718146899699410268162090743702887185357369851026784308475879239408686060974281402416026918511678174779091975879006517445153471704998641524559524147347593871059668883070181456165753365167143042607149681346892855997937611044210567031246023573593525432146686733747980436408837813949301405577416220605279324213392871610476658006879524017042459970719397313089948165316557212025135273642384954062512225623607214072748168293722528356473275055096378100812064349253637131890673219416177590093014149686508995396987768683224104871750323249271091489091914336923668930198372312053085517626999095711727008497365929140277383889109035447217442048599337749256069428208645459671046114350981590739359086905904009411342226805613041225432383817345782239920447367857608647465106467986943823111563596205135333513157227139297062626367921551606253994148840642599775207044211161522698501831331000587994504202785885876456093116847120811301521384604350533285517698427519217188676130019806370231204933411151899745563129490308834908440858287193540574943442778264090240815431613167637253042034279712311573746387784712143584261442833560852989593919039807636865565773100149125937468945304476738323022546932046428622619184992542458437392096821193550438192730848170338194800435229764322459611496794823138439324523220033606730230292257883465121682111034679986709400508685345641823504121020595096481220838979942796241749212173558415443734305627609604650882412056254716998414701692896201490178034225623400248808758892099367036374107771723714102280112432777374520594713681994619215083594644112518294203873733051416861539435610413256426706842557807820914837537032706520198862784537121631729923849215504976706078342842340055489471136905787058319114191994915657154157134617065681898858286649382616987585665500732710442263452352356766809117023197489515432611285482415770233877932837992813707798458516769401147451718145197363072810631571645401892286775181247122892405009908614955717110287403098731848868869677084041039062367530646104466032230782649377412052096429316844082785521463150836547490688721333398140460313343675935713440551114014178562575114219215061559977901885193141906403449507704655607984473489668207596549458230668378705138656994201543959358984356957632851680864333964389368115931412221399059505223312197559197735711459008610862465503245747031654783218333118395882971494980478801619629472411134013864992369615807277019738745259907954819614537184639142152379342657102709641024859323622385859335157082774952654284711867801083248464574482259287237940090549484651589113014291407464509746612999839874648656615987008989918699478656397204393240009578813622165343001589748945659663426919159042360612888672005933806763683593952499161091991254782461785472303020036180022540374669024442129097135951540568360221973054874291289154545624494413390485369569862323186450711723626232138609313649782746182674637761204473403248860812831511630851780419352723185843003507319455992404564097889921153914629082588844724758442882537994281825254962235131461112731322191582579690475373957249837052543108507562065666684149002618270441138755449441438670493857064301346474899487824307231639908904614378547622255105168012596073436658751345459986000655785257865968589404869392197183102789876059914263113674703745062607270097051105087760493037844827163711808004862503363979177366390270925412669940800530748371664227359003623736815578448969737954121483626531537285968142785263509228163677599356635089515522603336375598198469686235395366156355295310346456987689112095948633321179111238248245019025349243539368098014678781296813799995253117527735869652025347048766496533102408595656272770784571094122683733761044311611776776236741953988314147807791883230863466493079587371580114164722350577446059230765835047330025978819406383304198990579081349060260325754175144248460078947229760757527835815877039386680627377924059255065216297541790961611049242395979384734541676395108956947978441189789956956408818803308464476320509156719797939871726909726400449762733999719093510729505502668062571910683992833866932968109299107378750302400966443337202236793035911643534224355327292892975692251610540489501840687905323438447095008125213729263148124812288425011079565590806912205016293056936185276445293192178706633779664318184016808073694205025001271500077642555049734445272983796570414506465294530107121246649980336003528077991760343039253158877155121204572794379244374347449958680745835657793740966145097555659426209031913536562419476298823806086024541953768704789038470804185478187315678530714675185661732246953719149041848829509879401241893574308434971309675704935889653599402553631207843430615483733584693768060054717834473883974044363690802236550357660911709020158859412533248005044351526247773382558999695673950203341078855163484598474301437352977456824914883382764852767878375447995993384203224945801569441151440078865233266032623348911790278785127299956447893646006231335268801724063612655650957732698440165938955059879504401270941968084019600844805444630777792541921078022388749912995582926794493907016048869400710349769838202694422478441163183646656470172326135633688210783857827996045980931073878209478642900811528223378125330462656093039389568842102151104908159436129268039364522849457284372590704188845268637522466696193951186682859387195000267582151927891740640897326115742834969361880651287896978236741942366988656422056241761721206349376216953544937750496181220969139195774528091005021445836205262170322154981899417412018967039323137737696343831930956328940120977983497359903989265283793772512581568117449647159616365338068858885408903325801295611495166076152333750499534890713598897790038692392642368636744597605002811121072944943862698975000362992677454696674149103745150386629640507356798512167705573521161638823240940041583264617741389573951369612498026473994546989164050993757859239556694500010384164546407495929295488384908599108424767891360556473127676558451499532260739375725843487896973862848411174916719606166931888586446246848390123506832062279258798380138220992316886773223602084181134037091513083401483218583341738276580247986163171911197059799243950580986654082786853443872284526075151573520877583643276947757090483081495121922513772368326985662946135850197106166882410455578397394555844362257083623488344135006564750767910342132411228682733339964350949874116625722332020434587859777114563250686121665784479480064255631257637266734237417099001757889585512195464090746586039957793034258566171287536896276380459011423826997599344980836517847074559786723350309917556368165572111758088793494728533884386912119193311388003291845631357505780359231805473070659329278158495711409849267422887984330617091603250944535017623148079132452605236101408075265916492249871992393437922920616424339066652349208493937264105452498099991889627472236809816974071075316327806693253517982093812322527116806425908749429954859809140068448676664633285059460000352894008347271887029266857438353972069879349469826233035430669179698160946437978087324693226134974366586397352057658987909665512646854741609157607985061599204346801940625087298819074943346702401971634890461397821220297255611085268063095758540175471076655959008000462137941095413583264910297188155863319844383826240749711905780845934523800325904928512898941623237956006902098495781069720077107330474861301667403969467531089915684338302396479897825501001609282015465851193894272108988292584260314964388430335582530117745677232542584594169518557190775329194132036858947277864769604229632077655557893226436117041827731716580843905166499673375487515946837321410039498023717554453315360002603481054448048203161236783222625966276000251234131207874160145737931001918144762003118821398806144887805998721194959289613183104022427807829391436428551114841279059093098402362359656095528304348737146775171349470766111989148220656975453128618185213039220050463880567281598888082040792370479539508715005096084045945502138268131656042804076576336217556180794809495233259395160336232834765940414272981194039500079214687260153552516137475349718053536680618243231640861100622507767216210246851728425969324121435829910718599443485076801885582207524224484254108824260202520387266364594774297012922652120876407318563770497428075009755848265584603094637263215918288543516509107337904252526754939695234984666984752102324827427669794394074415483613666388010469184452091415840788886324722400474151038664406827083033386896252688321414382472553043693769192417681314641079617751981987608278186627197918003638451041820429914079771841034224297832519049297437513105748743408294666187489821750614673114358859338405084031807818736499000793716937173144660794149884737228952861961215375086055496882331045491394559573243806280380405919867703577437523573281498838829950826468567785788734150299104017250026472327908400176737161252317467714501019336911939791459953564745069779900060221590466168339407592916564631323257294465898979361160768648643330464736366500880374909058120512552410915833470619596739840156984455417910609329084946435390163695821983290072445993438092625955942036874147915382069906976040573856410479847659187053310063244687213453656635463782370804298029586936612239108292679985912811861503555827858401080749295061549525914614785390651299189138506936095304537110354043893072605399799497773484242533754277599699420430090562334731579838637543724704055985077141588381110083624338581703291184959480841307790469167240737039002380570505623104648296980635181229647634038019767791551086076557913735390788945908982782437183667072692886783838322827237100242031274859708192191143773727377912832812359011261609893939758929187429847359191254921959000751639734502611226163460585272462491424572208237824561210824765078279727658322432166429866468795964096756086515182041608760733010325743806765702712898901903829073834095755364415084595455970971396608680694174215764869745565944776905433107741905497347837867073953139834063109485393198898538739674570459785728795213775478219118059022531668210682059800967244640815216811554372298495268557741107820769543650106522797445175579764094769593680891846869990461400402312049497722041350652275141482662991926168938522736331561854925555758399343907484394453977982593219693590636781464890432113535529821485719234779935372674777377819029420958773710639563092832512417255157102164915852149541837613023134268877857259257312005438262381916938295371442912059190258961291478243389803556641464395480894125327431540614474300287619136524943070676495371142247636500650190750259212677273683674069874510657842537401851846410503697639239612175309701192064431800396822967511938271417833603224911633497698148698717372193397348767035384740483987679197636094617222166748663703576155948845643448142373609245239327006360159144819370347749146060173649379483212287366492655138261192349277929670314128913603315717890220754735318987353877374337636264565240409584202850096269785454700934671297865467896194874865649795084424944721317448834616422342783858706615321508782681847103612491747832864409424861116151234793338033262105911078237055989146110080550683361762440964168802716119656288250232186225727483364358987727298527306296637465179418831220826882374334979270159502625216730829958596728553892037790690564330793610186688820667640544436133403844652250694267194209543889897380292231661243535774037302143744463673228125642018389825257561428048780216333299867727700509135332877173448073472986520270249550188676793662732702251549397714072846195007126507627305271167924723247567751933154486306914921873545762046519798410689648448237875778223703431640477676992402343437189711373548382900097999471805674924196383407412896768962014565135996306220172638868873225999994042210985653353252776447363419848581557271865877869890303309074118809681801845851897662325294853061941101022448111057004651790330322749826290822624231659692353993402845632197412807054107973474812345129125721590987454487439502978729538522533600451221691264354267918719441650864660118211382647050672212069586605962622768775676910329846205439471116178542847946454483518382028489027376725152837758265249239069496837546088195586162825111941534203029476928091138338440268055508466487756869520574297121684861277870860664377730480860782624926731807408162092671546696295792957586723697419519661917616212688987150944826759406285816407230945619946828617052463950746243859884424282419387021893532016948325885889221715017425906167766090171872015726665071485871749302668390262252142806908923591539548545747561800646366273745428142540980581790697111054015173365638661740483601444722541602833143592201195869434254916165927456478777914222132344202794818845809135595830003859730951361067394563844732560242439769520240192627657813441112153738966564199524790911965146268107472585306599643432444635974479513019168331384511046808165441461549538817822979640391450565717001371672376341365078476873187529076047911215533206884472423301786570077387593932863621033339335091098095111496531093225061871506887519617418643147270740140839771815752319303491712579720616794442218141160671504639034418222184998381145519215537121890840771644721386794082979182700452645365811765261682063548148298971969149914476613237848930168489481543111902934425743290204725487682729129689280121507963357670225768965889376399457084932894765778348821371114903888480745425463089544511672294314573875650283488463707043233133888213955078903697227847990155822315995644471326863165911777162019231977410653601308759962295034476441531791622384315805296950893006009265240775607117758983593754758664616921929172180952640497194926027736659450073783009688391089596031042224203121435585316689576512305575946832681165939617845285356408244552825100599138139521905830474936039279772818966639231397291430406785758836389638974654496696242876016639230382494801669169480189559975672795032184244801782100620596056709922746328761412882192108000102725552933167262299528749084114614358059712841807339331947925303169313319881006443223642250301784456094228435282998461784957517143686334060591662237778539781094830574190568021870172450539798042699596459388476581097856636410338878875911602862520301507405123219964418381698587894080978612048080112408656743163054000325620740432099708424967393314968141939771042652189449735025095560905128366324646075883798049463515948750730015780788529524691562770550262514131725837852796569612863542777412454922722655311025915193900319780103431805297340513522457068208016887064315106989259792495813660482711322072073186175375923391720271489698100365131246153266608267763054800786122024506808248582442677610146681795229706301227776548352294947659291140219359196293250852356047909917588645264222835867377893577868855679173788928424341720907561871649569245463100406494271493313219060670656384486931551511982137460792853087969612065249322256387398470357138686295330419624103742999765337616907823195804944302855266538912153506953210769034327709752298861917166248036971049951254581828291619586261623459436175248592046130782187510373257100878914967651841908631611113141558418744068321069963307043356989639769914466003775866166837610301570203973734544599213124484804276848624727238573230018768650756896821667346805650811306708899991855984991806539663217083170649125760629522823271000205958120362155408413938960831491217922320546743168454201556869080958987641593626246520471396987443104719167168215234658419611486982384368217328662911155082215303461791304317922524217725547484883035801062415937681313372744783358115441117249480645928501054062186734982616661860851505035298837853349452003444514264941029867407597336027293242875080815806753044132205539520098656138669192608510440208229761207037478468007660697913769358426821102806759288886096398927587473774367730444639506861576735775660548419197852740520163544652501441433610056107548667598211455018167184393647637043546226891787096480691459196566516767678139438016907337621391469664286405903131913500435842254216700267676485889035292527405415837521708320799193217381482504778347915341597161433536584062141661845223271694057877309455683162397128618760119620687172263962916737811446120449579743183423506282308542163752891274417071747282701665260032238212049123952707490318883950013719947692801628909890794954365586418496990404759870616382035573698504147407785269145599276027166967098191468631506667135328009819597373854617396025864439598646140322856999181898872229086520809712000205764197563367636334758339700668837404120570000815393481212222270611883183841107796292630572967024974386606401259371789940258908031284861079478284088335046248227098185472255810862486997939848200383938225441782693755622111395108369327910326517963049722779883283444213687432327582563280237489631564199725022346719348615632023386458144184651086154705812099233699161455757195082284013788764091995864950127128868042338143568933193092751381473294469924911862360437127068037115876048572860384750154343768728518856141428878625409479606267858034366555952806963040911620220084381240962341807676363113513953370530821882573303341385709017287347501111137652430849594800178539387296298509633555214075876412857965337755411436034891050474818423106896628308610419121587566476663125018585684897871481836328338506127127840230723287968790935009042753012411596877186624167104017483202996018581046420687839610399166362769640223881467183756717971754089204894030340203651815470943308822552980900223173069455797545906398612671788691201394871297604222841397837675237043372173105071661016955255090730258288390922706125953130720292979770514859615941094032605353158403141323400895591995805560454974318479416013182187578069553202044278577010902142123001986435673464277571407397327828857720203308576091428992710340366574552227276382065442629600802557197863997677780178033823896642007990282537066461633523302079268589043644215453108089052108274369203422257916570160517766074836405434459643808603465915101873732928282111217646820803052571129780211746836757974002057987101668687958770216419765400799623648954123332094176299749278025439755083662620961990941417206388045841375037774531061862692016296769131797159588676473129986932272992191474913979899978857367116935755633130697136858085971327816106753462149532906881980547298250057683499647729605863044903750664112655300786285338142818582830595624615590842572803731432384848584874442501135298747890008701584787065052366646346406881618231799845698205198584595132287043539620712834731290927271298228584460450798571726953703362320241375794401788130584455183819594319896611121251559445070286457713182536595132362900691344799934608804324767146003799547939259689039348767299766603607118937879810864852804138972995775384926466405516620867174277081123709985034107028549040212454670196708561065493098682752633601508243881683535420719129482417057792809852480518142516410573056603624605032873332467188639265010737371428389384976968938603301473438930230915683654162264637651386312596401736141639885618929593916208744937272469827911275450950978146993806841948505975297931713137329180410783652980876260539297101995595270153727000543838167489384157765820413042420188930520297482102444552149328902340738230805092127343304608052702801260559979996577410239537278117267346334323000166195724879863984334098563229373365779436929084175644522645148759213824628048793356940505191950908328170763254556884268023958166277696832619179838946347872157095689271896703179174613450237021221561670486701322384502631041970415110879512445466657582353504147810898503121740620662967568214620122629134793912034667722977349362550331312637889743104105734085703868643109882583416193547855236204002190414046485285343587897013168024713758106059487020987759079154321757344125030407764344094134755808498155628674487495270184614412253622113336212898932443894739201138849792543210910527729140080972248119838096135818815704554554739184815632042375427011932877952656383530012244912905687897301771033866963505719903638628327552319432734417802887523962913181651806532989998274925972641774004169314136977834504734588427020462383794000175168383909602351323127831570661171070982821969226003172345051192259015238720408451804814923491444083034268160327176489738636520980407767787651747747817997859929381713813402731126331441259031459272944191431297645297109099033776426651635665924461672621154005266483548710019005703834699604819277888817566737036774975584627137942743058219490163711603663536237292503395557086488166020309385255795303908394331893931367114791676762594797557066040024475556805838409945334206756886632560889118822748564913412838250683770197953069860938052375609162699432911088883759879079527820027764911898853195905141407833824711677711375745138715300710601969994638546075502401602614329286500089399530156394073596196144173953225331636669771052768979784469990575973169478383827161376411321670608132654955552885293432229195338246442163683638447496353257256765566707963453110903917156980495683226860558829585935020096245855338014616912051417197182897384397536267124844414350559519138548904203775632070680255168634896887875283391353703155929063475060777583192634041582841835270975980992463042029411446183458968801261508680930396991499412352143691582752339283881975757343876261072388375716670981175973122778885373226317064818729688602005330578450245104392398433828325165991560906099171650608964406734774883019771124565685525092693590583582618659093956844225153949241843509973174036328879643017190585287718079879328300599512985605518788719742170297353719809481211820358309055409657461757645887973898833885454077461288547405104031298421453316311376771584014102028562524932626354931422858661949558298620143215680966374762964983730157397785602847645512228752883842400214879111779243166495681814019517221588818184096446952427019238612612992819536184905651084775484822644735148992908225356922491713703081664334008640820953823300615492073747139550991837718756209966372342970896590977655494324715854454065941254649191976449985278016593998258483354092219857170419172833962153778552632623876679452711384499243312968245128672838427115699774560847767747545889117910016250897187530933685586286585517774868345004656710414502319023746466311469098766721483767339110026238373094876077626976298747236230013320412100193582533492113064113670269442890828766248379825915115206641315477662960578256411640243507766003510182859898182762750832254982979617724361192511257432034946076850168410250210323826773439712019933098418879231511193149385067140832838213133288600978458996957492281728230138681931123786548683531713032869794769582285288829725841895711840557414536022774740378097484662212770855309800850087504073858446990342532698162958849464111404415175676881061141644725472317982623908560137717213946436659506125546678994627280912135339965739534187689325121765377165575193722798692075356360988275731212130629027943018657904264581525378776212351229447753573970000075350854994454799004109729405778238684226307892985891830721274579501328395885381590747145826647795122157894974622486742434526681324994106295247659071686425895706946713426533604360746209614566600291172997451162658202400968036686024041582257617880861375244216400127455231415753649900537937366605390863337490153136278586197626654888122624361494606431366570357225055349969570302950559426570110253066210942258242975057100238464499914988893552142916734531648842387862252320183909707863294867537501501342246835976458080608550255222924378539826472643574318641090986316699181034197491791786915613703710824733541712415931502273121473506186803260216718984629596697482381817032439111667063570955576172327708503068567810705030979259725795237729780259553560049261495267451870285032297425253777799734906525729921746454502181601728958577496577030031915739345611540836712867646173814539581880911182545333548356490205694202747234970246651598542570136359264304211045846526971945866612177825365933199851933048894415182645456998892095929396480796503115947633309562605734836473193087101933957482655815588691960825843613298754237971547586297204670640692337418674720660146371373496284468021865323686236687470081826883383774434145099918927321473370106233428961737160151137953112739057987440139403524944884770356349176430305996903043025421877109606170592204243213730830325989324034354808698099320491416654823936066407313725958096350859392175550105369920203019439322144885552610775473217363911523262063503768948390663612605117118919848504157142122906080140475541699478961889292420797886504571487777198488077460295312465899505698558602369166019035679232320730175642111733663821459209832657016318072953756461964276301817792543562450012941404778332155698284906552173004470231240275335795019377233227104676536693374196937422793967169250857921590746812117946155335377981867441400137212245888176765690162845917598784244419256246962072219249798003340546447209335756055424523818086272509835931280677733789294202020845866645634637627949190515982492391417619942281119753596165261168187039873443862099257866304910732524779429282775894206255222214230220123239246020701609970881800106342797224790039090392776164811800278875948593937321250508907915061382336537142243954152315834976404987453946376025477769156374320201799415692330790557793861778174223016215391128854805388913237128279022600904642864933339469853331992044223663659991952355929009157443942648541393345790184107870733228367778996822428811546731867966386461584145923752431135157755697835874138580523555041931085833457690768141941719598488891581646993276236561567227698744111457638276732057456524250307344090122561836590732364002952673194283758215983533237217153663921424847073888773637985353466612267614459630162411895071041693761913610292823616336909647275247758058817188802745530876917933733684914698163707802879880239622479970533658464986924735741915573840165912505978447893039625891855039941381905605975822932095350064782498288548313851910803064039544312592738563514989008862974899781050984914634806625499303939936037714117742345092561238422331011314656954916370931721455626118502549558353882876925503296812155730854282680812609887249164226310927624779024563290359186534380006995994109770987603191283296174963613933355000298510496584243187911066680558353656706477744829431490547560023879289923546498612120128318799690817777541967620259237471823924720709130555353248495761794831816476162369610163874451877457852291924437424663557088347877221177941585182047076932852700542335700344555283095263834466429821634746981296966517729354105555135455450852337279833706910470083088101309634999903105404607566128840932448866106055011648106797487690725439193814186209516062326332061506357820828729001994407198521585887861730875906530266722270672779360805515710853482204839756678392373267536260326635166177561515968626353864754712699424289048966411878589693570023384792195688579787593637398720687446321987949513769508931074246317526525589156525980587871190096916614402253961947582409667507365836240655219837636875254802559100640389240557450027650122946328014248905947380917354517042977879727503763077215285258422045949277295883343817003740558145651033411970437943793690204036903441529832188409934217108854853067835774949680358283706383480279524456470945782528194925442327965151288789687613103768518079795764840885618388806218067631062761692867833941753774928146185626189126734220408331741803011874024196595407123347828567200800205986721504582477972214798158716002752472662006045621337997518146312465178626757039225933599415838323899487656519255035424945950227060759344013829871793628069756601468719187807412184285977181654758096251520066071665374186946657831586368481877948929444369717398250317043152068290655206340242236328744757475126127743748926489034943397062365415904630166687701379870179064934982297881112368779326467912847825028142276660289614150649497499552557484224953262480483050231296009292509246291604612815337329745476744432938450762628411463316482269909024474542561488851987624939269118891322060252204124390941678702898773347263377130861447139490735024645698858584786437312012846075096780467553215834678155024228095707455000564444253767126209217040970320280965171071656342410669785303492419340693865370089238624991948161126740077417188041498858830005072392825536564741107558520291073819639046802975831753637832775935196974990991014744746974798579893608599588609073246688994947546180212393683406789529212468839815962143157514467764757979679819895835264342122694384274988588060937889564571289883681611786456247388603431608320854633955741354362702802560510556761617153825596877816673939548673420499169711026230917947347745293602623131413804359077516711479822257872826738831417410721440918472306008638925916385294228309403610370561671763638192732391193173397947367964554296634528458369145488549580916239644872465772707308625548224883727454073287426571726421486106935290948036725156123417189361785406362814560807083723980538903285151843597455538262782596960396838765679983914036703480272976865703421097008087646545103589047853444514773280115947255168974345611395101854760148162701757861917304447612021206776326748542340077924175286143145410013083562536649255626833861668840178370055269152432736138482499098850796216065495170046326856356227370241796067593536092600671084038534704596735801623233795627018047446854588729445256082950345892422535708940799718784734039355188999611626903390896226061860402489136560593888229736292167886459753797894458794538176890072442926152815663354127730753344698658455405547888238722523680383532168783490143228574065968869888766160747852418388683915743998503978117645534896778342999173062275542089333797076369749999871539836939011469715819025716639505169665769351189528015276333087350565687453056040934407650566414167510540939688679273389287342648576955609678849216708631861945834115897513572221802844533431976367260907730846558509226709100914188729186376158441779900029410974465405901768701088470287202641627532403946153876148615805265066447282911468139466069759706995233094142770938914011021960302811050330070597562260862602219225983961227494146849269278285965698170731980197351191150212629063969920910592518141039898211215247243634762810726034335625752164530436818618460884347436987229682061373179897352859120833332323651807577387838447303326423591025509438248273078216536752554570868164940093647241999225395380628809973728527722978509519874874861477158197667851361832180839043330447596064971354745149505646893568582309294047097996587510007397810023159191692975405852543022903302673303006743547446903024623790498381536579405257811206712890571480452491014726580475577871766209065186655957502295155966643999982098962769052125802315108775589593781135514198241674923056868851595709019105321242665699902047459805133472304438760506351752250370448792661202579203906958818263259470499658077479185924038706989960728029266040782473202281297071010273264000811206070485820389655961588129300132260955866807914976416797802569050111892729836634813136716204325205612002396269182978037247534655020099224526009935224402921045538146961451216487860129144504825890419851714279307502255379959951671048603372848806784746067341756147078383003553528427892501381284868203862957669951667239415362429843555890373135718054144920411237346675893067209779585125175634492760664713872100808762747600024245615916483623766703219830889850906776643474358944734209560031839514309674701425229543855566412960982254046703006217425181191644128659374644466061057815722196529976269852293797442993627663318895917754621309231497881986313825904471495661478748358080462688817414164540524100134735691040475357456619518497814743372711477633358122283289661321035713588871963233444912245023381133868222201475648121254873023831187272205496126095110128456247066461131089920159889382517102112017052724482621062401421031775448713959511524231135879520868093020524323842696633652631213071647194815731203826699105314041695714511691615747133073401902060356790538832125293422796887072587790409162707932953430883406917615938776524345223311020561887699392815037805856496989626446432795492397161523889637380540321769007375096938876082288940164302608651347843816746957325187618448956845622896506250675752598266181575134192127044137919774025173378465355199896038206222454561227109149758061022000587915730675854446531986264699645749891270564290338254246572892155602770206848766643056721619547404220146675673219261488498174626810792608550943773512128450269670442339734223109471778201526702929536356765469518499313570949155154988162936845935710679971936685747498827279796450125053068523946643064482925202924801138242828843487342287180460649591837965690782390344175265949802357987940468479917931048598986180508806253829381747791027545641931346578003083073344794197779924431968208388207289159439105405356693218967983420859735774076952642240393320973705211978782801808975704444045152857283977901346180269477292648180364726806573218176295521625272652690614550134230903792766113026132990628028607777428476826822144143781025655706613915295398858686660600554870774432128867983551305688644652943020603875294020065125649928621289745689270753235087308651035313666614864136707476292876665430012899469035459031971619779372552801474215422504401192301196957355768189528676777036522015432831719538827188405525697398184914270126145562026723340864772061020205468331094227381199655451932530430655163999193213092238553167840200849130694548268210462745533054013137941544532889654793202811061569043455264852731785810273922596493220743985431394060530487473540223063712102990077607077828147259917133602369111144464078098653847113730809783358661996872008567708688221443832516868764246585991712223186691671464849393199587552039034968713143701369606668158884009464664679028772583396033093781962291275566423650360208604169879540350934005094095643715217194683080237791754112729844840205199065436194311018200447035916013127104246064950050323756713413068915486899935236766474977021562150302005749561059090765413695072370147400757161061627690472070150514702057254690751010151512605405827950079890365633835715287903540848281815912030359484774510457865964799393989299245677642957146499258727124650405025316607819123203727996841469938962403056336529730912997370065175505086718002321496078176989126974141899170152092324286742773618965061627567258970073130607050978194320389606472013663988815071936670555621166393104086790326232218396844641080434433692208503327087282899546697565975700825123181714743449453903497031726817465545313889232574390349673486251507744826278784850004460583950333361381243373158481810430019332878391566242704230572463032298902791181237271425472366311919912319265508682073421659788145699796464257227057119044278169741358705128846296407202175671138525280730037301364104450634782389123394929200150793425999370690771735377876089794626165836669276024349026896979163278495345165538359773266788207800918308800038884901620064137628018174753968115242223075201355434135057276928784851618040822781035623482211764048047161771948224394545481122949602548414324856895067405568153217986998062682492713907356102022828649203470268639007958942253313606016849526662622613081154440345883048854391486950660030535580397545880573829250773278658634262881922749435419624072045994782502429066911899946897604845520969728878079317284296221836286419261635786675809059921205897795963018027213209689617428555290813698277499134538202702101649764176143099761657021610073383473100435219262083449510682763845601211318380755571203690241652528393870483495959356680284517512636319256975542085738627356431609550774024532567242491214047991617199585146939520216509499871311293261881781828510779923693388485579132042644915033856067580448790897547983448122800451698041697278609873278808943283927394344247353767830557846383250438128301902814712520110838722366408381206715169929953640956088186924637891338010704381796463000273966729536640177973448431446285514608500873046854249955960524986294166415371854596331751480166092762587414362269857913222698915190227800510476673451021110855631991789638405693834708800794040613038523474326119150613720026484951677287705800784906983403229295210927197505787004970939549278345686342436251461274657753786316586430977532329462461977968721811205666467402097388022602336466266483110315576306897891618221733511520203983244760189623707892841347591610327742421779984978384689951534295935581975735978132883598305336844448325170248664178609680881368793327587155451283537607367392141056930767733021675316620345764299778745959792274039322097236258199356160787242225763466449730144200433439644177837028218300780097682585603792843199549528872853556567286451353969848284850150241102475776456021811016062304440637217877890240036494175160863044420049286692871775112507297113959535537817379588201170263748494124197869728374430921505698827044245113441488582643863973247266860593797232760557247886109525581627129429964410457099491101487890016615958948435265402393307478737768061832937642460102908795468846810195873245035261308636856645235570934279188863882869824904118155894145718625055161166095962370698300713210339783199563385294964643806440046896515482518822836271077589227866315440013109212061824344651584777446655273860126729858305174642549769230014498707904492078788309355137126797662275298623226224025950939113383985537540174889556726493796579189321261586817597310391592674671955889190958822382891353918484581950612894024852495485639984180065021864240525978444163593040017579197315572646082343076709977067393329658930595667532013212719963897421005162742797116573414827342897839205759265759155299633530998493624183903197680844338415837194456991292534226436114029598909001607954914305841730393684036693776089681075885683998645820450479625094052822953245503872338464378887943383084506647854857389802767995341700220008777238308069877732758057246632905797231222754223367852878500916724109632682242060684047348584699109807916641203348540342376579880170794338506748188349059685441109544696039988627443147115531377961519140078772702966548656134521974621445136325759931436979112991046876300442771821164631745365562233271052692250412357157769116132331038465196951217898302832154074328264136347729422889928332583742595505637649727238952012001560639672213774974485739319276020049288847535352584365111051235256457071362037835135132444716244015914065114556442746910787255017627618974387336609845178803291495592894840167842552524694316022288984711573885745559652569113286913304748386177575179729269482840396240131210195647533581480038140525226831182815783461436213780520057361906970319173208640289514166791976083019673019388704558493717366479465830459973162979295019564136456687535743344412740422852394008685775593989633538200767868172942984868752443786526973064846545758227894063159332404913734882751424480740103459330251874326546544813431526154385006674233989221172410511167823241058733884234570777597715119026818413655238754554824460538478716705370999230939538550636251574096919936925070926091061458427045293315282532704420383904651414676233857221568524694629022966880854848961083094398638607178334247349452467534754103558088614521466900946096408009198628278242296343166817753451001695956355215121729145932385505106365227074247226884355600833065283290811781044735504944067137142607865639428993759588573180693213048530803040416775624998302459837020843385412220659231528396654668870782862845988690282152731114463503477638034726296797714281886620398382072692224817410575881675083028346018955462440202243507420330880417403738562182589424431100999562442006088579256115174906388305531785497990834761484795484701191958694312656602093541205921383525094229982084049676932163937345904714025625871376266794026484525823780525888197715208109640184637855408654141768161474691424407787283973106863985097182669322938604291842669406667926946941274244677233867623961327705059636674485262184665500599058124968150499636382080867856629046482594045551819117007566904750992786270776656440619958969008627788515421825925645416946669873983492644119622558570215450593708340638333241379591877207317855652233573005947452978747193541933483272736734513084750725861179440635150251475747920830000772822031517557092317726422705825533282890353253630751142279254207939398525530257633033137533291562684044921389560568403086530691997374684784588041872076563565799569720957099206359807565452048035409510056665242371835661517314752870771390186143689630009902008115227251940542069341950375073917005559923658165537716827054146969655317996433468018048386249259272793533054073457428151922486950941155721491041486762005859424183000229341147143880633570416274207172568116117943205926554443080622726432170834408065688577085109436985605262385471901702909922920799324149599309428497326933186502507233075487866597304117932064210364709473849561965543202979777075532327280035561119503116552577428614080872167318311084878557641633393536321255536861275556526606334732593553895087096454060365046297376695155611270743152004283533039360095969967967664325433877053806661804646634587578674800562187276921582409419588249254585859925711671282194527849326890871269063787805241631109072520226386468013075354498668216358275900802073702884762608159253742243428443207537103212475884525269625084981234492733044403306820266270729288667983124320952692021800089801630246090227905004231329785825163100590580598099513293726272562094921407928674833864561214642624563488359649668959993027300182292738419108012791116257451616757401154067285975082636764657959255248813362405882825461097917655664963188181417930507108426431058667481503752754497282238121976958221858187198645715267260427521160085699968621932743621531293750866012949100638435934340704858575058519297008675477657194661847374455276383387974303528503330720327169825800097881139888340412938381032480336399524000112842722356712380092950699029972261687698867900205339135951727772598245047276464742182108830621299979808885524645886482159746329881736527687502895526497322668731392683804402086252229672516278300785393502928359211779819201561453113471732803067736093251383052238744452033152233966969636786039043288450389964971920707530822273727800700037766459756733688827316772073575977624769159793026074314251419547395120829331059987871314181552934483112564511043230734770379959437622249950669923710183993763876245674230479393666905008263737629411899227022092794096607005889499291611982612341488390304372772893680580935154377532552306249992996628176925512380162233459038687806824138296398449390805566889412752098629532404572956116468322942869261256232351170427846297618508622493267219129847495520079096474320051669543129728713102342504248826063337990674525688548297158281846491306769530937760057210229705788510760433310114186232790198674657502271319263949319204434044989448404824741545122863719975624117684443423368950136382548040365139160928734166828396089414965814912617752553003924424489053630810379981889755705381638013734678392477807203028929287124415123994706159736252378171715133633823853736068466406915248464048201413571422767526490997247068036458845137090688942869959749942996310241165676866435189011939686731107881705358164819466084358470388245543464547634144105773360721564239331206059363155298066379334037658448331510040646776170452290510835630398781085159685244841368738522414845492438983894169378369345220145257745413304736791986086807112799361098087249482041352578982545864848614139515433411254064488136163032537907800663348614771959151163562920893686835794776869742183147281987925516799949769965502870266996487869113683391784332174719434743461840438437974070080787688509423029409119327390845625301876540208834297348500255630652400694317077997246381328345601823030848247734171414972889518253356613262677485426899503987792833760627028091736849287307613866088028091891890928255405954019777757914835990026618578475175167687034827795065788560835764315271671594523317395956290436636574829716290431756469480324457027241079931599497340966155185270306592194152903512796774651619503813104901429075403347182847453727716721013414293023730384200317402349004635227605537735164512415836066325131287078008805578649135608836304577210738958065421968263752822197471393158222263516329027629697996230861168261423226704640400744016896248454662935964282223598816692559882886362015723937270798540507824053298001767729665521641955701209106728760838492551951941930782841832121484833345047504313393980432911177302651433680118210313749402538865541159964962272847536097737089370815608439197197544082061563792681354493870448836546913331716755372697165759347143245421290257720082964367347356347441145033139252854953230483775732841049563756632572039137294144243322808137540179248838462807737935768771375166967866181032476460360066644622030637573572881297679011933800624213346199906207688835642131363675579474624826427028283215249131644178393790521979820182976533507936121743592494152251284821357953804459041677657396250907094878367395417951974869671386837819075943760062971418650852460632807610682818100775175925263078229683532501479945170502867051387804868763006934994519061335787519175780578566128750661725551938855501586306989295184198261766292396724460346476728755688382624015647192321844424282013395178303129052672616872452713358588155899573285061641043229353786264877087884309281357126363454783282939788187960169702149671331911667195419932391629411407162207334706851465887802636237979920439419927395424080514335072293964129517210344168347597061092262632369639975550389628685256711580117343213589445618077496285755913134372945157863426222375300256301509708899192036413244005142625287975907839139908708925518102435516141806143460846885798563860892514111115586322590877480601198571565328901789499354170311695090616036409955119077721637585308188184423758707503160078231033205177317079568660474845187170103006257285611057583799394631057687044592618942158409341641890208786119593574055801177896693824014977550815178199718611012665123876585433206635806662320635787142773911773940441794394825542200301426578918405908498893584313775579711924344627848508708457398556247231932535391004460054563451406648497220207435251755464284084600959116553442351375072468626579409263809979231577683119373514738859037227764002722118281721778046871120446010193540016939535850145871926981397016058588210402650571328533257154011252205915256895510413522537879769006074651107014367204576153964775583475736207727147264610577106282278319293958910859235252226348597550060288577497292891594658658563804486004369876027644890960135837577924638476568494445258076058067202219997383292570975214846428741664238962006772512754757662022576766746752659817953760063261026809353480688370510605072372490773604480976534917954640747133785319045274546917289219683866298080831249162731446456048880335298434768947954803875608182798283661246666059234337330389834569679297574354597285296933160847043298863048603996224535767613786873365901873035867011476259039804906567164903604452525513291920764494091973039040372542892506632769995623268437602925336583175270516289665563063025495202545477622958845582180139206918398308946282793126252247470472449135026800838418716743782741559209682061065069559769549766858229709133667608429871798946059709687434707951776583412117147005680054698384980575152042692072365390527716186483878431703284609093067872785845978564552993011738584844686505918186638709412786080835352606609044903790158978743845226571574382438269559166541265401413616286823461189425406757354847427066623778356817439745503028419533702388786490433210327389574368259041330854117981931825566756729273345502737382346122231679177366011049955739748968366200768078144295124711196696499139070030672135179903526833657244554602767947483998949302565766633005451816848337928293032007689423105271389478144743114588233177585405740093446083511122050171916336463060124065848617361229631782974762756721219501813379285635396192037762036101224793904194222924607906903182542258343071403923783735621658758664389170296187970667863596727069568428803228329542277907761611089472621908534537392856106324052362251131769392600683405582643679167330751580256722567510535273222561510809999142529297827788223882390107885694852257577593695717298943045347519678645512219033283616155258445208231084056139040343465109695454198400328974140605966838879833895912881518635194649677785313491359318490249072773624491098717585383419034289095848325348355341426165788549896531495234413240148890735199426711719292534176062917155941840765395033192960019550213796904426165623142190652207166826333682068442162925907217132716038567352993860406327136756737501729268466461244310551091125043427387158140532685748594443520592195125848423225528743776055610878996321529957957683307953401003423818415601413745263167225542933109984019063268670519796676518313390373469746081323137627695463048457749790089345924755712923917475792541433129092981575557014469081956584022945485830779465413372469534514639390419785873924117531226828413175566758267251168148645484895471217692602871814203549440450854055985529360567040972536079755301375261566257296030525365976108290796286613181862517063259008181508566484354394928433374252434305208313583977910261358269857921590937350189907351674647949071803557777004081323346213416175679370267858818915547809938971506199557859649683799770018907270410297957363914921444494769332148726156425300054667340433473022615446019397605418385859667389503209052169780078973151409167190514140012869697653593824509527634873056108823956755046028615978638839055403393211651172218100513674763929043572378049805279898099901632293592937751292775210402309531409020713697673881367227163081292365300447816307617368531302225170772999633210884991358579998070488266413955222681679563136774072320087544583736510394521294622418116858830616510668138453794036857813417552784335695396274156613461647439733832191825425360808327888968391389195164907365860401809694683592620963895836424672992529704743874702630990431513437289919471442429891523229538201049359222958881391684362001952504390476814181045753973874707366120007874064878004762983211751723570488517267816673972430848763105208975306104075117288317839622350902075067407433253714264564641984233440994378353438229931335319739825007932446377582332559998560638731597321660752592953280608469479500845210954071623722211968122730341536972892853003713607747367561348218359366040364495581697855420979724168791524751452385798127338915418820914735338507326830674555071976508877847619460186374753521597569505457568812376768738216607179816944933735005262640651751816463858279180027833506730167187988635589315207345725014006689308979911723557810082991852324683267588276222519085037064809958724216644249334803027488962001531416704964582251689749572379903509958909691688725010366644075241155913092699650787383868899201393950516530318344522183676781979221330151020865850345972421085785573645615874782112045603337805609574891750152670233868937436722056264071493246885334058187253537582432119929336088528680060183251261914895355502188104193865380081902032113305660176488801000352163079192826104480033440930999618620390840602595226147347765531291287196654744886574639090129555506751492764326347583655845980335593179815411214845387649353724199638378690882960166030375277915079766687670249401792369567717551780661001422162949160075863270833129221134665004789904388267013613627826786124725989017151817765666487940411332946618245404327461508054216798414335553611092354353808948747767015154441825083567250086111186793849872533820965301574541030692845800941401144159723075357158414399009633684203441202441829717183462676707401928032897412755482981061479300115361629725292056978565080652215657724661598104210568683151539103893647690512580250866477485886533896596748754121674570133106422045892566088967017442639673727001476503519925380632262616333582215511614551041644934499748543730598391269272624328914160753172186156681076727637828030070603387589857415690224923600033150404775720317606706660938230623573179024345624815713456923018069744267654577114627438175162070724003810951373179210522338603913934630445663836064599399880082289569981856946364059393815911956906196125200772728140282194428442310914026856279756665625803326673016951064343021996867845676165805510397241164724914502101257078254139112188811069993477334113310974424350951022446246534499124397071929132511620406741984099179288272275201617249533220686089381080132888880097662808213943646532434186563764994557738051446958203463428544030307639471212912188109600439658219435916085834354102015708867011405690538598040973537799618592948616478400933707745297514001884459705652558572456150718719674588793317613665985203207547522681085139256134154054430572152588293534889375096759011854136231453453644245288955061838106917359597940750787515726428526947341664399341602102958392685671382265141769150484956249847592849054158323171087043076870027915909565176515547177795926214566617278140250636459329241057210570627900854049554318612740342743359190893717826192475314597515649733167370084333588202377060509692034379036531720471652367028714053890929500176510835082050470655326478347015657906675898038962476002209759171647794005723476240604415760814759959573344165165141395883258538132334949949970047566241715424127879813812368504042941618298838524071880860480699999815235252511176056228545291530923149481228294422895656049387334967367991726050942931846375617854323088287795354078158730214408080825978440863149326847417704461774587247068538688722779489288005008087794159869467689299376441503772688297905234480711144633871698523643702815773082135672644318204582516133091095655451298833707464359470503515634198607329467545145316529819880225640040556608990450255011555440073923578258950232412942156023165207977128673402501822851787998453757625153882703490102459893967604749814170376319936838123166125737478800647750099198977797738874497298873244395737724318078722807476741926650211200574004207858876623422081535716018303973105145924127573068829011969177757321219295092358391018704151953990128421931159930184577620589960000464075803654325801148271111624242197995306808814600495371323308065113491277238312740438193509574390145154599044431291806998759149405243065205783830312911178426591425834607091737992008511506351868873453738226410891160232757932901366621226455405329832276331056179275431982238756833408997599483169089934235733653984387614089057223282847222521239674830774308698352247546278256041513138184349129578360155001162435080197011266817997144251442471321587700373759470535966935490364393948610217458940963738718925355207392904025798681108119425481723020049387184795695823216250542966656102825464320101568577793230881236042532283630770287730438915193577596162880462744208173843820135866397191569019400757118630582957684964810922719376833277780823304640322975256235100450469356991615670847739375115024788494125431218394566328150517302850533275782901568786346252354257121617513376299710760924224717186399198821907407858306273379986255371219186593153058187579993669917429772443622297067177134473354933343826967980136773129362513720872750492130511001925398748931990848406558204291204188964697106676435958450696797909647145117831987030353598839557021081660559542423448372525304344893588643670355695753156051677994989314130892600641091769364572215999615060037763690727019537606528785350796249232725541390709251070503276642367310064908962524797832436747637998012056417625873799288888139135223813583265350968992140566818511389747336174716991209049875064092671950999511844156918641714900085730496255192833836928200467409852256838754337929192568836138506445661444325956626118309533728111266140361199768878278172085093910143918717669774591993037965695674880341138525056169353817423455184123796062924373177877474230477500792086625829558424558874183374912738800944527274247129181319626053873145422822574005254859288238779418507243793559615075822571887206787294652378563371018355560375276997014328177599333590431593395819520454614844383665323827616499503316180753864247013957668504316982228480391111853389216899916116814625530015456910873274748305245841035844328585696078737364273370109582463380536659162307119454975258990276756983214752312159866906227149614896845405966365648782607391548016568739953992061076934585488527188765608267082672524153424335068316661109962351640907872210134114472627793354441481113747495702575447408977765236561940577932033170844453090162926086401759343428362710655309400636892758632504501836251163064954844056604465439006441310589326886465261299322033736829805657685077360728572268463941360604497632447741546583808947305527812458998013442292057117576199064563437899259467889655458524084730869194830170972749427443065842637112395381780878920099789469126874912417083912864035157559917330664823765079152000700061879447556117610698654755727334030426323682906237006178447890508821447971836567292174935765737069978960758148430279083526527372145501257991845568188280351745557397235590510189539511364832955871633749817790158411693989623480262573614261434995573521705686214192318056872719370072176030250952144367904754011833264556125295168324858580010653881659086100250262102015706664775649181744619490513573749018617370259260196473274212769680226010571177581323143814457730600882225949953149097344283732265535010392136809877999052555367214342500683086870277011481627175328802534638276151782724711543672522399459877597937908326665314441402652840193772327971139493158713470904174956474217965786467059105368858948935883235209171722455870465606259423235210013189477128107003433181879902098753098795324733622515383973876963649000501763726994847819953044456323743852853778817195550304510553753176848594191638817729659700263070238313820036758728976993354954282884992890785761730836708572246497127004113631692414703758692940839268403811918371235917411594111004724675161184816969798567440150793392644600544536042675424582068111111190734829941077577203531240534306239380204183084930918897922259529494015546159129452243437053778403087648056974827994214981588614063737284086334730870539664931990795819210778920370660895649180842230830292854647663867974045948253493088492676480749144396315542801513695995175082950779877332849060790671210062922132853875150625998910834883297771589367431392945529469183258243497214646131875718653737093881871916589869549752904587729710285906183252233286645366258561189503066487533558603916729511739499121530542617023815432735913763406426830548459326419012031653776206895782955476156615820227785795143087500322571187880768774740953404209522119815415550083535392800349206722453435476148411805982232802785654188826487378924640565332342067331694069548027581376125661118072229621434924039131048239790725466528389502061325408069647274654579831077694275003626007109506765186401954268847969799548398768046420504045742131494009751592588170081347833437329905163282449904424236969446261228254666496307807407823011759881201236017014096094181606644434998050587290276711663727042972973064908701600667965581914101533121677437166160071651663651446446387640963571631466709576554590925325122757427385988719329861609593992221254442741894335313563551754087131414306481828738221466018745911744274464574291711351871670795858715424409031311453261061584170512963313515389716426345985761767951665510307180990341642812523519128852364993659275383112390518226533148486022769323130355898395442529460042148633740934304292616175146349902406825986519474814593224515095594503294928349388626618802188192929708819621533104821974573711922611504984415284096302839790767700285484194936191392988824562015425130342398957164438375152275226857633748527830783815715665934242252370792339619114417411187151164375363764069158557669793275998387531014603118199266807217002306729370860793080059746170054908627208635826772952958524711310815853804333005407167857235739054207433190737455746947447035876027713490989072399659571164584748501027227662449695465192891547671239163956379403634903859087857904454106252565481431529827159092009777349152757735883005170299465465620086496340144560610107240894544404585201526716375965578616905628225053477925574933703620271165528148167599542591301871388218348109161029109512353154536752513710330364555641210353749769940088304300494381820189108740372830571393496012884501378259104581458923273472802450966380351991427445789014774244119867921433045364561663930222403180143819770499206002559025336471703429627536836731810722465745253387987631568892811533076071284899788917163800029701300844259001730434459595713685584330702004650943473489673966132488534151035904327240836933187190184308302795948670198050284080697662592721326464606644698385516107289469580567836712652592542855434285406182946737750929134052501584754934617638496762497454355521160177587148317952004749619798488040793700592145823673742495133556198514800611024415720202053909398871767719637899012466344143940958893224813039503522441924425363098029924823810889884786312686679523593920373394280684270477575047038761266093910886424054967829123801337090803369238912795118072481417967504307718418243051673158766072497319887969097859948713811530066080368567562199215760901287121754744521422188930989247811284578082871518238001762555963885595778046271074249550075645223933359480812960301816548627944080498648715965346484903195180229889573623106141840040425489263967254387361042714064327154349206671359381012760138648582537844627970365180374607051849560428126309462829214018835339114540346764074608993886438177265913992706324547845641898975031414860972836039175879250274835386072146668562332124625281554965321085584909473796686624610341557145738518570085089582492646321218065117720575529367871089464261390075876339678601864961646901872389820394317338451933712682936003898460455914818594414150684480065837398998830799892555722174105684745870652108434344566636121818591637834840725588255731031171633671277740790786277229970827402617972217753719356126470025808730459277050550250686037461075170255586395112234537191437680280467860601338743620084272462394325464053716213017802762921339749998697400603825384045724368138139993744021678314947711685740111113574686300317154356034702309179642187906021111648748993190330342115631168652792894927734019141268700841039364729751171020398820720725290469210784006769177502280400142224262541143905642346842536630644871096929104181722121815351723951600344265396832551084783430598534615187363471187070546415476446320928854979173572396780926453881904103264745138594807493174972086103312191498912484075867336478041890103969342177811728253476646895859679391269865246941958963146489991525506377918276186438599864893930888958386808094930006475583540768664532711714060640503359111676993959381193220558041152836498414737520291101912449194267358462398854464551886935684335335422087816270433137754258060693184217850984578494012020921727732256974433526983350576455560113048450719805902639183736054700461921241350076918747911041474354361123709166270709975310145090373110860496359664972181464132974776894426984462968329243845489356502335637553886227246603734282429122174807112153238249450052977093949377006102708995865826454355445755172534056133506229455189673370830712854784414194810167041419449847990523813698747119357670451924403177128071806517975075874594191467998084707853443377622666358799370867810158854452743739016616268620492905728708106622579920760867980588009795244477311679704610193399962172647737087467057767801949061503735800752184432656788380354011628501959702879538220181570593387536604606621298579827218651775333711472918778162708279995394244911977702386319963167388756896590235509515587154741105089336677239561942342954589476088617809763671398876584333668412784213688972570740336653754600390498796990073563516612438173015609410658945998849656505574365029211097394049451312325974214214498240107887982019111966592129034679509695589431988972404141550600393828521413844110262225085376646378632265844936261587785758423123297971847993501449982710114023903854298143778137470127622649276433983529060585900789135220927886090679007681213692948047181128787347119130459725133818759044512408766319983242635824893133419707597916054754747741327086563820352514576485581532435907207849213548104499644702252330146198571069701910347714377180986499784606755408997465343771096463495423061949923169135456174473798656890619171593673173492349404905762929950252182451124259630556966000405443427952052245140729894884658461073345767581787714799071035869950022174678191238295439528315993026757992866750558708619719029218733544897251470305910089187227586080235958669081109140297086067788332307514250036547318570941221025894819643171664116003249779429360997055128530284927970122933882834448559290350912031365222606545958658344338208159382160866923140076724962406007126051142855576101938166087069720668505837076094429253468682138859801996326148918900426738787137701045329064598269803586212765296128748121946038312455319990562775164823604848548785006753186303064696686978096801874862906986003506708791811979010111721612989701489635014266746229769803291768945814687369942417944856092191127588110952535344142232337847139729832417375277751738822347121156136124603346602197587397297320307152581587031444588106703442554415438799174938340087298610373072225267206829996317412390316798535771681971884527968425139644130131967998878578676481297149727928414189122536183020543348679646156532947047239393572252171749610703916693040230101913436085897759023307370295984310673196887762342899040707629646085220485837249004179523915755100457389466433765531541169394649008923283541161436800400636220743356873526982142586417458245656446858812916804975842935352879457306705435104068612403893547626377885234577578719113471791579674637355645189797939288960694862146098481282595450779861010287387781205987483455973369982512121278198850386114654955574366298838534485945146023444623825581563556835213909936978980328197993861557990274411467551132355245149074223702907511932926709028432494184107029099534644069467838083774826180474453405032692515007544799386529038554992771933150677862967340750524729424386767825169519199455734228990704347854845932848069533017609670588616914274060367547410648633076026337938400873923671067525127204069804334488258661993475731510987116300349141635442154720768889632879822279961291689616064097946316292501494396862185568610481631480418661390264940187046999798892539636471482225265731523300640177104729581192768794488787533955914893901409716830345086374409993956565706595733843618140901458676917360665290478147950996409902117233387351598961363016435475971406218323934335362071524047399320279591297475628605588708151859398993017963974437774956849796119003934680803377892901278020882920915868213244441133263566445584599904599381106125768884839895492349390477645228763958531928013549449584511532105957713129442420736647292648117281082842021387102250627235682707135598343302123849600788845081163742079345557137402603969346170063608171957963902064014702916907153234484433724789035112368537701295723037816407763785593728344126211489922754307857593452178323353431800042022582999628638826189523042780773425444728819592565931093731271653604777734076355485649513729514095998946738919055469297606999446846736552009731874029242775200101636394745184326272180983270673660531672781125315471563260019538261094639541908611678689458484870637793673437033906943061326270178832039778707747279180824565435543570348543324717447335933706779161192946684193601165777558821598475230218293531160068832970577396643065050307576014905209586743571289649314780434902062249410791969311486650052408318614711572402300718328397923375945057923518853314605011353537986702663143981151861186130430574670822111088372545245456134345594967891274934035434076247156300777177628414326880585101339717188269001912902890310879839596898056959976315315021899571367244631502468840376569182588706296674301567989107760352346685081173603325180712359105726969440526733679589015314394054562965740546053698508631208889226582122171877423767033278182535616907456419537917409989227181072121728153088992501691090113370265734443106093428739206578931068242212677711046881293886466497634509478087403661885033709438340735629778192961494112242674325603599237241920180023526581760224098617203489832034610170326576239594489842179056324301749865112389238872571475577024635651695025479341898899429960898295619866491810779545390706097017439454894640181976689970271757332491491643112336524631309637299605686804059180235296020595204160967314888768771548453988624376821086894639237639204746656426726740010579501930451734875299048402011289797108339960771647240355946298823344265817150469130115372230067917705867548590899400259113606173537309924648105618497130876151845028625276938340729998597693616724818667275235510771328014854333584746278584391266378689064212679133344001506004524700314353395323698467666596723796617896106842473911193514291546924893950282925435123702796996663846989527109889197095992980082688042985527933238950684321999281811160441812202978278053638463759101703940907803321677885598653514085584772642277294499135308846175608471587787615005707470854994063755251045551500209222300057438575150576492081929147581072330144441305814007403209034631700209132103597646464087239022128703589878168255853310738738304747103349993325110409798387364210108778938379470203433899333777002363035234823118198975370738693947671695671077629401760758467201311313366860566495701092266395714562998760531254579646761304605968238922947953252734827787785173806928118012445580277916015670983929574591192187492008299204804349141664688122388626455925419520890578838162156126804309066019602354981140418009996498237557859956854798102610476653734306590579099680678793758511132694305659625308959582396899632601355658351005476401665254965497489001354168639833334561060957075302693993644000090750074615722093512773945651663427725767265746047082221444575711706004575889896066104958296125937687442542072818611051335729223063653613336409541323968918036788146763338608564665224436810955966158858157813940309579208885265349999469125890818686978880243145061873042714388108505871830112915411297815709075749604938506252549770207589361685381045609884686411662931737942987154295530265076451679519102133262928021506914580945104775200565587875769148122783656615624163044548165715692603219994324901054351121097466916335868404897059049228640928526581897931084967228390066922281930654870143244595800938326970300052511873374325829232071864325799045838454515976396864117853510097805022103186276423365019038328207780289023794614434829484261227054256444131362598494192185772400321105270926480285780999750955901410545897058738416985237195014386236101764064458111561934208838891563384498338637245365837097598731927769879777732239503148366449464369007454470041551857801881281257524108192175153403879605650245663282765725065142273622682059434665512451802811542643297097300954760058674999069873583026685814967436454116039643576703795454368605209986386743613117148192800479507285454229833309375309484947736804900551650640477430998269267489800989218429047776581583242574092745620522059219005382557755825921657957514822840507315254414818870184208470429218571394364352838272488722911879617808465706075151557513677895371278318048665290027197444600376473629260687384117242929386150301991314395166731804904681529289418461511671965860687290190885577040298113982338743589709832448973518603979612007594756259469059239695477648215436086483463405206397770492132951004025824723178057954234884966334852443471805489012784294881348443870585174593644382679358458727465620954729104449719542944006137506570830810206111067619687056443720234056208699168056594237055294693401890511901181667791683856842638589318890743867935886605031930160606983952640452766714146180384933790521901117147938394169272140947867122075498265502901093884843894738116609536855207279132813856006448609461334662509900965103351363966206090705106327641174989726669048759484283875226338575771338083470026255688097254348655248119690810998806422731178016667218663153633018635390961913875779110214347988339588466678074162737763657496820245812298698020894285925892646336017973778545113411844312749272511089777751035106609357177456905250071760666166337921776947363703498600468217324553836082806324046688390197362160855459559675440502252596530931618052307452677065496380133172791123366722934311079604840056756728994789291378265376526447366961031781695329176793168864899935719078204803396178688628619651462332345948868122903187998267397146237160722299789982840207781153213233574720819683731265667162178450904182821751651799115137777920268170002387717093056129353445272425343135223443846385555679613157162015921902723507102562246326449265857129828302041534400522960621138177112255735908723987767531574574390282318460999792421168335509899993084192592616032417701309674348984095938185580818961389624572581184112388985270037216615002619075132737572752642946204351751290813863582405013649190806280351497099884938935045477704301893461791829658512710289769923701545071984372314275185432277286716800290236580569324350254879127099709296786613694224752514921335628708963788312969138973961410239786635292757073739563690456361790270134533448559025717986716678904072873584841299962611216009883080451444049600318137948012449358960709640043219596451616366658455715300144724125540153518276194483324980203134346617599424001373913027317020125838383971018318304854989383939234418584081796114349962428288162627554567524631102272219502684463393488227727828945344892240051086244879714553281367659358145545731945017662236533930052027547631831581835544330874125145736152518591019778255961145850767691500483079687171822395918785266421156484895382415871248966841625627740873883214933504363375033936251207398619952544089717669053903793208105941492705082462764354331943334794359267460800594798671992198388194632910498983844468874939586858522470586013722503627790112254244766585167834754462104500484615797214502920409916214464015501962759339111403023383909020311592360927464546102519377468789096225880096603203650352529866876999515815454978717204858151702196912846776692110043790369739422353106423965398564943659357577843900643987277441448968290849114045005360219839588878719854103400843292103336906281726537458869174275448726292909188529208514726584350457905424201451983716577032819215504506174532160258793208201517924525497589873515652663416380267778274674332191347203298709993680447017378767674703875525291900150281604459716365468933671233568103240058162882979948895904558302982786998178702560786564961467492680911301949870594918139482606018164226312918654953425620241668684692358394120624209792977103537523737213989746123500757695191874634522877608689482467324937952500197766261810409829680117585145760271889025951545559990407879412522712849467892742041594141492793554027361872382011788158195001285900242549355860894004058643062998201066444571950873131173311739607893845493661178048776395740608523965618455923705232656477585138663791838091067570126233190421109189218913168790829315024272500592092060069211692490985747125557231967812928324507942789166617601237785136881004430522927816178021958368821369602201506186999195035945084997459414421384477256708365851045499269248167738324555055435198526293913012337682375264690491861858525319165471922214217753992795182303298447264659869491719182926359736578768582838145930990091510120677334644765371392520018392552130083627825198588910707639413879643247209540023586147759818531330360596947949827425590256152437596775641428542447183269625148120706576378605014025967272907795790193064547927882769250272590526487894121425880405179405960470797667364577466776416255850439790414080208913084250501281709401199429403069149911234504888350464241182318073926383309073914125672834182069635122071623700201845566403856456962496603429155219177393518280358977826805879097101585775379835921825558839060516010007279934531455576404179332319255696535091147270091853777606124964594589465863847444697767022276696790295776968846304343851804400986877299872638146379760655442130925482422998856296729579641570793565568185415005635259149470537711229347365495205700262712531635838036842246914086116911996673008240429372484626971490669190372046492058603302030434644698465735179839447519559403790797357032176560734918838152509998764660462870419257046484615253598024552281620448232337051434111668798765259113965451998282432694564292160198437554011635229751606795012147077328750816343868811269360848316035211116194981169715448659810075200621442194929746067914172428912125001373678791856764450821646690877344030474123511070864745331215359098809831358311702635802250528642919300931877511657736225403960442498166268725436007125117990985729966274021729258324821899311723959083472982652203953241620510250199465361150495389898262663431879567498947370865419195872983924318819978307460801449013391892915158101835570284372080926282042541341904822586469802115675882997518178534170894459867993765419094981955848139724959772023617786428377293024323937289962904528447824200072375958516987046189361955644989525202120798924131355857999837184281319346708666405865517443879990255661141801304848163157266939658388741994053118916103041748844084307144086199991086841126548617648358754947411407615561956990436919571910060176081982842526224511089836658200256906490675775993656099921529778104324100331924271830980833907787951687487538114229852490087915739081374927023155919168485789840738924315888637795373514514246942563695897070549090804265195363289472115066083350359028285865216875273814545978927402699037098565771217552282524530513301104468149023700573287330206404044697309886743435744548632164243016873813812081917357096688683619900707846937019698837461302282752603547565809652894590477193634667800144102753858180073792377189983637021891330569697932159456902101910625169229428701963412275731463675832430886010877518658742229251643562915667173479300366706866908571564092880265522985127314902691113273805586259453289972743711760609609546215553137038204839238183235840954980169011285675689256158526100419443177622765110919680671666457464272746910423734735381226097419733860374990458753869031887892900132886651458402140406140676770635625445287930907972418223238765160719824933073634507771339119317820271276138431416439760972464675338925811454231542435610498215270854675566453600509778919300706614909997096623481446033423676302494766039537747218117792226677331295547497370360767144794710292296190793679678011205788728184319490046751573586223516249871058891499414507721496218795574554741020037849321166895633964830029878260220716939920271295143368818999025345518587358384681975087219236996335325036852858453909043708916764189807524056730875924712570139277050149651246402905195011021734369753439324039277031055988292262714788747571770848866723855320416410549414436639876542721537845104412134760957666799095262162071518917110913635560680515082040712616506256015101312240735766891843011761523044130019239213493207577648990984210101459870339681174431802963182294965234530087801160200860972108466981956958167765125661631270364649818071352013021304931361045790511734118750144701111521217704329843096069104994181889873109300234136688577123483140900116442308828747523508907714181706558026536550868412582554991663040187755521422503510578325279806506506766389793872477380179678145745161864749117740955542140532127869897420745803840117278973323668389239794641459260677934121541859648539603334092345338319117790485146315155678134151925545500767978208779217550173770129204922369489135337847017803011528189767328362417595716386720136201303577364951845135355478770411746836315691494811762794815491452908414639086254854733722846762542423782881346720708980791758158309901405652742324354483630978781312463194665942932644811033671875091123204006005385984897616935219255346009927440356510704814583913678806199215267496057256241818464196596639611915815621210830681004191789688548945202783525763855787183114335973042063685728644301082799457763606925813031345010001701912294080775432722349482188676984959449712508730208703758433932745666858724848381773403550732085315005899717525988288214044211089815921868482154670345183996403894649167495361817967609902508166149773143970121242228522730988722220246104385692049508967060438589510375615131373421975492772669835278074101769014177238121338079984630726742178184198320714515370025969183193589793307289508336722116856001464122383551914043010420062180444856899258226465477242547111043502268528663828853934114278821445804086096565672438110902921441288916039762535568290987323590956567891548702005933298258373754205148607377372507608091990220026370569888496203597295191700600898948478414147083530351601795921245532443880236378711293586621581562133400921445969910812766448188991853640783887619754995861839653661724859473549281920057288268056059078810712493617613487756728901396486779872671841092696914433882492710147139295255936220989352030079788563624733140864181026412312780773172032965472559732699011546094566185200957172491142257595808346465000281561143463713437892513436091963753115728281248175520038132104131848208270179210759466952441060076120720486546878702041232885473732927258928768454003222881141043159140807020685579705111464648035205696309191326747483018177047729794285070481008799999574345022358275503411740785190605180611404763321171187482483812660028173386955688236105620011085842213509563852479834703709933430415998556403231353259675709960168936897022558717389375398968245735852243857571089678406592052977175690062791330924728749828870676694828258541174153793838669618716313024233548696879339598139127996110237702601520629267737514491153295121819233640592498479004264531023639179754902066147542642799333948062745126887494748739623440369272237868531798078109742372537171117820428320908691710637783635241077528743891158186610088321986981761971871735346406339809356114763055251864956324045322433497801500772001529091081623330688671363455765603689990519689974630158165447110948669579590234594971522749384531399763651662065996423735598302946011332464279462325571542631603208277392337907027926638938640227636633769732274369543325121624381401252716523884361083868366383848329206963491288464962902277377036520584485194711826692851088265467483710526839739943704781189280923051486550331527741279815207493375170836975479217503522502494398212280111298222613112149032785415161766229446065400609753847634035040201899967866704624228907626162490200593946567037040030032471171760046642246006559172306721047949526842269734444961122294743022381849883275760051461233602055578044336711002783645085528919522359064879990964540441026623541486817045516141749337186687041480657805071876305225443525613499508175196793634262115165783088740928647203637286727187538740967733993443999341751694251592062041089295081061805286221349930908066963570205507669639152971181602050279282541431568813881149125548467685279524898968497264154783629314386022777101005726269259301241050793456901193934276240799925031503359502585770387040194549736869763513515243430244093775087098280430801586690161805986414499612186572519846934453560528693709705666583016937364829128108180299358175522858541958871723400512455862410826938692613932341449639174130975457350986735727734831330653037063958114285309918995340663444575528608794781753913484202845815082055567832974363163475037062233750370667708731328406108485852466313635811342844470943504462837138693210591181950700039355078551413495294931734633146791222486007811241197104825806997789431771513063510423960743878772980320561510596107235020632737384777006758606519945813436495068405726598357424074918760296387830887463061106401451396538791561241821014855936001606836536020455354243932781508491392614140507433475707600636758417727352664353108810113001557627915882602508682647465761566652332040692034082837440112197609073000302533677010034441256897834035788205159214115679247161045882110788633416312992028963335788340302742312224037981911431303593803226953605718222939503371710745265108893401441813569368959250633634536405886740247668266728557614271342365746386962917313747854217967069455480218010851185758017234243828833347830063087506256179220352693739714129999559311499918181051780792639297969614963099191139927369799230366597729297503849250030452037730781481189745652718556796532694670937417658304444646779202669236037151393688473017757206909088292499195977146100675894102348840908004814303989721515236237408189907102074748030788139768768261464136249939315434832048224110255269274130857687846462204047826883459381684344757096504238418693255804238800614283293403045309016574622785836625996495626724297222257469069046751679038492473635322420118491533906278134200244172726737423562131203776683347224172122907675842457315119887170378404403642181862116154998570977665617435186179183362439952904115764394819540198633288209849204426552609186427837066631980040139459996822712493314803602832452279374628528028278760728647023792323670182411136645215954015372081601910391110646071289009986087427087302680385063829231565214952705137161727383814254922397494201078890730632433366724328909663749114751211829502514915542935437983363081192117029547142854840519923661276499274986414833271133147921133773889452466131732673737245170226883704965717019648754523636864191194122306696031985387654529722299211324215512802947216184228829551828253910564195615761378969293214945011657547529120842450261999814459559209281764334489309921847850498006031270545944678212398208285759006867841593436991180511680833253023013357432416518339112414386759985749055667463789929717855654581284472757272454965813163145732087059489985845261273277354251635801005023945393087363592605945736857368511660667650778364325804653772768735132553907279383761011634891717026076877432191073001637810078769817652933847587452961102551653952810177285587491890734322430388060470863598900050324128492394054255221111545810077081653764828783836699706063522396186469943274847319344177127854380197600511705578151146341587494800016039948826778299700023832708188275842091744590652602914625573379605935615924940381653437518015076107920053201491256566545413880427090736084486183699443535183638342386503470795923267543725473722127903678455076362372331420049043917743819053238414883694110517409604018531452863842497179268017580443587925069598251508664938509535123080862254414331044658939156165293986791519075309529825774136587557479460336928916459541157113919383357035735834579101330256891496185777364218270819324766479278597338090684828902813948653148277788480996876056910183695010839257101444339748912161824761443019897589132842410261602157330652920651883398407312927788114532862535499663216383248731593437408911513840919261609454086811197505065186207548712763685883706776364755251085272366844576211363516601735157611310406673154323950867589137323635689786550954031160343681858801149346083514011336772903330737625395653113080115533056228756897777070307840143936167256333158101391078761233631315554555035510984274580264430038556123996093837951603703693838970300555706019273557359981610795336664155345715760328299687758979795933979170395241395806889901411704085002229589403524931855816869079075184758253491490277781947835523285391574254447051234596892707758474621398245641367573576990874629243782313523896759331900864477048612808145196690186274336537593740117611546700191256877027800268158536788624724641351272380299708855792754386944922284697616306237109046745783228942880173194330017004695441436375700727025245160969107101075540767048392497300916968622957407802466370221083913086661048078414756336682917446720455704875538045310150548242097625542722356197388207765293612810556180423591246033152673777958680511709132888213612250450478264918870575995952381019802840697758347681467021096897711893155299504064601655947220138581308754986903027988923412527893607919777556048980884122282092841319297309793302372862721475429569518624670714950862249508599694307045739849523290067948841186531864880578764789945463800107744537608136865219810997560397072270844819451753237426818934974048019765253855596491903428718849833008089725671296986877343019451856771766170572856835442878624787919129040289479489054159096958442282469451145116094365175893555837347251729755723522616993282899331397317399589442708813580114145695058559578263699919918305575827216702431158853419677189556182827944509716637725918321329494115716684759616578281905108659385910406160260769930882157155292783661457477989628337675501289399168265880021856138556865743546878310965963935152047533364215404103144551691090325515893331283543779556916308507534313369321021320370576904795313314004813621325564878624711486241594725881513218647052841175547318242490817800002079488230620149884555790569677928276270447850958397323747552695576352425988035988420064974065440396188288812782195414027113983626521609994136645399277954572198624049305913168131693201446818091921891301829851535081745581708184341917974861954849749472679035999743716309982186649155216118144120968382085902105175457007147535918300935527740149495791185281999771173045355624375255432280877587320233165763944415232244746635703741735949211858913302830747182227726484533873211684151962353433672003118787193956791090932299527119271565615760703258003402733829170050493086877613787802627612642229858068646333559874170555630566068924068182968784880094284594607207643340835380395463752117225718879046316832664849712984156233996898320405614332876322283227628389698281056470379773348871180171722011534623490923866831567910042886823003492616013997271525403979830531206950861764783445930974271940971326035795102359904848768611673795262846388700037487518774321390684049613394541139993158869806627136106873638835432772658432138320889148043943894583631105346538869584575437131764916639372863679540535488118427983261068168823134258321229662924166164603399020020193533563102682224228750703798303205418733692487847104731001561402989605699576984855295167654964787921166900352789670256188708845118544516760072244997850899831120912502241739178508541288761171169018252391977940389391576334388542569819946767504276036773732321411502589306955051703626345712807382678367605279841198111803024654493795591437396227777772047690203851324471073265645979160370819706950804404196780301523889223536722622346555558773259145486226774245618252294795234140260969266040123891235828620705319689823999454277404476115041234168991381709355819760364247439335498965373680962427527228083215037259652459768015042183722324801941165594977541029476650815421794582897247385805353366726928452369658479097603942908303218376266310010013565630787048085963440448149354310723678424994622359066990938996782652657280980701915156799073569479127990113080455553863888097858919497663479082805816466014184963651644933962589490421222727063260812039470741079494064768472350769370349604291669575007542607907093224033321143842658362548626407037699138352702056647131564252172114820287913856106109262579710333237860903071795617895460680984368671333339987527227191673763704076623749909887736824135944041996983655098966472612422321101603606006995981066490041952240881302071720344907074359901779726903821000590845383969814882419620380171803174034354567400920166936880778756897819867836275373841935948398959033377877876054011788102788748968059111193289011021641474425929116486972364928939723366007479725768659725457135269810853808721930667452975712535324824852719491619232760141885986615459705926588476196296684941661604408237241486644316941774543686256396685769116445420886657625629631145753533128849654686750248629068950459212008763416816496553589930792646247901381645008716230637580122001726269844621536999489531431896344009049906888400696098626496727590298502923234174146499738913411614821477791138736996390466464106036438098656086991271612501101607725715006733490470729300934294000805343871644418383606644458598526077486467163662305083017271321193330042172017861481253705853126465267975338010948611900266172078895872892944489450185337130982696087762695986607012208243258667005064718970222573392726008193981239471175489982194363410963190355073678813821377616599208012941512708243809331078931515613291057024567294948757469163779904025785342521286550583628977537738476168874993326543899336947272232616867646237438360444394641063769876242090079075264773487497604127007669390810725583563449794709224848134239007277749274030684513716283642499560708860487381130539517860734384230469743154456999330194106115962272687249619648087369290156181385362644204233254953253481096051149317613927478466454934458005387674685329537174490925356037690729934729665972348992334158427184577396978079184628158869493640302369055048791730827909646275065710464353395215144522967144295464276381079309579622333277887199926094563886502809561394960982764036974204047242401949209383014949303122196810926915767889921515906537083141700911183682449242352804468958403568343396550760604965468742335144515614837271496774378542767683855035378446143943012600924285902039696219156716833653648714311336950550754433240132646621556786157362633792910433993065557653171867113973910540868890510070594879619633035512216410943649422575132180995532609044002469201859541042247921003198000544257609735389226114427107644241529288953124216326446142411707700938695730335232155028465241878093322475527427545840483204094500651308850005881296103115696014552017740207390159854015059513988292103272890313178040925396856920041207288491795031581592643493494375786699268803122426715052320942383327334257288591070138867083936799349941145739484645549787502230308530155520898972705039457030364888725116912685757261271561882274472632062186663849400522681082922156501164826735886982920127415906066815748397138335185828086306592437265528365509013865715786716551594521097783436966375146308567540650126299626778023662764088000930114481083499169647654315769180327290170336711019807263203611591548502037130869752126858775580410279310837866968581368437797639286242337507125617870116650599863195633650603494787183148447341568909410921006183367743335012281428334374108771530936102275138344917256918763430026946400517853029420565763346153873652332924483883854278244190720493555989526528906581047997140172481736725909948532397552638769689173439376946846910043042307461591985660565485656514783494496298016811183356841045808171369527138160555667875275841876986342221146442024894919098726177921042929456489205988934369008938268090135523466822945331503761398987516891280539484492861167950854885698635205709493378176130698512951183658326285206206744788355600345620849596754641015526587645745297315002634977594711875077100486840649864112825531829815852317607247828437025595983378366519278968692153690130648012074767257391676116631302654134638712410203724754213806213402716242889142343200079983748618555971270177357052470172239848405561419685756376735025931439631850119218493865253878171186161542052719137740368287605059517578679371437429547470288201894203939229652440319469466911575093751189261933196614251167815173347453014458432828503689286003402437612417439335181259960276157081841514109759703724047760433011282834340747287245434128541404980254910420815461629576202343012927075042105817400516979038451889630076729065165301061753328816468514796572358575736726859941722846774735210665669247642513907905800951962965994781034993720702752133629111496069167040304406757356875011746184403703613375712441513837898349900418705108905851849649924712738532744675370486935985540938678748262394212584348936062751596076483393529757037566580627074359771582110975548204586186235132113236989478294522912261079744122648670076759875144573061225021320363272303291473405308657375282110893549251304276319279376928782885887793631874781998127915948001292450805267634104678798158589664364799723615412999536628780261797356685265997941108577046025078794991250578358689852729339447711687393491423230480844625103271197695987457912274167813627926160432052109550020399412157830532316021036090003191782476202667282939812400329762302242837229164240545016566637474133856966650743504645248894122304429677799106184593287178447292676310382863625033945225589745645672163698704171772391864028258473062033175007856693302348454967227370787507769166587884782789156082063943033385321496925511225406230985165573423878814492770499796325215590839555529802605229025668169204083689358215855968203527923301812260027883012782104106598066531642579751131167205661559588776202549565958761682096073815617132888853932438024305810762934669908637726103657874948220323551118101488733359969066754263785437473224223858743975527874038815663707464352209054103786275830640246774570754649351914100701968683439269947430657479106759286131774114237771953254473066003022365612949223507365782614150602362222033817448455174831399622607306990225187565306835414788589068836044982290039074051249746419044396428082349742394150164068891026850915090021815198706697026967023198474202851894869899951321569479195494357507580578670502517102352078904208468098388793368897204251827368416755549633181697060546201913762615027179310763668827090497424910564398991562058000624116758802779596909042623658050092249259984964835134434510663512924535801911799072662110944628185434208079881525825890259960057329961289974102049490598573102431279452066361489208563811406755306270716805653692101947860212767024556306357170565667370456997864507360562730250346024403015055427922297627710664778029608255235391936636471850004141992175052660324298572850378934052588886648198693808258054596478375591581982010409285776022232573546869904276292040963268012962291376260296226453943942849060886303227897650827143916890527686839940241967405220758336858186975294194551060859135031463554882788011028000294487420097613314165557368434038720742385366306418815881952897316885680793956948923253377083733028970004982199134742264356187865915774988868130338534115803093787717226931275962094344635896455325557243556010235957411394641383935620176493948846161102553785982727724304035655559082018778123417365826090693711018838418932452518194645784629584026690282205149284493401658172782126499262041694394001943115628952727550456347572747168166492967658816234240558449246957256219000670900612416636463677334001159311901413385468503887220310155532160986628564122154091784257429823900464155319157304584132810058299328560984518415393593289863771148945135524905756150822702922115629328122448987491035404285380475804094350345750314618628533035977587492690931100952334564530033361594687721098863718091790394333001911008740320695817745604890070257539213104307307478413766502158597057577680980896161683023814985394365327370688616778041759302022269479505151617483222164528465210295616826450996409027768622570072531193089190971469520999338887621934398421188114198377458158996197457522830699655336350252072550193353273025779916906774118571773888890522612019618941473458973321315877346291010187952214077060676091996342937002555469332433012064906123053090002190069529627161982665974732399242717460610248539605255569572671403128473963248569614376602488123128666653397608868335618809685863286454112759242633457076620523574485085448176643492043466019270956561949951936828030617136247516477620698998002116519141565522320415406428745093197736969919436368955681808050754496762369705613752156415543691946702733516511288827756475952772616895664638150688896237948706354929997177099642373995832372533197590761128413458264554221887857925501826134474598581626747249144661671776544552530553393574837658499699515358837892888733127271117796149780018753028389544844529223257652314691240662004282215862091039511617173841873965748917257370693910024748743442775423705275883334598842251044578020821566870845645607858930840593670006402974550447073278493337176420856496581551376623081648690557800982240001419965307305686396378858360630250198110484193793095986128351774320755322897597727702264990786727315714606878002225074585769171761759721636478708915252015057194464864074389095722605759837020648289033964702708016907607856438805229596338668466916098570592068358970597239249507555441195873897666602392188683244210245974123404435347237944475045004907965954227426258907679472370266728694714758363163484938387059065602946454158219553206890935323755294465166536638499973299849158476216038397211252472002593589411742628238018864943091510555057336033054184741276711736491104085882370503757721401393258777700716809754179673154069571106665469609310036135488419757574968103029759387009122324009388261162658521162459988242729875241954828304959557599056381845076931708973295705208446538842691795152523254029046587407034448741614095674690988350556125203868334476558218012961267858990068465002074888231042191408592437766595808039905002520415908431446002524755073200840567491710046471689012405823680351549798960450868900387965341799714588507862289491306469237313501770989242484861501669698493622046503055755161999034702923491453552219729666286394397820690186359557714715223395264563524123129142715469822912018788319781681392395285156342535699383972266659959367808390161489305917133810565961121100586223663786789644807199000672494911947704007860083566513194538762781393221045009650704989773127233041704697404310617768533482521354513210162160790764640478656782904815585627018969474405289895645859884602639940492840132284599222614055269478350535530120882296467068047462872670156260734639696760247246336981024654507198439496836736878505827498013493906215764958189310070522943988347193537863885109555219922911265235432507279784767950159327270962965243081718215743062709482999076452143264307849484936392916263602411705382156989822680597327028500654721279410162332587578150802881136421142364004973139197204720432878586482447270998666013460698475927776727616476484166064222093696235492810173520875581592360946906307542971306414767454803726881491718454613534862950126211267204369039409682302696941626808175069501142819711833513858992112518177844849457507793378685892613614238843292267603187120642985345037997646426278854906719926039742831019115532835341911586450585231735173234946995810595670304915712745585249913945844384696736481380016700466577679828915018405989106811761677315935418340568918115405335835244965057349917222501094433426543963162060755129480994150110707463656740199398711304938835753638748490663380059843952587621886775468977056152721675292139700033461940933654840313293379180614532160962155902259581914050579072200609187424597394869008902611953924931491114602374576108343536083779313914086809958608064331679229807111632326777697782755133077128171441423851713229118829810121624322767520399883562736003263244486204057435472728343987749300533212820063071330982047593893330287675783485916570902290958747449607223667769251715698663800459785227485145268074261731058936091621693150820118513156853959317123694135393350274336394558996644649395919334321149816707608517948845459685940446937162268857413686315861433985586023186728664020212433148976537440487165349200667045788002058663040830661666363371797517982797239393808812723158712197549427636257279961298007947165659315808130840439041804831403752529304454691692613508952483496462055958008078757629911250766624123611835941532766171333023223630965496910049045831272175722859617902317878004697226222407146696807191022339726681843794206354929613339987725241797034938910484408887922328420376164864969538318050509961977289750094654798652812976168662379624330554511514567440646938074586174127311931359438412617479633134350539298627103109100624639584195758773077780603531587948287771680257045003496965193978066549575260321963432616920485217793309389510877043591959479836376348793101581807494555424300243009016417491079328415457139156384970476227551406375886182106104740078589516661149245811043050569039356925549903142812541222287304679317995600088583972678798894018620622478721280017402027484262393430217507169049716447229513243092808444918768555298673423845925442988211228713569506483626393537193205793029875365817657691349988299398406435832473075201147182423175800531024985483837548130464872980830990948690187212151453586513411247992782225565552927998366211874989015462673727314692937525254999051824583428290305552141531461680119607997085441455717098174899225191070483081095898968075326227967558235122600708340291117111508030177883834177721365871780476566090943377686888889968001968832891559747666683903547798355061683429427926732554208589219559030066440870939674871786851046167284253556144852046222459135554613315613664109993379691879105896051145274798750039376042589618055027336064947312797815723153797097970124344842741147488841572397938530498634103557216301679971417734755796926322041690952622679943335382168619313199276484697079709327058470456022514975971096668004120646017527376055485513988998680807078655781843025814122977897595026505177293572434136713682896233597045960414497815295989419129650735556131460879218790999338364619586879203966177702061626325328998877982016148981679403123797020140883228850075164744819299448018160422031626924897296881842522846454911670255867752639744719644024194934572409483817436306243171563293975294748897220339953685272046332683812290627061449848190320398657536590586173234095744183509855758141249657479913807344923800903400538987982108939929248285776433956574424237638958302777079619504420363539199187227580680972560790261523581538299487250857296452695642508869969855636588773236475972769889819595209150753424117863365402620920031025064273522973272305886721912008534937798328204991804270606122769040296941409479324385148150899889142193265629116937495612893993119777765246299844693006225596635492844132503580225491064760469678142178820656718511629051806387361657913846986642688942749933251608877288690805619646602623755990750585286387351580850473411206399742376174622390245106715514353296938648810865932851805910820491912739490852291601455007684365825096523208937004100887859969006334373115601447883336378347278085719852027854043347685864114860617771411550655182359632409707172223786761053372335747262556055649206679379817078696634438704388842548717772053359925662369892208499936318643098059728610990160372447199170342565930899662040682423036520978373053934506577165171391533621554954553906663357196192724310096537243523213350373540272059013791925915297652461160601374382660997326511004445864638682252588694157335766663524106247750424761833795029682710601348510061606526047034031306927198919621620258627235063845889754870871681766094636334845054190270098249635764577945203608655645679274770278477460357456787603701177111950265139521698066988468311356714455410154257790696152254913555641073260498219199573125891107406424643007080274191110907167431722909864442909491641115489673610569965316916058697672764333175140273096847080421530636488364984808893533606023236291327837819010893883280296316734015342600347042578426561417115474699630706397184186157449589047589743902019572617408208851590832645157542676162043002182204386642748146332397309184110622143288167994942559773486674962076911177428350310482331641221710806594827378641994973549327314132866937788928671972844545455800705885785825884176304265005862071699416167927032189656510151494617871680490161078319104111754263826024348570524676079067217030212866815824693391240304736897037035914706359807748936446618261360265051231128166349969327285686089993384968258239799960831292594360965540937922565328510901743404243292929175632467869836995574203952438352737591111925811249994726695151252114296798691370418636400847832537401514912236040241082711269900408412211737025583134422286480263981296972888107530107004589467584885187170665120104609867564991243477326828763674576752863709225435317897287208583965952029043188010253023177477154719243374540170561215396317366085169913532484835059810265631747342425912382150813973577398640341706469767197314048293480168419267678320155386737497230055673235287753447601216459042766248764620660776319117545327877493619755390755305676554274366333921593872297298192892186045812152959314078698082572586598407190469274189612681723658830664025420418448274133706119121967552594654528335030548701684769287118036038917158820650323208223216726157278412784832647093735690752356871081523164297771916056369598728121087258697530913474490507175416221623563909918236102124468855077716430111302426186410682956898258656396956901953294091041885508305059653393841928776455750161139275897843968107939905920745433848111511358501455526899665739412052331260014061907953675012907558473482508376079992934369880252759849811501975054060051154573888062700945565713641655177949245054134191113406738140288329126426831073761737173232772719168774502914755624229215786049217269208965873106551454553260582345689896934910334134374811844868092119286940138928363566124014347990600349828115942317869002600535754740678389697314970040956229147002021295100901580540940973448265621386574875647287811844528199638979665111371131378147146478031326215199783873568323604437194198755620423639291515318937810673479525666710446322946838695710385587230365846513030951565229322455822687138057915985736147621396455761629359284677500899036362307337251669911639687536196565554691558332793553998087617794634853489028965809602775707062796414980151819838344805552987869190768316504146280539382285213512351823214622321061842634075592842548685359373990369534276043062718371400475674278119898060974300323854301295906922652318213248655174798075299884643323638942272178611712163236817926935334633352689149324451311619342391762794137750887188398565823282176907083414335565525318140277138193470708721272374277562631419854671347787698410646169271481135627434311174769277663745161478466794711038240323174448861707113925347857077996268579110514662800127276395702285105517921824017718186527629753101601110389099383805377567655637809704916579646887376530904061387746238741801392400855009944947161422514941922708128516114653635679686634341623353229093089711656522989542902428720284083835258017590668754923329978604649264375821339226842024389719342394224540639784512766468671110684568981837368637406938256750623626782260936706834967154901707457293129070033107456605510513687227760263487035805377712971463847504610561150566492892787087522910036865773199251128179935265311437512272315152958790909501698031592799027510332192582116231572868175503089906140447897146084805046229695179285748928133585355187865914585605671306762473628607990121254713999775257115395393546884138946722718998899498011737928451993012965591017131554036438940086278976036746568441061262915950180862982521291267487136026304655908196976362876121080550564742490147471149085176027292222002283241421006205266693244624225896668812944613712376084378715549394730109618309058592490158383040565582091173666592496255950037746708329133548471487695067716236303376510600650576961006846932863975397349171999318770254053105244552555138467900759383323064616735489013767971285096015901180796401992187564561202471701093712824335175233320739865138626448622804881530858174916215937120997555366636799929110427140351689279791090050713049954353666778449537942093864854714594702472227285939986769722670475247091812337110842763483184211441183860691263703850172249576562491629297558898223002897208802299087353624521186926059008683510699229753509891994030731745856924175111885844946536959878306373452964506712789068158617796819960933889735164677256475549116719638068754235128342965263955195803898424625899977468851038656509440028320761947424849064666213936558549340380900636936692082641868844565831295616078631367760329991690632184009013638428947115007522389566030617427237049995934218813645301545963134558417275792967306561818262088716901676098648286283528686948789727114543654012741299725660183777679273819279091705115095089876271956137213631019854548099819047113017468182003664030364472006202064044105610075891482870869507493788893346801302977964586400848085891008672684363549933325815125824777174128339886505586622094134131056771057958805104607396455129731316120699227691126929754809952847678704284679644923295420586649029477911867181287005024228186759159860293808352433133359975832117103140342494777779473252570233196290762752150027336016738135913179621808042951644700425207325758930249469591081141799314238023326516114288708171371817750302081824073452220476966866986199806490520107811457135183198659919083955158282231492386726385806065470133190019076817489249465265191793263470657439377094138136103476183342753639568568526506837680123471979368904844434990512484966826710026519860385443707096103733093733776290779244072848108942988723344074199758110260225912158302157290913665180352417424028634624770296841748814315174822259957113195546790874102624046724605715878479479433042295344952849953742767104658610044904357477450075291648691260962353179362759697981053341936071930746740121182676183402815628076219010607027460346993034853906954057407249398479023727699200159874942675690586548829125720285768446561304509478390330791535406062910398730343904225870156890903079017412599234535568560811507022851150165112095445543979399806237226944999714464746495484510989376639000912249600031681253639720830778644997604872724186086758672062076222190465341221818341078254944430920619807974332646371944041980371483132536220150662517322774393141424313115845647732836925175409482138774667152718983276294905246380853689699118031965540848165793400509744701286655479182335354819217850402283970707383327622291425637515805396690136469563158763954291481647447935209225388993496661188698758961581065358036147973455951730993484331707623460533091364754638126668461016428227253742264208059753931224595025268238804132167354219781707034224151968590099471815183074221157579516482106837882760493719787968157371982362359037135989422772720780633834772532292892561646124583763164817717319485996237197419782986175086756948298822280295621485733574584442361135767219723934037091519495984594982765965947719290544882985753450346432166461930280074396164964857488898191595576157365199819049317581432975107386009400617355443014981053337262055550895621275869783012170187964991004306126741551577418775235653189945187625549064847051685175978049077180211760619684389966381946814573913653071351637302114297092022856847192608229703038030781237594013658812769693835388862877326502555137517760875457387545001887173484811465882437803219369413276466845036350458151391575160525325448742495756976856975386291138007609282433685159394938828328259338307793914502197961171431163076805873058589937880523118830490206198663416310816090221270718210204815846455566460007359531707647675997023550036888330240416589768723721299544696639726630886346915360582572192275682787015923370331119257868112961661109894980486191337380117514558144803102308339583315235736420020660350205672411669013318742464030174060795891702453590755685715466193530123532684466349998069200416772710809490645030427087303158593100349766583084205313451310509870099724034437397000938317263651237097838996576704813185234724966823633713759648906387223811586630415494687362724710741586643987385244823574994549755950240333423579544293110197084747260385480496581930685999506852015538592484064255612078820645462737667181710376710219194276238404635816985799405278286645178339913098651646980175593966793026087334134176413682958187252509536525437010089026776240047274757548689892604140079270555753641585657852917114199168793332270494288677211893603128510920477709370627644496312942188087932276765408291976498825228957141143881642720274733916366062203536236789501649977647446040304095384637445082027664497508543375646368760256408594384082812960185031726262909418948672156383556924400145782294005675265616057198836172351946644077937393497435106754509968211759941016567010680232212619512596725189797228346542727901527603014297696753709144669176432409048589997455916468271210310101330805731729752875899689149608493456970629421267726095751697097775483507227416998277097530161759202693847161764877868985766399203928287902252374894175897187458750766726722999208016364208908403444846280284617355460097787968689428031462951528583010898445951304312047222776584065812297585199970465351168774194331152763178151728005051133991509993493202545354520267368710712409996988689837586746778913012660064044719567957827215699700675692251324891875824908241275630446811572199252646873632984755401609768951236519661001003078857117208773502061284604435373645409382437085338994913512102791328848724803060515886342612500295865650081135084865432926596970160612921365214371551856938905543890745859895452529851149312562647503582481837102695767489096890494323139136615876070857203758710001786606038034228695594485776225437777304147568352936754855771392917039872859508682597780529980744268607789235197573234610694795731432462222691156899252010669835544335425906032646066343549517372920075912905510324652691456321256594791443752823724644210384488691364739445160067421554018554189668203251722311631944351711121286716397302827817468152396975833553115932716661145658437584388964260360944800608884423042960790820234196232662723546773206396581123798015150511724711749161958081862772941482113121231105415722574137219174063970194504196521430192017647302288654252678756539192314534551086618091635225262297150127835576192581618177074228546310834825122223261230624038767083995926725239294133307774840677846434881081900960977093028518541179565693176462043637250206701153312318044039506443001463505565547781166345143484631184385507288632850538390577999458340713189421847392258352931180204148147381897047209120597009418097993529778514758106294525475097060746916841707442772550564746427217743855238528098918066863176512277933376509675480530139929667669627888272467001950697535545877827252845230023184361573326228780152866678586432657384867718756986698905779087095618694246714781519202564890222093897302116696499606749038743159190354261710615577852147030678720718074152754562346275046077274027947631555341002952025908010816556162204655610414481205582521650668505841829763989373016052185280749094600927999431990253151614887311353100526003899411913303211828136219966732708205280012253363368562879324404837352151843991434275740734689478754958237535851828573683005609113284962440438397804438633533590235660799492622767022317886811326313545303119080689981960682812991421509746497191486346256768773700846149027299315915947879294223288803158223528341400647165365351887601903200104702390919155736665603620119106334669337054840798934623154858622934946043216946233103287462624957582778863114872627075762448966379827724564788394253568703995155376978808124428710099469417673669840692569210443710188711736420172350726724283706941996055085647061594856092115015927712078062184325970649944318801335356272798297348857951175366462304914070515912444458651408207828417545397021741319345344397757875779059996303984086812592422256533692280098731243594511038379897724705945436478664322484147578364354455792618621951684622938732060618727383507015058052935772456268059407764884164684400319051063599432066424290786048403879685490232475564509378674029728065923995135832626081306321877499658415516697541074890086341231716022234155984682331683375586851934366048476611905083921992749161886070203118316369927015103792694609021003371975473968748358452904826701761952801198268398193978666056721861419822883423500715809132749284150280211010240395427642555494287275613761965032071250300888647201666873406498048667682260821696441668237542632255763573559493905117086110996943609864162314083572446692893937104117350281342023655507769405037660882599220517753071212564641613436278882713328034207384029190364536073887595935535701452520057249744399375007472680404333245216249509479400294786210748918212215575373907469361681449278941558358915191041072879599250676292699019111058587040733790264901726135344592564376765892633478551027219450746121283125389192297357305927705700144722912327227384810573494866638630644559796469824340833541196584396418672551628899839248610316922620091888825792217827063569879972379746161338820040659060797585211060032027111680134528112688980520196636199062630818148798155542824820479007484853034138561088637263417431491536144178396715298998141103743532989953459007504860678857897429743276585553694646977114996305466022271688265606249564371124513682864903318290462715062922886705078327527954342970242660879809368388561472795833468049993531281454557060674293474322388996120842432307690380544366316454040669513344567901065638391932241140235700864779864570079931488440317259668438423107352415523936356964578048829546304614322273944918551916438062386602625270585269379810859087140066645817592254943880641360400961512928230455194617971398301175172764307315871000352465070591189163066410471253150768026955012206238028541560540122308774996539114128913287120491078509063405689339647823165355395964829798963051724704520452679342873685153786923916029387495253163023557973768414737528346890457267417134088591246807964421364211473509782590500085694074488302691174193198782807685326064446012592673745372284557987021684685296588281301478099386760810583782736967821475270229386922533503914170119396693168368364126923967254912531847100292731643363326196510909520485699340239628491380297308213254156849019849953392885973648273365847059733102213516757096138107166198480800531864769210454895703525336331435898515421048669112714084881993767922501248088552081064763535599011198770852022931692905620758780018802390900726574787850651616378310968930925702468803822916965444701568474843700915050790758948067348069811979908246430334849535598491866885878085625982315468828631431579848247134592804551968494742160387534364054193578038777557680342445501346352975075983786908506709618912684801445073254213296635995908076032838632955510873227267769297783092398693000334440716250081118451229245142062684622758558592217961176825009381347710672064493978312358144299277269922337129811701204872423277690281094572968450865027532589727085378338872371927654898249925772129039716950965664496533442327890917807009655123593572695291022066569689248547002616389084845474241333402526931943252816208494263261641524743239303223244479522909198901323876486497575431253274226625597951723181038219532824956203651238620492643644483351387912081094764333697633286469278270506765023721095063000315692195672749675531203320247929380056687619761809936801625173197726824723560528060967177146362460175158234369698061555303991036566239628612267685436206691720008765621484514147465519356792987806473507912928777290312621186278525416132330494530495964098690856522902718925960805164024952215103374680634110312585386667984195091467599567428469310234410971715540546217017742382519240665595839520931361107566286927947758966083258545149501536968108267868133302761142403786326961150089215103884508818967567605458579430672194837475919977721170127532301909539132467217184081799727220270456738735190921677809622346840626555335480314686351215297130957455064222508803164248771702187803763152640589802046619142950351612024942302639677150172646080585029072280600435838331467516833950328028004299716590657066479163104167473529985788487159343979768224292380434586931594374916624399918702280641442405210881424593585882101083426454680509269913251599593163032438601260427137883127419025613997512710800133869894021966219100045229617562886293512498425593734446150265402052225699634504064786052434638923364034788918841275790520384563839647633706995052191089312856899052158081977512014865781578385142098208579620796054262451764149890811681746001268407479155236517830098574506004232387514622020869720600854131956044914384930645437803134229591411249622269049471928973087538278741209203454461802751961518118775524819834027976664970689894934663171066493101306896806690944603901249686445494765880684813821559677171796344512876660080874525628714547667622751699246763021339593505567350146477625695355530441449784650945242043365536532733735460245792818331948132140713792271760444918817678371681276806370608511562792889022362290604466064036329134455947497856993792590466384309944694812193728042547151504142401277655353863104133715952649025595415157945741743357841141442091220099208777420399050643897017488377638394930656043952942567159221425483050405001326336540935948211251611746137339477872220424278270924967060886159458195717785875906820119931276129658872184759961638614817800254280955793344784533832695650578457131293506145278354934958459726697665278075447439223221937267878567219477510208170727226835791406546973179138477197716144065392110200845462936541940662623121877389194042412752775638505464039473864875866603069735613840526010942263591949376211304029343732726352568988710985715637980454254550251773013173307238446392566737117406281092094407958000816934870146508693433364721908687729423904246132121342318704529135960722956796017014641271232595659384857566375903667254032577347818163775052833930430463066007536457566898654518538310236403101583877825170812391539874279356884395282435147124087230286778653060159638274373834723208029778361417042742829138672612093524357787157559353246973972701163034796539087264267647757842341979031416036268939069675913616321994496746072299026958447090323237920619789896255933813355892046337425469333572174553232855029253331396498450059263228312097602983385450671670967669968876214157495979414029325610927510893514288697689518008659058660893569045419837336678420632563263374744609917682384995781467916527480999427106109939788311446902878847728142907479401369304040367798208805259941069406633837356844691592167639566109400371242817404208891990688138475284668229734536460764292549781173656790804855693560634827912738820834291410424696705792199581323711709112826931638853343028718436324609684318281837980723374626179970377330787496277616591376191511194357932417188601887196100518566032337441419213444622785443459890402720078088683878145370858108967485604677395061870123174682563795966130172394417085515863625942029081492335137451526156502909296827352429757563439587431246014580332071186221199976684260279493016080671671932949093143429416200383471033083047150014496236635135678633275221190520333603078592608790409813979800000097198201730752507505063171696125805161240243049380158485254540217487379560254999584304720272112939028673489025942288032229465894914067381466790718013045012088406839529894489932020520505551717361771787008341361495144220873485493322341589754080461290088618898847698021247822785709381331900735023287219677677387396404917767199902770024712162635305480186409317979094343264869873368396523151992776615717751567064048138811824611830536715339406193930975587974396610835503455001720361153080387143282059664500196510710783668213967816591460148565030339525784645071372500978501498675534195185569560386934874451706184662843242075917535662042779381763354527877730372256446368211800352847063320988031248520921907398503897891942440238787474995390840978083709661014021126526990031683133368089605106060519249561123286365857757143588238825482587603623712462391488373483877502204701892100548883270757145970526690655484582498426010842919440343486008926972138434687326379974718061852441048713949545940544388217028567771002832063257005459640935580173112807659926847682360081498334304022619232076267094897010580634167802091656732731457262576377590673605671390285152679809192899757969673446951925340262141462107165640855643610351526275235818579912451261991764678642636828162538780246716890039100702096518414940743269071700370706451441531051863053975897516445463242876512214905147253143988582315209164380730924158755286056255402126121540294512793038287182961675262801900060491194060351783207145693249599949682161105284288148150298490303325181214556486228827847972962449822778085278479497197844140824618468689807212080751892133935673806337745300040392339326717037232615711332987474443448731568141147032229289419562254441093715033004265663154594339082835163338994580947996985720832948249891818936926200119947111018424554881023744475254212992275316810365482789769897911435959299385110229445113722503775787627922840044236899067065863557123240795160600931698989954808712610875114838629999745654610142025185986723829402609360649524228752739728272349899801722590376482857508196096605025147323348961988739612939537251231135318694529433345732025900055480215778724145541559619094324444599511249693619758726081965667259682960075564494505886971720534481681525708744173711507058838402393448413957422055615969878835940734743184074405476587895083642935177212775102201074718349552551054130882649564992136481253239731121500625558481862444444732769189569294261276544848808124869778906785918995544453052690605662952915082063454276708150382452300049575219865262825844572483902616956309665081185064195308571594428662560006856660781610209135926262504298140884942378275587470122349553160415487014248368572224474484544256796915016513737446795074258992067576206154241552326390118350017929233676480111915261912759553195730389581984135882954697814612396705970431125609562694496530699035999596229484281748662119095936770183473713531498674062441850837592477302888569702172157744565757680663914995883977915867427479470585010657735797372688001641357576681461486531284957794828175281895280339512124129166867348840350381401927061469627943550691004193571887896050054094419009319692956959594266138357180514784383400874406608551743563250906407902447002774696802513104626815733858750505705069900607043452308016939335170204503403913801673292667702711629881522255694021757286534488517562831603552336585766844269585960179017971191894053850266579621151544743021333758236423226156285152268134572897098775650349664713346623300430654657995980551191898947461017948482965006321313747802017214352941921207815387551358405716250092143837005682077015349465534873967554982536564547123070413960709230729968959186677625269077118509366525364791020093494492685843122960368822924237785471777238037368900187398093160755881351298043756435675608313810548847787651628670976380014200207688680506933653518027142946175799379689073418113623812712641536953741571838837447288963094351901194188898026021514310845364000662713537421784566985474516768058740096437517386212521299541319082076300157545455671467652491430972321240733578432712915915362353678415151990003380578264950358951258230110278148020503204007848291923016791239398959611625868988797815486679933824632585986971045020403020646239441555816372675612979987858001814657893923006309499182445048882036040534717242711213073011340534048684610713970128731147546842091769394517006277640477445680272263461994703967178114697910586912151543967385219680194704576233722828644864204431915012478934404584158978495769850618197715455153696535398247501666896071313873917406020207614573718519197114422940191730261675637554250376793858420330649859578823472644645834445695259248795989348006210470079590284583335210108235298090037604513106185212999978119553890025745884251590750292098678696499806296269951183183729509368346881847582099029674558280434090594649168050683432314752505952060639286688336968897332167420059987701570659694358798999330224669709105207910995159827087048977963649621971935146409219076588107547928130962454364355310692858806482742690717350533887164578858400034133958271037763261024329115805065314003087991065055526103558385523814804438866203725879449766532861597862544278838528818196420464977626670433770803891299917360429152710363010840375975975159919602493124608511639667293132613947346162848627368632579022113089404589932576132463975449404805972180219253601639999690128171651932794406800980407075679221262244806171576630460421018811944230311813299498699491730769910494361812481206058178915017658807717493493705216447474778170651604951648737996599723292417128798846509667050865258344396420966994541913709500086334008223270981984018501101558539109813525389073730771947291152082132646124998858231092435020061301923537181412619736025650376287434017649598585058204002738669722087425879202291350073014460303996039166479566513918153503588534622963145909352379777642564937352841539822606828254203386578257918376417294653712656770863111999097621846887355630798293680415916640980948356108521842961165507875061363798071194413558095925797189026539376865645580314486038997715693299062572218722437998009627951246152751578286759628804447546207866080108694406191566524747167393905640787390381852897026700732834674330191468554386698118534013411917050105871484234174288237835575806190317047718501462449633053441428121045968791963570969109496373936399315244237311393015383336138740287209322969561961119162504418344084593929865573633674542336038353972486306088419135642363192085855953376187926514786445393222898488947563315674410729921994755635965298466824989179987582653567605389231014612811452956154815369948509509406621590092450235808749928539322896222756612576454123244476508240561034154257782993229141950936594268567619815268236654657044715806390326156861759802239061496299171932179828114296959222611236053746015231584161545899340978065058803609094807081982646687448127905835151721626403230739845996181632498284000508553006607382028962302119309756208719502059894718166311660821031698501561911261289109356152371077996307980850544999895004527169996943344473601226360388347962019153154756083859423295186195485066371145474055016394563976778906066998853596188703825458165391070812060470496946035056979132048735533449894257764655581935128802029051821454380266424209498274268859277559258359647672554171240410942776553150114326336278704166563026606869722365278645127463473500021871924153836819952383688394281417990332653951178304309319591874636535535320073666730764471280462580031214439761390791034366261979858323498641994192038301488178572948430850482725189083041829807644501734149209256438353717283264427977739341721293639664507967026534179937420236611717699414369907836817045897498139369972023699868594976179042360399123995587083652804995596371899099742691975765011651453022300618395095068552124455241093632232663084564293273996361224422674378072329709172456006425321994846426520938193613818654434902691451954838912109720916232132651874008586357371543584946402021961935095645709893742381839559900682822351807351745728926793276169487458595289394105460216513350073439336118655860969776094686512976559511617206644975260920288258317778277555918787376911355419417540889883746604618590318267376242045810535457808729482548513366958011512769742803495155458079358226499506221675224010648035166609207094834308461442224563849541600029476890396791631374694362866135046602574282794212723158207618395463236824079737121329694325977457803024706727658501674508026349919059893237163934873816933473318472323902132465630959269657019223975795493726505822736695253472855490121327598646180414606515519516953175847148848180964182727211305308978403109988965177455573409256029734257439053318052063002215583878904576413026479420554146081419791959211281701948888101879135639890010329466901122296133657788072142115747374813815765546014814765084627427961826853813981760190899108681823364288574682333241195959219930344318838437933134400593271778194424356973896053370596664209287742133850010713375961497660162801094545266839315548069824274733668141973661527866449342312019548186239540590880158503735677093024929297866905312053587049372310739459660308436619921513087075385176725565758957242803131737649985237789390293323870526983272219849650257580937128707936539875094874321143779555817145766089290958316739520098496795389941316738012170567138123485323181339999503789842159334101685292851561430467404933859227781388894638510631625022763349042510904221155558821745747430869398694768253260870837310778218040867974574281180462634491921458597945412790158255915392105713591516863875207281388797727759693645935964557553703294417867854890065666072329137078067539850605148301544580884291073686625967783949517820871649113840945374958601760381629782208002304152835700525771596665554684855140908300520071537921070697751631654506407531249197540563005352857318824399630563155308868039159726243239322942473197651407926307881481596230483844255490276222720306161977865357392470958457710766816953771822365565711987182852239519110325915159953880160212954682261361087219404314499156686090371078492955078288720956096096578128417762203461967322642899371650964041421314809215172488026987922507120344323513834722814514505450973610966478332082774818051758977726874153011712796128669045086311316142767162337749932889950617176188687121177990168651450112976835532472195485433049868569679054150484444412313463541699963581167730889630255319891213247680491393260626841140167457959163410984215313295787067420343662018549013507384980791777170595883215077010440331156886113904687726423549664834599493405373455166701054425905264100412048754008620754105407755136576264028596319417044664029826204565561063939013882853047497847405295049956644695081125632212721857171671526910544503647028452789051350032499305424414703041536792349523066640761032804544614359545371132180680268632984032669346867533473748948199772461084653414638747414468262584471957044129137265877589304717211032495743567791439717747612946829434671635964160570003758668697653457427602331106238230275828862013302305922249097099109202054378617004653233024082535718415393397512260162122567032114729529437745435795442651972485928004716453510759590205553884266347815780289335481279817276491334556966143182523038117316033681012405414635848877244137579359443315996235227398865488204223873293186662700734275106492049425807141418496984084936269739929114920297946223721556165708418623488676653812893536117393419392475329886711659895868361750810709920852012821246838632967693980629988387511424522160944669118796256014535328251727785018799806177048224610137924578931880563975858647880929502944863797010741599649785715662552693194661838559484211137375980287627106462439888567808417089429821172864842295684495824820978392675156794678593636256676405523575700721349365243670224572911024115862042854943061558568428565340981334463195907924408974565723908522858000453367714438001500783938709282913129613471782888491827014909745005501839369286694279262877427826889691404130603368312413851851739434943523613147888518112498969767901469562171705261483140951319718233306821973883191882170020512602341063795187741456871443151522978573222000071572556354126887142228843971441742093094601204059197934330314917977077955283305013089468490567878244570097030983093539820012944926893705853441103741771355096433310012428907550171658338107677849841716664751986657567484090101260876286853272975715557652298737645789718473476533594868819069471120579145631239975249527442192152476148261804279186956194325819472980644392931284883940014672259195836424400236807028033717512766534953443845060413560860438890637149497370725134660223196081529588269840380744406185772248656932190007091515941713984900847981469633438314350878414161105335567960532760688633150185993106701751459422194123341793033733671283690188789362070110993688384101837262559716640025827332144137020519651618062090956518292548612920188279370021263093182824507764059906510154912844026504569509269420250516219200678784736571216553038382340325898282860468143204357260657176697118516648754242576685421447142940382512545749477820331723670145972851373909601795658672774912063486129704965215994747770031649535010522246632141628596882846420569607046830974453788290486136989045980645849842500346364772504029927796867177060978089642407845240928116866485100812679979977988793719088143611473848924484026890465142601520315425856700762668412013504145347674795372676495614448898622960130809890805146278743880775389719686911275325683506186427247699560381600609263940099632637790000927638587420393398044730677208345353468766489193458513462429943375799311500882715968733055180882520756594899164133614981687900102283933833330742743879834360585429067210652578944089482570351195341827599763796988671510827708773258373966652694745335975552055418916275130913367725479394209802027618968463426842695616265322317478367521732468399089621037741253761530027043398842281974944003465061956003331619478487050985789038873804861052215071366457479904462903774721386373941462564677437806129508160193893796624998615858089473164095445345622122673846968950904346291448173382194964796422389781640493068915061764378085165798676225258725440676162461879486207441756333799535906775786550973695560202143765165475266058124502890765095410944798530182039250473038592181486608373486912402771200462730833141995058159629100230144609052594098213268283564055256450086234352252760758793779024498706983686083935040177661017787364776327361361863616108670582362644671116114012152460420245904134786685462859591982516632045807969132287526662073306101085761181421780289403372746918848508870857905672460012579085259050584759026862092116087110896957129830199651908140999323449332722919055756721988889807854838540390300107135646039247693762668784767056898362971901410012737065230463999594315036257752584633935890726874637789577290388920268124344112081153905664776038374940337707705405892200755221415318097272172696125352456757264920837985741986538561347393143949142094082363518068628410614667596550674221195932141120034170772842477177937407588591572034630160677340869623050788263459505721973313856503292308545364315835569507394484612587437471448580318153229138589396940031658332073510387921606722140867104087482167939433494717775964034757168958659446971118616921627360292189165354707848066479063493325808613890631308332414783444051156692794895398737336267598911459878220298751918016716124160801003262939766836312872135840055272945450321347263973645236070962825660867591939729527065582656130225184458832777610778705521320270688626432767637944863792515374128653088514809424692003674597104475976303821942232467543599943412349533966069386387451540350063163060274203595404406766930255759624310321123298321832385343973151397233398640709614464364979284821325414456487208632012643776277564066627288463043598307337562308076562975022996179610169329431087278604311384843939670679627264068601335968753559340114561014448757278438624771563449923148151832406419714556148083871245862469033876489025150331172296175030091489180456889948893762943715628559973421654789592905211246944590514200476971645026796887987378443405403616958838946467159006941530217719891322998875180825190372529928482346645099210944497153965068677811588106835814102870031707734248237575172748671958465372931777568988177638955490783602265169158676725644233146294265087344777905086574217119687122617851730599347209430749403560650840677804183674742209301728747139765349484943961046551124460962054724370299433414507076384962015851166962613651263834691635735646201948147101908084273230358500153060883196724693816356416562068344475299897318880290412149646525576682466048379232486445037906793418378555162714685303974836201501197936816829077468255406926079272934898091153954412713993924043581999881182041213992365641071465824235264791780619083901615424001537945900304619814669604091004808157344528830530859134647650790110385529955448607738034787694097295533729605730250967490195723154762086871117514847749741034099544051136861380578741839715802084114794169693944785840272179417680393242155986018237934175861898980477614721479057124221845863354020733534946080302119902815965656921734520104112052153820043589086244610202060870962548455398631762886086508511985431359131705217151032719621420710253688085606454206841949653645922649987454632581636932694076415080585824908357704456697602088779488164496157727945142131452889421657355586928687208826630618555685859353230170376388844043708181928433048917442445773907771985090966014846643750895476988157045854757465171121916631788198159735244778167413819021187374540854833209539944784402144436566073930957425005106979609903721345445794817299013179944289761754343537141643560617991380674767991787903432107557630269196921952923317257857294937548638261147411458851587944566093788863916391972188762126312931968346687150544662781340624242196255295139833056131080407571225623132442423718174795988417974634945637927389501965284841216687938499720881143652879261015645170086593588407051530036370837874474532928846313688257020523285762377875715403102251590506269066928149662211367186897982057623525645016924347453400032246242226101853940767263703242224067010260795782034177871278552183082133312427745941259198670229687216319367575982156433761429769426115278183109437598591407905614639832452895342455862087735425071716748828439196295348893608181622484214532789876847222724311639422595797567974491117370310960176654691698046870317296199877524435529615372556866654330541179447520937658299680686122230659314246824334174020680003201601419705327949717026685739105195155116117668064511972275923205944412953270639519962971560793441915940676244472721681092625705074930747226652167426660295910388209559430766639702374843308887895416044836883949609482066655011062187288240008141664698708636690652824164642307798804866789544186636220761536309564330479470279219942832758201692951647562235358011853112553038447241448465238118266987838070577545141974701835754575457478252894720297314454217840533538630104049016845630364262227585307197086129667561809934330557019789224769472635325044939249034437978693230798267477852646344509690222963203081102533675795864659910642832148959664246184994288415431791959812799745640904757720889881842819885819245566970553852757939752311992484790202430857118372074512059621703990189456105227544177229427710685439208711067830756142625725146051120206106093945116179286939778006676994876988511103193766982440662643342171182439638543587758397304580457547595126029177542983493309924208327880640053408049848406336284687762994033164007841552041167070492474036432107520137260673371266868456451701937363536736111853376971971742998865892716208775909029119562892022513235919770368049314483880888261542070412264636284162774262791563679923424868570037482106825941715147184708491016232058470748147898353879829815661036054836383436722139773265844054016806341744319136851034010245126387321992853475854370419604188225351710675445354299968560776796998002769523216433671052808143571967341484787031890165921324461055346885276882003476078477779991914554832620279302395908345158326762958733577686275659526314549279845099988806278744631195557798095500878365802366632606357567551093169690678846074704886198167237037281781014530593175183384030414066833259379976356830153657278948103051890435466355990334375428827394806484822933998128328302030371641292630109849685928938827665424260681659821973171651812565312965873770276094108722539166794351550431887019458010206969767772334934109530372760658460734412580508555057577673623930451016604433347167006019135141436795357404657190366226817318205303256284241109375814152144597828057365246365303274965023549006772254141702729926656004187774256312825357526172473611166926573238461031954781863148812769564603764011379101215420972946633800472523814206413583207689166397657690340163226865298951178601025342566215067096872319097303664089407380046251855116399210928410872551933253109392446122596674664794074465061641844245306509720536422616051532544985046829385966633887136911568069709072909778752023934608080690131041625772447490778806050790296479298115130728656348371932096613332547996100815941313867047438405247600493083835627188896385192181049934528089669814753917107610760958256189800045853162329313158049299937302462953958921168511602938906644159120099936287503192171399799998521229701701065626505448083224175710492789494767247717341305124931963700781215096482615779566915371773831978903945210290786240469966063082134815170289119871117521398010495919110122988836998859370034257480258139686080475633867988103329877109396674375877558611440277978679560563252186880149821978474029306085604251182978665707363089017331927936751665274535741954598574494582023711510080033265928561502473253859416080764367563498368099655769365833631766423647881286042006239415327447568284239849297198199095011466473983992543425921073164220187274895581890604953810124123157985142036776908805918102516805834529320385289809982251742654060406574518261390282530698761364128665483225561487213414092322216846646521649582906174219534680669421342588294985951390958294498784398118649181930008667663115730963399256977287981144074062038975761642576512973273931124317673490622128217485583467221098138276279528466427804086535681631681097543424645158323011530776667282964973795356324119594206293072276745221535705088185718477628041671656639567903138160852608414812605147465775015943413276121099244711680654408629322127329315925465984016140988757824493403615699782362832387568696894648098457443529482072836101950204615006031368336071391709098346333797558861037681612263936073580181912003946018948454093856389098532031348174142982823408194695628012806256429891289526256980884680668541611676437174690786754999597094416308571342232621821250002509203206533531950563487270019163088987324869989468769146911108894027506386278365384047499046592323891837930168484243075291425985967371807403937901048401848206510130003172103475953316913552821499568901749374858787893829901195418749720917525120836711689987522326739432975361105893410177251023117277545001577538909256102175228476243742208420358519675157647645217278479685994855693803792037287835015020686404048052537850492307913015603014087532219966407617994415937242296297697608535838934356562547778820926566510521804605053962658495334174795838272216427118760360591812511206468716852349614811054917588883157351786372333044531267520592460468852216375866813074261371630294030526296496636447308283382815984697375016035161846955811044849851470269371972494379629225886590142675072683021057971281678408281771400045684889901642629353989932707840509167028652940242290543544743159484409099949478927643593090619809998665019849801898612111489237654618478469561225139808720935192411728059426648175258718091857562591952318626258014589731071180584707162089150621018591455137462734476280875774986696137644940033531149310838664285586039200530303045869437572784506976918395659614337581590881508363844476952571592724877549215221238281214530100430398175809703843215665642160743104783615905777282501489612907756490418469783893156511125774987757538331699971339806295996017963156398363153799608358635177042619742487194388410411007291320103068866444996254110619456202257271723918655554953842288567445236684083393799220620101037741333781828370432217323719590344558793760831337778070940621412278745988807425076331726250068035056158735400967309770975325078764644882152230116947418213488711853735707370431465779626683448880285207233299597115848009174938659728406415999526261038955454009731372512359230739631780418695116003838571315768744047739240179202714339401476911567676609740869581952162999406745398940763693654411080983525948612912291500528794478162863980078777196427509635450284917668356103299907663337959232004061280560670903778658157817033831487795644370280994665054310699480885038394581835791605204866490760759650172105621755154300928295587340000016295604167411707049269386861566539322145892883204544893233078287476571704668878624269453723862027039933302328191471052492906330973844099734240084103289422575072383242595627025816740024359026280212426143018680089656643662119404234291663270075278997549693410642879818167015216624285262886789137305386896445098179820339884471523003283147336629213615404993362737391131633165954975217013157083857408668111527691928635511586716057846479050978431437262420549331679998384166780766643141356324444710965507010650866627936855892452039212950074886656447709238098916779952721037130045898377003239813395560791903963092881455404169049786004873408370470056850143082913828265160114756748704952543696064690896665897219656178575257924019508053262673548451433020002403517696632528906350888154783650747558589853392378366017219157944198586235012924487965387790493347909555337771047681454740920227467490617092645517961712128652451410097559820392131521254051274490524293055838017367105494655565373547411111384556847685327497330128973496431218124425659656236301581444370481936509645902850207939751588998621889055496532169910556122493592575051226904178848309625306088568324888221622368796499820956588298599688273750093371923462739049439010164040687634531726116416081417159389445785510625577758858988491238058843509205909848052389078480522611236525104198292680755866378084418309685316109303778404857613767326202924835844514794624092011466250932650132770864084434204619855642499901925639079851056569982411844968024194547621518833911800986011523709318726047862761755467461630321171282293807191562773103999912907055824531539291241223397163235556615492739949274972876507467061931460321563741494156466961420510231809038350228060189707924734886663352200084131091261995822819170286504869296079785704104694437978462878842475099148676008611669056231206375810663534165596477566138266842863942969955229811984956554321578348880947439027667906134453596280800001869476863760141316885392039847030939368852422951411472542660439024930150687383925175321322650090438216931379427042982941779386989191915178848946578743209520428534891256319686779129952294962512903987972478594934622272780900669888401103221608731516090439865507724402958994255086751912395301754924554286769210135790247875657577752504077204355740271144543826681667682076921098855323885251945485017892187414543897848607244680002487349422077129039871027789038623517980201507388399421166399796394904221256987418407408737479797500140561348322400465888640275229492526687530055746120803128237762664458983050021099210395845286099768928270553090322128447269818992795120122038010381762372540077357794771051190391071321094917323691978930701630359461749486770266542117661732131362361616113684938473080716854592823272475633307881492850881764651155287972411387115551321080210499353271711853455112909000168462305800923298979612353649982343576435620066987102456692668914729521542924192733133097585816619322753597528260765865225114358918719055138943459257953859779281787279304584148097604007602883603423681010507768182512940564936778398001773454399376589108447951921576135397782347522951403319688076907073799619566217016997572232250896728838679552918553234657754093181325910118248519855485605023560267673213257166677750728267668852442657776489257877449961285431008248743479652582796056771699507189424900955773793835991872661416003939270035061039048217626047159016846241069299799608071997529969186116784407257160374217034024952289058188989197198809191088493985104520589827623092218259457502952492358981447431950987356737809303349927377184882688227579713901497456645617589010210749152870106704824103027924587316294721328150863049864224487628212976724465052725496749719266319583390274369303920408686445503218682869461904139769259306008905172811301237518769641342512820741198722720258154017893788491377132685510894526656618901281016889094372106167804718182934605428390140343723165803305073286934459017383332166986315390593517120292615206836055110438406790442261786295005828540037750366150247939173755893607807039559788634686418223478040121015549546703337990954101899550396335600611074231040478254295735297620945623018273227235433499921347415462895758950089629084405471549048660184340030294488249391276291595815934564983304166833222385565208775974098884364485042542592209182432214203521789452153987872656018860048489388760284259262609178683671805538424781310826376069044821682548875112173840389460091973724604692241439089218290004280613435427194004945432032686118870920026600355864439327952553652137112914285593573714168954621395029946628681914748768706553244317926080473461009942936481697833113373919381663336528289050188663823193942349183747652944567655047225843680004676681622486807137161992931971360909521142548234729550692737596736292431988335385193150613951272014050844959518909216433500456313192806071952586472176110341105691435907419540022207713003089219155407713731875257856174431257290790940532063790017021301363083333846616836410190022514652874590710206924021393499921787950863479061684790055726906252494156067023755697056370290233027834600428858200812089916079854567859213719976898628547470673231893527783609485392045056360361993244467120323502606960155469882877714903588465605555353862009689009425798615981537568304526810049210076813338672318173134853790625902304671173014718944322581545838957089249014559921817915594103092432176707736714507462044411131022465031465399707734571326733468665674950621324553110687156805395358086403502123681877674211840598099816061708823319384063112085533420609972144520534437647023384831997836246614055110779597185834885518767348293933156884363273249876066429053822406653532087603165902927946906655592745470943521331581911878735012691062685903136838065035983379618463497298406852543684258139917744234643180674897995027771674615073694423063558279251201188462133768924989304015184099088196178155661878810989599142605697458526985390664489718901194795124998953962649059375442561386294977369602843725872876143073382985857392326211634607556684733963310105921506412077598456678922840655819851014504565018548253902046530964373133993364352126451515687347592946428664450881993721432675434821034560104999482666845396521099880717679733503730280198148299991722688172090687376301844938466728633299037030822222054977504925883522128573667183989413279906912141487225903679835528027213698180195066664936422626851801992454272351663784767610263257820151047282803720965109691790227208749358743915813481853354242375929454401909269422213094949850995189742013981538133757960886821138022447818543132591916613896491843095358078782307980509988769991591731708975194460996450866825035257974767176994802861030648567801256707774506820863911851387296429309733494097132810618757441401409570198576794848541425805914135095752942500693742488192048408974472653982292116321833519395881960763299242590213315449453610957717002976104769081862055309447921501176064499699809183403099350943368241235506878884027029375829914201298752919826515625426330514884000662681645746450785343300454691980465335958560631156434303712077718670920972103340168730706022324945119344915009671325077902730458480979245695551722998212318712896980628112425909711308115913953675687800012006367136201147755237351735547969280259005087899552574335351509908397698108322052977572945609272187631730867108682959303691766964009902761013982591199762009697586123839997567258670901008549145834226105720140911434095502146329020854965025136898730760220066718318640433797348988149595879514255479988035153621596700887097749192149027645566305304064943204690019076351757367636740587769982606033308189376804727416547163579793282203106196504785483414545706174238420539849807498009167543576013255422039695420536608463527463874642322119903459577171060792492852382969134585787791054866235355567008101735775991075657463114165375312933181478641503430804633994445404671628954877987693780463543724918840129896032441817381074199276353475003512916466281531786819393542015669813665928188724910571192152463410571524771172812031603783498786096233895928214653219996190852435786186209053357696643911946787817996764706564439929902877618162506586657154067356346070448043345489662104613276649463680964784656895585631722678935343404679586213991441462404064612886681047487022765545222784651922441408450761978760993735810366159422491309547181207068504017143833678515706985607387157575440500316335262588474650928018462834184191650615431175772761928805565940362545866452698274049402834473680577655344193018991423357724321792111557039066917306311009536148890546159016927350746922979797186902591931207595772309988507929260029336264990283686173059643954418749645253936572082327493816440184968680611877531330868549507210191707816657838307169613913593488336929577991886528183258797960389495700727277228041277639501308359266655030485536473346085523823933398408191417374821155845308630165082350129623383583431016809518869006972902746161411050166116771100649726213739726869524783510512076160530698683548154595915803594227485178700362838475405610247226075062630410916401642320964859156831287185858652247690581209321051697819297231042238676364846615986113792175801003419724191042674306144599764168983212762737114912763491333090859815483492121126327307496833698488133572629805836859236571672193197942083917647688791522628026995314143124807937713578731541351308849110979766282610319506204647145268044044178717340958637622684129239623648384197943180112104795745235573269687058456400185257973202416557633837476428662198882344451389656187281299726260663349013121617538176548423234979058374062632300532698395272235169443984339010604542111907500226660544512047301981626829960725662844019979019130810629280791591000228337323723798928614760241161701955856238111310742937395188206702517800225362708612660468003187318739321877154109911632991841576142260170656906308970470554208653315003876815927792697624285072588623422953726464022020632366628663710760234473168312732737114889415964596260147085296012631753406124834453622002003169733586280672884149070232695309377102397139759600823004138555887179849732089714878208674299348581652761745676119921367537436384422761999629302975645237535961443451919768088544034546061907455259185423142405865402878128810265400003538467057546641070398270222103413226270157015556931848950309924188627275179436847962196219173866766737434796750207306927683787589633368261773494088789039882938715940859147094025640570369251771755658845015935300407934396715958334897494392170932375770756595495139459755948319430275311919791261726361511263585914380911177841583403425790292894591046973676098087407805844210183450083923851514147969965511140732580266442466206187445937445818676003824598134830183624712365869203463720896062526529641601567176398938094894268328291324773703467940789396201298379487401890579483653963308222571112247084175843380882744656203291318611658564257558270721189983462776657005164976262817933083775639852609830220932420307783861587541242971965702196503843763984626467108611783070649886663302419918192319782467749151564421368053522834699076736340497988626473879406432627004410902940345475285103337197031003490426415412402823932620484343669981187520435933739521806786523143465661719740303536092968647848178817366246145169285875274230978284632308140518212302732932068109503036967223817831725187431265511512318974582305884371136911385855799404878416847680205720091432774109880960250533371479838651033585002486178517954828744459164197912116951024632182632614598964238744177490328984186111198469945046951238325324251044190278437764643202531715114465624207409252508208023731561179795532453886309879619006801051434599707695299398159902469583384656462355968880348102861812020921920990139126266002282839583969770091765723728482908986583876562932667899148528955128201048084351627329452329744241190777439169974556475902722459042286332378604974246060920744690937412262681717154863735505527613637325425842420080305293206514722002031071056618881913874632957831288379692651858205339865700720622349256823013191944803483559662980821494177283905261833439105572035659201150659844848338108567607903041196727986760117702545606285140333384292219434226575865580495654356760446343048696325061351360447783881188360912018195891997404597382302978419590879199833380230085533571909683987944426212085294090891615226403295591489600004178498042384631581873483542955311367756743633725214097898832436090303384828446052079434193929090700422863092744649432312118959345929818548279292557198996633635189832882498928089447557930914571106324590151638194076357468406181143815100384026379568312000297826828106958341152038126232305817132521995632004688287696169190765961432574063234060117975756015156652750315684337122078355446918795281172166978363223376408980212513115240183039099659321436497440492460399466842730102696867328806692565884875900026230737687869205910629347647701048712332851998249013678538421875735985527740329972576510590156649881324912736950394681253259778614439339593246800100056844466980716639813187665334367924475273382189966092029140803737596780721902529367914346856583898555629397494143900485894713846304727434775782358997165414084696270999324202872166464691825295776132505518065183571386968500960264191002759261733318130009368812824571784409918989536279419435831600247469014722800678325182615227896149503574947029363567616812020947970159917236281811169167454058501430612972363294989582729461438358121620168065060495893186153956078896130202389140719952451194851832844310228965108739150201452877445322490794517229414198984338271671024240503935482638761262203529548444670397080814426342155649153218055517714242924319680813577431074360767981176457828917512177602843976454912818856906909638738203015698744635025874027550008153080053462962276781869381713764625473772545293045209965170195315315598220641538046929697561961616677115647572684653191116465459921651761980112465763737971219693864751496693232652762620010310465748347629960459871177930537847094529330485172734789011307833563543671020076754083065153107922385990048582827289891238115269895525086113015381025130438412348193414051803449455534456000178218673858041803620327926141158362233443544598983857089813883871439082277064206888889021253621118241323527654084314276056092629410217294607844054778993646491566287360977489697911166174264253721722834796446404574943053591401094439747822837590366766484546313847256330075442841336373893123667087090354144013010546835741507898419032471264339562939238602002580466497672189549650030370740789721208748999147315514105635021579454128438731727448078002787561711972787986071875729126604580675440576642095134405362271657490839772611840041958961722927109639054711897735922593233842052657401290869836526784240785499059950526106139632464846106916686053268540096852265684746754594865964684001718258247156579009991617950630699423571914127437767786350651806108543618626585031259145541636916551370172875511068728379773878400616034078077978822690852940259726665567918010752835803065975518773467583455642964552622173680729683684841524376146455772257495913194487039353795210769046457454821318463443381398041384315741148854402304946353977468849318018976311813714341838665833278493361710197582402806671603884686628689065859895715487312505522557885736230805403518881564090532270116577717955457443998632422267169332671503994621443175016764320027405102344041976036388043312277305226786011773796953462315906642503024551030456318309543345933706896339439822390997322022721561928725238110360626549682591424016115753208310321774071135408276893033505943422035865388299716501222369935263389708356068506068089698625830594653518216459160893337539969748358244490826791754909467163798476951178120118738429122742271552770467318107091536423291376244288597492239816821336120791563984796627685795199900189936404121325655519239945548201989786264447801274736984087667867044834842808497638915924093506292129018835634038932870377471069654142947191063136213521839642979922989435660950164066027815207486361200291483715341119610380048625591262507343535382150306805412034282716390298146176756094286101191317794475860548708655107920094779745157529344743903949374770928816695292716216999043873629508195496443609884706833893315330860200397322573400254330929961167008753883621992803566246528652607480423345752402532183507321178342708222954640822051129862621370129918388858357018446324095282009673909505258483495771309580008416480304380921890822222503912754534811805604279119258271400717151534266334649649977641796424361265191557181577795892964342899223028040811609641716434127284010427901146459685937992812839570837974194065330312850278153260778249069094107691887333881967708637408425647510339896400277174519011408324339837348685241746324504073635481010162301416667710888255593522132838535548517607655569468077883171861895684978505983147616576560026891413150018819167260862964267212513583211417039625138403276289926430445940167918616623958155806471359674137825126882935223891832591812724311309616413652816558180634564840863911655543068971331343619490031449600465488040817379072108880624404608212159113627008587974110594877775440362206804068224098830403993003616331623949543939122468597953395671625878359617405664953695640398140039136221706352179956637175868373103332466881501491752175826406449670763997894622356807675900618110616572286640308897896470508792727529329730548524269879731949784324942111453984806257125982952628503970008243479799353132425644936821782983330881139240291714313663999796282790250178354218552177425598467845107117065950625264379835064683701339751169510951950663643589947752034139489082971274837353174946343718913438494943634917847039518259227191240382104418873007189432480604261363250003865461202015668206113404714679981188627750220389001002005611068435156858199919758287907640578961332896133968278097130315270839722724014181273392562423892528803655912457267426543920749756727439537086604796353809310670550671556532004883608461741323187833278055154632106777380344748725665694588590932837610332104126756928282771071485078610465621110052458298552822975153245097260621828420017638028168229236200536168462123769385799340676844017790064140618971002551827108970880624475081833898032061273334163621145409040551673087073297388895788428770790724279610572564521826743355883643910345677630592178222358232301371262382550155709404083221431635963431299834034064421208668773222364944950763467966162947214482277920650244303078556529638067219491172431441595452788791561268289726394020084988132999377998653470590648255987855417695180401770087821295773444943208088129882471179042038610556715011858003389009582442527221622100145795774898209061221547081540037043410535492348289522226398558656558980090626353076808314810635418676209512061485496197259423866397582892424202305791760159723942654250176709375178672666882232017709471117203924427475709832579931920046929289495628367989196067077694233454432641055825462098747297193153406357571114095940300255251023882638047762178759619966359164899153021767930368073917205881179861021640899015792548308012938154976821744886411236250534316585024346751972772541913102864099392362778377104573121889240757093644293256901229377737896798874728681603854371836830056411561202319320395694241680675955592267831067671198737313686744617339068187500663376895256781989250568562847863783139980058979338647239949381747005729955945033001454140115979320335598172649478100073204454173691740274349063486906853064001180734879555651446713104613895407822299856337406520637821808606188048935978660317913183726161291431260958996678981942914257577659613247479289044073541346157631902146298485760519542636714813764373754744346055895916565376842569882227236611796015150969112068951994502955336048315475005157058078996422307578151109674066760278186384588891462049935314832935947012163495154048082117369433578029189977447997880129003739172574270962422914785719572456901665690587563855048576261084586338788724789639768241758623746567409170538125224140427012888920568883013527339292741815010575006109398452341281919611680740556700312486068595562119729561953784056499455182777712018270608648502651160558916033406113084290574951014392225260841204984745382658920807401134739492337827560140219696460975245251264933756935777082541315824203976730441173304927393515206327214029079780397484594125874088492943819630677671399341449031641053802316920507375827894118812345671770417998017322297609847731717028887131345689331678554733165998350918175113438163685262008487896168421047896608193889646258282723384835949018498649163851743369697110106070083553853588456193888904187908340876578215819282251603027979328514081811994938751467118489375346912720011073672222146191195122736161141151870323468273994252682806654416032985215901853456556397895311706435504002838355201242845854315648668530012467309750138497820994666851866499656744267496768765603895634635525360756769166029569179928346611701521555188766248756163318038613971652099603496766331580290118194418711176801258254886064890542786971652904664221267367553514948345390619512596814111516747493507871632469845829413120119426711563535306623352902602172816499962958925889829175864977333377934458334991504101018711723497605060234986160479134222239667566552595758535964382897388696884026086568054650433223187901305001240271463405211748198603856541332036233751022226506079595611963834703986716604842640323644768814684844844693446048913157547361261829823557720093671137660651878987514276773999473279426040450159479647066369767921874133173378783899381113333932987670294455727491225321625510628457174134408690151625037350277936935952816608193493829746386193070116710680312088799504521713639977256041948518143504446773944617976008482298569264189667792670982134094409378072230660166869688359581359589868885088869694096038876049237890080601808246988828711864079644709802503721655799411352115860561628687933090293018197136807122375492973767893222850128427884037709081285849315610187277526190561674376063364643194411601474470118642592859911347054308849596487210651005912967038862865793697225169575771355364698225019705100160182024831351293914034302542016282559088271638463232412010360352007028873461325706686696298309306132104612390129252848503414282127398330998647286347539488474576084744936964303434587490140393592393718394904600283706633960795851805830741320310321932494571602436689712848772888017747442355451598448518536578001466396767475512716022905700602577371912251132625627706276036015538493963820074362684505737377531915700581108454954798835531265945201245513859590992718810005237178151886279357765222521796689691597730791526273233524129006925083863039264564425219451128262745598193449681890610787276776568801452012136529674674794705051920683827662055755137218462377695205219144320877444436076874966658891658805483045191643187757530105430848335405713527490082523455578368234840671645930779051604114602539019075763033561563355820678579780225031618598759263512120832100653528100048389150085760203668073666964399553250547363109688641067449656068805422695892908362210651112771093890147506984658161097145496096094150959850586626226506839804821037355870606302298407385668468052902703459989257902059024077183907431614122092190537114503594104075833971571227539042791174709233181083861523389625653717954295660754380653214897508937518025735586456256348544537754445049887264338234675870254531578876564834227811995086734807972583493998504170084818051675912332584113505866457812639668871485607173338930311259356520037033431585852992355201089569375896962689918230806021776964562092454607624112736585216913541357457903831045489638687503246864972058801995747866100804493404640866875120797221872105015920450532247216102751653554018278908545034926031579473310598002762606500524953475613358744239247626231399019808707661645873603389886631138278759006565397907098856837873449277075945990642104655231649705754098432001220576169275307641464631885690664788826298395151482632192073877157342490254495141423092722019422936443619139601569166977361324914772016396591639090648717114863795564739202896410653842635246183722285847095226952193526358827935090859661679120982646547913370667796753073863057865062782818139812610254435465520785367369974548807879249867511088271822279078179897606773021244291694063678335568329237746557077162292749639164187169205755913790440925015448560708936508194915611834206951916874893277691150347965121835722988906898194923127334780742007198945201282397452276187643428119162586482360288021983732827193355522122345067712044994197897099290714954924235558769992757632584009495298095071255122587388328589125649681949177198141850013749632185087390214647248334242336406707556651801846264575832602355921163264722149676197249157986512010490741050515454060348737332977150109507814833567430283788365846522362240966917094177801825484003764768722372368226692525846014931169442727602429315407096009240378670147426896896071862399017412992940321598008927924688678765223569043929898078775638899309234709854709686756413522019281203861916267243089755917531019802460383345929606413846493347395305197412136996462002410255360865191039812623407953525319612275746282891472939094640478860824080502866342882131838481728384286739550204516158394585626814017000093600286221317429997985953712206005936724372428274790559301523379988173317226443241370660074730811116334974326944731167058558143527838802022012804806663042519370802563548694036313624183697433319451767186804024790787371730408976729905915627690652165666939318423279634305911487493676890811418437542801556163187217141461964344166687517162527276175399665847461882272431380385800867923186428590677025383148577118932074219759999845647338545534250783658400626686011947646987218494925156476472309592713867409282864613992895049557506630169535541438982308033718205129484754237815210277966677745916017719925126990343528810986461017504986648759716896232297014564361068949182208772392853407545543754403240267536710158651143419185251890601822127314789498166701088926643878171926647042769293669029490716290748633742708233190845004231149893596365976551103384786647229740908417203288985896883736554956000673191052902205092566865299762374218777979983721491154185438109948299838053498331486376783003664371356558079347660699867428692110654212965456105934552117417806346314561385367678484662589769918043040520643148609978452391152176647128506595306101882422941437312255938626740221316139131756047967260587750046560003570766568011123760042575267597412123767442379007644912798529569937742675287245739249420082307175094421117116307248232933915769138130293369490084560632842168219628030581758977934111226905784111928036035098916879349805546137408444807051053387970616722908884196854828571317278948959606249660291140962316611603781400918688329755176685403266063556458083608341919819359924560661813652417875348414417951325969807567519794046216761081900052263595884810867901066590052875566450597452832802915672379864983435634342236064415578991325744494890655671337804046051085641381303463927065913346093309266774349018287645141221821694067870131355663235464050397950813689210609073387944230463426654725589271871587933353575660812353764588656509545531338590121642805074058382482373032386294830011537353354729684204844214075755761515702274036026768475299470168543245754362550982779737934628874277179564397995182132056867506303535599205787318593240131985814275634901402877233907893103621133130722309379183158085713043779812465096603631404932643032552757457378783950733593026323156555222641943719709680563879783243979211065121331524274405263751774525560366857067867675982091898184396314039414655625229163886261425524611491868688820759396729212234886025294252992464741560445385367505358039218938526497037051592535597038826509134058415125666394106547846410475549884468279217535026074495841405363151506653403139468591829993363265518550369849602995718948092583379497309589178727563685827460121699824983001756170286171759280679748972276650165266163114806187562573127946275116167772004638589857507599443433882847479219794571413952672036791868919923650515073633323978568282310898178843853187300888501681894676824121795028303403800659320470280845066204657182320201570235119541148098236472833322713481579053095752248980231286767366070815161018142842072022625408654191871562476919837046405582887167350875201034939272207721406632431729664396629305624283719510323014696958766482544794434946628839020237189024691298085265381960019912402459418590352597747588677957179186947237861103432316052596319000705273252164127781778811964425393508303260961875465739453217415138265166503528910756406831030976929363300832000472190414118882741039545135874077912961781794603061901025351306306929560050074257506485454729648522457668558432097984837979162600438636948661842774864730375604610672368008595819110724445457925650211088575094720657105744321148396949888753288218081148754498037987977650970365723090051722696861848964060247205403061524156080667380324392020012899712096895891796748703403630818948733562035365684849667488182778985987469084629464509076379090383979716653011253638418992483346357938692774249709483527070217152825778017362435489129371892364458271820158313729024976359397084783377548361845462927684019587626153487779834957725501744595395687962918149506206279986559103459535204263071071434728766927083251231958446081165179460436287127298439555254685940178227596362139055465204007940101283021323024582429594563242179909556441047124317145874544967724212246466369855764755402396593007753212711650751645885657085375152876374473680475348275687961703579655321756152585465531644806006753319096168404466750484808208174369447858661404908808614038436715527250689813921517717608988830997305643974630520290529889879641613695133165942960632046223079033510410679317561395516022084479932240173476608583197409812285199726565613752432746705702590011239998635231768608276070599192870867000605546229040681042695251235316018821659601604197190984149187521305599163137157642112363840166731221540042033997976147714955591464920428748614851608317187768302082388749493309754465252735919805562308707073173662870284019735012526306620260995510849508453489664666137829730513863848548933102790924900920197466111210223209426978507757257770226517383523647226604420829488520813627351391612863721640711687456236274423552940731214404258547864137520278183140126009061888005893745479125554246502713543280605876899550828680493820839614098677120805469729960323500404823008530778103179204007078067045626542997351554155501769330482566620849959295612381542390195483575871463605878115871593584894465189054736159141650579188953764894977760599528079863822190251817086401787928208883655948545260063544427844268973830442119614803356309799257472685377140324075944637860360539825360627835100605795230958627676655669669250174236363768693103217238914591514219489764694525927369589951743753452766067996294036314186063848028517354698028110136179475436643260176628189871017069676075115443786264180691547249049706867637961608398102675140301511126598334631842376862833509475072202626399005966708088399448257294964991797250295082970238596107581734173166648697347003153007591330786725227026002751033978961304496695847514481598079707444814837631227212661106150139063660745295396909367579242384676655182424714706891534737700408267646106795414420277870453354714648929283866130922688269995217633537570759814036570431454066657452449966842953381432526637152633384424050429022213584092557279671805240995094138007888502252241455216674429167640249118418535120073183851197966515968706506909530009555021229388738914264955440300034198567494872318412368269740450974807398475062112609473412025038521071213430006692291955974923559464117459846555335735890861515407420938340999765531881427672831010445332455722656015862775303027048661669226284831754219777798677579474519717983882939833075924469319911526640255223725490318040813755717637564701414059530534874653352834281413124201926139319780286255188084323430626501376776792709489597194230105051839016641412050689108264712029125238225533925145130527011655798881396949717248124866950624625272184787474058166365273418308400789867756123501005285192010713952725142230487205885771927385463586653382867792116685046956214564569800844598766443789459047516675744293891904916135014730203477420282680707751302483517360942480965006881641781893680556631336703294585779228784908743565390458122368500772236312923256570266911826145147846783186138520272436416141758601318170774275056905840086993594493679783626856052495082776133181002562382448550423540131333852542671839456548081431555968318578157115322510361912731561821753501014939801077648682389550530739251316603036075641767319160211463459518778940069962935115741046181922731774311948616214719249509820749789944184196524910882940672851069590038051052431952957863679332764963303115518393150174465240573788844583021153611533930309579189562216140213304280596910196483616414819275330821949458685865689522861642008700794165938624289635797628411178489374269917800461511189118131229663684982722852732222841054772109775099603803221722468063557119193197166217426931305565008513087868135065936521006164712357283119117703140861894186896800323759895312260799922372274022806549467633765836148828429045763353765982951414384464130883632530726553826077683209447115930730374800210212381331438680640849352298473971014339493458619123139989641779598549830429104161697579509611818062937941174276811993392359385097635343949506175496912631501047376436345092310931347848842920345967735005109402943601741306698777511337756973022739274270323794789003188268372668403532126751350797946647394353756297152756521939448934570941349283499908304079777586494200145522013987949837072188792486980135017196250941163233656971071897648713639724926496558976142766925726380887234916371479070064475798155598232145011435117882980588321517045883489762526847797829467661065803125052559342852996032813312945542787991911109923245524445818316456861573473814499365902335060449451371319396779168005828798299572544341487732919968856795880686309688526384466047769836699108225300539612591707884844090550702324512017248210735126217603934179860344561129182177014064911810384656248006198376145816014256268274248167171979620438557319551320583249601792780648027271091220651436114011676470434270605005873399496032541929497075125696533960097823283719731064828044677326907727723190086576465039024930472578578242156265641223635202535692361627727232600314280161473917174645000130165476850877331744260277275704772222247648256695648547175021038014293988736500573993140189056343465103840828673526275011991760248650530288812950362580787755549674286971766614927146207906901018894023747360012359400751628986455484553125580848540547616676140375302751025006364482709499557527544928239376515258546347929685804729537835291288290529291488004804936093755677593773634679316946422205002546317417868593557274609390182970239818462473107110268770976455256910858924302484074425983711025364369695028992874906564713532565202579248157152408848960358266451030878409500544199656695652651373696414629372483780489106032054701854537844880773366803504908499358706222745471092765778578669637128884079171192909164689858969272850047270909743059874115185386085560426532960317729011120590825979085409129136168446902846514236394242872908175505556350071396815854221586545154144552033624876348261472393924471488046224731221388413228137333098617925314944895519609503291943799341928358370466778411758890407721753524973882023825021027149173941165511486550449178253923424208135621052259370076062720940194741942378111277735662870216242492181681302954130117354072128513263982758181036477513386715623511436936563945316686080095751963509207279809112555466974407769705629885322394910081529196498710221497270320629854816422940835775363313205627278031851022823568011452272041689716514815206534996390070655655361783169429894140020336287439012599515188929145188278511486067040928553709350617860669849047070090958438138694817203815672045163079635679321655596831964892349378734615538705247606857920843869400707284681019189018266358375280270664891980438693758090919940602499588941571016318890493510266521735402632633444761618454769785907115774136556881636915960961885460664667778489258198498308342428119294689075739219484017285845055669272078884328923456573886526891848166744932638867953234485589910379810039487626073183496318618482420759100424852336007148799118180686993127277868214058644045622759828418250843904437208889473074177149942979230484828833122366945150531306936111808675651218396057908236443514962445243995706371061734202735969592248962560746004085223831141679963900622948680241182344214918821425283818335755132100004340614527825627553108584771995342326551110280243937471238036098949743669785472871951937520550450547273302526252384366428682751145831695905863207690305482756147541691132538508804084840297968466993005051758109445041607971600645438272876357636896328540042817702152075373512530631758231279599531544904163549945102834604560885471661506063834228229643169834205931942157674412513419133701010651886866995738775774735043618499673793747712929300128333553663391481052458105498308961855273908233426105725889529544821855085244191607854677444783964053021490968087461259100917734977795590680356465006130861546160300679314788781249120023010800526183883337907266110332703978810309235439473559981339375364473382660599983489663028670778877010127316419453947721394267847559484628417766573627410992925293265050646377579226883654020480404179834086930830572239766909586537158013270165747599059845824372780372732469311694236432720975241291075947076062309320062975247957500444242321254597577407610855596432869405780740578286364227020098356496013053693020657837502769918978822455128636101036047720642903931300888404299889419159225690026260418628868231617297589936812489513880040487171070581658555031467586223432220616034724689457911067545664697684232059221712494685484141992294938112348571917541380496701709913808083373390220670704108903607969599622223127564462229627351277424111842848757610245523572531607275558704980121362752030256538529086205147173584460317588791103937958499100825673641632092961462044673610531254600532730583634020505963504368277890455148260562729192982676933934472600760861875409396965365564139292932075680493323106250478472284280068377706450918065147334707115623338221483157302336160897163896520379089688744049867879876380355203429546555433475746730131009866685265757053544775083283922697272840762363940341241881872691730187044683983591578310440464415397610733161752431583894899040744464867887831049747914774655039532323413803888756025430566751043242163269777712064999401925259311873882552933727399988126371967243444455416732757705200911500840913804004680506391532562189673784959894679513243585743198638417487031290541332879215269392563181113811894459020207026049409846417616704326446074103316349940805641412248615509905433677782742496512136658819043003942839916644026955168037621721338844017835467812866955661206366714687375903473893235457504167020455007563888586162135735373193781608687039480003667398848394865588677806300812362041238357145561178852824480130294769380094276108469507930082395045514964402515383227105641777273763941795184909767982897744143703611966263281411353637392715781595850285870559640145522108300742083472468786992833457728910614927774377450538036159857064536958456531135724245374892626000178514828259981688062637991404520834764520931282248133836197909898631106996399051775711427003005307245901637767675648527384125498281022208846410796765760813276462371153912546494483873350937768758096235720223896672802241152381837963608255419276663546104932443938566290891392622434177941320025130295641037580706588439939082102961932337229201996654832120554749466680124813546055265879417585289652511720584327646098328055899589916819424642614637493570505931458250123326655907831211807666210676304538623282779698538340793254916185044966326554582907047926603013872514232322237459707530540213066018114756699780920300555249844173410648915175923667352601667726324481855694124080295352200611067629479235187666944892262825994803438018865167213942397510764347256751771159421746172956302367447116955110037059038226709570169829300394103589101055418746343460082171380741467161956684042869780976816157971894416856933772658371001770323772885099790272893063184182416365268496905999686382822298111477063252514727329957283636612997128595746096662921855529044920510754955111754409901630225784721574533915546670554773524577798439635930393580075690443672123931699823161651144174206843641444028807748209951001438666254143882705542647627085337557588891392579824880661843015652907990809215811146093752565945960680942999815551551523716968481242228877028854414729437138121061006277445078693976602382726915999967799213214648103008105715810645014151018474355394285909741486610749037155393650075035083413046369790374836285212014452693510712558284066645416099205620155033089288610049933091426359010578529015631268860794200482023331718060777876390773147376178259015461785546356834909528081157038795585860057626011556619564588367394009535446013897563429809686621160831155747435190858188464146841375716352136477225935995740699113548574852957329320099725315247814684871000449214671258815291042637615144816031205798749938450921863416916391034096980481427440987262562058367468545841770201227760380898088675782869429677840741521776452788669103013143292744734195148490052156608649188265985808639137743235642693081178162878809078591724094052625183642973068458465442064010644001233506903993821492153607322929317935664344053530170487877982943543242121265320149149610813138478408371159505232736744216059820893038080912723456176611887813636627208965539545868525167481664547756963883185022145105781499975001597946094389885899907403785267351361209434306030267498196650556876381152110131996783708142487881066084076833381231733277294936336084432195498504798893417875386769791516863698827104266448881622969144051715810502284086888743202458735945507696801112750363245358183182518538915988793791470668688469517704806029735302075901937461162943999602230939923124836783941012765044020976863547721078820017010774259237219990339295194664233124788522451166377385053141033932601992434993632741012120238153798204819464551553837506371368362134225750399843221803748272060552152656010850216644276129606213618812377638146455648843912471761270783058642878688060766568449975453099628728770290136068141706936269663415078209757514775344149274193895959207601033575797328380416472111240825090885113477522501709909213033706575061049400911871574985606318298334002085153892557524229288813245777856376818259165920503953000130651426863893134178581877511642915044794381536503080907279444821927025935910911944024742660670416353656190924824224529616986601086092843095693870131185333245729324876855987355124847957266317410710871143627152610447238869251273199224697118531511918092021865887456921403030303736040523637498543657853562730754860162567868284821684146306438127928488487889694327059475944808280951527564821601282969101017268962799135756403285194490245981051843961790645411305462296631616787216432675692030726054529962074076453362511124016810234658617956980454162622326826806199054055707379518043870935083781645239607584754759226211358398181479809877516354816383150591252770055622623326212240882726787620586497773932144648978316161919846275125306420175819899069625802313058463306243854019652723465181051861801013893882126828549638246282124999634911768711678725083032868082326259477838052187700753362350646211267110384004172798271038976979245261677797142513524881180994597628800057917218102960690872856908891735570214883715539654262013694245715996432364725945593149908848167718935568030935597477403589367464915554911070312359232982538550003959310625958831643707338862440806387664972546732354894949674110127986135143577145325016678827660646771727388680602232050728736990647389416605278585100114791633240223335453607955628288548160137078031150932506204862276441895329002869358268714371614403427203043592939322611421018741487682092877352772481769852218847020307838645634584259492127225656203855096148449958658474195141053315324784699150202376378187799877618074903033831354987621613266509321000555080992772886400291537414876867054573716659027437938524072566379826972215570437058083418967849703995608307417130001858508224268553300466937852756807009262882317209254849154110235598987667770862852687862687488767377185102786739497682490321465897870262975869306690360712602895727751755854266076837506621815290327957642219662840792022516702959474396194794873728487876336213774342359207396706439496044602485042727891222414481886656726536917531963817646101917585693626800605659543729131781351585417512334487793456442583709442277763360148897268779080797227550082437942431316629500288135546243558246489542104665350218259214023248578878707524241675406322811329431111609711639830097036779618990261060702694826744816968034763385281084901159425367804545636085016274233668815585191282933292937129749404970364919833329175073185289062452180998468308610001262907888641021744657816280269888982231014734324705762166080324643309945474854457714878998519881222234378460920645506976711894354902823369432388096464424789784310430016678594854670839504187166411222203532910839141923110395468927261905705142722048081682701348021306529823087673969514391184540137022869787471832384560623925642575853186600177007520312281844776852942995562473154171860158114616992693350304394525662536914793106246723450157058502039083216757474749700417609235512969568638044969022195146373151313944669669660751373031531698531516817132674072166883561294435616508426897659772598970181262652240491764886825730000000766113979274724072161424674077564388580911715526418425065203315974621855295376957527508257163894774608520973432706017719409941530049969426475444885024328512427596727016301404762716011366093039305933763857126103304573329573627489679456790040042455172181957549860157488579985137740157437917935820536727260084108806626515103741660936966953720157201631325535664230783447075138243344345604785659645154192711388589137433641165776182633655640767449349270908679178823475892288324976107037761868485865248663657407328940359444399869170703331205695340887370700408903780143675177102443106007628378539744297849744894193444787332035071043169391092309364198932103300083029421044277827440918323611513738808650485077772354018607960352070824149481158952237552084877132028352405581018784745280591891501267455664929521584804991272066598485139872882368131466099255558478033498236700738282405227002850019893573416562657011814368342505541768416364978699557763952861611426339495050535716986507452152737722076219122852990785729127878724882615535992299226363491416871690363990568801665682316574294597679723987165050155803077979338512570097549026543449013421187404395929522923232993661472069248265227033748890788673430080142371412073243269516100085465904593689672977608664352938044845521659882259788144209234466671469860954695861359338754483813030963242964783638151685593167822196678305413623779030646647825104355041756145667619018804764401489266276138984536152565223237917144021125513456769530094361510010021029047505621933661633278956268753592263687172711681398332645675783601778204815776713206642046846324780209728378154164852921659057123581543841254608252963474029911253938288426479888235960407360183639428912365560685046288114232413751285507578407742193800614789037738932387132707169667071054183039134869068446064106767001070352861060928582327827885744399988380697345412828452364810806970728312236370288126373483559988209923086951441136623000839310149510663942765819957534164851214294221887378082308909030320585521469665122583254117223143212444819707467063415836565837989451880302759006524465332060067845066016006136956081202502222884890842021645922794473385621993341139758599013128135452829776324640692476329856805133610638641816549687298172759270811738211839324551043233207468670612177552721877925322670245534438286666857717347732433293005044517509771047834867501649634655136682130586593854284230629326313884233991747097057841880345336211083688428311091847293850718142928146792735794776368311791071071392238957109415797438971508780062850619311159348020796265849548807399377342039253401076808685843449886381395575438895386093718507329575180761344892197658795351636270645020414638405078051894552839609841914323229469402224368565330666724581565642257717982835369650333085718837181396558240737494909762793038730462832006836759471367130152579765189466832293333839813559869196296233789827772896966467325032139137543063367774136268715286134919678491520062065865872293053820291251722203451293398042515297426713470961717335634735562196508775503918498848318002469541448249104279781881511347245228076830045450201054449142680752182927986875191210465075611203443859052780039045465672185228984518454267248678129186094378001884290451532955693365956036063523279617435917083428547720525108171227843463081262031410416950354506433944690697749777260228664225203910909590716192055063120865068204118647475669233323140712294056410715190050946645491584732185440324666786033523552093444943427973196380700673269593997448221620744341347871363046986610868836363270680331831886990162552108351428350877724377685367935406729654600962981141697629056340054114438435806196402719051668621704402815902782560780168850055376118258068134719539202829648881998480456951449384249025062466650372506757194594105379278699224243144190749645944313713702069021945761298547046942278026129804520926978110010590508667190557552878137576456157158774556111004996328709035306095972098717054258545324744032280727244817546515573347785997017026689339554054773458110665522182998026978313739724654881661614163665649724620460819361155803842209224886596167573442678451162494888407707721708905177054130195131208789826759266837280727042101379514447378727490327938310839472828407900634731804039645191231634856101663493681761701068076377950058996748240418360342508313651417334445015356447887991199137613317630526583655876628351306001505551074641473535015430462418707744634535279318584257535681763242493333912316392032569184301874920965014660272442236907123507848256727428405085343560759124833427235762909598588395640507126457562329307476006495306537699013292102232874082743722490798716558340941332467944411531141580891540171321519932771652798613272960359076062786825355505362961749420345864248449446850974002603116937156227154276931311936790229933476284215201979159097515638125902510952846406840812916463465159525530844041855510263844054264452728490245369291491972763045501857513985692817816204189728858740759880667352482786022578136327676545531596563399571129959138009601345145784963991742809077741918212797585519820840385123310762776587644770644245051068612737567211307603563844765123776646721937254613362887347101578833979168324873030350469170630854745134142995864663506653869970678647454857454229406621188293733733674418161780028549494059852902506296731048651963258465238728895314356959828345471488187704387913237319225920805439062315080418434331253916896627714611529004125826836759812226272043373453251899203775457703517403722686804553559511674788562067058449180520860723344501921665553289399729340818347215931041042772267044036969853767193213850882192432585003718359467255109016332722188830596895043669234354830843904133210974767864124376398186201226541313224309076927841759319091178264361660687612204324986623317246440027973013682012521518353879604073392938099501708223643717494038771282068925081931504079978232237839317910321235076909666804228863445167718245711824684347245149087447090743445735426474122510897885489290527234348038572996574363518897817760781784145262933133422171103565666941572684814303119124384588035833773526952732019743502037815953613318593848067070407802539619158521272246737030049721251184303607063120177626397831764282954347913509513103637973574555066952438578307414682618740256634146004589681515849032752912839150183160048875427408131416227442809951120922847325379013635504941315914207780719520477737707285453763594012961416096884620395837625419579910708219311209545501855338255875461932591053865395752340275515153528197991685517692414324965400763348941984276571857888078722529956325249990369213629918236639284231626257151593316491605369866557975903631134101207068037029122400169933418150582630829562232965652535948148423077842591535342251077731063491579026738615377704800493443855128286547553428851835937593717420443528685489686410781154281800582191464064491362901259687011800722770879532803172166333997915290906908473748134960080166497167018807176720452571800617634443890133392792764182495423383966202454710626647207458940004284917992919718654406948000906218179643353698992341180044521639678469998923114671533642310845050516634637557404528398785188782468799198873609006727964881062923977830257968472722630099208110101465656184294353657066587628245769585300360543673043026701170638498102679463337765845105152221814010422520116575737430552854851525277398639730560095904600640750742868750070209018409898798095896176353288016069175065256398830024953429439159871726786130164852024373739674786621350351476951211357711930052254765206882071397035899804728227024243709212782340167215969511100290977183878591096466011945076152770978387016784361560370983533801899101910400499591788625683206158848965610286803291031974885871186465493070159063064074873674193093184211754061743808355637326867369594065553208355040927272900155874564836603782735114772890544135398393311333580555940097878865023283972320884555491681976504188065357974152163539861627816258501324214196654005663494625165576286830242823850490353835785101417335785787203383035743633817814109231091823894694685303823825629341478107384178193181121071554801192409273646967809366740240796091391731608812717911242472848466908950834633466037735892313025968629163527365923346683510137757694924643935714603174381626050486994217301176407721191410958240366354774731182754692778438232509862467530343780545710793443716555852393239970094455019803792294226707250241284340616028750542159345148337252985841119460918893905628519882768050356779889967710983375996637612355176440865064263011719781456664000750956628744658071771794226304740637045294196886326709673435511951700549421257573351969178829283086530648593208489012555307748996963672594816781023649331190737191617284194501332113699747932800861769204056383143943944619917492785125871064923545599284652798070322848338095352391319815451266542010386206773367891915838132579419948416045986796630569166845250275677956993143171357341893344734715195059691568320664499978457718612490595045676111493346973651923029292034854880715738397091151094238966385513348301711677753299747169760547033739909751491274561485205870494200265939184990161494621530645388107666533197109099182628482604097030871558818757801370760677808710762790548131769765313981785000662973894512844887401019277251672042764667127580670000780633594876620276429487167821461705011619236661521327109574611145059930999107485329640131687437381265269649077364638175046738047412227250558716377938165528368881102779335830076652335149440407105782812602457606126427851910247249328392605042333932720569223644057797964522603348834861696518185929230017832295816486111401376344432667643185111483272864386691765305005921271917150836980049868090118642445130940060759633642920952396929886361625140265965555899772675180374229939381511235609905658460638659654860397024178678216943802083109778679686304862429787108623137248725693134313009530654865879577596632461561281228152372104160974207313449689261022404236326061437156770873906599987443743211131406979534181864565196057574114274837999660036582741862959616551794386578253753237485822084907246416622673182562928354753091507904417206613465625859823992435483325495958383217154291998216538402959128982391729034982447599488904211850927076274435221960622384339818139980210896918155579362635683194494533124440958174530697154959400672416119086208312270290204148152444343780226912640454275651046466186695588737996409863964079722095300542907239943192264202319248466942644810998351636588398814906031513904551417105271003591588387525555120833731973024424119253179074738868815838562701028157667556325529109263620616642962732518355678506843321749725594006857614827912080265047856060682053999156797714456509024819707785629140773049613493341890825562665188592318999661992780714800995832791279734624340837254989947848144387641729598101343083792427956815071699077061679756566533280354921417325940458128472294651217745007605183955915575107260000491497092029791527156928765270230269787760659870496174324786684030390737902044298274838667435674258193676467373569127453592337597209587880644728247077138232268089452892441933062230322081817169216608693409858339278638870186800012594598328820845003196228513711834880951339338934662457847225257473731373868257778280461727731793158885865862723350753362952656694547957213169442866367525947711726016270961361778795717041409141997201763158857755242695938615161717952098486306084573548458278020535367015594470498721621193216009151780099084267133616704184278522605206544874582880282935406993434783207283194697484845687999888513700403757180476603410117863544062216251015809066194765449582932893242270953360021672889203128033497266853970978812064842645336593735929748870562518758008478569208072973723441677664974303753315429794349079238291376966504579715434947963027086658546618728095560033945132672577314376477273174623157068843772129838079391897348146559898800240811247194720271793403469262090647873225367397534982603995934631614019081522905827848433302824098063509806000750812593436297660478239740788289300706454936071728562474452615014170914389358517537833714404896392809803812555161202458286776490504936354209345075365615915338404813360519167797780056653699880485121988856922261254033229605916189805416511116508198411417279891936914986265987923116996780910274687605736933132755751900387039206798847660625508998764589498906042208047175951395661908011370476799319750331013409821434087616818179687452413229994967560029119460030533417300481910119481615988156527168756316487889610784488236449566425835937864621159039309004305887391842586551645460929267381439878013065833005860494764053287436370301879730913885091400166933853645241175572300084306881019534326073292323378864747596834830945248753492320032453876402066956627079090109489378865986137448940205871389848402408800005891318656814147932698514757025452650824227549630372498148220305494534624435524038262489603262418270481761983871277094527722665750228782929264932905055009181543384852080019860402001756083705722050287130587832591625297735227363803291457083666287869282524827464333942140079633547031801955018027067793377023245183358220716144434973145309862531838217960315647529398822081641712579269596037552636713966413249924751762373040456722257556106606588630909551867470415933346628338765517959366907827307204310838924550198033146202740905226582151161042511178003296760164823431082548791567713782494919935567206314466379055522043712197536625337914852620433109891977741862249423368861153565644994275157078091557855053295606301649130357798360750984307696845239039125129166320407170859249855619632081837785309401433057525369699230627745587348930067690474804760242541667595989893478231716980779345959682409859125273231978838303147708069725797744004823042623178939093669371292205748169573532545992760381832273923913910631371283323163657326815265073433648133298969458629734810569589903255377534610442489689159832076831519730627575485825698093821374768772994356776545897811618859041963516341493803201935106611820229751692395859502844792232654732159469362447697379767331298487737156722403035606536037608895159535495469762418143499433084673328544661140941362356725849883810810993035172731780765392967255338701489301646783577175445513861612665183001337817977809867603833961562079201899201377846233461288668415204311973029790804664775523335506757946256574932300067202106265512747697730359517619819014820911792001915073640602283862998158756963942644723438094269799767834561364878228573297704281568351401192305436658414843762944252424091532170149814763229655650109596589167726462089531990540104049256427541963705562039510037374580965124210225450926443897325379760792365784629359074085386008434700581585503470124574518259711477688928338975879657229761608336701848911971008720105640199680034580535616646787147991489486480882340368321870994112894910364151694867359160527503755883662502099354954544408143748493644648111040215388936327722768115675802063714975999404701784085579450100861711174922659846804995615207631397713103437031820630841456210224797593377064207924269454698964900298728792224191165625863803488857893316832326172628607334433176930047478366409554302496539812032108441642345534298753429178337809272816031239951142701293453192000483793387553478371066458651688807073995697107435150006701996636770828808473326332251616312748792041895366096834294284867170800779611778121900877535283027749575861265688225671571331857508346823273478496623103643108543565159073763739593512418462100622989478518723630922875460444321718640576794774192871923234850149308344881999364968184439922399407797461728412439572512116375168342603642427129715676842194650836814247443507462012866096522564871632413568357951994531895564450610505189042758060088235408564264869927076715702989041148104731340660759032492570088848261283610778682123885934473679846576513377813912527490609589761239142843178551229067657216859225423557164321207705817095890947368211915052484987635419360244949756974022912853970903178859808373373478774168641885705659207109520404988345749766251968998243902065243615719191148368072256419450092472730197700226354118340116752272881130077960712903943809512713252050071612680161605660099909586795674811315412207155820218560449349029478823973144238196321905417883977875360122613747221224489718087863206291675780551995225075602482599205553078256379627102607456087177301998544078285357358685612748324347461905984878580480716114479010345092852235597745639373826841243066526480052192059493691972685084148094170743016766940359853885496950997665528330324924272211885691818216663030322856078365730010085552466007833520072577357410599058208853106579353968994691330813023090539833701298695657485614969235561838916409988947805080493044834193044312871257955652207459593424373707317257352441744036685430570093003264688016160392236823754407554174403785991401390334801544214838939573385872284402626385584696943018740718030355969990612385166471386696112844879468159668285760523569962155609078992705126724519139688921836885772758669484911414048257820059389075754048061236196006796917489938747687458804776174227680171924654681309435832670083017698354375297011732305771103532094111731447883809794541402191521808119544348540863858127260465704038534527885345477406629543614427732563788501726497439228016298220747857685716269638781593687649939074699064326609224579137041347916659661805908452654175361405598925713557057569551892233478792018116690514879603105404623868536289910534803942166958482479995571077786414830124628371179378764412166162448436016382289170469570847659518772830008957423462692157478855942834656124861270920494334490141984737682061552495265464743435543435205417893054791053145963456872439025373810849282482389595587974124062262123244213635600958154867605520834820415398313665644297731807489753391111687393203377729381235977146315962958153427920714257312110880819484681927629959174173734414433686802909786507344441760019056600468313442335467557531402357039567145785542472472831313076899280241803442683985494552434828053145470685556531884064137595094142443877635950825181818548250103023514811688456738711240508242913222915801775247237679910344464775762554843322836472569596383019665937111672396615340768254148566309395700653446824053529450097915977647723326533083040577113812928690399039687005828781013222730031347698638561393832706075482074150937397160888370531076000134980908144301787806460301513958340516335747669460556886910000344922548074923863668841393330051795478961171324540396619792322513995986912088623208017564682459645730902163307041947235496774484693140829159525599000462062777751391270659020010027498177821490771783835284816221157278339315923791695051046402427908629584137170189986953311505216794698314820744285809301696076140388286110833557809668097749174954626935646617025163902560398979092387432151740962202970875210416116471525617496367975655037747423232578008345066199668448727754451618107376411537277830742770084377975418634147688466578696576807503159450667386948869796262098068720191260655673395581519753817782351408573611833379826500389953312820013406023811941570228918287977891788685278285240065200473484108319780915522839754374027629847334945116487064784034427070668827992089079110248680284301125085849091024993375365676294945764859469274402252185305312289438795116562160281320077383257267852860590576768703213512182483262146702718016062135456405712683223916431199899469773172097926900521786109193130825532125143255874332685551630732521577538895063290894944882837422173989218559360982238751956101892460298192196586463317994819420182685356136604451882786833550772200963641221867557330598320780547493034809848101081493964744665166022280925760271518407863732937860702465625140096748817555446368506341079424253495489638324346270363450432367209246191028921497102261534663715177390445289704450265122849087806340350368616863917443324018186399368586857181727899800782191843977791891119044967070492497970355577875387974673327048498139956844398751151301030082593494232547753436010951326118680302476234186766783208226823687983232754844326299662457262405418437760309046928187005027389815617751070173247109862718165026536350650926864621990452153699970063394866929679804025575337290599109998991597253780461123300827741145069741007570836280574615512292503583123267709295660266349622382984287371214307345456421910296070196048805110520361608480541308514839641837412143192258294385012628003652652934678533852536609162306601825215809492604894758449463175746363901354161107225886138931166100858182572958571615184075200488620272323825027238182750641883750234608968659877378432547629577215580056700293941471741157863470516875184357165738440236025603439447423024827489975602401580210095400324192135663435377469498819399928588503726290484215134450153085573743715011167323772618894843653997737390828740166554377288625498073046581822005253415303035464792145612618918440124733571597770169121992540250187367540350496551857024628952111454099800636381647266720254360361144415723021055668332173443708633757653350669048224335442443985168719226444338050372902969326989263817198563943528916224715963836524987008664516402177324502688045354046501182573327639799895815821027767321277779236624037415010963010664782187441788540850432990515463768401351305945158582778682125313440336908573332535886473869331129436868366023672188680390229065601089766114821549811920003666730890538473759349492180628421418519282532670332813826416989549643664778403149827700754793841000872345226320475376594618490443736664831674352430850936358742561092600596254587919633024285724975007541342023321527974405118120371891654171939007644919876654938912970258999909263093264930990143755176718348933545022404928884744379950016869965935556782576781239399320725077774758029539464808351492228729550980063297040116856476026145972346870604939027929503861641837123579203117280162278241193348378602792258683189338959180088422820972803585554039859331032779881003651461067717851730281911490376699982277441944368719743395842940163795292051648271744913600703328882252606745420075033996598897096233552239146699140479381569855215071771086796400506688336556628367080957139209091838362327546802778785875996273233312366901930770360076328500807870834577906052214082901782864426225837944874069961349130540023802799864756377499711262630427364072763054926649088933931448324107272812989608674829673138804762888100837783425176146444497482303641457943656324195441331390843985955742077567584220304163804502706846545776683616726668705384356797522668399968556034329238003216359780217937525532422640906653967625776206610485237423284091803177899021385589305072287347110532311224399890971870471773396598202950887571864071545146562993621697825151315109313587260496783619670276878725784053489379014779492733484953533310389335166216199077183725968314440701235960630148956652555220020076410326218915653806887021412361701298145081697415446955027192447460490548384233550627242753311425588535723550864357563323823998796216866111751244105624643543832161209113027837986030969912743950277259089999776816255404583429764079571179831127280034872826750873870472686709346039607227248350749001869233841978869061392414228804546900711502485067399638230569667540378367357241883213982562751744595552837815423663341711306512892828788265933029222213804664401329451178530603414003316811898602277912094895316895095849218748129776976308635032462706521113850403987969850403685080219663258658439387951047711707536871119634295882167815555043906342750177226403990962381079698034660163269596748327233563503824359263052225952457163784902739493080584824607338805845225920125580631014893902136407581366463925838778409075647486156090637087792857125414010274934089976173117937616112646902874476588981232648262979965845245061051227636266325581927278378684010397765332595378943767430890856726118478545632878498696654019426531402606228046562840456580152291041654631689136568086646849279767013992724382149870940867845329484538337099603553625807762076316519292840026251340283520206109508775581598788941825768713016977675354303028174938927455752056293950158255086973367326029080279813189700416106171339070322524352544850131220417700828486902229600771466167834072102350140984255630993321731025657303368728448039844906344775312292879693034856356122101052100606520198193753000269488966826866978217699167788172569454334871129283498402202952348775201678807970204944586897460759489750533948131385605822620610692897283873711571192775415049697348378728432323198202459920058558806821156273793026508139563918246717682509018761860957346233981674068811790313089079390659274416297926004394327314984521494249478786024626753134717449523269710988658457168471060791805895966977675075106841630630039560120661833173844182811731220155402199958529941380742969767499415447019824469239822191356943763134594703471500664372360828910078766028047990187112852930116477581958742296023416667887021231666539579558168428334340050945294156843888536316936918585995922798825068023904261239184703731949367890208209650826039607490913421967831244024590792175558650574750781855240269323412195469820837024253768960948875267710644558069722217482613506759404569245581060779742901071627146122699652863399720247224225752886695451581966802179529549872934931623887947127352636165676349240210933374566851006505230102455194821707774374209659041740133566523907322956073263519734746078136477677668043090537385658492157530608165136120550358435976342488969189818976137778460813610118768372126807733311071189307620616580989216739905396833543492001128675469545200769843068021642904347218771495345604739767450228881465751974294486680335962044242277272631611115067411136222246502973566095693597221754340868581995922854519835763311735764056006457028590617873173284428602293233826156681918449953035740335193180429295356870766996447801803958020862608464038947462421614368615011974710337473618657105294383608545637613986281738145068925652696384477291120191249362288271474969683312819272531828325850281640300607134050533332712519178648408226129575855540886782093920943843431293852529470153610798107102486897441751946537556697345550321593034368820946087207343628997343438400775964562057169821675933198709398102306862024383233837097269234754264113120170698653776663680639315191881487417396050698775483946082177548694137632244877225500094193331221471869072701998645805328250001922456800465958850944249660161359164061679693141747530971131820674838250842320272585769780951288862100459228725435789264805293845343100858758246328853175709916044918503054603768065439183487098319761680161362319183965282747930476953352007780962495394921098276506511141137133828259465324870513755426458838668790525807646650679581297128001011812228739346399097532618509485567061964549105275408165640737444091059252074059020659892274829744494080465838544051034600678979546299054567243387455623009953364948886681806843411740075371522261002419542084236417636426126706896104779680253734457642772203204294468245589543968920325900506100919524932560011459444825902556462092087333778062194544929696522988787367822157284630557000195964877513763931979952429550255786174727255380400750506090691432943170599044865527532308781619700938412834101383349351971918606518623941483294082591043295220549548143833285956980610254732658801408187950309194402555516268853831213525600559309639905041374706945245725867333230414036672830016311005230735989971406110041599852944595678242831357327239214450043619901517299264483629372138023275107411142201623343423281329007987700965691808269930692850537323923164000061173346681895022020418252539639595392031523938008189150552172142649865160311581005661286148303433860957691787115879939625047656459206619316974616195144399384651210487205581557602078440053396415326539987610646158851828980538255067802905155680489715337731901151338009668265147056973304844467541681113334007128699429422229200548132968101710994096044875113085357203314146069453165276872206903794351586979274182368123939843411386103493568390787594243421327029835467259519659068719630622404765126122471570203465279722393417732738507948783922835852556442060641694759366736230678474104944778921482717577995653298242348897400296861703600004905343990915388201057974099693655894161792077962745897414564574999378726292438873784553359848626948961259515780689466913593166790121431470159033616788023574761674469894522410716707592087848793787118040709848696312303226098285377825975633241831269475871813197100198560696440823115010451973119159141936951032432528808664823677005621283599385632223823757123394922010673286733511960896440267976713140936201315348841299436194267461570811022324061795256954134128309680400032309346571800885090994598205449879352302805510516871141112952072939978818307395768034438565194507047108407564846974732591646314035729894976858607507982930282188285113494220803310444098741182840892617416532191539603904271189789651278798705179972729381412438373983652114677620569208439114520038210978690275230251126911273092405143128487892866674803632530844028973508979771805387241308247813034931195290127924401438814650153526129754376064013082195754817726862531334473759795365092271005314119861846616408450241077151063563727385461055926783849124735100440802390592382974906782282297329549076176618736262807542061582387439912223017266882804386108956029974681990968579125218702250149848940985026806952292673273202802210416399311456117147856412149791639008487823325811251545363966480059747084903319479977654914852704190283154253829233152107656237976423420034186721367870516180064313554628957736035077559749768484506179313067405536322585118387016674727265948636452319559407218569385758156331553502916368718771281015094703085788024347153799788261977487080400759025581920434437405815710144700679602512797010459531970123621632008743831052514395830909384972055486174752532931612331616085642960999551627891078321585995635584247444149857253778298249974328331571846338417568120685068333594260745999517389193944734661251245838404491336982066425543713551674785240368861311099584367577635640184335087416829308426375479952264661643983320618388663800637951700427335037460716938586505293908917915250922841728187843442823723861844315039474058651423603973777965016782274100061029824385854061294209119907245212556663245126635827219946066718521405191828244109521157767270793572263189906766718068538920419719435568881865528841968885837911915408874205938839820666706805592360400387468205616578382028105700267436679476462325681275822351978035517871148534689527104001977190909876915040306574808633303098673144742189921253577855634112403032713027481923372039328406665785828514535635172337351657182809910046928381696216448526092081613607223600848968790261822597803835834084175115624767347614498759751625431979916773655044888452130280102709158173600769753659360396363807170179879930975723172618089663088296007167762977843480664702509916938126997256349433875130281977930944474468211585268844039093710202531733048038754766171351078453127013699150638409082011873907682676539666322556901260756728515260422371654249845223231831047639074509583658247965722133422898841721851930946368752821074849343310365030901116947958074108910329124333840727550330923593181788901439393639220916600002552972544830866378521261413714633560057680792829469099856166210079993730007565157030101744964267184695313165009882841823855421577680801800876685950789085162575192391238175702865902624182873170305330493168799266641976678683384632639211687728320323606128372061184963736786396008957676824772813531885644828456466568020016426990353169136051458625160467471184151737404246045154155599277198870209376813216561882284819878441408665500627136677270923004681793101447026360720707455413489194029752677011738557585303473472964961003724973025336448963050105000275409109681851184048262141355356666674380844215064451282279017650995944940106282793648393594802944629600527608726333596383947999795404816735194443654133577347763442722785953409483515753508157410228457810871692043580053860340583463860013328407859488687464072127756830013738972493220345432640515503523012527110008449111106233250449975247544732729035667334128994461148734646003258172630888219116103642585578290205763234641769663522806637132564636888661037915400731222721553933426975070387357982443492671550721981979902771953833677667225910011123153106593723533274814957381505804461286799877918598681051875513674092411849027059310547367264436223873118691863947785488143338298209447665849384665029993007866934357398994130639792144964022355625929832090883556107552588357299590329644398593367054002615809891201460085919985047042222662944041816271255657006980046509838958771543754212761671339178103581330928385078450962913787230409560085814204985690336704897608044388634780561019739180486794484165980117352140575039236160379063826869075394008845168135766087683094483166851192708526832034535138304872581757770986451721314100357219798040501662832634674320091250511731314808206197209523960603981438539983816439660331987410034930224769086838007687445524432722814120757034186031623072124964325963659601378101978771745602922898383330153542431147472925222407089026736140555312358221300931014674227809839891338856514838401065125044958106855602089778487444227912373349150418578122543290387226649564024551361709678888076398534402535694122694659539246497554705218378625683678179922863645722832141828117625590328657084162773579892350628787578812550235224176182912701821302711757880195283855165402084885161401792611282710580765241455705844068971651286463613097939811098786445524361823232691842126760548890588437857851218536496033548631256753117464877928310712518298551862410921730498666221155721858768890930565159306161094149284808831871931576699324225110728167994398971000334485459663227612243387842396562251820829305010388126828430416047740203950033413554773710630654078689523099782686338783646394123889097872586623569738113685537804024638052859411651143394316330749838971120490895110696623744643224167203160551827042299020535782206565350056236620417831756482484000770869720502656232297916103487112382371208360735105658940790699977460182143663328770790082822192019572770452927017596404480079389875181608210967657505522988285173306025272276652227165201408429493733034616073436641258053870891874867801808240172447468710395122742799908428783523196753623138912055297363400099736981523300179880511754514249739400145191128494898933855143538429294423555547924287838048470773776146410212576327213359435092310719016403037894546007728406278809903698051544755020262087230200507538149609447615121766475585362590400392642397770902580832942478074103522757146178256658889359341102633635690043612307715569173319870152221344903808322773867376548798220769114660429378133141898020976158969384047350945168429329048252402652758117547962450177565336455665625633851046499075193556072936417476689715658727511912424965359079605824889840396762611378377759462319180686085185889444032698379988590227290426669377449696915484706927749254486903968460169656680859995233698115991774355077309768488360899858569374051814334746746105659127569588048130374584508343730521736708628649864651417714462207686201476204431330670996763505993273637766890083807123235051262279370516264184954764020257705759056969024029820329777504248369828412158107914344232343875129651536949227815665520353984635436743418741133272197601097211885662430227959238642742271711930712580650816909382153743070049242075378201234417588773007395807811608836346331714666373856420224979850032737542048755333013311657826006226874563015819571539907081603852894794616085996222430647033732641419453236993586639388389255083884373626803435054411003501269877494447465911011160244173019074703840124708024914737152669678922777145369321815537704777849765060149141524051337507286215611330451471388556701882908143954254177636155116847982056052403306043127088437430674037769132198292038506970217827427571556647644014457083952339123931038908929906740837831652586118102191341755305091525038105925517097699796041746942144545314711821138274772688335690194459273405299605048765315700196520543477206230259504041657101383692957455645406410403394930403752920813591264687494616156568650303597247586628015290003057020547101994393481233692804101901400699874349842860453146467158104538848605270634933493718475511207699772347668588252005193533214067216245510247091517374660568445692258550455990281781334374560617934890778955710435843999299097703030359832257167826601405964181123367609363998567237700715503137107604691307270423220385731370584394261832969039272699714526098934544558063409449468104921056709895932889461788800959160357721967389771584986993492313981936724817979649732475810798504248554073072813362175763588768451721221809799505092330210047126256572046154947105364182916402673637455413723966507525304213187885459023057103542495390625502651209576989560274006405523517321565559984882584878182147706184346590237503832949145849450479030425351903788441929193381957068254751882629848138068238501251744520841804901702785322241074813301185838038501407394751905634740771322916623905754490713448955737743215325364039987784122501714965512880858894501170832936268307932678035946251704362529802255246773346042965314870810589249292578508328022568282496575658515191960310872127282332545757904466663782359492228995360204054322267460755249870206006634791143516972989897977772194387610058039368517203315056293838784815182723169218087830885286320973225272124730350464684312411884759154584530324540612609550677277381661076125153980174529443582017002427283447996266203485684652332367471215228364972244885993645863884685279771810322169843275892443288373737385352879042856829941716644797556914484884791339955992071095170243677775481966022882310845730811445679463753039341586901253673260815323176107576863578557331550584997703180155381455693020030686060194736803251003984000585067429342140555109779347328494613318441431732808363857580421417378869426368271887017698376536028371805685723149230701607741070164898909132023836490325412131318354918981546194926573735593393006132305698589929740459158851648412913066040422579551887583791459306013265376277314112369484175005506004857188419780267879067216478700116156640347433484911185852564305225129178623823985995702308625583724243802734688315761956834524699478927127118600444364508953897958054693175161226561320907464872387315685673315679235186052393555371565157765841720083381528955952755936949880171772783084084482814033061680203107413552723886277232699846285699260169824365106502638186214719742915039775152508447007562850428797296201174026588982457870427074836585417024617413323912405621782731806186351447647331160493541019809281052129621876124340259558656018577550189581669630605532797391900968359433551942048143093388879096872603228339627616292362538619974105117598298817773043077242186792438411280178817610107982319304719165273947445286027076082754718049590141272946734343228920587188536785866033808966754733233435700755067218179089591063518046704836664482510583182219906115928707620534166645242458694359517827789280970804927377245518322264143685655211470708802473578615513668340079985566897012866411233856652542077392813691930555616692834651117492041433308605052319174012100615700240734992218100832750633905824627119156408137895839568094154662913040380031106964389957564645167364976915626069082648694251489853166359703283053092972590058763046093502403371018797054669326407949009785839137698929490591584864515763742957827388883199381770552896984261694699700352754043945887947712119902182823874221729713180651908275646292076138254281365999479970093644959411905263155744139473106142186909621744852557181549782833785449082313665485942998848860841649849392302805684640018881978487393580959992280823902851525702289625400544223303021038169309233239814151188757424922690941348074454659913418069931423794674237579794753740645715551294618198382545614949127366131979207448604151094627829006687679696819591851272707151166766081421477838382762892658618333408166407104640186363766827133497542470283864574124398431849885684642709160848814545798655171802670976667057267849600032399020370093124577381100686167167297501092712511801326476935224559407367264494897157278869924254892527141640638879458380210927946708614750999242654360981033496848741094616263647029625624919889470109844214856207146188020309036877347283294713388047969871347258870095027587300999213334294128723177584866881598305597738039629446736603639602775729910460363489042440150855774690982290148993456373138488877983036945133973535301161078867855095491780176716285749332199159340454686800411136932459611797700071787380118874872489407050760187771593031915442778561339294908612709835014594937412030320476193345041989525445805317149383708448372891216393722269962784482440773204622059889966135273658739973691993253457176115837099572640106547680303359953649348162788526355103761995257874615176691501679240531437167683423523945921407759876892981019919078323981898957693152370380406814028686559681481810051376387962295638101292565963816140161747101192448513129730521903977445470005931420877106582587973105285316490016073822606644898668886668771089091853775026129349260165991979218390062827105513784974352943586473517439108509957914901133083970056122315798072655874725954330764783768610418082642738274322440967929487476357898780751585189767957898991987734326052516418608683244528652005390327365199425683490305992811980377539306339462877265109625726733250313180754079593078306988749832477260350777692687979201083379763820698144594355553431606342790500081460239443791570716668311901263225420300956668868179754755264528214709200445916943822296908318946504479262487626151739414278094658176004144198193347340521138493815040208673168645891994380833839088437038480855783290782199510720760175626355377827559708978420127354202721784963551380316499179500315969080846465874624966202132317334393166482095140954281447881137696233271304054602608800586193726877271387590219591739942152306551689360201675085895769987882883202773900130086388075414008094473986843828585656797207191773152697541775569628030186290210792683748565793504373638516255786491363584963713988795606318948808427244580409013997455912442494958035378690586755524079290504407843356921095518764987123722092296811604732816096483177637958520647230741555768218939981132675938652955868550127652646700503999477487055297132799923012612726281873470937804446688557109351105543585566248028009412040433589041991711658426568234467431654878793370831301948403377281226920378218715061997044668447193603886938218552803501132641327236563435780721400472601179558068416420728780055736410692210940448434860306079556992845862573420463119212579415266917443120071485305925969538890663772397395024691678405175471331487317040795998076923482631383455890145163578640935237176639085826916333287943660187493233990151579331189941624379851763164831253474769111130444390735199864082524288657662291730898247152490310847228311741040738439075752646688667244144412949899345683221042404403077432094046892629869280019585262884145611602166293226188622926154256375889197710303290442400948691251741412419550445617093887269875500496916525323858713139660693879226626262024382549320422539531351345977131574130674676142465011284493062864583091192361434639066681865431087544599549130468455339886217466078222660815400202826796281886852546957440988154170042908127739181564498272244367914330402164860075663128556860196922441507287271855187897089318236274244186293355435124123604285908081805027782065799036471070749100410453445559048239040637055796584581981811789542196602141853099999146145784731634482478542352932219570156804615940847803097660791254431212038152142811505436998016462924644527273613480649438245763936811392193639918610957461567535549305596243770435776367930058043623581154696481978403268505006623976961954368399170200348680906589017499634775832888629650503842955982632381676518196726321216220603222515133570932523909243802886773095131888778263588552508271047314858806040836544217692927094845880585039524324710238440474795078036443268471169210807114394805686628852731663987281638542807751733691982431990710348827588589608898449274745698577361924798188736552927864592898107165521724122814630840499764277150695591940187005161269083792651128746500728471492025526436408739989828292849201667825876891629928409175992193682671869435068893612035434648612516525571521402207954710951605419623109292129270257984946436080886607361970298413934961424097204961374857011154582124354902251645358088213173881430822470077992566445185355347558183677616242901552348014157898586650621829754049814525522129490072516423845165557301896328104758492807270708687404603110075307897333511447228495385863964623284336321745284153932067251639345287383933994033372413727216572106176244136725814559663148040596617987541125486015621191729820853337187390743846165982079966159039612833320576854786373254213449834937748885822704138339682877622752285086004607312610051550614323806705540213991315705558347890897624790438863166486981907187125429466191142588593413862677155006369761408834362299578182729744210183359229614351906295945825826863473311294298445531305916696641765903879638819004133959556298440822168503546074316240468323822002998532322844539338037457111844661243508389849074404553409882532410675138552043826706996297133165772603133143314472389071820711931868413132253169963119734114151827777746054737555504605104031006919554163533080526149402346879323366286072169008146176021628385117049120712618540254512827906036902973622403382726045448988024783671806893739928674586363230965836014183245220220427672982841551655106974078394616954727307790014734408348642530172158633459095533178073789032534936957968293251604122666596108322819035569011781894030605188747993429006858659255709332915483420539128127234051948545092624880421216205541311600613528458961334221226140472259687253694511707233978661699759212028240115881121639720966432288084551041631030775545943388622163218756967574949802296728342532291659893144512787598699771716785701674947266082480337784504228677741605744624838460143950295458714868422798558663205239552835340388942202199909799857971652656760522824933637017016881442556974107042648503873733853579221603870295077314949649190293014654641036619260013357766537101883432932204252268378054435453552646790862792629437230808826784912007366719556822040962046807254310180705863489185232784546530990749380867580710009334366265791708371440601788803865162181608249120308027678577131971346147780609614581133839613780385895759447972275650187354680850031700411901953408208726636156536316316882567259213057151275078033091824857917430637361706257870918792398151484652440418054860444603583056264392211564937625988895199430674766341268499503335207152155666268055639739436027560128880641865338871257827996770352472413769344320359175416583469928292915168604939210991354082543260180501495021922389086089733585816348707936429539186465742086037927299236106942681779352946628559759169954355994421592306329831149421919039188776374644527704359373237965852827862255059104772034331054009903298257141453493374368805786528455364274628926134412042399032495447892637881883712581870448799149422208353725529468067636357380036915439427501721871078751290836851332009616388764623391210952342362148492028030275550551707252223742604561042620083314170893649119918007789819943678607072300474510881479462759809171950972344992045736265798668847605250657403961614059553804362457502939490613938859792355893606453165262912051269479684029633005474866613474978354506721298424232568192814752321941190011153939362250105251272812252107726709763917364351569308592216416782538471715977412497701691092358285299595621212356121088489786458656795166036203327829405005315533048585134658202144190829490137089569685292297589266893383589237660466432715977167560641707783196198050042797373640047713230772487928899027450272816270637684925974450547065671609370631460585242340547885418474969312914914008773315688454712372958779806522280745855637817040118392680549878814470878941373282388378724271324032999396064973013770473374094735213652786889564476400962342424753501095612624168999336720661665059626869979328737144246643186277775182897759708012786138899881646851828160611796500673471248435192696133867708182997979991145671263640760935408717975643343144042738539203858129819697715126189192386819884278756937863705993964842376758877680771469169676334399945812115713786876087447368744812574096814301437161443189557650709805011631391824752209177153823715229448650431762061309966551732673707897197228333156902398324715193038732998341286050701707094540590592529767305026841264360811447340127143695353579876759974205183384167207608440093987693377627334947802865449348486775302240305458441245056124310408308621489395718902683400645007219210167428017063658397539789412037755184102212574191154860731576451961212351035444576473330370131530015886187785893450818696938915719847635037863477248352174280354965241647338251014812196448801580134288823651027485550275916057984143255526096908888520400119485741713305956380435918238331523022594807996612732498120063186479091004739847612389509574034039200088970514258571781197387042523179543076668893656105812452823587020058613535200959687767263758196856336933553077623668167283577748681294657400957736268115393549957229444513266006429597476070091418613876940289138902080668381290536028289327988995001850318928192079771573567779454720966336804353682708250795494980582585170342481458070025533557304303437997802971583112896993233922603040153125157448035954093509044429969531836342506643804689443053537617122842580443866366746642032793839444734106075198472412853766750993807315162077217794956473755988239752896465254833126010454088792072039701062571053187611971197185021629478771853967141602246100954625691532844222509838188375701954827213060773083823353960222373745071918875864433063035496947170893483799703349609750291832224898295184932433385190122416286744527494994569293192889324722962117054365994585460766393663142921999744893357207565518226861564461268104597917370209937588043942705868404876335141937171255959613890104302919522874328407899519147265194901683321319541745037348151819474803833288722369392859986235237806513907852931305049491891019483285267718465442813214678218685651708882237478756600570714223521528655619541951539244323713967969195932250130211163018118183496310827212677688883317669808969739903512656332232258834217264635254307347917351161801530426971376877083462625950687677281374645942783585124870933709507986675487711140114482888029045640145265159183897819915495643330113453315467033294758769011975561676947571048311037838410627093412282950884247577288972102346523137808791520046500739962567458677135790877785441344618467647080567222480637677821830676140065991290478667510687149707751022011436179774317808054301153943587371334058005722253015803045969102249219016068517136825683659885183659910368961385124205004700115735788601571979955147448168317257433530852019376606962550064347729337010025830518102317563209828337659050366829770226830077564647767487965933107576410368376938683301720333098059913846797045832105107633958889439051280235491437113533150848089220814223004598878169220829504006360919327252359591405849401258090010388333259330549868500530168310475480706124419507551289625807185696530609740623948342820641778815346017524136648563890165188772293649907271712194459827212657034067308369571786621652087985188434421120915244512362171181896582730431926681967833116489425731486741411894399096985371607356334602030858805010930057783442559560322164415125689224889507479547176986892348629230354094638681075337510479312984313671396705875447086225920634591443865554143662564776372084117713734520064109005054503510092027713782021583492220738364465703470604889482474858335100976260375285301112174560387595454938371565102496569633568996604202617122377535762427146809202733004841804114892400153561243465819655463497776535971212015796801703773449268550550794396225786257092868573875610068650468335330128401951689912550530043978068250021211496287478595532299075248386132362895410921708530088915312665260499312911503243979582782595169038521071926343990614522324883960896651347096532554186206778626076737457191116468018493826482550994891284914987019098227104750407304312462179678275450570543472295578450646276585598636321926254035867379414346535286835068730090261707976007881444913555117021420088927807019892471556080618089532863760194782426940253826202123166927038409773630111238335975156326102591708904780506112165636870233029245978529088620104060465407143017625151101430572734272774001939638351186395816268536651710307813616631265945551309845201328560460386721157823374102601366647677973971604535518216894858696837733377044977662099252686608557548425166819382098139596750194728278300741725027032507105370023507885679162627771507689209249482840621090111277283458272797405136789170427933548272736897525844923483579028109930049008151975072917972750152020655609101683524811715445854332366939965649082677421147530848366756545549244790887337476531544083688787886345339287809911588985401127316172763427991516450009596896913812090331166034203001165428451576301632021857885808092859551708909783346332060278059403319757239696858153901955644512444623032122782307254518261383689928738592356235132217827615851495043254404977231703444216268909575096090096940197537081415493417264647806346555125483281593085619896878606279620713088208438523836798217209617595579030468190491458521085224383944080393494975436548493651199363509618806055775251748369720650977415233546372794829173737807707049338129794051245448722662159775259431338186781562961890667510713663749907415125283277219898015965471860477684135983723811006349316859513408057791951829631655139139161667471735786528570123749980948886221862369512028102345063277118846903306925645026121420437160283897189112909633500655435338282301733723718379202645018364490775467034465641762578915614062353758165625757978663584779052991496791766813205370254502974031035603530072075232034684911333701977618743314312828167208856822632637340472957743690661365285477562027210042236156960947898830818933238236057867650520033855661456468895507742984474238281394744014586151505540231297670946688331698834300792656477291576301136276167664493036658318838282894589942057389979402250617864679832723843900060654068454543189832480357158563599782094219744848073244871285616663071606203516176584215279390846654026580057460892755301400836188379049966457293333567452635353028067164526772056936869378932454231063122782193487250253702058998812659561055636444729069174854309930953394599270584599954254423406732541643535499026144022239427149520059633774559124462686096044157782299085001472917735262482178415465940501437498450008807632326998844378430171308122712913994199727792527985260643345934041655277431725677626444778405416254705027977881349088744247694622822220266364236271934799600715941391195614043753509370922189235409660882815250192931150303434040492717803390897447717099792326896356384542480067875850741758588895151440208150856123454081516195521542272011130567261398687144377620917124764775669766143643269107217856150348053333457561016344859710814792501868453819034260424420508944471300655247366762730227470072600205613275381943886742036415456550481584316879806205703891626032061885388354675704483582016170488601221688226475617465814550984476379253415633289172055611677460273798083901453221402115971810638365153506112343106581959054736833684285076814905753537326440068261698761646407528604642733753921842498404462918962017610836092883175013535391654317038462471092806636875767908086696677792543473403258781520761360794419009024484430644134863337576556464442338872684796481556009091910521297878834841394354775664761560013552060289320607528739127963854166805055972766332266095243342686792052574982151479437545597896203846264980978973235731579312505964885877638137421248214610790884786958270194572969252915004824587408832722539889420044314309899895841273256298696349764161686608039596078104072986125905321726359771027539185214954869779493794629383165155596822400709367792750474665955407103248318592463583099698163285579031191696679062184871482916224007411546207543370764017711428528330491896768935588761022166938338939154425569470502915528321575156810953087617575577204937113783227741781964949515477577897530633968797370435799866240704812023689769265208406397254010730335355517307989237007346869461024442617242075047528040243737846788492895063003794694363100401319289185218779777073111236132675785195446434048035111167444614312012430119819909354059824517072932569897799965846752790099848286108121409522688104795880153714974704398631168467018048582443027386063222245954925989096215054714866770109974057970402144391115940880341033627707398013002577146891673076422752095443494962114854057295192466041355955842507552545262547560722792302258994102893772134605187619411693540952123969588739845926495304045217956257184320915389390455175103897827854146278963288064709469258421663071654803642849916550668480384800351289560152550131006010557662696263508730582341799802368675908703065423970750481783811531677656139408107766938023153171207612296090322968060004655833177056955803418709381794289960283515959262125924892642533585718281312290904640761338448969939205246256947140525329404801850365489466447129436915927467738876901721547274288584489861652768179968065581384500285973393892897357093807122404090915966779217064327251281977349699374656885968204515776845898748938105322979741690591747231317702316040528939835895323581436031941701976106887960094665858790508257836500573513227649275801699102056986878570454941522368218108028011260604162520333597559552790561877066779690952477540473234695647447004405742391153923769982375079158428514533431594568749011588038805345387213738757571029901334174752409412685218100313855357791024310032219180975394240506948151925612784703621297827103487220818164665816936127194561954310226328877229392335891785148945149745806873494291836917429184591935531090271528899861033875113875665484600632138603031526989279914212926075499133915160830223120156671707618384830013461682896531314857092979421552530230998702639551385354276858079219607190103968383613725027319879594523001322965137457881324145594180610451353406016173112143674455954985376952797413920365539743572792095883638134499934095635317706827630648836846481981759053183002882754419094906538499940579061961922571499533416796967720925390711631152463982120751563302141263657090279335821521341974806453542223564921948064408526353416766432995771141458107158801627703866441862187725516468209270370134733757151218362332340196554276916531583295829369628369117372003989330195780251976145232216960402902318461295832162026063355361229585313123040766744715274711155363433938657166343974467115982658619452303678145135959668625809632578161682678840537932998226223994439403551839500628670539553915537190573012328020507467702726913995594408549654141174268916208230929241682027845577801233443246494700638414674480253399659575848373803277429578160080748062682468431290616290444484982090281473366769182637717613954537716112203875787520759919450561250427561536202291205792184776590826061069959924503176415934203934379893045772075790457874712394366245230885300432529348644744491751962461433210006968513934208139451094108180657472369049760357327490497842510246397719700177020526605978882244318455600892295119167728758031161766603677809942207456829932545575862390128861595287480498122768238095172479697791190624602254392317326702233920832548102290899370447659269649240262088159848790195984437019931675961128681364993344625551932196979885152268569072076514779686132566247035656877797689713300941911935452599193897962107964323763620587575003732484261903623291740435239013845687594356409340403428308078390202451756307580423234886112198383559653037234797892344610783105495553052940808346498344011565686915783035727654021574132302155825782305537641567011471891001001248978624383558675264135814988946121828031388871442063734075805295544421483819241922596452599600214184982598032150330713043984622972426380322772637012525868056218605729342293792483714651729653830007938010300432165184276741701020123089446475113750508537765525031373028773738993923122998390046842742602572200556582325143026117964313405435903330448453433996028538743074789200891937793199283863400254393432104913271352795613641118145218717189469587305958595527649195746463413656050909803139728757754279393166866007397687427919263078649184536661529267451886713382205942888792101258456861275157236472019312967168606061406003655327942338809121279795168611156154141358654681656266570146871331739419438864028985118658529396921377805128748960029087170357625244390025041090595102744023652831298268709380721036061986174361888675952335110555557017029665990675108146134393799583159720774791068953059282197065005991312467430130894282446549008996561324311584434406580266727236822316247205243406028131745355038242629642760483246295898224386875870203320010231707168041977621288727511487440401414825843424474039003051086881521726376397375878393125875219787144671315654115612798731896646815933916973267382294336746473650285890863469359216121283784443931340161994978725769731269105069281785608566751333097064835638524609848230517585023986154233874661776976884065282480366384299922734756696283907182230081574784868492607809405610087669016641035790907484221019071522308209438838458550744312087167608687131620747752064933921331464954254287851111435041574918911177836701014824270381431180476742390848408625581791232209862182467910089524545215991585098081142608925517309002080718532662028438011494889172969248321910190590637006108460454437207298390262346892579251631917615151941843383280016156603065822312053018671799794879092126788698524030962127366563498592314387440822123224746019879254435677417926034491282601680541437123684570491679866964822856100193891521792143287627633583345136377241560839628394389137827763570923928274301239664100110476572208569858614939898533519804389371967502832718823801963859394337106674961559583762909033434703455661101412410857315126085504282675671320258584162409143683785377305733273731718089966902784821869911408584256584270694168662063257945359072387655397568768732485026651694680282974317647674872499239353488852614268558938937683465105991134847240890155000564958722695137065873977904157452372805696286641828414501907990748187101085666180657068235920652267940695882682442476440554917920984985942333559628122373458100659068237279378674093903371503478217858753283476411179045995810943258194661157198366906393824838759947869285197812012588327571183427803745484917493699110837628300167300086656421847999268295910974796251172359024068932701351441251797068530622837496614504331118348748672656050707650181375157823722956033805668763713002271010226651028285946772033855884859779746272660432865931281714634314972764215042759607257569342928751099983962682387550636020554258995217299328539995930939747948021900617812954594150546804984654118702101061955583010835001440311187107800972033776471707256775500188267084959488036410518715700456317967422328434995918141354685100692821242077218508448664618553668298251709341991471135468710931760032356250525951890527057807926373069110475565868525509570873251740109084085540399679910845218674227591095065801844430730229091389739799132733114108757457493283158997368728916342930777831699443478583962569315784776423038029147091535047423339970813455921794874108995444917215077080831934460012106802165797606825898359155552625233897352795884349103946578920726876422107169680024874389836580838751161889767196754958752898582361349072891903087966583373512150531590369860219319903878664302466026986184496391997902153786181014966570495552441170329579458633104723813149597718861845897881516922076310212412930034782767717998945982307236528956600444739729647672895596102640427655104452701624734838390031726565642247293591274620262204323827943236566229977226891267751072900042150624007083037164475221721221161080069407408691501218299648767719726680868892845341527741777907005975455326473201654037578396748809965991562839250143748366113072507451846487576629213885384890139511697167714561642717340181290747238791159691083741349177621998136299763190795028392011347339926385131501017172785909453849770215089098563133289680841068888201904330127239310893164285728708683382129601093283636189803965637831490598429097801715311730901215808592141764085090888047988155251334230999288940632817401001063452221194644896347507410204622035517343715704730994395104317364544977972890084947422539773544529472856087667110733566023177226272387555629418286426092018306335319760915557852113728363518590661360021278416809894781259277887055710977384972808187295978711840416983116669202151058886387311614749456786918320115585259359651177189706886817181643631051010435523457393369970081751878617158132336121448942533576222034827561417384451850763239131714252492142282384345548681856472978649630456424274415089092863267397772248837521547343497795587058328225426402199256136212660743334115444586103619762529354649849398701052486789981451834825272285226491707907385030905766772187143781798421675307081051815099135187405291692261486419389418571362874349596559909339798439628217982630166351283172856334038660033996030874708730780028670622818740978969062297520758164194802218998100774735107614946408366792567601965177761425763570459817993118322673681969110738591728765192560268513351664236806870414392875255460417760274812947401016471001918693613904613898461580614388553865584004935714823586789962016541252268152706851325788550744836156350429909106870945421375286054905592938938052538307623708864209918940760070008820978265928008603133715214395588459843624238295940018951494352611467581313377138588358212389466246723820783127971570735281932773600155350163705323156464226944887108224693058102286534416620478057958027658399750191457089664801762968717223538176522548904274889484216683911740731354052905142870114405984426938688434406230023217367039252738936904705037160234341331381992236744773904216121511420960635896449340746005383914041061624591063800128839929385221451132810334290813060010147690058224914814925130204673388842853822543767551674140981703191864089636641903332948866938861233228142775286085875044740741444039340217754695752544360233255043033249983146014817119062834555671479145494694800153890670019154834976870633744413535640638223554523915031497716252662783591531532551015237255703562394096179133711895191859043711120312510044609616882371652415809687388167462761127914789965101220928028748085211641802886078219571776443697690254429940917244345236803566279859904675138287146003701977647954790869919070449648909463492170966053531650375818293552706120416093959930390187816628783949021478440470116678968835852061904977730659982023296069558982977082715637223883116519741222298101664901869160332829148465415904666646294213233889491178712371930248087734359819448464663887416425777884413445747804265410113011614235912189163273475429110855322098945012221713636561559349241711124200263808717789433166721440009447247963151638412043177033116015627669091541092406973958494438808287826542789174353115207919441438577198850774732885165851001362972683355041477331310279746893244614421180340227987580367347017829229862998025193988349846172665074416999129727363366457686706001075173200255168006837897849666661254229035739508257614018358969339270631760026806355620228722196970153159222424173924434850744533117792495036162149831274727822848737597033894230142145770613752584894567149960964009828461853430692066547422084806335547458035444595610354313571608775663834680046003690598692517252452367279328062015637249108983357448301741746780230818020734044754485811366864868826664262880119178154353834439821567610535511945232714869502698940472289296173381526264472529368132841910224509574291519556803032168510991175514571254591004698852578341662223366160235479587594434806307266333083732633331012417716167027134956065238802020526231170540648313896322230283737314428373053938609786979311198866531532054304492136596786571941507535260157116097097910332270050939339858005319437177412640786704879566568193033264570394683728101500718267718558331880149104315410808300018705914602202818972453640832055240625545166982219911108548940907078176702126563910643348285243021841635420382935420885117955455205196074712865406031434487356084866531002253590328344705280701213274737567806109165813202550045891531221485257022506912480172190541145209175031220599568991029393242685001331856964196715213018566410114605056459524303675841363582126930151633860330949498074827746121465767064353031844064238586443969608871987452558176883633365228171214771374088800771641433210001451611437541263876553062685791905341386844370568931220097302137526412577166097110723897737436549420775985045726909420055858609323025351185378051879459716256631489118307076216285020168377597916747010907876818200165220660531442333569191247539484371278493604381556368650364902789916917895573484624429413256802329789097815947793741023030187997395721670359714457111497112040172327465340381096795985636035817306168363385486684874607234613455330429177475842755975191629814082157622079979143585406772525155217311427534804811013664375064450876220389657282781162256387758102036405670493616891974027796609793702726694018355084419972709610186611612312156744267124057671793530549264484977462098774935246324089926886355313974829961727469884846335967977672215976337488526344818606303857646464365712047983879621266236225356849223892677441623589163485631379881309142779633434632869507625004122486129562489561321916654551185897260235222579765530617270124888357693556953353489701951798089060289400657013372339881821095556023245235728870120751318855433772284027781725348499134994503942360008242886995806588169316578819884925962164567614444925545011177196175357624352966433910336606550697926805774062704583065660441843192220157292770496677620930560956948312771822896265616296597962541244721146075182092935511922552094443814199474669160882350722916764096455556343937748188005210719701027544503857994487995544622399238559745992664940865904257371866058237853720342397974352019379859368839644426318813902598461628345451376849082312286767333557146856696524068694617052672835362461428634288111927047314436827027907339975760238258550185118751491535827962827241599217252082813159472316793589799301838022770582186492847794610277435763151604479655637366310828686856283807934462671211166573741665428377888661028271794713999121005132767855164698687696126879626886729586077549715762638629583433179659665315710637007680588381191559462425722128899880691849029536015866481425956567462910297083674573405866842901433240562320813341626792976043862407089469214253089848020150810542682598078230380811150464685879692414602622635091274208507505584914454800361786288571381191988151466519004204718938550158595101335977879661023878437532919994584360310670166171693142623815142725220016789341696477472234833709532730877238277910757012286949496295589000352476573309566466752369427393172641563021129965350935792891537571850526529433178427376702936377302644388562058423644646701570573641432113613776460039294581016846563683979616569525501970497394011243812632364857153868979543452242208476244281772942648275089806123802364338456621548911832393775625895764382675769029915858682588448282389788755558613014447271958926128520488093455575307608094268051150332650427509917046976253785524316869605695326161109150500310767652396648530604841040132895737478821289813230954169952029604641737552011033523674889641171521655300038968214452964342941785100407625474828734603646083088808443011344749880099570872321338730034871343132110174174053531920191477474010833032434230115635461189329567083473798991970886263744458775860695051943337431982496818334449290824611253745962976750980431978977408664330933922968028406126545582154414751293786127486530916666499539583413224474451397237270379873340846497807147645928760947653993593270425343040969450107106356123008317165346990922678353095543862530244502427010012801350141346657453874855040698564624359369207161984539994108010385172327819968870483771273338522731436362541713951486144344990695442674471634178352863233547668587763235531974196740485658459774410231888584286143026259667585709282978037871953729203681437701671529409257039427250615876400815227728327846117165579717653913753530330451671063728800638147514262113443559908063583800495218944095230019676384472761419793069933851265671035207422156886524708843265990841931262419882746162714592212958321998421140153287256163023183640773098134080372778959782974736418935259858397568647269137711422813325791254356977086259635687293312982150628019056504029775956495063883159034660028542599305138832588088391192555493689758392990689523340572167491383976499083199319020266706824643467122089351396333949104792881510046467170509426737231841336979340929719215933156720988476652962672124204363316826102114452849874319666681322340893730448327011416711492900388706735736507209616194972700150190716730849786811718913671942159394652137614893323002414100600843873843852626995198170058144112750577358679384747190201182979474317088963397648549975257987752314910358008137051513209062308055752026675240969160820779391842302013654729742970862850577093207099904497969030704457823588458779635595976848557186219876750461879475410172475914167393267355475174006676684225649787984863936520872459969277547388709231435618009804027600697737577964618093349500817171962103219005196893585474370087296999473954619145693684389728167003553933111271617265708554951744224299738965291763902119953510320578038870201502873243061801295790513087780749478408275220735603178098434508650021089831456400423445690758206616104779928245256131343385100660097779722093692318538608035528082831435712023635080913633689547538560951715868433646644904824059498678424962441732724515270796143352626942777257699315195825935916061752832100623234219892025368215949586516888670091438889310295106544101747700795666728359815643422073141925555406260004586291095805246550987944097357770000431944231806144185918303225496465225495533468200161789127418470621378446660892269183241597973262177223536739577513065479426810954970914988582175579736462379919981951173985730763184646267884990810783779268867733130226632595714180471164292443301232474238908053680272581998973684926311127656070385026783826805183161190276358027689688439285299107764918569226742831345703025012428637983925099048029287067964432046159922410590664047251849599200581984198832781395982289309763519664891175425877009200069177333030986938067851740550278926403624961294110261556802712442478905154587644545050546115038977541735831970897314317258732184799236785068483797886580970249931268234093322207678722891316802794123974046347868007240103172790431564272128209582273692121104471781009815300065495369487289103602055880915519923479742275129972733158054038492967906676620920975089799757573661000136869179059473185831686653452911077437623625485531735241442172040926080854350907102043127561674610349269714743123003741469344781489704853477850911474344904882472207512622764187125915807175067398152725009058641688042002157946366266633581693380724176376669230766795534722876759459469808894028658153072908742532784871166574230823855991943182203946138027661087635738087337137893559296915368034834377220361292428655503458768531208823611990520506735515253899284246794350854360387108506126698002634634851487066873681799913618408592304083861703314453885107914830693426199800573409118791983189441200095265840121650952724526150227370368762922593189451202227652302590777765675485040854248299834217139849975460076527407225382761790951559506195919569389335367321263666685722605363819474767733036330223036112781342295374492822678874370692700361761764403183648852858282214843784639830449888084941580148795872899338370984509089560571168545778698118292564110949490915462948458509573293401142644382082673863434704441995567384777287835518014312869454623918335430469939327613907764342846819283319750574488405009128670567912029306723049866865925685201460315500406927918922449195872604174501425923168744413218521717057251655969142755119486304602520465006156933989199794664849031042147722114340648604493831857611406775882468484481687469633263234382553213789089513209606970935631701732312431694686801956000644849322732053522039168272092309643212096479477456484375501208382571689744756059419635892205835994291191581553249232110884381704120119636555825571289591028203648644925545362197733882858546016685486456611232508191816489605402325069943548686416090415811398792380078506820067685330761962383739023675861087444992381815717617541411920990441304384788488283590594530045567815892542338636815275842322077471314780519822023105695343126303011548129278023605582325015239743720965503472276911989718601408966742706630785208103285788779379356092655285939047427548153845687856331176488148382249544612511305036150739641684821572055477572472778282087275503952236421283490078600125207325494423792003324073599875047011874095228885009066305593922985732018078239615744288311630539978655736347145527826832505327160295516875306244423532379814288992591969679636669264152860295814343279618696203754310903760987204025362787845996481801775772564293240469862833806945736189741633843594812883877454070421269553073335753705970269755393604787713066585928063111059242284768402623262470772872801313262713080586525760017200171170446444708505153310904627548879104464626602329151410019765091281520872311495778552553908024108237339218584650391955650258634481095561345567353694904594191956466946701758155308877942159197352459790473762548412587489307040359552900445474192993164735980115783582051908119618364946662951225676902285267822585807614231044947055804589360104187425003747353612185812914450077093822391156524862833103266985429125100432343333071097977141340157144571411004391123570736256439417125710834363333398156791356838551126425237793424142819766632245742522606003227002222700269716841884464091165969066261338469943607731762495470248245878505752834715840077981832329544196074849344951430824102870626108780119824201359204694792577518316663061377268501174824895163910107766169968174813992048126101649201793772981784629214119779987568989072120776644120385426733276128490764534549752059296174339823528659273543040661022848132372020717252665759214045993422307967839917328368485762336744994497490571390779260803038158447542405716538122942325450646219585320821238687539711130107048291389351641209911812031995021832082696662330070628895538860793609383877958902835221848330331920132623919048202318713136674801756632445215459348785173872914983936434302755879852333916875796733162696643371112182218939429300725185402453777537957616548597716315519844237458353979443360888449504689125419184123176637897246172452203767289473408385313140835094687062020062734943527266027695855772160318985832515410781413014184916340942785534090859446395648963736282983172412522224167472197293795403450059113228515064307681599955702325752087062445792561137507575460260944283648035529485753352104736437504747931144864159271303486560767276204689259551083906739890311446673333867461926505582773106034674265295975335923846052933403217042961749819251717325274765936918238162874944685106737943820985729944540023732026954130677946232805079461070121738589315067948953319690731274332013990641454734796930151170798310393773491304459791495547659515791716395394335495590924621931432423008456785895503186244666653512078608113398047278091739011000057459368209770334168113924104110603327046349641524290711975499640514410119479066255819122101538467674473183885091648804420066733114571284653993544428773630033041746393691351790386358331276115566857428364341558696626335997495860168875921848031394328135842654019192783430539839155639939603110156030231222206604737679946171267586713464783760488899441955040670727303837765104330857988758077785048394465263436833307447483611016968797181401443084454666366862441549879346654844697778184843053966271058713133943493218046014459510701462628902837427452861757642682642029924880241811497997142267675204964435161944650516565920093262072855880039010301148738603385214682819258559314125749962546722946263481040698574287157559485932038088650755434722999873167026436702588139758479354031798779188873014940443132210711807156228938525410394157241857550840534924522626809327965248081237087008009104620911403689547482677509823551765541642277426892868287483266314653762456810447201306995972100532786788263329633125640231331499397495523882527870505458111207388476668183583381529630970138459490360997850442331102589911063747822031462555885556791241912884602908377921601449855023587283482516425084183307622365320189941296871338402241945878734732843783702436002901128275015831692381859341801008126938581808527754086047287980692611517216407730599046937558282235255995079351343260503526398931868199806997220709755518304227161819218078044633907866520837029273670685325804324284758256941141648913278067624288082196842064512427520669227621855358775878131194649986271972288034134735126468788996299378932147498038078548698206586888290931647358820498302591581036311276579828123397620361373551854332222804838682807578801485538857562903392012211007091202874079979691388579968124671064325642596749974905369133536592814060375202274738054073004267268184083526316527685849960984654880259397930824098427165300299628331570257789379485491809299643743292629594806317756043508564749504062099053264488505366403986307542625299620187746686767495265969072882138859195059696129506388339862444389895450196405596649490598496305810683111656281417442840220725093369373260412095919654388129234268950793775860745898550434018296844251168865750209082408093773518682548392486525899582376404872738790001527443863380877364410203992582068729006739813136799848484899551498464863190595522061585035200275202563337824914944087428068613609847890454739303878902934950756386221289287268064642479295566198617651795912139873735645237120237168372634772917875579704246038652044136709113920816700825346692585273883768266106514353713782059576691388362837637189257808362802266837035543570176502822991327473195013636919573978008998854775215568708341278133526052338019095510140194198190473143483564443823760796291118528484381859432700548762726330057995668036694724394416977569725973768225267710799839632995153555228744750048092729472140630166822243688590566144965428489959442585684327749772114202710133245756072569847687658877792830891921478072814059397250731168551633129066167636538183494006056770181647591036514398808085778136682731752064209613499261363026191719025844485690448195893137010473835905835479335553345132774804351689619572199952626253619216478862566465600316674919251928966661987917579895464292265579766770738164700843601899134218831640319675720802168770670102695816295054941804427934447787674049343633131645406904835209621428919039985695537261159862292451363594025688634085960318757509655282751493664592946530817038932163826626528378337195840189965302988965101301265126533380801005699918207770275789983731559547907161271055378352728031865136381649411749834076168492457596576777807417893655404146676021386078517315537753910344934486648156589236554645276409241605503987179360599465413296768481709710558923920428557637744693173622370793736013396981140321628361408388368010296129991407149609015885595790174060048311559910642012930128528402831098036886069533970975889143206634481482489351440870027478858178374781527387701581832801779361515267986179756801818352827837460647464972372035014579364042071727914443543709174190173760999794005868209456998082814211275522581769133240978066153179415609269148515040091842879387663883590928397733061841280881450870066416116024992861849466399934085046494311470823202990878846645656157906127508354090780976615690740084743036314315977474055908212616809071740243777130506129180442880091047038448640095792717259785994610129017275394826676696147927740863106811515727822959826607496646859439788505359130255594747649726964585789409221259219441989480950912576922590411188301070683390819032951856366443974701304052736659422460628918220620340901358678191073247083826563008545033694674966438776288126392707481300722604576190569477591430483644739064323793013619911788982421053499840780346291049816750040179026247426219692568301499623907851098291115787992419177124590202419045389771010840567190412745731946394239935076260980347959623130028213522850462120255056065738185561784250797799214127695467239869389008416735816275342396621328010503924938980005395427837078681317042256665089159936381745999785879041776399579120686971169540674256604003204596202991635286724796506955123556730796436362458416714882909889998846791331072066131888001352854478609459714827328550349660028411049582038431385469743382465191372556009670536890274211816257926062286021352120205087103893085598992545352636914410325805326342240897291867473648666785430029895894639116828231772873363460444640843394631534936584997501312321787150725027001959703842559639685751335355742209270588794432136325290014088888783990021423892178069241580972407947090457174404485268649071730716180063395289004213367407868532449391763392750048672797566913883296374523941829782753198434174502271595748011707201553744636482873731979323155692137663994301652511708110941922747901212060362352676942859824603620989741194706295014312042273994341249562046058241911832558147905040798776044514407508415257448335748262853009353257405088902094996898790281614081132523558415124907510904964598805791119227999188640729617824089474583126543459445909673457004529283506825667991675755814626575641828833344357393614015588491293052904444912550230161385285873544011156639123317146184615231402587074277302081715521894852579042086128006647891901416676109992406314163905575054379867974991347521673793174569069146322520598993468048532514514554867447450757959238503154754347784208281965697430366656096561525304600285008263960932379023950028000190824999194001886425737786267027290924460135434851359573359051403257195416832654747577814996322461789544474546704871272707492509478290288036218909978814127677374608145552625322892685247474439049562458182534855470628405660691330468016160392067795420818227658839855164764819489676426017626321909008931261523207413080846567566699552504544576807588107098325041779018344182422435550907896290177700433365144907976129437680110380934527768180881131966087419247406293891985535780522420435758734237694373679794120327646223685679229662723916185818333748193728381430441464794617464567884545059031621750058091355753449717786478394740802905938477888323120252994874477392533724428689694170939546262632485679493019163961091557406030555269259484270541722910286413852106475874424085420355620281898972019041848919328431820501224153525095129393518816938879347498747321669170745662729644734162237957075783074788931225351404044775318000812583052559128545988845029833933576354121687643115105079521225234583294157283429363070622473161259111960419341421374386580651812899412569536476538014908582057399421231659746030866006500940009767475484700744505829023321056829040966712333382709754055216618642948448054134133198128910382216082830519049103884417058540606270811014298157347913829151505819479871802896960204373611010877366878483851062217695967707523275871404437015131028619837965384627354295267487260308641397727434211455679086574415360446620238361356802818018779566664901884772675597438065631154247132836599262847757606188942610341764130357672333308608708375908457147784019709963989411853178116794339605508246103657474955738123150575105996542765514573055132497724210418675240600559836929616422377417618048177459627016492000254534157075085565306228484387820590070777589865267787886772024952055562121957891847668032780958341851483229215216096515386524148859420237432433329665496775450387840015944528680996134414425825539468452665844808457226877300061709871088032565259031257574309470349173418307348082201678017671268094699099271204614884415449505847091887098482831158695126988937029694054111976813103742535086060202895472112977981591921850129400796034369855317597003386457616151190715209352727722758880611047674169284850624154673271743094621999736906561875462709592022605427224255184726941022171361564626856587568763539557424457504873978870036837353710117159508948440503795080740476476753845078947258774665310160170129992496253348198675652718251021937975600777559208258388363037171740041284947190887959303687200174540165244543946076475548823537462718258637253031027574614002862263129275309133557433443471497144213208216597693709648167498625512104461882913440712631270627068745920617790252969439809568633551301172850720827906220719122644880457333672460708303507749056232551074896569496778174731410200915762847660810533327569778959139347938693819975238340679129205546342590245000139043274419877161271332131338311144144542513005526750475291701685103785114720885282442249596064983888389093592186961112374905746411831670930008783060788470092485098571993164605684751133796851073786928448235751450868644778499287006600293278674269853385598272409510058427027332648356294540220788872002764346671306503621699467516936408054185715539368263220257724317009547010777745010269741879538501162222850230659813131358717990832188449315991722961391924132948524271611676007136764630702838640745816632866852173168528913834905468259967171974529892235959045530842611039515716809045632210530530629645706872596551802231819662753931585945831986635789317634784378516475204062453904506513231596685710206805402281638054443831481612541681735092486998547105477887811298068873036540200098297399736619070107851658556866469075091617996514323347643477244895772490389848314802628879840975660642551535011725521220582412292343381387227296268684662738582203031245607047682953951938501760685547185843920876022935902437664482108865948547057599171461515483212995039157316066562942057120911419634499325505512876043243395485953039252627358021850778879842835897936652537393335708162808077176366099136296978463297079989711741090884321787543592211369901457964938164565745866186798014599031817865653876954209300950303776035867374976456307543687272036114579221281122914814196703858142207971773380423004910505662526414015358989376440122843848150560391784607134713289843430437040368465385158417017489938351667795807793643790020060349034811585930464566810299243267224877505670497532083725390658787401615582871685520284897542766477657818294877233817847775969641738098257484723972480152518294746765552856378691077046231520833968638951365117872313696310913020903517933957492231163301751272490251893653836996345879357744551129599381352289018127182874672238772030640894182925413749993671421181951372295590919453140765995681001977722094237459023258688959657047454466421552617534043457673758506679456821592434127391416635846835372417679267387777782188358990898024302879310335690123090489729839286000532153268487825455787827710806846062444440653776950615028778459432573355081733843337445523841159074462271268984106979363408476950919678201855891895490637064509813583469720806367249950846213908611898418172025542212319893572249167841554793701832295702780384825445995778636567982207248636732488514739399692417457098976758399413310834316327584998520418643903603283196393362863627345098127529911459262087019550989601131393653029832481426085738626441197733282666818413139867670347634675345124193201238137091738950924375982723646273259770248141549398566510594323664263620857030011447497073203651586753047882282183921343027186741787448506848928636245802190383801449530082580462117192140907911794274298644343695201250109263609134289993064718589724200691487971118470816252401871780617810528197762273498967184359489679537949318131494628306717680258153896540158036579078953966223047418142015470848950705617364807923160390449300415647791290400159881518219503100569603045615348727207479857129162081981978520386611081824917609148119833446489961708976751264931814855610847575386280183466315542702781178606624795963617153493951812873831012485432824709578817014535574128096763260504472914175940322883106921017381153955312310613661913105538460292515569218421887660483716769191890453567120693786994133748707925236311932600026449028075572534944969945379626072073436324133566465987331485584011079602016227498396447228609613761719187804448875914615037463474103474905907093269516679659047593527376662322544248690923843645850504216235712853585931291897998644675904830386048013565905842760276902414347930241277369948808248216538755442547124302372642424113938598023443611922155016699651322510833828336252564822586807857036510588265585018260315266303219977001988300012292554718206263752583681025770445599689191961618536100527511587181351377726283838799265290945377698032512474121393808288842758815885459205714114032558884948229115755158156265168101288524724099665176058510313642191120623326431679683841287447271612248294024935035660375476180989608197358729309574474785684670978936062188720936401846195897601589217446503542274331509750387816987537380818072509241890407099979915841431057951814260531907529155993203758677867241564327804373966182237370908841558840718828048025194936621343804521590712056089436835166425631839097213031204462288952689684719297730179740387542808382261775322851152636613115071420412999457070996381542651777630590257057482983239675796492560577534277274278614463260847741767940820837512561285951580596367977276565520631397286234365163792813449410358567568987466589944892537069699353662268465774181112891319633062588312198462133500342797453641551693192322915315201279993288300803916484604943074935790073899088545178128070204078159181941320137709886388961835517109653236177464347492739462055372295103663510214978256102474543298817599736418715495243990054172718438643743437969975430089350674709833549203061116537957178853181119502173130079615208343925551008348359550635075878262661781249917072576479979439018554785452668571678017788110070658101348703550751749389681003213805749577321746517083638444953591968037481716345045541328381048064625000370542345999092462635042733051437933905336050073343556304210177775607826755604555403318516190563084599688928305078528466172391510066342939167242789288616254182617973493091720864684251706724280412766740716272415232879176530399494328760339644283124778039599161370216128990304541920729869791228948263586949768195909047647990606320194275669317505422469173279847419559948666410871203377268507648655842966097658582087750169952316470341644332459018211541401069595917726627494646787605512560429806139981829184568877746581380714654248696315173171670287236487209171441521291096756164314438932202126971841251924593250418491350407634108610533065843167225949276203179218982206224005628597952290828976702235685078892870668568529194711706435713717228859259941752361496249838715485233228948822218615255911480247611823771798550380732104696150688696707545513947326643639362019287037599386541698118491042867767306127957961314368701133804347865653798542043627765098330183605405613078466383406027287063296761917252005858221448892990648601556215237793663048052079371966402135109720461810036659456236071580888776990530301530201568691808968311512022583718677716506370639247360625344793945539524026322029347912676915745789888773759333976462644366389033317444663885424972395608473594517246107110353211936775021429817972908713929654042201277196873818149784335448830523647575081143962201779376061552892861584664351610859901297120057419047097956299990247991157205340375687749471654234495336818534885169559121900539399187645282539731513613476781236706180329911986827056979138568230974019816979076879495813752097633887629420100342650682861993359774644666909442150490926385679213968837069050590110801927592194687614826057727629288168718171855570486350349361637478492100954108216113640886826530181372635219055987688151478931188078591609249825981753099822371636150375674240008731167188763663509536449732793522459643169772948478711148652608782317861236594020860640002806483099369161090620841720028538491246057482963366760955670255499073022442882360836878924831076449881572523666120720438384741706917569972299829886427373124678036333039360668922491351893414266853738500810965067024112800198116573248404152671233044045919347828138609959431538392030498482423730774699252008117546352954588503278664801685906761513875575748256806759919274453503423659654881823579724533531867217063836301563822902753970025835339289832186126373825638172776162961920810930760682135603463272886472721877930305242501628377675783791164219689650405734236761309172655499396577335286450956140897232880528284255782733821723797568589249487569123783145570356222029871274036844552170518607519180633623900205700767484096443301608707092078541952488178097851535656211423021872992150648795672367169350294214434467821632477335885794541917711171534535664995265695953082643684305324914133690507343805680367193126857027798456936101156483715724402961343489109775840337926653532159974122244251897906427454477851434872829860217594032756327182347624363608253065435154644122711973071631309512264231373291917759862037786226361582165715191272558415175151043380109146624460880671853907972091425669360862297412866718240019084153502941847575641969472740585779542558679492713135031023184788843849751448817746024508641596839878041893577337839844534711766034558902656859712864130667213586746265717997547350385141531241263133994665819227727299547043209151838307258115038593596800775926454559878140459089297537128856440669010375671429745624385484728383198045320373979144192311497286908701465150488800838441489810551977641866685626155874921470056717650451552176368652628773514930378364202541519586044731101012750039752355352123882333975610502067661342101948358174296783754357367171157351755570464584538788976522381702050139646732103305120103597765533714372417285325231679118280473283919478563441506444997310226977066114967006347829901819916933749606906748777993739108076337781869317748117171356209534077200739659706319495732877564176011799217921504551726895506164175386126892751114751758120701498609101110917450397414751250505829309475928911948095768881296057433256129568555538688388003797377452820698415966648667606640701866128861002682710033735231337019341370190086687728455320437180429545027916240314304846000760383022162819225852476511780483638439761590673988114086081678603048659250896552651573885245503244360020157533087496791057207347778729399150849613272788973239929378053353572622374781123097214713840778533959070568518690438632675412885416093662064197001013206167634983664155525014671667358218598444305299424402321236512314123774073801437569353217338170937610849399655691128317450689945242869901158157766148437983259465183724908305523072810142952695850669366093994395478479925418358166831168301767406053306862700931477546004802476723664442666782721548464163177929743803373095878447062279513214346070645205302071756688471813389740249522183182557446672265042419266721288380726082885417228258347185077850476906500395198421446041542738874923259009292609627982824810746370417724554881600674155694153844784760753779610093887272832604092716258891389935373235419647135694407420934106149437170408266199649428040309155375465882515280341778240554880063686574171420126799091150655909015662157654444144162305871013855375099325926948723961713059095462827483340848418888328013682557404326061513709651003556362092853704620710185442574344469454031712743022488556786096804188268009564761079410566808058417683641009822253310414989772401444757600108248239517748730619479194679191699648938241868009566344337326920286864563190692056888297060203682076625928703439319726877072026772963106733770459526662872432688340958251775581302228481534664992844616629872921097824407591765163063349481017285337424140015894407541173249971405367970631943908714264403512916276367866046863427402539378610876374977343790163736307583989394018358434942843984477073077524261453023973459841854820374473953784808881058027412814726825584237190421154908538756620035936921294134972539515132497164822754125820265311094479844377923768131874218775582133973660734473366461465395194173172880318330438658029122906319098273719132711281710522747422619109350769831194056572336021069591604629930931486528148650480319603991058315624605938129286597866125532494295844874811899461548355047601489895240741474339800247627168203929540102817932603880506022277600316283502074614852571387380126289863506904194692768420248796294416756139272931428732773157514741450757042154971357476055546912068550059855296596012196869818921688831777625197982365784022569712923127908117999714610865480752026793830583338618483062007807860612964353794579426248816315292267985656124570809873059628335941288490228074745281193486188461603336141023743624665301885336754057058665875338399970660235750761913651257593920606688846749695497946731409529885890026456191157275321435018879387733614763864750335586363485272766003517837996352367802714160717657469097685500411429595078836959307406593874434269064316733747445238901054302923517754066959524525605473550628592545197881772518323286934200845577432864934271009334417947047262717995996709404428577666546095207992308725364632038932875618249874919393476181854484311478747423142795135501911584569453692445636363319154103888015288440610408696497259389013895858083321834146072789704967480105956001084691267058801050355660778238513329761608132983787156092392329788803280567593852620446398504627828892522963085870571795725180799464079446261003720612307054634145376304087636672499535448095243132572421398802748928387281687829864525184737466644821155365771414192664580706288364971752036699756525250019387962505312343989146928259181363010496147307453249094551134253509234418396305746682674590963652858870985184899059601378461862450784099741398813909890553479214011939757134283293119544734667884177821527976112922653005875972274946030763843309186984002880668485502509661444992688341026953497594980040563739304336492099565418948078362972888593848556857016114206315978970415840786236463437902669826389625941271661411683500223090951303309390479472018686253904343786825044025376945103789387146035812688685609942910036513626518750570420914767180416473108546651675958881164244058066019972143592668393363011237750313252544708169024841787182731060381571261590215236309518707677329651792845345815478897753029139675262115743813031355305871963214200798822363659743643368156711918032958968762329997632521718463329585019681615751774145363376990345370395565029433194154123940909415205281727063633482511099070689536978232543158773096092768250731109825314520553869386660541236398988478950399195980514722323373872697162235085746717260331910917286794901738445715411630879022717707473895128128337386868688964424594978663594768672979600831987497933775209421785268314545510381215921785351917849549608997427576232176585740482313133621093776475941467938114974618261769304964304617806896414923734659274005020642212973301919753778060126717318658499671008336792922199535398114820921021860280997571622864623292443579545120949225013644258457302260970564655738005379048447488365087738308233476224641407511736951797493440371290411897153093619625100690091734424998143176044371939177584618565548787953062882614198736801095057312712842144158240462814864666104072256328440170037428220811202019440812522506208129297235865384922108777589053425926216055126030101682905329360347073374944947438783319933398252809789457342271614959447390564476562433877107428820432081342286114063069431063510010969916113993553337635888454257876561121189282633667209727465719139601287364265509046272306014324841277001771076777437236252112058501138823958579444871629129246698428735480048471211695097168643594013846869660012584897907631123861500138768106855003875881627696231927241458522636332939480535159861235735021577549427746676240404463046052444744195679161218616201683129970814969298564486090743117514343169486782492509420513846029680410464054574184866901456899829767600068603590121568832435822353326459959192385603502310266001374505099490958408037064510364436991548072090696296317094719028752211194551958006242162382389217066006559744351107484933366409187174304538706285302687102400687357240483432479918983170516724860368036363106327607314511191488085222614806374996843895964261437099596418427517557057890269784291471118575430484797120938576719844129167709783418035491561417243680024034344183033075494073503466375388934433664745386179189351648582369455691616125932555456410829583552297426503811490967845631685821597226743791339975182501472976771026142194687338067879300114532190058200237926644059639525891066972466130841893468487826023016358688582657908950241946632276792111788319657399848367082062861243057626230294873319426077683433814098727457814510647879682836887709493022774397881200973506174538508897521698862996893038088346156831860229330606954900176649714257471160013711485911635895954521381772704067990143382084386734955764297855091761614327700300716652284420803828414517298063601914758545141819136164869605640115342763490687643244942271620296651873036354059054184138969884405550367905939558529714174157766451445503482737815582833805853207787222902038217734190256132232813219184976850460001125377213517239038330150896764563974027500471289019620522101825530905142201972100366866808385730094948807809198299721554393972483896736733538546158737549804513106785313063506445589967343273176347754941323035772519597262887181030001145309834244837840634281302880901804724282077472495985686831788588602338487109644763427172447161719358242267798840400866914402847689115744650072199314439452170506460179536556031830657946345351072979220260256481608028231333937085154459159151497979652046673945057912188597836086344008744828336195150492240140272634024889540488805376604815638276943294496026498092273961315635019908105622105620084800418407122397952195948366373655624623174876152655654797213874554820697423943700529339583179654412534076076043626319273325897070722112578480696877552560218991929912041918644982074038232321364054768025308766468780335062316544099641044745614684157553938114092710252846906263529043117858016519959162736588516765338280399945484253473055913882873736219262963695886557609642761939206400963623909183810690598146580461052949638001863396131809067821878943909003378416715429174017567388986620185098606950827153282679638108427814827420212601784963864545339242764581280113400841802090226674739318733771828287828062594126230711873350724113584901977559290045513075586052469497687081060106792132599464184562822944356975513668000914970199081722657312123909637119981890240522125428080495466843100263785710478252368302768758281660832569701663827488299333626400269982483334420245150945949795230024906243818780716373103632398703072681681800948152306965286189797858789878819903151368651481905174394658984410008019166459967209985183701785690534707757006864166329155217522826374945790074073182041076031313409291561881317243992745981180699108943074611342492805924476807800431736388118436630877509535072472474562067528152274031644798493976895751253221188081586905186226659533738204374781056814900718092307848412307285271455424873588567060818390002869022537193836024457444492247201318008318478091732039832015518740438247479499784597105358106945049973453913778275667470863234297407828383900958612408855628120186361474211378290563117367611274371328409394635030488876628325598803310504431238101887082962421885969499620377078190790813021628152240290238963502931675353530582476790215663453182179679149707535506915443091937416150119010918613004699873011096096015304292370331998259200325349836318132124698425178924344713276044455006541375027871226204333230690634633187311309879733890654029164341035557724772390194031267364581304125321730527173369431792983321394738473543306179446111037837069961179523025211452451078635288310034748265929439108314454197638626652405735595227410036221233764664505846904734162859959746349207661634315614226553670169460008081614696390459408385682239516130744309449587097747267540443759668944757300897501491091775575636186022456934999059571812155427120678568559310587277521738383878616639825031457731583679626694467540436501801109545968293928859560464141646277080353403804769446068217094576627204330369121056408311463520351102873659726082949268020116119006567960240764333556444641950190424656878861368540802622018726481327260305947788207826908475580934464323458456350407703256295117309598422840472643146333511264928064542418548767634934241267328964234057725541917453314141460948450455896951515361854458017638776672325356710466854346990466803802854521599788655550848578608518040773021122550746486878287562940662545070120438148602162029876385852205374818494103465715571853549962376392388212502932496555838959503671090577223831002364752261470880312747481905027545602888257049593107947398691903362887663750660385450787231312959743509270706721111765164019950220699861533575319315846161324241499819755504859903847825708801842720677689457832276813219982474816736309291591022969810089310058945106152825472232045159563579630069907408533865310134166015682376438764694928840868073888788760473994827323847661918350650370579219728425659573551328147269832760250931180878882464464357888588475055994445012085132649004304454370479037631678193577844206933427106265122764714152086053596511305997502413508806599532244753597711631033798852384259101707805895268578408030255159150609308567761103353811085167169056582197217906329556317537088944085160307768703210018278440527123714701931670530065677648051675893886085842551415443203770072141028349017000816035477675929154980000443544323113955779344213827001985617022488741072486385277506873903723140069232385449809850484793872652019926824488001508945545969700847592848855973509196943821402476182566263379013425200590191647336561151646613994268745503145854291487688613963721956242228985236915961722320443933267727823534559739678346454562890717931929960727393852342024141121889470921658315628932489934209725804234331861439071287456950141698458411899126738057694892783531418067579766934081672998067830542138252327552195940559121706455742932384232573368273142922078851997020331069325210851538511047431853605826134471486699438845552304698181946240510619169466065652303590083164662927739171168651756102372189686091626074873076930690912120352316433069783567443394688649648153382780909299698831796659156925931147879770809627776603073044646451291539836904769240025572743539318763551346461000320382337209457421563407855199072098830119753429340874296714448606577974974049301047755255665197639142789740882258119195702787859838929507293993873467258787957344298097649702190624134355854555745117039414776480733919790172923439164545678939181220304236078268627151725057172104561820154780387125723381800086210225092942421179872941288951531677361267876425171134310969972368960678160159181746611642841868241202311930309326119024826589181127357860752446824213814099802030197051185971123847854947470489830030304129568279844719365747612563723636550080767395879685850064119923479302479611210197301822973781194411068409466815023785748483649816713526480615202456304109572487656078442163257442154346990885244199871819897218463506258945288615616552413539251443977434126220820474284712358791883438622318648042630647950015297278501893799352058508884071421109982682001039457103616785147140920373346457899781609245804315130481625722251037181423245588128051111557110913520419257287516845800722893183925393149799705512092110133838149896014469673437910067632581628788894570412120984650643518051453943433247934265645112175523783957153586587922907008521714883455884839200563335092346280487792788493182819412416356420443782882761238148400418268607251856324359000774328489059749615153313016750520459836855298840446999202386707471847751947898915666269549009915640152178685051856566516650002940894157600059786611923561964814507557805380039638927268949162954385385434077523619360861388626321293009996722847001662771587108783136622462646028082709241628825655247884396814502100213901405886053463472697923027980561535720971323203475943233403787592764524021706874287072716222881141072690421031769746355895168392541414584086871072372544852635347081039652934304687927625963260559563966268726862706185657399332742429173979017687851584503923025399292130963122077879160937657227375160487859497972651570696078639487775950921802156037731132128500593362999281512529585577126904815796891987045034263148206511505435154553024680474176375147798710801649221597284521936693732283734764978218765654241838692258701370442923168195469164397552496908089029252468937180110713153410414516469689684202297205137704109815841537561216893615155190691981940742990599428397837098140162117537359876259780632735321952887256626319223860128794431916769846677195994185188959972133681590412532185189462988525828500127078296254274092327500295547121506636647987102809351385927423692798401610858010195744909580192711412915242830751816630785790477993987826968485439971188207003022588416216382651068459316844453583044653278921582614787639158834784183539601449262823292090852357951145971195221594174668610793090796310132762184662504328757439320149578258089304808530462143893598493213020676047609839023432245595912663679550081082860002574610832275603240431092816348001145740457040155773864612544408008945609333418539968429899454017025320775559907467648562386446612959542718064958036807982170551368631840198006964869492381133914392423761176044338446895548957381382046184368794771551149364748617815952913437017056471142170401442768871392134789989222289160396582711538263492723705773382223478809265057239267734711911497881230834529274844551410195452903094843797249430535687861817021872500774721369742325789495374383926626985532353907800109463283380841947312729027565088464432833835404383525485905542015781100875842703507873200885247212510609578697826694616217415874756623759909486508589499595975832532001833820809743175697558261247148543303739045199852197639651589693440806973194002190826998035248508108159818151142668644805317219679016681076907278831770593398321360558072374520572777039651476277911605331611886904284737197995967519473195903602190037858681681620858752035450756159668658331448372474416702832381937667118242209178976526280057010979053288505015727683139540385812254874180730004634857090591586957836578118926693581153652601102471355200638095936822517493087440213937814068494887141804380981221540364790074031193919411339050422886653196102001185190931715886502397376640412670501725763782814834158056080531318092149234162255699356043149086101082269262702152633705464658887433566913619993032710598689862267331236956959762545621087226961831365038790595738325165461897359970172331733065884205592534177977196198922449016305529337741933467537675066428476821730526036150062791733376144401733138973997985932275716977137579613996638353049946785593292030902247381365094902743321798643213738922263143380205274337788878960996529373255410307569580802025931637364031954205593554950747763968863277796845677058429599293141247999373130603839558330692107641821466247300259027715676617627541224759803759039398107941087843333028813394822870384753887668343921287735734254751836775113791928599369138571799063491266330867655617740181423739251846318846764750764743763186061826001414680377493897703609472854329190932329622118859942699129360268561197977343028353893767174584446837942778655305148614499387979647515470131209672312869237214893236804959950401114163960543199996840820553816644578518976347394545614974867940318392933536219243747891770742600631645873495479356744098788215719348743850507859450891260584038504783023586062594367121076922011802893374074761516167682794042196872978143277400459265855767170442052023752498595086047148120765510660434238068086211279868373025571303573539261129333987159487959989397626486627650545976374087035263977369984901530242497174487437912029118483142738513266799441467696480183644610257481555541196064574253214117836798769033461924873585892949814755550750309323734571041662062053713329739850100517542537129607000229883596359882576171712857061321933592845900821187226047007386631656547072830133444311698322933501281296239348874196879200022925490636870233267338566172844562770381498137611280653112618588208488938750273353506837998489307678781672259047780484811998119572807014114299092169777558664805066451455566256612398440807122530695816532258607581440314630607675474832717896768139198813405951673681557461593082694761716208769226619673563196249228554842050311499807609051562131292274067631354782567294400895497567161577837935294584119227912117455373699898731318590374014931829574290382870979021600124124819064674824125349871620371740279535354295428197942536062484824889333296240068302227860410072561911442737455368070145852765023259806822451978265073982396702823740484213082857447675033225896303076707124798655021871725869782022775681259146482062117262080116172089779773744815761807858744787885392183229363719867196056484453349708292065996457886207965948164140133873991753963894428620741390411138852292822992913238484780573713247545819981029643244877800204245483121646587280255158377012005270240692310615351322201465551095833448680815598345170856591658597746758616978101019116400885130509073559606580911132413254050004250990907173833265271064558940989973962220988673024296586866745062569228182472188968071785267735809142055605471227179042822747400456407168414911576829420704941729822908245372944711641756127944403315969547228754534551268071726077936221343351386597851469294646044904832328063356091590266559543933969244472842786693142030576678398050552294763402761096266703319711386864774587929720147432743115315049185451076447742226240770625903186602513969374375473149429225230429109238690312726994387789756561095622353618356526243439209213508096882198305484020640557182503032279351782284715254170860254120992963307776711462700379521921036989382708975181072019639540579079641868342301601826301860801529668283913679049524844125707247711374141124203133388518925994724829346349507812705154290325722522299617655808032913701803835183729401761442720085801793292248137701950531744071939313408644904098311563018690068141836267405151380302597585444544085473727241842628114095238686255248943120474401765998602121317348317477272700327944447583814143773522664133044233852656236467739231728853058260342022778208814968339554760601797401970520761319220581022771121586258968874198366834377037799956927439738841622036869309612303264299416771996578139397555126627552091777884325154382842038928674556783540860774155412142253388452664361748767909740235817865744499194049950620601283490725025131781009281355567605508667004673026781992415134294790435090737910597075090407849993155331541275874428693261957911806686724396858562764353585634917195698962930120649584278262212917091802530076948296270609891942174715069872276080217977213294299627375611111799019877844188689229822408720448584550104260488167690228831175427317965688153125959027796660141187151974017621173139744749263349088961269341784473607692240212946771726550453475449971874495200032330369573584556047090240748965214219179045371957052664009037918021836947331030810151071979228675434134117987323972325098253235647570802945130506964048693987509063485059019503643957317210215021015410045599841851461197525981911848784987824773475487155477775860172315427603543310526307712414860596202090270295392773013081234923347146722794178661690860348244653005938966717290393583741521291244636438995396017569154238143602407847902251876769842379145929417442777685614068095382205019631882914173329361932976375490618216847467523600884390985756473864663899550642415273705781687828923756206707946534230085581564561930933701228835912725045255198164422045019123258500944642654574252558193152341450541470052950556083124670196621585703664585460926128698161073380380013537879240451709322469680696915818276648734475973611371097378695276997049828156340910728409125097329652227532059503158130393151328052247723851705849484855044881853497403107385105652397265199476806934739553889630739357931853638292864917724884572727880385840792837140367429526274927882446142623693412997667556127681725963485856150385866880358324104165450613786041593307631248572367331434395717282952523186790348042716284003753781405307894554158111363620062052528085980932581559926255372622724392397746611856303877559080252616989132914993812896971315955749173768067424037851850283015523889623138883628808855866795017028459136927284410449491804592843345920939060332540873000314031851422282178908336130884944732323629050181312254658343722447213398132936747879190856012218071452418623295427805944027856222607260642278803008742902154272311136596407172242927603341056126317931155213827575496239403665652034287114741871857010567174004397118603559591801570641516518830688104686220491173405507567325154165329775184215220788486604864488554888010956139191520086884378269735648111776711832017277546239059996048354839267119839290369580181420741802013602344030579821380001805352394385843024774325067027928829829955437849442095030763803324746708091539312328104460759711762228172631931987701415246419381070610617199299409546320124154713171451715292636183811337346188570874608154547234655771890132412259211217664589125302140789408575634714170160755710735383558123310839442962701409513957322400434831540406053477284333008785068708448920545446413758530573448089038152380587106714142536460567585697311545739312162031960544752975862632391468878411151106303727718077163801741661334849739139714007525604876014291193973236011375369649013926052530903073580231517648596163390184229530127969227425461580403234065778318298895367590005140638289363608717381930945007542702638061856922935632656654443483557822789586119990481363015159936647286384635519938066871996847292028194246473397491923015476330215357824465658763765693918595896396507226691913249084719598387304774320952715597982342074515686679328649740249656966619833433815640649878201585317638344058931694381229120275751029101349163027123286935807400582463003086729584703318877714667919044371919927934464535490282065183702013589616504181380852653205771253548618454118242291004188061215941352826155256269186476096758087788307662006564483309916483104073812089853450271618805670035277773021995661026682484791915284270733490118717865961276111099936419669006244072437818026907292873913959240992659185212845837222795613345045939527023063608921410582219400855939660867819098628618777395100360608493546880813338994734104380641805421459812982141394470720332967199186858396436572364233831102477981238765412292460907395035343174596752233704886017907211891933237720223371861178499288778755000084001457512940133007600807980253206503421401033757894512866349476233587432091554076001366490750215372186083236625324008916120589184910652656598333747798650390324250282675004583960940821168528365348411741324247649349511998844884529007695029753592658495743973462942910152387844629677045641434300169271828875693886627659649739700431029752489307742731747649915706760990811903402967164174209318099005329091454423172400293630942925787554978989437457463615647313868514407670094309001551324492591333015463061390177506504844723206200390022817187211653296227070107658242064360341436222349282952761819057195598919682166123737002005181130035113397186544567911544059408367089005950612598026653185664879905034572516608850804596529035650464298187378317732887553998947165541546546711401484895639325547690606621162733139676295796797473232428491662306074240312124129521726294922094514179444836413135729650798995295380197611492341044111235337508207642115115356258053928565733358515744773607349750730672022956112241436506384849126596912478813054217300725093164309316443142111625645351834186333652734006935202587565371170230019500547021571556145510770358301636496731458160212697030772327609921481034498011973327584588816709850770079065938288238804207534027800179614271040437981273358736391769572217873980832765975745545729915240131563161138057506652649418680714463054197183902517142551494730349783872975238760932520502961067255073447871294566701770986159242407090999993239508047487326339904274600387072191041721463851427963831413253766568319106571535462613788851101434385278598003044181904700528246086994286125818896105522087997638737482311505631006079808082543038840945775401853349777742465919108933889719036152130569676029908987455241389811085356520101372956682271071377960682893361829461496445640781255868531620657542285016010134871788312758019591161681284238178752281308555713571685114855006014001738262780140897968720800594856011262111805568846899117864076235648967142356656732129960710796553465459945505625876091212094555926752369940618427759925584649134780122014258165326411489975822221301576522536947438114930721977921142159956599611986606662670932433347117317779880084633363771208067280768115136022570994613108241332960386549217017472064308769068834609942469731227876493777090881669935161845014266127741209704236376460065107202462605889867669745584852619463578772507988855398845487366240708306502434379897609095237178910100583086813687550351483366529617416980564877565757806408704200448042385794894523680227481862483149281524284990005380542668954629092053188421313181013834180170530856768701904029948230998233171248064680593785846994475663237367923626337289458444965823066327250334126243452453278766636498787007797030935926040690210923101786952499141608896778426764851580789844417252684506132059642340487100973307207482429258877246259325021901643887522946264192937144793937604444596083063614990264135739247168508902403588217733671267007779288202745170582511480812337860621071599022353658447360770089342350366651047678991861828534850841614163476913556612298417402270548326885614781592196547991542223379179349002746667312916737332261393877480086051758611256928650482529074798897432010750489201945266257821861209004557551745069232363636643766837421718276412481162155470843045635097927591486832554400841435970647257233292258277054371807106260116110250984913368244076152993082769298686838032616287376210183983317445269082618715733666100575300493329012320632063954838500735852761127176719075356807768211757280615344158557495438033876783050012730108416669198313142249510581763839523540405542950554806133012194059593651917667932185953376609167924112486194193705431711245809237369923835601420261994162708589492329874464482615596021929510355765943129171430122665006658333674835478119859602027898049463731469569636477969668993210069691999072782761922608355572633891625633539957471928759799490101656267531951481908511681823975300717853905718241571507709130252339390559891867279056725755905421411558364539900560506651946837170002884720050277049708080165810303877708970502511194905716483538000688207460864487503394018234247470703473909567990853744027043519994420419756019562577879606836279196331130318453798403879575265784228567225150424498487536675453110076835101980239268496895185824274419018336952646559901091833097997451892393022918685198531204591199624825261912496981636801590385833348737234389189361341098394711187396587069046189908725684353165904665574110965888277316080883494630641985974438637019281605299206394674684054086495767797383360127744227843931460458186263228435490693904110353997777295611977354599831713097637913415385535519501891432479936753093549439348375199501714106147861067743897518410101218029799078819748385340858565545887605780449678800167860596973487848188204964239174500519495799255607080685980493119245172465246516305343143953136703337138589985522535272973568373506985107214401540202832923440268024432696778302524900637558908680951070432076065113948868388073544972771500030620254081151420173578543931189947436629722555627315845504906959506927766935801385146164764732225814171782977839053963437350152805511393270752485429984399321292154585373949629656178458188950387019829471880928304255687595236492427188424140957318677139023346717619165921257411428264905890216523331093767226997341748643650358727194695774757216135434967212674867556066626587195723108283734907510079269372479149590130219145631189680345650166321354667461636448133865072022923012862598350380823875492659387538693811793212651199751106699163971665377408638579796729906472733917715819484339552479722182595844759524737647220562441840041897388687327089660639053876781046603285372503292367789887523970159583818481475943006019510626458917587297913411812983128377202797448390325834649839544985099261008200074693778677347318020511042079860861917443849836267533727765066853653312050442246077828931465076161511036975235701721311298707400977408284723087925303624055623609637240609707070698784337123770032625794331561515447882582092224347698670092424000153386196134976296431904709751702175286899509012942125811922913855669978514199763035019439734284952547819989680677935170406422822262559691209599456298900943798964498415488247000699314445379534539485313467318520147841951424867394417974816075050455786501439428198807853862500380941604714505573010090406346850489423034703733769709208171730609167585923781069628798571563359820563668318669627575537908176044676177504155891032417221523026790569076637577997221125775449101241034432877457351259542716792884067466088692705039527029386410087537799921558741713760753458610321274995771463375592180987583827309126864760091239154525455850898193957794135026683060769854030144730233714544530272670621138746260958423585871359549373537774612872773535139797031843218409224768520162420231461062238347047775456500678999858904743680981848025480453399876483427264311879708417608905520979454883753347086823735588242487906866000437578519111289067349080744339086123468501068028112674352319022984381253392176928816113689402734516632791403669666734648296851429690574446668744844418521890638382139566193381868045754082153037355183871264534822573172012977181989575998354619394767605757149316021595760974746942443946619955497603270420896236366709069002680851367523353171822988354610180165626038016416071273140711522264381850603181977579809961568354350810901827710142403916570469754523155827890817563790721575332312791543382622094475848557576574998430957877387266971232982998967924859781701165293988936563882893093232195319211055747165356968932903442223831688604909752501459043333669463998060046668195084733159238600958736751805589797361209599034214170735454162119960885088961980849803734514925040837435897645790870945969213919659581317036345398660385977152513666256043403207622701024419226147479698125592019681551018919128883472759117644696645516043731667630925546778412503720457353176809822869232857937237806417634066943670180308157110265370676433871501444086962936558190891634100881645566712928924849316455979993499991013404602759543445974467382873936985890524773667274854985052421390587387976154353676554740704285293328362458099549664080066565120056404451328996130324731242571777547729245224286483531040912222917697342376376364053212501374892945016625120231724693082731508232575708466615959387517306894021132892794809399285586439844758480589559071325210343944730771391478807100785980345801814850622179817258304538814296056303229756772504142852897527891310898807035104629894744402364575071859851718948375901980394995430319970432852997166003563940253178807572799637466907082563593346372243127542076025441456128944814681763545776773624619688653707816984019770267687346838954103272042388885688834580995542020487271870181762787189108992673723792625608506152463810241464025271803229291327723658727448946298018276553333648586063405916291360914960231714538571069300579555768814399707768064144798270593762908900209859383657384015785879059044574611270085383517378239515927692111801502545317207103935029244066218261253266913554790561868244441326822163882891463107025962607155488106666387024758516982074452995210720805583780820888411083818887761649392691480880353703913046402253263408317538220137924058914854512967392907982268239599896995604557537323933490350416433209434781122903059854492453684711768768080273658284982119081367863427006400522319009914846096724988285596991111272350254939699945377129909124905829120834781682031562954579566359730292382083206799315687396978581471672388282896630509683169695663297976274295690403067999288205952602598549420882313099927416173864332730202085246866465658758571953423511521322899456188932273705526780419129641155958003961370349053441725970728368132735968971587663753713172690951336849429544137817845829799382009586370905815908213896679362210669456260662131453301922033414709673570648031198726065222340349696179535605001892188397995904343952533210056113302423965628688838063944627822518747879044755699307491042302289482717882227035242683989887844054455143889044396317822685001328836810536448586945602873847407838097500028354656755578090748030889116248929796708978487092391620860592424311491269877462960771440909673038203039056373947555541728454290127418443485447089983593197016788954936090514726537952698756894790851071418496680619478184322624781293026181811581395013364634450869394453432165678528998770083281751260401441090459167108803593168066558174489484810083130107924919950452507700058379572196163633457142362957248765331883660536898151269451262367801772646304380061946918257762130403088318455738539323594376381215636704904097266280836665903600657584069381131508589696173807454784483063105471819722974343692318029624926696401803598071669970996759991346995409920141299063749898718955579725804360492114015837345035303122683664897883623672631279808113320931133376505147209237237849079962386167964105763075068848667042605263852110184792926703036938168936305503932557146454038686751024519272142035861282666649533847469526670767862459672149240745393944098928499732786845687706878678300089222575749609352558078508724918856303984495027310655583358392147725169058340460751128472736505424659235568817200471089083240003858633824511562726502620337275259916960082348731590048929376941990445721454570872537043083652515015079241574043228841109310234443950445009967994589648054949259703781632007941057266085990192551497059806828500049990399114618835003825994563003666288006626712915066569914153297757340164196126459073240782049570317924205177280471392714975087865223571994055778950033046384043568914455317765104330326631675147976577484161942429756281763882673011927079531895155655513025272201405949984802435232009258105999781452496458350823582054684105563232885673434711390450256630813802274804656185764464952571121284280943010953928548584030424057769249653424620868816351444514768046581845391148061107362459188745790662270952370837590056541036753344831338506968071926686380581315419738108733230795898062651853122146392560358199220262882846798035046309276249260246950328594788728508290927722616785764418151888189596826703170521618527350732187802021231232869224528959842718071106020153930365360880349761817531065471077430221609630741657125993858789602215034437386810462550198332536762739207460639966569884126654366523248607674942349467535535220408306467637495695515798748759060099790707293452966712583408370710593170201081371255330166052030417387161379390439869712399213678219764828838714788205128620301065583875217640223354091083495374072638550717127060161761463906871622691595427786026517773324555562505371214657504911972875383625471208934224124940290060943575002135616106216455071867015173133808226954702052405359328006228208420991630382434005348516356064892342070305764975555229090188609503535304552216187984047878596759898684203554088748512337054591035491414101781989114869099493077269935650986710196232728407014663803406065674158222438441832213684984095592032932955267739217375482886873885921652087237738419499335624064547494798301960987844591028922968418463550475404174109978857980940359526025290104167562132617935904081641034277082708585432300269836016817502135385251577029879291308325223466088467477620409039191566694352511972508715693632096572177743180987694201442632555424400134882428529624199823942990838182763181723091159053532945110452323810168334425705890281749131926921924769339644525090330247469043619697283475226979159766632784251979244745114813900542937830923810409061143214292776491928573809617740219877091043815655532872697876675747740188470685489847508197251888335433364974331749942961685735640561345820047274987210847759220510793962978327424094842218672260092288066709664355891820380650995577193135943956995865075820146615237568075965670431748572863128831028829943915890858314308251160972505472671053144223622242690653218056111053733792242844455897027359334135658117227540614062342920542215354207665723607057028894530045375071516705185760740059494873275437485668567401979203871643552210453155486786391735837442741819270363645259817412957392348385275911257566707616565013003990121317277599674480995601603843169068980468993145467929970134174931163283005216675184297720031968283330730438282110912338806977270213257547883328421642484644032827078018750386383914459089564070358227527010561166786095127495968744737824296280789904814713184749156259437687144155260368101886348045522268685825232075852526840407200879632618016195377815474602837849555804250208291233563900630426292210570424524822085855737287218768828475651252367353431951091072894053587873295944426881980354966041264581510632510638940796551599842508781321813188793582047309257437591292596795842131671193884039725013405127529518723814114974045259450155340601336319536648100268721034785021208689953661247210158698544269769230956503884364450014034416629954543843879717247319657648714130242088210119605177614360496903787042472781213884494307156653902164550216194645612194759837124036089456016515741901425466518990337258641451131944869112509247322556046645114185855385698616498642164984691813273661178803298015532002071076910688955405715464538699387241577032749574477165495358738894367275694139785510260754067766261439148424724342866522564478050739182537823247689682760141371776456911457725053661676481750907424671997612270444370106529399829368273033036734087719283769107524910339706027884228591417385455666488919608779965736290880879863736682022935731708226307247515740371859610024811207145474929675597440467841918247119246478362864856153056674682989210366169419021753829074901324741998866777479169923742172431663538627770880288186608555720139011866098752553461294911091887874970559038832254009667663191166433384466335175372167435165209388363175065085005740469408973267836106432474999355713258374536510638884793249920068519995022055138597376837498481049905578103310281487401563462472866035300342274806924884065896440277955716181543271549872802920421472341982184572457550998468831651831286676081238732831250146168598753342905469141505933958587325211477448500337190228150113997372741059571920864076344710314875562142147637898995139894325666442560132815088205615583760893179765141201279754154516150278576572871963003133404398393114814286902358029106551311669985882644983633194921268122213107111644444017689703789938232702791351556718308643486792409447951839548904264712721041832009333345561967276919926884910800490065798727270306790262337523273171025126090295086800313941657036063951289844958055743243843266477089305527589059869217036530192953134009100555436059452568785039503024144330215982109534860944497918762368219927087214883886023938341908055833927323469635467684061206967064481820082072465758392840995271217013546484104827319803148070290683004826027731866375306664317355802970531758989485175067920895391060189077937986720376124599440112807082302747763283738829349296774276361565530425962349432144876028088274511380913144796470920122568849667126209072759350701414826284585421076336787624749313090255833817848623813458689565163577935482121961470511006119116037336735512556465663988186519612936119589585536165497978156628734179389188895127627239553181009718775910146554987040215284508069935912287418337185316633099015269837831366083059767431791984480361050130651337810069900629566476471041767090334108362308481129911964130682840063686462186860122297794336139644993951343144346505473852732356255909559552961065223324471365309223839632089130972712951945968195508989447420162870041431689399093280429553108150800666667275110485932308549608282162239992386764339376325656126849947621800573452206695641638611158243709352002257478443881665103129370951779227137548562953800791404792251231803221732165905325032918225053393631873654674725491003896928588832269867381216964969518157440474507632637897415053665172844481533902264017391781330254834885464908731266312574340395047624961970169175163351741282837295629922763230756536553977853096760151321526205174085578695640215329008981837095755954533690549644672602785097331769739602991717347409915015709783701453837292000880023933259819318658073064725037060864394013920467567864889362884985512057748359125013613242898870069079964295914588601457889115391798198691515762462806776378543515871323844216927011279960367803866422065197820062389805314729442574437660340011190584749539920738826989845787343808855706559764883259726119650344507048430209005328330521450234942938238601543520083021019594859068292313554587872382526508787260234438110067037366198501572710457188174351047342353079049440668435962718577980647187356866343601669692499748428528351333666348281111085039348068907882593170117740286108226251453880232804136211421117766965639571904946110705118776542324209719136102026885688557846250559351146905950199151353561557528618851749018435832760734272676004002466189486073737631857150611032804666269557412174480225589905110929891909964943524204441496056971593861042488578053002932686177365344248935081522641508534131721221114775410331477175801017075431846734956145230403479495067974047630933487124360767233450573760136956020046123929541287864198603402424766674644165044288929921013764616305321763503329384755859418590208121828749747916108507841757456358831878035386528079806025378436082940960850914491043546585861919304930936617517620153877518877721840933931827420242491099801702679115534043463529604629615232678639138791802344883191535421163521778749582887005161055449076668692409023051717408784362767271024733098165818355446107405725141172299659966179305959541113428486087067763956050189628721396678680789862570680906627996294926351249132512947454037915672221437665598237925160000822297488128171187787955931444743862607557513265403759878208474091162497033790856363375420259556953686710574990974924776786687952345886229467151044123862889869361697247267803503675481628860123079481214069794774421784185717601827681230673148107031568630792150173432717959372578031755297498274192449666897865381934356800781340325721766552637250989790609973394819677508804252254958798137741394128693397580939547635895059012035609096495703968493205383763909798558461993191712051402190903813502690285945671868765040157345767576275978861044613564942874061692275868654263459851476722548496000291459069626890664144478223475722867165336859628665462876375438686532344210371505477256356810824317706315835992821291661800593151268075479505663197314182286756050643114051182482317719061491744526632672743869968101670616602847018154276909173506763581065094628623505338770127343968805357453810938764379091410585981979925516939453880611060351835956956925822986410136084942225520576474746424368269542949662645299541567306253641039755958918960281382016042777676583426825698251568372242719261040580117741555969606823070143877605533684847180598088623770002252309999056096306188727745180747841101553387492126217612806073141784467272402151265582966992346222716474972723148466016312837223863931640631741485588587205961122810244128417170763704577850366002216504498559060804060287246407386665567088784980268009958953784621880765268735636532904033895887172140617281403119613812810091804013586993376289112067975412524823253843903919275402894095024235477059791341748776321806153988826047072797198908317226367458891689031117785741310757528125341475443446635116880584207808202491228892821947358526963276419829329695826260975838510432319383807023536884049138123912189350669142319012088271300371426609600003239604360593352642243454732528849706926831589792380478031729253277983457232939619339736220133437485164339492621769091320134473329684686277822398652825068038969225075644768706257950090996526755298246948343450367709899144958808241120239299709376278307376607169902271464326473908101855820853078711985552372524917679923048670289079260531449788578849332414781863469527895390280487042388873513269433324623232442668420618808993203975180831873037830275136939781526584870641149003788985790179534281219984534201441874170753724013392679310380247213961732419238348007441709952317010956448922643347183146312450827427773287442349289331559342058151017268579302889597130172962944357567449532783980249625148012729940687910060786452522035402400921444326233295043375050864866691711558626107309553465146937498589393574258563560128042187153674847583437896162765118081763288450863343811396572143783642519399002425662212750367772720454013119600245297098444959824551501576524859545506008011648092829043023185626136864426586639339240531756896780135728325227144241653421099616352437404963101467060201288794223619314010743295726085633608597306510742832244015069952434148620740065977368334097580330186614541492218263140093340832631735641623052189695709285516241646629190436869299208270129705861986408415970044674432495235313492532854715655418798106834159288409289271483401249303520289714385490956790594746000482681765857700682172978395905600031434224415782418307403664119097593834963932596438087984073030768200689034733269610602410350066240604468323160621756426036378446657881216842497079164648447149227877509145699125857226580828023357001124529054472925330568695549605785106489869320489397301523392305911763711502022007279061488506616172203219789300997607269656852656589233235470517345300602474276585680236746447634064472806883838540391090398204719254009751359846471689363300999060375001473569428642803796837747403717019215656061255021380002359977214503813523128085004135536456063173677448400791082142915694689024847705862277194205920136237246329297542415395730077197476441035056889162013083384152509712966630085482568895687463471298576716071789057367306871434989150792153839899056667835070656342475561088730542541646661534451947844518963835954454902655223133426170552038969658677849505936232502260012331306084253825337600423306774214956098663080430509024401771354114447243844033913555544567640478937698647198116632886062347391673905835363963993628178129740355322703368887710565669320843296202609094204763413015288173298702758919391894768958794776091261766613650351987472249742461696896903742874996963889877672677203822920769540494881833656205567756050690537906422042142497100843447841678767588511480315879399637207054291321592781337061750454123163568675035209734822554410900733925976629622633189176690594350914816156749827343446442643705228823593565478093801723862890528065612254951575744078409619432142420278612580174209294003003194325190819347556486287891174197267875301777510242094014883407702185886417458592935685037892719989944548396873035041083617761447757151062086511817784870697822949250759118497822168239740395086271055334895194392401484724233079265458769958920094645321993555635998502050777677882869341076754748902677039832438363281577495369616422058341647799404420786777604698834369204912224609007790981090418906771459292486073134343075986210862683624089042685759100399702239132555870070689237133066566337423818634700301814235905098554597864187371357080902948093286105934070625702201621927879360242374408874676987334771967947747314107488643909073591223316745027523724864683861273173178315388434760001634428803044795570962873549020201831230406761472014719822534718819572316439480893486323647388514646132526398531514484650525406969026535784706808408807962744160701825109284180283853402400613539837010455973193721586888196119936475197292007861803905960425041444583063791464554180828295549104582669416844386948580875041734213117700175194450317832433993659894409787078701172432247864485400299659046200234866835899593213735613880926539987678361446596886782198292518719133694803408206860826281296267066498214149390108759460601548924340021919162119861765786623354544975404928820690115291722155512200786829631210004308524672730915423118002426902607391080145029599652514983679815549856583290588085347655048561321834498509677764508753878092056609688241013966611712973202868261147715445817315555711636176180033827587751051278050998353881616301504054056239926762434708299920331637995857632757432013381171160983130734114173596707870776953429238295898263640857720466899991601579968040720469208459996921658639861500966028374436723009792593941050010501663890398502088429898369361025172089986726297257986085547408139942513160537823672372916312224024966567795303192025541068344735182308605343567067831641027883823055667303782153683269248073212926371021979437245784369225973588530957802195896833483665260372981762041414952883306399605279371489846219222546794453741425093350058091237604273988236628384367615536082777634501316908986687661222882715799687966382198263647418063727266387762120221015939863891533085493256603066860974994940085231430111764017381424632506634736918576226868262193429264439721561619783963613322136602644154584896054116115459254062566703989985328924585983826698604809398769296974845705875085308559362581809823212274035303196066286421311183361038504428412749277608604689749415543351674513773251065871303962331979191677664022727911750513021044883811493759086431484569964771502308965686784970731846300288187622864869571560294038175527139272784310357912883197741018899709426720570815520420412450735241143453861824916971670104357591859235123480969671497283265360250241977251621860536496343137031551584610171928512026970376595255560587564840928741057363132805132141088771296788477348198467703158243250961618394579677200668065083594837055454451567492247531238810402655630920027247349085491793419385095286711251226312810231275540683007849655110374860330057826186077231592894227402456174669082091474069280517051115980079417787594891201115594147508286813077665838761229169899527707184761284679904698337192434221746291503605160004027377336875424811625424878773520941439858833777387342151092728371366329656894057660672973616268511572273313321297122900642929825185327577291147507430879852698282727259241862444683823886445630146940481260921943663440257294498938178342111429558656365486473503258360876275551301742159410240706184355884500025308864161054908348642932288651404052082932131667471688566523411404391064566509454777589222345548377674942496831941811392634901590440549070989067504647768549115423630749766661047600149175056358335064314022186522604961789639007227894082507971956281077536863318732728849444843579882955732861869362778741853638302807352597246071303898875369679011217850090181774157497695112602263437548472481878374117806818820808889109790262519504563009180128475017296605619041431499249894417115394711050706819030526483081060149722087604546718863538399128471136544894646527737586307284027488237616558273314805439237574176623827920041501468589460767669164993329919034782233923807578113981158661092981939362791909836276970912762734154344269615352985418342753830497485725254644390571194524444033297467764274859091192777780476871829213695966183663779594099937296951408677354593210345803935086060640340723526199505037308240700763748365718801493047371618029660169634335095401335303115210771702990104945152333802256702071512852817754957122527800544916758699628418948329218717910307711217476201861744583055743659395360456762529198338432074984109243792111610632758818739044447561355818489906294094238882521125735238105301891256322982305702325317766668766793013312937651582258072340225745299524582905743451555362164953832250788989877896767299374744361603274005118107894675265722430440820113212158311069009058471667258441151569106946398100800168827470583602411952360357006317705415633261685942247963265277243985617243514004276056487767150072630679281704103047049417415841705503102786968250704989066736047494004309791021028997339572986912363183797175673961266183747812142825619009034141375408685377672589871638434412172483137819869152109813038520384863194227869893616921556891463187707248363255240940344313598392113175017280848573735194794755729980477670864747533226141892507665975479095144127976358674792062886510994255554824410989913149982519356911179624579508801678821449668716515873614517754044884445483727733426222498573907226212986864376438237390926003809302179959947299493479065899231527758576044532145096148662128404707492820594024890411112930985458473165049900769811893209299066699729996551122805897726972438607087910212474481666015622899453621873342963622765780926513122292839566820288253306825086497551099090656989519826684856903261562309150062746331645287660590474948723710739796552394704558890070617922350522406048975459560611817026713812957883753439014103401547189436208995155799608805410091186290761736514410026298080782184349605410372217131610050962953221253834270466822524739779757830656510983852693759492825398261845869103891497239090985080326094658152495754663246063528313714383711998685343475865438203016043065184895443469465666211250698835281572483379808379617375611397643328867586895147244414336786363625126038033417487366830236972445811573286076794800806969920226185374437464526871590708740444361797496117030899716711540944572174229134802076686174899381657107556673715502326811809461373457717443759817140728151747362856660688940041384250970779117946741155300800191523812496477616732143678062410967022997845510954665924336905278293587340870376869578658430105273895200152855347845959798366872939639639774837280534659351480863335302915417890262181394387858962958067615079197052213087775603331524661583863268828522141265459638623397323679498472990957879516850591052208438297056128530349413328217356876887847495973499989380194848349924348967089138154620906512965488554873259464395732859369354169716589298330303301599804283627424330437826545924313775319012455516012382158745301092766659383743992008178153896424030750218659586124206397265264859368575745939464316437640960016335582568781949311545082080334269426167198354609853516278880809838186608107710618255250326142141038817121409327961226055257464478783953545615609827561994870950883792228002985812979212878287772018775419853746019544916869328709712509643633633601214228470834995899562420053970763038744034261133200233921147773920905909916194502304475643734459995473390404922191486266625413315428059123230612895576981142207952738555449823134055404236075344948860843791549016131209147854687767487809066859502835481786623155330409593451644643101724367730016981956776614912637839959759894080067366894283604824498083188363905289462224626500563087601141228869840593699881311608935018110693390940646555045862550393552705175894712698390674586376944809912018158960024976620858630716622106355279333065221536579698621485869528875552998072989999602585237471860018812386523126239038322967096979996657474847030583739680829212901530059068082730748900305155272061457974975226523739282270735557665198504657331071516167970764343405082190464514093888684385701500977847359708114192226982972269872360524057581858605357993471568698918563889025414869890705097025906571823068856368263796184797486915114830351162709356945576782716890900293262688298711974386370528173477852130458886906295716161251085403780037360382269074262293785651028126191046216322746031557675383863537682185380375140940687045044470932839128621035001884975274429007667327854910823700250150557192389079302472742637158567514881735479580364383261011015720124249560185080266677258764790672207132378174309148455071054691872712670183706320607251495730878373789694395166550404713121161012289851825724023855765527908072487781523118808476066005968238487169669749349942150675010400923053299710578199407693926205440146729559603060507943575992308958467191527462824063112896307537511316228166141469149290127858329952941826990424794823177663414414026923388284267329905550920165797933808762169387518685919102578091651041859189484115572103206149859969023661310383672072248469087192790270304492740023340151153913905624943956206702663249595873982034083275066560889526573437683915698628629780790209954587373908753642135115241209797215191555332202025307806842080897184800011048706915098063429813039326877668375259367800838828349340200942152198936231319512811580489672465015932657412286654280573805313172096566887020680569915923745200366814786709429476171200966440439308075740106838819724466781707460849887718483235714299252682899178607725463506557615209871705382202353997112259048207728692170556338370365626918036278038469308852037679948672819941019316666575052926275181625567959989481923047242843291204364329260172210953061869952445486371596929281198429611038947728305856210418382048763518177451345677656449899616882020099706671964472769298721518518837595170274818444077694164387089681018379165201570271584883749906297030548538552065578352574826169096896463473455039400024702625329744917171560740457450881070218011158597585281751132437272251335950437794804914777770424480194574039961469257244660631872052807425871069435995708930292478553271049865718436521160431677439565857964447878101730663086456012458859690178445272052049039518880255991704523793322224517688429493011424554255762528831815986766043142450122346966667673537181423357346847474634787880182372698010993741310193506674074303120131752755347931079836351985223601526610206147404966765893749518830973237038597614271366734225137402547238532046717551462209505867484357634017792824746681425418261212644232164629272767114993347381196307599862708715640405218879739066703235200004077436189440680910903251042806985580618772847899047874197913561580568103297649932485859497576106978677448217930006632891733969224353739505462369245543200531624216338807966974152521876876410647860449167112205030785863251911834274162198576313498756224751700638012472205695421267189345040731222101091662606142603190516106820412404963954616188935463494420777888991843862313911519569814891334812799781489814324089843021082303658741506280040839090117349326574166063908928999283439102937184912296766447961184588762635395837498873818242080832147063408991983158325489931049485964747419647962011540172101234606005476393616651766135786018869491271385337411098250153071757306308183124795187509329829744369747679050136813366599242862486088767230910357818600972248355244195709176909725159037142843043446120421806882708013315221012066026306799724164689296874047790351991142051122715949672911614001423830329082242749340706027531719555115568469949979196976298750556210873410314932696713003671790270246302065118642200570771056452711379761609986060481770024311110947377265207173434399595308729707872210356565912385634088036628084481613571043359939474112960652681188436697822645677504763289902238449747392834382708158825631600595159929223424052261381354931528148702576222810847583726529242764468771547357445826098203949933708198281429999553930770029572598021143579318216467771641782561188264541386634139373520226508356859113352375900665538490254660449322460170242486553137693855058815114500570697758049982580340606363425831018999524278639217999487214110136849732572283816475745891105429079450467344116443759488910058909151527677231922793866389730559759608886858791231504549562457379346922004807657331624899796685123909386405789199217174002203560757311613514939903988460902969299909534031678121305977853740611272157130764783337421865939455245298454022707163033873956646442027885528084340174422195094644950313057882965529662286962118725474708825759668338013928647062157458289071284404446387812074438659114055555798486519874681965653497049833213916528233378577808378865205981431350645369424786367745947914685137452396488478402785430781198220188915017091127527059414862730221697175350471409337715979870011940283082535832128234106973537597765171150736461090970759727330032600010500526479264678353881996929803388313009921995954032261265495617482590055085624373912927842652935390735107085735525964095657099784710582365696354137940494723824682831479070017856990365573599750450895077213311962407464288220865809715493566864502126841487314976163255402734413914259711040479632063812453838935896120826061506722157734366973699037979703741330028090735752822976847311407702730701938306959838683592022023320082417054345085785333559984787121581534610986685333514342411803757484898346379088807244873053011462164289572097892034835963022427897759645854782633473652009517469793510916827289636901063300707665808634855146290913456029143186587535618607906332668265177250558132917248821762247809154398263325207132576692917821261721299162884357118539454229321836926824554451151728328754159911323805727756611598542251024239864951254726755041946296972922003109106927140444465644957850213876688404680843668393288905810856195115131390918707258759307063334429614325421470381402528081734083253474655840939281717143824620245940889573532160391511874397358634627439253203941181779447794840780232700257809888195608917061636169178795845308494079814837153950890194432038654362083225889711568918068073568977156741812901984730982972992130478719903432597317139917557440178386095989367077708053256962496412689199955752564923225482273955680497047589449565069029485161431958534883515318203191398325590403083221594648128810626190989495816925079221082628814498619661748661732226451221018367189368192711377176451897744087874847006973438446459632178262956398378609776041982397325803594041310142482587777567611892383683572006051728627268754912332330596369865384535009088080140268705231806621766964033490119011810501520221314932927515972567862193802476705469258876406745500260525602782442353670364092146294193028087094395436799104901388239560714550303234723499910907622151309901430570235574245718403610999327586305211203979714987175809004129497632022881371632469210467350540561588384321935705295532903767297472378068671629290337048216241882673742370058010795136222675097112504516561176390830798712594539616918258449791761001714079094896175952463597142986344266446570402294417491175595577837175225212415857805242369429830261516604911357100803480195780703242529710146899049595266590585868997615164421027383536369462346406435874779646231802206384663300874625827393923030571066953660614471885507949906987553048473797909517113826114548251063893849035941147452929535697819975393777907624217059941836971921349260588225880507331311063570648639984687554749605930873460599153195011613392266582628462747122023138217002548877053924271667073302784793649853264396433726969583664403081270434303248149478386049398736342851529585607024941383012707259666349511789913080266440879654986556995045867536563106160928566249965390213210266905481410279321795466810345885191323056114535776775318087654051078697303190179857787733209851757610006690473946293860506094856331103611750921149338486927315511367869718138307308733323688083587689797727951956525757960038619460048721972397475549852454800357755617966810440268314159845885893930532435137432861978086778407780633527261103017251723682592692212095239626919073477736988649703823006212730729518325564857585400192034467749508584629648365601168994671929150624784617195787661473545247191171475496012487642681894734158083802210387791397143915266794228009272128189919969610509150880081990988751405957501868149470336221972714713780416783325439396987431300649783807625961787146734609450452559119972168231593222705705927084880449640479196552808148202056700810035292568087105528571209826520413716746038752408469163267446803057563914942465993850310498221979146502370524606206449733738560199724952921030740013117659569519780677414915467616518500185144446634806130681953736249699540004819229256291947494856964515874618714718337077551993632646253096453214335748885157434422589576323714027606632427832719375258524102737872902064983915018574601732077128185357376792589882618711526829431906689095460037614535822475323777406164390394761614257218979637429038283010782718602708467351287532745353455245167842856897079217846655569246514828806810144620438396101028823841679115262436223989042275777562067910058438858425848308752724188085423367562376496724608813114938836711583147993104175472587856475733009851442346959623913117524102261648562952106782414386161607481694267363905109813244203255404245301141174221617360286921153687693210885441033210941423695404265675709791218827088877848325559810698461460966669877462241144080651713261701406316422363933546066406739145567612514178570642007806833570705507514679410984848223999811990920679535840686799674482285921689574970529342429094696499877631434702755290949372473934470375478594730733772253882597360527435341179229177134504640489403747716222457243404275605351155030334459219823560142122084321927381806403985121803150366269927242991499833312228300634385026006330319573424424128351630610192174806428416611635423611310929505828063073623101838895222084972453478151408736740577517659936623877473584926899607138334471655395988341885703068231202440423893975389016729056818654961744811046847950186074476109573403812175819876538581341859750463749287818901329384735660651214792065888402831634529037599920381299682787107629221039870466311431662727794332347993781708037190275257166892456486460187699664619430080717339326002248507622064916856171416948746141796748488529176526437927124136775443840984862410140056914156698204346305802653254124143656970126056078885852717017477863517097257090089418089149731983225238695947418580697287523963487919171137568782518882306689717737675491461045769563768475762718727163947534384378987388669887468898659260403333493452747505284827136725909803910700221572422067518878562664421111987936493956170685398457398682335329829429226008014095910906017199317119762360495129082075861470725981475029477867818457122277799486140880042102985430747090244859183664513429710339211180689320166120705258559595014689656250943597758024711574914827988708096528909736525449171115979539592229333156112380755072759257333129674557160052038290915999117811536376090983356203058989456622244864678658694099501932322619378210718370464429523087308392023034933015452701492830497394159268744501734584559488734738849646278985360477758620929578718504017238134851143145290537955112517169627394758203085504173726782716966909176551509949694399173573852762052177724258742448159015579785799177882628220163869427387286264584803625694423790647949192245439230051741189135579470577131306768892240964381918264316941390085971205334304709016517454757929161060458642849841611270867347220911266024778967841118756833319504135706122922467716613611176736801796045347319095293344060659765232952277559312392242816212170619112534158525957368487824608151794694436148141536134131288281652846799069662914711309184999063418475363259239781003316427243757308954192086213739553145797679272274677877848257587736862295122651627791073379200650000699574588652356585832750615011789580960739782939814243067641018442931671123353978500192994686406233188291364145821010844516803611518369176658032115840714858841925164511055979365771848632685473620579789365277890906158769407842904046461319909170277465438762987525772714961206888036567500157637725438395911560466165113508222523596950443061704660148904326967824708252483476056315276625730078038670594776548608104914382914234774829915505519013143224406729457789608060512330010912722367868433278248941880862285286575816383764302195856292019216251758146099235465482959409571719358159988561043760784268142783399532280951856186229257995961808511891914451713057861042375806006984502485753027903314567838594305802868010232338828045091882174263530246966064274824037441595512088839084379733418700190402113748195455216037623691264799876909300137574245817343754305356249906660504456427629393763352073760021584679424365002958601945324546885593896837521186736981552375327279343534704598266727411260549358084490232935665164531108086472650348406415042320740759411163956936115693967594774084175182115389202266194421766636400046705374421312037240156844813774052452360012158431363621269370578933294217613495199148759852160337699675379800925751582917783784180730553851351055572844422837747428484421969868803463473456300823108081518433797822185138039664590472690906849214627275391096641786333870172150262829549602375249344254758236370414093328452916711797921817638772269444937940463715199074534763991856089556531521080139840937062680736946728192536432273959501460301039021836267832058110799476721679217280384676599430041524305984284314903452991575313952852798608571804246706246713955579045000476182493661045848435264876270308491695700964336222848196730502404828275234335977019236122140003037219774909974051515102374854116530343664292622958908760067158456345810887896694625332699990738449738368232112713993867276421627171187113649793805385877962603078677277317139720377035787831283704253102417520555507085091226372397214539468958560282192173448567039677967041868987608216108348707823162944599165679988518048117081639302870716944086100036581647647528668806469614466344579689210371450254900525833960163068506571773385494747427814676065933537304365306715553854182780426571923541068407643470698460075677217542435466564231128621383210895158685603902814348154595590248147990006795674822825377158278865625811130206738418051677381968681920441050372598524490308927941841682729566993400277768305520818743080509639218717919019986827217980410556352817024322627920499438674773220395441215619175805689417993837839187037223652712274129189997783643850103511853149464430294947784106037510076777063742083349003908561550601360895374212221219351782749117207600187385933630125309238244943580085132040885613508727481862463217559602554606685779739960809796235122541697777311159447123250426594245481391165049556058974170103036413774694311527263875702592846032849859446095605747188488892733237220404458964420986608676010616267353597535153423557526649316799231004550986676347100194536764697979480517160950057214612594839102831717582939397433136710175216079786618525146009530561583739973872723190403178556166985184439017168460932931548515783833246684348515816928859161323008685678633373836506454234029341468187805382353916079942169562036576918458851423959156996039611157555341548565300807230883121317946734045501719684683864007879140991541722703519613414808655350592410943558261033250637712310866001886922338157056360109134014030660805840529423661654684885645163538347407709410506524917685602409289176769421590545245350877822165710334535523402179609935865744742490785068101934771137836286813413663176906449967778431863795863377776989300919825646049290536984608221674660179570963976288370811065619029142722518033581885656359213891181430878960394592575163601831779328596069906657385023739913627400352934395347778534737800664496653416026680482361532886195807284007623101248401857580434606865812244902457781483485598050755390073704482492981769507996144215247203276051401010162791261631177335158568034562296023438724291334556696093045290821129024787187371800611518465287494522475405829870211991706517091065917198008461252020965047363411366364630198160615401007024262926434241722144340632549589249849128573775187275116836899321603992566903909959761367390543931663230225121181098839231494959739399463469670925816357861630105468186777517081563206452644989634809649751937124093674189983245215103455429290431713003604030470905895345008947543071947143073279480949803209099980603658019506893755734541992410395646437643779550392682113253506177009982692017549047523849313846775836255939652467987377397131952017006757633261170057788389315837992164006571641774667428343624881304097091952930367430994316537213914437827267053525052878261487850630285489580205816423656160556431173852368191269887092662941195962814124135494410279244559245222942503702140106934085257857278583163345741040956544748890243186182940538340385537101348089201247841542378886170497263711275396784881306639846889047508132780852997865447255361705299728894101287051325997507219363333047329434077077049542864133999011959441245214321645805088248759984164898138869587827040106983103624036493555749183801319081414770876512996819515250166348793874018144642959890101286256079488389034522773362929479755550273930380851716522200134459487063547942052753662136795034236500795815192698584406544746861243199122526879676488467373854343544266555422737000133572514982796429677612214650068416275092512769229294701142672498067258873593163695132263251934644728502442957786229409383298775178782175652551661573018847570820926919765632834630431747434040670062775706925488188658638723839945714274216482228066677043219682943921298397640879467526625308894762793658167326771037657504328711863226779676981454317414152913529837970126542034299351601376943276770470029762203559189854109514468098614118908060690571330756141685339631131923042697528962557858367908274129793453600627182240533424800415308176155301867476686419150286667178769425969102376421229348724305510440905829504359025253957728740697015371576459552031787995537910667211347231716710439720907115323601713629657535768182117063119400343880930802657906764714519642637118559734036902262998445880192367437387455768833953637262566787764160513018376322551329678886495749626461503550694210526490285075112489591245654147776197354933921685143028037455576804770421140738761256385367293802685350881252197295899375087170528855625185272824227487101789024394387502880180192338683072689914918325478335767009863109989825838362892231223857398546056577989297337709671088300221478353037197325412239377465713945718006243781987044580539557338773357563104123286024581718004161445656415100234972132259914557378381147426159687581958927019944120712929989355525611939808556284160278113604711205205199924875263436492417890682170710071985436197906348753065324532789324937558040981699650900155690869639053956074084300185038635671845212413313281743350002315554415501507525758815576645935468302793086122828111613293431723455260319843514453548406178818026541285843112672202237352185386860064197746884002464571016429290261008747260234083775976879931268227453067091178007989432593151105920988961188463339571929263464102215645216545680014820089294734978552079788039190093502182188080694583074379422760974529037205186324756033860707956970761727965139705238628749265532173326326046318894014519623603553674140352684745064620331839663882416382797174913461277184377877174802887418138864300801713645800563507877409067625665799548455645289105323295803395901822474997275331476146955449906773097348982618997747922568798752405661490250693362477174421758645024698213264290131773195958262545554868407784460103501160665330726828267256933955820952335545018133350016685468573073854527113844278425688276089886121600681336701909048288584282754558282733750982077207299307345604394600004496368729036506275668548859872452098546132027535386130039262713982691201496869894213220377069360641179882500370430699388552182788233055719922997939757289247533997148264091595435560901592616459824628354353256392094148254544741789174179733953239746299258088800987587747685259593196391827568695197619744236297004476394596711619711688074445362158341094110249628193370433632294895640419739348138272193472500220743119379910408286846472669486403514874315870648168286705270364474843892213534490197724814120159713347193860972702098691428970945457931123403773817337195057810438202718849696174228204522364020817030686474835595239496404623739911410315885442293623667965787058056288817904576186477046696412038331520865968021599755407212013193342048578173078148790603716391583499159259144752261971588073164680771425787639728868828040184929352362985627334246866447540993191058013163791487587824717883879089677697142251101070964972571275262405354094925434845463011006215058800244519215469884981671576766093842680541597048605606535152843178072172760356871098479552834278126125606584176733506537918068507956097469354245897472518502672045941568827833390450834060614591602129226943479697689542907624526663207173373278615669609719409003235313929858466193622089854211210148926441118444147562969430525077683701270966160083994967181202407359598848336434494621574636752747077532972076533844776798886784633299128284583276895521794601413777500594122165658213024010155556114589830453412506038238472346931872091034551553807322737182416540297452580833460165310986009282889231181892103584597741207130141206857893447432721331132663555035175171689190130954537267769565755392320894936860913048137675928080934939699274036313702970683219474093916876694247534447110986796307277452531821126750204155555032439499694494894100172013330444216093046126601365148690778529783939964311111830719854803885637217379388223941824178282382883830930335328930565045506551946910545041934102142124756708817575925422451605211294771861630036156736748636143812563083099458210118658324794120397981479029046394433451824092644284601663785277392373353285477570757152921428344052188326100469006485230303958833042031453191534107080053316833889492012394271649988294081483603776667379545637334072749910903307558384033769828604939567557286429989175607406411657783767186229342123040509096677684787507525018842988871242565665258516030138968632310163945236880392192237971427105324270945248073657479990791424271201241240298993057201939879200269877018190405159922856685849964431875537099290321762386479386194078128243773259049049311377740170290475193907353283611523124604961721365780111858931909056686285448008886681805410485660007084237953170795659812137906101654466963766240884705762490792509410225319790581642242056066310924015971187957328530060859949319295409513116877849585016659893398794652055056586742636550876099988981724643179441888701307004114457495413070630348823159346844600481744019962940391195057420910887887339534833396513852199010590110555315330737810628141272699561614100917697853312005312374221051683244969484564727823886430259291924374637470059875474272888023754047363512328482002499147941521367878573446957971184482451996599428353189324831954097354156447973214019929602148974038816189683665183425289747187941639343205120753503662488118774183961971697116237106688858598778431846037179420318735658492374305334638933789778682657290813444595087752933157907172744095193934139944016976811221071403779905298929639474324654903226154832861873941215096497061816915138353816468699622061184749177434234992287077049360117741130022308817618034668266323143098229598857692477532289791234336233131788153183316480559776281923678864502292045778013564820777805623014942982646840636355527083008650860439272375019553215687745894824976144838253149959164254114677290292623143432753106449059869375456555947465233770960306710703660708237959802509570470107322333257091864212637961162896987930766303974494127886075024209098677837532201559867350465834714909126038803675834751251779067338889437788705228149461141735612199305210239332691867309350231778261950497565235825120239503620092810528692327587035421634102877369478482598604081046086695321756133028679876475412326483248906332834335345483548098245335926811388797851852713071642261565699296164324754581806048461096357706203287589456006711596891413730093003772773310488805629600479065801747566705116057694158824739668693019549752416614261035046881997956398283742476758255903995722273475800684138094481204351545169211781305932739084572149178348205494432692840712796813604691452494052680269964849128553593110654246098810607929484023844765263038891121304090958030559046753162186857983468769269670973239928739166371907027213891224292516155681657910729646583964865679932119762543567863680648735962082990360874130965402022712673286813184006854763042599531883880875323805352979367538586646754203107485452940617925575686516924039526578094552614862559892658593739980202248191746203575358175448682145493757156609203311607250668769765484563186030723975357401816167918220823327138375254181314379832879626195602887979222409009771387594156935309709110405011655753248783911833159007181109470364279649402834397721143626828782565164190907137330671250985492402991968968046268331876171578234380790743247699933885268801985818249038313772971352942896747601981244936410376331341298074862306837454606552946932056967531082189119145639850588779333442385343767156908022063538142610533547161778934505111561750361192802331523096024774117130986187280377215286690060439821019004080034526795550826583073821872982408988604076980047795277449939263466200855191049953338399353409352843584978214363470122117418182104554604739916508613084264385037056188831623579247216208313561680017511906668285241577514700865755324236684280619043713582805046717439871033301723117053652776642111573100110636797939333664325067069074735669438757577006155469754761319888293734967784589238656123700749061887081576758669564138617460257251284301601183653849719886648718490268746166253985497185210918630575181449718452585347819179258983097543382329463317767664682210700634051776767569045576331148198179875464752934126397091847572456802727874329250078449263804340254029285729594623649543488105776835186774520535257643034722395357417162922774338510633163984002594838711942320012874595090997016197777637191126861836259624435742532311757226510018592227129488578592991858123413879357073580305390042327892078603445872077602829979389330368049084593328994992952617872493990033149044366014522642624980083476182141017622663656814036613468709268482266484225112965853490907118630812798060220044804984498788163260495672961772006312599787561021965640005400341195579198100021125069497268852212997911500715407103666551668413064164620854657871159491507490346881613463577664774434010399148461519276128916931591784783211641153422277033354177741613366190223610648496699194781155009116014734111052292794862249434478594042441987497765564323987628895350991586367435731875370719346463232401227661885916073250505686752553073998687730716829387096884692635155608843378412484312759619386648670394173370984349089549496900949308585963975294830248448527226415572004465639390658509274004773998104696760752144989861125780441974866990340663281946010050092618737795921381517132081323522743857238092038326871958326144941691483414535094652296847326950338959703342560500780040066858208568390269933376153820442102667869571540454096255465139611493751387876720199898172987206275606340657276849326386443469197918299156833243849016649788557231570899113682230893558586982688695989296144889541323491729022930909062517341486390391466446760903323534262666811874875638738020458647030720244803140889160663418631202276271860516686591615497145215109893802050569815074556433719203615060851788965016748280159046913298600600416230850376037666280034656364206575405533091317589168483813360660185356780410285181661228980772597817505553937324421793901749134303417793336193443133508777834301076414994192389382892884972460623841716362301364770888287679640542822270067405600729608922846966900314185803682456380258900864051102848004222105242259311142297503743438436163644474634617965769104732033988834612517870982904222244387367910068973445350101739475818837477469854622876212386966943290871227083681883022131669884729233599865642245038846347092026598266535096787985345350722581429312824733131385865820044107901356973520486676960419551512217683789532260467721708602307144508879558970856924896677476317626062175292434681014489763367445561541561312054085339853143797391390744825270236377602811353499779414214677156949244642593595123109050382230198978128542561437144423856456253786021170781778755628269536823308673877823010065513609904117662495987769896918824582132967116190802435660925417179547190377388353932956521395229118669775291478881232253422532385593796200115504237196497930192635922610108238509914560569821123042672642311870281885788823685257897972497220662752012223455316804678419292022302559328648454687225137738527956386059706670582972341701780111633952139320884355583871030471562161170075163338042362072126014493828090275974851183772996038576675320300633466083956166697161371580955767903765925656897750862434322066964347450627802917189571100828514883442036948559794392815205333335778180773831914945206212682817813691511549261170827325268436635040457236757977606918014865865371898567663327322700299170534689120354164740782017899312811271009619256203132700418954261693006572694287171741227257132587857939414477637519417771834215033168170415153296505469949200506442187557583887389593971016363679673893407292343604802885002676717170848640383859560565342301327933259176878935401599047714521843993319710405699942844627957088673047301749113529901864783812729802376998081321689877067779381062507206772627598237409492583430773391167355251100248357804894008091388071994068620658835170751818864554530810190919754610186517983262539837629263584570549784703353634040163523844479935305563379669102561971987436063231050576086044706388959733798381940825293459244052145642766403647013627651321900910005020885525893187582076477102355842985804409874479072928819548782619457927961985329881031848596718962103856189029745596972495313932041083260976485745547582413937002614177415812399147217688422795388243687046599416874044142481711798593767968188304760346809234389033951993440631540441120949249032564642068212035492441530424124199464674370118598620090072061165538273245779763177447087550075869181792176078341102130047199570526911235545744939629928786404070041529516029159550692159770785900798559132775847894355534848687174957637595485536559893849514012720357250677447184671064282536410622956399340676158738968169490140006574868572824322118116397735746539016329810010941607649456926103161116104284416318943920680206198735676544382570013905929233146055458376340037320857900617719994822465087075958480109364740001991604640274700650818712590263891229125838273274360366183966209761551917958579224352990159149428669039520901494143383688292277157764588277466539312829631286985294958936040953822547118415903291988683766287684812519418269670813897235731516326505933189534578545585797630773123052061136511689446759302457763570548090738361086946765968749396086776193435336414958386321898260331588185243815147906223486111816581290969534502994447881362679721355339626136524296098116376908986118173680135194905364899367928761929305651712668106309685231383804735907188212333285925596442139481973191277597363261628188840201809172924478526261219953002266796373790007230757105157645079637540686092861004900102950051140657389897742375184619960392455169635110835260116242894721704190983710762441630564518553752826917444922603238145910747162449143629592893285668702718684113747823541361287096954129280635413593743150042665008902166617997434991195103171965238778167527869998244654571770526146413269290578747282879504020648228169459469092951835454277655799707534047663451085900499142924806781762965164329647712558552435635664686638785242912863577595903254277431618199874731008871091853889294993070043599444049408487766803440668578425234604346293272867015335515321383627240542583463028840091036093223962240612215780737103549995896050412931472621782144458278427566770570273487795290912835209751304036942324897753712542594708288588223645703829413259182503579569463423515644098633516063229019130980539231844567096557388899672429349626948664489480323723792131641719760100759160478779657663835151763558761157680902683563452000449038978420582064595355759234425020504104684612610851880191794294465744352181977289514403190369518359562479588169640162750852344763227294781441194634625420894518707627169376868129609152632155923598057418719431452361273424200490930411214519641349492632209984685749062604914226184731493633837159632676723477385428783848594981455039879174122482218795447386511582008902252744797773138559581581350503188804079019210549584742457875920321477173761946722273828520514006639992974102345096097947851866512991977849261410141909704375890543168211159469221452619710134115178533092038060559974746896521836470557294379061389169557915681474370913694660296619202213753429493561359368585008852939084109257799675247785995569016164825941191386099867342966945811990023808026913060710150110320734972831818622600160186689770964224706589471926300561426449106231726726786928902418957723352912098533335021429364170701353267466901114782625242159455766761899994291061067401168964740922443922468726596292614417098502486403030590739964606585549180497150035091047403832689095522152797538478436696652513857646670717681957174510781616963974916931626007882836388926122541481562005389351352893994233401469058226109551452797704797258912847932427645115162315932865267922928187484622355782749311822527321422331341743808987720404389967085977412740092529227716947170190332413738774382223054728927952568944790355303532680679558239300227867701039984751157830267252120192966668083749755967252456604336743885446832923905463118185432953786485601734400901045383247321664967439318132081634038697669390608271844448778383453353022113230090090694903446555752451014647232158380883017577909179021339076995142224373563432675936861934770645964582366026408398491315963687651776783864417058127326559560841225624343650302193499892635101169273184341620711305554180882486414307771797954491932233040191349037684901926717083955478392143109239424464555109781775577435171339209308800281808083899728357921515452848118236199102344284240379811726436138484117433280197434854743833504950603038621020734016406192257203112500931143631404990697698627343083136398182268691606380319434850879481406636643548719703252806672901982520598516076507445610548947748872353673674365656356494707830045980414952009684274575973285326512511805725068360047908608726569678969779886283411712582728661131463706186313692638558981704763457235008397251037782732072229431102199803700050801996845093889911237907820597282525372412114811883672353268114554146519430952724912177552430969401820521040710042800493697534172895588087215501222275141128462305754993123360879509893455510823206756876895822203377297058740594333338407198169965312925867204728178045392312553037924184984261207447373563693184302052630420074923425502749243898884837621360602885585946601426393537832289634948541756559912853607204076427409238438082927994238004747104087509410922105510463059787119010102943497908953016394344545485312413837081510601277041943103927045528458745429639527378533746369545237446154676056278043360690126842184343360963761887764831092269655733747228715403775471498236966113930455489663422657263725637142660573345772975626648447295859979372058483205784972652636757463101742947780162225448641581401489960416261177107313267515434011192403593803876531492500158710530231745572776976047698593088796687384463041651997033261136003451329092662590192161506902541604965789596071142092318814489127439833018237220183944277744381290407616793446598425088604228061812621038886921965583875862206969032779792042239276545960647762994694732860402846524782577157388677323567462916940429385210077121482159052476319450429859707425941642786075075264334071865218679282443381206164584798452091055376661580620846152547342862912567371281707137641564895720943566008297698891975966346288909523882069466680230160219803900601440503461214455322441399336698724121618665586207820342474184972720588790633340268520335304637497795161070070476942528211468464313859592227098727438050412251591883952262643648874475203287772225935732605581951683243154149736183252875824747010719990888204911488792146936352903831422018432566228027065310801032815568312365515789869172012769125801887824921321281865271145941886027411850852508332250923558878350375638223238584523080416567136874152760805607899877653229060967658411916418220660069074204867523381874166280092408650920844744575374133444001269439961414345855000080119693407732724998989195115604778811551484675996300654427932860359510758035128145603904909465252716513256655103967491898512699764527759331461538807396282163853845378584244002287352007319188593076160595280612490903373717530898110195421209562088732437684558446231014252910748239387839260550741678074380902965701270208025593814626727386034204337122866026819372956980503852601264351791704150283082891333331760306782221446881611450055520331710789561439416997167272100591704074142557295146661226485357700735628367812750786619255764760780616926290325394217066876555633373493614914805206636700209461632200938083149423520641883911935428380830048472080451704821785788258647252163163963630024639102137063129549139589848682059264234386039010699688229361679590750160914355275002269216460912120160354189531814920216102108013378787194447053518934177035834706234572815877777914633431836389959235541773823043611617902156476738751692657884369193190106995505272817698033146315414150930034973451045617816769767612872232358105036201107047263595763258468595782884555114550541399958311428632847969062400339654693402444942228161524402225540282948624492165351209570772911527987750102213590814874109546924649714705758203277285413897927619742419067348168599522957679665350666647925425872014433260810772001828217164949821562526684145536179589830922086971866289483704868531253820859199687188259413572110958929193774781530181427591900248563309043415147078067796435943247838264348423946391792659363801388196152379119660854852927524612881297304575997566927126070555205446217416222381754330276554227189426465171158259351694981774371603257586573121950790741003036345727915358095384141312611492446233452534552034925703417857602369653363754308710916425625437796165387747012712490597370910559303584713131354984272850479002971481779621416582997964600545295663201521292038408683415119826028779032583445844356628493878716506542665124104937523592431830435004757620784698680550323468000071323446732686453715913558375971207085987997918861056956035174385684735404934862495298047209768112570519030338573441416057707816863497225091269793450721319030796519274049449754331125684072709890863374969643284184671056771651450923157648126317846002401526901131376121156072878413877702371824027635690327740835963295649256606466244422699813951583783234546634837728428934244042029427073616805047504840193448663002582275398431102843408284909815689523918249711727315721383487164244409547275316220471392581051877588914668258114920391671477474114003634126427091972932690606831417143076031551599561422977402592194465260657384242192086199985680974383647339565531103973950485061977918957733295493058812592132635377810588556763787038775904112138654252242493602401356400228027623245190999695976247710535594472099829240187111566727628682847711418574426850005370191600195479305176428473241458365730487902010590026071392996752715844804080018044255815649131155907751029749923888816132044623303812821115717360855652968759356413449070998599502209445678620846878520744205095566297873023313773595936974397927667836927237937326439688715986270654172453380924378869859904482090709920806059319749823519845482527778184054535452568265277577891267750785075383651287109748862177267701976358881110994191687309288245939487733310127609148262082388186864478156172601659120147867452396376134463898113146357759979111327863714049480824027454267082461856340787708204805719076096524400125942908132097274423715453083185459076257042436206578598930978522477820882377973307750837978645439557801559083554824790790274386365037240202639218266944940421300952310534509131138979169393018879566831080506593682282299096470965446272702869344895420388280496738833965106673617761639073862703159244846366810408357097127011903530568986848651668572467605954345829021257421120677430290091966525105477839975667551838493843481126189725264116959258342223346096821525844443361193410883658177033508933895149683180853135320142433002165246787774322485238534439020589506590378923639454454089714999581961874992765244368788416280259007764869086414871126802362225659170545018189799253286550957763581058759324640224459848942424643061807282736990806471684655843920970388499295753561736503998991703326971031795963448558089840749822078859238705936447696515462384339990904118430499290772267748923950919389496254338672908730576543621005148958078623036201687544462462957286141989709296621665177973807000390930936707720827434259339195470753778822399328816382555260378133493486055776523851560186473258143793983992299327021653111436192391036822572032618603350954799345032628739290182014977449298797163114387967894179278459861132474682569421805794869888968543328092279530029008080172917821710038984964688664054440378018957044754675952006601028109100933233443847206068205243197121229756187391619123104749618496827601606723470448264903365857104288497593611532321977544818832668902698700912972849547255204656585195129198037996386927333647052602372367085114522454628704153896915041498847223567643770431196712071104639550789984026830170093772297450415436236747366265917672117463755937549220036536044181981455717230574146997354764032226060537749384554163739793346400193353106695866085451627776191100859673907032725199527522719177377952724671307639749190067451736489922408055064398027329143744902151242688064788419552743432185608179795257802386673583734815282064179722481160641570579060591201418692172237229644506922771568546426654515212110072591127173821592627140154979750357069107005168951431123746695667062848022157076463347671457196176897785158892434906714483727829503032695607614882020663478576134482042618929311873614171329200318544571926030805572218562709964546765633286808607879313384720872236293855939735332294292555042420658261893145124097726210193409591718233642848301856465420192435907745273183081708712137037606397965023778994402088261262622143502331276625705178976727081981472700801529314089871450159845958953787768647620863294528589084406660474882389775057930724914989463652627132295077146661787086651748903947415078877688146744410721684751146367740892362755025721995861199536264028146339269183994999380870766947136403010617208889003288978879628162941553926928658287192102146844701447135629117278085432112451551548647694065583512662677545330187875929983424126420565226173833758923752865415396891634841923743576803103577541821903819910093084622922826449339486375582607710098521092974405338498248730542578162153822893414272222681973394192413720671611565887579217261539131562538089098186911002185855436505250571231059604199188708641346205616545077955635738414199276764787323250259421215444495103819226491513149520045823694677828257331372996225040466742079151186676121209684887155231444562660537846518712946022677137089335464380139299388895337530797072264830420250499420316117458984156380042537631525536843485856676872586089539867069705394205584006014350652092729136825243208815127931597132334851392853122508200257915647765977497222447336548894529950293085178532289314269661811356747175800155572827390605787977217244093606976110706292502106133126654813115840524307418513897254085407338720597079315270854075063178521469788639821538799260822325922186217388857031035752623309344044429692531266081935383563480544594172417706400929207330365749481024243210627400928830228795683404109936225850031672156975037940453604058441658992468979581195694304932562577796715661183453046120350462805918841949335872171323243816553702609385059926755648584594037809220532607636639101083548383950896454342445702304768490116208877057383619316251728281196941295399084397841440243661928439222661873019848390466435652812098568175915710155930640543657253592500670265414880519101065104532649619558498131276867852960315998941230869471011049875206943678800000957435614198798627316834477980446232984153578301536587841887789239073011493776838435979177676425550950052861579413793058713604255232059088640173764481190817207682020521797599132768171498118667642369304206298737375004865248214616356636066036901170597255065180033950727484747513360215833513721695473462736350358684786652219162189167128249699911943212953622683254425063718108117248803758775799616297136785897644098038947890626882727390524770087182473560102844552217569253289575806106907910696333149110877763960760356567197402403363108237472468259104540478558956943970729719360736184279090495080589809434583174595360292578032263770460167152672916876203200002220874206166582388667701642401871078706144659813764958525885756530283671077749534632837977323203682030628503729367670199906331216627918793539686425680727275560084255415245759942630854892165779554265115375732840552165171175186203034870073053652663279025208102971916016223387187515313486811828055570416684061738167749956238306772464115425336752589130946412525055993309145589238732662515354104798754026514665014927649861601468337706257049230060935939465577047264805974379757006815926312388757190238723259967628784423495265991728781275214375890902833549400390987724556088722125659600102261957278474845266888924254794733936182434869400916586218789453618477022872098524829042849991665139243562308348413274147355553261609648125019048610703359149507117656701450177184120519011243720806846287389692519915958352267505192598258751879428841238626126786151840689611516524677847875925299246199164645846283791756016705815447580139782650841490358389085321407787515674858354881583095367013793149047246860867974643865903920336294487068679721183817401259602617961770457736621173607612130713675804376530897821255516886471060382618634691519751533721694640126309802768168984726238513162620183961704371538063592284764350171246711490933409088355923950113165523452828771603106429906537261674351109866563967003829785176239298024641436274810141084549673358178778809557370661092197259290416715460521141040040718565392436635347076762675119571311993925909146171206612379485499979521719369297187716877139527126735704066457800354817532839034568561786934683460619474952880751950621329878911292126454008272160852953856195585654766562148724932257506785924454876456653570288435635071580474382017442702850028622244608467041875337654569197085414536980855921933373901153675783227765698261749449463437326978981182839272476162440976354049228180139184328596300169647610911595987880259091120089093850039201846853481984414685189570383146425366973799775512884885553060256286179127528238471725534163230560635873900133367202300482244987197092378689992654418103366950230022915731564979042725013157504312162379175993894317057214858732152284985008016731451561628184175843853224894731778738458037003831639192006869145104612734520932386426994725566704780333544395408645715101020765454927842339153267009197737423854237354773509506876611874529681692738873767193807649902085794114964570003794376198426514712882022538146578931261247768122906690711375441281466845011984907914652287032559754455901584671844337968493153964241561103400139493370114129572536299292844875224270838625643905501771489725378678470120598683920634854771261643373202787808433800932404722374296180403247651830597349993909833216481988092902071757944391439801105548051208345941255628799866370025970262465202762658552762744365059550333822384968220163476621284730353704723004276492100297756619508645429923430837360372960946482144219841992005052298291863757280347515027878537227753872157910908607474057443941059848055750303698486463639308094931645563850964843509171460885242184424299033747198437349642495416319186651360923529090719112965083711331689239096704155207225713692304752198376559037020621731953831083252425101128690347832790382310797913634539866133168321449401480003232525000549123075829151770953980608933924244283878558650587757434018959215485028967723686588712004322300878199515442114550797826713989658032934454625051361222974548760790175518373462931982054022444807708633570023262731515833090779788088450873014198966693112899286244367271934478654046709623450471161698363505845001348032656305909948871431922125754180281238073298914205660485148138464031637243724110179549584097049551303085908838934408782616781678548012388372156156668589694941417332604163063692036039899807649936642285590895503460774761999299793915874532914705807889252589670932493688546838753490694651516747079777261900584999089883957693020268320551348976426808004081969904345466580096527140795924959161490045856023963467956347295482410755263084309078966372168634011563182122155244359442949046816805472475014870167867348443626593737554271396317352937556124729205342879261944064655718936991095286454860052786829824728707733489985865457196072058052187178490715953346379260747659693867132588478358136791867443074243179741537874882516399586701748468429149095173372888810057565133403170725881270253320426551786492011769607002907138779163096396024963540176139956262545903836536792220453661206515959087686524603461558635749134063013364616353148720567508540119003109761386233852746366359402286111796665519237468838255739421593297860044690275951965471415816638766984826851969601225084493667546346201630841924633058435318841260120529434213034348784412778754722140963625929770662174931343831565333098383209830939131223133363055723385722385150794443134795082400651979217378594556928368379226292785722570494077426765921641312994946757520018573468542591372256797617234863137516612587932474420723421847473360774373436112615856659123289932825716734727146204427217532431886917197676542931937757005159081608462340398119396641842906496449997784840201029335844850817243387392883579644092066240256899545857185530438846455413043930622354969266479849167861294671510295683543515861051236777482999254040421422801787523947821582131695084649725174356128523302020900011668101839558087434257124336527585519426931125297494707622371024778934227443307204561949713765644708353077205120103857315062972952114553624815071761099867359553570032215973948908469809267549909771278308039508868009135051793654663458184614285474364842989782726623843857024876567419305805912516203327132879588637053034794740667389695360621434397520814231077840693485377119969016491822156476374511872451538156389592888189156472618049817878468298831504576392253635769010827961241969755915658953370486714287201434920094083834862809996695732062277829271998206448152866499508036078259048307035369648086168212749812510825913504533584873492194646506950415184089593378880291022436171519080960550328568936408845073146387681657104955313412691107046181984526780680587847559501680132013672553959271649643880733739565848983805820914666787864928270608215085056162797587689737822120949610296881231574263707709225545623777490295679119510686070557556171025310065594257930664575664016552318067416329385151316504835462646745055958721105704037292329458819324352399861893542231658687503490919978399701493425196530325773918106963138208254993462034767612033939274944350749476806420832927216851775636237425033307436293338213883387434783462044496696767863846243217774772196395221158549518979365253264131743007795889163003369356291199504289505990531789298818597114088469732187325887023280642235731592267286018138182470550146826197566560088896555165001321962536429687283683304838457777211619342395744762880051606267374877380694053019847982462680121659782827864727210840998031256626619208622297415892687719279177366819526029187124681745719645752681292359207062466365084541482095268929191153941551581675215148955759274664011948477278924445752050084723112484495507688972275876067820986991288121858823474795325359754943524513294431024836226787906802919764070324232404542727041939910567947611254166249780735879838876399896438504045426665597385065481370761115541600481811506077694232862853314363281838662364477955994504105133837024749360869893424768360002829660471044274701013025944221423797910113781232244244525842580584831224038759533275653247731641697279092970530133960490056777910354383068842150881460769434671379026943487412168667553393652780369935825830680939540306195876632436099758111689179774800710864362103264095408421477707463962703685105527235068847599390980706851274748944923921005866924745585769661629078750102632378196843510963570638734081476043557176925473734480718977380071259337447683153710679569236528536393986985989371789734366518022770527860842984712102453468985604052922824021635232339336446213209179568395809537418745805713279592242979307035724393781463588768432998694857859423454884530366579283868683479086600313750378699491581196631654276879370156555916740172877550722234668529604117577475156392700961312713907460528921167017048510846991230710528410037014291408059112168748100086010546303848825089116123315093883063571298929074012532142146170737806071654821541835311121618032624385518748090258854753878511031360943889830697982453290217868160159601207663737841899272683489803193768201167460711356813599994624473459503204416563300488097115980271927226589019869662215499546314404304143620820427699836012615638154552178295775643374108554819112543779961284578998421120126513134263577291754886382002553794623046696936269576851177092052829231791809671773253636417552287204651352845005303941438730666659033489235451330095720331323637186825111382500783454066357401789572173006775583995577193278141428961837744300533773815525199044233864896812873209923441684406251378177179421396220767228139260706780632488023343856651526077240454854403707406638111443432986406042960155582199390152246616997662845694362101581209164751974623647027141700041697149740208351237782050525156257614495042508225212291396093539473424150928811499075173826082838178020993985446599402065325400247798881147281472178490496610834792100375046223343246694447774976195255799665526085901076942834703289307992776845810000802399673961288218640899504422609408373983003591682406663160650337488789768643319559278830371101609049210557565075645011765654765103757543923825209890355235391966325285771753506920221340620681838694831733856921312775723882160207717033683410246503276210962250524826358310591680581854204047041841438964056262098340852348951755649938535982801272227065404132248139307788373854520143968728560952435357442110374611818882992453129574792440494710641040824783171812588878981917899652016646729501591433779957753352607254020647214680259112567081229545813569557739092249984998482077650252227639858009182445129719975446273672475283715533974217304634139509254951331617208067291121082436897869666402520143152784030126016368460840274762586140142501551022385231403572874850490511660027816304790461314436339078390626604637979366150322262495263636586945455670650855177283386875047040681110586616329373099029361604935850105666941208515121082854370356394709199552480143492543462631963624693745320631830980438150697633160964545064385004554468082355915899301245394516309326139778396796047058352485960894535524124141820194031574171367554073449971192491216041163161629631744105099124962568754760860408907747116580522572200546993831927014148707610256558986034891657884355139814454568360391930491813785206881883165886552529966669967438949224294356797154826137362643204089990520612468904520072550827972270774360838803896690440758139314830442802840714110260793339830198064757711114787874415463566698736282693569822234175092869211040593175624883424020401284342375627113924520685482692328148001462649457723681322183575609996359267257214140394162330187505423450665178850876972917215182557735270794115153215304725942185858566662886931162794037889277993944574930477362557009121877829964949518893096010850357135720228201812375830193745185354213906724077815875510741889392837103722394962433617382526393848673203817029694299872901019987371690940434600431227340595674264616925495061320881989293166942582724901221718519684072728818301246190299538027793968852508013032949584724698444604741866733513676095064408254595277157453350411411859847272108462870166368851848539600680664319293913962872838583449819901976183660852741521189647690549315856781513341611342723314631748079371991417357482127330145330773796049578747023834057567603467977931473932509455989055812862539985165806170122517576662792615075146087434242668383089731085038331373512948824561769585183793167475022392340901086751583820799572242295240152353011074358297966605483023276703313227460624258758306147668807181286734493439331197541491393083300188852067613659423541881759729162316144787677151074140113956675784714521217609926110112767145289128761144638579152607709322763134604088565764840910797895405266744043579379291496044476132306721514294401417976578059907109287093892766938476534174884765115185943840918196583139726842371261241745972721986109996979337895188443572656877020147170806479248435847126697367187494312196991204319653379292525070307197323537063697660594929194383478766045439199822257581595612806170304715411501733924727691725649213395435975827407775498448248030690221004128481874063722117193493242561502304699594908028028103709935047183332253278871915566455156271467272888237833459233341121080912684736310028810105551268257110900823994592338353180602275956170815925473715170843129545184555259585178205996626799954999210477937368498350806800874998814744499848906313028697814926853572933793699759379405544988712721920975182985718503047087064084810810300957114993426236061298681508144856702171854123013313787676331480833328120500305679918759574280651753831429647843727607826890924002404335701916519491404176731215608168341473946644771132657208546288443396686641054955393667063652442339139438457320741688627072478306590900248153728916222586815444803293742501039504087121020272634173194921932423702599202590161179525625205051463940612162021897170836430580403594466804310947377201352236617782279764752886794317815325511086135366096351420153151034324315055766341659117958416718300377750496646866802891339167845535643447177830337641680640779510678604458490437030194080371025682432579065400356151738406322137319309126017025879865368902917633134807530608915534065541576014517020115295781489110122355465887441518344114969598957922549202836963468423820906438552913625105395968474981462239162425299395137008725213866518602046153334272834418025317395295641876362787929792447807581189089307027227618499909614231227456465276288673381306161666921792458037388376224012567227086017418351829547265159367519588335615720575161771602487449846432799298194734548028037032093497788119044824612154782558278525642267177108792455467914588798432907290716584007015260288295707777050419866480762732905206618186661696651976913236665313882504868855602185886515876065529446651776954597816493630082768230986834386232641971695374204264377764622505629467278630528478414559566617948107746248562876576579708353268371972367121514675433368984688990444410782045725842203617203010010572978924026421275049010482713644512888475986483051012953459116425165681541862857237144993310048203680744617667941969050906332420657480329474327031777140986744070417392778548938217791168649886395264424848110180371881545870149052182183896996711627312491165805742670513679165125683600512002988045116393651436189921506418142775440643412907166885373331026131492789188058693433336215273431402182967795258160849845153757675190652639471032103277316653112060429428585842775443354088427608718437204971648177744046987531605822666948321245629060880783054116290899395788601280650052289603091118445935103576245046435299819138973354896975578721548495393661039400365068024241571348015763554319831604175583724040901421094900245034908453993820912262442916542729326022230569162275699655585022804452609820174130088346545004352837206958898613883343809359043280882183979514337891349513297360870308234963481095214813330057215781347636148799385702760866341087673218126222884082658371539213773617040457487259816327815837883930491129828635112296164852418570286018351643786801067456175605105125580463698896942526853327883888213109544775819786988480802945805393382192581411915606901460589555276350614909058108466209726045640196479761687520526263980297971602809753390008909673264373760358999361689540571820553193265946669097301272070123506054603911006144701014768669832183446712820552989516555753069331622064980786359242096495902812816146408707988566543955410076169190696782251730338665136916433733927516130761817582156821015135165080776703052905648242309411384107894333162873742247176026347099558535917138723205293543870605653017386472433871476801839271194119519985364648639693433344644497284904164959199503787929486157120078614118131345898919439238447986508948585019747963134074338530115723089217005290442289673002537142820178205697483122135089257080327622930389154326644925555868798532403462275423927128796668035541563382750920397160535916318108859470321815187528079689998862760240926820034582501096798095987622279607107867839320579905428955148252583932599244183514621469750620545189931036754270047933712573742096034249591887974787901980294839825833915000322991487520384754296794413252733853460324792892262746739110530705005188075597084656546040530066231971448226967254951275163751386744132324888396214017553489817958501156230446890244006767925978930587651364774495105694078315501899211527967572491981513395852523714489109322251813795346274701975463111669970700520378548069241709301866210918846856309790995392736440264967588083140629869518845484071585026995614073682464937710553193236726653534585067046615823710145176893593141942107857122079047776892404006275995930342180393660673889503151610083025696231737521706392020092882504861750126744826518865083961744945441952194099693781540596797305690390062839451964562832799640888930440551752193658909866560195819788349843096540495514187094126471524946258827599383199760753365292674193146244843413953652427517345591788453655897762203005054132965967715915954914311256227190688445848064971565231851418384994268496388309811166835548830081369377334715121651209003223439590046769243586407388532505058387010001616225265632968044376994203359686415743469661148611325914724613724277577906737339540246166652090596515056636281461146394351345319085827858183233226225178073590992073518899469326780997890830971193611974158081025583749590405467600662656481650607445595897157138497459773613802947290937047672961619757288854326626328671656784907684844698054687144046306328344354902061877073016535556132994593583601982887991989121803526542138676672988128777648151341265665151137753677036755689389143633937917866854059993301333121135739740507066620989115679939556484118462703472016741340649611262870285445845030931145890870718306825880315339225962365469361287567937604988965094142256380341370509303979525233351175512175226559512441856691791966794063542136093614952602465547206310886935251309268861168990199578440878878764582442549468325700456598308216107110628825388401944898819190665034034551224687157843535429991489897158740055574722520397858135903202394726560106871883419085405526191329015344149084286964132657262693496603926957576489375346512099702219092233701847645948137529405618818459532134443403913691211924324335093995351389138790905925383868830388040162948735607522860012846918519860780727747682319708789502616037375147134454523184142734176404813506459119740696437090202418051962493639665266935785092292978718105812165171112950086812158596283431333688452553999036550446496305886704801008447918492761439003863424988855378440824698584401754007799053287327851537070934071421346079257862052942915025496736362404687957477705119354963294205236430143022186278088571165795947918571215120455822564826596157026284615152187323228519753727336228521685589039175865597477759885219159163367923265991638224907254365905475780185131890370482951032500213204405119421541604837712494761983504741676022191076846188445734838873821091753373770188995654619143923595182955754243195571475012683070634840118406614958104998027609609929848373572862264400202789176813621529021518165018950305763576635741448766906623733917643169270421659459008387343982739564803132761245361943542007234102058619007225553749298637000879868896918328940152320435020074845369752725759192448048736276014415730738831637018730543374289784310569334687777663265289115367184469016345705192863501777602104381384313654238950143804084361450015804610840989840739137679635242705439407695224032886170733026235480922128679090134360416326609247135743385978990062419530729774386686804123113976152540356594135754711937350770342114274138112511296669307241386745439945930638391991013644327269703950735618378083089317602262845641585425189504505540164901531411339286621734281491737007385320817117031455596250117548967736361359335336478642189801546206860138434382751473012455871175462916181125912683315414500381080664691778604591465131658014245982132146023581036076661378310296688242397852798590779983794968148482023987343708387621663583164503062399888137759580097383599518011633985485121597215264780798865957604193329248082193802962579703756444542332764227139840087650412757378331304074496024890878477979251411902154060490540641118717997341197617710762716167287649829670633710138577439194025114274892870663223381491141132223157302122262438345153356075450952044728780937852126864362203194670752775678149551146817647564458783774747178590181395278154063729947396207224027413941925264258477702600358211184178887430319805171358917370573152255799803484730644592309081335488807159401902588772588892522527776390628053561073514938641587503320444688374627309544530467429576613646521668233577613361144474893492158171382287350634798229117181801893979266400464113362701440849140719148420552610506510679875129711177213542396306145611800503767993624197283234378260366713064102800932537608405968031484313291812003486313848413649724112878329533417882928395210262967425861147201549848524209889370302986318128989150640996526311467502420825505074903040659756056650675486914260606078269402662937945471735741766023710672780643738876079648864068784564268326469105623713492966742829433678938664159691879915361073667131663697614932230275233001814494198138411618202022001439169510382541309666874402180742736431798141511677548083782364723445361198787821082188957879919585697405346781187213491932228769296038790310966921226520982319836628411645986701413548199120375672455640885644180924759423130932119367650885024694789806511841882166761871059337787769298029542120843034487256826913853236086989368598692882057924927633738059162052476167131705282218561963313466668633984759561164798992149983085448189841353879347101674842443584154963228269740533658744575914355948446921336464175433343721993642091887679943296062615699385264302026499718794870465047412970860221287697902060140760745464557066497128693746621431346541949153755597885844933562388301014335998324250685306086962907447059843776415488896385911046111594241287148306877496314240344315203885602485463480865480661168112953348720357823809663204164419914777154990826318066666210339943252191096576004008640295159683996611690951127720798480294668375673969297242389702938470868104605972474439330782602703848595323674393500540770555716574434152467988752459938395137361872047029653795057241881550322258234885725917148943030933067070279363949714356841730194055754213707211651810608392391153964883294327859441873101124258009897635439980028138316211487896158245933676641329230803420061210955645932526551844296275809510615635672765548482822424820244455635267951975266606852500204448590236070098902277764805710729810918944745027940092033782014455256727049286732472612742894144916274481781236879649010453246228946394079259568252049204692639069845978656915579215017717656661070645940205928949735288667008749806296330464954675549645301602170564552899069544773506367335918216899680791883505017780897626514310309386824245079775624861625903541091552349784859587155579576952859750247865885345411014928530946995294653448863048789850186981194065390566612940747278094874049480729269393355191129800409800631121469392590716225834334181483656525311610831907869084095798888725861702303015181032748816334662469601216219382614383560347128982750332401824081872781763546954252146427593903653029116296378453847652404675613040213600502235940831841861152702692017672701301148114793526033083670343898630427818280176934268063214303621847297182418733340267617253309041996412796881241255300785845221520099031654361816132909249991016975881605212311741977400946996815923543580689622623855243136628199808256109200009243513894406816486384438070003880937549651801691572090275528156184496872903977719127441616943004307016204391020702150204080485839546757536764256412386796738157454458475307291761794867946533731872595014914040073382706157786378627113891980327328580953242012990155783652570556085137085193313937678008550608821981555632641473569545781878230520023016322216372720666151284073047497297966330235252164014978262929390777028876000489904418608178138799571094988884880670513187509776969697709902667482229801128242237945552026510245341732816666784669326658314813588782195538261559088462401932263622206913699832884165621767873388187020275699016131238030024397554701308689844752924563164006121747766022198206509486855079652715069022614988582774101695862615069667447210462360608732478066217179793980220335443021382337475961543620072983009446832507029528395795443680943063034501104014376782458456342156659401285376919397929674424427272648957970713938389955070028068974794433123370359300004059867559904113664979366313197085429938292779765239295004022647530823635088216350222883688164599980621913428763955244111378966290838173208809428188243862600401042692983211589365628346003285289894525797574744090773219194518105800837326626284768957260968177748872887487574576867635827358631409290709113995234494700371751896325721689156539049568129715384828222379594687749911916522608199963809628533304549506007128189514061034346985829358986958842069970715093478310764241221125005822176715159465903329621745280138393749150737680654167198502344752158619728039969238106005618903417771564711338948553573738883714873515064310423796786615559808241031503376445882304568780813822768035871605117547354689202191104103654401752256077255683175844173890951863857787779542126294027501778074190474040818664955500299141768336641270760030847665814334376777085688438567987389876524324081899942376110009775612022280765403262693496816757114858887315076116024231786620648288558937114261055855414289627862440797351578755489522470767554956181987398130246840859762541775050656674233743428759988072231784578417295500325990441091818821922299175390187137288842180379817372672077120927745661687530329851310089206106658029269189550455343996410447673784979559930060087782396264691533295464233839838493228489454594847337267399725311051621903674713196133047649289027071048439485267556888048743691711288874950624055570028381630414292696337019864104837502622602824415058699832128921753885341422389445863076729279778638207266899364909693164523183336390116421876143841397419119634939613057097965210034025165498104069770591105438406335319878484869118482099121776006113383966060903760903927094168730501970940123200115619821027215550013715378803193520199557257105573497553142307066937882495704564711473377114157008840766311136291859456493307228441283258870807268346294982220672008887417140225899692025537450045848492883792672037957378440027329770258996258751738077673137601332524132317921496597334934626137080801465245919308593314315858347359425678125532135100320361604980388286458746272255484421505866761585117171990307280314922074298937037324103645527446152385990519704375997908779046407453250098492367261234498249918713463930016298458972374182098378346783961112621335334437688839703427377081134558295814644141846551983351078339257700648865196190393707864832601025884372014084108197728393029127835600933441032054073876669714568017608892663073454551932272078275980665466749405846248078379069763116262184424835057948984451834166531516846473979558185882044478126875576884998743142469474008021219029177313680170287320157869576230942190865161690204109425063634025902168529772349835713889995390271590891766674926895156324817034614095412783496408291954364599094627501193945017316994910995504995236520420109775020145498853707967341633024095934746368764829717143683467911089796223628095350410557944198738969695269166638708425434472437402129406683955995511851573690374275334224432760696500167186514527769614446177441249577546642005136895415642263727820599006783189258497475180515570850768109891306615314744917284389599890613923832619140477779371725014478216879611075424040075627759432985678450660576167254267147921132871268489608178289493874910292740011979195832720768569544028201378985882013472828285562602293671456117366399113614554330806239869160797195330487393126787358680879934018899564799448100958441838364294323688308594732572208680243102566159792512115601826633849498549971833426882196493917688965333767806902579612604633741648367640746394702419065801954168440229258516779685605892170840806098963338785096842626853749676773387047773215685361570687630911545233500570679610040713484131037499136278775995274300863192990352098307554390158839036907637735854590872154114104875094668878058588119610628431617507641336753755294887020141711868393845176761362784594995973276904908679903914813603974736691830155776480873236180313703092170901876891318299185238582511418658282451815256322124160125387561919092410733856055538415685060487571629669845235550664021764852309837528116178608187023455619059343968753828941590540058677316900447195144296823616655566382812580694482012379634154179820500405744955223504037487868189888828944014728212067355359327318694777730526657362136596726437473022072931932638825281831112252834379011192184732177446508317715588480545567806698601241159753213582841189715779862229107782755503781429115750626307229799416783248324167590816993706840387468236814379484851290544687208368232260908375459259765279788523436763345526994034550679545903226677109756785938011035065414045513783976014103985690930275273270925370567120135034234405785545253370358899941232137905277851683077482850726446259896747367761069840377333130475066508555108984405832790619731830518038458728550413862138440786304027345987339306048365496477135921729550188829480613765745912944577234305259742684335830133003575113573745067848161571507324419097754010094164387788069527941502221860486132056706262985890889636340630531130897348448411760251939294851596364107601407210990616636294673662259399267798558076136120389094937452301827882243168293843954352245515708791360650173486670392166667798780219699677286171303032915198197995041606195937072683096627585987813402930234311196217011068508765499626481989306611065825749748029088063175379907066442913487182571373343143119646397295932434696140840169680424870434363840363764454484439037176324864892447663987479464253457606449364116377479902734034842048000523985866895894472467660876313018454190156038620777494865755716766806844075542859919721482841461685630081589595941109408154284258015055599143532465621303607433485431762726940782696719279880933391841588212316607557851013470466014211726171598476676864935204276342917943288602382727806919113336532253600545015438648524924308827427342425367824818338720723422705966747011151130221106299249121256471104290989511787774520631359590352443245831905251728558400259226807682869909387977202900607554572216786259183990898617527465983985543808007894214259233832356230405685306219687059640353249666505239531775325234527225737524139907605411962199500322828262358577596036700172683434318274758363396966683599784493568352635778464859486206971069226515196130830436618137334971918330982169406485063661250050182879203892355246997646697156730521734683404880497467739997292726832449522868642098959789297916874296252244565317878563350063834677555152583734014268715586248030635289190868809805625960283228264179354735560515610033564151954281691260764457504616560627685741211319293233286101603450807185541449679422643193106333922740639766284293673670316542378651863984482247725659248121046432269407516368683232851895658771381622226439806737896948744578851404198138823080376777321668542163104870931558403353683507280575511667305299464230083298083674672774012368309166791255380252923973226501642975163321631975127226175597153766202452950492719336838934481184333645084594333769389616797270259663313799645874769931688903731822321313252895801713791506832645151983633569624634694545828549889909476682193270401877826872883177579407217297020074785999317997836914946063491886973947853840888359937588197381573876938736705716571191813921680150275817576530147301175258692445190233803907700377017196140465777328069045003456958327685225853103214252030616078447778345126145288532697924665100078588035673310001784136233171616534018387805663999405213277027279145118618041278350604619530899126971796991452475835813434872662303020474015500325555992080718094724715915075361454661377292737350858318262003181862749234705577738745064239468320190869197455899130444632846453247507956403410432744113480173604717712419203198605385143402237836404338544407758737084174973872902280818206592350872782809856072800016142961746016627296434306270983750645499810467943111762126970356186658758649807782841780186639082469637729675653426020982156381769747456258147900933958171309129788714809846941613406424859453472228702796825228042365294038659485468424266626801964499568412770450475336860364115080309604925031326829370597977912972008776114948737632085865769971777743783718305460643342728273443010405627296852310594183782409876456513137854308822360408864241314377573032075992289901298685181101451699084053742454061156932754383198594836059291194849708209563082204403552396483934811828833786676126292698686373177920923130169247796095383793402716731784281299081787855579750476424674806774448174008465275561941899805250049770473189870572243935545176774723031930180627121893242088100903797387205954097123064727400808585969716634871859138080157183904243357682467407668136718638688168902506576190496537979710999439873825892429176079458157929869693874313207814935513402891760611613445862644450428931965425619242479536996919728742675576759094105158386389083599263704569504862838526099261113565652077211868558045039049491462977333469185627449009403967196196093424500676763235983571746381006663744271657427448272510156831094999852841290535371838820742034173656145145691047327483276554806964682521979805302897729389001173230789483033365360611422366634008741537508056889014023909040754127323617562853595145778050925498037557705619756554698145126240679399457145909209374485436696773749888530310782285964002399872473859149235695615971950365507670579221619481593962481831373346188176535281364970944819823644828339929156585549154108141271888654150883816288123931176345463029332402870551378254407787094676886623001978884393679720220222141836586372777655431202313532283282260418646713034557857237747848250879234221618462558120949348275247953743255598768157093012844974695823947546463541273034620498269041575252078204425574957844126507719514740626661511429085485896048279150804685607315168884776652867947653993181298698046704593999326095252614168098304901502515073712427805458065122246585916695582257862199514493644950596413600537249789626290165241020776984385103154562289950878264025311899126348916404337980390521069433441673533379952160587209129198191769257043636832849204928799741328414472717836765331369207631745150896500598007987994354932493775564812719788564464428709760269605564450381893765484141138630482601303786010237186509318625875684775515238247306808077052365602639826081450461172398092043330003014696206479481848904896455205605616663184612321606740564727004500741095516117394182019261916108481318552091420685238293080836370157827431881237930723578372023496447782953083823443173135983924803065755764422599702203862578396901846528725274893510737894662858782852722721830471155238903738579110624158021363815283290810852802227205874205509165325930413982911093230566882936702715932530066407051706558906801486823516958405457807240545981132283230475628303282315278324486565387549216951746564268259842715170218355670897327039508269322541071003675776957323183528882377819854339403565684107849395317195924997684040913380390568975813243135298076319764790483489511761800718865731469479613750840960019234565138842327140577988805303024741043306863722869096203683105590907742506805113781868733782936046266001803809819150309349221019759198120496604537305589503113217394144776228927846494254896095376662338596772926737140149928613076759963138054369849754335670976972036426174198732990619743677870568743017759999388365372836365827906515297201109649844959319185909834868179186794811805757209443701014619823437909018565156921827312762189609136558580707407192006027905443685448465187233074706659476938265909344656970213430481957540834781174151542059712416885833069188887866006030843324497843730472078702857073409794559794117551072584484763097147522113131934802580234770766232999228523084479644681113718675062422582203037050369055180208246783506193458348181696080811643004503431707942390960650218325432771338730032332873426328142216579724309525628036436835500270833896596989610029414379169725342002644792439081069657229488727217833301372174486247630094840109707194314465834324773787867687044677663338810259049562366900217739558543251421293048999577706438946682177823853472666664313952391345869112127584609389912005966143365732080568710660626072749658321742373550191889081938290565293545379745507275106491078960646013969446721434128186159428242561197676258517460162362329186930253419482776129829861765532704128826748269336020058206206097435491145283748605171398068780445714259258374374681395034710776107045911560517601459146035066893030933261322855466455051793858437093628257616720411771243755465382520059074143090927047790753350474826236529486239387835699580388668878437656611050716650373302435071627133967840752650876511123144116112975312952421268343672112597734949990927711536808529809991417594153623936723342728069271710884344875327516062299060730299700539048785607240436834055643641096232848277350207462031857868237060029913441935218707018411316599271774979341179411889294435140770246001512188991068065248679514015519793735732244243978438212458342900753214002986781861987053287768348401715137875980838801790827870234968034096818248831070991140753626089824397570864559286516529019366138628353985805552450976278206460713940994084882960218603427040026505131344726896546785840437876501775408412472753948870105956511224132217156037775565732849878577476213978393553022255470759757590202346449898692916013247064924292324896357037686514000073827416032291843196939966896992853095987509668105672522953446268248961146919496696282209368464067690978324843394300920951446583781600965506408853094442752866364179314384854143676950066303215223813812951439439853103172227712280777736277754781370097818302475659161104447248182674355874787147434059410325824516150101895622996517716675921823195616672924169060754334600182437113135975154749009751023577057083836456450082806867929342830993413137703251993026559110929636337722187680866128139147656906760083252745562337287563000324224092556894744039150457990001719631439307760229047296638897553544509838203333724980711387389159818675067177998761083088596254061467711999610034254879102057978333895952270894135039128298767647320301002302341388055094628316520336711854839069796249722162886314482038378751271101014437894356908698540609868962090974722924361732606903754079161122824995910810837195368361939090494834695745662902895743732041727086355387031397796438402196393740566854228549935621367226704968517504871462359971898373173203891985795306382702795745116705081409181221832469951076034600600650201899404132735237295288056572973387157786354703266955058149625892600112946102649959648244602488718148461843359299820211537203320494327645775900322410189485675696176679772040479405039552852477401193055734858699198223633861675309547294410407351990380305860713498072313056350031516060139332101129499208884380794832594503806161902834764174999688339959481478880317146023128163892089929705110357572527585087766581625828754355109933579891517664307855470883934186414108175912310432851564382355870085453288256632939034617987211503594797633240481003735220282846438644095200505256870880861782489750931761264105688120316830236839669700782244322286330784510155285484546843435676154060645162398441078032636340406071460622708915839160319711518292000584178629801917608361302289072313218755581495133784615735986812805550184236269044772876778109594027011586254793581127678540578853836562007231516740648136133852605746980014768264146571278916428967309415908423271453985100371582718677986631088791924403329975165931238413816518340742320628305816533024418787554769335861430097884148022284324421251097624141291735842246086251796302018903637041921114533804086301298129755966703021826836903171964502734865918739847714905652739677970761229278081841396233592646377510480132887853157576259969732608429636250827083257213156677586617586196928231531693524964219607191279297133227354253848925391253765232574275384818207179912088562314343945675789487925498331520595358797870318212181764509030185161721191050553321172681839044205805048290623615067323343596395779990343990935890802437646315108452127702180574713765130199696970614495250458505741010772387635347772946606666931824322803657101119117568708715852899716445469436051333312267998158109950059038876977832376214105508395805790933322359175850555350054301149820079004105216790269105978125122328166016043760400724651326476833191875336448870929835776958040275866900583902690621427501300750521612760135306256345811575423331230545861240595219475921418271832086809256092685900645346592042284804561577086884378762279969777080595881570156092498361358364575980148822210320384402765022937862741444195196882497869436903612590561544010632299804667985279499524773457763118261479044307698065415579578077323153294018631109981348955054159744191377782990824379277032422227210427252862491622985819330906680312202030100073537272967252871797960491453695590163495159744679351342255968434225956163169629415580462567169250859433202033439185005370688939407116850190254962346336184474276761451015864015736086993492004001526517430731280725053748193865153507005319484104388232419824449388787727049397509848524778732579273157876925031498305870372521785856224658413103750721490150060292790748808817216794435542220938223565130690939985592069758716627075517051294609257040699883539501723257845895013434486900789455059190317585515804100933015657154224477982270804330019167101361168611635368579273226172094082483525987639816646873246696674806189454455313745742556973979120403614923881797433872059795095333627556051738833626417542576525025872492881866043834817743879567134147547759446051686202499947964053870422593139355419863982378630427417092225745083685247872880942745447891968399804524538638642798760214573086795696837042403842929129647976125606162254107067542516683756457223080227973374047263208223542107275876110892289297696898834931265016051003349120273861183880575478729960924857395865055120895736803300746407751273021909001217537168512880756520459291141056202571634765686266099482015075613374750892170516904453069872493420862527055765221142776640823455581249270027840303094271070619056828608438604773795233663725198630283977466666419336242862129002794680770834148654523558121514971652895521232030584331457243535212227351717609930476738644940824615970250846567503739706082126250483379646873875195504687478865292768625360419110622217827745371415031389850734370466301226514117509008401506575171458522070223452771497445800468401443327579930390083616220612042130779564140939800987095576105658669209138656500587415006525157109365040209756679578112324136882633519848005353455040570025572855457908201111674059525832745236307679540433189471240990987957267841728694575991891607106889549580781883247370957098066898040953645648012873859398095581943850277900796152567440193251063575860296379995164933227529936045280978035265236856854156915040765720424303893106676941045923816262696374744353777205575035447350076695381066011844572374927330574780351176291757500215629293818084190207624320044136201242920084106593786192754466237761898516871798887401707641552772714700743246980067214364574282681805891703187531248286940784187720298882751264430586945025320044741810575193501725999414279680765028817859685131028549673208451881790397836113958249454274804919757463020266853374523807708945242517455295067129155961206497268083827707619781698993868357538299996145490896846872193669737180544420006276504042329433622305913702001249870581064250012319728153942567543694032695604390412658813609270285420015760576306164996380780593823017730452908820218149945871831339149283642107646555361301770973919043242438660499833003301848471091593789417354038449109835257363613380795243449900402792948760276673505562232983259614425514310636490307356421309280759426481892463113174827869332807371691394314376178613076034938497774265463159915806586185370530771947909852697056286977795515722498181490592470451414326763372085828770544224911813035515724877662948771169743004623271829344027176170861720403535518352301313141708949347835380822080737446447687970097541355179244493839525122305398906715852736048984315667087184744060683214877876551733317832244997554654880623972731132332807977927187488444231535796000520099393077062413941027547396446339892551650322332756604478516094337981850634630768880039838995179317043662561377543321645595272657309729058843445963437176967677750022926279215667231922432022698276986905991424474481060255749567374358195368881730369744418100192007376941931500572903141704269355276153947338744554599873486882798633785825559997308586779687702194153243513546028402565066406593521753096523367697057286616761402806290622240704625932537534491896528157742874335371303052419725018632178052087438796689017624222826812837223461667120937070235954253404143177948192736258190656550272059118825032391229359603147773195986799050951545573968513010930921847583127522017386548525895831826387775485825996980481643065498676396836765149014450800556415344925455497480198545925184842868456271341529815547380163601756764722434803623332355530140956232612047608878393561905346058772433704381424027975690533212237748643039579940000185139607751039611365018889881756654092897686222260682076328676761139482300850117933318548185173316872033215037128078257795355227265954918485592221036733543644020332529336301430669892183181206418155434366848181036885584993328589845444079460743571193588148686872943075713965411905146481400177205862849690307275388617971280711060404193836730960966325353997136085302118156316023741208672672171599397174463330662990451254565193345772817715658227811252784172234227828312360845062753814915309233623332325238993425118234084905393060978059278332112812580944286348585489644954728129990427708738933100936099197183715943654246219341844443021831747326394264475762130309253702801610467135386654278616636787027503920571445883540135572576843978519802384408179664382694379988261475952787310858086452635687956993693801529902525949037186467306454695170276752889025592011501127031111425547836808742439384152782198181346696600862990225278927780687582681840280591371494229473079441449526690040907612469296124759126420735514919417999055504812693324116597393578111867525241161634877487850313389807694195441414658772367466671078767432213312677918479769315961841102863399570781761625576238839087045046729388148172372442357976219189195885069669512944168721887156226556150119097674565731196981988332292727500345502392775726508833025908763296223260772450924751173416299137321969081850014716495582803002372812600539444452661442155276211025716445242000003677525531349431732339766452309760686222646855478568658716581406538966728226834320765504653747724873860797100481929428084872161883302682121290159973433950084263338312584111330182307968198657284190604618007859945019174561122906131844565060580587047066410842569217339199991547183580815347517629224847964219737311337125809600452157820471759762051159508725589839382901232280369034761276782823151360944536768029796222132625635456143842847012432519074857559135760191326663684796796050270778675779443102926762172858793805564698882286133643261754934466368058949194320582165390254015825138869261162987848780038679266176844774230145477022365863335927735560521611529373966073841886177920121384714346235365640425997822361720530385396793075519645176907591939308261684325753681202979852521440674413522257635446169665594961518682824482159430253153405516067018578470340975831860033442658104772894997243397940343662698358072340242266441354717357608617273981707332394475963345619719861203839368006800348609878305371006657629620939324500588470257641860839537303162885466910340853688095234724113125987512640776661426453236933401960691374641223968030874529540387606687271497651629650142451829637831068099017729042457302793173979397240359185087726588603712264927807142033384287703286076024654244722053844600952371229713944773604785973823365156583261506934534781839556709906874545439965570441455376032135475148025658223874549345195200645352347597143787466274215885827803380647458111319533372952181047484432539376839706684650973109580703788627231008275689448939633524397129438301628475951754051776726903665854789183262959030389600744812089906058960365079526102591511755981915993699436929785487343419695442766327863973407842496330689244937779328741324765410663506231675291899597090108925261399268302489891317217633726603768569071606525376503838412028048934076958509004148221501828207240835593242104444500475561189781151267230946135841007120823227486943604871756040524697910875011139860634224903035889813170730814413291301435566259824596272100147179285500822505925461558235335196316002175587647525948889032812045730633157516521456351873877746961201123225995871917564275173327249089752488199530955859823418043363510891716987701574554047781503943947239914649225740147260613027201052242603402597505416595689913655490871790799386870526362467104469476587364890736691483715242277887926305345445584530460804884117714442229384747561495937797424606292145274458200197467473755730528542781797455413750373961375637541803389351803434077254367307404717201453364573510385039840816209550671918835950343548052936422460123157565707065708596465443453573016797473967129024642696022412814056396065853772324962563813875655085956875096458331948002363911101693607032399005663135434420775055642881863676785494910550384641250533821721459447025324240351957475875789436609130955374872256864785636383985466388351965213245461192603770688128407572981219339156044782189421474709012070442119631149531958426613621906968439337198958631021773770209848498734090208212486072600054393169310801996834387393573676681012602946380566670359828304748316002167019227085721096820670341892008524411112445866209412743147714774723995851581875263529008622097517777063068438694222168087113717305159755642737069341985110090548314236854201810805708370545052309888229927187594788923843531690286431870959491341885339429990498666835569799074229213473762447535697372095950743175914822586812846485874762031195822666877442741804437721939090710353037723676663567359654107097500984566738691231398739085034934949603213046330454693319545744533798235806652239456666932101387567954195831151026692706707158706670466791003738434924598803917138135137225216403458136112391480751673297694913284018649341459728240660311275143899579021526882496903043124736548283122063198412915046200939323469001967920128928163822832266917024436474915525245758736293454429050480581939328178908646529359066732646683599293844325285387508020240645726816952876793310446811311402585777988296451556079608826557705831941362873523833014133023692312235326514258069286622458787936475997902038803570750838450001851505127587107370245425370071970249236984800980861687846669299959171274545440936790620108094247050673630557800806045046822445193127309208677114762078937026340000367403299740207670424759469806132456478269041134925835730599151937534443103620492768143372180135943918366193696750305378247870832669825236742939049268107182015486763672246009452924364454903742123613779871002955206603085447164181415752385386959372345539845092869453841953317072678753876846213475943858944752176083369648612511938044778531891682723323392778649834577639723404401758261609947656672014995410463544629667119620339777847253099657793553551178164547402329432206372825682486207603980498520850593525514283339969473470140436045306725333446611287238519971307776053397947885577961405206209388675195235377668948251437882476505072925182757952465422656507789710898565381428647711292215567161590085120114265605454096611801396955412278348378142570412112615518618731185004872366735949646566920223039852615419790973614968555580574732784216323873138440142731643458153706840503198040920047145435563395028416709343151617493490204019312141485838727579981494387453854176455454286578800966041987197581229535878161482393500460718968894779632637159795352105038688194709803468892429253206118560548172962401028672858027171414022692329573933740892613967797210896144929029871192503833285220676273020393035966118536121104880319033583604325097069144513497460637089426250768486666762607885078529962452756592852661547341703191871536612510001319964840546473520994677358820455100622417899071544429620474403264275874054257333932395193979434376588790575708391109566515467555458602845865456787005159767235039154021580402062720260367064577508468262404706186738957689803805238945742446899383870201710776343690331542619276631271640482926904787101244748772797068229012439489374266804167253433890784869146650906832773208972726495251389516254979810796559277759275231076981761670448761549582923693553764434946098322623360637651374548473604137966196159434184797591029185379890059686604550881545486915824530638042661068729105349268094392396817552951281039612676046696972741342161636016642615845974868091684765046994048284711209877345613188134541828144136429955251021824445043875310448866369691638801117276269225940635556521733429498449301249646722890338179727408542254142259379630015448926569622145770893777520615306695928023554028935966654241922259167158748089634363828285460280497145848085675635106661821035454681300852612271775679877276728355512975712731889519955126975705896851928520329086585310072245528188782380525528734038887579685405192366569659668482310185393669750299269617693649319780343919232257675894059730875754082649559428099901490756449688349076102820627405352913260738037925559451973626624058077880098137357092400996678373574218804328671480121715749303190364474048859127212191049492046855740502561066204952968795765585870371594195086791377010775882181419346770369258912559768415890251512856047443417923685998131335387040671331231075518984681776137640159805833523699978672039727857335765563791117239077567086286574427857869529181938602135447358127546557502044118836170486267160244360486083232794240768276556461051150234745667719286008947726613694942488213094751457770391656475991489751590932731897102928885637373553400373686837057918657605832310691808140000648710751122255507777732344288387228649390985535659356799085888007052711095148599702365759934664666370545370652168650589746309400237311904382506973200413411545233782677000143606145628787825788399848914175403780559851505535658125217160654865692309269578254309700397352159356063027704862786361580430586513818740313864248699409213305890162037743998966645749387019454395491719302386304428547934778021620031126823734797058229234118501219837283387162101895835944666867261575071083117713305496853231915608324786014618533871491974917293506734397696998283766214845585156078731098185551661369435089181477522479983518142547362458488415212405392378405196230427091178131382942687255258259414545975604781330501347946692228383619708234146074057650563813743626859436841426168559452737728620272962840417150515240596410872023479971554362082598999366777779255495410396768475635378084789466637239413338498094240819093765319929916359948479212607568657768523477088334694689164052596903791251476419111945135065149420430977080218568808271156128798090771239370524470954807554855190140168489385201842436197647932344085676943368133195404613420049717661032044139007638438404976914454507391704771696026712906322914654681163459189275565152587347074101399983040786063580337672798583002813761989172362850837829146150582655466621894899402044294210138246767906362336894275672727891212800970881895640646677842007034443427806417133873181861962998220647066250291903772617225456147091915217354934815026597560574776908859242873590523423552974121639957196218233444771107742822838990485456435443253712939286954059360437913797989728558358994042210224858537528445801374796515816999612178681981066091482701767926302876621305997537165088757085950151359553064130579442202018220796096895925508487143477184220576458822462376852892436790908492118948008869733532229650620226765859095649729796093153974033568177750485375138432492505607899080778835800596031880038213249996258060023538375726882486723642459166153846457353809618803236960233782467111828996426548537456360750144883348074443889587110507918202011550386704022855102360882995391418335272440504035091349211506666042394188234170932715093485691762846538999775345055065591242304690991094885032938015034974589712310558988533495147826411450241124769901454617213689108359147680335747862841336270952890921736119345172171877822269025622721328607157881625157084338360127562104412844564860511690933673652366517388032395837572801842946275896518702279233506447307948648585427939386582401342742749524277290501081411991736733455510025581528302902908289644722933315565885309255775839807315952769817465263764010444636056688894437754618109242050204597042472938789013517147169968009999994657750823474718646239676879222438430941222710218284422625384369833923837090818139852494014165507285442440669974624163902980029057622021394528117722071124021234007320931147686046340316393325459152008350218170105513932776507392772509857045905526998746528165960317100376871973054683399851281086415239330571108430060315571031651049046267224756240253948760463884183787769978376436624706069836512498612932095989094626076306919502511337814759252458764505941719710303384186433970332831450346064414093483507749204742285847480695858524384429825656237368873795763185160427334250912030736222305352052730074229672257710241284465681415196308704624613846947143275538577310565656932600800532603665860618093915348417225236970834133286468704395634429579233828243272734707294478812956776531473025359328707006326411430389013998919461829705709196384467275122798322485949766320129890770095990229201063954491095582700994577617705349997610071163312962877136178751409513698013482527628762201943049757400003951222354698075476252655967523055336388350431219189508586900793720324401652497635506576052583510994730815970519416201231152825970345841274106330568860758645590965180009596499600133120321090512388648884590884494762330115994799587117822397556099032011099583719908632557689066373500157803154160351365307478742956803756678453154575559443391110581646548359229372714044553672158470004046628632635136830120460139321180689676623979542738108664380751009448327480104629172518029199049726408007246508243430169566725422301466735312242430287585102291793176769999451482852127557997802624309972971638834224307429888479850081434612581077015091902726821918268503768633065942025436563751050974425886143279674303968643959110596245137168569097496657790624086644212018291108621643252885148503752853951768643709060040426771136287029365579354657976800658382320574105311590156051815539687269984887536121963424480156390137713369928751047616981147854381039527686997165361050812184876653108020665533665288179764372789734768336350014085045048688829828717437148823875505492255140384125233848308227692624507993680529428937234794955363776576154142606538075831702664938372871580146036289997272938501601766493672413646331085692148669523449671032506728700663957489893734909046334315199161268067975199572612414124382717558221751563773190423357381813212519052476154354763657790421361108630334175165661084246292928881735062429263649430278815848476273842969976156561364931277407450776817529057917712978632876811300004913337576439542896661326784412729354617130049179908479750889717750483320412091522651789295811394369568391048198845626650701697064655348176168857647870935905589604666265505686381377378188138689464304181361686671586714567487560234740484159059809344427162301905507495890014369562728048657649682542379397378281876280662526030511473289465680686635941662218149236276417699763189704053866689869850757969334433650605723121810511685268894742518201363633594871762986565938618537574350341765328372293936960042630467468541093319612984707177992448229937751191803790975089006476638119452955368990841935113152978476273139017772302070851204827351465266265753774822643356108520867444433025552955377987230026761791086425496864982705300705910664666509950349082171853030221641676758093795463421969393115446777591131652966123865956819868461010803258315072221487549227660583819954397298753313343726173845320272977168903230364662406470020823419033060645918846599786274259953869880713579112696745358688319672682107749908679700033565301862908289719748175780776203918114961792365994979614546685877923066540603153790487580214541315658207726934306506870647871274568041505230002968209767518505353720054401561112440487594841128093172979969942509681123427016983475437290017995918672234406429351293756331377466735236322565441131983340617266128739957639368612653163664613039028576208395432276807389678506930646433669645189617400137251835530286376606885679426850131918921895818348698813862582650897298969074368070896018365598952864423689612377597795032937490165611771967509077304406682332452105495111808750918530868609108532856389404360929340399329957527492039113870372415345872258145566022212043571384161676711617265704164151591910580543524153830782967836014967850278083067404366327946533848850870628898928211903197778654354260006335371353497201220882724094678401597532264832372437105751740282987983504057982527107302029164992029266405536218452865348138455006691177178958543491383463673328662542188885610203981834422488857956259704142638420236394811444206434860290961313971095080879579440418534482085291476415225101842370385342133422435165411335546892351518208264374736318285940552910943363541597234030955100967869464083674405254316161184436212411286983884865503361444188731198868145901180668473578729351224893646857448503663722375282651014522173356742416240985997126192097369900003750970044817592158908148895761849504813571802417050339108196245849933297437213911457977839928608722772120328885920784800785631997862299719274908176911067541654578341462184062074383938307538796153885750621516836342778313302341114102604128765437644234532957504068924869981316036063059962012285552128502359261140290898256383431370759346571308659302544692957462784397596301711246585343258042986270924280621015372963194987682413923658332086539836628034064279561174117164359406547909339404641894786220021725897433821840549299534170545289873901256441122270784303330506296703797457832538753310373535042550848173124374566649762024225514875779313739839457367819939560736968852564318782366274404704444031009172629425777292410791995564701649925282221438058542173699236793860737826957392925361351237716358656896224049037118889019998725571924967642729979419543959213298083913911107845129524810080919411213448087353433285172365391681951147767306260030408613521540527985466789958247222565569645783115981370278209914752307168877080211893941404065176405952804777911429133854559589958108103045363506131811198610413123936957473799723458518739365143921266394054736261369976927224388623015865216059987978531758097983588180047303053716174412434459834016591052540209998464624570316700138675027507476437869532752844918510259902430439307873003878059827295223884485231430456267405105374617502634469112985959204588457003333037942766518665238425418929738147741150092979588095335429889582539897625904114665489128559308633924935692358510876135135726234333765543983525688232576001490142690070789037460863445236920847814728958424475559403065350161156700361968061962399832707687530794613854274682261895608390389581346066708314169439462642196817360332790843813462004055919352984576472671035002127166725507302987339459834371642752620484053891835760610131620708850740582132539921683500738803765173235011264813726793356873011271318800346263770004996623959416461225015437110584518383477458342545720719173773760407395979499973105428773284845368672286474868051719494158001428163326113572806347033818176613266691036621550164896197317113601665467732997982770726216426815326587101176072360805833434728345211292699592855453296459428651594741267674434409471356028111322338120643323018283717473551271541968198905542481482049995578216444132579736612973825847891724914974933600349100209604406657700114616555133452246210401695419819681766480815626332664915535911672531981461083655942113427752221966057637692723393599801387116106391988752850987274788415595805195302746067238600159941399541037297181928310546394787444333246992801681992384597534047077769255928282536089557605137165632806504524013091127017768587678813366943501638566462756190060696794621202761359206567194155438258190861905404333674037844731281599520842729174748663777800155869864509820960141174051962109249272895280128671963248402372294899001516168552540515155855343247572454014575802883174635536352953074973094290829111502829929214463648747387302557941081579437485235464419129864120798371935094412281549223524000150507547663936920488354514662007585110851131319254987860356897998694315170581846337579665753501747017689104083250331798007722767194386428770338539917167742900069327153439527764481534824570692335413662137018664074022974089880549896923070764863525365127397021144039786655544893792638889570476493246422253303036154143972156392655720221321651244599579384009226022730873381119735418782060464989313293246292253440126735439816404704335900346823922638629028885000677396982371640610970936537512721651859548056980746052078733396425985717970706297736754080221342383183768792105682397688974946207780052488942757615987481063585847220718423395814901591873788300255182430684676323513790362541026243338503023166161437872606417923577364155385801530980430191221664426122229152242141434536239519330807484073771251869062309246537461216093682021275061386186242769951031801419717608801483839943142809866633702212368405369791706666404551447382695702802969564671794425035148543317856284221154307598517375337617929384534781029049345655873980218784342239084406583957616649315090617530892195221290608636267232555078540426024863218254386971833616918554909035116852140078902126408961754672618109838921134393691197616300947941310586056589434192204612583381845421339854622800710110928309411440288207578076375493127347775355411717589642690851303906808005570444747888244215374545824767158614113568565101374371909251993207329033028503238921105405583139623707074662224324611342416146033184076624386027555172451175973155845031593135590394899019001582073080834872069104302564865720030511325102571704072273730066431550514673260461261156254195999563432560890274771455174247674062235995799973233014574821046659553247658355227957333364615020862268453908641765344798151588893651135610413253814711002039463026548072438894621613764919129735436357332374318987989162368747727735757110397514842367675958253939651597823112986614264206115819431909788215789181629446313088316093631976738959193672786421055351614396874684365166899971424501500650317321001616305783839859821638033306760577729902166474399098931909455185514522428815473123631465998329025796039000330528528781536763860803822375427662536985289422363719666066511254797916271866569582808248819509039136038130231013054955627454873945996588481166204740205718412415369920748365190170413285739022773598357792501214532495905691619384663938480573594248038986967333783663658263398367906794665990145499952793740203870235394283162514919514591381257274044940529196154761338329816176131916846345653610981714361191844458640320712749268178707185037761684050685311055309104753643301822753531178526093475757297136176300008977837578360935086375245998863925411729894121483484580154483632552914106030753281117402079640690571401566423815167840396796409364321066726695516513470950397304753360447822349188403608390246222110620029086853761969295870774457259717400366781035218214665659196177762279460226102816455383562631869833595884358188514637513524915158234885127891903087823343829506842040168618093829283026094966044271470936257774951522417418028588775300605336385320760220460250178804604527643673882405383892620546848227217267297604229821783850383053592217740868861611633750790733515663493855986701273931387125849481785391702239727550413841674154150036618138333836109581164939683331712809998797313552410720562901202855030083378840997818640354523508373446891313706645762192149740559152928975065443670209421051510622841878858191114211115306940608538733087989705959455372908105661427054046997620678254048803947932314550257362314218738439962113385013313141449183450399314742305280235514885982664147052198921695431895557822846973576069222436510793408256879682345315750251929351928540969003520376568246246689470426788462780055756722833850262435486009198071457981723953427536593876552525042067214457295403159096274581632571038260507031944434076415443611675509457444864494237245808186217216891337341579508410768177408444087068507836114900935354423233491894728626539104738411337513831235707721026905906891462992770336582350902707908319669600613251849260366278277972803973281285034450142618257074574544264169223064868741879373303755679799889451169109893359022975006466249733485792803919549399578764688047609106560568279768906361593259296483570159247202711906910100206980817986155216857901304760405088946869633154352235404138645645324931853662435507240984210279178837678329417160854310886342792737635924595145280177804877679365473992706707869710767936866769849982180989584832036260195897001098213604220771991778232702547203462777660639677801420458117466677588195362607761434761383234333474347464645784782440252706347502455323045329500334042182381152745019372630025708147983755102698087046536171352557894931555955835586715264584971058703867176667857283440375908070067507972625383134854292796138827449347235392198871326683272408846253383759812040572617244882703267448485751789057635046910172806700463242014357352681698748108997215925597268198737608953305811379019124370595180907787395751596033683705254641764905889045663570193769600832494681604418975786906720961458574560848825754850310811782126719180941440906144007571870396202747520198762318835064099902006695043528816710461053394494533172584277876514395137308439754879808348404182003524477040701684508525253615640902578822091266254607599407050904754349927744659342618544653338115532989635182291666504081661414450786190426475202118824753541295029265780644232171964485300576130472383983846709793694135752979550103487799635691075059311798120154985695732253046280032408681943034017482033105451844638729096014182355751176683488759535007398517210183642275360498426450101040012832848409643868179654316779326975252088617279409458638019869560630893742893658671809920597481951940988050421743218808645310023002345390979208603809146143947132437518396808768815995068670415156381455610075782850469989438833208716612338881518913518242108156256035940574490942129211244842546947585561650181397319196371407777156878591789891555879843833130856227751528591452101252820626581752505632775105527491277149140443227060686959860538320607937755634206046042394668020757358203912637732222933836863991871024865428667236180866212142683479823570179266213859190589518164210824142056759086971949819054043067630977370192573217160911353516531285146534143557640553196797559866472385640495203164052197471920307046935396612623573671090364367010160945482970852798845084949973943096981877341449706635199665114885879335433817387599266663902737010106590520293320668973630099764514986905953663319561841952804375287668469579678771968207552962558547561303385697965292553519636205564358727630224167032458117099256688815964601749242046666186861604042749823869003188396841497694307567499841755151806972624713425171171124609562909082212457086647093634574548912511727081579627911238642796998417864391134187286225847001114677822477473358569584810389903169844690649924879967401197792411669504075572613280316618042825673623169494579331250000932098837918992003826360620202810477940075426617196599256530977875304975593794394191856059622081824291344114143149642778314395472046269948260786001882264694289994231355954678827354336133096183653168142185275299766879940976857513804871130048531942836331651842435421781391159001204570903719218190787626832305020896415899037858257629949752298568364101918856799849862077422723371626956484528473397357307914468150811660125061983437473165592194663793882127556307293948775222724106139549546269933924467213431545525588528572743293113214153728599104250943071274108434689565086583094646986716546476397799195062807708378813271525361218768481850853921251778847056368918184232700760657205153222674301666760858928109562934864909516366552588514692214994919004258175006669239762562755772237526196249254059795266237195327662758098053404628990359407476740241817275726217886900700326013864143408978499352281931286788188518038950047152936968282669227325756422211828313061000308926058897160813915759364899763944762346554445407160801033069440092417324326274778084202145238269520204533774357912074517081954575052349689647320521493211717437571884357151279215811902633478031959874299369278589918780572561903468045417046627043450902065629793255301577809408135733615897162991570792775060823721933894200692338007089486848197115764021523176451773398553952065837685783454557423539957940264796091974747333318526425821539519771809244742948964061619472927862664426261410418135469199894050470896916290940850045201399952791224500089088703081710358493068721993027925066891416566272134524146264151319560716759712424160347535482262987024702509014585092410895349892951117922222931390644456960920455487200384158087026639674119726992883916183771551757489410067704081864161697826315174819033667252077424911948091837848409860934397409792961041218978018419322744717273833498719812648640696669471257853035437104769614889474726357496190677451765486340726694591547327446444626946419242420955108290827515954802355604116966085216578844677938657523863001891239165945127707695254268980461479153196763792454768229930969982221941537588494589519151271513025887326914073124524468284304849163295619266686906806277997291974231932047137149338511753177425338121780088502665232641132835395982822569181332645761141521752102772807682228437208087630461540087076301015564212526601295230087971324650782158119831087046338216663735288384609671843296752621462646125695637569957629873721863729119592590964643021912649470590128879895867277568248244580475092008253074107918459397995097100036218495867243823702072190316498298185377981597591595118093833302449489190244801880864110271792836863907316668398568267344913826306865570614094596008233705575570998058147392673810593631588643314278645230458663004089571376216276492692744336332041445156543585122842552032607408764681810164756843050573657440259287100208255849827502251510775339174947862279820153210093770265538324589090431362091190474720962253125501638148087158487735621885537456560485746107372211818698602074176040897486301780384096407679739421617247264944475704495110769338111415324076160902682940224313092804338253679004609591111384202494316597776811137124663217335965795076306543901492203734850860851544572054823977333913221957213626011679936972427204123589993381281293541618308645372218009651083833325086437252255744237508709398451149860214600615179879255055751469062970190403740961642239873542121204683910211499864806115191131220582260170096489154472239153559485378419793750348188911586451190489317710915838594744858676012107120412834442318484049084540596794351001122704258512908263916652907641175201692536722955933144966304873800902079181757193147566127758182691907387980746708917161275621631153803287543834030680252090210249725217562180725442447750221663665915718836973427732700426389196108269546325089204495820130778887278387907710087313778966478540008105185466726964426543186396282329874783541277109874774520721780216943154129802909946233928855673610190148974097957418824042042454403461552608435989785228258344822156809079451100748379643060157538069188740929095594251972109743904304941580469898107651239357963531088638207800118117667246603974764974015323936206459558158426001018360414417717619842371297203327999142209251087155449303795010273898480009296948421339105637941493911285073327502880655747281178534078570723204542242716310394715496295592343582610437732378385933521186756227253122993732755791229859397231019687833307063856702128014859130966211487122165421875463926982870078244275833926645067819624767525810522422717912555647854604451208312103436194354160213992239776791259340563470639811655850825021651202952789201376634090955621685813813896002248365422492677093239473113132548690274177596449896229488139360531354125403230707064385737319989643268721015479898576806591491574728135086909405581843491961902896822720623378897533941363056756306737298325562107721272587606851823374859135378958368292566754007510371760062782834876460964672213114468925881792892101561776925765243379577182050238767258544699284214770661760249020988894402333095421762914047363699432288742419621204479601959356626470765276785067930489921503654706943007748031633711221024100542082460974002573297677930292081625442948654739037461783443121247093331794150230726634536989513572427963226718264139405318863653663687931028290495206997040245847151006233100351194779702070572077269685393480816554978652636705094378277091000930835214531645689973679571283341262946820221760344221580252525120016222385836817580781933670756252004607360369543447537695556331813249719022608318114509985933528846681788931814855913651232139055641189152609185204628592789569463686685511663817627843612258838336497270912388278686126317220330809647001784690526991807327451737857314319890592210191170916641914621398714752978883230381097914319512411173767021133123790583734426106532853439629280823569905264418003327949115348796852347589933910699153543665725279969732092841573287064241809215599792053805793575973994693152270968962492269496664840663726930699576385778622093469344068021360850426125407673234486045590078401952609903750316577995847915664565141349087116596681974247127358889519292149087948771409831975126105219172644652140924597084766615420505724631575493475824758356650772411950634802539947008823804903933098091665553988147917903779928947843188271818179197772314648724643041422620424737372957852073321180634348746515559163927702026628773076003974491151528055676129407745632947193500511893206234108120882761396985674319316609282265917185078470977936113276693959176947175444056598166021505352559871892961479602609418408265311242104323425576581371268726476436142002516600263954179265564671021869014263417414795019473194686580882503086531820833546582763718801329673655717069393359341134222938728706833129214275418131162586549432707294303921346523000890037313603240594165851859431054483207736757464110236335378954064177629805175569982403233180233473549417377580744437901625587104142190748923046755072886931664493445264102932577580359960948321937682674830916361854963737094837833603357679853931170694617046651792343465926375349621591323020220902959204773118716107874657727530355474090731406387928433575884829489731900356577501117626548258286436439007056520122640394441444253545060543976583576280887066379403914319575959916144602428914727423581083460595538708443592881573806881869190114715885788159766536774394226626685061040936812848679666502785372522022184683170236428343667020125497981348526783721016867524155560976256571982615827213660842634384564954475780374522794336921868837502484652428683681231684868388518489810806409110465937290822811687406750504895888061062277678145921836914790843347076962820661822471102623211162471184065463364333133633985575989327070968395379402120003540103075138963649523961575665361054858144352915263980218789485424749589768778707679340677735521076419238624241635418159165834188339207043569025407306538282456092929965619940398140813322038335909355897968828292102835946892042208697262676307228540036515328176693188752869985566072177421912720858037811146035977610778207126612548313119093600307332768861286089637187176348371698825871435243831307543050066162519559396169064330851232426321132980406194585989949514639548590830777332509373701389655268770436737932610939816656048417568693024751939441223810113098683449170020972029388612808243026007208959580994219532679887218861513013448461156959400389270427868893438760708923201825138824158830372555825738716153159225351790524047620881397673650501127475617288366500606326029247784165890424273395410209878214785356552317520772194074698792093329441205389444280674670009810137782412817134956658676242872467104658685515120310983945443184305064734533571838613808884553070145373305087394231641372253952374068976166425008058094586980627133061689275897845267804042722043402559868227969485969543268759341662036338660667688950157613335985440514253404571094218577717051017044962083222343763421433228173537465601324389737861585386012138546385055969686900755187065329161938815371389884606208620687616832753705116417495682963220670318917916637164375001192454562546939220880871012469081741879478808747319715050063800207692965146703023124277494224313869354471143886257749406955727525651935098079727764168942509668685715393048193135303217180779593698732157599342972644070605250810923526858668944190395486585607178168753770476819153470195069208769178982959932024826386792656272268274597108062813150215297333470219668941648697753993765810765409659903979462398653377778377018839703548031259382920071461054337328470552096438919776911313879340857947918644150280636303468273817245363698718419105400241099676836237077220356936345002325180712270621661102065499382657103182451050420269367391297314181218341753787398055091831101794450645642894999153824351190245081925029326264087557848117972579151685964299840289181077847329236326438836459996111752883885592321664670288341729142981113226316018572989919953360450211314233075744320290637252221146913073457936605809829232092462610909786366945201656095764951549937746248254344233683037960980205791151963183482871319890903209701467207355276832696978940058399723179292095006166828166799557509012316624630825316107639429035890661724766532867059821143462591417745437076826395816110368203044291272245487965770978296484250674203173302165179674585926130024575168714215820065683504632544030884143922580354587686168436811776193544155262311656158511044137678335028384533478544120165560303145400186631629611814460577685948380080054877460900323824414099668651089361751783958862125216601573779865416927228605724389498920316904231979207402878349555108209815846885209631400858600981174409734927505381375152804377557745398338503752173377544512015932815776149912096871487427804273012008300353103832772598731918877894616924835624273063826168500613790883512454702001330791239908128964329928168172962753789322765223295206969656072935863170675175101325450468037425599080796943534318260191777541856837679108421789222656507306323992332056957762958399428044954833762105639902684949021939749531398232351010169936098446402455464475409940538477446429560229236386271393372361627944929920374662743107026270375279780918540825324575850169613502122139561306786747622849506979037877306603793566647647452672473227412198768599244570226320677454738042631387435745352415838409642268648408254675957557447690277464898694674928681653925999240845230795628887811991822114499276018697937821181921489732915287124515199502569530041694718158499501821514202724398142863643504226489930498412903485520888800104584480269106913256133369685961516257589403364687057555815322776142096470029402199572802922279062716620243812132169598108358568585026129682046473674353615769763873752097254499902604138766760756094084123878824053215383231797214754326459930624929300753343630862149849728818804073081782203517716471894476074549017637704069974014987953986620574391300207539338638585631272409541637499430547367392334062914032739686812843779681557868063500942049810054167587020610581713197568683006211991991836760526890322549976138855809868228533402839045915679295687102585235186679131797507034216071149014125373550787582038292324969287610735305750966008088541990983228818967547802307297300357454580438240070276250318597006538922987283137666416062015838064070204275550111413713270452409987493271377670694467517830654166839166747940366887633029113439721039348292608587725969257309869723985991429622634821507545939277148175417012279215373893317552376197831572419309856897188141612940034698408512882513456413152219708027566706626069308948059736500231518501628614472070337904416562230908167770947236590497446224572080770056029992103838765117904970806823785849779027690802221612892402299196210462290502485088586442050278115026616093300775184919125585794159429567138313869695265938355861980169989087471409546787266941396234982906687837378626868631563161267413793312791409237255321101844963745949752236080130325194590296679291440172591191312182141266712412475121344454158000850097557277273372541645884545092314466601792309989247570144563726147285576165584476659580130817511373881137933016856011459260650341617915007668077545371444776492655155433649155407680487639503267860233919747060501176664171704671450633697097538023873351012194230915165694580735403171239238388282905984138295378871042393391495621995062157303259191237924056371283483222421570445727438993984060776754578170991293798815162678365984764275461272652376872731590258250626121558211079662058244489882312062626602942088356485577412319949575353283271740963392326181679087624351583890154905091356684306423522641939800453460736675723874635132437771095642269632572137977885175117271092042100545782893373391316130480540431414034289704211241529259430755440767713497844984728185836537192026167750560118572751883116243900107249464709232080955052921271416957031942800081254124879645286547506230417407667094929923752189180600056170801549038797051226150494403203377691618335969228329670872235361707675337775242706176041044291781687405264550157106768345400637042221990402030683991313953065259018804810087765282562335787557422844840928290047635244054184928421130848752860367568025626049914360158810720446226147911831795322447707679139718202639058436631039020789913524492275234630431249997053603599913584437010609979102499094824679947226579554520917925433679842103097955138367296884376030394157271244808638470964330772329081794801232567645673268990961896993133007399612271939499780248055449128738199859519046251682735210166829478392598904334872516518013471212667359304014039017463752864675332730603783865955382472748958999431806757362699316667079695827131347319238176438834593016970957160492617165128210565963877542981880301448668140184197205654561278521740657737146860705205314934798764383258919970439817314944185739559886844986269968883984171122100677423741782822361696298402630679928008436161545332978200546444834267819639605347122689147536611834412546503495066794597169065897571762491308678721555887276937565537042619505967329593883315925894043113383604982676681224176907877682669958877770755941034089105250075039996687851144482307698092153538312067569229625993372744498430122288351654101281186837644075239081513545445451800935379805421954613826477897348133311268345583825658073624776910078854527042897621814591671362163791333758098178595879871566274809345295548508722483170655948149654287796945078313469347839150094248737720529507712370791308092601784803251069013002247451036314274238663742635865870293807430012678983905204897930713515492168125361659580822713553703993049822935649324970316357758720520554920459973428663102422084546061017404055400422621083108866157289796379663552584631764987366734914730784060976781744841253964861486440374733763009293457841491343786400798510557609403282414648577122780681450676807791939537649758222282049526308952100733733831460283532923801388678897578676407818306123925709274982372686753488210575819021589335725135324493619027622095902094781616413108379368680728914987683788895710477149745035461394624810230156046345124416431396031366696415542225102124935034301133750680245772754498517621054025273231702568662529882011056577562672393273164113730534546504278367706044359057760863428945282040043638540302748530895031320128022437917238065307617200259490325299324938629260081450002368334719911701494682403624379137684953984905434175724890087926396394639157608477498979030609620350719781981789262262838133326327172902313837757789215003897942402057076040206766282433589738839647956725298207713536155762044986267442369696751067538632841182127026880097588176254758003907254271980464304130065572752345143948588226884905317128712142910377169737904601840052556492038175121947066470250694909312256711794558203618271815164675851374779115719256843013470251166891248470154485208279828227701357853293074004179309589040557364599126974231322984530443275752105475435658499459709495650951394211888385408649899901477662601384210928342787859020338162979447198401475299206043228810697460830297933308982706341526910924133299201635307291419179226158561145721963290440626494294501058291755957879859544283677882492731326233484199982475984443432094120729231717413698107946643087988392661391713734753106576816333219167209718003092808682508374112651758057683064947511923392414487027542837362095679796442802289217088170294290800094122561578908517496385158367948256185581809413979210570111814020541571526786315537101366981048393291575166404499385770985087017764926531806764611972937877327770196349611391867438475346226262333270757654120026517591408565693946778184980236991172293752176991186568379826987433571578167490614425302170792266777690905753425594025638856416237082174865411751140144786150642365682814086364974858295443055468103017010653462916062147018916072420160529960261593241480329086625503790146412594967289373931998344203541721087764120666473444915312217289440719467912714588568211440200507591662370952374597392708194995285269520175754515217988644164547240237153039238263661476598928651592548850152487809313993866487021035155249940010114505431516340058779846812167706496762233536392846200206710136239453175582481171105537478368649053123744984215951010964958869287019879728372333208013559425997386911845789843041735392149346272306647424608574459315461810356711281449946354408693251716421730927277997337982445838117434425200899186275724716888919673249338329385035261460352896503341861559627083651844663267277269294052931127690028938218146310792544529944883027259389376322854749530197995042851111698575641637517742397367830569162492256159644444384230130590826553346358817293421004495677992957405356798929163829720103236810457242809439654960230179359387167000687909917374572060061101040851212317345662426893859065071064334749069064523005781300522477205601628880351067501695329240983462682804764435959617394292088523313406496022307458024664017529143832315662132886669947139098695357998052325408191886028855619923907386464337314574511247533273096908532479372609189463958225205855135157782045832963051120507718466670180088107406047785777749746959006379072400017009248800024094247415617756609226537562458484575656363001025623817796998605252721866639526583885693895853312265919938602348425979984777998494278147542707231310719030945231127453693456398096105279309308420892294578148992152479962668799207342938269563761738167181457208662141530576405792899774982253953497301111660881284497817569437760635012594888438310728198393368298121777733101574852925630086063419840243967100450539410835771444649414418226589996172085550548145232842409187759290835736323636648697942926014504939415492613321364730412564570740835306275210945823352132800019864167164635398613080648790058970069988221748329715931057500258674329471304300993141736605545873893920756922330284442493798095437189164296128391920451586036571126816179630910512039956443717871851236592203734501319998009478200602897503076187135835697146327698839722220773427071294998324918394064553010330222066293411191387794829488739255370430501010224872273653421656427781197264690845970146594438128690799556752130396859632868538706288989744994719095627925482609948447066102472067221376232253443353139979137511438529751236083039290774182575573855500331781837801154144784178111932967964056084462820001837257346278977705086968389329346474161596098648378750224809687256414879869061423250003950201751989844928227367115883230017495253721761919482408434334209291596567872487617916629974702271616686184726284792919318770035622495526412083699082358394054051843816139659293612686437495290702478760475283463376556508629793863174967249485609843380457837949308749447297407122648686020420469242778277592634644596620285228902109027164917578935063332692303003729600533850163205090202377797541265823602859831979047458081125961815069493672778715086087203616260126828095873374812467264004785283994962808090132240157520443004332076736483647285665956881166032337526664235634655821453506911092062880763947106435150295097061076211928062198798566940258580619286964510926614728299082964525313762889301594392188319136906155607360588649887210332953544450597661438306142520952560127392680452427589732063391047325995866518972175844704257226290806474720359971271356706133373101516615421161951174575797329639068349959148040805921154818294223449056134872828953369057103067234744102800143637072015054366876078580652302577032381025534471930451823410436299734574677123192917035066994839553892501492635214013425509890364483283092751923316296698674910927680791949342237383123340445771798950606919026796440400666204871603222669936966973717266860183202392968881419056045948800596382226899385721686670278201378932806811718422625597058240388329880855507371608337953251896173642605145537820598526105328340496536960620283564300602856832879824256329279609376727319924152699985515999723209209983015339966043400629082545741008755971231518529966168764136567547940431418794275590103228388293639920324105230820219903534322190462727559249192130707348357988425244516995372964581957671425063258996913992548052707195459428316529408886526154900471899271382789766632762415316564817417297174083294170428578052897238347402446492425991189899223286557247468834818615514436310422120636472504352963243903279550347409817368233471042895827867990171584393989808360463161230991060869636133607807305920212918230561003190788152274504062131467554801791373978128624847976998572258485931273544744857299606927395431018515372364855229108940787457440026974702782772251213758704476982223921537850641371300493065413917224266024038898761111415701313643556743422315917092144969619821718210268003054527649685888268337260905597247261099226251023880964606840822160663551451165621837263482469612015762240324880226675117873822661974282194657799181389096233299151283928580917055120310485670203542179101663998694801764550834989686042957850281850668331284009789066574847479359208046445613480464463882379859640403464011809524009362600816232408673385426110128736781881176236219987725253340851851649883739679948318488125125585161166419118926495674572457960593509028629402887127503138756672915366597957670017834357134425123588461533008499250082031299202525276703090297786589843969530924977390439014562844734716552480646732002550578468600846305046224088490588826289964495258656961772998535445815451963163549046363635906691555611271309683839524554033912143309844195335761559266687441345586692378795829035760899622919579768672805068585035430681979999145081580300788601310644576829727573901609309409189986390270322844385187201883247554520398330872540712585276831496764589341992720096373749501817901076303455402923668447265327120919480387640390027090987735987263906208798633534420833707800236638235952966050303316116273838925650793387413308114341999511637545247734745762821067262894485771170670984066067996239342630985415770856175005255440932577634111701515370485398477542050743296875300409586227587504822444819367075823570214649907905065794957014239832472289437079503959685437317046513176658365457144842654315672380721412030929486754523148757785392911095907306839099823024752878158134139408263379726116377715228710305130202375770990465899190227278891932601607889393734068158199870545927121901544274463705074178703078684754754918894568347892433991807823614701031483345594484120769542405295625839639991949410514970135441200356413136143140826058743544069410027716464930751730636326720471630957176343997696037648814008135244759805056708048774307330376124549745592041293517257771456864965892610764050256793465730939311246849485542033199201586097189521454028632175897652307841082997579195438635690334809300478839563829485728863630618419360659425522286274776609998851162958406551376556301595338800072617539070344657898550992626742106944120956479191251152130509366300478508522753962372938718078127678302371480904420319982148529451547914850609960306570623055648684956231566969682312672772996573953199414095283361278095144451881926242860891095884022026833487711902998239751536970077441492750593975901188675400535385866795830156556288858051523270489229209496176657780390300505853332284717730118664379808872469367784045850349833411336188217839535738690324750687674274774853958886340573773617257373032148429965721868130709571042102445471164427635788816707238223930802969702899188343158982230782115028283697211392947727228913321602025111800152249108242550976333368539470596078785848639006105866098070489864114651157109610141700914516613352196024232154903147792037273041549748091511714990814642497574903438228450442170967259535080390716257533337884757168795717185594763350214894357464127331310621709643702021175551176941893654270948917202963372661003750420132123232027359545948987232943423339629402193564552222861942042997250897741288418778486285812294421693059723628038985656397522479480957333723481552045091646314848693784964200250030571795163156439550656488507782061788578073115791619526971287357246251353389063703085541423066870304415960288236117894392874129017010049081457862251944358077332556971030626308681176443976045595609366234690211565260180393728546356723641156920434803804121177419816424784244331417929576215131777138193354327801709028466963070666434014766516089973515769212254626275324376977450886736318943231790251594429760748508022147018072952495258893235201713191730187689255704261659090470969419149731835757252676689401461316440758061653872030238520055207784172234493829568709331106045323789407650696018459190137865419195960803341284694846447164934240215334205481735696543069555104868297553335616952311044532400922086105455090797659676257851922241602917253238244651804922702123718646748284387177672137864686351967232503933965129697978674929722504576613070528200762015316248248586172616009123896845077579015457644536444989642352908773010813133733170913072844736186302838367233398058416446945328243496520753919402278879533753653350786242958184362709951926225072684527368711505885096031061304696070971340908287369871959512342168183413443162265348763870587540936509912001062670945617134237327093339204994894515987275858621685014806079720448368620076850426921644070471262198526680492191139747820904982788268493436463887225313626729208161517800062513311978589119973441178977958223686870751861344517676326054633697385018403627901412422227669574774138880286012039729511966814157652702008071468892769449385703664786286784549770256657429990831104710740094814968818184760662505148646278431702224240812859299944930786931769988918101531143904146472804426180201131532690290745017813916495634462185043366325993826897911942480538842526027687542430764803641096049972759877760592711970284245804227188288857610693903028816609241919182257089744835733808790811120131554619178882920512946198584691661779212436673926112696364431316730968803609428633846482886316059004206179127148645779189057759633799063325735513690440265476115076450001438573949498433390261784518475854386048044101140978577445050483784509183767483467201544009017070251288052584817092312924881001310531495525757636814873748870641973224716811419629082565070046631039763325086768559887196577861368883113032818455305831265287530835005553598096150655148770857055178692875327985762852214778454216952040568179409309964397345475479269624207670608449906792334161826704564897243161024773568205290603286928689826405143742563512710204877494168953692724149585204784065345816700450105846382088901467598116194676143603897884408912761755435892971240238644232026291575521074442813714653611786243470323936061368119658904804973695510867536230041323086688356135844878482118129116959924653900323304463093976653566159258339620788100216305671875711425814786830974990625353191221981413931126396072593487569999093528784343595539005068528037373587354858963278744396889873666804460434027022137155177973505785591388609645265645211082997685354003960494389517569044148750893505488453090968402433212947496394587864768298710912196943912407084331337361158118049570503909931108404277236472419222062100827327411849350461372791888283504039449894924381263621278230918289991439697283027370745062672402630053250450800847076315692368550010500115348305729808127654803000347187549253656507565996147481997654331878506147069735667719381560266729475887272334705084893838252430165195424101877535657275883785296776441535585238293850318837439176948814947641675668869325913862025947883132253810806705214919501941409770253688769729051354402280156797329117049567598353843003295168839501801632383222989827677994791256602288896671497365362452098916126568158417257368533191909814243683123063479013820165674495977140654137764962038236876240297795961321211331028236825781422811423000013417870111521921780527872935353172153394464597880822257892744889895173215846587380837866933096064374495205226276822062231999645986221572607287723723840377219986373839684979615679090151096207227432479988704304947633713482107340894426146598308605809745003100961798882381235919677766747240834739734804589714278938395492728078024113905076527265630247738073801279611938767302663080340582369985861813594790831011776392148504687063324659907137279677626325085826604020225464137851185235760449442404364071955490669900583283636271663740645225101124171358063711456980353111811396229295567805635470073637967339512697776284973135048955787900766885038875007973609663144401432160636339181426766310053480410398613403027035774414707195782781965793387670564031546648559858723588129672590502157397435246539216232467883874001955323639701752622181409096655405292036157477248883107334281806485970625085904302711278207762375568958045452613631847711549658068061364906253005931344424408426291260462717769460264916726682322217840808337419832247828467468106857687873610082076898255807854925493478698238739337598891182925718958487441299927456931869802118107260162074978170583177067356475910437360585307177625109896796433566315476691635095816215725409490785027202941680636821344491634267009618320078746877634496629746305553278788236980836760913074286728610632634222356762268989221749864230498147148062213345469335307430286492341513202081764644989003358524249254808897155638035924993043827620788590179924390937839634205295112299369263585335277632790541187242569669773293377240447714161590281336085754681619517821749727370686917282097671636762127559510755432783326511350660513461356819664747670771913314550927157348684192852267840514343601813711380136697261194045544392338263910196521715655300618604543480941144951100349737754099563205863794680249801283874177567551933770140286285682254476638538121278183362554059394069863585755295706910548148802731646629309807933261287699602870700300952678276551379732473415091617497779201641962152250748816546825210603923087723531574205856952130666063243310090380877993675349775968451172598521399340263164403666370634640573061220870355432166259248454673043702725550425011106569929870184233695021900868917751302044973989808613080442527606974926381730428824183292457341804477187086506726258274288944523203566365550772227776256944107456289328406836513040771818768480882316641518507932759306921800347192719290655668092024568411212507885029103455540731980075592013321985327511452191737147546802513586901011316224978631773636773840415685099217816621800916369995268061184543956965895353007678209118913630198895585139033110951111583782030001465657835006039031760427781326119019952258766656890908602017530443361073814771202475617904975456961779029136189968592475646996679072621175861914748896626621873643680709629956635888101311191605496994636964928281872544745602716731986039678653515621502497428145042604041138421108253282597972399932622044537089779654405605409089197618223429402429854847768623832842339483349739548468850520038614570762891380692710114276356138253193165695753946227987417612609204453999132945874532430983789731089978514596822675037477232961870434205646194411517143387148146132315881337197117032283346709172576685276018440964964379577573741792846793867715893802849344265138627756647912718460582093329772828551093806915754273311428370713649941464287595999184085980399534770738091352817015945048551810614244512640249370720227826567331981510845962063662000164721187965762974744844136778354674052186356288153589947251426236992260420866195275325466020731100335622557868149072974826640901463157827403786997634854341728949975983545577419110203781220244954542645501679450988877795369936880085301663787058713694540829439264530338457268264326556572227199313100348561153580767567039085654784469048568731920630787473272706389125378219395405543841381670509767768847548968378815060248501674507074349498214541925478196044255057635372256413587129956142232944572265040090259331700915540801475755133948324871009119263186777170110995227227219993843312182206597456801123830563016344969857995940103072249233249233564692510827718450666931242455885906301983357039434469150844774660103993477685571148566784091905781770850826226380946968800136183396878793549581462594634131462348939703316721618717088852600287689441889453726560348667340214365851909084453518267043417274284310782056516424309469301549457909939431419643577571366227249294068203508473048077845604024157017699315809376670422018940581211733785744431637773345012306124461493182981562100092234719672469408585580524119246688199709671817341445069623430696766443205525524668668493470309721365376953098116893893713150172278726007008500289180105262159679008839963644445489691878295292747758004908415390289726883130017000981126782849461425293615755353412971916849918821425986682458455446586856310915378137194921491346849567092304296883884700005145868964934127012302900557903011573996527341822759767940973223780522683315568526566663666876488159228792910325051777322237654004976264665650513447810894045557403070650658938326988195352866347331578703873524128914178509802163819623697944122750149062876831453340542484602762798952997245063615513176030301389148423674157002845197796302737298977085699253347301112633853056912449025830387350114836638120743796592979179263474967869686458068905198574436376546366288452891552852329777536539584654469341467893787432336139541277747613325845450824444735462198155486727644429443527565224843860203468948841003033898032618814181770597997208124412586225210087718887710620603754375423739622073033536598917996925700121804518377606882433853719327080306847935493143134297533964725452240149698427793003082790455127630528507918620402741094093373296883770439563277710294303640372220667046259084824975981456450450940361409824466220688980365806801171327108727188621118644771263592073315686003005670335737271105414764425688586515651249680951062676193233811105746140156621156005240237215309353688336405741207605364910000317896002703496642243119597993089330356274862894731359923244953047735986649819591543360316785837013882214116603095895447714934426299071339549259127792821157395697927635550136170290330631927015171032501580703821929031087607657932615523582654193104469612644932336093883298609052362222112285705435338615546429907392864511664265766084361044681376488907531934759577696884041787846154854086693252127131231035752240516424238063536845146422021982674544828435783182440223705000353249223554850663815942000993924459991868911513781001336598778287994978184082557351571640560373623681907126612021995204386419844303626523797398176109208438674241274469873949737119321064219248842710157177517651958788487402702575923580614920776483670881889250259310677380627433951290553921358016068593936973524266690008104446633678879569508435587357668136933087236616753134279825481696053621924667847481874202305223938906799431920556705733734616529860584459996576860588032474196261352415587360385237753449729701473275273563315850038871045097195009031610494969581059520894885057796179851972254632947246580361930003879523830827424859124125809977198279154974598507517079239382528562555600131292492814011327322392567909470675239030312574304297761992655823218128452898690485392083122263760265107274102157086586049713013041808758557791337213837248462058609649663186774110163151560991123881099381395877447607380289201453534821778504954384678350209387933506701191651839902782345540556302619027600644364522456372590289339772837682256249521831055523888862254957414968061002509465415389976715706469250254310319557043113366061285424606629231186543158542141504027601196691533353701127141520414423756160934993474789325781294868774622778773194677768741789147564138705072418362680200499053203416481387047190770877631515562021456636172194377336742236962837918374222588367773394282066465120993501559860850340127377430423648688391703550341488961605182424090245618581359378134997117775176862704713138399061081301739631877244954914853328693670952197588179223894830520511657831757665955178543168959796382673722483971165765623435461920769400791049090623508133864866405026689594349689782751632602447947952519984730483098563383427785259500257693246711834381997581963038343171228220684541012094711515877441325374778090289636921818850484350608271616402326445280070614896394073171903406710705208296452224069243227938643394066379408925807739978978443069797463820725441816483045403073004110682348093893316854606599293339284288284442620925091508445917651553229779859997602142614910481483357924374020572590563978871894530965904878150053803541292763381237963382355835690219608073480972784412441552345330677063272311270435668936751164951730073107598751167418655725478840605448112556095797639086490065907143478495938179366436183350169572495098519086786473385177485815157992432713922945437540572107610411037073012120287548883574263530677638654179821843864730331534586423372519764033455035127556750310118999788792974848095716889654763636152340186138252748998982884007495880429027633431957587928075554816139305541160716543771747372987917685867169689443055838439702812517737410066712420835309272790502272150623007911980947221635704869693887980521703570125083420378852094839546080737120629188936451120615692320616729668564782625006328054971478864417321021189963249514680176281169958437105502310037119861513459295603234238037990436064408505016617575297658938672281949567677998648141797518884443893609420467044664059629491549210631778175972811843884619090028433193052015603279072819769813620050152094472239745255680797729413277264143973755277309050500512361518498928671792365044423184521611946687280993179363217957851192765503921264349720893658893063897154785628666112826662052059708825881204958628983274749898465336774305808279015063536849778037671086975641646038600138518275119533133334055385363722062840971642755911856414830664005704972531744208531280152137247783868608347455871073645035196414908706657178843041782031555663828482605457156562123953787848689899634482254139568635415831218326167267658082820000396902734067893327098675657429408412949232362572864407198855776916691152680364359833042991109881333999978334660463182064075453835284683661845603556476237931179624127300391441076283032786571864796602082725364744377131841062063316521028984556181541795632812891972167236650793358074180996299553239232971462691635891207368925999403624009641717647856625270571984391389037350568894393577210364970332095787584335260888401845223387103524187762542720170056045136129434831232031883743793452613052645533977089868350691944438895034770255615436544487599362411301728487131096815461513460793756501136030348403772131653153454710338052477065441713074457489761695338454250977267372570960582153445815072173503888665086671977671751841871033562435638997461935635774168531228711780145863670869169378647885968364575306727931504462866903594663841890575420643715313569371321526116242696886867782265158731703443730012189286750585654775250945371955404876501639853189837842527105900014502936699178591961469801470941302394427954107109525694291296821495792124936300229151691614455811363524103711834296344320790554688842867093209367397148533745525400767833296418019860449320456044791754896257509512328118830246894947635808990010102008092505160106984518252603900557998002973258687502457643167047694963222990076475688586003724949574843944207256086754792782322064626197245314437212850400035986368908359626378261732432501157445190865004896037068611568705755751538644012734528648699057173429197911130477044831337964155145720472656771639465801962020122744248936911902630697927229182431245959987565480608311379228210227016831840411110820557573318080756437596661592654271553445247677309957432020188865624246202285206529085687250407695550862755945591878073539714463475071386347626881030296419085964115554049962097218576342233600584862695913520551883224924991092339127382215702174496404209089492074987381891365156786510830187144189437175366277831744488807817098724613503844904694957492290686261500991054441599146351641126578492034709057255808067124288667254227752168007732230425313317351423198154330626298630669477889706976840161594259077598008953559582129559653439614251770401746845293728822685621453486079474510115778127789171726909757629540438029069200798198903737886212740915397922760774545618378537965790218642425821474337757460367099937525887590548107531129372658550213717465065676354715701803189919791898657069887534826978351675904403814183626839317626716742820627886552813599234863011302097098209138539418259200986812298177102066804854918076809516587516622103223730215189769443306932027933279131807075821048352072023539970616700158359685859552180955592420168904178869162430682370367737939278673523361320656525263766388644753010464171040477668557977828041597660261341243518258634181537565146895777338348032663293229709557528937929035408834718426114877013302237965581152337539369532766080157833343144103437179946306974607505303474110755693667015719970156987570537069916172788333866365903460811480648101035659139417936273410033813544781338105232233041856365079776078083417898799133639547280208550539802980754175615969982830214387348696233380721320786311464374616510970497550808808909086941485303130599652769943281145617899337647494078149491383086428040862087381287025513487685657999607833685223075340577193397919951193743287950488456044010301191986082367260927900312407433809650385825561945591536338068422909390230887284361006711391778155771969217688154385031560666292592213545163259177206046316701091419420497799265687330459239278072229826694854100854771490576730951949477251656140868409753721919600183753650980409050487620175991554506079147342105746030357463501620361861727860409174249068462859532600705158984273378656664686157807616433843697053585604419751503222983799191923096007718594010648557844285083628930194506357085211410913661008232427852986487442448307429343205627014820461031344848871546765246582097073974086641330195333585999435973150885847394126863142370357069490185111957284608298688770321266833319359471610798224524591918384480950571682155997067087637589176057249429977171342929553480523101221699650405098110538615345047305543028842141972358132339133289295098373821203541951563211474924929979088996748228996627915702075461374208954037441107802112194835345121311569833659569714059727521434445561345327206156889840359241971734879891673164478006567542200969414602446996652650250596844435917730210496114991093897848025643757334569155054128006398619777473318449839256406256981646661820140165372774832228498002047232791611744801695573027871889931973891198900011255792948128975879358096186182466406258378842659238506133850656673510620859917324225142707308560051908268883447712433586402541023967664306824053782939266666433503826018148043343277620899279098641085887662377223270977374320566553303343859448735609676762492383673955032483884371881192308708333237749537507554163193638728575371164575409528619245014866489980421490447053926112842177361379044530306695766774688913739172713595205026411705894995353021849447400096697120772816677444285897234073635093163457040413887172114601182591209669975465031810008582712854836798996134778608663962711349402108528390296592171130876195560354310400698239822723584727411996904118602385597875445292902749963596130026790900192416032236581177939516012559695630532647073985012179349594952521205728021110878884223752797543799799087178121538467452228838355087180316460394356042092748532759363151995827742120866482942525774198125113607520644245990127067776648143430793875080855788676718221745665643631243320560002584158973454277602466833073457582220434026500578377835789503817335310914313190454878650127999459730374172043179547817095071371878760838821780266028915452910506272669690651566276502022976000822424284505224864171756211088619375702900871275320373096040683312859217647819562052915579408518289849791709939486674309072520512277453789792817927673858530933990065501025253990188873758051472744300477350126344578262043559206676099188192719962547583990474402891542703022710133972070909457585011369567855531600692995810401643293829727416341237050314172428399425420985702764675612880882667603651788148928416729115267088107296512407109351950058677101684813709952114963170459448174010649979893320256233081804158188650779565177235358359303965633569106266424185105040072598524731066009021595905637360254989839845611615536202010123845277602527211432578132263522045466652901646166828232115740659624009122352505641842666238518070336352087912431207793604531829919252126181980397114021252040780384520949386257664449548568826799963941121771879448519994536403944164937554197148127979387242448067499485436271946915894872610145135987085648661447213432904397479115387877079118312156474055601346063125009758878979072433054472577159045270942785511448454216609988163492913313332637242378506659903201442434515462029250123711666717783174580663020839777490322898963802554515378603915380655887127645708456326901927850570761792104456421082315541239638037095242553424199479383745868132637840084116715680312600230151990350975751655060273885906256330612448593523714695171881965265810746364764064384037314913677722335828763420094281585459796974162559748693669599473596362459482500403269899574798185852396893011053904731161843867253527402691498182916000638842448710276991768948809540540269375710365564355127480914652082905728142467313568764030414094466330149537869563611727080871017143631568585836200266246715625418583624942091410671380369563496713066263608468640788767889793194586018426152560846681688414997731561621807243217391246005101586726020672274188495596177373668556258119194886114738682668031733784846503371331574790077068495070665180656812991204503290940743106064909576478765255353913145119265875736634017306675621091819975130427379040849904292689335657528942900252157139951153874596075563021475620471816571817515105992547173526427724858259634063551518744545690687708869979328004245496828786169126445462048259402111420311401453522690802648024086022157751662459666722841981501393087425798987746064394921191389806331001280787224375481063448988982956926119797846427038924616390434312595426122378973993354278208326809823390391230686901787866957971372319015465105930864768225550896126665391783790908883343216103119105697317684447217701978033853432965552953974627473137501997322344986487414517424060579803158622821992564809118796106758003923610570849566480175740501036149236687534734859869820736113097696758394596128764161563891121350468016200591697620746839390493828681557883897247175263780159260973133400275678118421558599436502497604887221824040901643312644114027385780076121030659246878571819292096148478757127499243521066031667457129808377359565716364885461806303667975506108222627071326571413710934903237166864597588454320569670137476406985238988560509440155937673365772470474613270900255042889197032280964059923823720817243005417023560899050358737650094460819975456162663489532985270542554314395568661026175528646793819613905959930643093444210703171947815148202414585234514069044739033412267655613644818863241981806581608680932112876324144907741604774135205359362357598839489090973550827344918115392212320260536874632457851064947288633352796009958438400055223590003973625822327435377516356835698422765424912985009574104460776605691772631794885918520487529826471420923057444607802347605481467866881300116411780106662270731010587417933599349769619998899656645219744323523833707091725615056251423956696421177916625873571645399383789288095597850665703725929758547914994743948710387150984065175106546241756324107683056005271477435576138345339618162140136127359939189050462302641013171557380211180229911967984471618119701078470639861462382294621874303640439726766850364948651400163235086955780665062384263061715128849521491864957335703521360671860637172689772190185218466973374510574715403943571695069366751139459410334928757872948865227593481823319541641666625233635083622404725333627319267876673675096026423560128888212423845437341094989831214511270945644025912802691877723115008087417198797432590156203405830409692731358958218537668199080211987400829914667907704793940073627071130776122960521730867900489109977926913673966699526871512424133774099292998738508853501958514011903503173478830326682302704110458001271820302608227657852369592688907206456952012651080712438496848127981257490392007674728223191803244401987782692187868427991669539337695019806615200766753193389865782773325690054151616387895668574671846383155240642912223876178205305592649321342185963416716238476138264346587286630130543996945386501675810209374251804020966733016225994015331836930887021379418695966183993446595196931921539496609868358784210260266064731993420933083669097189762729571481457459715219237802861332551377353270363483470401735949066539952410599638103294367714370363144982127190441532038070501072905419591444671582466928194822568206889884910417806942883578165074404343505910363041934127938680572081094947487104224968597703338745613552101010921740757973205348200458456372447661878098270731738199580070875474453180109747548439426942613675432707645635939183420757306079047127180403746334419495500094534683165627861941378064333524363848217105101252239748368554189888482476437890511328367019239344131467226027201946161955101976032608144106003509304356730664481857310643139166861987929504902187624934014270557959088408138827846267111197435881950311166183416377839619107211055701113002100172977255948229136028054761783689507755909416811837936170553124030408874487798286795235682455624976372051429418745990536100985042330825903392504980459499308552579433251627192005402591090316084457041919026952398672574773845231619224979138987846841067660883591499230389090740400692988621861788148685021268470246863448151633664528985147492976853278543377896864939230645623672480398950276599842643654361376704321977768782569061731972280182816448112585599495753816058095952560111990093199825109494439291314043603199865071663799613288533315176684543077263776112321114832705857824894433328560195999661132798490228134711417858788908810528988003080926261885344224545163293234511494322494827796982425145162866194574439035829191179469856045135032415875701966841929129644923658507976771466148431010757606770132312692631154306090084591851794985221651050250122698422332204681329247039820829883297654545012120254090130978243962127427455995969959580415140214317816770488372717492013516342044789474400477855793575760750793787095009148526066617796007964644674784103404796453487418723194848411048959223145404197847442849432975373684321053471383314683981849875686805208533933660878647873462331982230399707333149857277845877911244230475003318629183531467591683752931120438276839850811797989754755636198074989559413540581822092384211025823215075329553732542187127907543767103746012843419066945028614990013344021963750356155257733188530155906820674226390877488569296640437858562323565960739593015742531563554399185510685051100248708495839310413017645362108153452017240442141085689920629833221207696070897842585614475737190636664918505446910862381850643742384048835283859732369016115975325503424005174709937550530175651489713416882923019820245142349159626557050350538211476364028723460696049769747586267686751068642924521623126822387039222440815646422367434363387907869452045654967325750242426088245692646745544802208960907297062374606696730341886625813338188191836110342132809627180191249556314096088071102825070384127600177298273674048447512303673402355180797393561264949927863868659719384541128985049072359786064393588901562942955030545240327505521151898137749398185808892178649846573430047373092895401705193281592508812299536297041466208953870516119859478501567880876590623084258101866018068303316714163671001665216968028628611317754170624359739978376685796329226284865898827682237318904692358483939794013724012971768373958002162434723580048785539923219917124125947654730893931250252082828084101693416751624532627008556597410176997888488683372036851677259435551495906150362354935101418603592492972378475254768962849922291544305353685715390352395103377835996205207258120818083228619704422895324193319991372138585319354272641553464528426511771239236311555272907977096485495200019819296197743486696271143594471534581129138330975303367321303045562715352086338382595172953291807422977849973369051758394074986475344180414899042083738409659539487311288637033819643573758063075403038840691920839556709819681829140217189888589312447624827115611567718344644925425174262495147271787387501592745702845469285212020135643354604973283129855388581410893297437566718276922128241530284075499449877202765990065860275014326665254519881182633038911711757647649975554800674534374172163339149651729831931025051769941961979849805836269739310439047585133966188182897683781923870418141009900069149211688377344007733361207968893551175074767872581639582790968498931943679090328766150249238142072656064079215387056576940183191468028573701435473018706083255753456838035925756498594017919424447935704669140302107351340214640284451020665922812539640991479771328814102981638964122842018909579299820609350613784324744368230039156435859080663759097755419014921976533873312773875816905766996280885283467412682338305786964784635596382975621066337165537926389212942685250003585560511605100949059707306805950170888990748238319102805304359241872131125762013492624779503584966940417899679744990304345674278725514495371549702172889938410401544063441993945349593995933752055422658920008740908158248146034779471072679930114250824035071172336247627842846209681401706052402735949706025342043222660404040046879675125120397569014203529719043918084220119836246502602575553751051118349155430870856506863216177301612048575776266499502844836686320741625326156408281087244355447918148635620216619640696094827438406996243958931763440208382000255222588545738902644445927581298741206384991640515238023294221357911714016819360460730929941262084176972709128694026690612508142140028849360268297540839287967962210801870640082742866330766714169501768001259564549155701207759964695271645958177928826265578776769472110052856649403659788750090915880286551659533784403070702094905295102674716375150162996117568094838870930411905337974430839692147574210127765266321951872629349667331569225104185355255854413548049351195127248660896657091518642740886183675627273567966262108916223605874783458909798862049684069062688070459575742552341786702578367044529950896496586696259513221354308535111569622783137835251548572992539276136729411429317328177202194500089472747463338381720172132942314722111038305065795622115263396371605820177848098651397994704055895402671507268044760949709554272441865330070499476567607333338094904058020343469934996773328220814542518029580974786035000832801147883731143032942762363534912573080665512212351987117101331941940534247467708746398313571502621515988714598754870009468196895296354908893449307725854952241192366581747579220415547861235538108922278033902257705045957967591380427063416586267185313797531108505133968195107052336376022522769926309545899763110413118330925064046073076643744044263329729103822602315650033262994467805602161100270710174559473604351380459530986489186887852943319024862326271321587406069429302504357496396273413833004713362070641800236390770682671028658881824363267720821983054061312609045413258750943789059843731017662372075950239234612409404233360435055500018606277856085501222354070563820485122436977108191014042325725280997882780442632318636685515403147322618439370752043781893541310369727467251232561230651178927611265219709207747082224314608203422038859118244808643006596768715445730657637959728139208114164056239656382243723111125237556102833042892717837450465101919948624451860168156937771509172678146636146389735034441307894458260294049797920238663368833267371962754796484755848078276038249265225993606582789207148548169081919344065979150254282389897299544394494675461097286829239334047038803273347265279239224353704478503808146640746478587288339750263220864319303356013297011437712741868206209182627324314753303099940822964443749907043289156052757856210633030151973342412947875577659863895477229814909650174180391726976279170340168443439352336229493353890041715997351112937541228535768435025687077126577812109764395482378088449884267624016174385782809793294184270477648409281852469131705797718100419622171774201249926011995479891490700214391976282967401512533115158018614953174740384339954889548886778979454277270358301740531354243560068762701859609205628668869374386563852792385779113753187731424103854623954427079084665539278506409567456890579993509894308697610051406966141918951114377474712695854305408243620111960397221735945973273794473287541434006695877409170826453325308997375361471030746643303630700014390937463329350763039641450486315379358278112558288202821693662496198192420818001960983666141138250157359613622049950670850143427579903503581476590436213295038123099111341623274626751859744926327456082915257117947559217510628275823980017116893783079237482608715847054996062496235450677032833053420668883452106915118888663399108274813384859265263584282628193020663669119924127694317438835851263550962180914020612018596003416636667676963539162850754533305135741619415250256525650493188360851240671555155938385667892243090013838619339569834789149008625084045340223748948963069193962215544998496472540737529124112737232934118454719641726279585218579721484139367699151977287597308891633732321161911689493804938910367707120144920411384227583314940507859448895785785298734688389627589295379247923325826665767919384130469912856474366261290200817150147021142540432046897303490286956784100772169229692196778204665841634103191437281077404273713504561834806376079889007913385627257550286264652605316263719458156543073601709888858261936370351374647150014704297016989697062008773507346752143994981790431962490712812351964282142448204850461269283399063001736297492519549902049073893617877735850061699284643155743587943684425949271822292380589086284403643021953865269855888411941072806580212558007066136337242370820199797705871082711542792942014654021164940688468023552992747910466445886424039606804001231460428030458402485641379970229529180857842907977676791491713392372883121405370353897010322611906067548937462832565246946040941250322463423541139035167783970955079651785841279289707316299940485641609946210339855767094466122747195840781378272093713737854742414246219783943369559951102639510715040594695885865401465850948954623970516702914774697845805419318125262585194810781709921192312420055793874926547820773878011417620454486194750854951066537687653647562728156656175443087899425007209288526574272074919890045127233500876902068120739918800019871560535072039694076322298058060830253143674827977211711717094553852771568876681151022555670986030741231526381056519381358250108035022385965776513640798521756854279387338854539757270247282912751519172670645563896724532725174891267712306124925221303629689241989639524843994149662615850379375244694357883418860485903953633543101711126853729745852288646700870720586680383976409321208729187387087933401787096649673729168430790666170649692391553112955401095362290786842474037062873493232250198585605527402649727396200924647400514019433189925454966483983709182409975561295734180857821096183293085167980754470206852684103953852502821527717291006578642613238791635580269218771195007662445514242425206907021703302937111264801220136347009683075977549042514462994744915471110948392252901030090769114223618305204400120138088180209518524918837967770149435566240102951235902732445909202217798185399452004607533331937822882598571042899978575708749256797823809887479191989794873661789838282337827296851662421936246660000037598908064489936868209046214119357585209967967448613809842692822105396043189198743962426787983403832937808624967502495568758187032242138291546852251706492070085306206312044045646088017123148119936387962391927661982555666800017117713632528261158966090540792715294051116433645622993468929037869351861555094398135542528535089285920915963147066790187914649232956757270136088914151554215742947669950541488454742486922673741072372589817206461519023485040513090041768729867224832500800386861746086840486116623703374447916870982096895136450790775283745016058323034392468866886101996944002934402133926706460479243428661481136446705678980794397573749378898841116609422959614610202163106993011658079331563867626479961173083860614805044955542100355209366523350725157291455142763490848878315710381517402817046450890731787372677890695546683085471394920740566313360765041325237216352084680154918468218363484658210015424678803531383627890288055613534087952314729878640261903346486691151265881192069653167687800005442023594026511631804231746665198268004935947525550472826803022862302074711802848893264209121454101223507398293265102731299626609109370652792917046814102324263152281387143791895717910628040617217148798787377702794938496978602847161895630908301809987095647798730929828800683574045741874716857220144118409339153167751130104854921373987988134181917074554100158854954050655502893938539673631219256253715694125754786922110610833877832813650017418701734742615296678905300647794834392342288666331760563393876870946622398312095250819210712211565791008773203543632150265070399860040415361729360896603242828287207632549146790288429871320176889180432329945236340109011302897621092625004764803474415499196752771517618293263519603120780968026657290071967388425149719442752008975703432094435940511106999625832022425888734560519066788873633749406471670763669650429839749103561640443554895674773199590081212765584282410769218470356574861926922801866970465180177434816109701008859568929995330245447503828636274965047208686184484192473415772398788686897721911606983815173297959860462915857543532956797092894033987059680978463569249054477518345725617692628409737559281512356377002593551836173327345802912027989142947718407885853864057440955602425354556879093073908567057549388579512641873354760339989673723301014604644020185862672498640022528727172574637120206036190644123484203718802943403592146862933102526707612420240097104768574112980138084019385303630781223252226201330190164338993674350102011304239201642996081962764511210370379606778778289732730195374066175053056044434544613306279318854987182310532522931986566122967580186048532372076185309525895850133685752148615700284422839223332154499842366333999571499363898756098531181559148551885376359703936334543098248265445136389564646114902273103193508988035606230464912471646527291599801084636961285791813706538507331681531040937276957332728557825732507106072574075028096818915757003693347769918765381446054709714639007370718361897400963685282317524346550578863345154167515651097944650703081527664769199144025595149582865097083152442709913570533953415721440215077858521681306050303753811132460685522243297546385267277844168621125329207210100080551027083604943017695634097476854234370394666848130299217737899510198905550843446053157191046997296211876417864053874393209491857052106534281448451475941835910331600920096738904906035983934725909253338688277614280627437040091420655440785008394097472055812559010046218446297555647069428137760224354498835531651522279861892942590305657013562689361272456992384310601446463898604792546201569761954733780458813268121136851444911924129977990277824437725092106802357561432813250242980743485775820827800351951888590246953751417962014506605286742056050247517195124997838404206054127895085104745415451475388314564217053686244910041081562529796247659451257676186077970272353740153058506242117198657753265019195471957165639750058687331531424264735576112720876560026102946257762454667592002476117345104552320211465586906635841488958343961441277275582208458078876682379361735593341863412805466993082414444990199065369148952059435150106602151793176790236384727779894297219016371873022721467770148096323985376900829852839474560401360690296956697606742600884627772235818501757788117838443939239679122934846836845469460045103292764781774450622152723847105647129024701423689879116710523456525559773461750323574707220043114014849801082664778070101644373928115636643019490241929475481217923330622535556239995633786887991344575247061346979718967002694833850843903468793493996623237482537324458166891251113600944200759733983680360303537424004985074184394533444536991057748573395066634292460286431573398280369800617206683285558152582093443519109072160767285552561122538609346152531696727319099085508136922043407401063727559910919144240444571232813957423194232336373934810173764323786934813438311481530665659649020037313188931485411381865779045751934085250598611303909776727728458424530726397482073654441602192265395809501754425903588587687957342520112043294787914637084533089382382054613506696372836330839023187009661393270777832038028328907767310349820531142818811858222537642881896742515470497509521454365337020681352360360674358317208718034122305477714852193445942526955870334037013777594499635025917354778101948896285109920717055710703437749335356438732632225360207606145277852360903472385847265024528969449582410912114619234816063057810578419930851683793026360030556707149495534388350254086444692545505558572198198823201956760711915204132235081153230192405452734066672406673298690924467472640018973769580783586347612879085299111027002153572255530784654455732036494508823255111588817740736068410130703764240591259552533227015406328525417928113497502393319846569812674000336991248693905159525951282600883774911745144650067016200721493384617406356902471012993582076225005614946498006580796385858875257846832779810300076911700919047442711208677606261065260606480404037079695165969620991152945237026988782506408593972049083226574964508467799341969301527856773909298315105576444375082774391161076667610829986996299071998407548649941093221121022486854382666682542829495000004513327966922456094066645649766745321354625797866745084183549229230692132990637604892941093066257876915845335429884221763388731947302635199193685905226061462029271848454916058483105778117490390213895447346995586840170996137859085378888366585056505200918582870473816642164056796015954564840080109887401872819972653644940908151602311379308026062369219741945872796908079089024527018819573384232299740639621423142735847613496701382020120574661452233129500185639424865469771311258755505344730475026233369179807422919603549843164925595465273654561585593561832277171310577305059015605785626731735944747979366505066343725943355858454929106410202205189438255809556051433895983169822352673650685267017222450448060694070472334386540776033718682607126571624051612964279330084642168079889255050819729308988113788894195108461847855997248839490124523843943368172335040416545146743768427141617897529834438285918878336751937208374130012435952519960678311017800685543152502927879666908890585083471438040018606425091280323529092248379508763960673852663776366358185289713423773373596814925106225800196873088382533608922446207365065500436705532765181153449270368377858194840592158271487378134602501367858187797049146745773116011838564293914370244747317871916375965111607183008534295465581981855361702548835009557556611554662186436151611669132023797318751672393776566608795911167816714229289379862903750735518384226136750423590773956451775595112253954844767810270064759380221853666950571709107100892517062807616372732558012831968453482501532345652214768951899781863102895714575076827541914966863590496008323769683783747505718357617329652047314623873897930943608277947559810541762596365959303775457605456561224467988119530678669280187248508704013323777482465058183031266405727959152716373866225754411440859029086454435893539370861198702019024854748673280729486889456540116117120169717898547002107235390993574336384388063155781387501823811856452915606379394119740491290334976251100980383198945541199294544023634091526282296083033335438717850967332966898799845377918231129109392083319880335296155132235458450688029989873330399080637182746188194955786325302931392204347540519003154184196686972040530215813694221553624584885844625835161089312328592132240393845803326319090229467752146797727604344565082629898010151869023578858429928145234466868001698512987046043143421381968066477711402309313533409301418927579193146448541033595499706305628939806227590846734742643180516278174931723660663600825577563069249241034131873366057005894536840817424651323048278046551909614177217781480399609405834678095475602519674490425961019989050188705110395585787016182344439398933507769389569724389132726245999390813428411215003973353553282358372764312501048533508838881602039331547324065821053879757057629286081074954470422663167628843008512074956163548121867540830495664440525663492988633812588784605733787043794294941177139461640048244239675736650311869320257491301466783494422870641201271032389580159115933932470158255193769346363524112071161485707451646257668046474141532057798099951635444857533035169561267453495345248071318908484049774932171562162119128791800703752820089728695311698277713953068165111611307241310984177130936030798706408190922167066807828462108822070617337425862241502708263700096048228266841421393747843047173570753784522953070762382130163965044967362361551638323248770011812815294344612008492672928607988253586996703464627441487316052772458011548971634181043711629211096585057816435626896886425533026916395216403582926745500220698514099783562872180235088417911307232856184881912768002224558118463626548357985456913217898534253288772317005804987945211020436208944235268085385992309623753647607703484381918814100507994345883045335817955667915410897992567319607166810068404489480849159270473070819835816821868903276366775822514958422502594379803795659090152113819197318087626526508609577865220798086140673983172605732811751605248712606403835086982511695184833756395734910441471074217714526195504840375486786363409674128576512506199248789072631831013994228087288137635084863244523888825591562644367020580349287142666176284912459917952832283185195406602210815277868038449755270282247240243752126472772524250845994432405013865168809063424429934541258183649839006016723042378441496010882942003954876329320561844011595732702681731272214619152533343826888975690640767998144635479431593320334379235426432845689913142565587789070925281725843480793547568440419509022908689487060257403529862215575510152039339408370590512800471874240061254336865644798235174365114345357444842501308815527087071166525291457721892787698411837949401534781350573825457802826996822412673236052453731659220525582526603508006606626372926459240270616962202246212424415833870753375481403704256231181884515245966387995826624373398077627323832721897004630974924682267859854230242411874265557752341623770392754883347989160423415346450150956893767642047814470060933265225270711551380877691232794077441351341515298356644337153240840510790740872851232679179442081603029265104927397065587503335059240225965908182938795044125962112915483792343206069292750961868047363812276056315511728789709222956382629564071343171137414759073725489041530181071256337862880433993350387380470989387652575064899387835537035595790967163475442987871156516902659286954522741957011997871375389845159376091588634299840783054980789398977310329146078110241416867283503360465685872381438661957537378644468053248714613889610954890406979377422801639154232001776065332684865722642826034571205250072814275422408356997777806029051350151831963018064997779236411958211264169149700910103944387370095917917328357411857963533981889880912782615799185585530876630429518364806067555946666958199365711423829228969783318819334180302168977294570574529549205730636361541792624629031127231713925952391582118793367372184907316693430595485921766324017814555178147599542043571256239725488455178685260246533622783130005890794627814745156649897688163651708544655185001662147875602338296443953743361818535698266188536781799924605628612218046925607827487072825392570793720109335971801415086944682661031790102927241679517722413895683622323205022681290939180165577154355054932236576583325397155149522125021214407902782531884966301649781993896071367711837171375220869386196544722645523549340858892613055088186802337652203541498054583340671003071613158586677512671310507356221831862441281033752130429608094416339573510877267244860638806146176745987595509979062383775821969915547493510077925592972045392224657615512916529580960084793723146308245834982885294541819923185744506142296925800333526155894102538763170338549191703294752143355187111562345535862585787239071326629312068692446126706361543090523201388454695264249210582157972495032726455927952251281045489998037080560340706891322217127183889839884021651318687695163650344941355158012302066227471752048272103610562770895063820914567878188467769895328747820392008603702911917069194064333581273780618231320693058633542991681833041430183136077581973693605504161155782487208533941924328835293178986662898706999116852595419578630763195233516975111912839163743420569688454808815463491650672703440731466721173827537504354474395491841641639247263081660892911302509280454447214963911418699235364894800523946618478317264102584884385430881441329768857051639736482073777926056857741271345471352191494112035347473199061358936920962397967664958494339672255146508766364783654623968531288537138165631901546137780122565951998068650485283074672965002856098260032394403461322974802025751077014599304526717572287575607095138752201355307410529555112917620217480035877743706754578618059267932917943859065866072827730784120618255005632713519684537828561032409570969193230492093588073755652389630746366746205191605187755366238715903909487809234190276138597729394347164657186400568454376567449098171417792617635086161960803197876762423065248571617744641889769676643208343414396761071362607387300920734447667394805845733145891452915780714518796556563802558745144139197834811894374008540638392379583512740841494145684717230096569767683785711238623180532299137506622317795043841685262076516115130379059496643901534655627059661192985072573965400832710636096846628318818247984381638259856226192274016363250057579701902309507126959714107993974211122777081995870830990052432056457211983857601216737259157590147242046292600429821419117936439163195260473603642118812703668437630559981595797641181750655240642386826552908723871498767248712509569161285752193674514074282375273542165080292373660599112692186831567062285645125471023820533404383209822081332948549299389542304087842655645786927025799790453609462516396272419984494527227298193105210349213266575740551417838915656450962450394456755089506575388534474642160463403233657078965468298226618371964876517386348035778680243989844200050462780386829639127144942401478789291413387373476740253696079842434409337324268794735218129981098023369648496839044564758897627508628191484571616744791561654378288678236406645057395707376338620403515672122722492794641762784805762765441290043486923614470927691711706059110895278555840414088623190524425222114329399915828084225357115780218719016967813111066319917770300162392632027432630250493465554861985428313378867781239026535055649439020101550687894420320342885336882927150732693764952026473728411354475322255178714959025501416328598988675409641957661989999739546070433011040852910926513831741445893015580131297140988544302432406792521687913867545237430670673351505162217517806822674760600841673191398924764970809832833344122415896490703480246482952854832009728685234145779156613102857310342364827169855729162677241121328604774163478908939840996049661404200577002020694240121008076354505742468701223115438473732284860373744072425444742801323786420118687712657396997836191838169981919984575336287486479124873984184188150057923594481698965194445120608563159564228164478508939743724902025767640368039870248578366703299428671903626717156364792479203793922566777243728218641681410481273831409504235159499818695465595883341186095276359964419956617422975604890955604733198131166324609558502435333982690995928797969997438029747629971591084421495553983393886064726134742035724124374761427972831906414343639130392777401844177358063860556386628303455306114982457012069796708913941320919596855191364725308726931726249928566661400107155547513693952918996369118125232590682382658841836385755466500884369142698095030850556060862718345675922411341668694442979450382034773949370762908826779826773298511330024316645824466286185876589906316079358569915891918329938519871891268257867085259759846732894720112523218666260080458786999474356378792646704214411907001824344111485360871070441630440400546338637212432375075870103255037565565307563006182518771141813983437861241608151217630193973658630284229009031609932649087952021449360781297646650168862245388271799888448096352082474431057640080668222920284614268016223706192480274905470006082859557842466636888500921258222841948906528135499162347414269176563416958880966055362252978543676030634890029339640396061697432961853997557675449906607521969712398737897745344567258260558653707130406376497158036189463329695079631872609921982849855870766686089947711159370910016528495580682445380620684546451199828938192462011867602761606927048639271836071513317139449760105086089094163031095924737207578419852005266120690448684932613074127511697174769440270764505653541731113164027607749289635654561731939999655317850391903945311433089181086549051187718008335899605532871067251449735812482395794637970378221696412602176488841864179231489921093624870622921478569498386980443326531570971439212511825602252757670144008149598519649813362497476784551271929378411705324274805680081284031124534361564198365205447452465558953411365323437421627442510504039565889412799446015087130975739257536642929878920268771145619387332476680333722224358599504958534344972751950033044297706806885605059083956911204568432875723335144999968282144822098917401925136977577216167034518420218711771577344190066807669217569187331788926013171226681524704586777690203022712062960121132274255525635994918192348248312462258806513844630591791512175605098916201654435690572662702591850672411968491208947877862439858495538665600422880920353036378839683962754416725437494297417266319379376506293309614451148109961462081047855086954540325455445661071147324506551483122712628063186319519409383391978015764855551688758257984432390569361204228818424281604005116256705476135762400279901588298516673277758092975254924230446411964235618374276529397297400534530819061219641072332488382462272284615405168145460324694685694302656554116658664132349025316987506637004871099910142821838111440134539377401680894560959934279620311973616978487780424084495813022057112757855969431845098548335118833635558825100437655867792608865223683127895330144066739936962285831430786277566877554507734284760915615287255907366315161778250795304582764861901692929885790054426917661676280130536840113397435948019710158770046826287553937519184361192325353095227344086657967732539866030691637727861079174039100871814541952375482801953835129487165994893348054431789547380267752637646655700887065792819086722100086929525756872745473795575475261083363751494201734829724627744811077634406675140847860002333525571896953972229893764836977758631163522479468196086900258001848039278642985824748163540279235800054852095723212888985495949129028054139707680162122188391394960274747312734042173242369233533671011470378765515431445259290683104121383744269950170105873730392730886016658377569675884676044672024543742303184255378563706688212392258926225044375443213159437863236577507630497993091619376152553260701490240951495403697949211030773897298182370483034765303355213772547663532898118365697692440400594105969506165135376785953213768191376120868946229560471753659187223288127632621441216072548499029797649925655896576033559928111960794920972220333635618486337119869614628640874750240578771327685948828305349709543570480044642457556283534484424892003939671562015548087826926594420672498473990781314501000195009060905527220906904735400143447152374875788802025253564170591723071629945405776045282129479440339233020127641269167442268766316420879920282718057865570170761565223966624758149801271451865821599260950709013833001608072142417334639782912693290022453589261675687462177747473314379057966170839795631179714818214815755361948034042079780119866222476467512128026801918001626478407191551875795731598806084150096843311306616179822425561527447314556031737581555573450613219444508076036187599196094818796761721069210707010085615708090561952388673946483023948570915253871183725168126715105960650704914024550940904905847896391807215452127411476607912170983057563154430921591414123529843826909939069750140347944922715946907339253071414361862288254755477129079854918985568082319414629388326473462080239687300138522943158771238158337431977990029984374137809901727729169798112122166427678367931227307598245415283387516148676178950133848170476698168266450958287263544124435594300235314345078196030208547775356480847872638267243503692989314421425534843779117642975075496706980259633627834866453164188619675590120588024530093239631735052968116519618789228305697926510348628916362139452168988723456871793907172213685512698464753258521252861996333349269356174758299910464708102316330931812713417957609869800240934201731215295945889032981551023867823172781968374910480716934492391306516416979414072766523475917372204210797480562520070801406773022268938233478839581413559798778080441149934743973825490678111250171465124792681039953912677667653927429723536809727938742191972838687857889288017665016788561723689307059662756545496506987681419042724982517026726863097870070168250027782204715194917788191806214910696406974555833860438320843986509447550535907218870626519368271381594120615759981366166153472628556561948013151203573885059687026626947427967739855237652635836507389209727807877873805823936031550674408066172071273064832104666625580619245233328277291799820056950775894962214787061615217574847123407257958339030612787012962827669732198780816712140479981625199847084289980881970263396331293554684599941218044226015951258732943552578355061188300879587420705846875746035886482395878285177122360078734254524695321952340411486780467681714885579149696783459395979850858575280152611597951058594640162014206851623009117004995649767949247697385346164272963889272562565703464868747209261784975167395892201255565307429646213545926814605512471723935992778842957998004319408294620256571798191436439636416314160253338942467817347367237376677652117457477514325802709698267691400859759455764614409030276137768272181854478587497936328391872573591070720521131354341596302491601489262195207404964878212789801733292811879099899095871050505036223993257221730678863494434563762664318685733389880930447642371184948268791625265373749940759014289847527279580983697837404951741483218047971043281638418640881921000740291478965916107555154425407367552564109939926800529932362618472854003424560867949149285499181233317009282583666474187692178755308431011087993846091278707738008015296418439655836614250852425991186127445178317029618422121433615452745203872197575654501990735491283271002021624937624339057470088147600265941513219766527844210840736993687656873179558285855241194882128488852868568103562733092841455420165275459071934507261760217007338673141778051168492423320040037625329384117924801742603233548867657194347459215725368654214221483995833258408955628075598977667654037154692855187051229730509770870498829036449763017697616606677979809805393989341223486531419300358455210727084490343036482689366017207440872941696518609992178799827217089470732113342610135387627242370105341987717989239093279004161119494623447374005744695843067612493531270157459946309082388442937007917398729765676083680169652863259687780005170455352941159405962967988284556471975554526375078765328689836334990437610075705598880357972869236178307086525287138283550233443697984536421427615375219632481319977000569721146095016895215918277024239114403061650870613258855917163553516069373431999597211314816142354676851141313269954810132472917669628076800228821553871574881665146858947654162884749433482158468990025340421155213806891610640319910074233925235405563354329716533727184762578077259790425106187257651870670061761580742733880225481039348782777218194446341727902283033709733623076584167405564553368606033102427182530876987898217374881185091829517737908980666967736675492559151422272423835331790846340079726693576838685639542716534131641350680282315970647365074071002264142891098997460678972081472117265897637835106417291484165792386132306448274724086965953255862753373817085894206851803599282964274840043283938920090538060420462108224555941076964046422589496181243768950075371176124505466604448359923236447096552887250566614951831378686818086544985815548957741514562798442281331812427851762747759005224369159816647753158782436184221969258635331167001765071233582466394848498087588725929293593799069519027112809739688993430952386269861296295958575844358898632467895055087889651791448147431943485458758969811337955822012174886947659020664366426131529199974441692017437417732108508355737240634088945738642626847139149632216609865385869107578274866552970941610175335904462296652052458237746098000412533188840323517563187902512805210157621672601595862673830294732460865199890555866947577333322330280680472837359747904244833841073667815304774722387638172776750132422014884518676866695785296977780065662011869163184125360782206558736873911285793325740446337626628198120347100199169341410158699307211745801816575218814568144041094149807206146426483963680749391389157696327981203542347183669740953795618290011509085334432224895681659883332935514518201713684269618793513511012657879279847225197032155022398318224324500892645897012484329360929084181578965450806627602537779569529664884363848606786135875645840492946483275540330411868516074905541018278425143646301792071012796075721098567370881676827045693102964468062625960585821722642401648892124412962578498239430173033916011170394658086657194414236784540928111216080342907546106087306365817338453396051835937517102862531161589339456532313166071152913548349436366809962616543723605273344958591788349945867474966880679696205758125152377689494272634630371101171623870099871898593642183230169794248441995714342630756714860179067642355880551365773398068104222191705778748423289009502289481536644902221482352590321366093913375600302073765397087055469960133785880705729687856825348371238669148771343741418791925113368542851081652487861618673917572837227945377279465874151605989905116015999975834977669945649924272695911232204998395616991880690507370676498532398520433683301439004188788680919119390326324874816942592120938792365149765618359505585705088769204891819722761701343772811252097571818412645756384930845656054894911845319279045175919871502228822476893020001518398625364939180651153671851704154442706563355448419251440039731569222241757938139126224028513399137293340952717197201696099651225167806122539382897325610973581565104453624574296821133606677360915640044349147957759502028540561048459593304868477992014494130743228924729494739351332275052648233638092694493292789549051922161423531756236345865675757943183457620971093381622817344642200231804392788625143552517692965349779016651468566756233266339538986356392710665522392759477050226413576685720052543381475291554464421804154996180154967063469872926681263862633915689546913992781693039205897980159814100932361613023770689598594072079623195681971879750729637756821712724953148243246617636171871399245185810796697653700441650667057243817474049861457772764369524253703337019338508574390203162222780275829932732675184750744202019409286996531310654240231919063134609352550393022612923629349413585922329064342857552408078903462739481992615030209401479462547716499738621983063903097056123073982473228805862802988233940370971484756875985232749353625443468134726675566864676140123844439410741549123286030726233602877195111811294509375052213478184549151114418251095845149855792421176885987377266875955585954789335627699092141450902810539561173736378467596269834011727396123149423599529481140695872405174379876703103279216255105317338590437444329541754172314216603216502486532191606060277919624183231025757724847479293494927925010616281208789518585415041876599305286322169062087606534301068802740838683385776021481079137500220222127665949166180762056378786491116171162237846111024395515472876782264577510556068517651216809835566356168840710705789432728588734152015078344420638377571671553284091322351753790789379005321926662600863029437892230522446127776344420033386324119455848846291032623157054756299963156898549148556250071880985100682862370229857446529769942083110069204141317395556514813465380381449061806000851449104231442499079308549456536700002704536312625832851767655623589835024477455451233811260903949522085937653848146346779713142013883145233355241042574179665611939655546028027394197562260524553184852492612143007764874738537347121355927251419585635723556856156384382411652048546069950277022417201764026935084316332515399744834418236767097865350385242810812603157816081486107008373358469847139235324257627882904702473968351960181287836235868753923525885833293965051050291361405096545374358455270169978400048599772353683908914016689888981465090167824968066840940076363274329775746729239234170029314114245665121261457985888579959416338098076469323059796414511098599085546665395282529640705290345148750828318933247986095726993497198892146135939247036200740475877958792990440275906497314198308367046113951431430450657488793109463180333888222353556987065817079824919392261040098437839177365727947978039126128921223791501236641233791037124294871839391586113434307221830685414635575608617024970009864958845241586473749932759067868367686419100069478264595761528717081653687129526571626734279410084284303812948365313717421846801929894398834509079707690504026258025814487871385420184934531119805682566343995506217926544813177851582237719037025026139254227700620820352569092279802137948495306912782104027259393373938629730569215362171335331270556039930711217600468033143445297073552822042617717478366262795641186355885407417906933323829110019186723237079826349016647870162636728460760571294867992217503403719834255836977608240540913294371135531689925763408001221977003593433217760405363351267093829909420414872690696989012820671471498922340803597055352103849970642310609580104504885540340020875884112055262116372537688295039772885007275703315111893214055564870974582151323215734141845510399017903223597765462539267607333775589940125661979410897884508181728381263407641072126520246684458371097862590925606656561406650608631806436841086809800706289561052305353308336351467172279988188838055196529691828124356193174247046836350532677088594559552753243068502884623471346410558845114736707945967648574600157490532177265186689692416923576848686874463244153780744397813821257794815451658293815104511798509589448551853205624605776955025206246540936602240884975238501434095570683782508546193645821572836269758921761327922864293337539371990201483774833670125717430080203880615427658466859434769300094931439119406107187323307164116968210437866226244511922724351011206091036240403287152423209947695108299898687192686384818339798252580617699388091023652134787996873646862734651930559785519744894851267804196440679390133571222896383758879704167378197483441135126999322820462862108076068513890049281686931315603135620617143168017502859155224558079718901627618472941425452412323221667321690234000828411473167959243785116402785993829164985403502458331550235406837825484729987672362705779549879524085630782060152793487059405597893094031911372344418039130483801877671480535906386108622292588782203366333885589012867528110403366804781022954116284205762728281255615645436918996831029257175610487140422006028530854386765273268209505564504210316957220069526965376349141562583120117881625194503516246936491706030159813464535416137972572293356524257270266425078711277387818786011408214079688973851972739106470824547716280601331920131288830610907661294546699274481197571516561583822829359734832368013118418249684878608999794101093813241012071294279319118515232603030005105602496403176015112132982114264821140227183621325812336512011104836363553298657444368723636619553092131258593828820604076245426748183660085591838545379089884592938402093887107039785240086638415077655723721855568161548681323139710503936087859228949436423719469990252539502460142784489570256636918066226215155213048305499349332695104340877484738424610768975819829712703614624076928908502584236801072079273712095922684022910903514981255102351960831112293709822433790327808605039462188549375202628490032459650664063412382370430820615499582044688557015051579984888424206351869148626901469967163638451498985825843428334964827207500918207738408271447891101784070753752477486917355570880220247275487940524099489712594332584889892165826552436258929094694294975554802525062910481756644673071528842043050640250230920036290466717588259434497015134124387153746539390407758258083450454712921307499113264998894906750552316092879155398237558003989058132006380651947888190723531667695007943219274939159256023994291389999811661956912834208188443480013574150914668182267586573648306171643669380079617167187109492081854187295533289008688809609625645278916012111865733568786183248634882873831986991422424511695945792160539932479595043231509643151767368662403778458088576338907870542608666514996202430544174042796293790049676570805763379694196503700728549857608537209028684836396128920700167975434630682669703649865157732636171975424255585413707830452745196721214234487232406159647398292110734141002014056225185511760301902151923334553321680524014254858585057227479300084187513966188697635587329816628928613333929984400066949639875958364237760263332447889980376981368843575907796481214335218913201275808041595163524004021762450161889717619745373018919593279923713867663361242379022381366082295740627400161547252908263251765258991371336195971330267539962565222426573398372687601608591679734958384018416166850228312084259559081035060268859978543214648027699796442004456512716696842107171444101632264029500234764124169177592988638397130553004795497962904070304283840126709585755547876219276272232234358240552383524781444057217020494768277966510907140776646196421723737924943180017286409920281429840685497277567396948302512654822069966687842113134012623051009491491404434865460534833429625684650553466416335486337714510098709048539222106939146801048508596560691115214609470395254192096372270434084157566247921530592932838606327182189815108486230246892380170223880414081523160484948098797667584413407414706756001424815392221860394172472808815886911542765309832796662706725443945274247299109528922714164030921377179104600767018344067563225276784660673438644782869514018276990741257955558075894117389129893848359271518051513550187305339515875919123764738852644352257019128435360999254998927390767754866242170688212535846715384743118443693976664914751708752236627658625389955100233271429696078040362605394674055871365376788411566016084103334665514728075647075554840087626131632008434686483125224928372888552598267554256500100765245815364793579561293674576916847960442440604898800578889835373603657987363504309199733139791792622246670818171018453754897420016144566944022529455645203976777910246339825724745045460322861338551890035186345450347994170337955188201279485265609521203380703574904876813015380609858438382567447646300688225102068221963588123023279003851078017744354233359867623831331949723055300882328247291428811124521048066130916750579920321636330899358136835053476589872208917274392278737075221530718790694750588215022317893720453145180252159705026847743152229863483528697001950757623735259199934094978226984030637461828767620620707778263987801611468446512023950607258545308446044650853810302434324863054138020524568821022948798781403843054088441769700280787797971607397028173631310729324661028239991936174411420620999751370530330025442615079979326847920770001024040728237180670349086521238159310855567124047657869726886692977748750462073295430769091813334764735303378546077600184370305748290002226974227933597228329390835338770747697930759401487637656873986152967617798552011846258260394066871507291329589769774900943424732258748820214796776946399522632067538418494868199678100391383681876661455078198118779918496777121421516233343549884875893006275165823061832292320359259239850644385248768459624894314499876927732612283589718764738558924525938587691907953420461573655339162616167112790458132200239569657923442530505222193005364322506182789087515189649362942658953567450081614364670916181072983147173788782078465376077758501798958299938721920692235903739559090612132940941197572264976967618006709645633801934558986539638656601889000914435766147471320260212860399910449289021909241184657886935083525812541304484158669597887201846635514098109772002260187487408068873454144926922080999459976021445319793476007721468947423710510707665044900033681962385626406660178069811510142231468474513945607406460860698432616533959107212040944421790934375158714245160530994209437700299147284523345455716551016670591019523974969011503134415545988011227259877621946371292328223658732378124673312193378814227019792638662929058576064000320714779626489974654206273668647342724028811042114829323971688059599579106759778112106732685637130079409759155960525794823007365548759553963288484396196847595758437613130616100802650740439674101843040635684899073595074898629411538119470773476211118516510107249764472435552076906571895748607830251369861706692815163773219736451852995005409762208027097429763611528041082820271759561297571575582857304220101244384108451169115645766634675910487080003174824397950253799729185648262557829924309064874376389467173690699838854597430361924246649595605086409123422820314496718404943903671902144439125175771347052197971792041639805318586059906373823530796756271278101300833131774579314963099026396301911442250201210234273409711191573951927879663513874124812110102861601618666343134773734320488640394467084173826965382188636639487538073772181602319580559460423713450722445709362123344446028717993685451416175407851969008277268726762596065233010693163663689054879498130588112043499532484963100705423173489784186979574229270211039655266942348377335618495739125683197068207002293859361628482241878156952427589382703546051403797001426826064565391048141602236658750688299435888819118971061751494888846428527213375245360847372450348366184098012848682363516942916209334405227729832099488871411518060002060993067710544446328694974575956477747376358375521629127396505418299277679377206686315461501113852989921717354833764297641073265757483789321704436811814603142201407389896161620390319180873322843258796110107178483934876967166679105448087750908603757566467619679346775218288820963582602969665568888462869839670199036255904787201540434703735107387057893095799301827476194192749554625096261822287988690541906249189341355739257771500551873800987675714323324689367936908849216179753073004086098398279826387141562999134266129890982707216004227088069612600324802345900040900434883120956098148107358067709936327260002877057466073502774666588995417646071271327148356145812531936128126552654909437072934662006303251638864340956992365121841623723084010911637293169838391350646302833074126521263916184155627016236275724517168269456044198698658957479507119221156507920905055726670003442866984214575216911212035023139657569226666729022721503191688495097667487005845181271744382451608074570275139580788228239419795693456319858306716088102745788548821160172301458672263194416359787257523950041779150013651940357938129281713997127900668024863540955720509557514495784847216671654381901913659482933046420371244329449289055504537147908889246949196568385775769423139656624854053610579677050386725876996723364910032844162516169155050601677411765597064742380384044653664330656391333828552839180272240233540501531805190712679251202299938495733543243498859050050877233969925184672037582593364448921169346565520361535844653485252878875673840909666895203492447921994793656136257189267229345659682845203460290627176681888012395113276095020046890728409760341478621179418977096331089605097166830382624880228846945582734193176250923486105833078773472973434244431233365582606511332698550091667517404980916607021631524126687780005808221001678596339945698011395445476766674072294952075986871754782060244245467029911759575281129851882118591613136396480550619020802094602653231384314637501434349652697375664492583107675210893724663697685322259719899924531709774118732638759434721686860641882723567379996135861273050271313904031542391473097558331126444737405177097036551210046933300285212280469203577702987676788226876139249531682809247067076656053502742652543167108816194570293770995800490059020436532116469601683895350847899794554551635687627608657913252428316956315392363483949310890106136238171817205884587816080835999817837782046076914363467890753174060042354787187509112813677989912528125529415046357405038288144498466114935338305025546993628588341813692947123460543539364586790843194296403193823562878778425831491722761551160922229747170121440897096819075903573489845130631096974859347851307555557518357406826736139805903963344210677532284559022450527494156996206751917458130341005260740336923390182761671902039933618995954466011267621127611812339706243107863637891898754441138470289214343936276671858934806181159426544010700980325723271548439606247943527392211728810191824946970706189381156525716239846587358519473126741467578644568190896653449779201524773763891050546505589760074904774065350833328838033114629153552246331433462503404673286372788689608230114242173691767491745386946196216662765161052855390492174866753914237294455807077668571044140363987678213910131264719491847007507845265227520797515359801873353105196286109230177029905876257324879766801871176766723721524679103816790631919534230770629020048375281091600650885906792296604535468753808685532498058424034096368533529192400315151990227498218778590087638283583785830166783556519775638991145102213384205741719917717209603621721108569891136350548758370002267651647978842177430222161171608444196761894363188753411916189967132041437317228151543460178062579847296836928456407883130935996631034962797235111699970096769792269467621980245440612423840648761156305172094340190145361546449735001123384715901834266375547258812547158249460879682223335132897353628451780333338904441487310329096497593731562366616217606423464000936542063860778368411824781578657430803356358491436321298425023465718968030872307510793294069965490066870016847410488255158869949978533316640186750248041034067569701480028939702163664393098888854425740275497502231454039388182886339384971762976254678583583977696743441760775260947972934478574390252034077937960829979486769117477648350093887147436123397027739294148232910395401133145325199723684354233920115789906101058568186686599764852952312669815607565256768805854589153967943229235275058445630446091067160808772793254373071611259626939044454296013470200331346663667952299274005732747118781460362838637176792162101169901732709871609137864276862349951831361619859588867188434802332073089442154848005500284448105507343545345123941345148522560465824402825373200670252639406108940939851777211012065214507068918776797611040491295629727781711932373510802058349921029759219988334684634445073330575905658689354247868967134237778895225375100867655552004183987104190476547954711240769783190635324069165293386969515614877231506152530062885523965942837369534706437521420635787022903990014927751615591956906855584857702632479943508276239523184048193630750224290471447439358586114226066133802463399130657336012594178793303690251250065513739860800990645388868709153588224031160994289974153665523136802325936949480479833698890823731786261621349239992159748946479071102239007301843125943942529211338438270080120969100002073778335894783110620783981980249846934982926313929976306200088044707383291872391821429287166663510120180580596777667282534650959743055892341023308842732275007006725192516828138311516591348320982377175529900930629343926055896737164558500295178868613626281892074448522828682920963815628356748269387889747001679475222778382382645070441079788237684186729148003806582253526698823211706210761824550495025596947215694255631689687709940080513325390884557630179161341804162064336902987510068199560212693782402421714645578078044695339681558148850841877515151646402408447572784028480459899699595225749852735245951523737004879526215720002209298503529534166997239738957696775178354991638048676495197592521296560824868507997659205932234118705605251719821240687325119757153227233744650502682684475896447287983971257699423262438686084304237886259562704602230300292188365650383960917865615859666268922594845078651857697286277302115504286428534764375096897837955337903972966313909000437775390865039666217380119318727475703912890999041260237386704586313312968836981438926053690265836261841533230201156382409011343678904137598398758700167345947666997361065899026762493066501701305483608142549177122891358793469276744586762962358256044903272661093077338053537998845752083730209448736159285867663922947806055790680352107147578679134011594464608594824366255525879788437354581709544491981814016300263208548836912941169963431249732534469507861268478655121767818009620676263949584392342707048193325763957047744170867053857764215789711841637172828987588582765169010527276384807447489096342263756905183009965417981500910373125083235264239410637554107765097966885573129249080945862302632932895744602284510731071202477361086925761078490465573778921741626140474810660055875569716338219673654730759163170297471467475269021681649897909897253653666211048066782313663655870419389264574929824052544895135728207299185010851603723469674257866924653637883190147989631715883613851262659927549594936484362419566900209010200501781766491918078309974145997143909883865509467130508329604901087413061399547091574938017217469785875171846664671945890539563835675792192254619914458018364601532271327114880394857217290266172201156538641448495171724743721783482133272948471031703991166852268474048971321120720906985123741154330881125044368229251997519684455949180079146237334107107748560797829822246801506696348104064138982322076395448557021439920271249361630421314772920060929405758639738827930436887198171887037040955001987935434849875491230718899951924311739017533876565263525955572231110672813532010096436100760058930962445555805005828801111040427660820682932828719001516599122750984809681095506175164617623806069891057734813646323577341191758907222370302375893206018481014476847342047464401217600865313712951462436314181188120241878005744919089848460150215784157369845163978325731033769288438629395939466314263862250784086687992378741831687992197701063531029266850701468431539243074273721641722464596746251334940894316056775471800080621384112438847208986357798811105476307057894251537855023254392423313657599702790027783063303644179985975199657088856108309821227474253258699429441133940322822835440097591238246357171071446100622083834401761284215988154055970762430285851388302408920034796754690699510278483468720799082861513333247788440485167483514711563180621879086764268501442310509162941949993565900927431212286078631408937704016318822449491274197351963000311394421341147223872686490914367828947583441923153764947411366159086767035444279957405324501992559362126889654457037191270300406543741567012426909021746136995826675947260525517045558858592663282778422986426512769511582850815122123378641772443373580140353352380946765770531245776320194667003099125649346181788005521144242213587596699260359940502362015368252402737780690010442276013550890979803226243663342943728314007487179713030703625843915391389859794794855079778817899838690550607005916771572190117041749478532687698149495821844744125652256063045992124436455967585102686470318669665254382973111308623674647260308840718380267832744159071795161770465559117814822517663174340447574913105382540899034882333301698614692656366111848003928925344401269845242253442847327191069022306637697964596864029736713213375924068709874784108210389183173394569713433904033505168010425108339186865711978183100548819942566370757278674476426236692772986200092597231213313870002994970875611641256924902422710800276038412063258447498259474024010346831853875944977413126682599132048023603003960720388658226666258509754141844055049019243453063295181112936163016364709022229516337930744646099170524160303988845672970476350978353686399018765513805237302312060524685013096715396849137566981578299665694334849852649385966256874415929612794770556794545889288565693709270504062903606380470510893447128852901203170833680846842836972309745667459736095968643000984635490975802069431535406378167583284534630409484598284526756420494427521375972548516733662666277608680746954443058736283471436458308621513222395975385755286998856209217554195737357171633981690352705450998639749101307677984393656854940296957150238158237767405323069271440302236478397250763322583376600394646341282673307575057559069928499385576711481944411631254761629763935868647811507195706736875412432707449268953776482357923343233931680861153099016741312423452132362266925792329882681094473407733369076442399336144239190887656861575014616245834414771549857787261567660878363385689659739442397321977414846847097870346573010921671315444708320162156311244714415035488330992473245205741117419394137055207830700539943608744190774468093868378260419173992904181563012006203406859932536116071781112548396178532436842087605778942476814617001731054984480065485413112724032413663348568363840086794106277139989674998986488169172596837937684868779248676637919512798698852176780669957201231661305288159139843971621389539562381505011318047130987067251691134320027623065391091084028855744751061032557035296061672749081620637544023010086541671221318581193751642086333847669913620705798747851807663901364374092875011169862751704402933086562469933420411914661576765090827461518882959779907629979167635246518701226104581321050267055409416105316406249731341283143776364212078050382860563198455882591354991147279691181909446635282962971446620163570828141618981906210754160066200373888370962668211358071979653924896069884631774593615453321090363839334515111963198646799049087610002918344527750933449421283965269877048265865832623899344186426162079316197760645762154435634843098920201186031121168544800343179739361741727275765600592167710545095711203880157419883775167779352231671752820766580054627002507527632171178058771345094259184438228944023496280794191428191310806622396703708507582264722907133623088005688066844533849376528400138847860952299946048614346296038641234101988746833218232773908572406895567583329770935683062914527576188277405933929479683308688998852513147473983047346904826325635856507902344006357888147907409572670389545016421439032435109998937617584985961637656567656260771206042907029226138219453709056032073488116717127297458077804428405857853842018806577982904532620724546933540175507319630494556480546959901310684599263177208172649046196447665670375412331494947370840158855189460500763974490122389084691169407948025010565882304699473219211189197438394418751861726012327206566317089610147839765556280668657668345049182472705468319157665800316151538519785324332372008109134673314784271551384847587986095257242407063088693485415028074641538618775026659585563300641928036091864363459606566983303432063153892674903467424795811951060869539246738256369557819605867508751628861812092111428800423517903230176067302632700318700240951515493063325249881207865225582323042567284290032825055315274655235154123694861441472919664716641553915145408474077376128135751184377069075357933551492661942714301975983980537514025726459690986581932591940723196823074538820594733010391209658438546895196110037328024136195831145438557282854064489144258684594099564427543908249163868428810079696390777836019670523540788686051823963234778958901634932630488128061951561034734142197126265987032675377728950918674411432644625257181580093861663623630526770056516464349240559131832925289525621721259334212718139898154697758803253148122941023885825801682630530719612888923631124965416703154922596272768580870415476677525497263450019435650170867895390421480619556087981012413704013600050845126916463576137855528204350124310070068588033283238850752893433579062374586121284748451081581376682525253918155263850331670936589894819261092893805024834975391743304171309726682978290494489575758651672176875113396629096187547479718781613833283768438868544387561298496982118881356415974677752040703855471430094824753045542163560991630827416746046719813442595821957255654989129678853021642638547491227184196577198412428910152964818439678563936492131994243073714269189501998414497222935175519178603576725043708102255367029062692491252358664651208100043108432866820723148026147246106247074612390014107535425872324937351702697628124477199468091865017446217392581036765066964147266906904802823203564174246774546453182391373956090532848046154584819028195412668027651446592343129276651391050193198984797242446723843754694670677888635225694245129192622396292553919217368448585788346741561263128106640952039190198601247567244888194995275287582471706959275408242121448842745372885600988197536313441494325934197354920817728164961619053097985908886890277791547071756162712665282899351465161196550906858655554651308026547780349160514912151983336155185342206298902540950099271016490900688441687938931369493012908949753259943057742871028318690387682570053760959503826068630860449812414717907619872584917320901053620787002258429498137597262423429762119380942762071631434875280261956147692659034881082352607916487643120520222301441675101036207859775187795978880230438734547935064488413936139717065416795276357722441452361038935765424497462907568770298154876326456452374830301236557354145471878356812677737520170574954767457805298914013905596373717010685990911479846297923135239857413160853750330047265671222677405601208925206314726374135008364662973172509966457155681834092818350528511322048159359576567733366730332038747682954663266557962759142631225012531666186867188019861160635474694174495629961836342323355959204827904338472595446794073807694663046856984576434793865115625802967627727529173888070804263404335225356787778704585965058728474888595727041031986461180487290650051051423781459487399822824598087608116960461882286279672194987889861803571936560086652947065514401412077241497268745689294510652737092730693293717800663592555939207915606842550589952405148859357937724271343039694862476224873943814570952802747805349618206151374314943593467214401836314564550214649580919514699540831136142114906312029339766764625914864233732782138450132557756561101855894518278584967156939259969169240241653517096110361873996814074503370507882430029379706918525574600217039515777717128166095174416383396413039882705422839158252806063224041573004494928351294648347239344306245894792245407166454067768583603745339700147006103795947959519542399816910950101270380729369570466573859419043605281281917743217581369628043751540679473367917455424882807813425598694907721595064303727615658782042054506050243714257759481908084070103766964145562214942499574540385922688333961714328334477942178765908274794714511737952651433604566441701545299364473521117157493997872645706747161556352453006200790624343634786425235275105669484213974537086026628254939339178748969678975137011064865228528585975309602846609608370269468713354086932920627578434454108138012576096546536593290885202215249902329215092244312632254391292587034328096710974360369442720069840605908257199082957287578806386281915407570605507020685348809690643807835438104422598193058370052474033954622789353532530924785670941346342195939335687530560824616524410309153983375070888453101433146332921685179720903131135975094500026706955314825081314311602081764552949297613164347259314736143409202243203615888638701498723579747025397955393535777980240959737591624129617044730299828906334796590130314053917815465204766167501950162791224178538393176772454112592157256473766827563709368301345942025986369915962639265193080861048261552202686651306834119997436991215468055312867997605168024571865950202116849517426393436307003546493823249570896198006758828012723899759274456645553349139819912311872303112907703102704167981910918516934679237545434185943308434994891226136085321330818670842561603665965491262120685688397607615672813932610254837588861001560100584650574940051884944576775032759816131575407236993334225546513454650555131193098379016847643307252353342767410689314959019109435808780368235863700794967374888656845197421327197591921087112343173680788016263827871024477889605588111860514021422178940826559582207322454871039578574799310595583659096946270117640400822576498537289040219253795466909316177273167646474518509033469765012258837029333148695971423054534566900894615839528791487523269370640170722295405174435329500785811254203392404721998944902466167690064429737174188648541669853949214609533555629184540328457143232996475115905644691183114435816254155655088383518197845827431659132462359926858868022625856325986196306824334557196598749742534312464292222646256944940846576871597382842005710634164973722066686626401795693094933637183175737690070926212959678675944467979190842216252270092783156276573113986152554499310157113794838806827745607043901090813132521359703268322737473518040862906493374017655103432850729647210842856548311622097594278845912781465346993855505422871336597300032612390571296399306139549601520720491692663670541373924506502365810532987925815465767174508501815477234500481670787739202325904674456932634090455054286939134639807938102453479949209313547868058165353046029476655520408972277785801120321741176692847881415173942399343380594085091446334577787034509439938122260874639381566828058142729863460744423577453166444803055086792500656563717710956419301572952187281853936463864714054724572000623354584740529688068557847134851543583882944042806410742209740466547480235566980049823471467428481491581300451560585742770380889279603905149589666102810893438565366963845519812284711043052103041095165625091519475609721543567379635705548578671530693537709908366182970532766935312701934435293837569851840163943290726765743358419913053491199404149889141838049932829607384903977921186585246760851340800692086071970972112049575633977170531848432479908995229044274817001098588478601722442177163766823093922693383431378375497371749705059478818148936466859190308807763810539463372861054441300146093486038341840033776754206779587238731810178578712300816136749643578518087344680088336404314183689429013715728627972775881099566144297373895778337624990619362437720580643478508410728643099173465935483650121983984969276873915519010174456718572517349023822869202987363925163823345828327800322177762059967407196541125962024336088453556115614873192293977222234765926367175495190413959261818681890295430888175054952226079274851309606361490705648016155791282591986159885659810414470815730818498582980951504478475169130451695638449517737587103651757350899349102668175742948361888029240613267288784260833035732264075752310689854774640463559743425410559918264822433407364073056572239573945834140675965454515605898403814524286613538404606579225919884108848666463870844450473272727230441282214409533867441727673430374224605706538988858119712882325704019736259222792045700736511438229647520732464794698720527195359777876023596405209227087724196207086956034672345610391771420403907382201149294531859459933471488026905772960033399465805052327302556791585135921123151873687431162665419622967330531432647417125275493083113774667144405727965287466834885877600793551588952596848116219798206862388538325631493948358964570112543870896788744811087591085406093490674812092534646287249590241686821671415535333625840734700997780933074127341451770498329130999226344052053045942010542520645995728968632625961879170679832395053549476586711324899875269973858350201910365415955771218742457631750176111733497192368391033736368777982858779814524388146941027464798267425677499172571104987800392782861843709331450583027518395178062434095038248512268641391967132124285922203345986762461121493271266046844200524736209346289145623112751310822072565638489514606368729102437115627330298359430516770031492087734082025176617182170247715043134449294447615440989648289606465922472948377504766842942017148044258913577326854732000386926389801321712940856763454443384748395031263871867655436832125228053626240637686579969383066301173205512319936439940439851785342231269201018652322635701167435706498101538331830657354800140472500660290132202290888169719343746427096673594155816071535104946703877610679990978943234293551092714461639470137052895822170304576266890172398791395359985233528070804798406249343184136726462306962358303593405581455146330118646299808869543419610931404131546193516786638797640594607992016138913575692003685881126180179425562331647164711304053648275978087139134797241331459590326634215403389485519160129868004685983696450993228864892401672758255039128512216716230934816372542819306068273751099687888595710632326078733786020588369808965020561656548763777028625182063874287998741048137108189015556394611320669535636276936449313063700008018984602695454414373853984224780463465738220463954085045065091692667536277593775373149211416472204816894355895354277201130086679790146960021300327917715317105957553076241231333995142612703670503057169896739475492443226098741316580488428758540211249301969508047694269666201751720783957198278713353892072182563062598399015377636096162885461542465402975348382967190330457035103176286297104497316231969004432939751970312120928746169586989200920157457969545484755287929152237846843962019392917058770168587706798853463523803451867598015626446314981365132696381740284436805871238495592314390100572859924629596718072513282290283314475239534555901759822234951311040354316385403333613013727475333159105714903548722977602327066619370222872551269349881743561423938725408035395609437238517086757426815025703348667624569632425838587983620061190939837579626017505878479339300342698422543990994442938793092277337983936670080870432121635395927846429090008270597425001640197083290443960889197103801364377756330542457349070336667039314515920178467158910552023633311851716649786731871702386083769056237985526936777126474073203408410148267158080788532073762375647248542703486714015815862311015464361742423800440642547739991600480851584780060753972756302327674383676522103031667146764116675422834131584989888549242021537298751584945613268480935901275969124219462627775115944049868488263662310513820608991958122291606600528849136938183032057640500332452653580365511227233386072795649259626673838717571944725299340938906245617500509778268321886531541272357515359002683178432469152797544192719018033465083148619089512367873905086958843406772088755239083772498958299096749031129588859316310663939758279660636471444485453185188029233737864502828606646383993516055647001252960552902942108649299895775984462341263297865161399580506208881301049108113951103845706332312866210925185995009648986023937511248840963237068317293509742151610609831559579005282838910572577882753279447076746952332597359948388759975974648860041918324429027515885950246664457228836727845373264095877396089473727865133079685909538343123095595163775739968538042054376855844843176870903141883972466859227977756545998072712572808946915233806744537543430212614712024643938063503824978263033179609008750136952996542411358294442377216791288988794210466297983447633752882917268656206616201871824512950112544968114946522885189221773698869426365596931129053021112567370082796186585155558756971694814646299101069735794761737705063511574240034742207553980546862474686724554924823364582999107022029175711923967820645358895324646684790591909151415005910503359028261389972605845409232934630285399352901392315305551799217929637692256303672111536574792598791159551603837766536485092230022403228817990915164707669819536451728312467220619902533101737987609138737675798553569339572347717521976524170040570163174763735230181940460400348291823832575792333158672368636170013799003254957368363657653672342402232388661835075605769249444752390470522683724888855072273985407350343909606900173237771819769493576553569094227811085039700595406934057607625429576935873172126356680533700553774211090122035838879886129228118987577023652130524852518599259608957837071392860321284576190040995043370234577702155993750419416081263471924339812347582410015889501791322092994435571584384052660994250979347956630515221613552760846900575987544340985033437910068760609475712113442042161807956147320483100580274411967899968252274100088874359491534357234455992949807772188404793371156070199968899947953117698526219093188047764667288845930110023770219402823777167093753600728712359057823985195866531737721223693184819217661963181941023386042026256409636440773785784903008837736600206107526783910647134162587515576021554132763161551489979101535222331049073570677732353940240774352034759812199471300917640895735741782534419436307692611666085208330560176537221947760880081316387497346015527605638801033444161083541214832840815734904770382991033170818978242685648258509126015182565407930197021103864472715350172818294823774103734264902457321385008312180290564409808117830348974940914567146258276708606236548804719045683029718903490844686967489085802114323385511296436036428712140248017066995495864968341091180996094595952462218478178202175713326535211690015710315325186211118640386810858758724897744233153044672467276694235964733139074848842283694668918260965724708046126987232721856460304934238415948776778147157792064873783982914516581144305973441128705825546842420147148998868542641071000443328820718450838646664305496020511759154892559119261287994302549080601905951875298250038125713668888941420988482543474939772433775533081137286435874917346142524130643339178693867861017270439187887384044232254973176203599373833626396440050109578370475682282896189957658771393984619553088716182340518776613967231337381621077842148704921941655327655062264984913232203705515350587392403606552954257969511999652618564389263993776947253899870262368877965191623755144735106414067400087582630053981031844856131657408936479793397291605759744605757820702310705139047722556749150537652244762647051267214527965122298836692029145625334024855847119474687622980396495755383921388750632941703437549071429962983371174557174595038603435916389322830671649753950758764921526103082252205599374932166590277677773155882038799759327421942446401948851174891843673006644506024028581071197813966955084098417733789010648459523272985940874817111767860072187144191986417543236011292516962798734625598709551407031821448127984416870034390052657936704483381502795666332842979783291296173144480912109043095423283317237784660658980833141205911882181514560881494751762279077810935694499371033486589441421553382196974176338086597530887685712197764822236322332241343009657607456903810339515004986908409039579705473806894922462233419503835115255201615482356627355656556060131433739899824039967804018723589343303529980693659884596407531823173073342440908369711375990668232972615317739660049085940241677309037872822008267500643847069579521214278546235460675690243214547149378174679434152916581313008700966146999107869144797388837984681801449196787465031227296127720371207347023210213954872747870379950656080823604599165897685787583683779870436680697603251772560434870381361296168180469779133545505959216250455470831764698759782576930407596889237224686317946147060698300797618475165184149589177631924394731443235738235524062161569982572295531744341829247040643031590901445057237664058589776945319397948482360112237804715990324757995611382275502512017747851969518404096903622760302574062751813387570416835183730904815186085847522818349634470048340362644194565951696588382777557608824761473755451488865401354847709870478784307773779056079979290207267296240333154070533851752525698951645429783885199600819890250563293748860184037008323042142616492375412057821991536190038973093949033612891464607642979342041627238548095715693386646884549899130426722134310227920929364046130751356493603871054605654107938131979935887015101069796854914569999749820825991291369900919855053827536569089901773644459990325313538960048136200571030204295472102718960018006196602787988817665804256959086956853473848864066579133136772287326541824926867870796524432830039026982128186927160139454786325670981209497422296805841778573992846277546061072774033202869723948672961964452953965651098729145905238490942833589068778957224012766266842297054546715270259615847486142203620702103411789755338345704367184783696174974871900935927303042850321781701185388349408474051288019495010020689160751250777118743096524156946934394358588653876902845238946097562068611828637840463548830856537981008214007560324079401972931669506151707705839033249547352168842883955299543896369685278853362525951440109309651166290694307523084359798951558538308822543469250938959583582095913150234887543285611627565516339437759202219346873180085086897078670915756377531369626502122701292239010699043110916986813494301822111734798636204296991640810579823613345590424095862713304103105549721174138131567609144068255965997049673192450361688535558685761699101356464801664701194412883790869714930859130198826950234509100668600600074449492394785062998845583147014360045988908419541593614744895714288973323690898383624643180659895665752079626629928460134003354571680150522361774899243586316784442067813258276803348804912507022748169741404718929976400376438524949812108120499292221580797105151972404857476762627339631861217394037934220158418824545230020583968994393910992127024694813156866120219140515187647608962509126194656729950870968524401992960219348504001102962562040328071965105815265983244306550883881006273950947746069148923493650769209017961982419480491203622598352120542588487999610781100830998175557479950341297361915557538965130470152748016944959941975555125014415550689200642260271703051978202396421719557191649612328858836445481980473137351142437793946610712945346246553837638414827300185098809827867475319568133243358661391576631933158100613108658796352278412613775383900220460283287836672028600561285661949072434825622042451671197105374771717447613193176987279326714800465750707041221485513072213318564146281931565980894839016821683721424984417802074012479504725924428009389781387113258929868283360161085070365841594944342931909588506423847878230216380565774080522417373335753842025184101198092551411842164187921151133614575330983757079290426215153364750742844749403734091922651749646396566539151286484070597773931722067444608841616349416199476314631680025759005296417586584542178230696340869166870479266000668464368287712541570663145722299625981178164539635534336031522887783542511904736178926750824746717523529107341570496676193889749231456691095369402658316516560983087375898337722294534682903046952751232937089520538139899601004222840592693957530277828652869634132520314954627253538497911156990604003230509766867740584509412537892068988851567814216069673113233209504792272898551542913557436421462391760054308061701341166247293267851433155876857660087926100707230250779525516897392139086099432868156637006147208177194979470412802973751696232799838265702942384071229541164253250606993997847715433716539684208138543616480875284894963404482297785098785639878393760607087558514135133154222488854551776544441195369262194491247770096098490166654336146427418025761215851522247173040884428987723700785987928310933499619386474155001383666681321230741214025685136384223324058301451543069369557603476876641097660620252733382532337238912332334617401954096410535538617947252984483939841014369728692475503072608543368959395619912807623322044149979882289889410348230062291723118126683211938806354213305192865447446427325860964318562676279222503893457708837414416491033339410957972944008321082534421704177648324223848232404619606586535916062234370346285369399046827250176154206443220695613362738139623152024756016489755021113601080007056697477138091379748584957085779334487043834305667160896657362113610631887329627164842002515665125137560934589501844381057628409818252147814879576163316356280111170454582428319962172230023428180840264171015675399441240120770735991632954470863496083572540612545251690441791856108306550844257806250099572994208687605341995196760214196774812057068225441029041928070227434271284632231563108910271507460192523933693772857560672362452381778670345601908508986766271769257465640943598291702495597979571765269924548830412457747823947151696180266009547876420364172324252977337874404141262667353837695306029250399814501253154923818558385925661907939387578289750677645288815971267968223371770438461287864702466271445203606553317841017268365290032751348289941597251283029874760769266080645647102791564745658756357985303371710396225757859815457232206391948899004344735589768206632628224707502742104614634196438303531292075005043431524837663598753195632005185395699239945205306360286892700943764873073620840991295319316587881351564088232719340251800781469390291640606817254429349353701591279935027799636925365328203386120986438925285276754969683592277929226051254610986028747486953831467840179561635235383416526024894336106310395779120851521969609936797997097042696573070559672673253817524772942197976342298910159816944097626034097428018660806939754284197970218196209655201804677968577182856196269752882324823966425756300349030967483523789930523835801714517428076790280671714648310131554073437178314526983902871251928690498380531943949679607178966265056560903661690628419656511694662006975976901417411812038863094250268877873291108531579259080619518627014475764407173592784303191130227342257451461725662263074706164003822965907106635322410631786620592365243963902789586730096822750354834659895891984813383661905016441506962783757682312688316838871957670130311952452185575459761270688642850116269423395207558448569471412549179456996016687553238173372367695890515397291416834136117029326229954027139409933499158175407225404196752527608373295078943080039466508093228502587474836903306252315616265809239674037350067608022442835789676361636191992559548420568798995807173388163426695786867493340700639514487688274131863368491261373452476428549761141220717549260100427446360891580475447377923232821418342664760070257018571248606028829349332912346265774117879575946836966436278456914135014037364552622668381059477331587674259982630448675608022469841396906170106275617842635229774781321036739666832608719537920486113241325236093831129373024838487196791626370414756901347979164903979271807263079677208479222303544542274713049379376683190030926299757917555832090871376279923683193041798324416502603358844178510327117771470358660991230452682216018241093830387015517573949992697442597380604971008171383232974980788388365434025916083076665041868429586446411507098523057255385870525220552183418569391306958559940117134069774279738107527322739021282326179168748527932120768959214235772107381174027435989243513482100342090537498256690390621042186296082267610776907324846686633289260409574891025059530663919260706144591078375710896822732643467289837386141892708320089405015139102311539205313621419775011179272025926128191920274988387700084333626090834272588329108515600168681990115799729290683982481993869924936366209335475591900114734599288262634393912224097917140928418209160185000764246891502548762816674294276587562027079424260256387035437537139075553254705686046302842524748888015685807980592870341579997565408324283064756573232388518977991952294976309501874599165824681226289433706839029532771008786278403629616949263579521739746462922520013708396204522904245720111117720551516031461124980881422989649989811652684924541642123207374051616393840613558302077637797091899027357123263374169936564515330427163135417836959089086174089106605945315000193631531607030823962462248272657038838038032035761065203428144334305964310205246921973267671112875310134343051689207819165513196649766033739008170506145023148031091609431540640010335606922911898677838297801464752536701653995536830449797194088057470567351678013557780571714176379630944071035235289324397128084218621767571099132985375756737855772763863397983012180219438495149664363461218323785768145026555338266379698405003267701367274726832482048048980630984438347831870129485636692320129870915012164108138614079095947692950615660486974920387576863308676264424930699389956506295205216660207915634172048480717429984098793114057766218786748202619574757451742162354270007601767333624577887941532877580410430552455139938521257152420178246439500967020606133982592065763215820013005438823657958400873426261696355597237465373370873351895239899195118195010942732471007068291255042260452764765942560170053147718958922132769263719481399871227557378267745877912350113359000044590195741306161960349752648488085828193442692983016052356588061729907539413722867505842381866216382786893497381594292246115842508862117907749723740465511642053587995748698027087655856522247942504449331761277022827108761026554177353635958232663549178562354764692002558526002564121435861425287970460509027253933706856603992057279983211229209605217143312545906218505294397058371736835839675813195659977043666467936966536835212304182381835467220140408139947039492647296157730496802457013640417287035992624351712715124322125203526605224451293771643180809146460475475753055019039341706872420542481538832604780728392937571513572208589208174040830773894740491529585059594719859336825189719746484410501589334962275794822265048541392819616252612891759863610542360335828982437850564018141805047819288601218904608389797289623974893280620274730403595083151405206288634147757661357365703121768217125139255837679944584898756717747643641060016354446204031723839381609877448408479162546539142664859122127929424727535838171205444734764817306628564272892671109370854590706545151140799562135488694050244637524230723972904625093508664099071019862618251377490802694519682078102642254730666843597401112035820685957473780314124169594306083768300452949808385641513396085415065684065431986837015594994057052000472020220155531445168926498935419049706315559564379823989335608673632449906635840601765450167585100224643283034538209454247097307987091713760809694711895001852334247486619201039263831340969619342908521679051902300452424642606492301181710258100354833187620001205416548310817454961462345876397204509380141175670589055337791808095123118321864219703918621026553249946375688577299879395912051248033482219769259759783115009462658250554813346329754018053293461143408400811998029256427131356830238177327388759600752025920794523258258457474068328667337163032094302040393725080457503770115843717456990820483866199976828152644221603771223331012843749649204792670017527547906423143821317868890627435121208862059818118859374793321638714783751281001210072615931838319094927974018033509386261538258484284511186201637308557097365177917056737148406573502364741181449553504290856626268125115410818682083537512706323009284707901832204646900383993304567831281917185057705399840054833327486024351314939424234605954048373916616374745992343733349534219878406144976467973861200996739937919840603409781798885929874898440967409675135871979863736951624617578568249391160376920658377488579362002070834003824782727200416779735441787234662572353683274325465807765315767196066049972335408543707279852382416980428197331415192977966554074989355134119908452310668549901500580805981491935737195319698795498145117941961492761546913149122314026756679663502159012014279021556284465499927974957876892776220236047279218694664497105249937919544634951171065241793841929531854769255760219882866834294753292308506261405717591240910685733368235300518660241221897815142593846021307361631153585730815608384714967680783899473686277751904111698934519889816622490005190984291938641811293108075770623131720411747678057279841625642834089368843605953972429946464037873309416498673189831859916137904112959717345660471922951663046101498371258860590961989604661429435696926891615467124483811815864838094492232062549119993757514896477918469439723408284660286913725809541412601421230325073546383530659011192883527194830389904600490069399423377062811111912297195586982614833991119322467049352069035072396485549762700934165867198940999070900268616375216217628564212495486859511018288188044319697061676373258475293909938317348549074036140877873813520544878595046301149897114126144840616597533723052645412062237686217652192719325924328455630977584028354558889000685915632246439910299399912839094163006696385103053584064052616645779914444603123219756205816350457724612362204647735952886169310775530407655148019722146217816604494992189291234463880300309927436873439588941567473403391478662519680769724646195339491500384446936336752083422242469811884160117515444291129268892906252488840650710795863055076245380072490414943379504976669989785591308230371831098188937998004384036655561387783630012349839259872133142333160767259929284431289366531875546068104874871110594887822936483541108009428226121722446781123816153189320596057650476467569212879252812778623452152820633979209298268861081346737564584131474857550660298835288440877977874565690883551561519252309109958680122736248683531167324981191490065819335233634922761452661150716965915128460187442619532524723636214204672267418874714992519859377069931885959517518938187349457125982812957608521353391389682292250258664041966744005007115178614018006166831336836416882339339425409098159207349140692012097728627188425512905769249725473273455094345534049666120729232336326352645822208849987079496350539543621798775465817197215555466484080549094551052192321763777179693597249392664150026001711183305938854023124422655821775424937982033268977170740761509516212964956823851268304453333265250569716692068174570917903518754769581863916203114042317841481697004917196971617985067458216015570577667198386236393281640545763964611873171748181054443460037063710809892813189572899924215416165955061548030860134967794988184544035264034953610178665343259754236814720708108011850295124141318708384865892909812633393091794071028218526148429431043498941935030891321758356915739353813569929994312855678259051927199308095805076904862764345839986829230909971055517368373905070447696073733872589623324708940409281323228636937919741176060808086671737960037853717058940047378407172146975489823084056548158185563326800945180712947381922828028991138241233456744229727424400345503454576244881308512651094752150649891539681666401623459543979536600140207795200909652602742075415489792111939406276940620510722083976637932529252384572934702437134835664396015965312230061898859865008999819595485167009791576880156398815881936338027275048180185487238073159465867043693397360121543267868985336300629819184408014394250804436548920187059215070138402047336350166292404501368900046068754367329901827453854106120255411574761320027576589116322307620779357995470473288059679005401759671663931783882374101892852204703098990006028071331738318546503667456366038201426905216975786678571754581233251931629368961927134341150022397956619943880694491040462381371603425994050197471185630561863052405134967699021689489651362416691582558804899327324109002840821961976027183349031340395735187000934066031546317194503193075088255435354815500088425523527748828525708725484526849742703085187337833693465952241975438915757040396123305631826129961708556945182453441399770542977304893328189656324767276056446374536420738295491119021815090142829773363366797801662851876166378362133189092721524854479042481375160365871466241315731459624395419280292796201357330156652217833719846620813182420503679492138674408914401260530405852898948688135161616319703568092923227667231698773834996054367716061215260423475164101894340095240160894735189128780152482725990505830901749672497466507338075871173086622075311731534743067161754400360821964229938137561371272570767135616513969845055800291971605725481097336018602448233336306862303205742533216098350457970967390698398001186312854273151385746974568275279266839106753628589727396783073844871130387797740515117867021599443681154775132753275473461627417047378587167671832145058383471027271190467177372913154708469683110526519764903873791492793502318884357369364907615344541934211478888155485752168586293911087347602727313542818962100247155137931701217199211484412650916370448859255861590201674067363523947447342113742591907898560252830529881039858323659760193925142993565479654164360999394762157332868083616868281893589470654825306121160873099905520516892799556629077785397217857513866264498351863007334209358068701127207573229909771422538012284970740030302641742372832708328082300257838707859179325606074444486348634464892009284720306349512981566822977046456524504446154683654550909099144603717748593776432425445886596885767659451134326998697481080602398671587482598058928909016032381495428419783154438655209760650933038174839067150994344339929782482090948594373119190464730377677182863940700450481104351195519377299592300352202916466818182885868633122585418997157250805435422627302779283245524263421852126587715051709757265032420705979744768963979932418597068376618375351228149556941664889881227765046227249837116546091910320144824554975293965869787565882999091639793575987884176975998070053473233519132725219900202308210561223910613425679441739237524015824472049430999205018516563515365850743749118843213170946506482105533369388606087550752999126006993483179705581418164278103842326062925525465263876907739881220198765212700524660023126558708587960609112931976785612159083791899903955092330823898796694840055072162151657541932203857654601100286383705094145566408281603643720388160258347237086328247734921218114196128026156467926077279462573445154216704852634112368020683852853087566721550851469046080179715433352664395335674263121871732177109564983797894100667243503214652638940953349897760516782139947910575745153943307671740840831946961506564313111169932863886372599779947956517987676231181426666496346246915975633932140672162532779165200109520346352975159542602013666195039821781968687523214482748796142753031869531166710482408972440539534100045490245288929616720445159892165038235493363781418118722689643813295457715171404764558667682807808877389308426433122117891597408217095367920695477077989103945534300844231013963151220134524939637161116905266947180621918633800760798642003980102975097902514899633557497286113559659122871688478369465062921405958923774240734343176760952528987530244044180197688780075688242219297576933479847733581372032785633332863704718657284851620839366048985559660721107126032260034854166335818814879432058325195337050553056664154288841414831781934285179279536413499412751942152517109769112539386183338571517601451561898831161428353206213752996937364179644289535969534054094049089371378997217832258698736069554015475530126313072825799771934516212065910359973423418085222964679905287618432121251481736248353416155199422508842252383756899267885397319836177836942587667282140752452444083545847575447696706540864877423381155027079962692833865133095407099330299874133218816370651561149672769299566415948426497869123709191194635342875014266260824104722721527387003149830651992688711938445025265698201205557183352894308803144444078222647002886372609846268189793437318796141817760396609199809756410412433002200871040428769595503513603432808451010439287301024566896434597590172070202634902779133714881062202547608777422585051484775097044116098641659032836777808387546768151245225042833408880610686594478230541515165767479537274119883045743806036853555852460830324374315327992958754934832099677046123959751891721614602378980185267779218949776619241521763396174626955603972631926037434803550190095870855666766826159396090781621970861717642450980916666550122046588335910625738579296134032134177792904589368868998860018897333131762577574071660920730584723102976698560713469550786918068604733014119714518972466353517556983808079483450332221919528783308487439437052224572996244616096683125602689789012483123030864097458927003120271623042182103007530670167166119460794465358810264623223151203737607582947720764957593066183534249598802527174647222383949304478519426293265065378995081499820711102593158179960683845446170061426679144005675061020520473853162122061331809406888611057017461746600368162093989823803787034330572549903453209739119123026111135950294886993305334662753509365583354071457016704549201558912009943894448428491723999682419393141850196267937047260163698140957103608189758516962442515054700451955892785717824806718308630932427735970567702508587218591516299165054608593205537169586443185493693279903101271393077158723081353369316325550258717031056127303493347036409676976266146113268650356919629653882399614411206813807291044560529093498482581613645395950947322619271842004480929137063792507092366844324504811228986207670882378429709484889012157694429826430075474428053419514999763783580860633314773283469654257549212448050085120584818870587884505775245583704732378147835487354606915974404505465361033226036410296699431505115179042700489218964769909115466784209057480965156269993042249253360383560915167512976340920742185222456245637070774427449693231569563698051435587636525549920172635461649130108983864086682389428551657464780589273137854698087119473432615756851322450226573718873360742134182885694876488469290812136725351801108426243406094380602157961078466614201417365522868998463336336840995499947993751116468053798431564514378822209079617060407765603515400464331289615401141994374660962870970963126375833890909078539984781283495069890982952548145260706917876528128159662790467316097194709837265643295949470665821625372474245352168974603753087160197995466051826461168742691167316149743618520246426324473488504025491455321871847553580339783876155957062565593092828031116413119807586196573452132612157690144937160539814142693306694073059745845936574998574927839605821665996600737569543774204165439457839582069189546902998590023384287538387674773155383670961178398134833473211869706145143526407280286909810868182075487541481546144102241364396268764682936851592670435795308867153294862792669549866034268213080827301317980692873635987859743015868578977884270328468681053021342182400739587187319664207786680592563185224640053743626917456792298959631581867475960221958258567835302355123291663107610327019240718150953789044538731009979569169636860624516254076235195330254921651249817947785000300813815189020109898557815431873079972616885678354330893893152303479421732100183224124893148786967599425211208953534177092005582443557284108146377068474327486233060390937486723485875258466531832651472625475786673453878251687954045661226266183171924379146425242785971602771684096539673856572203174811271236989279133513158260691978646109025849161191097969944412087009783368988036238761566689051920821161641882728511627224745575357724415729998324556383984043960583031119593610907463634750147716061604155493326397407467618663006012462622876416938482252962307279692822325754681228459560141444396028691284334402190888114005631583787140486104414842330263091951240163594261184518702358950433490979056148102580183275171677173551912086227284081479481743687930118655164539035674356585990303215531316818615017014844445448900205854094480866480365213380232570620856564111149572751605713293065360256531978152367916485774159953316714644513307269357776912248803960573075696515136726874334796901561473585541045815685571946175730853282559601886679931202845754155984983278088356053015093707278231405449765049363673316728717181526412507981238523820806779715073124230415218699749266182260541495199434342564304065492376889417878674922944642587802561833865137877221183418306684746499223222353728966368049333148002219664588260368735515780472619229284011940442075561660076564904040777981704953001426742582027987485683351274847119893760947131602330661473463756294174938119575238598284854755057526260657950378597350462156994101126991741678834208712238434141705580510588514726898144581668481421992516093676797385059873917413076938338629032950112165661395692912547440580005118659770807984157413261161293235402912496032228912730894612649239924624527530474556212256840048293941290574743905382442666736751851027234296505390369492269047508366942720443182146172202559274748672200966591903103828703321020459269423254077671214657050936784865054360482358295429693629276047710959814937549638130989063302011826400988985047493336925265270084450209951751944632798449943164418052992917593998700962834268945010790359857034988066032297862045843199351702145560993548412809041156553328478808295649998193649388405542383348818511408636467267713810723269395040326180358805496542296902154255220730251390020284549636532179444597735710340321979816823411680056742741578787025731415480227651414088994909526370597739823392438600285766057617597703328256997549029009799792203929606075774474981567234688374569959660578578600215550701465205997446451961080296314858000265650722979000401542934723518800267272575424694474213931710693168849508231845847996312731104506942225282223829687498008773855445939354359416337985174618355562181336661589434196591079893884902051774046884855564020872655853806097578690888479894063432013824495970479438436741526664818222647080057467373883644086655198742239740274823033357607976259595771490127206670274644343111424145977477045620015446644638643104130282379807651466151018968648360472731604451362069892074093398533614819220767711133700814267500689174894842492594774758998423108708494472701074945672875387668372046482592000536657824382149808809083812547813400003442338940763094601691727270303260312789640516858249853208557518110446375160687888862222073833176913032730358005238276967108975622574755550154114344737761069613843437609075315179072435547272063230174094252081997849595265760076172466756936698401350368089192957429212378436884701721122364270564267052858130517624424637939444814746406651613557940144774360150279030125543569184808074865811979020646475018206026683108294539046524961885659813290255521102375372122243510319605475433882318478105243833953130857047903355709471269131032110102684231824237226579743874885244580397131027809539489339358495915920034400796662554965324442502963211474211642788461513300819367374487322822763816094211726302075927923891495959486751900752962553690267949439928447556637423936403058682388186346369563320349066014159306842676383031452977777497742402762423503741185512076286783225842024988353752899278775872274113658980730435536711291207871654944879867199770367335502181275371766128947954438381498285398249877993824466597474999633785974620833937522950113537280745536077897919811566510662273364851248729626112365046976891300892730685518268028031602816328098085652803254727416450964440883724153701158267063631836491735996049018586025018626621020290044787342539256524927310515097655641448264853841272409895355777237171966949483727093040259833214104195195896965670981801868283887083497705241612656913012738769504576227018340649559486180506057176971375955131990255616121582599000196823835328785801026696642911654511160369251189735769281018636059835758909805055192855137469568327457609183935628817749642515239996284686905984474956172795788419006045134085653728275352382095537316124743758555397389849502956893025393701722835440598716125385684400538865355072913545873804221786164140602807475679611084963549966865661349298342093732745491643301800946634066025606881760811818943076835618480620524409923158325542058751910983483912872225831850648873011926027655900767806132602133165477363735576581989040271585980836011659747985982774421976936901716440994822525931580071303585690595586275188217837227154558795795368197267599241494482713331097831002677207220569896385585945139440020511525510468522281193453793212935110133173223012412840174986393606179519965635974512096700543347639861623538632085106497102804936718717406592886192935881163379105939484451099079016321098023833450748340188078990095256905626499950301728648393367550062479112169055711919301192090658618067263978244591807717315192421210771632926458801525265905999815670075516319311906635680604834214819918737994526014939039065411856533405024655821479771755622317125250121569439774168909298132269408903287893587578669333913406101279851669370380527333155970895824783374577425087373187095174772494660438051170444025061060981225782226946655598026958655354517857183703706940017894793825657361160067258035660534364530984900821814226271082071742459863218017925464177315126903703185155523255843545471204585620352880695806196080885306273855867980895086582827522739769701665249046188443147042436162332548805642989511273258067834918138965323884830350987027028208032552850354600828798162764297377851377358575313969561319428453970748167501486644811528094983424082192518593440968833223344945718547751049249785810856386928449774595094731895192195280583205188110034908717899625163411020291264495711541643153941069172951908479238730735140847882877604967551715585508868503644257650308118373135588288553048610415288449338983369739169590495673976101712397194886392369641298152230134653690666755191714542785821749408871196382311707953881301137984187062773371709768114494912271672513033709031450782955628896850323444589479546023117983363896594213737002842327444769057234298320865334324653600801589961092802914875169103336034982863739912424085189598452535705746860669692988831283403046349359621836369268634061142671657376554093535729425657736779538883344888744538683556495088837489659451085082059322936770972066788602260766263335642389847254395489598644815523881076546376804408232224655049535797594081974475183263844735866063345638962208982135512772021350464075256977692738610736776678779019965423501144002727799892203838832248768717346168111193633168399393954464198837361252105856860134374058578703322352722854272459513762569603958181919394366996193524263118797346638316642019066777870035888150138164064010740769205884493541127380441228509084067758089184875234153711319104736507506490088264160896516954734491487943484070742735426371129399021044914559750923913892149647692122014852214172227010275686954214939072940305238803686054292249996308700496106063350219759756616127828921541108272349511752308911133644579468130590391165049751751464299201918711536845841836250019847321122790554964234946436429173008558870643774424002567859803095845721369058078170844017317820323147626019789791088759272615797501694840811353295542150668387841725665544965628333476616026367504502248371066333630806614741616120160731281477747756337368540712108140581099248579065065052657344450810770982253261014850235534733371171830217802815226560500830822095558873825917318887085817263107542018856251640978134345990631673216192128901408030772197106669254779321047979999437914107662585379561131965074860331320399641750889658609849436012289634423694558085912162259818278123835445874091913952927925921471054872404235908930039911291098432363252561437523097922334751949579727126724487063366722360161150434418987558097383715789415662828305670927059350702052040294950399573205417454683617825596364951405049248897168148642137004427926384863598492949266239377915521036574508039414230744214742857999532142245811798338842765031626830689367479299356064605897242474365197486848941029920545439000003718211603078383630850318669357518108010295026594268492016672500934483922915189488821969805828455278589911736605650891995806910553423595148555995776825229646787357795375457752595363564947021163426117901821895136321915457214507163229031560076680095113081080838976108954557453281169491502339389440042994758985179506944638660344670516123193944084880728470680017272801381782538655368104900619922970253548362209869697856581604213303823458995502954483495026290133323002178419520491308137263753647604754415574629579413464833232978276637649558988491492697646664158099498465137640054972544690204272187357391845410411272433572229123448147296899014523660584928237802859677562611247328315178972542265863435312946417242494178414774518040249334781224771694213478766104989529888173910789960491195166515804475086209899033135650313056111294179656499336248081490836612738355759967245283568690933579410043228703468774636340614708953413782481749321637921269778286487306115361818809978510522860931017631499279158175852915172930515489558774249221922685145036688333873279496585946780484329120338774359127583686326839020367106631264197190742109154734746105561816124863388106391687752037010374892438609853692274014717115842502952791923454331487619422442027122478565493446788824119899335285156979283218832762212991882018929901366749616139534397724742252685112537627214594235314039771892924559088323083664866463779938265411765569882083482410678793963366397466034704006237095740966624410178239276429483098051769909868407890820845995748647675270185669932568768473153063807833764937589781261292725446411010130248898359994939480297611948403805508918774882284423894182236468367732532456517099914529514052540005512157366183127131457934066784998300768129407006228565722073640926103171964433414321290195315660161364666105673935661921267756141003702277516760267093237972077592640578274188322774147108081790241691701073190364905240703196308817517581247539392603461339005217419711052731394603270844304632444738195409710454658298886063022402677345079923270572486084543694990432700677192284495782372172159650392844846191574320326632988294599508938211561139583362742522907455607846318594054560123141451763914704838840889092966043973172921636881348423603928589359219711337974572729895040028130714884456275657376469493990141641541090816997666081186772369395205578689697251883895076341533867697146099412978979700687309596177568327347278752085184607697052993356865774605354934212208444388019406647671870437060273928422416963270098297568602914555717478694803870578692725597331966894518783701524717325291155544662470731269098074500247030953451069627863181243152357522026527247585782105473424234439064506413941137056335307530889710796229075815547033736901380254456953045708809509940791514675689283279118493918039553449974474415199418599157916669690385946820347882387475020893938610283761652220713576523051951213515868785443312153860180146669525218646768753191660145937203833691865543273345560010370664161441380546955122883280013252445885757556653409158045103874684994112674820907547963484761524595958670800565052935933582278969481273650202822376109000027489189193693272441631647806225084919878481550545845322398182257663971951572620163481701976818492896868496662824051307460388480538303366260818602630236666917879424002339067181459777942686502627415845728003567869030123101347666143634012654312676633044009177513575857165683518276498568164970436074554772983536330413609980192215660419705391960807314857751866272472235910362421009682665310090761736758047985781519036435015067270157486763387595601563015411795621324009421761316933815498957350132651477684275210645537011971621602798148809519531095346415485286028717880264899950063768228193663943924133152449696567701003371464218134433269112529082454901431082608628558850981060349680847950219326943729685772246127907972525594854603824645411316335847914273555048524940800540127173416296951705350198847268269906424996847987420538274299197081123017655502630098060458544074549131743844528736208554020491162469744616120359755157382428343162484778180469952627754180026492922665636739154953203961151453878671823931072486209799391289236570014348477705599162918753695548237377428800271345711683769716316360229984279947726854722239467326312083179592224092544120603200059696019314761147253280457561573049624800801468779780692473147543709277427806041552081672266632563986215412561030906205204086874479938310309602513205635630885619230044501710541192310073389640276181895422489049705668123754717703969075743125357731461650600940345621716037366840013647280032632777230858039309822651326960036528388299296385732047748668050094504853665722837481183308373705950959701720314336304380287502607452096723380121204586251799203999429781122254186927886049168561206226108808108732203982700257742219894541707515207945787159556169286018702577186813758687731308938224005777652430878449207430588733360665269911145183626821589427260406368748933579009232435698886089849740402752706139318543061327270397695952513926892273991212953946356832353807368698306794843117922144005425465047673707372732067847549709803628713787763141204244147774538770152181121010823237144930389345650599678317460592196080042223267674233319652264186743041083447935875054992937456114151898443958782190322621069798755298640232523227908019046907909656504701918115806009371448633923758532469249910883926985748727254380291345413321595312331578828882828085049846049385349995957975252002755144718231986872206746260267728317266745217898774806746554501821598586032158638097644403493217172977874307799238954271059044091888619870727947502562288174397506545126479143958586817515552938951925298513063679102521491934390155468523203194353775965377680414616309880230806533069108469133002469889983165441112679323287444234143885624047593714417105986217076722618044943599918064004964768837085317770062770735508011829332967891555040345290728177426598278899736064974124009616883672771427436221360337496991559339164653123310102948307574703002598942101414451156596969083897197131169254396305549970585794885500993549394048643512733416636939114710895722557471140700633334910404014119020997673881814212156903940476479960968908625009234208912374829952863268108405191031398088241997195109515519717332390394246547387619704507508083506321384853262815987310941497405290926521608037268566707387121613591439600081095653444254583201621838676969692232166315340026644610593628058965984240703829271200817226690747909156133744695190919899579384740160881756596762124941046443840412433299423477891207860495797023260240357314974491367346364093060166889038064355856003705940482664103817087254690565481951983731605816984772627715626219151883406230323010729323256530363017630736670195031871690100960498324675334304597151024649463763832638142442443009481388584174979869946001314815340197856999864386523253555048820678641527466217594973959397791379660792797005461806526323045483522525330521686745706101382733864792463697318470249203089935253028121760173743948580113154382466808112531326115389674916878852681004724054702292368865747825459172338402112401862080035789146463352948089787413050869827819914310836539107573446415652137856595283975763714077813040583505418962339721712886673407828428772995083121178602960838743115220047399833555882601036329101133784242364267362285132317737643912945734695851448568058319827641850142467258453848877436920187933110079565741551961232297300748350571368735032285101189079094368536068485182082671868140952189830819330332414799594788065517443697192055764699378162251606388827782309927890481625275605167941442715159752272375115840877971268026606439672615650003364602351201070076547241632642597637840824738105003713421765909104913416662475229858748929674035682170818307427994633082481882444777692767342013449997468742801611053362182373473514779746216331116283390944584540655337524817933857638865111515803932903274274961578391264834286851785340521340361212095828313428587227149870135849614766289682978604238993225961404338696446239052003136268483542200619748215613071836808137334944243449685708312097468896508009060429938154118913682128110344434627415033030864508979528756873974603801802797732260723243076381577742591834468547909144530182016796216218534151224583435810557323054082419696219829628516381707279567034033515028384785691162751358957231978442946171994054942830092599456942533203274316048972288298471625227956204547758049701343359230827196660044119301345031107523233892978510577532903753779284852755453233849445846799868167768277795747776393342100527873735169876448583450496818303364373845746673418548635690740649571936473694390300323481341189834689979778663480159367738058907313928525765244971916226156139541592654890118908694376350853297647421612401946951624633593411334078629051444645254701376459729772512000716822181236734569015216160814294566442678440766987896553616130395502061793400579588042888322735606021839536848112635385342795733414097653104858180736274193345710714590345233938085765552106240772060688964337347002020966242113261926325790919058842309836194711850809201392323197030946506395812278074185373447267840377254645041225670434261413650618206727276710503461137696566614548606875968395330535604706342711621256679259474124027785747977736597136341637204692202781677116582636294815845983262015446508288705283228338931629630926512870280806986108386693101739181992904547990323424939466410805875148802401024060277087521066353279819106232147366465934788812588595708053207487574235952864952543692634596336023048458401601152788428391077567976289636442058909299451317177040283641321176623546150874223504883573882447721594255846918321628547552540210695111165670156427710388771461754407286253540939117970166414943797157712585485951566494969333808963798533149579833906560081341938249154777367391536992856349934386786198145898273290452003926250165016961261602010227570112488529746941171952854315612905838279955040278561361511027982174372597862522085727899465882910918611079183471269917685814999550394859624104223966057856407184051431863699213977359140771769733470999440856365959714489212940769044690305060699744092430345235959283684693578220996129376611809592090573994134643602207180080562807387350872243376863835471079043791536664671510286215332899577241277118651945978782310862808021680418905963934239106398944492842915741016270914284721279829036430848430979024377499727213621427699846551740397129699365758588855982140082519703496372760133467134263975955636258217673783449610730253000205744673816288381972337568658167252226022096336729942630150592930366138136584898452915798034498564828134383011971783478442570641779788954222704933679049648306490928050332632326884561620271643763562560486580349832918205069559749770366959696882686933182499227038715275857967292249609271273292241012580803558990033112296394496739565490131139268678544378188877577840638123015947248853482008814117085765842382336991124196154744570582273432080870327075105618269466934936743442227265337867414936980704270218327073308617938729559959403666313162132362876137430436274460233912835765530957197538556149331322056395700853511500124436552270601119480729100231405030530046450547516401282685539529315627457748021958071179058245974520829862683273723324370515299528077224180665934713248471928526080255226008575447460867235118698619526676342447444701041246496034658595823453187147038730263999141624197057977655391674745124021804116741121976872562814289462467691847408256275330285706579299347777487279198767164782824946174584385244702632100656596322830457542177617599580234153755493584674068187315209099094100333866836344482179811886525470590921507587859494798269991079725318154869753905048864410278725251954917810330673112229296535559236432545666433382315919560794342678286815317141701836318967202267169462872794418140260305307735790218017747728217419849311063636799391514742364388865021220156388631112877277929456257740186061216494190115342429779696655881827461674907372915830426733653001012205041096764646616567403112198383488548303974321571109061362138802496512605033869054555816613298255956864927017998485901708109907607284366913526360693910492467649962250175784830726976976895822257879276662699824216234730473990153584838888213394343768716202221186282423642153533332648202766577785609978123504553095478262156210871960490150199121582572962758017703995494601788818986160686615870888861058203573796398152282927937685001913108181699278151389057091742360783735124209344678665623497202727530258460564199657735895349924034666453950089752753582803606877905967387241059094517425837727558859585506748476537053452444860522970488880771999641109327374731751276786556094225847986757561416054251018463066720341972521209583743622516616483813164042276925761470067854918340029285437965774060504513653779807357283811438216995950720066203686964313329611901512122853911745848878030308304612580405399998333072548622614233884754786729209518037300632931859995757771256280169781166453058906584286579649992030273514979620818474456621794856418233889679510208522857075103799788943366992601593345545412275645112708517278861045009826704381261716013994361545795636437539358396270669060661624696270229847305684719739388122107631681198223080106610000180453019179840002347132275914510960888396058093775645179929559702346460272917474337788174864631932252606615889677925944074410965466410820845608662269661388020468666171881917062846781162922796642123281501909841572036293344092623027394485458304323075942278035659298203944382365213082135048034713591476232637560046728039122479418565561430386870855306049852789746035529575659922520387615212979107579311400581573167675664818273480971768257836836565945944172621358384787473111768055078225956492266841345290956225581703106069584840563017844594530932026954694379069258475845103397976093484672285287677112867773322581804083476793999795666058306167264372262192255175323389535018079689297821365526542621944745040790511368434987717046946593680643880593362776972611209943928778200769923776870323962444108391236265289779895292738067295830685801168962565538922111172960585199713943805658059862058304765336280107718058091406855934662661206860199155147685443474209511554275206056581207419885994769066524540054938919642233480300059257149838093103223253287722663550988729896407889704285206265809634532101796347317550460944384311303940753974170988660517502100609358418368815351160908978490112931730238432946040162501307798745704508297711733889859663251192174971682201805606815860327547353636584104107866047383753683403668666807046666372614286037839516646777693138183341263278388615602031827022155088014580290639737544402591108293019556143013972438683503532144775170257164347708996638396830336176891151799807087847640013661408772466469625696325737469562028958746510958531954441438834499808082319770890022230300216269706795807187909261252653641898055005490264333030024746912616590765618664753087356162025352890903071238344770517262328802331270256553140178083622880397023620154161936883494995378912906197387886305514679161217254251913632440211837039378426955414261963069827721528066630590971022856020149688351247204763458143019385245561518548152735469850707415741596416923095789317353473879030225133675534835768468090332026988780915175367621320337434018429675229012410193802766027963626908890219771930695400553321317073009438497278165571385234285950647237800912929904051038804745040296185516940523270881940099920150298440990798516948141680578048932181362301503411432334609338330627819148707286172566393751327736970590790027934127895436715529188048961415325111439649837845233222848902916787000399903564974265309759998852191586954887680250562657027599890866571585718247108927155346775598324750337982470895436797075733519695258866226161000409567449289925073066777076845388535617114889245404723787481176137129661167941826171125852959127889281903383302575268384248025709691928662691767513874781081370750612790093823720687066830238264846192187397616023777093218258264402090170714978644116302941381741580413105373223786059198007373958469607686389459526867019431904079323458551303318504207871449312000014568198025768359490989780048621046267815153613736391072400762230407033322405093856574510138682880918923352384914788970644388088934603617825573696422799855713356129655835458794764139482518797422283424407779592148523792651369169925796461584965372558838543210764708421029866257964473500277292389270764870702903846277351511075618547283313982015269084380208635191218826993167075588354506813332102877683639942670228632844478025300139535329252955990147578572425086726300673373982500521630219829663261177295334437310066392272047873131706232199215266127903001363733239523304686409452350951986581869921136587076635371709354324138946715042526125758061205773999060793845867167487942572489432628936736632835707045851895810294860493076464437890198293422347099206440746540602839086371776527816560913774869261830389794959485273894506170432787354754362093686485797414981473459480145885688298325352901305128435825738186391291144118006945364156932483595275863267158532452694809467307465136263980595583538181041069678959112680450435444496968017957082723104676068772553668994999980656738513577129039423432706687228465386405908469148738382982876564595188256452122315608559120843527394377635742862917094315377364865109045574582879360869945983237388847980609907228400637635314598403521502966662155944827603664543604802737532428106594065762347617869523020090504536558724132581974749635705257016166448315393595295309742955397205711806753478310316586076112274366123686954408745620670172115301999156547776634818627070017395286458253720712762484766723270574110602305428408962674455374188961696545204400537250710541590545781443412271214007945549624597100880375649169285238240164005549484522348411309283958325824671057153206159097450326125077029500659404756898795651095055704476025755029991914221701409629830172041711898406582824245633991339130868475354130276805668963289565498277229956530651245142279332782437038682833455357040209092961612607683142913754829457514453683826830269817726702136033654547435728819735730743809832330711506445450276221813753680785255563662885189846692958908441139526598736621721351685374777203733637567445247432882212922762221838257891662083824316546073404048987704551353589355278448282656470235758182378948585900230379319153379045236632733565475793691029526720659728825337643997827915777672364996919299249553100742006736519300323048563224429817104615411908133330392429977601071760454315685393992663416050662641473568009687053618179736518595688424651744318207010952467000580358696536450993409234410944005141008770960699186511632526719990534520422715185167132429072178466621019600565921870454585262422395801062451527826607369754225882393113318935261077947716803991979377139237557271323652418552012809191808511400900005415891644951216151136891280194896702596172144997233898814664329703741108352117514952538516156040907951117520942753259781627948810954362105945232985873166184761975993167734103213840751319669936346008649070760681135940019021646709131859094280725001301426058245584758216014416261215077962854670495780078853922175725037654683342656834950387314281167896309008935351820625851491786072120776987281320746920967028790581554062657049994434695652328373297957952127205971688518769619332658652793074494566526448692915489763341649094743225070339072004396631978365197400496642786101318624683677036976717260870331184126527980535913117445890415862970937128438477928680263081207090969673324745446232824265019501253449010358471931434371693606965563662837739122488490386101489702325577505473918761844074649836918612798038472115830499577153928407914148952026787051554558580397058700665686978381225864343789822432380419921642109196439702607253119997825853781096636678001154672063752981238277429613046031704909934134009196972554771038373138890752026390044489644710324362736982433776932134502879790112958289885884379905646803418985662388537392907173773945475539506939038101042187194979755250662944125540909498559563376242820560102517749254929393620691701283683097089485182740738809707969978702911815918304789578476484313676408428168240508432490339890655410542021512102142874783634154275167880481935730471130956083704657650494160223127264258642469615399934235263973381621718937132557097159540160389321293640598309817906544537240314620137858591466736287010366079503252563130130916368932858171065794079688649174669911151301300481564764821756313848173709203040396218433636138695434208023165373880675888017764977763387880007887093195727679922024704812678872988526538543708727678568700424916642752615112688897481224012174923995911378284941542203613773642085424297080589458319260853579465460940573239748194274148538525482949118137803777585416044251419788411953913559776398531362259248760706920991635587963429988731351061404548932539839802928881874117898490081676596452254309761030362286886370166213512864288411750241073076918405453685648989736665677733974261321220612549237980999463185005140381851442071732021585316940971464298007586359700599974878590182340173393849295778707995564732828730274258492437104068160857054126970611297021906229241565022675609183176153084560706841372018854118746893047374081177926943735078185994285014424374330576429702901789099342514651783382876078625079011867648668364215845499227121303505305840121432708826468433377919123609974923129149081685347207167192572654191355917476490903861153740303071076969602642371495841592576258714476122197458303956959291628818408956400928186110519902791883814502962044713271462554446965196710607018558842986716301911572663746570859801710941448113374949423729955553354326878847646739602979943195023515097542581775463793019202116073140134427194025091447266143084844460197030687485439200247578284388475207741177680391165053980300643441607100763656275111972768443920474395623223353525760813903554363803737988654158868431434489669685281252195076133513169112626128607059037783244042767982413693265872338627816541592321888821068258539542270754502322054643268039845525020881615917321740333613831714416912210783855621328973525277052282614870894443594068565029221524114941955765716551285536494816840811043687971923085409338912859581098672257660427339946648135791206120268402960192243532479573345604007330870454286292454067199541675398119584740567191745913937526929254622517925996723556088724036024925489639854154252001555136595665700911506597717426927315031574868192897399301821214495679927897073604858528926031098012117929484180953108114573073230629162097532409729912929146861233321374461201679973935578009293001066796886370280271093133395411926442467967370978489138454940894585892030932880885106954723173047987707062829235182389025962169173134069213067178919117279547200571873963962750017618108946316257645863595135387906815005827714103732843383211812225887609416657289232408647488099009955399034684631994957629948191944303656266033699729789507702054269757126332851395071041748001170982727736538374314328779626513673576415435209293685904823460382787927904257310583193696385877641418507300323595687892820304384008260635844943617538438471401618383032006395913436732654316691467801159308905207852981415479707078564036525238739671488155277317974855341620652307590725052481066747671186482501990527593967531576947340143106812780747094776401650479612091873847097904947963583564123616546295112967523907789960230754721426193451856166073013013465311522680537176771482303086408959935119631389464120636062804835466676149198882428054069591568417268316693699453271768058025596723200067527329710291248399013984935697660153875243327024884212006997486379390870043048328588575808958891664597079125117103871511871455628847930024959861405173131341147145570935562664419242634742254605439420896971454838310043153951119536292018869457049726177002051159953747909955037863629217891479507803728134938636561913161446818692339400263101705934829966798074547558572564637655949602968405685851202258741434246053115838725345257071762788068539752510875492247504774622105026541570184434333765474854507421200835645193691148838865584901891587306643765819447547272312045979943050619412691957197122150023420961913332978893790558857208726415136304918411250127271830277775977579898236062200561157170425798915823915751996241538797401648964383829642071738615067882321985006682290290995994299544817187083095182354501196533234318574104184515991134979143798134973930855023718550746907616068260576097463322159251763452773103095841233317360096753741577821365549256031210050093126179464850270187064475145413107805949168576382897376051294965112473972047584152543189893487495166479879392021520054030657458703959124563482790233939410177944239548397552894758558166023110176037637936246099086719647726103780953363243878162666668910627067512179915458368292504124063891212752475203051817780860350612912009624666325977514689331975545195508398191317012673091291975279143671202058422330973568310635201480091518854084478576960736266673220361153862315081769988696779053563359979878001983185246536321253213334119301081985463169306983179233643269535942598409606193984676668792102259753542660256298413317992069163775517538797543614126551092675679869139131420498890248689640739635921025875439496338483597299810156898703408784918471926710553170347896111420150676945411456605515334777136736505087018099889195078021202511375654620404236462091487219334539944059060319710998898986020844137821908557681949214329151777420308629068227519417332154697386092098145303376318252720196380581445634097583517599378577772611533066181200869072692338699341419457950330814081666249377419871821071206265861638454241110142435427580907807733539864236758513617908297340256796789858885776550433133232215454408250196115464066376907851290276768412810007811166647586427954391307646346049791089316346039337952275352825904810013215321456377005160628590885934279886345863654409528606807649614458711168128302683276337823140915190849884149154882265188200302685494638088085466481427779120850223033907567749223407337781823973849216140224239642619054772668928336743825052343889613340970929343665623653672715293060722302828649206267579183277534490584221551324075148680419076066247735732227947174893739101723076624585585539101525225056439206755653428768893751230728035869779678276661083989651907422665467109636686901408258582268326073266025086338696010256636052787050940431731175377458663155670062550231022348984033001601340270321047281672991506509895814834769096979665929879772444343310589301071150123979059474454897354004102166370013151529458958015947806795744853141688682959906285031603849184966342955498921874990708458937632405087543974490098189375681513803529012217379539545131666824440804100898577334144997006365919752057289105859628460113994733660774157629714294134611620195117875465274781803924483059525185583762976662649737981642467231111512238491288602060940986896934391849650724521089199555167482792600325174427986331558980030171202327965858196384584057923936825118175463781850322326909628090086057161022335303233027268264794410596926976310502898498761962381087477502063170215229829735755695647174978929338759729396348741851384659423819701732958745597236721208320948522336567974952702670069252916540477522146837586930838565410480407450100144790034414771969274493072140550811330055530269568518213585050761594660644865513077448328922736922505376185007281779724528278636962338861431020160890376625849854963673376917945639447439310791168819108835811396122138419314377124877010761194319328347251651705881540787077433232771294321898685338174116649179176416150806320485872792167687952155571443578418091439909318532525692552568415979243504748940527811556175499717668573344824444189718226493463710007941588177734219562594635194591304131512225901136737699826302005974458859895117647424116105219656015568093150818340553480460579439459270648032244050928686749348536981564713417661851441541430016033412416725575167543548831062469874347973055945198348844478077660709620700900397224913691042284330281018709922509672835131740229104848577794222972184176292956356294101636641283160502056278010408808244877817504632575493192173916499087892221477801824001859441971404684888372669419470190139439943466462015165574310502169541552114063764650693636682190958543215150333267956320093787776349270423416724557160354953630586138359311102197043157430821166617269909920537260846757190928748333836392938506988923428119059417701079246486851115654293124117737498726622386029883034656358873582029955203368094978405010607006476256774503607030269467597509262942175749244348196430633231701146989697395800904045766193807698599955935296843779036716957912676930212249327849854412703637102263370361235616996506505527513774336564674850255011840197609422264495204694344029468533406637767280623251886289837595289051803724832058615601927279839933192418013173350480894720603282509881908364865260600155316412628467415559373760955262955812638901647739729894121020685050888080100255392122513242833445409288715517210751569599389576371831463961060194701412136430375625625520725999411339680411200344431551478701282250559473643350475731934859262197345319825371323845381539479781838513498760629115532931059475883135916662793634038158984010131552453439808925044730787935182151742696968883578781906315511496409390153775435053865607542350825403960423598637614303076465552418702400170080342473120282498060128946456957407505667492701224966297460156975402108338473615367316892839645468873464544172940852777963807194914538245642982396564170654493710186671684680115445085254233631271948985032538493488877037573421736554693438264263820038794535344288825989472788482362635871661485862191070823135166614020211594417804399807195158487053625918475355935961986085295196108466790750008878427984251139118857624817838375427323060232922353175040668249517577129943383653915172935694198108456125697329829564730043872330012349477193372077203618435062330319220490618391844360216333273242848228606040815602086474779077872023767193075315568763894267506850854467482408220643117293936894390161913010707640586945998954935359437984538946107895749724619246520913684392659412592145985422354131401061299170471711886273087890067903799238598129362047205026593198531463525520014653027663953248349158916991930956255720041435411141234809400240204492082375814955756656439876973799032308711758510812428914013582880317870910163031310243268775903166257339109758540979854190018678693696786378581540308591673470080801528351855435466089015538708320220874648894592202165637720054708089806703983335972301552669889816380339099610888673238234013851841979499463770663444424781526683599154505381250423928208402751004714743675135121838075075680132074581679186033890368640500022811445322528975657516791050742360806464339429883336849360472147097376775199787396183447197193601819386705631059817223731749648851982851842409579192043102271098090334178947643166517254240905687212373349722519883367938652326001649765005833145102694708208652349230363055496965872284430785829487548477362494879596370372367212685067754917665507249925629901361261376626574955068073861986328489392329139012465037056460003233757107527893116388787266714442026070686460020671574840134439979692636337125901841143731773205649417740172647661347513732574742399054191221169108491558988472062484028173157780404330393544105962032382531952171394461269126750624058483947421495076482787341671432284779444575485556927191021136144142152730687295561999902410361413263556765230039770474730657270605735801976378196607830897464625073272615842895228978667260972841780488357136263457278236023885655879542919008197839097942925475015727242713221602799447934173029095858687458954089398933566423968881440590993084731586208871310351240062828140355360830926198729896435728922701196942984747746249799351365375161269137740274989945601830563097775384661219873657376514624692443953571118852044164994063957094102958747092554613774796608672310496033406502306469119027721189644898944443041132022070773407286896966060531545433475414763350749248216880596415779782770783132397470245885491004154094041292345673637917804244456209381725101491842309668338987258489775500958175174857334278589732980352380872817286651136085661153246187318115866383050870417953623442809358675120683748694793962875788239307904748494653225978272076605658310656166130762297956645645774952360176801899221784423548390035425221542745493965640042528502185469525143255863282162849494959971260324002540403834726411422384046136235065010418516301703573517667210385589393278995439219939053369461360886110157702168761831271532440297239666662705962560734556438530271800621855899092937097992816046844967425367312380604275948420168309010024301892228796456175008212333983987589384753120708650398598051448693731609473599186873570891410102971910697913198281233810483303723623278694791295297300471898363650409485510391658609081319307235029230450839607317906098475470855555335612973102151410597499136553516272271431024030511395871901919994665705619276963024398462555331799076313952318088529020488160505434588891905493304953748755986312305050067251677212412490141024086088744519243049620276696831496499279365579106754380611061646602373854640754372399896817810268001159205213122922959155057826743261489667426548341172465394401209086517900537199611834828754721377571102540414679875242388967718965651357106186709526217644302078331621123168743973893356303587474198609580977839572500248795181994570338663442576569198807178765444133257973641711692182840113381727573695848390106902939996676190196220410452658153876349267855319455090619148029244258153866800952841095201286427459292855129772084885449272096716439185333058681252986406492940827945745175670989569589635500520966859075936515540097066293990148495695490761074476342930916642838964057699695129490572894104851182642608489137408719592928035960958869888909693929544338197423642528852548785784198384418473395451682870972181541533347866359755101685216625984230500299256787797323157279657148096485302543893460732632687674452693629291311695031410412044946821189116939075550361705249097694222084648348883902519481738299998525606998650785544295688054572809095250098561651538293660250892448083198237451093045777108706035980251417275979228990139142553360770841755995523106853948177935007300716912782665016814453236900942630011376476441917252478942530006907263020060488984988095178077263705342376601754025093412517684063548422133731837181353767875735667574260883035620173829771519476704679955135905328844013240209887620246796413611088988970388085511747235310239729525739929715306301459970282485427309653030425168097540562172010459607347592350738320103604045109349825522359079141045735522770859805710216347394186731047549786269772917119105316437268996922603559468576718342823871657276401643466545551378884646958938732830114447629822205169151646731724494462340637880725643044925349171578883020690925418712514419829924889784321650738280939168713427492491272824895739336110336938172580554020363426938719920476108819587938138007480598296839421387837948950190730306793102463678215376224269147477036077217762926701716303556585232965675813633171308957950005679102527724019163960095119442913292114333756959427683925190820032968513587744969153211270171678750782940204559698183636462078962904209508652905620325234233594149903146423845126829380558968958337310220598455204637492126747915113287700125352004003822470243596973251886640135479373554951098486874560728641825827518889974145999081098383779446122423828442322117422391600984138728234186973880586653689452395244384038725238094280649715169673915102100885177352417374155027361666135396360499853067914824662994711635386804301902866951453196282109558392928814094954941007987132337564198194464097599331240478748044129954728811979688840387241342553396123715186376548577683831144963837070378422805380249505342442920509124505690168870795080565868877598970472540792903389457921100036112241903512212855599842080684348623157275029426341849627779047833167582945547069020441127789274461860970282522845244407394236288957024102233309505687779610457403697173807072845748623544515720359850013940287746285713664786087283525029750747918683277761891073063101252556550740366373045969290741736421308317805715183325630068934667460236243237471903210998651149549671576429714344562384432577013221130871796652138256013876898742834441762822456166271917439204096874605190645487889093580429824494170673892250637553444294639015215243546443169715044439229185948216211265439816286630228727149759546659091894601801099165055096023671799250848242896120571694323374664757900833662873140671059675210584973366971871688691719165943136403564900358444697826560501374487477413468164679736910094584362412855883842454636821481832977519876142216096378364330017554116695109491252963280931790052805885635656890114696201195713273879865956900943566905572585564229942688020319002838484431836106384403976944128585169119947479262792149384129442530947081223516538566789735214025366079715669141839515599866204653588137224628419183106228069315043145298587977594845361700619478141493140241889889184319255037924535137886119348356605088445721865845288675779365593216453003749028333039137700576982160853239667884757051504621999035550897247657808146161874663028660253970658121657683358693813071926992671920252772099868352764391506001157084124950053414005927143280155312334441615100436604128925105986437337004784321439626111666726452801875593805304346712313155862189260673838560050698253816140387317079751462903707952105445611036982037564476414457035777585642087110105258618056718227957401828262784131199034616210334896118393164091513193343272491861932883159129965981209801050465456229558728400253615174825200115722145523076199861388769645439488599618624046989439668391828670660547341839247747763894447597179373165911063979908700244261650180741922553980607922785125077988579353890924338945028499032786199433339242329685143703447923354395914176296954480775392312133048917265898897885691495768364377575110816043529120574234438826096442391156310215384771042789962845140259610840406480002498233828865705531646721932498824945493696982448516762332604188050004981277246872136191689379771285803301711165792320563141197079487336860982231096675274324478938920194674743915003195483938382233931724483821842976148275779920399123993460787073628581627776551156914853461738496397532431414830306273116280618354057622484335021681155415179515130181418844550200295660429908990630031586336844258330758113756200345648848223134312971989851130716643617920807090928776843242711055284911747635111037163821179006694337864484541564225556436795848046614052310821475746029278781380059895514987476013838329364664937975634490138815132019050344931409877758133426665948298547023181149397931703546994610319437633141162031447704979667596374164312957473204798296927551991204607077377573627591070494705278549306152095145969464360027955937428112812941877196168914224381819902002622661192766715002559812877646359224019083568868518808565163624119430051514551100684773775214483071226176962249728026579369836188765790678023885627184989354230496174527963326993389017268925336340685532099354432363370485368126599325796621356936126540087062818068104818002508155149731813371435614840944339000892524387141549635802239498799510850104690363605113447628489557242991804560746314651367034256490874339656855226823297716952278177255234151426350898547651900417062977020202013020503566944123242453780186262925912263088248650185852353115043314776084031054089330197399675302096573508143165258136940121292850632166415795135030716696442290801390123703228119309114463929513211543048783795642985046484446387432799497307088936196549349285198486797782978340319957489212234194656349281136250587631236866936079864653283083973430234017988233709440019177255064057919022469526673621749772235426489405336730435315485259333540342089213290431535239850135625232163390557490637573214560037775909480366022611116513745325047555193642012902604901585875207250745055099251468366647033749394090954421797254442583840905602101883088387482391516838367715995296311203737172614703876001718618469134131716402116181148331803489726709374827793956359711133208334612252092763996201997677898734331437448142001702454262701356160391895460562484434109545764404529010024542125727851505812911730925953234404678156394858847959201613956768173105066777127097129124519759063481901680261304762985654324108818900034078987323384074755245531378886372333404307313842288222444880462029414337747624782104788931503158909870600857029755681617837565762881639493553374190547267589664641317259493753178783046155632344647105532501856531753820526732639604268506955595113956835678898021697089097433050498006974252165927916667803375576740741557150079902746848033086880650531338346941834182387749817213901202867273104029226296465198034110055765552186145751837593099498895820977636742705427139878568738694971961693974876512838195170408121723722325174646502695190109647792351807457493590607585879530153946565609750454307374215563494721249966447921141869746789745296023812322936119404663300871084989346290118720662795856263589951369614069330591851263928349603555776203821913762936360854007843535912409507735755396752592521081083216393055254513692195443347418574283810914022858114453150263594810919108229451666357251096053478051328655460841972585710060478233451445738086071821035544450972821071371596608864197377755647339947482725103523514651857008288996421319523322343247739084251858823601508656129379227397853845281694000650205665424452450651962897291392004144022611676606315724481557136369182916635167325134529225773638363313528960154927758753145138839901250095716295109686781532110191398509539778395580577173305653430319864572060346698114615358397784292293338777717589557976958276544702644209852731110355154487854968873508908372702482665943698674646749399329424128255155861443440621279538617735709177987202461826714301614229392139590292481245620538912927876462019383399628696748996780924593284943129641182005994046147066424388344921950339754908800620527834058569155152767153840949360610789748470665150013325976897712600974094181472635241785568736797253816116710277940798098947602659517339760815555346163248849240692541367124374978326801343005936243124260667908507465838940995638631289403692370492400939649199997667144464157000622644946440690408082548091693173901185199829977983858348322245084282888531006519052189807611646630286576066604686278970310651370700917786952920666838719279437309180587401477684824406026804701045473858045459823325212565353399332732817735760778174243524100566328557496680489172378858149156504076835015600240571221423251377105672928746338076906318822312101798787985382799824949120532852277568059363073741632196957189675483567823332935667349458282714947491895786550714056693659780022419600126066607876909380611883119031242810145971362828373354145933568016856046281944139027643976848448173413212196701673726439592553962965285978108214835422177927823292817509490867150549471229059940178264451182822366141056254083539085350309683924198927599166226043973398401643548772174019407636810162128099253393835032952562205523749064113132849839918114598955157995913297393119948147108565749469801831164284460902451115353000745039067992396068687504324452249298076373897281235037004999736066155989858032307971663137776673826656922427629730266456017218622377111793572696829454814617248593921710512442166484215450777565945577611240697144722770446295674489262637938448897005323807225654090182562310828115043078340909138579499386079818090812117016240672337267526906558376660789498974538118510001742749167698090873855921882131637844848592712001702152002227657415065809259554228804582447175401274541203547776912077977988524784227803707958625178606009469319090693278778461712804585733448541405055459785247470765005560710031376003755261479122079267876672466211234076502587331905213741695470446607453133600314529752752656082230254687881200127503631221524383152825647317257088848634392711919488459034558243852934073875337368838638155338246927684499210871517856687398982325101618071424258918679083163102755212889363105477456352305137729663515620941736861714771534447584300742435419581698220079103175565412711993508918899543235208671495430607871310188673890723416065559377624438049149904412187503802310972882599290354413682105170164238340748401150036112807885926488175583080371614294067008964570113090048709589706036233206535839494503890360235890208058220957626749772940133635763811700357668648244476780326065480376503486047552933996789821109182484307513405237216758761998774113085117897194006380162492784602708413243015116487132257491637946980850498305299799716215731351632996231858302152465155174372619145880420236376449655742232663679502372873130278106755623290758772166709789691364193923108032267720505314724646126908655487099262944127097236265700191778708770295230798024389574122371547205354966408629568498960033425900024580544016264054878196790579296427334455101661211924950395439831749259900492550341026564530661410489899598401518531022829558674563895155499280639210223271522207629170382858648735271706995899745163828769102428885591882224151309153949274489563364770936038314267896042143836965491084560869581825171318016867395086350476276800237847357697588154176562512882193959475803899939060734302426364481929168773772022198262544279551411256852904866753689006418966126339333410256402785912288497312926364319252958069193806181996940489558727699417361134635522348957288379417215540079881509894351855793255549455500414105867476762004285291918975741839198565218039703212285019828954903747710896232568076549442317369543195892146082603175055516538660000599987405326415775604730817486394691277146257631545173163983406195869700177764487204583479081442806407577981629698644711270718575967120798469392884868345737889514950977392798216431791600788099793521811384134301740619860211329683648140913079406356731466544452870694544041949432257484930425781871630467828295342106277268075446379608010672859303556798456893414224460407884326642287966891150358098233334295016539980977662322946352024819939925099630990420865650787537973989025880388892875000957282873899447452066018455072291084505466902264838789716592437365047733102820618796083788680339315738006237802712276630309300298323851286273357512380635693738599573794480270888668780981110272076845606580618342658445456633779103762928877915377167586889293279168285781382921793527982284779100941775861492104187396413050669861349432700490454322272359981057606542569056739763441089057773328925611716666767504897511628492659650017457436838502312466010128994858923741116900326984220209709338364896749303726407693605890095858512224694527244291675146054293277407703592186379473380795448312800603393298152401559873285575704650886065861343195482453000183220806174148478936388766336745350542279409468087943344602589673442915510432136876539171329707670984347729053710093292173223820738361819778547316645062812209742335607123719363678160798035321366728718537997000754885667885460803196784663158760247179778258636509031952322476216542853699350411249077967196408731314465516053489097464779238308117050294200412555311096417368950653725081329982601781920155112458448594753852623614066937007523041950725815480412827213840392630395260486747532552397606450324510560138407798577065510610199143622628429408918235560765361284699562262663175522694250767464998278787298157016738718029738895033068452647607674807999861538913970903250351160778162590675295926397127359386001856197022653672170864749625923128862599364593034262107205434622326246922144877345671646830908451134093261159475909275488106309340014425318648122376504490360990250279173093812429720849946591646456099901018180480843410626856958841320717850085883570515353592644030314761597279205798122578030321178494333593638816262873055018422214676747104475502172226424318660249051892020376394667964410291146204150356712817737498311172262663376724007845376119306916201145609633642193085326423596002646620360916419335897463455837315072140765440390010947027353699617961611329071172968499800289489456517124982104813702330546923585192767139831621449679313973616319666187552282124591627820616550038929808681880234768642965256008343588272625186268234273851354021049526781109424080379218723566808125590284665846546653198482180086625119924265690898141336057244168362122391471806880200582275251604531207579342475688291069690066114941598096989850652765163807243950434017764752031561845102202690187954158232987973496903104812763053356123047705311849073416366489653094748465069988613366829238054070001994025969045202120220331984468008248977339462562511556915913921866604896013978523500282342751990322163810049196266116746510913939650944117455179548049045713262556368858886379640183781648956609597409570317775878185642100924364828174451301797063485400885448695506458416077393510880604827066420253368515461814621518493548883378105272572242644141933860392099133797984031571541361910730645924233287793472107826415107662933956748845475733266607236231835304627291583245678658633348348599778417870477066231143102663331746590420868111084031616765246669029686821569900859563475028655640856454310517703532607944131622594899496232299995258340147686701383085984331406417039109713211215737261119803161037296525388120125179981373557370009852594134177992257957858583213085557041951808554820772326186052584188670541000146590417504638209474655126707593749195619325528872014757768752947354578569349618489822646991591566424829020227887392969296871162135101285453204742074320212677643308747065341324835663554631426621249922295105211147009303061825941507269647666933235208506257512398043318994376727698404511867798491529847497312107840231388493422507229700416030405161354715424909758724494532541467112236994934411952247366397676751204964014145476783064424183230477665282527804953236714234668275861197760768071478371173115393352765884957851459661360956513398363758576655814113812117496888455679721660569859271941169681090535903188255093291134992303140801961824732006474455731135125650482669904686132178554357946183235479528351191601328116284991552544743888977802489208851332626679299906971726946646809997968777108172349174429767655991914135885129852200264563232160126350031483781800818017835643013178008580360664348394647820746194088497338556083540291359252702490284601187422241120812353651365845546029739550589795866505461021336023425516100630500967079354568158666722154362847469087950188040475753769013432711053528871032945903224673044085673906445021973749222646491017302875440266740488190404181996570244767994646747385893229188408730926288802192873261276923443730554370053930456867704123805333900481694247014119569196474522549944693381779110322010292831098567268028848708882953389332491433203937074231508558114076538345572925318963244328200094953245776072568758141866031817885878671973818979007898108058535888171392316245179318055994426776580817814799956274212342102915087904787641726734384273883684076879218250792899585761766025529068419286241674316221259354424617547939110384488487554124651262736997301560106694029101280542162478705216980099603475196567177320964693288115884965441215653173019127188703382441157781191348574711091079778153521803368378748951507083695866510782266597101769861250765093716270716531764144085523919249257731112759209595465264313894133909896501277803209748403409580623647851378433605715844603566145954165102984787155804348105601998495268889486895806183374395401647164121155244302657569403815177717061323543545586845167110945282167441461086117096730644225291996659874341055407952891591082025976516083805411488562368077681639773878174915822222784682268715702391889597876393723911752462264293315475926167893298501953705333806558171247633136998840782110031410909321213502818383444473065246073169611655477727313963904195405957427350909750682048245132034957422048786203516137189357342536377083311313482588207926108267945258180501250113270796467204341207774019596295851849165945561303993925435583775504097556932318949666813419813574219078054834102225198044320363000493399085564533297175417750179434878345841844277133581982446433865047351349805047157652591521675609188820281893611025010859859222788548050507904878706837170939119136687754074543537408956864704733494150120366323435008618158757140600837185745351158808253691215799365943445494454098963774385877259672996790394972336513426007358361650611235718274045394100747113915440192687165763785610642390310126808661852105611967761484912025726061590846064829699823029158618982915413993034251891816861659544462973459136695654008930268811993266027143505545499972182409194307592393939110536670659154118079310104254425280511505567221262415232400382046294666978528790459333854873494772941573067725155837342861959733775548185496950488318249587766129616117145784507084700803808666473277174112959884595740081072209431353578103951871590818787353747407957466630236108117528071750281451401296809226694991605890566154002051982737971098815320969892479172731938398315321743999506596031189247460935699282032113948805626128360811525610115639345742734618036486553339146824933435780153983783193368505155969431015273501309381248253033699568497275491124052858852438216596915699653936270493628414219673887949714281676261089859894567721919886217198277856587888728743266368463983124954021532170325608247629536895582943004347513551878887711068472523472564986667192871855680783024583322244225613460687408741115439192604743209452705165027362935704436715511154335988652634752820324064986891800062811110950009970394769768274739669489437394060085333554834710087796184194864895365944366863303297077385312694766408928348861337554998912472586031203595333795053426796910250135035342846497267474504641843154918369139376627307144655627685873840145252838144194466286511162968762529610531718006131884851543359062161644837459145162741907523203614943836414586231531042417368604497748368771575923724652666193486325750716720452755720441158652262828937655135175199350764056447693303767369860874817931814663445261624086607894015450138919031258415817923787610483839536593813046631441741168393895050949248078125867102843658231574309917791384394439332987050113521467772140755294727944905260484292995763185789500993734688606180702872928944057658930262782173190859370270496341551459774863691328730002824198257576134244506022351737435781485287248560953668210403136883833611775137701698285347941095190031265505904873328463779434703114248018088553382948389738831987831786769193142233871714964668248540644509535027869299231167483151443621374109081131756515937087061552494623134140096320562273402962327485913059876808845881047000683411793209508126366153365691577822006295647595201475283614767153936489896752468680024808618048452634634469872791928185016991106263676036567411347350253563916354675281125810338888881481229739714184973208752905588105251907705277014366410458171730030110014912947754699906561883042882614820622139465418296535499291489438720698849179697645240441071727429876733100584341677805133844469611020211216835291304843984877014076165195017496632788847570579728057115641006263778994264176332073109758858734523107680567387273766500248620568414088121392784308823698332646160488685633876462681670012641188072621330567191171569842901404296450549420629443627461842618747559592598462042910786183586598012355428428125086024204167504072402714072243150939954849234259646552326825115465874452192609796899572433744839469462438525993689089490955093398295531064641390890239496279058460223772219200148864941778166138553380537283983656601106337826468789370983205390603081459743679839403965225987943734320517280367762634156620180995936386271305138191413089682683835880702473749587347122931863006244353030558471053783221155121617834634305341904983637243214765817157589329196100288561131550238367641436393242341210179822433137665040529115031673075934127003520217172302899718986423024481949215559365692907836137944401947575237216829134562753332520685822664632462108769380298138928559840721463106239898223752104588146689861994722271800714183042178977633511845212223968999248136905761766060461052176713822772002400180250063272370571627725889212382630977424576302483969616222277691051840722269495446301309344837451557231180937314915268061740804074722274460818938121009052425727335528594076674480334172774944412800841039062231990771125921065370849544261169849066523189325123636619518572900847130744927134940370654327850051046660383661968788372880945078972675712535028945727511406508337978002902116795421411593838232812289523691914439708477216986883111766660456236882143520180122094863197401076963569557682754566203323037719711029695380497335541872077362127621743194394979987987002396253559427639230931772373394801419241461512443091078514761388383832385820349265462657848540226076309739901053072834875947282665312481260016983176300428230104964068518075378324384235523993104762930493711996890050499930036589651669046400610712357678763701440083317221297013179509868345221787327948780161561553259974989251152837705018443676345320407265594816816535583151300823128694038374572540665626084645223204561838487180860339918401519517763780742147927353562444362440357167775304738082542042165612963428760021307754332325734773674732848825858394095486369340771987157587120728561637028836625151693496386186631698729202089649059228869484169002070390979117596856675433089936958026706897410637244431079217997425665158629073056746762662488159414075125469468222769510184896575287010283657860629899856221748758882273516090373930373998525763517479314712169979274624210670736755168878747727862104798129242829502694589951440769023923532320892068800637953396849329771539749532284394285154603744177345077318676511161487174984015068268389540506519411852620398992749762016269288032526130868621789076953567969810608547003901105885894207627574855625461361964011553717349449794143552434019215088944394057777357551264165428218609407304824021092203204233547225976903052292960290185954673426394016577570382578647520651899914200877583221090326046119577437972415712141746871414507451963114510718851974931187823903516299603453033038138847087550263934891776947252068473503175309047294530656175865054027022070040048226344687248997216670196940646880811758181343981989947818135951466462080163764012848702119786832977007043364422881327062635693925472872425515528216601665311130645745521263702162284144894971322917815560062882997400050804591934080363120161491377123001504258498489569075832507822502272792624757526438531708166276995555249725352116912962719164950626877081292486754024824761641913093958671662907895756007119020763814586288309507959692614189146945308753048457127262098009920323761166882162201167300488167222263649596186877749959190177675363510908340081718968731597646309142279839663856027711455516334569154283328032852661922316342682189644422086041132928150714272992282587536837476785445883534857037861444549347849833375224774536951162401551984434571062148580951401175188857128432312910505244754710464282622860554952119889774015689350486476600527972474805253213644372620472443988268499088704317986347949370472547244703095672111290538521028649574922687186818405288795297922956650771543071000515126035113749223510634300934202038793460337221701648437503849852806059843455822656770513413363170362704696014441387680230096289844402607873007106496790582606350905397673089061189897916742037389147024767780374186171937701945973087441988130894476941970672112875513783003318519444085557207876104211273065317765597084156527935010192296997713581937975531244095039809123592511285764624338793866453898585450993903188420261114765410834546842230436333917591465933765942869831974511493360111865019044342366087532033224052270940883137166065537572588142772633693669932071635044082210860157298121492214206586498192834357751165750684905210772135984011948845876795464389130337460468342784640113170950695345090562442503764913680684727910111506042362309875546779814347454877290939645968830699028695246699174831699500533248964594632526035762037686870562617488090058889195789541731773980343394605043114386717468847370009535309807476603785958626844542352701382365687300187610583664624527566737394129194512373413464828371410990012915770419252779522235874560971251310156067779862330250989348184125036014065318998106203027034363708723695722383091975479751545083315963044023865379609836924149773232894230415357137170651257483296210392736763989646928723297832322737496637724712375089466137169025380269713259328260420486255802685597355099957091663146358177923767888701602884800707893110812247130909992336505754644875284313107111365394210910475232615447165355457138431197654254554640029095451530299959987839267822576670927937770928259713684259132892089371367669450918562291438970420434401502615972676742744867255038704799108053138325198146360690813379574059389154915640753622951097644386498370562717670891690487060043750671882739379436314920650201070633750085015755477537235217155318412202969646636952904777303372347433776968036736698265128158147340363764902421780073618906507608367975241252800755938335368495376221680215368810655758391088333598607976852829066023433530196684469495523334229702103196909393948659401400019135865782388180512436850503237725623670183734275764668307458105206994809318437414515413128916195276459269609108119035855043317032725275538893887551996545870870648564407198901887656317237787738256571458986494673812161309601776574603006594956240745412638860906335134441984751804717266960204980097901407338166272454355280428296231097697975995572035262568737886571753531620456930423255817189986155949059343014951535713879066456480517894367682133072359261970653022554459493175577477624577338865379250140455066094660069939955409004892134634899646106590998276397288050574667078087992523212082552065918222396308470764213005730246014745396141409003289061007881524119005651262828048150011410757919341338960488942501565214450172317007186024642088166123525759083936303805443504313443321601289716306260442178799374724778261862383958667268734283574127185299938317273451678860618711630484149201489918190594065030884007884223462089311841119924542789464202416921265456404463675285308943507932188962731437285990862384013477238529280095922998254168279865832984644138644843011751768215525531390892069403973526145372457397355183468810967684311371245771925496175896858541717523865637108178268292101326564300907277101296087544636606219088169241979261374625289089734931688190947106509360729180735067063794836521108787683715556261433016547037802735789111861982987562637128050280183146966238490813518298186766025959913149724082249234335658626376368171822840284619800882111194955948547664221003572245247111847145704452195679281454908409357119210799301192422536249892098970179440269499974309542618588576379592979686490565188543046777916460241565909850822127060594124637104380272200219457063328544504366082978892212865033074380405842561635039586460550203371474017221366730849613268047432237004936298249489790047401034842273001146837718072286267821898711842737474420117061129760913655809430302405979615938602672778122185360800491622123986710629587327821560416135895217063451661560665383871074272573281016761719398366772378793182966458599859096097797468204788665488468397452864253335541333913265842214753952678704631890213483011160823587406418956064097991151482403835498817474279172256180862401515227643302681671653071839241161264801573531745699388603408988883141083773800126404174159895455325416705854151596564233251133934975756788507254280485605908644948199041344042252409089654356848616792887314746435908803948353424997246662535449376260624330317326474350039528384501972405718822859703254543916368096621115704653096697821021550812326048073597365278648870675855160197957665401688539652872520544810775205303315157050803990277226193610433262240182261351002182091277930221409217577421499621060269371658725540110689561068765460030214756608330928355875618168586198521596237410355293271230357604562997162170101538714223493633398847192049015027086012310081039020655258891200502576137744212635103946001284757044808388299712105488153634174953888445299000552369360424638892141312154163238448212661389972336775692052323461754827872846014300179931675547329842949242814392063753770468098947697335420983599797582609379200854164334681613512427362805378019214773852685970802047299442525924339904660544945581415287016136034365863874518995311578733565483941071494659992454654398114473939865386034696594355381641888305053970644637064890403931557218710453022522012215813177586356168442508855055984015695420905826653227877227890739973979529857033077437333617039798684353111121310282813837148735826776050429918789927837832237041444016841543858893625740165120680358695369333110748440250105917672404144003260911097855918780734232656720918222169464372287900429334196816865726355378608792471809216288069524163236469114984487588191099897485013954777615895225629829900224466798244088105104629497347449001254736862353004227898601994066104909154689833423827868656756709110967161099991395727594117463777311768618080264834316411332333563742434343779300783918394449204963292256677117094073697387238020681032928318422704062408281090936888454644991649782676416001258997622188345116719805153387937906704744158112621686023759102174665641109645002445006758432646165249742140098216481311063318775528564022676991962281394586034655738402781248629889475732907392354649598044859098061148785224858155479719148680924012385264112752019202537013485782098921325742662414165074908960473353940804829074263873837107204198449531189265345178138813302542089347200338025527966976993176962364797079191827881180888034284943245779907093325945006927069589303071600649690778122832939640629226871852299766014232162570505263394678882072353998039137201509028180778568062154858736507067624198356455352414750713935305641049152631191743429769962337285310276026179977303299747545868916449066445511061912298801269639540470202423694706404108783616069700153940191682955551810545841481230364689128526569377612228778130201759682695136247595151646646413791975223898889308531545227264873084258895929281173314835897847944812264389696133293857462284193470793795726654803445647284637445510234872384220803031029186277087399175015858885897231968750490706688522995945137258782889178279829687569649682108824498417893766907643896399541560249800123272969090014870761325506347989858917924627082093778544655419742256493306036933773450664131041104211971221327429527026526496730479170060547643875478882977648371783167886960571291065735678756164022119651737378798217764250319129376429569787116847217851783111490860993821938647802325586733557675983494299466427788795353304855781216461103190093867679119010950289502590132125740303216014869332479554247769001138173805106467442791005967421680672514297791596832886435591283455719662284941475658082101276188431727625498430408283005348477228646364908317692339836769830622801013435086530968763920122627798504905198449975184327269565688221884807615922893997866272360808303942383818616260208288734371558303258493888870304508690902155229632054933787426538659737539546711007263566022018711617487963896041145681076830376054564478802760312179400879070270820772768781569889699524756667144630060100883200486332143370646676251960511874675352000319500865332580263399169208972736439650065889862913022392395545780559762247559943094120208113644530162046914405301428376454104776677235535683388195840000283774226663175583294376288599837463820920743030057137176310649986736681175788951826907047690914979938828150415937511074636756313265059001185611378135495649586332238980839306337431944748093852149875515644182621566598819234796821540741035355779867211374464833151023213478457309750971193624385351934465433987499521753849590217841754055856071496484350540504186548103182123200547508448257858748139214736582656646894276151003640821877202184191262931852428823922349368364220736381840003215685727381161846545725039510341379491733607899968857213341952533433092117026107607090159444686386676953203081221446930239580518631920397730038833785015354855917253185988353394744165953742428083823228164728131839972809578442895219273232211802367746061155030210864844457455265105020237529622143008180736192783318927161913519789209214914191883273625755914968134705494957449445495249170793277730305099147829199473598004721053349862036752154796991620070214117210460341085212903570857955136385994884488613935646649300675177808321289487174763888602059486181583971774900448251946340656622845722760225866533269015132598962282436763867326786652247647306020490868467946351407765421756008803037405979776036412716718624320555584753038369160664178625718175404747923554904259247859346242515878146258520715058384291234651823720009691095158606888669280029516147053639387214858649059945720521318496624927909865600017529360700612587686085883859413650706847404762486057126378315194358380576809238618345237995143822905824731241363417128510764719902251812279326319132193284611283936284639525753587330236167527134907575019709610834113811804859974331350997475512454651498410715453810570226638446381074169655159984110855953135314147457669974574994795262679888314817248450300153102556847288736684789938184563007984879142906680774263352402449855104913877940181176309041355785032334539450921437716358919704906808170744940373213596450834111811531532786266781968801814224422585729362652792890064024427808091056186424768560610546911009783754761350907264386473017795570437154469810178742625343223814615559133588364414629583978209947884443701451842702533261074778057061667216005850541155514312845408345467115779018787964559371181554129092179182907692583123806079883631427177537074478325479927192298575388043206207630368518926099210081109065585762284637365222022902658121340333140995238401022451347098053379533255035551126934201499340203298783691317449816018249983515044592276304318588218436885555419193333175592801285169334344940846796325274086661896709016740604172729096386410159721817604660761162460568976681383139199367680643562096172805692689221643865745881308603488976741581211955968038038873013812026207200829758113964688416688948824466722020154895412505210888436684369463584222174530290523114271103262058686940947354503105428388063209927613290149218699384473913031231940570185913922297947096811024673485908253582254790795835252621713629199821521167732864737483765239928444333379065326226991252672858225219405867445136747326549079044011380003261916309974827343999109473983740201117876162163988474686881138273505106847915151133901695862720599633635806802856574352786459936705018947453234989918866129657644784838250991920026257142180631276330784359977682682990091645218950818332308008697775212292288295119260573336844655744880375113747390654995523507853581641889039324884954827681199008555844016458339806199513495797075747646398807569888916816258891643300400533782312301369749603485931758717739795664898522212767644608319822219627775544580715983880856195941323353476567072167132434564232776195857611881183342682285144118129934633572277847946115862098900029851422298778966840389677923178437612549568100544122181252834819317968670270966753938191149565254458942481970658208521418297271683517059113481028427772396312107380052304835280404690959693714100760458038835745482455542586679665547050892571019530039501109153497989477443665857130521564946284588411496695698289207560753323195269585130279111292865228649533036498806716027226265161493902183092739956332743963795918651232512455570421626416603218995448722413324621412290102818917630704797145745030993215675172703502584354060128819521414258322873882742327434338610363587056383632484037951630914838294020540436568093349441501665047782003163625559520143276064145852921557182254830975553090037493688127802904503087773180084944058054179234096204698896668510304396081415606503917703679935945007556156819085133188362898918837345368537100847923685817550304458856191668389871696119381597390758168352902900465227666018370098148747610673157959609839918365990395491841512128619411363993803537780202618402178210504667090383498219025711734121972668380769373242675214659644334966511424483470994081764356892662297307222425179793868884984554958560968184638210461645094619630987664148362369220977849229700176097863494181235639632437683018789000076483238220508895205663845998792299545964275564453067769551700728049860683905486324450287481419220081389934280317974727532425602542013139462356156178999644106217110195926097772165868806821059284008124106232318551437842977044002317647017759293772279656858965200309357487154125795877058557121576074540790810462867270382375361119890114915672229606968277681300104771389639889061979691059925215243759338513779655446322651378541675871205602132913812104345259989685141870467219205607306169442729303637108279719850781498951652910212796996857339155932897383760259620381993999776884048122955637686589760195209353204482021649184168923624408967674675541139120726721950055724653140328646226047666188130176022106655594128832971868160906938903198688174001950179042908558608637828381125229643463008284689040354224504643172652346912058178545009219266538954347691915589240985580799957584156899420372450394209176910974115448609166540507837543856595471434478476145688405514591052416109011226859435210043640285157343334301185002277898135067194788895741346504844109136484019954237131737612828050273068339708678749388533595478644349740023383923480144110898147694241455368765196639134647194444020420051513568636532344353969488984377045104096534370843675666444122133635930042836335962751919576526576682934451272918847867073458267374796538904248761832243242506609553224465889623722865953750794105188667989465965676795100555893094960488915524317593413151115275174230787096983902691902003311482666786147936780932469549365191934143212398469653142488791572026434259755411359493646408166831539959893062181339452400443233468137316669931019714037545704441616968259463531931871045037872704805033799642796960558826320682421428741257702148772505355163175002140135278654488303286951738142231128318326046102382097161124336088218165402311682921841623033584595609112465025054553302933975247990333682534866950888417087872453334521505160970025244587445126346292511818981122841838795278707639511927429359989786106144240838168456814855446710765275578792411270250025387070237114162255689608849708396221607596449580251062558983710222889845276481772907711377397764104747758577843252754400419050230269441551749098098216471791301441991300639397751667572973687113099081861291259976618108502117536151706566855591685763561906912193625176565087370286294400392782729488633840414522637012156068628690791687174247001512615681445569883486490079791930192801885780436751953116860957499738511156286418174169687905065103803377107147246863532099781944597169917641431094494811454592555517680549972577910160595024836053326747478558235595437502360214930441099910165707109332090502085486771329461203355847483379372686694474865867919123457275785793557205546229914105778201760531027138538326576808789280003822842921013481238587859606079231040805101474376696671514167215038237676818356075968663735070480360342988586971441999082794743346842884545394099628305321512462756799118423816821392347290744900659732503850541948927326765563401480021754467433869129762832822745642640353094375268094108895350439023339795940039886960385071502976742280547148832986336116380603899243318141308420685515452039797364698561266148188778465757188439207870595918070628358415170763596192701331546097150844801001152479668308245294083869344578717267985619791006120527759536498124191935324321458021309888416636549747645013156429941520985059003342961323062568317930162048007527542200083070845929210670619920752035574057291549560670043411714704925334901486985973646380700496688561631067973207738734310085872235147280558055713883534241167397951204720057847198161845177436328772083316734545160089841573252684912758054526839231655364758316340027726924702068993227963441105198940247453635256064248910065110881657208897155644787340270201020000196667660195596341622129133078007795352042385863285996865347867143257761474739217995424418649658736493546219324609095736541049327553179529276129130062857121108013062365166911887625315123987770025180186804691236949548746455868811323293747062162012741102525346196631980977820545266503790738117213061126943238873566312557459737077654291501962641952706021561782673770190618768004495302363754580664565381227082894944952703087172799052965993706033809620160440181518086476993485894630273255289462199498272306132427052989707279801838061643493431859663013275749189517847158658122991895786181984146841134578393526657533757250694445407040060461655283888397541273172367761693229351465196556876181353997777055005076247384636983358084381881361222892006396071710188859843139608330306668225415141683803760313986979843165056688314254502080978488507257558198908007812864935713626592022636707642290429008055931510419350017725710379036039161952630494775767416236206744529597939190421409285841783540369605592733358185705842266183786532263794503812958399525607320349164127217851179546183333669255280412804621201164190891249550273716312206979414601412312733339187944085141914481508413516581373864440231092665778134527438002378081010107752297357441485836579566073135206429096983132426889552341983132833831277167442855665120001756475012503196885790555528097865523222770438608557909702781752615758933614182241737531947904727538874702318157180661744919896876278727980489747834519416011147388259674405620383005293722501023416931425640275315015882917616632171276720826525138978677148212623812675205613960126857831764643631840354340752563050533450908521667458411551939360062498156838610335257315762530738603415535355396554328544203628571479604313879208243361510543800572231706456668201132162804081161003197849913189753852924276459723539702316334168970309114499602417332347847115329985713595678305057311069686778113264148313193867247256926986609804386847061677618512539168571423945110026888361550449967918316721904293750552871019294287515431052895847749823264537456368618005471734097716255253254333681089623525091736677735710238769929002505822171788151178340673454060056235648304834192623285079240401009566562740608573241223708068102485725110086601556877533319705221712799312371595053548146226555232687135681475275414243169338801513318889693646583704980104994989691332944914297720904957971089802751323967912050142090208179474416049220385842717227322067590805750019831492082824489559289078387220756976098907349273885224888716668622163917690951171473315398443900422644330331202866917461044988742587264535807010203871653642813326620991388230207056129833400455159705835944509598199158482247782731574889459013388692108865239481105670567110505328764588625275250378672930245765941381288701041652713709581898476443095025439774172197896344257775138964445571842829020550948775274724817088914833583522628137992460433942162446522786821589464775760257103325599759712327692099754743003350791115213749298318802247418375822091246045204592347706137434089813536696186119230991713063169076811551445743200387369233311044116243290865758246854022343806747013770498807882886158075092818927285653098314036461813529500930878751247108063053206726807532267734180799014330863929519978972103011102525562907155505478275132473663044699385671147849804793467042663260557678286609261100654010385890770619378333285076620378294673829400924442728846836571828144210165572421672509837009332065935905376734714713272757446446272891042539774547293594369221243163975638384039685762605767240849295384741291091326300901699737440038525405841474973847370052648186763932752703156220420969096510685280927900880296781801186872849454139094066042181043238323251964095430306506233804903342389946680031281057920676512960390032683574554537399009299058908670508079431247396511564162773614673800070971739040872428267549567793534133840024745938527092839020714215248161105015923071579644645571136478555196331258372539553163530849367050571269241932848755569610869096795144285473903379332347173998282555568809974882347281980990977052228510357315144528524283503715751534267968471669403241504522969620531061157231551580171449856838650538469562634009587993160240125864364330845420420625913878083721035460754530288401705170807945545644045132572116240169254173818727284703378670560441133032601574405038516182553658070850687480416869258576442076791325713753189891440546552662186699455480465363630733399948766561015616830782922164690698079112386384552631212067961401711939197826907227074269968346740430116475223457719029294090337482612951254880554245325986453913646000011664522051654280858010772227130807808394913441348086296432858782087121094085954138279919297209629302266586126940143375823115743017263544487333739091959707524279385579998386638550272219677842719919653270081247194055831406773105389149132856780737679898180247918255749720606899088532645583962806749994173259854270122913737482957485126313390617950537439079190797934493692522934363146273293898315699636956482353622060976574927344520378846564453918981205151180960319031831245268710910433025208701347061032406147786383729040067118365523327322948460350956470183070393819078890637220519828601727226148571786114771353874892420707294667873768992911295719422886228575009371656691963959612021998304667498705053635719219947939179252117704404494505770633066297032627353409921801592504952125850684949026151277987230764664012319845827486056919413966738112969134070813892345258613454120877182723108313365566147556417844042794885981027997927251054018156865377115987117541885751054391769965079626700623730554680135874314647510222383604299357615021219104622564019536170585327659948191000524967417858308979534304346228671212798382479265652038127340454123391764056409161965927804251662723028321220226679521391650479039643545933919100853120650900373068373972493510715351025869028595605975716835052945611283331154834383957573253163970177863982804854790483332883990416274180045746164707970966401197641027926564454695785859644890678995145013165421183462796519676355157189128845511341664456965280835631864877210787596278269870138894247309158832805960842880143967620607737292205180996382111175809521118023191859318206417565438994958304975809882960717525755389655262204756166180916677785613735790101864598980063933106397967838255014817848888881089248387101093577630415454260077237297693755391848330984901439448107754415922748746118189283808459917129783897238238155626096453160355584174609871877921149215866427257721492988938244320168299526415530474604724085011020258398836713322327018297844543283334516249455996049852335078678207483230992904339064870631028355943137666490688720942248154549525791604819831978709577526942294939622865973153726212148388384246985648681660527040104882978709589416195869814831604975386838927054575708704528135851932704608143307667535796853131058601591742083317780963430624811233989936622466367621301268398120197213521760475707239076352729156460715147228256415866574644492876947447583734490112337455812493265203775894127772956541052252262371178591352857904251023399738906885870547137665912881859293488563737524059453838891944119882647008795471446660270300291277512629480217242070049134218028312105283788603123854722756862294670708948545845255034314700080673489233090509859278547408287913881947111982213414142247532313862379192501348421185180315965459768198674645985500819721368205193425760601904346644071029556909991024623149439857081304022741905493810697116732978208221958089919306440248212916877233707161152797599197085918055276080879431437387128683025598814068238488946663445193189486759100856132514150593586761589224851834472416192676409706725815241018006091382848521354003373753648867425642857284480615297983187642508073046540362745660881842043052332183081563277686100930341506865711884424593751099345126331012197265952466705114275337227453528445671411674445631658845293802688141958519623402439253796352477448362233554484828595438737607235703195314084853740354265927099217540374890446768894853351877285419173699952367546934869959279045914254516746732723927883763864385369347956131576759682161448858828697043296653386406664218395632812587092004486253748660883014859595084021991478533885717752144932054131525700594419728758269279893121544648085344694108084215034153551859498608414304940135132947443928350310169907358299729563001057414582748432263106413523551334817737745365858730756160396409267876137811895278893255592056724776258444774073301251180984277486280966849466011830622060731948697422797958189829128832224248784348438698161091906607971421521463551829152427971352259996859353859816898605883756134394013739238126581857273370364205092460566778736980403346383024521965339211467446097738317117303829364484848264222826250691149306781443717064279683873714723288838634352245250232385799354418006731900898580200262411538110814448501043236496581391960971051162652565037046323951361134871602113298163524590569170479360400837245319853578899146279380050793613739042683892852079689701344859425426513236137985854529433090037366324783620010461038792082530377704570293332126204541246052013441642657806057197802542761981639265774158755410752065913561537899468376493199200748948928686999974022275515541288409720280863553816929417303127070627772944042000859166337281067700027917456737861702054934566987171594350215134068194035192528347674438047193748778388817063248246543838806141496464972420708532274029205276190987450881308157952805487363802024756786363373832593865812146977248518781481100026227345852322748537631397071471632332673505469481341189326433886870940468336441138210151188301112412036775280986810873004499980032509524810263404467117102708218343015788225990367613213740618573503771440786621931090603703578696643535364145404940741355101385256048129322585981941055493303352293613435751771328889479031451965422994316417371662612887685116883640927509197406337453008571206051091559822377241952997486273897740420588176577421030615695101375878035137870389940400424439379564677678252050296213923858550628053963773553736102471216655333841896310782086132273988431227945027332378407983321248822862258858405877559855608832924652377501918689419479507055167566887161085880316237047126992897072036189772260530954394658794027929950701229222510577946338581342203520732208385365335749277630660881051714391355567645909079044857261499926205019357982542713213336902482380746676961204866709907153103079751989449579410064814583409930291450965734418746573719262027825488729133745393994105984783187314726995523103277837829176572965018338029283551602701608949963138631929598577357663529334569567799636480219224401176753080772923426047752953813924009716412208165565315148374372398210671879486220545784750357183213861812259261715089656988836465403760418007271988548272284262696633424647744374316952486960438776475179719295339203360672015115865326970510095258008800649377343513128216641296572922323860034528027828117919001956542073740110475652447162258674683077394614818328824147895035603869269449930634710402613362777675839174780233229532506623367804055689058289120592422281248101543527719893541024966834487304856784000367208024294329753173233632078165889154032873713197989790406028385677254101437734858304847908139294118525859829185323575327233066848072446960061790638332898889787543105858871987001554048928794707974509678423425211286663106676969647863385032524007994670268556508919558387356029180613585029777442209462402651704195364613706521401595937151201813448848094042269956049844767264817017945939544966397561311369369225225986269853668415206126286450724617443962560389583687486013941539422923856558697418486276305519550437410537208343912188703027782718059672439880275734286941979947623858484996552487243243330351418073886719450145005962275763604606426112116523824159026935915572056049743776526203733313395160613736757970704215119426109129782301357399660989822621810259334079988876170185524261002648148834529945491708690550082095696290923227300632405021396156837503009001059659990933803299953465408451673218312543294959499985736881020807380600343478346928528458714492460198031759247152518074794779378892211294544483493125666862469798549779940771215262731897604224580032940040652133842747135863017674759163868503289199583386049255589809616234813210344376993059794280605385102112074718745704600447274445834600039868516039435167017804424310640970671797836537468587238063393104469248172504009959984841812225916350263617895934709641420624582203931046392512195689418080600213979392521461243219500222620148112005687798628493779767063846634373502311956666675793853089097431967123477003515859205155937684487984828438265616162155887463509138465796577899750927706643775003521382803639386870252069972936096397863171014994214948169382322551056619210766314240496223262382971577441040253803925770973383173165927674990372961802766874243331376920659581727883263980326405491259722149710474132806578055239492306833768920285646000221018646810771655947734934694339833271962763386485217164405693413793070788350860663072028895669410709334262504196678828635220544796110764477694644126615743318353895432962286736524323440535198250561756173594858467570861352770072841184815992824914140525980234605234763952602517575414861488002393247962169444847570351279473951432667380550979950174078907466141211309333501562675471975163737816863790701279808687894491807944425926213153927152915652129084495460068840413256107667471463021972753999439188062599544104797172293947519794923977435007184452117073889172486482414520995031129618017472278245299174635759959804748193880033018208951225203372254535682208747300626430174127359315030914177747993303962134225176346344681957447778018878947001314159938638252547575527779535542934316497269627278435680051856807634606247784702431190114190166015495376952461240698935426883329246461053702142018203228360554967163352989325767991507926117676363763038377334546414436928079588689991502349870399372653378317496155939687481595898901546876493392866692502105082522801648663339961127533721707182981972632490149549764240722593362548969089329580421261634301150389004787163185754377632461738852293004216145078974651321793614168632633303652552960408623050957004331884130708887796409589464907153600520461599250805943472120754907565592691185145885296464818381110821714278668029105962914540365113294044113211394011473871042460508166744102115566464588823350559075158232651170376060275310917966629506626723446234963810034185857916319145310677584925985041406241138552182573591698979159622477777842792633400663601262495154127106295446526943306170794142864414505936975567366292736873513039412742508419443911587385913044032038642740665581871735835019246320229284380026862214532146887746147788117960554529025708468419245700551996796404665176262160602257808634058795155027344386685866892345025330424472829876668734250371569359396182704179518184998141992164685439930986494078372961705402295990960831489978850558452449471982036825146049894385042082736412153880187093932310191183535783345951010926416298183807344523997486220311778771584351260199975132666254998088097590334603831178568769280333879715252401613577343207671723731574082803592412206595964093250210916221313981466848010466208579079668770516019504534814677976447062035751489604940460664671614936302853118255155711205007483404849089443103132118551665948632115230656005758384995118963164583097039516300617784012689280724239591202303683171363752456489035810078630273221848983033123249336186174638775563540071250775845801286153898724384778361947391117847435459515037483469733369576103886338746809276441894469178719431761774378204110875449767029523210029432227554425638011143640815179672323530177065961618279587295224007668176308154721787477592845908476979377975426826156066688660876035735004735968876950851978412816275980337394979688020238390274516716804826852072810817466025048686021825231906248013166022299076361501934512395895292353644665814500788116411089894940580676493748579535969085877056358734472752829121106477347053038936118983754327151378270913361560920877951249171228467602077970304094123679913835791029729638193067985618887963056373176759247053053712870290228793942576453709141966305920327936630191232270164456524182628699486475274360894526649111486897599991970548888494997836531557574151856507911732542677848543561274316342028394501128528474372119584809088335124588396769333746484370162077079759895683149767650182604601404689374364493943889792295076958524349925223394438282616018421047365981346201860501950071904905765024008930907282604307482590566916088562639220360017913442329617454286756728788987097976092011462494191063748821107582797848233511997000690845488001683317492282210246294791030952699374546507134466818494234796349093934447649776723213077378444448986193630602009090319407460988657100448449504491694404598103205195564982216642777673713689726723065198991114130949841997107476279836089072724957217865889988620815737790868309047222150396443145367285337081291513739612447568400600706626204439825408286129502457288176334844367745704184783586989930480156164611020889066754675974966527408778031640909352817066846560837358158320158910199381394524547753529864048759892152212301149964372792967936485924602468634853646571230055920812052906633094208775454114152597531692720990793938551803299417226992395341171506624854369838564540855682397840673078557643989412015688860891203917907060473182003156019990439151692348433544095906220932355046837773298178463149613678324879572532267714011208831038393635197886382617575012787913276530456247598883189953571484638254712357294806712350542429603361165201269381550964793802824315690671413360756065986086726490488110028742982506574827281449679680257362244926472967897999835365317379107003002176376983220749479379976000570124505866292059154668614860819733362543535547260545666732678845657631010099187338172900000481878454098861499409561617902394780439405657468249846930320380238471140966941716932247682496610397554134952213882697989786343964450732581566462426224697163927001990388590428804205840534209157987985004544217770987774089082188705704400108328258994047060912437143143020182046303505156012024507635375988211654537902918476128501134036910304671598986439152505393747774164514756074685641879731363455616037127911537605858393315395625802326396547787669924627046862836059715116858642081183775028426205205791124414819730131019430852792709840911726015125168905083683646703064691210747535546251004345247196546758993989503725373869890819491681549646280367532944432259387653119324256786490106267445602743806091881315577384244618807717154399990681950893945067074629534977690341162928371379486092336318798278652357565988789732334703692297008729102044225558633316906048891163255626310859150278093862091905192443038888154836540086693731504427150972108881702355153507171317314162501993660597583653965387299431242029759661307616749397469558373926759481622697832351464993998388210191375990550480686982013166673493902365841657788546918760398322337007048451940702254537569044262629925901842794905242100935371317772289522524290169285553788975128945815023234692965636229548081437066762784557158307918200956313504812228236485181476208026385170230062696153864718347500062060020014376369973574282949279996850717384206473930892488615378597328724692359513087305807664603848600554320057279294892478589255159384891863137095214969876870718687220071963208769902318109635538617074490909686411027942227150428984729917714231032531131149953319657697168687448699683146679171614214012504398090399573354490211066229782218925406767840833223784507592961201057898444303686109097565731073338456895308358229953223104564792545794577229839036476279091981866152841529476695775657693495539879071600794620456890693155891608373859690397935839531932396002844890921676018578160861822742358571326150857968794961566222722069909980859778281923754754238741042910688531366532883534276049407069645950074214242358540056934903926298103613863846870940669337981347078155918705915952122705604306956182854857471093370002038112754873149637404433806451624547022552360974336699584503845952880627508701160923904027795057493134903464000755611572481445760473827372621434913383381352095622790323831545473781718643407001836744250497930160336512198758076394995299158875629033265337485794583108379059048252280767011889923561793100749696422032473133458741534720446128107355201249841524861288155787053849748023314587606164598743376386006245070094834206934741482457498096350300294393649325806196074140221838353211175317661284956162780403730941145796952650646157510746460116292189152773939925190202187532116868767082935994452039470963145592160511714627675359667582881976393028266355173530310786802154998812629774181792758528185499116789297283618264607074009604612793478973582967123000647231463786244583172924718789192021255543980739995711370965719919800344930935238250513464293615020711814752392815348644034869421825262663152971973275425880314485333422703594966335081381780453507757443897302958890692636482389632701737788782948036838158850737568831188427000600822874560205413863821945985306170130818082988074327224028244234658139674507141740674605103484087782812144907463256914994545703851235016196798139672826782796137621005294046887057501125187462361234721288783046435971248851752416449007942308343176371578057413663073128235133531991563453368370508780136931604371862284060144762633485314471471989880241283852354679852582591856461649211161680508451426426593731102954220853426006538994188513310627462243832089090111249188567930736279877722192763346371520872280018896211465038920681460633605732909031448414245694678735131115578769236945955967935808533490391873337005550972759427195895850617426809292852911106626493218851941266964378188397785445596416481032626227146799416645453305507752303833081726546837138412601961873883579194628995750186131894920645268602532314496060268789067210553975892606676783852964991861676717894801603148060662472118521805874303644707850024971216974773584776944929965284012862080065594112564709127125064487936587754044079230423214769434377256357869716438815039235651708358287368613181773365926195653428469304838541500758666097671768317457322650898137937515003537452852871778590375826207925035478031068516082743896765439526904832823635956406278778144803966556654162124362320503772236098477656492034791854230081900272995795538906437383446602771607593207404851313778140539398399202316993951901783560895654539968754108794801062870725178500742469607587153343281464055610995436527809494667449920765946971935083071748669163394052961489105792362633525583396944198721314928351050766624995212406559216093823113783061580725960102589527637573440666094625638700185807115047623763916383563251901001270229889040931945107708665540214950034217346608515323618231350955332158284679353379072911477773395499875326815040330939032145632011992934006317818377646218881237489581258469938673165062617950653488865321903989624646819110374580189908866343079107509704267435660476902345245002308615198068856704248287924094580866288967204032357535247488664676204394322490317131875646819294753096771524335768220171373237106150102158068783534966744839008170896127003404316522028336818073128197741931295814461555592043432585927691724086838814197873134015762166876387979226104741459638551948012818934326315601799920060904692634782788950770686558756832333031031360712012111244841058867583697222747955940859809126807361326568834149614487374827329378738298829211181924002954089014637032349349726182746315462365429395525107182435343634949570389280636558627986802349122861773472095194565343442826096496108864453737660516606514690685879190876329742148739059847110247447014342289382811214053338228705050176704823842108712172373477373542508814362602065697939208059470668789876578920862803766279334988933435746483904403151417965663771799243542629903225973890525552759109129618194559782642821246422636918651883872069894996967465605070004877294178836842940265054130961100529401728173922604430409895481709744611670048768302629695185667406864179106776822576306293785834736674954607633158138633688333988314052769213221574409906311616476162705683973790249907253653818110260496960334527883618699732105697499257814479806564878776302517982291624950874020146576404281366786091411816471045467214414355166150724211613916683523820464179474719745693453130566309933497692537075969866467654428621144838014919210618520518451619520301727687530594918418686954625401691054929554244115792509663654471624020835407016406382033061189672880064155307763461629153704329793897330082996682186539394249255418820140531061633220243607081376806752334321155827275910833382387045311614377441189719129753462729892119927392121354800809397816665400825254448872221304378289533779574586225029591792857769746122996079151604275694646769350577686680475973907437414498697520874094579901694720045054236789516501198143547175032003962360060411864211330637813232330211077004660754592242626507149122261397352140300398243069510843442377968761822012415222059656726329546217567178023320512372113423844552583713739771306298457915024650502828531828248328341141959508160363769137326436528956735150539863406135170413917031280288680545892055267910683933687089213339182397824499893230776602798342629532023619076435098725483824349036087468814838882157657146833628649930630711860675019786581410048974281723971789926214720965884036897584116992935217255999655646502707233420486200653400798410400412563247852251103428338839488262373715602539844347868673697283264045592363819766670404424762209773298509992355381852815888090345216066345222045080124356936677690997354508134416002627286825320560249886843565936393506671963369555379920487281382082091467613931137898022392412404002288969300989381979770090120533177867382382793537003445649929057935476593023945764929669479948904763129468455162993159891645112669532446353625341749175278782787943124066202954864845167360849157967877870285821279238946463991508378403542528759327405712029761875360527865278592921793525159392992033231880013773324110618923930922003181300649559157971765114028348966333622375775751080078986563383040958576495804039406485399346191344806710731063979530651896126275711994054254653534397333053889200879457225848459703937026430689079622848010695780378769874207536833058169558432444686686621321746807759044646989597510724751491133899810618404849110388098203928870163335674353950894981938311939073383967338479210694608547159536270897015514698782240230853646276412492409494775299840077620829534839567629070008196302189897307191660810075096730948028435656923848217843658973712138367121458984120486216357313869749172894174333733836695467604742952788136785016174584833947865526669080325777440867187360877659217672123648798912447808370613378282694165221937542906598152461236976009172524226495391877455847806880103867376825124538577675211898131207574284301776900999424102178655502979643562359006612227907548480035216073591455673316785229334567725163730765093007480451382388411544017359859526045148044835997019409513323568447292732940942338434144920907525310223968849320716183061240695111431761439631454016509143319368712774921446489597478374102563608962541615005376943970557255907174601587184836591204793621085833573090941497312698492240695755846494901684339983213350304909939759343688105888512997759561558206596950056605880532139743763960550296855937389802686176736679516264345822903518785777513137786100877211428656326137858612014161492639004942727203379826970647798006829920289494448551898562546975575263123388960319664798053787160364198475199985530293494961029431113716679166931224989842556113184695257343701252473717310835595529495944820778261801976738012158403709547875585432661244863286422633620072028422871385890248185530286001956140404738110270308152813675183383214990944861530518464714808019482422900505475209199673359473398661364495136019464257167581032597101973610209451515185575718928164274106280633576830560439004390287772083176150466092295482606038914729467148070160664086759403559928471121440976029299303292459919700098322743378629914435363125725940805790056456832854705979630225642682799246725454271403177947320820073447314159333035698942919758916267471358530057078946281264106202652600271114136993808163438485541524084711011536097448801375874848194067144875401886110771013309225724480856609577433123771829375677407846219106050782413765848092034921551255916838252202345293145168188926995319218963623735522272485654067888555845168177237699213109435707252940259445299713229107490483443063699698898162802513818017083646427343755119795465529131313009739204909232327174239728372231986186171008644045503319842759248043505012367781960540129550962467536327337991710371907732379044012048864920857488108119131173568701993590162505293795129370618494651413319021569926527484233875498022662808597670776129193392034396095982261114741784194496962154784889629728996587356028737993194076009545046714251355614235814914602563545163696456269504773691696305842682072901859391322979571944359122384081179196118757638197736935548967158568137020531866055359573418978101373818906689914382619590954416359491102205117673504388863783169674887886519915806528877969853922200035269090007509561023718644879469889870895127168773565121331612185548842667188875933146688229374378598180760218021270736577075661999315684550065616579500967667753974136280537776406334411619239865328737710077050067314383344593463551366924565635711443903506858711258551536792222834825977611261704493603070269096057018301551043085689858929839635272890684834610458797036706952868056171967163527864116930894585542895570993724965779205801456242671939790358800094833031280516990658791712198050664264725351977967302411148003798713480941897110425523085915760480357608684753992827938274394277637763995521167837230986865439447490687200627327914072865466224445071462798288246762447984853897714296623734365408430600594981859703650542909868553347476948387895395504248933478489531601241829293471458271814673395765419493277163441891207370026902118120951027233751990984616667761275916501882952099055077194907410143619555877554006125418542321301052659308154053291443662231753413254925488726012909798656302552580006109446578031623621802318860094057578559421633132077688938569854549588550450250837039909925018322870853468916263572748854725759934220678479225654615045733940184541734317426287496992078342639294294451074091117680324341427531544285745406860020364445025203419539568608604107544093795606547647136911410385934670758058774100655964110360351459630453764215773281153393652507244262954440080565652985559003182540838741216852300998519170797338806599634930039796647361993081209206760379002974009041331168141997417889102653716806970439458623479136736688522947809787472076601319202324024369057733512796447576661905851599238975684268317938862698667109760602733791929915366184827594834722625423667441714944744723166784316272277259706308190353703714652947041271894224749996972723653291520286596338151104761977544589030153894419911145076506018792118455256745021229929456311092093196673776163896731717030445418171258939076096678443283044445771918150848138430009853214755006893799613525173474145427975991055358496421671648665305119467291922504092017541141845427452626658305564097630126309072893598457949817733234914274576384747864374262118315102348019518780899559297861339322301977168070712009603029797829942269191759828934992919058449707956235933981303487708946419740288702966197160541878828804524428073682265252527816251404550486674722253952317886648642206385893777561917428265149198989680222185331271763184722459763110117181222886758489091307458795997486012680305810160909034458198958460676393710349570534628773199225695454050320731185448225572925768576917680246931374746656898266633473863962755843623172764269200825220180065778454516542860089681764540172868707018692929850520701336494451053402618434957864067695272613072767097427007774366963383267534914899891248906072643304794179113217249189894646982039058569412882620775525029557861206367175089340691333211763504628149378009328386299406327758100527452351136073837595763018729313926857791731264086222817671669051192956078354120143767163810975109744607663768084178132171576535895250016014878668116854557288206739626582905444198378426100513897731448181170885387641832930892795334455914714672587814944343714719401436735169361307290741007920555063721650279551377115123998789553611810140919744822508119260770325159791931131393279351087825879384610782450124720695521057356002636187367740135982032985054727152671459344407172996696933080668850779892929356893838085766621362368160961719502991127769332103365623775676526304459923614870147234004390154328245989955536859209627878012214808964676489947809975533114983066719151647556275948565653576834833487518147337563570001554873833314528457322350557183579275306091967935889687307142818346819603697080919451037889258572323252481932772353276541941580017427528302128554961572313907302471312323456854271827278515602125367375199904582576895736768970907656730733222509414627385126745476281902190760832396876976258034815325836309076002999322990847692885109320937542270514369304652374455851957031393011295854341223200143438711273339454452955775257464530803954853185676788042420935317660385321620956068864126736100778051889628455549744749861622425007315386316626194364883266146142547865858839448840082352515204388658441453868372513514158749295013516955610863324613291291964664186896342715570589094941791028902232095947815581380087853765054313196822986945618255036561583521223976469302045231965871939387529458083175060796067379657745568557652763449770230357566135987443816985211015994475015798688507847841484700216800437303002816688606735721596981833532630012842159589962054327520229788263845470611903230962208472912607886871410950842497252359658298390699112126348630987391504683789166968566284126941789017188053639017417556374718956442752764112769465396336544456149901019606745051537760968442859836415898983827473266838465676036058179262130463876475340507794442547763877385518334476000116618953802352842823619371059315425536028111853592109855814580833423754821459226664407230233093636355421781076907997894337497069084818611548391960365330779986006204132152395022185665439064189658689847184059140390793552516828759198983974105713402048724753999453521801681307706988232170760821997906792862475278784486094686421918474003387815887178354223618803869944931832024686482859258982726134469906184355120489325061964108197727271873067824437641885280653298176930088002903978287686783932573807666927561635059688083505672929333175464142931957716491373926410945482650157644567216988123130165293645571182127539074272085123797883172822277831704847001776105145481591971786045698045872789185176147660841789478351185892774678588785860465953634949296966975452134179131395654333796703788481110541532422504534420163032327082427608443732994314580876412186285133488995676080323780026565729091314746536154672453960012823425301006023995053067022970099847211582849795816403006233593775630911666189877633309960840717443158374719179357650465718569407902184741351385521342737531478128493115314819529862972897778972293805095313393015718907426400841400653783833303088588052983044595984958012594411601152932284758104495852679730517420757705984034384875210204119613270137230352294877307315711454379809811480006087007029179467062663247772158514918720239516962225506867269005608931754442417318028182337956266838297903369866266479683293485190602623274676833012094181421028046637334462112086747090091676828710407889041736858294671699748517239454320725160469228980771819462457952293080259793382443222037715575107553874242095560896782309149548079196475880983308032860569097871297511978378812565726526840323881071294979162045285325449768882762936789296234458826699302540412451530014080991950324390028654905386214255701716104777410606346816021208144374550485425678276323464759199683630510680256721489925852523665697194346558826757419619534509361352496510417079839759591279703818104501170490948348767939455740608388669110609245851664736274362681114171654678757632280779590551528665366872937788415470641147703991743134418702464444372515984015210796539031759595583018180976663649860521333874855609568044765131865513984128804105313582179016638083436129544388488953997348700193701014494562184507707910786447717231376957365313693377450853568060568895004387605504191852896454197705212578385928404133240959168931605756736114215086440985710787304048885075318012302058075500299270261030356370650630289561614940597281928469734748234934937829061703625134204165012184814705755364638952158477391714181649250589123019652428633667017174246736510922149331123315151039981471996464106429453835541577219785692721434053698759437505757759107580147261836106051533788821755150507122264244142077939662366624087828859895615068413614481578879321885579258645023747130266190527808652778969090298548524403611634410564349302937539186384439615014883700644279021714049197896278454075152760419676836936485126909291538636397282296561129354766480401043991632507814299221852994043019491061715347820302626450119939603437725223092939932173939281856413477372729770248611201605561923684135606393787292916805035458854412077029418290309627979713862230984875619725711768974565730768511136617669333244192018945480137680245468975005697444781876498766789186389967792818432264809095384298057407104275937304722446125783867068198832394713857933756371463651884490700971813124143086962493937403760973477118233618036790620089376337951522812104251801682507005397503477658061290479446042473582634912845274503077471563135083901729231380803174094433217682548013440147946722837116600520072323093806419864834841135781267348284010193597128639785913766264924479279082981762452135407613778791278400947433281655767325505215772283768677180744525453744224916263333992133247396873872686037081499192910600526631665337698957821326654651571181909508899906402102833022025077559028716239078377719620624414087040612749432811174892078395624961654074850925617780481712251602855883749864183115322422307814102935468503921454161847842691123507094305268979380497510305992781958947900253641594493302727940389317873699712660209913817954291949178702700656346602496413876625447190759444492591445751945844958425231195383437356151420493062315599377574119039758824953619963721970528259700485009411267377882962880011061910136764353219739404102338960890562505222684795912939954562795645604246357519862460140834039823855617903099509932470606841559624600892916847203425893498342234059255083986344414280491826316184848802543534023554574663308473064324796380024029202597945082412278777222806480613138581520632141818533451433722185841976312965274349554363477088465393988197464856533985156919305938721398406599403256741193828999985723120717462134314343923896116056235116940739236609263420822602054505032690550588774766429272382591930135509430431151806432580984276917360428486568167566487595791909364659971900169043996209534745415984590842004332467268575701186536969412548864772163792842934609095523080002135726871126592543237798420775365576965578004901813562345266204413930062447688577329624512478019452002001930305983141537789894098809721965052576490683756639463030386625865102737552056057045440961432379016596025916072783494894340902457786462487165880519205508126020040118225363024753250628070269035410145435095415008306430137622853618786249875489189989471866493253226678795438008779726007134788218304061395748217226535691573082789086208769547958802945086042382085483199231810175919320239246934148072396689794822749029931996048423162922438858354274243627772518904055524366067041307082952207471924955954194341962251916886005776573058052020532693999771779294269943374667849992323274684953353074849059995058032612962478663661288387266818835782291948730232573075056002204040278489319335807004231304266465634561265846833138001642374797047011928043055425927984600788328691912714399832972042083832740286335259671767268336239417404189733759771693793709371053156398963316550359596474740893840639384226400438308227223907921052887930261792410137392937665075537215489620343112878724389830081755870022627559908100529728749924073365745541614578160959415402422297134277305082752654104735813811285988158357545669581344600926348681811147801353480454341649894483511125639161773931236033669912263733690628704551781093460585513946747280999514894422686650233119481785092755193289874618816652591766355993796621236966403470922427465863572927045174010071969479542269544369475399596651712931342020396420612239683283611294026929247049459148323010541838885937350353575375748266142903122557517529575860376464916966452592002977313560695454769968574114355437164086353131596089651224850033457147577053700506563655390761154284360844959220657352766738973584502380003838914271232492515676535475685081259448433340152882296658470192656384083836177596984901582544724079662737411694217589526039959295125330745884426028474095663954668526602555748936008628105083062901501710121245110979448362602923172002286929696665614752966887977506973129708312515164619420811005771538441339562423276951428035917130997463055812453032050202100496314509585922513716668282433078753492198019207506141735660002721409200597691865379259183000954735250553968549833161801703794199245102116176498407429076965053471094813770324098352616213660779500115858271859980315985821242421883732050078725580000840959990335228592649027889983649656027612857573665982398653898721625163076529983207886696380122101042025295231582115389205008566020542083798728756555491825130333724206710120839976634850286491855147272025327795202753703174327533250327176113118790467073019538245332260633752119593450695229076515344596731907631696567511202951619785499289401300309551835865952974435081273895974698458746018238657161520060493610823281593701586473074380580399073553919553608804877613444043384829075107946935789068762792405265038310031854310602924515636459141463062595328565312636986594369589454230597919039728252507241777997288743603981286381063009475439312153324163154289739065390889688495681991585157199062915227968207442152307960007012348593520049882559695814818847783729169116571619993233639545702557549547338485796385489801241694666739735168245711365394522396336805934353255086155992173213908558916892733693544521342163721444128912312544793500327454606876390417305118718605373310923877957868200493181871682479224652413821901255896391786364651516646630029682806170650851850753259446166562628735236793298911890865301222372184531848761461734262492102710369955974601453661073301725599344778730189415728909306887990153642614620741793785260443550936699121829608768818024029744925777807679514450143670349634073494642927989005055023366755920520203212182496060165184533528170957695574335177179284274912915858139305096096622757756102207607076773208571798899109442655568778614890197629917004435817232875740633697108085979201413842302323296390347858088467835114923368741542845137855801925298241572853851419826788842434420329456013370010139046936678743277495001862252193029652516580243848724631344795261635044833759838069237578888172314157929307879985616690604217321455583546420214543159847613483741257344208358207755783697085979580770553213359974469008404524980932248218027098379772123112637552540006480269678966941926977071807487063588818934389287569493178336145676326266989982895969105465619091356977530344866904034187303209868719939186599589549435956660947509989152200332864753560821068859966862308519776861813089374617307029738642697046432498838708066239076031716147947329921739193951020577375119481487430891638455075589352333544105880098742693710251997333879891698030517096011220590470273872346959745033321726380568240036559126435620912788124429508373366767039982484168872559397232022575961439080961741550505723127093420670258623020415092026566579617630862299132796772701495975305754053484848375604092066064027963846138019399150710578273679678574808709345933727757140598841271420914263718192967577345383539338919474872805176968432916279844672300265356056444268818442816350375154852677836053925974204780958737587052186159956559377296978825746972866845961827766042972535392195718965403137888992017370828722041688705425625073643248188618047867542311592583890078041632786867363242360653618335877546491562385291027866067216219233504745673040583088091469078287907444951477672963262112122483361601454560456252381296404089466994815534483728764555623287479904157268715424699364093773577311326547356335138660995081735301096763906934973191517241188490193658501847420163460406060405178717602687584844214166757547736550709380174911743615543087279791934881208884923319701760241106110727720266295459815258613705738278747376498788080911061699938626638453112205669966481145041141258592871024545620066258357660107949834564242920518959773669650648788287463491501452904230361407139669047568203964558926139214029288817476555916711426846282039176555994524067863819536478802535263822109438920431765805168142115316984040801027725534313641368490610728171061708649219983695861814963035361005446870610034599553517164502031394500191435641914173935713861617136000395362401554646168408578833188274439728272552124117262717151892639054325578287174325402848310868298399631369664258763123781758833173477099904244964364615002817517205001842776464858590618153021282953298346767215953053943625585906417748995105821388877199382982428157154439352108664520425381755320151104987721210491779718278126916870228615721961557807477045522345694049004134921503591803933362651660749933248092016297125344084793228080219188785046450277829177549402520697915196159146305736894048369989676861590032179804764302632075051025005246552092211526273934006685719817441371670015060506609777182783645039097194164115816844821309870333709308284412402306247949320650174820492292251231546154029687645234670258397652969353246304138363461804391815352955162464827345177663814877379563376772218791151556237121707384408737685571749765783762533866792397344196415576643527597562619360050172916598034962804254557735719711954634032594548948611194445541675721662708495648823852222636857088335884946489470042595788103364395862572071019381877845621983460481101923726063798316193628608660759393785697788983942184022801671681648786521181865408025148585933729062395168341464982869690922147632259832759605616897865843375970595128322749291290488666515823794292391737791822872922613483602566060964232314464413225906601692263161419152878546427807268858856399922686921302779308228854344314663488279858966353286076871535592885872754352528349162046491763635397105222054278691628027133974277252287489641729497535074981881683309119357355595866766546019279475983607356141773003366136952772579676396215242658164394579805171302255194663638549284598985566903068057640460249100072926360917426338802344440696657641925354242460024701375076715101988344547926288471931829446607617218529370639745841316629776697480781033439658696753662708601543159132205444709844858328839567690493037497512229293366913642156260048023885725586515244919866552178848644457689331655326764017637788781493073587696772750500225988300743282893551995366880300499381524867784219734156846900629055611841029615084376893582299758215170099234287979876010733551336064503687732424567648948024023367885470474402220631476752252386370905721683786665662215986218717397288005297263188115787406841193060125991061673087414669040074383701175898128455755314708354606637419762063203698041272907553187130508064566187430502381526149130777147811870918101308717037986313876974397586436756113696587183867714054917962360772017757053966635497961164036605578237488771796802835634372212063650698984789242143656543216023676421346776369033990463185811111274025933214067252051626375861498234237509809166835616513937288948416228429453963049457775943050982513707144557522445483856253570850081234890849043367070053439086249178394109893951095249143081549131625987829120946708031208594024178957410438292380143460728840138870840563884489799607772482823157414982396119708762537145974404818074818355070018036693135171430759945148417193086017836341126029242538129072674741523525468853964394941904301008965168382087380341493502566383268514474980821779787688722292889139586748868688049161363888236953075504015885078079903252794083431040487608728987154926552941499680881840382344679235681320919116544853811702034438159978521134650344617233423230005900527335861644954439151452951832092485410351978487541705731622615598187460905560726950600688068314136490980636943754215427199034257863863418333517109882733823951054430610998932955506945352091775743563748619728905407641286828358704037753893747648242587290043833691537510034971207328089047491591153664253849505334122691427396117721606660474537207132063926961692766351966406956253042207814073318263166192117809466814673682252569810031313050278853836411229536361482717032572941605435430577341738894361866248901247349271810150634347519290089411919715384486556595028086459278392765970653613901518650762100213356253319597836722456087616545999134924833569998932447553484436383892397108769107613403652915143165325914389989113041929176118284939145451188819797472927012165477560986205311997059219153763542375256108795733429627801942631180412647983996861118994785641004811542839154135398198360098200851898867462445203801971244077236806058965379396826361584233776319289606849233758754761943572378369878592623318647655993030665418918084471861082448124720281110440013717798071969082119934527087039645020446256569491992918608076490211880074124805125468217913664888140117615030910576200250828658588548257257808820405898263643811127809905533391411274415957317928580875365400605693575504733529467049481817357945516230717096141111633513604016671571695807881004372683568764430690037493935005791185854435289660755369889469298163649806212335884022504306219645409143013871904571289106173701195390116423608150381046451970877240561993140641048680437407116357359817138127308085165539456058932956084225382610164900286087015629526903100125982523170257706871451473892687400509909637507999420634005201496694315924556596309330766962162703302676968099971395705863339113863219776544057438421216741122062985284199039957073570168705020159672741172450526327619651150364713822920533832341338901439909547503167649871340463731987906589213868470456286234054788276505189064944287524564410896611983017295147477790252538922095834942012242702713158749143040499901631618556216978389225380484203496675575887011815824267877137369681330780256923241024627448685814750224269748068080556234221978308350410807571036665632236916744719095665233683569933684344209692347434399183804902851759078520889570623803206237252370517979805343427247558651906944994005886813561245416588839026248878678107134213269191108074763991233829971510065371458244323206828607383818604838441047438504383978738663921026214345572479494708260712077618787115651950656592952328449625275417252911516604424324828830633635030665532006287307446874053669614317369163143797469569442381723066521015506059109834791146417927770858638948976654144407718756835245299161485903230460579811807842474329879209915140403342689685936579169642100479622775538045965258004996903716341125739707769430941301149012000417270384431146412364474964351515128073446915248354626963576770348554682024445813405227594339047712794119397856808064732403934329783411799470671513195437184196844696059403879486380417751298988664270446385054320189134124028143980399070365944067994416824094233023121886862591778013967869300290209283837202445874647286003105504052250572769023335269325681181978719794383886443179226901455415259119525075572322844145838006620007799858183850179447971800838849189050080223572194834214706360356932414527185588228731200470912567862722054253991925529636426357102763077573116365450461946131632043618722112292695172707696838037246012765818342969570273818639944986825907366196678823302281772899776268592515625981030006918758658621535312246034203204749424747722260167600447276766892840438490485376677429711407572547050019087860310735058585004807107979593993526180923718574717353251485181600571003815476720598617203342295933523488764943262931353946521996851524156450442177021117229481471275042992303677872226418392445101507652235181168858546939052211102017051570897888858842040849454471913021502282240341052354080960705518585766801062024408673849752091023352438930586886748146111832370470990295098463420774070260593813153786687452763778263339267949979377989248415716976600227275590995572474210451288796852701170299246893392579867926129517025091389047037945601151702105734081664856750411726661652581970392793860364111046389597933689886972803964292335910484420228305583223911018956580003398957953551560713250608506518370479116235405424178024105886051753579751138737579594324581024102876920253791153688232307117863990366522532145865121312251662436364952786462210403615799461045918007916940864170422453385881521580013221618217891724643836615004328539951861254805710572906927314912523532229761075690979566628793786358992165368941538906799189109135292605620888691002372073586936950752972042660640426819320564818557794370604252021794874810695424585060365450565289735594662386766080642674423569017571796245240499873028802413028318917206056581706242728192816520424728763735523106707350068873559768455642880994652525172588304274959608377273907518505099702922630317658078290876734159247758235212933389563647993861602353380869363900746436469085845579388093922418769345796258307239366648952559309572447814494016941119432086250760830562645580982576457083319751921110323008010219794985932763231846770264690272648912757282721283329844271639926274704540855670793236532630139584055965238482398613578423334776158065778572441820580991818579862937062824174854298778764928091160857766439102005088991261651096198429427581312122469229699346133454053977094008204947270311651752717811068647051886463123269441740240802815043447856393333585649333010510252195678881936511384310925665379585538715578624797312839977739010408515885149970934601809587800602109461223168593758740216445303708887734937547503640243017697354499873655468577255449486947870118450461280957502648936301150143376189086355659641879058453400887237870283344554022449348105143669672770047795036957476533042296980230517640893469765685308702143944373828449077258202828152421502042030068968910995877110210297257351053773755213819007891265857823577653426072167405147038565952596671302130455701417286845225010298148664083424750279264946486981240679578521057848162196548775854098132409961152137295058996873505297695216799246161939972546753210417097037255433691011809374498383392858396120259554207389756132354765865387082643123197655194684760708967238675978390331170068651838279547272552499867973928925616234551465864532555043555336753565873004447032783908688284700965319510880853736243679988962444728762672239375131548426554671869516194336711403713514478296383986609447619044685327770552500596589080143813484207080479847569868852412820325692491571655464707407582736308958160917913162187503051614562197678194307079370755101297967163154564117127765050375492793670806071330112473128199369447826446689769752643632763730042548016527870240657454452515396733449308475964052886920485260161722777069801905865097639501155802761033007662813919989925936606867202397608608567978137581864343456595333460992846652848946201400230828056171910532890276610830710706926006800963900873541488490186729481724990775469178090199611413859677055263520413769344919134472498699327456982988945667183816096461476963555804976564598546089424358901853832977509080243156549442319719944477256308146519040964584964245409750092961736768150317935432177651572999956187548644284566148377112428708134116293114754319322879742813612173322939377914540516014524763478049767184766378388787526930710602434897755781875182642378938725904564016377280395609825708426977225851722816817155597474854753182176658181345366843746899576174149258202967718740755177903302866419512527051130331147685696312765447123860586980682433082111853537478558308448312477609725770705665125341925585887960137926238288621870029289871486651885636690393136556949338670652015717668985012496261512062356614985211297831670366973525170704189183813862101007607323758191282827433950124272291598095319853989316293231215076490163059724922181561777216133504219322642209532032330353596714800095763910594008249827127695131346114332421400833769685897867971323534912219839068983629699755739563523288948249042313601195439229078762474421060886770105393912252783053323223770056011169916846206267413588123508046670824291357802976384803013846225551770363067443706752710108643206822023690350805093487763742908674289962150643798095909098472892750534883156493149645588299678986407437653083900300348254657745563553750423301993672257290568527923462540623622220277358020041495275001821281985611640597690829921059254490171623490206915494467621768819545232653945937023359011341488968840109301221050208520292781073957046308500265018122298015062736419919064623978975282514986791247464002059334957372082963190954921223015192447594907716370023337705995956190120352654767917228695719394288505251687206730475772803960089959120413677339218058117559294268954176671864410467665166609023959515434182066942843562906009978306795549760671788786497796574432741595866007632873851097247609474054989061035681468211538046904875179904635808316163322256208816757370061070109743327927459704218253358012840272311637216485712180613697698013779761807304251434801652426071286346481653161798209121394553228043998722541741341342253716527467679221629059712267192232935942489950100373139985049340505745714825789543926636072706365379800621812045334486442297312432685307925439020552871742871564738272385613017058766946819101363726850879360710667779612198436454394645315178448320270480615891205266663289117208802165872379560733388191729081570780930621920547814664092728037517055738049005402703437234524302655550797990395213760888871416638672058171176869245944505036210157457016059958472413211627081389920626965954742187629655266745822103263834778658020452719933942954965759442348389397089396575261003247834047528707865430816714427982925389672885608023678592846729723605670683600092362775361441089640152786648115629300553832036496878575158498469130394668496582462601101335679031892967607657348516690386068394882478974880176903176849198516866785990810225841537136918987792788250643151247401053600133737073371134418540981593770256129392197308212460427055792194109805908150117321523597991825865361521199205632630292215071992983236429374961712478178704727562744582409141089871486547234116249631583008034442132782920114503616467851313501139630608804966738715957848766039195106314188593766600935783087128879358970276472182548185758521584047205898670859380443888138443449857197100402247648577441978296175240528742125634079410164455647948539815269035525711903157147856899575559036465209388258660504899760975070063633103842636492870818593300138698246160660226571724859698909992379536886811937591657698850079722188737247576272027313728458700946480172023442430465789610263960204019048282853668816999193995284318431447894980977537765784425387055409534510188742874063461443088473669376384161169079437782374879878152314922405539790101916081722956838449713453221910208904916281139102127280087213135855264768980224384245476303239285370013776544032114843580694126348435866463373623248619398306306678605479545214342697487497323289166088472633895727890689633114351701274675066873549399538159248462745041192518524577211535289795050784478970837240335848396838766114568102721220163555706135057911891554573631193691066326908698336322725394453302891304277885517186393470762893946177679907292750569517644290849661107242302742876509237777885181215304633968470052129024981583413686272521095820880564796384514587057055698709977881918637211064154586120973242722969225341320253319280582597805956769108517602074438692710356820959406424041135943989953529044869538689585206563072941424147064794863164284690549527957718515331832885954359448937506467636471038511200603116104759456745569019400437376310254953491115153013398790577920654690847538476905754918684068910838916749787425971725276834892366970809925382514778130839241491992311338660315821307489580310174264387602655896867362074253964159237593853974930636821508967308087098827331444426466979471743710960309918169686452232172318609238675643352299497565885130358785766344553909908530180698760365896840581022633089623136073021877870020153851953063972854651703748462921302627737459465713623792060806568066677006598507605869763067176797455903695489312649577471681883675759120489181914873515262862468228033315347295274838417782600707970137476567936907921505939258523645421675824805950063231356405336633322733235677971083506049934184396066079814867578791095573585053321805413670578278290424654910798381576091056560363497731917803794816753763953799910045486712338417947929183263903450179156123681914926829322300826593241593925186584749949343180079923845119751155344681536492887489783670484347540096873185886640767452019107769492130807486145455024687669373807687088744180868584210521892249738500750499823576813591265541571329230957468038866389904643649492802210510169201127767358821829542956755617190494774818990092905464739011745717714776118680746416803559783425607729604925404934960613545473769234080141814870001665539068994390394606664286618314940362512304014058838094572741702049918910856937032702863265649680778282186704421199191104422767696864450690206655645820231033931038229942787333323462368155140306529822378634068126032188945856113264728569585164971944517285537801282876091626769362152760768412504218034508566848145437762804753437299323454731427736815285667249585094947690471070365116342441878966109361397723708596869291021868575135220338804338141918976416202429559614126659693160694134080013998434795921121932105470849464071161252418261508168698518730032135701457359014478308547961312085153260884124499175484606264995141737192687066158510195850409778473784279344812230998229561779768739334673048503590098880412076578425894937708819426015933768815911391828705229117319249592902322413952857454605329654263089483751785922455506500943262668212363925369597731858685337101510977027275976118903619163013353885547421524975649649536646122346482361705563551633130102326277858406952229018571265868949782879990924033602217128908579670307521694840070933042557755252272623929412643865970926096628666459437726881160004235059021264459950658939961693581108862492440205247872759990912240915490569977628181450735731257237950241341934769711687188736784716991964760319840665461813041706238202557016334534308718020687918951915687834311193823074954703438197506407066360456783627427603395411783443331404866201223355077386613154869538766884748229029506240685360639468307734224358169666487835048890705502250126146169581230246941039849927436269022514515550080681446630033513120259954609506720866355340878670624159617861122182372662963174460444269032480440279890777991937691300151013201982928288985363779861267225192227399166645834628222531140976407802867099055209135025142629195640205485405058149717960549234619301770745937365484956962146903452347459219632304838873373837445197056758235859865409483686604232279974174178937657203777434916744719664351855911870232075980159930085545215308956859788911130203340280693928942486182798291901648518717919292307897400493638920614936610151151746242223150295017387488395177138814195999080374558332147273015018906948514809169298612809003537112848401556016020977441775548964359748893967210491063165183862909728909069446022317811338345082436296671094911721184674232263688611388074111907366758340706623628369474391698275836155366131642695232521882534321364807500564764892502601466601529693484667251282586732724373431825612163690289445454015458624347905624507839815502867424572302077447572371015546759449140170221876343972878309170163976579520443803913993921967056282201723636059814598695171728466346954377165810445905792027686020923965189050924960162616959799614549538792250583028413016334195491493391923858104255917301583630960880261797207402385391987295131209399055896625445450889304920349136479160752282281872388908209232159026766071243128204932967035574466975260634009848627819562546325162788723497061169537550414796358725440641837961682302826965313193914224237952927953738503193450389089604744088406904160820550311415750087669970254291842818838213182258609783951273000548959890482834171956137816204347961374015365178336139389176495120189887645794140861461250759329687729445768391290663806503757325835211282392691278056835508799629219650525553984642328049761502686952285044991775592491799827994075621553234736193606698786375867245371890420052098715090927703766837453783189836451149141004225825591618529769524550293801708223205540485570284893784384704851933602881123265273955198841427579440067885627137090464121296716838535887650695863669274775725428074618602063823106350693789970313623144382245638448999139864413650351937410724434163411610636589398152786730600784827299056629413177601246148195735724036474844857357393645391530993259967018290578364308644508131178932759926133434994613807444557521087684088999793124875368597561918736913711144367534944131257181192377843364507339007216123911971377371743318767028600997903211273232346469077558233179485069679356400698168482141370468725253868276345451034119037658136444795522506941849275042779374383558082913189291831617477345052913844422823305983230167010748061293623805188240365396423427388321576125750247055692400578284024884984013612623880910959562552390913545458647803667699327758607523804712017879346237338306660850619595200948028493850582783868886368212973764182345864805881535171191509920507084672122756520421806704647850226650722765800764250725599679038477896670481690875543896820808965455345650628629750585701070680093594400560448965188328515496826980093021355323340511679913187660922445870600456820333877108928524544480526766871140086287549164388925703709861394660092532967403528911393801486127118524248500757305037053516592973259147557623437259503117360152558064240199369009077427647259279211004146924931200935052802866766492930040730529398557745739969647164299078120491833307518008540932806568828682200605915056621898160325579043137554043952754782788092799723827353583980304776311756176858104573516294128072722521064391362253784434400254015090802283440563940175493631074215705370427071882085696677914297786206890350489381822756602599249486310720583424800435901254781167267841359287253396144703582255385841414290203171843051847884531993804308083427924294103927934394034384728725207593107057952529689606406077317803799620865696162111327057435962624854763784268612875558771003878210487811723936609517142976932175004203384443667388836171540692411825193328728281391459478165798887458485281313474001399715360762883900974452574972476886410324092022547170369053721603416561669245897645112345293626776039785430354746302181107553547442834071740512803375036938017606206733320537739831347937449374889003121178124136191841764447893128043888231041350209365144257708233134269911856113811902745911508035360177582385914759919269764890419286897705311094952005472641539561445807653136681735312067224091798215767065957889398897897087295330289658296470922599049437740858548297300537457667187273544643878320686672417851496933590852308694217159536349002339229356410226466688752822866429323681770643186077341402018719294610704964407372575388490053157649794838365505616935939043420772043073065498066536885120352603007090053707758325614501278386422080988942278437727429547986177893847403547892206929123153741836033623885125503784626835930260941610048503331500159633409285321332054965536128382904906130981855194254412450804758262310352977829790902019632325894274024884574339187928226498871321640612968388010036904196124616274204822214779031144549298596301382547796764052951845327617109856806997736759694276585013485765879295569023291431060818574048059732254574812058784261392585808007291712735592499032841624877345247252172463361901025377518579437330854843646779525617289325600762544028771720095819760543283532177142470068855985927262499962428880849548614226352917067078319503761306298173896506958126548210317116310000632347167619424999779688271216166704138924075648879347709665790683645954230989427982054459397833893971108986787947827710188356334449866239301044277099230540863762361140916240352476426794549370704107654331353723944429784872061208384868160688417128925017890946408265069572728875307399915023733150657419315765838062619972754006745391812810263464234147858822656758019356857154510330626205044237438092286860415279388564932819996036885506043659858664519499015033671403667707300266171261124805593093517986966085113481072890097098113473538698657165452643986372596057143363814938419206289228444901301303281660153071952885900250601560904191452612638819615325065343226689733427877602074955601438510299477660005160933513814896838931565026351391490777697548910065946781064207890770221819212285748879431682585379235963564819854598315170393868310396584256967879615747960842092373356766685749200250942468854852176508768086987656194680991384333994910728879369481128520341137116322581508273502525391139390165730805438984518990048868644916697536608623450793812624645035781901718586841035272435573650484856543980219114582014646341499285445063891841021576459492202152722205507819935757607309580777628723849483528013449365318279555798506466284811060239656397988316539173822574266632697972684011319088609256508091155492161872164338579338026699406542628820350440445520299403172679552308824280252406250740295542612936435087089270949103457363570367733830885518015472980439911093241265472676200141445942053340595835298999923738754032802896557575050448148964387866922024193664697933782209359610970839108072376200697087275480445598025462166595546507630310575955798943089767964828447471917444465161561786324573122757638036056974725984711462046272504525302976129566442880644029377872466294293504490640337776350599091622513691068774031784312923739682532281621668052240563299607856374160860046272490550927009767120770233576118555361550625743371213644186741721060424000917725890375295481671163977039334195823926130193452483923342835374690672923621889816471173285567408107918710647121568328405045793297995716520779498293749695832989101102731082463510450660329401926819382387539743016783255251483543814583474840689996174551421686779295046199335551282069183795184123855240341531675077849274506539831058029356203069697991818096256545161248649959004241414752953328939231111219952599618102383201992193100688805864779249569692110369700774130930191475480340307664390282562217280442197721064455569307290282726619561925350344176565271317293825862962572397801503843201469432327519177768601120774338665792408833672510854194856334429341285418989182497575893335734098826048258205213511170571902024516372606010489460028748935300466249280108524066584912641723935208247395879452850293596604874140312893621218646466591058193429472731963892998994167293741380358216746420159476858382277847656497073141107950253110936626118568870115555773253670090250005604317373412005906945890500990769749135602915856720482860626796803135763564212382737963802573378252735947959959713129731214909866614973994666641005298159705469936786395789456193418940572419225991935369327654957862220460456260664197618332439971754789815285624509330243747704349193511104466234526889994533384080726459611878252024806746391632551117282535489103479467786521109343231481668199621853175435757312047069188581644484757106027117548630168110566302638221009459112970871633851107775922311083104168920747982431652202485840249645037126647842692490448171704820554279242879192115798795907905392690869155587731235661863495211498788895610344235002504308086916341800641183228537524138188236654788054316362405160796752616612719215820392113700728931203619695567093853050202275308027950654990200933707276723744941585145486699405362595052294069125890879549891814235975186445645783243869269091017308053984945931920517222758444685921032033694779392488201525047849813428770356457969892178585991067645385798372654796992807153100847915346095923049648888864563519051266574620519093628679269276924924220774406005557262660069504970663375351617287838579248754401238578794223592151397721017013235396668748733399607519851494400963492987189411136478556198299398160435907368959545890156031602052203382154634052409940218178361118256787423833647112859068979027684785002896397846375311223325897307977791686420441562179721711415449646951612441998253386018450216233368378782358121257468070066991166642974370193066346321748325971094673786730474807750747294275366518521643208644010216224330162197151630031240848053112031771445497936203484301774132408896579205221922975666765468452899081879816683912869227665873937537278471278572984163946215748576805201712131999095251970763021282452265917871780934088998659676153818639852350383711695584092225850444570557786589820319093697011489125636413691294049270166272291283476573492918081009764252633992293019289964832883700670387676583239144811215734810342256713325243515519210183383191032519785674305391797693132135248265662595000825652208982264428077330302753116596959031365982324671783803504281362273303209193451078831968355394059563833440786914074351350839168266371213180133593531751204424426315847045512242965851190314188611720117229787090854345396314619747534942312653540871843841997138252576667241842577368530686847902971316748776370621099346171823027909392370943307148414008884644554079775611650629415349006881709116471381962519898440572238284524605730926014423590634227015630299517872897568944193785388496007456654413099107024577667925945770311275149590370694194474713303645874513469171534756039201597417058078884707502780823188933211893151756449355830561334927887706436872428767459751621478070093249925775337042936906700968531234233611693287556649635256208514079621233748262325934104652154141363182964580231747343415038608480356367622257584909859791835492058897360483770612891947721779737395041265434329433874047858525188508594933927663788226354379815063080276626774180759384652829412114364095972577051479833208654273571069519939576759530442862100318009078493798010208802184600622072038748485845018841426757949672155933197591087607691754003018823705478932634001796868427890422542488485239967632314566776273638995519783730904729190111423083963004178875507082280302333269864141202788165897502846564577531855205661474563752436167603203026940147231687517985637302170598454304109993411274645594732109334952280463743205620189111660689382499187222246767155317489124234241459432874172816922102650352027306605931537446984183492377561067724932853108082103608031299375441957772578172148224583507622820226653271518508160803422809940732144903822549889736628117550698516460862600221177695094988496183163908703560144914809159740590973214808188377469340952604566150921479728809711134483384110419640643325812760514628718501487183875153662327092843470033133908015729189915901698420027075207687056459873140739527493372911246671891045536102807424116479175858727101040498872794437754365072860212360523803842260611909672423281101798663959333211211798930399943537501962997583704953241442262961562726176765670217892494589933651226111403520320729164526579145775371707742551964092394587466659230730256408049264871957500209908593452917173938289821099974486049405141254522732726168028396831292128731945159805162895587901573053691880103124269367582591730660257535233589092627391696193472659877001056318352873290198248877641466778000887669477385798370846569141582113176512671086767964068831590749859648791928434471195982725481984309045888721098222034424983601158509707932314595049523093662894190839800897103468208578543205809211878100003591685499129425726533114870254807279098774863919586619778665970852445191846355853114300019922525243676500828010035524564706883957815297136456864258323535881565969644345994970095945681121483788484915240099733474952838303168078035686683904100104300365170367803715640939517969102620099727643121219036009148612875812711010615737729386276305709430034150824851153219569952604857051600378138881769490645838397700936930638951598160326715624072687765624025217104867171918253684255297308480707449227509816660925803691564013017611329256145567744705113972544640624290369157260253730029471865839981715801623703137090126245832360302671007832001564133791256346018629790662313130296941247742076019472753627065939772449562100881140057302945411358777072618894943869940808092299186557185880684226154976331502648418513928644077165503534679845871464615791629096607830384947595813008114224238696382213179869041797843688334564066916947242721334841443856313136067293089127654681156391930955740961166348186550671601352638090072749496104567859370012758824337369947946051331600720596983289643288966157221789847311923464918180669875637805780292478967714236163478222618202635543012263496866203566482783885064581432749087082981670520234796104428389215379385319919574266731275755397963035695481667419030728951640534577314727061871976495861853502649437295230200766193150798819004715458366125637483863969130026363854461047805613336540922317852975775700446029288369485525956684409295064506522949587776759410969344006377769838674201571211449158932454171502410234525258855886291226257804979391890279752249752270204181816705706871773954662476995040905807014117618222811113936109545303575958682202928004513093251689298532521107187028788151786437454205481392599016319637305350107639788297228634745826884263022828497355712064225135530472858901671392978421918678099954297878329966592481746277391648262948600758981283500609345942695637144569232136476913099998933135060281270829219157379022134361818565368985792052896265867627752707855988249033365959430540555028157323221180122932179583130234708423949084814620459817229768765344679180829094988329666460763630958811188079718788487738865079836153783881740426348148726166629223576477699604955003023558010833067740918366258654144491910725661338606073396919071585210150835214742384588531502648155958133028211183975440454629600244975263601263877240067823756893182974270271952210693815407770164776952287673072039609132115053510821064266593166997541001952964609026219083141381974647914589789995910569857626792742128471018312517262559562488347551481312000045759682348120137840226729261476781844251417674413800569181713080190946446091885019422024297493449701094239308182771543233941583740961559454674238813483672539429807159137513478705372492072998018325817174039458393936433708958008572861319420063213963724757478562102252013028670764144029742719456380721747571151059404172953179327433156662660585576055863118122228920968965412959304408202855780799449231355656724739157878339071844861552606138522679836314451628192970874303633840801681726483597571297423361225281876636440170993137933371168152743784959760765812420717572617754267407157043013376969918095691002765531608160901075751269722024373966272238856226966709797101301776423454122332872687581888230170325886467991179346862269170419720761875483824333544814644150489328570105035902152654532704377457710313483264558550125513179017691355229449112672109696974898951305417206651184371248911261954310945636135654150712131929609912286289229199226293883940885231711048912506142989021462744894088745656247449610503972441216891549148186821070131793806779341465390437450048111716859050601668556809809988823661177162588071260788989061738876828133579023132831866168242824799458834220483050850885909897071878783701519808222277421026994682062549489350335952303515767730557528442288715272030707758530659726337178501606419942007487405095855131138460933541422280343158182801003809824987356976324160999720053477536404483481221638488734421359069139135498374352447635926251282333220533927802204927193323265578249897921668552786863249019542788353141095450729145636142938674090391339641301160113318502477605411615398061324942190095178685110438195788859027675256194172607592305210730503792901408247395431235872652179097993449298976493385773192565741600355306410318697433661332155826937303832520744207692437179057330164980749251315244751436143850518301409219464456022530004947356850070231699174657061558905531141411141645645408081966328899581077483247257876706156459599728232853654077031592858194193854833126717293432921914990612403490071814312021786673317951599531769580471360303398807699201468110076612232913306557062077532152725437132022340384916354345257015247902044178270755961430312926730243290286788830222858070297192556646174514599160395683012937484018540414041695046787806116397846766508305221185262822191926582649075728616182872572864973558129395845736736224156418457581642067217221632186728693709992010222572894166125342401949045336410917497058723811284593130255547251238900381764482106709702468444215262636250829908451862573546754842470348948037560113795001967845049167249531918058332256380274391911706446559109962787464497653778168089034682655057950099999617489617576879530836276424519953253264551105400339762349993714399763799337926225768233794637849842566818052264741767010176331088810258230703582227677586413766843516639085408675616014132714480247035091070307346790490866877268437013969173771601034924233771701088144512941044524734612562932381823233121754119622048235284581427254842934698143833065199776756221964982156850217496803695519260338267060988614224538258200953727804935672193021761715912268363621490251549931366674360716358267342720666694089965952630779930108054133293107744873215882904483990885871113166755287683713486190143197862733919243463792772251464123938606008695230178165339256924112562705609894123266598760940846391139808568356575853297270579134981858176450394983499824989232276443445436284261857828361065623536724136798566936808032942206304014133157290618943298191277861204186217180987639092796642121952754077908923144762000361870801071366162632096937222958414550413239010585772690344652884866619770167173378826280636385491560609898927288059495451283358623912563944836492716993939716773148251346731762924171427073942790111293324451747152684658551022499120225883378330505692829754562748476831466393143217644308767206265623576219213035306627626171398743551668733741987454638869395070668610259846375756789595725658079500250458300633233447347883346823661691877215748130955650854623807459623994316582727961455241536672059815559000456760921455053320459274651458092068305259879469359087235705765181608675601792493400553639184857170031644996875238739359587755700991130668860524437577183945515290163588957674418984918674535708086585713412328299311976258027318313875588442566288726809777458916545920603719891632636541833686753110420687974753124126033472398140514376761676372869092555749667523399706360193017684948652356565026666886442703682868298716307531674478112770191959852348447972018999993898435105266292082435050609911634094541713759713838245693584997675309122664775926086829358518302490508847191175626505375089895387163461215039945444495725824960305873175132067548600915482576186112335145819414018328492433593264478050205605307432342031956582216710069813043297772166023911031073942637888064264670947141794825965488579603949815080917390321597499098377987953630488641385890802239098176803103908276036357248828010445452303892798713703262297740604231973717327062262900928230509795665234961940424021487839414349491362070946888355768892611626132785038679612451759120836142656038262897703841731849672630530505086009194697382033376523157478804599301113610584691781338722889057715004070756329394143298811546588193897410186116608486384823163451678964161795717326494776497337384833605743918240715806843175071699520677891929884891196627682444966759469165664561741447840595368174450404955350662314549869964501215229660956758188593522787163420581137584466778273019241340785373979181454524392516637943795305532872745194729447268988984335002805821543142965633416898421961361618416688397311550338592606574172600405453405911071273424653227349357579307681452254205871322980691965508698659458561702800431984756220091582305271171207311150068981166401871406393113838778917272103884924915196326251843177726956942537189032320793507049191590993711445894289422721262289486847904121280480786471742286840715928980406331167662265888329061173316446115576637423484697641686418320668597628967614689844112138311748355378052982019381849286304145762752390028693223612738232294704215560243653442694217685440571488363414576074353679876985504528735638530401906556529573277690678685131022748828333205230142391382795191008516795797601764843228143431763469004919112887471284693427459114888267302868101206242612589696265423637890618497292933424895365336508488940579067335390184502162941230114989941428152892869655334601385388206135265428850482332144727294598845968203240600998535037837780976295299554422719671411079551111763536431080164140691256743432656411317572109957203567651028609439474213960355357749087238592644537338562344964734178044552615402285790115712834748562246175828954850397740083335882537058528122503592510366423346482926028635900012273786038553408812885786541670016197098684600274194369823321679789026519145663939404714043122953805958335876295620269315909035887844514000412943028397236775031057119377881698341313669962292012726081357813118066880359763390378321008137188445027573065281022013417748188293717080452963514132666522058436656674123826441172420718888522992451213675428500218592246251450770696523176623199129217908690023611115483253131620838995225071299722884027358980710388755496214865891141881529535507267156278926897162383612879453919551153005880452307777358649721819518357095991093824794585490726184427991922258844889870837881783000328201440987667848607159112538718735146093928449963312178291314599929867879537656769899748155672899154025541272362778542754108441746560637494488617341812432548496482304545732880407721664743427375589337862091004767660223350123145284236620912600283325081866158371271866950984170536124085658586907812092902634535007016014751410091757432403281731941359538393366836479241311610028610955476537451231565914623051218264326091991089911141839288857498018840759816911542425722261680427625307554120101996886786767415258335025490450106367735375158348556144493100367361089266301334726682428419271865093574228658946331413988018676903741414017140080749736225451443412422618902544649745586950110403133675041718000636344977634369551266233910669070979814819699557240148306746059047390530063718927030719450086920625591106736194815110365726302272334171064016280795346510203613637112999304972018167034665799558277761906694716456423615202656790412774056925203386668167181955061166434836711345739321574149928415625328421724150009841907448729719112952618609304737956227756746885497314961661515906463042841877485489782955220727392757769387051806792537462122427713397824814377694765361038243992277839482788557211252552427619169977877052359213245212181432559374064139492947165334587705403431671200176564318819194663952414172969095705892918969561749158756910690285483475180286717436001719372065270030275221901498816279052505696913989881719876860774314786465370956794347801374661325660340344122834710087196261557251136141616411818511083771569826123910180766681289595488178751598867817636451533517080093036856553785318765776123517916596431541028606507448504504750771770902192512290781518354502166073292610575257261231150184025897299211728634351117765635111994924793621262900645960112850421296957729838903813013856568097264043959317250455733699990130639416109651226711392694232562830204196450731445789694755234977613687436298497996222788108566963800824462603705009438243225759726242529395050368400080045954123940700924182402274094041194381060250202980328484258741571717719866690609580338088269654464048689517319685088869258701229875087279703955912863806288968770142855963034213429072070141362257333472490063563060977507671793948370740101228934034858728100313639540511018763329640590464774756288277241516272039114298092884743248341402293695310952044303777702580561239573811775178659167465950874430917956727892034557182640765450399537735700257858678113669796076044231204837982629084086620493650835526410727707086695987963399950129031755707083322705111281981150041818696452410216490446926780259534355702908945577705750104190454857091941837837451477478013094703181026241803961294821381926775025750944899692906882302119753962443229385329488619314182210605857790457758872840114882792368432431509125045085747923170373517182728654332722540663468069563871930842242677665073219871978296209490581942089500220515503245787053258225387426865494577241304969626907478653228610892116778872693355925326228039292064110378080437995059228420135769705823550958520776456799002687600603085055594881185995426133542975054550181708331030447393856201774013576271077337889432904715482700958775960256285223929938719766756848692795588219510180435976997840943093544179836765060632158162807625173170395706062892411794989680685526670486892590702779360592281349424356128722298376788719853673907637067835181796787692602989179055795530595535998961149962352614662376456047274636285887774566410091646602947578409436835238773761893854252238897904763672898969893963626217361855054799755616485424569947625399615199089734725621383420824782003243556181650895743215750979045541222104816209213060873069019653021466149709965820595561007707895915761787862875600588431299663824817377626218486642823746493751012358473201492049680908560741338166069891641245348159235793651271309877501428235668710231999382170575699527741989934193881042351261736424722796782507612201357490368223094974975353721266096792777730812726954959245512946112885308779073076856523754976724169631667360879571534834832961707367753339555154280528651498212203823694028101301402335413881296396229667613711740116256439087279726923368290852547509156632693618522056989178880227005117632324464974420718331285987966312377600750473610774164058811230592244235400469146935237965665809603239120101327405341308804840245870983319873122583394672064475313068079404608326152676646273436563737414729852503501500191102263592537260710328841432558184463072829979749236078358426394491636316350522964165933530033670257323871704551672709435743120816375707059060345483722578293001264508679127060752181568292869030654414633611533575884763703577938685169265986641297545517230263312038846378423182830030887536531830123521704174744763726978050772998120170392460118457579508889145439666391494798218247091888509977448892140302751008455749861761760458744993346556663426079426139273336453720363887997599567461620774368353910439112570987791329568903477494020571162001212789885832274592776550917424376963852591265838366499616894147088867998446495921813857873738999298866349972776306297804161549818410817910662210352900739563160831967459651305206999865453903324528899877922883828991489994551008258497744472619446579044985890510917655682449514467288036240139544995866301595183302302147981598595949652225994508356462971399799679700536717909835614951395970875207816376763863068654751889696130997197554845970253356164958590526240382787928221781920641683873417751203830615782180256256474910319553299070410963897877032595052089695246827316864557143985330867194041092164327326212294442753851216223718199094772021572807756067407471693558295332201762956328552593827585127913885829778319672819606654053400587352313643676516190989082100562712972127284185423423676373345758401619804062721347429132253986430651659298636094876499221671952237438205181506987332985867471111465081573031869662977886157484172129952636986545571306379478513021773534766159303947585845912461587123096982199670236595782043810826769611863088094620978760050311642931677346740586632652454805224208095114034449481707576732698220942273038939456647089591816021936827294509472980949597644697886811902515877564017779804296894992007111115951849885936142427585246024530295040880176802182060489737556758799348824239970569246271114044487866959379220337951164404778085439524053571974909783421130013400221203358600636291101021461774896150823650420257261663503671323953477775508175969097379689741573437982516219398429567435047921659006139448052653217068073764000992040908293480274265390426511321891291977603917984695694458363878428710412790271056272750961586565487799640722832914134626515235687556958381796098839671495824226720883958415572481981441850292715612576505528343873208254227655482035577348508816944056287770846742112357660299877693931505146619420577366612532769097608369907466582234043948631894691396707162967731739641909967242055001558694320069194900562044001228803731602682144090201751529651165590055993769855282871631099753492426799541215741850323354774941161938698401696883163917729832051094742219493454843205340010575193195487366177472223032586665604210118439662670400507146525482900834103417385566492961563271030261766585929769299727655920280162954132553179547622145963444880688252471283748595452843195451884135179941365998368713324558799333908127083440550557814292938419614299140562907852309211980027072064789787339157644680201224484019351633343991999338291145859559873177058014026233618803243723660155711644377784289500223819100316334364043265278036673775736975663736604785034161465870751926096113140369096724777008337856869610501465656297177097959917154998683091417510326731577708589349915277381692281759979469045651550892501752953604119472477458862343426375541084416439528385738162415864508338634331912646042368096701714496234236642102916973825098157097438342900547023011964959458006927672386732679961310736162592249433856515612753616533718605692324396029057756670059217890079961933151117571669021255017517466851864921247734343153742258419777215661851490546113152169152227657200092010275380500585604466605978190918192392305297590427790269265719213497161798562797592948880669358534254652886056565510685994393911543921389355778444159461327704330965054962160142307371809027472852984237808087142940522957046513760359654145388351488932205840657130840783670934839678307482718754448566185342338789510762171451203493710263735160298401333316090072392426558201971821378339327759598959291110850771256719511483085892635426420268924929874232787703601130921450310064304343056798821593497535202965646482963066222058559064237535101147153166977232974704828541443344218087982678983122674829511913992721134459864062818641598632687078399266810124095843105204404949842248653653337144911465624409577918227747064810050007045106519097551507791611535194962866444967820147177505717134346141685292615305510421622544486278137658986781654250394898022239896230877947056190740866453195023299895204373691273417021997569662823287390860096207271878708229262097868861954965113091161546174114431643620396772648293022832463809683206188647322263601584159279638651676393152534089041113437251011677957936473081713858786729005758036931252163227019849179518653630815777148257493928802339089667956258704106565270524686714454971759382139926149954654316134675933822340611754976688872905832126494726884490335164958332586804748610691310847844299612393112664899219173051089231936741104359463717983086812114939360784681087570677014201246384765109072568733418395199274919570173108250474183006389644247790372894082621043262682727746223792221740554762289129610354219605420141059376721251102727627252708784876442043863476214329583461369532425438913070326443523111274500493220417152571217559058898291127486668959347431859035359045881921750066216941395243944564212183185145837375368688519504223163778587460016422606931434085256419329393519644111279785446472506183929435804241584543854806369982184249921808850128203011228724377869584303821478121918726018614363931368272616416449572587376185769873778206245810629396763696245316562662936108512545160238057705077047231807684226842947302224540331521646877070537601033027522400874167647123799510953645740690435358770728980526054534824491533304435825550222688159727236312481523391362676856221223021830946807412269719240434014158023855957691741367452915219511174505131150662826054731348916352909695395366131227125062876607843419310104033411266064790107336844024146143561791554594429584843529976694243693055967039824616612703420090154586981865132479638740102786608621274240351884925621379376429038925383792332820559175107592083404482265522567924685009868302745344375844602806339963559145717753264730107090286871052388983145077505071295575079548245210954316278494668591651651284998046079676966444006073895141878474637183822435137648087987156873310322343882746777121985735223706188842414175540714615871584062036193098400539882306904127412459394288434716552304509242715395408131801507918627866159829077180124360628794247524110367347259397859976510888053581185266214008256566430279531493021211645456713883954810160214339349922378780913882675578380790097444754923291373380392466770780050096156282619580668028981984497439285604347056140087910794891176084017571397593037449319131114607184852234729688247346455580606238698473478590666975431691900043626353822321133530032104142446751780081507634953002457131782231045407386253421785565656392388589949155980279665941214043151738602806216256979822495952283002264467483543180677008639697829866638727523682414461919846780762735232598867342185733724276589093277433764899356728645105211415629907682218657903489962394710895492692891219215020296345208791583350347781752266796374495584157972335981885464396803988271140055123777293116104577121738607224282339362765331692506684627370020634002585830617774878685591851411746045143556919002466042528048955730103315956278328918081182150372237052616918219013147066180773448396113928617438831507942635575792836100263009739910231677157063467702452478213477615380085748768151487042805795517861212415511171799769717658270078149423536337783910140395274346560050891019494947048322228930518475398361493909880833754938872526551896291621800113249509569131124306798995900663000453109039923361658380359296472226929350051519426748126575329571870718609199329524955593770368440378326993396733867925575121338473781546213036980766062517955526886960997676799436691617199816584901103102317344603858314061595210601916296390904708451182959241059987434956318340960833249946831817145915541258578842752225632610428006585784469808598700964570686022682260701238652506743059993154378305317349641688555371242455440614379962299756148916749096279005791320367466032241263244617925015132763121917926118767879211294893461619705459644781590700066724947629606319602146259202509821448560902335129606232634056916577768603087298363084737958243106321221600770140732474094917152777067849811323599166617664689434826088545805734183172452551018417119549918405123836220529544102172601609609438146706966539250616909921273180087573087352954615825283891849442517456029610263754281585107458438608529330188441675620563164615143234901870130877904239663485458738509143228908206692445911675806351324897941152098948786697670071271576756069337797836975588817390047380365944891320437447686521695497736995149125356343107846726233120294531894139892357424926653509715015086515766280336330690635084147617443945226317684319929011972839305619198247234794996457090511896614629975388942149890379192928678287557397112452931852266580121955184096231209916131136867499329308772203020654838922271094511799736508302203440207848127617815791298144540718864163916540362647319723904829905270850201372563894573054049015212119665683315587139535321439917926487300878168605095818998589570373606384340144186144245306528389394044885889329867111178127472038676959075768648158121564933619661017481646561343381627126730007079638325044072594563389476641354279603518788326711975866403588126771232888038959758579612214297491794103706049845651429760959328803669167052758725013123460893895361181031703147283833048221899540340787886000821641727450763706637462286509814811570556655033276478991853518580043384036233408360902950543494298250294653037196260140891163107292228162532586339326476740751458432625729621358757556760168570425182158405166854527142067639405718576931748275607907320737405569629372904561649815676696398332341678453774292914675364258846862838974467931200192367728694696283923019751347955874493379235459390253920604758869422890652569709417668549624464817523014039076605911173003181052250787277055527023656074443876415695838485163287283722072413371061910090441295431559330341766720179746757797177417265259189296788557779224867201951838568885183129348845616489276722681119519291481361606328972194000129456178446433631183278962056623894644488735816152095668976594718577690803119245575953507393081545913629594772966385532817873623270008590366512255510859413667844549610182301043323978723838937063097689791510328272207907507393566940733319579455724791571343792939024404513961361299295406116029222839342056900162513434493212636197702971804417821593183532315430772847651198524798793373180413933675140182871136184225781432594159313442862503872786774410671279440734933800489406388852428465804826561043564626647344697019113870601347361241649856777851431477903391299468252922832841332634424618370801545059264994517040558748682838652629066169944919992804688941815043401074030908259243023442719804657663947909498670771355720750959576066705838286441957338914886179972632988855264382224732066993608054891431340563963330236647019308814661546351275627213910147887599312177662019318132220747683044653055074726082762458089822687474965940476975225381044719877175011247385603078938747153182002730527733040675300100234231891735641230840201966030553137971370617927037515596063356759683921454672230018277088520279610602948485117713253562523307913654243017652568078753623106718709888821105168266131760180733920989740324965243356610838373683996581513084416379357483273449416865815221178395605058164038733217201920223441044337191066681092730855635947698827424321228244213234929507666952933743374958587701311935624713016360131249365760843899550819560993070784199217107575767823828122883769838784595869258135638560671488695313731976166733205625933495655353468597424446674750245923526423206177347309079506955169527424619869787327781010208322342365975082747723165280121967886748851401899031435135507590571496628950492949276042954032233601984887138445799091112211338720509063665485345917275064119407318883866874412429495063359756693017963998312666724886607393417713449236489078667637489691016312791861001991123372749539988493506018586921713368350477234421811756328558678315838389126745995455247021162944264413694875028701100167309395571053490091365234361702043568476431263496929329134905701597594440810835750096031303913663629923660961943351524076767606475715005155020321987210552418095607609108371385458182196945016555700749970939075621554882433574250394168714336756276189109748426291175520086950499486945302746562709988783101338561804708283807047982809938751039550541810407070764262060518292748464854132431130573009972389932619278643923900628994062484798518412293809953144355127425082121115526081423834549189247901637058572472362893010096684835873656023579605547601731066880577807587660277032599220150916405582370354699699612168065670515156233607889098038254941219160436000976881198895665163496919247769687312484994977177032088924120574475197528199282581060026619456815180976341635150744424944447638998468696907540240420631466676513978790279961534206244687138747415353039606967897203325926133412186120932935821699502882972565978517795249459849754758251300197409309755905982373109838173921006156449998007038026183127265643413398997394450988228456137497762456179015371975018797308827871356455463302059319603833884509972800613913895250098498885996948994006670136483337325000799575134089553604582886156595564594363295486713101940588484508412624868933531188504589016233076529146262901273944672824367902237037523336087068619277177340617333631267691790956245656211094231789457525248107369643187685004509172986937360353765196845338505369260236847329731300721832061283913049039231377944469694092113776165206539499858211667980315756950370484202007393476382838311388137619967514091502549506234677738187865049857868348423683765922918583850473900272209633805364016636723719792107119415655403837692865496919603674075515532659939312472007325571415247138851449828753829424616967397704363888416652880523464859572209611236556820912177154580303137489335553534651985753195173807393590690458408548776189354122677290242015182458540919739677970038749370817026827401824514870662670360172563392658547562707999044401752421819877564080998428983398237469223014075199923873468882110262210002086796907564214592430839014864693151999342914912301732583808279136359712965360729967402196976925554937751770830491009574235692467438369211065186448074692752675796938937550386425067497876398417910038001547428280220925213617702213064201055930122308452465792193725221573197090433901949493015417865234730677728583384663470074909860999887407275150391496307743701282101883857943388400450921860707485574540139225557864122622549844146785563202889049806599226563218790463038967928042301840202432453364860714101121024441325461929427350689386617682624566081522214806054223747264824279852601336554166789046551234433417142676362976020978419553417072395146631788012498918660949388361862691911898048125621959606343894624045910460193484749256510739814197273328225718152658347902272012511512043187462530345648330070332130853380895744269115925044243686316347698183972438243112740266360170511037982835440187863989764395711084923722349306692459120310813297923288035300598117037678336722372877689104468827276988165455843461300027932670576899793795124693687410210285209697062098126210472601799946792664090728782548887189594470083670250859814794524639668980342523389910105651485068743291178654730212393207336704284919661135690458029122558086312044348920697170279763169603418737475104650857819103747818735521259502078062249282927307586210218522327277655977851934576382314188858011664796058390140520392903861440422447401201554835339579099645023902937276835380441303220055571374726682000003024665611513910435496125872211753130952434094905076341049409919042543678758772947178219284293061128726010717067129137456450076381970980170857041662064018551360528280058060520706793791140021504676973031349401539708130426525033465492276926634972162906009965222647723514656719490328808498916336087930523044806924492484873650908360068871212981943382240459626869874414806104943883174243565739100230328626634068779303217536014672294929115685068503239065782526301690575261904006576751075808646015276349014577413484660176964136417469018169466441150849799739830844940995244052898899359080725604372333980288702038466522498126452261999422709875621327723655508821865260961079610254557180149773059304826682422408098842624920155051435847359861246508206572780251898036254135186302575584591005956509051493278248250263312477524284724224319069846977779061652562757455626978802717636038463041623927508560499386559029325313267665028546803114462873550664205041086862382452143079803362374913815946183906458002043850350579534030438749517415185044166659127362371653051600405404802970467556181186552674479472988676453962342412202976623513576528871011508992537935118649492014249858018469846903696354468185743327331915370266741055442669855707232954117985179420210483447020651802341180507985644300747561299697254733423518214017453065027981610712746190599909053335469387627260191656614328560928146251258819938981949707370085537682876868220728358394981726447098547126365807908693468836579450567145543561614496537312527146860463745554864667754114117872061317973266097425058803651565594119886612401468143327442632846717704107877626097317972674672700160089621208778154299095407577404015018737159287598976360967769266071449153631440870699777026028296202705594497145228276809804076926549398413507013587774311496713406805419220705512314204044458016343750812580571996584093790862480111373302289296313542978887781336920078785247090077313163383463679321465117179460335458527122844325848292914309437176292109622399787451801046946351848151614139029168691344876186553647429691135511790623144766718242315584381639157122849230390468139920338532728791488730596485742690247038940799590740367123201045889209368619591919164018543522779460297473500643611418299208699262573031450419085520246327619857321796295811583841140330621076977548281406514468224400855009333557372047066197811790573060161120582580025501532539017683367589205294642241539640964827115018341177397048854616628709469009443009040754393073431272808587383512695464628428874528034231545372338895024838504016074720690438853835379300409923875466322695633205160378173889885940411722668065457732868441390109442428084530609252151260608345467449615566951475185302100994880092245593197262680586802284686786238862098844193343482365973700282455481538125309876727577079786401569846159948845068744247874573973580151099034518925414861482220908291225586917074745169322405580745082919085576285943577077593817872105932803596818195273664626212863714346213823615328346580133641951145511381298328624476718979122679646287388384889573010812909918186818059132186488063068544124783788810954439079701504513728889632358663390784391056098972775986014678754043019447173559002897023602783944243945877633970736260707496824950456306393468802262537762053889023473859626640760466330554749375201943924345279596567696170011804725415239461366372368078641288824969913606626911472161598668327972555126700752773497247951268569335025448700532581233345323576947287297406479407653604017320882743277407764021144076110564172558409315774785950433025733383936970945618023171271937974137664358961194508037473150971957671355335453958628889956675095554789296932995163110931552326133202828663849008790364536578408539656458567679280458012136582600406869990466623684931462339944725469425109642873646388290506472458606592838742259917413948294215347306813014097303170473417267241348814268090698590492462120048165076027646955030720262804326601441585125680535570322282776674076261701924421574766622179299559080652662501209395760369403058938211489744878982673089515134515824011065349550195882859883521429743092562862284729835041636996195720831420098719911565693253030388418115276316046295778665142701967941029281514167142425461781420792613981080106225732156699175835120987217078066269179366750276619896857662135528773677918744845494809404169600953398351466524862257691668060842741321973567117905209605337028721730339811770775768198980418893278511717705596529961612830036473458966093506289137818570251218460965045826531451610086508251680380052653691467824434830243487237357171069593425849005291236313452462710169885419893949192492296335104345743834336036755180911992734949601209350785536051831645440874855613132299142787663407621755782136910128438308702947520719312715558851468214549743449579091207840206157551676978702318675965191297090215245709740822757779771385819509035411170258255029869291273521220681203554109795059337140321896923917128774258907902106350236286054117083834353579198755740617389149543246593189914491477361624627209471342388025243573738887140186464478599837455690182597121342932198524259057217940108781695797523168434164941227478596324941775726770363451981802886921620491267397524465144637917403245665421507900315518926515942990990613787158577268042409415418854887011403834824216112702859462759506035130984019474362130063795992608636456415762877986579725359477474116470917463781918370363855890617482462220990811814957165794017301074277362918165355968591090786115510616810441168701214483356302168919148260355119462598096428909214695990348262604669421736405110295350554311934603791715521646200362705053769074457517300786324857509609552956857203753366121513454763229496716615983982732195432672462784023870754197601423725139214812586791012703366517272597309486380137863894682877108636830696860395557569775471358615006954535221037445588184635839761835878358868186883865509311019516567522369290595496127766178914229752297737899714265794837209653248860260338662814071286895020651878078195778781378840317226660180400838743971274071095581054751366697366765828829088919410747627312967462724007663211519046232485590884950078715246197500335020803886433896197927634651903172512111058163080175215930554474419343896838728821065468422196030114580012191010433268326408063177578401553408975048324930542198373028917719461302287444952713333190104280699658252955694899250002050505883860288015681010979711175908732550902705748533336081671476058959708893314027575052714746381903453113048328836348718936507066909408209962316283177966787023269814931914276510439440545878273405236400837104083776010539340194210301743481151365108162873810205131242683429497560753517049166026203937914144607094930327586125410640823824074259573436290897315658753263555667291004732112894056885986815919325257194632279785335037979808188046399833206808652993478064159820424264896965205857960283801302256593376671914009514660356312092475109759536281982987488397547197236189693267783472739583876436501658131296155557127144498597640828088723140092653340944397188142800700365419877055057598915532092446740491287969401714578682096567252642698761391070897166356547938486496400448843926611595216991338439661371245358272881388543398993464744222887181593329915483013470388826246095854723740478456782378934123282737249594250990907978389995130933343757263528952442502360423844049961636989738969412126912129846526285038108756997732648123243087853189917382222794558632599102490424775347516141589532650974876544602077788931726571869596455638904456213514939473598150082177792549929471566794356269192182714169416130848567809456991204085619813368337714319160162983444655993503075073567476224998681330250746039769352238198339006978040145601100020877020945191493163461743820839576048896894426659747505882240803269608831707448693091435449486190667765125472918906413960519042191632286025139352894416543508480685243558414544293553518421798876153683714348051272269736224258996559033409895076686148593480549954725419394143341030492901949992874442931312522045665080477859472425197539931514674370222968286648846198490798422249966075976857081566512270211807169719672067499839266742753044486585946464773204669952963362211131296512361278163573064146104037713736124317720489236229000403138186371581581303856010969012848764104267799516045835000587711468590558294921543853391170049745970040618210492410769629446069979481566074289033701737431360101533573310335541210720611703700388866893091926721048107946682740642395041241655507092508483403664105166173075978037472531755881538686821938231117999184407178303876325613180060949893261877123303155574358080887202937275443460335769757797601189799502822339888105068156528185605511670206898541980959466331725689366268277058512039562195633473374378039970190315196591652709608766784734696995210122417076210845489460603196379977843768024380953128705927677016067035223127679571180569517615906884290621718347284209765458931889292166758775994756550154110462099709712463921785975976291115121166076516481366543528165218446076174949530233695110086038222248941502110472804178113099285421819962031000278868882156232086535968347136684908561426233992211150360847971723599697175247917184449874341746161919141671720155591997448560027782908288047788610506816914089679335231503538042996709240830708941299313036529822348558868415297922525444734001365576595774420600330772239670159985644607444126905548509756220130092236215817837357008848122532121073481054276449333272535262836338360766555252332298237273297089426846848644529092710310412642255015241556462285330239887955663690254977024351179650367212225432177100216727066510676492887905749269265698600565979296930282044283931307280969750856848987905686868009497593162298293558935618616697107775069831340589640280025844685096097124433990537327655989936775319953967169077984663331652030573421123165181559677797066543222543790182625776813853195925033388684012535724355192688001787671850988763946690759021220838565817848775983062884702921779114787785217707059487871546575518049129295916528260117145578004208230376600554278533518098406305993613779120542983834372162912136355479343640613162161493868544873626729848982887191572386044620974830549841696406132758456258226641913258266008886929730329125617710051826890245692271567006164374051386652915282491560034842208220963322934731936647265172844382061044002725397154948581059107785292890135593115224527261539741788772031943644613728640591312923716351615544712913710171494405044306413251633636578437511334141814293059572768215034688474493092366904000987152078206291267185487839577066967277714022527819110058478989400729601607106924683103817944694002990334401963752763847340416756219344128721377144890915452582242634678726964318691613633825448915469184328488423556432891151651914535709028700855337463553733734344082793716698355664202894743825698694508313859307950935460843154674955956874266709349844326967914015804489540530571878209247797814876014260145256859125184220816504610023154797504813074361191805300555169252102181161289264276368063318518330237587559253866443633107683800611003148433337029517093125887391787415254611157269420283898727004714432428346225412055518673875780489394573874499732367895783562819901350727679161159767029409729714083353336396842666971835798099395465120614372507255725975650622072183776026385894739033225122215603988268376772927569079503695136833849363326889441198468380198425807098285635224395342641495960604869640339888813149799987133170663813048875291528176963119307383477135685216715143451562945205050856562504761961033695274898647355942541245803107660394361258154491370034126197012991122950594380578160326625120629094603484415128520871202878368333445205628468844473156001993602607398454349806858159439337090492935918777206692030068649882589432158611285657254351047885177879965136506939804461907700111354403034179934948615584121637912512881473323365652973609543934301707063695709621920461451875965800476268050348427387537093668184537849849287161092068968972626322181233703605135858978717427610662466331911793510799535893539529700174589438552690110861159978729793665949410763449889681319079509621003930392692115167947765584262141920869415490388766904008372579837598080378240235035539913407772155139237908273861814471239362171645566338778863555137596381086457471367929840096408348471092489027027947442439312239041761615330334995940691017407845523767334224225290641476982410897689751468260805775755800257483494509999549815290205709953635751965304863889844840837605954623372297129589788182253861300232924807482177326098498720999148617118620493619538042845418888145147621233389096985835665596244173714626636536915329263431098204514677279869322045145143426255316273886777142163931545400916642264688941784675346722818874966763577659884339109061101641884717007646498432343939473337769991955026872293217905683905325900526558113504105191182914871834827086422213038078439506303787244043050566106982190862235386158231295127255799786471112325839245251899715796461445084431485134097087924632290894141443198613867317736262066832593518892602829425155699512912023978479977016553102709205968694060918376417618493040233734808556962159730431242096599335963381640651371840153687577656853541748239320542226848506886315906658885281680970937462268860497561252361025322224336956082815578730173169884922019442550090128441460103941450157266100128817824646497776839087166357952595654120766684284583521815897995979328466309004393332215984681377951037210496983198108520686014259968065379551016188615533602183194976670855227353049203402271366711268667909559456708136621163679582278796358242269563698362509093252066038297679979184914720628517989075441540864714453130202850717353225081895466674472426997118244227826102186948511061521383349341315281174063719116667363502782593447571226482041291664736545867684341548962081146756970403357432417264474904193262108934250862162587733615033013388940752598638660608110250418210026932073415343877180687418973923487539781306456414133042505689508670714751323375279979537220583787821184999221459733821063506598344492222391363526935217796844489916423211396870873038351243462095251013296834022365467821640208601731649055070669705163358265279339440900868315264729755241018146771172196958620145234453293585005474535757100107377440279404040967000156672511275542927013495597989236845354136509426395023985162997678555685123000708440712834858042502150923006285447734074362761453587699692839598946194120620485495568122196426826016595679176779741560918052684556323038747133251369974481875839250090994648914967007441649102253993458061479236363480940518756716983912234869355584553057206425972291034447659776674199099077998317199793261954624073417183191446426004325759886846031200837526857975887669095656237318660018199399061488284808076489539581662159944193531358202700528152180394002861296264521143739889627141352670881431849238600175023027483133747565090030117583006547293382395007749432061292284830816028225425528119892582277768198448013422812839642536641161702446418753506840850195034960000292196319139374836110014149867726257132660301103936031938642471136232521030273467599475972972971040823310126274990630667379123180854278105292681209878851286205160920099784986075521535501977672922001116209932060389023784288342774591058413627355575355978809479805812589201928715782319701957842789444649806488995270286799307729820755428649531445389492069914749506767374487096133626142188072333369975052340553827507316489363247459164841489089778121212674763504727541407501174372724436888267094125550565321767468559519515787962330934025122465065594395775483375076978731703279392146752159445839330570549917270183824433876216391511889894735051590713364387718653463460192336308594146273028802055646913050111460002492829181508113739703726068399170807828843418318613270375528012814929441934938671674134899720110399642447493507527164496842933045019404236652889245250790310621571482242019441034152642439631764110217040182731924367614771881355221258607889217644052233442237207541005057478550017166467767602019507008831804639266087080922136475630574693429720898563869963071078549839488537573185118919838038566148446949484427264649896638208785599729036222709586548508433963575389434224884976451841636273636977468527729441841196523120928221084378967835595335198673949294633034625344558439146175689496099173344343445569175698546265362868353286291350369275261305332405579837598862078282501706979432205952964634886010900375943079491931460652576606884912719748086953570067880327268059193717880611432486372474165078856887348282213656945660899623070324839431203254865922664156200035385069249337714168389040340731102135584888465766371547315131168252739127083691617835421155790531409166483099482980637791101400199628968399528386098633865822802685543601886471676487304626259932323967745805957049988819558877662447542553022093088439055830890290426832920204476446799796613539905768997936595856448010059321994222142096433584013335231411940815672070434595561133005702273911559472974215527554173330787695522368360107310553851822021140893856799453818306058784217860408563384521736185524509529572214412318321792160128291531376453369551829038538466518454495013781952596166702375452177174683901657817576494683524980769818435387382701170440090826254825072092064552279533482490001287107870450881976705147009769457573409645962215254755805129586143029709182696608073319135561350058278329392893357935698692471326307407870155112864999796854056919524110604048077992351425422034962866704555630296068055454257260011142765887669522281486472848717503236244209772967606978543348082436076068550784297708102161763325628143560872130112928844672012988691060272292100557955530577053288246125766324485518985343066816082259560213388093010650636247178253460936880711911608287914515048088957546385864027633801014633039224151674510465312829023198846869634373655257301856409363067461667461212190413257860258966260189057234021304641461546552010699610318563488513373302710988931398158564379991366865361503918076002315758874308852582473544130729037183237788140904671563115767363523669452115638668232658341398597287688732025855050537525434773913809598722276809710562203036954519611773435858794892645709723749820526893744249337982757370231998686742066106540842520116282111401740453344163031158935608379007091917334884466421486938485884459845683609763070595468570567990836661256690337285221999534461764964625938862815468026507289539376787984109514758725024365028102053250220487784623605956961907826691758926800747079231893812691726980557576599214907055451150385789535226978669634061808837062711763694979335354281666107647552693817012453969388055474674255124784253765551718663941359585463802254007850182204195597589149386955600253165383479657071957067967901563753467108676726268277929341369638763702027648375621742379509503974398869522195113719824211749435410328975281182029234603209095628469414562129283333645535030312896099734899375953089391708578158272197566378777663808230083044578179584948602940692375337290406373516585572091536861812483825271494881787875709176744230488469087262508697071545987923164227627296497142082715699736648813307787740654905314877629963686154618840843677432406418610193020372654782708101097012117845528773997167176724633790234563599306684383726883687987575938975993993014660406590456427933373896268233090415646894464193943028090463344557866456285710442357470408288742881677853113597675105361136727091718252252652251543797065784543620836959077504031624193275308769400802115774720297395942485076663359320205197908611676747625060175439987684843104179817087400877124588899653808404373979045217417074662251447381535753784848149468915539120452316214831668882170412075015752591873679045039662505026436029940715057869558723852764749321699396515095417220991839553685546056249084569764186792109493199339105699137205872794491354640224513608396481002585851896673426012442863718921774808010501191770310656371799205031352794666240137855843430310740065492693885563726102896356044244315861946854329895158751212605904895302567090819332096692237675631561775824302239431531174281771676937088999761472402074133802728695196225153329639590644776783013716298504677530082481878001451096936242099489883232243408298455640140227015111966684926007096373752488671011572553252489777364691119870800164021571587729813512197472028223929054719456169500359912220909105543172300787736532281049562884486712966383675529064089377241627134381498219953238935753319361471227142704852364609109853815263090113487947603247509074782408868633498470372984391142997064536964527789103846229314843229522092010097351588816952609358638964833068115124182935479249111173728830135188776234487127466934401060461104540220827539255750439628833316845727169461948543838107413013403278962418206871022806574728030047051294980046140699570102588591790820254505536896399522800740182247845092551290492619300176222431767622350252315211237100702077754736623165447680421545140732971358185665032431353194540586539610823632307861414755178120530591791746333768828685513436549782410356466615179692338455553334926158629119628424944311892449263617204080556822896909995699355575322929519018528259966709723931494362519339367390789031286148639581400264076082243133631122271095351385622934972569160745703304928955755488827072373079350212161272857025875895233239866570040158597759398280912158802625484765268537661025110945325711408315248622231358536469510188001354240685118760593062937792879571671784207244011541327379537697204326978108451862020665797455758696862531976903179840857084781116501194526168090294594379899454558878288347759241929016982261258177273099629115235388671280556226189968575045503296926686293259899629549664786229169315080251059074557783110498422550381071859598873507808789792096561715522360485116243022606925839891302606603021353562954749387394224569625341357760285785383737528487379725578606926405743037327050382060303905665669195735150552991478729272184874315802123531024924104057573727141328821164108706186033816660818782250705629033197755052935395834984816711265067569468006708648178487449946560872891480654502164903310634389350209815449718192984191162987960423373870566010336924717449713196217569232295097164134738814151255560873445596727662470794122305577309225674675925146234954561085761518738528351301913020713889242998698913544990943250810640741082793004938625752169038403467739438846451321086486567198266566831772755664536871497830263886796290874446650952383556504001492635730673133309976103563429466050923939778054265853819468472553113094186364236941563106626122201080492431072563677187279929697326078200983234516423234983586684209864387263359715718346048549180250864165461275532575801681496239190055129704043283043470196270296093453290587809373946562213874015593275318364950102746021836211802975251522242627293402233802383048411525053585290167845944891816159669757357283389368114570048844221887561318677795388630540559288072235126199092143744242368437037476530170016696638157262715480313069107243012444969274446534359812125490762293066931322186326003321225315740595786033985277606199634237397152630456681843351817727442681896690699601662414072523209303714664212995658227497154642743726169892921507156272108867502844888968248801129161873005010823982792652291591682732125712433798011296116409619907572487453028885374529922014225151992593575001274801322629043858646168368224508176625934327907165775595277718527201218189776985445166681305946458088202443674196177927536466742052222484890721067237971865609689345741059438122939239511540680313909677112209819260908874249292157753515279036530574779999681666168583056152051642239175255948095967773713645436047932098362482157832215710142928695963352855375799512309894963892232325665512666351148302883344924991578463804855298319923668001185329814532274728330526173840535271517573944877365674699278519508426576440480395685177079052973074961664118174094278179847673789047023219240152250523442877678892962682534493743939091012588488474797120221617896924712558809824243086440843768667015888566673469463143180456670458868552246237541558989939217901758486358556802255922435012679972806417899816683898423626435413460062833518737480726979629308261061539305720162236714606669409449439663132858207755202259233549998399601526916492054328961586908095938758878723966369080913902242960983146077985601561324391621717178883124272260318070345688355140563615653333560923163289703451319510664863319293608093476654008726804175802821313346707913477137347480254344575246070037159367058557188092304249787295686085406105743401143088941508035363104374016926474246690613366308862228397508894909669529603960617917740724973731152867299453335385867555768735558752232408113746357555696048377115105655550018655053344215486229871190578998358383629075567862419149147434000029572514798912589674663736479058966535609546342675416215484604717848439994243438038882504676431481213705181460695069957245448042600902753612256219400137043444108666130698613454891050205887506604251891982354782160821933504474252250433732184169658067225220045224939271533181963686994255585558160098400707542658958438416761713329196311316549012712272515458932625578498800744922525846092158327974382986054953967962482560546120318958361991596699371095917603056303816229515198372522644683190198699312361037023384611119591235773462129872851079646884334677244538125780976932976055203910878763298593195139288300933832033951149526649276053284969821920428130901001789996930845748838077440859635961881872941921964136617838934475314483607576600135113538826316227714561005002336223549649961818741651320900893924528620409506811260275952346839603569361895015320481771762625717365668375542532015386764385792883220008422243159226001408632837376240950948203080184521885269331920567886035378134301094598580973227960610743557163351222981020591475197593818794821758292876904805115966267538122589670433699293506097940371158123003089794449205824168749819249974860822660347831374692203336522760333146612513537905937969597639743993542540307300849910391012295941586865530536703025655393344660649598060294633833957863219335624065433756973043380561326867168024519612359536845533370994137705600709251200099375342057537822093151507389965272502403241184853772385359880379004077824684267889022874623192331919015927135631122107627993268044640347609215798924863483907958597272251494236035060226338979774814628991985997947409108502787907901837169240290813389618127214599027338188734400907282606946960180524358986475973867744298699080089461162710503064073961699029070596668686627829492185841315272194461950910700527191485046984627608840561781861059758029046175572100409047272076466894711941609744166360495958283791638357996333233630954608020640941302408778831781718431417396765785765937115768405159462083142334930146780645145851862710153574959500397248822905535719836833721061331916394369257858100280266324125249549003648789646787789239879371793410613986454005595991827727579398266924837791255571274144443951163689664548113842915066317933532282572119939218162449838689805284042570362615651820619432345433748081916126931359966974617111758109005090568654447540652304160469940221102657146549468294448913311944677917966652577225388494824926737875893590891405118199472265200810263189078285148331393483073541641754481106043173230057883947870520748298035214337441998432136910184387692701675689699593659223236656092317339008045888180570311037197701508226781128521274629427926031551963954069209847938458700253959980005326652484084130574370550427023716518261216309658585022230818068154424315280746538819045918651896568136724192484192951290606549815084668512302657793403748724218602298599946206707565157708454007346089822857919803067182601648854938683805435820575457834166544104308958827062425423704605403098003145249975974379086222067377179381102958408679377097274168424125303992011061212036624908625816899219022479522291716636583404552254837619581433396398179694827186120029902216485174982893866420111868430745461584340690533976598486025634517370825329889324311590865926382906410218075772539650829523233798708009639820694650203951958083230672636107104748500631572194282248379441543912698737125439982919154847993923728259060963023712799847638308592197287387628496901554538204895608039965413771002302602193208447148985220006069962795121143802103054719102875706535451109565074731225613277772710168915659880216301833614257365817716038564172833529784038194806672324496842414917189533125060453664101969684114626751685896251554084529934086620150668138783993094791132154585899613009302702600140004985846450906256684614737307264476795331227910734267542413001351948483852526260754291706335900432927364913521641100879994702368858164261590417971847678753030543305796603895001643712927066779865106019436339979341969977974231874643750613626127707556998997043487610264785631901093834306014754047442216757882188528842796278311485914570713924475098968014304672673549432966980245916928933366935191890517047802347977219689631363552742326453334412104821538728621683606519622326621564936862090524274437400197794981913461957503419866725521854879080719367196645664434633205895729297018237570741077199423461167123609109710828182772817332197437587675691145792165517149378821835556952730454608670388592369630473530212345102057966074809619748175724480303206986069722677334987565937305635576354948182511899075409927324476722240182401024874023474665875863568139793201922284098271413795931625474803209122236970474343754459081032157208573234015463056300842202871900189755863342125051606639892155662191113372318954093661012374303707081543752136421111055711106141086352254898448059684202081991617519722529309917846979905559791230503901839861109931551169977336731513061106163683619357730278696456669952196439890911216806437127318416074710509268430672040246706963395918091473332904578841436784204364056755474366643391314940351650423621415206501871428502336307532405693203517086461017779002514885287620062421127421929371183772596716542883190811589941904938980020202963405413448455914981307486431121348175527154734477078267834450124581343385057296367192854017888824325009997433713384465459411455238110772992514391507126215161786380563274355824267313147779430984945243500653137502902703502478039211821170585795915704248213405559445107347314519285889176140843267988224111314251504290246325723338821730397125104085554008483097882703232864306585488795876645719873449747199206280573844053049946192144611007044939019178840640649401179323173951937907341875106508497864977832304121397888414732094187981125866529854646206154588370505852202577948743340764527269533435026952091956622260696675854729286712319097803954034290298757355302803844614101087253413513855925297396192670290143361429943251032371322079365977946871157447169875121811285399331004743363239969315144164302540667976375863069729865007959800901695297049371779919524378980268247528918412471871499645436561172213523334138448244753181084918134277477400177205227596525855113491886699548459594714139873325699562956806290605942615278819911750139497854355363607021288954526422117452361886423537313139076897389183174651960256754324448459065457280345332576531880662439090993486257924512163539845097152163205106291217865054821322697641290576597062386705717119107091171413822876147036086011045745559410295482747341775824769090065872973323178372346208692091368690820131037182792100689516321302841258485791827111565586482194211569481999764702004393817626375077501898013156067922501050521427366601198804804624104395039431525998249315271271439325375835388325743142808268915900857649895148532588035419613565503386395106243938484600936020054086996824668359523870750508555638914834460669617222730373500429029375914272584773815791583894949796020218099406155130742405773592739686164830614648731105560660059341317840394764722933029821541532209896751327072472202169887147897288563887966478416281881408491670441908509331214452435670382265846075928481076067272228496074368937662264403455096777617719469807295804686329488271108616784152411673191722324286967678206799365990630569928331657805175096589409964313413095104591338193277052291227007569462404934319990945651933111948627293428265092242663792591567836932255427954351751874367173987467591700584925472137167991721937443581775679405723095626023882036718039266102570281072974522269323699174973053329420880104611035380417947218418303481356031582273743090263002510262816371766146763709911276846391356067882827409590647883024388986924309114773270978928359986361516468736759364762427037919332736172711594772760851225351654613163822858275089053382200414178594987143804417790181256293705401012202352593542119421366817152119997961518842057189057576226604048043104701504282910550132904495701967060386515450500434096779554639675694198881286587717471846826365358056082532938604396795034401876832714177278256534325285658331983410444635320497875626859691695451054573404435693125816125051248081907815222068279135205301684941300128604320960469514297838093216614718548999008445073848919289269598832557987758309707277684052880427899116637775395821343614954327979648456617755404144110528312492038492098221011061342399877752582916968078141526599737027033309790408738234343032072761888710973847103138514218506253709057923443898375982300664480310461982200055491869926616025758789203786428454899943218338682721093470474330890875186573514093084120422730307570089651612282011343817343636994425678573579075147361070753118462698128039426836433208785279552648316161047061480783594096144127601877120570586307003321816348374503256264968088916227972058162010534085821202842069818844461404052803078139416534897625247524486792361099666471087238400852327426122917500981096389390544859989493706667844576168673499068753016375688989927032039920745607335564479377057383993893541247110249420633530137609409775343423139357790353652784971471782138783462979497522423930997722611318852456476328360975517257415858711489335465996300609482520679552112710345063926561635699747357589482118573115410906514897720196503344096142549457620191076634695994598901161433309721829499631477995111302809716377516364439670757200533374187755260479452634668631205114937605539449394394504150080459091768021524463172912239552096696272260939172265072854589330102316221167028955791302279801866910119300482564250524032995971304812636452384836698794117588728388945631585205995602259508578031838779086199804055200005738150324282663487961590956075684538840870723214973945409837842425845023560081770038478896299534320632713027725938375266096718303095509827484691906753827942396883441233962153573283483189296216757956985789966562021546950453950687827984762608409502605537627389905813669500545326765084625099851665966162415477582286633039325908014955689499293580476816715596035051614711656638502163748768272036855466026343733393361812609585277361152099788243400412657347455729928910472622892355961222098269741273412813662299730518651727367710479462588298588745332405652157646237286748988050306579363069946595178530654423442184809937358374168097197068315823522648775717794760440277110376659741335241773662950250135013409475225152312979419625892546135154626920189819048245018888901475049987172220227193782408006188221954992678975281183781371677306238819129245476114021760736945533161556326829303462165012677538466194559943633200433842151413020188556684220855061117989208964208084651090919175070256939620052882494270235103944617827628725799628759719879221020617796121716061083646714799108432690981459771721354493902466493959910131614701187430677845618687420010114600208561267418637304128289004971403855761516702250424472030675485706265515499847066412808542656005212719530658004485743487672767425860878183399990395363989784459938674384889859753819877070096251447118916738574176604995953188414885451825197384460913230278983249672405564487165934320980354975046361242532791614022359375644371421966893730424958116156787745167210637684232285658324393288086514299076194406410272277207193001325200144188843189454305668711635616737485345049901839084698831794719950305888817570699033040062427298675369543407218061137534910854140759463000071518280963965791230895640178872079214952035055722769161494594289764738175431490481222409163004614418515247419398313649245590208286289759735919336987215107736040270227898380496356572926947033214762486368334648456614536722664133611626421949627393189252783147310898229629830459226593809318009438818078389165927964154063364487143833106099156444517557337302017141815569896669632479562289566712528027644895002193055676052316023848694017548246206758508784420374836035064572889059084994130899994144926653313862458229836522136056274383588454542410343917834194529122212244132137873967920028251069973069629197522724704547772498377083308456726789275507271537090083276086940320076191698430267822760275515643814333917896828190685266876367470605627621525051951149315772190482361673396697517034492915550825818523029135963746731546165168481748926234740874016175964015374926015790261625593046330659369475814970801556269749879463484198638952478936100848433823765072167467561349701330076181362770911693509291405500107775939111977039190482460668911991246967750671788603043560569757617188573828898187375468876276742968896973918312427888997567500769832649760340166981611793309918534449004837391479946791160304687426589451516951647717596454688815809428003248720827239775885502771795650458156969839520555610990780857724715759422588003534612076318072176697327288859972783638882742432660050308067777902236091918250599554427143829887113863750202018271286122077425976532253371432829082767348850550039199181261105240202800609842843756444211509567680816610533348677304386828894768113398197288665721753655166003058911858813894915097117364059192316884779527045793710282406360725162274232059588851548198187118646170429213230961700810631821020602432585793257435165616876634970547608752672097416217535114186523758059637542069610247609046195779203040297316482126975397229096654938782367096650525978292468792292127201161895936888952249876795443450947737140297977228022040318222570960579545011013663872668410966687429607316899202708594542678589450217075794236729419336421102445305716284428545053196053117094033075821106143425136518203954442772442429857143209718478275429884472860114328190560537075432558283766505951274042311982859246602057812477405362453573392256274110778023086271080719269791463746209595366385029346314854767580672432579317736818558089418479548666110168990935345946514175241834497825995637815127597100421426698320353649675630566361533498152077048298219586070675808458366365229660729769301091859294747619287067386266995657682149108560774481320916997885132067272713201199792537192033582671569080456301333263404334490310280804087470889341599065918665083123751008170344403217388593094593540332828655815774519290154180426404423351001551239579681231947968344685300915138892005424274855619747406833661866459559618024107108474135804872342275967375324489179866303207742841885874595072008934057282706216396039610836229895322852510021558832667875173895738297694154499059417410377603303837820847344688349779798750146491500587907716639045299324528891557496032440016940719486255905417171144000892270244939425754831775958784223622756670592843557204845256916737783387047021512092714340116864855916810331738959740634374871044713672658913777735114339766040548312212317262491315726068273917208911387221622914974096342463605097789596496457885950176815462053274338021021409692628776169404586647672617357806173076343578245769764038031135644934570187665797807026856230874942443089070664186838616585527507449653782026025326902125628391094722429879641246706291314113230580170783536993043122036632584672629560884319006722404581157121017316982118205734793615206246637001174119762854161329111346776735270415467236917619925583164582348845513875619915616283380698042423136292347461090550626167649216241648765918501155666171816473347817084849363377274509905835656061885987895670676841976948346651630775887226992661512639550536868030246603611168612341784280862907053900480162944932797289875985065099477441465772313008137338144994538360111019672125298606375769437569625987912256240321808210721197578015743108101193811786223739152256590464277427490396238266452801107990898172750624977322443618559487702489050680121561794623750623454250919733107879245913669488778283128979981584644779656346349329842485740490616896989108580225039874807007503467362215222138149964619422934463095267738521014575241981658379822783920665273209408962313099021983712579624076022880868782792800514696923193645981220346352580715600507801244891417041099935579782003230628926768247069155908570360934074741103251094537949519190213329432352919053451287617217584672290403205157299949866873486915638336485634490105316883830165641154968662381584871075214012878486863833549164204508232104730880261046002426365314994883030914088660660641581366302153270620648748743951374466182404288913093440904719283987720647932433225378215391231155618584322973121659778085635926137690009757837575143062410053177762998805128309890383112935438523652842807100784709290544429428501874246087321210045085100225327925397118448544287385956088246105409075100230302929362596803586867302183024302694461773534035580377157370739345073596882091890508129932942890396923804725616992212178867393050423981786398608001866108026558735384602428446631697752996891323963809427265603703651774133784814057369156825602439944949382329380538043029625761709538671367012717712639466059452181700397601123192935403129798504162239399679305669849145933005746234296743426557053318146660810922040761594680224111029163336285896776380048205886940380446057983095244580021972641432794761263674303961278184447737418942114139994537414962734588065929795560345094179713037073243624559535809148575072867549394106932474874866779620238696940006351283070015888318511465932398446456433489785078896937728307098165179819001472861947481060005088565287199231216144782112026442669041450088024122550523397824033725207432417779183964064032227765303546864425738327210337729654923886303062168322026754911448758078145936351969160139329769352046628951183567624048425202975828605767110069557442995774062125778615742264555427698158447327823532442107758465891878543683055217141487460021799964200272328449090821909801924362531885836577113364772630841523045674174692399256558668892591565103490988618290613377132631307137902031552282040898754009399727810989255652919180133841480572774273448611739538712101047813053430169409170117024066221174013689187090213607083594239503135440036102216725305215414559422439506363632239645815843029306534066362697957470995608652350653697299479600548144841273260944921405136374194989442461868390283911694663533660822393887279381502517893543778614670804279585996836123533865993892945181504269966577967721532487654697377466767322899447272935999305796795267080238897017669890225230381594631581555062763941736473345328107889199877119130399052160902529412381924509130258049151737707282688271085210722340233842189068250111193379140611751068772790142072551650971130809686499964885571425156260966052738425343613790281750341700833935266516826749866193546137115909082930785708018214409998015087896552254602577987430607815551672465166644215642562650259474135991293218923693816504687992557169196430191957784902291607834239926202952376377573736334449832174369936603844555145257178618203295484040889547814890642031364169997323286373421016393371435372119379471709853173343467419275882366940109488842858148836171502538617828826786319270276009313745769123229111098125745309408232002483081124854230163755875819593366199431751248113973747374030773855603996887540554284246699373776662871327071509880818208468185004901195799943291056494407011993946747538553868799986133510797712627382047244453862406809813944224819863498333260032378313947480646852735028036932311957003669675208594863630820051386224129491162283136055926390303725560031632109957058265574075444430316092997230933693184404622794776289281703029373307434757125797250072317278291001973841069860094973177025568269686706819604922517008943580915890090103329293511851175642589941015864638902043830676972120124835717363085209642245680718294330840346094032322996253948205346177623052676724054288444661538203213973606612491656720922853196748849289755273793406807716069138993685725392884938250160265293315521546978036547879556608312922591375128098365344089332287324907067378313559511995401764820835491865134587506546485541086261603583299092971118068974740807171562146376813691463753288366667244590097296209576569397309434156353481251460760645478169112562816930887103599764806735579237714589609701648479089688694118353857292274838731342602395865258862268618416386949810077890429016780862012029765513756465137071091586133659409934704006933781694085135698484384704423042547139999231964433061305181555621030065782308008640881582409557168472192752549243341986558105534456816764238376763097766752482549555070421696814691098635383001865132952440795988981034635743473401930911202239966595868838389390754111794922238364430871500849154191553574393235599923550481448843316047768636614740728227078128890261891365224525121904139065038453468890508796753038534882748630814612156392774545695250573915130448330688860883436999057858820380138485094157883486063355762396696111800931961740196261719018697478317318506662798353007611865409972187949889905191114766748407446491333126865112809313009788028516916845159957009277630841192737041851541463643775382484670702036668976365340300831675404498577218388300410852661770733086763882281853888867357873640087842634597622116349221674046184554539520202704161233932555187100457645357880984251919379020295560690692487316812480554061051102641550873758657119671011615672285350990360035234963386569926446394500161672527519178153129493248525705048754131519551734674408575215767071618506170588874855671900735965343855411842414833403117391550468733259459171000359429635058241966205217694308499185286067712529968537190258969717906850275842550111180876101474689123524189834000244565149770798108752677708859827190713758353586719774656185949749431441905478806332621050935472495817389445518601325003744989568763744733036303384626957410123507619331803952995086009707541010154618507010716422683951568112532072573951398096616449833588072407107206902283425919947976860300069578895194629152992470863870339162588730378665566337768344884586476914712321689481022755985789046811997344359301375595594963885084252835700563170602243039611780095049071471364391921227167108334939489758750921182460474903821768593079328843278402281256360055328762911957801784512019258049331820461616245774874113148788614693301756490517832947392457722839118531797957307055200122646061674435468898616363750089153185965427959394618196437854686771224895083057147906388164789681501391291916582269230963389447252060850863525962671134208153880139885429815540305548098394265910976849133519892980525357625711242430971941638953108221382331622732892916593677532496227816618661926819286755634787058197822346138570252957432061364120244408205310900337874300750436484362846470537944305713936679447902262397172044883614495294585035058645801658633707102494221471407933523276692640614517929065165031749375129796898708363666039272643888461668137304413770461800314251483727820728788609749200528443071918417605301345668156316299135312437566095519506472353278629052369161151748555320214997803671164134191115621727044469694745144979937817719252359700703253514336070758566221263230938439444176616803786744964498192268895461097050539186749986969850217941133651886215175819345274177127095517202847210670611996329886440464449963248958148033333348128176693532234596664703903836213573287819145463988703909448238441409896805537913303448716729417212384169663339262172128482789775435200044674693359951833898143679917161268554769553675388237910032383255683465878639522973694580845462167257749540663191039489335028223429165380567759390528439269441706391874160453111939806495619320008458115429931455770101357719518306550125983702995735767589924039358625348432318363107417811663299993694719834113341491764692463987431332103278874874352788771653895058761604233800471582454859169870298453848823236364685849171662306581130526908981912977832685434198614259937207226352807229640862297909634225781647096058612315731946937019550308741622672793160531462185881973840824456064771837959630246552190680964926348754355021261058266421121082071848520099449897381390064092312661915646312773126693449018226995894070898821542936261769929821928561394967146328651275194399002749870459077604344700259723522234530362121119536176021873167022378421998493746669570376227714555134391305567767317110336748384144991047191788469490016955543292808579230686459779998547094339956570540626714749890598766581012651351057694784560311530432783879723380708873183205863757623591031676314998155827876689841543426199567620168869438941038449527243759801505318346402016451622669699877039059672029093158138068885913054642932961988079760280323779482971695530569488879147018055280004259661343328140839868518821360714650720160485863591194053114865577131982240907327246946232394013581565520591554474609186408744151867763611901436823007975016365449817878494169603473415419892120637244108839393367547387323370677956739277080088817886019312689595535182331573179649662090932267809629587169919424855178675832317053780766428597645468293740320549355107317801400480974499094134858167835217680959273128797720770203224019735071677542530290931899581894779819557170122047461117420224978323281977393424997395287568662248855353566336563097875091002736997077076349935365886939873118826119066406928400811797345924279980020240100810332714494865476890273229862636545027224934343610316868525017457531933050139718097378594021961280438733853832191918938019222227826856999519326923625525894156390988986142023692787283705886794511150637584881206342170433074389005385851445758397012269804870899014257497509574837614504609699073714075602443618670396794982060349597589781223657106516948364645881883558372115993899222371694568865618682914196593938276783264861979185481739223639764753452364807857782638829457644456847700554973428736869956495562044621872247379850721702575860089130574744827046876351899348856687174898997640963732889635846682657956582102752452441260306885698141869627680456596788098525759552526995664615434238685908459427507770458944712690580891287938410402093987242331158824707003923520031233749540853370037039477699279745475847187016112991852172104439502289179178326153410161610459370417334434881761464560537127770610504161027887687274373658875378057622003861817887405084240190744041923108828866881926985709432200462872904733806980660493774854195773668816246205796569205759262762023900545552213753945028819011546486841340271848881533989026989552032422281403438183322599706793019231320314749777949851967946588305366177811576368015479142929123148461041139424667086888910180271363415044970560145003249620023758336051238556518267829778225528815198462780167313363300920974266302772214331130485098759175798585422654903569024587633830898993871967758059293381792491555583295164507794813580262424796529923251780223142341312889022276368378600025485617412364663937842239453408241463995851684005591241237458446826757176112920232430310151613054933294070067164870775298676519893539652386538433561159974619727828686971834508796412868097455131760497723924151930476724235889829834798708444435523241916357050785019555114730345398715593938633397399284059146959840736006147331283683325951185890344664090470342139332661321911874429737349048405408175489433315718171391545787133980662916721996697622329146090362079782208498462357434959305501466966962131285973050870078751671456199538549890424050204225833412510923631766498282247423080903360287849565868045965455226119726607140458661707206763844991878524146015548119157880530049245624257753472028129882096106558870087301813814253558427051779089662796057724722521866723972389204557067731442015257623205980840705402313429606869824240983662027714403525701811129207758046993824648525478466648752452016459050527645577339517875811324673152761764937463199952401343117223339752161382551105744968610819880946386937838244802293208102965380499756707770532852183333642889166925609463177394885129181278253855058334925770274966752474901390799182208229802273331784073364433096356619652491017593902081816352235985820912766494711330911262851530042252014728013970675371669481523454190274348164825346931170970311606735121832406764406952758405186718041063091249021587402948524893232899632738220248730620588517400019047153524674865406047237412013494270488947901892457717224375624330473443411064834954050212477845499252747248650568389915309846100056031364384036066432447072676361239634328376688688470045643569712992413015035204702131717749806582835945873579947745137854712705730930356822904452855163787197227001039357258311060996592219432141728557138904519099421200645454803721156476397203550582974961720250203783592133368014506642847144127150121074725600053493973578889794199492567849183731328856421256019312241003444100333685928181690112472124959603684403201220770116537424031629529871223530799509119018168638912251749302331406537700384073487455993362512297025057821075413165107106843039183395353656453774054566024389302355327515575070493789152235007742959696069117172630001270737592991891128826268177721773765903839289649682018218891912759294152345798839275318991228944440829419056180321599891107204185155232944202333602219561037007320127409345579093846817749131473272405085012703582542141690622127938168091720733292165477383728633028991146678352245375322500915374086021502733479627149933732900459315118199509064843297605500528849065444796051047341609283186628246784009984557031712093361373694430481280474790567801437386313264175979267633730304213593319461661812894186225974363967796159829606311911117944319637081901193694479615866170811924004753388215869211656538718213301149127056706822229571348969091610299383836752134957213578487507288184359021361043100908505968076164740455913963232729781711002101197262567907879198643955919763942907427997556144429225538086925202431317452263479100359266996720199829625917401075884728934890927108948003103243033836746476553051252393376679572784364648896796857173814668307597750063966932644905518105102855061452211443523025681056342989496847472908449468104652150970407871026936528302705326231163568133195188302968475758864305114064209835047089672449436781822849931206233159268852953731368339417983182496407041153785444991285118629030265658194742354485326743009650925474356758668433223106776245411334265735304081197403649852365874327773715880216309297483387113209687766531643560530883494826403525647322116218383838288575128874905848035349373586190654106771746401667185674417162898508236389356357591691878657735648865570004438926516237752845682228620863026808514988477585028490963789748322364737371918261801207483905240340083187450423136941781224843691425202410367768842127117680828778841482622503339960690144964278663155875031804054486758986163172704269607098754729730913428379873345655335628231848687528510487210414215442652603757907775523257847497908932123156142058505236960601607536389101877126355098888686542235511812031971388390411381496989911007054888809256925957474649748665431844843156143494046838985496364292301174552110359714117764275515244303294849058204764943619246143321675825193497636660141344821737513866043926123790344530592184519607546901911922290061137966411182073523456595095824119952093606522367624817430681468352885589548328598574427233476509482981872510346052378458762969332925915381080028243930173764440986468173250736918577708927277474216942178953573379466773798473364227499707878113536799052456356714821368495988173233657178878347732611308519448154582335859098740599855531528146006781213823114357210190917038107167240786561920229227367467544663825199109905221505465760280797779373140475935384061375279941674994582994536160855387339948359631724346114258251055433555588425518045810260820707107916827344066298440575067120601773475375667552476532203057462664700467199680494144655315601267063053894070980153814976853806549218119047882502310963172609278892233166367784465614648645821682600681714101133221396428068915485590670365856292228230775212519256593944582409619009028423001424119388544589512507292773930651637247375415297901300891551565342923342264328371799214384103167241716720081301033525593969855827952104022176089122445406018627706901443757839682257805549123787339176974112973786773185037963478899926237715292775929267888199274776477515609167183066982333193541509103054809833414602820962144835551298218727490608415733246748075080868916987024926194375139666108262223833800733093363467083000044160499008124426104165337165035476113124912834069509019300625231569019251551384319713733935257546661006960447676568025515645569273877995798994585933971379055485520743495004612452311577412486455891982161327705614640289479504868762095681166016545241826400403393460506719612919954463724286648553889110453003774846582801658612721721747494101687134934275344211428721483605246025985190340290352483556131531804690559803563405009353295847792401597132799522965726198827759974410059123630811586051025571591130978883229890567678922492524142727152147278031668603837341182407532159268769093202413815512013263832228377169130903674779534978934989796488913687568867575580123486198453554545940138854284776725690167937190244380882882198173129614181464669968096680688066140829088558153558067467186446824721560363062070242089922227191394330396656772141673033793567913904485536389992148865004838607248752250200317259660176756556814802022955448116705401126361562556615081246962515752369949260229438851358761412329271861767250604014200417422883536338832668108530254876337927616243288221623748620023887647855077434599719795385959140492298522567586241492843853921377879493043270590103188002840541439096017265873299838803093153961265428072264393584992303566985056041267355967138545466878461990750066732205316227594526150850494767612347297393370096595129766939235850981076174092485888077738515540690545942637061846678107271354887989488905275131713969244716363830602372474995697225629057187699305699016960453127361692157455086764490925127850329276880247542178856288334624366772457750175567018970925228725760895095725539758023361966702836055799702020840087502100855419877866970018181233124590540063905423641141222939990459996762457741829560929673212829424908614559497672849821383467265297584857210988284358647925765242847067601433188531512170928127514818367997843748759791330233150188704398713475514096848123848522825416244395214605629051178719383592038114558947132522859137514919702666694381672603522095382416431955472184269865854752269186524858212330066180524076132991579820685585049476222885657245883588886949166761282102215462117937586434422519504659490532170216405170436964913799507428121411220938808105590005806107540979489945853114019030630061557508039135293949953666613776304991344778483028330450106158292115638377576313991879797931270086084766086076068293615803448363226075290638842309947737033142755436248811446014131229939617681600450628624116183186076345833875301035230472145660780906848823801212526570020105028686336366469989226440105251239307998036435005464825767520256454744215599129645286906864120680538262015893014444203319654065334779870267289442374336942589551488306162561811775693254931192742471356557742496938690817912891871856019438094514422561311761869292510763967765615081043761859756281292902349804337359285031066003080573563659419680436661597447613731825438068340944226318287947258728109561379461496073221615741000167958811444812478058359405862357411560831596962937722178695849379518918732720734471919890494636312347128390730347295829059993893755564591663336527097799401429453008477806235059900200381523449934851862624743975343359685624126407512894000782375923718566843590333287269909570674272484166459809639818478161454248028888027611833096236191568408138127631170828745915085507023415777097042401961581159049315355602686250314037331165905696015810237133837610377704512803821107425217877171653001032293906748991871870208964908030501724845449500621769032073882611735097393767152629506546546339826672824518211329836914743139309350852452484398507454613085486256561302485177830756620521018450400351280916792678491268918673634393091894592235690197254870375530549305003755912036202047726625693100816994089325395349233324069352156074075574440285995232699647392828959275237676944817576604318360907193215594359122511891013075054320619811645189677173558298354655306828704308896348158550580171738947841783875144479978625087971444555521732172484295934899873855180673494840623624165789636999271183144168098307834675268855120866233133513100064306715558291402340585377169914196148167819030208289311200489741912349583920753386185334002576357665196968716811406000979418551604620639564582288611830607126695396657899675189863562836006692145978306823270784438591510983172480963047617588981104362829928292343676075244263719112458110413310235548291097210677373025110620913418450868424291925664413649675085794360656861102012701370186537220464854670391247977883997876147068646400754027672222373130674203116144679112413646987456663041698574235293366898327977510804101021833078069917136255793683650794231729857817158348081444966226834023440057446872294060233378272792695632467256375525885141902465362999875047037697965770659507561855209799875420279603924750250324568223640835359542964142573891356844364047314368690491237645040934824562533408690181247920034175531489285325876739576367356024960345808225782605175758149682819697797083249617155763554472665613147023665642486697622259511038192068670643066806495634692098634727394841272876020196767449587427965807830494072385209771575681276576948345034838416478500460777733585993016076244344464641446832516567502242895046037373639741703736695808021580468986356054207692343498314978600118963622065862302287018278071272178802725319168085903104167462626815304585563879131054070925143161856676040285769918048639805420655073774126926199120861979226921813936244883132689377665476025407676119283635258933121502113284424997003774539912994263606884572294583140841925210605713564148039561138905041831506406829975066548013958460608396609426515702960587409197239197794954728744879035548095011137992174226097307577970995654569174697376625377388242478463900685923125329534763345709174313877025682579643099954179074242157292192089094814516715850360145543328154957251815577679050288547172195036780501077136993690860651707911021425730690811011537939536544305609242501566598801221291364033703842926584128161036943145613090926847560265191327390945298211712165096683693639224697051383156030782838996333096777139045729506743290074808660255451560093116425188490975990377031634362774251756728261709133729966746503987975171585453265217898130991051356999223691545667049050126072594943849457980373776997291051717420789302371708893425965849834061139774801070907195861663636759551448364579180892578892249176650130641963238793879068684871730819356969819684325923859273141545920160063946073805415891582493451413589414253677666137539333927700202292923870202105448153947979894433884868621828200668663080472355966088460722287910340600628297905761477921169103277929193338688146068923119790399055979984843836795519062694025671576638853048677358843193080100036674941337155515272283638614766452032254418319637519502487452583484308776604297322343885791355974536466981709116701764367104356476049162613204937653127939523722981832692977747512550325843218163119875106369614266154028484782058787639521682784805315792273304834988038390733190714351758737735733550239812556392609516806022223114292557888400750135116461681215200848123724017368264527399259846028538478293489363397877226940730131385036991434544805397859916533632635697179938276429251406711699798243555372306062506736705243679982560223226109876602514912108631950635836519987425193792766007778210162365664172428528940036932346313504199357959307684762266643476680365878698558254169636938809204390665477993630304814566736756681768855100181169704308813629555106977642975779721390791399256230886461044677101767264431109914774610825825599107116101447332491906613869660655345128411377101291866047742906530389851968352206306457817390002613077389359034038498217509591322536858995165762322238952537215615695946402151886307910352998331790528828417975396595828606402865607882029059245992766249656192627281539968164668774271608644747874315421671061266208872625763730227632349637941254875649472754950406960052075775278659437079651146165331710132882796492714030001050349676547194666250923202249551227225534273594068285551691833343973701729379591239479119715372338625983644145491010727129554761464082670357402183906347882381211398337318960139494832778921757731182071555143536931782274271863275442804016415855121535042648581045005573111746054021136753257867921145596179700474464252209177945078910749594351819291967785345330599687427534313615498349589945033853237929459179605550632979727776054287606465789953329064732072740428878140462027597021093172356910207965249690046913039854695228002467822327105514635233551260518949276739376566919951090181264209518892668071193579032949515060248757217303813968162465648370729640840978533481543795628785616067765575748278230756069391971726477895406742758385929422799811642217705396520298772115020648786456720166439073781231103575835187406109531638878090522155558446883178529193519591455249136821200480618612971427482067554159302850543662244771986665947792429349508566805061144557912763617151736088826144096294930657497066372256211402187452102208443441401425351215788216327581724352825010459228403013221097884906555415335955062271961886103080704103938251676548648240115605291968250776338903824202182104402734441819061898291440599985193474986266780475418380504759138649246414457859238684984092688757614700610209839514956801482150565226695054092500713479575236306376195669142581472269545127321662723073232031768556866945205523351841600579629151304416620446319988693427033127714449963438958023773743049263977398050521037352746253630921117166064415811703915957933750213761012897534095501989572757807456634670620301073950881139121962083951860448847294445979850693895578345128611303637609591337625094109928150913531694890394250354560117366425314080778793388824173273216095528782013305983248518535578169453348794631026968441940731942093673595107554054956595556535187654386869566981946944143974432264014633297802727817115478485834252855987184773423751181660398380149237260062003936721430513544106297321935213767226494227255737394724037274701444191076418898246173603555039929974251035914094968138583022313690842306224248395898643956748663652606733994075389004305246527391105564843768060763076150214236455147519085960368360477489773290602720460768203114017303718711174510790335355423777738038704669864626598779902278980878600933356137586631839258956432688791700220366090668543298125712686238432111300881633763335383110919467782604116651661728001099477975797870827989414860576647484276061366615522721780049906482290319827091556093810778265375205909592907730399901969868570154822197044701553509343715747994521329928873946710017562506972317212532686782883435883795750317239523722308483883466705948224043663936079387698462262343276924248959883769899802690476187235989863510159412330952147518910979395626346165550881984584174538238817764761421068932189327776495368044922227236797194403420771701437142217468594469984620943774218997490421619323044862382847539205171462646704626289519139028451385416555537398489366048217688913272290287380674243120679705241447072978283371611920114900724718044017495298591536703387652750500940443857394739265646489556299808746302180625410426789150206020140370436326309942730921161970720535101567559448202716686535040263419844631183318713764213291306839100418604781522641342453514156085772214431832216295244797963477855753960974601090247102480908043141236404681509677721262525500558216467169784119065537617862200518063251304063365285101564153260522037991562041488231200924484174830736892202088429198357555456289720045696133323893261841687075105728567000124011526949069953157580413409023981095113850222874437738871307784746120635129897375006527864132745528611420256519280443875894222632062933652399344589908687476062988219564636012928665054991168725001286339499589369723894318962119740587086110306241804088257376933957804380813746534909484655708842735957692028275928924573749647799478115789482190356854191115721301240516679658245197916488943181408997148803030035937706860835199151331511826895149801389254688149994763700075314564002113015662943541465066438023293994519456764452447853634266576708324386059832584933496705505161503980455210100187731093889415058342468914584936014259329237545159889619750132086277935875736976539017947836897646751794182150151241231848470418127137130350786408492530481145590579766251922370508375836391561663236679773726381780445074822373942710083659003915880089920145335966447113189982974621237211061248169336096369858290803474919377121417878842892742726454126405962342068171455963486556730007877651465909816753506564900265923819313042647146379253906563422888237986401629014371524589016217742012503916536376245801360431302397005706151867372114941674413894633630889284393040064518912896761852956865211830516450651354646047328983711733332599766291297777217294304201987617607446628578447662434912103928531199021789115817060712972827849790884861115128664593405773980456589701315546579031459132842352907023180681075420921367466514906107900505287013351807606904228653407353834210596580215559758270485839565514510661125336809679309110574417352656714660179573744513866645668630819816219718809000481224233518665390443703021453817635255350692348845487397528842446039616141981750329344305630639596954516998914895393769099405112988834769931981856359559762704007560929164214179321940985684550413486207767031016507024228044882354845677274621570593342366294593411189113189154654465343702932490909044889864377765224410756481973076735795042155888774334479452022052117519815478502436097525995557514438023655677371987130107949612863210889111378557794979962441166874768318054379967693641747354993416494638219328889868394646760354252020030123776560267370461311352689099007982402638965414779888959284149611316847924564048175843130654375284782203044598876166179012118771766920466738667390356248947740123727463353750667038038666134971270126109588468872642729214903428438155909057035871894185338977698292503213318005238278930689882958129941820920384427962567625383006671533986529627557280682443506831033372293551540426648751832315106104274794157985690382179394318443872677900853518916383203339099959729945956167431508009815962384475877454601638473316905215707320015642198843351173522088427006626274777006321771224792803023479728252702876091499114587381729533521993994667040187363277738594000615418995260642953996624450000107071356426601792113854261922550171604014377619829310908466523023226231196137019300739020210224159344568716405112514587324954011672016772307496482138991441312206626095675558813032975538592530036284546708604415769646374090559813631151258643486471400322044448295319703391987055315201808830190905992365787704935062304090239361022113982739929719588484941121973080228743682515067212362931357001976705401126544086745698041795313690255739834699749265646556566459455218425430478721008013682759933080397545237285533662291973785889844304561138243192428427884707722496766440868853757137052044714921477336022338666490924050494811913533093402396439865570144228289650541795547767468891194081348578893613829369436482699422520562496790346735604976849093076499964082639778912748435555606310505675914401791852309072705023593071443628863077245156912133528402530392306948993805553164462560042452174372718566879746749628730575964911998768480588880609373745043179896819003751604907887371873397468226739984021444095953792035052365747970012322941734689419246971205392271120255151388284721521551822861885684482431414633491160348164207937924961362856864302874014401980043878232514239548767585205283529516480608065055659530846923641872253882916011551939422803928742973058063584175478245241378821577041551209147625323274692399683676879157130395398863324178050658878928693962109950667477449469652065315837637595748513140100843837856197848024325898792553978302035808601850659454228289857665062267581377180777174341389631053546970460410146016462153630342342358812070913629321695083140970032661925254889364154911507118135196192870911334647058240728882579388967144514295191388769517906367635112107145551690233025808887991528300195730030979881190992438605939146582339227803916529557310130395060888328220496116116290253917631792301364217597220224514427074377899791485665314549685590817517582089728331283314629017775183717551736320233180513869450525259118920377731610552572446391035026108771061792331793704458632276810055464413623886510250949924745986818058087400635188809704900373741512758554522565779662985642254838063485372732008242288836705666332300024591916260347179214570847966994092262916818853442259673626416820437458013874148279700330508321523371585888490319899070989094434837800362055729561391478304150288917915487560154702310460462719680238777915916328477189490768949218353647671255445188479427590865090808157238645691871112774043421906038421474510984597105425540465791333761335407297908374975119777289835747694676495270420171776754130317703217981524521990742308677331900529897744296538007919599405500381447237630743141211891957435233067293276067554781839106926781515186974974520582878421510846213776874713422797625644864536715221007755265828749201281594223604113855369170580197431853158503694859699485939333709459383845887966342064026414975749561293198792042193423395292156995709613452668120939177638192827122850104597487741032741394729658082519403082791762760488095099823716580716661393347934702010196138346032994606791332865708832000923099312093973029221527648743994367319214838276652650708516833850981448269874844345484238008625691625246036868548762077166552046864388879746910189727765964632575654715150104397634870682483036251880457350305276321991409559788905877996367839755139779052042276606875836787796739088371659294721423095205159117965392452744903510080911400019319024595855096339766293040911008743802493730735537562962551940335244991899816101871252810959367630224791770719642411775167391472898742488882896714015339238603888578882181497234308820605325043891433315882830869687631198345078923599306365069001351966643550142705079657833961850951763515739529339904024865510384247629885616734748319914414001252211210700733757842253885385114150287237745679153073938812384731010084965419922665914553420296891545142554288887880182559654748007860862583239399629828170981641014814827043327579431546213191509682413566766736868209805615667346429840825245586047655373987093379180986473207005975788352642837995328004911052404733099141847427724941629209260165830778817695264019407472899085933580161622271128328229165798667678218712331049728938333490962007463776429939148237786767491447661795068670593056815918306339774202214984534889787085701903280124936309267703915300556982581936595191599246124326951090214673092547567258995757671708723132659494405784714434793277862917996363448738140541398797575809239780428454016872624225177469612647919010750429986924584865193251926746248130404658867461449466863873017268962766183331568630766572327027887771248289308293985628723496270135136661084131763700232251135248002061462815775250715937141583572737168056424384335311342442966634169168757322650170309319880580420997551626996951763309501484134129472742303256077276263216440580046274097370978924750423376125116028682095941868622282848704723634093502465498071897942570216989891730970585968973830454830672375787246240133239650240872171619872593404689634065378333296079378456361552444748846779041149910615532872739790115797189942138677481767855327873101814409227069751032683557633020491094443837339732038518778125858249663131701514993972474423183850878508503938261875633572614463200029025606624628997551528780740089308028033077999865978426545603810185674760089698919176260225482417595910384941134277772169794709011194425350850080986610760297347660360330294709758470350877092614250536750642669642951473268753975402912056388633535040403538279519877411537417849437610175396223783981624478492491858268817999316117124932088501574026030831564658192392056120659905516898334314255471988937807144607989641828474921260570816162028578846948266216225499782458127004382773620176242280510402322363094568750998678693336618430582219399159912728867306753201502437300847643509210991570493046565983609819401435767483956490712625392160554116528198096242130451797260501102445727308539014537606987212119291562315848704070960883256028639264708975153179191487806075510602887575431281480780258660929242559308566888048833692672077968909266786095960717481779279074242745626335792568308114796220522873194765369339460716036305288489644864139997854628038112373564259826324127033928194180125365017401634116349233555521467603068486755471250638395189258553690252990128673808158085786930388458608035623042417387262703029610935937135440368607042041653260681134211599047663599043314350033435062298303388304924263657809435395871828843942513773490456725226001084640411093335378555160340403173316972189971380282104030672845501992150509966622693798565716949782361596124096339203358894579439287854655766096002010246896281448114452609568223170557596095628278666257342424404506893399953332004526011343038345991534519867821675570843817892739209565831526631075654191165982537620733567138081074941674259205282610095771747978992396682979841836807475712422160455132924698845713763502929877881009969794863174509525959070097907687207979574848865371505130983526637602015781443093590925711621777062649784098231163363209058673604145465779816898954679498354849209261679532733986615849641575702955274142244223718885505583683742521177551366337862911786726907256863975431705708434745195477405976022290663182623675724230544511827523808926073055530798081242623648610857796430753191489865654498596737265036638078376200835467268107878685043442882135622274158537827675008639552040785181871843157317611412766200929522092595227369784037209824368623381601996862811530940831945395915022450988205280901880496168438230200545933662257733376307193361330444914426350395388492993581190642543555642330494702153829022157684825352796263120943679492913796607308330888029660331535546560899551909265315355508917700548637315609797044571022805849225538330511467287355126321785037807084750036548409083013131458583258280817561861915834006910499090931245866989507807494272694469868048748120507964556530823313475404892639787839041902977349668375162257214431602628358179501385080548189676042761888253438982525551099186765241759450060185610626778378068062237244909577234171321054144043468850587141252672690090711735932973395747539420996502101107338259171532148185652549462804958872143132651111262651002459057337452954545726149083527074284018635179923559738229318539791302782929136787447919169747560574609495697676082593532870315440925752085487777908250089134630031663328528580966498362830077875292184590463196585805267621068604202637905924766517010835123771365798933466314846726216467251942641516058994820617772264122425370122868396354619821851216326026797059929251126226154338072917491087213355792808258305637886975834744387485806224796916253040618312896566655687922967012534629116475024740507950421304886973833109719822445661232869612513481870203518222212952389860281816018466734755569786601913151367655018756146848071219980448925600441729998985369492370505637082823280836097701359865535714110181374944923690486967483899508686359367936262093164122160152032944284858698132806934244183116481848695008111911781219692885966410924672966981098437585506894600031974418293839070187698746062738019288193675319841269497405781078792277741060486995396658480871667219350873685563359490006714505892655892905832665987559272140304638440035681484165156490726339751101169604344635430596289667970846001989411129775875338538036209839792221543702545416195667032506697806892010746088336743136020626559173348129311152736251469488957233226874940354927506901023452412619909710426907425363261579151115932383185688960131183919243241787243116518772638627095581626966925626408988827314090482547822108632248015703068094296857545247499810695000875486165241096176536381011597344184384071777975561321510414504880633137284274768846014383407506552125373728989787135909819128153226792876155960040894786174471578201829631821354452560335543477898078095389932302044458869637448082253467376401005439243469181000393622853502212662701715182079048591843564884071101471863545991943188565239798270421927815660840245483328013864310974917427004885434304793727467703440920001099168293292563503034262656486885486062307340072989769815230723960839633942566340442296651264257197632158034165496797849652646048674888897480597998137809141694473107998599435020165045906139831161283608188209919588954364147653996937113747728097275754182979106373979278216603791216285283079309514851463685671437156829013867705438500203282456358496366327727253754899225858562229412990321447819042828505712833389493518568305151703001940551746390050911905214334669557017927274690997934404658105513925126350730843578615279269529118306233331030550093733342296136790136182612722535040073963603284912646564862641581786758318554441533761281272384768970533851197991499373903099423351173166661326845981874301532399966357217174480287867043362140709349931250035507746670149583374823203760246487855399365670027765291006570433123121132749171228300147713989668437777104907502724951807451405259457135904862239332602274089275276811566597187764777930131781600318199851858369947125110491070933342688079211221097950919358703764871721394159330778434038352837311680745177513667484659022215755220405029733759722071146548689550495897907937668133920915592139465066385319153439161547506974040486568264327936275450916353706568534413546154037608723980586162748386875255249535086984948583906562717995461741023567518624478207301555687420684039131290231053344035473348612419419641262309962129616978891594842470300750529539517234963575352319004353362310872738284011092910663704761963319318786377820763519797228885881966028721931940354604182412518977338170948078214689359593274368152855915767756815831971902171299368355199613243538766752688650335411735365652861033470013209267043648185283078993902403149654501705117028115503886056503696875963533608464287373305305096106290767334273110552611807922488509938827201755896144470782109984091361969747103772438854484419183722158675572052077024907454565139606824212827985100127318821000251335251780349599064391015241752611180531285846150862273652392990891776068811675460916365728957005273640026734590654796115501571228279361630993516950722848449157432545940870632895870203796676342333740187862180068297937514468483240906659236221604450180069651799718511981605272855543014518991524311490048675887107184086773663836188412069757132446605149661454133509032019598458973462593660371389268405994813294920819304968631437417525922935605529210005851202938328125117841477776900701411356658290163310089332001939554000537647521074672669627286486649901815564920844346639111179565119635211638365449140143082693842061136924392390394085240553122878567604879312555968378774684715817594041249131467114655027395486971188125253532039283356562190928614590009159953767492454274990221801133257816360834715087783466746399799410001041773936630928744306516856701296095617641926225657549519496960930049139769631333527688208788700223501294644985281326913379208788708104906964356918342104486814524493820102831807327460586430135788599156145042793965842249158720749432636787690628973800259061009985179045279718488243497774113776822345237589551780528139073294272139291064596661457950542528941774885578169696198019745961583015300363914953527155664102721013133151555420810781171055569966296780714323654000866842590666634783499161824202433975745863066698328947280075862270414688967842614609001124048436967740139875648216218813721272885912444542884242114726348913042302916407594537418029157953998953606944016059219803909935655965176875845067168938853515021282862987824556143242369859651780144784997594326784769244628021273963937693208669312712204495592250483167047341559522711131104810673394199213508506895666569668384347783937059245810254883658062427104292999416949886897685006311754691758130935769717950053018942606649410272212531761192159214365103102969352567688287397355506297712898601341490408016619422878644554407586855814158905635203605158262205100990331594037533028062570423532653676107110288318925777226799785248057715135855836718777626890673566666154478208576537614893600159307404181918187872069438747582508157319241475152619868811607048658179680249084751755249969428678439026426184923455235323912864146316988518561699169823102301793892324979555623675704545329174186230738004091901591958731309018693617823309860699737595052526177211847317107575670256821038863587063562134705266892370044801073105150121434135889615558160338914286264991097227099592382872397824457197125780214279162686378943935509623760768986718901956061375793846269663850148540905349079962277546651729890474353736231792523108140742513873056379776192799719215629131279950030072649104770138198418442048984256250573295889787710510397826604338609560956931341313279040922416850530580561309232613857866094736843421660133790718473013164401393825163604605572826516588408777038756192481726667417528203945921929272903473059835875703136462153623022071166830271643187646986672584647543779305970693355226776707299342334701348351665713786039845591916440984506678925495629837859634407846406044945195616159366508400560462509637295989398377990603082792944106464861154262512851192623913704559380992751985941322217237609926213792520959614379498189016676473840568767838224191725023138864618870063274721404510224742344856352694662339579492633730054939172842813567142339481854056966896993666736193096986103259918473236466968412444154622421953687604133501534786846264419996386136523365759600133748786590886543391059053898834091882005003509956782202534176112240706185224374739503606036703539161383772193691004525304626138121235494202171955622112816193321734865380374356328041711071028077995925598895736268223606415084023557929372761363610946060533235225341635153082949315648245950973491043856848766438913976955006776381951859826695618309742854704824361976721896507575527733823731073939052740158935595981397764372727689413614787622725924028224418644863558599263354545688957761159281990868983439909798096778544796856068644868169582370743277322416055562587058333282442781693334437135801753638538310813981728457896563858602548279438529203989382747067913251714376512673789811136674453260809437758653064219617134229151511247479189567722209599027070738174616402611648319929884934289313407548902202671922045879322964376343860363580932950308407230662696811540546475220102294923369341157883757726499581102375567335165522971118380909613647319071609869103292312685814612977769950248635622371966239823850309250427906664376534792217063076825761428957464674790254853587450510507026592690940752642767465805460718839973077922860400885456520457679841049233600818142692864333488756562555949904779618177991714255765180900141321433863339906782734330482812871368326747428553956594820558441260038136799397155955197528546535139659720939409207033514878498371720946627845774508603851651696691574106884155257362101349911265485181800695079996583145367262208597954296450617718792000946911398239788791011742369772181361192347867406156972117915874704940680461208660854120775434657061121159520615273357458842622771470276171804690325000312967054492706398039528000412277533887275008796358303703733291201940931060027887232904962950663984122023055080322453007876858053143453830636184598561989840533081237018259865396552453778455135403402713282987161436109839479629486102163901299167154160046716186029219717513119885478313332416187385775918480716759467048462347587133557177508522676470987441036428359664292234642289763409498918750627937358083906924724098574694300598752788534702409916647515693528477993056410159018215258774526822217045567500776950504381861612579261615781093394950512681798526747997502065128515889193254917281238535815024750416758996518309453485987282724977618054249285441469072443894735353752201360065441721427820957973777961621324488562561830487602177012080288818110622380130670621162913596746274026694521897748594575006487619997027643540901758108867488069296161955240350644685222221495266422668706537267759806703632313987238869042933339533624452049311273857725075553716580925826561033757814558782062133841316694357868347985685803130142852824908989073180924468342568712672711539209601377372390725433397726878196092837301459514280463288602868357434715734634462403565852048482952249718815030590669661470157809049653192674710740924954008360588317196030469555047821193878739318143583223816859851160635196317423586819052281012563527104461421360343270301468184296467450698331673156015223661946068692527679313188929812707451799019481899813535289686947061271279501727816488968099076818225475171626998828203068141262253262330713808574014139894595322794865476891368447150849266048285153856619976569308441114261659524212951974925528559312580163758646982253083703743998932899935214937274730545827765305703173927943551298562076998179479869724923027973258573969132529105797058728372486927642307799138193045746803880931132805822068443578011642819436058933584513133312133992448254718140408711258230809414793735171596428094069811389939517224850503448659905447089703992042648991662763814180899778260021462343598554748429585031229529632147913750322319626879254728769967716363704348322695973526899152194307029061027306127866271757723412689468116243438943777853051088068148323363535155646137593309620131592922776050896579922766270370403141450051611398042732260122326645027743252771866057584802526943581580645256093160732650902404214987200538446639547113776033854198963649245378844944225110551695112127855998749344217372904609379101203896286680560965531090434841617296692598521639679742333188602291567587465698767013891389231172515050011460906315909709295450298909283669179627559262755483592443128663574487456119591528190509749607301924013816432499678699254363770430776685610603156145055359195957574105979593266350690194897644637148633830426346013487426607704539663519362481621601469605698900658737249447760018088077778290835372437757147115665210231687300132952614659371090501864656347148481855455930010801741859965896194546534352779354599154761279982044292107628258861035788735818196006266750015272553077626325577882870204178323887519601696030132154373971366046239376195318607135844246308171691021450611129112219063550004307916709133953676967880866579952249963802425827353607043859742260176392307770907650328984391086115318635460469338693815040937279510803327509449907629647419344768090673086907781512579215433855167489981314898087866318415056401467474071649283894315840174450919125168194789345726084771881395756927497529665921958299347921063669130284580445893305463334337328253198118687534866864627948844263806677934133574193010403802825171270221439174540577866387379991489739950909170212778056168619634233312471969020877056114060377188898142904201070760374763429329844955535310002812005570265169062621464458383955139879027802626585197049442892304655053254881433105279064217612734672158226551278455341589214717532173686520739672237214389068246312380997060027062235205843463367099776115497241376518501978649814664254754809874143806671616206557978609995144808937581493340796348771107383693570721383073127742930698510102083420949262038370301944431041856487294198753331660924164567600659179889001650520149013619558537159802071909520421322644766088922845289152560706679529518685758197433487726598389272885868139828911139252742348989690497702048655379196452425272677779206299489206254728168113668406419321710854944486204923180780819217405217424077026883880075510908422517342040134932550629398673935993203182753890532393298232786440934956123306326077629995996314086584390724932756000395537794321614696031538558545563009974680610868127848412533029489434920762527727185440149935541343209248375835545462511716422764261683437793639618635409880493769337148010368822002450526456621664912819499345844404119174429147836569620196717846670735638622767152007202799392248120295621976931522663995695986900359544041109408688561796385966086992295754630920091440795240369559627528244434591693888161696748200688805430439274000847356082549589039244305021472333273135363118606123364755648153038206746479811556754036612855259658515357298144853310014852660797968249711185361292791272077862717900147235317019685490015401077284712736988617331126003829773214133177849361023067213947141816949747171035389744041721250806497503093740298844133039158961862787982434931697475614196125171842569200173562834605531853505130460250489816103360372827921621485233140487279264652151174753800211171169032394817208089776305534858720972401289021149049579148137862027290852357662182284354340103571423891970042041487226184558760529002781485601534414435913198463633223340088190058204157819810239995832639133716394131825764485532771240137061297467872231995966347364504595720108587387434840525843880127259270190445721892554369123472193316615709817729561126327665347065555262596142220147121702620712330750488374795313208254366991094111109724890735274178968879462846318839839082562532431802596501645921278147654385270766179851951192335487406381545164455662528126613655676519652824610629480212529454097673526502474914596632896948561319393084949250708277030445795254961348295403027048267265548715433211487173232766896635449704658258186288892017635053240219196718761309696258286403437144838273046487532005506565488073793973314686840952706463964475621682385951279056119727622597358738603502286746420234061322664683292478476252319355521366798079468091006145716770856556772976593556457994628003497719400028377244358246143181324370238176589524773648789988732224238781089531427359711077838400642520264243004794079961092289859252459463834208825420949069048020364730404108741792449286418750578733557661883864555727776125890267324326826325591860378941475072250890725940317174519207559803470777378976704199412305663388450970070950573960758624194901665931486643687407454567781721953765433327964351621038546528579157662090592254165496050098371019789341152335596844431312959060102983076671127006892747692853702042262705243347751376161867561224851049344362384957219867266608058492991345768045928747245600754883353805375599576950567323234688716986795523030672104685142364734011690350163171483635997505658084975509397010551084415065765910938881203829992081450033104449419363473309040522821123389421364982256638741325545086134857982267628966342391358107540996586428850418956207606370555322900439661280289368958734249434447414281209525303933546949662873849161139644772123026839780957677747219278001280729104170487083303188844053609148486287181666568154703694403713529569380834321223894433130791847026087675868616996244799322794075701381492519061109183894495835410621832739111609899408334694872098334341141146215547979530666126839952831430979303360848156457961354608760962915047754924621903520752118470215087195808323372824820745912701363901593407864951799293203879569811229785120206365748968189845839694946860106905359058020688570429985442562226512637770139545208081253875888565822126270095774758105070639198596602776899083777906250125075590518754579110822664751537913650436854238179337362619791094140354143066465588309300127095371559081830385797534220508032107726587248939764499948590148482611709313169801123928578440162493174283767395850581405568370886306652891044436236597413051452268789051063080679868679692547373479229810961661910801555325908606710729682122390944237487859617427820810047204494189142810742058431989891034737205055717454717172690110351868041169985668832098751388732719207331406849716108572976637390011823858011958728865372497671563289760186221580189631507788603722227020131608599927305906779602316323406208611015023816674404445018118305936839613235140969282211813903958852415854818711772260991076172119158076372378844884991197570633081278586371363825285607140485240674982096592519036657769009233453075586590029879023169056313878906696922137029547492825740938939953751583933863453900546121782601136094567575282863912309092942076031178141346267995328046457523878284459559885520624418597754264267283299345375073925249828249869118600455619913579597945691923306343902046435352600542212151864027681776611832165219201721665413621458795445413187681532240045626274385114463444538176520624194832513575396565404254756009770539897214082006105957554291766518312179299774784077785236193697961048167992065759234911868012333227155621660804336187052824303494529581816654816369155104785815066354362006219505281145142893126763171912907809717076533170598985078770962886934689106279901774861514204209433926948298089174904238158082420471656170808358852758840654579531180385101160708893317340991127794300165659927594396019193324299608384966177547772125437465208667904955227027060850788291190306124949396507367886468858423066978036227492484835356742562370688468643339470474612707276981712686334696714023214625048786125489416535648428401300983537935845199087610559866003404554299654633311854632998031993972148817067954814597720209616177200933032688660444977593059588822877372767136752207071660804994204864462142597946704635655659377056751629088336421694453123301678970147139479401480996681292045984088795721039072353101580725633741389982225603872858972039326637895317434525425914470825480804034558478329297377797519767675307347077593487392739164225053860968041110068538947663757833195473803458231045930296949894183255891632898778998672108300499888677697590142320062824516980136503446622828131481629787856712859073858693726202634448384840026548941765873636951061874449916804861553733456864206360231856880221617596449436043912916161456165490938853760999888536116965261454265542441486156910382421006107233542461409688100904525249991982468763974584764595656657769421243151940866836857552584373864447515801278912423528924860233951585329228501543867287534443230849866249360946298268737672587229563337130464353826061347687302183810585587050274673655508204620340726133043095470145794479955924945387678526092956171973802715705965896312866218158812665525960754837729136358895350145783371130817191098995407578915490736346302545142770484689183659495227929691898458403720407901888908258723969912419431033103901403565809012630411816322741346840076136801879332967159101323449840564066775905597689424741344675247894586399640631044895624704769879840988316330429775733239242310144682941191194529703266540923054214309281600412618343514295984146789116168616872339383004016426359951814685886495607308728895194582891439319462823314288143338102413215165820956259910276755019725180211529166610696466697716031719508683806237428467438125518298186330725259252534362607563793670789822183255377050974421924233717467243252212202835782728763700308043983086204654666383895612351923380796234672452962806623745413002467954086520084899987819546890786321176148535978932648498903636219095429007414211499827168753760292727308819617652294058963686513619741764064338432635870297374362725195302929239240284157068459785602183124501287097326647505650447976485820520642673135248835191467188539709586553432517865377654133442651216902012735103527589710745241749015043192699185298787256605127582436053601218699975091225714030251336811585625951790243497158231527247066350224561409779974279783473486105363237484556966634980477782167998909679683040202837667029786473027268740564086344125769272120307412391864912792895528757902588367107527598925310692163166668234698595780885446066778617083859717910465461675860263694279972450416563548299598714027329990137671476542288301275233793161672414227101771546687987582368713352337459236586023098998533220198766543987366724262752780640913955609477541113444598387919076634235307629430111056332510240128533852422521471843264610988263636031065301367230847789845689438917925741654219053010092478867494261858272405903293622838027153612424177955427638549503722844301020617708282475847045534401614023950892029531651626189198648197827620334921442007950206377838775038163774547243526402747945931954761481357932835075808713074117020778667617372178044387010872935976279055304275551477902325669736267611404640425824060932485230887717352818521354347999613974152630933276267691405537553618675217916665824624149584996234749009998002228123755741677184193138164047387261451847748980711601551910196394592236810612531851122003719415769404347244626091682421091889199314017563486943589684257351461860794561692202240183929418985321422452707509673610423395510709234972901561894861839464828992510225113895518610508692589655390861247686687751306579084209457128021099003338163188381158114637251602861058702924095566581762539656662394208133932740890943999385700266582557622659221362673985611282567358399374316635585194739300385293647470982649764896669610372700367903129358911385184152058458937310292895609695714955622005838709015639411537223410587277827734060469749441576196291213150926061442933221017860090988929235131686634517570098066738682932220795452242571619514188710011798834114524637763467914407513482369536622506014064483622966491677107103597878924729330482471318679860333877509093420238495138351064800991394866741383044461917027457849268969190747301368814208111459384682115224435991753895226442064720783108800305849671235218177826151751227507067583436678971191040887609668656307690320727878633906179554324776700580814183635524122441052676180694137550972635740015855477372107668478958363076033821307757303768867298709584980241767632456192811038148867103443148522410609111017234647751573602125511624249822208529880244459600244322651475323218448415215458072454099948011983963329046728290332460117637994602277050594135050489534506794446999938376556369405766196965920757972524867161820183051664515296586547758149246411957228186786813522721400516368994970973429167356239809058517895247309930666594607496283275539875326362061991423206964434308405258763944585548125285960437150455759014850971875915347684224298939525983223823829174465996147421929713286881004328024722269798138279010826883664626186640958127554345024828167812254821709918766432246748281088783598887727923980454175768242930427607383366810922446169867366587585296032920062316360347742985714797535789767771628346799093913193962020416339630840831982283592077672290246029541124301994143791002417783133650300492547470032086085734224522524840215008957032191122385257982789435492244156272396698653944552548666228847928445396337897567345395490436494047135372920628376103266226423187094095335859825441300671747784292774540902909288801752660297099558554678919496736819679837091649031029324068718434328745780386215470461166178883362161935933567516562927553999628045360551823951831490196237724710106807558216165057340641001319266595309290733792283955168813492501650539478211890712699716747887368665010423311870624088424984557226930208363003934908302322592306347740380845390789128242159793147257537611497052835814383762694025548528111562304180756790932542820540025895072432198367718884377941023279761688461137090947063453339143963666804052137272541461247500432173145612579493129140958894406118560769331225018941306150242669752208329520224824055430406325268917769695028769811120394914896088131405755618449088751839248772278727107555228350864181316741374349358005654754857928738302369118822925913441901053745207499114586152451046798389935982672087474023884329686373998500866987980890336386115650780704878255718007754427299200062626592569405437035395756463584242739605535078475419323058882099835361278217541502591749624974638908165857050570303832559964268492363089178749733994947151380391664584683466878328162252688937524839273835469975558912322364735953643291835566112822937974918004095648909851506602574914671422723814388530567904247735356084129716216218464242034527451423628219938916416740097858636019918676052207131603525557996262327325980814399917112285289631873328949233627542323567169028474585556039490640075726934699529476946611123991192132967926485529173481633153383758764111183265044321903648544118717315248366677467053501869399331647348712080130132876291623983052820486348331065758646733530621720886010431969526462208574241852703889893747220840802553304822154965621517956067918649253185166305403507523241809677536190193640386086281449277315026696351820726694228947837362984052365602462061635483664950347965819532651145069515504983135917102909484157895022007003515324015499905449249657509437954428652910385018201963857550155086688020631004017020081767243694982231771558474610988410335936168437192057026816661452370132829325095724128118554719025272579061368609706915493595332810907090948703572761563950554885677191238356660896633951676274260846307404111366545103689217996936463251049384656132545969191360191831565739093082276093177614114661250116885362195306574507540672184189301490469447986230493022291377697230772862663987027615778677445284318705293837326415520330931149912170063383778292719994337511991303856342718172885339769911507259887640518362220233744881026828327460705116639240199006336033181464751398624563449786641953820076790084825214963376238301837423267178573010610165088105405747888635981312733018551441990143946240479777288246984097092888848244858891703169695054548003271459987606812234323041705323637486487947819566598674314444510995705614788675528808781179954383665428405968301445397002564723812414621170680101503092968021781774399279081772126947297845718636059757585587799109837413945701731149447858123360454604681224805997853334392679658759324826249147020898644485253070039276644891093857869867658690216544251481412837892042562150209000031758418996963745354528915926588669426363085158067654023847442132206399939529636479220063176154482416529750523476677903940201909742742364505795354538340100009391020604068826297142459756779300977039444523923773238386858137548918379679927443754333601651493934666740281329016656391076490050815651196043603919489161495870188105931170819382066837332382169182603826572302710976631602482830321295986169441426733692024151914119255835662809977119707567837256634662036941712795516487096990607463874181737670335007046292327368051721151824591541815470639925784451133985203212374629430013160047139824115528680880765854975542558206134995053364159415137806737297617322403919926880678314698639433477341737022734832255793489218231625774387485778795298240291213210762268303995290441438176846860404903500441442994672924031853366118630978014099634246229941677444148867471895437463546676679976602365141875317263724649640804376978285477500713152792298600021848018632783665581579815554355077419690550043353817334338690275562723978349499637888967182399626592740689702447035972344767353117331036094350553518407070894630650401634016013010872919326722297908472989276272534329988598915261136636442505362997362159666538187764708895383166617695272641718713060887731165940558198893360160485592118221862243428708813856647072655955973521099564743362015876658527328362632519917241190611214793238959937859621583600156517343535001555437051298754349429946363574138931608548492419012544697094297185976327196715768314863940657850481113235609738321651426121161504727450719019353108810408553056764182172420890376606176316897393150455350085589298506875496636893729826606073618339284985929344585984765460148107690659285217138249902525412171695717611723021428970941496185651683672428700860524631139899300339152752623421286754780744451002200782495539470489603273247077782046443515694872464049020476522701772209930480972326283371086313978645013325792879774860352468410071052979417422332186740316966775735382016077572686810722394561630251305085874205847654721886311868816550258943812919166786516304281126123271884746380271302020316517857692320737847643010095102102604131114495693350961074716280263677073108929941940715882969887098905807113799326601720122330839124303040963634646751352006343687380876445990540401037625664886273122978559758908207325233376474031017216043552371170760407795219731479891120363540537081247866332645791044524027974239134732876889730345374186922346892852237961674821917458144454356728089103480852451684470878783390450666040660896900340909444546968109971085002249914018905583653814034051234180639260552649828584996529638538658947346784849072574345440324837978140998033227047868073400771028926710843871981274267526384026503960610496351934321205222737056001433266252298700135242350148580618748269241924389602162852075458767945881427616870147648025263467125380665126426864011408505515613174747918854266421921912216842767586630654245896769770970595826808064417517649939263766987141873975260907513604529514800792565632789762407850879639530340201205625266612289150926053827336301883001668304115592407823653109381123814560858935921206569974917746237521407576353149564994755579560815103953519139166610496988815777501538349448463995177525054974984720806877914364724097003139927525670562875212640249236165354458161325547667444669603543588215791744133452921483810986475140142593861140755263669239625215871104804437603792422639773766562733067584615562801771586742078327701746748943343858292941791447646329786971511446149466568321017329040855350914521301618434873707691745081010140365815292468824451415846789572518888037972537822952590276134429669048073704558152808446804884644423212442875010086596252632443884886867475715129257255440945352919784936515478683781029523460589244117294152910451802692728322042606519554801578734530157132106764892808116679491976561031390609074984496952555489916660938012517640007899495329725891576364930516421973608659350710280856154086992005716455249189298586014729134457532524086239242699772163094780110724029608105955668224309985814098200859976259690061808118834186591894144383989145244540265455157735556722667972333400912865499772882149487792662959622313814623196295546985830624427449643158742880448384572506875184139107442065882419334247839766282800985578545691475721987376911211387910212629878252121921968778827501022998010758278499211695510146022046516675406219956221673722033508423768618892627294853568833737439634377581037184452592806792211322668617175665949433567907784786254046292733838491541656921197508703523550690669344445540371222311065210234621730156754308546068462495407941794915515429202895752418380680022549708405235974245674800706272822058771090836940197351642995761152978358218501003606622255936833712274809197768121116976021542368465313073480426092499353158951169466627433363868532876778402936454408878458839062870405912894913299465990644050072933931877616298611069053314013689799273367974068265773213810653786899323058753253712103599701712719563561303358629811839763093550661364174465698874920078403464550780601336160331175281382993009337808703036817116106810801753713755485437955028584586151054179830108206318547477792246195228524217216611671688462999339157927738452044514898227450917783559490666399174402699926230040041975013039847810208926800756900523712741812638887976198729891935089296018288048902527142168315887119062434719913008647317795252237760755026311495715151583359505581395653111883877943372372628911788715854082417427333076730725113366355066800714180606165349332289955555771234113291821325429744049188907369262244029012609486012836807350460193037071920645953563194345663628726110711601030277362060711810407816098658092016906039070120056125818369726612595523692774777393087845788916116250230816923170601642481880255973049446465665580316538596479407905638046329649289970839000852793796854171075171639423196602922817640685749664100456025159125387220973998232393376459348153802783472848338120450442834631060452684687440122377767759788595875046282051329103540952106128798093282596709531638623052736827293485965039709072590575907198997966817070181214151299392813375659739908762409956120333394512937059550237284549820296979687466125471548486347875650977942855103331728252110398856553426835276105097529673442148159397335717003340258352020555647434006475781995337854408718047538017421028906604044259809114198383198914814008594514476503062033175829118157304264122784821372260016478283469573740003543883907502741241118814542638725972480794098030127643634018162213435272415261782291043856602843101561464160075915277470387044169535633505984797249697053017136876956026736339630083333848622614436083639035335579921903677989714801642755203140870775566549096047881807513053280176088446393796660960609060161801100917307964003300238750707162419988902426988206253965422739431762614699647665075776216329303746531992781215599119121724626662774013513666557263993922758287006515680743395756155272056237091416555498996370102511232766300194277072309212548781385015818807180880744209456521661442918169173526991214882472219145160527127680667719085670238140913202054766934844295658243702344907154012262059177840796664684614638988779977633176854280331569189025549058727660103140658867646470084503283350261703883870564147108914628739210046218212336800038687726394528211092196236524740599231996214561209150970197309021771595750261737580898618608549139399522154359229630689855484419706556010306770356264036914687651414881585555883013778217595787963087831547237784513632157844723033526000315452013671043053820997893125269846872461937475328598890177934014198708835783617967538161773309972889702397167917736269224607336261506682034997676417351655531086434521877799506812293134240261123647203779504944569718160557506921985990571115146394922964481175706249319932662506391642548785757314559080031738807630390903795868803096534473381960173671124483836458461123312447781421358500516381665553857176295257808673723992786400855501972763796187392625114171565881674279648976899862821072517925854523445476761691768783586619298361619239620789416786521036343960526999830752767933468528796715816861794009208261265888480631283097370445866737548455654972926032952671062871790502516504064195548975668103659528811349044655943954527323923990527544486618909238137629362889765648579243251632295820206811670190421229563108560921101623464708083735211529873780384907553688977781082544158117836977271109103415421289385386067357645075330189118100708925739100202026901121819197252649851192884287216260946167169524020839570382715420844989051260919331368656986116041345635302646141671559953393136956726198047903461490772419295490646229436164779198155370537340520805938236763974552310683289026697495563870199378220077668621968568120026371670060350143651943663366379027731968404580822489791284795597797442440735062647385285228066373667562616169748800908052353928754890570164503316184635480141397259063938687187648104822284030399157690332981185306636254540267858306721383314091540945753711224564973452893204782552560707510606088996623335164680028899683938550815416366469154441616125631009148784620163111052794816122451787483431419273404856853731157955443487791623560295581922272054731534179006595385790018412032374585550764415701266562632898405909866845212330474375060945707318694778060904262457033703610287694524694116861421573316935276658041734876915142639865712313540469152775046359493863767175381384153144122054697182660896015629301820458082887875123193761774982288927113478827813415362457338387559702625776347177084825039899592755256436709239940859829858598697741424743124588147162359061655465912831688450146066544686445714002047234351910062907839926741062890102672642503362749425095717448596011453639150143056282354947745599897437778229751523540386856663280265854307148878471384703585369099434166329496277254104844561546382335692644035855529326876012961928459673537255479977661492197358758501234603336079429908351530280204816883675603295859308518571813363110417539035478764281463401126363909945426772699101260198634835157913296187437462685833218284467945487055943066218566143232850123580691624133460337405762476740006787191128624880852053934716961097811029808349411064775021677996143489932587463994709165474747221756979578729889296953212630426699855076695770761971650096832522891040736718865145639688368486821009240073049142636046303514722974781083005272094033760114024512390384338975982896348650544306793630573293199072875013144153584542081995221805324730095930732576660946141211146868408640104818452240305137265692349879172083782388234742397373378047027097692654655484455185953292264436168281802850034135035741878917347494144978722378045889893153955253008924959098387528166229165608284586523555697391663397788391519549833092689969702618786394592164499197089370557567721210478255326032458148038142906543181475667059563040572961295920744080890760236665502419239308354024718375083675723741799524407802472566558056152787458969646130959032861466748666579101918664131433829101474975320752947364266794140705776036113386873992783545194107192353591901701810735646652638691511037139402191644654077297297331031340553670403192628786016585481054476326778018076777431486487139737299311216705701482828180703231085904445216978942223296236021445778362978640250936929627029440567308225172667182439503942977115026948619723118060422240559296496843979734984992822278204460192910882682044545268453439915095041127767743927213903122803117305464556657488560944269858505379166099578461276427602218572936523008992830821616991392931568201198693811732059384549854062140765261022656229668022326789688072578337638944736392730916750087650464272082915361763388778399809808867067975578685783299358888006412366572449229153622520691945249612491126718242349930873099117954664173658846879386524562654240295468900873776492897630471133885966408831823384511944204958389555890162720951975596271032925989637005130237212261328118147960975082634154774945074142079200446807966070151029177645499054525487931607282431882507087861750028315186038028658896360955363919478309713851802362829048341712558290455664894145590602908360801616807392399493129092262348960594999978048948696382698509686412246765388466059914260446281216891249506870793437930148733513943777374598298955774818101343654899061744729307328611893966420614992777708396744152771880228089377103556328538773930369717541982096507655887974937086350028739667669200715714285900096202332349550998599115345420912288844280866169245097770006208377706256665733688785973698951628346597476544730212781881013864105076050287933149119860038400304271170993420092229501210752960610999964079455907441407575197045728587223834921268786145434800852593512633379401837801927836967463949503118801193665715776727298819474229209666861545313346023513602158115835648907935395589232395613974341644964675228133696741390084407762604588164785392842140837638607348932444655603692168910311237573047020756768861319892060392689890914715650802282586667349468519994600337621555539976013754594823294164727805014010580411533569934537961012665983470770015659931706957772972771950390964526323509186537977809789124904883960297567640462714655774718079741913287603284030721222232927107816538968634512308762403419859031895400807636455221056748179963003325726330567459117551638067390837701130261923578509569977506250676970864246660637561290983832691120392676187972628532028684134136733795796965944202138580864717316869930423694514369632216992414968426525342286265822195542349155147168517330602614867638565848138339801247408988432560071189571933420931785390032044955468601201106304545513122840491195474724374626281742762894562495209274817982881240561438444977146410310981077014339749241346876137897918093258196337735200581618761543103706680655929787262757317345817421279861552367216844200565028788671789510419284781084317537049181064372527575555719430327249270718124804230945305304875681703970429710990539505078383239597903633273062289549264753868126702327191798575670506049044418402917594335411810729425799210914832972120511036997428975436243895541469240921936676165004330433706476859739023361035565899447524178861176737608618335152219012211891983776646805130418055301892545032278590963834249976383002706578705193682436899574330927480168143422193102965910750991043189326564919044282614573284127835610776394996874554646232453035766478565879607542695832558335798833926336030956429062944993574728021169932146545946213956210254710792610496476778469999109079000624238870849260754297214934272551468611230513409554244048998196696178620354677859621864024808973051564139742900957961092343495991258749363785721595079528538954177370707887589348647611081118976031146579325540862170935106694730213219998902794418851149260277660501754229260111312687475254280251299445721024914297335819752015329583346171696207528387165059585661138991479128001375969878461898014998233328265109851018386201007648763088187903019118315785993515921691718240158319675558790538073112415613382666226300772574407995797150093416393549409664646468534558204645453627751510531632394084454963301739687814496875456077636680342962787146535438214566178833428337652258902360455977022646861096473746663516722436631509727037810754363312930422360557349919104623905302607879791728632542036398881356610375587718884122735574663467082646610391483631665045940151825439963459809305493133206984512596708975582570005217924565566453603660118663609892436662967379892213662656441500390149149909660520531732896821265897376862007298948724560881505523489800905197669154435398288919670161938694326180401647916724960847356536875871981192145390232246010545440169701426224175180602501075587531080111587183729606328321317128813317480365294480504631129820435396730085546189086636851139847583440686369251347081278030914642015257787696531876663360218474823359712254097595525818984899336365081876697520229008695359040308533336588938474389024405957365982397215331916017161356067347801765191797194476943622876710291500056708514704707491195328448060022216044598520717306944761838007031829727467278972575253782782519218328430199820249348357197953099465249229683151014170553690155077321529513413506791211415921819974895464840239944763477293971763306175045138343143215172812936513084973897464711188556459098894905447034850047523409956245495473687269493717098957966542623247257514938024929734882011860228084125787629598706535429164109652987988667825815206041593696607704576053356182596677900967323021218328779922143394703178183945253730827565223155139226002679079361716739204391825438268486821804325356113823245575276210347126843086468414143667979306714384837720288305480618855255165019155929136244514422510253076716030847116856135463169941307875816165751801149628776779562550757178208374710110740176969286268902923965121704275393801631478257229152061060608410822570747771846697123072680669798532160487639964282947751895690198475795885206304692566183356852905557502914366332238432782020769834344535361804481665872436192998431139782454205941936670280011725442908914897988083020799274545982496944574231382387959785513736442298875660433322050498382046238692582671371882633794293846348485656530926414949940711173659211788876948415487850160952932646830791230806744337650758930486269185757146034112645320896013169159264018018968196697981593070784581401044673437929816189502443571915901274243248218849847992531133973190263365537426635557365449204627947093776719123512331999043586330977014963825163182606080202802573337702060645096561524628832102833866111491901929818173398920921151711298962217426545918641362913192362726298076693758196998827678019824894702523316762490400209372353472108539879541019458680724600184607646648418425802766930353975263442250971372105043387741784643384886604062128866113766351453752611738764309373684342933666502262057861853044289130764572709745498250601604354371288417323611201739350595639276074923835834273584003948400315714667263198715956198429691898200568665224521309298793462272512031608411095642100968812777243585115947250963715791061356692724458996887797559249570157547757053243606653242709450304864151240878644184496603393115019769207946117314274713897255641307438440669078896096067447565197513439082343708379241068968174379221396014764403769779640133831969279516179298286399368859109325125698695367767989664565513064875250295638748123148037739198830137893728877709494474920223841667000603044876867927129381271635411761033469248309210026779016643990378120431403928058252972077725153521392107480837056759490144688970616279527765278381226429224524699980948551764539627627213271666408864287617238603610828471055276156933494552365232848544286259919783585277519830395649363529166969037531509844088302572246295292786028529497576904297874131060559474656643472521377489893396072544043426254122613939039573774836663889064482671781459502507497667801419513101615626461807426735061845297322580153202970983287977808867124708984936352613330394645425103418187536887259240511105720107221526075120324001745069670009369002630493124627763945912271143022329562981928359263720508976647837218510666943764994025664457855159214432767056491524061202988808037349835948819679653262828669354563510007281034796435774555383839473598782808033926694649044320801682929523445305875612031170768533395372882072925615347098067947113216719899241036528896524914037575348608584376109815523294900210484049223528591959576951880981831661248173811705879560009846821609948039571322024777938888045314774249845517814046375470698156369597995858811007382560986750054577480403632331446868735530940944849143325557966078003453649310129884864818335336581554630471559527132261712083916095487287647222486870112788059251092969051213659400325425014719137666825590789083691950740984641965986812057796190086709284625026618685226838978117695280777022907227554331775782200838027742773526082818821339846880412265693030600266231708848572612336284650627330906913495255662246478383872160319429523568606676972609740014158772676783885999546040571729916121952341575428867716189270794432855440414247973610644301685926416136477657286875282159968686992329913510053187910218473991422780717733821864065012994225404860212618077896335909476502806444716594696170877377435274074020802849679116441255071596098505874843392522339214297443888021964186117714404014543566936876219507101234253204044533555564291912430334811603209800608698653157600385057233111176062245695916570527580315802546607151264146382653098446369198291216383643332944410534625075417981788154463200050545362617851849761086100580152481875604114091291407124650079637810999892764731790314042808706453429407477567568649396800712131896459468262602915773346160345402020987210074311521089144847145045409333550416117633209766761774356292695825418608238789513203708914524471340954907436380911682640039435759905118379989048017558451944794780405507373962454590927605296621940840781010712130294022952644709198295237531768660501323110763362332617797852375738411979631635903164743477442607795298692019199727685848281753960318370637924327378408532595339731337837860049254099037061128100233617390330171949226453871403900049725389204473436047765192123104444474416079722029779843270347505927040391714723573621801418477838387276126227587419110244012437414887199621259355340311478277028921115778375027632469850919419040604294273579851359790487069391191010654975982663213530555800669223787180867803177345777804450603093302593474862875631267453207987935357387817053670726695720507569341520670132812674156453259283409873390339072948885783311358798782516306443986509350893807213071697665735387641817830415618508448822624888183176035202972121651773676543385911928332930534103176661697593657807553435866471648344974402525172345791038069292660844277378957245137167889790098922309508379016327059439190242153841556433646548216137491793843782922364100374192309538708389051473660320375973811639620821736372656005937672946792048681850653886342873672042915764429018371343052326951670982016675144367464311116499956068620640206950235076987705048158151830039819392299121598350418196983025288573297654092103289844210370589978712074012549588916778657077928174321686912034612835464639606425745867072677140982839119720407401044645421010739702177044057731105644281208584384692858353496900237818052581051715030918572658279896895878746128717927692115212096694443525849616488781443557907469333484051634399908832403243234364395740690766792680218519686833519076420345960671094047789713267749306505062347733282551133991343997228721502318651907738037325825393300811240503432433620096240539038505631284918789002511352912789067627787957725944494636379455598109238538568499850366195474679380403091908992222160248585177000085917163427517992878317341901027367736788047953315505863875186642605832207531217130746077359849109492771570290857662909466951534837823825096926541417996410435044980606568341106049880349864773876593356199514620901980904238558436372101660650777705770390455860959590506906886536745477348812956485946843209507672219935450123566798261230189396687362499544313116848420637153698588118515994033171170794797379234354277256737575413378299735220866557810766744200357024823052793487892264753409059457433934842089464593163339668143335991667268281833104702879460924202796697679999358462148174796781007310018549610833441890820440294523755256953863550140933406937757965658569749191686125525415720231504900310930334534398718891948550156155516940714853306782494744560264061006279728962530100223619023685891705577798449922639807095956451708256641400574740851361427033954993419695316909939426640425050783392598478747468142961263774363692138227969621173432439218932578997635979843980132255586626166151710980763336752091706102326009647384230980260543437519703932560257020466039471315827635991999294974847518380349491169090676762303695470058958274421617939539036367147774914431385612723856121935098467922457956129266357723833276239854251888658078994336781368878675412167538270325104654730451359491742353525236737442298063399228438442182282460955389630009932503981536561975963065616386075262425037584445554598428288701739424423892924326456763952868268851866212610240898867374692053366016046732157953212882317293537290292685406665111693579029276790283861655904952189223645345672801975700368222450352500727465881592115989445800608194636009995774703006479464692168077622311260884669294588775958869915462522463265382770011859588708244481448418559062686729165643214891477908138173857034148374419255624367082184636114479816178791340585303225395965472263809163681223887441646995631592198777287542020372567137510085635964928453330106909768338222132281821834727472041733115407133568743374624664915804843070851245610236709705955965576646294971224340636086334991395822035669580953347396250527386941923993801398201252258007246394802211611328408251108005748377342858199118848080915231290344368596704734268971484302972068695203120760762028183610149824772832275924476874534044082811443413298105388481754659149324225556642792108326838294072067784159506115031350925070736327656482361544185631799071465964995538907456707118082153152872814028473147332775205252684031593500836851876075285334478754203197555483591573513375396805137481989316064865480079576288305624941993307720428034071883137421764088107410610480162783131232356734706163969175182267760842057007538584022972039679619365489644446818804153796831063898666493551400488224803115992579488019224154933645034345161093967251312010264026594631342050685320765135817528755629102719273470841158973726113854868933484141734798798734735163278142776009201144817943171739630091605801949115462432643942734115197946437019909275203449986816407612051719885132164899970951360844692173500849047800713498672256407416560868663732679871981206420189875168159909824684470799782613095161698651256056695609029975724174314970704373520817083000185367345029886324072272823222991714303539202906721961095988300745230982483169002898606074188626177409348682054636521443951250854097399364177121852136640743126527662502604444002871090166661758734082912673963008564173840080774846186455296188992302684058891183745492439070146002624097441139005371750802916791956156327034715151547843385582124677282896786358621077830634970460774408781359551041553115732385559238041131460562799973736821252863155735632932589440587877905518549993251716496666437787622800684913605435596801663569419621149547570047837776430613365305277123967917502258008895028357957389221120782539649193391584358319963661725774529431934867592269632704505637073669204876737583506785624279405475943136368336899566439300012324229619081000099655775475906587487928634272911834659313132902122816856041547412489148800071191976798001515955393764775956610886898622405246528712666180419983398644874054578140532921511388636230922542716195568271238470331320049107817759888442630758017283297781912030460076220986732433145323497475611539925386242980164801058063680047752751592660072947226659424358295376977015383687532103530574979906012341150396851030391414176778618881238883760959234278631700785068186507536658566729537586685751703762423032007271248533750584525204667765851313615140303763317518361002380964623968900520108088649767044885762091191896029335895000888961737737557255435725516262853752051712783918376797956631203754315311266300309109802076110312438196088335165793670037529154279464807108117197477197015957556388814317787290819235652994923303361295879430329038676220595093069608736603252527458256681291433924241539387642815776947767059235997922476175501231774148390382330172974471790372208095034436484024562310319944566202389907187759028767744287096010955997133387483368622540120727574894611839897514039125097076976112202652200089053726757294755362718351918118673014459308681317468063927355771618982358916361469934320881654866493526694322229405457408132320996214345426101815646158710057901388599016964555265371456494573033918535042221781274894015986300573252465780928007680959882392091253664173960771361281105385908562187449309485031250107437999255719189266363600375414564534098049553287132478003222584266720304143085568937143655810399015520060362870471200576378576419715309543099114037440999363300662627286282488579405860071314805291174516748358798527520905929138051997108829000801710344800455868848532341607291139511887476126222713178685435957834957939267285947927446936112391048031652694656461813983662550487607265621169741702229153237959658115293266744747412432233853167840879765914970020569937374568884218023276781269430651370165163413224575402358767426689585242064544169169211192491012925589041191289499640413789222702304205827101414702710162849531698071353406307048796457066544447420273627428800748166481151087152621748202605616350560940969136229008844504374947509535404043684632881711383380238848641538562000142223176264858317867693905769536874770971640158082477281274959185247760304848791366625235680549490831722695996337806066856802882563880344250500872648203061837986735403377513317581525539823696049796444603575533999498184169938929696672658550575573221668142504656893606277922252343214275769353890985268344006823779374244810089193886581929581389384184524926418398897373004830164009996195544534410739747370791784504817567826005429923614316454990893703067088735717648739641870119838388368298933507607170183439172694143803369698726875422958786540394973036061577884859342069370846886401960524162937397480754835121893625843541930308270654796008783945127211450130978865580037274390973650320697739246050583355102046776914104315739905904072651170858984770170644246967485342828125930700113036695646293470737014108685793100880417125826668312692767029290962728928907109107165306002127579457862083956430139931917102842989486649200447323418106873876326263410426396878806527174168690072535500973608491536900188751450563431341876757091163865867617978596693649206158136274439544416393340072074459591501307431455012843555972869197971770260847530062010827381972155011293157744611780814899820583047756022863003701614815478105836978663480338725671998322975365595851205198110900403865592401934438786276888778948344850296335442154611144823261948035160726267015244949259461364647695367772249838976409126329491382127501907652868268490492788607897337689723669480190627405213653480843720287909945170822118990823328112271337339850081600981715413235907417742436970383220304798780869370581087191290938884594713390672365598584483877731841344877019957793838216917941391511568789480745608266419750977369995982752039204565624570450382255460403319274216136330728215669693776366556798677056704858936002580031903967138297206289564292047442584616915225318594727517455664819506519023019376319721560382351925217730590819742133020240613753243870957076088376725820840970519122846149772567325234390987538393529733709651498818509350600745846852326066683856670744863042414567754317755616150144605639226994244032212596915952126779454539515451743334580344836825951912723379641519281022707845630026938856564394726461383439989425614092037348781606156952343766124533985119097301701764392676233419178096636135386195628665907371319185192652528200606606451361543013942491892192218855184311136631704787131319746307822958598778805427784435478125332826350515141582608531455248114182047414482420916862783099481909098671980587199710031617136404953783257048643939266090975541606865581717435381739039876730293653678775599443302149922995009680300380605359206008406875264889356588415404552754772214714922528704358310337297684434794811147228062628523657359976291190053590883208266390624682603356887369142405599265656710046463098304054069487898654091802653583811631453781260460618790312719971970459926108260868043416092452870038618091155508472410933728576194807916813736962582036546528204785004646350649252578561893961383686792916321132021913885406657353004859367768333352975540620832913860318288787973553496651582527104934865090379956583628908649164655924115732140562887423612037599889587897002492186961495014292626362012142444046167354236284146352034344924174234809102891566018947737601152879685091094876401626565715002275492122238062955556678172116120857392369679308387926650096317562728809023683134619466696064846124310997423352820513263723736439607876518423171501864290620264065457239462288064518293558584424556261273413708849445586534322545479721493711847712677363502812415549418512448311441717255092576523392848303915620052320641382334500696323359096329576282729609508888458200562143494554786661909720368595569505984310899485823292402067218852645240932683415330966059841303826661530151154861806363467142253571665173014762454678600429518167021145001939594235295742443155817285654356881243691220001708817073550286469771253356340116256796546777465095389686186318398488634140643766406733249445493177706755636937735275661068936748792807673346446504172594310806006559391166807729125243835708160901786223457872294424533542678437776215420840532511425667628034308340306751958659461564860804235555343579057547562311627583868423794024283649577042452977387084495866317626932695677651108939541952031461044536451110202855823371857367150005739084979995610679463868352247892210690421437727507560624513352597715578338014711565901945159527424348118085457478805705229003764728055490673324708648070094083048036762445807369646741011164689631476449538620226329204169282571356315235661982228666850605303030237015598268005707338814268554473717975981369106638910593230225275654463462289141932695727527378848913364199968904125591400216398760038368895142038515827765122069560691844562423274270817104110940983792117567434525082388620103104428266136729720763162002377339027646841942507032914090076428102372866742438397568268561383560210137321976631455162045184463749104177034795095401732494485193407261759011551311847559077928265083341005834614254842447588507426616031377533240349800789613559813040858725644058092968862795995001935415109284914038559136984598792696556579695250855479433349926084343662729989374299852201518447359341757216467855060988464884698951037450784791470769504794942662719915598480650358365467940784694274637328900990288019275538885153849952554778202036069194117168658267457815713319464305404747711393429862910919538604639065654440608180031719968035187490907440497686118698748347541069090978086288480673301058515703794958035070248318768424619424221858680110948415174698242740171974630177783933034836322278300599532470692307030329375966906705849181602938646228031960386425032486589808365612309933697272162537339220349140491515608708735066997425341473957813281516179090841252072174817794464845899255701991266792095602428544837079971571437930940286940085674444444668529216292437913818508508105825480030437857309362019644523520796906939238516258777550818404927590447951163469481376447025787314985403274832940960937058925981629339948448015626575931958978811528769972525720546328478856072107440140789089900992232227864323904406419342550600381861409297139619950608112244572461245695624166392979221787304156356619979389783712931716868563307483132442728681811548229948963022413425210715615700442113165938925924846242278546596200199274299510297245570645216179240924160172875197064596738156429352423237014489236807792899261318092600382773623111561924236691060681224385755043379450618572147309385586026356839193864739717717886906949491642872473987996184762833463570380335423579212071144924611435547730887106573754995845871893411688282781419468823082005701810383985356795891079245780625657332933936795337506358174867302129796049385683113671760554610241068942833418189441577447071531802506402090109974197981137026479679159652056920490921538803412029836930968597475702732643736266593519571567980927092577601910207595857123401996035384293150962794547774500650090213652881019495751227019533800872652198220225187090269003556501025241081544631066556234084792106296897638109257416481703632640070743852691773884322045214993539254367653165847589140184556886154089590433640630868554752667982139988246787455598292022225874657055195691588628986670703944023572379060880197385652969760673035484754271253625914133051816703491313194845452000728006109564603500155370793959569819564568022049905528685012202911939643747729818267688010543406392891609716865788272372877897357276218147954618679694547826503196549663039068390499180791695462630164299446014891875260821271021448725984521979929310645586253095124843992851164944385574460370994414914288871719875462371870223024232607218020517800795772078845662960555505838875872258398565385868415223395412308849929425121578619599171737691874845720073928008194740334466990281444193999622137614214825842539593904749248460384671516826005222343712415786349867747573680347794695898089367253589456575223032908920930219187307858151849803113654370234636186939427696124862570499200905251639677172174275963456678328280522873970303386414253524683253033602891103960767169187102869535150557147891543267261229787291134648556280419791519487058606652540938310436066095956966852033509276131264709376571784656172737312989313326229643737645796610466746550294988845012528289646327022402877329003942222781425230240382978514445638971133959390821870730886097640312221798454230593631189255219829793330671292221297126015399855088427231528810507369747683065658741330268340223073792101184124391199077715034023967852545754607027933580012991302857348554007607209803720263270887828687848930853800066312746709723305922845733498187720456133484709804534144094334985912626437081794049122971794482527122245630351324318512256185681897439399569072388345882567213546905393751139938118128338087922449360815628041800757696979402419900796948076314059195082430627096195676979603406856869457216243301250856806281744165898283942054481462979292438658282107395610790502942197307137205824615237575581668610915207812255301199379556587054091174036239164022926894990701874261697779805286353922594069028672733819556738672891764450306983326955901705216746966902650443540899775022243451938926469110592464991046667276689995877236983286803223336412027620518639188768448315534867552699268981020379835727651344052165267818778696704044567612127125619076480387064470610057148293136678270113125411616800378880669540318618240973509227455835799471111260975990108032114638888828147497765095271019927286651135411930758750837157298718585209153512516211007171410657385561071566151713670755456450035524699416730107642911940219790233800245669552113801740882397156784534933113376867048398347618289705564969924825206154621215764275870566306694179656243601471333226324088233631781989599659221802517711411559351478765935021255299385533605558077820559724892712289906901312768713876540315918735207925000553769806416288478956785140960507078038874153239974447938689819908968865725292358388276871467133481009090524241148263789245454939393142815711988016290704712882306708213048275190983393082200686147182386055230312772416005936328684629698672886383181040819229320137336926689481301310552069253552137493398518911877740393345877008977694167359789038820644914237386087221681958888215318171654743015582344419186952389613817440294306876714871601198744678429244044944034746595889301356183900757013249148073953182901088341173193080244751448250746973545603883855323378587101210660356018317155360058163316430949760647510677987019635535345950099443255962484564107596385159422744686733215666597514926466841269973013141641664056521771532519681648625030724063520617527709002786941896307400346418433005729224314802881506346628471469925969656324654230621058795298102494812913253574233940452255508547535732260256788452161582726558684383391507722633400610480669486488736223049676204363253181547040104255632235160719759672878652670246827607575454533663316581400560843644849721532113948364068892509459900394572580834246414237500121437428225588360946124359041778122560587216077849358209622971744481321688396882846380475219239293182543697659531161343862287399028914236278482230431169604648885115617177094927944236890955140933182665379680145354393258313773876524077141303493024413878512597306665500286092400719754240585355312046711564424410230234968928455785104742481349001151195792426416421612165993186811033462132267317795371744765310165155792264261374789795573379574645790455620881813464554342735602525649821270517435086544419064794091239832974279944878912045856483484108497833763338487140539190167013214610593641216146131980422712205940967804145888806699762697429157655676293808992398100699641645282201388118338489998841952619359742530973716258545539497202061267779437355640354772002944095520675097362354307706478975115606715343111255632886935336765259323688310400781161612872574175758796164439161949271541964079029349148322088634053573301729958735540938424043048170715264326288978369836331053364404118271338562534043725937571636876156642909455765886214082307360606377894210919910668983488177215093315283575144245141571746351905503089868397758949846461152098531810590848260690302316059241132424203494943048250626073266832154109535272867837351109266539412667301028790977549549180336484631104312305405651800493222994256230391930463345767454797412877694180176704632528089748591045955326899721825549475379645177331392119828519055709700800905308563825455630889316469508225787929343384083521921532619553869928676343661353806573076973874064803987342355276559583281607104622760748784313589597483609042485889878205571442631039382220710307256278560513496981995872019083596645301763552735760848669750159153266781152927740807257036722473240179912128493185378358023532086412270196745021610741610693416043939078319718458423397183285166383663690114609394958949103232855302922552856761098281211112881979548654948016278155020435426297014099047897195688872703581629351377221878099437753326790392426390319298082615539313526428082079521332707238478250983014897429667797797918633798743554398997229236288781362428352422617353663710474209091535396226144352727872502533520633769013001371598780681722762172328607262022378592062933637619416924437929036069489054679824199546124817311527340456559488144718414294184516562751700142677872983178479123270387648070293767187459189063192314525348981002546580897974510274190620973074274729072124969684073621209431695177510129908082528246191457464969606308678924741308016085745487958285106732299887000951424255817906103224908389801203986690334822218777728707988420631467269088511034080585311275853891537755938605432430099544330646703073544425809890016325934685838582886401391315834353590333100373971288580801744161686816421101185039243202837219722666103207687512998069973190630504755199463710805655175969913488450174122491916005274419744054374322826545655899543115393164787192653188139277566733707767518087702078881767467575831287251968718305694050540530297765934014899696016171963066842167814327235327956656964099697619516082192829096226834623412884701154813994579335797858895300822082675851169170180398013784149001280255149961381352780845422627609794310420601406182255873483290779041342879718796092003172894460219679405651146776795941491486564573227910282411972193877567021491984696944894569489628119335084734899306477433215847647215589263636285909436012698202190626803800549611487104707045593268123318935293218378326421848085065826656958847077119048240129232357448202075389619569167450727567687466223119445960555788371330104126512310106392497730436155623167946318953604377637129963370174588192310658469683864342732955570363915606342395037153979957529926986106188127087837187422980130466833605198472815783422357756477019073781963096523501159192808444487412525387080809592238393002852743740411489178908979082282521821890035813135074126275101282513524987718616338550080407853877174227849712751923582994272495295296571883029731723953750942082336119841992953483935279211045633968963346152773880401744791470863797875969809299530349929960133755530792202660380851915464444221700018200192577115213674421733911432926032559878443873686187176747532659650211937534583056372249899860253795595143882571379164440881214053536558869258040371408245480484458978710215013227997878989965342356754351640308866157633835399280150162543255023019629086770984089321595780747257365215239826429571230430821243191850439915876615664993529207289580482154912069272307883847377432868772446321505447398307910529734767116650116288137287897075604667287139856787299482310318976107659390025615276511153158054476885388959073180334450273275205939546357873580072028898538596822805623452958811385716589156027273837630587490662865175114603434282407230083808191938754246121186432926560441318427585071326218510939569073846604017985911634323138548267508370899703934501073090821663296551709765691817839508489471714629259986857852482035358901390923535562589445104701723199334985699182173436682842309710849400086234055458061963748829221311915704318704068138685563861826371750046205508792588992049782676992489077330269808727798597435460475362839519317096605881081233853120887800139288702609982091189063625635482881112646327987660204391153875023172012640555106628477099807356857552160004944927253382283835568988953900750488259883019374064580016499539395069949046761211786637079221048592217716924766246463420622952734756726868587944957006379707502984982929568729312084079822137042331546261003253028221374037687452512464592494885903208681792847775201065419363114747913954908399536313810778626661763845241777425853516719014149706809805868491000189306249154747864480738083504186899937000453198589054213682193409590223475582287993838740999858534284591261388397100819205304846901315559478208477566509479600125638441045974703145732895604486480167180201310153335763838382140103369321634123315014793936864143760124580569835048243269882096608425479041821459174527188377462080841555792206646128388632930731935918019207767193782141069262645292691393902038287819530393298604032579875824900428967607873549872351530743195337806376450891087962985353837260587667567274131435059544798178071136017216226569558426479914337935100951440998225151293491790983595393992553010501842249163039475125107139131222321821072467123335614350100892529361045003734552856526394497840422617420765357462077015704465860281953776526227669566950714087943071189082309307741993791059997971515608829132092010003705745585470251480526357930677256051238258597152073168453974211684799885993429123028808377946146064374694389010148180950302845772884463972299429416619369111398437573488405803297472013937619388570958786949072662977320841881284260313697112833360584264192129151491799811992217788636185829720038738671888503410489962721471613128351675561050375657342239802385082520460097975772566485106163936028679869074105390044510324082189786729565370379212922026564007960126117904327097746437324356698758693653931732516206076907711026025766863430969732186624230869677941666061851933466545221385023243800476004893183942560053189033438509608860958903922930046704320788160244349127190088284786813462895799730308538625319944569122161183764138308216659817650734698355099152625133402008696173834740144187976313615740434255771633960331016808349752026129959762008062055617861653824363817804040148584567019017798563287375844781489043633402884401626755186673916892077153786222064614458050876726884922571375655588032069183801424582850478112342570891055902115113063361061049776135148669920227255120440206372558113210158129363397550898860479179721879723251893616998563392908460669591379576082178816414284656957213817282541384908171775856150073692606877213962910200551040037587656485541294819309323488631265670349200997944064056015843040105037362986042481735643549072252044538037184066040461870048318494585603368105755890328881937371785110993894061678505874379650208862513200952539608125709808647195593331040549824318971972387237565399587478234851149630233406271731918786473917432142951040892918709095073637533574451718986186851449617542699204156462755210705532778894633517702922064063587620788941469987658264182113663771653518102348348638839742385193603344038865034882332977984236225523802338027242280779621630819958551026345108925196786270599367958518453381753096502577009703610386872404651033012322426005377258850756883465499855030442156538173562033461476643823792728374965588580562612633329930095659618197087816001425129576276818978362572102980581989298488067432258276977556268354260306611924219684178074343798882224570628637567558039572956420252612094137479220564622974588230662169686355713858211919711955107866701258309269243293362314173447037945887067874691061822026545749476903176018715522717465781946568115661838361437444055996637815388206511998208458313101730731756033505309852598760346999536404506746065706039760395347243756243935167855714162707196407309653893314493337139939038702419633551398975650313742325009510683140119300988361990398084519290534624183482123828061095984915135866993925646128470723896858652480581901732899100203185606121686026235921289148743464937647765087097526000042342167369839598376433450094908557589914995080280323767758823828845608041469236231931492323042115362002396301771043648197732296090807286935973324339941193485391956320225538690840279968315822784138331393049736178695297258168807268106230743063859687464926037017408241426601501000263943995603066601179550016719840783662738481035770411045026599363676486708265170819518776961677899698955902638042731293131668388579301419000364301076592332963323855679790777606779096980593196175528586088716096776925632340945350216753445620957387092171494192500085999901333464893382549962349591487158093186368318494217441369562623947436677115475004874778030131565587846479409591230465396009759008183026755394307899739438635055873728264392129892516251113878722790389930745276362101146922435424138635924819242584881558933996751667145043770757233838766319358468426691901834394373489690782385291550368533816450229141676656382155758762003359721961635927942601125602019829222085238284339809696014736040903888636146193115637325904243778285287299588916383891362856087909770475614090085709719886044122532324769001094784988773437564494809424956636812538947650496067120258055386830113448145102346639090116294799954718628049375016145640697107659990283093055636005394930541010160656049495396058740656194817189835402310635093763851102302861699641813422571154828491696655446269744202955984640170100739141627576971980862638448994677528867692500790981619497588687872365353169478283161182672301161748006864337003787887985121254025923952912786520079577768368958953097380249940288459525853440714342080115306812823831445904633774027469040604402059362176056554688100497427361639178639568578618361974167073600757903512311964157863143313320070676102860254119487174108435333671075341331079564501812880350288983171703499081190104742765487794026417112696825165311997775080166764206963540979407028889518555226780199836247098182743438754499442562328976065193701043445901859943904493108117397093429843045560090045801318056586658698945612175059695855336393919683269931921059211715403252059778816459015640169272277660272231646524673470209864107629615732452340585869594754880884735973424752636510985554156763859927822784890558522019737485079455725852460195858070536707617728240719031825364948543236074435715285174588082750201453818578991338384189996977536912150285414688112769406736102381369079966841547716848793786716016763873423455996329624324258323409678566001702864120583627406770869556547371312539429821358736444037644498823303998028167330890539180795011942550994349429986461328067143976448594390559992970684823440472858574178560629096036297589660024522596036689427758881173686673726290691328256495981728452258412685565564037465299245362071628528020135107144753061851438712588474585316569695485251348488539002833305191361034574159824046395013591665702693806861940217616652774671815098420843904442162038056417323232283886034083912452210012744446257397549304179469298139714028495237163091460760669597346271223336980265308876325570766839640527354142400314256191099708172695697700336750288703000945591089952664487698617287148664229757913495594462965954105173516024223352332578087226271548896315042046084812037672678216818541341703301983319419261818095508138980421304657035084699104305386602806938959986491560859327352152564869967292714016998803313931484011335746663178262696935455775355457102754082227537097902090009398704000574855048067965145153356492146597244096830189392631990609607950897332135410037336148406889016387040466190906522668528860539936149269344282005726469517721531776878048612739009431125701487302459186149712982774547272093638611027635158727574441274319075396965368957939616739099393903525774058992581946777518207703506312754152687086373688419144763036252783722949533762146101485978144762809098325501058075992017123676404934017727545527716462967016331371193403671456232861408771780991632795313975971873110353616177378166416348713245679905791761383079342500651707388735201303282016197194791043636553685383455966022635015554039118380219319794328458380017294973102454467922445512237391912585888075358297396662738341778869062509156897476346804313948929579321231052234244414012129526861388109776469480495063113621892211627133162494621706787267650006311769780078893793948904203445579227289222963311395501764796655867626004689964913217684613031198033976317109940806033072991838735610262219325015844448490194997017081410273243751893176751167012097468326867180321940693463022121583493303922000738651638358814453652376331567311021777600631362527742599330874446063545641195667667460048410936034663567534217856106407818354503639130612882941237273000173612143643949145247241168382775936451796585372246966346876598628297017651445427403003989226511864967310773528865757749627509657953840458529441758369844170014387261273071588642582471083212858456335674128208546663447712561514810023874789339345095314146144267010654942234786782379384925391208925915940552019598755786582143535025716671983902055083491049152314535827408819690811010912208816382177442311448544726619532853347140603418342593679644684056021183168533626050049055840439700393646366577160063035817991270379281488221940588651574663351946352621293990855391556613651078259945743575598414385473173793691436593261602840070886718082498454366753406169399452141233371905169796974718978963258399452122743079629764648291267178927299505721645772366081123401355783119813863206478368230391211385907601342372120109239464172702450902961227717226578218537813175647480926583175012457308084155653783694335622854227488606118089731456219764368196139971698950800695453092934718650928677023478780479924708875710938894631411728421304774070624867016658528144038286308053779209827004715904261989143450137304545116914973242261503176502213090515369937626637182062508133136502167445152850892518734541927231429176882927546732264820991576465602561639614915835198752378794369863645929572935548622762298747847292025865352880704808067961789637882852935420529678601035693366836772394675207842552746178183819288750253795760077549810465581026602335986819024484990573104558109122492600719228198931832426299032273899309342499102583388722618756944446672893323062428373128240103322613190353792457104357157998074445895600626197520841004436771629356956796550082987508582409527750939620460389739382904229089618677530405592904319268728491622710646195093964855066507395696669860665325450268308618093785348523015535334266222224417386816687387604506061367568570608830651562214813149279310757733347596562667364213167625039282996667206853109935808943928984380292378661894536041517045379207355215641961343467574575699373641294835306994827163524649609429395788064089513697024956583749170340244154307650416155196772969181246715093835925037975516437158706205854982937931148512701722038869098389008240251880958142473827137206785963199438430382030871559495857646483045265839513294925747171461018728984932686366020469206207966034279437024272147716423088900045163273678008570819948889904553777653730046653779315938428158029787738105358375277175253529438420170712470677852844781980560694649960117295462228246690601001433735753242397537094989821839420559957791672648310429777670898111114388011776496519976899502979476501960843312515957802883679184757895886722604005017255782541647322691957920290965214938490912799572204496325468334270444131127841517726621623939055713059753573395290841021828367357493987027769681886687315844556676135778883711812702634736222324310024273676996714845320171410627773872628004950313207834685308288810763410720958763749870112392649284694523901988943848663242574624968112057530267930643406529874337526741907030314819806833485093474240839959671437175124348640651765227995523192295774130489586120268693773774967634281903114103213890553308505285142041979993599861192402238676715881313898029822788771345304625128597712088627574266903848761255731613147307831982956451193884757210169177213335368127335711381399542242148028556544174488153041955426737834709782276935566504280951372404801166018592870519701127532523662948577441164050236945570413932084260466349600004340551014555359700248549561711777384185816874492410920691886982047157945345883771673715627710508306913503849282335801822722135719962512161925391508751401789345168982374579587027687724479392478090347383430262740730212927611627754140955356580463586253442175227633816180874467900757802888604658996123968864027649446258349902954174482041451855243431299089180758286715833490401074764884111778266585827856811884437723631756293292886622092480875767005638206630791504335454860750199016084269705571744578525737987960290597568051210221818043968689167300797988654183274744608716464922217357042193398504326982684156358009199048842266132565763220890699846291237639469016022115259328431181586067481236951018297050141316695466318244830194207473425629681495856101279710968890948928493908006619581877205350157573623913725786328530809454524603286387799183978448380780831350177923270109265136651225846033860487072356393413743301127199635569842059148418560355234374460537026162930382388725370440229088269716035516797119983338413105718106373476717338671749983137196965778844651433336875997475462804205854854347581478078139042802858759079804391118578012286813295101147487480720009276762393430187050662631119295481801489826950706178960979410385768513946911279207845473011326734078872441867247607858470377544099481384288819242558180729438572143858910079643767868627741754900352208050013882889635448829035623526867452645058886847282117206241881051850444760391348509439757963867944946256226711900232359813298703360468876649741260406768503721242072963979649068039183971025662269365279164928315762912111560202462299033916480522149104351398682034766447164155549903893268724094238115489683503353572055788387785998468458070304119253475260651228207470493899496312779941978206017568220319476197348314862043983466663581779182565985254221394689450022405132468151330373350869442581519320868564078659019438081839767407137903217004886450812763100826827854734244637405901519448473365125251877658239966273584129832365644270683941525668998757310720664457484040744590915172616438581221013539640788653553389911698118379850825469792372065346812222676338478174312618361652818326032638214658677594925381099258455232022902849653008425678642577682535914954824174048306231242099247054858471243258222835101731213575123398431789888125759495182055919634580648533742123795430639837174520300403797398657806781589996525830204987052614893295345317220805593471666329975447650431669982290956767298042502292290299631857377412259622827321640851552534126277283341036911766681994688265105600376179402534247859705709519188448268481618447238915181681143229506479063963437791249108416962716903181868179265567237059143696329659918395429212316647975191860761309273338445470150821544943689399702332720921369801777425226481842444796452451686259885916196997736608840997885507985008057879255650498088728336598357061342971260688990266704929728673450556719961263666307944417207750853450673486464851063327084802855068315338066879936302051294925140736746492798462527319302863848019208550649306750681549630086900497503406424712003124093854040487687616250150891681023760232489384782719805646430423568744311584544548227832544519827269773977374476686019108983201168004807694772895020638088278756364587568358937292750963531845616868494638821724859088334310002168529403418299004896965769413649063383863569605175839989617919548613011583204660036291643937975976614724518608346692974903478467849463108951619214968950849473945048362240283688429225533161079972880539555504635777318796681896581134471623598343701430416961686434824848712346551147149810216442156796157295519775518131547106795901047037534831550460028061915136165836872555410871382464362874305670290941723683763107407666542550449756142800071427035051408672249211610456828632192415778421791096531371823230552721937442587112851654120186360895856104434073419401504988632361946442473574855482562725199983242470297315941495889820926862246116610958074680778251296439214107742837831608533633224171383521096056108775806158014122822745153637520067639828034572486267480869307783012070772379132531609487989145999860700751957623883797369947339536663608145477603567231041056578104179732808882060132381348263062017126592187163257250535352014714816329879263304045868474111872804696117436801711857380890936788971046309240508512523708790040621675278796832891522046912645630511545357408851782472575173103945215708973741346419199550031287601579216110582758330959363393293502154374627427511524309011272385920583450872041338651261964995014071090093884574852226301761424846240394454279692508486480650037280119612749155800391003011814091201135850168405066780625302950530382651521193353113555909656525274264142916824787890106629913041031644316308165290039635265373326215700120254569516859700409981613998032203978837437920086622892159977397132394424361916138741725888736322275888754015352064719459479863330712996999979310752726282157555216418350543896849492988553443691834393597503420725018856450516417713734011410733219168062800584828392474586417249804434907932487174358871676436942682612109952329090129701660497861957487474140989622417351699453638475351388933604663959808922002277622710514249210304895048377317520455201037405271194465248459470548994896149973053468964780712874250923583853342043298153937701105229035727199891267002608531754449074777725387208595220790154246501066227340550274586291647695473173860635680342653360369946900387843399007191859939150557165708455397495799135224373448028194180302467467002244449808334984004484317457647189833977438642280295212594084626221404725308582136554635345922106859881294139995441079272117674678879525249431153051926926414749685712960047081616029523245105496648224226395193037014885313016858160952205771794281863910694221642051534524094893999316678285218551551007945507494346187497295972332200330190409575228749425812208444324334497481390788607909293789818383610537077417840372360937503540519252257027981280815247311780395355678563831072906658656642705553793298094885550099218793395497145889123728311516184818649329676398910566598104119072568463460575228352337043537335933179022023359993491749950694037025426997770244717994831326041628206573318346142759555963930474282824330686807849396458808550325889251884080592645077876291470175287923748886819919373477971670325137364162514567671402078224360908633998719306551912803106456618207973332093132998235809251081201095218703689199687564389135159652112125664739305038138644399240062851391096263459131342271314075306218209934433007481166972246923824780116234010681816258801541900171535665648139318158267117757432962347468350325332872980895128112537784548408780542589276996121439370965258221953368977732212235000676364992052364195025060939078745428037783867903468126906128047741036648090474215528623585914305069236334077152846409150241639952538155856971674206106745187045219203753985755252201247986390167818319999928029795452047928524664483259578607518518766652883184925239550810365018017269010019746990298780413687617229690225926033801143086842210322816247078149082022784733208522416364809489779657769817892859175818734138943301139611828612099236715543569633384356296002959973384247094962931399271077558012423348627523619008691295461954127667316409033226074416173230329321231404024479649080719518849583187920298165525950122061426787829815457145707867717915664760253063616908462676090023276745385684898460772638273021302552230122792558027324816078202326668303491715824432819682792395666884770481701357631224992500484235004184586520968181896011481366899625169068374640510775015822024145447768296992689585436519160528462769740484774436394209667624520639025803887099993243339763689606337105786233467262144740778224751233012114577204114780784749300686827778746893752509038859198392456194191809264231595762976103851578871879336218060145038058410798851477922010024041080000556479097226947656266916379224904813284562035992129338249697172926527560947861034788074941471465796522919025652403447075091969337613875120425198344767584212985245544924182337960468710944679821168497376455032829648997985131012545110792710656414359252966175950104075380093186265390241035703348104984459716805253316644117434839317374344292925031380752437348484983759555647538581195353153960299119865796538562727196217537024577114666951643002791640118287441684728790350934223104540342432575764896148570323537438166306963141506751324391107889247529694439608668307214333652051783253804589451175073003851698008161165291341390063877358747303732331678747365012102323671898489027055912062674012749494726969206725998575055658028503974071536697458436088400939924381959667177771630719381524505216407508939414449012516016323275364354048254468474457343623670823151718731570178700479857708062365748333264669599637662147410886234533319150800033228993962604833486910905848023961775342775303119866511361434952396811063486129124696663940052109412440359109632098878479720065114059213561945676206693516469610945513964625333534877446242656491750726161785672806722900967583311588985236461643042151076422690222110593670401265665290048244191195180383014041353310367676013797919281128401078556042587805045774457551833574026974073855850774276643475511432941762192241057586630020015506989377052232068679156559519405848552373028634218162085830593062251232698388542173729108207984501432810638667097474705781752408544479184454963788117683473454396860392159824166856841760259528678992831028799130571994968642551104134267766630495787700270820881401191652961229453304448881063143784571611316427212801129604388455200087781091647085801444606703321176984229899840866462165434424230586401851031861461866453194883764255480640781055826332841854782741744961609744061911494966098991771065558347604321476446992337094809956344300258766992580903488922702465486182255459719496726417096913474035409200093342123859604560794872842452133291995016553148816933124564130283964212948954026721686377673767773388446985861511238754096373970707608402113234019048479519498852625096069669971953302139464989067481694265030772277053843744959369086605253332370823753465446320022913441633827090781134356485926302943868447297044406142929577593222082274663720880956841606649232452746665853864107527505557882415685494515870219152469507248490282847886808532098745209137274412468144173420074898344921787633158782711354921378198770861103198049579608303664476953497089335331448517767822889829135198147574663535861993204147921601656993611743823094961828495919370503397920472649989647099520199398498693062137295052400773460496304219536067513296533011746000548048612015394224232632820852983869477240422707747411856339146480127674281315905452113754002439745342557995093696670392925054877056688164590806088752013837101870019557242235777779035808242721905399321203039403540426085335756128137693467254789018999780705621881037769650453207795579002641648512313518785916375606174116032870056857696223540180454617029822344482193745313310717515179352616888949963233592723298882535034366185484211952321861120219043507794222005764645953037490733824149184328466002163473747388953469130436720059268471766867704119430554728429754673916188509421617133005128883681364206049007122354922749949039010626328348283611227092055602032687261099260651665463171704757388252128567986171971087149884642268674043430693630005320577759056964379030210135331930549140668678363201588031929918008827263313014505268731115146911444442834601568849768744270196555423645693718653694642852858205562952152791686988833062695588687542470065251060249928515691320949247346867650568315387169679160004318981722114191556170671203533456901033855097830954670185965401907514302304427430994282681559642161646101860616781683839734664693613756773389131141832107768455120573131936397220554286939068025025063323070095425826396061608339474367546891910340456513790887497678723855416594087033524470966177878078989893206144452287476236111843949202414340161923213376495299627958944604987251996475007908790903777270222162088538043208839677713129976730861239654580246300172076525686471353341493053030328736766084639144908224740437204065283127839992503612143664339886288804402307210347935191568431640696383761629789871979684025803603259543810456399273779437347156100917044485400732660278659733961664521484532699558343124388269543610363904703892978912412764377618670679409153499895692175671396954685903037853062755768042545431298052466678498916233697969462307449861289658133266948495415906321576554987967743241783815739317333514694495333026215992124475069308173141145999098889082737115010591224177791076339763779150345779351016502047650741207919698832872523317141822811933959821352605108298464384839765160621732894961907337940594037161375933334379526412254745248385149518161951069939160413626385256713311762021137982930888512010216381357080224737844346825679747681198138017767416986159916781336918339231104975071931698342974209266103260442268989705053136750602879550257370608642148847379313545341948872516239863425816486490986189185175479260543663688760749073745954487906164220072227096665234154421981562959086968956432167113324090451677092973176278383677361710134138231391205586676570597609412476657283829824018274747134457412755023778182147474375069029652800589876744113839345058419214368517096340112132044187662391625314027708650260319396449752066348474058079525202244978563437611612646237349349256006341911329520772328700124847353591617331101666820826606742518625142398126786458335074992920070063806255926705707296999488481516414090093926205921022728127837137378780450527255274640999618521104275931698042617630771686299328907672694825463570849499474164255649745266505291477804732556417553817253195471897720339114314562773162266629066895485827476238019263758479986040419993448281030427488712136576310963928976689684171490381029319583518319035403655799635977661786902690942781435986015534521438748629487569157702555680651784249723188034173005710066135791749694054168252309075138341260554522114627520524235843508516191659673826542630173647497928690044029756006849336439274955689519028294785676184984158822537371722118888868597490691176876826969112508017039099268555821312522483447619524582572880059976760584708327233041075410254136026995796289121995653386762015304683848269625383913381886148230155605054155735290337347583252879968246391181957289317345562874365194311432068117851625846585828545617415154165201129489812636654329277013472241847908143790300656510627938755222308705575379252817900678270561481880625245845753003952141470161670377398520082068773747564710434592687537592780897816986786238351034796517856426942988373469314191561015647105682162283976191335037691853585337427821153850772602120155633979087979479181157664240701369809528452737195135548446548878432568138004970137905557638219833091800427173868652337293091623194149468890616953040997438112029561924321076542989583198420548784808751206091804981090243721241020933617340664662171540138412575575575840241609932934000578812120552724571422072734989806084930744209257903233205391251700097369734073544940783680752157043636274078636231199035250392808909048154808093287224651754254705501433163903899424263789384512339684056970105729743457446090553920910747022075031083281586504262253628926717394930854797467100772614674644809302083675430443273008182951075097310761667897401026736990720312869485614895233477484687627187325134201397964366823712820666238581560461848328830902015053143909471081962753586101344276787107890888876880684315391230985601800909127389877587561863576496472563387665263948639055866973158128563550327541551597262105039244903078727616925772596233667906582372687761652718737210055778706239491900622644566121024239844618028136616278188869632818125408299949277584449841785396104923412577745149240621979029021049985320615195267948858285732561490664071586440660847198810650003912320432515632736103430031925191212749146178932125892169248651215395561546800794067232177484848166555010941565067344200111996810892884669093630873421882763480711297552077753858998693770243211377318263337781874126346532164664216830222573559581317097026078904025753075685718205171691731933520554963041214712858482860006733402974747622293316290553920281852990009957308926557128750494406846026196771904792350643186788447578353870265445918803513199488117432136355826252714074682428436662102988991701263133804955499382352420336564470389404932473766094770153808643589803081525017085656632623104052480918180360686755150010632624646748131516513054157229012369751591700721160332250242190549355814744169162251226319579435738665753353865568020670264198175178763805276031711945872144537903225697505662654463387434828844393383205704652630280070664184450874254643877320434071967472810419967501831818387244929449948473948766025709787619253953967533574557740020921811941567482427646347832150964156572199395918362433771636405469915288281229925334230382518938051380117813644744672686411517545443630686802532814468899390821451653173044122406139687790809712790521718099347234779481092857053639224047347044881901673756476118658503888617711765917465440218521254074755836343832734802594570588076618876993947311023337413885895581546583970354849336612465972976875334396772113972342857404449621699110253045645829643823372123017931525813402582960645048249771040890224961655594694852365219607401527919325302328079565609933531727773685406055611591595137395009240667233800552833087725883946853421804763329535975598011754383485358720889027694092619297050873175650712021557322783303912938307869452980890812405042721942411677737175004692877060176729034271025578851324940927544805474733245961860200842476294863060955508536881004703408189867941976649484688281372155720708816776821957619603655794865350588628828576408261053631099296919049629004528946639086758330022890507113745537800907237429392615884514381778456765267941245093265052073232620549959571292405840231683450548312051790334438995856606797462527815262257408786957958640017874172177928434592124111339562061204502833729338851988843409362970798058477849886680391304828885167456122191884312943594320988287922954918024839207549303578136666151253885915330945046486222688100409548184935054798255789022257449814356078348504548096172578979920369346804005758777864829814059918597303714739675459067299773655447001044300727199993400583482156001246668762360901826440131701601831626909553853979108703814379417195329028853743527230108331044927016799268186618594463401159106342888062419057851543814966992268915216230147615572105425348746600632132800447261449485866342672406566638759805634924808311541005236042838751430409601990804158383548199769347090105332684489226229630954404902012328079559516207119575839923437687682051316435263465026916969218815452882407428155291078068863396856945428317871287518392235026080861587197012935311110484149952996263293059376866579960246518927501998164492379041025833731172130190219859397702397523470329306947827696951869951046016202057528099767059735307693059468914270601608229006046818701914336110874693376513249148943079777845200912069046832145034938897043325081961854099229577875030583055118455846593535145481657900152777367503020414850104547116522359195819583902634974109636616570034344180920150092016966902146745789932017723830359073215898905202187739864599719950377824234573249262919620325335709964255659094645110142331545637966752393680578788128240917990781754326309860898419453196479127729385105660858708416102832336787760790387864211659645391344794026949487836538811246331712226857121644225589880183766979703719679802028217775559572200928614200044728786689106244596208797776140032807068686100371789208585859310055720054510297011121506070619401628250733534796667075702217694245731018750146178825944860620062498150035494715628450367482928894668078937475720540718341564186576551338791591612301457496799683559586246451794770979987820103996971211607422228763654644926294416306538860426176435467900710860931866002042884253201685499745476764133928661454638406971210158774215534750559944675130847328475484781090447371017617206861718906803900778585023023766088929228216812651229235825703308745176239079724605417805753335571247196116396951497265278007948805957537094962786192839603909743872269413745519555943632712414916376758844811770395511076984802763540024079667473516273114116763103567737742449221889965207554263576586428308842588415498866955778667816254922701077468383448463300039345411279976495030051621987460255729766562085312138491468611802527017902843951952474844644984324668909783329953150331308607214543827655933095306339406467232322655365481911764610678639025786572029862415690242141486615291979137636953916439243204918532268621847837830116491841258978515674483347198087961908054715639254156498589641382659336879708554094086246092984686257400218685070777218171778853261689911615701060739503125447210096600138663028019382198865262338867784261354500452646520180999585471180216573109089839965099860513392224133701877506291994796579795942881904799307433055868188918531993285709351058864428076341063074815569378156008723609934850146403389115655880525684128245829762439899764045544756299908696576383820583916711472778408032955926997133881693187185466336006148954503748953886468665450179207834640889303110118738154516002569811270385172962368038540947242319623691495298898774717159963060049157692200576886066191467382679046064831362764196594860217947902043021752732832004235161873651272158480443578141221202470122365854063103773029755945283860297531448635218522030408442316832804664984884561903649389940359824623892666927801227221393398113636078278870638363545587312199264035856378321937195276554139693750269806438597147507187014062284438031787395734996240028516446312530061800312397506025331374898738425769014360624331413315795053581953036891064576696271406079080598178497196627092666929136019149384187772491172428576368705163659717827965620648124913974695363245430338620545564911658836003531629231667796689283685527173458846975305357656101464255837769429258068365598667627609222016863573066988461289055992382063574308964505375674204457023467177423218403839493565203213289130665511946161556929187748674730939775070453378227485128292802102583497354867576559136639931601734467955910934059408944229103449843148225167161242391833959134554757931945528742950967400584099265825436160467257347086225941101944629729521312838045740694626586846797980492709156951771059222649409391409144490105086792560794264317559903001751864158405205746691768841461702106987418650164146340597259805018123120564601762844261595876946920383330442348989896549323098750331195079250760372595105188190949562064341998705388244093784676954387848782671813510588316025426170108498218944206520831023767075754391719115700509755375752698771928256776013348062269476764920084198505705151465922594708338604469358800514986903378674233734682325769156238957370364181398693292867093146540421062712145472011301583593006790775936254548682339965538199854896926407940251433805791410477796914316691565267770187948699567986503930820693742635428432188254975130108112911329614677718180068221863673231627825287447796505192508443290252308257648614785349222153356565745864613812327071640101562621098833184961630426507123527480905816501312219557869903287487079786252342450290329417671413432047144853279667740195443736617352550598417581240209916290920601502965086633483007899061970260819342415858165772221580875411480878322772609833700168178651092917289019574613406518669652838251203240637515404311655015639037075388272400834398005711935428482737649382524198648347313406405038360832900161602780843960280910725394447995157593164369898672918423607265485350840528176433026768590647401015338737561856270550145509742869627345153483677372186872044270766795283510884841414520943313466797241702613405776277952038810792190582463353072997298256500572705295989318542173177146376595371818137088186293050813120461483555678974307185066468970083853542000495055883495911277949168818804779536031962280402895164945747398113058809526846801806396787841932861726633056172896379214022367714304961408549200688454216617859949381766364969985547627958837547012574488425357797625954518882553018163790361132180492299153269389961616005076305986053634951086347611059253034360709581769829169624262991678098303205518276266300049758931175822357145820573643759715404840074303051209154488289418583895580147397089996009813173982482489326761280118381063725023631237109723177597813619080379818012066179314955422498785912310709668741456186201715397643610328608687193110592171775011968511714593082531969306893553231124620355444607622792347907336257569492864526915663113317686751738755805683467707163464186519080318325484071777041795397134534561038381908360482089775585334018612290576511382365546967493600307956531144178463203632926438259145688515745411061864721223381524660550872016021014956618346683393034008024526739629130056124350205442029634764364597427111119194858699473358800909837421693210997564737604993256235968369291122660195742916708508252771870170838670555355331024752354893003856232731982920604577097602443918428435222362459379112995995097100033220498506686236667543408177478972493919288821854569203926677603714582872473730585326312515363596865114850845242500310514822905028726433016430430559346408755301989889242417513610644690441097518709157497074982635322053707448126888321179445711082365538160586212598323078041029561181829767683563423265136074751752358986899845155617397781338952552372708285420397323540166059361591080794175575414246896639418324594909997056856484035678588972874349025613684193569803890419770280477527433306883416438793841887423258423672556668659724316849986829528309570313939046744418856772056224675990638746588874920165718911967182592307743011322939823636902573471753698146767310443919719980601477830533102738432318318749559647883479582490622918541438212883130526612799453275781639474067093978461336517402501016781257369931219961906653903042629218642170516054688216478999355432562219893777315050373321542712575035868612337201170459316663752824942227229862221066434702543698584693257076451984041327612763666399648547689352693736645482959094791456309538922721422199113315873822373497850437068715657148043944653836612753443072075387497092230862696927793555727493031825534635190044953755718850492687627703457655236703957737770393148071775171312794439062409788450771446159994834978482878052146527928607913255575391700522813154905483968268683168210360100442156385362295569473084884139918242880872468503662111054248098501200594049407400425045802136730093400710607603242167085456164568735120828790525195576829554095094692980609327015857003560329414143839868008736835983584967475883302930793734968515601665861322005165482806208283461601708078001457797466608045593096398713434784430510131204994149120932151742335235981949835023479779716200217320639454150521371772073516284329011281084079379589517106024214677252692497282855132780731456721043135483062736412506165964892542955392328171818187480308115166263649260897366923957025396012009464763030827699429719059257260498024368355428564505468237279369907508793542708020012562733679385120251788083885067105001111483562244173695099504574439709323042311411655301180256198075818563295402939334532639553276902188347881823350731537901278421397947679216511705918833805404927736696379118009534790656919811020126613640804212712851287410901910123580132478908669710014710123669999771240997872695767164238456577489202035340419007589897561891585013800475884780523884485883648333101628038483945188446423915229623132774642883754453886274846124326226231272834867970451813949294034353644883671843494835063394899788401182560069101963932332879607730880151788002892859450337168851165434507739740365227033674339045091053168380861213099200014746254851745557756575995633669894965938738280985061445619404709544101410973233338488459367292147077126683434320473807054876323283419459486752233519504525526309172646683782066067723623905758360710835573641558279090220501367440931538710305800574930124431298171656551897453526053537862366105256229929694634901593533440550351461247247981447841387191567510365328705748111302353067517348940570940691096216523394967016084497194027956997247004612900843610089355214059681260507761144769337676122905555895099970185708537017944668546927703968703143440875439774681451644344410205768082027817242121673750965113228972750400428100071632159155688926965540375638266713818364139257223588642171436494468112810758370843486303586038089006892375961199173607693122470290118756850946388894703002582960641273523266214988441656965978393566143356191730972096019486270929283611255656108709196717232811258879310188031383525830579774964693513151235880394022194987284822146191512662573608850855902839819153353156655428132610876342257421104302171338426049367825802040003904990944442819426779242009794342656857212231901953174534829289892316399018504668896124141549571907959743776449648443834689468688133409419546520718347849293261417585328291433746148801870012518894008520028557014280225533379548090668416806788446924906809620189005138777269015388069943281051460865959840795575448862846394638574370641296863524950491915511909646537926120298020173458820796304242972594404935808393761827206750420467426334831335450075651725010306108097860495278132979850511625484962451650079206722403997802566423191789302089658712371914107946003151686969883694380916345607835553057349765230526070618884203475105419757160708556068703585215944204352978492069390828283648723540204351663289207431047295483010659868185985992128484258166910520794104598951735335601189863443238316972558716536372587297392203871580946190899193177106455286572667350861677057143080393346989071074989974694960126008539207313728381562772570035573150754075331582955570484870959674746398922298894718594307483928908914393497078867673151768476382067027194997272034995029623299362763063351973185631691216723175848498131054578962168125558538048069021202765108246089138550562137039008756997243571982545781925299070070881797680238642601644939797533492679614044953863214504272126957074962791436508429236060716493867146695502344231086296332815569384235531867953765962763773627748299649001081564688404224017241510005890271874118631291137224986151904274252424994174387190931849938584813850635953762841319846391751555389385937769241527326869449886181176392552027197877284690723313821818026956288498846693323346376987210616492388246590706641929215781025879414065992622804033857978430918877321997137316502068989345129836013685372832817023673161090421685379066908752825825536107861898107164169751374337513427481571683871731145785672303513299342023685131921661476817974601718137381449755909868260499660133787943299848556327588610646858597623463360113901540582039053618109267481544000971131086088576873344600627481457627328589628644067703314101330352308895070228879582298167595235538263093046962785347601762855334709117479590249391286011922418281569088463567690185231159418686045534974468686966415670655789272389157616126415196277541987944765260338350783455638760287972157633688528985634064313475600124412835141200240834218937254109587743125271882619856995912775813257414072944579987780032490522553549759615909059356565326791775375209590029008565796330512407433209577059574096732312419688652258924387863992973046478547692603062230619909464271956963296801742216174145422970412427715994189243914135929225617489906146560179776943034802411513774850873719635484030057560629320201230050824101073624890404499372381858822778225099167547045479524506517853421383505927205784586042448822971433142119005456185381467947206272822255672392281327179908605061564509705547908340244026466264191792913775832792964274521803969709704853706372683149643861411950954637055474031897375470808074674164331585891389184321169856362408867623790618696600426079925900145103030144749855561642292808597034652447158065064186853143070592866485303658365344499888801008950780326892494071026416783973473819141320580674923785371188307067445426146605234451448827229173092107002328880732961914339924158159092186745500176256836944741609377845865923846499449497439257671519321690581818046287589119977859892391681160740535722454876781970488872261670075293358009504320930532411934084452756792424933035190805722785608417835658230369725252180745615497147974684014213656623097465288395831473446459137140404264387155592706133078096980254090345399740447262345476508191730935063986184652292352527704788688455857065570989701069828573679687240708840343189863462629477240434818522253008218612813465321788593252771651615079042413318751322424927058077508996295441687358799021878403162254645277571754751716362442768941760302110346783883895188918902314129644748597585821741852781105546030994010183112167495212356855140488769070479827563697491097863971270651020577976413597638011437185013599916254901147724531375169413946644758683030992738613029984698741901204278720726239162197536360198065336907003334613040630669441100412769006922812642875423165608123113437917861602057486997169692316177866862191278652991719058433204379271647226907243651237254718256350854908711242859102738564362621010443460587498411302081655159417874090171246915103521130899385030615647632462555373112868149123795908298154141271867514811890422894154227349778978088796200744331833494834954591755116954944747220054268900504214704462815851517845222721670257877680837246430963734456271693057278756478384774527298366814338456922306668378591354381646017567110611616342947239468341564144057938020853750100552146267743100865801344648457594503068038896254450742244486430023535848165259283866000677632419561486053789143271466311315506297000853116311817309656621998535108717239231476609998167895478664778005951687694396145919373867034367074659776685463671965598844657114304333227495079623087009826872708239232034413883066375143820118901449371746980735350597360354451582293124863794426901992415000568523102853994836097008977180687234074807629403929763345011804770754897349435155244642978806424863749030937690160172335894629957850763457170495991394803004845283924359207417360394056238845664836572042192347565149950016539177919284307558006711371804067889424396657452754369407280782954130350917358253748358166944334548108980178271449236180862158106465654092051218289724740733417308752470773615097883277165141795197236052977903760416731210008188766488195273375715001091332968307916375174330026747334329917391011136667543953407681975280239103300452547340831575779396277614450334078597826780997021741837851495016819111998427451777685398482189748412676586072461103896687453142708138170959700397590457855060958088647629456014616413409486408435078491053994211168609330366821852002732427778871498981183991620854333044475116575907365203899407853872054316510231430606013334367940035186680608606826319178917358856831592683617067560839015013798873834196580922608633133395086740597862105451179563304215789169230114030960490908305816424753908136999590496948564820260978552962396951784639862530169104703984629028801813968040382148859275559424252324236649964895765473382770968240220591918036195510981869014970524836301175596378243950564136015579411350530809450004511146563165589285742654563390063518101116537327937349754020340539618533114581604604649549802835870078548012372448649034584652076180327337605179144081008225791286952315475263264020667630112484131094400692808098548466454204857645734176096908774022581304053086332281238193076180517392492320423879314444494022704310185871600595538085972935881077407287693477088816533162302913560730872862348717238840437030930517739569546192054382301405915520290823323923251421166419064267955409526125808134111252503531649665353008813627396688874616414311449195225461972853801644953529628394555409078133323426084890115768914260978191897029033420742225374455700726324022774510106573820398020567608922629530585257094496841437980478186759754077936550019167746412164313011206815460872302057538045734335044778357489984375136287145297851982210508625936078703586890137225937046607717604721585682428043433916561121587912934427115794343574144623172968430690744922722002776363121258702765761843530231248386695198239518611640555214337304923659903993776479026055308255061876924726893935346741883027944523478103707280716269373128639956561245270358985871323402296517854709356208767556970449676674050651912985857903576376002952658631507827854386269332276302352497351211180910027040882220821930902742522275045183788947888723248009638885188355476178358025117970514219540180308286681073346325543365759931470804039995342971385419565227710812272698239899073910623039413077381013964977871755187596862455838215609004245748357535266946180671593250884660103884419972417392032414801196268763437029560353825551193236221598922717724867744725907023962303147441381173915712183847874401032317890866242370034956389625286989959326565865800425809095777572938849300506555547685141856605214274441661504423106542861726595734229938398530611720925488366311674513206512549907071321776311514258627805690616557174068168538711287892721681595758895563050395768967451954283871830564046421110812293172880953928085958226171832804377160170990658861379995458774078786921019711658760700886178413609681491965923844628846412112832736455771078451123652521482326228725116261720694717568496322418930964784827560666345571991204368544033302796741336551739939771482251365907799576612531616461911992103919906108092712671894307683763931526147270462151953506433102789497673657654217241701914230016174915042240558795672372557742074832361725838884832130013155593010127867018235252786870857729293363035417120035614758776608216246422356090018887355430944942892861518104947148152851363572543752228030952115429971611644033932572533566041036011655950949511052556749984912119010947820620715593642604676122642071525469341718412605211940552908325818870989732037087747048555394637091021939123188642877682278289745906046776974109252302134492344624610746930316598523812265526810507108055122405765595721912847473127429375008501974239177240444720704238568103328147244332017114910369405684745366021736027004330948792908782853329684040706825230677353112285565443767415637669531891728775985296169439774449026066415161912934110290444228849451602650083463174325339837664479468027277473880346856899804248111486109017628450946306431173650135593418161470057842102690460800640298355691105977820156611838449302442675768199186769696557926366320460800006686712786294765893700549889701144040017266697420070472052593515917442903026623209422655199648298875566472435219374601098432740119494316696933976692853978753913311895007328965234200119479740609204971293577130465270776975927800246969570599758885712026733617466002127651796545434396800019826179049580536121261090874008848599039908955009151026584987436428999959276423930120085977458149694292550613752040299572111522508149818555580012238053276888897418398867557076563587137050431174472704089816290578945479045586566992845951570156373712673417987015600175983315317482460292512511272094166030490825618796748075104722806165172529115026642832394219994654264109719664729806313629839165682888031801105913270588460504245081113844324911077217962756039095671079939046401173680617097394459643593955546663899012457832943520053986997409029129545418342858956702220731990710848566401620050798820723639815458610484476769203178670141108195435205042408462020097910259296958523493862099914638779341668072593013329654408347614584547594910467769609661856997895918782948641660418535320729425915080824816613752481742035708331293265743045846476567224075237867010431411378314268919685078884692224048589819020558996738750716971758357558104085842057417613361213005799699443250493342601954151035656496719658737113549196344285760960795956800967074226571924163521005076225064813907232346130281508599508953591449098785995750238038170610994028867633823227386034433951066123865743773751442363346152592153814022241808029068048100015613815145119912632470819799926702931637082933377040955481178590915188251781509257370233427456640720729329226922215883571424459728226176572629657409429719888312055273728201758979003425886325374764233301662782366533322755914550520681042347074634367980969656814760410849886160990597819609471727474912808867194971535138348152552884839294527616154291252042305226942962960469935709770481649869580184828242813073577071261091836309645285872544905626382425301123404029268120105486046913284839905611624405607060494045009483800193958931537982655503368175832063533695421293505135220690212284080086354968871324083838956906327515440867466939634375317459175641725235122249420190055940717039282304370593584985137513181832565850282243934369807390543587635092634667194350964114453265967105927405250578601995801068315304330500369954714656865613512814897401507314768913530759376035774663889917697878876795099267910682446826301141007819031083030183622520094893095378272852797064601701498228570057512023095079985856574083609732243564985558215508545169238097266703647166281788967182121129719273954275978439587747491225707700010229295043497662584220162244678122898496659320341528449018067979155710147131055170680320782625519623191935248162723393471847719836080039911461388440819055709775754774513565336284693860304542371225875302420339814498710982743331965458248991567229002483038773528914511479984082637160431852554266056051894249085033003428160530863949232538739529928106719893441930853647206418324976715889363148243099363941490494870854833565840936699672844702049911551586815732856725968407460292350113697980868788090641209824554482560188873947296895714850418061670856076653729108981861367811231242528881324075350491440043580175196799111479605021210727781292505251081638401715333401952212798067103227962865438182960141846624521512105630124542966416120504458849663397815593237727341197161406015222198839025198882380222388230674900901404474178149082390672075995973933886693584421372292007323191231999665211442450480165285718435706934991931754759752878799565984294189658876737858869941828849299553935426729048805950458291484359105979349669597012267602950236910954529700649999262051875260222642004971017747380791762196786408419318879192733204644166326391368362991103619417062828974262623216689694508896036749494141381027608419746494358773907922256774189957883410974619400525909918877451225971780760996803639169026348690452961197017619252380833359311281359487647056765980591787422333049085338946171368407402467604879675656576268930504174270690689976873323052282766872497956908647213996405885355452433751465265120357893614155183042134906623606239103988295433375994397377742671767556355478818116395576202495799039454238712028508044874713451634469717647383574886862280080149031828266366235472956139472954469326657591423274646465870573988558449141851450279796742567234094285421189464634212668428755024282612440294727925833183143059762908531991271614222759609358036936140885142141842899910881780732031345353258815961924767004790020404537355128044856007190261993563879469382790972413745521254850079843797149410720672148827553325062930901334916907537397649183790630888426425663887400005708833817632575675432746209234274366610630241641608880871750094743992131102579995896298983813312475348716719094903940554923434037050408198942414808850778345107339700353291880797620231938242033763769634470442227972852524914512070921955700861924051837474217108275604329846705563818186025929043662006438398108454098068187097267580678086819778864076622775521905543749996102747169153632106046270983612711083169174892381283105892273136305343431492659766993111371050874939803021554820723267379192089261364360015222719115800261105463686364547716061048632098642959646055580501958509637211218077027701875805703348193483706641696428672917982690968655660147854273444227605932478209313828439786955167077517233259612609216336243198393384893393845494879422692687458209935664646420125188111019240637257363118257728612063587755041178112666919183913109401352724876959371002213544388176832992646557794358111561963280133717501120466750362298564978937489959218634809643308276790826688533630544905241657648848416384326300345924974589525921873834126924100539142782718687670817546363405066550165376753804260024849651941967585693393044467993043341201692744119040864877884901998326493367631478260463783186724747446621897553149466211485421688928801339781926007570618077090393419622305335728737639481613212133928430181770756630681459113834588767208890856028604217001088519023145138700488027715321872881585948491441452976760730484197280240035143198715985656670305840874532610815398042206652552317313040376926400709875667329385425796331291392407432864056478614766088444141895147320871050315940410387045650430918441077849597585850551926992353548228346527290073747453440303697217483695659628520471948921030887037515637197019137977700218474804299514503987223517486975496241500334217604889479829304432283202902972024765084486683848318920563269389842179635795581306211509439402390792356833966563641876708679752269460920814802506032730874071517575564965058315089147748987983114404996248001155596436820443238771221392717042465368018920781017500197777427654312416253495803369865835056334732617648811441626796920032929359037141696059575330798426844451819256224549936457281474739348307855097852786919146790687637563279712886208994267806395465010686539982596627233144318973892115315185204016394863227368285810635883632507759324875109733305776626942489269031178951265150633697645960940927039285107352178534888905726960305193087556781773111020259152494383090749357941131877561289070155477181872755974964592610730811285863764851657574873800541772554119726986859999798826662461945768049531552582664543259654001630211396004547793257310465532317538195266006840496326808574935391450880141069276250505217107138428200965501196768473921102418509144093066774470996120341305613386283129858166329939731343554030678296612647450219104748015177137156795410579124924511748614968661363246598725171007986091506425228245732647180912042533702449827451082897632790376292769009990954609702868299220767978282984204041323432723251403363340281677074094962212508781952563869809707507612044212668738743992785852661672866994906139808612768643699454010868419358267117723511132930709514486031780393929155614097543080369911751568680103274563304651382957112845772968320720413069557324214078695570222708232852117091648466325788243085163766654386876628323871983081600440316955009583085709403707863566623799632347486509191329330250573254710728552449087597439753172109398039865993502150265351268542106221221186641545835293563795436472292636129819333716529871509260809805201460117737308194625118287248562106969709693497395545972161225124737987477144253605999337557204737469641532357061203943868875370818261111275497074609901730194915839937798091685955255276908589031581776155773972088094304974247527524378690809624526931509356552164541995754019763771325367727115593027585264772667881075642372160988588171869851351125381947818477078919453273130357013656657222831721263424489859986696852414055812904051776304441948419176661676048648077483080544117802148640092997201943449740826373792129990624785755533810727964122682803296224163867542067750917034019194557264249104144930904453840783861595314911248860355573091718704779175284722888415771688618533968542116918543294198171364744049560424958515251825481529966919131126584312339012514291136336952043353407700242200977286934001578666633143212133728276608989580352513930266142974071828603950293001316889914706496970800130027604158828376037312461365228819692428721472175026175081459668434534209544053978424205349462032861513080086431707613301376892814132301749242357177710740135020064152168130983226599880153282570625450010323875773281230994541791922286777615444405915495554388781692324705255331608594876469627511723884288902317716592581118690297777930734901487552858677097615751274659138357444521733354116030355214625912970412270318997501649988381231105462045990536216800687654925191615398697302950478746934455977419620167457117270405130942274201648606131376773625591446584491032654990948329891575322880561059838819952229486837242650876254804155903065027814964956810478841724864917813271232848375296794739688965881109819474538972430107929515981605966975602362878311403376584158188186582143313272219163671955796005909211923756424481132451469544342033773356826521888617677995917090053916008298286948645273941091839152324121773534519526610073895719870361615083002258176071827889417161435323729771497185008873602771741142211827686929063073273711657712966161635179800558132214686848668077947199121102465062805340065907026145356204815414563591536180477605410636900379899870625393660381507402501043610670680974276732834649745985951458168376211738901233549881814930276034255606788530423693373674173492941767164858795652514206712761843347404459346072393838469351103185217549377635152832898370124718291350546096931721539544962367483097743549281247456473819596077371877701607280630904624552462855992393139808313860046255283079046969885912204031950889098059259606218870812336872284138695017999598327921374299551795781919637022229884092727352238582852158426127094127620505401534996048984386008724098413708754764952996415235744580834944930836421561101290745534975391983710778804473568413666189885281694341983015081202833649281026128943638188199043718191852279639849616751978363518677215497507972272199013991494053926050833391537692507343516329987526624528130384800427366796692843228379943422478356216236694312402005186785091267863470665065631778414638490344288448471603216155464046502554432881176469335425364459097260081927035980671705711708011473081626347797746261713914748484918520176291025419435827835270218512263421761050073100236555656007617915484901312214216924252205429722129396291292202250876107098746550551647293486154631109026694143961943041542995428512699572904481121507219341513231131813304784014742355879846320340769335722313759801661034382261131861597406053421543032165260253427234615705699906713362998105487615381052367238239684153336003274992110703123465001741360245183460770604810718206900360787648359105606222706474252431833800649625703656281830292180161004643637957115093767324228387323174968989918328768106065302662262637717246767240562259726709783016699698048071238727767120607514415380690250784590059208216013788189074645085731797295618770642988143162288991693027109297496886609054511382309925890076573442914238196684937547640749424418208914732538285982512697028381731230698121298980945892231011884229702864376787370875091552451821105276521556064341674806612417472427079748971070317315336803583581050510897795654489263103738711445713948204146488679039734990721004634221381942139611674210847304149132532654187957993450917335859490425369732819693097086479373341415137886479020020705945982336281597227859045996635702423251700274218414477033041156731605783935169615746829795414499750086648938712707321081348615711299115667944148401757084519497922213571354544599118502656224397968194661775539645673192944675079857686241385468081731817153263740380852236532990282244555378825661675102775407225218869282889892021257572933485960746654237543078646750415396673217111087486467086398980543158242286321883564025103577387530434455481951423676397065939319501488935909495715182848545859861859012945926135343858789924257153240598495210971637505975030028872671286322043549382521304747983363949376000462040656833510031305139619938315193791541086690905672958043870649203035843852959307994357383009016488563548955568092766181414887498879769240681404148519371858356520657929189357501303117479371518811005638665256262963513238380673915993234986854243936751243741964257629665179298915045830654260020756854778603609654618401982086069471323561517242360110254963645725697625826084070432235296430943343508500819878406870027807743644505907597360513579826715317217098817826483596970055756206890528917512113291210170308083058968846984638083317855971276145260607719087142457807995301252851834040797275129973731717885635399978383384545600267020101186193338842340468097641430625500483724904773609506999110454513287736903181242507727873140494038931796707390554719567190034319868539330926299359162892191086917962355250996699803820844054764478266953442242585076407005210354070861793425698867974551311505232798986096787393484581756158270420364387206201477434744764639580751952811820984242920865744096410352169312246727412029477950585289132019182049165545124874782778643288423997096477192875396120196502077397117645425502765421338802890737075907602604492262779218187646633464484456007050930146648202288695637655616147484804821951496611199759453587581393371143998931890894338867876517966457862334194498440442870949519733035844140707680217456275121744947893806792576483476434704381688000238414554898474193457205641560786930887806694727498013049808642787247209297218166031342310909373352876456328234495914303100842025114085939612052528447416644027869937077842702876316625138263985651537031622994201568792700539986611709434506282784190021549669165304543312381549945730342408523481433918893725536113050958243094889467162529409086627435286714503212883571575223948406771355329685777097235461094076591872281066116238518623245257495908324276455791040719920337197140832009056942613197796108501268977958505507348868462026064859346875747928469813905915750958727077641478764749230630443036762512739899542409953404056082015345610315839911596297474645342525899579306800422892843272645956970169839623988562845847105169739514797861319487360852416273158660545779239804436764887855995351362242449709752777637676642120325660899735235194724432729181366614502507276264523853167082940363845013658553210807951091917691064770207849304338634857400379023064625613308874305597418844825975908137649343682561897291665123896993017782154175842154633837222091251107048300170370885776601098925252905593517952008188332420029523874901757267062642296490238315044275041733059216046827741514824842522617662759426471491115342317757130540092827664810806525003421550454710935081708688192980079628706744895169653513748521156373511254995372084018871258585965300136448281191346354257133583650769552159354436611143131241352699947039969836000043687822558233903600714469136482384620362036366243674000254780951646931879984475473669425122000027175933755153881584460419138456959795260690847724332702627823759700957664968578380286188306987390873645874408060945227812077502139129371547668655076390030210298777973239073727842156777537083573488949719564645792402396105665991253874930274965443540158065389369612513259518591317007709563401241152028050858063092312941872869589153323662581659018349554562889508146914991310101852365674688539278795954387650626734075711112568725925549191456843946203120777534904327196544225323571817448874243420969957218404939201609485279737003365298971989224195113984442086731648412611832824182728508118937737952175391368351052241574576746783204228819023637651748986415020669394414128833613306841219606527749589199806292963519937153149535550159091641622534614950472319359801044298694443354430805791312843159590746595272461111146100766491955303723530080822085741079107289785885369727695272476511827177993547200537415524038133746425727338174548038989369622964521577847239330716016145452883629437984992890922427524497632138881903924640081761245531790431703770925270855160060195104517338045459811269714027873399304825040244910173389738357980417938716053968739978338251914137377623627461259312957671984252282402993503106439666882797427596699956729834253984098628908406422973502558348855984913784956879235095868453897477013327520158395896197159786347569046992516163034712515986545599860278370477283731166881476757678086407233623266059451136459290754207553334578803667603673613000256396732678263346627760404671301192602964542014865255629853220167465298359535943809974206095271800870388069292575484392929537590734488696481204679674962771660959251463547934241902217364137918049261264179217132237112544019706950664101711467900354200799455984706795840621693857445080197342172048579789199354382677688905867805659624751945504007606234297965740841027949490524039348768328443520640541142686085263290769523062594326210826005330003952733149953183098560979700478456043499742651655314450142919527946340887759689515038477254092072811066857938782122066409108051703728390938131498719707714552618650771649471670852029296819499939874758565131541068720681717002789728068824474844759718520675370355529793716582925122560455383395687851584712696931906579332468124445348436999213560369303463278243982181211102962840289443043237135878620088207520253957372267706184954629138727380899080555035404956055318825681888994510597837558048765540123065253499771620630298422894622251283473747305281581920217404632941426960014984513311484625971055725219748165183998031420248194293472212184241631870509317805705919053264480550992144914749278340991636625322740345470902408171930186913572416752492634214627623870869050859106736795480900110883097428715613571849268097019165671544568030564294177512912521977631135607274781679771412339299242099627193007928860656051462108895124136831531273071362028614171307672084602285432261222628999423703486041163436208149505903495452878614832313951669735070372841856574262201308101731167795433932390065678498045363642407310146351548199825063853270277571025242284739013979113865883075764496905064958930612241026533883012727846730813911977432561623114014183665344223990336480586782588357541644290951261341905555822456298111926207135325388457448981524055529930723560723846083014287310404713990643320032897886387759196729558329640664875859699646348414614184682196963331321511831818854835184089579670329455813349574692595262720848866527404809155676441712832201446965065153217548845891803413315670567732417956923498627324612238259561439354608769309778451430081768751861318537238235086937151370101934375494993876076586481194669196637499474099202876217644362677693220377903111856100811275538501694524731696067455005660002470813652662030469110847709065525207516914103259705766555975060124492217192858992621407966293655037093120809562989658340933207229520118257001040961312339442618326781909050974546880930010161548965251030234883692015734231709021106631497457947593452755860057865312296599328259169570572875152170360945872453329844612251520673682898705615100416085370364121795275539275940391054328409225468740872390042370377335611861666816916630769794243273466777726550454856661210154157688387456185202470577751866381825931218918733464814022542308188725746041303173234648575530944979687728404649374190026603825617994883018628066622916086234758969030703349707925286351584400126160072247740586837771922257246971428046045763926664787464777505146047915018237240055488384263316563914732299954000624994830578260332233522339687073179725241409006714100965658044147319696043632150596868217367851613506013363438663605128756641440859065989413515707617144099523741624247987348296698272567924844333040784042848967443893621113138259658108367042531940086494097090356749354392377102907301197117561692034065015147363343183167807941030293838073009374534827537693244711504482782430142387837417240717929709985986513026342517396370073564476557245177311176498117654414195173721445912771923517048538649988322757739787583021240583348187295570191664253867287242143530074995705357654117136521693742778067840325570988716912613196613547977164169394196030166786276870630699311153977141512780159111651284417928318423352985993004801623781719758123198227911469637242857193629387703082505675865626194640439306078588666995693273412260284903786708379287303415788552780556101892553536430195593170948670532244603029763135593311348194883575396195964025256878042286727437307724779297493163073446945488775951995935910059037980053155072387549598109727502735269984412987892139479600231289210787228183462440759809137956120740090922614495947068222244155020994668781905009353451652165455460035713790746729376289202780303814051759001922590369328621266064726981548798391298007001745004549414305102684644853472003709797242127172499707547470407331379755551351314934166099234088497591069256052286117983755500305272766189448163007440694408667613408300830201692496099236021597084014637738488183540760273540857192111264285546480293258701818352001691108477889746212819147440204649454281777207605132082779763780736393020330092718206842709131532018204869570532082281234681565767302389021666451224552055570129722921293955272899622580197758100603999426016945743315689702983235087823911951204482636466302031756229977088502679627300010498978627219421262606339862584274211173398885922245227324489763279717178005036884931120082778012081081176644932710725667719184376751428550499926683835006878554254169411572199510971878581179648570964744906297647328667098136189582826697617789048418372748507847028065914193070149147897144590087283135114175693033144509009989218431717280910680840412412672266461095369107654147736432960333924500454351387725078149500957487990858059769704050201858613242279308602157182558271027655041629221561157964423612991705220679778038441487587356381698983556560219784515006275888317180817097830798123896501451856447344809228515047809111811994645764735852048143115411914772703830670937560843079868177668699315759016643352398766569498937773572469519430124918681778233086513270703997945052492564857719045495675106028121252936045111276257374707180021702259354556346762495909648053888870651073138970845171572502061193311732890488845844984703697299226909742727588344957019751706089673292681393608314179934228842478006323679806134953957012384230394082337585248837361120941587934036334313671624813447655242499797198344695129162234549263375104919978683475656114919287270484205156150778170987322463674785991161367578604085923907416759679134372609557432888900106314301132409464861398510284239120051513441262308573857729750807065434232287390604795247015605798403053621442336899619145468750094626326279251672123764205504746118013072447973194198641919472778594368935830838472808054706625137334598933780117191428167883743070185899534234214796926018094521109889393901468651130283790013061173966049548166553849640885426065483124009039854039623083602438855113625893388909176107693793350807578729385321959697558317023168488780202098731042722213506103903155818629955185956526737469172338596775258478861464048734662783776627991611420065475238454580994232762098229662812732970073120634108223433477785574771233838747164729792126491914920884125454901964544217148077219887054091672042751945520258667312376076800241106423250817010611095802581653662116007349331402430010943134788573925815727778684162995178514694115617941152463092442566136110419172678273321138944914315866346555021337618413710975590193036159488279423663765361296283517304403988054920021354731865980274346842349265531940419923175135668653630679947222560147784803691564958304684446101857008199830043209247906175064364977855436326077289950959894336524028580206770199165363123818148107947964692995903503849846794746086871223190186480627062124528230049264501425977737648673613056835249062944935225935346326881525558644312221790042257100909664441735590979957654373432514642416637024737985142343275926117012866981702908018277604158391655043536169953454264022770133873897632377406044219681621183743128122602157708424733201413935843131727595068300199492457590245495569578816464821788581876174412292926941810430197506935818158580935505168893252621955316065100887626360680140156533967307353190831129166331537400983493251323915758791464645648374277762495886554210543737534949891232484994928080459208717035819174297137915486783749557549026499577478618863965281320325467050782202049117931846199193332346814184307504029707591483602529013937366467145160753438620353218560719821132564575994698124296675294748582195610821657633368992641310466958496197844954516987337192883566820732626223678107973283288376163123937366343746048798980084231293562371239089462077353462715080191610560527587617942173351711398168378960976862589393603474205081281339927673144357591378499232432396753354595574632043648384962570971396720060750578868956381367823188851899983548099469627431610579469493498978074329800493029785401096173345865504625761753006814701166204806274404002699896816331036469904444624376261827131123690681457511939974288057435279225435726962285952159013874128955259526570595485908560337724370475263304334692383013211326233417919463171203960462013920894939168485478722540943188591008003961603941534685291187861665688582726734269962807166432545234222397771856376994759799170330399456051925452290299140255905875837866106041847659548324066635559056070980274801616341876104149814678961488520556309445517256664032236364583712159311989747666943718144523594656292894271353198688921322144350097376205047079287976090572635484466631119730247950348471856185044138491693436334231530532592464960985730982182528998608045229114423211107961787131144644843617769140143700821854518753962914878697514000061635252853878477731051011529316763573754033719706391442750334820739733426866108555615855389175970643011650287841182130829657905610428721526330764588564423251929457419236992233586864637852042428795332060724124238282033838116118595481622691608791291324451725522888786100505771140768514216808553846453606134600304391137686976514350478956143098145413234241966804977040716324319987988306935398724265000474978491371675482035374588059667379563566326776972462654443588978742097973941838645465067455428546731147334150736978516320838252271082993235719012639802888054679083262369161551213674563902540865556016310659044038152717614489423464006861721387924499402339996030498402406829587251071566076129782436402341873304567909715516041783778910086334016172370297855589994712601471036154601986759355713451306457749159977139918586503678707873063569932669403487526094029516204832691794547552420395914599504245619894217204331289429898657669806783579987091642748428260248777333616293377222524738288674326930659106257029796922037223718006752030339149606719417536433343526399183719624945661079964339721418890270142938353725482564121337238698722558311558239155997952970395317574039840278179893981476176031070333429846825626823600117273317906793017053055024971482187010202557965852488074347323101161999403620280405755915755654872589123911924610089241037158174970233449736836151346788013951430809716587748883783504643221876084731845362927955141883178259769772524949590089231443995778397107415484715746985418641856363258815206689142607038357317496696581777579612960427225794788977808258706958594653985723522476517665752279471223338966452419694500160124053607917426050690701268266229799389201446490180824682501805937831447994927886599763053191543320250160057676226837974442122711550072670103408940741606912972355030153297507895683046904564318648523104903982767505661930358069858997333391649987103754599338980913616242224997992019146577588575489533687443101033745852302542774700011517637614088593372839746318263288449641453780019046244842746498972118548649489447939290798119981676086302526398354406126228908865271450062298382321765039167245031377195116207402522412079200153267598428371843165080503999794440295655835209244712639841380439528003030071544131996422426956577959038893498079867363058334461931744778068348406393750926195951984010790429912488783699567855947519268658350551424383167026271252379533221584858455906688667711056344502611809736998163389591616483533494308743861357551329824517719074635259748328533857480402819320330369567778480225043015990157297059891728592844028852258677876395064924072744960430049772424863342037938718998096916393441811095001293759107225232011193132738318196114914943660679228511130683318278561987011490507514835461340157908528472573148678902635249098283453104102299680482689034016667741564370046439810415018970632170546890222037591212932305182858375769764253043923222276466429296762725327599339464659696625210812771385006067759624541336732817237119906843174996388486323260855166131477873977883157213567261620848838201481215270222613601340182478973216533917061565418755105561755866294301209090014482933459639443588376347341029667699480757575368920650985293766243102914736906900986985343683854896075831418187755951005403792080253253353314607946668802224560970721771195544211408263918562065453619864567913503257348762101760454750750948844412564284091863954254787363102016128336130210378779811378099605117105057942403630513583043228321245123218405471516664827611475519676696483010607101180065537500577915639384947013249285284858164769051614895474268031319355965241067659135185243237380333511126118247534510992393847029665634903224120510866309134711000509049211376001941287330490905931911045538266203878099141832791754751819463784417278909315858127587553728729115242684231471018260286601346667108438754368385084706829925921463700154304380662366338930540872079296306829601099897031525055452073558464093595015526551658122635125725295071727695812092786619827836756669878699205858336737694788862796759279781226377197365853859229065786966191197654184054582735549736212317641394432054206412002664223028376912760410073921732419120580143367106520227537865116479363250181267289901883087662028264349887987743779103435111310496060884528581505498571739325822934547580371221463434323000867691951105211385757994068084284116683448329488926738345172176245635424435583690220418918279338307024234106171532736626787498777396002592383249548405940490664053350471105829633330848610877118551318732909925536839939930600524447467019784170624441058812373444030510518907355451833743643569806873913199888541391539488505408128869365781163995213523943363155685876576673611254442531168461956994017969682887955546518973240974516295998085901449100562123827342209394506479240052919076829873955352205711047691173488145842641135722823626789282812296034127884544562151168991998095003907549010103254503959987795964640313553031698129796746305674582745019375371401526726753911171876927352434196631954353967120246090209204161008828023323338891220325079123864570542697054339111378879936571604938605432926607286016769247341565281686668023046684561492201619243163690527465435650739899955537621054216653916115762051624138367521089545745076018722798574500783036910702591875193928065601657198467428740965960585557602899218167942780523115892216781374798399644406656821795028183516994145169256447523524980297177493906719784481777400159765233193131284364577444907428411237211578603515786470607563569735609182623844054216716812509198185891815003897889025692906654676122654226008809295640664383410749698624026970978768498539527981664517458368780486564649868465472624989231687407129442464850954455379047139862887325126990819921208884479894745534231221116311941216434494035033714857482682571550497844355293602858335321283183651132522592202518182225447471726778474500503189694679458848990418804112016045726935887741918503998437589802394573519011065117690779473327717629695052890513929050212783878691693779315400283867272509611534509465192210759860212332103654370533218512902924107059736438977301142123040744000073654599251183371636036452270609618183062284775016459428929518053404659199235467988325677407846209094282368446193045392109991850475606658577798964695962395420693659956550226760248645164305804684020130589979709542782545300849800723241380598166314160731819869734641774254067596027512602257080677585149611603631086325805068930949940413857602340013117758558550183191683844632444977012298761340128230960761110049670853161602731618735491087293452563253121763533156004319693211119851277798368474132461427942843688839299534649255265944026863655351386582850761752723958405682936989657898580342927730556900392687384310356597921612867482385775108271517178848182033976621242166988653219017897053204077151380049123326661252210319211660145142611070684075456473081087430506054636534501968572346264725244186888496067363003287109165051384281663868733564460852622230194189750680312161126775585654317453111616961332561567523487697550747034498483227610672675208595540641044853221825530610589632871124160862307856156553582758527145403767607293120518950774726481342565831584646911330394153775030432955109829904678854513804897007454458812189827478637049006094014088744585190923233805439970691407417127118145688602996447983492830701546792168803530848256116557092013170198594482892167143146610703424569221557639316529571630291030152321695702705133873262678883552318697908495021560878314199204632797758369153802100390252937813027123258557557817084705949597129099338033994992810311112761356327098848924041462301331251963205959651743539801588251056075696813338292831876651295291072041607122239109149969857904959734913096522890337202967154814506317242534741847506823662373469073322239404731362173327846272406320503753100622119735322849915646670820729482284445072874351056639780284925575741421130786989342079294130011517089047343403497963654965324598149315112654248447312529694364985152019189639125978813639546329832286774840120300672201459448980394847786943172240685900540903771638140766562591456604011342331557167734955728777797713480710992639304370163587647245762447151859179044315135172807341857817488756802215942683964365389172223273127653725442229383576682593318913357618974348777253117882912274127895712332377144675115587676720894537593411896813715583844215221212484498404896890287797481697047573921641694022594232326469454239654771347194664702420313530128398270779322326285932785759316596963890179570807246562963376151646404474255757623006421605897402854358258785306758952073002038222125106040754209785276059945096549560575653908789861595295371231305209156387842711642093165500298462283315053966015214105320984529429421205815026076579998258776994460323007006879062973369682483525951128430919118598181778438232043194606472176196022911904523213108883795733357778719275060579216305936750936449795221209761492895882066682402578774846216758015745847527672030421066275867123791270005646785256969725583078417557358132133497480587253966181519653336951022984593949227878383121742801198537353218137790144772405081152360127161708981003187314084471091162454815561791086773603593522548268940396606688871263054389267846970883858143666199065987517290107668942508815791446848933634713069788049840387134097301202867047996345097013629380553642546075364676513209583705778705734782002987329474642009193669425566259700564110238439607284154049109416610521128621728756315609054836653618936921494570845975006028728661639623613883810502446719395669301172298873817953765788201289466141653122324401350894019462057193314310021210866646165637403207660474766530656975970889119121320238718515102445737084801800821758719919979278278947670535229870327593286474514378420044473588624176326490352312269980154058214320867030420356331166444790661130572811207245461642351845888909511526197698686347574216835889872042406061527932412848444466318319311254312917353208166745460953542843927341606781301857610407227923093484494050042440016334671025770913197520961319839981721605533170680417047939070546333539298081230534136681312553649514763001963817422030413035072137341814154552674662537486822961264379361347000805424063371381969452352948430049842380082093592741981466883474937054640477346453968196533549131059010886129274437771882175781076211795264563418026524537837984943739187671692473257388791134027137846777800121719481644536269226000440769942160555939142861313641517598206944764115197866292875374997199041852326423100069702540066003136964641449311306129713930064549173457158239217635745538459986274898709433298687573800611010109648432174098510838968787972710840679877521038088504548810060296523700358510201278233341380884220658429778424049519463314891722388198933851814302766529797932689834620237372445724697842121601011984395932326871331937649463091101825240951311259434543623025918519058103308922445624091035462899903288700060154025467866643108379403931937659371363878210532556680856549994372643407030935194213305398060292781986959486460230629507998576665967615477721785816682020331529689060347968383109782384295664090704428349854482423274739315701850842681834897258698396126967159598757141978551249420889209195384027980684166102566470751124464272590616944147205353150182705955852942076892266931037121475320041383719700110593045396305710032264094522408523139239037801942213702764775322429760830151058370312831771746879001544241873463267918565518707176188842003483987003575094230623633092551672177165603642200285584834184251306252941482123216365524331195101230473240469854971560185351355968955398772474573149552319517117100982172329161644542240450350116254767399419899468269292922555265819931216954566518957893333766699953616078145580654813293419920399900900825599250909285068341595481877879095104115437357925826257598538244185903934072664413352036563680224052290220327496456974315401528315459438232106402021288113058901872662505541014849829375744866827362176349145446453399729003813111881213876338277611268529943960328240710951841242872026773935971350661370917306035184755378554982756572437901306784674268747398658455250509603520180631069460995475192947214185449398057901415492326435622211244726637945020649615567480106484219341061011271961255196064250517565567264683089517243496468803465488071509584560162679222877222294127148364605948966857488195476145864561625738873496266590593046872805745105914559306729973152644600054167742135340879876812139098575899398104678270837538232344991385979863770028784351986488918344570525122117191862275709238334734529286449281135086653288096177344955370669456087164872126936206547326555750176866664655038532146563389316443875858875201510864306023041908726512542372660242267259258034831112413698038722188389560868727654459511097029149918138939301158771770945255144940835835290104167094063481432026066332363008140337224165437270997230103600276819855011790378076527955643681979006927925467907238250984258489577418069041923423950538375164928729361662680075842756119628018101414601719178694683976669699012491769411387138138185145127792173842058863467051803149855444663355547226066845386795246627698803008131399717988597266438909497343158423319209743661985322024882279655361028132353748570796197061024367190586758307378541459671208309438575484898268852637208960953730446640710134775041667578865032292356895866069233109114334637750592336848054205204310675981238297616725096161381082765696369991465863036429479063508771748350381178934872948935772162192746728349864617430449470446643896966599708292648554789755166372844092300671345533542895771244006586758083294011908483422149092902235514712190988569536004521790872500990937984543174609841977023442434189400866675626748849485132982824724177989782509622073589207799221825823911819441081133602774727056324622895730079952116163363512298848721627168560391207143800079701951533275012557272777591578663398400086546527993855274050909782166573275828053737680566132342947461687241098692066691869595144543308459929822383961169137835914159419564369562432113104365648916485637395015041993328008277415187705662393236999535713475264681002347475623984193390620159457859547927474150972903332685528659906110206994617228705600104664928658793788089905472473978719364645235935747368988589822216653785890773022356742547784606097766054670039158291377114724159262663675071884470479260063142160776770758209578382565470929631750141851134402547849655173605544801139281393974465081114191822102616972004055799763437946104519487718512093094988901488576915339990478675790185206396113217703222196473946703688942495618116456439118679438319924970730128247888969029967189568513100331409735529042420258920442946808688968600663637249705157162516649208043138882880350512883423680180816049368898165215072981759344661782888213903327187732716510954983115598919858119078614662200484034199030781995976031593063608007316417183657390948679321084604321354359229742068629826870674942030270239230929195710978487371186183138014570297442590266463404085285175733209598511676495024230292022482714199130620709111533481990060407353509945639806850585902045171451626745762838284352184938708767858935931105044063139313163419734751069998316300887486843447903344063533876539513776771977562937485247805827847611728060564784849400677120488786900554172241722552251997178754357319847067827278211783152637189981992852302129499817909703836215359611233204979264742528608125142042047828072015631568946370511929327532978127027662436948899287108549336928976357779518508995900868504906539053131922891551839791194606167624926359648846079284923785074318698693953857966933480439063938525632339609772616577281263843189515643002693146878203990017248046839252059973155626263106135493668969356956301551682836245811065277879267168444990151088987309721000930473222661791420812540345183951413027505960968724770920943948834272924111395047241785201285890314717224542926374217777584680947305913716532225975501102982659302484931332756495098349571330868182906849615362577394513425881181559512015486328788836292373955625644112913750359690985163782961877855007065839914951912396738742593571698383937616594095786775726738701480136811445211347985831942354177040378873147094711971532553936951810338010234525531962947407616478534520408341661975943488911217899646327933564031912723180400873704383114391036358743491227357944480690271247639800910344092224039459681778469784165698601415724269369178373593531521529627227039281636402383852602751190028093874087061301700448805508672932507393406454418288610136248960963853546945545392849336194977039893007098399371391476932032558015329300388349541077697543348712843041312179563919603814112090284699075744408442528727988817071693952721040705028505395927408921021001152586236877169480903236009028242435722042905228220668275266507350008324621525128443411448530325114070314927605866281065252879516884429862425460427461402511955762140313002917575217527191842561916995735075967951907326233400822954847339585738044206476004626485841329358870124454131986693780048228370932222875145688613386513698115502782556581400335878906028001055807951400037548466871737528677448242613911325136406577124294009977151092776107008850958749291151387272433650768622802584027589464654639197503002497436686980649446548227652802939472591488088411316619829601993016308166673804627338974383218081577498219569530353375289831723843376542349266019622360893487391608882420560301609021834752132488419228680447791767557268012871639337467770741410575096355612099002447906379555901969822388341194360006001827244756298917002129340492277056209190712892865802003748930029195749975731281633745093846579995066333899516217757053674457633800585892090064009632273090461266549895544286350817565352605294029731919854794620333653058398419885066614089023024746648845786367283055565125142915789931462756563822865187240401817995135915731654640702525482286419905680970012179006858966262666098138175367734760434178187476659445210151602718464313492911776475792568036523845342442879796845058741221773637134915515653460296308443949964362074809535519318869620275383881154813079182036791416825186939058385168086728815433067986945313765450655232673577605525248703534023044567612503837544399817569869172374525631623996039096763467382651619685610160942669677128385571632450264667369631020592370193141138930963760754185470856149981971854546851677518622633205206130186958930758636183309026722811904635027178125941194814833056562736226114085650567440045007983974513822806727729693040554348183783334607526716361200041117355670131267622838866946679557506718763028363391341595389646005441928374824790852910826931760515262331932175090898265617725215856882282944200346422048246561002693509920429008650362777130352668113057328085629354754729677704201742021077230489522625139946253108176935757639002973109570878712484440933626078550759991327286916856511481118511965266906171313870957276399495117127506524918036797358531521599641422421715977389468319650832199061699248435425786005724570072981238960307817180941398492712497893429383248099521215785663844047084096376582825628300461451850217066789952071880551774754519956232792828544693137277204220238832701796656074145593360539046601624424230975025072102858715075613572433051874516922106841884079100122086732181207450828149484516951979930714691482238802642980859886671896380852636139224931140951558838245522535877208113356886070280945182429289185250303036239458532203733746523898238998153144358364397147441063097278124993883655731822568790806436397851819052055667518425133994811096596745505335131684781436058854336312216135981008557364245809309388621781522712004333087328949021658352211012347072113792730598920477696399167829480363688371927391049490258887157366565547388979870989447952229295826295412604336556075200764537082386677832405992934430102921257765505474564017931257905521281777690827709456187673582306868679838535549684275492086528978092463428575225275566846282041030436071201575842589276511898864710176131156418802783105773338472328986385270607205521916674532337348719801096419802428122228453562241275442591135350737103091341005613955124953966494812866904216104820680339071895591489278749833056786328217263146942157800863873236747916403461021962981981558965984838520154426764272998380625120440993056950989837745543234411669759126065746754731318430867397375773170679688241270882244488150651806183989478277638212084838566089634733819709919020126676133511039816402693910641445071426262658320347047811301529111777722975195037006411807917541420174107050717644697833039564525447296247222652474677565102916661873698387402230949060674439824739949921706912095020883172144786345051387945627079720843233023896511574255852180026168822102718631811127782725110464221020720894016032420606197148332024736998848077996187653417096541692617536493837825524637547092553270451874551842571748949245867311870059619194005578616118410827698612270196469705896946797079623651543722262411658064242673770512804500620101153573406762623398585339858289432008593611737689083116421985604065579936217066667198338810700263733021296801246989164814678358590436939997216034425065535271180073889340303808044675963413025070934234972420059430852919730624982786246447732462305737062267322080222042340728254656469665058449147002172156036094645319521917389433510909648478112714213852921564903344143270531544636889421529388264829122363652324188463312835296255054895328658217088669843448982004381668938454854420913954683625702894299160300275695467779332821778358504544969562737280453823553050513674915355345450209630722348921689602124653042942978605720571387152556106837430866008685757923131965004733574840596686672905025820488412547175179702554153960556564919506652915376929985015425571053434495796107093008286478075291985654732587385179924911276685370347143624301155506965094862388131929524664585909361646631965015936270840309342214512222282919676388314203425629330451645730219685942821259680897708764036006315090031891136751315848875460809872527818119595179216737200231022431657952433093738731508066397293927435290449742480633718659659075540901500960925722579800750160720317088220430863238477876478240310783621393337250216636138092602650599962430809613895238633756434953216283380075452451420550811212785174214832435794219381304456001512600983325332962620640597004622742840643055222161083118095154938893184323190300869774528739578232763707968288330612098644753508766583118308712993924502426503041459518746229292716644665667180607950388636941059856556758054118505185504088014219560797946119282666677999478562663080259999096803699872713792257908088879582670341026472628394507744410674731301226092464581364404045577686583793675523944512675017353350104845877283135037897254413784752775021843979601657441012091159341364996169098271106275123568208189506214510973255081776727273908053210203830738057580831223709370453187438062822444064730963046783941942624296344245675146752640231579045563480797105480852533456602590230242342645347766851227098053914791099126156491267178523935127404380001381841306728480794812235507133441593218108316978122961943940231925007352156502562626401067949573808345952829338976878810026441951671345024206653205970891668578117204455039951033502984462705871378192576717674398462145472096543250451770269575395597813689366984214805215844156936669997424643046176130139308437276791884605013268640955344910480215814331142832342661940794879879877770763685846518897860856535434597070234106818820728253687759880139231829318751659440687394507042192988163689094726032644655296660769530410388343067614882410863190277285023107900049334010597374969991309406329213208432021247622940109121984178462302071176682236715663202132838417894747187983237711562989516263979471082354568267509560647686712659379870222106707869931315561453805382306842920109494492948447175144510573832030207718079009439441648115048103852039005593546660353642535147831880471901257879409883837808648208584270061330025221401490849310733367606852056402683867982191979221198577971814905958175346613009196279337837781755296436278834441891349881350834271830680739860367490166223788881782989700492850442155676559511380586735796413940904111102612935013962683410670093760744131583067933411654445539370681709421974769027506528531614877355891783269677660676641931788670126762945687973939793310320243840915822358345519631490694620656699339360904251040335519352963145747563958494141915076637216066591843719940048990107776629873744596069461553077817462597196570447658871590514743599983459661155249480070970607764760228008895939056252149871674646552483462312541866276140143949444945086470316300284097582225450276478759080799908768397181377494908256329676909435264668068966231535792878664096810638230998472636594575788538913267464991921130872990424393690391137382896542217374911873637006826533266919965041240585387456301409755966208183679041591373666733004217223517707784781280090273228981340725654109371930390077065251098931663118028369719850682965690520915012674537079756090698808822339612476945654238864200160583310213699586442033108180925327728211082421592770791875606303316890769897048900021600864037422423760998824779096712454193302717601630488257560188035201284140969661612219230332712269560324044989751556223423822740448850924743920511407725898421868898187867845224765187972184806286798966308554849240586086730331201708519602990940321248500817623483489300862591960528388483115583813433329315234053529010188516129147850495178172010811697528918802197495665664911805922381563225816213525138661442247323271465624360588328708998105292482922896743128999530152002656535338003050884114323984300173719665224010913804735820009769398552236614929026249529458922086292368117419856458249959994915655764140125841087896793569719741519244872259270635464873181340420082400889549485112389966664754095848267370739946713545356648237628906701348205769964932351221596387244082057122909444045764709239253915738962655895025371516984283395311064444329944068561285500687426967172861557963902004764729114573178507297213641061658557126867630763519359830884116040923240259436469852641500641262111206840613996383534839952379875462080205060718895078044759335335554589267587747081492134440475254783668615878274224702668718318729296658983736923427765170508595379026012265646002360394093550811510307753173149886005370466505335570800940743002738795355263977812573571805144338049246380726739121834807902615121331101368501815280978454656291426817097299404061614214207760142979702601194566062350391531366182896973357888669270138020626829432398740281754417113512145007860025798301800997730827022716633479685629773515191606429916576189322821033869061642872109781051266179490364620045541147865608282424259229724501260171470312879662968105326991176514774314454087424853250988618729895665096104382828901282134861119407891570538431382517094944174924976702125006766473755637405794204262180351408548380318533008303779480352901867034756285687246120735579416227866875112407701421587759813125100963909831647459862230513785532595500143116772174072034907645240264645160339922469749618369093004924686972991633082132893825036132913918750248686618076447925417121872689089786992072053681398662794249638570746361682873511115815295169813802571037730067760447925085464734605019715170454477851685613908841602026433408023090693326696420626487809444305863773950135846409364386981694642516317431088995577047355233412641391263373260656882752090602145473915346789223744898273647973635652063779454366862358976973255072493781778882573021831164656144962994373399789768430034655561419544687768678058753405757860909246609612104370964922742209901391139269825397933025767303382978116331093662421674892592938096821092898804562595561539913220038638808311246007011463229612913647969734011225792017770769977161557027734318772214235516300092512218125224963018450527979588395165469515142888417622204818210630436240494580298063205042601522559492718830727104334512161712513404996743966165690878188602120402145845662301533467227334881064214898325582065131888107518348309342542742207907623684117211209847085551422380190738155138883611541224766662866879940080692465124771310074241838672023601457445585236496096631089544637530927620101935703417055808822486612209981870115633264831426645511512701826802117444133360907592706262150537018033056203767045177590270410479665418783184763902865410895488476968852463980290633048347454704945744002312442787516499346194143875813519874629428199005453876082316603975421121721586958802111299961678762176237978211675332168427067958171676162026025768744488983871336598547776322749393267973990285743137316183356723432286570058878426530187902287786017029185303964322473282564836318026234111280461768187519714292884332806998451887468876265871870199231313723909012442026396906790779188253104722833992257015845235837411144372517161336594589946914995699952511050661538633578547250172590597487256972639704384632087140626913240151308304882917100782780273430429898362683322230737729131942740872056648875075770419899880322371369081668571653035687984813550034595441198620765771705509953556116120215716142744851477354040452891341697871493325765759261487429013133277707780778254385048983828915536235886340378935122615125860481637946747077567014289899114946522309412108064907024137745548898936258185218028540741291313354990930226242581954504258780089615444702670389185638189817703109834844545667595341038368927242048911375815973349088962446195162494897442347590316568657442351806295767344265755931712012398576432433047410793515960000925106750763047257072322152837653649616069926152047904826353073892233262247243672103782577777689729885215464278242063732951760201953839129751181037126698090076098170480532025801991364742816536283627179212113891002346396329858591744800846039307081920128953808166402161387477576352979825404256743087772912314441833533076942047365764779980657809806655052265568939247750672428713045289304811643360748589209898910927731134611144907531270511025460916205816064553560342597885095664489241451654984069234361396985078383776877737090756673982185838309373584361035260515652587812474849947966517733277600801891859300980172022974523631638770855106043577557504346617129253261971113319055174050444898586095637388361284015575085930261669500626986681025967403995127258925939957503427588546982444890663745386755363555074134137291214517620127641118859669056761975172404846527372455903023058042356668626516000743754403517249747753410171615447543624362118713553054786407981248178044407262007624455125908322970332587614456162856630289187690399417278546393036008568398581720681064221751888939016417528717493895797999484118313952149496472050892263735403746439274381413662571090004427305719833123254087803956847032854164568282500134960038367642312355462441629505529935140761422249395376440870358985132756275014564696108541561513344092129315656392835372041747573194863667883004628006508769374372253130530908468551212761082323992516651799512600344793756964000317732684075491283815642012067986196431887376838933522709826929078149426299298122311391465246357824808186580233538417007757286083969405120766925580542332572131208107958778337204447759350833191009148468047676232239471949125464973802379574416644892449061143200267224521869544828003027652956494886694915748671590236184559541405700133725189954027586343069946446876812252632315718009809157789100668908768511816166990314489027457255916272772691523664556591933290377411544768485283810050517406696581458532624330979051414740989492794339924662933689185178625969175943893346918749697939943578651520753172174918210036505581964311899737857784140599711202551707567339636503167448093383328272992576571330338184236090784021722029632420124486174051064309698109918618446944107534101664354301823208288807335399880864338294128620386631217430275196604591620364918707744243997981394196085957461040763160884021359337782569289655690489357102797729705275959539637300443897973801417553984565047064946263038823353430570171842885446586307714360568447079423497893577575808065201665720017317260394142145327732232153430024555239035391730262540027561465831250833097286611308296767883549834532918123076795540146201290476290229891928201082111579774175522973354912879635532872706280193152264533220769987846480214150261077209664004630821718378351212746589269929231555653057304802233948863663079154321345618827792199598727960501279835274751162181523887264198985284295221278294941369905206358212793868734920377290054173370015280603339757970977053166608667714554721493348621276877789592820857279459377188188589321160605890505239207730383450972488087982406108282909458735183294342813126811573746234499370623060772764785436827967170578557200360239549183741655266062103107289424490509004346598048166434124611083126340704647919465519487788252999957429409777188056772712145713925297244995637753225717499029457301673295307217992871120659891979409130414514015547710664204307679417121816269461832094347899639907992137844008259591759942657822624600806026983782973011018051752851165321364865438593247889436298020745617503291624473760312528681589577212563335324800144435194567249225636911860067840964281417357707295321429310181415039440296947358089449034108406581751994623709577546276124906670378093087327742893687055016401075365734441840654823182804559568502838819874622911774589691352445864421797508011545896523691164050853871415646314187095416866917596773018289095656136245643855719123510166042490493248489903609294208964244938829523015247404423009930203580908048558140680381109937635609945572158688137478909428020331328615436919492882061640826059084383935538678977714192736313217847543463378704880324790195786447951493281648055815946164732682493114147341256505037127013438294028698953252610637706265782699485004605478135633267000811451139078023348018384321697155762513103368750683214048119109601121916236467415949677350101480413065665957303947386432394591561677548118766738636146901083699665659078202129609223738684546387086524534779454315030355067063354072352296560796074756102996664623875323615744112727110706873949224701655546928298550016984269854534545240160464979700266236341304527332084013646023166619728410374026410026242736159221892436573432761607377308599158826024532272876598384560646111884786700248199018672339665513946249921903361232077650424237623807924016006366692963674479452002498709618226149001010763578259864703809754675708886281768430820525821144247482876701579251250871445509426996971783594029136663499991310330727189767985236747505984543618014358416333382581770695500268830653440557910471992485282607465236390208818337814605466763534210345035498534783650149971182177864873615449097682051617535578038022147049619838864199358920296020918223480709249339455638412953998161644980986319186276277254148311132914484873461262720146985451370969336030917446201674031360699623755698338987254330587246026591809121399089988872619582605100210334093612692168285289680303230784625402413633853107236425825485769685784084911011838361540412338010541907510181158525580084514940833231950335174010702130625856272793626333415253267698554656598170595692905515055481449685935436649500932276670476323649564081800281654463817331935522751584451531649001292215068318480934693837144774371368172779719008555983551162520751765762100929152845497390970954136116506750010379163779345966023651204103993345723600016055901770784043338526017093328064132352274837816719271545121781050771427260912476906985900532513694470458733601240744137339301609264371187193657281041303950829028948541571546718174113796477709541633876112248045550769456575694570382054543292517447424594689371468698515401697554000275137366836142718275561541563522856600451720528940428229208253207236067457551297895074797060715018366805433194966440766543605349185363467020580210926692154782400936495935688747889969995460265208644465360176787320822531979383575256648719151971273814623862571123901159551770882977527709615109828812574367479865167303983085722224054264048621610513626465377342547650559975006031163893043150922476655306552917821818145254641730312819550955298103754634979110315402361274431039338741968905002087655104487621402442081029447883332843107543474058100774432996162433060846700685727633914105036826843780901304931558369966585830854822510044297996911281326781669559027561837754811742979750966467872091915476742491109159245966963664448935948157938101523473568941156490315036381939800560235422189622595346953356968029121285633561614967936722296508471307299700018739295982792873465687557717469991392436036065022439542060641348438829002990281477540065320308542293292024342882694643759002413181862805928305882776170283001300706050451368628477396019286439183758869716812099942073526485929039611203243029705952574219226140336863310903547574290076991361464089621450281884303627584649867420174295503563623690566001655688815314091286109108082184223954502623244759561911046115557233870777372943144073685087088295334647609280961066188415483197844351237429220586972692105372520793538601174613584020440964414691937213753604756074569026744818570058726515960494735835038028889222684315719725014936243939255121098185014457037880079366107632810135804340392538863630443465431790845664983688432126710081766252832134887953691419416127957043626136418807042519785431438196118491381841053499349837139478748696971967483834798447360842281996976960443906951610838746850525788842995294589185184106593266283630225561176792751636843445099087606639191876715191225796592720506780020562159811150624647739824424429920593542971828759365606829222470810608323381124172093762680718797857503869713177390072593095081292003767556393226180363595788785562850958897789968166837926383768638642728861212380086799549714403750694167150397930415238775609410242057416028668517449378418423608238822361593404262921267912044493211059564858702523653359281214170561814626507087878098088802485984407224173282230809867963677563032602348784300827524987216880276353009589464629568464775022286728898416668374043356497841927001629592332030302420828810342525875599120238070003449322670877171028268348006772045186054928972452789787678236108187832288340290692643778099446420414331855273709692559311725051494820048484037082522133160214251333740279341540202957135383862074619978384375739460346721912218036770860076409603174869585734400320746726426979704638657217645807631660503875331251148276079317645731040268050569178672552045248526707089578304830473741894211495411274010763792645803733480236239162644323561715096765258703921693282724721251334548554340779111820703432375780118368649373856278472599983127334834895851709700179033647126069113015310239620383686944184910629761268944909423860398642127498138826632659810259761211077957264900207930257868086478706097765061670092164787603760356770591630770347682150245967702569329116976871732657086703742421437197509089141273747817118719723753028676949335660772468099036470095028181698974014353265730035543973338089351317836990041955151998586809520067806984241001799656816304603990619258847697257030135227974608626628899095228738934525806405862360743394499607376884945182629013235859332369033574732435121028002758508939283390028978890052852798779461178812647770856391983471941464546588010647942281600246542757871552035824889884714100766525456297622341053317410169694159177535985822096511173329001692844302842328664071319767345688852848558451893276786138463095835351600734905663711593034258622867240584640148026390114493452795780882797160037289658925279317327299577904086916695204693582733311445248383445438852313798008794078075070895808495270589721654183647653605029972074640441439571966156705965139115198866331095039862098234792999684492717974366994436072831384788705497506324919786776003078503055023810533786133577052708356920545098253852273689555907740199467808936443077896779983718928489919909987363043869624505333310209077340954768192329695926689421783902592590793594504906902534028943199661687556366963492781461953433871468735850667524106179981938877704548554354894303226963157564674618271486481633708922411958404067216201915008285776675832666325692792289580520837294222406800476113933770224781919561799225327199911105044214562438687146834865038765456869827434532163451834276664801036769481952588880244582578887627797626545348279634737727680919315391843085200507125452220209859345319602246339443655251136788003440449446212418878291802478030112688490563568517993790212072220809883899508363852626747636868495966130097357560128236003416638001678523952553252618257273169516697248888202357657119532431570189843993957314768198814836059731179271013398713092152601178091859966927647704949421188068149677174821142305818140711372445643216462832501832835477230738173945025593161064683212208162392295408337578263737152840835163812888239104174605064185634480418113680371016598460223168235520342586699405182135276750172037229575412270540488708862856701540273709814400511765458586268452284531855370038629077435613785490103715217461539463244052248636078775094737221781364879701306597302388741154607407291533887468182481916018463243012341698775773692973107218432628801947045544474626014561598260768182320363215822440529770281163501523740643316815626459867629420830430145276940608801590238303273788756267431221774573430257948164934464315632846916047414092709746387704417074055046611877597563473276311423150811911857648540472800073210223004136225308160288418904780331380487510352676090087286105315988468991418741726339344621688834500532820915201313765133959580205514211126433957203193347605051556679679519714758946749700845510822340314490158610829256017406295788175711447027870697756443553735522026597220059114346319242799096720848860607274587267218103913475030677442779806311862421534842997708371009006463716395989651683770804609627499296620613490293674636426798977414591967311743118653835616198840272044991380371517783546007785577450351746278683152765186327283069516060139413373960744111066882892644883054699013431306552927773325151424610102660440708670962500708398407829401171796555644252986646479560157619702693656698065994401194870190952014074262410570969408447522095950717805423686662102619068293444516882394518726236174297227570756936918787629505331892464212624156390483492182693921806939231293670463168382576652599597898521536216830885683798981356911954546700821375629749068292327505897133769435100477348204882150776797143347376205797610227306366641991421290089694160625708115932974980040986344963245705155256421755042347662797690234502198917519836750145548257955283718755449874142821974860842446419082299259426519365095701938504518165997126278776342972376578105703593374377449540058562044007006109590932617610048513024865190941810697066974227028379111646666963565910107198125805040491696069466787189473765493917739887650620238184087065809887400696229434932143489409398995575189696597217704158483259895809394510789430736897227570728718889773122842700801414437875806030946572565591033014729360860471446260398746976223824722715670784981838656686576071501731667545961952666800987975861460456607556895441828189011887198020089491631741689377628699478355064518422518102051866923471207242004662854240312385697492148455504882437899292967771503098706293165897677714942331189651813895941836019325521675202144608923327338515706785169727376766444067143852486049203596526846794794831251022267940760473480452990911249172112753802994066551930603316198913483372937833604827029898359078624611116163479499197133551625691542463254221710124510353822240237311591148284195509029039988378100272965951652016142234425450160365786809880011008220514696670576637147900155360690232224511734334663204995291112996744753199297675129857221183036430494102236965850019288486513073009309381560196275970992833625875769015368989640635940029436851541125632293287024053743035223757761256456603291674789582207890774034367899112607845753860457241066424571034512068600396226185471255160018597562559803981998723170522107904860097897512673232795144492613208112734877542221914882433023790514186667031249681354287686718076743614644870899772815469195898898631548595733692338811849016847846258745245204709364007825706491140850627985910231707290445914354510963809380677380002755399037365433446637096924099463214765895783887938093665206865771213875476274807903093602784820079373376023584895953597057061943448556104860503805344015581906382023175372011648270502288264750195840294278181812104968333356135205504114492768305447834419377079911482465639586425172924456354392793851694301640469235544953713991064345681418203747851462966340083429175343062359048523086039527843717923093940820066702423658198936758534880816060552899992048501045664342456037206067714483808567424134687445068659229257751646910131011118125730667984912209689777404906749250572903640414734331359524687232106904240310416806831230520078853863274619109708676303377706891175266361181990778837379685518604691769647820634799814434673223524454559866499580678018001508477292775705615322948746771655201374653160260550852476182395088844428052094385137440516809314037489416276361922474797567880053761761982236376680278123427784410944418121738698411520455040514470604459172095032879474397048640096462989058319166193300203396812063045705725827132822519418762728944387125299170349489055043986992897321274941935494172150233979427045333860860919390930734935681026188055165877289324192041482248124408672445758928547825472464495498470970041557827724971814326948974742876002770961628971194496111430279004429970725381172742928471044934986901190886947181177785915824180207110941191334945011299069459882435570647982429383727915144403971125444862446059860503537391692313018370144254805674310403905270615797898381215873693828781789597396278781900236734960691137099737214889977933128909752150185816365760808750135303838459077769932485907706094713897604858449025261863068956337964368098633755175805614321196208683254697789932134117167830187098532035744769556668061986025201358435568647726289406252494902556523512292627243189871076332056997488961350280737639513156867996137719130445020011600941507421819737056852010514860527164404675573249982909421659336071370059374896390917395474486679274742956680587915282800273304017942099433077595817281707166807462337513455909959017070335032630652652270355893412636396302692633983602870249794549250220723545264746693561650554905131978294639130156302832989175517383110353886846984846786613662624184904806629615299457640083643140095652441863969085562402110876358308689547929668744030535766804525455256537132891229625790310254828046789236523644593368346214086841811662940744448548486559948615205583799900637700246344670898670206923721148897436996264968774174403296031936252330796003417778413046901306554143977454344322223483204689205606104665585286496895177268588766624699879754856543082602869857983227782455895368305632162171653946276500594076794666461163813861520713790356343629765821776983240720501863979599420755152060587878562885734664893642902674677076371795386777476353544601870858500052953092117443375799748488135798804091509373788004465305492796414891518596993773003100216148600249725222381612222149665841761569402279803656156662465172547723305955259571528025462040402670036031942434535791509365196902328254208231547980250047239285590409145935967263031248983032523315488805611738884743543263835655809964177582160600289777498911136263425599389223393292941832409858442194694191286233369198801399346247345450100885783620015895297775645281370738898140223675587094567182733611777142709736362251543341279842184993266580382295313898631581845029602833055367173391629384966457053735462521621865869941312209337529566447739287962858502460069054593020682169180618710317440402650333762876695880353508727908666720959117029307948893220002660928565439629561214829990654239153028491584063644276744803569919104828887868850219594349355357825984103793634074274419609576696601829914878355205150356479423716586753147471461696312696176429402077390754920997603112712074481197844375666536215455164056293374829207916856603386237075524297838866959751999117732166068640611377629988011457671069443932782216573485608634084092497380743022484234278513017836389763101606766473112590593339251190246938547533283797211542488265871836287980916120946072776891122984896923589737394749229071457856311412090334304303436759720815316800909646733737799205583191741261502632859958715054500715532959128292053610776868552425581654885827973961912661438384548225484236333255192401197267219471725663207973759619557039481877691231378140740098615098703664853115344282372121484528856662586206070863263978624964353542634299914977051736543079015732037265247057810441634689347246791930597797591688622547793668478325267334963437496346415321742056939675564799074405673342052277945253233569025261333620551054382585627462247283922870392068171515419386560925368847485774049275958238475985871715502957841897067019693757314696591367868932830342115810449868688910528215446433690865061581000024758996045996181439079856537420599498316441622048466456125896107338615400726541399498716090954158975214177481132237219078303606687486950949558582198372328038881293124027172047168125425587159976035254367281975212744013191590957380923187658625639460855500332220177679829017978866566080668554324096896937544211558262313912708783857083257785868943572961933794760094361664176442488812531146929054005320033142234332703295425014901011167094151858366846921591141542138375301103129517325728213513460827375050334336241279054130052797835420944914576887499205556170555635963433241065698186497988878745935588242009928590482261982657849934206180618655601411031071908701860099680821914919393002763600636755749848107110230808693870848184153635593940655025457252585342323150337035559393337665054029800339052131561243789400795693644975608978185655436793220359738773800946214124722278296970368543506369955556296319912868879506388479690238559799292751195789875526534871101581273489546449169446744901110394876697456631134318105729757124728942216492114057743490463487257938095028819708160034336941125257157314623238354883379277796769496239873891329475077618610001464177115489578226139465992438300984622334692439173813192398840507346026020836692872515706129535922353185769895046730795037776159271512337870609546450115373667793419035109684666188024742625397842788850893789111933797926475061832662277219065498214067912568649136138353326515183386057495376292950981907134547596641876439206964429555794191674993871109102944561745033092439135185228823691232886171587764114342196731385438741944798520557372565672077070067709206038050544885712555554532433470525082324625583838266175471125545315104326191220149208860475700710445628921043122425291550715907042701599516032833191894042506421056563488400931624313520171349677359408780844289068522541180016219736868094477800909197261612420003021382230548999243805784122372516655687667438714385744698440088639981511419741658585472476749921244708614460795776282660902355766419709142332717031449151979250868437963269670580358755660217263150707627066781652403596557193725861233344433415305216915297555253343672581422071094430028679749511177673012464656461007969273048230894709242168198060097517572705091533019040720665716091325727905752479566277557609573477548913935671030241782456009360232366535394976997113257098226365261562840621833954148715290530297424749675418214859783050374107895010928173457523260112660588286184336505918250352993940941972406390557685030909085854571420421228660567203361275081934411623702480951717250398128688995259419486904522815322566726954643737790017473657037344548159290734313777852731547824260425588537924221749266549761202744839373303030943361467857911332692995662342558153592918044385670900268483668615552682992801226090067667616188448265725581666757413571417758598272047064089714014242541986001167651735180905859867410172579097351881025549499000645835999805908489674831035206038510391122712115061295199509762965681485591546615655561179658525027622042139277862030634636890377372065699313979349398637316447731025165925077674349288856710947474118316868329645040253117774811366238127576656819810352624537816773528311927520527838287267978196887776322972696366602985188269469704959222049377715972430885226511898214361959051980527047719283152246017205425064025451014717474527310291491123076490898935621768714915115411346003593341605995352650814089536755677812595784354548382119097014146376337160255968220348200148961791153316440751749207520250802141646066010036683316072985711213236792812656036036239947655560311930329503238961250784494243223043508255501627098084819173497134204017415483045060758145918165391794994411287042709286571848657798220426759999710355289547717219780929588560555221210897870062731911911952969814279908036508512050571707534331489518882868769169450079131572202842101860659086340968100497892746073755820186332931042527404329377589434080292274470753072186609665807634346589036711910786659661604552504655940659223116561871257086116074118987692642448677819228292004757596906152658687006113837235934203951356481685858411420131803230286406556292049130029104874101981807703376530868015041559564299575023165366186756601509796982418204560452515013085471991911283769528062348308959531627318401147415475691412347103554964927687628307801708690436545981521488186246939440230211648610835007500357145124196246357595645960261782838363030744314333117469580547218487088974432588749439092266010341660086083952807825904258312792913391108818012759242216876062369517500249055317629043022082107984914979490930314836790169016578390741203324523311212662745697739911380534250802268631524568620410135551858902025251280789240366634117111967402958865446549749762268815940397727919919051551488901483935803250019066736671500174961091678800008863535621287907178586957313075787000903798193116331013290677975479083861508671390375949187418558799821193826573766859359444207756577164248976153442495650753426984242721178166604005711927421379861587566621112878556886393049379486924323477146563726953727073269629651258038106548359767175329518711988293618105558415165537669240627612267323045812174182128497855946779067649893792880420295418893836056559880426001221124331246668522448702149638600812768541504881224323753032549412537438621358850575454078011111958962021462438596783862246505792275809866546495855644606493119062624872227494620926145849201676627825116792668510956124177821277300810895270162229280609354991832912573619575963583574255257294628961039868811412825496913555917754005860435283794441091431937334503650734056184791423819716812470771141940118808863753049271030022784295815010103020524999171530618977188273846491983532183463406440176406630169711342693065141834478070451908782565362383781760649988968912565385094377624466208831390892455121477333508637631456668506289500118851871603029628642931509864557244237883126361807451275097189841271670853806376213987510898508856138347120564398623638791146685775372078041310051970949460026454896284206022747860867996189634339267261226180651532633041342990832836582035622535666780497605982417062826287196201572292265793575523220643480533060635887367475001325900670995575132361854933318332407357725421708481501472224547426815463478011458028708128641504721788083336815499819947392906188217715991881205429160312400031269950716785558295217406971283625667722105128076999026997304093568075318814788525354676084216817612473940221373047535282376597377406613129335472138025585804590431838691027667314735983343062948706998261593786905050686558762027078192008074277592928933436616226745498802738748143520772233959083873090905770920487608196943005657325133490490569087557921180484139758437969578910071971993887333739195732836795160745838959943780303595965904876548179304111759156650359249780514340198658639059025606261520991322091969593919093828491582773024758907700966288238990823271680171089594744610685465279683251366130288287131746022443660095982812953343120701317410151427238752780223053566464517728346954506034187150647861216281409413945278908395673446363852121764013364223216001571775094728173760571318527118545305064797038449053981793728463592782882320161241440394297453932592884002102644750075266434450271599074352625915224666476790772517471908001901139643425606428611350498480321843156270299979108688058280782131861999294023971065342845131085871625084235174101618415081922206104761723457725984536868374292400402041540774630040190007086632141907332943643321502448092162958140184861645657809481100920170991695693639987352045720813340923397718014480996328971955724845454656143533145225895231412068436027445034834974600325265576213290156177955799356368877629084407023458587353235006461114939936821300703737776003442224351890362895138553762819391497865634586867977813395908761009234208679991286902667748927071742764945234410205777834959679821401046436957291173720225672686391775595148107453454484001472339239093175164861926455525287139678209525068332488911787236262118475612877390584031585342481402689630789190063589541334453880386877427175235603874099194687060794274122123304135349371942078333785875281030397715439938180715499201785001638867939103240619262929376289495040226743034106003316895801235221081329129208653251252637094361513171989885725563181765541789461860797988561658209259631437161988468892968890707801100134364218928959488805856656521744698740366840730751074698131042639429442673418806445383230519758171260991872375544664814651819367526163001259214645453122108174521973052510061500836450599280627245972474917963996745897714191014597392969683031907706591021943877687648855182213466531945683311397782249473428982626918525429206381442086969801995839265407883822321074804500419557640937564271445805558475178136048519058447493747821855096609501557221779198529908654919342019829722260341876593237518119140820265406117725733223958531173209042598208027141041010274403383840274179354279237023965088793086896530871804398908682655933911955466526761184046143478591491596724261442642239450695266133348024491838213622695948910984606481180899048561791338317475703535677867753325076373294424209662990352869365092866948423470686823375945621911624953158305164125210967604069693497868399998609220524938643356270370893975210121502191942826099899254961723709259183140534111787461105109052467115429050419616125924679805477567135645423585136685522525799797411550299571666661342428593923318464748102639457219435807532621808645801542815369301732036978791434838077558304855429107552875842063249825344639003239461796034364532912929873653616562099012155140270113521821088159421086308209234226847375969950305001185553748079776084342262854867035150670621736632521763428627988681049094787133810208031906435431274865200756774723583076160407569781147431117739970744351724513075673142094007695345800006382460903333668637502039253616238261289192161435429087739957386220102654583665573915763483470634105577800672783621492462670935847416043528990874005806267704209089507696664831819614696134966668107873177312016585004041679321627489315734870552954878838973885047975991653741862365195516298414835208628070475491111383876574438742912944939493317763544340871687831277729563310988397589065881648702095921397939709052197221295878863607003722878184531214884207846632528746286130108200896149412569248603657960620533478176069804215813879991285909270299195994387042509443353028397830247494357526532944384800631893436267991554361641542206621618669001426072422113117789594731205245936966372022620453123589841914258642177335077138471520592352596015670282279282569627941061548168721340382513332360892029149360010681833321867162168226870286182694087253499534232596883239668747339757212871683932763153804037791299544986839464697327341536925653445182110903029114605465954600818963532210429519692494115074954908383876281820602413453126729164072961210865010185789243731457423801980082876783501604050191357735375091001859990320893346202739610221599950662485824374025607108173080240666521036065720475010735828313142773925425543413968452649764010367635556953224163882649358926771676204828481878674447201985247521764027268867057591861338152462441898741912867864682520153543101272011771542992450578786475196154084199064626753765849239628314705740236418762837921652950290554977651975752985264929655923947043692849073322834762034531169810143973851214607970772239691509879277013136517818323911276446841341977011310349751054450355530266905112835219869253932128350834519004337102256426225379997587105129767649512542170428165761734397043351031681171159222738398555693622811076966624323881278623175350138351890203525380749343013517172440331193755570835666508791912348564832133175520798848440384696914970845507852342072475421175678153909023758797508627020920330682279921645991064033815757103215671934713280281625404394628490159803492313593118995618976288494575983379493458994155092163816429116324662428385898140789682548881379131497686294980416968450040432964024232008133657255577171784935227376987907322407368076290649859981495926458567037635465638658957962553997866040442847688553088628670273934550282901382150779295659101479911134029863396007179390043734945660588145946539995296090992271635407906493066851539703327247115337515566498773935948311583335151831325992549108419689800354192357562970602390795572032016857173075956010188012523721086020408180555403196917213004719338654330173547229187712758544170670767758683390090901214422627817348450138622913867400494503741862194613024754632376529039855213110977181443484133611812508387344638958685415017058356167217327884993028367070486415769755967819117957489694286387704132128992468881706766130503337338257475036607655744514723042561015938699606612390629687194001009265810477941940751092202482061727554499792389132707714598563781090683648576243543292208120193026950125333753025871429035162075302005596482515035221652014005976666435585733417365360000762671802554261664683379596214597420706374242725470499484201759239875662494245771751268375585445889604067461223221344184934848685792213796040471719788228226990464455195912407206081764101772071319563470128983165749467170749213909192927849574188108405671588109769356117836089689221555603666377160192645833597347173792313663135835745534786754333705836740391179496157558305688530004896422408780398622977279006514007809178851512482348034102092405491888883243188946503056834168524531674135042243637634687594215759812481995784682137269960158864304647497632819484144380939956031867733419407190189817626985450745295154950616728490884615855584317249459488499817201682495482403013501960451198486011414559538292815276007795484216460259808854906491808117890350128237299334469199467390517304489796731348214886247581716526296679413950328270878683337421609791790912067172357292319766823822751637116573266153141460247273083396472330026960871233165749149918043011043156220770989023763389072405938478787025863018500902012784893117010605855193335646450823989571344952613452603769334252837852917192030285252804264629355033777411282970606243753769862141743071163078638867264469116661140445031498001196671463535167594626483939677467757341459566430939478329616095654898456455381542496037121508375584175107647124616954292934204424599379962017564650252993079419365064833508714673126850857562163596388087733509836038444506271702823918617597130113044431645419930137999846925855471150479345220916342394066657695899953841325172608687990351987137222501896545964988139501908834874787225200623622361113574715985266443349793944567178460070962435627636923250263669976820818356342760343230056965217051476241278179162805995817720426231383646443346232078990154603707133944750672901004785481642940251542716415962400727808137685457437175757623897813926807971109064610059103278921904731334926152283630323549859785355942862288007141050008727607921770908372392387772655451364906699408350963751632853465826691633855154658008162065724800920760317898238695821445805412918601672791204598975674203028860127218209671114889692604154434238744949055953923927924415447430797725157275000608529418347840953272921961666989100063554358157741509741493469067050286278991044164421458656800113426202514288711144400281451166629856287713819970893996940246326674754121069487766463817380867799255477118817941951561666051895222235805651262701431542204207006002374370365531717701887720593848658740777795618774986789542433032582874321233915839452653601009584415445511585034316000347193984040553956926314507996552191308354210678285001467843602595453185347065771816076668583482445411655823917853571225825112158182892402544758402386386909289923243275380508674088958653498585630027771954651523280662875992145393182851650227379310199942780576325235125531371216252874462015770957555690686775445515740694708409302487300504710205716691670998855181119816519782836086491196122357262313253281008134469062742833142723532080046694071609501733026088035373074746634930862305606829869421514196585083292257620092331582188822598064109816777282086013481008663328862742750800207438098032481486552620292660150293528591533812712584655513429389966019102875012934449779172976525434440916075015682216258751993909955683289232903116880267333409931746907397181630553615416498958873765774888574523646007924647807738268844489280810934759771224304898918771787309509421328305216097620516295907547398631028366175944185460795386835314389656226337769843905472650334277205148406897199997249330612198406095736770638745604911997749959368995761016576335989550468647529488053248795602018564815074652243744976811474302348939363710584619491897597827841889953767974182687909971358209632587080582344886654037279848191553266179795795038934560673528326272764017697192312030216269986458759486400530099911158276134216579443767244173904238164739531075597281504590869927636018383443086555983987866226460306170215260891525929793020070603483973238112196804838306549227609583106539584081447634238102758747207560247325971256108064915302549392403874441819623673498373419592890852369252208151240306200825145554416905813266332461541493185325052885708747681474156505325293990570309611137800867156035240718722488969314765141662159777602197579625841717308389410024804709848802009710560146114492432583696142834445967110991762382784013412849308206991641622587154481975971377356532958050161935641600146953628619053849519988329522348667517041712033582949480053008269779691860812115642328965042030184162944580039579012118583779539112688421074573800187111637048482590179870022681032242049218831244558617414507703123025688438236368893018089605355993289894727560019745960996864255695740115368196210587982479766385345339053031005927617988311495446861506700949248900900868796093904670155475027514489015581728934330541723591970777006862188854741066642497007320642088784286406913710678119423786342461900208877820202397447198049072038672520473036601612573732693557152013762830723033049036983928139992738465260599213505949414353997643155060125692264354731201192264729668702861592529968623257470866563034070491191447335644373590354973819261065315746124058590371702284350263379687284678700834634688248074716973386724790567805655270353815275140941936166851556940626779320733353494968788867983055216498107484740640399417848834071291071936977569951668950534888924024909590555604316196253225420327381289476552428794700776561829851561754961728371526765567401718172092809300000437812531419350771989566882484007993527186699732625866824583963816356845348004789548413316521024034362174377819783628555677500724291107802765369752128616661195480548983076238557651452706960161051889254519950941838032605886844604965539182121055086676341483836930307739380633092354267287497028412113842879420216526045662438052628713728594013775696449276316398743940283604364447060984812732784485286748755737322016285996687213016116396752888759144911928139023000782694823576601325604290163729059889834191951137522892545696647847481933153821019285023352148652078400984293782339862968664745122162934773661633574006318927652189083154206551391272053664576494436984664545775258237267033223598602091789213730042324002298132097041586528521962943415990836517915766658120274865408982356212892978206145131656294788215039481100033247837471792982747081253721833813235386130364590478999401604253184406324328474952641979143141251883288419196551271924864688183478250209794067365532440481033914237177014815360953487308426959173823311211296635439768119323392615501477977464232267521113230568756022284802486341805342161981240507441148299463912177749163522389256626984018314818635389630804893573493414506186719147404493783285709508980194611615957401884284981441455997750751228121393015965255433727982653219032027457734438504312896242619922880126121866922315772803070717707739196271414741347737841204664950731637593468785010622057866080554868325520818386317074552941542969921254687837658774127511284195313076867020714965388927163965572963676272335515126838891922099714246649214941750403439679504253990566022675941151354228295300826601855694681435160454135854411120715311370030827882398284315915896907387603419629538425128693106338906980535383910780534623647394381679392992549717722927299272373156413139998809509582162940035243556147948943978317437200996691081335414374226645266047390136130614836523188362919466470020624827022351399549511105755648397929422203922885668604026563244102654291978317677777241896990862658961566124365432855639746460156313517655098197197303322365273435382749387051283019159243454761246954357454780210224570763838102866246939212777574194405243179891727878717830158725745005038667797712154045130861295542562128348374540468053623699420293564354688035370035639370714281337058348501878450190919250776646345295517361475247810142214649456503285195714185039719423446414711330350209865549068172872239375990192893247870719030673012359741995740501946712854026986214314391640282993177158055603738071903780772872905510325537776437201238228357305352677700644405956002416074211318544522342682296207522811736559603261802167558517839211566065960439754168748212550194038627749538660600116888308072283944014226380662946602384934645409902732454680403569282234444860095756326025312162837990650824970410444430008032382738789774812860374012938856857554122589954991839691599118041466609399293368645118457407303472493765104075314885399300920601687390410527169915448221215356034568918528428287238692494294937361844481823226378162032520867209627882730342455325903024677300877139964366881102703658589347307396720684350721359553260526982185985612263501283743959778716261628682094932033853637968873602800039168489853601001468624294062192468614602667792230934405272823226526076095141990412904251441256553822598284901368897655020102122331942749283396628553067448790541933031485720854654375346664884933604817753267497234380465264422746228637027660445765129864859248700175322190571256853888671261552278755733554552023749702318295033812153926882616545872957938240567069768126214653136374080270448466897136920753415152911306020710765589044567596390919122857930578591239538155079711605195405042557565194520570055325288660385204620286855188902407558704690577009804991840864958109549754660749081618154894026339561272481032091304062323415500599955989175323559795913213664615130387290692617842267688637894833483303200163804126086798062889089623141908673259906507507540855244929461919389281676739208156061697225182473555521863522937943843723005966273047319485327548453525417741424497316805723990638612006545549428624598575594634503528919651394932696772186930292521030118766879138351342624165428070994194982341761718432501258377558755106424361456856565505582561183550800411941255217431235583045799724124937335589362847783510183162226079512207240009065967627115002111730377254692325419300751829123777863151864231746382579698327306516736504931628014496378442561208961994103022984129621817511539037008771983732814582067631177996441079855801144039649072382112728297241622491865766109362205947342705799906747217000640354475909416795301528274326742721543079322059718261379379757071418659648190571791908545952621213380292516946405956574836349140816436972560794287412614128465279047004475486272882172524301158847385639044050539324452863247587298522466301092030507204848556674206966477107037002151591737502226652865100352048218453819491746859511594401225804609685953963475156588280585959592769628005390006190588967106194255759831361883162065642270431064956218150870371298299622039167113270822722961368606029591338539554145381634888123936177808783043817701860441512336100095042147855045143584733905755152126475072050438604996736968158729297271794694229093922609989782098974410080426730767422248118088868036225857758491817365782174603534338456374463778850279655153502593766949669462619884505813912071818844160882347079442100883041388733075695936686014232367417983163933935720178214577486071460368168899216662012206699804640733189297094437356947190575354285673283749070242204781887994321365632587180008847311743683070451949933838078416564822907951479968738537085863189315409538264796032259273813463444671504425923180731369508480716916673616247918171050739542387745795534178173931317514960101155842978182611199684939379257271182701840513095626868141287687002187106129977865828563335168958154950039726510579381614913137506535392851498756041944345463637691949413935025637518387531452116728856750325926381358308353976725267404612840911430661493207325109528535761695002195125867800844364424917687073608379676239752617026104912869540780275945230177124167360247720576644793524013870773769907895620077836659839807266985925876180188785647762913276459229088876066500302485247246297108329926433670977314156649417384359167767664905550947956398131227772713965942957650851681263808233053285733187372593678809237880760866337882281256967097222086321837507627323427770076835831064607895323031953667325804973192641320903003557059395090142198189561999160934858501402282151566270945583323786620350606350851560533609281534463030450272151938607241548739296253773441460768826557688961787986225417522747620683883000470987892070711923974362238583379663742733597271165422806821061819451779481446172782079404443530295235645172778339406483534171429481380202375362382421498164769726717010744385572197233658948131666811770435407772426787100599723002883672936429288354403673442194681436961416173092924511283949634472395416857866694501424200580144284307320965085577536173732052590147862777251513170907855043943086844361171713453926323547539816996081333425041618898365881103737853257645217935668507192678683149338098298645996250889630124765979784581233650109866450699555808527724838127463196937362711004211828129400044520223466533752199158312523829002094791987038794950781593445207192102703622018655417859580895100302811009302742209068864060927223412328671031148931255963193757082501886152149445654121371824506922024026852870026573936206499439379997179503701483923234874627273936729902494861001557362013477456043172594936665197614381569224569766994062777209871674742938568800380396656431164750695401278515005713679170932917345498122107271297858488775534681596236207562553318076641821663442363864875466680769603405303749712536227171509410093612427681032337442745909980246462167716564797508070901919241910106716789615931273952116724813066407360225563025214846251085925241598765461953972544612018429250826892086743562305212914332148782298133933919308682501982295028867004969846280577463218164176510621432519877932871350600447946649962885270737205842202838733839834425321748180686923445820907600927536907274075837482643026613982841684483461610344747328686602360698071402323129705089325115862926802341159581873714298732453071818737906257239091660948389866075737620783311356472251725226435417572051959731239379551943749597277744809970537924389694376188052268456012280713003449892015061140103316082759503356873092571467460959456036529067708314346833746356762379985766989738532809586407920572254945273998189538003104533905180478935339536317718033200530682263083934685969839620224906473203056207752722128260173466646485871726149948728349340515850314116771681795063250971112241130311085432275356813621972506267065320980035521813187082512359119201513271460702442818765214170306655859273699374043498305419665521306020354225657790605406418634722298871093164452178937401418857987020315205511809206648882977352085152488049079711517252094004909482519758631467294314915248532570700045282367303712255376533337160915442652255894814368390712975593761319535482127980309813287141252038730607694554046886500420823985082352157026876260625772952585615580282346971475202957128647841894021823661323424037512459555444744477158036902247782511406489697026830616219594992762416538957038810171043888013430341887136590604204474865259895681493072341062215068950982749186803232365812051794421562219300211135487747729621756118072932569294877461376873549685204919269473129855265301991911683402463395961409907619191504415676706711163569427561887159636542072334215824903575530467562583597901141332918731021487899954201032686856105483356990056768664517849141447498244229565761493524869490872635281417603918103470464237984588647099507024849541305619375582381140773634653804815141684611917248415843205005189740787466435988280056897094735976794014448661785938246875459040597556196217291204650749562050317687240005124259197680679312537746386485046132241763311234691699087105096348364644821194980910468202637896665425222751633241664220535336402083754211406476727219307647921943545861243199720135371732240158966998071686914800509710417721261611976372934080356537085970654499197522278091051318172807272451399054710071091704056017739848932514516592431886264509753935779152716170041687867887333223625001876069358134336053346267401448554802836252289650893925443915936389444812238951643934919033852149286910373433762729994240671125739912170762406278702325663006015638544170440465600305193160368573191270694888263312697857380349541063781736339259949007678272586663764019299663788385711339986319413196581576302006133507928334552855630060536082112942204469148281064900507885915644298045804177937362282400287865690082313637008396455852535769552626218504920407937657333141780273392531968144393283719505955485367473424532501366547177971242897654547284396973538013584248862403697736833634137685040091541232512661079571133951281645220684256655337516808804510065039747468347298865227002895882392553767252387587505334631209674915559940610151959707645611654068668781750780391367219826844862320646153868700053980002852706682436394406917270789816809696402883267559817126420221925653480045724532404949821189281275581644113547110537998938409905731651510379185871391967980341619342824996087902111578813765887530495871252809809479730617146749215591875268208606552797551550952355751817695856286627088523174469008960878113847154223929149705865281647708611773235114926749806512724214746845035459555259253260734530487228708586826548066664207698954764403397220517901228773238875993079416867015942759917447787635843953957842939058042453537193075037892442674629529385095261938970396588410795405468134334457288355679626281644618972894211404629374984354043541355298910044619990375998226307036471355708400587512462603068508420337225251757303839464302017100276814438817974349369961502796500875533309108562051430651223615402978075180646687815084521239311760274814581641803427193651769259666943782668411085930988116339372067551519262907987346372558682556328845558644204210091859874091414039223412744693988817063098996567204081744883015238003015209605860156595602179594348973207773393672095921375245333239145553352097217821439935552398954905242986294051373832557143706085597979718509105238148624446214111361011956438783583518090979678230303942127134826966288369984697280058597592456594073418214621130380889988269119469588964502748066466117283383248114899263264012348959720103970694987062962991144768288741413972753297267434104591485865247504237701772526351679806306914094005273428699928247810725924909391662349526641740049356426355681544336066552101692916734048649379468819303996417241122925322009112396113394001828517835834229657868091538792082606900354084780282173717691575297512267567533435376631258608389174408159081221615454376267962483874537167478584263881159935641183631809917037537707922509955066638576576519017524325988106339522915311219602544398657509731772774914528139655999213878501987039812986140554825482579460925085926517596102534178566833740510727575178895195057680992672333024341494270678352826606717428176610016299355780617303699786856678216887699010464204549913741876954929204497630118000608566084866301669045442500869750702394592028461323332767752723637875123194358119743831834825013209363346820833070271413327550420034524886584564860729206632597380158516868642413798859692136978227848085714047897181150877032248085496555748547740306075101829626195830665567793203687766748459252372874168411882800349956692375933936673455469106421140914475233921501612729766139912094598358070209930518557532199420581601735964378336158542074515434952095910619519621270104941781340998223618730230009866399876369352729667082747657481133888379457371362856308404415292495784240352132413912425658804930625091285501849171357062858435403400322730464567579930550106448854249138386628079639752454659384383942687446160634158532135597129396837109748132960026564192263687748806457349653350348031033300966573062592346875038259365524325495682033644024468958195666565699883719786888207338918315467005846046525179582982963670194399443459166202755593845813259176750929302837646099580851605559727527624154600765553905182872974842590670181690649617773838005920774686711388804991155547961508314098358832016359521949304402542118718871433956225230377008663744249651617691566092760830779938782439141073229277834442367009245904802404785196768689899206118484604935650399754989397196318338287194225710293344988757377245012343819514491944125633205719224670405392199027234710600020765899131325338612358716660183436111872885734182419173760606226176426885586833977152709909366088639335783014238927679722175780296785418730233489154324519129811865320907713680749186612099842624033299304009924285638037381546042194710771202334588660138642264674685583057687497459331068449271407062010147045724164688009908505181557322708641960646675218716942578163426810502874638791306714494515152979606745979646117511702708369299284911128534635912980591190902748347277473550834981724464689185486118749863465872523688527398757196280867820191089761244880043061577011863007877009269774831807057774497813033371564732477226289473230995949365869182654961666201401927057149324533772617900794446179746864584219796205929718666876539629816841650840116980687068098919476255549475208072090693535862813765939457883194159738651398885157895780172077806287473982626775230981819805998924022234608034258660989114205426739806675118577652327726441913095256064864314906845967503947597596228843463498466995089792189488545540123765973343830923848147672546899034171599857898556379348349797018870816659580550608002313725691604415288251447893352842295040421503545925690086823975509443455160951627275016724700208128595315398881703911899101732849441449585264590289740993070851594670629118195930604851263552914112739121990925205468210523451924835283426212131269021148263600774011721363117221886279601555266935507792022216114657142631466095433958828572140777681077836574094115487357358966628225408357855681681299827781038786112319017261949424811784949631794078739946612427970942467397222242292052379764588548707926225089623553313249235242394628548744755090565174362419397089801674092885483741240555822734188163767559650721043183195568401987066075595752609012998530355109460197506686391559189202910695149819693556219102423680484816544687530429530978878345614436006729957188683394778588708924147244017615178446690635405342416642179282183774379176164985788354131179486518077928363684463002291877365109818043952564403394155641815865475035972429688397837558437569639529083465700369214420744287794518403014289762501822311462860822627576962598746795317332489722412816146735274441761028416943674786879566498412263427404547202270335266842336431141057919704493381701288861439844157590887662274503269692197463774462943579813821571972756367663553003576610672428662444074580615778824801209648788881162904243790901618694230948060432990462121358290986461482220957978978692688645568336019994374790259283544487028001484330631894131240674936565932322981619926008308386434290320323528609583875605143664528881388045611343063312291506953060366334186051875353394231579259959143294399759814028429023033299444793175334559424882661417180940126349694783581523724475434417517167336723673411531742213894483835910867834259358531472508623818388040658446184150246757729526620211100734723682857425508121207208064580423597392525109212909330155840978538128920773581657714028904684784620988585876467245850731649427555108553402429896090658667320590723300188356161858442558421300221064009003671272203992953753374269452180086612999612910154667364868644631915061998039738381184749455588073558497244536695191674489448805726606169935136069734097894595329040592191118265984757411810211726133113035903370546574556673266855315675621731087291485819720573940659674206436501435890457177613178376495376561258507728686784959398091459028918017955287559234834966666135255796779643698672915540320044725372876420732222409257179497241657538229869397852081846774875212201629191350086575561751989393064218551118268493038374230541401715471605219421971436395420822319455780826772233013292791442831101589143394457378542078837190271873208757604549820767048489008416748552212302686836889803746865218749621046495222067392951412461898573626811464974084422298574440979689018919077569159371697369475653442602811229826192244522408752748424508753134930733039367155550365504410895167073592397613381317925889764244158037486370143566565168826655443866765614137635996164223352814083310369014707788558643885886892472952505329462130249736632483890617977790988987243863953174770414622422074452240049239247095222752626273369991061808086661017292009992182103526760785060780712230170508482110961742750256798484847378538803684329560223555690822602809890067436034474309446671268274164501140784408150231633810576449801476092916753899169935936108655723566004380760298432723011094015420045473799650594384344229292828710984891204281205870247604928077063026449974134015272460490276859740764228937475726705347696693561771435501366090182048890214826534480659104040391154718102108337675736257405603986029344296725094368015337041038981232143983787823809816425419033443429513580017884585987861558447828675476072998385938740888100199680975733138802498919182534709058928196322521978053802320730508658502584209239925559638735935392519336530977171366176589451513072466899830330253058035835272167536924638130946889185654279388562397671649365113911961051515776751490116605938457624169878990325677396926340640109481414179114574496332343173743077213390371770248724721443452883592533034690447543580133800653091201236291017006676122956788121373045729124424914714472892632731510449023357516688451824146984630250216758574445539191001058196867636628001145499262960347808835616882776491757356539889405780659797438718208946430502770666989814214700231844311774016618763748198013192070377806414335749535907278189137440514657458656020000210108089036722154591522903153566442841446385448656862520079794960221674627822293151851115261109203315883608012001797373048198665251216657902004959452565125275935512301053221165381024571374459905267914023468478545164579018130615809451397573181862125236493057925179751526937933104407997105850404022905924084710911044092108801409376833304016633154913077494217449676910462313441873821217885322367790946790674367386715292700000086218730969717360035711548276321813419524389714076912595908965380331391422448695889676428672180567141786564203540607144482314197910758185545838202775580035763031859061261654708388587235389286722121869205233269081203629227661580095176402791958480517892750890269705740809692344954379930928416548943031366780155560630714855463874279270919782432201242649856069236026063531150242474237686348041586104980602044559085153007372087080694764805527751384296188029658000124127894190450960211278608091044289873986184385779880258751639797564370894926346364289290271304336134398338004616300571345909329057610522350026844574715669036752958968170205498042067782429483909166813909121929389368493356984741519329196064954821725887540553024807692000253787660771646445329353799882196537378338204612715021872306521386536181246636554527075705360818919005436087707703692888791794419135396935206615823591942135974637557401152732893131941580950956023599545149901028423754457956127351684765533220741969115019506094146564469833804014546486066304956243311344779004058624472790004217964225061531390389262032490223854855364891228204231592233625299651831759526635882205468341643519381328363205724907389507412782567941565191874339515934814650551598756519502306504646392643930108645320646916576685121721964469842107965894935633950196294090534095953714502495284060637658677107694943533735716976692444266768611206683503461344615220130692951101450224657552737466243484387569034620447879264739926381600414822806047984919818792723988307525078594051509450269430846485381997774312218617707609589590500471548887482727796019709789739420364202953353402907069846915672445384593107328053594375155324502382805862340305550078815554989427645631010507659120818276262273170750837867761565051495742497736201971314233458791541281479464202552766957804020301359847476589745255732024552730179108107397980414520316078639674496331398296681114876543105610617738923555294818932188606271355039478848605447556445340738707044748710671600853775108463575446530024288882491345371318672219550842023757457028693240389879569919043352317701295258288396475855991718395883846498346734505823309562471055482268115233283690878287914803599740281862404306602021995689293459402468940369477670502690672042194510360881667693456226080388990696769250232325932484207389370833163283984456246650575994336965744908644399337035453475909967597867786139270289232155035476710175702056777975853604723462119718686663514089712690052415826027493759148185214959363138770576209805263508359024588453105435414170594355691564206870467336593626678837469069960925101605461936950865193696530449622509149302646120021315568003516655000708183855254965939270854290942453434315897613786012830462488341264537154810848386480303107720395369715066610005010676159606441666580049425826492831826541127671901127108425358898201201594037299980421115439730342143740286908196464134359499392350690294896309245834590394657583934678164918135247411578162655354151455907856602210220818837987026878871211154117352430789013264555162764432630869260720293097301791535512567417788772010546621763535566993040906687993790952918536551629840595531913874613923446158850356711771797510584226624742882543379736334826772794123028298161380282694084065857497139244117977840481230372716995169403835476621551207522651398916943281969418761735459445218556731550885753851439540781147338362468917385030232530332677134787893921500623910815491358994073190767330293637378806549139927489886219666842854318906948681771920908609449245021520628358931153772424634507252639070039330493317291970078838529849422554159722651093840475765314710404947083453348968505275473167007742102023496119104638247888138052982014257194294527673367658609881522949207531060796897124515635704627055137540427782949973976637904994592041221335557296393710170579072138463528978601947889696722298700093180278836202406638228393010109289223385291665510082770521020277996929244028979699959186209614099557492674106648589078999839355795017452502527249026985889624629042406301296029623840748778819025184128733867055981639457131366218029236706840545162486596886137950726017341898474969839612449238226040659416273173460798227025056833720724713343378282600384767797803777097272821221368567739540485998632368949891113511215940366217296600375134430603337068478319566285366906017335821467197215380798712091632271353501022274922332990630429134095847686672833859196760808842251231842740490406391212713408849959403293128347325416067205374425677199409524839556011840245332229693337131425339310721556570532287244061618490751639604157794916823876404817906680515826231970712415111078834380911879515630158045125251828600159833150936649337371756808828665135730992776958162655988047992582210734360671640566322508108087738013969366782947500038908462578911550158841409439738037387771884237453293363374962333971210608961461509844558093719513422054849392577089289881976686780528807380213703068593514586183348342795604032856592230977596272590685419597051025404866974891001518596463683944670039446783617935502936757610251656413707253351416788316717780293234970527997933306503426431887441166238144070954126202123849822008575354723826900211153231771949385878495699631850256279490767224149091603196344781601501481026674123752119160391349393083318551260325657164333041578757303114169646787844317657738378785642098951095508915029850515182147599563860362236469621804036532115328626953006000106591636288400438234117794798611950385997058953760043508662617280910881884558807818923542862099537350413715455897183933740901165466508870290930602991925275675264261725290396985849903243370729988875612493688551459833468139802176806659824145381845225306485106613293936148052602854491017467268115658457594110154836398754398575393105800363201036824590928492317140822946436528988084109722583010571121084363843446377494846400879889927258285144858444436982624311650218791619066248980340773302626118369208858721360443031703979763906475327865779293106489186567224329278359310934077335854877587649492466344361998145938436191324648236543363671476150609676805025154118122834008001495302918426579730630880432895756563981090282875085320684158719800879644608944603553182632981751452518251098155361758736448312600739194904340194914003206663127081034500914117338931752337605958874415242444826837202804615420208566467633121351274427497190744856548085497504719494268004804626650253369226477980532742081219889433124639259549243896608024058332018577051728884520305991428815156203351470295522816055373663583977907035984203566310244320862833403784156658646667882469413702968934857522629650345692431808904071532547585177894866434861476353891039678246438952888674548106498744799968275777540646665682145124485477872983913211281543860670062224427349480402506568712876243337140596032379635388885445492490845529748139326262491076102433492377928214224121695753786702124415610390109520257036451595565254324841941573716399382741331881935441863031012145258763111499528239045141904301395079206969490932090347438426773804039449671439262108115105913664810678911678594455796030393700668497078843878362177600286317076520094296484857426155621897463509983481283888476479259143856672172318340292610766567452288898715598770498468024794711514549038530092029848259556424812082998161944949711398745751402971018298872797495948551566496275317482643869410580278905783541612994784885065610890945904675066167714392038865189926411537640364085303301666822100754393717944002044650980202436990534294961752980209702177769941068979516956932069777095457455890758017950647582261452100524236101625699842092065774761564456826793241892725977621964672435546273848998317372850004524061476814321289734632930273841007147837678362171671211618424006568439843898210394053504578338326987558346023637996200039276778949831430158022526594367540223198995841665532781580776158934640194005375994215258553304724026779236407417201414875950684465109745363619061920214626225495105661741227814299948483585818355162470424943759649915562495991441672877684383008166619083820867181870998413190279765784541025213176530439706266323086565151316398145497789715114958806680329518220751225234026835612706896249708084653708993004685535624199207007294672681598008959292640550792504093791728752557079758214985416842942468888184508141405832436153690616762479220081008161396686585988789252170527665895390721496848738611370100388601378729809447597888564565704351895051126947975482564820220276587980340646148445436629693597276565437076441047608383973023734125043249889781404625998850826271974044260974498960866974182353640370929472670191180984916232333673534849202479902454523658258018207949922202339487535713037475986199612787452724291258789250557101840335502867592010063706633470059593269180306175928027125720502531458424718885293042349898819751445696939740514959319593089606957976866067824653574377213895365174288575739851958622444690556710852268920804186164439504640618055776295165695431934994200375000042499873932938417150073032626744656901827661710641217129530532266109055481016720646618323622123258038322766357189949538359157102812442214572796022192445962469560019140068702132642727408700616259206171999171173256659982150837802636649045572851853436352362618246744980995167330686111212033694587301324571319453457729823457931605600327209644233851033773536287977747595815797609652209450585476862120857280052797449890599983990843264384491140602556921899312470073117402039381007465219824721815081908069716276077445980959172879523824898143337869543979622456264269483165058888362983968465406785594081092569731221605569284871396179681482960879332526838998661179416626692070009260988326376658202449573385849526216517630116293601624624308968503349925405023532916069758806123806697998695363549393919399959424650871504840603404471447581146195429241799923768108529629720438533943741084514547966741750057613101923378166245465353169147867726946195481134363469709110128763515463342434396883442465209230250234487312467371317728049868767054346162812215062578497157172423108703638453284646139661927935490929350657895823194433361452344940709199204888311171420278145275821410929816392561078833913038964628503545373540665079715683156156920109583764743375698634329476752724274020507792297476831447270840843921197092536292103846377833116179543026738999035959947084688750547816339303561873368768849755097557736427637900770124735529181563011927137211406821300415049457845023103942377252102081064953563961164307902159015999252241944217096859409068860126319955113651705636252396526753756359055262182215056375454067720845423762468394394072460040149653211749254973736166879980788802810876495320261146760067698277714940233298125353322081935186992666187387995408319704965701904334580099732031679986270867187864177490177033514097176247692745090901211148859396913821248874316070809035994432041260961459600634232723416834026212190547731552335298868096817385712935226007583985207443058640607237497495814907343814181692572774913219535846739144877570309626211364207153010358318544154772215892882140810062559257989414168345074058802537503737637171539189424825901412099987614375071932136055497069828100748314636969309243238351664135956874725205037626993746212794820872089116672134837677670948319149235134421336755356019005655478562904129742659233375108737130895244711543029279426638035084188536856974575182010620458981591703152502278618084310869779076614999616012797257888281005267281483078101909989786752327163833001831342304940348891551764250613111397531953943271754148873020138364581712236670594682832933263038002856225057398872389790121387071810906580403790194448240031805697274947954942156631253111399589953513039980264193416351476012844550845971982848460276105871555526452283396473718003245797586575934664816522114182765214804297747729195599147964973533211313852242461116668069183975720532172030804047514037628180904469032674815780146792368810703024868740293210701412645480823182235463413784865358197153791571058113018327236243546134215803859407718787465785732813115130869797125872843625933692344907426148703939862832634423569188155520614203347326016643104449306889905334377692527592659774877391108015098007274805822840344497842520766416993667866189136959198340134437373611657876995617935702654317240438659780875483548987208579042540321550911486666024985554935009260881512117042080215858736299986441392735760215869137969028444057907757137400548059514782104500890847803258231609480272984602000299288949632398886790256081208479201179667244057108026497262588203803063082786714189063813308101312330869776566981560941708119976488136910203086552700047739925560245719531056038580567945930627748513694252935374626554943442772169770825928997876239470538851479444363459980266807342154900436380070848701888208120406321702405378995343595451383286207609486423343127041287019825842280124243310255941059553301502666239234869130741525859036320464296973180975519116773988550860754627338310158832760857395343129361620116080183082802334029588230505739950867162092370558627169843389324809661138862595770792617480904548056443401406001479212234457179064660586191118231590290233328359786052085817107750247871541515470050444234584237344904365958663737011064919800996209298985175809742229194020498948972738662016227220926266503180313785112499409050177543152112882603469979479857745231935191588649683489597351751977513444672088657598695073236927392424047642098324361240888320249111446847407493391852236861058511711751152665241703646748282348190445601375763148949464325968793747607186416420088565309022116361875733111642140499850584792500620151063912138654141344980718424678238595123103349826432914369945479474812405508596065872278661487637594479002232827045738707653130190694628809809690778510233416094500206034355776540655455999596539224073354937201513048945765322222789023047084037946401931981629334156785766366676075818937468028195811630746030575455827864733376690091580806663273336278582642430451212535515862732128701554181995729567241061239774098824510739704430483630715936683869953190058372159204723252991417280538805474969544882160309415437149097387582693348512978360763929855705636968600460527277734102498079939626835956610902627594425402556714992844385097290101783890199338072659640443056165539222550273610253356152378622752640217126111704266699123586772479055443133266880373335201445261753318764619860626569012236267652591626188626360364014625029404460237689359432107820876409063996035123615136641011383278755426673763324362866040658421520490511716693188392078928674063156445016220719850325860776010726484195415492462652266985375501775672211837998226132206445162999454320372794831927549841425394190409126636909176767977329289629664664486246662300885144201345482061623891436777177472038414551730567454065767258726762209213832341547205404590960161386284803409247956199355550725025538973922823726946185681352047684611155447156582378854659857523370284912937816471937589605514565687978447235161723626271089761567720633876462685241656038987929910880799358355991872860999791397694780095503753023579924301374284144336067315056167703147301905935119130282801466975398414991359510698882723322778189362587947978108393606890984004557483295856762541741210372410328300771600604491117432220300207738642534994237486794064156181201916907085179545029843546233881258561229658840220946958682779648074087605766713673581100421608557638782505501587545418354861668770266394622006022500407664691193077811545823320412918767559419038465042499422183794719004855429901646480105361340897902123400872440166278566495806051540927449948380973976430471837707397764500210940737788031785353241844884472863103202158063004574500710286020034042962173031638906924384929100521162885585943555528438132981139527658848330261537014497333111106034342745638401326366499287293863288168562679769089953191351326782066856750897385495282142574944771762795502602876817830537341367248035569226624959617888255999915854493511368988949148566523379487540997320563722796940125652085034468027078426738762815211091476535118433441974274614421354672579681624059692582334254556002028608301562720101229317613779035599951998315446353851235127325503356424554392798094615552032012581459079205771500203654129397591194571933813860504321070093333843626170176169932801177922272866537887331209305237568082316985289589480912818106337209328439652812037927838517159014017493346840316555109082693155444968665341618429681898983632985372264088388944950554537976876439622314308505727584138000461786670694281135455429524355834499531275623366487916710493041690881208579927050668174323120990159995612933376099963145372900806052535303417666798219725319023228097045129329648672815349569060547644079000932689142003802346049711319457383753906417388743761176382023046093203253305370132651168945030039980325929165578640677196710327883031683240001632767110303172571761833867948608634011202207523418818901858665815271778445407714072478376314868312978626226640848485621516636424909370014202420232082113275737227462510914913264128284780956190298894436016186068669047413765268421150924011512596806176129729110799147267319907267960450595313691603422218405486332640611783035322795856787388025884464793905127929891182329709553654125105834538758157016367810134163534957326570948975030666394450589282031156276701204231162044373906801874777314008325856245941610690677880277941678729984654863645820775359123568648973688031880295137448008892329860030180368788603757797599049564734146567290031895423756549226973131004655090896505228855660844394074455535982913815480734946707640578678281040999046956281909775234991403977555546792153934027419483568665089858436387259127382694994123928493785372107776119177382006311212744947351293537015807272748550830839265713174521981382691134145865590059639920812263780224824011667316606500037837303240858676905131219342356264897482644712326972288193976741029298358487396730438020412894681786824100335221989185678034821008939827608297109801401597678561566177954981726584705654608799242332607903930823383797800199026956404689421261681934123400539621655729806756335788158622477327556529108344049597186640394495850116371716564797712139428947547567672966535110413401368290533627167667894590997965790117962895144670616739392470008075274477399837094643563462259086489823977992227057275910050907581747789756558654867581017715298919898357137643456996529951157857863384242322361992055192019232887430132142220854213865438015637771732140198816972656545644256164926101363815194925640079303670410733475943415607846179697356477149129265799025090544896814196072476471428891000970732636117746992973649514768906607401543865870005681823866289456849842086638017332829709335683243867183459954360905890823335690872225503017647122799557678596493316727543015926976986694728433638780349553791924666288037023070657912280396821516198674929715972914646672766615033539553591961748903376666483741578410848329085869204617048303567177212010590413955910968182297960778395465110890983380279922957625986737099488345471819999897592165201021146954856471168539458385075767385337689255518512769485978230801872223432731301930155831628729134492188320825033910782603129125832804374306746838304200863820975377159131742765153138631107462597024739974224285475720020505604163504952434570077360349630921018480648377080373284175226745333921906013928137865252376248000112975113908806784621489450641458739439130837228925865569747278959659606142996420865575097432357936383886899149349356576155265301431473561567802289292025458004062734846906777558812344060668739800964005847734582034859077511560760235404636273024031561930045582877413165371480342763051992877408324240300315540820992725204319306870256557434583596962335639652080024185805453436385480400965201648114911922326169999040791819812012571198651541492485475737691274110768291581390964349993590986695297909281074147065613441197171876520246934424078163602801796899852931657608207181352055859692442697879148899463020499589125466864563569787004013960993620400521469490137986908276298829053194357018230114805830413421703775093917465742752818573917471826370750265729854965922201390379986188181584194218486778409365267065897216451550676078310938569380040893794697373538437084802114319488728965385332586358093677095993087209024603427247609694783953320870431743608776307490862136447372619640509473123870221157267695348642561304033904246917336901387785570365272717160937529663665797044208724056623478891120051916107046046630540731341768541872528686532592775323552055501401752529090203330405124532447254566857628546433865605837914887874834304020127952196400837810664973301655353835499808125331576415616662876675318546755596310099741916137042543287345833732844172141849847539840512299387912484662799177753882532808028449314470711356408924384056524328143866122857022146295637952525922479751531546611146025546229384260766793956677625460111341040208982588033471180493684567150910364793813279161402632248668456928570379277751294793897454828729194918399112868591766189301410877065166406901787562100250311127312761626951799716123465221029258274491619723991706122106911402529281318538772004309259033655777074403119260612509419286103158100946353235690153612481206834547568954980242542574758549303096031851634909511599841626037411863792618911296425924904997507398823925766874352955094131359674412887889858442880798098448647929561180585147824969322212696674882514309822069476439156489908187559378021655149847908627084834433558154957275801090673745923526684656142672381961339057614835768338876428885081862294490796891029994706947434933160996382941234939107381638631595893543539312991429555264013042299050013746677425752758388034695510725331675719301844689603479894265085579899772271104334995622501127572140585406188892824592103827043664673099718857966533513618760616787819419572971438791682782859718778964726520813064376185588813140042996048834129680512120387668278494331461220817161765135639962857808805148119699200833575216648234517257482698316986549947397260523046656256908124243693254321137336088534251152925494679835610895560453745232180378584027355999619818213634844672622794578810261959185909444814539915554946404420046949931407454469416888314349487831259466904069636660898775221363038221656807276518944635530874617678917567173902486988227417431871959012540619430453501756866471103386941188098895312900348753816060126346997769633799137329571567907672521391477104351628289699748940051782646622857170321207321201133562195635779227584111350118482235395354803017124991225068002613650132804300107197829582809427480215008383349985592959718413300031805421048241811153578106587393015098577965436858476832954439005741262270965856603615291443079186643202165175502808025180800951490166827780750920371478937520244838847372832731479151379837898266021350262801895266333885715279364345960157681071916318562335476520326208716889636460405202596493845878922091113024272536184427740144030178845961374483562946721271514863057172718676946136835040090296462213506100465040150522488340181529907016111669958731296667070553735434184150669326676113646343806002242855196607982872168217838008340176970125142831519074651947628555077993964277146542032548073530551127742461179619554384109230485931617841828059421265528988599377189435119210453156446224779908924464865605402740755206685634557639781543914660160322139544393575432205332837091483690316644290444881739146456677618973206129763638567408173440542479662508430912654197861288564176893589937672301178344926635960370527314718535490463644124499315704650951216395982831882265533979773258992772370374277945805890113393664451714735730820546956603615501876983778840940433414912653739913064069020501002446222285811542613929180174144504464680663000813756755685049083079693727022118596249353187279564502758235252734701960188110456063175270772610552915067436707198331309673242294444360853109002888012686181438358195806048627957975477471034817620959949882547574542902117136901760765983471954556275415257488953691255008928715464033744292995213668228190008310088261443241928693533548817634483704043294909338319374623684144550805305533149661298588399947020430655495215414227537940531996291957708774891390933441859682311895082161007016309843726870197104065915203846732162947516388865619461876143565341279523724528176369023515314928995043276248550637617939724818162485299078525008976791570496341685492583800006937437773835722177441352566195488434954839816201269832835639867025599374508943874503980722720403032962982297916589825513179133619634318861159685052142846581065453044094496434549962379448557210606775036623376428037486783729928838953284993264497337504457568029217713084394742087668426813493239788859648106948154531680713031185263539419036360513884319684659603871670580001300599885276276399665455623733602980322425393844167694877527936764925950469425969101886827926772976149173557127098998271529382113251192795201564569290619681819552558115487097865683787841002096172212294046262846994265468477776115012739853507920440188235748367097027800620969337237274030745725029169070648513434229858016806468157090018063201093888002066105843743427341576994474414872778126241560502894477589224231392818643263712017746311746212799708733791544111873319615517466972062611549400167409364868486103660931472303762084593929939992194020904589469532019307520634551237409257283574770605073397772101911777042528537202044029925425865851734856182995068770730740041653410456510067613597539459470542775395742779300935792103108477335714121851633706547569408181975065595359022986247412310519289585709298511899047953501243158019111232974573189239799340490915372578900637595474665453837423479372563659862190745651776145304107199481982365511142808118506266073122746798097328760679998690616003244904782579818155595891068869904497599554275813161951965408425126315781821423101759780497520055816604287128951678612403468245816439529826198662085230787452646104742928616212243355393779963455791516633061665830507513554729361603973889859561023021052586097366726768035834520875778769117429217718173547771057292857035371358070753956982966761149959333060048904068036762148099993373038298389321895124741943373009468663144063787243152166117029697280207825700140401999943315723885586998436660937968734657766317476258582883974434243410246523751082900330872987564651614434528618784157035060913850062153335391905867714078677294118310558889172605439770023479282067182367201722617846201034370260584969479443153631200765916346482789931981810232325091358973501899234436482703495225586075239618659112560936986424061717172937153693464795006805127512400109805019302247938800769653188206087085314060727967191084290644168490526569974109380583749100461889563196490942816363297686559117193428730422281732548147429192102456313174909198265332589471985051823484198558240770987016127904711165332597392609478073111323825480135995368097533881401718839263578453196151816519464012226573438735116100515286256329678045065418112225221800781074820495416509598538443082810363126085671965372511392258159067111563162914889636869798757703175957386545881707386470743358763179925910285540714784696785528147130331724273429449774414436348619821026186054421729459288086275894046836351591927906405729325017390894224209094805391750210161675325997520969118651684445290255197021808032795439021378166435445703551199195544492033197139969151789186618511390187432606821800486409537268837335088964085396612229623988758517896797015446760304521376911612687762609231230521974583830879871942395395788873663907713626724119013201110112460233160149843727074700391223509982683742045463133423888035226879245142553648815101157339218197895944957731203084897851638639183921509592281379185322503406303255096737617581255373781055298900241041502981954650969848781809766240620083226118113984552634868709198324205474023639860446200444103520317549849166668604254880273309835806233845833261737016409011099462783601833868079928140101075097794924065330636042731831065830740291069169729389147445567559809669279973474917574696008649600614786903756398294864705766502587370019222785382751260766235517365705217763644566413639108325931849285497426322976605250344371892905461422096306252439030441380496153115412631167967089386026437716220791882074136486367918696161878797030757398153884040657551335936322751961339943950502440604544234996173193742312939332777871185912589917577423797905171095449618488504659303983258597628918516053879056942222583936688689655579673385765819500945531266084107380129302261431415781641614645650582468229708202077589465285345399266678916462761190857538566920116271311988576379800517564446440852853353249342368553224551365128367658757773267945427782789818343668084507964885598496737883662793390283848127622152597167604400815224750267299795800158633594112801907904101987063158165770437001047411008935864297926674902293055644704830932195014861636871129688018113069137706137699888213810338030117523559258505401073841038845138151743521943493618509917469896668550586889679063205801312048711819727010900587511370140021727222584867625603530337923158391590006428133896002697445191793995828236192966628500351576353921866882297164639501308576157782178818323114630017502886130831092390782548635769529532995423027705896378648266150515132723176548874533922527054214068648910132890039100445232321096404935730714581574894010527827709504017287241021806099772083645614769111280805554465138000833227082642248902793048083766306875617362048985118526510182590791097141586273754008711542005241353485422702704170043138304194224076814303947949709837702755974362883838454196799288141138750345675837160468777021601124476357926774609192936244274219961363056424621429136240962985694328290703832439348172908748892947935530987806670674312266515474005401862481810427595852637464563583723395415381771838028002556259503400227640952091511009480247151763552409999417276770727597619708377831030123140431580980915688026937026223509447308871299436338768474970734647784797469236339605672142508035509501443080601771237660201789308493198405226070680161368911333507588682499882065594322034139749535299477350839973254496032652566753812569819458602294689900073515009045960422833876849718683485889731098513563494653765732846940270568051957948763464851524489553483098900149831677780147385914270295317447909652877419185109231558115928949581274664001268511716853411943799924752243175183790308243056316658789635514037395954406116466708738491455869377996200668028402342435867030372185674597530842582360716496616396587117948046106076735763247129309148538937752830723965945395957723800155194756984764480944381104830365696655079250539149573696076632015046581444786883468229028166091463659871820617622573503273873924749068797252237882494378375182455859835949011457432163268162287091764135908532822565282897108714677135446366140176171741203166816534280931452451804670931629721929380364559848728389498415307792786692612434725913040264088920665888176098327477273522957055708262806757349762627336152030244237105265264440163282364130585914626130461103086018283597023086474025878329470696526366849351934417698563664660963580039887610244790709376123612920615209993818100119246032765566662729198408726909844463796029239022122947644614011211673874419402052936557618972199929853640358533672659726274708307025446122301186898714306059445049753987842910277658879722715014421201263950988873434985089082139077391057764592857952038672521628935888593854378580769166824265185938085778841025875980470073291578315055038083384389012328106344107927369847394221388926903816185788035309720947963414729838623041811288046694282559047815618185386970994561067858883892625604541095807848854702956937484235228373272549851206665358449159907210508527195195833485904093262261772233905197993142981388371395024185797004520476964140648063677757840972247420797393707333363120354243869644668335444627562665189883812135572828485325133634112634728116893764747084004372507745499414230249141772484393192293428962815996534815398112489333496071956347886974692036935603848952328123876531273404037645999244950152359767407319116920166194174802849946943235912946331234948490542944434924586501775849846449185553371083279413382426680755853312410057204447727788166619341446144109140892743469605836983114042976532145213269483135559931715626879305932524197960371795102493298811548492982375972270815929065561561000370739077332036238990660368250922035365985260290261505193271985657832559086349033876918559754383099925778910219448870676011911299616135678340928534618417113241398261887040367703928061696523505253952079960584246256032929245176042726902241535569338210969548960665055645445506254220052322534170493181691527993501199291610627435280386189143694023746334170619254521148268017097066038728287932943976452057117246056299234943952930803094466626383532199655558606158937884261834278121741564996961156546964188739544400773605123964019115624688799235325110005818854490906398841260552445370881400389421420745126596568834732184705276262021614934160932502064106636099126426307854070614518529713671291176536688833802039274820778902873723902999224859900532164191340369774617348089344786866543433780187780718209081352441716267218647889499765450502800796436891334569687777202309551010745475216441234945942863957655075978347283325974167481023212162826279534089573711093456283561766327061647806251220827315138339809744899632688821450053794601373234631211197996134310580441196136423757908155153410285550478503820523639143893726049331953225445790882006422511282264212743689024487894962383184622819631991443630565913860695050135759081763681696415772596610276110822096185129961761904112271778638474839906305033617192815120642210147790529852938696053956944792161049045108954229870700970463409623613587925340814495806619652455538176735593420491727865211167027179459709646087953227017622685675275214546266858019352018106363000481242406444556177533282958074595222179769935645242154780793050440507257082182966452923134461033353011682506759721879840339393421487259181338260784571896909919765621420126183493618958547581668155130696897839084902701338262254574238654784193324423438328819708368140643380256400216459962464819697770919026554732162269983847734041333389955866965757376386780997186606831892129648887893807347649988016912973619582852397702356762257970435872951325562178712410475984916543232344074801773852334709481029735326664157553427728202692334537589994670024376576504350498132936762030344148480001515211293178669719084362601805700918942054635543725330958816990324215811050084807983707615433706649608664342265346414562353613865151356443576217720029518500443895983771060849458100491712505774677782876174177787992988874520754804657698946353596216251290807708119767351370267059255998612700814268046185917526981938889224483185001902968195293650109124629950693266593275572036784647768396770637905621232660584047521271136499568790641038382004373742715835293562110322647775251210172177645421777762456452689263997762240509824011751342378768807889963610316841559071076408253143024467674563121000866861064547078547259117127733370445143961404949229336907621681798066208884507671783769920243323315508994637434138444560701831494646004464787002937335971093295228372002458235526125426025458109532592763081582887753877045672381791904932054101174749242027457909740890969037698028895223511807289714425246154393902164930112855102039891006671461959415683574553659251717435433697013969651300758677101187229554981192556141345877568284554744170016739274082024271152496871384473776845811676931335882669003394127694356171551852215585854274714264523253758990781218203504726198445344781135123093287104568253050994492719645709241799517559756912902815946478166007323961618624672822747853651940489368785924273260457938888813379219862680210868923779654126025747600231171762257204059946406422990533798871464127822643465604631476540510860427346720813705542245716424068915841203814168718315056538505054143829680658287699460024998624760778795229831510732150341900680337881512686397019897121447618155522165266130146811398929409736724512294434262869956876988885781193713984342362151128056849770595189374779174463264173070188665492078843990046475769746763877075536484388236141316240903083255202351526521255775733512334385263692494123083155457810559344219577900738532058720251923131069853678801980454625916708444686345166991452717250442224473215695349438506324967708369756482963144486140638839108025523722117511864865769661075231981603531929313562541716236456339648661011293167463814341081535874066564301571945439431092683842887385530650814874104006152788369035724840579602196884908727459799896976042872927533090721773757612978906717275366092000835863557296105493462469848523462190307832136961016235069562607115607908967868070980593727262997044467382827328171058010432606981988421001982504887091676373970431736234435910271093788788361708212548465924824824998532126506369114205372199998201030678906140385028405639654732781389105623967747614578711538770335627840761666979935709667219681808696985658503251772454657199029464552186971504270546169023047673415451849251370459433363655915327960681733091257840031611456323887087031787314934107240748220813089396894547985025865046185180781934490182592128448713606638176758766908987410246660315801665791068301999339657558673643814622004675268884812803256005816242400102048470363410046772513090984294605363851423146509830834067025217145154091809513303813991703558781311313517665269930885166247005453331289121192043814934340395267615590609024426275377671515881038675589620747666061254657087127653808322410541288639330117561293907681657060244267006736399273271655574447399712182695096426706876523176633619455272895406178920010787951944108822552030964241723158872814647917825659545925251754008005919946259607826028743340064770982030225824300362621067927332861709391467257728873567836063582392664765723429218318725213378346877574169747538128249596741536102921402827464851162588220022002598962085931248480562984233475367659061603870837981561141397989427880484125728260086961838855523766709236140792210649521955394479491598901935335301077423263496774117981004788004289490915505863660060190400557472066629037904090967211207545017289143232972970593631955867310689800099319772592070672969528200708346256250075692560228453833028099720167570661153163572486671022977821681248158306770514314590359090013139664553841084319448880648996640646843547556724218124393353442100049472554384511755392218172616930074852630949952885799528860582879991799968220239847486543759928946023667299423261853184239720289511793920120440794015683759688385246119105343611509365570181679000432945393599418847931665152759235917421618253260389529885618561371507397297600533319374559386957303004675045037324638247511358553090910742904444365725917119247561424267429732503203426444972549363619930466288927865569087614320189330528124927372881512878848812722549781463158444628548263471831826656660246665191380493409310191293115476264114662532305978301886696816204507029684442015504951974755838372699342369026865400148744641255537669537992268471830661675292213709369067681337289945593320442328356718300936403095279733992777030241159925105953701020303172000034264004444753995381948760750901230855222928990547105168212950796087918300957428376879394809402541343760443179184314282580227400437210630767177176494564563434638438037162805948843932100178660181373802860590193020130219787644964734324100863157470213199878906565524780545163108151942985089120253463776314340626968362271311315922491835706544796764865592709411202010821808222486401256892941125935303037413622737022680905841759645841372141534286462260662203084555199583027478555487475794256597459208345910384438453290339369075956081964833752649634106408108838903374555974318312890359004538093913349444264834800573607651869295051444062228384724220759585887423242199124523818813040014860657605710960361208837802338612855628812347339039595502766184361122148371882995197613366519362152579351092318787220042792972908835978835026806198288645627484889101424176980048894974323597335615890104863853535296209109828796661336906991215645077178324393076616128926217415123326179220909550779264197084872157526300784534019197738957463010293573808159350229100483802664301242143164128824209243415041897549647337669673137600804741935627436276674005304097649776727145700571249846680039977026759591686953962982728416679856522109667236909646337505398688482202155120968446725654036561506169074586551527489616220977733062454448173109144753217831737704171713590840445713683049519155009337405912949272092712084885732573553359863886415591401460075426612208447890355503927703358204437968073831971306821496500318184505606252929719567484756704505017486938333957221662076237382285889884931450509425225971791484009749478940510086010122248902428294368163052064014643677350560074873965174179942280917141023041823765646873660267973733089431991210705071364968455849686411943010181323881305798560543523865951782445851906033927501784995058375237292614275945464230152887144209703556062273255052709286042109228198393603022388472716181996115156958055767690656682284397225560155941917233976993652110725992447046007729989546681037828163165600200896016124881465762284047767622377529250844406701544949400009974622840858830288890193679478364199318170737521704645161316024017878275934431673726876227870712975308121691933156447173979095666497376790422197219259624927766608212557633593015908986352455478040255108916898953754712384748324058171381424608601961193286596911307813517884501701194896372796526281442856092793407471486761137500622250515502661888719264559559441902298101676926060137712298197745467257549573824898515776899020825926070805762883879621590997302426109210408781337082885910853074793619718849754921338323014270140138886924883364144586408749999038755105919369348835915053955843667892175627701044524151299218961761451560466658417788047828941125642369916123645393650791594977557983522619278290060939657184972667219289245274513004063634998623028259426608380696921080742219017802569766500638316411916542575870746966055334358345868803954898308256312768658256941087769425427798302390029717264860864464690546991586884908723656302087628705141237556286992240239024833572980147798601392122333513807842938909855925900150757998309108994421201264328824951801198399981505668090694130501925983840325848654995827797720004231462492895288900579392885378550769275212194211631954360980330191554775609545655716002913496272689958400159826589149964497705117239445714046042702102723924862216362427316113899856771564423622819196320483300904694894253217721720812667178059521317412287406049662926248626741165584166880603318481743254890560474874622485723830795760646659707776283694026294220101437870237729887205664092031161633964373905882772797552471048402887700784637765054637838952027365293741444597110047720212266808608920354570389328379319575680885475679619783216503615147522270491530853002882443189783762242622697994604719970713294677324771067390801978282038402090258003920084656511591180286170537102100243688683403399288577715571364443595946992970381270814542303084602072440558686962009256711794833524251252420767969543866632516591526738817943241893512108101230849538787491051695467040579679035729178690787967141576952460142530252095319957840601188308749699332488928093993742218741740251118304067223170846688371755694286201842620231740864047156934188224443794276405510304644004153776698704158459659230786012916688512197952333375941272529034779478634317520466231747946910158240137648571870541922672395374715274134481789556198091503770774746667405712720608449823248763910389714526090634623786231873925776191822061053357646367928812852560690374743717585557672160608138282740363918530558864839625731864225634832089472627047492701961602383675235334489586822884970281922173585863866759498174415771915607187811167061627735100306524164223305473260294102858730246990652522825259659296254724130962780206823424830277806924117200428856269068094285711720141870678452657053230229915089563989553591821297953727806198520992564920711658861745831757768784508886579180968367262123020166515152507354729639554020948792219410888447528890577726846570858194095130195510798043048539438303877256755028852905008762717593979226979890602851964513945589535008826365580764655140120504583197486383961247908890426360539336098293082017433318434088167102105269910025010720347526256429792674394491490928888679190190563596350464301402517467580504112658572490015856043978398132543012532800520229629786692153308233142649704122580677453504495326445473569735406633454178611002821968775903624528543189449881393441472228214345241511330082092723775242597911965301544363858211616071933237821034384270855637304733289604131766825401344047303507130463805620236583024371571518467584617442582319121970626773443279200580159108581112847293470245392781246891666545234247799894099794242916609860968323061526733337934358399965897940991353314678526413305063206297679205257854015822830932372762893064464933094050321461720104163494302808847548247259597026153190344974277437815177104591868814107172044478915745643000404276417780046655446989343377849201824963138864761457642304194839727565747282233672393392751355379159074068015935213797892817542419752428087604804572624873790742037784907994274722003298884582834864178421439838469585827205814914871477503830994672199847618348862207886181294061391856057930660546298112939950227388356099919183811056928128323478405467124714047422703990583112548042651568183669142143697460758555647522260558550065666170224701712234375799428744649817222076493939272442651923541644398610152555548421659605960572144129088470690875793501842148556839620036879150470837721404375816830711245092732857077440269701263100820926581768845945322501029384009330345693663721792606066660322910856017275532647975530779225223303406791276420091794213926547978414242711515407921999805033419298496704568298326377349140693803871902219572198385407205606710663109546885254704328598549978911114662165697752130375755745457011243300690765842301207120276367792625615887900203059972146995939786117191909610864677955290301291840999984617121705867192111940683800387104581915494883982988572914999802386618618553921478948025947116338635472034607488720670500969423863012458021451593102261920313184082599800349867268969606448976474508576764290428101035339650494937465650827312462768749804140980022621598001100182502437894372115075918772781312990987797586089156147206574907555136961557350003510207573556900629033782800089624351072180740711068331656878885491458165104361641614332652555724942765577517885372370621801374572243536052817817743005869464002830492614905676708566015160111808820487465831007175963301565400657148062837668830960184424460789045191617128899052761939533769843486335502670207887890805392111378607975798126152320713556230318830131085722125816882815747346318145828085392558838588454928207356293595981475434342987032379101425702367080487886391229709939201724712258421459348619238403310744970741940732724789590021805059163580343774766304167133288201892654494111483808669587024364332587736114171961217581121941229066007940422129224002215630289282698178605094152019206846184925160043862927228112519014099136259611469443900278499217527795506893257584449198225679227628815031864631736626163511395159168577951845431510117207225269423031808823829306178084650161043142036668556367089360759428795249989109157417685594288188354493460339202262230109554011527716653278044457490073127719616251655454825950470140524505793267146168054492008864840814269381142803434170331129210963391525197793011378555182873294640588787266304212952104886484024412719679370949790467358316171892684307685332557708064141381280597775479334617942503487995298643556843042519470686703844668228775858877543157277074370649891706007695164539900215545147227827578915530786471128754913932768566974518820229506461600195633444816403374730449154433882044089447150173697600056376901541640756224002316255386955464177180990370526348248089472482966447199596696380115497836903640724121457547369016190097839058210891693354978996207994541391942422357007603298211488244360573220121792888220502876993071086980818172750540283687873529637679745484700567883893493136436910816222203086241889547343043827720243233581410325454822464490305233274249568136499329415626267599070070724548446794641306985034865702416203858054692733033010604461753252840591545870354263011417362094541140833648785510994186402447911300885629999284939935391995289190948592253931050692452832712092455775080331693423186693637178597157403073528666267405238631448618633910693993728282041516197888478076369606598271470064092345771865569852830346789838524736226571558512617122213169664526340290311387345452001166358850628640832859199546365158777670518603291294153225422547481003112454505258339868720592505040745106952877790678930614921082924615328841824957213323631802995552577960821424782148918147860844529003165349322980468614919745487119648563957679656753636115365855568363735057216398326042330903844098337539682446131042868904356701536061705649004628263260057480771648647620828647101808832069024510765243601980764026991951967161681809828336202648252418871335506184503906523947264968001208363651526023233104487557490145973426136737376808928468824869709341682275138828167818393693798323304627669295943189173456479972683073565264647019073325983483723016759799057047074170810057890229621341789709856901622909848965769024632793727490973239079815567122121195683075014451578665497928960766959117918162054287785824423549233867136547013808455027413956688608226190665965995878553545674934028444123948849479809972688069060013905762532985495708061349495907087257338029624760795646608841853866159341359354939005781841038006944012346241306447686596968555113351694505759434742436642128430982583853763449622320050559216337964510304808268017674784513747571622766040850181348742245296265655578231410136052518786063095456042839095726299020966049550782067707081494523827490276509082463314291418440750064661185065798420381604325260042756152254915359100648129525224579002434241215119807384865397721390348936265966559491328276037895542421245436643505277037707104088698468663348272317493707317381833480190507805993504887280675390154090796319510409615949392054033416174746278245003226236132246368660906819063438935954709205452190460819129842373302713174599838872274735493741919833442146193122675533615109415245568564688024297352953864620942031376164864118136970731615942136114522518836611391529531332568689652643016688832290096995740836605477810874842323674915466500649163218603004132789072879068009735355684611692544171459828004854493868992930423310933027243462277972691918209003979301199893114810069393140619796087695971230237769240445381614101574153354528380070651132435623217936893749971842617868875356487648595898521197807225637259566736809759373594467456298182208720477077286223178079187344915912470932741533243393516368608390789265595920300687763094669467873369687791222189399511485708434797960488855167442483984075744129518987733531079505513634301813538927928727546849619096033977120278544577827470757995207769788086224391352904208828015135321598763040724722581372526860226772854253380250537322626372077290777152579396335660108056286873005302737337910445060632051921749134428136581211318833964858779401857796319053986595489219509001366930386619811132619702107644832068912123899447584090288744482621087426817759082321779546064053833315560078395201095217504163939634508668063486802803490336196826250280831808952716810193030996613577966835021937459997867986016972294581400654362983644340145815631001088804811861028909329327465547961685884978532342626312539618275856832118391597423193968942690692633872009276124234171130542997039266666338766737768582750447640737046668453640772539615583977603421976510969692504654658564692053895838158043978049030685079585751506918544808346187784558479750895365357995122501458257070098312777096021888638519232215252519324326943994466362448156848563295699088785665109514850885539980887744141621625893154863745176519678306068637276582356706838709998945237167281781794157035209124328714598431610832015848379830046139904680156485373298369186444108250480575002079327492068709740632054069700749230492254151328627378638882498374055633902850090202564085832807240445856846195681197453645835990736211282484982245335708625970748401587258316516856191239995857151366667547723206039210067001650363053762656102708500812663632328633299223504027662127429222891433640652718853379057891630924913776968012004346459552477610842477130015606881624889123296436719516276543894109727108616998109843835901325108326220767289755136425293627272041457669100721857043378643845366266131658505072455111461878311620521221078598631395441555035139540810876393688989005233727443497956065191489478619674599053998373304997287767846707559575802364362462921342032522094902263559133720570166852524034022335225484421110105288062136741459504144934122826579120576993975647857938721397283464239470321084978144772773447942820984798329979844130550374460042637002970263765261433274666294530721753670169875919658857707519654355325992754732358544113842817568280378553470756966099474586683995427637956841914953188103470041824460373323048348001019143502004026491254582270018392098641989129372270622297450744222653651529951759612836035056117576233828469850818739863466389545470144430708250347314575312562746116062348475095773295593249761560977071317952326436163537682955622887156387141205695942317098846586135504457574279250352017764496021661862396885635366004155163460315375275276738701313870234280739285765806934026719848164910571161000418288371557528567422027155730300151262159217377302885037986695613344070228154296420870238693023022537437394726044204200006366801749690339667127910725502041039842813187870208579262537954399456533604633266663243179686344533824296829175967938753356408960977218948236230245768208773076092364189342041334996001138189151930930893340932072827007386205395419838843290841250205288143096920287079403710903192894884155373337465864533652247495053071209312149701314117676959202727806342823302461868010355796218777576600197202969825603249172275440320446627183838870376920155323530672633806437933151036897736732633171884028551765457226067801747972355918253348065223935122537417747209732828873094779970554660969283421590003978508850883542318932021315412113319143591343925897224550765416466555004038145561311556827908619692702601759091675943590511553267671862177449450770662078158511004753114564900450445163481818476267794821831942464975056028871086741348419422276612100526583930261511640799177275093066379075378911538623624250688665768789033757435728404360287827431832514929200778947628948577632860338167287551646557547504455256843616333732002824530451672964013984327882074478310230684515855101767249375627615961966462492657720219775620590702876744568515360593378152675312139511343452999995566262757651661913491213088791713913919523160064162763947117484346223443738761044996324537990906201785924562612154560539602238877941436711922956570277531944800684508705452749782120632803649240246431293055118759613974382474585816233386596708101414560999049803058677963035658946093016594630019232897408104820114189195577750147023885849028309123046772196475687081629255725971082277739758960591742980188178319045644363170778266817440811079651634938545284812050816769878069140828413421690554097992613593066137937400643812054057743210490508448973636100036638036409133438354871769913381245750867758303135691709913410063102629302066437632122081138073383322702600962802817167792653806561050109840847412741798109493401126888302946109381438269077146016874115769400029841838045241213051408166184290199829406536173816424602772501347959012640635251291712787404862597121314536532550930619625461227241859465421152602634770580576025604064900941057119141104676884702019082161451010694660151168303410294189252458784431720759444598641285776093361756933590614632056097603213973745492124213472936940015026205206223927429424607230216609448198790013487892345844090231182608905751386462807297368755380137989995365245221841854061308143546523891504728533718058698902125542151238792189120563893784045163132926055379499585802506370940730647157180722268255553847878753248062215483965531257358089814930862613191127240867509737703050896233502494312550348025742128727812438123771056118582997603735152282144512442276660800794570109140436856043484277854422285364293236263835226099440619713325333803551024165169995724318650134659983221688840527395578669555870078232355473160235599599656656039724652821360699986623956775996074582673541191364700623280828716935893833721548175202065294770035211598880133976877401706752218558597995217883217522920736498976819170613531670494239492122088901164466045198120669921855744571328642869903191215882804457411759033477948244095842663183575983961491065254450749956196511897442027576338069628612272403099342848722210791694766521663778286303419456075098622099329595534820287304633458891977882327275155546437526411318072156099313317262660670737790206793926778793324390268391960367581524384207866102376554006323065519174008199540496393564549861796406400585882449325449542042327571457781030684444201143534816267228903682703825661033849569741181181583640239682741316131295041927500304457388602175216743431304046282198743574835880064633645931301686824339078480407730307318530238302712967344999585821108448969835397931344198230352104521595884473386739842187408418596934221625564099365440224630494418789548959616177930362945181954740669397890122860902150305699009097768356692024774788627599388068794516641430488248488693141968736991971176952409958292689028503042966546394543290851241894671730641457117995705691054021249200420374441762568398563602875087635351242684648374897304147859659712955991973757330790433572440608589234829997493455879816760359163659991689314596969145921024854614958030624530105442991008599752206405064238763000570486671146425050345563058268203526079842200024621408508387473885388679780707716100850573194417090030223888211124692450692552714827449471730143220104827813390963619895087342225081589334510314817655205394537510638194731695677828810218940560789996600148524854853315574676238981198929978546933056934926980636677279832570098794895035189047120970537614968581396823375053543677831173161595589844679813278986839148563962355439744151558200664311975787254638784910658100864634142462736287090965579455892660164961333941702654075060960641261858453503444353705145931881251230065422840460371419819714031120758922219242912180272412537642420296388692991834741783248736060097294856808531358416077462594537826878542457134018773246592054909310174373911899073331995130265486752743094642150885818065636194445839029195668516202322001820439124818691891669455864832646017391972031295178799477109170035119205212693000643799246836086077770196376675161019951010592100855585911795910285466222282037408096172073200203905673901352814149571383754347590999895373298880578747670440092183115405166394466520570269032439354910075209946780090604030456597162601713910031761654801030869066929770387442483247248788016270042653377584440844046929943148911079483284152848912139898325906756806128353851069366803267373417078785094387225919780555172530878494609243431753148863059331892357375962452903230258888430231426519091044691982702328105915784039331980830923438435057489684114287141084315976285031892170482351546911788087483034438423544274737584033362062720086893385805504387101890771170326654888707548660426170142855450176952414943060334066363713634590880580694123923031141980221295429082250200292446235242561613599045351339331831506423016175371253781892017794407638843138251809060065011214415603972878450629990579644578762369576876403939147721382124326910844667415306923166811117285324688874059744897383532750040088715307418353627433306400717775205852138504209851053976228654665605349460143417558185608136907778984736016256583144627395860078180477492098137553703823556299792111626307622414701929907345603402714391006024555382296672409735250957826260926569906435523301172542596303977097203209251938425065651169109486257979618586571208166674944046225769867632479382252737950917534905977924997597730371023326019835218363790202399677637002045669190080137388424433541954005115401041091029874175406212046762000221897705890386628068334082150085806746147248326306171031970203573623037579725975371824621441133985836953978196357145111534321047539749728068957146914914165493918894256518909013107992801649630697391870822333583834216530973710558283826896367021436047259708795950590543701112982000441093346178615463442394609185990422275475737542979193583019798403520007420535524149769128573326262406078955436231247759539332881099894690731818349959452691575311335098487071077378997334246879705005731325884523618391744610287540357824212273417101740481113998762241836780678750787791589863790862329822111300660830860340902736802635775922771009112681354402479584635947559154834067448795318327651883505328448722271373683680944327622130988342793997364404933620576036177475087436427759044079860823166212780499159792800741678836032886480910433190710093050188584143006242095048090846095320675262314924206284362101175631921141810211286911882458963254144969490085588809227863763324892007847688644025869843241761757741834946322507084757201149354602275744222762706827454124866696088204593946724848340812821321844495861988815015987444435503737028464767853416841815911689991568136316127169564200111108812381204048687142258351667078044772581422588202330071381925412648464248700529977741687134014532986733104381429381888969030530507170876757023252676214224317604740171123526419521420631798412590970965399116852840421563475535300245261272798194846705824741943758632334866245269577150081030858761937093513242346670115627951347124386004488413184779053579509614252627844428049146389484981272113866203221618058129207654479665406423811673549951835852751860904568657628978820602142386680779876679622053974228627816704162349151467677828890892198843846731143325765724662874161641655364771637959968798580831083374078945860733644693041224071959404532464700043264564204107789579929139053068702543357361206524119558689378048444282954406796401939564913371156849251717681498806126638862992161184714545701151896674978792141771504645486629319388721946332791355631407838594453145453132042852118278213829573619496384673566447330531480995497763238124572770422444212464771388579705665818599764457997927696135244875501580939248224999930917992311317014745331472370341694110887927762793713290011043005171240541870030320489558840839640672394090183277482268837235927271901425438294720663117608370694255511892114859228435187002641671367362523210160798428380262784131086138138632668973830904380020008855690038473736677652220929452984734884850943662511430078583824142736845510974181760569760375093135597257094603733139620758085669210938189476274959482269569489660878145682990541855637806771709945049545519210541275201287417024038190594867743467793787273155431828583312687222623724337168691265181143425987055624970959807494024066178111017412161839518180913338261001956472091048688696469011427411515552709841401545102571742309319824395498230425825647779635932701842165049065988693110864965110665287357221626471364772940074623380355802267162355406553412249909540442826581434804033403769856569121827961634314607221819911101412702272496188802445865682281342469085597148972977593256813714989430782032805511285212188326197119854591286350084147275377685682129347275668453132014595726275516260495882925057601908756367038572249708369249686983149695873427499563886015214299800341024216426570669744599446450665484583543864974700617598854561941904502805949500943330839585111858976195869883454557040693906059569656879982918278681134463047053200928583952102742140852907137652168711648246055016462009038302700549280584601644349165182969854824838225727495148037754237879325953412298613033656664353946933111915523809567079987762411313626179490244809026823832880700232979130087772931643810751209998538476468977671496535921896613347630850978080366121360881668549723833993035564318739064641769931983287911433114423529486298400756651914930840593267807975222807761178364173967619675257785730147229502061411143147578732962700568479772722499580349155521920443924738238989922851277619408963236545309714697063637823218136632521873599927881418940309490457866630494483803225584099503138028597088625253887295740318031975226889263146471860247074001012419570043970904333482900014622757149156976557766420365554942567612229615145999474660452324495180279868804429699392433130630429741402037046544527555156380550683537430005930661201929184246082333902312584111508628979837595595128794859462640524856680876195336932009730183114702319409591348129530276645192744895856368688704989079978101246983567210158999466894546697585714222077623678967978062100328126272073959026953208458929666936256741178777012797175747924039939400629805821942434627363112982828671506602078658679480447895636690468749968045590446090674168344813566526740234052016360014199694668936090929169176347668128527802837129837512092802205383976918211463158973911150268535145963459921858068352031184911910354049880835385670461628445571051790675680124884518953607682454883565366000676015515587318976733908634541362758782824812391361872019167525164901749814612285439749996863495716938833571904135511729767529131456414611568750664091278484065659273902824614247154065587596555635049262824450339875872384305909486476935315389078382872118446347477481319967866592836651446122606372722356448132754873162066693643563145786417875280468321957664017187890906398499322573170050849551516328188301571809302255719753379214245668635774058822546600947827655943395112377347336844043676238261519761678340235655529178453328421946917766645464495627212535539193144594860001815174323566505887085347899375139754968033953476157353136377755971316456219211195039814682777832811664382934852155551359172720385915959126877598336820993876569354797152210983990427581265028070343960693387934280669694443493696413988617094722836978447566029476691507352242721054979130694506277319898807814336523629090436262868005838098191564970635081353336185653219030601939871844375486314271114687328576474454555886930188529917616570408158486457056042734929850765441042137127649852935906714208454247835271621769577374312634473392870925218899333601249630287790582479122277638767091563848235174381285669216524884725982284577868739280356340246402458115668640094127830514816289351665009011211325777318746653799803048922540845453202372902362814643765801351392995482725291797531975734922678568430347016073017616208726112919169364442960651144922527333456555973304871720281406812298885380308610645953354633115408555214279728899812632966196790463530430407830728141394631136150589591845646820723929802509770357211128188585259831025405564809365490361273170003424119142914126318218613166812621637447075949152642611434533648724259686049412925014816177511304921003404135240940116210356220262882666512220277919738830273977427154055294380735577495396197368859646967272192424531871468934094224056238920278407243024696361253914915556830248796263156880575146675984600992691034490516410249907134752532126904319325787035943308822643978461910311672363273298816072676694875767182930444642839339338493186843267590018256478357835285745791784996978869242414225358052686141457977110046323272713395298837677055726706000322424921153560838185022065330940821038805586582323024296256065602833613663774513068301097335598973420917102398571380421056176861237913562375473952258408646120686548098193087019791831998139703715637437524739418577042773432753068367346241207996573463137946238535055792077385033203772676011122046949503050708974253924071074512933873441197021687703533335575051614061070034318604904813637478998125484216540145279149696590722918060269850523839840300102323923189885842150761145343142289738069856061396338052852624352961851776647608193152008184309831828622132944985600252795247577198880366347136634257219618115317526678761492678361331742015016969184949092544812032534608955650776337846217480585399213110151053490469291212450121881142048814730338618097682798264214511360127501865543268012445951718972822184607546902536678730846596215272318080909360529791815225114594344141275547088598754519981578718437548499175259535917208988578264429566291944422570272563791402217728195220483537465711936662194524422784685049190722921728501011113195101033602242540096520536711882826447937640434288773279496570904435587730232893303272792624905123845844690054934436073306352694241388211826671007485818682050084790827567505386998252989331913206843234225998988143473408162218889488420179476691541083078974204580575499395405813685289044397839229313412072968729674323904391369077392739654530266448676778300370673544048659764278088834545463117907114053520508908188323963468671081500674150274942775696259779393060499673472869254886413408710004178877757520929900326565532039115066817274596615523854998998260478499816524773117945426986853428338210718747328995553022957819080671371277754071471172474247058981205659159459999617611920755863526071273059028577440954122354312773607847211753870932665173646615464003576415644237053195637759082461121122351448284538244015447309816966423303949426535627272752380409823676538784858577810385668738913929960984241604093204528724580228509588995362719230522027870767441100959558047428604576833624917159505147406554475058082015908121296500120611215980424505249626186744604416635668463806057575034378605203265783497589565495712813968786997141490657693266658259917129492868725666206141866918243058738089209641804447802435126340080283376066034884183366083281601508234540407550782009338176598496451791903301664345033655913339778920156658734425668062185080895209082918898878223083844968328463988312125278212965373801996065733815234720707701923768474911299403718718981786912331414458414373293311702715906624084761581742047840924426841019383730619003023188716831906081628232879584342179333474516786632920001963750581329731161624463138952370529842200844325903841095607534718959513882226187062707887707772062714085473326494200303968985052107275658563851796390494667528270090347053250245816460620473945479997524321254414351126436278616027504906782951565554111541879570499900018774562862194841430323842088267677945357489235600397964446231543645119752438963793844039413243442327895803874446137863906978814731533092973277590616181240930185391269985979250363681295284178822179074829578702807623090628908694712052729948237455543242813075714546332086365654056750031225386771435137168455180348123446573697529148014234756549081468046785304802209935855472551078126634853436373448120326386524939867937950568652792810112626431775036648474576588561019274520090275091550718041807716542257821262493577397750092110093702899761265583060560631435145512019653566649474435017404726676005257830866027645613033367638065459167888999754432030523873129050541394606768029651336361727817547112106763095120749612591520899133851303159516574860475364556126499194403868198078997849820444908188712971263843756303716700412544018852671086425920765985995866155333327553948366654694918953496730459934329859031463251992471372662566264289695481292100658059735269924867843257854990623549137956051181858585196239892872065363640130560073822511492096578793626746744766447395848886040146975911961063536583449279377800428660140839635943505075035723449377075816526096294875014923277808566200304439439727701799246970392992119135550107688239051865008056140627017545119879900166651340902363231913045917802847634603990010008274274594841677130982455003452286457301322166731019416553295194136515387518096323401751107762871349627839087546310739348434802793136376133593956136576130973607607990219756297823745592105030604948004779728962092168899673936470224691981354711178823427353725684810117414880733353272124648888599105900689788214758237523319785231697781725408506929329003382189877695458072961795494917356165101524375680578265268341765747681971222532699104440626409761931421952643198575925515898916641421801415746214745258961684819381135801931014935834943860304518789211654776842045089844176609675131889448289950561959449544377765177885161998055435133043316784849935762183144896985089458101466514529178538252716992764792411553458869623713456878729394996973695303776132862580492177864667012266075042007327681252032322710621479737311672133741120066957259407386136518736533034452279935076330324252299947733654185580447186445957321574841171612478087248436055119555704450513961988624362616930497999505607206030445916972492841275244031648891862572107880455651581863071167969754124401474917232540492673553366228197386803609607262125779176973008107989128559561329610227475885975126325609893398691077733871907077820988962032333788974577056625597981938516150229828593225313826474410110675002172583939740761062283549334641038773993377663176138925602582285772245938616047055579021964211567979942368520797227016293284482915927161870046924350351348525678330209451442450457197673710645844084709578834361836811287932379525039545932890045770484100279843533986535137780034445111184442989008899193502575402060327643262651659602347233767498840209230564129680800305635028335282487622721904039365068064661581142111570231355829335323602398010595798022946339073143558016338605623910858610955536248866275107606556128785749892396742867127805586780485232302686649170134392744098146806938746481430330475049448755248219257683695345761588190478385655546937907803070733302636517394758169332442260101051624438216944012819862432554996041305267079247597295097722258979724985332679710520160623753970826544555612473523528529540664264496537197819592043377949525875904161927931402342527329915447753663136651212458269200313143527934892159180716081179452824733636440012578832036810740523933751428002687775623812237156850442979448448968706530561336741549410931622520682359117104300833899803508354440160626847308331053940143787476146381906244695063161238745888588879605723628208840586684613356578840569056413388211906412760871818658615531066437564123610255446652643392981470894340058663059343955760077303404285974508573875552798868680700946420722446944612872271431765481916625252426266032965109462392548331686481669780742945202652547069234573338947565609486637173887989816224910108524204474406511947151202758408187757613691852885178046484068753902424116130799867631631485362775894560188284257237247443569621801093832982467394062449300464390058104651625223720740041997620546879862116173426559098478616632678789916750829920645669431912410608843711934403260875830733541657641297266839270972248464862828751351004732555524127692878997781646346011048550319410488702429314044138077637605578371295898191642847679839246104166295427604220491629109469882960500783916904182665592048331172414063016722954103265944828495283019332376947744134304099950756013403752343757370600876124325054780227285650122479618349173086789109637390055070646737367037958637520265153797036659818951003706772260632141614878724402820356663372277365979981086681759236946431520116957725631567181546087272110332039395551360055774121799925348951507594952604743755299749989146182572694249251807342971306235427890163882806293576299127178551919837056432847551304945124000950722565826916517501206337694725806535457276832432038960062961679517064369454482117287926557062906311512426105676308725767088023079459069759741152757388517583656930391566147139733628594234718718518058965418281469884143738605762331820127013868069093523298192294550104925472931432335309251185444258440811254066041047057968818071031255737969760719873245392583856618242492717401689743127848820358061763402260550644546581122057399536823950207084298661311040058328560135107827266730284675816255621505525436398284172941611001997791312545054950873619052687005871843562151791037533637703310024914681680690690604926829736643217180017948017547658429163858415892791131306070761201038848430581452966620223570338066243486629571564931464078977411753044001166579576815786516753152817896552015746839110813596168213009802118503034930340826026929466513614009522920002751863517057200822875934406273073767058740529517751812734777553053032902127837397693516060879768068253193052225915640794357857471743436429517691407789061939511417931841561409924402938751687289580944485518947842775392959924364001030310910815024155034506574028394045309117090272975949990774807367429453347400827527800173344906893000812792442469323054409993473850045379817283653321379371672100224402354694049727982211945268806576453760860361570047200462985035049537563802782236784234243442894598945722205290445631923498996447662148347545036009012322411794719464428501145867400445760110693609404608992302134372493048606288386378012882830275791693779928968861335326747621781009339677052161277709118679015036149454973519064358471465233958449059044772511931255079755535959472048919203881400722769646484178396596397105470154921883942167443251728353660246956898577521697081753083939723646869920498213050277811651680870928289524923911549160979710728805375503575759183903166529598518421763809885710483730464759702170425287177048343089129936119402663651904291545810333209382527751569033633266797720944909632237059534443246697099539350237303715960406984072681019741734931678154618696704388121143648281218017512246509909372756827005992048418765468955580582389371381474250126580955345684807096190885492859098469112208215142972270297192185925503889309152384561950420806093323700807900059975827937915959218404847975541167380111438519956910538511100480993939457433932257992001296191296826600558281718274363661334234732676063229034064366888702988742187943429035919298360508649587005613228124103308181177702767200368117371290684806892844058675527449028009176710231963336095728613681757100590221128066068692499246083136236149662917869536991071927652323863007858681540315767502424095756958328318606545009519579616645105268627306067658477908263788868738823486099407619513617557734532660304509471002088281044146645004998869351521905503636238756103016953660709254303623245640353029737308331329626557301759614914672873428048105675156816484865325793932487471861313136209373305462369788742070760785040759502815344058732482890002434645391312414019193771484676485917250654821013963495226986872411192773959934053584590517572783559566710926547759087766359583656349453521513370239242630152604898694833398872174290683433443881229965209657687402019735311731129407558602183372809572795079277786215453750772363459230305695635044302794189790240899851510970340588527512591335411038719232060024683896050086672699720223510030231274997668690696464207593079857839176550551781335363600895370322428257828781957041064323095885461825060460124000793079129577647861415016018025846589792516305790988084377266983028799698099347077894316576067457970405414269333523329724967716505809927387121837500740311290725131604014185974426092731782344353415590944256349922693901625124585634667262813445341496281266274746407249362536480364616575352907320234600033937395976642112212002439673124732931366847979382277898429564634590549739179952983681470838964565433230511433476271936692200727217785867975185064984995372290102373056152738340224182872504541101331540278539013439759759611428725182003768213267659200053025722333777585650462116432846786478397856301230170468276594791821508778734478136495594700651734172376635639572394965104053219103779939974649133753073948049407559604899853156332266093429115505592747305311667097892091661007246773574012806912047928031262147296832033399150262028386533236400593182888422105988710646734179622714337739072623141941859363220868853739682620660375486640979786581860790090698778081679651022824033525618765440625479029558216927934191109092152909999372625355600106375642477069074014316885107567627116300869330219159176297722298893663454077456305415328450381258899373812348982134443919841250241056443644510381751319153775851592047351422352502002631007694166783544097061415180166860688206582437784962710383929626036876776148992820053217598377241569810747278791305600798162575686495067441346202155240321838135860625248099820708073010342871357303807079395223022369761633178716262933329094814927577240612839675222968890659618406521947836118858403810358373858681508028014366331630244810858314299530158284742081175011698464799274067912194223830056794320875048280892759366584381448258991884760463765259808628708208060339434724967832318904318334545831390536349262370487559176072455333454325087634832909834623259132981926507073205879655799813665466189442337337634801810477889860075772672237942275012345737598093870881988634405498986146017842413190840893031838540197579639199410398019265627458502120309701141049677330471631235125787394427607312018130289757113525689312780276263940070997651685819196868694913607346508940153523799466668002685916456971267330337409160069841121940612488446496599735899900454947789276499330513457880915318258323955174302319656630819828224818485735242152855515576694523984268447918251123243797357309036904926421469542371973424629928491709221279733458487358847088287118876699329529534432230130361246234175073107048434478408927362989164869967195813976114176751528172764899383954851465601431586062320060025478967453731887414005426594049221187772525522871023779575430587741920229302041019704232768914750555239245999751832512606201470560331641506775576109058030474339887814439648551399467357554146544392247001234746837316395100773922605410486021563340925304961260181352134198857860162004105534494991957919738733448613207479803565903360407986491770484902725165589429605505702834545293325698322531776465526068234407224562781324995662668225768964459002212522785739618408661593491348777767286619924164497899451900930434482149189690123861341675794406466420506065709065310581448731902042324144995997346010477265287080467204417386586600815262030730088037246198391840889596515863366494265485394032510147263839074721883747865567746505025051631996079800392291880986276717326377360653528642221563967134487106738521862132781968475930072335885642694944124278858120048359310315718944683062673304517477214832662281737472577694098315456634908940918401030228123431559569927136558236389893835088735114847473165013704657789607465266874544221143885417222427051212906741654683384740044149833886273959624295645479769716565462188834496262983056350551570668809897184427505776141707035429834972566164873765395521769244770729200345792780654742843367489522388346884605181152231234804519061522170075304574608892910201289981853676282559477257305147572409005289977476408688751022036835346258260139702511548070040128061255461177178813367425036261076431482063640215463377292310574892180260699975823452991148029381568125046061516841634281264253641528209535405066484264318769782353635954926361301493866234805974082127300336475108384228285794027569448557363613302930642801610211945239056303973124539345271441336981141625243065056248764201953189354043643725118658129136093236080950179837799079885405567944846060013850812040757784503383480467603048191375360903867436852818807671638670056091666891966683792815456210129939871891016073133126064037869087546412571503003100079391506964717728483026652204389991616345045002506642436468785203432547200990061311885363856057608571357115068591254883202056010566709025434249141405168705341183853667636673019046843471634502131983848332369978938162394364225375244432534632655314273292916460277578613484539923291771641225859387175783686559559262793575259641872166633177081963565622741679436056293893399112791876311759579376626573277129123084381709727801387378526506410377744986147583120582181764264591341728591884032345449183712938305316274610686828505217104630013880974153107719382058023959281290640063646883514032453893888255705496553716637396142661597794586160563746491212846121256742889319482377956832711637911026158359918528420462577550093766139919889441102226623726610123961870977828119360952588523664808182591844406314007208781675741610048197868260108178278480768445513019514380974801967938858725008013472190607779453212129380919639144976709241867905678660779638278141953478670569729644887117053096810219330219890476096923257967055617256008420554506529740521508993666499248670554033632045566488529013474392018877176982854374041297426936934570879341888068258029157470271206820178950564199553229515167704009999774639998986774203735686221079497318936352960547456722188608096739190091300248737234428989710527186814641883045258895485064171719964886119813003445453359105885019405219572002269650026508319759370544651728830912545094521532336210794347597650041781170506540944919704102871354537935055607968789092658937420999446691371588901193872090298689197884639735231523248957264086322849374609285781176409337842916865482456707355603201685815532133105432549408736394116634397915786271428789023928489426680945452910484619752762388117588110485857090880132452424883890060479964093556045554505882056684838366184596984192646120950351710352533984672435127744169231891735575144261832853911170767813480854768782214917100094960959172397378568471209594299973270458438028422680890237747678921596414546459271468146677961031553579773579271016794863169448479291646596819643807591845099867975905083106829958141824325594233817413565321246670203455241849002037095735398299351594269681541632055603608857550528435920780950577262450081927247926923084689961473354582658602822894850740719226945208171562723524370337583024395373635337177968949219513368021930983360831451123823363624610723980276726327721432047453656645995091673013777804230959701386776856497353903768032934506153764603172997896699671259316257542635912355383638102573571851302425774646200857695138219532457023400114368566506916416156330897677891315323512365825337559439220352009488825887604799830228321088747866065074789316021220212876815308908870632986487962828546427910105528063102520139862565376319499244984245657223699041472849306634920576606329134639708701507046771318022742416039930195256868887154043534344022492004561289214029856140673515503375148824946281452415726424009886693752257247504550620512591440230381605712002103455699961875431639517276674584061385270048442226740095603515324047753135329765796254784904938248274032529113647391270059637303885970545017924508745834344984061648970027628510684041331489147930396970393378443055597490313083513622984334386682598672625728240405516639457623406915473370343144948035751894452815752507786194450088517351290480891258261385334954672797301999070095632832696827035594779449463052077985479366674327471582118206406424537619237896369172087188909289750426135126376978036281966890103068495195535484811704528377374404801415580054669016098641807675156295182357804709813297471796028560274198348539475795796719936404373448896507618024662906906120456324437977478455650609530296596993206199103634146270768268198198579766192248350205192780934133382370050714409990443863957280332676349254039229684712254900793289987863470776727658532699138776211666802344989860182260206535358579168090229809088144797465859674766447305169634557957562754049542110368094189728813636967440992270038050326112195269415780566606299048593786348591615980526764407292001958551057070597815381066106865178885588137996065766925926982697709621740502953510768429200370736437745254763439856157115791814240273386727129014749670363048546583227155387889042883190331625025266956485335464106127783635754301442919387801284273466282457474278539661134505177338740197512079591712856506229863550758903023455060293107191721338291167325272083198334764042332512564157140141905892886565873786474324314239424789950356652476004238625666988481412978383635997841197904060517768686132228796342725595435186311769178185535363803759550273932317951555938415290765674958915006903615001786111573132976950455878916442632222558505969145453294307248678720099074973585430021732947181691488812299723966027974962470943781432264311747543279016554109995334363840704244471577604173431934355599395702166631350866008076283578958162052558186358901351255190928057526923719327635850659651676758275849019251753507323042549607830600623439381593288552665972909634725711274415957771056207053836029423813173289141244555913777594894919938189110096021120364166587762905777398292408418664446247282174373577550964081993717939256231936004218524636756480744505188670935385173939926128235892441617732887445511610709733191531882153947112593388754262836474422765797339238350423611273230777059164112153079033390409631476009601496237939017059515480813920376876119935024229399382759119643199294991640332897527142233074115454751049419158891595849794494386670471819569978487173219674712420806110026401044828949657930064970006734235955982705895944031250749095472228376578628680460027213285755002948107135860811584888995549967229088932479842935272517941868376425191090801683119101176372026977151405276681960601017604045243012667668193836721077528766188918559490316107441360695361031114501623201835322839224074250509496205589383629098374146001538520954528346497332890969041123061685299824997637528068528552399331001803945017439623714199013966639566228877671955809415725754492119712326334854625735458597240097666017153610764644758233064902653212252903337774671365645094454817007039469329659549048894917314126188489655524558028778877565969644903902349517174875135025838954969232249589613865054334896246562962316919336379915696791375305196040353598622377424446646844942030339988813776692169882751378570080623750673133568442318620886657275052653684661139441208455976046738452571860102526505343226296348267582741099241289698855312910024345043798029463150724368139996425529147178197258115092451246577794925092399341766209002060691194087066277239712067042088399004976168436504301223766347108818360961940073150418368996034026660423560314872835238382173085955532242302163739552772364882222638469279158220905724179613347105130640546840946133209348237946246355407153866767068814666189382726732185548396369788420106214121130761358082166290258030412329368985602718468709436767277988050528329555929847998416812901686646808497003873446570302786710181494578104055055030645586686854989669940752320165149362853223099358703422534783512323492079221787759041505143745829341357286123186658316647337751525311964279444068504337225659603135275262833506907800064756187781068994445999197610541220365413234583785295506626937960301476304384272027064337236290894104873140293383018929158453249430800002051670863835327402741462428487404034050522873156648311191904367504424522484443842690699927527551841451796353559998817259942442873826409759239466728956021181982120974951882491192495688129976082172389760263808400072150081389987677993844091467970290143910056151475938838950917589118301955227571815410889795992531506089794173837040249215213884433407393852611670737383869376268650733261235777641588409949548659485591984773915280420321197315263672223776384523543833810725045963601746673360239497798037805625599113039427786953927729734546262630961149600194948198005659986362525679474025217107262932354487953412145132721604708078178557705709974169713205054926562466775366051025308807046991925905484360850861545983883702732320006087390591344588832551375113645947559559233480559263902977807805229937864666099495074479364663042868252882248148604777225465292562322711159566066965712038262699830995916146328164476443783668009254496249646670316156804497677187810223902589298912283487560142393545866562492536799074013628160364009488321580987110525608937817931036776408888042399448979658448668102662991166881614328235528925222219094648345859493814936527566101173583306394502348592980961847331266599306278101035664282675145863423194216518435166848050759736317205088727693601625595526362386256365262316532548810098586309599265383492085863762393979725109619998318732151227933898337722355571552240789534967454775459367139169830524197475708146892495409462944345156747654969700832001290003879216378501052574942695297999377386757342068952632852247107375385767730561842576479401888979018172549332986616269716476834903554221021602576517818428362304165067961924071159937393849227689490753809480054852539322954388466806935539202705099970266543223173236587089257999679234067240835206505870564059498727530966224886764665575365294848528788365094999134620424232275040729095445919742123514413172510662730299847998930884325618767465518376589976085002220072477615644115571527185540010902512917706901802369407361326063001082934570299127869009629191371646868614868336789454651072517304649674143572325837384890870961949855854239287109248881406810807460564745717500331307825680407182204569103956644115406412288936130424074790445803518363003113664114644938891498420930931655879121326343872806559691740605363199362812706654879445943125516411911538732639603698465835542767886831083142659015673026179812142620959123395349578531775099633788772754812969529884208167537543105439352127427113099847476947475700696000953675601225828680994621971391747899829008379634628052018672552476240411650426005369422437877036270917422277255196966932674199232696203275962158374417801283550158383817144603500264672892489285565208430197004708510130273935174945216906171688431283550568238024412170354775102916523579844264847174655485454917978376903479155476540778829486304574261469860906835313065320347723618286082700869252111274076759352057680202127768291486205079330117452877725476755652605836427096446705057012271843767394928162716108753203907264003686162444933159541125586057416060676490675462355867021571047580609377000059098462371887277941206996931374727899357193885390492114304943862503732478019346735160243823166678771223477989654275581996184582572969397616711071789892060949420897217604510994825943122923847041900818302993516143406799545693786760373825035242614180438954404071337433158262810851838470419825626774217215725358080725122877415131509333813466031269975035698006155131816431610682158383005961560238646637654398103563736418801199670183414023243034591008952615603651007822153932355381590595590346964954719553005039978617072591684074095828923456139673877154749958331298486601886725622782913179612296453313598818136462270616718263144447419313435605027253408135949681793354246773721479594890809159991760438962508457315756915146619889036966858146313500689607560177991809330120697804843040527612639715850993451218490713376575039508684148531984365156838759286033578983248992477930289717131053949105279075778180165979820354503791750196169386061382957212985310917370950350335554897722748888457557282598393992148470340337959333482221367654917427191918863034507144700486642637955189969113216008950802402050713536912900068391977232494362827514618522173258529908913583991172964798964054386222495191665251023263385781674299668506965430255175475782893008843577573940271577302176837872105446328695966357667076265060583676832853729621084365576491830006431369146000810399008665690791726885593749651529480376730697361665360392588341152685839188718024864377029010803294001565506601974017099407997487069032756157054952483747053134413136961518384534369288620669310593469620361036639280184305794522736950361280302055037118396925783782436818081111093350723920615503722800577597300878118108552243468453743511200065512840631871774686741583623517610961958214692586963701498582543244739252470383091611980858952224218401818411056450783538056055574923347683899958636131636587690815472946485636389992985471091437798676556569538222875765717105046247076772973300491689593239762726408909365236592875095093344389822038278590292943649786412404691377218730715551035420573846478744400466594267647316157406820766416602575805780542311367735594896455347132644319804499280227199970581927616796108979029854955513881477342704385346606543068424061693969943753303629492268250078270695860652478992008945136689794414262357758049906009643275175447487160960322614647403425608496947211049283369272784524043989326176835227909602357432820167681001294077272771184050634075264163952626911530445424778990654599259157245275047000753033118747928840642271200867800237648661008088100832346360668790595062286237077673495959472335162090060843006506097424474305043177459346088703161806747289760671704418725450749421852551726607626827851015772133315851618216669795845690121647636426930691273149136619700114842831356533351255583719196894509820618916732262257864824050293316462944389021847869343291913769140096302447434152344476242862737671280337768533218547167823786708181428373309609367172528808249079267381043274220746019226961887352520275178549367934551235281050255189786887547004738226223039989115108936374306935210750509502456111672561715024130962275082218556416853220585294571742093766668525465558490190591748937234165541747522889051353644014346832796831493623730536925525285022007199556451129370800969234444121411198760495854275977428136396276794441937130196259082134006212782765150453650754549805730193275315980018293049209966970511830131609836316388687918967728915178492452758909589597110871229318287977456245973446028952462466109260418546082788659888570440479409789624479028094493106025912844532257536643252626805505890131317238298197144464993146338083258365290056766077345172925222246676983814394340729103689014666378145655839352204679656683400929096878316099167931623503345866861735662511589155014629721565539353777583636673522862166475406790254462249597517388050471375911926219308235014801694676637498534151728404452534859221851889638973959097979160466728653138754359107377459924647511834240296675362208354915397727390523060297795624808329763283992039068312315226644313578997526912808552059052276815302736428194520765946115133960580013628879429968936229097869817322997191359669219036755966066370800777230497021952051081064904710589796795100659163610843368375003426059022025120133277904579379834684134462091854498656720188097823951184048507337648948023789896961855910524817605642261878188702121112055699321249543394049170387760424365130388139368155407420522957364955198232017979905724346018742195698001926064846604504738822500822799107559993877520251352698563784739092255065009132056821412608108396274813506505622437077714826264555099189967502350401113239640483922920764677289055139141360714448017388478674608475374326526621210891881589508953955961109526071386109796048575403654864674548180846010317630718256865294769200171767140968590313417874570720716030327412889542258646699371030493515763784474381611011299654091454586088867736046261692334415490774932458410936576585428447275648299945946740764322706963164846474209234224395407871367984605902507983592809076269884236699321013538274421808812841714561952915409669035845611873434354432114142217752599795845644593430239719483299913980606126322681812032594905515623259101662544285254016733437774529774813730489013692818842565823136429255167710555546464295256477429476540487602856318399356280840888100762840202111528413007807896524595801005533035307870740858003255124977495870970460500120730197260272401997634726199214690161631101561850680200004081772974817960468404814296122600136580143843375438890627254854174440318424001271981243185477048388645147818335143602411370703846688957508509038921112992063280230933931634785713568964626043124126934294984087759270097020659972625976848053157223919576089691889729560545121823492122354291850114243056493646080134271660622010995233615530922078057875119339927854343985498290452751087252246070829782116573270866729678127709588436625415533142714559060006954478480906971099830791620082424781234465000785739325716513305091840191531964260583523928763153768807700518730910927200273458493226910765871574266175586779538260259589180448637495855049971193303559263682683590072277871098320239808145548909297397616215768898533838120794837814785700564233692717181809819366652026546714156985813488300762040816500750033026318465224026517828742541039227740570617416488489607122969064436995489324135400746708704581236875130084287429473564009471120657903055033642139419871887696389688395434759580559286509385350073007111034320043409231762219695174322684769180784132953673737263767220476373138359408365948357045729612571568611664951820076126669731913952369655244930380542784792716265283181394735790995991666516477519269126482917407729905477515767850966198511565727789611847273921340498488098680407922423280564161039258742201438284179918908846305961897807669923524135092797474885316143368545022146279492590178475726190907533401026039796662414079948171470964959273996430990187342797560999770345566551070498987032337341283680369013515577009178210004954917149650563216388164819851493075220190579827426624141433749596637746390586569757541608325753018879307667502172711161149064586691038663398541494256637337342367899867423771414831727628247758353000017611294615771347142476437387379261328333222998931887082115181429005066320298857489706649891147455701008884540384664609519331993410723314318464133850156011892384356264858621928816100378709888064337187479078580078118159612337099530643563141858749384785580845503680652642744327811093896096231585195608295077281150867148761562492822581975170935381614014450543692724980819533275161696942496973951116745136521084885345281959168651320898754625928480466356663027376907304783960869764823565630050740086172454167454270989036139374665793589496586997761743693916805900799992246519694266547140091468748641443098417038475428471568242100021866636983978562091404705938538080714924322397607206954877218762495225078594539810281485431496229688688111348305834219375039881132636725216086435007762717346907142258831874476184545048780532391136238472616032861081982296765767391102272488829329883413311353586357877293765375823541160274486370035095269661926804493332325332968084298587037032071390980347617640057293616119807405325949265829812432165190370813338912266906001520973952048516227323601997572944695166478246234252212701072256454511186947104837613885537809789788689623943113308022733056537041148587173478112131531083181279115756868358976092455591575659410665965106282537237258321651308621336951187637689626608618056411119521222533703089358996363486842644831556197735544012290371733756754464747689772695526873350401207232400044611152835194075927135811044757230922477808436828803054729289215238197962976055067375248627341901359840522166617152231677837597560069303577368356158677932077525160270677234331164147748387798707309904771747143232460357112903500922263689409275334651066711197074586784929774986029754940621754129971486662265904733012619899284420740186736190837572536029330168645688251406710532704057644329464144782161074948078907612802715436661704650123122561667357771652584752603661512619958633025677912602767146196555662736814676231723474469943598515403212512239128645419914433367410310886174179301689369370650976958596988824141788453658871377503196106619258247297511389019555176593422321577151746983017025891089503138553198309964002693239509738808787249951391817799512040333250817656327722428045465590583917577201173918100019680124935094812419381085255730958102817490434436365572232466100421251979015662427763060734963360595869394996552980846591551086718752822913634706321422587972861744460735176276938261163268240546509591684136655977595352686119471666222251153402730635465456268780108623051959290643574836085601824959206201859038886091399969458729123105888603051510191298266453878721586455672943631980579649208794467269545150924173456301242774095937940408032837500376856181564572241096616076795817742340364720467814986377476861065761918661926625214632201010908624120374941297280479068304554790480037550395729380042919525236387595290602813541250343640413604142136429696450027611476794100918754932959920371886248238255425841413019739659778250418466647408914000322970635002381111414699345247858215480161041814815227022724590155940544240769907782702774331381938145491305062294995601731757184308548418122008859518376237186053361660692126771959591953583296136747228458675138016834340815204217331991531417191639293011059245470868684849765589140006855840383694298082572245798638567333149964216320579933351299102110073330913997342616348855898393557991827050943104048996598890656224824873133817522949914278138389169969653438477127451019116700602837264139735688666522145371930906968199858509148074090146260966765814605924784350469291163521415188934746850188309228622198915806061042562252807639340701717203559963472053636051763911141290256121084684911073570499365684843315574934386989739507911906074124953482785592326506429229026335226348901508686978239235729799314526370403543811532489796831710233158304972579164644000957064129569478112085407914659631794028448650594274383785706619041342397108359671090393156319675799841433344912386119669874538401394334171327519079739642153594856504480964432941190256045616893343580804792675292047934906700918046097052122721724968096893303139093530881426370800484443869295514297685757229786349180166367015649705254061703940787855174698924148223202039556651555997506270769197529526477611855053494387827874914435672842955011925334832095975440373804621958711549082099069279792010115822943628837645749460890461542961696316107879516277235264010454227457740706324667668601843814319110638981298883397105128916983656214687611388138050879328283246724086861321551939022922425324621934922717544909341804492481006679410508179430821510262211548111125047976379854425906407620696175007949601561776163248432374137524948742463583555715726284983905924993556705536406235797375048736002084760404766292533326495186954514073518410003028224988139985834088699519981222679957430090955428924122653312190881237997040554340520603752712777331664666029088085409000880063239211020530505664072165577053231613429392501464069015572251470653142344597390224480918157358068793697783194866087488043551306611287062284729799878914745022176106970765257939847221912654118134973467746511331998796432927148873249905083902838460851286585765792268558909804915778189973382770575907317445021739825790990401279975892248369601782472828574660176145825428173068171495072033692243355900072392724467994445485341606019048808012856563714445250227307435391605807120960035650226859870755159822530418171170408319773714655627474288717645714259682090971891569975604048132899962377308248100013713849796140070077731880810722161746850346470299066061646759747065659492228147896044257024060634277941044947464886529312746328274731407018502358027518759646642283557923289859179447678019192065638922217136963396805834819491258888752823038151242889979477767391809980823749724474293365377782066616352100955767424348819761321730456667539634516071553603096011038174076851548665648062615982286182015588324199273284411357776619852464005575918868071246571813605958191439423097974488014346940944740515510860075418233679999009600834084512231529613954393897982014948259210197409671923196153205350051547263452575794380232340421401637814002402734621966985478881464480085130693927127286297476061911803001779062370623696872153148011691758579813179549159549274015373027893245911073381866595500009902608783414808819669532025999655666340470642591190721695889459294767094251659121426068633480149533653008582886343664743391088792628986610880703100644437732180349119417273120587922475868089751054105509066184008456750679668709757896885379393846556934500161728245082215218200156161497937396060428824066785503494486609490790517217356984465372001326837817557027856233454766101876393798836006026806495773033704416998895045682652582618414875534240214395824909801420563316065904720905540697118867813505498422950384581687360971613373516511787901047690165956889525271117394079988247035231345373276023446452202002765262794402094661441066142962761264950889449346736300440290608970286879544665038352551711981358121953868932967057190858393723200346966401454893136268433648905097447696465249491559979339297664498440769326128972200063516293599020674280607466609640471764815050909379096400333750001216869236509083693836769578524519420001899856283351702403452172472393144629182553334412287249244694042629945240758923647136623459470266904458243945795410357411809859427551348308316473893561831178236731776385108346786020187613637340612885539763398966449530728101516066257954690831641103226364387701641351850069492193177398817870758051779761353077259479905612435829235751593246632838054348497423899906109869299622320820598298148905019358049076415702265305444542808717730507475776482194078993411116673942367869824984741874181306022034930151315700009010388769358795888281633473877036898292621341183990519257024088514862630939678703122764783452354147583390733783814608924054526252210601495679634076002750810612434518529891974965640094473057903210050499383976370223346315177994496689964033821107351473782733891842331688859969100690796338890023199052849152922772767942129266720127542570634734198126816493033765524095917585708312659143468956163725441408677746186794684278239553071092353268233837356208801613594574408988216730109863810448371677199201258271656233992568774867802816624076006493618780788935468899183235211597219301092560478716128323684157697155875993247659512171336616958339806274454924481141880027314602642173075418089530103557053002853905391661233561969840207300565583040693325894096316093828024356052355156621568927021571584224022601885116801087641393464102830257113817566223529464313737576336889505620114467080243776423661911302856042167367316594071403012254257677400154130950649530509378112574941477524988104970510095631763473406936039100300510694379695577513816792905340600538987497365281063518025882421241411651504831953654290819125845912945832367018934471783748854084342028000532075170426376932405014638810814777789045664834338695636659055437235116544913453377844908277241975192817712903016042976868445089439399986034978135757257189660938884698747980724428474011349641782879539613745822351660655202896067211438864217410539045537848185857008489266103312906824063937436682995132100865963882876793666780469907431047212606434547484632138338163591038656428779613992929171984869975298878250563830962002507249842422457101487450388249679705076848155874417367853471707464255041054032761231632365803498825182911465592420496897333950290851761415646948161906476640926117799187980406590366724520246481700980721545661901403762929215624331869232425149093380507788064774160432869128606540128387027794360410778088223974413317642605607652355103931968224752279933055954195790232501353141246019126329215332530832570378492117837073638584807578087241627447335049979952403329623438812750051897450248327391510335827770269861932944751424775984565394672183940505530930970122042711394492365270270554319137270727979326275115234261822434200913431154571283745361656978451268756668252358213250165904139028331762265960737174513659204354995955764150898862091886703082370007966061606582274524297809084226175311968208297007683235766681156440337351551338142181919644669181861612136565194264088089387823172648597518076703089423465681540755418899507375820611298713178419387095418345719651472037032344783127228085288075599616339394406378277524828338123799945041532894417584556074806377376518845085814535028994750363824452834971922445615900636492414468230253732467556570646048578095853301900284983843844899198088406773016765691604350589517329800283396461608818146582575085365625474434722305686997261751097685381645454289712920768262720230812221542576140979507779544165427628195305310900118973795699392057207447244543441622185627788040421310653247710978043602223497026773807183180437814541893949535364158750205383160913057783510919188011982415691127621727645005324110341842470145150812419194780305226560003841351690308031325349918753033715730523278069998779102629725730741010367620383114976883740971485095661328994674818178354230839045615078348980424705586948499572163408348140765087008393331886222516522710715726486079448416644805446896070645409678183425160029063366451909223501032567472930931455045521192537480994642347878940473706478741778015157972316906066175096505152726145258859866189473867576763009556870645336246116811907756899515924612639074523258989099432406809272034647616193077858904551231346537607102038603125991725178112264331135308803587819711179314080486033868666003137931327666881908557893188920998114419758521964561740581728512391239514284360652725422589864153566474203830110811785434557893805448140938120390827122905741960401395509174398054307985883944940746946068333666111919554242645428275467492834001270255240116997593236167218559472377607913577010389194241267297780096237625178022653502375294275527919194798408776467517081977707094677769454045571319714581574757318636612503505918028847824949752138143159371777068478582773940619448598527312655603060813346641473135499906892845169134873563201002093289753841243287290714936794109060476250875136709537300615148423166091026170369241983921770309590143098228797591000793271961854053080366671968212020249430871258868150316352188573791907991606861481387147731096842982939841348717841918849635277889486510647540119084196524395504452915978422442518024771721395361617561144388070103799291691399653960075575221125804265653077134695649135060282323906540576134383069347512864611130806370886387486964988714737654288187469191034651156665599827750417884560990865841541895338823197502316583887601416613978319099370274749625072064501870217456163426179835796949212521271659882041635552014726117546770341217081638712331645901673263715262529363383226451516756325889779178324448715083088112092702003978588404693067346248231123511401263268306743729185517074818965836211586548067960444361406857837532699776622941332250734743265473585285394101099791818416329820963726554368096683263370189124609609317087522931379560447037868843470491836470891092628872503368103992647195483488107958123229586926996169632085959040089113406557706272857678758209748664423879440968393770860305172774547279741447644553429683769037495342184198149569047667075013961856700175859925382145648221760940713970993744466764852438340274650239214489155813818519207789291415139138391741764546771884573227921133422796342602771348759567747645040629124700833859887425633889066157390883030930013912690770077139350006659666466795431260220651831866743595826738541928253213176294431350267964048127312046033206361583116658814940359583517966620850129089861465318890903766942983946910382698112765912570842974063877153045765922063328912550143668538882651897802258792453331264955605043653081774679376849096001757882868871468103536356163247818544155035176703982018112997394070790715027359176229124586440304472990511769450570826901517223414458461094189987322295888622535658319860523046482841233933863621675774214376564927645670389903157848709500643171370183869804167956895536024963568193028218896273702597143868178843354531860346577940214696743036961830265127086419128073085056672011580272141039269363401298729417827585786252437753348340821138374160600332302143602976716625832719265181442561820066427855843063683720035101657586176527874049251145734617658351845400012805178589433272773129581958253954157527550151447531165146511620929401064319184609753786132123193608618178045916228611191385111407912889013788205767181482067974864101342941521393925150539423948652602027122357038111330022680082690202185399078745391361636925647183563760311888417300725985403366651013030428601993385567419215598289147402261071004882681459345891374767261910418406277450347503945417456419706472300249991334347858451500089560108875733154097931502246503801165051915877576033541503712896066437217329025160303863774252538142463679819286548307639846867405550463482287059890886845276130703241935725873480936740267036096591821727723205433557011608703769382734122567851019037962910797898253059604697115087167327182573223881451633384639057762933530532655162046694200116109523726671732615322679629024319345686299595931551688819732174155566475326120889774186990526293159307572262595877788919608602621913619641338892090835367420561023032823098317667565050704462329002111365804305267048079718139442727121770425817088205041495119153211834760781219317102168028611099880152779435107610602543911103035383550224230423725516395414169976734202257798423282542352954398906094466847319385908544089018328591699042173140840626144577723322884864749292702583702965668781101455422702717789116683177687325689437232083815949399599794393669095681889330728234128564510363494012900236318525288515820510426434735757793945485499128961263255021153150271859813041021780256451808294598436073568292789110591220157661073524456137842898477458713653125982310245519893137526834884562067781866341533969154857760554857520988333486056021784473831482969834417574009490251953206855213521410859076271350859091118598917153413216785610783790004362656470852004689198147430079026468075404217696187550675197065238845553639784168747263444175401380805230133657360258500499756151708779562922429968992529678724752241217416605596477761767761640184589178626575687921731132481846509626155629737991558541694903142547166579594818902710254809399763399397788854063499029177162876599550183693551681966986210828772566025931555878667250082830460876239010402385187750656387200941373446767244856750632958834847421542730682292833033561971515293098426302903671002820742862542526991462740671719873574633361566401116860517463685123951986707093208789730602873264360861516608960944569670485570254602061078104463258101419122349895012267328916336916765538030093678692549048738238928073734842300935347578767555655551640292321831043295219202316358873489593360517102612976697942183872834545287755907378798601732063242392849981225136591715016299709966355141091115852743966502653953875546586040226177445382126444999023081542950877992506021941514963898775765546949492773457172229420276054948043952920383215734558496093157823739377230395898117814459207200485401313245614080014907478652277932135701294017391772801363036106291130906523290767323915942370944309521700268506080175150999644265040135694924102035916469472061182035518352963390456831569042803919027522918072824122006519616610901236669208637122318133950494358819052442612992614076555449871912357961015922498456624492214080782237376852542720104993018167146614953502298001541280856707515297764765766912562675093124887208631306802432656932967071895520817151736574322872823590099409086887845498443584594520523406939909067784892730684359677719953049195407551759889628554348308765620537684752606630925502530210912878595918257238709038711220162666898715207869057877525393882644969035524217024895385464209981942511270669568830003388917297315949189546515621405402593282542177329285655611649466024518669370430481818146109747417975554713666895841574329833767771325209532577092925358924352145152674705187403350815456845403803500975595147645941735009010042133102457698967907979823519508066389667501210845026565680420278085122415707909822330361879336002114492749804797125962387306263576819710626271938578994607937454376293288449694127221034704765833996827680024036296886064926864244828026075054133401322442400273912413872681371199538496432785212757349004778095183857625703563495565989896260252610867991826329444886514711311008609455752917385924431365984348456136967578385284023684980241917371979565059335164047007502937000581955910287490557717855630340397775807947688204370009106200636410415363869402327814165756287325095840984288989880856528958331599350839610319819207512319667082822679891690366089417724782012313222163707825946269904264843462516995179361502581217893869121099535065674973184777819306771030594046265922780890952673529127191842088185148482267538720895369487182015168461422705775097199479638422694902096992489858126859026756551128121887121332099776153405655045362798597108959179295072058756564155071653686345274499030286272938447595288363081763503143415078307527298194834123472822082855138716949992196485272290197936685556870123141572281111483740531860080312727575116949803945863124866472465501430073831316880649941310614992528769222231379201471971739282672053833481572430151545490254293574627256618605016126881747927068532359157761133706533845692347254227346848308827959651545813204419786136407070281337772818142637275458259188628605258488329430574082788815379149271565611372478820001772482280145574142143525227179637023451055122186026335995281966567856066662771655850845342118412073590140702719142396795874087057905452916605658700908914650888483219424757277146487012903032692071934311409527420292552526275330473750432453465039394551547023867220068890273647961757415708293402454630768896896951405104049978399314327814468525902785063802152711243413004926329672782759856452449056904652492313095780961736154979477403781519185023231893142414998445552902560343263991240454228101361472411565664259812594378243920384079258793180004017741874421970289484356735731055750897504565227850274125440407930127997675850199297460472686466907960030011158207735846459407002933280394494969911018500986663216956131179887250116450133747661240256525087755625736966202113899374261355682330442123331740526091865900012993836758815595546432263991264505109178388186399399896690978535990010572127567006666757001959175215401401599382743168403705878135316193850796211018853213430602346819375085498238637782441205920937672048183241935639393933018844095293814858934215383062493355011240180523458152476974357065412492034084785764529536626133471553513305277791090756231946625153584857019966257917243663589200574214391273187538526976590414608878890172275099772064767009654517110991526256921468733532578626060155358981767534517981694964787015116395620316100360210995916208062672852721870219929779354151552781186171634177837584586403513105212341721353586565931608300445847677033757667793265396526796777895181407504232657143042919670088834598500784031248941173690162456325844091380139884513488165312635232378619581277894674646819175240221462549335577559651970737147052430070370942271737168369303470398189797701985793771474083124719907474631666704603498840732475434871191209690569211020119564245957000125857550984986481781460847601587824095164186378157053721299461111380246187200777369731926347057048795141839578415540537075185276738146970698863644537439610046867403661764367514051965961286516926777395743093362154080398940732692540437645709967563034331303881193992162980484871475966139708887843600684970299340751198845063904267999694640459542957552145103107147767293219399387804384483427431393306852128157761844542332481078689956608383607236174837711904499581926468062233743996750129307472638675233002921508611170464263488930165883502123448680083323216209828600997628540322363242055651616598399996747885228256039557838341392725660857025791919214440109372111237862047852778454882371311933178770029967453698712134515773724305623650309756419426780565416910765496631393782864375891135778920262112750854559808823856111934671255262561776532780181780684882549061401903608136875639647000138535492536719881570290476542005759340251352851758011600283891418206623711006616770880244481498772403502005598941361404389529214373295673520006659432749607296443602297728397273200572922803956450331356625696045199550550120636727973263029155438174065151296360904598666234545672995372455292178954286877873627620491883792032400202547025152802951970285469708620168094496036410422473606083900785699177400403674389547800320961260117583996018851509715204034331606656025326623997978129384388130992699084760681396822407321177600424101248509203241419831834476500754400915592985710248404894730555940747939997448254979261332373275904438057440671112138702358050120320457992758317483423585963569907231123420101691474695818787974421021148796925166961231092235474305283497444475428856385717983510441878588260840036563197131355312660190842983053685170565632257537837496385963607028064755116437357137247981600881164568289551272744716376771680403638027889405388030879888048191660752157284914490833561795977041814037159651475730064205136422001053855175161376044908696450726798421101129128143441905851043680473717363853685135730694763833900485789784700338945029404468423659747799965093771177733745389521235801602503190502589865030503317528951523315076360949046526202182639502982781623537989173255060647619504724709849129967007613433864899245319138841023275444821667097939253081602497220454363666006670800314967103467396101774850051075665371929537739713053722612416098771194649726854701228502002247702782712707760852346444516684593391489918573022850633156825937195863130176346135525554001259609326150862028151452587625546424780411620125903090792532010229177768082098375650320995402757670169099549837603847759697019740240209619838111701731495139041708134738293577785306405979679906000152287076575054595621599438264243459390941722912656222651274550830204401720694711071197767244772039832459605056702951427746961378889602640060378465650545222423885128664708371012368361840897426242632864509318011525282858357204842925440588336230403571234142595079937589474327052736028145093556572266970914967061318271280646825697878549545745839479908954337015958848279261511036071215858220888815350239519920004589484981977623556516101919487026061416304414915992771290454621402382664179672613325802406971936310106553842535777478755884762373759959535781343400983821255489712466250527777229527624488651530391759812878042422608488573884143192643749267761310912571325523926970919580694355678291488386103710889905589345821151710007980828756687471174947006748622144572598675073770737209662853598556460725314697668740504807779231786174994574134042784957981481940961296463944067617133780012026494570369893928396353581641716743220682973011331842428625506132473076186049029984538667540424069548664897837588029946596536190468764760870402098757821403617061728072901860732177842282920750619786638899924707718304585504119486524323788499894641578663087680906633449663735002818311674346448096595020032188750755052965240960000862855946416064603514212951966971676789777808104309539708050629522365170998158409817520719294494822736767706911909453714004422766413005201468026874385693278057413508592124610458172469259514152889581813894561779348701060078868796045484065778974170536387149399577629428909822757798793302981336385910296165998716582578470124223421498687521239178203185686217888706629437741418479557935975741952373855313016365481045307716712208685873310891161178493601685203712283400793993119774406522309182075472592372039707096744611426150894994203937515509644246378450288179343882980982997830861378363631149075254053062654729762761510489428884668471568043352908257978839829651089369783491529908388620680348382612455894618719248484805578538235166050390271535591802365531472207502032790661593998080259611203799728434889722336084363218036420462409354827800639650163070392329854804326939051177231030080411210634995302269517531311842993134926876123024331251536398049073145468487052862845116554756689949707210050496066486926176027881562684689349496720948949361658650796080196434595280810714869216890521137257942422792105312616762200144796994429615354338081037932919338631392390333342711947839448665874505165401807105734929560608074506727247896526385850473396521285020409045222155582769617613065599876310931241220791602311689501676275227635582763453296750389906145999742151852647458375865339508490754922928175155571665732561085696605180174753635897159675033459722041204424357152315068677121611547491040390417946088148534887115146367713654682681256105926254939811474941036466450888442334486596954980158379368052100977945250494116317735957473469552878427018511780773892859752888676702741333536237451956823797211146403021584853717821404662892855065525353417278356367136645733029039527095078658838083829188224153727715445346977914013276981766329738528087622663878739939303061178715320008088116844046762309674117112060233958715334563539963448956343517178534179634902271549554928300631414034960378265777257399446748572327963058811424254355171309900225237446650490943689828232903101197201958490263130005701721247957868035529241787815257514335133182222303247030972018276766181150829415300318310268273118197346574777955611488686630191555884559186790652447628106052317630309814663713250360928739467612961349983243336194286986203498721431247163904092232850084232773470737712452618348324315429396076240635060486697292945956613789422361559033620164084836230252002552185715956299893149251503750302621429416045925291965502002985380667821668446507628514844449433995809098462559328022615263461613013095199913041853746211086142936701890809821175742599614639225659504447321835792935771091638821030684673651962927707973669995052191271352328369480574260005020864137132434074466026406545004012071083467384413532292754013852136016914297972935464357428302438433488645885203712558096645392664409326941256716878829154355870681018032580455828164127959939120759527021215914560189224754458584430649829328088419842035462069672979558072124075633457324468573960327027156168556534757292331192214724853461523647820872674606501101139529521693874792328374463200607472397560728532130761578063745741843645690155848406900849358563135492922591063291325372997674848892200138854092018556593095182579224498020397358836623197965556145854354975578690488906949039781426408101755619646313409266747816021566204265985064041172824217822493116131753481241676971455150289393700465582421900833088357324066692194955988946972949396478184346354900142299141269994984364330811431263871745362066405978295753361638987584865923715860301818604274888458588530345915691410897888896858646377993482363564671145496323141987565707937109471028037165604436013735881566622918877737843171482519516884567048187337870167733876962598389815744196092167995950773399239496376784787787500286503169590408055164585230675293512739502405569000108351711917657146832893212546725090467511682976969289098044836883231071466674026155016589798511586514891804895427764483122257459853476485367829658703186044657283876154921646288364400212834179877725763059828940229011959700367531366380951479631815045666501862818375806720212473409607429824009818520461514361590114142113098052301703313329166529843019425057890249206267339387453643640618458102252542313145773021969815129882259651274835049671937373349157860035091703873036803817294911930554977834242336347017185483487277830470477400502505769245133495910704455940662042931668131313933832544633324277392569929092093370180452021338454200597884203948484910213702502529778366898645856277798042485306327986497756920761613003076471110800042929056317438631178233854467283307916218555549894562240254065589023023238873968304648443556871339559131963992515736939745068034672762553086758524962947577887273432033806074569264423036967895109601614699411356558105369910772341236597855453346653294322894332239649547337328233822434749801143584240458838972975424223538238847908933555448407314479676157852733268923752984592004502368975033458247436225617396012989857240399976651506723484907546349941901393214874973433882620407052453973572218482953593751734599201375420143594224813598355585840178348397555712801889657040716206159519048080653524602764246163582058614737659693202076186073646380068767289519176951385557387890658438324569370724941080542426107014502799315911260093526504035288288294481966148662951426145782879241180123872097894073601856695796059170833329723875258306988873518549717072460601635891930146148177828659538095539093492185095734062158930273523868669246063307295735508377239594099902423742937870812910197544575880632979580446497830055080833979547262115915664603469703380733316997826281314423282336511335302545324605315130613928682600827341433632963002393210780851933135278405608700222283813175257748185625344438609194428889136093401853733840050122803956788472435448191839352973259204497510800069759575825523378145025384561035692521207455632130830540503261182831123857409082090810748770746574584174191186902214714918345977475282217033804085749250210958349847144020618292999848776518089771926793673077326757207164633273286340254513488237494989884322689843041758568904062333495896108303551350983901503430708768400261952628456204934346098751302238789293008140344581637804760636580589767043155325669187553718220520835779356779579186889849554450334672014408347481601298877474236930970612938901404476457945297567898312788350762293818000732588339633895872552207628504110700973837929497704784951137627011320224956590012814978075804582690313325562595849213995071966720990010023661419669039382992426984816233866539951139454124510394638843806356641096784665275957085764324924954164996768981595193503735360817485050972071846681048396386768006689402207105438316813008529566007738984846537244270281289623525657738798200538971475493996418948766556728145787764366552972205801546173093895535234792672600852652087586763360861028687721843072225569700101804657975259426518829122141345221065502645813431411762844874419644389736933408741433247948174181900465921304224230770748410280113140166080770778192594715350416460122981589648315456296460984057857095787435151256158097233285753271055221668531480056344030870462168014664193719709146250730914410964158618527381103980794987044048434562322528450523315222388034548075533002348891497502699716160804807206334838083789056160288067521725348371800737990678960174849298826483447679168551630063295007712795235838892228379356458185586835944284108203146400230033085283123444171798033587883133666594384319661857686636138825417213364997847118103130502989821610036963602383476587579266944713507458730692359824616048662066306269491651282888300590939055540170466500736393652313458083077514001993822080577534329272811444105287358800988978790793020506679715547649229898564123295067934344316177418530108179327136113519881113140372661395220413320027817850195976283638055858885571332327007209014661162336284125555606694992904214259803300015474901548290103317362376544845656423656120572488688492376933069162269703582297785059345425033147801107083836131130233425339493642596297138920219135479107326689997900021935803212833900589366710095672383180564317474279533502966438584158871488625199491782283450972453788002411063599274705688243752149873676517305012137308533396465473152458996662412747206856042707534099474689680396894189847657894843028159388647502928314982464106399865563211520059642144161340383442450592440065676965713165368991029781180473714953792791021446225283034104836079870102446083985380534929967382862207606944442943119742069724070588039998796033610049293040031608187253735994286743355875038650810242695068509340101093263109770330226143539086364942420983973823665478791383559809143669532064935177349952980218213452304279452888970911113814922569890588473379109698034998127928020686922161388339748070130157131868427573499232270916844229851657816872783629603394955023515539979151838542026729719668050121390452306000389208025353619538085780205192884689998737036132589075475913852703728452531127393670918086884987241080671031686382770419717658656324621283272800777211083569981116408147965544882830247009741879977734589814837784909351137140424071243576442693315020195132764958038967800245341470754746998361685748144012704405489504222680126248850067429330642396565159102025115331455065428871345191489067387998339720698634342718997090327646347381765307039188311454821461387357668464766418194025715220774758094673943036417310573930650924814173314107373422328354235664979426374259906657932889402466039880931700023125210310710188525975931171988738667288408222812787755843364273290561869186279487711936875111193311013923244017208462536069318459135620302642189954087982742948431028752603155914463474706202116014176494774625049417769749441003310033406581333205298113639565210667951428232833001461800844602167714773435673500096948702880503429424415794431735088168102175133467486300882509324472448906147837615815853108104562690764072911010074087879952422569133396011200433219319471197073487115795708389072879083843418297599057464227526412409624673806808711805023763803799549400837083268852822269230457762700688394735731634357708929183373856045213255979318495983760437590317659150657570584276570144933915060116958912004587136362176299051907466746853176728228204683654397582151732662874510107512857307451619480040805111584747829496925061019752674988147038521505142540632388989746144108329270877996854004518282498306192721392977795623102957471442394033709965651999930324952990939302522074085994539270582873626864198898615595467628346563677041071693213687782037080550157525873705623510698184387184655156406484836556541254415454245748383316541034325582927274160736329525833983323643583683044305575047616251139233882490263914727432179710621940240194823102221797828019424352626555115134294285096424591897420275131982331156478027030568298246041240549278281068058815057397484947202915133244461413914773210546203259001314943294155662530498111496018623831854948800559600153999407134340253552711766682423446022752134301780904233682399523695640816887578779718047359259988151085725335460709763694576545740142530109415917847827607163684271249171385464017620108686135159842997002239319767544705775625987547802084140079349892663256400726104948991459835602413684615201250002492447989683679387673641291862781381201321378439318606085292014046489854271328833868399245807565895129128116497601675384483534850135371571348893911877739480436626352153860632465355308791745377481973993380336390441119511271002839773061101385847142743773502029281002859901022918480367558575488007642324390401878540662470906920054022073960870431372529434598290242339882292077271424252925461135124638999479811463103323930516915407068729686255222540638460894781497548305548709750367689771852960546024827754804111991170432533692310376336501668214698362771959715161542205877228813660124074694126815892776920217194011499766083693919031521462961932007059080735626050889789242676980932553479265071363372489464683941583965032217934882348652423313193588499658128341672739383254374103941914075553898124368859248765020354834867280511725206707201086177252751371071164402728434576189428052545952869476241593069710236130278375505156214706098435415655537730399298214980038024130916312855523182178912573598956130584615726979521831552486315054704283036624792264594945981675440570692765359199572342042425539082129593938300971861933587153080431897970707363067654578115867652535865837562915047883120455403001760103198136211140706191645030039028599062488778027366369428284867526214951834722852853465338160770971227132808592566705734171171377955891901368774596747447695439971809321355029753452392817286300496234551657034470112948909193939018266361697573037104072927632088662747504687120600024741609916039974461075375446702211965575749909691817496242825229590184747488539364430111917130423012676146212108329722504551287242924376100951245026588142607052173144849617577097930288427297014668413696124366575136038688400230702695886548336927333661728722580450870112327688970631254131479515109368901151816458167091272099958407290247948369902449175587242588754223187501016993579416897123953882675827488084742878421058323215420086067346329174278576986261289398484331707466176627486721849366287904959372406126451250904939997227087952494166423448703168861126842642325813141348635129258023532778981583459273100027565706340043247002714269400304344675832956381841850634002810804980878028894256845394350753400614639899942529681807503468998575736870533894682724002196285093435164885156927458630993108320027777600310140195369036942425223023703666181910989705557732468781896426918966489323635679733894189043542263474290390890219158132151206939847510516264008053670733527578329410510328598230613743863357365192386546431755126065468405791480054811445683517872672136759130700604719682708768923284507709800811191416126095481195407248113778282040733070291990444181637683373627348452843278395078046100928562870720898555370487317398844412566496550869373928609623100683643682309414768734593840482013738916243713790725206099958150733024698892498311959346506229558165760280083050710144685665178664306653036788717648660775295000554096796718437444830754653778949803577475746827351014327369089446971788655778910182751840228042005446495060667110466378045986105616089632419896201449146432491378966333000957466390507408363102718477250057828164177472709520759953720006061274421225501706871534571641879593165054977280250421580366422939491677198040080564282025941773984756459274840382532123467632857256516191965516270217292770985909655486065142086437417426008249453164288288478567317733453980392909113976492749283859039376469876896819805145990739351229325263558766765795259280237884437032548770435018554940202632800825999810923056622117137541691318670194448769145995015613785432625175780075241053407647479923581962021261930042698349996963475534552971194692193171106984104511354868612527449121004970389570556616609777100117580066083941665524526691632362466702518823785159278762723172764611591659389423572947855302715331430329843265685007815111569053655729926494952294741196518934929413688418478465192546817296827137679114027525143649754281146530206035899074153627545468600399916806735515471018116391528125387391446017084886762386964348106405379645821716347989257191182899867739584624566949407797577944248998957190768259116956416168592874813888434312149370198344374770704061896315109651525895552754156566302617118970569394352317289725322877291180047189482714150348219439559257672806552952052243795665088191498900228505061710107556222182892304656284736129626514174533273907236409169141684504475150731139772515095566488951885762912918798162548742524171276602081391682859085303120175591739301505373444397177442063144138664157631762638288762542679158493285422939500066526676588613418204635772270848462057654764202010663779450949453940729776349550240014301526975239965307635012491345696527958105214305171516460379414278252348478670218852800325750110646550840884945902807056163526302732643991201135415998405671680261080183945336375638505221388812349894020189635591870596224936961218327105809107882721116802265363475498803240872401373721870046317163410431134712636877816056201398330051404428595832358505358781377708599212140456173813146671418918933230113150384774484488457762790856501309977880829373895350407856695140769501936460691002374856232295656395993609363183968251826146498682800055868819941547228656988765014879398224631616551067260869817174509318031571860365868770403797646661777073432468885824526648410504244818847514634002060740309888885309384480458314475442780290336063749263852663075690546230040839392632623573403436898844076035950783562976582775065702417591958094575165305765180275189587830647346540971268711266602441013326190863149397500214453412782122575218850216812852990061372174963315418697689358645109854796803250360654992234577898254990365404558807072159154168412078349994698379570505654576614867855935789947710137753748583734867533362462805534531721913195251591327091942376959743748017415579708759484073260598914105138580764693632016075427426391090716051179386622349810527700456166068873206376212632900298709723645175649162264737613605759743808708135144444637484359358430440609751478814101937502492450106315837095874949559237354289332812222127491069422224883961096865492204055457686345856573022677914995854026744249883925990054007910477941151001138597307798523361436466383093599487452288159788211817934976388320935600620450784495465005169159551858900668370442444488178733914296160173548469554903846335463452430422872890193030124896484545380807434763498165952575599088633659322300955744147755608354170248651049856359066844904370916115019283174021421098256288921804036587541536031395265322840774576664598662712038402859358201503679455066431678636955600935380238275689970348949160373898222618538221696525557003018971038566878172251109630459446792648996128258367305595156089881321939155763847663383372947946714632893321033222457449979642715682836755363991489836906377669190392189440531285494114404103375751910226062017341147110061529588395482551575320505349098280743063118143646707045841713362511246010887791793256487631900670632012685670094134283915769610156927110049265057208400058363578150168792087498111689102206264722902205458910177058679679360432908856620192022247479401636414003384698280605522158914564180661250111843625805812671610644100893587520123819225784873406094679622295607139591245428172408929086537147945555110750701777541074045436559645806041167817458499439630605472616172920463218769251511781039863501179500103265064880602115121777275518385262067741000685646441771633040796973600145160598771710182027193110187354620367021665195968326477923745255830525531170532649851789537222735627195019866071046961224373828163593213633915911059400644325409920181245806377773083939376519954688138745147328731778700883710517132370626976935909267269308758141076563948332349042903050495454662414995214187755402634824068435319263469378469573930584271926676697679055018151918375988908922070584985974644300939404877913172157331962670203286094686188395534848462338849628508777686575489275298679608849545599340002551869141915014547163711193310422817066645908419528911145884494261498846486258682712736011150913056508830165673272898925822400654066879968067606992921494827366672670098425130102423449540975825621161274674656944386488953303862092623700314149829536458468081298318598508998609851684825046305489717326147865109566530747262899543630857554314838466531733758865228634018537032394062091435388797067151175068353860584481990765814117604608768157186388720009976683457931305461115379236924944000858073620598813855170840577721952987972531765727366789608428199914349797164920884218682189692303791258274843363607791098824349184376252183989084799170833681492409068030570746346995815174687314437044751767118008845157287158789639461520073815759933786586278001683302342801801516245081310998918670784575512041375992594541104790776120926987747489207291349796889667334961228028099416701348013956204296610327583107643398598411667568466949818168942339761168448513041572952734951861710992140932285038290591111379044741293622411846968084879664012266181511558262513499930576078585456497240247027359511647589025130642135992289967115689700522193395057674551709075032422047678912971125539258382128091500122055943260750575547426742282162501036310531703481954443070674023886896346573603840031438160516807583185503115990777978827905779661738034565118270133784092335608580761008416815579039610868670050539450169872146145819813170811741371782707697120443673011041987279845621618520231363580858746053782058226216754020715939823458080285527357009657643998305605513262331817040368728420648445498347621875610851952086106146303441139028946714274450671311431716879643837290409052122681984979716080511101699858990900161170205306748289462952780081397614670345404955859293760419689450626103026831665856083102018700624119769639405357769237776081434500834392861294184552955723464921511672113256295690448273802666258092396634386614472113770534399072725732406808518956559313106308716414559059362483295534423061690679038537241708592589074182248032119138023386118732461525729880452096848069323205993637655351964533410563207797937225105643879122342508977211557108601349578143441561803003757319837958480580322594064928322466758518720981964001163077955366818495973444524124534736174547670484627650625894340924255029761634142119507438665780582788168174961018097215407599396335935102414185561795492866259134961851880635655757871627574641302224897299403907799124526090702159282923405673486612131542439174386440210080925781294227129733324391413540213648498994322664755141264784701186618375667628967556327511050528988118117936476212517293801194243271963736059331680943513799991868896060566570804653538713452446893173424063385174991875022085616882517160972948785762251498621105810850779511941736352381432726936929503644869266151916452388941508983034114490128854720688467439399717637026178911164446479973105380236008787243038707179463116727618052320924690000759822885028624969246652248225231023676816045510763913183585502751420134671641549372391922718696656394672563978141347591829389014890687273363552848720933296630163657749840684094337273364016379447824095505082405970441208580792165540106149568760081486402995041330705533794866902346499741712356838005930656211223049359333676332986528612551632287528654460723420928505979928767059168327902988612600531166795799709310354264139199894418075762115327861187468934066225411670304425882007604616243894818879346127978278142447189548593740413378116201206547927256295353197183148737274616457992658479599725002325845408523925779614147884473885480478383995387437569879111038012987449809615058323132968159085196438728081956162978317894442996747359843926959926597597993404876346148251435992142718186219478577119067231652181546985528514614584936169434254175041700364032119409547465286121848981191610391081966061338502749497716631626133228928312189692157974225001507498855555523032377610823643275948459799186191984605017536894007967877158526630919758141444098275950461976307813050823940626588564637881709990745679252212677063043773291917098138669314480854295688627478614297675882573868778038339129365095374292813806263011279396159372587968576704420432039491237734807982065589857905735697271450396890542357209631285739225009457751897928585893705194734192886193731357072962064395328774537196010049403508439121952503627347546483125324241766812275892782513937746630268560106923394798760817024305477430985227575936283325207492926882142422521515543188773608065820694663014726608490868794284683706202642299940932053930308148900544716633453191007883449442506350112262874400284551744328574711933744611599826038449058763474104366142999123455184375900671247826248831906474921802851938913726129104613121673595470833914423144979302958674807291520510335415596270174119910949037303505862503874251553112283359894959501823361668501126016675468762290824314426762844235105046316144618245660641286291602014929135254429816115858459939797211166470511906453706705883443929155342605159943597951341913142091677876502520993449156861128606375447547812899379967724746631844874855604349891335948351147721046985276657042287670273537730047854991630978241389710180986371585727166183349764890758302271642970213432305037228836730512786328258009339301611551174838311155965625381065063877863634450082884734206825303027864133126852044308776847596797665795726282182929065763910464723787770126811325378320466696402905723111220935517766142667071926429560837308002637677559194645457314317169027770633792828995334283019727667737861222029745965870724734135779844480078339245022664868505701427185908159411967057086930981958377338757655124848322463304743468816446269819043730755890211303625658539901817157844584381777013284104696458357230468809078460190967514458932250348345373330389003726453896975935496233299387803933988925015939039087623085708978803561218604833370930540779395754301596390539875749012646190824027013775270977593034001492552646756946246558930914752923313902819766299395622949565156114567585252029322037810574116798595560029740650905342971471563862027740001516207424480996094683745660574233208687663469126301352819161625385514571273025190328654995507054517027496106297645163571013941113846421221499792176274768269781786129185576181667227258467162049322332882538306760752200985508711272492886593618156660819146549480152184251198514233491616383765446026866779770232258720989023336477068180133713405863307060295323055803677835870738471052257561180242488603270441045703110803113232792982788714935970353586388578833826185771631428730325354141423776351743348635252173490678875070910988197280601407271983588803324324429102877384589539357492582644213131369785333763660387816649576660470024895799874686884414113848369500940360886872566915207210772470935367643475051274141324353665298725137770355654560966982098409247006010815900103818395653192773702977990178023652588941259526428381981672445436295552633159702977477602816488256856758730708229635201213979034186373344950505131736727973337050486365985153762745662449183387588236761615797561830281709998676967323523329004499206545939345119448659639078835776646744278115921314860431405557824899832030514751560885261576469637589321114475820750267689148370366153512882282167676608260144320963321651002011887420268575762216315398507497532448232653987857313682470185373926327637316961655294203083909998448333206664540992372256606973589471190487090223555157864043687113759449995515684433924517514706241187875593555470322945946335155112268767893201476806718250958214692759024990308706401906770504585926485962561605939868353839683970956802882370343036568541266428338870298084665351394988942854177926514594835017327293932338074028180195658460656713888066089162876049567120033759400152703038365706726408443084876963889247284011728061933404010666331277230416643247747934583434386622816206776585213875455342395948999475637368926035148018585944533946943455733232851569754656046091116010297544726849400543958552901351351716206840690457579672345996091349090631239628046415141796036495646373933081070895007916029858601208731787631666053224075338347172112132366863596593207273746222558164392537444963800218807591639714320195768068803556362281292394049343984308108767324958824451827805523772512543449130230439939532971153931096310605616153231541687817541625728823964307130218989351201788426428949813381851791683749080003120851199433683131845097219593510786122416619724210549442945598834159848516891656978847591411010340469035289477382557184665223635476886810381536060383739905390322655694166275906131852023538948935174130233790867028080963711456685108063169879345902317331361911373503295273016419495894406045826491621402327095373525367068670583990720785585550185018300916283889505480543126352361570610028974628012186434512417566191051491756797550913324252566496552763789430337032670934911713065230791821021465161347156976684166790541776156672379758874303928124135599277967446063464419720096060261195315873316749650136190831503157617083400549451486707264765341808931297093027352733565159954128530705437372302880027970330806223682035456214026936963545491627207223658142954407040248178629323455330628329731322085162608543355748812915885614451565433591060084611487524965039540719080243363664064495729036351346920915150510364720864902537164039853485235470476448359016483202531771270140121261066210429467939126307919430261117658229555389592139315775507886091469166252133360528293749113389603506822067041374073750807042255897498783060810641691535992470499382783553802148606574840968806600651515563823875647631422348940307603161081626587581472534609908891811060866039105185528089541061451278070390273365256948668803449604746327183137683063959518370776560230601643551925808314984776883627709682465456989643165575733072837791107986730511188287606958953699069526236389156021153238960474825610845133803129096621077296822712654042015987412129567971583514573970696841247595609129073723426189777016008196206077250879203556913550796407893790951833783229911593323147068799231707903490365217173784525726236170220982373749503838660709098682740555559018659675706536928302185298413608498664553861125534219540292274103507431899568101608225450629536396968438719957383573729638064939706713748198093685486070166156897496155261519341753116041604884844505086059731138530491399984400020479191647324283761182197778139798528422723337303443109910131005553216103038159757989350147626974716106537443589243601273919209072444081958035498983507836768800173018387104864964737992086438208834815048213026707380107763704392897286924414992511069603994448165417769286792376867802507149025417110848930703140666749676787351826309423581485647284383356770612599457704514048037296858326332986510631996459261742914800391173326134746883584124758756034394982251302179584732427847310238542106764265541365437919013800720469397633886651465402195226041066974730682756306389472681033087372729156221492318979541497549796182824206568391145624355603493541947543730376625035927306066789905784985930105671329836949495702421310103720715351507128736254090826819030290805211194132726247500098409937679093289040917502497003499215908206180844039792715714868901338055605179376538248504151086583149550447626085784019116555451256216719235217588325377073450667012776048972642492330840542102885822526989858961286281518661087950473028134822828390219942478994732649936671397374924097449802306276021750030968122153179694962008470982176969679608609221017415780237807530416881084427268041585396872908683547514665498671330739740824380216303100239612895234462055704456271256795638059007681317506020716885480048787862525270437586342995168614090696869890709293576433739728322022415930434296861262617022166124801791967682538896238891384444498340522681166344585933618220059807569748417138858202999189498438551704516300866616231259046482525533937124561979802173010457924634080412597303417494840419013070657464358157800252194480201422681760837739903043704608326299242522961373277353036468431924781499967645684870835336764926068532303040101354395915713979959095723443675830769915238779954364373552058501720708142593119829680667202568592021472085535076129071152399973229752278342485415079028695913820032676605865268544512428660426437345460423494523975703998335708977848717354067011022401611891197900402867073338260607250559852201117638331508014816622120612115304975213812696313195668983065060310372139236984332079792149366791262262281025432409020353290368124719993657554104627590242985642237538150447080673383254692425235041839337878118423185143564681987144202572163670317470606183803678481400498186517022365684336456975309545696571535519835485621791763174040860229161576856891788729846487312570291748025494125025865991800042345596900542109744704664017998621329917238232222485813548092082684406650749364280596903553391422408801064003541227780169702582183587908971093480373286563369769356584839356698848518908528624237393449849000528931231403685091770246019472480134538232715505643457483280812578844787894899112359916782411572690741278013217855156909593262789765124098128590915935786491145810787363521840656032932270669217197194443766516855034319523527208792890915566239343714704776326980843108976440019335394517084257349041893198974793487976086990889318824946591073025980531533714934659517228486801144471957027823357983708412008323124430461799053049851300109350365571688744480368328182166124187064699227746393577141798726245496078765307078170636195209413002881179936728240976219320667670143537819936300680613918427830954232450416239369599694752138943856450862668330566242776405866453945463001769570107979121684249749669192775259436843600840450667144075031996827083258811813177651647281599525807346639632775184066167990331655680441258619306886666836135609943018768144966000864993570874907940854293276056323463521212343120207545657488157694832610952894417032231689439446714404418999073190752814494176165283798994278279240906843568982497853971144381493634634804617399471877985843844242806397075272953283117775223862193567893401425788579910073859404662308407528179192882264620291783679201390746831456927797578270852600074000481062335799962785210765379813248613782230782312011927466598671206717633052104946786635833668651998542356872469275716843362111142718539469380185942354763965733315174984179623753286851654232975854684228153051519825440913700708102374387147721938491801742524840728445480806460301578672292001507595655656893079424992611197384617071395713051281921565363283449571781631066142062647380564051916318779391944780984602120039655699859794884433124065655505486059731904561155320730620421184660930411899063748444661112238753008015801744226578776767325746574619847128662141011737788504836962915511141113538981981586738793056842091311144492531052980765452063539358097656223035982422797460344694633956332994773372649879598205255786144901113360020115117059312929909839711338915793933672391899778873062447819586053736501148493872092613079367530335027640102070231378801203997133035116128890529465291877858092010207682395656678456927892109696067280014488787626732972330932794154615893302393088756892479983241752922749865407767442923400255554385984014447461401493831762650845855555930060887855055121100054452120504668243741501203873932628058310981107415247239325844240543325017888011262214392467145435809398031282989496283070486857798852145946293175275668777404600366978996117651053056954802849379778028952734569018540028824987440385532958581838729418914257766141197222678701867869411728805083546964233019794934659046009444105492495321212232737443659848853927307544446942439415961140747133762661666635483630795466293812483954553003778809479744408014128799072748184418732006909489627657007646976460671439616695442629294032254391705286458745382627084953454388972954513627153127827237961209776543941262628601134582496528917386738784921400893910398096290807414092800196456466262149197260420131368175360221571650266446337282956105862549450758946261538325342462066525299997565321973591365516228920638285462241881188564085174132053758707444514469509792802904889760197794780426021664417075207053452242188083710326543903427096131297916551735996548267400540711554562686430720673551420933722241475515857543799410180944126528886213352981651442647589100891418286238302652252699432535373480334459877447639163363751767639903609454521328915482707182762374650413825782558115784910949163124398464297331885851793362245907309161723245185101496123154217832591086630665011754803101189604404724516548827801657002858704662960467338983500434678940411714035013433084621144755989923018982058723677350888902911048523407437322953493638892464695486367293251244502736662046098407093997512312172269915803393804360777272929457807530663320193414449513700197605468453256832294610164576853605021892335427993965495974563583322350285587095016829790185237343821980344209576814876451483576429946866877732163052578322003105805433042252923982737313802348924342357716826295963126768529064417809554820320457452782729058235478871004325416793353425638577380337588968818966633520716598052841530721312693522897474514515049233085003789568269992233763350701168041031711249632937146424843303972768234901740193500063551625128913218189467593949895822720546569968480177155076195484951432717206310223614654685986041424024300467013090095166377469225024707571731984654857085717662248369987024015209753462288870914000950982600845094661244980178295149449991456430776212226877811126084181640496503848285330753056053212418880246487428694313323326493785171588113410015573448085109212858439503190268762563707847110223780307041454060710816958851820975180359295004934902087726467803305562868341120707036043371271157878557708823049590243473716791533337375442318514639599569668587551362534096950401030034409701149752747209471489953446042470570716822037764876577629424590778435909762594367054659444786965719153255981969363680423370736797434070261903611672944120690460882971666932297788754277964380205075767988351890822761407296785691872144101099479768173476260065884170175474833518518777033490113938218979448828065405515095128011240300427304770224523896083509398829619946327283384342038668243344565343747275406210376697181694431895559445545568311935071585211585349772794074195998943569079540885416714777030991969688292935116668266906218941286077000699427929500624048649656412010160935270316377638465012174499882377041949160272695630226781168225703056488369272357482184357449529284557371129687930505945848917269550433211464785408618043678057756994433237309116675189986434560910921544791261760216604082606302892515757485300281523746145636900951582254417256017967361744253035212107095695699172175284024176450687146581465904126965547299253567387211087980312124423725225947343220187279870257610236030424823563227221319603266472202139476846955612262265169609288056733783496587549877507957547590009840034073045680167789508933821407928532289276938908749877596849872187473876726885517786462587998553994492753605690588173767085624023403526426639851990743487356457322887617602594360679756341469076820258685911911458765900492412529370152381689193217114383526287489174707615198285889048038875735890460327136705882588670398683896628598428274395732795301141389215297515975569044761399439945900214963570132063462882849646060134987722266342694387459695744813830814744473440989176462580888535797888258388072211412295727014111154049104904067075611025081111713119716038924949050449712335145345782330041503038646183770270007015954834691472875795172482482137954986970481171532785580229933796454679470388297158135982619148801801227975092120799135559282034371638081645221965444959407279268678043621998926502629915992974552304555065020717978354206704155488851291789763092522318936085607939956305162013401759676330807996238466741882159460985814905978037983809700086706135490627276655493391121157536861530583099084925472748901944754439599441799920731973962827588516582091583720457689971280765693227045822648225170315219986241117603554635407392703845114549559300250286294099454834083500498407501369592419456915415485717403303351861142780219605049842082413699484243881273914108696088955785945733355210945386384972401353091296736316931158213897593450527975900705701689042056853296795509386064046762735094155451101005285560625343516929125798751461739261538690342240156626839652516384577021673580319328761611656219577873420174442431936333223048632566642616379010537799068492321256072198499853222473251168519088185266366926242667888279048483106557402083224256422513094029032884855752411927653166335246545103253320917427590775955861776141148913888454862265965496698828623858558496454118018391236859216598939058208651767720802618597645073194103251455484356108917676559830410929080536585994552372635849306843714195489266000348545458058705956076401174445799508273102386854329583112502294803721813318454512676584496983749930450401411702412100594195169559662179179484174428338012552285803412950669038442902641681196456227974248640425673369821620351701529291331003377172148230882390615103525561595675167414928140512666306829857843256599827657448941285065993084960283778144268669835560658642708245509444240447792513047366891327008276131391996599453672086530086629817860779690488149051821555430936272485963309357050109775797096428474864651760492828402840771145089412444418156683770369874535762903199477592168973836366126183667723605154740334395953893648858273860254382090257519227625988235182861058290058871871895356344158659352625439688771418213956462334236002929875212115092483281122178610634980387616644543248907733244331508566151611214279040105368598493609363630586006357377052121281680613755236453097335323049626680624916081907246506364885137862004773040751290171146326354755874561636888455487789971654919478312865744816378409017537767979060246277907930608826027745951831808547350374132090889527311310520734393058547004897326283049072506271449080181462126580358072226584756304276340936402671573907322392570860445852677270073414301254443424852594743557717269491658883141894315494966644624428893335246979399944046712539302719710396771430414899813412084035698434025260398915249273542293947407217226486483531749013692826685618062955978124156461310392819598342927682804177937081326315416115581623206764087226475435401021764518065377666382292257908394731150384578181906671345546362605305175929534500059168751423468919401714297757719951817165809737048274414147994336653589499006038629636165547460434964791994278102675717125301026311693599148485215065768416372590283236325155962599362332537285193147108793019415643085804169663789547541075641387531849054123733064740424773876844190410690244378232216021333078920460276706359987017514917916990341629423472392569478379038294910336131832962352945721917294494381684509385922030423511590252502505525050092124165643991175020950697053130630083238550450836220493796901452078735399497454640316945696827496259564303882757739833378942808908611453982102339955026742137839779197979826516438438525583618977400941465263029464495044221767353779745410569935418086962858706666475345268301021905662607292845133887904664263260833476267154642173954125992427766415944658322095095607195288569092280039992509303639845861487134954777329313372997218863465337518074499230103059114301958108626339550795065381472862900766961985367298095279453565682994745791400592561736343504250821623484903150992043619325242444150455676758956698384352746984376074432714622558696142007344388050573345915879642941268372546286392629999594073038043997627895843026568609313492523950668914194849108495173536311594137818132487338785323146453391834845317719548333948383609100950619619485876445410830358470958406504278880408555190786989219922252727425446870173390938193102018928611497898510600156684006328455803502591533953118089170708789487213329900725413785341293029096200793410702959954333723341876468875096980452259984327184100957525262525112135905720240526383888267013271092671730800644462500620558428382816314793669898096245189120459581788963724250499250153009774807474228413135011713465957998166394650767018587731923677407415757767068605555673340805750236061691129827353121410737122261896274443781528487256363834959372671475159302759744695482012107570074910674191843765706885984970160457881740500437682980346394519674126146212309987798556156721007744816161280483100316136609027851165200094520316177288690417537319221541089659612955515710608255861639355943160382923251695130449890436627618317076893814763045147477358669912185122391849316664759500657192452704310429948463051984837165929004661472557662439014353828022396324894502523935805930740200833270858640161312952996736465180927205897487451032407293005759373589399287669435875527693756588345416180508192989398331521212231847933830705634815083322638929819325769999192438301907932594652093088276606505775178658502270322694902367149291922182306094540355168098502973717147097493798437735078598094635160533832373065364845667021854760912468449935501567630902419965061677464308740468061158920623337647290418478646385575376395473036668293341041894496261824764092236947233507082797790303527590412405175960038780450672383525692245917065033452680740381849685192610958386119627725289031574479794889875824459069989970630743078764718263926015114810776430758811364085645960635839702419001019507931629402190485937930007015105795349889808353039946696218352866285621066750329889289395219932583167136098587044007852402221928767828653104153509910086167166081733868130061507032456581832734765427018955817613788732108845335164457667307943636776459550826290312012888902263840921023854702076510461058658317432352427657803404138229471215596239758416454499721508091982708285443589983818897525259263087277949419535261645333737274751665032962748436526666480673073125539261146768293476464030481106206282985094223832760969152994206926623485122317224311024417320423370177526563422652601822146894334604126452740487124687385384157333151799730900465628849658119327196920321863211375582832647645369064985575101903023568765892876919186435170059064701926087474796889998686071485060866304758976031052659072321909151664768827599237409352545554498314935583195672044126834143499230483487065596822829907403612296973071599776623155710412838464611694189036554831578107679133993432064757114570785126216515261784855413616777914105108870971257294352527536644912110711168959854617961327421052155147472172611098463740245504943863532032895256203306024040481003610341533358593481053693974682428423185659831569954881040494548277680469047149719237474491160092856032852258820037759221933551893064694618042362012684716367676389594272233899652050064378952772491998098995595588194124147333035769528210321749368653583862877864281604190651351378981508967267954596088456108405833678885197660454988990430668388758096470034982730104551755603566721695598918421408154603448110878099844579904000029726169799424483021988979949425773822542787669289117827150255884460458625049104279470578656582183660838765065614135463778134955551721513189905264306664822755894816057476608773298555465937403187354449928898447633168250708494911497681475699902347029327414225955384509311335933343771256761375859713348740001222122143622508798886699946827301686420029800366775004086019840731632195826259403362801923426600540051696596117230373061999808847204898795679833317931926815641137636746770325724347259123934946187767433686893330975858379310255453575018503563324271667458171557474436317308490538804449255574103007004015401915224135988773694242141791296436125533540869085788735103489251633828085933756250958797330221621691152304066859499406572609169512220948610402242631956414063430741766602291095519091629133585353801431685123395615565283231258137461106160685373302607222064884433023132081895828507415994557604640623850829010737102999640853485195453688177835851019437150462582422207680364613463174818877021792192940296700677786281954966100625450484169685631826332924723613139394126375525796984708369456696886176625423389952386361032098868473971828740076122322293769806099013933764245194985358166484141348417491331617801414931067507842644016850664084342442497714947054091748694842395432578015380175696848598331638030803223672608321058504168598896414149659762669278971550051686625995786823413004400698276705705967108783839072347540171955425215257085866491893074843398564701875377588745211521667188555669706458652468667669200304074464467424592800167052915526792396054411228921122331046252419697297757625613827347943802482760191054686196110582290431184605815008872675721646710982552766192896139053021306000176328182854875688405024725769741241832497302054896702843566628232995276275832185101932256166816564577439035995819214027269587933091040030508656613449923236115038551161368747911344346875153621623856735044551708187998566169748825237701401804488653159513517085000405942441855974689642156384015562727733581482620629329912291235102091297411406798385141066188884942496872914511043971590325579869505721617733935250355709400217705336637002692276313449407383555541468087864915609884077949139521835778885143088785351139560529244888021894871506536608000238652637838134022711560934915875582460401144244426277710887019130335659013447059512395594692293109202704975868308689191864981530402550352226238463579706436514696455891507362008163156836857123726095532633096149454489895288151732261519635633382022697744362622601497706857740617494715099653524061230540359739151345889953199871061611091404089235818327876552496584337809929190274340850305741731093066298424946028992843958786751955107448128660212130692151597264601430977767828553971050630144579773358327457403204179034205493069927146511159490271699853259954835727976077864205345826828069973957763349199163597788647052819502241968317436204548398302898500515298708443563593518063886672430347621365979423533746735870952869347933729309865898258217589040192038813977200882983358238729088126565653189260363700117710026609391805031959907400100756826739909193079891937137875522746239937024246422611509300003599385985427611387437616009931123460455075446520792702825654593021018196431692207837242157858429871265415485047194342614953881617753288488640398764925688624811715538451346494220545650615287584888484671726010258351974465722073522495923974180094773646336470905227634777348289449892481490654476759133212038361683216687169005866583786413807422545845816690120697526583527452685493363066954909167557378651861937896905499739065277877192896187344581676373339773069570535279236820430049885418042310148344757511257356924821193775277294398530355210608691026433928176366291661612569214745487967663645333895051423489647175043074517671816306437371289532040926385919282252315204537973940196981940726111941959424586376118875994174492884112043852215389857871579304443243724378500653820499947792041751201258111414639323532557176932019951981722437419854902830576473598435124892703659964108395136610339426446439605113909178370684545657791696338488859310090441540371822052382932898799159014808734850621440392047510672853146011934177130383336340149649462534463096135531510747005236647069555517196842297997441737470107514385180015228683497360283614977707263746285106952738532989368911804575214351879957196131680833247656462621318601279832965646556012964674985270286355022368359623728288985511394179393434194889331878501329096632191462955170821007960290297253841845850684670637253950648404430252602652777656553248382241419262158121064962465168366182678301839327375688996427059839315256607769196079715472952202331513860584479109628675192665975046805109984511734966376603530781333144893792257874267001666332534441070836096547166852617289207378709636664099508876319557950913438271213959171559764869916167206923278128201676181210644886994076022788391144735904106872176720851695222626752892108643432689152513730516161763449572821105284303810335564132475618932009553016201030105456464642951301981712664865841152254237392045031029227849476916270089263159829268516236047379638588787383624769197926535398943659120363998812082240463391324204525754258424096152318040462932685058526942713139516478763041820682852502506587047865627406123742037601281359943212743599908174288419540591295640865506235207742039622678904776150103175348708817602406564859615051775142843653850234783423556430641229850740452259839669766903816349156505041728249416096806790976182522134837287037464316923699229136194272964597261283103201323464770082897063484029997469889906397706823320788489165492518481917050294026771293519001290593046739644560001780161960020886059077662171192901426370036843008854777199023616880233136355357288420848856251823049328946575447413383994468932651429418842525576933905461038295689115873730269270456206671190256911057552720506726532802179910074589545944738512505206730621397109855183388991175510001931890795588614860584297344975946619999926739147192154522149671598465725059581369530079783625134424761363849388538537975458671762101580635526493341806576173161450659443368652869835421230455820588699352700776030280399616221426757250529279882245739790390586778363788584212333305964431046148215429132417445294691170620218844824795455757831399592907720642659291761706561175355683828233329773293130360873164020143428841290658005021067915026918175755031870230809975235080243832515765308620221589569006947513754005080894000398498088209667023125469772432553030757418062869713809903067888239484808742517448077242826129776684313463687868929905347856385010354662531167643067696881888451413164874743667074125838524624753111256503864793120891433607311853012830880708010042007408834886489072846720716469080897261883599453983552954686781306236837684688240441577548428718198689743793901060310478789847922055466799995398727013056242208609569216315250628748539426672499309494270931294034269930107124279736574846254396913576922582300451992843421647412631330401270101511703394582082089436908720522008198595230183629200801998124884030473123943637247909217734391465715449121796197335135612555876081720406824613492253226758448094542339424932977156706778521559851900919751743590906728476230300177483377604595953978195517209997694495252412522800563705981221643657673764431897361597092753584650175665588097711928625323571585626388777475777517046943225616518230730261304248783641660736459241524836959768198494245607774364992444332634282900295041832834169466681237677573822019660438277599850012674940343985212408799901728740692699076821466123471395722571500659232219164858450245454157499726797271303381138650066021644784203599637559481308987033072250430263510524109801651578288582675651056845898576880656936909022148189722365987586478116145265330382859564553921997022696299093426861464552502862154173790277573911147020113998460222786898178755166047410745879913389287474368400101020868931194502141242180301931390938410540575790872439460579787023055599712314365224628563693512128921296380712704387722890200635667671582641266631294630067798203985796846237719848606940634427257908438728663533628537033276810489500157890189975342486289516574518850850696892360952391255127295207228488867786743685247331196475277664653297603699065570079876610414442842133993834215113140238153302760244895955620737256866896719142952859168250196578354580491932693081884976201397721749222492100136545760102802449659074385614444744154830945697760642046356825322338478097916650604160555337457372280504901496471497860088778964334115888740972782835489982411704400675357476089519905139378352049512459267395314212109469309074842774158727992301990549586332158939999461308331498610441789624148979676549692154493251627525619959998493192139459514120186408948824378508923295401296511540693914419445622431011777692534778652833076895403541742198108381275157342781873356722856982749655443864860462893252705551724977701616019644748290907102453981653202600978214300486019117119582320953192406173905293043238085257752773974686460344946022295477934716481764417658650041445087391487164707981159792417013433210171922831003696842909131177716433240552879866507835557516803547171569021299706924860978142534329472889777792847557169352904271142651458805575436433901338615388362747065887928675599181597935231456131810265855662398300254646030444655786769095373149729232951108859273251003718402541580160547335340849222851542141165775776550371727902993841090722142528927064635351257333195446514980388652045715731842944171934201909354295699280619106931111649201641180652445418737016353361989506096774136464821055251312579833651039599725695437185795729271531594499914158518641135563560597105456471916562934056797147980100818016170126606138775602857237351145914331784148511863066745610283540892701824026533801675571887203477032298222872031098887578452313285660076490182007505746367800848189525853344429143090540567484783937553047254184440398427520556227604231379438722526703309896811515814122453822512492258850782962063678341981448870554423022788815748840388811260559999687792591291860603116611298783002737104682798767320582449466494780130166031750685175466926329543533947487236150152614783167171360530818162486853139875094483399348675970107783977779426592170201777392577822345652458862480145543281313752124674184720535525857323365335764160987046094975959289241074970264943142251200390815844074330283407209863174482608005580044602501113860017527970960928411219271214847370735924327268005885907056948049675005909100817794125667637516631421986485219579672542539058200255047483698640197489653477767937063702758416078782991408862344362552237085977883018516265954512439230547878981290154712707821755442432737578659618619601083232575747689772548241628146552570194330636202346094867536046804804480829099739832592432463019106458601267053515875835291632138806632491714594020300487902367232698055562516878745325954170878333380560011738502319173731430038882509779899323784437964664173126812345875786749689186873178839702574297544985563212526489299695022961114005111971373994341651676034514931322612850633662519938527138434531853332952851101506708274521211744327801079049651102070145408260885718218308771082450551386217096534055800345756367920035207816685451135522470428413704991700906477763329977041100247435102970951045376673201714608575314820803259152458089552048148029747339150512678018438116701706962145757250825629187317001559735116941370468052231769693101822314530817232819444482159793589158105179324656623499014409254762378236044528006796376998469524141310235530600610145146911031364389951112854723792993891776081940770326388526402189616952802138066940917287463846723232402961682150064987685251964780113404696129946296634596493229370100132961327925220279990776230541234668721220032405266834677088252463138825462496599541412511781995293621917061648364454214014290577300388860416433903822428607277351289297638774262839724217243029605575203426324261376363214684485245443473594140232788361495302254891523311540188155385484578349555505708322754015120541261307456553040907919739681739248371292725006473462711275738149889449004147809219887417049879175949988372871804364138793159419885484245574532891851558455198328698651853463108827214671103643822947102097115875693034715007748586965055899257268551865736316850701569493613368734390230359972047418347589289136097550851354370180256889996694923767750223330778612785159767100408263984351081388487340024299996396652115727852748859709287637419475781734469059096151517678198243842561025224841706029299743700406174802516327313129268077897717787978732036093850266348420473946965187639503348316650513475864355400523208194590477487834035292790618697834298983981230941295807895469989083694522271275190909615827878941161414289843688570559391150498637618029753114786408381742520611169564105462270789397206267095082447576667132991249490778424108482026374545175941921855645380226457940066758064680907819919153872379781120723122906026110098862156708350160602461881580895776128567667897089479151192827256473815116390978867523519910100307213700181815307524130460565658289233579210106132292677202370560958253268181966832435941518638719291018482551147035583644104856111504393005652628309941839673777812387629717829930809572963221758876746957160008344602026334791595553221288530886947827756375908440526764117506845854500648771544985847425293097219440879254200663565112243675204596377150973034813672733186084068774104901012176744597107127657221388338642974903330285019835102244438941903471705258783459880003346520497525834329077173469279107427222717305821842801896284358353898852338448786610343689039956849019052220287583701804667107199186743269366387575486029446684144870620614946316340819232526565529659890586304819131991164805187950713955062734971309101189444949390231210738413005960134786789807441275377287682531837401372217309453189684026690105684953847300487018351774744631146254789772768280070738288916586221878958869118144917249489733468125403298749669028405788600491305089793181776855719090179192105544067444113261020550405904327092068305866577535623247614968031094997945837004799743866478556799839118269851470821115433824946692736797538477641492078566045824181197595183298250549469774763454806238119927204922826734561099829082447097276902538901283050350384386298996003687275138327894826709465233149401112300007274726235802788804415363346001690030482568431976292484433643909090082717566161990719452789309360742463959253911795813024266254533906558362772767816374547619672912797440447522072383327228936913494588937258531784314288789919194133940978397967795679573102507126006174644152622328880080255946148623482793553329350416476416976378101293501329515751276059187278178145533285911297528360262975802962959670503204008365333663695960471261732048369889380628578041921195387445001801923935608565090250099244031418284576480650874071963850158525495698839062754055464528294008558785699334184433984715811352117192766486993221185643683531720772330799257779962120275529423193465561104562249385119507529746500743117864156279674770895774617186144498478416761592514967301005379989130520104331267238838026103586658176535357821939536011987098242466464506787923383084490140875426415071406099961798441562193812328466130192345766348857795118514109785220687884955968912936464927023692568224013501717499253519430765507311200361108441609376480964286881283597149236409772643753861061689893126460023544817673198432796251850314914624014311522148352626541724177522937492339460114477712191513268636013591694841825938023894790574576639043948337285183995721028989869578148105214471461671290043238966845510923869948076368770337001715180744824201155051228261878306094919391113699745309663114958484197523971418659156271173476217584486268050192236257731129143608588979088221829072494423206051237958089275871701556053936599376401855450818122728150058192296830684539508258212030417358790289768023695307896870706386074465198682741243441656760649057858594893897935058198626937938388435255283806460776077025255454873919753236910641873759047727919214877020096220043624966306443982684675766127105914431867454714420916723786971854249049599219267864683986273554022731564129012822925518955134041706722420708427444419653970453059394100110588226376451605683359418844985778716238332831085255194687308353592778055750584445259528550424145266810003786477539039649439546462769838155268617119048447679339492367611238135027666313308882460286121227699368034425847351037626358995544487418226062527042273972988582287376294881573629906660346563402661472507536676054772565867701015809145849268727948239273101914081076043626542299932494742703549009979490417925112097432069770477251652441616191013466844124147367718022331404009709992777610765803929013737661388948116945528257907850879551356136361273430288654998086538667322470936473293079853284840707184804983367562605533255623198140172812418311014589172213430929888074651108310635086131714397772575723429044114613203692828272450890475024558888172154933512005034956762221133860962612458340807552699024836966552501683424702024689936309573027570684776331568050397127436911045274849912609672113411092998620219385931085247118782547685377691467797199969438167872818567176555990581699893239510387985909811058387817618824209865322691194861872205601831218219576978828330680415423502115929212736852521825313010417231210924457790286196646097969828194642290088302161305324066737219477023780051485021024993287138064718362398078464583961060417987514453430848768007682176183979938089294127574510821026710495709635675486659768988038010989674285407187026426687317391336136773750481667871242052053611582486368169104367752328794236189154022514735736728070638928136173702785064509673369016053077361276723616109313733144230638646362301719160512079468257381141030083789877194787809863184751138830362680301349743959077117793067078124533588491669472561347763551877021686951011266637962092041427957724264888370999100838514419404016800503958527853137433967240568307365892845945965466937077183263470322971292630187466849547662193036450155948598451067666217233018067657933440575939182112254189842040073489903860042589024789262759544200749170064855679863010434796332569980993948499219823007225340623621316914719298974171033211544720221054770230014073359712779881390988823960161331227373462528241160905734910614088330662387097301845689438337289196489932887727167397944768364001239588750435759372110063939034346605825123845539734993449161730782640950626548060451766080664064784066467004348114616552509997973477093790174071853416683429882866570394408302939761141327790524570036595406078507327074414581275413381273485860712421556670875757886827215484310288853160064036046793511932512987225712406798368544690172681808462769947155624996393481981216776652401530821508653957257485316895845051582869105640328267273502706116000244135605443434050484252734495551298063946195181570940093228712109328553153195344384576074511129028973853016461876794463364372525084884297606547320928802070786806468912250972969806844734961493679219652934769146166820568553300374860465552284901077114113694342949450778241278916259548892621826931254415187882333111198353760787598461993553885113079971919191478724705479929968916858142672677557022169213950010583324406846017807585754831041386779560140683843351435548576193004589583473675351257854267743865960752431909060431368195674548329315955653800997668615148333543295546352031934355813175332033191933375054259918824436564385946842419960519936859001791813386272409161982012276030773176704485527454386310296141875350779881773428036046834816891797957176175922474063599486419369954358028390106028642340379773620211270285345029564678385234059440468899017513047621982477258294076564636589025077896830351728135338845771197444666460756161864609532487170175307302765784368668381205881513917793177382551121992156025951390207804064027007499541741115756932412236664808444593572834319345902399545426989831512567475721647598414928825427247826043306043073224744637261192317313145684705593958967472428826176651057886012064878724634553304005165963182779104284831433024809228353960040331480986062437596103197851688580035577904635702650769358233616011004658517037778956718040118607540554417463886593998257771398540564312560533136409293436427606549691973328571801835097046104401803288391171847364521424117505180328430026739391698240419506386507622866323585856786085218710124397214208266013570838173570517431015000568545647547114863936242374738911529381914701348761874334222977233949209444007700568309406191854123156942740547303156544993086578562976269145562619545822934881232729374652956503951933065878795118827294248900649038692551946812885235756121983402771791886241094423038284052929329996365575596007615155876948155098402745683342014450334770916954179829227525016851827497679068822389432432277290136190289178176519714968161144193172040087447359316105809271803577548839317767423981676729946215951664949263019537613264286869012213116592119367310817401830958019304927148555789419470741530566807402387414253082283015894949560242524735286155546813573255956381520500817310748725327941082582048454632937441957795003558931001735846151123166004464273078828829247508640471761107813646362682733417718442603176675134635986529867803999840888420531126837106989382687150296509102561207213124435088546585998588012288355008734158303250158723497614591847117967653595978979360271804727938408299814828782778702122176074978818520573230889270779227862416976595843714536949612806875724700806236611712653965776864613288035765729924298411752095922246383158421111964775428388452255559796606134723223443604787337768739441378358957774395269081173338680956091425685991223971156125631801294006166195456771311867819427399933152984051579425999402974519245775792419141653237512230708096667564876244303999519868300715314049600328379637961368257017194203530282878574891968658856905774573243923983193500005299697285325568398586122372427453856263936188482736963976996540077435359184909105922921258314816511480635602855863247434176157158540408322103315956168768851519275201071744249136920552952730987149542167327741915794449557789036928986408279900121796355921460810747534046569547634742442431152609666061472566738741393289553360944139915295951753582984766505326441361302036158314619142114553388145089921642409154476375054594943420282228189452699044021008286930725782068632341649744951265907780111712447826201694230615155237449667924437866749863353509221473989715537761539982455905699104984476658707041709694381494417555397770379030084148263126619586188688028200447110799042171482321563932951595351488833962225775397386612657957328041271337733249788893638743428968001521135461960616508028248361376965346293788100752177992090515720329528387587170027299249036339295621724375770865471703683834758329078326977812081145876844802569811834884778250178789791896504241675850049823148415351342179169736650672993173840531387698168627666589460868284350268096246172543196399761533341236238525759354343242646685167264881803035420892696284496404127660724855863013926847706193639804337178292675856266820640612442842866308051315929127150239254617437520647918178619560663302210373399392600366732263241519075535863809807859450206965040692808667430708760850472279749935463543168699818354384208003378403293388580371105762618509403036624037253389796909170961539035281777282669622649564058413062844056112489598505060417020550462333630204725664895897628485126354460384775759801985598736734675904401383571328119487490488408834086187905487046484218620066391638800034514586330426382245843303551042667458298649036483578295227837046690184529643569110087400365009559251540818725794134027349737247491078255379396098159378644445419558255201674303345574551565833094325859359014519654553513495335593460710868755070057088541617298357043740723078856703024858187865045558311925608885439557878496321608893620227801328549018398251698642154010866668269247658844507598768315783388035660237523642969755518040807595925091996994842342190761359865384040556857983920935971087752200706933897105218420114656209254013169416762344907532573266839178407759947485514176347659887190094077519851694862622670303781426035115494346773974326103741333209646857851962934444235701091104692438669838147066719471170053420249946911383473665717580494514668929800333312470403541394844695016893613930958208900308987197480104146410765868298083004833504504350853006645009158128614370083474465169824200441756916783012666930869445554217181335057826910306598843647517349588358401913854449790234174304541229316871066523590642542333445990167770378370788896020676050078045783767817306030362649347490241651462359252734238997384840286608463885287573915844201447824699612650754550046185164075240976145602961324476940121310135317462627849577696877714353871584392086609386509768830298819796969013478057189470503756997896141013545517322750063504563866035050678949733385320809070963231840026586806562231371867767827664287400152944522400231459290575696908896816822633996955538172553936936950774653913905447190646309858757004169936066162435058255237860279258956415707299773094700439543459308893841958410565784327817336910843118726258877803936632437909100779650326464940360789394117371137168066416702335164836160430096822296004947909397889712460619261746244713749341399557047288339811868232040874886915577750608316662666397942899934191313256305701022722007096316735801440711176016723666339473124048920988209536795909124568953699122813241174300422491768733072978698532208549389074525651337599946335121570085149203545102814233414657601787165021798067565608744283209457960121208959215424431122852030912327889551085137165201964275353190089566135934031120301823267071074272647201795383240836061098526379146374160339173306979091176941050032987259266983662744014262223472891171973997413804141098150928280358339368434913658417300278883886697040826997620910301370186015638900201563099003267703219342156064540214485774550044430983438609384970232940900500954664080644105304981083594029027438410053599613624953011092596187825247050600351081499037190638765532892164898875544689174439994601397723755412184523605509534966610122065708733317559891634649213231555882706984449644136181309567079166795321116077659487355867832817416752555785127199407889737693537351880906183028456402019867489893293379045919551311405487479466764381819517003661006776967388588182211826081908075528971342108074116671033688456889358765633130924514911166868348822134143828662456444282512905834889181546050655699511326231142899999914763466619703009124977603078812747214364769396873055259411955658341316006315707525980330849646113066182736675879618876583737564223914233161942964388872765689845809370380048279139968087283562965085447598346252310014151441723793022410966611186264038844232445723059796651715405272833954349312522988140411754121448709428416246064435358072265507607820659252470314202283196622575422580205285042891043319181212544501164427423518043334792897606545761126680289077998897402535581482633623417694705987001927222438068630740968581356671078530450957909335664708344878959571833235417137131934252860902305038118126766896415548285573121463712306127600867103661117058798520019818479309421727823455360664688223260689715981866142505250850963858411197530568548242457236861758229609767019550200582914260798157243132900961946153616161912374949379455869870073739326030889502592389547634949203620444941289585858407077065375809695604959483413728239000482818733224560248648166499251164747264694828276151307462247175562526748516738436228058037001302599056697191630392574875032874571155697060107997977462338949892251997481347845440449246613304380307499517914843267941519203592178175176126384611952259613975917147832621877839093427092158138895895128066679704129335778247073469752983831753079610823403915354028682479003724207387465402763277336831401248735929098894683631324334836807973848697963039857926739857443344500809107011612985968475124602051939624330935092704483248701013546207166347944863872776902368689440934966582760113347215491915274494483278563626924362767040237791095276538918185855014142927231749705572792445307321968026404469145245667314636756383531512632436931587138760531692863076179383970668844916626226067512301308753582502560747671459141308971673116999539047428895647055539981308569950994297864004522648860098624296598344153708479068409173975008476804027373739008838166559999846496028773108574209172911569541434918728548602377296908193024811796530393999795410186312952214456605214372071034763669231748661742123510011558779745659278728735133924911690535621989503848198893041293830107663889599495657119699180251755802425687864100835861874331271365221464990227387735441271191192070247048844099321978958441471563084867924677922535435828152534998016253926629080926865522921923527760465822966776088457400700311321255898688014854019037041163971046303394676565457857405245270498178421878214056886754913379340824558593873409302236716130918635204101442133264417827221079794821563722935873017796760282645936171191152582003874835281687138722527126574806092682069907254673893085012904143016887221142019672562551158550098079545405387304698547254150349704966905055068425355543108982790961807786341163370283945037872291283890240444589365636765839497497625330780862240656574104194960562946208209267925049204380393189968206179042792078863500617985529499812831803581698698574763917450724042726155205366351334074112540438883875433114642680002339942059472722452882639122001391604459901373014317239343638704794065642337082130975394341390762103468802035197310409511719125633022032495093080535195347535215755124823440436301035070925807339882086411631811817177943457222435881343814988589362073620932684779796095687140761206237615906202832007783944270618929580634430983188265350483804195759734067333284431990216320086862099770982037778102925621680013233721427410094202375271882988350812398599350075273870847074523875127263030753083967104774295410610180742647693143195610754561453488178224773372455864186225869511809534271979099671001761094914550150200310996281155791174115467780280638468724393372689167368791332372890362399178353336563051764860327667211116712910102701184487949929714840065830058886776455466670307271879164454014368400226360804193838005318301815184541958263973627898983535331397291083303735917866042846585508471094714473001858295950925936751478098017576412831355366022519369107999791479956903705184950771260773210559989234620527232893255688722871830419395157535984651184025476395175969213389648155531222617452478334986801459599257528938896476407281298922979534621210099143452055029037716158811524444380640568137775962878461254024791314571713784030332182489464522046461044457741062027622677417961024340963083788491158156955793171677386286617095716561008041480663811144280044206763774921108774124140568516313010125170042426938650713562033831159294365482546281163048913656355699875737316171487742865105954796839115042668045920570259463470990940736414972997939196626061765941046788263020109410615409858411880270471960048589378588607311814477849619281304383585964500110231998490543237531761347950211642212568530529666031465403014088145486417779262604277863204964622268831979123728542633006828488267149202202791143538997101343573032569720065640763359646831427241991960443553439459806270939007104952361798280539667650925079715754232680802650335598761863149145636366506518332981479391478061829704610026326910708855803225655266980443222989914862608544136709434087453591918077629412943099310973955925199993622628000472439600569611670263369152283001727018141055200545444835793308354173897023298888965476226532187675246514738129149407085432492014608244124880432056814060796592847617667855090801166735137271368164519832801392219583876460103424892492245252745636703873971866148539680252452773140349748304675264990409039148737363840024711075045398176590594525007659032813266063397220428717338251005679881604742896234285749026333713641220207517178198676503223671547932977049098975203294196750682063304399996821713109416550825810408360620489885485988389823722913141102421796522341294525010029865212142293041914714063063985185824699475425497558239350644257810575754034772007738889175230555050073456600605971142596686246923365380652104403399095638970030009458076808450007174671881148029203025684563390741257245650627025007293852023972330414226236308145303084678477663494519923001848322126844319927712740645696687086621494116227511812506919478155900652147222129281486081057591605237198156664035040782562116959436579622611607305951739568578802252671752410697708173291644369457163067500078445253089286654848809751369096046880590998713956532174423439960376660853807698194550861602064286910992961970789709915194576832335388109354750369081634110595990815331246444128088276724620928436889036282339095381670700378787814828467977882331542189642411411570461409492119113621896156924245494507685830564182638684684377585266843981871615661145122402032117323868175383786855240279013422340292203235743062709131240827576152255168049670990314561550434715739719512520587408714642714859071381110816968438632281761727365196017017419504620442452113387436875373079227683187858540259470253584980946036443030361702013086952668643956554753366176940342919853684112642294456760144975867779804629607490368718017377122418492098660777037603050348482045911271463402980325460019561683301305943906686803013306214185027157254207365914255346665633856486073822800807057677929569501755218644431953181011310988410009607635295184516773110595565877977800299307792256093865107650052995563421219883521332399348545799867985234062193692963940129362106467724762445956889644843259383255572154609865044820479419925500329965889998367965052986682775702575919336882791751247845927083706351572669966532614203745387230758143396938448997569725721223559000202764406207687334499359297559279774127529957177808818014038982750128424594881655364035686671589536896199315875684455322988959492215400318241990046570318326430325666673338669447319276951352681371231623172356246985427775419193096326337863389194808899629700892063400924841824931517214689032632940699833019797298388862331976038384314342180306628084139960364213657557760962363915339604676943677601782072289940314498649168641825491212845260962780109600513286890663225422825712686697790078559327612174317171470905890594406958999600315997469308042463370083725713746718587075767364804517768680382312339265337756787606505804029068950457895987053415973748571721242011022168310362092100629049477281211015620308689383354242758574929596236734049242074400251103569099432040695072789587730764878977870927103145572165524581818300054721852663901591676483158251673338875283361946589866666324030212089818646381930714375992159591587439304216999022979537996627564204704187120897737308195246028327450095829511655454926463497143867902039715653484902830687184308160729355077139316862919290952113677328335548335370744223227959651121486038536328581452904138905886208352634540770152225708841103572191782118141620514883589907484575406408969017934009153495609266105150663759939149147419434828523906985085234308427857413962328166485498565158182209151228120776476871418566409483294897470055507173585629445362183914500237125063344786417322545362993252000973024321145661825818831431819283343709108204415474948687015573381226747412754015035757422230697242547360290337148494229517583560227944331287688639120781764604341041795157830710741606385381905490128978098598816190284349583897386590262920487460385729671981296897383187902143656411714878194831829140173238568200160122948675079590840697799246919763353762169618493032463293031694624691072452052136770607663620200392933920059288854027479292711821969292669136441751313274784796887340291996250050373923687365858137071617670517402766315274238501987884684666541722884534518292429147369623594961912740435626847634780186610440844940245142830845681359169609187923779349023332813721436861671453374883276761672248166580121180837309083823307361139246717739194933995475950331459632009491186219111482306426556210304972650956929269015199440552100236532907742932241523542587031201140518622412301296647777621982213332244708449237592398557388146789155949456669359045561772811855244066213362191283504203878801700475041941809926893460171120805975152960576191647811122211887517429781448273621948853260157070913262895006781247778832758817558019279286868502807922654910268652144404947235289699295345594769242392475837061030587094615089892340288297104796840102343607898071584941307167592359600362093129012430788631810782936101601077841548999737164607923936804779846374014717487906122303071293521392344266417332207284368528936294259996721234749331892277655806577649362231742012846520866631488152952894100570154822336709596660384560810202693660388366831625543083585263036248497321622248798490300467346608889501813459498830428283472341595039712617315065922637334554437500362671036254169800801146277363296831804607628179693248267979355801050504996546087027109252800400257120457163901924028297257221210194230120097478750180153674028235579656439925430173377520772987941834426983771288950874635009877415652805466868310335939099882806478318107147151565749631367803769418692731516708915566178432224583541983839583425012564143421509704282767069846668630513535747820146769552834729215963596178487504889099130764428625421935775231468014216440004707673863983104058332424420559346337708980187396179282841971350752461911035224611707035532382343722040328104065354605271388278591270215863119009335957245466460237895304752891070892585035530109098391972813145060546372186560727148730794758240423511247008192569448077193667052996521205359951946165214816399747228696466978798183187459475013879922680543539071703746877554282198982843208626334470515306284502988060006595571368601971672895902669128996588295552722271014397337705380199615248709841532622819272925451867820115798517779713301403535537873994949138979743592699381499142817581985108109815004773703319547657451325651926219028179977204611315993084281166033407764322500322153047635826485665915419273057068266992863801827408181864161283859825640562430030287565109060667050244594944067560121222209474483732698251445282972241414716777849993280785397053426813975136820722774018121532340572011193766572766505869270547289957817331929338538421184959831155070493462790614130664299416067365962033436958281416205892761968561725520860811185288418413913619356835670912475775651416823297441702709913132972429213633863440060294995872948619591764719311543560005488211841604147344446692751827478968024488449143350961980645330954500218078237500078915287921219856692969790169172484032656940029870366134879137664634166393627688027817801280629913278394317326815408353463320832927897996105141874639662911000301693236915081181733736949244073553665233000946229792567462331355057383640177087526066937615807224836252886819247010327514596095763267617614199866942398331497371373307103168103794672053748131902660265230432103678270811251197776768452751737510093383313540713377249669111037732651269735356433848389099060351972102025641711476679496096337793741051020916438295936205143627262322829173223390194027025620402317919025877864660042569251319931487498456851734067237735903642748864948132005558685432672948529507086723331985847146882428950210628306257520132199583492578829141582578578826557926153665248311138145359623333977880097138988048759778001675854230411827267835965113565088850178121999713655447688043681944908808644964774012606498776664154433775105448994692807828370908678517308426601528499258428969339462732758165758188143291408814473557017885462467709633857874967692131348904219056618633707891354069116267475405604451612435400373688655162234662288196657508621173983476560627668485679079115578597343493584392039251590259905986151144256676027538577211782233299897843690449881676949581333156549694652417999497371308498003529863821318316098362034718431274934423798908422539583020338484062587280710656225122035674300531994232077401694455823365225990827258192797736931439999058196270009651985469992369695191153850664703223737079792697387637047963959832766614533414733709274657766998519380226850713630376571713108848606191739058288444412883700954308609485263373022824135002931265454368729303448156559437540605342439763410405240835435993441693893131350764682462111630291500409976187232264515618152649830686628456143052512742970440692939282377748421122402454458443437311491153970915402942341301089133625872967839045174649116107452039191336967383832387154494293603079954458441427135030476842753775702637455368692211200843312532259234692315853116546554355074101076971229562212195953819114819592858873515502133086985614065982300515167156266230953609559517030257550122704049838719347265307952894404609890897222832693135712784795805566687135622338596790623314690205930029105950436052436256367310126152425033879164824475550409646416219918455385419852104009891734749039825896687201382167038687237172845280396247300394698961884654168183773252972579413563653111595337295290626658380021066386541341702544244289739219928025356397975578090371393170454006343226885584681536771726162018994263890277104303830596322547498088237038139681645953847385595088005738224809628056746469545912595746355043584688570764491542193985609617312552671507566032198063539716437144129716230372979813862100064608568182466912836991855350289161362605253167876558852378200663842572563951422470434599497149374268456262440151515617286804876994596084172390548876019178524967801408650944018410897690889863393530249216753679647135746953353676299201406145499496739014860921808665829774366980735744983859568819839943672839444929930151488909276013637345267888011787693218682776810135591278812366038087131432993845028635316485887495286701724031634259717891363321796628049439079704879759481965138495719917985786068827060469892058131475583181457775816034306053966817837050391310925278707566075009031486363966380837023332581520197883174170693258251947458046486738762744096080735219609621179748120848912533946171162384099746173471782113542296734158372930598742905334697689435705591945783224552873430076135409426158655094961069872569792637432026827141139300065621118110310230347143261227879954165341020262045050376507376327219216465851940711459206632004913595503066511248907554124104802833530952311752136846921074204453060078943214397550648435807374143672497931446420702560663763407657983631105877194841103776493551615560868218447658952853177852705367943662976451958325949298074253491617893161573675029284782578933432013817643701457218007626618642623531768151735759155868818016052761696974612203006860238207837188266863457279765323525794700215335382280333382502376523256175287725729972605174473438216147031514770388060946242658232827727634305117899871377332717566537389646755511213301756712354085108005703793332372551380171335101038554609829324576880170479674349582233974654092666026165022492106399016660367862155286177941161005519028112493630813300492950723700468852204825979752319489792975406790876828095357164814120256404822464009572747020576129395605464267716295084196719931359460349270638402564539867502052326026104654820333632994069356264022372241411131455466461482341922169915730309081813866746181487193089728200795715717858449216967163695126241890693738456981479486713111291989052924095808273452394106942334283984007916853613996463156728323579756240708388869470286075057656697630456543725383903609047870895994837338241456560133125935864703766462533972700372018117059495148354570935735122416120383211289017311312397141551051818888630727158586383899046646364391079685633399449653061978452843708274043346307423583767369699232743723767560182473461794001224667000718043689559144141779654812737612309721417761772427894103772579809800440673735927605277971114159003505414587074277387692425436698204431707736434570627266652687346572450609135585930194743525048658723973504976992304231987353156548957152407151345294062292403080545331394946203160294047821757090033298227889672066369876880222280739641643559755046345840304125170510501068073523555265078627114769229450247430008578810929308197773672865680680075148661346003060704304652526256202993853454998419826241359605651472613313404070212487857655106492741504453484996367815640106096677435358069304344347131767918935952176591447589039788791391429450884903260791478050573457716010820625842158540892983593645898616965615554374125819682353881847218469891606312206134384680271295533677765108575388096775306602555282026009458479731233853927684008372771044360553324027513167454110175149961492410298943218374787846069579869965853173421775033878477569954418697915966511541289639309126880627634063654378865536522819970331020828845305304643204167130855036135450613656682413384995749188949884373270612579916863868523105761112132358290836061069606146033561923118503503132171409467095444475857698150196460092063792075767169187089523375722909191698068781350355701088561162045611299828263909218332766802133172248132549164743587158890838328678684949363904771898886807142072597460393406740089962518368810820123947607700515334779517296750654257799766596916270590828321868014279579478735422836940422029426454913849277645745335725303303526763785761637484453951511344133908437286933520627052960909528114681670733125224525521238615913102840763813073035259713854146936567754054049955343990665887265232985829935671233478697176670340858888382645604449608575098254045896429165051979356364031158430796322459513604456029002201667270486164461482595715130669468103260763749673998195988506993869967924016277227997424326472269702897595036565121210345813844906436989001527848441280632132328499315112278877965606242999491308172742825716559329475585893098973725944502781012671316767301792931578354862766839982721165028601483520567370730841733248229022538801808217476134905110456385662503363250345346174458029556858769627712749633897302520088963449393182943507421070021499859157693649957709344885904257402323073827924288735303077936668857616385787930567235883150280810691753213164885123252127777844906209870885387902351523850000919063459907040024930126004452910099342321321700748687758787602429707076224802470735605868466136139817353005728794796878903082506474177552379122468965375726488014520057643236084517029298417331910713846668184208227878354396797348316779573319553930326506956425085444038015775148627705429677500964058503680307955083371473886233799611469427233598683614191757321109545790700431835369357068434392282666534726442423359595570100058238937575897550670579174073533758279791363084738933341887037510928147064752113617076252137723843086497963202860793655818531585586633846939675103232203377995775403565814306875715225244152947197564620070183993067466911039293558239328340404692326513988111278464222137248758555104502262254077834468836807358994405923932765206289379075959627849706498571727051509880197196878332837792656513576190769295911589123306443471808604391980047756116138219105634329128221550454130852355483423133295297873850599142773253705008233280425587525144892736018073114646488884898494367363666586679164962336668551740959936894474707110595073358920314242240741044892110667682440814703703309821026614912616981140794021261401237381932344935805371465317078302431592081394445804696117955113860270821280921902151655798574416129639894618170526729170917223083469730213093647324277452916401757970225809918132250002776218663505496835583904442389356590944619078269097960852713823096283025124410199237685879046205915178208149963203620048344887048345705285574229843766469129295115088276944582342905676277679258504843240535780118103490719556822110051154299301940799263118679332397747815271781564230375298998451910691411299896969820209181118161240596334855203445943796751332310317308788129042651023161023133270312075242508218541012512241244271918592656503723595669490278649000031155907277682971430405665461418157245775065441985461822245572612042828072796636166768135379047423433229007652172991454076508189119967826715588578764892363482753258926150294430957470322535220787883339467328725024404833075276340334587009846102319186227171715645283294605381952359321247956186643231039459274991858285037537050850937828133077131646169844466317679925506262562151606994803534992224796365758586208256708530695540285502491646829984797132659947110330260192390475759448226934532229509428965187228209608414351502286377960388790442759968271035024629712389155957940432325479411674583150616670643732175217986484674942858207811233477495837326981985710001327582960269200026878135338111415667441241566917135991709350390184407728219474356126264526604166369478456982854433517218274631493856539923210738586673008559372793466507646953590271912225801749416419187109531430371030324325353180702347860666465484918062898980427569037108658214698802846368107941300821714168136324357277314703507881294586989798014443427132971755282377035456785257558257595462152514965776114774038635327058091484314748231843112588143187909996811511568161712231825151811302586784564147868893153376418306002417493704771696858352867815230239864520649051276515250723692291396921650793430090351137039431847170425856577524870654479941962718759536961634309925887488517383092354790143023968900948454819329626332995555105042498189731889838453229045179298137698293043063951735616158590450198894090000544355692438505432049426234343940440617264042245900046968670773039650896475953069701558514485143020423347344657026787368363377509717689599406443201371237924787055516499115165898293787852760070445223368851185561052569160321749874088111335198204245607463759460420902183096009025228134497215524221471865218473080842153102374384913831133039709130985798895753207326655509060032363096643788370318151351005748105276654256608023366746579129117834665788083373654768896161707223480936022053275824929572877044442565662306659670166888324558401112276595903599844444348907287498405938091181002324580172257861815880785166701523060605167962291353492934942364419826895502077662026859444432409558461839516275068567399628692849465933029365049777692609085557605901355484800866648972346697512819842209054452230891930349355020064644603926450566015100290294399762146533790070766699361719307693059270171854466595121938572263366406951080750752254772870578590782830596538644906468052141641498166553899154348075126425864712396982732795828879696079629440681579570461039428416504177364828723207050622224004173509023790684886196610395702395022024834494088042887637476740022899160953141822623142084237889889180896140740202043655240680983116612514038130803060354702124463016160965894018740804025104268459883525276065700021775637181584799293370400982455150131616714629764408937520227730198452142676496619433220783141624061051319435429574040122094447152770475249927187111741552645271171862326044617414876194241001703569771328410876960794787962766302964849387802921286199349745501621596780973200335862398464728504591741975495391187417089054543114908964770079427184400905817567712267932280865219441207127367857364729764196120904441129584455244543949333803196709377760588767255508615446180144108114695102649041995797695104179313307515506006443183648887703272139946146483216440061706803286224937867747220736367300545550785574058108557626892703198670120815289111099676684181154928258323478412265547922918802174158084575151558185958283927792416156284918963278580904330816103810307409600194673934428963505595275053940789560439532816393543812938221529790177452706660696170163693428855005644781233945396464301607317902420149872970593339381336928741376207553613794607251293157508178079393064439133355647867045210737087711642329123861512056803356455216314204741862794072542718334520654622368328544625930394099146489420791226126827327583242211364940186033409425748734255108611951895012002935947097596141197596448190092025359667198250134068362330552606284399811193273199726949608146582458073960704251970650917091563949175140031859843194509014110560420428333276991918551531882164670132477127765119577997214180212985352532962422624419468033921803250295268522107860644563736825759319763094909781347443942319268490909055159170849848913296011580234352383154521406150295189200344594909880320527751577856696657860007457627794467310316724313041152181814188111244769398799866317057095942469181437716660618830837794720837510779070964968734439771676736195107904738346070525146221329131100758429885900776808168571265459189640706476067757629755336888178634619081010239872370042009637269397378464035339137855004375391623614935441589224200411524604850962714384489923358592442316535485137787836773431580963632514728985423748709364514734011380999401931622546812057656523480873495698166330301076343090539001728362511393615627779041874868752084590251088348534482620204208327483152586135658647446602378940592187952520061797283343950322711395242555846245587085822632465598340673581277790661906045781591683650106465710365185227832623400154301218039683496754189624794096778813388916606950496736300422041901639396112924320693016382216532963117500721459499336343728492576554923084264042334058386020094035123510777316404912866206012140757228387594573111015901985275508090559105268634343504389304467763442416691190300544766161774537188060971389572112774724103641349548963388085658623828145410259481611575026781257679237817174404309155355253481342193476744837607260146529758037321858931051153083491420965491645078072882739714362631740371088224965820396141400142484507479575208321664084807034180411082937786314997153313888583924655916205632271940467491604974959276096435949067748251499632413100425287637703574224716508628801468873086593662762134039873722609454465024314803584622987190034420581684853314668010391429029587970934466369814254862349948768597112487687833374929918193581658751723029801712045388142636812506586095660102343166359053683682588268559966838438981700366885940258966123279477430514307103389794943563537722046480489654535323059846101762689421882971335321237818106223357196834424770865122617196293488789178080972415033714494377396126188009009594056866879295340969982706090852677513340847747254114375561586794391082932023865376738584185778578243100662483286239874220729721114231486636075790448119978756870033682539050115972391578500151805722639325868660566306172805760887527673026856551551875209413617757121419299654560653696952118767890692728459977460368330934603417549890987239056176200795147157674723495066473210578047635404088334859670380909497228959222341667418458777727852500240437116082781410777362264127467350669980637755424382015151688404410828573836560485422800699374699130241571829888989449941812521426433499386150329000952163902018553149689577371279437230665750352968990307134290558875763886131233571957747234825914304471877250474348278768372376851231050038929727007755341133745686378490068557299084884966908823494086146911602274781872960635416774321049302598101945861213652994398778053928717320301409069908521603299299212520620791623138948719309963971657862859160587366154623332342802874449560334599475602226464302422517023521989109402221886671483419783855983329630060280831698552091816829441935345627753675759013959997641290611072306718943557440310272636056412559200601341737231255386403329646607820944102678293854926080782557470607339661951803963100841394444850346957014393510323912576216425346968335299172567428724999650276693624685143830838255722882928540002370704594784437713889225203160452581568037811808682849156597303041749255389103060702103391238097003357506800903262309527831515123924793748869718873620914184823632469067474331602421945817146978695908288429082197019242556955395528984231173485743948633424552819670062070295646759417649149184292939107133075836314408071266515803173823414889542747095668594686794754184857092902031943130518216596445901484436767307091092748360022539211636962462000055541002987701813970303211204274222584099197485259786777231771576054529018960149974987703360492492778074344978134608672639606356501253871425932415008236628301931983659180524043345656215811629236346462023034233407400229043358734633347950488927550762355293457180586571017701604913890329844076863631627969912386993810050952952727899869491865371287063079692673627663148898583385905813615841335885882091288816259905335612261252720311520701581448246970741158488944280332481185783395017596294914112767636345319917859387633319750870804244561514968304833231823469533457080546633329805936731742444124227572365252677466770596726200347760066018118937479582342951790507274364814320454110351029546035015104814757522240707309970204320872268768112835919136820771757487421003039284470877633443443989219670030378616405894455411916748969390632889747186370232608359065408199355402508074823159981710700376539584712861995939520692419797273434710210506925815124048564266729335066664743579134732187837490807613614803244149530056826116490968954646878266610071158343452870694818401273738745639617791840982481542060739027709929445950713062305956065167307182012932717404735707506172440467356364136543894748510693700168144962315289046510996838107128940814945987094153727522451430192425296962800402435614198699245417502263092083043712732690852472698642399757359625560978604280413868706359198336611683106514023673606620463674021235599143503635140708809275754587498550325113616134261048067679987264747904192651508548844007716297068813498977681295630991871469384573219570495562189517355261321686074429045298094631709874101731832097336073445509446887282673361099222333914650830982181345220360706975780454804940668527986117882523577543401969190127740573501945228609969590270370242523504901067688802400717377219392707991470038436991692460148350877495973133168852855918150616466809078974330196591637344813081476906742324142522736659950057177832793137438423205471688945108050582853496636230381470170279058546589633201515337849204406525098089982061498483911312170047757423243168336257797634137712466653217270349816668025109979384230776873839410957177302514715435727765921858347473206695060754549919806284760473776701033760487025942579162277876188675753554664973736713219532279931625538672087352305742859273188402748715255282551061693152861988287354805309356031630729537341424425724261253459082657542262088882144170420226043872045551996212018548788725913655887300718889538012263460084539567099690664222128660562492652124344050652777250770015579084251846197901018898528877996587529175110636538542003314263267701833905868570767925062479349836548166895622041387489487403561982566586264320773429265444511988510954075343493860456049837495158823267385836227982062366766484248821273364584717078895948231094672084061389870106365251900100017796789874888165021323397456472611621595213213543615053438498463754914683364919734282146957772822945415389393639384280654031654230244801289937253344763355755512035113314310625004199281674805216094722570466720857765698411624428331046548739812805964033193272192812674923678969980419422194614898705276669445812525708261862111976014750201308149101107244428674620582419500343617930034893429462789491620486218912321258310845973551406495128872078259814451559921292828048311082418358617123065396854948090028359100115458604352230065044984644381188908020871600461740384096022429943972275690711980861657025358110084169403745445474986264352656189745634651544490176325268761068707432260468310338516006489553249046762534079746386858021837558495949553609842089913045554167137941462546321709041431539639823151639132093557529559167501792703645801335162573501174939781614855659541557614846761855145693768051999717825436683610135940885746829142958052040539806816381610867959261180076917674970568448384909966721895388944243160376310699764685778166761104693501906765967820990898849807746402852951155509077707307869809546621983812829703902015247457844057779487103341903951420550589745266545160830985463345630468457128306194921130733301822271873339708023794161926897736298287679963314895348746120608655086673384831856298491340038802147915117656671519339459885450201071095514453658267621577731310735796422543273476256017966315391060938108710807180223971950912310878544962038483810566400873000642623857552268262495952398513864518012103549414305998049868104782916478369344684293944425933104745829650322199840147452044302006417492272821943347083039352372081753948531701499007746724251853693235488621225610711479410508773639805840292831705009112147206171039149132120954916794406086375260447415409660342584935831641598594847047575392531320296534891541932329817680605425806708920574048197778029206490761459909652404762104750955718902173080476320729324575123879659550514956621482395138856941797282450302868823585969328753331325575062459478470956960888611162215154537150969369418258966600686422735319549009425179171433491655278549061012105815625863026989293598533273252754731517688974026063687526951703812139856843596006722186069680329472529320714769067532163274180300662412275563530515375973471674342609306947619312032188477343214867133025229252081320689787978759859916618579294392500685375710464891130369125428312950632089660952403813492863757028884476563279811966252765272624663453287431169494165250567152219099848354981390892208820341433939638361728150541553115402756479016839356257434441705055193645674192319372118537443786500232871990273549837909999835225189727369267811873412279969692465150914188784195522051023146705636863657799887964913712065570603177328706244635344892644279500063668327084599426836150928103020906356595642994095221507526519927072379256819424573696503048658755792713181967537916500438238739975830543009293571285835250964275054744293418830699545079678093727698093701406544309605205285985788020265698552305445671531311409275158804889642781260999330946266815352287824308060133296292813164005709620687754309940332838527997175909457200410005654395065812080991815457633779386236857671443628824385389077185610672917330188861901707920334043331111003613677718488299980538415311522332670412422772237421994602115568403501441057637415402443123851686295870465593999711996005030344459448083270035083426153350845473993880559905144348442315826094431544174593380303110407192124414835777291956964083270263497711491391742291384281959164147438112666740915812404867813124597752312854641210400192821870744104066174288307569178335268960455213554555266006847832561616702226652201746018007264157899451508494291907900813957829138010234930501164684748804982158858697130779083130190790068470757984098717760471001857508953543644242430727435341034612758576750838384139437379412887929970867118252162523954144128290960313199118658487642933844889259894885414408530243445423979599273331768854575882347969700015776617037559820475025431405533031888787348262367805823751897344018917246350954553111570991587402533286535850712777356551750703729026835381373802352500642367939607938789916269615641265093506709450866324003226588133649021036402669278106631875141273639585671127008992788743573704208437129700309719565545359364350893213895908661247551122386580137120167365882369120182991911640820410469103895283008407257184799182717414375249379542597830399868892455366150592216595234038120937101131460996078267134000384495913866010374192850497952834584104090255164844639683131700099354336296561562460209122486904736153694093338727560437320469094169708442882597337871194674199071855274592007982083819935327157134413378680452979445058390860686754040039643886974990922727715235008162742513019937076294540365292183497750066827685657821432758145283422651409152472427894368709917115447049143316092656815892473893187807663860949898104374538969863019516005039367432482465897875585279433937970497474279404861900029863310100956647029180844330512535730025486257952829627116310262775111770362546911632764349153731490210019758238866959160221207103226687347310985638621096345600414724303339462652647434085036724791084491452141864059855730684285784455654211794208673296228754630087384292640731169271253691424406307507696653851491609193798316320688556085790998813713431444892974758294771750392028322771146784825703750154864638230910874063158663412397729734976790189289535156184832352620346277481753275897313978490674000349264293278532485724191432810834834804012187668792943502027853294529610474040544255120390767836875243048386071589627927130027510039133913911345507960957541457124174659531250031730550472364038327200629005483974368818898959662019288745710533478073682409481966443913660124723179766346712585107232530272436490377740914593473857099208046112644436960290433422444705303851572864668509331340463815416590430594156037677758666866372882411985397391894498172842259346522673309090371534291719243982808528742221821368721311747257781641515868036065406598015259622044064173082983815319538559849649104096217071357447349863163212619832730898801346287638950140657139309880223588068850374002973082998355955096449841418756840449876718714574348864163757623820893083345339303479524039531542645494905990756249924083419506432088965057970313013786874311609302722736024196634969176781074831272744413936916303324055738500621742667608073377112758089574378315743487565439975561150891957926429368761984949166215128922052963197651176349589202215283547989947740263925411788053461492952050987265789152985526668037572255773437239269577262875239546810163992301242862954595660098338629372459441156696640506127195010766445248592479607012785030956251657573448221445861296365747214782792474837798152246953725880899106716748708181495647460835270924141233041961220112860876616400137909624047820424842863789314521541771855858615107848522459495516842843607471742499975292830456003308513815134305801793198059010981378022360987832485382186445821477518220141755340260282353345059686753631919081365753649166573300368610792500863750737184186870636191701918661268367474208221332817060430525342541604627707360073742344957951851659552786440508290932835327349349536058978219899858374071949364606299109286002330186723570008756631483046300931278108144104731127962053099629109199128150660068471480149090510205021826072188346650819037003353968991673895392972344493104228741414219749651264507546024755594901879862066767919193272279526165950324441635710510924380860787336403137835976894636915074036945636804667189444836584314075930307709820430034638344983094224863777730357781046331364677850147175554003182129323339004340708166549990391326122336425426262925186056723348471339969245444425429419391962150505772553354767428979549276877623076218865975831546226438934907006762655454434075121716846645883550998483808306512609330730155086844243585671937923666051779432616258153973739223959418184886508342154464606883315790871482140497756635467762222855343943311521094770436542556038058953888616520419052459218784956074254597254051036354073990225439422840943144356224262302409950305003987905087062048197793035401038731604859659214482494061927162451485979550340524392498611216719142581416721654992190598121201511743749613063072337444072406804140024864370553943111012202043914424690027684865672385568226564870517752428362786763002108208167801669092146886252487890810591614804723215579593081643040865782053727259193020076432986059014092978237479666153248083796031272774002808260282846521987300006101465937284808263327760715316058980018578592246106669004163020157555284722805293941259745158008136116295416869129906573285315342404301300470902023987919582662167619270090439730622989257291619065637651120094493389409076577757540282892401244189367898371195356571502539848247905812278085319202710590986780921814612379534016168213879740052156664437122711628504229048390004765461223924564707779235536716512657761259097513721046635237515588096060739703917275613496053477964491413657586134984103262206061268372195538261202062188550358914386844918115255982997840864862244047602794942143451284273765303161912517278128766487807388914467802406844678586806713965212202413290827554135689787561859156890594640199095248955974001483292678681688668327938825337697604720139155060901852188720862749121264560395131779238733774235294588283280791413287972946472575982595297787793150277332645411623391355003032918592589322547738498081225055941849704675997639100087445270624181495146191407276715041193741012370077819889893163495193305089596352299159352374697332632641731120611446150265732989257204489874928253847895357058308131096556993306302933103675327122663681226464749566720819925639816188601616238479280536087611993748462428482454289027118178117596651478028124473674141351650593535091183615389402223109226826867030142578905765158881219461837937799857006407062206429783610327159161034575060925442428213933214751904165512099532225503075854874205556976463352439098666066356572100529337968769454822609019245118952820404487901985790679380452383296377236082806907986940328629402492129862117806550790652011530314997595344235021884267902096342448838423157068750100423823150899543282389813861461605668046149645963394372765468377864312876820848220902721243161249120377909040711039158951199340249704030232475941168828674160716566957480699351618453645729421889428771852354234636798333831205480605512073275277445613112451175028782718501861508364814206059320582847115422455946334950931974404715233124685398549506754568576355561673868627964174328386711943186767678709222426125903510320563820509197170299965416960604612653150665705289008370406208239471589413734227907886588193059175862331077041276321860586162211946958941855057801803990383609555581510576395985686336032300440338702462513352522799822695704713853711861374869933600057651662028114762374327334909398242320820599693452928766602370603066088646965556219556748711548270994282853772352871145883619564996716619970740625974917271478386673723473744818621268496014104394899811014596508088151693746183644514637416495808539083382821889024357563548698957001532704210456796805258035240948168280433512065012993807672630511834336431898423546823433126921110852248519015923430284225286030822166252856944007893796639994281567027365268677857103259422140530571552872511986828081641426011662612006301619427969217815333851606173418783000563908435199038691405645846169680915348486794144434623370918965224029558030277190684094485215304954514788133458704799866071196582966257712174610165712732097938353265615421510944171012758890663361834571268470932944994992645174941314744461463188008398210117807285911032237035036490089083375072000737078913422518100334118697606622920206140769636455698473356408550869861806125071275568160662945690673597306417906639113540182885000401350659962695368146753429949623639136862386200077255357911745686652881744623582063295124508583864173870913134739889054699828044484594922467997222539898213106693903386303995972877469103647099944121119105479626300443271487371232055316011314517100216412537592794560782985968324270149550577718202980708388724080338680071524005321910244103412694969831490612395892086416296526197930079168404101569976849598299011866281135716655906173299764639731716742184704670848984734778500442033609293096610474052382538076625509763779595995151204802123783980561395551794382395289728428665985939398579464379198744607750780600264893939433509714738889426987843667581592895043848832506816164545478596486015852416671924898816343273635183730364100699547292373601920278690480589017322447558960928578182253118739713649798495671862384396580597890461874590851512348094432731881626308586256600217660607142932583120111265227281771038629045316154921629776577981326735636820304668469112297993158474221088491380372931830459368651341671016576392905074686430802325520954284301686392532081573036154754654333269085054253888618451508209465569569738416111412840019855388726731395913812627301592870033997621567311420216748031819962596684293758879573133937585054757255633187245368093243853418661964462703390377461482567328068743305105297437225111952326021804953140298196664862537204302898030324643740318182491595587570896615630640229319466971317838124088665834422528978869079464953872777563743632519019008712055995851468692814958393887783232005163686316450661795881618822072610374800919168072985126378133236577043947799684954392312729272012419822063376053159926404118275182545134678867470563125695544460547174647893134893174679474519942881284054102750256069522667889182479610033429618256706740149554468804775854451319700823102268614139777939424026422346964995283884665498467056062135171165728944780109332897042381795656727764564894589615106014161118606052286761443078835617523717002285219517429220487694219605708289993605539371256255056279011437975340956995812406950034462429491572457090577618839384468385926841787559794764702750585710761903877220883654287889755139353275572367440839774154398752329616991349796547395225287776504859466815699464871959761878508696651414831708980215242795902034761722514439254655366056930494129798197393569229529402539238930367798866400927619734233980320283885061072189226635226733554432436782017368132308822444793827064887410990838553771351298181053842197617772516704447113981146650803275541009186334243613391232240072499846289049815570100743546265292373702816291605610615633887310608251219482426893211469654786174748412687924491793592061921336028491478652372157066547928270641002426095899058157559653816069648893166714435162140799569362829604264579151882092069075698708173515447243510234902149392493927156709229242448221440275213790057897532832904053571778066684318376525008209963787747692288862896638553126762540962655097557244475620816067269290580475693489123538434979948848357596164120982658844125288805742856030120820032705553094400727042189348137010448152681900315482966258120044207599828103269844901105717157449781575702954008019861521323004038484410803212968719822725432737030375184690570468808272362556706169707034435068519035670822509153869715987557202456321713204810568038887333367373567530207858383316921329849420498290839226704743807373934859798408262945672973356853682654572982642548866157652872380796582112681463824311734502482502213802351908015582374058405250443566190572784413452661023348421283840244037339346847729922826729560834958171881744238499083826942953346660060650171558757968333381011063380712668787154720096400890512781052350046483106997722646843584742637093226973170240644012525948382910449300492299715936738004877800541991109915576839544364665674613278516590257780403766785819854357440457262546038213363197067911211708734280226305340501546124168200280485606158886621394469675198555298401215035502877798998291176542645654404697738723184447911367109325053788841212801832727764073203815977061281359875538293978734871581627630114313050349270041282268047771171447487530650828231027222818874837240144057058736552361026114276914466956877271554832519706282313164576207969064268201884668009547325808813366102288662915629085999887787764366497382814103916648918335607175661586514650158552741783687579336659373885149980598101840988289424076068963293645788299760346651755364202515878773097156487654474170172769393993781014441074565567417431601148543855772829685695604482308094171069427560435249318406641773549981958088453152967142419518042862895436817547385448033166040773091744490341070726784616217283856297341108697479080959814875529287515251919094347425075009360196577221269371354715181042746402009142872247814800790501706411597420142428663177560681870908562787564630907162951468530617917193877688877482586891131868414651122647675679483782013672357832292003522549460368779370028075734153411958994083174893181179547208140531051852677507804831445905278267713186115559585723515424985200687966511161477334136283093316901233425321633315973653025248529888030505131766727477040130431052385872871755057483389328627060171760063040028053035826902833896649020704310467014200198897999161189312913262612523037528931397269614790889755763735726274117150080772893512254550985746716835537371089546650969980521542845384443237382574697880106367123924178075664761253210523993025705054523794671617514512143173740294220279989747940638827190881364552312152760359509535563920929157332200662148490145222341145684077230657921067702279801029877563708956685111116775814384977175920639689138185408447670325575907556446355151393789678548471137092905272045104609244437395546247865633769048105113017392928263337522902577274953804940356638558294366658946569620518910591823291901700335112611813099165834645014519357096917215076130009442748980979606420171000675278472477536134509355378545429569283713166482744517969274821890995361695115435144330757353510582725732863276698744293443216191428308639241760259926526486498402672770302067016519839607019548256307598603719054560038611128864099757542910247978009867707684814869767809964899118846535861244695242667351017706652770386592851596852345355223157327381510391239633272571255829258135759038054678796582213783586315640894039097660142726630992793145736572591119934030967367369049656229186629276738575304658275961578545034183015540563739617517343088628805436453029626447914786618443905486065648089609134049624907565096360824949464634591795832115416607750961728096665124359028411437433464457367736272852567632245367539564399274838578726389765774509481738763023068151711215584142112329010989451428007142619893405643794054884526217162020562226428324041389045004015183843440414641685033842976568912141511767089032010513872999227031119579870343105656036464196619073527797689570079990694087204401113448375415463005442077338616464324370047538736907250266449461075491961206730998185241652899578416373486768205275295688206650608327026594461926875935332580267149224132588641087711237147626261738668778648271204727284930191488292539404839049521029751560777181669544418388421392361545940108395618908036282546508222932072554647604521439486841398615772082335069847964322199139293836465612308796481704341771975440750859234085508794376286457655842051564591512375041136261985634581899510212053583252416591236843999899676256398293183536891780802476927402443923769000012378683891252293449599769733754171805774421018525129392188394615209814252635425537319892393619437811599855758405598137114804376194140996552538350241518320013660020503664044738732932246431296855059426004929297274329599162392100582003232923344263470860066849231072156118909469247853906486427440434083429200598701374672547874978540515946581602036442185713078532208672332228932338910863457431866731549452619457196438876092912955200761928954126977600174362241935123244278033591690027236402370089877548725291803672926248365828939024844427460988204626581292710428255823505804046404379734181088445948345435351885824055100396203443206919689542070153880186211301860833684208821676047342521503284845556893827658066483825037273022594563789177365979054363077469964380991384425997555602962932806140962836966319362248723212322431593273618448345477240908709405724235451686432403937703082150958200296797791362773285524347201874884381485586693303968627543441327505270968322063276806492797733610785184125303612100926211608210997391920636910732288346406628292031608952428477486202714230529792427923875489288642444693367901747811838720550733154687216506255043536649873033651946724052255434761448883215726233685129257876161826366498617992695674682796459491519025439790798035681505631522930720695502843969236133847206679166222452150612317905560488418805241746453701767193085078875225671889843643736955229019994405775062624053836046208284995379976070063441588382438790970905496971825329658421018650382757363752842986473660930773445112352023740389771029224605111321002672417627745992280819524577365040964020022354428504052118290118632175110077369606814613785445831760990795099563411705504594652609979292254992457365532000138363283319572689010056669842497935574202163575390147310793911397738321131257976028727297269179454745759064512048054252754305088827864208455256823356246708594972460045395222339006998216789306289506129487681337645223828488868112405022464661833363508836252307823471728775873296544604469971693857749372034871784689454648288684554133205581407023842385495759051745942914516403854459708353438030841025531373191522836441482781661136523327704916888944564334404923104816537750027762447902243505936207147902446413107084188268319900521194553564202115297205866701788106753703476420687710269464893088947447881395557648000530200212976964986631978617092521699532008723293390329627995770782914863700911506971957694572956390422085773813022044923488124754107201454293902855544369563330873295987523955554310135358903231856428597169772554833951692793325454805848761252501569950048554035875590114940034031039406393647952831276429173147178877403178229697853193062777116145810001405614688401615702848793955985572665233165250110219233260785311066987734345106603184507114626716102785647075169563631881957435531146876426412718018453469981543821765574202196454509174485911703744569903133562703074711001767180154534383900036443108557077405016666800193861357214643606491747912473045648912152339660397521829474533281333077687378691038596512779093187683014238238378192532436055669570373578825225758393413818510908734361773028800686658584078618548188781626636737120920199781394201985288537479764136430857493749470494880717982593989105177247101014718340413737163160118213915118842832708030073512138915124448500237769278510346715739197866768145425441362101853223337590473167224768721269340430389305084098169856111654451324566358828734262829478203653854815458396226117446696353385087143022023853225602215740009421117836983783369630088427319486866737707317362712252089385814903359099851091414861515250682263651705512130298906853839755891306157079356718151440577541537799177354619862525168863416313805164722231744779575483898850633977086077788398829486080713597461634953926491597605418763411475258535655554487660201213096999688944172598503470321205807897467956662526173634492913631880950387980929563676791576913204015109315298633920582315793884275724604235362882632699712404408230270222684105497845224009048138567067181334744940416284876798427785852924740056738101452782878535708289967269105342545647754331605155204009900815971181608816605942233477355998024686102565596131905453022918329078382152733943713446359182755829406238550546171810063779378868242764022431747369295408808669560966274971227203742060614647521782264126247648324861041615326082258358855543636959392472917460881497240479522170104720178982804091784527513769387733774613902380320607299063481087216513799798142893633884330923842810687910352326046878133111845792369319240492969616464632068672036472935937433906526318931368445415128471702245335594530292596001612237515745894366240446215249552821883309581025901077420117432486343153828641514788461411692858703938403861882564068084422327396253230632292661651466711726701425199810907012559370207052160796656763342956013872098884196730233431619064927877811581388744490478017208677889282747059899419835491391538979980006082385206472821097730566622765151345548801428474734974251941539571725495853004463550823158190798433204631682836240352040547849244881217039040306744765464356970480331285304314898346639747507833771706706136622796929728791207400811763447089773727043022398294273035416469744182626742174861275571998744664876269748622035804653001389159008042523108672274206945892906904855869808203439981754600303496591587140100058713526013168420993533368462650421309699494750599388849484901028791136487877969530275519374129895001998342884876851799807680420920559475005417315084667752005180169309511071399772021545624629580765269450232581661605449994686236920913204453189428539666544335590367295318288989062011545278378057419378836152436092160850250543003708225947165213309681845027091861516192845013482646674860785843465323309826333112146581240292324010492614704862170677276286537001130890822687275303053563270119770665479427218462685004649429764268565859159884486302655238974845907840345220383337319357558018496567111186694647364177700154054116532161315967189970245508532906482827627934797720166488476940875506697814013328341818137632565517578701233531663816011984524614114346051817541708101426768835746541858659326131654456078681556400812143238617908261067201996717183778882494208653895417059861120661043313070978055913142797030670349357358437075007505419734416578786694406862962057299084444696546534675151132628024935874895134119220823114237731629750124871579951403824389237808296068793584006345896209389672011069522398549812810875031503469836828612863282447613668623133594007821632679609511322765348644502530969978766117412023799968681263397312198357638438854517633815915560536787178863336243852128042886592656902904950308826405544655185083281365383703653833950502297247512540402835939181473858220808807952492340785250443602464117650269784084154206608909668594430028198561408880016047531706216521456347516737946986275592777370663492098204809475967518680133879103865281236220124702305369751299885549399278905312484614609345198174824590305050539255392842079630898314584739668894608298398385321940649932486094503449430026795584196525865524726413643179103214710565919686767017440119889662425506590013497697216973973996443717852563845808359889895654851760372817927435895648485347026399217227160573949444435081182244195817964925704860899446135362860326399402993949531979279423836514631875222161726834043314367926294675299604864203189152598976322182492219913201919368432191969228497126522681441378916744670177128995830013649812367738311285024943966605199110314240816521048611473948415373065345315106625715463348816564692166264011234885083290093600422030342009225910204605646519793232544278608377100404158200221382553828853118391633816232477435029109292993548817902561237538001534238188564684511953550375352944184065207932454044208666651152037981346186729060207250589322622413996269718525391923598892742624037195592788108191129629456119653673544668388152410555421423694811360090139415738612718278930167671716704857428665402054179970131146988336043062762969182220418706798117129693626295779037067748738809332018726011397101152948642127192465287667387253502119585688796342979814023738164148667217317164355617368264830378253395653284857031810101005521724950185892330766712036922340269255127019845615671387838481177732698835594650940863653951908891868450878975792212869693223255890999911862917166881535114603999352461704326420440066819214460822743858430502893115366364172808153826649713363693928732848568313809125132702842181210881042405515258961407466603869641423345934393620011840488401659436376503762891840978844241002877757164646660310004625329797870737509615498252138689066788895470164247483427275653627007832502181963913222290015395603595719791389351742203623433213671193027797676169345927049752348537196552022324368156146372095573005974253816547940387059298883232330461537336899770556061900200716998639565262460800577510759551584277698996615624454658953629994890015070773589646244855226963672960575676445193413520699092499031696512120671006608623083046198674997162878884051213381930500445979195910800207565082294280500290951281469900620865436241719995428508284690442757297926559303449846524264467943126508716328930700250056467356593311924836608971341157353399390279494718448618094322281422697047810218226615867473718676191883526989398463199650198586573846207515711163641764086290142379109298784455979417377398973245946138713648336768922860505992903292347216148619730676097504140788803104995853147616257273418230574357519219018463824303272771260345171075648422648767700321699271230242866167125067554994848126772879462104226195035577007722730281451516489396616355895953314441810779130333551817987980898500780227447387329047568124770537825392385849732804339874469863765417106302633872121431238262483266175982486518862145386856900690733132021782378240191689847981421806222663594028224095090209298660454981614138522529442541691533170687449766878736772129792253755962835620142706261484099231724687421211599391131537180255349818536602171766960130407527135413066534232811681677629957562133102315131852460654085744970043746640669363185925272214353829187703777529662103239006108861781869802030387693006577666741904241195792324756141791292238944617633423139950680672450788863826051391237378614106059134847145669545398632608954872761056769180905688470438595906582566317581631911597879915034999194953044689378014864620567350872031593103869572107275987828405268547495973540659702784637650185859666823483466848123629842402758124587746429811173513007671247263113072078357347932871650710702576230461901602324100656379179806542657310795831025942052351446365091860299222754189602560201693735435761557202786484521689426683534554677356912586146599623232401891371638705512183613859830651165479311169782657025183052777939841141063176392188263507237345715514064861443785003018533610052809974700040682384347900701243207596101719826103654559301602266967348591766733636833919294737446273212738430335497724374712181230180554476110941171640506801212096416761788640610505430935866531487932020260742741027701926076574185043079982619406790801679328608877596572443752770735196971242807765068283512304069037233402913606164421793184007384428899648650291584326477073903489244478925132899437554497327382102119143952156344055295414683320745770199255647161259803482606754399825113398435149236846128381106021426972760447899413312407313901705287009901624068977760870122706328032420914060204167818893068927896035173176453359886746895490596115807980240486582606752590317017271149379278108728844015096986375002615539777113162950965454188477893241486942907021160227562734434280705504905163271310257718222823145360689759964711278761571323671764600336138225333541053911480171532307707518730567943948153845778581329698066346163226807771139446397600985793423784792468763027579025079272237833010496219864838249949136024172653338510361551517391725752047884739324339937923919562732330274932116795918625767464588179130307087258438888682915288425563465223751432183139002237679103984704897868394299981069710107953414150753751278326852789618785453698521975902552163629425146275948031774157780746735268975086311438850574685084267237296064548413208934618090894473064373067957240075990077187658328732329081751695472443295327680244288163579483015944550404777194312890176414955550436776090566469712286333968350387678753408348570978796437428599898078138904902907733020848414855639278254731950947966190314572700023423854324754028816251271800159610971080266470889169905812687070386605161464778323557247349883461389051030709764462319639064639049697822184959919988155991333576543552309020989744476699321435752393374246272975997487383061783433268766555309520157737213172296818654743103145531605920583804544108085249038190084958006577133768170213874578814848362675674722173639497121202870311507164529120812792498752444064172998674818339385335669240673655577568985177166908669765992469774707607003594385818078629403164948021411679485404406110477094759709835782321377959738535143520942989046611424128906414484912551556073650991136985190521716037727925482016374835529658290367799606348697499551760345007990016911738564739174625882356564898875247323648102961849240552102141640860045069278724655064399669137489272833744974233244840075811740182441977908903756998582029189044705015190512449965502667790956116342546927384827487444893690275552229634076351185195335341677318929038340491748291834527926434466459700773152233491733709160706628662424392247129272057991629875614457487599139059413454580877041652368657975964376205706911630730836672634642373670723475380371663379018239863561857981767961551929496632752985851022294930505685668543239029918933214583407538515159241935569722331057942461541403794535941758060077747892332105891772534281538842821303162630990817418946479639165709238355061373500433038585813599040533411015292471636325708088717153301234367296861541960942923866417376839918455794501356007483902348730468706693639967164210204084861330222708102007228801052715244103176857186713516062143349388894252141395427367909950349743553241553530592842023099912896362254316376619675534341118529420348059981903401022287274167165314019321871337569282114186252917364076255200578419354638372563299099526686350591212196279681752106848028858835363607958844920652988650637813974762314912067535948844101279959770144699278649053078036217849374064834040863966355288864398175222366475529586766110009765273023103741972204719648194125504967194717326689097500221260206565135682709067070474468904510211639833433601408200660441199154769760313488692333134961139835038313816434826844207162452305162376246691708605511015184089742839740824669514085213280702756463809622167013020895072430997623696216198347980963020443728012719511886922107620946012135010523112801074333238498047194210883774664348417976227592545342319165287738293727501015743948531523659446014266567214583518468005940155697737468646632623670061872868662725883478362797641207790146391392967870458874049953224758021411265984129067443701448921264097577801999153813674211416556189062393001773074453505872300355695093958961378042619065209339141518340839608611985376696408375790070621159428515191776759684421557652804391032094312102422047543470243992806984619337180138753272689806086936003352504170589241652130105233585694390103543213032700135743295727830926785743133504481014662745629805241973961902142115351237518719975055484110133418212234692010957247225069576660053564098562838052094942835023530024991309952871773793888867815878983440136969870485728899489225538539117986310333416324471018910259157722962916284039743218062315359797595173555234773816256594226501910519631959236193183535687487885562840680739500807055798845206311917852079718076637924661793014368362759451169485321977993554168609632072502371985174471393740669441985473493122708138389647054058283683420545717743263445001212402550455939206645948425271827614830848756237280443942680671607040583991184620012421881473497212184228996953672440843067543569018539557397588849872537973776863103579275124502530841728758105276581057383152855802613333984906450821807771841533286940201925373098624939277683947675841620640147516262089377186047259459417061404199572543754178817880795828450380271021539280620876882975302092388099584258153219331877112572743049441649572951074545233217018809824755473201031974862732777778110971122423747029280577197731714925957069739972548107850448896395260007157263187889796304932435424827173767203601096108266268136909025009034221527798644463286985571689010868147019132233318103886579449504762450527929093376861843380024378771879490173667731186881753349972992927471954672628287529075018641996695454059601147942346600542564590341631601376954804898017678919416747704326231133426892250363428595182061289645103527637748988141251314136090384402836845422738813578783658527803376262422487512970029273572436314094818119814263456322434624234594638858644250365664226712983981915577489695149411647014086461693035635072870869897163910281447315576468037798078789239435738676552732002141152872839370851431609523908525721699672297121568294450320994576051546697340764017298125267494124120675849389459215628319312123264345339762508132080126247297697195307472838104861517389678134016454784686271345122760509193855840471842464564778656318275720361380039909492347169882966083220153322646047840232163389675845298817550053861590594788529486907361418574648373476757923282295228979296647934247865690802919766068864440500694966109736141721069200967714345273609147134698212391753454384676074131035720253295741132139074294571548464139693995176143984898619283820936767732018721075784275818097885803042342467687250075418908211089562644176776234959322314031156647680304790295319715826011258785665555965182040851544083025162792030707591085155769441236785344449393088899889366220682909983704640615837336190181668734502749862347725844969586788154902437692939541200013080904979627953779097926884854845307524700633213237333112076098509381591576244089480758700100851920776332250896134051389522932302362845916213661613841436591408477619082902587085330899092892814872031018780539486232439072667437988997680478519596372647760250243868170837217243047156420729557247247021915567431438786348630970079375502372681972715067855252585021336899802228645902752814000445080262530854025025775939545904019511134348742627155521094571333547809623231337905004343443829229231227774055546184510858427489685255110202470827703399253306649644761417772387679440429781542108531035406914420658518168404094929837637347372299245508237633196387086277401002385241979381425862529618689506897672864485513298857770344865223031487411371885342037890031881251647152926446319977831156896308014265015615668313334049764781245620659153529465879337842223392867437076100161344536550421071060621139927267257173444454140226400625629574437558560367870955610327946679663538029622438795965690983288033531210482727369969613656757351335039294761145729265145044974763029771528904413267883030974126060629560214709843257621090412923856485821788388019312420313231641996979237761605971042869745051225604535641343337068025378471113495723036668005563740554026889197750846851370708532067880644907289392981579431862077697465740453149591340637340028890378533426884883588151492332585927055554567234610809776403522113352791740095335609772138266953632418188589149328001311188438373048520463233182263897503276945307002873902268110892496798757061653059117219196858223677908922947949746015632789017264411957605840092411912669587308646334767983062466073430747472587041882678159016268413837439838778549516142445636673849625198394718294864390093217419715441765793882775465454727765216808406982363810006514621364283357175521136137400966368744813509557097524500682869791976695089539209270285297406915057923350342422985011564796065823197226537220957050274790412847371762296845877816542566380879557673311652328616756697950349332977967121214497894554438685150664294778657174998821539189759523540152659796676343575388093582087041944433380885834141049103578180227408781130371357083673734050237873829671880613082819333814943197945433320629911311432343334534258377959779057409521026962453330867577647275750636449533204255157409513201085917745608193525546518478570659271800924911918597787478207107029700095186209274868719878319998503351138253128391430736317818390203022509224311235507001483857307218249677583956594659151285190747581658569166576233696966065455895764269860309247998526778765333467463590022240662754729616281975378184711745046407583886616285220339395547791411269489089076912975478713027021877961703456222338220843351458823618898011863121693255862840916999917909673866646936210466283506051661479217875750334691007911187949640933069270074929914632210569720078155464543490981459157625337098476583791001292012240008521306260871593819157846443033151335567065736427859593315866610348021530953629299685737769447447414375331388081693712038720080481671332275462860109987573586399274949907264179628641753374796815318374394041514650757469208366405799997582285746475894238085310978413270953493481490085273589696300133411819690575111164659504087233790130893939981543664475435058196619293024711609044033426595912536059769380154303943307517987085553678394473786039272964926500637251193477249838694748095903785478681964694052072604748779070334342563677929392620682487802004163534359814230775386249938654675363204114698372273152072002000589544895041861419035324941791410488896044649629332332875239544912016758670474703720115808891645061020545756934618802822102703880134848630833532164432470439230855562783978085731884622774668808862907741465722050844552349387056213785670409729268183345709420191538699108656562572370018804016656405627379108496809635464708074284536631879435158994107740186316611272031079640224019807845022169792488244645449672989071943418934173477330594085417704009101842050417154731458795210168421470969510324526448509732042585537658668852258247174066379198497661786854677879710201217473746025055126199067720095143104812305668142120071227465399958241343747863920405990575416156101374448190634226324507495078904101417811535516207584288883440136883265639312039539723321062452684376290073623078492686013871600389798243407289208383461909022049417936174857873869245062373093786586173232072979994002404604552074867508519494598109323011825334852090915861089650825769627027157942259658998513085373489096717039959162560210654913245271123404899678845325517757634563705397717675547890745005867484455353162036946826604392703483969866374062396745869746432472728903523440022701481528298632409156264159356429591942635784108985310823598968415259895951980974905933319500786330840926605952358926916405636135089308805651178379540630737681559650976467579041152288543241852695075238018677206813005373754519971948259674383386089380041454484044772368269108657800543751542625678014485455110626042645755706860240786424783284333610067897836248925126501787166327580033544763506050951768355334811950953171926327189495174865868625178021042638398493982803288681076912902091235961346746759276611810239459391529769493150112854497456806359863939544121796356638386671119825040408960670993936367156777881837324037086192770941447669619071623525347615267780395545747764716281618617204138906667288915332086350615685573458254242480132853722409160331311932229636241296665430013907096217182497300199744519092407029667745971308936829310213626106765863134031860326216917323610258737667730491357085854716935867844956498784851525812972424218479924409150099287536652530089806657120557482025776354769037474606543820933863011075692859924545140764345111301166635678483039695313081581918950063616952170978928972313098045365969180991172256711533358882659963035218546474619239635474230944132441142043525112732062278836064120782718942609009621269186088727663848107911469340588065491466677696715075021599452203922287143834108769616611389620712860612608670354935243544106903271071627316765148363665618606001403208644146125993248100721690774953399101911575110110057433969252006018808828090842409069631563489275161014064477658906580788848768070105952732402318594736283483745266736912038450352332570497808085494543987154288370543585563566927063344974346365395401115146087777296750785045228702256788235532102749853453640617562020310861113833248195445559396182527445041213341406780058037762436395024140178806525392928359838156809590328606958211910651474763069656138394774324360273953941230742371834196275986317795203673048684326724973073805805790191564929075212601957210778992070824941701325772780328333289129120845683560764724439641903364235499365254444669901300021373210416483482563281043839341402219885329944746643994076146302151958790898620651262763518770097283863752475215612977889168818405981094879104744358001402773052239886048879192567481517418497665833616571986794859732234346979166374824580855384179954377766073775292010981915572744773608257156206915005712193812298420011883978221708015133125366492835557138688803094869564097861530059463742250549335683611038103825249123722163080057747240535355542239859684772653674920914498695022713371472430930056610055151895949772939364963662621528727293742122058254776321887228803693290909076986022674719949808149634404183169897309302311327181531251209115279013776298003427843155582672510050766984202822062949657848780337192340848124618184110782897671270339513082350924283507860258823147869124542589467980469401375129215786132769550754466711391921519533902943630956427479378600040337573279929064774809322668434898579691419526211871489437533817059399800654172379706356091010878438175011348040297812429740801041605671461741636252207004780151540368628854218723217190894262537662181524802589339279285961118459179270551610261853652536446981010423247918922361915693415918898048489110713546453667515807999015200152760852705643238595969268721613941052869214807239906907521599749958843116064127271167137086190633262084622598627807690780848894522052613370328201218402243074088541431278532224798870840816043206063563642762819593944444314984026424488992509529979169642749259188766922259160653158885536418981533116838442535457006665767522969924549117695280095677484591654151758909939596487884668493846283008786354046949082895494162737816827397617269073222125422835074913623433595252019070959163970532929988208907927452964513352934088574498254550076062977518062052284998949205546015118067106143840682213362411672054556090265560706969816845500130209768156617942513610542715183303729591579483986921731680152781989468678474332671719114757488094662704267892050923732709547343407941041693518451723939802119775135140115569449377281662988470241068473475474576629704061504093110223377065366577045475659749349922850449827078032315245597687085982036586267070871330272813158184704481024709252590073470603444380905359694784545342954547762540171537657696642629759538299418854350580126780699784451595212897641834848562078749567563395253529138773249539013734565563323012950539970509704383136427979611487446898843611526292132269697619870188179806084158833530825976523487357817132976305368705380719731929316304631694425087959475388869549708022901276375744327863365571815785436686378018385385191398497231980947307041274455142504529627323113501587371014290876785903887114720556263393052287633118742266145482841474516011397923427947955135451334915654188306757249457247391447082163573630186711803772142064482858879358848422832273973711313632373786349717592604334470361128953163902948311694552429695008450898109259688830190682242846079689342858539344388832769626257926106476664865553182855977274441217193188348614926875023617855205064995960994017950658091710814411780673840052848362498403312190896033975288340253681134649290563880164611756996732163291893601320718252123705024421371392158218903932904986472263156137270823411081111412581992140875357410676687277191865376623032271397464565811582404246159348324426422869738671830753433193185439209118396100549756928990711229156518940574217547284050898863490921469438180579129451679977364092612930010025099907146708300352153428316303403139253926131422360064300471861186814460372026585156654521570773719555415926546243114178346931497078694714547233066993627044834921275291306763927398615808364615840007705787247570992219508330615943004681403076504169853837955135749070262077220401354700722103444640550399145574748831331284323276350700806512741931076923829351954634516278529127234018503122281442468940708480507752077716654811787685115279570107933112083644120233035009173623884232593853497551349046174715918611497760541492147357376934005508513003300798377817370289482184154709784808047695048346135253559242778684555042089042285501904380246587195071448995051152209734744379255207349187641214191945729492908314394924471007575101519519830831389702233170900036303656848813960786794317853848005155078181699973460159145460249426495218077232737038079413123198703925951473293536098752712557500998151101018159474681645022669723070615895328716509570413331730590796337726792065763017237382340557438091393500776901412290991546799626642984744376315557090847573108531386385240614846441389330720298007223156214971060448121993427317043299288389660510122217680522705918891739246008727839268888886208096463763140352183106398570666558750481312697927758429615189653624837591085690137684426458264200340770162700262323056946813621204113647641869506384736080269397443251842638584244309244168601109165402157385313655012952363303314262842502180603922045601274284787105866364748396750317209550229817335241899054678658457916452472943358048479664434918439016323316996248578166486001249781741382322719689121459280826819452428056733580589205098001451758102555233602671894979805345494512693232134979197010192469338832822882788802511529917997934347809822957870394268539091564529768532112703657212598296032764389640847298450830574638968503316716633513754289210568636311277801117862998454419398907106007717691980725103731817431947329466353566779139192297231097008208314206764217733821744894682063313059444208655390791271851708027476166823794562920529705783393193869309654300770943613752450938609392522990938284988074633596907872300032008308785435263884686619384046423166101110466935918854356272291334635637395549603918665867993282339414070008833368539063062313351035503812533980548913072913423932494111306490869353211043086767529316512792464273161386899327099595120334863002849074624254480393887398819680154914444795438586978341481738586536588378373588972936601398411055320972392110153061419638969760921569426919317251853431605055392159240989214590086439710397086177488150564253874490231092153728649564099735162386550542206411800084363015555119407558471452328587593104824399674807263905030873220632545374372473561409563299221623806448095382950333711764166022900677524022139435026802874390485037348847682158842731610313739706179791036040821209415030988977777724014744530974163405691212968690983647939886687752882623763977612123831479309071082066586526445591494353385982726431681082854885070928107667474881259198346131192347645325347333899952588325823664100797331192042269934091123900362764496653390285140497101919632095550759816300763601713039425363916705379805361908431828838551997872885043085587654692258493487662376286106678207396697512733582610013450316391074153571774621550632071884421839468391062193334675397460275694999535698579554983885481340040279048442334296356772036364221195433189835558263386613069880728706618980513031361998861028256130982621770385433064745330421131787808205131946716990767487107140990377828107115093377049613536294928379758695807400276709112613738568682213051898564259018942828709601658908691539690269536119061614210039716113422064422101270684373819316251948997652603879103464097593924716923920185664092968897410807816179831806528830638223884042025095128980081327009256393628840723233271728431219288249711513802881440962287501550083113726056819560893225019541194268377405184244053765676538705840316887945298456979919631182921590993309640057064095407714274398421021334515979140641805791471527128291523363764747896558753517190115842124727317890641028789434753551025822550809469963263346893085451917066512899001711740827601766183267950813035079914886854689295735424865947412416368059812919083750591494014608856128188235046432297896220454334235093446513611214944488748996824850986698786281445008684969720535083099231166280662794746806377962764350071078161933155847228044805054435391896426650825273166467602632413784644697611257131653340923134709923935278506390935482608813432674968847390837375995832398305174176259888976356924963480361160595988819030148762338072745573330897367414546129909910296267879503690616486469484879629721002167774417950511701779755571383269610480975299678308736432344842091931561463226670594188241726035419663228104182760532113035104043360687504550366178617398583969097334318551787010019599430653585823080576341307854353021482078596302572905965566642524188583791830957471284579140262204054550435332950521438986219151797838138131249445529952241238093604378915387429590643479240970510475129380940823022064702856937479490580222737700247595729118135436152533354490700923399847116776173196428281948533495978004899144455328165838524895658298299955266744267682979705343068423908837410052672037868882448747520525021882841276797764640750757705258491399377872821678772478072672755502230260037768641226903224106412761018114339474300130273240698071944836696888059051936231883491628401218992982803115456350973034526491554154948824093574612148450292454889019879688925732738319428330092953350024777448339460434838743631026036862917285347938973878669041011496631982407971475854374664099063387140522580062532945891975657398684030672014051908699362977976375757089423798579429800716284956714722326701570771469054951580885102176861478659334954740054633940737860335968203020081829195185934819143286477492552152709034232485605251722515991449825913794133217651946164943505252187766065615402010223727497291497553645996260504114078453961640721862843503784808134166526360610423090388253764736622323136730762649669452748537660511014260476869120455510322244466515428534288913072278797337381935638619218419786510795585768285197136749230046914000879937312388102653417052730828748764922215112328441250810769837446061416715273780200736050990547949489977605942549025990193906857124327270485519199518756376639778055669008704762932358234878311742685591414517202015371263002952630081455267661500447119122046637428027822150354497088374409790302167195092599095207333776277564843309743985254880630960151920251527371214142802678810051482887337057755839279149822833641242791535453497262130262839468555150254027652466771849230892338757078857247670232372240939290331888625725991843755314800573177818889402557161791419566910220374910166263256224718308621094506058352515556500037834774539803481233494142071236589180407775638985808680434587577499647708413862039173953264596369631391600152757662301229149251300666448280687506722599383947338749314396311475725076374037003404466500050062520206581277374360198944804715572878070316049632166630423703647952792653949517278658165100014008633681605115697604327204170833685236379402689721912222640453110694392793206099729219203611566738113246272447088280393674639452834801136462671039846207862534921260179301761459221768600419925212476583499447499322994336633049649225729228420544767907236649142033775557306265946022419964886902862855228130276217179527223922357355676880918912498157075624977841098847465206974298067143493580691135867184221348568645219430951259731113158013370804044047551826060092781248882596221484305373759949641968757372189905631430957012207371812246752075156498016153787371101950322027005545504541764764188991888328593488297057565710931655585289991326436597078805758374763371137353713244592233444432505924928023985659025665288435921162112074522323291517985233116934993927772328803961220026469629402980288075018615844470624096139346880562923104451048190176050988092156824913295006764387791096499817090383415303312720341141307776560794542603595461662370004837945386233835091504308674829050025179982829856800001158343546052424468350077791089141544306497395730193158431627256169671565118934645614185360546872650449452403784873971181867123629886858153879717262235623772048198341387436290370501739750716884436067963098407244629747867457960404642615256069677804146737002907241375905842217861196932858605470338461687355378113407975206305211191250604824360119593194982613909415409418690623579093458228200398931019781214082951957025982086908629547158158184050542859913042121411233297233165778735895702559581270646071332362017597495703486071827361716596620343894334524390355904880817571041452837172449960416659408132611462247069284411449318739741245120394744027508850205201849697157279468363597149531810206036667526375456563822256497384873810694892551293520173081990601569360444151554906091425536681783694938522349173542676550014626081655297541313960077329087787014195268227394930231329602313066313864280503359096129350888255799723052871414238669720744419177682186322795330755061702152458094815051356761294307820323505281957208420893609044340215272244873276125697647792087067985613241557548042515762474856374697105767241196105973749374698291206935813857843859626615571009462819840853813516731771963344736752235515887643704523249121322708307978374876665953140089002396068559175915625089812091091814991493223287429356456898975698181466767242350738432015227546750546182920770099132741159996184412835007348368217699236435137870440510309588993597832143287005627161512889520828310165094404651137987943153752392308062813348265204076319299885112719577665893910672716290071774453508362312225035855705621186714857307824388044668753162255377614632002164394871850968615296787701792705269191157925526981953445169914069217997715573185608646950082793551196133599104407618260419782201505240860734302267802772497195355272149315190918434459164469289404583766953193103307530775485652127463189940620872959202235669979336387396334557130215368428630313889401391540288233589359963299848558308015552624974001847947022571996880307051830031583972979270436108475125320485913868974557816338311030915970502994718696796590299961329088601337352171147014237602275836463428304683376760645369563605436012931578766105397984223984151401785647632173315865347221971351181220058973564015030753647943790179961345531251436279762172465040095668418000352074347048614017191410405893172206236644317709769519791778162604241392466330534861141762811988739302310132038638672637176707079460828074362415717926321288900740432099327791125717576006189055083133482421763741310950048624297788819012587235493770346015707743498710056207511910555424113799981911581516916591897268924904382592938012333354621886317592632430126496916873709924185601492841200087273281445766624104479883054014403843935707080828981081596182259935215021464541286292681002663262402946094308053010437343025274910546859091393802989363104233628258506629169525238734641254996542181561339796054437118359325966769459992506039649899179810295695200302106643997639542839775685115817811560794494159807288075830017628036375927902735263898332911201375939462040776390061691447185016433633893095299063375153753875532865191076345982483228297419739771260479442150222157302954863621908656172490491052760703455713541422158614075119733671785986804530459531834340388787731432138539788794200593033410117498000539876032448165960842080045016729202300229015770884253136745551285124157844953367057426578049177643715929624019468228699618870346503206605713477067849060594597746447248905592627487299975347943915327658370148117257816855419990735505044116892400818770393178116936945258225090290172191826040766344175458926264032352545784831689573741713088602631939851685359305840196950772362192103731586003865208594099835138941652865790645986440783455036495917511296280133673099861574962983338818205273562197575739391423862294452458644524596675336539310756631897501462285348247547070381147566066404285453124140856951154853421460876690484382298759993067328254238853663197791050913191824038239567047907147553147541197215986516556838760484352279653836228004598744510539126296076398994698636472574233375667099104319962242300483493470198183800743737336073611917757727026295607833944901883313037400230005245806403617203995415232952953453515442054712515428512117316158306832627890528366636701752908552337579212133439885894683605523008105727775952452446405229596139690384446735098277688639965810754661168199727427777347985895360782478154865503226051376581080723105573976600678903414487870614881922395091467955667951753055340488407953908310167406469517123515100078726960917669312310316655469219907837004107809640055891501654489333673265430427483935773721753598773268412588770676311342255329703444133919821557657247356347483541480486304079819901919172866324822158146167355923916343156170888732288197243656113159840084943635702813653154704322732515832446563472663124143923957834208096348852573604617197540081003874308161544895806379930948646921431896244140792675568123673798567895157003582440678735144828215894760430032681801478359217427818879178908958265138037801782788421494436621646837415426851262706147265719190275152507224926726960031206566555631595042328739169940867267528648572445777039265311909611019912527704855036587648086377322952626318769976646011419672123770149721324399543182765768394879647196670543554658670512615761779842719046457365575553606047298346398393279792342389629100833482359961745191431480229111346721755771030249850328463154676670594411619053415214108368114654875020986325481246968606134596893796154929295455148875216059772391587009783743712712286104176837818635178225148233803097655966624006065759391157331973057755290382608014948650243881091831076782421047548807556726174719397662446699227408688195643151153752045936069987154373123734828772373672114729764950283984486611924632663731361138727251130235623474859620832940044280052290728389363322568585383986793264174457934877863464214178388166772750450904097644189341346998492472354127448575110539324405434532163883528691261142041630097424860655727873924814944167179415849749171632473262295263964869975243178499065710127448688040235270049199113615589110829257953230537201391367309906143558085880953205497373425954617146597120712890358826613363250807171053160445862702181485250054116363212449152213525390956627050154947040876027879794829414287490185409488032521811658792294797221468062593886905681447690549937156024965463000285273849526447877257071429105694133102090303630426772113912321779424914569245462681362737659672575335244825557447576000114496639986320317612058163085220407206675929647825438543203552369541651766926118647333665921596777263404219671645343593327829933815508829634265354042159404123811951154502162529282287953553775880890480093384920489701436446451958961760584238013044729895308601554326716622114110498933498854552161102112867903241185158654203844345989807677689598000093366397462233663338137936514426690830503481436378765387860166202731691961653872099989458494351914840819378938775393587600379149886108389619384268551798935253167080773093772163579084257953073783699971807439726540658503609405427955539268131263462093243880685940826151973716076446048799141264678262437303878842537209893013524530792724429623612630547611980236812207932193547473363123037496324084653562288240911737561812425777596750636658587437404846172010102047943670536345638511666437746831692618957823580650519744413576002946822247623982050095816970127756600404280115661549647549746075431378564997414844548568259979914651302892659979077307203973233985124216208048667880727783276868531615238543184089191274367068128089775926111766081074113521125907828038093336070816360595494541073931797418778426817284482963740240875262475933030162555681340657635400912800422934005533036761562940344573425840695995849218740720853020045744374400473646080049885043322623278158434802512598335871303143669433113340747622534230990487129088104617250975067188356984086450873795330348789680499983019376014391506653719445478718611764772400594401621668325672236590766839336089119251497098602442268440695544292317035607136473148893057221572767771221211077257510747434676530390189738102218288398562263180064024942250854621044985626372140108209613175924969392317870989776016249905847009625384410586334652161784283120130388317837523395411956440154817784860782921015320732955907085936387519695750587100648641199395110822016129431628195855243618668293294459770298331790021572611430934178424976371541622662409542705663433428231362678302670417977372552159798517858514653805511497184191519450798532771390525422704128275555182299138432757413889502599118469352749791894753228416853718020310471382261111687035309193146863822883605230907742411552147051854616862353182547146900158728362131036302860264848083201335806900538769850507031542818999944109578958829746492803004639370028308260955306309386040283131133931186727457514318754805211423709147041305468980520137901748302817739630205232335337890939675936029652350863103030779972122884660465045989184631919310310195541358627616154954507637276481544225484248953225493571199109266455103862463627083277401189456470483381846844258592439058047866176113084608242358208407458119020987299751812536650664953690163010775598289660623421015295945393503170074944616397064938285104047357147155312123635920449497405579323499811207366763885533426248520403972459396774234799703725738032941170517050571733196792843490609375095509371666109972287991230280161981346676523601514461608726611665827802246372875879722444409074965087780177746162743815065508766670575491187358705624055657627559622428001824430879079511655870696537198271535102519572673445037318964047664852440436181817268961104767356971964945306394318687504294716194088231047240677454893217790032611876975296674009748314775744329121103034231264825817526305691627740988010775633066003051362915450880026427776382716841801636843220108369358866576167504894290477937161100386822712995241602367236220917482003897493587218886207678440497515655999354878479171878065087545792888119798482281273733584571973243093745931539436568262640419232463188036263940825661761281906427279776721957405617617107804115382790899325983264492206177358771096968917254266749816276993420957157262976460395834804107034002415302610741884959006840141136847659533570251177434882828863876597723527571006034140721242692878147098039836453735119155898552811520442455905727946659635507877051947919975935806989699532585826345093401718367444328272544316223449929747244350334239757865445548749528652956549558807691095417391557350023879632217339606425067977973214286386327567146454640711391757886345626112485646305858285346872026282178322284300623770677352049936995762943403508273982056702447260036512878618660700470545598281176573089313158964521220611470042484103837869730795516260975828318222807615299299765715047202265905313596032595416566965127997198096829117942352956914759869393515222110702151893743277534394442977259456683404817049135342628653611285613123689339863307029349191736356008294950035867502815192729808677494384333477784659232373002294294954373212436788331720763052961600595947767446904450471626338836371584564547176580230119547244126831990735006519160653144500764219702359713985822780557533001346234744390481685958354726211745381136385116795913540881166872764386260412724508052473357578972968681535109901822179464195584456786677643328409451665100188936840233318216523330548456648915687541323262184196419726064549739565639716755647314121037865384339932659481793754744236021694357586658504375263413737167116573211325656841148158905319417525324973524868667500206020392693057608170467005497974839432346774156850686415884054313118184175272051601611280759191134599826795314759490682172784335251236625645167673335092272386973098914406358167322218425865572952223153921526090751050432302046383055828990197648380722023570217841691290999680722058281023825897144954838292726640514497276653721755752497134578850949799097339235097529342192639202332023978939977493289568963480489718669674101791582166096165154661146756891158239532816256051302280310838959495039651005412071527591496145678609208443875631994277261207519257346062320147367341597150626230994418129605257293735583989792320433578062152596506162703688957301260892448371577284094931741687367639550544794444538645617799711015746067070749973671306861903009844561003445247556359857632512506553802648015795556681692825635953752630870716857741680230835364206571839198551485804988923400988979391394098250709269479450841077315900372767103077407571939559648885017917535422955704572288703595058108981724626817443002005339513599754015627274168963708402669990954861857009341130357529950865963217932609825646743427120412496035918576254628806673398572834255992371538898765821974955670248248592492158587254869628767034055816572324454907925334596667746008139498242202246058918666904009796947494875046553429831322651348683363621787785503157513401244522508374828719775964294768094526778513367270764974238701964805972263359403761443787359610915228334832890582299682694550257087106359234485905571217481495752347952499822666200679427524190049687878020508502135426161068328967891621607241059347535831313860457351095297869721521984490239414848359765671355709571806680106409250834552576039534243451006688865081478910381848959925590742561919161803048068656240944470357906655112288200138241099679013811934231003943238421228634034715157943049901933828092765261718741281474205019307072005371976077067140442322202872474612253295767232359234523791849990182747362076916570878071616513269832625310229725712179115285783463261822015755491985461414827980074616041661507721542361002616810507218599910156009864599345076441928005515161062525999455750172295375811246063779728602549431293142733212400529747745702384167967290478708014155653150995836743119364088119987894803652776471463782088372295103122953785944947994852948252845007201060480899291226453497336020512511514084745171836254244807456096223273900078486377040301132777128370298498655274027055762644093730159072779892430711051048955101735466916933394692294175543286958108395790295685560833026422591820427453303739515524380333180132135742585253782784119796026508527802308729897685281496990584884855125313814177820263289833789304169672349230112036682208413637422058963095726139264993333994950246506230129820129501749602281816736246493484792204772566627493350541128038079875138989142219328514114191328002517338420084420245176229536517681435273059682335230584062382538058597906095593430174974690513395248190713046262268275366200399722148690407563210199565512004001482732565034956147536520555536884553977744391424171065853372417452494692050634435145795433827417336087620158800339931030442367485005308284108307523691410551609149273895064269743378977520796260936307694949250225950146397360793934801960011834194044432196471225457641533653131330594956869844118178241277899695228206110622642927396262318274114609393430964305648406090586911663162005725216035557448522441023116882926902308791551284513168012618573966546488913201293383765507070520403787356720831986252224231757117662902475238552197687196629369633464152601654857286661662031006425213781321492978839483235192999532376044478990643016825762132716062794725822274285616309580973253351334474869288069954717776871694375247896455704761556410444669726549263960737890282545778830624732100115489908287783910019828937651345632647773176975836915767014216314064168156646391382091358576307606876061303355500388229676538484559213052039675936076869136163133069879695337650381462109128829799403988881654946301658832516422327716315355824053090574001506091536839765367298187402919884468877140401746070765248008876150720914402821986054533827106180890266328618819839352103271322567970975762824653856797772447907937261003516424854584060308344903172746560794707769744394138056974394915446563308392555848767089288870387150385109393404576215415493317897251009463182870580090000071302348066217879762720835841153769899236375227683352698868654802147999041922870165710055669139494022071600055588646077285882868663428496425300308542806419694197820251294547596389786056187093333835553968571672820633145901726591131804781871926500875053477410711617486704761574550938169570665764431723557085760202876957876686669853718442824706664717845384206154997255144165368282126890270955174524608494482960445894647805622381834328754692998820874799898260319985930861521591753496047114843749621568631872531264413356735477040151124774538292852773872237950711492508555000987442829904063318509903789760949300176693614955349945059054571259017206572126009827857310101864275288483511445295481418837832589109793333868851056907906784384862681703423170265583277169369993313252603362971247586668919483199487438351586838228333915731482879310364004968655786568802673631642494380582893069214021726574391049607074655274857482510616472252602576369971382022664999625832869247415261704913858015565268862938893280169422510967700195495020755940994285199581059365623432924652804624865945652115105990551414295169296942049146133067158323639315089137754740770850903778522975333533759761061129705109611467586959033421698832473054637969645564552935968986256512215017623964699696443844685779949794670674462057211718240714282094918496182979001982128396636440922801488206423840423596289607478124570731016433392077317859184241210706820496513466898587586148534319242632550150801792904229322929984978276020524831060103955791685544432002110177802291616222614343385138599201844751519792244805281086046259816993803469219204916096863394143773261167644606399440911520893492674842123881919552066405640439287174289902441893318871052705412415242590926074091965860969810621609489639854389318275557711679795393063752037503213561001208199430814068789674595491829656297258285629962314496307602687426887153340770578611020881309755087883850245960071850025678644625699766619844391379808766698068924959732379768492422203996107800945330567424041651424308654731147448367629302057350646088239289976414839704413246477456723502012480960067542375874365460439136887107293395882029512631966623376387780439628937017411615974337458303270138401734191009546096163767124291186556440969919454276652259843698697756223982541167143583217705911423029261350152560235562753908918455260556658183970448724071631557806496213790197523852139229745663473125421499045054185322889743604466244221850581716300423960344880015966584159976860698448584469070123931054364563094944744134851389407957234868168133879238323237320539097955057628320193367840556698325050808600092950964722530638024461952423529522286931122034437149223028204849337815878312766874788220959869867707007494900812503544115325507376044883337147883936437183116171776722916101386715723597324141483648901531117502329827620920040358293404490049658910911712539218501048462023927815470565804420966184286009852495226007615834106320825398608919978449718388586444034681616425940319363458844815828753219849921965417262276172846669012780702314275765524333425273988957319961940005370890584013491604330726663532018192974938425212446983916947884906095061091880623173660846926681142208429411152776774175284592420797804248760896891715042935687630871751228082804948671765887788297127333909079028380806180872608275889377163282301805426238617284298326842486305732767508468218502429580130900455272401655399102113884174258061644039792511325240721390943779852042876407754411757817419073168715715217878023792247044408045375975971722517132717614653035569253952110142522980023478842635652998580365953589740969234492084491539260074717359535604814780604516165238768342204006908733475630231086671667598580137242211435986061908314072129946052984095066866796233081277892364555570117113286973501040286942063519358480000294074066940244326753154616281832211815620542325597971924187157640497897929358298847182061172396347092182982107816884401935948430538109015522454564225931491662131067981426971323557075864137434756155248947081807442952854355746692404328405450747240111003884219163791608025578430900809481804690728910839237207462703518912578033441540670795285651773423102836261142717062268152364561816069726993474131439918789485357940125533764532909500525585455728964404572477157583387591452469521735228238831544058093389195003244117713658583924901372610780833146035586091542123573615310546398946866945546891589736904922112295823741273391245384800197427337818955164886720505065864079516351675304301037090590702480249429773955741583205019338983060380876387248326805768867092454550786522792369879148950318820083439867634018003644630687570989202170839541807140176951803683361372572477017465106644547063785417417289888234527937270319493798788373200905290870716528044814347630338233875112592771277665489567982984090304935200761909077554957090152631739874183058792374629577099536337564506589182051633166811730409935210014406759636835618865780902961912920708418317404752013416645752217055000068956124459254848355599630696138431084555552567695382874773819836289949820262877635428306406601022143191906201949998424826839446193018708208994356199360231138935224002071848024636723699111142047724629136123817002268285571077902834033432304829553223253753429633579321968711601081830992455655095870301657279241535104489868496244898663588232768032116106683475173453662095155623565656419048225195619432674478648143387714857855454477090136305176667413931109940285412014430039017664426571258851780984332035479446851678793544261706893753421245928417062003018656693019118907368486487531566050291872632094286084570344304200877522887971257638871851094510282482487836323475967394546464255979104000216837212320395246811843176273543930060990399485666615404618534185629812470421411643878899878096834161767083979425498800632986705071644945527551508138290752337259181075978521293147511804432350311306092435875150853463575391759686138692695988693077120239235773654334731022869580458670138598523664547514425334218600784474418830702888364008756189929904277233224368690285959995441754903149342811170589301702740529361000263336163648386744565264545271679404638990785598238321267342832399292910876796407480412951921680482159681254694899549728390498691845764748383456161594831707285649181031707452954492466695559771176312714549684141178859675299902090313519163223831865695549468770355752229625302790349627298349239709770248252178359826605649565360298248398596615603049505267148239001973667132475057331653642952971995249687634142739438182827691389806813251535051816808872154785108387050597621863283407517539451077352677759821365107612198093815768063160380410232312070749465591004902676082678252353576733028351714469205986025554579714412816772578364443861691415129676200126094598101552321943464983202504643096353448397813050254121418126355481450507590751615394244592004483233053947952618472582668949911339685187464856209669567774207232778222037527365009654910766926935591355941752307869405416810372512449645968696806068988979189318615075697838441025761809924485256469192276102479231666523442389901642690920062565393513746295358990770351443650770883291996570232750002347800049797210121622584001080941945866852083265557083324261743773749882978079302259595221477952859356502986804458736626994358258556215494028218550675119642334150742561884508194871654178861923656124867222582565671815844459333141852435799045433656001793829638873445400183767611224850685352623472299739852888292413552894988275895370425853414555770019789190699308145131253104851697885204816084672017689003045066245890253091728713996567168963805668771730819536438029741530971488024460737668614346958424734268935915185912350500069146461792803292196993754158155290425090779036005593985407578668772007560552571934798771814906457242409739390100227156452483742815463599421786759725426479787086029097328749616482190120100591166714412864752221157881574102764031134830858097156147848394028243310524847965505097957504906346521281741035654811140705045133120677216866935777963253498540481658047936173490065769103425750093484341383883796014350937498250702462344618847663130277560710169995876920040439642392174011507605169728478543241520653312760656027071975813193401504807789078587922980738482603721218226084863609545782685605519439566202105505126129163494165139876491112340320720252588338429112775812792722087015846475415629673880994753653111837714048845553298056387413766237991782674642907089381048946709420289178895638857753463709957586374627631629612196038156873948564578417931366948784047684525926947893477975870806913696241138385275989864185810703528501807730496620144876267934974886765901186026447604274363854820301483863890033907478982429857949597777074088855493413072623522673790419013899221249311533580743542944477354847583394207290986860845112262300201272739680210080871412141070493018255400291932141185729986118079766949061485213243287374903752591295680336517711825796221747432302627294023553724651681491068460370647782704976153075634066557701193878101554330678860377709959244547006201827919777189386389895919908016145472059025253188856388668192897770005609141980420925030546730020025217600323926867390315699867468958889637345046611987266666311823021868647985300197292548870724829006374161204142304678842004455193629875684588449091797505802027878339063975155251002194191607164480901512555380838515157967022518193932222187749298940014320026700919093486246197978853989078637856359505111621268223027692375528387584206511759670602648813481895111575114944654032446903575480756425692512231663780096404915202024854501266441354089232748045269726501976341190571015103826394660177515917966848659407380910520398489370654233960503111993993338449915633266683709318130947859007118936005770139737436766816571079740434423569281560460403952391729318541342967986590457779002208708789891500687433841847126425750769082482983779242518531989800820603436710267917054609995078473193118011826860593459611988178184549739661106644745999182762851207616384547253251681481858109965103953714960814387759645674034507564512197697923777084169004382262956033355609747054196600641911886575505705957015182028750060398011379869549788708503941286564805662571649256140271165693930070770835725196217261631186223396372531913708938889789066748245087860242355734489894433686526294572124849661615429269684344402656479840041576649335414412530613091241907448192279081052073680316835422051649263155506631602924574216758246897182926985538395965509102374886479452673562889203695009976653434607764997611224114606825453744614041869522085627371832845218396204048794346807245664244304443291931378367445354860593895439316182594755148409130812552343611747426752722515741993294628379449553884174163524389468166436428956591033313023473720721234946273524944333041012237316886876285999109647442392279821339295551618607988287304898453721833285806071640153853467387646669796733012286205308795072948906333248057924115974776969358440839334433458674310345827311673885338227165681685695483208884428604855981534283528857833219756036872756070219688897245975079441477455167769387178222290185718184115617415956203755112555975339430667977412365182673853722152694024114237808829865529551116735729578444741356309713171176685527111837500682784849135835058069753731795989996356467336630507562167605903793746946444927850707464908376648699278021513860175918583532130915728236312925672775734027523660624769738533321241713975490587296276298807826818949598699577446481749405698141343824771018896527153258289656746628381277331876217643219613999896637171317141104490807419446078804118687560577009915789541829784802715884849735966036731468030471873983653749651425135804357461814677020304274365143160690736498499519340891193327333116687778926720830087428544748683673630147150580069762180917941483533626477054945302748168374591170491141980249601212411173283450524807951916208813709688590902911412979153308617280266875483708374734780316742466308577904651372822638462476214865413333589965226560019974501123480118735132322209232858326885202852809079058029502499579309699729479763735140850466049024568582757065699775840419735197496920412736477499930253833456226013842666916168523155326926568414613701427111129357325776915084682838393840084870079593980852701540862671772696766391761546344256779915949787501897232793750904087356388916836410487083875313739480769073465087655254243918823188784517884393043270145501785910257989213247454981729506314745520171672102415221146923006053234315184933661388374176282245096063021238215062980523028810688228656511312776826042369916867639188975909664979753852110300235227541533855629799577112354372455782280097416769435895221436651002229577988201699121454546685961401286509597267848205119640658201967605647827088156754052701733941232606851686179227883085126899024532095467840897133573065095424942287961256954298633353553416437088404554546101319684852836347007917499459854807842284584980649177411908686724383636242931389902455536705891502586492882319987712871285842340062827876667382624735038176097253743683925440895881582904850358010833582314578750995109111671380169947118414719235941519749218608022014242009752377851991038669860097490222176348930327056270690978533331516426377158022868488045552415566174105131825178235608694647789836676798865616261314453657023048544486954831005959390133594064572370672069617734915835832362222924523162479515458785537223902776502494751357391896106098530191487545886346078712054607352692876438057496346305096908950995004976405499364897189570341938480532563060245619065743125384154080996975570798199119355709892840659971955676032273048143445374093459343808882058414698950134811559874501708176607769128817905865218556054032848965263201546321132042490644578334362738981092623301947309464744878005768324289664821293304796153492817903286423699146981998322728626889365307767243890063670687439997997268394118249691599215280003466553297225797307097115218879910783045694151233586054431039434673438739210065191362242171851115914686567299394800269140327859256425586852269896297241644631100821162061634777912263513190220130472840869237342446134342088887063166314903924186521842168610771951560545818712788182930272447639571061422398709791074231707787317513314330775885922151044123489605394457685992838512497565451654848071533784160558800487409933543867927806260313663825002283317156344432539479264933360330288214628001715282581854153129407254470438714284970066177837018616385565727932634962731715789657140371326426860139001258608787643946010438512281955686304966928356233962912223308980345645793896858505341217216490771707639272654442302261393017213699368612543240785550225999790448321795394023341884243410624573423073857792978043631372624670058296744442843800256505724034093989905448900248008110279783359872984837729541363646824263720165256105649305243532645580782676561342281183423145145495033774770749081661745910114117286358639947299183104145153063144048434181218034829740661352218601559778332522466264189988697820951308224336308240417227841057052085170551170474376316750519084054424062421385354795515580028463934531839845180225555614606776548297668547698536974701103218545453115808656494745182841087101898019927468270391841089715956837477038632845067987969605036393730335586116476195690216502972347428017231187529222236071449960473048205463579728286138873022999037081972221331235644545983493767067846041433137437019020052170729912890425736433959231568531579582103750629532995393999246800993728023828619854012140373743875516792218235700645569239004597750251007517275054893115079305197829695892508804077304075895476648212112583694975299525625187018982892166110923724944448649809125922806613490709481009783026257155006738664623014451355507322783166745485985921444835553196539259805166114050816124288590147698558179569339034412677110723297002986157541863254159747933595309510574454084518311197808467122651994828814423254178434592359864309694302355400938723284689996468600953034048842479551071150775708892982350864682561151843417590397226760673707138458380880851133855319624285312307703612078662784021507006741262008975459461438136023392130427932545360312055910304470686532764402996872532337159831695713659396922317767286177009470129605538246539794471863551283474336213955356313119529931799944539510753329352843891984888684976000343765872905763461016124611149535621702118849521167609374113247206179687960844091119377117122594725452540931803787045891851136808759590976383749952095299321569021016756904395934261223926794052302656330440672526830244361667321319376493643806228172581364964904787248013416642932697702829932735286582441166753534224436106145022335369621975150661223829069892040306687225990222466378578025395929884377726359787970299760464191460024385232197439359068120264605420532800619844702688232953710611508396872445850649078039887211162989065522810624472702284851824348036680283761627611365837819342786866441467383949288307581379323420824073020018048276044217227812114683028338936137704357071264830669954200881351544539783903989875782611669039149223546169796996853896435377720939427462020085813572393589860444715355917404401167816638276536887221397162561730918417709089408358378971211612914566833419020678604218814477987470518112739395680991241962470622914391169398966266237122887208858916236877223338692912384255062583882751206616432928267331665073517458515815862380482119678559394399169730876263639736814531643831003927792883838075534856815264578913497430761050795195719031744026804078290877755783863371438364022480698652412260636499036803179460484576166860982976138523357229910147206925725567250566513975492596724032000259425132115944916977224060048393130863626533298392276019506116201609749458551724086729819605712899734625772016049461350032392980971803188561875536701526865511057753788147359325708979962781560393273480339550837609385179718132548934203168231054020642420741463317796838209359130985271083912462079280995646050276028073102420378822874142984803716238010106040047969988188587122258481376911896167246893092433482145742721973529124776081947195064941706082488284318189831585379215545780633289574477768777061806558232287847712555126378006998264932469469149657811169109727895251544448499157496700820212480988095266357074982637255679140935269993073407419358604890647790669293401653977698084594780447002239234049383911299861865695164310428059297833837703470401592738193201120999239792885864499911263673381203972245913576154584263815264187262263965884669878243124071331711621341881920348175185340966941061045376336000391300758772604274865757695365677803380950850077909208799702743941910026000719711545400794397835141475590753617776983975629326904141145715641167302339214543529684748124746215756647503737780210403471692617671005516590617517484517878671776484746723522873805776342538860427292780803980749362364168537612114829832485516579134738280233823508268110430115138472270082213500028681059337821690169421155717240423110397480854352062592295715543033961075707923645597159857957137890860056329266861733792061862864639120764833103609334090521795120269821117055235361070009751611510996814056239199172950252195649060408655575594007155561925354228054406786847269339283063684585159910938741292944031506247172447427832495255850376813296081644368890483377517865838024340876055227304658158430650685239809808050561766974920927425683726242983146599328181820685465576902862345867240509678303331491925187169617497617169444765144624065615841968942866068338751500739346087421755930295531539495684349626414314253263130381878893079367251046085879848175018771586111866885982433427372972440372234015188581308824980687578829454174760835260223188084507319025302376893327421151031387603851772012406753838378603633791013171139814456946442040687101851999177134425806788399912036337648604330421458059189424981298463353072865433038286036023964738745872558190515217553561154161992995985590073654036303181141007977912462790296070609998142829494321095183301447257229757199349802589161190863127571648069507869144685994147123471333777852995471307485413945728344782297302916134971377554510378107990307514699182719732393059326522075583102317333741488724818545596305248336104679188551295221121064955438391162295850959919111492375775185343463206641399563627935152833615373928772662512542869625150806407847118773374981212099893137434766145920573425917109551645399909165439140259349799034955483951641699002337581947852317148785716082319829267775613289369779254520282100469334166027506175959300060289216615086985415363834433632101213342682082903539582544872407733200200794278415353131912876489527218976270975764514849516312767964646788248955021828611601061032787300191988414464880362692921183219423482513891835944242952464049536764262076827853235060647001317959508759964734782130411267584826971372117481699349645954285887326086757606452548072531385466587225629621064402675972270534983319734930912545731073273239863223858283961191190610845287556455526364676565833540773188686051560917635431292266933849116559693750478913599051201831658642443347393947271196073059633189202984185502137621179247609840556784656949961457253320265279971099141502694667376087135230868193141333105877453947301776743078641032604834735803058845993716181170125162015869402415463064288621474462513035981449476688088840269587936792334229444661870280697167148567498081389364415373773103540507105595176972793120625354300568625698277724181655959760299644651539381134704095833245873795840111526818565423853334515253980211445613687797467936264721302584690570780596114716451957875710556106624966096525472066705928403772111423394389949312476078685703222655846235802546870794532916793981897966200695956521174389420209776608857626899983214540510271204765148175642193419820992882027613854119113526281852790538273865884979071510113714908526761453231647143170576344375718291141981163829203135168231808427235411632678979365516245116817260166530536326933467723702291717769801405748625870432064967692709759427969321801309805434325056239741758795444623595611891355576760109147127429900788939121252868389500551350428440829754617113764253622091113390073428414519620351562547280983202949267208641252710543430147919090865429352860010184463672479670003792670285615439259764538857885455373720069198009047025952297295812068463994350876967762879907905958777719833587290730128794916494216361761072717376264666514445446877767332505068710812587792736614140929714165483863334071826579238882759801953574362519696570035352741899777122939002423280989113348912790067762440758878808944711159545864640360332664993061821819158707676850971224350085960932354532534666038963030767141045476332287406512743452427516238977014206382715098747145548620812602584101574672324816747164198507449528066972404596528915323598470068342654278814529009825936271471067916055814620566537187916757511908187189745087349809327621078953642821583289026008061908888111938249538046545857850045726106908332842788220230408786888180810344238521529356310676004174459720201191851794707219174955966871765650848089111112157342531365813822429063095291866240077039072095330996106949808889290472014586766403673221934942371013720313079488240918136174566255377304933105097262768780859719002866901930643757747157179981871465982129037595176703611631873913487401902035016365382141125609430445626837488446209618066307303033376428489811891591650637550861998359875489874912534011773434707052788202716044904012485986390896415517267697975452743125929899938599515533806349221720648239002803527024788881745036223358310074458004311299235258346048926434107773056421250416054967970009454910249501780568122155709547723116428443929623253142529787988134635834343246846277363268782734333278532084788932790608577316259013418777748748540533396346828944768360361139088141047266273978782880907628816977873318853673823114602862424239074337857367602625243269621450693415066948269837569027896309256405683287048032386196690540336919584059102707954479973154160406755722116860601795994713118990039203960594506276867084031559420299967041038408185076662830018699998176850940620952191438017610286419046751880530190039479854361736029821453949810767775217853084762198009937075322073497407682716656974394659789772385499562716373132966341158666294504788226414774856718495020554255730764655841889510620525232612227090622384443256018422213728538766423472346235201432159534864012396042376864155231197908913131866533711153473619672821934261206246685332028624903261752675911086189768235302028324945181436944671918152660296435399265139953688521282856887859804165529226531079129280050864439832578973261534859767998084248254450723056525061697246951208415427597997533968903179326120825288672387013386783768219503503646249926965890446673891477913848360407551700007599436329062336261879005490559384809463849148394799164646115526675754743557557328177560941233459097802542464750985124077928720887512131967130294826567884705020270118542186470213959149784404254607995978257246064248048214116587525077638640230540399516134593029071670197560165760261028046892162670318864612463816800769009565536285969334967969062486823331848247689146687096344830114627192303598128094788763576417279842731698332677136913542632105954507648037557385459132328750065259067039795413398696949128334858886122771326988588836803371041458996421602006237905629531420728730453162404375549904186438439466030251549402188210174079181809083180866165094794054384361278896151037644362781584020818945417271169728641852028580896718152094619331445218620617905289164310388671631840485768084203669349115037759195113394625784564448857519296247120331345729676700550703214503573406695276931115361482741433364173933202903848983054785430341437685415581070250713289923482050049996268566363031540748798957643424660138555765602116347125434463292789607871855635747222472844259421354152947007607895629998129510370860455539903500553540781032582469121245550838140682936326873334777530937996808683732263627844065095777666973504338177190600759473165727093340777230341547353550542297452943358924156390307110904223916511954736057766985486410173316775728955315000554585715253085790402372384380236119218945766411304556200254406981031739808919061466989977008920592632118232442126809074499085489102333195463297773512606200183941073099422008105378797600757917857453978190536538083077733581143289753625690097031281509481535531514323504290893521902425705953641972053487638709478236090254166406458464835063580547318413583306780989830628044679435445891817757349794897475838466686265538290279463792446292355464804216634270448406027973225311446053855747922747292609980592392914617413493610909976425973725132730937651942376673308209437593698759254283385916907559267485947609183064173865754147786766618635993368144278274119510291191422598691259517148234756495978045233393150865883971351166324361249990809667438769877920996066953450291577974306987473305015479553725689475294959494652381476061766964342030840004536564649729900103236382911233792923340527937684344616861240319637516073890605720165118041858041970547212629721155104278867047749637112600378419664523671787075949414986616301029579475277775098420518887350759922226439285460736830892361808696723097353647504245885956352017022068154832605850675260907803231547861425849955831859869624195989698485571424815634247281991575891636393023140401176557227430646065424782991466529400983000222215688559637345721826083201878866424333460485408610480652700144338090041761349839367123437601689062832626765407516140227005512084787788818716448627453741743596298209358320498520243877942490157309850626855398241362850602799057556558811961315254153529436992330623780384162300702027606846540288498315252493405037568565992417475846152608283133002734745277164903224547742092142862598518437121087833524937854383202885569656865074300499235179872497733710370849067030505439041342932920232875598373662081189907529055869653151992894477096167691272577355894019767516121231066454781500833267670043759276903166253599696517832167837225170638249210809178321009009144063055915131866648749034017329237202664775313478683435948803416252710684185742248940531473152481748740839813240291862266151739112279724339603492605396056958627187521856421651407449922346758772907729116346100436494756427879048867092082102992314000653782353290747145056154197814940899935672234066929833453950772204577562568411912850362527771099148762539075198668014832997738969950830635178100430933956455106174624847718951702204709318553014772151354959433285609951150006690084716587180644058711415991405762148673582409235466582693773018924614985298790268890417774444441898973827737302000741965127847690684785417864276108362086612410169869690024053921016680381224807327165434599542033944784944685505945541832841911898877521872753804311159109384176241090361987595099415749116542861356708478256069846712262630512041971930600241266038855902410277906139446674822392874542210942284259790910355934157413301496333917677633899001607340349552557185940835472301200626175553853736327090411517842692521928786510972539642175244070152627702410247181709196914024531884212570443643050266303942560938775017460413170108200590289429879780385480169742748030048649572991401175432288851114048070353593050211612537562387513329612275496718169660606734437483549598729047727280211188168713376057898650304891877470289594569413611082713703717865979380487861711664776713711254663731981874643818672761107297131871148452267313826959854662264493322858123739199091389889078433604023562519750693342362445673292568172316811038373934377682682079587129209449875497434695675387419023849610552072218829959650323003205515707334726064367076492852893297078506414221909551557233800216265424494422821495879975645336403081234257969091075121772998683071603436057647640642931724112895377899884707768012959275681017062704720935599161849444409786716093618133092990862790057387176911948361993525688754678230158075000604377404509238346625958235285542794713219290890782748499372016886029912801650605963165031148810081993469292859897624977313782744471064370769913818703418608479403091644547621206113997841707524153022461798613783600184248778749088653918185591384992233241777574001988484291281362471336334818587461855301302147646984988040579424975843416084814947347220868792349953185733250721464925955413175657709328988432598111958873007000336792637635847020162563780155494696043237528086993233264108508870510329006197632380969698111697284952565523347483972051803183796347071606796012283399604300919356797422257977338099191574490299524714314713686615633865305563596247951683685730660885690313123069975062271318524673306553782356051407762159267684667388446738584276749220724241573369400676702814296979546421763967981823377069365124498991822619924670317699472412972547504875474912546529504585112395132460681010587743245995569867891648311754521148470465140082718203393398203048455402155711600682333245248604199869493437238095150731927801567084222338198996807146448326414181119754372006827353716030856101639312416788420015508637600083921778190361518024927792331135515357257043461165317005318749799516910892248724712002714497421604146884932415196635012934252122778032698166907506158884145531916663932019520898322564255329667033474737808504854897512452699416443703134269235090259594069726011960969330907083903453634390915398915814751663072069060227864313153794101089081621894521680607873597062707037869922894475941333881752033170297912359277409679859108764358956340392165180407798601758621285603486850670815477353316321412846961453014207595240050378976254807290844918285713023050296945114544185837181732863867091991692557005606442296892378203218696215931221010002729785628382021711847726906507515349774029960804797297415145364859747734711646371382563477272218446688614678129118236535390134686326465696108930988107667385517724436585937485304911317394247688056765198047504096500025567077289611930069232414528495312011473523315351027601934179355583190507375282090708052203335675543048717289027329299599501329800280014864950058716723865221620750892234991265472632111747038737032357858641927678340045693616611532348487127050650079517605086060239235674708613861032707413255505275544492753817216032374154364048932644191371157851076833989913339197270180893409592116445803685419092866077588185179263170590989269016873568185885901494871742637399474000085308650311324573264755804699935981350755374829852091584698109136383029901700351097603199818646953211350319184332722339611979829900526058789912886957423237672915272821092436963358938937958194718658264801228865614373699523950727847563446589529460822428023781788518812903771251461367572638592852113807092371801103962906067701534145987663200826256018875493922674532122589220053281242433660062280477408664799454270525403559414428404001076081393098497526462618981109191675784754335632067773997008499416355009630964923309209799634373849111977804822759008594722659627995071610503978909755646167216643887619420506534394249513607582747177425648826592398835415692864559726960730517623964407481789831371393643510040640797218927482342161990091647223652181305515760860649798970325998808094977551200710828633712164941280745443478867873444348486239795511309999027876847378217227557431710073711637441642947987431522087569548944681164583028203728517220602239487277240995390709904014336063841557870777881688027493034066036423185552004489103392000262674830649405674838354817549304711154506204197097149090892183989339567122955881692326462911420313463745242624192890350686786275502253545810201182476734573498978165608101537936668261440179417330813946934343657987227491281691383036884539526672111386276073267500864277413945796480193599536355177939135387116090367002491057564677376027156665799129716288133612035010200252338640193968168785036995722708253971288571623614321589076562645135070796661544002475849269548651235584151009701665890485473813975301547199229750503965265328700183985457466758280937557513835646136809354087585897937071481570119358106954622271065395732984799569014676603621966987183457920867768175014748863494842399960189888817402371646203795229100048280241841467090153257019124124309460295567848258109447604750258675287428825378246403631408695044223581486813726249845468221013950001077968980830841085205446551972077663497479879177612169066766804264049407008507742998739959733287492888728643720732442909748387253507848851516051042779687951163294172396429630301489416624522610923122208873757348685526044784066099089487501790958588830645561485237473260400028435096770170680942471479691314341712542182982147617437047264009331918659454878320730346728987333624227520222601532599038274076851689547726288595303892025397882405753591408736673185117693234780461519488131692948203244305556626985282240117375248303361379535950385837449993548280370563637859557252676486306901047432054513340327971237230873794515770007482066400220182801543525085925781815653718159613148056116953596817654803784363613207224541016603568399749543728203665205190065009543330570771229467017798787943719576346864846091722800768393102000573219319127474395426162315971518282853230912592783562341578255466740535358354220813658859819737985358590844333425903669934002469520444520939252939429460551996181405849934783638434888559781973196721612867745965766081294737207823154258062924815542024062852177322594277424595730200183379632910696077715266150410506845666641454514048696134059033903855483278130588474659519210507182825120781829839913979508425056895001741445313759953324076242956666487544666880524458774126654366480924133564483653780710909269292945119013426935355744351564862378823309740212842042531403959748187111367446130409391418770130538777347489844782540601762525155258040853373380048006046089266524979646288882284418996191545084467964456572220113350570806350861865399445713580392793959108801596130982568979187706003261750790265348357814397380732593711814639938952426660272691522236527585871716868987497185801429907735440400739912488214062567463168517781590269805362807831890634992892751438836865531571575510708119358628858821673325166825428588992135257633982354715736624218417714608168782460322813595480612790924812203270589857848165776804740909948512398293178218645641566192761049237615405273076205815408641815380351221198422303876675622936122311405340484859848137204166735403467492100834968861095617604534944045827361159790023181150637208255255939104223871782393181876441916555273415739116212421927728978766710420521740995588669239989078015054134144903767777926204133924708830978997444011623923006808734149761341026375313730284115341066380545728108046140247112733167078979400906449857584688759835692692699253846838591148808277940141971261875630536681461930016936513673797893877602179169946329685984668171097533083166418305207756926625116587691066105589240444187456122143970026285093587006207387371279988111538539017212096700009873320044597565925511591955008989818547822161363333385459432323380315590505266581998147626940296941772343375846820303778910531768519517669550982197876589983253196315636873140424026549478727800002000602142605651731980949243938055558527981875714909049413686925638055260997815488947754991120348239819103360808155241504500663857651918158656327124578238955962980930336954304025586637308793797335285790023621812685038815182985280622136298477087395204427238156375118942470393977533344981060033709287809573160184140508724644762985779437478250505371753031479125585985036368870365093495420802862597888950011567464743446553090036613821024023112919709221922216055999951852005742131828705270758086372149057455689891985370109561463447730349468812481809011907900855165820934314139218166381011859379299235009255245110281407855128044453830682086782479613408743069889515193328850740991948914200037858089293155387483876178822865885228385937857237518398737832858227407395363191262560039761623568206105373657195401701293523111005941574460180841087739065970900506635129254593453350132099439292399426158994102073022349780844971423693541725853292526540086776782441140661894688439565536401223473659236786620417156472540497389068279044066550515230317120887297287049695586367568757033526519368212770744813730865572038671217297238550269124159354609104358864258323032132363528023460804034012302901955256219783236603683477318880684514921117352820566378331042445619916690900825314561660911396568297144902890515826302065907532927324066529634879588303585214623426081221959109878245195298422074181381664028133287279630624638834488950984481284464951836822142685850535796938668251456808226496895509405254874204810347133391394020725659370385504773816155112402317098742664780003970564861697278818627497974917704158185259400813982911921468659212207114675333405719118795654141748214528367100837620353301220163371448677424022749482480529965449111761556172098619551356203609776608956681757675658408073035628893055626776068596639312397252313700870427247065398561059868023789953178680728980268596733788437200603270876054801005981342107887435802879229142819488646333609955187249721224195466551739572627681901466292665407706946119055161464265924007711569498185286357533527028344044690310870435331079565266772443581515303167391224191636188380094149085483003121454222624990221141630582669334306953657213080719215468263281888481699207927476547348481956469361326751669988668693203269422068095297391896237031387157315708060680957639987174501454707421245488052871576211652023968095545721152642606242945360767088722486703331357280413502443823498217853071782347777411119193540195663306297574844752053592908539135308637111450492892593098218490315734322016518691256028550072029431599522472541050059060679914901868697383167631029559311994562841956048193170199512907793446333285552679484893421384541959404539960173455445321455632935514729562024804099432492828343209020431063378578242669607872990519457753022331823920655440832627339364101937043001185400667565557146750702986714874823773995782039593743615565477707764156325930061292912465435893136107784669928461204860051715815939026497577125336615947600352125856045115473313500223524595554540280768383454398085977733955170320095455780116784827692583522381688643811638826086925013714676272214806679830775833204987371228003013991970232055526235745277352823799324145509723934920850940228939314894958652950098893695911727574548975144068991286584467016147302629378353970380814760630404328410707657213187784727848260005281568386239747622325058768802362187686217702481406191427543493439758622830242706621008164546756720698752157734890575142773603888862355356252667161644743725757146168549411481613336605002272324459398061896800450361611756146953658388255441545825555652453169835790420149656402327959253528001440602203267040505084181330851165078747512467506266634836718281945817151492641668037954503080516974262894268750974641028409831144462593526068939316729315125786620618290411728084384152179619550674483478190666735881287271964755549859811364766336027056789311951669408342973140336628764248088052673183074851128519096519971215951535252576493756161197220952077901097531647274018724517932751131029542974419124919840487544237085413778558118110587675089027060128230622643875695168550670647504513304133540877445313012644636632005471857310130850641087317088328125474220288098588135862334924679426306333503767832365698501990928993627433101108931223161924720365426331758845774489804536471156509363312966349850395168898504050017839915834852710480421351845185312763037343667548822243498319812015791981135414132246163929212679284891171842158278735749626703607855751740750384179938618662503646814505136818381919614496062412900614827721395596793576541491994580359076731733882122705483425604089543160086368853930000175355887874679350734980884838343487598198327679596468969122428138472325689742926295638949539099455427719705559465919043878001147576713998526831615570407697174120355008514412011296936472351877374447359504194540189213967870871426338390125361737455095360895560675347671103952050362151016213466060567994723223660970479434975485556375515145917033066516381770034125863276644647977666084342823858597774420499638806514159231927071625086535202230797330454627470196530204781361121988956087774169539108799389046851017958867370812706512792997692046955836733652625246225240727314786670522093680810280564168361268427740025927691995195277915712128336702706942774079387587529831871108048666600633089724699968390735022253976440079065843052648566086969492170016185184629587513263885388819236195024926211659972687231361549756867859264268948951101950267100593018237137886486752730420077648830719765620132544411778145289178134630346295011120360669108616136150561712199112577770372915206496284882374881279285212955095956379172506521900981405194121768277232148190485281002167858945012535751794730676576460685004472819625252030477407392833351056260120887081315499350315972493838701647133797908134329757497869190977686518421984885358156347203290329302184022184949127063672801161407590810456932560758124104373623817221339434569329980079080661863515742849023452341580636192331599447665208915125399582806415502814300906236942794515626810607379262886780012104252535866705951387132668830084071155503218513473462598749930233951024579873834738983039598857462933665234813562989874745898621758639638240120134793595084719427348179590215554117842397122976217389056971280549095839913841651987278386600113341194198531321101688620567366433940194528990786635780530551278818521770910341008763526561604588545151089339719264353309264079178815251556731051424878002310535623698623113025654652159774531180706409941301462697978481990612594366986930314825987343964289325750319678035268849397799466461409710788376930913489500624441926463978195582842819831453121752554597333949449823365046731090712931152908623868960494116182204731734957448139621851826235585929755221047830654070848136277758584936729625201248197961954809291080733322223306274026921489925813428275711772286289724498491878307745904569995245586190407879302957997409515499831636977341613541577758689810198133257222029643773252572753223891989216174239872342909219876063433365859254011665094904386765305815096034454533224973394536172389366799178320715470870105217087766122726741624793548757400767825533191645001398485728893561925557305882551208668613555533362391976651293906413060939486768288749901821880225031239342820128155071648727872927311118182300196512147783548349477910258033654652901398850748710064220917100452909308200550335865583424483041143097809426946788864508506284403030387174745861953935594841338544596280744453323335088704733205863170335487518275608496514751402505118835852127346674487871489666347196487575977367511285724956388694061131124715183746250542897690659639470533107066944683119888854441186868380916534120848577977884506740208411478999287084905104413445949459770660397038988266653840378326470726496176713366976179635964799603573143367809973874411294924363772506714031175953508622533706406194966416829898304454437169216620192507338652599138981309975931928717675540530779270447652740862357868690517228356539923129551662670541316873257504946543697472007520927126825465348339491980281542087407460957841130221598948839617872378096008331711486887462068612815047833515662470385426252242013138200433573022669132722181776139534529683978441530421660151799457780492494178791283894494150681887359605174238906980245364380895459694994227009839099506128640442556540713907276250463746483996625567888099276157211372181632470634537358164029171170491124103326674770833022420226223954264250706540479621934734806715316783424485564144952439614933480921616222051419734738153242792352017575382327806453344494739502958314906546466383349116248123141050705175155070146256546476224244696803266263322687003322550768397699242704290385606628044227324591695447393881972141094332693265538141490074423075772103459086961808767675211838894082570540908003294367435854486764958544593640440915327723410388837568961479808958108179352387709798345066722206089269279944103757377218596495510191042533372895923795000629083966860565280018623464304184090973146182843191950207317576516884581701359203134605401682823635744379602187777274251306677265731656083488949707634081384820188608183054877902098374592896170056440729150930020713681078491477745473334188066061010550806425197144834524886055744450972310559390815946313075643163633627975497563455520486187003735695130286763995167778699757540876081292832756616208892528032765695742831959569571049412537839320011735352345499697489090993051139602797232135682586939025038134698984946449699267562081747047325957060970235495862756874225459343169424514460700921520935310815921780431022480682239660442624773810839966236920122970917893069448936359572276103418844684617988984432087043801534501092131510522072238274494876087778173036282564810830691146362549973418468146600681062823265592749599544879248129267519524262861888816167638185868819501399781303446397880145855850443108254365899425670642954677866864080611562060562268372109256762842079195233505660875642430641937867474769529542138322985439613764599876766114341069674634863176818705452639956498195747560342120205252733526956292298182429323819532817883029437552245002289590765272088506493901596796166968542376579771376362890117272110132219216156616699324416779000163925729144190157452773625540913858535789622539147645079636219375884415482486588017122169130933072417085718102987450483470853532600176422872769415386078697881876642592907024234464838342883331324502520543591208716819282394646191997268027402309105100038286604843339637240737055220065042797363397510586278646272153177818703018478548147564846815598405416873832872299081284044368134991539357209735129068289277449172853887634515959655941069502361770394294393402533805901546002774565863373120280191012609643830076519059829841317024543573175475823116290105041828426383782090857138344514192865989127540525800248916946210301025459045967272610922199650394293778915386510218040928805326131113873660121807658250896408783278191706953323784217787539502844222013435869474691740750968500909881377184273773204751621699247859453773828050857658028163397120607430972713099331139307062800174977518727272208519441507629044472004906286005902119656843085387897953260254538391237118522237603043087622194621989839932125113959724822684788786553055879911676978301032444473307677775212505686851177143370731911201811595576319092208987760727117702603174124664859917441866517276098022102463444382832597885679402052013297260035446026803501825560176156258122549797965364362953768464631436872205018608554655231633813503028499650672002527160472867833081225724897349777049435323625425623774351073461504901322633640341716476836368575459617368402602405610825986703111400160178758254360316110895286726563035582181394804384567814480769293605917352611610475606714304648157472490392657972928825527979043150460087397711984406200423010255331329788639832132389175027466246033472457375711229936141254235162746454482399604450060337353717433304401168616339234113823610856319871805213229558856612031635965405931128418066653621330250215009011670798016467459075721288364470671290886422053640114001540940759757314174620759729219376310458027732541089594579404873186909636947218905920066300730990637007054450278648543889004365197309925740065858769353184707490106620436502050619423690301568906422384607808899587740661405013772378513998696199546647462552295585216949273762688808867223258210284468260893949601125561878204429805383786145547924455588485390669284997080180944944603260188080970810095352073262246874869320135236317636686608022466815235927659172790294091045412839111667906048667430900995120208312761038020075218185622281881578543130065653428992282410269374088596075183028251440241733864936761721027400131258353120621699643857833065484271012331203411135693005870127348632454777461039925151374280943190881054718702820816243982057665505863357502330183195321127391754500352160771176972686461730302695751940602334280616354734751248393180188202421235525431649201897171584806688366834683819832590469414659788942734419288007509246094014997477564544535890300320756568016036269846371292122820452124787276084239986604761431456380772596042227296079929466806083885711473363349851935354249497201627933886870345843790732698486582312150783192117887185597450834146227988688019086615629708508396353047264818387973643432254002202513826973951407992946229051976554207208790184636825303278975540137165872462018959678774476587834308301132625137835694522711404338407891525854798957647276901470489491472193036209164079770675461058787759039761254392906451680757779414083484502794940797371038667830387200203462678947740384499466416858814165375128476286857903778043444460605191789944089077226854520723571576683439647145753443117545983528719592765462176794875210272740876925758726326906015630399260102381623135081856263977562293195487818426743168271354908416220391647423027460998807078853421864991720782864564532035793194605464700012778928345334341889167529865016740372521809924838574751656824407613006994123811144922049884985277119237108786975824917341086274403095631311765817227960095517206221202843737632512251543862861626600491483299601810572263431499276472758562201381233764137493767329242195325608149968702098177817569503002540248891741828221959857836315686630448297998144920750537177432831965521707845908796114158022133190199892021527471155948128214181593721318419057542003723706279527325975218301066858346594165251601775955870276447862443907787960804572411113593092737178553963399591870216626955041401191198698364885977365751246041577714251588842030645547991372949426877369059763892610411519614792012052044778163413569325110294453279100252504689307750302970626334023552986583519160511823453730897872356155387796938474603299401850063053008784079702764305767524910925688395445533156143474794740820109234898395963746842211188810465760873170921675692491059243469004620821872487802219346412149134876160230455610574468456658584374417478097790475840912120686317729108801370460170804083509049292846722367657239210721356074824607355397038968055548932560999995315278132426031780049000504056272651628656503268903662181561736765703850662380737979383902705714010712064151827525562548640882174573473553699697557163673533084660053404979577751925356337886559604630594939681305578661481973228136266798414374833226707374647216157355379967124065304859412189838328815001608831875698765967350965870397157891688680705391145534107809978430194531057363151108340502556169990168151744164342912582730928023093091875256720960404263958179893773947023432833389962485661744518265246433906261532631257131177062747088226189689869180074642467278147728440082561409323682479601029725932185772255365395941720614913256243872545320612108850622219604968714635005261869798285577856388686951749417584812210953452257571312261350977452945333536869057210351927911794047021286327520410407040772298357293763917774434610897484832529193123844925102978680261124823349357777173440706811721273446892976647416856911883681917383319368141212651724870989855015923192565946596202911547426818524966018799077007397461898687215991047661677032440945171541422504196121819079173252807298593665192621348151170065811178378311090298358433416307225398351040372827215563288107704694019791289667502243731475185053630398209853524944884384055001358049182495345496052680445929172670517757612651035300457322118068336500984670481164615612626924529311978809573284846230035673557103126853213159783622807213927503767075127897319810373123909987489851427077851349667597166497287677934490522063673467890934663894805743421218172174324558342742648018119258360023354360521964720411314593611013406035112398219444425066629250400243990194109767637078110886175245420409514092658351354154111571487507890730224630195113165335339383119736695310350252187465988362609687047087573139812933290142824837836888824839334715542039761704202636381089289925561374007472382966545559459020200122442168750918753044926937756445490128835723888618014599116999029449289240837105226399897891719650821175881913177245208992298338955623420502951292026712258132764449399164253773500486652864487683568517251537765223379808740683232053385884420280606292141177467950309763620544714054451729359614835387173093390540966299419437367556609131319302177175368350083858471286977942389548748634868001720166538753318179250999469280403734839426235104381469322485752071549982414251958372343118096494356613890396021071962196198636088477597654072367430718342941853456723473927335869778425143892399098349025964816942970109371870812224365574505968361686809207975074525582673236129960139761378819481087367487199232850119157492437807322111888886423463628648626792323185007308983968492672871735623644088832828828505633042620229079395776364214243279301002232068156349997902990667091538862622403631555079027381761027261604609929307777476622868461389162175914429161457861058177155784981533889898234026407586958371592438595349747013746778234399832156393331559412193985598308508533002908456521638306078001543561644962099372747999411420742900061697295584167772761598503886530661379668882172361855999145365524094165722455945633490985994919953248086810179453741200030884993434361825161397057988269695869551586524996533300884453414105093308474935794643901081660404926610341789174309095734514621635486670336926927335865801130621213761735180184886252240073037771333792521864673716529840604118190025150779201379249100590669382245007975973186450641161282461986603997084726694244522790457802913877714999992117782716572974764463158785166234927794938284998491745923930971737008900366075190454351485210493430952819267808381926758746453739968399257839565366964893569633448214141192882452059428768207055056778596968635786758210031058909635092079196030240983097292048197792860322412943653734735928529174234886373343820682845412547172432837899351281136517443284635910570971181804504326069078051168071962294639003639876825240418938259162584795803687704606208810343775569508100066373456860312248645304786178746752348963744388318834684044346437820843655793760836462224390789375382723796401137592966278449749315974537564384094581584114063248078978103996249671292405846898378518867855573587965365417655743658521508463115532162373102823828394625603515128249817787836869271124842028361881598738625938754184891063720103824157696089464618364721490483953403428857826333632286620145775858737993736125233759663790306066874684495571579696886771741845509412930305216671681724478696356346361102522403674987239367678663158881070467672651885256754986516941046207586891130735727545579271441495996921113983515704584567853993758469563237231190785428719877426461173587738685889993320953849451312076377717444859357237421448398259752546361521658523879461769091214418811104448208288999463464875607241505392717002814877934202802067027430372172854724485511102252755033099219246329469612133890517058606040974361818260803845306035133793623875385054080845358741424103567174697355161917621070497624783371800143822855277926526413909905280462730421142440530573682252067226718944706787031408204295061948409737275250430140368996203143459937254621281775796081865474773048304821354302963759961558912371079221995038976316592723807933535038435038428894467846710577943592375863760584224096890247587836879212924366332346348258127467133822868264939525235571174073091976486659691692607291597034549142184305928884956059578498458262985641833822033310988281972406017836053744259182586826902594707849312413851960383898867164675981086403523274560546677254635651263413859977292417449926744960823670132329556876979225372371570476066569374657842630448820950310181582809388899260354147061729309760114798204923519018914810884954733413924610047354555855554438220217841448980521529722851976511084989342092250413415336306142927849351684665105029914726196166134119290125306300474829852521372926365094942898145634496440007200004868694743067107637157397161354585499039011025078633542128418381343620312495568118757136612928800176456547724160848213071292039933902633579025877383244102410161566352120732689713534286535164025291443875887939890791834663637107916650357396938104723487021943448177122676027055162120133666310722244877928780550262200670841171326405510778858248872143107068820554567017955165407300959246174811842623138252101507715515217586978081153640525378944328296014535736845055728382049453859388845458011077869322656045455688277870797551213013412744218467206158760385167117774675827314329696256700693816611152519274289576434504626604811562628942239016640811581316115123521630372930723751950198673050446323887036068368026595452586525263093713052778179527966872798646774820189193902388437763375698462701043741263757728480828541613571764622641005470300313022780941480274651467505744807404820008270458370828833180758116865328898362179920590587924503786815237688820915186718013744037231509475734844970185870707472515779087681612423361986408477731604834300364070362943441640337660836544043793359804147849145699154148477773086963957159498795161807374603126494724479011982694308885334929157395578946578567382361517590879639730416853148219943549707501676903564294450239888200383205586560215137814593977212048061852484752012566724630945367763406951708169539848038931567146764841639791399085195978549749661601997238849927569960596620010991872547120456110046837227173525565993057719412572807301797635007089252832257836472369042841109078166165808410107497613914503821914821619862434301724294043551985276553515209484840114776685402588111418688421421167098396844150025692089411721794020400441419723889467374470128760851973185459953167526022491762865004940170026233084665103656833798064181648636135467997121916158475193161097040895709864485916257771301903588848810568856420337001591537044441338919942664739226787664660904661043516650845422783547622881554983718832281901717502316641363529123671825738794352625863682500255721349615656267222220802004459609349368709541621180203069315987144460968291471115208433865260881602418989567440736542803787615598988479019610806838534944077380069362165999332267249188778381290997304458746217745803642871626583987018603762137351643188834312666738545740361928529315616440499061921214900267606839027367777261062342767440948205788710295532446268407439347945519423496228550743318782413728089374750615413022240795945385316103422803502491431797507289913437972062001791203789247230874381290213298947647276462707517238975260167194188665842746517300317552475711740835090776153918839495379852550068690444636334137710210031209268681676552805279666145993809282688741323654507029053079592125666429899495066386379692473269881784276017240980743654336800344322503161348002612883715107815965271928091564355782157296938089395549242179749889077870566052708561692373650712587097249125033265448534552607036121187514451548930624684130256977833962257564768090351395035247764648477113268707813306100111487407462139839846127678761312092287094430897642589489663668115906321935816667528631232011364945844395624774511246633425297892641196337755689659859029053750747773012511746304071710402108284591542290126511141075538930232881283761457873722796764092095175698150506099294121879101029166192610470484785649794786912035698541728373120360125426530393464861487562455513346302931848188746763482659238234113681929826989141469759927551318402439028892034575090068815563866200018200200254635028365682035106439138809265944252853199521394960112404143328797086942007977055660243798902907202369901543604451408262421301303566095667264081941695228803857639351189023980791468699501851294045034582079085404204568469834451491173021882829774572898720079364682452147408876758889834886733968652905770278568990320090043081535600661707778605250568588540276857888790631990056394765013568677993089834465877285010262137956383583613096843725666518203063787039535259331279813842251321264504509081420808211594145118845678241935580012484631249445657671330057784695897864071374036347203806012781262305046137008466706427315305794603238524055556306489957299752885324012720873363251830089108274139477339894062646770400082348487215368233591402365351136834605722325714126931710787073555270418475616508900313006055555782713331042983048412645074965795906768686880060568698453653148513466919021671865727274857373835723593356384752629198488972295353621812598744518899281820490897262251586245836290379763170956844986620750887532007300880335534067228875023040280601691456126990685975303150178815390745707035142719836481009113917290683220175736037770182628652070833756929591325616848738769139297020240849723114049233233437970519638299425353912299802724773289056118884619391466421845983284017421748590806333673150131921193221530397168101636977445139900735833400918999834886063523728353206864187305864693065945209554303225982003196435088562880621021761369807961394329908996321241209703423604904893005679745251309109836351200044393192366249008478305746831310438105503693507391945354401431227681960205814553465615217678698108929636196411989676156905398389575575171443628027682732194510400180981565341306270449106499026961043112080671721964400844309830149745739102821238449088646528077524185352330285360787702302616724570214129617878418212754755695307000091753422722385382126131260381969544865101909088171420045403143552195358873490910686726898951904159412574786307565864814570237396186892006546905402373052247682183707958906576726554870467239625160003248053892838179256642772935281156169223113921393004785921508209152696770378679771212195069458927141367570469914300470855589215009424238015399799331830768143693708456006514707649712603088487940277690155672707511701344744515073190170940166789287236074531164354913901700085992150163880667534217887136342761145958275247624995510526701677930565451489263902131045381446717167416540016528504242859214149383811533513757211107550055403514366557033914103361634281208675486583366915217018352458849206005893702065683683582721774050782112132672185110572949779559873938971891503162117089078944723057018637018304194139519110289937583349276798446354949354232020146677961032453710084518830182089255236572219059215840238469441837822005257695191020945316528068502435407162072215243102186928788024157650255492770885590083629527722508261506563078649286006206664255079934304606880284578428307222870590654450921110527579150597840879204031038742512176637903449031108433215842784255621267324378307010808101092386027301013075913883573560597864836211484799787199345571787215935444067257250741911409591052744131186904970275982415999963772673172802465571096427626975763650302230999317827830072071198842859321929801616610319443964174560964473814977480911387174061691858014013329305140392169680950884787928879972720016071391239882349277329876688047154478561576825680613934127631391275042123113200652614676019473994256037373066789808411259033841542022658326231037863710974996135903695959326979059300056601326513725876362054659675801404719248915975340136017977068897872945237705844893178442477184902140272652311061929047084734894756282168167700133455973841499384302728057496750798139845207932408637471927142149691671093182952447864915899554447731783985728169712864836349697149830455650254898144143943279872341820881657751321811009759431920234139837733775444232399109634778311273088392796741907490797556760319403049334981140874977183594394279556144228844136733444811824804669544202436012784952720937313995787652097572613033288191985481798103057463388314204400109651734680467968659269915802098950156667957768533650991378068522254201537210899203275785687878597010833446951775113798706041337747176597480134472870803778876998011908017628732094656094805751846313637944292202259054034560639856207584869253412920515254609263009964803782172005595901266748240840091071191908626834463521138808781454089352485023358899573559350214162584951335384367096759303108067235236454394431374043795604060497616450526449825286766273470538536534307074126629467375682885132632963620443329530147372572528063712028470423557182575441675291892781577414881003596214381181923533292073166626569197923276604104785600813168381367069862229067122085334910834750633819333713355188814413972422381929872960147098871605012877841313961771408458584675410418347960748981675051502539330350982520114784833421116607070171674293865649493089248350505159988376324735067255860694280864412036344989989100221282006504853057407782477617602038762380221243814910882365956100395686323250674602069511783750617223564657069565946267840083050532820223285362196567045436289448676395561350689880093718975183577609338366413389704329688402136779364439634039010203999591719661082627214892634342567814710423218203057800681334053918415682607974741944705443787765515530476777037035583759160535389613852937091166162848471638451481688655644559019152392679593658977914488115897924984872977042745963810525468126962824136166499730814538110015792139673336943046831848825037153442880272242801830859715064983841878020339166842095120243313193606311037356850304590714478421834631684096754357754582655536114436124281248629049231710470055922989172067788482311969903121071204218316776256055030319500369625199067269983304489671510312038120910437597962856131510849515634744906597631434745429072780113941949048425389754673013278824964704489720994953006238863961167498490921470178665287124576849612245053197343952129135178534125462275917336567550829529805754969443099669782636632845221929417659992805349285964325218249137264964126450147019794148113258097487486959269318232278514990307438867943718156462964956087439072615642988459883685318207325366694797993859188747086513276912482453132953869122451396913177486070776048860351865799187691713879443649309492641229204509738271442830092269762558254062018882101469677040495537544305265945802444418475151594949928287362097421491342972012610213773923595339698577508113105514183987071542663737691233457941346782334570811787541630416468786272506400683851862550524171594023628419500981713365593624379266751066559862473062318897942975529176219394977093641360981551533847397703120348216766351690258175238924085959965867826905168368247421810914631061797913019943288660654889328492613376816862314974058040308130991826514855737055355676462568465929317175543217859319285872985125130123336665848110996192283385057663609979608996689038395169430636389472088477926250761355898815007286618942723076751175144981800641774461317210242880928620322413173456904018822769850737058113291892658253961842762706776709662194815874461108643638125953185422144996948538116745502234487637503728345911421554991727522892145433797180008859570242797206248475532877508813385704487074107376441550645254344740294666956287530576863382718201876757310402168306472087451306972710642046487204874408453678080056041273428995859324288025236539679571229711714720583640213722683310471676271896320158487924579102620803904730254805606765198530657470705613447896498936509426029298180585276345584969622146979531535690053622895769264505108107429250342128290679997698530973754818636328705809286410691494130793565899133831552702214655538872905226685067811143137073175340187607550898779777691437399131438974502188970026530167242621814980128087825672174564334805264452753202448887268012789470141213045759311635777603160362826237647543805072695858104448053208296681754312086478262523394470765041663989573661131281072954114587869135168651567556511997116219537385513114063977235340822816034319298911203375532572660577680763065596319481932062563565474429074739296931472044184157021774970662473439477568498166688181760688734139958909014159922615849259637397634423108462091234162438017246541434407323370364498835079362144948917516606894005552437999086001604296187573112062687324577115088160480927272029052397548294560210437747905251378934749822073481009128264855048780231280832977613628489227033485651344418459116515997353862432566885549339561993966727361968887565128899939056226060798681862234727968944656639652557092651652151245308244544055377585964996289305950072006385974024800388879070574748724419821895263281065186335659334796680578587270191539080943520092696671729655837457461123003115018714867465105627507308523774809594164398324908913787063753722388641142838821321823216951024431745150857682377347054071283663514268769536542787833462099847896839010850753267569894891185345802888680074792375684996708577290252867282492718997716872418407325483500201604327212644309225772627893763254355078797976269069081536815311599353246495008528182915845727494171329548635193913331739678854381535884783054266750692085713266866311905856670321547417131327757033956646811143067111998054807749863149706519238075740245392230601250704567999090516131796724515498276841900681604051464961970319087592709629812115710483213244614577682892422177513456749826292346615141058711921559504461437170143671624371993806025949208702697208155235921690733200130974243932449325504157638008268477350414052148066339231694871503626978921993027440344474699645331499479312275353176037960816268234800652412875117451399977289694959713107105287491566921925994089196082704809539720333984327148107049481327491760202293671047104648981555926040962744373581296101615691882904745067175873390440786698880638916263221609026557328676197118990208891952723334742899515356858123157775244721516672035661859909848196196109673356314912463634227115625661263168978928426659645935936618895876858269865062456531712585870272757728471451254788045092983856426395271741693202510003589666165355616887179968367311549196612923834069037194039517889154766976505055292964425347118032425420298864317551806438871918012442925042316388516497888994482704350885696656626708055938344256135519034263934749110282677647353071708169063504089017567256007373793269284679459471482434453128598486120831232642804086083709091761324735003146082262715762497459933248762805922324765337736548975946899286648224689727145005385087078120418455126042701149058410930436437858880675366761903398685300090956387101033370838432160056142926755794370550184379784983132579858778698524228069617514160706395553851679199483498760053227501085533439539944532386133816775149143994299316044193813381774256146944409661932375908542694943008260682558143105826146907360221824919095716586455699287913981030103213392500051410573095909907125165633469086714064985292264277493500805687506124625560647245598372281842925734022052353228249166539951581317917773902746105913607235646765558679029042352910524068439594867790030421736274674911023735805263674963236235307317424815225228237698065252265986942432779133280072722733701872014165636918012957514796341179834042107420919090226471848898363865995659506826449821742566480771213903513874022942166895413749461931634256740257076457175469486747909791417080574166077691331159038200631051404964954567795589655184855568824466143639331000028339450682334528195649922510730364565369050475708338352457035722331692737657666740346761157106950590057242471771691773467367076302915719197599530639285820016266765567498356395501962293919212973855946939966693490525973091016530920362522076816745612751209927180798119881583443203274396004171746757209930847381391003960695683154053860222207731009877590567996237836620668676337025004661213173013693257957618810730219440820423610840227221243543061330869521629882814023692296767392112702560812211945781435549293999108979204420558470186374111893230068006814994457318749156554423661737615656515382134752419997834193174565405447380957757101542830998532908494076219786083363863337422636526640433747856145900458883309385658315345481423559050552356841060391503512674485461277803470918423005907029353929988683362378601104210736335633778706181084760981146680816383222677461770149491533952260630623330676917784639579091688544817422131259148375418638455804482059226806600544734223252963467967620738931512187760985778255965284711096633351121486842182711539258104403111882816346687099940549813980048786304127372698623408097640726303110569256134997800502440710935917099369130409340256951362082467441191775977241511045213637474470815628304076726088490160150075049502907246129906682314467851813576645952398412932914569663646342254968058290835478704176744853231448696712404436696333653476888443920574211389934563049061873697552119425281275941343327415891547662356938072030800804354553589533329782707434564296172226563433250537681706770415433687424663545561317297853516125900845581089038269294263697159456779863997545409038870427120524910571988817660506070504659171625164943713887989577848722741344668181058851438447170847185127875200347586261168022503179267116369386406879110197141153235479249187350791794847666510316684689311539736847125471576097526640695345308967159102188364148390227311640431290656334629106044871651547219273096428068126252303229420481600411273212806171871591718986662192353817446374302996733225111873364177149342420612585549625899616521315510875401366343454334112821060913843896710157546801766428805753560375910250164398732653633023680268291465933689539667157419335921756660831815323768318386849695470152531055282805513395470629534475878290294144755458627904180976050666113674214155564142800745104205117504584687151213120878675931364260491627226061681783642594542241802691525848233785640226108339935191000176743326636743551122356218877664859250474417972145737312103898938244138542691572170630806619050169851778674279854679828362192962993177543449973008116570426006719472086946655331295507120508027394944585603311208874295384308424198081737029278407894026963395871480406915172136859415674455604223735764103544754136857533213442947241330199285035795903923139593756120846166094801917698637631844836524920600316037038635406396606598979256396052837559423287701542882648945197613721784615200014993268345266789052889408968184662142372605186537422202170417453869758678633996841162243316994108404778418622253771156932655369303537534619901196252321194615401601634358837641732065070480511474588478071167235388719538097814413740017829126831701843734269300725814397211204560844780174672813178240036595440095934732982620444594212044195659422046930644159482960592665687497912824215155281044531823957213701216853564823311802679663965130165566563156421630875955349493417822803898303150804301425892642255830924167727018332199022276618455508080502624070748179541968327481019889012559357577833128573380449652718569290049530076712768923232694916898787515017466027636752718720765485737272387646079026587828698769181566831161928891448885686715869653887560619181481999993693061431095604405079945798408239487849275946891636857562957584574510263383258133885030267638880064745467074968795357936568110963775795634783407906589293061673918112675845550348930466273735366663026088918589125955290239306106590639433331949704828931599898154470744148585389296514543727414981304708680256010821986907121400112453043289228494540688856002582693687403095081276180537986110405394660655586412992515852647762610720466367604378073340269454147887856183143283568791921219420502722486663833558910485297894770220560306790860840214904261163859080073618392169121057931909424933690113340212184889386987938622148589691001634059164146584497854455622735785340380793460961437110020112168928220970375435464122979740627159620085703632292154653449814575864437064341442297604282693642046348618345746136414672145696795808082074189971792924508203216429811380466353102881477911087107038937770174843725645838020289883987348690053364297299451425994029532243887007926602476155882188173943953032264923156018786348410205779309502760056821220299734862880681109628869919937355611644349146153212643463573986796177017020876147123991972540501822853271886090081561612299120291446226818196585829560773556065360392615357389269726307580194013926309274232182573124151561490989918354451889981847348751442921185495961988740271535291946561992911961743060677680001022834111810888515455971950176491728840132055768044740587191624858022169578287623382917765572586017421541702285769592383738539555598605658408282266812956738018471855278461864632531216162199847498582149305540288651541188617693986086561956061631259563510965415089164423203186805225266838313450446018609062426823518092813368724528747768303839800146915849926278283046763801974285503944628846475930700589596558332098504536297729292943811484305676896309417122813992790130362659301550987088323635073002694664102704643897600354755197860388045182262876860846468907367359431431342899847720505090505273682277909658702707566314149199588146850452262910315882831163983208365301349984468634146690823594041420925193137513915642202272085884857699085274150444155261354802205886679233926533829113655557148034903337964739941726978590264018222240675099929719818614213985303020926578553603113987038646840280749773132896376850163255075840114436645566112905281778497169718130850556114361680464714382962254340596133166596409765970369860363170249756662157119107927253968245323649086425558046076088565628816385664940632944630813486053429635565280526403974420897499140793577040577158434921064565029476377038652816967048249616165682733376568089313058248203405115195307791579197266350979334549832921634392352959634006264598382411563300933542479589789136519850175578319290424785620469348532466811037785376686830741869460203676345558294495502818433587000196961080823596075956221879132920926786744602912992432804625616125941955555248007129917877603703637293077529955394915505652701061275998229564370721907477710609079747165969809943802260626236195394601881818614701714507061202670849851717005439513491415049835919525594011143506099336222492863443907308825802864669435578261068098265645886189250621244219278016555641590247952696727305961387733594689247565566858583136423743588662866645500551323274669504496928842164182829390704488259268748265461936105440181983666340405117988425470022769503407938747711194598758030930164656576709875564865620166195828671918643719737745274732295868541186368476502757036553939130295813848005488032385730713862898578494519323334667305005979243172269177786704380507445017553901168488243618603809627830566323462573532632577293153488853972798436358388076117831137051128454662350429523923882663281689073315452555921525176340854752914998266549611970536864736044590137257472034529171412461516029081782794241281522027838191370327197801593061875094480461308064491400415334388465247640929074653037104878668641484401536029224722908177704536900003649711396720831238170494521348604803774768417449044787930619480020060337088167070385253185436649112708268709609292262762476385732920829303942659093299019365544959661070504011726801588943113894474012580211533949321831872594379121493976030055142675944519353855520837245588546869747585389551250620806533517827857810613748290362791536016622174712765974723847214165749781925270179597386408754761578483939792764692523918546875913491031097897084033498683125664540861577024334768648014132908656763300423086644319480522524215156616251481194344217401659781840294682317004336496894653277156154290757111530150967025495826383314780864834853464850954534393402165155429427404756038311589902508353932047879111031073617143715862260403215140353398327685622630244369349156920317982202372431226542131008572302684465813276831828311707343660387351227116491016892619641690706160240577480325602401468815358272537578918973059152925156508131643257048213840116432410321745097696217932323958257134347297628452396918072886827928317547602618076303401635606298703094214955330299678648128217944391007756091471922555151306712175460082887596348751898370832792904108262499325132515614348752920986487871653059113800770684356544984888235340904399027377798915872738411682312540695147711442968022989795957116189801207114972082920718929076145800391177568786622912316955906703891789331806920330209556986958894909744601356106970792471630377229858305942358494649372942319044171499718793600731439585952314107967848170832137224418672923512961644155651156643015718792097343298711626654220444384192310672891803939266792308671281732132014930477488153811139519587797287438544618267180610190054511692994923036252416280722522605573862933481677197158916672168045336873542968310133184710423092228309374994890680623839840237264489677654837987432031813563055480100002912394590697249713790769607168940347240897226871936924763278052906922319754326353104546523379993148676801707402953650322400657458885787326485917782182330933782385737438411818800765826694390895647560636846262255959155105426258587007630838567517320968129549518319774573023009690303051181572065224294467765947040346802912426779423982444250936281379887690120211445169471902281859734862421012286916999109123267928965192870738757702500839170394531776968209225443035516945314632633125750615412241096322754069275442838744520365115486584375702828975472753330532168417272985873851646696022518567568670345487408489504904323449985021899795446239896451010471484158052283567638138154373052190550019445539007358147911021270157735560057404970229721947795192771070400025511975796300700692052620899709407323747490204399791822556219906646523812978756877288296022355429520287817195152728479272735160614090493138089905673231672254992189729685185414767663770808841690872811441096138286255603003956499476079131804797045573361306605240626933116932080933946642880602147274882971381316498301357668181795693189287286534746141449760842749147997341709365357796672266238902725453831397904694896616798466524416490331164268881766935602787928553719065388427590470859933324915869285560115968374815659726185798945165079298598856419923541516548487567915115514445500440425116174769439108778857108994317810600996570426475490710005871964911497908102639963065092057950441730424601446911941868537552281122073485487775217173815197485732113738400033039142063820877155528146311049343068090636451427370195011535738106242407753256680048669252167605040174509744329623148049827604263982998043177771492374395835328768104534255581608675736495055808559501675068221473397913003549687279796164483943442688565518505219722003229206205037752100835634789793753602859334541875930554098772328550810538145121256795185745525925752261559150530334572333540310283946128578730831502731273208662212235359903518904671890482984111995519121947190347650674630476340784129138174488687872398294054163493128652160704770773177538672028338667972352837146833927837781698486406710845920172032775005063058186478059534912916091822677819482228091040942688388579744739116729253532796573984717420065844126581173271900569096017199381116141308607655903356362488396658216040277957634410680710490336916295746453851510693177282716808746746763647299897962734537233572404363693336266635167132471132605123542826917303059392254834114999730754551379785088835324937973446188185469657122603736526378554050721539487259527805346885132238598126312086721189048373912901470952993589607383853336231612921473306137339059622157005715454407480980611325927332365863306115823245282141881937009310286906774212027475843214131957728248982410851216051083929863340802056880887039538739172728995272582588484460607830087311283293288190168437578540534645475380952063547846899982655215528788684339386111058890342466998645220167338657880672031581717617761935747218613300906942893606731938518216821288301588971531149787031416438582031451653574534866803384308432172869556255193745421806632229280232062346570845422491458616465535653307282994185364351429624650549086126632695318127220903986609251213077786169625121967147535316398289675851056758289309969577686268303026897473797026000247270653158015027040774510614573462281778940252297940384124271524531063731457595296773815896486079259235686964122101926265231960933543189017224288866215430297084811826801551041596215198691650915464071875918899231893052516022378431902407885807944530619887236207600432387127206186454741002607348249648318444024443400788504150149261512999122075243108427886968187051579598739231620117485172510706223477980179479885976639304329052236755801756098639110174975904010043215990370714651733235673338818882418070372250856016263966210578791568798632293637597119656494301276374514717342181291979653246108468410117485605823435628224800180178506447863935142449452792097091307768455271069826552455495079274164184415467046170165906155563822542756778041119599490918524008673730339159286880147516456939070958738738215935805529196777590337350922814485747103267933558992686590199130578369478515665096883649362949366395535981249197015847814491710114011109413148690221355856315413075634583369178312638742526616349170382216263490956144789736248455338299689874060993121878584184055916730328331869112164617196935537651604548152034946868856171315738419778605371681082237172025762612087822619519808202645717757435798640305560966646458920951163303370570789640006101798078381012120719386356825225170158719458999541289938324338885769440334529164178881678050683342681854202903621187824948427467563488134051517624062508427630071297660789296419211863975630797932442983080801797503731167052239374274703726294346936057508052797707658805877151660670089394509544493721112452566327330964832188006071308458494331646223603933393866895982746347882006949160977426148958995491460149466214330815820013002204078505497853730441642451379813147878390221856714960144293480613637205683424341157128811422720358229573054505916627904405637863613213544759504232475143048135309094091678775963986235264130931917600368583149814002302166914568918150751991377133789306139786949346353327748057161910479784977608716704309918973868028568248417433825394186450328208253834246405694377620038421890125246291439110373127451672363924685559205332804905438514779860810280932817173076690836298062436920542231040781927579654753304074275847355772263361488872095651402446134668860780550579754559813133930536439819980830033849491945393745492950597102846072255692678512883917903034260145058003274920613390409465927128809630147195235823503192747302904900974729893055092033326386239801734850743639031410408974006207342291952659291797177552212944152555122003515864396619448894948918907062568420177322662886600523818904161722178518704465443140673881779789016236652661585987259107217634833463890407305959492836976812944732875048722349980935688300884445856577781079249658689918391658021269016543859551737234264126303361980633974215978660980691602842044196197761601162797207646163477558167684262049798542363253366518410762540634846325910747042205799574226105845233672784518954424064666345163886682082604762714321918816516534950396353958623450788265790935241581091495641696804823846319069940761110399659103042497276991007315911035790917344764228886908845277961315405659612133787944305707337067006124064312557500036103407798135791749585245811356675987699561621820316879420026105027179205882691358856709536647202287769799314089081148678384317438847485742799988433856425134339768301202946549282268040098403639857471595040279823536214561704368988383567733328426439889544547189647736324522020368272487180358705790409441064886861695786731713075830598406343225190518204119378612431618272884384328353993578728398545308693841152403664841167938414143783209204682730225733566412680972909398403256212231841259477661721474895616135195407316631860587033644753317290112888116144061987623812898585778360755054731566591865543263855235389663970539563606745387742426631765675848379757107092104294580981191037163438897767601754570693976993324682150823705804925690291323194106489103047423571038486253766810637894103107121227108960862680032327209700500328156746836649864453650297247613354381337201183670460695557111605494744502840772250889920292914498651977562080235817288062549761768659357370852504787763876757769600010963200883251002062600343680365130190015949253596353196706516424184685204427702727817229829404874114768456965496960538948391353353973078680184746688476508633301432048020965184473181674650316705819772855791087895835265854928668771759600549088583231756488076602661111595853762785737710964510255272447037728917961907705791808617406006094800847435574394723624863432029259096624670682076630022464068707031382184705056349227840966825554310105445725703727832617109571081543204796702055937055427511956072776593309880099208078652717103735460317677311149609919803229056051403090835367458381698957704415852417607582398094075468310075937330605437454867546672410127269003718532578323793980666066390153639447096911302088234875715588709130346959307083799640252795060248942701233560113649465101829874026069669766302523606503947529077632203308239859047090864715593145448811922325795708280032938722830921524324678957227168815836265941587692095663815421766696955307466980558748660744322598409414566307569552146305633600156288464444723826667950612526677427071820143519046065738621535264681916651369883247569054610380637687604185675919370457749404018341127580621230184723846915750519281253217280636328400708783789338633442318134334267668010820632796081003804226711186165862620115091972266998400247688843701863016361861730117160349480532698906766654015269376267790141179890432183830472546086821514740444914071528902648272252728095209506303536601284159130230322600121030839700433427745921679426497644972491201442202162652374564711063195740115035642607588117332452564948759845308063903538335441991086327027697018897164693235523411496510521833143278141148296169351587845881163998023914954999582995970614514108083845983377708993433491520775283738243126246938802378259814753934536654712002287524993235399250006419508132395565933763751223134927838604993628903704015933298713242594423092337984870177492536933269038551001245519681887126566261061848112633818913556419560259240361907307234277761958810276572318191213064099169132305186600993897603661672370151706301860816211482806833008530454645396745541068080633560747358076736578855077778931538809566597172951637458637218153308992425195415029112391399547871223673603675663489487825006821142488117040000378382216245603689459598644565063361426824999457907973837363257726336326237552189523550600899363472910733381352014806520310245441029221054865106681027279520555449750488490218918029764703002340300310729825308142339418403587866762692329837698161894070025121172621479676191918941127692480390788848453617993091081670181863085516653516658014506754480104027555705799689507254961285117632107391365047418358490760535708765238754177559211668716935177275253946140809390121065945540785848843546914509154624376960580763172890192769694640512783843510569188944845267325170967674357677908751972145240715858870553857115779483953136114048567054794077025140704522634885903603494872254687559340979368130272919365930900381721330201365857924270661313511433083655947647435725999539885747468699060111561449341422200299581410931037848931752247170539167662700593820853841132834574953192141177994401236260273168920763636371499042912833896510994549162053855423828340677377006847325145059472122157349950397200025863706758597843076121743489368936030507220067081003876078797042041704440548358190847904943992535574527292495581102698759816438649059295044222058478102224105690830161515080595772616670680107694892129284406885641846738141087603124876783592536701855205085627255495233847109722074850370400998587509236545302166725887210650252566496713090907456456392584494880263005003102626340769570165002602238601902510900930291856541054538598181486262384375777650014366097692947499467961464808085757140459311372348233386645270565709011407601762941408493272400185380175361906215830705220038689689129175071815870142292094275305955689057140376190906264268579697690890052706637003265563891067136923324517670578132495254564739477743484813563863171792009247560665384861677196762096944809729388682860948872388189246702763664691824110662129847006443688645473879604416807899894656671342387282036384976544431212277405416673519278157285993678987697693693920087684961065224606449689340450865036810702640026369821843565263704782044999284088528637720059805250471413806046620843740810295224235557229606465709698655667477327196379803966200446353189443858690204675749664268553310989208762991449204068643216247708390710398023151817403850744696641105619189596001019561142473574934735724026429004727985771539757783095512563355488960895700788399885690337511056239645639732108964219190044161227592047771827483931847557374550606030615201118699411231773300856448724419538387845332245738734316562950284845186174675566377438581301991494092448421937497302877657060478261769415762989095160979605516277802148199986413805768625823442993081094373950892415121429257869983599304564784106045509750996941783349804117243237704469613966798770701396641910235553930898706735852966460368438107202372694826263023414183125629187508135467585813771535799725039342413407367703235340981386521049277169598213941120024305518654658112809324652213752404947698828682310946138970548021256634713794517294690038427824080401242501401649928159836701558088484848146550872688567767524038199631024667062497607110045293807953922842288602854337046749563669563743636098411108976831555171833193905641104393612537103970792735134507570236312841892260397721230947610656080638153164532765329435273827939369542360962708997846324091249255849654654704003237428728018219325098790383418636941304732303724297346016389421098558830662087096700965016553454451784962216188243279348408906485012394122801806094274593560444948760552466446409636355311128841994922136548934125621809796345980657268174882652727826608852791714862978272228812828832302001440223105019456653288690617119800850593843641709538583129518830150589558398684416102202132181019956035326715199318865261125685269349950632732877534126685049558270974616053400722002883888860593650210677470729435973333020712634991007641252376218826143314082000002192422012146359303623997884523539021066618588826073110283476711937578489259149845835870990093869950691774622213258864264850682857927842971217411117256544025089781705387146442486889833774963536993947972051600739984245692850413949626041597935432474130937136219438852460179564262589455041112222030376973992870869718059761382574369001174388286512373145429918033079613438648317042565073325758064454897586831678193601177031597156379192542943094656283035439253854735919119317146717125694781910620455744720743336094791173973176214744664732639838353252958459461345561288877368806512890429416282994203109354918126025254045659523290102255468175079130799130558652892388765339941857094614200263225220632716667533219524791611221757437439599369476978470949428477911410872891468798340939719479614859803006300405123725735220140048709094122699390226534488799739257947862364136321623822665877982238672293432901467112680947704374514445522537033461622188049283727511338517679681939355593674526122409453750398704203903347369575390259721372716278629346766973408829032640638102692914220144191030416990620920079308451936639050366944893629293044718250549923111064726351101420949483641711346608380322263989569641144795282678759522692068542485572677892543133144330034698575840221251917892996395775217005453777719383085395321672984450533016997036795781004673973907264459228022073453925931606503797346756909226069713788285323274571158505435751084336911717843370189924571634013324253299386777954349062929925408709769773227063547083379418965167515928022926226943491797048521805790119491342252425317393244404096221572768308688948017124854024055518702117516843856594349267263949817712536364023151634452510104417905406052870012307211799484383047827733481806438512816206353294739039644545254042279964961215133579427574692111344406841904188426815947288087986171083368506119703628544418880151497502881461036646615142106370721452893033768517574565653991382628964352298412174332040136112818631294981885009432315924954913776561145407300028230919353087967002734367923506381067753570276457693964740290131377976840929789986197976445995959000211798417416875015559160341028364034082197455472785356465991448533573578367663295728941044945101228150644383593134250505130350990940255047174787146720126698916734547021800276733815100679308233498774174657930211480488386607510838933636097599278378329548544394642332769681044731616585667554671807512954072003151670656420220852810041477558454875686791452867610296857405801260888390075844317772326487973542620350171049308810646582090745223747147599525851339672216097391773577010053063809942692380194251470665794515804790272119844018530015561413231720498536246329925769903040112059970317637634189058591793740798768527206363304950678237316075066050348612736171954524498797218997599436336434703769639911916205678845455695764566688459701601149293856756352254791843200645966357859258620137503472235406369142824239048713797888630040505556021779848764964363937724349269160852938523503366997779308153178157293553661124824831044183990340794001364782806664549575260688189342174551618777436550846678171482301455610231658970968435124545599711185723114430002063946179861206854022241585718338052123361742026014847481029132895812620408585639430663944640207003480048017847826060833470509990937258517381698882470990995807619536471896222950770476350669347324329506494043535136336579052343048762479793835022094614602983313234249878055998151194128792109020669590090072811106501166756704236214751121223726272854781635455606588057382956541185475888098593163454823565070021837524417099270359351194902081750609335547911683232777974836837416336921583193538319427791172033399365995951760385654652428986563051383015565769451799793468043817551477476808838901007422102569263348994006961073105287836019128439770890337841482880295620749239697074877766386132677191131709407041448925799739582476534837366550674734717908760576216690754981909982679258668796063819642037567071077486189365478230781687844744074810404584039438414720440393573149088828481629433568472385891787999324359497666907570255351505087068069582342726564238707531332833100626508094857639348974984937512717989539055844311897481646829445586246334702094153626248781187978438550786496311330551013636413795672074198526985330154562921347381204491451349603999913315998814228914878406663971102249215598987866068475106994504268064977530021823135106786358114744911626333550388908444361742377865380263088752309960219175076282022907170610819260124918193694976552113740915631748100679952065803022236558132613982056739582500146588154711303004791680387091597286296506807279188824966764404203704219138954924542725123724160270488865366868865778509202114116195923224238465159992587769160044929432068278758794594312063956345249871664264073078914720727689826129317479356789358166098269619363346017894334265546289639820082337006838922482289064495927905911928342258693710546223109267508335380353185550027661854800200305850203177383734919340035771979714830297420861301770962753987336704544453041101479985493480215664457365019358711324426997452997559423008945140502678145968889130980563860351553225817742113762110387245638527977197587285039691300381701726551431194907636276041433811870856582860922832231337458376973964713838460119810869729832204851901922901272365511473058302323176398569629068549982060610631580919993425198314883553353886655201863064769504155236680842449680762173870331378638677728261317422100730960936565005746646749518394573684632370664547740936193939222856621947715988538992482045817364250442340437641888024968294797547149828366894037229787210836035888885445081911847738796277734485580397235608349786589369369423163901014012008145789873863359800047344815635923347869396446458868879637373844301732381766744070976344903291138636977804863253663526183397154506179791155238197755427431373341476845963574731449310744824037438509029395336181399245104077853630553670586649460957769117854122323119335260430117216940129333308149131513755915235552747032827693891209338220295487172503046784713287152338720002761806493942544341254028881109787801953457035557966566019504514273400724392221435163535189657888547716372014224274556746741073235480600020253473873471565992535731585745081560481183911797395290925753807593122933393847354121331024068734328719615183509445557893276323860876527246873996737499344474742246533370367971904138745932153371323975168889749761070319518039400116135506054751678797145461519097756977553809986174870993669799948841496591795536893266085292330118618094083914204806084621690916029029366801021996644305563000116768332890437084755586784357202047404883066211479738291315607784094796750863891443440940204635935441634404691906376673932872974970544517345762190901669737556744784276312543613446682417273994782420104681903566669779959712259581411023559749330968087507175330203390770195871117950296644118999466227677024170585033884157161207763955740033662740329224699230210261189252190231097255745097018044358112971717536600081550653693107174410317850491826228725868281170113522895269920140988746846242809311641438408793663016596683040577454290607122452147252943502737301424045552396392183945268873052621554546211284815926316151419402616189290835691353440926035729292540692089960235237082735712125011396046403382158720198944850697476810231831724248051121568443034500251427513063965958706274576776312152194255167295943984736302894288920962465088048282626095135608915810856309113415402663417965304131809822987740809721564596849931320707477145051277868763861603703887829676876203102290135625186669323210271431177847249004312900645901672026118667638539436589948494587165413571887652163909737405011499987397769271954083368584016152213444640595661786709874113436788790237483641230425458369180068735099122263566561409652885255959817659488608194306723695994256312760959419036578404559404515289671347290479188762419888914265902232451029614905654758091859945532340548027279279194571196386840878640483911692001007144348918749484482582366827117043492450116621670093058603108793051657209879050940045385319727952500466105321435647181296436356816226648079964027580988648170199289197227135738170516877980539170610807292461575219754260317979835622386087133461698688440549484449237118420198990560059440939459780220526537887510962971873780091426566460203203501381899195364680655079926789675773002560929541642385795351324082047993471946514416538115268915352605358152903587503668390441063896193035005201761068390951109904610272243223087736159024943480978178144668108148345109719285612344304343191366581930736902389250411784349905397773018907236346582506267795863487619711182703623946100550599902197574404678353214546508523516980225977590979652245476231668039520495168414645611249213833827864615825398224718416300318804606562578203881063455203229319466311246170692283268636028641144834878029737331764096116959223267607618103625241906303162821587369282702355684175512006591211561813310321421807631980094558863690007774356361561959250243013233769651260383149381149389546723698432646049529217630863878125740837235144526831895179381535001621389670993661839120505852890113446883262890429677354509751152581478467901487192798910473155946270267247612439192386649964779486158484611129963621910879491313726853924812037298460374576520405170852789555318263477137656965447667170458298075977086712195552740908318553500519526298542680248221321986193933732530469887863281781061244574434651694523487145443733177268644125380708389036096715466399509175954235344092586127634833349880877851548775684351539014345356105252919988311671276135740939399186699466146642200135087979636917640891316606750830384759056784234069908449204578196756223415945733706704053967261395865613567469685559929464188311544361471863476954585370389929442924018191554946738495860645545635752655512595970151860894604007123100091050256909171298103925548408039250387405204081222075546467198275829314322151730180343324992591826003420002751695984010247174516062470363732518884680534598952665415209308331670143512803240085989322543965440197507037405123902644998918621490068296122581008811212338526322495043609679547790813843203055237036138250961301707303996305838574727048693068806362392224083503447998685784542398309343260745291358747609708921607943506919435711762207419624926023483895276546840467532933696816090525377141187554948636568018794327435763018437192215895593935061070340836968489571046190639614367780722116103540207548846513305032278891459470287365719326501628186903840683079811872682125083785228810493514499000622272457384653850304800344086009232865315704144276965077979250412781345452490652147229730529635829785434117578674271710071335870627045560365077176518253924972370629549873247733042649770706023367160466566032259197338092671363819601616017034589775540395414481165118479930954502096898129006564955459143319015112490896931179389867510844407361216520294316763229703129557854429318281474792013519256947556805436492293358346463743922524264613808907834106841091585787118794963697660640261267752214114026460503261103318444374260351079126968998679188804727660216616802678143110366230473378023066973650439752479742197123392074845005081995465282544185836281863393824999980492494926642222168453699501705340294772075574038171486553646064308457125692885333581436674211056059704186861010154499636321328380221844112698871263991856695431068165778609711704551971506094561726706467638866558161445806438580889213869369147670344335488560574726307701446650074237686367445365401339411180242426338819410772386146127935705277424957687290846768410196994081866900233350767220084781037215068946598881309703424955532259556247847608018997222681407361481794046802561378340296354443341954010787694232443202407236805381025362158536686555088051273922137549448702695727190131458388896973095999897308978668619160698826847865840511258664339108037573295914414636648868177107168711799903680003621699169386530291612741598568218695860644943867192622336712421339411544058921306211421659931029355417123683038405943536407282073209814305752813655774109769453980707023753288696671064341956393650210467129715664116662503151246373729123433509577603101188959375338715512847275374939230564782620105161002791977626766077667845740287752900997432235131949780495264670982392715001592786793849833671823185929779220698205278503618242703575217243874359487207125325702583568861549581040074960682663339460918803399543935155291762195102698787503233321601168357731363835607257175817832894710788312406875777827443673871937888749396393068102922357906155346081968986170962413754482338991614976129909711001469992420865212501239581246704633586776494695301192668210749076991990130458271357131242615797556746613578483407110885480313198257334102163123589433527223616851379010211454109723599347005219039441819247821214100443517082122471497156379622387351576045127316949171329992093276167432194928057153918785360745209310902364246993383601878066780276400746428826375505800435010174122644237112448779215273465727757249483124793693834271639952533932063367876203258775621856619065321123224048849086793418520661089205229377287386795217618239613468820779443948818633815756272572156574706899719568690148036214806081833242233829675824052826789738107238310633960816744470063841431600986156141016431727403557966694996416479779169871961435254519472024473020621606698310754250993948288949695962770382980533194222554731830366487057245868224945753721115011746009196381496568919086391256849857080876276840102626592831381969453187414074895196147990361964466142889006514862372617957015089128073872826132681558262215825321524718580934201622284954558941920820680204113501833102617210550964309160693099517594458885469031546160436791847263154338997919966900765299140297573042784061714523550062014778884966831151896763431445369777752912813006196406196821445711665869811086558505229291996347005829827780130131347316726092990776796186127465930446088006899734003358540904896504563377702998668640703801320005299140234894476712918404689605038632899844313616710865591769981669043337738836388245917115845756342999443200093527493361294470495715027049058473016730866232545046613435040093943320769203150798445606289459137651165302882886640043461594615035464500035129535686448634617133384949270655920755064091833585693800185551910936425056852207863188859670600193291541949590937990663888812128629282996128001954523980602458689289062468308100612430238448653686043454321511220160537489097318580363894357964753227978211445735895630851436430625568050074810358481232207137554045504438370630581360339680764225455729923610939676793909279212748668068796819613587713167831992906917935328314909967481781554296521129640452580179800173443721926366401793418086608154763744858335138552365422652465994079970549397548933110472669661091526254395895622611797090628731641582235647931049611161603621928848270273495787338016866947464236814093238665590108938792282502169171074385403079989741764716911869481738651808373105173471699459032786946041302130683982638872518740947629575883296756945364024332747234028310969055693738758476277489568823058304527729889423591879294702178596890327291047040159495726067863807509587358513723555596945867642673022692737232691044613147113272324273437595210495082800293633890643318376065627486176435238406461909274951927997155607743990852960151537941979663628239269247696187047261590451880207456123721730559953932917286582398302076415516401541603113216496300212810301277723494431264519536005541432225349876528187708670346667404979324224407873766551395537833160502094642222761503776022637880431208714801564697116529459734850476740186625563923495802736922345429030391812198186879896068401557239845698799935487129062405271849361382618208405017612050573737571239159672408053524072925128068718390963148643643810043761985718431883759279637120824030737555989831089527592956310134493552995377991642307245650011667615560277394151695828374702933129739465111747156808811902883511614116202968603906788553800555100839652527399340138027537203738952597506956084090355399546242426483976169502796595490143499176325375299653011849041433657802047189819980501029160378313271510316093028810137801189869139415818807805100185006801907823807134095318452692056994662918380234387575263998245926230940867294997447121448534227485067328623323921299968033280730217585446430927928663131569689883863622505558023629999974814849877148919387540502738427119105892205117908427839855681242804534546049471294686215410012326155826164102846214142228223287099417287473786593294759602467773300839165532155249658238103218886161281804985832030276477440873007547375116167933338377892782001848922110896920059661803619772183751163849593893435413717613156546710811881032331590630234170781915483253670251078229955962522195145869676437153563429792435019035784397166367612111534276309796720039519081966288566896831581136811644522959979138298273903619091273044864699029059203522603760626390177902197971687951798052319359869318820936895056073742395121101035926841411556441607259208604246177963546755925309226432672923098059560895070902814143309022085678985495901670378745009430415783646324729503799286969594216767979504440772736212094301773029743494859369807743101145379404949552617844485389115588518071178019058544654450811284205472506102224132147740155779872810715130692163386299518173763197482537445602210824103409993138332547205940437308935474840129524767236641186536618062935478550580199464796453151422783659749604433405873135660260953552324447009237760166759104513675706463013164250548544562054234560481927589054144726682333528961443313515533214788925275940013851018806553245501909286466798772487848029601529512689162574766635188763129357517056309733540911274417330796659581244893473898941614231522117061758875866159643942479524656454296894289503758410125264676765663074759144162754633040115357856688873733309887889635940140722658914046353127774164661631808752683418974717500306171612204038603145292597587138677951471600932010902079792532514702397212767088778648529439381392390406639971801964629711851036181304710671838268886708069635908048887192944403367360961646572548979293839771970048474532491078260820472036642305523814510932258286273320185081525756347358598659825827487835564316014328372345266660590326611501620680101152891775016826100391434250038106907142253661460588861570122034946916603277604262958251602948575748600711064912772038934222967534059702717287421887466724712977179953467812192489654230058995217396347903837697047345826269153854368611160104637696705459625424900459373445734575595849705579551407414706871373710047771228602688769525644519829462479739809133312281702956665896640168104586886849884248523516276908047994520367995710244676984905884388056976286277110176163752001087950771910099379282330464173303873646504949687133385812719856154851973151087923906313102232037033308802397706380494059905890165024500299699304878378399768088158114813488373869552366604821126682412152280307020790030285588786995563005539643753176970050329849177549698361535364049681165822078840073050352768162101134542920504549512973052399970675903399051931690570862973328470443083904533039059985648241105096889140747309525691051089039912252913048782352207294331645500171683125246870135844177951845021065122785066941271104233220650264030958678811568272355703260611942282849186745507631524833563527856300974018318298836091391745423526050988171117661304738656288402471891646317879964310412188424519810315890134837891406532204623323756874822510273809439303360526917467127265054367340017069446608641124974830398240027015503713046396132066081215921040180719336081313426656714978825945366570784873317662993219050692639590200855882435696923241032924999670187857295947467995036264661929080204650383770763960297793924914195857988195574909990121193662935391955711621261401418732773325064952025276529351079122528594659966666021525691867994204399018044113500538698230074145513859943960824169033026668471174261400106519539483173172868605734676176900371126394091171656151075695456490286257132716522314739789654121889698056756276255971055151842042520102972145016553402932159472300277233703544660369319455620640436586291038236462007426276608049412374972637201583836769059337178651986221829892191240657367205622692195713053380708357895088205248952402261654958048848203720640452078373364659639054770304486919513655080830363288898367821437595057273335749105975730132786889043065175195057632213750233921933370089819886982746369197590537209575856246095778848450425912272772577364924963033439579536101397790549834335624289884972145472457618172551304065575402162298588909291485235827647258120841563311258791117688433017375830015370676638595712942115500724045940550871510194462412651947312108047541651851993618508632052150552095964557024838097842074885024283222043908788828181603364193311717937328387449705370352058986728241972899725414293595204870973675541896070543664624818632094813261787876887567563652287055672067156310225760245477179656818966887601454272215372897752739377733848537413483442960230020736351512876479081893720602358951388862283235197779483987465970268504197215387782739122717276571854045820656844756689133375124767919371860135960106356196691544345003346110136370043629633481021724080562673567491214032580375652197748796773249458902016215525363460969210795479339430106044678928849104595756587342502840388674824971497037483219997506123598541068649555328591076734661523672552086994899454365166946652575243012032182964777384721954279580423038268171763791732266118769953836105061894343460384865470206876008906055231427886306458395078802281646709591860610812092608869325651295285059133950552542542826281754981580111796595490611393182493917821024580922570041604396728265299669570030676177140075222623482555406859972127888102742574297114084392502731359918799472619663531982028367853219696163556919214561810095892878867762281693568025925384296582214572679888268157021353206985948569102523928359842126627705690787876519369175479245977086648118623297548070139395793981345501745505585825354695040694995354802743104942623338557788534172222105932988894380622159608699529193052552713737217015438276722584310315910115084118398864441905375739147489827256565731270321045258394619275602049919911696988126037468585907450363575809358228180762120832767915300303421001985149567396547955730064035402820176125359182950396840596301704246364331790403932888191179771750862221926705854205737111627399436783598636318685153505803355710209817910991943377469690756006242283890680005159287741351083561070611361698354893126115162417085626299268112639874201755786296447106971865622018386848177004715252919822093133307097140369158987609579891474998536450899453866703018727969050368389860762825086735297194159286643493932441822250108222991338902157081118559767715155905544319470198083628759922377828651972087168465694341490522244704920460153609919360594216196391173349788193158366024534808516570620176490498764519605082245705354073992752883344822187385525375711244765975142972900571605679244300319349660847329985857656211640030328966035185934369529913238885524631251236005979519273825903045447221400468568705671126418052666915005016606847686037484174212690181367467089606454905886759240454180239482209352378122341933522915356948765103244476021253581366818544740634891489075561055800329455019424789802814961148505067865393893648662039811319542334204783240368417465330564879334723275015951661414834066601895182189969326893280426244293295499413604474473584509794626279576558342700193033595107798816969734861114517819321013217144200537388420107611792163047949652017592157744221297821734467213295663829522881384735207903199328864244366990795544457429272338653112663810629414796407401578977502118389210819176799906906570738818756254959640451982518917939504573929852396176699798126898168064531162846904161950952047507537771368735886901401744024376569637400420063985097071588115603865894782370464223846255426194046713640043885643565003730367271571742427130953567000102423461012767084370700447083727420998626087667172893191144890293370773100460402047854038403435256914537655459216965518181844340159355561209069961282377934623314006575689929797084939756305792190265633017890645706385212599961199205050695847655850047628177405085868044307119650836488966461833369935609195593636047499872228156976169844651714169115380907059942063422319378511629193163130729798153736463713850498498797694991721361783322971149174481329758369180148067334869488504504408805244972686672132837838906203462732717272567814846642469120265908100989724427469729587507776258619561908806586716984871223418553364488696568201216617685090575197648212807531687719679500216951768500366411897346663721321510188354301619888638099068622900661978474014775616258618646037496124728066347385867557467725707157486694002237501146819962228682975672750423336855090034301518260905203916364095474135374136601001192379903754413036999724739450932406999239091230778493213921050799812566501704272013302232192753847924449932984096295510136394601739940833670568337324330604965270330839224152601676666633299607483067842893483772621257438290230263950647397916921611041271943367531006771152318882721208284978788942988774979516148824868414059081113849017329193597060760987286475692365080665984907873474094783786534213530054074040505459911058849960279215581952993299827661870324650819842226992195259513113741048869081328425164416389802369859815621747061563906436947314639116277523249459784074526978716597967763167371621476891693394193936305132902846969446185691310365674688146801983878521975539554746214220029907297768106542092225466946817150878707238896883604846031701841939295218416654780783736271457620640048584398304916699353693704938694771508190401872467885556607828218786906974429398395168941385771481951216954295767665014076106773599957367413388033552681090006551175264086379090588250543593060543679457715858773811834659712516786852711474831931585259277186419305442903133677259448537612640795620891691038360461547255231082490901179955030827171798565708195298299353982555621724088550786830776720759692727900453139914511748489489177669593198269858803215152708820946762928751084368809889226632435869579402593148666383459700071859165367161409057185979080298465327225027866224289293238263170462763972198481676683445181136834665777383637652675345208690143848064694479726058964371606911953054324304233267129444210461581055766339807760833375403329278187408633003627142674231745805714485099565673247686635717532709049286355961907576296631386512431604860067910471141154716412235696869758965549667275181675212306342494189342514632484579333022002014812340363348675666485500947037393289947454670076992385096141918522846983527294664092775738650565385332597771120962327031457928219663528168884186635215854085407353758085905939469238676532413208122124966056534327263239362943831212282316056082698258336842698719567393761874068073627448282507990661594462299918269091144343298048074764756246956311035037174875107595088469340379368270279856013584513857761721431405476770040083037915452378391298511874139250092473985313236407770276149111081775413801255146303417980570826763560050999079411643966641578304410128419347654708275983459808426934978883777079814725973604528609671464260059616486759987062133073868141037104483603287217129986777415845888966522141320083690527471743383066085627217078934606784304560378940667716530584458161647038006955425569487273752271927706880732337865708083399342606777768252023950320278599856389116392338663788284444666561347153795364741075328742898416021335627732755140867349542948823313974171370361029033845465337005173395686371945799100234600782231445048714067542152311630084701620392931456851286989308521021301656792316828275104098114841895259619817608638868479282380308518512985676715807662261405202130905228412241863930942142956684222783699899358959816364568608340244469083811120429372906740531328780671318228190322165884984770371939034813094394102015250806832865895199327965463455204936071204901108374536472344362831865538502871085170639441405543740733261549373339690672876161587536472174281613650133259430478505842401474264471398561742053212757342865150866236534822595634763256681534693744053451123694686643036536727505455154807320826809165912054114557351917535668917996219592587772177889268583161076469608115846466561103423746057139790502289848405597504547895992663572396686992643236908360654742632049294070425854816427644249076471173349483620960350761588992585255128015975392782117316606981949351511106281552598050414014718581979645275753403370021780791243080203183402134800150335118241130175747667821820408132847480455212457462667964519198445684032228120279581027459597307346078086222802895582833322913795662506179410852553228728328074181432727801950584229942010211698263721566781585694593489629494443983447729960611922902386855870006177216844880179316540858441668195783714348346007558386886320720107058870069981158743097152812756317241997048676517343375181362275755788501476347836061185093869201460360091497374828186583018158744567928418318450878837880187999539427433457763287314711948284934423725558871926358158483971407831523824062345449796285484039744743228771794970679999926569005772908722356118126852616996913239907175067450765899151007030487391020846489668567020050470041143590001894115491392443236247657383716283864300803677684610782841208101079922802436535939548722926908797593806617354213507755493647678197727389891803165860494964859570692183091523579593964836666282796205791731730981065871907337717924006221616119468547660632017851371102936846928859928829665826436600255018307565807252553445424673883628759379438281216394741752014364294368450371052175534121655681877602462531346289071711157381180652829114760031243466576252576867174399253027110610999319853408001896860538669435834384585032904263129242576148544865975995696299892420550834131847565574649288140570780860843617485743454025740812986629716828119547847712070390140614461676860558456854098066887956113049042024689096221512580426848001392428036863766707424962244438925104529329421817964344105108129781343125027475628250775953812881619422826714195870739183831080588886217175613730678685607915290743721153741702056909659716931018956079338995181854861270042119941520676476829439323273618337920758591044552036778837509651591093673302509656556671107101620645957769288370460089945526364108078692634826981710557683562471859614402009645822919098929005506942854426796274054942481147811964138062886019375836881743112892625319947820351827888016154157915584156355074389752888087217323855623140119672529433938247757174428342201431566520853922647175888397454948408640982212298777967386968508519077530762363464502296511363537155599417735940949065109660572157460537396069464790542472562281499017307775446876295157331198665188207565584642553155931464916732395038784620897733276310347837587235366852847553507772874079364283634816893396364714824774606573501687472468229610465499488359976605769981173965647206809522780879084637508514681129096943191414653031308859731136050516644643249893707507122455720747260787946668373399981826973886766376762026852192363397681338325656357859494706320309356319025064599285346647303203585499638477245512020350102237967953212307486861920899874315592038914727012213043529299650962542847627890647458107896487894455326573326506238958790232577518209859422710086721749162482176335091627844336899224649052788828627504731550938467989096757283370866773476651294326046670829730589422065758288893617318802327838562890987390357401321236609105433536126594596550455403814806252545416574464488053137978862921996952897021359202803725765703854966154572678747389806267008267637511411076225889427600756794687291115629483288482215420984773121469122810745643269286680737989326815903385958849143500323204721236374491478440323761086236875318827638764268303651625921328097933557686148170045924131061062105644989914289882781767951507343579894398822999598938710290616272957923601963631672817145931852391205764733942369890482560401894708778317853362763883249768627858012351865772849068941101747202403777139018998827886506141320222555865876226502755062357080702652306088444995337172147807904335750742304419378794534254558591903796330440227854857816465005945577632125104606793636349088063888226017099425624538863050095145034506402440754278433259808216039377861775036574466070976864666753016291036151068520892288912713512900996550773630831355590053934670277440114275744633706635077323395831694731695901828146409760347534034992052762871447746996378269548161465892873002593547580508768399988100977162839437232118982658611006431797271792070305182150156217810579637498933932896121405927214847168858897686494206799840949332605480155846275170915005173583724991272385855530919333363426280749118538708282371438925154077209841066149063320337500110526870657827778297692061659822953071464982662728021231234612167235242363698630806459938943085554979839496803637154451393881703427090928181633938879554336660409650235865723207194479084025884615145161125681864608047198560435773439168558928673162407115974655726657088001801598847592859458531020877477548345976308001944378949265007844530645309780019053902533649515391834825324916188176943830621754286550317372370046260194419811203352257709399239620212000889233027953153672389470142888240258986475899626597570729565877558770536865154258983143687396069221268930789142939507450965110709360201934856145817123050229166132165437411804767678053664478917528791092575450127637910308671472564033292238512061974164532793854402721238309764177064945529305488349926834255411726030639662664209678657708483369077177620430889371335541639580509319411356767349358125981946922678525727790265739923860011469540349998657340459097780955856925037601619341541373169321656215879823115337442036243064962644583665930674718304186041773333593688806074651553238419965142943543745799169175437811314003890286114939074419995628382560401847665958031834304474137373058114117782845529828694955196307855282498104401885520794295599961823062276837224107306729695685042705250725366245093374636317592437984199389337962163767242099941379140148213875876781680068880840479869042629881379835475818167888964452896648022839311130938603478074340665230042183404405182779131910854228073884667054845291630512599683445034233855668891796144682174223889063498763564031138776783127083542807256626179550493093759557391357138378434101353239877227034353066393686557956017464695202623696747598934447187961643494206358571572357079720175127395947989451707511065314787906385826949341491361480178488764619239073217503658176769553150931100631201355291495489615247529036926722390985875301415128667904277869110312226848639574025918881501894280419172386836648899841224223836307344673068479733046552112851678046786160229722383481135468331007571819543379971490411302505943743115483511080079104581301759048789836087067789050099545009983100064894927605544547276993734367612282509673545927329423214310114962347843739162369121223382296684030600628847790527544326262892655421688953235742014108794288219124678035515665872757652268810661875432433734948803790302007217812537301229211362360151588465995326719401969937581259577352197042978538107425491871875596703554607439462503119416600193348630051061156741190816904643107331447250286615390234846038521174120717389144328172184226647896702990767953240241091954322263549170235779348388743814687136252518253763043460749529546192163589783346341802446031211654047904605988493332749861235728221314879650509009890587196811248157902064271940856741796081568270326216124594933575785864672718230089088341043347916511224923467134577668496678032160932539085698171019956632597136509206506426049820108476555156272351730115864394564013892122295604813144785855115782038553948859057441233066211760692134470697761199780733615660187025365312457009016967986458529603421781043058806012869507666403483221620958951450032885743511932321598477395236288673874149376066808035766589614660181775506506381955059774745956697052936787004861744464532111686479065363595162139933034528529025414589417982665332217117885887484079047119805335031845011002259420292809234146793264216457178356781888800647346499634893661605294699730116401235490388866462970927237160634113105611609612498549373589852857268581972945691527879233478687942238205726473738457930731597963303577393829795196237835071345092933651497777384001438279078518568568401793207857807438957845200458895927653594905954109399093792014677574693526779632321775616853230663734884919439122134092514680994787610742643039727240244167320756649363841231208503052624844428912314655803957238293159916734026051956340799642295955071910899858786987358496076208580647812750081547696370331960684657586111991458638247202199050731337694852211109605784956953174860848810001546940374225956572902686562898385386719987568207587264053559306098683767157492815559121049571215110282036988735333062027236533946361112226371339385303069524695518073534519514673236936318069279660380005447659785559219111037606311716023103337106594826286663582074136557726858276257330921863418364074422253531040088599197297491460019775171761643636005421896284889802304686693404548849990115144496875771115892558028833854609928920873452536485221320811536809074305732226618264546249456519919044141100900436388041034026239442951491296797515029411258103128071008566533751992114498239071780573446956000376945378709292015408141924536251969084275970890553689667391588670884128212005628366704757412410852859544962761361848343187827948795349244882897745957220679258056235629999393647481253350516385702599618313156841712218497504779518476820937193746431341583801641992941578224448654448865121415104939807524877533531364480743846606211469513975651190925400293682209752694230612610251014973445531823531052729215002281115029835975550707617975950723367139894537115757105808945929321055944288765828819016325109423967368481070093907122962605221002867961652645691273943144812632334859077586013200965061655993165718803605657156230670185989213698985488137427351908658695057920567381391817946418818679485297205045975600855470254449344289270076900498636170722426234616650777728891512300500487056207650523770150663228561114806231140078196540816407381900013261676847857119931521101289065056338100222783698313798856145928355200845567931117414881678268413374197286791073726179080899497735679274319730840207485446936708109110598605437185383637855744908793887180972653876152908255038698063769058481986873310281178223515161161633334364583712560692004429216258131174484718206904391279925267562560498650106771636943706487642086535478746845462978470793156218981676349760618376742457964474121453706236955839275091922848876347298534479333574077257165305411150966597960301731319033232647861738380474308924274078406530356870707157637657272225248172538590497749340999126735019139097181465442759975926015079264153216436304416725885592400754018717088546678801702811212365250147507149053659369711195109475298575795450177767657446258368805679822271099064393102032480201873557596776316034447280720699561389684963255266762709749142558892670048678215127389322274999445539865242340569014412615366044451238576145463184288143483414846861342245050632130245054376935766516113181802138075121188588533842348010105071207902938212311776804591052917824800962230493132999536989718785653321537880883325088142479250534828906402814512840237680091795867888625771101948965481728907189940051633992401897399243685099081556059534373550535332520470002388320825215747892845059285222900831082694651358682657910775278787260972561907938028891297098712645292424892888677971971879594747569744773617013122210195726746919953899095368051444841256480946804111586168447039976595836512202237796246432548198554988743035771481669185850395911977536072374363643739525781072940293583832235720269848984854630698997399243817093102967890853243145205086958396159120932929519838500502302273520495836762496519634565145083859800945379950618307298484151562126947466886361713737172292372769890022598439678509949120230127229173407730598783562648918093489372344905054291159771169545702990625690882501538723697616718244742245062211700977808459934725385051902193372132069144190065568179823707629274224050711242696263822237703677323748834769622025099764930121858045710120946993202640862823341508986284430393376117430287257608960996652602302296965814720816413326039828556500608304962007146830436926876998177673196456628305966496636463830886341532748545667407093885923687718901504251127457864159562023828600064336724157374425244865852101401380177203348998728550148654234445154511765236745359220635969948835830888541780256273019715462028944216602871735117668415387359417796402083573162996015082893662754890064306518010747720585069217370717904317428109572504353261796212716029609509269354585581030404377181024841141413641818558578802641470642105975096343011830287492546964878349603558408774627059948181380103266285124884433548580690437734871182427996399159511279133150135177408877668828486179563403882840502813262561869248143546883981072408631193995303132721176479341158656290882678892858209988705818526831887605066388483076285989237180708815572758412376676553764169381950694177150008818050299100268233639065045623863548825095853907163352111369403517714661770782464489591710367976400305368999183429588926732393455398000988987201237203121724288100655216507122591368558967784567088205507690659650879852143726033899133129677140021558897406808382166623119888509507914005955212575486340919725927946469924414416805761865829711570848551245786235166514532323317519008841267368451027482745285054680977034334000781287873604703747392927712992505839082897392564569026102148291548233716589568830347460120712262572078121392186091026633038566498545652049347589734565983159389258630697819399410775401440440185694133486129337750753469582627157103361117698653759023755102014711899986834134562029829514413698721030353133370566970957101034633572420301378718507072824640013403911884856644457390852443421010981494022403653775314316872864001703044834212398181790252583847232088383166817108130643788471504444896473941200258660925110587967638150482568180188058315523713154867245366548496994394380740836150568365405692207431106246163772730449383891792115706199176785899274806505345409892359244719401385236974151476498044331385860062775205958218961893139516972259598342983276255483695727125014589952580049017282383618178377184508582128919713380965635238897772655514505558668237066855710880218682327161824443246012565107277482207852397327111864892534696585327880299697782754928186788089138908204542894624836690326812688852382348898698556827529894292315111998253434604647702441576411386739073420258268229516273813539802861892270502369868433713789889780231967982685798661247975369802067790814301561353054939484731978568786688194065664893805819139547061098416470949372313822513813150773985338494031138592639882584273508391742959243089141721690508467370539671909683620448873452279507750527471235582980283597431198070417523659460219284027873155942932869561814402708650071001692099977337365908046152648432888442171953799378628733633179143116617326641871539520866372337537307942182299187044186061948601398314212562935028577385767515776567676172565657437988251542155200847492925098259196203934157348194670146367629587062256789122036373376972757649778371888659889483226895850638189064722767897670213744837970676928564897105670878150463626691266147513239044121629232170103681612059519296292354835865163101761474389442200192301706482513000847909559049098444117752034639549037024367613253725162890114159360893279093244573261272333131737395232825563070931310018630068696949771260986532730241778740346357626728994099449729781252069744213891218386433087225963765565151623253711539003444131529698606916708101432779797422840420082948284223367070916936175777951748591792976078238034898745112192896409215835076746061287165167829526631056435424695232637455535205681495890205480186855580936022684027611636405783509379577820656698802451999951616018977403539009165784772849992064889785802129618230410552451712177730326582742287733770992711886169960950957859699499854172434996731826556462887271059505216198726390329957736058470692472279835581209066317619729972154666728807913826335614419311795316295130810233928564365864947143270560301954438945226710653628354369708281359996747412033374193699983957258584033403251523565769331425962684073020924657405714176015639946618875737737198112445693421040086713032378085495591843959635501362856327050015161898950303727571369543255355610769917199592275869423223183885639428517122718893681467329861425224901018379264316442153798059613698156140055286679092288545889356574103332315038688285554961064118042063077873386403436184645780294703302602516340385561599537988600763280417335107125396963708138070628560559084941623033842726013449094414762382647825463931321005657507211371249530806353790262580179661081725667787513209503072346026701221165468648277520852657240869740595896464276561309883797103451655202961230697088874846665048189916431889719440590505241501294538343943802415449842723271476824668891586870222387951006828453625343128385966281313051229693572053725314855222451460204113314847482767753468123150283085259829183937271290872177819839244494878158289906865257218661024878213953571830734466435276854801445414526947794929659659568797211455128702313068186396197368458618621446516411289994722540020056459049401797466784229987713581508603733424688948963538427955446115370364652018070934908121418546673419072528137061046319494288228300912302961078924136953105696776273957013148102752106134739565062812245023333584868188759198932707092614294289992662358853356264261252015828717029013477361454713344694261858120263255645680725485331805578059388014940923039047427465128039912768661509624124731572136267822406851855769708065706607643424619022400758757008399914655703234973818102728296910704973934671819194538634342981481612777584689233184395115090903318971944521695919984488313319537361976218480619599906029727047015855177479964341723948157265244817829986620055761717671293616997640503293425614869606148371766564388633611079349661879153137574259769361626656720536021666915192681298977523545250580543609936568680191130591175920415312898492339845765779208651101279548309407128213516182714406648499951906831595897877560687087976722452817802909043254705835020067825211836551953241943758998600628622298216514584566906460693952473429545631147586397052429317386681574205024358173701377472306670783516565425813474527522818509413420925108574922792627612670089693298881562863210655342286296200136275208397725127487705802132367986196373836430590074823216748961048484413580396848142920573444502023947251921002227667751683951677985563135936042342435505250078980548388349856888078163745457067502182724837242390404772356375293129871212012159651213578500426469870034975753319186277075077249902550177155544372394440479438864514415559062760905933054290433498327993225747567121719276573377727596611948716040875716352366121391198045235840459080371456085390524097540138942327207134078159435904724079231656217685901782536493116865406849129942637736515692156909138004843606998744996322331940922008504101774344845657678701437504007946677910957369739168375043052607137708974471474480203713376286070599530176168100237821220964316197883946570590692510563181589362410971169628242179296759798657002769461254721082344225513533744249832433210586756398948096856372235197223197598187031152566742285840599732390034835952399015427054965809785587177080573677582221543442411375999914769557141823142488348432944105626105810788140569499585015763593889375242952194513637119599935976934814259439688203002642739605544690768426812144488808576534915451547229395855804413796502343176017924745251407538862519721662342470903553450307748144394446228319447358127814310254196697205707814374110975746327657030032151958081513141445656566555982464712801511747369056349903140493783026893714628562020840249341490391755273930123394953722435231624851843850332272177311233228384414144773029894507611498335903023119823400601092191955968267620348994597187743928435182014327896875770069999285374354976744534156661457273202102767074814904726991051380865597211745103252452733874062305662081708951825207101350507787712473398017024819667165220415737644922854265790257689768693757003588091408921916186458081400871141679396327589812011468125429319672826837633295202891862214820795279932792078504840696797480278256032840167301801842237508897745678519504827014999890669206878810515753456716343040094267568652198324802783215550687981534131680641910846525223419031741962197769447427309165107592965060485091635122646427841075852065641024014531191686026325319828468339879742848568161408993247960909824348505318982204879475845270703012880854965832999762635510718489511619637629212187740629340828126625849756798145004023562359709558854291177004185397658372697286501811600266027795240068517998039131134606126861491976829909263835474501747301699224549232677845904819296985264724382358429109991491127646163419565562570235341779072540871777212490352763435640245134152139484779994443197930539789296929321035671006772416330820947913195920894908985155769080689063546400095390297454332180120419892410196663954388721265491336671099211416848583199532424616318630029217924975535265750458876324954251138633322755488092494228169282905186340330619070169701769629571404513628369520118856154935273208068039891619320239767025483914532903158231751609910067250267718105081067504322815470704118971702217314592095948393429731530397798137822788200609292595467313033422012249956759616867039729802685690737701377221591129357154392595210128938248389155863389765980182236509243831657895048414847361116941245525285717208580582313681647296377962855281821044677435321823132156499560814815978914676518530230414128315139227447708657939221388563874574090883073299156285792541159681876134000811251848511219615260689346676174759489511615348042028862889565589457729159665477322295876476730873017236574676035986881075481341154308611564429756563164148890962052201160693814520749693124000606961030537476022270664786810787303730881570931056177407983980992756705914790886502354541511781976520043717839795024413829040822903401197721303643041255785117405633024968295870269026279256502530792036988208865359227618292295656591307762373173589309275108227855437960428513243976017486517675814850654509069936453578238424280503784583273993107545038618780392743388690708949728200198655231607509768477929797949910985831126658891680086708029971697991416237390096176849923986899842966818516510679354658187213143238212723266889356888822486308867705727293205335885381601612944838156383939003799522558171763725083836265058127204472856168001668010256784266986767898397594060220766492443302240526379742265117528517272813063410311774229814936319514106669920607341647122257853308525046765256455188253212953041180881919366718700476601093072768159382028540704626916055862604127083709071343824321692346770200829466026175752728550861602672373134746553073765811018617942920279266409966148289461835294991637295161613191082067090421541457529233327600194574102050091680190836865064344710176116723291798323781895882940266851484380786144191139611410684218038431686249783303483833273419384425598296265365415960729568191191938846750749540346009780169377081999060271438879932750042761804118957410107053513876133204626821423048951549310664822026711133830559426792320594347676120588705581532328562915834653037790954282314223030308561231426759762241620362950574119675552264726884028560120248258890845943723346109124281760100422290990022312428960947483500464078616023589465584861988686089765532408408677612799166062818188179629489571710225284167134590095458372546776540461692704655656777981704167423978413968622796192830682375480672110843256064413987005561386407873405350093891767645796115937895346693453819626640089594931880609304049334642683919643425934461781907815893585833998279798921267670994492827094026090439711428796914064540376768726467953909039885502718743844790858234690870824554171359349110869134297264934263973952612041211870996025443658856747772626761472709286434385506996570853736820480975810930667252500274859920425284218312973840254511176055609234914623916556266121248101414128404042035207524414004642940427631146855204082366879272483538734505613427968601319075699008263432524481993007568253213659201549987758720928494190510524721984771516084093550680369348286639971106299005375484301716562204491692402777171702058980445124679349203105940249968013008009786205628487415911164428665666117308865294276823255375383933834207010311636918031908981681994155247787024459705392139788944457980618950185651547794182933459997095920876839333618116679793595832660536642973577111885152473934286688257484637559888067620057941559180120218452699230619553552326897875872779552740036725093552132802766270070869704316772683746436542221400400378796252113045414215458320518235229152247992247230500978951032821632199631315195038170806477468482683156541704545515576653236897009710204435744103394510399754519875265416177917324055136369041535243802787174788861912530956412498410914926293381557160281197101741361036576588747390723858838953143193705161988392834129811291145994641107272542661972037489345164469673203152253798470873501436942340230632248884068146393601727601583610578941347759305595297740862666593621136568826368477658422058281058538225974810500784612136869183470955367036943900740034100636343561065497524817050606924782003187899036716115888802397028213468532961581259824415389666694253892216639503764213473385737471294922752585858656324530162638334144321565983793466016135820345186488748061380277143060547904247161493313368087140936072810227404004142426034666489724473963720857835113874274540764322200139815785419097149723367485211297140012974135925408570083075156941016390321268617354254771601062686459589305025074944207986535633512404049743270528028459419160136201158220940975408744450750294174771722361120791048684081307074549040161128066780838141875368308532002346490588370355903750287041661189801527243164250981925777732668100940905889945114830886952420119101515403223270019776546231947106403211559031436143965824236687507198235989627332688302440595977495165712934335128637905606811873402488188223442805949404942009002409136097759570556538001502150524061170018138101151330935366747893729534700059663923496595386422211332762968336868512727945589034978369848397810310449303668652976689051749571314322389926079506030649355880103506468913987952152113779315020894109307004912844334962910991455362627720816958269619281593641607510446676928421732757271030989561950606283838800294202997366096533307976270254625505828390503019721739549657714810927959368217429067247782323439017868800779213801795328238386175626606846616626588815196007448592705499629991144857592304958623533964378848046560673007782853304664481837352128939780302153540710987479856439290947188379482418919143480653355304983587311112780563913869884756887486311029349211799141959913997610554414454430319135509668071964215400372365434441480853825891331750934420314119396211907142201547031201202669271477883298641471381864914999312058728087061328559411405220721669949711289922031855875607598409997267900604721998307183512705269024027258574583563505977475361049473021038197813123270528425989811292426309058760577149741327162381152206953384394247205698312190698050729298013543436218331186667338335278712532424851773672717592081352925630480344137101586980401446496944248407810490164050791538326635960927074119642680844885172123335356001455763082126831334888930951189516493167812232819905937960144652071905491475154627722190413760006479576695767249942577116778335501539986343891014428534088780485125456994576478572641039369970852861751483309833558696042893442716593521458638644598750702464392187889949979599314282562713394391151344496491294445094796334519335274962981319755998138762851048070283313476866156113378022690900610803533027659106536152106271800813105250710683324259845865242834185637943612789865806125573717999411561081167154954197820133098575894883385585103294390449792513574018593868755517029295569847054836432467234123577594305947823980728204537793690612259392956267510904835606066530903978241200030406077133185277411205844541405780073360192537592091369533708374981443760680172598736391705572960963407494185010787765136788419698736100459093697480125124769314425810268751941532598289410960597081936067092702759830400124509256090815366590880212836215828771900477820187841328360414167146370773842005892751481437429559598926433876655103812194216236252979787118166578557219650266230707646331349419463419952161341845200660416246655333549565757281350100313006176280237061149308769169393380519972908604796898812866736584349531836854641605167591219455352212201361847616030997085060587089173240499192967326069419903225950671821888147526162143629241877469917105851369024999135269396051915360099985791884485875163594731714357938055458162602158692585850960227842327581909174410121691815286809224636118570869404047115101647636211624308291375863748225881622707524768891699218099172368946972661486880688339744655823805626219596807596515960810416663450930556789271971193750923209068534689813664920575394981953793656128500887338467926346986099270131431260049164923065212166990671569150777415298621832853967799097229118425906003600703071134691632626444759768487996778622274437825575847248705253481212827033090445236446796332514672883018814275904854666253638857660901631106136375770284990829992526678852074633064138227118814747302851888144919409004882852036695195129895458542800892706537905340636674648332136081523019770241660011177422570193499565011769359447275270513399041245844413323335673453797751349628945175213902195323901204328774965949711019592845073849599812460008982053066749045069666049704404770001348924092519218811173641656499599942846349616519223313862057243924119330558344431105161982490462105088220530116264682211224089579060925372172248503556805636253962357043700534715747873173391259950207088721865628746041464268031337399526911769073487777260341919463973897734147639625284333761171622048689570228044876979201927461589462653133637131268906675610302724958086413753360443725699875408576349961631673050496411694637013373615458859516226587883768712537219695917536763756373199179601490548535665237217230221441959310914956828141761481796944732697431397384360501344167245415862242377473577847800795338581707078436064433091487834000724059401869802186069703096255630703768746899185739557530806369750352726011927121408587562120409071850449067425774303658392082909690695810926627899713789854300143353418595702216785720947090864486940979633304936838343467893904207067517126608487913155655830954222847405069923869523736135217881968569725198525109962276899094882242414640639959598977652181127879678405674682686830880140024600482741730950685837531109398018878542493670773405590183646300728786970906492223559407249240346008300222226575493970012319611287636198453097848744042798008388318124459578071372653258627804334828805698810838026218009202380205566518940740396413576604068898513266906654021423778543480470808507898385202623039903651829644679042569402279770831695110576668979162147751382487154368031522449769298528470198511808590476280807502054199680882294506984554369612248582903215950461171921621610452266640772614052010117492503298984727457215009807326965967121507545018633614476608214858814459495576048431068531941981006526205693884115640474913297167779978763356228108773620829288494705341445664722654911481696287134348798173738442591934675287491861927686996557561482780658771571367840840366999886440843926056126883219543563755273245042220384833280875271915291561538628941829778390302010794448064577053173558488908403563126264827356958042242598822941852391964097089203970539310134396201230660855471614292748949889445193777573858092621280678812259467564973541051070677526747245233510816755601465969484907209177598412498406866688656049753985932053542499903814735223806559236784495515717390425436894890727182219404956681221672317497196099419986734733067262846718889831425346592358793892447492682563632281737972520478266308112646439225066605941990738476833944895189807774192405042130329924365398723337141283116688141238256682352283609892966348474942495582265129294625456319285269994520441090165469407102595994894908889799880524980834429123192679435702845668290712325654572831075294599878576669469716256676640614335694033207439160169303268254267817052974781145441185900047119628106788321195823158035850321182426472623369013022360303992605993811592352294923099109910578249414124561761103155780501584114051117307023414228554241113914521212468731431813005282310558517756214223498434039885580166245764331701651175940689105010285104990647988300884969167072713775252945566189611411446911231086545500676078470037745343690145777733775851216011697129880481297962809031274626106523083307092985161257225445883383420343675598135712551713908397811811242177217044674256278226735762363261268765529285612153754431601577667919230191489718664858813962299141612813986747542757563121462618656733283213897141805656185059052657886694712365284370792212557911733752721085851940007620689681109964005944796449671366401997837337836158605474098377585926553473627476580276074441286908093074876485565602982651688804038271115805893118549759234281899583874726719448246888204847126167409082969812059970938732451725927532031644017161835132259390362108229441399829390452399985329328440125530727968302365119092095963811561491034248833708077152420963497324485187899195064270792704957152086372490603333427094139468616955398473742871903018475226259060694538498753773845340452630735524026883108712631107927059176261872521760517673862010244323947641110753638255615691768211534995433045037296203230874346506783319355530252657809357736554528498955533425443214398739337127720324358032037651679186889940359986906891236806284622846384823363503917889415039823571972976854490440056667506945778866781099481133190503251854975709473240744163894211624677912243881993493654742004100451062547706771392598156712171145195512207272906405971111957936352774526751583457554958595774756360171666227266828357008441136622959585373412094209595746847238429810954529671520380907581093567713600079934123207584898402272656830754399549623973381287798231088902881934651179350538690674221935654559256166635431175123982025510683845733461436542698217705528249352643838162129368861993609173021043879981415346530608950368779341694735550903131842950283901585141436676038287484303087522560001396451465375125994121006442241193757546826714011192538947690290243786163792129731350219605510516066039033103544721383818096690556752722054515562082426298182925331376353160908087867842762350735924442659867095758159719995091745384313586074985222879715335631903852705367277793805335196324351172801630428758924382862762693203126734496318758537012141191531799026596817358255062247535692635229556847366805571496473086593803988714451031771546634218915428339233078951706754697211365966598897430446011206383501874844463034228326038502731951994532993102652691690851551793186931512013911883235238119117112318737318477720750625530073691792773432023443706981334110322694394895723638310479366208292524359610848813739541872301375189748122189977047614516232687912052898380004736749483593399107136602435275219193021708673257264889317930317617120158773328002610804555975723258381424420040886416079771222686769219457819524862712780047066029424879506758811146328351186193575733914309585827245370901536577841978816306693800892393165692170653668255186386991700072025957094296336173751207239493101977202048432400985837606506273962688146718034608420609493072857998883242634591918312783095629208671089232311370298345451794233018476518956422579691090508924248322088857101786340916870988860387178315988439979915904524024393808177885721502884598865439360454650830399552781446589350918842130324402469421424999101300480436436014047794653675895494301825002196882189109008865734063775656138688902896657927701275425050070383071825423242993754432093177196639307526847581345446764447620162315330199778305071774053389796332855243397690216320663548386937422142087703213425557744180856567409858562392022990934287608905009404821312713197254222495374089548275993842080796478659798088680580977930359164644795060951509964307428941332238462446257298352645701646931061771376358315823874840897173208831249911446624595521048216134554274598051804611660321989673871875108041946182725886681013316249388723442379030148129010995861893807651614106010444104186333536357299938942478670961210778425372422413778100215543999666853209345850890080579384615900028056217111128712178690215558559292331111504441888003686531368704245209890626084737452824514278462611718535729780843698447039445478963508132682116280733249015208543842999894388362165845488734728477825464703249112126877263833325769442192120205847369441470329317529428294517214795388372854694640750982268738144108082677748242164696310944450713581134368677372899395617103308621048391659860605999799304954477990109471661036130861459386745444033980991392177204871041527287736675615835738044541499741170763347221564018321520460159174417967515368477244841101988607550662311790152885244200237355151971766847524507597786460185722836884467083606309895136878502552158595890967242902810735443376050544458254143418003419161061465260272513944274202064548719120156169750799203236127124038155202657712798577292957758132933277048696328660805392261523199732189655356905311913438226776011399942080627626785441273508330374329263929025598110559299912165348939266270946977857024878977572619411636463418139626524601983413360316493472682104851130854233205508338702301461947619676022257465522392713247122712009204433833363171664886829953425475186423066163336471328964005470170763781513707175578123199171954576590624372903207115760766466825682415573864793740366019126781659584513844926946903346738093224306919468884330494535263452940206573859472248906873098182799618412205911394078630184950146071770482617953015420096434833978981797278048801330854510178308418991226341825002966769459111876343088779102553247391775739008767591363246592937252451380727991252300558165330674118331277448352272268410294030335050736831528828150293680401832614462791100220766737653117147984597400881179362885365319778076042175879922142892307149596600077108060317418776091393770047901913273727590999226752092682061618079735813562291879974503232849716749034462996156419761179661468105018249149819353455301457048346646125255687551419321247341591656925909902190628915899391586863436450946912706384812496416439319977249285562307174525157081619246876766012172091234917395295106986241821448291624248180868759753853218657246793107294566209757681403675143044049045550791033898168137771275705314609654763914933255345555661086890857884500094504831093188495684274525991753015922036384878868952461797316628059670251041034574482996442901034924040196881371640732044040209559595065797964668419467357002923552494388971544450628602280027291061556010070427230617311000938251535235801969192735702477888714589185593325641863549837243867388337023133993560014845208898792064658419823715037315850020310988764625531653645445934061297803618411155931387670543721067329202918171232792137258561157126401019495950913489478067166338977457525781924445962885475289810146544609359250667213416695679560226954398330962839369583998019824512041751111542764984090606756044382037602901547763864004084433190438571918923769626090497236230679839209447818288707110808807880825417378644723127860023478386282687794736557923617353956399360191656693981539331153864162095694389324893569462795536332706818760564370150539844827023760542076855586380896835108090124081720981446590008137167077541335021418016903007605261934976229309759039221637567262203463712004789569475737943176820341807711612685335055886009449493769275564410098831215342257179369194143963211830781274623806948012391599423373444657904451889082073764453292483920961075760307529935972260354036262387891684292876526971942157401183545197113617419802222789308724302667045427078526704077505724569788021315944420443051092619342260956896845112017132344503414477579569785964043852981768699655259258507203793508555581137487073756993494874667325740013548708950500802629642681871460655611374465867381344030013588201558979397021741482210263829778369628954493624145197560034115063943739610362073855493376703703584976950340910333571455216852153209882287710150942771656441377534339214461110927471967923112875347178431181049297575664005391841599251494008209229321486812953490290857168425722106188738198411901845129434523903424299393381319802438213499190854419338699154272782334782137731313562162146858049833922789849773500073256996369605261607951055203741229960142795592453864927621954695378174706581325598432574469471345786732719781775964395363495702760951092621852919111406280475328680443359548407045499805392493959329144199758352285238860205505200252420597483134294489020306288271217378354187830986042475692365976265911988550618043622847344740661695876109629451378425166865017323397589181238951984407810973277662397659870569879870236560886590627523790744326056356413817122718399426513959930652614215674202729100246555367861842555121165404338043354479929967414735019909605547947863436935196179127598757209829896888028232971339122872777137369314937439164620938930868014965285499787245397038427323556466508961770108149366991345356039372994242986610268318323764854550063648116721185533668537320403476699235934035359448609487370494962874219266058906174369047960234129351842607862851232926506726741954198945355063215624866252916842679432856777273257274014145113579578200119361821117009555748615420100584382155873550304681811700007888175305218390812819931171051251847106342961367362999684541301111599761888745767056644506135208597505035275256272109118681922571572653590404547538928440239578264241766475745470459653697787933831834697191466856361138995903634909893653122005879906374994176946393757621811925462831032148402864122130276132721796089068696258967748667692458456785761621030086082457815892591931278673823713650873512212120361191272559397997991781652285140006437548908766188127951368708431664399762985055868177533202349159056449458229324308728171072756748744143209678134174551736257171461739010161495252331454873394070102961607441792362561230114158734355694065917576836425646862106048897291374568257896926962378855220521973660571272992342251599699255214568779391886464239225099023644834322624945050661702692801597313186140620567776323883933305342595725307531799386394564590818411974033382142974955884130869000254023396445248136392526297192902844592273904106142173549139678832402403902119817395459032089937410620165427172816710320152904426497828139683160444316589759334981777409699758310595522139765377310593763253677379809205312580068978732195758032653348595561298286899091900884342539977215766126004928089641968696804212327848433253175878380953585983108339690751934390030968703064360605117219858348890151579969823409448668250162481851073101481190673733672777146964198282040201830101569696704605597469302460454242062360929456304213151726169232676073126287200390656717870636619407577571267511964436034278606063572000210714791505249782543052730667161701785179944451870947990950979977565829698148304816837984870198619740736070086150444122901796861084524555989170759053780030003056302889477108531741216267270035229386099147231670776638361500681622133762146040332002928960148790062619068313849158952576663456770840655644890289856229547961337233499055608045965238031433431247702055931605617549633982057008374162258416534253071920412895950123778965176720210573003091555756581702275197121848824371693264790294562713758779181363767652731499673248183797362076099024201353331772082091031818015894598608768762712057080821551493732469094349665283663163467998947083738670498456547571820162780025159388779690262745445535105511918378430975439532573053206460153416277421484839633660578403355214791744790223745280440904490289421029678354385074471850460098390460967536101175392136629154491338700466712945144185290163929998026465940471892645843153680302572267842834308732098615283185619551555010349652238993378576802764581204031517143258438429921301681249361990803595895323402429426998858349047137337810890567646065129497135240900451003312585324631243521109827268736905405345741921490448736696597633891302840631735602171094775837396061875313327223026210536689130912934270750655903590061027111501850035378068751406537768659626048969250147107976412050104954979900761047233861931224198957629837933048098028212887070968091511278925555438859123794877999804899580864968540904426361635465157213196015094643357250542036885162548196606861991020738007951808425695368499666379743332807718946291899995958190521942785455189577128354790069341769188829987647909384628281747641869293186439563221210601917260211555189834198874855980660374936417699138700373613639196522266143420482438972451403820038413030080639129194233109803227377902672472573028762067887477028661941220991250732091614261722081484512618998804431298881839585638392208788788560055410554817688654165489562086818884554111310078655135582323831832326218408956028028583315578136734600294769100723862298037079645646919015863605945039481238170516565813470607047638240537794367977276282832969765724908507060797018326994034008241401028392819018582990222272811911678907999664263093625422817204688317592041846589418553355467601165980382458250529759137493369552171959003188756137816616801024910607161236256130194913521425770213606955617961501547089683722411971869720631214029546021699462653239300185146933443503525039624585364812251086611356993627804842330840873070100859656173805124118336052118005254816902482554271077096189215792766359075884005896413821059682104857462375712821827681244810552299782450288666262032271042974647047281322418372123757050473154712684846905515481090636281199193712892259338498172830179331066733858175244996897216336869960357344650061694465051052036212019135246624290379462778241827624010654637235326527896601646175970539937956281010976198103677086009980647288132285829153662319767492732014743112123105923837325619888759336849500795371282202336375299465954949960914528661003461941414151454329561103201729342602324079322030844312353058916613135274799551149009636387683078974775470410885122235782976836079024851789803689600111602568707656024873641286793314235840591235885105718164744306554670496474649402881977895424929570784825618920146276992399181980302193092029791353921207624619927160497967539450210289656568518330967887652141793713188287600156734247576781829863181102871561904252084016341352546928706883535226615443521201506173473981847594364522941260788611367388439113625065568809644644364532762927868823733578961234401792619284032977716339208358584087705970898474564064572718965184718052431182593005325851913967495945777073915276444928500752196437903903175465708605351520937532590025534374958443675148640985054983246186570600412966064214741347815462364640656860582803602951344530459810780100024811962386759419621471519540438030237012684550425237818916213966440803016702871401879493521873734092546290735686984939437743188804804703513161032622889830814541328248361885189330486657850881509048452496164067557760467652394560740493606144751589897363960765897801750178058844663600742121691339488129710488027354776487537498530899523688242710742930822577397843337212296845085867614808478849040418697834108678479355603531609961933016082277567145929425204693033095740786225880343792920082761717389121063025799938300744867781226905777379659355613752131781238421385464277787615055776716968574587750817976664941380467922233696259133291066029072716083527122026062966626967885382711252592661828411183185118763864701316837403637368217762376169123142558578729002877699870298964708407175355461675284259008549521768658062365862854390013914304007618832890382515132304127012611556034758158483927148886017876546693536194500643839532767062668037174231731136875503174246358780296710100150125802218299018148465977189890674103292376303430551636021359322717833159150584164104585203170918793366174218036239755214116044272067484426630425035497776306662914419830959276741330661082047284376275947036253762652584318691849080858423824788901813265750371985244287705678870380621464260378800756621723050789433966770092706614762657598306604825630425957235195484320414894847003363440872152741464830155878952003618212890704832015797112103256505912266633322753997325933103321822196788004339342170609624012752381985417793105909569648808086163668315504498877961508847836776398477982895526804477620411782615466429419690587050896312134422839871597111723381023177099057918656700350116478847563276513912908916300440426685817750126595372986009713462253155591306196933054317220658762365853589691347256613511908487644516665729373708476890281815083434566598608969813359256675060159654315084139430821536242577008163402713808336394220655514916835738907522041244827646075726137230953467092114306273556645034396012060765468691960020684265739836138731922679128356072867462019679593148179185153649764511774523980261529061166977390660086830809627767405963646974073103975554393874675586822388514949950707017902999039734698394939539591156603526317369281852502405869759394790709014679871494871804469655187726038451163898680726923421697301159122520778105409913421767268517911787093194969014003570061125362292135878680994615983817547813398363429610514166857667161760967422241446937422093331269802302437821675561320540985950993565892574847578888668521700275580813187001264027137565492110421605442438399100536594756609140837308932588745297103130603676359491142754936345107793857359967819063542459431400258780560316339171300742132680425312154499613782344613726627102699702633780761594649143452667763337950173546271190160321390006613577079934718072794885763268431560998596364539711846986335094370929303409926902876073000070366162354474084853693905638887638652867550408249904717402986893245870569552080117880482392763046294487514079949427241755870387660476408721999890343294602648916318044672493399300607249409130949664008900681707105888122248864910761535507345648224010682908808054051249208021657756327945482823890938253481875716580891746917926885132078564878339645706982716898165571217221786162008141681639406497898246785501396197740107201408009711301489761361225884226986853480652199013994731607952951589014870864781425070910329294554857289023245028117007006200909116991717116012662387675912847364815261874876021140739760981148186805295068617752290010406832324142209183095709655287346376344359623545556520284890809847869316505174558029519755118946604045669521235833458122963926726102871316970009264680917861285424844003014702546913409533374543836447988970187911004184202963072063901744219732859826305761997390761851506904802919092597604620387151549596944782753724763853223714507658219378370716071755749409729093962044927481797749671454861158079277441620853590019877934982975603287028976708694975614975707025332388609391091932679254813144962327818816835989358711622392024770612935981449098180441461844969317508234694255622313517333756073479148890551584094441110894550867053570336944966146298102474877481385745913572464144662373555290502895478019776314764396530146974735787501041587406278164650425652187545002706924844001367044412270422212898489180422092486670150469548362973066591524003451460414227756001968896339690654072895814339224291313902581910976648870581311345654903830291922180773818321616565698823459651842530246279246709490354330871951004864690933370626918322835690477663406149176088838830276078629471759621831640565005638949789861804917979206797981050774984496623023824948764087374209878284346768103657792016374174755814926420026478354478159915221097442857647985957925420432963038808879754798916396757445282870692962905155647075707310124709909327912553509250331887003140203000955550046753192309586354839782822341759770960457003466190608553752747374120797323130485109261539962970890609770259119559036227888299236526775945190903107567188337161357656219435120763540165000503704496945174304293032806612786271778104986788533241120650595092271007258263055041216382419422830504963627640244543740423365787566776738972305772580139669747766104343251348748072351297166387688179284721867050989360264249091172740924469245343584816440357765340738206343244123390960561806811283821208926496274761896283064660141630969397335469991592368659719965418192988411976516830804607330149589727571805025327933120626359517980253641944571219847930389394346462378321512080900110443647669030191660724297776355067306489280836030670658366298327369041569017323297193306352371035618953635501641119122083398857806779860848302772796579930833589281423871605992684032712214123522391568945974030188617489349614216452367222486840679282433482647062225930854140488937965109715319877766681709683331959116080606854251230424705787831290468598517334771504747514940688482817414532692712814571601746690259274304294599657403612502196562933685343110746272350939722048613829790917776676426813802879575413703697283626237805799922555033087884667212152442448785791753690545295446872016364197451226800977519232129616170331551831372215131619499918324694514296244733806838117736386755903944049931865314410754261348099102382682575396147319869619319379256239175733014508016192636248659731285500944292509627191399414732912123431393798834229366446793343097729819503418974779785688542064026399614424924323873222928801312998793046843985624029540192716614899754738118331774850981526895155902944248124091958525150845983448514888689881710261660190598612351517748009129455418048471162570350438122327781590031202883676409725633088886244619429825682903744491513717887943752058360349279182097938181007679670494039435771798309877172472642698990719936403213859425569749892660838581697084921513364959369644612721398631948755054718995276794520602063535421551471473967776734540561496779152944317731377169812762190088876527830298407484029146445283679428512709038630724258063782674324805769914702208699016676128176555630550852424083782832893327552906943332814855912677994142324019361125357550221036642440815986010445302688364204970403018376051243122889020226494968155969627162175157377975404567264422585448637736763659551596893732798199204795469070696816360339796363148342370575541779139488065355439346600461837858249288759235642761379852045053590225780823061255153220031784869449582287200032606609102327030066131169151325859681779289258391570753863663720731557880372162681804385315693107120877821325221022190142900249245585832788074695562926054458936376518459786636429334281495237875466508351362405855535697812334508581254223740281342740742654814127407335165730702633119300987007266556811791246131802048006961695438073057624930412972382210837916547973992549618073194279697832319194332603853860619658629714980978243170487186532809697339793055837700500906608228444157635938672846094018214145948112168972235912374413187217245065437486637204475200269498628618388735281809520462511904577277762730479177794704996122479228925762976465616909518815789021517003183543588172496931517618572564547969882438024501319123941194519575030268753620065504292024217672983179303525424792852812048623048101192237594777274519811951572602502055983027538112305040469886523324653314262846781902633420198511279173222989529443955438554290745678351423047463231812557967279186266430939731876931070057482869140812441692844830356423175569771317032301784504293620460853171743610124336265287368457517050120499340786875480618748544263155257445920835804753176810162193841235509532086499464231082211200112328221385723932752096654924236215615974462080184880720715884707218904557550244182455548773222757016547946223680570255201063053471850630652502598567933946237623004807549488122890277631477222925353370296540467120651956927909261782725041628396060003249406526868718556246129668071957349200390067687098190633550836574980900746982006014532329591579244782583688812071887778625166727202513231853169576281973381091192816800013928627468423911422409995502172588737835954681019119628428577322767312144865384995067876780070995051593067938329605161961284864743045100959092844023431535371750153789517447897314826158546288587583170471984733104352492844428725233869906346297278725198099742913228892633032028565521979317589822090984119891359070078959369870586051302153222764996350576869532560744194122851747241571265045027342953897527144853925622078348194660413185872511322378581337754569267843209419586661006076212722294061668044376142619275156960471574641946860452844557748602640369125319088670262035260800499543469558380726292069945197824026572328400594489267370796025862343129988799471852074186321851979318553490306060932810999776151796353080988701105678859328800390482960498017226218713142629739060410553718087865392921124715225834101027905809543716496991278430042467491784991632247995596538857273855925302222953344817149525419502939937608804470576128788517708897895046496206259202838022375210194322655192849628582912690337776372742779362319661720219057123571992995847952485262205561897847965738059420911763570529958360372125336092951472390217742830263376264114376766659920315367782460466697038851351057458541283595807905155888408656834078978060232259857103141314700524700989670073683234891249537027363220494298864855473156158756141524090141339953635963015795630696350953045874895615229565502654612005112211366961640462508000577673007627385091679423862566457255064315142100845892866391343832509087713479108606440279488912001114252344986548736386807360399888848914376306014300330836857085038456993739076469061771271706953688872072548741859587038108591252388312654509514943885559458554267717775246219314513702806319461830162200715451646775633649908107169989717589058797452506325778975658803170053627611061975957881120528739667831977931144574421211813549049950965473795893620027909913915139985582132006388276327002355715606281565789569551658588884486158194041652861535553717461846884540522775106287383988623766557604173391288806063176021251342670246283649694178031042148675532235554610930760477178525681160360958080112602580442576751030510224381654554180588835646298949588978490841902437697374952469558301369211081336287462380938354889389042482937459411752767765225582402092674703437572683038770578397688432879155835008008877137096996849013371170753351385591019584579005893093540167242173623114629779983262816114416605458704698338148972910441635768210497644741156668254346755526136252234019547518328679651527934036385487368702712664691332775599250576083500800760730308853973979117154528498649429459034587933700717593525544420393050739984075684896465333160103498544688678043738055846016926345082097714320651090765531331664579524022622737025783662437024160855130018892434572968412404118768216863879287321391919387892538116665290932790777867020675665710230450970892990873233609358978734839773257275329910623653562268649200792543619594669823378316228799957346885950338037228221479901095379298680506283862865147762925520213514669979020970930573455290946863480861864106913676353886745376036455586480871859878352128604356567521335265055444315905320810385057599021657644470840411237397790290427108945197607665215428140059499471414207259695990447974630544735269727884879975803352444839868628534065155917794626466193525675687486397571266745111125516360579011251988776083261443592706339695938544103606847562070301540459871442150978267407689727706990370928606905768928518903112331647111028313047311243114596060133683851015091163485693595028567358427637524937661171421372248865748608798213777360713325430043128614292853768228775650507103553886050574280487173575592491910956636686767017464963841248608689176777825468051460932741161944348346458099176604892233473676895760347097301258859781951658985291960169390866599539269122727529568979570910719610034121767574059426438537020231044300761944379397605232164109818293276532892734108544841745087596653212223802836171805519915450567744652724236442932813944657917624669708832134927123317947568313731921174830446426716735268130136106288595620277286502507679667804774283363980518185159884505260069095646543775070980352266488128967157661420576254085098809833741335485977376752583419892021700789670755471502973041704610102453604779544944128306687977287979363306062089753828228717819602721090689782322466285752460257887521557009304115702163588956939201667979224289780953151381856243060131308991744245309828166174751213912580258652875515688992326445386333004237481269560867618471120068483828782209071238951582834056306791416736596973529277217247467079205075172888157753211049966533666552989248413435820482939531239993779955383742640344278771567114651112760032205871398665897575455925258436842106829677553068144859757672365015886452769915335836639302525935038051296570042957583738726919734225602585777255148751972654758096685120849736530366031077546315046517081110934698013138785872120055345829206400997160686343469795519742037832355224692624208742170295533176968577651270583705295826833032366436443562262542322594908865303536268002051830084059535117050894246569464064247753367603830037803586044409393658810910240347804507739982245178375001908565231503406244178478773978915415196732419351617647550529107581615367396573964203917210042406674456558947917107162061156831781402141985738397612587627451240750391207118387995038916833372562097613141647410506474487281860844252893003977559811414810605271562486248493198345213015762605275526584558085643675335660853554690677976723685366187509469364043807904089109024036472972480440543107005816206865964615714461341912703155526066239563136387166094716103411845553535765382502167937056235881655641033638014505226771164447679181756590085173789276278331058473642015605197046395967446763340951983906538418502229921297151399183728121639456593236167408204187433821731874397704913413795772743127579061045216735355210009901070031151595498602179333613324183700419092599007738825274118553162492066314725550115043546251396403868130763803338953316263294487394300376636707500498781432664191561744385087600638163293995322536311088013492473476798472752959116533033139580809335361555168052141221584330359991249580258576229155980834318872352569753972767554361328298970268796451988149396198006376038523140030854727516804995232554306025955526575658355400026226104736388345342552306845699162390100144653997819056621827072869258836693618837851822473081016677682207366380979707948701374942459389949041012970928744337321867903663562464721752971690654600051072320556734532164450017920924499086199188263315969359013159551143418360962281878703270362576183692710116946592591706847355803491813186660745198272384563000887070133918442953848024733860999175128530616798031799992023243229581805142666409292890331082887715939411689559058002311044339060351225798380752461786372136003943624680130095550075020197577032476607929860905232640435935980204640451833439914332861222459301608665335570086527001741825558916435300564789774180107980555721992735486688635809015961835204131296236551148473850115349140533221105445668282665489891471840040701069936488968133410137468107599054370377984782294466061219768618106732877819668624258342032795654026611771545189910285869843563126581381869669842332135561315336700461023962783287130283393530132434360591242239173413384401388071077903842284572693717578548083215917514685782028460138490017507307542545009361549380991526882749681037033780596188589509906321076269524273212664497877476897290143488813353015576525919033052017119392034581566090812715361628766863579710049099432213701333099249377370931279317924236612121036353221113495417016314710166381101175405434842415134961771413747570534729114310210594081414724665100918186725065366679475381533252739668491910393757848061456876026510663051188108902718981955823627973234940908807125357272711240564956242287507298947071131688661378241960090983235907383307079070118789146148022492046863356688590799453377480038940335897901360974276448357542930847728596872846617890039250257925717270835797513403790225825174171964994500839393241397774304554993340814492618941515271117235001491907190957931743380548938217336141626826630321151438749359938164632212731558845236527055247557791527244793795352215403861798388744830160856730863914413417759985417330699890801091643572542559847956162387519598986781506024593743371866431777400108260177551815917716385518688247595367856517869943606436514819616027847548715880154603642483032066581902769860535576018094039154550278466521221384838540249463633357381500950650750220423606444156064253032393306684779160449208519967421371623797272376666445643457494689934041454566973565313163477225816171579013573980204501230778813400812126207324653951629621840023936236704605586334294635910206629808957982481404100634448938393040049936545098907119528512326439516657526373345952073960886913511589000186022119367497086061113729937299026703844895134265213522030635961775845990620130782606635081889730134522743133280943421513472871679414578283196075400841637581718151721648325578616929106855646741726837698601431872683812836652386671768584373158394711737315361564700508993553578306626335008082253695994410330154122137570908557588516260391059157527706492804075130957389001764408184219126688033699070854022172683666008032661230779106880666057341279739380874391206098643212873745725816013486148594660160342927475117807674591363588023199041563472702655344631419110986415187712145438700277682792286973698256653547018038103257846995619902354268248556835631065119132950287520058533767562515573210112799870931760118896596046864630734030256374591937705470734288699343999931250166176180746689398365453638210990631091215127082349454816778575798602599925976806337576887347576889619247198466308421986019421786067064340591225020726860341738760142359525999699475487285864126669402115574146115775526016310566666466408661509668833874449275894253455197664700804037303471849009092273614448413695147528607351193750922941611839050289494359549627247893486919361656934199710214280814073796928388957903061294771067238689783007915685181231449697888182789749394856694080410910793390260648462644736954235656814922088870889961535116969837440761650982718416554037343794086543371711496924737261878302429636014503576556904684552194604743413512491549464770249400114816491246222992155608768122812246952336869055107516083921115567311159032565051285872940838989363397645614849540065035286606506809665442699824915458548532789362627312758800627040749726528234771428382326779460744528238214207105046645941071962185124163866982888881198730635567673070269153267061137274144836135198030697432840380226585030444522238393299128808013795451378389041401712803260910862724564748505453556950232483974873810606058658261738622764290968525151997965891339668608497596065131245002382412800525300660840499679666778828106985612105693257579560719943610981198912544498782752340582153584319770469504087673474830206547908302363270338772599563363281489228206579652635616101635380873362477481528977506939203004992281761710495729061522242467177345452690496013673066395075610929193019100652825873583409632123711021588058185413379787636001051856759715412194994017050481152372493344539674543228762544695380604933741871956997791770819052185084930326547402470470384957685945231565403407769368332302194781972802255434252419355718689565313463972714940401352450889299570556923951897832777416953065354698703224739559140717147464851110530015805334022985640445715907834679390522044335485431909575237685048324939744887490970682228859320869548716556450965582010387580414855975431976498907004625406499335488871767581810540332624520175069458155667329267576000788397305099049621812260029838316663640765834145214332072699449736202194129123603878953349587451542922499560603451550359679203867142398588072086362203574508023390095877369320075622921639682874471834563251535229882200296873060876668699169436558022826359499109065770086561772634633915613070935063291178387833916762416409484788022214248143865321842885360847373144347441030074219774064729371757750920562232786954036959495850560898854830804365383708383554408187831278777201504935659510063172383356222286948086237877785388435603214333308400447318007796335986743390313558906761511695873295940719051381143305152959642316492511115312495512741242727722355423805550820900580181610104898995248157547790524875082072023287387801918965844255041231402229204730308482606275090342912402333573167562061384115492388014701161749157127126604990986931003735005390417313529793195818217986604065139702509322422532572993701822044210146047831403797091460140493633921074629663259024866534893496643549902398931851339662030397957991874749093179624712685169316965926286194255994777776776554064129486520414293604966842730784837132534470893785705325939979661752057498673083635564795263379752078439552832855138049668520683148306308564557644000462804836587151301244288912582440490480904216145265857077035229065537543379717596541392077322293647457822195508305044451965785901923701464430220829045191944116764675045872297510996288545377994806664761700715541024397701853574493887737812169937054952240196448722961496658593043764382296152423439266142758605889765323469020059969148534205706950199829732966172656167711731536230075556733146136817600687424151853665509364572294454424112189848150509624241181554530293429059949946780910427730263578979124064082307822061219453959794178510281728367550103057797906108884300828152976468484543549010058803177946462578900857524234967769719616453192231228555915047915907995615197879267053574007466195815331064854259534282482823329438998355626772243185247850262159816033234101427336696229132073970399868857187159079814008088333417583524779343591792308061792067897355881302640448933519778752590769963080790594372497056476798505803063395215198340838132863970878868299149856858550539130815257731501207428840171928041707506380310145910124666045041866749801062761938699736091542808883336851988595369744836015444052171676718461052047614986129094990252387418627257494362188594698384378198457503997474831945471311399762299043137962526512965884249237287223591555276266179913000531420501916710445935649619935693704763266814299366750795990405391982605213796317227097686181578957301224564627980671912870982497303312693191422491551245495257000574645537387359467918718423757810696493610138136626759334318110056703082032033888050567624646178860804720318038437923558062688026487484274774346006697227765082866087368365977463889905697527868306501682920061468878663699923825193987025616105913220451425288592257740632743712052873671259666961347469471594364231246241190017862912833458257624783993304394024776184895437550314825660795429987256473775043566734935479197200686528475833576241039776807569751387035324549513950284881333763515187693063121603579655363885779430949166822616073843408764644383884035752764618654956733223635023033840907185890915552895785315102016158525813667873482087354725045960696053781124836846324527164538702463477228050457197939060708420553758420316556026036087767295218894270065141356624494232791312335962469634707818506474278180587597571657285358367836495268854899552703820304275339158265004502570034389758086647568482817500505078108287344786989184510331598839272496174082238096802869838682149778483488418532468170928498290222672290135008084901648549405668431392900896705585476014898427844517848263609150338006436428129670047486723303696396639731276256081206465636570745802848638486307240796760315537882006623710081321166749427448308648574288366461244894190616790499769808855276556023035115508496049618561842410099658717880446112812465842339529561763230151065391894003190832744857625957974496646749097446635277196182535853741185096003483488209132890127392510598102183195375259699036542769542728329177244125524756679305546136766928018660948466510689900902813613385345190254523061614295247120370680421938589616547932928980916466661847174364088233837145291359811623316457916774885835299567390922952843395379759362581811505936174771512055543835746503752360607039867098043985599249597756157583513913792438364373644693648228336418856661829658109158155679616126848222170303461076467517594453500376506439002204702233400517100096876138705137495203928444226238079279727945246468945473926085297547297102170078899178279263640984170538686630445984241920247302998342148198629834218792308953546635315239105369321084726689575661585767394707927813938138778261045161840562867794500534287645016165211620682312297543320925030336512911528641564075950109653407595575339078389690373913015900192115342327828910967076452632230499168111609322260717102338469893083010882093927904468023834063746298036539481801491377498313910924161280355407730302939026271973699468139043152863954959195737211858145367141534164970410989414337015370395811838184743936653650065332615122214406160061450265244184411562752327002360803357359555278401332751434902519473142619217758454433075775827518606038283419757579427387264733604998251988827159231781644447261465404493611841929637763582540794489119547287934956812508050474717867538310830264285967830862139056847627697567310307480788926256574428950260032442669680004465544375369212603454826012557862059684747215995165145387309268120971723641666963485260299571677981824186224600579601585016337251792028714426120846208918397922214526067022205154260365732593815685482483759938222500240057740996041177698670607914125036152667815144883150577866944652406465535832262210794223226380663616070196672343287412428260860375974974781645534827324834371638101134484769045346869252016965948715042100068509803742116446485281060540475850251401206931746320714653727915283261800307687026536719746710409845713232410241564961841706666159339323908185974746780211202722001353896799211992319986280783623399965799881926031024967463668226211045265526261490543232069403389277027047777583198361841889930233266301926070575664289395062709227046041988277107279783307660160353815355386730453928141636665174305177595030404538883933370873084142750436324852842262969592402729878022388450216577471403348175806063232352103816783219279260305300014740250121889065743895713380170091211747165906226603829746990706288250557699123017111185771025907462970509186001511452368592922489375230629315156447896543288570171474460533243439104155459760543819692543849266729325887734814282877687299143567064940505326178209376103620918857958760839550727154401551290533493394727056325829524462443626502838111363806541139552971703138687685925531312756865499226151804435771150344054512581824689568439183570285722858526572874773896215544612942991354967288100743546191796437912502398629938853007336822238429230850671275173335775724930735025181898735970004591858484840447069965693018881031400589349932644979075814636951496372402224061542911730794796602099118918672974024379660419311727883404064985372894579756161116331851997000787230691139545187231456986893046862312855497623735730291222860585427116774489885149250096963629194337754493068549898240735106074304570986676768984643903654099037862643455478708733744939483600283655526890381840878703373097647380864912846911876146908087063499050866939588648198027328569715678847229341715230465886937823969050277550391923621078372693997156134154506091006007316679499199609456842724354111220952392073179837545480515989365312316374333939509298089053788794376582153834355381059374267881423294268550327922040490838178741094132928654649456540883785695996782026756838111741695037328077590858875175007990518184543459253167407278265583953543878927739621666993886552679688351531858242373174238532930827261666609147271447388404859108010296427196783392977074389738566669886860974451314032307858233033549225485112256235656962337181020389495718711554551499798125850724902418864995579932482836053889847363672999495528470395561797960720220506267540656176473873337170188218707161906450324228880001704352450918040490599907023239983675409220984868236415576393540007846021534196465535315167377874837965447658836063320464752273540487926755874391468944800879925337216507477391686103756346241590930971600718886229373342968209316873421927047611190835740343362861958431058913229388568347683553972843047505530251324845542454558789383045030305755962541434153879257951137968035094835701515316337070814754097189149535648355588433068749489343792880553188574104081682663487679143227585671175961039525273219967799689895497929785838873141537936177550747487771308379796075467267693428331177012056446982853454870969367757386818038883940431988418400784164307057558022971532006443965412768076805675285166165795445329301591264813706052222331907678034949542904558722357233220501194146182927599759879780084808458949411025078937827946306133675232393824262439103814938142752275984772968732819302693536116079702951890330123739044701947656600170631160097369918468292262849073374522399046112963668286623460217901375862460144826193093016755145931197104969250643980958562443433962214373219973298338237648651026250794965499726263493161430066817561453890768565084355834188346312978601498650105692115951105838361697107985201944848846492689525223306647694682386731022697683808033985949007433912477868572912857493069144622977733024280411085889273741439795578342348579704280078094684295028561337450393304012256590932430596118258495574785834209643862331211706875493464636864748054591602052358733848805556106049148251425790158904387403065459065433076529699810030253049469367878769254821467719056494532777166024291390655273757380068238207674487650515304520400703992306256702037177306961634057706622881529642587359812017467822375359133821938030476725544595180130692347118194694751479160918726401003194087988392940250646548558203761208834556697704191629495423492390575356036639708848208492175747664266835868746218471171105161968827213023296897962940149459072895238537682749958116010083038531544298927327085732312307500939243015122789023248674994761581690064996990288804255586503779755814159222659883227165938669596940023627409481381846609348782389938126514064121875293302106919513155358394238599634395189967282812358483275392108648234357509429594875140260760360875087848786377262381528892865635236767724290270492525193132264185776064507877870478544018737493677551191790891184010905159657674909392048329941388110751093906063868749638202732202068478832621596103756666188097608560151633132030465769563813326787843917822544125883978348654348030516705381906024957105515947575419906761480671225970573867006749989839828034512112041745283084427554295210248454679973559062182973429364629884437672027617717030254451186521631441054403812145964887841441209259779094125759789871168157368119327992777692351808278491452183790341240758309864794637776398647318144822095171065675185545417087034153195800789383101314318994488671159850271942197074235440294126771391903673778966120852256441743484373865923689139854617881421058847406162172888335652480078472979339048523722401481896829299016985942056377963533560815915239558659099403621096251505169333898840428629956806233680056265924050168839188481971942010592825098530805203758215898236801215811420769504967510322641240214472062952572451601183163727494501629511852470940732070174752784141170392612352485585717214111373615360169282350547827192366019548815353661647922168956052597974438657843400791387025719868550886795175416332125124770153999822937426382031665127447290953303716181884787757490235090620279270423980593394321408758144267740076966978950269611920441563410058746678346386043685993195918292012284718955298042646006856443146035572749746306055726635694628015548054702060119005942525612566949587362900537286621401210115505196239648752423620874877314522814356946744146935894699815283950359658625112692823550480588640644446954076718226245243524827141586479344983879010220547326963220143097419175879957716945365845741859881551732883055566234291696991707014029965635017771184393865616394388030310785059873121812079384813675129723184106729124973715450461855050360278590614566451819296938924824758321415889460073148527906064760783432794469407447772519306918399974961974220079252199614217977439281117981586943589651569882631494599054269723325054512911414614656312724581743454267033597515156591130720667389598150025212488020647645359665707634673680625950743790917509384054008726805052899245479528606356777070734092155945429026515665303021540277983185824350315379254347203057641515564130345482093978408465346326271917875190617652055125022448483139721037867284832257264754695651069628455806472174352106743682983662487088085725704167676653078388653113863108767213838616217279255853662568065285397830225258266786816503078830968061990300135866013922554945240764369947735170842869310229825021882800422227813119508438545406742273200366196224540007119690691446970657642028923376130727446383143126712288660886053985410133364327838360319512487408530520264332702014554909940522766749798733186752850472621724741365381665419353647174850559146555815974681800453126884555491660547380325924898876615582329613116939188574030048858494292763471669438439837641734599154243721499586819678268443273827877405741324045337131074913449671585352630562919782662891617957689471810258704718330368049643429601000025765776628859895030274492687130720434540755264348279068427254575808102230588659105202285538209856774799206967640748412744812649991372793222131761960571586730017474683373429062925925119410939559946416671085638457030784629537424057506302344102927479359771936332859360978912746192749903878737752893534080924844008962446387280635954170970111574043877047055621532522793865052916656064610218426511911286727264385730415189443449416871961944863583780547711938043558376395620348083811002776339038805907959560690374297721985417740362990462584067175735694837994391436170456012297167302197653672613833532385622570963675634273985140664733948600935927412679997284713338221456890458434124393591056104689335651913091877892447004645225496945165189733492941664852421801086280861352407718229947518212954247523929834260363992279525862467525838125943358504849321142449348175617330641488502049414952055514080542803587239030793548897506211608895937887042763598036425238583785743037092064503275314001979854746213602442302672784907399896360871550516074077835146963679693673376456469291333129560818225634874162201840477088828256362104637578714515288245138298122524673043077853463961448090951254881757921358753979200792797678539561482563251035452213240814214835367323792153636437674253173356329440719739097107744879145587460840055728478439331548097954725523207756704985316741507300480585817477069004070670032949246566215711440540881852478422266070328858659665966135821779511177505029213689807988135368787964986189435305600695164110890064755238238230746732478445764386889198484739032923610377829101526655197295210377274232472408313903517049639593012888831843826251535631534334328802454100692716783621408477638996683388184995711914945146014752806172651940603801963222701658898390756575568619508125458603287916952718338802374364137121556766467589137895538144201944652464709284140133253797839746988316965182190666708284923124803205245591327514233151929823889538338414474403663193140231522088216460878235028413017684435738405131893842688592147146222379465583135864613705176119268785924045434565559348218754006708626918476887850887606602156038350256418132914466707479063482592963670334371717342333267219343930285707764538884649319246014532675934324416393590514774846858349114405483540569892187283299243597604079684321428705293457538118273526290771822429888917680545384886596935231924841732202521710199362304672582717016340110431870631299647112419199796625140149378162987191028410209779510731607691310959500038446090729032236093748109264377573504061639353545339697726781691760294175498551308624063603794625604451486865721805808297408878598623619837566611854868027641758304591962706799269554872680694005592628401482586580239828970205055051831856433490342430538604495883623759161417564101654342712615842817530554407914072189153100298587132805342528328473304477045430629628765414093544555884635673660983031885475404549276688610608448225798787422045732120010901995741060426901741828167210669329035838924018081327367750400172727729281426216873648228126960082293747584897761197076533112321809359718194466267699470977905354423025092007796568202098358533536333808772709932859480131078723583980161232161917173421205825726541132518811185125668725774906762468618873845617457784335907798522387472421693777906191459191759310423320549973748363428709730728710360733988421674935736339652995826183107070322286921758639493297151732577337156582154652779568709338269575516109847499691709907412346928604901013415825566676190519936601680814337271330230210740136360818663955661829782830868832836438271823798406597347229122693152667161410306788289008635409483427776157461117884623036056452283970163102689647923960398397776283006571498153220591651546147540387536723994225172319166183139282549409621754991198189756994313233345122738610573352248137918338807730849504779217473796820715952699062236692512009750019687607117818756505619048512075995806027840230713421777334586065634763145356164347590072659398660738400977804922852050740309504016894121406188415327804721457382358871041037576480881252588666922158427373481637777958059927338617193641362876287976481921895227079118127240536160325426552792496125980155061697587656386127598387956621078780350160017635851520616159630451461048102234152060937287477913076541671949318912027921922344952808932252490873996438172105614194166263809647958884866271835833186333005104911218802851445767123976817174739472047379873486470198780337336393726628944762885537452753166679667122735852360100283075139228337417720867391558886607402066825964247706289543588253749193445246695731107761214813218600397821881785387027971571729021649693139283666411025831036800588165782990408608421136697169492978595314852515525743874816905412232084348629861229080799942194494166239797407857512962002116931138923933004774053637560258375626550924686232088683444739658334961589792961964030707808513041015667932623786912414861786151223886140343759745190851922515468582930978902491945745463620915494121418976818276860330611849118423951354567345962636827647292588710736081825880199928689690430944271257760782030301870283261490088841703309170473533070993687170154233999031520377258875296697784352282605671981512436098021996615699734654844830609714439918436649845281448052572119027982677973072227041913623216973376198101121730314209671169475178662761543204473950046164783793465900341940306195084630866763883917057450730881577867084856909561457427465887133901146710579757142503752141237645947509719146621999530168048657564027822026580521273534227931489186053106990883518086854745201189975460622379670388923146066020912653460229178321309773082858805263207388877969160710399111793237081365574749161005961713710585553479648194543964163217090356239111505092647532574889279366527976534929057156370994043951811564434928624474094233825082829368163771115269356940440030202288913910071193014750885968821895231313838301824984250455836295558058442989079659518472932507465615305644502671540356225710915174280876686209010020793238839215147148459251777563884006781702762377633162060363468258878621407340554805155830838644185968673196471721328881134859193156376565419342404118971872375474611499831236385808655045926223556479928703029176346032083556655697666520397321144528131955818792350385886775834129956898689318179165404342377586096596165482180951882290394805288681280220389316943215483813888844015357673686430624980398120422633307616859929916263021251043546172477822198865892544744576818704631622584447736811371340310153272864659292784290206391200381322058809325482972930666805732868910869014081874341857581022018832272471261930803434798264206502861173374109417190588946167739566693367673602339676992063131849980675858240995824921084639596106827535824896983127176559813918462797068862471763282079327987998478787267146995875223223861969737726002375888203038980800327442627837131323683521408743598951449989069100822494652985502262231830214409711013539370785227220891830115901824852615217183657425100018807230502929874906471348056625833174723916128350013728810527211703898028310471017050909546708076785400371433400341254687499483792317117752662568677837817199964640910708021361946036493870787225557275381778708120452250476839359286730984039096982117905423440361820888951163847371115569827258533962724118789223027280571608635602182724465550006790267346605537009457228759401210749904178649838965156554189759400233642183645080638365137899116210532619537834873617256156098922501560281416856174241293005478335158172919882693306321327472209844793590350921077180994412097773217346797610941646048182685786430658067514285059850229082517934996352775528257124859048237148057742508783724685546677745743873385761425710882475975034712174556832046907383848753232376074354598262357964954442211348214756000656864499619458908349420186237535167558477600433025586788763155821118782312007487436324283609216326529446711628667507790907734621188765579273560084677771110396110578332981488232730251843369937241152437204869246802875906135965670581702242975865911473059924097912561500022432913930238370525973843795377589218198723488898820149714265853562857336812621391738176328346063169245606740184653908797520756595089949645681150012469165791521572673056613174724701542068856561899929201713166599716501709360623771244669307054807836741849335533267375149745504212348498740554858737827640461811698696651551175913037096674379881355845946640208745279969918137444937870502739634912934081492327713163904915190859704071628038341220235145311823802327326867413697549345012429733773137876957423228884861343180426203985147237157919465108390792338694206332930585862633528036061852323078269381988328094134157653476138673754660056022153254456130023084748560330088867562795676710707330650000324097192390702647411199650242463220214028552046171225871257418857474026967657432029440571965551385024188824218098937040602432519070515387165699213476856024153412992508110947222099830456112040561015985613352827786819610662027698409926692409476226222858054136819111941365655959163003190265687480601143097105218027323102466420391798615462565799907585624289981748663535029405540194135578311336041882707288567874528518758142409671752230553094160003127952675093000934726084049498410072075148643281177040307652233692125428215211336171969087749136336072955807619669039741568823547690414073676748725676894206825774753885576117531375422219849666608835081893644410400140448129974115126573645515991076591041124301393639326525253940910474611517419449836529872312575982297954735034521282694593816480577715704440144687913157327567835757179961382599578530842626294110925310089736636927522333513171614543458427747308274229901970929490070408205317255890293332327497489123849671647886488528278441898491573347114652667060671013436842213762943465233212108368883161656986407355014055425880388003340526516072121539061622692321784633192528212399829781029292072663530466430566253906986948251484766388843653714488353841441350629877758116641263604915746432387246441832485135215117766453577490353765808732045606732785395756108494620874246665218430547018991231829188290220472074864944403230271203429636588825243179465534627801022265447659033130206152432661810108275448901128383019332155281486417499151443035857728413312732976169625097086741416588653308664759590934429101391626387013109622436912038136423684460053786809199405374555480164350967663382820365927785368720299620523725677126593265178057285850766460600658085309246099886332330674155546998117232431540395445492766374351412688835860063139438174764149298607951331972874537035079771078302384601505179723455360469559386767499866459499651543459655248258857538596760246057176100435211833654813100905952486746774035770147156839451921926157691138943984281769082075713489748410416681065982649779742764448907814165940246028077209755211045261711559552691687768056016448671953780312133035194876924000898044146688397275210587899399951432614977416416917131360976566650054368069186176479066261586801394938407259152149173894838346141343508090072549891930743121179063587018828886716997590894114423831725940829927195933305674951475446282908775739994994158232273418249979753951547555418812511150722791417186480956436981331214600828434391773980719543431876176994830769411031198445552005244230796380573456652919895518843188549480106884179838592215774984603131181549055918878608097129490630171390010337811213651478508162911667377108699151888801619698248722609213705086895465878670086917396589425885909558966741521358594725886353073657924051164717695926479342402480421689689992385449390739036850165280074060987872413832653784406732050511281851354992673825615053750551409284772156283309044294806346248075703103264431691346181986972290676519238870763825038304852975610498658459089588583956327097032713976218489177873693660282801398749822399908509817577857719673834383074410671668232715940640422292054472025918332200361040740484730702675303882321392405439504562563740113795806594675892937663307246207653753973389755962253094454775336235872784770673837133055893821923799782384375370876768791227957560297307425238433844336372226614425509471835211237688262251950928831773409935293603803944248769460150236775663234120985479848692748661755176118254263948403466351126081770014819077959292315801487261724098377539800430853655374664131914081154407579524273313139564213842277870972735897647889661594721755895512733593963176752796291130797434604520048867629658812762897526516373488248911935996990097835590129591922436685846313743634082561678303047177988218997711332090944505756869393179639996993834377663799989244551541712611441499896931707233482884473063917922811786054191583868995968525569651299995056645322958176253635226940978258963861165303548861807885979120627842977250724579021755931003899603119634547555012182231961876261447255865698348210050515999131002144013747498482716532976784344816343745972432021238162719310949377092399236150975694891372622757195246693096554603849255597256207838387954283149335993048268925330504991588506032528351600051071837732699801038908986483323019993335228525652207460423075961737583044094319889504364366412475799046406461860972575674401294781697713594532970162580010858899426564720402043160683157563340168273255905291592260240651286427692892892146767600456744983467087091823458177094317094055128947621881021245586018557865492525151760511130082056799537319927284639643899846408747935953950260117562336135646418157916195920772983041185317860557326828665262521875728871130178484116108902087419601453458898547708294813934580655695322063896679705184951739969928987793589044289314739808348584388737131610239396878075757059469663807242205909332992577570578349879139105519550019634959268808771478152073926416277258057809722150397804556259502703074691115623700912738464692987143575663240602911701777074928789666045531904674798392939454921840206395809607803126644270827931075343061727678914610196465869650283609021090357361405886214444817159166161923704568836003614251662684443571920151867206071114931445510448129303551266922903003213598416055514043098134815545580272587259316107665175888734755754567085130633651156050442304161674666133649598345077699018599696828375207953074956160195575418242111208866812855033905596178808529712245650523543311621030714776978879439485464386186467488330302460690372915901632669326249689025214065317085995263890672392133934091056113791432879979215303448455734442850180355708259141472758850273621044178092840055774183556682828139216190600976412709919312915474569539391743512132426521927478026205855319750289404090285244220708923122335415122252871758980963969580121556422395183429568136501100333312585453675695774470366679205100450032418895383187084541318306266228751721054901910564148189301696126883770172135240646019298805775758422450190718449333901383856950234524601336024907902357259564954112312845543073610208263834061047892519860649420225273288036434464904508657621695542718214685426643141511841129847129538869310624964658770388385722107775009767757560621109687637005078926379736947701484738743579581920689524395571926861362931409434148107090750789702461235591896357309342794309438190899621848006978441011817540455641350688837231445392430214014890964730344583310698848679633160079024235613179634889016501206076301748479041400887177733162738717789676403484963743534644928831695311912840913969156800077778424124826995732176234314370815968664891834725214733608195657598840206741227654273092786311306381664594977496115848776650268129877221905116733937857492802881025473773745301319378713211777911107065012485086482378176556591358122126900577774127821658463851573614057020036405720520675884547854849959938926762291109303256425085469511823534628237420797814964927892549037086593179791205372975554865313546613957421488698788909321443538812236527828273622525868843419382848187554113701962860501248063616510624182187230218426726488122195454651086031401212807556940148664896583942685047831117435502278237595739426794857903956595957737655238596101838627386585092973258286043572541006327844428197618820486018304638420891821181539622808130396471336511963015219711982478277081005047865120281827762755788710572484952687213520296628582628302609772271411350306144231851075344482593940391509911479179537775915125440827610409919376600818603362862010365827766826169440604412997456898740217658804362539306305008697135290507578412602957068176126143752964653619657718902458414053218690042675419015801541210397450671158531869488738001211686071335627927670810567785529860636526516515264554611940002563529203063637194510413965255326293767507433134756093749317341730053250295386458514627590926196082827175716579477871332447818703220412589245408323719709626963080566725655141482154112802030670763565409634285728372864409314016131334113922782953293624165640594661862425952299464283481138883762048714230461825919823131361877550898040669348924600540155887889760678152626033770359931414836996827248143973908973182171289056461610410248674173243238203983847363713447244641727695064883215590468955260499372085830616457745491525196580219913133195523328444987046319769764602738663665240297795152024316557619480992847683235488558875058494160750320636272069133622780401600747421468994579928680833842215769782551999942630504268160422556874217626646296974671729595382879234787965306340168599398265870554149275461931173941294214883379463230972173174232747979720102962171129141875405645750842879607442901116429513119770286869103633262565920460302210125877497049146087399646479112798199622768044199376757979953073221963634956087544185384242273431466471309453975361044523651451168109082871174033935743467064764283335354475035774660201210415177988765895245886111484559770361952724578809231556281495929429027683053916822208675042873764530898329148927158495446299499256859466241518549539751025338295845700978685706303217137580578934886637999403178249015533347005040734803678738999625928739802619784294986217480956965008151411165705228878924313237953738064321142134059094371677171193652665752724472511488015199774298869437937954971041528739379053094159886142504204858581816487953062681309838749867735271997715445172679369889858013536823217664138796126198255722652322789553848250147123071812330846017547331121943563216222975805390298942618323529872742757399917820599113992305725290728427130925703714833795298048733371678788483688588565976272974872283901038540200736710577743066631768866231545269703469380727216463773572064939174321029705736425033098191672898358601891852450404776673117188072731130255364536131314795322109320679857256515772178239513977948720146953775198894899532423300040826291933911524845075991885119397218731648751214296792041154686501680230823551582884361677902379247621684478010867945544057633589197404472025129928783543295655848251192461816930706986696043893170509337303187365725039412162838760220294330082278899139834944283675880092253111682746839789665136892456391712835969232340162821505624747763731919392707899902056082218072515025860301091133815884622974898678962725144079605448751667394973976656075400373252653549009207589430308365791640228904466064924158943647475863273961350770555073104588013485559538818433746012066955859816558129742285392225761495959809822359038727178933761111329941146174059799637710031925404408504437444472059699395169437361170052196812091676555150385691946374608284481587643509033749203063207712854503863098312498545934199051225871422455642887653714843479607694700913791710653337585348545484109301254418727826208788237767382099775816417888149808189382694309122981162081586476084938101307649215964495247385167654825711196810865795642677772414464278149540337244568983717118801031003998933309497260332316196756610007328380698991657696498132809630291429145430927748843417370958692466652942434396340818808652886801101969620677501552425782443219727723564155308895891708757245361818071364625523289762113905377933734317780349786912222676363774178412411585088913362263215646880504160802103130023110533099229936886581561358636598393745718049681125828077465170361183133778236898577008930469055865242956341351902054479968946343611382890889675324669144884482073363702403097768719201247587216097572127400301437416104271700653557323292609558597413525353536609180439156643829973931935192342180260055252116493610053205426755273314171752311441835391787758154966432739346280811823603858357788357046489928374291344146100850885225766894971861200991479517507580855883145225035141299578482016007414042568791176947253389742699052950280877426502399686590506792307775737275304901455048012997213342204882894438248441107227990691832188125591869599643424681368793665278734276299968596773629283171775781840971369554002023957707455213520265303870460042905779976375068531885238868005521965312392615869370036885543679647642288177492086625634338664015513970909703117218647843506317905033901369885328504148820745697251077553012342682357270322864975709023808438230482489402352323700394619213829399077571884128976987684372230906790744873079785991662116380140997528486349156863488948425433844991296127721313668554933808399321836543402863719482001035509155669737859357064424624691058827680301386122040116094733900153155791223661520830963723566100609298035975713572169256798306555982453769904540768662752521768582825589579148401057855484113187412554172362497426037050760564305874781020555102277608020046882710779583324238830552558353555437591622905795015503271845845687654327932468794159059219593478486117370039515984184657514874826952367049493399733696812458471155320070343819875923360263641390482010560464995230919810980865160610510705601566198979953869396756421062662537998039467240270452054983570634255498724760399566042419631801510898731116510361555245793638950114667705500204875897452118241087337083134643290157267958026866489103467208115406700811083273136540398579552492251379298664623021817119721537461537344864523338766842793079865956853694155698011959828082199889528865459529759960678199075884135296577168775636821021809919487795852209783932299984363547791644399042261348932743749356895944356512835153772326063412304857348879892596694341092741602422540857091743328871971067491630901619910627886296477945053904638921245622946211185282872830565053841883509594592589840292292594521097036796377281836878947477661510784223794990469073593771497162909168576905171926616149592780273239987797010990846349634420618548793654148280641617574554268490228313051653464418424078217107748831908895527747480430836943022193364272777568629821971699362536209646845383038920183514914435963056146110239968493321765022823001197535012140872081142222687758588880701280114424326442057817211976936863455057239724601966224665419439999332740891902054757977514759221228202581216199646189043625898624667456661744997195922496813843211562339908975626219603937442296897287987853425591991197728515394308671278633496209340555083300990221639605492015437439180464640926682069261890279608396749475164227449927736693266101486434820761632181738717311032200348492958189816015789975964885928151147881413618298302519311203117742506922810952287059190231103194975664916965685566123906333179207142273664341579327767707406172199504695051538951480020280474124038257979611393055960283375606972482809278180034753848725318161128762787673269742749476945824226363605925837860143021490424512948853933190512116758307275353069221375079370510800337581038323660663263765983618138559810285332265268895683875432878327606049046650381037023747365918291169057743534015541101855474843626718069117429684146868749334520351292057451525642143140190807500186468946021753041766478261065690193751976474158838414160587620072880795007408117462274165506717429988260487438260807406255815449439982311874927383351698220646619234204562350510078737068794765955984492617854357419610783994404110061761514780635497913254175991575015636798495581559703920395766013884414368113677041228012746263050004063982451761292215502871827680967640394413908866694591070521308305749879103200177229685372405669619967740684320959022952450017388788043712368453788508623087584577325149759448337519821273957604860103294548065607714872377619169215970998374814487369741656080942411483418283825062787048801543524089408803239063627663837178151341546120786914660812451377610455616071499468306191193540700539845956589714648598215478903066949916929284812926587307780221875675928762757727751498519030323986840223588797557900570581206130426396399062196082124120052473943049164975205595039267219184232914952895003134589103940716169264993609802552172274276963133243673880600736930672464638855606816277333343087663030862599339109094198843543577963294341928903861622720813652112154648924675415814389733064010727061728631128975562822123839179513929624851082603988120608967721755938790983139460262005636558803752048351696132308029756217125567170977836890839369745498416322307418632347078515154326058201532111071880243773194374324015245071590127006162473857063432502767293032277915095540383774786710981598117436143245232595421103041759572388566276858189990763901039909744943204226392266106909018075209947086765911088191849342705059435350204335279208327895946254862973511282152646219717779024558630606537791344183467117688229807286097212615914105997602726122899095060904573930091002952061820533815052109534438285530592860282661895017409216468084409186761575719252081916979370081405730498596276300596194003731172315299024617819425294139907226046617960057528594283041262554808642229093154922063653949261174813489381415242425500217402087239608469568245886249573404667346830623980040058178257757637159149405912095499436795108725336387176423346253988259510853907052242267502917700957020588827709401562726741390681616651613114357798020055693843113331234826104349427854423356387354743459550518083031500094960759376775359323982629762324376123068395535096704716873388583388321569880628446110381791819511419803917879023208517888009718743509454815109698330550834888471033449726904500047764465415574517217929045337400794545676056041030252987474920902927206301481456519003758578590513984861195579132112637615213276625145477332458635671178847097560110406385797593556769347910837363479570502695752281763115290305095315383279028652205426028417896741747276078356724708148984753125658230837006544884409476565835431147761527304607479984144272197469967324936637006196326606049865427751798092721545048273273557390054470213501182850028249776987487555130051189325079500668672964679855094801867802815409055423700110085535944654450878277863892610741173217030795316757283094775525530367357116827244941525187733668690520966724237693271504185636398864296901249923619104588244256330758533467490989598882104166963300563501332933786462901490548864834211123221375137835078715973911145464864338201577075037079675632870188196687624049784838677599714125720566642669642635200974969084887290904623429317618851284433416600009439201740133373353558693679332227513760423117577579654843555508096192243868196464933946893896710906396307308913533862620065017009028696257110870242269845526663998914892052803245665145101161666254560252404804922209945365608237595770389788511907509527311297824984259121632626920316138997744624498947674401397902752363466439039154203162233196248597952570910357752744081433372707355212679923287989421523445242210445390498137947705908871456377736736923470600765001988290138928944616551157290025092177611992419478488756479933984085579019520176859711233435779717254294522988946601769858140470514682182166221239456744574112128627694709222218878459744671428992373245813899741185754055387612842969413808924272950256775631884697809682257220034217941298339710887830418557086746723794554986082921494101695231615198563729544516963213368014612818271710830890245675106073221447336431689461161724408815845640097862471728627285281562806834827196813159154976098345243938671854797435562099476113187777857805429002700510046383475449744126792369666053366343094443429193783253337644027551655746067224925454417113878341104017518322656213338501630799341967919982558001854735104271191365362391240966649883622825120648464662983215442325062937686871478525234088680965118025045055224406267351686255771314759831619364477513766960403222073068707287483847060224948077263115374410269440050376621208428008712782704697669246455903317050652963676833046208338906292799218816337760978489344808295797920840429890879088296261547319359060084056556139081296025405338461083475280236910247323609686875701642708455260693261811248906044641065964219700055971984567738253082722877237185568116692992727657388472842563216589937495631166467151164382462000298304112877319642644641461035674870472838109820002104274840523780586754462603103077234525821290656392438438217690069370796324458620537104046520984597571405192348085002548900599272078574943025811272692222068970511656743740933562797677267745731345727953665245787150654757952310267217791552621669767129156670391684611614573840932911113880334641834425531870948674092052451148747894870352463780167875195465687520379173038754581632683337638645233035450994982970242435877904929307679066758265778340119546961245478192317892343766740276757422410226869491343440308981628082907678841410832677956900905083732100759738488125773432537661050043616787628576660515766926409809104384995174721461557096023178507626452005576478805200269161166366010636831938315123961283894988556173071281525677316541716824782361879932351390934995305044556782982174644416844358043434912287238930680946139642050286315503484176670952328629925868758815457015485405143265797627592312644341715327466636000833755899879646344969299331901757106659492944241204575937264409526737333678380359479748608933920875686705141854077654148515975863728605532455183720219393133628436301449476759912263009526951732815450120316826122322560296204731654744182131484588969897792237861800203158517460024893468762688241677293639189274898552901655198098460228051086623124122685139342185476491158881347746224825322923375624457984139332853668818750447577680904882695996184567773990069020998333536998667150408234696740646345783260139876720810151056473746400374211652061696566149224773710967594707333983894929821059684296374556492848865040964856537761268581166756652295225819489284852065834849632676596575829969523873719707251150981357539827991477063073135142635575439357588950136618880399098542027488867572947543815867229536654563431682062268362622364102277459140619385105943724308066694059393697024536252529678859354932555658530553514908907522527644624892635669293225144372371946150487226322052949061068091909059073275417922537246300075453628229721089207550633950148025534891531313739565997528330866535919442582756234664994859549824738932739059173226364183130823557957869759797831712853595661485087214345872548508771806025714345353187017722057667534037115679511168206107701270880127229306685865620758520239988621731246078032658659338624730102366624435557971269875355922363595904727334733031347991254410576114540925070767612607053527452800111208288644179242766034972303295075456547629254343371305716091191420331584551409615327843929071256789118854266222261308620279006546837000037644928898437278953291993546797191931665121334744834385709873644719062949806982584105483466554267977100958780877145019392183723453527934527524300852809764359926782930980678995413757077425114826047532336237254269651211137120830647792112078043256870161258429505207791296845431850037547317252352010417476981808367998076327724227954222229293443867127585238341514412477217440346735145573914646368311102230202237320795616315976278234812193307986013532698107268542069459965321756164394139966585705892792369754488945720602508222141432224548144932984656511685421379341201121211902200778885341508961163625051873963626507376772974696895006932593180144023032800536214483049109783772788692495585141528141248226099484842559994780060159336261367462391741497353930364705338222109282585181845285768449954341462391432528066631959061419354274700290219935148598773816442535493220770898229654844382523679077334576894009493287379041176171086143538685264242141002902162437640995378369724050842897700965967188166758042844330574485941372448546384483643302817277211186843316266739488977226096418679228641294038593782958729276531492483827017116216669873559128778402493371519959639829862056113905247715506841721855726926926340432430967006420090360885362028396980250959808326595504973905231393193668309293443099490435419025950538498474016155383896633605226184662929532129811632481890210863304776721783114865949411141152565600313100174331571293876703986418920506483675913303436886601315621105548348593949219122313150772272450655371016811896143658076487139538180306919645771618549549395637499807389868434873440813599768695008609916796361956888737221131841038699836918985270252578719201217968644091395079960627182372167769924904935248799686938076917829101158650425615793000072674581172661745589902180543942326373202775039730909131221362629518477396444993290175549421002494175416467315313280489307666895169461366958888234944284065515401573260595412591870331101997082797674653650197743698843430181113299865632745955777730151366751790778202101439430319979570422210604582733037184277786710624463777362040934268305734771518753178933934821705499144041823990178950365971235073716079678425976311443451483145451761077994368209721296168863972521801970933376188015346604764559436552242426447357329760360434233499663920513823055131101930133964351726565880068433755832196807540331387482957858816475323221055257872372130274687818427255504626263794995637220790488168714710685055599787310331251256239320367557545946328780269970162537918138971667560732041126187378095454134140357443806727832341027045569490911031960021831362187108687389769180634029470963823803475432757328188459064665397214255788157166099833988064483605493046204756031513925521006095162954774760667292248744570007033421388725798931676046221549871402603485839082549282856147227295590802181410534938775619204363513850535279343138485862273447673346947114904803467034490712432172965200490014205598256588442545800875176561597949081495046342368427655778825262925175563385475412364544234191026751288255344532712673153652320998682041184345940465197540342120184658148407592707049113321267483487742888752969203673967222156816250981446186662372087158470885152385083068504137949801248911165092802558316843373519496060173135856343607963067101147155762256707594582700546758488760731112591969053489863198913474560674014588101851323190239378075435665324947074070416306957082461178632320465025038212497411037426276822464150445327854816742042757087009518803110166315781498381391739000152566707750421792636460384531283004505691337687761797833631931107038190876363061229276283459444581584844999124395892658583887253691847127802252479114373427423907223923685473124956144110410972420453704302155358699927782350290873647631882752964995097746120637821369643069741656568992807290812962872348941521529877779288214131443083783476583532577630269680627695398659760465686826458998428651440133804028517973503715697066338120703970169079042656588410447634702701182516861511917632012622237196750116310449029314367476259280225695139953202404986824063441625975952369871372079564962134034171856439180924531581408272485479409651378524398649523589154289926275107273756343365968121146753976968211045944930534168429078409133980480098582780523072967815756358947880187756487158091536655013051957960637096419210798272013006600536173394571559685572313652621476765643107582951340071708072897756358093178963746082810412324578558094902213507819186006481105626956298801429005576771297459371361272958731515927767425912994248984912846150831947960644792573461653821521519691217127228454640604142682016983162696621907419402319698848337907648004629640241188626835235629511587076401836146612545860986999543246862836036576992261483268155561303830989354216048338850955772743172669343441716752223840493180266836965207226681038609982084224096380051890710051561224644958012687408715935213001658649109117905964566996608692346408436795789200637602827103397778068498105477304708266795613589818508103488291505316822739094514420711620096208781410891970881939138628246244683025105439641881459015403808064887789713756090375232834390178285750297433263111277612769817453005782583593163368163289654347423104361151539879157986925619016443382532126431493004355583487770871192454821804295151826423781795933205218583901672685513558213134854826176513030247625837068637878206759159018505976557697041519399141597844786822306837830067298931313967939793614017207481957672234735244534941861235287076637017666651195648774187682260184670550515917280496296909313584842138401493316409572864843498732705974368559458926507650802575232210634252678290138515638788200680329325721235879367920008422400817896250139803046410489671614647728922795004129456597919023736330521876696115736787509439879214963820448671276808972792514733802730877925673608069106496332956341928938381289168124679014580486250692234200730821064755656558712014400203058531521121313054857863067911260855259065967962903532774342128195917616241529298963713610867171921146335721965665787992790109568612026118591100451314594342483375194607470159733435922290267302026500853081949051273938883989516503256338218414991325437373642669178406811787724221049571282364110309241712224622808934972762947709686565969209521006458415293058642621058549422542437327740261157017722575964338951041062042995855931776579690160605583307670517142660362056234143053125978402022830626420617005482238856549100252014085395135860246929900261567660126512011473549072245507269829835690544878504465493579635709709922976205564500025389840010828521973500722808068632366947925455431478134501209490519904698688897786970641867989376311493321986217249407413035468319370591806455886606448098505072849602849407573409427127933358808258456290033100243181711628359845626093969750984404337443548317791545698928682362862224841999561933586374737285165096655197551467912163102684858367996719684252908612610624182586394945194014024284484675121068961672641422674515529507365660429407418984702591034011667205487461190969723846004035315697423897813543492486434010630762900594238468650729491630723048863495369400580274757632430160454264806779078523413194411619980773635699275040731644125036424977064847945774137032545802569929136415573765076475417932007086655204509966487259124392419674190750552287019981452464573273164291226256052229417868759601930544075883853599113068364438894732718991468148398367684546762910522694869442934517152047456229512879881882034135750712360335247488063546986052997596607848336776922775601498491017428387674502855713868101175360579229826900219518843124687398967261498114581172378675220391398629479687175198770859872289721545225832092737060402650915213133654349896157831400561931229872811417098956762717537396860215999465647451707585043487403729573782138536966813385614984415049049244651797448425524348923776291998141803046046430415762317609093867186771707877864431558884814242589523345664053041904106491500433715922417133276237161038034802148592824522444520493561513885394383532339166242585325224768394541981151365997364225734136202378976648767667135759186852015529148392624233343881088632189041494786364484438176831476077288199818414747186263530226358674422039292953011660044855741869740532112378335334341528585908928153516202886943079694014306061873505358877861117467768627957140344988388184603878443093592944029389090808415147458322095562042282511006744557881532404630570343955236273216716493685351440809312297419252006916773556933221746799315537263793714343488468856679197475816084211950178212832008419648260105197000182616618235688332099006067775680059269325913886665106471261560869397446482077033365338032104914171635376378755979547476313456138061823872310629327651179776295807085051022138579670453993950291612766571866592890312427778763420218848414339112196950452840941877126211138115306379514253671071373820026983371614000267801032439307977982895845982109974853683233351670171282801033140010329562849333041413071927598082352913843342202817203952015992178649923504319375823269196330523073507410054465802237862625144429022491448860967641548170600610554035257034208477622622222455973685481928924493512532316967030387881030118313519238366296853540854014805717162672506195938512868849136239765674698753598171220918538240666807407062118718202342917981041062420388478107792008984862286727723694063260716186618800888898638328056223882554560643085336013698485485432572502315361839884502461458112771131705151358586203781844029022849609046679236778586937359231477702249553653892720300509819542623829723148187987490276532608614117801680936612929534160223512315646655509813508195341101830467811037655133575507131379170621804936893434832276308788564651770928737723374536633919586055615815244289813161530304367891310500555483420097173324041623452443537568827355463390923279452318198156207561949446470783905306291284095975327951893726768931738499780229734136182952557950461458302922918175872019337384747401629021907736042937177532707407668479806559426028757744428418684731210115256824014998294340388384167181350453025553653308288901527475815768903657299158841664579730443788563467458523473057000196028760061037977797931814961788792604287634509855728529887110658954019968158305813316195351911246501719596750915516031425143139234236742133921772545858987542102928892464398399663969232626846422448587957263231070654133915521682304991460157678600696088810780993418742528524804022661522328908879837664658943773754724666305043195914890277110985477775218845491746456811656934197439068942255709032559752487710974206278319293503248796372241896374652659921356113410316263842134954192072321456193626024466127417752848456699368054891443477049548529533543584952920724309032671437116134121596793910389033435605960661881196907265738806997587797005973017270855263159459098004675595478108949092320726965798535806843442244239205032759400384770467258288027764508795464309405925432356233276059305973489108832484896601683855992837541518316633398376740042540626854834983873362589303627937887469566750725724738398656179756812063768659929005181819531276641604389296522482767700182654479405536254856955143953787149290550922062403203852950440192597717865207025808323868009543651714976837019928261214213576621459682968190410249808548638606776634053357428553399223435314028628944449571031941216951296132632509371014922144709230677488791716701785706772735682033683349608164763229865860650954474324178158434078980393764346018802568638944932180578353172120480876935244222734753760059603718687481243087542194246400761707904027442431345736133688938565590348208435145827771501158589966271907997387890520719412529307001743203240481557241611682154852895894783166336596668950734250011955397840592441526352241939516300178835555952775401319909716891221620097387221933508127827625512648719813266444136671633656956468842379913259574024486381413356755011725409859092908165010620019353762024523479907625991957828081780959382134935559749564975932905673776418158768333124685645976770251234951148628848737262886631209895052227437412453784593725681478075865732453056224495781198266404861939689934224938104240641997136529666658678182964151144393039422592856272683402682316177838828482292067254239667470429233271961651416457511301234519146672454519944294258481181588987919623750449652436694664947993935951976213421843914751386322858960613786649050369812133748976971036075579566416876337686238087890186432631005304171285732573349809772801088214284617906893258872540718853985956647402558679080892186668700857688806877452299632365536717916803696859918541837870259312679752848002682170653806833176446302681964757770697433642136809440938853308312847351832147077896428673408027885870752624277288877605733757444912068572250362628519476362034822274539966385844532771744375957192583779641185029897365794388582789369858477998578873976878735472460499138217770127360544254086441768879363446746288783787477474190293547466246711826970512641834547555994893951724063808023364644466612292205855043326293834641644199258577258524720656306089720023152761619613513742751131623565823404532027763826562463803869493157483841838328831130045227160562230931296584393271992178267731875794873628507614218861343550921211187702170994727329935729378802172418750222541769639605192595815849409338368417536874462063122829487672118044666926656832290064009419827588169888644963930778718762154470592387462603501916063567358368494779359692884833976664228552003944009587872177289491980863230292148438432407189576821894705710034038489036615565115750920570569830258504102838403046323074739066117702634034120327061040968466502983859203818791802705266134034939451048297108030948886177756250874566673995352054833802692555139757147314335143619259382425494192141662170294143032822679495878479071080391540888538628477924632047928777008321443259901655394741019157690371164257337598498758309337469160857092290445374374400012692854227982687754298779143925462480536764919086172837627595782704934844584541960314787181616028737291231996773571724627145679339901152700386576187012067568957581890257942732177024432368718556581291797638541565096150214203780584699496753683798768557904981827394603018609970103475885120266145703863141200958671045915808272052082306592679544267720499311627883210165629081800085524833295432518460221321308095745708879540448861436467433628876860657596594272094237590738939336019668121244548416057983773569184410589923140407457523381527097338985626366296107149162176986457682268036239110612396256176228591229175846661053478994622654867344700557616316271576902194593894819554918802417767299758579187208001961764876723152916280788020364971179850231774109504498471287943634391242848839980818054622104409856728015819093507784552319848976494704922999335051757670296885191883361026877407844932559415118756509036140519048972931587132522276691322833037737000376004434894707688115115425523788039977590078187496897894416351955253602686736385177298420897201467480712306115013086291314245070257925074906746074170981495858611259745949301563625624671448703881029631235848537102946526981052581782397053373048353446068980716011453094589778582664561845253327705378910822114099723658674949569344631507959230924877534080513461669146571270252381786753655884172167761960647394263459812070507720686184948503953318736336752974888988618557568529719351413257583071434930636584090180777091306544333356264707647923876364979793747220416689874580961888565401732848106937442491726036426664599290206861204360237716199562779054970801711438835561140692177471547528124489543265702212850760480233907600038698577498607046264301234076096923570680241147940572334309641324413225482139254482536957546696265842508844446819021656059476401043823976369763726008165957698318564349316787775186403367333595221380268636361789421247867027497611256952683008012528703559004682070719577989666770393441861517323424930044929134139063048085528346838030261005040815358899212091111172590190490516874492879476344575090247628242390326019680468848456096461624987244102391713592222424550916285730654299779620305136229169817827322888366231408715356000566732946905714882266600011816762873831192061795756106313460094708384455936026747909334164637408272370641020540890732449683543351039938384122034221537936387152850529553821172810748944218972723216419563158182709354530003317614948601469319121050750700038082398627586806692580335540176141692159128528237739696428897693015887781293221751917944273067166363089674614129249167288609566672555576048253573921580149005173496338230019660012608946366234004574974788189479482087061804901901404290582655534990779243809770562151869405528194504259641204092703316169189165707564647797642109298828985903657218680400718790583904648207678239963173155831282241619102186516004803480190623965122276079083615503054236934047512858196007775510872050159914777593062113311250859117730790661711207666161025035666146680631112928800217696154384044941340524532445964455690663495891861761674805327276824325507217393725572026870781406683139611797711542454039177010323592901646539569239171804144170951538101694911982072816680185754506967416449211287116969729790692784250566080238096240235260836164616616821942709395822554468287053243228541776020966543511397745886319911782899732401069315853447760939786942465253310281091303626619014978659981964223758153253925197034762994527227207313823588561043716969891371498463650590554041560802744965641017642961291122762869982351464825248736354790414142168022302039256094291175001939201396576370190125448238963871158777903191683979940020659648638688729259746712262806496100085859723638045991225631197459310324195752311476484452467713036359248372170422498746841636501735546179189660123130326953993023597962407623354071485637517190872936742144068777350247498481283273697884709634304063118336768225279655993007145421620022660106870156928136570181556365763732907125466869322133418677126122968564557315746991714854608860597015701366136382949919607245529053681229436659803323271181544246467955766243164555410132577769089302155630571602061984153054079935769468756459763651093035205818686054634408185448113336061780026125366458527922739701531381421609371268626400421989675054258001704817355045506542845107615090328793421256924920682086462169615450440935168475608961328332333266675586123853833105374023192549170735408620004395524991087038344585656662725323433709581287852686726113393985038766799728055641630839565693791669113625520324921683605661669295562247817198698985191701719979814012594140178791141875112475222108064573197668157730544960435742196471722846470692175540144052971516131641208661000424115502303986995033126587014513577814297697467348388698760560612303928834587472097436697789770068729329305011229835874199891463639860905933371555962634995612494336192183215259491718548718279856010362515064634406568760228077502887025692955537966443917200942053415303265237364239431146104982254256252740049918013699643783643217056676321532449800767905840018209044015146268570758360713950450649856298084699231265146149577808404562157368325251607282167642791995724546028665452602313035057212866469470481277322285592592389876739717406665226855340389916873954154139441775318039254487911177201866646507674800236002052007782313345425154952664901209548289263668958915632860977782646812713953230877683514218805889926497285979661118087227183772579213124975888064788499749089448786554933842166436052274190040862730470083521319795389961045389447374184179658625765993102463245838896194418351954349613520305511823321428540803421721156701602503020390911163509193458457643272155250382125289970940430628817221878925935573473407013142133203463610342650003696536194718119872981000836472339514510188508406880529081859136844132140598414366482723418067230533443400245325288200105742750732336651964940185826295014549418996862915679086994312058266349604532925212829502172927172046081501273254822361608746581087024030968779000620299365306150951071899156469151959757622002860490590685411298168324711179470825300098010064833677115559917860499569144787162201837959346246445070256334118942748332152221923248524750298704574765523568905031970959246559192846015278611731472645311011719764730607761410973668660729930212785635470346302509614795862912488041067773097044473774207827272687887297879942121058440318893424450934071055794753825843680009987355709369889063825920543085026436893396877087263960270803036067043571218461303029430153747202565707611131022577795339701059391470360820511724822771450593501900431124867017019826560599850562835883986692377213328826625294002713031381794309633073922286536517458316394903527815184676496648903818597799365325279565537148255246590819193583949041071744840485585839422437297755845782491045496994391263992876978999682858811927631011969072158897615296987498662682682147644381310288113066223549605616322848240259787375887208238713354351714083641242770027520711227981145680954371229208823809522331309633510976660075486589621428461165397486323683655263412062603776620197881816824836019556536759274806168289611242093735662684266587697246909350071658118403870379191967382091409936702112571974028103910250837139369589703483210099020328958093346511747081117606400553335725355443260160325379212240536585105656615678860035310056880846023622409124790931509060467048196558122158439113407020166149883240295492358447877185494677639232732889672961340236408970960294634926777831383258039445193763143153898603682217039499055544997897417023210999664171300985036300520046248632908901282651295171639091066306888486040023012198148247091560574644126393604368579850158048934174661955840504972268178482347699363483323325814771627024159121202126465289199890305076689933119177920458167384822741592299753742404376208034212925009319657754601185334670293511328922122834951842815224222014959029665649141950765846593065430892503572535889146490511812357826703407794150718058902261825869973711229031061840755716445052540218997849574320259886616676395870814647301723064242473244436676430037456361718290916099472269961093467908442090874430419224714464944172911695327548436155446944679312964885303148687040995839190890131235875635677791441327996255216644718874091260262250144058796440919297433788228285431225177750481120915015384058067121714612699850735313736353666425398628210899906473390982514880825211341974497068693635008587919788817968161715501584973275952201288702090082697787801438426548984738036161973903897603225019603597845402428985732008668287736726932138600824276885884356858925708074253816088316689065951047241758026929322348820702460542768353745937507154288394604550432266871756097204396020816699360887355575584145497390523228310903822491628062770018335313839995537084841054194186821516503467367510035943244117476183209451296950435372398517500878020550907698221875267919691367546350022186665987150880371513148606964123537370575409182079493609187560259337523744593322133883437149894203010122873805558495201023732896286286305194248312141216004785538728074695854538479778792537082635590870987925892422493072595540596205934100794375488146679014166415883475105265769280805197841532944243630847337703564309768976580852624144875073339278765473620695525150079739323955922098817092694095189516562291144751799456563979917739570477191806953608663321355002867051117102536487323503255398725280920018651885171597440640894457406942257888467948227006755948416191345621401275106841995925151248049086192393761680600735330745844256320444201306703421813858492294604551954200926410445960616055435289896437411494991315964651742174902726053294185038428370485550842644494231015772220294142444417438057990920918208930869126693724548196231197711505205896410191556020866932318084094867802197139795421795464143074051358889251585940831035543917996123896215346241551262459211855965447584953771262507919031142304138992575500033064877904968124195944601224954959164380735591157734862744413691020182588182640203473786393137198152165846457426666234885945356586553328052105475076059903008642915064145542872723454258814256286861258135179845427135686548495748709009153794594565106276335902609186951484744024591583808829838674845516619254858082957842217896258981605921577257169792776481923208070609820034725957069014779119953198054369612440669238486668716846615024992407172348187356337446155058245167315775828335618211149059595737036717003231460407157433114340458785153404532970458225376741516655858256339625848357955109040743060878942757945979958665195985626400666078779682332453301281297405358762563789348615980747043075116630943183815624008397598195266244391340063209024570771299805804810751378062656328118796539018087528772175594242785561631349982026871032827063735696366333692195565643990500690078845868675928350959254321115450401523704992161483955258568873753184592131807996899451181480461186358187032335136291468378830044203883920686294683740196079101668716061031648200917430043795834233125857035074596847895887784943414068630359057498798231801497340138202106737783478243816673148020168529076420612221204243733662277922853357697881031325214740199065648502940701538000503407220434026227610337123944519597698581959118611736269928142038964002966297164167856540082660126324543019575919162355674463828374435675772773246273879436480265598690232125950127044922682047293275740742969685955689136782308428982329942878151245710871778751584806333835725223999356011884739825115002120889263349221573243196071601396674233343341862429617041831560813760900526086750102616084311112652965699279725783951639541254124822386169061882525218306332847356999733201129820885743113597544086422423172629768924966821062288999063479575276506270199165735669130189873138684877623771175432106624433975208320307656329099030568222153747129334085749068242625959478858725605423751449625650854551901823365680098977715444171937239808037020928589623737824274329479383278202473975066897430043307261142455379093317138569438058921588240549034934597997267140616153484698390579093267121067433803364783555990611485505503959260968066428929996858767852650825418029938144532224718263921129835035217341367336827839938599015975518400212426748235410191647172081908045270471103314963074226333370767277066727593014946275578540650120162870751771016389393284803024430001567756907919048688169504357248329361767395054439151595250018412118590945879427105385867498907080603446788330519676084315839523949639626703688436882949486954158700082688195208147180856751648504685373401739228305216793046455821965880589588994748245628067802047691279281310443135726817158120463456015300459100896976009196231335141845234271992957268529992948721904604246393821707638321549737889842181225029430097555430137946311486334413617959878328043979651754768902443683798258137980473597210855497216896760907371027501945431522384321182785006925807405027432191730007894865029231254524636776032403287424313476228824667098552659431604477410275537365961905231806675545770505044795411961967488305220678376943107207334420264557432993814386205344096131017924794749000731583455952978401145067801090657609056040940524309071104200363457769814329012295634406710383792492581787405540478535640523292422910754611137514697572630179930364422976406828058348813751825821312445463828099812740450580442232024836695700368764568752001941912631081340706438198371887865734193280382948785183940460733198640940279292225824469657942037695323188917426158492150461856369102335907783464720726031222036808658854691601977203046215257582013362242797167682648857690988973525440403800942530173024058235648187676213911933992249702848499028316436269527619913377919139424053650590614108236369657767375487601190820261255483350365950689455314986912760686866102322143198195937846288629152681798984156123447336994449041423719372750455572715148726166221270280440186793885991883894822717985491974411267255440036209058897559623665546033192977759777927974097701960799398035245076869676418145012317890684854907139260531652714972220792292938685825734171390365923610571229404064887905828936950077723766278642853561151154489891236369850264656462643996838333374048909097437207293410724482430486208417630148383771682867765611102196780286805200958642703973748632675478686366537717646884585886737715836483932343600164338535638480328519875887334228534232759831326838121988678969446476069519250351418112594099083066414379764369959339855154688531103572260991979910366185224349859790811324932809880252626188946114294056685868093281248177434459509056000575263881179145115931868489484160811336791805015296104267096305120697590884887295428074640989721252463482340088519889938786580273147547884298510627210511337738133019336915749072002511944664632886141612692236740305710529020390212285707358622148385429567434403572805211869442826200088983379320165624119063911567936960619531554535054541025592994478192635386395840914160265661416654072848153739288687260189040056614659764609120395225809011764537918486264601516827490827184552366064821990501955456056526714990079066951600711125104597139796591849654613514855579883442372606433561031588820574727397602698511804901790773826768131682729685671979537936891940562066307188282393395252395659400173344228054709851364108510965351267365955047506198165335775755627068782954935999338531686338170987174653882940504875704430419466909381854134782658939507757120088635828578698506492021599011294008809532018327803980297779957550334986870471902653557426917498877983019451640460726949964449762537455724326471415050471998616116728637980015755855020401235803459908186791236882241585058086829300317535014698804780659931130341920494608170452626469438209251539783651682051771825451743829295332681153972030236057350036694120158985791121237320308508645127860847128318845304272296813601631158453022683044920828604723121164295068418479359400491339816133438508742676436228352911583101617256364447648573892081155482295236181148622854643828043613490548055871618045614519284462609045547850452632658849572643821406546208543870697789379184635023868615272915326631341463272856473343348926594166123795500498240633091219065424463171991726028736024805165291363516562769772027617433274649170446226868918223876300150890704829626318722206571911037796676534901616973447751969366147132376036446628005984781276678997707307494260094158215961724561113412877936062869028714877003662397265437067506204825836120880312635489367806586550586169922538232218968968574225532786607865380337543864271906481666647858608397683771373828867768772326254677064972237855627852228439454924218209983537285173771197995046898879014708061811968126768130194892600343207681290831656934053783026884152691422916538292818912664316286282380631139108428479986663270185901361646165672063637459879318762036940833150820673408762887656498942817507950074511137083751139017539262456975090297514077651457313338887185787465075491157400788635299166361591969426141181796415577621431195691512902385706032242176987459097614018622038077267788321494868298942938080164945367895900260161959929188229530548687366186808781959612540050199135403165361952692532993190913459076916136783081761099044982929452928425335828311538423805374219978210139549001207162457050744096769174940346619355359438847667745783015580566441757174276485901422139075711356503757742242371064802197131137029182418392332103847541564853421621540177234397796676335916823095446867803312694893236105740428336033627339541001573348726010641907669095612533479398735585946020454679630613515619261365455194799437908131098622461944756354293109542979134306028872419048579329896777139342797090795851943893073079480681555409351098194182042167482173386232729977717295359659645633453243800477207913064726048316742237740960144278829136769841386412579124013658982041509097316990873698939647359410669635779311770310738118080496878334353527207702275144719821350528812560604786358962118955797652093057643966184587361424722477105362083042498273556456305133871571078869146927345229567565956678619456418481277621268948215226282496758723428822836656786113223018537937114199023075940458279559234393267757560880583274566004457646015488203766675732755945026976226979231007873722144120073822876443532948027204404528995092394443629951188166179552923463633101025045998154812460719981029796234622674290016596764152232539745155850565565753908159197837952508234247050905823823723206891261393180808644093862325156350594798252124111868008027693186725107292427188598602645289932954384191044594867930126079039554403884730662179608643544128950057292422543719826601061315734768879279673658974103946308644461690490155893186780573648505730244298029633248937980624370227677033532003854366865009164555806819420214905491195293541443180549911275597715854175556882089737433445291475401774529818609338772413666716023809450504269836501661074492772318193852890469667166091468273763218156089115109929934180379554889741926524494955856048776499625988287771026025143755249574674458262821483632589230813355136225265213286224745470205141204668377996925049112287644887796408083117394404349009129609679302379606699218630279040579288486497714518136516707174338318551970538783340169587591140857388028768877703203595746324117828426986393925128010210583932208874604920871554653602691652228968850810697188344198296544792677378855748835775005057758081944243207943193098759962157466808338649539130742753724890920299331345150395564144379793506838832112650407371186397625102061667077446859400461324157850901471747420307768199613865730584726244537264189135162519310004642777617124918299099264425869914957256280191185416058074757089491156191596623830169323179018989578382497836371722907172181716115929572900247927091492749938023702421131588723574835968144829176713840810814893180485032771866550126065709353311568920047718492155494651316114587198528280819194159601292853911287664617285010408019451821064246899899439379948296328069239299884327516126745017482081767258927882496010322548642357179811506196275769049221433137182423814942527535168021593166252449562158272896574079615669178974474277674599468141201893463386796243924569653991387345235159506053752660477349753667897387543044088483242439146445107441388623189752559995302320747465959507740203913427439496885252321687308210779226918414420919267467097919326135841900194407636057687454024958146827042768939286388183074370217131433444308766341206539437285476379332677182723658396264852717733873799857292965717638512108170014077683420792301427021528060258393705467341240396719754654355476890903935989326924773279931909017965631870725006143613119611266606450471134567724043804262884326646275801394106517942729155891700925101558917070904708573300278640148364533615304084208830951103304905692837891827760163490607616560676565432642476659419827000213064872570123356046974913129592397112838622015181419632604955386891847944299062301683221039013983544325509406051747443961254655090544678170641600621062515762406034401162173890915487712963788134468323623871741241712264987405933363129544777606534865258377432926828587793681477942457975811940990625601854744283676339957806008677633606858630688913818483786197514269987319036975082371513114150098535076207911731650639516999101377484197253058694189574846611763621782500179499043690698590459623659443282542956468778798066659605603247029314724377776081066611564205393949183863782531893986282360976630753976960377473734420467607941363821745836277172991945044999030889247120196531822889840803136219225105847831871531550770008836928852985743232217969853693337543888090296029929922339642283320786364008117389681230656869577666108809103083346217500473864261821057850180184518128900386661584916659606132216238273253376375383078803979662687404958154513897902004011295864822582870430421950762009857786494951090731452465899881686803308667892502894590419967939133042753868533483304211745922570760429046688800104030956727826980654738782677783543745454708714993709141936060599771325645947730623545827925086870219438746785027665329214397019148927532977887350339772688672717569942711516296795815430501730258224362916070597545847863936909693335957758930000902929148248775706592170008319692402123055594937262921582820676610766381251463550898185186181833025238921299213437727972315665760616464738197221210555468966729747295636455085378134601323223681634433961337721415119165500572830715561257529723223996729500567642243280026074865583082784996229465447778873456034897240703387404008202275218206482138014347254966435311015310908286080096229248664678073746277582776124338399410542536931660408503382958845872862407240716034974374807568172922666613213603901168768829974742110826451294340949097105342091375988789743825150068696451686307999544611956118141610574997168003539518264551780276539083177980400130912521816847290530423118880376905498909883762202851538529776069572776455216800592476772649574589419572049471023030609468525585649954052060446575857826593943962899245877344380603931335581137754051125090129101225186702308974933162160268232883103021489492977925819188707484901485219907435890696741295788163909496825633450644841004865037848232661985704803923335531190180466306334028032574799921543999684860644128963831027776481310419080360373862853306836044913538144450413335537163541357546721910001465539531002892975088271380947420994288132788122970226081669043517907623760498304550040436009099694117579262747194234860065911994069975191123972125108409327595377169019515340750726734956155775189131587534053405337164558341700044087501257832492289581499766450186946455797975379880434296215930678159942627653246101813728627530414989049858062322375776586013030373914629674982493334773760612355492528136108809930995039707689862702060610090626148109650900219075602012106809805782825878318557868953604885195265415985181329734620360860428968790950675678604413387434568430735461219957751092026043330137946107065904310976068462026977205768938260741272660123159818239693082165924866835930107481265896288757732451634010516458424999880372156355203364010607807169838767354798241343126797329228748993218338159715455318318266300103052183487485983253624508660705593907152659574808539364583071417718980382971909999528184370586598821760837172932707920955746637800423055505789632099471353999187830634358562571174883817805006375854221741302340484008567470643821870441899460486995962871759993690405595801161877900968119653634100458079352471448896915382128438466003338614841785882670607889990221981833376785472993724180112426971181854392950680016420089678625476554521738559260970387801024640164163846566909132461264029787001849413236340809071768907563516327942541395297249592879817561340461549741459675868999198697079156620080376137540969021263931793794907169439943979449910731192214443137336850628393259487553390380072217287991651737491992578375772020302261895686661466005860400306178221292322476900395734784042224245378869424535652755622866088412820423666673911309117694896228065802587374262023955177851917850800980526673964404904619229988122691847976836351095543971214215011792134906955090670440820222635002292494430851495743302890567071835834952282320262058374964555139891039403458164986746105787453562055000432697656081271420457015246534432197739041870526922922889027260269911864080861469855525703605198328750220038684922799892218932518584514524775255436075913033888372432680423864402123501573543379988647393441453594006081174581184450441500859739181534367495027134318566594263123382717013346039092893244532118845593555858156883358879815014294997898175648555560115381919974781992613396501188915323214947316496790381709143299831859746945967787226076315390777382676794648675136400209800787565114370792146434172241118036168462283497382492149278611217981581646503063807509193725474433590409418626769743327792787034170617556002960544657117571139166745587678440818867522126039400719945029964775069844417182665236968110694259853310037907320049442302092913743817285711714181724371067971564385610672900689527920283243460844093000632825958586614672085030213446600340399111175437834730878727490334193710179214158202270800677207580186686142647201684418442532944024749041351741842791035681447783064467003261788961168292282801748219717852336822583081520640481219231427486057709423969466012898730714944473760397705937766154078791092912401761472384126304287307248970837149128655241532370539834234389908789437108919926271472287605140542276237491813896696455155929952039329063933568046571469124696848069108116325118033386805938379488965740428780643306460235704368607535602167754541989211774200256759141914560747122463397522043773080453335940255876768972964975106293642785384856251603121995859771872036313948665667607671438570458412959596462686338654019042683519768013786345390078681348225674562114861394635525661674159688058065483954426414706125975582028690430396192953902999762365346247881681754211852696147696487995026526556795443354432743565339609984666336019188643114140863387565123851915404624723567811206852642764455444979666070029031998174739430483084768403536143866871235362580523230170308443900250834493621122207468770336878690251411687158406241187886119162066737664926961073318795701063966970511636044608899421682113701095165576215856008369435451989883511372688051738761898151561326738672893569683340672436402625939097561900363009939735848645091678141592007424532936374328488219329701995909699663214532771995074784495642827048658236773310143879136949245402706334058964235503655982492143686181685894915978389599899567357362455100436196059570826500515640839897968894691845769195279598420519983939640246900695174702123342824304942499399309847319296567109379705828306858090315717159321473881606929180260873808368944645558772675816956318606944593149488186899556358432775080305616205889595078438085954871155167788272354854270777377370448433555064455227934979195865594176935480421480957084214115398927298973198254398669707489239638447724699685514319368619568093128286258913634940609179417971045581773571466354044087793461740201159345840324400776827341504186986266423519326310881347077806879021688923389564302035611461534408204984966032734094089561116752285568438543463983657132746269075943503011963914007185330681016744371533529517383363500047469610079029704663515983889818495630761363146407117539759018832351897457546000462544484456189034832913072171071202121232421655498614018547677114677930005460926432963079053494927934210147827308263549377730624543043869833582221542241050615893896613911452324648235576896267488182709481529932185817881405983738933970619146299847947642390521579312796265749530897938724402211833986944102284838205772047946712925178994787175955493579591565983510464524308906603747542983245017811388134006036749227610357856451876417293487808897846102145775139337999495723336203597044658446004768920627716353506478688951358851832035517117506976081631407120112330823510268277797078441299691159530078568909157684717915938364155066137919210515503999060050110731286363437688672769107560263923131061645214346162474829461264382819910162307208198303318051450003974960320120655175134668655626094888536181691779238080404805989973630578555393329504816061274002231823557142761201394707299000833531077492016662235391763030811182471410573437881174541177477968907025261664713172858356373447765728407020827706940729756858609984203318665297944054951126710630964740253662348224083529533028084410993866112054647462654274730370337820976785664307718428692360516604742536876956742053522862506719051463828050549860169331515646394310267865306922950761517721098499410618330564975737487393624524603207523233853395624669475050741603359265548991153396569567521135457680051794735273759387437796848111389368064682204828019741534465172144711752456265818131073282844678466149634116026020081708312767904210708514065514672251199779111528660323853117500265831185154928961566370257452694418030743428141137537541389178751852143484445739106214776316948437035157240114884551149596318514644545848800035892184690217657458389395565007388934135307920189714306885274778874530683213505400560776703376279632112635092396929451304118979080267777582775340364562220326984538830089045212769121646099176044167686059577052134677071620546627517959208368740328300102659139034361904196475230570571111094334094650806281441235291416581903869347469171008412556509973638346741350081612064102380258472955015878580886508243800134764939815127598788905972107023202788157404426790025453216158246759763410378111880833185032621924160839202572421564835615891368376477688255443672471410939865252248227513715944438467139255121851731837383983200187169227941119358859826372950678435258250896386092778544137647770931970169941087419104549397311161578979131572463173629586061025056073980528735045072976595497962715422808348304365524437520535094837881879007110241557484395871809601880036922788045913066475186344342538609253417215251831100489762439251146788668449421318362048981408661544155544004222345638137671903796759237306033864460422371885705101173877097984220563543296605317428231688851162691655758219427557847485066895997537273697326213024921855044438757609164226828174008034270660919884409156295939614138911877698644713444725742925949076689159637940611296193131704136064771102192394038744632491383986397751427044070374016632972639217688024708631397915722827565724521618626383455802677471032456043167265826743372614557532835559714664010862929215846239068097137302546102499048841029000317862278564700441856532850569969388623837119139298811614126642921970498263772496978528555420797230327802051441368798749319052836841658523616868628331571452047112809142839598883810002820786843052534349707795956331272465356210513932840701874263060511067039482346518783836797484421583289800762233277752202850412656238914520465861036274139694685015834190274263880630428500684112168255338841937419626040093858981021127718330889205871031644833711002229591601085126066166823692591238683265961275780454501477321527942770188024474526911147851841894302414239608057513031376725102855060316641222299028032759503597304292320604231784358523371633614534480943827865072581527791390087797733365034693890927123539344881466580915447341518761577788408796378850933772832870124450744107390174227789759167239486309686131089962946933324183429580863551260260631283028188977534087196589600597542392661712283748131319121349278157869902885142205339962975270126471171049316080777649383102108292463387130296354142574643262886027461742244126804934680259478693474785964121613487833137380384204961658476818978954484780984547388594590915936441600584667694520627649834310590289370448179084533553176140889132637777412226436628386632264884726815620611974478743327097387275496734676862951152678707129202766637486999346271859687154023273876402668863116374160218147858746468015726953263347962914236899149573822533832743968223267323957174258178614977200264540555964419001697190433572676559362097300250067462759980749786305029852021484522685656717199105323026954950534648964366148135575275902079589195461522690181757597063093833813673584022866111026502129496684383053656876487443576876714764137113807528549501160955533280653313993248141587619060928714513643419462083840407059361562375265890888577531279207070017116078348923098129918110371303870168866549275109383656503044856626996721175961479102896604466667176138170986721928196752037368933342280394529443487480660953616643401813352547443361042567022291989231606827368046007526492192519428113623377163150170309845088948238247047290689285901413605301833424707842792820677912733521789964011802908691399402073807629852557678880737414241204227015050805765036747949752427986405529800542785421141357680524545137115733676215773391242166343597952891556663272140785839472018750816807396504609620729805991335604307954398336742704511868012666029265619032007256931922198710920946546403351908056915278455144671103932664795989384270802934030801178690323830994533582292975237077972106048825812509437178164283064514376363053532671703481292873207920485300904613310569932903472206753967863910015399581861463870266260931301927453235888822591558712397516359742300207482397866871288137124239821278319509030623879921603512552597199019926861184172379301785039308789812984302452799791952833074949768039820607059683834778994241400527451689892529227981878362600681869819486939008518642888061601323468011528002030583705128218764016622962018095769678873853457231131213454116469763614343087032649163395663918158241465046731645452761376652290492486590594744363566133797118578230697613801939734235822197935679030530151407483343432323952985252711413807198501536997965761532716701488795362273859620167575213322643899569293635338052661970439255662450422730999912653505483079558336136500514533658530150465614098260923484697291297314434776819107925450249071134708135622903774832255148314263438320812790867652262750451249862079782787790279514076254271141754734548700437249868684171840344124824136941659783424664133915504543377273515364675579537016871716133039565596620387257956106601510535518714257866419567754793542639091369273644201154288337931011361268640421474043875574120398414527102797041943320678212660682640848097795381666333059714287866859112326746357611928488612579438017428671156798813945222444260320763798823057310846937640414767175705327061609490883891165384368736591016594240125010653041970280088767701718818217205303394995051567481146865605597804336194834672364213455601503094665329973464460847445689067101598739769396895709278815767276945407868041039568366671300755550915883720083199515045831579475981273028530992531272929219060886571785708970626939466224700050970812045711922464450753733689661274475227794400954735127254895038535680661120748808873102754796382612107510656752656001614712499271452207272077529321482545246136308674518417363747423073108651591880339214319155122341585435350714923090498150411752692034260593114618257679393803865304030276034183103664384061718045747151929255558619046032359337285202154294505500384880558473025058610208976812487584107158205372950094470878118463729170819287936190273877141424453858480937164921376667998716235677337783757232174798880151278167962447853660334040886043543629651681879034957459811184391478786914391371959703376412673903625166515261889849125074325768790005100703330693937497949929526241131267377590037879742179150126776207072615552910392498290088441131093272857073886751948584691828460333186826489708943249449289601883919612415856395020879241753912651958147343428269343401298682153892069489200571951325387050197473438326353362124502837857366896838975827718216802644187371257422228546008807566749979228773148745336168853186709063946781572166412721111325954318120212823318378694317322958912178993270206726930119583435376957133466819476630743945379315786419318166486224034316006075636122555846555620352278075072552379706503226326377269785381121943954831990611278339912122497051523841486651931638591477501092313051497440309154556924777586180409225499902035050400066684608141256255051982949474460920379359295982949586552179443544461472659011786308142996033232826141913961556854429798554665368851796073250926010612532625606680852444437817926980082457706731119876808916203432557498748673068101105731424786861891022538902678831483498661054152685343825083530387597145985982006035554620679781325161665151333847362453713065927367547085106900434631263945811920907929735674893905896024246394013334373151218558656252929423145129709725586063563370437368802156774692780372812342207105954062848945525507657312304239236288410943283256390883648742158694056010262296630354244579732122149750012509520198110449180388512911205403505030494656888018097020500763247782283904968295300697130562194453504429071164575428694658223432834669398437377878367350661760889493974706995199931278091121254600968454516254827925412403004146515434607841462806281286436818263999857335527349475051295560670156757753453158886874107600177515554485620061853677617405700933169471619818849590081115436596706924349490542256700369853750743949300125162953716480045986633880656093561667541151518615693012298587892629382979434255020967037674345636105258113288881554549394034058889156091020518631841904894173140374087342562571161904555351963832681044482132033099689923304809889518063515702251876634153270015332878371967558621800728422282741692216549354857851481323682250599482217904746158175832558252822584939927543109797554319847123002995674100311471149367911452342983177488909325787685291672228583835502646428813855147462003804588402145681788601808320342325963582257573947860054030933550425831121873914085411302116000241753428824578412670977744338718793657743609483748844972593260414726720527247267852398647655917952886529182454405963144851056823323428303417245900392662713981293890568744198028398979382980526140851122775745054037423873437674696716036892456775040511987119205214374347301471997220828509714747700876721798004939993292608697825488501886812580277176441697235231652169937306615181527566333784686431286548210154600235296592797269624575396304260936118601767528496846832128093078142582760614095559526782601806220888482602303984419836619851712502147046762628710432993286878491163692004148993917170430091070483213240436881762151855770543479020902031991521292432068050535407743816768023106140707277764891114080061553682063966338743240621158938905642344271248699915638064752631540472500775260453893049703979308531028007013351651278146784663370706810257425268084806510424311114034966646347584099727249264817930848622175238657977454005930816121407305476297929014721395739538488830194813666186049430493626276809551484880573914317052864755993275792510368919687199117600243020458401004475229850982875583511905941968706884344913855263050601272686840469929217381121993058719552918623935971538016268153753614295506414407784030914603298726214827432536757462040141006382763535288080480202329609828222983266135413188684517619840982184435244130542653715328635485289173385682843772396906328396497928967184277035737892393566330397686445411777958715202606134244959911319095413886607607018844466711917616560928576794448070893693998125166546426177786903037644996729614042637116303576330908621940742177862307957448048890646783024094862819160869003599834453614978129118318341769721416698283803390721152414006662452295963079736767756562579996660361430354743890156752607799916207046774775536473312711993728356143538923813830442678085437238244408073759499046516644769176235434734445333034717823783919986210123683161623514090440748235492988278387713810012775921108918581349310875926874910417050406664601506882029669201926891190792397141427509748795834410418880012323357075717982431460146155341790573880393427161533116080135396683250953223708996934296735053630736272249999461300257248752864436019300887464651651279622629362805524557237199743799362773778247208383593042575771435073283450240051975996545629524770050360520266095141789833087933831479024450777220458906623662198142546137283717646435864517057419683772801211271086026680173218816300004986143612060617038937878223705071493305178510363957410986284662624611169445054939641189806799619147682535754643755960855756822469943390099526749682911028353322997710609221264604730328360206748748091478893714093342619985102046485736832774867966106934855929023221939491219183420084822055793715009374922511774715415353207168946687610748969504540786774222919093443675818583581603621392998699643235150216467206687372599583854243065355009692941246069396961701439628218517268335074571928149659364498253343031751634563779600689442377189518610776393203398123411856703418964750483957443320570575158826549982079110182859238885493704436775617968216604827341810085751037097441242498314183927527264925571370409462650022228243564648925589683685256037693025611536853841047287297029108771033568117121350067156821604154579270567696798933376383318504990318976940079540778984760525419419947580148061312687926829785642762772211772186674188617884507404022777439217961168070310772171872541051309837049226930328808983698246664393564468243202801384549206327424781035277568447514255806432587271412284498220722712402018478920814787905939230727613583301891468138453573693081346074566112864943136009666018669468649118636720611012684099701489849874656116479270158716024765181381294005066375683932571298979533019627811792490365129612253316684925749877593023319776147280769910562045036891724715931560674419223860784850813883759353700452370981633720913238221764188423200979897215256364616665569466128531642073463976109880895431497426354484543859330727071126505222682425820582824940468970517118258985268934787292946514852694382380691285876439974951737384380355654006515245337202498566448685936396917477480785189557720494761498538013391079774233196471314740455147841743515098901314765141034947092737271121677783258757117896250590631550059019976775918054929417324095958683880249660548467340868288922633523369495760355562822135754797592100504144305686258914311163963315370304264555973289345767180818227117415391357741849993618403643607405388996279644400357211707821882639566506841990295369201904337298851868577968713587260444521425573064566261934962217674088488949929542828183872982147553129632303324122996427433799263775271032246631408239832177492872474669903519143751213888660865422996731225577145168442160917802998641980384356999596241042018265566659020504537236636513426302666192848142807648290959103991025124581036409948826648602563145351009644477487166133832261994187197257077102049832892098050591745434632799317917454669570279035967662297881362829309932239822749284367402998948556158238233258620250655660430226009422412673665346554584394196795034547059724909399057142043006732258829349116855085945129516714273762325562305425721266411402708175827250224412943303470489462818849556365394802063808990904377017001181047194840952315130456498597482195426758561470052660676286089552502345577605250418709703034517704117038947986306049524249232151109841011634401769022335930755118230464592605580325064126683025501766144523002978239818937998862448918349882772967030766195220147451945593919453007010826816326113929891353954749884628564105484289427326546090961325182856555982656411072786915540067899584451097534363279892257101286641622084791724622408117676247373444743250124502427128475369084050243125548759156971023635277970523657348393616197741648128706566613671756502521680958568928374891531817222068263507554991447521494695620700155497968634174114708225448608329298836983904525302240066514016734067265990110190492815666041063576460937854155397698990734168106963559776821371086243543334613601115138768899537100412790020565262519229799658792172976208736469541313998084264671239680967543032929405677138333209921741073701659575584799821128606826852127773239812767930145070071901488990507107775558066647821536768362535757087170397089348934687212378408020394787257627862322895785105126574150596182271528219613184008255391489712787191932984056940482825593456530890301355651977566933837574743618236994305459806376090342631191091569929116954236810465505753451220117408675703530979516054770113045623603299760035542571126087143741904343400089657164837161724562033447174706968115183583956679766433360770064716171249180560150913366691580351583364223934889542180204523913847805212434582657464239216548764672798691481652859998808686700646266228863763491847593605781663147218713123783679040692497564015592368135260823759913016598685842838882760338011069862491887836348542931852149449552999304089276404168798569514421248541556944069501150771962123476388399932082107765375183741823090138261609089315296491160291650121044705792823667491955786742282409218106042400502298233587849014703821985993448256290893744087889199569023699576525408294405548778989184001479105195589378231256865304831281428562293661462643529036595055166214711331120889581865902628257677823946652511027893114852719960069001795870792869736011234326611179444693874491345053390442923441125532165404621492522711186576271216258082702489411576943372633903475545960482461937979964964697480528666383908117519379927115113633342329314156351296884345598243541123114382570905779952297872896065646040477705941193334925249972057300790492858850010668280011309585378029787878059062038175437886835989201283730864567214834934755352067331195092837510970284551599641674642048876783737143659530212086727560434605765147721121755473499515811988172540913844194618638387549085334257971852727953783033326095559514427036834440920536169376947405934686175614985355699652026701163509265702057057626866476334527507911402842179187155304599496343266505555805633295221141485415856293311902387308684176054652656026232467934878268435013878333017364332589120781224190477211255231494485025232952751422520846899497260677363047437129367044268108339126922126334213000253147636437292229755459273421933511390354572767927577531222993757033678667553621676371958818365634506739271263033693488431976627103127154424766462844346038861977291364046313202552776240376056609473932611376014374159176582083365303544166919708364272164933939815745113583014176984737733648825449246141098889290774236018435279753365780686910502370153835553048331185399204939381988337030528336376196022837009985068672649534886377555579253763403312951882982407740479142726526108674981378545655346043974465359177959073032921032752452942346205172065713775389395568505118391624938908323679091663387385994038773633567801141505136124446969347636278997032696322437840267859277334619064506730912172552427636768089873483533063596673012937911338739438103729841500258143241466318000808730872015236962296699331285844596013413656482131132327109606252139163742025940558454759498709751926894537889885799635299886459141859456891628762012863167905169188962505955699664875838384475485086734965427345142557053884616573234554511745211959255016681666500739599969515351369230991272845102675562086298918291663744544366407700245022179562775392430167090585911449640657092838918869244848320313310028716350527485429586814056047187051514271510567708511300853232256017361775815302795576866154251527401521897799174812911029049788272942806561964207337993652567943972152588704094189255239958478328432977153048932820998522780866417517364378476278403793825560289416323508099204750737335749694062428518186776628427101282737938730123555666305012143234234808504492435852507217180993656940028235883125913789176034609217495740108138598409540999938219553587638055310587448683149729288250006938783376036220567301168028216363485119807198830445867865414768802187651309938236135654253161088596661816818957620617008909700029607633433334322890450141876221723375425548955758577268412597519745570922855972501716878030131176357559387543934594787176321129247906082499513847523824460823822576856544237513141238666671483093544532221954157529265011573095546754205799143514333833426080217038622675735602228627200230555571814610132542574975978909221042380567136055068862548966098666860590853465939920229427470473924894157572066992756924729040260256858891613627690647169600867691808383865882862100412258134618411108408258649043222160434328479284046882162729271065052670689762078524352115607938260793650976106965204418824750684295665959069512758843622285170025727628214343773004306232296367778340518966120287943633109332911178720504096572304411622332726659714006000810867787894844038670364132489865617318414965346991120973077405516763885795077237362405595351777451640300669680526966659440324281458187396613787465449225702013827264445192242112683523312152199666747806174163291803380829102182171935318190770115615211932820300269713180357611066519238055664096709761598540577825056757414760140701779152390528400540635145919905389057066550021071177129218780799959386782364324332269783032331313720882680353819271497539822094317245302844079074388269282448913989973237653943752632972588058744764015984243747038551106223840190400905498028876027715599621082398244720136629940073033524043264078089308641365554739726652919775892790756574458229674382180800231939743516887860224349395577927819556185662551252631772102303634665170248602138217706035297304298122987942382445275235960744423795027411965217978135244057462621924028672701271107668573277682903078230452205168684193424332011520441573268837974335717731058320462629983304012797324200399038994433979167869226967865103585144413559079638233534789312849864100118106239904177648682660019229069712776715193758746590348960108632965197474820269994000610413442766548267486492175684547009824119334777449406779773803977798474399748041948503457206129736266088365235221502624773416664663849089268779917855776754868886493725081079851554828963927507770824055791493947734939083912716371055086682592238829034633118088315528875692667933269024524345866009403751634198277043255979719282224143736565115083050749728284900150327733588466022136277993025778982665933555677199977756285870152333292806754217316280829505980068303940765872836533624541587413074879635520777621064270211360217062302172845561754274634996154978351770693563956058396039381818195650244890929793386189081962133176053205173094219886910208474039265944497792020933416018251027728955075308539517657978743625426662091056049486690233324495655325726647895503343776382817205768107514437553512060294443827569558015207772290819846541608566134851586827286360861556656783239367215860732675442734801832724496665085765870558434183172052186963891252211480515253498959536083446411072806656161176915926792187170337833449987380421741068234767571469128164503218803849377189807000796005384509979517610735820703424970638177740216475080642863547750212730009989747289762202869966981534104565415273967713189066757433221717791462583503401783586684043418970109672245511131048227572423875720620998461363702181074692647758816667568296881407303036702830030262118416627014376053117183945517109162907491368414369192118353260415148152456242306742468676460365386839825634035763681659396300786948222795929278472050431826548604611499053870698781739094892716442300367595935527930635663785693865578936233522300700413170083743315238300901886378138434865576893404343318271213784733879313706188631004379943847645812206672898649887782100999415694677037283655757863708236947233458376194513211336863438096088097729446461285780163775079129583591054286568325884856605988322231130787270299089467574125458724012834432632873581694837229283215323238507703143659273566720913512146420442021897786689353137081150150837678871402263812948859993721946469445282556823522470968286892319673740093032046178994819405081443597246116433763267870085244943499415351157902501192967765955079161834725432813921374813860638186245369372606523782687015937647412222898447063889515185216106464948011318484563468905165581022049494911910019366512326580090105490534753934696061097971352218476261165834135512176696691197947508488065379746873757445553133210577762985966363580449345258212169331591331225266161450574483378612643256330211733043596686498052274076488924727159491510510834159547584238592934469684584498925626630354116818136459828390654277013663448768404007696587647436938413014461949426496027399949495272336463329389835434780563985817518960283543929920609655502600484731695119366549498773280088329861410508330695379584228982673933712479296520293934416729872768185771282612870937539053174709167176685153159256755069365218110199252038703365034857313821667036816621347451674290101178008787876057520032500460985798040132881910636411644856912500408953488776244533828968436082924243038734665326975356348876317731302952049049836066284368163201070720437624608657565142096770872653838084064078712912594852818775229559990512830697173243952547103389549537349112816574088269136392122939878146612526822494726099885812383194037249222925020585386036046206052782469176616281510438573353009808432760054843555036054297868657454481980256324868392892996900381290702302488188007670795873902064441614404466083023293014474342748448135029985003274194859992600698211528967149936624567765078746749366394454793764070761317867256206967106793781606870980271921068337534097072215661046030218009298713186679905434966408558354272112129914098996791635233934384134437358698598625418982114686168326318820288673785592333015012097874827549463245721055246878336337677099237418480486157709655210500019992895443119501827955606213595360329228670779985059545794620799190943199664196473894504612346428607794978646667096787899154795243616837814899825132142632261579297650867434088513547679509137582136424848421046025072259762563047724235907928732213246478972807659736602988254999697137970947736067974357907594010425396613994100811310647918352425375081659827797441214407226474424918288173311641005527123965887146040320245461053856989028433283951124003406111400096293714736022484955260289924735874666371078246645571654210024701374264941409025138814239159226015856334955078880511893280070854856360911366583916656594523071526000766097759941742330620141835705036656517881650059421160589770701826695150472611555855612668891003796214090072807447346126027522369564720572542379905154434349319552177894204720626278141837882414978297339297652432683859607345272667294888621089331951120930634414113127076788493202295219414085860797537060272625846213382365119597762311525347004657659038196948267564903893537085883063557863542407572342062846066482306460258614944307064646619602379432108538271939783356056517892649001001810974743164630692338022337786782638002686586357487165129029789581244116513930276176522444477939359284935680939657006409870940063559684933355905359714006335588357236782395073247295142104018849687084360913119871844568482240927864943963738400967691362298630362095465050462475939649145097248250915994174600976186380180667775749246977949436144958705040329068005352970577212452663629712806939272782507393498156138700382071577626064136176102537064175466647293275624510145998716767145881122215343120890110352288333919716762482901618164606453201734928130367733749063593809047078170375133881868124906332119929841769923378242172214916431839795098286054270476921594500061048536913320206720974954137580701165897132837829923042021902088767479186897329806279942513583046022076498213146692738462946405640423734750182395778058918552496924413348381705639811015259783732281646547371899530298529904723747070609443016075592297946602739722839810229726870988280742602708665471383929254877939217886169948233809175518637953951932125465715692116398408785625186210317687560815801238746106332886544220110072335098469277008469855233590018905020863304953507811494001022343207821699611883449606286725600441696783692401632375242752441787039460978978023605097078621500107786810375395446473851852376584813793117610807444820081213725030223764753111399260750125320953947925342516003031164190459589641928742265222787420674275924670672130293798728340909543662085792818324437871974372040472083826807864472961796515476860871524224564599633223785387232705669838728527057297777404896520655666077496682518594192825223616413414505598633951040763677540393627099909331025302855244957141526926580858827289089274516846214423093209560791469179000179339894358196135259815204719335400559898891594443630287202101743588192955619160149876610169679533626963530559012755887074314890475590827840228698574890672624821534351121475639281940410927138807189684193336031676465079151170294442545831901500540511994775354520686273159214136768542990713038029277929041675275817017714295349866961347383413041318191508868162435605150244754219809714154880393521158726571942466326252764924486045922536750581679905344364020097380735550519657137526048432185208101486146096074225560869726837997280141168629914052845471590029321064049884816817950373425543211261740486149743791508536607612606191577812425524586670357650235531006170964244023337310517828128717402952692043713144395122878111122680346636686262257038891657655404255162147776164211518951607196100248419833249118973484913174436766409371332866558375660557396192517612662195920365164549996803195298694611387314080323382174693095608914164641192493676905778750722856494839568997847144058646101282996774451730253761870445902971681770408030720013058470547494944797930097761044483931241824950592357843224230497412654976642038875541130064941410012843797162379953226900147904742371774538949384538244834814972567226621925840392192650605237848878197276032635569908808503881670053263677077935848272478113981676365302057330112474781787257814678323823168573493505493404519883223638513063044483853922617098640944781257995222891752084457612321336748813375388772558072054110149449722800416892305722973713035429680026520078571978597669413698556270205718175157096595948384643837805186723091158416513658854023340018469316275998277912639406975248742360064286801038742545271150897607329010402300929369368345566159244678441247222674596311548025923080219917245086925974548773141508902190652471891160421952076512179235705164857609007616492129896024522114338781690329244545657757171245827849188465425354703899837736415762887744552409290009424246875322894635967571734976176508706913145988281347688747883147967881577245491057897862806106229001942395498977428505033821063713517688608798585949024194905550047041897463968347933980531436677581377893995860964479783135710638825884807787395110514030530904238076659394647830137791395132710847588468586049257232552615884259077752788297624958544183881785782131029593339674128380563740388381298589373558128774086352588172967759844026846519541391727591548821608074863406859197350372533434431952354618866423642763912011625311047034947220175802166236178670267737974854706130622151865181103479752722114861854969183095175282874276201802350664374785074420051127175378747982372900854841011570165466768189034757875751748554068821900747778530566881570283840261007081588517127488973752749418501826889773502851673567966573722330427448041914032585706743686304787790595528000592398079772717350831311660631234606585330314376353252012633955548177510462847965694220915323409051256361277912875739189899495569347009201457929556133159612838393677358511741003857878572457072917348269298589505251923956840245435434574980673821843840830246811685041006666552264384876371970013173020209436064735217660213654632767495253137938071050481984877571165680575459517122808711958057302556818590454084201637727716579508453203896301139144659381268495266952054989791731728504372359072755534991925918893393703964991363058132375122461197349189007393809509304875243961898533689815138244329940089853344977606614487843019423446270084339355497823563575832188214597012366169644362860631658177932319896712639655701947520173700934175141175456607715543822332636411090787476513087399870551914197211999049847438788108874345762504279140584613764249806674664588997278105932674807520505883966164015544419550840038802926877805956867832435957139894717867981186332492387041614108056559562690189549744844628187298478925222077953639134774143525138381926385276203170443409864262819673638025770764463707710763886200507009576928554636314695526891298636652900459575821787082321438318210054930153007264008287259039097690023669254942839049969617926619517636091241021195925972645604655213563926084825489742106444654764337737989710552061462422556261487882355029706318128946699415790357557583196804258421712314381860637200588032373073014862813681978228973377127901774777416660406767762260354087659775403504870588277638500054293841352821015389719199141842835902951166293497232511014509806067229343603417204043757148138913739151500274848313683734141423267605765293928090526348039790735692694270612589248268209477656092927711134649425738783126482707363850640748718057349488629760135682708990123084864858438840429668301486636675796416630444741320968014618340526367093081622561442449172570746061473299026561399047214961091076173390578565495698798162225777753748380722063325316231379628131606431371128719849952648777932092684783448659627278119770110155601878016992300739195589571930334521397847239252073062169112156774444711207966153896547074809428397149568131675489703620696123515371338890818174233290052221700955812595070417957578890841030720137618963768408627602855752507442430470057618110281475119997220100303978851132790966078230148965422111715805180305238122459738857009252252875565248161397950707656369230601662033346149792639921492034931518374963700776098030869932124070827301322594209396214775552712944433176855760246042468685270935021950695673222807625336255431602336990212070710718453991920324319757746285420124335023317500710810653791594318924040006419207441925265299452673538526310025040165550254525287356246681762071626800313974393183745173751106324710276308390227779057330287477832495787137872989812530578686061146661318225362186949546685396137738481026866320528178529848617536638179568511890642148341540690704067388976922075080308091803135577764998161829843898805891276269900217165630717127826136667028600768262812746568762648164425088182199338923225727172033859750812321537387934865250058135677083654223169089659758665931848243486086933339050508702463516462267752366820259738639380864769505552540713912248498089301970287975914193323012667205552923047039342877068711034909051901552767320386407574307062501831449602146333489896509588025306777853926335096797471955677819143436601727603882878899370636858237526476942758100852059624095333329706118610904429447331858953958230052192867180569155313992652596577702393411291218869581798614940169482253101347712706192101886995139018181962667048289548406532962076205794240481850408352495356646595049449529621486795780399560715499839331762550017256495510012149814978215006507937464944764865091683574075319866074829213580792256539782858835098249850196630191160909019139537335088530984347536726628655265886014323515117965786531408771374794910574062454896486395833782397289447877484570603997755198163544105637746540301874780248621056826208276654354867039977653641291529870063329789243020088006533494624899736149489073088321008991061850781073387054675629486174836188770587378007747996771068105797695862101776001830195876872947816802092075468111559488870717582822922088854394244606741647828830582585108456922077895820689181987295046574855050707763120359786501833600759702423661166835592552888860242842338230614558714723720947982118281890663602108397411103616930180786882641730793011960375561513058973445037425445495002096426021495475013257704757790676837281944050421583847158871114325065776302873437640251062850534159882161325450317679719592508689962245112981008389285019699296741903816475222039814824981867121726675775429814852843065931616712199344432863354376853028785432044721305939057293307087730171490657435871061812640145172122326508826447184090005935207858463893741383063487823636248686695261897353381641912922856424648002806947265739197598486817562114889451497357992050834369733998832172912693702572420703211861388364158351968101187686882391596512255777098209809852312394080226815024847912321920313502342151874511856333760745964214348475757548900377839917250979239638456859618404914927285878782206986143437145791176887634063469474641186866232856014746142555274732970572708840238711843518329550783815150522233941579397976007639714763501075855943142479052104934756323522962927270437364589430292685263499023117817111992321360746062494658161928267595792124784426282209317899040304118060241764522906236343543206487926540819036750051652460750237565017577680456146812598336078569735644734750811200788230267806957226483926168162752828376124204781490829447038588163896686931543641348242524680083486398064329128038795789829135800748057953368214622827598685623717382381677025749378486159485929784837399217150832980019444023847569218342928871902113148178429994788898315570600782269139116800608648477859840939018253052570555082442862451776284093933561553599314033421814699355644646816897856097670987560736123383680590604519356458470731033631043075452903676111215059306451674707246544992999589431171652972089184153769047615314058829745881405429863426231957626387365250116220188787597818234137231657224867757142492382154388019665297379120403015948109132005651995522180674637890496210684296236719002110533454671126790097415516266568848367816164192061695442561344734922756353798833270268793250293687631715341041257134761566477851830684816144716985639866007188082424726853475626943965458895522873570969210779716915448580697307543874371926750272527122380046781690408081339501670196920038583793278280124424254374822704550252440592202486446615751253834615080980037556947750070404636377407108501654227214659792510681826404777180656037948579549467914206904210152286124050684172719858829020156139671137860244266135056630485650930111866756393302853421724681386133335672716433824921540013849505468424071703276494956242914692384043188786913270290379365187124498986689655937061184721863032702916560800095968861212016585703491029458747925380494455194681799777265750260603083154366701885761641765426732784200313451058723921177952153689191340479928318512620706985569678642625002810259304106938695732252218497736983110056847935178711806893245709273912202506681495883181145614133019598259146308508314361726618619601305349962861039313177630745016242634495261720681431858806475623115893469896720629473861318191451932676684185650722063569993739259378006917956469155488650405606968255807768597703517431109448597164550148804256643645749934039704945806248196190339253978619658157268344550979069414042126838270436764452268095400506415596028141292514237615655369918869989635314831179717809960180770344171444535513736811884858114857196294600677005902508830930228780696556061408755221043636886080354719889110183843263313844108302396193342684297422984748898090896346309119546693634871560682816919661700673046596214004143954513019978048553886531323987215540719653035840161621955420291756414437229652587222530371942934705298587060959875811426385604615125753786688917650474039440201045490002176304043034675770314816884486297814796402413394646884867340589658983352494675928805079659402575753763197584307557426636636192233573368044302171035026353956601108482682280872138764590151352430364673329484817129641533921001272717111452164797846609322534806497828422421417332077047934587649670704708678984027822931752837639164688935145913163075669895379013514293627543863766347101301970996766225282531186923391262508219355974089094748329581341739539099024964403122328456764268976904749629855081432038840293465863501774536443345377478698447098225130650473233986365721180752380686062402318889616122378435768957866918556055894411373189978381482821640862728788419788007812429762100995717164211657875584809276555769680667947173387009026346395115366206494070567308156157104986865135361274968234440094338680386397551031429557939657327391199884826031348350272073149394370474698884697589880399117482973447492053113308884445771982477895149391381194304717044376188787290148017108263195009970492570822987433669842777009088239924419395161100990670968110654621008629948245517660720256689325708414731380680525425136484509283322041073171259395299944876668138710445463535574761612845292093085701817182667663194875707031658593189555233354835762728196952741020457091209154563165977737219286740071948522007335759673616157572723760801274013162659306964292801474193318842482518118452186511498087413616234997287444000075405612811902530955615919626823115731378345345571785155039957361186502138676474292246519181868478877622781076472599213459699643581513526636607879357312111698991640189441249008512566497877262146602501793738450832386881860244568277303853721187057227619737790443918205393055872137414283172696539475410203427807059614544810499997641942158240124689017881928266865456845868736218384046612516532637958035989058973638443366091658136820607815196170067368901789557631733287032491653175380520557805649741915998371383725009382370731574039522184535716568397716477603265091001095783458222590826051330422610238487337211420740199684605879921101509948635029774116060506844527382777172085234658832955345681281534368160402829055705707998438607078933552531740460272905270480208966242335728030335880997033447420565487036922810656972955913910950264021085412620689662349087166098565139277654941402112921293480787426418454756428366249854596433399408182977194309192549716469127065391725553348407492867420163217172979148193742902633393470853920499441601278125698805502014874078411938427175343909137576864218894761556492827148080711212087466336014496749760117705980112053734393403279012424585207461532890374965990015691708524050538090727482188241538157473956032389938039163850526208400874570657747502423158511148207412520999128126028765926759930079248610087355861525807006851136529757177660631378608263574872808095972236911463995053986519269809017045425493981214443365067843743192884977477757422849865440091712995441805752244701257281950651648329224918804424428867397956485803936007348058894712090192877366931296613423828712692589363363915644133869253396886006748584653929226379819751991240794978395193716302972373676139810141356645216393131090068244655798809089552148880744766891881564980989449409242436891010270518060301832450590855427642490059344979260999216376131427827086706875110637972230000821302373913622988417494129015492761371989490592034178292598976043913468113205017987993959111860195816680511988659732684939453841197327216674759662260028614545059699620709461795216050769240257398699832089183450433263969096099649403014310363143036357260518928809955122811465008797553895107810056041899500061706219550952122046355183468338341489178964706687492059985556093026900256899805732193693154543276925061522780939950303813185717385999611128285208982662292434884814964939592803178727221258252951716196172941220593185560070691675007150861448617080079667007347148137208022597896922243535139270797695845812119555949285535695521773100577395016456304272006969427453421714304401142032388791591226386858126605937018805392046224521095504797339864766361747455994457992868483654157357980904303743512474543371114500109923608368975395454338354723027919932874614631695071956466043209668158161533545013077588573290356479489939108071051597111330357707760045669921522459576457170725762216159013897998353598944059109541144575130088718541951124420981377623660245654162302695505495772977866441580879423823603655629615672483673942954862276163913248072993574350163095392082738472181896450482027838076298812828635134766540171379988223116306080191903155233399840294364302670810671462010901906207331493423070806946439264417387748354884932899924238488568278586734836225961783281626791763094350672676505767810075379200685424683429355902964374632156217898516738512108315130253629372117081585040052902939523140801022817009465794147842746229490341123842083842874596014041099949232008957832159948537263902758773263787556877137734745365642083464393984063368449505489760217274281929329218784173126862395884266579411838811906590674159463413617225599583866491031907946958522033354651076239490034980450015025789463441856618069180550391929121875575922127182979478609813144713675441298298598692997867785423648244828028778195450290483199020790442698695104441708911698304706558980245106479078317746650472366347770622188702232083411794193498000598979649812514613016523930266764229670815042817690735550659031853097279087524313334962940685457289044117582855223403561622414172039561972559838976847375510924919842250327404889831752951604397292041425650677762898086606483955230940324535877252440514633015435114671424947999477853278246832238586798197121237404463256456310432430293803608547289192885763800250041191540780730595513224911818422426371303841953077720596683397640894175857452434410809569900303588684232657701423793173883300993910075907075083081451056211167311527530030793745326630941662354081459921523714199774832846885805915789155564681017585836694720230104056700632112170993777225375494082153644433547777593027203937972084090112438918064674230482630269245544869301332516761489251293209244212327749022603904073756326963169312186557033656666906107425330735976196716145343146747653269129112181591786027991081504375482094308409250617120767169264820508079070740943360641540521701680633500043657266401772768951064766033071722828552424187892578718457939402576773605982662277604026548450454067364724718484762892352595037286042023385862272438743655121902656810173077425893075425684746386320657639104515150789351350793274337412080797435610502349045429877920362617173868555823632805878478133850395873313158363949786633899156601889548311171361568536120476137568363061108795388067205615242561757050022751436348351893388688123138557516962221150198086406255800266564896948286420392367761057021492611066370797765116931438784277341229316935281095857183334222307320743942752530278551116813406681621342434190914909016215506857623060293635425876715678110676211758562296148680012123891302445382909159108434191775872179420716035281610622416690223124043469776418036773551282998923308255251344750407174617772748942748567961516165525453875982974710381746878603283961323271802284540163940845000820452325629795780035276005195192391012687481037050413300513376136640547893050143650447598881762971766505493658286143178721545918801395450289869717890140222369050959686756097918535088612703642308361504222157569858288876984250857362007107356614118870032359952093616967685875739547791369842251035881675540625411539106319184272754041985167944355503074432412472091366934935756651165984452511812747888022237512937416977058221278167196202460907109397884917331629749001392526478431148316313869515744946338195206695325075188011058532948955614387347300795348304467679975268760091530267725423906713312848161607029298529113559392784517888270163688315030144792640221805698757310451697043911117970116854604520282917607089806423497978161081940560715976546195629879476378611368242029799001998228284685953503221488317431542988289358779262924842287054064970564078607994442124009838115751848815261598760462810792810125316658634962329913072191118192841190083329838419146052497146517852848575171685026270526744919855992438753223452593033223931743176037622335771731591419321647950667120203636998652393589748387005464796914874276147147505504907142228265851484308778603868014869839219038673984286520400826326991697962439523240352596681770011016790911948744414041305495526831687296706977462728923933882095563928484509795121335173539631122499204846232109443480542311936083024882541233517785791928015911518995627474438570085523373579662537087506139678400345895038277055583613014448402381921716087750917985824369927025032468831512023001202384317887932316585088952685487610062991075931659399764184539062836587259459539212844205243090933029967257699621579446403581767173356958534632821236885638181962835897694326085483931894378667222401007442348931681827947214670408070240853705844258770728585045838544447632978771613859085969450312786138419118486035515808928241629784062213348785410631269864693285682061424450964244565662401201834482587695316010407461138374422780853701947679285634114118046686591247942302509169831908821602897064275109506417461373059028348225879651288559640906400301463545407833795714785769996535067508756581459255914489713218105312798692783590826255756230513728724607876502719649077653934386505498152164288093245816093478493023444182258700880906354740463347055043474723724424197526737914262131300057207805534403239140216752132533729267404841482345273835139577879379412983113896654394267593021920017955156190854434909791596892751795417889264441107569431081276384849329196057704857408641465081410406232376556520535341871168932391878350130173377783822521859460046734293701256841801523315321329294085827806008004108307870867581928874140610515338489567880564271039846183478926411987141015829457431125846806103314981830194187742706172791091356945412865711286416247473538074844860116241628574467336260605584376051422771237507431248244531935365585925756801184041051073348644934877026278133280667271957366231197967759025571581470966418349317010444085570376766875448857929977785913968220862905339368189193514843228628673492088204654669927536283488909079588026161263261327702964709919420042183706943430885283365740239249444823361560571665676062729222311285842053765952651115340970509455292013392810936175851060946873075189645337362515022302947462430399275523333919513922395885485219111821621429236178737223305462689458702273547664038132817438375597888080189316292119515017951549175398119785324185240453627862469655326892179842362558277722766673332344933865722416188774072500000855413836309221857122093045651540610592787313029421058542279121302315725744771940556681968498595887425357564923374389600092511471088235577288019581138957117345042726068336494909698334262111811212331778405327286420143255607012411661891121685240743315730921933593023610161077294559298306452293668645280062723068079306601411354836284533226315077516556676381124585289217381763000546552368833612759698520744206535549086979240266661486681687702206581063420510033718544260197493803655971194541104356035480549732148515715960458944289038107300979983618929681336972360633302195319581641154127481682057554709246091476778812862164353795520453387751443383870336985805999396842535766273999263868678343821082362790855361970183568538431127922769137952506629025594981567605078465089457010366077765330247792050219344348365962697724649309448784360768334895678128767075635031992375121249109968814795790417572837822821653487478439673212731329325459748626012165474208740835855596670527277392875525971702262751268733083004744764403280411917784535712276611922102543013609375470683753891746999980905566768382245799549042303221585133182000062841287982221243694087241118336489382359237858182816897664262627588507385754406784032983888562246952892603900183340125472445690438574803297990565633680427441723740420315796826799979077865069124513332558350177441636945868552784656442591785308445083715073024153830943666232011364737846487844953925712691648219346567428063181840487524674628495329655490735880644137236727572626995505575852533608670429756390583667844950375680492242531453658368204525581116188744005663981109349374708618004366774430590405877522990681550503748767502940295972948340368412634222302472829153404041460880634058868859691719492265614411996028726076401029333892598756544297979524737667815296567494315455256257843334457793918545477039622130095079507347512512654145117975930020536845777277519669039539647798828923619705206527807455552902970950160463710162864439705700306084230510339364275297362331982753617890707965357738208151761717864477649178024359213362984498338667332123509087123918905137878346746407724178207870242025789438539819997403850400314905147008214285179623855624757396352218202333760373492487332712796482535542675934248725072950539163594506355130366906594030902595920956348947167852053237581951906712789375510379980467785114683492897308546912917587296916211579906735034149615991219437238179940218172301866144410457296004624173486578316812029273758401519247306679392155979824010612315107477570123577652554966821559625358265935921109512921686739859676529280964191166667831039983597437825434753545107179610997835860094589084072429772549959373212773693131562028434936218946897378545989333388337347007753652469885586796000173335919802183681552655763151589573236102183000865821106782900418557763191273997899995031671362418724291822489271643679161482631662144301079102712628031802567068318664948415962347303084960818065469340316247266300403923064821219726626344969840465911609464895610762573895550013762947081603977703195013966184483143541624094884760251612513038358881959238832905667097122909455917841407034979963448833792922497628000899019528131007829631905585221413654965164249826144950167059197864238949598518988913709904185639336019338726698124563866598424891365515838634153891573615620229274994987018742472779640911041937596406697404646356489337472122211255721179147020110846742277460156821445800825083074253332420657072613160117841169473520047321304912616141948697250593374208638388450823390291666673509089596212244592042216179457212737266854256242117539660396573202586721937395229048380320970387998127083111534539442151287406643636484035377262484982915156405983965994935836450433162709720778542713276403593132862348832286956177526395778746679074016460924838212089693137555428947219458134498765044533002052165759081070224661355360898642182813044654792372968740984716846633626673912570560406633363733814207788476614217194425868387412697348507695556961899739431601807629596631005291651443089673304677014328198513863309080103750695840340218049641278368318431537532783086436402761079315582785734299557752343123403692256303173126165770040498252738878765988505587942680297101442834575938065213857773041038160611452689288495837049151172488221058994008792895296201823826678299431002640042978016483985170411879288389381610363555126620979686628932502517898854393609306893085111812826051008713282125058034705846124467303542400738799773656173365942062766820062916108853849879326077534830419101491877834296622704489360388332883145869688472145148539293119970590289962733871737328233949879103168469113009704950326057072572554668183027924474683761301912650641451394776791339390087466991986621644429765111512830770343560474991291144742612825836807872261428696791457554773133109342225309468162097959008431356474022183254846931118591525868298472754224098385185475977255750015519609949521331771880674281942106871369565009599823226508912176612632228759663645339432862451623240576460362334755729251122166248961226390154314070616306980196144159206542344948180677231671645694016661250096141557937482863781635952483856451693164337649362927253885429512957960718765836222528018899834929773123868835397978080680447465013967081740253095951463918868461819841258908641299614843811861800379589595933985223253149993338632370306645161396844278069341399784936789238111491056165402495379669600798632341690174449109775683772771799502076483490124318532036733082903895304943907650133348995512971068122802802551461897925662662642580795090378637468437453873646763723032796840560013802817315609953343325028658867813660309195031639981825765029928262873799205970335876321814117502142476127594161119275944481000121157786054386335160996168251488138214418342441871296165196133419234721842074387797893072460428411577913850195761581601466384572370732568921185548569721700949294518345183835537775871144616310181490950008549480130888086451161021963288920203440535272989646063545813226168758874549066493330374388966738879853800786462402686846990499003498626627264815545567541855694047714450720438533692511542353196372842657634716111727742744023907175631498348585329238765965002363279986462860136120711853881212708348691210620889584934402890966058874442573996646869390693871312612902615165123594871283843667130060328322423698361484967640349373126825485057875824500135399924076571829877945185782739141553253714808522298942201939854345278065896051308506008396934733911385211275234648517091670807803835977709075506836478690230511682272897908482987123599437963580393861010503239735622515454776581325081375441172450247772004275227293685250268273886805647544069287137657130068796674011634303140141829623277839772554891604624098404904950620205514129454155872439026689496716668721476084777634795420100952987304693588185778273372928307967675061917095203203905943236189765007878086921114216970394447372803919082153408446969426579250548799434417792787053370768023404813679961614652039413495511054221930590746739491795812210404303463532702053615712711165525667967121245077886515063512492137834591026200027314471378422861572920014762056650239502164051789741552447876769661643711394969524049579923803058457825184221857672487404203453364880187407834617022412729047446582582841570150696015835207990141543060001896509596488964856046964815114359888193206934526624278455142917818779772975868127067211730060022026460517870405492195613377493781215732056019119358082699845038906837839554586903405798676543274990219520812452246908413645671188305501924171105316383591237684062069465468015748727254230259726308697994317482768422762322977930251294810668331598103498005264136292769721594814133716462462807062584061602275062479541559455575327826599512244492973663663100056019307300016146200545463117358458323406679560679540797103111351955479844930488157391666548248497743305830401738049092686921211461220342984652017476511789029584073623772125620269124805227740595330270892982634023892858878362976926621944738875496046564406961586221284437117024021953723759207013767989332237410731217917130485592391360701319833780382674118697595702198127489729166064275740930621136510142962744164917896143908777827115967668201458890377400466784210792961796119597634241883455318783178583990910190523924953495426179538566359564037241496345852618264275823529041057720096265033478627470519904778289722392627459092329658998988295457799311497047883200978148140185777818127886240229442957235128302414696474558081673063187157769005178800592278253830588726759940857444674776402947230586567029816476423268517945251551877114162756617066904924942077502837666067922447466246203065355134100490152498475254728429165216295627945020970342611876499211865488081063988149849142855139747047928163056027499605154931345615214142835641628126573490916214812677018670879556835619183795435190121299282462698867033615762055581534943364978912151154543612006151776757942912838124201047164496688958232625436151025374907284513553566361410727304236984168135528451741801515938294655477806556019417586604921174813512704413031371666551475185469783250798198779000859116612961666052169542957154484503489936528957348932242067231290905985694863699665101319983250719994209248863203613593399563607039398532119388018424757522448864913888177195172424724153830313682116090099605926458388313699094155271905789702886269186656186468665487043768062739516803649213111130730346861476063763591817009621139181322982976378279603192071515166352200094569793747449984176918133349379360374900003868609643842378484836209307078326828773966977694908396240447789598698302500710066651591416282867276196241671853872372825138040391396092739001033215611333391237801996998634462068903974986926962584238349225360992220058431931867119048380039568679899002447844698916283729985962607095979203387139482259342950172628120976407074531909117499323488235487362009647310667082122597634300241099243186293717953451951276882915040280770784595558429965579450952410042173102098404564969387120780341924873277862425949566712853386410731749411192450109735266693890049250808103338946501484259438358138266098675697711496755123880601968042705340604195083714747529499456225849542622534006460763761737723230508536873799867212972932200778157298458539700487551029714085682121781027535189842143732487712555288088086089979048825669323489389569615561249727608080675744794014104497294159325107000648001383794342542326273152586031684074225938598476136655873468321078797966260677632195730762019952543588567001265962544955915104067816396954980460526412274962598319560791905675704765548164531458861265584532522850557778382044519788718685295954608281347027244448272710580014498769719504501229684817699564162653773729194595467596802762820874591412308519628250215133436909970317496896447878826217842292269681249219303643724769345475019620382221829950169555867497113659715385558663073508549569029079077754634572241991681479268898516116999984925385202959479277690707598502716709369999785369097023128119052550300587702229932554887095858705525375664843335943246942358298843605905713689762075655470815985981605399474647942294751171823445558920901333924361125544107502851270944553708437272843696015747085777169530563978713305326489852703178394190476305068722583081590224202570931117604213381918008501710793338880955481644450682272029696425647912528922607508969756133738112766909073736548685011418951445172742159386935677227287252201664020020829547319649315238902845754222175969950977429924399021554296156990810114490452349031199117101933059029775273964682601487742181732801986316046368579372236160808753438960643229164718375990790734679740353901678077907871305849465245135302921177582118897278994783406640386898176600937365003459843061648237145494404421020106536115458950060275307003442465069814609968112525907487608184146606459228795165365314717556927933551855748968132635152697705169537722884094024233604085877213798176535852451246822578176223148262171207070652224331290850773881214207997150696960498580158902078447569219246268760370179677248406607686356683159870778371332779696497232052953864583571967689997538478120108862022623584899955950779914142888099314208235828325257426410382776560767759258120143286893316317261198604701793401333772892738120778098995426782151874394036063303562843503141835840674122392558885445684426625700278488485631111778184424775170180635701959003882468901177333567127179392525855074796466131380194796467127186121021424975126761255426046354131791307739906858000386968537564449452588149918851887486235088902329445926413701803045772100263068631192192096539314289831978153297985401199713598357612268705902429201189282556149174181441239613339140809140841328713561573755071927784789144135213401420702764151250672401597258691936834898784032695069186447934705180497552390104302903082690835145021670664473080130993766082580516353216591035939918345849944740347838753881273460651711959840525918459406534384728037061863856719504736690900463757939868322452420422914480973225786342379572696351480950009231701420399566033376230216879634910640395842233485532641764040634887961677901206310775131252144965417773240239430015460106970908261356531643234845190107048304682550750960199016085697366168736450120229164573020728937311688361585642915154153282394394120697786561598777962227599490501872415472192005095646473570737421912296312080964438289398185212281264547167596767213644988537772380104188526270832242688066346767284535218993166714791306781917285756432406094163424450758641671904477661139559013910490457358377845475478584135996473215026528266215509220533706834804084264990717160163381887670019163786768826308556723266706107660918508723624346530265265129495163624083180303547109463513353388662472371252955194896278470740571680466043854163647081866918306249335839796946858055515751082476699088394779766914890462382891170971798015064355180347499954032480455996133448096784925420354709160197462024125425771642219505519245377397210282740828383580398635124937682745461807159709506408164431243849024987843017182565993125701889231515516644335948771875927812607479282781672880132315504264937106969353544798372249068131643051784038403745351329206800898849117982335030468811462778373882528194521416233466749152670025156174104658595139668574474115790698393850575313392737902206941681892292840398588276836441629298828774804946183481036492111636172920960819486593344709071736995584019871321297812600050941460048965773771922024605338745564922012990614237398744581381355459877638609530345751360117602988240562270450029356748816085855233969218870240387884629241697388620519316217009247834459992894982539636512841056549444116261734258677301479704667937842104674329134862309198644551783992065615093004992714961558950452003154535204178982561523908778887235219650320392757608830353094979099599746984119444418249862725385362531557954611843931488804252669788926270928025401313224228475592132691050183121071119152790255658606914838402234455881593323429419682366167223531453145224382765774084006146251316484560612502724169906872052239811701027698904008819787341136474369527884407189031528649216145836716807850969823060850987496664320063583484792576792476957826953508836178479465579906973283317585449032929268748490969587583361659553975513226581275922586873776689587555232425583165259220177714701074781680443231557195146281711661807875537916284806919298168537230556326628323273493955512495343570094084940985028891160299505863585702850385342538409545877122368350011290385190089579685792642793817566335643979415925437538027539498704056188146885370627531295997036756816582496800894317898742757495172993119722713552651198670480379807979047926942620768623159279253339615034270707289385973827341549130003527386873961603407451283427992871008841030274928253084156684886915034770225762250334800824843775687735583898853728859045244064451306302749872240033851793232656349034812124800959380098052160821405660507730766327599000750624770969099152766114827573326123732429889617567299559322106268697735413503761017661029837202767947414075515222403539497509220601235071374169776507610181283752822205157332480684858824427128957709168223883783566030322988719633894545308447592970316144561130368542089197262766412945356930815521411707772339388191128720941047257704922039415936446060645295854897821291855596638437892783918895219681805330706194348742064396754479401477919731285793533181421242572387799013022546633893309634275126273207313213231466748090558345602785652018396494399768241983942865598754869658207019649006354423468744588437271000366301100808088591324464846176991643459555440895457528679114746878245762183466882736856474610491347533304635827840799287605238369328237041869112605972220058696431549620704511723134558157516428438209256831110509309308294740088496612939571964391076933479988708897392605226113163552070810607489434802109151273851425733914487739760834662407312966699439419104451087600557715855324299903656440101296569138095246542641195895727788662762607525203018907822350728073572184519611640909118002054008918549051842636058223136358793999126653006264561395006371045445090791191621311113410451293190934563121330579780778107159360978550110323346365107232765226616323594217083108823838343390161894861811933433094636600229432770763613405914138072980005258344468715660446318088816472249185155715477348871092856542743131651273488745771770998921841100636041380861355416212082091553257972938087442598832053609491384464785243262420541262069242766925647923010036953744465525946402826304217387895156646727756455614154715294413433142197907930037541827011357428182993410114955847594311831275398289091624650742763836768322479347015692904240295910086400014608218464859952321977841630682802010037512178547419622251077888124457118933382252076635904247490785416284195222061280232034864542409632141429938563734437894704558250845057181825275227363057154010858745823830641850140909893032761903990172937346827879313515784486485008873575893413236777667141852906053189669958056963065457087151788085521193647319899025509965124734586349412600808768183002722077478882898749779064963953580372894691715650841039955903600291929574656400377954257224191552651950772120401699740073893569407837277797522732994893478026727278039350187361088807421684499279900740179704784647917635652293599569645502670932378313464576146429928822371588019443954172000453036602336135425404939067049341363405274277019066154331120081921631923715773050702079426820538773620890801523040408335844683342321503076369792378165598704364263583507185374908563495343334503219664253457607450600277910253426803426824827919801899191397260042383740631595213065468922673912337819578729049191524272449536422781043207942333648756036943137361967400880833798769463635020505519584467582763953540544748107683972170009381298177724746594477366670058446441404986455256520801095368932837735401336658822550392050190468869605397261770716125397832850549242377834728001079602725612045831502520282990628372612474223742887584497609718561976907585766493672878707547397715854614543266828432093366899283065563755616205960162067700399094286005996347522312415223550521358548387486045159691734282988586421505203966065781925350535454929988812733836487870403976929153521227823344588430623556159750232547069811740339530559185845098853272201236043510533757784727595898870534830515842400405862399717721828443302819043327143480005743526661961037271683092085940016075572844445297159862798354665961977803963332761329279078927655225523082050571634608391470247275761217272312009159625216345570215675624655316403712902675021884674257585329493898522022677045273130310348822703899029100928550065171576337959615585666057566759930446984845689334673526344491114153726145306433414539316062234536380923345854383327555073902433019264446198812676709377991939232080369956464817362422533636434719665321500349697380856816907003077239781538985765160454533367844100555080896765368982633792497377777556899308298896422540308286702840796797191687037452252815915681161270516818044129754659202761680394416897863526665164054179292485012217278382025478406544725314516601360852364931664853443214092635916759831296053659738876938713636999522453014136297958459545543372309565084428100494117853688245671266336263044850112979947948532236021502027753516564988146168302143576129345501531975006143886449601292306876990900643618735489172757352626343790458849589838717638740840839016763783746971021513235418731086168462606245015988846601458416744219237926311474876964939748976269237959263518250689931985021677978308307195919850609883728143744832603302159304523941222237256936321268775943880916013398380458011267712139169676804323518663519913173499597075322147689869470211088061199083423220562635121714537377223547979876058430838707936396092803725145607169434753413705188289193450078674858910972337684166246966272876623278254158043101443705200455091850865131715138144178937455412246820636923912750775969627334448997222512523442930016795751750312239148325386892343132917765731172341795558775609019107438929742419225463367374363042638892179759900072212031479608151265144124048612754598378952689341673660061355803484607898599274208637656022254840552646957316992182805551330550154318279264212456446485749329910637242047639553435095286603214162652462278205095060960829066384463707285647109238972817353592400208907355318274702363447232001836158244295152368403555760307323812550825163790020665341527049128177917905152750147190146797476811037504381447961302568319926426557627532211200591996219131819265044194105620133099677160879429647567497165521727245527608931259191554050119216315434458797465952316418000379720977082629906689522889319175848181186396053773080676959379465120023232100096618850316001529527774079430136152150409127652241342787051923105013140076749768972558751340955721459062257287402418894836268495485285992078482172755532385864952345662640600503748219151942232388161156151491866485368794179862286412149332647704373573519983269750689409507087272070353325687456664453847182406525969642495663581613089059725613984284339727290933543683582387538636641429577399733951018380216131508065079565145669760207047221357481869451549498307225145523140879378961448222367179783040487038476002131343044249799110472904037057730576020721813334250814314435127217303835659021418787117043514508936181129296797250046059409173070118235528543020361262726883620120872948739073596332886774022240682450513181684886556736303835811146833642312078950524169653969918700811411032039971157616193482113165022216606001225089998194416309285259563113790126514255347168712221804628768143885167577866553369777300107173378997563533284923445786857111349735586800219046042748081683953134387630955163923464319905781681102263038798027439945706347653559144501145199578534759082573695109785945702790755589250928869186317628979784663252786151623453117485836797254195105874793789879577869520689748515891175386618193760662943552554500617611174090770002009977687435554385420146646483789905301651595915731436946712800878396701148846758044999830563178500898145258204746394510231324301310385909774646003013324742874248862492491380350236906677002728339875741551934873398097861062454956272285808911994843874364654343336898402296818762467863757817527066923018321785773948836163857617749284895896946870250882228209062235079925859174313434209126754119955281929708229237817055463675616552294438666104741289189297591260787799980555969359522402408904249979170380169336472531345964967104887145283421800811719517415692994686563570729608505716786120738970581646500500086782096226481389040752616043392343481055089874889127848134435799925560652394224434030127535033880797461909608403112666182145149834516895563137791236288937668018671821878688708712892600523264826336356347993282922521331963227649530640938927660273852517575249710582463808261093806066306818520299218324488614524104412870693113222254117983380336616496807969978388559457183372784190878311328800726475695651814131136916247095450377594007945676112215095506578445824742005714569437555400794535818997402886574593356563816915403865096379844679417610039294559238849930895947804407681621396660055698161604312555168635264920183142155604475778824692626804148303703626151587129233348664136018017036880456004912854546322425188742818501095854381712213699315186217691140517731412268732086421299764663520433890540162662789499868914997977240686428190549451675656852077716790760701594423745662794645932384592511180349444716653136653211841326820896255525822761591312838997597660406241710840914445106317664722565134187941865360301089012998863058839479551842670212577757247715440566389299351781348223377154708225833987904630296278835515594120314610096404131902898205450889666097095813626140390651083325105616976994312158671422604992600529971779535170102101544032581865240965124319122075527091235653660731671891543860119677381367882946923782384047455342688832503907734005966342174909093789096529360859959547532513168598960090719303768152053109933627633661056118046106787734517385368749922979589865240838200509755400169808520009566398728612298981555335725577049161703176479015134763138097312704235591110967816188783549184891071396510651283380541823551563444287350863735298423157352156902744718222846809341451092403345368398826519881498293614385462845607423377373930890945552417212344842023287932339611622323518454660280463321595208432873577899728075488516500120197837432741939900234235318062042551406113354619851905094334742136197493373257920198200419733315716628258453197866478304924997076176559848615288797436866336544522004863806382914170650059799096403460707477625319242308067511713041211398921737565426397194299875658353485389093627273219512394073278076986385418920103825709736821287241836081086618661370779906171215473309890426871230960020449144305514312639021723483197353826264493444270400568175377913540474215645020890220328559033655036518614622678955348153809973460557031872586478408923916181991212248367577551938543274641272252128089615988674877597588385543944653599821680416487793528155265859865761235685509560488591692552804890456835271846570157837137602859791679465949264107873676228181553559471952515266536590156186044302944086192833824915417588077754035768966142971929070005153063042335265051317085517129801931487536759948476156896675031256244400900652506852200735881362819298116236864045584146350455236008686480002124431021411697014310783906677423675660718680190352138575328909515408210325458596670365821259970650434421854974827415141327925481491713100432204112558910342067158306297292038425286039934276092231473594454986448443540549419269582659390245292619102804522458463988100344510152871484153664446686761765707898695217776534719101672166842212692061884538192874663789612401150166419372820698560574290768090677530493673970877291839382478652876058661066513237395743846087330951817022832481506900765746516562567458099634411228170460055490372364919396359168418554969370010654008553939678661502462429277435502565251866724448711297096712516401232115116707367192847822580698416038663938097476719753835694880872865987366663902411014470928042299581457935620773043459122647163384082744835303521872092170027462794444440411559021132432534584242144580738800037699823953694766279660673900543964967990096571101356356632221087766475426793996897080261419596436156091080295578284926731396925293557937666254332466951369928910465854669069605340918174167201603441572845722007202278016831150267529431439149478725037138953227257220034226510043766998375067519371639444310187135115216128125023518673707370531339269354986426763541041189969908808372192396481551364479089199741916566335824451010282398619885146580764944173646840097582044105972201637922264345874961504864077588118663085063914002404002391944445238186450781625069176502047494933789967491983716101617721404286235022629167027421986251563887236578781184644612801148140725463573029975121376663543398703801381989009174329664943446618927694456800008739008414282407817758529197078406977881514901763760973996815003708383212028878824084277730377701518771305062603142863866453670760209476531537827291893941579335769162373014058991142109447044347540258978976291734676328149624037983528283113909733365964857263711880488914325241519835002388552753128021506268647352554904498440840989382881637669615992510335922074139654456286484904005286129126902112841330839426877864880682646148283132801673264959277779028886452762959073724643761452981330443814431252773812230593731167114055436064960363716712809681078332768196538949501913024505520851913126741408486443548054450603628285007363877338618662337307388807102287917995827070952483935095216600990620383263097783122504910674440547930236201037362216382422969754723109771401808186846445239823258095256986810827926884143596298488435744513816156873727013230420379809514770616710553177919503144426603274899913299093750714455223974765494853013963229688830981777779536548982278220775890244951810643228893397257664703972044825419711157857111959467631865692628463965463562596198795182866524973885774207111884070299199854603572327547106859104123100380470192021401871857543367971963889450364351203598167726641831797469862985201916198987840664333388191821996600278896144408947163948289709435324737095494463276712640176599310402756570204084780214667131389951312167730586634606025511676778425332612462386548952949131581825122844807532502369660523182409299811359541047301919902361844429478863390279600317493037296135077397207827185701575307003945513662199049585667662605380225314402697511033670580874214150916855508715823760668782902886376289175065509658786385202498951098645898413468040225560024830264026490524908845224375376104775364020217074071206706345930481561301456796502028883258471803684222104303698677966447418305852823367089856748622345882051677929979281865029810353097685465378488678682314737441416793344523255931553285020818253625661077922953881431059050482634818448705210866965174264904257536161431206859650973251756396582552103520130186129830693957589031800429290027045450954622873262941849954090165791163653617753663654009849974819229498807826160131244607375071426191604898745473286545104154599852838901292204834274095090413720252530512410868883681849604532660100431732380102881355260303519985312920298027025091964784760154053090272464898143784192786925165073778155596897068510581417797801628511129303688076532384404952378286167553884534519944771138460655143615846311562991586817179844861657072848363028436735396092780184647406004456753086639015983873470747918398482809764307859129471695057880903365625131596288954430205198956011898024266607423264938176782193454430888310011615720312670588249609418240904354693836351514276504554275550208531686335875835584507295224190093734316379321138202023903155086348262391286745046668353198441276532292293040230601251397063268288138241060683573221064862659199489257683139395517030763004177036188785013069621780680095577804906903115503068212521802881267021256737939823362892676382210685176684743186511330931645918562305805375524058492671927955763862111600083380688282587944493190364014543735743354259626446693193803335547786403673065736112055728659822131037121789608257629661653018827560174916804949167377790475715828512895899303747831447971276058808559250138724624972132292211935877159039181932901220165857077751558529091207189443165440035368470820939286241348502095027965161616461734514308643300808769954809966845608464760229420449691373326244709933080316057488045287338214526615107354776671476385389217334418561864453752598003071106398739344844636153973131175251133986436240175703950335853427985509542102602840096352719654549060949442666662191272918646804764116093164917665954507313644978932510793441287768669152560923587449437875995262637675504575488546650571620114863670855619118928940895869053204697123251533301143243344384258493231573799191440742633809662152778380581621907367434817340335290285322908640283970685601966171247600961491893686103782024303960828669928362660893729679375214742073279846051688909140478308772206658072226133484110843453943174034447797501998188473224395358417397125404366251859263247497852957456655704194258745480389424068865393344729042102097256217978310355596287439239529506634550695506116739264505006943035517994108934131886206124469382529142428166084085311461681815432061129426548405129072664306946340564480622467078863872088394537922123816911546097070256347783046583721251983087246810690611936517551670413225008805419164431697896644730919174108744118324784309558743279801354932638541900918393989457249883910683421834996633727170941861418308106013246770601913432831266338832543869427794815961256119822567445751679276045369642113387159840211859281515956714669785201368049458342931616926076152096798049189945520192958094823054957538768832005165018815084984192999875385833132238264726142878509421170736415064183665274383781574692137099700492135305776981883869673457209688836948360359807049607918517942461039978656096565215379580755787235373341921467636723523811073694137088484074288733338718058678479854879627674043521056656431685254992025044121089705754961479075865073943145321924207713779190281698849652291219598408605403453226114372389218152859467574783618209612404989404906693050696203878239851873867448391197086690464235395986248627475572046025588577216751161360615073678749018044920211585685598318690202241727214485072538206638797628537604191237813272530701173998775187115586619332456056805066872275041097388569949164602873283454798519625462978698614082419373845407214545502723985439605439125842705248372511176011606188048202722840187754017382122508580683534714999675168094637994705963582133589712515324894589068864011132633897239449067867951705233855570017093235724465087657292026700762544468642315052831896588595411330346525018897646765042937547776833287564823311334090112314288517471298849657953199458350979375316450805279487741933120035502540785589426428087212755926469542883664900570255717195609228903779356702343200810129229399939983611231170855337513419664129596318941112897915691796352193594641608107233266185966552549521068076708775324103364263516452175376447607573176412930351297188209577220213528545953494949406778999899811014738250381076674665029743285915826552076087193242430598138558296644863768550628699487293353496564839719963533344681831244409425439109610882289356888163619269375893280512597446949937320125306542784815385768251325474366072542536926498723029541536752151963039949527485224844783809876387745021779691378072601503870656401142237968534231477891682414507696465375796106994944941438333783948225989832483697394762664566155741690473020823502323209959420791957124271300448969460160060766879967298531252053355508045156727638414288242516198201555097171505992607334058263070714417182948703600895596096119373549842890661928103965497495562508142738475737016557152355438200601064640044666781008421469330351979973918663023041759492138089870511918791615509208270174281227208907090569343397824601904657627255008021944979493085615362967497123775568864549653863673363223721082730043787920721768568196751111712284333033411936134624392872273818875924738233909008046248725508124999513536130914178457601812505576435303067294402406085265095297445107715501079919262789422590214664324738393488000117655779798713915241096414810440276077513074341477316034955434602264163285560478876133743806219057887071272005190814962336083473616396848505359938990843595792099866460853519717637434126430681143728986089641209330140098158970778160094593327695023189845504856056725182079237182952475944262962453180763612820649281114677141603478636480523495912366640637232188994641927744811001072384326617089792302300322169806317393895428787205795061237641005358450483564750781585542301535963963145156708959210523518641277546797137955129686443525206501650739922167882348428145608782947774769793160622540871212748249229412768355574956367028893889352478455906507061696231060654300561851177924327765248356511457517340032879440323963066934936297799379689566972625377288185327657793923385159136079944640439963900048484915861977362821004864444559252847029518721549741022644335028945741107581778196135750149052957331516895634325844107874835885538147745539013450216573620348846703371976670970530904821786298873494794405948751432360064140932671738864621480881827819989290473313903536618867305671156325306227478162758586144825135964325215393760793185562138080960634629489261417244960114236956393867218060604394840965049699732220411043835578026262798777264736675064898793751899985623434574732242713944889705213730400128091977704884521372323266327546747467733617245685863023558912398478346972497974006554954315698571783384550303702408278331841191296990504882265679963213512192512667840270324825001640490103412889659427637309600150504379819211094858650422485917488252427113964059483776682897985689769312608329412978171843843813824514726038893830172500696248872634320588592740472899260346537053166619895708886855832956408678680565137884524524314990419036495463234212897445614984840602003095838122882236529406600548454706494998283003926620673691987802832710398809511000050055413357779713630097570333880816007175604176774493658962670825492528418161358505021971963199074140325378184990756885241871654678484756047438285982691822376001110416573054137563911095085114662892205476685058729942963052957726599886054084132692020719176737201304660429081625827506614911069129470878089326020927914675240853789005574928497000421248955746829860375275231504626203473155352967581162625915580240415783360754970314061006830809893013488255461519513898262188407156993406215041166728706172230357438433277590980083440832529336161173967319494477735708148151699388162793937016051793451320818589395815146801784048209539018756245085874057764687215349158478425863676555456546026875487604895959294191911043419330688423386047322293257432540312444211084622900664436742437777785646218611572729545479400623383117648072672716493524183455227850638888244330161391408075147652255113727695621218265881303477717151041194393514652693476805114572568510343684069074625563544055434459392988862160111372873329565403942089611528556465257175692911950413126307408861363736607387530008769609198571576213856673503143799210810010041429356491559175376563858765368503546133183803866242756076186438371911064737330518681873168484496124106546333747478759922232912081373898487610709777508289859073070726283365591945164834298082987351406938535743204602411621000036226356853479342833796287910228341549539511145309208026543209118808804928828577858810856827925583726177844261850376078534737788672344503842828425265336954628845300847717553452414942021853579845547230657566509191263106730133440430621728342451408489520369038489587660357591129556852149436432179028016648148319015297096655217871394142626630956005512110323018241963216111339629128477594758275648096482057905727729453449183265854118980078036607560759440557653752459380129492531277530892914484283884210088371642660052324375317713871343601223771819838235095317986969793778496701302628873453547738833494121320645307499402703185796109906387887245894123966051925045488461326630488538872121349032800796600772196581207753513702605667387015096190329515940916501441772906708664033995032049967901194166202758226313925973261208482032327444783199783018507381609686460374678993805206973844183556296806892452383430328824272637958446456438077830396459516748029349879303066624857337074677449423372114364731234764307560617895262974740460411110688900256168854968362453400310538493014331238508050987559505553260912629131748704059703973342940171979490330787366123825085786932606384131348594188287883680821023104340626952758585946015178077433703765984698135082969661071780978081652257014782006711596480119429048141538388530643006005553680655899355887739568044316136186765923513233188204529839041929840031793110952041477797757327321742584483400500107789775027554246765498804445555418761215692322602129989277031186877200970406074139930402696025604864175683095733706343053015508133195253669894593142805410428988436815654100128900262887880694324530927120074913194939626346852764009108712848316686266860084282638216903482036988452401932264683520702223629450386161833175524588845921694272087870043784801943856670824176806940532218222151228849237292874071061693255355838274923512792267994146102887415245357400267228939971720696972348405928595582774430938052758136930853693819916276602997978389922072481551051106073472393768471019731792082218876425399553065086266918818961357866441963526220969522196883871843221606292598044727267996411108338753193241940343393743883146974803997299160476004807539283705393761577780924698012273187325867886180049842981596294493186990095113913601341203020564553327673668853873287730735182958854785986862065417741307989392297893900436087609689467239324811344405604121872799452964012687305905801862591940431542885131585875508490453417557641050978006088743689157587047883720058602624422607160140690746907720950424945820554943035008720085767659952791874647434226687727137652208125275973765655149968650820023933839195955833522598729350965408955739168430921118175289078967267171116150555589304216897396520317178190689107694441551733377906157123846053137994949327528046847477094101291424438906059442483220224591950398329650183668990219104419019945597424867311221266684780906357282980972711759774691591181215397937338193004353761233146796779841287040955016411545651323776338480985712716076705974565101316931898265117744288284386716092216874020649131979730363738802595548374061039081400385528311172089767304277421233743741669312771229105513803077341236149920948387223714492020514511542567285213181141136940397672876430673065656970219168711105967535576661693650098533310939192642290677265284448619803038439922176419368542663956954238818446918098537546889269829681590420654768079598980145468788149913144466060907490459499849495846732110356481717058665609081151806791084839193420373550460277523692892674690430447381055135479448698225223826055021893472323685721999427372871278101408042802333583988707238539286470679109054780642171890548541473240213994115876874406523000559541612555303042568834364175343763187197113466014543525868516938663308635540603181567174452948727513528698328483260496341792143798847817308682639822560631299144262059189474188486724512202365157712170936740541862099529994085068143965892877532399114999621793281231834763528519298304841985118776790631790948829823879396256762760874595498771437914224075810066176768377027674835842412737567766830848108641773263408016532970478091709600746276060617071721164596460007430391439856797811331871594352341033699215106863770679283269937896444688915390184038141428117503854091126473405425756818709339972344625176980904365867813435717199308409129365773234296627469952922670139095992701692446746991671893461306740271706210437921076787441799351167215828136735327776062045296210133370880937091147550609864065320141417180209500137057861072340628740638955443163284706314964004900110757727682409752517729325697868289230613704392293023360620285532458715134686603975831945997311633775293647104384530958386801010880946968744746474581263067437046966873849424484561440289754950340882570906903888330446697077843798788470492878299512971281767836577797127298576101354367894477306225646927101904980823041030179998587430046393008983021279256413177080336909423982902280600749025577109110420266645469485286222440077426108111723860571838571835976472750591882921411803153324932049550218797745619334202706374670960732988272099041764680665188802545467035838651868206403233534335659454468463265237754512254734193249894700543788576420876055067102972602794933247758206696195945425099563123577630371952370567794929455850335999522902259762031186170587418149011393558667495306871731572943283627909974195567935410915865045160583296580266809822832855412516599560434722222781673659345546438698816711321533911028377516605952475569132296679983025497421328195603486709758156411177596852404846378311254149866381738223359179393340536545023621170275393084781697749553259525646751717074623890899426803019392274610497216393921806481219843536141912872969906661089292945581820972798668364818609458659795908291138418384636561083095515825957024954748690032029422470926926387209360252613028163199396346924585015227422737961167471610697402353142922322831804431727823447715610123359329570734050658357810635010781277990755434025877555357111925676985337911658693539041957249067796692109101926402978165592616279852094206084374931661743184914136770904598527642328440037792389013922043043239337278807395353034754898625040348543957772441574867600513205269589150972907995083454166529520159230824272115404822016918553706985075928085932750812213814644674054892485280547479863117721039985374373195705795799478876506278650634818582540235327594555089486788646544547438598280612392250514070036023972302145813023682076747558976137605722407098855805328973299823214792853839227181055275683453482986865947694685838042439644277045445619406730791125867959022835018860026741116723344351678313580064378470718976836596197431526682245629696932747663006233642761596471789828584862271986227618190442966537008282845509255754118420779266088482431179826316017455846455336153436903273957701702394532032076188042115006191403835611624958196638681921449415032172120291015363673688991219438601681234430740750271936750205803153794570993984322352910586681830322546948034503272113373249590334308462945238374185584214305607822148031197282064486719099143697828079185350231863534333509014371629998129508078995322680825557374534932320227797346101866274613140168163371674758665570742319312147288159248851729012915591358222844389943175452506513680851277468203919133606697539020796630135763802847589048278703605081209186516459584325899640692454174616570472154949621032383530855883576828968236196340593710254170364618540567587081594838463329096310522608462398610385416859359603065331951922834809014289452510156328084460713207338694838371288514442734549661286157812369661273255354992475757874552433623739251765457955163954281802201303588248933324425759672629946298897417165591763191476922043574533526869714992422395142748318885742130487051679782680398209081636550020217274545455999931753665583143959752581250147484014986938657862958648107489969229057724078283538122863527471713429100625680411149974401070357514757649573038076906492915641426180811655969077419899272086327884384562739385104889086263941963107729682777957716637759995563771880270680756593165394837246382762153964648159270332535939004857091043860761528535124413130201761020610616591223232013895877090862948321848197193714461027890684539889381520332309356567002287072019172419169251440053128239084807115558200197887298157452557727241245537202349014800204371164546692615443899193050701313385591247227593698524683136558042658143587288067631263012702330416959680489827273486111933564030455860794848285411810079804697790177926284371333477363823766865586054851159830941328150040292950652577853674452463768380759810867220009247140361955159804095074924710074433722950406391023566631194991294823108250866420928928856329498439642654857240610151514108415942576663835975720598213029278438545730445080449797204424689163749728877641489935017364860018716391764945799077083041401799712249830422882879131704012097058225963519011046341924878895491109068601775618370279907726437087154939549944673877849374205399498067904828708990594571556944159562044763197422216267727150884720478516014786780703770601326462862424327061983615884954014310077365291556108519016042369631000378358887881807054185424246486382094568923055492302206758303322975920588426775261796422652597083012715648524281468159577768907442852706844529043422314419350685921370723057873998523785640989158662612262179225372432888972536585514931064818398461826116082987932343609090239514437971931958322777756477059261977731666345650652864364337564746596186778657902080154307977826841024107919147900222311821055873145292486014470141711725804000495566925757377730696676619519429419527847448421808194667084183125450652395657044795513112061515347606796633666863759432731538147316917136080259978418385194303751648666169358049934684324515609583954496420180503293499063284566124129368224493545269164453590787148476408349833737873874854538336074901387698923802467675885828431164867023764492693228407550645361267571400945447406336730129377930151801225481799020775905624540849996414275053939077875102989503680506189701811750698351389169145153532546639188338051411134449817464712691905052884073540139943494557296254101212838686429975327153936965832529232645353889588150923224175426827261061782970572367576536673666699209726393709987674095793938403833955004899434061430017241556147405949435193075762256631048480796641330826466919619535479280512258799530714127005214990822159754359856199162268276222870471580612225256480670664826962685761263885902865200394099417392636714753137464053112199256617396794050000995550773496359647159045323049964806466391724614133922984430193377857102246748966032221512017543454281603014621676416872818650832364780794673527556479233942854803380175204532127113036448027833082685194470513077151816083707242271733356075430097106769357695413442400933073886112488048403715696750259172584474356818669361903560069650386409599778038252141571362400341935495631188659244206648847573732722054561123059274344803630482924928145962904326002235439325215713200053552010823563745340580495963199119938103750346682154681255927736524163947489749649694242546756796729326126755339557819286388166467567961422479259726909569303170794292284971162035730308980669127542269897439391034301914023506026204160793616359779002449337272755250722967637315505832076837709418273631080880127567619575578324406539880606690002947738105463216178596479501863285489189647130025345482791499897158963828367882866887810545794361919607792056891218269517454101943818221457005369403136728878105789126735430922151444956350046600611382748140425686811238119561038337281310391546024786258527331050543616360264561215439984331838677322623599052120172843698478545914892121605453981124705755263763330115769418765565261221317992643723406363207411717838390363490855971849421836671926864491443480658309724982744946552682723688280009908153365039503744613524796302046528367562566949914717049075156348854545358957118594558408793208843093344312104769529809187174178671987467047185600937775282813555116928485895298556723367530050213731844495825739278363350166471566309549907461846401082134217333628934251923923790892286143430599235923787549635406289109392940375000510502827683558548808991408380298261013328082503003247335186329118225019921113384049901891619656072233268007208427129114649353503323812281394389038751646962390806993663557025755044919509586915913507244289244594078371177746174971296323494124122799144553559076061040530162367643162696114795914662492406993306351460800916255968569301918209191428076069483502883748943100770628951774456401279148034572599374004396711470149657869299062766455151989534954969350259209554730250128227526307253911604181057341223587446314218766064598223510205828390751676858656948474142936153704966491804668492448177871764516211995353610357662107609303525200498361547436697832742888791236813959279200092560704965990523557757091718086266458812561981746676243790496346673920345194620930369675525030454891207735941635296563178926280283439980920627420036564754220316676536163585351177026190330323772947153759550778539018528456222208734018097117765698438383393772613521283630385917477853648008355685842372640567003658680279873831417202377829626946460390398549963281987549129533446881864768783608272921148553933583502735856901502156137019489351550823599217341075044531223658580468603843208795583721139819926224727605127368412766450465154155529425571654180005347023005346275803915847026009374811691980937742485872034467947817232363539584654525815272184614721617440203151663592617509131520153033738450202938002268266624622491639592275043728748289320245802135104637583832499032693644710600621178978545466748954606975101281966956025265864882987038833423437407021378175106630472667137547498558121774352536519858470856464016981285593087187604455802065051547112935768475462210216036619692825495155802402111684021393304141451502432979594651090876795704382020608176991097160679289645966652502937951078834080727551471194841474055559090101962619335480662603602307366198074113135011292164327345342841485014383658732343922676889277074284751791786121484425321761538347640042135727832734532832894595305244326098912965747722898016644210743495819613091242173875656773125602254580139345057653184339315366365167178687522242200792188481615231929693211580678969241991090513406347422752963238565953114988859453993857054518347753969563515235474803939525316829321127079276128094729461806204771617417900678381692648066690190817815803378747467410768777315973168945352030070519426980223144365011056399953273310691090981941690643212391913463282111801704964428660557837098995094562585773007279453956150071709712886895633454048656427175571804694294839422757593215567217353177917130392604628005993679188112749110908511138473295480117793622500888351091771852991564423719528009715048000035852756522068442730967699161681230181092318389385273179931679837977898391697925050338573738908922195905945874779691530739261856435830990118199442883524279431869149946015272607902166146741142237632740107475887296595200102548643541067129215000456041657310760129872924182831294204836242033019376360224722552554711276271145339028157509600059837071881145711679735206218170976920160943585930411158948722958869455789199394016001122197205169419333226563040191644415860657408674423272097000791953506618184778428908856905461029276151808085368049662988745162325872974324886951482561885626462440619476693927959545172077840552478417040603067411260991248479019966942692371122704099183654173143734668554642837513938337016121278610934241846909767036364998935967721287755565450655283323005830158393429561227513615354839154962058700549135115365715451039745851950685008643586240321173445946458342247007380733268135920581448909032362989878276135809101098997748476079486651881657093600241576473718131048944989630730114883777079320262401842393701453086486626115609433208313118598261143975553615316552343293590689655037954128579086591918550909938314312562218378714201456985935896595445792577952240429073432337772395863036904875328531093391251221525898870915401834592149108328086872909303799460282040653505359031233746612448838187868574403614414775371572787054737303137618262344137172554986819006776998593665498984728292760950294089684441808155610835214535584296088606529688314615584144616818395647550996306054870651044691462995386923867085432489461789516141981725741328525171105978093091541357478950199053627548880761838217278334756129398072643063134769344100335846386060295648335158833111708980748519704602332418205879476954464795923285278316738356796303556218513547437634330810754169544542795424667466997933291765706225675596309478579116877047553976124758727569470382845153500715002668261619295388637721680727214757922132416909564846225051514528607356577882401174547948763274431255095117078579943285311645729083965495991491970600876436255077242315533542784821964801282406520865122216437139377959101423446777803088121006202358909587979283127313286879564218816369050945952764145288090545921775023118653256116280612307065663352076774271496595148288863552188563433238895932413030990649544811601588230463849840821775222633149331842050211815247812953331329989745812035686162133319357032880548528470441610595228872418440221837184211275308601922795777701811061028895269972417451443876149488515361132177448977073190354537471589570688462531869343400001264565839691262336877592726480607846903304326770173566913914187320498287247024673642838787144183500609104042371504956981736545451455934783720559649496430879287442650086898601104758204220121401187276318543558652173708916015210886987797694781400688241340626556367312344902750358026192416313811263047824391361902993772342756907091395658255895137045770581234639181704104321949963808261067538410787577047240563411580932930850554851754709693596191256812959968501161000569554182834583229957193093511082125636188258345522034679332625203192648219130322041512968420170978701126401959187844483993716488383730817290100142298876083343746579557948860445543805953410241601169654570997096511331444070309485912001825445407902297652171816059142864327519748745219941601666121298209905812023038209127934839215587739986478148532292668051267802837849042080402686591483293882510804410020081166145243608101724799695878676238507675984016092479646042656024288460083194397741395608173185341924326982343720313367862707114953950476198021233460114967932121326658770678013083257171588343052539873096902477816448273542575061261104253947506732995303486660777736933434796661777342823550512817543337848461059538757521238251708921862066289045625697056902907354815426302058899277855317199954450976227251080983214625404924028438949524334444810713527962272280516970573834906209739460814862677524775579276981318669380508143898971748392138553046684239554440162166323161579031540590081007850199413241272586390447111776593848768132868391990844528715778608797955366121532505276831534986987539997690801016135847877047460091913667188426990049146216185817737390912969131030943930373130033433013359721145819216691066942202144629911479802154463302014177999648079948685015951311016143923887530084746795202832769786197345325536114840245467321983866253304587758356091598558222463844402477017266408553668581218849068463576874362420493121220440809651225625826804145759745368961928750356082482786487217732371382302086969360313886799110327471423279669296845135417511407143336677472288769356859161246180794540127970577904452225896075513134000678535025863316455746532724575468835396797582332803944898552382673283231624945571986507701802564719348335872447939635672230821926356258593056544319696253436132504739193281917307073816987674261016397119224313668084772198380552899303878977222458164597206924165457394088613329149285130203352565372707372144024232295442315490542921060628913005679746464766116602741974676947024747789503539983152948606114779257446618752545698695343873569942833738080028366976942402550841603095441851017191744611709599582209907281907618898874969878722223001504036554796432759000623424630390871945280009383034007489053087660042522455993555758893080754256033912157612166935724577631431122728969681567334569705885141278798837679770421191986312241383673683481986334829480888525775090204151989569805432239876331190766613583751165106113617573175323398571255060367828469055001898123538192027171996585675436049129586092030519083620102620563373262747462590830615989144784813907181667932708381688826221537267755970268634753557503461124290967275686647463901269510417755804622115061489522760167795644490361439682905330780301651739550138565597014645623356196648677692013316023725432621544631154980998629478309423770546575904349441118226719073244242114100509161659704619403944486513183987441759384504292480176890709295033713441297596418640029561303840375933457058841530159177927544721291052277844030686938396083523345860800947286718218862399756156307286110745310431484443240855769087421746336695040871078197469813687851746654430083754457627480754980492886473687743564039199640020862489460844117539953114312799345481489953190841739895889461811731921556205383623102577253226080439161676002380861071760241630841486807061596949437292700401536107379511122309312178799464630774163951749877857066457253160635105186231405268877637441261528670255882634858592462482448072095185572375962328984858094442443586296215892490622931278295012211916821949178767402184061135130506032001226946673669384745720510434145438514801061463402387915680810233258796140970204297754502607384356340828210654122317819057978942866159685609814576002237622115754673449039128052383031779851848383558560397405728036381221442274758707427367351152141788536149636127454942938314953114961081208401977424831011546359533274360986785423015333625921786273827433817544496719718145607743932481441409066687446143621094555035789885476010616371403054271797564153916219500793140667333520648403496048037388920769785016522194309658370684755292720029624979478612296972295286576411951068459632498762074503674462169590164844150406987967123577680221798982950507563004635898228864122508144243285448136015745247517877436986824714831242698885166157657279567409681741239580132513421905898537930998069810907076203676673857206590409826870882979893951359992027987341061681880247237773098895557394362656802266089474894128685893731254012564607770466004656264506268600747499351539614716429745228694058379978200411938103398958208536761127751453764012813489887080843613844525821130696380630429165997252803843859769486320909478804734708524345072901742028738260050221750948501651136705836599167285799418509071646571493446265386506557763194404727745412811851864182764545663438857931208219431964609163397271208313069415189463790613065824964903712220077676091813690955662495371740610653141712377202437019080953113164463394430818114601803812558703344123057459080558479544386779915353652822841938178684521076846281756343505606160316128720351924857146365946350832816020837332868019107214361562905141689214990446034064479229126438478637315719357951827355941831771031306015643349257902551575622617229230242946066099332298720081152721326568510574435547392214765600781289804723970664277562347150805159849499550518090845357375342493593849730958379197095483684764803609459364241898511228114166802452268815376715011280232929131831764389919921742015610068824955604850219511684292916201170834499618296563556249989098515755456302163474650597730428451304814291960595769624656039715613313356663584215618015504639506308582648598749737143281895591532786154440588519782536675216289437091038341798672539120698464020699891348426408778546863532702783658281704726930271223178707754356748623331465686063565486723884545124038271558221401703435338224400831750087297895207519948848120163432500956823283603467133518798172347948401743490753427885604164520704719484102424433466769619684256900124349089815460275892159254136756945301574366519940274046064248570143621924159931619034854705144769915067910548180584919854934822335909886972829753842308909939820731783384810339423599725108395606714064691489498119512501505538604536632200320962987179437290556191990769918029727058360163050305688237216574226566915748445745552918061321411795813961278941344378627501850042235453343613999802757236787703097763434303675489862965160253717293867802809713055958113767719664671297774682906447779961344966531322988905995637456475059644099150201968661548946698874384138820019709985467062842098945525314567635692977337578180222788361417619276931144887101863513645910688277182226768842652287451841647380683461571012232110580391896019404223994630810277399905026036506540168450273915157137305391582397788268766990088288055737515587145491385267650196753526818190504713297440992318376570001768687168268304236033920655435803600588845083842205487425866400460730786303502559980230015477207749167869578510774623768568395130431211543310987259205905329786916287699523696090241251423008613097867174494684729675603645006446048265567543571909040299117107197883766714660257052834826878985269226445926333413394951202779785455861545118829071640728205121785210619788199408197192670193657639345198037687831969844159870938167228624125164165220231217728331158556562941027359110160947515888958329119026556728359616141603637758289069018913783705985863214520759426558028731228540016140936378453121075406955223666641773972069069764662647702718782849536359132695970815685289254311633254802206796416677339202721906640584876179038377329071494592841126183103866130373785213773002746438241295272057367874979304870164570396852016972448027819659391152590089678764899579372563529164193748745416046957251603658598952645597533483222607715180043090339762029504881795790641671822639863018013547603413750495695306315029781372106197385802147189885033582019667908315528980542433474635071829061922882763590630381920076387053470506563308517324610992276525306523500262800944054533973425668211737180720215019627743688323404348198159338175259790044345821528945545622315792666342289156067782202162167720975383113772834366854230877336786310426971802532347727556653951739573329049109513309434742141541178026388465625381725739986680514086658847844348385101733529592821696964883518974687086236394810518342478275029861492232131352124509115438067200673276887735029973153893480843311858135685120032189631979673495776607097838586539370554212231517217557478669518846849655188349708991188652283390599032221659921569366827337732361852650630433534720271441927787244545470160276010187992579701994661410191883110159640911039779985071732368093086855313248135660478452909439554406041763481616779803648747519766494815168712528907822340318837291475104601873828291524065704488628931783028628933191797943613213464196801876079494803448843270033145358554496551959412038093001465099477002022836535793809212321392980146587689707867691844319822805350554953968314548602816461824374577964683075840829596906728594740751161880073869567410584889333441644377622950883334618902175864056114588543701693866361424090689854529983288426873824129228742936338572049607129707874748492202908913060431562876233203657026481764274556113958218160845098461249936302404853531614666163929583907492454859287310763146074888069299870461714154010206706729936654436309000943400859802040868930542043101094775504984949273602906500813610661566983316853713256718423881953411378649314635673247977033221284057847515836071822060666912587586347565934120566523699254477709905187307782879237044909761122661702883288588591221400194382619548979052705447593795938919586681710085490733817660698539582915719643119166183087325481316063160408680568889370681678695405142568059018745124499440964500173645430079232781593459448104086600546797032487835026986950955698109764755818817110110465186286406340393174364547615893600683390403830170527365865880138428180752617670051690846880201697415547205594366612401551619320263727399564278300176231054094377676135578953592056864265550920339432460448878532560825038381669739590068369466351219786301309028088711527803811959659102923548683545609783367125141776307763153036771930603870042298383748984846178224177679007433075527308100364492411869368662501444763975311977702890040306396862058416886719602846100707213566034917303807727145660784074325486693992034308217933642541581428135987537416622566388997736884728651308913643037774750680775157690737469956328499578067471279496908558371757626637292218774491919119210295237746657154737669275214172201834291127397567435307329088392077070552553152311718340378103854090860372016214901089543576354383017848597130146323558127819629592689337020922517664493129391437257484609516539234175207028966721668298330646939581995516277361079086068923122718907022214093500510860431226426665868578671493144125891850246763335688114381401589189804593575698784636227098095874188581801946797052242604544938619460024726207223656974266562348261790420790393057448883109444532359634769788680828123538964027614502372509977947652906130397885438368739937647626137645919394679804245764426713997197881960852448457990040625179282269583405559059570350356969124836720674028361685038485266706704261872140422660876310872688091588678319706872993018035054521134028434800625070311859019844918576340536953961706315763928471433085057061823162618441079702212612738037032840655130198948672493090945031360980027849356086164045332140097974414659935097191691374028299303212658657318300020780056752156676767513987276113239176498371228419624730137173983003033226590340416115402534979435857415449510146820622833468645257744082770986052794840425399255279991956538267864081034005505989507919332427012393777250630034679047078673788363843413121417984301924453826742471147334029202799117122175975634192712565523578315217771366710735073906298998261286591934018558369343748400759584431595817810861010552681422088517024899590814859214443323181007443118668881319288500246995615143268885203448793035618314988434829417369161506857660189750920794917178373335664277312956683103963286618937053630623491319073487887213235451370565774116493635609214107679105089934680075810035433891730497386651446306349061280949112393900766789502532555347275071857860399788794882921239068096191679480095019535150546607148092850167539708970556163325765640402728373529755919483843549627134563603004083964050295210765785807494680001514228353649984237894674496236166534624889801425952204719387018287450366321363055277375812089357649038525339528185295114862848316781333020008968028397888245771218277197360851977358285216120499124504660562862546923653793400309510795261067836069280905099541545437688662159058226505949329262580501600379474503713021826037669519791805915042834551184610609500202772214765570290642436923304999375916484019745607083873951202163356505800279444967504910005954430598442904779659762957195315297542305783217917802880883424558355914026814500600449423918345206005737344264907904951627886212380075327154638850602074082685709130684494633347970784398274284791714575202733422497738656550023634178737842524265125719234116676496746229065984242778998121507751715278943908604635930631045929530046182825735077923235243955430284996026944747417026488675224147758859147573748563817855858508604763176937439392670449604588726278454290228121441387068279779381501828577027026011905740724363682295672289199375234284415343552855080133706402415548448192566628584813967977907375356432882602774828866152216997817274142980864584824377815759213999807482547025777815060047769047839010377105609114324949060349601620771560531471612246884683718660280539987634131374924039162917939330883912028195837937925300202755276314109590530843243044571781664094023826082421956190757047176662299963458439895324195114983318512671200191385119275944932999475393435722454118667052634241381037333884208966266027242206063539401916583735584616657907660723773517840832747278645713444047177708563670537533126766753113364269699622591585321049397725782863284160050032792602086242975303879122250820645526277210301690723570366851061114842708931018941345419075000537442067119655349914817254721115396571225630392963110874669654990867691662227330843110540484335721620284295788962725716027523032746269017081939784660400753531573603850868609460203414666004108579893262956739020819931218701040670899039070605783156853482675829596504826453993522103738197772895801799661077296488211400569365886810040187295623154163604365687322636965294780845710200645211897777617267979539163481282656433540496732052609549993247321734433587715615114294995665222118896664002688654955524716807079549344871755541352844422940979291785830314100360729449379745601995542824999332914675576110502092573847908145930756564903866204824175756798769197344656412233931699181823160803329293184707230790024000717870974808960549288614952116602348207492687705230127747987852794094351406051278873290163329959887839374579361675781111162605172649625201969747201053545591589326148046405628978164421671018592062064519726228892151100833038151604514512201946264578950995862996273049126656503163063056623235564900942501692278172536774455318663631184428342447099209691827797040608505120306819360240264088066701092279230590473828357794369794368998788839123301372641742402258257262795968664354724774570774628335671827209213048937486954018535029961265494396045631315612114040083732255232647516020709766760316688521573594892543805315216680298149481795010084870700254887595473780159813256391971220357906366598873901571761925295514195924712782806288834269766685081938180390333532921728389374183554763498935052732057085760883675187002616243122094849374741652435181051733156921688907574873836334643929267935696185893310555350236941734197283177491729187337138328754772644311943714392205677900496445177971506691417263533053132333749813850873576472450728050397899181485497455923475669017582940918984410840233970422513488869642773837796790926264975961676709640772102451643940615673356970553510695385397264169464998487506201608284626681413523090147906269485044352373907373999042311794046713981818381266798503280966732077807174782839894770362696323304576550451939024118852138103716451856674487435724665115473832952008486287027374857750289313679799402336613298483613382994741337399833881930200752464106770733149481572691211937213358948674944551665386893301275950204034382977590178772705819756243777440525136875251913272274946676327271858382363930303852031419375253705752252687204469064069735020328990481018629402973715678438276883251479419225458734680825672065876472850014460538764848478044500946157005067443334932298446589334731912212650640023167074240275872719914776259815937359871720346927547667807535431374185886875320676175786972088656518286294244747514435765413983719067829135945651117470298753483251470301211821823143320029438580162030773339052594080798156077286622341163617332303087556371532123337471487465442691187301524232384979223059922954351415989456481331378071134047252524180330420033747130984599000801906536211532570563014124960544565801982388463445009339140164422355283460076172418202115415171490516010999628907456679280237414252907195006384332778185404325639551282757192794089890752927444009003442514922218504540067014165522228433151060383839086723272105400814907220617450480270468307065384880363673538632739124992238225205533835793012557608865265390761537027163353781964897219628893760547384240586254896270891692715906190303731439513199907899704393672854048287755652624427366930170076759808900856465031491840503827393744270666691193369819061441155846500297044809060794903422387387377105771326805766716697879770093875394359224422657313256984969216492133948619646169419917696760278007862193959611363974674191543401664040541610286849960853106644975725096504454600413970089840051016247194785889371451548935804283640031336112349518644274537132329579080658735156415610872450018845401023873125211757737587215098677794856019819643747891175078193963395169304067218632522003605641381550244381346283180641436161326104490469365323841188998383886523000601151344191823708411917502020340149776049911608413536208737347718472336033399927506937880488594065764641119495646271066535229371033337909144569101007814137879276278241816395375630246976380327445396390146655544638525538989778042996277819897030721856834299047865750741457839179303035239925903445204705689498073163633236409605049586561789267191373727338730879857668780916862451045398046688432816146937872009710047609791580485598847397089961019079863468574827209553069801060796132122389686291831676090686613459377343346945033635860440430249344930887914416560825462485757297669344647163633817960264055113595124543716113036187897489599168009601673570540658528916034181962358312799207989771350947162549551564104485522835671106915214927604217567484947842272955010944989932267539218957779230718154699531771071106661750024775937195957112048856522899916304699364874327846301412317020331654702400432699680202488815462471968002435915195197015960415873149545321042190734550723880506004732185716231775118288827734419867839969771357458218815530759823269737597924968497205214247590739385512221396791597110101611594833481733580944126703094102283462020000270026590719374493658413158517671004322665156420932054330960889740228232021447332877270814459367330974650599681085410767556167104577612222094771227134167229560322206666467723511999740672375564844057754561673038505359126285316502195716084553619047438612394384331700776416305218588692261621452388632899550852798014742998526701707335558583256774936573954682117365214345046004530894528242383557117724859900441387412633029160425001354641605808873986197120972956159326343359078098271155865631774059064000539191297401959689072752449380901505459790712592515452840417528222135017013605922517993598786136268226104303255676538397074332284630181806382846407559207652530532973707665851569004639000429126175090484123929875115450386892819860607869116091739566299619922306833262240543435760365501885552426199768547248259361351060743330863039171885789666748878993662351231323854778205983172241150028831187195282642065410898690140526653037775856455984042092631941755257254562434661105168636814141582691851996674663017174912134312742388192417072942417160701883931987231035007619514069669356492157170537097701129072084889112983988017764504339152491739261056675836819733272216712865674220404225807174282995617932414014835313264688921590773448891854920470179252223918703252268535633089529658504304093331902986650568209548666791866148920427294915847021528346709925920971995973731311083070444650478595706080813256231162374129877954523926426806090947310586187308380541728358955789491010957062233389657272240475946318411913912545348718279546191301870509906017120885461826327357975545672670748303752343513108251891277787601682788764011173429217274372858028872977695375730396806827815462664317150983780206120307327227107920989146124930250819838878403492893500284208391219671501605372009795030863687494758430883862076076410147715116330166742113525910386440257424787064256423318937542869822871058791211938596702743357015466830462170730001243077339760161901130654478812296295858400618955539474322520719888352592594937936570140919477397374181979825331353074402278190821171441752065944688764966252456479038474633200452431606414922530560923148685239040486745247817024567950873959621706275254508496736967942327126283380383424482521056240171614517827075437136959360525747699496569071190469048485105036707042180546491368293174690144770192029606422538717132135039228340706766920639624305085306978053315322470876847765515332349403236602080065987912885275646790490618784567572584401519830140099731575699145955364780721693815289684790298687865156026282672507097786213176683650085204665630476598466538981655513763607765257092285166218982743753247887360898872941360718831128083562633626590378600019555383190541809600050233981443487309409279719485643297500878087180565896186761856354920896443054604353229035155702171918989248785236716885808112764231804486788612891458065144880440481319029009868400859994686922277208446360112450204900176386722061223900114737045202389779783030936717161652352325995444640441779927494044871961087519793361578725582903093500359474573366918214752938546013029680924457256826034993948326973139567650652724168523349443582056648392493489387209604489019541666793266881743636749202859126032499278285675682238312371807876641794369524850835566988621731289856975696570160954131011002462121997407291171276705872784527270577428604207226027076911619351953645831922653646676336777215619169121223658904404924356299645805484606741222428206721119639011469606068464567165034465041666793137168668351869576175485473676755736176935307802107586636627932401578656108419234796924782922859306874042610830840890605031455051193839434160856485983507433826607410377720085674521895856479179721827271953244827821717627155132612740946702685952146800862917567504419886076822840435901675853373244824453550197183778409797293535646021916618174584656434289587218160544177626692600439367977626240615587996383401671551364121902806252694926015765342421738165772636804307927679217502643282361314794882910639019684566233847665124071194944240638097510422248301445764372219019982048719646261040232534093921190927952291379043649120002346234067146094368371187373302271237717315197767713716639377024580603090062373057690599622791519218896429142393551588785139269640498469349962730991028628838491962683447316711643492839597047063612177659994361647768923741874805496176796302026865042670173877435066698823889094280248250093319834758176923525591765882567193097810943602677012265361449874625632891298078381588615156418231696978278704007446607896689602184860111359445052249023965242452794008381562710972301458542548916908469448659337857139949417353221540262542133208970387539876532465942613527778080749722147394287497175912712789047238315976973846200882016288732653869032602512100948603594287363885101182687225441796080761821608211796350171210368403134647270740043031048733797681305088232519329019455220165778099987865607787795341941899986914803084704796386091056615416401674419646271535979823781622561738560472908389822023995057721515851827856611629124265255491038075841563793261963206296282354802340804377614842796963099405143846834252929799289986733731695859075873252397547829308809261546066324900660880616198154209304645969122499183050312090024605268049381020384800445640193282397364834928633080904587330455602741577997083959312863576696838073412651352504244383712120961944269826954793630118874142903625652595490396934684024901132198941693755796204931260968497181312025974448768982710616610627754905864331159863353666539081184519156156359504899423351068477173849297126427067841749728801021709011509308744883679594744759710108515773665378454368475956576482222183652982362274400010195662633308765568723876275233866885716428784612622779899536730657531627203592184746756034643497615927866583541275056739558686830163974144578205378391005961798965535430615100430884700133531540123753513592226746580339760111126964076497517745878520897573260883747096892957016002917423769395372842524769143643009486029315557306783973677556920506010066887339243455913690332723671737663233107626772858577009362170647222177725759649162612590930788371185485886626841258946257576006162512218709349737996013226121983196732816242945209773970484823103660604117320164571689703068236161726473150413081957162493503399608050483469340553710538828768342275743091595268128513642955455489388893942676776081636914204569393111962051039355150605290761337080411486406052678133227008473905114877630033929420390365639303075457997013912327720637588435040102431782671944836555263342249801400524884029468833435891726154613755249026164759062245364107415038017813474316906601248376116459050245977968594629851958296501060722952705594829439907776048762421013062613013782459457146777432096614366596975919909100808966562274599318812773500293883593485772180345404063515472260594575414759462288439678196932428493343078639664856316427553015252955108225578915449127534975297271812109446053258702287404183134871838780255381044716607871178648493254503402422137136163981908803997046402633306332879681551145609014079388848600810696663721836770957478459937768934812537996326875590117521846577300854992839743790154829197022352554809624138073845038904102832747372579807915178457845372756764109110684854726705483970622807611976769983804844557535055804627504223585025573852191344042015733701168142680523811063799485647121737055801036491233800997072794955495437074076450437534492837566616021414507722474810253623927091126593700785753271143351320486468486295392708160673360375611439025011903946756772648347123150945219246305234531723598833290616212611383993746838784645543336945577442076225299430890661070550401581167241280772366654695227238207494708075685661481933366985436604036109682739672749964099263710471292023563550482599292190229972661628146897981532380089361572687975498300580541344171044189160105393326476180513762621578903322868544346580909600085881997631572083609401412617632520349907511551607101287510831607497069554336718078402542728132576461490006893812811296166360721198748688743283501412260969903449691809829373613285532149660411185865872873368900202014535398923277029853602181236563060414522577213629380633640364926191158288859102760088410891008959325596929082225937675899453013896356655757967462124316730036395935454410531744787663664795083881337508635677574125432225247145115503585163222602352401671816425578676833943136554211978669993591615770921861191854132009810379643448701949244932090326827046695750101552875328131029230937660973843252226408632334928293790980552751839391669731721643469478515682008560691635174375348073322881313085803974733742329648338085718264494136188444945659351196318824176118005260764826611426695864908631696153160791708538240670159690484931511563577233561456702055332594407650898907399898119510268178291338130490319576288966597320461104430442785143228987960052821478127096692668724194221114850318003747264440910191698565013382041179950375881228975908761153924666944742688440552872004818717463476440358471548663886910278189827351156589965984708683555989838778705061029995866543190155259218779437203059439267316699488040158290999810207023259681541539253570020157682718976183778325944367186591741605304287002635707124471843538316503331518997422504753302537460264704543486754907902444518462561560597550785675676305214450412377629102602499786358940772572662359055697349076906025387820379032752520938882585517808281709999942778223266668035474623383074412517885291773407338681244363922831168139713187264899700709989566207287045567809924409065103098248363111742587312775054824057691814069661299447591466290371546199204427171066497269847368157102103184271597925225115830468876596945194227251927292464492620218697811273612941626328112005807149371089803365631622218385999563795290566735752886925679322410084547079571116466369700538469010709241265583727129555458944394310714039802462329673602048984247082039956165093788853808200729104833597277332449724894749155781339847106017572654493906395364366657061036204115111252198875073707737206682896359509805597257215895252168493958152506500072534424797951929366886026124176321610597078479334442617965659932103379355666487385519496334648210925111160000893745271544518946849776066150661214437603959294694874096803542220822803705193777487540597073756532388359706149213636925516083791436665840721287390363463291785894453581108124735349588816509084233922942111708074040291489125043492876012769940672543131329793322769907442836979888857899545614589328277014580877485412685007613182353606480016555213057705939494865771413329599884327529919921814662648168736085991596306040211692842576850219354131803913948525815602700946001908628822591111747518892287439065603909855197197796098676539717821831961558452644140913395493684184114961277498432951849471395406333100260846648419097463345612229977871624435070432736958857913438003152804801680227711563170144390870880088356732920810194758422013102237867928942711257019067055019644457926804445441113142980797750681466831895603007280211227716652215901274680138512311976029836892377842733912685442195042798734016833697013668828795080416361508771385564040848221741225203914591251238284995407149865029060960991576947691315993336774481259386708063226049149455471699409534547466530149486144371077003438688815469404441036579102902851138241698075739689271458498609624941470342170313371687063209559967034003150312165373779801416148598639640224285764416641431810700185094118623370570159799666927528092321418728635192034223164746111599831255595050639375462450662017819754401432027383686509038749696669029249377177609219576675340619223266085808642499678521903379227987773529912145788849362408351078800337322229643075381708122992059820771272272428188073296085879425541422207359054651715848816850577956834491978386969400499496157732822267509258623823983624318860018456414661172215640366342764945785314919554865468390005453483630731553733729339349832529980062930040497946599111841042834034779759797173085070401878066729148447998861909398455974409502753740146682909674152318045604068769900895544445899904227877362469854643439267647916214149541323794523481241777656014917357013833215930964520159895713358276692310028413182170293695106887921417173692657972337032339335480301580350289972030715894753766407170883375201082587519897187197420722593464693381250499314625459321773279803891835134868172054032882832720130095416135608548366035171374315928200167244769786141090259074424680268907476306700872440380613975935125338028453118769102266948533296511567943581571632051519262837182612950796412272897664450869150997979827254330475601448426831170313247072042995461898841941215789916941245059671241386700897818354613019382000231267618616690408232245316350367486486870180867708158405034756112990279774457332573242349513374050697415925704388635588175323999037344739215090773293707349075665906131569806561189802120181198845239156705169615289924920566389518454248846273955871114835605064112703747127629338529369359763514699194161504774893123192717653952848135205070693145711251442868519814700020917046212896351336873176810478886691944248935953588976345412273955071664016829084565148996369202169922716313615670939248238320512449065437564613276984488009527486091998534657968331936515626258053340990704548112460000473723647492983979280048260882246711225522799054757033252540963014756134770730401267795875266649371638468209886332997224398854635414453673399854385236399808517924019052494382409120540853097345617472004079071943488507608693578939511831480551541688076826230160895852318639219935605091412269478099967395403558560929694819093034647543974636506914227894170960180471019179095640869113735673467947536085951363665623552193515768335164938447922923741438811082458883871000422170816787338004399724450019922740044322088245926513704555106696507580914850931821441409539165346127005607470685718046988045548763697890226864986515592824759427816737766863130301681122679746479881825350778575233816400484018217415028480839468558469069004104246852513269061015459208861515322392294433307569704752975664806522380743311777140507908951891189113534302349894839883055735837076569253816003121733983374941113740356182643522065985141129000680324202497937248104323242745047751491790390002039618732063813999454198286806661403206736408283765021041768962542665397720812258540683116231185996375030084046664762483283621763083402329505723884684329232083606003926424753779642057254182458709569593194472201554732863061450463766748176582344625941632461511107260741215155223094526546495838852549833002453780234578947740976942815471423222774291233724964416170270014496810268767518610674396155515621011093752733106223549236721248155393467119621093387322579811143007370029718605992007968747113550511869837710969402370065627407367887725921974079138195738110083598549008501160944925909469057796592867852049631956625147188173162761403990282203770570077246895440191065367721797443054442390428842028824250318691226131810022407993764201594634025396311630165305246647239117432142032709136437985493953065413041162342146941715642501277381407749624092471464343940354141602618360281078574866451516986926607200748556761406888596651095645693401066220167700880347318300860095948231581584155642722067200228297931050338495035008907996119781762888363379089686018986547999817964470588097859034841541150076024721562038970900790621264299174816872113490414607180371837159861683683212575514279177237357467300028057933231010262761995816475906054582368250077417341766768706306912429428341501334812349462197379812198079350689321034027275518689985566457152286040864959862384010451670764104894717141552333187506424486530589477278998864031853219223056391303609807328471484332976667210895239934570227800885476454727357695656386696614276026544672162623388766991004269364191554497850398165913385434897023169722956525282424126513218173861374315491207853552589733939846127120433089918415740609522624821327406463292622129156380605415462811176413645881019383266717157870942505222472575880159000739537786155908003966506178689500930305318112117488279955701273716256735254959486474778911171367715489494646690155022497358427557349282095905688133049473761010859071409924551909328095994587007445259071994820208131345892628984600615916578098193441317191598878194155887072391874830251321539872417305769455471563729205398130449558399981216608316540929843739557730401686019492294355740319664264488727636121661572648427801861036273801127950209678254165597452518386684807385560312697650072778994493237711353292862875837291904863947966541919449802142636966318580282072521619903182244435900278030196251851228571299010166443753928820017782561268375684083833410388124753926040311478685963158793597875372995711638865154100409500732054006386394123054521146004142799946904897275729131645227177663978556435797430614667485844126479473345840109480044263393525177735704632149119262157836413141574688502072933409718340003649396775489917908793097921270427406883701704324899083165056566899439769810361425423224899313332353622593477553036602878476304593037520160306327557282017152066765213999941328105114555653049695259277640881133097926399902199330161469551359970613182368007855711372885829426452398267161862828650130552687319411969875689241684184848283385956499291523038491485838134348256618801296327998390561228273678361743671231702696329020955180723258410519858379545604595286031460705480914389651973761891481358224294953940009227068296640293734663452100550351628690253533635805159737095812454959420906894713622465088675838854039953590972286309641119676527565807985647918686670772090268896042494900961951332570826356189101598641765082775529357481137822215289484207389405209607631035702415309169394088901071598813803309810636145231868089674711899826556215470319882627347203473920960620289045949394194478309316585652313083123006627562508803285775222268308758547466292709502272332451985867941432941238467719769330487236881385377118707791843630082529484253371185840093780080361157065154309753858179350640318844892918962076245589001421798783998558668291623712548563706887427439444524577936575168497440475737954746889852090782851338119904428613546831248553360777064829827328642307279013098973220574617390218875612429184919216816815008463210772564060760323231424602108983603683551943740089912571108595069999301695681016378306285091323154556005240272676975187751077823402031062090523034690461346996457686558755141610645720964355750481535968269766628129287460168525300913748846815949951169833974491593205342328401521399944423781220547496369517699244990316526207279438546700634642796861815083234905527042334082618163684445336149925345006202217596158332383045934751161594936087327782779263820799831169537186568603974944819640009019095632687826805984914572339500979527221785597307168869315450575962386148159955053440969682992742064040045036796012497898282172287993178294742934666880537128385718064840815930025533984104102234017393675899715811385955658437044420977866590790348823940330702769692852861659989811653351739618413968274182737652385141379659936903007295478034140575996145329628095815296193283987214045557727726983778791659426897281188166541012764974577246443025183718676413142358253046828259793103344829182193851127677354995700884945332953437897995736036361782492955044286930143559141547524587616638017446232122880362756118651038751734111764083237094959701535630584089703002646853664869187452744409331757536043630898164226784147063174904702731458776561433216751761894184460586708005425670401928447362006412129769033780670524988324407035324454313240299657546724862417096916019209964441026446942710713897745550253239948125410446717688333818984025111665651682522891737666026422795572719343227124208124145582507642642526554297659670070635290246039301778734254839676758175124384501558571954365877174598544100528140059892241990392562397629063797718212218381140116411633112485955664635884138171394234150914174536942226299958625495828143391441595575911172514818628921379045484694279968148660120073789334828748206038741148290551108133827915867365732589078878950535190104823090532028943178088932153677653103666251421836518050012982018018492249438869860235667994942229367319853064269710865519882815907356862974820658188941290445826683285407755415001515760377492560868326605817039953509095949841127886064700349289787480362044087774854076734090382801052544869575935937727283566057675993179603247126966341297206872430913482869279678267975186918717425229478150321795373646761061176883790033890805243620733990910063404346292999688864503614798957138580473242208044308454104330286475756860987216703345338691942313151459297616621398231169790764511812152409401220132218168545957719883145250087303217663429478847986655268781023102605977940091154292107663069444523834012807121959125230345820331899096527290746497737502718277628829804187277732638586097866804867753756331616110861659651520644424858378101542643216429158349692406799307545198798579805360960216709937518370722186254192327921349950478187932759079848338296523429199020244704655621624624586021491085314244926911601629833306603839369789432365648199750204496887341873150474938949090032637965746191115707915986256209346743789448244129741729157644348568096880729115789704025887895125460275702661572621140040133390492923411609545356880685937991243195660861044447279391052197640019367000533492713085128595717069092154826785602694464477640948055290934940744196756902673198069929109598621739861305671963412746245531383932600413309493370797247143032882496239024728035899799058125668259400630877785466352426650914887656399475055218284433252718328225723008238473999035593651095058399345076745477650142672140518846238919685668560872867320399844308260915421872256750051519436726836287080785142363512456349817072798407608774111791489907553509332761844665039252535347258946927504666257300613689138177786225174673395158571146000014062652010035409478363383058674002958876231632519281010143309929132734258575617147546132595914687151810593158501074573436974681562266173844172114449464772684274871447671643064868756442428133529064235656822204732986546118014939875497954114656352773411809637143423225051192504921333190064031226805755903326132678196805893719826254160644780208229814133938067608384155517771267755141217551122707461482459512513723859288148442795890884703931922084272036361777347304737999967684572565865800203005082865209066371378057608996135010180030667673426418841321083850790458497505202048956329474513324101929862356309391610647829302886494352162555562728458078344532178869561257211594128584523007860944617648270762123326001697147157335131520211175718012106251082795019539362334132340403167019150674367940754124354349406288820066111916644435874482575666670802337324763667830422710725183204442203270973490944366191763422285628420038252417071768779770896568757980141838381637210370530738251724343329922005363317621210073367616478303063529489398478234203373838715663137699750784856644326918793320266587108603289543767928291359922398536978167422554413394661897516219767417722829923506130187821275692300535324493502027584664282522049454067953134951733593875718051666672021305642468249625448792462944584977003738610028684034065649651398117476536308437140854247568902255607762473997152947106362051640673989309899033362824094682059086495426771038616173223962317641658411548200372094372115550364328696096524170212490473030495915377226681682887573236070812359736919543686069703955214148961251095065597499616623714108042733900810532028969103534785577298280123116500353395403414645966865200057493763630120156442016337146162177503990101988042628388404227245249090593168941110200451692604198987246061927718735782478222703807896205521753710808046323961264048571189678278175174461843961215024592316094300697821966136699170424030068492278035787661028229906578312267406212163113855885488456666728488283257484288367274389307750927135634739487613942720809938079342195058221417416894139568374668372036199537722280758687628641426632584339833207603550692827995650347745859352826837363118639448216342783185752248450456008069891922957836861586540045167295535293512754340437741276807874617969485564806753828547983778188528191039849096713105451702279294354582450839826849658360493826572543417832095384558772092660294329391398062391970024347387730047798193039577284784594542755085531946098805747477860472380124160428604286225688571824098513926246995403417097750460726889656222523381793488345826004093417107249992278511511509770541046173355702488847378911242814326191259933458173496980564015777138385045257073590924026437244236962007836347968668615654339181166007077865320634598536610634276869371861932861777485517420870092161041763480457523810674716125368283416128780883108927979106950035367985318825564090661146729918794250077268630977286528520107476709125978307612466318938811927167852947044049686132682678034156115128689557631512737761000190880707411152531702665730271576684805123547962976461515518545419535124424066477149895640886084614706107832101376309443077237501970650473688549804792353093897627287186757552437209640989163543880445427286634201457389214171622851681523363342337559346235011357989270173271531965916950504226962418801089113573820063500311072110873373190138510702500641070022323225011078846087450676507031466427056557799360843122981606230742951110291604720878430501227672280940942612138622682379031509752907265341625907343245300073971427498815452997389037286382689756905702689673290515880702424158238128492411255216524429623241833468379557764489792913122946139524236018386335891817816499090687425634252289225286685667006034407493062075137319215932961768758817368495334609464252071828695457010176708884558818814515341920129352933225120996981035113189969667136088728367458127110813890786844536518624608836135857285144284515368006125101763899838252650248309655516680698691052843960190622031273901748927760184061564226183454668930927057899936624821418481585603416817139105481912075907468888557405577975128240790275758735207594068630354293641032246351577180316664699642497074181294780497166249465336650830252232398038307990865542737329796213496227620897753950829483086430006971893484856677793686654025051528715632384424966981818603340640513645106082027309873000928292188374536676567279182648466330281225200134071025966135571222502905105411008615362097323209327729422630635923103630807852787917931697867035146868599749210224466204858298721081398280447179337471701785757335338067670186175182440201548921711880116592718731011876678769740233679776807694361885340998899541260102094938118271603172101155634019053221277165016283839910122688971918984539641847002124768039026525840186061211425637626100591512208738444166658369875302098533692895177098484614251236846637535989705305559274721198355709354803835846880659256300521268206029108300067390110853597579499095088704018655024662834041769415844527054322984777677873768406822694618586885823702969822335137334459534137123611610886718497859150643088960907050465596122682436339708541083990315881504456842861633385107015709663517454967535248223890819940521047581977800978823192715631623754042249408588109122754242865684127903029216250573516057693155357280812493329644625468835879008841777544626622854203639233195841723989851587255456540192677419871237236826018653692370324620755769529951265517881049914044128195422901584139297060234747389875857050737325131010483748806045433543834133824566381064220617003287450089075239626042715655546886546090304130754194242909722629347633102319407863643518556820081416914917283703584170864842603014485144948362224247782541989685342046448173457945958912868262462325637501043846358909140030617193340831925337530744467836970413641910519056628817923320166788236130099934123777822860839959361872292466735154222149081382897245009926204849497502492548800520604160813949186716775713382394263236543811206107021743491609762478048551095602817652483437829666312844259094616219665343080304898040292633210408309862924170761233094531929846278258436083921643901519729370462483318749816313385014404789749679737539652515538648941879645697419821214587808625874432879490644302118040388532729690660312463530658247424421465599059991346119007746075663643778056093824963441183327711726305472863000079564133572728670265007371995668707784663030707778354934609364739350408059767026672636113933798456268963868675077963329024016975724870239513939732629407875413075207687928335117748751254594919565246477491799928637247169346464524064459844121907274976104015642434222969665774452069813199110700288812435947798612417278038049269751001518988006931958484046455048917089345025756338182184031194405951602746598885791360736354803520970677967688360615553132646913638208016833789244749045719563429980897011253681537377622337702871638641360830867352898842317471185337173617547966990182361876701273038582392706050063542042463161655925084521960120327094105833610583809137518278965392079161543180240656744036365133473424055122717311209638830846065006785075747665541971351027506571624780625128098882112121149905703380156509063744020716827987574659166714471317994947599926819038481262369868172058436085807921617630030760379852447745114236424308313930105424341259552450707207853945248373557914869940713349515313723393628681303510266931364206728433525673366090694746645573759499417418892947935828571957123071164429857366858011058650193291237691878726162924894571439543591367248565418055892969244516845718048352904546313662013138135228871591559404011307460303246462807365303922208773373023427612996240847434127124612756068439336614916396673964043760662742411180217268191752050105833241338005569634795750221772917320111703482778865040403954583304083536248191541374868354542117539123267081874443482089064242399179534698093395193006431739327857769042429263087625904609658461802066188889132970746344139714109608479536381087102665622212973372022982592611561103072859702679049033898609149513259905222383633729343873915622816139076059299228548027960505535921029556136636467160100770034973261989129104211948392734014928175865182442010172455251535061044193033306227742830209149233751365271833628239697680267705743471771609609691331744552887727510335851794276744210195580213055867114790111887020941368376848361125384397246547672146220811014479097118700347850065282961480772587235762836684532799182842526759695676455177791071409039596766460555292223109016143437804428893930391282876181484664315255053176550049122867422503006412459546709898117540454192246799796308511185629035428712500283110475673935673305543324973774357132435679134415154728582015281309118541134714276161239796788021428549170372891766213365107664414032414993238983942425010768083549906128776535454789936398852328532383174627323228995590585820387726169670712204114951523593974735525607506437559813385038130612131859402317026833140511806307017484662871050909385708761582717210276327765789086393544232223097912396620423892471700304064242171739190910421004346518520782513842139993749457261480463071972939621842623607705765479202699270943123334567257023923388185721600024607311392139047435776100075470657753754995430106114637895527113664895328273585774915409693625415210149621867819571164909331753073258604156981871378534288488800469559553655924621557414289474847873700617555382911876689062561512280716954728259864602269467817033899451536229361398669903753618082812913838431111405918941597254384821131115641289062812297396593713643751997189643792650832192625878272533240820943324222135518273919369866015927561966210489435906062135711918073897548399311545454790318784997660614741737675595093045994328743106861362280310936347602460300097095064787911095587697891496107091859570055481496976478128469696910443498747265738220140384126261419259524183522249776842159055113924246915182524376016063614384455715889638270973891463119596038587095644389973462412887500036092848368398309017141730946883845439019215619859721071165627414902667290703168620133650884052078430848604072676979030335062963162785232378919869695687939386206897722226350162083225598225274932292100032552845863999369695691637394323052869218785833548194719029546480356897701055467892893727660065816315243194343154883431281349702741890998907313421971307787754388188436051944045675446681281867852086947176554236181009368370293059876068925790719047591462408692295460138485100521143980956365945512871889502800934779642212113329587324812945133123131396721106980660601757833534476903453621456542344433629781440282533279243106757605098145289284863217072374334898372681548701752475124988774361251927193849464152979320410424582975767260850874014446077712713783743573111668278410599180416004949300017288664102875314412430013763190903452390097253146418461103283938564491398098386110500831063603298945458347025176847865127764657905355425814533481880109169998049488464820734779095983185083902540765240579893477293077685862150257716291786357171177711571558982669145284472444754350520436559649851990247454218624444073617134628335515996914657922985972700069000549072416304017627895970571322998424245331569570059579137015424438597111042095636310836021731669632633666809619111447617875107858310511252257681881521314222372328930917797473537435365044870955779052336929376530397230678176688487061323602852568104120737902381809365167559347658478099369164560675501858755425918387448235409952103255788223870821898688163132649683841180865117435794336442125709215769255447946518118379669080480383285204162877530756727267687064580164240755814692985960322319073271144823269901950703638473085165559374478819431850408752950555809791225149117583205652665781263797512260153576669925515823222975156954769408237815877326008983494183139649912871974208155844104066263984803158595822389034536659656054329985295109671717786188939552939470054777034416507850167376812186948320345432557628208834309894314998666334849822962149241997396511134474981071322776085321123160098274606514105085458799598479973662234116716560068386299768998755578590755314443995036406418481871087842101751430457521662778471517543878454023064124037196238190776571827574525976412406509897374817779551242608736479906867119682835093473063382099200069786051166351809151244459252058436371706350811893323208613649953109857938592052302797696033002493095332462716465819686542688745270118115042403501296083833430603953869346585491922954250725384529935240597771727374590475424225132215374875420584861038481178167284824919459443677333380424973006678643436104488646409471326327152439308734049463808240061013916089958635251147029457858435001953815551695371829280353273737627456901592159734839507363533609769504484957770928119048384928555894846942814613093333348037528434974164695539174753301559365899675301893438122290722746861208199938133849515612537609197639328002132553851035997397397180202394440647332394558044981237599509757817507224250307788294602972204195633158430531108573669440298163480933100300243882741517391865169179809923008180453491129909632819250277332010601507145404850225287142898448593700926020791398169630913088472477645531708494380783369987872936608307331246083654569545394114783330798489863785424358882093756806340440948235857312218313998159638979428982998433441907750144917318441297230283481502566068187507156187023639892484634174108662115123506885348344297432840588423140150724219680433913551682584459876518870037856719173198486356415777265931035967557787098390997611359981346210594243175171218194120014464876762592632898108574831447564944544717950926783749986301030906666444009960940120865158487217037096958205313871243672163074577100057951075057452212457547403365063027182137174027359018361132842556514495492316221929100869389600884580545728744310611530880435040307792153001849912107927077269050939403490141277491308052685704950149337845967192093744559648669118791948160667416301099910454587165627018586528809771229641578683304115881514187640297914626826074558670385894839213853771090630321009195213536877312677155060371391038375761595697400804920759211990927557659499309579258039336904909275160013668916382455794900728899616971676340943547198617646886046359298757325341668655211692144508465039119961990287113926738661476389855896477471758522622479972563327414277122660473743541780614495625155272329469777569484866289165674092130146253738183829834705405338751412661178469942925193745293273002714906102848132251410383356600464240475280986061823472185536742008727212661978647961488926974712710310639914893455135662188583337714678110117994508107739824775446002093808150385874060071748187677480706584673237182407252952170102618777076768147536057919789055901368302105392393097163335193233890478461126936877008612048226870679190547682742508709835462121334868056776255726444865080982947550607117757118811506304093432848001889872972161572779156526377785615083464783516950422696648946639154665396284079963167008811401656709491511845086386653546424983794974939957834625785264458559364073751161376455658845976876977972315661984417586781145412622410092144154041841735183408878634116217335979356199670637655047687800770427514107005845827045969086761446382808346676491980156272040718994876150020125949441317063696339869780271101726766697360161734640330264523676925830388628037769652239070833972709537679125492790605213515689850102811974925310023778399220193806302972928116555822659604887250342856096000337951606784838220587595983723644695314838770087901529875828832423194476000673660339354119948418569748145508804425717478183874826817277577565828553235914418566608740545941994574141078792793858783505008858461653019031090088832730710495560916126960114361654329244702584372977589170109898571864473415030428693316811096145234017520868355484440952815881495981779470487761170672555184288461697519549274678250542566436065316364960520711332580433451836790305460418634355961741595255572996258276814945155359963195624858262899499216595979914474206300563407259168144538965010206573505279175258270649792022622530837348912340201976740623273070883254184983468162081073958579611669672821974750495902390074033299928805922827447421429260479810274743764534792824408732257333131010073838558870136342607021890022892908460729536825903350394534590453483361973134652155154652847298535802888276532195757266349327839594587778789132241218812444756472077550772624784986416637117260023632932837829683803734416230766496642191146643811549342081142947153870649911355019647789234784196531146579917478512792130718457618395579405631359165936848968236245264971603603343655885030748088275569033239332118368102151900570823485540688299836267319634234268510878970671561099683188886922765746754041938773218679326463667374427612124232063092667439972357531449467717408520078064208897715285601477253154265741584918768685513945535089722500154559239172761131702404866446515029364257224770805178021286813475765558693441688858490726771473244218115328700058270602456760778968844143450285469882680597493165660840999984956070733396826810592168106261695530001098062532729467138600612422383288315041259281265797981461325284613206313574743991304134059034870203305875040269774779526943889202464714992905963547514533450325911461113203356935275326609715068920723697259131946689657378672745240091959808192409314603586442678488141668654428419231575097264487959917582165519077820241102192254874817835774027980444032539091469863697760941987863737338910009072718867491278874393772663596234358078964530179675905259293938206330123427964565625410079619859283238688339010814896389442336173512990419913221578361706745480052583847640604364604606456268382059428934524711719212629530220084873060976522998133844424011617226022668486421524259257253628364320026701385920206814017947741841439327405647983067483680935720223858699804877970041676655530371437327925366319419474636799922760983488278505815529887187499440463297030563020183879664302880464586591015364170174164544675832916292564386844016933944441424895873850017527753489938746768980803310151580682588023327622332890106247667308482297612777737085758808083255415490189846167711839478689352223068475675819267141201502612300975744567283814777940967257957755643300132024433519204625679823515809937301638830474141080270452885310695906582351117225075368251055235011781096642667833607486136847443358687267101852578940964818015051771896623139296293781857532161126111799969223633629638581149091595609783895703545017344372567208435992238901309280217464646586332361567103239559188973649402064979153858162146532339478138181536662210472969166872801197441788035578738299349824104319845015262347587778257607614943411250856394921469883409001261705145253962139529484489953045387529044705911073114401555383473367028029728690998142332252247034973009850028476574073807903424342719130385839666198467288243548418121790304604803715320755857861330555276957286244208655028612347904818996898257914910326739877612523916781404495643621351218842468315287280947194007831246103283362745699633433089129437865927712666103233598795856369263203269637496489629208122062175974516872358650273504117430369296451041584055198795330744054430048489056039671298611872898544153448837548384050265314398188821460084776655643587347615978341300799027760291414702938816118262569124625643917892283617728263687219923122146887501126758038090725975703420710312521242962204859487389636033391125488640947710581175415590948693617150427114192706630489236942110373839100777911271695807671573560254757380624075486291753224404974137268992633492810261812120261726843213096891898069596376892836987316179027418233045745469520555747881954652220342221106419628144573643812522975520193922475538362063453477927378942529432152730888578920569998516881153960470268154765810048490175479167437457552216165682996736290670256373249518025998621980298824901022006475572286065349658306840221494339461330464973281634285736879060270099836477099837712506083300771381286484213415541377978681899790652438021892908669592498100940604130776111061577547557925606305277165815337113213753130040741538484368151279285572439209085081883958503255472790648756817348120711436249248367319440926722298637418205407218579724691735405210542059139743456670515999508886081767596483893269475704499870306012601018175678462999027464658194034667182571539675632760700048274967795287526054537870182391140628818079721838894693216059174126000574194074061592968235694944926503153778689878601971794759264613167666539514107188794303178461787561297490495310741276289242511128568193600419608619037958382071255874434913740733166943028765388169844540116515077137785985279865205861527226647327847888481159881217165732291040291958971839296273348625900129168206366925054965310846237095817361253144940443946490215131372681451357544096093800917414909882486358813674958706864609562034278538668203062760375214927903478075019057495533512404152338225203636747322804632165206670849452192564948527282306388910241345010599812718828209378834799596687806902465280953046091478418933549463956192288824358499240625163218124565614056412113180625225144622747280521051737381882484003326053687381161884147659185345214469014208995658767213889001782286742882080605444850808528673380290900037825235933604484136490305885340815913703998922452854647706690146956143495947183918354962601257450344847521199561170031522189816280350215068137509157483291112491905180218867214446906981227836567381359829782661560582235410502384558836993307144972557275072740798496363942172136256647036718518512663824614501182621989044911524313152802653620864469555693230695588202997373779092623051699613167334252021268923016300270369936519291783405504731720526953412855039533259985676626949463667778704438159910603815971086741630028587348615536345460859667744184019369412831809129480887157765038662479101259686991691025987577647475505890677290926394315895723751967145388559441273468217532688666994116414249039213162258675356354446158185116452516001161688214216778375372651926331924159846881374355027142338480424150667342808747221668974375329437449801074009490685862078377767233878240876009137392212243431430439983348961041349785210945816080589857053337355998069630239751280582154620545501196759965738031050461404848538883252582317094755000129866559770274228073016483521762717762676229317808093736149661271682431450824477141820752342393698770324087703264801306451083978319482458728954029772379275641657182784549257528124869694751819993836104235221382605903033608722652433131510221981745473889555845236296211072295610182907431602418094295674670619587112947889294834701428410576961604223770636587307081628661356325809635233789031431591619759995691865648172554723410472084230520411357442675499234689971909917805257825432238008361388145601276290518123711818228314826812199211649403649706185401476175883753571552452123906297318931694794926152991294374103756399701780627513281769252895173997059421360386688304174998235523012255868348981829138759385166630488601751116018610161791053162016779331574059732927695391992215303016604781505293539785763470240263708221450062172404335337946933156377219642313865857326522786488575253427049860662861078459120455082256985313754522767010733878755749045707746841308121012214300070694593287673514216127004701722496109204089839095864250737060228919236387629211113385410581087572082867002790446104810859346376045903802505593227544210284143904457215108275786064662730627596715352103936344399862601953486766726896686211363512418245958354877766652689987078142004835695931957497306179551654937815653515010980407491154348011253875876971501872301327016048876260547733473958227128455293063265260330320984835144424728958140431601410903712456884319576604712028386381859127477545013208615626407310613652156241680711816517625921124579549906837845781027652852548433313353129015405810554829931582316131378151731749329277175842233344182783415089121987503153812058399648225581509798627169562567664900233675970976631754634041000613812148968810596228022546942393222214987923586760179106047499591969066800449248498073825792601905294827544205088012139935043363850643975824533414203768024319284023357108400676694757146112778071218146219145730693973970228432411049926728020839275437545531482025724913261934005166803640889422806980888049455372267978209451093115365524490697253429425568442624834465066502506697368583847373431562369187655610913638209092179185467967004691745671900085245971507658453862631449804157726329427559474644868846705422939177925965260909234305258571393679331291277709296804122405839511993308287082880359726674166885929880424937323361018864874674174234859789007659153065425641447053751578167362464344268660318594000364860691171004565573984901847800464057581285719618699167175128410071039554005345546662690210176207879767020047047914349087862483059170107584796085742841596662163722216997455678747242134937620178645873437004765986436871698357566802914164828467402301999735910769014871851794386829332215443256535493659500723183510491928063912663955467368345474266729631659703112080873454555985829388647450190155857484000292590747615791530737185720724400061119629390517061758286218870071318673678596000146154391208833609177005065109782414900718928852939408319919855310481751546965552043758210807540684172161458067550044972045970319693487806696364921191412756960330531380759862435803554012687342442145133257349046106791650672961470325596685828079808767641653553672075829458073272904028079692904231964251379827757546789811367278413354540981785722999054175276406586986918747558815855604337478183515940690095502414273332080327392125173242755532677097541450269979195900821420915054204327830905805702287197106756200298335621133023181224149972890765693408351416335428156240476865953598904506184886787992849626799848831353855448989695338220486820890718742809345878755510091209249756912165953284226833185248751886015547989707008784557370100398568279192254550031853342264144898134251506309856952887316527103312644270513162619713855858672970918012827893876494090767495104937699163513325938569779665875325763542336457162821496451298318043600806323339379910608529637834843640665050176448965510383320118734993872531738066613119462764578733130207321103815880677876525462657384770415023143366820636419288583653777710358265381221508315933962098475227544886661508865732676089923361756070935244446422708858291969347897855092449540776460170253064384689378367562529994293010226748574943606181851275698384354817326168921199422323126186714217526483333101398979730705240912338014818834291683708317182933744180226859554951550801192087362378423593684927613750080024962220722981549106244264558319974700322318012311329828544433077342232844095151969768775010600009359386141523522805461285620771166726721996494026161594254169638064220059351290302441079888566377996550152840984033073533195413757471291400562951083302451985046105330256386407253740273153968063209388888857534597081985999347908975472812087572227092359897412938741805437913384302087159709868366974739991168338623400685077680076504771345053429971360276402437504185843287163182657163960304821188001103883499092238677174835473265748766354094825372025420242273297595309340332753023139582412527927368808616131818235063854649869361354051737331857755925446401081655759698307917563051223650650735850700201151111045183668125733918242031813724863588591205064188282898737858039161522296295861910576781831579209112187721747891195257577912897457286663646911532310378346778464352185681080105009271028917998324272594988474089635860611377897778038759485695622463313711129270865689798705605932344401524785531267264430235093018926889791514480695851307022913257182014205512118673851320935621833701089573251523205401579898194792246327841617094710376911015805220608791106118109917663170265621192143200053716748187049438768613984689888678014257363534118827692518691620481092840895094688050816461942757342014844561600588496366852073342568947409826993937056251569069739697182937250256257023573756813636303120868695966160532454308438061360285609687759372098507847223341353266341109436222688922516177614779909157976256784212322334284183606122528691969107436289787300053476857262428780597804337307581574754819598560918856991375811049319831109491817942804426122659433018201295310811227966844079114818036464168967013260893096022689665121157419914223506345629012838363919054338135251405485865973065934188614235668406142725602505368622193911241739488246711478512004078286932191638376261212770659561135141605439631711480323479213875017184792798269284924033614290237741492796183030067932381881374697439081957598280494586446903507163608196989299106350431822908955873418375669321598972310363303703951591856107051904394069008897166314209903128593227655130385797897960479606559802787136920024683024161304665058939519252821105918644079180332294328645381413494564535805257647820051452023249280171075450823969602295504940493684815067146234202188807437178213418499111327629049812011614702423486769292551708564467521927134292898649605240750759761785733232923247546746827139662821586428535938648269791454795846334670227825040032659415699042403165130007044279506745698511625742154179221734469169932032771577212917355875374318294802548745983802785626352577491725417792688468529200152211030254060447059250187267560548724998047728755193423101502424715353331321937519851066267488015185366487930132003895488143211986496046151711322532964734452747154936129291198729132716521768669255930057981253493742498581515694524923908251409353705198166575195135747978141804376739864279692210712715724191284516522684975563170053437610374753847898058929398597296294235988699634972205989923218874278662091889228885309622274960489737682098849256938481561051758582205053523003749071087768848826250699048327992182247842886521820596974852266227151564520286005334646570558939793312036402503812643891080745586078538730778826581829421953398109343037978526195525728758155500500379742194712004935956372287468216248689997903279418329091793739240239577685419839816467651997853439586466044986791054886810658412888226202390199558599068500224364148340838513860444160791928169054908006195863154680021358670469442631014393383551759018623592002283225464773309576771585941071518714403396775943690874131016637747079568003024883999717171938538502977529264375300454761246998160405534842332796382126182644045135896278235111250551332300322441780894886842801908880832926660414787144080568252830005346308987239701590487357587582553499861072248042772377151834670471328508720111032692672377342579522593459259492244834270608774659562934154663749215677749333383528497419324299253914791432932123959181667791890693265369410331861603810425449595193319336803228142841314604356646930361563671385656556770709601639970026379023081909139144812674737083431074216156301050324055115606562524519653571778334117324426846631777863464004174880004417876109620932782530416145298585998282108178706716582541046523645312127464248062485036693522019258931997650538441992083849795778621646415859075775655498044215946472075718760783766677484347173456447593131213510769962840715792668690123212739037889816804854657664963047731283596495097560438835405029551456765908268568572072616987071400531525584411120978465874968384632595200210913917580094534794548191145637383054672461186809996306923912886412494631751130897323444975260378233293228660246195675781992069720534763398453306849339091567064010420084771379045968715420039790434454315400147677519008332045204112748632991758707484426749695244823097240261889717933595418978546826780907925815787754674925138874225203424276197723021725836560500588916209175257742002347556128777627340423986187772620907518881668653512481118558086530604649181195676218412051970804892612697479151540021092997275298012273084684505291471095930025684316846401088325370465602582153037672702871925836267832020647162617621227790653125710459689653781124685952523456111045678039366678153788175499221603126159909840550388123691619216945560320939819514654931157647691054991385709020860310050159375881559600617387622259701180648001659610245673620779355082167454981702716575189312335302218073284600640013033279097841515437345025341057054059312238613718498072033059667169721423156504333874053912597705011852482032909609970171890302502110477765057496568471888468845118875359900993746336028156009151564942879960522395927389067162619482030734246482096442664263711416183263566315414397749386038876199865870948374085316087482270408511662313991653052904405974648077014270778679077436395393359068695543385981105777252852467195195723387563082334630107453479846285138425555850930935786046918814339517732622468236060890114095647156355273873526169583528226113268030253450085531942498460400139656168227340268197645795948056573273138949528883780064029654755448004645319350461299526359460007982449284820468344315620341166459817955394592401825913408039898840668889529703623426441907123729162449505409741597992991023435204484099821916787389676741108161479057295576978328800618963498912293624226947303876648967610572464014638161838750218128495338554212529400038704001469224061360894689571839930325876596225372127272576030528874862367616796024080722671575237159430092923907568450859396753420411293033683849328244483889252343066210570868921581636054814575859912570561346561296341087697442407767772933902872039204266286762966493090271539072007288472806595907017194801717603248504405237150754397327308269952305711816295384227297353020291919273239410160431500521771468823155250496578236203134809159361007631355005181789529083512778319999618709545462523761916904582167143438260292780093723642035055494060652309463001535670810400733381241498082030748947022463899719369972365218238706512610553735940067585951006857045571782814775948181215245239176624656129840792923726712976149770915323648991507224915013942940416181320411676645534697605762193129181643376733532832868673690050556635610915191614739085959147658830461127303812492079535167592131332990421921767073621621895087214380367307620080021881354039224847853513137346089686643093669941153214569077692798557429942651240163971367481177743817545142082912026995781762780274827317185733435554465207231954279436359467048179785668474912745359733892418324931510051352672886470208691823751303427140548906741207033147310798040142507383191177814193504447627220530222895867765710231945757041825719191811155204733452334315633790011649475664040442778115651596945888274174141345837484371871489172999315316984236655179226402810199927510619982093529375025014465302000021216090684730753819871326508191616110738322894520329218288037207800990703292654307659796415456601968737803337432152933083211161172072867363178308871532321342378689860790973582010768726829663308843702862467385508132699784799202352340331067823951112867816706078651435088064613918859602233966636116270242367147431728178973142362826979728750306510095020853978186114319520300810783410455629082323059706881281781534135808050719956133227301486099915587800812147497291736573444724841992925562225729386335397350466911238626274500735363707196637165727696167162090923131473517313214350591990696447255972119676512828591372747783007444649499752310942756753217971936477242825320250956055594731283657298591272157638853085635591468638171950608144483014114066687832154255513543777233542978318669681345258658680518638702397455116879940049775877753340898728711814769349350525738595001773382133993309511675627842740306307889848235580549610707746482751261390576458979861324665858373368381792419436873102600982655152324936029258090143810401341610585797901907388455551786602412641942926794843231229553688940788413249561247327668257830287506163387311563771866213350283268143165849137018702725475417828193880258303492919274775959341016013307102668885062547615461519926147915174377640179611213820286348242498242772881965156027663423451562810178795737177590992107033705906799091183313453658401558348049383020637736303650489124877140013842378638308662262629273090932769252237421017363306797022282540117367817009768391307245435324985057388621583551954904190107165073876134863735725310352955434235063592879394651348471767975684641807921834588261872259010232652855142957628589069543535444970643911791179563646078679290358856380114589246670123952370140508078861610558892776286158385976872075586169803810303043040422547797769151789000355141429652596016202942320016765735645020142287629123427026016970912022901273980105061327759501355713981249761716422692326213428989556768048481709062752520826190538691201643963669379441229866757838031608926440018327256485616190240558976562382061440156293246617337412180469166788086346731756783941477561072771814146757670920504704474100554164176908045958109468900870183120476021813219960191424405700272439752094275150345856394982009671393443303849726452957440940971884616510200350251430835478689758494277308653807283316702076346862366890785676857736012172431028696250263167114720304354961619170076373074673536961346809534724766390822507596921922431516083578420552504701776185561357679268463858457572987021332196290182413844817814200566270602868741493673813405832301639088064946796573736435835747395311831459811520277032376193744618911013403357921844549092940868566818115522146787295905090689500669174408019145734869939897870261463774533178486913582255406089928587055109271339297808255585629977680314955654460695743593235846189741623883874071589149718924287202558782986540133173250826586186761609349710631333129392277360944634633666751602697290338251024013098214875702480833891823262121952660055361817678438859157883952816557568921032471747531890446709136592961339863003999618846840733372554740553032447128530139253855614411660818452628803153278237324434637589764172804241397609657839285624798190384305689461993960048759775141681831721007397665117538846159945243195316867671088383059219708511061790434375291418514235159064781619900010568253200998283770680451530034926776854022972953831481701740207465701815093491354070192521009752514057154850898228914582721337037779358859776149672303609486537834334709088500533151995098471816467869268909669439579285491689797913691068965175549258131749388260008723320680346009062304528181392951598254353034653512261953900473156987366302821156482749962653423738660408430526799597200758927531267295821637508263022205774752831141969513060079006809261506248926774562674022125951024125434022815072481317503117040186425250000633969151113441420797113973380277294834978958774174068326693164034666741671236818210168655732673197658997510390897608690027763724529041301345084635538927609151499880739717661946705031268207034800905297716014231448506941089149775142763550522041035780078870870708192922599871059576093668241551198608965726724871905532254880487903894492627925701499731014451367013903665604686912974760442845156074425741407837698574990873822494117808079955950286510640676643740084886940098682703248417169238884210351470045133617560532757314864344484639718076482806679458907819746773080677342737364977908629017950262872214958100586763824313215060002464029870335500655675532008136049922486976276366348479748822902890103951889360039060220491871127572502293419635457204409832382589314880309879648629143756534189792622328733305746913539970287807161014424102611293259129694364329333223833681381287519095436973959552612453182672134234878501531258446877539256833614579222141842476421432873889030929954402132875863431638494021462173622932978747055677654221135572576253499259233940599459712264082348195330056317719180763226537686027369553158809921145707110851756074678618286382886743665555773263916423307681869111562592941807846739471617820331222862920557795167856915931322402363832865599255855488330150327215126158292674016469738778204566077191696001247789137955697764562890694621248046715684294713958850644409481772461186427701930638353872869430250795671613051136661385337938905176335454215185165840025855562041158499074539917496393273513973307184888839977244617222948623046110065923686903985322583160656624011494407269610926622772724255182371573450208771190801286531127601071618010500685238887326782034861326111499573163065864608695596086431741817741700756878752723153913900651490344310082453523797464631566978244588965758221616906329397788797127247743427445675870518850232338488485401626040864169886908572721810463860614915365647331383116095737108911640551490032227902435337177334777002629922058357063217737447155973169761375389620095188548629985436000714089659518205880192859397433407014659364883889207202641261398243704797900708567763924961494077079042490871027402729533646374595549707148520198768415494878124039334586528134349007674219338278627291384370864455524556863504013140261793256563721390582515383973017758213946983740776810924039677761579400548454527421415999263893787670153358079745133026410899041996565852327611026309189296037765665327881665463415005484586966001364180659806218613855138602479760853538772143564248206607756730415052320616401669097312908086559780695518032435787321568435998329401058106983312109632164603188754257146926527523175717946656507519312314831308981041390292720211867452628513827927435737691100322544890338598913099252602958458324111209095253579438410849454765993715202361552199212685697599044452954429707030190105295517354667727051286078282618487994204142512523853727139290889424566719965887903361304839169539318167139614439704737196284173756375580456529254739067832660891468587659606392868976549842152808922849370422864445100084858793581787195899726280725036211550883186192573144832143881293853897743637582522097211267136793371157448880460150315551402247245824269862383315856142918411382340095872133849410943906391557690007670793621917051372884518989291153102452523689870300314577830730642065450556365328796987235802377946280708002504407374509173779449950497147051463622157864230863374134393431655674920959787094618866755961981282748350409725950950534100782387863166455819470931011343553365243893621274779079114597368022744214580294808406443937361568018804146955064130895680507215690057995913104844687689937004167474105554545716963914458216910513381660356637706217829831135160701785502638197782880938774009647461514416411424826352293754734221977653893239425929173615603289375310044616946762058614435386103295845543357259277558578820990303599573018421313408449338984280835863950175367894528003579403665351452450119237899834804887985861651178639743672835863315895103695662503276864583272593243763854985939392026932755984657510854348879393256910940846058831531229906033368544775136818358093033331104306781220945531581216903413731535733285007236509939221539156365918178517139932185871834311392485950116838824586260311280525192929055554090320636507030814483441699928876296640198065294599299449453540833661026501886881697582315250037481486606592608344162770694768617963841205534271436376636358801643808809360578689603169133353743551474454894347155677354104594267915057891072753892421596302571773522737721167387472760678304447031263700222106762210767791545336781098588688358538384381036415372704207827190305904809035216277887689272811409719379868552513032570595697286137102261271957810193241687076639456770085936471943377114929468240426377415311054659257918381793250495198022725442029048503760210405265891700126387612945191163212213889602234481099592638904858414019770664606017012505669308051411091935218453090983211529038910375010407342060136815551065354068689544936737377209176500295557950230873883298319910815018299011897856908136120101343697425381419919478080051715840168786213285647296077664102354325606403321298115879432273893590363055630618298328445965924253889853724989450745462016205031397630297714634293628963002208739037144264237528061363314322542297961128025684324287713031620335860188898184636413187115574855157855049254336852892977948271337538266277604298111922121307264518318200432619107151555951977763037429703091592438195114167406227570799552527515066900341914065152640549645185555959015523056423620462395305274260879698715944346010799412226162683884600487817779680470494859649613862982639964097620437588371233389807070371308885984371556588419029258812039717289225917021608945296827660070538520894348603998333784435858777475735958569920281804382525602012236063905550495298662413404205691943143134015163704575144360244852358444457624072715560222574255908198158306979844499976873416065231531403249403276010938652984531226203287557192008958707187418669389994841846012244844838155535336298622602729062297743205352468577567721591931086999768096795160431281698191479146717498842115925984857433359322053321153662940626850422206344698484842795608470723091156118293152834022242435130358988271949394548868924147140265527797604484306746658234156958356887411392772789617651730442116742647831853093970943081274605215414619878475432614279808131406309036614372541416146292646064577827224936665610011106698425440188309344431651190569601687111212263921869837493625950899224747180543833614746242754394704343204195889855912537147308924768865581074138890932667725911207530525916918571560894363531084025423093935610502789135405172428907295471486427555292148821456240360635329733966619111086507632331241106992874718552817153256669382096942729746022784691107461749058999494649113555204186115351816067608645901683016442135196169511981600974252187654762523469161123714002487244767107940711633394150058510526144403128308878579763959527204478594762341730705363189278510101667121766643303155639853702948405304763287880862119095262559101047793894599123215320313471683701763355775301560145188170152319652045060795419965080822628516236998585640036682067273446515436865875353515731850257338708987230985913197638578734348480234132691286410962862622700249046560096313066659770633602099361668485955194095846568932419832336670996776251085726685112998036573874744366860761260756285064987622200248346008623044082958428089199566227756987969461342477250439370967515917672506917005365388547884485375096437029390287822834289278053158595465987484759924866157983815590252953113346026989186649440901082786660594365408054695014286378487167999888493464538952941238351372015200947803771424744822441110799825554396781498595818570294792180315978373252941840338566462715728912423160078166459943964974914270933174178592198634510379311842743919334926599679536571342627215849729280691637112618098555343169880169379287240148699786931858209492346445603013121423705204099752320016089509629642917164620491768952062751246127717416731689666455059414405995339817990263245033867592448230135733518922947521257983453523461759966550429866044474533494181844682338304964266685947129852697591838422649506733295298665491404865315657798401365120909496895201849016555258684415610881503496378441347300913305849755853841412029847972760814855172892163315105007602588634075132425932349418208806027395986803735123067234136604738502759584557417014224939235345820578156957694261156650962223628985460876158865907942383251353791569291661335645079030194330701150157523415046954300383171717125815745268670962262854218194440952171397630232916817267479582016493709460354988416853970824318383494830319603731396561322222709037396277602808059501721753246419920123106474192237451120448702269594331359158340635339457353589850545157603471252163961099444738449465841721789260568430723647178354923308453031994963380061082685121516302639797781516366112306750759267513312059604162739576522561449537351478632283672919488860643513189068258786363606141485523702335453361690010401494941972085748119821905710240428147520859330270236972400987371294868150714354877047605490500867997070805729057967522101774738339413186636224172659684227610578665257184757840986224297523418947885081790506465252812314677190478124127804778275900314949096003047933390793391004789302468124821644575817230206490644639924171486944220805829853422097778887849739711964801728318581775178058946221030187667039264048391566178623760632219341770605386247954676775036806433790334324277487402017810396117074627358996355372491577805853976139655590122964982008456952683403285944976609056463231899158176228822288434458211245981374709044762000254298437739107333273525976818111588419344281114336055788842072053726814707833715707609243477381307826553831150819018414937185646618024316531076946945489351166305433282599337803007031644400564875019375420068228429644810818975804652383899708578862579888634297173491499793097708508543180353588167090006038549975970797385187224929356207351134098426690277609733660190563457327477279531322041680172953719869911927684490497216689697410269277726105249517537688255118596174175770761991770320153035462462946176751825957940911351420456806390901741662080483692285651604008315108409070923415009827043159706566607246129912432458004691707610916401224382947318885333834825096681046605783934813880506041917122469140611749993637108161236618607570778769278686813157370104641071145315906041254693470239541213264419982679614589507337753607609300960259675642503947577221090522827913634085161183242961950708497339444796722527899886064684298883252741458155776778120984188055484911042217003279855691372459845508888122979858358964680596456090728926083782378454513674124967591384929470001624003557291959183692420803240082207340367146385208537161328739129313632156821690052877911257944730860388523052001769980622273835796067730953493306851685369619153221003494154901213267315303835748478162353037098757254313017754887428081927200660155234009561384000429453093266978610790443749684970794356060047847779032109144907627155536342144512440509467711046420052604912839780212368485519134438186571124370548363597599911818207454189328712611836367730046999248294835956035362920242338161978954888496769883167553188893816516947196652312442543088246720736506150582853186166794316180558778344476129720300997304644706413569176997982177928447894579628634265779159343101065452867474152356681059520319615109764310139474716163116730649648620647472706982661288847079364275737044852098962749483208360728088975709083553495895256327560774694363268817356085846304787718983619564408328499168312061832012834666784713181725359549371689517091383228453481549575423001799046563677983044115246222610219687521314977709262276163894636453719314818068463425870812133694884140808751808664858862856711478796690427946387163875023549070834708474450752976540594532295621347855727753787107433555416887257769318827575948530223036527493724399788542011409938475355038966493221852687243368367554479632049498718144370104348016891631824088610925911624058604639382512290071120179713819047404824730114678315919044580205996521937485537710114886575734631999822031080458766917608760814173412766111232098645017913609775462224051204941263189338797620788173906657598878443406611976630608176212520627159427782110416538202641802750825827033290705123868260132330968297288648142105246296831538206101250714396923251258441611188560355296400643769487760621375403599597509475667346911379595592446683000223629757996735618038937673886445954550655219064143814029663136585236610769186544403102512348121524300514495484650739995306828542758155363568686471244221058949916687240677182943500243796245745892901098906630475572108858112529276396395700408017651936841565581240932694899259559675183269337066165002123838068577630958871323713760655605640077550157083282475698496076124263882173657646399807238692456948808567802359469219827962600552035678750348883047532898682663370753683663070588796646165506723285877276929071014432392616019220778864122546511745028967693096037084949282923632139755392567428926719817540359057258823386554017876722734082995654248084698756856927153658287464340655615468880463746424860377457195687398296762241584656805303926478434768909949972810414866425895647264942111952728866578629954394506295025373684267342775443651814236503537863648929329028835431140030938750577646085411788669836574597261848567071205705400389839715095149293970571249241999973165617830363380129913165183474848210946160099473921365729774554938777981404077276010479745202888635950617859883670875347896546450347816842313415077911078583567546296495214366549173156439705221963234614733413004586120090822516848332569635436881105021415666983683912153354410548816928289532260280615947735426771260674379563593930884046890626956545688785803197795726815218038044410485701584608873926253841363979153223562202423807299342111534814996747988735120382013896923764588400053017762141244637985288097859075489667470421320470231401121265509623286448601685683358429246320373166265236962441873353366520724707783193188165125658754468573061758631560720869592871694167711217795734426834278601024495104584080373644482560639706321338017057389558009880567032316435402157190569291651420723730066294430126849334425580589870252749626514953011944738917934792830640636808352641013543793578462429241288738997833224739239575089604176776057907381857379112712036368042331590799809745760148563403868208402468741293566304122178168920156501430097239153100682522499826248586691808396567129611634783330817109769044506264288571068700310346797932930220797996834163734256543846233459974173062391013942370410070481017028042274598342977100342857976660554018160451851285561774412912540352390990986360465161552607730021000341103208462882879342964521195387902758250704784925225821996021971594182481035449148764733100828553380401343489862245632526558562986156865307680788860379399970079877764519620616232385168992678102611125238493134439703416712836278241175267322961078553790107382735008494985609095027392931707728361652124711178143135854826118052821069993701806600522773271821755642475792188400153544674838891445346977262826074732531272461002127207151228959806334775666201559515252980182317588870656756696651460388041441794146977782596493818859463976456887588909240358843282976798779093036797399752259125728334375164215776318613945807584208731006402369484253400581699317078436271553777011555677495864520905042168855671891394202090078009865355032500236956042348905655724885245941615646864136924444595130348828248186199135828068301657272157188146342151731633296934691919542765312167580665674878266441190831077164550031115235108767404860583657017603051794069700226083477877365681694685580686041160797266313459482912188676610672821996765799119813383463896981108943298804307994356915636560456372791330698101334013192756773948770694489590081908531549690336504873609689507853238336661026628327622029814447017161461929649352479814222402209388794043276192098587949269582502259387517242486415097778030016329636283713276292020285564567552428617864802492831271233515781520361113375756123337586038538899483237580423527047133408803666403667047334091602771107692374725250794736262048608571089301168655254527922391414707590201588576672048239492224993938807573074407219655438535535759486226183592613673348637933525206323958699000172652081108356444704733562154006863040088697430139990881309823661846103873167651735892022365940105193006581985555005478025535533959611188263054571322564132817870012715883999573182655511861620979743997909747663884573238089181836135213305567193034200144492060235016270025652766244798621178629392568522657709943988368037668318437785992607165505184882873469970376617894752551466011066657496703221674746388622408566919949909980808484906472950270449554547927196195376440328626761886035395235506806339857146375331899808573933377097361197916699531509801760404875065934482122498622634386698023772328602023734697883792861542163909149135344740485521999001283843615207954886977801688922805798700884371829247716096834024582406993542030506256707303075133150553925146822482459682294107076470024212798062913556117115312199847843267937294788807447810484693384047097060757261542651610001831420501760326016977068486037590865874305368564863941455684787299232924304373436279709474761928199978614803084715360140278564221293672715109079291873219709550699826819331180449510187909027094774301479261038626575976738695296020464099583064575366285723566888396428175963604379184617531716457702693386477622781514785576411967681042926605083435023030066012932419110969968796373178067233970291398912391248077893278566559423003704747054217094313151701948964578646264642642412524835892555225087732655456691170972221598591322829002094442865564455416781607727636345987903509606379288647950962715001961188948676798451371408039116347359052754200780659828633667325739074335134232451579249908079134677331320314331579937943529876610347854687731139060372022506511442314660343138548161161638389192363013159340084837248998782471989715775404748896517132354165479126178926637362175986274508117432670482613856643638053565571651834133025717070983960332807451221504072218689199967791868004763594782668396253135166363920124807597911662712797401796460445359306019369311574889675942877297621292478507669488753751718634556533334643724996349008316999525742014729458220661249471175712269290437745187025717842103199293516857217578765356096319547296540736922843034039104697713116783353187384630791698205600982066997320343032171786850826152426796868067250974152291510237549555530490561002083214057434049598411731382476792855875692434913532400765070352381414552487957446871980998494404155912496823822781292446912540516106104470714098422093213303122275374573670891427670850426483593663101372765166856861774540350918563711712597946913444836229721030336358028573779225095065286717391321522639547947623666090306348753989698440158155472940084892391740384470234725077946674961975151139743286560972146824559269382044896305883916762749533101234642011689283501462866933493682718228964056796797672792187570585104600676722240332554541458465232810261327793775134029095421590637050410803829924866567906519339073159033509303062111199759972402432894340490555569147120924570682442512722101759323859925387417082571252973271713946595189115775695507975363258387422806363337682538050675335515995370448166620977835002013437386392717266449894607353473438279628014173528211068025928756716564755244926355634279099216342316818118748229014714528327711966168744141307811375337727080716689458318950236851888292704823863824116294390867725361459736742629308761019590823993751334542154445460813117839547255439943696583021772825185041083660928701896496410421966950893532320880640289080835188399942716711329288387627897529327312340644290415943679468947990597693119488286473989452314929979664387346100605211565886358819223364449060634129995925132187897055587086164558111514511119884102974518516615775109727881414828907286797639526393090610809535856687780719623479560888118915785138014426712577490320310032650792065590794219925351592387329568542616707310647405448274181478833493919061507664915479472454178697021168332360732494203239472617863781292511349580122124899745170417027897046770451397724975203228899268886553661759914468206988295039876039075278041101849183908242111133868265253983914741498584114875808873697918781893260537408273207244206401642675283526646995033203932324365447258808267908734388958437744188544773512504039485546764774156780677694404137015921405796031129492184412882675227012411424357574509220858695204665406859792158162723507678831696204190855332705817457698036412427960487713357472856450084185087789840978973938499118613886534236342382041076800691903677170909879048108419254251978196160988248982303085616686597367699486235431986003349414843819497616508430821867113895718362005974052724641144298017477645514771908572509734722025302725143476518466799531991039813753808448805344640850454890417712249281743729384012189280105705409014398455917164598201138794441693455882024846491630703799264249739341514734313306452684016485509157429033581283109001631533468022127009505006231804047997000362679921424972105205566612075030440297865723630368105118591591590419673982372399106192465353303116822929761388812843944245918831195677518410395823470548523823807694242754675751062572367106094594386237956634749128206875149632324738220554324614804647557854661694256753119493063942449306194690673776275284841172781553229447571448025468701190766111302847462357916532336094050576717952853703966037350155797273524067448742069358097201144331580767014842985081840214888784149708892377745482833464695662459861151503926955446455143309966411070087909757008533068867708638361428955482540689624931365804286958042514759230827551321897547861622015177181334689878016139687243781860475522433243489645604638971021464695725683603472137174284343270258822236429813156333904768744005702763031735710554364788600163768402401159797484878321741821270602744797498539743650235917150619134892309640006091183217281718258430444341461045184761701483748625766379467510585670671823287355712769288725301479049105872252555420729915345465342333710743199353084513095883158505444097445142924879791770108341951479239146112295837820847346458743594142600447620031262505063991786621341411459706720009263168095497932152358666417807998879306866048757886252020838286789131204703100314142042160566290227747330110051608788917099370460349716088068424157723585708593592740764089386444066479658455066910621309694798709428155760091536941235884140242256082662945490360333343300347989436630724736935009279026378548165985122951554157944458029676838490923458722093662726939767698165747782857765543873929673513152656648964982953802674086768896799597132484869706852012261504871650141228262004513426751695473597328682855216265890153717820592412677212433966227739384648169799748276184853009401183622263006316290979088501376195845178494678226467711245078765994415070253999986041729204850194477960138817508242265767007849067446611988391899240153013895718947753110827162627678978963956733278310907569068712078658571779406965115011773846471303711611849226338999074261194325554099846652728270865221086046627883363030820897735998975037703139556981983373979725982372628903008553512232350454896504790370157031564519708646164186002757424556430097254482420965454367130009269993120771335500560313736000885580421586155687685222480229373473077480106240126256162145241945362109201732695994539510571893607823088415184862946604860800754706125140641511830433567934512018857674715383701429203447277541904422320032097967265128144000120951904701519014500185738118528611191644060564584135983775124667064834286399754814027136169073305240817562398760222649863670224240155603869269130100625704921127127108663846158234936890444876950969646221435642506729362732706028572025275341774659651804238927448706208121244422824289155190360272565371382698785934384958830384609107175953459938215308223909784668596267005870519314463395376045520036535122146170537927429531494402067469881693914543952751106306060695767653485649886087485363132497344954799007212508962224018883161440997175602715150022602791313089895901947939375243728430639835358992437100915310403777598291723578589311755602303139584490343034289883012950657290978536231209247824849917838108424652149674193220304900553167647807520528353171466791953853405226413259986740332060108696389386080004836815798018000577250509628808375079210299276996279075911245651135796547458591788239420043208160920692812797041451471126595885008613328708390224825608471943927707197124503532552521441981220845736362803731987097242825038510171837013234501285491655647394245679047141331720427356462129267053183144590765710638587518128278502582471897818292616233213529546127124129252251952234489382772200263194090864158230808826632873118941639726012694406983972043049832897145818648389055261193682262061405728119649842856863538308892435823056687218328407301433636306253749732392331705662270455489912977118838022771091796623419815330166937677569722066336264762284140870494197872035410050498255702442747473104004278390446509843223774644525505525238807731004931177045843845520085334641681229002270708484462612362542424001466296466091425870206715916851507278347995871258970433509040394906356548024469390322216382189830664101963554854752299179903708540703730910392556176011082730743467572415619553992128908557143414353178160706831361239406574779063795970501438569084708274352437571896230187172600015497355881281267233973923808393391980260884914598713187211468110902017537151922494558082280557935159713093487479533408055845533995332260401045296403968154371031560331374236520556886394686855270991875252610741479887126822155329747220373280122392883157323945221185478863369080650105575471602676007564140318549603444420236563029531713113845448924755695211041358868096030118564291270962151102621819735881506948409450553221489188410902451804673154002921880378298718816141122981161575675061480176425471124349735984044620446283131048148800437712852970853763933748030090439628966320277339680625183016076737877025455690666136932477834723352217468827658901024323036301957051713128542614889782237218782245287747827782184181831296739311651759146976930531405057232439634140005859284366815612541323661343373581576385872173745086749948840988399278888940757064007199549162147213630743060941498512267314284851130787226489120831098872714027124019179374058710810095343841296978509916838982021552995724417055600485636800682820253873607754600105544597760570822791677099621413032150374496614158367785222816606378473796278846197417808233741378494439085865355077008942770214044119788793787058367028569532904658619824624053015417547665047987447800130491524078360296535028090364669621594089905127513940343736723911135163245008431377935062191071287718674625265486152612348710670271684084315260577017750793524199905061831758201192185176203272996721891461189831774811303468730558879645683126696033784545893550455734856043670719193462015894723702381173058804142373152535660426117453099986113370851285491106751905747459962211611517626891431362034306704482414378373530236683480586175418680120146617854295497282265208349412702065810113209022943936488831434179881340019263092325829125345382026733742329747316851458778908208238612942811996580169327559853586644122640827831512805725415979584270664216053799220377974298566010240524275564892143724928058649192242067423101525979845250112608049777647148308920039729864635807959658826107865321437449235212850478492116892552812593577704777630753501934851116863839906023073525779941721578849935943901933101386211077759094418971305241106013557020213716828708114150204335773414729712033069498279420033591501019739477652920956480395540253366941755474603742957691209222156505855771017278608998121315718559722143831052117681414305407548947173515140603317366314879825244508551174989141740885754730811478053086045549956341947317961695289235070913001802366646343660032751775922902935570181764846841277866988518332951258540753700559791692839571771296127232101227374234774361356778395803073994472230305062600093885691425228656675399573698549755824141301586377342142604010630006253918818155542986734195461401437318605420915441170684103251238284251400751345203449282222708943004185332718079114391307648437745277751238995678117568067723889868108379468538779728997632493013524261476785904459388120045931642396512208263256030377388927190579110304423613253126391204459877284004927884820560912565859440228455816476730736826160902632183951672377359930765717406262933029083216704591371418102946328922316432621683487151320438215055862762464743021063547173844160439179264394853741540452446579143829886558015389907537407906471524183141030027159919638355373159190751705330891790551977157302791749304527011923660013858014224524957220720093332424922654786668790583080017737424644737642916862514846909797026889064090862709405905863883958300564435878212728659197690896871212307631268779766311308860634419491219827358966304673716353510023149149988815155259014454166907820049807237250380885138087764040011744988256893932135023738487201632890020639420261068646092429839920139096991539835201062503538821367417167044359362912274252140662091967581461394572597239643457415164565203072402326480980069990340375434225928090736744245147415804682935805492557521689926235394819681512519716995365364877703153618543329216945750716713648978465913225159883246427721515522143595957824332940375837040993688110298086198732415895513369614253665587094430335786085215944714667183976290891429392299718392530445767496455010617273676723026082616556414310439822209220962029883003017676035881389890228132414510778288818434413508806844245758610195187554614218818489213162251832202157586369248134796774065530035651243360512491134032700678271591310244548783119137378559222515746260501790105170250960397144408752807650766521951232237662556888901418673660202801796783962553062189482550728699708196891949610010919441922080620979747545148945348776640125120631330665864316650944358506620425351476809191122613973190939626699656423133981736629501631315981045428450668265528299311811971599756496296217738091368221418027421789617285119086542918921246958369715697153978840976834429681932497189335993682306624164566750718554711230339627083879310645455122781925792654641968867126703898604404897425594682554778298433579770731347908479219564486917414299020288283368398523450294080083480869698173446596814407346626486325460308510744334059696911838852782768294876604366086302285713393334854678115443373741254624828234065567623584718623920740075352275954690442965530272444633698274101051236979129607561009398725142950728327627681240315539157477845691636691882405516715196628317112802977509785474339703160355905888825890772251223932968906764121124646249283137403939940587800984751742713078098418042584253162159234699525820176873280439327312097903642647424183904943905844589938829171253674276380266968892845229985152519642180802345214146662701886153830901850177697476211478444274936915738282349871954746446934481844740562992310004761360796352827676706868502768474792906690949135700554239664798676632235648453929903111504627401253677997526510733799854123045220440024932283860769521900296874429613561190759345524491484810107769504087174676277243018460192199689765852945556659290099688870929810447870218785961077794133770405070540204553737710202611058918171258917488254384898953227197507429410860843663682868830594929308816121926054630903232411522695369010305104101522233954178308118408771139651473867196125392420391662237934665348360454552427768884429712080306210435023661572770913440469545932265895278693494230961600333535881768326555629948794113743206291561512413764831916589572141636847479458881877075477695581269720698769608356909068941918572954931672274821537347315828869477077496962151172290581396261588454944952056946498772986281847528873136156734157648560382565600227881652013895859668785000974104038390860199844483168373760188533250388200798535294050750456470509969983650421260053698326342983197688089288342803912876565023129484469512372115404114757497840937518018865874835232065413282701723530175030510508093110274253901429462579973324879461798892790310428023329901232302037249415019420504033878267995212151273875690493229001394054506670196176446180140270177809015646115769782144140857348867806126464305573493803886346710505840121500200854716156153517861996569088115877192423606423959247282362839504738044629977149926926373728841088989537433868613677256208377967273248569958074513578257159960966152092370800485557921293379144792957374343326304043702280722864612883102559761895679657244714443226366009989160901947365805829153014934942440127224088574587859754986580075936076958850568787757841629025068002040559639950280357234031836717864365754525809861776444115917841425827242748166725141726325219827373471042820381903385638059804744023033568343592293224533796776849613444067408050270767313076157100511183372121338825521197677926204655402877757567392869282852119465583509719603938817317702414422161573449352465008540745452895670002541704575562329136570229627673705215403366099252918584031556879414600334413391042259870754886431654035091651630905216837187299260702678642526869302530598297168307936336862179884087814773371666142477389144752761374938689491891492936972148160254428442302593799715292555780581399531428597110246952961492041726811286322020313908956427626608296283939722815586337188579082573489279183701550269654044620724422322026061757042067308547569156123095280566609099644697720032932449918686827809126802311226975956566514100621568247274439741396913314528099043850577132049573163759836024109666865154441955713716577012581583568299678505568936462230387760786391764350316759240955717844676274766912967010327558066927575643925001290642219035114207619433828430712060003095807358972280101328872976907742951551021613027522229820616126068139133835899359814658811332557285274217880136951917653358594487532555594930589227093998608098794050464687955766214623540227208868601530483135749349807344681263959067584188328736371196981385821061670093020228485576395197418663290295126827921940825295303572538637802173021274993832383910473276224395185394351439196471680277275120510041361614850979110923399710111051211988172183526521063608052736913472090518810027482647587691098784256174964469238662474651463512218208414243223198295469953694469433698637660482234052336633137148599714733876563757029174342084952067630290449625155413647171731407860487603124381233720419470978586745252762876122099150424903167975376497103110603214587891815360911910417937849423005601630187238821066779178896970967068982602016377968380515982855479348631124759417074303758857049759857720092607830241559649029817557538660219053312870262769062041021516830603578165504992650663627252225874120015388556427763449593452460794141407438258160336539389867902588290209617786067816386846051234260153890187251079809152299280334074022946031239670266728116378730041986691050276787481616749612436350602186624859376564291729448027001588972859116119767566761042449658964628801153778990146190609060629921548483744102322239373588985538223979261912128605434813215926043975481683146224943356243114006219392822425357698876479867985997800930493223853930089578118212683243050302671259669145168606563941982502352208987487563062153071460963798903772362253189261122510019486586475100109485715109032366112949998612188436854534130593107780273840085604242189749014406722610176644781744900848366574455721853312548918296075053166872228946280184452535798610006202186690641710259823006487366879484312790178774208080456362681388903760630406586383888992960100251767765095145174455207066794756295807939520373265003751263508675395451066411259838679240304985563671074498798030163767432536266152881638090544856153159037634566939846809761887941455182086705561095549740044450458202239556073882893119350390923566511738198185172900467158505541683322378921972001172840435780693511100967063957056055446336247658782819954143918633250406816793021899361796753293598854326715687258150308710392372443138065415692790298029074825567789739931670400336170715205991539988011491953961388143972823920624649114083130385334561965329186399771518408348541125852837132543501549961513814761703345668944819475362502067866730786349519203687791938918112516286820682304581969176341742882018540062105194783623434075801579174698016380904163193576219324863962492810744213210056661369395335142582164636033701596740289631974808656664364288989752363311276659071938096907173582185767917130132675642567474770180867433699460710016373442510304627372833464592806206233759021580739055047739420920476359371376438304147678011572452133891232485609423988885907295543606003380629187095581043807121354366691228173091623448968551265460146458441975544620088124585634481026929917321199040186361981361201985370249998151948271402976010548970711900176017052611629210931401397582071213886712034960059448272341806483391378970975201613172069031773207417098054830536426594818377797481350694750233694688316575204256346830454768338495203026815457249381041531172210965739541771255937923742712948529894898421080321377430757400239353778297553188105033035419540419457570475590531951896179990434694269544560947424943840274145587232178276504000283637880366116438817362140354225874286559607903118386358153854351979851494271682528796093554744292052390404076434500113472542976944565885066935268563202029429300521258011822715657098034614664342269255263109422582502622545499914838818509543827590316782424607150506582112098116313707194573200573882132616203030539180776916258218381518791647149703052229555547037313489757334599916578753941462487277965374579494733675651081211138654588065297836559510024959134143001510561662496873388071536079419500987962996062464775148937340940013427173642362578035656307116986753447735366097717182174374723435483582342838749426282178574066991028318209809254938176323901952401100810257964277494070346982407178231712227728874451226936428915072040477717348619238651093403186067124964802702810743161027240132389823797653921148617218759071848999213203389906993200435618789302859556195386583464275753220172392589050267886545796627690052551009702997867767920131048109303801111761197312685689741100884173024837228829023591104206348633712350331214723386844459313016463890558533035461418372709218925646894251224486836761703174373894981136616142602562007199577447730586991779121553146901164874766269430912938843804651189384489899898942707206153443890762287699100361875967533192689136479526542402197518503100757583468741602057349049934369797325431682967311050255749185860522312405153723502374338572835308456031805629499896314864042003287774536975438195390163810588129446278905926128689563666019153836310099332869526529932755716622526255507150341161135122880253741709430921420768998532952111161823754310539008931056384328723149549816197058160974021759316577704663979896414378497226762346652750318384184225822157356806749559034356010915199437613576638639508330285998791359625861152384366869303816535506375895200446389474324773884048638054857483628043276756204770239651551433145587774540595196937983620731377373702974197834075310417339074426285238137419451126309242475523756690443178589803553154341884908603416269235311252658769654557627503962809861715284352039746934039664284230570506074398814906883317495548314987175857913474245178763103375362135996577824782183620975763576402476060523568659620880839460404160898295767549639608333143672774577786310420120857215635813449403332695422449468708937359422705914434158483152165885436598019572029383584626707093929078235489332059521115781550014786255028617404812244272234317973711507781189257966540685109267040279454382976116040186532463721468271782073295797549805533225012926966256598456377268201446081258361238418942840103107907747610010641921372699475034386057196568935135434042668396495940043307305245259208951511039591204348269981372354808929237030322019001148832316716815111640053818390526635595001082966680321881359303128448694606667384230370645254721384934061033336288630174333706877964367830304246920434893374422867305370855121370093993049665641468540147478487343833110306561088811803998051422423047337141842880931174717879896965417296122225303889767061985353560739515972640766740477201325006476306761175039673985351946230895618788117277837291434374468570148499423599064277005059679289658678923606725983686594768540348209271403586345372744603502796959661219276631295701795244150554495220580096020538353364642202199803604848693514264514986675187399215679350364986399541070172805550650369770023079361901866994950661174975723922694647225663483893805005514275327032939762577794922133209611589316886660928988541520348316746009732320255733208430717478589509118216704151306032298281932914638215866903980238910811232399426350028565351786908820741927086306882629949983152810693023809308902680787552597241066322663274303447494538273374285180294461840374067484044900846264395649225182556104497976395531559010420664446246104879449062822783150330972652918584466005590819448128179672706532610591823387063738941728937444694273868419629069927766715407366836560710176271666094212425704295482737589035454687067617251949635788597733823100400987209172989872632832570447305245101517610995095416682150074187971778838959500129844395020148028163271139944023112142365344430446458494521575464311244016222940084019826297205206337522841659526594103707737925226786921646674384059560172824424795286847507830407515033164066086046766992786368978075361688211793968867850436063472633857705648472081378328760877719904586657787023704650931327172669578198489736242174679142318648291878796461526004159173709081600225163364285329389103630811620955437050205983229337420768775557335781475998486321273041044739289650528952044594599296119512993201466106144061463171428016893708967663523642891522010767577294430830241928574814263776342001742135590772167586149070284160409718685477423385675270383013537273904115084914986941746768633693177814977511031287929590471518990284908107008010505260778483872330634310055321671051114821447685285347797458881550206225432367978280045058684345858880264647019696236120744316038690590463687132472753409149085914358541095358367680862270361757886156549600220385149351829356762998180282369806911575639119120500439775065648284826685836646409710564768229206788760122617596745344240543339257403904322075301715523321834223635980713538406382218238660662634913158642956438815263604648065350231878516466105598136638169709409909710384166725005374442636468463080438662192385340010368183761855302320375276074474236167428798579996816137125177938044551354988859409119029848525294527261857791778656722413311519227332194009134260562058587380206192325920046972423263715900125665294142744661473626851217760346678160044920683901563670025027913105818977990854444319189776188114961777120497246807339291511997930007940711319374957814026318403989412236972054982388427483147874563114617462631043643135239915435532738217495473460989542812337271754712403206727506662498442138897460380448787847881451993098863272918568595359938715992319493251981847821094177355484171292794683903585472085670177085434460364919296856539267899206846044739042162624514673368609141307829770529467289272317534863165304850771445899376253764469077832797390918732599722634540340643479597103147925897614108397547717728278944611255618891774266406837140948405789256967147959338765966569219367447536599162792739429449177728000672557098507502186180943728713552698727550187425834437191614739886561923573982171131645215891878269925641211819877604751856837277555315370081223592537034635134879041385527515386937950512424836865331561522165835183291749146394567166987621231116150590136677633864198953326201670373091238745930887837500838473456424736552436861410036690845032862834589810227060160204463372685529318066883881181099714997171618694530979106542007049727382748104146900378743506227701586166921083675532486053089675157739423151424443019076910981531613938238248749972570628913775144081711902288058006215731314977923016667222252100275132504538305065397399491123954552448236925856330777949539031237302287046969301220286581630977122066303588640423409793585570545213398846683753390814738218580929055933941422670225912747030121826762090861523631886884991588073728089893446633780884137306598612867690477342649306789508835153119594112761581402681054195546821378431839844741284205985622887909889206449507998423143397726932446369311919846957605306944519358514113785394612365348697515679747782380436703275157034759984881015874839359423897515702842052363212865771985974937593227035962448446855527798292689415445006322606372603795832210649170623295084425505643169950445262101095103289394948721129958848209940430924623618425475924793520197778985933513682413401682495767078225664178471551720743499111372916814646635610958038490664180577646514412954212407478505909389380280432729535248064400601748873672335343405497141936957520328450920412179504972077461566564984017044703753595148084813058704269108777774632821931774346327859168579876989151607760841209182580508503751426351364645966196508269923029118626248854224557725900640770098319588043157594509854709495523600785800413176545400547750710292842499797458292567346257748232333155969631455660688809485360852279923230564573668202182530646151668466980493395748984092562528403091585996247348788920277825190554227169373612736134141447529400642185943951983484453404137613794122371037223789780287125042548104568070822942738617360461437765094483122932770896924953715319912382442951912131686941088702604390482854534688510206155086736260826315442276045991716869344732223982261352261000806525428710536322586873232196340977506766348886355354471137025886795504549134733836282835496199461448818993169446273093503242359439612293596460161707806443348549863486080087088838254325465323777052201932978411488088207023971338217663753849733384495826505050324433287595623090088791786581732088341762517729495263422433521651076691930083627580886424452116840283681433864957089019971731760694555433786313268452481011412664174979602598174596230294178670085520737637462193323629751355155782204982635347194975183478201464533477801866372396217186043277583009918482254523063792051126890847423626381713586574045638052501189620568215989118060042576396621329784406335838792656484661172441491614744791088582035985399156238499653542234664928712711817988211616458872322151493853224190958481583002549502924387799576253547883207794423627010761607348025211355036730075538550669550949494906173661905444779325430169613091918701343657476699203449099688450154030793218187007455992371277074407363237677722059865512947292596139141951947540935991798929913486451148285959123927007868625568460513898605416808696225704886712592087051373108611574054758651202454934746077420461557633125173321448869920974803084346116172228933260913396877460157309843824299218315125637381153697495708956064620658454511630334394741491336092182998624906846394644182131666544568275901640337233894028256460383287051637369320494048239386885359954929679205387501467728714416764059804003136211406826697899957617526308272694259233750263465325344469099396084766113149344501289773513362027618077251504008972072365989645325811898527053286414375930258410073211425057388338117082783157571253045778999436324706186486476073133461952306968246976680319404674931492268546276621119677275947099528868392196001327031184374494387000459524226490840225834637152329250774977410077855343337996082811002331355803008198778507771444572837557819987949740385308576784518948647973852866038565045722468612422867735803959122963804297975786560661870179751438885922230676229203457530379861576466112117069627915797172813829144315466076992218663684890138507249318100252424734884609019027146806149276726798562205473884556914177629756451625830363815228349239114045039713937323846124028717325927143434144863382671316342879576879540650548830219327755003269686180223393617568600053893808710747424042454398850885267207005521562554504886849320026106580432360580628639343102990231496884873296565738697040690511255886396654061056727769678571922923529355082920808536545375310971711529287927873177186495276737255247824513545564879217783857292382513255930153882897432138093932254336238452730661536718586674464642935620764568294049724589355022978375143366806258164124680856058866849842349182480711429335966777984249245678519212117317941519886753609761211116603180195144228656377935653134982984220072938988466129330220214915892998094873755320694289068207188094003647732520889905754981786226784432969477322267778492814897494447779188237713670107445594722076423026867642146756570232498229010977575854667091507890545579866999516579991502507323365758925870759875291023351865326264456552150004476270926540961390390602364867805851395877304009384455666543427788518226664161143481243758866266836937850993250403804117959570417211832346839621605679076146834179507143442868720221183004918119685193359269999406513207200774452099187380369594010700650971509286719422081051117352903426501302376765225178920367925904797682785963259607635923855250818919658776345365476278841376183793539807917466745390982011510133762804827612628594885126581713376532348859003747500183008481677172013395040810421461482089591567189677772017309950259041040321432261857736503872343441098976334311686590338540035936440048116547164066458166058345780213922645827678652717494576709947897043761369636997270822177296318913056072214322352464025382008268116823437958421073029678255384731495362451501939970236213626375111454543067778665899841443841145617588684143157054183540945811085962384907393695773436294895021074808242131575108253496522968149624558531375304375389123070323733043164722312557494866062092401325509424825817308375908825851281033864758394540203179597288745257127759688732694164251014244647638709855182770463517491783319581379035281554045678707475585353040362176361389220367803080516187069287128753713262229665758564899429590760144803170382001949646297797201231237557992869375504665072394842391203934196339149051988698677122064703039313863478534628527859865296692206029470897340443061049510177111665577570908566415469120352287328088813186853765872013866686756896702926638746942432442057802567927445687136409812538031931308330001773898617397963913198681299250409887640829691833324288333005542825837446683954819348034463526277531550315932549025405783886110876495631820689793422461009250187876921033123151390508435058723233670632623057061655149438886787288977474747211158931915684277245528531503499536715856784035700269584431887980566555567213856178569238425874791061342656671503358461795575895358563440626476396426802539748262256812960862013620124344797174280358058763501840159612005958684156429281249928154260105754068280143586638857686650790564321180947220671133783176912522472341719037232101262079269812966619744181991550601821860090356824347683679892684646787231400013878239826611238991438416197001717119256865639480390150658296230466624528750303022747001890447371652398701599524672155210495621523928579891839679958625507316261148572644048256033423543272305765564119668744198960663115259364088380632893110969059914167090186134940919517242779872395912363739692971338712308422041710247937166323726688607861168240954804100610336742170719986350029649062170648283711833215594036960415955428218208539312443425847701676803909338154934292694333397802187295481842601511904277825834975451497333237129566686767597092510233940216877487873414966133311956390744658023670585605110148310778579994240749427449606983602931913448357508745731385488117287259736470864578788349567510621568568563790303852504174783493083028583253522978884618437776739847913475690878990989611970933299704718001689664971849093177366394684029103977877206443652659462397687763088356400420887454669542975025417857042307483447149434569369591645780744550821330218687969653533324604431388730394029440856728990837112293814954724697050728074438261808738947895381650642892999753362625303864331901824540139808090159114521505113408108795109022603141292787257206175158082837828590594614208985580751156271948601200809499981236522775747110594560302044334251177673153833467404151757392673272420366603128246576362443791170418995618149215955891668122795065296689386008942194235256201658081901695159111713368592692776513269310548692580929458867398893106847733831113838887716222683137976298504022818384821739637323557379504510746177651630065424979983732853415530426947436416845804266438627899936757113592958055464079965612583372118648714742126022056532413633174618468630997449313231643038052295703245702091268056717203831239499146962801153888829693596347580436664737496327105034078877790616911502044132802772494976183996940365479839997222224306818742733830580279660746199151496366495780823970415876533872418003291842404805986799928814655510373852947270644444912684220522867566625447772567009031524157933792162861279757178138710011537608609677853504369616818633704901446178007455700806283062735762483898696007465554872627287101713954309275431992623615890900774962013904658943516863674302651619866758019131027939456077916175683713197956376130985593512125316020589527356593901261999589769040760953430498829722132661909951240714126442079695811705256288501739465288153306055533856852072100033650903235754208756345276170482150586513883870003570064698820471372877884705979887443933933091872060600497908055082326832426852382849134432191776900206768167057710260499038577859206199598151918743062922325249939947928592489115301065626975419191157550640689884017286666239708860261029226597359641052800634146956825275489619866814777904176043488102834570347531024835306577863373965254356211557874030128309116947925640309585951375759617171381523679933750760112134850803479812942711591827785854427920705514852659770846927302695572912837451517900663666981894387370730216660238165759067140644095638729220008467323129136314870241330466386039351207959138834639993723820532144242112462259403532016090060890625328914207910834042422819567067010442292042541191639360077289402103474366127853880494725853790909755178946126621833101466719237775823702145391047913957902179872534940974745940469037456538629435706913024639403865617122148490869965976875487107263372567432084781459365108502346666752074567681802098031965718978780139151255237516543619326129131359450008058034128725397361900389055038537119339642233345191658041265206592491403668074790890182974740163170313429031192302065761635548898105242529550497177306251236494815155317522766997627718351158981168975753069801373610972361922490220955141109539233515092486527564087218600598215817960813215301958737547606781920684172295525764846148157472482353414347191319645652543235227783075989791897696296428507814854266843473558637958667168675297975676429337069917265762560202070250791199450835561584897419604446353392398780537082765613288340690219883288503490041061189360973941800906518972634205481296465184276424243338276094274653082697251278988132284481611009507669505790646316918036242479397464364466936049923879434368920233816179011769372748991066574052379203749151501023329915544316452485251673182760826075935766829128922289977573106127602089933883842443036139813799227679352421362236463690131795512171074846447213505760301684853043990794610167434860369641368401193578358496416583587397424173857944284554921143595922557173447524812742020256509868467468630331832491178431698367134774228755889020229510776506037640900972915440102007068599545044640359312480669382728031376342577065866389640927175656860601764609683674670146533931492645073971624925574091967880732079714719133189285326672179605329055102650921267150251698845144467084820291042263239638431067193884285872403514077551111237075664690716536642915560377374780471958882556773403597117791102342058909512564595947893103157289327406739101203724996154993898881229937265780024071840976044588760358586595587675434123359744099316282538152878109264576682960788625566439744179830783371914537364873014340181835751254699677105346205994057191078671027971159903372024892648567394340701555748918055717555252189391041362582446540510825300259862983148290119370714529098048078226181277421353746565069050263977722694295033011283823942086568467476940589405169709344225421159574033356841975016581127866637912145701797681436822003679236308977112435714627543244038520128653911442121405629706794348513832159920414411028392209089847749848193816008945436157154229104126782932825396785372261771327594211195951526203473070909192651669588272901891601556193744595749932342681527276847054073775185978023445580876745499933962541418474904745232757023330681650767860531886453167044595596781971175784288917920212474131482796401254745723363737165912636136802864119039434110774911922106934960159040235396336393438433379024666179208218152692935157895113945947659098814467813503154508709173835007821679101161269501821710850827219213082823374257471491634778678779678507402492365058954210879750792151758990611033533704599752428289366029588287703122881909454079410148420833125163124163994638179058096853344583062765353161653720726818010327978989018660572587032057959114976217669484959426404511738920011303205354069477718045770501328375047213581145240996189083616991138837762302021088427482321709341812660290985780904648240012082056367979292579156210310621611148345709997929324403602574031920955423113425475949160755056647278770835971401339903899876994946954515737273592670022399200119735313296000759337164591847026001517885394335006851749163095764606577409976016405056386399817149625173579054726986463511724656842409999036552584555652253021427277749244351065274737482826201466109003637393238014812743842744048360962189293506362945656939069664303159026423515092894611205886093335477866423798514773648905464064801033091829708935233962149507565351209079645509777395976639078417271291943345238846589110791366553901266651329255631437837392861963480999437240950409268574748496924341845614962766082695940541315482929294056884984294253719374069000131924320525920770717409703047076552922586638069230682892418772805944713211686498484948348664357476404613375352867592520757965795003354671804389356174529598881664372176584582880377632222575491138434749394637256263444232491929455206137259285239005516605346165348690709946487452603802917099717593788308049782576801612115415257809178846722506578444992131385340380635766311662830754277496872798466840528264609486849480771452725232535963491653247220953666162429751031081524409482508413296912694088291747160990692351422833032899882150030857637754241557147112324910039642063272437330510623093159197758804386888429024901617378421343503701065767424299587902163494045464569989850929641883416374482087258774123945460739805844273041270647235867135318001011598330635385489915081081789116279995451997961196375860720394216849550909879704770712857720994444535330936787938949215398618390419418654566754971389283346292977650807097820508206372801012112869801077249554220560442029103249941916330592583030708179130738308395085104356083978656866269376380530113977430979615444135053536701791394481388277941891189983305808856849042043143718653295290503131265324287153288232511935578096054909628088989773650116403890918650212021946325993809179122982622082317723166875038282226705714819149852129314375922383385806683526765299493331287512632701009510006291627478415241037588534878321481395701974016607656334251882450722329205978456664582753954624318093361394652218677676373509359473507020059647424450937461306042539116997124912276051435901647529451648641160479589523726786140273588850683872390803907049211847231052110160161946916481100249065030288230885767546451817612134938430550809762191991248428574252336449916617769909816521494708283078024403885130736882087623250987526549772287783325643274054449677994849684921346403681324467367503946611740286707175538853133027351569377629310373750490644636769628687230222394613854695287919454629693494122563140795875172443767295991983019783792584451820742539952032838361045523427747609516878011901374497568803658787512624338884618644133260086943228134055534684983834382081545011324136461089142487310215096774958205260599799105718322016370944092259733734927977870217158767764462495039827934266647584948632176189703249941979050877811661317219641698505429247006383307590628958019803685806067314906775987843840891935076774554243223381770612099905657037156184840231153276166467733776987184070253687391799833509227925815087003444387460483762551288525333442313704998993614175046762241766419258218946150395267698872772936969763515496603987633470002906372051227514384315416662054167443941537171724909962255825236497660786724109087367505579704322824658190297151062430587918742035915698476379563165278395150915053824260477526278132240314385695138159674636412329879396362208955832204860659934900515894017847454331274197464920957535440525319698417695909334563258421892643128532882432331162611088660918027017309993385106274022020253093787444918891013511370453308411223257707711401939869376857991299384962715873946625424880232825045428801426254459189854768628401625746885362607427270648328657952441502720517519063744837839129852964485780354372540617033610801877441090621398767620205756859000590642894134207156076103393424536643245986170241286343197945447393632408481983346379783523956760567021978832730908614237858466579476241930562403614385678410806538830923963971104922388338346660494647237128030552388466586835793661240318912770594245199143730014528342424345056369590213403912415150700960894585892377594554092268868821435797081117511464853403749914258791967258603583530240863590510164514440989495178555752889657187787089742164180990319681124629224038580545880753933363941201152788173368504745858534502722572974398097662356851036969259824090865397093652554666374697695127467262061979453750389998464196399406838783541080264832436738544364376905522863436798162990234831524797245274308283930038616579660361549998559680860679516561866907809257073058890409084898668516115421223534175141199097888563130108278822574302865538537928852357210297094737851611265593723884193457113187965155507341540632542631927259804546367237538843885121252247646237063578155189832334221389391753049970835320906526491423963353160335651671882430934370310926752619741144598562410967018226060602384831271241357860862848796110137925281212348485407425839012610648916148631794230731298692258227387332905870920006126467297368949426349761418527126814481604887177626667600087076953166969290266365485553937271410306155356496136300855757661340629988508891790478001488593478077035804843058505841816838629613850171530336125450859648790932139805544732875177827096360391839600141826676021754538253095230035584598257643423198339270741440790332167575614535947003321738023456155690384968291093680223948724197588797707248212612404623169651966189215070896186545731499507312133105575682909628810603934033309458058799333025832450650647852175393090809575984270693876347893303292389871752108726905899878867757852199891137839376270244616001014099628741978679801974718553806043214599286933976712138930053278857392822262895086001770792328277808775957627467221071433498281618027235615787706526501819118968145354137940367157613840009113376381923460122873797187953334237443113614511850307446538285278656796934332126391967344076904245747960566891905426018959459174170460033298601444165004684261160060450706733208278003425730957374401820497537443521785561577689398188170266997192925208503309421951575861925125455761605560056974571500183868103299572162766974389226559629746683160192267764116432803367826919757790934744769902610306280158283952618809492727385552784183133927918743941994122186262208200107079145395252662824268461934740540502984906899784882068073369682876884213387881678669091778347121899695835557796435097122034774791586490656246137165673760156400397057355785640736235372061295885453717285590621099367218889664365824670987648226051772859539800196566969498927337222718182266249390124292871414134627355405764594186394801281986547886712534198280766659285744684023239572052316321320080239696926153773230525113624935486142278399860457239363026568983224494478374329546744082732574017494529093627392689580853813589348169065103987240779464945426261391069977931236455600116822788135342918780152651784938530407613088526710653361452642252247639081797736901726352658128003573034722163642161757898656037042931251786520794665822005225723697861668393103621034129263389471052890110020096061096781192962488365538644593349358614036772785390276660369813321166500590194092637802819372331824745494098363568690109491573111518957227652491924848239554733283732947771747046617435101972624647463077880989878609264655567554024916878970939655350563648604335860230167825840737907432991880728821901083479841566309706213840027203199996923380515105790949381147538338010739457158999081212730150152928811337108045967287902098027120088740291538241986247480315128881729503054412979111164837585135017138593061130311853244618576430471134924148736016126494814028421236947110779303058808872703257804694094286644169561403703876637878046728782022093366261460480620997490993808674826243059396446811193184228569167815793763058430875946917034630337275041841106570187607112019013383668919843834711817895402873303567375763733028247679872487443927158507923661577782275357615601446722952820857554348963970949644439903551627814330193530209146322002720798569875546089297803626365628569455479185480135979887122383602237001557811173120617259962607545456861064101123327811498823194018431174145854044977541160495367609916414450759344358459179828577363460794920276449552672718151355532761461577824917245320724142801963131772471331064121811642943313921368969809792413636228109704431875437108493060975931521291565962071905370838669615013518741942137435104223466855767154490480255544076642769929338083649328285598298040693225457064233301859012189004833980853883652204013320196482922727910519136377648876818521639780328164581383003660517359851629558325129623265242280797146541410871386557758509686854618265504478119016240982790546735527282010295279729676221381696693698654545561554426206767785140648971784859649038463075436233191957332159640620245242277673367858034965582100271685403826001767220475056039247228966331026267428136466901664452414160835125220673134735505697417779683275574010445720969189363965089370903580387554937838536547891056502825405320835724283544710357625445360931880998449389350629175728411168145432965392417473907762387170768267416675270743015047621775860499850544194749099310173017769649419331050281352561692389348196701565627346293897202550776639373467595802477407932950119247519072563003829941283644020691327567774534392288716212710695835066148583800188898504910887898582543804070561056972068637257355629457412159639774139824295351558745947041284451471531246714129623967812407951575705143046551402989454244180830649836242003898602417003151730361629057218561684649242826224226460702889405262679347588414592020403848935647232742635683147106193016278199812511847803819280553472313301625943369037445157793410853332517886540375610698824094402735095124739139784609101359030000515116981223258546180530528734780056422614275969179281784921812419099167690348146750204957292787132886513015532555889957981345242759333705157121674050761007351737374115906203436377992939470685158195577519488130147101639722041390552343096983294397140848383714375055043840957327319064034441127543459978818460311421003657997545405196783886137230975799925921866147354237311128090379257799278193735522618249473636126849956653184598449405734640946673969178922756384926802689461261396576817643914806451651953959230123956457379053191945717372547082229211444359733990923679586585600696456819734122809623710899312770165053037684360525284696515538723888112489431061907415606530195336677501124985091008441776851442394316987657373687619325485420647838564899261024721125519904591729221718715122285854083267940780246111205346063188523376555978343095439020749662156543429381180181288532796062382810471250517008557927885945084760839397237861757528824347647825946323578188094908501999827462600295993427029584760760423862584333746063536940772465034582868712778222756919035617562527816649972907609202695640588064795359476797672503739795466815622264247090436819729260868221259935678656386339306522870769247866612711529527633334326704481951529174445233614482362455520898279017393830029737051113484075524779748718400379017480701102302345122332288617069719344116224221499555719834897739770160737469924580471044861534249846882785161892626966449346830029763803115093317916593080401564204387159654017423140332423038152673629184639422612639579704839041069663810082194997778607235665292616383214769804057523248563601215833075972520225003321074343021543520362648852896138287596193024301865859436359814432313974866320250183789646698101340592756022629125181635205439351834719121664534803190515292750199882272566770129457529075418833821902953686920458725092472336093576475506820069460978349505154165059433441042323908123579279280391502195235257785404003937399990422909853855771461690183616491284428356388188092065033210733333001419638679576358452603515500909258384102738875893818925510065507822467150854276676166259442710979960526757683120017575337774937886205770584552864555543497144776650670398754627008087971764018430496853020138424693715653416771388920119223432664051238751530015221238786058266738410907553047731562835450203397949751932963049850676613593911716630265738953118533704479214981609109666535100985745426608487445380526118448681552520299443543899913015543480440797231167479691401465710022490019460583737396166355374857812611923388542887373199618956018363701816793648514218165516190955125441581176121056621245094051743004798438111465743288037696829458879508779664664407266421601279728242778930750920007623539075149369260351216879374262269767886938619115715629061096208058324428142996122418230877122869149788202914532835819176853226127856487494806476659677345252908799091003581605377619910855533415233534316604094002239898863613133216596256183292665307678728671621669050045597569669566455778438711721809858779197828534009928220793124034288063818580204708258078640294834373655172958546882601985778029614757233192333413956652612770878797305081503605172353413104506664958023360336081334337939939426221829435756579870285869575256402292129600362422680477480054154637965789062634213079284241644246600180520893756346524065826953135591865656175300668565085514278292602840525749716559105672055152391920387284105313744138677908079728776853491509100518387173673609652439917668182314169927093884287828498123434374729763334504159729921767688559503543045983527040117081155496412649839940936776898258361147671315615748789542906695071148300190352387926575429546432430338045422019753493637849041994229057673740150211785038831017470635341021789126268717115043934380127755902222325393700138774418707317227559214181723166140439597857733603165756616114836876087458028477731528656567410326829539248515296658016791473328965300868219212526710567900134569421784776720709291963529074651099286314903352679998140464189817502547303113800624741165544700502072749848139584805458401756857949553363526837534208182673378153423248544262705848000112517035986925321087176462359054793259303197578752517001765793632659741974470269648182045167764122410872831714471256570215273462660209175143790417581354466136777174046551436469888372842448164093240152700249710935610483071457597956400576015509683722121359396854282225211113060920289373986642076692688801222151477118033293837866720780969650340917098963292783178657651984596823456013997529267374821698968153548074675914455905769567474037449060421924408191431460706807526446503354601168020863539982043345506326171619319587890409170256254870841187809855424009069054651472063180447046306830935586494395102095924626071948722125186600417477962827161943360697575472397219093714480519710218193620741788758220815490984501633710592671652150345911152335478155360528241630175294216359149156328591869716509175746614001734593068169310641091772195302895933055993082199245377762084791484276579344263649671917813556851420259480451141925505533817796041010431113958837098719491545052572256640206749379352773468937339294451666276130875712667051152045779943907534153508063320163887090090699273785594820077825829986403148652362793895700445278971695555412417782566594776005837366581241823090058385253315407496775026564653909885215933934122650163360585245864152458055524715708923439429374532281703031759399907119785554886675661094758183698062961122309637248386150714757071205518018711530836574061095803808050381206176094564542070940081853823429349466403261610899306680666734648343662032456558237315082677979862625559551845462731523969157142317203947636482010133593160278265826050835555541624330719525554975913013935611228399746370777511759917758780039342837945196440872251570272647059001822087871022654157729141757008428520436840383943379228057451162198953874848671850970250947464033428068238951464889861071185150613615140214694159121640251750884234271278935571779305849104391648572884375084860834355308248251984070092356321760351738806836550151111321924797133805758839237451839602294803348946763873349680345514430085955111439575400906193925428248807356624192975268515320001784531758595953272314833215088490912816497294192512245039489478932139333722139320492572281933528412663083368888727545546633120516209632426461306665999190545032928720269022844488451055189001842823702567812751997014071090985838631375148417687259184917817603396966802852577046121043819791653557610227329792760657685469056795223050614131859842358788768852858790288326171902362429756288998696196504874187323644928100837882225097551737102687648699812256146716033517495319636937325503543071112523615821012479192603465831719229547152424118707489687044258743269802795697076568117376452544958886123228326151944667790819470682460296189622762845991895948082832805629072464171502956859211450671977634254423457870207540334932724508203049390254580770393118162066058869563201894641400677308156993465233185886925887982477111424466613523192753516144903441550817172288164022109816861110255984450049174561249003309791258604764651901894493950973104473656503441479529948757467954420734613119153802613854192241334539968519129630281839896111346231696184321736322610270761885831898777418349733755007163344894484145869352000394733190855196726178396188481658857741979210003060315108757832320373666394950274658604773068333759993503784761391347811221271692266196229085977167244019010738783252915686444197305718656459472751345479126763113986437666113997345142085810600605771945645860188982058358286895337396148675821893148122798904480016905995548251777900996211604933540976414276323424868859984305255311245870567280834122026447349955098174427113974697147079765831491419569413931346211031611723300256507055394168355539001378790353264585452996920829144453057305703225067763434049964011909970620196501430093537689939058872359254010783678469923813325023675321793058188259062971078777989239865616080229035861957961857682416430238619787718594193598505403555873677259296728070158503280491187110942074529571652720340334146915561671872476703938436398276603862305694723858937838117480659612863320973613263438956048246036993772605154910925991705650516347359729627734931946409694415515228843584288413090248762367061500429697787664972625542200436420487059676048073159807832583878674199567734764100947034854917066618089537687542679775883844282625646155820559020017739504573854691536328555818802262402230176151271321889514019737987043397954239625766869980079287551169822170000809707492986018075422494161113842638241316359805691886171843845436570753631233893993797119267288206099301404698088287340808633556854831459105042897615990352127250087490606765525658277623871688082616512988046495598573540959699064797807328962898328533953543080277890198335423829917919274576579222165318312961105877173852193373109908090292238171225954096737589403124234852886060838827720044146512094253781167459240241629769897806710315584668626255310770558908746146780577913465006246869527584295659431216437275468512629667172125178253857664582637968173645832053234143145935600738820150135067706463999016370310209946909273489653257434495707619160881158557572097997130024828124549263672104837512362813914571749346024123238098885326247077102899973438682819442429506713270435895635944154460667263750705502609850957529173067356647288010173647315240236139023856108563015637410225277592072202364657561224246262934885737554308665269322113355528451977016215662003554071500318332221353153616370854208996117780458720410022558001386809398536229148312095445059495623561386104575899054890060666437941153659367654805034834276665962001086895552781524101976988110654869268866101607598785420056934706013547175546348071166263252428700744412500716848461590843964492116382913903921058567343966855303007988593018953664856537149988549715456333935682021120399558907789982293902641256569036140713079138681007088223635179613546478468116831065269844698732571421711809355772782915040099498952800043174680965867284048848586429831654642833629129266404667787269037259314189218265901971781459322914692372456905730288111512606495213020042932061911482350804824028226865739970805182030576487451569454324752156365592415752365250545987969657968406473452469483170385800686951509514586663870934386090063949169550652864739956794294255957507076320821647824075182878814965707749532569586973922388373903925696865590200624186979101526740737797538332322985018588864109902322614537747126263996950108849181688388254395558334840197074402009747832880545553255975196008386886191105119989116249426223565933472230476778065320344148773350343058278635166851728285901188013658163878252048129385990168207724116905882017693988487019936220388896490065995854576700007200907864073775659860895974841324843824642240763585708180199394078287001054713013813538227128190893391427937441975596777480885755583092323314714397753784263678390352425369907439599845664513176889342096493741323665587970207843837257343336324284367590846402098593175964094018081434138991131477736752625314262300360332894255772896899644438050240297772096727365906089669431389728776560931570423062968207196254460631542811443639369872689638724757480828794231574616283881828416123883379747071829894187129207968578733218580866241724298616883548737515296234778089892668164969778653349967548096119942002028101773817050167445741150704034831040070628025441886282166866438065968879105701624334621933649419504474469099358505127093072309852407774789215386870617856416445891631885176232176285414304497938943469980444254055186745651297045413069585623583374180551113891014769901275935740419093287936101197334926578057118197186210877016851748283018534700290070352374727805281328846942819065255143555207547733075739454075124723021035624006248864019114581803494463579096634447026219975791940423730739914068489631699169610672216788988588262270348431507673401402181049959704768661852414000685233146618626815151774386901160184576493401581270727880119172953947748003958440079309497581027873953543125452709639566617288150803183160796849860388774193829525097287098633638149059464250977483785843409043404052513930839680794052636652550357736823876648607923282394185423295740119178950425901503334452509839632950990477726987246329791515712953076108259177296910616750553805315933422280687444159115720592957137349045698031986716103908753652831903473032918274334335837765202623986164283766148021366534173818173893775422547490880351622341501461410742310992017522224836300525443057825858447662004492227568067369428362258409877877366261646920465189416818341480362869628727113457159598175029340619788134919185936739435659386537845554240572942341702386773164155254294971425664543887573115588434993850348716356644167296219181799836037596747464870306175556699670674539189526849460173391853245051832103586501930695050954456268471627247532858391080775074342245548739667176627072091521453743822974216834739956809785451731066244222625536917156777896925161497003292412041317327675182043799269734847612990468322515912573590928997257290214862768176274581374180628805025514966940349317287606572767359303365383190681962744743597340108913852838768705653912039480245825236083856937568716056840200252179816199015616250073082878440074211249245812108391314673284695036538084821278902216955038873591967300109680359786267502261085646379097874512405824143365036270914779112298882249806671356819040890012379312310494223588428341728811151735362850803763460293110066575830926156996822680824511094591771899477632079480573518689607122204673330718405592138755613295577531302249526304022336934029842565907776890601167478548269251090362126930411242952444920421868466776449906541456403857751163462341104678669955297003532421416023241282450684204468471944526229929645798467428348310799447349090755397410756393965954399993085653551909932967452677777740013987624855186976536431292649103133237649337450464760304451591432874677245597222523518881477235757570143814386811203310099966431975621096974128440995579371082231379919856415870006216249068977268792821576641165624508787890420053210666098664739586990582490742743473010792263380561620776392254042228102018143522882414445640395249594830644168217942742046385630601677120260630997906211368448508287189363415596800373226563917991333363079580692247885540441023706030713546580202177955847541482743363862109480126859008261494762697516233688187133298506801346017610840217333345346447196068044499378521967361610069875203694888228009825599488108000678052353978492930242106820615294352096447808166640750986554877209186786451205791072139206294247771786661461451453843834889118899804530622386233058750811913139800057788439067430931814159220347640073204559682759511492295323701739434285485221332949492037436346515071530461145738073652813817665801006161799298946207789493975995782691622872898129172978986004921616786323644026890691753037393758092502876081947387004920573614452261036559960291761434333330677497035661675746312491056268765701491482363064498188050637810934831801465548301862853334864197969877852708671635096240827768733696221637590463563290850001709130266908107086356802269924536293266176091029948995986438358116296162298550156835599498071044567194886753464237480411991860910892944188232652356115227138310823850544285683272195952085910186731554713640562213219895545881135491163739661123711590529246753948398857740093351509812189123451644593187082980322034091436189562088567476411598526517032678832446046073465584392285834083857579714698497235474066025623103459831078938734169727655219358250362151138231899193123536407412855429282839106258724605055763907551319893129411873472246412018226849731274329270552479145989963729405209052547770691722984421491285139914310094755011142218941238563907182880926636092895527668384051805643647077660863063605646971347545518554039298973118331098129256857416461679998368160305239526941830394461388032694389340625442070814829164695942165244100820983976708270633774420567494743257618321157061687726347741441491000508549347240577612833061072797491258810062343210734416355294516912651331815469999891198405919538233089893449825057941188124359869142971834305763533984049541637699700376935314375186388060670632934984207714450589142936563125594340476731056544736495462056095210148743290231960884384860583110427820455649598171217992739408484997271930488811520268307793652313100488436186954908645541931180043668358751782290171200147240025992990141103907982319981655695896835502521380428964419299368082815077073938175537531685264575460201337051452814950697068913920404639812009605478804636395742837187891815835095506396675755770504436587389282540517365463489869397677210396124994644783858673550753681903052708588459213907197399620204253913835329565786588002464032778786731641700482950882354619973815886382346493215460336936442548351610678940432830195140153082623115319171763286315003502277336999921039906181989780177975824578739809051140838047395348081664196551436465471503311023968330892602777939492390709862066716669144042202254318728176322597329329853408571180775984398868693966719038041086171042815555154054755556826501553920916245439997017843577325600043079091399779485328305440774871527830010694402548612674618446982333879519302481311191223629635081118843388631681405901359188657378728800743716005860687221491908571996406522057780678294517777905655935449641788341572929293367252106694061712733586339255590330905002448808811354735776768263753246870479201391317825639544500557329866652133420743095816522920682336170535911761695422701474346981475813255758546985984188684113643443409065420455814099581490951944885034723171276741446117022997575518460067583384822377575167455625307048426525220252738072291268936938818783525449883222147272767311952755056908573019614806162073915568497370504434979104871179873124694112318530471774851406645418153221373686239507479435965019967227335728502061759118555351755870919661771922867079644279223444108406912577477103488321861361843074831082124344541425801861557716789312011373463728590566117530718463680562269191860799123003510524779637880434936304647759568900824358253847126888719515879313377445856471717698505627163591224742193524618128718639590871999231252193959250195923874049521367975230503181677759199701349142354929673769180772235518572764796109592873893133987694719972713918545414707437987398271468241536326931077981406195191300847242222768106828595370472716537934727536320288243380060704117163826476121352247142880167506915519105483860338418185921820335994923552805988489054738331053363755717515583024780663710515706369472565845503634803748222218458174554013559680234657316404080998541910341390937465108343125196697195477308376359674126752188512565006150649305605268388151968330208145088719270908087102247047372111358926968616824372288425187026310955638417538186405869535273353516128634026461738569868231227503118527557935550088895408564308982232237636982888664427235428094974943094283455066335692908942593505570939466289441475022227173278052128833169980398947307888881042377957848825459235889072215788674247529577368072616914199629950000008999624396915722956059301597067554538925496245894302380893123716183435358262549678007901122301262709605652439976949907517983349548247386089251819273018262999011208968791140416977111474797277225806469097652338364328690913027697991315812580808769914690381488412898196547963321250918093196957248802585883680215729960326117515970183161311074215065853550349902702539637818966572671181500848627690587739583534838594554549642416697287653253655223993282723691349951428888404357413476545762042170138262579436575106855224541140851596611363150438885947110240235676613083536930560429673264721890451064045635747374419402926738405491131031228761329871765327326232189850936853086319756880139970820775172291890040461572921796090421301849624398308617503159780491059748454769231379284820317638508291589605280009588731238437270078453196672426544608331437353446211540552043647855087173176849969767676546257574666142318315622108551366857209463272359204491561806854979974728620228505213271327157430634006741924489881062328799033627398644624981572359292518333874673933863390541933778831130913574233807134482679500061674096656314508652504181881397220461609274794838385615542415933788651092890297245046349037705557218955089520940507625359378283173637853337937929898080709365936682505833820006982187499008384789842074818816908104088526763930395457843253610279888407699255746637961860766600082322426234409041045295331541550527717787265516907759441523330645737285846966945388251222430743845306223283713611042373694546483337708551747695763488187425937075077098398564759706857812409919590099459192390316230528107896270886352054144593190570355733316119595602072899375581359938691269513135836424604294628275060126910408431176901019743618119843153373791538230684679940661588680729733974818691133617220568154836231895108593032278667823236046348382229731544970669497927364213441421196794827473850756466883352278337301721313299418112245232902627624849552870373291566618830402478770593238129970842415697515207316702992505122808338693847784429719391410705588393185938019501146024439436212038082044722811891605395599440025608740926949302010703617179173387702649026844084450711377098013505872503829303894540539236508228753990845813645748873090881614791701964793016674713321303698510486218709534530382077439088269385693374761586736516635707156750308781855060194091583119196523620015450461278903397825278890993719230839935390965475639664945097187051250329813087668714272677212791381934108316495922431221043157018204929947413084472889421359845393800801385815492137181136574519250065267788195327767565595243916438117896290176286620395098545023886523759370538201878183223067604031323232168093494263846894584510190476854857328454319026937549022234093510402856494372138201667319682519359354085273299273234561416565096210895137441165551647699928329219645352590301706827460819081040508883367125098899626292954663445385346157688143247793524154209008809619049867358384407864173202278997409157793428873722884536981159614659630746911114569057807356893903150569293460467966459403526234047938828655868425777838651113457951573065618606427729108508804196632450011280974539542887381274920883816524209735272628155924393073553748375068073779600338710431866098577459031316740905680135628841169385348831621501035450261226654211447850263798642547489718045807103969046471728188153630995668227849358396793947027252354632166365315469996626355372295126174548465186732098661997899342152638297242474089457492633416450643481102334976131936355916540000869837203000494560242295232626934054105762669689293943213623444409204161514891941053536109892999339519872729543996439065593157688710970707146269654781227594563610450189926808798878312515146214236357348180915846041922285058215762657855581321510486885016805425410730267177165560279083217290314732963359255427241509373170239349068940518257258067071005197694298644678017498645374925850328276890990487852071537034584539228319829193141269707015098286949582526460229440773597496968992244522019589372080581695951572275368287852374267794789763927944355134661603289908841913815795101841054825388694837608975544624664767161344759105361118656776831100327601641201083954223868241775645996168996489703014263139023446618338813697987063265061617278712568143321806755195113493319539502774197345922124564557376173076723292467107511026771773230939425803520323581867998006245119247787610269705700653058457839029576924347711424246232136463083817597301889505145066344272229075495877363419776714192325933172836543747711252715516335295040934315859373414953759852896137591439630237571590620472509008865031034630594264800956738990275271335884025908088448153070295210855108862922318565504973546273494173306126157795373539234576580872991065352060252816919231606715498631353513954481499047946922448205644065277285011101146186219092093265208296426933265681367795939983788267263294274801387522284193038401891912071560461920872464493877200689226984431214365542818126776062562160365571145616342506324949020203593321698841141529533449207419660058186210164475672341942286550181509311864445712760545584547283851612723148623616209920493551556300438464141749962987511457317475222104519296436769309187683112454659264161805867813943100811371425485778080079901112430271776132523281954583670278037066549568090454950289177706822290839773686120386965264775604229107966671716237272162256499530938870004516626242767594258012212648585998592815751922800215538974518725829301819409814185075700563819146338698860935106445000317177863889421141377441169826976022555550117921132366831634696288175770748795918792130589120102519312450236690789302682551833932189147707738794261848943952030084692621225338675109562360317800891733733810234409057713848024730640243109951339408083445609214498922592747928612636515420173770074863477861601204356917698750093810177952424231896385369455787745659063497638504311045115922197886820292258413867868781874001339285175223775721315659416762930933409044767613945518789665565619564563549945454912294089798783517820389797176388715045278568912619530243843212115306422397876178272576136035095236367854278281808954667833041095383470141528987353206960253663449842681189567512636724545481001279537061721555954027185656524043663736189304600183047323027975351631640747282338827774579595931205754496622819360816408446150776826846551932160877971522324543655778032467147333270098073080143107047405057726840053910963254874458478805165214208769345739358011032428798691442342225578032571181153858017049717761646710133904781574883036101730313726095592449892334739733645686827209598973978980669229509068031326643810242702459404411297777400350489027451507566029663453781014606477714537481496145312800080638523800998855097957291093022921423484499153240959266075281123811924273009537829519482812893171618154071055718466631601878059811340390138482194132666331813627455570194928149696427100733604103562870675801187624438207781522379711333251972496376122253221507175160714784961450264951866859488586796576944256538521002105548797027607990856448338042288542467154707667870848886224293974870555544587983934915280187116263924515989872259554516799806920177555443339197933257821924829258485562010832280441016815558127571186042848976144048135230685177263178434548084545265299464312640010664017294704459366120597878303096745413951035968794039497173695218396526060099690902003262364536557794492510228599467702468682358350492432310892536602471691056011786103585319164730597098431323547751183882041108858797549684393773785260686357235372734184083511489451175917102329219100679186021477266492448833556741496613703061645197842376654223413486144984413142112488907645505662979754928234666460220949717800561513150867446176714787968380435028331690785910845235165304402785963121691298133323987677823845492423100977548247626829471083225835651823881514043107135409164447419237413500542899488640538190133159321105154709692144951115827009841929327657312330467948066369163020749653733687502548212348676802917500822533532081584877019894644031316207710376329757542619471235529724171844305999893520816050421184995351027474116394732996413907238177766112509166865822353611810066852345990154152605288569698467853908122074659197908555580365209897159515084555942825236755108877462457641852108618204208305193624187144231952063822249558653494516313107006360182214195046192587809982772788583192737404163345996536895853375088743254743390948475377648786385860669820533529359549708908791840931985325308197160388466873682890738155031531162699552917871467474092190671685063034381591953755043743778823511724270264783005255245385040823070981821080995254593543933997987912825989055643005288840743975496885724827653582762219769218948779199858345462273005265535229205523625957365843288029769241379902005487913842766004378765631005810617365777537266952894830585517768330378155309302387237387147288614127701326572906908414641297543055529801299012564801492767701791353113832366731707149863653237578354480070865743291434042730767549558386952798284821503220840869574330635368154816234153758742265901765864892945413831956533768348878773795872392436279609468464122319852791664972761644127454401165004686997003677743694243206810379657292359785607389955839619374851709256009987207103270221696673440295049686262340917407091190621996634412461883027630181312793663078085902944252763365265291740725379183957936278574097909387069754590000917579571968640334930478160558448963495045186621738312636070518996569077557614076180444265902793809302327634595250077851876121984176021075977001744766238854387058592513551409193857582400082295533252720656562435753437513557737582533714662812984790086658989529657036877257726519466821289512095436364050270495510547570600939198861467761819394172100060016630684234485208202759781059718195791970481406466379310885654963713795249542304096436404547821322037658225711356045387400839351139750462112779544822138701206580655892548246054520852365277190249050827897993981710793067283672426660109477490026870032605697837748159856930960423232861998791688717428025826539605854397223463568786136988942410244514017119801157975920166989620631410301984430005516601076240138404154229718372787651463019037553258684277796959183603541645879926651293397673741578184011907797801054961409025117617803551180763472812160359431330864736827791317113362683889625162679914866311897230463050062831155251339015927902941869210593764610175376051652762756789416764453506925817163393004835935803029216145236422871062657552048281338330452309494934441414244084277472327688315938855484261857676570341853687015530948780589992907251457923500970207441213355857126867941040725022782650660055598349464247923935946919359612200252629914341242494848449970263480139670967069822544575813878025595241478582396837715706810060211255161455088004283849606563046667908123804337139577669180547690251224965962770837210148636113146454579223313479157276300170961541047882116599752523888175934992179500262389237149414637697633622240526223282416120464789064369436276962720496433028554871858353785851442059444518328715589437386082439337251848292767633357618083478126052972324014436291588207437051947044367217350516251051865912538624911127433880697553008679105107081379495849566047410782926242836727543794507937038114027216514951907004745392121428577210312303789631353461526999556175510467902048610310521048073847777122752929790396973215408873905081655744646353381136837108920290143666904276669353442286305572843778020629327026005477823626810685070805622771291281835477927265971860837177380417746721613639126607215344255143542939594260085718870659440427387473268371722095769368451460858449665346590315118290189693820906654016490969809786878618295924978180502672680622541064518871595045342007910433481387363446189926044379391477447299793849394919336545672706466661509526979016070037790795558833992837109033780930870516948420258567293969107623383690469070253737624549231338427972989272435566456387873661918541003307020704876461964100372773401641324696523546328990890603980459988133458178595179959047681632468132168795382120619354314758001997216053963839755875324267630708488313100367299872155746194582670971832284774407081061234909933847735731565456012667731638045921989013220538341034026686254601360575715401528698995436914413624024974185412373458574683640969302453963698697855274636155998863318824576314038103940799076534830974623122857478653964309239377455818321414693594236091095201275524994662170567701531782511950550484558544033865577057022701028860509421763987029445070735494084571254996024505748150717175038848390843154696013550877167969611041052139755402874831099072319397690266459904973016052609530375946691411260958379012586208152665523166537200913242721158146670505090053322948926255061216025990832227004039781828924426763160559570949684105624380374901960116490582430371597990655267733843549437585040369329809889452520820121447696582865179904543532798946448427711355916328402730506436366415806473251620153476670492485232835343519744625540565063788386790850328359913217617440177680652332262641175998265612215752688977999542372558921406880142331753539042034796796786609165330383454515081319528401319765712153480788155651717684681893862077927869064132360111925763747440605488260805233906474659567102395627203153662293819170009629676383236460033928839040832325405603671148544245426078121336744331616509611950508606767776763279667481359102063474677620308291323745003056385638563025269966142818212470731130138801893809054456720765599560466601578016445016902753504272665928746793098954550639511419278073097610346979483419600542137349898861978988864482993620635095840558801163670546368950287982476676579583294711550638750875909678488603980089078328322668667224859689225967125022633117785051245079663080708555292523925169618479788016404602050164236829420148479488103225421941849958773071661994688649442007381512412171097120945529948722017915299749433017525413346776583276693439537729325787054920403185670925533905188024427532461329445855420611337293511482991467348590185411361349974143144457323128685619373879161804973942856529036112413303341642477415980761708089023561509222945224578217367639877507707094666440164224211021046985789190579418401606007123139792107637060989039084096624305120941862067547903965322093922125365136439388205467607281577326506379334009644629892118714689666720828726543828572954479298127343651529384541580921768091976116159698902037062121344142007506257727243379458539504971674814130404019103143613776560947315287469679084910753322385373915323881431798298442804728100638583426665383879084430253012239201145172788013175523262416295656055045476987417097211626094440558148840686867393227999810779682648886527405941627345512206991557498575926964071624183349938534466209984309627741490785412281838189262147932758611807186931195924490360363681843165764852889621956256210037947807581787748016051310618362090229865767996212526032863784841972500450714371396166846320307135966026220443689803446695716898632652756753015165598104162698780846686665234749855410476042254503153730861621725898222610166973604110774297511813871980766769086719279814359905743434612265417546869100136248867123289315476976699882982560658085975863233557821248473009022141944368333581568058307257403707020891377482022305165768800934915248236377558578274426137247381551666178381893849133728667799036699581902342115784274956581169332652799371762733307126318940130040433603971928614093057338779137616732617026613557090831533785040571920025339334823816590656561587680224372930828247433316855373107041016085938273779167739716362863120659877235620084212440217131130707252705624622302219903325444034124129422772489454464475334202761094073434393411468392058505725485169606756065813282224549382621072969845091499178513870492105499432313365255692809278513586028691769362766228520288714382462946747640413147346725926553004040829407374796077705512482044817327297080555844926893199320059165764117980971503979057228316346565690288477940626150463339445021505461133964948424767286572232968477856422574895573047871950188594600434394388254886086305516342969748607513261138466724364337115265449111608398785156022672069465130423691605717867436466640285745583735795143440624351536115855365584942966301188072660909240470627615222832398334498583125843252553705818785785485226148118999699206875884120994209740626423680466358990156318899254099438709367314028854845464701882552083071183332590859757762540444336677604948404736328191287581322495998781616421182472706043205978472213806998476518256470321961683029477569558130969821944007590048361772644515001933071882454247956695046903901421661169886541926422046967634419608284790786089236701719045826401457226584467681868044390037667358029785441289706187538333622155472025787217408201845813948939799316220641202367889643443340574950408888288842653228288668740421490005530597024636751875238952181755151712292408120465175201666808857187558900835004248252628550752228106801675551162102396432637576058793606111905559532403091929745529723907597125039130705613847089256139659788829203592564986278366765624158777303833386895869644643157060011140730402629348245791243820312114947629404589107538519191772738141224983039667805452758829443812212522380374925409623654047801272651283867697234015579536410833664653522794860416341624406374534948267811221743179705785508628558281726546587522237440822925836109927148454155647284883227856977886759247835766078015328169616145213808270891536002197155757419498045899752540374076911106683351981805716360267450013628489850583855736528459251240221220732524565128599635634481776886909045332342296347689912777213886256891937038547436771518548499030548947345062401612796190986215460536930817388238350261672258731460279489871866947175947602647023134639234903328283219523876568379798222098475302567919449988090599009654710460615892015901427460160613443599611122231450242563596214573271452765458650127130311796406574805015517480496141711689693493012809207772671746739014832183949377929631005551136903159588300552408485167150572155643411500129426182842968562520381749358406379717040821122802273795927138742187713239496783679284467890447601753562211261013676645237744390114071883892707319809690313113089044768985818951349246418065755786708762059871099437126192011311311522379229288830436727484604460486956025929733202804249212968125485514470014549000440985643707491090463096718143532391567366558426319741796591218185703847030480291515112417549057585463351026017417302747378123488343619011273158935188711900970004733928764738298942748638868549380939308574307667102299901391191103734657354431605389591264309721708545331422127356591842224411075483715152827544117591208110235297509863331577159462539884536196782398665708740122360066046806523003542058776650948432615953670179474577207041788175217937509565703877247676677068490914724464175593584472204002849534752642408075228745234085777224995152039001683492441808069887423389880489809006922167163805315003210758715106589917541381096543442540655951429702907943148988405985009778883673302668619173865715379141094034120062860928701613034771351600615371137227834253758323720926596161280320000948542132835955903300028136279621836699211576185266182258923067225959457704427201110454042757087061923932814275368186999012546180252142923966370045073518345987851564591945843303969031745028348309024496295229525400570928573594086312937942223467727182463705332819637986517162641051689200399094648453656159919620685377096039908502427717109210942447671257003072913193515601890449668002461821931383535261287454024373656560120270909039979366361949605091077329441223827560815516983482161819511911972438438187568819417691340735265665130315353366319243253869066061665965901643772492759734604835673461544448629459235638395151847293741909989171680397122657432509784176435038489522215914744956713424355122214214781681176653376917981069811195234008668205107846691828963741568040567411515180400457694914468129165886999152759451298690102103842010237209594712327738693622646567606343796942299136111224556284775505907287040276125517012319853331599448831609361602502484893761264422251787312224548531021840069247983687806206013264785955049271240262019923625093149322198711927572512952386640747257422440760287122744614892880562620811291242959167724109626336760087038673081886377115872186863859109247797974403722512653881663142139260466558386651958840518413339444608425574822789977012482895395944189584341388702514932685744454153790326819551759518581164601081107335403124977165275188680857358705224727680108216130838391884144789559546149562881533031686287376091080158238723720864228134249305253050778877929131469897645699839521906222072482302428165648282044090119508291744553851502775024179677411183065955931414331324808803570806527249523737270714552655068280416132706959845977766726120674906423085279053343142805708684000560130409976006709925774033157256597254205750140309820150398549555150489402860910705279071243510819437754431695894997488965196828222302077123501321454886595019090786837520283098812204149580567566546858429344442314453678477399901047279667826164307948420771091483320360397110855968059984422204189464571099408621109318293358186543077195043980791676461302478758293545934067101052999024471603178288565875202088152932037907644076585591352188271889418410936600562514374328188115819744707080136487562380799047246958891908475053001102573979466622144778596522415265938175631341022636641195643147703177600948231469855735728011252231310796158820817245420895322657070137136384628667380972928936491646325079402688673859370604799735830469679404231838474728503646699773690722380633923607386454282343730953372962185352421898958026783975218539631719267783190625370870693574006227393994013123575938933298345920697053531954132628085731578322878749735039970848118261722253413709497944430709379744578796134702481428576071600974461776186429020959359617701031785294259357725268865959201539437977431159630456930908223777410096196463437549589652013422669076602389312486346834915522759193094275583044533873245812241117941293142453616326865208062936860061910062415063616975591851964071116011460732832164305975565966067730839901927358440553106279349804593416626019417350495280056097732009718694618297327074558841697053554546375183642163890252105236187002801064100014622123544894529151285312014064213243978052872402036859423452291054309683501492867032771952353661349769210549027150294173907986911100224467383864197334600154624336693647213834178811788587239419210411872877126589284174001660952261146066040492699424008624470552302720168770173293911715609309177843786648788394793103792710815744738981646691291374661835175980499413271946016489088905565184242542426900305912631155896948881189775841217358311732460521023517435945087393452985179211126715787163031593719438005616887880737525843076468796640082387876893885925035086315765046164810489337799306686236628496355720546865943084727464308179062737110772196024961380887551782150889620759510654350482402662420101538577082009432803187114774220133648366528996229105155338212919174302406749234758592720686819812256530720443317232016404640451624824440933362535610707354244174536358315080323062561813198135452431827268466042950895535080187325530114154485323357647637600672097125113474285945843422787367177334804743196729324185972743658071548733892629283407293858750070415162480442996276185260493422525060964051764320047667218811447905152395968939873149358508497139384356162032652892437421167818658990986459143172496774275606175899173861144627584258397272286174115183766806252807259353737708526689469770812521566853327804435142530466103482110371576656254639682196111770567633273131668162605065272650347124276796404102200564281954782747381731347287963795256666742589144286316827205446116586782262472411361213488517182304636628473878894965921781273185641082118800398611387420167080813895500731317408508415153426314939995791624976589859066863840490579386729753853171753752717271165253430415886867450250969002229610595503110728089615275130784656430864163316017388516580894777050947390366574373284894951470999984762121142494812686894389855046664285556067145306312321846014601259026476717824749255027863399378547202317903955381877387716027839216202885858060877055202603539891654393482398933494264306920251323141478042576159853074172633071204207200394774393498182219744503681176188139703856044585863353809006493313392733472912729967785869491260917584103878604654282735120411060031017825979474986240818453785347347560903550392018952547480573982081965693643187285542612896758503528231090413456726349970445070733274071133563884928850231790868147159291557486781104542941450768936185774043351314977903719659368833024366632810746055138262480026327612870242822442306986896133378767086498012046825036250596976825357261631788727878911461285053673804256480510355411244433639779774704617329350555357872644499195120088925645190934286908403417984328846844468785397003561433840563952415269595370550330652974647385566724803743100080192302286531890293998800369109801917493719255838374091242675535252956128316406846273994821104056200731566454968840864375430577170790527264646061998525923536568726953453663103219396173846112014843010471815444480833980982495968103605667106821851666960485810831411475639057761232886995437666610548868560795061014352880050334731254672527404308235238047354236824978724160906975635082756439220761275494463527916356370046256569275614424599045522461536063529346008270664051434697835701256513955113276811519901767453654884256022308430630707666337420644146599241642113391390408775124873474570856422437435715942814778188545628273178723238232114946687111261944549342402708085213597973851332080065839480826889018956073474238579258957442571654998526003372089496158090436257872797886867430776806041813025816692339484738557820206765190894051152341881847703176727269221474804294593977504578278996265432857320745381394522564337897555726389964740342080156189684553295925078307198434053136787106313206719414139704074396153535818333154600281134381553196360563321786970118530174248561184899521051457479624611683225072040098347548802769842928671573052555267462012411697079530522245963103552605457203920189689799940290254950379518571289198563471546674584694328915374939465957970352190754792928210940430023873867077358287813363445063327887890672202469524222691502169696902520469908622521676724808978272587402169145004776830694716735246559840196124959453704282242186681701580683657139404039705660044145533527148063205499226293117096782614901956187693418230076303576199550077658711770757345455346438443474964644687943377822149008360419505296854512062652427877231736341888142250594563752509125684188606888710917896400616674288613148829428289536335643721672761661780987596016280655900060979123970089173913466199942168182266232176371122263008204666285801968579561394278007751641295008280546203864495118968178771842753771277639322494001808331167636004520366700467538437486617107454409192236660102002499793441237035842532057008405585045521412069334140356610470702313637270798685572212190940162703852562696627405061835126578253605392298138242931297780038836494365318283531807327824204960620795686584946077110223416446017879973466020832546975602061597116001737447295469888811704232732278953709143511776152264920016756895042182376006525080717087729814699717460771764774200061174878154162326755450916570883135470423152991218030560881016490003695058748497499630678850723033849580990233464113716488760126743913146155096507144893268310497860207897865459652559887141884386401582123133735865725396984672879390847492626514586272964700423684191007450761994549223859868845922470856825168949861858986476888269030856498344141671867940084363068961627330726957009171625999754655976614351489749448588835051097935073397537966207077845038161659046679395509787605881727337158358732317173485743253262332361546854834518790479011654637592943894395729415883880572256276014676726018607250961721726784511862809467657323220070861760902576842516669222977191943594725357518221729151444545801449249869666917715382184834382305951971067169957044568758758800093942425050239358158324142501863258807254210206035147731680837322240845967680695709417093791373574753392327196375885288377523091589456651994738741586375756616041967866047781725876908802274117533935372510410678969254913189046857635839988918757756292307611003372346038533541172577105141983169030483984082039196248864901563220737855511740088949492636311841321109128819095928860305353969468310092122856867047437909925966341530960210373891090532540401821546009874877064432170386821189172798021558358088331639963689976602296290567920863227615707089066210127237258624636256250963333847169886623064459436518199339364944370376348409753316645657075433423905468404279846545252979034562614318934205750747481831471770122612207444107748292937873311017642357767128396451514136956340362247393365806521411998270145561914507512478874858790140010032303027856196896238249847922763342759270887573765011411928938745358267306897593318090260008401865282795244447373708875509374574305131323957158140513715272711910577728620759282368521344322009655634845473589099707375633089146538903620526085353887803111638120519090302017305111671899343724049831188959114135390669590110855948293991897785861631695671990824333735346333326251666861490838417391501045098130113139321646537868658353779445556556471283761836848013088667728017111354862172823644264032101978369113100925323698042977697956720815820559738816657244454570031952869372157538589876039098542931773054284858709226417599219615510496860706235539237758633736555339102214308633361405489574082190962366611927340457164344535857603625289087562098038719708320273760666674631920362415720829851966947433413100917291204187052251567599822646182830797700359572078039059875839759726997215590564892313370180037078638430012144173576215551029747987979925321807784082986175951250881681766233069105654530104169242785239262626868164756490927755994443395388490445348516635979144658692418918042399845736059823618440625405291492060567449561711844054890940039017599391409191723555762514500526939541198923473172580758539711600362411907204710759808038583230058498377951978743239169315129586924800686612294542783051474612284315578313200895389168685182990850044316813679602134854364481526830235167751743944446606639961794578215177854015331853430563824154106218240024823084787045796840233406564951989452851929118149948571962602273479778859635077668524710441884111500794394467953118610227668551342685614837510511532520067884848839226965425069455817079889334280512066660303495741741721560796850920393440998066037975811652056613428092126204144951917525903293021309302512715344733797751713743756983501960755130420164360041336699273757613879543735055094080864714705235616299923856126200280096714154145807859552975101485072440752526065436387374245185352869929599400941938488802449542236611998593860577729853221454351750906946406571786390788833708118618888545897583665513951888914850415796666041912237493285021375445440068330792715110673868584189258563479882003067741915619685239405161670537267807292742516141938485859234350457907279828018399789546733860175436318009400931292438204135583636949649376541369558995159959695961607386102820563977104070104115618699165343273933061049466957882924774489347303843785563775821454875038537441159424607152539171299860637002239662761322741482064493965615996357682108764391895369699551213718935407560632531430513277892349228474532674107593693334590157240713626419170564456449290722945754459806594180111169712827571709888662883152023547232353617278932893883648448678334054975643710486295120439057768535843023360871678038946816574618112689615536969065844704992739983946539594069075456860233654032784322932975930391725638423801757305006940098767495840831636350377352193869694875083259478129385251617641119605236991488430218729556655939415984149371709420385668759373443681541756344243560307559976565064804891550588514622313758442234245547825814158162871607665589019857349026465827308510864131654793660440271178361593444537737349319225898870529111045867554250559137110470403153596211711358299815979389274903923800346597054461529943588212474250999906310755519529161801920481515301753445562092974751297466496202105139579772987237144456674073456754636308864412728109394285904146271021068899067398124385745967428440231098107305079590339863826877266123711236633620387984600455503668199367545749490727403021246993470729820618977673974108516550343294782005352549869551021359392478199709156915074210560282469524868979554610667344509103743510743623058421730977845603469109335748552729465985412887413460953123223497705018556866179139114676302142324320443499623975670419061164453072174484985628597342734204396761727409538209200078270961659360990194519140959396286664768605318715125185574724411751552594803948616527014672596963955645411497939656316381222525864960936885188484203745934588090897294355283062961818232088921362542990177446357034655554123725575978302408583167864779986211205928397064698869509702641573365629345725905327952582064176559225100640077367550904214746926121753965321088041972522917361284277452269187794297986354462084002513906578078628271479073608295959637826987803054460552489303969058271665638934033124981895023750025875031585151078110940007083028052703391083882381865711227960401754412742630304187070447980066583723922383436142100722665981490053127905425532447313182522677267602317297568826796085271321022094153728361237081961777562195598056601317706010003260019536140528311907306835991379925378502939161258014335799155413637447567221347814988796883779581410604004497500110001647872047028740174841477877553754149892375963026692388347220516595284223863237313944450306171615782775991172849761721078555089125969304493395590723928767250141186137017754964452857901975444971260896383933650582896266865114953131508871057945056300196326824793636883547358918946864768709161107930485811797402472654544986380926376537662240555366276755427734012235523687168393864531899641194626886567773872764942880359427314540622670777533416393448407654676058238146728276859775061449383731611028499117237877015786808237807164125174792467086425694448448038918177288546263792322952639499014483975785848002725745499727432425553268846492404357714190447524311979242217982797739316409310856965444034405978632374207741410789422170931025177761799904425171568878050170240720856702242123501832266773149289747395753566586741990749786051246676933622708187596008325903186335985997996614990209881031141779230455115976647325226891064501032219744051396655231526198116211969923545613701212130783102323485654366806473352317209579911389275752183776047073001830635322230580411357884833718963083870607949308683767278775902077951029271824234782933678355382378153481810576879966126326414947133087880946425100030460405088378047871140688459375206372825297423870010892148091112054372590990836447293625542545130680417692221960593211892473486603295387667153299434978128962668435002615894607577096913384220401331227465104876787089137091251830354688487924680563422995521833540624619155253902980807778227882498037369616153059193129563290476942801787022890434626466772766291394519552369646214293258649896830399248980515085811309061616373452994193069458464409303417207744089833996392852163859535871458917186688469554305499905769269835499927672468777898198624137650803671114654430795611351870146299920209753990208360198300039990782005863867226267880695675901809791619282358230342125987514039694953659034329836801998743207749466503179624275556503254264645070200854052866185328823615765252579150628725706554937790172729858589083498194996446847102254251999726940724456955007605854767751065130549747237175884204651420236503770182981992373241224688869027067962372965268388377708409303119738014232904912883655173566202273322466534310511531334378680096641289958647064584408302676600397385951709569338166043092355789731945131781587019205285567112337623327864469379650298573220754420952289551072588033042609819695841127609020952483680360384558230570460562313662513708338377032554635369083214223784487740802696977363773502619644260192871659598741031824840420940374002313745139274320046308554068591318641756599140628479229671123892104237765420922063202232355583372147351117077561693559449677390152713238783177299385244405731883356303051494544096266753036295148221550417736060827338014760682633321566785651894399143197249920407110028385026330891709177191873120291600815862148026296074060574820421643566834534825578292315781052591143906023768005469646341131045216200551152502241977097527429405288721118073058015418611175002044715670202473451669215191510666343542649009167190982829100152296106566865541587244275678725506873492247109710162422787018202511261447651297298784123056801319652327146319197855285869970269069113518152456063052517729405367053297398325332414282726789686230030215808045030373933436506190193429293535082650523476550644513255732450552657497031939474528736993739358815986491705991756536603210171773761762603283235270566462149528371365714566924145649205562427932288085379808110843899430780202938969333866463242077381285108988123520021676188789711982416068775375294022053331408854145396940338582414508318106293089247164715036125155867145053100931558129411391496786181685789242394281440989607199282303842899943113965387357349607173042533554271886592751417211602357058053292254755957033797122359923248942960811387890324924268595162984540771738319035393933846450282924403769608307820912645871097845389922237907354531775424988875540950835356462348219197146133142184001117619487664799909146303417010774029085478091500166654060412084657599436538731880097094663318260521992981430540960581292497522370003242852700085680346907301624222572063207039174133997438687314258489245069598126239497113534637889688812484936501402193825800640565167847009790002362606452645497958571896138312334310405339327535822835324053875234408065626304352106503723679768525694287170975436191427041503920942767247308203741573459688725362964509006992822909916203660729434013098520865809352429337273251597121695794975700802760488515456525379822372755724863207969519226528835345649754579652775374823303093758963250956344322908069632998413228900270288327143648670770168021313525826013234965785050123669858081050722704624363548545794494584691476445837623803144079564992547580609497508149557834988748664025587824606091304487821785992699547114665513713456048732331198328126039272623316526700569800991313094480561436450551742600553523094108653252886345347690681438552047219017885083153639485009161333735604425246152360489151346995735340665918787377030793972790108143228800688391372380666472662415480200016982616000401045830425929658901590166337768681126237890568631663966430038834782420219876706431008603024047039434002564037433564839558885567978027984771643337964034757514136947149490400659594168407464191386832926950915374429117922483134416270385796885367380896109211650662530370193797272154713894633280375246815001052293996385337362343616407951635174026931759119300094511082844548526219544051040872182689390143166100861989712859989345750058126086683394647081569102086918542153858544822631516946019489541186556064237761639845693455165909038039870538901268035132037003370480853983634354964797582935521059964233685083225779531424444897834711459486589123586477671574925549214038535460504632994045766254932128432032817184034296346638799672839550843673925794150658716209231570476555328896551407644704742147945100347126488707731692175674768297799562837086118152608322424363845275195256144853810415883690143408443681180194599766951654673064176733664804947070699788503747718194765609439689695168529405079063918672910290490437476576153780595907352818443737099014505122214379108540395629694834236002515373747521349993050989708224371584545359182457801230872937458863037090786289928119108632202533781825355687881921433757441250351750654621094965644610405864614088630390550054136169874881305812067569244493616632715511241644070320065038357844553419459792708772051446797685371840361969143316978241684659560524538435550739740700800037913059633117177198026036893771761088785342965313808872093094879914240481491314741595978469932689377756208398378185319377877751953743946227926379328587821300240501896150709600528107652138142050920244893355793393282924334816206645442364816140259505299060107406910768438872014567214544506828229501053850873268523357897463517913024740476262388150227236396108620233216030205682597118596664336294614288958580448367857215928464690321597584472624985062437372737704825032217906490942223136204860575672099175886916980614711533107268765024325652769566042087152566649184866320586984726462104147046922670077936055616344155094259934286011920151949703274261900433002297806682377491353887546869612275067112110258397313418780217186877912184624820274444220776461725985295758318920408124055841014695667052161579626974717309025839947470977771601425968337585771257104636936628302098701747490762902470681881722016068189512792611446252562645684778402298066899632558674593344604420284288909681368023516377947044876642148792738523902672202479032718200813141690534467064948940707947289009757645237845452733055430425303944587756301527952736159293094396111495953462426982583113073803065621680838701883050274549552992699520119381944980033942004597627952090742832119642741286029408076829196363025636196270665443941794166663141745296192425431373823558199813746909692523393845557484480703173561590987735677845485335537209711961432252958910073947215510910965807532464265743529837036503092331906533053709392734050873968100261209869586925031671875423616931436040357517725291392341335783491383752209202529626329627234480256139624301911294480378908044292629024432126598936567351584946312552234495633550851340860003951002615573785214844009982516926916794258220899968560342958520403272704115602174533383741277536117350000393189460393545327859420163310612222616244810242055239260653338846303240685052506043455659142848024130324713081619909519921366037649916856969413047576780463033056338970973665665507992498515911532599541648264017441472157369080341250426237233198000034219525457539278892451360483567517498092582915199916241525289900149413349232334176290885590154650804421819068659628276388464484907045150696221796510981755345137370479552973364923800363811279449290998117442533468662540808204481279104914386923497199492720506825705203707922823991715043303875827621453200396286040116889747988996039494255031381769356108478943997404700213564860265690974261483510533090310540853313543177461483589559012214965539527797149577408173625058373349632781242606763264848113619534505849507942837217773831221026413152680839754281462616179987675279169676642918446033226562257323370682479333253623433425153617494673811559912214978757239639301325455524902320866815005892040144993450164668847507679968898352011995658859387556768478711764589824653394480968884601810308466822600511505747101759394896606503739263367696898579154219822749032604695691784921175928622059809065251236669882316223156201495513609223685751703885917557739678762025871904480151110346853683554329846224634855123499236746678636167427861343470860108054988563808401993196910140323812239308389736375926616836691766595070534389023851679670179966788678741415904231667643368619537518505486412091943993931859205931566498708278027657097757399148630246632564296357099104819437190383509870529576320698037188677517767824900818851530372107453659607312950468171230391142910297806528628786950020266427033945082040287263371978966169652957844574801437879815577346537571999100402055568365002253910627920353291679301359173544540172065617351579409465252616707401881138754706038467075510944411349433468404700612207216542559924548547919094634706773546579520353482657543985786404380681047006667797408566411911412222249140131751836741812985593389617736696913904632745299916936842793457285070885232172911881950644129782129187337208687047191724077399601606863572861041443769878619518478592045582365334778291530466875345388894062481916316712820265469777444143088517781058182074793286224523971978860650431054815077766845986908877884024048202231825961095200771133191397077029999827592186148329366874997254405779137969805832615356631365316239936331131392722488892552782137336021266110015458674807926305913202476889324761607751512309449074571449275805123583382176214684864681041571039859256687473124933993483446221433533684233299788609421803371880809419815292900342831721445069181399027445017000512148705605668726811861598230133233298854343479592264981215461266158357595206858753371968114334671408755819199115429419374421187347925059773340739191645067552805697032638580566681725935173585493931743840362564792297941384289006331158943103331729589975944243143694515633597196033550292021663489190273804363345428160930612135249845453682990474127232091087611261254115002588644212294080656143230995747782478482851404546294574246076786926977756204522117692750873562470283643150932057241574801045416751911321403670029200725851202323147458527149798572765859446535198817413294632751116776671550631323782376463385317797892265666274456981015707034677953028128404983725265263619583136684834086109238483588414902625996498257565100630997217346125992365556050530965780263655997324812577264390061925283446981513799319007031172699393422342063459846358513760159586216476907903268068550211234006977509278508635578752832584068696392804336688953300920863543725431090722332202897191901886071338393857017398742794784608544425072768385292188774722729932222693448043138336867767008710594690795051720295346185023481275951029310649267578955849151356845426681801566804114135684369972963616063914064773880446131266213449426211781644675931464164262030407367307162404516135814251997889907482131947321039407648178719776990013044549419457371003615817195586099541708707042422267816837193756512327544316773255421149019597081064882347071107043123819854310771471369239899768710427234859052769030587379297578181775781167455335294138439293805381722572209848254661428660962405059157949396167049427683938329990406641543089321563750974968701423300271526244342228274734412372004125644317911433664755333336644565073736777756396309877231841385028255087422339501808174396865282314620723096518790745495196275870025942590163261592216187470388937370254559380874952016890211905217936123412503610626989661531018596362256371525429327955931642737493892769273508508370202909742040087322282431591352902469588844132078400076914256969056768993383333167149304732119609313442785819844982905524410425228438133255349183259981975030865719423930226095492466879770604801073593246872385425819038108274012234638091333050938620937622373537278035274778900351448062494549067391474070797335102256331700894280953970210718041309930745888562203391618974748352193162714001360764761102366291755636427355545463762478187434994933456915913678985325004150195154508401342428140148753282399756755135657115815879360727406389376341660536400105977733188434203250113125219614625181889847384724347373285207765366984274908556175257566653642539734830161267410754794981607590752135708508192872800290014589701220673782356964199455635114601519406076275229651475208064698009257368863184555005388745046096079688959683131404479178689658317714754354663335849177831924759572841580680905902526138594663734160293259398963543346251578963931475671650326979500223542487957038911701419121944308409482617381227656201340104216188051290628648473765427042134264497024005923735840030129290037582752975436206192170084402155666831373104632037790104573574465248189574184976454811165983779755458410358069851094064404226841461685700429982146463024747356037519418683459010974761865028450355369868608178395467102229653886615558835428137846516448435505039684400385824399754391420021512405505913508018409594129169197404717394926415512019780411777704168691210099664575248383144152241191232017644802324714648006821937185489349950797040711759913464782138348718895313224083087404095263198344566530861219067808901760729552482995500253040239429347248671881280538010101621103031334785332124383841152069891108519364635109366109560558746396611506148897554889741203187348282533572873415010652524713302865979416631010652660812473547167415145601571186416790622256111212769290395468571087696725824664096348271006787170167016827179527130877514181280751059083441635217029000071510160822983823903675126151895579760528336509031280429734947266667672597084288495063282613088731402255388093816470716723397985170595094924466690424230505004611914675508125459139945578311518438923166071471677331995263207043534067544577835826415318892754031814932314117436522528193166944894789917318722709532443654646317264449706573850279531218339853139541015853717710566247941762022265043740087780093196505278341188268940794454540122530987431573940816200033582484310476813203671822788606172902565899527289784018266105461640484772529892938630788877448024780820805665445814829676485594710209652380503719984721885751539978982399400818758094962709273523478348889528069508863672124422739659821723344638728759703144608119154331285848879865186371577090470109753330612561262885090947897005574367353158525972858994115855625503177131780035183248521177778486967132510256081520997063264566951601115143140856959373190286761921575604442765087832136262906555722680342393271459279699875962634000074907069813584978270304746509158179528433527281280557581974903779638341669511728826114838674215681421484460083333638955698185459887299939848275404009285366690178669415223379582735258074332847588422096677186091667034686134453598160930620887722405784422335047699129441603552593379072007629985372931033529129453370019628701879756372618239925628992436088067652459912478833979205895816310794082512266065868505626976660701817255525917306888461207169597362880124939109780634731962059911032949598585975016718807645308167427652561096164410869031815697811212836427836244202001498307300208980205488639976223193469769052662639051561287166716987536064258032418246788675370358532543689154401225886245614544516890006216990524904378859426359680362797331339878234506050220170743948574963059231941285938073651809451271713222812644934742830773244519109205148800941556323335987404123112470477492137535544989016746038550890509640155208492302085522595139690924478090335064898778962882431911259137214732931555979301542105947559880142890334488199363942512635895590568287314590252893872732854883642720467854315695247079251481821978822880520460678618924206570277357059649380326035371107568149203251442811089234802841583576699117742008835905576230280330473551191827162581957146855956218958465971398009987875309210130269424041949885960630755407972941329484280469035924680422410188480466131756006288681202828892604158782005944966149139290792280872606463095325453650948170110826042305183460773725727809374659054666146265133879495301049750304698581225890035262648897982672936276126792137772189107437218224976067763171424246140796697309339416856461760011275159478149155712440932205800201593377457420629927018203239542123204087716544431137424626158503548994226058011954485182375394669692125904356183344676195214702379445042261832542129920408936576117114597787357320112528751069340350121289416914245241063794924885591357070919771383699970464686477384645481298323740400136223042559417528424739351550177495659882202924340763056438301879683099903614055474005592937744236321461300966895696501000720090941225901709216167262771088444881839938719755203589982820323695548879475624723714246195349676661556300142938742755575049318454936345683592897388709763833417354579092110616906420197319551815787493408232741123904345966996384296548402888878465432096760998229206513332401715792638792341180353450471559076751784924324425473229710534218686468247515953401509223925471312845094635181113753728624898094927283778103593211919481494842249563440975047889622842898936338160899078314686669117723364591286632344051956255421147911916412720957842964939528194603466885516125601138308385868892051323814937306813857117015193411241629145382948982242587988138091366566129024730775945571288908538184550728005448582120702843922142012676286940601429796408382899212357336340880534610511930028758972251526457811191625446950136005324557105821818099946878955298802840654322150077587864031127598722761243253992506900831874619006746940285241872168857371440288672441939308036802448976711808976816138752245731377200318980181085924251569515889051689685464755190256687150175270322609132432746930813221511765666733586527467846519065160556254761618902007930144381670971708489039285025764747094455312687816984716297420270229935004046357183696347195610388206302434568271093446721485456362041142559113950110947814653728013991164704199495619621978732817471812045955953349089931249711070012117604060646010518841325661768022054573361597733877625592986828800163639353579332585901817666935791110115117609846253394915858488931836911098886173258551350557086155348236579931106219997795778182100262027297595667108539617710548260352265621902486865740139986213075171240669603406255865140923906234526975351329098572670580174124058860681600492592897064936535948671523107276076143363578692909425276766023723457486165057858363694739757954271506860639687238127708193221936505331024236790503303058028735545016468811517430986409782779352761228884996265718554360957111218676707742013530474710827863040120346682532189114001359066760926009909241099334749274642317617333535403443475000961834100914442394683849483044368983136745445617185838806366909793520289402974939649940851442400607864330991854506991324369609554561281542184125265240861493999029487773861157206383875250001985215156927380183413312971422696077481971883286769274143083925343981384851838305940556973878878912017259955223483372025411463102944806524919671941322712164088246763006668119309872768299873152310827036520328956090118604153763919018349477920408728932279920645868196759584268645923564819112806241199799540460579248996981217407153583946581980810870463637649933167753453258480322395185875001731888439558699407122573154322875221147641049785463194649838308275766384921078793521343019644273449622590134176347177145668378770025738459412623146452958081976179668088762590093713758893005565147272327139925806925997154054153117722149331590747244477176132554146832117343845216062752968757642873232037609842160190744818628441742314763406683082631006267026501366609862944843701914965503569422890279998373258697214893573726585317160742193764321487438683212628409642416416445382271865881178592473390809078010399771487241686575443668338462404134752938138797993152675368773218475399793174277426309192662299867625013855857408325498195811470702625128207680509010737900771219572380144602744688847803475522184409280599654256827103964414695319198911722080081590808224377331259129722326698577935130829639225428073136396518031985823842985507076064427345676923840843595186379474165173978584301763240983890458466674098786156864416028780824887808579992060316902000406635460210396429316058858249777234566498883498455713311463298636203049382757435351700309217707537097880416233721548706816932019546551668883866850972265271246472485662713684867885004786158110065562519285842943000659727217466362810424664028889882003564040330122143572620017058624272870955973421032173562319131425249130128687338320494951058630182846601503572401403622932357934778815127503645952072938811821506341678224207405745220560017772222548734386970977300319000664411039113340103788371505170401751770382836160054711719305313356936119760741727629119976311795886579437482766784812964801846993856759831050496149213095915148799680304131148797645388891653765056679785525551123690620068922645556384838476161630315004184310272550798153775624471867846434509506687004768755373665892067455906117571196978632604172281450932847385131327028340638438766076278297022428943458839823325975217913111858927932255090993220229962053886733216132777926809107893962936947271629592840933541590852731808289389824675106332863866473757952650305336564575597042344975091002534286165304234602823574841693569497028510660267909855316731938487838183438833529188202582340402546797865971311989316696774326601151291396137714425124338570942606918565436346661435989816176929327108961494893164297876311427685038674249160530017547562156800577822004042132187640163397277948299692940670430033494048345615783764657824234697190843747209711578294828474015864611708383855282088184411746028433982390649330493934695650030639010350797281970580587813938790534127682830943225164246398586654203023406994002147928534539702894553328427978039608020548102842680796101092239184679924408224225118277397682069516986595019973177254325779378810189419532596043535810367390762308656995036552480822412604812782187638667771188301942097185262419485306997101485387241045754845699906039721781374789166151529495653175720913594789877334343127894634219652770509610888293746965298687008423628510816722251663738855030894272456965919183401633187514462024758477694003308945098853874549912609963878170776193402195242798105617798567500773057958472108128615789399432779713169433659455313807985458774754870057544738919320791456165179252691402258351371939332457519287810412155325687560728813057597266998337426899669320971909888663638031760257511022873698524472017271756646209049123729359135998369466127359243718503113823287421082499840065627957937873551195245751299647168547463675502265664606092999621925348709791954158274604042774284748698229557087307526453268760211521779505949004511090861579092117600092678081360716213138110785147081203351052793737318311053510693165566821918665058233065946377102768422739726869365854199465703869763486711685431864542425957114920326059725543440483548763110567766228643753402593481751157729846835252561840369576509614644832042558477128384596138117663148086482051011502358598647245674001459308137962554946390414455221660749073515535470028340273660864520571115258701522946934976784994651549769246942653874023999654726046365033559319088762454101419736312436792593764219288387826588125743064294524505164149406965379379229384269305748533080048988617366926572154952517651338552831496219168015283779971184969669258092079856689954353977752219360964985801640744487676632441643383181012904357882477897434233683632052053127767054692191470445234403981353141891247041884494117742071645399277706957876864747188814475330808396768398671754669622498907705911392077376803908057579971804584583667992150066722507223649781454347829903543905288265221582446782838494229765663057355401874654113391764211111425158347371681424972928870190484730966538293752286997198484616546789113084080969677101252470733426722569112933459185515459354294841112725692655279891404616028064688025335355900111631731353225647460024407813708849713180482676027825486817784131944053571474115807652344052394692351101831228216204391836921763592124470506141824170612405873634299818141646435165954416149971924028715640062905272262650732978296045912958642327333018570736680194913317492211513847460379575245228656950820733086339586082528013226880380168768156196468889323119597646049757980993335303098789739088759549509733942101429106987735388620225171515398237282016438096917934306623294817960781961812244147295318517303427277095562025201974457704672841622125973660788052636284572031391452972625937786912638691064374891106264144297940395019470499914155492176907799039224083606191904987404761516738596248457689988397756695781664453114643749126212364288341363670913351260220976803867081731174239337035845597141764942053114104021998762025340688639550672279243993056597224764014879585080022462998451934039460277583956725249914397964357090481097344414089227964507660170132391190925536549408824200394405488259550694862998606767881305641590902100424745450863036323303895509236603911200086803273902513293313151389924374982792108828149074437883887858527921338528647110233719192033570996908828452806075278415539594260168449109282348425960044094777860229438520888887432628195413936703469426977768563729655736214368706699461707040477043141281397918235226891691365846228853816465491583902022912862256136208520547424848143854469529514696096584665318219359717842876859867898388559388347679818690624878742861004852271666349659996145148095481566456967225413007574356897117381346908379514427733867875966824559544833395940443612629760730222400506802612453264470625357601728310442012432943531464029485290516862929755491630101545415310175732728957940274948177305013262917668132392617322935529676469399074785662842901006028370131126223971725522955855938496422070573250574901860980319102739487061538232478020300073147233989988162814300822092914509798785887690003881247414178808332303650273364007243713252147160510288142035436809613468573042124959357311642823561414552523093168300887076311912710294481258740168183814783574802345219741480473727163573037590356479210912528980417760315921302911609069602481449205011196481599595510455540104916128514444884540033020289683384694444734589127190640691161969827017319494354255609443081888005109373515312603697601868108383832560939105286200275076747367138515133255593799412560227600401777647425609825810512169612419812161667958178713860625717276507703563062770504858076113205019858699403631565095305874076832210814072364766316059446868333663304769124504233708183915577155843481616360641421787676638137580027203419173572853099759220276642524949396074380870869643404264941586519013485766945492275930616858910231011184562920754206773893551793516326526340671549232486635230341754658392803043432140429265887793571581524489250706542626330928857492246468572160853400355453356892592787303915124374695694189004437594472355980703987895221189713485284072879208309515674614042933541696800927970882124471592242484379110740081877971680367985821567926239816156258092018658589765302807341131781318990347133155838299233186271871652864867186872914384862872488532410050570810085749783988988886382901095028940579576474430081622297074099017643672588682797698076501284614187528010637124246472835799471698713978269395183268707582548887366677431105541711276412461155217404163549333830972889778761118697133434196732273805253626758185226461004248161105745853449333032741173374916368126882622937917231392448677159005710870361274293707592265329438911795944283973287134278544068953473740998512709416023689064443519106883376153360338153980077947955464142987893834563905540637984203224410771681508622831240747257538633388564087386479797501814512094832463925549092949099774555110561028446443924638634654351845044933015494797548433298075120569159659007652922524549711475726030115629028337946317576753864884804130340866362759867997180824587327254225361484264496614271931773504460372613213280067471821085135282046926647034914551111505049550638652254111629184053032099804485653164130155609217190374226210804538243602185168537633720403730439927699356176779749140757668843639674999847356085314687105404582620200692790254499369934294180304590376329779828890630356738767076269711742325822164095694160760278322484154159463421013770312808974176471440157563985535227756830030349796537627472532662869153001264324480472268374785842421589136684805540535116403379628370611619970750726816666809184971094889705709420968597161557248789475061195197389644780452329711266680048587378866326121459577811448991216290587452106083691630272506019642516811677327177657975125399560147229560185608966129871708111114954179031722129394957418411735939466901957683591768895996791387308813446800435684968910969436135680114896387162290052602389045025790077201589534849676268103705900226207281821147477505190516952971026829196377595519719054072749272380355323280310563898799257216299969973394237119093763500105927352385151722637972509020598748735646647173688617183728601587822842984195459562392875051006135995437319343247632182455474055005645172887555533338175074146085153703174433306753037473107142564215158199517149700121912674006708809940424991305568020961885219237572097127355205761989898206035089448989861017802441838645099708375654818641979285842575693903028532100023133027206043561558003873777239353571099170580398310505080233098400659346565352084456435498621961153598142334284474186138380030566827212011625369046165230447856393008194363149882450451894799974556590555728727152952591960012530185664142000895635327906722331666785250475353681450000128851534014901286909911792701382598340092742905926252087349029392055455286066196113025911750939322491395477981849770705950350628930954376634767108572183861634801786618533656956928684710681848813638543172946056277866447843398053681288550058136590138431434751511132986055484683161130192178059024839635217180944794177225761130475330412252483805699003296647177816476509306843501014461846884709436136827817412739625028144028932035432924724406852708678748071493861453206170863652438077436845046373560068866816015576340242527144290359654217251753948737938765430172122152998671354866591798365527285080019808726635512360919030903701083598354584775190127128861032525920307877070942271025562857527629193799410988017683461734954376274631592761352780362244906147179888985389439483268804502987900109536889592626865078092919126538110815705378676880564562416761373694812269736843587532271422797647286525080635847621435008287562087570480480649402620633692640885434066840263566751328076475207330233450994992972006095069883815072105427925046905990407688234191444994661104986476631167511656650814175515543553646143315945119562905464387651774650830788070147317993471241062867796834089831499186899283031440715605785684588787240274221947597452359515216720765589219360231208795220109413879176600124168692840171316566725464224633978211331246957418540451423081408832267891251289678499398422741819944683798391446350847318317569082584253172348986199803119572789766458814100916771779125168538443074761507021212932264737601170552263279165367082300514553137986974416139949143503424470578179808279763458672984188510967946923950356605771407283457141443814473903393565228354543444276305903026105218151965202915152382808031114591366905753954357619512018845224522159691528187597471156616876635759770346555283043771809938948031460699551631443177557251290009061622097793557467383257692948885387704115351943168406377547912771261710141848572225404745467801973625524327333400731423173378669405693628521596819160926850938932827890878976880582786697839444780956817192114215327350113296765094614035769348837589699629893965393906859927835335917973600331847896330133360091697960503600375130943328396931826360596014727835731886355139836266389350998048414020373665846862566820352614800416538257809219936900849769369272792375745752189877684125755134319500624975629673126620221931979946512411709358235437468307896604142637439387243500567205828117769640613453639440339156315887216899231908115066242974393377588869923658477392418372236920635820638737674073325799351150667957372226966471316565870987578967165524541873928576849648789121928852643773074475100554432019527858792613902329584820184094574418407901421739578883048956528304242324031496634320557030347698907685909076593875816264898625731421175079209934890749710139578468340779832587334899224974573803671018164064499285443132288453089545427521442714057504893920434699631497624582479764364903158161457474969885778345789071771158119623152582496811703469061992224364310780910013361017590779919067527347137757127728962099073892558479913766017091036028606029967474611667904438606319317003844463361597221512743947218550894317000761248155508839512573888546406301279742024996047220177631778890669868018869020977023093129496502808670642865647561254430206671720983860949028221784102938144060642819889136614861026765384221745037958491411064812378407214189862953622097093308328301668470082265148193214670108551037394913953697551946520709831868045805078249557704956036012511823156113283248613338538941667750521260696404737586447562150678575553096183492304760309342522767260842631400262979271298624354363850074058072811295890723375121857942155895616841308444881031555314292823311993612719079111321001517534466491519116328372028875952893742336003082675683000770146914714510244598795400588308110937128918374619858192704256030932021886686770497247484914006395092448726743350286275331608798260059713546198139097180743607884427661580701112452985439881454065015494543245572169434180950826760953858840318671552560664622768310344947753206616266656658891762922286954303277365309603034088457299102918413227535878338277708155148121618069681226611602282685517440579059678362011089242704651187693486754212540031335397293023999215081044133759564002586169822744201890679996522530370683764416916335897849175013938840090245609017613503479003697242620224776803491769424035952424406291801287594119019700805910434564498045531221815679030275288494467720626829554042123795272590034488448238757249561378913623392286788743623440374542340841521517019437393196148352474673560567978068311417530773380235517121300053615402969704487045226236790314443140394917961005959278354878912794671548100094224885598641717019001870090182247919485695027826091181966961922142903048736194007884365905181347100545507431709816951380385030971599773552811726225262155441953782520606110471047316909046440973068663614054397040417287709784399624200054586253624684545337026105099659675979275883648147214903956234018567120611555464822156749454165895467092933902367252047888389636550243511313283616134370526378144281446705631274748290266575490151340080353333212074431261226512842532243593104410345062263980831408177495819325903370689816422549124886464659983579677759442607424138689386358974364463323105124388397723451474392781013222397533695504582168106582618299737729096019135823935415671150275369137283451177783748840114490929342964138964841995978242531167694690331002876417412108123726661840856835874407366933057187711616807971162524471104680630635878653643702906790418847856541117698019042358926223528615505981259447167284629607476643459526248610994292865149574713395179536566034114538884109445526411940520438030035204440333052443684947462865608952456658220112601942942581641618598296764370260280985274165847019559721418867286825426203700331563599232789149123077562259558589377314065017192715451706428984531791138350893246720264384561310592672206897034818088956168649858140567734972378491823050232419643030167624185627372053499514847702862794973703257676451183713216526620950215917578350799954206706792664373075742653292330698759363954845514954162400419608682503103269788069307810445299714038018190986235754568441592846825179277227114101976848833978426027333397460772340093213669545976226290507067770067931277100545296516720824172544944357566968004819731114790708451579544787136365207497478485620317706882683096206173860007213666960780496974514626895692722379520750446082066204747785605343712883159030739938265455274933024351452904705923347144260558269168089356890113421214261246997844496903006615155700249961365378085841348030794204824024555783457845065970123749123193125928137290024766208521524722480061886877105496080866315503415237120616953384196644732059148712547198757575951368638892012470760439526463062284147699615289986104135882148852819337218415071312197684172408424648794532165228405792901520863522133624062998240817676816551476313750688251922057140056656999834124498550271782030924268012270349668702454157254006998150045880198797667671670657007789769063599287247689952948328925201025305111502651443084274059894365007609287146514419759191769319224382470312895155488130523090179677127541236692595411972503679181322681897218971227424308773760630173353362090152539732387678058984267254952935411512668207611216541680779044983872101573047304112914299035396905786017924782017890794124800253488699320686462293740449802927576199074519428014579324723622926914108237996849125594864647044102598375019806906634984624477980068294998823727770789873852956163310374190330281359794927304646384960121296000781616102733284174894945120563719759315552656841336909582028041287279828133603572613473681828435221377174925369894711091959038446670072300242569750811539576969954090344186436270804239509670182231613729292344645739257511157933238121179522488448563398903920855063680513413873479156759368172986744961853193319288877809982599381770903450756916263709732113918338098758698726006299484727581773539038231673021978244831444752123398517352412827309626874441517904748782322241114658625820094859126219754283766953059500638753855858992261183582341765437353478060176502903943539966478542925647427867541251676082334910187469143425049263427452002954919559895019155951646214713158542111282836458428732240363554960590311134260017366520179158650737565037502151178563402762082335080008685052266816986218758035910192377720380971765913348891342572800865388066308828760395831467489018233528801730525687970606595293911670330562633392361412270518780565828443733079889083315789214443274276515738216125681911331436693264715111784708959082763562622038667108999258343076250822679486856538759632236991141850770286742296700496358114615007151130081781978068256752311014121780402684762144363886286850874797203620944689386369111803495128755853764600905624737505451202861962530695053465837922628387360861854766808785794006519770783087159274868561243540693067562198466525484672790948215833329467240503127676830172045156074706011428584925061551539021328558683248735724502288963968142229382633260338566232741805820893500243364461748838591516604835639251820587477630783815351816365991750680213369141841893631356910629725100350280206425654457223522202735992623191609831309586016467452841435046687692451931704069453843718277996634308593323672321266776571472993865757451019068386960240829003846564559974606179191369526499324058133161633689958840422296762524656617748141809258249809915392053918817000572719119719336838699741201659683694284235930259972930477799488268811211475630211209264369121768888810566291484166335497143679830932951702294073988897309916924344072828412334592940759610170339759806132139733464710652033330215579494841468151430330992050260283115758102025061079226181841682192241464638988345851913648812031858324776733433658394004403858313612034292611210162376205802043367492612601870898668639047608593307750060561130151348771183637179715482947473296438114553398206201811991949755150295658548613259316454396708805974816551815365408461156995776786564224855657529204245547197852522379844694859081249167697949259845499630346740319152480562386516274674108489966923349580482280797904180431616431339610654237078973613345466167637029356384635321800174341071825528600201662364729554130023005988253666460925731479565436240872233657182074161845698002702703268133332464343209871522335758642354628482551235820970169029484686291965675626244386323730241352801452419711503942968291791768401076931122977546604299758659827291385864942394584846280000965737462490562663105251982593646825383495465795743495717542709958289774817103390357353725562869773867632393062303474555684891617788289596537948125390075025007413566020269879867427344274672607668645709183546611635832922499225287603726201822791581497212600975895165479035281243304005977683505929504179873319256984877998539797201947076521324816305781587683719007867569082960346920498708931122654896496604597102628140986453781308744790645093548982082112561104652652647387107993308537189783384701747194282382598560584035632802441315612812206010436601401809602638722613203073674486183257554710616289862807941702420404522131525631003332974024408299072052054044102770665070639983667902834898685218777153004317537994594154784299105212849993330561048023825846388148571963121980701732411587448051053442347498460715862879739898398020653266104030940197827630294693343006944275307275932844376471049999354488173916210028964800017764537500838917492802550956757714082120794930744907740754872217571788466793038941042541519033145683092883140628458102234779751835488547189330817246785863261321629321960565590133755433257236966858689566768044476990321780126106489629907321521042125656080323083172653190361064210080065845476322008075214822723274626257323450658343903377386778654364857224294272244600532544934641913570655820417955549982938888766807557619773888559192198989861262638311802154395757350840964951118930758382505084836199535733404188766852114465409847818060803012978729271264610676289433321807710417472390453641831969256225809878060775979113137996593110985873233596764497687607714231822681114238543101878441708123667386625041533897207293546779666972831345541680707873633715391569314260778797052601411947064612895171292862004152189436263602172980031117423817137903005769580068445023150938280914184224141939943122507237844449012652944252006338060858151901201429323662996763317361373425968143903635271144956387170647546216653019738890271934440078625573937410772152424228690973317789835515640250314206376617743274939360743451830801669705718984963003302504525659190756975806026273428208388454640129375761483124461910725750332368892108699530630879685647503451722853939187379835203415789640017565539577189020562233320538899567906926265008187952624407596295317859557507905669627888756170605057246659490663688928876472227441250639536081340501719864239239722677601775388183966541835589648968625880479531642489094998807280876153804452715471506761766695443145925026880075553344341527130407675526479662744668321707488065554030453294790031731930314140226838476535191767141520028258877404313703786969207526508629876360622482339897793637444148482671865251705729566329576342727645557423022448316662742337147048630801585195209370740727343205866185429556642828988687814132846971309362888703953194417563455052079094222489260996478010146248414764229076988696682065024414502463696144892506733667076954404885072171601469862477074195507249919711080951767452773887309153482383218428995471404894342115542987175223375098999528919684249056988839237919612842484665481420102818602337722751745461865347639089419334252666999974807021045053927019244625199395700952804906476985357948731978869583396666912249265246890215767538244336523148635747844431449589701507038809660532653655211955163363854960434418624645553954449256434714546546160589381139090513428472195085611745094537884653208429953312930187100785006564046825265134825856381234381502872038991264470586791714180658323406713669849836199487942821937113018400351998241944945880290450195236252820221050086244237888357015018331398732521726094782467854360476534651690498131067065962592658968605957093249168127923454677761608539230121529197458631971609456264403722827039886491638177341817666750454284860056468586915664049498901929065127987615289017605386330199944702224119702542020971307766529556896812015966286224559087430861500623189098111274988392245587604171319942715356567236259899650302929282567865288613864238421571411373109773408633872439800832642931728720471134380717299598774186235883739234260400995344341583702633931904957178029714507724848147803082882304106288893466468803510555697187036197321288355748981210513734992537580898119303860729903107002157587898668758551949723036734107285904482375359994731888325491037497127135971303319186304790761876159960406992350125713096509086929121339343608238708262233259650118498847514326385582246699712715363783304734396317241381070482615848754591576872827030587550021938011587218606070489447037795003833442992612793484028025968213439832338533756181625496125563163848128232130428586691356989799431539324571566500033570233057639851655212372346628736091297413645338207903587920635246403184745097989740132561707372180553027387995707312850506549687417089190160766819028711321838226431105063319734224081662709920152947757441342978453246767940075235995243611793845905579703893624396796144253800190619502662811174450952835367960940075164505250802242274951256512420069814978456199665261860770834156451453955004758585125019236327203965355560980506019197781031213334774044328094408578901234969746208388728370350283152402272110445962999000536921600957618744741690781234114258081036610105790611335353889916639608259188380883617616278578884203240602088596570778877918880070920972554936157373396867154171714560865543599884857854660282573021430983764083025662321010484391926753873017847828122821936377269346226495734386979552597512465216366784689263082015547694735450624602445968794416965936138344925349558894912167379504652376695808334998850288274196114147798606070729123332610773333319048812778965205442819605079240859733963169919003103850318456116508265184832528692909442579227199684940061313056847718714841211811825053082390389957254347933092712079130198728650227606682455601289948844059345515345310075958077394081206920420846876638068247829314704083233636865378355578549452677883941484789948918159669575492098684084316959079401632297016888599838739170482542295511947999151392087806688808101267037040851654483508925709170991822468140228066232896209245713013359745666301664667572280689806535267180051661130417021646510387504592902506817905289090117064729933610070482697461441953696736121750015957901413033513432625406989485306871818149762272934206009230627011359312809959217060825975783520687803553948161478194823088633510570652823692118429371684125015358146156828399973982251674817425548298123022485660629261451397570135289071692828205342605167458760823851714436565147878196953385791036972852729520620247757840940553164857437445385893283634160090358601220115776352683479997267935881255524210908356258027187323639801027324427314538717673972182930930050051993485475122240596670747148832456608882241234032359036266141098505583104336125980674290245543464334900307781798708061630761539124280812436927887119175058157788955042995157143974807511119100148403050073457511404012351081326331978297339523324790163379349603532667587740543590707079872088648289469127473562537719562090504110706134715612830203059695297270091710185968899572889831026527959406786434429434632450893240135790725765625601713103329826627621179791445065552603854911620098103584477183176770585439836457128323951601317555373550954526288441074790987144560501519956560623648632095096660863024876367069705282716541019218801897601451756896850905872967624273143418776252886018752575408137181831527239791577664889812249650998951723619632332497020745856447377803725045983196325859351015020231097510267437623384530379420421214589227436998415787309026491047055301650218125563088792295769083290399870410810431974029189076004065159061198758360429238768144852399524844127675130877310581611232124018614452284790664349014836151796499594455411337444769433117308527031124953503685031996664120326202097372782161277859279347812642569612862207238904328064638815626404638761022066272456510784240936043987452538650624753075163281415971927460761843357228887825006529717278769859121727101372414094907977965967276673776787287539694082151459111830932996870020895521129792397827008790463671507284451287604463908713382345070838876218993695071745938035925294158366455478280813073864967342025328325920116855691116699980171697925700151319823246724306096012727905228362341262590645212973782410891932319007176486247544931312916681884152778383399906186065606216096793936148342879595690367498505493520154382897218908976154401369228913665592581283331733181799007330889475026106511514582548468643192948578337425701992031365165283692101237451622331417637764193990181771239245006199699918979910100616569234383888561649503486612859719596778812900205166453483458765963561448779963174121951454959269563049434316612763910848793872483233136532530855381130460715354581738554174027217224077157396933260863748088413465595112202999895613674206842417128484241197577470316297796010642101170654124697909112989428524199191213985282402511483118492789267249610509845030667523637563565992953526723173562041069634613942047644808626739381497840485620697187893963667107586658832144402061772629963257073089928048065187117094342532365092420622908903473164226532358222808197027169865303888874368874084336405312265955791973135187167912082289886357209364239484321990694859020229982720836308774954174892087392306550556530955777328848766178900069208399046428612188014572996267800399987292643283299393454329001915335763115755143349957389549150308906448229664552861174210324488100541922702588056926219373151203459107156957525794704765608676769617905429528461997140647333069444299563847955338991870926811703138598378094364170413272913534109471805859351051097307710384979040272616500785554978434603571310654939924873373607378252400737035043344067286526517726299210071378656192044876417378544526772341188263893523050503770679653263555195973446906827533438667673118676355183879447851593762035074734671105657892522606594313116750923865206029851250273480077958634393872058603382755547215064795204423511285405517609507905686891723520782289920558737107044155830179796986591832585850074486454582055576224065233885849128599270238328596523249969552889670160276224888077595277207388556902157961215906318496928618638200819277600154979784184494891849614551891917755027784076653537047625242998862078792125537961088006980883109806202274293165587762500639540824783672516064667178250961190596690384463185407108076351218542482954151815221910322361347330107860683363015871200116291199217151648961072618133560425179051121361140921623532166061197728649787188045269191310770670417986193746441757511096096245569849309707323847358920538975267653621570708560354367909013445392618763235311020618764089378985110330032518132981866815311379265059752059853691577665039433048732825709918704876096209749319541505938783914553274115967044518075257065647693635407268310261846653951165716708319869391390495183536071632339456877478403402779990712633893862415604497048979872242263990948090684335957654223191096006034683653061308700282780571325927762427356283559350734452020827368597310778700150173363870746544829077561206094007380664354568440050962653841053421465184615157453664952609671707358420436892955868709679190198604356309440299322827117994961923646884047804290268403267277210293397209664517089314635269944917200001513918388879101803581272443887571385905000651953349454261385254605716308112835576476048021947646505384659792066317134720259782211525361813446606599649946840942231376820131630022084928039534387793358301108062762014747124644936532998199909072291044306733472726611475620583239631026050764582365651542818276972313553793339532826065116022665539202804082130172232288065254295846711008036239308039829532319401373646866307106278723432756970423013016046994815889375351689372750161441638511232698792062214126819199602551239988070819536567869834894257457327745591764487990731051490094957246403648527308730632730805957879687424606065522351153954917752011071724495575897375996931060900685768970390322301336220692625115254227915386086443193172074733677408711787567461872088403213817384024255350118290165115756485171790944634637667749591816533723195518592797149582767740053948771167852413085217882434480392979307650770768395108095791411972832080236563667243250528054915306652171825149152710023205372815817858169843360750174945811366644295555901091513898010971070907054348149081843405719908421074138648648952834776220735789007190513270473852906003409083690532311682765847535522777442063999072977297459524907413301437804860271075006762927379020973212418978098459859818476610896472629377188671413023335003117046631913887655801474397372879317831801396781621906659488024744910476964260795405921176415788329168078385882831470910610247975788761535457606824516825744928604175081721401622533396804020516104513477648285371358612383737373923447946438951606864271312522708268345788525108889256117774552021541397276931185021809183267449882837331983133742300634839182832931198846756558441614167825677978840966202325905013306176857950353003069416655440502560747613881526520359781110907814090462554606101139229787504323636415730848587894550178562243574673897094190048638169993042266703347004131369574057132475634479849184195646870316059978786573275174841993873070082770578936584906623838032402431554866644481366935539218376483429332679573110348306072718758675485744748913397038941629208460011869317126312789811671747060721079835986419993744028990580991913585396119876288041104029010629455266462572426947988311331144244306744175629012271972044161921334017025950871737743563563569900123277139294924233172702496164950711503673833875646049181554423469954653235974533314099245573158963399323355355667900997981094058579673144197364724976294119688070074993838731187290875583865227665357262795302228649765696515428976934334727857304662497241971062114061033152732297084937569715064335204628779910610786887249228750938113386149650940199672034171698229946621405139702493414318291548839329136249075805475719932433314149322105623388774407230829060691438742675537359242636935132467902094376988437377664158771680385129989522376669839970526354143703233031451826164560563580212567168990116152195691783257317535149978036754888924674633870836118496799414388532041339696550685259858340228362366545174499280417641067916066537750056840546498781348100296789179323988355069983834571578682518484355209061039339492321304340510711531536877895323019024149219192759043970680556001378584428322632405850211678493765306802602861563580587851321523398083375172668575964119684617142936858139908004982091682133431053464141534427625281498708892931603087469610899082548857109074561977943546064967839271354003326128169043357505312463600109219034495188462197180076668089761032133378690893035614723992723206496084749965272300311973505214663793137387894716432112275422893812129003643913090060198237266753304874547728302071014997322460394969353124321410401452868554802422153349118252778940456658993985314643970279141198529714812663790825563845231872138745440832713295846886085851756147275659539571852892344821896453911146746412226418012018130288813540396989511927387426251093684489978221511336747614465394955188213886546201696488524564511194109677256746497382674448356646563759003709411097377806259889950665450927500786346351703122383880911054679011470075673555621568617650853253789179532946605273942812433282920339478673131404875867422204838548873027623897649725753033965568072833793155752663644709394955376368179871481150335944083873502347106139394430750617784881120183835812941372948114139770932584730065399689992540992140245284953785339512011385829130822832015225033483387044670332393657505798638744161425716902651317623063187762754334588187718709107943233675939678450115434481990459922719486146502062281779673609611385056249773676155207729226533671971980920189870509430355034599862490192990201959668276832154955773591054363006844724608047390151098325713647831649898243688276677311594798418739359039868718192789256266500494725008324263003812815567821458622225197051691094571920119999907877088580944399166908163317365807343119718495017510451495160169925317243923132994719261989520349569838264392848348451377367843620717174054616510931715262063329587414866063143765826160205891075332635790264670778129207125486598115547309806396755807919124472301692965537819431341323131391175257174706825563696932906632341892661307507781542808179140887492620743315790537335632688295734297316288234927997692187181875893354335824414206724488496645279417599870751913506113168344307736352406257379635348063367185331834823033600457139393549976630892140114644490850880113158715114004908923028327505768600843338605882910901405358168532591973735477489449481080380076659292398276211159797154319394117169725814625660316203507104361637370648907562267607967816436523527102179969967858134636114770390835644587311226887855417292603428893166626118348941651365246843101966357037100223109343784806751295506613886361099319562176266000811128766238587720624379968560300058925594422621214539440892435645507083091583526165548494509147016016302874214346247368185181592526091142253152245084905324361673461735299846811580514487054085982621956027531697758854070046226082552287654243084410791324765621036753413620947477993028478708603926198995031791888998070867559541166330925468579063723452569968363095776192758916074389537489210935892388262167706738901330533289027051861010580897352670397742022471452204361086863348271202576235985958028989182449740871663570776640639317720027797293983644709271400936413292342135934107559121435643450251322213654639971703107206986631508184243942921155602661005590497010952936574593530428070920491177171140004267288077595148589291729674873363488551513988142292119761327306610955099493426991065788942239696041373791210414231471933750124785075577392643921701245503464123374183009945636494684698022609467921289636064508593954110225606668612267178196453332369820118894759913337588350750446404724532850871110448282459997041140049903199768000805249941477643257619513727186848795171066374264925116412695238630536410933819437467846690812131009076845599137805051616513568040914982128389146241499203087325125990970783806868083853147531230528771966811950947593273595078639771673373784623982065904104650251815833960966843720717308627436725797914509317142138332547947755738244961318710910571422561520889905835279354973834553574472446335264520939012284181721453174907687889835215716471053952529070279316964850207539641099703913155424805955940898631315188504305007885383378875009721088840412472357421787270231766693411403188259140589499218031509072834279749051614718454392271956216347125365297990218210789482724781838083686795420810662973637797148964386080628612741858949843236537665281608241462099987159750835357567495462640828973802301586090228605586026683237757736523287624946866123027256056931519421360985738809157913730484285863894915776199654509611622544601830953067917848517907901034970179302371801755489700244290143558974260842694721059222691253806163583609224749967317955142651462871029118309302439829682252720176030339979488090008656785459832763871149634084580767456550489516074675816734797258294868171246368642648607604578619620416445451053478737251638427296385696932517252147958087107535735057054959765597985929804826881866456925551142606131927829878345817905705464346184651839069927353263416519043588137460553401620283257925944056984733503929470716872366322323102773632358334118882935664154737782174421915329974416556582836978830278707150195734909585451158974643610756060544768698438098957126773951514950078244365686857774933162346587914325631241733816084336474468454281152646758801453176864074256885712342541026491521125184023229582918041296702144360921527670623444858062485074625350666002004134034186898168693575597198501855728502117539993682092067163448351635707047976121412931042834424258683443005388277477016134878779673897947505538958350475844296559280748479555774337853701666009029179745171996417883877469875741294246660144445121807430927469972906422499364067854422181044277839640916094254757552462108951226434373300051564292683060358044808184705007359200844428996620336814459733406425090408921119193548566935614990915471280933143115036811655291027259491724437050910706553098834503608988811675473556718653166729556228747941191782627774610837310857125257055963441112755393381816384640370496978984283503877399352329695179926562832769082040425458292578878221237024396268404823507770493461563014015208121761480962744792270901968986739546963462636081031841416948994345084743280575141641021204173115380643890126820836914962647998665468601079254223831220357196170159325812085343344836500972760686326116051665454139191908974466521805837151976688703418441810797310992041100926808704479798340770772469681583440027173668269247628551955420737949091615409195209196221128916892507040407941868523120090581166583629486169986972566350995022615344508435533715396053778965561281666006060126607298881873914185485434499436230185184628973815905931895386743126254461846331976437298392378916564578614585746094575009584568386698529792631140412019854762114305706201462426893086908787156064541561613633825384941810719170300450361244705037609736151280690864751347955977918377334535307244779384368691727620220844016002787444159259733384497718289907483617001739715186626486765958435592012005084474014606536109189767774356093888414496344442979839208078117679123098514710787014638286643276329624296078998827747466321308554948587721676573610838747027091828286022728740271727892922600884707259644324118992831235517634943371315191088533144758593451285432105669346115087992409499645472577367954590475540109039737711125982680572999129171432950403574142123228017999601677939293399842349323311979091053459663509821654499104272921298710694150621329723145188358378760444325632295884509589113377876567162415813057406639643665471390891963586717416347285095017693100348796620829320414379091658574407524407853771229566576020125536821121608366093437105971147875737186379601088059561326644058173057388235072215588394065199853121032286190894018745727496017796246533443819810428620866119815287308926498341640500051779190296141768552751815362395358023323549744444042580470980789057022350585174788568408556351133926666476523722175751428816208366798112302468623786587347453515067650762507611787110486665345147030629477427437663406254609225815905204214460492822980976166518364350618493463757557258575237709665100091294867414836892392826387585853204376192133938595759367649876420608890121257372442421582790447903237634801221082568255026204410826540468666481522992941255027822366973905381302789503712606322926708240440255897278841433560121863636704807563374912744439620785282751572204642002529425014217346585829586479633620670511679486667406334865326235069243342063828515548439734087982212720725568912052705903608114203253125411034881669923223933831096139491701591075724885997990494391395499502146370562716880062576800061781866685892295503052997275681236376604277100974280282886835373304785936525027127992908507580586263017129315462002237790587681446483331761482088093867065727503296277488712562212023915329402453551055003765813708502060943202923111546102015604696486439745405106745063217518673129687496885978722310823538557136953753539516840720967079357014223669921695170268458289197801707006447545069507741061388806004094927426736954563681191642276602498106286407008361078741773030799308361789061594963145256251756267242031236409987930854099909111089550513023437104493007942853511480876213779911768552610433585724946034316494771343045432733770017636051106289470782561039389102390765278569748459100945187868812016768796413419249255860451071938648013742837935760012020601056104155904443512395925900404108326063659364025507674265288909196855956110589959253227626631401787581505767312632790331862824355981989650898465808036669784097261595938839099608106015136637797502820809258494060399934824311038560747023971063115357977114334625440459496059963591120344710588388238939021163247681565627304906251905909864078106111776616865706296376035961096061062617716425381430152309656551717304489914722393789620159820826515639111191298761257773640237932725653009532333455361939857147386209989907866538873651953837076264147817770569861476112081459783614067605670074971767072265970422702119044127664514803791917383472546143401881729989725940974719510448663835657118940937301473946515559778212789971515403894642081931316401551482794712609458900486918318743568677997520166162210772183924818905162639770668235541484801416408282647015801752698345410962198460481935429570168231010409576059995974994911334555771485534475060754440038068285459929917574496145907086569873383147896840886490718389771034304608429024526692857892846596826775213697088255023872013970867940585005147822501189736664667487369312653206621690440228475778246784330875508510538365152952134882898816110045811440109480027395401558895439078492869615635247259147914956811873380505598960670576432342637561295114694044699623033523794768320750972952537065605959790413172133765985408625577642016714260661474856661957947871890192914171354951543910039897801668091484727716567451657483012592243764137369530341536256842281048908757022849239348263333133751272019942485214207338762431785371514165615926464939802723651686553776398208059462229246922414737455392154442710139541603719062701546095064502071481388335551786301988448490958774893649249331857099192974260231297393607028944109138662280907572032810437591317904505280746104845483103455069811568557100081931786755788209639168719823503476490007769612708996039512005705935467992618765492104175292692642991302303920515158070508783034410309044399846128943496194313452208824997370675985240973169760739607197553819417700527973694601767414853020702400769136436859625815575348691700032787567839039157265770606025129951110973870682018859199352785317166844678362361422515189389697333635057744259324461238323282951487516831240604538130366767213048824639904369873176690212717502788835188331111206625161261654316298570038140721874640213002019657404389542852313643448596264597867680269479743686927081634661408013733400230528412896984137743394395317431075417847908329141763972551671307909670221324243845457543929824291371186584176665878628584864135655909279881877613275907606421943586171782627498888103665705269462022841822048022412355704402279313467607402940394676900052210549685171441647615214945495525614030605537475025891169531875024031072542550983983308511532488955202764245243163162792452787116628051654461129181145069970911292677717312579015302512129125978512176754551364422434279080927084761500994262792015207435821360569066370070366156587531119246792578863509230300455564358640454775161549952443774150885125837537036152560138668788095286543251647653064250219523152463376583426957314566581264404891085201862084453539818444458582350561778283312095484791575624364729560926107147451026684780979511639549267926915300112792909071707770374150432072626239081813670969065890507146553608146124542886672584686520109523428672462133119783669875982570374181808365941083938584087110704941693303872382876205054725271770532923759436732931257666485065803117648641726985760948769644817839702306758536475973683595477754094515790295812495257557671846263510231511394555132208308858569373517022034422982258694099449175102657004379721629774176130131375133210645412431976285426829035045744190355122292880988840542650874007512819918490440091454090923524005043998838862778297683116023229573331150779906254896046359167552444106248247741638236066671007560736861004546523893702960846993363409912904350556241575370838521948337878795859077822840370394843041136765384388403270062646001977131191644074935111330132625955086949890965027639193228930027330782350030537577563960921438146662982013721393718593779990779534474262379736462521637499472912973418054562790636227424516417725856557482336773724581040916945043408798933886193168744788493771789448729291412963873293953965042276743911232196683401940227404210014104408618103680648817583433331850308591832785268256337253128678244410378738824762469964476024000807327942110589525181002745429475917704252838715683275506016140913428981622730467122344400511264594044649890288009717140181738135401542333710107491027010161514486039614244231319551911068556735841049242382107252417802362378927644433563674319541654425228179844594131594334792291145641220388755982633493280880125032690297891027308528314796258950258704003973375116146419553347375467268983282492276673051469243248220169061485280154552862303516785125627788702221840100580913385007493203205118677241962336970956369798508452204305189801098315633331625368789648003148756185172971845543282494049519875004273309173137932514478481580426064125851255739920608238114767392069800382868966077254976614134993795993102428665771861326624367859734539050812442971899986953980480216192025357613093993571103417001607991763342773229957468003420894221497430099883922615841350369382439185169585467237425525168368124736961002016456018645765636120074728984839927570911873107623951249568584920505760479672704962627613002108536351235067891686538800165201194028104519610101337343490943007966951420125727588652106777222409294455694313010359345981527329316914681278464198876535497932159268933255869889415666817687116204998667688725702985826773592278095224628408147017959410645474659747312025931816588168493896717150296740737457956100392115561472066473157014517068898310169083058567535472949034717642116092926431081114844750092151186589157087881625385238669117228364733739933266535260696255202206974347648145708118943770578064965555959282116479774801862471860003890662108092612629487566046990490054213508454344592608868770812609488424220226468915761763860012529320097158384676774839397576520301522176776788257661074956280984541790390756467696794512794616513790154495783075249967378535421216937434026700355732004188832591221939481970421107163603012451453056917922662124861996071773580731320128109428036313998495126490674215608606406503331949448234483570133720539722172175015688842426988298826133971566704790578116373229240035383683586285262980492069179531515099964017799052466503053330582048491644755351685759041192268293497096234920925199350912218436312244718403861251572403343194109396694071975397919219039509385375019231716398200095058696127497981631539174864636559320377439534755447558551488072143843000274258642618952215381036902642420217734355573296142094322970814110969561426036526525137881689604701773865527278659579255762460062796209329793934096309262743927262645602476312047752041982157375768840637129774357161563186948283301600211671865361914481903211720743402243642985509756613309072384419415191837940233198675873718907884220208738682061902002614007366891134930737397729146389469277091297871471340591276673560464255183684168780119863884576111508574935926597127306625448483991467891641184603596458528077879109617676879097204519306913346438122915397136720176666620841555671201784291284887117687954849276663057707068415110412585271688575129288325059109890654333449685807789301425481319350077663775229869920868330330870311578967582244078491985100579881249281246238905043298931009354606555949222931219829289733877797544331526975441827487567364738451878353109408610336330036948453460236777697788957007284618404420075636206200282168660283943186542720578998514193596310603039148325961962339964168411676256038387152748928316238031435191903087012346965608194798017770915956200638653381692805174118891620447318184009223734585752051201981966257814692286004361656510753901369008898278951265794838693887724235656323889968408422871647832030295084796320872344389341155158468334101721184897459817094132467551029548896658418389503047020229606108442726650223105513633352139775986573820498236410744906969496818749911751936328891335701120373559926597682016365577103361868439230520976789908510814877797707957492579284291307820208707660656427024325907161724051365563619989176889205490550713806256874876609240133442097152726775397323550439548150954066908989985759338304632005953331796355306131121235794089200566313002720695180428133335798385508728422931748872076546827501607209523720768751635566562452379874722324614415655174919007117565912654013672050622794348055815538574273857801164035352425607386394490058560681209532681377722378271541987085534105480148237412476948611494309076572576511216375068271440143243607050347192890695792870114706923844437973052533561142924664116401465695017231248117586354161855420196274511847496227644250025265368207896078202292135783400377083930618255785402944623581927450702427135719477292693054977428728693825692173463932820426413122506986244956145854585692265960295562429487328944152915674992115439322471482716557062347182314063158346432080467382309173218983865554542322787898801025294272429288259488944539975645046525387932827559977684428256833125578430856762632200765724447263403633708266184526398749658160090464958540587028139669571356531129240204141403949161569406466546588772972846954607049328317578020879916827320209569741727961854101182501284546525284189841473957090945067269142656154969358389887245490045355254928783925810365778532442712230741775035924231705027712651604319938202200114781165126344932932156040784932699919628391656251863850567640270904095827676504972814538209101018031325249630244800941261207572784844043622672153700739660523060945250069947315889607730473339386719553125291924797974078679020289737256937255202531173268055169241417262115874563363996294862041784824272005468470193150418457793036091497511856821544941214466767438666330278227399278929381570150742328702569227971310758563934193674293714667531909825803379174555588185866504146809051912469420757877751341449772520823775493278902295429270251952064836875689583380915612073154197604636175536344947736656035459731291931051048980709404246690003802730992993909752606312106194459934079974923119410599531056202161943872351031919093511007153390580953711371138010229557163895689853649858470399479269673848464230358849509217181010308143322595897870628657540806339993238340709724009956927496876850258181577625407115639718278329484992276178620118586139732147824637140627843408284034252510410124558651289656804206274368663726694652537363632585729343779004601174112263924888948179781416409856984228798633071473085260548624994656826467738645075898480720156352146245589844630254558226280419409746447115671025188467622968162410409038368199118843483616089322139071980412697524509069719301938534671422465161345687488608201264115014918341716515288310792476575447077568922602472268506489867971497759181941545283059473015185737643950686704864083922669901981495499676283694254152575656061205839717192393392506561090238848579159459641555714259337884402750905195770344655202854262930988086265514409871945003392070240070518020502795288484495351902575811735000638286414807657905379220153091281046782049160638445762397448693563693560349708691198815456277534292919223213241024445360718816395335603971081449143073068713516776353824967779627625411842916871006403238589667146602324772479269282848660089886389475485839347101892197086882431712813642126395032317300552848101506096164891993014297551351727871732323129699470518880948620972444086120207496535279987555429154340143289638606294217709521341255128502845412263953705812541383579990267680432259064823867690520233062979567019626419474673802830274530719622352500713419929967319793208336999212011267282091076149576665139808925056102368279177898353318858042304001236692952014978494028522497666083459661672246315492570586846780070982209160652048102235190562671215759926145936369306189680464736756744864611768964830629647288458383229570337999605211685919395876313084127578326886661036495478786195104406731774050851439194786437426143732360785433805565432295245972758741222126264094609508643936387421967842310876098661965155769076924853253629214208166037690831207381261706801185888953618048718048833961325945179451775333524893229309494589853291995280460113151928903386869095378985251642083123889113731198599564495987186753875410796587598543620274631718110677577273259750482132369961358715277051152012273693977396303478401982460672705675417256806847657242003756153170064372142576783255567496887242817276527793825885814068463391023651541654709639891825413514963579033916511281754100752057840944866203364134599118177703065859993723346196183833339404582597622746523443515964547707980163505627337240152765559626981694868394857177669533560536129860255496930013939628467017058394002584181502190908193744066712367224858038245554294974801566393457357957571465947190596550857389198136655323892258104110518391911260346265597530436411466466654259468463119435782698644296565378667402066698192089836498009986378824007214812966544036546384480840070833648407097555053325579358598601604008269755410676587880166478892455228011174238602713728925388193920068112982048970494416074344615276498018736053554480556935027873837996422025210794580930013569797094877360067789779477467404034814893835524069993516299689846725814144665739790536773187205574077028127386801720012360214332509085139844338200999827900079340648689623177253003042325193239904732914099378825872896989471558391526113273934974323585239110788998647240877515543267315752559405111592372442551107200002478038942288443252134772694875258663059061525994796342640751419037983555650080285539810433467541180386842824131114376373501731856016407707317843583931753096083279559311850933924077923599320231732203562330673775834278315402087156186613810042221290442089560641458925467020511041715646924159922004033770974019634291033248733474320948323740643184433415704193887142427031553354977582679774052988419978051857855218895448490375472808824563124020399869979950755814358988680766213309451812719746067602010272883774568450929080337419381288368878921922725653753573609208853653555733723030054873262213306386771328549906448994779249221472828049304957184403871350565334880009068273083637667177071255357556817806650644203891137785719498232659656168046498457672579486973027582848143537027440208839638374265248334862422312923548303502377690335525357883968747407665950853887305118495015241191598818580374099899252763188257522179212488937145027332383205883774251766361755873590594174682498148410460058426754035343405632901847706885528132076429449654641217808676586073986190885837189609410005821230721773290904638138935145926337280046131200110864911051635300702552052379088344807850261810122521240952214449224114548818350050038936420516648848787883138581394185938710762575286156885395322518149334886299018801133327142654593600308673710444447979033701012490724808801739953979368926556567337719620327892932850165342725355057784087430841248537296079328229009394853889314827329048626151194715828833953820250256772453207921030750689001785314242911080851222914495486492072878737635916191901853327640596620472476906378819902124105632064410931246071814374319988000624955590575639847995531540398977968461599496433313356079035394660368012235226993361202095057158802872936412164989304378283274229135879653778630018270219080391636070467840728347143265281421492221170662992026656870070397217852492039973937305110841953051165127577422514888107693579661621194976168639693528326642091783504256773804213885483630859895282285975159921052887576729809806048801793895919597942775943089228375207830540840980621517881854086986647754084665656474195165637860198104261016792617179906168769341804361507298114748365896391022368512893884499453449769287748909996494664162118902885173945984554346969928375211773572269953405854030302489451377038604877686014600743772963572718809341371697327448685731911228054772076898256053879167547442003721505003370968019011507634787923730589550464298675618362002115309295278332488454535681546384605471487395190871801815292621739148247663268177382716100453651734166122340702462670149819260347094604283297665557253229841090477400444041273701992690724404200179039721194271598807938977511540060946936491188572228096445458946187396842443752988214129687775708288475216250920098821814486564470253762089016230599268730003700592209513203647803062149296319175738408055956375602651031174045290317299336361296112800532870593682530639881888302925457259784751971904134032180728898005230014830874899961808605209699016941118591129421971173300353960450777184791139884659657330931523706279213615277796318389826217376274996023280792834074542652756911489737396730336748156303008850350549331880939233105257474433090987211769164733774523846186434905858822037160009626287758065435684308415278593918460931186655329881573898362204718783781637972850988659933841895711842334694460593739211603763923818792542274439331731791002833959136250604864533053059786863655421116911885063704722365127881934881453346028724802573003279951414961686057644073188317480645239926063094442654471311720749979296786272364986899590380707600124610516717241643816131543871790181839212911985229809171519661256732342329838447441112367183940891959019531377580408307543082441048036825522230224817311591346683191813346837612024225075906519776380346953565818859327964945814691241769690985000338050472253374760795624108695538272364237379239397409698926618724388324892809512147875673202188215683106475970648431662780608458092864292748321333344542819021756474536823260989699795745849154185890307292819437001155540165550584321481643915387355046919337267038040894452605986464458309353855908768432842997999424445800340798905544434309420235561225009876755538610313121032417764465240624584337338101536924910700553784764938498185421360666923458373611707605075405262290618838863178025647548708658259663805646274657153435440844594433793532371324015455564038576826170078218208001589920653694793073066105273786022058321746763958021111246468930993489698239536203757987684548417112800469481180996861066762205189039214097872732995793368839829998583640235915659199499244374451519174628379261625979853280560260764398387248344431105947172176731189424354236595272855308294081750412895859209966883198885330170889208247358018034621811945213598949900205235345016053758782681721577497972254059800503917749797658309482518045148759963989907120036779821591343341144572805381564483576337616434998688175760881748257112751236295633191639287697597819593728632831980624088755299945442989704511391510423726862636703374117640991591109921186920220381840665552942185400069244547755326062291431743664824984017265901803359039217716794617570680804431031440696328663280424670620578593663120028301691007525159525979733697700607495531943070802525248136046133844986361913118218779118655020839596133770852081489662552138296632519706652517239943840232347507248400479970989827422224448028924900186294388248351906683663458899650671293170939028386165448336207904474246117061520143590511863351963842253880611949956711007973525928177269768576194900822995103820618769660912998070471956548242914105264540360145416312570210688754488946522657679480477501802164367172979777826150768009239718782732879887518251945123492643213217968291356624631005595886321026859390576576242228691213957260810729432502779331047593733459359781789268136960187544183824911179870281657411131148802448693178183026898095057973824648674811337884299836020313165582943036660928424304273744095283621106072684364536029323053008236954238472033338478557746650066461117486866815382216516973898604302952137853547904673899784565431136119170903444234929867990005828026192060938259296930241859697603034170964959042063186841657183925826672549016274827118811267793868606629979868404367986185712328750573490527569498954890052445668101976660289766913783302403854767235716685622008252028347322626496561877303950248187600214717051463791683999907554731159202944957606382771397482097599374928688732864261490108001828784111745512518191832978207381551126372334530972102345966942934476041279707656518371062318561702900596573363306503953231737091128751592480157813116418744071256791164978317072980641498529780205186998214091546261952709081004295985290492345241031827896660672374584795410011163466385213002491951935184168780664440448238382987822540402114063223792701543254088895992132953864743272669178373892237325401271244717251465003349637188384959256899012679428183350110417832271003660651010739982648635881085937028978874579342751265527061377224250184415251084968516660999841204686862084948037614087926195231843052908086286988798912815834749778998981843469560935915892896167543966766897351365301626423061352936480085423243329443858539945046745949244158334916548950054785296003657928398906747912343194489133830111304684389960398241401484565158122606294896711794553876124967446404344609776719655443845262601257621533940335257264909354487866257592603639463864819830104897532963354109838082880496617676916361259130134832523219756581842825710409677385427051400433138890610092837649283711970732776781241034283835287398774845823747318933392155391670909434140094745112959750063301831989058446903376708963743762509128578762065254230940136227695109458842114668594200759599862001699171797692862987898332172471995668265622729202977510353639820723416979590700888358759084231066334158122219687997236169988744276319993373850890010972770871679753704247955226054079871194969110946849344200551131921575114081057488805381495140870886771059762436447406093887450461274316670095759190751769817720963001734322978027011148356342624395330226523439022758922845413319219436397640622731685463723735419747238987317863208546236752043249039449470939723666798340912308879627433810796405419364932309351426572767221824863842686147105675224005814627973607718772186494304450004831127981533247282075841706490619285522509720222694566083963364550739797445358446436767263479168241147144009789571375507646548276433317456962873439163707067900855519891262557240189119850182968540415444625333138555687425392423973795746361233532735885756677652954594162912760710904998316579871268209419309998411333063418760784533300271062527902680506825894012489173148554784869908591152177455804825250472424390678440452859321217899898164480660236957155981139163950768006000670919840123339261877585961631434570927541652255304239735382758153338022043678008679187918102114648619017100178194859438394828894848734417252801468089253383769445559352410203246704916207716923868465242295250747948373064241645973775186645803053708414839983221060174954846332732254551209572738980665334166924641079405709105807314379524099313450026120821073342031094973315465733751383305116932697546071847352346249409036660184803380906822195001732158342866468082184344333067689987975477052615577688105658352862597871908485356264755555735047477873826095975333116808957182867270819773312872879421170292123019075337727745644837075595334893044372196432693258183068814886120932048863112851130962392882601868717019866943664553655611632321237726237139272662656794214467152954044981265394304076052747731526101361147946181874985833537125000069338139297885722240463961091275467676750394371620723391250860906230173711421103411537018797321748451973289983259581520237772674922643770636345826724367271389796048349267036447610880457678044659287285878347101065465599391457957406821123661642527596681887978655376793330909804086371871917460853257758658443802678695748979231109166559723899172580273280579540026924008500662660098766820896136708890431430736603684106934168044591787824560358697789916183403296729834820675631838181582059174930494840438436642645145296352323549035810875485184612083638704369530038789675150416991146312493798550330106659052918672336443173158179266306933267748693123306243536459242310314449502343080325867038371814326925812844380068551063189541431963832675066394734849253383737436239662401390107062887970596454131623719661389336529641803058994626143731071468943442854433175041142422278955898313193145620713612467476078249392979055463877580418733010809712083630674082005158545488433428571393311384693433732157436797877840724184333662184455148051418478696906221771194964516191658133519297044786258022607257421428093039263214279530652264583422149446038669640059025547366635504659401193191854919789406480541479478006341039195649886415402613339930384003473814727384017770778592046904804381046320013157721963307706968627104051052972090021754571382270319524729380472239539076821490426751331937813359685924656545031343993838949388811662059839829419834564679968459497136529873154616179235728630646898771462344613568542295788179815810338134173213504274058609009473918439813719309482651586459412268168084240178560098990290434169874004600956976756397721658009938485439354301846776227588358453951193834041057559519141901316565642013347847750692066415231108091283338405252384221790285666882311266872837817086697124450211526316191879020051967948803885529853979362794227322956561731404488604984613031890601384869658504088432477003156462900929880773709790785657814743238249348988313138422396374414281238411581516858011618938410613186117130830312795628417946529083137017812981217912262922902100269242535167774963540301003391165863972830989582351673360274141730910523634795049145169879270861848908511626990827500681960050037434807637192460078649596424633261897170731837684241126978055107112833280482122626439831631573177063190361932562494213775624150253764079247583701098628299093649026347144563053157928685809814721912666182319189895731026971094776245017313581410181819081418516816348436496195196838924137794730995272776288931777475635426879169011674025200957529080698286583837048791770906498447983373048934027072779485127460289350426304579997352640894699188724524085582107517105358253541182022107465696730617413003003609399820748482562655169332478919758956586226182447227065769994831313629221303503860654457099125040346668000266160506399948805074998939072043676232915816824027808276682405625002344541896880181126221597788730735721249232655529977978293791326279523742264886449445151908438253689012647465733913206370841134619234982258913327978923747662948062236026056538303891629328438169296830355200805508909799897182256166226780600479044113609882094490597852266553562366457705241257655271671061173221773624090460894516748339098924577508826185697691085371813125430126699715836970993077521413785649651407862610180238768035099887502267614586650903773761481569774572379988879345565110964316632878923383754356336479318957011778077965780256799120158033620050647222134449222355144921819812963399469954949288861821268656603804489022710806917718859742418284892929436923932721768864491856597703368788950371594066606524413650950762604721316168155915616192706762455728847447263668210183415584565797328987774420860310074795630789801750960062350455926974470040692236149421521477729815827235247601303208683583765470379915398422480770933941417698713841526710133215068022568179659721536513091149263178693185908065489567474068113596093061529472931098092657682458163060915098168061288313462505844940584893578665938014712458694516597644400971543901768717268240907582206353710272021566075024884601633282860267009932076301161131296859782757201759975585956937579899248352857534365670394218650640934145449714274125516422976784472023793104522820052605802719321780821063392882286358499701151831680084696429034255096675059978681562926673915024170582039793600050276378302534999925559526340181246169926527715168111978682360918715808028999389188269187396858076193942390684664568475568408096269808908227691309808316555741467187693175878109805048701240923662920075144935196058482355491586560763177334635547663886501094935077126095694375853761478513628990487926612985452876350577397915285740994092303987369342813372962150723393761237796092743897568894172055942003714941946513693750079943425613093024300549925537154130645049315184336474685702642367366567008087418256555531928083876845923330623504518811535183617716340972736684180843975748569272448422706190720312299392619244439453066846606237044572244327056488967894607594813655077247956097545085456238023261215984236618067767636076389871437372085278921692800024059590126023581486782910514896371521433361037209079824576568142849300854388284172492275317425994025034701236378357639180194799467167482683991329546700169581258811086449449391279317954045169636220603661417219783757904397004593909816971767560624862736283617521950329196650933161979338715810229347510048213759663737860304956923256180529621907073230657361442543194384760023852095552174760919840637065873867427561823808335132023241985846184727730963803807014734011798365044041316694652351794924478456835903267434488983712351299749252863618644837619240116178255141891905525559317846981735523243029551558259923131288113261182510939974618724294185869479494265380289231945001516693491247485103219539601242530703114594446001765733605981315433279199528216321194128288888571148728791882576996665583236653673924633215857976680334976310874121347716133640273715837451707940523053122614584496066048678719047249597554854604640438382283204292680577901286194201147727828760824876317563878061853062248614343653718756648551281191856184078994796441595245134192083133028465800046203855892519656434473052399643655454099616256407490779681368558787851188448341102105694912344444449410395310643137608167628433096127266387087459908423684168554293483172086150633869355619390101779496084962629738517575058238620043452546885942424517002375421389499294188851642478847041246737177014561496151930833398112824800948019194530973167977906486474496056613320285363108278977487911011110803402126303123178428114699815252025952364871200222167426564268258573190253834083691132495311630361710430336635980197200773879264057362070030053682896326624221344538701623135581752033284891136368175645216386820681141410071244369905326936638725251223830187645766449201705896585285416777887801203807899971969679299413599629791860775732862240035808796182264259186346563025809225516404432190338821875207862409664459160093579551921581018688442638718883142430611061404147700473864075696052397698915433467646085720144311943536489722358213341830395718879024731835421025170599645152537961439952329043413378492391872370835481348736040021558085812151694295922507536225237173122386510217467949837234948625778987680288964038428214910826620647799886218828809381428718497687232304413445707758661592562012570985260392289126122762696467189453086264806397429929503354615070067691730650020859772887300173810214481653243155592129385830426963933409350800583974874961203598150411220100911074561769158328252587521619683821817439910854346805767829704972297159734763324363021889773746164080116331798135865809244299107095938313698728079326937401496484244556103312663333388846227386168508352515581644536679577723164865608522194031473719835466904053678636077287225045616452485987002078552250637177973838681422002251877603044833313045731389040343086366106605520180146823753751863213408937260471613567829331729157444808771920644910425289880114449277584950163499751677825046286937037095479076914922860569920390377277779451047741152359967232486153029128491976012929520612686753547048206170650823220740636901601846895730744421563226485622393781335102474239084793625430805113309398090806714765452882446827341172274978670710641031960996263308014046425859155878909796606757660254546448855093273649515392078265627028673308053221102889491252604484569927717225195777936207550677025893820476593512897835548812630332110145202501661501620517227954842409547904681706704222140427768450734233328820870775988364418963176451378788636085766575728978359961573302483771941123846204886028574226741960618283603184729213112898078219863413198885053080834157261944419242627196341170195552428537817997800451450948970563639226021024135249865655221100072931405191458382268318052719124139119839363825109491221489052011992241502363134757435866546345115357018754605907209125882862585606305154364388817833267772626102693816088663222603995258416262882303686642244986509148804458262478161110313039501405050409564052526817856915397656341191056516039124833573078114969923326648407263305217188738833291775954107271871853178324929386964579923073434748111982181898336894207056876920507484731797364357261331182120229542266456445628877304570230905966526676920822736663803851973243995342065850005958652150939345434228930560710120289514360058821930425969130853878064987226895487434624297945381703984323797890132293425283776035136636754442472720863328568151888378045233959142158960832478543346786521760420323093399412022975538027791707874947822160220082235346726831809032106903380920683217540355157711743891780144885803835106242342277620566809515955885323069074827974788677139194405755067565982475481680336317839815769389177586226804702497403607066580870218084091173151780427772444341337986045049401322632376381333702311183773455982111133422045190485906817619563037965052045310386271694358053712885844847590422949375370100013667807293799222216706784495780748898707225768495939615879817017463780167466588931420015263679636271658640966176934715805177362527690611410997416216009465790013495015863208808175340791463081918041019537445538597015027455758682695838830977511700116418960015882614650547549766165546741177815134599528282093316969821175984320671145354398193180243569664837605895488907305476985458080506995697855641419518744508371788745422455528656603534095033887686154239883964499275501091158051413347767968971913229683529488116308733616283244122198144429575680405105826662271016731562566577440692219726592998154012788366264266127493722326303019201414443717383660108311742299605588377731040255343422662825657121001702355584468687353112669353276196586029081404924940579018688182979320954503353847853810119335154619817854011941916912605808281571962715509380101250495997017903212077406115522547256996914265542619935582561975283707132527371784459478862632775310324896019705027333547590721489798419129144766756764826160188244434166487178843606244988163354843184225861780066019151096503034957110231840312193206627840673543625800689413274745769331591301133551968183514427693313170067440091126256177762936044185708288005320688517630076262589504541186773283706880526755389207088498723620363601857766398544905270852936717499444681251776194082261586987289005329511961613474928111011739608258937095152329923859972618812622318756902638666484895821816942683404917172746295910702699572279145031191648840864302172460519449183926504324298630296713558516155177080042978900308950907571198919899505693366738972356824357859270762224963916906763265366931298622906479551241682765947380784070905537772232598091299854158550445869230221654334788477434156194564254148362041142994264682576282475672059499438917748188573653035635786159063014008190455288658506707523300434041050284312021897806948947805732598815092775354015993215283233069813136924267213871900603828748385950473721935948768634921619133552125548644355514827068958696303917537928052541575478219720422367796107265887273437953890905845008653912678896975536330994265870298779688612987347238371186156116793491274570510271980249154278594703010650379229229112630924952375046120905278722302602038016276866060149652741118956563438512878558804659287374849059768543250206475695531395066957828570655704661550396457540791630213712068927694937785734733239448987565560696133985249737208356579963848551106416659436699394784392671475594314555948770462817856466978849949229074923984452057977869193139639876174196907924495338667376459129972416378158009200246035312646024591388875506085469534835802646530450629947709474358277809457510292838045657971294526175319238287676843258967171885975093580902749230248642091830204984078746565000435683064769405179113226679809687498593594812724033092209133572783096904473806564603878035870693104716815303103066163017837269957932104493456034857821153802338266821977152441698702281946601074430538031491310671161414895235057032406405723155822019062812563787240377510654730058875939675581884251837018261850242360993070141196715069224096905784584792123952891569678821193464915560736097784544451654201178211677240904552348486485202933340434506059949644231646809147283986770297457580109891126065134342125449684434128682170196408235272504440823114508831219790527266524040609214095867971512869011181626527666412976272147467385939788107222407171002275948536143192942775203106614007176086516796973702670039419627607616214173103480009883637493520201109390113365142825275309463616940656865145174651061871302743813919148767619011477858640728237836301858360318184357930570312536402632406999796792915768726248179492474923133367478147090166597257799569332143254142057343633592295282164638593590256376054936927905640612726778045014945451366112164381220377964998679061122566943021787334582510361231226007642739682004636665399402135265217941694253041550634153128743073866017673962340555750268754917699018439070603423230752291952754672900629973166685059063386910746391805563602310482873377041131999348762279327004344105420722639361725890123193445925253783575563657149874388422990004461019370397122565527496696119264812755506532258043151902289448406665797652866747447533480542543849046330882624726376782621199010157795926729404148756610881156677793381169681360254388396442602268082611261037601003804375892941610247127808069838300545781016148769922976674772499451340397101675108809892656472228889637275077887841106061874088527329371482118552628857977036960857240943208865408847475015358285766125141215696241225434428600777146016842580452644806297452603833382914916690360014347759669642902764713104212626787435105314483245804074799401632428559306093965913932776178985249306841141684723928625479811338634783062411955902564577529315605197178393600201440848490317403559194565903605659701713341166742638759447439484422267587755700841215308671944410415100512765143422426096374233734482704849217572480448116269503147571389215997196087027776480653649031330598638471419510271782193953432835077259509125211953858301719352982013267283664945722026007345624367795928927224104671760899497746669192582780800409618336316732877871513204809329400777747612414170811330296594937181443548838427249386805927196702517600126681727588634015823402776457312582520605139606778514400216841323740469024351942334465348227814824137494395333558221128010198740609647488643606553540135116644139890447943167267162606297289477722028626969705242164531415367867173653358101449729956803949360196617329807932088657826440149522701638225582153767546720472234392642451790391525171489714173370135633402683545598859705726642141120371428867770694317619133235729505201140905963879880423750773782652124986884979577466150143189589433332813838058254852372869070150079035588204029286704121063579646732484787524157048140688661845360773446350530326160613303625018977067941958229592396746451538632517499675440719082484114564588565135856480824326472704834051431399460560636794172752165909013674411502328403346902556084780969746316039386041008618212015849110995039224473836259093743520272473209535750295540112127091544613951022067113051752959758977701161480162659076260181566191846395858143212542448953118268089309251792132030384149435038093868380620443028352761004137432521713950538539338370612365774810152367698718603018522809054813997473197945879436431325767278130688088610175251261922147952726472486172042195130120478211887233379495966342171305222307258429773276948732722442394179357462076739409038302067725603823469276922584464418987534022516367947942074610372594425071017419874060826842231056105365117447940385588740341529466053512686170181199305123814855589404445194711666553651518082519516517102507110419463336922272874394889671211658694716587198551461676082421685110484844920745705441558775118786946311962350397708350277595517541589444519497404241491114100626655954084528732548369205058067146032647759716601773358879931480060642050850145335920583245101506633465260777888701045745214416583692034434116149851746336106323673408280891324812381565374133168196922356708496360867240573745351965147043130216423012156525641261537174542873041195786645012757379446988434848064142480222945725084433605188539139118980262791112074782321969356927910878911329224604268586162177752692130693764883149608482848987052033274143324785074095818529279623318259383997320370939795433671106096877815411406898790862052109449866046318346858126739279189785008080407677317858535635000854524915873135444756164474119573394048454391874496870244238936784989110058023314054681845895992857566643606154968742270070194935244784582598369956008242563524179840653876079602007229940370925187269256994981010806385771216804003734611476805718812016444682798904352359173325642453870557665010696744532970238225280762371566080159769438636418475719777886813920543151260524957732591304060114485673153549957682678801780187213986330684611634533451822274889989439010695743583130403421320641855406128304735073669725667035993152822780204894905260838628750273441529799725240281745227298959354669482275411296602551873959979367875359674530383846644173379322536441712002429806701318628943250094552697865373883648731702386296919683542903941822824232363213090913288692740425081256963527550130962668355235642957755521505473335930832244086395685947735872413069527355447521987446165985655610919784481006459325376161453674304750983286459701653198031501862928113764721845918904945659876310594346557418050009103027118508590442272333705209421361170283200036834244195529435301374143146312594550183455534340778508558145686534045821059811521278737352902021750101553383894904961365594777460277431634661228645585902097499015715996090870080118033600246864389967820457814539684953720096188499911132575079903447801060665659712176948766836990716117622660090281769716943597007842881038200082693737781556539709384632857397930076709935769368027952499989295303669791704347034012332295468322727213922958301669644998162679113157698388020723229230987954995625794275739779476031061010513222645999126335572968312979343972756771768929836251493799154636354484513136294884521069209314849169351587612683385312723240142900994436249610332121623759666349669276320641297486745390748168699486892972221052095330669768384303397737556341644682925650683322368784693547844419065964749285317845967333803985739665636206032656136040274563429063276466311429376882431250901470762729556315820173081340939404655651513856041983759919521549521850073369265324863071903908699848139204569181206232417994563982614389795822791553969400012397001574610514627350275536079664015799691593927466036453816778968960952163876273577509079558238374472116963811349889197854412479678722068080359805995127809053292406311015455929272535173836448439030645654312184660851293199240197995861887763350297013975535328915718921018637649657098005635517878688975414163072281189038801137106446998605746432101065639083368761808831365167743501950451721025175013396448565837935265482198775411522148265222158577923391209028669063059627177843420155168737557234125405112480526752792139904799807258530707945508655266229088400076200303089685641595868191309935578954289866579972320597921117055867546139812072569307647256177335385071712113043671888884698456363920082068019309331050406828219704450396348664713651477392018867271266992701998185997507597325589957588584584671051307065261706642238455826449377234582260092717668989657661142566020852122806727281932455021078349019995570926114184954270924895087805743922516813614018171309401847247262745956557827670720858397870574063194029015416736035146353282883386312178353308792535402858710277434196082344285212504253040049313238932675575130757579085096635272650233577426068379841112977423454157262350957062142246535423856319663684786061338230251575978473727179219897973974206943340732852430920887323780475805057666303996616927342492316111682884906524775361244271986194162457917730971364548780298602540145374360243218110951636637765646715495231194782744770277300008569459753266588970015678860489746433258134910671218414058425651664093407564873921732861174308157002407055013186160470039534361023218269249714171164981030263209259552214444663321833074911835814797943816884621459706983094544234603775219590689678085378828748721968742518607585436709709876290864511064483855499268827477416024565750509705872375879196099919511019354084004766497192592451566076245323599810319924555497076491774960249788702501091190322071728729533930803852290767389622708888420780094921246038245775913118867276684817785048311325348292144847924366673695816809967185504781795729186769814851002313786417009767878818349328968885148867599394650485387566177739024074434094402856038674025899246715629387918970652600269293755881913489744067949525875426153772243406197342969469815105795753174332878487339167569029224055461924466083129665534260584739872900302662877304701589149577214910176805287992905952653192369793058032478383098039513735998845349384583353782972734673825439632461998518609752650224687210317243640669586426775023133683862749953735941222391755152097394096680951178871498004217741659142211211721085645005448456043989140522199973236537002826600386374500951136855928311107243814819082247221019590997353311874012357292668151678362478904254709289455324554989517199985818546630620080803292875669071536305650596628899597425500682100481141442239568681653598588550984181805952463180780288287774464821621434539965495683701222017889198244281175010250689284460959885118786809793814767715607046679119315200854741261503873891180807014429865919861245806962269284414751154519380980992046915170830208622252859508632215648712554105660126926507399072979895297696580681550248529160648662823042823923019831845799803318494499360180386115290362296478514519813121965971719385045759665086555784992250862734014366598810174880754818667495456606475451115577667724905791651353767449022156874356174626524733277099909070619964747171936323386251155594347112890412026560539092179067711650761216473867161399314208152638980389489171482615654819810354043607415042338772181626335649616308249020458086115791196561695576891557436273653181248129461846607586138168914046151032947372493695461709216757624045798452112545631192376804473494125111255103203138090001439980343889231204629698280689533814502020761458540276775436326200143980227315383009317158599374036875606442939463677569663077387517805710632096020722598114035090053283962343379395693022564807522046364373596181150584076342562013979939075518994920876995620706204097370982979389355556412033208490798022885729163255782085325994483999923989657533163810505083593016033685479855391516657157629755499707355960865068387831164609146325039246818178991403342088641999387598343546899766280976819087109971137993857742693186953572544704071839548738862357922152650706492810385966504769294868146241075926525376771927299629148375176920603069278133366325228538260251174476902927909056830880055929533884532437312224063947213275496105148838206355983739864542842141322474316453577551072749853534131096514983215702623896342779404545847568789032783709299397249567194625668822806821560444757486374551260500434002469690401071104713549016204025378091925551094603570394519408716622112307735342667066923188498448124438339428314938788496081930152280932223875589963075019690309789545719956384848696600568731687064842282178735556570034884281637015762383296504722410857772297995351168353475406125231318802298059811459134504525598603155094907316065686674956020367418084403037790036779618501104479381192435605652690872861742491882130682965855296021948780326573633655231830123262568865031124934819438491814380659723832139283002909131804453114434225586771811724298091463315714013195768690223716565152826214537517017861598654177699926007850723991041016797067020712599682479584534233908503547545908561275335749140518456510230353852988961179610999566781292304169460557863847201408248430081693519562413506937879958165767259235208711925655749183378176686544762774000850446580965796555673489572666735215444288534861160752838225091691324780133921687377927503705659808250985577946722463181045943695082029584378594454721828340622201734023272154458900161092285277852443988843992053426920139497691848881355108270269216208852241207858350052131280792814680528975351058142193549937556229548908591060828513607733375810022106657033253968625156565422233819418025515444328602214591558567973095262927889334289663411365775779349943410908736588839027039567341718844750453193958230531333383282672134176042073576625446796434251798435384486374208873127683673537665813583294186958021018194519609416412791553773228158910510266573737619274452503238675321596912426823139969972988856367554148583253797828444371096455272060275650761757363663420722398897756564684923694427908690905903260523071026512292897774815349398883747012797584151650886935540261316418516050453551205160598466349778516963299817603110246794313630038345764623716540217525997658091298993769897689993570677606648019240960229797046919204527511939622119507517000486485565333618073472345625758899379539321744787444310000694214600796610036927307868569442094278506987962624825093053844012541881536179082064601304791205481220584020752927698936094957549028560340244433551074104925396196947679909592848012536182081978619649126475142235778544461760775188678272732307125620288237873996046486824817126959682015420599574522408237776816704488166615643655112177157536840644535020059461279494008977474121425431282201868338407919641899408561530080950449951515284144718832751358450330756151514171959363698740168597718202513250800393830103921854258138929421749804872362454627180329476627274109323858053705316619403389005421943840154776833421273201280818091143397504216246317801018893705244925656551266108185708297591607639920832889509278951626060774883181558928396928922445693466545649251293832139039232577560648010774812633801356212202051326874889823857135437762458855433834519590422649225659733491972276266144109657176974917088662594090254763082956241785425637571843787346054094857152740337277738614664519900533151778973135547282332325661340189796035369976415414498733636522095728932454176396255758836456938519410295262217328647949094021374451174383242280464763223645547029382547036259446402412477526418607481166397054278015525921088729603210386995583937062721539438972772496735385516313144913357922860621997607824014842634295439260044569313201906976313718123746517108004445675166100493919886139511032037587699395452823521114768479100753860460412502353553111013612818863223103471238477270968625518056041188309045716261256059812432896852555806458119756785974641834264682767116108317949837234785950643050758534219174227876322195827705400816554188521014371017378797665238046757366891989319780471400063488102992233604367918559777004350305528440806819538650346375229319357819773185681672067485262053896430190974377234228119307407124778989939306949589970153444521673874047918601926399086661415491779748318567269218003192954095848514242486339907639750168568095238959577349950697028271680066328681954457960756239107859744172416644296205654916589696722684019088434863303761698539039431582823971590593389615860805856336069132390223413546393407280568618691647883537018999766681196595029157672948483863970437142028320254547944360626484473417725479337828609994378643429561175406141437224818317388598475497182893349415917214432465983860609270940397902421945987895607453493552537066082927358434132928450879737906161021860775988435149669891619305245949210661449418912038105624732247184577292262733500405002316513657287012577701601131908546397638348710519982379488682528493385990292147059506440768714459565335425751966242483850824378067123984121432003445860861942529828490102059415161098216391988967826632533996169338637465858310887314109899173706680898683688624717064665515288146796432980795159073076727724413341647055198110258942796211728252150921166486787776347939800685695328276101035101367094120394666880087752662456046709173921496912749604268869457763630865331663951036587791484724503013184230699801179658243841033484342644860389315931620914806461630465484162239833297744878299944515632210429417419849275667001455446302100877024222020276806035085463192797809727865871651251476014111999891289473898262038829585203320484263655948654453954223817974189228583081237730768150713477598983099745797623941326454042701108980648923795486859355432766276593785585324998956083683463507408446874759302991125808529570836841113131370553357865477531570176137174092639139817220008303581130061011487882314600006730886195030397763084311637421380165138470042122158927662563668807022407948670787637052487716093635635344405548021389897977669544295436650109675252431825438473867969081461499667784377777199779385544257497990916016054516601305247195156506856922335836527259499618213243115369500378074118883810619259809776703763708842479723609610769753893078575755348801661162434128680071798853219374645592401618278678061710074522886588913463361093120263981832264956654690928175043301559175725514726310439166058147045801406893477715057038823523701214845540669130140529124400884134804733859703076849276122277649591852761735616894804508582539136361230515331850251011181272286381284269681115973205708094269072495506108793436818887211309799403690421393829387657496413129714666621598838841539878141349811964697689397897343082607592011401075494365232578198365845141607816290327636627466574483394186276554982190079480846497377844676395529506630842846775638381831660907780558081050987593034360991221839432255020684606398339663598867316386363976020560717552280011640888274212105951931919912053145749393162265481204387808922653546482165827537972742029300770943315782324795530529951294503753555926592647580045252037762258331356965171083930790209309595449027276706362358113473288881771833600094887733986584291783905069888410800000378867218163392795788901620712961404186049619098011242713598931787072442445885650168733136710034889793305313552302100624719254962188086113771538414624550140501683779928717659650168136811673431190864294285481002821970323394473055911338982624899069583516674246655140989104557471118488285951685711779104154715523057379026067713963759646050192812196528319083028586849667632144087931969740999517905609201604710462054547875895040570389891664054004023228313007954233611341571752366963936494645082033899473775888117974980319760880986707007595928472659469669911572674330191692402745887740445762888075579094319085946973717692607508792818787668524848228785379783248389988127056860263590154809183201142311904756017459202243941009035647360453981851355660812541488316388822441675700490238775411264609914373607816040415013797798346816549365921542677070991092346199778899112209851287901595711172454431857795066421862216755458624441463762189303842746748432136742806045682742749698344102029788734639574264020673642241567786570951996466447510832261885851917110992385032806136477187935200382879097408895002624304561923698027798310293736500814466945689281507053112785849769848795658585692405670986199565410027903313360611768601315442688296767907165689768356357085176001370452243295471507049471335003923225524357919549056323129754671924972588278366097992160576755769475052818494218160737508277362778953576261074634772014809766370401482359302626945555723400091579501022746490663329418261570442814079560446919446391262647732877051181347713557603631146217002610743144243730426547885013200007718061084576790758492566161676957727037868640193741033624941541439855622935638145557783395994063845554452819005587348141909322389773857689541731081334005618240425556582196748676361721703241399313088002401009897786416415958134551492457627312830707057219191723941924328500147415671935835160792789996410254753731276018072333420639790811672276452066489144318419533200847740543100455381015961174831408140090973379929640852941327243304344722024047212762792049160455925488661792339138034693869284911966623048439087297227682719148978636875535546748862213821839110443459814584246987747051009703263737464659113649513937787719347571451582212516467201386910624983138874869716664321843596102233514252718519293466866083949297976637337721023813012154805664929970666100922243002506332789957275635737043953991680724490059627142509632210612911008402462616032046677893809579169342326898631173792353167615105566249550539732354427191134049052864093209009553870470359684352350654786761481713064652511126790401375736553776559073335302254513406836711951405679301451836138303374592774272295466432534402294228782511712588094097055385765079496069829057645284463095856548709593366314634273111623047866783077054149239481585164301845055463121040293262692207010720121084163939934611000020053443015779287564609738866524138383803654843314763279002346020588603974850452895315908676183991902766637329972212857877883381529208662103744699958232804799891527369638964898417392437839280466126228536700423384060537206620215068890165092759053384565604424023961101473930169760083584020556236329626501171032467794628751699440188342303914284484477545487146561544286762341830381839160848812296176678071669054702096039303695776994129097376297864573357752028788163888697099908400866267809596666038251007533722523995947346330748181590229336024759321558172737624881205552177174752048244299066875569473402379946866467293023280087860677554340378263291186326501924793761965735956277599313002624926482837658237061009948174382005956397982676513396393122659911131333449596315162365227200371467752582558113099994162298071544363268876816752240704937042332251325740260058215988720629128229794840693493148912681580636266682786313866155920823710641888484933401355850721352442855798481302999504941529242604151082765588488007718425087790405167309240607449658589974787210420152130631089226224606441572696541529146708204985229939225834639177284410286982953149928738204651949515010444981307647715793879873934872619374264916724058190759884740403186017785590544360372048864424680628801541230103041302513309352213689580633872303018304100965449543433690099586207913433682359842655181800885363036155257611687683815708484250077016440134786716842125093680750858301682159810199823595010046256847989975254087415373990595591778813451294827242351810239384202410002914474620707970312596066231162908093182981119514305868291700956205197196811794871014210523951974925827272896552866208658203068529598066872715410510978816411039849981263185424115131759808548867807531806359439538883472656845840596783784011580048084752700642948260229566181328489457989656721231101151375738942735941078569994683759684110987076951937869513706437658021330431011582301345822367097662233422989825717532092865899705868614349218681009862866641956436936132602886540101053678564887124176192982004346610677799890014981588643090467033770378004867107004690079223871379663481590091503540668709677423752120186900782338437521420159546015583175454955459495579740823954008956971995784080535759964844604640120197356007445000782520319686815026357805052081354387800399889291992001564309481462886648295399673968726170562607687293230799220796905551565351573223145526818031707115318299122064707824222582137325572715570842174315653391017842646924756219554719752952071544323937485585376442461177032150680502957366262954420530048745775714241140839166322483620261071589674902484031909073044886663329906774966150116938210842831824667928081994256047709703187765660906333734707181354546320669487185411841396360517087854340167867749058402408331637591328423365881682162559365677759209462409022891716667165342475884020124402694661636166627629181748693483607285650042251320675850803874806896172140051182027507659973721999618374665755448968641961881585129559109147479406285272911882472093080928552623605467982096971927744262315671806014078834718633254203394702013997166425794642724329844255393960161706752463645044032005760383808298362773700070468088904373131602840107922314644583646226733577578334675721182345647272208551699208342407959635485881572760983497724158147591339609108187823733617596798699640133890815247333897623557823314339799737957084116631707008109555075081485206302931340490346788365939016814080480771873392749112831033976785383898822518128107501938710378016776520336818033411687500285595471085900240674131375688962904804351920149136462801247908178661008975032280828470330960564575118419966865924284860499205915540049855086578981934032409394652658659135834063314569466403154234646189109465756650345186671912626132085227357832979573565032391858885626325347069004507217269158754279306141226123855537946992039034427015589554650778441899103666461200268267964259636361316286512304180412565285650402326437630956103659492646089141399797597751992288609336485079390745409747338532171354680652161983758227571860744370670358034672825258622542334282446304698679178661818836952918746018715030599646639981268240823005952459558240743469770601613258238643143120420371352849577290018619722755643459001868194001466476710314912243479368591314272885375682163780437532690582069380816503961286597494356776816100591282462571935990239883093996471931252526268825293694488948013702280107983048349000660655124242485552168674043471201574961855700646023422931493018463033222401988820973331930090968997669698815601950596194712325232524224022591226985291006813342434481514806945590385751068877216694578527779652879066199138263134714113143756450537858231708790983982227692130821897222790982962308707691308980670277811252671442526721966323508989910582598414673458155277463455141134784877208932214155521823722825494602422916157344526182007845384129524748154039794032088508868421900877855481476756657335831161027591210075893421275002040663644625194438447727443147492679194786787306240327437370956491578789410752756329709329138178999615009372582030187884049551820772904190840326323571680670936062573390244280376010287030584601585759670631861810222063787281705971724309014151866747789572907817567027566501412103775462503919121378844603731233786200041052498343893283453755108156226829931180562477117363546583559541421090202912414951174034917149927510857097613057668300333509075829379169191559336146108097531036347807125617053896461962613870258868105945153434234679492683054357072990108886476201722486931966211502091227978183882083202915782916499101249803021526454854740856592031423562267989630319205671467742878848081197868766763908110948708784795685129093688844721538798173541466368958012960161368764299229385853940859440549050954539851679345568050681475174088596377306790802321657056632598961651211319753032739918143543939979065461750640884103491576589692314698064577362776426510007707454529545929264158124240585620323002977888501551799041228785889593707085960731873297834643594382514483443752972831608587573977717251233444851031093398254471872456611593055447827848154403174354345122954086099075128823976672339677376764374569087007073342193753310006600956480187654506153476016027144188620095706226988433152474560821983791633756371196313213190691557006398655019323852523053777828258641824800144740394095230690158128542730876743533359325153815562141773889761524946658969721993842459115832257088718009148552271463800972999801970218274144489368203148973212853604479749231274303189050904673493751463413589697917259646253133731948950028179689516654886535097654809379767042708706055078370372976773814065109695621832311199864282000785648706224553807703185380980034641272582015702104876116945593596714164612769578774113988326022977207093578337289706040185913910068768035743282698361332119827328924986054791448892892968439611146400126958768108316576854571304331332265104997370569310716077369566598411558580335142644586355221729579182056142078265345332716867382166398184184500313522012189492834981305057713918670804119591088213509428455095740030185570308184426573190249576950417745445810331637221240764803098052785558322941377942303776177078654197108386454603144174465232937705862787859776031655501338263795845166806870112961511016111813466435836020549551561157935779031658571020024535739672583973432236911177443244455074147653929554333853122360681583503564638486290260103848439010904510255319632046158373788510915285922474977453509486560538066281553339713059417205348872495438168160587960705907600684650765405712434420130309428866166883711769442111004875138019242195343043161651139508448240831825523707556449488131326786542469203869899272102251490979290612021061441441997657635922049967954940515056181949049280873799738593338802355999049947674438447462634829306992473759614410788364353779737974791403889163491708670652574486262001108345883922653389174529460960339262124583574083482234902130055254299867501360031576992763245882755697043220882107932591112861929317360023281297083260154835823577164786384279019586065287560592348247270469683398564904344873563656838663348995686342568089735169717822160526793048720828674813918734359231529046734611322269591650651076869156146949181499453578831093775868763970461987114770161959540332890799843821705691262579047487165297066703065412621095696773882940269443130722151980092960627389929879384340522525657894275847531145863273747359492414238293335298429687382596556844797921343028626789040869967924146805099014809992392976291668815063069616348536344948217791438062468326280045449570764372373269135903444070645048930876902808213373358910160123313981360976188714189345201950092080442344554150854025846577964531711470885254841602851711420825624325807316666424298409626825916856333733613417393806932274833472743073889589564605689548990420846677371362505869421543247415952173423546781691151957583490125483239523302163595890944263260053621594663820171503116772491522888632971314013522893818393837276548269123348983644402709388162960023935721292607951653655522533941500392934100860916926979729223622734333686731662646711135553464577081420024323470419661313732982452090837649699734255247981906969988612680355292740504603208032258212851161319056387493969891469406439960976463024330199718993951655701567460882466560238468928462470337033095226431909074906120349262372578658000594585877715563826075565963896671815647970046444131309757057882470254214427084768319495430796104785155351893908577366595488985895092292454037942082210938677330725114748370582226755507816647819013807854339688942205180315871934756257748082385948247798559960473714719926371660015811248797669024657379075107308839637621148979145254884231880640951173860287946190539771257747422096105881677286019985196795378628239877909123910362750547581912499369274305850577190805921013721220736798581721464905910973920077772973602110742035093963893272620785355103456676890186699524622973376871279366793649514207807870147416463176395861926674687128013154819925556116946721846009603193297920436669639660726447812299440996663440170588538187697082239883992406201716305181429410257350751633721526458621350951418462808292829961407996020252542253399199541120060372379508099941769023421339198926205458598010440596927833779833345745339840780385509672796611729635670061376267390145140817555451343654655027242013354975304685315053176645891332376307988894643260293512623823449863660457831095081055254592929595754314889261516500907087912570884855503298909009980082621806677561393506407712492117564642016124701985497841163460171494780885366482851373267556851145852221431857943025600343273037357309458390760919056958115480238029137675678647056002568779284208031142239432022117150247344267718301979922399216683583531477311016260040487276178445304965145796934173071686849661864712565815731260223132035013605115879270800434445410697274007835271713297904664576879963432368455219575878258208109521562694194681634283976925544249475441352233747461458524797554008900380307849963857030584898806567288711062338249872524350636118380046345826497291175324268720858495894652153987260077949785069939152248250441304373662813340284049035888951854585508603530492030725907748462444995961881701849082639287260303880108878063566073784971555065987214216150341608427626832853145428513319597467138030468365376850793974435325106722626916877989358382801424521284806780461244982838850057298027213758409340424742623475575136883838471570783772218064952043621612048911916510552582102850762697257865875617857325929343709122723712079440639106298289473541861428502945899763710314978041780647547483999399399285436805777829039521985216456305657179627362454136983389445488129174365064875172515710789913901697298001389995323131942787617321741022862134105667825463055037039002817319601742324172571305368077773578043669972056624957213578851641974267593680472458314951151071639579575682056627742311505716116541683007476003653438528541327373232823991722801581720101670050058435150469872067246168538933769085449362492934163864872731732189875785250414904956887684570587054253398841319182577394946774444269120329998349688450886640824618336562390938858908092497800474719217729622493740492169329549162503033559127800981487417401241737900273995780340852772652083688759166692870365676029108401864966027934125670062904748275582977238349469970380616762437283729982356156544509163319982360564455888397341999967268401827236446797678259830346989039845496565706037551233442979440448555732345539026230807634981098586805827912598527054671476872149718877147098252504437153578689094966187692932289603051914006605992878560283796796051356673733473294256174378169313363409796906217464361288385147847180519752655015822026483972982166642205222081281141130397216745614088958239296405306200576528734308756589466537627410793574063312828856252074670067934894311184330523317152954704807564223186884920499299020134994581974424810122913204339217611449177537657702061688432951687451726729674672526158269835896305180262988705958320364705901695148890446733315925961342931326221135268155270538363019595357715443094014460402303927017620535725403566391415665576699983248693523671246332468809976430531142901299766287231936615989229587995398087243572590546267395819513688595122898009890966202712459495548549023875694737166373226181185607223457824901878755538388412712113329467028741829298949128556834476209550398945632464877088498311485442409908325340288962703760056728812182148272639965118594754587888575801213618152797181002041003671642140167376375695190617755496644856764558443782721265804155849702093450973779780173393959450030934716146113140615368884863710027757667960629992120708495278495736655313617759224709033843172306512843515975912420457782515877855529081516204845653662766883552574375594444458686147901326439238646674496671383427575229556740280200745142981154942170023896668450401035778014339629483821034361267462580107743656019587987036534792710497622157991281829165211248196796249580422175278348723724849375879542020193555416201120264109184037370181077874595411906999009379100361968997795923737917678815268320618608119260353897687330034931168156570660938317387808929149617150538891242475707472008302851755386121006003150792272468456806403102055221313401313810226560675307714684352988228873210073700373786488147865437780391127924093092811636006044837537168617601210875371851833800874150025161619629781987906399179923982468008500011824186210374156427598016503352681938975728823704731187155201052509255403751488130929504998183308435054102943550498912587289900225381885765311107891071759257139015018468027584010431968826640148246388157475697739583240382742830718328207501362660924610153294018778499953378369389967798447838388883959368123327874296978139283072534682210708259095407441061749295983757728760732024148652384925663126808419907876209352075449280014500772915156810057262623790332808444874428060680960347197563934085818260403351383662621332963116577791873597567011099136801285351045753805872224956162572046580881245205013470524931882002578947940281661806304532779146207928130916837955833508432151365565888841195353000677143067779424508883585552035257787733774834422652387287283665758739760892134257164217751972744572704652164495548056004687090267242753134904041655733493497248481650553665831406055298923183219319832684337452015179290365953243537396706919555560355288272935466322906495233661902321757485116176708843231043684661154313423983370599418644216592211040898130772545132978717746651017677307031740315273164235786348467920046647097626350788209405834072046214545461800221231739830900005702059122831711998180323354033650824905272670048071979021249275424385388484004589689129219883318961304074288215414044656281238332876801204561887810202056028329664459436196510613907273632856753396436608083117990213740986503513124555837314974620540812332854577266717594385946057982568045386580696377988831087226749936430091696890061861803549017039326030130187797333614974155095300641749874428318636749972794881004680630017855363344595719025153519310375543937505438556391498825464286160746902945253402672022583374627247230017432055628001086192674378068122492555869417463947657226043552299129978926830957357719285379460020666677718850855017519275011120122967051875818096551209188975196324104191134892076488902927863126981449306811855080050226826476550381808360707811537252803363187003917552951094761060394456011307726151266100301332403083617052559162451615854392237118563063788087587169785961239788180147515282547121631605401243925632416812678454750437702518510295727150961750214578513921590661784566981243035948780029759805443294110245946976036081853296252547424075928231375032571544273105183546697649582863788096433450287249851700169542585409687956427310886701232781406799905556057029211784494615759641951598051708879261407406612431556689539845478036889904863919869453036791752564898404386359058174294466649839364226995405429291146041619373406164875552994344530514133482565563117485689405091029904326521763012225113579013889208993159243758288524270023439091890139279814101007887574500883465939818915456717166950613326532963802416568774883483501360746750624187396415384799533100116917602896266401957503418035555236136988373441464433016028381943115687616869291959265570736649748853111239374891800494121511955169672141080643042559917424366200326198328290718181381629594454922038927072571730520914673266314791642470336120925345171690410107506581933958459533621645198734148162327004754727397721635149965205069688718181189649966309963191614864383118310306993679431892169174617226940261816803804514096360694361329992639907381003678917350443493653698780584513565360678033441821090979950763935410842165160318966802837020115117104306301332524012306277240506494470473648552035843650572028851202672315890621731110071527169762364100030252291520214536188313537256014793172158289995382875401506369112025010776814852979666364736789379800380125545230841038648941725378486693709502642790030119424483401205089577437362726782972594772006194065044094835094360071774583817226930974329395604743421964278634965236656792665083668282202654736433154252287699583210911965382533616569900533754948480725234786447223152041292225513307802425357859100794546333541498128013073500832592642893904222894450975139678091351921277846702044749649035085019400436168710345337959389940751085432242068506785531700898927864495021426131546689556889606946561638404614257604744726424504478576297220460427641387047623729796202461787233780702943753935074948456744885688645703348100699952816158122278450788618408830292388303025371330895265144095528847854192071311446295060859362122612269364009465944327860066539994186447277681391422035924955556709963216129865764216370631786439789152721604069335824056739271185036343359072401789003815568873675575175803107107357175129255856649315505386736853151521344488737295327593772902504994409970491461917343243161703310792442194147105507969645716040891699474064860422166234242832306956084836384564393381816343664894373863824902339022681782226602764682513813019388146079916702858497856856813214240401741688319818129937455696412855562737446003082347005229550702511734316599905132870157936651613262461896968074894187052511678005365517030678744911073011360527321653572807237352242154073547713409075526855581293344403205502876755222072130296932209354233419768325447099376408830048749736670945422768419913488396417429797299185324689292795916225401925586876731370833102106741793918371237939953266299292716833161156324345374576981159764231903841168411100329432894343480386622566103217129405911227517956522097574892227213290950268446130109971052295020017645329992591288543645361587217317707916291568254134613650053955925961230602902870826301387888777746259167994697193740356266504641779732543656236337061136317420812435463478557981974855638828031321813511722278691052865080023457696016398450122785769674984607114220686748345178798258972521611073465779209297156943370220430240164736895352329085176311595078657000370298389860144899040478716490224505511563663313965057516145995578864132107892063971931612364371176334579802889030918637231168494298430542754968566363092045115284031660567598637303811468313839228160734502701078369204414663061517752546499160307472768249016745296308022133629339940952938429543428582516314063085176182119112716887223807302313206557601403925008816708016880240543714424378392051703645581475482897015459043116181520683528952632411014611311458568861938152595156099709841219235050519473559320617146207684212536824984259949397853524905783925893500307765060492437249725256511147552979094427573709388315135694147562875196806755559030699679879004323252591526633389293696884992327056749087067393321729014509691542728911907484082903794331913187121488523046484675306541268230309049565019448470984840187981174332855977079457478747691419491394709921197913795922160341645164750157045055556607660934582715239571982006205901773731120414810119841177163805319049036889228942986944984680511684263177491316302598694675983322304208383692319978086900724309589416270625852934772082346165541092965688582178979650229070298451945474440677844600881228219033550536289120665267191001517877023869433181743986392744752637489853280127210636537310417943040785473662192761816849015474524598631418137370527663123389453763909416983535797985810403325634868634737674717335347870760596133455730209312154667571255554372244161549648072347784107710950060168506456045361384135310702215742665424914690498522102228117200707415997468887574595859983967101499627207256064906794063611997257198143609019927976231089598448635681855697272289344728654333611540468879854681073672289421923761903008727102400278080775359349645666194525116820564834182170857712009180012339905164628431810117751191436544832706765959118327723760114280683546364541183888126781871888069061184023038136919089492839426687629848180161719964663251883529191635327572003392596086218035081168669853791269184381421454573524771650833154625101060593405552157648535588861773513344963548737714300945801694591750270316504272847480121413533089416111943789430808912296970282067966344556310431372986452040065998369204833770765477451510396910414089062587391070091830678801999109821911362737956776873622688812773248070767502846704906090734277257687371187154983424657351139995547045087275435942469947149662874279773401189323706689567385149538178132961162089592018323851079659081500948002685517129199222683223022688758820095302629174208346294259559756347400015504689691825967873571513160537705619086517998881538295252693479556158467754702469012709561831912326790880433721439334693394911083226703402269655625345598800001440036247027154823805234076014839207441253736579358457514119092248272691319840331772623061245322408282725868875496584405833749843142574492004646405308811944773291326768295503144406435151279293620729484317859706969291533252289111240876285690473675338579254943113095964467821036852896902666578266360708933433296543568898720417773430395562781762734261280620916093511873512768883946450135039295335537556523910583275948093496235734588434665794073675512286295107598322318911094834832172948627212274129698956489264777543258060134544575819098529653804128308701040444932215202551039496083141277739550601645859706919875115762807416115654277279498254345492143576953087671616625279744471525030087665374826308129113332800670589862589855333791356621884354334964415058135326410871260235430548023529766172407251518468369579046947583314147354029489273800670708908300013033625665208968967150819408874140939482400705389318558335583317961302791198709560435177380423770833707536240064517320278349288269702493885999898598201337966855997335976015402477830390656625151944745631237627325728458694425457195172309126351367162975685052781640754043231430937023288801103446611470584020003657554617136892611847715796306156650748738786508245909496633524482029603311632544517912131159104090258700040968872372616190045314407120685762793140831887393327111273672070719320728623040653391627745343076064753080096977575627732807957402495705102211793123405168638332067789657566131120600370758823859550077587516692851745351703353408212673724553824156726243023912111351295839297737890460498136452853067677635057107901762317169513402441761966882698938771421371165141312740726373858310985453192032746457568111755843265257478950322687262554621947545145960318185126971508044839863555097758083662822519555834432042310719516000547136075342702238702065508810022659558731064748619398285776169143709547166565417969540845928808757275571651925074947072496855520477560249631932392011538429268853037770478455980005616936965448133692826620851163947326244791607738951397614868984926408772678589213679125908619433616577129867481547497089986771228295360516024353130958808284263831014987387489027144947749576643051908995013513517608797996315550482179638265632541900862985786860495471669924602938146357080209301109288633986868034767327222981509457829348470874246607762468532447105983177119903303218763666996037164048565584420214561172962922031514400443739370717257451913917389365231481273666493565529706061751532630494920642884880903348265736527784775970195454858185462368956655892387972846233248287807364138568916071187796284187136677282877446037824070966693201069983255355898502547946634174560481236300312500961360774309160496279340014179197144785512646747940306315981185488925981017584467845200355548445355109019175935632462275718582341102592151761621029892045579031890337025383052293625718487006474011762672259233970183191646940257456847356887153037890222271925108445161955454242383484464442078106125301584792320379303817757605518530589313344568411598703934781867544500317893298514982501639941536699657722095532527343383559283215152016971276621795583732969567799728682259459908522238279410319385722314665410148512887935970676831362542620310140776002363100896832527617695326542297523087120720471362930111409770586952234804172364693584566792659944568415267505579755663551552308781748675134710941331907928467112341520166758523396773171064922532342230129173581440380585156333788547474711136404286486241180768882608105182509352499263970586301729540264210056727489464297298261251167399009484368354434749447392152374739834299342362964687810081535064917072583690866851893074694609375508797214589035802364428109737758616766478461110310442363158320809928164365881802793547861126412863762712263400055903399101268662941253582821170879744051963692458335946619521160689377043373720032965649118337834324590247148110360485882893736067689760402500227226634926748718132771373157636143239888246142191778139536889873353713356322653686265924062818905122354895804619522993453628995962246465281822154503767180691164736967658380840102425143844409030594826234283025109523706165897740892710111690882756787489479830925474056051422354450806169780133982709226361720244448604087606469586973006833586271053656035074563143112127334592931204152194942811852335910808357589934768189273537581250308885976212539813963911349575105815939765621383064585625128980657445373944031702903826716483082270925475706595929140409712554796348883551634102597915100620006649120573345301737106310725070409836054425810472850395072036579014711941485159279020976574719116240473487325933057133730019372126530924234400031748892060387145588352357927525647735196895627011452667459951921972663014597497063572552396358876973028839829369167779283022221880816312086036427779046169434210606780230920737461654261006490971024415375807513114041898494776057033930470120139877587930880187582976310927070813251011603027846593469924989886321534310041976719630711919372556969669805582964375487461435094118067572911718131000070803133669739212731499088804229402867526203439253568995759498526645208548736351738008204927797708136915757668893306740280644994333582296683859676346712030692249405071458298938857392473368060251416133992539403716006993841249955157954404140584584013718261595613504614477912512933701417594934253826811194420434445431197344061298748586054761118002329718457656220898619578762148258039264497669686288060296628157070494649052387416799252756307359198330235455190834279922429103637581053778637551623406790717256438306567108499846080521705664023188367566314039670628144039580714946028538016320027762939747166871114952298047808538169249133803290438251846735704853969762951222100032772502466565819288124145676438809053318973504009043577962668729757347801458764651747250193869520781652278639766643881099287641915775609204578704433034644807082537014400330784357233272132605784724362224569662706114978954515976645843131444617198064456413277897920708235868666553384476555170317573788425969858509072359077522910088029837393675810259304443377956330522313952515129424035788203882980238584291222562356507526494856962795686760739974731203876373753655200244373875904667586491510903098449138798574776527385014475325704474680796104128392381013079539621724414721284364891496346391805301408339030349990582713455458399571484376308371858664735597062515235825989592702202237816150131897946357020144055244225013416075588055640625852345999375121878377941288581123410737841830384224345384140043334972376946773238952087875964123964287652770350142116186833247921712275758959678414368396144168957668709868513650628912283867983739455749097998334558341464355267516329014113967838768549286238285856341149538739824994275522484516771738877094191490501854961832528053382551508627610331288603986032402424003496816155169012981469870559489643170809121586344550835848094027091377471560766335921017036954081747027102363658054068715858942846800108396858781443527930974531820126246573648847402773903248636028364787415621779856944973414704476218957662499466849092961669728052280487044036847318603484870179603078234068847943223363571110232376481552259900647358646284784378788525148180042451867623091937055656889847692058265035393846717627971135457692651514190228044154311429284338894828435559763194998771102125138333814409212677425257865025484685571158289672016218501692983692197163018558251780432287320791874438369219058600067724220252360796792783064986226560380996661666475229984481225288786255485458990035047088837076300109301675289714358854736348939883736167460065620884904658011208209114666166245576875470172229650270139862043973044745686575866081590537977890139501905446164466940777616581388341960077083734327254607336211038806821452039010178550420225530020494596005667134940762663974812242236162539900470940987748422223369044174730018321802513855054781621896539620678514342131703255536788322049136318497417279096207638471516042665343278334513329289790732773463762087684505715732540402082284224641712949335468592804695456024495744287163634489222886132334311643467689036850348603110928272594773641496558179808187526358540124989168974408745076773633951478736049853766281806200148094823172518506335117405793377102185627638030890568417456255191245807733729218258351946571816896621964547415641505263528513010190189065470858219259445474882300054773001006120051711285611365096173069010648700303499846551422827993199197971525311288187440419103857712078483843173732270517586568979322787667906123142934190502614984263016047218793798035130269773704848877628123063665876026181915352668792545094657644842681771105374966476614306756421406806343618493695208693734574166038095588570139521765317490279315035258542850842253874230698630618843692681938484802175943097616822760750850224799862204844352495514075042876048363242103636313757338581717034768457664527998901820441978704595113531603547054615701154328504270230559912708726299415780020158252481065676968136415592844523222703100093570247296411929430445519357496329879280872470210483210611325733926804555061094020205264436478634596742832284948024132581244749188793909403999432870012672455248837021534399893528025098749045723372376478671702422842651836469319063997219334611389322186326117682248569506990858552628001286211914549152903669154328080905068293943539396248518497318711399683646006232091755560333633667906703109950092275039448897478796079668160857727994484573115371630357770633733054938243481738917380776382034762241771554888299059481933961350224185492111061807795385336777250134522872086213065938348826859860152794780767549633694911128467118988474846249395809804681504757936203094600678925162175279011259176484636272849820554601632893272361770633440785460152661349431763006343307835456234345234780223693738361001450297598773712839661379414418800421093024896997388456141937753873539971938263565358190270637579020359320670276405107587377508752959861910009025547202881362319990114669377981057666914820994178557792838148862764674835674777830469716222430391402837157886286698292660728248910875191051052283076330629122225511127893197882751315731684952841699631375913762079883447742138316234523116418499623072529919002912672275363702363495696650162502290226710697525845171555033544520801870773456648689984052829084066253582705094575569133516407705651312130730135548291630766835342747751645595800146347295657974816324784077471091287180192198818776713876679378779403580498780457597325531564494747483113150012545817708796079005538069143400836439594431680077209553315584291993476854894228227763246864452948318205713284028659880097070695586485481864250778920619620487779183553854874025117718028796319730407262414673503713838988444172128376291086257498028770394143527568426179033729273756240472658825657568810797530017947174762016581765941691025625410953119349366209306791535562044944761977025819141705290227591877986703936196091917224591531379742631528507640063688051696208713581118670552988010832552535358334623830662308083500777503775312150623528658892873272318040383674897248357526055180584626771524796643495489133356652007444127615742767839353767975182132760009802800547586823607674212816078722030550522157224723074884550356471697736356317637459276580016273750793755166301355705337518455595283319150756561440618031881811884501307749832475760303395073911368219411792094349029365813435024118497895024059280134158544187783124844590425983963873657404110898665855212975865708468176785701010548153448201842064930160321335105683413785257463622655285319720922954041395306431701751044855051112483419645227104816897929062495407445512296882185968595667791954679454795577637921648049757675244345808329101326224826440983784257427933002551035681054092005872474979950304730923409070914681096797851560289289464580920109637688649383722740677529739166530969927723352761899350347708490371568360015825234091010062893655929609085995279258815682968785712155616186522113830371042693774228218918739098660846733438335106504803547356935089575387537502992955391935880049583099463485713643493809500578663521824994446077338952612507739797914040237340973094903168908518663544588443341190728069045130794598557552173319512391612824604001873818339058885021288300913025700189414140405848250445111187916837555975206069896120564038164866776076157339959387474513276443031070728108531681884763382400605201331421521997776281426856341902436201042733765437571087127596991568129962919302079881246272203879158103947883333659474145124910093399298424590256924515727839555142050741548443965494353745880792035860062974453617161324541658057038040328988265051354058962877617384261506336626346430105823877393490067463560752314680590903088915738037906356844450565534317680490899081459872127891184353630321194423007671653404377053242854323029915680005275890320637957127261987673050147282549697723968059668092832596925824616931862641039296768381021633862598414090264453441365081987151128417463419196733657253155983557224324937016165875420035456197129144660819879807358186177575296802222751483366158608317526331382372901372498837128745206618446159860917410004461087348166319063551717460223618674987694840081766957878279669906445060225875259029427239562916259170621669783582290626381028906511756518872848375165092837931561724406405490299197373590788917410204288432066353993747070248338504160773017958200997242310711566064514482204754052082548072884076644476185369729767883838224514258957028283430125404547118406822820317563640413752811577395550067991124411219530558184246893421394692100109660562451698611760001331581398696145839015139577517572400568469182520828688721373379731606801185577706372932742455253327934525037432775347218759779248437917315769203948353895506278499218073884118050761222863690452641397090785452255039549135717185720995413882460099980597281560911284927261922775278980822259262248538720846698459969507986006819984019108318987655493030147099484299517757590897996612225344821412409135132254735152573331113337891964767493630693531000429166937261317920413437413023298138539037878509314240338687631503303485012906342013429098951489733098000477464005498006324545197763510511399834842036545377222170957507195101555286541603774042708015217425299496496701700907176495340934402159956092321029080956253468261202440911779420432336447402764778667037098009435420241276901030548825770519168068397851257132835085349052557557588529622908022176097094085697085468316010263464840486285152168691734869553778815975159464867418176431579442684596863884478884751162363927854788308626676705598633081755285597435764713237879243267724493342091648576703994517277236784130016590461255242925442003612947340493050983647632311751557161557554505238669009173116712698728215302154347496626043692924238205539768215474719142571043317897604097355335087607164226173143918446735658655818158162363398984844366197990146308453177370672815537930718036514858936198406013961384902021089414822633564662303093801071560862627450973488391516814970532481037934651931752163236827860036957465956046718501587263083993024601030911229455841513842829964787100187091290923124036479336823549217355085711517641568446388291590967251150121702938268988594817031270489687395052798253374877602265516840570296033086563483783639208854616246738056244914799641931104666529743263559855185897452631422089178825849517853835896292838733828893887193050469216426013111984541528238401201395389632492394987313472969779681707492292391796319751567917456614610870506983073632727774057104322414213623752826107462614239844111060625769159402518190574971718199177608849312574435494480166189010443218233234289635048459048003459830913970212009848261987244870801523407600282785383860292696736965666406495725103057305233538167692465118329888093473212378109561225162231149938640546220853807863178167548434319133332155883365226777545424252443835409511646176340425843066667336520520152636487059801915475171324494375982729349065248904127177131257166473140150926595507352806271509889366280256835782848048423515046678684218564592164587523114956052787044155939673863494079211203414447475288330527403694022583770627317233058360859760838871443755087803241881732150883013189558287779461211176875064768191087250417875506939883546662100276389207111488323352669158235969881295223902330766921950445604751042695484153866252827808274822196101972437270620238639002693970086750878112671465070940518611503135333659230005341441804456036660059181193165040396549540974046604861535521958890681269290902851426947591080734579695257833677158223227187619167884154452682108503352123107927049980443630470869095457850563188034452956899071570027907776126456114083322385470394412202263363830949766717656829208446475929544333354309009681105026406201214329843008532245489222048992860680276539974070349177003444616121611715686839801800739911798827470621989453986380961161965152328530957556433346703641450910923339092769644879503960462678947108395081796907100393540802945464404448969780200305853879506466066595046642374203955263670343116836695112672248911086760562576074676253274209641798553415995770574828106575366662982447419778132213263836969387188615240141537725316923712320750280483167376569760014833422185001500688861429293201490870080009095868828465500707812262067241408931561083831203125082767796807065401514904852271650891958851310767713698784778794274630859820463034282759956795683451432658206143832532167707402353666732948306876371661955900168585769375479694977403192642577307933685207512400268182327854715685951885744396674361388716765281212368457819589346887483208541792874521030924765533716715931433065833721450453336422223425908115899635040161378343077773847529362514397432016342060731585227941009690308578833562807452851594392900855401997927701222098710314266281627924370406493970387678042959916567839641888632548907716675369519054626060055673231887627222814237173639296253983441837068798406789040098269396062517450466822527317697652539534638438663729885966941096010723053184353443592572000828761819240601786249887241455160349026900208459183140277244904612191706679452495378826842075199710205637270081145575878891440730921831897055641589963462613584454605890668749932101444201710366281461094888895199665005381824599237370604689396025128009562597509523053760086234480939927015006647277164190127690646730544705063862647076721659900679312355203339622112870667528488239693359575883726099311028936241858066359047708846027604070592547636030139358616637083590892769901355684656350762640019251605863683830092353857340736117041990419617735054107984158943244972928581437524544716354717467022791708699488125273355485244078097084775458095856653141066811948521257224095728496016955181063895081770945775846719862058695223954601014644555752893905534482384026764601406044560585670363378936881976869372264634691104104893290987099159373562533617066203708059461733758876301417924465779449665343635473019278022213037758207475104841504663424647456791006968499680718666879758047398214513835813018601310875431369220082138376700492063633610535606595768886187226413450955881739217210925075606588102738926681672013787934865933271326353127022946762847796817079466019359125172849766237137534220505469287150260806413225809255260833347904846972252758698763539088163532100572910304411851672805450543780014836272813246482517240757548322787460486465952080716115767366706227664281556992329483344964907088471740550291706728462629532045182747203429963285708095185183636438574888106084429034305032855971281944949261096824629062468839423901598251317707423048963866829244850856382325082622505268280543868177511048652444175253128409329810153148943518432979460426984604046629956143159520618914222279068682356091951206336274126324911519261691720292949417709807990322229133555189039377708156683289326661961222862981514011738497904989602569193687917858929203200869713999218597825351240909843518137457010667423320880144015563040747432132618774703268456640857148623960579335884032903930043401504549999462706523840912930751704534993656199469241751693979472155316997795171120485771327833668238086182593954920986237089817515529008344426271491459520770932752993205936487788182608278350493941717876015193084756073995633342210654915011039829819276650209260205311673392169337605451678047731382565794175069005428289148963934157114533583896599975428671346488614744648223319646049654478493821724101018880237395264349194498930038546810144861908041642952477308151855808839651835183691434482283779877223033032087208532424184045914920289439765950792910320011380353631015062488610358705052558093449929683332159291910065226151059747078625145483674450782248493681029440945354908634171359802186726696740067966305977965311857649886165832223236975291337133965898608731554966429483776237544557978071514768718209109415322490315803542835829030449683186651613525479943652963667024146782404724249678998476393067357031477267918235395234999660921221208287165752028144973020384232748653182434123304081242553102503080148268467200050707091549857467136806050152391897237262380567690125108618439745482340719398802253004495615384262985994349722962951517605523547684442897151321474988581010606406482721572666463289971385379376013012528466439642138093727271126927768004798023699135791040161853792916263248734727136169656751762682701440678778837338647405349016900699605676212225432878861868943275926235511735007822466854211364815239445926684979312678391386081694568980527279357178390659392746491793168330383033097537800259056608687189820632644686419235990104361728176663899665370004601245909726927776864951955317006567615065893135097571729700157444793218664905834460037636890441911674063898198548151422914161058972620015591088419596364525151988506475619111080556045979504286764470700700658297136997293099356761789312840016137586730330620425461482708517274032701937790308197724379523964751978835474926849764755528886782787603420084262328058513411277324424017895956304097161971174416165634070149562839597342340908151481576901713770926555652897984882871542665081790077599615550510136674630104798089000878111136759725264751658783966923044004663112419882859243697245478086757218881895204655237078742105998614252377514422448028780100556887007211197552041319538662978283821835688166202828710020980940557411943642269508699375097561905220315543679100311440230500642570827926035810388017651662539175384003728446116815332343247373685806357702698799099449072293742710015418667456022431284658930438116809232348554495849155687987258978946618767946788224218728526637385336888874535908995549411793289264943049409425379805753977467722704877838536113448576668297294867882756164441668097756451058612837477912410199766968574681981685424141333710085417462936889214930156913361914971048772071819282917487152477408554277295861778450233635656024546891457737938335321622955267683405841336770018096256104921832095302650630907047036739360343798854462502102578793453532827862506810297362912694323774333221331725554695022851527826887020246656280382278294214338672988672347635319762556413422682840391180553339509739830212624806551206114402066677340052543017004805059036958723678303878953316877826266818156216142946561780949071399128013832584873657039610464195038231965085495157159105592471460885367070587649306500936695525256557833203122296657837801749081536880328599765126853061740865894959860013564094378379755574069009081173793825474806267894867196412017638734506006759962222682020123053327014540927962196365533553667470375118569997884490272275042641172414958231792067505717024670071443088184924230542981186828774759886318851377002869348727931598402400207002147910759568507154295950381253802388591549971347493099155992083512544657276772718296463444949930309255404325357735380045566715931095428327290024512231948498071727755908188193427429165252605712600911178998382723147812289248790303899922759752225455719225144484134989499654601841921795389264152283718779225461192875338537885782100889626765550387206121540054523567679070903070203723300924695805824925126872931108102945065345208238290512416845095919800030428030576902613853839292856972015200782826690663093342557913680973491604470746478623313560969340066460105839865916943791872399459468932752528723061437066458937795538929978634382919169277405319339438502523993220193263790186666000110245339880115262340306752269966554876441764214745783517121336065628511498549030175201951655002149623524624556914629318022167656131711230301435530002298683711201585764828682541088767419743676883791782778987888293329043763285333733221649692065315518679281902987706602146703674598862595178742689786339011082595033356383159638289183644988035065970844309010731100820430027831763756784723850684092177466562182944503894842127616994824290358124794247853794961422496903189422176762085325659240044566874411267847156143327344533076145091440147250282914801657222204977261656116934458134218241009058294665727367893373976567173735473914588222485527612657665259164419403380272602321447392094309346445605249606396270750855309134433807607521754987052225566113335064371517755162186996676444306268332799933842026278428162055131317647288616503776368965864180358909986557543521816530954142181420387890243107090974889550443237026995652648400280617836361799336165667287965030616827014643891068652641540758836078823905377815260126357765633624045873759941499408614440779056593810716140097341827457191526274759366332187697156200674919893634452621545447492233539078309757056894632583994153736835699808841865217648174135478465294998769177308468252172036218268402963954115195914562982126396667714317457467172469912468362028133928520908561154973028381165074110662457046981775957384243104070318053979855772013988577537894934446715752972955021786427407880116012875993327841827339462359792931124633460865633757016057901381440659588042871778011396199434559178896984661954361292379803772751579980775101150442343771256890653903155895900938159040491544558377744189674821542440266369037699082607197306823306021785226183268035960930533546325853926619256033781363939822557628360679865654465419753475056835366525221054656446360548070503425456852080211132475111712743754259725281457476697750102079890026385130263177190335725882176942405514580385286248732107151105403876397445344928974199266674897801952296077550432311797263829116287443760139833300745108287167040132581989560980878297211299457204700993865508457245243612811039108837861820555281008915430058944652403892291823638190088158634260649778359299411446943704778638027098295281684753757805623471776592113785579231942797463225183235165380634277676309255871709936546020578791190362645887128435240797308024548863318399236686167430274217768841510734297692120931144536672365463345868519854518572143518715067660900008971909479935212381529143702329697993229498524659702228464241253699159050386579172319140721028536545624114558235637229879061011016896184601136813600331487159793303555244141943165567219507577646653069217861735741168248273689930604128597963700429688928419201636242096040750881386359424925916763950710435870509478551341801232452941250549397165360819219240416405752900614228143002053883288532368441500447803474511896874348586765044700827670054046191012896755116479918889068511248612948894909407144782448825803097452118561435090568766472391409985480848567991157234223780888710372601377452844066344227623049201593448803175502169536301690004447959337358375883207002006063662312497985702458503931112550536357129563636379246489173449692011475734972897274692614823041928023308831797698285575783313632680271524847521902034726325107238852001318310165981457048801763261010143827215362530976867748301826680031392736480453491993099179207173910262547180032587030401294073241345658523523086148766474370444820814158407343693960966633024218688322697393917870593740004765155041364723454599924014015431240119211312692509891583465983489388737396929086174029034201907664834658352513395685108928171111972348131546083096777256239436607211075226198861397121253752153849462562872234292005414205527748106549160917364660367864130758391821313198752875110914974130901210131468295844366034010821936957645710429037047100822187951912738921642869130981385157242183292389414347425332575729302791376359538209130280325857017212180330651166468905789806105171810357816802671770505720782795640174491621485085991192503675005207803396416278331236291225636748671377008714237982724032154167210788083448052821870816027746553097025759176873432231023161645439610451073444245905678638475582558316251884670823481453671810667234665001217781145377518490916169427572035363297401266866419801677193670792179348043667657792867203365928856813732279675847238733559410379060229786560599756865801009066642144361732074979603096244588973084516498567236686640368664620756613183433274384407711228496034830742560880971716104925324847873148584483450924937594194991097541185009382876669184521296186350528553648896423065200909847002312551258351201255299812627244801698655650387725888305874518552674542839842332809604396465870652176520294161622038697850544273277066997878092915253454460465564838208011396504513027026389679835900091887854529916695246188144876881664287335677305575497072395938344460747484785687515117322926940786491169311802952533018861603671753421933612209033806833426868539911441787376733649337558371189041297233024363627407083246032626145112891512454680549897153803998072795344669431032281090707450057926292238691588205657379125015930661819540176390439682174782754331572177814462890118635788394217983291095299205943549509312483592272213416539172591382905442890017201729714479625956918057562188069650498246029032605627751981383338441412213209680417255702532949707721396851948376448538552067633745376004458761434228263981809775121171741820033344507030221985484728751835082687632373761086520197495268692253513425210547913198350186820941901957018242270325884393284549184190280136279642597317534242446143911811973874995973279981201361581544170211067792606601459807207199763694606879376558606581786199978991167603411027118594010857400387247286111906130199093893179975142307451523270098719356596123565436824812487364718967493568221412908831018074639500903828828108303055003399141366756002420738719767733386227157831388216003493054228681890681520242694171933638544985602551793786896355789301979733577891721377121802652263244134090619834236939884048430244342377784483255029018199582663230335180761058197830636268383090824130274847214148241376367425717478625312140482250506565054226611597802752660111435276592971087356344185487161372636626357481073392534069888904961654542925044487543872946349694319803195492830425996496682801527799131064358561651431291779369965019848133765222816068470353394712190877202835188200780520637417537247295245080691613914090397355086548736784587951335137530841444956776800163527886935460224318044152429518869419181307656549226953897662083200151970839056014897877928702020909902275132158963856850717149209415923184680931630197266850045611957459243478012711797569289011578619190264846572618980669638171886763619330023776232362737183984408660492338727351766227287870758841735524767669205254328026319542948644026150044776618216707883845031951244348361305946995007494166275381013708887965849536298020227682087951105848550978230346807465345433056527846926099206696273970547880863335100478976099309160088270029157830352006817072097193827102347495184811240516911766765527740719277764110274963797059962171099443436620419256379868077085267751179534191130476340968655566042388182446871105536616754302558046721643016639865274355264200350131837286576959979881750004224574128758884074750562458100885705909611470121760065276101755385576990141928472738636361953887402954490878984636994581879650713524816436172710860327469851172890495616181091225906982640062501735182999266850012873150136244596862985002324673312577209770162155292719949843173246557640222955227045479274493132447864505848835215394825760640932930532347865009300332511347139948034204819581910319102424963515663747003726135368813885935275617804751907767725920693058770509670568210556387309775561466154185387886816470687173232297857159868721034003578578996442338369864402905207564350349823307775067269702213617501109773139398289936944933939558341688601994316793105008888755636033027335499109975085426049542138551614549565085574262525588537522565042397497498121572002158325613286907251407316542146026679064162134973541953039356734234040894780098847292526296227582231288330548612373764840753649438901258538284177230992496877211776664215500527334815241323391804617942536483265675639321873864986777633142466735879521771950028428815567851331210029766465454004171116006285677561318125868990537888218744191790300254120917386612749430142144120171378821741348987554685208074271983825948695608597718171816635011445867645946328667808443390786000622030250743259054539095351796927145704154979228852922113048242360439998202100048056375181107345446884494185824180087590790443588892334068793377787968226583772283988332674639835664544909766430151616910317238717430112937851983655948297083669625794889294778813908996029132399368402285581916135907954625369675872917437370205373382203502095081398082787126373471838710634420690326767576882437323114445146808240263771940735588483600410038471187490205421585534663690479300724685640818101690536761115325246654823606379866349527856134512565069961276920497574021394722410279572680393138201584865056638531161961065418978770872805649108924727108062624506297346003905332200652234172124953601347890153973154810356059439776181336311969057687577083467656730201008824152749880599672884060374184471384490719685188008447835611012551260842747886688344838147260897566564814270540597674424560500337363642727031601997539238762170834720837168321425265277608791127431136159754197679279690040274417766208771474628458259995032816621241553705506289167284375170312202069174117417866132823952784543185495129838250643210650317620543740109215296252212387413835335110617880652951169390986947348219474904976513368535573673792898897192107329003507828889538329786036188214281889991431595141953757997253427585524813385580844565211394486487319671009663217164660470179136476539972943442586856366302461489468562578770069946649353235861601913495462072059544195519989286190461898920286740266889769872990967859033540838980139365242979007783766495062197910014419151559358169592508149036249263693999242867707617636779872076876830683051220201145380752332465763809994242142274956053035817591489936847122239378126187046259340920142735561449929098239652989234493740354899420328097455301079377837455981653743924999712017652130106459756623843383000967672162578111489558039138099374993568223616771530763821016419543137806379689228078791712782921423579949849853122775182711771025869253022567443070620550243274530307667566610549294759975252253244122914781421280615545673085160467746896966494720743725084844510986086486043251118893236286927210510566093258535468770798266466801215214710251473457128986646366013987085561942674246468428096746172171694092116755606238763612030720968510053221785209559850588890128401137371625881925518463618530964454330049282184929062683815921596673571102302097741393242292354217815140582657795066184695592883397824754981897222492259544026427547780833281986604394432494053834588757404678031217630608351841344103718456689952269038981207694725834241501307180396769607796390435237617791932780558802538440740561663225157948400992090107405872557928335553070916610030269459204415357923962783257502169022039668667989868571527981336036153170268914275566535699618316410515486759143750872991684204525122075509829070497903345192411114559534446845582387550514932427026866336199813035798975863705033999376942986336129882631658518011467165157953142876791136111180470509779859753364446841173651930074972947567131794805123589910580737726460453563571997624686618395349235200807749274006774730285487051334489302262821648341902763206972824251892318629235043409228838806298702316751955515797584837412560626835947419599347695620461611327596560294722464565875876277613074602417251814882790307938839587319967233605742221541560235555783882577936570859988777491978038455800722368797750247643811955105922996795612235719184309269356989003843455076287950778117674009025019084008530911476226733403548154644752793630935680483715253524422211510789827749352031341816888890766282108955868794504129250889802013444131329944097899093088842846329760046952695139940737781207989887764200573406621173043466377367565405853098495335713517314801756416303135003801057450046002997588998362010819149092701870623814296012725053303381491783273963146202565418744951577900994015709173337749976858216471666604935382259955383044797435081265092769968896397932913849734255408585319980407759479414344723633119933495875565117514622380791261105950504582716279883313437672472801765714933834805581142202283433684894005002351841259889699596973788808575944433043995145644575986921137278016042225803405378422540579391834098346519613449032258157763908114650218935338993894244382798246559683397316582172996414902121492299123716512553387908795092273654230723671752667614068394213228170947704321647626436162594811152124240135554857339016937222776446063113951203684470584504528226710463726534130870618801782727661549401550679682918050795858459750322930292550562513641203334244752884569026657647893608800657554259954078252100641105198829117426914659876709755202659170238100224859111141329597330091607593397111081501422969348359993768853599213267652658666120148200820661350002754415058663725032557729775325387703506750505289846245774248890707964111125731480152048774308338161997597225089251578164608355081939545711370092362385079097211211996039380835216619808153949282108472666545591514672121173623947430442035960503481593820481722972632230919386862008371008973559618721595974655367228732190443081110054379135385767701049312259702136831384597219879613623879131095059183961409075640424540597437718199965796104300945570170446205543939854919410236306155346922333489242647094337224283755209641099353105013558272891623554529996614395663436752554553463746842268635473082938944646804618368029170648046877024386476644861263062061982829631026603485853626512897458493356763129842286839328733134693291701824023590073997634535630719317236616938174058729891388511929660335160569034493494717570921739907327283788327782844730612796804337895346287208413836693861522840115987280634994936136825154820819909322157660352937678280293432123697786372733459524606273470055874334920395010502621785539671506014993158235880400942528406802982069149083662759814741345571682634689818998489365455277293889623610686053603818732247862321681922615069746214426782838482857858608344440722926761836621795954433386901315143308108823552594629236424655809286876983442600085188601196746509538300841088624447163957573116360210139072966594046502580174456742108110229261328694382457630985554188867266339312587948877878377779016115258402487916544094041570798255944971681542756446787091160996179698740856718335379109119905311391073784165072500129305076798669301708371317011620000699073059137297443139443459034957527520167213473358401805470208627751536873770969361564534321220790242944865137881336373329538712877063095283046402694323340614712057185963100024844388668851501567706774293965323957201092256889467208607250341923805813497175729739603807592856332317044572141359811812538089228323567735731759913562198101409400676349630849400513668210827104319766017704697160017320135799459017249763937167741355258398297571322789511059116697736147641334994341393397443473729910086144792482785340711935393337968077452355234555006075938001160848500745084503724021911349086496376349116939759780292761448318081494432481609629445044826549821892574877561606316756280844057739355314550600750240953545979000594435081434727626073600950566477979599172556259391638440772691813570564128762302929488200452562816604312115156044632749847726626231702118133260942063458635597743334541971048231478900689252962583830944258434097328990575389981962488532015730584681892585185037678611308984446471443877954218937429519227810230201050107646252743607638742368004812409348645382893762349401546402974682319215565537491460987300887324946694002751740787771188384879883243240292671675725494793654523057325976774179072182590388077674369254236108480750573637580136470450235947186605650173907750355345382115050410486537143781340162151832560010596300712708320368396344919025579837948631231243656648533084641529710524421548017424020589159951042547066020071301499789205628877437959069610993474974464121051607769863577584447260961828499739130973219910943986866830563476223562142153168988007705730253195875004364140956849751528840111120589123096891278946524848122475377266383755027507356073796064249690966472800301735553171371419294726365438534171975833407241844259555932386570999673448565996319502326228065939056727107149282127060527899624817164392636438074270267457555694660501302041629195384421546524577034321404496473382689699863971372212900137303804309206443260214603917576880343752227912530184715790808819120490218532595092460681704926785017427881969028892874769638089490323570230287434750000424119933155989329172899805370721692720367739296972203971232872636646238460872975279246686577937485987250495732639403848608295267844339038786276614531624466841976151658769509956123808874354313117309959830954687844620670000459432566376441560136029331974246737902314546781949917027556368794585137890857359321188763720528401036864390301582541810910750984410400862803970228157601223777289116772147154261350103030443980521256772719725680340066196838882357888350249028101508228679978330524180998354109331580725337830341648527037746072416343805794693456624889598727544795728765756100261200087098229293174018589196833570157279459761015891760743211978788053075710604307379099105899221443701386497833362132402010786963172530240050539435546920139131967523641936475221765617846546246545660228623618954737253070931572361847974590685306885576613641629510490853130584953514308558060618149158005296160841789237707981136358143231376060333875205374661631065532267226399163698641188703150911422147801304188954437562927941204978549155270260242261330400642796278035402831310847644435429869902119698541470551606657581094539006199425524885310084723543089519621360367941165349865030307920704142863547854683584692143202061658524415161531933498487542194971641637436356867174206242723672531036540968744138385068280220987986685162427978789413911634922677472564316793827361038100216863582899541286253192229865400124425856547855916943862085522525520414005796752379887851285582437197319820379434352122848856772985321893321117146221389665012493209595595351930859595667507403828579805134239804209988735633199635450555909710265775772968181635852882400943963232927937818298358055699420970621479463896767517191251832954962248687954829579894602748811972576992932969381138935869133569767322374642858100125470593202189016809165348860265570338232381099982805221027537877446095841920318041438110786353124711082035385823183758873334658826533312316493649353572172571354657634861143409041508267586424605731301091194149546712791297589086965944590156461392709255189556697425305994523765865422567426861367192332744049920085146461403648772619176325777224083742344706237692893613674225289823820111931544539846295267954746752221142168467212922360897676912527509860698395934092514897896469511298915765663502287117759177807293867029984795458946936920131882584791312054253982949124882329471438616118830754460708070119025714560535722447597345378747433441897314478102633327446190598577939203621933666906266154087629354114972608304591782792025908439931456696088452961045150800859863995563610984245550545332560609956184657515678688160331806478476441629186820926242319599221749189664323366784856669239028848469020219196319190365066761146670223740423435109483813924160748718691887603016940363274743710588511996200618801003458765589543183986019104016392406956021516076829995442010194159729759055318881018288046128998604047633393871377567408736532622249975611335275962944677163662290245336967105719326753411753090158030245248045090614502078802290694252709981654071930893338932895836212403570490345457154985700794728045917949298553937510623765032459199843227870517713976809199943384931191508241328070501225201363278928378172454107509876999783120991798743758032808499845787276097518313941974234520344792611668552714921025568205195677725855600258714699815154064115002886061344531746847925929384842293745116668881760647029292044646726082739925902378008952363477814319998654886643270168804856044242701139391540068358718631089267820153628400912479426413039323978735069749691995001606480078425170611409448390084378619496149690525600186127115264524361373853861919059779982416139835135389308667422393578274648958492331705658434978460044160398066221723125549371118675077863655220704012461751375345326967971266372092240250964110977930349680314869957711586009660846063532965064811663399754978473713959766329114465481749727429605234306250079076185082056055066810540595176301033213655023817819423366668305383825858623784132933020804072424911510349399587894981930158049545966262256008635474350768311894883419353075251242731269195519533457578019800118438346445551510591858555915841413877714269596423371194761046110090721747366852329631974366659814911149339347500660146533707509822136753886335633469068938096029307864150962404866803040539250927757223080207297888172203030808905641853379918363012662899148896544010996519812863602619304069527863891572068467067471059912353391098929129623686401228460489276046608476155642042909142416758309992034675477446963273402331745514464415028738757291661669984831067147479926771732987284816504482973406374633172362290091796618311591700346004035562558318292679083987039232955186695882946485963744785503197727484980151668633652536903389977314453850112850277006059402600157974926366629416003267533611243092938208186762710065485906298189090381208054110403631112351731704160153679857122951746783124334817330372080902521737921424408761274211857364039325540654579603774717707299990859431781479745211731751724014218941036674670962843695659029882004808454611886340600397361371623106757657283793750577890651164899858934047896491452300337290022942340201058297957797960058204621209642134838993056166138309215944278369325946175834576827929242600577176710708409346453683529821188243745688074464984467796458282460699202673718171044823740970576378899761390446636745460108268803715842838496351822627048077228435720646826105372345242283356810742433227091115210253771770725017858192538342573410213874219672904044028040597378859548265025617531867716307905754541166511335863248952976323289939100196376418507812830919817241950479746404674358656613125008773387613504750584698543314491946398057592282794451559844173514962648381887335569983018663430061650732501524095290526044447131761823282726400426796176423193538271335501023927548963410850291083747390424159164710087158604518558548397924728359631662796306362573768321413878033016237879709548669902967159048204444500946173132964497701052378682201630526650497279224416859364462441048625656683387373453837969330168500446623093127634488340987174699898637552327303002650850463405487560473951223601264343820225258005654369994925896012370160675004712232746102097285672557759317329813838846993539520512172546260271230232763680823620957495111868441388837986579681904464017737915839519980728496222679087797890906272864007268754108630015522063221646313176712362486628839161539842034501513830641227514839982749936090929078325234291937348776481708528986775033088030476294499055948484336306674734083973889039365943858142713243156298272204266366302833744288333970337691446741274790970655042649913470029253308068151129028062551107819229233765793767769766782240610378630285536852314091375903092502712719786252321139528170628514936709978379502730040619849055263791885551014942634917497665941115839188200438875990827302032941305704307995842654773431356192000570324970752017096864742809031083549356151318918917984987510593690964797385196569824717238647759577666600061237815215263959912966210041609937595144808777066616435443269583810538129101429113941023053155476695006566236871539910074680999812526911589430993096309166984942731443587664570953096351242333668828067711014260853249770358040576844586276028776691335629686433605417684136960402145849679921022136399789292898577429087189856381378177109052265749159829186798651251298054617336764956064107673891752238341586138152097584585264509856737144014220596694712014873520890394074290523586926968258450410763692758335619430644452445432857497685594216586656352048481478231636377926848547449130707567376240731383355512653039287178778101093721296574558943826365265236856996673460138285669640693150758432568397699222530930050469809779778833556587396628292529563753494534007236363118768363551768914493631017116946662775976643480320273427625263350087144724963214099008386325560527388659745238624540064137630522865926071330712938151410812903832604862150422690598907379673766801144259010028370006388552401820522019185070019440846531923584800520637497550121312550778168633908977688092974095688405004172463136167450841083618811843510442786060469586435075530969243043583236338308496272374402208100263099970560109833109603262258030763770589535949888041558614410911256687556756182166830726413821543063005145961082984967062862345557898596077241627277979781572937183850322955533202360049377499333367271207205136791224369831002889492608504045781913907004480587470692305794705463666206496121089621327872193052698763111546198970811262156407446729038920826940506243418325869594269839469778708140763864488785000194931347474647712506088299384624485087460711469491713443786873826792011761588334956836926981806000425095495314649171820090144860477814853246270996542295348978202662427912827320402377687471924600591231799260228716363788232964885886129205164135247487757667249622751379824907992951623362721982030388095388707887111639118646285388301714405744874105335076441570524484340075830377371505658235421613268481869748681468826660270946724789667395980288516313542936257020112226748076246633472551168113869284155851278287646973734579909432346531001247872281852197072586303041490961224250353971931621428825096857423014634130894442192378344022026307134659276780681810265444824720408844645216126223020218986726371066698531331586328346588736293010903606615810001491457522460736932149519718216477231687049598685986545322575219153364545115318700367340850179899172218266609668136659950800912328178957868380559444293580324594920264317446557269644885185591065712086598276917733082749770068412244265852223739451588519362606590657601018930721802640963293099620751963753663933755048643272891845427283109426260093000485139415356204013103158011035925885989980203231980231648782448853852788473036815844097223162615468352549527824812889452733431097968388233381955541948940920884509973576990304009195286965265406027760063159740000638268509784979132399981885640295339054364034722332084721032936492004315002697857845111212680608435588481398534185368015661099772574359678578527529952327808314792803448591117144360692293044924743598957047950129660090721988210113617990382045107188271721206582581818074772855266280090549136988236859705073797782973472650264882972829459494237737631274821404907529989752640470141421286146485525267874020302685497300417067289060525577975038822944957888187904892836596152974681857017636227773985580803481444649652783587723178234771525311945300335423050977121480917548701755689278109011938477918811159671396850748357654645226624532384369337410313022582962528637379214130824510541149436030455251628688240156544693824250735751836956697321944207569707499278691673755958489379249574071071550432438547112468817736408538007282935593161647074578157676120526130835961221803141204701170576999055425683209808741447859448068549078035414680070561939143463147832944594366627393550785336564023330802617850089786310254186066232747727332225392939467104721668923213153824250870451196209043395352985952739983869588574307868996631114911416802841151984962994046351471104760141377728180116875038803783699212847595326590690125520047298728661254391907001970669926688841213895351891529235748493457780286173248801657170931565257045453896619749228286903409890199841787251267462630465011408379036382349778756989919272306528963811802862897395673961221532311696540463361445161125974753839162313573216136680847516237012592114703668356419764823077920116963770807484417116805852619376701364836537915736022700246676131919042818713223827886429886832877768818818367752249069742708166187108349215033313078151900837175789644524672784939542306228940545876427513467450151453155891408172604310374341242048595623244368324212663264703916722986550845600203340288715648038190797543550908516443898913196011452077371105784765815892112513399535678323331997660458260110938639290598115376006947665326497631810279847345675734961307003858543684697789630834577702444876900592918550152388357471301952360139896719060795652423900665729258210760523563452209843217189776523671969868893172589015917194787555487687467681619339101138128222729293710063361006894374353597501647498172661253936868365166112790388485308597103663380377869445206406025730319057980762537634022571621621406376327865884650089381301021045080179129427563115343328345843702317646202884819326371901004746589207699788001384339700714357203026244719522612237666771720511102276468288131617504848017545446973740850170717393466499390580265362378506280593134448524089636832660722014563109901330771340763059126429954215712453245585533674021630754299676948304440779347271926348871310262020653951417889071593746329578548300553021678111808671258881094976716636545565149581475019609188078861778876170819460721828615275176102354562414399626627812939820509610939449410303619068215029569033326742984753162349011478763475864189981770233280711921751595149838813166964235232267757785292691503753230259990789309011855404752276920780236783743386687385842974977797101252067584094166705682638051496322105926801532837831813331962512184935799267585437177783753534002369940896105480579858617566610316444906337469653630207146111220478286207157695000981987151873378861726934529785896607263230488101410077522911894469736010690859902178412049934297014617056636545883463947996591649155648852889400669518347812417096850847795514735372615170666012084853221744261055578815078233237027348646195600074036782382934664067265038290338869973733298219490386993406585781802269295618154820869140104108793518395442777383322292988526605874697714960336879102486812858087568994574497392088256833186916688603742199641193643779561655845288397896790495764930898762308100407123211455684283095205527682688749831193388989189687543319665491313886276448996426742236014346869548280027543351629434826633823425425132657404729671045506670670541569984183374359840276330813755800510481454968267577533475506877531867185533177096602195002151838745407931962151574215618685121276604295009965746275994331504678889011105276771412946013908498116858703623697380970343769814955770277371693643958780078017354257511263969968881781049568205860857449016870539644607782393405184586231063913170595680809671585109712820951452191392976463504385151885941138888900020848344230134510473791244371169144837140154752466071849819879295519144862582652852138053499247259657653866630555171378188664134971628123582322738482736048172605683471904504436420286477792973128331530409338248397999902998801394512146947219122281189234176781319968309362007163252970648393540337397797238721514491660635568948404043983527103106349122984833436476199217379814455528894827795368176731428246923436078311912185387089725595679165749186365012479216697473978428743596454072434123060108321847563039222423416417621563287391853902961885695702368367063877817306488567951356704938914720429095501712512706207972000783222355263324572282921781469755691674139561952038963349601274172228954796995309170892833220966929842938713648813709278438974737962052705102903623711295778290868325724448273218522848410386292373504732896706422076509586973442030784090670197324761226997699824074622400865326937785028570918426467009202085582716400512793233772464334033456925982846520407577088671826190140949742260176178687497191736419728859490114617286127789200092921632632969896221554321634143441620027126239690347303794218582166646774500480663367943882045774829052145646564875811467321655490963002489462262614979630706209125568122890533677611408346647464365528103313918869051958161939368988758941636076286207797080120300867271448412080793301228358389648968332075626608391743203565580927348037693545226136337046049581564875055988121747774049324600761249144381760624124298768200894089784308352287813607355021317096878490345627796839214013438637566909199359954906197807346057876294952420969947700385057386817968140031591835025536365737242061750147957692644834128112656963207911524344204651027840514215611425161938499551981455566669766443068694355648326096391251361950668073486456853481427687045341330056953372241626268880278893958785176255916055701474492071684736529815799628235180062239942514643378049092837640526954327833732497637343903069783509984863978687763619543395206034015115112395927993154740805234337091325328037913037680345169405787208518948111110451737145286406979302230472960612264716247127041756638509305690082149397753957413172188151690352793605488615035870336062100620493849287676096164144866292423700573730482076480271420611556792336879591340110698152760807961370748112787332626971053467396116095289595546599686774694110254954609627884646360613025481107320137829712432804777518267781147219734088633260615033248635230238569333137262712250354859231652458981464355571066412322159052697731014601037062421380808432220649858270008464946247669050461300598888786107640706478440678323667742745726329639953930435904450033152349987885844414493103519677176192452323152410939802778528409762294239678453764884814497353976844591625800883483305014020241717365925786103370426480480355779742151252735923800012429605058796439109014811506384481838475213260910185907380881510441525854728140516080689402713652632742478859208611755852420879746184006367052647368783287133005329712647129065954858251209547686243662644432350078891859885231605178874503791579963966274908234237923583114719745009986596844264727218053735743719333783748576521330331738284344386046973106235863022615841921024942389830554725554219160779283140124289620411462147610906351398569534286787622675691809969342571379030590706935306936408386631119300005793658842145428754897662114876674437340420534618375200826399910617197104525180754227170793887056883157653237855187110675826150794851768778445335286292387787790694470142776420655408674282983187332428669239241558678751059694371422148392124294976837385431499426012083616843848177365148927719743966172007098662525179615249849393857088161287627599648105256742089772149188840250714440450786572868074985802663162480718814175369803683377895393356197079114386000576597625189643793923010264304072103965141551059137994544772921363010603523552553195426339955696890090364253894112778965369264363916308225258232493705862474080380243382627409549283022076505968314114743738981189692985664832432076469266393524640858350370369073426882089065038198918935815135030341799401028224025011912589558538855795447870379820282000199589666300696662675938329141087540066023702885207102247867309250046267918322809024860117116056667203317639436957295356460273221075230468438230486806487691387896030430161418542930552910973105338568598849582278526044664566135706199972738229818773056115670283038479175793086221747883163831543444376192477418355798094175453282656888392754436066621776301987805432554377449756750833404185910761659380698492051057056112846488558371132472553461829699407699323251592864160446778259414246634870008758623098372220974361048462006912862301075287084332020695758551026499745262903912390107386045677002055018658175385273388591502275799607680293777067957933508549184368251167439149646163118365413518533731328446528258997449779150109915505407905368846916297449725321801847359410285983984373543650084357540729914669030331781825672631031420767703227272840503228721016430194014751314545343637541567911097270579746325188477738169218093501804846325014529171230867643136297908843954834577139684866846043332604777830115188907581551782149439192778018378869095263305111816234473362131420540241975550080070593258237668800924015772953134388092864170902907947120073357163252447360784820964216308854400693009276795650995010693919613325635424511265343032398597089121583254924891760392426274068191970391639199999178117862410385042099806016947113407568696926771469929473306720906313703421409248607500335999113485786626292783093827653994632694066275040693669718425897194883016293456941950941903838936926128225052192721961804334315784142274901030074409505448543166213446184954141127614353080833443319930758366758682806918469864006834055475431531527904630637058315589574744847309303410789873561198708800858024796120387306395329995836720800299204410534487107756698209576726981146327171348408734378523646799480794377279276952348419856832205825735650797526473275851106580204672924794145519805652569088393816020865567487381775714378285809505525180590578376369393750411031489705754133070661121489575527448885032898637754911251603330540626559715630138349441516446238824769103298517113071441445098882742004680606357292554064939162054172469861757641415439561816997828684211739402239906448305863462848042161025705188302926987752858118729861080813033814762509171109022678155726520963778478261648592112167913492106140852244248363369896543180443935401105665379653080848853079198355837905607262476004364490457298587397848977050122308665408031352872382287395078104897976572662782880100921533926987642249551162563342506759778592430235296177168723270409262252075938293557066847950857469230151331527799679575634683714511755476927169541898825061320629306767467202237127128912846077371167145124920628119302817103137059539401523057183174777844681303260851430772396306077716706780209943635298185346048737911195752707653076459855159550568121102781071936812817225564197767051631481380110026524891565590061068415603151231636847422238501436510752913774247084261614298102447364297196389819290632336791618958658620152565089463352466882202334629455766147232186533857639017202142346348071957619776466860916338503107488678965500001731054813839308727403077625287155378644800836751425646250439712656831148311770724150596309433616138081729296044224555126522706467582443529290225800371664144165937249191596164091135396872480759140661367265914852885820751056221235078906174059553292339556784173729988423754907363702656414521729851759950134676602273643456039788811478126819371633240404895064741559636761228681440248537599304944242267152123220342570189625977710302606618369996650250707679656997905173629147053882865547581652539127907653084910470271596389851537623934022009287127464787884409635570940932824037366543883458852778571387082531287089318375509491200105022702611188900175773164519114198940397993645705671364618862948350092352613442528626084975119083445389712050658540827080829085433170157151575766397034702549816269959763186526786032480450260381428367928741065111655572721970779434032111616470659339630776386958054490473900363912363136060525195068352717835283766166526993265428532430275675880792980192470853643038832393862526983304439596178556507279757786719910084471586882266361369237455931001683954458685455142653527349533819672940628679784348116233689441241564134423330163497801310353951276971608134809882061565084335032436555764296812484869294766034720986875460205388030937560937060827424695163513602594651779052119538145576518597291955431476651234839092180133365243447820718080640005129323864984613639274526515868126731828883673076226707582592584837987400095000333036436016742352006594951946478345165839690035354158810846982179367888713529468749172780439777720475043950127544681530545602511610762223370978488694139332789992269911823682061772813677269223262830211495102532282645763629686519296147494098941737555673898530834488306644811723863948250553843760439215719504432606024566591677176378628965689239629703908066931449269464583164633761754888313730103320698092091484538761024233429384517959085331453653400307093190522800760303090716684800898726940032207041158549902879832136566526588812989809968775947694642031556158292123667601625719765247202580227567011323482334583382399813733242390239030308138989671667970897421442929836866324410833233756520081146784823653034394710389714878477038181395774234279351531941150967891752000228431782593688253496619091512582266846166801220496846779960770048427688004369321086484773329266576732535851311592975917182222764213817065654373359712840965020511818420902866049549858149557957539200386240959414047558923951692993042634949410449986937519404974623899566746871664469955914768634881001313370275414928365287837339293738655799175433985099763700606042507354010379223871173630320100305957010463219323036955810461788825990694848632639637629618491239368246490401165253870582884095866986768081670720167500818826313776553270648654734292432881410048063673948750474369605510815381162804691744485953372871362540473539905832322523993502956388631211454524712054234458517244437705815097696935071453168509443366736272436646519435290795218671305918900674645076170417437680288062136196019430966149990455118103460996499893021382407838965713298053716826776585974686433858775058867237505717359062128951346774146779978328400119833801714812749536874373310474715559332513869267371942941213480150960723256001019317814954235424670100342731422497343842230497691956686523043378197429142446233213955630184219267392463458965708072795711913398652401090090287805570865439071568499401533251201980055812942414665172855269822167032491773717289888209450352302055784914131104114447218741639683874194822668857843373422878133768769334433964810468358769640327512590303707204993547911380540881623130113487443920591966702868298653214569024139458899713997357057443252755943885912611698056379984348730778688546255157614384426043488918130089511555689104674034941386600502218849435252760722429291186910015758074773710523634817498563150249873439558485009717629606032142330927274569567948911851041507175512841749160689623155754498514646668716204852129790971768145172301219930670435168803030265145886489629450332856191627260055630189598622094803383352005877632377802885694579589220664283752557918947034846339193418669990651022935113685769308316849322288981606453645867399861332146591040945316673018537484413290553735202181527168835000978367689621247679680144516402014605891070691123468740933949241237839431738280631682846516613282703087799600627784394866408877419763782852059839849869920797712350172003225757366872420213174872554706984132027782628283973523211691239808188581612779379583128730821341018861737122777898005352219856673089617381543316344454329038199945913634370669460999718613838350834902487223573037232391070620803180135342194270761499004968919570539732822225413626102526175252542869053947737605378770837125088947556250837167199508389040739583180569651403140704406156373739411590144471733069895880032930688649831940408497259360552851997732971905509193557137127246233693060459649845906504772552417389114075067126317386731096584946362576467856108403656758674569402033365627266173705965405558646616780181100852922353445257053345733442049836501358626791827846201735852012154033558697622657444675813648731260797653347407659033744340619701416976421969135687118544978844752321019382748818361458110992065931091610678126021159442772269501948097903799926935178724033227466868398221891102328581498568367542408249565460047144017369677590181442944483463572823354623094649685449418153101795594755525135890044374191010459739223656739978221068514086258632051177079208600009823258566782580344358895708983174928691003792759710553387202628080273339851018056286217855298841896674968639202435434937262677144747989287550482793298966716732444924866049440513295132640826786107488909174551995229405439247080594431280755105470202252298499603313630698389590846062687046778018469022681756639286711549561067465248249248801670871136527841213065885207587156401427688978603757354805611866292424963005373508164134915930529862518904483697527655779448531104401299007693525629046295599692568093187844253218568149782979991358809511889550851067472200566610009714619937315814911031374769064939068278050372112789593221212258373008765294179426178836246298211356159409636001781983871247804756908678227970714716996775357214293473226538667040019380686947536031326631230928452305198796149159748986119763471526941460335224631692871345768472146567442553451796510083065690057604421427425059078310265408640899247255289482384224192927290905681520728642028003348790270140002772134726901725002263307626211156200703887419582456126859421656238928199400011469911855223195873827808374295543487108551421590287255429715095814601364973526127268545089302996867209878528975233811588710460398432751759064719831504055378102097410733514863743552777232108736060098061857874322689486239847482111071123101129011904247419561830575597387106662588280006317563374449497319710207632487082079072500742451856840696847608888210928246112311449174713828833025047877206609785257060548230380542468477967842918888595782914502834494264981398322365181775163785633214359288255539479536804620516113556347399839129730756935432932590882313641703989288671395040795176839409050097316764994168705195982670623061489372575271467557013594488600503259968891081974179352653862599018508850009559537950832674152267128972480378027672308340857670166406657077032287138920224581133236432473168506271482885681500746934013559667102313205688116202078977953777011988133503334063130617831875957088015491855987796915397633045737738026994807219767076858624704286390888467251871806229612854630955040873791514501350037766794903676069396446949246558732810941421645931701721814112435776237962021634681629838608654169447592978594789637408533222347886955636914678895022273871843417944564576385762654200634975411258563663700532946577218956043052138153786056967905733772700435197796213296422353241125784920026541598887806171521350684308306896666615367120258685114768495453358352119132976655269362323843399659007727204731394238179550883263429141082576763118187655584462950128858735277387609982123627435214176394793877150588014799925486538624082367032050675471121974483344729444387484904465008225346092750937900400832178702193529523242026039648810750290061017871948073549770862506968509638298498636025463064337694485801405688191561083728415679172253000503854805383879302490016176365861430322375730021255105331950424685417340598922982679705602761032132466256690859948161669201355038495977622572692986963144285766932616565927241237018072696685555748287603497171509925686124473608956822127631924127733905363219902476960720674875006120157201173874355284217979696896379246288266889468813709832019817892415250435367943054429471987099282090576571421176792681636369652347094296560984586157392238159986422416086856989643970240501143615292628103785100043931051440410550322418788819636114254893643104853303742242669328779959629395816537652823182449292698623921842035312022522389373483259297676929475204004306570397248788018942560323199372219028683291569525847334862518827230623752862129160727204781204861032244956720796148468862357119041355805034863943403092098269133505992353643364733433307159182082132819580843527590227614937754438617133796371607084656581923892075119034089258258928021163933650160548100369506890933556755408001223378509175621250841942710351635965816526441119795376091715029932546337025113995812727459658916391017912603723405359488970170462131792450241832230859095061420030057050030587630723605631912188488975103342798587774213856377971749362589600851982762062224461269602450723921100922874747728821102167296771011167485351274022754899582773735820431533773786518173344037646478327998311941202101845938316420183290002819715455131462710026497295568607524650404220311589568532949639219624985630354106269755761934261942454947760002533872690022078890990394887299491958964150545893758711181295444908388504590899993078873538587455646879706162699482727127888508176035857264145302130039661634761272774946308549249849010391400900223164465177475919675663274620950319778450300706518253090898872328185228308773909987413520121330962064003237350639553905566978451938499009064661693741795394409884648440345693227631515914979643635706289327842754833116592563785302334945464546067862051334614183970148557212292306692989086400421089862103067993295596177223621790811398467067718624494124095893589023213264678635925013194145609986433600430979433599047887148739386856818946933614848771075530838739159593300211999538489618337444672066064522056634919095574423315447757233354317237419879507902210104973080585783855511599130256719408035785541626051923164482749728780418139360424864569629925533339843775320653063585462951352409202294109486522332663337159471460254983184861241682902375179979910682553237587155846047889680474495335045240356171937300528676399587450599682314008503735522186042062386174165713598530174628775240892963461817981055254640871135789417419908598471477032571250674446242971703973987386649994266869762630227848346048086659975467202985253740982111985003028239721254815205709135844382569794638462018669105466985441143802908734469170659696043666312350530449950436636216369955904172017673819769133790327357138627345102082919619639426028232281994834650714140942888179029527714966979547721541548681405660169866450069109483406429619375323354496428197591645176102673187913757304405090582267401808331017788689060070354657233493821049570728777966490515839850306647834471322950354854515976482641203559137150442101602705853159353572575923286492697630946331839594470708951020239614244447834954757530862073904822180418466459467173788934472671200158803152879504955939822340762501611270736892254549320931011649782032999524629359296403060023349701900648715009265845411052892631732692273765232954439242136107390613336840346132730527466682333376487037679833367634603565152649719449694520969589915029484896390592749581628999985983901671244988229323419738104248095752071465322130150211774817068431497265955022018370883637764781486630393969107612126450359467666225144653777187101704539609716580489591723991100122775023302307031587652822203284535520476943067562191271029463715410505800199448410230314174609166313207886961589209466990964213028333854345424204438968768593839690862015364172436130303943410463700669039645385665593759353448224891621375979606572930405390773121325096968716740967851058527251665027227101003670482913939795855032426615526963651925588588112976568699728600756413578330383841670063495010612387076831622998983958203284148250887545781593344380220572557461236935978734327794084383685220192107417993871004861808527805704473838152660245914467574269998109988149102692864555283030594057803946685375887032294334519944664829342818503559982999591494010772948230636268528406775930442352113848428541413594636851315677342242258663447361505140111436708183940156615015993836229344888331392788609007703486327192595810855197500768192774539596153276517563152022256676410764932257134668249246189897693337124911939715042348002492968185829978051308172532405492417795517749420959179788207168786598576651978703099610699347345059223607838278722740739258764182648118760861366841501310336297234779096346788423255770219520285796001967603276047873396145337250872656829263606515121543656180736961873917899582376885945801267229923411430064238472909473315333357827944816270150083363626188977516347766664984850466386093320314493707725366805986386272435493013449930488715964528155794011934862363660711316092250699657566776674365184070742572129000716867161221938849092492348744931394438759357676716055857112647930972640299652472036607281964370442604161006060692560730530713489555689634974484909894299548353162006322564147221633215988797474184140573540530489707512432238514326333352210587734437874121029508208648582698921307710571717804449726356931105106636174489893331930048586125987276345221326481172386669016336626630838126166200532229607656949870781797979433899684540846381074596881499325506993495977238376209895941023808374258040075464487684492815779630726542612524936093036186474514284387180086435501944905907453495424806053812716531299192209300811420862425905464978337295651434726912357891484910218325727612120115368211841900223009106504922107829563444765319719126683546624682570871036772418620339493457191775431579867959072001863719291605369372602257898779148618056464742844431451861844520944097783370765990945754813590729099576321803057273501888017115178920270578587219010400785401262114539440259197530844286017448764784223149160332519437599524374374325680974279327067859121989930243826363896079260198331525338642544042915654595443347408351167037368716328117275801797702987988097613603110846670720504878754672716304991827172773244190938088594071528729962908710374937398585353604984741476032041312774554973543262735361293787458834410379083737993452428536036372183500317499955829976643036074591252802907210735152840082740561544732791475349949629705635776280349572598054509075905835619368121517158355812724116983889361358026667036127271992796314860084957453572471175313531049697343015939543514149062177897884040958111339830647151303424630407950269515055451149413318840662384888027685769265892398617475231960706299565332211893394510372580932193331630388958359997635568955816653472964625783870590796899327485413899943019691276070417847231804827481612654757377865240966302276319853229827797571019643479822940015789015383129765919046455549678458422677740451208285337487737974227789384895348455821455021486338795285844503389838157039042226067514392494938583957089057333550400231879990046358652600381278350480587749299855759633686184157110746038298230978580760692605175398098732956062838099274497312289275528085113906106912214257952027142134413039044588257162345458522724681741042072651009871788367573190586946014222444860635759050609141603753256501449072716927732680591967945071726224411844754575119501199653381300177421794039805145493346003570476165730733428667131229454321496735631210791413512467275181236389491960009786022613661017934976876304114390209522884370612281423999221063869297584700403025719232765973441709075025321724137192533887728289474085735761014965916815549795421487059963410675330454119580623487015376283617211482819980705921273897516250989212833431013734840091104269251501542706601756813725023968700423054320194463501802393805617428182756087527361726415283959521948382193000761048265833428693735303141462058864468355462897525456484677974268623062642991231923047063100759356465117340148748112864259040383670103523503414610624852827600955807175456220982678932469598731897578334951306729193057187138095645637482485529431180893413602704315578494687894269413037584791041877639123203224200939783961580699843188148154397578632926308665367673934684561301723220199355468617917105327676710784332961154287179459652897943361747926823764807589872373301028655813002476485295773696387971333371798013777147425473006046485435568778500924990305574512633360426839969310728056034502427589232162491534712492528406828472662765013506344182157697214625196020176706229521741947222067744464270501722525462845760924176989965944045269803845090776627797817890591753652458187334923300886533960371829668495101556770580838136131442242364394325852424498773293521614340062233452174355281486529174446859097198162137294213653064256104224888372401958826710716078565732231951017052714127075338175529404506008412237603178878799626007145269191370963892812307021436820160257769318133425324311943409358683932117485142009991271500111575705378129023954518655456028692038598163467992132211912954761898136294857079604254054217224896823451071219900544026287257676915086993253588862348371887764941237023801101129097020702533257131036236946123460138671627516987194548924184035340481453680692620889042907372608895254161347470097614204127358239191434904955078809368817190096730282168567424417670357337454967833640354326831988214280305635287439100239689891999719304698712693237339495731524027377001395365594614772030513449762174594817237815095397213418446610962019648138497403777714832127762964595510225825250850163541678382252259835216121787678974398184452858511368741360469857167509320284239656231960104618220148452071441158864150008654064419531201687050146071594911239796302604167361629942570317931554421539283677897390834630202939262211048878720115376103330715936779716247619431028044533090459549009841050331845970655651079946140262094269918332507528591984973940833725759556015781498404908564415815524842254346883988766353849360516329497502781174938916760087672587152866903555267907932533371593142929674075799267709318360369167337184399048247323388689866491389818765003479974286711164171702415088139237669362112884333525055150774682319409075684320827281999273848460443290187942342424178419792313987572740135798520766660144746924345324440066411007332592797039038009438533608868016543641804128464166177852283909516425385949631159085462438479177375386151568538084455004378631470157144647586530597790846497579137737468158345801994247777504801096806130202286879129779424392885018748528165402402886493761969638264059829834336956674162901119732214707867145901804887832139361915942386778101097884303724597522556245057568566560491069934939163077489087225039261317079057913621314372675627829763568334158461784345889125300616427477051185263793855834579475008086330479965846255731677817114748551137157556901028211979846558963577768006599204521003779781113255285344954946926060633988513415156961145735887536566895301875236113204772172540888609217388974859542338348234782102642466797222613131506133718034859072594294869530272605395975108556425173716544057995821989879825711201272066049600274875373815935919937375093065454167941992919610765326241726429788927210777265937418601143241927525351686716849501345121776955358496969997678993840333927384297887446257851352040757794004659216096964777452128136628183981465586316650817055328959978214051117534668680844672946336575448941344726445103187371258876731149861150152609092761151461357580814666673630848802794478280411905528138228535515563527776834017824734494287447775542432226009642250019282453526687313715195714063353485651003874018577829173897303088876605374752093200153577100825993552920352006549642258664832158349845787541645949313490885378940419490548238316986856028510237283699870601525181775474715445859084381243814463114676645679444506113768981568620866762291097492590434390507041577768597275790486303416712196746595225039811246088608633880031625433890613792450891814839070246371689116051948136610554224931830623780471679738782496502906331658209571430289144096539399725989955373832986108056782274824415225010202564193601798286428145030082035316452940820533398644456810826880039910499969805128445447889874961511789808944895801636580648927629219290699155817013343867287746988565997446894497184531678665097050289390617628914259945075479117397918153297115929809045988814094298841738703492669705926125234464872893061206495931692461909854307711806391304826345291963570876616528726751097467841040178444360392916270977966236265618787117359488335201323792562950118522079431182202219354981436354901473911489214508651570691510875776191227605723717259682265315628379574690190700362778382881694071556798355552260860266807977137519975298470092855247182972895284431985056162750286210126141857020021146000732103561286335346007916544257263129303168321148973998052189024062944022711418984792916727369759637261180143929733293214103257863344549241202113405775933108919278752865537626458234544880063234596726250252191621955323916920432823454375454996917376682748196731195394048794119634017357992756338916865858224459047981126312938063311041391662737912949362291523272771049619705790375620468076021621885567344466331438155558117709890525927333853052740640620127919753514964398831282064500553616265832847967064539073880466539292167454223445434643575524893786222825641399681238294040131127080149087454923301424906071418517315375291409380453231639399407538643513680026096437091301681679807053736657562824891467423314620119715340541577234103041889266279427413527767112201271513396477843252866312087602507661638778365325310665815091849996761500456831140600143642623210920318081779726313326990391689726274996668160127850627803480054759864817820311474741518786360610364129750620295629381838347056642776718868564811022388208274781160652236027080455115601427044284131061169038041237451721234990768466863487117940764233627136581685479184289418785874977010811504434667491809818417431878036565767812978302821185315446296215185512747730543446440672915953301199551390952146155888211853764480808973343181113107804033398313680825170616846301774109204985775710748235932608971797383213533339838042535571434300894003916220770547266247219217432729534287611566395942547223098744917841056580344541561545554546283430850354901945186982349560135260267600036386348084242787649998342482837988891526984690022351971333550937717779718048258342566807514405643076348831878439695880506307571309573985513152392701580032333482244353227135612829609762421748422829117211416787623599201550152468640166960387975899022228143741435193809338663241632914767894733533283836680421409381153270896576658641895351019212919713322968954679045946911386464102328692375450239750413516619157998933621745358298647987239302601345307980729563898812674456527925741922909613743349150203242698594591079440140507248086009843924906562247468086207478208963461738681381095137610316867157391971520657889119369191738977612443591033591744750682459433277148724148416362983958063467884610052803923969795853055459935027729219897048562725661990818440638495633857024373397067184704094133509746572760160968073093698629991160577599493484836647913448875040363853584762084171260275372223426880792681333953594104778488456990220420920589476801011858719229322494274274890528313937329116748595903477181222791454886600787650786094384330778702296369301042547337411511424376109092990280594114368000828108471424637153317333542317995014964450500495498806483924197339519935290762742818243128921456204166100478001439277609071022747282259987442454797648995636202002087674755508793689842435457334994506569571877587433432865355279571496893726337039678656722244900320529080052691458879574763108937443640635997567813157851809387120136974403398633416046560777651213313596077506986939353952225225200301078801089077979115731493780185688462018454654532330555441628568353388657527327887403149106237161503992408004151129650806657480745663850095763601523794391283656019408677210316458234837183855118949823112790316109043085451570873260286131003446682577872883915858625371203113862427435354106148828088446340995649016464413406037555773427352300234384092378142711083386459979671224180761187342755768589466014262881982955647481941141529315546857303615670182769601914692237984242720555471860737268208108171590961242194869618650553166303065911996835871561208378905601704738966878417395892722702606784325729231013552931489054060463708355016522511903010233722273101208528141069379125314537862464515717545117351126335671956889997309736776609608145953514988613821439038703114779986388327767233028495894783676980775323788814842385338399685840946696526403235688982775456003863302200377244032447394530936472935315750491670258939915965511728788131379108186365110570563677233735598187944454757281757894158096918376592561163100858372142774831340152425043900419100785081396479841573300779004620378941314703375330725334078781725304128305644516306865390849590019529990280750338915183858561456892368404928179982503933614139743628953127591532720633670553625672004784181229752164682719978869664328363008228238671568874944492050777035256597075701089024439940854227746432656172627628179715879474901538125614434935356318996155276131216464804941975798919119167433743487217503992344114165587480225265654133681453251539486041158651343291974247363773058739013686661100374069308147963087181794087240714587787674385850185806502903043478179312623055096322220691643950030589924513607307129529887049345719993913643924825394908405020675746557121560631921656354599816626225710884250103211923381208764634547022034367193693558851796011038416342315399760511858655118365246863204757888641089514474211094338494303928600441762555069928817883435119681227906917793189406103883590854408380158411687889955373205741666933747743875694229994689003595429893758901010714657972024519714750102963761264508164475996537696989186444354637719695189423537016510755708911092092967557990149404792623544125096328809612360704364723593660413110559596619640709165458954951806734387537975995804944656372791701233387694487721143789444846416216985198792312617386238033368297984656196941435673722136500059973740084837733891609596555545502003454888966932113487024169266127691359953913768577361168639690468456811875282377871013852224982609035989014611388092304515074028808741067300056902428438707772719754660081337644300430120603651420731705185181646875884499404902735170174863392724356166797620878659995332878618723605722754110442883957859838668497921398282471322439672542386828310096480346365835819699957513344304858522062621489897635197052268929045499861143638851327318541914008444976559265071600363570456592024407217154226527221662366107063414133470367767297255845749978901071475208000740894194490299508063942922814336886790050170395040243343919021584711765410063436729384824112490391289161432051211151880213760261556430788398903257621012603605493020483290189858221048314902671635989623340779472071894589982083047860706262143320729388367798644784477753596709361793663149703193552201804048934681550922424158437952823606383600604119081232510170204201052267957272811454435938088708759690587971337508137947269863430169526999710000339952745581932884325275479096488819220668271445700389238276263446273967970823753198906006957601141458396043066723230540296485084944610462932814998298885369659280194577523263936714974331189001524898589416964256424584246328421686921931378740266098691447535684612020453147261106186747254202672192040104601731219345821965270154450899391394650945234185468548281142679726773405987498131527483438920516364231938262532470842260952250626160115684063917938982352814748198246064592254165037459765108032077699969081426321478939420808786540155216594526539512370809000491051068420711911906044943492122824157648340887097269693396391384835310633187345563526819732690572369277408198495536885836616984532109904096139220103420418871184854874888846962533594441661789600008836460973950079936175907463090991366587151286211115888023095885628355647333130908464968264317447576524958225299976758359318567272230011744242196410268616957946202073034627147396198311926805841977777595034477760180209894175665444620329320971765176184604249647837502811675440470124097254168713087616599666359137554764672940916722909901031339890699350017735433186004766600210265010251654373928608357256496727928072216941259224220430021307253047191676837390579723189162956500252921287238053499155522279517719775963925832064004035199947290216643955562587338884064906002817998842603840277885026572730875707536418051035724253651363915733968896666376354104366798962076163375870002191972059645874240964609466795528685441530257346541612325397912116750228254701718854424213419377097114569844707756245279650599392546507195505294421768276477947423463750556044808787630927034607941357325298574607019334208585430365336958798309196430787351173754606239665796312392935304678312959212119237342230271438895443586799709590014245950111958400573402779336574631484887198140785843623364142104394704735626249780055658306637916748652791826070068823195358541077553944894982490910950583500868948034955963083634600187138106821530174213264179964958473262975114006843244427663489921304261793550146495544115862826265843210154834583187863804939161480963268593299714091286762968745362492866224309063997825100870707939263124150626497996839823024269682573905897582133142802901881599232292445441098608494224499537851225697003594778544624519807776396959049145463353075430949853232418934456796756324371404154936288007731539119247835521985621051014181960653464753100610918685310838685437705186548547667814482551589027053392610394650526022049735307274296362033824857669154066651157839125507451245465967806375259204818032963723813797819840853548966562751344492694096058934682912703939017585521912627022784030487000735023130877538011321708782938464369550304863284956086455613704538162186353052575559243736611866951874387663395818757896800290388049541086889464913828850077638475207376282229189203528083938855900048921830509913755318181048058059767104477583652643881149602685974940994370351008219225269676292544089900502930806213180480388754576278184446678001552913148212036186106488098257391352541430063521101819606149396201384352860676972242053162847807884563750601345792134495880382870992752446018002541253017449550509303126237889692149721074462523760450620810004158619374353324374175042770284242566352114354132100559251057438553378484333534243521718711275380169307084712578327081694124810060987274891755664816716613156964433352529380142162149323000586261910718337496531686579585736504645350527221245587447663324913256744961205023770081591875554801314343093983040672148918045404002748344509174937526953563581756384376999168475871641153837151287169698742428746308513975838018878774620325367116246243437974736619469875313928171974939770087376940552496364784241974660134038536530633707731510410271352021675185321916990976611858355311966205502141220188093949832578963810348845645877277198465875615700892517954984870188017599648154902709827546561978554993006741745873105798783464997709319018223386366758977301753934483084111894231915939614193601024746014918814080901277360598588425090129319546931183630080693854213171495351139853159216704668412439016714168253693971739609407568761785667645505839619009729563343344548413615737311990211061270090180072850351738779177359790837109948161218169803405282730786545506315416697661249789893387676225669464864550974953770495710901458963962043483800343581896312857249644850143720555892783939005524633458214888300029715729922082545141819851013237385921160831696329824242631977184966783248072076654873091857457183549513783271919155434360110912846825600827041719204386096736167500773683250334895188953707566208269690809706649440937859172588139158975461328048590669764311385127468337800989074877009983473002636863178671567804059664053803582250024840302472239544338399299209280734563335188475053880145215630881838100670236772752279432799761297417411312013960178681186105223790341437461707670461959987297913175801140129382887507500692521312580356734720858005735886665486351158309882201128224582057033027835679002739368260555557710512100776739137674893410180941444873988537323230611935490006522774098768539658430103232136581544977593059888370076337834780442763570115089958797568457138756480839324220864230417931722101122447629504880277768686589656710083327717301259832535671490654874118990681150314063025987653788652769050290808924064232957510994880707849303302296651232601336014112394871027820286595080235253152868525653919967041607882136626980740327963679033143182709985500061665474255862625700115229539689702167313068758101433650195996063313480909455658722656484996899441283370305350195268063132229690091679285323754909356026633332313357455007669482624113982101627367763519806831892338298205894328394235858917537262517494369950846884365560686022750832612807738239579290731807091576701756592417998612006614208453376714194463186404354023215110317928240743430999948892038049284355372830585177400826566066910472409728857942948091888224074602843648403901028232325508220195705256070742550007555775772691668915325563720090292913583970744259834524624394505474591726688039775672363677307198461904270415985754809998123763537481218856446645154115153071985095530708083673541100352429244222695480355022628568836145600176413185081719532499619434278349004653031020869766977620451679929408954913469442043293160308003422271041952835741965740555366308788577520121906521274210499657652338804077728134727923769965404361981663193766418788802931700870022572028995440413556966582945669639664933007645038500122692546244602877032047554026795331374328661865646059316034870857785963929960346200357327160596176490669047848428508147815157889705298785964827056266711848983014206732184578623276783807199321186320040212603853935634595292144521598720920557664379275233566971167848224917848280031759226338557172934052343467493238305572935668444944217205571878789440956672502215948472438388958160305538478204252602176267037512778922325453387646434859913187329245225300876307432214623999188512097474429103541190934594825761266579803841825363724723846205572520178404003678970088327950800084015275178811361270006277581301331437792974731242917313143645672202713332988659844017119919216140595243249871180342152753613397083078725292184455071912305023076560326523367126958201838007113075330641831111592662424805621124461216915420756876143005344337720578559719383417808251607070089233487852042007563066717498529653267925858949467825330845610846271635182524414595132588438767152951831945923570425992409896510499236618777394622687808327359490598454504475221318598144577864833814126386518785228336282671358433421390204414007952215418027950289297295611017771633817455999322111803779261178160830011505546998092001384014547807489244077829755560548204614091780939074642253023602711990357665577847152262733398981334195616517700719518941175410256616067933906223297732334867747652046090351691830312586006338710307321578693870306522456333018717183457688896496018038771338752888161326091222465588206155295428473692199621004164198985969658282138303989527495665150845718264628925313853873122225937697845264513584115529578624250355506292640521863349008990005414073747956877940920486527992522256748221505758631086629223298994512319905107279260443568939545341303940377364119362289682061998136900459626776482749458875421683296486994649732171752816081883100410792902799650250273229150631460936317394966570487769678747107099063667677787089815531338150817594949092517065814582052417483160124217350824531022650466418894217522653043525988998724661674870647266274920141145612954863252886341674014274110186658820385652004975099441192679208436243361522924338578884790361133008199908960371814144112181823061309995427728674317896495038819742743560254325580237729576195742110830001055588068007336137895386483990576120925085730993485945052582456120568096985532730410885503429175871848369226097658061258332465882971980965623474596039787733067391118688567432760396935226569666623521755681958938171039202731265322668155035395842238736324665824785952827836097867261496839831054304377746528026844992512801885617823176651715183059110303897301552426564967424185906752344360435217391927134979418412525502928684452523778151281148469228495831948301623216656394775844545913381648350938706527591680064564512840943267724532229264837256540863368372116820311391127223990303825855780821492444389279716620654320913058931702645380302623499675507361198529985951424864654978190389753856264321122307665978362978097743960840582237505640817627039965892756087819041910449503138901526390975693333846788014683735450716876894012115223627885535223040245313423395905854249625971632336154421646363997050291537711473661546048240587040291755385850493316052338389176838312703391905097365509251901394445816862432923239052686852900986430640180809731264240092794736631963481097809158372955651565955518051833836086509000415473334656796045748927012007671392259484154548252517081131721207012630682927999071321592207333873259705566771316280992917008329922521418473297567066095505990797452556673693026529713236730620135311661118938219430375182018045606418500524420886386941005542007874855087617550673399747155227273708713767446753818222105989876829124625792895545175890044084170326555816999405137119941984225182885418254178577054783403064887070071928412777796194020938587731344417489421208359367003193389106354752386002512603359833740687007451271623146661406178433461509064270496572926577226559727849177870888043743964814800559521785905927166620757101769741553744329816078832252519119776165922825495873039104024127216614155036553181877321956900880625449908553365835696949041366605994495071467640850831991719316680848963352399237946074202553754402712749817303910929818229373100653198902210937558784308246432919761854335989591163729032310398674740386859091964074587251112817885941884713577029931052387159014860613349893981610025451444106434134307654724922040583244184522829376871875017238151799155083097707110934730173036590559491735406940699785698320564668074626893138731423968168434741878187412736971734868712538965376993105528379371995369889633455668671655474737328902859575621597567983299992357143123968002629952478548618715533329781622188772811300348181685832348287216578013447411063945824145198058068164449717158032090042846442949540618279976258491464133509946149787176778765063586520742031717986241462976437627153814247968253428348254599733843407855338259593132333557801708574674995124964633212575668920629097930106244745491392040255442595781440941748488150527782315075304134264934154809070686620973573521760368772853606532503076732240751740019084719336890811960526523478102391571162760621459978038679633603627078656449903791063993104975661242874303519610306727346362568047035623293705131248440354708081187567698151486013583036737060195056411695165212557966654736530306881375200433489094161683603001528771976539622580410912742069246068461637393825797538938556141243112909486270428392273202223644259166526723741957419726383958232297611783684246961061880331309253594102521411155025247832192891559151350182762287604135994976353549363018836299897129402507505438958694090906528132972567667135782860714973342709759421985687325531736563896498817259109341024302016038747374432312314205292179189991404472732135756917910709196821662185529274758677363776032360766928644959035767604422885311200722967588696960399583349646602040759873121823902621784557973051118622912811575751829954490091239110197607965297758263113420787041882650265530464912548591840669496967564105855025023594267272455654669766277766594449132134069861832116716485129810608106015193078915021147600836590248790130166110197811748162783803875849182060238699891928478674959190760751186012267319281899789216776852336528768460793037002249333099416902206014183498190059411502907960660610012122019871115304679196472665514318155368328689176798447436702132576783883689147006704032872379639373524034129278952393052681750210638046273210094788873294269434035556658581495303694610996422760316388302857332420037403839586160143526830325309686221922135270963144280810053908291280954774101980287520466694824271484752171586878535146411805434896792756695628794569442998784545701323322147850177127821652277882326591734015106694366196326384326647505841354402190044332512364138374595400397561199433100566977823423408589739963259402190506869675133289233015780357661181655757637402877248468927026691115654023654650960797559519136806044561933732737826097772511698876212206525243213395312113041441742643757177521925330787382003934548872617792498003495174784971318827466869173540204865904436362995733238896818922550911360098558655092769809782792953210546046053271241808421894698085374771193428256249549042833697604962486359895522065112422696751439071558841530246969750188069464580011061935847256313091122278895549162520015230698162771494625152681377031439865779139545318747104209436900870823142342050310966293974961132803828123805175108052533628810678983713703013524004134862128367765117143619902909462478783799459914227827873526867930109759706842122681790414980648608557494358941222449810897877019079277091016226136380357409351114150792642998752481029595289491119742672373808394447149715372620742618068419926767043579475393951711947766466944480397861520602158995654424093315715978113976795680883393658604475692982287625555214638681007571617353924320732866026881240416043113813734031238101076584379283574854358119268289039648996914002841206129786309201154452062020528120569092590086377962953971632199493421978073550120565939189126901345257481852101944802362569510905365627717128673427097311920612576901940229570573866231152422331116258904934243106995599949444612072381776582278240466809438340458400937870686178314696280463099767325495697937988183990764093534194876968901499643525946702088726759315079121134480473225186886001910379288833137169667901379587701665937487770855752799075679017342335333461131768412897720375934776983154712323052485170030525669997355037885429179934653815431017726402039406381541190398680875628937047278643489933694296204732247041227189188151812954707171003597605356297405087993093141726778220245804750173394469973483688182104255296659427813681931261952932829671568546666594413667690803454671352359000975051758372522028104842641100562433232925518186546169284145135978925770321739548946142267991838285114382232168380783599568846851530794310500743008797145779908670879406853578026504805982971812819583620540322557125815620320524128314410745966837484549282204836531688496270687647825077571910168102672247133201630412735849785240971326872265219637142806119968358855421537243956757015467168668700401016545064978150518627686485716796009299575132380603931573977316348199637859695970669413092445639021138440980313433546694295347682863564077993367010748601042235841992097522982950038191391168652309771708717668300827787437285184781948173375986595282027260888832974361812058616419054358722336328616325724106599331888844532364112370348617263695227827679332644649998948828862858521201442588660347968288101354599955045786806599065124732831939341494016460093111137994673903057096048249395026913072388339960669990221030373050880815107082019234237483981953750333941122417746926429036886593988645437892681492601470682045967106002637797125769663386618603756661649931668474436803848693902842857856223755692504397702475121251533413237697225941097012176913517693961242456548322047470477225155519297096140884546436216622114759431331759517026499005269022972895752106076443966277587936459925051584692986966008665549068494402477809650237270357282812748651456919550152743736705639290595284418163356044988661533683837660517811430325964022449462460017867618344194774816230221982724936123017789655336383486348536531428709709182526546395564667698654899403129620810502241192686191977529876588528169524544041504273613531274976260423493406683721928994717204552652659206939414316654110792309484684356601724675805637981966338657288083212788941059315092374115697404956862773615935190570796961128095811019723771072032583148026821529847909711254838137848337957412678886514378140793700388668756245803136995988484870568318735809795347220608248880208395057125917443840679941248721066375395377469614759788807235775439382602085460907796550504818386440643889511517773390499549470318199772277928643575202897641544522024783195170578711528703454570687864702032503640003390021665939497831222129875485929609332656438185080662965571614305477987520680010716237176989139150043440619927615486389739221832219971067920292534502040700876256487939584037280964053174072257019230483476102347371523084600949794939218488576112506428374230887990083097713018698902640292045692361343668468410343450086897177957047381226862336309900842454370009565435655990513004783862840505494034908426106044101816071891161610223725134501257534856669213750630355737021716602244332326145994895187839153363479957203517843592509220565173790141886718476898467744001622155565273747912115752246541456527121244434273454712465350845746137899147046316678045088952775215968845889481882637470645317644241363413785462690342501780828376765295978991308424277460737774612348370958824690449300227851485510689739768612705954249550117841855394241665405022918637077845743632666933334641561193258395949801644081347876673765329625589304850797633135678024540684618361992084830329796726831817372452057744346788137635372224202846312611113633866180043324413429631578004451551488824516629959767285482457433930143307962037638008539567833979261196981273284713348373157020126103324501966259989260200534393417629348459208761261706878906254094694011057102350331495802104336867076162916916952173577114772196512381804623172752261982590081771088671007469017032149232185364957409904133241142598497068497799143792696353258314681317188234174420314122507906416683197362032108053803866781117971157447109586209970329033400843028582993199573323970628969337884434287867601413393902119748615748747791902731207412388773951626119659185352521008208117551183962455921248929470433987272487044951831573532167524317964381925384721387627913392598273176283697427574440035674829762769587535078673132799731950908303671521975935770930596995871276798534964591337275345334354728903205230762969184103986131454170247589005907101330175450964796782906189556605371688580305558237824245684368896435801594007062701613864946894291112671437009845696341236292071897231718163289191699613912286717768885982932689652185751386830466221634072418171279089110898363669469285903755470219113115464486192780844850205247056735865403736272950361707376089467222338716958004532067162057568805208705312486758350531485323342790100327310286005117285259981121896050572010661781612664891337309679140734237133644398539370637649207883237036821271692817235852592615039137864415897788934318939642690474194288947923449295638493756960716315417325274129689279093470428299782603968600710027468005938407737004478737139359669773819859743950918927894684422648700851325980321825230628074072530868045669118751882913072878217074887479210203139454655014875440080287456053395952371580166861299037826895203161646071755616681291590219808392609529158334062902846321596074218822192920805070944018701249346971150992960170200741368177713707897449457513030172835766400046735219226254854095169337670243656323597188911359297323929510581908951990329879904471804135434121553048956654930800344103543925219731030841101326594973072291231225257109596526645925964932517076808935631544796510246164121207454571650989742959267383914364393128387954944995164548995171158036346949851127830653443143682894463384316664121553885702643988594521168422074504255639978645736700304197170971761956900663710532816689957477254586836758443489637759750425097878153584717894087681077984206529139461660048797788967300701084136536181472922474650643630063074374880721830342229924710160482918068924429154859604120646633484923423142453974325648895018494578772533624608830560125155593715383708455262309795308369878569249855769334822640974066747833938787285856828369066386717622330255836371274188043896160400520757272490883985061202177762006431964523400842215313979349062626841554470447467855856642058503528947908800289547149016642259137182597198040738919347527037998267741861150002038635355011524596073921555548702289788568669148079632843043657780003917374641649740271003172553875693903410684399815458718462241398459898161895236111584680283321062451771712680902198605883827695635661292146262538197671674074139795088712789068517593426020421685681228697367787661562972488494126113292724324919073282462761931979811909611813439547577664653970663989686811100684733497004968142728850377957238364203293304473575520498674262055158548392290861159229326794210745742448864190792137203888162579538507786791175468857031371623952485247610089405033737976851780279694043358351311560301446452910663481840951683710364267604142237814227367174504001743383870224052455936456241323211144175629586354950415685589651940124882951203063323708639587735967353055064645350197011380407411978843306430364785967960357542329285545704845232333903554859201597157330834943375327159598731906995440540020552529289929746363884184253817638292359714673421682378433324792172991528974824690794048284785107543703673007170286638467806257743415429154629857365213602085104260109027682119663238091875721027841574942143330715534863821552981120016466247440136983659033491479412423560041388653309754491214467871261351156698251881544592194054215361218841903014019714352265282764294150507625510751652997886821665544483408300405129534912859119850126988792070497460446915997741478168872128288611773660884013715179066063745295696114033365718651624608184876188557523244249143220710352378614952730434063499374454865424891246021903644896547507378214457660067971602776170342067210398093811121381744130622805112759043866163581777099581322907853718039626331895315940838642855517605973936956823958008954542621862050940744884510987745951043159172244875051313186511202550492185422597611019845154469283497691359198788950274580872129628696315775170901557160338245838686061051308998594719453999939426066991909397963416819475412460917670880539885819558677594271262580835185932520239269695948322582229581590263261139873429360087457129612039023599076185791749188532891501031597159787884092639085197778709939911667318698401708198438036819002308122488138045631391539708839744829499436492382050267350015314261014631709104058194470661068997307130100612486838665628412243521124638718911041103819838969361769705701278455146737262171703467748201124508026600078362200067644714540527804800561056298241892166073172356134597828596748069099149698954790589311429177097610660484760991940315109673085999023794524270076873836944330777374181592903073799676830249738870303112366710376498989270578962153605108720693458430280914389869134011137378741491240029571019131460856656287438117642606874018074483086597787064161880738349038997937395165464241389512656472860508300077722555124015822540118374553693127688115192785229130026997756661176325980792953106890453435911069464731780712613990691990575699938110488256610844477896277098809695935255309104974357309764330511739719445306232567692854966296356979140423349380822904210370344319372185698437432758502259839043767662910900091686713155749664357644353509988277786638068611829515079554588958019977865286291088421752817100697485886911493235677259358611173252701359346565578984665331063181912150203610347779013995312998841285242543182847801731763241723478811770925705538788247581556285283680597142921739717360257804549700084286386267579803432322936793578730540155174540655601780888582721836350735991422297268760753423147474011297816725825138981979242175138661101968355467960813637577656260457375131355174450962785640475577055640335104128524197495678029969582225536414468119805462183398539638514487686865247318828870543872037252467239116853478308690376641532471845032968947230797487543697326582674392679954577151708930383158025305196473104532910448343652105957203014070538460863951399663429301328629363570940749839369845272658552324110954937634743975760228163521799941910416671636686477349482822240828385394786803596279058650737727405302439712901984338477360624013317065401989873019863525108622318151939351044012162199933848462384129016886627878636384441358766594522504833773514073231137731988680915491226841524657998620448683965980263964033232931422571692365402801079189134440780695193597812853906460493072646387315269418521511828786762936940424870925519703695660158002310210028565819933315729393619380598777299410739225857725905014964037972735641647068205399356177526784221932393162167405367376560016238157580636141427432506751610355960924254764729394461997842475955322533547922062460156739919527236173020449856365220131325932477750287484494651948168483702302299479464426067941148328423934138645600673615950442132662535975226326560210612706839928550025565044927634373678994905292199244604079622151740965062667648642269272938394698167914618420058092185345156583474954623529596620963333189211137605934544159404708467009099768286181489107800285098592128330454558489384720618653631411697813961371185139505302493367447101402850563351536863005457435797865152749105064160296163950222449007336961723982655860865208147730365381748188414482091997856732850997373556366148152634242399645110459248324511206750605981378372547990126034830215293357775659455416447799463392424094285368731344640339891095369558573600159584449713264578879586138530265501180501644683668843465936473032306420562318680534582103540077013323247199220954527215582299583143012663435126872650752055432083809256939168820434882623207176022192269108218694397826080932393635890915695239252568520843444801255322804126634845196188618415416673347448612690246317831966687506352857739365877926591165708039528978381441619697154935927202560863005361824793193271403933732051732850228948498847608654167076629070771148571285312309381350800262401223949903584515221614148712373379179955383697430687212784814785093501015329100965493870170615348956920838439519036630603712606968975251562666478036949066572858548718534540458384028682566033171560378591504557704734199686356035846596451090258926253240854525414826168558182972850447664976948502427082768902306806729671050298362097952806118311379341526324410217893883904192938300193694541372942079382485699287778271318530735780264642923539175039996721132594071436115951123866588317283753443792764927452670006661072847952254954978540656316116517606352900358188183415696899508439222857314854968874502436104828169415910448666059913111644163226670924365044183294516186315913997425798701510661130217030925489171840860496000007963563002192756144971378198069183533870837839556441551101859625900312242929505819628838741155871006915778362095195171786385772169454700350285888325153294324350191751756069039943852101937145240924895500758129001323415507915822459388483098778454717385208510004838720249030997970558990391930391816674636066445350553873260101382304252219803135821248192802089206673738518214510764793994980197974076507682715101434378219361713751423299154708243326575952457718873220862027652926933585861812961351940229353286869856930442648982310997972254964059572887431758700606548368277461685871857745799789182168303966255466798282782339523884977827476681381879352659418176443302345811455539805894749912732686477673837941056939586961394747071095153352204074775114337967434661383022375894776532540988434564261338179267456004048359625286498102026701828107412312160541756539488275277323464247276958502432008832278677158842853993548801769053165763355910509813292473574574582991863157101629649189102344336189674014194596138071163835978270900167910055047321805338590948837483064677948838484647216078662047082341982379595551574748939000821157104177259325823620466931484016329291722919136990442325901546769918645667699473546276704445231206449492838990984566442782651661239907092825464328872779823129067920138334293019185705036065242487593908411801228458986346429959060791418927658433598462253684259020088568346452323105046666481878419953675769883923967304815597884143749532048091435036427708577149496193531006998282313870774718145432125623784895150690600177958859948796376073332119049805878454301799213535963018358262338162476428311739967841810553962760073752193555916841974152631331497021957091595416465278822036768785261094478567626713748892161167824066473960594874271057003196629402528677891926799672447847670582733950664403927469260103917555894953181057245873193429285486360884194821995719437430621939420958022740313673393548262310740166108367088907422010734148280594809847611499852735306862497474649027113101689859413998963285240520265256977510106289045296421279405138974804887134069767048834234879460160377471182784281366935301209902526252580827967681886810078454508398044543961684597901432709754613336503216926528940457307766632954583126667873525463262440264658526261040205029020349765130444297039734710955490005982557952093320217550064839584583135525151701712633229991289589526175813041274117118262983346518895209321684841345469919688671094919457910943544046045876778936529013606287573287642714172772443512047864784789265764103165584560785543978521620817191710100263918301950265581013831760462681775330895455547902888118304915282807020191500830017040752489127690207820167556234952258710774773960276634557397458386989836998225432526983140318681832887488637031580726177556203910172209366754837837676797431191095875013517486431727778015074677172091646762286429462565423882344862960580759712765565734751376062819075111391681027218678773900599980419592757887354909272798358431140777628687680709076097942307632610974721820547773677845092390832035971629581916758121332769488059715372993696557115832175918923658518565555750918687052215636837839093774692523165640818935084796493642823795107355975952653336721178202924823009221615746054417971167426677353006606113054679202307409290991444101654523467983356013310765260723884684390627476662176859128630485036682135030532930849096351929077958498284406041145052721654514877003775815478286651776390997522907561297797078861174470621739554300747024153287490453135871924527147767056663246731314162209637915819368127084274970244240830879249510750467937379361460327836883923393048904547325309934176453919950029652800324150447223601703222942106663562061691434152382717675792323051782240302143701461164561557177696313686290778884848056164702881629547467128325708533085671238782342752487195220463018092641915798108859002057423524315562083384880611521616257692505449083449120713251543685420860123633141789406497243581982534948754316071295201731403317655992596477884667189908485049860639483043762268962131881708162985554741338950057188771607020174807835045214089242788487071710427427134137138547228198222002826860361040404439410573877514564894738788192772957956138222768823347403276663488901144992447948664309586630533959986830857576492279712645962233250885544202761957586686795939843072994795798289800949607906063744896028839712369618088569023298482076953713804422962098981850698420149780849367019948999395482784372689267310650946626524095010421881530471816476761317989115114328742354605872862216210461982296381987767559094423230646329702427512313481164622307791260270867735555773679223406287475190421550375179953342538718163751997787961766156934018071246017428800876562710591298717049076811972487619336472121327946717488933136103701712841319265976648152580087333646038428041828555310063532675551046549704504353876866313863260237560702178574439515807695987683289248497256760657560963680533493183856506918023209023615238853717765455339379855183677868243535177457159621758052818262151857241373368191632057555485925008907263851352315589723092864344233531978216980206683917672999449513752751354493265903278008941591557508973187320327467536019000378723279847486827704702351363546848941663470718603670504472548168188925514545853298346781624463362088447958464545196293502401234737685040353614433556776231649126048573228849590518459220012458704521640578101056219474406571728133703733600395053497003370154839754630780390885455463060795008762883048313811064576301533003786393280346771059716204261021189265007824705196188550975780073259229992060936835203673547840197337943509664596514618611925488017512396314811036247152713487437161186116197747747796967908423374402060968250185061170938060326126908532667105652422401166189092635690341872461778205419640441810305828401470961190680312432514790693164293915549341124362357961642496347993528238611667185357807956856303104381989310308709119700155239637284813105187656132155076274872286259741194337848056923356179943237327066513688740779970848112070509907960879657715880888178346153822561437866234753804276623837355075474166603255477373573244018343788416311552370852936591215336788467714642929162862521554469470206547844807542668249504285996884990955894158064154532094948483745637674503203323223041422852642464364155048487115539639528120750751377224026601601536517063540684815279601578835779510737730991721992314919908672381294712179047866360761272197615836642943428036549346661932243760474213794953624915140979972381409628911985174981493049393068826317028208826765570109976903161182190551803770704608295445835557116689590305769524267845532816890976399717548217220843074991997632248612336920533136745053275400929953853816156224986615620501458536354348816489398642286771475081427740696882850908549970236908885871738927214059958189850595518665094785054280912102900719333802857401550816514154368299287238779820165292651916980835852460417509651383798244632092835891509974289531388620974652311510423358931727087668372092933149062234324344979249289462784656989788832344406037190978413206123962657436904763733066829304928940359243908427663441990137507792363323956965444785466265220321175139504189508640407346281248178084146266291749786275630808404750989555843289244079694445216434263996141347507483773853338030722883605664777750198125034313257598602746038085900295407663729083207895815130834129285829814276270092195701560967314717280046228221892345378971538790980686717833747299985125891148627096087259409365182358336343161813509268794954912412635740590335119584616331638227303909926436953350774856751971586332481658960615285201779482852452241287352200416333757752157228814032449916260923618578835115489825886477078180690727282406018733586878538818024767167579284449648937767558160158592815676031033861808460267816077588371971219649895122610927443945544583511978238866559232930810986747528833463053563145663252122798046360163520243179353844905626521061090321332284012067353846564109983830876669917562882791009660346976807938650484447542199034348706916323908031213580529684834385337011512392679201191448911626976638183501831518671326737168618767380336954555407095612300714665518801620693668710435390395676036305754317806577735198190809673921550010762791325271326463818535452818332219497830236523415875660648966875615038537675699629167831251210314757893402681457450677094490866953203000174005291519509604140498732658688747786146011059589108318391224229096519432283993518703330023576925981197490505213828254552379561291041026316505893182298458414094342050907128051333605850928628732601170440643955644946730363684614049296591720582581995575329678273901297357063354072987608691407191356379186159602124559196991322799552274815873772624150971896584636915171591408930796999809887384285828890224552697666625766560180282094581949874020262515180549744779687141530083480661838036258758360524775553139577850310142189773775623357558681178928159496532056154939832450487546845083591492298953740445219360360465645140983758784252843575850184083664915216811919703944411871516212202637563857993957591296293290651649473115762906536538306199653218930489505941736504406696142334951451917110323780724225604914776456349486737015799147190702674127927584084272155826993165144634659312011409231647275445695039737803034852703895949303757759084293546600230408062501618061219911632771683207409197342178165938377924028871919843600357575791715631412071643910719389469717947252018061721443265540206212650879790043030375435831758361008827514306445437044468144042870502771273754944870601385967275070564010676622433139327725073124376733070354665555938168638254442625227272764545346944771752342065894302453685869132003802789421943688678482498030990150691284173523490771293407630224413693968473846451955465719553273325868119669535974258374168139355353423756869615666421223316553483273169012331711936043383775662866013648951148173351667365785203949887856415747459926406963776299832093118117759055870544070294788852170695555270435507424475112428022969110366292825889317255606355621392669501936045516021011799960350217289814113083871653714504381062024821813605576460095773353294514622701293460395311401746986826870177043200115696438835704132171561694316275020678410572783445441633269645182410386291586651583403187552056059731363857350616758686612837807559357489791993660137679708355349163721095791597084020324681886202356434174636774481754648449619323919171404996814754500246830449627385461652130477787654149530335667200347242844968803198699389947224915571031950416997681739851096750089522622484497479025491773624539963164252652688376968535606118576404733127621269419871535755493554905760256924455612475381197587887413963736564214466711627658838461312827610590158092189120253663297288561717423273306460068840088074719956172405618807576823274966286391481407575246442501368606700192456515753069105129812828050018970238240271301680534174976307241744941106206270886630359146811211770520175768570500094958641681260871331733669785662541185785510820413527832191433250118402541632559495922511386569494236460184498103904421725596924836068022533613256101275176124249012495775751844971687629075367666389521822268267986270099121113478579219202142732488687459122294612407401697910835511690863881148039535853506936167316232048679796704995995258605217331483614074360056067908891793600508218255329239657085918633110196019883087904756651454676512871532957423069825986090008498308701766924595186435920938749267784992927518080529495397123695685489925715851202400476877166009333895235331042241887486844481311274605596465789531269727789721619135305920731273692124997117658538524340121096019149589576743486062511485639242721418120437952041565416993179517336855731983208769650638960673123235045346189569063955330670929752627392683875143872221518051721762550430640141988148826427113969486679742748637612889177370970609767323669259601497231076440907910855238822401910611251720849569399253369055813796789959852169066725127056931637557021658265058660080746837686657515947441901591358570786971048629752423627865701511795150882533574925684422393263438261447869435681860360272058463237842852887428269971085613192477097549511057377480161053759396737590185545477680186700811771094563505427071433834281241123320379974734233658640350310735673398651514247546525411295600871968903400041164777419442444679004022538121088944278848524503734760213161709244347229934953840829884361795958141273521381968288306089959604787396456176339478584563390759686391621926000285601490447565207969924760076206156665981591080999999995533752888736053605586174734134072206262202737997316501727792435533451163095721220866045325494397571741799868575822542681319756316427145783790295730915955370239886765737245526245390672329922774514722196533546845844142637180139835872261602917019702247987394512989627356942533167435793219497860841349461175024471137913318466028483188054876229758184089472415273638354615720111853954427946123495973449011241611999222319453659472682373988248344324224856011688548091682254059426885194077436020658336020980696232068065507991102616327228039586775572937296250865885682915114849096436373785270416834136893779602418130625971249206192813990387559441635433095535430951882568068871480446306819758187491766345516225052488743814816318962807283312565182694054319077821455925207399167542350003540507531385854222834914143916488278494200914407801268076426661204246707370900031825784341521967432744256786362080907286888815476673556485057080126520519384498795701307642985658248658687950702196194584237367311658342022211831575484600817928531965165004376828045336321577843339451809876245694548634485202113162608087400906140345229631503512796331164970774550333146492886182362167212285267597224333112007372439489884522004896972469265795068723131065727279657063848323716083737458705639155894813249393509001919825952825979429917024735694212870916444071755141136993217476743597082779646552015487849797040585956580424573291425075042993526518509732237427405103225393926031911667138681331977789130635717499956059552659480450203129755439416088147140754621160754507962066651680961763839190600987516134478364289071739432809993754103278251228675241934861164981661338029362064189555886870880242865638178066056691780429206952701161696861721173059640918335922846372942597918417771312037121076206993420751722302627062044426720683267543895958796411452241984538945581014135448102574621763302377190167977000934148508760086567569008626426276339899251637756331337721577371156293251220790535654211787723838057920753836793494120188940339739126290040477194677395476960202120198483247468535691715335143488577699470151369217989539763834912251179895158527057764688515321952173326079978083457706125600062761677446092608512756699780123447961224552117876059143424103776170434100323613679853389333809748943896324543926706004495839489716054996193735035462848798034062719314276244562941376129503461412422165999011201286734831726165371187698744914733673530669021759836035199709533653612954763628167432321482577729405356974773929354028295395593075788453015221342519555116302696096505535011876126153057400204567879290611224453670461241714368562866148488112175250368419493963793944535676094961286696492729809425759537137255792599902926174971537326037595371649144185195517974001091168372341244049169263764699369705006433312606535623701024658764352530515779224242467616860289727061379227380847996599927193154358108387982189701205920061481196109817471072385987293888564461360959750987164403138844820020927951733080274574426234172114213608685345333950915091961272810303897679830506029912073012938864343867927375251027352571630876084070773439571042668800974313325466238081296598584058468014337438057877617911240947099169572936593889729412101630662894942682756108880520004425664813570008835607215050332728736343205770754161448827938364643654949018175114386782513224352595962729863627620897149394465690062526793695174473801865057663780221720627374658305683850881658739304596217055128480014458466680722457693608473355605835763006997244333553913666848382378113361848278946159178175981363328457863995239316806034351652719212821491039246528552622934289799033171502247944664657978419980158367929787042972218626359075956469695530345721790987738866967740811149392945233598679166471790373580842003752101262575095587881764876568124367880619442221926214663696446954589720744250502446211706724496982273899029803894426924889802025314504482650466146926444873041890629334533937504268468950149887035002995926936273178620360751672956750726255495716667770636772866211530578128805622794482388142779564140878193963554898398155361613478725611213185165383357186658080996378619486334140651605608743602872266941407432872991913773853636472548524295321766227116249867245669173294859221377336975323047152362537999053434865495262425040514969468856551953724443849902223294594210120214326395532398811266973955651352127000676226086344406400518719104194118594314873624628256403800816927257584729414414929241281907390260843690031667982893043212086754137280477154328375781976155719093970034338819580507010003353811350752479171236363463609596930482732287974965103675540129379288852634920475243368038261366505170985415856560812162685730391688822504934433826916515538961376017061285360372890329581104656846907025367482963161025040147724052393299089571775050020211237381796162076364433984674210803822941812574464870913765769895931066269447137270113406312964474437654785390480020277191290220501031751193354014054920862731574011215525506559328156138576061067316244996579476166015840439033937187237685281582180240879806019662321133743941746483342197363674527393784709102504783898731262407099576179032185490300176010046896641500755355563955681360065409613907413245559085917214554297873535541765509906560532375169100095227412520260186727129105758063832875138398096566020311042262381632219855984139659743532453228397572825905407776265839715429701196322690531306315762314161927966359836002880899257459716684537532224590360707516807182995558890315182530718071475344111341028176753244693411331393514930653961930404052217676669628642108133251103022361689601108531033925101780829371152115422887440212389032396061701008028825077966033989580285772721071142365190468574327242147196174084877070836803919329093926510736551459960969991037751273599229596204082968128915053485194625732554402068254093825015690612605588539669566955811504255134825098650601935948084253325444544372303200897356770411934757397012669277768149165311896218030828798214843465849018931082972731179573035850633727053712555501185110191721586417407312075714716197470528832657040265594271682926701747544038969887915108663059888286812801965337412097223272527909877229885346589826794580505644995724169857421170558485457089393242319942081088977457776018194585718954307822162018173353497187195269176874422228663376998142373870627292676807562677840327598524098826298550327517272543271561486608795700937770943484119291887942289034670213235847181609957169691443495147620755947661348025149625227150588748929677636047054738738485134822562977409300246593994063498659685443837456268859888374418812545752694509603595521915690290446567682525469719371501696179147626236938657906981237495948521206503789485683104354388950037498177224997661347142517006311413914906375530815832637404860612624879289491200065027001669575355431152749708231431029569258551839991621236357629267439890862473346654004356676357544432958101017806150490894204059985855618308958790084464977527809247592826320881819427190327380834658385191496767887336870592463422762745324070410542631801802088481259247382994095128227126391957042577910314750668383534616851240069940179134362811458152006441915613062422333133728208837033938937891455083206282077685222669366429282073858169006255255696582190831823305631191183637792058517764603062439881583372043299323817933784039872464715172251576132079817116553708896610986852110219705109230220382768895442343746569026199836364566327777017849047476491186974839086067701254659018299038001175996213120340034547955944818821632707134869357875171862446865453440139721426726318237979131509977154398549641056809222212063994016859243272122359660297951983124208112496865864657556597799576141125244476216571308495549269830724663417951961219175533094060859291785475716643498041270657362399744793976786997340945746486522541961263018150440881408422828139592159211622552740628771277735309292035982258914375394093673957978614829003136893510708723572199429886270371573763973353894619133641511422227519309308468384625257776642857508335729994234806376842505529008730585540820437319856771596756564998366689995047722404846391856306980858340516272544595809082610659832083827117728528007634967091272999692768425042411197832732724952260542898272579577063199681065301865088488959794000737320052610057883158777762147396805734128188143131624192086018729158363493314768757355791617826045654275410176354690993541654096491422020012911731770614880851193170511264907527523881170163711751020250772807726282616316790752296180806259060154991282690394127365805662856137067722540394370513154484874982587006325318290949358743944049408129692303408046529765438768323636964550952956577341435315376632803224430610670549218812702409383934153541281499482919458063883318562149383216684263437200203231254408050937731799550950767653171893616499092242828843451038367285201160840058639099266178634363001995759916819884506248790581205224079217816194337911818355249570774732417034858702786605824692698582697024254807444580720246845585058300870796977214257017599245154983388579242579806245657444585004823885100086310866154209293153812349419338969623311486129006611292928098557179382690959290023971145284474610503028306477237211965252633592597048195691800567918829917711879007633857978445446134072130234183782225836567146062353380186795745707568327312443661223898136191399941990084085366285815425979396131158446878530435218014477987415216014335049042396320706857234887359005322345586453089610590893551178339863171106822275689552402624649544930530276578643511644582053368803434601770821555264163567919309442899965730509465651916485706302962692738465002983579667811471887373512647163865259737256844905796792798819082343798219691735035213297265647582878768948488928437992117237629278597380576329223425639858979665544748855278580749666747152692795995967179273607238279176418585924865053760860404260742718143892246529459784280854866885295181434216582093893641513012211440217740791090134277671303920170677565912819536313518712346215339762687665685297128126928242090768344989250437430093322265139318077181554275639385217897980222645721397858417418126137634735798183706743753303567388957018682969376510429109876849929868464727062002275149917690025161854617663260672211243300205258692567164151195378300748470828074810887006342028035569818468156019935847622019895222424180878051623851445328530763073855132673309877358713207416415269414392501430369651034840470280151778537689199348099032115676422743304850622630664980972880557519476236373958070496534551102376026779896954491919679575593112961450383261617188148501774964531753273839597636932628499372470095678616756471702352849779408609746847281460925733881003337467993083905373649098697733454020962951963257889744254980895824562717088603097363856611078905439302180213548930081106773103967354921398586283808408263020845103357836053530043632618247223073358839127512845284877230751840920094749594421972760788236485583855017057790024055549116414812841924720884039392471577005264829166228806664337080459047282018060174300374082060439624458281740085870468905248388798702216454436707465588537552573115189744214637150557254181137012480234350717143550590135303094732730988955086464409277888063225591283478241460846360163092052296001772369924020774403982164177704427254042152793674650915311274561682495716271906918851876976794519443812451888800662009968304894718546345448157592534035196983959910180502490120914480662198962574153413308473148621289736337862220441508325064179330432636004491110074799574751320723239636825967657369739612539097893644380853644576988377365327986416038152531791996304995082183868764637435069798687104988068409479654681624677160045766767415189166532106252996114251582444353950165017829490113578748487914370830064458774568922670409839702587553723604012043277994911180478431428730548661074451372275489730517929247050458158285863759157702990105014246876863227442712947325836548043837645887638118169587835422399877274801720380387743914229701996733885779491177810808839498594827866934859537931388905269352603280272220212576570654696318003473533082538461606904372869358201392257173424578500705461781982449297457994610169216874654334624557910022054888721230667381491600634811880044986001289813328569196202444238181618044431505278291786906546853708836203519036399802898703525432526643058910525459123830721209825435436869862225475773731330061980266947067124733266220324403461278095457660485082147111567784111645203275869764662205069923213523135420630275224766996832063733925260968173086479689999675502416226566151940546073523842818652852525838863710984856776319518369870698746604088314529067233748180698474027814429655144905376877198795624910563967143084224287967797910065903771891950191114591170326208156385505297508920813229768091097637910514863441710800593466237680015611015512129298293364805912247018993208742098432361193113607206490206314452512236805302593629138484073682062888874216156170210999677349083343170894169258177135390828081349070859843423980339838742464613288459922218610683339799822195059672242657982916878247428524108869602220532541716925589229330725911623783777678355637065734421996124734630281845634097249813921823064145776789222184509799894183065817156568787870657149062354252264031831598823808094041281571607933574795794036489180740396608152002443565112679761554677106888499542125938406572207308185570494232111602610648010712740123448068157468426408500154520743171719298298411153487029373444070086807354958543956540933338965944011972169882385572284717444988628425360660507927318329663989834852209857284347125022805945464162574658971940042421039906125191470634376063376907748447461826950831475404957197015946722768084301766978317066600928036573534641832567427064837739113620474530630436504327490396953972239593917871889358547092899043240548818024004001790918619745254585591165533519930265372509419632596576365702383231247073303503042922459402637161976642256685151458614119461384494260491511021539829824182001188571568156789777208050377878737326978152957659405341016206148506665829708048140463782012098402078699174820673653096219085088632452156733865750915481242865978517539611140449690943620835801176704548207823998664529022516663173261147791824562427487267031833198183225965762915260165280299354122976240252456663409664808242248245497584143677049876692047614816051105179894528593231960376133799464185720265331122675134758958120720689850494851469927586493226984821566308882646856573912003141456172859105866114358369174819920469349176517138143285307339492425920794195749149891282879773693324933742248255444304358998276684648477489195961946818008099109422693257544911777726588858856274483105842559864977929908495576159288680967079069934344280220698682400755688283857500391678810956620566116922764473562445724776887732342972878278561671785273750033474331286741627209926190501380367839063106748406327373735441042733124714481014254172959297301929228803975507556082041206811071824410042972712292730003792207557619321486673891409362046448397723569096119054289279131903509691731748027879177064119029800220894829780794447856256015727377083561976117539761972556923722051861849068659744957611675167429221985509087469861453171424341214152255366252926305459204658913094745051070223758381133507886814517553476206002507295312010073790595719536068000644644144919445810600893503853679057447809063601970159861942472320519235310621585204658948801927494279985641326192313947833236969138754037181150733865798699417719891210854091940341608140757674778118286561681914288721765886639293739079173924453914219198319104447102773259442393355161312691556705486454679167137317986622791316014977826118431236888336380855633212226333787221666556339777629159201668950018019473630112979626161378715195208741484219679051125891949544529925675641799797409192131371211685798875010223259958750337972582799540559277377387142452398474074170608033175406872726342120808255213689388411829690878583098710918276938023305495478442480134116990352415826677560597693772683053615989600563948824844578737239776237192570233076032961862654711684830284196873598034614605672950054852734875507273890518391267367631992940101275505516509920410702146085434252669268828762049843635722769659469841407146006199275129460327044989160252382427138215088089699081019197008422083339341842489916555054081333414192671500233193348511968030279162577505805292811862818337372772875991389496680436131765145458077549194175418286518343635847926264875834692348390898496312280502215450958974166978194734425988205677502463578863775090240110294453952650826703157865502100260322759045137331290764464517058242527254611526181959634019422308313428108689584770433198791735033775125476752545089361053091989964621768583612802204531602560449180979184805617382675315204416265504867550272701262272759270423226235791645075756369050786538446828870551302474439620069505010824494936985942851594989566197468392311952270742854352390371979633359887184086885045742953558719787559312294435016055320617672829020560907555129404326439279645185584812366829220841173158692857077725526204438030059602713723884044093465101215444724918766122443918287152603102005216420196885004188447144793513394478729249250909032478410958120643010637043408900807812318957429282110638839602563434933211806837889711828466563991785746531479964026369267656460340085769028965670848876200243388015173758072725950431401348586321540701303971157321570071483136080752014874351003147690206033518286094623537951758359773537226792371306310986622544327797320831465770827163496714333782601179268148956281438087460150970674738644786392590359619681599074793424665139839805409318506256210776620011432164762838594537696726299140749109847727321120658715119641905104452134866476994057947376705880794684162153004751219916775267540562403225379623060416371464396338178464416761161480492401047179084305568980445191487474840187490937132592146621113794600876788873474104637300619366526086519295815131744026888826659271089338137326311070427843947971361918163024879722789050033417665266027530596326666209002570856654720372738143988264301830276606493422896324034915066988402951605208467303034997705075588554779119244440829209064327297766989678233380294636643680651374296412297959647527660955538612770976675186537505072297528160388108449008996601603809769675005023234939023443506409188869198592083405279095549753204820012611011743941769361636415418845950372906422662846992208294714594406323779391386422036309697304850277192388986215549155241117865864944344599588828312216465735464304543917602390544719216576559910242353867094036858692751166655908215396687682976378592844055335028880766558487735107668336613285228283440915550454867199080927876595178605038522959292701339431216363359130844031008582078241248353061532042694324438314992412507529248998309276994828016246397636556712232374473272471977484551878300440474385550788150583459923555207204519405496181864868979180819798661274518747411611159784070208762075948925869790979471218227202880393130853155916109026438445757824073892999122463625026976649372998142340962605585963313661107179179682388368232592758788780191688508469339411959720891627212280057510504116412569790605044206869206530433041449040083471080994058998897704761430077234463842914594410850538206553090440376277704873177508239678256248740996702915870629463012711158599700207223082614391302221763028795328077362219839171414012870936598310512560137463002219151570540398020397897993136894590964562143209518178133406295879732256946251461309424207316474433068791724200730185033771487510564601956331289010499687160106873033866781676653683115228326792683820548183079644836755076676234278078737311874228672610891513566969596414758594832288874728594367075609905535639908140614996635902792450918011872760267583781518059588139351885210459773022256520211055319507357235782768187674764077341686810802530110129586631071046710370355309681808578671076477803780731971442975824819920202100805714611776107350627919255788866041707016684603012216598637624486715287403276553679500324052378894109957739438633061093288397690145849374408502818381177200435740608065418339149907670195958594936810099454466587737120268387171383546088905922528456631577870666470077130656101520443097702019683067453484510436764747050295859281687247084269654318152463349203244798902249252411017175748082657886200818690775627996315297049378197728036346184710693548015079770025880951558393540222431822669897788449470203694740177532085312066554770337606844270451691566399731921813108275952879424314752404622723560159235960223661322878282499252945416045733930543467484286809002055162630527863840208453003031346375873169861160063105822197537621626982877664877693472376020550434301514208595248114914627450896457854743543097504167436544398009183690343222908957071931994893171446743551843685223364944049052417730874558949234146989814891261957031715768115452160146617152125384232889077083355228202136509539603441210836117536613778001784473298954203676781510552430825828699937050731467879879727974024456551950368604622501063920632785891980185137132409268684070067403420741081365840101876590156038765291066132501218184535827782216781428158559589148315293815879709788102431521193854234187794135327991636512916328578506718908537130443226825921789504151162340736246390466893676447424592559596293387827086268503814515183193174869083289807696552262148478338946131851360577304178044219072274980413559652241794840838287988311470917030629378859282071573133519575737673700106231147303974632509796728713742483223109324927384373289543379288309727572555046026322476600676406737584304717683782732762218241767067599644215618146932606896337265238181737158401132390952159911539775832903520005773506814012882759736034425153153786811693825448002816849412228234699931993107753399113261911435316474361578237405855275131994570927202639695405851158104374211357865313527588798150453275669887102322182711729136735203452583242258724802158053468703529073427969075830043380367522188768494168114423613902962251325681730100232024425104187417791897590490580888393613023151682254663131311360497248796209343694167213426831365075033122992056880680561313594601506856782484121820962284229611091762843279934081029718616320856059839233852740644862840904651906183199350784074046573229528359956395433359226279723705915445660673750868497017853731885188580453580563584098427030446758827337768541698607884017528928838660608005089429662533355258844534032309858912327523385342278897907239891234059056998230576967797418863651761758029061309668482958902586319684919620730474923740399421083740136586011390425487009722417483675118666228381746057800609508160751728125513464462173254140150338409217784261566783772226873460918590235509693941652296407234126520860417685094378018006066652211284434387069409530802886308718843274656339657298736593162503675193550430854328799603447096464164976833912108609655251792965434107135671284876044714993725165476810022074346881331885206282642479034475302300129950943269986824462662036175888720516492447200265156181331054189950194823018088656079878708883840821415323337841587992311202954074175071979989803891983571465386033987879835925807234282095771185060381145415650448997651861333250196064961562639779796880913125467396889873154448414110314944801167081648577787428462533907851786385683165262330499450797947747769933108665479336557114566132321265224750128052338337963895571471950819745683444957961213347890005713933408836004293629243781447972801425753886533138670779351469268176536086493924250371949119003915784554962336359462475860685372695616663529932725084386021221396534002563384787174174273548546734165410278661048857181219655588907434923245259666201874999745637297048087871921651954972549507863802498862721270609312784508065404031241711725413933176832403070826374982279319975586517225941067532144986727655101160750332892605386726509176739187517759784715351610888969786958029493713888066414023875709613722224762030045565195553735662486864383543170565330310980330484315267022329431461905035524985664342276111616258310473527828779524475073736867154181854559243584271669972783359492782051840191175905380971523209421676312505608223129618633488774293201264386556904524587770311011829072718972573242143756944526854266059781716915507283766335284157129185623230079479274709299831941609760212471651249873206496408970984053145328811017156799710468113529665286394873244110485422883793777626507839022892480303542014989310613282419013030994861557336016970593922769401187057689900859830515462096012452473029482772400985702071238386143019590421560597453108741903222364502611324806617574415774485646413932584827423869816662275303710603061726692258685814988672900743080746884930883267267016950473421127626870337589060336475161035838769806313222314644868577787680911739541093655492547379593677932878120847871637939412490357789724986137188075183940752653278995097947782745429551534036880147621849977906558301866699787310579487881403117908314787786307229336113966470796568234184325014360838135427139935812937831211006957726541048101877531798195951166427259268460738174110388423871688335540991835143815256955605291841636717623291962110845353114606256796706491650568722118614605693336245435488199305390659332183963037390860928620468770025702644872640574912526302188434397759233995756743315275279285207239185775942036057525607587932858166214196453200616514189379945166812425372488854042364673174210414390121698393574978025828538859077223204109527399815514474510181328056677673636395343843924266068128126706397744382256675004467963887694760920273949451955140968203561890526997238689761100486768566662998441942048589004771277969869643715763742549479654823247180983768617868600963624915212360746322598058969729858878214111983017584695950762770574970091730710568805296197312787165862646726803603758462807361883531673442274706123710786876809531670833073005149626124071782886224414701668231714739049881148762352927124759112312762632862074344394904029653854433827727389562593958405334255027540987848955692288187418990173560701919781473294579889171599219070923750018912661023568437407282060940118517559986591048994687376532950927623669080600998590681244609833899932366205154304278233475234584434373190870844103063869658090811883133510916504712423344331037506894763360282015448949551841124914923932280473800135461864100579872054357772094670734066759053584304124657172127787851139239125759156885061351521555469449673718823603157310625495433340246814862717771286994393123087542343348898606368661195867648519899958777259579801698791310636582162770249514166875259276525714139396465920494279029446690009505800650087990871056302914525881471613198715219953896262728172703860303705011158106459036703279539220641914458859132826551380486801180441430973896936444051057211117472849745487956354257603694111909110016375287380717310004686389373806038927005548678386502963660396654880224985163514700508026294869241732546426958398081814438385568570200226161202197061457207745963286244683723030817748901966231523237861727518993550847254677125749035001713703156645862229122900377326963908708293730471662076947832608827817878751357003755537632509040889996321514056569167613177891152041066238076701356239883224102056825907362025400748335233679752369770995514657970884164277381940487221612668181789874867919306062696933120346614587637397463557515896518482336003913449434664772215038150740310860981636291458424449064426820616103385815670370619227266760758358131360600567008757893312523174414207619289408058314222541887874048737658902959977694812501870531021084022818035331461352955317737384995879688685300068328962696958279183650691154974194697310425395714541061676056354708957617324311778047523020484964259978924617120936479683701434507398381909568759962834373553860699754723457069778095484681152763124771232210027565991076261066872944179807010180080774076409976826085742751498674979479664806001137780401411859993879254280498588475138959237181532363095348868898166116885980538582813559617590860869652505008784431007326287857082786205188116919125458231526825867914627720872344591204180463226104267339194203574624859946257893633966619592710690108428987512008658975665860317276693958151261820546479035361831519939982866842993407164436701586825380364589196503608047221869626713317218175242671178476869921818464573766029672738129588346571378756641987610273609895042020948231671378474685406865121968778706544866312705220778542821985769206425819796659305993422405423991725991968557750607749097516844844223095477501088564104822582621114044682404516403424873238725477584343764360536047117279146666919741187318971581015904653430691191036388357292626308958692311020846826314542161451128526320949597537940792500926430109284133087972907047938610192607130472888149831099407262991088756101740502917809463151694169417955117222517120676197657552214854769888018372393242865954874846604301259857145109168747530865969014987884790342017780204013705197842325605061621436192572890960747819171007885009032393786026734205450101899047287187430861539129229708846627108331988716073213243452047095991614949042208724934885577096195903348958758245373281121504569698091559085406060966876800335043357562798762793823105136956063442829036805022955943780090237942837983217038830720760831472055790840917888467746652467139785282434698397420805952846989465767238750092879456556658744428452210360387926244820590965831368520608417800843811358598958785613061696110305632010238244621000413265284900417506248868186459461467343001402413402058214149730273909186483218724796428182334284477476518150996528753027411874694420880001159004977544173583413087019567110677497753341356222337727707692082711310619662190080237384820628209231214875365898951763466933010548322499296987937677409084632164244895928691743014604780629042265737783552551231396468657798164643921368846715771282715366640893369595495075529475220268457239891770942525902278287077388926297803610444728120792386665004271295408337349440888530372576153515200613803003295071313194902500033373393115036900298128587179337063505932991997891518972916733785857628265153176362041508320585155892592111976668005623129561301013958334276599765791339957921201939618592786416085723688762496150314532323808577591143517811652008374189547463881666335600270400660656814000198580894057695373090818584666106811391900125306242045042246993702369245252328012615755827175048332289459571438247852259433259201874111292794105590426075972907847239783203398404074610976787711595307129884037933544870677168856107846621980710895840845083810183276330928454761593908166265788284433604809133561583851600582026096511040111345906995117818546915112596597851801588332933736325055560428051797057348974928675205204370111103708914926514696962342641736640150765930900113570040397860774878488184753407665021355815932568073750772842086538360309740597516100544635061612814736413689368769040176068243924486461885880720912716198746274672875015088000758622961110669150102685121269483672474143931930291768167180128048485610193902828717261476393799639220736885729336929909980412561105446829263406546600811645255264518973189037936882632666973651940462809022641112611209565292477672745706527859985073488508313284203630194023972865828857031942916382643679795564574256946638007981143961837820168437781558600046547578440422904351640620219884403081121193082148265807424761771477675646891377160288637112335489722083008725025382887962545593967784702369185443642086086044156506071924554349750652616719989040003053950065253128813283452540146407010424021168142453773406051757934310768678222061086344863411645743002688001720945683869102459994616945989052370397690963998148191829366291067507813173531109075531991761084747321266123314357932427748875166139006000101201156019324417804763896710030260638490189267504358082872528523043535400460929143961870161864331788107511324501654345965128421640117777767900817471141905911035327439314793541003003609483007029534647294903385964933563439380505983483050187458725117459229898410616560399355610060301802184818505166511632567837654009091326419289268436882501952209311728517790164653343851975825158314519400453627105903966491406282852215341455167500021765177979221634771744021770371958820848186937689608782027163309069740362697968704627341311693143983655351108297160611775597538255103684335820141062558255410909391844028404235889677248170204929127447958070411506773899618293943524444567978872393546172907069678268157926407030835516119410411328232080445957032346150446572979540012363957965344887358153238768993725481966323772504337237983267637893177307454798257501160274718152879062506652072217266527533757294793757499833794447223616994806259236680257923198796733422764561839778421755582660834177340625773011761313029313052471292605618301207891147846322859650376440333061052039346212903525683679914129489225337676847829136106805340157399796486391246280913838282930285525630013973874153398640948377981164253040149605178278241034527203780101683689514632417856683380265383756156506599327661647876007224175125862645173426762450419043808965303422533283013942288540419944230567595953032508530748817321084720874862700728210023629806045336896146267141876882762631189052761586976572015014418572176397969276291294880992728906123345737445151489579232889985464885056843781117847625016120723631283793886585674389254410931254631331615914047016370551630874515296645756018401262814361251651974727606085949517864356413324181983953837934418928008724932186076187367808960555997482301674432559257606059873912639338981771042111080280976142457246159379144106018970479658997297649939099495395593079861215635487755668982815857525402045788572931429826518822415839769121749382977003064034724706270139127268911495999994087374117802301796819342032095980686460277902341765271688800560690491819412958172837951011307238416502655672523660777617552527205119785691181949701403387878195050395037061942755546405164388905009523012175757299068370081811099266590125299520586039283702552744146744720071385490008966953717070899411483893682295523490878757894785235170255341588560136288580044356608347831255836679098925877150044102937932955268080946818423743001759955049469200511810013464400813546611186059031465393627402907383132823477238978622032812802520169277089618473227899235713486950484625624680008247638979105172979295990695072619552611473386837371429136030036373395190979154766714716346124319867087754529259734214650796173627546413023654376869342458696246033261299403903935660217312523704006123343191371729920118007532399415346659235019174317094955674021526926846566142440379347606548176908149487594629256370311395962424188891272812710039781087572069141214083447736623379376742671173161784292821150546679250065858396134537773933635302775833096353380372019629036271892215048705279003828867158358826425999165865951701985426303941353140315389248429047993435488759655430502872929986426035981848460166525673921181389303815818034937231027892070744424170486082518315131738762726858303702904028197945944416198487221301453962750009564155358132658525298542618114550201404156381961125297962846899803058443610138667090057283695699848943593929483937994570661835414964155164734502228699947537738097227000101468641339473603547964253525063096891995556856206931508544433202321915965495809011832139229585595614054647414012705272920081571001506826787014409368598059041395033910394586039583052709723693775560516630774754412262846413829266215470867216945476342194000833874108420567622975917862466180574753886415514597600914204035637135617757735957867699127523334126979823014185054831516654450706460333259662790083084473185528213524298870074495576237534251755965317707067191988683965901568579256490765744479921285791475328866168021155252280713148099496226923835409771573138196480530779789632809946220082665429070783799336495238700434877386828922191940442382518796994366481927791105835306046360208508097217747466535904378123707887991496586382127315265891899213569743689440906409684315623966852011470997271166989397989361921076647087548568853562487430699423665229866992063620406182196147378853290239168322830660602037644527936353429162983500322268662799893680464372256989831087603153028510030130425063679229009107310799057661587192124363155807177951608426335291843162667196618497121702050079992875411984808546780718195485717311286948704089122131195465567273966942880981042150272944168081494052220727380643997184317251511155650688068820736419331153897377937484330257712295161863545719599320607279341977052241608249934898100035338387398236863498288326723260836484276827410673035759032612231998154230293305452099804395824456516400104798690947366901843944764117661549297649297909156990600458093355602129921647531854146136519911980983641356439660889838582112322108539460517084024057764621366495121122596212571042121078598132491172563005560075917373982515505111022799168997837102533997500624865223161258815371312994714675814366738931352010775822426246207459639600781019370583074483111287702153671210413884402224906752694061445888092716158250162157649160335710374296368647740646300592101199330179195193987813148525153564484915767163601462597458252463423977039650786366245222980517449421773680657304579413846332709344121177183908023861115025992496133102522171973771804943980249493620256132277849769120000878519006828085976007858524720893279805120416090789550898671652452295513061396352278545844513200998748098038096717033330170872929832885950771738294927490340236343177196389160620971448313308530164327919678486607415656347622484069174707379542935831768973344676833657455136481948310304352232073704389604385802395338601545949278865994195529390579987272875886076011352475825413837827534633063517808547133900238264721999555765416418090333169507825935491935698176917083669880529269152277888757016676886276688307567875982825484246655303071268270257423653174803324299251757738641946364909180056241506726207424778875478507449266254371135808476541446913044878737708736462911483050169771029187587790395657490954458723113609537354061471592965551940945904304194577725059305182678977258227410738886837152192465113985956628851100513156306158164422362731962794706061725124977176408155749650709771582622464746201393513164435846096716262845785249026815040218788438429400248850958629618333504900740228052463750600054971677038290650367362251262776314173902208782845820038482913868549725033449150478087572918604766230712655271828389615272188636598634634415396094395754328963825888276900919738090933356869206599872541770629306059687953792696601960605686643761748918181558265418567258701599984094696256064497373723836561124202726961274437994392941966490206220296106048519040820960390230418054396143791594652174025811507552403546073971540017082431874645147282987845052786269309808948481837809854376061762133381469068394325071474359096501834320371020110755488389304020440262003903257512002061747664142769778946086666064396537296460638202522960828943917509449335623848375105612059739352154979320460559858994745598539708813332414945405995373698702687016753543519540308877516295882647606200764264584841631771006401117816721575127534751463874280411226169798552710017516250240390897745409207263178380172227299124797700519240469482092482420369387522222865657644734101013513051446366173027361667481836193013325379043453584813310726120700656606354749485892758542522971948503337886241375621323919455325854318267604846440270324347901021138874599468774108344275281721755024994222371420644173618411542525987995740182362443417779862916823391447405411430326337583134164639048473118091841658077925267985070981147134784477593270321945335004414530002222056911554089048141534967982227158691778112050554501060095829979031542643076895394078587256554449079256626703194400775783389422590722610534016380079946210276810273063092303660070377641371018963582232516813198634033114135999056038161520235755433085121787392126243612428921888073438208645994950649423077123441756543609561390495408007238262026914552309930752705320056146479946007177111756588181125878558928728538492961691446637671331950510306148358344921960299264459036982548263531906363064767944056153746264574090593867061625444767957779418905234435739368071489968171251189428965989398205562923282512180097526888575154817733750731507979373440401020521465313780193903951328658745617031777740750272206892311500549658300023827355181224629528954806496629523188332957325501445104159783919923909277630165064114943770713144851531309491837050953348984980484232391936432002001057146793680572060381907807414265018299978186407630936969605878435245646751162059812213927273649040349785775595095576478970497327759284880488915145090412846755196009765417759854160687651586071170883352046980824431114168823139949361400644592302252374445860633895406221189115029136326219300231955378039537731760546302806827884485300828906028927173390547483402003351405483263670044555024260994375617889471839950857670559361061147072112451927301877867822818786740706902905843739414750648022141301351400287988657959652829003840031591084700599068002883379780893124137369622040259633113494928017290457353580702239063090684910125507074791121187690026727376333597281408543717402363166886999979320706860795504168950851057450522868836055891792595323789426904514199294975974363898869671150801122773667954167167782251614606368839734856921812154347818583759060800596942144877162658394868318443026880504032886508519852265845486625447714748575545075832284408193135830265920645622312072866336143317757931744594439564249488442587305517479572303840644384035816987861925254312022974430358197493886788576113678934341848750766679974257950465483963270835435388284666249673055251568182984334001254456399816817595560137557973489776886752403145794888548544072740063421762150788982208151652941528532480326504439143181022612060474454305571417112286439560847558536559003387208031376042812977437604162918384166108748306577550270922588252658408694890736492569170237922353406238969510811316072662743231789988239439187575250504005909536993723580954758237370984203421038408541229355172301298967475036514001336874001906385946796820319391105048004043500071897648579655660491103596950484507156770832277423416457603573185207929656642465042086511745314042416272025273471187821613219480195046120888186331694791915736268855894187635837089248342095887703834435246535997875594355374812712564192014915200142968111857399504961983224707793366292632684498530687986065296625587910526879904706376914190689285655524797751369149476262699898922488666760850546267418690017024610843781253505955942580857333311637574471415658853477670159700806716830059555532061179976945857807525263306790127814067294818387743900375055324221274297956188139004152935986221934086873479754198769184537789698273665713618815111728635539357283860071562684066569672900169208292870880805663322144833927862692372227875161242756410301801043760708081160204468533371001287290611483206105132123485862580148380152340654120761745990692676410601429759483291286065430981889702636948634203649655262397806701018148702246010658489462614621198646312291301000887979370220549429085345174062037829804264902707176569399719927020470906109462412319644199342796561139814883106129647854384403554574546903131785763030439189856830151916121556499296197622144005176915471536091705414357247639056442269050202727707727033385127312094201943303341623563725469984399227289554921846104162830888104175849765896344536721028904568090160501587463958592167289483348839718792029917599012777513171700056491281386140619853502211487200467896994774320437362648998637705334668494600953556241932346846787018250105583101402254111883835481928064942470037180070038611598811252166965998146313496025129911359025235205163696925828450155539175442113876257639240545273079468520369344901054528184625639662239592898831833999756792216305526040262711505045668940698774938978800367239393105741621288757743128410223615482269183258977485720067809111377980084694199238455620307332850911111585592984007251317482328057462835728626023037481097014909160000078166371036239904969136376941914094205566667708712856309417659488263412392904480761228097870590923497930718373567499792523988708165556333747787323527366984014395544261618799951428635208763795167484578085102826449265904457555763684904556031161191203002732253252396302643770787284205814858037092951904921093125355775219263632284149494634591186106425984274061258484733693997284416887936814052096675304868649967393527713941415610028981526731535972599492638165915819751576766683185566924627365583262413585860701053005601962369102954897644008438737161078555630898077929699373341391781080071253100211189047722033059809237916114437741517399526850057008698934404465611977593113834604634644148439341330983236695468894046850180137864059350180847277360626512350672264387171250680253620625056809535791321189198415896472702427185801336488575396489276504534019688820594900157702801294816566472217417343506067013633548190941336076200503544806763823345012477465744390969927326564296466071112979496943205224704380560129965830625142855493297534648148121877203520864731739869886891171738571210710117309561504732981873715520379396808808532613145954681212774271303089744354904823067493298186414799884086012269178514044472150147830465564648763166156595715834552090628089394097576509395066829148721087872118894617976804516156414727073882762309282905801241802099691770002175704531823840304744824529612102192776936055817035543594031851668441107891938447789258566141849493921404112839055715637544033448100990776233927103555486584767043647775546092857566869144972103198504193282349594498953050388609862075921415075129155633146885601989447693112428291408493125439048452648341589262123457739273018417904606482083851466694474889224854665941189944244712383079565111655691414093494206501123242370856483568662666531216346699064555639732933575874203742153799788004400335407865481187296416511621298997975231178804055816029053257794224739585650231307983601479000876025351605290148433508499406212846530355208416578560080758601653496251088671491894040283864478430585203838699451656269200670572699539862419189693313234735343891727105387043227446168384002993969980590987063007974293992586589618561174272181127057182936325925382982133439730287485862325086592409248647142963960326230144572335632119113621495946568271573408456681097525815241811097499668077218745378649966207600841003203830133147643434979754159497524128238871424846747734765233307518097621823363946284043146657309707314764870920394061701717263593560642969313770208865103983456295930506977741108894380971613613716900007192386995218801712902820591332070767447610574264284720339573573521462902792733889614543415152085984996112496828472310583943026299274732033245947257222847302090999779721025189075309770138130959624235924553550510077158837025783067365008642545958828049792887471379249117975315688891800471715711271261036398176513751037655337881071570819129926723140495722223714184989318674684590679018114059744996055970750625479987382453192163249279061917517362449952348854079854342563596828309733752312560944129725317387968244769658819623320095786643963312264509575611024811360585563281208645872151320560571404573163038480150645846467705360266782302632830680413155947491868287010119230917446822574565748570133161882966144404475644211706714426713750886326178444138457674438789165220424902103202956938743311967200612692533040971402954755124026022436075146140699195678411454657494210323950772447919459925857176962389298602683365274084116806303064994481583102647756920684203596317021129025453379506895835526732912517622955446591838996555681364070051585286550242558656800745436290964942473205460227213889332563300842482950441751129751666279924018440223985136268895679060237948368505422964325788049720467422703974199856718860445450851594625332395117353011302108964181000477656621903427828343071747481466515760868868070294285888205793106366708643523326639023529991982963907477833850535936905356438987506563910341022109460453905605788220163952590864844822990408227510699531864637671066636646584463949543514397776063247465374079139619808732669372492575250084176073657746890792514585867928054589696245884703619066954649626218745466853836893616949382483046392839039421836400437023005748645446910487341142587786672228411595825978158919619417526639310364933065515161792393414528192383439352546739030046569751930692530607562559872270704492812105043393003455221665852325028119836006173793910677244552020575266760216092263340503200529183893300934769862047709374289594761533948384892261237455929258173315792684751763487414635532979645972217142275858857546034336641257834107998225868278442177541135042143579031652620490709410964850617159854226289684986641255255672274095382588195359178830524947645912413466158771954378353076191281944350194454088804496952058035173369190020667678519515677686899171841271992438464902432380136010773962885589685980277743908446449182756040574798690253209442976117321889353029295153504107118611496154380876601952405146697847667917881706789013328635192033340742296924588013011297217169579966437317495117284411911928352442900914523947547130641086185574581898401121652075993208051766261128920214936552143922030949135710392083370488350948975854981836310200354168194636045937216186571092346219890460746990185238259815350962691315666455949534052913132476093340601548230808596483675336777853527422372428729718501230239337659447625694472314074696040803475202202939292193507734317128821513102068382967132318486705608068970305679470408185003466187312418195666591577287047797793492742077937307564620806980289505878361123260337322278061031922279009946448021494475383936036216115116469666459578756952020850960324586739849052250631707251855437812487522666662751341881500528518964059020421773739174602757151305223710984894031944432853840889836253243163352402166992864701301210334808462427346689529354219830039986982852183293672778732379290981396182600415242787303105162729331051527600971139254748061062171660307637701581061306447791717964668162628241506716327394330228883996264818568304214781760670406632706522700127064256029389906003377418237380385810062002439891771105026386119070299676707026582530230676367511939719936597777681529512479648793910500618878532859346334373273370123356399247932162857209174612211019473001855257536249008208941698807866706253952800996250790233308031929476665569415213300598701492897443744695809818100860493255907915816815855187921027717569831561074716191648250380983663377984601190392459352823431790688397099120104331024771765166250790986990428034227303417283842224093752180261778215649315252959433664344220996410343861650208002379114835890277891534050234701618486024990837833031393354989814911939923656017802149142299857506534960945562527864870627219720625502655923845540354635904797635984732885733375964880319889784208444107965980897091360740111673315965824962042111332526849348467853546850858915814556711796957261250550176821102344971738399374323555630767291772871309424586142470436622514121585017564204633728301333107449417922557203396887220506485405928691139942177487754558520041965470967344628552128229104116448373240723329523166483193337514964355497158122006856954399157144850674043409004808416192229122564792381209231396414186130155500282914728000183217018400540082527667998966765811743922893863453541795278672361072113691698620152346298888114325566465012860528676980468973208118530522169834162840077732069688340588957640398579309808283554398765894385482883159940774923593042229688677006124120730815908967668020260133484592467688275739486081610887145028747239605286516468139355315933723628270891832364537537174350055443623781800096699592049819858645306733634091933402119610924827757454884874814073985124439663782029402804601189433432174999507846725755857649024743263295508274404614794208177878708861364915683953535454884621624143804225390949468745776852873677104272139999998591140626129354409900065504083690755178091273505051653352267213152227893888855489610641736521369576534291528847523030483735418496127349556339087816318804941255374752296382696273662119001186056084632193612207177032266423876811488524088756431760511015604479063547685259153620603573633041110382118284122824523564166029643226758631533355912801690193086091362625689211925585285386606820096774085138476721331768244088317399299536711067289611300469135312098784905093825035948163003213718003926318245196784540216807298286589222398254000702998494000561092237825470307660259184745813213098179185130349318764411514249766666694176486347711389766945356374542633973138433012211580855460686175567246234872754529761184454718022628315987146857778173454788781704052515155479698988358014839801519284802613124513735732251694977110372277095383325632796222740588188740398755705322115317067541105551386668378473676574930242975111041562814630611634095465286483579922704224427042928672609645483744847277285398615992531160286862742896576783395510113924881796125649656285222567419542003433776513329502343948874999680658965595376209181160334070997840429666167140707796304597187979957078962492166609521937687330384038165117861897145425057463028966898348217919158563331694602135397847150731467287063712480119313068636896121541327436270249881694152871512746886691367306056091227368332962606311312553982313313834853541610467308219888144924428375918617297958648790729650176683516657042765751991807094703836882346056641410008248049854678276327590002437835888867137773496894563213591838702572095790230436264569643152199491131923416380820125284825819472959518069760807776286330396443831009915513407456120158555862282009119830106628375280760227353100473092274086668465930589935103712951749956846074668344137417212411006841465689407341498221642204925115629049704050454293830351371623426305761280234680652747759550604993785113543576096210365432996795255058156999465511070192996255118454727466215497510334006214140553658285494693145803878401051043656759962878597688482727569642150681745939415905807033527812636457544827650596480618452032439549340072786860671389824034495609740309756957079014189331371732040057788990441199879980274823686943236784380035526543363281610223058099573091148794874530502266550769674816270556797084713838654721425434422163569197180634225228225921156255897231688264638509252982083324141334476216633346222307659683068668523857717902843602342178241408059837810972176759838167701860713915065911419024356198067769136366472403293413953395177728694906532666218739522852714662876050049399663497943494630655659375800576771292679048494134736093110625838690259975517162902965937571369262734993135654243715895101885404570227800122806126793468636413044370582567805334094152539750852236434049062001815379152234771147202544695850911826123850696092713765354845300355718332110241701279842468705332497146908163407207689595155358884232505587924120092854394752453164311804643598693434743147778264766269222692064005355996137553146500002843541957023747084912383461947799330487651405329106528714065038056435748363157518116571080681737311105488122815308245212494145447661150130706930889264427431041671432709412431879583438359030749004695335898796385376517299427394047658074933268831465089148373193902423103213101976297691021327368116387912444369098409805418747034068974034514698861290963310753765199034043758837015341370160636593514692939089657578906661827320194745745347767266337408560336136337025387731704181271807590627797066963181507380855517142130140020810867578472116480958767180862961226651628952086976134076517144034274887840933507322483614555494490506614582001569792893898388641920752541002971473579806537626736131081293059665050636269921514696328972934650903596816913551658817113737016564960829077917567627250051122942550554730769084015897036896376845314418971372817284344549812378733970683743350942587617607617341388867594990578770611963421223847551637465779383364613527094055980137647664030395686924673489740949602355788140958504642401475209277598533310083407723727694434659994857400881923729244093877228097561396167080509360463167215140849562590933922810623093252540446534480306398030718295019550802227508936906585427776369754028604519753806945362032241917142571237659217820586708406679465066893522085382161025923099672472993555875675808000500284960595539982373827320395166131305134941883082527240354421341960568824610772813717403864195188023846547133536527779112571242036862840796291212838786597557713677155964065883430352102878199501264946486098877763548688468537571745972273586571690609931103357955131078026770271034343723040665730905899133485700670283655723414508086734681393786285671913201191784252173440249355950295426196158745180215148197087945006361975443079277616586605326962420873658842886825855389165549251195116451989720740971120919984389730651253060393655902987874553503372973569191415016137190220424052551126818608937149221926301526130591281474260726125724797722161071410935413549222913190657426602192419257007986586529894128974489660426803289395008839624218474138493491954142804841743425905661514631207682336145311781414624992824186925240332886898357305117804220793218874450218178085153165332496784087700119060796219102794376724566798181362981926711048260597891364738764204673083738377933330331833763986735885699165665266718061411112263164287361696934136406984636559987745986624456015019599443474379703652195109087686870796627946019941727460228925462276884942203497772596580370692407119596411228813815799035062384389378776150627336386093075698707897718982509936075699706192618399991486403444422519529802718658642682729359461404202965884406515707532516711772581739207335230300149163820922880809848716307728611949333584730882119286182312035317397953806388683643129787392905213061341303506553602754279896674060326332418469410900880369846153366169707275453727649375466703803537746651015159729688813842323509767442650322818549383118853020475743346736805184758037561054565411937935516125260891003962629568036950975104913856111359697489104376622929134890838222227768368743123189277860890896493008216921275635200770617529983870230238812138764082335449136443137636155484083122423969759693726103316338040772806296565749229478734505015352397338442289854965718287162468245001134217073575674759183278233804220425593325858010894081568715436122402716664745369759705677158505211303778115857268914743057242837895441594108521552583816421031808901658539163626131602835108356143778713353506391674024451637562427489144951230050135324966758801014162686779971798914543632161667117158087621340078185023935529264340465409843788877453560168823411471150887344111178982089592532831056060489106374430062289876005999931720739026616522787371985924397904102775195719588028455213027176490498335727628691900817246565640750432261821019908759285421811346956146084422101392119499896259993340749078468993646658370721530162141603215836224415501455944390693457757117105339543433498901692283809747842875833400424848181470076566270773207931869815175517045392772361671818789924693881610122704065373756762465485280075706378288525310644355384416790581705137249322256228628177698525410717938906060611003993383866602890592643956937066344981730977374225635508086343860365294482579020400464895011032219766713089617240835028680135853856069992346339529578068112043489394259006959156772597126451799824797490767892205465578741589152960800973366870997361991125814252653468355195792924711350968287559575047465658563573489592757995535591268497342315808325035391129891415644374343962888836309561715696479117317291029599163999765671152551824062882340710372517205988185961994400715246374875671182016272222350773987198623484859099878044227365997877026632641312730712838613329632590543639974248110024087669032220619896209531385164943548227206705549138104260758603006618386866418796703149205759202210751196615047652954901891395003565010502232887967623821637141322585441067059644009064628936259762923180682346626699129967707828905540282853412770993251533202338156459935475581178696954928597818140597513081611376583609237535459036023211095648802425439544730955206902668283305369918987759769991804865179300045501116772032254089982041365302987780620537561796026644522507341042657061995700155770950354939136871556848233708680712530230462627650235006497113318331381673994296447937789057660455014813328246953832530995217318292857084130711449348223523427311218080186909969520065076390089550223678737710169305393100912166021349678787338627943781636262033819948389245110954976220146260593445787136892760754426415000005843982821690004016900983542118876239683387783540319746330878917937384389883032778251030932160632185696163367263801152111574389573370827141094088802095809081267558576609267687645812430160949744838211976206784029089717555757532055609782490639364434730434280927894605383150545824249647401172319952804660824524154323869281647048746015757597026530082841215605104607903737804882540592262712102798565836768106745268175877426020075758198490785536407109085977806884656134502146491564405593156029859660029570570264526303274739929878867169495964265388137040428628208514695494298455021981175131367076341826481780187399223350289584168303650195923897115394925241327404103229822464782854837916540581642533916343905693829472683292945052972583508141582710790238345306486582633246397960442118931036177939542813618897594209765525282718715077137310620087956592416272568330026601795427011618623528318826086671486586696706388348547402966630183327706414820510532051911347050994792545393806254531508417877131438506244200557770792654677236044114414451789180498239382364526635255199821912560646230904199932758713845447861675544486399481938187556148834543627367006589828139570686238347941428180929863907370119241863388611921245990123701037211825454083741526182760656154219718994604848556073333969141424597711629087138314055162307932193639094224414273980124006492964960002833287854688249005772557605011400380825506928522847647815862431239528996474323821829700176231141136867749138647837865324444129934410309940336842327284747283096684390660589120708057153340016674168280013612512739550963725153045410887397781692910576123033004579374917591503395970954118629773389970852600248260015643455285996030995802943324666277495153877194629016641118263792203486725284026468854850511607549762472132392329660634989620829136606276271572674299822730543336161617932732710373278284072703251121060367645998290089306471518384362390188704853149230265167421913630081249085012120151629254829077145083644125682581554228639865530129178938479811755100213109826244328061127981093736603570595494786226715400871968887986581435266614663274507712124755273770532562828965293989596194884444166609191977882312801990097957920711373509674177864342874871937919069385492875254755690953954630140180081542823331092988814330215615177899705177239614147856971639958213433992521601505422850203902887859938719718236127736996790872636757663121993730753459754377687319417356578624494812558509475835398346926954626070493656193995162196193056277468093927984321109560962222152022714811706720716310948638087270908950555011000690273006086749763113381422970647204810486294400882091103198837189493812135209683694797821693758093153533265729740987458808062702753270068777577204251346058799154354384712868868238527637299592001832780567729807565312844360049780424450890162776273066413062496821632606832377325604908974489723547351797201923621582605005640740793481222936033481861320168577344192408732636304098186559207929939069890485129661810728658867181780390753253045110708422656606001727114654970671650197789968022045992023760695592374977816734643540397705244453186292137212405990878732060037578991087897179097601349825175497653991808945929100339674740740010253036253956884625497777123191913897022489466224369690037537925323862092790548222677084366970132182669245549458237597987419602893291014677630568064929533536988672277557442485005437585260173984229109563430868198438539271960249141351615080455987309379589369784969856363804248388664274594187375793096078237712712532132496260987572460344469115624147357133590044874370514455101008077617933740802088455261647827130880683403299144617363480010867973076155244975106284704194571921525010975865023902279268162675406663019067282782014824282285709359270911663231957696106334755657000897683163739772990921195455397129201897592447348898838903862877720530256889270117113546890330187717603929795616350273663464437896753852690739153448960472631818138486789232470356763100697037936337385014525533802280607519408443994282355321582213106196057121170136755227539779434690979050724351246965163460484224877708413060927434783600944321659726059570429038120745251242775714818076344090057073371340067225934445710523112759088496304819621665956838459558333655423907025260875421586283763032576288612021842163264513763530125391666624672742744315997732208970794750820565308482543503808889518834633371982534134076598778176727537194179874611355996885437599771336697371909762672315288084406258664492763137398395202720291835350554806147004838138333347219602844796504029319805122800183547726599866066958685458599409595473010446720883254542885523554345170886296631128096579078381883480032800869194109735717200462200299635493351273364559262623615469405358448159590546925568605414739964062326862071154661017138978518548506937655381047833822542924959240624590092775998829735831874361971533033604708238390397790507875788969374092643481580981750389779433047310200345362844422807546815091552000850035037062543469701774186513395118408766681174828744848135932279332952779781991553071252440072622010820010596843410771788649849327666747719113771374448791463884798458570457820350984632597136342459704690927122925175213279215937022540188124154966071323588215863687278443584314707480983086009065923815846100540942733074378006135196897519638892029807925755461378852347221177272153245259600805022330377200206769894663459622231243812143563587582869837118638303551028165976349710519062200514003465275010172494262704464151026120444326020373125203988780008666712232772306966123205303268343534262971021962157473825056142229784222708061228835902926698865803364797184563405590315529924869301718454499051004179018775311526916738255148946190835177162495945415419087103313427603584500727952806675956996322427303366100733538035649802994241267855850146958898387587110207392695678981128655142780806043146347643212191709215419846989650388289649777007205580012925922998816990614597352973943267926694456321696262182747913304384574555818886776235036519132415051972872126712429117111701061226078767912585927443002737543557281463662945554728096358167389151648993095616131465651850899100602002179633597997260218683519104620050099873679925183912191422050264123364108262440644117138048973490536174193187692653521024077350799481195649042040092687243792006509729300981040557778006132980651673213431784635356508610015615543379415993444255117454779302487382164946338727452559251077400438731335276305730026119587073195670480322495031174426287535792178713263554113743845185549435748085832383329078582865945857390793761814566439615039394085661651994860663358960705178217872568129366895708529444014960287619274613793522219433244666733117950298168176936350600407605793984697139879121632401056536657410265259146542749282463954410730734123802389778513055095425116077954433283896486579407000019890980840379441602727981724396935548810764910080530276151464820736636575604251323328117964717217791994604999564065219295722639591640665195359656442977891035034523603569586948524290602057795024563775583210171200577390661378464562917729094525964186609793635093377095083883053403121886773528612914120742886517508122072406522182340212701948358276921890306175832244106289146905784905780589816834145202417520464983709377207052617041360971232105263993089311075031456922565144716994207707451364420826282722152883555754604971089285148012380842532665929840369329063930616896132878904261849660351356471611207963840734478344811360395014061647899536737863474949433571629466538571076744425394107405495738783948238579206239434325707998898155550716166377230778159286263919158609115691800768793215985993876596364886105875025293224640230548439326274206417981111124605872412624620218217533940253760784320714908518220764205190549678113675094291456870643187595444645454531971437670762986014308971368331871841530570240719734111313966905098651759628776392397709677227002992576661750305575964824838857547035878815752480203248010200644868999334945466436794949604588645268017261149821903379121385683687235495681452456531214252023413668559625260720145132383610921204332698187549542173833238149137905550202474689813560019318777420217480221054268575461294550597994465103636256339521293040116145240698296653459871445504271834360159344992295796346346364384392219400813328778273852480310174210941821017280211150571360945627485084061272977329135413307600464054107213664670329971076953184539192743659457409459708121686179873219866047886581934879057129379466580374503595805979757980881153174151007800193887335780399208137966919474464822517289170982155063198174009697120145048785134084862355064902638427324850593698803628985610291078877234841888110815570252855722733906991105983027401639210868194713112702769401005564040650106001414084678543342710353239165319790576143421831204972008943287168179306984569791270581402700535025335511927099884684583016251125493445489740422298903548564906355918037953135604334009709126801928725593517123513934679226882745853937786318424284255611968981996250405407158912715891288661640946776946564471214900744213220582474689991974905016205968618101869815899621162875482324085452271960285944415566213175879796814501673820380978837394534860863791163259749346752931263234679314913005270092922434352511190141086058509132142949689213182252738371167437802976056269263649470765683143613433734388641158444105750748401910311498818482797470790691430957009218180947293306814955759671300918252644400714719408605449703410815620292376054572020873277222346591496504596319727218414649570502574428776950483950771505106325422795063558232726381050074775581069459851419744345738843771214318541531694558712486237694982258940582202096398796982719195196885651694712020207965264919255511517327123377766903049548781724008253648147829842274056974522337550610807604762642386755974848184525185833951196892927745092496255367854197312364332011582686352362174136765970163496970296539679340380196246248225613356606950439657272261127522513278911273517727317473921599941220605901795960720462487477577335460839330560421956772697442966910661584122059849591869163698578775409678253289011913294292455884281212738054760737600150158505806221439616957586656606017889179451766746860959010982105331925408440466049526480425561432500893092038743844524148424825898045540639280547363607608942940598716864742043289663412290403482765811090698008012858579035142341049652876978534956181094470879125695939028041981235526451078060641051463748631517311403571014569087783906221335209006505072774270986453573223848033524910371918110137602944638410868978264040143126000722098850508345685091716593566673402355365190288271605820032521499005617041444118738486889478508799641336361131344918931652143029316141987855722212658766279366500842009752977268023419482704120260123538042869570442075266754980478382425058957444757436620148941311836163792207347404580609544197988203945519148225252261702487263365747043959039703187179856513560322839125024582034066482765317803548177554607615794384193295485148137688311683024707134301330358298634141563307409074883929894481802097392218368384110169938976253755554945922764682968841623576566747735033358198718955338416615088103318261055116643565921314643605018408290520374892408421018590446318007007691842158171634088512278706655028073805737948826409783086474237131313508422293429892678767286507834403460048232777865874630009067482347006022007693898280614546952030964570459612381013634394499785147298992847202232834680045000658405287785460816642285344609147532903710981977922899043589119148471341345749280056129035892526890673820369053667508643329609471400672557776005460044223884050700713197892240035175736367869902364104244998406248373661735153438077324086669178829232850625453920401529107421439284408833006760850172579040254823663315996275729352310857967970141174058144974376015993286191451866146274255580731748035753799019587056515934054403105890677597651096772803447476275696674005480681933742603136774427296478015264370900740623810843111621841127131094486878948337091336639824330664942420180731770122828310136901425616259581760657310150748062135797384156254248780051387806804322505567824836759699811049674328412883188808021758799390144599627535678783984825665112004479997087951638891902706727527681544784418303778958929726508279864480834669049270794801917780930659359075828085613147416232346734374150671275364949058119363909305949866936093492881424975192637335487765066241255957594014378783156514074511738992840052968105193709830772206713741920785629234438751730798937577657283235896999393209225471867215393920084431525711525558408114379588301063410880234726366794924704032704526576802608172054470275268294368528705333747805440495454826795064410057931022459885240757823768640201380968533664491888968044240697965886399368857221111221449542394415974720290049260647712438320543274217834121115276698326922473630779613972444736653643739463629301781859335186064371095210311540130780860216561789934820910705174529061804161101940735956069125010935583161401088141010533999612644131715699625317109784027595798720824764234380713811865617984278776889922325348115477874308321769029344494271593266260679690066807855735697926381438221409281012657391269296197649252171627903515137221875265559468586385136833856112278412216388139192814822275579008108919714171401412923701643204836349904454922477238369389105285547701015424498163598694279610067011770350998876087394430399203914702496074351217066524565199826467239170201588101795644333185546778777129416188573200795377183455482158536240115471532833797098766385076950748607662131034897440830646544305134946377341012242377189081125617698578864187484843491411586962384894789268876283688188282906475155905661230859997122337902780595242735997880660738522147481689777423357046821842555471189136249880807655648480654162862606996456507642770455488094988017145920250610437808736958460955413080152227077208503285165534134839217063250512999471963796641002878454741867731329753661118976582959575011316581265355590853778473246282797217488329231479926075191316095951477675848276557557452072162863359688273821359924191956752434099435018745175700388084808043818564892310279214987086304407324115918995238536881013522222740851078950740911337755357654293930572154122536273252137264369806279271184583739742714459867291730413901203247230936297661901457072033401910056287245837689824351178760242070185018951018757960641051896347907028655700709180625608340784368203521227075007601863230055413975101987749604110896429497822463074808304770230551443519275410421946865095633003586526199909443398873715102629294337817272512102347420782072715034190205439816124085420979142586260722130249919368913619692773417744220924093711020319874991831626116725320676115582482481679727282855075169809631902491111333898914267010532574430360788452296285460176672558769953947132078707325524385580858966267445095705398795157037741021324154844248548207001103075255614201811060853678299044204862445769050603032141685011310571359857351681234588202777959125051449575314998800974561180633789225328636551209334887158418755882638693115892052542024107670068269693680033694182395817903417440647960785407001459681315417029503228061960223922022068150002004604010659821023705185624341945188232064875909027471279022418523398724440562920136506619075501910001924495496873065064401579260742556424037427243639260889830369389726677760410625178717967730102765186260226607344801614019714128727078138968695953792114685137840161531449835955802815024164331447937675624842794709455254063382054602453714387409509309445965859509685911701956569442392084124528887534445568192203175655925157922231052318629544726303572323502077886453743888527762304959741474895867791146158150791052656889886542417515233100580870948852890089703994462012399975797919141846808138279450160202935537193901214429638802607768457353263913743307415795521786373682779218361075603055025425024382530475631373671311760579758871039466251906780627042403718507173709867726785275243568963446051592829472478324793092346963832615705609161430984165837999732433372855045241380546275277739663662910246859794872653463694989072854679627169431460080798774104892708091073336898754059471632553698479262699765101280645289990161118869583717986159758376987924798791836679704446164729763233969212812260462287163182815955149564654553225991369627751041559144831197502203197884704551447178597079001333447920743526065026790838280574039428601345205710151116789466497503386876801809980660613205520105896166995712956539249009870244453950985028425444269621351059341368245262020736593040309663710834581276807731671810798241372537646451213240830660473262924260387913257295835697095375876353773804225814281987614782040737053921080187934657387989390482121869580632369624879087712242693303906829878109260464295095304383649981699732364627560053222985542285456822996442174813977832692515573244755628222633925391885670758298104267253095532730071953882772046128863498391085726083205290840358720173905977223058897391328550919831680114956434857028237348110364555377977198619591789762164492509496993250807565045949362474346959146391537531288421023360358650715839434826131565200625393523005599605058247844837549390139000309858837062347797723517229276254024115403465400214504479423572372662813165916220829734513815117072290651953930195471598896091928065206170308851915879414684633033931698796065689831573870990244746244218287511089010739882034225244361400096709156308938282606952260889418777791309245761987333892345582918528283001865316001017343052612014070885108271293851931685493538015509347889897239818512035801898485282038963892035469423697590962689064779899213547367169829704754288589039671051618212898680557367827370333315191094187999332488707982562369806029082844132627726980512508129170683536504865033325300842506031702849617175490176014644020563682745934762158173900117818542536869696400232753615784282372577119298589832033635221633017270243221738605495618854410054455422299701084685341550432464931880555264957996195971824115485263367717227476754790344659834104550897405381132993708204204315423319243438533743156543031990198843668891652297150480490319579770934979528940830553011594323367754116765812815931856878134760561561508287140476405033477722939411250345352555929538870013542450523463161048901461245215722059598212911850957385388577511190380508845319662217239789995600021562714744242116090474264252606592784743084618639921816027087543573057568429813557280252958809489017069382822472304167951149466480780188589615004755445713375326815912082873059658788948748188125006261534554888443424124494649899270895289892224362244554014271988018720775295306021427406760056772342675498365139591793673482555278751509331776877467956483146320107492416862044925589756409903104898770044068698229212950573763144772845026175259926321429889953688118206709160867366862915386858033400975516743858687452481880010691862321920312705167522482135991535037041696304748153966524274960205884532457510339919686066738522397740666248834992183956660823179282180612773643394666884070680591353177761868848999623997944704214342778750216036672091429026920138856194043314352150109951018042439859160164785728219384206957143186510074903929285696223753585603770142953270421157668892197022987778995531898495223623915508440871272211456053865423009670331637387808871011529579139393673512918607736864259626076295825783831209227411260873177926934151795098570924052673960392071692809272760155081093025860879477052785197356601988402787888007426731136964649762991413259889839511815870378546949206921563657529477263943670968055763339603107516190151932777200900556605862595961037769914300597270272047957371665620631784029873055145562416557589096134317054209220269195168067779881077729944327091273945373212537884314209846562262671968807997361050141131251914471699978782214098462581021459306505846060849525360638799907417992232082371638902673550553401352492483974940464738990278820354576186556745434749352553241321943463808276833094162058672554832335151360624625887198904460417380325777733609679038029650857274722784755575250150067031028244254288327744604246086264900146956850645890520208813691309395626961066751712880917423496593574446223278150707887877404669000470603224986577881731599360692907919025668405777584256151634888994796748147213463043201973542554323362872816881156802882632157575909308723634343719823056200115861345705788404125489064407935348003755086643685386491590046487736358770706401159327817832929648468602395323125936495072860359744168970355754222249517331698771016746869971383073129028586991949155443849472195616083329982163572429709506602513796457254954880940932819599795666771886323221356518541330990100379333470360175766753999190754328416684007489961149855992804342634312687917403804363179000514934168164295132254245448135532645601666871578477522364514041994351549341423415065496420726193771474270836030271860038007456334150332513549181633669691650841688693442646679968470852397161231651798499761739624789639914590666886902201994960738894915816322883523309813136304909184637986849863086508189895154939117071519686875195185369375769267931503035535278618036046065316412234555831285776235754953882617146966672792258997763060323085594764729359634427223732895291238048374932518927584403535575159418785774535247619278872929238464173113303093284533902188039709773504754785304962171476833430284755773443966574902205528336813748198929630851223695145943316583842134019354199208778973636225921819494694888133691155764324634507159509446196193637092594873140522898206577481301280228669132880400102001279302148577591950257245894214008780420430361462907795833871405115559416190181266299391192364477386076096480071057787023113959160462659957247441815398329623550973455080034064446048327605431831437834969383143357120773751078921122699163444068204009446347067823639813860135840065096671786150673538473061706688030495774295292663969614710212025377133556561140463296654778461935132513782017316300970872474202274968706609126113798434139998101977243068623312141325154424565612559903487391885244793895596202332047368971981611667827501386772980402943717664420158662332979717275559770407707746924486543290895557379143576769007991332201178264609337160630441821922506892193408481345726657817008322762575568722672569442333560599801726512294883293864865720214682939161698696573166010355646245760020027382703542875218094616987972236793549667071318618352054533492159357010974021738502352032414539483189479162781304252690614340936157759567192070851101511245016414268459064243400547391508844830356133968579366013334131459446473020080601579706626738880267037650844518745113875840367862434073001908549281357619798232134168682083773073015066448096096111796308935758487377243763286788990583744230500901980321920314609112969639850373628009484173199521863516197811472302469691978438275228329419765735602243550427353038935029446421999084946385763104296972481012316180529096087947966668002049620005121110102489993334639048693351501447558677033146179939539383571438241629849556703643041096652883847165465841246907211694884712345840583461969658224194762743464179777389847543668609735851484242412165673581521216491143833320837467988141231505217066760800929918893749498694033239660936555232411247207036757657714822684415945245322992481755533628841267298353403341811459431369519269951104814708658128156828562460691059962765089191519966485757657408834572792616120333244123834634740199457732310472898768154968395988641234596984255645103277440988779854787316747121258490446480571199339336508261933373541564728339651842085212119845046526303271537769617900693022698593228500778916276215514789686420035034007031262053001709829726483048315117880427087937464695057258274895409660926906337715901753946156406794389101806627408305480405851063685186756845779346501042093641799522966467092338189492037600290533694156323927301402802782251527005244595205219507621605687897201923257468223608393022383519402147266994129407092798027678253843955500869602646038211438690607204505505203519973911262586488521471795259835926400300414200297817465897492018721740118938413332264899554216734528259770516162114523623547632711384784516757958972601815726577247442994537271159154271285330338181024022631628224088852156393638570840950541937640326574655137801622896537225160601352771398809245925732915079556327497239583182329041044930138843743755063577075068010138583347987057627169630156398503855360172414882476913280847716340283953450487438491003390591820662082163997470868298751396473710802892476720096871681711063395460090932543036211622203959680546139093317609229985328683541224517187183936442514387191113116262688026450951981450348420988237097671668638138315148080303798453369152798354656159294739807425221614047706527112507786510846854050442194218032992160021613332999702063454878357634606327485992456423153514411536974973603875549007048779188237252663907816157191881603752254209006451896833259833962708400042712206281125251154759836668288879580135248352952957075819763720679693616631525890765345971549320784321393359569657703184797117676553227951299498484365695539310844081496511622059476103795493868351983929153462530777039852384479279403513258460673173788712448650449942753949382941860926051442773464176867645688419896739330395449933915599574175917704551542121979565683219641206218372269654075284763584363279080009028144284415352862255535401142839457741085437881817376844467693682948985832629990144199329707677683817446141835321603764031886128616911648344440348747289535708010253972480000795984419161546419781710890248874021516778486427771361949231690959929854492079498555660063616467743682636401501701054853669234818928917360648831034339870155928403646648480819130149710255953766621015439157545210663204644968745900557386537090802131016371821157547724030546520854144244561947768582807477236466260727187780691676335117454407741509461988800536049191247912122376953368549609765657450307621669577904874781883676705147433341213602521728113248158323258779661248520390764034285512658842280336317925380549114110036162607173985711916081796658507686890531358759832554958234392686472016867639697844011539687876635809301304376832210011467546214276331185031172733352269804608495169310089295467665970732857139689165565792625175567711443031719537053677365936779512228484470824384235862712517671776544163344273752792539667929234794919839827787891889135806418847988409961519915733864534775620620729067345174617144191489939171749388841612604079358062740895309640290042224591332548696290962507930520755000408332620858947149420275130524217369310284668286058530953095852083014303782363201286967909891383095236283252679523694245724937803074856714638682431532262209438075294927313166713891028713108966640294110375524611813112740505502053816983907295960125427213119797021137093460256785655775477621638162358480962320514727234591870150797015564999713376478313898719941686026012059045085805061248845790562448161282410439507146735965423903405182918113330613140128169025123737972698929263185939307980568697164733637207622725061675298638218075019677394459789266509027129703393646114152026970046072731221630710784560049419408448392472257883128465515019889461354916273917176648034607739732121260245544556884626589389856803779280880224737760490205760792668548954242644596980919318758530959991509401764132387381548316767326988421838929558207852886239409343489536755117370241361099752218965053221347910659824813234659921155977079890684928603231705534074968533575982656381242951934106847919897050801183599296180061911325613592287838555670348008602960301819401243139220472154060061513079699276033382951790033597241126042474315946340933885428041547410330382286194068962670424985566883753305861930483012378565607540222546339193975081960697044946785061096792137477164990802340208318527371713689777303147894591901635219930231118681559040274213642281914139435421445412664845790969988017191356055720191915327741425015892837978838884892082401520174864300049816983748499760050083893898432518383780238467706314216006026031129836451535771057892622107755343659108724834249016028360681058668667196435031070888144925480682732142192946542868543610942133781370403387037244951305794023662686930658091817758977114206457152859106991806238954690504046687267834699236327030138159919064101456839443128134696305856621658034084076862892243455074264328368266718452416279630877871388061913854401993195222292877504753388974921794156291206116146602124019726900249974089268472113653720922380345611353097863109092681972700664597316153252192312728881888721978258607567106384107476386826003952123640444891120713259145032699469820205605032004935824631689583952955296860888522963711364543614861861301776827628651597620423271699359453406735185552368038867125229313991444965738546940091978660342446607180323799864107482468391808458760124250326593243835638454273583349887543172030106237506776541928737401855396989633235313196502944317026441785052150468816987932541659948577181575027627953253264883912841444254672772036663013771848861042341802215449952704040034916781673265660183005153943646824391409887578330709266602817361170105247307926408599222063182645650641913820614392483594745680009700868007170005089863788725138706335087977050020594768144802635663865470720892097117751917451284440309320776564811291343015688247739886992819709883702110466440263083276505955145260295712993897800748864298308469301729041308183555927804259536929908324540556544869708926273453132709275248369261672475866206926028309332525213650971087904498416754217407997494397430631052940730287788132838740006089798546083518797455364073453353982607589889876181379413235093766863967037555741838911869663077568469662447569032778769780157108293975352088606686899945297423450343439353437166155611670540934963207361014922434496237671130795646143284135682407703456327306972162153672402477023975048889597052938651609588245748293965281047869485064317559427478952814003463940994574468124820982098781171234275761220726977747384810258958514375156706992772838689248108636073363723842359865553461771613062156073438178736937136077572921468059437342856960532728563166450980959935069234187179287366697480601314010193116244317136724860500967384674920321368460187918178844235354446876094821932421316559199562369689551663958409670586843533436972552767058370737362564722103688107771690623743646235195983033502929716396206114698967876442166908052269183120063439126621914665998909603621998304377966485404118463791353250995847165021650373826002647444891047533429592967948796961338200508206773480088738159537261265492658132637729417352853554042602499500387146747911502638145967594535697340368977333854160101820014368794042803097686462904524948616497718650680183680954979183601224528878890064184435320565196411687721088132652409070978242912691914338808784312803833609325794391661389862429204432589796239160185042407314223959212602904273916868855842476387566430770288964413782773150014222602529941444261922141406112612245881374400587288655653211070673487185811111464829182494637163417328831843863052205730050211038650636738177396442243646716021588379273039523484535325030287974852555303013918345988769437818384903215060017541666517364293844450847801187058621994208739114222610556579114258184674430161977522276883525356940388012754187346058987973029934215014936200658247618452372490406371698306086996373727958775577987852325562365114906909694144591928171328483971839635192686318232227241201079539139521133842763525381050430357335157653056928996085625099175187196831132347748484143569009419860894176721272118303727374762943305428721477342401119074757213179372539016701352345033300397106827611524361279564870503572542341461521794236612399686747929226310972204090900968827883217558644046687120862655405956343324173655800979828409695991298629562478933167723088841719037116936557096163717624831762913205162225895018859568663047862236319023106529896572180214670263800591933260610969305443545250296349388563581994627511125266500801546117389003070553628683631816297583786413145648511558784584538999534528066372022535401893455326674535062439504358066347412401913034036991374844225250147087904787317229556657521763921696272247984315979668644917142130507029059076818794919849647171635113264968137868918325766168703879505627230001122402198135955956700008805554073951171788788780217072639327526921851368819461172270161237435878686482975420008759357336249176249553520924647426380521473038632618629728974876476503514554017027015743346597751228859074533749176368856107866712683513437688341895149546175233081319955584993359015906856458238298896949968310197333169386479777567523733865437555858657282359368294262531186563193195669444112750747525908428958458132559053625773018063361073259636920298749354239114001794455590623555883765245778649229873851841872678064452609152110259900062806344904163229428703920587330637980808647596404647114390728547673619980543243314470841600552732716563795492614947397997701668791218971283041111056129206873664096566066134795785744429586021790863633219101234079328133967774679773001854394010526403988668022882521775360257606691548206491598513198075645127966712055282739305803654785887055350498287984133317659608035972719769005492522333501700513396444471656949643585296575569423644997339075331557364188910725364858859706376251874352297383585822755348169740001249320130508439687942906268573776737671991355705602041877636659667115974528414842953865486406636846535567498994424642873131606910182459062950771220891149468901738151326516245130603155674408514967382679442912009784675331063088756012755501276416208563772186322458795862032302527436717224383549134462438171413720599210442289081686759808516902867661884411292825604111101983352170641154314352485368006870869083529275257877100904505667960111660930720328405208356247915095131060496176683253399184602409970584891629640643647686938181647596188391743172708137609358761796536477790971598054707949868085590108898421478346404318418859546062815154710558523198993513928739324558134834174538227150663322634847017174253032644652671495777968922734448530383611300757641466728079618954777272048741230971067525269654203361701906414410012178725938608492968272902393400369225634423276836818058508721863315491314462094246507712829840540902868211906200702403325366502232053928355878730713451312311649881390926243817004502845104674473426889902484327125665413048714750726413320456880113849452495246504663248778565657315613892861975470479316749590892638828024688919438358309864681435116083950672989724312275040012036917025954867214954751446051846194574118646695595370148210426515119575966472376538660017724201771064189466801112391726154805766793642937004464258917083243024072080367498864053877496717543117476937852532482727058480287442577071079631328789318919087771795749792972882094262504873293099311573457336912875976579741521798195646657505644943965137496129405148840482111786773723260131910624858852912146571983382258960613800242956461348427161025858360765215432102746103953827078421129704621975933967444836946027118883272575431943871555197806747654131177219438674844992504471792526481386139596116475622232660395173149277938649504841195542062423152546436151256600664802276726194592129213742618740552069013112200549637301366834015914719813569475426661720869028076691879824212030856414298838156441458960722450691477491178390681752729262189054136472534911974773816600510017755783273540593070317964329289480513201215403970265260134694333965882694738968407119327218090281051661609356306440175041264359117561066747160531786429679342453707741330304891991100248889651996172387386360945247081312013677473125525856993524674656972326237116914891621017342991686577012946468102614484879731601998485757656015976562378517780779938736355024920407080001347726200812302340360509044253820225082720190764531265339731589160951536941315990786453334354541757396981191549525116536128775083568345090241344358499268163384743840631290933763254128652176789556184064093922950429409683375639341760695130132764322262026060868045900556405008402263908518097573121028903519127252969256154680942435298975358935477239902558769876619769426811262228534068916696277667560404521992239732504879466618446179658867307658671217880080855346612950224120807236430560408703721957087245516396436688241251822134078428703291355638567599220572986639863928537621643410347798510466458341856491875982290383814800207486723577446050372090433754246677937527058234258364866434972044055610306508059335325622546240793852666957725397090567074436833506474859254686811391974910405501435011881022826540431367927679476625437215866831870585016547042905824208477277656026252556698715558434787534049554380198753063169100442116689503706674909813689101071430043602763147248879960164631956785545552625738728020283218362329963738356852583015930960556359250299867842057132792108837113911689565647107272214174288891336635652759380733667594547688581801858643181390085608154274579509891801632487035964054176308657834162713704066818627442616037134259857201834336712975176505440485246319264889782077616994067429925605486156018005318290069010390710839691196984858314066725468162294272479497605553830458300025705697036185168310151515059001959411116532680014148892516113396904937442553253895573910240713968261497271931448282115183643645965043769323565433302395955879134439323344210475146500335567099716754613960121143925151506806527882451357654949131185505812400787855686786814044399633985638026141851255177594511156695407783365750293608437700591340109266739686821466076077975976978981727102143000180142367210912064836270218317331701368766160566768985590456303685257431243384802550016682955169782573560097464092976758102329339706256315810649915910090052471023758891419964199585124226964674483936944245079507209017275610061051620529614192990787918722091846260839729366596877427816956479058165098209255547682719702099097542209124607242614610144351481615541243570373041711576378297344964409247062255852935908803235550400857678807462959493959006515446298105808513120096394133904656435212836695172907816245299818539774627725231937453975780561981273452541993743350105437377752496823066351992259064465097650853084923777778267977493428333376207206167941315535854330007390117102268034162494093971277783468055700968580539997439292268074911552657189923770510116682919654014857676475839657518351226333017078031920686641828942012835733958090159313709639418325725082832401161104351763683873788453143581943919816154444285352006017924546727891712572769014467964957549525237100610504072591933827565477109516083735692812520622834691424764476610771532912736559053892215402909879494290365459857046643062011683018212453709746770063605528400636696100289817068240973507538339122872569768194408715545128860536819332851024152097849731755589056606606862480573488073514425055799987360467384657159289625845444386500764234941482481849383416892628151135508107014732687507082979567656794609705082076365864536808792532581770360306400936410325435799780507502813226987394411002883266467938058001417510678236353311691211645245751845288534250879962808740754347733322520194786573132072416249093436163935685727324327965538333981836830086339646120053309567851259473909817550270703726165798396398359788408378216946069789063463985020302021385959263604105963479530420203319050002982071984879568768164602755616983978168125971094551077227858467844579464866213187585523210156212631971069569544198020577567668250000965679191551929863846908487822283203204359579952383431405347122927722186985901613349935295449772008886414613433202588402784622817868290084643483281597489738003977756516645270203921704596477424166217496567436302877565708802671780870004650127540040962221332086781142927139749579317885695363264557744867556572858685491957044058741858087593894959368091138012022280160461408820595548877316321786588463241069455723610704372402740051360792191238498256038357949358138204621701416173247287574971194206891037888004267491904208292558789661933670759908795873644601168726688803800619334857960913145713888870176298709488299361143570261516671843419126866067342345208044418773614446651833149688280842327699434237425548565045244640710369911297758400856896049738823884927959415199609583114594044753464448621499048422739749666232147516216791110850870137862855289859632725103838520118783609702851521145559710630652765348656933375209464312758143054458546987291162488894917628445773016591193704847441827015165023581749788183011893369936496823335952211576598997065494804538082038311476598319185293688884076613733242586536664885420773204760201688267845768115521445244095362396551513390265795612007046057602930383903254354954303276872271262880802516623830546904445294499336052358036286012358564827472635924116197044091999625584222513446611733816849030266385779484163391005889030244805037996949909385736594466263027671500636007483419826169339563318704527382904912489320476949705147948541258681918529338752749877429649886650465411317649153620367687435713727608808217458945824955391809503306946363304622370826403396167509354277606807605678104312484960464723090724786259145746864399834661930800797935433941466142613278745284940162834566687224089835683313185917708385474871812129572888940278260228746006223085088538826223293355713032520958004418828761368840968913757512075613110043588271904246717670306777161057864548815089001506594595885179623402946680569280003271293263578083621279037216223099915107247940849973894981246914094403706798809555612319864320290173633219003262684975923343534703037353778220333752031845211854699862483499570260887093413311333484010106235900952969024708727160573943458535291456946497517499947744797992401147608409802818612839391010100974193016193964844126401288251027194407001847781244550564949121160325172551532113246002591129460447272747416300107565642281343687307405988973137247785995401383840978088688758108169104134124601593508631364841942937664479643477685250773851154271612862225671038343524241532940258852781045181779630707979216022492989640135445411623166059277022249416980811138705730187609046643188504015534226153386078798795676557246588256473436836130477716597874750119521553826507354396849088650738125923898561558009558842227648621478034047370779490552923132140571385113078443314403096864532737936025965662559458713418554421993616353626638471465315840218564145778652351736353975631338726960842418116976054854803182709937678155512156951737756429607516913040710949382677174289781913136311402495259880992931174996390198747803888279709044446227616423416596615047409630332901847721070869144414903169587438809086905432944621529767652984470323406237008258922992165473327921878329563747786788233994285278592642953006476852258141267560659663811684238905287646776735474471499409852235345700590953694644768930772419843550082299164901502588349067132659263127688570566363173906184358641978923832393974121940870356707756823411763736417596818830975589188799954032347532196289758147378350474344443558259147633120515155665712296114891433820570066125624688445170150644768578672312008655392109050996150187865492112163497916231742406179890161043265489637162794716948553578218845521414089077741031704502013064369682116325787195280563204289818388636402552758449134284114799569808489702761086097322887744561177903075203687489132028647915672514853059577394173977533108105907747740724720502042484256020275926174513824827738812690180914258922348619110962615318877928634484535818495030876793245523455380790547540809621128181615318895162336170482830327347311310541892195245808685993523135281630959886118126229383882791070655766333762033758162733013334159131253747511204704329608067454801448443989034571372096103317646646778646509407523271440713430275773751505179377934217673067264718818336895643851185426680961473635536199247461176549556770728275472986583234747367376351748315259113539120117181761974035401493777471699625609239988566903052095640345805210680217548728411158700671642353499396666637945438019008613267398656221415604262046635089751095410470969387598849037409204652281119041463977510240360268418616914568451156706959494204385098316511536792017552931752087506731555023636830466270098152688749823212259115601268333247406638805588198898453672564484510838882965690797271491359409222243626204969378473134025289135201140203839712994481750461728556209340112687934862129593091219233432343767799890478066529178178850971573074200542020283672361769851461758062378561695055217848544491906736974661733643953409899728189676312236700865667296877519188713483680678164737836907222888478944388314377924610563390534983968216226217048962983780374450772728949715132614851421512957570049678802397789847706938551752520461654403364035656346613644787821256037653324399721076259624518354958272086936451300109026464139978399054336471757556518432276093703202866918342333372140909108441079464087751605764570512394401694856285790092445837420613032693181122317795980645460956819082900320721302297894805827124635194888404940329502286932063263879943797931403468136005490930072191781029287437288885354360543707233295329967486707212419828910381804337044928059228255404188418604212570386277733155738414308737891299284754055057359615430733320347182641126479121529707602704113359339569604262538644094143239714828914219770671764058500817430295160660242819501558634420262948834078843039764779083658301566531451638115749613177401828792331158120745168917022153376430039872287456844829654451839246677782095738884866237761281643872291989272074503198028970063238401354835929724591067127161151656877955764971365580112941126650668044887701911508072715060860489593330847387633841949724178123731099677263520746645186890155681424060062364312829174741554342214210838647983502594631745658068279037491947057864935682325356370762472389567809655235607760981900584294097422436538456585333039911686178817286444141448382145011474021335665760103167547205065508791437573967607777292579721956283865424509321314092880724552414650433987613057044378555058708517723783725788538166155093860801430870255386231430987296952117520846008294859472606950784792692629256453945924168031701652957011902459095023184540005006280056136059217270785389848342119547813656252191331669619240106882952545632444146838514551557815745629743581038099242634714575439034344010847714389779671146898100019915647883185682559390601768084475548067660067936028833180688739850672465327838115003737977296763482984873252022681662849859152324803622642660194701047866477690846397137700795738189402049841619411583378701459218962696123327442820524363422016138005325532582734955391886476271841622473681570263718382429091755127642990889425781895717538349198307709893701272546728641688003269922696827984613988424860568589386981966398174796140934512177278060952686284925479646975290991908621180158335373775680113131405098006880189617752399526308971564339811403675636539651997093027151284807920021691439188261381407606146914195329342920880566786564431963687389664016330534577091265458416684089794716326125761435848570763752992341183875095464425475092880743131867505462733892036497697679665983636421350451736257820494336613830799568409737609906206210255748299743895652756274690798224978505937726817086677634365154333393045968565914070009557366218910527720283625414079415930085627993582465371565778816833646424417874873861408129440413087192339531471863567232871115661343954636865293627203937657786080413653692378419052069333353611072342315675002389560710825001116477435949219730050241776233561230053783504695192785604685188662499250790147686386383143299058369552531216438247489809095328740131563484538257376179296810952192873513511061639049290845092474323948752839242602531432483020266849845170669947484840826849291809707216350058284333070939569940769649984871721918897609768983381345451011819780279100162711923960276363320728002578657680876197449041116929424521592357259671827207449456902349712920982848309461685392027295813372086003963989815087192280748822311344495975563009383627206916011469746186613444956825542554555010291612900166963820157557843400017211686701855480751811756394786332636068101862399990447899654698214804790250708515384785826969814697844468343744720102563149863592897133654306251567745411887842084473739468811069970380108221913286797421786669945516007207022087192775180696453269910947733502971495899929245358568952587686077818871954815707193052610040143917835880825459833143821303388307407459782536270012474617129199970723331430905953849966305366229476621167248453615444396879009832407514680943963836390151380183526330820801802791545604875379616883348583831002601192358389069095080314575803756904981595144904373775651424391271198915255618342803436383341477825162384536316801136023128688717100434994810661350476452169821352439803694377197601466608739791680416774839538278787757570205345575788496439323364049283952680501138096993735168987749180199647061388032123384437597874183174744437369200774977051959792244747404531506768717194263506291855975018844860477117642334350726770294628780526794275985093837811369989414701627663555927879952329229416509685282701982187564496821722946475523415809977612597736524715529839568992236033192263652042758920196796248714127413745575811534043940545772570632050339576653290204686830645682333174085396997189567082689909441020424118038585096536247442794041628061037865390322714348176519548582355477534271541895639939265773757055776370669412760789525673802737593488910541713135406867593321061955426246041428698572055114871585909749811400598988060712839432801237714716604529685825238821997081937187924317266857940461880203509363078336130594951643391427403215517749017601597348166784413733582152179951758912222475330442025211856705858613422864200784419079134495857265537750485973180135628915642037372635763560151550260612959193541030434633894045425954538729783503561491142754051951762501694838862054749799399958256342244466307338041341818304186238535026135644333700986652080672378736803787053854018638651273177162717244410501650652820991286744838280982490199738880848915034525843440999400887430616443442125702311151776707605868810661570034495181936240922091360832077461726302804382557470691456870223108427080559400309901003133872531228343996031121840589247657188576145741909109603130391716458235192957438404948316185121291387156890195452954435090489956096150734605317593427607964999761636855156071452152019037220090984924296089507224242428935550696166804302754272608926414927914590056722373308070786844519418460530525133790297523719155297792859374405460379497218777424855178694857930991499410950176375003633124166378788140595981040572608920573296659345198227227177680127232285520533604303807054130614504305677548812354742410573738831025258273402143281922362571092523053110037485398662529175681794221289007665965905753904501532517258561869567677132594253133943478752062486816205772901544888810426750392192603735475513827486432930394472454705577995781283982005163095526907550107503048777386101134894325868905805899711108944795116790066429031049479933190355160466231083557297032289684264446277701444546805607479864341868134950772131004751538011558007833633817107677737648749582681269357700535606519713176050035984973997806952743399213857213033474784770579531964550069690064916534888512126423331270999050294199032315545343322400938246278944439503984892666447674024382634320505100763705280970973165306115509253534143440334603410701844183134104127238627857880895130528949859572519877512568593332531157828000298955282550563227521667401869979926207186988340812278160042491722319595564720681827817954180112137433783481551451797525442164631663482224683415356240492948992932202992933011116421761858217589782901414591570331099105581821916960960387419525191040766085332207500026112214470909182059313641720420062810830771281436424484318133922618254132728452079814303891782818011449115232451118347630566110061579256588742275035751055335288308089142345536218257841558376868025470393146927313521273288615023746472322696257226194239748815308347975865107138824757895280435712418610142777926143680444037502765751006564511741945442263314079815022572570923911722681402095860515275626122104654958126513842443286123559840661617762602185083573662749403839705284358967667238256653286030272313890009818036554460008960705740740366290270403243743246367620787219757492825202291923646889616367039621705463333427420306971764734524853742396973666291720993642059812894877647212155072602376236508259647435750522833946841860182158052435739301622438707911203328854067069555887036708314275411348303112327492972562529639982078367286501347157533749914543254089241596407804237877383428432270490935792708667153312835732329228090875285272234343720140999166179660149973603715852746042902220249613287604873722881638796422576046805317724086723894784733585012171729354002832121541250436031905170726284600384772563430620913848891323578254303165757524406130113958614392195516528075245718293784446770428942959273424407461255113013931215753718114431140033063935816969996671990733321655864159547135420116592763636741608834145307454293862559437015226244725712119979867108899074146051246876277864034417247542661462877985573535546932697212591763796339524535214261090971585520115193500155223424215956768185923662938826014959261785246464408978096601174785590574103535890851063652864855795401268564951461353490128646429261112195394488003809523542294410836912034015615064285318008579774732797596805965806271024460903686397398800403421076487544339087789586758854924315389882509030686636685598653208160621275997140807314503486522221576266687991074887208053395653502392212532606277467926750554682607882358676526949260557571516157944579084688230098963553852239952999599241338573604872494087166037200250879827961666669878099584970091866074906061844151922381709350392766238249005984654853625265279540025716206835166305663600786670690217883586421793769298695899728363542698176091736925799888820074469603334353864782596461641702331087183165755377401167273055833504379333030712071336807034034874685582289503007045381165405367287470688637786705634355479953464439422277264542454490854753666588992566555229149567102203303445900549091349560855651568312028952653338848026173832327776858610258950213032704763701674528677266092520399664322636535849655602259746554815203653745272880261460100052266996984989424480620941808850774644624411913504344767890080418325948824031926111823251094774862362572418026809475240972606269368492079119347720593868807070041718863170938318926709460942987138627843355168441750236342760323574636439364617841860396654833090853387093516299009530427670613721312521803610149709284723541982481472206912398553332403419899109539244918055384350457844690899161316186366397952372496274887881039244505529573008963583940371765832692510950638672156277168176218571699555777743532547031678555915317013088165674624833392095326136497343657728655750339076150185981742385378458985322792195712882544813958590071610213918717540780451626571163706924606805451239914907018534270441379553096073296583494985575394551725774384290122819801676523889889294181033063308734991060246855486332852797448643543286459307387076421918910769848044318568288637325208034729642351889133376804940071729914155645891886009161123189991101333813151132942834637742342556392637774490202079411132964900789154068907539145694334542470398519986639169448722176032292967373509032886345427183206825241624207482949248231258504074473836945527994998742465632381293776692738087756827703382413953993375808936545907033671133155949010133094880732756731284846725641641661132944899412176553668531072946901157637163844558500615044612665413577454018987883798353568120484828038432686283884080551605313113953680000426082559590282852656472024627257116556792959047858859687063804511452829040821704783141634868399918944721965865513403907804230057951168451197163451515888194605268297088348499064680857106916197079671014819148478607161717943813243750468410453809032472428612232756489662674473791702986938785286920053867368435758692119495321171708274269337061257368292568303479109390302217669714812615774543888238019838448706046743106411638259236528177498261566219089996325967705317764686410076546515062917624467382897234358086591765103093488860608056464504607447704030647022063390016230994689175953150489596955684822147187155567165769710351594730775728930393478692780054557309877927513939015277440021514283352110920709948697096290390787717828998197087468014811944023654814573573410612451059378747795108984705920023273643852511675305817650722746067706989815046566020296901806641867222138340805636189473474774762093384680666061710484505582463373711887234844612682285865709324646509595953624645504713918293256876327004461249459203967174901152236233638435458484939812209009354761986660301928474094399698758707360668904171490787602799912052942493376768570870813076047326087183474926443805661533583767723036808735351801115177956674259041279269351265607676082146093757424306570616788517289207896867048460589420766926409298641807764483312512338527141199889666451750275765162861843336133462883383945174796643515797629776145341702281661910508269111654112888115180222811311398240606173318087802849840775093979013819523703020285827278183760990726367402902751879192119280921792959986040007001332335324847632750599335363053606447468130368503980864251596971871061647699153797778537724234476112678834288120011638183138677723820192663376721666118324142307564517386472306201834151775485394129169754571510168355188114024598601753042757409755637248963748835536898257323037852753836801808232759059415018650974681192749416315177967893862633009933455207019290490451465091849827501753591074303299547620191707457851687615492265496669977180926100912761906667915239858305215909065750168658886159542879392768925113583926699784870618270311997974883891144433372605488854347188796711727771365120406842075842483283865923775569163496261508958155914074275811396946274587695106328807414017628418916098733278659716453687641758033194147583834696316720332310831856349270992832036209402973796097251240400389276758425633791127443950710155297199158466221600823594872394742644064197768433347539282206957997305161170315477126280955730549900952540786075867495648477193937992782306405371123093338232156764332837753011662957109010158120789675429116354263634062462210255444378508001901304943646462944846640331238861881153550440897402914221479582459224606553028406531532503923751858362532730571547419640117042673566452358695730838120771072014126796203830667961099997372078103542596013775015119786911225917486813750074641199131015202311819942130739876271761964959241397541456666503504081914234077781298177002617587575881495738401406381483773581809893098946515798788574361249615623526451971332921363421332347728378728637768427374883858618637051015347208528802720911894847298984756117214678427816359645429853418906679511706633244254425229737415663069649356368211842310439502717999424543378472934860694319962966285679037100226338066649961758866660840219719981148166624941439998185267674905418579563311786877537411115733756028158821326773073152326560254010644244699290790099932942308735292205712169018315576043117782732378436001637757997201054640628591991580384833029576526457111452304031684337858462733168072632735692794536461355338396366038663545996784130589658272675094527215571047857419203850575233312695813190193697821122216722427595622419009184766579847640025260035417973017039662930806070995179485838764969635020701596148531140915880404270147397643124248284385683957320030521648207457804084813426415952433165172994442464005141276922412869899545103670629649054992686723324754613657026455028748569098764135066908795741537253736933549624375303830586893186282910510491965037521732627274753664378687295207049020539781139426061145576747448533074769019769009003305818013665640402648681670482731736297636162524793703785160918919844056369411641024401448035364229305615262914992965090353648065427251459269307065546234951040115602519495160137644623822286339557109844190794372794027089523950560511611732464055953124623237919147397935547307796951552292032868143596575911908314860312409405826916597043845717888632038614568926773546642436910033358281088278444943753634843804111293139607947536889118722774662824311920364885749699430037697377087775746135564852450663728775363926933710255056670843045698967143945102733206421942557870805663176255775303419540971111837125396270112606775992870166936157077048094253252918412264584821808553751052789281770406623474155832856484868726998794423678949729708931846478592640968819404446603723960198613570862766984777314807731283860361128832342065074032458313216816803620637668694963429336487509754740609722673925738061162532781170625530199123913858397568532914317352169038867706768312653172428400760202490184751534804622455507822576352649327314375657713832371793347102427156817720095326032915991950996976921299013235028230690125876660152606166215867379521601188457761615016201692625967782521472771238523671661858930300729889263229159626043640975686754103730625743543430672687580604438624092615259899077131583258859314239624816744867091476827458637919306156437987655195629256742906157652343277743196354417096166289994377414349171057134012687435308678111687250550640381518586259969602976004649590450464095422174025311048646179059868598001119749781128299504066977184808860516430022201788722646066455147989664681337233607009304280338983343396503874844163878938867663852234064146088373262774737775411047931881873723527690821571959992888125810758955332018388342060985587141365143907135668889296588006548530986518500877492298458075131526379502624354612748089727109666687630567950670243353300241791719008167337861170882532687355090688231077673442261968076299223775291408442628404346775131311028722760391248571962725683513759254155696930917231055535103556170009266767650182551899341043313662266301453528671567596901944375425029341452437565471152472556088340693615153755145603349534813437121380532074032592547071081729581935287450068553632689076658399879154846939951286382677982613935956666505179024101729610991798529513599897462155454819850593386855282205462807180934102203072688010132576560548620262508895392747123915741064878048446836891292835393790332494621366161182512613911959713638799522513920261596758169578057657371255100774558855393202932251264546424642435225681648626370933464225357646072834000126204670232673053376293446803628853673206487739957465432623092671088439348652786216117226080222810838578483868170093426284759702962248639341435467174401445943172343292256175005438397835432136327896110779921608092844024098636129053500100596414878206652632080154577222855681955885492067907047810540513838404834695655750761941888817108604528413512811504445566403029367808793072121562924976224228784545082339724731676085294056691730408269569876148979267016825089025395518080202939991140479341761131281325010757513579333073714041232721644288795273868177924379906000067816668204722642779270791744536823009133086326716712323076511463689054751014371967028321756065262320954891675100885283551003017613164357549633983996150019167281415685588229668152884639504286660540493580474520737097840219671858809432809760064914664918327203575646361870641923267829399107668530366857761421536427575939003757023521883128678847258848078124415575582710307511271247359286760891473200836962540456830568162032373939640291635425982207704472841269601955960858406103957593351527546457131634140125771859812310528593280804359243668345119644601685652261949792255134796080845378722358412115953777847136771441119903213350801307514554949413921840318827838811041513168698650883462940863405792218916415553874884178885403420863046511335915319558609374895045760650490280314918820808268809026835771922184127012127961878941861118776196334867812599024994788249613436267106632953564666436198651342935778879817179158816021558661694407286722407448724939145125900697413591052582472687218687873887404290044705667651180963501814354429976408190114185218733991037872351376017028569754336967461376013299662267767226365639985128364876415562748673500065338449995506599563247275348170629474057788957470178851477310714603622758306651993158794901120087854472240731864356570196899958171982845954742184150931558639332035724732644207065330629076267411709305565838200980598795434525816251282145436380113223932612829456725953129139636040746019758156268186848264187888104840840891444534414988364843846483666703888481952250067500441912061874456906537426811908995915858838118476678363273966577109562641704181490878675240275031944246033458470756121982994009750299719569934530842268992581645652800676568847922412492621145540044453799826674576199445922263787557139996018672912401209283851576326927821295720439805076701281659514163419849849338563670721293434154804294109045026010708195006509906868607805840578091298223562865043168404951336673741342379438997596922206546593625003281948241735680344382277710015671244861956176404261892637983674816746390353165779472173593738166730674871217336909043067282028483013686807994750706414543212000000700371152072475575220691399763412978355074168765815475463647418066106487761741203408058445931226948084910742843730116382771631591420343219050619453721108014668561613143352733830000064584046831592814056764493304227438226058204516552532128799247503594224658927293356203637386703342026270007924288716847089896914215580141815692292606726190644878003874580411865566604736548037809288793221920135917814531536897841618328263196743685017422491007629846425834356887458234426833139442988895476429929459725114529950015142488898688241748336052972816577991816001012318100194046155822976018397547590138838992015332668971265717503980749090382538800484918896289334883663781085098032774886944999416491114605807384225286842560023288886576089327979311116806797645517475477149626635724303488796772673954302904544250246243498993726643490969498545101748214016984477378873469494998735196646399469425940305747587243065555640410158797158513706370089551807408062803070050854874908020109533204689456819547377710920401678918464427151726199268247658080705737997791030172881423450732499665389650019698198982036374677189113791679315579037323184700327663759314425199396436164791385002938935162830738836832999726735548611159043274974954257859143102714521490960412510347745558479913143355746798260326979922724610166733109112778080672505804446018805440513252823942615593044128818686568998446424795996706956920348858863402621613022031778072949263123994566849318742336769331320732909619980852493084565949019803280486733871113407554034883606330856278136865232798914110603310370394866287007260297448603203813070743156068238410668586386890629354276031923948735420679248544392403726836417280985594142566498332471131665112559673448511271898714678219910717392539322575163736234967374644301610230464924656917267349614896013426554204509105444818138806509328153564838963640341309920682228700371548279055626658404682552903776518723135639122264904197634410967819126046450501619278361860504569880449842225016062746859227715995613226360810566857878574743992392203491604822335852490699341306666041382297615359134541920621257596729820601360786991499409749740437974779878742929837857235843819683466725950325468186254255320989502240405069932261177504517242405244465804828776421717398421200390462541568965836847395649243276113997697741492183975095483209218944568599435406876940567210485197035621294182093236003443571736072083692690155846877885768429940638008879322139992524867234883304118640953262709559109646802651490337055143601643123548033997084986345510556033881443672415904417366279020100074529147109848447169672011152934092580257919299250569178955753771258220840834687060154251727415460523460448167208340851301638224305164820124924838199297500338031942499458284324130280438814787444093258440575873709967725905502888139879325826256701502304042853603590487120586253880044412484307703935545121770293500709290158831520182037653748489827182768611499651052587975285655068829586983619758325600375729047903876308690670418041297139775327269185703830726281138147097644300892221938980662428344987075885409718414332444981213315372533649871255553490937285772463418036896571976969581830430288731111984697353053842810318260847320597402965370849313577631686398523848915001667222518073809200829970937597337366505139950875376063962097185621505696564830102111791303845826682820471010467927691942008028617202646512555737106552692722748523497575345182037902226939983370366190988643150554867347883391914145271607722742309599486024733880791922560844828675973815570982271857688628356158622817854981038942473570396017830725887553295285520332058044554897329140240326010484205602157352356813764288990503492282781564301490072531610343337571209587770193127951808663731075895114050730322925906716183156170486327582048309085887710295362961359762198925830122611780445469843331285656230852229267704958593432565625077827171522262566226508782332721522195038152237829577174857220924715900101833179741230258574560572415699693146425419378891175177257312183367631787736246938355485470687045721865068424969663188650835861791154077969161196222862355832391029610404778266798939906404366644990697140499890711335359676704849810941112101253300734988863186035394343333844825012223330961992641715037876002044993886773488594376421078411980574693890403040751341169207535823152998035409314056220755928066106056120553830367671548455823582003450458102341250035045745443513416654295868343608813757655787973209172326593048697045625492265201367679761619972941701612081049740891351322014205819456663176779674845371594467576654263841415847470360344805222402374887034836324748345681276563552340398619813400242345452351199244360345481172247246110780238156515473867179286741006345205771218181131006265584545803086033383660570194539295083352913832142363420897161005235101343545458304791625551495074274874170621001777772289919256423552409042079451475150897314456820611536592194048462928259138311959958151280024089678322011301783424350224661419404486653778722414548373057956824492853297199185596012458003248159037793574207529472817790641223569653361851405049877241483432636000216690795141434452221362898014783226947356169430607162890873050239687633748883276151207501729030653546362834812046099102977455713509159535044833055157178750516773562890640409618104654722369764353683032850046025027073044803345366652090493337984160212617008988641279647072408309486259487722754638660111689791746222319615281162454678186776605268719512300186323768212446642942036448319851006207138897630832025333255670420801967681290841897888440053939813793181403861221005640501801467715001944866810140548864455041400944239344780436304484202581068286117001311515062899537195204599564512901257706139927917245649136319625291041581961919744339439086305437835189803297416223858492206457312546649768042329962186170222466258132310582232219038635982445168888808901711450806048450876149799884895574903979052169608350639208912853336405309271006943264295804472722997725588779010216682149753371439473482621282948611407163467044871243451080980251294346674366541286075270999926504312136747405198407541167875911251266668227829867024052892064362798452987421588293727885255773970819460619634840704748232910237257832437814327259199542204882830495733978953249334092279202674974978834455082829958148326889310802317799234671904161490834564516343518210263459519789599238219641098857173848478204662871089376286566577722147241803056697544498888223551134402340888564640512397277284792629979408753855361147049700439654629027774402677839220853695510389941240794771757835429012167078509831643263384761272692719582589220500839686466145944155005127920296488307616801248369111690202822771133792401147160229049415726608170408979876112033931018525458414496523801755501711647400772716159046984683837168586570582554114693908697513258580249772862083591330807083467354081137703051277321020703951467860629007791078534766959650340277184791667305896582073423002395715908776091631467375163431528508005694739229335068292313090583049605563167186639654804871078709456581771289261702179211781329277115434281234294001313136083729336595766242887367970549737976748482481104874870444836996118638494710850479029377839611457272292198864499381919706671006790263058130379402638336990880943038643513490138765750423792049784668800391462058200251264674465983992142381274176862230925872482335498822994091221737934835891792366921285079632422366163619872399352765845847545273639614691706756478821586657265411130050901681295622760623722087964688069321248787553523100329390243194268011196680186298761154689414424852610503569555197518217554780945593308342492076560919559750517991526115093989182123452604237369944819580073564557211707922097899615583598263277723402873166842433331626309394050245210447370406596380345809761164781128251185917894251950722624805669899053043766711440046274721264499662990682041417713094370180950409657220820359275300776999784656825808199134485349332930578172953340773592081453804871238244915728536936975872837887163318061760411774804588244422422694656860626479339066887014622934896019557746377096828648860449570127492046362422294776747947254207149983895877674791733818951588185762616416297288416698581512288029090110037316143594669452489229785586188282779047233694207866047759077662520288801003617351764768340729174369460413715978494218444756562971069059756908034112333655950445695706952340518581731958089935223046751673981365417763166252863678466713071059786696118464476970256280303327680760291669598595332172065155596689771638877330333642756088009626548569666356938792321033369970345135387423699549945003484810609691844292465378252834024005265038009121690242049520074495339055324487223726263682526739922034187950354103680016413195307037608678746245474033520855193447615101152154683935726204825243210304898775334509398039241897272577032570465307738825917681152236408877600858634203076714196500113265507024060929958530905747708593244758110886519204011852367631902621444785951737235756990987894169086571877374477640359210127662616492756273718591998943710448787045994028008944264891116172798305342826051756099367585637725401689608283373592459344790799392141911753121283050566777566126476752075848150138039957584134928407007701247520405847084679604340456208975693675027711591345104032660133939235881879108983768135520669986093959982260926930690374631290183624947859560359859357095864721079805414501385373049561595514670036637005037258284690800494092513935585183091406420409262040429107327378567022101769093978342437171781544739675292170195475726971521268045360569163809060435309173594544230424434919054134587739420412118801620624481696782792015975745705660224870877437856097422168740175862172297691968349002134198743460689952475788457338930097244366100511162552243615863299849618057926765467444999615979344522912427478169033774479748743344224207876771737484267774553035672627040726672056592229139379614262020365558903180455405782637372058868484046952801086535838270434514367153325079806897867445083640048672807642657861479712327789990310791680034979503686280888526834408057274321081047794225115465009176423809264073713838735153788785839622960020297049810932538076742826976804875188933389759469584567283340957124863867440911728326814473043395928620799024319176873044350649531343994981428770000200473485258448044502619235610014556934739359752906675296316677400971066213660845656539669813177805413361082934109206295384050139658881459166377531821190364926123050608257134123590656598161579341395702262901055862075945820683902709141791213378677712010490448872567559287239192257494617932508650316941736588439920556107358624444882363349653906527141214652510384393735276877497174214144105894494711449524632329031729682014630818658492971009862055170133517886037503601540456308658982097090058099920808533056747079459566538401729288308338128479810351503540749883848046865317265663704960925776649854684639943004964222766403770257875855130327448253965551851858785842196784105250812143156002825603284333873349526439412818252681665820563335702850881165505140995021594979452291683987962085532199936217546198339491046227550162121152970006008086705324633655664399075016925188900023884531175484868204440796554068786699468451978543529806565638568983965331428240545189685976285539859208661837031202742074435360890793796784907023578289153594415690139517074774473707577684210550524006542218129615657545011168806047342919572339399208204073096236104840603357563829835607858892224044384895343472516035289518681818898982548030132998712259537057628933717112686556750989137973906463524940631107569632973933939716051225864711657342162262911809956155891431581599548750508498153361879245743581289486383560021676704330552035562448469833784374946072392425514498501664439084796245597198468497853271943366961708714662834635047271899033196718087283354927753869233694452184920327599287094424135217419981845075336399899308465714987476152550459687635744892435839645462125887321140591317228378112937539115096434317259907623485855368498469599772936822855854559771423931574168621496138471082339817181849034353435660370634137752168037477629171694056777198420015042911342942251256018897382939972977351269979957848606225760210684594421789278547056120395985112974022653501565783815467688234057321384243755972838434893234369151818283586994410155436936159428576443255541238677457676309612845779323233613146215581952947272441605282759694320151373847956691380261390002617464062076410507995353984273762145236638726396645723691692691423799288351752778220711441529176866779249202514098046553538106366477275006286393012545279605856572666505954153093308817844913007964493961843184244982777964988435414112407554225361616157476559205009456665957750493819385950977838895210471501859281076738870345220313353858606335009105374392616837309017476529430328612827825377192536056970864995937077506196159473850265381886956131783776981034063433383271936204541342533033738823967651469662843518622422223863001324101570695479466431931029586450613649085850492193685166652307000541875304422880069358966544775169464163040941390448308072364730825375090506527567454786983680318654108333248572783686145765544585632780249115342985730665692333437679197186696263341269593442162934611282688821446890031960366954986675558595883083052272154914497868568220745877112113927887240060828654119407694015146571140511763037056533802945455049482234406209772287603637188536819715319853269784826268220592985060349506362913491646894983676814771711447106978172208943920975808953790740967622514951510842353549959957951309086933553484196898645908008344728213477847818328091028088395211039725247672055922935224819025604713039694626102640407746262057300828233944935036110864689128248783407626263430333294093398854585323202918210164067166975691391500822374963966373317479901439807769754139811747550900601397174883594468864499473876992986819537807491467656834336787307784990371373795567560314701929955417021986320489868396337289522884709772842642346380966339673403449743381814292760393434898892008637499800182714247731022281371839623292633370760411864955832794528044640707001651149547453195757865201467222378249211628519591981844328296799561738189554613767152535623152093269130906846902890710270811980271912177603975281641660554277436578695207020303122414143330408977192502322771598474067264971140461213235501417663555021511348400793071147940139486025595062218051174101872348177631962721338603244166634819592937719179090552403839380825345461982318086999756647905379635306191947089251262590349501301539598493970745559738478979956742423131119859148961436443836586861914508227562907203145389126627538691270631288953677432494249406513423148293246428558955460442377012394661720833228955085552749993501393554255070128121324060535524880854530294934435656483104743872877690860216796898492655040039915223570064661389955812126274381280811910819769291139914704494286278548795238642741025261021095883213159987388405562461189813920098817420137995641799204960556129094094986887883287016006435880276297991854612491677981867526521770846369440071551604026469775441302457287345390751176315376615385780799962500605517032213943471082087351284972506960366220377904138204007785041237382129564620647128295831398333771953059618655099730374017719368114431836966303128578591284184357977958052305001411938577473032225093952546095525210531402984500113713889236760882023520743630829554118394150454935860323938092040525720350451524580913365255233004784873851296787119297525869346002968119868463125212925822488733004386089695324695755250037619528122413035356698459298394576093196985552949470857918560255899300701576314072002395379438660996984746968121659416200515261653914623873140410155509421017507224959548311788545458923063423068893449057697813508444835684110278930059014891748177917489702081958179846536710252661928503656858971712282934744457952479483453006894856271553958031259687345325154727401275068503535339184491117355118630694298338027064125727266833536072302016323315766479724455593475952683962645149532982045522701072306230138030397347922871511616542444744296464923931876416299966086727504534878516051594966156392372047169754320900873917095370895868544817566192456545612602934032159510822080677581566470212164236597346037530102296261811773251814214058828315545608816868559639633608782654862687274053616076399763766512847762809869929171778100679363320457229548890887929396680670646996646234540684714474207374238940529790139320067191648806730258154774974101092440801561001624489833239973781257697646914434948137057338695169349000647716216502915098217990641622046429986468017404181545821849269330766728354172993343479217088899091790210982512525839357457533004954188515067387376912952775800636109712218538877694319582990398575469060556318474846301289885577707538314221328440230753752253818454639586527620466277451381397567027507720014292915707077678694836944483179640742142824305116995025094984588531814731809582476726732438875040902838123918364343677958718702298073526861925461048061098881670024498191368356650249621325843540151286117934900249373550817357174585019791858103827984748898003914105057685712494006849946471559727655859923485436391857966215398801832312312977097963841293340958376642098027872424765404924903486678528882227896004484765367163866921315739222623278722873200335148988497835669493631327192015692784236971234635653938163741796305825707642123074731859244337967532688360742323696515023462440494132318056146453115457989057453142274201208764859804809515818627966572822093463095455305784925293939956533552753631098215211970019525819250782874875853816175980624305319364999821660995414063049855868325593242763518378695327336760138764905742578511261677065395352012446549965478809660656597687721686115749848000798776164916349258413281638215876648155174032879945485717133401422403900939604041651540386177844780680259334506872134963538581842429369671937134835940693933702203309580929913643926170422339823563811992788928555210953690560409340572741543172176696487818258890761606907147916959610361854126677173655334873827487535443885932374706197158776393628289390054010658456006907017483182008447504473036183452188373749336727169425433419233394379290940236552903217700598889535651153047066192273290356878028496559376872584659305096944018052030143492995286044718683541530887440673801098103151693382829291666883056181451934557865768345271825017086066393426702064159093972594780328571517934078521949623341362049698473400943561614771096244967431352697430810030371087241823929456250686091756101312066965077658346140349938151013912148854154764876688007071153923479099875436527847029485531677159023772596037648098647853574594006525029599984742953778876480036015427412351338600252430917721899679450540633971224946367104626278089564708198818655863227094903626370141847104463945460554872699914079039947621822428990950307525827388896051485125765634592993595799341500115962062547665440181646054640533811116790469479630370212029344897474320925362905313339383403841538614757608091756579016805412756708593298120622124728206812693017645334069679767751285397807842295592588754355527826272312290576106853703330703140674254568024868331986104554560649427639547403262458232146972001269991151524932616074778046234258064075690919341944192150805364357049331324067955597974492587602834482746440674605098394471219303882959667281377880775961195814314649614978507406265442157666722498533661296039268437262109990585436174326034232615907164055597340114285122584969893659239955072498392297782747943467703844736151863198402564687836150845103324558789951348744582264726948450746351892937929301866561479343388068956801344085735021024968927690608536132953481096292695557666713568914875572859994985645359576930843097053717789848301291844251841503885283759159814984813995250224149559102489309781386473091960364587942505256190684267743936953944646716179421366197085263792096241328849485964812326698741650914297503143216195965886740502295445978211159345543753715135890795884090774051207011481991305294810790849238098467161452256292201528321692761050764975375014492109332462094416506161659219103364255775185598192733492402453261273446919006106463937337895813641991372418588587086170131252740566698695752325283807478979274881375558202696485210944843513076590015809281528241609811103698411095601267845114246417381444144180574447140380416902820308090664079092869719629525129947502265070916150372555270795207106506054699067363396871003984063794762163359765749747681822040431574396989721172691290024294164131234760440206657766753218273022181536974971665615366911877633069543853191383732132118019424951495624141591332071016995039923895411163793521674508519312279376940861368320508315082676132656680439509265598260126831899026376337431205019775845801223392230712039537537747760926442431881142227446942321356899446518935558802674875763490537223555078617599362218408068678015141745049946813180696732585352839773211529026299173530348588623307033976460027028118043968548235470245850012288344754092291523541627020840128718587709265354744883072154364041031650040892336432665142210345471374689346415790502579723774928271068007256379406643102538568450836406439850306894998820017200149301119156921726463812758082925855411969704292900712665242018246719861273299839373758891455771977212083994590683421996517227489649321065550128038795679018174368575174312471866216935081117484456623242175983413299651130664519716411941604849434640012346819708286125142492542825336211009584642212824238854671002094661076191043374548622020624549613524407410791203310653406937644238127486257149741003018364498112044970838349730354222949593376654460155403318897838310503352804726522943164125635242510899805725188006440598212639243501375668634925083084223395696337203309052266107742814097076558869511963138571035926862718427104905619453936917274790325627858991263945171662281677995345327818221346433966825650144210671183051864192002936826837853962778321680312487232271342714574092099424187213342446848946205335431626231338954372281845220104750329981342662458683665223042137304950868694783341381884617282744936150628343105593792667712939811465070690882243688710670166560982053876033276775578123629975713735582670619450978293157901785218830746349841091540304802147218090395052335180412105980683836353730290521917192684363657328123878585451474654196744972041688167954419109076542064819484801434045659525777445306597065076482712723282352946601907588007240508533510653400840553480293045136366624882489705087339773190755124411259249718405596781458208396393816168125592731418205523164247905325782944729180300322021689652917366765648400700819596151971980860380924231500695896594420267165347001341291877735205469680352407208936919958713839140429299678101134889530846791269935053899638563094407462736522175982005554026941456235868984284121031987022622185581992784147157692566894198008616953552630431442244483159841736123085840267178005957578836157756550684519803975794376320089560835614830035470378946702639459601992281438238144469581031726234134870972181283016396341592287865883978319672652117966222401601152952543513899832012671116404381158543631503690288834848416335923022634289304481157019879169400874548240369975710304348929601064822253252228213081085585780095686895239658179196975102708205027546709476547777731434164042396748469627873552653976838639020336822347675343683061821607130730272012597477917698957600159275950752913466450400449928031469675388742492494250424910500812259630225845967643535846486720655627377067934141754226457748918967696042485829185081445448356475315359672043704453006392948641039133407184038573524820871820044309370908625795459085873209996359001827623535418238725781186099768363598600048169676897953537449333241976715283267684629920469183551283007600128146091830483269281432702975599049622162556533888543509120976819446132624922251500071245945844728428836939196156125629942825309321869710329292709902124728696553325211155777651957289444107915211018081396569833372162926685374658146968920758061081173490718546321288779071896928158411443043619786008332183485143924956189612274743006126209939979097495232183578205717479422862505704663142139675224737864224750484347310811438270642694614598125746852055045999811392427077550008116751596449432932615755187103466202901097036414773764841808953163256966750570794346718982711330074227361232559020323281307782794735159131638531928249830551675936379947076478488001528961582874015765682625450499064835035420207757444949911387843198199379340483474663555865792335295820041776135734343723220696267726899124510245850939051842772659745600317883262626260062221701286330717186301559946800153333338657311619173080716348471025930218275311809769113828695144715946747827602915002954304917346961685188174066820784243932471703672953375389989733619919056423790589162716586848321337743479602856610032867261218616766879068121836699884916368695712462264037522080370533177427992555622465224994838097896433626753083186548353647418155414839741309820436253689977061591306176957941230875108618788686226237486906124045066328659302509259449019976888399339795563632138588430951136350098893234288672818394433047947661766261171438430757104195215696187068440480176622302042222069181450989073461376302431957852452558668635213743622888946821018161282471202286238809713884199336344387866329014790196386678495134348565782887690059188256805323231630520752581346742143603957678308278241475720850076534644158502112675997998309840505566062589731392810905959870328610498979315346838103818046081799214680827500188104652753677611982935426513321250214997830654839337585929291966633720078689703418083892365725333562616513216155698937708345471487021029451672371252002654063191344476372643368827812229942370704298166485280139447877322255140383907190771285843522204099683468702229804939582356604924687099585191790080649966750547380789837999844817663327878204684147293722189277588596710934583550495379539390525292933175732492906891509849964219498510704561571739936111419527257380914919581324990455677413139402135454946307183268775301974569254791148147934136031713637452604735537666602092006908179952105204992224463963320916584358788402343488674292918582020282721382184512104731948642424768646602262206863108573957518827928297480651437616853270018515800848362948623978589873268259955773954875002620126192699020031591694150972492421376947431471284942713055188334078183035851626318363436922287404543967013706165651498327522594970207897353766953580662258222857243279075171128246211655774501795452210296356343677089823545035447341422665482713974357625231999608178519686128196125522795377907840153524541229364182535749115260823494023231220819999475649420231711952796906202301199341999024748488119656786525937773097236392238522103498053790813056365311564434999665756203438075181973253091647973593813148623483790202971915662343864930562295968598472686656217151769249100491648508452690722771559612785429152102022851270404292113470606603831724504416460678227451668540224375739332391103961331327663789660066549192110759315561790162757305618553005375851345245555046786815043759228914327628461755498900543090416996374925051484859821715862819926125090048880431001645733450807185955920529295650692002216871636705804774979667721306314331276517370777984261159854091503368234822381882618973832204531764121737775195317033023236293004444010858751867581446170736888975362351107994359665861461455576472050875133403497269383544436836282970945038744091437435518768025189962635933040074929870858437237064297205716944313203139973565436929480508807774020181283439235578969523529786439937720014589204160522287105227137090748494533159018045100281462527104100537686645813370676899112663115362883335817859545926479443589778577305547554972675569932326408095961900785114341227343102374959030082582650749020303337260951394395443364259808575763436252472609940998290220778243461517185214725977583379298961259013532269676219646631962032507219527263893751652562819905589614537281509688106054182510405913203504484217669197203781075763018131021423126199381004406858599809740130429195751746493176680855480959563336303087571276897911518228367772833166979504020223603974488210447976515067266768211599633513875255869239912930068156691569733355060915957616274325572421860883347493457389545676561390065366997378750489002362985761669987010742097002949862706557298840509562505466486049606293907008909907193553505775674961079963882127686472680572806377321126780954382225290389025427668746974588974174833544420995580692273190426384917924703212389290007816345779882061425929168752508219957568409215533065329505580789655053210436080756505364867248747808345009428788781935397377365978045427453448208915725091089966492278833017013422484060700563750039278753173584558606056719685689269861006134010505862876967754191963741529418555625910558842225119891282192822419289630194255095810773640464284885154043245369563183278468769137322289405037824239648182547902581664216524337120506876366982868701790664426239798813137628070204844933265596284836194647957631035341808351663811596145586545347700663162915391302684631548238935851692844243140223125412008584256227361860640209477272645516339196932902210880271895735098603355777742504486125319921896433263057312922746529893821538452048618144233509016342245348213827101066180410524627300307215890877737813655273782466681362010816499540727032573112639418014570121122466894583052205898014644775994421817921941004310968268763358461108875244988626352800661382332508925943434948540386658271931581410956876811404204841018928350464959922805197317495916774921422722445246631594000747604306042736043316899939213260127842968811004042536732136137764265967108701615048713404984019783270993433862178684206657241944211917202258834748008462688034786998410442869454476151488064293156363498068281032783135159935069589821240954764356008300778740372513559506879545653701815337240521952729479389845541960874869607914798492359167449868076305115890244072697691787922632779547315459517529229001190666697540522530624700303797000361539648996225780471938093873877592925795020861680047766931912946934306046970415814999164250288938666493357389748785102074427983272095971169401824864973255507800005595709322177846497861722182572450705851218632657452555625227232765293891033633493107583029455910005404640518528775981848166643622337431408938463377351635417120612966577773014367150896362398268765155659389592740590577085696970653018683066245535936707642819609592527910816852733366533581929866244531768574447918908223215206207846033436259131309331471916397736740149728208174103621637712624646988809448321865751863906908855860326156929090210745655430305958907057759012972544503412760297238643867666189971183782286819210564467808697618571927020422316024145745574550429745162225080795145328027340729976482592867419680962386104528493950162041314648764904519629889969844023521774179186446229585624147138803673569628484991841349800353781079773243433328252204711554433207729537565323599575207014161726957011082661431129568680965129683146549045214951015502282170815567351185443526208806971189200398824793766016695351471693246826330553683185410611387881756506873842624018855957775544305716410906556029165513063780462384913046466961264952140252696858277623381239328792548170136022442979012239260472712616815074432209878857900082451462412241161011646756436137066839002855200426774580495516968979589947638326157496747143504725385322920491938915220882213435435500700940360848725914345464181301912838612885321184705689575392596098964675540775796351641042852156932063487622274612056179640719306703397431589065962830202681170944279124258516928283990805042875486072659505879011424282776666457941607171869766417338010632315287226910939305504513166784502722173489219813334874250944409717079063236377994154217263858851107868198963750241753901199357984897324383141634870037657875137769045914319587221239963457292110304138602669831974650384893627865287497075991531631313572349646367097776162839636235165461006128453078672841984411100801057302406622637617607667802680935701404940301736894604238748511871061340152034689600364233594832873469266602545217646134703638693636660281318765538008779586831325852759570204758550218831107504303725063731170935404436417868293308401479880266234823761562907742788472335098065319674289256834898608168274038752819430535070053027726333101440143739553145641045411188588348588071670100952198463104668584981106655381438503188113029848242074650429604211565655866251345649922116248544755770142878852708565090016730421748873423423509553246640359346169990295026627554426071402698117013540295633435754637098452222000183207144532250380504755591230124939406930062145746998228141965096499939544794364815451568967797478880645441312398622888168179454696190575778660976137514590050418625865136512502800658659735343287865076600197234576234783412278118568661557249478508840608459184318199283309060425815306180789034483378960933282079566429930403120942711874564099613688171675826167786816419062991149168220346978571770492222779993983394485483333537378272234030273477191632558562305552022817023242541898473063145174095730670099471895408693161284356746461554198294812967229611361725128297185366752179907308301837809432079586944803855725304591423506231827711647520618950462289084523216357913477145704285995507428214596916198532950014874435611461408670646660318960512538254207442104455431723251731846384764964374029584477770608466452977054995038993539145042492248483720647758485609603169749196213346167800520251182857658555494890237467900271648010640061722139725419672395798582022494641558328382784317889838256591599493975050221268330397434207329934105202383504341668284994598191185287940181336521440113161879825420402764573733355748781957638381098640034364273671348089721860174108596401361482479191278578103978175108281710712984352842548580013711453826409122426271400506076598218393753083282816849377388645276963096651396762619376559683015885645683134237095397112476165964690433587815468779819633694223061792352639685246218623038043974098246707999015620708200297932369181514204838416283420776840209602455689413045791199041729390783590692116316771561492105457662098554604429131536263992167840669019591923140078745747092099310054341900758689370124109207592424490136087285547951237249836029480376106520800879823588023185900949458970427450829581736675411274375875283150870422769587302527667270828433316797701802579865031331443401562212965899319451777806237923612939701156365516242438581229810789414902343955085797565549240441926355983801128099033442164115584351263359778016653557155583979558720843469724550059999247905728183205747757575224973486402965245720694027491410881721649281200341269834524980253290872890429387185787807609983711908323875621715884767985227818892739033834921521503932905760690572235788534491726998222695367753018000037146569995038519636187366991825926424812842264378116428449564004654748332486616471462297692366186067042674696444908224302176735211061299917781829027908116598320283656844402895733965380423296451667351318163451560171463803730223618251372702849789829441312426786272625289371685409211158571256992127508299939098720595695113114105602100381131287113891718959830756991720205693267002550515254414892702420338695047279443741274742658743993854235631391686723368867917828147936794378057188335417825704864018055341400814221896663658305853833866483626356016956528883596602902165233348764119444342057137596750626786653493935596152828935933618626644149693225330700683904416673594427867042441000401009764612990963255244331841103505410426920237919088138027818810016356532153379056771450332057369452071548723890358403805414624820839234661296444004409637746442653642818589454372538347207456733950802937869856535500042783748310181073377015034671817522129438512383822682984886598037674075178126400336990896398742786137647488513069114203999472572509875599329178126443703977763985370784476626846337226656757959564078027485186952096417220258274090653978326703355357455489066726388621618999083180279814322704255588661267695583841355116184413813320886452623624202959439187548294850521871385990836216504383025022216996360389239301512847068746723863732504505409594498479305293202125761391716371942309746618919328124150428569440170528899786141430497339471218414864990517693219635298873920399734279079140929276523955623262921164050043606660739273632772999932325077463506090219109630584357631301590375456774962275195352639805588559410463358997199010789259915372094845784413963475118999378796301190848635506924006762834422977594701332399521964329573440202771367655714111781518452911022987662066348317795248854559618333020071827581952465006151670867249654087051030542113204700773316820996311775107725190191759910956133110013862380740537682843592713134436773103728722902791405282422165007539526169393487565838589310417901911751958328028492401556763044849404448414512201410103593962581026767215927774749957861783543934480917062345938208551804558838593596240148498633947148213611016787503755788331288760483937254034467603940710195588598209552228809008510095635232132685443301155905719589160419751703526149824116404999792502568164473426332165982571724722052188274954799644551716699239530106409638715833124551119922793971697297172187533887440292264339236808681501629115801504807866659165707608459790289323047346988460265099359640622208179506805916755756155247316118841723249728571999981206735216093418338921769696297405636201579574211478427010127200434164011732613077801365110175842688401082547593070529120060494288054887138742917154202543326674491474535951934299344750700754475417969255604050131788267628177106205475679020810508892329795654434980095316179988238426247660514721419187950510256756786775511819055524063061195598360930099611176220316377890543572305494406305583566093346226773215802235464836860530153922707464704434171286672971187076582417481857282701235952911597398404863616742819467515327173466382012499475633307769000883436346499764842401860435981874978102376413336262522289379757971008801019303149325999583309453119848149442460864524493228544017084265625504873641767535229720829803582514570377971396400600072709705806524531881727556565442022578011784934065057084485557626004261003065652873651765409777848255525104935076556273042362561079942301746084354049306765213591686987178459837035240814939868672073103923253296639394580919366041091440053699032414992357514855375180235625139632244297258308159270542853213094398540838361043763383724793426305131939253277527971879148635631359060072153112693374842421760799751201074351698312635701145252780732695087766782746886185427636783533870073757401142050653331546490601582622130336800168715383552106386516617729718769337166572941472356830172809986028552813805413056749630801099614472237622740837675244035057324279941440024821926555307531462712054275406926465959037289192333529608899353231482789691558419474497042361435469910023021157572461075286589980466121719667902628201621337485260253411795976965013242850797718793675497966595380836804348955372483818551858560649452259145446141634490157180104204845397535429367868894491057635531511104298693630573262480349253067118854146532477615366082443663592237373041048727884605179215838675106817452580973576818534776050684424494603422272083449491385600413450861548593383351911055997120307627136815850840453664706936061711093605193002127795476624807252719666353460998884432226469726669379160892236229722371773111496587980242092649673404013518707601235153674237321102186917133392241185768850209743430833521845359825434465078937764329299946992629231581122605798876896708412729142666704913375501008060419785496053628156794257218479528530868820767248180573802313005730331687609536002093161064201026095973783778152029547301705109910254687844746507394105541620112458229777482400110344231859953066440136562597757563329308584245712870399238537020995704082923472231492610035655414029420968786399566776261754905039540216873903483174525425171504107777120806404275251591485251973569736568747692718452614383335677584565877651405350267588613176968812910645041077722372167494203592826738094786907357669185840190882437271511173324897337045213995469695229858675881523804068381634264144592094239841068532888535590038638074030620480238172490060433699589800549762676777684379832638175396846355765292592371174567870773215068035316248817583088245240893210045623528624511481494997139179827375125856659567486008702329378821946722042895941143331078464378976288267141325842704342560577784656530006589119454659509516346560299777212309777345961290108270912641833864956767425192905760353303557825741206661887196368810798292376324380300023937914208199371997515200103650525905594712823444161880674339456522560256466277867273703905451564896087851720616460214734221249520524047183417139537008548258186276568403770709586065134003036513488386745373093711002556640752390197370829333038119816076141992689324649826521041994101956857396021036036707225843113552922153535133790938037750962090303441984234366855174624274414595039806292419152613969492347634272039642104359162558000944983551864184710571881907749294267154956499099206592557366327680983486513843113933614726868701680462281105612173969617024108175274954464668852718140456891153463365407342255688328520349710584248015122982936686698789049326270479262760609911669154053938714547292317701627237558993600714997824557879696879798254047044414809125633825985650454520566279603350634722475566327410519495987713570005587388855131701815955663255803033200862665212074451365566618715615418115578648433542774078978098196987774257719175382024236094366685663849915391217573313251322292036309817527514807926891574736292265594845543926745924756561509844661347975116596185513210453127969572225664449526829346379643967502303928115258314274987018262911409198923701962552088134960228917770952523439456218027952121890032899428367991193629949758488921984112694865502933267993945689850786687604205906254406783422917288897695755171366418090823049463407160349456580761796951151190014908184476429784494369067440795673171659758887397140035563238992820346887112157840655574649409592838042533756369023015688119812146579978365346765395248804027928982138086413505853756127079173941373236701023360021393525345049329526864283254731276413684611857973033916824898989737718927867615103857691204602322863262819584347756360279071939183631464693470587804629621476032517959453891525242145603680968052289019842980380286727036179642462812476344431810074226912739399891167496771926896449418533776719818391978852796658507790414211988049317794087615625493704574272524345992953732080960973968879471891170056324003369385353429368785985677937331933440545316547934462926095430632354837619518951337364888341292791222325782960092717611478201416758523755779603762101237440567544558236107548166934982653418023944948058611088705364100910798195518085951717444847370958107226334999725649410600663413209645131584518536618791616833819561395715312227402670529436387570223420150994758695240562922414203961134738358869742055190688665666939114323752091091936640878822292296312741085721304646922623887628957845884000838056073345097998903712022603472674839646985306396356345140962191783350245881149635565032337610287246359072601860893167882573090216931278857134724100341305596098935005723056467945023473847171740213036156963657703202416172243738505090620404692660330143443501600031937064005995292403146611805721964696135168297179558464248824921267332734360434589037798360405170490745922594859265125148978588623896056345963981690423931103196192649901566181536377201090564476115643373819045052665928435603832279633120572795188383835392026425929110599044507837272411341485453326559480008371552442500604792416304502865745680553013481994977906346716166009699084390137243888429017080332231568392554103237205963755596125415347139789806525871466353623188257307527363666045107958913387416832224441483830598956868148064967550780611091490082039320157812373219719335015730616219507873137364689666443034413162392910222234196442799443276034639249558999517221976207751831017369331826885756811960245798783317470415422512907212640102276140439196215036519405165148078716583633071569938452855646514301711956971323678741364730980356431202664514186258836236914436961062031674203388184136240441916133198329462726779976919345277720428871869706180304244576755538048129447694876289808923926410891162660451095749215545667174489605415976397092089285421202421829351892005217816012332650677198344957247674608144689438338599239649290102622294880550382731864181176276243218936028339802576531991850375017299866624977196718922297091498866230197368313964294190352593534669773912143471317511202902127570048077613008005961565372512253321214139539345747648283764017616617557991558270027078681228761267123573007932172688031023372244054865741367935482233351533862975456902542525924147105676690524322405347065030311701068322447523671020186410505476233455275764535064984220935096067396152449434908182387854470806469135550055801802018371456669529277007120380373245091669242398876071343869136263314678775980849605827118567158985026817452058739070108183448263586056965579218711023790597315077425309959210836160304668351170480556415520640320556112758461844411772526445338090728398436918647763576160152668783542743796161122122364075215124205844523993361657832849838908778591015412683988312400200634254973629338056559726623617856931237001503151284051101361537895418384525791918968517541010502264730283388633761698291830225106364418501794016967949815336371124230250371266466418984821288806823801334475605869351261692658231067694851717673601201456267783826404877972424201979405746950683798050469663788592782722454877167885723678731256114149036840744676924524263729825640331367338372835593979001216363664440272726358124352796899008702331688002378020147178859197080026955136797413044548732067581505873376675887712556548810948358307556509982808529484834896567340459344945098440243028246471952180473238924805694702152782059777576381616905640143868353991595236589032101135111055559738685882996791997034426247532040529864784621783531923591675655022474425966745999760334473440834388244415347690126075627185509370690034884973239612331457519058684570550982634394441912901237205079240305013403435540240221285406914390047372738961780305152851166658559022939479165800976963031069729355847774579108641647766832393226805361947751793183264173888285296998399818506321643609833829238808364950979635929075823744043944280334115705392090532543421875556129405781371886161401656585338282609787904987226509300992608177861693307064825103923253565396176754248413682082479285660619245628999049210647564591040744773343478928160706812928982785722835451441598209828272115107977275283477494934934476000649075165147635490321770984926253103129029416214215367073167232356184536158384169149086810579389031113129246462557815742134884602532423801709065408324885263868720801757594422040849103363037608607395971238113447527870143814131786781406606022937446570365315301563105985170082855097624211874688434336002690858414485184472006612292796460344258329248054616053576503036847101933642271406245031255769286882029108477926714474438887556449427902907089405521729816225711911711504074910235402341904517610565719972878545368723601279504917836073166551425487675085401667217568093269555944219594418439662381433300888822169061575298226686419214780100233437517769111411510244222225924447627606765052811528209961116718398055529543283519883313843810134414015334509601031724750635560148131508243670042894716439608179740687988186415679659711626019602297644160155856583821209458993166338636701162731280306758273536165684820545479188019890344795281996128249638530103916499360902980827282950633689572739266309484297903978872947051332504142822268858037223830337997068197172425387090348241122946631438447833530222352082458595075456770169660183504347142065896088719751926809052925192285420169965671936986656629334381581649617796238972327627569446539823632816015851587111356955067948851047926704681336851380994954706882969237906790344486383382206674808448824440427422041871129857172377877988007252850719872876528030915457363910257384808530963444604737355024260317576242486164739797747789366943282673625536179497018005059025497206051899104869947924797589208175908573736467627330313643259518986371572596344678818844819560317498424261293329941386417722648702344491502540142030009531795906317514902461709335625459478797640574352100011855224770439682290571175779020956959287339146742844404347743373891394036836026436914772381840154591622545650070412270604962129596954411893604731369440652028060424757524752145178689186669293721862436322316137630600588028059702995827530527555244829624472303603411527591542531441687242924944072778836316113602253440802726093146633793235478530277043861239193927389285806899024384050439260038866935872278885560122996347288053563771924153798534153901175230428894464828013278639028237038595109174361236770563393069521792701948830904770547003704774095358502308286899030021392326129806368639542308201540824766501463732629110167178082382725429448112925193719750270445098781142763299667599723888772287390783406113175756275648271025943502165425146930609156892305195904969120162719001786701774038890949183231959107480864907759755444537155154336624563102517549189573351299129514887321448886478535502556582483479027545647894493752444512318847620722718793868901007227122681947456471999336578425961604756216642512003437711520986159508982909376738613466378612439782986531019462936195590474973316789620867265614071701834207505495865475653896963994909218148251031537268970880485286558789733064587522141741475348377719388985141927016254438531848016338500095819512901787244458695416818755027629202498348929115878955046703898733500788710325317666248726754304053784079552631403757568399626952009293255045023191611923180390896399350977212592414145363613206965674585598021999498970312852214633611815185032939077197699421762568171626916531560164119314490917854138852779763863503249344306072927941495508583701464842757490207642850964498544682791918970619238036796178358770409801620860422145378246001237746955623575115757611582393922445138227313803093789373378026421665237906266037047768140920388345649162578646361203591220624443036025575267205225533256252343407361568893785201659284165202799543907381778601207323488422053146147294785707432325423689785964314488157832662196995237087859406905136870794641611175358156639377822386100690590898005016854567985791788596559808795365517062376232741828295385145074511801475317558894249008221091759703312297413419170867939790321708944223759358872379607704284647594412822280102075821558079228476988279502644306020676118209406915889371612801315038726927691828654279155500282884245035463654961482647915682244630733652167067898633458953306790762205926897562846042803318079670071316268699642862795152206827380517977727996285496001085269978231801008789816401318121913429606166838965572725929746002913690910092504600039531730974945588019029211887067282889717170382168652189222714514053176663542681943315531135707574326487702544923636292206471037415400046262302864648199022393467532125345614344249122668448853374403357885101628047372406684813100696682686655839358279718379982412029424189246622566183468854419429814843692081868080350736972118207009441404719769949941492772741835888545630036350620787588153907208030603960901191782292797201303910918803886322787135084931475071493936944269383895633733412950553821636065555047938895791510208357900423177176582888401526757994716666231654254918874678264954316639518061097782954605226976283575055902024372947550077597773532511923330344718910008047260170560565884528642963339684475990820410829459965780029799477740459091814068704099111589244498063690174485975788552601107416796396707015258485377771350009214070751767277777463118195006950813484021201587079507938578051240442686095685955472493847957348202712458970185270280036167103330932535947607993549907236723892935774165742132914598289743602471111888402988989878146942425254890114164328499095447271955137758939679011040298690945252286761456048525556229421787635191689708171796434332516961398296998733696162583142449402887685276415035162710805240458722966301432284397701552950873870250968630262236159234945513748735928122008017980121108141117566120981295703595826061424823668474555161553185428518983487252183542099243559462788106424705971322803405150072791540764818315844843241779790460055042411433102816781210316068773726039896697956097153054024850411262418573509354033594088343808706393622140582395445106844549471019658453335481645587002234186175950691796499848075699102581848842599202834249154116572562222348879200307482472642558058278054060410771606767188069400946597048644177446415397858717383901056138399085779240396077673954881355617410019131111295915042432708098347477798175105501729051380926564080357655692567749358761831380268853423625036686430026890241375338652239547469980921805532256991047879621813160525292930978845102304962691926835970584750249844621502287231174606171771014008123807188645223821141647512774349045930754611095574595749138328405251772347770825407812296164783166056015092531968411697709887326831923407672343772683868522474043604088182675456107627853751370287436260768358490076727396457852947195265887857118710259590969908016225477220325701756687918244412176804710967049007671324174843106888021321612538908509903674106376103213571441880690988174733886500415629558234860489673136150858207005668998233610723492171177555855319458665242558315381385578735434870196517063740693009771413746291197728706778151488206738088923304377211318085474513926500783551155525401982886106077296517509868334104110273833862405045093389793599044130086209978480226650316444677245416873114090897061664723580078434179286989216633260004251395009719866744989102117533067616854957416164153969340847313550865638791537857976674083201677437862706864864632026090097289859313179306891100851377955643121585001019983084678496125200773519101410347717198227989354428681020456674098155707390359547224877402941016460999869258549026992139876228761128465118626802060040705871345097940255459305217210714020550616893218243032683032732060234553186763010549330198381631229335435690589353952049835420488645492917760147933313950270565454397715215153347905042313356405257846713462157870299156382334123191695320386841601458647042861363114353769044477910917138007936271651859318647198583392163384290315203713356197880543864204592769106971983040633523928383670655131631550876074430197615959850730067200927856368342161439253568150882367006020455559213605695243172799754467564050968811190487083327004874192815174064136984060038870982428290529280826497698516506187844245079185697246886473557662197433045981040301854500605680197195702122034853556698223329766701818090228894947399695237305265291669063936276611606846256899030255017824461654019196632639857211592703256914082455159137270612348017183525116795446249463025482761327559814504774201895224459061823601393839218116649724270669824887387708974702308125625646677071995662286811457584378900307378249684090506138401657292006432747610656253186020102208667554905238195490854901197623752270019245539046832394587011893951721783218663158211827236709930662057454469379035260440487313471075433850607104537382800326972514556491701958004190523226745444687353686767527988920169310807506799971297743047633804866765505166524967878830039008572865334318126137334067088240418783749651785891974238247828411338737129848871566393686825934085222999150855378725594632577434712572820402301991507444269957791804620550366118297491079009269218633302975943803282675008291635437559701368577792712120157508462022728557070269095834902131847953303418443208155688890740528599267115799230309045000984973368055565237786574682564026042614352025811624976186471637774274892302033230267282525186598330475612518642090966951553967476480608436636724801311771391021998486694229800764435827745052075255482741563411565149798616641665531666070054164619500479710167361362273449401545813460281340695113986147286801387984616593398513545576757789143095686280871422238742559669783213331774912274572966520052394294605724577651755961719196594218442186193603167982689203856020272716530461810490395006178065523014871970117503476649489798234645776340458187657864957652528368260460794131603106529621526073517441058141663595439238917064822502366435171024832807311718677664719591067135245532722622907628040243757898317556060447773981797691860175531637310282846267369026231494061167800987428394912896822627920557148885519107712506703300116457660122913164721852297962019431888243358621729825551740248523986982763289360214265855557369253193111310750172719588014404682231107226992860870070847712991679167569188955900274684452383282781323999467224669589043967017277027512956704786632801096084197576467374310351935407811132214802398656897650129402960167498845312585427536892699757257281731394877484973748102094127318092719639460756555037580222602940582169923663870422921833264293379390273957748802998910265068164318771146646947665736842052101572006037810708991313998420297070227725012522785995421140586222623580129660236688147662045407823844434122424164174445151325158996492550115797876740700155724135058056599305563503552790481117748762146109074875382098636257123897046766485547269518237459440315301494252767293334843521098306271731262442762701788381790482365751198202633029951877090708542197130073140300791142115174836743370420456150630031498642773965935684075981259359093604006507644756056256976135718111118961921706119640588987415294881633466988491777527244996136926729503886455040653848540468120248113356630733018945364774995034304672126691981453739632362369972413794499922903416597864238853967305431824890004166413224258268580154616299196297973032131173420889843737843236731849059907929899489346871722816672024697724294107020245849701189407064085818818727455597781975435396830868483526402076303270139712340420859627577340940294948876755820782465646289029540318149148288110437345062543217983069993975284274270322125939266042080722903690369518537447636937115794588267445373891125444402843023908207620558946688885927962992715834636906087316770065561901286296812316063831688998115926806635469834735770050727966803021986077527680134404698384652201161685554006835568689664353432438486293936960222572661188963753548529268154235906459005445324144481721815865304217457188342363665367187952507138449030521391305676617066956943481207786604535776608714371413920333696479375422108582793190201948072240228991825619095456636687648204240812206129893084359296206057990488420373016724871801759519950161057392064701443080859928627371038529022202909534726502305370490155866647280858364175052857634826489393356169052671500215029242616282203852937174774681037107311376445376596106989796030266449710979879060210547655210623172514126434987372021151849069033741059399613619218594862329354890760830520013693249797165861012143840670290813364590725208336923083910343962414957698920162054809111529866744619136241724167258409620955869097613842828992134082775469138771998377223832960257721392629358912058580354124078445170772133792674396613741238028618119547771054317033383383929172837708584479466844046726967268235728124110282298080409982498651666584640196587534695366936279339417711517771082962918640690996903897936750494702859453824577054246662047591632578722847170289689337960904536127950638254053662423156164600140417415122423949030410488819613419398947894764989086802233968410169553462068060902535362287886367617428019945601468583974056327903575089026659086006693802126595024401570632146559689315899862075757282654948296016886354923747025259315097725820361089393929016890272020516195260292749489797018476627018033550341801639699004597554678653003179731010003267418609113169136516172420105296588024599842806680148742681058895285005597702253123651056259567681320373119157767234175358962783615891831490024107310751664322869603478860513679124821825770868909679987909914519511222949245972461737176019647248581944892703290941501819797582175849945873574810895312618079012455586959866611969306271622605559597117004766911959378805337915178031832599041231295219472402796326640679208371790788143151414110313999108412514169918800213148788052486088923735131252005449776197577165355232933579974484754829256185339382806814015939567706586111085872227637079424753148683935141823909204100061486754037222879663453507672370901517149965285177418143007925837422965395720012658361354892624525210390452051729527972898143443687805749541985086565352317410506330232965968679583804318119057134535825710611460286587474252622604504622037468241621977615011993779268068696773273229809919629900379476485465656667957558965159923721265019754743786976682689222382284161853130336303421580817163929227968445767646097263094329981661826076869865092382496610565578655649078911553950435152431706461688167279120692915068146761233153014345853228433442187723629653623282403660862820382661337847469761187015117982909882679941016643215484866838363555207663758928415143020018772013796230362002882858302645078736886433867793225930367460098957069580846795596580544847965331613580553598616892257487946813698117809918103895748934329254115763436501028654962890074772911691890783660582632809303330120749213699124508088108840295611118619817400138428976373605773353894464311080930234492677133080549429346664864609296169721171245581565246500230134596957101855102447782757946523817663671195421753509512455656011454441251429736589519645427066885593517399382400255950516333921392532601594707605686709316055140127534220009744695084258181810660321362891519070919376257521919743159794808211942601856986422100167922074281218031998386086877970942098192084383460370899791405553618795976058845401740700995581597451416906416214695569818247719287584828495793158570080526327025943269700003916977341909944270856821579068987849103976801374230155978553937805017118367088195155144419200940171555686361202946069552005993439122614611920082441152483117975155661335616049723526314502303766094229284891404856164167094890307436539577338260588942932623941576725011057721151723692725094294345133550723177529815735338594062558686439012020269980951237207888060424511691329398668756458319689027549021318923618734775332764532757085428285559565857503707631021448743805425773347029453901535502922211127511644786128704188708534565820261209788074346241357710818009981192620603752596131617077922931241154775676803955309096353116355706789410912677546400541954143299637886683867090933831273173663952251834488881341545683674098901819723960682616140610789288583860506470009717262030456039175758551795297873535385883489084029757424348969267710146496880272754959323225265863275511584831197604161071795163884195508904504052611412078750086971182004836203222912534087417878281574950958152662099462384929965606731178883421587994060642432897070936122430583353375971298454727057130268488210346950410499821166954974299158881974480434289540969263202852623320141004127669682071826066988188589707056427315185310953247945373672397146714421271033180849381694792911276157313504522199721197054249811024365540516514830620808072881880369215419642250059611373988883103063186393756648680490119745936756118355249366617209560411705701303650029520890146742947054101828599580730747336896004480460208410480811797325917761912315010804575208200228003109941206587432374928295194512301275666991890383102620898375788016775419927248931190406698994052282018278388078738141156962345921362399280132045443915582218715076250246358360960564734695328010362630649326613244716506457777746812294709842699339725276170839352786930247350589658680450391233528032633739589809343932552633851840846536955044314076003320781217137011107309547725054567514492253133666411490713024157162446391963070977118189211083597848111278568917885377484909949678094806429442905744702899284128456852947778444022508033825949947087433486213766067203388547261811381839022634899871058832806670182101653159343406286526967051139687115697447673036925981603099852448456858961501629579147712147915742563145460925024165295017150699751441527036476447266523829325436746813367680226220379402314059801389189638700171849187142747164842401754839966873923219484407161459808698655620476686300086005332250136677246790645468342725423939022315647633766446120287660571064325190546504460628304451337502680214027925860779831020918589630107991945408415764381360501438153741273719445538907184231013018005774932117206687035768106142388700219824868521668005176508058017366043628507314881460987251425087584071298609761888487874231771897617187954390864037060025032770107893742504432251776081065826735681534616676467399579246935276712980586569008510452922385568962583327917581920381094284828136220999304125110285936846599061501461698114072726218494834173954559521408017815866637456294605893601002872662649000288880903847483709335191600644199604458596130195710264669605035839483785168830571501697629993712428542401320456021324398116749074445413431855859682838762136082220893104944985101676286587626014121279589180284341076496551888472084382275026631925563949627858864151516133202592265911090215858312705678371979042771757028637966879240381885455567311788331189202045138059824474632802329954482193874624668946782216544441795000431950729787292015736668065265507377962937021193634716376966428402186957217989909263561630372087857823619708639329824755220556953831185323574763990643581145290953516126235649592019887840838040378131056182664747850095002629978381990012362187275800504774897401814778720868968655091946861579932927144490119165226845400602921428584069130513899629155863487380722803129135038519551806216860691743358877733840208966984908270105335015998549004841996655743802301540148720314707006775109812775407831317591697128669902630609328525932692052728900206655360296819082188607286748589977208253548956446312273944637417568876699789883039572654021030243340150094059754183768813841597524144947276723959743339850851825691185381283531119890438785505938554114521165853356211390492772706573301367920233381779662651391562024466116470082656258886280856628002419213953439176519627371101527214181157554338653008025766621623306600408446146696932273998860253121648699894500025440078636790969155465820262854795295658124894812106327391630778642840810742503298071245303561626954604683737386893769673664631294619307567151052134897667203615372273425888123610184420884192687646904702644303137186370633040801334959657319436737665766448634225787234136937090047428537487985253367671792664456788802024947876434708420150299945422246001281266530137826411156595877639012332239390210856117219589055963676127722899706926455881407063996941450854882181018972119620020881609409401361594262682230952067320520493829896580195563364448741173098728326050672767173563859704953244188826717657126696553216992455047506285759513232741437390708065413256315400567855113907894080318929756836098686790925014643011717024208459694404454372034792021230847169700627232552740511702570652100688738200393014656786823728630902700442022377461598902137709678325016608267616794221338896856970252729508535852205938576693486251230531633257382470387416490065424405008532169953639175371600170235894428931403784720868078491655021639325275824297383263004744015141450015344620638931766390462338276358413893579507818264092565053417474217250650016535229954319794058762322324567631066095430409426612219009471682915473368963679900360555722081744729333927256571787338989630338654732181688794257532501843236756782958910551603534098137020900132660739228514269358833088952228157938760772285061335749520212576527263774623968061931343976646162705648916747641911241261730856718296550329039672775319109175203666450809565677557389086163130646823214964568767332624940665400325746441751448666840179358961160803630689182566486876039487293850674501580743777102098255643241199049948460457744069304380355316991743562528386816874919661581835744359214771495333693426000696148924629522488515206125796388671517478346768864846299646660099728512785189827830751198188123626069288017137167874634974749477968411693569777223473338963260306724038340092542025617201439993879344195061145674082417660257435091547425644048742265580975287806814595700798383960429722948285116354677306254238215004141724209799836522612684450260390436965840848112752967729487194820966960883491388901909045152255494363557166430832469956997082272710922144276896639455545789961144068149691498689919178725472400295001833313397202912218901846560867850003613399955811083515553909577614077530277021369674507274551132380757730170442156404223673225751505685998861746604024984352291307754190039731985800976680327599097417969076980202395253599924214701165547651660037647731088066080561168214989734035153000723368754246806094711826416561304473903240826319787559155904056401609008972337898809014684022934852569882026369666086894957949385360357007454326076638284115618649723129422340649228492231900708770907721244039378639362388417534038595641308274997770949649000899434996853539116122721574659158311065043044027447957151478933161189354759721789899830970090436584813168675984060122034702723892023689340521108686153790963833976812586170543301498100091482848719777645189576038997232724173772174551483307927635965219746735074788289955812942997531208552135196797103535154625032698679236136890251068924372176402912908802448111320793416791611166629200003138643510529150327834046940207184895913932324960458142643708735641873645758897743808759068160061062228158255840588397945242060769409037313225623253942374156799868278774601319822288326670763092942972327094722101841229784235271618970509551200493292345341833724425588395012730767561958144805150282612018338140264618517976649393682017561167565784783032156238506821045996629600125036765218762159513399495188198474399859463837800067797692095812809728006452777881109442971596947736763593924589844923800657161901481529865110066516259276690683405400317455762593116669630153502132412091147678878196060556341110836126705855775488465576337944510067417849655948254315500584309981885243066127099131212469692197633243836006864773047315697090381098953959751096876680317408640462493113798947771273422585073194830299989274732544768094179370823366012767579343425059792519805654102532913126345069640248416599788984305207581737850206079535580608750101761850194206239545973924289962222332280166841846138124800111012581130859263429188924123595223412232245367202766031593084337531167735001447932236281328222075820341573134022662602007223610576419363610250792469823563549172851688878044894308971890371781143164412393660506591119142991386223167335629000660076847501126101443532333813213770675746774119101361500309749491171212404553309865606258919100519857191716039414432571912593177008291039612208032950017275420664038632057471312750136483062361411666822774862123621555481767850714436658519114940366546531791325970256770918398421508276711981562280341587305986793261568963532905417586775727159589368912892112252585713953691396882659314372480282954246122657802535274850662821736547006872359270580070041209478894588322796376962657094158608652156612123309709453404650988435531221001151467124014325380510769575412600118049715249676989364754010350893890178082166800241378987442705089513856246089588016903512657116176812979674533058899317737963638214268682828314090870281424788463146389099079401460127477542129699505688055386421509197041870113713260597797491604099524562744687800018769847799819098007630845122460448003946390885516029449378295091888553739585527472371920781869588321878324361949778693690533568038688372129942163756614186539078536312707329637448472669089584414391164716024392179232613373251073396105597791290878812874146178276226940506631889201908388557089031756099043495864085986600598910497591229250024078868174319880326947381634216464432006962612818636308722771232595401951243316499285384845132636640614672266793520048760471981676474248273477504516243994161043140212924859930558032508411101309203891273067117509896897697544982138295509545398697379410835274782556494632498762648351508085937320094255358372034600964045197586551646077958538417480289475393542414248136470768439638106566687295650010509538806314613516307286707489360069634927078150678200742673531204834742071894446340901291462420400232801088501989743453466903980285912018557007993322735451789354331384997065114974231502358100754819741895908976100197988909331483827383978134155107188607169253450700944322004272066120363699678278021003880090141832117051013598386079259627201193748970270188968705465588108314789406733966639554031965046586870027361194344881306462380873029704854356753222637259479765882798893120286855363343183366813934827017841925753445982099567154135184609802351617869743105454724837388243011652854644993422339093157940777761230868990642704468431000182794022352119025963839811816251946998549025619752276602957864277869092578268090695034885361199566268087055088626287879437129297214981540375294579679627193139787008957316821890498861954218542918402114343019538855422052012858420000442969482456903612171238405534332847291460231187674429008885060918963539108876342929099552750042070471399230028207200208723569715932518906496514491992051416529427791774328110943635625819596380299935781203151979100691510616553681584126978483309242799259981871131642489975090475271547138330740118342008183684009813797116255443911497278553783701984347435300720058912402560290535781099174662139027140865576098606321931612430328720047108188378892026326986205196771256026814389451791995512450483165902164034983864475805638349797301177363238877060983888943613083557319590995467294521888634269754900374196888165662146499533327114742049187700934776634475144954301796315902761958402433843940761610339390644609182603046265764671277486277801967758681821314840101224271851539458218823999073152969359298464541165572724328608884127642097766313005582263485229584065199865854972014564453613198909458991985467070119506637719214844111876697083864082559383499910584031797220966328115806687658094111874949172057709848192426602802974931002984939616623993969499859571617919789107848318088486493972751367781250320335206157854130985978224934910434783410773174235277244775702553683968073703044698864227205764923940201106979029292455193086340416229205261000680636521219756589125599988863927984697036086848327503428139557182107720121063687666692480413864295270459113274187534528124087579710469911548976376816733500672395788357550384947097521849248260023733912435331219055271057203517641290429819258427454879077641988364039061850418354356412185792951569520481880465299192138258633864877622251938008076006982055496641109738142407961011756506161224645459931714913196639675839688114211462881708274742677078607869568026027527255137909295198616190084615670977137703059995738497410606146515550548046688339011249933023215496590190615028251478099661665646746265257641379090596215008383726480834681369015857925074290070608641311865870707976887416617316368538668322517290937933005562998652515979209779557770405255949331824893660564516784424057233027896633291512907000421144558898467093428410388417802037179203345322941196291920995912614417969670600438136248099893337403140530397160096703798845650868266423218001522429955385217549889968998445984955140176062144458855811382372425046696536669773914094119445295411938677171960853044170757687057583092274410799677836509411058452866821102587155578059484128340681458606554166182430553831556292816540920969856237276017732959344156189139629870140994456826292095949541091910451110637129949755441388792716092028178488534834936617873692712579696374659193165531924658684560506926381856192118548071771151275025706860153362632300085772176771222547576668195416929789558410186656137001796956811717331284240478579185215653373511639385398544617322944218777803363375676425278638847191854358307499061573798620185564125001410417840544276935157296433889092935691641034421528750177081731916865390993317021110855425478386442860566243701200517611113451389260853958225915959852628476316410118230651056380601866244772877304569832584977777195054662357418333795189615444978949156169674406131891784923168868214095807155209122135149102762305940710694899189537634924635694614073278591284326407925410940930638425982369627080179994609177546648178878044798617263208627526627656656713633608643960596252641439278874562774896928475413542605443866132273085425942882374639794875850960843026479366948020557797349075597696564970125927763657641063189285352085530713529454526419696831585599375054589263970269823041831688928777556875567374481375082357164810801371381984149976032239858065233743789146094149024366179638546961103842777126866025169488725392866139099410558530805790657893112387143656709031118826259051680564674118950269427492065873150293983912487171840972207523898473649727695701035953928379934848721317697711009343844200996565392413757430067506845183970565841294365097350917107670024431405116317297788784263756246097157337945337075230212824814788472641717522900012467391288695961231127669116935511090561403639357585996337559405868852199934294943615656935546783626116380478626438673785005039344321842605519963544478608390722366757833858646349524468809980495951006388293824390219062058668313152214558606973210117749589246306776682507881528492801853948306350243080670386173189186885444844640642136930737972345244005965107357584552865116482828234769727145961583794768008039249756073426275457483006814897512410419764348992543734006824945312618269105439887196173293661420065306916685125152669848785510683382150811074715281042080675575598317797552600320035178564424394298730560812833152563811382155316986054817308942375431647067530137656691191400157287414331785188582063483360603449931368968992400515297045875662094885459666703906554819092679003156550842581693311999158328876583187210526260393690120337038499036606895219135348039460809256121853064300462026048271053069450750958854282878492596989635246201497046567193227862817190597719099776138575881186104056594227121922820564259561051274239632934199141031895483323387106049400720879212566003573692899144130834841517958910259709782102601989711285288747160657167960415975032439379289752494511453252704940959296356158279593921327270275445246573503307021773268333211895372657870620408380010281541337634405687840891910825534896682887102039649031030034288529061912255512340222100991252521793301790062998034717383372290366589327527818717734079054029193477525208332625654417465086586824682193023281399378241094406187797621380633587875910571549540781607995521621286799307925622250198700359220940885758050672734961056597780471235457623569962017021006624530180842106748300367148555995201097701089760579485121493872208187318159671157182203894835009899743962496298482647177142892502596397444281191235629264270633745655840498891352504697752755623512284352710993859935398204564866042312549921089768841704455593193977565561177074582903786717002902193770427969642555839196493079841404056346970394339026324054146231077447409326085392005206856344635787929146000893436072067553946849225334549725479005646934894973458015182215312935010281347537621468265840675208998205417178609080451272403177378061531825626504397971254296595998300258860660268075935077195118275712991550874326527446660457307322889044077073582259335909141627459251542529011872665533151833186710872037831651092832258476340593191342943906763131711691875131681178397125231907141823085250262623102393203069350924558145508225153663470669904113817786807931411365770284645783714903457773317358753686170806643481280484778691677625996966277010422690138176045551964733492180658529409302939527926193496804631109479026130979771255980685264930413836387799448496778686655528433432840153122942908738062970434806360817487791840329201899385858122738211346801496296401357818993533541947578305248351935044306876286212122842382190351583672052301312060378766810920242119056467035752085504887126770271349757837374222717077502779182702349512580396491258936300967998145338650461538803796945870078957668911769652129989011828607500776078753256023348012247200931209476332067628211379271103581217279866262613660286366628492424681607422558726763086467676464503582749255751365225960879450561972202235724407607443083512257449632313769932064384962993134112088260514486375289314130941620507102921449517217470702780371841435334532757806625438020873356327435345246664539200938084922368090360494864733702339101734760768291875944098504405711862777142194872930415167967381291099440990089916351411553816535610994948119207792567807375218178255220352375539244294435706175564046439737476630361297361065800614186531197500724402919508634793063698261870534399043471510704113586171114151011124119690131777698505085276618640619413197000120430327266058283952855904524999877012882332858601466731748897646064644785095595571003511482613516772239270425090337131822933869729002733036673443656723000188673068498387674320898185288122844684382763397614627262664508044006904473240701046604938336662293004964428544422151253673526468533021850078622471004533237132219403045741587210708634603952247445479428008539477295912724417676260340948823842150089506522482673491874613630271202343244723147326663812807285187592953266233460024881233901606292605015282050961537861938584115756986278155584927677639073263655557765408381612743405041908593672795853716130669994592037801488902868116051358762072484652259916633228912764356733737845383304462460371069524970039201101404234484305005689585768180240592380808918122646530167576310097551794942202673169247410683796354443377818900511846685023442849426062702484222028702968390341369246754536636883364274706619659196351363519252679653356730589247976214285354777440874106006125266864599309776455133883677316978227677849855566755047100233509945078494140746744665094377718189724690840575417368558472619406115580010201910320045849665090552382115388653980922975802346712619948411914107222621858098981743450974328168087825452123124640466278466369526368264328845665465026856178759207192938271746764404166059337587232204732394717020687249688065424260704422348997719267782795384943691682407939334221067923953749369334692074982299214902050210632394647605798273403972397683422208494881117702326631782777623097364053861458789121810974159760878644005039661628757492744724881654172885444224524819947077246972865338876841868355280748956065328310295947053393266427592872593174191856601092993250169555861287798105264253965393614162565739644832888362447587041754828917648999634913446462376359672993861688900018204184198596227863293033446964525722629630254861884518748044600327260481611346278396139391133869642155805786694007331259547784195399103605343414076392754858608142185458436478722739397524157126894018494080724924371772977757415225874166611466440501186769422358408537708692661780948166373851011805617475015908371028156752498451269764914623809829049912364491023623585268514561320792924699347259699274755225326669318750179337234567889857243910595865563340030153696475507037525313028241517387107700949220133921111151911409474991339806700043258216506715340415392716762570142895364783303776682535809464231373727370925016809958159854221509122040510793852426306457826397769333245312104896445203198052469720895754939352043045331615253084609553868181142665751864840550336069086207998149118621517825897974430538101676504754312414812037658282966764702603142909676382878091304306303092815863625268666491072282121191557657797494078304371974931615168643687643432035290119157153978048602406558042805624323975933951264930595702269495549726318355900407831095521564747529410809172462585996951052404295247293428813507112310425139739642611784434230500537756108438593248067736124238429363989089628203103160428595174656399635247212586296052639442017118469007443009263243971971697578987705112807071609753059208707742942839747872001600719983348100190884797956742912707331257031349725747793022122028749935508851147375359554545851508308162866715584005147826772705793540082620973640146326359336941870533629325181248062122924358555034582592221239851411032890605790722190210704652186863068471195023112108887432076601320420603812801840932408899577751944415287979624790149764054013161196928988133482921036319281434188994526866672559550865804543084471483218536738829604799058104135000900466453837552516698171666674222295072893644147341806115907204234777305650897062085579599434429905614214549167817446622308783309843924526252454187344180752301653059719987000801925097799051849267658623308473874054792359336208563511548522234737582326870355244230635356820512469458872880213512782600206942823838701923169429670532775420515839157692162558810574189491504533012944733396697770546507479940090763344737701848882940244649361576916963441303172848540723229702521610269279459714343016102509534869570322558429036961865381926555274481759291912720357915628645733224223355783435711810114008346496933511768010395141681327457751217901950596386272400255793152531184509826854786653215815322824656802565684941155278295782770777916489058676439495260586881770560785565777164975337462602589732735358403635409886848850835906444050393723302506890720156037359448284355290269261647030184833487396537935940099685389454616561286470018878948532773477626467782285170149014458122366624494023452037737377427615463430428312101028138768319272297806054331029090909288208193843026938766676118181676017475334074926296192704042610656155000592667486856050462920896104920184380342163306568150593512881157354300273102919998903463558076126392844827205549123501149979200832872241447589787598099504006285997222047680985280168205059593945276843913162797375363842334519237138510047849318816673301429411143915278557172091734052843332636265796246406229850463248883124446448260991171657770139688501626593872617853274620767049109541125485258336787536637497503323766774953440017733425492065187319243548738078454101861728992942141318705979169934550976326253883547357960480715336710195343899256600539646582948618594471935312266841529142693410475546418349716139656783952390067578062627600342804304089928970956021957708368777483404562358260999974709412021012066158902237591825742188686808292183359630277812366788363288701620291914348889624499590582340141679963237091426662480066882089274597148693428772065303143413763287565548488712305793909968070956258741528780774418459677196269016045813454387647307294940970213418870648209286952319327201655533190379649458127477367316441004905307623107708283715551116499174396827038732366199046503757409331652593558901934625122108832694949884936202802762540241933188511188702182338120454223423761573464068434174746267534901723579480824525853014902478001727730374063987434025667692980590893483668572013305860856875731540812426133263050507939167195845335279352297231720211459323919647108163021509475674002840253862627538833295525593523508880718191439012307472101344435561110795687162910258410647486736421490906969601953784124100891425933907866512204867916873464463708332775787604084991902723253815549823409957329979725725219636475854080530731516078920524927931990792294343874801394546024524884531961907170304112515815520719210622230989362245575999917660769835179610692697980859444012473200437329423454742907722607242493794668380265169195579260396164596794778012035678336986673354137414901068643035256587359551551316625663052899700289978794340847403396742932888545858561181305091354340562527743637999613104692674898110069177721638499688054302867395989922010723631388524243202531372472522216034734406353568183025263369623002102593900873533412875763052416476251330257896289349225667532030116770674415801930116846520483837165423029613823636998774272370335930079996151941248279009850698079441800596934743004315838127769198620261607208217884094259406000408046946821529070414161979923373372028514583858167486568443449125594584280188722254213232880886673704578214531807510058235585189685880374297326400787699077675549964287102969238189725859146200066335254338546750829119587442122463998468730126286327540089973299137817865086312167288822795394094524454471907381111018096105314673200967400733977757483984612113464800635818996671824196895316544354347269997736347809535836016031702337415184827496559952700564997467434283414718099759455181830321357951550520967683430902096629832161046442847179673629635045288946861216660052461461125294595966758351555005962114597956100896290479075865559499321472912699931934301615890639459882393251611542631870209317613693766104124479614559418195484957444647908508422568775754829931710437355528331886648336136418447908253430636690189012827145347519483004562985653421869679638575762934698568619094271649345509803785678451584281461982955603253020397259782035508146945659665460650052950355371478437837888430308984520169879115361206182985015414774523465181527371490358636884187298587149273944910441306864454984578948607007973696318333723331486184290591908826130354473241474688542395738047219358238142989777956515357065001809719305164904171900334263311773674844811719262319500977740161482057503092544632846816114732401858613669294399298171681877085443019044019944901284183654957639083399092915142038015374137323539449803716085770563163516739627543715083751226149334266643202609704260410247082134904678069038953572147027444931743350827079884252448622139879744365555683049666120106124787785499205927771309476455731927586494252300718424110796287391306118292634295940585776304183121225963239557254068826388480024164474451675537372843361439396812927459418098175128908374441835899098059121507331732190713762712604972529425467744121273965848006426219093937458297342031796648237702985226516055766873882663060402783278345545946728321732973453212293302106192389693434481345573164523217266882651448329479626736697400011714295784674863375975197264068519810416355407865199116700567168201414649369666001064534334234023868685904683316715523636006081096106700217227607540933579572160987037445004319267006057194324539066708074545657143350403009330303461375221214218267315097280038700584581968677944916535439640129288371480116469865623893864192161550658287623432833751473570868457981624971975535009591235729609917799910274901892986788384248999981703380745061557659963850822463675756239884716366179333473649668679930240426988242230102456621373584667534864933851410045740081572829164440446950986396146040817106466781911101382331733248705341605089626751081924497579753155589269698299781897068734700823379641389607321785529213585649940981484750463076575482170992713949092988665025635276651971968489004630681345571883663126458587757417735117750153715830789914372017641800603505445558269082905433667786543218187027815436694928316331055293946830047781008655353540686849538398666083995146074745475279182244476208862379478427354283546298275850257040553222838388683726917127310441618584262088721952622774540097128858106784240250726689600716163188328877384571084399157584367956727150515713183287671301499735503925443394958409917831124017235760127421743397688638445162101405595840439968031572300792418980444977760443949956346505536242738756844482106229202271191357465022680529603021316127800163253029536272130820736340008163186528490935979779112234545667410037667881515088943921597559184714311696141694750953792725107090066546322410586168398155949202967733891037996360130431797252892195265803396929949212320555869526747074179010837693537305322281688787353976825724870274924532122881581025368377803054033682699718967261941044403628945660990878608957938898003084589481624479940859023134564445990703200006921421839970345468464483472912914088526164812613903703685981214175197359462018817207535412667048925432535424782811691954135622480543904452652077614180325998956682340547844923985364394351541057139362039460268531222058392657334039300458166687889485666466996852720848420941745197867433436231210844118384763325409391013826693923158660552176639299889667474773086187179010782341248099860569401574658292204246245776522562371565138498027396263965609183929383943082275152409623200740315045842130213038020197456440970553988298132884794677573879982235571149784180755311697392368815435083916871412410241505660939667066912389568959893413197393470193614018388733894193638252858637159285645638750902541069894450105282356253446343926966190941410276136151549060016362788185275924296079355839982859287092932319366797943691745256841051427797173368142063365630760386104655681684354356306719949811749137733950042061908308226591021465820694483662929863606941363810314301485561128516118274154101760574172687350219315009299223314356449878685109726559776719289419838584277971682385137101279722836850685093956568366095913272813312204393292874139305541764655409341463188639432670128666080476213920700994990770195014702974617135817069154189261104949322828044006694257959587501005039332923872766127307377503311632344630366970869350883981884030471251632641898346489370910840056050367547911111425571127717706172179127001966477599214511657954627270454370103053852582571265460821105510763055220181807166391837537821822169693104312010259817714216066930482920757010799034439438198437065869732278823039831506499783989986914043712920567563251619203955723318131546261980951215348940355126336480324744192395761813385066525352707729266678683807527993333367964641695250619289244667523496129998616022263342401827881877759000219020874592740075915001139542389634535014021537970484055732146760488866576304853630367770523608838511560926758191175941565710114222496153829870368620945855079293988552719307230636548428578822627859724913253266751208244098431680586115190450085702444231541582444148418174439765866352816638904735284833532950120720417154304021237002563111761566207991706751980785221729661780367471884643621482316124362240544177951158401287111093635718860656715729253418902822941832646858309674519626590731246444907522363931204247198644654998545083077108035674474206387960327479849427847852710695660421530122499557812712903363618838863064631220360408275760099882629922412479730502555708155875878778458873760183258548449773671025531449269289376100054381328514152087618768485273744146515752518399844534102424135753895362439939669085931778285746589116282270884317972816533231761187703225257438610271842573857648109155550513461523948538623733667074078929117884256180156112962901794709088603767572011341231138220610155804985226815872294438925769428239466971424469332714209451682297543149136583275664689810972201698939303628707687157221136517645469164212733005322862633819612141799749163652903034770352185171592962210405527859487842793743295260753590713544045422666024026764235126493837324908787911790896068226582275449604311224904324190397343110136889093334429556967802782942579689525142815241995322479638404531047846257835946179788571288340921250644515615495075146406782277626072491129364188185152473559234579286781529335804231824854257282338510748113057426037916457211604723929514928705379303691709481611010942420462871855535092753879807469186375231987829613008683386281881747551872412334221345308298472354849348384324110702399279901275032454417702168898139069924085846929560061758804527591525048420343599171226736015297126077596937182081384601885830908482077683238165320370815302109902488923066907265571958106221624163156087922303455915627950899944549236208952830765994950535366453587817674807008170208300704582600171492832486695668104749309215148846873202843895207626229067104921985214115142067683783261521841864222701961597585909243985311018546532353686431598162655844595534561402358056517240133857337586187074394903284595417984315950711991676328959479237628781942425385738916685500343744366345361109385667306946851595153124162129838304057265824230158792467008075178178883633358936890490294162931361807143044608754155508209156275865052012506271004547550831537514517444346972142506423247160238978633668468396582213226435183098944450282756720055569676529623434086643994760092325023268965960417345236538381474061933853569087238002607779877886498893763762647932244386781061548130895449752839679477608830343810861880897604522690063297511777682980215794209522680859049409381611662610928908122913840867529950378859746162222653175698819126023664130958882142124603191704116312071809008473756940108108648178247609696530342387510614415367704645114040779034516303598664124160737820447345232823286137019128872940462161169034547065509010957292119970487872799888724813354919235705502316309867942028954364224727525941116215857410231644945072793761655644379661799943256623013327785677563583741433881152488888846508686644398673309977683205911156630020890790135647125476389798821175069767180608501709229508527156115094581470300964268874485248033018502450657386857845777285874269095311457764755373400171897911489412412328331387560760385697592414321536401187971364122244503019670330515742313592135127443086964625094063770047695481247696498272961668800545926464337740938438792862210611800544476174842598497505171594149044247498566777167588375396596006322460926421926703193960740887232253051530817185500894281265590635781649157648901984242815727794561925251281590868579888365397985764087795911004420554639481373383023332875909164441578184150920399956574907686652971440999201557640839846024060255624594727397627353445148452408000709070362393282738521262654954623586594738091198312856994687300834764783302853599681513147668373979107079685588103136074664007976219252405149220054550412259046104978982630585239222751771219948785362455616447712841222127363397650159683198724991963843769806978492081898703860878949331741477546272445475396238618160102719511842306427371490673110616009537209807769086215293519281969902045133286679300173687520179298341223209920088228146668470107298101552026949390818593150214482987575070527373869117083630662347322063010224334835622907303444976729378453661786823929178052844485585080146949872660963940033463114404888976605975088974268100679355689397649672988343459979848948707391973508927175769835635082123495901233422239448064882782549445739682316370428418520025950227168972653105534874403352515677653890631558072679340698132357742342722330664043059125422799581301876785814320736016730334724013778997309354651116547043157365572737041381035168376851129575249123546699994260794816340535208636291209912456176561407398380635571921864323685105043094102284646956069453021349079642406502039814666987785413295579899086529662670134542797320603664194779047407082584515277082061596780776979451264774897809959177707723358022092036495228999833785434722326634270216352491139291707211427774158354634998895739744989226883876761371998996382162719905448423328434346650862731038536141994786942492626693685238089691702406749208347851749308467389747886060632522680575157730335815829435476847666310432053453578596364001560682517294064193364795119583697496920373893251226415926122849806666809108826383124139435526167272602562739692663178400340564460537937786473617943895526753638427321878009656518071521820524438090466638078124917167658843599711269415234547123730963743965874963355505922964670342960169006203138821306826162699466263910804111989002021630152611230054894970973944653570973061311404354746779668754403611828574838201515213905747809261333953541861559876412450046921602388762668386709328012666318381801570470628740327028856594971489347766932833718299930392120305439928576463297574162185835018994758449529655794375266119852383234171042884105911122750839321159977338373146859445593712642703630126555821786135043843375400702381058389365166202484954881610305810787452006459388605091042551273717858892042554854534710980943024725200301197882018300333107700444524788130444644163988558362970673822060156627894373206856124883099892995599105313610850422714825604245855953712726897622971654021786810653186011087921251535403209765115389129270715041614972468982120485888629894203143551322790807528159817845533455180954060276888682781072689577716477770819984748348104726971169646732400525149681790057858667163295414146080908888513072598369040788669013520435050354900233679946478735173714377056782711265505794308033499121723271586979203521736712673132157628561748062497010698195055865385610734806456637242311791315978265342915094236873235653793354949355617330937997459877896697807681743958760032298728701250853489168559976906594830509381383422903682679700595597620736175104675418607465186968140027251343935284911022904461026680899654066443509144814771304781312550399581852144401577659779863103711077598511062162180852964759033540379361945475555828628199916864218236662846068573587867011845225303323365096932836323817628953008150451304014092863450516295166432274665911723626287171827570316412555666139265559889694658114162662292519755145874197789715461561843076693983054954864260914008661193950637005762670687683393047514764872358420319466546340505331728844407836200432795744898270962136834820047828234457038547980817158360319910547659497855821401242804372866161248393412046089376006484919514570178159912740571913520112091461773774360326421731369584897092809978240972694577431706764688296773088826125119883954548954510273412705643576195850216528318538120286778057989752938250042264774028210989718603291310046767961629324484436504802820050404153017576632594530837026907294811546093959880137278963864338175517361397712543689601898839214908827028506589690280184675349659900107718792491672456526358399094490941756755662440158606012528389046574375475960073648296168400981462177285000066533420033637416914872160219720434602010034503757639442485406038129595292086372511584210931874887890360202454865047735647529826113486929642773452378666388940652142040197253641570944605494910424915830796325877621524181028356409370784659806634307458084357807029352991961184618783324823425452437211007293212070506391091177986615679266770226784818263434768698871190327251179561147601041401304634979253665692956154450545557315181590790540192956850802392632382983234690594152477503935822938418624524446176932704498424515145281392738444418177014327850670135124952153885773889822045479144401797480426849906962647692403958976125080560809592796629847419865456857285615191424347287514655566137397382141246305817823782227272313626711984392190479479285432248327785855108475912440254350975122482390376515023025615665952385955904559529075969790120737593392468657732665483491791307845908299331009088439201160092860540632260373606925411156404719955025452964714221525236512412407318311078578086691538559204799703392537960889818930066183061280378402307514290852634064965932426795388823797964331347041583798105847974171410858881852709971706816113882969961051349968538944371804142856235264497667078091836742411178081673859904948186645121236041064568881333180612719745644715743453614650945187558804947733025735297431060056471208705616752506525710480662939972801749950883052448206233029806320880029364099964054951499209494152330723787656161254562201843863435462150875303507062114619231895258082322271640303477372131445206208133998805413981924822035657436517326284121463252334763647908923322840178553086720744531341309392964579593342732503469713482853281139042577448239114183083686510876627130585479748446224666541423783421981868858198002812805106786393952965770199528269855590936538430365773678642241497437348807591130117696751567355268121799826614413613371963714071595096839805617091574404187835896906303626802402217631717471067550768962181975497339128056826300437344674264918732577038703790514375682488066563883117617087204374950223928281059548969937949699242638076345972684315590830889032089524966389886774213569193067574354220267039470771055943850975115273548693058072097199200433565614282141174844323679005790044780538166653611473808041230997338738940676428247119920947984790139800196190741296791789627231986618189042745120756154974935415988408554908617555604000865377664158144741036764073534009066006421022374860147450014827710829864948493869246308305103578022766170723252819910447661643797351362969684472991071823728260862314078504894395087570624048616437498349032701349034696723498753633899628527124903257526907690236359494565424360731511228101730261656753327475307358580042623155418794996947903350941052931346064925759948617532137359383826259939895145698393632966491962067906483682906430090473757214492242029892458589071913841432156724564746187590086253133247676981174449828498036758697707548219678387476734837553146261988650901054348931231161372378649790494809304805042809973614514950417248768485301609905116180761236979689766391097858885812308455979422529455175800264283265296732543643533379936499959631748771925887983111088659726506082613234015010594578822367374027844043307525293667287825834664394802186354403705118361465932139439470123092526596558573471850558815875038727000358809284478987999085522201366146832821487179076312221267083731440471042008202488520453693349594023040720845180974387002402401677861709890470542533625231583620529642210076818410396685931516843051104925116298321936629605298440151071405056175067940766831331958363752871099752966052768917736008194327423144479128431767096540815681677241188897959354138205060000818147020457436008931488690488472304381330772899232014602970457614948417442586032965358846172466182491897736572232178133470456868936644246739765742237550347711480957256874108355040003372461163443538045012213855241365171518648981065401979906316944861407785948645027918343845757848823778075600178003512291940713885241314369884695985406897288737034731869364964412320155846604166735369935366653577817147239971302323189467398707467937704974637589170160689977749636836242205404191143257764244682729103819256980780981083643151504320258260035788124129156466908188974039567580864456279255197790789763833645346734853904853635512234655288104451351233272625068199222549485000655214652803507589961707279397534169173245278461084513394507419880545771922706149848308315261362791551940552326765866340061174247920433295087890127684313550540322067602207885652438334228156083868565100737349665661200775907442950090001635731984238705552725350825444329631289902039211988837771554443604200483887192144449611048299892409005200430404601386941900892470367395086203183475200414402242159620640280161317363826157097591982021276812748354503164498858562113453418969510657434572007105288897195238049752877794606982361681870740643174060077046776421018748555185943998652040717676407051284561564255695196893284149938679318232276990984449189845347683668047326103090034977971282873506373221632044294447916667017940677046334292292031899567499688319910594812994000165160320903299989248299777015336210194437582968292451183959190573468231030454057148068177479472761755646908297673379738142586786575438079841746933594618991730330210078914943400561698147737942801606137183099358967633450080090841743215587409351002090229936528670729520952059936794186598227976218863731162190166726399095841407578207439845185523292799618310958347487951916496714248928620790514341278758771342822594210520815654593133790213673754697687817714255889177710526958193266970357442931299389961540163992361730839163328189117785808239031824709246573048459737082888548439919140320304112561104706706925028448774010696002107395082856566670968895567380567015867474645390353402466157108367720984376879595916904228656556501757681494204395786779602295772395561414828136085955249586256395210911384971227023280713179406596348197585841559564254463502272760937195243803184323882983511719907693926717984659769914713814304012662547893931250635137065898512502124180291423355809257257689791302495379490459144849739787495637994998746050874217271869933849711540477721461470049441753545418500759022477252373521338949931950579607435606726509273770668822930285265584760442412623787480431015247056945727649821277235152486952829910552321855255440258628932016540370369211410885826454588138436729253887336085267524418664409631935618941163393291606875054094207821893495566068902420458889620629816772322531597830799762481808106001350344236217256569034151185556350880015077962020567249280261883507877665588296716158473898834603979031072824130402984985528231107070607092898629352982261344198390550168505946984759495325338075911367258101352974048476146403010951677251149625333629992149090099850473469918528184357680883216882256996950692005214060647707718755751493914608184785891784472843217556240628480410613762725188172845067397293752290218584331022232154153661341478409773679841409199755679768967150117961382040180623773699664371654890658500245827791445405365792381963056976077106612389786723630105159823450631486427439240116942683354168532861910436765583584517993209454133008941130853216034492145291251828063424504635416981089018103507801790613921856510714049470042578588594959418112625545766795522889844068841564182415537696923933067905387618771703599114738814470509919769762793633915201209422287481674792898982501164362544804107505150325974527038001976374101485559451025924438533448492037409189227353467235120477388604346291490817564100655135453923308634633054499268231368359782900169696705175518601530084220835368849510675449582786708070811382591726197864340512620033215186235837282537746063932005284332354437657370797594821788980991377677110602058400580254053313203223866380186078387246155575007839737760233606821402083147989823207513743934670056157576010053472385523569785367633557674760850491671089084982795977075260824132605837007213106854091030779491221845414694704682950881988010376792948955169382877333231918029044226262750771101982181323170589477881507696696518756702361017022743514512723914245683622651127113874224576136529326820734118023143668178415211890245189254689180353499298359252118474880638305670726764843004050640349879712015095002322511455283530776235949367401861360851503926445258024893417915093328697771301469201002273647030660635259563079756054302772867919515162481719426731209608714310095963888654854553144535570105816124311203476850915577526612434003774676792415163555107550855557649713082476775776554280893361863062370743322941702979332668322780032279976941543290189725026699380718979074274994421125978877588618981611868547774281502780708691611829639280942978076247150278837161134567346479701543372941227957500339448918758857240184356292646604836632854873868022454390119713382867642050524958814197419125006164624984761463662840607903703217859823773319134608443766955564463094203672459910171197831538223280135601210749349976020171685969346871375840386789665741335991782979319882084921472186326276309068943028660072082972068917473492458190049262742922049067860729717124702260248058943351846158463432887527127081385184662575373456752040784763153910903029020264955266475893033100622701999744156468118918520965567001121559794287479194883358828319598244997442172155508996993713647194936741505046627008136500116009174027383916994874357646280173167512891926501893851036360252939864070092051526471231675214607915594210217394548351839778951481724512260544860057780703890548756677002450618002935119509915734004039984907517843523634971019459750412629410262009765095639223775626606394270529011527569166332703990039744350201348294519772473591862277014814022238182405498961765705542596831966255321432346994001685749301063863931895371366346011265633561410449538977580160675341039843890848991293381000601139126169651324335365828472839918890313956437200549016784018496275774847946002835355909772764594419476943924445664688043453777683431658196472732812544212245052710130039579231321061119121870234012953976230781976280943327116205719366074593934045473075254364592808379180702180005326657323673520795866378521093645620248254354917776633850818181205049755893391140923441175347717914957277254616511109153017112653242295041443312124104959113203027945282490152947292147395991319594142097166582030278682518893215580644668410984628136754691124819254315119507691411751581555467946383129812027630120422391203519706849219340553154393781257528350275216277835609408322075097305968071052288093160069715177655774962872687421283713602860506364085528019416948848944260699914068041235568089451239038542164100271680407435310060642200677527274400052103799949464734009968087505307952990035766513797579370575216662372435437994194446488169456578772447320785882898993017959783732775259470836628744442669387381078690018770810798677046937432250743119668342007204321218440017266743400773410902054061240234641261402018792108168223490584923291030423702704293285361117979480075809371892418353755908607975673753912772858781989297759989601380201796688556568487491924777567424888621784536033630545035857556625729127628513585133674698250797634472532867292699992511490626829883252737407840022764554003663135352231769984333194154816376936028191032669495378185320916597972081311504206548165210005439674112671829103555172576016190521119872306213785879321971407244273914648612715778132688715164639255191783930821377944852992482238598842241592012466219941833342512409039642400320676167991092618067307659512689175301975484110457758900676208654737672162327420209971448509326207772217390916104212925616763006759571719302124949836281456472206074125107751414839746740353532390085746563583850450216773259129709714986665895721653292750143847765591898189626327508236074334976390508699101105460668374775788394769358655584759575342735472836122154536878459155062436506069063693924824458061334211603995559602096534508994472580403238996919825211317072515634904200552312507902886837582049789351224126474128103744776766820608011465627229182753556092909354902969520532621515983328611339497939467059645064759761231220372872429276770821914975677730090004105357392947686780558542992953306391513196568132600934737642913759208051716276994404899341826630018331687903123412683107992728705221584905570496250569701805150194767443323893034073544803862686224791548606339357653915532739369339599916499455009636966863569032343315074007827382967452136310637968635006797879693479817176988817708803763133206205229005025091303953420096467894511901569322123363404900664710426952653113559093569841793409967082558657309004121593198847649737183238987835132860555620996166379880162973316775181084453629657678160998440162763294619226539346281301815652855689271157033684718710019167057929370010203738850557254015367118792112879498166603765579782193347254824195725327291448237831659202201409507707267757332927594213768774227946457558038366138445252363727930914354191991704888131114635854877301739456929960138702438050592924548452608211755843858200091111385443823218905206627462583575903426056893345032402883642741131984917235972665541112663903717434612530117707870281583158164472623284909239376807573650165477214044823006948428360913949798441098148386315794792101123620151793556164770836465555081795328311983985102130959880825278130889137029756714905174067410033587271576408915715108081234818997416629190690050058612341817072488926092722604107387639047510050640909591186251856716955805209174817779516562691815067309848068566549937218600704413507509363430396096911300419261436017864424838620095226634820904886134209778072251584656580909460155861941926512930117236839759024679750936895853021366910840592651878377032459389220127212032124741069765589248656078866392916455342902442811352033898842507271752246282243030830437875981579870864662736171468109169003055942165268989545988293678463082083195714390723473509560877302259433484841030318312868699228141870867216920295945094364257292427971895685833337782777744858108043905306498273822939074082965253560322866615782024343187953369867985751226225863728253598695680759525821370893018564321544552489601436454928661251258331618381712012959930386539817280116296715360971182132828576256794718533241251062993948409951110794245297569548149146135704702793301117194650467836298776970368335654609969483825037123449672234207659103050039945220949355645841519925557908881105552196855632125435536305162365369362104511003479468850472276031265722838398807847905464160088720955706804037757869472883591475248995056918639267985560716522523727077280536176418166763463207418520649079789730159892760325868971259184594226168618314785678963681384950711074966955092392830207417157423701275183007734947492923957674077472461978919074693267335297638104118399015667100163104923904722056427609112720464887816031689486664444972247597878345898610520759055841150599872034234942052210073756187814830597936654190609135150272673901195518185835368237705241848944015569131091058180982801411313020038089179227332681928968070192213007153912718011247688014537361050876991032102127006729027416015555800631160994389231518861934778447612907870540715376281918168580613150660032838270572117568557205327643034406834788018580194515656213330348355195695113706629743949598279503584106298899730372502423206463016537956965308268713693303166220459684591881688801922938097801945412777143694518643735718435701169626444557290241204926449968362940127412914934291071141165823283414774977452462792740841788345201968385387748894821469784170754107285250989883874951635924216267971498639905598942652694166103392290072468142260716123209554023047577397757318502057897408407038871969582833778526127626025364154686808749215061281248392883154151154431698625979787593120594739179457096807213573153034396140824439773375453398207509623189247749265916266293823589316410488776062225600318117288539485071671448447440558174161240352448905700040914062154612954731069913535396138635903455409621378273625612136885511998727100537791340358776969668074008961628583985734176019226400157108830577176863387616140079543555748258741221037330356691509316939610080954947772692253843508246223057892235254873693657255802381059979013389861826086774836111227489440052050560329342004239265103779359485696761784251958109365490387450067405528269835228249909240545731352969232170722564160107478713447875561411195430960566835940916563268808404192519291326629648521952981877865193362998294955218759926513097588415943042879201367020884036358187592998721324968177510253454617702017020627973419900284654444556055217180577595402811451453369895302805447878616053850628596862239252775052386237160698554760593253051374061512243132348976374205862302105142095992420892795335228058726243266670813434255867020356570737505003028337215135920152354189792471964990447544319973434586487132983156970716540980907974573337422395352721152730790946163284494342405197144418319176680919488510386870268144171858527655878927033872611836549009452938474237912323333839274978539126447856355920960081465809038225542141853403082366886156312200681870088122240906775656740774181180097822999482894562236408029699713115937265650928225650930612065534185987078853325450635898384178654037303392277237740278853849578886568536065600581287198879086709349475704134630536237108468200815065358205821371554281419167109399564630787481555062494135079080742170832951303735291531398653835457761915865801963779419248464744557605698152852124804785266137767067432470180364557564357285289027637452805079619736641259448280502340337969495526455099772811228646552020208304024086010448170816892046978769451478029353992397134757328797313327588106375596306450647834599460716359444577221430835374928556204233260658286231014168318819807020454602619568812494979923609814046797778323265174433057995337460966192218894591567327582776806830538232071445089689393143706672431440058949534708362518681726838309604985620605379733471913532436183618017911340326089424514217817245241897259942667311403328861687926219693841961511060916611257586769059595918399447836599023573120610753809753788838050524493871213338890420583277076410945991824952384945231925565758228417514385951379793288711891628027992125117223423075410729859361976040740449411601006483584403244130588336096273512761607011092381433610401764809299979731135978526039814018907170112132442208875004957046875145155552231752107883161153460161112940225563876252931374982580192369965981234102703911136519258400366846123633057191429550814350265938141377631200279934913520146101089205583233380075536682075626688176395729560412161740414575402319664335949823795188642683823854602905121529133127607554967641657811056354167574825474517670147118415068571079625403346734403776035716140549647262436791113624203499473299176135397718187945353718437538671079249208317013046223220551484590926953284289209545612432736052316242322414766836547709801392579426533913366867043909543680426773748573066630243793563890695001022905691305125242956248362121866542228617933539450420815211960893319775610269867200678730080559126132527541218066844313402053236265997139522817700276561507127921995584122970917403588842764342007261686764532072136268051680319208943547072039132616498983945216892590000866359233469939569520926368880935078182100651028584074457967619898884831444802987507513149989398453755416520556599980046308045108816498283128378514742302595707800551581322216523936205163117164237031841462962119104280920152419807775806328936142468696955330696239754269664556738994004557200876006516822737305108240733461873732740609215863490938193939299396823077159992783165193014897695784093484851931983882708111770481038206213732477006929347915757371023550834616011497579530219422944003737810636390627971022625264337341544175277674391737820906832095309769318734331233297985183942320032148065971218980903697485013063463341729752272031570831686164735372132299167047794035292733284420769733603985895262840382809459483016417134470153735003230852315652050668427059772801393755977697161557846768264697911353756098719039454312266975397361759615528035261195717489482293271665861220476368048644727939815186208732824604653793605268925932565390641057237840116992259415201360966535207180976906414944332135711199299384531151920322602374885325149679736445585843288060115050278027577102813274445163070417751950758233493060978807395175928518154983934022674001823036540550789911370316633349582625168914117801027051193933706699844777738331483347330153490542723283115562822350346602207233586315915839676396249500476751819735088390271697300432273101983713089817776522942458305542933064213532286146532745309102523725655473335722840010869489499401297871793826635424266410994593430528106139614810033734603577065440502348599614555107747128071327282770384236176492706943180494286473124233470506847794637940609201686198666810034752797249299603891871567799137916842101961446696545556220846809490016464072695304459139292026484677437206214694132704229820014772438518827595629420286461115744645595027760780768459678282758738770104779179312719157234046607435148502799968427289128020744834786066390919607526182244141799486561915546931081314075400673258038247354306756869594115899413373664556992986419811933984880972688860531979463050691149970214454468842132867280442357855997788759574823439232416919002572239935187734400875200948188132685027157629498008168214730385600516786483303095016906009451023024959561591557458280140397867990018507241536173167129361751567902030940180029478041677065028611803581810773864450370936982381962872318485116046321566701040107374122432215094461482701902684248538284881678107093432928788415805810536284418480651906563360704397188148333758473430295960491363593830629095990736122391490998895003325028392334352544851995549497720605508866761692898139317618274654622284334610536237907262133837837934321480595883453649668525457099416293694025230795243186313983378846711158540747601658089554402980372630660923253848259596639081121800317908392270613252201728923470242707590237870099623246145207789242892461015236546567334171081187387175759401324786051074566247645944336037028082793990203801413652171314076195133701800682038792642439145143005275111386267540470710926690820505226018428752780269494611005353770897623898350486271915768294288234943974725297887758841301040974243463283330357320475852290980694640960666642345584570113922687930074006897683052896048335234003958996643716440898014085680461230321698776468018726077168420694370218623068184514105359721428275593901734391229304014959347513727358107038381237565959921286660214726047229760559074592055796859869004547028971992860869880996239283074994880030120605304518560297902492919689439677618481327373238315132768832931973725463135136273413549587035922487695720909169539619332105591305288334897029773634925203565247567849798652690993009995222769758060816164785569556800196492802150712553194224236046825360165893822875616729247500408633790459226145494856208260117088675469642369676592807968566948655505440652427072286105160728163093042482775271619313399592471690780528598342492411189882675640366191513594000024855354296793945934696816620408726659920439820927740185596311117930922083630135314375011034428415253592766794119126095780468596919078426927849633132379934920124385876257310165840828601854661380736424163853147745668526730647185361705583308232434696667142871310147529337015352300149549891131842858242448804076832300785126623678309503396733440150786905598078391939972907617178537559705310091699476149220340449407308645235546034940234052276382284060829666018401154368303972259535138209497987664695232363492795387628655519637336518175907685817621930246792804342508983998302160259833925190049007385141730568208762853667331559113928401056641741755270487511984209110659115290987001100385752731544404711575796558953762971427657663596067096080153879750008833877336451258505393415892678784453505917127483449667683194279663021671215239132498080178463092218642420293235712804485612288853774960981755793973421111298187946980178196391663838071227671514711061740639155474084515135818345821929737440855372441686092350707484636245063289581363806037768813336166399998447671163438650295139601083208741419972476579926295881055166431052728392389244252122985649365051835545439064573385897721313867029190822856052494383756840887822171373634812765886042749526637601572002276301065434720984424034289335977381785511050900422768466270490476030585956435868652031609081446909401743011096396244732015976067745869801756991332235995589176238264679432935449399858183645627792710149868446120204995696012662435925734496627842854879035254072820919680500135090202026214390284378206320025669788445762154082294645835297214645443785749499538350234012981488297256429614058563063080853820464133246321689789256605609646442800088589917854258791050496580686875468134162806313311827996218181088254049188366506185695482074743102676189704111990630147525852876657706897270422902024629260244627560189167622343955249824737039109132989631911881034238417574657025569126871561036865986420783229336479610545088619079389982279410659879174451773433818640379374020153561594118831533556817753956143275532832442442753609999310325554043457419506582753273524480721553338506577315748307016738799975394495612580967563299831842432681560499506088398484511981893590376897376440177993821315459191699222607129612353116642027114393862401017009060916595953027557668248978920322558575633019052809636955376364123855778293984725501165480270899707831251108796241417154480575434438409839754099525440421399164835900090996586728582546229920545274922992375425701913054106794424944012653861018435568017457986396307136221214575851983838574723744778229243970675451869132443390159181070295234749261841106283946887309791135020935211610451572032782720375073563089586683910919513975619900642154688255088637973290122547308151428588029465078515124683396879931339067437387795433304198342726516723327005654138387481220658315790466505756634465888245031360142170662369469380597825228592271449114548577019148727301671110286995190823663380752335281681866437396563983044666988450978351433822813782853538484570449637508981804989332706818274204037842204952158752830725268133720457293302969580410875583645140210176623204244765301946533798028693990351381570474921473277349310233797647748913679614561179535725210412488572125901598430383443677468272122315004933958480791520126291523788031574604955882356010566099724768598726294686890241933970594007103498755901696673396112350346503350063221027294236155601364379356144057464887959289920318824808548971512193121647206800534195692561248640662146784882695578129693895622525388025464216790301833469702603396618769667347189321901888934512226030690210539429908887181527152355166044372566657666949987514882699357292891639887797094236587426970169906957529238770563589134244232942810847996241436621007002790283264059186818369514560296542918207048468147304949787023935068354468051442986005743898129111318753844120571162069838886666347480148077578988384176470652562247002574654651462864325877869826980553353428942851316472817978875711092614621142080243981392871981429541257946854213616793062020133753188304148728272718752582885607270816718024007059322222824737472076757229142841892927419276668047538624167777848171694574662329199174527141111144758855265209492356669110634220510583048254864562025254177298715110686750818283750722006907708540029938823465149486131960364632795938835500216056902994338755225246368968935003165704041474414307166281345647316657708518856462802272162969048157313900446974005274884405079417952889699463860081398405990053910193975433530528085895933166071837122837238788692294621254900310712899522159336648669138156971027963715971343897305719374244550815787191774610593820282494084057393985004359899251852209425772281749143884761086462138493040428189934571494205190911804492709488774307539331608280178562647446559575543323108828639019961809525042079165149007915399900265546802521254750535922330713375864891689198842100151986733972765613938792942668924509331257837544554269331910269026146140371790669879284373884321785738682262776614493356923892099152512068764077010855133200059839763997171468659497956963984512451381872095952171651360727485667330673030113993982027284845591112383901154459172400699859738695843484086757599854678314426491013222566757394053030586939788888729746824370194927175139705886905199844067738094676686212014754658462600185520368197890395624502453166954899895885460985500932269337535501789357258289292698109007867139322441717027199135806303974315192870007204979034785002992858289333236924664689506451567676377689483085727408286610482330613204310515680471520154958539293992933063019917321045625529698125519437530515792672452059682287037255566235483508035168231219183882570800692735746461669140274903661748513468973716054587874032182144442139134886213067376611666952186369270626787561210753683722281389636339750147128303998931907907118516014449772945798816574795725833468519324102456678829413489030205381850421174784241566026508828079599397771389856116824882986348423438938124146565418853795553557652489628285607880178701390721078211710989154945496133214154802785102763603761922859079316559112822411110573305568883257158281870467702624220653874821638449164734674594116815361996295157267910923126995325808656918620041603524906702808108561749946831332464239594055877647654008899336511289316223855598773428610994604576144906193290024999979253980347670745835542485093712532410467609639235106318287819939200176078564850508520011249392357707547369729944944186129586179495310148637889802224347345866996872876570701614536316983029279400740231906897975826076073233460166550679900790439284208563538875911888818940274548912502592293801412913173307044283010151440549117957479767434289315953174001366932498366872198640490469327105363257752130378418783120495240799552513708182352251130937594649481454462266170154527357574196711631012808870600952347901482766893063372011423642428661348764826801200059503619187344752337921268913730257280154798185862053325673068355061203651655102938197569146314524642658245371927367678332313504745780734292243877253806494910854190802261105666358095045594228466269786229602303403327568776921405541753205177655358640961956237935051296851012654054034020223988643859337332927525208134403427077646220461946239245638279041064090182297366967398271416378995534696103729073054182886673165575782012475746743915208362015762881835174655700434792135127521563100781413753946286684952040131360582898665196368127810805924415666242501041212713826780659578833777103800154794143910277948815648061445070910206254095987691750205295293247400906021471412588238298743467893993327202496868613965380737971344744533165429654809884986202146660316782253557805813404564100533156020110621618476486147205099991206187250800510161105729092212081796640926755627430364710566947898818854072231302419530763202588107904598386269235722066652628851947065147272846926287546569998374525345438315536414314457732431446732677596251272496726349803232583623495046733263449220456506540532335723507714480199099822336838008615596892274987898661192171747685703415707913563054799510570099720270583810652587655699995495490796467521301761162299917686941342249685440294151715325352556676934795729658637070522530016387193939938351191354430420646761495143146498345316695314952678405167985341147152826129671982769922711967713833539051037496122619715216009442747042836136227913331454619946862439852235372774439318936546741758247262018836323710092900494037722524759864378538094986781468920021646564199365187096287152992948134870629220856849576332602723580323910787670908701454323969316023192519935053846526301560699370797600713774324228106648490746272515092613793358922022441792992075839609656777863977959201346003270090160467017159377164107829495357169362728663038303721281409151358603622793625922409831979661404990835785356849609908404921687598558729100944411865652773887655203254175811125579490312087702214029564417115949372712664215833946648694775910227743745712566313078517460517891849465038315800887744942797588357105163259908451131138011061536094272443350056396933707124314709218796912157126438298134777551212371397516539763870142445984722045339423999588997769184444843486024661729706667694806353759110054569157302137696527288296519521475413576513138661024880818412487464436002830090966484156629235248721765993453124391589400323478012432622826551373239365729532173855153654127132240725986782919541398555189592829646815303166269382835204708745059624017601534757387638988934346298162179874226500826169715562522394426848309693420213896172009590734059068092710869622770803713608251973249504555880384205513778600001443557185621009650356128375149141712632961365852340116848901647738073513306930684027986377312717026394406042450118252501460639053495728321926292888062022908919318716021558625834162010991304964448781183650955239179219527423272994975014389575215445431626735956555623855491773248641426387789570747045694196343893600820666996013955562183710015829840405002598575270611916657717525193310124416105453959990419469437538599887150742581965500870955003221357472807274313523149726338395898392800266661742067721658924012763214789727328097574736216497261961776581975657390066222788963448273160957569557338328131626125789051146776763235802105201050240762384188931364735061851224487891051571347593728300803536477934118261658180044186604299842480398946496387184278879723699325323883983759638162988127620282923777718105243733839898659263629957451712165485155484953430227540697106575625524180458909858025645534211750410413469831289408382586426739400399551787639292488231119358326269052733645786633845039013535324581702474769107810618683163394206777387339227895086100667187448263185155544150196759322046962140491186372530727252146567319059126379516118281666390257672820577005138134275958780880567298618828582466722654916540787630226149241681822602509702128897712564750275088004352245514565461257828386349455147261078033431812942425142936998045596666978385365823559305249933083496966197649241673989912392034678863361153346736829334275486434524073731618677719590314757843450005837903990958523163229754737207865940387634684210344913854447246928624321213508809004033504348434378691824536002143122290732821636354546223010254985580167190585270693370540613403437260646676071438283073518187363080138963645174976127890338484557824937799545096052178827425632948313787849583983442940816662679962922865159110039961570026066162001049502392739955030849379960068538238310381204661323995740631638287339395109843090281312775442764520450703055407112305265669301794581396983723230859302871838424912218325095670295013167339316631943230940175165898023751001638047758038646264929601635874676730191314115997585001235549348242306272336636484193275716461855068234548011226372708557173927909156811796679249122483006583091881339459291600366443407031999281582520894954087179981610089190025405830281679156903429215941744449822904420473972722682503458775359472591631114448181192126336794210120609760530967989022712718311293147138853111776349482475470194176592012342300249840250110780067508121013356392385167551133513915798992960800416128287313564533096934562109910794216683267504932467322481384910869290221019686138501518723151813076724163260972212011104167134122514502997233158843235052598967841275104970369661175850085890387931994985965342480067150655978732925395075054422754562461623353700356879252477048056756536579334327789266645635785253951868915023287203485453748372792331369525057723869406680560452064254151326183482003104976299749661618039920721500462045567917189150302502253646525931521173813596746715306811893446930995356947072115095875703151908735873536895157182646995074105751290727337374497501148808528798702842000662782372456957957239831823122213843515822414028042960288834859036318901437015543745869164192580554326231135957202538938083357053596088036432353622035111929025561797449484805681483745857418281144235228632755195126103757651675767603832076316916338401601476925526684281110096397159073296867023368160104676359344222582179954202443080792973038757715841135782013909501342136059906476694271348641372928593087834876474197196093142507240120622091945944741571546136584086092205244345570113887415935158744233303262629803116083750717630668209762330213468775234321856143677962726499609616608713231001803836457606838339858282858570155525849621354918123553105310309116282592505500442182705399516241356678520170665961176267199710057960269494824061749018213392839430772990352873346100864584423837743808427454669428734772001618437851342709571594941066753326992527995902164375799629833955205277286443695326311291030860126615906906184066810065383705611651915309914293658180241330307436730169423973953656176617098400319149945532751973242311805713918361734441562805496970032418237432851451155581074454420462853093876932647493634272812253050987155213700085213591687973521438053608220100479320410391903606144500446068644060888810192185344682700361187579597912175537846623366181959883317638459186048889274255034706109880585411104492599508753234294941298316710268754555164698778434670848189840770828585151210015377802140932485612356011803906148978336736171325521414388082025357032961897631052571955236779459903183526659115705980881351722822717941915061890557358241705832250037580406835455374519253105482271288163832126949439729057507804352556665083565616822914940757581004902520684749091102447265816364040106757298256684601433526761803336404320724695162886982153526697492729098608745022485114467548530640883352953164551879251106915892535363848840977560498901338991360830765015912284789879154131844837620274047226159151362077725221302480965076933836513762386731237657035152609712797028025174248917184696518467154858254173465452902511700783493513252137247082944997357337431047760825355031965484897118235040098366274313953391309216924021549778948946248009228064617564366331217436133894269034282569403002670067803425556017101228995355720098568004913117080695019528578937920705603018959014438456965687779135247293638990536287476267710111254937118100881886640406396494983848897371332023675050126918979639563768253253335154313148964976571970337644427218960520308581087737570366665260603622225566546984572825826195578148186964280028448863978527050496980900981750972707830833936835524178034319193730656753452456138518423918259019033668501687888120429854595212761104444352113243320725371398324000517530425569891221266735749204497366151792335619513804551361803784679701173067834530391354553452854296127221649022994966083874356056298442573082351093311814281713376511275126068696790035584325554344150776939733942895329014015491361205174505398411702781285587417605028833672958228949186548698502457701778290478671472081348615944071715682669218147603578830442463968147905158363367282380589264968191353647441594935405758539963645604616655452653853042387760006830987055330701733661115829807102002567539101537148115327145928472305038351402018680869573515152493610624550907229140858727576122312296283139697670839401089384818277427126166708918594790551816544816273738245918569923515311366534541103956760498419160453801190295353752072178226153496242292196108654133964608834629685739724160072178419256557978367334704792565183295114940887568285223102201199049745586705743770931070658255233733923596237487710754446356046870091458591114465444130863479690078917796177891882553577371200349146499546635642078720545114653891922503104457904982414101397666380776605307730626224921693451961729044981287754388354847626265102147510489067980774065859653164506709287511498264279727001688853550148228976469456380384804555303758432701672808283010099260410151809209793767005581727092013765433112205697825863062789870010858926160833494824194900725620583848544363426787520173629719573528678147976254173077417915888037559903131493973347407705121905903542539037437529136471268217095746062120481805656132737558361363298692424625187132645932340772919505843324017927680786974424208223004005833639209542462334047928748929810405308700230935387478678827200590169171579618739263654541102224528837713623410763675274736479783237660200485470143314892595800492939116719937465083913810841389873811024444473651787657020228304257688781558706310256076007739134839603605049168358841073228085801576854536424543434816551452783466288021635826505398114897395077604040932202946720801446236448602746523235523440643532234932138088180837667433971019716567879288911095114648597369463961773327665843267928464280972979358559402866997774077242645732211740025045032874030907930831524250972253936975635743750694497549006027842958680692741549415489006743332118387092025391909006025481562423913945408807924172356604803451872631451825450259593705358277103301275831332815203969199808061546002044278460775205257823293662444538684333861879713102825253691053078275694559103185384464524887632137481259891944493129568486991734097060125085765068372676550403068426247814856666382868576616713514924061522038596976718673045499823286535719841164259930559773508958333698723267562648282425489894175844138996950301152600936308896203517248195420870105779848707382686261040033278642654232338051124961053626881381301721606583803746169664258412319372251383758606819136563483539737595702944870349517589554071440589436720903449834394653321345609151471276653147463472885705789512692903569657931384220202345570561571242782618234545218271776559080305833958071737173392936707664150361035499042286844388088923587872864923184498887325454938158907946950575812675603689518110058373734165003787387667358158673910449228417098146199154580569765481918761373426927176871375574551614726601671001712006984668878954006373199398238115480363866641758059046496098190459287704217764233175403683884274257767291760926179914908124320034076378553795768277493077587254334631466358266105658513715065242804390211661825950248179654202331188804429272595194047402662335575020245809171915868019240612290544600346255392613579056589587531527413621942397073343591817324023767925279489042068334039790698991338434855256001994614769158071291810497447717256986975824976216472878987384846221576958516608531079194768887386755663095017861423930788413448994652291643489678367435319695798229074645465904999769548186598399366639251022370658080315961827633691300764664998171956943804924453850222080487156066639631477776436362401206712095009665123347622359106802705382877946612029103555493190431290140890934070097316083210556628101735601245791110712947263864268558270684920713091236650463896701314374059700685557394638754286780680288685158145148280881290189526826110274309202613031551474671965538149477871300593931269388432782596685145050076809712823539413224506459934184129918590886695743086303318108566621512115436717616188378514674724455503103470087761292562144408017170575936892884456462344084030805423742053706314612441361600343754903043048374974297294562315349521714315231427716555778278609049194658811537196651910547314128214777475784749764554615433687466686191471957285025839709603221206413050301745825114312274664529260912529703131483684142699189992358267232294227814980770395847858429519755910637605666174702171477480711764393015378745329018699376493314340130729187615192311180505701198496428547478294373785637727617312475758389708146493764433814280850365317299784276691377284790321824177779754313649775330320085271859032517759698895056422277170655716494359375902192479547165441907060719421765251129794569417154942611569686503478426948665090896767632743335474910236749836907666828973590355935980428229725091677523766798714498065152265669814119130943141001930376833268374320302900746642181002748573241174397794346860244406576204327393138418095650800284175677668913855738938203085610870136985929377806132568059230344419063293082165321006487924275102588030546537980741859573985525526812429970995429333249802991485396946134514124065145251840172306733923796592636715772178533159554562416661349087950800357209233720167668064366041642978716653216409045526364966288802671974062024263189371000702850512688586897349281536459846447249029235085716306421082433503071343936273651442718068007836959658583868760408839058862389037999459619506403638182479680483263353685409428072283815377944867948918710195349398783399639967486652488552275476321487871400475532806039418958174602864681105283001844648760739615700286644575424475368751436327273313798727115047443025715105562065949611448346410580547980069127573285697207303727289467810354201581268211488168325725767690395158727152984523871548570589274434023845410530022769411969624762367837242297397666776760754276858994350954296289107390165010056149956426131586044047944587846897893575382649549757542118676258992049313892567363595445992991010794724214769268758613015136482428801910471511165803887203418527204467239778925999838896123889610569355186681388565580562793603812872918252405951355343009667131368387067582453696873228141141367163506343808249988381362398578551312509453094614648544319104378459226541546869755397609312441454504498035801154219820277528866980722179689114451656913788780596707544176267622070242890137489016738829548602399548887361796788343017406157181167632925727288710380396466940890046661404327545672965538928454809722369441235146783592049777501906854533384642855280797582412376544855524967488907531379551378910617132329018151110899891266837354677815476930239949735681376558498025043568347185684214240588146303463479730472549861974730455183560022409361818120943323314737251955057596495728282892984718311500749250504709651584876654354515405234613557835867224826456214804422124321185958734317737406140118734452932486510445508813476479033921433214700227481422077171848723811987245296807565930802450503469567623549017917665885681495064367877822542971013927477397942078278830000894485607744237381206528498791954610069875427477914279018891672007050078152740453413889805391251334942337895118364750138403995277623432459862766981696402181855687404236378578627434342306679963411260877480540653500838458282650681893837876068964366933435090496050336891618631644486879113622275507457645164442580663000588941667267069940710772657540998757725800241462019301512774323117074599675111350246683414899436868064716119364171461499679272124783410964315484136743371232933989803099008372201503595426104507494140367801387589300824717548829423889898295822624941566882365031829623963357206455028590050557981306065458399279759245336628667490074976083975430018518337354738646642192162776790386473233853746850010183311192105293021480382223199552112577152063880987692826544178085777548869746556634396848279681791922731749142130435911158604201893504185056266426144701405147500366730233353409610978341718812454028327020055502268296650084847157648716209507072150157550746100278548744440455724615217736373828336457932092175763105633194533012399120985745047314518711556546023583430789425013689543121051728060383683320732143265895311732058395198515478891766868505498626137151108492771789290762552597811929448637958663109464886364303014336118171785035045995974544247132705762404915925715415157801404469135742107863180720277882369273778343188151686120536268665998344298824519094140999270998140267172446850266800346101605662185684202911892158460504004412420529479686363336184623587881969341236508664081317313251364989414891873764902384101620623546038375193886797571484517300891439328289823979346960838449893985693860000245341065922866140464582573189527728649893355974345552823789889747569948915416595847882122585422370816937952730571636242878208917562513378098957945557206622596131031840498808661516127744586502257800769330458324728496133659722396358588209243767391184920603712901964557117430834624590641219108059815615680510522817108559700322215876537026741162294775033315241641537897040621854790737670404963416328818292254457590381131030484463275006000463025991441712010425452248241475229093602018625575416466367884054940769244946284553227925358468355970843942112365597818314577557040751734484305418822363314262467579181025504355915231854955072950901879905652154104050501656071359551099339074348423027683371670896501032012273422655467487947212191311436109489529402601014720145350499739954528057947362750798847331103459241953424984746749006710832413289842385272487156182014077210524232273323283112125073399957892365235751653933848613167160908168135611706105092557898189750131283816789267290626785090674812105921878230871950898406888770624977199421952156053462388012065629769072644849212571072962136220323420344174976623255706997307541100241841239801627503684294374785675720124905358700887329774095863885372062614850456368403379639533213074520794993770219919827846826522088405621144764034146640032496441347854929913103477824759982325762807524894668201915961268257472878577258110672522669633707162584117793262778736794008398651526571164435338794232796209650911397677946287371317051890617862014387340967445834646073901446884468267262127278006245112394596095882049968610294074322377906567884260609610717594625874572379291366565644574175525943411081673762122685614309138782470172092467449625764063323899274556789004796954666283524481424741108773557164203712284419597331720346448845875227436140817555591315169212110884795108315782383741725722462400952459324328553051234766243400248412534048891379324586558017869529701642281688229176723749241638947074641573980081860511201859196825380037840237663914949602497654524163441375680261370025031808547280588883311774242018308910936115156546070681711515717533458696444862700782624266683518987940342176262268430493185128443961275901927171507993584605540928411351682754256575750069937333881654235135229131843254276916096452421654848877758267716093324970237377136765215460965283745210723277864562206840767792053653782387158321814393080456469826016318854865464564138806512701326687228151517276036957678652882794183834851626252830423115353872674311038331047524107779747550287652120816143326324229371377855771914223777479046458088681885588361220272462896866013473626452676918286024733880136834862585077962388954147179195358619777425546271581347450961860757286632974169940593435590737306748391622310840095693389610465365513838863135065655902870473705085680646304876320121595681872366884429502123756724485408319911667964206176964593233423707978224577928316938144988757507781517021112131667277327756708357925989769662328221702794929774856594969219038335896937019732497728415699633152325321884888477758778910168663007487002377887906767969333528002728008025136057722898848813139552011302214795931327179372159170800170537490915923620038041558227939536055330183307878438668653789144717267626643536087810766108789985790745065375417291797489966053706743345321084708359177733475405136657022603669703394302313227318300636584153143220961553462570800940243353641607418521488853030145653462251016897482606033259048433046755758164795117946550310254008297425851884164173856338005237140391728402142749551871520513905571948943051774168199547230188961262955463225958931513660560055109495630900568910455431896882485610579263632542602008299748499298823075483944841186323651804716222474674608517751903729850010000766612091714634693221372545284548340269842905667975183583586415829631688565262004934245213000103836630677195594365922435183326157657819630127689648068888986360066079730078983878551896830268047023346517421732146765515063396717105116533182414867999394671573278881342063763031814243014647537206807235901414300034825801851329200771142470433863163801976971006534203588250116484638281286316198717138301421100831568117866856850472950337957593777215378607395316421365131372951041556130040354463686632152339041800702010697871911323619169167483032309862482919266886619358235473707617238790118796706036123128118306486371684912739541350945419014742417599547078774616806257653935507620083249081485684142211309602611798069045641974484632870369761115758292038641311602971261445438745354170304140921920196431433735475363575633820710649842903675205871205289646422932177396838766066090537086118912618350557732912107976816251030038393688509856964913152295733095512165217173841061621426815550669327953730647206117189022173071066498287868236926420157506212034957667725411702666033350262423227508097343740293508808915041744142241127267790982394013643898362866622906140136949471209551089276509602912220722035250988541925319056030973680075139236965707890665248890388438036217272418257933507805386397254856909584426217045396709691273667045754824679887191768622331875889378983039031481958938394102280985752845224083175923426030680281394927780269186543930586484840176775886616003709893287538720519529970266348366993610017383612332972031938070782247257299943396429881265985830053511259674839866805164234385671421712652499950833044227815062433697885882208667850653194989426776329699972529276495340731673213521427659857779874432593695347345895296412351863668518289655621420138509630564527634951232809376409464792969122729105919825351493195929465896126998630523278769054513070420435499085043268817859370743556850792150790361532009358391510701161885263487086352783204026282766696100497020146198709051257971615818160336825218172099605950741309869032881018903698594738195856017549633476055826624073639767667268924195761363348898532789238803194802061365155946513210430588747253493871745366199483458620544429226818314824339950710978802306870353236842073404087191870406075923539076612635676730277148951407966493599833543496172017049012816117663576588951291139671575287469050649810503389676636530954933311771991871138924365617264329468918568885764464590774420409801864010380878127304469442581637388630043830304841685082630388857166495234230610202629611065960576858191013234846739802953066018268730194286177833644346903084813867849858289119821654424964879480486942837082276382814651152047520020322515369847605815090148804754267790514264800072656112138489644796798541958859542728944011660006215502306963986892230194348104304427763231118380734648136346773967510954903770534856531264090919571586038070719206940645882728458115393166384796876438062493798481475014043009633751643295978616973607981872861479905862913224175812319134057294588534282783329350245204218676447443435785094992975306656406897130503607230151229543062659226730790863025420697887734036795435597285590498659109020465318969108951770326072636933369997768230255862632136374379254145607242651651620893616872674491646034333281243114159854872540061511187890824221009115594053925361410518575605648001402889433913018279869401530259860333415159244068547509694061486758204325139817790471889184177948902208193832293595247361209233384541110974792967549057137281028412358568514827681114906016810338887104201499641838566563692845683286517903418110290252270818877777832189546733557015696655079486557713117589808879486760025180289670210909498526986925735410094468352020967331681404868472456906298635983092045958691364174963715297517155334529297113436626012985408803879468014352820907706302542048436049489561881277078759512816359827864110926375348655784066366438709378976819913002562150819561410075825744837010663600038691460957715753466771638186247883128114080732660064122073685294847044521232767291619895628728569243705363210812386411602445695831814330431299100346031069917901516100925463075373532439541049871786500652914696836602659941374663403526087376925076260352838601606706485821627773962356584724872392950667581251241421835121868135070013256444457741669732433393413581203445295900590150265956490619033894764863139530057359214991431262428529130246692932134084254032734063725527473495754242971121630892450776385630831722322851559826140811027975162369325357353051209019559799476477306064709899744237617914099377626989074887163714556073425890990818778468245015616862919205850246565664763463779117132765971161840542398176280872427759433721764269163506573195222166377144834363443776207572140673691961899192573034528127652855250026656985209786138705337626257643467600636316005706961864590709796409523563893860535085101022569563278707129854982649242718520111836347995310123172352063566436902926831642558243905439623179530093434376765591126272870524280631286761129814308583600174318290328786809413060907892189850852965326158436444202659481688439212955118281017769439852849570037852389380859404179598937204492273717847988417538720859755195930639310152790763490716517962901301234252719776178637212475424599165880257677753560539770338970781017265645002644578111565201496840564028786266808185801891078542319547522496532535887572858094557323260812282092019398359309415061150847276149829769820365075211033157458733426696558191052335398162938030312045283692143281573069338275322063956738790335519339180109420286933232921573397499665828181723120985477346218512153972448869605787944326856782462544406243519204126616671179221247313487610394222856700854046803331936927388841516478021442159342968598866952692281308565205239257294301290384444751352644014042967865273939555448494207159079100272931773236390250716461340103076716034583909593695758802122571046044058717429860962055753995160357873142767630801033847801580430681856565740170606749722906520270922523058385933764678318893582703273991795430682476963928565096599151705338322087450125662664774236793285734749322617417337029531690358788400257678198154701874210236547548789606474665689325349447066580564194052119294127325858128660736817580493913640741306857545331907397457401697817208541153558910742413928584852261470296055435292658897117311207436843768881648328383875526103924018993117948633675596849930979316721241710802104758678178399006017321487106478571405021293077293558119524434313816646149726707160918015737055961589649074960807337297142534927347595908667166068451934937670048888250193613725180450632781785239576816277937028139887615877592158601014695459226596977787802426385179345616184907946547389437653886192803091082281747723872136428818148444658633421892032840906576046927056946571305183791733512468689741809255639303147459006632535327820276970789706095797467085920780153555187657709483869030308506094374775514221393168499709450140601880166651513241843842967044846657277196044386690911145829019954204132653002927660616797590030383424696605027934828176701719678593465238943149060502735995250279980070526271692518363499211074162696394537715924436857914764961016803593935392083184397303242811878394525994074058736460645215677395151516443580220732077054956644081438133547122328559658760194014367546114337884286032662580430426782125669688935559178059390591301060312522992701793155236221820471940323936316334285016394065313951046082291743127167625270761938569660441580793584408815805388776794535551989621149290680811520220605003864747296882528711280120425011983590560203944055814290706524883664967870493630093914814819142307407850918838966011475531741951733257696525095160949930198739549208511084717194033749027845898854756776328939142101290306971347113445120233881328342814706558726432069641029516990799280131682036240713478160063086933022868114537128224886790986224829938465246747070432130522807454473288435444165194346834702114719911199504937195384226807115647623211172375790148920921112496259453056754696851979249719476709451023369657404647477951484010769353292963416584933211945985837688407963970979635128987954977421559837874426705997178314646754657098042677538102651740940737252569020888444619688680231483914769462878191421853096167622459092639105600956111535155834514321150756115724304842531046542205932507716270538635256907902518144321749236076069502852105551863486569179238513766128934546784058903204014517913711487644222730432428872864091378744671776574174905323695507912200149815471898249912607864041047724118657951788598753444394782728529014506875360827112571711373691495296021842141563315632181847005249753885033829528034119662077045683342491717977140746618016434145912738335502103547877123545472823744868268355264548257182294348264596308989875007191485382365089639685669463505730165257422991231209964636695484500209756841212883739630884142859443710011993367425593592568026929692875513358636080713286184222739602939188314267967316147617148514109848710991787583749583015831723964530674790597793131766325198611619687433734843778304306169915007949886977283376600556906494056049604162854543426270077556354650057665061964876554254763257067773407395575242863601798646157497186608900200524850914673210208210618904696139366790278698861027699594434899464911979609065583649672052863317220632364132822962833759663129386674648606922841365256026124733072295705669280898849743785175006314623813124597270848016526419304274727498111244145947114456576648064356306924928812101037415449552674164438716255255181602669766968720384277191517588745767886965537825462800293588442620553257670822375156397152175512570014777704662002457686920117047307353751056449387498160801483116977399686833717744514643457946224738146646437114345648454917036846704998476258294874580764380614318228073282280996312591877035207766659589941471828448007446105959068354966603033953281989346829675878360272225788521678013777104977057964581169930444348726171371651894585829729121881442674792805928714260528644854395989353078998325686117707409024377445093830651162707491968017228806775526733122509760014427976642029769734478635369063825274606384120718647382083914479768223704012798599637131018227887368668017027129739754438661908341378406989998653746899882015214383575207783769788013947855265909273875349105392638304372202516256621876644848926384879736642402286168214153413163838540648558954870668877152550786947390914658633955565308260330539164210895421990817442230439833105293017623794739030884126237948319917757484649114954952657497962671967179489136362453045028107599874521785065717345723647481056830003055150294887358752798249485871915385100155501137653234880567177679766977275701741697712171849318773075938915487497212749675170170033289974173178690711465268219313191386775305761328519570234432484370983579826993189742268049860799903195904754391018010325934583046037801826169874146267225393697653196304701156281308700508754399667281166513673279938009422610378623835044721373833435260956403720477840795775991967906586780937879585894731356835114193791771897561552999998956302224534506222857334421072998871302141206162571831334772949080385615709967910204820391598099205979606027300675053685321919003934326221335673484199518968456012896125875756731958819036043695676008833860408340610246482310402614166115282320917244060528242720372958851832621294778280229988105047509378373559186822827256481275483972541019402769103208775472579168987415450011707563499757265537718366796319879187067427973581192663390042623708761501888417868855168712034298755193277951289576421197237908125057437512601142737765376675422235899816979836885743428565361847555275299785403590700964409053304937683517040564134074552686946899321723818030773348989325564828582629221574522192936962100903675074192275730183384727855793700648251399888044436033446606909046671633177905619637429649481627616297740587593395213727099188067209269198934733573339798960489059912743832889891427274098069504757526445210245441903174467676962515008284615447617703505818733064186831128799095830398510203022234995902431399680843383733288374602322670542282574971787950765237124790471939923987144742551156080620919417561768801255476999989458351870446420684454967565990483925373999961545955036833806691195432782147123679500838928120537005577611005909008987406132428218234674487469840109446630095970084915085917860426406770759168784334757559528656786935950531280382664568119466833835850054376832549702330754300101915532663204266841207926219490640731597689466922035929312691897097514453801888867590967368848389420520065183168096560099510375728215088608839364184709593088826536317948103753827912159927684380853714821189580027954750701116490621938263211456194448493679496224525244683043292359722630200218636362796767181020981806586208835196488682499366728026040043867003183217940065567819687621112339164601368841916050640049420957270981840814675515595397180900131370665726404720929319004022277930165881704515336399355071209534169367559039413227948848460417362359947170537899636987241347205608680591664512745404787870713298837597383422767466362725900273306738004551841451003972973938357060525307231031797264249403153631465740319105376849995864693204423775469384671946154579419145441199074029304565739825989290054956171929449940708194918924298810472919363185127187331640940563345803733016874803227567326463992833271773365482239629502653536279761607904838600160723575792397122804210196677152212816350324368713686734913906759641745734629839056155467424814125247901692587256353059967970507087128245057519636083558774611686400617619390546336747879015549236712585880160482855504748796273982759433113442195337587021104075695959294444536693031772503507777957620102376046898138462064397426093985096347709137745149954441289158383371590697826687397090730330402874662822181521322134575837558921674425862625241586077817037741666035445016210859593558299227330651018903597253898382392811953940333594420945458750391878791230751228080932392013510267693979873419120047682423289544295895052677494240763357495247276577387801090491544896473285790252739501861463661567953807699960638251042838545981186335011033997940242455274414399526715499026724846231403097386589799741972701806496734992913306231104010347937114623290322147647089071092627570066253444428800790136266930326926521754014621752262938119000590475158094786920931058081752859706120972922528092719182475649984957559269614906550575824238201130835925071165790914919855841767674338182172248726897462480970339813422431489799741825994066605858911535610164076497153661310933572311256034187790924503861510675416284819181796423081741601224786328481175623984522856663461067490136240105218449214933945018179811454322442922982633563255995803099569326394078217135264998705268551786231810719613994856861040151021764425010622981930135081667974157460755274216398245735039392320283773367976654699548318126362644939747482581097001538194189785165772035602888466250347931067990816624734397044289990451811484911373652529099556758756350528658537604600652661393112071267317650714731090645624836638035567310505423545209938060866116641549319743093165965136290663742927762267369789395440162257857861490193643934242578934060045038825220631543228862378093086391136048528926474401085289217125852182584293232211370623718317931225609046772481409796388684859312766081581444715720132505945508220952615012567864961156230832676976609116492843973200166650889034950166573766899454487292001333996393259356799247339970980775803822271325524258387130437534244806637091739138924917953490361347118547896267147847619978422649112014016590264175275938289887777864276862400651914955000261429761175671177192428770913692079247205892351354369697571593649194193374564300715986475716887735727006161993455509058263049753042235286913978804304509365119516501868570893805782550591453366814499651528033056979667410306136529024120119456916997187806608678962751905154569743766489540236397157648393766251723767285554524550160226309039134414960210083354569913710101316590924289625330296062256593177950061777757365190364800191292340686851830774245198545272355911184684972115460622323524323567486079016947655833467952182066087489170204252451694620191540826283796987015956254162597639014002211620575731179733750570155455194882903149558680104002533402617250131470513115951336883808234888637956293469248626501176920685332080681491149724100275943463923756628701165927868840880169799484119050707772300713385717253480997012354046453783085751743785180454511125111692605601793549916935103366930616066553131544478098781154181147618568092278071196471567062168906363642881457379192703333107443270467914410829020330927325396376188316205140852330297537339945301856182546415847321593522114354661574884216253858318666645564640636822186749518467298273729582994128032627714266127956478796066295163299565974808632591968714179845813111924549008797063178547068308699217788014452922551695735015342167488046411893611842861055813427402853277792513872076301195953646070151530206987875121350381407496437682511103918176768828317547471034640218103912723651728993665483856540843986445986423940311347367741867920154924560968754696736744011234753220521858492564139625962448000307867988556123724781405791710540352244655885257727269221381614695932985972657123042866945590487223316401747917490599686579440792326242131404524634761363641500484674485860163540525755078817167614779369531791082992021773693492421289184579111681925162566565584569043283766573509007193985238597469323795612281296296647272014073514262351546389763670275015834551613962474152253660413435355133237815209216082990546885546522587770529661086765090931530119876745456847591506971251979980320766225081171029261858145224866996168119393921491834030528596895113071045565882905664935478027237518315013101484351271207744320125141393259527361642148962746831764451590153246459202282960729835588672971353082716807909969918722453370195600616431193066595042857192182656576148147721305451234269341318479141159966292196070418782184249542808117268483706108239888993124406720862986345555887022187430741301896158992625354107400138082461804920946178228348845624237682540067433079131428773265660995806876356372001648324953863973308136000015981670982384902879339847052547767758022554581315561830829365035759997080000786626634892498264278337469530957068308216671303616527891502472883488012951968405138943455708558610772197617722837543470211248023191615974749812791491347393847064535122840242191847855997851967809763436632570282948293327256122699895994892641141874454488074096671873955500617745742574047476458454678100704068391409504438861070186164069800427055562602139527533431519684510416488924166239787226217490563182326210837165600417838710718272297318331693992108246350903807477628177517074129324928139032971228480849877737987870702982543690599995983010602941204326693640559343304780774392817702852626416529070606815589416960132245245080932928167207060290890016586142560758133470706186516054482348176848078085569600500551291120450227002257140666089623321640387109350256531149637911168618922143967710502482540947385540910797735082751678368438478896355794358733210810467689087686975873858571555204563578565758297181079356692899526840952665729737309272070203902089840112397136895409297010461236656791092869350604392255280181659037892120108609856788266736899006334353324859540330705131443256834268573576581764203932191457178234693859451615593895506559175081727803497460397991712062975401357692794223819268163204636784732702259994295832877146117767458235476753225433920477207399192920453241668852229889273222447299564679352835940484896410516020827430436264621867094571706107881655109783926889714560319611213126472124725486092509723869280353606146943130578426034567457837345838176381495871730161011595585590245317730206976595172681674124603341587929187495397813086302422842069798409753614683501175855837763779134333291048747915588413345732415621245886347124902357541330693716857545133063957683008535278167250707696842508189027952186221592023328009905512320186962657697409259148282927371231815504807355610754228768797034386679616433302643125171809498403523872619651967895474145314930701669168485413396436770608950639136575743375541761735730149363509165229844927954502418302162044189339723716907929627600579980622917430672881681999371029673192450006375006454699024020063839804322883684550851826079476275746645497718892522000418861609408988852498874654784562598553194286815640379581608679797429097531030598950115674672418632635929771235514338458997645480331074589305435917601339654867885040278253334900455563579743297221423922311072784673306504688857324060505638568102752662442133646301343657109477596506001357296431924927771273160371920414242482338108539111183647024176188459207503479495324557363241705985216035904304294627984607811382689285489469050534204108715074008652252426632948865836029366341978535316494161249015096633009575301327134460888175690530073703628046121098413678555866075019425031194812507269009746140505288238246413795234808923076350324701809671975975768386627693435394177257817685681127246690542659043245146667522473191429650182956137796563177436239896477404678077569172818262970965052702345269092589887876295059218574066652991691560961012784669591900301308941668206036765531909957942872440466240687749924052913423787335434450253677375790509432293890363096154521132550265907869897972074416996767386847936325118574403519119638070920984439054708392950532327108905504144831392172041770637899796312972414513452252535325764986185708254818845777122376833565142251917415121154675149030348109094488482656965153961948219484069198545008570152121131056442279286354404128478676032076656621810741780806131840706348517176843387410268689469889192185641002385116283944254726892893224280900183967496662392361305834796800213109515636072191688942979555166092283146652148813484059860106655641373342189813514812182673048073750062282663359470636269366475019099836742532929898575840634152132181023183957104525222977054724271141605712193703140884211227605527452748489215473743386088726647070209252909186027009589910623243789680244699816748914334020961477572057200416178440306971196984073439503739947001340987758084128945397221430989998019077100597072181509024704699885936786222559300878295470712637474271687056108099317433399420239278395491218835932976453503316982060271500192170241614681503893301815668820812435654550599130671253818727929462166197263231363185828699202408408704433383566495892493576659900813723686005441764591989692274205661855589173245661269628783411657453750198220936170771933233749624216677312340360468949747496893909812441319435949569805222709101014802627024449213656381354141489693448155127810252803723299053072565204143997023633308221414358258811611706059623786871773705803683037760508300739623904740901973593492302902354738106769553011296949303099458616492287222674309149992661805893860157938292378076013181876122946181145992875404418810319609556236783450428082444970727680713434213793939550438692113924253862166388267620242432884389060143964754777434853103279720245835874006925003809944452826066846385265540122509358246192803421944702866711976427094052659648891950453699173324307586014977537560338525320703631486242850634251420131036559501458687745122863075199904593083596858588943601236315335186986719415696839874611847554515769466571948855615642142729839538035474193386610568691605828844075943097158366369663185405172505908308471503737423016660291690795010995440862842017226962659867440568818740239014241601765522275416038727170614852008719006120036233264850995685426359623427537679471589469443046073982561273069963779699310751189679695986065891293328212938596106892474135606090552317579992918170705836842679247572262056329716607286527772397952401760168771481171704629481199006125443361225275289414530311117759707182134340528493565786350729597774160598506528660048739178383589763981571764991404824552247243834953672328083390125360316507532825440577385551500962631604593831991865348656432320957103936261528427741689894432135052461549200391738841113914310404613145542583891466958637308737091700561256239261328136450371409266241449686511160640037709542707332334905560205810919759595169527022251210645331114208846859914198289694015763908817190067476703184605051080556044120957614534095502069658049277560783082900945117313689194338812123925648385423410885547817939311970305569795990685399661052515697809202279043504159116915633497046130513732298776851764878860575794899631151527145535848588388131226830165646994203005844404085949360311881047205017751959574207270333382442067969407653489161641911491442370778426168461508905606295098470026967632737386015183966478499370297472260376989648867063577870861916310694300952499734191869189119822768818645057102642382642115787410142561586291781412154255400339791470912639482078486644351989136961616495800591759122296236519464802590173354930851431622033573198524264694057088842580404494818546811432903782673348578077371719038414882406215689759857671251173882295375901253631156007621288850748722359837406610791598845608420017675283987072078668153307990486057639987262294653041241380679136904812477071933600819614657816368668680071512176717045153224455593708386670058578335835177011450256036574479770860729340957701521331729774867687084390983265874991601437054217016726316387123672002099651043621509686820842711762622121252989153292109247691615956926793798453035603831631713024956617524508102254528713001904435093512986468603827966925509125293511799232651912433961870307524780819287587900545696961085729906806034221459316675436088886404303198984624173846339272355318837588860418019294064431821690652020116408482510442512011067080577922104359220431757030146357467939792142469695019613845307311953755580326756121856460365166462521774096043274693746198730655070497934260559884065519439119397710167136611336926511849470464358932540329244920829501270814268935695486588206390851816978656394076945165386752459965390297962093389131518181414214894665950592025143279898594246236166246333399168545022329591631788247840797124618183327048556356971550426163550095019884540539249056797897763900376484165846798172745896140819229340643358470216490923946532709832600801575017684664903079274281928610676508662863853122772414328841669596867692713942623845368073913220271252040316732741527804790179527880705277337182288901456509016617487972007915712727268867159099077261255145895852167117150628141504316072884230101016669212385828779662952219328787137139248911108152867945476710583551903088219546612853090208083889924110080441450991126406000056559433235559274336218223162903600376676987353292598579577820215534146100246802710272085792304591907847862667813040754464031160302629803765875727853249291292823206088216043553557976264291221872470001371645102360722628157052353241998195287006172158333188392374494411040747606848964978143563791330131700291917763194031325208890589594810103410951201207280846255295963645378447406035318104937202254633468491312705397821484985845762756458098054011423614463512321665010301461595318861920966992761053216952269889497570652680186440545272685835814055015420283842219416824879712927849450512675229661992818813960450437808285344510534069812193886861916719918233745669320489086424956923148295607850511110536000853344503004110780933238368167698661541431437378172320124825919604945389098863429551170832286738608321503369045131272094803146013781942722825480006918777700990371899888829889477802165579214758519719416343832877376361311541577904178779549593381293676618137647355531034447416822755217471833773078117389539859397694382866018086142334334234711810191118806508942495977988663188236730792866743799376755376432257964391862530473186018373929887511177141741337387874684721181953703159502409330778747176295846327284113376955976238487654053358249142448032035159569268935743276077242313049621411203771426788576518233065320677612152697098865965718100901749181640770795436626434923258020419377231409160433388251949169397239245882161504729171674183418648651779581670043815562538304008747636304940837865325767793762999498961345294362985257643223969755810305781831936890326220758835163850875398005211304201062950233858287242592947256148420158730582427395103271619993999651127655875449491543722028610314237616534551964831112912659048858597246675379881147064986730197249954821906036574205477360341003185963176620962290957690826182509032712084662166503257656868795036503595760232640302413725028652440840248754511631874180882914876130781147049724178122694207366852293464672260845841766754438435029351920344938447277389061743703789182699229344100133884601219965668432732256737338788615431775433676005808377460840458330723717546058149020849514878864480239779620369992003505620627362694270788539787755772237690499642039309025475902702900632427327229672634587312276088604140195470032071755886387949235992786102979885904686217729668401194951575955668359724825835626105982949996390741502853410318859836720975137885065816834879330840755696217320484760468342025289785555807595270882293727207295296646568312363265810819429670289239468980285504729703898094445727416221692931293275952678510635336941851277439577657203923183674916067479107949340936656750277002225496805581710142125637089418298344564454046743100183573166845863812430883075541944965824561323580729370951092085682682785644948368505193339819216903498376982118208475616393137630965068851786124747840941322863112775677269478403568968027970704554919458154303608240529365899745592094462770597098153373491313387209519172326597682689260971615364601893725588796354604282277858934327806214876672912536935278171911125286622650872843046743581914504752768503507676878863928884418087448575454222909030220184008939018467114982375423764510943721903993421549675996852902488768068002819409165632681317176868972198778386749583998319654241756630975087742532301428662963538871698926095025406325829334965483049411592231880189979824593778465999904308972384810744195005432170383733321444995914199848618558414121299606310829181942828676417144178646341659230010934272281002053625582038762097069906276302795256608811609284723835558423471215737863447392078271388975663130095428478101860364406846512920989732833643675000667738748192866461802120896310858575285239415697797480726496607181200115084141871880491363661199421334591439192951070067010293161043537872470037120902488569307636117902889943178444942291755458935902892081895371204029549793469559291385921594716733137009303836424989334980879588823453702816388142435650353121592143037065265069916759733180774373776952400302017293876806036876934533700379216310830055042501667178927396815222736194076813418935055143676039844306634940359809669350458089240601290374655622339773719988640921518047489428329167070937441720049960952867371593926120921988657323708973664191657715358874878166143853032690837816409432239958188600983682305741627838535295591473617005757047995178367710842192496069620774025598934302412695513345044758122619728103297667368849280287644699034070864507270887648622817372446931653618573258890661569073295230971086777046896210800255265521160755895153553187098162789127939098106601612352189848537317767695057566413265839128239429854193596518759091234161195684024465907583298657109310689620706742331111736100603047845418965683763575520830148259746768727921605596830118656359039925354928465139690548982249655857860952808310536965343456089980482260628329151477078015003138822671087898054463490694344244717295657579036605212071475627780315932450696740947769690251698528065143531025234634198489846864031798543223507116422251246906130740397562579441140279251887038750581371097694183692605642593697871618857638414844987420550839560456812986091305547904712715369010272131875416556504217175403828545963123979119387424046622507022043504993582261010140582608964095233033395521606956754397521951668851030997506824408948534789714787240323717686335997152411038784296266089706278741296052798839315754350119052633297835825712195011755046682885499915764369344490389407210915851190552528658690020057854439242653567616301527534118864029800281773922497060780984668972267539029726442560634086290066662051224020919557713092679954936420547677729622272878261169076806132571952267708162627740831504374642103213462206519134866918910087608907804047878031392792780082484904910715119481978578489999835857300745649573542656140215458268532053112709946784275521988904517309394978263936219470880831116689326211605239604971336792446627875616516656250066207911553263508830954858811501956735188246942154830697359978285948880334167685680488817484401809031023867880438072786733847562555580536497471300492403221303745141797335396056704077679129880885357695534703698927856609660016986725757307894660662422548428116370648466777280358998135089844840617906535003060963070580924667007302413590668896060588286689233376657082970068393506878780438607608012709627368713254162047075805505826825743774317328387802830839547635263983945732841922798454560426241465016159462736776376209661259771788698938888040310681912302519096108477611978389227449202328045902836313466792875586333304313105208014984820823860868342095072434887200183255765696572458060991900014830006643637067433250912229767693723254001886026245399391235991904660673130645478134452419101265534950291376095644176106682178305906478683570730536934466693134567779760500634674787347358035750009551271065417698895295650850628052370130121578573547408404294882254192256569979351226743863206577489494435232637235548837084971365527364118278248369878522699560987964171753179770042731387139498399676778813383756163873060070466131885515699761869317129507575469413408212039258061871400400474345479736207372650578230200158708980229417013474062452386481483962243352098024454393911631615605985193000128809430545514414201342191997356641828319706752670701450371007053561345537884092624879448905213299614022859436848312013957086718876170916185930966936949344958642326354438635235052526220324665158488820023843915017756880688651702888800388646716612218125598937666211976507228472741219655420305464630132857425758005814746220702586556681957802023406364669175380536211124028014616672906814124557312872342959005452323339811694971951873638300371188214715007746437713107621556735569027176050521836133915334662860821027305438004592981212808512206900195049657115353186502087449527303538108568441166394205044720310346862593056481436858641406605532162059936318460473533437198288185815339907898344883941015111572241725460625967828623233455988996952026896097186814992613710113232322820775110352818757335044649780346860597810373527215466054411776443318216500417145003909309733636895732549080865217965657731780317721897843856493614007268475476836799575140613488679966164470163170828517346039890955585861039134947519991279146723700122662743746204301261658896454989687652213929350445588315738577742454366037583114108593639394551699508758057704965073232885000193613341547312392059131985898246881289609480652085708691375121200889878999556414514176367575280530461388855435336054044258407210829839176590534465691948525139959742519951503682729167532387470128270686429389029776234276129259337009494564795748445459164036981261286984978835287685181677057002780954406361112490247081199474118589113150524386629261246071394374329008657277079455972987147827484798318800998484019124966705252617933795155089599684345511006369115553045875665733371235859815775551410092276470225402915185416954397966712036416542283672936873795521996718329924556574810921116667275758705795819602913760849988297012817851458717072829400090267034887849865388621212265430871112919924791871373948992699752358744666508132897965410951211557198218492651072247845165102109260904034592082695161038357716392515830676530098079041506765750045590982012097907872367861868676029854044297337923609410217976982006630365801250120030014567681492963986286901379744241497738270253318184782513452237965452513094096387530534705341826419570429279727768485918085178682505286247329652391382675898045696088791699150763160014349776491375985424164045625180120683124112322591311172935932201280894753888958486596146217624751304863209917621433087451582505346981042407636093663551792038042855901004156692437577812109120363530422916746031658930050071563067799372829907087527693229968086803695264407866955044396373213046891037151378530118205120525536621493139458850904441419749623158345088189315719852508368441087707201838514752508569303568871057636358355698057174642377182207727135325076524000174094841625279648583248450251207240322631940933134582838228533976394788228758795022374350329671680122233840032724901751630352599228470853258288988923914035153708953527953502430184392767718158807487408706105821634981879916487943594312071733267251892831574212837530752587404202987259753489931882176939591986231791214781228185487392157545997992861576664860260566932818250870057430267120505709830427088820531357557604202893029093445854509034059934296667255707963383106231415224940650556041714194716651455487793889638018126745244307524489300534734031282233394434306118580916966261716194736099671580328466893433319919863900124349339778598552014709053303382589854004670208078879008396689009420641635215774630622887140260934879211757516637712879781227989064949465505918858172153555836984810422855837404666941222027065845411065969989890109233099255955363958390216744068133722528402941461808117549987638084393165264930935367289602543147525866270476781172222116937239187631008754885751017613962387449519100612613290466387293393024415685321552181853113488258290735759481696892324409550544044743605260909728196235464215729307870215531826585368193895080905230843283142349563995234200119088281754185219990464643336297187359701352328174655931935892548226523117675693632918972954180606866645158668157745005638074066349643467733528109464393725198245244962451820194774678750638519523218768528899587859329184427349421287371596052422724748362542251551202768777290946740521049742163571818726006171377928327024200624306947937420508129782704179404224533912894835616382531300500737321460358915476984915137795419005241277656484461135000090323732409621657020422740293893581648606366880609491981082195765829240389551817550537238925117385034887871183671119152337990125733821459298947176277033123626991843396511033949466244746541825020452114920037805402919773059530437584431722161743820835548376015698657841840775375474803253032821921148731384152172656050380723200749884911453288097524512449172447193623830371084095111017741123335060779574835796206445815476339026903261541912806187226606448261341193383944705698761413374449358047998479456654090745782884217273636680789610775380382067989135706212146242669756792590775698781574557444839972871140360647693969867435636983262737192282024325371556018762485832901910396845684450346240838423134290162995865938315258589146539632579313311457915614344284975191681481667038099772164364432744990474054165033424674123077159316872348619389732870935995506419235542859634947801148002558782073746709263661179150909050292216547896658510413931791186043570370342493094885284974382580167603116922280838762964528402029237633316302654124657197095487504969770141333539465193735667098258149652347911546134413853236452292446237208493194597680385175582454732504443699230210999769307805836349422600011220787244988432764910678276201319984521986409319285215132358704530156491709721615088624789624527125362254050504098512523243944043458217134366105545235858821061615348145539425082544754379157338608891341329721823932527101632730163448316850410028767373852966589532057771402963808457551835858760620847547315771456864673046779990123382005057170857702146118863626121987762651260573439842832765171021358499544852327733436644956793118978539751868107484280028489851368880290879277453280705215808850009896440469684857617208596191762983276110397519923311799967045433017852912355862435611730931461276047961707813582684228776446395068714706848286500232005169095113195194763534401515566757252030331139198290959056229607855327929339239037256473800742424656769534216169327493640881978773663106352441604555452834015992304935328660396508950688301372042932029946831748036252212314528941764524276983328054912131270013088759997892600654287895360444805376633768659811904796612788468087324451647092401567447708310960661029358377289815367715971379245473086510358571847429531222581208487974914648283548194936539563971888446144691978965835222304938632848767741696237999375598323966367223568918170518978290845262866147244327109486820904672635153917569817235947793400676775999942068333769998193277465171652294331930100565814149072123016248642275704788197048507903020369211374979199246941714285437324699641953685560660112540603633161294774783752745585615306248713379634894948016183835407115786237809001619899516569306413069652110147415118202932419293682603718486382965672864976368125041150742175960226643845413211979916512718052633530350931469316971108218547112600250975214035422229170474988069787012126546016460943918989689091898907251595651606729552342678249716895949046254386910304995353136636968098926634303610362364092165973707696566205658328426813672389961194822535676125587978276082429848913224431728656223741448435695941501377085632016852239082379866292367791362849259002905319464219404983307098424334913608119906428448607163290457988173711044149029127349549500796490615899467433443271403868422722896185789757592534767817740609474545333559247866253129121706918219306404585172813794979173811457953733718275106612723205823399899680347133298731084198439983787563657629854675419641896016207508490111639833735813291636574341992474510255580304626055841843103780075957586864051937436446131596951856407662328838825540783794086817634353304519800440377352402447828367102792882817138948051226344149610940130333177356472474656238494646917368567362902928388912603474805917649305689015896547267739347848688668073522370099356156807837453059746502774730227729896359291106247392260871052807840601837159938473765971169370433165586923811935521089487970585104292548813970389148686315686168956240863189579330036334347673580706605864448116473780775185179927383559010168616961478636082242920471569468263963407580149814930711027345399655227151674315506142342181409092882455218787573712113932283347368516106217578133906279899000926532260966344968505921797668172947094905906669006966493167105575750898795573857782040081709732538947112444027228839413350172451543736101141426973042914760568768818129368017534538667644823874746543933523387648317689475259164786017634425227595410131746086979699504919519216508122346129232185290957973566537116059664116499145738289913054016365718896791609119569920612952350646044926656455067388153650092012378886506632469180675812355305305056732613330143094491035981022522915445021872008181599327883990595540400723343821944959956671815432865816178295479957437940818448709120751168655163341351439765352761982693038874882803473439037251255233710680388262080413206597325768266076003491971504194837486371857930271199876120658185605713855610045526368733207506987937174608926027898480764924558191608140309876719917616234665551240175601416300473177364661690450069948377328179278754441705644459454249087865681548930879138239702186681354771377630167377935891955018258493912716800554246600717058738015278479151354477247876823301997311754138345299881466102686813887995564410282267538115181675851420198067799747678851403538741183530628706896074818525483018347285216642947673087673733692616433745571047655191838757303067659011907015720512655736297579772631472677871278010622291331134810819433875134158699379728047892382777926090276682415213801895845113678220373051529355424010188105315675330889686172238468339671926011329616791930463650647462918231669624919409669496363663657482088382207783448691612342566789912117194890063743165927963389793398620233268148997723897364652052570304317381816010972298593251360810485102301489502655627041284128074708241163307850985167492188455190420185444115215321901058473801925127446180970526435473930891788924284030668349077038604348365955992917335772213860908473142826236434653307766786438575839209424876071432630015176288141892906741225878252588800311777166273944434404833311534921330832256948156851914218242226130805705524824009167158447625674184143036180686457746797384567708167391195042256935714809309671383971757901753031232667506100132399018809438094440011296102921594144391324157968300734185883566270907968084669869236369079145701878305655882880000013087688229972016898170416293278284525114544948353992600174773551039826349187673901625423672819186562940072605913020870551251122961515654923279326578183176956910980464887814006704859321522520358871629028762791915368501550228999689038280564603568209354413230743805452001358931980235870090837469308145304003877480034255779429221066885049437407619490558571899287136943666428160032238767600412443942410956141999943728136289570660953439218125865988299831036844785473643279885628033342075214123346782503458456871963062136802471475097357799583420787740419606838112042146636068063892987167495562820976282387696291295094539536017643272574727797811445855040954194020422835280620535453952919980070160414713057585772938569469794591360914873389283705350862897648071784655074149273537938925929216044411380671596164152623831211021355658299345364432487546128612954793428510349980541908097847958762777416287674073456487176386012061897013754488772428976086605937146557660003333538510686245095832858880509137737087355200566253084424108614085596314084626851573657756812517900320297198681118201962552099391993407031160781914212075118830014874177075277499752581162339013985534250548252488338071807070977092078128432314802094833533970806723298775646625388283850126852843847412797006653659995954746295792199304382872625145488086626557373447115689395101440985908259036431532597704287875818294832981788967121720169826048438139400119028063799159860081751059483114484481285659744015002992417236279301561631986942314080631693930615896927384042730717240176034658047834459073610784334689274389141380026681305819015169680436178457441500584983076043168636420755903727461966264769030156444159852203238216858247247555951807464749451551047705706297541137748927018337650389383055471055045738268455859120258320857589102793642347697581055882914946020993030604285063028341558660234250054828247927205698431647749279098205199409095172626525393935358055707716404737673177612385579628370227641994294084784764941110907791709499724463407811000713821349714939441743800657889943950235864111977347057683272412484025136769250044448182955264774142018897386022855680491624056177761692800811584114841319145557711458134936774021314872281861265608433779795442719584903204169737402179936161129493001514236048425205871538533138998011174479533613989335112075629735955298980076210851406955542200655333566321647269717150889661506595890087885779105060783781861368400652594806206592468619642669804443984089952058604431004482729599774065857043985358370835616548418880953733099779987137739603163186893209477643357148727333326144783972769843790893305560372257698197437002356431723010566423074157230766100261086189943125607697271630720268006279992066575198697489553029292269006824297861575693828724150283268576898248820149942371016745578748293088176600838352036631290333345276260684527421994758730656086859527192146883760673150378278434711595652287140278940192057374876828579285871456456340358346049863453346256886001073959238882577127971954297045842838881625484286603917224437113936572386958331861516163840976849194306341046530520699518937836625069521732626516809299597779314553369131480142150310979123934750904925693098142815725511756012693149316691550944247663271967031801891561585263772168321455887880004298483134103415096778834743130193182071266244075435246672019717091713570819486365857577995634182959492759588070282191391190585922339104481168847059627186681842006034179901833173344303814446698217342036081962877892671791164107561607745769201747787425039943824199900822251077142286673442328890422118085884746520806352851865691049021944948109760225882518614378363186085170380479522688875131775116497763056363882988728342791251758138131204113253595800240559662762462397379674071316143650982940831840442279703175816262200108507848851839641532404057611333102827117231374055743127443010313985430744191855679687162193796076233507884583796472272598281089864533695295415702940256524924315431254490733508965162932666841965368302752094854418493367068044513876040051674186282610242128775885406724048368688842334248840714159293827212171391424383002721071000989915007677398561293318650274578210669083554213421868202969045450549899307368459835805646330214631217258035755259069109980629091805928852237844163765244908997785866918056708302549147603563370283516912078022964136405934928605883690627785976899002719042855813919620906854194851054415532615877583946013389253233936216511635951387712410618996075850138711590706540384774053122136918728930387432064177380350842078667686832464648929899766209326942849353245008332965536537424818105288922113285405854451073434470693895287712892228302309337869987094280600169131421968035359739177648147508732442715411149209158552928304421398912394916694266016769479604646256525756770492364551028152237625410068864588823965889129390398900127873211246694069308305472647784224335396660459633489185001988718085965280729442792805718946223630056014057733941579335410120182281588387631803874598677225654934100698453235182604259342658001684554540332560988200924633008512808824229861999148798719508175488902523731429783804521071732077740682462428996629918621996405457824351618722278754271618616439230187836527590565627499436849232358026111700279617075366169001432784049957909635508221926787580904882118271235483179762601291886271495725932190776927476267705102054373664149623372662980864232203475986317664870567719087311616809233066271644700070989523033701820263869766679743057277226149664878244934545844926956974006795796654344222012738907042830907897629739001626463407740547081913643980520984027486760544534698900300474700301297872839747657579181143404962965647525092727873191180524960095239007482553909351141876075533663464528229293442135388650519577204354892862784528850121784588319811670026487873490893957088983631905926898148068403516476138379274977741087641423187621721650063568810387322037308406468080799629469956007633694460389648706673957123561504666147556280777834113832796517677290610868439357600625513908116098294496484414561110070944041293859370937259406721637291989010646370070154128492181643476460435636946740051612731890629753245847372085914974301336390294703678849448272028307396170090729620898455563946145481855320588660725700817924830374001702920168092666858033664807279748088354171911772822484825833950741855527521192536129946255575712775440744312405204452748866499017934785544052586573267938592546045745480627693132087723102344323415825257430674446118926593715306716942736054631251889770310998584050563874355791474181782181955441101867950113675361262465628767502672974296613934843426027991968057405329622429759870768830552994748140639255765406063937869999732214221794849936131687760283307613457178170769924097988193527306198565651183850895631841711761319265109118291822516329882710310560475562559185034970701966036247511795308863424121737436944829804334689603462462680618410329588996783653416568457382103715017147134830569097193395549239998744991109170882700512928254439302852294353269528244105831245363580308875152564828104203218242146131816974264798875564398474252671381477110215970029393323160543734856894636580401998649557346060710900417193450459600728501180683225088313931679619968756646169308975171937922863519991646596798094010836441331882972219925642631894101626641496087037186511592871473189672633222995788249069565970599549720756697022921237188136455765975052901219146084244181991205390445919814741300002639268034576614088765062494476287734295761654534913651678751064519639003241346921893053231445277130201503123208350992775888572807500862983669685719969571658678644201272029047293477049766528102034619257662974627947724884513877723693487479591559884134730091987539861489024375116863809673969799842288325308100526296304739370499747393864250708987425493962553277309316374146392587056883793513843721027041107984875047048402316993100347831087009768814085965790973989214540798142153810801910334663341878232087354302221520983804181628127446031091538183220821287056617840472567318200187328094025109950355282044360782739266157347374392762319269280812505712409362092498533264705836993204446075033754392410214802032553199435830484873294007344088763795768486612155676624025667204428075244322701223268565416124050375398569206680354831415317464175433239698528865636060463034675539837782407199388720807215874654343500790679429164115217718999885357912960705232157642728227190429673401435088682056853017134437271490812434504604834648757723140272522586304117386205848940714818435237093508944158545130658973806874190778069052548158607707271715035227610629968704358874074503593940958731650028283045641729232472634551918733543565273054757154278039413238810836946463046500263688363146469608475983713453904808418125770170895538167533534713804448031355880710091593814491154358322281937476686398315829505297366801135533252974024220927717942707016336275412407788921331875133802326254664532438383136704982173093730259403814375329026059279244316098304716678270735585571919978453802291802988464823023116481893635255939263541403744638315887664344098610893823098319129483061823438422037659981006695259761399997712892559348057251003537418969124433615156822615616968738768807758643461614023137710279340398981955653715607943882936549310774570218056934486340956958498452315274927180655228708466145903757016073212543726793072480022739266573677188300898965215419897574148648407224475762105854103219993361569790264234859140462895292660153908366061749124554267291669420932812370572412139892359842251947267957522967303140302868311657467192828307332074031674863197756515346555318990866274807812003673268562036109422345706241762780231561784970563857699870804319452989631835395184028718238470639454063770148410464712811375375193260133877902285005971982917902608780618631024722836472544279194927350874382767024196279669979704694867835224251035805994657540160345370834224862927420293069100642841467371778964185365395209722307417979549193250146882630614221002507513388408169468418038454090360665144792381947557980987864040461474026237517478123762184102520653758145229773737647253682388529527269570204133681215419228836864157514723701274025991000372099202115276204155858494196108338862303873540571598768638486293912607722077915959753157047373955656596229865439193850740061851061257689201035307715663568134177769761950319021416016464867356698225742705773695015911374865336272687446133187036637745145818553267944696018438398811357951414451094871016576356090293127724664613760820418176911457968465320968546861245114192480219338163977856404935188922399367335530525999161666431897957954577723048582664921840137357431541586553634738112250771105184791490325597192139207976479575341572635757723565111086798097393533975347446858517958767837673642451716590505380505943631685258938378475904228357673072786155654585081249110136900715713510007316680567372067177249685598476714430509765683155798619542541734538086245239706863662060790113375656572587486651500953217799057469174187441821419839790624796865455034522509611189972018754439521160581847305794961631222160453495206540185854164247897080952634121391723572290808558833711016481431213128750575039330267161040898267079180785719232931310910464642695129229659475568240793804743697974427177730717515099759228683319821416355102891235987355362931227279771078293484943179290013843197106104419986182763149718198266528961605958919856501956017428303825341620822709652963057706853862348066031796479706350225777481243858876851115494180669932779418373289878625249690978798433655108954619222803882699719287983132231413032099511423629453524725683771796678532452968691872581974177691307921305764784741041132400089339192121388674948119998502751526799686986655499981410241930691717073894932060154320823030337247565289415226730270817611681931080767014965451619537437320971235712111840018571856259881039870277134321428743852475502170034528547218969840149673093676063683460714616937374511055358142545930880422100970996965614282185423298609803493595284118424390408713703470317413630987672279059834807223309384548577416895407610006824484816756867258405264667628765686429133327461027376066537033731355234739164440978126914468348854522133708041510119888480803789940402012652267355056353616363949261690643740264668738839811259553711984298190785671163456433028472087006727320823536159076542166015676488905540290612337356561492086916184729520188774319154136624429781487774574855107872017712318142706140242489825093469906773554440640635125350042966779065479769704397432327683908109841569195925525321825331300773395461781352160954442522625693097844870214249336952916051537495361579261465243559296971999921981446889740806575768424450008028424369084210982572147032128874396121368531396764002682717071656932166391259263167077179850965327645409466367512177572289692061528991448400039787149624238664298445230728442367044994022632711203671969381052269689263578589693887508622172416743968848131760231881402392831007247816063584883092894275716791487214414228628592044605676906051279256789988879559519686676432995433720193118949338757912623260086266708299108468370819737384445118994275648212605176176908424764106613572413699980293618446656054186438763461497968725045804986447596455645858501866102307146919453716310416134255233762342564774498593255075751431556136552972105790159945212376210697694910109376461429562481894096828699438342460555550681730655151649602975882778642204117498889433594629841069538016985951796040865100006846683463799622132344507141759361999106069163742298851159357521571175144126732561575737091999068027568122128661548336324085438678589001113169061181480229893687565627795150989295710304642247290979875153379778638309841931079763829436546443679378986067066288514244077284719592599408139589915187134908242451376165707043031695003478316000573287697249096340483749928715874846245540475789389228248540081651047841805005340902779431603051457194948266096416778129423786773673027149640181213739950124472712096910682975224395777874423561001822684867745608288138955021267975442548710498484254587730570496906340789420071573184501748249860731332582901956729957808883961077248678275101209839135444266854841445360254485519775365870359332638971732895345354314241990364673862322380247766781851514328316083071794316636263059078798386664084904152536206690003764847923233309931950506880436963046529604539549208784237781911995495165253994631659592099442775213617040904521142634837767950002834354709916627592232594794360574132366260904787542067881079908842430478518716877866405412317317842690099339957940557960389340803963367050415251973417751733795890486130501829111084757639086463605724348769001311662758508322172273975649387348421099025003499318916722354341413190497955138122710930055374434433657225005470577264775996165434677013334750572007693720777589314909363965372235256610126836746801344652439768979727015962863405848056880422062870991360068483741312249334694738492151161159866722603241565868111705043177221201712953634805705654938342662790480610126966122364372538228981914804745641295380164531461113102707300326843972464061535425585819633654196818730226424174523156289768565083999767974735699973342201843721506969589769817203625210591412459883373124004919044258361161011657089084780289617207252342198713619363441328943397654265275116626030338033456639308151764807309163536824028157634463403341307946633283416417859732641240193085929647684493519536700570217709304536113646671774820633783127077863474049371729486160693201947845845704179369941407959869313122913382965293979573225680759238310789237813248069224761620977136379968729422134033255674922162924415247576126750863197929480072179306411018724520792519306393213587785067936809525532826952189716748106401464295296990022191679072763955284937714264662321582518428313517301311938586337597935593476324486990116191490662976556402408116449040464721187403373950139351513970575285171503834019302260074480625177114267693275656572187249777505501093752858933440840277722075237318993225153946258925991116850121199440805151531491262286692491640745977586311330192383707937082935754589708104422045629049152786575632999764561156444006876516796243542731858653812688733204310581275962334239024211326067060960910552842712642044009249080998176146918361215508740121198634763783545435085061006117860706806799355248873270929196449814382707550938034371050554013806559119313793648037942768248982611263966468992195311349467175041859911206300402808570304184973643047598510382536486015045912724781225157503783982326060775820140697715381019197174941358392230370926306244623235995000310316091065585517676991221259821425904526287003602306339502572095171330748279681399219591863844443294116135463858722994468885478339850561631398657573828956954124819477482877578693036505878385662104958768102874699274539252044205245926291260601083090900417944215529406474544619750754372331006473124425740921325957031087576008420016639821067306232361161098174142010131829912665354089842624163311742595581169173125746945843832234937130285977992343721496685072244134633016535400391651392870519416547988526036749227969994157827440016458868923480014318807382940791757195084175241384694420018562763647696589398370199893148133645156037267238478516423602607670355851049907522147435572830846188498898033532460039575759074926110676139080020248196904945370555407098027431316181690954751922901612530647192143402440784799332422994121435911599016452531735020368560722536892513860554249539599481425897789359692943752784711855474496922652887942044320026906029964118676414832363371490223109000733468829592781687510757598171746014369649141683100499146656750260203208770666259781399355336112224584497267121359965848167137353296629714152752445852475456665473035307172434161178708260171623608524380908791546402273871230446519145554809661598587064038868518911846144041411362054776783239170639462049789863074576174249556633757779058455207809961215757841445730212814675907571122764881878127660175911790269116670026335133894548972946873369619866972716452334606021381970333299303136786052834292850919469669993092251116395599544478265141125322855425205229739613100250567044254309884532820150806419220522991681473115215136451155755164266226722765827413525966401522554578423749324000314915020141071531706190682900534997924136719537736371904905499773633569290147663690926570713410651296096545486650489165044553736764714856892432391976091042539700655076247032315608625493926002262293032683106197910302780467279947502139064645188428586176361187828550706529020019267885969428923271231961599982709591069040725335400369334970571772411056853941675103975594488139260896813623580882355117600801782134690908980313061919544712273796130535020838972509636950598760118042565363881179427641907012793838561248126726439928911359251549803531553252041094159552705781476331830039803189087938095568532726549253243325436642451477160195736091550257793308068051885144474264430586249202256230300676158861369068506965117829642026098245916549795785332293917657019968928612372169449752134295575940506316785217964616120648435636334063690608977562761687110019066439741382307202134617870939568496197710509905981242296873443583661504786113840754540389274267248574183794305164619481006852572345895255980006741904774859994949440464266778554028079992469726894134128875209308961450668401558844241242259093284158532391762779917880357630916697514887137265246740253972402816720980332472921730163298657136793647850235709230200273737258955522018714975664579289650867095100947006941823975475053941205973650652523239132798736518987813580551164536095325152126835539396637204621419200845362271425517669189017293107664410808349380953736018189788713975280445824684700608273108264415357068030221181688789676191058184873561765590746826332908929064664203495863459656718410602818658418223768609362482902210070988152424299576777700750328556129700341870222428502056356921297084881926003646226779850436749623964069532091611898134380040783400785115907871227740497347339073290531697340434810659722964577283433378477812760950864752060125119131660648943965283839407830815096404955700557349441889356831488735636124813737891183083773275424413789326432001862365040505582109127071958196261303542154095898289610531725615229020933911113290606994311208884606241767627367660028498107507716374701023333254844205738775497570602842974693584828939101917221932100983969602247732826680678224352185052921662244430427867656381715457005309448865872391304966241994289831258838926442562136326043774362646729765058661505050565442937345433201324983036313779022133130370437218791360841064299712608233543275206721660832775373651993740501403928849015740024576735734956600214040391346765885014912347721122394181078616520725639326878215315724794416139864215207058644617686073739816836202045162784311276018614882510521190919480067350731385020700678590120258496392462040111543409216835589050511945002163201488336403317469191490587722026156877973929549193529201516548269168202318348734159464194305066020763708495833089194322718346173537835018876158031453464047726786393110270634176062453230273921073479678616968969177868070658068985211290337974767226861809385624492578142549368672191185190888899964747416275537751597760216501106837468481059508960594772192531348061756548027044885715810547656002381556546108433783004218655706079806738477529506454340795903667762826007129522955097835366720675754916828706464463650260324949708585454578825970217675424151892701678268167931237424224932111657814090484206055405838118907091307567616342249919208007872131995994773248659498464229107032538332625703951003175739630519710002742764893861870755572748290509328543101331681087701418452390278566105353346694286191987580784527551828092197907361616662286738309426420784723639715922861786450160237261811681368451351788200312434130892841816154850839942158577800504981315450652372261755673242788517502979012524238652191041148047516351757350062506063154900960891734290000240992849346257083383795236250470581719114082524228407821268605531872031379854621435459757632168219477287861499223777139244354268138665345057934101311068677288291612546645197885577478901573975174687347197494844093351981065713473360204578911972408477654504872457092927131708153531680063271390639623060659801924198378889366879972398295281845716330639861830275205519664004975908049266295731681665757836660023282983582272198251237763730292989306980324562420662330735502832102490533697043527362757532470071766049516884946279576265587811542811580420860684231795874441365326056685822442921054958763426694543007873428148154750863696454178683799839217874337571489238020012000954028427416882921151460106998356314338883325160981425111558848683527864879974220799630718974370809317952475469755191047178297277561018884908295911245148985726639114684510743639314786827317280837136682270319623484207018331190096731687325943247870261936925433857166967554798274475067381848273156492083494483141309490040219326515085710338321138077439862620887701546891292912323354237989411675516575541366608833078662885854641614190382621585199408145784980255132519307183383392467165474270667269792087985837343186660706306593928341129354685894663448583390704952027518238028920512723263468948888281957545697215387485050058469240388776163818800897666305855644759988690892082631025277670209655674705346898242145234902910780999699454143547349468397620618455183707148075528973077015515665204726916419859842961596700653973272303983538314628236951234626506340891857883495619022006652272336859413174678681946519237775047464576050144515686304382805344639925633792445069223212487657140922127591019564178778197143942136187666590532091511924977979663861102493003671300663986916325826035412991675101316567004721402076112759311267082380315285659300980166684006381584940339567637030747841029091422337534413536957466131786250182867101338748529090301964269898321693047092498552642970550550493472031103221200074389903016098606666081832595055641326440145362544957432689574193330097888334402383272634786357560335646711894710708581061414177617099594715025915796567267836069201339579801127155242590155570091371814266216407953791087467105258464221387861291215878227561123973596567124377253593254771002173812742995123557665071935288744736809240024836731225082868621503959796552787374619440462544939739624280863596823252425435428959934698936972605896870685982491634957456522101284248407380002750373780888362796299108642943151085521583524757977987284377012732557518396124620484938733720464217844644805769534001781272200371198889947854683677533299961104780047341714216281244529664397436823144985250640654353604005928485124673437226159776201522587296354656885625103441967390152804080676625213155625041829617628687361087301836859539432569361952255551684599436802720666934506829818433678847399579847431663311662441839961779344005384872639836839054793383582611381819857902790062147977981561262836124825905517738259969575374415219578774371876494555742362540075156742663147216792593537968283012960570917383716687552268726774158703774794447937086977368723475774099751273327072327629254635063367452404629048155435931257328142523083456081510858470665805945294756437968084742678819864943144796984139841361365982620339806391410118340356925910718032342016425000492634711475497724005244234333892414174497203796483590870114864683355745114842665958596659175218313457459262976465394098083439345474864111365904918520833668737464079711596487333475566890891324149094272761699939813087676332069656407771608412601779009358997394562146527815371919251626887243752037454383656580406689267980902603957774010692285935643616542909786722571506369441194732611948985206052475322879398773199841487112797730846122331375717931171580344292031013614327898151086674658047817612710175388902082443519011018433415549221035019940943349421828810874284804233109643530219604267192355563438304943421251371262160790703974851748023586536258615032541312238023158973842084315805546283892056596701243899295854288283912227488209674961714694134072668900935771168389844513066599471099264459463769253164386390031219318694073212385458195152192040748561539675391767035369677883694548811830136370824778227417195882482858897718321271730589182711886885184173309909122851524678474302044005888722867368418052689123116941814673285823588075707080826748394932555825011603127440140687516403726451262464838586753949286254898683336594990290243151315447269257876495401284249124668227860944576101620434706501251505816561563554205549557484955180436009227820240124822541291778915258712983127537640312432699417096497134622265295712086634731357695919159369091504997667211679213582889833795908898709982285253682819941120983614970834500109736500562234178483854715709814282155285116723248982104758259237116510792145336309473469293528441222901284564506755004770795981304622051014564913583540004125563744684596966634667043813032751219055461951196122726916446831627955520258902437135467487075143303416113371955912123742602652501642592983763947004775676751609916107123205722770146567285922575508272717919156777946061389014536069468952786338872055932634115530942433667091720654436262788448973136431736474215210540846209701729088894444598118777708927911876576191747010149401015484884226949664987030628509718744734859857602729196039676096677514062877298883590691847308320324293540783110911551595009891477014829574273153048466430228710194106422077010056006935344594075779921991570467151496142426097215492903135632427762602098775515894308076567710501269059746427488903460424403428084575393614728588085482262076446794521024484294530660403734790469388781523444733885665354292788262805998388898852160719165510945636862075523885195129337833552523736782215314193971328625321199008158906133480077170284615268673338487492288856668417238630564225004914737804706126891522515341968698911999069160127411689249072639087322953534623053955286721506591885990103799298325588786670655434398793312974278249437430107558003624020025831317618471283779918199952634583818983529409574039488231521038886503132624487254040486436218772897198107582111289620529456135576156388900139572066702172439919277428116230407330474592049435893448688189655281633312686647751419253597279333301174575280503960912895065000651767335653261353783606035067126543924036686501377569535177707442788701505436521847708640355261114508404624677586105193173174752794958076756733731083807158986820702499541496526725592075842342621268736544010528969819391507729319326998677680954518739614430946261016138778064581185268144049506636937889542626989294248925020201744225370773510325809382905648474438004472773486396578738122147601987729892572472934228476808623378866217096132450195944645228923758340607490074803060176931229767397385967271408038823830657676127638653676199604200335824497673297288132865435382713316034900082915892850782335442525485268258506698762400721064522762164905036741068343560565470896855043232843879207805065019680883380106553796686460474439767482630431140475079136587309237578489223916204543030697719017682031642320295442367529453090928547167487900976537088931405578606517272235591282644735226279975183876045126041579559341225868083745504288978218965151632925793621801665863765790984120382597961974126368039482336357256009813996077495564402919151107625321926731020957661507118311347436356396604524417463577702633596309793878857852611439008670777353802202165775150763940695055821914738240349026500107951132172704151373209737795349721074163241372549043294129943428027471158180616522148557678824073778044895634405695859176082852285052095001772322445456636110672379797804231315843076984541075563336031816504897788059843003249763689277551278861748945075569231710328045068799073541186759944942921078311047100038710976929172704425263370082054436839263160486765586113620689743224857302837963626190340149311211600753184297364809929334797466712575888290621925039709636107651132920652786475972090699441886880198105892418351072270434874379671267554894344777465461213530878377765610155763543707298471700697695745416704309729637738222565263299727634141773679837190074578632886126213993435381617962646472812875975705782146528060386684827974582988121693394292162346588606803489518702813387672443275757755419082019709071196254107140137663144308723304547741436904752940580080084914894739941560324161564928950936971181099973836259929499027749946967622064436735061722828722427621942358111780952577344007181877013097560006400881523324356072159824734773397300622882906039587490637330525540352262804229488868386110344062600216651174619975910425752086084272781625865872804195611895082970671526373896096162637387860324185483820294342183914887447957475348129729955990935515544791187779719265120811134468892440019555011528825924186650875851328608825042549888790034316885897194494208194762683542880655209074171478086666057609915031050793814185401428042989362084271817823705165388197861550901779566415442530242710523415186533079224657349002297006649074263972707850786234795320125267559218613160624287141518945813892865192347005497756147576257075120775096884263880986785008926230645074331078346436220816774129375411209748948581808325082815780426169669934174657259026542168946015779191216481111729314008146471385559438301561079095441675836614402999358993953802869986453732046011217691236742531163899552495357578825732320726086131365450847166145918138016191543198275920106571942337098600675913010752273503053547317301872972018750924742859573729597014382081255809298548057821714525066777718503476185621851232225460167948416552458116750052797420807984031273785598974917079944603197737972686504779922171874224671452353726702890382491499143899367639799718002751460944855701516367239613493222666637427030931520180035739672935260234213974175120935481843780907029274852730923292771764207220720201689844634657698474181569783519891076831703531878836182433200088880140044654760604511775731807899152297920961707941488450833730823765856158434760596356773875137254671576021723457414052943667644684774571143366293494212771087281327514222213797650908159109895802433925314649815800879651440177465702426167994856103256921709747311107518667754909725412808973779961003327942245017503802109805253502028577374753804736599462865271010380185626693883530024386142852000836047279664670558462168505936650422434694839570040332308943663811971738497596768681180246912907741592988484391161573887945589111430507860236477017815267390037894101108499213695436240656408871240657104426840996178574592764145994446749620672420223248694080374952825003933104883411582532188200494518982883027302330424813149583559768631213459996531599130058740468296721664423121793029615306257502150841731970922135055512829369586494701397735285560348944828699368066527918227085571836032259503308717261465619038196128539793674602546759642911327342887843205907923702290981383533298120723610248565707997985526834451956067786511358516624804898589181060251283189662434896213086855997452379917504161982246948477958390747303971954629657143577217411681249969447289145765905882102007506159616982376445310023540363131936857265887439514770034438937493051002252874274288908930999828152191762847480779413328530403628942950941589598719655203352884476584439028789636035194482829124048416401963952283676678997200289910082195304822782038697581968950970904047426920297920754726358707557194244334004640314197482671566720485718628430389535092056217071269372777382685171720454469742513939263136057341219072172748082912811547483583400990651270224025092005217851854741789096248821610771537146171135222635945076907851726475498782641487720095882356157407391881107948033709886886743294478234126535653121815299625994479948746702195140241263083496268124583356783764234889863385987813491464186634153013827892127652710020865721968023229152615743766820411102237060934711207813112131856302442125690906075421482779341181312397420390790435891828526001626044292061868686444343367020804835078325884261559845939133737980457070676705829621946400766295543874360054453053768786788494655769312281106343213681601050450512829240276876614222303593184102828336785321729416929317690042558740477652082844396327649473459016745106364637358386092030329038075540964329739688302677043633199633464780188363395115341382371654581611287411152916440102964297127056154081342633747854495605889105684927803373786939607086929292871819461073993855172760378105976752589221897064374701456788477855942351587664484383985655651162451465343154383214156987642804653304352700468300285674379495663823578501289790406348307972049831356403287837918892589269777181737604697545610444899332564222310819886238337576774511517682866936875683727806906277782494175789241687071980983210952443938535562370381106472614892814223519679439771027650822584352448253621060963759167642458310630961599782612056684959200445856777074589431364335467157725364578183413823717653669083405283782546904294923740021010470761256781765583294402404388804204918379518149956173503392271670933244322618952316705420302693576541508037031380999314125259119802741640849281288062679375666017381715614797155019164214547067309851166456981496150543721298242177798900484953977480599078348921582240549670312410043992424217353964603958569448699752181233095044793922040292563990654397086100418984664684337822733903266156097213408406534363990888725238184766344148308117821798497829228164290696805398494914714436218052318749996147527955941879033929062890463689614452016645319795114217899382386224983241981525840245587179421435237221685598818881750022779254023454516344282658325315790965474438552667201055135092521710289918628902754954978437407533651697302539206476276104141712154074204227161860467790063430130243403078685881584652359333091961665212711975435779578288217626310760211615807234852580462157012723269270230601352990414943204078197042066057225990579378452668098437950965172949017468037899281987572791414086418855908546915921653193941977811009319294279954840810778604109120033395704109499055779340786963004778480325494891954841487891795952220645690830086274814477807376017468113568669360365132182507680154629917326173635815968252678797900514531293077978970554375495897238055360580437101651871062270927522011069297301368992457762018719694930252194058046561663973791180048725527977970139763425404513614463348574923849866888745770842603581598822943770634311357074605842248948115504387551239066919628767790255188000649856101301941113249904891883875672133239115396725948612366771203990710549449322842471336736970576468530927125948608480768375704057885462143157784376232678174259060576246752549118007694445675990704610804039437143462969089617862143198394386629302217249468265539266509474954976628004698450756915869134441887191507366919930935143670831540269161512191131270093422619687927757647640600763652143176447989081022614226601495474269191409510812852031148150443804282019479538691271210045989855809876291060513196853761369112032328977696010316387450355192211817193831799167619965362889923803087187535850491540986630177786570062957253086394748062882653171091998363346707970220594720655161416342589771840219572336786301153764162764717437285661595706258355155404550232301426968850222882126890086018818039396310497750829875289060519904797345229141601292682089234311481560116637045213863038605958385128738458546592460575655030588045394642662037827094792844753982739420552804051582540435058062426017486406740331938857902641549732853677203560801641966617616254148299008788227742618816125340058471982541367494961333090318968205480615177815851575658102713920460166250957617945256500115585741361755455902502832254101187941750686029009108481022653770254154955911653239563512655327567410164573096194626333776055068664244500780015404935182069125377756920502749554722244101903013908833963970618460605455799622544614403057417586285886736324859124652128713250830841696786006038482111540994945801996998378208517867853155969273163835772488324667594242629751589158705607481197470724560083315212973748637706339355546864547422295538080194898552514737228754455187760346190214302486796288886339837229695476552824740212762203322698214314623004416147701110603470159686669453222964875528592336925737143273231706137185712878527577807221730657068143786639134344643378529010142423254354843361589823839747726975292399987189728776840068523706206569453076955200112066101525250016708126758971043960958069325771045093322111885038083409952897674507634125688911256122471356001290973525468180617980299968122280437887088018453767408918496635364855937441330241044872517854555473199438916295104146184658656101665133953309524668135714870458125504686682049280051146458855620239179862414594478992210777419325199707702919137835471513211367584228312927160832431509421755888915720679589526260060771366675728803116850399134145203389910829678324494704674089945420801099206767729288598871899620046232642717982815332669854806287941020447112677014735663342516326629009025258713208891249689948101600803600648755986908399668219850618230442998276735762465083071267565031120303351253912593994644466266734708984260631527647572814154099327363434794946438658021159014254929445783104565300102534568768266085343860160167798245759325472438537946177804673994057168261472152865991749355888683320235715719103656885101846501416438395839396906877385061506389319068831369923443381713179404145959554480798628286591598326412781996414771292663952291210299753809348565646846967426830460758988944605253094783633350241091816318559651408015888699974957312369607134225140647797363181680230544530899111243164020107545595203808702577620038566396563579215563211470749580474631925709550505710290994116506675447550009573067877007485074620497232278629913113778934064382239171671510766072147160694004171622512444027663952927120768350883682110471417117875488041920476515167041616105377748945223833629001967706978006388932946184122782494972357542660550324790356675646826246487916401688180601992086868828914484656338549583335429744071369905225302397730697831762054063283734210173220863482084912380837581583331767872925704074518902216164986508035073872262890475941592958963039221027764887133904521238489765582188063724129231948458110492910821659573010720874936063094564065109518557896839676870377408238107411806084551336211113343242685272037711635871396771138021080147597586630245238175356649116418904217977500021913585478009648531759405937887589019184475608340606190053760679778465279729242830642261331983636445685881297449915961876099348730835059877420458436517384649413417924730359802737847575929262277838550652467282110573406975680676542309955701845488959073758301961796170480545565991014099049765137941276630717225656729683038456762852148543112810172825495801591966482077869030981326631344318537202579700713989085550068577474542280593890576679181828782284922223164116599203222977449557050601438056913200337322228188601241931911055470379084198481130432533713596460640397549220421782292907683048869785466244606784797284734470034713547899744244877036302584658007420595258905369584758479129262111400972790702309478817139041739832215513170886642649908655887761104123358037724157121861854537197301513621654763001273641803323714564135608242873883283016737619557131099480809981122181732770535544875404542162254214880344631235943450940682298661322278444702036223704125580663675431297610429930491025483761508571635377215927975919893817718971803730968553699212226768586435390116330527359998154481780873608712807870757724881432864025937235106308303467918046171324733972063220152774751509849139088784235725872952590623459903460810797784022597258311515307690007625438536900123287087779543899596076084862802959032715477598000668806662928187832693878473660066618805457386881021209509650000819143256922406080852507059066670909199834051042229257633107703434869387343669754130747634485565758354756927738807357640256499795274786366063986455182446253009048673468405954874164336840331047119865793536058386507015180280378472391908060978624197161173129279109468491608909980003525057016305072870068772189614828367113061020496682622520737536778420492471291886088917426362016002381277789890766573508584176612522559831813267048998209541063408141071750514141665844953896855431214930303249725733131819567575729723548626294079992578470849968298643111883240031388591734788378132824756276146299079998022553816927543214226862073750518140273000980182463145235530557758820198102927873286941056417915856140600700775706785849245932763284751665473681306444358201948499028402965227700981102009840094157160131356076862345055521200970001531035782539938294627780435360572690460555315545849516839287315820178644982453194894931048400718321617080912804348688041147565321070639363199819905873760662642116113969344241817807800214861253859331843426492059020054712846601071584429219021154218369306953012797454755766169597684423122960984937558728773694145336861294094632100072892291525748824307319230370490723084909020107470583883199648984287003655836403473001821199650481562649910030877656970638219466168972370715410556724278126950024039972837362897798056925879960610481798385685175439339176871890629425786033107995379727051931845818542499246095790912135674247512827437611824272517871685430742948904181813233582777663848600166566204254383913186413112491449302201205180415171940409178660397447716408276710590298469008344277607377975653608194828272935202159363978835279333129929118744550849246021598419047541640401118697333244054617967254775502497871121802845396324820085662040643806150052097422884260526843720185196280068876669056794690433090560088060820505433585489429856474103992039933026646090988135330661561894627974265240432596062586584921588271505718230842629614344920843701703337945887177642669405354687777347050318409991463306467905048725786834122734788184514373709014509437006695075667678936118172728874379645113485413754064527685282928616831507214350615840167661489303465675118535528993136180455011377031372846729813118082082358552907527012216256869919886145726691640371874197153485772734135622853196379087491010276747112921524982211529254205671259548755617325166772157643156073682348491295597369539606907920186566853309599577001455276135822786312667643950183852699652469107544454870883465358520110750727632983050449317806227436055899107153603774837371088621895899137784808887977780470451383182939533331614240523418403670077880917978827588216160544108020132274160420196728221732897366056000053302126760102078841588129564003534836631170861610715530597948595443674706259536738894694941870620783366292035365672279356133127941977939527162522003409580053520983421492913593597374390743798451682075260357246443730567427516103468211003030634789189232473198609762655302294769641228472452317391699897543522902697462986588992033820901328341848496747876871533207958088126051084428189457517172286868546134172481425510340007918804287631062168379028681374833280717995784341557756565572516161308182236042898477657867830174652235116203635301547473784939956044467544673784775327419819147341390583534440607495851803336508115063392308266422152220414835565745292540628633900481767171284680796356229265733048358312634164168918782930006444319000541628845617075151122391127177296243163783588428336753916248469981689252439974946609304911703815652795402944655789788940663299591652669783438909197034000943458497586339685719126124727302813535526358901233737264281119791241528393486365955622067120319476771284764651028178422596459979762149229557452161488185652272955276795842990229400091082440159728897862766229718934901343834740042046192040464586296722665822186920385532597749306293723533516957462272203885793047503425495012656059042024981669746172943503061308465434691852738673204393202556561517235956071977452695005045692757184523883015828929973939606170548053838707437120633529091305172844241580142841803051118394057601239443066197099651145032205729615907879007210111014256072305707835125374959213100442664115388328707051225778172395755793888382453587227724724692044459423196024928318629448552300678156600735098848518642170268638939641596759526795227898832422309059969149164410365021109574167504030780632978834973085521916002699428103382149190723089347312126183710748419026799308460321159034934358238504361769406571590280303047134723195955655935627123673809416605003410211458539673904732320977918331562355108205086683582478024244911372048382187545205713955020680756002533355706219324857349638071104812196399414785849799695970933852275269876978979515203857198933859592487860183414855469446437484987385145044693853601433187556362681919107417050305028026426681373356430789202059359071058958401212489710962157159040495511211422495613310022127564912561724734153688694294561763231121737017429594620323740992719745881904921559660067411838614008848099288700008721192574910546999799230425534571210961763511291612371975683559273255488493252193610194373476347746245704072497645586164030223349996550753174509897299531670978980924263527972406416890458020801217841239803767980249422076047014901763740172676544002147350353532581676115169126113202750340899815719153412568681826659621046958688750221732295050213259900216877247295262056820758574521566270718154314291028298928513236153080683189186724741500744184368512422188742553361213311223882056631592698549242891238555557385126317008037217355282560872796752890492134669810065896292013079192459530029417435460788011392393440956368812438810753859839852522228524844834586341424317011376451580569123058539627923844496720150812415362716593250094483361500885066838317679740391212549325794834536453328786548987621464393752684148006036113298048459105412023821520770882314554854365262145859122705023775476120699080417244939193057651232060757548378291983497325959928589488322424232994239052730168470460609079349492922732839246257858907204060208560424379946033012361478834577340471674706865126704432471912867351773336634772879845257072797761162315291653499329891244543387740075638706946673481023601252950552466777640998727686387426645851076353924997026707432991685209897016995036300446978188459029661360484241895896979378287735075119632185307765704729644507717904370521349273435869032745636267138333377526021105448171028891866258338305247644340328786442714834448600771628206783982643946194105500467924846612381430818675893851219004752574968832157044221000567847285508830725820308116379840465235594910190975441902948673342238550995642848238101460773795858510962208889010020922719483887307419874104754248411075326930211925911248062262942475935435168081622135059198099660305264689810057596297859070322462641556357827263327384009295704244122643293403988518162326606056490459192697734027013042726265194106913869122145861980262007029323907799983894844042069222073738682306649843264608182041958628446498428671560685464761534459612619609864172414353332435806616854438574352532074132545037138778988409475665116333320276560100048211619797887491271875830872798252688217725169504100909914670050626531177560696842227659185526429847444814407860498318469158135249998570112081869077186616598056560765556093557659919547771317693969330511010973370870646617242528718143375450524470288072769120321156312690549058582487318729593660809348444988047696244601259927563460201275881879822263422850303411474574968410068553951974415439766068772492257464380661910968707679667903427388887161512532708708180642389024571767052920991096906600065385991529649393709013723937696397132250293532549933512907798854562777396918331101054960224855601999822498422119781226863285592789052537186509072232790527918792432839176175400224889504312436291785379502683471008986159323493975523759632714915140033675080842733459126073139473587678175432730443234833091144179816414051406753124153394240139120579499831231226569194594585847754458025316804314130246686586128271357284078366745009254962516805003084801423230456854459132312019434082520768070744130930186217190629474418697237723649352314062145548260785621010450589484556135298367862898439149068199623004213261554854605226490108213840476249072640112098060292299085663265071300099035221034197163306827443754955444080411808246274377760383320688207914350913147261264164471077399791123156441811830380666962482195563100179265100816848087106092496641829997612719767075478640060329339656100759122486276037363253004465526274227520260273043106017369978413672863450943460052606733440286826562486623300817519395758181075327224943546951337957904923674862135551859548607833902058038674764669781273084468203296149861720937648388172579198213507400884222053398867171524482540067721263604366580712933487346140016435972706063841126925304500297355866637382664637376244562335109884787276666568573764402934687422742826871674503525864869475625702894079909666857107477486571645373134262575089469893033720148926502390223452446054839735124249474905159465978803739027762339365594786299489572419362673267831755127924330350647907250746066589820460986847959090597826276087123353811064162546226917628565330434708928389631894912871914797538103829164430105057735943687290470798608097914198741750465668048113416320397540293129956318642280808971124927658168525246480676594992905265932130535071026371006621744665043863815815521028389599201238480679848182537653580374112809498021521381230744119480535559876056687528246726521476409450145625379270599292816777779794758290253169754335102641378461476355879665214851538166208171534791180663604447794161548977244045190106123091472081910361909243640395656967962235191551911817319677344582047286770957713902631364743845912182219120350866231007738160530577225567826457099065625599176110960071179119447644956171385051118772005624689354538534061353744004614187752094882026701619129760404511902231356563542223276634539946021363487076319340505984508986341380444211485374735854387643900456842006380897775021435480929578538030026741663532577722951751289008523941083649014639535243159828278089904494325493951651764050515623275187518024078574794599626202022862759943217673318569987399480503794687654814331310642505747653209076314068372297881182960366907986634545963067381660007448156638199235825262269103427277466126291267846903736591305611963484476663379402819243095321690507841678500187901745314808102638071801411177405799563433751001438579148298766460309468204789225903407849950877428885676981549440544024659374580219363557691985220261309000051916200410626579059131257201665573131702587897794592121990673435176865454712036321372101742854606245264256061103666682383592116673333559269501251216515328282833405052805917590948458943512177930544428261005922192912276473905171730475311690526732218640631000406185532037870486036390491565999428671738759424839468203537095779136641098785288580924073614660631889183259852424511696222405993036842773694995146690163098770237390159510878398474117638424315575632492516952155599729739287624677713470323654505842527968222331075536690285237675648364807992300082867256075356099347205253027782608245201126573606516828793842315440218357816335289403251672796849605028672594282349575120007719473372060785044111144197199019881791148225642891367173337807637676623988605785192751929095099886540037496351798869801746630966879701456286741078245085178388504647408768585233283421141551947643063684860655796834472272737125719346489812041548223201247525681536340040728406618820784092265413498786014066930781251131058189992677348887916705956429057440621696919718249653037579776053378058648425271122521916798932795573758501633774959209131648524008954860835381963356905343759462594091294117317927767360059222077551731106228063970881472999781782125227292441439221993065434656085465670880745929157351764749807821880026150945408807376102657214679083290007463402120725203925255338410120284131630066646927430259487909755125681816654732943552834866682255235401949068106643381094087439959171621829213129801308964407653707058389372500688079318097321813682096958813305696404865198835042130751090072479283374724975656769172678050572807127733206320125991511628502362428303664078111969702627638268993733956568173711697917290898752947401747249171639767332696074937182582809733977875009018141360556189555972189509844073772217090243534481185425454389867193901764383319312189855746118124590549777082110286279094262957137511919883428441022427846549985690218794448643725198508920772481950634144967960431206972875481966026814074190986185972173251396332235421049465979588726620156785554580234776405212770895641785138999716166925956632260690946600850451711926776758598713799049664513045237495931763326595591898715239249417522640250064630556422134625064506423333891277183927673370866261975025608115164456185394651980013123528264793580595402900801075804112830114281116898505720608467900221756725153734377200557352155687175560209023658255682990544662230721836437962799798812682800262971296113573533803255671152230039739322669572499245221698960187149480123596874201113256602599419476771786786770080726524441022592825067971274465439185353033923967756740683941941551390932989621268338051557748022583751453150403459962476241045876557221104342542286722408311700420290396562798121336071351337458563910713242150630674756838217322920876112048962649894924346060766540138340667947613695772382681814023257948923360665120193668960920708361099603602173678597865257649920608470333901841882431975417536066830383144982406700468906281665988215991520190621989099173137526307975737854525483399856089882208801225220441294441589384694598987833080453312374420134642327812207765867309457896391269615491766345785544425377299371854284847285300124080528119586453970585989507825640530983953787646776191470567573267652009083917902457145446022991016762059498386983372682729472469408858535782147395847069104923772863339230553085470345976683928627659863024993327304575458013000383815116406037544617660632612657980767950357466461170557413857555447866127657452863878000616083031200074619468495972480893640396563534273648876875692609371137018621799411428422128747905913940679241410800808007007270239393112542272156538132814526000452484497306031424673565735759558312322053349551678480418411139323519798733067605870987633349449771356265489274086641117862307654215911129515840677628132613559337775246002394025822532550671204936534852124846739269615386226439975355626821602281338616544678636656033772105238081344278740263520043390250351981003956402624324140533437313118285811981589816865380068836222321237648620862292095058583857017906790441591135769520877338597726353674708950513744455689399358222419277107713638621170720239076536640157955191793784136065637687901295639702672822000064434105198458860926656388686176557017154496866092089634663923164196715483707139114604941590804982180052949786668504055669317056480838541906771016877123527650682920878272037559257715596756089722391218266341105724241940926690436873901030770629197383151436939642705085707647098809410941366529436904532038546414041482511889038432559522674456296454264419665129077188790245702256364015928107855229769248087492034323292973703735397796171605339733179335225578578957179206839218260782151070338194337719096956312999580056546785752009228255635775416041126301225343978882613126949135255076302458868549568940617200291021617108032065482696803872574089463660789460264810142256659962537782707894733051027671964445283882063715248537843434885221633954547973556205695239968572618538513415150814661632751831992928559052069786260129422370011578021239976128563137819536418189063590833934604159408297423147490601414666755971345575250857751113257086413244796017886645685595558479104817798807237718077962668311619135062171732246449311713493274592233395376534312400277070248345075023211988191105876387939255365037382425190678745977347010505576020067117041836018677423073177457818137883222836242776097448925104290533339396729482672404358949614770671422353869071898023322028759254030362917806366983526396829578259159216227210086383348325858160181221116716746327300906057163685790520563610736505404439982779945963472485993336440331237427409252883956950123459793414616369697085790784861186643949320385184758201112885318678991072836236600519910938360876568359860952333740832728805409434198357126480271346512370065521043562594289956135457585324310850923192859145065264054473338042143823691287198281682682286287745613682104922650561489239424515453821490111636907481151888779402063572370338061706001138629209369961346544154596084701484605489871949800927057950365275267278181123571362243959330377569170665542549871463060919178445941445557136151271651068157420524940316490861030371600270919929090815016079878540342025575121687634232914554183532741106760006422612382855766836030864720809312194211028872609469140252073316823194471284739380017450131454852380027101485165730783905590388364957040350476179068997036933958592007184484176890947659081307779034116217002099513914378722310742177111215869551410262969975888287546891599944670871178188637209804005299933494704610069192378298480855762053844962988126375576843825641679730880732495050569537704676349754044604814585879146530982961806166121292170463813738851446495760340875072012728010329375944591129145512796952702543631597543166235657430324820863917127955325552967816581122955638030517315048772216546312300807997543475010605077931946462744902763771278607201015337937885276624203266692061320718236911231374358796110070778320245469131438473854677319670097124142901946148272534295129710406684319762938682055328368488282874876945262315409290773219224884367431263966747777877245833227393757628049692986206041952553719885842963009650436260935696814560197333697047104914652039442554711436283585745126026109602335005742835858492106583419832251766239248746381675495659404311341446112474294493884155435289820796301755496638467328680315715381778850421962444545228999667683680794787502832526563619933868737549719493090926174902184199928928917262446058436404067927234003774400314864292802607726197641986647492539618917203946034972230849985435207223708586397836993935524313623783504223623118166718239564269030531043531734487244503699433433122559037206812871542514183055918826304987776804494266018156234698571523038067786411553035824785679017970252021971511528794701449596067549432108574440306169831202725961938731346661611898775142767924709052501244371926962341145455993335418826520121230529911088835792648227723437999301488426635620509323401735877328118655763502582838065188119291139668751100636518014098942838291950068066152864674895574497785815822954556079475739888610456537140851013713031363749329260465239804216935314984654575757839542610986023515395782943849270286766151513017714741082138751763903558001545994782689261311412914372487145927214125072372169559617172336540525693387951372283444504820614912725338595761109985461350350827725642236725838887476141945655484126529019457461617221761165122786451014605998267318540941290379595175547719882295722152270617614660627451147986772035666431844654337231303303076686846334910130072177476000484669631266480400959045493302485933973003463996958639085371245554372939697654268009903311799095086390150606328745811194498890013946885930958757682721269469418339055828413341156600241723144477633366689255245598711698058222588509917750404795993220514534878504631319142584604537840185180911869278188426972127006221843045881009841325364751210761370976262764428693503415973473464186555853484100417013181588050961087542561253715144872720582511641799351446676009321363171711295217619437745025678548368587959263073103172310656404435361003576731020498524754499980557693046878647497175626562762099692314518492327214970507580109419137650626496935502243091696121033739259131100820538751113470968896858834977325790307297096180600694340937591719797362576437292106824716139073609502137056305507157734076722406828151003428268632026526172188507887053381201468446580273121523002342247960207885566491784365501066020860817474979327228434308527618529017671564384298829100475318782056124552532805013299477800390483330935259536379903127674745726079536527899221878748224830077836207163708920498375970627926525907693780615887024590431885496001285457363061811192099893354334763798565764952804346715450478039814853547772873039070250408307429151878279734693625770901335697038804707454697185836322164104747907979273075529643196803225689217483341621689124424769239017538582131448487719770244156084842427989807245715841939593976418174128881055075948426631779053560260089332029878087772537455069797436851788347250804401852851302727777758811537647515401505951631555778965971831538076166079068132068901422569617161394458374593739416784507510743755930552193897300187904770037771559062975644891206951098358787952760580352757447360688451154180033730828565221963505305484223821053117905468496564887836669594646564513018543310607326024947741864131278465100444513114493039215598221331998248741903411668546631432676177457419578278834283898804690234586579454064444191934376906611189894065721314142854992471525615124917600569346787787113988983237843834292854409033599300807331864865262345406352510088987257805905545225925854960463765058178813295756061307594367751266688014697128814387526839816232393490833385808857187419368781031960265767614748408187056611266320845989234307399550424145093857955150678545389446759246342324172509911553888031988211680782440235838715100511479380636812681176399292099527609170983983824115225474703281614809543705111126321209568515503748743543439591793856709845197829948813994787144898824488677470211032066457512484490180244633659355975559780174915632046865792061403289642698719808650198188682815490582277339407311725991308288863881779177763112681733152949639918492655122441586179793002738721096491928819946220856028038743288576981755412641985015777900156519202034409766539775628639721672134723615814575890177364796693771170194028562030439337127867505696192365310133621450527586889236070194359939919385559198885088423099669932699476279418034407267315630819521920187658158527039921260377049283569258396595157323339237936690491980704459679614483567913513475439592613320055428808009198403883483434778338749573609900404181494697156340151164491027385475759031641726056113630514178294173720512320038464832424865286633206944753727854134890560922856305396505980723196231682986154938257694622064022635457341767726593745103841265368732864226334105250122714114884559617726861461522988691155965367576517253588149790599419339785215787154521467161574958720360564835038500800543328227713453391383131848299861463703672336735843906555918069116691596515792389241912710529102070499737563109085133948350694284371980154360249268189929578717519610433402682545302972936108046519149698970540364661245021860278310257409833880293854280663883919974603348895731777974475163730542939595814741776342627340796943224566836699726449000335588370096840769399977865734309268603954344500104082780711259486688684017917970666084218278891947312624824465997219584219880959111677510168474452273040879783540417653915920356303915528998977477998481298147808789819976600134994392833680435808100698152643136911019493314720648889108892280462198879942467670364430330532072558208569294505260269376376178340411644672031591800062897048944477305027790962785536076292607052896589319023666710422758485608619691057659393838250535475000084995068096220640993694812332135898965066301326524556460392790630628453722824457760048767818821910801792979453093842551500187476504025466635883589737144274511068013742241204767731438475693475714859842576952829905530515181603912779058417071014741107962952727316661144549020650155926290190017670987486443130177850508445847712905101974506126042754078742954586834530039308277079835203060034055971733115322261941580409573394664053942432879891310919384845284700199598915035105313881800191656484686720242182045387486728704594067793495980831617781629803624816450863269724954985177890075673026285767905827608468544613284323851580730943958879525741981750158182462135349070067220542028112029507131817661843053488127134046710368247743995433141338249758866858483287504758699065219511249740120295208869944378218981586225614367160216168316268736817040501091370289471912977145957251025216872842275183294758573248973506147211736529366477705419077603912963923074062986559612700369807155427864827364713407688945364362711816512891073754251739883799021205658891054142138762542148200969588350462170001640033369548561187427667117296403381429414061145245320719052164965591466465231062588606169700344310715674961251533377897945373557523968941318721629345869444031033868222724907772382605434168811918960665518870605396796873073072267073860729874590258294564810575934997901618722750123192530708055436040738473543181300269436310407395407821755104468028817055325769907318786168178906452253619032446639631975981461236287724923192668233870883572544018614103077796163025815264069639608366965257717016204400063182428569726510818504043718503033752546304088620134503881908781649945200284931442180919181557931468306905231446594828562334269508292065948835290887149942086094735015834292994757096762059429732476654138822694350124167766818036985617280321663592995812831142618499995081666460410911459632811750327655479889406055491733273110736569695904847543540022823951775154122207859913283095072542055119977162199330466432100241085774391347746254249989877666837937122292162412205713657327220277606527558444028250204151922833284008685356318211096112325261220834473884823890583661072119568677268170299424642049566882982516952273454379112944770175869108324657236153491152600492676970234880634680007185192055595132292425798458386042782151153340236974057148119015358069421222659863468928603975985594726146901429154277815176033254279946909087332754769173479828454619434476775848917203923717044150004223581021401910080921314877520207223811983084990052079730521675847679053825344510712266264275931333317623675811328652938976921773769970458735823716889730169998814671892802674222646242245219280901698567488979877228911527452139854733196872224416036599685084954295615881897932640503282984943772223109798568099294449339061043505139833248794548045128042181052931672077535357450202333408084825016445624725394090506202082433280352112947163812739305088469290240082605759571228671637039384902332188555828980046170192605925818997029529133854103487483752016288565667308245243012354026598970325956423374246028750044137981711478825642496007714713930714537776732483593146278131475746945696129987791738241227882327652841776704841068513345001651033689847906448820786316776821080692453776892317479575604177598299555842562134414826173662961847634544043010340551655392182981617797763450921989378836502257170111167681735815938188906894789600651648528880973134470161410716755504384610587709251293658724557223896250932389788920721142575952642680530330624064300644822641231175271124841127979859374672981572155282685519551903866943286483641172569289708397580932423168372382911089399471665756539992399816703037614243253817204380612303302144282306975495092502734634977614805806085175068322899593153882249094696279462509159750893408934581680445975516882995844113353164525709600634472759188626277308602485185418668585284077706939083703842371490232656424146750198666514914256585965223540103732344591300251148690011591213469990497627338699647697459259459394992603941954782879714079519198195801027732651878673262138392571138783863355641300892949508437036232918376158618301331773159507218979447603887950952364991353414733162274175842401954668009766655627679825279080130331917642861155131151908850358266711501849453540830062138761493250789731805370701069181940016525817416807869141087658221166090197054652596713988119839228055201193590245421806249697121767031463330983075097058883301946130846898105441117729363804763596777033600120041396473617608835590846664992237996092436688774849729029712306863567073347514963257709227440188674595123514822882970885805715869806804075853597588131344393626963478338379848426279481964090406894260743072951776363989541064690848875081111526181462754570076021503414348997444053444824760875093483186578252447386509266461711237570030444426930272905724321930831879048797458303088641587772690622660283418445692165219757773665500530609899639762983005429172785473458700783994516025423730407417925950430193057018864649026565837675640249198830899806212551221358653502869247832627726228690331645686697745425578020416096430835354625894465482961992989361130168291080578254428285998599765340397304657163356320308675402529807636878879792706889951734059684899948143753529336091816483886614579653171697869972846059887950990664144897074135489219404664875164489727592852298338865592777169230524486271527034480358860457431344469056079117171219050824893212728558632051000397594816389739216621473535638214869886471483208084726163305894958586425001256821628431517197597129247577892298582885668671169235278310606496193563193539628824566410262517410805825820053546169024543961917388753963010691352287291029324107653596994218337951386696940227755297271372192618828587614602647640225681125788890840780736417890262801315880683914178153111554474270945590000771203591486941735266121496293109403175720887042033925698838861444265725635722222527997155755515057500881867588532245453596685516123349773230519128004184174530666080710011515087820107936917834791990303893730282567253049593038046928636058849978849041121501127277250783546400885604947558582684085792898393583128217191092320975515700664622773320709097535551329097832796183461179276090253485324755081412921778558467754289139168616476606788616873998228146137499829640113648245206660334663240684708994711935868600218223009230178000712557683830557958717664763352452681973385134404736213677881295168003206392671630773446356958904315565883514201988938593417973081140487889588447908598807052980219593832992848416452754117990622357670830621323575094700074426517742655103248584078610611118083567189933844425874705345236818219483279598378041934470693162380420370586529575527907965137436224685690660998387696326145805865464734745213238210558093720262651627176259152801188205128476881072365365695613275174576426333606131601933356188456204995218050287905695176746490775315805203798092996371833271987789199196887291775330351281918354677821177542822045148112577931590966347338957240521004280111124279652142926178276993309962507043754645228771522337742419544363332633979779129557293518115295409898676326097233501226294290231106842180274873723922851640154008372970018669924973915795249885042382248821770405770104742224684422213527815636715608321417481781730419359799141722625749704399920777414954550768232068119314203993903664262341018677077479347569427548905539724633363928367432954736011846635314515242370154048137471131491430427002577312634743444535080793693693910857605299355973106645984000257453366058984990050134692586316357928527106924877905331903190094831459406399116301373364850023438850883543478746677787781728875053673573950339879467735757806469312512988010037374913480588198654286919907597187739058288091145187238069211031811104092973796953255781219600495255036751092745055265400895585777197572160060075194747784978044990581390685267604374699431654122856518168906937593294761162112041823050026766886968005713321958497181948476722595668072580169621863263299888108129007217568686489236120049423118819837496754203231753774087157239019177701173785201583978244333171196461762136540344703141444134450569392227683875321944333851634778783267649745223896019193845464231175641709789395523318679919089943428892473100972318915752259810799533014632472048600686660138073511179454080554650600894667532010459767600201128148362159192002167239009154496051762975760077294019594944621385405439236131434454203447767865150714822597270249655033809643271681250858457904601341640352566306300712286720299052767240839061283713563505521433656551395964959249725147378101454319720838005030535718951769963634689804578644237304791205393565778739583831473442203796532894049855215881060113937586159353659584525948205297238889509126092364225854866140363703395199269352721288548160590278702798056981402423551858981164063706259835427462218533706032039313691368708333001216786929819631389210115196072813284031248335059867283916594210218648996812518599155280045974008298453404043596526114841330724095202711457754361035155561100302222613885440116752444482592044535947752484233513944853641960220398717591789243233407104295609333499917916946479486715337032236428309984213093554643111641776033234245798002999387206954404199352566676036282993454352971933337519519358670251518524709935785674207042768133966594540168358211468207929019920463325607145671152489149495521123386587683068845802745983615518723140388130257595570770722790219523213545256724042650917430779244584688694490331933631946201906692590284281100943412863129591433931179107940253300375029586000053804223353636364683470721186960636011026993497519851744922800006553178482379945149115351471658864572412831076091864678005766381431711806264311529595445307111918592920303945731420531640625166969045162777872964677970344890630153702961954639437061915725728903413968441458900425325222359285071411253453382637594285079642869536049413824687069479965664583290278631498221423443759155937450287478612024779091328708895875536516403915406799424538370433279172353726332213861459481862543682440618201782202007040281652168705849993548328272638695298181477626514951987785978701427244204480662720913215550347626590767159279701333371337013811481075345509155014091429370289216321027799192508776154724592852756839515369454213744910079123857798903139398604218099714848381375242590808610526216300449387528162743552516288155543782849385184921223603856028971107256460912567978362730499241648479597581701836809811751868725168689367338419836233084394553556813398500432549597697536629429164400269435516114214693804042311376144300209953337354816262364675351335894294842301713456349837291874323496475297580379552487361854206974675870388790544523013950057212730558858699107406040008638081621950729242337267699502406806484787689165240508760137662094364344814246414839413787643116569979118336290126347868557729807164208258149565690948291744849671874421508177506664571781526327985035956265384113084251580635370528886089012481703270423696284552409764149225470541207301464145180458583980655675458061363709973663628371003391822170247414421440741085399267122973975682497910244445016941084973260024361247457185630225499194830210654278000013828386191476538225389860425988910516324113723159817678387777083314687462805427836134237716334962197632356625757547901253238751643776686901154102015067085222543344583279927091466950013146689340751903489248424946948402714204647211934908830147698570982199724333094781563805989223886553544628948905592937068561172026298857307241100834452493823977098527999072530267143407804431572212788607897411433003095538089015637520466516210919631107453649920779226581889569562042021596241869640095564456208859095902076823472599872447266174383056332781783143289283545380124771690829695510498770911590938154757029892956401755148484060215157911495064534282835613481282212312197659508516323505832275361631866729143851624899766467425028810655802377350785908771389874613653878511236240162110578158529812332087688945625340408291779276165831736567877459488217882229025084287354004872478612731490185347993230863134391152282115511673231610562969779113935329580530476162488573854258878405453249815620141487517264186449726732840748330193975081522623199834248555739222107778125244259154111127616631205534327279556562212963402010664458072999327639064530123453986273987854801102317793344620377988805003334275025769477176691414016762538630632860728731730048572787411600651170539707481987807737362427775415011103947697297946093178367803064800831125363646952880990724779458129380331663841367243539400587941165508774873222170683757648101244338814356401131248865241189579661704672649132189407649614985002558868034000984039853999352543789172615965009710616171389888438995794600811239434134327303472328998250963721426854710282016440417571472728825618017157741037471175558312140562314937248710334438062579433672410519449907132677279016373618329905573787816771367374093353591064969979112407645086595377523258762863846356624687079788230775828769713626137254642015847995648556007888006276589661651212993049455625966030636056251809809316290100384750594667247193040602085410434505556912704437537246789437174651104201261870086194779615569004786604024672793614121639630050130473782245749552651038395701156578081995180038194268480517596430763006361805260586269595777833683578118518219480965489414283382496863988791320088340600811373252549100700621857210238273048804511758629202870063541992221932165527056372811205430132087048257437644229278258667270014330662795525056266465833634193594824891421054186276191984053131131868430464981498009863738326225817909011404644433056612006879112771264756597023672396088788345334887843139039746885803752261726564031581715611838602179717606075450474748244246646333219034151781047308154696162664491834000595112287994028247651406484426435850492256313217223382588549365565681737552667135669928545988367611353423368490869841678389643831040111732734056791565026116058186046276958040113554070331020497178237549794052079899899662945948924817921067833576641419030707891639368618422735576743910805981285526131841748620881967573586503924564912635452953638669930125447020892917725043599826678719036415545212766544240203773195905165666896920748395059846193528584166227187637416006957911895689999457726551007602776970474239494055924908345306514068465542961413493459144093334290107131890004640198098827181121526024371320900445683959449890342842248350246353206012408840371992756531054597902696347305026717615241345835567073550171001580607278943451314464399481982633584639448185175854473041768669803501180882254429626078119742029641682032383666432153031179812184934251275309657692158970209695928949873632183490724988815656632325695927245607737099752445687972361311535217492136678512420300561632283726175186657208867704972626056404488530303326125904216514075433175182268728202494158086342198220609867965339161391609500748112641919773848257683551771756530689821148210430490494968760122323256199480513427818351247630082433588650812511764593881447029362681061361059756291754941238466433207552931369807104364841277449625589648110760539674310290869901435253186796143783423822957812428510638298715598130841245414219277906662719953101518700566162255760169445145262780917376848653893508055942954074641623804086992989709341674763084687523038361199458629439430512447765304092582997936974422558053850129874150266694433904730299266955784845008459776582913229909914755440072750310943023455831259068754625794277703013668493591255711807262107609430837650308945173511043099998350359304173656428989406754569803384554175136284654682267916925607735967765579960238137237461223955201487589026133948011250818122178730949876860486643051628857250706988020109012294894715998326478698688560776933374605049819678191360227496807022397327817786147497815588339647582806785289887621436076816680906722159928149269295262152343433340435507590906283247248104459598913090010058104715677787426982414288080174036159904674814817869930018292487780578603668884271644478157769135558996466067728322284412932643014855295618865923565534752187789128771619127168633067160569658463276145663730175473030584089323758236528835100729920656838277551201451183361420196662460410281603191550123517253793261607171868194272476451821169948476707509838211766129346043380575246594508605370483230060854571195551780764794995769054769045436734979159893182114172026340130640748548301399107691833979187552252173700663884056392334684738228801556620780072814912796846569342002402855114691018000785750899515262867251706758191726307698701399710512792440301863474189072908112037445945560714363756204534976813078626733231176675049294169202370834268963079054558447644048593706129953810745653985811010017715989926742554553279916828281318651326662977070405006772688726124527281176714135913544313112276487210341287989990095904030317211154286305085944243651103781653871407677330372520803141707039983945096329208975461782941950620837639184258756437937997569252006793214221694965491322138569190621690231206951743027539181947030388051892712078621332748469681213234781059712091802455049964371651800122495277806355351288733129764868543294198618410447859200983896062830799568324958270495235729582833669972686763150787804295201561477801348499275711183014659824426429433368592718846779062371963854052475057563096838009139545885124813955832598093185046421947899408816899059141135929078669228712998205232416411157193433031957636133818286528953538352536545957038925678309273819889807202084647924845493849921154686253861361644425919996564276750567650863012156361262001873949948890823620262666450242945058841124146172351581215803433832635253306568352182855922317804693115335448305154109009934799666169407400436530120690947050586658543669276442061211892104571399942790206499000082842642162127433013689781736607430729404578623271738676965653862584228500110097438494810907497730301921137919541255246647502297493662410787675556156827562901386274665362413908823346308923159143972690574083473660042933808275359617962007207120928264090893274039302754208302370597493755748944329180978347088742929188881582377664155721104408050459589673238585528984274438917088375878404667726095176470861644162801344383587940272058590761941181031832245121115462415368342844877356922938178559196713165580418174604680421936099275783113266758716967492783105246504764427525629515761353994018270687720069350351947874278236489373217486747977531341652616453065785096769231651570638830635044359285331101286158166549355622484006141842147305557082950678766163477826488538198257978540062540624296320980065084546268592780121492569237935006307513421661179527664529248441804288922960215771184767313159942978594442329148153277047459905206420433065295197796762432306410618909909001692963658851390851959195485740520528309917356505532242958108701536667781836039359684337040529407390577775311438133109665774391853413640576911073756970218380549624391673186517224229199386831030007237936544566965995116662987773302442863308871047237615593247139597446630073026215170579277760219409627296672072060158667524113934796568003611254577089991929558668250391684849264586550164255232613266689572012723296887892071986420829928253020892979836371404276744496653319841867963190824377149963782276661696964642015075976922076527056624056089807644503453131414654076332157377757025100525621582984592098118336091300428277644439457519214833132852649232445870079000952037189278517523817557841256274994249487788769747936058584134626535210734483035227104242117900551730344503578569136930875163444271057338387348170089836537381558399246030696368096264560711588025591662400502765857495523558270181083061409211686182388397061410792679518911709874169521504304366982402025368063755433388098844539017500486148487540270039311333691303329210794299922085515995729313965024992837720235893484037125514870895353302080260082413336180227074849888842691187091736132983056426994607685196457925404396363977575536389249278290493689822919874892903297930650273621834005800313970662326909293424298852875819033696087696731828485202841203021701458143178984708421523023210015279686644193973122889705751643818315463655614235161133923222784344815432513707713091723850572010021066429914980752569054188018007820346331706280666332180692704189732729287459670204574269555341557656807659175449492140360207634865353904885281449701520770382335890814453500649622685391771542488447226387806022069369013879847073385887880573687013472855154185298917822988206101527676263759007039814991543882316428303625226793387090945528487267218280427178130733824665181729975650963560034862028919320423383898259545245681014439697009637998030718123150912970801322398632661195966709941188638227319294038306554563010484079254088994570581043945764669400316931716551907455199697196308327315909394804923518310865396182822736399974438302203910297514008902619672854699283064781561165604180773155513647656895564892128742018316233264389251129553213974512130773356690578171130828595347052777097202944567209805195956281610057207241381316873429830209084702908137283447488094220254423682065793819229857426545913334476370221207687411821045373819793251653109644958823148549819571600148099121278276123664916849706696974018255615530536833579003279505688544788966820042597169868222475826160556536517951396135522333810676570756394503558989931753164256409102732158510722402898120851874722727025498555700075955634188705408885300990417618695378959780629138946828120397147459854989011674890711772011814119104215713618333474346760497883381932173839170207622927699782394723297395082503609819111108287673124820219328161926438609156493777494376480105096111106065794291099602344642825843682082355019788446075625929187943271895496236862041831497616420080007215278347188775202771694315738790607836710921655288779098604557192408093672102658061721880902435458640163479865553979060799765101597589672930700845083927689686088614898631267170996824305955097164561296307081099425118991236255083816696823228810021675022275700192205254326436176266656685479570590711015836069689696025066271753372168627208499972374213750810623550122015194761314115237611509172944189712009623738272495868534910037314900483879764558230173232752999681456809477317213939614377604863398339982254462776559760521643498608760508805216403653990160099308988588866654171480095756557731204756772049195270961442593128511156760472143881791086664845463513228990938656437446235329571192307005619973361038858689382018437193421697879360911135126270158218071905894213405914619014799606965832354190935678474393009680868287917834239118430730487821491757348411849428658389401143676254965457286768815665052546506049758083226598432760428460538519041742547577644336084607060894283471637001671764751037058426790595148794417243499225942133046502772683446471528001690497230735793070967256842330382243056552046548458423575452439397515451275006763245780577928916762336641696791593592859094901807308531847069999785222323034367144945917407834820235186474236665263217514897167519108077051744133129147614154467641072931173657737838519261023831950772199530042709042471893250322359435779340247002937067175399212670134685014707984107951407493488834414103137264840303786963230510946385499948851570011917881203511429432473764465185922470630594898086722632776928130761973047718444933518086220905659472503380078746926446403530349415660158456383617599450216146839854455553062962031362485549948038515016376504456384644628795533529004600749316587908166788393672652446361821066609075897654835028843086829736033066494771606766834448056673704945839284405579167753668103215347803946080339845005156706562776625845795691217587055210690189602610466334461207800133688163289470495228094207071619561344354954830657928123766054388683721541740904325992770442660655478239767425074176456501184523645234758511101302870100059750494248527612287034467830015346736761978983481432193953837499756524896144816126208357695975235915769912643009289391552849992217245353855052659524723597167989530601460661788063080522044429056447234530107991340999059982038096807754044456751647803317931540275844504915795978866455901498611769292165792991647930572019343725147292345580683028817004642689319035105117426318358471396708743214034867776132274994047362741876424477380533236560021113129734563806002306909341339723429553300087957145346594463377900766558198811324552804769603988347121931442798256263492015385864819620617603184258947133866133861143977842039279347914221850113503784352151508029819927417055430335260313665538014896781496268072607360944430492735911093358631499588755773097701682841899585494992897871592285283057337411102232808189391900139986936197394397590593752584355313770451585227819925536845824838254236285043218809830662936474457728017476080371277558107899765820266624509034586577957346626557731334152985861456012661489935352935029431582116679916399189314522535768049021807693718338377488611956612592084438162419386401668994492323253573663865929973672717398287647097932658804391896188613974318953239666324060257297568491011659572765746329190796019833888848005966044433825846626279710295617945535672485593229638612743979491051728977605036272406080864150414676348111504639603154565330790801501011783404213132908659986204238288016623783161827421492509759518816073349365805564798881770743505718270183230256819558259358144452068537105055860091378558884276802862290782244797463322864599753503321121831963331573700264019205467492881584623069559835090027786601041784140474259832805579075632495481072628734271375199405185171404555590651904186217914981940012874910384598829386962067539373093181561116278376982118548419500518346056193258221596376253169205396437229746898907484603777893087522439288202032639223723499119761867513802715995833290970572774503374800924836263119827202214261227665398602572833616370208502376539252145687117878864045087499144703055347800837958009644418854061734193902476082035408016855286229880868794256651632760236310403525616573458610409954241922472330658465222459217231579937524797158918634275218776012206963436468604535062924334358254000849302166314212503257791081748212850215975183554840562976370711226719183064765803407389046241286795928143591507758936748014448581418776579068093989917276000168890718884102392938892352454058061137239683914975368764144763977986499453865469735497886811274257531215064516715309187835818539630059345022909129516588369785525710015077403663536854422198465277352534021550692440663608328488508650734107030990723049009874790897001242861315312392523155263586357723634767860213855560082415621969255448575843180107172025541823408564012711614868640820920308663287703506833041508295615107169017287591198319727239766863974215889338130836790944613205948305195706478145390176171145061440970991290049502319076247243702469976306172531303032258172521185021839305129979376758210443363637671057562736074283464591398565842242762602716059244119882968122952578043399549153725664242579050260939323337524582154527915208031437769130473853194518959051374676907757603224689416152457226336519835297585689298489375488107938251361654504441079504440838752881153574877451306549992410869375403560548313531434612317123800431190588760428491149939324760567840980088889285151595075568161576744587944828872434822714885607802002867081862091537848173258320810819813708227448099557021868279142248280464850716095042813603093182377209339076802302143897981391567560674603766939868700853863291108435836043561598244502148478693780713934101395995800634361295954509680275063452963718844288297576684693687168920104950353563145511599691649740614962237023351208755988529900799858452216041651956435805691073847278102294086493372599265427291692294166792570003708109185237455968214664856315106039839493208286286532254198371222075015354014562036337960491533351300196749343360367728593073762078442326535195980869190973873555729236590207341537935542708901333540812028750768011176015227878733032168861455941295947556016969683413089907751916442668297878502824688452815764329183766202570353704953642145321981838762528747617102713699304972332820774174588358331226712156776115279134530854097122322631819370393247297751753938082574040654947622936711297954215347038251106254395360172451861026643039457731627800991640155397090763212131555606946645927831625343977017861810788524624139392979817746208214714714098299723226841170714676081738640793878200347256302209611745836654999735555422459341027527544930860310680025612055764789371815350015710619528029013528139321388321610002059924631178164849101103103306595959897066679884307244737889509599558593933281707374134408740800940811639631093387325178018643647841112144762434292927693022597631797014044437332129542848738345073779318607468595078711174536745229976606029278664254094899783794678252301315610673289437902561136633007525127024195588372910852374885888798435509458518401797022028467254691146491230868164851558203110329551461210230426197195395540550940299880662370809775061435361850988634254162375501232630153203063472340389359746271795641805443897768898666398162877618293570057990086193939767656730210017769644976939455871436779503723220143957716994873908928688933692145162898084360049484857241505877763669101223672852383107148122690686659327076246881706998714899037250460592562198779824797271173764723680384212673001966905768128325342243997382118157323130908480603760389595915320410812109683768383176690653607223227099252024659738409721716056756432930529523012270988593012848151252331115521389234115355635548421633725128174318601199780742227826425873193281142252758476582902418235519358290189582448310116260108060809080699332465996589757242564844414680401931981138872797669208098915726719370030458188522058464334334522373362492255758085918535254830592851120413429750007358821955197213976997857644207912717635696229276327371970501712251885210227582148810575092168902674733298509501506182128789014861795541794408150381317817023273279361744789998248266022543624007642670680998920369112752062633716183348362630029854205597681644451227256115604408411379363298038343087585162362462568546902224341535463082336803101558616239014706890696725123814196175517435597764410183263776073843335076874889297396676734849526536017350705899069075124483831509225802403282616854610868061027050559104333847787564081789859777536155830078749446826539846877303288251771173546778504890430613700415367524452267621435198800978756311044694702780454356311358914139005155493890323211600286231944584711243207874281923383418843694692422597836796471599806155631000193116733414681685613928979570197520187765072683083077799632237767722575023743591608881627923471954299780802935028965022608123168114133456724815358302314671240634727785707215398309232673361016573524237465400194447501064544026372774972530719225818501729913895186907761029416604150243067851154487288863272238100601701245972047314276768326740645955924522491974633753253030492991108867587693195311336976642887586923250160400722295994652185084260241602078998748897872203501372856127409992782468894097816423825970650982538297624191285814027784692629857568241018339165793274920900266113776221133845814288117071557691956540932417822323722143738176132356325841615326180439835377396153657787877960285432782878968338293191996654747247152159719622330701945872613596856373372356438439792417068395075896562440348041667138472934671449192752207755520409295818578186218181519714743436950320602951043249403017370115297580266838115789709781686234437330979019005952685902659946057369020577572441016909086913629628469280600686095490285475604844235190824348571951162081214818368420373814623980899720465716300571135462560785593643573776801483223193176672278858667213413370858563199144827330544093494668967352143491700064499890646338516065055288758226542760420437680463037619730946368311911118586055351568944686467319188638011785967743271621491237148730573331765368845056653523124265451284418013735047486578429068462524773903821749848570702718398742227510330156927149790143599601518971894295114458890980694658448144103101939535702279741305881327006893657801537147594951332282776314696853657341432199971817941566310189497197817467338363423026142505005680576963029910569197014569440704160084127218496159011780782692132946893999363816409066465020885239841178464317363027543034616640905492491969749057587306874467330790924810238242339582528597428242675512218414158366907595332389670235898886147920789235074845056889815295159543343682526501810570292881093663896859659438961120936774839179156278348442166192028839646778950723715771017466517736521293822383757865186882856598243170036160421974226328889980124355495769185391450876058905807766034175437796092278094381962376101137323983640923405307962284394173277260582616576944219470311393958144994090467610711528353754848405274722844877208796376847813718925129971335802616461313924019473354043113051424618938031541101371709122694437596993758623352649996556285698472710184655786424557437195426763019257901667193271925552418642854613741340195159477302980247980632408735738307909587227772568953148493048130723675372028158467176341540634632715567628458999047008345334193652545017122766308380416426589293301075093084319681663976762745639526992522998231309593973632465136955125719228194018406197960551517195476649005526196776465954799932655875642756680608624854118558716563548791515192135789061995852807399457305542229969331770842615177087344777880577088521286099360417225974493988050070257193747361515431252204649595109452223805720313264204085789568734629614746222633419198451559433454761700526455082282611411425438444478050378933755406798647585968463236849518698344575061386758011480194611530297975791289725258546742371612448647773752466106072501415893991041833082610690714919593073855053333144663198909357407726555014077723828921255240268687086079227276032856092417495845649440156248623286305699354003474029336421504304124133036712727713190683025885166886296187378955415726422199850017587861948922899601138967995492012906173901923949434736352724562058395928975888276405051152397691516722544577889198303221365617037932882832322139739632782191098569869060225613088057765458704773186429136403834146134789113626227856077057078211041478170345136393085769436129149356346338310518604025399053547483245586009132198957660016713077379035566303750072490221278012383141697445699103785740814922508931760833550859726486096790423070383242620619068272727717738828506653668357026008883491008157374317533426150911463161982589567895201390143265773110478250830388995184182095651353391303608378578301203036130345483438917891664571207140159711935048490646606778112062555735503858566007648024402169817003477766569174738031396680408472493544902543812119992209813699652875211367883033324816519741614007419086519269190796408486283993149220935248286069532784624025487704061099998193773993787438471465947115942100301206990180635696027598580286771788811900578233154242123782779298789728779574484603560475005141243873057106889576889733338911816302524855924151452417730174079263863088324680456418266372537937574631222162390672067349074311118376836139296880401845670097209128695111306788533524654659516149790864891833604010404203521977834127274788654849897042738043351360214265548701404597286795753100388961755956320327472928007632250093611470247565391327775520405387337851645540300000893567177962645836927961464611137236340083444391122298594613793640847034169898269448622799342195869286905721193097699599387778458214915632855320238150801302042308128713166329122773228422469586802961180923006094209828430377869463056759459494275186194546921910227350159685028855846568397299310168996086594256154662183674123905990086548840626025578540576363547610910715431712205051193708232201001936279879691010314427452704946529781041019715128407066324472281214769133598049147142594922294874325874290306952939472556064029268745763538036791256692242554237832770085789847266633228872989319174670238659023384763145301061001898183803172788586652505766278538440202089289983219582858884523498336565264590131425941621038419481946862988321585641334594135944383060597411410492837077513135296399974696654076797998719377666306394792292666651192172902252542415956911385656110729810025207298299210367382398149847778493971083204212437531063029316684977928875577471772137228111443550558924512374451150949717109277671688979855210743019573583476735592024241891653840746656696023855518624271570415443211989136952408983801982633130429551518876641803983928839265844866718747993210017890547021286102608841250945463358899038726690705095260799536842915648197141855376947142477334097420534934834618935340697477318118504347991137949400201546828024296584542395274172980471588287324689440605106279233706122027975536405688162481857921615385881884990419088574873460215538802201623706342533873362638722115654555896722107735474081864278787347695480123939292711893164430347263200838220552669542170687697881053296353268769457855038866898409149228049458771032507792207754457822835649535078030448802614752139954693480204696711954732738543769026236498412745486494320146530681334509267665257694789687092689240172128793843443635613259053258711519159960220938836017702389779660732565593866919152026795163708053445853715599383159022785788062330638874819725058923819288177945738492101658350122965066881525290274396958714412620001874032406953913202354771921348195151730513483200511254645214018992951820377179308263311686907038925148713505787637268464584828661601118076290241988217202050205858783484749397947507988753762964241521454345708407414115301497516536359982794486265808055978010284984443420518274039545626266439566255565876161020941203975093890968144084958541003288450706257545365283819449515510218042283468678298036777145910818992718882878729773192258646682056610285804697795231393917941460178377026331247823186133164673814376763317407833086525446925729707107723798347915357612736770379330924039632384642892486472668584776788829101317736023307266161359359462843685615300759804969048470642557740582020374488889515677436225397863737349437630952224874663184404781481144026561277688375854840627674356584613425046259369497213624874217284701824228384402373805653819069800613748860009128576921082110958905858627715146160760563399809717354859846712328106056951467912103711293410435316860673836070641030743219536606432498182208620489496965014800685817619187574561322945796482122381190671601930471354119165766597848949443087253691235854263710849000557867644382004975611309151568795407709803203209151255708724784417343582037631645047166196178027016956237845831297133172661512437774328437395998561980933096037193205597569026549940060215044475853822839204365085051892517016315539445487787011255532188689759364580540002007153110032637345023597883201209046395074752564050588705812287155723059207401672968026738695812689827086268199459555600061842870548704408180106160645013873829920761235522337336525637712775225030619712169429202811932638641173792224217371593085545704800931008381815984450862526067657014485029055535491366954172135141477421996753874898489767021063828178718909513533261363681191967281748349521592091754327013421560830880897404775760593062553200237635380374876146584645995526524200281791427374335277092557094977996754234037950869413988313213589306775152395020792388653876524592645062128522614419985610583992586823440651627871159602544810945806125597552851096382660418345452364786360723895362968862267567892442574931233039011195859974772162922655348735628747347643236059103778799899794865901558288855949858334265378913531911400369495448669258362994716893351504254370296086841757099400452509151975857560807655088279758060265099571288649514017682997903357996773856156884236767454134634010786047713086769686547930077806042080044886323512841342855900302339149041431493265465227249467016464659414133791450150183723744495797975623407066582121459652201982989214681913536242793985849900308585597723812645150605667363764794686497206673113641558039227439609982279159087306321126475725982343335728676432068626640286849808750277340552128661753624020715743602924634188360923701221420285253412966753747491771709335959161023561554274781255911202589647712424193959846118312821365758268229061037489088061320034533102956853426755812372551666032393536754839134831040702870196882486026152629758437998237833323999875432888382023192024321920469300304949922899823460376081034298678125775240308253554871674225498844111051410447651709745814889962183451144303774939598727287343157186700052823296791224516038879316313732870531742948007792230969481111248243473622566637197795314905383645346925237902369918303881907834226226055155420062676909593157703179526091664466787489305091066468331765156490953277916818429144265964385614801374998331952534182595027168582811752768224166267995927239155885247392600318372355899857379841804082162883372974721275703201954860860387367068630540365325580605693585248328898932634320413796289269549279341739272252055783256672045161778054054384788726748391897983413793502384934544995852693386956877728492267712659167801087118431062894706031733964840068400782458683842826823259418658017794184399375057178060967868952770810975884670193158690530828682955917081669314428694922424506205446330276350572449127763494053212210963650522548069317627341004474157140155155485613224479910745716597870287161415423932762258959930796077928716930586971295930272009598795301519915998228409552324938657253463403604261794327206522994241513907672504652477788124119396591378975110582728000308886320156489886015937871596882068986929430507035985253074887131652779929533399166082636976723598718732074292024053977506636983510815653469936642710139095448038530762757488703804531552605676743773411298607953051307649889921297789961722266257903054522650146578026845539959561523644833249083407776999927517285476882342658495259315888567129147445255746857127080802207490864553043513686278251393198927604006457447048136640267193213615535057252211145776524345916931582423099526506238769043874645570659608701975665626842302253768728844281123551752643354017384771547083711162927695776684890502108177879855546636650648715618321936738729775587405934655512924788119978062037788381502453048371995157942864666705815585711505529801347986979716136740855301519697888511723779189310978577999483982533264179609680730019687785568842395412980034987134645641630326217566197060753110260683523377524344080884628473302841626526149242348395270787592120435553374192755206856004809956144033225072241180230787657265163392916563956107140022303049215024907320467603332650758596104342414007866446301633434911901819818888992990887749288954462694539769471516403479976076067558764841658387575549825168189496672768158804538973033428768005014185159188832425292299601936115180132227042477362328439577776413507777548442048455366533275004159419834033598339663394946047009037833109298619248027724064860165070784239348279479433204069715559052681317019168553895681319035387663694398792981756525968751202037764230658455117293910516481042718708259816473865841440128163303012269981278171300608897453402546328480239718643186195887920603377807099130467448540646793703383085059198247340776584805674803899609364314613427328706143384038008913698024340300716519158661146008416144596031805751054400217888992007661361523926411876458240413577011953861542707676638235768597033366543947107483893484240876030193790072468290691812003880431442108388817073729311484856290032399071455377817653628884302111533179537747816109416029922398869608638087642326325493473727129734540761222072896916974656768233395080181632909878937675457534035802178771011884473420941914014079623749741769096913127149352989124012300767156736024821979362702243263088039870675180638387271059698411815505636949051483024424248529447509275922175156700370576293696896457474792017215339082935458761038606906341289470148448030637038759145755690534091223525952784722526505797986820961090204844763391950350983433680855938495797482846491043093958077923299386822891340148129162093594575348897049129101998159799244057576768992860749966849090868601741843088675951789510260739586629713345434791308091045937236314847150418350588137222796961381053480121415202862420931035369506289727456155530337684482807758936226439314938329946803537940639916842501754285811846570105253206809098248946344196108262005353139334359681129648506493154354759305142465761554759075669693572837071335502971814449570545321736604083634447944535735511914795452064653793592763025210103482605565287751340078422716084801032333627253497034349169542760705270702628506266034544371384453470217650338483898159079997367588108112204582927191354568841471786792496852238468345220317953563416310567965632115321963974158726077194242925316513617390461358267409668709766854194141955979297126642743956509354223980229630611258894049727625736625698090979874358951953414831965309078360493560754728169056731002415665861868057490581234945505931656017587986474176951404374641910636235801441731179455684965257287342103159404827371760080399638909388023151724164335397014593541123604661353532209310947564498338334529915513613878413193467523943541611851762849072223632880776553692176488726818923604672979082172039985587453242636927047253672931998472712810364213954746797282704158845513420643376057776596665881288422491200132204312436356430762905682408127446531778065830672345965935489560236234465500373733573593436413227621793986451173306281457318343573619132265869813149128593828047152553969670570584461515585503737249620033254116573801483783082095314977349381426446374365771380243090986512889707393756521870319786153846626601239172746300171039262230645346151035811411348165998491041700337555191035604291754294214902785694908847575574946327441052333851979462758683557609787401315972506930380063734721059323414380805598090539746634528412900238192675194229952232967031802811737279613144007788538030325274839773052482659629348244238497135917915813654738084497264820852764470137254586414247073258538377438308818516005736257200663840198750849424110704565502243355186566327659079030374029130696775037311273915706641535353555904920266694964267029348431952379740257507666496168790905383340806861933563175650752133552322135295845067417170950291871514142966321651196070868829893631585815412786206238104829258839228086037917142973688918331337284136222689313478726011390935705702950366578460072420004436082658707832756065276035997456267893591762991124016420293264294119617549390962838464784522728972133551423939823410105167352150414622835545393222586859269218250052127140080070247954068164110147683430324318258544006066479473742946934903664141888751112615594769806376113355920046683923355364827543299888048041465507369732484946285215597428858259902456255283495132376253779201329291648994841900865845563298632926908627275456830553869041391304508281206516326169279531840400341866080250823212293403846435295760627195948792957498465157854789649350487277161318594505692803660713866437852142206427535584819643530400530279082723212575589996618855629754728087802274236286936897762789127213074516269419167447674671976779922930908533578078708176894464284244773814653124602188724268813760479059750536921266694486438652143452402952349468781159977803316525704228388867345561156093024388739439475976834183587009005795125654695259668597037464296728295943992971726539549680053379746778880679574288055158591938024943271740400673063337339303918318673181990225709778316005366926959117919899555138711159080036112289168143803349694048908238871286062065816462862544215039651037263189668608945638433778167659964397254529089903105261596734176797168204987751251964935552518377767487086045143932101566286494571019360162203230184156003722179938812077171032626060710857355586831333357334527652877346721223658281694851323545586578356820240312753634327987816302171211562479871533839654883905136504320568808504904089113736569374491293221474835683332220266812136605704306539049631928596352849020745666842093009060574870885678500441236789151621245811145852131468063587431324572748038500435680675379196488502751642544715877182112112094057890339703770200175361531037521179980440878528409440779126353210211461430392566152690492725400618468527700184425181130521047149830423182243513246003164983993311075923700418636704944833612617576836299773176866074640161287199533380595191989479384324373106464557878195332625765191369852089631407939700799040456530201992774585011923984440453145243554809261502293649140439036860900509226341223997657037098664746538332437861531576572981280689675863993277573436050986879698433581400503292722921469848406365948050203054821016731161441963874667137921856212550508952560357800849208028817417273461680961267957886293792789319718162643990208874435271854650064012081781399435220448490104373571112341894794848234475506215565014252287923970781371725489832157457457748846710505565746083029473686655038614581061346511018209175599228765264246713434999225583002386201608102286741038041643979981360502475037740360473962786297726287092899900642084733768436209941495920584773245141786513847981779547710001629142453325055021204560788381571016389110104145485471295949532200109362043335152630610513234881568760855937639598496317694236761844964573703632742933565142048657058021461684667645670097423940882655523023167017132916636038540736317576464849220602014256417371828739628638953913077053832804017357968566275934267891405128692970465656930564578505471667090876959848445475585357003573745346838013168978438600926941729903163655289406733932359531606185807959549423722927779307087675001451385989853804814240665615320457075199033208269084519678426331101949435040017056256019613700109060476493148716117330602386350739991062477492815643181416510867016871964075617054153769873900972492699595520045436481118225495318960095273876666875228293337496716676648770303144678039587795978770604867366356782817889203209486416957558600515456853211753874551718637760611375790905175727728652590778247775149510974148527145285280262168197807455433249184512795254547602323005052383337888566561411422955365943345669954511766367881130983410182794657377692302078452746130717126605671450740035884996174711486724834943253481898772920265726737814712545938269317504703610974732737430118329787693817543627812895207458801835148773083242503182857083388587137795234050701806204484923616207528603720484674515419756716084883131724008529719262289523068491738044835721690667222747900752571297768140136068543547502311164545604201941909592855256324169719234733066690119385721541599774992018753923664616816248962025469542352795578556962998115945104535445698469739472167550887616849490296859185985751647297211587954077981329749648446014791106019205581617124002485691662245876397092422929146607411258488821730094246599219991752754772820065910510640745620705813096505284903595469896467645951408013384217337248044913189144161017076821128154155126228877290813903080718980164753471431592565830472582101678141648330191448525609521890896425840344503352389440735694697519441546706631781188206522844659650688043296434159696508429510690017705074883041867195362198042596552486145634402903685606531490953609251411315608269485012094737329512923456458528859468370961545441518241804379969765365581250028823900145099312736545523997419938188543319859963251002756398110716837153016512861967406719383917382218636121061289069430932061643713979093262378405308896763647394351712017064572560920245492513207149149059706496455906687524351625147588389282820607712581492515381190517476899281151109147823746506134871095354496502581582359236496829667691128661346874294880246732190291594367379147183702467091353283169866286782997577190796622907199600337817132535399525261224200354126005603727712008624340834810418326354761883314574877226864055539281161799997728587696035014915689642290524305196122519360518557828205852782262622857702508808613797643377900481369547414615457143716949457978360144729655141550230203740067354467288102922457596443907689986255862906841654054991105459389583375224887388115860055735793518138935455839980364034897715299539561076849260326855226041993402575766546794720925577039712423192486899221834649391314149654705978276317699784428958343794267457080546244791562949566134334737534812055616102455090108415179611210476714392320437268147923798545786399687097743381982662338220916856047212768081483021326719616740868481480309082857558612240352380534809757470749926663242109164970309696262761942036013119974233119617978669910108617562161127736600197542117599694730855431115414153380438800693852475068609639757733009928461722039004774113680393882960447341135959286410672182119487747396852298510909587600842970842552375544975697298536279148827560877175807883957000661324131695509995143721033237889442930083869436246156756396139315821550548329007628581514091861771818878064671591450932722732986807624858730227160174625723774877593895100739523525346313107826683466490594014501042893415061024572501435524454674899806620836666527799339945999952878073720136429677773305907039810661826317510090804658104262281321995299006064605640638396838596888790527974753970089869331265853684265965538993992235233661186399206689796349606282076085753606169140838194089042885526910382794841400529185881751311798763490134771441975678492836513577537135650633069810820305312682476085006766808289323118139568592993058410574623591331345781788674303004384408038192190761914680150449402081430039750346325842515409791924197000805886948532491036366388013293275441108564497460876510747166643382432447606606308467406663091124383646511471276405496306745421785396801106031161069218322354517097830502818656004245682444602197629809416735849943243975365754266214663553642852858724213419657601142397552015879288649071355306449244906932222356992018696457204909034982367501509383303068677007607094050749025812918004503927927770047913351230389720075870324400362522741003032818372668446217952143262452161745580014747416290506173449913902943935515876901112906724669834801639102380731934489801432485821055660597332057552646070226701296098061191010902473584866079474368885739458445093844004553052680505149884330581349835561028433319849773226953742593266332087934038461330284648567154366773310269397456761642838805003566233246733584113063688774188235994781563611947189094655046071515677394930341409427582327549388890907697221099666188343537769587915209467936318331260108109205710799362918489675736694824102816093636187579860622484222306526574095013585498123008012717900525420811148608927002620928769932296698792574789349316610781152424006962596207612642395333230765167933436416533492104202683846547242715916018680470215843574008333804183472393021570238172057835740014685216092171777637012696104242025456182470829919188096921755345135444525528654742064746338561962439978223558264590364189513887088289480582086886089780608514062575874721391314693969339842826423751697614830566493916172605097623077896268318994974068971348990614092327470425530889024231114286981034768916791653004868405344238240943230003116716215518431961454728615509779478282367017638897286200319660099335820082521183073772937129475504800247816149856544870180235885437278573495051389124307337371096084743683653855661316617747364062320936071567966693973171420221789535607818236975733117730314317012944289705044992783360055424828546780753905261023697574329297446413010430680292139713658333780647911505002987663376998658788323685566928397094624325012787908202098831154817375420149564881270948683632027067997335473005640288944034659017554476289348043331796691608281291323223896006098727754338008872968104810865433913161279046426485542807497163439757308601936038687988271425923228636661919790648053530053238882212818114122635614855404574126366682682783386599862845018466296502857539447170751106566559105950271514654342256736455550676673502256442235674230876092374870083880158592958220503356989009796452645292335389997086223711945484569480721395108774155853168725954511163715120870602412756172053656973846877628031312091109357587694032274157627500099805643906601499125556526522008033195483606312553361283389658500507666178780575005874890791088765126747695640985525674906218051995124265843661134471598418158652291961834791885572100088186140366128188737434160428022634873903689878012651651555378971131649952997161633868558902297650274465211882513429428541934756825820999116316677635987811220870664194841538099725742626560282202382105029343444128932943883534582516445349431823524082218035815226839662494314946081435642672637066643102520762860802185129700000257315262182008821917732556444761296127876004768322438470185846833356349531721059429426668016217981238288136153521621917197792003080098194040483952487122456159052380074817520560626614766106274297950121716670196625360786915991105630588262453236310131458034811188833526885989225072362702976180373491219053111810186321551708613532550850070443151482078743474679648175473652769034630277023341429742891787687081913821018581163786165253289457229278793838514534490869358291268794396613312145903312726514508371094352587038493853806670428075405370472952732936535105071007400645570367223668038424462373098336071036537242673312964304656323489118769975087451059235662407411114080072488082785593029024134898202375070124034152688721926787096601305945224901717547497891952022643481106950647301747525848012268937175270700902882812199082114371362663538276839798415922099569615003493222458878328318059929283082160435898065709063430520709095984977026919281765162789082460480869805054430917033634672473483473131805018547868461946578074336203333600487017724747674432073844821428384973964920704236988755715189681064782516103713563503154948929463712918043418532157172971619024018894366391520693164982557404019823315721996323836071328041183684669427086572159153427538290631296448052098528552507130911908819431364207915925895755230488979948120276296826308271221981892041889792110886209404813048442634408803898191862734789867738524843543521045478745530816483382442206234257709802778767948449625142910864442702859744777592216370934442736806494573777646450987779506595051759045857637278372895223643039900032832578351972625802053001049646869793958542623602602659846899532696894820512903582663728194758845686050360956925451824960548310039944843098381807167226046668684919736099454494081355145631881450351447594561615133476178590828841235528028115419693083595929122228611213774680958427172202871079351768784504406752018163903700805609921413056024997828310350555189731573449837306299260931646266164490796597392996409728985589794212690911950008922024595453142446403993839122917308962791439051106161607049212661350265266918713825304895947684853905655920896187185386143153746557880035348194637454486841986868160223558589411699409064895553997160354025636289480800330022015694507664714227548549129303858312915924222676400911953309384346698725116671270151373144371888799721918909155319307212407313109046234421101130339074134054205623452924732638286625042688619018089726919613173417499460040227695049029541991830089376767662286383718410549777495331312104954697014306700230097147837972395581260789094290629649428627371443771608592900129695717412700628730874416623123442275530335015668440460601819418083363044872165044787284483877094480510826375144643052187364500176222134426616021888070585246313084493484678153546255972408316368919049801578041957336663513876471834585727268529871701512595245245063384644674127729230252226768905568559356684223179303209578349793693616344650669894314525836396602845441035386027405361090879974533964919509696444321338021396252194539261613524646496220019895411377311993399409755693020642193415604793303668766463775975310919168025667872499476053766282641481380174134770541928841751305515247986823837104179439508892613476883099768185541312457054967400127528085676318155331859929957314107228761950930824277847176362635386014013601837099869121994881371126779595294050167061327308849754511305738617832202305774723571561648236473106510053144765831169484203163110942818176926822274215166798175669260629440440802592993721972290030143697962877303983755106339168807468363990763509491526964538439011167641071354985841297462605973435970084019732752028835943109979124490444396085660346641551407169613653939454071101313219602908169936085369868786305829375752925827636679767433604267753785567338297929125341934453221473247392383632616433386882645983657099656565057788027219942780528626993316116192793697296285388483854288724932790110685456344105380293610496388213420023993840696853088352793440131178071346390878420698849718264343573120053444331688805176129515365363291642997197435491066551419172207493808389388962100961996024525019652492399853153485957256732310136405721326602731461915535808654799893605002752018815018255423182759574631541324389919967788875370434750448960229375445950192519942609018205650106119211728402017583374684216382751391517631584310048683037561315324309473532970861932331885313862648764257219897501082661709930674877599188269562630429924034560132462673539918658438883780322044284670329994587727011667674520042861327726075362623379929700124046029990660985517372798818815109095287953799171155473763089480875740199760259896453791123942167021755757858684907675260539089028570189318179335568571800094730382956232386244229970670417516215414098716993842068122913967609935479039509690784893096104981433071562476263727901356628691959798562575450579134463423431142217423109810141037161647844734021294492466134877420528918862209162148889278519902615352180794764837552562976353784941076896397117641384628629890446057310494277185618451985054987152683794662037199866425705764672569623440965557660055136787478389952149454096448828692137306535839725020001838947581509769790410047495870704272209473087621570878130493181212476023429388240667486492001961494734114224141509181042592279764129047332333580898216686436573414802375262650800094192301057985047031037593273601437864702145328124937192825248673386149623197664512642129136524351641497040157940244311190343709952060035343862336774745404216044417240528969044648430575275112126472684199864408607173226570046103471630185042631621593428550386600378782890804322896015217116025917754574727456550555658160094438409037250326968673209629123771823359239528673043704719904022676656097072118214817930007648806300983070215467525843277356944524365018741095441620680963820207182690372604787111366951204564017839814373517807276154610374548115206506093869281219264168188100555798256659670679132537429623407865940462631624894912848878293675918320689450649318221098946620507748325869539243833760841559088125393442996520645915266506452783172561117751653703178236429462927789604724360394289794666979425221758082338790894291247475180603182710955749558628049741486481199247844535852030034223239942212659295056164830806968908414245855059225767512567739183883426802459076114169376747758989793301386918497163663537682688030483348114825797330652480327282392889087208377663115022576087490494240760021512842121390332048337266144238418385435719490874384377131280408021314099832105698434675752097727006098580460240526165670877481656304335840991696897266773286877905873834512228164311175009769297470942631914294744643018771608012263537433157162413534534941709943675795426957790491206796674667654525134469873665831728816267514259439550994308959765435029610449461164350494794294999533725400368606663806407345395074672367070997920765651912557237705144481163885295302446055977494375696399156038369518618357651854609558090087674813987120327709513075070048162187071809825551628416116397986047739706104265069849255282773294978961061942798691058717021005380948468948527187141170225383250710499706157715638443736449707175531403000766448219235465162390548071090690905387568963039341469085171072377076696896359325825761173281912504057563350193514009370035463030515507927448820053696377984743775080398249684415466325618250352567305272151699347746966336365275208017879317052281172339445563202575606654544938581146574309178393553759565127528496948210140700993860487455622190697823729880270672211357761605935042756565841562203475443886742670616310762466895362064942481770299785775053263663345294020324935433919671698708744531949686114979961836392483422479502625539877073222564570202446239873093319310811435387496719684200146062315689256691724227169615870888133210808224995080628965449494066236504499138440805744909818455771299904508057688782816341163539451731540887565568649347670251274624647349714524088160710730206007147760970559813203156864785088226605467228155516148717880198342396023315396611727101715531364251084986178237027206269353086097435819154418513530751195681035368450803655812877744949732028843635000262698388427246311237828766239612578895012565704266669664169207601692315101747196278714113928259873791106179149248479882156612608270427678421060085567137627222127446946291496279683784899751020753560724718175408105664538445638200310010703896033648559363343027777379027750564946106961271902382263467620932168668240783324106049261472103619487458567562750195992833818701966816673611331647952154027605305905281926431750623626284005295096617320680060072464373160540099866585687437498699621343641939175112256560008053069738005591731976749023353555754138958054921098931727425758629591576912768137488881900909566565525206244701838427621358663831608673031728238822871910531566060313792251152054204751574360475753863300623762614558524830179248972118692136661705421207440795029081608216138478143176737082868943432570727485366401581031220878898537048546910784881846748972132580313677901126146239234539419536062073091529192327879865878841009785183494414141721965843528908855533454594093048435498447777873767877146311345891155258787190750248103657469041145919184569206678563895521947756473483844993449817378951255847456842864178429530121454110777419378083775540380786012918230182147918870422000967707838691719332926623237192481513204476489941820805455699341687989019316153909045746196366416589779886902040176070534452342119469015444985979502672470041318031778713674946019232724125968686123132985611452066296339473144064377816234195671559613213079419998131583224337800272495246087687134478438926056142344977709333716415259399375020736522773114459091614380829320464928232034566848840794540299923553318349778627173267637557875238653111266342279180209121042208766383491147886015343443876267781697150958466204431844308520978837945353930226922314179830058112227951829929072081598814095147429408391338283500801133026365617290921698547203628877939010383920782161901150526720741906021492554573882959975247079353442373304485225745597304562336694625254872169912192613715908009952786277245891041513663084968274789958284471547094067493818231243880760115765248809793164452784093165168820960112869729937228953597873249651064434308058466344966923387001796704379372921702337240161703226353064636453444854838365411872055635565509594188722195072913057762252662606092376269500811592594896827914554086512738523507031430792876037312542195953554428305516436031326371570987773382709243638821353553571192391965345068338298799063286363736819415318326430830886303980322122838071680620018215324987549926068261022900685869236618328385012943757262737353307997865561766706914182304573260618639773137526363612555651253615424504608680932186507186345723888812474913924703017265277353301564043273853178339140618916348147860886560417728137684459962294543676518257786218027717088510591791618540535673936351622324970914844084555647228336918840378894997457639835213092917760885609457586348139098015443025085094240570923382160242141690981006150742664145337682357573875083722228435140971511711352541661920156137901324247049067647978108462169491868254238367151993157825508018570966850683664018570971559516232108150219152336379915803193975786909906318087438000493726388943614602749295588477331736994996908679121438428800066028705722816655571748617285347106281951815834145168196823662201514614718730011563237361396114926682928217860056920113176521059658448003771454092273494005214804169234836768429375229820457463395825239784320123509371371206601697303420329106858995521890016188775959985491513560903610387754006488290846082959423059710051272635247413158621027273190518688824069083374531116727922000168461448674532684252506234137381139864627174703382449631768311169577753469409988074899208041651884846710200921766815929082381919165101335171783016259698589979614564877642339474688904731997606472838991835295994328698960888392197125845159486403739120038101016843636253056500093937631026548644390721892546006933653593919598850060646730186130479840090113512175093878562318832910783478198892565275273425831963593741807388360555459291311864955966171300589822051681217575045699269152295138238455838984239505712398873713980549758527708139152508429452969490147289657314476358873633737283686871721000343206106955257409335474929574002063107953979550851507124963253204599102094639543443114404653345040231349936317126670908440234744856172648763895589357898692130043652718643060633029345177196657013342126170428137693115983059030509639783248009787377069140208836954112843698195771535276023051665907302674725382392221216445599911091729262736292088958808258340278586102489391842359139897211477311809332925766496957475442657196230407221237956917995497732208048231584839477153231662611957604484884309057405174593112185577373405662545826553123418804401192011679601856128451337298184969154030134117438046213808983530445447988655823627635315419249382913356738030847826987229236380625652310432237845944892894653968874973431504166465657610170190681936254288570865816186744913112390943057904085658054422510299872635444279030933239779941279212312506851025884997040741182623831664360902594680145234291150599883932825386611275063242266409734594657269148919506813266698376983014845254992492671264562348328498706084577667072504839549385942529852357127276568326763390528059409284120192501568847631013045258759251486311019720180412228203944543830382832813035798408610500675557667754758996881697527731905268547251279917636625064240506229729849328247667764619236485064296972296003979946091314140103327629458903101894896076841080100298026953137387069610809276271515663779625279304040900640437803153466758583686835418508766427612237499111343104962232074677171577721249919228165280419874613081658812120136449285940071412962675840053683642693479596640121887091102677908608797634274243121096496889169270366069249744289374570929240840675693997331512157550545256788913387313270720072756563863392922204441264274431353742806161231600891062057875367681318376835238618660536729234354327353700093815225619949619004089317397260482225379918337216605429585213729011769412351862478197315674392561816247985403525577596545922483286829163805653826260150383973973989855081561919477853147651803871814003454221329776562839831841561859454012158940084821566592513293921464305201595960934199392987347538212021867253610810655530938893315055224116281961381622798544067980965100498782695799269882148130187866641607601730736880211267302327876829377084365938078311239555869719279448409383890900208929510409022627184567906750483485833215026329093064199910574168471529177032575685479303202351616532317946885368621593008518004308527610773209082737109657718069689093468191316285107453020677255798455987970778919697845474060785836832839642273812300318397125135120034696269091226546027562504301175153632561702309761162904163921337815555081304879525890588728782279970712682489908429973486463313677535154375845250072438080095547628738353265890216091726077603754112551679992082198239262221696819316022345241292068107259446057565355795032930087315304973800899076174590905183464102258905825591637736674591202255560246030294310320824536662681430482668890184783210447109698153814324413130666876850522360211081552227899196927727731128294836243853685831332504887675946980899551172026714387833377015505416666929901703001289907460079828878031848125054614226281630437063761222991217325994386316754230867058561320813769843347113647013988306908377062348013054444886586874557404373071108764190159855228049368023640352007322093991281339870015795507674706959702999379738530666748927486749325009037637799161665339202904213886237488456044962778048338728931487213681682666133548591362491586424801772890846472640254178615865823389538006715212672392814970867697676266263577314121064142936120888325776831553466502662811714368329956905192542953647975440561563664652048592990235960526721169727901152718140630020734027541109528170781764211558258114318377285513241967597363928556992200441549858655319593001887262508343785933550311642801027968686683117486971284210854467653718318523544906037594122486991353280142546830639008660136387429695757006950390242754032627277577059192625064249040532963486423211092996632870433777880090851993046519600798773403464768459437787948004799834514122148522534853022341395524540749493663728543945767151143472672044944965868885581295675465414323629545500473823505117184487819191417831780807569465696022432763244051921620089628059131031705470475227839523438731476351128233979081231218918234077651343753323741225949904748680077521634006034438603456387595996202539273985946987660298222355799032064590385584398572595428068886276463772165979828939331362785491492011938322670311513908564457580486100268628953600316835744682251970850531467660867831200364463210150616726328155867684151141540901502587180243555654368873423695615150519672740411882437168965912633312304786980797196841030352559137088204799268176635885619313528230226681057578016900099374248523406047188762343496004767004576375050852462413274600981984039056358118201309007893021584215199544125966523043642411801801488297476152257551093186342864888400998497818798848028344314104959050507049257552471225161016537188121478509204694724209314199021620620962938347647886667095440346927079075209582031213323372689437748456554347320681848071123347116517980722823176163263776401643759178865874924405979812228356004746795537096891088274988163195281244567259488855486123385785928318201981500358072050676889136491366784916393034652498277246278637426016887550401490377252380980822267224016500888531427037858372420834352659043961185489577108696268091956694755773571014632664175681952290926047867014455148334651556144827649925142524471519630848114323758358541125963466001253346738681201041706903579511018124778660954070360738201825124693784693956908405774646882915771998931408085776910757294947741179535262428520013064326014338993056724908051617750845629917523992853143136816439140315561524463180100292661083233830762737471691830596908226750255229344154743814219393103939329508135896558076950088153911059223102913116413967954194784587039422533614715347168776231193745017098375425662123304061946305818533416181777292921798610800188988306966927074600770030077330476541423701754660177417537226665292111599857745436737482321522326020334354696395540997678461074423290284996296875796447913080585341442383766274209949434636165165723005452496144809184506128346404499160363501389457777864860218155142569991323808809011978527375253491580486104134483867322426041415400672450378522802934201338368981063505040871665986582472813224279840421338167669536350591291746261647478357319701623573358319712979938777758489697609128832981689618358746842729830099584957085003944242491952520485178002956976721777284684611219464679580904903665476995597908258975857492824585637615974422461389391483487016236055040827858558249947109507861258834171130519937691654189108081913455500335212442050802496789888482379480339527691901224521064146889361987483363206996927670059428156481978587422807110455664552005880743356496808408331381601673662572313067032422969031068009902520754216146729216410770566048147596890845520487969235876023939185724389137392603163980383401926262506272715600058066186381880157100454931809069714148736027182250330110473805633832705858293836122008294756575500407722891782735980520758285039725244167772059402188118664310198341017191610360933065031391453433111228493602732825977126091063600558957684134266130376481893913734218272580018411145945927734247415090987564673917334463554524247509794145740555152783459918044974935074571551553728572633820551770839877340739132502352086131431949468640218358808175898512019509898867554798622775413423287005107119045016624226467721983261437682335754340801939883759244700470906147833580441017362977226131133262721191343031250228527883101119173077054377065170044582110775895939731385199838748512617780178652022992324605512106847481417360822606264516254995842918444533132685426804924882838136369107710110746174944607242095004038176825118504920994350628457247593396607433482349618961931171633302446461311465723181535707894165219785724360991733958841874522519972427619168856704155646659500258542119818856395720936891041650393700718431150111949245543154220619031374913894893059723258208963638340470321725908643263169923950364144128676437332182704216619576833459623787329633951963077128463051789528102911651133761422567785331525325708007883461843165085992111496737588985906769633113576072467321448736272470205182901340021114090946425660833418456655395424494025169160405424225192635018107087972078275085407249972049489388451524222375078551511561960258241079786038261093599056805240750136624811985509882100829493009546911827272876135672590149317170104206616139252187711934980234121110711665936908638084110030968774410937930364866474688904343311476335750728072526005047123498576354586550025755183426633794789561852970424999725835343116663566526386009042476643146316740815165847687198621521213764412607302744062003543915921051653123510776217400920676498928177206712686789488343419661319199630076763425224519059802324259375068340849753391180297284876090817701590112027166774187253492220162469975826452759041510451409880058807145080269098454868157868541243505715609640829062634686955289646268356208857124757727389089994852238700607328727273017126311833172110280017154633492436804171826725984241315312548841123273024587814158133505616239553902495668795223014977815448660100642559203368541651226597270887532681625641720483639328844093501584430745592558211331913128362002570899249140996224805782525370776764124299518639406994925289384430372039218237290873069537783160744827302348912962000579193350815536600124665724391279037205214578843931492745377827348865387277114972547704599559078947922996358639520835437689617801524691667467097015610557870030417527141034837331414123610586192462677241161220212848944239824965256131847497833100088016254122742912565132555714098871279122517159714839558484709651613068258776680683233806098054086061248049448565578476822130443713208370812192166869363871828819197144312531056775478430805214217277689628449746908390589551757621425685237249345970584319255860210743175999693374367233173269903697960343775360851482095131930537812210717560134304312358453844346730730927800740173492249191166309000181768420372372838416488566899161924366081633430401369687616042095449910578552897628661747398157551363620469852025214725967127342593728043306863158734866246857579180046095962836297754366485572564968949025751503672408173982452246269361427461796452269557897939051070332733835676326505851556110834190838352878636415757910319041759291625152635000572458771409890443563218100476439005064150546794644413225756832953069476410209838373485305805756810273255997708421052616996519671735004421323513009093949849200034789979012091817095875714098095720567899346597043521986799506739066421886139087289570752637654476276840294561633469205151111315438038395934243688330537600536783261560920555833598037677211292351752697206308123896387601418179419719638651516759319083842635548209284172358520452369733032977960900823075744476792947095397869047505917575295235226041391544175909545011785016078234886090274811139535601763898931897448718767593765946701945989154328117005118679107819626352518459238134547209866098739298964327625149079249977368565940028034923117657234928141553824231617946755432678237470188968485164348974541034665313670709649879185929999276494403762225652921059306554609119138871332631372777501339222972624092734697258774295250268767775334278421552850248151929265543129174138556329317467416882631109037903079016956509534320044542437083691691711268321882133656980099930070963251335538408463184058998166139030253082447051162066942328979093775402533302651866418475597410622652304864891820346589514842047506063560375988129367343197716892722567152588533482975117943912609923624912306276328490637350524398962165128885531135003570270528329407643896408519267247199429694596895372154263610969540090241117992277387978365850572206814469258571525140066148607256547998113608737465359199006551835050799055240566258809908118135612766985088401180334586375527831954119086753512070291094058457234019128853250235150321536118750287972239076754400535024563113960402119858406022198723792454307783624040814291510303863435940046554290846340381908421311099745184580111533622751121314947012878392122133119645395290399525252621722557759146622895117096230245518327206169892835914483135259596263104396004755566901232130083360001888404805162965168011999123119212707156648506269373435960422321829864708347273239306192865914161964337076609520901347583402540614832450794436118662494870450300274519511774949574253054816306703175360905312161158156334537015528120181978358917569609093757404956796386136091788706471061221303641351912523963047559578574807358999288134806753449445891690322034331121603511073508987956856170993348981102508935373393285011816201196538060486657800559049042307381724951535192568684491769951103443425644986262247513137076329743504200293305342551052910211016771818591858001463724752454161254566757198738011628672157913814751600889963838091212040315214266782347285480724817381586085239437500340854307013163399601285218068462422743245412013934656597318099177993554768750176191385182274507135508233098010062382563109186004815686570664296108202708585543170395531441283052972435729140043074095095675862683781998190048571476433288132231400322580477131662216207249876860426220843240153220258395320889676902764075540641596195123601138603280796122236861416870799376649971111810670711051375603187477498632321758713069188322741350772072861164702248427173127839285144172402047572232994420713749077411022491811255478081320893781056717252029090512845506720730310624793376198554810593807662122077628429681382476698867689247570517015792475834467147554493464944880212166035494254176357347680293511453315250841822507653139740487711123676205218653454312876252822497388149389397639333338682324698833838726548065729953094830809683334844351072311477199663645418415019197787107405045807843189268136989754126777813354980300650304857405598245434308723130778059401913164273467493096624834282395819947622607323097653842659184243495465511344640682360619742581663059227871910746383863037181433831413865449280884868701865004945513658180076009470652553804093643667083767547090103983239713741828072587302949202800591004325103778992985158763945427770334026209681896766028958395849366995842907475818960800878264155838350089415842079882311587857869041008924755654664895234229260068670866141113344760398181162805969810086656240538257847740673037518517211983817285498453484923519146399087578120269302600158613537442948044862470544136182387124840225184304411646107060842169789754673848332727643541374928743817763786693924914594143420501892854304162208848422264273519782625847934654150413904015589077539676194566984818479415054031199283826324539601546592288509669310994467193256813464887148341728206862847686631376630409932231421172707995533301749545165647483851386053122995755717658596530884329269544439418020029922107087279686490869987348969114741797249831764599791934767493773657438078809935055173362234517157171525792884406711719919361298320893118503222157575499856183984176128605345334640476922974411018710255097894134852239369834129755794734558796809870171073463102601335040019559572152172098635145166936009152645701582951208296171206606577184562228819912045053482204103101110066432087251584565339540297281101226837157066532114379583139119609927206294290810090812642239213729821007456164799954940274795691771707468345146834408622308002070308636021846638235801551890593809495250623417429959603227298842935662826127646426816103453346666343373749654164960329085136673594106587236828056743314727766779166213668709014504941877585995416069902137347802807268429616632265980936187944185474564612062499320870249316574994732941172470795500393912348258851785544304434780704168769661878799062836582864400693690890951555365733229771703795762095100704286135037195132104403326420393438046973416024825155003755090095840751972196425274704877425520574194716439002756744491102710381661078438511735390607684310496293528801780420836641062254591357017302859331221043358650449378352514441082477007918665212216479527315552766873772747460777440650964836398938312260715877217300601035618349923013166574126092304777338386225273709990185344349455508585610759435063663011993194537269041924862351611400543661361711004676350268414806978444835558784720118180536838318223337387509814137583657914844900420769376143712275228633483342905171440453777396784361630993366556731235814263135379880430587788407213902683893191134655150556337541831439812920414121995711296843518076700856412883497486659010242160282858023310946587378834296447097946312765623175124863878279354573220556558526521189503802369683810271910866022007937882754029727967798032675243682614264561192725105175610854301383223194562511372310236476113089283626089689709726365232275454011822495290957763379876722613575682613650404216377126061561462131632994410618754908338260755400768516356262353439943772233267589512868898515556611519558695757393081480533366483381332578514011663506482477824086730861509621759835939913949457473480553592730041981995872433503972475520163035755455405984318735213160949903706277238673042801594228900098015407651653785116840748672769028942926961217089289896344364510524630081663318231767594607298054345373705182182566506024962235703437071891888843801674227505880906546729512585240023401726483621287560795740331500112444746145380624894836601501351294559777680750825663178478735552130031516886139106973898575471575113446506606596463321535298476367793370953158894182449534254327687077033178689643488131252433923543612025480236960479566479806250156570490364297053926352926081782025866167969925101635453031369763214074141518319955575320410729891120548716908788632326710599189325003273566021446010805830488731031532370887317710419385931319948438411875535320511121873450704370090257419786047703046899760247450718753104997691893356876608508525457545405268302236535363696742412375176697150047433518460045838269968191714924699262639653206117065276449959738739661038307580075103454379519431704921201944736870354968469422465515166782592333380561672040876217357046066947696337394081656968028405944332209776426441087995535702453485949061538110255863694503615318399482532780508516179047042010018042755883068322768424728748446817317515033305766868058308478703004699862907255973205407888689092282441246054703868835222560710471286001155945873221882098352358980706582582766521825927683906177135206066445586163003487022867415020697531083172971520990981143122625920669120783851232686644111216025796290764882384071139864538273534675629399943614306050727617800778331085161866265563604482039214734102749956264407101598770161484760687527512634129619959164567504825104008325779869023753459452052234119822199964722444991078399855501799425007541743564678052311733167811065238376059504053815374082134380581470863784293711376753522712304395486241675909456546490649472249188211790285370812979282409628609715522132801280934126102404008236084759478891913392042684560521391650379703974078748499767295511262298425859647343494658917080508692904178532664071016607067495436293134925699434810761223537636371162782080751822934119634050192869166220779176992391557848607402061436806082392893189730454125195190619670373933753402043435642443390092778560756016307677715940785654091616575849731732925911695967293501268787338853670085337075192336562811518769981446116440030290512145347857599395232599534206016874607736084308752165872255266885839013533177044229009354477523647596451998739416222020806841456724975518755036924413674732715082949066810967049625266689499702911552227989871436532815134860510817957762922128238836181373253028889712285703206445317066896208275720159237939967053699660187618691603351552056931855828750746206401318728718996964983936008344180914768165912613990766120249805995804498767791561133925192464981870307487567616154283890832416827888862423829529425497077371147125553883784845606445710394066182889603299855230372299795291550647550285397150520265690809455864907510245550734713380978116287261489227489135536712573991745649984540747097917140015686107917011617981598623532955121587285553410421642008170279096897664100886575170478164145061584478852496240729090383492596392226988329962550724002011582063488873271645209851738325365984322675836384251451604476855856583649458269679923283123618731095473096983727038353451626393021091036045954608994404982374990998670057766254584759244803589914634865731192899111911698473459554296271710634683667809311492686288197812292743702084484670364252917018368048618579732527004851346583674023448173833882960758087340467962093307325009940337912054959781833201490402001431070601867924049100537204083356015536006477717098226200482185436708906528657100431667919450943378011960900383448436383558982483962048493906024136811375702626032884924633097894017269352532675997705181397394283477127527705455482877636178404645349375801905684584979616476805035550952764040333716609479267058463835717671737864651350128137774001158132091974955099551542358996967399803812283846756315302166368522505541142361322912568336868957671702178827847124802774608668038894178279336790298713131611286712592623602370353167900827531580730055526425265883617895714492799737104762201106036579886656503941428740101665636352864665039769876328382078291834660604202459686339918421441984114606250280212651702935535560812181426281074621327560696335259703299245379558421166770330907946366951994448516844399910429080493919934149216652159551457406704731869261761877086623699877698586518353780310740672790754460409341600526874624904137428099745315086569174568753771110694773589692733537486672155542377996139319883591638848160221529186681435013371678304935277939870890392370919044590438896316997283148022527869245376586772094016203724645742216423038615475993208758074457566168153900954101131143117161332852742428071027912142264350193809087100053514459390179207135532917750782571381477463818394073389650319628506536753283703818973643587560496560833766657797909224836270816897097086717485274861129220751214659202509457743628117771818681164489092425907857720794589828370844013502410198827266424644442880569888624637217632128727341912762443080718671097966900461125471895395225371793279958840123513628325958784182271337256453508044750253859067151497871300880974828665988214401586587901209076364702425386169678907884343553032950639501966633236945231156223092195692972486718728949722250161487555149320249451652254622235004669662172131029073933665102156975022163462975982581693406420480885546881697954589325508026736062471907854203564249491075997916194389137302638354568198147239001867174914768570833394334733388113823000232430594270774073730107853589396305011249388109791157029483109963848898447419057252252702721241733031293252654538833758556735872152039012826428854032304284501646302104492678620357199954096021590878887474156482602952402936558454802957385001926432657189982892393901049767251109475939281231171826454646565387460761800001594440329993027935378951320742479347764561849274948568950227137784738588741468978113052293007737329081347926061899887299765927310088670062884795714058725677040736911455943017625233412577977304011018589864318698122522822305952452461677886077870007713276898975029373056160686378378211568350371626767981185856891942810457404848652970573532325928654463462692697164187635870862588979813542239662489820569212298082326521558789030199541681580410523261239657911283368715156992683216046170917177212287592668267792299629466658638783982413241443206022870019184820052046002858550713799996244836401480161359155204434819799732638432928731575648236254387701302466959451629788989500578188284996968895405983700022983601685616965833920992162178466577246764980346272792982516932337129273017147940411417481255339663864268415377831990296213688063157171883289220647197429103249047552795362902362034949687775715022075987655537356974736922573062178352961857213624455002850401584841934128238591408285546458413275673415974861605771529101714731260621662940719501583714170363628741083102103684204030893188157414395238362714743495598958296704337678689237911347693608621562141859604695615096764262891755426407319337878479102538389928053703906566212998491267933276999221907976291420555063713620202455696714805791124447378549479815886300289423921492180968619927582199165051527863418747161689025871893424435914323666478007981054180844195450759633869402481109248598534550337822570848571216979878822446539450794597052957649054129178733911360425764567695158092707874028447898914169167168317309506410138272852752448855317965720097352481790214644521494617025576424788289962277553899648656220266183281234899430209995363461908479230171245433733929928669819972407875107022042067649655476459301208507783367976812030099362622154068613727636712786240919960446166701206100859217383975767557887791942418794190894978712762427124842089815752501812570957332195915221135384812368164485179471796222222328082072060308618923194754706752409989996777648058280675888976603038108997182306088093538656743804891246149292355580738786173154337139803559770202712735118809408595537973251721387991415774303701219364886759663663716126314871143160762212683398562197194198008160472281502570204859277260047508991566447981398645716124940384296334731026684852812935537350606608151512312496745852654429209286332750874630006203463934712608788315411390938072348777384911311248231955533464571280007324139954703879670324409719428152278801030495396674909946040962183128414746205209368652289617901553006921797039429372801776418544233767230807883389812714799490874531427717078450338070934417100937522205709996937873799164853956807076020083115503739624017160047145360056653498723824311650187987323458825258508016134324257428835268317079258894864192276146363481545629138487782900775369173167452870779880929555391459043932975241177248680933975393866910022968206216413269615749406712560957133822387910683452741236712500475803697665683493698015807245707978853331947230334379445929189503537456796371277565669006361841332573427547424020639862761075048880474292502852779826806854741727519831879348736857674387751816580092056463446906177125863743440055378579018887547200349878074756974852832937496073477723144022550556095947227133235701287448691978148530415837079030754569099344168684336755163500673842558416181407202081336877978775484043560258532479712026334912102749885110814191975689935633921831017867490307172186150643946485768176867806779399484787206348563137599915110401703421931362454972871144424379349806288263443683370387428108788075282873683014734666010610198459545917266511306610513184838023770152378277581434556200389135388254583602213996301407042801068670267832378753724254624583616693637210579477596097824559470271968984690294697762167340869997287014010163138768379115595149737731797506408964492976427796955944585522899927631083982612949054242776285666902083952918562184778442656466663329007994247251636024709257725567949284378461121596161518572335242021733102247313833159136229660065223298694658504310875607905423161649367499782562424081399267523474835418397028653542215112724939600409648526739679590016272116451423313721009904747291415552821257851176304301905846567187409344484360261407787216398968217186619083920047964297119346961727846864488984728795795112426228979729252883637790387233485349121909889200585525510585044008230478045550638371742086636243408203553918503630436254698060593911572117840978849066309087454904185372675727568286306060882729288230733708614556990303779480498401558106748966780993483107867306545461062865138136655244818626869134281444949479530689168298296496497549712922669203879966074148628920931931345618715913706277674686205748399380614204384502373411297727974374938772013336469102987858537344759450987632191879661004128354215448772807018642602379149866741613260511550559731615599695708819658986022236238627005230503799960008022985008306468920072504856605258558672816736515833109632357566763254951149324424689680000619182351791601265836228491421658039523443460695867372809097556595968749634027253480467427657971895152013773694595023392598226211819054485572986629277746128949635843942208100224953777041718538662137538458958467737002367405354968354808453538511193862515722598555804774731995125181052819114920703237104641783877945833605231330446904851250899433160306341132582641293591561952742990249781490369326844279708015202486900868679749481419225888411421340152318629263551765934703877763253931849195058162079715751198101358800044997580812721885386509401896580527253340986220496677859755273541551261050956611066430468839404460050057701370875186445693792264297955215440241610984221938902368011263378465923158494349217863814784232968914390815508509055772034732424402021606000871258363467546926863454876068301044271788822399682290713858904444636865587626077428721448647128992193611327728938130205560419972796253189907956739055325581886656421390791304403241795751193520435789467508724313169823482905745982623115742949319648573473161023903948355624016360035164001942024590494320471857551095659156812634943534616976700321871776244357845856044426811469501116489051787931608897725233803049521573002012329561574318157992394795801279835987875935633168604909185876156135538550847582911956624499351618768980663996312731865619310979167680722169785365323140107600921885063987422993763216499062425240170216393264361307058498449615355175205347145900330775694599014885917110041807694020273522709401612388634755689279922180521386706592453681704942187090716434037350009646331381390783482460995566715410568275856330305840577113083729422340303051730265941060586734994892584397264299402548982112846551011539765691370570741891750791081980818571404333544689505080425143044953889898855565161226733325024289490970899339254797336260079606393739778773067226896265939967838883526168138353650949795938970079716079267218350281700291947885957622322100913232545468402607389407223137116087686432673129937408781835897022631439292092975381812317395365035173407250014208954582123751801833890087960872957945592259557598614102252111510425089132089003538498479763375354642024980766324588410467718320486117064068658552769781665273042437644823183652193643068072245788371831774064226775583411675520664802029064955052432525446341242009628038454624910936424409847280086388536196627591741442301316555627138755391323146253556454553183249728171548871255215224642830137099351847205131005109576090689922856000436831078649795932639934157227596159056610809363441552855281717465969628947997309177871616339044227693943757492464832543879340495933062938120360450904569406408716731614994853247387607600490253365801144085815602076206587917197975254395668113242917184641755744641548442644066924142073233056343665206576842767036536058238171741441281006257472344510338499217884033809648734540141575878432244727285578223456659523186714962515064642874128680979064531111132245587227976263190069502216722534511416713343686130376711554214313119724635053294644602944912096803673420273922617197112359526760075658472060654608929094552819702614049674267672293484365335278392859166851444888467537223292616023591872335160311597902231219085004047370161988435052874570600789440425938339303896660393443916336284103646975318564332614992399169935452466148592733034628909464754560715588756401631569278783243237765888183641976463756635808593783039485913109953738255926740875502888943956478193199856893292482837302160242183169375303543555150884412265121516616678203280310447258334282452222309273630363656146485087508201820422060863425407796203762839659874673275196868624113924946040914349422202717887474675868999565807522294729667115583543037956911461128176727147510967639141118539225356055240633330336144058547704809884669368773215745940294232941011273672215786470944907421131961794873270258864520939387526878140075388519763143319744542485543400953432182540031084273782354087304510663295702712128726240807715914949761311280228990915305157056889123708307175599990464458132641358521403280294277954796005191398300877781462479113950177223127917490106353736297159428546834562405268655525668224183295096465621956664381475568138555629867736902763192569366462166247882157637518839108594287707070458325678361812418728587101461886637281480504670680015129161738706142409022451365464944581624924859953211695560456797706360512415007230043152897053130147691044782882411468723081502850777659678666143462315531670120326279961338226554173581016344925826680190808856144215621676460673714987681542838780371424791062772851296151756636029861017375156971547097749857518170888426351229005518509878389060617125021322603041905889586757684838040370693797086945646949246224123709357294018560508263792632236523816855938970625736507448095139754603675015437563167554714255924161609861718569881933798493014451740736005956000479106133288972501688035611579925470340845325644699577748460462410534246476108240999571844373550888944642281100588718169663065053786857902885130082676566075983649127879537540100688993773944552116924958921340790803581224232080776370250608090791348597203592085314648735758320384696893182326085898456013925663865487847160140228625427727453263467769868411258161187988108854055224473560679993493401017105634272326068970371451208324624487058401779535806553106722670994023994449369678603599331487899687457988290490874504791423099985171816036714608046928901655961570942127697923132089239980739896196603013463948263399678874047392770760885001683163777997585397215313283749591659562424842012531954606038330996410870970786862972872073162945266803708343182216095508578037392895797782038876480209613062714695713162364310693093125566609829595027689797603424529236968451356078605467723785359977340548589072989437115480039869408350077125326947867532928282997177117678930143540288043099949544159658491689688620988011248824611709898457111615777409841920627202671687946818038090323298670060758776125122219321239079333129948550210273136601612998785796693139067083024699010158243434548454802436259525070366466438955541900734251373557816356506848117770760326091663333727996344048514474578349901027251711413037550662732741554867763203424227152262713036908870025196447703564644081185419101638275322527159027253337245786596289052560758100659571644919553993936784065668846540376331962689992992892794834875436976606782018300960887474772658200996657235871400468830259557332243240292268342028116939391327797015386367911592093961360348016446814481160265477094591196620350886160775706633256234811254734317781322554824492149496321793915425267189614511210432148554041399163942674340978503478544130800752785352181927559646284551899173311776752824731238846281563590722619900187378712361483189380420484357746637605037455251454007450738567450171930601765430036547957487587137855916734313041335020446100052817376626246830701839754317923784631798641119979410409467258257006019532071249206030156547529818565586484409582258013244141920711491289977863533676004458188193351214585649206302823511997970503687109236153951610966886596345419195917604024982200750220329345370909335727347964732809785808581686425620507637143321087539788109272223099488394662400200662655845772097326567768229116265164294360929822102269897337203846901135270320255490987984769747753737676566137213207211580891616671125213983598394465315658137568055484209370077179128137510486114535617640109770021125107552931845310209362109990686430950491135020342872008711706024614620728247304084323660008169274412392839202665096125841504587001577370719928036212510954614575016710629042222620383602555596201697006239504535775994052596616640782997525648744906738242479989621199837789431795929919360837375928570324107104700173556121433921427467296085621443392786020012116944099622872163023020172194449845600815626778193614235621091320532302211853837778978620700622414390569697686615447497298222952344593402975068056057147763600374800785063800537079950674620272875619349467983766842682132776690516537904068013402303709561682592572272142219103359837272754813409577718666043440959768591309077692455694501305388448735349505341599914909318243063152529798404712008767494168338890154515542864345542042728874375370809445216895822858211987441849665781891282484031625460331440460231325620272405691135311741092866321233912036139017639388488466271959200294580274762453199883738102358108466197121448398590821329599710039376439530548123729490373088444827313912457130749409355648633041739092839499587903340456153972228984451552728187329231176609069778428760831139620042754916279706176229426186868553414344199387492977347000490881908819179811111133207778185359552102718016267256028970796286325164045375764603736781815098594354179316378832070836318845115424355070971969860304724075867453432982579455647824831932216107655292825082379426350597643438673197469262214298031742466248779191227895022549365197137369639578019800062929053183899804639307463542664400852279476858187631715264258510237955542082765824172013232566150541922355859599161457952917325252498098397534256080783815174677044302223045294420294679680829521952432024318203780918137441458801152401857286564176228842377842871313330646653476958122590410531808098762704094868675756974422981548631299825008923418473261587948061854597031133007069967223312767990756111058885719622867576992087245341229946213966024789738968557007715529403738142430093373074145166435887173317765272463793606763046921302850120751913332454881773261215644387358712171356898886483209986958847617886959881169773879606133860515442419405453818066007511895521520344861332552614683311743337306823775023787326002279087076744945035106621821062005885848010468866336288512676296632847500723322020288532539149724965999116522318570682385999011897637097954944126250197291229116105821952641457721129440629246061180431764923941068659842462240952895701361265916002021704581949395372661818245797584515152019431201002332246426033223122759290639501835052896370623149649386825111426685242364102873472109370539480818056092795323128702300066912463421073031071258687415459947126671554782514131060685980613087649242840382352923125432832135200680997505318981364882104516547623217783576814743261831275434066561619325708282537920469831877167881634364854537569588842002941969909345630340867832277553825487524499405384624422615421076944601817719933054898028180868116846151225955795349683332771367800626438515885615001347043358844473640697332716912419153231114889237541828804950869233136606211236000128866858392946647065718829389821378746944863783604568806137074700716398838355563191682855564354541559167764631459840316849679315790610920946719289780102520191050863137162502797678709154189019026883359727396032836054637206675137565404346526767103744596207966964449120328332382831292117697311694439630568183712852161739412640996599598651799012614035428610078630415991016992760706641924320068794082056612941343292323911049786196847207825979284093078114665027317724757939012317333119680223633748021473703147147070306924965727270586481252926387252063604525879079737437287579206489126696084984005219577581733067114403687239218638649479077217240267931809005990260547316417963593910007761723842697496045163251351917769780558533126899514596163366428288447916858458731245916816114952999894895835118594776013477488634029209931142268535994999061451731406576848671163722167612761312496716298175557642896627295243246445413131371253916408895249814074416534208340497569976254324317817715001885171835449970329678036480468920786781811988165806091084716477670899340197024455816474088292055570050731825262112000403266244649084980833907053676201172195182119701265786104993027146126144808262411561854989031961579726135506876070311711992396728128469200597283885524582466342959755670055427555890880908302658271559988588837290829798498151978524373884737337723937180896804636959461801422694544589522962624254295716692894608004901267847323957966926172215653036294337659986580791257116755307858689174273865094249100938414129984128954649571462727886031404218020863774246744428684139630453652194524867570139099885459940730639194764365568922704852190522871906716972445635518231915762198753445882373540431188030870087323051290684469858397998701337342269254079101135189173417293326837800200395349008965259590254914234003565615035281918472499174259068727301154736781191016127318288459581380255313642003357245453441873124242681406586828834513631093554734970738864820619493181904568453253677759151689293714477036672969685420504791706205470729482339516932245404934946502699134135055079554685059739456014373526232139580979521150280444465715014514416666713978925289424226650545584715343070564870822125695501984334335367948877315072893900193422478286108596954144929944418652988901996045535990931055138120328418628593072772993754711279328132281863087502644709187096382460874728878792537723579333972493477776880414846161557527650776273203895280232321501429921040643517619443084306754536718732717305371922395200762479230644671274632894541143942316900445026869521941465087877264164759870343137917128934646469367233874618615067610258251490925229614936143959774237745742708634462465886348147192763514106892970724181933760076079980351627349781551947495365491321051436748841269565671495765047765928775086057533607355127054508915243931576104912651548717890036343725213760604127951649353994658780329708243000047114498105607880489297083467631256387876026793802697268478393289309733033478104319194422758952204518589932661527783025346732075485928626850334775406775027504666844891301339205566818292192765471160416187996229900871201984596865871882252986873012039571714682315401887980486444571304047598179169216378202844047998043625607835861359977448062986316999526272313932220388289752959444960185172195195136381906669301220135367966182263536606368948708731792765548125274716653618801092763747064800640607160262588473168313377428127469207260954037520564735361713985870570519908167046393857679762415476821505768615504645511552738979041005317672394029842053074086699058743841671353184029457530834688320975742637837198397760132611287013174133079146328887595001073267109672755814266126812170569885203184316213872767227231619259461657525210677356613198062605697447358944568396687754528375323628829849599468950525809033849300560097410541788802931328957942613744003920470793127096514909724764591432909972162556137526295285984157527936668083074330285016747569895618791606728972881586418157670714479402432195408785268366016352468225416484013476529849198056342255000233180893711390102959238775758314397292670443583773918514325526396417887679151102228921988967913652453511847472858887213784092190024085286578636007286199281387075155625683480412465336384776322459528230736073395967251219219738779784462981436676600705862577042829226924999647396163222237692998544859295841742543505111422276253039765040026597496547405126041101168756947221514441519039964970481724881072122279383003505743857011707462286286746768362927627205693739068563606572613375175850850331753555783092594664404766542545199263919489311944697202463189879436536012994735396769955655288591437998594004183737424551542685927724853355820210062680308904037960452982054651350907320601263983019616536376793408820772266659177659541741416282999797154099500238729488733831393897958879285325172973534661747937123160281024156476499764717889603164042903104515330511097177928448719425180769669626705100666594546803060069739001953354134846867209236446145024548624340998643519753691023960796133185301943893047907667741706584419595879180584922310478231149534992360401268762845454953602124978180050978658471596495992032312712409017917399155868164357495541546923187682237198155368013967408860800773320627388978350750753964215069219007799992261408296592344344215559098476326700976981082747841541134576630728764397489037581276363539118127986997485673113352068727499630253508545234450942422386704021829444710904824283649923974174472096151785401318134144998084091530358658742691199245133223260153495681908665441323305851584195755125843586281599293851634876140025397036732669784983469069551348267413726337612022725305490510948465509627536057097660366017891287888052415362483504782895085366414836733049159649076558551847300869528990809175567710383057489458651997853200296358787369531087780467292038844151552510966191511435870873674421140244521817279303837376382252038358400075888154662810425675206870640558587178588341131905570176269120028304027816038662355212314461548534010283156087308885091252987054692883656286806201062791153695549113055854432107355805931399061941058593902163495047560822376997467010667518469452550578039572970118841516047074930832889888842319245608449558893021272419717804264978805203555239024960229898992212022997822548916550066355867314801857422716981204878000035683848384635152209283428435586940565632586966335781082539577940457027334517913882607612407717728807897979492995015988233291892338733246406216617623461223820782292733298685731294066223981566267661733000131628252406594562299456926848318056212313084863560359327309911001166982190231455224856450979491428066328112990853046171288805741685888824916920634215139172013127954532379945245550173318958875810472438827164419675948847817546129030900598436838760515311453223093866374345423242472736687020014818103872955095141550731674218618512656353492778772807732465667170582244613396646274638438228960226492608469391688863587954539270815866991996270668389431425381292628062008477150963400526742314597692258373373526653372131262797632832297011301039651903893230494383864398822043301089135468105949254913093240618563893851915361724780744146608709910757862752678995764209654815523615447612784852384832756695063320554684283206189592676389584323380922594396862570552960838464328363282960945640917269741125438180570034417865363332605070474651819642873796310494023311564556252862118753734257691297170022928220378632900926354403264926192787604764543877409493049432528254021833700407860576491256363600414242991946320728530137182683492624578113696614853323038087035091383825530207831019004699081100357911733749841653749274216893960094807845496429831817002171819345257201344720740636704207703636990537221246546781134178976817659416503816705545282546499331838396185717404083522199299483669928575285204084044226059097287632107879434546886084940001333481066451210086922526791469288953111800146407490945505674871815116315472567760080133713326183331227365833869041702131252109403372316662717103612110954035694889829571833329817334589256903197802774246964700253862571300882094253797556055634338716064149734140997880204547886297983827310487972553527575905649323344957658283488077583168333245056680320621055197372153303820966272658900720924955118876109650059747746290603467899803287876853350345546301784071631882613944174675236604847632475511819516988159436592610020640100249760551701361359759168969282132404167081438240184380635236517368916910835274779796735913984425839087670746908627682418727377339083469668031427066813079477264612573629872262731752559038492010053753348987661301649563126773850411884037334569221473138103582460313258487999922240840831519594901097428232412976387581305421741471317890894456117897942231060567512937006377813378997112271153294251929790898885013516259974554148309997606519585876860174056344364832961545128177194402428379385512845937963592570732247915029356979942701054722234943447491690739107470177202111324681148570237431065802205937942095679823816772580943729331719831320159943899242702921690296984133308752620547558885126311929587331039321911349215886688921616583515637066555397569245505286230264006424784537912782170364923544729383899123928550116264161131762218306152022167659919100733937937583180019343384316162577768164228696716243353752328627832569999117890393139410364949594524186152590623648553779707720828501436399849456915997584516095124696811958051760445873566723241606092740354103311101564425792974980242374083090784952980979099610387148780123411160437959453889625005004354089593631742170930781274552368745559349079227806128530801126918192655435487939348000017823525366903861046541348442333810800623041423517022007959668941553576047070882301719906703959625207770423004352836438961395026223993194093968434053402975920532483831483619057422828301911569787726049554515073009007711554998284444397306813953607212988129256134761247343995495567514963563237226157808749769354895211162942824397443691111087517985320733640590735485578967505270207725626224903094730171261916548686052636877060067051636970884238207162767681598802340676493909411671227045267936724527299399963983606960896546686129225962621904033844868225933713657191881253365107190566942745363260194456408211812747426705842529495341077922499815492477620602137605027645255680939317511644069678659935036956286825629086879144454717670553131500468532094968140542526208101265059632934749602206622665349947707260912569505751530313722856545317180868667619700277297669410129600497998538438589304921158247393097121263508777454165671836695587682549807958134165666542458986987333536026309536738042692264132832435696990356363675832032789983282660171417226310330372880661121647672758535486356267021125691181798206818196375838862289942126794760828602206101198523275244011588116851511559410815374310991768466436113390871518647689138340328213486432596511235014191570432967956519456969992664021559942597654004066417586931862556155211503359367063121096289375496231100245066022950785223382918652192768719284812701008300170401493951714804737007421300653651765072194122009192358607143629550070166595115865778846058158055350418696470714504552657950369806225676693917543077727764254072083738350211113053639720229710633306424465717160576322204842163327975792091255766899649381416376762981680373119090452942572915447912963590549025036534711166427218280994150292035360212477400660683541715305779362204863180041300460184265974911458914812683242471140451737999205316927521641846120321214006984930130553837248475910045808623831842262422295467169394752941307782348050317394799688853317657536498076165420426461611691319065076901841130271135105072376482500899443503965205468078203338946304547698246027954330468782956461299780091343634286676687901567033921109619935408397171087363829762995948314291249809852690356647069904319332419009078196737917952417665255375879799541492629258897498138214774485785596190565743352673084975859028776227064068251299148183195818626545401129981942899253319280508893969713940187196346264019173092928094407056825587601660575200902704207439465234588659845339918580070472738630053641426292381470532900451598969160757320785030385414425641659160496539618043040938739864479682712529159568102048114071685558700019346595529898642436035563461679537423038392564917575750816207221347048907500809529982518563540768312502358747470479982040420224641594392238694105868021524242156339451206796617685992294984876836588402902254123960995776530365224411163519923252598786142074305732329896886916499022830638503576342813709215579421784230831998303040043140030380471801004954110121814151596644541932657526644769319725434988268902115976917062371239226790577483221588819497736355985226705925445724519125386124812412284271054974156873063651944981336897586574448310465618095767211104192057458280167711337988881746315176201964725285666478499225624619162964679814184229985906777439731894403865812979349369831431344543340424807644805418307737831763970849277751253060803520897731208356391071804829805840996418705608974912641193402624645305409942311128275554512241863177006512949812011985818358874180954867827046470591069225822355444253332025323872528580921388372839584187780932583983033710639007758712647586641822174469435402647995547909105000991602648348690765158013230768547834034555692469835410426445160707530693820692078320049084535496742699489811171566237404776230625188823757429013163013805255581273375230858005159386286091046769498379871737510788241731354635430644002416905472410366259771892172205273497705296940748451281087142146702195348134915610075222997563169386963471102348796055808234991165431223459466424160600130373635419333617631573465119664590316919285674628845109974315975881306442659511816898545062201324407238323349473634550503251994682842390125140519338019816361466822835251002849938893243652164327757752112025800772469328685693007912848520483812253524265887031822826584939876938078612736358006109521395488337763023490022541913010415107236972624717611767729196289364718732005894390009357919628517459124936171739587007871205671161906630711897907264597697991791315655116230361111220459683723282272527232908906938262100290728024387444442456704886921260237995351814689977042924640620395988706063921812795056958159833595209155375335761775241778378339902646301070836077479998117118068514868471658017478636466775565877936608453361656206413694000621134540044137530918042344948015831902805164495093420600493224048819089110547355795123061057029550950773977319125435680876285173506399270686378966137831343601963981655397252509792229437508876872392842605746982839895564196990042473532261022842521461816926489688945544417337710299434901782789546286854621625278770867416685780868498080080933821315717347100329491292119454829014001129107415152298059611843043913629263960279192437520877451015398569273174549207211776286887743758618091311793163002042583974408489189907539415486115314816713117104297423236342885475983370530120380994046451540741877934317275032494401756528782292122997905564183753941240828442091980740373691993958910163943909452678548356624593220855030460656716745793775632579922433985327414865447035817544058137893592863833154330124248901188747116983667220768335396487180815639244464158792775595671069675458483818445787563782653937122411136828044438380357032573895009051567216308127147267790246186099478093634395567508107785968674543880906593517673192195538765850680931728780511088995203520558254634574755542936050004631310629251701293522394249094275259841853911748478263161353397342163544538049998323567638178488552112826843321159764573751542234255002477471941764482833177084712860067470119744922391024961943302891736570567724802000700113516242016937884699722662976146269206823892580991632692194155378074629522011312231930397795923103701862817231729895111204999520050046328307426871407547741226460149251835474382103402202842661588988955687185230956864483732382224054770824375668963700600299896342953557705405317878165137012347210764275885069950634560269450401264093904521400654551811490650382013300148758778553734601813534503270251504897293405486783224873765848518407746036942863147264934711394125102212016441137991218460107551724014960335426694258598887146130149412349830485272713322855177476192338746192616705132961339088448582725676345974467067363258290487565292833793592075254113405328577334319344033621907140301683626179849993529798771442607045382315277376417258523231261408329692320899486468010096153807651146694262534420125214074945574259251821656012904140262886292816989493339421095482214485316108197165350584100276224894648789282681705712084388714753590792411812228181993548327144316539191816267716846408462714677563414051244013507114595444676729996847574108579981626379221596579574818907303277815527022785686932027105587411253810956497534530716965318131304317800013035325771916675069542373383742659555255709790568727711522115027213160132616144026205829951531460650059015190250546990376058137949656514200585117680665049532119418797282101653465436497708797003889227035807647075670362502157454081015201092189109031239165706664447869295250070027653716751278338447474010268703024051940259181491836272892985509309293133813119737721201855655437969014395973643247431108426607320638347713573039752144084708161370685330673715647603938559691381008508077329741056127735648319255415968939300213546620086506493341198946453918134223858271125082994251941171845270953916981123741156170039632230730795295548720799920692819041145031069411563609367079246550663133783185631233191621537137003023896613395416751032309306934962511666494877632398767784880507529450241820485627026423277936029815514278767976655885186526937400889416283018373542935097555541548658214276552876774840925286375139585778725287717732586877687664610702367954884072714560401106425722089279970164619543777666450025231559330934801635980476159306931286688173280442603798982177308738190761558348575748972769213562519166564523512227449009692675483297215000290467519719684864334167727644074762713234642512834763816619905898102922938633097564616562153586367440791564873083307273339232049210677457526468173196750973976945371214067927691337257335654376283648612722501902775966970997440469658771685335575966704390865463895413664835554260778543291765624853278709430139521654322933972412148305388089059934558109043281066640260823979957284521340400860933433879326896879374953383516907239897916935408960168871924944603926938117804540920810512468093446288363384039402231471300238471097966861555628528043319643027936443285551071288433852674053396977176124283384566584715863456978950204259018565640463836749218087283621307966020185573533779572347704934561468555809270668030138137003945801687609319188149135114976035214543194268929102500736730933770865639177566512976517319416429692285366061348957467673976729722661002839304806726795752624265160433719771401584932685712695895380780733357129633935822467480493381595204219272754111001770335952454140974889111811329454555824711773152584215575316068198779870020458922258223585938627948652310340301699296244151898418894996142524987887512280676659272904630533709288502690022250612862178477905301287229737763593479217482954270868688929273694654455108924617747364637382787359253025206448597288190222012564606532399957903230843828216086580451000098872590842804240249925295803928828612863992918162678741598917085066638334657569962254373723833334455120053864777886524361809378084184436669720765150560714857371251332081097598277592058726738342266503069853346207213887596148398505113925790676201281887233856764533697021703711604668642825984779244708027124288891328717497770545080890217964498197057007771075454637682874786776330184427386631529148936140554007958850052827718312591623856881640046795211016923193613579468035370619475344882937532089719747424349928520286929029712683825847441590518312780763809852529537624663296868091412959333095953260212380890416943495175516247318707524715769706667929720146045337536860168579057559121183339754650180577419514007710531012531773984840123021446948264261565369740003231296045484922278067372385228088623982921071317887835726762074501421120494411306244092461745693318550202063389631340423858547359681583313950758635093142263645466506961769044634313210696741892596554986176770593065587001762651522011280577464528488425216883286761884069014524732821023789318507696056255695007415651545114512945065468172012091118742508162064390691597734042206629496749366637098223786063777995635987037553646943778341746948009532236097214157641137978364070727318769411258293476983375094859320396897563174235536885581500651519523581810766199263754931699230500433799727453365388337712186335093436854061180172547591987639922945663566132911238529985993969630936570462159604568891711602741678621950928351477328598224662137430584150712209218270816550922979903315944329289040619221312551986403431049236787810769275486469983721755955224763304889467130176676634912953997628641905503091228080616205357603580379150651984279918372645073681770897389466138686834745030369478343849281338502442797712412879848856783073369241418860160299885448425473839835841815902786896833536937965740458798370052766725432567465693304263731982941095781961787148240274088513137753638112307700775016466898226496751115415347774875072359644835374790306604007478007402934484110995544457772207636928570254633007505487889847670337889261759710363609474524639840782219043082414127549907037539259426471553593084535364230405937440972799410640604281419738715713795605030629032161448793109158228029920341009051216165309364229277466337207332919264163265282033511425251570841934086092709576081563187146918436282815671199797350008903597619234483255686572240344700264868402725445351619125060253541361263474535812767997393569208790670146617078397426908575861758947006699013183683019715586087804683828998772237173559280594228200045917689076344351556910711297454375537830529636104515999026698881338117931299860924843799620607230157336632959738302211306739031043194386997200644999289213031452906633543628863021302830809302017432157563784950784245482571551575984959310829547472916754322945284438338721755246858575671516003062669187843789012478510256926643108253992458428630272005469933828046814844155800717794341121663418820159231538763518524193862075560193490390130014361403075108598893670055623969900424137392292174513748017908384563551537066178847995367899266808965548198554715641603679851494625528989440307000364017567895171847530905654225006573310132350140258767756760905120985221780679963382419555285558128243821555426178815354305051170777707811862060604320535635744119135923366642059673702887380267090115536652380446740864171403321221778629085170271955856392076850071582674427167817124409995414751012570450253444928863203797394255008270781422617753755462098478728521175394757473521323640732753222934058578593646512358849839023167256375122738992028671386044854888842027364970052598435323562534674889940878336331773304553965887327356048465355724805457182504058419383975617110453764971719528158568977332144214364802023856736564168329121380486025764600765160558893080273214698331455107119384112164940823434439873518296797778120309312710994889374803098772176697794804059926706893340943058862927461710713163340725175691394985359716557434793004899271012677706860803926715147909767907921748633502577605365280349021851045456585161471734959569775856216939868745524164995191515263967873370347761903145243196441225971162556626019459172904584897506112133193435940714965876724034984028901899208160658056680597478574229870012831321952936528053444198166827807376125780445514180729849045938482162350469685682392179324862625286600382354635124698019350482268101491640431917920840444923752065884054391166823025128299075247795605322185463284176438317134534824376054223175559456082034878824866874479450103328245864304019092165263721935350843318311465842904900504277021533086750219658519576159747282266862533190460403940772027279985435944183576351448531619985293072482174996681166415336958401358179849163629893368274651060558776597180624596171526647806122199483799755714795985857499479217706950645997878457225261426150972489806718510051331610147049914455853216950958438429887969184119650783254190604916980273902097368468116915608881264487663814838818427843374362519120881325191115433659260321401187465325084981303322127145960211592121074613440391795622066937955623679101555040069398898564168816566336239573137734075877259061145314956231764035674107012797529951409770831675956549822397443715358284413575576396895994159102514587015736217476785711111515885694538980222792778425842395132763833514466571797275524504196367590101339327056894424885637328200845996152611411186471007732534885969788364731466598543709169752178608146072867643204529730412146978214170109833995883652443109385829267494415015209228769363597819761498193798706949816267811243424907155196560409143052350929200601571230076712455034839560317775709315338009505181438693212627268726976248371531632058214249815924790585438025228551063944928127514769632534467438690779547093606514661238286708613329147628279824341245476589732064686538381541111935365527015685642328361371810364449964034365880667353530010244562593029234922051196200404409968900726853179787577702600920183934515293058653311155694274539704074493144461497937774949156747405153159690057980850234471021956102387068850966463040087262777753792716917881974925704190666397512848147285906730605709652771662284472899196174908807248445568595598804338605325984548293479898892114214507689744686434132300751902375442602712602385583563218999058606002700613814631174556019999977995961043026115151255517514945276786643481738030234003364338783509086521898572634755890498101309585354782672183543264560489054340715320712943201493148944987601503380198491170597741634340440806857603672226007457103765990731041884576346869627495102122832228552298672324078552968355376581384654194545986836595401186599495719616610818235081313358801307238260853162874222551481183758259818016358138316972208627461999298270589244487710561369555196336475614909023198383337731585365533714910183368814738467378590879320730530154225039386370723497866056184332407332508952614910213610987978709049415013430092750841478082089779606053353903583942059140039471160889735472550866480165133810777742813373999380736725597526376468499580196339145131913351677217430873534798705271833071729670136102424586390796861035103477411284047820942410353069683267041630538598043690409483209045199209462125709586892640306844509682215172258688228091511850031669382309432595545932957451909085080165851182796930653887534581657958280577650846836620088645421011747671058562930981347094724623968699738961147667620160696470338755280552531952963634604610770741527096824725683382317462069317513306371708899085059380154461620856513765681261512153232518077569943867920898850709329849122842619885894786590478646290988046676062091925764269095712857705776643561855508871064889946953357539458570224445194177521360329030634879963167160047324380985267468688314709154295215089707394069618548714279530509700312899942818310469683333694905499184441649936168305550410260856623729750277477921514293950773171252958812284706808939779180112406978789712923905081403002243106255426649220938343389736412573607430318329210551354615497874929195178936166600908565921592256699775295348808536141425067206462790535297691560657896994349598814502624940969167293891060789112016531357757364493090173275145226095568633477341634650719794606145492695519453955912822871422640044832147933943936240252078264600277457145991314044786714432831794146473300457401330651936273705244344071781209269647284066806986592475575710977896183409616452809430705307422338294301246781707654140250540590899008700585073624989638467779816443460519194433029715146027218376062103394125957343986945324653692176075326311362559272897862213667157688109877466004946453875024809844219302297099543572067572616932718193447587528339612519836757655985387049557659940808310694262489612853947467704153079237714038774256843039067675527273511501440586681475302708451903949246089752536208908822656736089939664589392133023756628460735025681482684520234960008650385920035137092054539370501717390741371372506688133782658107128310259998611490158841054016775892815480999616559353941334599885066549765724451390321309264254833406819021290961894222311809802591940995392715774084167450733770002125713296832218757777138858063900323977539666104129560756437457602030676996940254296460910468457586158075889486786418477914608445356238305221863912488374455077146487418519719992010339256582678930531434734699409389157549098677355971724190520419942506222193251308332246583659057401126587450407676462311938155325041721671717970445847130178934916931270631230479123878646139986070495256398388225436614903719475688829370828357108283502879213436802656897175018895881878039334359054998096716984515134226591689297553326761879981902276557587694382073382996926304016745581789869217928529121600691570348634459740084743888633537522336534624638791892582858943856917410702580337292897310717393523683153734057363872929052830981219375220846874566247920657913473031986775882013953309718999095865945285885231822838826605086549822585600335027746799712869712381306440850203481800416923562173242497868919556332072035966861304911723447297723251791552587253561712732516758922413477430097311771955825803775217437752814037259397170716729749695127133657135940994468643307710333156682619123268877728228867577707801548376971113521884703073001981669652651794073762186514144755557874019700142758932189099256942105442519145232712232313846818878132844600077748859649584238438330976670304546066804113578043987407446532307449186698888116156207304137042102305842253860537830998792426101827678562899290779812384577278974271831106688558717364059849271876074804849185736257515068855685356822423720196898301598786366905745863351193764504896710812379549418938149012614500549292071419553080616444213189568120880173347042880357050311182157645291510182301894942397689421927510296622768247565079455185627428361518813306992845744173010098088183608504222546743192651714530884383140019241702647783080854191785803375601714096290147486006227428332033880682506453810297489788730677308540861698978709369323885822830012399476313708976438819405065572858374393704271237089573984112921377146299480956944712959122360444942996752770439171928729083325155208763432850854477642632389777818763718136375769786654939611120773819668306619859970673624133300903154457177029077910826486170087652068838101489188867537820408697347020453669185979161290024670598142634237018519394849607957028676764739478895666350082738811615327590043906485107165976212760674998514957875193743189785786234310001543611842554364615435625267396756459608718995503449584695663823848680066518869428499336468307308154517581554563751794709691208628316534726126112804048830081379119869431248219276964948441453361636227454872889493571608403911551881375209821500742546702714293407339707686114007424164959122502136729060907284339088968456180965135859657099380923169292360659380618576653963190088713033005907459090764384741803288336220676615200973198141791653449538501722200054629506471670880872184783610854779815285675118179887132767087788176165955785414350266853825019394921715623262603893993322233015065465647088187842238992404121535639412715922769653556422108205404486559916203159059773230091786708545033264551365075998716022395474420738199947810164995386341317696734284143079190534670731708132107891096883513430302392288550966898944168950582690341156645860150646678804300619293662803431932001838230885741701209810921704256147893038809005944433868766495327101057648033531063108070357917746822995211199250440297222697037551705928491227338947345696200061228946937726304559157517187988827655758839235730408950257786859466009786071573170452929872730665844133140760183537352750575452405581776555478996702173625417421787467042724002404916461287568548430662361076617999955793422942862787639536677402759940476309871774921820853625296991405368720551156905326497416263539494168560988919673087257544473650255348387662256912383811261521474263057625969335142310208865914772595213991858454289298493783324800917586364934538015833303551477283451686488060716384851154040150061419915386504820757385783064529395734845370428464530951470543868416818463282385277757772135553600619391204810896404291986844573544167826744863700707844146859530188702410621474311834186582697975522442720189422895875566234357894790541187859410965537508337119975240701141201672351862041493015864623539936226615659888828015263372434055639672596086355876954011739281782515090399324123874929786126398464937961700029246257262967149255078324449093171561566398504226330815597954507922210829210422973511482557832439043694314559516388392424596504149621763193901565689794052580962256918240640049135291951340369577613019849603572168912394785836783179609387761716787934735567524211445527222962270772812052944014648262441274155364336403468959876108584706311719060949984875808970268108607174088447906009397775010641796483703620305712464751515985231394830669254607413648138140282716663599521448113696666284824596956908376903937175176522739383155854928085742868051336035028815345058223067678403737836687459859043066362145554824837956039008075483537323810201668391539621378024033921720348048014797908014763146411508398196197915821128155759960237450793597697961084862202810666972915034678607271593765143273782517334168856094296566207968446183612042754687720132358543366320750585791110639698168391133132381463685399724510725240125687036596497634719664836451792085518652002582422335643437622676833574798305734704990282549957654043306639912289254740727464322659174069648126246536043770533676974161721420717060226274718991151002832251444277920272450299529233726594800285080742669979766603284713748582350400565275787286281695952253476335678872040165294852036095125960477390168098513320005043825814991946538843658738042076349570224830160717627329436009669629724491438473386762228612156529449186372045772324141284472156605496953617062664982830904021823939824123430813497635782430378739962387472482791121350017195079963534057990920742231616630621841756863244391928404360068994407661700023837346927993915549921418004024659725814860975733217913068345665529420011740488447919363280028237180845395651100492297480177837408179168834751935752700389848523758923349131495068932520811582390755733803034028394517982749920917338066285410478970014262562474927053008539117167280188816375054340732851988825047163446562884465701285336727213772815426509502262790547190608941777244927593486093767460611861273009180101106157857586361771528646704499263503997835855384285984394999187881485281120762573011407975273264701612871535561126901360014042426004114113568465130259585638191062794458799485918357198158029604488049045233112418107518090615720803096703731846398190434529090330090026531236526095118511416058269427434680683058490300846466590774991309319284833373205306046362901592290763204579636722469923555484512602864614419162791067810041549780960122979345993111256358545419640130337737510427600710967412365898282313175058186231552397047971863710703920568622693027023845132326664119924775310231051077302862347762438518518390576828697795448749334958656921883413833352670428645196312589128889434809130401506485749325241768870011210785447632649203999113811794275583883498705686212579153736859403782650557953138360210750784311514015068160797429266093502669434758710306518160972652894912674360743496152696177525621447987028892268451500662701322719260735894258201645164354763296160521078621417642622464534362239533499427826646882458661926866438454453676533164715575574791532224477075256724131262745744066518573635744818888684454366406175787631711439966840384716210625857005559260658487826323666245447422923180158417437913469069820582992685460365386316412633816864573769896774307967081235618090454888073439323349682767642321577891079802343440275976670275762467592420527691810366080586835375626200853048376760893591290657263251270214231853316103433754251803367226743806488391364745690664170531763507876644661322318577270091265820779331034404258721146233696603437702245228577309738501430323546925791570662728895732408905894953942091833155013985062958129756884159547344057590920748265524962704815451461871247749650841305531474914391567884061089083227868528903953545610243599104289213891235577368745954995207419197953827176544623998179215449113916779257725534083144482035573476922988750622509668171900137766501704469297381802803441753345748424601835740069473625461686980723967819671985815490792880929151861454290121086550807737858960002941164466720919651030800384102626493822458865822103205135370216602045969332671203211719641800101386736436793127051265283753486424344559697453305276258029513316257855856568112984012608945744417029569522176795375669623154441009344839043506966698086952746183979754755439492142041809250844317360534290840933200961789616323437216114123152379246376433850142045735920045022692158760126332411833572523401783935124342452421132564040007529725049098783026848719184468031858376040824776267015974435490950528514894381592612496671425320830939906445521099531736982269207620846132220576766619582566960680756683292609718707115017072619379763209688210242468519375016615938846492783313132316444887895716261720614003154012513430942483126147122582254349574355126938389009398895005503680867921648733234245918994502387498880995687028932000861302900868739029198355470210365863659984924540164015087076032507150125480191593758269267141206565698902664426027045790702442267961965984286378727796093309529887706088175359013277542035556012802693914460314822749287353899609062387443333601732900495612848927185730515513533950475112639516749990766195219387008325301308163997050973029906680544198626003672865571183222853308525904691882770261021283167957993740476634825954766920560940273458285419736897882772944918777177101237655374132502100551252700995098171150655580002923295088165702681862452369415551455785504383316653660960347074525804797892024842483034778468350651342135392801422040847835869648917375076758223819086673731468049842997644433979210903478959350717029125435116496361738657085590227705940130526751637781376979925191609122097133421655738846239564188022632826747171617286232636991167198300180229791987172773371776898516754347282165178483862854822071192549471020331356747248692074431155541199759120802241255972243682983552868832229389405983631374932400225068116312782080441058699428634554718763299222513683929810341522227346642987570339851871952275077258071563637411240683762415003907498132277289007755261276599667333831635386601285285597947832785904994605270339240474704178671691041878660852251442883034845445757565460373439249183049277472619757096747757639069109652497727931481421852300421211676642306255343186501836600490977011002928222211026725946547738104921297007838610536640489579652643146111526470744150552782606333129903874504908369838430730024682967962818423443832140184941948921976633393361880402348942166102289098567430394114997383970209235774846834233200758357115670715842395900459438560385532557336956566840600690362316012127968922480715939317742847815919755098092449717389851619868132344850449419194228302024784515070629708030449878732752874258930482400919565157035061939002204091688524059652888289172737017505666929350683808532473956566486426558138551876646849160198017745345433652431905439268267915313456215158706030321779331372067624282077531320766838173987747304121645698015932556860377176262993572259831426332544945113580120694811868758223409422393241834848040136894951369774404532852532024472052001271667728749811814335875835914862470895920318453684261045612354263140314736261798275466347628172084489712899596427782519668996001183489859599000833779297377176436597880279596746531625313134656622247629110848086650522740252133560244308228911868481972618028315213653294584014897085214145528187083836799070715339732080770267492360072036182979475384171020030791503529723828058128615043171061778522081089255318515550394638017093796925016627675381174287059823371620822186760875233068274708524801940843104994707668849735705020358897286675693983200302940151881922733195001970932365355997476794324056737132112111235099616052705198149155928637235549974435512280300570127336856224542578542180267889684209423676247205207178238959172544267556986254125104031863918652966075595371109882295286713383649361208032097833628304847538775585058568859203266498362529168386543468374812462709816197320169308729486386769444214778358224696919927601622814914283052773241582651641775867552783951907639592123942354436054851609297479304783949674577933882462752594653167388382779548877518953222219761543247557753169617643284047609507870623211026169198958061738443363727621941702963899748567502241629594122593350548500428491695655283476040817341720878238009356008059424262744781558148555260810826431115553051503526948132713686061126958614666607263269420090337685948376630921207155821610585417998192012137015341731333678340850896286975964059242532914002847787271627817776856914383449267465749008993501312729021406344069906137266925164651964928668956124928234732204539682896431770066291311141780170751606079068534043989884469468366370501347050047536431248188050754071427181831117333275773599906454908239847106045009618291362496100609314819692892477274827560028977631095493104667722850188251017959356718144075040623977753638204584035732177446518097682096609258210277214209300747793940219047336445028424821763579088946329005704223730470598600599348471379707166690084249253182374364061703896463888892861510071900238570318739383490018586731144095184277227955851829052344983842773352182741205418724531149525020202212270008494045593872309931127237001129122142664828929415082250827757089445124101144899449724040105998198340682389296589237835871313984648425956845985764340515773084950162510598115858712345685786302413573256183719482485499728377485899226462546404560095348402687247182271678234979135911677698011690444028022318828985438535258307158874447870962134671807399263517933923244425984020626382900515958440945259113857974620711772309049119604584412856248717913424165151038816316588331684085436941713531383932089138841030646305236785171880780994008063552963726129112004035514754733928762069563759652134722986836858439011651522591693434252821633555558781038276108867448596619442527401969955955371005444571293060744226742136504448214856898757812343005883999163012507535572925526672395572209684463918373615232535958287830729234080147901831566045861445368891040439592347022653692749646382950791596447098591021905267139466199978562440999110761235438759971955353581965554509327534986791496232714187223081371283746685436694512836962586298918639010447594603233930744381275275833024164201181699401070616101657427410934539344401350810395984552283269044100410494182626879310586948175722722288375286281486482818526746328883327950773723509616426622929155230829789259545027384246721055352443791249309343290809712218057665766459521691205478713414824496810499846128309223706585570673339597463588888410659834536460489870413048827681557054874191712219627017293135986378685916460988819641904617547212781940665889069582456122845376593133638694804751025206071343232809447565961808989354437671350139122732499102743807571160764238061783258259138147391954793643074080833201914042484227384629578653400950786405792502373323120017340954958333034114932241940644551593899589838253384606149828846983971608917803524369507492356581898944135220119631176520005098448944301035361312739427966272846461380376860645440381625744094298979556931347043751024770269872689624393268869133128490817391177120132145332276442597725481954401103801393001004452909781362244206807211327932793036653393753547917168399948051731559523983146538754981407902135726792884001294437273077856720814297977632175616750419316593094311658370584223977632803938916026995871875962023061030128750553407117912965695211737169678826046715711564465478180322437280808153682203813706178073028775968284050425251187516275815169734591801736180051213441345868548423124186427874101211160327289249370513137414993009592138229842849594167408582500479893454915741163579240116581690950531409770311867899637661854323519559231296226208387311286224853319522875794735543470518322127738816409546758993813420490943305195125935725083899160125817119379907307068813521637531804470026945766984430989775209203404988990776519048689846013395327504593422861278777010556916429328618405600494417780740029204087732203225625627330818724620298066980381608844510135797364895469133505801327779934614034014450411935053665106999657843220017711830896456929913783018850718759375611109448740373052605022432639276438826800810171174540629357459285167582552981927572667760870946135589557404995064551594711330383314006567719176376500288166893629391832371148329336625657206562690795113040674085210921324388572969961532920207173693881946617657891730199128902821684816154217820064018254586496216252757788153100725116882590137501644688980198188610534905777165749643463901789641189706817036628579464307991556100982437765068823005731654213066359973142450958631665666744966567416569039396307559283076337794437897151935387211884169456725966502579608083974588594027646090936102971712269360966714136119370676008746713772514936311079846474180831642765733494522773491613976076336375715600365204591416128542866711362362979671750631675559266356640258600361884446149517420101505300980768567836648154136922554875372823436955963102197161228320420870238845220149657167780961035375257142950091133193399950145582333910588315751498088612543463687870762178033605126336247108260334632353501474441135563795635241082523024135142334408246096620564140806162594707357986459528903173806390071267683199817502815325493751431574664531494068727480029235264414340484384927325872746156742830078031042275880626832596700833072287732014111085493102349601720805757379677608237646652621658760130876522584866726074539342613564419271606787106293770050406997673183188607862116306961238679346630110753777216490733739384102251154647191683128116984628490463727690363272623635815804177107789803438401182229874860559102607564093001701610681004455263986652563608914322627277977884633185379892336013212552079523377075330800737766095750242359617551119678252703651124942964381249732467703699811227119736410080191118516477224499183685159021708277217624823061250164052960417872238261608852319637600602778101830682398940279914497096124569345809244760143548780760696595360557062407440980433072698566369707160754880984666660386087094884995978114159876158408718556506608456778863408520473586183114264700741151535063311482217217320997074417301083857744147272950080519433072640606805087350999665800943282363166204124986062221075341997226453520525401793400036159546791484117917936264838707306660361921498263728365823917682863659091893674977552093135045276182220970183384966537251645249453523131768398285649053155416556047405316973367442968098717460833205476549824276107308991421497299366322635866284239543636146064316202027866622010909269556065198727873837212020687912383321135268500974978718417285360916659318264260956488297721411126864744430107657995912837107830306081443165223465006399450331115776035073875158941243682222277148421620736665197027665314195272414678052138574057378350021948579857080486045984956376005778700453138792560366555137779894977759284423813892906563850376672038449190144645044946957861811051271163295041513621665713144085757872130542275927688119646563294697942592826280393446359320483790193758800265487641221901834358307894043615771536755075163638169213989376557867200842549515238743670518067260750537997501770659018155322935758562898683323824196773292510785633999556912385539365071845234560211122036787542708353680403128475918334810753463227661343224389405293984949192336465161545203552981255319886809808239307995057219514108477460190056661336569782435772059344063688526341686217308027856330940348352456063381866737336040702395001971040044966323140242814131749823119925488568803969491254237037139582887891278366117824395143420906050072220448669591814880458646742826921303350116979983918672348067215629278947142363585391346454359334833673758715839796648786904111556003867033785717206394128420877048504962790507023215875685071128957819432028562910238815154382956197659196858567210389957133705005740101312382615475261544707354834183866194095767683992867838341636042234531802478676109828453499501893945654212550849007755920074249289924741041509281708521344454613788065381925410221690560246071611821893028508618211770224057748530708720054860053153062343323697529845002489741267594119011294293018141329536309720678856712909450909655635855971892173489643747318631808077934429852139255437490653339459762273242445400116706138028695662864126926814999943317481583532411944806900653511277544203835261703351649854542309829699260680452637653144127973739214915286770007340046147314945429444045910532468657693199359022744413574028287306611364719051237003558849261197561656689066900889198981727372182796926614493629101026371475177843127195917561451606556805840879502285871554742073779126242782640992683786550154270561380978054398395855982362605623277535027798080685523200983191892583011207213734878527109434784659310209221184544610598414518337992014387418722919294136047041324043057214531195396908189956013317209418765069459155002052355555690243414486617957909160301987222285525240562053331204573881977045352158717170585078216958123155323420993266572518885348056898694461869104262958151236293310324379107442546697570462785445819543325219892261822889286121712455644246900356597927618453996596852952126279613656061615770007444062289303721464482880422001235945293178474465169746348686174988171025515802113161499218135437099560169593751578258214961623477266740293630121220181241016003574073290609158734235647317009542808851229246367907038897393349215540148399034643563684682025528445801146606531540651294062902664049928226146699597003441331611720196211770572996787139924868503306281338508118996808113045512877102506157118970435982552003869228285127971325000659108422105968391416101162280868917996690407520515657112713409941851405264317674019665035150153794694375738941342326628914047707266791675021119321010029757976354411086414997370928100404010018400294676596628202285225998878753831409356578630197745897486235978032563194676036615388219635108800495896957026526968518327611171578311916764710537996596430505106068238672482437679203563209061020179715708759961043808467130144047864081636909200998809440098561076528789380442119210435993625729464249506817808358152580258247348439057410781648324410108675548642484108685760205594131140273372220471499524125144276611652864436790043344470116341288771086368657184831996502495997951218545442711804702738950465757735281614717372973900748625085371705004896322270475184325671708421184245831593537763294516720148639758807717173010203195496014866012969129258254392679844837999271424200758159908818276301712819884131008121263052044982144872290339736440848004251312133459090040665338018062462100340094294858536265358718793684282157051262560013224149376634963633178086713811741624307548021582442925633348712485047957568043477754600070709728059831131496990553622895773012912114848769748602385301523614221675546078110151688798457892811581830926538554709157863951143402128057534290159172948707329830253681106012028140635644387812666167234157415975723386233458266554718798038249483678257824206771133895291831676748492100371823695703008370381794888997734746807347078978400846625169967987337959835830112931632112677856918982447908406452558672723042361545976747180144361876952675126238209509722940233203466340783226270358044028518490299023611212766317659906633283717236052856372846353332245852874295938520130127740000620764560934155066405474283334964294971686763789190624229947664473802237801832535561874076610885717077321237733936960357623587940015103454154130651772476109942338227294981655440737113884201323229669327376863204900821145343795917382402044188535375265175555211023976708725853426534362947727683919876599634790976552025984963346913425008860231785575327280687028582328342242185541573015480596186760202596306308426613404020075578545823981199066084791437933406317996937216956547670341961097069972255000732846237861459132207692149328768869080160912214581470954320050472001148886415387813904169588572937071118327760105491228580636190462788232387619693474027395870802742634817136559061360238851841681979302594593342112499062447044565162971946347841510696165933672722004316289583244006559973535825541331410547429791219193623398888882107914978867533324210488311689926271843166063892347318086858737896716411432463948117382288620231166140347192208996135863487649284953684661603025983909380251654003563234148188107341936806223508326765063927799529936091530236038704376075251943610175962426357756676428063698914536134187364116712420334258768007907557176608737088974317673500152349546591708274484300666412191023466846411232845124635029767990769623632160171385010283271168708461703081346697512843477835429486398978639668531448035794335064102000659705154362313491461190363082991215115388414921337647123405968294844824487938212745063631566652880305103369935588675647520490219420490097756715884542031326037732513314547202032579284063689095448415102978992500110957955630729916532389969112688315043906137183704411709459940853993770097519811074051821652443519913375328254568343627706898943743352721095759566198775964186443255592518433636059778852164169173044377550196315291351546747425501813477333001134064203322508240266683286585972608371123305716316354838571774424728148128445679161149503292415938795690291649133048018908093279361562435398722984621428744663576235796679555886501372844387713849918817101504072519961081780737575070495726390109908119557111983875010372621823983112820321893795617264160879308388274047983253449481412348680574494455815493311057411729329978186739377410481246307878676570026487051067511964977101051997423616299678807236788881136933090519529750429185011500329241682343279829736445383429632911649924940528846859542615350462832267736080892181602023845098627051055716962793216916427407661328297619116088247194613713354577415304071434048832840947819342482649794628369834729656890276667258304184369769469776200639360234473500187582806238879543765027018495348971760620519025468799656036875015156193075863202346570777429525845831868692920819587140389667988788520285389546533774413342188885077198390658202955548442206860067022632391301149456523097546397367598668090333677230288096975754579943173692769292656038358419762474311862821238655173152707617778825953343563750360587108597429965034320302374593479250857764931719201590688350529696677192002805021020097098397124399530624760375930064806485796429101046712715730013803507239103840895987477560743415411714732864638349664694513187300305814898127747318034324427631018504548412320658983819147001543143703675310977557553402849396365456883524435059221645628376356630990060037633619518043629984263579826985690595197771586846089549105855813750085707565558816763009682359907974297021498965460875374709635245133111047748179822656928511610157702620716892499978633606361610226498545980284388543290657378077128529515372090268254103914292702984557582237857331832227318907573678281069920685453587024700947282663959484981882444497616637278502505257530362318597687039459714963110574516909676792937230125568662506968874392689853276499994150103616269129083201692775984079124847264090998740087323511420423639559207772527150557119910518844005055253567054307261000464004626464624352504148493132917836473413160747612135424233220364489625511073724710780202226117689346786552869929803605137865623899781013905918804493210862893766425919176106641385529833824545125644280945941144881567642961793397422598183279672685524844647695530128505960023351544586336672796843788759151283869672816701441864211601473456929614615137573510791554899641413248153500253623131189008810443942562848502264833107384957163709238586937535690992886561527222778917422770464150297898801247376877549154216473033252742043464105899182874642862930104020275891271732766508871163518671471359068820105957616465118351106140971759876990515994267104916876291598290898995177993842924734738327291366454939350788014988332807927152116789836424090346422567613330486614671569909294105596205255112931401028599220382623255172203389755536705484946230654086801077662831063349147651671030445354896238128715748433852332615989914414555222165999341678216006292688478842002541001045082801888260917963904689847510310911330554931218844142221046102756743688117407591077893437614757011613711706395018050467669852445521767378278928507055309388420522270898344255195849147707143789123303578346498883784952746841873781240699296463844052892288220730691398752259287223768849178027642912861862507270563559344874984990776426405625323790301275932110510460865062069128464102003644848267234174656898872876514605640909707549242570492622778874885777005380491017757690270190602989017603208413401086930244650525248433446986062020704323147407260944529725359124204513201366355295684246406288619044981183367678627799559198425695856915395281786645490483341574372460110523824155794069215519848613819893239481844859216624751814000555288010067766398809337911211861994844017687978542061774825316784106610421033009062783713867290309471548285080641669994630460339120057689062566938120020311303664069931271444115874346896852978408958166507586663064240800255152742941381301075371460529598062159636339064235290286691116066980378005283171084521656389070799808547364811058916032367734005387156189674648606311719251956193971364192740955151565733075572831816218082053756472878366044600968386845748611732273490398007786842498783530399649100568790695873624232416157128493552479596637156746629667331897911962907454202355776839221741002778079205164336064268604747120161152371899906111190025955400157516213455357195020382957484176301898327187410008442946286735603840785798715330459698981121682357370887815349701637277237812183471817766318704007676919516282546056493313413855731563729304378979137737579029110370958210459972689695695775901513258130683045833419442938538693173242042956342783270497887831090465143968096638594247499114414618938332849152663543258290804451405664426155271363705542365054043159357051857323158217155123691158267777113474695925783061717506584711873517990313400540784833685420135190838967822342899862469788812535175718154305733501370835135380432438023815248313690765140413363147499147060324717028001458914234957866500445341037209885605096013053030331637916511033067346046564213758719931636255321725134690500174046453540093471313589907682173583064407737055176594734426462856227551038651342233663531151478392009578015091351118790643048991111602373483976154194700450963794358750524708825168674618957311615044757463037332424446685856730831626449074361962916090224732523232974634785300486970478983187944036155698826910684953349605712703482049270540957102724093935933743390998233730523550876348337862919591561515293452241097338667734625564144168513841574070855774725314903170099549373772667169414746355418303415195010956484030355181319246405868825045707252190295922444150233718944274873010552320875286339397800130645381862494176161784056681325870695078921988634626257259630241104874752098269489100604901087663806718517290362590969524430929977857864578187529796811033202752910037805002658036758997027198069478807393701745628063842501354195319271859778574775755782811461573494611396632928531111360161181078710664614330065575732587267715003109849336912810844170295158524093598031187907800081427809205307633525729166951144177795748362130117220483356046451364551680950352034231740674227092226887961738769625274203907490050874911466764257583770829456664946249213229861011474485195305660934226071856133156669498789096672463887151178447595466331772303086967142320008675870933642550139593388891081552636916244581545128525719325317434960107313174725924464878730153445302986378076958164126898313938157367385477425401061182259581919596567843214815392359284038858072089886465724064546019137895548114515872940183229164971245758902242535340497316098389845355000699364309158997455435076893584110028255870576197339674827466772942073722120030778920224406289905841516831621420388537225425299770290659317918478789376747547895767443684790918275951327470107557145937271506713375008974288650628759282928057230347807951455455611289883566186256996434432531282450749531099820842336330547247710490237687961870247831297058554450483361557482573027173551917081561710655825159737507263555602042787861894026062205364644534905599048188070049201988960610531960129587359072176285102673655960023004002473455163996326643294420859944940915477749607157380614765082573758910844940344554328971603845706645743845088492347720287610067309630365362701493289805281944061142110512074589021120889184418090394906587426745222685989353124981945132613131357084725098654699233186441618851858780372624113059624214523905832104447399951969825529099204133955713583883970141816586766456782655008654551683398825538215320254276818115220352634044854567260992149222964444928425841925686630830821805450962684952079681572626386546967566343399002164631205065203613333108687318686305142369918082747374738088246148159329879375807096008859325971916260106755181476441978256352944769420534707846934667819585303269428364578257074334405301093403819647393112210923456877847578395289987980444704325121339439217328968828967609334899598221695391010157551396563383680097486278890562592001173513568417935483377920881703666580260643328368939462792064004637581324898207753947521224807620212217862089428087326283075855006779693027113314655573519367838629808497736843425294567110846503747853455808208520440476792734492785480732107826294241782732434428363120353656546505607642779156048884446038981158628840957475641208938836660873781185314294326359406080942188258249614069060073664007181348741773360979231140161760876048042434948742991506068214145039257564781627354054391854593656047640213787105112986847444300100595048077164698343734839384532457289139712982623971148392830200998595671378368004675397277552285443251333952249493998175957760056552945654401173093861753725305960199819570651704255789281676821286339911393995734457102321182867349737040191626985721135921559118717321766262587070297214375690893372665295968848428712070300367626676310422190349141187173625014255560388090704268551883357882348388780395295593701231886746691882597739054297532336971411339688974278676399676726773905888530878686902620683907690536381905350550023204575368485029193986139249572781591234658437498014557836394910629923488728149187466026498369429827059272329252046568196118332821256509005313253448167215409628760773624031626808844389516733855561137941780676279718763149236924348687329246146028524820157683638038824482061705957830245232907019575838843086184295411164513206469951131725150361717859499349997194066604847439219352128795774586157453366166578771981195591587081592747339053846290941473484582618528762546180427226974624164783289149762233739617237218609259483889247122397789630116913106797275641425637611025837471873056577601835953254127608522544455517068366054869938397074459929229194751518406662197890701942365924714893503023144979811213284493872084503172273470859765846165735080582269712348236344387781831446173712580387384099481781164692305007540405222697688144803417926777860749764676864259160300270655192075176661087752920355484708651563145153803802523036889766415528141193680836927908368278084068069458800259399205277684659984983874115548770118461161137652164393321657713791129097145437986457896213306596318702439777067532505908366830668648643492015735181980613727906132396324609414620265933049100482357864462181420244108669095651377395360316222561714966727140819567423820254331311510081102793286141992743987952653160235367808177415206069308169197181955348824921268331913592811960752069587307545677965704391114292206595723554811969916520424589122349952997522525388820945301173253649461139788859489868090249185317633682841595021506494643721161965968787794247847127194288133559159805687019905774492482906567502979083291743398126280403814086747110558824798759329196959889057899043799958706608331239828190952903454921740022443637660444959403948002911521039110916957205037749108014526770642275228736563585009214919100094367080990267994556017560606613548601861912815725368711155526361469214504087459452683048859298424265638960328404430708954315489616509142491217782051463227631456189338258291718121383573886852893446857941574802869462549725289533900341049599042326623687772873098499960627365057707362195363383575018161353100168395522996895512812240667271076895093107640108305507853451247158085819045469763238966329764239197677141115057391814381288650825179144771229989720290301309958495382812724098004103816306614123872997602613514162165877162185880145753483734559607458348542534709730576084682098452462549329156807660304600372516100856392707766704653576341195932038090099855118807406922126071539224621179797730941450164797453601028351253623973907806844192178338756545012473816203983035527518314827436976037693201950054337094239473874688432016316249385069672735383344191077483068374528902647309938567286344053448622257206131663359423790622536166402603544241502708558149218622146509917218542363834978962229633694518471508761651288018649261891020323434654169691682442865144308244986522156581598989293335918919108605711008855999307936474299869608431366889849427080242997257205420048066595853205000770855477100981553981705065735242871499284425755334531189803984368295934514994131037845436851841063665562094216542691311730667647985318206560053790362843969144354837225645681865725872616599348888252577977639082782669587831577494938897587649205690187307530250209825659706992554941845892024447777118749270624276164379438866886695948955869374766298586955143301031727825835138362354863939594723590337986437960120426621718190458382327990846369381124413394986114264243945047296064581174612596823511862530674877813115018176080950969791618955281591273893356163996133994696410441203566273102613261758598958359006006937673491501317697915979628363277087026543012620629296901878071895063020890143329883705607797402901728562186480931402787889731360163050866251736810796104348138879782119686618864580358803298193022991248787229675707829543762178761024041950526712171690745650994013844168921471644293005951229221288823187869344474975417382969110763734700440798189357182083121322047671912076728132988058754972011552215815008784477783076305761932575736640847635299745502893550613524677494229948074621401973764969228130210714424473925397093319680050410034809933349067641692317912936105210703339723468588999849480618009284456665149950237100461513767781677372663278226318529718201405091538493042500981814349798982509222801560533669039670040281940405591081940226206526373276924736098407464027186640767112000848389641324103777145951106095490137398720282893550452973548919998712846312992188050518718146648686545275905439829868454116191978565321926270009203192181696723365154513052930370702644611050555995934308477153802630919452299785166540325037626038091454974149131135719560120228635083278144538298539704008951745351057021984367374059743801431145006256230416542086690015428310651314537990803761371058144284292174678972207814794953811218692001665952286249452965529875954730270113850092942075970954040526068956287760337014948816631471121116700682851265701630564632678042232574432174424910495066237939417351447646660494541336439813307490557797045911945988085160817979767030973119559759943726097364857975294428799134312347816337700382010997557854027729016974590673919038056285296881332595694106988488539243176925511000540255394217813045322663699926653415701986722410933880252451032567975991136231495148423199312425850694947806639796949990962326774758380109582343836963295408363004810068782803858260509083290213571029937875449092339907815671631563978485667388083923302952614115244330672738102286715463818745492300180052187855953761851600322197780979184461851279476896771255609679913265931890020852373862819811658570639972286616941543838321117830834394203634812664858779446202962597123650198190868719021485650111144851211114238500866002485611876875599008078094282039682745336525323679129210120187689999650613605070975183938603072600068488050481797895595769538220209203446243776181619100906929147259770652162781265167800647065747108024054605460420020262118017916511300180322041455366932036282633322360554200042782721912918115250989372959646578565961235713651205058182186699415828836630189377359019202397190379969246669024063949341320614187523965388494769834559665585848009375914250853051705460154498065507972706336635265634567638336910101389836330909972744444284897821087003716041918249341554545608704805307743863236260998071670406119588957743768992242877647182449245337036587771823240582644471625100960527476735809379834500973984316803640070887571052512393559092810942724377217829224643747319687151619803397360226712864702186028760453179293154848247901765645780258545390890026697429345151920818583091179539552062027200148608938568163030096314828809525174030840954275388655336065453515468916169597568283760125818334768771471252748449171263227273759586141416930696201747884937023912007001376529185359579510273678799097149561776941859598160524655814340007800246016763250060002237989134355821296393362403551729180680240919287552093363695655506522287128849297782860059144123272103499884464208424367137637136443605701505024079278157287639541389347527838353859738057886418209015668241256989906260859573768078603551513179607904578340061601851375093786283193754262278981677550283569238073674400646018281089638163255869758304389322883690200698758018711136039599258821045376765203981446882307780443552059783110549299545798282713999583480081113337028433237370530883203771414577290573430719331665511207664315435964401272056824195430589215995918164343575953185688498274193229578450366400037046556779708921851640262002994650693934324287096925661950116106984308138489047876780914531295909305200446448036713047963546967320467171832670648296141182351946310144961447034102323258371603972898109388333941182337729246278217507562632751228772513902421049106756139946745035115957882242881499791464055366394524235374045981832788577759732714761429333470527236490824144836274494409010743523444271599813463378519528888704776153012680418020058664780278089972559621839656297094985911996038635101389972837490077820786185276698267242079509947283128373898521607138035938607289592984339985494253969672074027393678849684232468830876891311991161759699872943160096188391911450109039187866630418270100320098141914300618040300538873929843428452203842201395936532475173470958646307232001615834033218355733888978656563098519476749375825292224409590757892752332321291472821042348101671087445713990848897185659002472128480684213144128602463454404723033260602703899868545645172610981232408780833022243738545978331301388847282053321418002619169751463728502667373940766456918960767960228129124077431682712201838909007760786489490366813181460571573079641790194806166865655982481438971385188123423583561959988312673559310756513046654532359890254315401505337777085726149724236283659838642569065323948143464938004242357878761876568846350754619038603179841083632198450695288454331402890621710493429641842594687211502596397266422171250790143556927164246810237575606776034976429735301916494964371781892253685928139849918952674742077552301461971222491645267661930755657049011258641002230321139088788204776665426660457381860622008190317393983141259765899781221092670989674597755663439280131203383403502361244874634703508379949956195846719052273695840196250006575589909367993314520585789829515816058807274672233405014300893326280770448398727634800903847043429232580438183076420737703378280393170899350305076687964589804929071074722967052886900473239310049069084804498766648393045729137804433494889935880322223137968917392530769279770703929656386720043192674792430032156085698311986133158983509842770313195262729164040352896276674568610805488000975874216746369818028285257537161349451742010064711023765868953995623327278655295336106614428254831120295441749781659782676945520161228365478604355272041020447221122142717720349962755047840922206706975257185380101450420914540883724522688514158902754867643413373552207868768695321269811721857301698449466596511654042233925712698054231597396233715708087023948938892373654099346343192936993194240866197535885150157844307239615679392710841589458700573067093518147642779202578733127098394711234675116698495082481607144222156870475803196471150696936210652668819986657494799581561143481227296665657363945943718724718596949522129526049042069401595669443029524111911932920098054081601480645264029095516415276284440172077940883642197176085260826148370044504685047959054123017402682806612488966116046280171432957980854676153652301214278937796144193569489323585515332483397658807820584065816358518485744500904840472678050871558718810092994523234282922835906691764004754369790183507148100790034431126160079910764746870672351457129668377469147069379456113991750726422894327958773353436132146279084001749800956325103368601270145650623195299980675096076856908166836075070988370234896142309124625116587020175631676681305234159421242710342067771345179635390433534177360104624461903385001110558922517318206949378622215791585158975766831846461606388725026492907419314516331522408364705696780540299517691142813214342059622816092210879561471049111377833479253588662094320905506380854843035136977768674594794150659877972785178212904400567855828851419243124477681408807924064039066745704549954003833430612385532111643767751526944183101446088255125379352011817388733596737320242873419185257531556904998047019725400953831872598379225505389315536371509831210269689925266000091741478957372302973062295657412374811214991107644702855032348264361219982588617789624795745028090556630763170320537947671542505311275466166376242829094736579249720811549102019154486800522493100290674626909310327888823217941485640625788729231490053976163380570015068675778762859833326937786860041423402231681425729910955536510551501772658408209547702230372575912672528793773355796492145370559163205995750722736227339944123021835594661999842285660578732689690826331690903418290711098515957231539873428921536455329201615759314044349222354726056482890788699355402965678663006831140832992502129917254729201270221348312443059664104092298739534474921021676944032939129404467094259271002326453550604868364761903106040502483628127877901156073147268027126919401080169791313221356233921798489584920391480618989826733546755899070994735659056012880005876612383287646540997421806405838759940952168132853423675335471027100989024157005862653845489886843663873113018117219429171837909409246738434846071455307773414053431108965866476395854854552234828671952135308170378350583645661085885425974370800067956854255037576518013945735166523657153319118921310627225100964613316414545137884131596445072038413273811116266195477947690145907645260932477684796298637169753071567151781638702553437113322584801598960446685211233655098980592642662062563637740939184228702387264104440588458027114944896538777846957312744323610779869631816530884807703607785102034224779583757178168575378068663815768490550335101542748351368759346970672066807006716773631667321085390182818119809553461604234477642690887979501634908161355927124668634120996082635596361967355496115650228357748806018046591154429988243600621022079188303965678487949808359024262452162103627342311287321284133771046230423066141993660004284911414732943191779197004108840629904679006454917314746605858124828522532510663411806877223251322713192589044695522497157553064310761210453034174455599389384888572230037174538229213467358166019765720765335243585253638793912027072756106986196627798807974829978799756253874966839680600870849254584340369956864264049799261674335488264676550225410340851294221186454649523188110526972501061818325046218282532052089471270696211263984735680518189384415727208191046325761437371448692027907128002084218054284844437988404331520475419893396297814419759054347774382382915264032113307582250955961013709545824108891003967262516811140291935720391900366367994850095434328727757536758399766113210037315472686388977728890950637043094388151187676665717493551448825583393177754616866353184258729465576776317848399605742533544795578857837046995938066782633743268546219281588974808934579596866741778895232958293743367231126293045334883261324103641338713548006921492669431921623577471695508432447766999758517572449134456955356879156926515036948443346344821002394617569817786069489894792852889081461705252782389574094762477461173750165287933361852178828924450595122533073763061609939808592150196649936190557792038978582248979575192499655680628644899396704635246851798160443624300393846801608901386316356046045319891946339362321571107098959114569076400689738039872369229789813651225954533852650918603453188190173735055911706323519202893768084682965772072425279851899598074008607919972897646046316734692708957389388880423506890226828406245398099933459528387613729226639655901956362174481878960283118228604164588872965834306917266099710355936997153261395638415791047065788982342497391101837130826814923185077036658097409895611687694720071809642677591150143405654345481447627284604694841216490097234088728575175890461713375138573683042130070916905004261656213739435739889911015142738737452202176520866899898664609636556332625201300051507857106426804526952724746590928890174615491641354415337725954776910636704407568289154617687042713913517458645500661896319112850015203651162300323757857902854361738562438198938431660310426306513434162287602681746521346406888511958502001001158099145954912701570847818422280193303580522910622260410246237129751441581825541835954404827667518608325238633140936607081132491461965981788217722838226668207386769394312961585913405432940340800621959389696299077312212757468848793874857321578196200799001257497939688071079627985336518044098448116268060450384654703658382287038691251162111321310037825733785429660170272869597763341452372862566484928281501583199492746234339908132859274865916929107445645975694317807162588956243605624156227054130925357448994752952477272174214600541078370227695879075070339951198095926022117575576383839070758491451054887189850684424541255527303680643971258430413952891748837683368722764365620746641691999145873009216837344244278698067601848020017336626089134436409178525162584044378859018938036286650540617424587818431647093487373397013475497527151954498156436297375216612585772183906689399610813411145340812443152879419183046945159625343780899184574222295566065888512615667699064114752254128688182280393932219206011440934469111616250841981546196698163331319731483970555403172392886529331719877608009260405620021520925559102984642141623799529503329773915821675668571654826131443702364540473648436951994629857546519033015903205835167479658166401038250739017940758651600851480447227941313523205223170485743149476655935132092174991095262603832377406155556316913291346754416144077176870808068070801841984642260649240601869299795616536523948593180548792169532511903714239753234166349893135259639233990283992064226978222498677134594291213075199678377918251287567169498501950799737097863771559239266625255879027442763447861897813566648949098620601068544845270154166844731573283368585785152801809886546307244303219423240124516319846366799004196883558905118597262193755745646905414413548516995457518536888821467684819182519275192742529929188672947012072681684748161279449039735492439725224245605204051006176885423287186744323850900000270792701279870285995648020004005552454701458217203549131700290868334465320326208724782070339729958844368343331646684295131247438753934984655428449474348731274353298169077132702829049430861843869144467914789503204616336945608484035899687618511325963352940248398924503013098780268679028778712192895700760310373845215395107911632131978322301950705309039155569076048723206996783222083462544604274796635923858889473551363634180639072108065649339871209207308050007531833222224052205434197093832015123826809147625697845415394978098583315255291052232487467813895903097211409257850286148324052410519974800383858234450206015744095910976477782409165895829700632579921038931507637791503562636820715371482770560595734992023911138140773797682964848626301045176315683865484713701385617036832592021600664431510354557862886619614891121859692454664599967117627085409978902453374206177524957303987068092502550484278680453710388893318436620467350228923529125902774032115514766221025250348942195403431285087099981015908197280439594748793719240918819304933351372748789309294377662115048730628236206525920699163391386340975441845653981750491287792827346596506095979671426112612477084233802902146827032050678721264016037374346719492536056082401865550617461563050512656764283350526469947703686479342703350977219511084525134421406375737483066888179216532343415550051500138972755733111760166350888038752035919924890922702232017500330788536473545222360477888483241080032147868347414094132623820555100663016277548805174326045766175464253641957688899257872325829784023072794297400759309901914104209077643832669513516288130961456737259575701336741730009408386019415546290091568255657268105469352716089868716509658137878831871090544917950415798349530466642730605464096338978217460449668247164132874613170448768262178470791750278370468855698112369482461705777047059799266504021623121332836474454011471850910993938037627243448881316592611819197040217780923585025067765819173776377818859016726279954906909626711731120830702591356873702083758070028960861337628646543729899879874664382031915032786633786803161696380750187457315115888136787243634621988245323903374088240041331763656044004195154495726723204478618093650509699360417929560371882921819345948083262437693937980224313824769925636155805208643330512854763269077883968521140003784458080487870211050948817398816046847991153765852053824610152661721701284964120576133009147221950201314915913458483490233893664791693297847971685350622689156179386968237044730148771590786147781685842019792040013961749826963660381338717326004462257735059330675323628348683961965232677470955205298823962437620087441866507440572303044293626644367773275750556106938598161872075004642260489040175412540317823780870811724310245856811209813082627955175011564162009445497764128659558081631365524141693996251787127637538549516477480792362287674218470777999783958647832860576793906400051704645499956996021046673892284389201896362243955934139463156202934157681626808252529098690853606986095151965605145224681666208150236036088404778554509948495014924904110084786553792130669073272419272944397977467337842684451189962530762437384948506803040879461854751833114490965194488656545071468289777508805583386465767218709459179779774504274627654494866753037131662608329147755205972674196590022252466823786107639179823661311313888239378731443018213138872508064195413568381383185139395818501898463480075976810018539318887595409408981323322394646683973150968233838786184666185742179523374484633747598422990299177345410114535898584074120315699900401794447888643401708659104733028515760606708734699481460581345273300975969126623288359897274243708528267918438502907230237861301316088406873948754681556643999593765323182387644198335084803181237186803481403829305804139576542247014252378122130947554882222089407138963763639632351595375123495993379650812940923481552710771068425677861000164536512804372864318961927470794593557118848077724577584311932910361971046168567690100453736564780077887975354020094012475000344496571683559791358605687409522812043033088562657677342203682531594327535987355570555131609247308899614495176595020589549808270970555744192332092002390820347169524916019724541790879179168360945840811138007597738444938407085135823653285343634292386895733471957176292387652188024774129201456736653899441551633125531608431487782615437877715923729879586275488162583954511946360236562427742369569997038207408845478005303183805374872282082814047022085332426352483100856452113003707497789493254349941261149698851790545036042237264958286505424725428115489287463013524683450204621783015512964947057845883189847086345207027047157487946985566633597180303781759478843645410326501409116818049348406544527403941316022386420520747379420800770202872183120782834153673961954365473640776509398265285733706990073287714092104473813069170455868689948388755208782201933182964607428406315579255915240290411095698942249488714299491804519428261369968119046109842932749811331346989819281970961714943642248725618496105108946530892244911084409575018356253295024494439597174126557203859682808997204173757342935909800862444599557991961682379845566122850228993653332614321229265497947574832436271011495560522898523460120972415329043418646383641141956697987235662586102681208710011970311341589690225837853489795091959813721171328535461738760592176558462821564309142908838116330149034232743242516620578318617707661678142921795154730251745810571542424422436553854504040209423766517050580686086270285010031702931844645859574211795977556543939487807624524847041808815790507094616504142016198801952365061728074790294627173800938541257355122330519596897582627646928730985655126907236757640192439611618842770780218463990489947027151553751394515326155939406175777259229780637714615066230048175394021645812456151529385513579270859062834934403773122953000388099842058313966564093098145437364108051169190782209221521104019231915332823056306380014344233752681340638722028511889136245313398298841413015427496310915408348358707107156853301455417125990857833459813496232767719997370867701017792660699315752338938193030604480114448272583909146790364379107671417473800331026173348827043230124207844390014197053752122681229599759868280988903519152385880920987547646607136915089889629395067569927746334325511153539739899660498183551869590936075206496171750385573287769718528572491817222788129146999028327070960584195474974558327076284764217346121102014368367738489163928917333308467075371338908894169813793838178920478337780988726907739552868551285392399029990605553892052140322558886246919628961059746508356975681048543119535262280019957219098393833225518400476528760521837181657619411699077055508067659811888252453199848461128941025438493788281561062519592724981927770437408715142371369111688466614419712938445316334271179255787004254733085201034698363538415443396835749298352394529361503610503927646580208484976964371115874901749659285834843880553944571945385572592105753485994341712983322350171765437593278632968636144030504059662575189919658724497242119389360330715343535143681649818123931399799979131202487654497493106368453489286470793561673442490168843881297653496988225276287013386101368904734653968794851904538000008372577642501509325880301803817409918530465848448873653660122179410722093171044581402469877034975282318831949266326116433698665119564592186662414919997645375762960357731881618723785397232992792281332282670586362087558298980756753044752896365342765697732113824696133075716997305337333958071621422978073764983266515648078481623854964893862623482946434272647442728733750286462470648791115459486595866800713723632935020033690319996234987313878536380942909233044574892201109153986982583685637146722326878717074116063746495925763493824838647621277702484303966529816932636099602000277600177814799398021923225119322380020501762009379276434093979223895725446081836393839841763210807369586886155183553881739710787295762416891011629927839809124103354389963531668578632281042425605908150732995791922483025332702167438468464098617184331727994431475793606309661753308911198621301883352068684341162224279406643261902872676943522753607364167446582015702455394987792630058985438868490977771570655377293164478113092516820466636317520091944226150272259735089358821845061831074829378386907332867000113530676248040559696632454052460059630345964111931151990455474318884362985950696591489254370478124091831503669241724124513484093696153895109120862515562247052820064106973042049388622837493847352077986173916244642196311229074882177250118942594904992045405703318114859737532938762244532840002559126483508594376474479671777165564627543029814679742113986841168185509113168758717451333634339268803038546795129785134775146876102930307746581334611544332934982876019506715147213329476656266358643973022494712581005961588072286049588787530906255332932817864628137567455305262955719385747800097680803006674955614181176632691899168384673581427477163298242643233129378854606553747922053536054316359116185368510152340972871144743248190342234255189839687350372905005946840916643554870317637863030893545612797302008337312512517806400188223455156584954593016788489907919907782001270849672098209228898345070034891964420453145935193683021458763414841205475437026424464888390028910772767219256345102661936732498757049240606484806043044540555455969223871068142332299603992267910142126194068621875161211865289838374058934582092146322585527522156350122151491617321927856126639917305467020393061047610447979662559788972980509217289219614904780159201366064835513193663443238179337220854197701869100475911520255010947398071163017378894345596092170738800075539229998463089002091496840539498856374427850846131777821409354261895315329445565045592902333058543178640005689863758140240368421875301452631622820811415265808732773438544558084877358222264009395430598614436533462410477151331121103672300665023796427662345259463675605837826574137018307705672575069935039673884860705182408035553183164996281252969972397488080935344381920160097794519383874241112806086051488425614240079184147073219629445404878974773966945815370705244953947131600794563723083206602224536080968260804581515167814975683651783263480114536551383833258057323875900022399960677926779717196312535256831102320851325135872613179878390964909851313366445800822232348562720388974478441997282897390143587209424975114316930448060206061927053937294864312336352450794218060783177652899077666702488713496900144793365435571328995309813730622904099547359376956945389314418644194409798414953786093216059133924359183569458900243733159792631678621604585395622045881174242023456405128444109355785263389711166613402529978221689194879191506040693569861404661487608262014524376061980005307313693128973706368942290596414931297907556510992096112025072769203749610593416307957903420849990001107597133270273840629950677347214314567572399252159019321741081028728358617996580140455642566447436480274975997156022901667495952932872331177465256877673373012887042791151577414785223259395300492637937087525958663867803520353361824561226618587516767352317435356140690408862844470901218586083177203441797695634584723126701580984882397338754538342927359324673412659685136536666471515983496633332764277182161432847332708330228005683083654702220300687540446480002885117196095659303184073599367206999031988771331235702569635693295897742826981960131211997100236792920153857764689569506695776870767558862439841910754561127610580733304069130907541247874379253056872374827744543504591961574936147526725473809581182021801584742683160574956147666801603542468116965536984062639096232524304245940123901338769444383715122395350289627899888351683668907522059825828730688810910394094038933132414622236146380087653470144749999496185681363429487603052511944408816885386199871205819531933090630624124624498507999289211656470538283096546747822808515721023395332317131144306924914932262800986260300159399127713081942558046961247451757282560865073755973002379034642296067513671595637080472940837079109741921006545369698123187888427331846119953698252086949369697767363164407517977293031821011096329687738350048520648362981311929802117891847873176667963408073774798846247426690818158341922781899400093925683526988797562349616943848315357515164963401564472227146497872412319432284197169592234940579862266933773360446252807186816388379347267500982990576374376451050317968814708771272977880727727480828073036376975793092157417870550734897457861174759999185877986570663635673920503863299878083588150223367530901247186622772590037947497865520356063047138406718107445882294775041977918179637483813634369148733231093874636284961063703354034485383625010492095658124942554363158060326464088679460752130497332423810065156995106409808970241212092175553220943783558292457310290553909708045478914767326939722641077035257503452769605882464103822445407817385190482594669364103488889509716411895428114979533847739097619566446608595756970292478790273082536555567732842214756882967551977793436437859116148446537517781051149206426033085874705160242464207836729544420470390496262696558284493003948344493525619495768814142691536986735081660336411614287867474515920857449611541814417920479162789666673168373432636389000281196747255819073727376208598666810670419316016206142698638526968690034025371158151571388077257162443425362044627526020711126975903482184325765078714953824921749568301403219881695049741368506752030791701872191755313283850813014074235200887999755280624405767818469366554039500733044167080580675565107181467478873943514495754539689007332720272785881324235202748869829991976912298977555490280773117147456544142284061548545455677147665901765842787028912320615409527029401174090958661643520244652510344940516781023737067552216407330677104249652934720024219385196380923553934201342181530205922987819512447861036038267610507710824809266072310642763611660577859921640269200417794014521786584084104690140457391609981427760790366436086817100034828049812845888841659079912591660456668164711702287830964702205730844436245189024479136772059113221282121402257510744399107326229477606083771930772848627438340786814830978870940454026771139913855365599926238512752749553953673175306544443449925320683329633705252331439526183758762246660126781245489241206455865671353233654679518460686095919406292096965494620466598447023644925132120932671061992371209071480372255540866972547741726485941871473500026089533226241708947530604575707208920677677289512978543031373735942821212814654870517219280220909553853111725663358895222008758691509936811993407891344947496959630770514688822676515901022496098240336141648852866648128654562344800729106813077045489747625228279313993863055338145503349164365282094846298487155953835322208336479169643542980013986469848520840952073656866239308225380142491660509704854022021613242994738097300172661297964528036413641622242051186239255725933813887875970266362717285180942653162530642455038076755328583217556190475036334808977461697420122903796113343121823689754952838778152761723545009641164509538966159137966725814465718995602880554826126298816393934033513840218423092257217781314693712249648257895606365884009192909435098921793103144514057733934010575439585318368617368172285408015202796964776150360522805698944833931515792022037364000969480739246613890715861444663077173009260096648390631808968860781029497640806527556731392918678872796552780847195022926098685538787228844754261942982229592498804630995145865614467991885377572650371293436131154116169798112661763584150618136459639049196268517881247069023226018573969738230206213608445432678021642795438189269708576420281501131109452659070679078669147764496867415929532071763697948502649232382233773241114049213686180898560870754218510772253014021457492981069892584400670439888887629757761252812634932820822305290288883665933697958375593502433286359216944119709591387669687934380262548515961534546771851625794814837852860791314279050413035764162711197817670737563792537502896175133768716983193031806716531038975370227675590432532717054445522027691286840966258298369969984348509325470806831048204443179467555717902447405951866429672747702150261654677942307838814264905652970475635874738621732720910354871120836548517460428129419473618260543125975666291867609300931022602382501682535391559430431787777598301954130988847901709865542223827191042390887903999693697575697946888000644213095619692779567170997580365554544963389435020184452127662601787114752602920772702564803119611149076789830034636538396998555519319804177605255783081778996113089881033589635907385798553385641348418216910888633767265616798277119278407348879874432433789556773517490586323656807573485667509599909567925495327450187531841823793318989538523582611322361616273566745196646168861280740579619238155574450942646587654087813689991336059564724674684413984902129752824283944279581083513039742520996501356021219956057495519938445659012221548098848058947291313272642505862638616265424909082783936112700811042156987941090724485002029215135192569479695735336870144564635330180015072469316428265481705125254715671725434022669690310818061637232531132514318566323476788445403395658225238627449957390264105933207457396541452549873269825111204430926469541103859574075006214943736181607623066391797602285207888504865577943786639268389363418428728011564865984063269891110940235726312466392598385900527394206717209656869286274180125312952095758825705790607821385296471880256872265177038839318853939365007047430413316680222489899882405278621952742971515646759339993377394085509780674399717359990465323911114468796169601130818310391815314237027257391960995893172372667306948507507255051377183594255540107711488135092615586257547124620547615926739920599454135165278083661847984206093182163210158453575745820597612214649041205120124623483699708982856366251078253506035500249128132923867708370204623493828910406577767985453713215639942672181962009185150593649794747979662626683684650835346398207851045867322319052427888449898167820171849857234464664464624017751857464508217648687002971843973703076098788944393981743315323066125299394559526178006544540111986778595941641822656431802592467376050772940766347295807834038876361722985236472368362388601064759592675541610000093719256660159816218028944465381029109539689749143910004834041059049223052944177622641299978242540690910005095577709506935550525417800806332461484602150093965086565701106358011749922483443091564193656844806745815159170220066433115440428839674323008248592926331635383303579144304493222897380608391974608568282034104826739693229723475511831837398045770126841561151284368319918603313554759147625721028043870148181521603498490661657799935931895533858615300811015731365762399509592075817341940521286637918775926080638856516501692409415806895794634114661430542624159464242962733206924663807093058125077900261146850511246388400367532462741321259949668221397583042796897210352375325145509315656882178815814436472830489092290725190310536271638086456491169044793250882849372614584937718434837555761062912618897836678456197445954267821232356005225676047795318128366782417233023096912246353007559347704339290788033988014291905350273902160940683860842815461527168493077671652460914751117064184235045127126729227990886079077671605883950148104704102407084360064931911038970529362735351599056857241870067383821012437871940248597913063151433626076503132436191174462028345945930825792830351751749303218132466826118408828003449220140859604430723613790044353139470917597252855872705248928538762148331969454247021861307207504952896174076293708965436125391291151568907954438240826729663837168050252817177960274620704625846958776071896428654252801975007746697787051070055278737587548188330527197883204705738941282355196892297515000414117805121565936199858649603404066101824730862275199455524579924761725712474450562451596911741754728506331833757383569944025486303001598776038235133251817972016101207808729609639054244253989850967395944470199987203647422327754927093966834725689222493305605357036270394079689131888859599164185260060252226595043209098559504144509658601869498131316515953140948361908109333532466641052063357914769648378318880502464551865959295116809691217008558520563069289524041897510207180241126851710458605954082825476637385510552591987079103212056274031313354699898575423029576664261528450891891246557205020118226276956778735215706096492505404765989678029482351420069460628108148120490894840997965454548468132725723131264844938933360392582460391664449766509465856083456373685493273371689644803710754594406227486505890818474733537900677219877647282477351024733763368402431186229822578260464603735897975826337815701941763103372575825540378146540672453552384395798856469991041393471001355118538959589076313001426735475336610065928718241548651047982642785582772071459883310818312336707532958324928909018247501353581114970487497278822029043829572262607516199314834271583901884003622017184029835295268619787311585514095337542907922118834570954865983586806369367577666256582461992749812482714664071436020501620526378282719540436144034162989634922166751010568529081186085733846118415097589003114548833018252690709530660756377157401020624061850521094357710477558800363168933183329386542435972591627709291861881309108609322298485176345410275951646044589817798082858762169459317522717480034210735697750729529578324463192432024308204678423456149833953572321990965044043287253713077181983202415067419507016345365094505176812447035794386694270951815685769435113953268098130011992751864911122435767475144898531681082671493995504043358331254271815116999181211458950403204497067520282967779078991565184942241672528311715739347524221895465970888376494043757638888254336464222965922593758968641646156922859711683020845784081728815425803376692375310483424251337166304814931706926150967533240469412113003412514043569539011361426581500936068624601742211891219487352998046617791571206195086139922057936438795720873932949079010966819145170164579478828035607052914987633752064277518623306292697908404657808734927561045574791666664592153280033168496811064741859510733419870228728304521328019896797907501046408596744385490665459592958293536401076036655453120467373848492907620367051277224758431406092296725053217783602713560941817857904458805813424296514357420401393117269632495689922606445507487147136845740299605962943036377816376436910930980986479747549018143797959750693946701014109197100470797620209992694413003208786844613001130241579661801943601588621197067818582777718666728891678773206286412952089803481613561383156344081812006070081298697504774048039572670616848338262280164622670475584695919053802063536124121849074148455745597292644090796203925394474669151258623077219118987945196882430040033149616099767583289953675507155372476015792331749154034201939838054753317269665666245893719984117376217707535258516335924570315310186513410298000535374170810149784948121078225817550495928987799910986766073528021331648623189451474713952405743564372398306922049657917834868898940842826570384397330207575725673758770314814249991906884572400299741775315428492202385195842596971532179360772735969008586546648446775894965534740653454502702810541196111719330395798648036144185711841991943681596179546935089634383763323963856594648243851792402730936706197521583137848224069805209801449469662263077041629735975918913326820131810768550588186989225055776945868966427535605671070720540556234169488164613780523331131866509458527352596918458007992454328256271608323237690371232876915089117280018704868114428536437954269428768010436972921358775830028279559777564979614070241421927963325757170753963769623821987682819268786568275316121049388422644526895831284621962969573887152349504253159480203276408806674839461471685146105699294252966527449862719466441567716986946677569101356014675757870848244927692354194236774727413731829314409952106651032984296478186389788948601338799495939358356667912408405308331185596172286251854149540841513993101537821331112527124545425567505318081164897872694879146574897578514279105787303199268561884115607173194042265422766362237301773148732214122513953477470907342619346248014993204626120694248808625798538685703908093692879904993162266924179540327319911977541133091334236228901291722295345153722966152910579936504851162029593140693827469940753551052101206296032462174010660392729735058026858410792673413850038693897039881792428205120928268833204656696404144541518391589002437307198940138220169744230298478984624288553834002663753048421472579220762108970481843976969299973435505278601076927768191123066633940749399539305826816117610358364898066092887673940947418149263244085682627575655677897960162969072858734128281876980813177091938535334185785048671544232347790605930545997700145441270339184294053223788352735427537906332563515685671867289855140229771261427680895228243890217789645407911843292592091820851159211454492424444672366235870618362606054679196558867594741866809764016678421284576261483998062194873694951767376689277043955461852791891995619255312170228687621698138363496076892294606001414953079908176897884394519714908240370796098514183903661960602741764027988328158662484280696170710439811945024991766322757465294781341814975049498301374920731585224450549983476569922440412541403110581833942340651300963214614924393413259380109485548839422666916194651335423398991296981367513311882447320087570054870858939567811529656247423870007107735645834817471240012928466814383678327533612611857010867897124060416018644645672482639516787044811101564470412187119021523554084038117567799900703940140250355891091825375310649189961600744444123294687032311579385210825804589012179713997865428920912511384785203331315908444683651378458382948662595630609399217682568579145844453886842842177784556943388012739917919441768600724598358451807419447217445633181286516763418230078628044708726457098475668187838345324487587045159842282437295834615499319309998129245473233259623769534488593554624845458518136826258923419761856152223248310108733610034654514925096021250541484375967655729444583410886482221830259430510983590405295876988000271272056954576872594459419074268076211011234188779339991571395604659479085463534964662935708012451127233841989527825979952550018458655038106512876197578234986203857675434246228321292908443905121619333259883296809619532106587049695720244867849284274591891079084671614774673517802864249522041940459265626063025056189006139078669950686170230978319472269324647400248742364623969805450607708319637234841567052482186707820601775208517861202011531932997679903026033397505529716127856520266103631405411557274068460055801259673842590287086599675941822313492782497899636273567591542004796926046301050045346215148760052828172193751477990503646726044915402663217663606148194159632235812223673790490989362982692039661262841965432291690845513615857911825741043660633009326837111299895205909457907580554100401916726771493786452816606742436790214557949648897444560737301978565934997524549434179538077363445998588973235566270278626281000964094809160279753638421968413119370744169869073187875991528013033061779952815525098372612029031807419276635483216972462040033996850038864263972189483714264736692598844065455670603547844562755158861774889306794984910981307740764959785566311917512974175723320394674341350781539903397645402233497993504292343940358574849692930165514091643787224279128379696172766049505690003565026423190231817940099007268525102807054388416338971469850820176221824374040152511454585872896574559850470545464683043267322020832243061021265863280115897349472379991317685969008433883898836638044721023701279527328387429213268002949949922729495598658118503230622957842803596165727769899577914160466055644762235662326466600445228451071537515971128149912794421372058699314226757122043755248218860066463789418942360879634482559802951246965581028420114888365685765454072806798843721552279339303778503252686066413428063952310925862995483992906307169473337712487567825906930311945536418468461223982046726941929053716386083399727160080633319754930949021404971533985653140986866047776526877688529437272541223700823682270632010336212176612226853978377469380323853838653698675799099287214171704595430399363931249990906597362256813603881803117795841215445124733259415865665929686799745167794515457358295222146591727929680229239705808710795988560038426791476843355262273755618717703440346115352704190440690587249036866313887041233969125664853380171032185336855494317773667013320738458209230621240025432845171337614771200057756323674010899917725452600506604717860290134527322867906581130892097207141804307705221815816336591209973655187944653630150105746676384271318133024485029379032020680929749270547534222190620393558418258284868907669136435199819260583315401143559753781647235597074268002527600399003782080770040002963052631150917357437718260783535656160225416292633801032881511968994495948601218367817606145636562666541387915949422751320707498542804677840080092299166013089171049238290968340167514678652365399198438410035654072309728858740546194002044975334570228358177230832521693740229376329591566728676484609271138159452420901356706333115341158377392151640645599751900722268673123170922743023581456571530649237487750320241686678215053993960148794142747517556070234409745161666622954384708477540528598504324464054163597032022507145259489947478240469606257848521751084502513424395910739436810903127943675479572062490850149108340501586175756584364751561612616479399055300772395504589075151145124560314689632512012726534955051562148591345623515927428850504060308613747237947839387511194235365218665398926847399538519951742721732686004098751135400505293188295867862074457020778950982150077783978115486315773959473929791957559311252467788178717868008040766547206965227782928750733448736955422405812352077701761932019994149847987975424373540521965002609864259927439976289374098853468635339762591334891961246521095494676133164805393741861547537150151186894148896584784546901973708525488486522690487876848932492733229236150247618222105702031166508238419303557952837632346179876703402553635183659560814338177806769941673638797834670586946727735854333886842032196326782791530408787877320625619084395233592575593362275370451290241447040248036270211001452159884240470140711544832786912936672813849984914702214141984922095991582324133066031880236165879647356530289707776756369913885889603166251394847882563822143566701286878168352120947526397996228035219641404280715882545467679311833925863445774006792328959490384253144498072315781014507942540642757446304421233507331169832444013472734261921305692256572580597192680877133021265822094410988358910237188976013435159982450706525293864840601667437269537031724404552332166466432783614638321407260658032916230750493360780706170663229165316915229816100205118489992886313227011379634104187097838363698938252129851308378893049342269954983572842869691481005511570114419271949188452258757798807144474697841191433616278178369168277006716966874796912370123961455198853736304741303113612290263480095031663769015799938298399333153573556594864608077162562940262068897778727981301105859942092012378362570654396827679129118483684247253646363277173507586497867235192895644981160523199803235411823998790018944049605590907237931481631079717002225785262327813070513378626853643965303596001811815417765181848614618697447686604183498973619162161935989980175883730700672895384191247405450534980487426829878053616353695271046491671742527525655378049964642525780922764544415414739716808084976546225537771299717987194532186660098497638906757473852374129097240945184611476729336888671138535528932236446134579690054565506300016618936128620647869173580686950979901897443552814315814695540330595222587697036142029845252221515231686197348985870008605466579155001163409729762794484984711566019395530293743558647102285054930605406052760633329326454159318856671104278489674897518160635679417685597855733674692025427975119502193770357514887747332084396352656162322832991969279904778562671821106653713644154315879906408644734390901523860232315627503284784591626697498936157387070841204085382152810818045822063624595021791613180663309127571742924838434684573647171023031806287967649494391516097796992979259655901921299089235912454520907324478020366488337881013305302383640037958657171049725911530978284998880446302224413976567617811541552462640637974184466983092139678118272624942285249026481479324850939316736099604206601287649767925118698755090349747499222906956437928131616575113058537688502169996090848058362769837757234342323203449661129749967899667455585969601568638436599203783513890271199813005421613890150000493318279022054055202221654288344091921935484517460039529242142187883344087341750069930080435872934323449151700511421535867118877288057958961715761558175941246102598123342644040380543179127645323014026629775641171372265783777426529431938303846658295923159144420684501569936302342412921679796319832062169140495257132679944177814906575735572708263879993025206369887103164697537541567263078249004677708676432186620121384236675466472807664846229631876726158141700137487254122512962210942135037529334105690520059940478306516070084609696441353116016560688450426849841653395364398452994429257068727415666346375959440193711188086205530423735048719446251007325363117218908667301318020566575648677127641160601759596780427211540920531115552244822663946713772944924585731084132176515090922888249529554966418763379164110056151495970514034261026748228824303435783120390218989541324142133929117031967392627965978260041733979515490137980640358549004052709857140177118099574305009878665571750307512901981001859501028115974001186046985922630355440407944863642892695709516942981552165638051490556526345549055649055640173262484007678941770136280301182678070939912701017542584405455230727676727391107467572840110962973108719966454011315576208090526899615843914226263834822938102129249153910382931364501103731638994296149738854792226542978599998642037062028251679371341011908401825573845435742697728246153401932456820823436418039745513062019497546454026408208454748025592844727847058746321647176524398296510359416001697312992288532746761892828201618784279453575596043274338732712226331946259077674439299539573278437061994593007227666613752939472358017673592463172535419286974520993275515887439586382820400174221157969340973912458310280403682241352211976701259020398658746913590019259548612418589644826959053292926664193037180041780864251569989697918869073089726089918954525670044368661060520580391508192793781445841867381602193257206990650418775107783567930947326115006527880117638922992667035326764287486422198629569006886580765621987391294307043417730713149628773123088101744980105512062232740604855585146242502631097950629032560025701954751188479863185151613358010173692070732648904953356578441778964120417504477330978542558743215687807390545965770348002572560540238099765676160326557177827398219790528488658040084166451281458581685822234395772809646997469742222541842260904465055848137425779783024882960763422489906509647213838581600850079604532514997517039358717549823211359476766727679840126178269948538898149244022592350473747138699338760314330846097749617817443938861454319214437521519370454716057392612964447826251565442910778397152956813254012256299308377653555007675019152617033238635624397994221880414029895704277667189011497345805399343364134905754253242723283445889063208122369642324589397638043085649964667866783534635018297948924376567910572894421256566838416303273010532773074876313007814785779212809858696001352772718973299274721153501680436664397524698720860389301835010597615671339963448007044861461532999428443069118164029220822113471998262608113222464606619311909508809306969140486197002033433424791024686375143514628450913170732330310594285999314048786639194003802248556765043573390904414571836597340547520829296853863502588625749863613219637383121460449221790942919079129688487446951349599474558363303930865938524005636225321402043700596954289780694255528247012445288740920795819774282704630126879539116065497281360993487305111085923927638490171949721505724867390446963792672263533133305568650577214186837918495214488757176900574496766128110269515567647905850803323622700673877869675521665914230308341434855487680457915208203162859682273697836082336398724343544462376151348280323615325392333196800579613772885998778836745244544596095931784041711607303278994743527120328986640969055710556084543848267418656298091102657102551884514802326599211592245457642491723629224775637511724685945286082451764009317203610894542163536249022205371175419202727411117708436453443045359705368115574529312479056847603750497124586019918920434819470741262474932323258074904129897752068444972920633024011892258018471825149139380062786114667498323800030853723478420299692439786791199213974805440808522712504658185266880300064802675761676737169431095304408968020837593086358488293113275422686846280658347306722372825317353872499749772692163711348106064033686205808383196059227637508023260633737215024387639236083512079483670833081910394798348119201035807187599011708227281095915110881850064420249350956077236960621681837346064967719225128691663770961527869591284344959904960036836245037545918334186608501066591372423729492703602320686836713369494589054791932236761631562276045390893329164751525363199035353521223486901930144278244924677926452084417885168941844630729062753365173780172483644378998022192362456978868289571679485436821014788459604645349157572198584762032965136670094099151838577849588422919312455381829969196953267492975053194373472609651163561815618782713734766808763313460482325259233647749914176868973526733551561784799309373114497566151111632056116106083949257710058856330114003014733415244686261259119630929990441477066430866026677947533396519852070508982021602192291663358440351598637799309554734896014524212483273277369897744052465494077307525240128955248670898126174327448368398799650101367804663525621540114169486784830984616842143719796495221234231711026275196608250471336309511653426227293149315712576992493149098810417345086838821086599983451071458180760915053110451268858322683924588816154119450856387586376995128957074448037456311825155317099521691707430954355659274260890509223844773783509339091402741088049331207120496146290449556777539739257928346853804751662253635351262838624023906927169570610508044941370991113743733078922116761760794636021566820411858880363664494357916858452823407917693308679453160946440869842904946711045921690200434317430338360522062579864176725334153463087190481019926793747395579731848695513714199855180254728446250465455185202864311069556482541038993406018809368134676820342845259499585670486927395598041120818501136879487903257107986592258179303754661284894791889112431528500622940710585245442812852300524514033046656373284390761912795590507283534095424240770996746184219117748077817211000369803810619355694015049927774975527102973788413053795666122521931169214955816794789507674656326739316616855173936912473984560307735170284182210939208481218559313696849396259106999717067221684842133272101289740729705871854092293793298250575817185476576157773007688897831533969409538882207381103389950950467885205344282522678463763526582442708298185446269436270267963370267859720218206772368425547986443336529004260981530833397672991173181585553602846395222541812402482909754597998806737456321832320223523627927978931177594496853810646947324621347422748630612808831419538301640776617504947679224545028570643723784565693020701171836756241310186618468748820727375677433447095526893258352293067440154013571965879000818819796844904412325592497248933118814290846281460525219917898453032503766259630765164822390624837915794027573240438141196567343942846111796392143210274899637224483602419311554514857163785090991601617932588270799959573640232603856418804487420139491652161570721885740774660779368887409231975327665262875610155928603309642486345859248538126866042142335155300554963964399145871094647485026434099318786700084600265183229113489240320021322334548240379499647578968883903474803023500745215935789278174354617776238380097984294017300517564889762105252743027079757687858382385371884588087910874957387624919489217008769007694122741277723250755603055755492475378710231049648883015532018129078419455430408534786867192170902801244958215293284370026190936768466877441826641016318952295678621381622479079260020787517797118976645371210513546298188944715865521368847674508832636931182702924038931824971500659773297672502908140481676804767823714753599842298947858404571841506440571842694733318201289678208229319810297152071359714863771945725587828976193496301886475639648373732433838017448212261874861031229950491722844465034901485458989008918109073971174462456525290673142474664303757891199426983722304701837318068923604819672080951816908497753860473948838854938189640910472279523139413191829711326550056400268735084009775950576704939491998462896293222283033844555211824387719659295786697001435632219258896984042182706832625270136276980451944453766518909219423979837960451594010180788930542071496485774443591536280958742910797211635893302612328870166143669672801167836839407484238240850744177379071119234694033127248930620219844246448236957483765134215441497915896174434289287056184391012326154313261876603168952586255235928004604795329136603665094753474640662935274612942808195991370146310965453381131493960695721571399822649408388045714327183634007221552467978510363430806796051499565599734443708517306227164530894978830131274630492624125814880239396709012734640529435490021486330390069579488838525065913756199938832808145437559171209492393243498641045574913944611040005130087192014010456001516738223335640392924531943084167844933001062964730974128108669338182278732562013351310978244243125868370243477557695097781797598865701511042543230506349034805481596178963720211135302947757229196460813646647593593119989333634359072775835268715800199637677835126601311605388297581383882093790335759794935480057065663854623323716858011259971489987424629040070565746976860859281825976824692843533688199703380937291686490395415703396894763762518734224087038863442563620790186654865527024998211520283979176142740645795412492375193646173781593031000036471036336577202349935062655985032227280051955712154325563891230325590373853664431328742357816137679434050623469989798455947044088975267702076739592614764558120654349169113169184182378626143274758245510000887203104063909574662478902113437527088456978090575596986493124803428729394860019169548144805182299386506543546524632935323531835904644078397175654012777285707496857922019054781745748167893217257158703668046676442129443858618452757821491563585808985348972737785553683379778254782120926210426009229557767117547610276214230072999422774014143924726672594391797762286364590621068791113566529644202669203182740318363612756340136137181889325141863268069572442163328133484231998715750137994702677411724988426926931773909742137923015061146403382229386656480499853249976893569712291568963194320625434860308648744839846837277104053480934399301364652662642479519860516611295070324482112667260960077042252563179829776943978390125571901152222545805610210310780584882109106851742802035896958086147051282641197677510938303914141487646546320558842704458104255825132740991712903729931664616776147723001206879962532447018650989133959313847434475453088174936887029955064868865410334358299443284934116068486436201026686832923634072904999616244230649357179999973928909216745928546186060645431421264303210659247646545280135439908501173594409277652932734932350395624125119453230071076751939334037661125722001131247737430472531979450445904355237161965131112489161961085649492108226012491062275372684566220185004980158766233342231047112999417426943315034404336179318854449260535026154518009114948399761594944923943043058945711063741171179976831955618815183872729975506778680413632434817727705672405348490593019568253000099486699438624514590308130818154861815736145410847687263659635978858738607155833268356983050627577808194335463948059683486847920149267751735456402458083067278486186313016459955460766600703726104940278057066067589521182079444751475986687078924385341949287083196067658157856857715613243464830971873154003283047136787102630443384085836445945141717638338197329419072007726247294733386014723568108920957641256827609650931088119279372255074909692833664058656463812901244920560882190071572607784248603220511088883181106349178296591739399049633314304366452123552643532441095698365053721944651351446752081962490023826254606745165338577993172748903677177582274604274197843129372233355270691575323629234500539025402678807523307277814704738941694315065943208414211282037719909965861710501755954185863618839629333584818415650692580531769506350093319832908298664021895965403938090398405061122580338707752824221269233701318445053183337527529780955208577209978504916083018532844716688144207112383612646429773841257114084696899149048328895503814700075578826719683976467017679374592402514818220809772122627167257266680050027388988202872291109631488405979318327353361616718105912716289869193920117998056912324948089302737988960757827365762292062707563259429432275750524365330069018038821963429328626015511164471409366579848109236890000160890704387531807053891965196247429442194294564248455695682945296890843980411575111585058647222467584649405265832543872373228117734759853114386699144370669747978196898418614259492324811647682460237019713912235667971680060602857463496864479645955368828739095860864302224795731508639315617428006125500360656731959464235622052411362580631467028185875483184523584161678785361752778712814669664243530997782476814601420696408228717250250723423932950090433043198787945119597063973117279584766657377791267329867863980641275662883724836579897468809750856401526617260139707790309056538436210307435242239141881401165398062392717445322044596312911206505068557203278082454346269759070102247171019151565794481808199752924853067620801081193215538992471637647955369470829316524654856727655268693908726399953972792914660208369596024114737759832509183803298954982074735289456753930080159557524928373972999503112070409039743294506602246580138351724436724212122035038693290483320197944073754949157894914462896023854286751778193110655138300182434261687505167292793348684015923779370943731518556969139041922560071206504542285871212599019204479738592640551816611481993556080537717440100498123175599299840464688592759208927124820685169355975669882341696274523478692478779244811153032562503375245621991832718841222954996494362702782302834479220638630503980113718256373324277032015411155918793780087816366059907657538108310417599352018255153785551510498904656061519365854327562277761371151782123300441760527252331985787518847132112843675504138685595517346596540357535041277059993049209383173714173495972298347261089773620771292740693866497424231506778644990031886362973110093289319852471944088052452666239980975729988497785699633005586972415247749917563510227689229589825993911258539840863540920427954392957331450996038421027717496664838082750025267121512016639880095265853736026655214426414545621513853816946203221789556748288880909559696600222653917721658169049414554555902149440596114661938859779898256809900158747430126353733788359020706864762058370671100694111331178504095389224990135251202050645503708096481077649502660783886336613115963521903200933200215954220965292844681437420698155194585361431484104032873835418369296222636582079261557686212389872844644457424605295189160703427090885882046981119431739130443121641353279287799771910506285979044250204769022734603872528904452370103969817052228893949742420305182549572987365752749538465859238461707992334391140397056183912554690200952313249642681117066630928156323019979908408738685732704973277466935596208565516620720473278702038120451753827095074163445671897805851050078177302512125674807824245842056093699393444033994111322126122815210481688406916369056778163253882791896530034120481453361638998262756850560766872524604162168867582450220067145612444918819552574556446414315909979475115884156266841202177331474191907846850079166877044167914724397567544999811660163606137705373676197233546614294432148732334722739455220257489243452004580146434885873314994463747223470542966205409653892612880434529136623218690679979015066096498139291371776996306425536062772324305245253787941891688148364974446037695373786794989197080241482411051738660763172835768375246715774421128106259089068382284473871752685984930789789626252517170535418468923074109185442874047787458865932899061169421437571004318175835596643592452160075132595577095120310558817554073066081541546590563959877863575047246899597975531402261756169584891322875265400972857357172219775116222976022731113595000722596144577432842800106421750410474556964284099547438042893875626899531335171456644879718679636095159664529931640731040218803893525338137164693898484323664549223755502543985553636990939300488276199878724826577727775851278849694849130747164779943516262870577122300440928938119661691461829119511442669793289876140249195733788483783141452547270067984827166668453219459803759161282289844927661557424710789426748204343394969459250347020286882021655566501798326241447901855059708625001078493738871870296299813753176226530146718030039253130223499576845604986222714685719740720860006983546117387052987768540582453256786498166187338527259303267747193744240645820068841389990826025687085961386670689630180694206079530694189159520272033733542708011351687639869762285314616414399794274445175710835580177828035042047285018135425670264043761654012892771544294195339214788785640807759943948155922936314775113795802550236567267681677410035185360294602482328888087096155840190472403662986458849055454171605102509646265107457796973274984082151698629415492977053006412802566785807465538685013024014932144626052803291304913062475989389246858969831994974321290769298514713397540478115023889039320977526238954391738988293321939344819805117790533476199936911235533556818653968038919264261185717077882331379600809989141846710500909999881634503152197978092675669025574884482981957315210438733384524998780742438390725681865508495870380842900590397257034721044665778629456113392563112428676496019457899784818799322495695974056621836293159784212928871500276048759987063945718104934348883415212088035424643223779478319916638928676085320051269928943987413692927588961942183548233767963687244913982606342948869278616368842258087337059525944904517660154689121742505164530890138514660874200331633406625943725205005836530337020949647281309478891390681181603928733343351900690119573956788080898693334468520544686353905622607479103735222738595447951992015322936245230205444995050324810912828755977863640062045114689830010030604218642944181651016372332482173995213402855709256659565964375849637189316063522648046908901999394799623463779616991015662398407014135012556812452565474158508213559985115252277377756869147424743487807533977754435728534395085608271966579785740738149637264548422485917029995510915634918622833758664703914482050322521873856599146835306845831761012221104322039263649389752543642380222819640170749215135143089043896197283954668067238095055296866848149031014664229532822033962556741823774204338544124256694172688769979308019054489404897746970587153798964360560121245374067856661518771354463173698819565508177694831604113657380915099216882849819124421745083717751225002730056400406049724881686095597388250987484925454629779174649769571142797560835227951019711311458620302633950914253318780717090476632580162432860500753028895967245322394680440948193478309889519710968275933648270080416836161473101816996978813002713670490892766832289632998157846376484213974047053310574392310606345420261644840178307474906618100051101388224053198270521149487785523961217000484994466745434862326240818551838201349633123440218448505493478284377539988239930086460461531734176659496962928572720325407840793573375312400784643594423938973715437686753728904001676155316172706326916215704365696524516913343815861260538128603532111224162488236391390721969854007989046669579659588853987368826082867803614162002909219711690647851935232375558627480193545792908379859210723511075939878814264547003868344615639144118107551801034272921072748820852603517271504609211160380662624934372565651081268772380497845512169930238604257717457538421980230058098167495838682553415949177985284660767010062484338989604117965796495312257023657628326684584750374155945964544432114587848878425704457925375291224417208436782041533382342975150422441364292798388988368699157506627147996302067986150048963552104354051850583264771947030926771033064682334855784783288713562037273999203142048337500943426877473071679329496315784108389298047313094641530033560259857481460900275530726515504329863294326271960692582789479476758751918115727550995274905288851268788929842550999692243056462884313388223617078713410224899527055661966416517507222998684782120507274054831529938661960171963438834594674495873114142003519159817739924477209477700506419945632547435531639642068059209718747942789182105819055095481482120458386471309218133264791396811769935733851989214693409367299985517288217851082422496024861890403744089110228668354636229577008011472191468765565550877631281550566631904048356847006924801732809052429908761527457400111576697145470488553298908893330573445584223295396893073803221606884067843351690667491788228379718802194460334395932929223296451441670259915409451322410900668138432265928052157901564706981539825063391811347583863087895512943426739632595286278596892159689884886962271970195506440167181373765017695747147874157967228972438022837702608734693726524663931328136973342486295160800272338325803506552247524618646174845164001200867390347588996606774866323054242019826338440595566010329903433724410263012079729834984296534937758670579575202183823554260924696071575059896574794525805553948971788004218846473748709441888897183398166050218474938928570030754916849914700839309109221521932799155275986925731589573564233372697473333810090372681696106662569491438833238111830683673454098779403408610467210453475985768765054067507015200495134728584936097710465421749720860660366576337152807640473066942874566241485577408433235290554674871681310405206963117508953086729430515922964365000090538222104690587798414214415541814917818722941889184414875316431705575104832290613888407680063589455146174766570132724844001897993092538402494352440183536849234165697663275656010454301729883574084625059994176811617507367170098551859453633413026247872032402004160657465808425593866505105919107673166508770525509440781785289012794368630056881710603380164896428280961920249336333322431550521324162252036690091748840288524369579523670671880102164534186213170778389953907833136890091977825724578090413773754333942979106521285038362132102727070351060403404385850925613391046026546842398709288181046145938813471117433868267914072817794019817558021179795274047028384654109692533278119369469187830541390665189266714563578969850376862965298788343713749683516444485981422738453164098236055835292025306207201753051019197953652679416083470835775760874270846396702265839057617862225472010507998164101627090781751266967339878187038666960548534125286430742159312252754863431464132623114487595723750310064135176536844802944344673783725432275897294223037476117298136778664428969191456115120399947212863898807786387308822465798296503119297888258685250889692736466289286646394286008706595332809543994684932040366984640811842592889907233439205225451032117955813590152716075394395457839493515419585254939176572458679299546734177489068358005106712999640244164343257635275294986127760785774850309948732695802207620591675117352178054736441360655378413633744923130730517412510827504510034201198543324397452064872024407464048675206510393392854938913065948887477167691826563208797239449540252525068352067944051137771951814347185609142088243164105749182323569625424960875515749839976901934006922455396681374708819525685590236721611195279990063584931125173600215636639048541599079374150377907134666630154214334872470913305524439514112795494285333283689077624014080544178644801259125269464251228238070579339105181939248358144826624377190286506031063977131974628612412725983800998890374980360426315702416861225386857079458403601970262970964791265971032074116003126839407827078263027394777651792390434278254789476815827807697080601694570536670370130063734406932971485953878075305981810294637500270818275587740305831957140462388610390338219923234263063684872962938801687995930591948060360359857983519960959968412629218183156021112557084760895382946568907955506110885163079885255144850365673339503915603147571851500044786120684191818519146797101657012030288438135770444895430787747679105913896023627061773023608971471146815274899922772232371692726974374241869382118535540360851502235147676263965086929120755373034811882150854745435601848560570397071476814835130772921865338251252012244054992511214592482286476691984616628965851303513601238311241357060183878344367216561344679516988380900186308002865709760988818896319952699653548552454899080553807817573049585402468416431030786656932906589643442032992308980822422530357975008628199713117762910010286782931236824261971538140807751040790942893925489487845703464714255837243242700959714487974042400245979596412778768589694037446285947559304923032048527628184258760467508521374268897813247747603615227286655319976118597818378217075464271922485325179710955452481559799648990500777891210863408626068413076678214954399520626174264000542588470942568211377425363300444127403748565594623250923865092079645396982780571156710403043922549513241386417027122865952544648632597902543556154197396295368173079810079664632331261787821677233913454035026538186007402237583184516768769986853173612316837338894049082625481302427963312087572542430248431096967957197852020525288737763758921305976932566553966565036169697343553260644585408172419624783061918229988128098151751138036101501304702681050704757587309996342462789384972047461414245819374755514595966346388741841530724426418734901006280787400777505723343277665338162627617193702827833915817762822718252155588770202124066719030615001586596471582079362122387480131995574099361925714999162315796325418615172680495581053834978318211957961370185407626399771022935436053316652120124864828325551199393481119086836675241411513551892453246507189681509241065587748201802936174025064569376037439313817416612572440658374192204426487882669723096459502873622128190599782211892063552018744191786083548763594780135180781878532033939910015642801675280170827844443442030333801490032803189319727129010118597676278411731067746356318530896221818723863153925458081204934567988764775839608929452849029203901007433909848016070972785264483761386443736006539285028195475272740907939088204031095416389944440615328438336566611194362658857329928737602548065209814905261016486509933479132043732825514080779355647677038591712741456224307632990853252867003129267130062296497904560021474206871727299006645555111824666694568861307659817073668489322307496124549672007022521730393083111899416368164280436701021148993235667993004808216804550669051106252839428651048577606136639432484602990672892887364714722648886629786824091403090732705780221492822367148615866516651604587217447030168296559643166341635166559297350024276279055291396324227418101206935651569114475532658482269807706168159831789016204408271205218584205776804256671125042568506402225320055437488057291947879303138064497639848639087892573732986151779735058715358192597174016922847222159193755327880814319036278531453595974608845548290977675811927782710118433618931012790482316573787591042724323528697294138062837262698791808854992966779407285202000998292173622266227097840464694323598262174961687090110025999441818756539970427320534099655847058331818017259676318977568126038171794314001167688929771651448498809068085856318833629984722487426220695801568709866818770906838525459896343255619092719783085280485625378975894211611779952131117270754590812427719106706153455526140084925785458183054103059015107037017658466482754361779752203108952994593780778420510825623807878685769550279722409828888963014204705247213306348225272128900409854258247906599353697908525303269061668720353182876993835577756951109468708546215190531098205967411515063344224558831352826703003256034939226393696447045730419070723522708304333773529757187464891449238758667172849923198627502577292847840362306714451372908914577236374028854593323152992430763454792259351689761211724354554108538002610376998023769559230062578529663397921308334484159107008072793509584346495209423460554448135212385462728065232197057199884569977670352717692462087169114720230385056824658937651434348792767378311757950971475760096948425688295148393817872638197582709686329343623007749427494202029508493677033887990830907771314609888128489769488540329068426675268572012206337870795219529094830028246557647508921642594065571571131211608322931340170952129741732096703293155863222186784330465898134124673218125152057568739112049717324493252330424186488613017305082726442442855822930113324293776612376503317159254895684450940431755126319202064908281346679280599002011787527610714646557542758078567840121181051058226843432791981277794248726479824436982038974472652779670994733853495835329384713945639608711793830331386824977097087830111616529742732754907978901345682671413327877148369281374679079026689734684834630527871478281361311744626943221694456635849818188238795441728785416335286377099823384903676083434335092328408948047348773883704079732612728641790478879647809901100980128503898962390222211402262583232254127241741167681427187921139957595118594140010210103399478918521050568149046516969481934338789212009182494725748743954704786659530188878673272953179313077944730131353958719983021411979965088685833396517594953449813075461170634229957674594460981292138447826818555926628430137108952531762251872898352976058615739013169534874657893414080354731070777709277375612641086417094895135544958485287559772590070262196262320412460227859318916318338148158477319519187668459113492674237877420326666023429058853974025399657297215915642987930044425671731110396918823856425839095026391527275492678535510161002616848595103075194885944560731899812565664898833514201931865795933898988638296227243252213919155154975903977248754807704287546542236429253855783138680862046028424981507403445924303322536634315079046827151440499134053620707161071788668854607195464813596311464725130906356706475408905525757536951533593873505085406693218794504192083780630160981430777567582217913790060976163548801580375053039802407699290496362937278839623805411016141254300868697445042416833741806285554765396917836647199272052667800092184345811249009150798456197629750459289453717607092621977889044108347941989962411524048724004778449465057552432620591996019107160413350024048096853739041638920179566379563546582600993049541825709026336969655626503296611726457669569688918590998846358745067865741923564362044570387987189579966399607130900122992655143263028154342743387093053322706141165371020675023882417659543293008782120458058309530068648999671856835078689355136377246007407211613600497417610406924724520173759206724048711555038062959041684899373241304059760786655732986625503215024396818233641178612242168424108287043843981337844471859100861339677653061198958405081877651369761714819063187700375655728358804136908735154458832934930119508399436069830855614522226909869860271585153080690457054592583616759312021720072479769958392686399422586069168795981403171876278488480132333079154235124404979186299663142233592056284592215458014275951519141864115399686040766927765016083190686267410547533081336714311451623101722193216914989978345478939227117509188717373591645104230172323723136782038892770857392633205287245568728465561371432892086654457728926881202786182525666393823612209915188590695859431752985596410858471594146440530140061352271857547619979657904117404373782814635718222002237206652865570590302649737743326452214741137974623145279323803547616221549431437723010752821226101040575829200795549045888368258162725496997407173957683708081859351041711203946733795506537332422087466590629649391600901667345221924830105457467166340235368977105107523773456355304036963560426035052292670404395457419315722581312972269622830681824653136952390568256505363278868300245429482939603366554031790416798387137963000592282591336519016527411582157193190724770136960575280342811899325728803288888473852408707793346313420291452577978048294254021584022968140503758966167285934934215839369533063108225144425233706982765490861473702871247522682016455381965800476436815485396001919125482525223289298174719711941286430525800061437145667525667696077151976925725440485171932987063915235363877934867474357446559302242237230186616303020425771295817520292632012875406745503642663416255144721499681690545329832469463851206409300991200158023945814076422244932757372151220263910991476369263027914453995416195298561284918279556967795289517346091252380451069958506065260683564946173488532904776452856363472447278196336006372822542218771305251868696363948578490387172112936374734838289355672133363853297357382907015794758585802743601251690120771472230638621472008767017232281960409029029586350822435576839528147835316544316399618358052292331213064118174800096907714710909452742751445065732465457157623279920282690211720457061897424163540612088647453680567418533988043898506027080482689205615330818076712423229215193373442268778692018906224282404502952269189938647506191808685565647008691435717235405862205251780664190789289906564120418299555821482910927779174533747419731840147739717178754051840428666467732578886891517329885407665787947615291234271093069958840143366776301179784911634326702357725040744771051864458056590084084235769541192861241869595247958499238180760079377717385014896093636054960753128915229789609250034184297826135945107427672287085466061685815072590319167943305631052449923802668999954243933403540787591321705181260631712356205609628374878800056896776264022531983297920490874477946885290841091354779993200556054817529555789773090798671788157137411764653421194122398505564346914670614833412003447749376275674718719548434886960274796413093850949116531161571344784332045331819014891452868468153158373695348145379623996244963874228270655790454800845574871208475616320823918043800238384702460676505872660096782372301708606663867749701307053408868638948714938958804007402019420499605827218544676984392684519132159805426660429351893598711541038863072875627778878095417237045606196940229751538671264279765142487599910242509628095428539575885323153491523202795946427041114012652113713358151271546572984194671881312042981253401207960341493853602649699072210897718542519100812350635870192442341002984954453908583793694906469666917533702686415356206304741938715386834596469894132469829663367598016895046289869156054534966294551989228054228480967990019258234308912729736291273464607051622508230391872234649554238870999575778400802146609792769001712000892197614615535149411713382493180488847541876643003549102294413577432509282137954405576563269378314709357458337201638556566621872498323556928803437977542223124918386325288155823082446526952599194927769826150436797635465085368699852673757228778249670445429485684974959878360089798980384075961026251626044802521188974447617936579053813317562416013948038401854035176418256146548223454980922572116739358649380391917765233250182494725392575001298682584654470102729821687085093853762033099594091663741182666142004940216489619577775207053131309455400802717153948539258746662116438305936647369883711687678604375450692189865876558457803917029847167995115947197737683965150188810714183888890932962384324057383137235336172534032903582487500248046422972662331647014712524590792329645213471033299785451271055748888149989136636719689300813434063027291194249703183681690672268490089070895988204453909325557371468985707115094646381588379581810402857270916998963156077444000570580282798328188354492310949229352727399768473414064429108898453263213441429431846451907784415667264814653890129577538767123383243344605196879988652019923721629609626592876189279642446837016403453882440712667949718891334775043240713445830297946000554726867932502700562543903837873368590583162474398069290942595926845320036634876830235121220073877394098687255158259988623447396512215245804372236017677292925722345881659525986338685491794101276950667642939792628765056167308970930748014467810637830908419501759968716574626456391716360337530569535436225500937102310905396260197691478777214885470534630477069142657911591560734902303501399624911130579697233152866603851859881972401679558984679947927828130638236837205700792165036845838442751456225082833462411353185528355768636877533867048632393716712252207131782614914154824511975312710828000460428886273682256700167326769760045264251491816685262365160253989191754950332064368671190943339002408085012447728976865473347726381732610132091617965405591917536540608920006514874520971197437322840234261161894841451301780186875591060378271785486546526581055285001291177224652075445604102456797340069019125282614951786807153679244790064032456150211634590861016447047900414579955481785135353040597384484474588977747321921507062381280300303605987254873387433975694644650040966614926197068922937226321763566041104128317670708022432464861935744694500702000084009741950764244574722043128353368678436441466034866999557570956907688956484105355654911896730365528687721874875130974616168451736687875736879072390548471015362011695682312096816570116297524620719914903719846250869039990944195725072559364426160709139247430342066962159426628540724987832227548401178824790098433785393296492481377300281411864081340884832167024874898500282615483539263200886466925994504241281418137759572079350982729201734901035189362659043726094007772773687248755703656097620383092090847796141425702325313254048505791353614883966575954592332300542256426023132629949729258917569176468957229995878427706146835100935429279389034425766690163174270649559488923878329981987767497917578629972069932807230032132171893601270012566024921716219318112101794664682757565921313709389489534162236872848254576078945457753692195358598543954463648753210187013393485575999962266217470164038176420369885876585319325061122256629329800965252792887879666149426030862879303460161293865772453130809456678155367598188277300745809014134271404138843583432340584835511231418910513621496816958167654467274766765115491043033039434627090616605012523930354240424563364019138470367286881421923423804754576861142019338016338035108055500430197710746756307845757009681842841769955926671992734831344474392003265990078712486135991733658106814531080870675021508590239184700364234508975134042046349745364271366022611278195325939140249779834051638823370594443356669629648965561713952650878078243241666394047483806859093196569669589806209419017878324565645737618554613320727836612400394033054469978342581991718153072091742905142995256977599950814637899566345062206106806372077563389070022272815388327297112517622991600138466051435183067005639186953154634929867706350820765497720209521228913507694296559065060220279462467714051671315971565192859477803060882917207599173366959904256744667245278506712253048100568902700083846491918901540458823444124459254944520097904766494236321934637323290096642705228442545626109810561193186891389985501396262214123382793232039844760976781524238180262192129594381535361823802581412837116084564101683791716470657865703702131262619237098644265830357717923857908036883036459199972355816011136625958521524357753309474169547930374938138005098108027519998960728948432880629261818348376623399489428357559317270331059267833813287002362309060874960051499389984556465688205662252881137673493206936222252624619770723122367657253427241148409804590359288136001308289536068800414190239839055356404154466051766439901810819519881941619505264288064027169833384608791521762711817965814502497915047385948913112923366573330947982045715176678139853841491090788123330437526973500555275624504728472222350412125272349140433678866928885747302717993375315557921948867586570673286341664781535450872619091864102246671174457139886183420687704865162486484360025848952805122226563972790616818790543336560042549716522288804363187474747013243249794218680502744765542823266122300305585032450703478866805235610086481713529747959871316086640170130285379742015866795221400503435951295535469071777285370351810277632083358896793479340723845505173085716436496636618959781880601788451863647657723367977694623159087608372969955414111854479528471414076072463027613681121363770748296149531075462547211824111531917680831478931006123534531358498832628861663942176638107967806688191034651432790619500976839387046271516487187011822558820151428037892135800759191981801748702891875544944796801990214514067349589320512236759638646619385026995750464686448514368230970281737872696545071715888646763171446295085617336682620787865685265271561292046098941767620519109066538698589582895946862236964702259154398045405298551563559883272879253032996211555505739822559575722109900388181273937604511957975332237733446028397023818512937371794833951530247429862817512760493676425822209048590006197234799530524224266393562220384663610745889420626376763385970417485329318172448883924228401778868065305467276517846646216445400785351385575298514102747065402993179392202883735535974092989302875715618312929904716677765361496840780708309808468692097676172376086874371055247604578522745375227856094515915595427949564645576178624853538625273453280837553929468675248380213747733690567601974215212353251725510223483133664048533749190304859235340684697274526223058404545220543114037438250944432173407124428466845807833299789292502702625816696587115317354023497258606200852757246284978134314123413540821826664860864356152737533940223594175126325670477221051767276084248559962822441078773344083330185986004921655787696390642483441730648984720199883803015204283610249209730045010229104572404007711808405179035158352235058623639075342299419027087370599249754492055799993590259576505564374130404092286591173011330119745538610224954668363398078224348153031139568573987850791666558342138047219885070007058703968547941539871444275931268860696589201897865993612652272443717031198666113984421844984010960533449571464349761564372973434459960533877268265546940602654135834293605967050214938477086625013991424160934639845672704922382603568956211880861608632605125029476956810743489193264060444217993672284809519285619562978359524120119735360548492035419975018441684385431496896475929127416289695185147466336714475556906451600263986967129355284039995421829529162641756290339094219587047580885882195445732146847809626610516616746205076751769175982649134215219300297963560515912373614056910686734987027709505441846786542761851671222594400626209638659705734679726713238120061452628570964901683088276399583295459636027315933225149237885143578616665800904877875276409232453714796709768430100213012833294157430449099032185475032447724450307848110416162262182214580172636190448163892355861611110685259735216859221719589478967907795460799696298825752972215571174346904475966712174607812086145561393984266248541374156319342818453918467228638620816147658434658965631876644737975149914895786006590193414690184343450655673734517389435168552857081105547341653400687993568641732138877586264088133559119206863178935848460113605744208799245832585032092115644503918920476932243361910979664228301309890621436445373842727821524445758972331043683453878479694678980407100896955857907132519124803762855024669076889707414382255267647065278732707619927902269393710445693105427461736475354800924454507268523551628997271871593666738542761665564900345801900242849892209837883924502303097909134081205005499438998788960752486082944822368536530626909964895543135557909242377825801889144356299945664251296648056793331687286603571726653042073743894877054799426460920863238097634409882170491815344275296789832819558093541826020441399540221567486410617324989500490355782997505118050319104316576934538340884363011162659201699819013753995205477860449917855008924337315993571034473660516130395988806168419283107973062374301669112125674950320735607659459836914918136967348877799709650292829412854146927503070773868575746556205910610019175789474272841892833520881836804599334584675045741112250412716553488327786547654968586918142865727377481097067658194002107243876615271832815128206344604662823438891797243568017460052628699406068601438175843589448842550799148708145989154352303364739560573631364682585171229143047841629008506441883680864128176526953063005613011977591686508496915125423632409354831021324615100705612743253008472221886807440672401888839729187821406540198988005434370478811892589313942412643353119996087752943479706225781648884045901364742535400043844698908284477902818287371472675074757283456775115470016161604647848132767814560426115862756058919711680177926214420207293532342822631210137516181457316507918769904100720075721350512119798164060691901009001084683658216042904255492239589738271277383716549811946395737839490628447122550308705158579655720242588421541973975736660638498916308715111932712780148308998746070978556614000260107283159908338905009258588526066483813055275668501356137143333284795734863623376931060278745964216836085659913913487345502622509201214330742053625453023598176132987729508717398854822984899428637988471018359982306642609670787196881802347525678909080478476995577694750271012555563897426766843947554331084623587249513511812821859455912719893635790445416529574700751139880490922747159531685338942529092797466532697000055479597297718165463258395659678358669652213882338129142813526767595831258607533824992426793638987467219339410293123996368772902178428355627425824226681574370982921595434395242886835292767823845701441426722267657746894494449922259328979255327086550179490283082852171535588061696434763414554827356727042862047631356898312035747335029337995417568589153659532644771932086982197088204010335656642350749334809847008939598193756070596223362398806236285921645313688879171171091777407201257466874514749606774013264444493963573273776057900035799225036778762662984979148552290041016019600122257678784844171579323150060647005260486413857759652884499661052048058403086872477495603688523597581522654455780620482962536149761205335347283618061776289632458291463994558659384827820699832175243003227491058564080055502928298078148355966800561261597489427028487649762936396652172030397315544933573802476080592508952484739070049400552802752255451335910911380197424618616479634257744592504200891715304409224857008761988384596500470996475345130023133986427592206045801831693485195008121531610592154183076456758019598011716462575066033346051968905321343140981683142348301255889027197688512700859892082248232945492424893682464228975360817527730819895578985671395168130311606698263977051150733021852767356838497596502374374925185817344147263590977521042771979265903780384356753753628185182342863069167066601660309393223420615758404545740890148574992933772027408378239455866427017522725132769430569974806637093941679863857389091007608013718204054727442558253154309690787958151018003368058300582966300553290762169069587849654140913528991170336821478029164391957936830740592860608019356060762702792836680272711428477405947260908043046279344459952333354053653635303744264228489755094621186933058685989810004656038920238397693921942627697557926665962892245715545676073594493539568147976571072038028047115200499033698248327047713366215045582656474340388500661203597662302610653356616550960287982827200941486608999720446760847588134323241842542293792076168259266871361889133547107527247458792419219866153460069895250853635415694653056454111264141441799707979905775981260583929405172761613529830946390924172936827567649634912368921649681693274008125660116314288409003372585936598088636816569547795748147743532566584989064656565557145076428572973938724633970435777327139774645524277682571234589663438719850424183202108982052222151051305348587638352630008621113462126985797591920656917938468456167404139271713871102309601499665661354622406604575664457503253383438863586720914826900843047348885083268960951733723008983363741383087939335015568992912901723106359854137299819160993217611884574066511821520828569059924484196761174488683991828783997659055891013322099484473652929102258182630050301664271173992372149570558218169812967748494366714152526873233713570948568629650195448161168722728210538106077444661296615716100924607986911607245337761319409323534529080272195910274108871159186551416685855896277400708835219199573961755043269032842405384665507224527157716973455624573889745562743431928734963010282703922449463593865192206697769404793720524785707693254596272290816208196482655336741130475549843985514291832677985952590369541327640800760887618717459941835418076836026744061508717826866178765985553748613431539914776991615672677596544385476137766148430314333582653070259834291090174546592043987235846142847265298152757457008091052620751251549628380462597600513837338221948817298221573434363066431580280076800566907448836873110548584787025183577020013759215547899982271551835823163292909390048280380878348820208197079213873719739497001663839975980117936340893928257744284321061705414442766330609867698368355188218352180482687127114960126402034659831746780715433849621501883771667647761097033563014465914897089368288144475712410661835863562060155828942615624629192518240453899228051120965076305441011699234373947638700198247157972069090074047359459549896722317807250067982725129020366050216475536856990409575678882043670922521499933544166102928310384548263848112028192450988711825166610806391000500421690168804802094692735761200566625695670475826867087205844536738980067733764516860169853821143555725879467405559974263588159205710275814209019463858243764741560575552129021741995397383212988833916145632181812338812364540863891888779243366994584199478473141583835558174669075786560344459070314440174968852162517146221126990742449482031096953389110538977014512127996668048381853893235068911566852640663952440597009756044927208785371333719265252589814463835040762677765195090008301953178446643734464539893882621917347841233439188055528978446351487474575073220656668053815562157139806194211880577352251513562051183568028770827902083785339758454823300523336196174409037314536554437796037307383679937108878547874543801244913376969847146140739334345198002397572385234397861367390691300349926509680647068112498417032978899554575955257010105190478342932778530987244551908978706987327387515115646842271383983786246328677031974485186576764890350709720041649298817274259668695085608597065967760305419467147908913920770267765488170255306217118197143403783507352675865690977518399998819199562149119171817640275117072444162049445657391624071945374113144132271739991391156103661937368415168904002173248637437486958050412981862186464902188581299932446540329395767026522756729767252666675574102259052332205802128735605725844114353842767603794025786089530333916621896032847200874036225170059319077579550804086204230750013516225803929930656887995306860978800807501648043030436451616686914638250367957946333445818254519002277403710066423387555067360341000084884910104478337175013089370042277706257320444731323450332141998799529558160407546715149705086589147157848382525151962969683572632992259358857678629401250887975498803715452737303869228139586507229910808007764792008550533522224040000274617345263950706612838422336568599447938135761684645527056876177264293648570757552923469076551525144380754235444111391247021161607835456523004257789507801916245746730192816297671223528312459416372019097731939247013870278494775070033910710174918013295724295685424018941222534550545433650741312453389459776376264020113231727262231351625436248518858689717707015264855480261503694822039744793678304104473834129205557278797893187556444972302185804593223458301422827495989127340425693062703429701166811740821648777402101606095269476640747903987896850216737058003630043957774508131969358388176422913066029433740667279892786943571040372509667116486528997426342269954719260471644439809054251830788701684538823907371329318085736513368048465593357207316199174100974268886924538970961754437721030426542643061561955169786453679856670477471410739631347022027936413535410429838557008589232811670121046567695831969324995299922682395632905630114956943267946130056109312924214449279032625436518471734179737879800890366831295433576958636224486715757413626709798583717949388806514177166940122193675805090138155581316692842478205105664539994388355798289708948256935186102169103096180421321843493407961247264122251012980192387528044983976446352141666122781441081457849575207878334506978716796539590730600562909954728199231407729771338516712618900905240640377323117850746565606887455240584465513030034063938452043329065452592108506319435209742954226800921430671593318493604301480302592716081714023517491758520132118602958474242922724042531998972206670710073143887470528258339994556845104585814406428597530752923263325464746086284128261540709977741889456586027028499129532669575441236963290875004031051590298511193741406283431021497425238231461737164648871582166702415609789891020152888102403017458233719613733976396515111053714785756174101278804139242539921787730312139351034755601563304665721164615491384732332519201526153890467517810749772935454671763109473731515804468997376940058405351558599204399879133220022959288533308269961757951896470674397957466998413754653989620098348238959812028472771940128947811173747150185976287972383423253650662870184761768462822627179486693099352173792457679200403303440805774899816270720326579687906953019743018134290143200282056919915099880895841321781612466910462368973075517358995978160215882567564588460944744599685870887454198978415338040665687800558360296568063277620859141496821408756722951091938329205699649500785846019630866571859081667439384873529728518063927580481596712630266158759742077519018656577761496358877238430643599250052406723231435481643373839436567229422067695683551193572643720928415525026422013053828940088241794522555062626720532967560341360997241597182287606523059109302807215818808942210103856899738039534621402953835699583549158275103382372929107473092107313343485733270317465502008036119151886699099163300090491113740653044947765357645168519210117560989217653067333791760666809920493009742154625465439510796741866338362798741283480879457213486104809895860588508392182837825904727855482941545322297080130628134836521591053328847352162661897113071188939695066850976868173454250619975851016320032393583472914625829770431301368371277991233451034106643644886801674015980310905655239931186571858687139284698258310477398867636925410576105345058309476807603674061277744309760176956385473569909582160370098381716863394329191564581712743141853425665954434141945330053388531660106830221817654130217375275440795314108419542429234186693499205915498355631249135917885061410163759923676931702729062740944971410439259196816557540210546048583703050528591498586234279442217087729469887121893172128319271214473164490794945217530440244870994602848346204273186926022079636658500001479646027791749417461406401745442539717129987645761700044648582841341199611322012030481882875081323543178407747996420226790059464557229480603328830177268910548461872514250468805380455085496767774299942403709059547763883794490124410351260396357771309804813201461132170554982012196229364023071863145257812409466438279990342797103869757612241967715091588886989126534811552202191497649179637476917768549719959279279467194484776789092667143914192105116563854208031768089374655892703482998549957764441195520196703136035242345310680621257695302987104971793426768006577272683593199174616725613283636191762190445088657985920875774028898517197753078197069886019370539177455150784429573973165347736003412238155093605635646861236551981060140804436406989635029722719951390334639167282842473948269710011312434372234829889228505395818199105519976141033356757354921691890485596536413017175869179748337539299247424886757279913969357993205865680735395733506042843973731216297792555538086418318307419214041547295610347345518431056903331635416434786678916024947433184450309242042411967132238767860195289427415390198637081366012223030222738308382084604479229852724796912286900723403223769507044128225049839438544468926544290595269841477763743382896772076177437404444227273585547242957945628529301519631782387992921394321670528711949670032377700763584566411585416531358295914327596592553230748832165479496411423008072352778079920028951702202360617259915814422139596047015442257663050527507113873835391258055325331612720270026726852911808356505465161730260572373858269080153224895710844615854036966450391967486913940909932480572966633428620785805946815530512262264496833566957126644698414318103406998511337161034987069658001702072874799255464333766503932196297479000662864372534836836963321604680269718149405960107536575665557382336841200914522618130846557578223177456200208012509141248620212600509015494554293399083562166579620854258866166849865436562061473549919494826429808975610995088092928038150571979206762893857252478688695560542319512091414061560302457258892084481039036606886566224103056670532036967062000799834629734479237920880843107443123771173709775119125683825211788563707246476370301915383377654139185434612422147318445167395903677969316025337347734959446367624789897694637650569444984230463894626268644960130088116414289128761185399547975722332205723521521055849248038387272758842814233124902953569659225553875453139731454780345098522583278768517980785146378929254152682189368204855248388105096044965173201959823751136096722360593496143229227599756395386682490288537203518394439424141378429590269009549778837890815806424594652432338781985100972817610141008173859496113321531976974581931510959633725248424347669268682410066982347646399263836162297925635551603412968590330917530494824522459100077812863877503420423571621152160801894034408337539450023015800869796897869947615593363372438689510257000238035873514980781233048062222861659088927028432387097017927061134485637222802566976348361182566645738468957068307794806278879833249867334492752354192615768741483953368296515330330479166304463343349382770450487363139022862998369582645419263549463772973417288718552039566630118412039679678258131861532260334547553689568459156955678589902227334980121890493765962515022739834857326368179113507772621276703303175694018819771512913541520932872614608253457552546411001057534297781060193589934895349981181615179802786722734879387173001572886079084242814353913214018779844355422066188943837678692517755736488327089098210877019742836013498666087519605313099728269373228804044824317841577594755311127582944009163895118226772107272148896750464742484755595531656027265146468054180463540030566441568314735621090235707827422483586848780188358510404916607300601048842520132720378913293702199780245152764809497827986648557533685698010513868765239262834640484312951082982691368559357132099163628540730892560597269596892338571875813271445773062748609149263404660555344614523010791650965238633513103932987865666961010589059346351334998633701839706806536243102915171108693789962497404591737557793639898189941413964162886515937159923441857266587045422278492927749245283224175419658782727612382557864123295031071187174171044601931596393006811148875192827480478242078303435970167597683069633192726266695861173587478737964027885786389700449326219500879670378735308886815927175926174980964710658654914890683331413461509215978691416478645300874637878481364811746955200953080216638622964297948466302502643076068705430522688971489731766576932808035998526342216104309318013176858508065090114533056302049109648024365145164652666608493647322702217304631980853186221321658226241897512167503396545798641285174396926582858075438869764604817528473060649036532335769843361423128917212148905540045926243264785972953346468716529774728929569985909462555436152752544556094344238015371520910479322854762298752289169208545564235542605496252011702701997400771103528223727374840526846566574875917018551430534470269285480538672039712674159195954669504307319093698407005605095493513631629385358127100747984806693873551750186276739584549874136783020587763993702479264234960404754552863072317977754694060435706491430709253738972628622503553010701381288088033786507697957224242218834425008918586390353240212371243060946673008450391611099988334213400261728651569334707428339715186292908586875529404833852888616866729795850155940690958530210208326646700365916833030778031730070019669768860302212966940868321540910144140227830698378488585471171439535661947693653126327520127242481514317524629130751820880231559955265498550497186597801424380089239745354525501048875274619528129580302882519783501391247645432186515458235277904509505077567756847658498880389197169185519654581955015721101545552203972848079159704608723620492327502788087997231743679064674740306212353824031518211136407316024286807178183176636934348783391150904063358313728449874263768985199500226739420764564517712900527793645524745719166289665273419622766732757820231413570318352412654452953891600253484161586596172250356778308096349094601647692173944091097294226707778586031339549518063262117166279527150878154607907797592959411604525618714505129758748077535616459729841053139052720505342603202854455714018247279659847358850527226788614885036770776433024722533401210863681045606730999296837429645392143727726972979111050854264454464616164258545261109007420820022506150063957174774893426148568849767192957298405386554342879524059908813426951030792428402141031804578829858740281559340926393388640770825506959930404424686778005346908938696167531095820186680725718255828481142825215833606706506717027119106145789956633633651877457844112579212544062003689286801047132575772935661093375345508953011474919477051160395030766470682097415700142814062661906984640384519796589617984749930218374681260794933889884222560913785055314221517942218563591204367329610885606116896513215035456958725157722598845070592568910019419792427431331175877675512632258937443020357228520463600643291811418225821503804158842766265093127110978990408486126370180508006827459576994696031097364884075935851303439861904346392102555520001454989953316668008079652649811385599681779156341024552662442577161464304700050011435976328200103437802088972531586419659896796281745252634262006709169746280545544854318708532209721738364059503373428315578772033838835380391082179907333158379662049493731165532037417997378312554029491602018750627982271402179489140634380320104949188605474214536888089561468589722523886369727780598974583034210585866339167654449018477246273162789611379085368097392186275035726861770473185237824002186994132193502465589578113608823877346832877296649050291581734284910768246618668978498321420126636342220759652447956686702879810731914231771193176266046707871239243807616247026663382514877375783309763981539685442337300404993327587838547021302654859089960009654150055980861900632379146476888665701002302568347726208492237754922632680546839542356737855655065000798446924744599920732642353360075337977539184731013665214102128591251403225195409308034326185892404467895345018214998681635372397643487562447283335798237942079587734051425708885395834277344753977951110566579285825301783596647763764319124637295851917334669061587768966974793690003691709309544777178869813375186524665725720035274095377085772287105519322988702679009697258543413825660996116417753185577605225385432918732113183310482137004603715067047582265073953003439836271655589196844811832299494056006154467829801401233352325969845639852125952590037654174029979345790294135709693062006041962353547102261835273670888606795783527944761325979131953697935640413726775733011327794167756977481538373198630893209543926750754927198801181734324939962145769934379710336466329567546269865181879799498158413597546035851004487829164119987927589038363365501023340845620877595034371168754697602943603237128304303035964923500653551440341429488890451435399648175907604829530172749772866459838626684235060411354915962432641411055515523919206258415583052397483175070183667526456025029699039079104029759110067661104200761624799052738548907082611221919179711537560364081319246795328663992368560847437673714740087897896445063977106069889182365428752862171900608773681867693503100769286575387601703931423614878395845598194261219288923650479264845797084814915977144633793706820811297690653427073320393564281392850625978323208165838242221513700151672184917658579942528419568346401868073665699887362275916694169573105882260632400864344761995010648459203316686879125168364658244146300267541734194384121221964571765052438422926498757246054342265928778271396923773673366786616565495622222857511187748955495308308477972634607022421251587317593243189749971919722244919202109689694029049604923352972571412754663691200415750499431420794810210600627825589198068143663233371855243133401168089757028811463415518172890983347378377985594869655203811308096731274275563959954872201955433178004347378197341156749457154639043005760086223577219036949854095664224093329341447532886501081285863471006068479102381203875666140239347514231387842729735174689841309766559907895106860177221494092537524010333505318487992624692961811085211120085630598730524910160253497508062760855485413246738536519094911623829199365115722275601232225150501923422434259681545547093416197645223455246107983259422800267207586675904608740431431181567111682187137105976438345047711991603843055797093935227921086430144026258508846167477693429870486173932008768640517348731087611520106678542810195469795110414999941732781445722500285619817256317252732642143336345307891616049837930530468977488612770344745784274539495649560170043856495818068614004955349619399242115865143021147625404118273147647775494494394525186723829834921670739172636371183725824447020492157545351110221609172820668980005557406445219410133616777668677696222184940386514684008615122364339775207527070436871936512155580044772054441255122080170925331788935586929320359360632259648116091422049432528295265527608177108552465682352537468885654016813845017708195167684376539791176267828665893081414164755077234748434873582373636987706210298324887740034874229949786611244250560920633678668238278056875172993926178136704605432964918393405321985752634696077739133627152899616354913086960769948849915262679933189484531824899278005224800469114921292366994333487085603841175180117703502968978466420075365316417160039816591135501101929564668984384297799956031421770888680541582910631952617508657198431947154973199538035607605209607025003604149436507634679961846719770330600660013416964728970617286089283933141190470805978337268270405096360366986725603655679061992315590294629829809173458672955573175731463990305486668474760490243286216377293397110082200278061838775008201778389641954166948140348413781590280643975290082322721640576741983211918712182313175912330780973217396040455428762394977881215288406862920587189676555744204819511421966319129212582543154974185962440950095432806579024012233874424795115503112504992220492740609927560696906733763459385901248862351393502471641150338231044798872018239974062277485793783953120730371090363868175809198335398921352917269420598622115846407825450558847941672055307170059330766923306752334053025385454047169416646619760649491478925046953869511402348420840779600535923213036753134414919010803440730582368951827522012052327989137930108974121808603269423361401941637058394677485934891779841818478086734463743530602807583828906024093027010205488577913117283261490165923429871523802499921259753271032555698577960547818215960598412544527970800494936870210842767615413648232740920529519620300506724120413522203760783251704262960069253275773776984023309577831227994120222282029470132725042965272803347870120413643724755407187073610819077862252406235406429120113587913306246652339024794431249196079821123410182094788284290226298317715238968133063878935967029513945709820440577427635190554950881791294117941628780933962780810097423212234540491053130888446302794944285399716971037768032094140168604589742003614431112884724299225904092779496719741189521718494594074495388333668735877457855027003608138397960778131910234991021756418725235860033670673371771189524796480976564355469728180375800616243112875840555897870351699785554277547428423225129741314942611872736772485954030355788246068187701477457520101007017094482108686280777661991354326780435824977609233215349325671091773202996853286759965054362785233203542918843062746895328364377256383081659482560707991954095848075920844837789975815222152504852577172029311384434102730694657600248568485133210882761834483229857978192136133746856456302848517865035268564707214334585604659287832108570719711559859818756954518348713283425720559721629024663359249520126517985759038768666054086380998667924215499677256072449005978219198123443479098255725470300792945248644755769159357775228749688746361368221992721418012601626243446155229664181689484190002373128441633979505484879995606011449384870312544348288314548570376084745915853804233756619391404328885206813285159496055013042094699005596298728175726072121581355551701888864003020067007848915417759396913703052705223882733406114331540829130325997685147797066417240510200369522377177799076056246110619176661821924581447390264591773058885401834890772898889422808217439289707427036978518367538981167486524926637846143151086008780453330653748434529102693415642322368398782545325730016673070568579249222942564456491336845216071067029211639384876808051566269942222271092506983879141546906046272622337506895106194889910317098714526815446603406531024854036311587223760034427413909914273122425744373543801750881689279549373909611755316919329189752112623538030690299617484555695468402914028548160682656923688466148538377243897542342167709053238455080790825391268041407248982471772836331551865999458367680841971572813210569469575857321882996383558669422886837177443606762758509498739109865859926060462976118368464377397847009595746352350560748727929405021140053971246181067526678406935262894608988286542042139211281509464032059126101294307508935471224296695171035414372359636936942296013188722606261916912723065369077267192549500585367564276361186804842446987283554910248465161708224353596426201395239880403854171829897420874837928334413000977295148614798017624771225701517758228015211946112280588284479516807475267067307036975223810270678188428139405255074940781310390822996593127871838468407836615325795020771258309976924435165963043722136242985118305560027811655134008206460628453623194713791766215230707346901831859234744234343493102867515207407540792757674439700550295378765437945981191017207137969504557881612898270290326376872663785167398528795269845845255236871616591661764660437216639674697384009131726483077371810366139193345230207669108193789985576973724263839634463962963631536032196203700000923285024804304737046108719755461050205119654242600063839924719364339619420020336264114326497636682214669347881706385283054261405999717435862551686138859319873857661696135960551148744162535930256542623517240395317211965150241934823925100277605532399270433959719627433807232892218368553916908758568425874559498598532061938374380569635646674068698631885107469895908040689648155691732784877508344285698854922026956243620217300749328435601924396127597381134966698647919773759958864457252986592699200369926078309744498169849271357499837377676457915960331140950370467574077738869092184420579546402521591014535997033794174735512151748287682950581959163890707372887457800658196887148057786863798419260781694153467834539028695083696160534876708202536411353669451713794842754350428249991669487005186783561039830513191199363735754302208619641617350114601885708294938604141569579710076522012447693545577162868127534835184680884231025088769975852221390436719726830270555204633968533509611390985023350224639908304938040165047895368843744752100363081691281652058832663186688849244454956714096867842455696048976880814902030319827246676572521513952037225941280002967443498059402870270498593479064864700768648781369101300085476968136177002076619768285680126902947781083619001331718299092925351051782647700057093805914885118847605889931509116743654639576729073295002474100605663981461170402809728227207824496761049342062378285044603139662327110919537184184598332238398646825893987168795453608984319250418586620362956902443657492268082536575292859343307907545205496446273604675705315218352018852390261513637775555980633157192488161387665726535513207946099695108692078934870670816637105671783647671683946877049934962640496913864863241674292230970398227679999597468208161560257670577856625266681346749372697100043529814165819844848155267527227174965322923424025022740837232536087170136343870917354749870653169492098592263931348123240897548702195663894770702931234492269453259599919212343132626607105552184530865866702303636033413974788842085176584841861860194646944666562133949669747607269602806529975982602206098350746999653395769045497874334980283932119114914775639836641976078653546886350714158804624848811514733073919837818888311776568109392117728666258860474206962309832008390538362630941065768563998577294366572298978094780891747382143113758050763023375660614645442847096196058696760538465632985903043548734554594290863700246731751232193472759829254732054381838051181711008566132484520616832877792770281946352987443741286997305975844296056524559685038612070911925748513096240411811267212021723574698235429411230470979305364538195691273495439426244230042384732953186217577752888668931532615537285646791790489958553599865490695952023333389610541438586207245739207546316121903827263172033253796713289199215134764666685353313631064346357291072178472083987164150671163980919273251664936243169195460358815847144160133205141464739677844602321049015423585690117648825684283708782675316782172606766559078397137094628171839857859478989718745695424681836814836722587789672290452992096805885741166546243263472114255926793294914015510637832054977471157849019493031396236189725563296489752624774154042633861213739556705987295679279481137978210617564373564489231735564922186316930296719598361714486154375791918123111938023607638483416248840554322150489726983182606589934712932727526983137041148295575657617896220215214034469699785025203963083030680302132403935431410709355549970375061311846828419234871710189991908975822034382178723853800795221833410899118124264230370216978900322968652313734558808860433323054654744042533013193563750298375408121949085503989310208133946596699089903023183142434189872658493410931113569159068079985833013030094892883195342813583466787283433612835903124547664348654828809244698009147596757800550903958205905153198059854363439644259499408861802886324597565367626694553882005354425169093748783356967061731348655724383050256615515225498654508719313272381805057441609247952270505431097730459029953542587241243934002040424649254961646988838592207393511948462749247198646215776724563393307177941262794291441553270986538606450561544030164830291777249442513209253477780942632610805195929801533683085134267647231569796743196341089752924188709676876923171826681477784116974421578041098757325727326710772766411180851999901098366678768505531233336970320531502991094518087003362750777179706491716535842443752359627383550823528898380983370333405785921030876069672912888409997235469534556449759027800848269916477719975480158034103562232361077165316999218958714262908285492637330551105699107568598902062825194461374252770088365255720211849631173326349349442637650567908225763426860997521541795161005279379969496680820115718887096493520290881739047553037272145979298940790609603125664494659635478475249031236501166077282535536658283925197394927113483231818484064300739468461856660993300177411554344408558268771974744534205270531922833447851895151469040755718547803682094879675808682020314351543506209893713694725859971880646496182998186016784012546314542529023524232095032477584469776346517154997740256346436247931340126060061642992234030653633337090601809164926868786207836562617260274990929413334488059249182591977081991392790590491465632868205378972789342852083563788478561050749656312727897736378629648710031187123381171717906252521738938100917606491476933670677197389873638067661629163507358923718522407023425844023426611174039735286628349608928605946427551556312653336502649144978249604154627697193179298070730170075445128434796704550014278836353738613732034427317947232608906630810053777890486137244651802752692569772886221125780487791519920437501411328608433177230418235317443553107600595476459772971037964433879365316355976049651880428750348636546354873678768759859354156523559764564870439417134789628502102818238580993012543366099543360520454457941918661416705695717282581362756937040520258383589309738070641811609974909469631183623743251102062465171056163375011529090519071565276774483435892169691928192582545750883282692500077257372897848763598288150564636557708786767705194828066787241166246888544115521970780083929691170291919465205356720087530147956975528796140670625012982632233673353380961911858850175446777240648256390272842131681898072557104858819950057887980952478137564839093670997118006053130755056648826232216538207187483148653503127322023313977088695296004450380080438002667371289374669553346204255040349644458502933951720988003335639059069449420195293647972376272974666702981718304617717843607230889387420021638394181258546722691677618388546608017047401614365667144215889209578418175148036678813339473484151694207244490948647575281634737922212942802404592328799534829535434841238270930904485125858745885051634918106602332666369000328905424386351501980785897268865050147580330725747796466295174153138243627262521383123697351317381167895169294653185223009596776622351232134259415199714883694848080401909407354338711703022938060465338006529108619201901796318107173729283480939009331093703438984307162617604418175485636608618452959227249679101844232032342662784087093549998233639693750858682366753875162038747736955794815707565456971023754364745969840999328331744411153856901521420838476156115290774857625879075205733362761081642135258842380107276491645725843518975059179490038733414271088121113282893610337769214856892540403824236686410891467062941289391479797927732840864599416844694949397263263911487746971570589624238774191381683833828718941717734348157754459264231394385848297218192502901691159409164139150446063319602286534585266314051753088472174286111009528505887412991147593041265195493876203817154458060541767905480007107834404298665607371518706469976273649565707872054589474822638556270677801262847697516982432507024789838555238249174086427685325321615261562984971916497731188683036949214298189050478662024492746553394477432787042916388405504990010332700312085073290647392762275190322706022753289889486938665533176647009594265978187055358513738808165042475371718584552772495222647111765758645887482262044464392198933143270058275251416123171452692628182546847567759902504159913471306477646195459230684318704153202642159760541042280440191350399124329628439573296443147651457998468705447021316670323331521813719749638455250886478614629831033917086987566119953783874538208934105266930811965340635240164662244181574172225091350974970766417309851432986766015391007899791599867596866101663244998478745997677448137603304204762982485838500879994983137691701451792678053032269106095397595307848550234551562097714738498938342375981954993944592259798856747728990855190429053875758186371112741252242661226388537365187203293782042040572147242861491517419191817149139473272188366559338815977899311015782480853667668846852208200957652515813660746563597447911887438360330512498784487565040057032813989064670078472974818741912419796441803739893388987121422255382502434783139046000277742091170553103141353748951088317332905401953786446871859577067032010214083400391333020177497723236840424795735995663037864726847868525950031760510008060237828438043914923071539045090667799640689245745612166158823555646994639711663378380281382663413169647482949665126606945434849538801132775696866593302643640676565649740519275759382346077621033801764435099514199471510756868744140058833384886450359230274986249283116708828377343169664457739829844978640459960304281168319553141363197189560188648363124904956872030707200676784727742488193163503158746910566336767177046592933912975124556844097609836948653657683469376716668942810095905646801218764416240160014542601227442108380851041706423355395916809411754364019244076226828618248080322171170718561847796624727768338772301448243367555648057391712098044179076106043763456101764917437643382538975960848368620220451089703085546385899551487317863148580713502389732356143197442506346770153487323533054214012290411841673532351162175981723358323680267441708939002134974575908069304690721928710628681640844022941363139789372033080992120558405301042114659942686713426279359985293778949460857087993770411870292049314370837058280992266066630626518192186760223977183853415585205679366892384697999853635313544392506664385030004718707706326994818519992607827429724007643568716698994300682188803965610170243923586026434721298375270466282247287291593963060290401111302244620055045082478716443014222491420912256894368438394658645288768630913645918479908331035472178263030553909090583964824283608951414684657312136082288143373028813052499641535186400798037098715906561993490102018300165815255118212038832298860079913333879208796446351615201368047731035545478476594297336234152218649559505310732900353949483414479065578560779111172896108320532608600048984950052569674037432024907156338229402091332033301303934446733452943271595300723681373769690294944713806475240738011630644041116919313480400047381998406325217842670870619447966578778939108462475288368194507028218331034081123975646368864024901917297589842074994404839668874694758150523905803415726935091889490447365648858613623511693311974017510918258748831414138451634984781023623152087327332345320292449051151678240199144566851343406109676038892554880979189614601204799666426461827485023638152553693163636603616393993954331704507671645261598454074118585493304911226420077941928478125680456632195487127248239380104496918356633444868760018125435104174158610581727723288645312862563977858299466572024670293358826293569468440849686726218591313019006996665621133747901093094029218136818558469544183458356820661208645633313928215177580717941929048318364514274314810330062554024888139514325923986868190273249828911865910055877539212049315885141626686137144775088129565136518481529958336298835170770677560437893972671294778479188686404892661426428602090936302308785600632135557814606113114036659730652332608971132118623113555360378264225175601690778504140769943157881020623443193027001288818560924601729957625351403370206561315676590941280688266192247610020853995660772333898007404672270643643767442454107207286193220356775262807428590607710026739865973417432667446391450211322301360677851962130603112857612418404181016298151842743999506689934920062611939410793954587377186544009477413056252558094431734823795819074542842983477229746730051606269441303615614963476138325210402202207726223339548747462167955884658985216389209406655566932515022777023992025849462647583478062928222542809037141579225751730549460781283126250220378312694678247183400029868520963302476087358138538441677092807750684086092554348088179887117346669912266534172575691739837621201368167795751650687592010805971043297905327720077332080836359664751590757753183269111641103058002403135560721880853435662556436444416283703717026899259409182923659677660921844886670293729912041873865723506088357870439470078339369664021104993331204163248479588670786740187137618950269099130370305409866438009766148934350397955031699685294758792902535894905535897423087194595999345617191948246556703002558313890248382517923139561059665109025435750156646004997504608021090288173963859836937334615573731793750112153630560254560408577372649196465834842405603279354743482987282063476524201011529619719319084179159260203950112168213082921552710714414804169436028434869538937775393690381176828722998126937928143020292748309934069850334409979504952154682135540992244301618821088344295641082934242952989862075180513132957443843589248330531117160799570347090775470661045983837063177101454209521525683288268501656122210776973434199144864031888767876056086485889244171673073316522111822234676574114957422832960097110626682376625124094906609476191773566885266614487545483940822633788265486159739350833201286676851541386333612594752480309333540727632387555494115802458874063429299420752857604205721285408296878962372453645142624083186500412841416419257074902829208438990811441518960435332255415838720247175329006203400012690207787158621530456155101680205088059674852004348651682395092191270205140222450063813939753484752642212333365290393985153622795870984423483467621313427011311513733195438953562741449471814091697577944514621513311054712929897400301268432014971646892943032161028946680370328748553611309044503634045308688701360036839906552675366114569639795420501367797935159693997364143800608121014891261978230588754651919884958016341130422022100033687061484465915297561676022358038173504866983775001299905799785336561527052775495777186083689084432248040242232412301126213387714319271911489298936055065487107558006761665156137881307552652043887625707715866582239088473871410830710112388019565349196344397328583939541402719512970259154943007496296648244820357510943157872362757290837090909134192233543122808488236730727235955587029280952165409509580664497728815191636226749556639561442325971792005157911652013996755764405948139623735552446513191863407851526015652076166006111136340024428036669266055387915241365707606551975546876463904682187883633145809577874508531734228168418939239129254901770902507590960470414480955850411040054339175114333930895995154557273671197562145098412007763283372366512141692320792722232480679787207341093755948324284204837942996071577475140170106225180520861210009654796067572329079121447030653352589207545033834109486547112281050803117050256686383306521989800184272115985320913205030029748893937631742038077729616122147201279240408904354029709664398427658295784507417336961541939753334128128370748630804766860432216623245387986716552551796942290962406130233857355669153605474922940267768699798997479858041710351236495054449215193784579322170370130500821527116886334806529351410380830922556255731918916437323529333460358860671998142078774746862696934614292125462104396526623592594792683110876744482411323579114524901501650346869373818395685429140204633202927299550586795912299617076127848175500202696123395400122910456337128802731877467226253045352732167016426521061993095182882177845193547382107747856252613013119910482149588657876831040021286992246017610979505135114771850185888546746064028524544015582771020284239944811129043361677078095165730700275353601352575895130441716252826841526240426655246215987150723566110135788672138875920656589325373727681058156429078618785105687445190675291465856178875975168820211084948172589284553112238520210536428464921603680828296921816962836488830158599313012026711165621368583612603820477534349723705034548710058384540846611615512673661445250665270987694397258692343061925815097928328285883268829831036592927766905760777504421166594159241129637227580514705394402124707527853227756678744208243657290606681094339825382246907395579496107759476233633304361691203126433282421495154561357055140319222077805269367026737990717947809356965515769239529606664758195690527906574831245001147296840142077831294724741018922216790095451310237753995359438218248866215981847298962104623467888761266895737838713587123003626004829179801027384591165587706656424469276145886229904363893962515799087034226128297120001641800535454537112679131135060452413269469866665895032339616597031876387123881774344118755701807063160884141995150596164134921584852709784920879147703522843957348916006328152242014084295059367074153656447344566911059069714939897649251015954370369357119199562778030227615812688304254433232048634630496101268125677993818879677650584023264783718252066580028444452169533358885834453700001824800262841294273294015153663778655965644722610111387894091069669610769196079989295969416303987477105930919011145321898030556471273296580965340647822101620105676451231624339761880366383516320957145207846605548221475209201807518715662830199001327846626677210878968316155705237449117129733259414527544906396171904968754493819717018066748343544161821833060424564858214580005199546455638464188717656817821802342184575871941865707977538312998865682096772945946776988452666915558689301771935596613787239921423246545610280826220690612816090491862115266504399041636401504724472070285282647227591461094013430097814180916093946181633335167585819280681713613887491424995588088094043231560038865836693508541457258277337326188940123805724985745847295352549919801598642259734598181418452427397101140434080407547151668777000793826578934656896299145906258362237939640632720924550702973801983142433777405076375102419523534723009819320661913400177372908326644838907278711462948420154130207474815711607002510064870539960697972016405557362766295410365836852240612084115822562120963111953256867116236321365656719073363292515583559553952675439702097102755609402358313420683708853917662043630649560084213162009274829145230895337310156685519824335316826207592374904693511745936140307353545477762101439372670736071875328606104151067172447568214478073644868601717672354205295862419421706944919061712380744991288187108252042737947211997771331483166533048912487131389744753485376127566152046695895729182479334478695433297032126311797468297087362643052528426365256783115265090759750425086606035584593031676528677399687733082728623720663715747048338535175749606082650659466311521129109930539575082983432102778486858384294472456356577257120992361102073505306804570938444058196895103872265876169929821993758416228356447596193599279069211582261804239742942354178398866387774361464262872274219139335988708551764623185178497269557669357291682146534455743072139450362076883827870834507471289607150229692126314700632078913576730378914875641964040403216075494459690218864137388225791205036922124264864121346263584914231058924462481180524040309381325436016071448718230081434897823347061078383898331632873101166322893267733894486367392745742398511056302827049858020781267412107068021109082454362865021192812151761971413150607138380157447263071466179792900152328655547237725716112253346508310442726908247209487630423560662359991811348813472710956994637743368071445872663247343845821522642523787978252260551634876326330849551222961440562677894561366408187492388518276316905173334225555706832927948691183404272174087474636193408138612515420883334739103200704824770968746046062690058865062112001516929001273133063669657692663620533939210784598649349752441011325938113210392039496173386337644845988818242953690796301588233694656513108998700234448436396575908703166685762929375390871711796532399617838477694794724445407272700564480762619047312774585513624620953636241296645156241824255906261900065786445349482562930100891025971886721628440883534003797526619613093208023264079644163486881972050463438914402133047359573595145624817572715033836397991128665936746857369579360175513875478964181820724526634160740133738212739175146494172320921612949461201866343084636692395558272370848346347249019787962074506175286226434394778856024925746659268892098014710018385428688264563058862376781081296503570799544244660484409715207481195931233061660231414500590116881834546441282522812307102769437926886141947320002275421683195078706914993803271446583887407424685296410107103736676975118547796159798872745098585601744143444918260489682126893039584553773439200272940939234591341215047963558189719958150431267259614929654158339275534672928026423564574035681218064298009672346134301757539721546807732525402052889112528310487557048093290587216849755227122014665386736249769599122576868449409046250357518890461733824006218014559430874003114938611022823887367107734407484500143689822701407398619371502061864960978821652193369385281688833492831407457548233556571165039941192279881233284675977844750157760361248938308308962849773889305429634630235699560034219243327469690275570264189937597060143449350120732596570887387716970278356998913410625187201084558060746955352128932786729490556279199125472719572936165078298341017252825388123533849207534682983813599448912899915047565938592550155544355928261228191170442583621632918458162223875064057238408028612108543291287514161032640854661094861812200468013039533919008528126574381974959549260897685415887589342678905380306114218401804016660014128948651339506498874851710452398519388822142329916817836217965306755878751479756149630810195261481459569080762931970269305782890003232526270616709356216827524458126525996715232025854380471864406197611538509284372615249526290618674371394384596327031942009179377346357853358948830503089259941116056871711592662253607578274211284323089733962960312964877729477037233468992745006056319936628077484080855220852627653535785566425914705131001297722821389641714651025584326731650474358116668422526390104129428337168370881976055670321512239132891528923120985193157164466850384521823115005911577046350487052912748132747267334179186519945547251580957652759714942790359546956981449653908079476437918105527337341788852352065417854914233657968868253120872756998588826449365550168162604758853144118591955448722067487504643260327103171539111425727131273905230663082710077621818209095144971675509415503514147533209223196995560716341192860230135740650599453976069581324811022369709701887279637162809424763140497319675736167580047769705331809966383510997978550312120958379817525810808047296943022644431403974950280524632030245364113630335308631752386833898127120197941258498947774089899288340267249649185259085881624148678693524315013226003006980656567946192024571145201955180919337602521379148825393465042981127608136318783993334960067511953762964814358555191295758778736989816614197417985922396153579825571821416901142049365925494393208753632619031256872112373338356198736335491594276461887575627442587108908673043636647655252708683340414284542445200360320503792557520072769616970616398214884067338778389119983551096008024765841434199856674719774312860563394894655846612786470562957584164410770437162745320363246157377228806460280626230260917224042370949627591145039564008814654501581470811040441620921770137610155516639457510090209813065926868156755706510269328758688974166121738045516324168566051407761911535260209626465608080843558695525017766673601466128350142347360924857994651027976214610030463730941778464860648867112253926514818574634308861066698801170763420216765304669205813102072521821906396283105582357644685239668432378653008908623802047223193619094261777709176510403484691820568925775618264882027595650719613324085723641399732461238080455875161324585861307222449718093970823734762102038478007596807401859227069434783277867834272287544974636177249327528157924290938875309443752021675801393812056429728922366588416885978117986974553121677980625612579170920222686762647596706628291468600310165448533241705550294084373429062788907553312705148888251839027852850771411790407809919556504071266809541370281867205233241471272987114200703930526210528903150044982902411305417891776036047096563563790362536303866486352961215054486999998813755684695475113115150864341855478283962895268268822403060064594449870691731421453962646028913042903989255397824341513427954574277330043911868931695215394101730641235030963937492486128868504617093630706353213718401711753290514631171901979634986198531398094251150917006210977406768300060248010957955378297059625534251845981721666300293399984136094887369547194521836746175759021076254407775403006176518068778031432947648168335462679211416214916645957571168496621167479165953767141414816002219498989842454704833560619580206953552430265464771648023543736177049800195788548100163746565080364358442095777904368708019719172106116256643073581272154960804904868042815416035202221252557699784416178291547921780833428541655841576595640917402255096209638482545376500375138242415909821283873172275379706717404505485825876454741935678453953409416240510080200103499773431524131712876663786211329897061977455557514595586061624911170932744814334410127135079713293368543459054781513366740094889466101203072670780413588834608215623222860835577814303724339599518699104192338019134380713234695357230355176293422864425729470368406209165025776670806646052196828993148723425519873685251703209405179661886411523474349736562586072942189459403871384965297881483270991656884926460388284661326941571746943951540723645545050489731633275252266854964008852063125380739506373764301852840069035920961726057156485060764208813188326644861785546376269752824873951222236170439639812569849882924288081862264853853894999091200321925819101099438551704229810553384151441220797241155580436817732109248300803641603081515023360706243005191235517018020017921112552955019117130522582589495628835590955314145368594810383741396075236157116199325498448086926177592418258968046341548235732067696657049812812290879872005300778378512182557755035468894001726821860462626101206036324033366697163949707179873901044422813543185021872036207172076088631752786509297266355065638820636530112457365907746492629129836192508419164347906563330482441088282669554278879401499755502031777499246342977191221252882480201124746351076290751168847334218468612156627188525270716998976010081449407881310456843597036404206242354301445847517584055820704684439035418211077234495874621281592565158310523180037952338474852581595273114302994577087193719344205109893599154554988423961629202864508375749905155223542479534351965089621420220256264127109068232235437793181046374996013856374482674395360484656740243793616437024194493905678022875002448096404802889773087814398638765088775065570085655022839333765462395057253737932328630525760773087044942581123480443288599944898904924842213768275137495366847698209232077588403667648572220667916327282278001839219126763859505784876777050127486575689249791173724575146637708374793480041121455454736310167968560040270040633543020324036864135045043627551210440565124630823778312165127067973241689277236590575291636265625407760953213411810451219398786463605179456994797050404205902479093090324973397617918278570886840247159610565564174107067599701651255911396147555672661377248989464018944215915872226196530502826732751200391741866868035519456366715561250006086770376081045798378879390847103736694297447736954079769920374648196694710615228165778316378054445207919994172218738602225516668583056791430963925089065020279104094552084685862692911014370011897569113379354355889680457855990454763930824577727035355907172842060916865893262649090824337869344568855633808552916505819093116598087457236658428959338309352417814947887052908917706621650390700218075663257403085744299841722965823199288578458308850003867163962166956591320188813805349925423509581218863986577151733382563884813072136868481003582990417729767360434217536424647338975984177501931004495842907028208495023304493508699807763016208613720475541311170694036381185258098881247381829380428161657122561443605779052434110781493827834807600979057066635890733738277778075389484779013115271029939971562623622776575577901984160166464246973760826399952655932022006591176615581839808282666010643786407710105193859107521234502980103613662823271014760498492124043329147509447555677370813608248846117213744287767320849239177742361612172449739479124520984052970340110068268712846942448435719257357789899294347922435426052530174499082455847053763737531184280281920153975726850918564345293415935151003892220031488750677297324204289462276555022600836816579736936456020460465113633982428705798007534051800442073560922146124063045596447252959631089124386307021804767793198706560871697478513881985482751426730226144719516769717816287415845504294204727964077287302631390548885503318752580014631390611759135900470223511981631204964942536667988130853241997961714748495071567428868676831203796397324152333594175576117813784571346456827636844202479476419833538827437683944750404011089543623512982248062152055098896618637312690219487397412429682201677869626719745652310422880283833930612113919898029332531752937814164223580530673677035950425697866268811680596247836087387853291251275358926213581516615467951421368147360859209163137754643788920069864102833019429345376901398298731930413590988744006450414523841808415934159254551552662846597214854230976795419584188835146857620949409147027314747561408360219868842882018372742389105765450405177427211057479440617695496847457920256013883020932598415361931176896206880980000177741030115246220430615908985898693742573093209137554727834825056845736139602209369645249891318891531316538608378326176552851314076506469465268857773004197564199151586863777514323880316214929997864184773108137198005327732686436983902558311079119490991344689069225440314193620872677532339664845585277313967244495612753474944324222289055586608365896873522978758151368147876169652540385997656933809980160786336000226710304963645056819691621628874549236921842017383325371947298960302018694466079530266294510340967006782583221648635799658558985440825375769314355765201284607586496653496998746224673189999425736309469355192070468822546896906005804486029288635495016974817197894199511777654801807256838709954766955091759297228012077435570939036518334050819457127582602954906323777406012300680681615719931885411992116491837744089897018052744188720694577278695031671705501131652893660458125601001169332349237711772093367449459356611786011331392032768434596533389182811648802154216086283290124800155360764547492550076457454830577074546194802821301986336827149845960272926849980361142644531944422528477114810923764981142977026101278349038801927978395484608449671349953176400270671826836062960859858465757122390059856175665442008581717501248372737214774080795922729247235078064967926499453260171811436017758030707433240157222651019612508758013982832990302067403164200295279357711516515172158957528568681219208429782063167139073466550286349105461748631406407746315998446980147455674447190607354875790373706439655326090688989563786671241972189047591951994228105885264249818511827907388289354414584870069690272199569905269724695277437060737436520790172436194987065382707643275871789623948581422638251148507008779154280832038749360192082710358754877292941634997260789866418986765116489659983673509857543175332844396028509496714014282563777036530136219391360058582583250332929367387494360654630518683652722960726471901144887938219849411245448554324346559768005196115042652017947849438469243725105986509369524547669966696365410505835329122808150035648970425291903721452177016657044795467089340991518506082591344327224012336563752174030730386355657259665059567953558501239673553458743960275294565267284635825446673506909291549075226745164335015020924921350078893890708985499679034710100495482950541687945635282622341600121636276808672622673459649833606301791643397830994604264828348632417544944730154905148429188658304324051445677339328336027455042709703526468020602498941340723642745513330554624543632785294530241396444361527929798838177252639453555713474743757197445817970728595023463108936840468529015887377001821837008302495642250194175968792107841743217280798716435065840861816920788310449889277344795321635486658221606021944345683750593000377401925724445208332129509408203521451696322248431563871742181538354012250673832420857714265542177251148642061004952101443330552807350473435075835558246251431504972549675424841467588263023042643039472357917668799898589790158696831244879183975453564667151956514617063377333159721045519377463481313484915605978988169314931468675471041875159279142679610276854771449372067859439090100335915060674080170708449551081759768256885073387971231637887264466332218756931160468298039876967007539221796861385773550531002460586711111225275225021778941007938317436127164480298104185680084758460414432549006380096920227847988462791394917581110969121470232348919086489686716558381889058179426027215547120044521682979253174605749972709972092393537393779114701355867255036263016929295670699930051726434620715207056141348733890714238832235000921862122419951625362042945129159869262787951834119702710663128598642793545535547236304198428168316790554644095682356045085607212789457404437398491387838340483317783242719686722401154025746497981222287622388287452655368178534287871295446747396997369114494779008571263166792686030987302676113999308971655724385377816040669831413762734876524580511612393452628861765271210476214788078616326736999600569278303312658946971994889577271000887621882963559061605219600763932183182134119718881602535038856983050446908729227847903803663229821773818551284208335586615805789399972876307180135959507793980667746425411970995614015237232559896860136107002722991420462397220930281164565510149980704276175824659052548415745007366555127744106950382314558790395049699669311493762703503025748670582903316653879613640818851688314065570121836114030105017843701781756165172235257120320664573997372217545625152849479480334254788924705917412647670805620510046685747005458122238441085572795465141544774238436164836167605898088624409085013001956339366469207418938636412270463049811516465180543760028183878941889415417465532808986926824376939438455910734474761409851798821587185065395621169016219823908049259891344971428969502099477796584355503432611038410667711939265253542202668285303537031421996480461570154481508593482922457078700238597514541301925406071396658565501189850083207196760295893114578255159641665128683575791250260609655349230240630964711260454081085481694731830701884390290302310563870846610612066269396604477817852234035240116860687290115159978449610621255914441857465151794008006612507713965417728130701969957157847649312237619903701230368580785188629775691378572056805154521000459551982035533323104277120564657111392505106416976364395850916974486569304530019931412567641658117323464559274066788018080823694933490477347543988784042956801635715648402693982609137056389602448982062363619969201534816403569331038753096003463999103694159560285099241223237550612458684476214525224150334246891867320713349809832294208808526544378308366849124607577668915255844041635911505004500022694362825599175749382071508565028030707695219020145122179929998890079336680546030651122150279269800519989582045395859022598951122714624868167361564957304857312572400040737683265269305076830412536399446746970501744790642539258495332113730321386243738698619689153351909593361688888836921378579391002557180848693282202573640522106747554077668351417301350350246075241249742909089901198325652204894345564981396023492519931733574032084284300031601779035045191647210084128689488758298458397527038282093971435076217098274779378246398901360445962692152779607240180391285865162015225584163357225689459808019311417756484845984638512708559516718552570617532638632934079048647309153782823911306838927959506609776335447788288438665678761267363844208730944864542856188115288620995102488185749792277467058894711039525435140849861520432391507293424654187805200196535961377632924469086097448519204400654459905150769937377989436524977340303772305100337644096838323658717290032240480904649956841407082006446664652747302287283847308263371853805716704895541720395884288603944994617725888281392524598409059659119518745581871004054474803977232246105136918911931582106467613485092885076078800335063155558334248761466293634944499871386915415212562944532727566686984311274161832723932425491727073352883824242676555325839172644440321314360598816713385043989120873748253716417125076790235549915546339328995412712748669549362103330458989271349780920649930738555671073894240963179849989337039819978343099913365933057068357618066161223204378232797467029228868437451408116588871678205226249590708117461951043137610658570431605887378076964496519996936484356402944628762763761432290896712108917540527662221310412028555286824863390023070030798269710392854285277415198297993949268092498251313464214578495768687188897210594932688142586679131522727690729486653955884381954875912634719462328127302155948286267945658575266220985735188677117978847759028290706474015725587600812462688662010894179385192890605831107040032167841225706014231430020917145322018598709323422646231463412727657495248425886636581619741630810796099298326827496815168704985133743821736219913016104775758292209131224176455071822366796232780977289639228228708764924386284357016607396019430940845712687169592149587216518186187398415670940163450172250911232343683413962212281484210243261538139779303395135010476339754684775533127246754798192241732480036536563830377512700641983137416038673200460694438218417426664792215595493410760372967027293515332924630481222226971195850379070235894429888899645688767624472505192420822176287943479991819722857924532311834760136023053758754590759724217302744794722291872961314699175652814481303049443518589407798159371336682079497200962190993186192537662339164155568464289428583755155070123636253046391085537112500600295671861110215360945432710080399715617104573260296818764445480848094731830591153341870967716455873781426500559864027835841498085190333635636866055800733707130939462082643101339038607086551149798608152197248438926086636522886438920351465043658232209484680710643027288311425981334088662984255320589579335542166661887714835548677065982642318689047582374797566080386671726272210279768896437220497121337109989790854877766556514754295704633118951332765405119133556546936305656405233576974949203358680740597578256254196282463903411749795371550909739047453649125823619673572973558155453371700370085133513788296301883619583446534319738602233309043766244695617012995655972687677808146810409384361800714631278197147466507221895043351386801969978788154915109508959611268684763915007506568106093131954184469261320612059746988496336279901122153514151258781402935331966449424224332882900630411864146451581537250401938383867800923777511533817003726074549442707702770238410040490444737084994656487673208694650058085873847806320241522091804967331064396809143551623637546510985170660814189114011538290141056637262620747459930663852648032135427739714145658187081346721021315844620523566334619648004160369753020692195243107350486686881453936333099269479256708720376655002049432652891062703550002118663140992445898456230980728961655881863127256686079015495565322378017744442322901427374869962322933214497160501116305721369178215338960280817505031600497950667801884575246612582575149277025681557044573647785696653471138763386759582918265384656461471643132441155866331174323775157217044265067219506099194247212961483238237242998431295662232529128645156936034943077627491261173606524039132044561945042264805448829150351573592845294071663710349372610235262608068586899608752521588619942352708287652852572753492343663623632477712164918824254377151189850261287225552156052793539386696785776603238031098944332830063906896018333306965860986551703149011339904629327742729772976136885474680739432779548574832378192184209054722567894130242499765669918954876128253741945219046048790355690810183100139489380952754739433967160878074382875357809326228108877657644605548802261931462822694937058181462290645706541293565671297096421714569102812070120643091947610593013029860386513013665700867497451078310331223316715264192868271844878797735664272102893092453692082351313090478614426617089037259304486690263426375526410722525366131558866396359016278659708531286995521489422059804460411244982430461260793188757225021598851139163945499839394519468572119224777264690479677141850841049287008887857341685891420100226139056759883458525543013862606473419347433246480057511127750750280242734836727597875358391870081938513070844798279689740057831476318060674066919822684351476931800397311430715035154778022727606699428260208924609475780037690688790723829335483952124824989876664972353911189084857280077390533759157332256657367507867795895411260356427934592990558694353227982426611738031757662492552672524544297435986895042770110691029125283171382637189808231250058554265729746406669052145133609720296953345064372420058271069450747856372183357904847294105506887755801431067454571785815395122702123150644141778838762939443832357814384568493489834203083870778481565862270294675049127606181857930762858596890348384358220166305429061267264798910905680934349775404696762033386650259161495067610750708029367894624114835329711056628474447193366694057910841408010842049958119355678035243099330049198751119165241383334331850655416141636955236475195278636731515570542070308945458392083704029327992043828065952040095179758103968286264607319552831125538628199221244018529137214290838813657104588836467412341101557619056661684884684037690317687860003031644515036715667669256377782393442007645820680975223718203821873256847486038172996782235445084594454099804410541207534114598397680882197261390836317740697521630001197688752780949059872001063684951628556389766730598047675426298777639266148422339223947392117251687208136868532461336332263275326514009021889810553012776313644653908168907333494096755911686962253811921094978456008939634969903980409981851563662928718037156368837535704325847906344069180200616035298511417704823915561798469135805395434845544698934501701142886596454118962442056913927133615132822730974438507080272403096261212025573379323885436026955327093063374178181400643414914383939156583389460038986840531287033734212635047383828911558961539025423122422236290478865739619690532554952963395767063853013737387715887515650622915681639893183322827251450580906292458095220028083689163122465639110931479948016464908070647645621471411237556118730552179549549677372415928049868507546235472555108973449703220327903596362667350307883050314381483431741523665104153530463050208556617740597430370604443374486628357114818931566791762857545992362014108861499957214655840485131845113189502392423601402011176495183213809434784750654972719897774633081832230925832138678566328147943351144044631050699323632420232221570851764539952819778909361404757871307624715750061529402945101653021911460008202994217809236820272707363319779510764519227504215789920285368718602882286110710280213643259580045800642411836126369715520850296251364684573206910444488501286546835255048395525343614910677896235465992093778590157615716835964318229868168922199435341009359498647530723185209238425346491656936648171534686621722939665440710651067952700008395539156734907204901156239824562412133245181236058929263378490579572400781318384892539582983318657787173835608998658426730367225049141036389107455737257572667009581670312623451043873741497118151369179510075735586793964592371842270083567651485848299717715737875228830093180701207722760316190560097483846502431510687813966574918350661464398519081891325322581220963545427862599784507692343148912968755213247360141934660588297408006625985795775380589326227937602636710123372656380576969677384956259406197250265864762908967792964358599330371337229473836827616807830883814491243678936566423247657812093268164227731955821448913968534427500529443730012764079602137245386746522928658241045942741410886192496929881476506622683666642333974311285558632302745557707603826414060099290508514202621549684041406360978227886611958560736944191605008159626555031294905881903462936497432076274386793652839623190625361126381642955073068412109267228848793083899888487087595276132149523183931827655256326512829572678596425354333891922998403966420153490811455473986994767245069550279467966441259090674669398316591071337341009754541494633968189121537198136198823870675432996031443992812961870495595457858799589144087187365984351125664638021657668284449354495531449985800666168583329444469982587280023545579875370014578309531827854192654955960247038419721166974733917997331197541445821795985594525744569806070630429132188627788821776994898798961090309437357423224000455329566943777379536315466118758544252098421941587998027862962667228571616454950898768926902839088598592952743042390760425778113739516641342465414573744985866133497353648981591714432961168079001194236287595608549413613864044385789709803476897407817061417101692448841865588808003804136108632724262388041845384589741945243351447843363405677091254212450375180645281145016839788307308111473912644566107866068582871545125936073302162608272770743455442735020645641747887133303262614758512263907987872824777870270330226186720480306989881714797700000540251772558706271045235176258096695336985624871383705865258978547330668110429215561798351159018849229680217854343476146593478428569681514623283349633053573949680793043249410299636053781788016049361358075604086152016536613794612627413162914248966098192783401845051877143906223330599607232229763276192866937392889079280602780702187937260900910385074706605974262985164174879089895787991997119823650320095949089023431875262981329526977372780885827997913818221384651928249475980717636032085103490433812280083088814320149875731367495010222210046487941955159646783684771768730014697474072667133270071596738242815637430814798030903105706589442618128305436779681319318190675019790516225352082734482462778541108376192451157734493507153476973722094908055200327099785604868416019300113585483743266948957612173692528979234832061171326279278728188022826390453073911099834271642912497041207844996153785521735483709082601129640332149090488549998186493650361855271036713634100949780379536797080322111199554798385752224029881527981071857935364140944496590717203722006482136686888289226003716815128413590271519195095366352880448368358828669870646135203846348323827484592949891405612156147540706797478881565198785441939858391599460659910986576068741154012113115761974532551337204815737704691670927388794561889973737152792805331574072892028565753179532358270987651799990908105227754092032015260747832019237493886349693431600692242760686918834648374770370478750588200442486582911156520312540335000202765354993325029279417156562941399572445981491390380212095115066118127338602356299356814575150154988825494755041328731286017173634128865594902125442266382953926659280079712219136045242253764583556212693242794091763397510407583685390242095333115788926287458072607628953541514137344832970983614203503817162219237771592486578687259542590739691165399770511063785438788697057091039146652292249426686746026735579573525244057369403531704303554813538371176137966836121819231681186257141704679641535686911656916103610729168091210090941846748247388874216710292891885494110286351144533490422485363031900807381268411371647923785021223221332999868248751173801524604827992853419119738774868214084506435470722942940537028151371771210269192590664346411771022645128680885749727496425573291132214389009058439086400509716034017257000977903498458246463325323122480755461389801875193058081238021798646483935410481344391581440816834321289133775354577777973318095822176759624524188804556559326021801663751496401631343816047830637334242371986700250029372361249998269687168234135514913154664103838285820663162724248379079234735426071026497228268021935852584408194709981280346044585274567412179733835957190498974359575590008205788190025444598918540104463997867455318256144195088987154051287579624372209182084404308614663037210017206082048433995909097610032330363491752209598334410566068139857092224908442551366167227354367209328227126075550314681792785426131056587812441212227821257597700672768377811055947818512832981314745712464851978391216731865360445041869820415100264345309834133149048081195367921164496925859971404235794211097514074684435328295227056646957587084224935314841053075576396017571415576838704711977327563116999567065132673917698890138459936694650336261690336246555401093010023540593739454570016003336699512260773484187987798091137800711452573366250929328555565353929501711480541455913417487989777790628556628859960369665702739441639396485754012467693446517348185764121685940400523536802753546615794396784377897810161862072850203354575713866176323054773722650128684153221091206070187474914095098829515471546590615283008604130282373359642745779778720181140178728585486799416956802195253132205396659172624967735902946083310087888838864325104898166803666356482382364671147991202722197636611201731442601778835904099446710953288401518518467120051701809780510303228684884317526601273433421644800771356467125306298570621285446064448721595558241129656655632934874875461307812600248148054087174348475933507878469482467487027730603913148917722200601349129669337087171430534319999010524978127425658360245518043424396465009040789711767797478933002549048190065863474267472969967613550632306829553110741598590558918825649588737401446416155109779728121190821973651605312722648966867356860865071333086924109022170963270312476155212687835883476314600607937439996176844582326024276433482949609596987905756730883353365041783645001861114355692915079115790609210866944609649609139134289118571839338500058501706934905640497764634748292528747806107527372209539881190279496311437112913235774061240732511935717024089685889875300153962886867365812390211290711996416386244398437204587041748080522338116173885958206059602613408886699178639367794423170475922522711259554119977656142929743039371455536971069112738310365337972016939626370006402585815060569274269409959655295995819420374649875804432986575493532483997434622683122167287431982249802929619597907057217984835540739631505052926495804655617334604876216571466914980985120857012963638503162853360049680153010559697575631593448118490749835546171107067743428920630088852926410063635248967487962213245224485980883419311403589021942927945481133790308770510206255482219762303469126460712566989091211971022471589943512618711237648421553285080406066131921031263889585663251366706749618704086269668906505179780113200135667880991423192713508263863759515521558827014043168826818177551476566371520330169674399162750726381485353364334555907156485457057206416622139002092063600005707899159221150326496677852437263902997139941258540580115337464444093399106401687663521805089990961213403144230472883837654238632468034184203896540933922278625384578480555414034750571916965980970990180275900411300948988815661892007398544244424348817268081062374964865955763545060252337666481630497022280078436509980594993521895508222812034333816904306840921186989145759199630730119172000243436937680625000037077517605801436094847422641563863772145054051388914282921565763782029226959774670857251809549171679315226336434814000697424429365446493659890772187296888271496396234696421544355231694102321965253234437047932149524225294854421539268800484235134920517443378583646378040763058705307966791289548908549880192611142873121421216960933132508802240850386438085940939776942238047475496957565944529562528853440033074772307629108339749508499147033353079895810227061252827702694235620579144261276825801480925038924244296844032771467806054692234997997450830551176409206515153798820147116040308058171749011981941443745489122102172414030136474302623355558597147869276707576244526010231813373082787555780917754777557170637594513199272789815094075648773782729191699971974326191282643790229951715638707616122915833015213271504278632519052360677016248018817432898734589151241929435777145832654269064626628879558104732440526131358037903279669383329743346352622728313549012917615365880103993731236740189810390600037698291155197634994589174795342266061144024273187268834357331682382937032475011656927601975654771440195949605210250553410210631084420172863431610374307367849095233833933594753738454756194841075317044093917388612684572916806609061822234829938839150204059627880870174720742169476247498934323862906361531879688417357720493500259855370183361930595947452443139510692456251654807501900790422210704062252541827129534589849310836382046228617833320165232594745984176912490493804572743631159945587574942641122043492013331942047627378220636811517876328620540618369871704752931971847914935168050294954233576304893699630807464509419099108535091469656894954680049594403332356893882161089787027139196335696289032648366881588337781223088928180102877926427407742890144425379811091901150549363231667885972542400414230078129804968598333229983865362531174897431850697021412649643858098369663092400008060552459056179185715853188391728646239246902905322264643584606817630861047280705540108992000779475557777112884853940523323872155778766084377137137153024390654166013246905670853306033516462955041925506859356070966139567559832509709151080612029663235011024237143390990131276443880840379907708862083482484340817488804358481195064940718593037405606254909309940511323633309150546909322202817320771536139062519889091485053570167605330978420300256288948340752864623599310903364374038983031670688230108481584968404572387952431976713659336933031664795566572579581204264883206821940800052374723785700391933694709604581233234168904169971029770515484860590584378330508427548088229558293090320518515864817146478481585114139958806266860029597568225483646874046570888199116682555257403044989549512317044811434601832631155364926554065243826670213878714828293553528057499135032661219763263824936716167003654344841483480579345113534609529722021954016895379026124324909675717513205430237510463788937724085667132337730105215806216031516225043893065314609814295179126636485763934824919605193343345210155747236522445562105888416293749422190514839249813462647766144575280115597148964864510588699990265338645927007781245426343339862340610021484066137812179102100136125444328879098330468252243248979266557505783380581965302897704230117698876435275602655948868551122179140076722923826699439992125279355376981919537493574303667332959177421319777814406457061631751892424811777960541284723837007657030438672382706745192667940303504770501984424431839768239947474894439639320028033255425569548244884746329823649298404823313503244703110217839436101389713173185931265188979783221619687122241807687153446594154038116910686118630442096288682837272353411610315506109930471290535401393527723567776303354273698125270405370413519831711211110136062769299240383031410735530613849700846171989722407263559014364061271140241970577648670128171275403303689533410701508337179206132217883192079891732713525272192427557416063088077950035886372853654215903917468283679110574539720763620778165631280019847032912564960474032610305746527051175604666428428905490459974226816550364545222531751962414027526179957868283938229617812037563937832297329135735131252639986254268653748770298382497667068155126167244171683136457142621019454714001024607122195876226284568510832635679462281833321340060899903588929703589103869609740407217266919802658383384646486599058480283716058945178007606756049156240862647762388574650253675093369946953946913706027403131476297893572922312917796435799794153410400277792659292449092825142015292679642906418416787503796002557952359414612439688303023973333915626762866430898895652528451258933170673794426194619836065743432460534458368415283264080504601736668273403833206929215169491460826807067020415737791091129915641942864111541907373316582461810373545440338957268756886808264090194592647444410064659077708944789388575847299757128692243991578634675775593401479121579486511033239090531131558664015047210743579378440779760219203933194342459798163681642977363972660263767764504156898742209414861935861943253326707971001135980245545470532550644636473201113622955584395911697756400427246313022122078632535371643854191917182789464308367054633135280181179199691855173472448121404581508295681289048212722319287233844588903714303815805284681999399662768560445989608376746233362141014864987929983209270372074273337827792367586849273815282420957423386828271991287023404742173063540006239850707375936779633615473001610092903626281798409464837931956807219557803065768696894291682925432161945242942334286612506067995844238086385785131995344398193349960450039788670490767103469601019300620752949227855664417646183613805410676340789347069330349794646792432017876530749117175773297391992299230289063307007503692319114701996356639959593416794325655630258642761346964321342198280795522143339730256182519895899042245808859387590104334953791954806911466702677724239211289832863884553720481527723600709543375619873266836210453794777438078642478346755452886583851437288700086018883721180094156124971358482950363816982899977226785389887985080449931773446466534994935397830689042561472640178634217463466651084261738377026224997544579173753287820201844427318725759377566506128776278591365074204471250856579632043602272650935685698954967641331946231254772256397983018231148813078452605372917318972567478933009804021394531007571771886178687240714474936641725481674584088989228095909295767219417578033770132208864175724645718754412238236665909609856192290787727974185831744617790410603383367547759508364054224964620670532451242846745295977897765162285516932025710444372103293864490265510408713598425448959426737516104936827285186008644609172397026311601229373118096145824496026837429739208264188180491476421089082578700296046330632599469092612812300823272166771082651249924088946187264935040657661063432921635576443837277115484071269726452076672463474700348384842708294088424918346043964835783956781504526554653988234339964924495548825440081335667612200126748092231258103227157736198574121714279851678735651109257930705586568612779353492550091770521401311542011566989988762234357093423063934666686014953220076437397436863342817505790762543484127750043126746128496756809371283565312666524616127466391563911637101824138302550017973277528800682657548048983642043538040433799197316003574285705274920885537360245878952481029910628357260425141618611675621681534671160417869892520314084759119324261443890771268803172367949218842007114538473420470612888265004847135915017190784564435693980212230697878511061916717352749085595083949283256378039743196452937743830435239186104981589556982289728659565115925959341157251344278029238091099673000064509393069149243193881546572796336546658688607349687414384403461159968343118196045921176359690662433179686787766931028666842481121953164116991775735920250078806927454706712764107270838715551749411365870750600041784627181528302386109948237793980117052629007282102877823999563547010802802942503548125064572273523337252753560283701644021317824344455329945881662550332827626346204577114109401146426920713196190166345915279433185217825109592075629094188717857413359785920549020761779436090534537405550635176872010015115412835892128072965079214208743335142781677991015455812480980401310981740230719756314480071721690297630580042188505308987112881902129864703432955127434660440269751942673644896878712189065021127917971778989038931050673891075995895116494854044749993045558592610937228886620840221667484406156444905322480177187419271066789932883815768276851484594846933045512757702953561645420069875342130344865693602580960718874738479972758113387907497179793787632669753277291561986682858702720761640582277068962303366977811377976199785640070369417685998972598422264919758515876036807177457650046721080124875025211780025412994448224582765707662965390417627513306770445462935061904121275898848360712336733612059437688003836546605728973602501296203255653119955193814984216202534334711587003209777397806869170931195195856216475467252654510373925012473775376020355699561225501757575632939812959158807420400729538127555332723843630507670734175077057773149640185147242120174670435248763210206919347548139888770205433557410203360922889786722673028439991090412029633604300270235330344453607493507016265962053189342902993333612906690520826208794137435912228369384535774050001077470658551108378913622848214580335066781912253475490094151098362379637420772945439500097270986453399352871961179031583657530498991082200452780406796359140723930647564152436211437658035937882218829183148015899527822737455481150353414130274525814152325664235487825593945284040281843902157696698991549702065575530483491584488325560982439157347539808896681103435678879140373390818547774409440323573696762162401467197582231609323453007615656467509059946209726045057826014225756805110617599595109677810582743109376251166627265363515478768334896675177533332262671409266552658886323369168577500537980474311925805228113078346988130190397166332145956652682547223839315753671345945342665439556719188499079634192886039264277801933083276412303833859467371428039876013071323946282987906919504730581589486350051277283493431999104162574854352673140258988553669788824723989420765038428575506242080552267599159024732546678997988384439109810107634917481278667295228118209887445447705017304855766204732368754369327614816895361031441836801173577109963228359187886105450805148358831640572405936901584905894003777967212174880133801206514938734156911839190556764224073822601396669106159971243571690900321641569485517694379165858877730574287949017525071940984050170154967519274732328751406346931075705521710797161523607438614255525060477656866234360177228934996321149901182534552967376276785363948910501295883715516164945761622337812673503614985525209976495838669668206136215157136097362034066856396947487119512044075509352683365359804493497901127630053046102013370066008399865257280661154173824540028976355977669996232915395138359257315569305752021954794510537637197314036131032661337800989512071213290729987021020750131449984151854739742001479025307061476039570091515929200015013378074904641914367310725821452422406669886573402997644077479187216998842222405610329278526016969438600893975484236601803844944242676967359262848617569880245385355935128378316108110414506609764927117010849687872254183177591187656614940009227807696759308210891999112579412818845030821515592650177845851472502390384810249478407572764462612945005624824702040610636413161552187982590029687058116967017766296432083892108737529503447866023487356775116051208562018085582848368911428402734053897676793769379558836221747117704808499725552211190386815724126896054232485660393226630684768155016699147862642207915056026544224987474975123326054231391857957550288361909411529485560430358951682921077833510203368785906293235928822335564515139609805287178726463560877553782602918169346107929397860232228647338614759413151790754484097357852305081107651410709230183459440002085633565239763813233302167960262588525119317619351018737018703688844485563081598741587714296515051476431577677966724684879694489210238379878880333993439612625975571847363673014688000984985361000825320669613822673074723894822929237342860274676514977369214180786490968542562151850896766904392490235683131163743508651779943877040352755466685130596675733155315042483011941566541528494346696666318283965473175010972044166243371069803942886446019059012129173452068787505070353679706076680118335305241962747025936437828829729741166979097920835181958219221871842736797188478459201862911180956141733304550953495829950898084632131338538928166768985249193499963023907391176545070171859172110124156819494257970624041060126529607750646951155384571426966813682219469455819077250062199776743386296451565554638482115630596754423338012611367495056537626411249366516726272186437359886138707698925282696843781768344057258286964123184413766351395528168216294368469201161619040973928736245819189188754107908338834013289436887201044545886737751733712723495431512439785875299339328879362813252939854971781829850538734780302254264916251398940580550646595901298670859835624232698953976524644857369287857811917214212211016354243041038635171768337168454655390689756341345789909126379435986951162138391558686112656677379963656321963786325446592854125586861305509313482226541634282090186176994005676236554201348115013791565009446886088781556038715350573486783590358961363631501555134964646398068660845782272149307658574699917501169989670877430082307317235980395425701451475341755644620669081648438907640056983406055801728372649856541307788816483395578694163866764821354166819238523668742369933674270578093312068675025982268267593236417859847208063408526813151981857356927736837623601900014193022465985973364594499580366707689202604396811659281799922737461901513043716768523836685439761853750703309851255354380423288416213495110910355952489519501158246691088021567417789894809044561438430623169867409500601168708811225655445826208231368776435783768294276782010332930496777957910354048415733149452598336462645074506002145232395152024993799858527647469862544143308551805975250723279874430403017066887548995700095557630754671877443391129587933683462936285502172251142365887235776386391784560568341047342729815368166502480545606855157553652472896041346203604051722501618925384788448486581519522389982345113059459807157804782482748019944157593710731360034788366175051162983959570422656002077342068657218907547794992677853297905147812542595584292929700541908716936001605537770219574919768786852349997017476899818651732157624702859875497707035211982257278944332339539064327557430078898075901896329260472726374999752586397582738617288435713437405264122640028561160876510057579544968967177347535127991305505354545387905084551108335547063434707083716917203615823046291142177188569955393363667506736631783105350626061933493798116049276797109956873677546421711602137799680719822566800271210884931624874531001011473174616093508590611650274288878255713215089213926540684692599862850223123193675932223110016566460201957782003572932176068230188558675832492539662553214260824890330673610165684686344900051506557394803375337136614050491717587165237915223851147863755605416498838481566462297149579514859604871034558489327028117555555941759946080158630375562622967532484460379382865015876051957664612404501283962546614244390117951036139811740672257950659011491729175392718760747161192835180591528663167650759248877740142847654336353072200907098779986812633426319423877053046911498926532415232815156347050669549866626570951951886774195086297802688083032800810369066960771835373383811913016429642802485109344212465240544558298254664153831633373300400176724589924700516838083912090857797790224311518615291782856425538916753713987832436140570986863074022881907252643550293908810824428872106974393612414993757783170471992219364392980841300011808059167521140827981269993788712757367218856164458369728565087909100507813318666890148438503538108166564786050065571104229242941984728811535327732172125878853873667528424428952186539794350405834425847271005540303743778888680872858341552891823833585297766596872645942196924731102828410055433079388540632916813778082607779803975454398931818303010382762808374221841834427461616246467915125611462073388228097331990408845138765053290858212370295238500646950462797740466994411742304068772137996652908492433770706726697594382273785884676667525525035074653699700950782403321172191194956052635956737421951574187417498001978087297309694176989195756972064748327311721442383186250631429053569073727467047123941414904735505888269308943625105887152348859466097006025879903985970975656566172601973756661343255469897246305814335237158442496158882955642390601535259586472978395320097162114876553689566084313482060714948330179803370278379932978550188279442627278699880418130954435048909330205947222807540697653340941447341795128029154272457285658012298026343531521525594137152285230390480081980031897115021480493791359036583586794922536131537291214625899386772512120194700054577712240683646507008796433951632399209854412663405301435868894922066100082386505100654388264396586169992050282634960177191030517615422145829773683984545489791385292592867628930799191804680281385486837947279543815275795118794987322559958296057785537857793740813405920933713689274321213444612635948959248270778516273067567950637030984978481128587289981495561243263540791486508926888577709569936288918669883261095379025718043853778948575690611210747441285269746384959919697535756383841047273269664101347315819717802122947123335148153428676529474371991756007237672456862960150229166026966323523232581102962581810500089808300537270106850222086597591585747882584521879319243889161496934372207346206103784473063726482818609789769397465256825823197557242457404265291533726273699789197642737449510970862370203623246581557130885046036739625270532516502015510830699638943419547531973652731552396383499447461935837625130702017875789114365936046100892065915988156988605951973133568837041846333442458528973754083170076651475293832268609427538417829880798783171145637100540625015549025123393461798524779257022060053982987891389820125513857443097432780931361829994549273592714486509037185955724968217998306733307640064284268652913813250758502184304613122274586417416596862509081018696690332403145184494286126228202180075406536743096476365721622188783641046779002294826944482098269422726071553476323138202787786618397980464854726013978923676122961376237029305431078251397928649006354678229144468951472931920204945593152118262723920060178499731728017151155191962240854690362549433644207523170491847020657587836111908433074802745037723584301468601892626496760621319162003645215515040436951077018394542238359598724000917621946500935251176379646228727883782229774795485581486465006785037806337714165475075449190537507861565926179125795016645971351063411247856244822292576364261122010056641140334584013960576119102354799589050527663799163244765994487296818451100823809584392038284833683992564692670794982267924499098237120452889669717793374720441734868742203031630256728579586697659377838010019006919219297561814401020923906651080113277893866607026673057025733553866284328290616570358762605255185940319928441314658840753397172314480016916193874424671759527854273083196274588718132701974440809432456326724548702863027945192898871844350206076835564066195350113612813227846779137030431747796035323370243952870388159674876964371489416221227636922636909527818438734951256553587954657940667440173829780146818806887943212754652532869366011918606468361698592826832205624670751993467261171106762521359828050668171300536527238450824281976330762304351825130346069616018974231514351464985044092744226199575114884354781206114878560473518481030787145324997784515396799653719710277758456429082617642381049434632379144762084748722508662639137518837621481787550423158783395220576512056100056534342820617556234128552367001553240659365220690907862323599513471421560071882968841865560418386150433904668822913609815834058815945047306632166230083517410406075274485547294647494885886318492291156865734294169934009974517248145764492541241004136780622409926674192998753312861467915269124289273681846326815384142524277565036280922954342699449866184030316067347052109395062300212731393845684947172584622607410288023891155253539950142126915811808717340020517651998882594664485873483753420243554489747332926846939022635386379549210145916779400116023345959235613158956289541428937529472758417083203125062024711084734260953694793246266209273353391915509629730967129704466816278393524115466483697649400527932973348235513220178773748868800040281785452193654567536842310724479352712189473471830376106712551892698185032431697337152153448467478565111962349585518758275506823449550917631181717987245521311427519251219290252329686881696547715908925368441825106688626170035862540820699988292434160001849962802722821887529716058930645247919094271707875361171315418975212903969471160002495751249145288943104124667531853698244264428556084580606791550554325156739698935696713836672694273799575139556510603877900904344427928895767288435836951979606932855927220727370846721971414857544225506914670408461432012096301260176378302772291741061856459148819727617185070380182153342894277082416287937825344517221558214858357467844768330664910951528890858357631787439372284708991253634860175962034017663117574399088221709023047235510072821051185964442403216117983113698940784185417691289733538628927044506059701625293813047713251864720658844631294515676233033024477793019803109907675385585495741582566747271823257093427769165878851660231202822290014868840882359544312639141088852940603810549348908806242444971130254096968059481228544638849365910178023948459480630110203360447621535537756245617898104342729006824706784487612436776351692446276807843848897882851015962890805904658965282819775987116052089470137220737600861588246661545461240738613671507305201211316522539821241124771267054181811056860753056130930106822589381252352900401913913523422786603404410145769501122133937449776265233776796272629473242937146636687324543254171337082877797889257279383286805408879459169427410856242018129717158122016151314312910042439753760390200682307150715850291085496001764030487108516315090845879383213146604443863708373529030390664135808594766395742692723287195359337006912542557840452298438684398319389442897585139256852763733813785266081489162175376944108067180357972470979619188177785441077460373842554822801671404524025977359081876035339580925091049108218343872587369319934488990622819721849963134259760266718163794626477999357296033874641561124748983294624565863913405238856458485173967926151703455384066459178630122673682835945205720134198168978633990189553836667990502237326994985946903957663641313785573552218095075118552454082501484370103424286436944680031170614295122003340927138685578562260186568669322036254195786805920416342737347609253795448856482921151664936433673451681772446424528578745017397064792319126953048809234820764721754634356753301360411729919603672822087876534029102137731038080835559973107393672443688555008627059438920981594421209777891466447846823545836437551993380103717945071618497187128877477786730667406338835072410887876068552649135989366417185269213772178088667372154733568962106314830550213630576937188211394191485240609441430868445087177087344690244737415160186282578324965591464060803766569553545762179222435378997421428614102187326145852304772997127458859078343522192733392617450196377009753161543471720609457366802444563484801393091272542085409053844627152122245748464325261458658232235596340857276572533472027515728098139556284206757972120260607357037160022828325613302973537803690112064287629019345511312778540352878377987139315415130002789174743667440940649370130925891850678181121357450620034622597658538856462943200863803742571826365037274778263154405232601488015715819347049920805348728134175837201800613158709279746327849227623502673613819433942117505648212814712748055018971120802764644947734087538977990940862823963255094468938726617005055884027043487162870640963153544769656734717421121256529619638110474371797507373929229383103791925391478873824043231010803264627459212666459789877327156218539660550743495287120895401742005918285116825265634115391347274489094174491036423054292556602729824403462001378578935699668999042094349632881170754831516876967014200949007552715813715550113311546856656702460758768810800028275126629274832332207041159364652065500427992582534768710757354723237461313257642351088151088468742823100578229299250969367247873201620087492199801784729203828328837282212958903234832606789058543531438608441434640939530226391737580194175901241854603359654282217047247678615516987162680090470855188973384505875995858632602789341599935570202087863206971189193990609091494373649390983182791341399329709127056248035739468257900721990846156284741653997755761268071025887645011029722408828739750270947847091105462057703302315726978246441397771118784761320358347063792086564269604137285832821089193780574332683672218041139072006040127340098995667081077913935999318910752558082263250484108171028641629381218922455926802852250950162332641580528151616795462833616743646592153365817935381431698366043158438131199090225672865008122046282540210884476669806271921413508421594437239967017911720155169789095194016093219234476903934868196196572509313230139606749806936636360680609281043862082520647639243545900539072325291612794194815318693384712338921578183065800867882818396113603524340258171813576150646212180980202089952071499764941726694690281705209880388203842945290484736471361841435923839363687564607793407890669147417556530405083512868048077878844904208324790166594923387339792333936612145492550815321105406525900353850195561885540062588877276702650274516240509443555946994473112470817546438662448917615105743230630365132111229385634658170797033788737877316477222588936777697846709120824624922499876765474734734384262027409120671407116613392516985454602478094882993866592401802701764987835147245137878024724264275834635397493220951001118452304651377905703272928429972652636708185950108286664120774778278882615190872157125417881493834647752006398564043342352766749410307429165260384445887035201610329735796134902464476220530164220358595869525779537793616356201880713417933457199208337641447822689658403550694820199429669346058711120276601660404968073655621970800380925024289083388390966562590192244906242361834717754008754400238762580474612160692187571185514305612336855049295753351954397111685000045501576998887280690678721633513915735959324099755757871375922691410895813644780988197739253879110583693931903587677331718112720897991479012306387242136750370682227435783425159770510660810717194592875128596208727729732664457609493593906278820181463211691183593431518637962638055629668687937396346437094737251119390127717496030416213582373689877286055568944285209010318904055867664579801075056243948238214581736493758899643554965146889251902357318687413645420893175429257315364561447630065819951199805154139896201986650427505652465883416702122807236997385374155641958407156516769491427850346970579006626917562553246001278803463187603989662166310821772774835358637825137678671332141896328403325851880347585851256352708022342345756672265619101369862620733822810385528372864245571475672163320801084346778021241628912591233658406170461805385620177755692528249105469294890217052501318533537703125925971798037071191784481398400904672176534077387524593079262425181147611838621980619907342129337757025581395618044723123163267220703597394101340731357418333805589762998332447322176353255680911326266100481294899275854666720785857848990433662110128945564757538086893847458426554362970240665740243542883904546487915058902218186984926354724798258258486664057326240101804941754960831451507092589494837453279604285583295893603025398520819108092000001839575069346663681149964692700558291673348707575746099984637912401637262261819430811859220489858574943936367742629994372331746259785447376561105476224018642758306255245166082406697491075254764010346058147916427599040972552299090009079383548520883751733497686092180898266967733731409723984335583420583389144415355484070044355778841736926586993841309181673015744406844246016693309923060699743583521269742517844755394505473776037985847146794723324369530573916713296706076389456662882249642732858097379773117619640942468221553666413862871443175618144289362371409164063402966325452531152153841593765959784017748359651969989274260884458991837554939618258602925867777064946869879291965363500962194622406335058937380464671008257740733284961436561997503701062401371006634386194882956319818554933176997675278873760433333171787599951104743406312754688440102124865625163836416756807941071860761451751431133452540747276563049695530535675262941879397418729482272888860353131415916747813272058573258874687283116477147271079762804203916696358075171241658018818607064425858767236612204102760379307982132561800912291732203536351235648688902124958804673385065999204291698235489888284970728009284813023499386537446548136435325086870775641699945974407144951598747904948033290520073234770490038561374407079487179363659050619689308415836398324906410529551046469839052589756558498758491656628174393457983652176466557594728912445685263082086255328759269470958937884096866685484316129081374860423954696400293018625633030905063579414463327242720229591226674908929403465038290778156870008028348727883843536230677441215935731000907022484309739306029224518870594140363729235131074723619048014421654631387200339413094795404084243952022069834310025926648157687029389683111795843849621885982139483226792708146212599202662942507490048217158530860892008030119205986248900264770743845144233200384619999755026679367365213982077002155399008711882339081174403652143594148131720912237437513118091103525177324071694682506974058794205646747737081423210776950011656614408585830305555501618179326345505087640550008315711307954837671745624125720037234272572386111718386399913059325702440154877336499583111723084885930184192388582253060726459642847208486958358099927733115690421419286014385269471395966188647377640471871144991712906678604768727512977430139232530589470248060503744284962135731632391415166870211338691404389661848892031777658321845045124152883785137807204754630089187069456235369190749010003883072177970154601367868434166773426932201200118298604712100221172027533487824618913814823954693633987545394568263005249173598418212489009301187628745928520785074903334880610311066684851059683691081031158676248316852064674293051828949459228833598480076762926126636274238299626354507507192745303824408373248135698438930308598076278206788328946977260875379104799785364369340786617236828782413457562262528731714148331248222466137107651732087418720564951271188928365043018980169952399398231063311187812744490100258425660049293933095326117323721263930533189217201167374624369840553120433638722468234932249897760857246182754438143340566825492806846119174646627901490821452385231847530302302425287968247449984791112438403439456109712243919875448253032959738568519240659303335066127673736244850644523116053640669750310444078475412524126532432804340181684518165152254242928662476353303706892196295361620752201770834927566553445137455320065917585165299050760365025202688964625407394906078545243660505869350708393835716445033314951715930235840593584919339252887792193336913349121267338837370520226885897791249210141524935581419170189460025105189308838181555829532330467191758424616264920984376611092995208798691985854437845635597133659627725238665493256370929554989456241172373267236064699491837926592696340370205399103296734000962804417883132882376869337374685508721553428434226903512490757430275036550404022669972806080327318037516847114566365108797973539006487008419818360475716891593316892619288496094578109223854326969280192179155406144506046716642993373653703903030924939419967739363046013216080575294013933259854093992841813306040805693737895625515730386853699746478102495574802226793543378087526308184402342827402781839864384497776227107732953910524971362643418279928452494294859204094756795128416952014023304203484479738896113622683228951897256324797901703912158841631463936019148934484980401823105601921033856627501531790556921361043235074477785195078262600598143556118370185983860125064932230645707975943596485654618971114373832458171253926671506986155480733458570990921379847111586526257637569487711259268492641846998508086476840924240985823561643311356024164792904570077851859178032299188683833232783439072337010693284457312250724310140076379135181518753949309987170704137002426843048700238093136733035619115512090867794515251222313783683990981068026747414322306757124744509989067416794877494095119855740848887971067519769923779649426169015519371359449722968531474744466527281959907875441018229848932451998753142891184762455784224104832209491871352103474407852175361672435766934755409728407472511781312078866401144367072954344926264751429527602546291343909210837681581903752876212159577421423677979736923393048796313222728990756952519100189690080148603232132248451363852299124282451545092367554618707578018478835834241564155429177121930333552750592361052788905295198157411034303973236733084597134330634679477224058011404872900274432206097457450809292407910965782603868759035606351709987792239484486551267053901241515200270043171525731535640574014732725474204892881192445100939080353971724849397475499035547776291640319705926665653612894825396067436527280198753777273754408451422992364287549576215226331565317909274412018069524267103144813713342157373173838411005215446027868731182536675236942969802728211235067093993724176348154009837027291737988517482504929183740006166278995324062450088599774452751429798546825157127337469394061791964059664057623903390218888428967012653054031887058735811138841660957524969813287833919824348522722502302309856281316951947940303763823926118395978033392052623947273474241893264885570868192815964444937938943589017377266648430324564103878960136853855494760275603437299855450668476955308195003817255923550634724742752065318152371894948875031261506633622166113108970668051402881075298072736777116643908430577918165350491513299178286263624007880686905964358551729863230188864035127547496749763418777691583382346862830817235213074794333003469050473704375558511058084292673761207994061186413040976397821842455224543260844047168750777510029439178524693690895306948426135489109717436005882135475122050766759941117922534879529205592039971794028201330792346754308331985446531265012618417167894218029655433502804773443713495623429753693620938608133876451728089332477766647010534715963546320301277762514008054196943297651856213291993827035363671331442011685560085219194680695101520534893029209432670258397373443077913520537433145307701929765473058825601956658419455617644182659793271319710797113315281337321187730549853347069865051379975634284445746679032034210313716872314296855973148957283068920557303716024269062069852055827647383376633056031357890157405138271633007601474689978093087788882716441151347166559251927211014629673882164549907897113587232328142528464434389163248766375397884894562894378908063770364532096581658868765795478988619843242155722286187671863943234275694638116588429621362475064996894996705317256121840294391322366875706329428237206256810344895301553323128988542179458929782436399287171553410817708521065252721683415358488222342458801069473970384404757409920668546706081375293388136484554002547555367891755061434408191877679675567190102147254797151652893597600971713799995927798318485931690125632512624659765431593447682084123702599118386972331438108491419401986428117415208209188382293119467258194685880395175849155465179456799235551698346140577038897809301348981544032042356991813244048333533729950965904621315030673232066787294788364112177741936344285070121465541394565628700680866523164015941028276139186996472167398910975314979178806088256884461019373833106890714039421333590392664467110224284222174826332000676074038370675578502172891356531563338270772277180814368799363060230573462520801572116598200202938823315347359038588486051417514587416589196678407303848738155667434956015974901322983332398568487967540777783110613385617027275144529773738969776603881215771878573856307290934262085384328840948769401237055063770023172615732254173016862292364118610020079618929844524305062843183744792139865306951262722919187844009578584830417484101227458339800563633126134751815613065289221862299684080970387242847587692291997264686305923136731815980809101699458279259091437297699457456910840209274553507251283626806624947459219061765788691971149560693698177865165597968417644858532034982132413257492233959191421478840443354878411319231506124542260538902099064836514721084158758920334991765009517096611456137051513670372080239150913737158151041800890844382222829576140253772178241905814822470830331366519578228617701286362111665175737046378384382691073088354220251297423143327429118708951094728177167525202887328199748631587797627422768617739142063734728952902327149249896173161445031379985367596225590496936363302212601790863233196401729223601291604234484348208156951348725707396387964854040860938390124700055559778539795091325737938920270746717942150310170033818357792113115092339706558575034489230726651072369487877820258096850174405530048889449786200625287403271274886935145339248972785765467293600577366067299473215297353932812248224304315666942491217007512938272977577503937934664829978432366404255390249444991103976751744221188963140425275857727321761466547617297286450126068332511102755564531348999350051977231532716147786246333771693770511256453466018703102504072836721259853752196281049531724417737415997519315871520266419812031430473674298405886593831761013680993959656588036009065471534779548594352451195590020433847620379823431797755680547052348988491027041898615239047207683052605031753390803976067869414994551742027950128657003497628643286160406747692998606982534097892679269034039298924840869344489237644868878408625613829132041869594898755015266981591134803218922105812022951774665231614145940525122321415871863888033041638695647977681449948589664404172215941664248904341586924187377352221795132511580451472238645634282113121927023967756415460282087446187397975476085560498005356885688560949039326914828048894038038425277912779269825134294270019527903358016786214048073608993551396643477916251734181717951597573771870998157861091461131525604580456846085957028884744448177538469108656872260059801496304523014251937113115308551809730460821082938640624529770902250103161887810109219328316967792949081318380067173000292871114477786759628940802520451841015737906688554391334329407887565835962019109798427735524726766792372643188723641201461855769759354610389890158605233486581965415544625630825953227954467737834587154542766498450924883203218580323082124690922124709138600409195160753922110995943526293289109456213483570382935674373912097072548060857464427691567278955467566825365953674402114993612896266841394208444898211576159895227286647736347430348584041926468849661607496182357217663708464302337706809233410907816688085705187869932438461648753246178979761116959315144337784922282736814887982490299305501219287728686275296475078479534462517417330308315649012273219377829237612695987145932709715298898967380810169399300425204375490340423294364840132149073885565132305304444776503746067643068541405542812373468388425617890443854938607285546255652556089493748642909910359886018197622255215069687890224633160450861292671725273220606509567768533267508657712304919715686800566039974261754086618968117075795697394711813109249380594835491455034029861877537899584016877538790150600054729385959010972147314773609245083135891710584735759975597756189177035439049505767851221352872002050407774166279746466024231353906251060770170685972392334532331881924308531261661156145602863428885371578125652546249183640427524999056048329910498692058393804907687750788613692845276946591021461207624736275073476231423817573574972478818059191318226225567497189846535704116269566367899594442417433767852549915962490103216589241981148221611798272752078142870382505884609477026100587977137332511248600360278498542835201095584406606620075354536870373945437007971497064609652175147007598816211515848818742315253410269343369507274709743365415353457164253757413124647419855102126229099592243886446725945596765415257290627439881316634571891219414218028331418275910475614954606536115809159637883222451645121367950941418328760251227926946237176740019630489867846406812657850082947971819236670735654148572014476724074066415148330655476991432808818026984873282217005780919084569206464421195381814404009088566380196784731372134179762906114469502229296669186462448695623735316372323703489332468894682927954616110656575372634040379657628659876814084732624775510596892607025764513634275249396340853008013608764839672184183518832265172130870177216464216461183067857485119648512665965069077789470836269921268345666870403372964490700274306567678291547891294083662847417035246422553644569317584567573475882609112121146163662732805562825837278609627107806805432927271358982839296001189515718171032565454959707750296363027026725788218040084222613976632493377977539608232243632341936734089112096496922279891025517543893120614863503074302050710097248111743286299888982299577021651178174615080962430180926199944093606078644382964635020364060624040394397927516588268795711943853271964497766891199095965644073633264529282010080542562997123387569094524416315242634329427889162009067784245913618366285633283327748995203504795106334101755625373995951469519156691719977894468718294302028024108628915252003288866156808417012857446622581523341359661314631007434645548017609278073867257694694060290227567527714179029812199536224499312775722117491390754024912127032820253842658190966475541010386353499195245229969233314725434843870972802089260587824397210980733836275439918541629283179369578093869422835717741259300101711501494036203394241176186685391004097029785912543946754958414818289552683056562699357312427704759302821646523225460539255126903171288662303048109722324844111165294932477245339786650366038061727746453232504681155614160516442245774240986579702937528252822277417018574434340852123390130167655232709245155571623811172996054138522026787374495480029864371359464552126720525361315343564102397778186899845668313627570480816365236258588426905856469620879796487603532581674259371933508800834587569219352151108150769566209872406974445504317549912032304551094306112477936814285170724419733531367550899246542530623392368608033733933549455566690600141744109879133774695536472981134058211487961071986040491454849406904513404957599497784789076926890597143404603197389805201882803087756904077217703860815318991787321290190504185233853485586337285166624653724895030462554833299263987448492004120612615347948695753282776077125192757237583980988459339417727834295189326663384449894058495858820638552813426743007067574393352449721909058560130810259087574200693827757012856444687650401967897692494912327586127695353389316621745949848363201982642701962697757457401238673041997576661808580874225309907922945697272421484101536736972980185524259270932621504375707709285811702705666977802386553947612755751696278553610126624841827821536213807666511914939579562041813570304822426863791228836976267085848999711151315864464411490536379738116436242546300685055519326205863144779556588752872638343424689061046257191376004201563921309896022207580713705896024501360808442203973983117218680326110835523165577839621957431601255989679841581513091930865367943062753240263355866992227301592557223842901206031599679687160543891202625055775286292602009303614005142339587574169325187436779949547107058115105258125926616910725530787896009610380141629758217274794947498791497299043962335160390662189086994786941549577093151066121436090045345859933963060578440299171347980505469743982010513101813226495709430829365679932365100913817718343249265590182562215055686829839915185506921738584088502438214546630387589151026864351289155026304711180693606510314792251600500357194215204613418132934820856830666662362111587456360578619572129483361979434429781455490583956826752339201987385651691203134733470355381889896532980142850599049132548253305049291570170722371487880560344996116908599575406987093063010618170008980659625264643278959617952887185660571586407779044562194419530325020289837301459681092022004565815694919704427241777974530991059260342854796491388031649960913034865911445583699891670092322935769304024040720072276112376423061760345072957335851804550906790574168421215958034200091795552655885765358043745397973562861689029350213166180485486158271604613808394760682708124703169745318929839218543118340423803544410973698310657161066960931205416426878448120727723589534301271521215965100563367116250034707624057339629491316754100962073525573826473103261341357411996323936430857238009970635250962575126451147968775587770751326525158572775197940499392373400928501730598511263372735695387080886142833915343111232894581510754211522998999908905832358404354250717924727381192548852366969053566137866622185614039130976800573323090762247462704909940026326810288479222873692721928753514760170670434048328579273584710002327217491111878815672938821539604444923292255380922571701233585003385092192152109623981035486855749753557706314693593144839394018923339135709813731759985970049804645547831581254703359913350845870609510245337782420497778757314367267483710647914306971282277641109086863897156255075628734153970569164885301000000945402174435697017765807134697863129060198481336552965139692626343998430255225848099250195356932416325375410044036232790808473377266656267213039876683837232885077087576856368089576782967650113382183200050671710883951883003851889854628341921592557636794919260616272195595240137289907673879490394642583023279869212373759969701018992881736728494234618972135178660306104224905502380554949226382502849830550653692388735760364856695501589511558190354999528259464409070322050041943045964695451670822679670945277469523654159254772301571944659926248573381271887960113703907388030367733189698355556463701179495706486859184668042872987585483263679765531609879014212764594600523286008020699584458734373995386212812580691136098043980298920322316861020568527117525075834906136059341201859708178439700691808847374746702582997992535021730605887092863804625621044158917150046723140435162840996509663629108302859293317341971998389832338652329541724937763206254191086396759833071424918170996303953808428096513284765255870843224301196639078208689578118250998289312202448522417094895320466487185471249435793015372662050783732247191724041266983388508798247448389997733317580634730295921031231249179857055028606826554271099556952822914810444896061376148955491519020635968943230258760263936436281170562449688416122044291954698879345171859649170155527631892023381890628329532604183200627063177233175870224184622771269942384789982262102186410471179073172105900113604850152909089292739754167096892465967193571968410010734581590570752727374916170472405439715159444705031354968617692361110887519264271632006084439199815704671582355540263450954894744000814685483611524134968758219954592002454145566222774628359220020964337128106586411163079472737023980582486093713909701559735165544423023104231101833780208209132639606919262107653569971427014330584890575554040277301442527227444139416834465614530383482053947016142348765979245964363934830736527719158510487295489631256479448631938505247894204358145976787048773074284014261907309532865760595057693084071946561294867641682535664201280452920645824152197280926726501895071575373213230617340289505687190948568543861134778275442245439386526438282535813502025869925697112489790746240558299047372178633948874243992758532571522568641187497623551880269849531449894425498458228807871894264444730864039071998168619378327097005019023556951105707587653743222942372637865176787623998665220007482614622300325894006485862584274160509983920723540361846580063861968848182777596861428695031964985759266589761691743556862934718835564104548980544719710573449206296541990165994252659818149680664727647151135695735560143632708641284829347828539866365694445513348431316844190494583574958570406083936802944506169978605260509055429538990333418707510064242245504361218800283279823686605457452320819770541519345454958749755297553770250271391651405484229803104747699842869255802548654503767838991030560566767733069290233173699670710177214199189384651322091602445537730980348300512319187096929662374939366095352102350770196407982126248181256544922227858057654544419929695909814467571887135464762444552652759601052167938713894546636092815316187227660169312450257494770703670593279088687039022992476174955520238615465206443952789797584014623582575175988803886688315975407436840687288953055853798061937076191003776625276837241523715658423141106392918141948292779190432224202020130427053667061956055384918187418380466507043838236489547369183501431705635808439825189996050989699849965580806405632473169792623261861940761914247612201440396068095931377721941776614021542072855546839008871672861979338411214524319796018776924270368752561419726186688049562493020782922219577520025932106484296899371887380591683198622715155094527799217775403482422968269956129609218593272407335853811386353135856090364071043544367458849284913791432997723948959581623819170004595623606769208903140558450385284334022691608431544807163086953970601840749007715838480899552393358738984043646365004391393950424153029291710080406841304906700158992292656447871773604799118668288964265340509789665142828608150936826390388127443351986898643016618600729162945532327394797426606442301455319108662912936167905204426091170995251815014318260141553020772313199086017258345079848843148229800670980997867281962238969075474592133641857946046938670485936026441017753291912002911216015278820403212350279438837449335649262552535782531607528676154665353653792689824821995940401784394531130227136857720683079535587513443378867181943014293733081695704259056687571383906821420621502720555922843903257181789398588256440393077185086691680261671109833291863466415102829816017930912582062796482207596610063838852035927858281516664841120866956547854620792958812544878461412048850654212629897042258685121328514756745134163413737701613831115189920012152034153632626986092410305773688356523609869806345803603777736669094375535208744053097830327073764121616424562609439559779744085344592973532470094013952594794622778944659281758322147063506981812248625933207613428445411289846577275077746643154042748259944306478334764254619285837398070873253295625167993550138066544327001368890809261890440637782000495294388359823585709425536607925201508758670996986703730342128296116764786984140792637924854237582661295094759083568826418637830309752661933696224579313685934099137428995906300124878122490080679447515946605669901666382101164293749698476973862682289520747275064644876905280395751179020149017865962659068500980328893911171902268543090125204420543129435975532685975247068873450448345383535872561726999698410866025509003595442696321852170680823256962658235712482828020738729925009652277643022064615584896822825928957292266870794539323139338596797008078779833563110225837738130637351060732104170042191760716279049947432205493871637470128060211451780270434710497734653538031011218681398312215592248539839643203799754485730155410090157059663056777976002045919669607067060384306045843258995778109357831300754192439339354979482717240594062645912323186190602608449932816547012706361932475519207076851936340078813903433460680209036059426195990202404492213252137258618313496316857796919646863512239684333408115818271907342889048967243829900409538170089395559689800592645748320764297222361157001596984353846181467999186210036433251187924677346216206771515374312468111617608032740858763593219103285303326457789177828500926986701040560788189413228168563168648185702573512520301632204966028051992011537372965691327676602459115233745172556127689697199406993247822756980259809995814768725370622276374477263520663922499462369354630874629479939989768987821805937287597172837853986737979990848614915870279198530516202110403088592794405936138899904606329093761434182392250396891802489570158797879878227961455643494236488096807422103552267033146827378199621941315725737385923605531761302652420716401789549646300790326579199039809008249538663942640758004642469903797145247915552301909173201556775427247495077014249021732268943429595434351854700827580279778461310280751738711528397673602905330965661280410683729667110781007827817367775115983393491314995974409085420756451474893787819141292704553391530386503051226989144134351451379192394482566480639496164755416326350898891053710077964082621630557250295730884258545907241678983793703328777765133973988260114678729895037566281019308326490806221416597308166380459819376118213582019268462829159336099903387979926648756919764450008277680201887555471748653615854348684845452738806320524352447336115731477360902110527225036877549394464471326829787908620910110092281258696309020346320563389233453726530916733662287644615856727883502716380097186648368898886093024203084974675838186585932769218729424074482655958012233434393352659021957540406450217692174822596218344561523731000134290825673327106202385494788328438804846535074770898455347592552004078065975846309213046324227042810743130798283649479919365373234282053056575499471037943014877504264973469335677692876388669045262477725635583739573461738668636678221245497988980239129713053129657831393203541867091214215180995276122258085008086305382919548530566922273811678320850429110829025167017991726756549677122323223966747486984884891710960554697944044591720260895521980005040247537324297383975756703268548666662136417929749945133281749815060914007627562570472582770311735115719274598333719251573756388367624538426836651383078103381620090294966346783184375173479746361060178615986564817907237236070802850806812831699712112984937269548730597661090201676927269048058854204632307993223648789613942127450046605159689652940703993805107239509688853701112416193325395517301034632873150919051928766870199489458594755708203869718639600304660051609475843139213479296306190281301939376667920515031445307982260012550958191084059761897533937176642711011970198165727622881476831676873535489457984792596567923833623518372887271548302704508855866922673567181256543634621491347992343762802867973315888405619812952926796014412552545896987796955544581931603664203107554644350477302913680306610919824922008194420479716312775491961080012699569647180759836504082629818031573277186937817359450027587625221878923174176040822882014343229099149165750484368389178589744284216163144151081524875820398504263489467096479209922951754668205552476612366289220622967215278457200020488357452903216436583720927291810182333408316081617680614168438372103765837718111819455121870581410690166266276215978329383531232487780564677322790895471253556028222871098254454538927116448956983056115067776652234699868862896237128683095437409242995108437696525872848438201624474953054440107664555102339161877621876606729642449872478502746644160132830219854854701464763886031317430949949950806886428316441274345555796162523884568961839630174894286900732096430665780113012230505900249027989363917665417519185545405196612304407404468647329497675720110173703213755192650044728862028485832388935425495480299659367194135942205926282636044336691507084829829477808855167732578132520145912873698115990218981462167831386018011231698145568996805396270407854594407663237352462392967399805929149212344381307041198842636762100869669949312232051696231012432698872173535439585083916737682058483374682848406306223059342937228331445987730184256462210396192596459209282744213818596448014896128627492924592934439088881172019817911338029652204409435998153161595198681761371038031192018932593702204957025174382499714158829878963653369018448502757243396624891520693285970693691799790258566840054943541158324549218273268053660292647695858148161219957099537193647699575731014050469188573078880220445622950935342547921635229481350128324409677548231791803586922770178067988217709044316583252805576260023256702633417480818914622961052419563099985311295150943903609529830465241035621609731428642501282726435882784195142321217225903792033339257079965598295961730040654147763400479830971021504017802200602313658277877177735574530288083811973295253835644910885942808854996219316362459432321245073414669058573790449965502585168336613055846541017318433088325672306633655356809923224855218885935501378701766886518007247587320229786036227628602720203372488014295513366447479460908532210898085311237772774367381305371983354614384250689815144884022959825722266314049242652461822613611937730946563494067362360721899942373593426695582994510858259412585516115758613095915108762775204574244627245483733254534410849937323122157593048294550203294842401560459208476901230492517221412096636559874767166686782301148490624505633487341344139794486129956436473143085219195441035259663650128332587458030450904794510755574659807187362528847659277650988445301582167595386872613752017639914501442981835892652149713563428310530970087275064778255357903357187153325026263468214534100020786290174074874945024155347447293567763234180814360849503789621180614044474805742917601718563696646772286775836487106036570164033614925926784661784300347106813592568215728779628192795677149629189574360796897563657177981479338282325115220201989311161066298572456195620446714249369526986544366299486307496822458892563302798602342966695712120362521172596533042479708712542025628693898221414764393360400295695974432784118693166490313945417264176416115612039817550082452037065854552570519471729535885204406244257812324132229099640242070604514039583637804823948799965740088981688301041627784396232011590054943183570920653211377406793144236512155660079480342588634528392466296284216069052133747238291076010271594419191528692740160811104392195469415083275524160277781658278586005013175590514973827509207615298104865970299388205769191233006828600026823287962361737957771224503143423899553018961548965751088553049216856485095387363576524445478945369198380030418859178221901170008507187380690835950828718185735672854827510982727202086247285232897604529179310646425445757912608498916305596048857697026791592951372783431234965179375896871963334133264212807023721757752862932512578283690368646226337103702969367210942383127543767290179773404357201685867153029356626656559723766196451616240861736441190446012922664314954438676805705359742287017298256670552965419085486403173358331775300706377185615979548553040363200112683347690976222471437179347128897086893635398951212855215616520727912999622208414613454743321173102221558343217481880249572774587187673662967377090053094673349261673038841992719477780138235148987473103240138557973159633319568491023643688276451552281253902548523767830898334662272866666866922486581560218501183777756073660957497033248391919236192596015859511689063430635428008161961823167988030183499581083240973218027863135240790160701168970732838004287349469404954822897509407005156691078645108369698646699575404411137596500868973298777865374283364814775236593717955077261966664744988761739877043163103722722748222249986414569596915515428623565603875270320010475895751579489328405712662018054633473842127591861952347365765714609293849353719487875626651016786898250258168744123289321623030644747236270152077513128200678297826220004440815966925819583275623647086016098755771796787487844205520664647502249213612894782105983746502595573109414818842390798090255525368645557626291339462168389146973034712927937859694592439936980978975400416091702367658242159340884263424808218650845122763506986706997793722324309941459822557609226238801210932917946636198158597936784165823510172419927027754957651147361558579148911863809029850503974172038864295134785825271005715044563281376738006405932999996422717838580889397638899341653567498131098498103127619686044399408203347427442890069124318425098695978622617133642462017249653978568368975496797294147769990605348239824425314421235018696751624990406709016060454205006002587068070826553861180951811867031458075024703400184049843388092334915778623076377577185926639574067785361277514717799173645083582420162058344124092493533216757306508885275094302872893030528105511258420950966422270104804158084735680967861332356413695728707334508039911090635949161040702472586087727150782812838312766588268463818894779220313544224178518192954707458987439613092369004173334826804645615940340810842699819124937277143485714780871244414965095654504826070314377239729798960214361898186031360071670378981643761977193038393892284870469726243866047009900560811676096030219529729977224812145489211410761758487188209813585347250400801636172329729966719275375073958020179948676751279347943318515723834766858799828169762148737699345104360187432508037870515065072814086710874695790184380194084373335835758457008333592572190723789670441045772118589938017705996197664657886896396502618643334427262266623583719176438685556343754528693552473560052190764617762004524070981505683726174059383170661439330023164312611765912817618204030133104625183363960725803127208358569855632088146244983355418153318247213549374581920003886115133364397393800415381927694817862602260870702063190284186864373506856443201246293328700232834969603514290616876463398295929389962003803306253102201016283533538817624208455204366166245640380214473312918602237294542947842087156416283234812743008663878553323593195611993764341242872421784660312766139371111729858135495636924219074230279171209238395543101996067239874605729852671609597026742750991599945728563208367457489338775720194761083291654092295714191743333086080502911100826990070292856034880207688653485379901139185326147167999866750016511042722293014323521634819224589258317729373600904511082878166169980635258092604986968112241033306292750781439744058978453283896008425415508130961442688345145221697472714737261814999932161518305057057331254676140482646194578374110488908287499578786343849510390695764640452289291225576844570024909469325243076100587925050694232095056139052893346286586278895222608362082012820566415378862259523858357600306720164749189020747024191462294614055231663078361296160380821062304734766352677751572521010693308408896638002995725178091325447831087804638815030260264010909389892523599050256070660063235916279259395429824602502844450302481908477973298268022801847968633180452732281884345672289639454383068062393521852456649706785154396118692926712594199180226971034151432180047328895203925893371472927613659553235314183084393754111054662741339715808451770962771545462240648231397500597285284433294618678793737111425549589027922603561374285694040715909088929492496128339978966948481476700382966095686659474053384917606706245586715346634629556503320978701122819297461470393798332205085151650303902649212544493136750416229193965630770795276180443109131600650747743374962289407593560735705430344878324131372080990652745756875061629115570407904365602201168182897115188819623303132373761414383724745344710786520944380928705652066201529169130930318529906674823928752591130512597208360232088958977730827622737935841072604066831089380503184429547437270993259892130285756419559500897403250367636475810882461705056018475234058355670050211630022074982365172058382427352843469724001163224993571311701781714934548000301547005638810518958397266390533193974769945729424068014477781015791101203921240275732329170114566479041273602984181083055669048526386389993101835532898559874499476810769455951098128759015608112200322024909547738470956635811070634657582186178113776288145783935114301667202960145735092353006690690746171378756348479203790466252926455711583265483459442748857761311807391567105926685018730921361525097804484732662449485384551648968061776633125511436345570599544627307253386067895431888263113396392509801851501101517480768442431610769945853112361458040747346153479493615516559148644275318997235188558699557227017312818659879108926646327537255792996652877876759735888426270215407461211596103285338718414206330248311700448503408927944472675544069005566976245281361996966377390085967276641423656350523497956313537129848825685476146853657147640786505415312008402628476897929701916141296757136086650292797896429745722607709034949403704400116700585990121545726867031263882651763414084223889878510571330944904819964588348451317649616573889728079244283483606716797033767559388020961001348107282888066728214816768776879339276673562556860052040824966226023534664903542846193386909412549699752426129259825815075682205494846309877381773952659969504306202597407823231960201221364715052877214832650716509623714050556248218876240631219756616491958830363089405510129848101119687302601328491629600930919464095479133400629891771877847568635636133747139103389382858844493272651290556787991366093425687177978621468651493633482054334723465417298084187230720612944817025194016166728543481762663029081797355318836233729701719191814169166076661135384341240302320910022109247794958064249246988619140364199821433915704502743299930198428063847448028980307070494561047887508400308032227379692420741912572821115098548158890370306232315247672344086634694201467416004085301045114758058275213071496590706191717066235584470608421993450031990293184812465518105646780478198643646028313737135059417260954257108540676465649266363930702244153343203519713094077308158609501173037392892062702436543284949996305230695058719697516747808460171185104543885664128918573319278511233521716961917686999506341680313160887039977778598399431873364434708066207449890444760331162720007723714422198013986806506422520347432534088179077348786093946874668095085387698735183514661070066046199140059375493608225705175087480284917606151023964058409164313520142918139233394904954875709918560490454361634066485479373595667970959771073656659687586883152101277348812025211976282802134701827717313555706480225183856343025027155995253920553250979808526327949951233889392529113243092643989097780712430402842071952687103373684621015503838333555394303539053598411402560411462703112011652354820748417562482698720301693935381383602601047568089468769452422621805218387361041526800562910340460862398970156483812812545229695342535656555788324743533066531646480676202278516668755968111383717266476650847046337918550369810105219328696637570646339346605176879163589526389086712886218014548332149303962337355931790060847126822763964995462090581031719635642689568867175190139873544856436393067917855180768986496297660184636043588495056447580885350468293939942525670152018616750234804591593294581934569844300445400064440345885217361710996688005116581595553378553308689908444380596327530418677925077412077055103741019631072552110687687608130144881541514884336205221651106288003895722865460168931961483414852374545062536346398322502519716107027107971318847579809692451770184809599937059344063042088744613674134823577627119569138189981949124853051183263150894364026513205007518612256224440960147402779408098360514503464208827711860002577943417266122006224782327941244346662558422551006500375666125012185315847890609283831260690292799808211077694827575601555330244536328547166032832837595789559992308070762009928122126135606439424913350773567611747818583639314196814518617089599419010629495507689155929434365702149086318466480004969093137585564153105134292673559058085375481527728221017859073093164192362789807964356235353019952966162461269819024931766357517862718715005248541127805311232561743847060273470380884947330264442336794772535898614464960400266853986257848875118967823142212916942429945661020084902428680359893170230129453003072480653025777458231462376435748114409792014961964761506860730019120701811070769330255943628693611230519284386375441483597045411308659854830547692213449015484885933330515742378650137675470665869772021437510404274552414814676728959905272923941978941434301177864074572162131736354209638500354217664546929835753477234578715021337716833328592808192580339066978951200684331242346328270460277916914376276973736387887569073129768465805717446284308456075150405088388212011556661488876203701919944546091332652366036507753503758421633807980804594203255362493057834495838197056267702865862123926224086730422905147574392319308985756593428227153730693612517366411416971982481999193761374961937906422465064489390079546078847447572889744565158479405456664666354084395709816478454735760511525612803795372956534327222470160796423748940194767512352321924005826263572614913078092971756578065963868889328219343460175222531617718027522689783013754771555488262019792671946821335423680131198418183925021870504194836751286927694904900363615916773578646435280077369376046006940415660514521853440774294484524199333281912092735415751673378583471817584336750537770491756575350761096374693448060082021895650363672445460715780290829281958344928646015221093262496336895861041368848586187254829697576478205100785717075445253998155985068331384048236784681549515944283512350069395234164739132963804727809260121706961526651919155874814304858767498271340904531018617837425194459124265702971752149043301726802973518037090367767446871883216554939516237336940450615935921176556290024256860254919377274610262485528712753655478676511322294175982585223442419150397168789689559749881631333297931325019665602630427130272728485751217440703465314566353678230151996340922733332376663103522201472315857343138423875056533615166058018644125461199519871440553956029500432516048465124643896961440017940992899132827089152572812731895071275762006158976364434816550984036491892106249063484236838079114178176642620954010191748860496045929221092407687690044098344869334070071285406919069992936052234477468794481158614284794449713331491479196606269880530590314501534754725756164304004969845335384252799716375120233321742377979147513896667790461350832139152772782767627703577699783906111331232992070237913211326444535458011288394090958654719743991425613985978573705123187791319382330537428777140631742258311208233639057446158834254932243587396971890910535017209205522663198921794601574886282064759807559941711156280934422922655647952365904907366356523276581268944716124348660945701700118097090153855244320288826867040487936543256521514915616724803617962860857739138519010586811366697300950663663847635699958518986401807332150908298755187934513254404059730951310429509760181811525710591727217217862332488539661695076521659157506788322873893214970484793700348428212092337204033528623397563365840686825475321341825126723839006381213353437426734592140402651798589514038351429610430554563902376625683213249702857883895899801965826898954972687270585068676482690279443390129749009109192896139799609322334379453492044452017090872281839817405441050169519460095585587061202386528079032065436241706738478307171278376159276763776235985257378761028231390223168185860248625472458113860469110776210647921609779386854686293163762219943301961005093520071365321561599086166955107556665764624514449838092983326461786759936208467662946092251390783301885395199652596604447319210937645124979038819865551612704611870239712729864896908775364556739057061621552043253639267947237304509094756915331378037843850984064364359581907129398465496217947233955919980079759937789085741142767957509605479462803259234502643506014284269054463402334559828881010673743226059640440348273845029896378558810805980217680375258988351082501800535112930413023350332653803790081466509339024690423918979451741636021800906124942495213082218281749372141342984219721774655266636325997361733110444711417004173704715298515687103029590004744972450076036316718411757885560821626880202027701440623342811122678501728302233841058257997924276280062690640214600389326134562111996737987545296440401048811186559038477781896016732721937632420932636795671951343812774106368198368531483783803338831819468470627766728812909349349926649491539120301598293186847841343698897889400458041568695351349081042584982715556293408584846984100595326140667741247855127441051168300305243406090796533443571673597846876745345465904597100318803039818595301244837265976757788346466625675431915481265381630048041382561551447136968126408683917936597385206339945454687530223653630103074845491852649212375411719205247146684115776745226374261590126736425246707700565128589913888503785139200666451577967864704448322952344938191511855039216494918864709577595138438145980499029304529683000915918917948992614976783171055214868617231273104126259542090568215586460870476787222931118414547090444805627525529602414543226150462927130119278029553449959820412733183489505704924761243290901045626848663090848761669581170265622857350001414094486252051369873104854123905088472437663034429322016517240660009029375321954098347247548733245984688434853420960874824912843537414875417792282580087535013422613788186089649683221097985325208723933467402911935835540651307498070096785010335541436329072841274576162019852352271756963263793916751595310914842395936590568238193544948824800133382356907546679566388889230132974644680876903991827805704789235453696712560061266436667529965317036770222483928594878933836827069280840940467232419797393886101233326257412070750903153787979800995245185708190387124839804357492278815546664569583578793466533385784695671598987372790094197230786109203818550359921795239294498502645184015691990392906261289876136705314524518952531885404211223417435259540071428785834828012232360713894860904055788913470466214969450881027640309617408461227801791052800067202851838413509395694463606497411479619848383666049150589116063958019204678843205021739729691444407209337453861602044378119001986292212116977723831885162921229789013294846997279419362366320192000611995882431141383713712699270098599881010995205975085092976516404736007570687474051029790357305437484687337278098351701979746235332669874385571057759584001463414070197995623862382849660105878617452231269075663017296516296382256442719660305228865541296139246213672941919217191915264320391906704276023458244045302651865085743505449695408079927947961641026064195787834322677303776773891969192207213514553491425752507255192207703017621003861740248853894076111020641485429637848767227234175557709388541668159552028099551166563330109324659058531188273574003723311513421777372258744041979060383704959942875047604880537892072965366902591941259398458982644050448087166769360426937913976167599188119591692382140519556167500439307044047996543336748841634285694264451614583128547991287297497651626211925666952528572819095858231721450133710663559060040584082731311735735150158400519090500940757791572439632555241704945494683048103294098339880683603412674219130630844506636784895317008019137961222301078887958770902953178673287708952891014505675201407362445554379321039260500739834337351902099770608619279987113425204471635169509361519500190684375222821012041489047426884796814654736832761875724748479648626723348905627944109896791485495934522990028309964577351557845198926033268999627448030262447146718611801106996392159817389722412574502178780371219149193740285308023623111475515713814654469481177209674904169898755839572116789359721959536881632988870333908901550323940973774439636870676465105166125119945734158087887169866064006795496812519722617306663318341040184979157713951341964279842884529155552307029705508043000438207649495540609478784140423420109188870356854851755624545822100182567282036099677472479084875097634794823182338465333946025235088401399655140466420814065766929582231018899986454715236064937624859495647218359246418482869610300678598269447341386266024319909439120713876795190820080221700881494226267022452370920520508832269680219426993204949754369548708525697909216793855329067473382621586755298429948489748859509736815216413649679794852258013336793371979024553274646345523880437495510007139001466786329847445770699227982609973228179528466643542384104692124170669488101884642259359977152862651087953017230009981808225307110195190300130498795749052288999710963774521596545678027919680948689066769591049626276752483028610150932548895603096280116717791915010926539839287509081391332055067469658833999277033100563402715986148029323430122291796054158250910713314998475964139096009860957501010871555557338281398444879902864898713862587526494516303476615431866191643654646368516728223221657658223920517342113578015989680275075662562137081881378821569853940277289571501089271694602954504739576361432169753604116320443926382494754741423882462626364872947467873173489342628202119020739143406243188502738995094342496520731744905275839209040198897631323464061259525508950590356337676350215292074884610885607658955216305600535473164572222515174482896522355710765464044608379253622500888638566807516586757292312439527072847889263075369220751803865670586205668195377527300618660907500604177554013022045787304307042839790784531863036443657692736867937802181673463582686093564590517500737909465144036423204445888229101505086666282171077889082817430329965233718976534593787092887849328491646970315792026920606255563440159337077827145362647025365143876946500497126944142454502981703033120563007061283014743020555371182055740723232233893174830590010368720876879234938384530462898714111956353538060703888432657025136320307463362136904773403705631480329623188605825848892640109612498755970030179810511018944290908745840668895826431797769964609011211240864366416041809957870921447937914898961649328853657934053933680125365813564681046838038802026821058322781626340479921570239504880902059259219950649135294201333546319789263178936522680183017579094083112508407083338476642955096189878386732582173363977954899467888087070349416829076204040518843362460889147960483914384882598171621334192977435069954087835190701480208224747789022449794932598429570209481047598285384838229508278836952353348041284937247145664240495918645744126117961664709861569566492162427361221694897429976520775352627188046863751860594934160067898468709736545706339840690430206036039678574582428395178474663270680825804200887848243264837375093366242431285972212659443196677474853814134628931372872403834358002272783029833855894469234095307026903701146500052560416020895632649419488431404634433421435441393701987029676271531107602645008258327884107964795140982516619194067821387219415679518749376879819933925766566799369404620387668241789167376422425457496277068705056308514474868690823913047431559556968779846327459425755817254282786371052252501199474896724152089831428153374625814030240022627600569401710551883133437466191782579975625264085398186840913807698429121667706569723737781120073080010005274020482840586578701706354724239795908616499336600323301610159810647659943845086239550108851748210156186080093712072181736669332097687522923670353894638086774826962719743970485705181382822434741884743207343025405790480511224380820505205476677925530766474649331837609983227719491999529856410074454488072178749514072732530626228410124683303968692000511440166043084282778044562682988140895016118147035884204481704912206774929740600039190021265960009754453910157319840396341409714442189365754872109031024151972319651289031432196233961696511387865220210339755485613544044655365726535386719279302117416752196214868304884258346139107741829754976944488925062943335774196601694990326686460897139773713944662774349776609462347831154719861389233351589139467513865643623876836519860567474627572873943352675878175642429468902513734650381445549379138853758514978354051967899173712695955561361418028523451073603070999134746240818055203203590115135024905199660912264803659055458180928775517927022092338776747301090906745153381890960091561385443136420713763304808390278214083734743123674659503079656006599819242081881492358994985209047209591626111162818219455037679060298375873782006870934038831270783644239659582125382320508901465297261577523104560750202630438714222303227380324851313237760361109486338926794617810943325922923560076306445519261326991429598342797798551893348209767560849152077759314556991483146796646593219572898280714105414366251452124269379256726181032145186816776250527336120769017164157908721259890911012927697369522569296044222047428104463974406972201676316462601733389359279919642634658795201861638593682028289622504259429211038741679597934637264669949515540428798559102587530645521913599203612104920496205493902754230797529093374995712074065090455216168067013360935996010750887422587503269550513677872237842115365205353450431778044839966600506303238276854749230781247769477114422824711640430245979327928705986795518744940352792026476587118558573414493517772482846031690144432076054807479738900146003995396973870650046027054626147733586922520737625695443629508021763886861035615258239196604662652583799905944616477687065621256145412757341490898798505474893786368111239817299867010400282619477414131323267939499773319048104545692451930086212854847060718464395776775803254357755963924275430202262890815232476566612161834869701154659068528016190631771907806023225039420064483488640806658905003647185027727013735152640193248083950485637609284437016293868577465204568529681491281157379120447203172478618182809808246816919902254799257612375088327185350916618947786341986835502405800670675143024850741867701181197564589973105068245326313940878206889502968363242236263708441446485655311788707813364279446743762922098135923633487843278180617523349710848208979148310485115448744239869435843824390785071969167275533062475008000154319137242483625276746977210059510971182888019668236838611738533151341102131375516764230292996379523477115696787685375486634864868939397655611045397036400806076653880472432695083604679557561849866116916240068894121470902208856096616172732096383605512521246803687703306335207220775872159877272240414240701181718814105535346311061465642728961143702196021541044776837797497155251250292284536391059260329219358870475382546587597273804385687249073488979008914709217895203807914245002160716170178782271942783628910442805367092124547333218166894635634381940634628731303103445192502750754408876229527779415580019054398565534841236588337294267502945097996091747409962683718107929188492965434800151115682142569457940027875910877192275647683513593060251274136631754423940515723228938525876217674002138933143310544955788559681095895644670727543371712047918848458966451393009390584011026658910269265466148173773480118896550319845713537183698869937420844542389255426610731495852690124171807784352566188501456200602634225894940314989336835664213819194655044681464359908084087087792869409193149505403808967322504214470478303233516157770938069661004173756989958447391991679350399113013770656552892380634384192515756698620800225866279280247406659933432969789839617988187580850427894409790059403728235308480975559431804652002618026872886240196275305225090352227207415585623347281846429383640106300934160414795097292643039368573515920215030824095223990891889254995891170633202379945429240612273041314282087088445600836436135698733915662685059141488588961606122179419906486741476421081842973197631831110376634160541352520436890922170624160410211092509891247344266590096302626526071084703852775946346095106697546277865923497859176247495597827026722347934480439321113586741819256076570395552828815565475651712200094208435979644156333983232600275691241731220962075897287296501425146419528167376053088913390716572526375640671950238705559388710206187430618384438595411949361174443337447985495430069867487592529426601321895803413413404216114428758052213253170166540885104478391544505240182700244474103914680555934955023010540553879326948552286593416719559226393214968951996136703032713403129051088117310221364118090315478093938380257756851613044973081835193576940339554137977412472396644069206865103237066716349501582295736944748488381824820414271586273075599418230926832727546940055206278983818339696645592813856553759294704187519700111093090206135086935457729149044713876338996885123739190323160708970223946431843124137707378306969022589999195843132690137450037180289463326696315614458680128481163376056711595577197538676124726544861787887421302689133563708467249767924554843588360431109512445373044072614227640832003118492625369576712857617977629636086730836814491906846875866104070471787092066148427420591385238918137504838824420173255737505889932745759145683547976504095958657904478487145645166241003679447854022925606955753108244999954472623482379596878031665794494087333056361163706655219521686383640589770106017774878376564920498572310849985078965909648708521801523310803796079709116413940294108624383899965778285748319729976413604023452280498872611189305149786247160690884555370077637112169906616908759617610115366038566027236002821750927213183372314235019608183010235262720822387565893416388943352380600515792038781164568425065737719134078621780023677739225310425207097458564514343292642289649690716407146579734562062695864943503438063947695902575930727267965960794661757462720051138465136742557063403748015448354623626119697539034699621315362834106571307050576107905256326900054801707601499009820332792303811401755617053166597085899790673143974658704575238227430166574575224866042046291833852542323372481105291473211290909035521891754770606513251649232280471853104903261427280935371997398401001294693777816590625926363511641355697062276986346608345856479459227405541575221423463043809315689481004642525879386070491559623968537147012748389410382504298181760081099417508123821220572516262816229533028005973719881004220797857883505963734412944050402939431019060886137444357931360729778232435443390820749700202695681586397408005772632324776519415023825327142941268820324102453879722730752854077431125847279754057993900229116099161368507153734564385039483129381577607899817330456167441196400797508946059597316422046035965842943777058028895440308073488315958421608941487450312514404525967693786650623151010473526671819792760131216321555262257785587217306235903452684954563656081681615244809313765992981117903007274306561564901555254780505425453411118503600648940696536586045763552413531047660134936049516562434797376143726960580590726790180222450881240464871622796384064973418257153213644936824268943702117055462213608666686345634176862580492036346543840638696780803016222566687898221397338046080368253871285794425170097492564574203100336333016735521130347437409048090931863453402874215501834314664866006958258155273835666344603200737911699442833054164981915774042714527626429532635234867181348422937772766748589926154711173913689487553736810217756110061173570030719185945312884102880100713523882168086775753852543866221142590173245081018366825104553201564641494151959507561320626921674684264903724256620768405407587458078596404545008639826815764014887660711634662249326603449403266294515258872376891451637090595255122927971335069576954737702618880275960803552961561475964095210643122003382969395774004283013981706185387163049097390157780866694116645295043864359141485426747271193316089810292204612409496777397170575652218395572880500485665787234327909928184293758515934517055139453946429019847468714211281974620244809888451326292306889621944409525663326111622474154184680183001469016508506577505541433280593172464885086967992069682682328219344856329581946061892676057333658510288199636658166927583008490585467613130109398640293666476394828922466717023834363860342508391852557052261769753340420197756631059550932447587060087487773212277044394193650796995013494428282102672274798807268925217795597018216287231796735842611692825153042099951887955916349360715093780178960596611715039091759683276354124943215104718222846928427403921238769183056503361867943207501165057799587750274570191189579387370152730224129811068741278522059495011730833847419765542941001408387827858160547679966685031457207546046898976579135577156787427393772757737673223527823626045472519506732942138368804988194115582071097356053013147097755245226911233179966463925573227953457113260666681621167007933119485262174250633021321992494724031077508720018102474781383128601132433082292414288609116921281714917425431624155212881473679963368060030159473080608639969444977807092325142513523063922020496091772775306778461929104588979582548196969076981614818860524856789998191237118050163526161912184983041126505500326278687544117087396010934077831740346782412162481953233628792357409932926633887016416272685161836439245489421378647904232202760706980388260382613586587131557086294676874951571518355905546397876484696360528269951729064729649247950063458562854068512804177870503437859357682519563334825310792445731113153633105038506210117792381462311949438672736119524517941820066756684290917902733813907860745702905732660828990980124593655398174223862434813356140384657308834131784622017085019356671054463041127681408131797303309021495559804871138280233037095138016061594189085641055472998730560126083935349377296193242968645096806764546090986640338537933759706425665332744080746835847513109600914122860584371822515140369608690207691951005115667995865948288559849294232245918893730231397729371352331352068277545116184382807862930653722547252995434098855581905101598868234751588870927880032807751606364762716339208818045035335351654130591742929689173109938390282491445848574538713506792867017157082230727383187636340708887230347540752962992876893940309177222873878111275208411793706749239928029614277841755616678784487050007416883771265835013585432345155389388493270302368981286393770963896989018516183698384900731915695523838254010509115734110819601577158195253074696590977668755909314159394594013288449333148412596300932379419074528754515812913125415409037909388924925694172613416147777086548071641705312283208743462069463229633108490812163761050202480823862655084931492482934756784946822022596123062134953033074357241775631045755588255287152534641645699688926092550709812888981287481456020085673970863242574498699568490614187030952941472752973941234620037476449932033459872531665221084831661332034408458613049340849420961624162767026481400946393768505054865146896507740706061073305869385988889215954951478085227417558507446463216372335255930414694807703218553801534572778064858133385704436225931877161293194310359837213792590333960354289598203734361235183128260021929307384746184982125365765837758676730239335410225562907176397413789983254046706686903056154482881410921960715309590131616191339411819158942327247092319597589257159303489808134348252921984153925398237249347379176919859097498495240801566872446658690287317695803701007945917555175039187465209109793266970363502183476786593780453435735545484871928661164944362007627605339271611009074875948039815315569424015614410310013821791648400911432604029933759415899627137177292537703537554150431752293729157952059366609023343817740505175589222396808019410825097602019508022210396479717474705356538719029168264385073415869545497624426280565773834959661573874966796044702762660873223278718977253867678221894765874826624923150917669936622116062163804249643089661756076081272295238775203846217775783569711603911865965985030479541758377649778965642537122836449152441243199005400722917470020123535263394061497686637673714239728268641893565241003758867814717570908579342705392543443764106517271481815140475458232207776212429830833750584279697287469884406584522308701837135946266040100999424895305641096570451427392297703506994579921328640958945053432909473762129225902755290488676116242048238468461977911184379461428329727405729096816686869877821071593671837910615546844873944198833532247625045934888507454131905490916391527774402576851138436248951577735114914875595057822439934338356519375692977625963839078590531655184812229534380749719272736936841638810555169118020823540374345579802956036498506247964939410621933640002892406858733889274125030006223788757373978179195381920954357429318182012675935502174321217259599078686384166747781516539500717503132430271919906623488258069412845988150973604885514558852215694062350312728388557660361117300474240827108238225433569100903192864527972939397615477549482117019532133653640025112795055854517883135033886535420721016635970616326437927844765906173442765396911159847896356278405862793768800133198697528655787984065314770342598165767279009208064802066706707744971732302286075217284084849015346029446805945386215358349227386907913804757248974031090371856020821825544065134887480706405289734744035394518883603316283686011209195739259763642347837315562439449856429692840822608288444544594571122012486971599310606099301181196924249062708508636466761598612611479570993410488886807010141583560532368390893474689153287634096295549325963446207974492368345446404874252419233235861881275195915802676965487720634306944930365671429300017076881840274743720576066884817063938633463009130529407422525020149531855800141639134359022383870356780091173542580154023707284122351240636701184739925137208462090692079377356220790208122247739573924641632575250434718323266902464512778913325501463891361180776336214222221000645768714889919007275011425206007448185396864798294245062270741650936293091396444014765621365473450532696208835103030117546218200316147381483149496390930367426451172285686900383445191144148698400044390118550664844550455408205304083012244377814941482936469411991248433218099693824268357036364961193042630331791543286923261545980394794046865680269213299809698793280376815439675516749814892313951473896329027076918077105618065072429813408678554941890997602253126669552849340096044768381507649874247057969274417224105739909532886559326815292615225063680572383578647574887397352054260459031132303747285055853259981040063799759829952629963867824118428897950242446085220617086701969443399316903746687827801947431514599465555920695179552810948959350740438571243440569284976875686067956826158832800182714384776890625766780797961392213499040641948354564330669779992749938764140037414822543666912679084753944040443104763054610149304330008503094653907524817570774073208248891934517410317914429732952098823458778079083769963756073228936640801195992698501740349234658478150839114385762308910088363720219416814227841773493215339260184035243948161422416526216374675967172045233811939017239435620322364346508522447185868185220177837860138394768902506013222787851879015306470759390007727671196840642493274282804631187920126939918133558114035787769545804515884102743167540068586273628684875878318557004236538774351234911948071997885268654682453902090307757509331196540810512490558842316558070208147513482763573645948976908284225533213008873514951655436178179211264618347547810585473170585434365253046255183671437351524886683142662046555216642089882382046812526124438254324684186682531588372746638364492256313534096997540226925130883784066709401174097649280207361203309209914702684630840759084480251499402818307327313264704776014989756201358103206105286928780894089031420678175874767832483290176002082578116747054149401600937516076219849626887607136956310551100004251087796443347686610724782996736068479509314380599405997174935656344365366917769719669388145258874463102055604426654537748598288247760221440427290912542025468767889629494241831834036090274260891799251839666104136606918373142487559196377885408460414429827103609726737932401298403870085261657159004995411894248238051785252873405972583699905737874111967603145003159815604711499463324839333709829419704409203981777917102616096801410661278550438231415024437280827184074391569299720504843632366318344141546042083822050721369489512747372899300436471439067666789389961678159770565296686717248880417379535048217717635689974468655992598412611530227957810812786477736510004673088351198419960774383255106357142008382543464071406955165131381839195140086272256826193374979037298477979659996329910130995594370106925598210807228231739822551247695403210726966455914898753129631958358261890417527552884081288154705239981849189309038516168607515498021914923845696621549083192476032577694299980904267458104025766356566874439060700559973793652662625304635875165324958404424648068473528236129826996116738485925405322410798264755737880821511608734016928016417264880830066317145691401174061720008768520583370192489773732776574448798480935011866010715459379693788909565886945536880300875076420790181867030043336067575707385487955046381202577572578883816220588040805793353580946541157021956290637795415430542005540849065991467454442693363995943606508660371687498317563998832821149596349281138936837648294533070970835505865046633864570146985505899092816457950092897533346745449903324583526947051163490037577783598726089214774080738129631017706419295373130865662808493138602731628689688403083380510964524318350209232936965389000604713082353444247197856445962844279197523557697029947503648914391909757170260123303685391811748773048708635035438582449005609626722574045497615559284945987521152730914182236521029304344852297614533475151301274210156883294960258803256912270850169233861409750117447151553414219267974554084834478849594183058657369217824431310852986524086645715883964408061107452396463572239340562650607078076884919055681609818407816807179975622292090475464382394449325718474998268267522923374794052473555440520986635571681295980536292079723593254076371950615051129872086819444448981391739082651805239569881377833024429868403664829080324528262898280912231269683669754574833740700585527979694867145285077876356544324527336596365342221368474586349064205576933752895847447183093474475785079841623266884538573649597064054481201048772409729369373468871278350366278194963136566249396687971224918739824788410535722617504349797961622440529654611058903999271403975493834974157809310360620681174291078568101480605097342412100723805857447575936113635034702717935508808950408475495622580165295270362312660009035542975001617439366266734847850861560072426802752640198934601020847511816760285017830549871715724454484602997598899387269288537550504708768972931066148491457510126980564025465478596309948995799541437791774475105775919335128446880919737705023272672786838535490845238546378356766454988508649264361762768194075777136618334689349060587099106752573999410017114958729496369616684526921468971909444325644459850875347429662996096316446523224187291179060414060081309560374926479566835444577267423867260843329317338609061600020185068728622542311087945597309436659261918941555918472988743333968020796143370473903782838675130386806761802960285099166442627112362954040523724450736990934550719230151437489655230859955806030880648470106465153637259509068164381439915879828301691739330890129296826295262859544060827924740925082359063308480540807501499341305904428755854241816500620227516391048481148967865993624148920592425609312638608712735926444892512343894806240996047879761133393657820466422737834934057966731455958094081786306533176755096621423085967226849153180218045334552705142798497250719542489827602772596954603334366427294535436358877141536636065270348046237914729130491375892315069387568031207845442218668861659222041743560367738758962116459244837381135602483104763510424348473057119456159919811067759949580964747658868883095447093753945733859773573112052387844915954875323681210038669465631939860706372328364670709001968022928087676410904204433353352909355105231683835390781519927285368381894492142503464527426288401373223909337663048460862665247370261408649766530343539137550040771430028903804996131558653792328337670175505807813592989492784114525446251083756032121117250884840427792840959182368443400993368063958454732763495314402614296332036226991298812000753326939186669012527438745994085260643981721698093517494736339784671200863210292495884755408403907077787783405985153068081252691166304450049449259039643589983552563243048681192888046835532319425315719814399562454129444767376188682142260539252714789042727297849150451330610535116529410064015036879551294858528062190245837184564564593057681557999045058769471586687281236232667978333071666154212922167986584369953315182626963595050856693044386931702406282734794443242611894556770119001628264487901461924358993269148780245327300164237892137483436594936826653230858742731708039501036478309473123076562150818073391639601017013801762655076501569943208263224588749261437386608650705230524370059722660747782607161839241775463148938567719921920877113668255501436253151249135778064007913460833216668762638787563950465792335027308596308205766684855825468778819711588551231958071478612006675617677769156460562817213054852071411327313975738657968245685059208046419364652598977092974016705243281214795796556764956474716669887377387175791165327348814641434851391814510116024210706822688805065857322886566994404893011316601001825642282861156685580412186227519136609485987159224596059019792084650365605070779062286216568824694898345958247737619945745330075355951843056009578641584620095275972418192326576627170232542063720389906393147860968529523228249050425788790888835494653345091671718391110018370385135407813486245519918906863795985975504158184119516482425782719587488477593005455066876175784704373123369929252781978973090405714087304725371078811561121536951487350203316284913546827201833695589801389081368625914792006123858772793653551455653233316785101426793790663220118405668152877875773428411522190449360791269146562613793888792487563240680207919328260239216958084505533814088684852935233143448390053269448505108305251245106745440855528944881585006617374802014414236214855367209283194180702599328032765611932725598391956890599024301579970757582153490953516284581611799564139969581810252989700456158645465680544340775189649732078070436732372290582470008083139002244021642764485626212313291226802540163341587251037562776869413193683546782293309883489462951985530076844292149136590860044912218549615207026332300901555208526295916224496486242437085057516876205940169321151745333169002008322600975314440267749276718085274267630579634130846364337745472244500496780494020780652313944762988157858747795870257643847124885549565652439206297338825705533816533988885428829571860994412927159304971387077048212686483837613178514186974301822747785147568034162151813065569081791139381085947419376809756031298079411375390890773324720639986510269118283652515280758025918160138123911815063451398564650536930694062392897865495713940804265178019771757872060865138479629324223555848429232813147994848431152987105257168834566359557229270744017926806255314888951604263621549268536905077575248667858805618659566001150154590421602307499834657953918131545316425445378723261071398648188397852757413077400683060850018135307102911541718399563707116730715343672410598716142253400058419165426136979619888183134240366122729499316328388549135312730676590484702349103326986824861398121998066852041505691523326066706396672611991994927917282068510071361498501384851350682960029190219124994014165001036738930930667801370296910062732510364079883071709574780394192397165440818636238210968973401035215600588931599924563446626822275895598558496266603980116906793697790968445367448665131642634788733647822922171020969606068749101865845232577621269917338373075319825306778140626890050378415048101967646904403070144521154623574646961236423116596530688047381673557460189360123924222161035722251120063481900069999003318055519106803972289128723400291854191814313423381045512418749899767996179802599746900881614827903533302888843469801034043604056855612161043329078513260024288563116042397996942978187259696289333487435767300734014802618420227988261484067168836237485710275983906969881855671242096775008263765647061163266223401756779282594485735027510612513209518294443776814068364989373102948427087540373427468774663038105593361881811322267523962547078511158631443548217474049679059296205520611027758835417172741277900989925040750240062567195043917737278113376181098646250125010107757072010525171745605479035006892422288956649299767444240804774404816940531694082158441704530955664398147130379892137764594144004121102934598217729299923712415507450078664283289510255573409814200912869526366687831376701483865684485316369576174911244541885026448829577398816984612459327977814396962664805804343148366097109813542226582977032671155335551930736392695538583131044634448911278102803545206727103543821549930671918998329781499603366475883022151394061303909521556056667605329845342341456067843603737392824992349825117313347141242510683012732681757919997892078376770444805772110904289737477675322127312356348325123001200796268759814349992305553057557067689568887177892019999917992680221936517868687877172117736578942391101180201346000776478973567591132472757351821196529926109869969553194450006491995192711006317992074252964769344155885545360812966461046486001835077121399995838131318878638097068484122342345173421534856680683518260494980449438057309829355310169348182137942465446140173127212560679406389481804035103243117609244762976300026495129630437088918105318774153739003606169665018924007077541282489254454758766500307149994108479143969410240088618933897537251252788518324220194088110936168779507797655201448311434103947079374808183643758936726905916099689595668817348557641637489073109281285837593365203998061735383873783046143242607933190222929478732125285732505259263859366370914245137768713941370863603649212304892804837988306990069495355561834315607125279661750277756352837076114854444438093262346870033092386151336799955539433989943772571799645659800210140379895188266255624556306873258608677805713875676668724665066560650234910335817173248976285767133856199777840801020626536095027150772706843721303924817278392295153106419135895651935257784975071060501424512327079812143540495529821477888893043870022289274069190821972291608853379954694214222226604363224818986937392044915221788647577876716736612327376782465730924864118355028333904751118435655368719516840662952653826978899858467751767961109022734216221685122926969759924553728947272810704817483411018383203091360642499673091999901562081800003273765076344179873502605529391946591647976684964456600446242381954302192707198490479197039990300514381013783099514022421457393191410331779310611145178040233930361339914432523720523865128943831510862996253510351312873455511885018353021742968923519604261121176275459916440654868232505167486387624146733284371410082548148602292338364499050810719311703017745273705406138918350337581137909403932190008601959283120399303932659365847148561405022413773062635270328379451832603712530400645972467514682861112445269992072857235993275370930594139552919766842282455864614121367432784356389964574341136115196750281786378350623780469441291113277522629544899693709311102494853581091237192180194705711970244237482215578959516392672255729456300799257634391091800301474647451327557058041294835473097869745013248834227480460282920049846610324460519255883660331433181765879771935695650109086917345160993394541934019483643173720064167597165118078927689901725105980765724945834777212654105737191017032764716708210981776195398426306130455982547363798309084911089036930655311951044627904264749362532784323006592939006789951300684748629916507886889800646661986532511701162720427939816115714689167380477423567267393052210710600967608352319041648060516197556540719959843194383104834999233450149364913370734484977635001607672557880022591208473714718107817038527218252941576707989476945044017379726941827937993404690858828861669218611711030965591528266147393911628716335136101926645621865389155428710897617461751811095075755474935341693534265250475680205604528425148021638421444973490476888195030117194521416576248381344229587039095862536843748701225785625320260777854609124345878022551746428582869715870203146952418190594596596590062102823173042837108777544752060408045807420034116444211845213101035509154033754845309065165614526970283736826875976198130004427728131107287390242177439673540693680292605188395924918476647984165972634407884233982324106871811315151901968466692243336372914914599966511504282623963407521424711507651036206173591836523524528527272234827529548628269619867275137247078307598566984789459392737891380781402774264133913975162666582084290876483364481758478778756095241426147374731222315243290947029425384715903407642267847222735048074644485127090087824622724944956903159270222251152851897984876337847704166844896796201608665566840047217978858739435661176451228285557117799426274981429759592515782741843695222227064842796150738926653271660773069895871614955653502119164178865946268839333988452796850215432126763026183949473473760727461670521965518261900094701193837149087551493117288711542863551897379317511917510428965309302877164670922615188771183415177942055444879098809095089814317461175233158414683782464424610921388977432093816339915152400640395852064129320496395683633644850053896034787824187891276733427905730620056919904691142734924998785033716356146177294303665597856484412335500019767742194156804446841099859104150428926119671364255678640222186755802431041082966688411856320525703781549541188408833065452319411352434980046425113783068409383937180881082976088088092719418444773032894763489898190922800596853477705560320590205221332581637876950637312260989075678211855313315695371906307259681774156654311460032826662195711641520909476088402280959625608773918599064446713259616697627294024039091694230632594835348777222658223059136832726484029046942751479331403902269851407839023832253310881171655035570059299256308841108775157717720162237834662937233928137702018474367797758358659204593598643536390269208059828944663740082264969589606906940636411096793806785504421408451590682396398017021580505253890848533188274638761129004080226757099176289630159753214489274746823793350681179697305312358418275376049700478625155632075879336857093073147149879892868376074236934976813411996451221020799750505408772490921840951239210155111982379551073137929975123897338876078444120871760904969265687799914814496068050359885487626472887508533586158195001567601450070871471363194170587223941028210277152161432465442367206313351993438606316929746252747336457371999006451128758855800353577508828859683793382612516246113203465574291624039469600088999385897853853027292463947842528739170740686114692380071777339870687516457521811429616418401355942795619702487446467801059879270851352230411969039701168442222341563006246343521053466823045788301200698352830821546032507937617985477242949209934570830003528843934705401394636836174732023632069514756866126485095746409083229898212893908032944025922867886443626538916553097393830267243808288999713384048067042688141559565384734053490551733086771491776420007443884405552428649646089931726663325778288159229195643362600047550870384866353288815150992300736221095276344570839201928094259520003982259703291040069202623732517672023920566131963503934870868723732389643773264945015204904696309147040296433207319099233351532800133140232749088845837329977297080800491452265414788714091670102405150655089677030827590470064127297920989595063658020615308611835637081908540657553201345984242969904685479623182561972181013335472797873145786809572865893772654933197773614247031103739899911984663152111526603995929269032466271589279159909360712395845762886448720069535527609519304185876477268953665438420315404037459178715860325079657167787050760031148898943051237521284497971145105256747679355423296307863607686039949408062323158338271768523803771546582711715151463354688759872403091887524387901668444174267184882913150469738945984162715652739303938201568899653071039964858187811516266824206916527958464505816827309148875491071609777456751724772188652047917092933381922241772940809529615447968989705434463069115079078871763037727941540532363587886498323474867145095468696401408233322532737412062845871286994682911935866712542022529109966966108081712736835761695332788332021907209308636953711161194569297107996320429578983057045356873046336950536278349448006477605794975192708219868437826663937172112680481393137044735299543543821640879123146934589102782754984124197202246307814225960245812016497854150763509100793106452455195456835773561490615379290706708855057250502294422674598450448027034743456655282158735786043801170489189442685040430398566341037820586202353982566363578646651887214065070840199540016906403341365056564083622249754615042018794529425779618879912169400004258653570195275340778566503124634377529115418284172543881356464714784551218436701285383178462298636596910405393525452448246527219563131206930322994864728344719185871066702576456214320716786158651244061993112664595131817421641825961633498103666694892242124796253492074933144352450263048338790358742811820670370292170349353456924618005911410344389832853997403949292233598894984770794868952479745126394919898499355192622385584391627670341851748809206143684159156745170994638171398052445689381758172015828349730801303273327413414649092249404756751967683786050585047499525059722723205195625797537022115400909906656107880242053345157747865889574429672813107960591338156386683360156820461363582994121436415126643120873929416221418871528393810113617319848109982448806513771921935838966869765178933215713213949723465758832057957968986562321873848926515183011149631435326691823059357867890416812744008614708016069769539652934222659591057354754035537469240837330866580814680105138826298454713543311251305727581880507738221233910802913276836955787330223353433482227563572835704462976047958363952028835504803326524403113236587782676733993580407792154520893262100734972169280760415737618818664167296743697436727399042018480606731194501993245353475599822033398417118662513575435959854340108110153210287456733634783403828177895853934206160646485972217363996955695210002223300209368501562699146875411065955791219787352639987472433526776622439316284299525097744753990315890268776318504773456057767159657219955782880742056539901535156265981751484439246023700015429873021455702012833087328172036751734109321085844388404174846031390453589536706496108847612211843249439860874838123762626391147309634647584868670324221999321053526064830735004463136217907003429736094712078835888043905088786346542220834528901769243960363533027344633779605390359864194018939379454546753748844287704871184407896488245461876729726026623255577817868004945872188664463540492474896177683219509725146432508310065328792241127138879053631450197551128925157915700636766161480924171317149589877453594273782508387426626222187518060549541475104957690410146015616727955166393916366593683770366883430292035035858197229412331109954765511979674462757197494656056635743799956501758722332716683029789745037678426079140636509567610964528606880889713199219487527994696691504094753801083690835559330766376652472986136889656779654916354307013789794208340774226501844379193880893816930202858778840982544106763621918650504916413317554668198187983485981785578562611901311711211295272140814482344599888048775552172118909337905978736845830997673662025126277129999105256551369640119729064219896021208248710004745827114817079148419757468007921684486659008307606713318147117739801529135366996542076144913711079029157754616241786270966979048993287703822112929663553226473708924109382530200748622213925191499869599478041084609130674851547633423284114826412114553602785464327705858468726275127336517146741488710798305475108579296976783737481401694898271697326196301803180595799934893746838788181470691856802276713928839013539593381787570100797749955914359923879104318652241342169262665036208546606553562026744427132058992820270145129724996113637268667489547392134108776302044850574296073934200739641476481710779697190488654508969958005157897731960841363726802022769975211676441821094540081597194650576127092316935072274455140279621289921894264911479620051642153680631513677814792534691001332801337137930640265399478982231987427262086426259619624401885998084492694930883037181544678942466762393688002155729944288095227833573092024424346570085418913439571799016209787360846781844404053513210179518484539670836916107580777658589168460221580818519356771895235487222420287385243639929666187493728593960069674710967904917911068607094479405956787112535121891145578775051691304185078731045949394344926197308563281086734109573041444983594635377064362501646582750268765808303893950266156379355789278942398707990102281143299851261438966799208096718267511659485930927536807261890046310954460769802876140142326525966857697280058353457855097976152728622374679930754514152692176186273644436983287889264805675838612445448286070392394451105107578457460644982838785200430154036712037871019540154685294937793132121067601262501279080775889434669568264108885620162275270578434461681986176784437762494328439535852074464087116286220368071716311960469621555913403355456064836817725401345583028770378937451813296832945484894105714301429832254959579354716596194997062008512499654412859689649600815393400293526077186031043834346128413169252423705174733367242181981759454257997113391038707550098895474962411120222485923562506939207456328541279099879779127452284102315863662156944388215490972740559803086213893708898733897644699703323808615768122777176458166869643990783470609706391778253508139515843419322321401511924275991936925981633318855180308375741724886622440430196568562283638113529306701382021790625383844407417969147328509611589103952499500266441900935166983302956248172532183372445925732759398183481774512923379449761091059786231433648237761595224431605878573502433145853983783081466712496851908155567324566607737986742951673202556267627035018617403223839603694184370936002118391469976994372488867555260205038680434418922210970929727178748017369157233396150481497986341680717086646173847353763468968539404417774636938310139845536715181543310972869892727531517557729730627797782441589266538310635556553813417340964587259248167589510940261528413850729969650604516558382528461582385086468485008893507096947697802757874962053658239098255484956007361337753042542608359339317024534131914598315388813513421177520752017322573226684302950694120195656826721318838143201876183766978632049809985105651291087268335001825266083281736719739243304013946065301349815511514938522178688175021590734086484077883811567738837393246573383831959743051555813660094700973411458004993706205632760327273745649180951262923577123306232846925215532849356588912781416140459695768153666341323139141071905747795914157142167534788364511354609591358243778246865307005073183663721300724589549319301608898783395617759253817269950927828389539677135064382745635835353711798130274134751728952062045838719910116970059678023011728520861460043133374962015133199464630107776979177284955213915220338583383222267624365350171506778412503936957313143438305835177100946768202656759462803349730480927921841912774785979280256393665661112753477154569494631030746142007411836000221681960492735449767361328217520185311946040283802358080870812841982883727923788038660208366323081277252719083565916054526450210746516379516971201146059485155000811600814169795930179735838155232088100995027791675982275192505942117689365112471635064493513538275230213280484639609152009662797817357232198234383389787831331269558191710521037578147361260441764486039818466265966470500247749512586211684825773954311719465854026000692398047514060092439732149243286451046395884557383631019076791895881625716140589101438971176924941717289169577872667291908390719199234081131722556312963988422712839808384326047120530097290204584865326434610783337080345124448920668343540258979997631422114763192536129233669690166255265512916978707565310433183988310713718258185396612854090140558513393101766268502291921479683066259876567848385680539822702859713994447431221934741620015545893277884001710594583756376364527010095864188052499687314619237080899773806088778494001300622340454944842904390144273407927624149980719354153477672533154951683264395837352762806063155104539104435576247287771830551198898944521776366941702449956727949878355808732591451055099681658022534410502793506297744309117812095249932707046141417970185898764711681782628756110853077914807806969792200673502636290225249679641665320409718108906410457537931089619157552071286227795458186310641779121955044163171000743798269896965651050129854413060483257116284064735026837225633502347845579779288606812686916210027488634369724086968015257005431339353605338945929693309048669117899888488099871226195974420890575387797096105571328372323343407920062881396414552601478769134523301679780528673327820554974801838660647681539103313918710809639658842804168562409471934172280784590230140176170422079637044081441249712190281318429558931465132738223193973261801281147947150778970733693260414572740511322329956604062941772395596261492915627006259353272978584588984417937577656882937733475771874539583433622622132877517664584525260175255143917642928479876931890438785120348504987572238151708888795079227948929125128302020431787411946222658204005975400349702246013232880067658780369813075720446296263325176699833829840708467678273753514303790468686286935432589359248550667100172010667120766721953856478902247676999337132321375001030311044768288111850682852823045845230815828848714628611076596906576279841648898173731408840464465115614603304258265659785201044128826180878680185211201731531080440513350789020192300903470862046950115806822502631354784829148858004270634841400738957657444495647642079611758613644942350927083613033888415985732348537725663276596477783671470741583490871428635235668187468199545474408758202561699933778003923075088243901526968568100050229574146527482084235559494487902417654470005430907358528043295523228401602933740412481902430828331829931809482867663392600835292153278709433904540525837914468207844453655568483071821457644878801091936427865779393587922116333258810295001053291671030951676068239594600333956514993546310623872337324223555002945711593658358530627228645819539494309480343667241704662867646312586774430125604403532745006334036463408706159516752371937633556666098829724337572087700317396659065777871065092332800908849810008624670848181265745481610446206751917534917077329916899292805184254380554465187549647580141536252837823453754657492564241501159588061246400466816581989948118799773290827064028841564170541855493329122682868927454598192192870178060685411312180701544076853876730965541054327542905634869827146800012747056184342506228932052207514110643316753774513673648984680263722621482371258679683419758234389820243793386734829514182172472588695489919644661176779060648239744759236391159000036887043238191793888530589052269896030762424668997657634323155961782597673621045312337192136418826858715734793384254488206818251215603498126997684747198106086112287611865344673206152008090999405693470317779674842238571397643146741691463286431011022887604515395689045075637350576852968648141362033817251804094674212812579182166699390983842293152292920187412773426789919414901325340365392932531928989175048577484226846541062300699837766889763204911817130548928851525824624906468752931514810955485556813031984002127363604171410675396903612175819328410914505955332912173715771150181586438637082447639508168858461303105956450569588095475410210055326466833731339591307640071357313126643114655790568026083999568884667374199117856062057614959893258865276897955572096631658651012792855875051008527589545951427378329684784207972134955807619163245172860551319967040033803193642515482049579177402063513502887272690925638435514383012269459140635954262664621252385803043524658716581125879016663704004344405969906227474038102863757809777736868599554950425923736907978391773192105916889001370317617770880305837204975119086948668233989725093460940355764520991621350057109505827199095328265287415661215067704234476134651068589839357297795083878217307268925954887765678292732885906651880438985449654203796780145466753838372326361040192913052948841183785420931067627592317804224854406538848126790235945207515325878760355237329844270114121618726216159608146675156636097584504986668221391565674301897306089936459044570499775237094385987257384797550001034295856888176973623283729895624937909744007266319516206070031722678514958590872732263296022304476147285906756637139931301282102497053616048817905461207887241695678986365806790271141972179321401935157944903532017176014794314387229533437607351911986130410857682755407371170251044089735038783577878437657956492244138070389848969757744195846824995142415948705626943024118276556064723865577516692732758567917948524557868529047128103072649457063668014058441229782720732759888007827664169979770030073502009568122683702120750919453462092193910799150088257394882409403679906008985666380749293504997713979405535726607441586292713054004130388668313809981971699658448258150795298536933567910622180296839340903887784681691944783560725346890381859725275100289459861954626132744677928878232397021006584166347905006781453545560599330400777588666986127444156553303930238104341572863062751647715877292149465583796693569601326968652680334026541760028487516444481113169413226909784592610254680797551168454491336836502063817310757292464660632228532138285217576768189136969640092072330958332165944546919661566023912746148581160569424852659834968670824208793262080198319797366466477459724800057224643556776798138977209763709291657188311998506636971890398004432312976913931916031730167198996537531327063090294499129521426083609360456156950024510437877411945458420879411148271200581229903908024762811858238929350328508381165075295715632664236246588825783143665479679548655875931561559835292231906647010585683895465310963094200086103454973645301147836028052258355703530287487347661207445296097595387827515690234085799089961349498132981387982606752054714508893767429151678369113080248846203925382829734292917836144253873170710736911675035490346165251691247372010362792436721533473092837779285794905953133361155751845329936820254664995848169359484867127417820309420535245341657070279134985259429471383749909623419067589034650059604105288076929770234231246382809970411024792906457746195217291191983296941618965418714697438357311071206839293138134873699796753324895294878209007199618471681558036406252049939529434978239189098283674758510616024176579510769610847486502677135250596964298956201013771553838145666639474671953996433556890424538193600074740839742849814102842961182698453770229975004173152520925688995069550007283829738816228236945461981230004243165104066108771965581969449690959840617154115342272694251264400996475725305480089149966950690466156717026793944685582064278650180938273808159895982206222421336537829331096518797889092864518407837364931279704847779069227544472430454604527402690280729870882793503726284123738108916645543834204586444968632751187458617840389280650528727044314226925659057156622200129883408950006754845398056176560185674256349994505691432798599508604634800021283357999116260984899414275932805917811159191151856828411814073049573454792203945853605846308786662490674127904298117466019797757237074004539777008887525516453277429240619060966776469596005420956504983952726360932652645001707346140316341895366782489279739218672433768627527774122364413719505570550444915202683146879479085239261441818699016760164535754744926332419591249846729084719888154363897813766354793241071932569008681472071042963901601829789729343978427575091181980176942035532945384439362225627868242268928765053423717588760572117340644648938904677986242844401267906047196604359724669433976556389037036719968451567049356462480890446964028351440791742650119302351238561463428025721466517471865939384790422663294208867079805582567996427092148246478413231887783705004402664161189869929633873166186940021498900199027734239051152252071473437590625992089012703807733914965700395752148480647945299605528773180503473569829123482158782503053978434512237298055754963476926290511671415483020805985016759343436471739485861703872643533201788439287102874699317095926603954379832192371859250933386070684305541767946207730021160794826721633531933424528070797114452544678701135997897279558210559512201811332135226510905494650383003533701219222297307134647621789033269959263561562416463717706197547734842656137914552873549669807742486330675475069972246004065298547204787784891739975273427430829987288309603506375944544180984944281685330647706053034742414051925181883215891833949648620820422394839562429998413365608362936728374083915531855390399343830847514076895305633516461480458275848037821652119686539892514624870450819262542278532737341224400445121050647654383161827351564935990067274018897895228410147365301453295246621710832161375567279458476233663946597868417507816789855470731818668963510145565937041873281648318818133040992675964425802823706931297371534634407428709592548208971528612008894133908566175430709825664746172103240674926078447907802437948128369956399250720428079705255671338961429509629188064632079970198305515039772941453653283144753856308691394918291026476424491415678212724456467206676966160736990344913648178108611545584024977363144255748760407710754713176130122772193927290376652613954058406097410567381032627630469030526614189917165798064437222313969923461634513965478575818321264864224356385892085105462056721495258687217790993787716474726147080010963192574048547228146028175356141645310278402224902236761641584008375144753564380188041374706006413912016855481929693425536107009020828231016332365990885896235152458791084171443352808795608415927277233367741882358892678020504824837399155674682821062607861280655240497010055991462232942813927516193241800862877380655070930499794749792187771209963861729541317579106882811433892582614547682471273571667492364296598552824437910413098230260533545306801973287596361465073082770199500514267576028004770526390125974219086369763638139131001171339992485976247692980964621452988732567758261856912997827155813803945092062915046516014173604018758362251876130611305968574537644167875669194656697726247013508444028895915477953849032410287141571396937415968330362308050553218640728546405016847809502331927309425791089338437876704731402660326611344480509769822786536819491046952140194384259251892705815215028650648050965333201999243049105766919720434547516081240538559848259750006973218873177361223666997010521640148895731523561484938642702648303996640924626470714990906140256727373190738329556299860877877858321168145150805829218336324952790368538877992952303259406896049808401063651263348080745248694720424092844021805150222189946771334974598727819496213979558391556788894036845860162342225703728348440748682897833593986039000137178708087791961527064003152727995504914371330199750838167256218664073615144463326958308773502956861581847009750159020457538972952924171919159428037143268531407195349924961807590553805592473308107006494805524509773193888618400802825387311794217870997640592651293432681957792620672521652884652146395146476233777255661889954952065640916278200083496889042198673427630689735098501440257551480411188479183456737288178839897787650158717523977033007356746854345175971423973862430381435288204626132523694325305130186178242848117735158526593550594246758802745491657165111214317011793223809891233837745869287272101179993214221197574190298637299831309282106701660469532434213122289315337763931881995749527457922018873975058579388509069896975824825360988468346110185709831136117407140746783569256866599055081833154277063180598698824054857486448780281409615692981064764047934690204110002300607804924696801970962912089074118917590593245540951865877019366235904636419848497533040685193668150895177207061211838021453058860626061523459351001747563334025493033520331510719493394657035107975524343419933802675495702496819718565121840133782376832285631432965636445051230469648159370345735808443497596942627480197020057287598068074376668394585698130887832369977275570659049611244472157419666613921609784933167914527975004066672641353838628839965306463043114404277222906807881651808659849909482410995389317536251888300620881754616474822429530315644891424333135915945081960507032184720562786570459845000339547278188472202268658810018732416968552104070155511500409703508091120261317045137198441197167844635697543331872151552294781615528287008762204342605373795753684158758899247745938625128104156446764042365945342574173596038899056486162572290257694926137431928603274454792158293727634367569983437498984223722078512647325373397035035010335962328439491172333033841692550843828602584955012030802771415451803604913363667155560299804632952886392949555558626631804966972827859928470228064302577327053811902605573737969698391036429221411614121943093705402792678339743756886548510744036183232269200888971350621589288010294133073013087129391052884408938582674305702251945224983366098496694083026386042031351937495089934851984185731477663306448954529152806663082340841493122211833483853791884129444041217932527427151929682867542792386465059477725031239684761816265183141271012806819147466370629142037174198881910560584433187251972576814928200800206058200557576286514278230627627677016998450204006201837576798345670129713919026756011489503167042190203843650919302184248530332465441892865438391431637510121592753689785302315168592238878659612572463505914119642701754956289628800429436499066146412985899361806191903598875583746635053155455878383510715383338768553679485105838434994412355466178692674817165441359365003115545234005202407277684859507297485785591462192726908380085112985522744335169810954083243393362690924278727965454957624797999962652294870287895172883547911519094181623398696006916696905987171163012952284467043376538997321268558552427141134599619992975749168077767921456886402855734974231489855753440639618747971104272115362483170707856868727361285149598867676806416067674487984749268472392100565102563765514374546475980614368757548442242509465895834265391372907945978832918681754421039345819774277673395173552906017372006003519022890297519312702810579232022116951018791424012938469933330695960377191304483604169124236145637360118836095277687784573764689523981900686238803944801379111124831125536550503760607633659208501897302732877926108607768293100633301138574433344398776116015922276269120521110887634805211901920669046994877013361368404114682797774715354857683323278742186037597885238672098119882664295501473818291723850265836851569583077308724590432895135488674829785158000576047594350896471710929662582770767243359860613641892453608900426999464634646577042649365110408229851737372597712089115446690468103380648342218135931676448491202046516333174422718108359906213915128040051501062237018045372635368073775523207111328059220793260101475429864661067509582797075494169277105010997760473290289346168269809483125097158008035850576179778452481106831178899284214705794839953515633133941328802285604665045091156880234522443850784767206496872265377671658523629523289652629377171989020220463520352402376941667078343379540076591153526792545919190388194764154347051434791494775115583848048014606482348424083535667242354459781367214597875670682709854055674524199975584894364101839117014533784419715441098534760080129607895241993625164439790694421939698107978085808361186399974168478326132187334008416352296949446873761396215184642747270770196965278780096270030587370888092325627524605471783021639863905715415186261295841442998319298124054762887095951256774643517312938347329738368728159136571552833019276786178662482848824659335716073190627020418979065505486705788696763245452789515891285140243275423516055103948419542925448291285000620779175000947701824242222024245629038159907564223515429557104778210772428664609282049768521810348467844724698677366063923031459174429971554735680814659736293204556553941645340652786950165965342200480494410136966156674064349301963986266734967985554651258239456614743373765671440469421564345453735608108773357984731877379230922475730133122185729908823151681012447687781868319686934485506308339042504547988398518224511017870388509849836569551979457001072066891517333613178733144112608409555243552259751521863435452417011215166117584109334719573509851962197527154449451107506897527590360790602355632005526220115102961311276265889858741616131605837269293371812343894937826959124691120874504409250175347225723443103276189106148775951633593178935998158672240575763948393400746001964902124866001571866733870119860471173203743914584165907131475558626030655252691943232709215272618920659661940956445773031123322554440245049115801825384666090082625589861030740774917614268162198785257607119158094014498631954613342980926593258394036919894008301421566159005449156533368272572041066272901626740169394876766381972261683413819452299728342489314076288690531643000548910956426392859816617875808925739315916057854454714181436913516651563748884298580431176887065322488407069820077980521998377358452731636046081758207910351416784863094172695226082023737539491972242076501537399600901160338137147687271639937681785375927763559460188326928838930319078012953926502179248436910496456466013802506123978055302114351766133781092359873566433188450929599668475084815908126830702920797418098283666007818491130442730661474041517671184938311367167402056817123619451707590728819409035243812703729416129402997949514232393956994463045971558577898033575444774831031753184565883461800255190090177991054203261001258187949782006668475246791448001511280837571117483375296906344320622851143499093477732758134052159434840595448073717290928437423811214072155790151884756026428167366255404179327214386428667961499194046788121209722863957687532757387589082725069066766237948386388309802445751839801014952358671435184438179404212403516508672228854199383151745488255569821916762888170003972303035465788020491935665816051743568650344027885636341968891856499136994551281048913890199093176457722597906390190782458750500654655011627312336717491988208528295278589608377973056336597070106480306943034298275077282164936920040945159559503672859380247457656306922643887716194567665195576075528144987840578128325913769563935722863727925695250858924797235059506028580244847850706985456685051739450979545133965349033509736506893920221265587845864030151018549352607879409884128749732576699810187785234024462012704762030179627243020332693808201574330402918476031145961330362587754898107694646401618979165307242835978863495504287114034698276412205903191875027983443439898383036445565229923016708078040569813777842474797156197082674571589144970905331233209665644573884706848422748571960104966485993377554962473511021157859430032418984197439741203573541823108898455444924205812385645767679642550788857762222438151287818797237869157380059186613542181873272267896279368088685242443678872332798090501120300525780495330467024031812703353434703698638031352873538195637447152513907792782416042940807813592871013678031919638456673171626298159524356858169370621956751061779484477963736008305515293091081711535406914289699690138565590286653447437550734174157716464890429320264071323821231666982659637281380222645161521821912853450921247616102244595312891630365579875669381389440003704974088570748916836287782349865249634310998176009188922111615623084722660248949022650757016867737773516849636972299373922419726185668307521093277532471639381165491541245644392736131701963010725329403302939296949866788195651347064027259255670690667449963778123531735060950434777857513284175818268236076054506121202310806933469108618828703702051276626740651931364067357671717550771077756000708148808808168128326913245200590465316043430477067468439724305633099984028872130674722252246095604119516736365759357713113911611758843534765036448633861054841100547024810270812894158969689294502788500266652858547280850941455212539408020926024075413036607057648119957251538667119946530441610811868837997949679303553171175420088131461722069717786065356974861246474034971471997880834628598507615912496804639041429004708978033483533052269025716162509031186317911940137852295720240783078176771609583676599163981117115950599647207317685433941904871579239550503060864971219007085358053078711573479625284918786542647111690200675949658830899302788037437876369165603019171385995872228952387335892971088550687789622021940072030516466985270673748407654269668928986922392924429505790388837284706118395620271918933917325940131922217839791082805380281034704693787712047430003257671820085062665064380795942298205780187934619635811863034088241560948708142637219244790997572765368145493544960730665562040459544929245023385818073584111324210061933445930756900785517581820419398978752393252633895886877302761349452994745375061363616442263121691888393486578216997361057913754305415920865490299969600902602670674365951397489050615050259827067969619655684957762557080764475147707979335503925975634392414919597502787337881344477937476445460063863733936519391042980633868406239178333482324429653254938295999173861599059096793686475805918213548036772039614963379046762231493322019326700975102200643966839523338212653129618702054124331260776358340884434467462426091670917476129891884425237392924319371581982747287891881979100989755802653049638009877588127686708123384479597048539397670981081413704334331004187090703819925548528959850259286606935390607285341084273261537530235386096755906366561663605784848845669418740072787785139041049893229466071144198739812215967914686926656836454025887520972035240250694471190445204578068075655983690170317124468623163906622783848680872582456973607716281774898695178653616224195526474790418587857457099966452605201299141182844650479629904223518031266604070997332576364974417428705212561970568494120804904483843772966040479831912882519884007090247977303470422160700297988722826711451560543037633424939723745652597404083976978297295003659971874163797391068646454217432722856241076162826161248175547207606897856860553884096880295778068350543943960325316469559542957953206332668317641294176426871067197143677556521915741347767325869779863338091008503570123356753172226867559774966337382509173490118430840077680103800200128384239149306437798835567799566039758002830324942766794036858207176772954469650055587274599000667272125742527113934803549231151613820924644893083838453086558102571114233923021218758791948992475397480714691635516065756365492688393298296937095771646445874274936335602562149582439077138062485776907857034905977539335050545376746428100297368636628531091436176756246950073275648026785858914422758566772507507548883352822352232152308976923972920014799268658734006660515920447697092361985819529345762383734362522795006554409988993294757369677247028441645566853168283235472376016543490592414094502088597216110633050965429079381874930986215917084866820726611248566753080013838921910187258872164414398081147598190781849669869098571176092674395756396781710442017496390723321437423873695957255944351168817038800433044865116945158051675126320474857324931848712318016947718844694622948867572536006546874096528814291023111236617448809389588134072794175874946330815153965414804169212288363911679698075638943423057756544812282107728695630446132221959764995186912581337370591495795123494115242211541474937309020848643649335131047176206044928176963214851274838672340826366544043419508062187339083118202350525243557681452214934965474367634606383144877990904732686436553783977617488389020920735806495433989370456773899677952236974833123254895468096941740230647699943540770586837057331588701471135080698905856183710588591940259015002953134250649041434497052048478586434408462981307512049111563503417455590407423217379294937126995778114976622118537728130866228436895381028665788337328956317088073602984535988569682665941594725826333394914204978245843364377346069864193975041254480697781764689294274655008684837357494574575852451386874577524766802254887099864841243532530205146682644764141814702130063012492139093814055117334693041305517663316065424719629610398079855109501172075738256030083963190190127841270302573456679599578902530405989390973677085417957628039918525962661063485212096978517839333804666216660217869904673563155429624614910464508237902635414758804237680767923002147266398474671743066742355900198511995613902995584436342906636273955789561958672448172444650293695706824842271951740424111698719294164799696814861259912659091395944171561210366513652171509137621444975721760098971727220042692647684004917717203652459869468423653823123721516094147162255384503401410396086641547485776636917515005038728589807678972991333084195630353999617993033612412609033336459320528865197480276026699347196493802731237122826234940616554268969117934928313703725950598652139213197631929752948469048377697619207019436816319032235994312717456339983361577622264000606033989260617726053982195266962065269533848896740951058001509805449630790508700693801853437818166261162443785026541811941948505501658270990797156709619426648745272172179496476101436103092134942071789295773564360404013990225313856596013742472926776364668268656345631612370918586858033115496305745097768014892094689318440715184241396327468645283189013017994955899346538469913063144450263043869347831402032630256566685125870427317250436619420258753954885300679242308129247785373807537477420540401479283552177382262392391152920668891554001732318026550083802195938491450082245374882836817044614133289110749605186231751081138411516524849155131852446538854076670660497126743501518614724815385995448358218012104399339030267987195102779969983989887992762792022654079962212722636958572196512672106411214903767372391937112875046773768564230661938202686517315635521574009830203582509245603126542076702294031727309170890519975894576699042708749137879080278310870872948589780952405711175729833689149851660379292201986527301861779986944672019466380197089296592413222774732704402652263348834995779643446150137986480564281188631260965015599762036554447290444252823209716401516124429149802982047166315794735836239355405995908081650782236856135869671097037720430037336288502532572755017862067872541605156851841764426811784343110397197798116547272016134142261026101492264039547681906318460835675025684840566188934540573029930977405203064057908475689677400271037036436525730573987846522192606057105928593940708208987419659097612051106969567951310024623153909751444197103852433994307443943006511307143049720542430833964424010830202488321906871844225618857128024983067510996585467564635391771630089999024638578065999683045961643020954079228106784750049857523856524945728858852630839136004282779148525478259732305875566718888415636437192420053820942279139475045291702565413090531540810653112345171790849155606862322841044406873086580032663692662764017303456773149391371057927598383906807323435862167857422636025384836341351573269963067840496691523351701083661008962157296652367909390219718799484171062839494252310572264294036859611138608292820611148505125837894403258523508835527883538889972334954971419699551150142953093859410133502368418873348598285639457551798823830591065594520807168849649882423591187067404349874344657353100419010411942692105389175519709692619781902004496016014387522457671493258341426152370607731546214987627430147076385552843493250701064929729275222384086923088274633263915176094434114106558904307529458885334114868267703732080839220780890418003725201085088810808003140524427259640375997633040920422726596777760933256256935345364975640329713405016159339565552172615328440080670047779802360908093404898764215133904048798229812215702206662246741439545893123616869628218298578433934403411155250699708188097177636899975680320383867695563147479416190153679048835883662017180561615141182541862965572330880283143511832824753629820962478374690044517177698894513743595857505066323560840644550024395323226100207190996025078863789798402712112436828151092385017773040895878533750598635859715838734471783486354811720496290437737591501510911480811277822832220994763115698596894731367646697311054296018200398330080958199351414685283422554529909101455090943092074999557631981177912865250595363705989415405874692044916201751860083652450461516179980956796032417629838642825691303322952324648579819271854637580351357577747120012109764346437113314193996257859812793630931958121033372615990079080204643794139348220594967490790699916099319976063285426438294310766847084674566076809707715762700768837167510584040386342762399870842029202566131922057040689093088300127017326986152820480324779489357893426151464846056088618471316823766778978198725820095265838966997205573838227290294050127400657474485285260810053478055271525111891093431015667841543900483292422045612792474496835302705101249088819382508082288948681592983784919075289396727148375033318302412885271617616823422758384304739596334816913025230357119864111155960383836096332899648726301074544133103596663185849782914716607529904576547637126536263931402708835997016394104645669469152543062206015559034370451855408773708704396239960114685408742304358504701149972149534418198841650318249213128593027697912816578629540694599059552305010471030464203838412622625117549348535419119843590617203529320896089925316325501129384679024281937632398196695418562344290519032965900633224647153060772030340108906408744736524597003649038453894373907642217676693813546029239861776760452439811663698402608289328296554448487088018292900714628790687822575688934829700513820339708902730655595912722438803092407588270706798282657048737100307552773085025183269187582401060795635492879181907695244967918005278566584948396710466424677035215216384517039718517371057167117010325825340503714981898721199291846573486787509862353542512052410371080917164369315886243417873996657902339387371171277561073330828475038496107154775216299728848993007258167222887623146315215051471673915963557266585972417952942999956655090484459198976399647498782077045843766051702889732903369002386468620014660509636322440879491569691381826883190643675077967593728950809699994038325527038057557607148634468046610851999062079766688840677639420296414396743087686202088912109717937675333965059537774941324208779505704850843461639962772103230213911263469040252065685413060930895584829487503593785447120847405544636274654770576928016948206400761635247159554317327710800529273332382793319111423341208460796952020267293615827367979462971700028063609806248612319442046918595943210161937201707835304979399759228903199081275017282475168548659705200631175599780661914367809845269014981313017240375366429938291252752949130446484556704104133296323109780263747504463221677922784602702371413175876888190226055143206315491433327132485992661628299089400993009377355794572208469910329844272557735057927683912298843505124091739840303414279909439868649444297344408927803283412176414436793893665643461715402778508015176311391667972627923472967474095788227713072984322479946565321039770125346897280802644155073450947636027029850541081599218807353329704449932176437272322090021333645755474848948521249069926177584884743798175781885628254027004976864157415937363866194237047344142907382127346868103077977656504605622866462615144216950684211950352383702752745972219655035945166969104492041870909571830893261130542086056112763160123056020350839118068712831698975568856433452561262394192917668762034238901923379975598546774640285785332511006867843635673187704516423012793855118099150924193884380468820190726105775813029226506525304132183857300893076978829272400048587133224879695136712020396113187631199832928266324280910785466924101323291079612068886372339371962461262207080340055146433236640839950081580930060549843914989608379900321943384086932110992360876774359269746360625324846448225750777208495182350739918545151249522230506609474360508168345859286352484038675955973928494755217676788969618880657415457815241272949294121397455511826426049222589935802656008137825204886351471501361092668709319378592650859921313249287103012727391313592359667551371484736666496503837029192783239326401195617495825278192125998699697598675062691501665993314224415665196401846678117262186083897225744637018786581874217244865457402137323102298958847752549522902478965598119120782622533234197401128654111918382709217467734050075756158714356115064155543443431593055793260209964176807615805824608743008071810132510525986405206417228505968891118875144459486267847917619774284105738702104021984125201686824571359759362133682586451679281239023194238413948599087585059164608140750597059354457852957289924482286728309893519774338248378888087108999890426613463853027284493622819774978216396018015528167573455091102051408967172143568595463624996581522357769433695423865648827078380237594540776392524288784254277705450753190167553275889317343074584996451557368774839308292371983678256735915447545701941746354962239921761141737393863777214706704074199226302556315875794512198750199530499192376635847943104117296492036783913488314167627029089737486402473330466244684772689534283699836297422723483618077721208975061466862412955228033528379717457369606811510349451737304825148699703941813086436049756484351613723830095357308227698900955358043964185040261616971521516532161741273507393874989943897764890953421425083991178941902154061873332646615263879716981487350342283095164937274812842194235781031290189093105374023746831145314120899389847363889946471366249476334796209166897267279955501578355022702381734337569123701105486275351880062154658609326391874093945239037953282087648207338950075849263397673846772017131716438843180771050969977151358394843638279762837368848690941140700896704850717235609422768562150665162026387069332850303079355716832409296138915892646070844478944587553201784885263074860149451036224985180879456498937785614998782295749122540310667184453947139881302994720889681305260662492171383948459346440934286174313707763175734075089361201975313819769398202155959432111955830488379179940995704917273290153286862725404736028097234391386478733413482559013773308486947238563289778094139260102789511748155657364602488589692391456050580594158162689822081349566724038608147682434237537860415575484912776682652599717948803757005915206632984914636229554023729408233169341751121828911774174809493646961412725122043362255905148602284202299667443985848204661771241310771483043879716864894008963296356368483001071380058688763185457949002176363187608272045100268261517740500327982451223100203042481572753902039232147192194137934883604432834913283517701488078288869276934326332075860643438350906241620900035731684038704961808399084977561904746291726433449290941314928332868116231876557023000974749681740738201301973576462264481854474989314104842721743522124585896778901157731700334344799783850066219495278916244627952572949179400267953182664146435817758715273980996683423087336901930841413436362380645012374631660244121728296232461736837579124437169848526291402199917629894030876150595291117495805310721880401326216451710374095180884012982302144774523766574779876622858762158177802798915755169881558048829213273623542549854568066433924345729050614396697176678513806075734124019662171494968994839020879268187909378668030499315033767814320684115945514362421161672985765281367384769014598926746472752293261312785813827131826963911321165899825505077605467558441113473345595235063275193529209117417782573883120022753062216450460211106063749746062503219967446256064852106733088642264484487014817501225237112375626753972365715615411248931331625602515706295802496653226692003778241687038142426102901924213577771503610168914735969724098395649299307042861006340238505449702981748457973370958752280391435692921247037536804936804976293403726034351539825878304462883972027987408022733311783643805959654349315914444096154677815998713975092646633799330425047793713305594518668614062159231253033136695437149172333075893673678592215740474947589625619175557804841192023633037852483193503327110996753049529781589831739146410227896467514375478271175928584008126464859094227629057454394338633628003890695500295233054896467112658136668742151723154008180752358297199209557932179219233561469075765499863728209374896153310704048041568899041776839499312004626564413067729037736615405443513598599242561092863276538262918255843323659220294118401364671213347645921407161243989579313132559891719059886801268832020936402864977420834425926426634798766976367241895229086570835286156269226428660780683323702718157529586744778417622741386133673524923814542862329538024479942540085811995094227522184129645061417332455861051506125916120694806058429847672315435313435317976333820333726826531890176745498355574775336416367706078062406185956775699950231751954783822541228373908932298693916410535253953913203257301664697107390093901406372529788370091751288041130212265634858360804381291550101503590981045079465527645601710754486167058175877839109517173022306965609001004424607281098154975047124708573290444046290978068843808094764193819704285574730372012169223114208823331654675196179259851154952460840371777326247824558993005848163229236051997563480154198471561914527460651723926194775481317498433587499304951387497676181818606202341464803928106716884698640359830594731157160580379606511336714368343658242580946146548057306815614339067829084421325770173981511331848565099221730995484431190726880269953036785897324069739747014121545856925049333653803888124027988181780086875934390116874460776616594038769701617063794990610767773555445205326439033844431274327492871782597930064919871295293165651858419705396020576167062059474266130406420370901404769279503147306116676265453024087205874493596973609922865252548127462545666087528612547021036445148953074371518731921390815257785225285476330465668960275349480093600583150962327379338476132452904531641056982271556881298726041548125752556802081782130828442751857185287590420525503673638964236913861310966166207888873202094684890897289366734483740590697723711039932188518281597360776983931243713015599280968354966765662160822432121291534892208535347351195702415508050794630939495763347907966547240679872681090530114389159086728147511082218820083420283522845945295246833418496480419970942435170467316398117992847481057724298503776782210833804416356805757461517027492411506511290957134120646881094112730318972666840777651287768366804215288690893630141759721206639345908091194869235366250695702423857302554563932427187031648028007825139468050508565082831238522111471523746934543711517278336448403236903882929114290817075498657644918035685059183852867801788962296850152673765955454324158208425056582499898092797814688308271133435660835708943166874768321176279933350462359235951426194231623403900547425772947176844495223390875427692332675797814333286186282533085778675829988198377847131724908718915810858017903512593661461582806118528406853931249769083138009039399785814928820355014488682338517121919770821716347517405184511671738222646220553722019789554180424161114988829763674119043216463735131199107479484595058250716154512133544908035276675797718993920935160107532252365380638503422772099784432106193554334608990042658877488204489297836928692231070482147894905035245405246945391865706311886378550917108284754079690629519161400138424860519505819215037762143096778224542955287558463751536598358256814419517742463396524262416485075047815080853728592071492890701459306475768863571647411411008040038259616887717280425103944361140129335644921525278054517043803422118330213152764567161756626618542120080278600599621591231062756068950066606641999565462008719052126203441185395060697925295695582880490606826151935032148008344307943257521816363255791042145841839483013988608106330296905720620828114669150997935636587021027172880769307905314939993624190128656825455212384148952689858544596621805020410666406225247894201325078261089950668574960047251612889588641378746436850694076108662407025391505225339313640585884507889586531264824411718750322321041693106068558502373884985605559708685594623755049967897202689230224209631238060319773501708250108646599853071808360054191521334434690400322088458670849398961235402796537353847633801131896656664815367249386756759849292350077023458344119861580745997817275943018233419110955241039615294363375344240931841957502050793122121555366691286509679731188203184037652175695318064747127729401405737873847567728540230958961520463410163870142929115308316122403190733912930182135771599506042508279538611657098050585122472582798071036507985855151565463929102151317060320062618055842380339708746088084026860169900330228796694939797709375570857950364338047169792875044963094311188480554596193843035643881767748739370851061666906946332448708972559937273743301339907089147894900010154664528123139005750379645610196507497330505869042282196697086515012091862163552816007655894675839812073849902313475371025237839565938654796971988061473932803861897321873821089206654451776640994373669532964892468646007307476715541885872015757569535091242509653516618093742471373907914688847182205199131459617392331725050349761786004669576944094567830464631757524639958129376707059033169179667252818500697956255306946866023836485214547492544717511031970546583941379342531340210150469145828126261010821990476169015506461815068594084404419897273056999881315785487410018360910331419283590849228229824818048897970742187148975998880646184342713585450522580297164364420559706754657439572724395079458219977747000530202634975575123675606317611916991935982999495190175236240317071789219007468502206761595204092133623769045087853668064262166154176896331086114817926272685647608564741227882387543993573524918551682404548007424135956902534693783164622248757407524417813186652795853398306573975462170070225603246351708719359057629441932542549589766959325945486842629933131184965598509751991572782291233881149006488178840427538933934083720606517556708863058375446163094318440304622955014486361844627611931675932756150296798013903028062355550985048003714351772323362332752887271714086233122896971923447022076079912168634113333421269231226041305727444026020197841650272962769569783666319726532259782127369212700278741097528141893867036157967739708367974974070781604816583691109801791880507410342444997501340809097710130016871295071488626617388898411201510071704066821012496212584311495116422807292009561401786000638386546496412558530928591554592176160422754829848294180772037497753146926238610006884525380561862084325253592663106112654810822727541148337594302000400566148455547119585677925877143227505457036453342930338717676529955092363156230627309724520473039234601605024974668207139322531569144217098059413452281131795942676966597479006597251333485593156657421093191806805467401378821185319334146875912008533854435122314918480304645937263411100249498517414005707528704923946281274181270323057415724838486021945111907292647938858078547879837950887427967932026316056639823143718224012688315455239094401958191691759770059059334174444119567973737779981614090717115373283192051372410557237870030071941185167028385140616702888825011901398079105711460165151428746168274880136720587348151416881324729929648969023646184149293440366219899965323081329052930998054914171851684073768075210747823152696100312368608101592668321506122832941055182620589421276793671285817587193063950402104645525901544681400482384680336840133250595650937143603901270691179399058152811918710690845496368054936295965134674252213949178336535858947517947021139705679200608304863348074026218029932656981045778347598350268216327389772791628738995937165620605209225299165609710735485939027977684014282907168778164840438412900183490067210958411066335620124942702162060538809946266714007416908832643706184229277979304949959293483357863349585305065780054095675848542930441810651922157637009236722297657235669141742000984721658845454612749329905585110686371840477412621139660333100637134100577241317590315849670560867339924156257178188597714533739357176482848522696924871695795791769267521988015023148770851239219207565895600448115699422822367245251300693189372386689799208318186252114582221698670860498140537333757788794800730017884675682040215902365792949022872374770011061717573208028606392273255281863255999885631619283565343396637492521355048250595716160078327557647408540405237177954658422234286302199629858455536956653521046348987093338647027380713175501547108462817107766188426351281953079724296039523593075816289490309689844653628725816256960959144716012893423172201412848424776173711198593368978366465411576636030576912401100682257255699491400708352957773911324612628673324270033904901171316917192624435626853951563797339799484328659346120301924074175357447999602856215421611498195294902815374956290770031842528504080292106194715042321852198147972823273834321015331462259078590082869626611193403598440998607509799565871195161514504566593321155166050847231113455624713157734683568088336229941927146737254232187973986135713290488505813237768040348498483678812809172523963929034897544445799446748300745480173742899472578530498757098262893503708607755177443993117376443651365141800118698322985816516827820931144776279509510397497539441710121622718263276599114063459345039436777504576558131477819631344770172157987726730357545075475288228371281593775943680345085845730265027088416110647071200747795494895059223985786193894323731402996902626198515083661941601884146378041210214670921146588231496098596657845462795853481868758043077330064239953558737762419540848130275463915050783077257803508402502493257615684387869901229071085948741129051766263320880077670043792230210174631670864792380381287635173085556849438264940065639481380914707091812518033635871864472857111724807389320244785992641787548337655783571291967376457361509271929816281581171839168521042190164837152190312804190353211934369750028949804898323081997797466454620138638698766317627334870105089391737467891500376882829156604541596238284208539788217291253720530056811513573245168433046438158840818710592582227913144969994348551273293033609177941050166133899248909973187409364496751217912911731680169853734836948690912454862619425590778772932078282696008034573039518339980925262606274232164641632445136971224960038471800133806439107027512679932568740911449581053148415850712619120507094570320236980107314920878559827972570669180556043686652301453591721716321802537332223316817566370873405790402855535283770695854629660681867094068206339843458747892483791396022835693446297821392613079998508868885049081460085119275995480308288681027362352376798372305430775292919526686335231330009640006937575345126086855241380555631114620892579553317506976619608407797827494782003225480370996067636241526324504118599636782517617177775323781667315894025610520838006027830306846526117927926227608024873928949723234642307296868654165539172718860919917174726340192284677558584533840379419932682099352609190780269546192101469835446384116439854144743731443257925828255830305013942214754469356892950491680189221881739354444086624044553748349124110511158422675714006323848577226099402602816517976973228140032965988109739497844313401426749157266952620029903924965114292450437354819112739097163487285844735549404885130452745761881816273717832665596042449226256439751709627939715594314404088378582525832521416498035103499599814840843507522465070420578887554082170803080002194859833504761772150479025848886596051573547838188084540236987374831646079693648515248768784970954265371399704249017422390350957721809745288156877699299456798593238865591236984150078095801614326983791733134446889705147210434802637216781667161308008103280340891428857661723429314225656403116704563431715881392011958765803041931701320760309827347235384295186133261756955009511804519066789789494110056838132077028968395314095952966227458652264161906358913206844848187809499380125961617322029446518397525736598824158171874080927205552427177757381007594065216138962861462374916205785267852226245996732698294664101153729943597063635997016754348143714517824717054611571101757950492991555115768479620128159803972879965199162331317518616502682838296516732925404636640722431147830752977140546053973615204374989409367687639727088526622615143226688486883577301400779927900907431284235036240140731535202570970711595813567117742135022972466156101544796751033878052522017558373378080301358521287226820315458000793080511492820736121627886053184622021395857772676824304679603138382624926798846482951495390097241719594370647524693160752235764438439486468250415561255160108675693175866310576949817450216040967776110077437174251569490358754061770986653758888945170279451444693969807325166790072226974163219792296852461145803477633889350739409748234050593839900560278355810336274123894048190728924202387316044205005047518336226538936919480690259288057424006408868142417380946777390215886097551937534277557031675187302640008577416558531927942313959919146788026051217136062531651740759756582601624388524884556858625447176908213943019684475527006192383647382066417290874800602993670802786994942238581043249111460669419545426127912570181310606192840295583237782040992383150377349870624501708162500196871780849276692666341156270806211900218577500827958445381075140864005974368197098791183075617194845048378506932416333954866322874858015486112020132753466719939495235943467377295660998699720547873387770585932885039025586320155849543529173754238509214456286028440264569668130141722451080456462066379734922496600446691691542949103873947515229152610220411921270156123917737835342856385094542830582757804332380408743657039980086944279714126111938953591695245458436723908332027104561671557155993578900384377817830143009795098491462279910409836933073798186860452334656153697890386894816285080149615930217267346615746209391829043940424608854753024853883215384885456973871413204313798164209899752302204479561247098252630543731072298495408834601411235098333549276587700854398684554669481154108005416177169004036621901191244054229575875064426462955610616977942086019194562549061103542976197575363245161946329570229666458130136660649348788931304325452504581174277195233833685365299521703146590066371932216961618773159816634227967684771574937978285504172579211139564293181729808359281486329872195764798956849194511600363363225143687324934308229444058686287308215832505681948945294060369148818993655050880358310413298981412723606537939287837297068133847457130050737670976126125768159720628917292729950436091544004919626747898284287956011602934584499318638150994171360590733537248500325131524316817664980364131811097589271015312466217116628725193821434590460777371139024990824825604131802412542599539095325567709842473262632547403193754579696923627421068767467382292502509128575959172888900482638513522281295617060191774029436150200413698362321845715425368992278007298664635260991203736591040017585609091579535968107341521438700544832159304597769451697121228193981544158446681132080093226384887876914597592878072453102242758920369070107435405102014455019307718651480089852768899547978769406323156487315288077894728293603404229991053408791649581237343627744432938006921917758916340531410324102325820873870051090981093894907667339125873436952366331565344152615315122491778793973917635949363791647394091904183304508346445009359994605742848761819737252123295453575732459622100054427974981018173839232097355832118429559679649812535941264848731659257740163523447096247287166139569843030965389419152522899943173031057358457989964272860297235504454848154581632362900447337318914010931197408789578731918419776387837175870618328090440362418784067553012094433432223311864981703360304089313926164822772194985493061470289932549518806367779580367398891658822455522093268919805767581631684972172890287726013086086479514890010676571490154851963726085379567474851312336930573989905055164211805882833223625168472349595337198259927626323523194306552198425172637202701269204531562388038006698017706604457557698567250912751729986711144173524670838179414147042775111720015629155226281628101624253330029339968701890544737553234224827924703206245991214382371485841610895466245170142725671381974211230888134948699507640506210680824013945886789067689549612653853668952211412626256248303172660163970593030841122434109511840503199676997042903119967602359542000437551488876745797847735124104362983831006191876479977227151242422086140456036444760622874711695179808308659431852279489219905502271654574985094904976736717157493142151785133234708184718419879151298438578568013827693660700023678847990974504347123700915994937728718925160031028731919196136816919941468387975262124485507034981117469412179651057424952700853615216263772356951962120705088808094684689017237397261486449500958949220523930674361494380547134457765199935523725760387699304418523127603849851791294915908282509489843739832745318415892977058744708184369990943305446234857366724684795799891254528542362664129643685229306949206325989925950729217252280781078900025411427179776492065034034989293780457136730479111632381840837790063753126600692809144883606921619077513080057030332629398416117007638718747580471382210606414143041696674933961860597735433455534022068653460981542315166714142492055886277567530398856577123003554261880811813718535437707431482885459653637384572228205746259310637428898861293540439414637967189560457714146448318948297839857539290007942843154461366113949347273148103908821301426691342731210229348633546602330198485149071204618822559004832897862030210604615569188745438247552783477747051870830411732404209224312442773041467243841011522574770758393644901522412687886266967177764714911517716658602001921250997047406590161434773803988193652884763160180617500980162652815640744216877090293203979770764997895644137035764239085685934830057889842466826793479011362435881787946608282604854706532907345202892534014090248957196286251008469285765187235953548672270774690261888820304695086084388667110342445491491584421296459400503074608123268668279206640934122277041654583911493244786349497475178480424750533571681944800778876040906465333490273863053347800374242363244867184258202971214389003330174852167350318465377557289969187008305217692589845043410233329851047318931533938176327479063244599540490974993452869353485863484152308547888635973946166451036993542179527005932839586054661850808027112915363713589401323270426065110836665046256185828317410465416784603483153005052627612684512425692058300646733018737324117888771433742734828256831510009872517067751064570901460005911631981752616448690260361788651310041238970441858761732524498628824376031350669036578091278010146266822027276432331648954755410734731457374774739417509856770282856305563767134203778665154984426595542985600933415397046616334684522061385890192398329435468629474446145482367718907886701538418933597549509846112903187350958511870633556863532854808621072574156573735642080520119429947330535336514159271848731407791545108260913200683255264721322705284573164033922472900936917529906249482185673922368521765463179683145364161825394242584479036704475196287390756281927932053306906796131527206812000319785386944081001955970319282738012427699925407758897661630538856974139952180412769846152443913666129254357598639437822295475312106521690999490175325730448156122968847740344375270967354482860841598219302781969615419894176368846330523202573684766412732149618184673988581997409550334873207203515775029063137984817177449466497778457711213326484572481036533626085801216593427767548854005638793268561407762150895600846653853569564876964608690396326521965061313954976535557960804568523196724638314541534959563106906696728028278333200580597459550700413745089130827159104454918267909443758027634804417540071932608168026571329219213694054360361622797778800889205092717006661216983444814388583006223340171532710545714619788819550259592352948450930658679299537604098249599206630543286919471697349969346217276266094690180248208969052018378451228678528102329763544153114298544369662858110798192698733387357346224582794633045801499753968990673828672670172241929874087802244988731136332038496724576318841601798979839458321682479701879729251634114492885203288215566419654407887386350261482957884531883892398416776526921037405221984240363366697956999719275486741185142796670253652260989260605796132739759378080381199390267401026987996368651327209273905006958776297309352487965666493357372764498889508301497387096551735006295127927442245799391561470386487548123438133067800655168930304013969994298885577085746037863178241482051777757259569968801796975966282366431935796691229915526914599042627587595262501715127086387659557260539238528441732336403414037582077481369622261008771870408764478515975548952245885509412922767349113450509740142319215255390346489854844813082934617297215507538612390982637390639418866222002371997278162334561303281044323268169204307912386046239200386969285785230920886230119583257156956517829095232140464083705591420698578726373727740282392013556657947576526476546115460405996459977174601237016853058556535594984293933518058515671061525911179313090050213253291938252768870431396834904075671066277807383144728379032736959446031046192794015807551157368189619497473048354964317787462663952244889252472519735108193243479577747615780260019632359270874922811712567434975537615482149365119702449040187059604700187578585143230964618167269712568818814104312364427831753147055696874508454139869415095048610406269553160728566885310469134195094799403106616626607896240170335792906963928289958834578345036083235599595939658690035721053786633849471978630781409665503999839865892284235457726491564714104414730633449534486764255758519827822261392165695011349767083062184528412847539117269263590228894618542534615995973504067595314226347675105531242635955957290434671325355953662806638237421706629568401439608153282975755791287124443351097516403788137086175616545050533724338678850515836341049233616440723626419558626856491713658706899830873480089230987499658470190417489157184770546372293389981212851007557595421944590248071556018325828023759544440789170465695698726392953924975373042653298319991798174385527689918670834433534219793307443172169327163255061303604873843008933355809289820379499545250770911971090447406236407581416312488158343698710668396644338056810185020443058889617113354065498294616530090094259234945326108757408659549888807694237528887963577213108434935597387595210958130492386219904243090377639367495295555087841379162226350026732328820406457208344472553082505704083510944017643594498366117108164992375896143083999350457201634195064617923748983535156329922932644835037656860606257462444197975871307924338799964858844144492401500888661729194749008304782424012934003460811049098730147016719287114198739306752976544246791447765647941955999047522383165717937501338074223716881466997069669822228410085931266904146087554981651461248366523193312999051980423422259204826828188789005408239781955349272969842919646345788275374877762236133855889178747525836685838959564562219389113174262353685587635593182159780332462971327685313831477434281388937748214623163107066510267394288595104562606572752849764670121206318007929094994200347584231797506641843107472136612037815699532957693426859248058423534442151283117318968913747647769561561714465540157885744129190804731787434406979111878542315886126548274315352023870822153637532911587481845588266616861646823984271831718867676402749342039585604724761969820362508030765669714928143565796923423550664443453578578203282758817229618401574758970120013148043707870522609402313880637377025180921738171999251409690215520924393025225282018213246771196616917090877439880311949819314719225563221994264322885573538387470022474713887854188108160493754681752399350968458596983605965075338788949249769563475586897235811675042832213410333186488472250124327678869066418900139706943889368941268759924274866224512357456052340816150424044978267848818466136421390535347344692510373312689952295431195426811388351830713313897078609117325675342427402049503166909522123022742888228941510950513574310259394223346750831376335588498286767112527437714329961105320993912728355147788598154784329740423127188409739023757678667384609724753408053595528374203706183040844006336191087666090750091853194904041670239490642429967410010989107954448058027615955004853898023539414667695950262820603453172013350785299737458197435024006369984139701865211744447716124336154262230767255463775374147612716668648610144812233811835097588923434280178640251450328967911224194027219552110532085905903711756363271646287196063309363723836901226055651916182400910703927725138055705522620170717696140554711779046963214985935979246044809804663524385505191608432190204555031820369065360474293657439203764621480660347053281382825152181378841833485755464963861820432386960246527330787140253174099193620933616642335433649638845858300671775192475714252755342841813277768313116102071397529101639822094692429239057057893478421771440173093605617708218294245521350699275134453802558217907036830320954419920632187315536716153007159325807125608986981081836020243750665662677489370929216915803759306108909848108909714563467747704510050467266551599327518472442947548878504434458379797161603897250865155406413231198715182044099407563168277483147059065208969848977153763716938911274644616712291963862556792761164984060778686048123121314755368662809675493677303856461663677555227533312333726834244161174081039323715167270852284836498814761333116719246731338624536021116742769872044862388546960631069924364285579025467525026342052089118803170606139297175291421860449831961597566493863331239255099050617389614490719781280642488555659318216927177810240841580918879488331906854977362124616038462679941611665494481040186832538504708145278082006345185785802842929706733052142294720649409845309992431774715124076559883290166269059680340384714881413197862562467782566653955579275147386593331086463974017901797919386730339889064060432547235618576497964407709934930899061939967037592624636694412357991327084982719578717376854922568559095766375472457783096421569685451873357665112413447458246003354572852728100051846471709038269207158219855065136087211217105504376731328986656064416960430564042169140017686963150351416190874795983243069109187866758744778169080403537729407096037550549138279554065941665329513730408758551306049802828547031829525901653297999264136371809596945132940261516911249604339696201679726819966831733040098760390510344144702974932305961296172630387736582510266359150203383320106248709367868262529885833616607272409724954360533810460305171771033312285373232469137537216969213958422872024643255950697495163587890567077804599249858994284348295066872910275425549309224915370913004506156548021729885460607113634292021825845840723516014780148195683199781925692692209502503171269235420762140135360118103643398211971193158803471732087551020713649072390316482263600208726242875964787233950586829119314362832988822045227413896956922665981056083728101466019838971510471431451557524135197175526329212960786037129201576469929949342169592780453274088824724909592258196073962463003484258987497184896753432434756950020655674945263216718351079849151542125684926468487579240319651176169036092228956441447712701765505989393234074585928348278131693729713674393261534404422991922359176142787607651801683251944673704910959345173568488243707955089220946486893709049159212556089785464318407924858051381242320517613971695379686923825557388321068133772200601028438500944113099074935208573490317521024865908588299255193117183788859619232126636729236628751833648038170532841995534574745963825350378756626656162381582288550903667847008164313185156222761267289215852549171724401834513590584216229973255697450866969258882917402439743968760356517513220914060037073051594371642116492238153371816124919111192443351214370142713257429488694904726190728579883687368990248672905354002721751437261263651050088429598013373178723688615159768247693560776857177347079392042819392212732935366180164452941323397806307880800987189789426732609779766870310334603248995598332418311123643055845607137533213288339918466750037435484583258831091301998288974960079917276404555998204767341782352547538915391593874261227349402620911271343028630792713541261658220972118328553126958435064037228113305414478690524591734031582304555563959121961125320175289841857450005717259158142830035718623694733644412602983211712948107297996277196550092849672126513989413250905429881229464235333571437149735333456361749268144003898105171955599515896872014461938522705191977128273087482247418258457631198721303924877112152428238932033741606626286774666816900572164138064346933148867639145870895843833642434221838913584901163393825802822647998286833023718733551100413475741975882177833736169080201158887682864174558835400576573572353746678134906310882869722923084805856501563987431014527326589359809803499111023603693557652218437976596804814372640746354280095741033796479377861566176411636515791207389021765549873379645057302141176018949840050211905168227648660503604639396730414497785088163047152666217828678340622183140145769490044469255711642911755102360967130190013145395693200358319183512077410409288470677798519370107627705626040406234604035709885749594807672861397862520691315909209876919901525835628203804132936681143319823443185772877513956878605559203405698586129907168354500695772393066700394399737964515423397814244006581338669259901252177260891286468763557174755553208141216419655521841874760928503746196050591490860649286670857509427778918773754518468345572294221900835942716700050959530938119051033345626227230701527758657424956152637845736180891868799349795272542567748346149064745818346645582772173384444141242584954281489607167033595846386772920493934071982676589333910609134990227588837351947007353417493012272255833834971109238236484228353011171701123919155156482438675377442901998890914673133572521720353763594744680353758539218795178258106090867339811675535005262794414208076727009237347989744487816474843578048620755734107436382304955468437685154438004115537808509283685701324923841756027298187388952296912418443910885971084519082464978875532801920627308410937486425236386116617124168503437645718006290574895760469298708833716012381977864768208980456086953182048747704039505340783522331762986009265673579525263839549865272669782309210485254793064215861781255678975551705262116066872280622690776450783450034110238183876021485984601497921324132981224099104334284404574551089129668785755282232846778807332273009319828399695997995373931689550749754320920069585605144160707733256100346913273913366358382551878412353675172775010527499102068800844108381369871162013208939296856080989734134121271924325706053631572423511524516787468484027969838605410237822753449975065640601949123932112859522047921506838455757631286765333165402496008451952181735861617738334200071924487933170762355600195180450020727394686912527118134238560407843658496792424056065675274850858416843469291032923839324724066412889551653244229148054624136907555327935263738529227309603743155652275498861427638208594724327692292998646216053620843437745230301219396398434267244427330962814900603442377299275823904662042017421789943654065949908339207966637942244700948059207708562369227962983321055784162729951015122693600577195314082463584465646171266124554294382031986539787270454218927966843547165503642586641455493783630843325918954408489549439110964692952832679909148140761052167236762294167792866299404450655373094923282455092894815808688059661251862502811203714432364370091057624912437131479188570486403378513862120699467889663639170375778209262375627299065216968179038818406334694960597787985349546317037669583054797992727307658351155558159369960317322227370714983654738996017340403123312012617626646540790767694986739565887644213894632116696451876532191211117941796729526718180771118901379029907472959746209367188177192704505125943982561025524579014298558430828923800504935857055677597890409518653549196925711805807558092101402021360570625261420666187489507552110053726270228843830101028994109932654618534553609799534999578398791082262518302739055686103626857135387123807981642951018895652795547434335474921750413882545570992635161716230081484637445577908668588619097828621532578485576724776428076842442987931894290613374807180305705422207148384173607500134225331845647888767823443354636926971576982859414640217532064299390316498307924888463513694765150532613319990891672104084036258369549647661563791661272323614032086487523024645368356805925771907273261013951243713837298850164382864069680094367462740518286803635545227849911669816498872236301877129671475803185552017964124076408455624547361219653382861144235089521442391767233398942146903666711517307976215246940923897019871207305086483246602177254299867243920709469860919866155201229864528687833325889575109458901486442014925984214618918147351737647087682525712204866661077997764569533204895780346253435898901404519598505769863331046436890917349550044943402731807502800880499877463195036721939424304484008143839132025452354808155205777957072027030017699391181075356094759676330615397396471451772202435183689627837166988133213697989043862490526966481936927129525666474040217292661924205954553690602000027462766564270586423398768286093997851706683206490573505376599879376811156491314872316706349171687016369953750428377251224130654172778752107644272244753832340489287227222979683670738788387423244204338093422441005394558553787396689042844714781281824931416443836993320310877747175489654056936116545063668830134137004870379971990624006804775511824909070046589987384812145970682467285955311120553803374967384833491099966111438326280895140195497037806244349640793187853517864274086535786765394175789058521216888487030884784931342926662584418833573030744072889041948150950242295625968241025460013287920227890399975990043824508528522194379583552641792727375573371807522110859314002532880170007640435684172055341824118675209781168393828971605728598978077882430182443876785438549850144118760445206842941599160461700954777787024235827520685095281883747479347156466458600358933432938050047795169331804306439193837589716282216270092052123144391986825175720941607701170812937901239830637392755731776386849937614289959526707310191614787768814663926004579710133266894598368821010707963241963301892706980132561770576369323034813103723278076905631108445798955102241481854301571336193557809565982280082785052249033833936980957752772468275397785173248032352743231304392477842856753449226591862181215153035964865203257657675411172055749024239581282342707355667473134087481965605987635700810254388965041533454819261095340837487120457799343760322172940211631422453632247159002522353018812880555503229144585519540043432138485802701832228854458487240010299188556412306485471685053327315102621423342214097628555133082952224557481590913535327154871823086896744962761492208169465682577857956534516937760402131450155568510498918526665534333834996147061446832628300185449769628596116464788674275011198687391655471886356894809474445934854461359936643079141397409045061775618577759600948246384570853621118661969899198137849417002039375641362066251533802590918904680427231933052230700040225683911388959864599824701912776742633074991962343473825717549992668341420810757947871208039181505367170022220768796785865744674673732210394612835762695205328798422110475471414635852365010033671477518366504277511433241275688775475065455021701620891863058511065220906722025181771642770493930509558285394217832829734858829092931754575360115859646673866217962874965573463193747328720313621974175096873307006862872092061276569842284572881203542688549766876742024509757551140348718656661526535427667819093408636407926107364694440210267392604852035913085902631799284354509225635754209167628410880934221371126353033352727888050590061097107324879695421076493074274769112907655819401009028078912129632966719769768205560843787556803088698264016077325521547174339717051202093763015954362742613257768259393965991342530825638777804369902233026240598722571280173761440770084665967526662988688474979730729133675573968678722586911574376217839727138434791143014769966177349009702444902298452352504796329943153121588462983397671935123779970944299656073961871410310911857518675428503838143349702767388871205003265063866071808283320811467045122396595164966693606194607818403005886156638646741150554906587774467228490730109238588640882535148742665844379418165669755085518321814021783629175119534279551415491346894463228464959127820081454726453125326524660848048494586870524361200408917314108538735688872936958540903252990713765037301955124371325701496027637751144488291661288833182788804490444234774483541728907297876189386206102628236017613941094422430263787385931898410237442721127016434930299851681622392148989191732153806561080657610647233641716913302938574516073597525364519311957246172490855653316451727194770868882117692674874530835976473977651592625866099610803833937398958789524286500661232359600588333131762787819056541866144360419847793780187535259283207480716469692068019162938761145058062883450840708363502637532886302774170869751196400893431512345404070131770018134326798940082537978835733827161158127767239091352036440257064116522561408387706395458577436085283524287329361113704637034171359897451995205333511614385441394886707538901224036225194791698298588148819557228438160185726277695810511311219064263896207587599439882509880983373674392302633320662352418581573291348070909834495593865470505266982894265454424825477909827761352474346824379883467109571468868095921641559774607380602470347504333637314115946648318140465312381687239582336639037711313220040592906306565110937704234730726629327247047765609501407169140822404187261368567448789879873439415079784617196553287722765833993037722567438569347892039621404631716451424875072430095807600740205433845564117911503504524425132056498310635186573631004815985285731745311054223403978476149669108649769763051111984611141235874905598389775956149464253081685760351373512396675684990583245676169479140524790649065499412475379692079620964274196598578437252663684263641182946330933964316120807337499793948111028678679677438141616184224265830954754546941223686169450211595111199337390782064129126677511691963250523166123942102606875196685801667713099937155908091137260563653582181465850972824441792350684669033098001179156076764601183358801265102553956825050410143222858275772341824580689673110159245614460740233212307218625905301393998810574729531485282002074553223629721455658880115873441078335321064051151761586785385369417287805734798796801686165353944655907407048372655512894267808565889049459543999301389506416938631360701676570859082924962468562088330707966951927128688927738130083715391738665397130089744575436915654114516615679633909377214411963960637572054995920480401651322120582950386784727591564425263041525914069869740582650524991886758328268649214297464198600985356178304375066754166079812644108171086306869228729164162022310749244327445262383472313985441040697013711126918024393563965890918722499708030649263358765041465699395672069339401809120943103434448843767124446515476836676196963439930302266910154808257364690629031921787666294097127522986674903104491477641817257644297421981730990868065073889127568544185376133514994112632431041040780172864873042831367968106300687446156981378186172569223577872053621796575417427655186963013539958576316020313507095870215994791874820690976052521181793506036239590423777589595207051529552739011736606065205497052421853239161255028964517182075649437546367850367218263795557144670066365148502578016885648739590245404541382629560041073469066708894147571832909650780771493066432197628856657767762551049127106498567544977707543083617940875293461241845242942515711517638559754520084171652650219177042042029118990293688756716033888454268922376109032774341859639374204783412062131712628377566878334041040932925300144196522275299417318211783857141364052452162584121534445509568719293918354789049755960529044117592402496472513247942098683675874045383710507009489714354428449874016927050510913903632904689058117751432589880633300230286931130368215997242630042718000279501106895555810367225322450009240043905836745220645543512183826514183495434721610345954850829496708796499860709769641572694659813381499186679546569181468273869825920595911224937423816683246131002641813480268270017003663810844560020951452971439599651518515956306736267514724195346654311379871737493658778344325950898947527977423980756487670991249394773000688225147185557182977139845836772312268452521843991648230920595088104066052727200375955704441896225095306844040559379458435195618182735046664787234931518024520563248587885624086455120258755505329849639799258009371175596516729901807586238635950200176565340821752543186963823522070359952971165882726977894258360883659695613403553320597273895995172189450720245388246062600462632411757595030799722331956174190701743894975174816125215401306584709995222562364725514502719187993011862043042103783044522798739033130762809211415534876454468221753774690442531039675178630599751886410160420853206868740883512508388626196300259308971223633845179454863951351660936820264609790388557578718891528164315672007713167907499338336065847903473139258576451858338878980863962524525245006000586117960345509771572024510926286841353595544454566686808389366557124213902214751045057593755714384788259207114765524595200468307538451114578416071556428948534558890120115791062860099413061025792303707032882579578382830225989214564045565519998832882033919280530237331779486264240787988543380148385439120098176644588785225802262563225664891573549485510895623658300398933102955087697618656692013427441508505236836498749228248755829904519491270631042165282817015350505546947350027510137906744264252589013012986229280971133367530711293520011662144459149812682801121386180428387521721202281513318305681377298376128002625839558573270097982635941213208873730136612746243571894394455932627363718264594888879095252942739528488019538681209844376598738012351160242213360947351754537205680995381811172309019151823215924083871291247450991650967719065267565280517420837322213044245312331915841529107467037535532795873498760708560717291032300492448068902514027658644476553703322903716363570282691249506155725956430006593484033636783942266342433604229399903821026934848685736414691142192393352141391650963948774434131518717924118246789112110568901400220376497753150838406745642778740116067697904716758775113297645599531567298407925722041503816968457343003135444194645292656980736588252979315744001899881865100743812768090911089042189684333737681162010465897922624311306634453252894001078136666380896525091292346394847894919836304939638387522933053339180876096860900069120715811934524356227545591543545318820313525117786793708452328588028443757040263367336623619343492020755153299169741348174016200442811689098109849596485107944845545568075890459324522920524110736025944008864146287524451603469713084265412350116738528125531843203959885099698151241782673364210944778613034125581692714661751758945278570842483068291544494654407735763644403334253025156808018973144577326813011551405648830909209453303409083856097796485453301073471738664327488253937650396233656388407993604621173778552764540024748393353799135885335220403911003256079054136024101381186308174893209546590909718255619463201100200236495027523136316422107600508954396233649961786262132635595094402136509649982669658036103836332530326902173192948806228991554205052164870993346825651445780255034061110089933745938279037921889139229006850297887249286872885946902723393319950378967899133906230199130256720471746246192960268735913328380807213669208322636460341583890328068619879255540760387331438635049613010397521498709232202349044102648564114853487322958529769710870669589792348971598985555566311204865623178332302405729391805942108104162822260323554040846731583829199722222608078710664808924793164052145540413018836094445399637147573045899384767320579971490947564929987542535968979532725750412530261869180762306759250222117194680632400941737878443144830191401033376473536402393010720533564077996175741487727567763421942285346055041258034397688421544529515013006246786416590979364288236493762104950212543814960155153892257351805396242729936164725701662000915110612968651967830708972456363082152196459205357181456290214738595189312306805625666503825965704285341737742217006531681584617968263621979868410725054569171581517278956042724161486692186182863535463426320414622062182896175354004132939892725147264508199634969156196851980142088251116234399336828100290502960383039234189470574784464895796378433453567323416412052489449038972443711052541940789979060614651760180120738198813002328136088973294902705772536707286342827962673132466550544779484121547776342307113092386600893889299511925251039256845171278708492478443398215525103738760108614129137869094745068628098651874730728859648549839913415729972317086716354637194790944658515136143922643482510330798884802412285815275425835999816167029064837085994019820119995483496484891205611747110761039022752745060424387463613995326948569669894544100993635179989235538738366609664570589349400347745767845610568096345962467144843199712350128539085313005190384667745719244682494008353052183020138480021074796433760657961802775970941756330774419401392675500787719395734210988627685369591115412895380668466627749757986485654194658937887381476073157593635094688804705928830853231893758610187306599360280198975330085292991435439510986943811992609118047736469727083571495466521638227204834346726637719528559296600014221290119035267498860443080933199138301974604927859386491099445295019634154576696735763800037304517435397122083525839822411502910689462190144064721291144252497097017314669695735522443528532797764911109211275150780231420088198322373083308609647660110959944382804660558685701338593895602152425517280028487016458460687492344149080214217661804017062691630133551139294796495210146172062359702359487845329768990547696492684606688308365558569972633286553314642633128589389166945575070973742824261412108495317328505256624377798877296113682083996577322056641267058165398724640867222359287376220366581518143674328498578591955835027279620868242369762765258651592503997942047399949010221660434726836997884575857725734060435810356591161714208753574970605645950260785726963618341679029361021642090953478951994265604080822502061426068590261248460677698853319724257922379671844582544540059287379756790318728525463521039065578288819354523966497582973258111537716906685376182251856527896646134067276159653125530529160242144566592526795575937471244863925374806504751443428173198469083354504370116425818338028866955395819796974399684419197958141904387427889276029907017936100682352983684204894944171568150859688536911474052984828267523464786184268307726567255618004030512741138259008974534075330736087214214052998740067146274835153690685428052257204322051404567428223706102727388260286429971850409119853438338467975199006807427333434106412001933196825410544993397519055953221863396880866405062720566762722333663601502602230784521611782333742148951056629399289673124795653376506966040108073160612517914072397437092800863240769913664790675608372203131595068777064008865710669163955312237184715286254604968941488888237818428811547562394606868811398528590217268459617555547182225024969063439257893006973156920304007690065462720550229144786903563092727962455970621317906786121418238974303329611126511946790124989173628540734990167728690992548445219418918509721632848190963126934677115275986669658656496975138762924480321760855382665715205886174506363819145545880361420701727238889606410934016745749285663136214924567222808223984434924559093513538046754807668695533839464011993961710052554433327034628494443448765576293065299211105862241931343935245527730284380175884574917254594284166109226683783857199083969806326943402551267125266500960740966574323847054773931102901836356151685692993564540013896019047053800411687133521113425597750470977367577300354730490978367588761675703222531865427709648471816021588110832936670152791932493049078010859575449063299301590924378056543095816523982997238436229827947865574270973433947530614859419071109118076837937363387890820041213102393048620563375810713679271616131116782600287639234673603162331879233343936688942595488976582052791319670614617292998612187159802746453082368098699262356280130359895234792061638358109135679699127068463355797063902565500695842748529392795212477653179326988280576249697847143949491850199401847359489736363543793212114275500855172759537708667156642672970676138247097940525425748417309430008325538368489084317373284648723510333445811680617399944578948132058141741805513650253765872396795817614955410681211728736380182331198225912014795081364542188917139276815315081119707772707022999738348034024951422934893838630679452633954334782671753188405398956318762798454252218238301876535299415267346609403883610199135717040014800071940495959229566119288188607583787639535228857753370294358754311522257694355259917624693857936242098065757593948464782142075819254979877816226846546664161269341958073916092842917589276014055724923053986098613382348613347551756935515320608884885600428068594475853642724111694326285320664953979713928604253483166549628070805179147794698177977357293279494974114800499720395689021439717281194713939738212692185605569338675025880268385291760565034037130397054924401878687912867413292775094134465765880566884307882432973206154971246526669864970855678581976296819582791101956686583963356766325006742096344135773291408655080451650031042275090285668631420767065890756610432091213905908204275679451679824828250541179890165514816667807503088276595567602994197325352109695590845729235654943152169972452592347642175602862339341437651567899802145055601585891554356649152169335409693559322840950355136912324787992585393840903525514089883737555691775730492233739677531507373950316668811994556499166056337655875256010429707496112657525533252591462647658565798104022809497252966112527570689896040518824109271668780034419916519286022488714037210394853066366768785082682385748055706464703097772657670960547682897272168995281123570012150776599178573732871814225706918485152620372763898666586148494211544734114832863994831114353348107975017497725111553175288723540510305831916000467709352096597918918067680309738614265826770545719610594021268762175331969610708442751061276747112914240782829184353896574792691883559810665142447756244946723767954038541612224354079053419118141688373487839780238761950720723505145492014239641565072450714996140601600761189079873946164724315407332978467651916912636440477464596953818329177614054407457481813505933582930417201839771934098124332188107891714684409199675357662766628415361752140984357011814990323035413663661813752970802856400653202230021378143829311626219222322009482243647419534704289214161343002565532406785997131619800256262391442836677535092097101082430638907497697585431645747642868328778947358317665254600087880503260238310006864898011916905176748718097739051673815971673857719710446002129647584921380778570193204615881852515374591090327587296727847565436557421518837609016056045673908008227640373665558106941329134662881283484498554092225684149615145589873824494102309495956870650843316248824196133367045561169103628313922684694125533766325960698108436041520963165903093097184948894959344175147584270358502014097627856415590824734550341575437062386478028723534539476591093778634587312411858472904843024500728475840203766614473488389668793406729279958777695355128165686893760637349764040365961311462273059144416872965708736678874839034551933102982612578106052061745034990196361412716548129894642562558812989847298886371081848281213686883565813591811467078132612670056869126538086134427077622242226784732708497531127876329183945589299022798259801321155624458702068177925520995929251076020047071195996016613135065365756246519847864906008879372929295904920027917366614619689600159742504337695940796568302516152261251755444817813538342301570515887335576811836865271616741617766064849360823670866434885510379585282334781909450983053145489027196871886768677107186783913169347133192705942092525627754462363490456532530429735633629689130108010942429306737278992633546555175723091689529229674366293651935050856307340086815060891115708804536442947721776433748406407598792813500278609849947409846148961648233470331133373758738220724702871333303454226280164539185192372049553050750242314727250914925723737346859426636096900594108091295135763813958078619649101806752860952709053502120343830614767173150690623011101874769778606425010876579667471669746104851576590361514293470097638433065132746680015568735114377287238956123129824746969315074514029371316852601276264623596278812363648380914280896125152638290731776652640494566508516457882250328516207613649690350307352362830272834909983409822287766602512760401111623095091802071266028444680296425635960229088155539936209406860728844365740540212967123954441229939537733757131278044610740161162678573789696888761877190830244890430831734687853204625893344796735249767938956268812608600265979593562673768905175888866069599494491767324655613124982325265456935430299897010762911994417096879071981420933416408389334588558251951934781383473501398649229886376051786602492456909275878291851231550807591414780415673894099177076188805072725669001105513619836597077072646256785041833946257570245417965091666341183250538943424701123445019765848781944969876350162689560881595856723665527069161015771869983993922103039111562979031761720466035610379090326270034566868106736281309423165662336774718594306240229540049697997876476533004646718532443938730157998445346148667399836483481229409336684868979677114218681501417663867111383535001315209259911437680523082072078030782918318302018456415306383199789625726425830918973103777844632359773604366269074428745661990912775455251451890342005452103355846384864072271592936033199889870857586407301498291773639403972199239598659726586183938774117171260362983162975503296126124499945297405864008244936660834403093736038162907464803582979049138039113911238222340009588762328347430964153444366544681506966434685999160689662278169666665269999116681762315120500558654915506913620569454690399321992659021891772086925524214129899811395375668037650837404705036684844654210519450755626583798059947715300983582680000592746239480618554214941287504684367713864111610708665619525184929074718253193164726510556299308342463116930078946713284910477807001712283375192328253250667154779199086840251501603243103983337697264863369486784840029625462441580240811599850554766400982283713335190714561397924391208207597624088799569768955156381832428207292351968679909375459368798233923166166385885765062793624815093256566095264501341364124149316064511617963151486924484587074170068618775209127466731950743849273065495771896189357285500247752297042701170385385032930992749170161939600704294802826153361612360395305083150262178126308422182707287153566010699271481188303620428273790643492212943435574740057025143879899488299066109380533826354167927154058274066906522484615592313051108738464501294180679351179435414641146527056219133312266480331480452743824808516456624205467980554480031156043313623815757143707783482088428898026853859174744328788211615065812503921131469524321808864787559566358766101161228127366652340086518289948096949147648994861252855375566647309358797624862229597023537346292173654658408071834023313065752333123697944179197264897954992454221380894917924863285311191591911501482103314355736392482280399841786351128013445491114522227794100488898831779557641884459569751630266823167399333306364158742791303560769581199628006693405844436878986988213593522543584048010244679969181544747450338495105715382171621735699686983175491157647839021450019635399290831830203706682121707119604114670395656528608787648336466711007624724039217869219487632825650798568382967512504066016272692327764430818550772336579184566314698121637562229025441240584821366597753775303779409335946141401460722689425919347652254850306339110540766943319916051730656902962122319002525249408619912338739564112971509206470746398131250182084717983563981553176437216746597114224340557609233499088749720520552779658230430312569558379647122533317754754560520234512839445540571686407276825071854933440380334234087586010848944454312851786564543413710413871024915155004708335671693449811586990737696171850184471308512422697841493589889603389170265810726631052402450037555767470746267958578225721006944838828970763919566821474994708672676467824000848501423939462511401463960146809187930341778308959352312592538963182393024554450107097188466445283216484658294578047486010636619895466229878242255389436987456924430896733331445088391908961456555583692424551628859651960682956772895934672408579900254300135363087225957114274057246712024281605194682631989558211147931574251644407878367616598021330760462184846058227513714206972261854792083649958263588692633746527575160616818900094335628173812772367247200874596258061156232802886702771198646549532849950562782696684733671780079428033822542132309776333800533710831721810598585949594560281996371131428852236016837012150666345320560245107771909305613445057012371231615797280966939470226008251754614081497097832331904316775817837773417245269451903387498673073795537230003923354685045779904847209328353706550144682240219613742607509419716298716724900114935175863705616584844269173528442063277842433219694243048769391765174752989847333852964950378596059332845662497771324630889989591994405776702984908292342836543914349457384368510714462986733812961278862151814776743602619848513078114929277894237223827017803748390393954909366050663424699971526761656389787320001996052732334541578310887777819959873935240573412570227416917642844743517897291996360709606298595445405282323205207515657020679935307444262813866729325267515260079524300394701617691887942525938571530753341806031170799905665413405181108275933512790114807904686750300453502160707000136736575875032149959507386242118556316009341977421909911863194892151831831472898189449015972378428713687749967587029373158657089826840394487698845249289118559623641628783885562403386930106185040682146839814299259154955484015390771536977302513502401027999995362964271534490332608973111201396652487994910525837795444498726897311737929899879323588459360728931151777740296557165000985071715513203057155873760153039165952602879004853941018844870151033599142156804256435198443919417525661269501783179448343180110607061320767335880187057895307450560661842606216292369129811061247179662139770131777571783593652216877079527792237026089465029074532426578313903656604641233008785837182088770804758002273977496074006639469779152743229081544247487741255422050763368307249580079773336386447987125930040186495962468042784681530426330044886313520269082662841188739264286237320160562713093867862627593466812987324606763993355153366629992257752626641052904725459109167583880579144524723384373331919287962761818435242663974798154886069076211291765492103041959098861698688132605727635550110332449272628935812037038310390518734782106501689952749266365201115465426562453023193247160250326001960453244384475152031011477907539674533091749915137349396589999623147858641657523461286985536997705415544952578576568500985136054036226084625042970057647308589044859117307282106730995296361431996325130928334730690042832201041687677707654759619497796714314334521529034405123761131022379996991202811891710057977998117380583839765819296482036681202052691102275556157935278395905435843140757925093612616707373422670140064505749758513721514199325516184992712209775633438201326953323077188262676105942568979653606398624034701639570104535522047545174411781115154090017196643418337021566072411072803949994133850605701495797874025874258748315628389280187012461685714970779053643266454947697228434326569550219325926342092039921210451904783819904498507798933754997117747627928542737111158256763490024836390095941561063382488730028303944680783630765667670046802334489775645832335530023131846377389821641007446439479567355192106143627846051477328684097178799084766494173580227238487126027286835721543507974314130827251375625321489251565356353616551721169860716547678721126272567101215875683245235761337549150333077204055166991543122249944274285091483898473330269997835433099319535047490226965218560599571046793143370104187088108935124399243342306908995253704071684188249221395304061289869844511252977703155522214744864412208583392396915000090937546520369414092184571124054864495164320902856321871943051505487504607156252313526025860864166480968593120239561269698749747541268884952259291047437936817726509901424622117475566841078562016654088488916394371194818668226463347455405980553561762108158142312369718012659863223052671389902249909641800329655250822267298249143327693544256437128418355851996081466061272558669908016264834629879021369277146353954288078335085036332707083134788795728429318735716974330893157608081555521804223685901210632688351527888291665213783262885936213246492514393079959790309730290687562158706711551565563708670131192921111250657220338071827881943046340769416454007914686747538159480042109440058670971927102295539442867394212952504608557422800576344641064450099206896839346828255082071774086224241187815155463526676991882112652743560483658313191809351747116773800187756037471028793561865968746892824043197159050501606511471268375082040459131211526094528146030470768756302353874354448829219725682237307874183574751610596535789628501637544048195508466985372470099693628035691091464243072257955118842121096435213064884432991856601986747701574280268610845284896531116973181700461439026066747781558613316196212330670977453236295415388579382599973081397981343445855001872779888406948559967337998569817122541974311317620671260275909853580911503129772366406970364575128720001696476067148653630614748837849165467914037509019894436327531257937538564258533422322807058263216141217356581272786105896943267462226938531887505559487617957906653573963268031945795195302546208329333145375402450684442204299839433867036139060469649924417176744130235595106032402429576178818737578553500146531311645930980436998274219465820065792163316983277578533048886997421721857563835762799706355633459429720922296832759782575012475682420399406419624905316354158447632485014803845945965362822208875132825552161413479459638033389280491696917787371908435787253999530781300420039478384501245815583844721529205093821813155293380608167139650602622956614441622575157043758756713235169913074629756102974819229240649943590537496557782114570870374201755125058056949475694832469860275689825163802134638914661204460470785563212216444397600655420277575932068073928367630550027468506777007904059869044867270763442708794568455927729806603650942511759655060856994626340673481415133949089159526537299624957258547588316277856647737312432580557459004974138436526628502504665820397196948672947217460896618335482832576086156285738393258728168649084655936648276194095543739335895682357218143241422558516562934686493463963199221297817315998118999858697579322620941781572951708505600408504069545162195460537650222193529006636870233005491381222904521156268224956703919353873392045376669368686209113219386513513458974615394451808407017907386526983021278152089170845253138574583677460931561592528845034769708705404550104721342603383658953040907884437568825028979048984250872839055097502635976504624793413261526559397875591138161520422846274684199481198273770552151506498455948290653644448005190436812596198696803716605621611442430086180000454782622375560766820577921893921258080367659989969257727016439886330763986809717965095073920774612560427272147034047423688194589984316717168763954023651656582979491511468393068375924487707342756369653464668958298168611218804980909246533464541573274020818898204429656304689839184792989910221790640295447186906229355482561579191492458413872462959902641451600196671470039160143717874771364145132690537662115027437924274300742394096516147362945607748559825540808629139534587628383170635381425194965818302774147892318666593423061176992369682961667836394201666020348446498567038591082292218972469682771563891069955789232752569295306069198794670254901795999206316359496749557501811674339630231957168551126319010497763415073259492398579549092124714618966183775805248725075327282577816314957968530921591526432060524993996303319904694034376645705182777668148104613061112759174954486602659098927087795785578792517712428279853619279231419495867079167650047046723730469424625449309230025284173184407317044244803663632343201879612558833086516512738072593747441121211386116409557898251347184052874829303370836136332675477883871875088040582374936225514465188800172259046798266637439542172577299211231921545438312958490869710061159515621645225402689548758822725771357080824705509161476592316510622722262725722607378579167468821495278276331293026642426430385733310756981916306747406889694887062775239716191901602686023426074290051849333543587118840096425025676963038813935271207827367372936581995197001770850514129584105787770557386854206898438024905292468655064947028630672952326396513397012236112925341752984129415212386037226524781053859943298839055277482428076504676869420448587513858298841591837503493012365156096739996288752747494036700781411465239225107254082405958132045712882700779836047606572204186357959668566684373297708144350989707863201793681028995890321062630400870906631703564155309862440891391336279505837158110606124873078673680320163556200409031632852555218469234804917438855674997406391236911224763998784481721959945977626014028232665044479014818983424017318254822946583112057591013223677961658958614539291681076616809572742227164153508577061416557560261156024716555010313612417555161511063109610321671722133892017740675998677662033038421038817505681021306791428023359981229127317165662522729410797251841522693041300758487664286678888320937811642519276565904938522479531855950864183939460158830051425691953930192634594650907061379355352628743165951122717702338275121552922223344643590161957872812214718479393298709488120972836188482774631758601997632977183264501772559712018361235050904631111862619212287653274299960518229414810687143716673326802038431183289332257813803269146970396023238661122963259629281702517685718132572635292482246527048928338177789484121462244580161323815936533643700969337409159005143610470591093232364516051726799929198611503950940896735279295869811518532061828228032028886961131753893879255882240648441839001078016580726082514347478401755166548396128418680645387522421487721163022686305420867800693714524919228027540857012828485078685336532570893696956564008929800363797831486964770656945568292576053593167199472898363654153700259766940640519917136148605602725540413418014962139594628281534865720649706263841755627555464509905179226403432113370270040572774882581545444398857211677240491856047775614982446848688436493114376176218865907654143483485967609915295105756689441361133628589050605317200378899642264347532728561536559423418985635318932086930567466022126513966765361915038226399348544557332263829255278953513915021422191256750857540223280416577052232072423134273908486190595457786371614196046060283808681585707854436885113704719132299186699752631713919792263436278208342062178821391307184848460378255462471774936253078325243027098486970671357181955028474879455206816326774579816947335515730212661260877258297915565956488213476081798438236265643352734952849012758245751523451256840001254480622019948812614980002184559440185586960782365686645134089184563223486084461508185118533366211494813633387442957289689285189318117463364889474631875621387892678359919119034517684761982382058482230578542800501507159790306601903040416053565007843503960471974515842715696455995653074721618268284479609248994259193253710785539934661358791452231940238560295455417177271471360626137014412731598296509203146666563515191427200741572552738995739269778664639562440619225983644759628780811347692133523787949879520277612011873551462021750003561410083071041312318512445540904302572999095921247681538970733931671319080017972973731407549452347684804321052028279912036722683646675315522023797314051708900747181661899660295057139685319368038879208420434287766450918681700665956643886765784558119331026085044509064361768515260729815524495876895504494770804259856275210230903392437062272822860851800203914417730575847559971468118684220369246487132903300475562617580393227195513425241304148574076233451908141838041724701580304261437289637463069755473747064694504456877200642133848036683683233279451524926926921298798509741221191040184243438857587454670784664058473425112643436000062153619767946315788463689829464479987791769034149359077691333598087742399027055244744096845531681865963536310867326603757411076445435231903681592187802053198968624468393598473045386092340495214705903505243105376540812550731718797527616313579361649963050848944918446517147449729547417327466062504355112820360095478770544060124609251609306305413334928689914300988904574447950104426447669245860039041953483055087642799736077946293381413488340728468019585986458472285195312488232367114889041933154321703397143971963929123102763075714266274397746524072093539188836467210654356759069485744442162942019734828862908279616136946243309867800582028434337115714735836485024634135808602266924767429683122293458264195838885941533192636824298014886573897268432801897289361453262924619509749640888578310897036535891652785002970736044983521160719051842581342198926984910667734411941047925108891364770622816447004237281233622591604077803644901640822585311822401162374688618313263005930018317192278723759923837526816429455614261078913140793465343388828540489709208193727725189458352327497827813930417704742327161825562212516065160512463403485223835937074874864934541159372681819108173687426938624760606070547050045596030529050834845454717835698570738516271308754945890877808882614211904885773593993801361154656110196243908649623302217242794973924383066213605689502355219774120192520296701095567146869663285531399091115865628948268962046549916347757208465149596911656217387077833974395033683693597317086820359209935722022830000999532098301395037538385747424349459491440535204739907449688303653027853603909340259656126313406089360914297874741992672061810423412907366715443751977372730922829606787917772124013794743152447376550207932754227818026092397481617009393657283649462097566466385722035049209482096679543526721338831451590317173687986482748268938159498660889345383506941462755570624708539658308691651807739472335023229078533708738382490922139767077819902925984041265872735089381132219810660930403139610177757921340219953432071761182673427110455307984407235239187227665455923891713737273194511415351589988848645423770353029950085469394003306892565516880413638587772351051058289440181215466033214977459629941979141932417821917689842389987441198384258488918445448221592570511197309578498296825404747286799423797710240142982638268021379222521409349617873180232093753305509756528980209504356516123957843156906629019087268144567937559023391825198975431791651913163797354802645000992739385762021479950352430470791178030217631433282517486157273440029017575649887887252335023162932842579410012206860392681552043310331410024867881178822776469710353819656622286984205904549722422094105208004330288939151613844790795831819265072170469688174938091565054997215476276184582547439055858088012512651193487127396771941415086390895684132487734439060178259215918609755099121682599655650464826864786274256206042082306294955894978052339878274886451649359848885849543706356360937631805905766180561221177563266436028481712527181015252716163090322265861968917117577513535916808171181228917651446201926099042058836009070352161876339789713438661103765173158770502955588507183748972412145488574858736356035163367303366946720029905755329585845753267818342174437541923142829591099505177362942001212081713870580356029900537872548019185198354910069050541981279078861106638474877423459839055894599534141639215954078085155160862113450465369539100002173413481704360417157398391510438813066269711979534134137175825649175896074647000054936106941464568582603048300026201149510990242746181791962189322519577677145212052297092034446701257204644845090296272299180851358328307888565029382528702434411301539204491701304562088843788063951698771694708520887648527571420864295481389729074144383490727054862744497607211960129225819297057149996425621673433667880281860937848111513487854670598668876752004693659306549131409847605203625581574704264667268173686020985548867451078135831291101823699638985247674871867714651080366783930299986475471322033445660143578081187904965765131018119229340800271442030206801710507875784597079962296822108666083446685594759145070508439030204259881855981517141594991732472349280849073574280697045482993148388944380746959252654331694524190574876910737698909488236088243227794752502155951395025103171001340232779592119871289576926078519041581901701325207420939311394355125859368446931423171862806281881643189761320008930823189143639200143813705163756123560889134174712205198526750240923933609140082646104890642688139759137414391001613816497165810038091495144939449371859623691916272729665884267831441878285095186982836589110496444598894331947530578907972890022959672294927663064668614176350499998617266965529111677372826619358118875491440620106188186405422971536258476187752974784035810848704566081866719086509620352986626281625287625586080194549076415235769643350691302260036391736989025356561476991839599651920656950291270935472371966069738725140098057374068898388460790718722028621199184473233643471173526001382966500451032121356392701383256102952288719913231692632588028699871953380513628692452036158721905971712868509380026125365613354526770438382157834976423566057499321819455075288086363915943073358797842764384166979152918556473845714918992390162413414572642336102596215913301732586899695587543186668736084480163086478875715233709895964971548418616959923302788640053027461217476679013264949482357883599495609629548607001672043599296785784869027639087616125948598695908438892603040259115882224226048295850213770590535102641908405080683429857485817790198884291119052946666715293090184141463910556276879708673611705052730149317236078100679444028045812208490318711889939219669332308520039679543446348733584162966546396135096282171440415247591114787673802705601550710452979867028903848580269543803886551552789424673328085678719056215721283132852660311292466089956155920184234416615338239083472359506329098312640268698141211459711634596634725666550653200144071915346404893498347035154907412186500811581344042512263317922209992347042954479239748212539250604519632967517405296954685415309877075351375991685061370145873508917628027252613451457679507287284742943240404923113446327263280651351054725700007678357839864903618720921437326904034005108234809137913070624926836541273354446357800901596904786755340912239279700869667183804180337937630413533824412364682039290774553864975355210649859833314952045637304684648685453921554267303209924396359595363923280646916065073773550529928107161819210768823729754404462652234851960561858408579325168648644801530882517863477003627114255139452402208028042232416294653703468512211478039482239859154671252723918467956624627795178435950333953275004608047946314724508814426104423960267521835636195636729013956655300087012184514476283753202762209754136139252761790440911601933671527801201045486798728706274322762273635966459672296100981327902092304161160787459847647657542985099332794397533634943730110957382721479051655150394062714518637952658249395156438815079860545294718349437731873661328122742639401662207889883899476660987008395168520475194148110367501057881780090495188848494011076623347866396217156321191595272427377557539548082396754941228637680318011371757717503872406231630126899349248325425963339175656406355166007257435292882989884518387051121553977679284079463447469949912157506212496541437812451969812987465254592401973378897339114784469040972455910991987637086898710547737727087856251085533494333206868049587021213975339433996904112410796277797401214829783070835512802655330358626721959877531651853151111473314727948178094323490085369963145806342778055134548351901006437891908936164175739545036316567014298239405100646765319186542761619373563901581789425988519868625483577743612058310627073073922329324626757350038418826765990757303739972546221736579523546295086670005674733825044183018541637701390950095835308137751528437701337218869614198356536568023576563526179741103165377979711678685461861498267400219393866079461847820667011226383164176437113335770137414266080776275701024139622033646465073974606120227835573725665290716222145273666580117626909502503268662292813176171805454284855981082408112937583446919483276733581788973217842722670110901015913239905721053958757236330870759600964099244268866521405918350664628412156780897159107178945115804451629630925623621028223926545979066669527000829513352721537788408592021836147689936583906307026743566088967797226634084951529261304479358025680698972476800042735456414647676917143702015072099602157954477869842403137270468990833342558731533441303569882654332378721892027572125163769555753338536480262196927428899368424171701922670362396995861272843389945547062704342911883215445439370952591948971109513932781757111520379245813415230487754016130340368948840680377921798956017129222252386765438145905368578152727600016804303079122413167157067776972694327925066051779197927657402619576184511356604692403540738284650091499738634995596177065976253213506281773328767097310632135598065833466515862627410668008184177258722018460426551597184156287484325358815174626803406451836566731566694223340296914445956671919892137416724032216992450355586085470576488598361270295598562416556452185860742689599646849368877501665951743413776739537563134857143956114228116684548534364480922494687514540090622440984349267800743042817345138626353758735820541272526160199703954900456588300808909968425700476528537407342855086920801950741360035772028081142398517188316843962211435562713148174160775017165432463851402779983903751829233746738020396488254015171717277061485586182414384648201075973255474019882970520274732245977042063095208956086958979587454524701429874306774477544075140969617952565689581048244605451013964415917694905866429954671541280774830462247807441312787836681970776469125115570551136492791219315363002583321915150667693255456980947559605045689408588572062091688648110343115407458108240658724249835366992839268879845450810098970140652894969296071814332322014636300109653172207955626903350990373198656837316505661004401064935651334609025537212269246824429142507251762369702227538319062861418464066676263970533680250857796761693276941404055882471438281245449373592893887836877620556010053315603173109961222890744371099819016488199687615237878505493002796093550861306930129998244009901214907254381755834757058999685580190366553001255532661470445187298565765940847604555071474575773133992614583594539611807131444679692448909355483372216942914379853296124564085503029786607973639778580148353988082437289172278975234057168585796664270307461317989604084127116664329386265133689427514301362838838391983323063951013372258777036093938571129074196581521781049223069333806808024380309911328735105193113873867414916274708204901364225563784687289921020483359947666361474948718297200510236500555239265423076834366492249502711941137360114395962392710640710123000098655300622881053102075699724375484101774166125104694320694594687710890784029194952470862775951810500438832351272739677520248008925130429272232853945635129479842802506952913433308553241038246718567311001338846035227919559364276446360520179587362269874107802957489094673434461128415962293823079668495363629729573667837753546299088440202921228255881016464192166719232710163870336672981047134363143323837791601647725810995923729933451150541879404394635131249778249530665845161904147006785914762630488022742534436139805879889290304797887731574810514923714873137004058398080297155751010478946143749285326250191210035239512437927372610328375353328591570111846706380254805808235953955568801113552498799543677897702714951902285957443437896850178602082052486177660248947729332510686629639743026062070705856177304316103732442041622984715640809365683134063771106981486959247349422385068993726503750414314183986695430070379851120442633447560190991277460537412208959500041687228664528987664576908657481943988277293818163717036738957864076946972301017098793595868896772251339463896692837177590209507788170939817363414638685768217393439599628192758865247272290499474743375126523257098637350013936235649183539770190511205203471967161224381220947295411194173290918198972323665118818428355984774245640329734219865658123598050966465710434457550145909506878742220873831197659595207494833380049374619870717207622102865521771470593253230493834830548795548882311098371926755384039045957854032722234302619059934885251615186954755800437633025688812847379304167496415752633034298150832143650271983459277856006022411190766606572013684014039686663289812841926672125416760164646234118470189568472819130280963978474086220090521638486620764042453412756536891124161742820387251093069906473778356678697092576400559957108289176675515191557578305009917241569417017631971173064103103701163928138760855438987198680229824060330998215897692566671480335772931868998309711876322176758800303486724142626107384021507726811635082042136811796880652561859926896159848640464721676956599898552363549396128828819221034738930164144441654994021822141238598587860848895770939148053582897219859982776590507034644013659640969673750318669684520539270919641132495055952513206661441664425021313874201673479746385739252227263265697901889496393031213594140307709180561004835418476118900655492767483013487141001392567024414966677985369350715940420405988762743250103028824892165916023635808970169643754699342781147713846408952869140280762079426414263072753599849669667261654921462953414959175057106290759492489976511557296351129684968248315136946940524148941932236202089627750806370376657275954640956672467519786331406346351606459093009235894575957035553914233060841641771570070687009089877470822445932275295604870999250331937359552512291064141654168584581980994278602948784625220568895373843275377372575679665000700409180050791932241098503365430710077936967474652407820841732632247428727229041957231634225120451045893282063950119700921224954327476641172833033577496693172453748279242364510842847305392378969665533688568369467745254739281157511327653486756953378020681743593453523384300770531094717424568480028856714468406495756250159070813155866883690958831500532042372438313215240936353577441835406622976008783959471650647435621972724026126698546752769056600941190081023624094474201975825369366747433887055534524844857118971564854111618576546004237639474285184347140388522443817666834272445215718796114737668782677516251596534034995714995609057308127009672478668378589119252646515091380014613086376779150735761730329837145705380223504717191763939367761884814620978452525165426741344118627633781472490171668342296607116446718117226516269039134304070298303563906541744726672262788746950222157360481175164527331053007772429008424683581635271135614588927684001348546958869259497772145050959480900065370778941553687058473189659670664169028012041866833218507504357609596923866441393883414109680492778099331209942914345670727408685716180250367136411386426195515817756708697027909920999546957680612297577125710877795912801931084257556092210535011773651379079162591312687469883280510013698351971449973942403761137648070793814995484487250759572486791231835956718417209276086782887404627792877924904350999610372417407072462041312469720113419116725168621386141533056376793082235544346063651077031130045672765726851511367449113232347135898210376367893861704207073686430709567560445014754464423439048784013991990929525755416581994335602649990833721414753663620737809462611315463621412133274070324708456144520970998168666077423332735161699063915838421972554431995295292213360306327707374935196662176643198373078301748250017318577134937128719312894309964887553779221728469985098479397922297836298628955521082466952014626058074782053260130592594832775181443385607105664194026384337615182199820228899691929366111267593767037917059451502215380378922333517695784594534988814807091790318782699815501717166531430289486993138198087841704220724668628829850684479191117447461707669764528044779194774650969551839126930390274357097803329338380564357469125059193281141692161215601219104660043823666261449070993655343989432761304192066202425737710640925271676588730161746030414722042778187936860809687987941913330377028984442915768751739334547048063700691722987875154979028480241959896521741504159471777053131116582921646599318457327107701857498004784119042240029976014197002170121337330423624637507691799606918058747128393444501398732788972394089740283642391715518522295170474141900842809245161348048976692284947150888686512810988670807074116940004087150695474281560465741402671455081484208902743157422008782781132831328049339079905040599557162514476850140242112257984156420197438420309755721461069450438767982254897255258027863880706949609898692767316790028729844269325607170440889287867995346402312176694150236292386157993386792351080684130584174359074032246359522759064787866764568031946507841910049564370328586747850178497381350605282909098906095709764251309282116179411879414250436801451187746464536785177889649444146532360948343383657959396031311438957277848790429196753689951385703631847285535982888856387531543295052688890171338640009255251538388750943591996858874153000604601409232199118476674721454807784525250556532201450965087352019510611709687733490232663168338371527989019308380345886901394373841322630584740750642862718540573166352460310539792663076954915525701442183092205689347797487429359956153669423494324566829368429365961197581883767697831816359310916880031958308702875847997494528879564431245524989818097958931379845505022676791378523515280527747766044764644013600041746045361000198139562628609313548305321027987471923708327860821357377587345371520702803598345587114779714516197279137774006089554062360602243016234949703843698896184136854179841080332941469272904277627709498891820163352912841910762683593349516797203886756769575186570626260313637229543898476272887101729714735812971342661464551602183150125092828277749592137922927695535769880558141787396833836624009600093596752034421422872213185447851282137970639624528306109439410155368600096652152022351071592653169204513873457732647618974065169606497131077772885003271739284994629301225038283463305977742067880947250804482380856717308293761524700001252157305004756967632332307754543648808580308970306117942582521040120533977308037714738170498834427235796325191528838301863267958097439139496002542106989471011327155267971201501510101364435183595845164547784660540457531339390800796188299574826422805123324911573647722917342170674120138548148266960410138523517101590406453075496149893131857605810983925761010684736990716109389316335313900869170741474149886996962743088939655050252934801487921604626850429002252517161628531627404186325167964693872733077972100496197891535099507599435112081925316516248317222508366818705254350088002953383183589820750802363793213050256567476277729319924449311506195301003882014025496032960725113617009305240793343360035089896224270691822109767726510252876891598749167622502305007925576553140264057882685809539182780335883951584576475331415920255905962684559246326356607209280749134706938528755868148206256165487134952273064983352477686927162632013617801172602655054808435860170311286972697157409746337013821492474046964453639649577345888074202194352219272805366519495449178706248839678969671596384479562258656610554907644067938812097721159806450590167557742602822454165288155131779528849392255376255844463596624263141759544361561303970418252987472753443293435062677348579930492980477313347357890203282994579355246718977623878359386287620272791426142058023734356532468303996441278583422907111150669289224709413763825902175864338355490669967975070961003373606438039970587063204726079018104632277541149841174965219876358339917253905950055678634249489512590350156390813100654758267923046965653231964444129981391261284701985644986663693734825104855177229742328530548285285072365809434733530651948083607843140620388137786669496064634102183281605530344987906978384889178580751292739161564181857032956566236721339643411610273852474745457835830442920438288349070280207105497905363769387383756318724039924579241930370747523440127430676860326869902069826449233749574020830980993817098574029771639752482104452066287717524731310395922396902201593818623074904241091621946215285733146736893262410297676010247732476744739932051673196396990983490958534458728324121569790799612114082710825708112384754242059240128393041912505496412952544408805475761025821095914150522891422966322980562239452855387373260283495882534648164405669065066321600363032766128675056584467527750462115128497809798921137374496300862123025938941013705494148709713142015880976602957565905536730254786945735386758910481888870236913645326851145496495180886710432742606159400520676955436489206213615830610398401589808427207051430159372740589871296740259758004068906313866508000037222467701789050873408162001549940363941662832251606546159331985903822396951883791511051105710309236705039499403041383242180062673657397962901407358376220844612655079930946262234545993837300241040132342329782353144656820632763276809253713218479156917092428729048770503857306494831237450631714585672372913388457851594794779332629304615082330033519095717481954397960473471404012569685364571491335453432285405168482820692405383952687848914905072381861285382425858375211371574297933102152444247895179959483648665710037186459523469746330907380405100229811879254985333015133265424663283540099570767853417220247096289041772757407024368994209835843825604824445582365249749040065596443824856798179197837381702878378484785772865977016718159812653562118742863138295355599657043279120064857784155535881527923854157757529054361409781931959338498686411627588162033199155142724140982356958350406285296019865254582307709195531897155493348685859969219318642038473927749535969318862141018530300085749978362723100160189778241983429882801554922025422750680392016634353932407758430341373207693087947234679990987686385322897391742368120361597519089174184804841206460198601835209361059170507765674763696552485346197901111098156707506518777042455859391800302713361218230789535409439214283207432864543337474220184772116751078579569909417753225773317856775783093975150661804570287473530935596700582517772845659539747156656527067578720363471729754628099082154744026532659016358576051347053762868823937741284264871217718477579471606822664570135723289728159299568262202532828429091328265621029180181515232595672595863741195549816639676580836775046662614193384612312541681556441511165435414349723940182950649548268467156129564823876123448325074363241681209462205132828930705523134060885112341943088040630153955762085617724507469980523186151777365028949992281182136754803272440641365078270276504472930140274899135375055633163416818818203003197042244497195573070547255979810951272667655683189227945359676798015408813374843565113497649875197374230808996308949499125157730268795693488880482390546640666358412865887441169359856958051161715346106887957625184598959046920254832216560233387818767761447414518891761782677756958072650188679601432529737778007965175652222176614917800669580543102748338494179726129145883391286974130676633370745911793988011965928046314271763333706638948125247340650282006025779938970830746811944152795555556240091443758288528342093438965087496142247277914015170885221568790491598426174139998684952532406545150292280008820243665719273505499545234215526902101091080698846332095264896634171742328901214470054602063104875921768152107145669654143868590109813517844738227451829562751394105375111731852479816601067911241075591652785648393081549614512276290567939607317677174556291961793377927533350379004450681321188137404611772151028338442555371748106460098522415268412118410399954684179879004091114314746848712871106677223681731363117534971884523687220966651641129396076798052706368564140882828109574140127847601595855312109708337412236531644923307604118675744266247313508389103024599782622467598392482850823370693086160307324221890913830421560055221923922086253105113137523210646498182715749443920089003116478090821737053039133609014352684588926353413449822643648400873978281977415495780922256274266059262114081181195429705379002398625632297892468672631610418640148015971412202141584763839348877599529377479371331680152762304946316293320906681436488414623385166295169949817041913523017839469200416595389284806263925956783088662057934848379752274512139181420411382989031916956746537770285811488313776476619521977528388120890768297316368003097964141549810549925927348534597608754719906136980547864662648928700562397422602752335456760553105752096858839705214935745864137649329733232196758341635174306962956242998539878513826447003844450564991403930513548724215760221632850735922728374424528062959302949084451278321015014000876339146803209519074010078363835460651638498510416317542682125185926355710936924133748572137641541681577704799760856402518009689504317740614637264530925563656612549033108946816923327976968720169338144806235374318392115400016747272203098759778493655867782726685586670975954339187240547225421774916073739614892901641071737281034840897603993364317917397806777318570462638598023245165998341233229914960724505461296096680917088947066994828747191135300648666391686051375755670999678071116060316379291636454709966232531398134791856707150974638859944255164748733873996379159295794447744789095285163445644675663912319787477574524520519662604504494649680062136061290479939858447116445815954010235693563720389818507591596309522664455647247473132604773159470911819141437038100022518963190330873065227452393591838336665846172151770551999428603576013928406368346010930763245322653007146898851641386434372291533996864776358785414596816983225344918169959563508766115905671415021336824550982580556809311829414434903980255021417666358519370420683056925573682468680732299009496984564101634183855334583953382699799809944459302785310560937433712933934790311310534587536536039387289595673177044044839618399489782365397652562863909757614632507025435575491823660801645963920459657854460173684307115242674150278567136720478794715645741025376466161400272350939456036654283670627788081167212241146391189842609287538557628763056092704533824305213666159638993690048057540012943634796638229042841025951890269189768779426827730385882969244546741117192226943699448772143703882242992883881144146511927990507340497719084069049082349709170506729076053992140338728450377221320110412760086675362541939024901225146037787066762859968709625769654720379785812521568493676087296629921495095254137132290889472543028288863207008776898789860232677364856664575379208629633903852772252465525713593466454180633600208426020379010127809020290535445439075507562076807424422373096044222243455139736444222550733915631834115204989774577663008170423584757162505347580370003381231608586704782035307221852751549820747346657828991205433121244371806873240334927194027511910851415698717691680152059035787201351576658912659535998971604718341627808514573302426785537212336505809432795167173466086321013389909362703779214488737221527921607238061517167346385455880832452345505840866366217171002448067492012866227763047246609225626133833573690506058009303999516680906063016730718785738725849482896746831011189094203919375117089991015047815900677842261501687611417598737176443388822295946955172181297936814673190670488553544827907238449315179729738993683536503608893383768771867099018403490023412358682739237278773451670504264489105878891880700024048710145572608856792377921108093852885479749719080269038581445290233186827741141017640628417899980445748024502704154485087634702587055845620063843423837664387335063522477862073433782537731498129870228382291250642589980508734429094933405782821062600426774284965080529470749401702415955324128183185708464810385501341895187930320890086144186450070753272986759086821329477010631148052294541788459025098630349018894841355801549449840836188498179550740637665280044882045620789856083371467565177140747616303015611371235625359209791567761316123452256907980516179433074193530768006624243420146618860360360195235921436009139734907484094915902821149875788024766517470643995564684695113271473309194368485539170006450854378202568721003863513915647610996937191328099933566994562992294644435548107418588687413484904624856505031557151317765159411376143213828605827122287447099087526946636812510523568613152406981780743059874310978643942260320985609515896080024472894142835596705422536817843052594586468286059219251821615269673686829340069564385504040417225715876402061606976485654028152071167355203045895012073622680040253014581726592083184855673944226213738871817294650871193775318169249252650428754035683349212591476387780605864924760045033640578749732884940246366739330969243227792601763888877015722470967347430246422432338315580563163946890059473855223513290833675872344645445845183138459659548289050089958251918377050683245025143164327144412840478923444112085373578374129604843050694387306097756797726550637162844182273290421603248149360071028336179415717276699706765360118608871590516758183307284273242816654464000008734088774742079242943548494297630086369016296441433458898236986956254287195167579413270187902879438116472492386795390520788827339661519376831560935351662426930573620139739371624479020095852827695739687569561946280722245232749919225675310293708254135279291085189249073013499685311528703076938319398091503800500353157640498162589693392640680340930370454298621068482481906130163690789500859396146040757614814699569371134200650439156721690936327146969503535623707809405693701258500679950050469871418971613927470563714961583878233410918487705875154508904074498039245496726569021118565862049755444330194369513841763478656213649516039077716116588431933622571979823438620554877598749663435821019026210300603937671958887144120145504943167402513481343313803562330807127419230651911739112410925267644225852153574373828863213047841208894959861714959361258815819098602821140144412443501960834800195355212510909308624755894741202360879745977029567483103279992724913957377020251223542739171448718833193177471630097756779415845784927657618408488963956488895141624992862165147232881908247888813436581626644365107199322066707029940850496719516579602160687329164387719041082464641564649887338402462827916885134504197833113229965602977708226696326528046033992189310579389007965131228470386598097809604423211458799562336750438063940767421628551148638550388870697127629280302791857489962092811402447908498609613619722697310977357132623019621000070805682614373213715933890691392949841696129567026046171721349605998167094374658449599528207238771076375356271368148233734888017398218099036272432798737863539112811040385879626806660218050131585410005024021185405775280577553924363307971458334716787801508440749330196283176976225078890941306360961624454509963168406021496941198610948413547362228017703610715487186625633923850192433683937823532017665051898080912060267703373109575307529437778782439498313212820124589028727702869792977225337241397536726296016369687509564552673864407328140863733431420969621087080849512339456391883467403170878831234965841157507581665257030607420167500768122391596166622270304270853734482224701981752326352726410739255003741229795600121191337686946990362805190550696701039382943896157292870881570349160009029395043632696452557177674985465874006794101747165943767696661616348559027591614122451464127650023136211237982486525895353799900363565699470722397001128246736789052548535038993323565707145975393232430085370642608892578982227797048589060837311365277251597603366462288710913444389028811876786136092837510401400218989005908095029859184899057567609596692766218987296229497059453838164260937054362013328362981431587214406029004542388639206512183707758691517772387319177477160709944690496313276445604435671819148551092496194200773326878606035293195546353233252473398786328373406370893593949227476622022922597250167035988116638331537894497645428137172833756800615393461758123076549036189541890113130853801664812239152350026479956557154237080208928287513117551964842982073594095310303203936388345726739626813654426188468464286450596756561579709195110738058234980638002698624980075492441203856745257926683663058339653788756229127387993017062029731014947485315897337862399399730025934368488268205148964702562852158049989283952796382512569092644497634222109866570183943289558353837092648632354837190034173142080160623964543089766438469079958752390102530921704025526383668606481914666939511499703068281434724143482772973195766049004499748525287363909484330820814124641777496488403377329344245704476460956554301277279642495250761414531729135852260785765164718698300471450212976295390670870678642470468414571162118703313804285389508322207288894272413858034512258818506406303446605272281670948406297045856905265340504414825598317637360183330598269703353887846188764034393746074822206983138961931020171807994955485384858869956646089429489850890567523955918030793281862634929138781124822554651534585277401121151204922706537747469272150450354954455332033744079378195915632426841433932364659186213672283568828283933146461811277895962311803012685268057753746672136214570544077206000365582196996872747057229012892286340201136098752633845776498593070316947755032271055271477489566295134825901720835603600974346569017479370004182968836637150702864916669521581063525190092559365705511879890423585922129605543070987947154747397038170079677624763964111976017283944548680746368906188761344410314764743384204101213891830024517293875627365614292603738086867400696667344044810762061513141605265239823070926742251827324259269361874789364863896057253812939746955094340767596860396232624158200812111551939677853992830641852229575007359722954309864982574079419063587056336597072892113658959956498222751313151168325547150347735641864288188270704137357837863603264639361755130469359493385266376655949855265622908740123664081118629351308694360737810322120585267888395080491561760017591534224960874786830026306996642342610266908373352786727693701581921317753997280990393423374506185360485081815543854247855249312251653147834669847740519395310825959821735456029484729836383663526919017497697250971700648464726111159866577092969444271751294273374536932128922094857538705668417181061458376322358183811935154524125223351804135875750203115241265329837559801791745267243495149107318017575786926613997758311007732005648805529116365621785542290698498400860692576778865767314499548766009313720456615561132887306805754525854518400038637664293303546613714892015151924922688342453273097477680529272409243555149249516127023485383382802158896756604912263006551311140479704247434972281295210910316532380545292162064438404011886506935833274503250069816012962506238690410991794497971975670678264070212907164773750348464305093052480187124686336400038094739594281027055413911856109354322157924906442176839687795533333093755429127190875327078351800718927655326807052221522739660723088260770293722959000687456386184370268607082432563658182832657624453199099662379628301588026671881609117476818153767500867726692779089952708416562137799758075440109104285725351955444162280284793007165233956419721882333543764012884818049585521215503875881535092407537092702359683574090884608496259442408540818738195572750911410723095160785559140215763528133386761651498460291871578701530729465848263456907331311430360971372749360523677983555623267654403373011430940810260257873480927133566343445070257738921384512444139610920628506401040617772456718631220032240322451230131626931188152959087630938830317453182515019125033766321502134528415932643976379111763741620333633671436348324280416263166896762819252320549601628588971003389423840063713073938006417424689387340461242210897225541542272194643166241002537480180358019513634302970779354405606286064720780341928083837706945675058142177592466532494028669903997873791738402557887386042059881165185853873552459717080646295503995555373942646850897181815267630894983096856792812798416856794389028527009808795158725258373455082657964310575988795177844848056559909332437380610357005036985536609142011252143018250902959987598743707203918992967395141156780030818756243440787708844270162817289372037513944026378405108564275504539417208418544784094815776741824968622033557573339203291940949368336432023124298849162513738447312788441329067781160508767385471442480819538526715095922314982384205910164176700385800162025722180398817127138498204634093215273084354153862678926244318467540943647002848138553271056027894689194594265972740165289324846010564034916983020948114912737864360309188195023802459489542812368818842389077590904933369713754356268548972264468547210400252480277680763148029135110220742165743318039380905692365073118901075469930272320043393514712838629078573556994287050081783932515930618043190059420592785060348694651731625412684578397230317667933792033338487033124422644059412029663539175417985733235649060299985689852960044222259676040742681701162079258326926102018462230039245890400507115576030324087332405050544224733000724512046729598773760628498066078312475752443517399386710345908930996191118493524683182745707046800673078828879461705930750981184792791359555179705765206203526695735230274498796860698222608719265821946767959809147715614889081621237954728752891496877209641265979697030405868004523643486047521137751110157467370575335425634705059504814564440981946337766222194566891513465129601321964556718801279576881045405293045102618160605550110081177626970817273735807854582139302205282228979552144567220186769448531772924301522794616933118404713878234026045172359789032198158260343991060132896363158959751387935600852221897414968065838117256948986990236056421333994146339328505203221231085178064826865213422454026113503258328040477717528745163417405951220408899995575203226670485129764268851531976858200731220344088220216234299378436573080048230203905456743919367011891308344326021461275915951677149277545095936047496834375173400030521304494206370687614377854194314657819049303913582406383741113265852071427341160552871424058483097193875917669819824547146834367236580023516538762550837377396898934469923665851481570367104184209585204007592405635944056702430213316734185696702162439525482636774060347489368020371662333490029126026035183948276431685268124707270703307475955454713397436688042951221548673697610008747894700825339935035661195165651569142136864731501377711047868193812632772585184065535192229875525326137583684034185305884108254116644735812141165072362342768305763064259457494076938182122556983411261471025782802344338918543228683827257794887722657686993570054932616597146865578505034524871077838457831191335286991524434682575792475614477104380169371772473182359574601076738046487561523902299700332736161814560195289108063364596452886917182546143078160705384398848001217385495747841020861274780714072509204229478474597397118108135803566273464929504799843556010539584848400308948440678977817996880349112554478361907990382974298144411661638554180448430960565894736917911839504240454800507919510324963596742901190497897986342569499793688799854655890545986622681577830618457317981350302714704168116459438252330209974132739058144054108705009769437050091575283625579557598721974908981766705448022276694520759155740447651870469885090610990980351168494820356434735102463456710256328222569324649275723329138889468233726453678826377097014702908369879038916414908286923034937420992092217584186120374827601620714569559449016136740673856554997100054733309987219833209849509019022729012833918711354020147034659615233356316045610268576715610741738247540423000663197479335151863974016663121746219135600369900569873171215555630215223958219087019432242847836941451085572724400110373575478728253572355520284167175245168188693796614126244774156365780071989526147363242044380729260747980623625210809720021509808884160032331540649804815480796585058951295651117982999099768631966790715727115049936081981932695270557367290397011185110225849454646835969681597096468664241444661751130980196475465395028416013899723234986223996238219178697700957769337836083611944838868361606236932571911488203469420852941731373376855223104964983805560342435921834851163502033096077397646235190416782710079643166860610505982617448211694591419155434805994695105974476989896143749332845827586982300944661471452369430876787995584895485898831237768885734387761749744580412303045036503518651579994837674864387692592414273292006724132891892875082082634314875821596072923469747662805646958882095411211192529809788973313303159796308600526021935843597970044086611676256742181655619378552130458632473377004138659354497018581712041894571978515066209949128855504196359195898020840258833611823729882258169503345154716948359292127674826195937162289898420770865191459901302952685303391766987389052568237129201242051781859886603229529003998343063314480128857984304686115600143017612282157179150683683929328171650307248233375057195562951419985498299236396402916534363529320439938095186410882445943603998639930541773092084801075459877054835430036262986552831583564856343312152011182415403056619953432895908866439779626991658288979168936795626743311783982997792415092181692117768067914796986700393148697999620902923335662207360342510614725647317524305995881003253721504628696589242480797932115306794863884594968205095960702428969831909557343832240361123336779089011014421455946841955516355928076095136731630196666551175771163755778133446209342536229029253110443612257367112968704883768150491349216526971836740410472349253098914346310655822104063499972419669904270401704327351631357158923159260928469398824082875244254173982234301323036969370890173330637481691892158532190016799852815009888391736892053543862969518084774224372980653045154778298936319181106891474447090461032781135331772686504884892084153493419908568762609437966496715648580325002227286928242356487416292013435200279102052428419865897315261711125553268445269510927061975130746253896305619273424910364383046822796421855079016513877847663085434008813985559336884443532539637354701524792895716783781017418141470298672665554924666909941681579605935934617554020635754702240283673524341240360630657276219502002375236033400433219396792914951592860743099364906883588798803654638400995783581150856005329324519932127007938258030389810244216883575322343284176776188748617091608704227623140012769524949635736264055580276585232007875865548126227055667252417316149899705219075732456734420547631133063751864302498713979054755606896944242338588934973196855297119464107266205420722718017854828631458638998649438494729162981800043329963455612740565359671612143924936535986985695103277759178104213320787077595171271009513399730017577270395702387742792567877053801367768777806567541465956874785768450524820050758893184995912885976618177299627587768279087586317451564057524436760453623113588246356366372289007897860690315158423155393896897744370692408188906754899520388080695629705980989080116083283382421843105817174624978086136630997222158389480024313241091327007161336516662567415673592979888534368111336368928720238137704860254883898684847410337505103413207372670193563575059139445115433713303838135030994359187040867951122452419127993170119279348939811274893389172402214120452469330191848965375964482227561776575491931322195413338415663109281358564257375354660705931001742465310317335930724149082044946008249329293134287596294942014118895933137990825119757522952656113135641112272466104903135483857216101922876303702239611774375136113161098697264376059714289620025082735920436483774371348649042132183844485457874939999713404594337180854568436941534051152050988079676590920741660114311560002738755143264905993230425076572580136240978393270608238565742316228604327333847222714720723565911042620805326695319282786760033453538240534645049948921671429621745458193069945796971622595424268522393939455736846898828807415355324879665633384653309984656483515132191154397042380575674923530485485522198595632471446780483292982151798001404261357586669352280106806778221601493630192595117059142743259643136748636344287598863219377602494626067855912891151830336900311370152903890212700247273293221813895561360787163390517120359530810054717008013365351344305835736168494644993332446370159868657394871775805424457387939673561139826997795460784064917448957255691840052863357457939392124810086074407320463469094267727218589439513989880652127812997718052121499929204539862678914602241462177577101913180479992653893073832687853347453145542036333053505337692583511970681171796363837350988960090050381502782944757654062621344586314747531800484071919585655699285471461028660997877064995386369007235579837634470943753051240546382889091424582370000914841424586637600892625527441390666568285170664769504939400333087134734598836218493869299147469455240225224686986998359998180359661765100054948935997529661819460390161607868655686728740101904416503361224045973457671559679350306054123752663921438363075306017366333287888987353583472368542649118120554311279095883832246015562768471576507988706198104234332775938381173801651016538067967923585639859972087931873142348120015960414132165780285626946190901397478303733000839110155443263110081464252480228652332404767910060153798882340674698163180389003162657081133353833505260660081562769029701439733438754164702022529862297475312680211835715731631981243211166445567170029385125717871039949018130037509891147418567362834170645677094682163373119453440101129106953431209610564552469755903974284408542530412347396146214106739061816361033653269003191145131750818898885381508720767817967668850267421726171905078351407918099658848989085273011077197814825034615157712840321423009588052951527572943851519715632167228777167696630854373811567094321902937790963877956386120246719226421367622698492888571854571028453820020002614059089274870651347104175737148440232474607636154894593531267394062067190250432990951787018326081784887928261825782959814205964405723807600004819644548366563838065200526009077832332868390511942714996548001012659739409656480744312887354615159072711144144573929941359938783969578344133635250509271686622875996156728689989196492167102540482025013709652664520091778030185078323181325292614032914756883068443251961859907674861931714339906454245923658712286244894150318495811287476285105383941107450690237827814785086851827232405872293443973912615019047591693429617803486440636887616449245352164110469568864445959288225816814058077898179950305727400939549678709694228169271173090296490818095820857769857750656545376598592067795949604460914056603928965313451411391580118882405738460955990824476046927189321288427585681130773304132780441744298969838747211503621278223488867977064958955835416548406996099357133456752200125666529439203114792360546043084226001130316827926264490633642902878429338144084329970685955597191761761049231490719860676848469517991865624900082723952386073183350872729374038623118687329316822531851390252950771102972525041355890199852991080927306563800789579099317024181705011468217920069649149738131668371353933231535950448175552103326993596439330825186872591985407280873024274652028903611735573274250790754725278795880839552473629421781823663062135631813497520187685546007876991896998686342857604235420189345752915967342678655141776113736976446690402481634255589062248782269806206985885023946246078926619719138900280032960305152388320548127474022776332686084010834136009262869528612007127561288715730216020270953012202748302266637865039192286222681064425445112972208520228134249119423626812267237703645054886784362840687568544640466128664222488719724765764268336381843563606003598362388333821920584255856631920621417981241193873054247416853123114305008330881204629021386004740665199066455979670932955972425696113259883985521943174467869590835728173542959516798399408547966264634837504316111361685408308335532912417055361963792049053511310683004337524364769645370835153343938339777353843971131775193333835366002876618135617564766990496759315128249198818454878262681717792222497594808591445018750632000351344580388861596872753259832917334752705620303967502851797043925712377299322261531365936824642862598457880172748688195787822378043239708620857490221842551954590673957827048862743807649392324825042595251638336883645281942336015664093500575469282828102225803803005773926194884137060567739626202623366858025792453858430972058516148002682239472200762444374465574037482982713829401630752368123427723513495285483327764999324816540061711861195581439784237003179873045346983642350862551706634320451730274075216661761999146768092352030483974091617708786024856372474577857285990872711767435100772061691070252835755053329846211030868555105550531941454451067614038318489342335173531539109022168728961296084149182298670857806016041972966876513515590968815668144088218960958638963646812703867145483506471160900518280996857379667570177925103975701722627404621632385815611575324339471740285542755697028371911494771119344429143891143169346074923073815537648808216692018960836215836636776285607816646246128539529302889756123775734343291646475743835451651955974076267007315034957828742240234242102739438065399901898998486950954795936223730253099772331684570764874830604171608418602880243623585424772965304543280426856515100971831566715045215713992236057079112553232089594663316585990797372156448108645635078516589608184912538411176330087420328088732741857540214961310708325766333464150282441325115523188481826750212749361851066994654461994618893161156469207855014934728164151609072751145472625305973173743019884499753484166186151171103601851347582771914113060564134455695253188973770861407905833729941463650315300570420300983926304817776218079669694350124714647333967722591935666387211695345543473728743774137568629321484738459343772719986441237555527070409041531206904960978143972669431546367317436716619479116413297528775427736207780547557332439157038915268648092689569446187153289834222767209300092935051824245889894137267659341485326098341502204155708509100290175991304472710502987724611847763978276722155865886645052932334506464081154195685967899621254196518168559378603284197609959073156913599811381395268944481382680564518855518004693418764387253792349872482631212936849729468775356777328096737099588240814963768886177770935590045199746206615650166920195497119680982246081075275045858581423109116454323306771620230988885138956287525992545794066534175211679655868928260791134880328839170171140966878243189538365624973962506477739979088567511030619305808137317519249472828218071538842692805420738731525841755890865364327202186638971080657504987821435127334555635704923369921724007642578695428205774155552817254927781773999792638824767766562966285862065477265682048808689610663416557405513329589250319646622409289228672829753022474278225672258599595660809161689345184643089923479840499448852568003965136174923125861450513215202693801892141346702159680790488783875853626452752140409909958792151128451218616654238859257075869180072431975459434812082822629670446777855521351200008391292855664760217839244662768650887709924880555307682530997240877138923090121374167613731404098098690939716556755413440244699398587801817086027718591536142935856575141667577105160502088267780318077853204102546734569016773393325606311212134265589363900700578261714777053558477601747632382826901673676083517573339012882384759715254514835132643315974054721884710136787600195883191893575359571602268469201579038098677534740763480871376551861810023817900018094621491481753289809144405328412342514045981776588056024482998875415732856717746083302021196344770775659248069504520285193854413508467782214008127142868718492198455245943729538750815186186621014142798919539611409936415609444283493296855456698624726034276379240751691528204170577107434703950259623225389736328325669936850783400970056090766583726893638730550773031933325468621482704551631469431727471325361641275934275876427846681368615849926012923216037360796874674335017208647470982028760584656671166330836273662032850708457594442257309671946367079594369603031259131168181264637700130643484541659853993708736503819202609804243006605385228297565883914418053849178008033998646605134983533809797073256326777356346427496979410573815228108247977169466313290710382213640925124218795780358983574485739865908638453714907204233185041733482955502162533803038617650018216828794124295114460687840577612021499254579626430745186330284929892621286107379541022548184984069418429921358774995537694063140340919308391286478191288551923663862190433888873950441518477886874936367897879136296766534450673150884631580693067793581028761913820281011338423295779795957338153803553504356699253555632576201653579799022183586579287099112962804479598982101342097321925020567248062871967838797479276799631468948480200299534699292971881418496531767923508089013978653674514028131910012983801368191636807332851902231918844846247305261919094407554766245660365582117854909283793794990357376935990870333105789617852891680013618645848795459544630094606348199222051747475329574762511447947477822426729260848118974795736815552742575576068427055543922976106333146347507046911445571616066341768309760113903563271936055639215806602906534465208642174738233766787020894013170836684863043867121687620821193234974025637743506607722604856873112925587085680722102271906350678303684339656578819707590700068461206583133320730900805656835728832925425046490672499115262840578820690192259938015120295256135851209512571347851851092977047945385753641609914906391027098839429985429386187881306790095238960003603882357543995402368937139063534406744182174985995726054082337867213889935757516919806382129258510529742071160555345156703801515205237196219720830890111177533784211185932748936934056174630636177871362837786518890593915459281468147157909492245281958213533360462199622751755915256115601777003293870315091093193083758857777636310349058595359386365274099720993570204034729406994699285170506552779714046008811369860858705452601972600987199548419927303547075291711003571025886715585848761845932801505706202280649744024171801704321150626717571221242628887011821920350232560286129179276441155648148726267945358384496657155083615899811572847376668232162417200176523291106583906298396791489539940461964897252076689297950218209480260490075636471787505265454631536190864971483823219408186411921151160025555400516340694630672606015673109455012789030197759396935216669315162179850459035483912427361000550673227195827605888544241596107923973915351782668963858231136862695484046852221599253312370331008340574484364058478852863749413084802155182233545744247078491376892205115656438958000488846764254516500325561386148354869674905225489005191939542154076736464509123398819333084806861840518463898417170575978326748496475442463598403946445884276507725194196960379256613593131444675593627332504556762118952594470398235639968831379077129042062335486239305102048167722284582850668836901238586996857160875791868696772017132810118390216667384680532972410434132946822925418445747702879229824186506511578651224229527614250705561566707412439956400711387660089509774236426248485590101337899876211359203247654892028915610308853272522856678759471365976799658000530219661206134518646370836664295438597696544161384469455242039892537704190521088342041594005607032923407003602226687147415117957359987803376424076464511180469669335999177346440294380377094815035195850138575085639655695171118223225423145131850684043182823296299447211256537224450176265461809465294498678864711949771886551465755082021854226759991532624697476646409626486103006188330610524264741293409591339232638747628797254191508992583187523751841272372496027235397285004022277288232613159182413554229833298223535254489701606280356602612563182108999076500259676962002522105370311537762208178644888025060625502441609954438071610477824180743871474695919569480513097024574830405781200677950192320588273500878425176979282666597076232557988984621440810980670895579688242009562436332771472546029787950806736234138257179091655919099303830878820832411502940005111576568733713033092975147975579811145798483462916521552822362893161076169189253987517376751646840453465303539791444511833127940997900026298092457057286502897361664869194518968523372964340115802338483296994260105617316070670240079599540465511738088776711923284201612667006894874874345066121441211884798050632802528738197529254451218121479653876141819179996658934493925798883731272032941242063862725150190473984156855696352356688733798859124118175129192664229405200902307927864782335119504253075000807612227465226890779362069805843730678127508077180259095931341587540986865261865043636418921901617083457780411644587760336693871624550248134870382436678465150852990980608648470603770813442347669752298990760735739346320582296363562787687982989921590750429623448837682245166807115619237856044595334935835186893429778524727785731427568535209617017516064490115568979496593663645269706588186763697348592208442704727028791598796339505868396905606046980488172056637048802935764465798361930080709161391640497125956637875269367584688484319774783163104985431986006441878955415405032104686505174425754539677574373525699813775836572208572513390800323341946640807536418806435665248852885145123719329664799673396604372597936220470591246723158680696077922673378262683535838650097234662796288577346275439437625108149956646751581492292109023684172931706797513727311000944107659219858868174917497180194121730844502343563559347378605050585336867603545806725748773988648575473331374355640103788394215357747848080606647766086963921425135403933249087977233847001475567471766386237913269108884080600712219654957141428575235532754625517439463507362768461550930583891930716318223338840410589197693721723638249682516059848177323869970035343498851541122559924912855383019361204706190029491009329821767711557557448312326636124987031882061902169870504929629402237074719973329849277314318658073250893043630304904975806377474587969635200860018775411821075083178698272121368003228497280626772692306800940230555246322303864781167510471545624202681224187855252698248323206700227557460479532971347312066859708671085165449008753563183653089722950774640962015874592738116626134139150193868651002687599383917254014434995031473873486971037301955437437767034119959489741667330481698467433273945358787498082862401853878604149493416961511115039066307672993768322015787032425987734073310510177222506304624400361781856779215076118430207046686037924433417618120963697646243416418140883703576134513529641969896812101174659006393961769657540170106491001497146269472564746702591790934418706624554581240488883383653514506728022900905590701842729705396105745545085067664155077218121605716783468916603966146604424179233448174475598960159079396270250667195635261964551073644940429881216531952142628054230673710022372300782616597838240525598437516375384918190056202217028733016801510750027194857749845164340132984768413051152787662093930838617704389450779135790338663785292120386925503939814924921637130675437134361709040681020452510084769706231271344553717751756068318224679577682152304808828156537387252897385534276625580858762951441210282025294218089738223527191989922467973176427559125817679519212195209239539893409036063977134809089551408232781006058112396219627143143095598895822367269041627398360175944841243902055534603548023337865490202090704323370329286879841816604732021277782184984061537692366103293720361551985112785616247191679367611257754099007614807745034878536886598998305035144583441212413147171656764560248594993128040834491877984437409831776524828297924904911978037329721363621577888168540798611728551672891330473642902464344003520200416177891858212445570564306216184857473678641183691327927345535547962514680029790947965913579058479057422389951153192520082703371270723920672256056192746233598027268253685568696793625656716037652203300537990993094036931459865286466480438206372822529655687152159510398124353915426398286037202629113192428680522060965070907905379120486119538392277350421095617824491716513842915770986053230693244982040528353155510858911593495281399557695471321986744713100343920341417746291953145687598454808281917753929609764265727102647180694640258383106436798136162137674141381696607353725141012963473416597281564909655953533984750047232327697002277704476065849526102028505180469815516292781475990130328442839166090189131316896630271887591366183836231577893168015240219621656224603733836834366751223548341164149653057243603183816314221809480344985641356216082233971792809629455380567882958044269842887654551121573798841724393935398703934754205555465042086919450619375705791916514475880483705586205798932960957644686581290792210856498226955351272285898785922010795484677782034099213341773184092059693601737816386764262410938149511920308460273306641595310748421380732308135617351858506643971739247033860114569787435397365434981844868086667068054405441329264215979127554978095009769067431874408620695405600010916163701307090919119072950690011751866138124815187581543867990856119986392606068176512190681958428552858091763637560058288718231836429654779790900223876600504703744637253876771186330361566353002118697726080260202235737548437124053118720605583264335860415295619893772750570996201780905795927641781420654529237525549271457992501703543385770374543881952415664312390661905273642897583651883131050058083024459096039332999692034026863038917332338295892743074715313964089447372031332993756493801748018490692257086852656863056867703024855166012949230661051125018617675799593075341506084393656390146358223728204309341575441701166065028713761244465046345247346551959817918757407982388645332131511955274712744194937752368985748696811438513568361315353015645374782579389377606055343549133397341250086571812435924909496695041196769277289174466899182353701719342953692538195504526262288447931183007476738533945093479961815183152442087442773815816907522248767616689049246312355750889743353956513317254317976393107846897425125407318281394142638334551088042468601331008770428932267073849212345149203199179099811609973237682534780116723597004401816967219929550116953526515814720401124320305750644931136493166138502350241156728756125861364788019834889560591433092490580887508469005135358851380900486070886983438174651672278675636164045052287539351201049264533391490877615175547251986966171800003955085224831227287640860896898944194593717699982578208155794763334159544417759155574083827320769448145584040992759875853049523924603168473904682876451136565886417987374585147851767389679198430094494529300838549037945513771603186293541226351054611889945021229053412029103022482283747724056229366607229217775877678408755384003085352449415201847771898030976993366917239452194735585600115193323767479312355694457620285140007229610273690173001035688340060669112306894296486986564776283408186448155296232022328808862813216369750200668506022433778836788933675681591989554704376137943239122919870426973491422279264754025189126716234983192931018970083740533920012216694917134854386850642939500904945648220464251097289917952331892045742160779068951949668404539807576184458722009931869411833573202932233153681928314487343794896539823907060703595403562783442788476896859637700793322436339106138705491960698513688245878572417168958976080791536248550654282034546213743122439494686938177967021159421247102110595403737696162358492866264597619727162331812617430826110332158540662484564038428392398597203467342227730581575288902416079389270172425708146979896018127187104769978554211582401873327108990502246109529401879282673101829545206189923648665891231116627594612325721212741051344864167201414728195414747194638322615221997627827465394869054536521561214055767782850109466474300167287311361446826260968994865177135856358952633569836908225407557094119066566139470232689538810890026587361169124902746227940517962882594719518913104863250041475561620316424977050263757797501828745165476614567536709210076300997064186764612034444829596384835085970246581935270897358243327208868008309032016868223591587285989035641048597713525287395672249540109836512580751434376025935805893609372277612481640628010161843317985567144087292621072166919823573617801687081339595067547199115681661357539156785494616709574844188474426570212308262285844631248419610599375814306438334753504782131071206245014501542568058929658007532899116913275997368286392033056500111731161145737098499011148956154264172474036496892726541703629871263305134697110843607640460807257821458351257054433971475929996503098113350550963386847466678576078576906675733961170778059780330593658352699072790942163418694895092569889677206375425077903548620133569258002786931244500336730554949119093196165931245482026000548892795056158737917951765834919794299851953120909543850801293469724722216486478522926707741679106416761330702041726339690742069059904256450342340487561152277295196889841156190322341861872328605100886325946223938662850578826452527154822292627201821960567346136449776381342007099692584419341533137309565182505878616923680634622200263276094107926153913439542588540905539937344395462160670288287991386945330169050001295172331457375833179195213620511595064096294693123593280029515455777511909692786513680599689917753117000839900710675783278175294462834998726039329786635166214220065411097024501800873767645593776779578808132127160561812975587394978467471216051293035937389077947663690100368577497129499199946539735508853385124137711826898339670943795197436787596221769006541335961181690646268593976675312093853099318005088573654231087745459667089541119720508180015627652100102493382899432007671239404443733572143685911789556768092357650789178866594377951515154981460727376788865839334495756900687847184151294341035779265635078969745401143731101165705788563930590528979228282184025431955274495551500696213459391971327960867404313273037152989820251877713772891415779357554156620131517787587770685216155560376499037513981937340647701692326330086084753669940774080137246835787151506065823831374939273471572991685926164593256588277451020596905807392828185676347375387883693530713760020159854800634274345756862593049033729702610592327173775575397855691360503233080633937915658899707519002074807324471689052804941197648398316826534980915719442160882138301596766446002308677360642821827069701925654386161643965900743404632433897313582158739368536038286642518777333940962800284309242338481590350955687439226187258742265772482720368674115449320306904245808985257038318245345510852681946403759703989702657504207615836705617716252927238885821835955785292201866638475950233050040102758888595200421854077241170474153613791961966750131323486924013129405539604241393261267320677575872836931501655638831808731913138762488833888722842017002872086880393370845105426891040385541302552808262217865819969837509515639567220673645458652097151060340284665197989429070123129802483154079224423510892506311846143909190414311751972071071391342757864940779844588794580489373568647263857802478473804531535565800272060407085913754417611610191427677246720903103085918130981082920185676173713888193209913672495431465039869712809650393757185908465670381287656578664400423944384687473185127905379762275142822332106777663069138092524535267001472787550282647923941276921431223338080515734115989393628565361053151262819610850952810279077299516471072933928245493977494955873360291834911081806108796231391197352043675776346270227602418597077947961248788353645387151433978515205735136206816201205612726158110094520029799440769028243035255107691926061162228352892561669879722244798810173315720442203360524768306594746513135807504091287112037914185053609123682402607744526739668584787420816609139901718913883055051302275445800638079140006624703039348032618883612953649050954982735155403386445932495989266627162793517525046349332289433417120048747712772629468535601666970821237239629428460643567187129233249440600554099833809779891095302080807921302411430007279986513316468368109915972276713431218726298792849911687771912345334070533031382318606531108472661613773348409560635665588286913756903517465844036862324545569111328529311425252103868680159587798172442753470182324555357055980082399441271184013981325261927279144186472148141604353786504348887368351860019085592272317965642392959332492868754431148938248082996494482939229093937680031885951515428799606727315110836280160684266151476715050980739657855482029834239685775499012514984689058592928854137569252063405750678712718422464450118373058354782462572432948906419228560567299348538458147196138726816224529133340757294590273237532172501184837207249277311966922405754520280894595075796099317484598099853758276067530817599123899352087456441429188950061495070676980239916691645649692559132388479339707105245675762730599029672400140986532139604864550903543543399212846486785227020772071977356252710356825479453209290345984506128309472668166039658077748642963204357222024911547413395552525278306334422113394632451431831990384980727835635131263579004260708751329901850753520789813962572610938317701622526030599135551642535316293824702578925822566270827892032764948273368589829663120415196791092490446412682590943823588281214683541227563046215730301865799894951452691221124406325425257102674149672887845958110768697616642147679296401554444081752316977216158977821876066619204485526790684002575941857308546595248251174339759354676790732439761464466529205620605098387691789213315785520501597872876677247127061842964945818540567523804548141088213846231082815602608470037521979726116809065265908989089364051180323187643697593080057714052359838877656285746072660052928915683609687350708212514941090802592368791501253259367726668377467005065151381396150746871268834311204731916627409060717295510782751254675839450115586369492916329827376904791183016695683654421504316449229872752311982675730041358770792177748990176637511628884352935555279263085905905002341760214999729961836724509983405082513327468333234556721909696861292713752669505955861511729262877942157617097809344531971908390051533374732921738293458491889257996852941098678795692117953134194295670851662780186322016948416243444109827862048706036762203365445386304037647445194337276713879975849356800622146019934050999385083972480185612537855431106688247549397423998312406866459008989866171947807257927438277504364675241142040024357864592167925728222375213130535357850902284275978398028396261332969804185243187105628280072597097404015756197308184523977147734659589390885906931260045252039285805168086118881517362315981651903412378021774094072603337681746087875263319967855191785890187297956072443070869449444260554774157814655298539071054863376883223822414963002697973777720206511353498190765502028716247762774182416306624258970614656913941749445708389663076754515466159088398241735777123987727592497988322008752127541348227927600431487610916645004212937760499316620748300162299462618248952069269755203294590577411251262802646820950768981351126766789594426587460675742238194555768799608860795064893299384995545166171670130728616294866643318363058798432581050947339674649633676320120562544293033856335218399919269069013154533950073581175576361856077450168018749247926920105721473768354575462693028357191579252781786141235264275782005989561613554078505541522831459192638570441579081965418197604453220076152145228812242985444698742894899860255597136057672923235986429760801531996348858491179726253656715395526926572933902843237986163411409918526597701895007139256934666155170151299918805848931265195036080822404702520309204501785724213978666706851947948973338614969676268942395384438642648222389164449012614154931594450624482487037604970990825491741550470121545280045982700000700100291647565144369689620484402345335119599751766175897363478993999637851379450119832003591511693369681144440325490985728009965982073912830455585742587483304512296112230896602907273348189793344353691337753332451399115786592954790824843989090001019531978540348450042592612746104911363558679148815718102324619486509110809822216587401247813126718189922446881058530713414314839437874970079032650435135326868399853868569711238891462726356454952893374229129524886682822437755052367172432840891194220859363107373622813207637745093510164872329166806923590512928498152747579078877518887384195677045521286219788402635923140691386338193291912934557902252817939547228753550019412969968680505431279583726931972866183553017385878610904241854160183150235181040801428799629437595343238435178305438671745068953344334145330367176869264833752762790034415200690793571511311249648376625864507579006240190433242156817855668891906365908815982280586862545199085598097736887326028803825566961489017611312620621828223795393402599955289036471671766409574479045392229922699019736029495081466651309624734138998385544840956000849045619968040974539515113003702215461590045817037426086179592890634133822369928413930219195863811320687319034584296822888504291817715028859628421876369011012664179925732505349435534413051724911629262826229204925199906608481154699463269446724249722200093472517258123977951957539581864223675375088331236947732241497797168287605646770013970700879473606766317548908543557483840264596885837512210260394283418373750655480248610388691254841117136719032131322357663337065609021439133135869200527678472001313155083333304189804479987401842519356883698562935019608301226699183767053091894850227355817188342596205196988349183485717533540936480679958789028992097519071433823796647116100787865049549263173294598964065092279527504604270531971728330069310133643822120608699982438124271561646703053042784617205275492019077242040361721483100567045988017856302268728537325848348656338259020167440630918894775849428130561046361332451138160727615936459680967823940638232264082020107470378854005505453411752231248447424069023736638128428944659576001820778801358716590770249269976997915773418281976301962562370014979206941682180282304039060791419947196184696053116836998371020646556481396255101397672533106989316368924327496862735253152506485555210444345965626128564943646580949048323801069208694264408922156354237461032604513850142981769931672342026745324292797344075132504693015349601630969480872026261444521199827000961320604627622733591837072821057890822314130021227214137762670545036673493940523062252152500213334828747026780447038469144634047907850683474145599876222188343080853567932381299203159050712858667736684287053158547376321836700162187214909201281722315775879743988771807999520336625562928814204208977837882060375385444871050976771460719357538281643513289082041300460760698454901698626092065469735271695390376504590369371881830676431956794644430041731383254364222154302233901167290824886479089570391276057086265202920643960740616014407263249010430517318713808210319131233933806710327082790887114959482972016365558303699589101861216054629091122468398435776400188845650911110437839222416022132967357553710361233993126545083596309442390958471399158001964003026526731764011708050239609893890621457048139724571499030151896719400764286014415626695403936451235407556736572216758978795284360223606716242008752497201425703900967758765372512202305555641600219567030700979527000897960060135903184730590066405198971356090657149128236667016624389941256046567738888282286651517582684072287059529021357551734960867551322851215484273818601088505311447138689101761307445708168538309640707115338367877535859969877027829523977317159614846330766879855971883336259112606356008483353479841620139612749879887605851391764910493587016309491717665855354038223178716845846754076240670942619593505707694825381114795344239384093406273966638703085534468621849886490980553503546510341224226590562115606653132658751534095599616826209267450812094650209813738842764108363355553697961053156420694484162189629512291619673385002413463486514402409744906938613936076617126361251178164858239042415337561372757995739934402913431954298467353788859937549164950246270273617664604832194776379708198480603444492755762707585736327040786109046022452349803332445929193985487355350812677599354190599912721726835665002804651561124269608415085229520631036560791049102710858564426227113398358873794012652012356898964762889273648772896550313766236015173961455662158643514581661940620611650647446468113201513345719330284076727826669380411149294945244607267442438768934969476912941289176806803444135520710834949863790877960110060395903749317146203568066854007273559200334582258671334016603026229393537920729563325755736457109246583021939656724675255673305831049455343003358649975920572249038584550560938564706109307375211093080735695250741521620481987314978666244565791974928225197551103951600526178434140848540453800093858260462668581268631376663482636031699158331524824144663887201479484629820202865707426034950540720502493778993583588520048454778539222340799993167204123909898030028613900290861316155769077120258502825346004221871435505230516919095128330703626519142092135301195681343095386607832973590016810458007309095872687372763960953828534938838394372262325993558873584783940173620585001617717103139818597095868038414242253580562770189597846096862134286437429432081028654774337672795938710064508042608322431217900819602372426412620661808229188170954035598753049380954718135965310391972951923755316181527246766011185960329429325889446963137495390328891630222424653626327166685317092895512256335472641566590008238641947009122474799942290373414821593640027307848580593039380465025476935270462954173210020857634109283506973113166553572269001209770279932583266696381559569091118346519962182515300499031531080159214658623914589657770199129895386781939567916631390611772676698035849005214781903696721860679839418372727667295592226351830648588468325511740322216360362093650704642774351116406427307987278740477495432669449155634828180136400294021509604982495870395514007847154782997994206552525362584773614525320019502204980994990614206817600062974265813912219530613832952581013751256324304585702776956734020178305925321461080969443416387527710824781505931872957342376216198762096857278401776242323382391692555657826076842853827965480980323120602660492826351741444442434747621092082253411805354755736722085502974552736269872261234527164936283491040890063550913982042378366039953933500699414282247674005265700335526040244099082496080711250019746341215324628621988026650382735252662902063105543051949217416102109616381339859919538580931026542085787035202326525772386384774702865739938365561168398288285744157789401486030914188851681716612643262745524809488197805455725721239300786980839696194063257037111781561083145549385957997881984756496732509065747161705658336902018394068855845883749867644727009822795766181850312072134070582388506139370679393075538440918783389361298675727769360577023555340652959985558568279983158039228768478010059720922177342902740119586126075941680072939399041069233293053346889695115980853253136828052571366134405711383697635409036897046907790991109749511495671090599507173894429997039383417314688633454459321790556088036762688988463453122239121041143809221519410905320026384668820216451761430154583107292094090010284054226906678767742312647505483526672158264691728827285391392028557606875753603023094542570637883551204146618724557329392848273322975217276713184284962229817326587568952581433273850535072457152338065920836364992952043137564034316330234214193478726635155116204525499842618985471501145171109444063529007832059561169168386838007772906027828711395256258120350539904068765144238038891565091875069053821632879270315461556945708786509639903551558670385669817639271723458898638995922367759596082441161704200823153115821100086857929579905977048380779567587711522890703062388498378750263198383168124218242146678551408444898579788715639580810668464913037107642689823402254039487076577092665425302130725278361533519066727780342588793328255069470485525569500904896747893766730958083186499274081707669307378425308204124923343633471260621928551349539914811367693962338044953167585350047188212920783521654766761324186940104744862509490607192947998322067173798067128961555256659008808927655965741575061262336822970293398238441514926807159272821226636557746032378574683529965748281643933053060895062704475068414495322977908379174372193786697069586574233333653406982057208405721543624982610937017437924233623241039791811062168978035053345365878454946565235283457775817778427221240502855199995974560251251564034228601722483297661467947623300601188836404629134272738447339511135839255958187001083647643168810642106052138462347400599664621406704016440382162075286377051779187801778585079339967473429818506428775272919435073769256828892916032464034843615711639679937409973588590321564856521633911199619956286341767720731170243830451441541968479053045136213898192589899301706947303573285876142204970404712031129612573652608955884094995982472963300663110306524515723677720720298862910712633042905491825226265403548911368485898647432438505300319534990173720524334981000482039388567944914154869589382050752415777501261108870778734344871648435621017936763313720107002030533661503416859485792272263751502856409550603940624641002258094832652634604068164492377376025902304822296531685968897269714334253848269313910571828870374445497362805753218085303895342973203417266719669301497734270994054034004649902214999348676559105287227231987548060437707027272555573520889671489178397857026988981856518598228150786214857301945822627245454182170788440078852402308221476886411173810502276400658123119258880754503423574866758493243490830619620844563102387446511153722150623776320753045763080747271400193872437575215840905946110586608593734533046731100467103223675076748027201581458199877988653220412133701967039369039020713415055226111121027801110766412500417329995624504742574136919276245857246281644950560479391448127414977214417159864334538542090058574423694528811804346376581086655396145411170556301579656176316529558592902644951205246229048551061613575146263839403968816961227257372445222197848611723138508767986410635526308293876390891040628429162565706686635014870033599882585939063805419374039483530993405184231469786322560609498986571660964707874460128374348620025601010863276814128082318190965495945602408216186283390487183600236486543195085625374886620987466527067041124156180558935465425842302957131916946783311041539682447165791275657963685560761579607847741088371822372386847814607794729148216046313136922090614412215804492842021944824941735004196737671738996417463388755390190306763212741634750453184789168126980974592918606991768583367005900340371112987805044661342150114859356184148717899579501172526773367735483775688361976679872393929718867333973065922364319696119002502948074774446381326860577144974378955808552741322324546014435054555680155106581701930908732266709573442393966691611993004224687323134690730115427944331517397680204350039943279544868577966287142607772447062922323125912571316744202962363782713160735437815170130120781330963387904633203525204935629051833482862663012203304892446071678512241303556645815478728689656758665487776740104887330586650944005081675808616367904126781007788810847340639336835811884823794164485333815634745144419702264501052802867442418155938902671446635976341843690145296726865924646345955928010291623290735885708292215468805020989654768376223371190836202805521222246326981750120780772923521594527617820042402731503213541750033014978907970244471088343544049539634092277480592708559710204329345097198708760706737181971814779666789189367278593017121117487731964781339201293192101828776834556226648306982144676200826128927547964376787788863496826363214349445234442890779381035661448912811996112077911699368959883003917329998698107170350701412648931836250045899004182564304618946113104426403693275111183679098304013382696650824846435755500345688630526900168011328909747014795637440725102156689974717418516634911280471087194922274839672270980738175781481282808619548431667426192267306132687410227315240532750355600253437571555537459095441390523593019866643985304778016585191772585379359811529290385039394801271401111858698649609568032263602006792807001902647864504335579879262028185379615460818254528923424401455441714405166327895892775350813539243725468297677821784596590031980593340591872759521063393243871663639165497762928175290032711342121991070152187654760384350872848050157589719970162802056764659729519609120238952225670640018436375108879181152083312865160510342426238306658811775147207828942578081333715895630777546826800145037155342585163187907180489714741764343398676843306375098464968304160898532387479268539618829351942130213767784968311980478915360282193475916062130852009494486722963191603111582290910065737076649562915611735642752889347067851177161700289694655065040056615077696519652668247698211316493091520805219273348966221431648332134553413068376580940296716594059576651915531814763725400000683520190803320774040586720498589921384982125873855803673288236779463698477948559426638004049212500865918799801608506607779717117759709702677012193434610266189605580386019242838211782393385899109512388856177849350074096064963271796613929788845740627413427935821679345656044042482841976859576688936586449208930408170993091833291854784518770924608409604516885360096741658506078036794701357881724832849895874552269805884433552435173832241543920972436007708863280684564331434761747803330543356412071615772741953413885644751600072422808308895651436257172613352239152833619823055708509567349375253507354979429802665518228181515093761262617338268157228109151287958890595416735793714095908564245105824745462817808343305650299830211722876563874093933183853467649748590945613764458811054666874126376710983923961529647943757901857628533065016031794441159535599551917863137113428503185504535449607682101460170830656764018635371023750160913320821156633383226513604157266789600605808939487773473843820911740342577066450257826351497390165330168469497270889038782227747394115574526640746660809854253289585719732443244161508561396879166139593949961519396972935997371338499926395617260829443628372344634988729338786419087622707119074789075065514282556919343328367974736021966075251193487350507305228191092143601654668148988249240356930937245302408675365566686100300236544534133943130673798417845610501760700857634123773395585350603497360716645897884593334417847360074745576562555316359281886120799394170491240751648391924863718486808398136780508439248102182950055311945261434674856965965409847420405656304020378648922868172874640061942246018088325367539856703646265037686828508881858141688294845972895643066224432549464932214067456049870688015490624501885662795365064811773960972047699270546687827363196463799999507397339305914113580242006514295252224788607951762847212540744635505828354732630691038132973770115921133682483695376597048408860227764657378753984669558694399374009721965058340569101972855142106087408016382091573717339182464502592967965674726232970494204747548003466111172945391478184957424028364791116356857410947903998156251936864280509614888132709405327684339243208025385559352953226645854249250850071529820017400438321759551294532721227162893102715777997828664472701544303691593884492034222163804044676503954825914796084425068630823139096615723881758315056577099604388807079602249110551155985564859143784622170747761001417138558378911626708973855640057005571728556619863188253669002855713964280687839422936919495209483973671398804419238938630938966480307372861089473220007840294993027040960971924259511570308123377865010721830610237224354999873497054744735722768239510766802837606710259426206448253707409752963763975839236242116197149779120833467601522321507721738436799104940054413573224612662453274107114897211626653232687423592490943145423004545041625912950760529142424331115760181491117061585435864939909912119648950770436114472875646440327315164276737767877589463692924254896001374676071358437952204862315842209628911716179351071674306645910642354488238143974982702938769201403745006583438014363857315106142830508752279174558005752778680314430340554042900831520868170512383046708222782002235941547852933904187988582454573126936835250143194252108489904597015739118764295639926799888811863856449466379484949729463010720009720893878382198521540173658382489308173146710329483340963118011152026676884822095456328739304225678966227596257672697308127027600610908526245013433419915865700746561997463290304684049497826507521427851360509659001652917677783970401462700542793271140526414644610459284462953198902490297491424664321411051870527226149601068074765694816943823910101358751773489922872733772997389344235949793489108145788126602517911714382822065586428171665065170424675322526867033726169180389139709960165631237925597686701405409591208976093780670736859257662940673799320645585364892927393888970695735023568105940214294899958046543091473267786084366595184015819992598441010495091199749444149003388983115873505897475011770560220646919810207465205565284209054375598828382775231203368187209125839386040552493316148606723861541855274997694203595252577985267903228765473389988743662705439257130161414842311332483015062691854476243874355037736223238748823766102334855473048135115797113937881111984201140118390487334816293393327103552208114655786446516597078041941492284035118846882986959545135053689103526594636256967796590812850189286654493399065367690817970933781938991328854578936977105913414767662786972822410178626018064009697373547941786377429967736908667960630279175092088617964550032535396244631517924892374760560675365086760181702650122293137732016318350363215829674871340992877231999559391929241971725636581552755051017280137324431256013678893907004342772031544288283661791438078264824533199126535787553203075493241553832457347330792627016973088954356858068156925143416211291566286281556823889751506811231199945144226132560820726784739873037654169420068286524361782389212402247824074366367528612303318631781970151250110753701444551010206888086342198987774736174295525977392519620551727772002745336341680088146312642895032932804923059462446546830874796448377625085378014976244019943392498780504002284991039428145553113188138483648235689766961141614788091696263379486229420653011970767401644598534304831754088297789392177515381430115101500693293823856369238381424957093283184920467539705658848904087321257242424246865603279507460512423211821297511328830796686694827506300403803791025035262698700974834708897685209413284078997609813740740260161208717397613128132298455193264265102734252006773764839111424147694748463847440663532526128226192812208519972323967687761904284927486889622820677023133445290390594271701629841655352664973068675757242613399003092229897074795003554744731802432926579807839190427663936964466597806477416114247990794082292953720036281491712052524459424215984948854672898292368442098163395652143817042567868301187720057680236483063839482035358387967639817330034309692603162113198888024547783116741131567607539106043915982744907601511196677901202652109188193618977563254305191845194327277068722788489249028537009386488656012315598247163107741721938465028928515652319578978662178760026685087148424595162860191895294143695546436684089619188911598536796079293897766297871748667511257277737102163443177355137443529630589306320387024850299709529598113644954107361889052896017186558311476621262957472372587852277847824725981478191321195066986295299824803490252804833922025576716030921601484949786824447373189011605035773576306048714494553750742024947165526875822174318680724002988089462340714810924256681306717152823198034180952578600631443851262699638912597567661382936548801495386559600511333468205360556510950886084895100954015377110787979527753512037362057946549043788215857588977997568131950444382661272306076273975727086144327234323343642464668229774925745327677109390859560925905344784681909620673425672541356098448149365609029621389117961216963820606122810438687472886055051437908814587136891054435290320213758040906011662282331483953546204365932181545745780750918794508605312062360007042732450912108688176539084577405749324147155053341725957747615441997847102964787537275496209233455602581885475210103947408231993867344004467169344745060948793246450008630380270722965428511481754839797633999293894523257072711188554822598106652074677736277630799374205528240681985467283282320658673060936346737371543796396522550216094836027455042568105473553829452656697973608792721155817766791546015329546743401519310872779412659464365456826098798901828895799592500766385541319988492211146592321797331889009046790090808860627735166175845290049624007007011104659468826210324715665266983206988251737638350307221834814933896380338326728809257806335328862167997605788171840928305144894950544140652622355569892220923427793056261304092159755268469383381046052532054803517672802417790837125676976115585082102686333250128168407569909836465335247266081922258620518147531140608387876000449411703267917966676805356030200079103488427414768846562324431824963828284675111205620421473500991009690470869351661805901590770594984380024217047130441978887467517609843726441302871371500916567025640638828818092119086208959259535641696285111930739963295411597182514827767763079805817725179686645551159371575389553681650306420866952862044409627596966444968432058962054356362863183538894393340894119256155526989125495138129471639924781819581961512370904185948421185769121218981100718433751177495334687344197262359781682427722680103653739599412935575634625022309811659009153699646972737203739248434590103264656875022018419770591532777877095704840601570967636416942311679284273754236257187458838606802657437364193753386857091671263118823911648218634050863814106210090483980492265090098398318942142418591347926714262772597671989043521210470062899720403333560213509344844017239861856200866561080189371256053105064283761360751017423515252163510669076599861285302081602308563799623001842087606518449801878034135372456702509218736316712303769044662768181198506118900819911409126989385366174931062192430922027213452143147961276407997671006372245791657839127986196638812433420711675554401490907108054569232910754830121222788676567938602838153101532888672664344007381111567481566421306260271681943670206515163686776662225152948869242213908576799906392638300886369545442272180252021295083916292307079463622651841125526851760839613914892566584011367852066321847858822107187883279441414440129030718904514668534663344036362433302706385975544524410221653151433784685034615019152790210600369780928339299242645326354382464781289221366769665353868197774145147277044827449476691742131449226658716912806021792569926964319285289655452482842806921404184728702427133260300129321775185113456519709728730810046824247438273700706454926716177080525822145485288461200629928830782249712425528046664502968970973581113616628355499712640432631776479014800110341265352538480325098945335971418383012462787877819113147327016143827337432411339749452336041643280215677428869748501365595896818706428132820767395847895462635500101250688626665464977178365780519416523568741514297421850033044852604428113603089691122756054348379786967437228752382718917728426598315445930785628906735472107651938351754160145631221262256978849141075450999391318537692622852568919229781244305264434630503833360895438503236829999132714538247359061458374072409815946019016302238499258067499082816344055660673719168554983207054104230690201587374035728935464664231394486084081441368685087590207297430091365313525841604928529334446378526131240640260813045947036618298589505384884358589639064415579555710519533734504784326142063465361984661060035075574551266646537391791326950523951577292231554086660899567423149783355516284388645517182070813075255160666124164146066487863040620298325092816357720556878999574771569743719268286671202030178316485989977093621942602993948199381399250456148459093704786243508984273114740213820703787305061030156150155362219645892763119703776400487476127158219861122917456607535846298318168545670030401088064755687709764714125939902660626770250293222966505789021378330164400786517041808003992857185086248761071732516220632263559085023885281757848431914154459032553400392077301348042931904555110876028280236741562859604409850492528061607620807726113102205862641771560306105860382771614965997647062738927562951310425043100544168762430002569601567412120720596613599395359444579855267097903286602062392005609816965254195704411288133672529029987977681406898695130331990320143195431874179709494289149954584371297164604852154924967328281228725442582654003057241511705404909906239483526985049213275568460369412351452773046815770082936157899242421152912121172420837300702150928250194990837381654293917342217590549054254159665515998812557240676443506232760962559365953487028513911700305962764164945145835944067138521491325626750335531441136876272510533412466505414581482261866930633577897493250757634306045097650070959831906741902193055614366646162175643388135892926097725313677694829815539708680436590139793711049091160730197303119731799193141056168147393014200809907216304878274697917424498209467363729465565461442810301711584711829825807776922410746670677021782306155364086176126232843280852784348828879841540688397103762036110468365992695580115974879986521380420915620924907664025126869671504796647458191853437954280168236789940403547018421832015098368935914583044421784001269289676244634570027601254355500212236494911969314794128988858767544905997820322918054774818169302848072651672921755959719836931609513858719007944792005072896043736013038373665646494693955985147614967669345169689404479349732483932315987717294328321177247404360507827303638746978287185576206570043511305290420082037987125814162281036208591230546627093982384113705147067640478838088075817117264184327997490447203894713471564231235731854395993236467824425005199904480552000483489654232092849538955351473300276352838582290255535420062173496563458333673075654645424875562046906767913339370307404424012041071297394470091579437037095741668468760206137359257932151431407139137400396042786556339175588633649102437296511992994624766083490674835703297901944508953144715671684973360088905532263982667766752755456794761805743573379506934950950395201268443159444748859451640051299341151040559503370454324221018838745140671007868024960378974081849982091097319253930914685919878310053229495518055088960220703076184965647465193899649554008273127897466055507639558898632763902708017279642079516755141192406759780030137422423446970365235931868823892902780778210785113184752175523661758265758859475543787271033558371206054860570166243334713798303339307606997473692860733200950976769917476269418356421260706781600998442574290257705042567463842208250862211964446683780991463890621455581268820023347768314714341033467113016700218380884228525069721718500463887283294404551245998388644176801540639109475917110503900857590036844174927070601941561350390173492694637621057566904065605604863757663449335769479018149043412348433569941987560015442699056758993064957910738393649801756934241092857189405272841968315405930010978256985602382196464668494845148537933208349457993936388999543226930454849005193056149120316961643626753564575441847066275823944334967847224063757820272272656155288834777623357330049793910587946666712672039967085383749366712819196416880272097545445384066109830548078527826841884039685337675365282016381941315771613453285921021977259442137422544119087210978557999024316350948379118306231813231580625894658770982092123938590156644734570417531867517295584718867819840890723634105683928352924871667748074475304383621677582605131830504291624425722416600026829084842739266199703014012916744378910832143006014329431918629799410426375070621660326706948603258550448526842669444740740134465077488908066601345934369178469892229202342018847320722705571455171335839833631245395269418289468654689887629127679498946460809233042903929577981003934049574641381130157605532378004998309082817792384668186257650375253555591930261100340052145533246822001234885140348675746379809449299028590736998852693902757628945739266513992408230593955945357341981053483712768355780736665169010308868418078584708499128543316061842419740987951385997637963328092875853862453086628751299192920846344591044204262164275964414510073586813022492251407079449175256966455383804620623286247456916816013974113556275768735909879145584841647125497552072313977856396545643637700991544892569659656672968655295374855383645268915681812216332010495257098766546062351099972353919320706010987605331021650328747777686706622231547336870728813554208993470133136588202677244634636017371801486978383544953335406374651459713499334977878664824775871750434596693908544207588985960713474955807343009934262782486045286616943948989719455794460887514409601736531868742251882459694035417927434606727829921081425200069453420956376219083370384349368080197200197017260904190394317709343210285961744195103348974364434689692679606299192659921363882789826961575285981364295120260212418629735356755582075472825843310850438343824857139979975447032604933655034301802773600797422604646720270813656062096041373613307838172877076335634681304049804881683859054699111285152392304218079525979594840499166546940489274656046432183360055883337263002511653558979784975326750037448959584410069444319922702024212714670406113776662150200359764397169208773724050931599122401923317920240182926716870319571341386259331693634167226289392297151172307069041977792543278331421447591913523849198847603660411067804318597639294108686660745278570781221230097275965697120268729264509282763492830848310129030883092674562005419044465485188947917195897562819327334015737682207502773368386384888829353078855827043975137465116404959070322263263955850015970599436853844089406329368783570665854729522369481004214265201201951461977873366766621084096246118881570619205084848838455726496567173886853929193756736295951388745821261200644815095014902872742205434378751464691010401932091915515104766293658931162776731448528103187980121805005588116365319973729274693929927369250461610527691510380132677605712648795473812282966237698199790063588208719408693292658812253392093753353160512995421530923325755311706529162315555744047152712144752129891997439004918017253216307701258006917379767207943059811867703850510443033373955019306224522085397808944063605564122150667171519421728602860763245043241039029667899494713929893130137794634303509229123813939268206180364489669240656599803584212634138198448593176162982693705779144759463967871906049034946803544789320455223410826581370205794418814033906641991798703858847113137453352527960384945338856832644341452600479530948647747875560729010415896258249953633254008858481850465105928308804617170824353792167203918454668540784264741941331725748622649897311103998081488502191662290156473488432938832742471015251631652864693093371790204338955181012604671594341311868312376262056352813585064185667834037038747462794334763571346597379058061561329622939330425327616926249682205942071811610173282277734970909076680597813423521565132720334015458301270226615972577021995934620317598611077160975171882477085819893265078758407853951828611851890876125233736647688686013730505888787352616794854728856961628269213799332259278978254795924214950304521180011911361485413085356179188344290422178055667099128573782821126981374126425281452034551642837304845997235924066992154479991956114991373300088572529047477897953973012764699277583765310701693274212708412045440594564933741879857032460357658028803095186346402397773155638662517152429879626086449996806049948602517688286752104414120145240722106850926137888290284802884946957983996973208126370268643223093805914154866647825901512976401660377672601489360889252476078529358088371084441901453330440236674657183086785437863164809933743953587846766432955094142283972824398420534653571274196131000321201295830687179958218145697149155728718579611612690869509870389087858267757032624073611194526117501133400524738536708891131825108820431506358949606054621239577492572263354907706044733396788600040318757971413558724485578176072870520912155654639680472859285913961429057539868415540893094843339442939348895836472980821147230743378776862062715796852266715804034153924052980786177235481948815468908243907446137684250850322426792891888026232539578089371047791506264254747476581794479488680964708962885689864366024816539688290711247633547597756303515353038494700775100672395924397491375401467804892059929841514006574897324258708662969544523323788901385126551704925564273967058193514874086712483428493360558597317304299376002414320706989608240616766796443592181427834303331809282579458817410026784412712639626653114204504901230682406343300079942647116704175328766888592035602989513797647689594363733237364239361964916434517767768297989626125209557749652105258166578950418986381308117561150828573246356743516323465260284867557595285028598731419242307234059171235659500774689951501285607678873230673851044855686788987523512308008117298962087696785103443112823543719992956857586382849340122843508879270059744364286623878110108211101495024247594613194955870866476721185654692027780931794891197609999215036390343890958556196406551002530607276549045952378383709253180637654251455109051472738076876955582281554413015308829065209212066478533549948053135172373469610521698843698847942518003826365058534361107714772041456375286525290310959666248924898618458385545571624893778392397977366897901464224837074290776125507211381004451721094734991960857163707895556890564133207751434933487712695671280374827253591810423873915511387534659204459633341717751497947932047392541117203163409244046262099601475400016437545199225621505722334750081475957145762791481606951846416334606264068444720005743615220152545889913693220709680616947205924789250758300666231534467129342841530325504822406560934244018699573351271812394224408761383335665850905406703857928880888182953794424290991583209548313030309367491137896575945833905525933659345799590250318053461067842153120801996137637551089216182500951517966145613459245984262443820424606707949976474349709951914590601583034421988451819552891005158097949297223378687775971667532804985750389358425515826687590363674057662559623909610566056139707875495971673411029619393036479973813224737596519013443036392906775815425927299912436411020308056979877655307424833411806245042699556847407558856272215674110897228374725827890073307797567723188162287335020172990196420611817677562688194071070809026448558664025925969384262016613807481096554243323170748698922019614210572397916953900514082866821436230328078027145640324217185334042837667222099191711136708686734726737440931378308777194935532327694867183327068450745633892672031297167511608645672355391018406862510086351349899565018751419334089343881963727822364786261223362906071571676118724481459744235451284706369909997123084216930417255656199051822474165902044227749944849839038275584756450940804766929158979830263133030096059639353099876739405817421649483439051134277101741729104313499259243906586577808629098834766509239036014995979018910625459640065928401493600165836036556297135559907597621220328110810366080437919037339453177397125307510207553220195663719383001521850785693942420998479168135440038773536128959966300175646972824700934720842095618822335503824949491553114136868952621414011249034144966905370051490699876008300901817991623768160400730985832728641993515276036334735563961464844428019814126095103015066800162013679308411754821259438834484357359755654423075310391546688811400299439863453948905411606128854964601350447277240651385552459475680534592747300145204188053080031995641619769086966221783368569711008909869590734884391357956597488827904691646332673055495383147035526879211776194624801609973231611957900336021135780730709492998216152047612858283110185292552467756185270652161312435097931577670101627441167955389353295373142813997629830166378296845481603049013939787270551336179716610591638975517438817299140711994788527812646959913131419356561699349707859701722086655378484940428256237893328109633944353390035860476362494603525474645170270987327261610553929854798829829708270205391098416968253975367049403812834896770433679715492093675285686021585562410741340095446189754641215966176910640025427719943809864060644887341683058253890695125674964416441266318072272831384820956384511766472315054882242409218288050425801552328000410342966533842718234944925498204578477512241985465105202299780077229790680689585073083142213414469791282593142062445029166215433704224396845615803858264110695272777792184182512142755380164772643649001759165584856433607800779913080322972104115764955815871448557255080558432002429649434080926902760994052579544813473766098586796608431872201094093936587083691995679285361741238233774514656280753032498142607814545548376930710238674498297127899511385793874381480366616232846351842391327810806055408101004725516971093188713036782595463216106160757584955020452404983420050619711337794088197594222443268482998542534029838859995028770870871872581979905680746852489429696317304503422437142811941099151010558122344068553922720042810555991103223360218634632225918614635939114303561257924145798055149724898056484419795363651996926225136742591672673719792865516614484451350331781382181427755278923389537097573482596074366822397404880746981675722189795918665132329722280062516191439392730116910711237537821393892136658124428201073759039087566140236291259295603858953051584531330083317730121407688996848803681132543426997188195049951883823453056164075149642446800777408259946370679015911268563765459245450995581863346355786107556953288830268628892006174993087363448586326286937723362875716905188185095636690033489588603954981661718456657587968425306309417728414531032715056342345687163827846079003354995742461475544910762811154191801981467146772006452247448600369239308609918075710031107695395833592465836838805020667496744841510488389697878662496084656601128068271129496855268148241995509810918609147684501859944144649075694733157791085903626277564116124724640453809743869360956365306176401142004426491234234814317135746575636409851607145317291394927420371376177057431297823730396460685595274232755102312184536187190247043320551294175179756801270095140965626647019325143967966731166318449645578288238529878240011071422586209916158324441901048439891575406011680336177137053607303936253512580384013176610102864491264428750213023806198732599294913414083105834651821314391738880491759302953656340096548490695961099370743527266484641187706199914555107462569441548775309719997442037328513697069683701686667599998369345315797522266805803899586231855406131267751989883844811681513631500043976865285873986653728979733405609023606363350345542212980281998721158240778905823732812093503402554987322898438029813115043627925194465005886046880660297696660216810835798815397218641664301336082451935058098011910013373543158645449445542125485623223255230298300129556854574400931270192660770091248499286487604065221333723485072877429576055993595816455010167612567680443846464997936127418794387826624840125062352010271624292561884577380867550909249557460456120137924518228360103399616985521405002812546215287389679711794448039131651405839847146677095429520761972591230177602686431119850487221501374740518912755820748956090827501810523391261476459824092073573060713554675782683859184269527805002540925732170784327376849741663356363334478955953408655164309293016037889066420699730565022141558980910163322308278324627290314209038015311267062228005317155815014647265826538411824130758725981193898047285394047315122950374998781733082736748918823407259045572135161858661668970592384252065524076084227392032009755871248740614553320802960038173672695746491164102597116920967951651131655772237761562352052152438454764196135650914844035448976348091643750636831808354926150038896717853430502463371704220137126158603116539712211164827197255264596844013906848856352275185893783412929024350281071797617209412147856046727806372737715957994231353695062024585740104723762246625259350487381109007234395308172971037309271228069278321744443050335735660159300585184060766804158091807385685809358590820553952197252599306517426496776356500909110633932478305718000114041241030285605712690512730853907403690249137472047123406097512837246147827373168074540240835131960103475740932068078405113019573073249041001998084737577096154781178653104652355599706926536183907367229344789888633704002268699046384971209074229604706103103347140053395115088287261889998907290754027445265236232236685287125131038673201630624230212163452686965358885993176022162072548047950825152594198823423441979166751054926165031034671078412433780089665620167493037570132497633545086290087643011337805980814652978115303346640040006095028593340248305840089170130766199011549470098115058993553782135487064641988425387305236184701170969565974111637589021080490494008456729893106771062141846321965200711638864949275557305382386980329385131154364450976975645438767050371881794134722918593996193515584555009689500787734273677717260653834146652939298095877230210074707532995502362034061578181467127538113303718514505781345298138256081646280804733127299121637950023532285934866883306968017038389149350678417450553569322107357572411336712219379525760896549054983255840541758951325996345682924605503310920322411693009890303354233049259376504064826163556029492148124795239626328450771664314488309644280949572085750889490137030384621909213889251587969511592704967950706571473558937034330519117539781480814495701816490420601197991527906934908677385037918246675400871579237673504901545148894293112132244066202617454543755782334774240006657356804004240737249438462104002215647287571974313611561067460980993219454973626070618840761318771993013580020053706748340985129294356571016339136621896553448355447879123530896395382084780497853339861072198947943559001804684948655872543155334362401479757541674092693077421718149205934603177532513493750842065711619981665800981123619809450903470842898634148652506985080282054030502309048434363996750295690783894431923940624974366222093079736434186251473911438075964419481273802076234231525024928458322185985613496716416561229197881561992695441977894825298480316090297246034114506801810970515535344208289405014153428108080604014793015169928690191995583349779510947486442515064725168718912411209800396971848196661526855550846666707431098382178707188986063505528395029581272414569197792347420559759184153432569479849352925470936246786014089926399396675605613056995103107360638927514842107008212791371281339468696560199385839445984988439802074527338615327636470821941205109129455322148130891374024651918383637167105889084548109946204580642915512227551066223154973677155885192582707917992279646945500238799620974108182287675204671332549991020670166941889855418841088148522002714311360814804054273190170716595247413192235256173735328432417960340997811085412355970812915124600967255712686405564884650696362711354796659273550102168955000156977257422062665831584606892719350049864518888593826538646192268690038544355390489402476335130637285261044319523374156121963860378819246479445608141776612710189115187704683800850013634151373505374730595001882733149665927927963784931810478887207484014301603652347765208009627896549622405639954871249760114199802920175389093127365837108638293538236373717144808707479702532598629011922024935767610876128981239987823364033909099172327697201821721843628647612496828990196423401399241856444126901480920056543190589295392546976552394035597249463618329299173293603421886779080888997294739849780650886368096613885907846025328363210788471566717772974140044904938830593753919085105820880803456407816330977309503998337143732121530191627644679664346804490370827766253281402252278643873864192696352630363317952800306737163075669775127804383781260671972810620989681670644878426644064175479180075245405900226936368603662306990337085171469427364590557276967965065395215581616211055386365485176266526906400419779067157871231005975280902314375168487814174283422396677529064658065365946086483527314981798834919996060970437447364560571190456032736498573659029275610831160926759198207563946755135914820675857310100475931471719235380335098351504887202834381473777100404099641042261020608777114952345814328692844379810788160592240696099841599345815742811295814764564456658082850325590857764177896452678904571067661962004401742514497021809115569438363057300472080841900332853824885679751097175867413977647748979598772721295704514642900763674716645991574194473030762613509503789539780919728928561345733032608529837127883014329305159832227471415468602532716482809310695552659613300894103072030072358894300663137408869218755339717335180974905456959586704324470910013530017210600188756057316532502958800571314123780325777920929298615463246758387832742308443780970949296881633680248328892631826950972356326517950295668219805818984744156720635239007838085644599993163012263835789343383575994374390815281683399748664800574614117114073587147852240932916228731870809229855020277937608811933427005520822895802976533634452639429410660400351153759167464946944325137688445084706027632471750083083833095298837821365974645632859232802586675569710742697555639724769836993156387078309022672185571265674221837766602983616180895158172211581745043056490838031401612766969366296349637945874808937740317102427526682452763604350000630907722817084636716866867958230889364128575843876149011419425218289190217879676688614471394146479753606466368213092995229916801465881836114101670247988007652593035802137049843708157703870616756231754465256155957777432423348853821706616066178634057730705417185080159984029831440680023382872595400049951972333042084373918619310364810327844967856363876566278628777836734107466091577790419356691430242700255421780778706855099000786150553027769655558912787923695838496044795887592783555316075189504140795821626144325958531671340929257572191067239868926191944303721631553505188400296928563208452873896700067617773092764816429376066350334663981632244671185310470095143796259407435230515064368908529502965832714703746222399013532209067494939072341097497469959068568646091953818811187413643118034721057574286549148038713387063864994164123189083184430942636816213310747297260082399923853821456872374402345970849279431179747386909353565617184208677974616953138677041922474448011021488229600467193448785748549021524561688123609594514087282244440719722215146128434559493714314061856424566271510219624640269937294367998128724005928785765992058821268020980581017674707512321064632173582781593326320293287070108462298496554548108315255720463041635019032511321039922037711804660795464000304953981926590439857240571320238074105159154470969925686340703918388143508662273807502732365892444309657248678459877460125900013000168206492784468041996516569937335577544666531060349883002740942313477071397286349805823005889874982851643706049273975694991157934426986633194245270658108837871170126294966378329202522794926846617042814862951342581200960322906923145524521259003431397070458545191956924781790499937691609300833942329116431375723721860129934747854719024111910509347591240392489825574728109770247639777979200514049425161827296181164269500348815545003690518944922549259076549876648539839294227752849925210155840550391878550130164153234867561583529538115865247237246394315755801141063193737689671102377080761109919707441677018554663245677113716927786915762565546397627260827848555732757564232100941852762148580811396352137139921918399745800943493196375822725818905236710729019367077266367547072856377491177725674272360407463879203273740625530342999652576255041336544558574394731055916403116409634640327383145815031035303288499434795895618858396674534836357553132238646563629110528170446022410918290453001375174987544898658892929520718744616598293262786044679402401564586732555863486253860999997786138775173388348461007120394726049967148625411731795927954137487003703197838491297741452282884407675418248563301375240943720669605050594304804405374539375007794530165546906143991904138536080295035223444630420205876323629913940801466976184884036403764356106969954663111259195834024331663645080933055170890718808602855035156036950569975620592618436522785529123770723344789233799437260768089566768567833516782789711971488990489089371782253687072027559355171994440906663578328657135291429501895847927061456712262716935291443955433130608145686352626967011174248283056197016721057613929186797647287417125622818226098987693409745559007641465060884023933692301247850141744968551899527853730830530336486328903811780983788828739929263621774185800825844957875022496788276988696485525670125562872436812567704865191839410156953961929618986363997216724715905919659524304061186075263178700493114204962990554106627500174133523553458993868583644563133332601854245473113962306947699987449710520335598396252601798514802745826591430452884020251523763591632818316617747596016074650099575768491737867083368427892761103251914970463388076175485844163720614086893743349571922987869579721852898868532889012895809062058033106266704038777569412988144583452537216564421713532099366502671033652277696074464449548433619058606611782910460932666899577997469118088354402822736186723340801721912761639708432526591659154344885161861034377032011920472985520144696782511052232756596040713268713177885631851680024450274173980838433343510193982410665093219018859439724519841112535837843816552585680126937577289457601656868473888659826332925842981765894674121981856283632198722984369965205005897147950576588487276871167874155676932008734246381709298229357778664111062304541599957897527413092451357099979831026667326824476030187747271786238455246249229057790633801027646132896487158477038795430352964146376469838207955956159452211332263652634568698681568976756904000715200162386416415046303785167998962778607819332104695564617146829099673542250850026065467255529208941903763693451929215595384939516126250577354958697094094648956033346146044679809934283358529241047298711920072002742317012066306251953102864633316636469828324077421698015259308411545054734697016724407179133640367699108731755403466352867635859368268447277391688673590947582197899799370177045913197810387778918005766171015145942454017335225389128812119481969337567551551884786737365172919303602276996181263639101475321994932677418512001977089479661328483983643543851072637774290641405070612183603138492249308707398608032725368633204886655306769355373908329136818773112451813898641816287122844366409851178208738101968165797460027079164454929421226079486514981658640900940214347556617341041286192782736685689635670451419671667118928604749123959565522628433428370176465103005251127197755925196387297104679353878429236418118364958560413381834789211669121089778400997163427998394396776209350007719428118115139803473175204510199425445700911798224935573535042751675416463978461327973215979203256325019048098379918129806725088169699114189012834922391908450745711234633229850301154295339958355832833211252181296170399306297231197478556841475261953265580766595434761216465903554502130168867115127597770493246579963330191280802247103962371605814896064081849862454593820186651863740049831972437502236213757963165751190952732997424950549725512434409763598920009715843939822357785128127921902434456528564021685174084783120694114805193725122489513489235293675296712087455640547349042490763733371145836457389092046313751456664503302719891150098460253658645084326226415126004319660765472307275191801428477407980370206281923094309015977564184498824164060326120165119721513243911018740705216202236966317559772890066020523351209053680127246581124073391924253042530123451831111080469679347239114022622676952423581408123919216627172422390530663827033202483675617049605279185869293912926170631988161292437155099250514750943474160584380163308111398931089010678260929162619396061462906637117053441641403299146183347484021594158677473146995973641838362308310023742437601271595738871875140918815208413105933065173289274739767041815289239717007976964252612253935806307593540480445862493973912927252966664121149214742487273046018776353027138535614909064691561616530523119778297118720662034210120436570473873978894205637909154445190950684402367161234875812601018172282549277718911924003315842110453946398195637995757776215890968046818765676464734617135884248987794740319937790196363291891065988037131124681961179528221932033849822594987593538839323025442408392488771119449796600824189203300297345425393457168800121180466720464402547928569491196949042334487657001133272570840178969511426418554690845561797345695182765786261332310993653719778800698008434066630467050636125380632911609764928731711852174200761106529853140887106876725141201889482757109904736177428937743156324673360498159883538160121896332926681496674578925819277163520433591824823547989833041703433260205439305111545610160965600971622615056885226247741933816829920043015269981825754294934422414284304828798585685645458159084707084192711989770141002818531029762436431431095350726866549230558384781500425206226158678295513750208098321079977013839096765903522619504134848125536135303464391307188993088861900346586135355594475752754914269649808783305571145091392474211207236920954638099299364048698800879631109611933276387928725899426619664111595451319258946430215262480314385154248999044737444062247054575836069089808098923797799831638064487046981638974535621602737882279504446213569696316562358568724165596783381122534273781451931223236417781401614552214194058663571842147211308777194133843836169277986644342471808954886319941761175806965724041354709170616731394566257545897264095773284082939304123664326888004634269756014080817477926668582709234930112307530602491995735522570313722255293962950798153303499747284198775969123834306207512878764964765815928436540585823820983084162276026958605262931724771392257503375522788272163747420115740244376427316077499618704303686629372681170404293574365335104344849340810618288955413679188040501713595439762746231817340760833214129780628878686305287309748419597086283773454673134047504046863827536481546897381549238645371996018812419296601685956205266956018920140466860145192558371984880082761253327455369013042807253192606798259458660139253062815844678678626296567710886627640902034135668547953978538143926320561257826225847700805255342513842057240487337769210965597180722005215694489470311981258943610087180904826994044083120901740612026945576542473711859437228350866208277022495054458361844538795812202421078420441515291292975982301590546614751022597944253414429683433565375891180967698115833069492393371177912107625481376918204103343589040023512999148472819392379374505390654769503472288188723371086064442570517719623562708688175285050820205275978164104209232100980938806945632409534655704438778821093609047646255086752052588409249131704560087896499720811854095142053447669211184000757691318332485468896744556162160297318402397874519438266397698463283632810382636864291782540461607660558614883387148096749493410594102301951389596632954233033496469728413944433689020699842620225427221904760286846488270089146822295732464689372428918258381473369348110635995865872505065979733840599887599738613995654513552444886834831757837293675217910005934223292674981395058368307139491277867856759325039985348051563411063655639882026187940218900587219874475561609012986254599639170214322927922852897540473761031504196543353311713573606393487248378432990507661633267925688990714363664744581924212798868228020705711309955744566269853405920061730859360140249365410140039593548056825988836181030397486358001478238631561605085231196168385733692803656554140060716615471353251486119853586399646951743199460671452305335696071581313080567213452033036314991369289912493895849800796585942164788545780013446556667393959539878773343037117105123578982001499004582004579034018091664774328028149680466522255733628030219138299875132310390940693127966815733247459243682724203422384282892796370860391132331687169648690276593179470294392237860205317490513421885799105772630179065428922509120038426042811281346377106535205263683171285125992155343517422742482467527689521710518685839104904736437297807595397527110966531638340272264295023431846593762848633270174736130519340017331915146428593537247363993166821366889052947691724280097095971601120943962563258915021335910217809448785777483354054262897269246388518295180500570921831356985872364731515578024459021532969284739498169338265121928598149702467028968923183760306458761975223166485868812346683876279424394804357220467397960112257232632105448382990889843557312282074612896007563714001376567569586483830721271981699416731967689503182818253803629177465708397174721030058899555309636447768342547105726533268542565048476143475180018633806518068155304609639614752537657787966039054175668867026240158930060843738509360956675483331766604265772032942850038253830599664765079692300519959162800826243351078033496268319382609441016475311456918134934728082847695631307887476774559745391587543937790453975555090222263274439345012964885869184073020771827263754214814321431015591433775749084035672901867709363340471798148694162729357524075464156758612309031308578701969716049298983653598024295317895045062452047513458201774702735425763676071970012595534326473581598078100823944991333869462221272374889107265375648734754987221938105007568538860476009367808303428851840144604420889855127495901487196686620425513364307240546401111646138108510345820352452510204268339435133770279019104963424124560703959590128376220526405489535299757689928579867194065770422642532584346740401012901381090534979758488597404857657509006279997120855624343443045654543893378126147652719895396655095310191454660088435137684407272433466672273856384997328582610568205817790045242602493515339308063392398608643726918293995641358942450886674622778835443551441090315859227907278472961677052876634867062319079409750445655233792334355727673467318455784343295632452898683913798085983458915174618602493593385398383036991454400455806375833631590556027603087217967186503659123134112921742513440196057110767420340316179008583377269546014048190320072005469277086586462656921506592609067261623422261630548670680951445678169337312644833391013135793726157138237984102835556841073854415928682285658236853278270089694755270933267018364692775441168702424570460600594002032818735819347861459166620689283196425259957016963733612692952349354225008622914248700649123561459224569780007160688114192847430356771847354349712863307969734919230373193329764378289892527912121595368839532158345881755789478266269565158083206496756232192661482873947427342855446531879736012834150358812363266453580444668897257577149477732039496251784113583118774175933014769372877562225877911794370002241268829888766096081006365937680067518073934411295931734844341534446070630924195517219039574339040006087190845249522916769658439403384235228457032089036460623991822573163922665406073189935087718995824089012435574172377647845389984663516628987549196826263288701540871870954164060175097311655126443219475526909969799294926054866036746675966211575033494819585819001179897929208837592845290707405619314790025647146829664029050857445386409764009628585740278943581261642042183132326101234754359524621626616290628742613786281458015489234009183072616402681536255194749304777280485335177948063475139335150860494396328550283336096653198552901545433822015990374523894198792457766069923521194454268182063902706484361306330310628604121594927000869866185413645404222051455184108821512544772121467348803117191167904837993734924958527917499414525595909818895730401625145456769269493271458881033267896423903263727078993144039698014234638642937191286017787319686770139806770601086361656807946941321771178343867042893254183066162739633650731262465529169834220639342331611334147649034706544042476139655947204440251688061204686830556022698725662860865929622209588913951356000232636601337308383886582387216128420498507858578482536302257003741814123220581220885712022306011193839331531056256979760626664364058834159037952302295397395709826266746147655400666478350088914497178334872516217092841812214832908811860144021260464169692122351461836723377541675236651621488020964355463624878175053493179229137979885384961280155018634528388656363263158288970637166689186594379765044875005980826614006402291727126909125314599940889368450978949730707058904300463973367064602321916101169335691847067892297085381092187991144367832866332354283937883093693333510022323622989223851099946905690936827787527060336722995391704629889318839753754957491734864554345551037638214691828543518586381170400754662029456616651709170916360918208800055442896144446089666202807313765163660623962838877850230064978101349203732128530913344459021285686789501204197025058791393099920046109589403348019452120722598602515039224074954265510539279622758618599100819077023289903784126336423166691328871656348828079931149124361517314004347093901043079295665862884570793947443671804477343937991704665140225702379806396602480884306746297578965706509645369723802894942429026170956383419939907726263977917251113723282744346884309140960647879062994077841773123455978153062560070509605445863313802677852324015910292806769116267507480997348182261511918023955431856627169769103399328091375092026676004718288112209127015625194674010192589878769849165090661580687360282907097119160162439360102460913265206671236367680173100135351458660464996170923931084070580367759234053613662543452331891397885676253247775822506727625362218429621633016461071635863804451461467317838536422155341412575626730268004774334934789209840507632338053825755590165780973253189369672303280114893206261942514810022236195623483636019367645486350127158364247021895850737347560717734280049696569703077638829578042309665596271801032052136780274383548950937625576782951079738742202703266498496490212123552849892957928169538437859090955502727599772668968911740266114857807938110395747975482331984292052459638194671334024221471130888653850484094394005443546917131776535414027481579129686659752004814619014414841011462690402869331690561196747945004677453943835975763327079801596734687928231389911674239757823005438908379714698196157625315310481213790440451123464264431637944080526518827052698971257961705275737026101507898956549566845683099835489193167420418030171031966162387382598907645665042502719169809441021157399802535276668687255159471156541642894370166856667119448373640335586988931964784818491484706781924997144871752508685948354544760976444617687168114174602818204888907628104458837306743822510753255284136686147999167187106871799254847272001208991326910539332915567671283423582516826582654636830887826490316043723077993517369666630920364511292914774264270808827961211101325565400049510070890701668035339461375413781247086299792725790130349619553700219573559476342555915692802523016815760115857139416479861006066795785713380622159861955675973761193228685187809583289656050082523114146192378367014217200395456647166605367525276900631861790516517686172139364975195142606053567769188733524071864359886205741017613762841250350559273867050257792528173163422395026982520343668096155578593587838699439253286877213719020706203144542586424606496033197303542852490955066028754967903555983460444170243617325158824880109419071407186244027663876146415374995541274487147405026332027804825401976747269869607791725010207286794548113164212831839688370501525364227754858959116597720420784530211193093871972276356191756730822097586546056199744602105689684203688808566276917546515171815993749814722936532517532380115259335818041755365907360855719846775958386357794601949391609915249263257445494877360350463479674870933735593992484629286172206971490718372791640885772604327665706155312566344223153500557259224794287752843859961698014809687427038744167153496534315070589337778991700679763486175952229825099271680268709055722229288065556742682860093822943505274993768205962229422959510275982339238601852222047894289925279099573441773247137017001839546756029404659886206355912012645486155383254725570388414687376189450868282743667449405132417117553641043182725912733520021270739168080210437151884974363467975202042878433987240686994733972426321700463542728386705361675410277885804585425354199056700795323655269917281511044369158415496318103044663645098378836174039017869594301896738022395869635083066190510304883325325259870957523312714797684726075557661087535243134719250827127098888455156558961850254811582111257430636427454554854651858547149427413170672663582108471640109840394731965946767386554793121621078518878411190502484498668970739783756431218972005772493006116269712216720615510554017850262197001830395720765990855001451484629888035338824059208514293738732728057982074591646369049882768901979904008100776749877048313253589396245189769337718773898943923847857914782429309735151197897058799142009691229645797271191267917728400957065332519363635022326949937988168042477477363566254084731621688031762433676933848245809455433305179331541571457978864469480299775195502275531061672975197966259256449899292398138342593888863525252390971865576742163750644030569586330811612146010764748384869744690705815609210676969958861108268631530206480451885500046287098662108438383220011374793761446779256563620112860517693640247977728836037356654932277127963767598825792546401439834470351001487247470473408815194691757861533557390628335523190149095387494225834652796259090954480461369513403166475813417119008820616357411829332315149151130020511911829497661427340038390066967295335648368448356580095243881400938360382865767699542331858035789671223792332328865026653697707053826553300368463580999169372411226650818233726512393909809085559162409934816484802368776674087726688227451314430354419831409630041898676007622110715698625698759071258074713207946224087476492326791910231474426756395265139468050554049690916906280849120863193302582149186802953082048789129884038848061947928506834814272669795097135632170285783566581337540818894855288744337019683443707046537243382278579760300949133224384746475626911446560304169993759549525022080098047716433857291894729001935624720794398764602555249696026493769034048076638798177180003398548872848752566302364846760672585103340412844767371090488719028265273152078647597975070665166921446357348852268660157979424916658801546892813874853052345303830120966502601014095634749555220003564781579368302306003267160527188316391210158176181897744217647863126958208658532291294262273150405728327825002085146724979794986975842801600912467240038847046547043277731253918357097598156120054362637663365197151258094150561729439521601192098815340095914283216944857556840285087097375886800068426477383847953263323425262810789332257208137338356931068440928572937885062732083536416912590628621353948122178849253531053081796585436188847977015982152572520800506110710824245845399224407917914691474007707676865912230546099255688989620389121846978848807251577250871708282469500768824394550033430773417609785409005520597120209948096570644552379919426569340299666687588347928533429987108996729859234912256276374871727898310892828016741722732157530296806094619182373800658230257030518170544320934191013427797227302837690075080665394568708363632334005742267364739549003754185180225702673291945074549592028005322264557643925251929290408163584062943124667225927750660109508693360847525277155778313617612602128320775818283432725384030799782988889183644057007298368013695069156853423285825710318244299726308671633853733391603382212137182870413234802791280897014402636690146868623743056606219647189971039538932447789661518227261452906268114239033116573220222568359880830364689902682653118573766396272266065929787010935656544710119872427031231371418937982287674202042257778894497082696482652005268414779554231021175620709717318467624683196442909395036930728090227277770358557847019214464564643768273850361432804303706981371039603521136588598015923655970383435561729259295056198189561242400564495531933504259059521975972807326544957434550813284912619813618798049047882389687113206422054049118773571875981243216342495719688247957768833752878600088898813852992198329328209480678281281501278539214207442577993463775790091156270185988350778632052763980856168538313822747726548939099876165657873374989550574564126002621894727192050695083604951910762564992629945679426598205348491145671625206319894760669913476267293152348200940143703455517320968155158171059411098163458734489466119785399761293593442430786075902417583346028800147114195298119093162637189961442191839016280295856003456030216891040303092914488023362603302475322262658546599844203179880757678818783167181811046676236684006677648327044861031331775654112848241788985320589859403043107590879378399908909976471511910860871479547425715865728980303774208918143564632670314779904613922282014589917327038913765563096950036432931904899653562955397091004908578673395503714635159844535180726987417595040471503155981793886629644209276940555770678687606460791552577534422890731203408496127070141613038628415547102627571242069731599972542428016916693422906291428139024625579684071412074868005341999755802611484140953662552195220412551974269258230442375491425158562875697417045338135957576235936568201269487346511474414168358416399066341758341648864519455425823956835746462925237058771527950139321355002164996950236336165462170316257251937622412330110687295219378455739701869736952053944952716269159605474945669576461207316706874862716418636679017632702246767040551877260055676360119391595601872792519052394480244610423703657663312275897226897497704790966592439880624321972556114642969587522102398331324108464692454346157126868917854281882184490267498147259895789653717071305730446017311757481651993978102975281523746529920888268597096404043828429371064695467872036403138891319982346423530071665963196710953232145415535462221859510687086605592312084043372055497925001964120313988784371077007921448329722654142890179672648792055837979453577816973543420500397741398603807813608790495158533521717530900359046412378601636679883951482086993521786261338004878563362922983121221667758587697277361213545016378737604823198506487054679741033318690130726705987899280965826686098644550845577548168659776969175676605348145111635792711937704172434657211386790315037754607882330853417399579389803005982541724800900987605101120102360761563545520475154189704763455175588914542696568212878093327894029733528995196705250537458127995509658121106509106311253200027284109098948110580076807790863942820145495530809906555517387766942520568405081300062899892124337806522515222583293001429781466765461552897275846390754766829465111633871826155337644549916845238193616625233126967790545021290512880110066310540592425490872031338226405927178992893771004961465219472419589144976832237139894030806981134646911040845079333557727132292162006353907011969745080888863110081475024120886113724141997890268815582165047269245817045585613561118482619653770683901594943048350062292715128131830198699414149446034003780795157877502088617635061389203604029131692234885037550108430256137002284073869155927955927062800937352959838480185344090689453125952991158820343171880045866092441868242149942586772072227413342548339346883650126232024133665666334860132830485533493837533933410485348098849380335287816404177361997007471066297765385088782728336720654440386292142469661779056653746230245167131465185737422082444839370695015035875229716692993387245771270703490024895406473629747299104004441988811411729424996459734861326503022639725128429211626630670294167676819099658723622850902852604923531871453137656733694248269119347120999724687616120467111262433338115490736127396860006239959379070660299706033297921007530666390638279476175381057392237099312863521538394456039598217609317918867050533488181629164494488594716353834255941986604519634230331459575383957911314148548117526441803870530892323730939320648548696636384656817144581172635135127241248506651841730295842280064999992242572115243207593424199727517896721821298911239480500121991459947241718109794627092646507945540983165625243519880346959171222405673481641783961952292414000263647276905195334493436954157333958626488179682190310519209869437400613800159810215978881051367421559581796770163560100892078422352540794184228223157684372567925912920042580757630374096542689435802508013680435194350154794787717263150215030877110896172159063590151615451184201684952383810766831461731503641171358289430894456652314072385859600221788010288301636670873460257831956157021319239359597608052218892814529281525499011422586243825661512258231938468507808349743392409726018242028110950988743530587456369458173809249185479386154722306192731608497843958196777989250841379448791530137665160077489155117823918541637991156650597732585031702977107103332396257668918238948249270182463830479510347725544461443182365693072633073713830951989695921563207153315841057392636253510623698712870800675827107990349782375761700754157899552107234519133191006874847717914017007775877804941144189587015976813657131204181355505600020217785676314740462037499255219690846959242502037912753854713836787007136873339652326126959955698280330753237880444037617982450254566403376339114968111908051111017580985561086876049470671959635620832475477145564843831633853156886969216531985291130171624391941510905371961874585135606834773374684153656361131747439673570079270445208205017284473663447717313281770110041463608820037620927134659729083916171963098142031954504710040088710821027431279400634993299328159260562191413592414450022833489416309766152378543413646987069400944307714906066970094273516670125482914406089690026233373047394189872697620201788748646057420317295075080421226991452857363707123498748315985441661656855593929281922981072410503518471611327481524310456008864651209459435569014913906513978056894983692703867274979387458270871584286642982057287699277628877365421618192569280407646369514514893050396140024364544554721554408039248610890324302304571093180828563139831984088967468883169793893442070682589699503088352487195870952920084944355649946295547903185519063219372066298308935297165881348687586136223952928350024843801612276614810214313746182974035999187555167029148237073260134418873087827696597592303250751412786448520168567298482519940266660540621061040073672562849337675138410062290055029845852693549628407055840293847199400868509252486206141924984116184074650146104675110405154863353638834109215715405221746253487859550438755439992285134862271000816719607387682606393324724933157241137684902828866724814810871601818690407107961429060570520208697516583165603792370215400534141519267181947631145369672180936664410295766957598066183694070628505472314501549297309214570291148490372358712393521346509660714633653217314573228682941099813830917433527850725573492536532094791022563121752484874436365985977343366423728307380592497375961869194736150030525280199011973264972700816895231534104020498320945317609583849009842497080911696126001301519531708028918691986896620410507591978112044823433888949495132450295312797493290802561152900110111989540585597079565599234306516520562520678648882726313283371660785580953670350168593365129372365369141249664763234327530140649085486047713873383428997175908736552428316936013713417274865876445968724676236210317717930142370898851371500057611364952970371332013371217002815402314225955348253210810845963016705921123364392125782474394652168114280699233969292142316525521181182159526929309597823490233101005701091659262862383290492458342610269115171325873395951640161871958614059048207886543646045752907825298116251838217037451481410115487440891786590889022110066226038926606474004968845430400630686063531127824918988510795597314746194063204515682792568345514194009582978536126475530745829602451457866058692830466240316671671754048440837896636037384825490454049973393192849360604021082307456521927612554442564195965170747602657561287190325654041571036319260366424718304033165860305454487481130416095276519387377409944118650831702441524797766367944065176037347200146545773983686018101297979477656765808902102240279957369791340622155734126878940758556299215149469718652343985806487425320854563428264715165960860796166816000951239402546660945450666198837106246123952848219883471557924891501654238832921051859477252363218001935400626865219052205236769974097399967552365697597271200492540576831931038130045864294325485089240958517819914278203370134377932898106332254428544909987402205159456443316450610959237537288448748109220210703688879364795159338500461045617647240080740813162139507858900262464835631230910713088863350631007282059687762978773392237043831604865604040023493240182001582705093826863361293188606691283245835524020573826203330345306249518581140074584346866935337997707873447340925175292498655482341465884063976998133835704108994008641765779658467672620191722766573383176734939526813917568198855807160378130376664279244025498941636361616770089043860464260490900792193918794308310522136176953058116620916065387915864250901822876598384207236164866435995355813576119943900364476058035634573175057095723356399321639026774662770878650537110558891194840810674649242912369461558239818951775585766192428263398947646186491090865260150180838938434036374070543454547465397890314016270345948619627563994130501255511654790550122491369665673067101733735285486031207738892707955167700865962743001316596594011842950266630346747926201213521768115653752560114554996587988575299720776977285206521317198539985961927091148303502929976210673508690961646945339166060662831444101508322599401836323468548334046126832788345701169553234441180499901735162160929785881978470771632350042398641723909689752140201773657481170169778822548742731491044990927660373531467831008792587426856665895495115645092059042115255259294747407413596082093739201373348403074097600293383292071797847981649116275591156964385256381930931075907416801540363983030656749391367817044167440002842193316442268817825750133603939807908743684316166361527288099448367098080608503425861279119351862101532442642271579846715586312008339819544495469764812101425380541590509090989908221401378570489788602879741957415633916333112752110115749651099958256788995541527997268349547073803931273144272221972385928197911181489439418488789293072298203861434856681769027705524623199420956557760349300922964113610468921260485078933746977469298234186104558369127991101660291618524022268306361142505786975974380294160237297335317444107955691113974096936852477506510484670087343463638383844155189527466823819599743793103562990036772075080400922666445495031713859228691820012037740314710013808095913266005789096301234850307827237462638036156829533733047997104480877020735832258981050057017184524200644448340542384322568394176250553297973973435237026541084680406837568321418278113274647696050757929835360628844517468948149631956835949046849405028392026522470161787412603561868219983633652374000540767771225237001730930296759317414359390135516855997233871521223287936158439528917497799695963056539749114533701733370901247419115550003276751741461770310191199812981890772632761861710652780428906223900734569138758644145946631148559408914870462437759729908376090081380784584039106699797811333719542917155342824352159501278552209706525971860926144459561405374230981706609623485061850255894167758431354766327367104508945287441387364835440688011255166434886207222195395982249026257559275706990485947892174031891520018812706953244547381812051371063759436227436949351746416382105314063992196528880587527268779103786759212491604008583915957153578347911490242873428373662132999021439495619099734496401395616456716129537848279048256398908684189978590833759094276467262342988344035677667226845653326746682965350858853298086286356620502139395873546616964141349488457784410538594167585064613373673974919760108942594134010849280077401396405886981014360859836040891008949134681863511142609105576935395737048808794281894583976162726756463731511547390084323281146680240936394069011385996279921738316182408878382710970754908564633206188239868134122362396191357022758560653303710229961773678927634798729459487364080858648582088504976298927288639432542084314619783352461252534541715280097734731199730524916052066953268445350802489483672848258374932765789926364884800199279153923626393996523049705156853807681983780974392360978893625079626697120517156889348505708533186100201162778351296995856515944211399194979100589287370427395166907111800529601756863193533556778253871145196107729061527970002573869248248167532689203206101055715175147488430725323753857322638450469971599920214757375499589269954946794187080071253473935386893206974251713024892593825287785104077715316443586708490773088696708608005395350787950388609695560723120371696731844019228675900137488824865962574590624656391513267072157345012497645535388769958182686644580293317870014350135813699734696903871182357968844226958520713821481388287750012873312357651817357023350363828919426175162937014392442798493678153394285925928724390105720970190983822595601575023460903973322219956678500775181967309226442491390600202122488978633863260483996666620795211566713316358709083271361896121653368589338246493871357951699833060143564164683221335132601001104116514311069812489065192925986233010026046408650815689639436395888291142231781567539699701434065837055139004975707882549906957973017978831753191842783629818263525797086175837518672146193330607898077526390838740173843315305170451042810499966881632218948520197081039785144918673814273263015482889075883912273423718550494342558511702828356809877598498538643430789222160303674236655288897790253155764137848198080396346488025339091538230311256291661979481109589296281408268443706336656231072736855303298788559521558647850967305157191759686097177667473877689119570643303864330155864151652990077507712635175782573885288004440834524263982850483262340818024014165648799391140077288663547307395612110936469368696716979071866038429907283347938516821539981163844685734656379553492565063473685682751365325453689720948010390291843192047199443635346022090161599868372827453873283567910850904702947460673084771077789072637116694699307115694872376418884284850576478250882113222284555581820631872744229695361018655117021738354850085697534590295715634516836905116399256339842915132164967674476962358623491705458331166840350494105343188287145646590669640481476031408601451396522059518555373784338778158107905555711735691521167034087394771806206914554527636370567531472838766182182550073289885590615292200527958355125299011949757937625801072605614414781606154877750292797951064810168793436298354372499934526353100669525510727130734968438272035398497077335114882418704211708816344027650827058778889035335821385604761012624043501951198642673096388646322108279437819853253611664565265960158946480275945237698178237010800448548062485080021835934869358372175562801509772879659582566368542013915432486889516054876333115136415561564521266546386852013638943261643685185572057631808381316671729885560730919530185823737777597547899161358457036353581984510020752588705505465816154367986270963870881685102593262334243602782631658564479343187292333362785703369582510904496662139909586542857815577524997890763637579603249010363018322984578009221405095960019868670507630636046733467655674313514766941340448866507211773393515559407455552475665279163257493512022713238740334120457383729515425454366031472600352113718337525404401575379453336040378194815175290106165152023239994022880596909023737128214922592659951207004476562873425440302794785492829943202801916858155971776951909532425888822094013271648781282358456236990399236886389013659101870298391508086396016734614615591263907798634319650346007936408484023564130712285939578070823284378511356829689640863349285071720477033216580598096896042660440273044612379039075852914725883861062026941293146260656441526699219107777652573943694557197648623745037445320340508409872701706875783552173423740303514074131302369261972833868307037577281944027891564937503241106531221108164978325946895193954627105777189528749763371337066853678287745072243166849069759658959213580885077284574728795775844317202804614087466264449826745589345604847134609734830635096823756785119137241202577073691868841710327393802335696917631402244532497242328004635359180443077194052839782167526667080517034557917524651942544102819906979693612718067266349279726274588698897342130398909350332264980462160327699191193028722359087059593982808389653351945935041832716759850095062967963557132347137095537216389571217343018936403979415973932181985203972603709361162403988287111775163252965257775428425118492580212330392774030104267579978712509383723400461290036478589036762961022770548410003706057518597048887269537610107495721422408542555151481391779717567920902427009502953308203848954236330247296439227643476801863050441046432842171701619745137791708406531176562832288298987222900477231274308169383245348115840669601526654341363635710109613684707591495380146070372593602664694270161167129700717990651590170933371488109028507805746848297106319779436298865810691833565444909662603099319626849279920263298743899646323314722262551203217665704075795593013068371772991175039491177526442771450996232811047137463651506816641132090124852241965253071454786922501383487669254993629329561548612583849614468176642275704566934208421172430772480552842683191656932563591619442538975372505473839610248002379787991893880027611241455570024094135014250218341307469836474270717039071033399782305893966356065109894952929240118476936683782649206800395918111515463675399045128646804682756043599345376941737988917403567887557214532672713373391519961321545730877941002274959793358782735613258928141157942369078595537653438725761302432403288610011350378225248580479488233697529601467400914947803508994419534288404916388547676900232806441144376303850947018177878911115244572282577534156150970064182732023205506740207692810499706156213152302213262041366164901450283706508108874499915347162476356391175973395699158040523042509265082808403244454001766734817215729526751211871460015378726719249626204246211947826762310775230179440903443483020473293772177324446933340423138978974944138450077740206725174508920108105061941796360664075748807314352642410059488772040837945539590000772933355438419806298540198208962199066997059561673557422464342750793898158421914363482779387658012630862260670975981733555413186685488124494981606770029659439363588649161195443023709289010998818200471471165477322164593464555082689446975654269964600228032690843647035509944773489859693455717304734006807684293139870597546008531950419747256912002738526193147072605277574928910554870591870148574848360403452554219362428785584205744517832550913388042914678863075955117311129359992675116244516718916737074536835645255156738242020457763845221605897321374554760825478155481243567736624917287807524737466723882110095029798860542093738758991506516453075977075590059250086872405135250208632045380563369168000655563330588847565673323244202419516351335842250109050503289732719607855024325263178717997879036619898349986642171135185729554291675505839974267822326088550114515621609565443498094714103484964232117999325358769215322212051217979354726104370161190697751399357504733114150748105846267406717077782889258341479177601684728803549585831880081585749342022386046654729884473361991742392056496486877259019475666452289109619174524941964791334139510696890415615463297027278327976246064634955223417000140354529363932812462308930018976584995319397495282673217661696883618973509745918124094758946191919963534849311306754646391959838867467650992354630063760893217921972338145579367934963618197990996695331603632124511123876589079794125189367904658878757302856406545309222326373128100521732388097243210269324267649607577984975803623134005158478777273214156869531008012112488118583403714894353919708246861711821729163536123151926444156711412253223646442681845766623681068077066805851956178321850473321037373661051564750208339125522540053147190355877220766961454359469308309954147699022051450443565601997130534267638658217026747510473358771521700770644288635896394755797013420457770627142654170095389572191915989906056768459756795057946979014297575030706905253642907099119711403859820105417902797110906404642834690161646185634778925287375506968991367129002850127815441556810912007943251309698012734873286416180208662142659753163071291269669448071419978821314963674570664614763807379841082994983719053766927425841755685449691650251540021199538538523190654055800191384637916317974125234606960674562062185713011278698392179495863258210247004051569514611244951709636877859560751268404273133999703380283965734318151314901124527714632902486024756048903362186908577379751089832633076968340079951524606194586780406657946189419351719153900522157181792635652480336721280847266445275822277258443635505264569539817352923544919541727193217988409687518172166368384787669265404028115244072911306577010507920284228370569132579065947524314059268583422428853903412090388184653274127258664762186383914010099199841616033487516478027085995049049789650160786000680305158975223241215179380819971356450663141539498536880205150291526010348701708238953325303747586521245770420524878273444908551194502412659730546943081573808211629924783771370949356904026086939655795093522968857808186582828985900721415882018405025103518739867728521303502407039250509005369221687876393436309848018243778357110283437977123420729561760763904422805634309319653211682211794933918182988531367289132855712508135799103780973553122306212709206160669498562957066253092291931661784646272531880892553070076523365717277248030259235504353932340466544449011890858122334447495678660173359611532123085469217830392478683351018604986293473874476132594601407335488643622373844737913834431983807561685586887767346421116410170987682802445145329703651849360917526179911486960697817874504607060917025429194051667711602910724952366659101827673192982852107021086455963298853639537890959673755220961559006434395622204789714898937667391721675873495081999276229470791870808272914712128091225539796635804919876005261175041857018607950670339739179751001396581127480790500713110199038024521196031610546398053757052977906074434599670646057493449526832634504505064247179665112996736371244319441698266276103273488731904767765389372773847882240584931476088195661933560441215535270305718643324286312948956442940967194417115446028655711377331331571686676928911640515467107509850943309028814261087820856944775304065392537216626472885920793218217756022290650872150513886650307983117395592638805364364974641746186406971878542726937639184233626153758911360770590139974243999457796846938386516253816141242452702535510780712870194471427621081782585267013021585349342905466055107415085678125260400095516523394447642501562289465752162357033273031334838590020811865646599130640200176986290963020758019146267309167629202635193741072520447889246860879559339387707263550451958747602613142324554793586721219159883971851425992701261909628772251005915267513524598648988215747140390639436524464892115391139575358814715213085487747410509296678451803668279152383879562402020812431524759034749871709507306823560367352301305805658634898717971412390709572666563580497055467427390486386600334242116540161600297798422249772898904145609832841451867245044243524941383441260025377121864319265917147078341488593966162849015070538551456147368878998704026629204087742995742286360543335457250867135592702572154010024754385624406064936048521043183113015949935206883916900605598369415146440544509961451655654647716618076203323600879866886848180336123667603435682520610533025825319769597028940683183265896434044969706199864179526274816927395499251046588800797202244543643802429522080949933102409315160395406580428796443929492063697927071168157616632228852503963261522052858497939663527362096916879097521658674250623400491819838423860110027766848846587473908406147989845556706890673287592263163028572964463775695802951264394821674131448232255510515463263298031999635297027833005147271590793667111608057122564958489731288092270441561530823830241370653945095521642408989310848780924944072549810132720273619362549701724546533472453319368525955258536044960557788659748369182766298043665199361697170375349695269630723690708926867975225664812850859485777653692113213757549597433186526510302272360799631342946712175207349638463367219945004900390897805187936327156810503141340513343663405475340218104010876556978128862130940635673185215680466771096540630334821143504442741213538793278255860082945874045600789261893049693125271715420548274711990160962059079805352941112614945745108952075751435240416262508172406671888097569670186509106524573440184784746853185383862084269645966090627508513873073473663426464041739847638465488657867063110513410627639179621788421919322713784556848432262907683508657891556451393828224050828443102700882366190512966097509007820312399953437529991525342385339726196410957708722046944953962807216112469706264034260617184348777957293960350330051758015797393885182246442148695609967989883168068519028965752060001325610421456061060298420348228974179327945711182996459023042923845236123309497590203975026692114295286063460753151396604019401780715367513115792779085988885242129155696908136295651420480951529881877942781134729825364899197211581470317016260667439522686520182704272440837106370971519622114847700126917712928575694552986437058795144801403251342147728287478742707762030027623968740664955926772291475608924041254861583218539159022244230482715436682305449885195891532093090129563336610082395476788990637571543216490290373226297848791774388456528086849756476495648561010796390082871270398056201472316972732022244602150157680306527793569065371977256654344384357394144290048637336969999695450832823169193570045902655359127456171227899246997157126527681836845524903993402026928888059529162869794639376400477207035873748343548395604741001098267574404617267145645718493807668711243267139087603355186409601262434084839172857255934837121881921181421447340261243055710776826694584047125104891701758152502069163432356241292761533690547527981677139322713048038748354543197652491976221848344846065885928997627015626860148628932864625053689591440427077944066915860207695084712142080374122736660909874795140486186526441416431325638920209907773766424241636122470687021828747344711766657977351000529490094909382376484650508232591997700204999036882811334366487147817881526975972931656498714773759947448892034240373906735801603636077512349308871594778827840361671404322076331270136205440833130295044492321873233665866368220246568767510455389130161810308502654359591035367123824588839527091544676024417716302361520524318255236870805593595672563823639108154819433952117497940818066738418235994300747374682836583801798089691897594053073752877476585106716558292120054633308919445682172531158226507766816524677561671876100624236617369907203122508426132219783766196302784610998404862746440734083800601093723239361956015636536754621967235341960513602620140968341035656904989571418357164807824111261857314040014430700605981582203728724288891750024397463547404515196427810230785887975837988107133903463026730676588522096248564583445102658033003346424870429325519169133181231771317338725045225011226696849881652980322677672811089250079543543959882751304610331174984866189756248654967086080884933296731241614555217963820115918378211849777886298355970675464462314671580469432867648691620546976423654660809991138209728056031138318284547395365721595605358295220750426718564117252980966357420270874912240250391478482955471328497297353385213977036596135221103245847258085228164402195181837444917887614283727769301966096619439743354480428367856096523839250229073429390270705189315218751401052179661826693534008524398712458531812917492185082980484186908082268524039344543947673594142296289549046992347419684409986826795937642861007027242184692317387864800151988987735544007978916871923796423452220104610545266496922140011722099985914787290475090907836855806203443226473314452064708882212360736535659139586613920382505292728153072437958967768371560296271903132563191767570012008905103931589778356683030576990770130481808473944301053486524461953787015775907620037909958213276760776972463167420370779414467429656964482414325077816587399169941825815818400335158278846964877088703895224939685368656599826516965634533532166976259534298705422353894101290927314202400364960071706241328222790669084863953189643472468914529588022949779593350088262866563788990569310354736815053042163226495736517974692224544796989554785821574821801377244746583735082189644150270752021529439037971281788752282225172290750841557881594874675457803964042899755156417780282682253221286646586380872592447002255248388361942959414104363927069210722387002879463701011850303440014081959424783641397207659092268062723241290181599479452709987467533376431447384993529870239722444015198904738701652250090086816248619587395241993861922195496405778334239207548571729199717502668879193729433367546372261109532948356864899424535503077685908858238216671419931428145285581071936175711229859567670443232588893031350755797414461636607174056901990190246829850027576640848973009896084376487924985811739973133268316865457716790102020428358144155860167392482605082016288279743131197972782655993369347540357849568981019454918620909016358195493272475824249206078656177476543915594063128658761240691268813050238495358071375500042933751873672390160277190964151260006517674119341906706511847698819742262342825698954731876869887528019768454461553652976961304350637120066952907546603286322180052343147914538783706797204080781259106622467751094770254204835601138172278608231235647742344878913339945774057500541695841760443699028264478396254399113921184343538510054885646478690423714754518725868281776022087018503750973798942141286093046964172306140663781158321714464129346761121871551089166224739358932518159495716730800296583552623978394497126856856635154394196343531938796194530542084359420137396863517193941621772989045902217698635268822147763825624429909955136174460969090102306611919639448059085204310469702591133951069125215771961270068053288673557903553262034543776113456120244782944169703327653282420634671702631835273656613792869192682653914057029920108301742144440550733035993129044617284011230246183704004073615565095334513821508635511701381425012434614059900453536745010047913912928544954988590628113145856857724584325506523295573051149834265590114606957194720830674313121590792184504511583639347436633888226169609567832263660390659443636376427187002253487608707249205150091924137033544615901875119768620878557666216431422194771497851218343510675045510627412555370108313340125533103235489012945996236735374949131451741386104123806850223728461222498890616741804618865018469177625918728060550021781574820718532259402012824401833094593043616410584710602336513952664410784527304755327943539503878699643451602616501269454288770075742504304494759965173517909614828865234569271725841530749188327648925755577704703888045008103259414411767648087525598729691317227948929849301524719273866695602427985153796167020584346211827818128948820375328908887244281673994233296814717501792959703616523222584486560990059869045406701322516202138009880591432461092122826517505394041960782893626708336248815259929910556226535891949763904013438251965458189684979884646820713018544848040616128252036849822144900719288230589056723425949738958910337657261053904151771054296719253946075281376578861812109535943204417495397229245835510015607484390679027124772450497160060530548857734349101183765411822120213114816358536761379245361868204702872003543959775290617998542316534984730144541932573241567735916205162292490790526471700310080092667597604306532918484672106158791974969440655207674203198988375019669688089625476992259180962864667355653681390169191252712531163957173482681920848297981948995239381459215534710446917241392883050606472028365074775035200010742111884529918780339611659984811472313063616209348020226934730066500740787034054387136278045210086486898779367010282862667286188041445997712954007532371018616592304566798877542989804725868379440124581131865602487693500835777466576978254490211807516828343656242941866081787207238133140535994899966880645060765396141538030457113115765856227908900354158184495361132611730886085380088145941363268204431597504487121398200247608130371286656353358458592083272247888721034887165000856922403504984458781453627545855721919319173579799895133234858688021469464258239815547245742754522449049372345161670167328306998652291590498477516116771109192307084021109817756576358761563640149789353595286924470088655535175211374860611987633377247387261621805026749627526502921347091381912551230360073675595655797679521677900037872021433625984157143493892552454632921333771904019336665728364860391004692921141154313332390541776724336788246420611662282868382390367535855246453413200790545992425399209145956617902262962184106092854372543881215962918255883613565971692623491085194564655521656535979376577313416083976938648085989755701105986505682868072532843527854123630143662546890166879490225875789907635786411848322963318495509719983753811453387940509893611483904927075057851900894077709632056565204486624470874158055505568751882985450164664636209317973557402465759052950925494932999345724099856398583162532913370236174484017947061533022329859230023706244498756854600180296700931848071708783271843735174671702225032799736656967715594209380735756652586435251554546191154190260577698669466729085423010767858586917066261847138792529587229694393764840992472900194071026087060536918270386456379768117757822120555158908967258445906337191565189756424536057359443885741192960971016082995858808852454435143786062510729298922306644852856224461586852878079155726364914258964068981842680187866720946621227609746936199322998381855525076633969381185952052211994846934455634220937111126526050332022415837372200460119345388991426448713409306442386952675449918031694927161457739091675527187440075038891504669788789605330437153123583205153446624481259785997671228393556596020516189277354033728889660890842267738908266013859905381587595689008818999772368382494419589268143104366766818416706078557001048129042657207884927915216819300574716459362200891366141347630722026141235863387220083428100573652209280959360525643346974557429796945120802088007885406414084513797806609499081484052082847168461214213914436850658986733253680989482209155451272626627491598171667451875041411035469503268752936395170759626172951558107845493491589690070424503465442807986588069193468184787835294897568293711342495162211408708638883537625493848890353660928415846296176352983567488912710406118323190318675273944928519515355598679406104455749826868448200022824222940299784118634675979284475735460663652373378597106922759030676108593796178138468772448083869876666441548663576856971293405889926625195010434080658389029537091244037500704473676335710141822390296402225954929322525439477345360260361264225643570596848067339928300827240307144579601155674918895732332151766832312279910198905382079403825938885321462730314409202323946012853385852218500848340147874153410123766243804226625594638035620722140205007146222536060817763460376017643108971816806133786287935467809774951256034778286687782269345127828589450608154871381468387827231824397865281449026622580455697787600320486063835529784440655672227100379979440231261415758943333666460418033110195444405340221261882959502831864517423927610573334046712268579011558873892499802039872516042602489508762296752503312627618223786115492644533385181195619978982573668109653556126912824321477820672709849756370026867339881582672083197773813445696026659702299914037423611183708077372722377220405839104308353526048818467025765177501914999385287744975543324020357013089171743940515764256083753136306497285766778150999421048586965211016102263322731838786603390312111625810073280689368550243977012694946570080761752493236167153272577516091849360670332578027680417417086926937136497444656101299214685914438362379274405616574019583707731722147054260637684156507544137530319906364476588025927362085281756151451502521676106933245872863853388968927486035684418321951200821142560606495961787472576337271641090345412209711649105302542189565828201279453940229331634676878024216774308101047530803373089140464476576677889905775219670908484802770436581105419761590766411376493594975173287822409656271708186574584152788045556429802866107097163870746115576135760259677147784652187674627924184848881812986508892550894653713706939916783126928986281683479637567193317816923008027917993985850358129215440844869559426694391982356519456513559990456691530763691735019212332363425247295512779986998623872605634525415117013826637201353443720809206705257877441564173602278294294188459167917788642147254216886257962783066748294646756890003297653274651588087274745090267213154013773383649975853703882783501974431692855957249257136489479498910612396392106654161428899074250710373249554541330108891948708359102524485883215136579791393682677019671815081409302574013141504176430720634780676402192072947244152900993929912088695854177127787013260349622358710564386916468168185524895804791114393865401269452526748334201302274876014109111174309908757144886991150803673320053834928294392448895004498482591984864270008566005414677017765355912000956268978136495473015905625470823342010264080739894012210710671315356671486859604792610896509510944915991488813172940527256138637311022566791608301201957462386615921892992740388767238762443250283966869656482045079028648759148165666180076211570756122022901118762764273792054632147825544538348674632552858112641190557403980481427560656048487010559221546482443782368904096097643245202901699662679543962239822070676980616895037190546444379782332187388490243676114855074018929265156322753578447040293583885550918110392088232196249271661385785153613820448044007103406608785061884527417672637463756126951022195157610993223323102121278245628603658319029810836192075134506722196926147386148341386506527025973469734380134764242137118442569852300592305090128119881637236781448262539500535782944261647658096715869777328626624806818155401493652691398748364134724923656796092939990782295831056206782183163973765293604377911207637432482051618472105953548481173099110515543008135910109116998604034252747167523018525529186665714299217487276479333578613589363392295592662146842416158300494530524005962665876906796988400158289053761904322639549889553609866567591389967490012635357415885168877649315047689801525311729924850612236186334474414665273902810715741035090477032644263871773813931970163234502201976794000737522724083529402459417691563446566945823652169684060576631126510605469390558640130447392139311766563353996292698196493826099027343676846456259234210979718395927762111184539926474845684991243996468127860237285361612620124272108804298979822753359283258223288819355696341101234132726943438265996755243118844811413288974484242316204926216060612270898927835665389932614911843151513870679653969821750802868964031121639875214739185599843696619920714911874112372356219464728122082953045481395902440208731810570693331626030333602010175746072497323704629804609636559392282438728799301646191556765483391762160617070347345467341766121211532035085819868011271974141553066278231522843326967767988260993771275841943031587007798991653055498299905714320879027956774402739586799186842110075322352394580987733295777623923582117110672953816497897914345720198405579033625636245543173597744198491349309303374553192802945801448504188664186571594580527181889265182430157698590747766173122483786946100558031425061440723135339732867383288034266914225999723188406857091711277180110900412337095053861261797569439892712103390999035606355839183824358424574498775108577135262058278311133391984272834060551967672130035994185584968936736461112009090458183640777605104028780862676807990246222856686926294302635581560337063492054325788263732054161751479003365873376639292655773769941763392595408803383755626569477001557657854569894318788389237438848059756748012912416082808909464766958350234035771821437042220140808202589759489261841003333438221005775872666870583868072701942317940813707463757766733169153577267620196903643754451982224881406246342916824488905851659462885697937939740677935436437538087032638483934530440536370368501994204949049753098002546697843045131977051501167165898305606268165978375832313567736505472387924085890398436254056617961007319809356441307482173074426905190432443410431642627332431494084817310265203375814371461065020989716988690970883657383918347819687895828954501561650865486163754756981722824770198607953796953754475769691468704648837134629636670091116354921381531131436644623737945675313128772806485547971647758116067253181406803588193929126532112034643572479404823483360951679222474182466852928920139904636967623912025670892471948683075766371796947026033756616873890205216256814160892119596447615621174599004495025283462795861384252284819385029165963157980673869359230211294044279680783840899114504530668440157794768539824119623221296133848130776834237240263423122072045825457639165214483424489027242701952000621347469784201719309092529483074777706981341130519860408220828896863111150760256019410289201122678257784885167206648781093306343019612867675777689189969473039773304086637711354090854129384589785910740112960104509694809955911542321933242003486832548619651837764773349832322806327628368102152981247385742869081008565573055992411550288902529781003626253438476104495347280550513976282672935187833654171607173162478341173544421575474851472602396932971313010309703428453968205688897561354164624389501283477463099984504106466166371842940113879902345171795175294249568353115544234094756749857680840061766090422693432089933463292060614462418165939303132457217275806611556239078973857802426536305668994608969801671954083227663624568611002189455792874926133445755192843264060650901255884949817802249852971419811476266703366495213891795147487664744148370759014502847895541591947251304111228648735132308759197105169564779566157215436418309036161403970106024986717542071722577414083527790294419959251420305514827872345852124128851751594665692725017761211899626596702818310863850239998795004685483792063077282828546402848933614176590043160998467940522024163813980143659656402750092306202229525723270933541268113512566178728942585632918785909660784267142313848435143128498859958029465902578922907808000002670845771222633586002951739991088450642707688669930250968800313847236559004067416728340250134210475499368848157525562056096860679603765765351274571325149780305864573966640559807288205497787060703986590018830121422130975437463480366038664333598389832004282231934960726720453595202939730338963559435241936777156653484637952902905558157775275704178235574125342478571453187978502141473160964925229964403281541023591679302463281865799641945893344688833483297486149324448256440988261680676435800487676622496995615955237863266614859594575073067910390724393832389533477239493891617422335433451832295263125090784037521071348845143175467870802091388382628701376608799546597445819879720639862172100232957820641442097587576781429864711265118231330032540680836724675633835043194622865485021974733035137254117654905497775504152306881309711126053894487867068993999324393277185280243991239928238456162766466304348482361899924152874982745549441822926970463248999117259016377470152277980264375330091430759968985914224243224032073700103979533205867866293543889242821642081794719468538420506563768052794696724822798770843868843879037655365024123027572294034795836818316743377990419045738524810729841429088185567440548109533149591655051602369771112812220702674676820370653942386850709413130288444593281760233248028805749493585241038087604824617791198984524651379862079199757424872301530650888428477936381401045268006369405872946141822158593564861862545660089758806110118507028465706648656198080105613705292857741392381558189277740227101582497972040158132312317371452259888022002754007489703475941551969760297137843781082906703568671964707526274587512464937730945534907543726590034856535947613206467342815039716461212820713394304521816252227492347615777023659607614063259526630074597173954988949866217193667309585742718231894842506164894433554453006465806786496592284826581160152280215287855135988155995055232159450615538024956015335786407413207823845525618283243807694373874369776966333610783557666404096032342444710669626526365025199108436850419173772171470099785341564215277905469271072279649376556210810274589670465669028906604663494301321756063254397236476926828685988810222167186156087554945546452178378776416824836582144060403910502822243779906937370903720537536962587162839802203318876572684041840559989780258560171902841399553753353556048223372899439525391474681727195037018844050100085105729328030420894041129791875512642904448894239741032962787536338551606464449428540492058243075524386818592870711206974243139863088729343529240110280584323672939127504228017177569616715492169272304149360653975112338713955739100096634616463411746591294294213516856439198317693643160674248995749042275450423902616393954472517565041665619755995245866014360490987196415311881396030199585495597042255565138203173713154244955834487550893831230308940037862996129080449195932782613247074448778146159963201200671610197425901350251465022355196038839431101208814128000309097313261310526134802144017061696616786054123775378928185938357885494853965243095521433142938294735673131072611306268255878022924940713553442235027778648644247579302395659948034503249522645201151313015459678095685032468990810061130641754519181517207440429996716346386013810425977469157512655283282000690033715485107957665197015100457848215115874467113826448824480371930953558260982674164804798320563689117203656230355238006687467478103245219986785618566788652732609136997613549807393660712408989541103307188936594615413260933315680070620109292448400385258617730906033493951383239974091700056546384203396430041821130394557854932564313235658000046865612735359018243771734186361914343000481794920030219749281157715813848336774347098523906232618454026850547161260180282300240575929736601584576509720185046003207670273471953531146392716631094879973255086979557530633994378156431661774313670390347757014990157735823672681968081009273253460461725855259745918000282791488427554669362825910411928966595330346957980306532377426532378198799389102978318057304128085094066743192227728922638723962450701532964898643077156491442481076228323535104598942434887187216918233150683234393188757737152950709878136521079641956405253420437363489825432903664528465614828967216308661098136329762927831761785669705868214043824066595577577729275599952218772443801648523674987143855434887034618589167802646156909000653580968839882666371495831597625251065766861973732855933639159765058967355053980188926308459603855366618417449101243980716355481108912312096431595365249063742724019908352937618431728131759077380017681071576524245544334870819209451907676450994680852734509329069978968437611067154017705045741841177693154907798353197861216624401530738839537876663840098428788922797380765938707929888376484695960702748321009880318232335293989851163884677540293232721039112393991220712908100375255674243518675547125514872411971622614074261592232352051489556909474899346710237354126027351692153157854165369188593651971562684914402081942944697768113150985318011344165401889284570496175145917821926324073700346051401746893149473326733153033455581940933597950457144445403701286064754422785015300914220349107125932325448455120315460773397467624619582182241603522065634122843493883528541757535748765286435175256826406851899819952770523986305961674357083768996671409518960379770002839969579023606993180193202695222206400702905911274310819677230722479404700047041843186312553973959795435179261041400642283273875917683885001898441255617677520107616593809919045650078022508863012293107153886510298883100539195606364332140492650521910318122079070877811246325871816375755605360203049534079925329704672779445742340355138152774398443120676015537108346152587593289804372830125953491580670332594265728820782608480482410427348283890301768862128513112552739086914860525062461113356142200205946615880531240448078847863128481322883329547272307199583899728249099195623875971593218217334345846601077444927997267742341088128527713748044833115639585568944281720231644917223863665051773165376317269531992737520650781820371104923328894803785887042114465233890257856709185979767293055625830628483793401904562538282226953495346206984436809922098855217523485897858592883106004950613963741842114570900324158500668905848117364182558060757375492850527202884302030388871349162201911864632029198647787071535905398354243951796649806012154439644209184189424683956471230473395362838589046587990306541439370728583631149227171064648119780340868282600122864542667049025169322576450391958807353382058003772347832981551065156088105660474683133652553093412832315832291205004414276457963273829955252032441009810036534744726513697871930169657645775630409499816326998276921970897813805888810628249552143905210157659782334952324258808543358795564722570130840993452807277729976269222192355690978876687454879810082269415116695485350939961536506693358841327533697030511219342166307671556727074405483984423977836601868021209817285904055227477000269418967875358948925622290872045420178341396357433196822171734313215850258606176771527581113329629850054699729785209066822353231576547626473711362811327188575749530526976184139051969264039666728857524657761616287576435511928368417738420106627778475367907532329438059614422928080872094413720772596313337665535629722007524363874873327620041523084912147846512170121274513860107318837977934933971320115944146360640363163156546449083059635900028611191620706448779796499347564058842231065317716870336677953408769047334563300525517456403826528027861438038590173691218331863436835841997238742499744225646347701781770046510178615547755392151832236956823977849593940627090048347644664432064894043306755412620757900890721478987974885481268834308951521937563857269058801629315896607915139575276188122107158795321251362390973625836320323403780688805272940592680031272535876892353087307206621642300810402701898373353034822063178199049678048465832590778162536095572120495422553205369258650218511935766804732486509250340450532464942674839376598520092732014463015883332428281273331168330610676372914810393432535099530638611140585221086429690887054934430570599774232159970535337393575340216249847411213137501741613549758399847635315576381035348605924832244910368419456206672452737169453359313578203249706298442968729449415311745111914889128839519571508039226229973472952080643128542280999441025596306757104316054310059833708540815981472647663851823918724882914238041150754289032139934031281730004045179014543435929867084055522222857008749828964377378688701644051012375390097109849346512703996180545820965765101109137414273243507141562792208271547906596993660512734635102136275271810359461294229361047244158635580401402714322785902282185965143623395689249944769111342144167876451711994889616198162084936903239921868392383539730662632642463448316534811659049433649893218462626295632581307063138905510484272530259243343859674598242328445452906835231925799916574194895290127791438760772525071675864010550124426414778861107660983890061324769854861450274309280591077317358592781597397209932457275833603086723908215115628612816871027060660029324635039075898282194107875799206217390055486137234119513874472638220242875453035339255577825212998109342369628147330662305500392686533650329050917081849452508586049767021610996672132986395275821161519694178939887217123228741196478776724133184559364174456621057462397751364893920628831269844970602244275956309750539547655489316473458609423428800888708827404432674221236500232044485406401891933233831602640756508924719728002954657462515800254048224474103658231634453988999356382335411063333766892687830073283824271786673671131012684677069599745185606053144889148342035666741567140892799065748620599333888227503070791252674532903305566382924686623771848638842373865720300920371406882707332044178951780602667036143868798099406720469206719190333566753349804295213873401897192283654079586224503120164277874051086272650180719546104988213504928426639735688472699646539753703627384003133297113786387414975781227149167556000529357276642336448785763076656393015851505619422278201363427474778988361166631525877523717908311670824428416014954833096639253685306651693873733085784595006719298903518705370943258379923898864179806588007728144604827590460672048928711354951387585696868140672319903300284440711531992665016955971673599949331370387574642291942797691430797633148986840364089198797047129896775482888047559374511938993988353790595088961493318198853193181191937476503520274503966288478088379781761812355455006170069184742976289549972864193883463868771845210437550680459446931906986499039611954562914036764120670930981064333015800001619042679613629494375359733172461700646732482736030275621119988315381412651976368280852572300116106799755618637037722969390936360004257726015744866430502822150299358886542852851575734515433118861278861295383557424767867757565595574142274830092027520611350857448287343308904609363470071940019606159257191124627441151058396564980624573798305000195168017044241042495116714306025809105560763600286770694948587377387675159262535014709630791618418633916509737583492724611742404134797537414096773867715882838558095438332271747028261745680102716771864450058122980698091526407199492851030481328897734005405337867586031211267129418137018588457601020207650177013338026203630681669873566518376639690611856523554333566371312094601757355195199109369367093020456385645308269832000888806354702551343025784842908960075760176204616860143982485489293532950265997834485528577623290188551314524219384655972380876019099498296190251729708011017923431100195271079603537662258316075615416778482789472228590848354317703579279535650323709775504070909086353188013497378459029932153397163633136503130133215288539142785663760409474111944291835110894493116252261013471124016360633565990139366016787302612153689240617104740797424132260432296197468012651028206583107908807270376058036425617108191999147231714987889125599904468069226032677748241721318282479242620321091787068370038951104455625716135567599032673833978266692166135516785100923352303281273854923025461700511722272193473463209811831240535962607911689279238153804246418385814993694974137040837659910836227765541702850786369617431342696882524849120001874289451848799589054337656114725354518667418522582105729512034032662222896033078089540138336787338844115771289744875243164437474972155127715217641288681090142175627593777636879650439933915873389427535662750752312155602537191957437487633611813826019724063671064974584397339209892015264067439056380009169573577218505660975602890875317746041389557441986342078645207913043380797523475937626624689560797059621628102452385169694809132290010242329453752944835110001618159860954974121342133112384098954677805030624679823637712181850389427903611117505313161758784682961531730110203376161457012380826761211498690802386636524373224151549570380237952709982362390079664862638869483463444092112118444760015276828619658281431229017080783470656084220888491946644007819383770979540959650038200866680034816598921639572006259797056987221296920968594935581039613146925868090338858904403196399744512891159097063770799570608517749582674306536823072927222364954336843634620086882216130454175331254669832227903163159165974646565117425938203097283529098200783829001481961310873379536470740441643323341599659965229894813798845467162862616739084891919827359808188401443488365234011769711143841035790094148326503200222894066258916277756581804946236801169335869982328225114495934627162349597642196172777168524552359995334105623982520085619343540462830016873772980266231534785906783191787944889018853352465915232585890598423857727811519036852104722700906030946083580279635232073402523326888475353911433474423121848054870036797219593565995900517815273681969464222903917936238270688746041981533948064178372897904714023938013308818663914093793645080478446562295142142920293207339192504768964244841585136757097747608447082153740754640360619905074995947989729983743431685211170990609883233849389673154927974912213018272799920114233097088163539091262010414737566082875250229479267416622031092428011333458018273605178255731411672698701357985827483747216750529386072811983933527888959635220215547775578980197232911495125760261724547732203734197676117549609086519878929696888053083252390359292613666678217837602218045169354123250985501137266900107869538871075275027508136902061211407563964410634959538679308188530026623545613672964187648109361711944295611354209618780629459128413265599170868980492559654810362736439369464670940348630484174596778164213108532712982679392938954883384719312116636615872593621669711675164430715692362773081402135665665619407931434693618083421181401574619962096214184149118248227790203889366127242110684289988255361686605147783043926186985633927447692954038536298875474125813974771747808775492846734615750836268534576935842742055914184552099184004710566651697492552202552879556836110214025806953896812419099722496630063965656290721953699712523849230125630206694249623384252905557163774161591346763170436007939987780158802884772730840324087376431774363000428744035906816263865734222350311781032159044094170889347106810248383778582962710977165510640946946705771738261800914817170664590861976280829437304661661396512899559133914653924036461945320464435758429026857824948124276970095749078832160219352160893371159317656845345268713691889569318583290277496120658157135148567576683327712741431883641443225201527567188789878883471345728157743783253909283638368156792943633694677692061373314887496543766161542067634311780577970424187049777893420031668519748564508055463981976592168701390712967216016552801213901858492537060278861833532733229827948372369193973179739437481365647799909486325602759709670084225248614562061937209738376701193343635378947329191837258856210771276742087000328557094854196463655160502619735177504053518676143811735207459646759720989348697991074541896748011333158573217117802090534228094004348247219846291089780336497970460540219678146205442348673597334646707491074964996858801597579971596695137639191373690360762317801638653976603247890271693062723062178332691554373290476757924278288970069133431684617013995933683653596449837702013140321211476902480559132172997900658004492614831145729150247578152704659577057059176246639843933615784543454100417160561563361527638159852353630658588490377431320861262098183302708881897818909573215227436177754917663858292850406875611275057162421971298406174059664429572815745110962627273032258132267788087160645884714537163209758098529880606199850137377476345979106209050921006137238674043116990671590659649031684052677788545533358944770465214349466606375712343172063605341967510729287664896999194030331056530692037412660035153995692566800019710860234450335246985677286037811329499052352851200566023378567162734464974852540532353625272579681228537431179889002494116104053520362899030859266294202271964864724115677230330473936253307862718071154510923167375265188019962747008392973076281425387324101555424772960030531517818715123497779457511003420834819454476869290103416590383217357508592549402782693836239695868361351322360834618074098701118219673919931543959516034494130251787008479175612509107417269257982118841477339606666052294231632865372591828974046173559534569429025770184984224475304346512654073269703485680225236973030406594215625911506807311209714226795795129033313381336237693270491792278264576774386303186256342842188527227537843830512425411763299971448628664848443364196023918394459957306892273792167174099914895667599534175078466295633603299940717735280787129036673499824043577674438987957454336951397657297146414740460712635047631145841273952808152814973434664387723033132204812263221694087076224008258817947367183854270416578226182837771579464517448533974001873884769177977707433998505224823224979747225127981996992435780901185327451739708492860555723218794392414237962642085943898048464985116238217836198178040433857125355945365413316503594230547755738755485412368517593914745034171398715705845148920536948925406033437401054957989797153938565296819457952623967805458432145116037585180692088117561068444710433987794278808856236084359169897409780007449553658743884968064768887537009320692384022480632460328287646559409112366280867320067252684046879830759638571334398394801573915333504375915657856677808197133029181949383159575179912728545136245506185443352849504783497967656367165132837794633769612436270718724043463384837245893941185101364556390078406419263403281194555758766412714864874736347438993903679201718125330317415881235295887711758641721328047929154462123679896708741926067559768669934905342207090307715403563628033249692478586393268275176953700017925770112073861318824129972309516172154951276585908469559214221802550680850235774858722027639428005426558660222096234655263393038353717882691841037066232029162548748670422221307945470105323986692585623025138122794922738848218882331539185163169098793593602702411634202591171257650384554893884385137578770087001663469993960208127767322074628577879423123297625637767153308157151079797480071532408215017254245846442213597987758501762631269776479180094752538893407247877431383796231906521902134140226274958472820663554080240890357183266723066004986342232242349062664846742275261925680500895274803575500145101699621456820008089700395617863050648398318560343670208668917286701049953266244333577868432932843922372872333692315043270344959331330493905561414961448368327685511558994472499424908311804770141356754802208909187930027902723339934884283701375598364769934507504858178513453440407469863331927002161710459922136887276078585449982303533285731308614382091479144097954881605011805913092640569579090337431689032940757651406216181350627713913591749924818519716169473727303073336838703691030587395142264471514353244000377385273848031132930682735970656614407578858837387840899749357995717325547828293385007468013335172120306653866860172303613200284929127622911697092657085459740351932567263823969381100544692474749809389967045780273400517920875222335134256346188852719736450256999085412480521281998927553971537441615198814997251923708052230857170988561831660630310915716949273664187565260763347131447515719777969013200185609724412513597559662528127750439321787607718862931174419853567272210300489891562323078380090751925655842286821233260805860026169409609939327107700129386169111096380555596215317270170524300743801395343588660081170650978807120860629401442220888436768667776567547545166876132942409133412933759762320118541424208614273010346684224352818778358279765874832114577763063105634379049952982672900136171893000183818650632636879857951527642344923664703707771528531541361399005855616865127916523190843926257702765502261336540205348030164150757832177582490316635625458859408030785351725276281198644604036131218220276304460523778121835859440074515420054681372778577759806555825662431879306621484697662006972034574516992139763628115533607602947651527158279203182922969873943805057041242052547828649295515768209230193434667253557558621176455043585141610980323599120146691081338273446331471122451097898538155348654549829785231023629536095229059233826064275790849819824161297152154981702631730457894505630892128512204473110127452563981821866030599533577289554559130122722964471229292187991647739515209449915530501848458477544321194489848166262950709355453968673173678269438117052612632499732058180588742655200951228439231292998480043572636521794288837917647156652110227852951777560087922066557248766229896468288120015449663368003775332488376107797558097223304121917937021951434673745009445935792330318528168301800064191015509315564288165488664036975166200797752333321884950581824073073237215562252701064593128352714789256447627931819026541753486141092561418827700963211578138171050942044015918983586579535245041899398273758794979747775594894374871496226532694731983007544252251800863076949482741371537662070534724424703884553349216163787146584027171936990536359778644841531089856311398894762572743366441716753677474122602388476424019577632837235971054966717974385609905440746352801874304439443154954022922024699631088225170545118176952154559604942333381811653813773330990610385526795562923798764018818528179655449333976948075557935642465458871999427521996384545308295702744859681584896833299054139167588440539559943607038764896852434977915509411959967899812869084990895988489666482358388439149868727957804421424552372576112153122971055531381489061299371700924391277049229765634785007079827392754939216882999420680334895000255868284128982592337774084575046770023054544409110997696194224554669743259938524820160868308172891979464095052354357863917252278336741805555013168471386094448951175790354976328066789462321054294609009463849770481036188858742944349183193760320621562119758429357895519243130633481555011752570141972493500919635712382101273534638619606154496717295484266538731883437821267074062399847525333764090735483364064494402618162885340992471653457118729185816847554962198836225890312365237435783287005728328191418499978555087589203295143111723331607413155411260893203602562924524751229801429060811203434293942188131486008393842230874631891026528027627097334038170965863491761725105326955681341122397756702384658389366246822398601883767944165326912390632288733890673282525367416533079554125462629103712449837173432908339107337271399868944392450417595876431841634721266617535874362473890064233479829906020271721991626772452927992254168174831652341411236449175451606254090214850983950029798264252306090969191085845332593204826790602349321694911131336748776709326553567063135311891733156330541120929302281613317626650164699753966752903458050600108515414577891323948350887717012308863364170294347877699393664404521179716015375363026652903683402565079417408230377149875782252743776000708058538880202292089417421154797639002912922376166439822368711793258956603880495831554220842891294467457024735489394494119252476890564914499217119029012044068727292003381746770772820877756300317652263497552685089338128924245932510602174022321539279459058743916011127470380161086691350956318725861365328544686950923626216182173941592072036370480425890655174325307340940633146334237700077188594999457630290603454461606427496363517517109133352856638066012475400996581411285144394750460474455023447727605517996066271074140731535242345658464697188966379087038226975978581388323883006997717816661707659772459604348508386799785030088753448695245992775326227006789565792198644942796194407114660449053808337889482489762424155407269900170615761437104931332284714024925901177740824206743420971311489287970115570340602924371395238856326518700385318922202098303151710116870974613607018918743165132992878650983699414137637846394997362649278605847730987683317954017220637716198950668431823795967098044818995689830892616217621705830610382879006498466842959059027184479242217852440982879204519199515915448440080535233098030768114451689820696838326707076310904598951313317931671270643658064719953168551685776516415242019822775556914947741004229257155243201332338833868692102137081573893274219296903361688335515607545469666257171171364574327823477381687855220520736226253031669667427608226196043353504946796767466778762059370674894577380188376366649640164618693746874026233460666645401125640999531816560491440931550819535237150466012057682162570232178202592212978963139378550906210814696352882821367220891201450073499424663401552949707930984829260856606793265061647670714556525190568495207277809438689239461098448109898281551656814928053065538333303154780688466479162806595849564396736273725575189820507284445059078432291626346111841682033030177099378006375568834206470640884268447788148613864626790596513164207491216117528970429961568516935663626666081354683741316396783731340295577933751596688312149643165825341430434430723974735065449438736227238610841362593556292403984628239421673276070818773082752401808941362319060226823741279421088181671452479934422524147560990303047332190786934830985494457793332008764247037831159868665086325448838077240289229023793059351461361499683538706452982410020980935296195044531912461472627569437303259039918054210579711941836064336154016762303867618297267181466031080439553662202496064648947310501890322740042205660047812830858856939998143382049589008855720933333881571702783972595890427208044781996261957072691733357229604998424292398452192207424141569346956245542636131351995415808899873141434220448888347661781945832323419297241222787258537352256549570061282290702325244281347128298530856207999811328691843371030315566689572056097143910087317721633059773459087822183613816808223481836809402850073400128382302100599758347287265345625438049015906096408512260751839608174682928698358527935159172281541886352324188828539657822246490599720358923235711757933449104135105959851356440117464213187560106625408647632038758213763747785054359824371807780544316331366373389294969804896434036427353358229338342942335626090556230320939233403514528180598269936493997764004788055562486051900933123578198922271108661718532295889552882708497765385349146206082987411939375340138425777357546970913315215601856351821005161694160901115480003500331360698013838878144214675105773526785453725107878568826185202085190731950013658189980346538949928184527068509190392176398250042898224475068253487324902145390879064965268653982395015553920797680774630322202792022011796146070687080828315197070710042324504337741307914492186687338809538596253745481679678157163268723248994234020487721141951040523676782535875437451490466659746182042865310411954992914732054964732300629685387309618685682796311028972994177712040808302398362191471545115945816214047299184721465160780796890231126479030761411511163657349997690430466286426622599966477270590516935513913533088943583789604346618904168082765008796338288170785584906712565615007851963798951203898839827107774065537992717309056292982028825551783991177739750734489641488196755173842616247309969035706192825961779519814556355481129980882141682457989226472953101964236490654159657432664787641957829241156460138607417028676043683186978723857392995837390725607839893064321636852555460487202621397000054528821700288250197883120630599213558395363950351898902130173958645052755939966932149208417393930815443337709027217953629547046076275112248010670464665380105950665399367773121697883432827437093115413276158554719202191864962650704375406091853120577521998007768880010590512330506938604424381752617319423887100733368300843879155013006281196046732967883704622055619678814515093217130774984140484332126802781544865311301859798523908716585803533547588215433659213080487563929731515535650308312040914082106692441089748006703437893478868217024844158181898301751481451903857499169596657253983477963100720455967543058034297004419042925180535700421236643861871422834698734739272576354298782837732205620008103148621150603393306307428241713503040418558943065855116518903116617519320949951581837998641016996519804220281926685785810948033836080269882859013101236710571905801798875375014768885186573752185442046877107457203465714501068677948860094434894555678319369311483152593042892937088665226847285415716164163980655638421133478441684449357840640952149198945248984180866541937705630012705498108233914303052179115701377142146235601217917427107472942454831688011191269083568327381287926728795109254332486970464416107701169908856397514488976121229915478604657876200844394130313119587776915696800383269390040327926006411257225909395442126152156512467220791646474845358816884143732824802388077664774914565538375255030561306247772562182001789303670133297427906541723429473203526210938686822320074859385870948442008076322689911107405715090946731910040450674237194340034960954770835263844833238489627199805975329437371973171407512863692716488561982469048204726095012083188595019608551793391924350287866006906676025014425239363121407529927818376634584490137925549299104781156322915450825378893423305440080045900596797618190571998306213523443401222154004814165943410658353658511508504470927132221110225685677227899494822605045261921600418503686402165160135983129016608611103835727536105346383566386731399623287971387335970969825995570166504450051493137548046796589100184744952628433618802501684736714451733776166927105926331601691299583021274127562982799102505486300580256041779407244908374932237779302214302505367459478124801217746189018914658123241094389272956653791961732051407383521389310554335261778458607040409740617862072436781357718313056048883978387393664503468901446456347697915109050451565170251602566282896692831484801386060023199790888020410676263787599458028771723308503530679138813676104127624748302281999517129367945007612462551238520906749841645715853748345876062408952483356327573618636168763867086346021860304593427435556865463466794342343677278407628773089553727082075455011210360839537187654618705182892138751199321252521093196350566665614148356026124408128698911135724415780171960357489593179489260493973138690861455932469244077388430816335867568461480250245430259752114645440799833244685077973973497871976257416477953882125922190818966212702208584317587470601362130864190778265302018031290570638878867483500199157263641982478328296932003597951315613392879495085786532736255375601336570354508519205248507378623684425797009469225684977117810388553782929162770775459630458842697043613856178921175082289117389132432816294947256925303637381755771681587477189935437267738695563939893647933773721913920202062822206065733285516729141044279116686340299830738278108230925841501180351767584332718244898188217883232372171181317906016982588270403308302375927506453953508261921560570354264011333480959229517976222270738821181674460034772058203249115203229813385026075703354585980371202896638314181314253510384975431744374681291856682822081829027333860447248704208094779910565705930713944705805772590608881553101638857195296901561427728479825498724418489696694815565794066446227433251310900683715580114509919249030595967157279759383442253983923354990329563886155244321398264341405468945581894591176415007586809677933008797600234029323425017904139659849913416072928245582407766297905822392374279419940788743222723600705247199433223762403581742848980098462151505563636598981077624582186462075904397741088563997377362155642093881833662065068571478281763997188827886480115466514086132104732339825767700827414530093290653016785240107598007920091368592726245767514062119894205133111840517225546240374108441469375070486878017560678365019739795683945751005760781613336428098083618578913331923257974335138409013455761611005673299571805490474775052544370224962599800281367432119896424305830234263701522654180672546663230632016213852441333920947350554953043945526951375981285136858233957378397693432674245111927216722624021993847709237677754252127894794940394571360175396475027848195794723594712700278478699486083162430489861623520837128408416610784299551211955681426162813779514117334853327004723328728452414212076189993491004336697022528882361672533833140850547003334564899736235712520217884628341026059964885985266933050498283123417546155749458050755745397434666429842868412703825109731294220878158118994483339167357535099880888329400981836175597264824839225188168169615189335278878565425083171239811312717875756546999386209050945705746122240254255859311680160725559810799313221725489898283644961067341283746871165612911340114566899604265989155221845949936957334741198412604341097069394097168651027595304202034831432448320438481836237325842241279690555863028111609729811650345986836987360209333345422832846221673081388423719426131280468613282110941732116218363052403911312118953928937303911464394924267640677943102877107696675954821606824676894799153210710040163436989954705009177446837336181751677339673242482136900107610837925614101564555456425442478580709018327963793098528045723176500991153787116126842677619376831669902005718046868046457558548486900859585827845094226484867837314303950024175538132389290434257714699471963750190487647962710242043013889482271884479636000215501490721457877267946090124640526815921695109607084627945036225305919298092687429370491969747515481173161605884639968310419569057223630984997014255715008619053640655699301326250039177685401424489733289696492103289668563139726364483988355995569486845568818660393392395599709864082506000732849191455729138513817476947710153717674055821761966613019218361161353285879884468056655675338382433004741914912814326397324029801720818058313419401071221916595886198866467670578789410974509323416424258566389317988794864784906532413344547577766921281683999834698290155253769509160192662070614910554272949498071753147254081769896871741751102648769005061370080951970268742327227889420624396840072322252214714068777112439182956628672318021247242271820282852718123587470763196584139937861397956785462491975096750827176259927988896594889428386105339799976275164700359411453025351362422218860822469293348704934664376591985570648736731748846533941559270122373287146491650155253644300956571904151742552710487524917995721819526789402259497599127602363579369073474501680902765416745280341530482596402256633703724881072427909646265563942807905668007349994306192041883269096067753545759839499028265112198841030041311272534374708532526076084009128377876472539751158061229858573384010275957802211635147070021325652635702585143347130068150956664943679472006759124242017649337558101931764142838708551138097770255536822158328965818725299133121965710228793088410294519418921231584575159643183245668536938376966907997841682266863878201118175417473313957316891823034487123730138370088330912752349313830879948530878000169240897413397639140992093962608764517611381421466776652497491993507618483428110499822368113691689200973684141225787969507573044410449514967488776323748912562361690838953117148343458942063382339558106023892653995611788410608351143911062590463906752004296733598764716352501829990632705879621322558348826814578729597425778365025779734671111232776493374262928423214200772403896179318369598991054042589781476034730264301025546946253925993947257165441303653439130389784738004743789919402120111826513612134493888850998213824990015301259267639983116654071018021912717314760412818068087362579803780904526670777044392646754578539037011803778934887460840632428265828317990478831656247431340644472766015124227515837436622094963314959971902861602679614083090168091536642188398830095596297799498097171070508179288653904584505335648015894672013146568754365129960467477086127817747057862399580594492028263308060332579180198814669173599586853648291434155703127480606692013923260225982379178929748974153836378120578761230060256096687734694409416649640574297765582770433610530374128844300088763323077673919663832200864779672355284485546233783794621174456099542583451239156520812150524119239046484703135418200712630571515095312046625019781433475834054436310288408114971051982821775379775620735984803674537525355556351437459529231409256218017310680811932696006484059721803840478836689959799138924378606569779128219291880077073436461423891143114063031280355770051588289130138733113982533016037089409786882064190265092535759811714567086381392759751231571009599022021731520620090673011598861732550378924866822384931690412696273660922370038348440696903961587274320801748295756674458718545195315658632296916403470257403036404836566370476664412044840883898326852322365753901249501211160611606628777775621411839539967977850472163884757584008640327689904224704309945236230500330617920437744513596572327541387085754234451224183304315103226760512578890917258172458027008633029193219925994391516697064710769770000103447790653019787526703624194396033963973986442184217595235223661478971829060379951395996035034665102106795616194311606738359942805391226571062071674124932908566772774034132810991864729653030691885069689880749816295699127616519846252316127913707587105732117818335442200187437761199479205598828119838018316870836013067700202503025552231677919831390862831943086909460259645452434798998163545554754054119906138081896611099203844687855168406668241243018813993822269604927554523645416259768755302833308475963245431328801971181998713017916101290736746284707228404781123505793162402918050031748785642255777047006280957553314862914933498063153606167415459617335635527385285467071217980936090880618353837862375560974416217091537485287177521153677127640567134876719833429331802906160257727138617893472189409052973565264750518930980677549487682880924138338746594768658650989962956171725581666054658189802038460324251099539018306420322527741926421119537115857505706920694327825492559138027229936221892836476502271661623103176114192007460257620863945366789315793855417072006370199346510426477000619173216398113068353784030974073859647294849676749461538033078632157929744139935534912156320150123748431234219767558552389606087243783888132935405156409973381067873245370440570402113861958960795074079531086067512541561289267724165451967976702056281704984402617499867636076098453149868825862478858553470205919948063586633257668685574540283157318894945360088798714015330929858010992624591435840918862299135379553355816893396494901179855493628556622152999240041246030553448957835238019422471487867749355520985169143488864115273969911648196665915643824125892993452608725701017394311483241522268913351843940386783896578175184960823452991851890910487401774321939632865096695343608593878445839068331792560229615522034033075630291213103462491143685998228489036459796156560786179513529868362294152630785653873888504200573787762514809528244105092749912904101055768804637493598473993447387167150327445209221537332838741913649069872670875057077543371770422505704987624803159076960712487659510028579051357759235696093315321644050034676957371582022314734385796214270744003949460257385364347641937145896470489952294082929619970407547269146824193841337517965903709928870446383249596730784442045344442085054011808079929615181229562758513476163964612461849389737918326212011019787952092804346403107771153746138814771958055514004172532113906219898636630989913137443179044839394485350908949811141137484713304085036340614246958227310259703676657846792148226044068465908319148209630430775656955003581123510702266811927188763904821607210760392541852500065528053399854989758705268633583602034205878400907538973630968286541905308526925787565177360985888298146811840872967480934566807579145836862635528894983854398768662202721217216436925091964863083098964810157241049920590059041330427668886711114741696589933700840556169120426470820433649754938886938093189310146378375858118960447252264904981941350945794257192316248473915707785574284758650146731208198506341128801108958394510772498758905614641171477134341392631488099586969090264827909149838498136273492002089264679376917793092441950232384815073433463302432201254841981247566018683330653977081379754363304651473470043912739677141604983044269661033581815854199408842371013023178150911099676630236842370496488829145533867381551369072972569800753321722174728236574404774951566340111681963326617646854740555862599522743444877596513056521272918338143909142253196901150222701460779686125366638754457019365846655683015141186434039426553331995404958929023692666044008065233980038741257189507704143927468034466985024585994324454348280062132319043131216244821309248280245221030170227389440785143501068304833530530212016503601694418008226360508030488532410898818264350060102227032258594622629193051323215704572850223463747220655347405895674992037102896705189968634972442379037109943238754051842769361657393815286631785879315980644031737725096552188821642998907620861911883504197015638328572314857695250683390107667435774063317778445817339682807965432835867024259541404366572426003614457885062291558441912490063351182624598619394834957944102276260012293156370587165349681272608320131969796651756206116643496049813228453639387493656146611941875032778799145192590820236371224752341758011594250718171614001147521401902940811190478438422990771940887252242109636268791291743624726557796786086298628239639955563556527208833058674089802351409721595831232339666420656533611726792367309592104598303481664514298867409376936613671945738374102203436812840035249499268711691015138426275875220946482350703711135426245847727468014809473907278295953673124511269890302942842128820614681219693693809468675140562397208781424092872187066191401431262814541054452617487476032942667652244799296785098008053765155981904382974098231862883273338772046220385960315807425628017894256628953908783234916098991844063370935710914024507147305795269015271854778262347873838924191242223360519867194243741951856730682235394951081495336103827376645732962950877804567240416577834487612748689684431106772405082946384496158837426668839112209475755954193434490890329206579195749307314703901600833999145963724219350864297094797630058546879043555349984382375193400144232398247734493299795816182662751598875367376393676938522840679990533726550051286705757474610140615358502851931961329874872888149038040952137662414280474895415192807785399190656264549637578707127435566775603150497290839240444763365819261454423728345530829944681023487613253588271033995674768211231182540409089454980039304086066360260690894748031673119962332932768435572905547681119183047065865841169682541526643052686210315552710720267631437410754173444623061750616449028246299531734229723616990563898606836180541921656447410827005564953683847674273582582043667757254774801711158349842214864166311557723120907923816928859394264799953978593430163772305584635531399033535108188366655547225102948709035720219766259594241551532916289493355167413770196710865035328126069852517327971851596515612847009971957432868982376231970945912855335901638643726856124743172874247459958915098639476750796233448908020515049862247583052355511643310507777805428928057426190147855377952510312616158256376197738885160765981964320096028868002179277766973024492857662816955475930009058968116209311124981963120503083706831256998918766476786596225444352561800072897926032090930334504728126008123789291406449118033082459383237075498254572480408409002813808765040796860723746625475062436447092123752855784144448742954633561429217455088219156250587975181392011580540215258273099550887553151078690191169705315251595280831169608470524724136458740023307681672550361475685327995169806676252731085898770789576162870396047902933332121061756141556989961913515183454036573502117793824985400542971069323528033091487019753051991454510252373922112181090012645657428340710609638354442390425871911092936539563101021468753104153389333337821716465173665031685738450041348931504690912241291348779936829288053902322714280780197239305744203232687846993821909234876324557919611565174810189915609373515786378125003696314799812381800209753563957010161078399445972815715063140668228258602159538989733532782658757780920571265171365652546422728337440995567507362851536828241655362873692719904021876335162773837699401351380427153669242131529809351575527756049339802058784553507312026467498619604067709541569832097467461305313192034078900287198064598029840244010171343795690376939327703151063267537875689357929355672217780388719559752068826443043182115377860970441247783435813948828801947550654342045635044806059056489192746449248446562944347766844034675958951576159088982483118501824773816551632135674971609612403340563843254179056656631574111722325265337534319833244762953009827401459751756754621757425855540285354792518152191054737681729674585748340533295742839302923003247438245445492156955847498188054068881577423713738624776381985841135116452229044252755143051483816195275817788742728103963254217344901822964573971110707060998433314365933427487454585107451963665888133089812686134989827172998020896796845525680695447782993628154181038469665498393025888205178846144927732361334928540773645770162752352276198347777627627694470322241660221551685504757060650427737988539245051553709643439735327909176944571090207590572986867079758273225972896730992580750014480811095075769731803451963721707240236743567152862249144589937228982688761842537358152483507882202457818077532084849083814277995307742906316207667274214995944850727569628503919330059892213965437502083192144104606358818634176598778300254671438815308180457087986796021732887561996638695360158935836605419958088745340568599460094029244099247155219434626077807091197326797011538528326395761168207757583236379104602204219066533399318967137498442810077581080504582075503029429620552071696675324413215715615855027214349307119663141725307421829635153235916652568360493090257460319343696624745318747945018379744248274419279929615168937807918413723489277250434052944351062443889582825253073713707804126388932124076171715771475354941276950207264441592603702596639303283479523372120799034734773265382201626878437971809795317734354523015222328508794443296237062149452757076620749835383929552106290304018384118330277756239033922058809763866269780233810840251733307924690965177263427886070421692216073948768346539153871538014822483421954872793439279249173501886373051004768993280965487268917315292150116704038765884039679265794958290921476340874798014254705229427620864384107522699878589995404900807084652132410984457209875643522305704875014523055523952778833252599588467575900045147871464492556531889081167784922840390059696611912308626572894111005216553176398709963070221915769435386698441540558819155312812494330408847278915835677507199757665163657406162593018911215079838745424210213607805692422869615697636944972754407283421805700049054145894014025090536641935028408908218871186830678673660093882689440440402905847976244356419435487887775114315984900810959604592501566734957111576245662734504173951587278700912076101385193320691404210981373012372272829931951748618857309972566725932486325241771171012199993156616307111312223452382701035682069760126123750908913862866381526555561426427132396883763980511470943236356060947846636750884998226110131555479216167900802563458510167472516603995627406440951809775395877574856688696791911163958123854967726734062478632990576782260984207842637120569846696657943904568925792404191790356857633704909664137352680703939597810006240399464269730375507915892125449677168701106584485830847732547283900966765481715373169123151173049327941089147353768684266240633534540757376049090376621633004037739476439787584183399700605721083976814801699041717036765019725075914893611030360856362002953333750657802746347847855624966369888023578970732251683446301034666491383810452465796129404977525893988911311088489265923150736491233800581154680775731159996366477562777218224042532397019800097147730911559733716417578871451112474679221310659805894405179908060325294434136810616947772369178839944570672486504963634358957289140744032059143736161170137971275181615806454845509962766156312491919918423111959182523465887607102887197634313206806408120130697229253380788377388797658207772909481085773609140872833280344712668199067558479375010984425176035741743804575286742068011229151281975067210557895728018048163083805538746912077240693923636370721832184537911448750111387888786071392112449355995866078117276546816918561857285225238155926009610368733685027198421419717614832684448999607952753853121592087811004029281401781826820351076355342402285320957481631245023568721363711556656381897538090400638210332826966154980789272858231941113886006268528691163520648577669667915815548869734989756862465309727567564930170289303212402420886424748249067948408709905999100571350420221264474360270671675021136099658389661491893492716317813276423778869059497048362732575069635527596043333249806687854543333453076835131537143995799730346478282094940727743719787785391699281795260103256639140952432793366528671342698540369040444270670959740252663732345392833927873523286067003601628088621690870987240193520426769241528058925808690481521045860937000388222280911291628738856534859037239519295237402555160891047946575282518029293091868879575985607256958144617565115908176870864774606071949711653408867905778441346397645668490791564049297411488225460288130484520144385805785672406330337596119635672778441206918499880515698480864647297390899722109919496938562087441832145856231375683390276202502592388977669278206364582943038556734189284940791117084278040347381464775439665968483489143860428988851112226561475026419718183257586249425447278577027964149001771086713768304341993251530138389913990548454299868536646711742312868411979516544286257774800874765777679794990969596641337788393400851745653889098515173777567555264938268416995921346544316672774636483847930381990874356974629190110753467267827852622173815932706814812921610020592847626965757138522230008952706417231082142020937362691043041355069246436271196167954754217071949160320457150160498358541437212157464700466401121358072499314458103761305695143246788978073052148523699829057418122436903665452715685532543605793013759833504581524869281230075972291569322120201030208398816492262108861504756187255514492931567779910610986290822939354729811670340665163156487001237366582650468427067680004940324721877676512192615688518057104459351039574917675330597940238944806476810097475846788338686862760947899837227768657344977806670865064287018830166003409672278511086138648547607376801213187593397388465657196612666254983734044078948453875265660532788447955317879719853065642210084497405482360045096451428230954488769191071944038657570101904935425110315390434951728391101993891111197078401522767465607405165625877762476974958842135932088807738887084388155039405097459840072067687091123963035776695724152414565758486825266731699667363184624305789574382686152728744387861448259301213616938662174221134124206507379183773973724855858355951903010433267351756123160354481192274857401765544689798718073937499211499497906292266635059793886366935267673885604324217187496586639504537319242635226402379273856462729463916269270676211181595275407661547463656792404044500905738538851244144111744393091374253904914324051748739669350863658880102006517380512215497633022477223400016547718879320719033858642497901374015365244959995900676491372617068230772649120844518355501369565245700100671131165501797341518523652539342409562404175613989191222759664597370096872572775134004107894692842329168501729052226371958081992578931897218812816522732558474737243159408309694326487861355296240345724669382111535823213573540628724727720651957721480248200489222179998936554434640982234288083041467804901121121516602923831100229158380875322963563308436031912785326146378437642315475441329690031697942869976493669555669797525122466072088890190787131196337788968464600554449125803991506308188572808611498386593375444611541158693708074474280064587818556042351563687161277140292206324866847208211839722312762050302995329696212465849664429807410669423938549272353394582891252227708798275228795544486495732729070547868443532367600177881415978550470333625811159835925245204650722058056830093165890451741912755648918058474774704177825405667911523403281777163382882336571631054323759225313399214331365928607513991652063844432700102306818633065434120630081287483408921523956273315200573920003213102859703861650191575222980010076561722845845857478814673062535086997890259939493343243431407507793202613578041798134088977361680098535904908933104096535247012899176193257484151411131603421479139741348512786210157910195060730178566817664101617766255016664279094905598418257386157599798251452011748929963787793797093919734522761405024811752805223046267936182443720677768687053306474514805696916223368106334563348421021977304217328259160722511383444906628486753816119235906567676921426406808155853693837467053914361304671604839330022992481770804101548114649004647846237708053847252322809827937177310114395715484524221887659238169095895198884161864000502170804204162677682512286419373487423319666208760339523888773600799282235592540256403785393777707477575513373066253638440183602287123160274078829511914198611663965845819512902294521655621168250575743206980991815553611922742372880294189745084539161709717782034723724136287602682103275939094640829412160493493878380836845160623832733184536686513253088366158295450048823465129792258118992858944104891284188340326391404975621603331252348728937794595049798310051369462717042493916948071227273029236614544592759035702674458102222221255946378944114906911962999468276595570848473569819880010989012446461855672240249143918960306745682941563562173854000977822184383582408008913288695254558817921533995106390575030563343915347677431650568182922850439835927587722609675947998725299344625785272305697594718060358620171087530709243320365965209443365456581658229250683729361210368159207514113168045770627551496619374921426501072449314022685790898560933057857192751899845470815133739323809592510708010929085841458324326189081335496517552664722872350262955434483372850165967119345032755549081115720707286634723292342413820725977316802845021859197584573868379689729009426413787624916190887354586555427102675922239802550675058915684370451104778591696440355466695831052073174172329687053211711291241713145749578769739445279998112930721796065642733212061557354103795353744028811329423165543079420131753093759012342851451249909723235080250033139234450591995371325098575187998334793779342865589797256430796150950582342771011426294081177248178733492305848611986994455301752455530754254802492621246682266234378246822763047820740770986498925212405593734416481383718160223582293892982696694457828175731675190683461598408388308841660471481152240915352128141497657976651543562708583650950134797389812238615757645829567469622125302491632535711914663609520312860399972846497875395815667605921892351607362281326688339696602377364005813394982131699548017438118919757733594779352358561344580530132714479294174016352291836964652177834355244564854327134977452259839182066466072259692868632140633015906529693781455451365449531833393412980760744398196595275784398144210243762852194983807302298568879036141764367437304329091652190406823368876627992062154797783087955527377318064225886762237205770661062769942411067598816216566952580817785373032716153341497559382617571942655139427178615959893789905677602962703347507502242288436167688548654712537861413733891002245393253168211568977531157320676184656608985776871417033469900492223824153751087583123548141508047311426750323802978634248382698499030689747969487976764865099252671366851255741349601259253060956483738136060626327062947865258926653131958550737723670018755473080997957334972520360423427121665805087878630887567199881125773448775783174698675654059651758533359285481494135616434405248525467051792795898259528481047327369834783873164010599544309424175837856845403908417647367703865833494396890069652859110254881454026915616635901939131270062303133856710851214041138641962784355015885653653412436023776916550566979583931879566812791684794574873483708880030905194511366876434191874447838719207446738964794057157312363202305117053304992213522970303627053145145849638345110180366062652752888491774864800314101202577064900162568503729487586019857618403671014801279859831866772936799058697232427144806469110963344525350220878808733353115447763597166530245196701057144963887976692314338969037081577274109148381959802020966527094436912445686372917676690021382069171108437444526389398271981460145667294249352366880427714322392629539519683295045577675464794413325892370118029173921816311037156655447178776849024665005096173301782787868815721124907300048521656211606794675859970429671554483496726981164624673045976413359769893922151553565921911833585669238332622003107728892785448651788335830885460990599662847700499357460265077231216978261263511654542783382191127996908640828789157138198853521807383902768069244678614667904223043439752442565036645624088020236437684635066790359416060740599866234744242227556637413572958656536091330406026135151248291859580034548883301355805162119638353570377332787946477958832352813685663217173825972212718941644733892682176314821478037108884098588329325863708506131589486265290274772633525302308848894700645829777163222073050038460784115404098943182225985116442313885651661229266820946946986127634531604047117542119620866471494018348302449092565760915093077944743237047638615538195434707180669757041655025045025071281391322576888099203912120251614138300559210283636595663846487988607542890748128459875718685711708761339766772925229633009060234665501581754777158310772602268764957746356997875588432219970499607810155661839577665894332560069486287058230442359064606057725394915146573513326563865942637788486211524305775772504963709935938090497422941399486515881344202265812535735650923034301945129979533916337099112155560511502687611741404068547551219297446232409488968419355159697225169700426083779518861733873846834919191972671120991502056260014254552496074997732564820813422404970647466610922299116479338413849435678785953896655588221280179732001412175620560724582447474251933542773660500135494518306722628963473252143660760337594734576171374939370235829976124357326375481472436746063781230758026033468533117928563655957910316382871621818744995056295298013790368194242990213765203023398316100828199129112095145722034563607029602323287552725150234346841050940758045941390952552171110401908999004011526177967714678625560412222496055717381836093974390415978980375021098616639166397009742341428996256769002537825237964309872365947576018058461398139862887647460002618722563019296183753147233308082909461697281829270756967914759097058553765402420004316396748245973524794483222795374418853939816925493374684683353649344767035269216184718691192162377568429618632502560800517247627147301644285039498323035267059915802150418207643288143216163562402458356434011304836810434000352439106009555283012980507981638081256917742426896724942943985327578193883284546920658238641363861817739270550937553288161184935314797652458064894341166753860389471473143633393541342236105610213667602742684760689364798982641977809527458911854241765818120917057474920664478063675180622948013422283350688479100328159574807116634993896917342698555287286715546533784645751153536354008521834697159350915942616081885004855207242412568715285020050624866954928467110531117610730784385082821058761624255202099131571252880665483552890228097324953309652738566903246142576195313193754011127034178683205999605149181781289969697146857501885435756203999307888796132233767475548970823805340828873109500585937648289939717719530271292354276279204792383385049386707401404151066367197496393045506921526506980020387553083394933034176236788924342756134478618673055423514426609092491251943758602942861309135658581470800921800483876660409766378383686635194569311307973942188861614353865431296175665603015417754277053035917734723072435732816770460645427753363136638335510451758422584998230329120735374765683150508148806318314799237717525238832312158996121670157312168804485296924059198308274645429969960112765719334518480915848152130906238802492480450104517418219121540571362510113183379650053675887090875675283881326766039282929467454614782027030324370512539443276720334035740276257466743871302871909111679183850542524390412885934559461886229339204988975550271684655380383873557527205384832673681044951598650225472628113336810922006691811274843728562395285535784875123960386060838795293321862022489381329723005342092380239247287083873789460773148564519859197277554832714049988782909672790574868566248394214585462953902042253382675902052151584890129700951661410801503874065361949895347388818431696509795273521711298281904896310663077113627020996421169958883306859522122968464851882780722871254626031545173566320102811583466419395329371018347650965624781616323948448337828674328061797581001624275965570319566183998797990125771075644584153596223407147263475605705556874022745093924661972899912062171537964879186568192917502203642091901153978514321851266918955006269554770224690460201983488127037337090199256104325043983197081695803124743963382629016867221859088700246930711364019382551652097914809331363760471748447323530906082095719582995604146737452576103205273567417528858396411200684821170625400602436852270970973286202246277735233353814292964115076652846706201277370211495109924047989784933559768822379661055972642985403074751006088983940997013524519150365948243719800884776429083245118247857427641264130332634996527242722337050260189750437390388109325635707580731089413169951266525254595872426753841064103469213942158619449495652645062223380771672393618555493482198435095938461499342321095725116012896644711188145308944897594874892506203379864303583072777486087247855770442197146003918950066460737085747759460184503036900708309720324472197265850122932557098502760903836134610368077884077676518235561679136594273147951735206286645193935613038381855526421866900501218333641322459978261047607370149013702176762399298774579847961281854202338549265771007321472692205321141287161853616908661087268961400810941250604073708206356465265801220827882383969111690189254482059601257636597249432786444952116419247235294151252854278618028030936038630065138861501725949431089849129176966459910434755121964255995289261521505899009827805672377897579388889737635536793391342807314823442282866596960393869824750984805968161865387598613818830156230061603337576107545534459522988405651162366495572326014331580712368050363196903333922616851284166726770101377097152824968350869926645123840459107152845129249195141914238782224628862895289263019170265539983134989243790876149225505573055533796203956373665950076691814247786581552759671094739034298055312370902456351184855685550720444093182634953475234469318231298532318701274440798910181541830136719289947457195963065253211861974720946690861524696433510723368924722004199783033688695979886677935040048126879702725371231320668044948355392807887535742136443953207803630490610606050967818300420049371758946749350541777486704850831884429442447313063649209597069914069357172338602712291821153838861234129508974001218514766682637203230739090843373387563691125271306027567044365811997809543598591953509998341266032676721046479980930077740562819634773778146601330414596566218046247573582213464788562647569191493314329730340880988846169097249067707703555743829144902803638983070239251398871217968260218646519516545403495247607456724111754300531074348904257147283598533081649992735114072575772499435116174687093444149910106683722846016760174252536678736827481777012362268722441609857010938564270093212004828289229409611734775417375727728234242644099636291665791683877173073868689124885652337825902193178773915111552536234724795254665388661153799511509910057121205317019980119891073481219323177553523105251045817783420383353009214213927022109037938737845088565173690863522286192296340961691892014862781775624119654646107295277465558321298736225939068187980999731575457232006307733291435841087326592876761028276653525099062496629189592431044710227757478250171523504587691055729692972198780582869845341940669977095908224810317474958883365835235545877267596429450677974957134059635732671223918037748214972516598398163298233811017832852250421230343794006689116904148830434710310796732234520524577840871657006768093857381439547292533611238405512319315105882079481495854901576339685889218277143388422748471393993723652013448777060595510368154733806467860248715765697160055399344710612954951146065209918755690431867414012616171583250460783340482903532225587374486761968748863100210017479159313926800890152893713516711436450872685217921266286639382578496940319391418453206695293766849896075278835361890542759001532969144269826347552867406082082898548606457520488341858296640800637754079105242574800024716259646937431895203930728570388857283797091854828779791104849667846373927829314139797457532861403716622297102607422836152745418038516767111560447320577055617301194828801274504990871248216585359376435304245547574984935020296507975019353873815499256753870715715712574104884165094245900984799081387920183344665248533162518117882916332412504558704157746161980224886714578933970649119110752540264543293576098802282573076699232955796448300140580570437327565578622709203958474344876763846287308130393321509995587896228053956506449079205258788802784776245729119308778474464332820394640535769028161412412493000251139755917894816199984708247051229271406594026325453051861798730366557359790694103009288678291841874440859130916474088911901379816201625028267124152182998151842020238771760204942592357422721400584472995472591823124367031070745093693184885793136658247051362052529575126437522442602884332516885589791697595982348211603484715994993021650448816808106204645494984733243946014952686757506240582310253011000545555412392451210576202483683246795113979672035394916679819041700723006550060011970530259077963599907940941576771195812934744634327464662579352072929100032562977502187728316486896699002945537175922250395152587205673014534037750620289409233235215946884174706897549368980884481010013801092864912480008337443836822311123007990323196747920108986656205363838224888650586283103333657251333118763564421775557084573502599176918426017792038030974432874907799744121436307342949066617181298331196945214408088968234535918793035972710585195287058055261405331368127564402238996069665617783834797502207416686832927429631739896660562210490653189220287111682953506290127830424617191681350171220735056318553003559926093093875362937801378536688169183078894997758502162527186019060697750635311153677012442322332702994406547927410642948922184273595801533116596928278602109795172006882450662319666598630793455783117398158511718207946855106316054514168726246912557125943700690604772342193319367907102050992810357241677791876841677170889884110799283246694331638366606023322089371093738408582321736613876305345759285348993356012010239627370095083974628875345873443670701601842139235388836914526185045688244252134215526683086850600202982715177119576659514602362212631242588836820877445999978173922292242925620481259787467354016876524521423986724321791369074844448029937540985688817918133640426914591862055356064606440514638797788081436863005500609897042630949359904001517028823490470917279615010339959233577533053233756136909741832962195982188044880198448336744798017874872921695067975399102368624611199592736351888443829935182960728243974398557804271498475839129767551661950150746783197040975611803470279681305480126537385712795166842626940943020610408527393383573867276419747928990134473885738988535368655467526514058858356087306904608830295022564762105152640492087185799012514545381796172768141226123550689071198743945015577011399208454275968268492951686938935586728892430014111744836931717498407249917749526172310160244553796377715595161828403343484972249273438829130443723106522418879955254157192659248667518621334989650305501740560866059542196483701227702438696413254094656631479871955476891500383167047429816423477024245063349970350517471436127954184184901655898391053792652189292837577130719528064837128493398616609865387792111382370743350670957945538522940915988925295649367051121208052883851305885411250841569250149001675068768912100138444053947561852071778249815250010005135420290317214142121492064552591483574158138208264676851273568721790748203217476009114301217916898389298027859302984568413062677891158719799993170688160710901934028874045565942456819024993566938465154969839820964778803311511136369027152263418871767515870827758989226741265452357337979833724092829670380659908785415077154703950068337547340734511640658269059907230930246979381542038491153429110071922419572176246617929470400765035148218406529231297269931444974539290514193347331120687713832349497296547694876535413523353763364950894251005523457487198357406652660006700395241508886575168226861762788100500540902450631744843120531093835522933321535622924226509635094404263718587276355971960183777976450259914448516232247199263904032654219915926045421097958304200442391754000676406509565131171923831998738403903391411934992691651088346842696656649686692136374900532294655067115976858080847011146221656030602128611371683057306051607442578058090847973395429196643897430249085824937491080411196531180004925594538371765654604663176557629501057804259387259335280696522708932078779750609112475223367081613455871912044783835032642261446943597310683134256648405579544408067692004424337236786775516082625987794260042440536769252638612553625107654410332149171134574536502083673541530697502646915464252848913704350924404379536054974497583521585238648851380682070204565817575591680680997834676859036034843577103361795186623235459685380366671807234304614608242112478094500813058260156713307725914493833759397971991100299437745975748481610885109728881587559810499461047964974945148310749342757364531239302790155037307913583469668543879551670859015382940627227109310839047726218262595786957020101866230870644977819247797828065683625163703268709724813393690598925322185086027749591893373764491892411032429295921832725830305555136293578100804266991706756873576102036047670242942583442151657043858799965684048268874195320860607208573373239777745224181256073544300340838228469720005361100371725148224042740795225737322040830727258251927561766215649436929633054122662101989450593581186495461495615037700692999681254717092298199138647909095453709340412654000419661080051543179132171718777033433137193485152940833060786527394174354543260343035834092789379075855224026506894242713985994526745992188019455882898721251769744459288751567196808199957208647300869981324774825234302317386522526115545731111554494200380572021165649292489809014053522245490926981183847225449691371482410614735969856678288196969674247033981835810562098682107105283592656592018508470484268781828227693981208722779578570611251899264225311628073095415495444764800754867047462048028961294147073618754465821679258224114770844371186910550139736312981622895462875748586869425011323548673831011359993268321702083798873203299213861549221985791214190025649934177955228896789729513656387657023669658800652525114632250202969534588088606089123918904607570362126137412143928156829080068055325241275745467300548791443198228956441516968672414428231071021936857107942084385651354137846737183733297400716782400766033169439082859411500857183014127952717741324486042146847132572709216668501161625797996709777723327755840383517060995218371953359734288258165167221884406241415993255004358320587431035416499273573728037468371446634364357863586447755703817834228083427627849477552184533194880498312718735525688949079544622806804293219283556188973353942187836079699272195543758175223645276998724443063386697888146762523617125426871471873420181169074088688600521836098897899197723675542667671129872035211017423772072222466454516793602668397753614011285252961511426171434941630223611898035051226487700358873168252800472093326954496430479072842077056183679539922498599969356639296507370948381451179435319083107881072403548349747390416439481481614457844366176828103232439949365525335811948410743953384731343851893493860732028198458051897940486743190971974966664451411852005660958288399913344535630997132873073825770139106540232041133630183303064370070978855832729420341817265696611956564171779863696965137957775747883805071178487761992186787277676072370630081239062944310026873322596324048116607062739518846789808928506231261355833158731475725865268145843060510755831472384733379764061712296312561495262472085469862739248371132846449965450646894841646434949805788198916525661113749339865083330308585079760687749441409142211845487909970809561457709013629809007128764962581039446532863955668330500058066103426954366241786217606775697685640952360075773892387558629416390582659796500769968133578702889204530953088682819444824566847198014080886762362551530403478769997260340146865039643351745282755520069137375398365330593538527785351657152965809372129893700089400513844481192266440289591592822947918894920424164299476046151221399926394765739384268513211773887576882588305941796005405261353464804330470051404247317477111909246313074356718357163021878496606199975134398566217347910715221019709969072259396729658175655973433747657380160537086572778480910437142142708452033691249223731402034180959868124832776395748086603155972804807898095529712175470896940498069273069528269574282032299561866560319694253429201640350323732755186644212272960630916692177143062057314205922129355627960894910721392774177278551333363784663538616350072964298550327938455407772966423956589690423914008861925316549262371524974616044999281956283871929677805371024628609252696524568166147326045878940814245161999689084967619971552240108105931298802704241891158518214296323518662520342020488117534678556420705223296692647411560331933751506579103817971262346248348339641543958879349919168581997250751227453838676729754505753261100038749288582409991527030995957700657637748684804841311150484097750950446208241398774052440881001906671966871163331575110564329868541467123919075658614621594252718145894962983354369273774423780389332640371437380724811598883919131662703644843960941124440238202322938169073471347359130852236804582454545669260172702995969530610160950359312849031962300069982498809241880051739945862440847054468304749170469994625341794485978343788885380654642754118110190930745694502446117198107855344487318861277502630499071701555295185248282817474326404275074386667867703449167986988200511946559693716824924016747942945117776544391563183477974321532213853196851004432747027501759739251906191397106068449190289254558845953950664073649081014886244021891610975386706937870481339053038805607388017620395370637507926685629736641093774182697408012913996993113926583492078443106943202560986868557909084533105019207305256049767942191010553836053071355150511742039803379733902894405283602300079700459950205912903959161831205850372083817499449727299993972865251555712191016717443917151881334402851050121004197227826176982877527163750418861989861504804014693393617354905416501411057103396188304415273601179172218819410295288293046621852377201826838000669358102767169875836299866833441401122272973474169453827079448585388903243562463440853757661651156997452000035010480955909386721627531315994929326971427582817496980567304950849528760008863476842355362780197630022836780092281636847948805195555488793732728819663905751402864991219015067045267318575566571312602718561295166333537845603073081401698130272580905209817286150487121093442660168762758611168953572323723728461540085245120868936416101349584353061418494116167882831138405883181491104231226261125834247360143538891529667330941126224564595947610600292552633057390018443314968987216067421679335388041264432079719027429502677833853260363870763060668179357290276904768937579815015931679264501846710616260302790167656636625473047582241499988064953813146484471000168739227620783518600244929003032822481986782657279992159037103775833299110204871329839379957384617514281191914109928674780407617580781342634088755032248230646224857963616538006144932147307502436883097548798984694123493754027552963200947703859167689109222841283334490978412987160853721307259008370026561307992183416992906970992835343452265053565593855060105906659684924687595480405708967539082001264014190852138383618759133831521869972921970548047719718202186053045598061908215009686654818147069087613210529024910009134258738074877919090289193502686864434241999667992376747098964537808192936649729286200082680611813659466846013289139537204982091461167796176073999751541326977145334983501384803068917185904829567600667753044339121737790402383743263724060677352616277372389481197319713249233587374193320095339540551219384490206392453046744724730691817277744118853192535501904083134909975622225784218520603380856558338981489305375992619099241328829808436065902350353519476210629814688213313006966313576757793628666884154560230251688248501612472064165008890874735445525877486199808086359312039190460061520063600994015950550975617301393078330506790280303024212997372854529240266144761086755913568913566346201085868037400318133154939278710539534651987411529854639016412641462150026874911249168350937879292393233856168230704913965241678964381691495425653527452051139372356963043460246371911561282371945883794713330375100983765486552105607866792194773226722509037823557090166505960841068809262915513246356485412856225110302064572321966186975050321550609494963086057434132068184117841038053281513332135415749140947687015468825363079919306529873144581881897958201534389674412385620592034610340784586740983656259189375050824989647663748828797824267507317425889417580172417329943852559025625054450846305190326511972809824632827917790219624735661407696825837865024963544421401993061632412536738485943533155845580513371510683593664500541392275208930551525328919752812778765339184409293452107540888769578733028545144573831050125196911410794727797222349996525132177739710168497939802084591798905272666298634764178806502995838460070192600794686362898955656435480320107847349914393794393204503112592976736913317037312508795907143132393854066908105994215317919329822434269700860960632574830262114168032957015656592213615025345612084496420324045437084647565117871386266297403815915584696166230672498092472879406727044519101881553576409370141030219455110201663214618142144311623878810165775894638889200432159823187237901168911590227298069991080847335233292378703650449810191901694778616149421108270732779921480247405006424127788866649807475439536403678173735030286039849467464246933768155676553260587279976460672890817673516191363025961106024180162118550170525979606810010809977980237148403365093489345743774361692877487372445140212729143970737371655294649139315705062805330364023741913715100522777588922578969457822038529102659264917323478823286320009995650241703940339996922006554375102767783451997300460925633837737408607692091799839102945945513086933060539846923744006311970475561081869963415915853121976103261784026369484568322541013095836310280118654744695846996067156666471601552135312413872123687106120976595222482747441001151643609291093066332270978848442242371995385599497902750577055650842738047003125174354159360456693885169249165816958430859205040028280343527784550147691689590840992488428042961743519440079580662151024560025037395440711287825699618343277797344131889680126984893020785411309188581881324700167294317851702787721591818469351130191869994641947996965625606989563695843584744126543389676011329656645293809973929716534321022023941569676895976691509380954980380510668363886961536516669662605616918300373926669116457565219659748085151300200186248773350220715486984492317644689801665834546332448290371604964159258154342851139228715398208279729555793359575181108208744085774862246389963514703821653984699491101206171166878755486653812877649211621172706915220873455976297217525622780174767452231409256326096165545935105128350196835689125817894507503855750653745408617856263720019105961914364264967662580128655244551408167494655111119963956627109006944643070053285023762386486138209459866112509756132405659800976525067247637908067308800965247807535039547700863305130371778417096144289886365303448763536350492358890368757999830707835075648329167685411371357364151085840287959360412265100722080890264261092514698926617427900708841331897718817487278901392257070522767755632814566989870049228470857466343489462895012147701016244157437209640949917638102974130117605560293764060714136567011652626710709607807503569885461601054475418230527603801976849298806939695098149875402472743102800927650892002543302283657501901872793548283616332021679957719353901542577425124757060166583053974791308723746476017584478652614652338106296633577688764291913210100180996343987487505167789142044961383648920244224796794275664167686276099219954832643235567194396050633903294185596993715969417872619790281818835749713001162136798720394262903753837795809894357380845999491470767578106106850479084295061554122259251126944291027699580743079587237905329129576470938743216369379696099029194793244376233496835671882844641710362448251241125170789109017514373708324234008769178850967050768656762728702291196661320018328237073033903946940251331401072624916922598826110259663350697463139597365262003317872501666358526431842937131928010198047394666272177003481301220309332809903864103012913683274066292336641026679934824173912563235255945285401277089566048017790661398436635183076418842426965902107225045166412075263447411961783470169736169673365661118447415483020360919936525588896908708150330410039456860487455197897752779157914483684313252691384252584843196443525950819239304670906035292781299132035531853351108596785654266932045553390351821659849560376500185352435070434985185150583623514746092480142235022585059928130246539720193923823680101207272126254466673294345423051870318983202622119270105367674155704649106624846222079621542584627124081922331362444712790455340135123553105647927429037152869085534095344112420572685481725359138309230702294792085606938562511282714515249954470714501401594846540412111224823312043517565065599350538171625340975574265312911658694370211446666194113327632411995604524718088363429738410324720372604587056781091354725472154876122519859148994579634932065351161061310618317078335351170673385648846753931694686137172663601290718278084534180057590849800417063615502067916590570187922975367421547406430120121085345111580852158282477656373154967920003216255662968746388670399470806937014895819983405445641371768875577592882484573694417094044935047408719495418723102777777299095114224012690659773260722628539320125840114220727434831311872434108841422165338914369570324438098686149582610101736945753505896766683836543466491152428149442650459058070379942985455645196567445999815396590906768391419875146478756032582935514617204002590700510772203705893963240998219664069297608300678136111103526103945430156544394245844599435006469144927669147383899317847943533798069796244481003440630318785325647673347714791017918199458155390981620872405740366393059364355403856621321387813999749531087733134713448833850130747944418444790544622516134607674217903015390210784768324664573211454916838356681122904009868553720859598947261843010101971860756088879096548280241252049653498444031589325036473981710956492973647027928654642412981862037352478271022716797247527659197168352860476939056064666025922836827675829065096322736457377011130969192770565131547910712814509797148427629585716839027623438310988675428486300822496636925506247498687340215339478371002641386116895506160776019445978034854858043165529439958114467127646437355845956874342706727369405629161945388318019748246210384503814857626375770235395898847578243207416174785824978515413995888458856944478889376759036734271470829718182937903615981904344936796447072033258975915278511838382864678100504500786748923454986553417607944083977424885006277174534864411357865996890102116229646234004518549107991958860479970994923898762148172866895647618326974232868477354777824921710013879391748366663091362931131002064217730097355386917649669355544932044094438115417998122141164690614239243996700898749363202389024843551554453753664192588589718356426404340664857893886414295856860491437015867670931888348410162090748846520259460973287765652367283413548343301006519370041719052460865113926662691122985696573244312888848562025211320699344473400015984242590664270419601953798382391603110937227182390929706199392762525945947997277300412341692244194720908067754042958062830907808469935023212091503785565404489052105285356019803383202862511246039981796768422389999588785875296773033593003091658089018248780939985834301414257543195955736337806765183439653973527325064313280534949195739211647696363311013335953308736426865150414814534666351627584215284252834059217466333007743857357002294291836724302101501205778855044628965557675970421752388953150503812879305706217892657786093789261402841410784797175217984101894494510685906870459960473097860947236043893918270414768579237415130690449123609096746058376552069483530318836579024437073620963144222265894441655480945866864346435654613667335726132584582109110892510799990654261133246755943529996581377217795222811691264123292944573986971293595921073140844040012905025860052600262846668977254231990624352777203469004750455115459309929555455979858262535066586045793019158535820942505176251553141614743544862671331478409427815671968506525032426567374335454467007413750279280000223777030699441858903815850070987931619258418974356557416380224470327902526481634620559027366320496549278635365439558145388738001491358010874485118490504176291224753995409951835254746494403897362685647258531625369030725121213463866908858306784611526436800525713763569734730090569468805520922058114927781579775820689175525992705861670262301596826585269280010686890331689940515030243198754821634455113144246736444121353435874709521079417959815134011945877141656199252847233509845281766738347704200323331184310595265974074680134288505575853893958865122345177733934960118660687414150950671245329672978116403630014520936827718411910394913878693627931017551103455953403340184453454213131912379805779114109762713285650738235800583171519016791985628914865314248979471527947534057278283398291008957101422313101688653600283280736541069615787774006533970459160516203687436827999377153799390347844600228977308623848475559758188128080801348872960673329256121624191381672646615880982218512593020078769306647360524529882378837954913447389842047979453938131210939511458153640156726803400891619793243082813689934860852259640024396635372299423857187537096903966137863540995812391649946555770645781021566381639607245935962585088100938321663441302102924956022904193507406806584330184587106083609564427746668807077091211504011759442183712477335466873606306268466713473254308238855054771781418758971107260152904424617252681190180023868994185018962832093698289225719217062367082102158411426244695610625929038390502293805983337332376422546255055945719641984537992879075925004879101650836964157937716383661075986106697905142047589576598391435192202902400958937007534297023449302981299037841408862633796930897882947369142858297406630582841158829166244363295412617345412048094770048469336480891479256078099606074341384931607697997257344913494443718646598791672149304470525183168416781276569277002080604825871081484289132830391333363618775349109598618760706419202170051531815210501176816832548586685801318036390783744511896046120254113670877208017947001264931628828838923476713700821386018234798122851187614917075890122847709694101161753139110862241009312871025889585267331017040859088677843192816366702171553308466626587650608282069945878551382860586764663661460930752255425587725483527117895161245086318216690022495014434703645186215965343756151931774318849758930509007463009566342153551104914331141158996321675587725714121105424001845418932202185027754844479970019223817984964202001308706555635698293415276060104922177755905620286768171806795484494440035467870036119449811184899817872323194363325536250094015255674927195956860740119106657615361647281490152145914430365968452136844764614950531868131596302624040781002658241089123520119946575062054229834909670065153047632446051198501740961016112898627550648817968058736177393636297436477831375377279539043931554624673436433305427457877081495651243761257727843013783563189580007131058457032318144284053972709036805872172669226239034432516135681611696936295835704198583398687781348909045951443409892518710144369809539904242391974495261637429858293207321451962132942900401497671570863474686858566455045945687370530182575473343365016641585956335376788328691545856504149042758833094812592211763659424394228875286296021521681497328088136392423243610435820207807289393567485311871681831046617435465833892222588266977925022144266353804501866094668154262120363273770702854230846735567936649321087404857735721549122040679813291135603200663307843874210052125850439152414928755926663991319079478372946855099633247445323378918365800757501039790199984388779125604396909919164682911089823892977803321921254852212705246929957375034141772224285617118215990873812464949601833194129560427921536110193650953774699258537077360169960314329586626173128455668502140237301209266949982651691578002487939799735714866604353594365489862818001762440814300059095884190223088888111413438462011677612623211418120345537770835460029212546180145766198724248709096991366120407932575911793466574235715630780209422649027768020385992897638935146648810212107190048262159652982290337320426022996640149656425185017252392714456497866187227102727380292600129118843472519869407791769550479632034076893520421932659594138468403208638436482781343033837955245597935302355213049608189640346674499753859546290130003798847356167641627161727962934678183468215936699305311597864337047646623490160942709496381109948653132290856310058444646206756207503017677057321247529749056687707406512123998491668888133277832486359744052329152559692579333854584179978778684762969129368760447887679615857688742703052789337506452806991333604885817688940434495635712734045891304748936241362467078905096831792354300146729766980426723573031851122110092698561824290860198727707554024068984903090063121412194766116487812240016958657801128253297452695439409638994462281645334626634197203381102453798661526375018022768405554658922494669318472681774420360491453436895951217187662812056575485325398360461415960960654896431988666800382220938048925334595452052253287926545627897048387392491736578740880247677013851597935226042397937128475479552759333582525555311674736661607492317067317419113581967830158358560445573071607888827551802014098154996118666424396570380567474793763520696703541335564128331818246432728568380292356356463758952853414793443275198907306191961149132564293180410965083548341701312882372350735116469267504770624080252743546802430802751898988219624123062188960581312393651687719759209681311849118301980856416631809725476821825325261398638418208988412785885706136674269236622958484235179985035678356987300673901971178694095974856474118357150048166419909008330392325561484929495399974463384279908377398305591048786422477736260226181907397759628277823741094493499079179578154410497762344726662909098769649377485832305370849795284229319116228275060192477565053832224073239842729483453813723823173847794630713030495934873841235974466887076883653923857869773282595702434183343900393668389912982659907842008792935743046456673208834367987913189250490646824222247090734898465816436611276960011567852888968724548961359158463218672816557593639273156633212504616431195093777725170983058672415208429697889570184610526851897572706664120092491985341564453542065933123555768033237305047032830692536181381413465956993122453689024210727953208922186682842599538148609299044083071408935944037270194685660498971221215587878935637299569184789177564109617856585056497064569328725580133110787248679625860140461668907374212810030592193401481317450238535025311196723666136694763489619683046285021541967746993168044698383349584786377773678582867852423257481136246012139075936236953687047169877337915225541272441949804378253077323175254359295936519975008462222210297493906568089815047225917971647160381400509767145647764263213956283806251260591469783648485729710900355333865534101694329415356434119751831926871429123456822027543763925282264861497573542300453294402406930734394470718964595495631271956822621346923766371259460770149203038353728108732720472677899851182881562149045969677770663634527573458335653041406935754711527594049243477879748406712965907896707933592100559423473862769284018129702312647480549231129208090381620636433177650010737428209992785508706625631717019327735413694642184293122629519526162590478196536608430917181990402689803139247507193738846079359173283475282755898614843219577572680762925811694303472897634928774659208756945819906416027041033021721103014537691829165190860311734153599974950912382297329159907839834430874181017813133971225640981614352635734940148948147313926811054858188365529794121863801091686049400415931172660003126878829028265976023256782886434768312683296229569072894850124902158449016074480570861760318760751581397474053054932935569105649756711509833105950441714312450663352170890239596816496108307295039760056663031591264107681169052582790895902508093276614166030590602949332624715091174527619153055076157857993943355859513391473535775846471540891912485989361601558108223625763241222409830890238075670921933234116429079853408029764699143060626316508817243590341229359094598373967854594721738285035853304378254984926713550166174415979469921986369062932466310177482777298478729455733395529073311817815859722850239892403912518061884645696302280181529433324240437211361922101640782913039548782324388364618546447312678740982857211239190143750486362236581040423442791066718160399628095498783991845079931133092401395076433773730092193758304289767130554952696295347357887045440464330408568105766634608119051184154162105765373575464709640891406003617497714973162096854584182845365270406090108374637353563139577829677409272552173158011616643313608209390038562326792022970373025471793218409968925354670494956601718574778860064538988873037538016405427848475689573629203145831183019026769124212341439981524192456849432961903562602519416112407407165265988859767757890432169751961743039668361239666895212646529446582748380294439665119878429078388499049440671715198297205614734068118672547662783417199921217393381458001376410619549403605059724767449167480800385677558582789071129855774279989191875786213190485912028598242844008381966824148269824058189633782817479114588214100530598047862992325652628162372557283678101743013481019904352184726525600512887057095226155692599877742897749519217194218987554341245191336152789731214553789001940620343900371154059053663613468654562223257379650755725232365267001549362217547048275283600117393978029721738090169520649164956901522549826178761432505824979908885512964080728621640653331279128006745570327712922151753892537596608214592742942137857482270405196702211537546256724954351006827914148256538278427573282723149578111098514167906582806194197217377222626295846625637740230243253659810376561633422483211674385968028861179251466084357792710219607038155086501163876951941614764217795402564669964327881253468470928903908754182230351346305793977418309409097135161400147913796866858519972931675657688260164415554061668424552092378766538301444770813888684825425695548532485469182531764614048439161823928720162669395761058796671720466491908425457656678656281841769858496284318437454714377157102826257238756885507998062028499026700359662072806744865753659393516414531124163239235449089625485220358154348971886198077157202593613682009550724084421694029267650446953780564825407469452023049183703514047688122048391246210162086145555746353441260875525362571444221576033383292731105689365427512438881061043357532409455177032696121276621300655506655654312674791080943930587185450488854773792263931678306223948508960904068853126285278628753945985796413584099010770065797391239723331272785379890035114834072373057694876169306840246009127859090257809722750041457761682123521120692245603021166921008827243340394545510024580447866662898051211563057523455882130316386948397419089104190626181967566022216229580339806283361935842910549071101675506921050761799417913638699377363987302974013049709477357860514742605765853830885562687579323245608467176807090269613056430324848624399456446310497952376907206943934313985074616098530730940320425471099148756931674169958193833974561593081006388882163805595383231415073147094502674680119050895925061985421386997497716535277565515643438077246351769354734509672508835358576817627319539622490045694575649073367218144066416292677774576621307342394614841584765778302874623148926357962191409566191959716287305383752455671078841868504329729251364544585022364564846237251537765984611246123515118497624266667066623614048252182293800395513895349337964674488856731530563878644412312163871592784982308832332014758840010442484144562414545048101161369118732883430121865818378811000988972500192507816061233353687893463308586263216380006135586710438557567317544613716166825334968859117599672471570191130077180707236651442488066362518040350597274707621605388213632211838782692536702046167129178508461129612084037915048496630641797396686368628773892293362194972990592922376097941918258300032324878988808242151746619714417964974209056759599929396163921536744179146110185522137654095917911948499003663662802866820487333245404624451314544070344291929122097560597707733932260010839174429045089354342781211018339638966301879485179585262575814185819609951541744214470737841156384375303935405174552006468776082768372299277447857776275188757840606262017982033312464772000251939492675643820208506816930168024804625265862142463388079303593114866144440589867644202507401881652766582855382139466786518177476662924507869722942298990236031695363738697904839860667091716549368407022208717135409909698399948595875903437208841831289312790929551041054671270636269032593137001767304262048156392831580176826191784501464923367944548816866737470076894823420556679407995605776177947644328579615179767033729000626883115438789243453100754168404713411887449886778012660543123920124703115838648659997689295624948987167017484390099401587482496345129561609155304418172684797136265332080978670625278338899099694596438206864348403047951930982435695671522426188281558624062963204701375223906440582648588663812950123080393046827054253930844249119877504787854987287301505424318770479275595594384659968802100495594255225166606623155804207270052998749788929363122306936523940400645305634315218760704413584225307262384766026553290626269416628412318402697631405712174994186161051205716918662729729701342666190601561065295285652148084664096746357627011999632930389126894833166432329067896283858025918947018842918201985738622582477189835210862360742679470324102532790407006099487143266017973447354565848561035985532679641037965200632035183399795633791125758879217279680390834161699625721299163652929892922521921087748539328876798820400402794370027425578223322621126426866324543529170231534645545446038728131230380913598446770873043561494120323557444140078481703625979319918007450671512599855250004730103870206629009028674890274948196969736492916965148376009836454228161667566380528894028616954885819199229079292219855967179613567285868996456027407389046151928008946718119676907690994203494456635377431385721137900237319002700863480710116765684726638024264683794382564250378536892246066482480302252151654564921090110839951680114511351193740386304780560121307158978029943014242718196244033444894170381303646851869241372832353994645757273838848049342985760630930542083513790049083883912105564132404869054373792282449691786964117022273796145398621027819413961298022141382758664730725778599921464624101787317729482951873951901229372850195204559406884044593218068125892872614498340407972816916277665906445896901110662262892909971810526878513902952090846225555679002239056334856623226164077448038165980590899039712675900924349960817787060607366248240673543485622319250138188725754682788582577884690737396377440344983776674626088489118855654082012025127762525010285950698036831539646795120225459403439774012468798579841554277569860572455441474491438504347338803053184642873560528119465181298918099105030049526368536987096159642548926739684093443631620361113083739086782166823849202268708250689549494096752562605643444301211680306281279968318149820859089626289230853459027146108612583224617164588308144271358483485728782922898416025830374778331122092919260001729172892513644428863028117497247626705529112671191818616552537882830790527682893712821499935715584453868006104073822063033462460257087998194655919424591911846420246732911662848466884174561684642660018665507355352887071001655360121430462120458535100621050628703131981004630133692530073285958359315076217998784603208915025662671480770984002058901210861544613845820755135657302375280114146158335965712839532730285880500254442306918979658588171768123564292795992142597913812331640896675499623311237466082964000799237173382377847405322026504310413706215311237781353395959367824784187740385923206151872498057863678639787097358669194938634214534559421450725232430009517906694411217787851005815824173353105997296719472442355065916105543831665634022753900242781723595668645723421367281371280388690833406261201941874200397133505318795544325531083775797992356070984071537835668179853244479901034704732699764492109367940572133796749509231989662123513378524530236592089595352018489347884410042704979636759760769921581269793257532205514200777822657419595684459531973343447316877024774120669772178386656748307392438212276240432329041668425401151511511205338804819132299942120227644639000728686377129876983866893843984981247113986826671422414746476343840841152009495654381178532780080534076747416667622853300848463339954819287669379280048107916217585916738395308478046815546159379384527617728451450893936141205973191523811222826831374541164085207658938781944543574564519202157992296842395152301642417271823520398418784021593664830907851634714956923535359060653305173931130899526058873195317457278999182413963120720801460269411558983415823572653896398278901266598706428757127398279798834970055712367075005741817209171365980692015906339483255754516035567494882554887967157785789940118001835499386777951906005309969853702540517400597758585832313468476846476083819181638202396533568097327846929762771304708088138185103628201994024170523267206547566100788631484266118596607335734458409841116086000607702894608398438476435271759728735593497112469928843188678725318888226900156600029903616023538878905534124965987634639139968720865591535424098573681764073420712205133744736919961355753596870586394939741848737969552324493126791621698177488253781534535854372293983522836774329910867132472616345366973776074349321573998885661314753225853470674318831400073010090318899745983339851584969921584736262951952668010016041646588816155717872507753190548474321578412343767390881868806196630913657430350681316566853646242399226082000543886472252331186689818859091603115145287209336212022997897329359794261785631134672078509467287491364282656001011789076816070062660608229964871390115798836062687363019684306681749739458831508494839850899822648789739453818846386168892991782337163635757766658362022704623977748556710075789635694005895246261387707783671255368644868878910893570033019368372606499818417391546766487193644351118502298104221514660873396220664293141589382194873233500027852269044206107599093370679395333846834697557390780957173596696105127472627307637955258237572770181006193738990225349597141936662441805922038267471094722087705054125095751240294249012628812616356357884670993677017627840835474340234128737078232169929988029161140083653874318858990448183144451980293236634614514633430268493172832136113541632424287226669606895088326814352410447139208760345339937042095328849931154508008706780127951564789726162890935900959716103139648362750674936865603633143891297861732148160671083766954270646136943252832629691098892760112161846153210668234635007958865190245238354258165475200759125304507739081065902709569425368459338122315485471447847069602082936629939871702159086051611991878848763946353620179196004567304198876097170958449655463992027297238367571371259818854893944536884909277946993732169322834952360542662079500051159346514319555347725949526324934941485992677796398982934674389590176034834275096472961524511735003656362415819156471741563389661365162676698529306918538238941194798434345549599322456197968228045943074553202665690262082878367258037810529073241272264990979617178472934293564712845757183702024260157856883262109070044984610684341323250035224072505616771370237469822319892389735658555031483004515596685794271769157868877392171659344228381273181813328218102966042239228186535805947568295194263034758005677586421871964459943385784848733015362610097798155734531423274012809446660065229429014512309383744034851334798437487836543297384137901199872398349751214240397671575027812159381498286307532756964781086863540629423527340258207330502875298611078404993960846589121836110429573663644669419944081485773032523777782544280295868288111421380690935737123688805064596453593013256603292088669294929277830787097513350680996931211813847204034776391622895520474138650334308749467969661617875484682100614979942223668353456176984133181693709317047106752530934324011717034273402401320665284496840901056735907580261347725508344136594341223991034269343230684952978415937518798241047283385880483682737063871523939348899908158939438545539711409538515348136067316928298507917564328664247023685145420688316656512100423225556018940006341145565709672985380746492244073333065621564651109304680736714486861945780518385094641752989606330407080637803408294391044693714498142610060846169952832468589857801349101384465714008916789318630067093041735459190464995938200566728135832696299372680721928221431821281804871674768053427520812244968282104253930948405777786443543549007620224247117014118978345707208247718312095021116382351904046027983112189196918706129816490712476401647231211208379076324179210983225216102917748675224012102369601464073908662332593678853227205562621117109899989938836896357233923492191106394328925556685420284923687925292098807302822957730267525768553436530408857187175985548567663467695597716771229439204391332805947511056699506966208027342018001823609446454795619002283060413166812191233871900124891573270617844800278879595996933472396673089769488186158976335227750822862294121485863591424748081653754412597228753493023063268842147362937595874725596825831637938012609214755304487683730252432349453294262075996909931136563869530000032224136436783805403757004448837254222516075203736827650875629971086342359021142604150044319827619930867339417365475904016284219431816111247496031511741689727631340060427344146485461347690916492005921880484905693716437159550615331848131093989474800669174753171976705789769770926714320037567044312865054568191531734013696222353309677117743340754165859782806141776007704297109883607466511432143697820689401586921129914096170851980133502347984650271832422915285113409575218704955630282715980319493366267243936293007544515696275921230430473691521795151306780591647613092911175225344826319597247773000195691801103775682149890628198992084271084645896851181165484765191078331294216926153040064631111563946704339888981362720448823059382007742516284561801061138834769369803300397986650123993234195418665372353949360979677826913963436078370145939933017394561839209857909646336076528307427729599170391187482231362777361718772286462914324525963040754949065078591926594009115023471947368215047019502565013460029348155117948394000938890752197049796049922778498791800238933820159144565322892571653032936064282888380141952904514629508519465714042810215927311017454497170834934407854162197760871011122970989168886112302033555239275115220961458851622254221795949355309699215077510600395115094043938852861929981046851222507439502773945403573881636475907118778750022465072295101753358018933661719277566550898342499921354502751623860776925171029961257818919575819935430169726891342793526335728331031839956605213093293701840335783867894066073886923184486228658179825176983615079551174553503166843145929826476359522143268773391417780443867371581386838319988800453546427798347493357423537059605218467136453848109389798414296162940882581978551062262833118967729527521729174791495899423218276445705363506562595229115490010085019797131972115783635372372374970624466020233152485113309800829431866294867460821328455668629634933688696903902349670966325087965826490556139299582245042344167359319187948161246380708984991906879465209437946026893892413408630653656043884591102146613113979886093561200919315454975726811673671241700149783262213655557924338431136686926687573898046992530083569398077683948202488763673669742792087009390447958617471402822227590265572896320831889524398408859693324993094849471354314931179592757704568251104921178720803550271366533050452135684972179054714187852308590195728178339739980265944127041625934123431899379273374267359494144199671709442056078926707015916012303036164158546891209070658831785828563505219885094483625057211145323330675292553136713259577705665236241528157602713030024031514346686091553874028490504663650154738370660877208274600014959902334472472214098174964049967932524241752194050789180166993361020653074323582449137193421263840478740234328674776370661655574936794352339181649910497316119170688887932942376211446199953467231512030059554075264543066647888084408052832823008325927450303785883834968101312045308789326816135302205261712114381161867559947702778478341138688167665406048756784276409619845234621918924767906027435548326387542519216007787579184939410519801983387737664982196211465522253477180822528719834264399069566102344050017577923604833220273458401912494961476742375497335178865184573474423736452629469248506890917221269226120397074864258985573463828543045381921561812399779356934333756536232265840857521728407251712108542670235311188144222501658797594536477607724870571342042098475347466112602151336140230276312923423663119001943124561730802065292576239818844005248145633353342923072387619183100504676511692640341112783239407412081358741522865023402617886464368814199576616246917005729415380564292388508709481764077700277279069504514268640617634931442622497958975652554176578327227735612840319187616511150193949262854291791045142685968215885440857213055122320511047086634376590973840303104971369292252669666987484272528839778171816238574160125352023805844287978236560335569328592140936258345515728838186559550095872661511949372263119905150291079007024849231152624979761839056077151619436035009723845347843365388169457973812836109870771735247841142253939128309620371205352082647865637952104505971094460251869048304785172494648434289964717326349843273027642518097341998181519313319341638824733383113171255141649829994798018280061762294797310427340054937240956905572031906047309282315634153727109474704695341626870209913519582758358933952695758763228734505421633156787176359682643750855755313770171629919176571894727908817513762394810306026161444386215814549681664599182204587225368047811559036725438829692225682523493780449216787447287297639480447366409569985307782303090236214270976061128021901034405215306696411974402998105836357887135782204362759967910561374568767830217918797340804856473422920387734750170450229321342311253845545166409020969980181100061834261933436104273990570079195695861011062913830885516530659997374115014319237766176346315476045485276484126339913144872778447350977419514761171755873237797572017989790065638438726010283324311023905954212539667806355509270758552773112593110161418285468678156081430086980390170380536320807878506189588932062889568394274108705831840314856777253806223832726865362947598740719048781104786362088732505858988956409508716527343492308800201517223194740476499278353294920207626844937430557311552848652649646521643782752274224023921162413339702342500071295746997850715263872182367519536080927276692861992555008121994527360436444198352179727301258208212766708491817322110180894790962703681931248042390447607531970871451539669027345788263373643366062822212400997486309981094635586851663491556037206456877694985240754945121710716310569733824831684899655378946487798796227885788855794214766193988418920737612658250090849549728023975359329868501894575142067934705233057304929666909281788069076006377903036694761535985175207075312291691344548298338602588537451142948837009318434851683331587491816703038391704144240438902313133695941075757536470298382404366534159472428756234205668086126833834855154772346492589719266361278874607939817586060619741645745582393455345479793697838265657882394575249361632932646398658857371581165132134305086721981610241776808216694731873613375533930743727282633804491042895792907533809940686366370430685707609800169979505626872657821890262749164588405238843093420841302501885176141135185653202647555384109948715960066504595536670148332967069560476188157932307246263102535813443124660792719598539841662796273433821452568776049913793467583788214966852188909077522857805084785610218063337996688106925102349820939538080123089957896488069202498258050846112892906112650813257310470584403693301380912385487738721539393435019217966485764191577191590848652338335493138848235392251054049298661553019057682335370450388204862888768499491033693673585697092524417623635872802581607968437509344320596095613201213402713358622177694686315579691383904921422166111553607494787593759743916639944377216021306390367387712673423242396340197721283492690296114821180740994808622613825430434327903527457980924594563235501210903383870730960879530605146175447526568195409375526024286426977073815253504490710017323111676426526944613408483441297322474419378723447782323340593883768378795110139620424093217830116826311840145169079652842005217804571048104772842722815197426034204660304375126080572936127656420956255478816799229511221209993898371130980306993163918116830939600042387426427294270655332468917734815624184538291674691343615644157970893194905041954944554939548686878739809226177935380491785585331861005415905216298063231533610318410172289001196635866895368745713226232624396260906532490041821978101028276951779902743137937618299091639769380086592297583720669448375095787310409049251868010525193708918754988819821259080477534841821565463208096941163969476486268494385294797388686543690680737259067338340632746340000417477004853796361578742470867034852585888803832450688507547344524311341601734321654759702568404425622373190793009118210225804331995420635853088922328894276501643059066056442200609822422312605267541701804898694090146534233989632627863743515861396960390085910082337454195647591405695884217195036988617138891639573136525908261203597199374754869007876439853883534380552969413981934695878115147375653032195244733884199405778953080044554150397529741311611615207652416114341151656515683654847112886913332399999568297983962011612017173181511171118027461638570033762288962561663927041989066753632177770987553267942730948748016390394937913321829467717425815394012205967522211992903614929707850024960239667883947622210726706728039828277656463756091573562955706663818816228579723514421207752785912681718857788051567695362527397048339770089619050354144293660632745904341139318540912255808643514340163377299000872752433074358059795267060521409666558501819184623152004586365800602445560147857319896553936546857066807322979487589163512097957811457332858563826360253883624904660120389423149056016133284669953309064306779714757172396140285725663732482146195677634400270331411489116255266020031365709794839125363363109507529750598723243018419782482632629264704025508744592283169182573453072163384283306810587074481853726147999024229764010471406003363924230073492589297551974562918144168871261671649639671741202240441875225244751982584256332081071740826929560735545450217412348360746038696844429815322636965687791471206774197825225677175055310937511587429140791238684109610706311134658268730176615367610968479350480800001591596170678370795414965229605742436095108994691284173016953295155010175281459495066684821193093678830596836150907522809591238941143238918459951532941241863433950829244183747123965960795333735534296530645233523059608443655610472049867205086569145799611744158146821990762429969360626063562608289895615988731008268127864332489222409838413874482012187529857135358881702413509024570849472225248024015269752117681719365332443487032670492984990175389243166297846729371412950907581602857715559495972892116468934519911353863189661254132424857866550137527566307208269632518338432076784558484330875022150381695190931824439131149083925203008978156266383071581983778291354228541988283297574286161402711238505833124147676397522464355198424671855608445078803512448834767794526748487040321372391772583431300347644970910102595922582412784012879779879234207867826212274834758822185342751444301227003630698276730782463398847742076706333399614669381722203375711753586982646108580771108414271962863914317704115565543667833857924565850184203138510792742203034949777821799771222474095878178236021230494557646138388854179077794637286937679758948720355378212539791053416475698943747434000439168045374346409120630588213169986828241704152307073170169292101162044618602147071196708344009914068901919447047576685811866166142488264696122399872991091830605158138595618899766584609199291976126641901664821895744209193977910691426064525964507535241326936641693200892169118045003084460553042092508599993316996329730132603633891891715538209339513159126933409517847419314013746100908240674819693849286600048052445531947460804980529713469076010696020555444859000839872572387367076843697161949837214172032558829855358400794974755618120624012436265200565801655303814176578033352882365415867876730580559570364714922095176489700248620029477777116029326627989865130074560847830643573001959029569737349574168588310501797883128028688965952433092279616567983012524793402082118742774889398293724629135604723067569269733234913754282153424926125563403556728066711320477252679803015486647444446994495573953449388095177422172695537597561554296056512760008804865566488690049372993357912210255907456822046129512817269555873979545454578063800907377412249124119122570656102087594859622657076476267727194287996233155619682502976925927943593320660317071569020505309636687963654941223452996709047035799229457446185283534377400661101773283699548635788868564363848067988430652755520013200945286826807207545935812907928836165535489542886690268273312427437552973295724784564574629993294077071947718614756638912199370287890168196700186167295558305730948792153635402220194799570109538043226620703262050673762600518066870256504628935395790768641376648664481864241555024600333875829034503371357558044849216040074897197616014255237841699884306407211055021909453251230292911052733311551295058391424734788022741598091825318570690068443764362599402441436440013744843758515717222331204400792622716135281465413419968325624435205827218029174286462344351781191305684901871786783997133428450703224268470503846720699327877764181482148674983395719098655747475086382802536309193601062801019739788325563455221083379234570914246521398083397857544338283839196261740182417827226555468043546230719163067552304244648640183701278909402722627659752844324289816812960507954195108773405987569263203677479225770501220574584966416140654418105536181262284994204018022306549385546737193851519621397469368472196948028068533054452987083202161365481765450659068361396752899551428291669866423357094199319624901665865194280500743268769014904837762838015006634421315295185762135897206707638077056828453948347136890800507275207909504170378310836020050493802945024088314248607804095726575163678327561316322554425814054235488885175898708552516421042881822923049591136250361405074402510061339842735138746044186037195723600132331081737245696595504724634711487511204119778919988279838370249510530889310068342653992039415588533341721412127115510313920564464945131376173508591367238093861840923725800382966416362229031543389696612489241414634706603779251120859767168731270074788321336326285859804199347839632288037150517203969570124333089558426539904840985675755517296448194353071140002393546110879752772676193223535580256259590438268639373099067220929401543771529364707101914732607834317215496303840588377569220260409500516336771807336182057193888077405720328347918119334080674592198815970836068849707525666943848653967947222460029144707407572145958345015065928004583133477295735032605716382493442623249578050856056553441827108212266627783955944789988399537196996246818001547042328156912566335136787129516108209452943558308430096733547272878190538150812415051266281226753320405630376371449664214529443632551770681467167015629939664347759756360799448471869114213350762694592681657399307539772692303397950442486033831914658203635782119584060681657652763298629638869451626225035931150261144629699410086056435999233468027808532458215349603724669408995497156374801562078832390429798000785626154464169237938604976719437388864025338585304940995039263768485500085978182513935433002407690962396753132950012366425600868287794499180925445257775714286468012899362433999001212735442403506556886487048798358788119761842514512028189192089883280918023866029515140078689054971256553214355862450464870760433560576804291581715587341865887942937279662327006302237709670357731765579100940449705040048487515883643040816788004119671131598589564953544259440428878427349965504091723341093568914076484567285192903321463894501875547841319683436842246775586979950557907155894682681664939859644119250342146513079847032283825581873444473733293085320576264323777790253374901106132645748555304656355073073035876998606148795342322085485240827458028456048516813653914422109716179853988428010934691362377469506209847340015209630307725966915583243950912422999035062660390914591482549610879952000636495192512987606041637842148090592116923740990110302216963469948099977179578848482555295684857292693011813458359381764514209897709242328946246024809419827264592519953121769742990460701267247660710710802288868059842218150725801560259328451214450993322836826262774519105945320951269401508604407315526889400475913708930663692887104117731544856178318096409412255537639937890049690697329145504638326651820034635970918172862353451774547553657619905086507349493876174855655891251509473923468139444167301840927104267911310809847615193960757496785070080804552647966619507041753841982950186710634633758984548974823305288636105570875681693075899717699952948835038335791706487296352410174828217105015252997842138279580171656351140989115899413480503256701082083869579204698311312401466989778531383544222473695230428563321181380356848515732659653946052815153817050897310566531604311337926927526662185588814167935609939363952238927270563237968397742546020470842592061036985614957696836806206953029180471158966317979448069006605380859257918517472541199333383199588934764609846685359973498173266302577347763266147853906687848250081615306472982600006893607598066173171584957172751099611534319445968998757325908931739210901059624020979965550234411824460409801865457441563689973290396776148346479643968983448501538676787689181404062843348061102268534193757946200147773038983501143837322281025233221283098455877349243510528260878489900415716817188120166913602163506932358061077192240316302338222079947458147291018112965036526355443322565141538215647898942043735821251915004583710828160197334053669271997195631471154979337615603877043578006604476790912017551189277909980635402396419204439059836003159769128531766213814293331889621379200166874020613375411536395363720143734365068914457216957153128290820456686612255232920082153736109149764316822616510015889028886333893281573725146370721552560775662089893018510320292317749826455336360306087897882495516428360483756780129949892232970421687520598333953221045167561798168847961728855406289547942125659607548331396854433122594968820318949916042591623018711117021732243534484160346655639928969956053142285895211149641560446509614438453562035807691686200061828769670775223959194887746633527021582443183645826751595905305011882091196358045307339722000847623721854434986968982964978019920459384205442510249237332939629980723539535076783996432151781002172247802876513848797378078751339928563744598990437270606443964604292606004542423694829783075518017865041892935037805572758347816264534106136159463307538483899531269128588980986384136009644831482589922623692631748272616637091026474616970415095430221981689458265982752773151815633183836014065347977544097772653656635135899094173239746034465090161200216715202253757434101306481536385371853025723187905752009954400194260040846135809837619052975719899933489703018315173176286473343106086510787451048984753233009412258527086690209748607815409096862722591779524346848990492109155002267765516286378953845330393964185134811349001740917236766701428400621533558685138696420770286454166249993350767101818782401804754879048261863348877518439669570982829018969345742247473185259924270198244637522832629922161578460669254584011519274166708848083054614499024420978051783170656224989098411841441702452541900936212620951614980445167248341273719247922458701919208334010746391501425956361650555375429066565119730625344693426687701249270147092279808408165758400778264131320888388616338242356185019884960483438368851193852285223183794332865008523846048839603533195977563574035877752210108932400788514595039998843193156164827698211950982172515233338263462380839546110632157643648726237066368320337507838029312866836060700717992846748290795222568003131183945363800163607229595997160569845061350753610836019636018100504490846847850970548761104725500306607066933816719193091423030621801881759066306064749068141341441341605043920042383917279922652768812283923285969708305978988907331963950652555179009273323146879073913101244894131780466187296956294801411448204296834483646846130790672441548171006384261170497218846584218011471517169278064984512397285690421782493182187114358742820669267712026899606987648238375674672473604454420963516505282373652219522996581403107034744015691416894341593838534605989680153879707292559448494468536288404075559697172357222856735658595004630900210296944325938786302540582365874037873245269292329265528188624827323609155565938055132879359441099187810104517604837269862350188334065804932120069825163723605964921368502045874267643785546495235455001069541357773454537155718033399743184725264781070370811294060321056752516722010952896792845948395240186903652155369357570485870627046997048265231467225955809368384917636114360779811368755201144612327927269770054137998263620666503053823077695636891839929039385532388659448603073748879807291304546316262164861868260641741125103818620287035522269112344201490350475845724236513170488107606571396089308110809126165486635665121434093450927748262859408404162451489763315867233207039386023461836641319766157186581156024812490428585802839164745176820962080491528799830294149067904500331982452582248022297178818437647580505954145249980450753927763357217461813324355167413193187961150977637970507382654334317100665160695788918431473586726281355464509558814877364319089960208715545735256165876029652012834828106925875328695963767449614505875431803159554766998574185313777145709643403789685927169494688194211023931183715099030753727910109776886343689418651920233582684310398851754935772331715702820001591218417982940133617285495718198366337773941082397646433659709484109394305877041495881723574399662191890332085436964949323792230692725933558426708181780346484346371327546796167081204170545784812517251766319601555595951418713973293033831905061469786514125002785136616120125045955735765876524365677329349639754963234151696753630778132535693387034274946335405206494628725382992312239784658151953701444479530875796552543185514537419880514290525283411900893994492341365739628285065878097338424607000518246667488160216714530654367494517415884161133265268557591350862980761326915685946589093266511885505125006838458622125071522678134651517505729787793533875342435709285431510256196567718255259126607886224670228933092169253379125803439503170236569849060181272401935540429418644877332821412822764212398782335386919458605605677089192139755074249288995435460046282497700557058541021957106094019931776283386716472120562754964236965974944254990950446899477415499250180764755446415004305684444910699300309962678046647519895769792889778396614413657065034005470950079484362101586180920152418380015748762365714751639081887845643377724604844287831554548539273641560799189964487529833961972862204696016674434157188593302942127561777914185449929274449693816108180006861542998651767300242662896206983630211024277147519592617187159681486254732624512069441033678529751351926309125992072280869331353516070609979561309339224533394396687160115315918934109479822489725916174109485656009554994772347566317774935337405105010349846592237396016872096743705161609249611384583319336893009047177131078525053492090374027803626591553284002895600401526396822880431908233639705284101614637164546335375897994503980727296995586592271401663034375925147489453758943549985646720600548016964008747238684464008634225749401488146456503969161581462987647157302858733320975906253318973198548516956630636337140679785712856832607405960752718431454284445963119253986403212936874401204065376125432240873915393499866610065961557640031256323997519150779716736584880758851269316704447792272823502025694316515119757871256202179195478221189774587034802150021492574264920590915459727229182489504738477870929390033266756652339497383355525619589052787879388612101605534559239616119704035703972115317674858482247876312395567676465756179267832831866212850436498073319812898614989030090796032237180365817754275264876327747194736139571979923797921310712441021482232160056146345626004650514802026133985699226439942733875363681733154717713673872834703479188328555467069341357851315127058620971622931649838492429577005216818655781851879958901254234814139286526474403212225557642702395982402643085757799636357740349112280751942325248428471165081906669347757073860498446340617227522942228526279582738657963020213689555586777905472271942213465855615447612263769826915516503688197742764967598285207430619881187613828113259628780648003041231907475169613322234950059958151961357162819517053401009681100770052093217193692145162747920993977944068962632118575521496130225299660321991960291033113603529253611198523112288212830596166589021497843374229157054273245083315616335262333034875458044689562439880707162061843880887982210037893159050456109714756560772531025230259872934481671043111274942563888139664282034088986763044485166733544346176553073614747460884829569923661564236040839054708023769179262641296892323846191283195882639942673428561980796486703088661317269022869512841776321150616121684197117901649782360792009917720760835101932707547941706146008176616304348999979776070504157888854694153986266881220115736590412012446004265976523946039530212817935175691962846786852628586111731630150519830113864248971005613726138187762226661278811756433684259115566432273784859676366443838039445243729647918434884228734377753604484516912338525334655752199671731267660137522666446093743643064287493296768629686603719841210121952657786435598760227467713841644550068921869067202155388147383394751401672674022011544660067761304045081299928293940421526821509077452385451079860655982695305335251536536369427650018132653512213373386548181437612901072319126304940792148669658673051890528325198443183561783235475859560768863561066303371541770040151369140019392260933154335974977424697428254389963584627479229750394677156876670088986660817722022623968794860510880782699995052012315622578183223886360190010176080723696122863228964603542428379321789768074110863117700333358157857343522233748447817386777061499588160005630966035052282248664116560252625528259068719896541944400500763247591166832425974105857762350475308483720905650572129965771599904528047106300770296431592522860785613015544539040878469142082148961310607591245879610481583189286245075982052391045626715822468508381243512782328076798951974098682056881651299094510610195669700054190753731917619911376527124068917328924548569525054960947694310642927520787352968262073756247048792987492745217349461015372604393346580810024634175517370690784737573096344415653339279760292625492297034852861765694405855230341458448476068826018304487574530850867066362261894455867257445661429845510020280940337700128841729448947327599149385131910540617183648538050666621603266610901456197903312617937867748163541365187100190249593718666458970469677495808194255652906443005939951193652710387997107664517826272979276223402833643166556038637992033757656889317551678480958212534474018201822902770348920795505511713894144314308473314806754281079934372716694208927397898048490491521929887843933936616270015412327289096387664347956308463453539221189571648611526871902192536751730879373419046132446590545466103910370257341557695852516234667662320035640125140974142476260618405059586127544152724321270923764479155396086410921080175857091724183546769420716929165302786251255492100802770822439918480288853492717827743779167303751650422729151199080838603474535723517380183561077211088209648987666896279551491802456564891189110580805046962299200534966631354218893587144799893787791339426659277014229693070053018198259102115194309817969749063651740082986343220200603399214626542508875866127202269760080734306154711313726163413213809086125211358052369979494609969474459627150974343438404181397194082112366044199559548757878409102995022124775097706556071875950496518996601830708998837364791366109413589746462199184188438998432058222574092516448858618790576856011025781365602045148470880287922407694940683928411290967204594989982773459866849429328543463602016021207453917560985582370974238547515578723310190153844697107589684152251511285381222991505548738277234363214723641106965064141964254515264126337028588551141232870397130184692372162136946832157757863567476685112027541464274350166834750992166803801827815524631972539944863330066528173066220123965858622678764162983456102803779282582396898983404490429547358144371870577739217859182148829581436778728916988043187081698430868188103377056565074129939871354029653084866444289449962619062007248509068189239974500428234397698101290096437326869213637041226481522282030321527672447811820106427050376184159030507041564178513216494342602556082316312970177838672812920299845669199560680259123999056211845095345062047973356782828561470721081312319908114172841548777303166905579993816510586702405925707908715718547254530087226277922660374514491705938856583259454697721389927565820821958940702104898996944400264519125410682894272372447563513026661061517157418378517173226270055498144976077112665247205373216907473386499141035821269243340770935091473621154319309236946028547476712348721772005091961252021350107958980710806485067892601952975525363308398888909957950054378394734997885639866233316737302758228793896114652111906285575823302415781315071848901221904683724795634864278410398067332675555254061985649873648347851909527368928909983367954130124458723953067887456640672140364101226783175013952696672499005683005259742837589988647886050786114114130268491207216747487483308527346088764404791216283917654560605430396050458265013566958829829615912149022495672653195943259055152950805822655590475750623874455597412726697074981274118668146895014068590016738916983976355936409380476382147956026296229147114364132775395258495020218520263916660980377711255106559352286175435375915196830677469718125997536125832055179086347854497241458638209201500593065695643491076858356192891892683534752658558631724729638796424772531542473277989142977569160226259230560317493721550854900648566604967551533993931910148011133416325469997780830092822126449498499091006055362982106634237674874606272889536954745757952094814699641333229610968624343251927853477187086203034895740932842047348253991741786042257614514001948894512936378685132893211251578300269097549109426308844926706127103276195460107456995665112443474263885658054445062347110229707719234845998167306995442430333018243811849474499406738047339916021147498205797805581238144215740875539012606191993795269069326648502752717921044860745881140619157588256691494564213974511604150117811395454714447113562881424837512169708036063718681569225497326538198425379401118332841079802865075678194760543362567912121400322769308029762591815816391261625946575720251056864203791936716183404356142984299393769439141240572579789393455138058737297198634497197264334769195270547309128370875661568389772782090998673167052525470939652494461842617497549124214967355341914220703483691840046583098926457960736521995083724913121085133021651778120052702170479783987293421811575679358341191093043830946760066052713834549338373761796769946076586853813295636861020849849848804210271885453929953426333126773039340463177726280514206253636305699405586515584928028755944693640585440153630955382002032149238844283137663126992538389654354681818522027121009262426405959236334269486083287117211030731855807479175887381065446189104106761934960578128682706904751248331246767772740046047923549174407262049360529255573370501350669405533336245990071040781377090096631626155607138308138827342494256839313334836770912908373147683661089102308506638121428226137032227322795775488022803555763281746510609997355108861306084463923030267531563301654945162627608215856787716532144897956336941018338565750106265026374510588709529510896799487582292987619668621534925434539243221644923641273354471311194141162930815154957717777817371155748376201808682893138054576537620691584461292772195814676632629892571276685366623855958069719433359192049357600304615824726300451747701095709941395552095123076854218794223279705944440132513625181980801512332506671412337879776316610426550520947842445210364592131925523679390142670881053553983764069372528622209052835531350954215519282206478871720005182771776538592235409177184533496364985098236734668191372784266201176045724214349303214451913174035817410463641242173216325284671872707220621246780976638197825170867977901057457346899078530773950688847634527099124054090316747179713287191332537049965299422217209907205995430710499018359998040139254250944592132074705767833538795381146411820012815681646008002852063176697709671270369200169703624233682656579877184938793557164675747742878052282288912046919093806647738194724361392316781742181102450309198592135776851990080490448957150455087077666057149531898220980432957839428928425148580429957424547901527519966145770290978181109190104963121514716069980642446317580328260209840618654514499052277959820123386361514494727257328136703081366228665000396486491526910833379689258623784099731635222309238142410702301632017821549144891100137234590069317699642690786790379270484047277605572893729545129165170223416713552901058939087519007594383390036797466998850681279140824273824460955309676875151091147267332769684623993400075113941222952230412168880287677897543494923401400056100674200888198123163323806581611535819930492208318597976238788580799651702732089112102633421207960453097581497529043982618695930797584882467088198129766510762201296081550849388036655900565481985967284781861033385142185115650650736398275102055190704976484871585634746075405274402362641836317569587303330683666643415145403810441751558992264575902800840951693900857999390712366191603964385357067444316572601189105654851835020322724923327450989159488167332686685976795914655497480366350900989316842965061702191486786299416347226464105056943118690401995834625961773735335715147087810558652383890674708670563395886252163989985754942872467620935967953806969661359346475651731375523249207543570542845338243069121228797153637771140117228395118008253008805746955471452637796236877755990033809293756014421478624086785109581462972205403737523570938832636585342229884731334845969428924654514093384725869752667224728854449078463437350179912047096788659578285212424546679299197656730959148913612893163666119714897007733257103512206322209542217130001366122496731108196017360485368389552047778813844989593536319299146442345218197775116937071315425624466260934730219875232954672164112568623810213223933977922460796755227150849834483847604539001358397096949532999785896775345636873574346153932967013951334614092152647828879854109521662269073917010018374840981288870292442397899936049583395486673303999601233750314581251060248227288918559579597153708638464653369399553499563348366457309940061339593620238587314786975430555816338769654464770880055648981067445024250656425265596982127614915421949011490565295973670089568309823113253873573088182621465541289450291387110784343368812286727996234278953300901871892533490106446872288948313481716029649161523972156251687307954733219021813657849256308045412659569981087004521900127079032831520646160668020846259919663832110369063694984964732146332465122498776375052590440853528005826232905867275796787122369731254602580433915261943134830805045317283048161124146028591567942861974519572518033144811805569695521146207676030444167752859478073325087370649056886475602976039850830672225067670994942642163792154417395848589424392145983957709246071535404209478346871533001861041206237002329478726816072386375241301131171529134498003132498709780932565909827151687432540855513470447177960379672144921247006273913441380470917829249111947326160465049543407331621012173021143336594683623188796762158605933085073210000787454565830226322041930980362747923085480573259281687018916190177659216002373083563920924358241891805495830439909770798102025876848940064579453875700218260124561591806426372982060852943143540100512533088486979502380512513479103122023788275307903503174228957759144181581712157190378643529627810283174935563252577141058782055799508332222190825920659885624854342258066732797100602393353896670959950601545630778048885786164313489398508470170982256299727120289523518111493202063689699914017845733224478776281163370808476096960167241698836293201013745952365217182439062931819507046057277250301691307457756467316409101210713331256489114913581925368320308895782145595620909038554976929964862392303620295251258313551595053941048897303763536299377853708433248033534945091863897119169070736308854884711917707307301454110116194924743762085005437490663859939978021731804372240327168766876800147485388544189186036542552014457725583532840083658464439114335674211200026603422683965964397703667508721315982473893692552667632871489586031058119782829778977911551239574913406930315752380902088366389467516595931461049976055423403125864961751889852327400725330290160241474237445972626347599206463064032549642417282622913819598461364653105527294106474583762644123892375198883867032562232179862941412003145372712984760196844428179329048140658519366503942102220006524551570674274258527723424933875991527995616209740623033399463981079102369523322230531014695378172519357280305040460781646463963966985312591011958827614787538364099401277472864259624984152662807884914387763943510603563411106040925523081029869785299281087822038081739424065474393465023890776173385481723464239252076083729238343872195734887980839782472847048736785885160112185083019752651395977554212683361843469957962478782194335213260108905946796581534979057050527191188908749339924183949717876327977503211671095134735072366951094131212125511482569286321884135221485983957542264246970722403015048699636500386666095538544148321278734996326994009715888403538949848104197506404181794588504866612821005456414296596626188349010926230395912265993977605775726925799368505975113756883666564730042608119087768119391963587619295542767180487595441891289073506242514120129234017622488510851414526038358957653289075110897983564699073418838398631149916337918128725847536082890883312650366185179917841934244533634796311835423487372884921290984968442676436721155937650666770135192480745019151947407409308624554407413806202503336917191584413702277734258247441500681284698791870873649122428200714713890452479375945897051270425200449840939421389446084635608501706763823193339082182880877383916805326936293529221296396154709099815651825004442865902423312376994110482248904118675987870166289857701724761957590525597214954755734131697540404415150969838056749903818535936193628961269612544014089762222048892411735921012499707166718652018972955753264782381038012415938748118629548988074555237781549625993401926693904663252545387491631668138084641917326513939943452689824427701481333345795765344231601737867478883521212144669174127741073892738942017353414324471058462609581596148927372186465652266487964153968675229523669015329594981275898307171367261134192969197474379844943386101542094356610890871078957720075002326922907352588431769483061992697714511639818940598271803735033870130326355083464675224169549334446510856037015134110364481391480994221352501412047387227117364954562281453820689709759164809516881179341291474539678858237206081479240248400694736762434584717223346490244871283595642815544580157084063420050541491976380107059474230338490624168948504975523289616680723872045176422662593748998270335861617286990874669605368047695251166402593562785048020090676675675944801010996548637868045180028215100428409890905158877732311663389578382676629291169462021689967830744456615986695220845267120221110272764902135111011043550057545513206507572235834340174702812120381073716356636371850981097302496428894476573987857785719335260713157790766563608906910580204640136103211325970245534499970313309139640916455190788715365669449332485176845069985835049989272100579327967338421063555890986439463555682329611391284937247602462212806873982773461549620984183644987081308499883274462163545942011601145474941004844133060867225283026495374017908521477727540308857550929936205375747678579142869684022317416951979866777093942097792188548952673555235599707612817246947551414896420976207836001774236355237830618029966108007572527421023078661612127304064884988522545953091049931439400423660245533451759388993847626566823008516496704723582114068949621037042607049504989992598519653325248917041123254791800500664922322196405718669820670957157276245109774311998068424617955531734311835361131605527447839776028205242038298117825291735621875110331059957890980835801080746148200410443923963825691758428980626712870761121156960040175861633468616146156095174985541245043098911394281525200500721123858182186885932094671467840983806083848993273670139171475540059380449419237761111740583290130567298001707305576937835413939784728147423983952698667751659592822074381695050508435942517372488974065074732777555531689289843934578438578813550681455673661578741955565390330951682784717912318501569155846203023845378402552329258902229353280344872958078416925915317493380196770949881781097020517819005390472788197538487040926425428599735607778774195417100773251945316749422589341003352449730429296733033775165534450393858173415270913956789019537837814665678555032691256628353064166551862652390435406717971270389345745978018107290230459661311063371065530348538702806474265390178855997090541048546534862090581963567969195347233599734556744688826746914557180192003095756091011943628917983590124578297497350683612940876025193166922301799916118218039929636666456416310937504571261086355880534470520746343460550398711045291100416076103543654289666517619793199354453538080366895788969128379965752614752222519988592718458904508992345197182925468184839284696246459055423011189146286292277729946908766834114291481035443745702468252912393737788388770439784624823912966756137481505040742456259268094384181022056822476838659477926280163399178944235066936507607567917275669066930712836513986265843526962609768683258344480800200640572774228792235554693553650363698174744745680295139399839940313282275429659805198770235459895760953137856817826332954864147099541088709141891040297860178116099389387097266900985170350355890740551110481362343004521760522747654517127166883825013216449589632948138778670256987807994215916124465520866988619701670865870173859481671330853257586151020374396516488171932679404408306564438080474705964989603677441145574832602841035993780608249831417986358720181104799050973717624222224751127142127031414827637205317927852436828314452784314374166676580580900704882611063085823450234644702256352352878510226955291682038776439481932523385865866465822051755521152377981456744813882922523138098799927043757847102938592352025375756146383441281015303889302150770567710655382715606761796960288531863145689328838544997473219123543362469709496310591840635840997531542946765659477532113879875179888529138893736003071878294894051564317307086716687277533096028783845104005361087487205958774042961839047680800715379207603138613480542337463806735206605796616169316274268045192708893301653662779317843808674397491512663699856259057509267028578722643934597931960489447046342235324941725839862166188661142611855124007189070962771772746043999143724132438150722868759169963721538338188009498749704553614162478416756685451920835837846929501365376934749561970613389817847592644288895641155406215993671749357446748288884198450685500623610117884889976642677350595078888233603922092756512409812902293526031302339504610404415952518412541069201836590717828684943643642623065267632535783775302957546573645238542559737639027765434314271967162862893124752325034343949917492866916454628470042748263417319177782762069095934275378033689868074769796645631592348767779895635878991157023833706158651211535932825217425548109943630114793099523051067406811112255353379286876112308160206274607990068245315708417904121183110728954496138450518151850717190883675866271634452675332076769320677008167899590890800228669839787419230342841878018045437145482157180284004042483919000517874639335008291920822945364658412346628381723130596391580008290324341828373498524523527933767554849108797165677686231377042904720499963319172963176106366039063514435687788248872262967566495116346555947490050075605773157902034474473924180521180618447525294716587524224018297027832142531746152710487996350100187497674088384047680948987194913954136144438279645212105714130432907946717432303156230116125249683477836952248248200949052231581390191346653856953707508684292703573890977164797708005165871423375525240786029440401160871636314476603518724122970069546432626766931383735317179404059442001659073123685928922913469061811585240802131472414367764694864767751760245359439108339895195146954557638877049279794217838446968526604013290987930769088529456130156472436026442204272378607255859213524874628763696538264703363929199225468862843675120995239187027458396591847108827845117930919385353304006367056678089857031111918207286889573746254480975937094092317516739891489555830162917945270523058716218534658542428774933664471751232315791690106119125416498231055796281513321203378726424623075430839627092886141880457537044265884456881848431795446816523822733674950061498627196745004394576970062541616874388705895784978716001165793412550689491328724250416809858001484045859606923653062060603969786301424961549529755556200049248005557870415865473274838051945562466184660699602795349259046367170641254183010279861270115785328995930261719830660961183558434716198060405710612055142447583675461007989829014727024591612066574269772768149760148857514164661165998432673475714900859687059936577960293555959269840193967026637430369294556175810861382929677043671176985295981349947198178257379286193302161933537483560786906687160749266469484023628572141502612429944602874454852961855425443051023008044120961276045104110285890479350007242339713082938954269115341046571054791245921469025995626983095439761635298351434585250491219365266450204521600686722668846840026581968113375696895537741140165231748178880649704547308619508913799969688118218575182962807555736126836687851743552710769646998025796022641900041077906155107544550466768031308826049503625447045202323634878815269158571265759701209148872699478318794431806039770540136226327324184173956787814794722250702384512351337167884656118530293378093988801258388870388131797326912520873453277431774610562929676433907044824651875201182904621553398340433748101061900124015658693815694227352413400516919990284415443545759786231421720449869582251194300968321785674361380233400647403868082831101112518482458914974867259638409701939380659748203532397306176821678348079638312746745717317256221434118843242412329340360632966421442412427283606027908697496959048240797250171859297395609540327001944643992180086893311771316417981315596591865445566406224065609742817016583810166889909987032209257701383596914873086979577676146861772085671213153514900221761286576196671847084511509349401479718493106815906439592695984216904799141743211162858288040057249593052315714459459732921657977937467526624208249357127028240546125790913989485048245137981046305350788467435255448530032673387703811793103445272159468377627277549963952585784504132573605551610254681269499835772058548314568248531716447061934252704279711192405820635499387543472778882878521014371868992051148381203997430735432623845078172951918790031041688107973607821121104738208367413949781793003024738465890264140999542094760582051618752799834535599437606147150682530065912659023335692076062920046565012796078494166948730407903735747741109221138281630245773454948735034690540026118139606320623243173010019683388398309293210584286834249465901687618345771991429779537855457909782979410965595735267779810502823220439538599726655346173808515692219983045881195422212958681236011110840912684263818894198073733022995448826096728394134970338970625066172346425264378118229665094813693220511413504075180511854990856196967915506812865674092385753334297152447185664137949079275027533882760278115983784965831433202329595680613834292039120631602941311184848408829197879705197178959453758679599511650820267789515609196548527723744525494750175774279305585290872226823472156469362155278588718605997233211670418215769700430732506087366765629868137959342029435609588993957624893336192182282584222485988815976678024085850793484673191133234865136135938388645669543167678587222465330930374486649935801433277638962249394989600180892091443130560139434822512022491708317563548008360194504439917847906760979472790416300955540121964101656358231926404711733866698174670911503805926116281949488413068014506033533594677637507415923364351902243935138749470469431093485077160102551444131256407496024762954510561963528756430524390932079804518943180794027614775856292624812242075576803073109665311840179430735784267274157485438133747327781615695249183067690165658506529117597735919979824542353846486084477133890536060825955356761443019792152264413915839578674997215439838543628450109943673938333723952762451697450234741288377828695129754325504040867023955811333620932580180300754046703345034411846155247191729804898225836572554415189392736341471188970596206531492852277841858243048560635709362049557343650737596201890338018815166920645830484352146081476118260396666815931637037637817507588031506766883770466551044561469345454007260312051209821648442598406582471796963068012803738144854772037161527682514621512051362165793465235216416299731711839247714309854263512148372203455793852266492170730259843550100797213013069254925326179058942831504899475060900486053702000422163152226742877512944387965798576410518933478549302344444660816085414024698466224345804491063280344770720779243001121762373741050054092695805971958077749433608563597079702325535924767663828391734746681813684315176209830280935507169848672901756880364141944513826552239639470244290975714493949608138182247984572532086976022814160887535330078660719490286938852982773016437956813936879103321695403167482948783524255018883364566204776090516049750829192486466446456141688456756388455459984159443918595914157120615415703345729482301573944786699262257976868965288981557669150332453144049698297779236971310164450353875711356571122462701347412480974407252804232871544974047804125727473038743676029932071597138954821576715270386251172554225502044868968768336100518662800151485332140245841295703392388722592931515218965988954286753529685487489273850748518275214391858341614252718312292843093652659196778468535142170197423991691891908175021962644488873514819629432094865985779972702195409651412902875465503648030535075952271734319761299483054496732582976113031571194733516852953338241153880936249848849826446823026522386448797765430132475892102857124006282385205926902769978877528095391725352658247665230495836186873717536523909656722230143195998683384186922361563298362266014651016630472544692827027460463762157943687111040230956028990426325359388019789636010464776170126225143002135361502986867995527264974313091148520749481029962684491717379261876583000757741019505637193763222799075399756544596305166529320278368116191906554696097007492251215704863592723228371271337656351917163948253405023243901143769698059245508977624534512941133546327927543009271559491645910578903379384061533793500056794018612739577286386535701034461716522108214906644293145963233972321035297553841137875631808935263314187365423341277128717286908255009492871527348971570309849149083086920650879053089467001967038778276618400453558183113309349554693717541200608725729325632260539789428265494714914640786359832905833749875271637017802649398163544007726033465691476934742088979394719963675429563776215386020565798818633101906854649691510766560558145269471337758794812198391389881881266048159307731871716410150407316985721839040871934215986508618629172732347767787287619861222880229934878134159246320891038307706018977386832061690586291386968296315817978484750027549287621340637570976591018609310775503233955175974514573295556451677176635376747401397734312112555342589091339665559477609699585786906200196023085332185447916416733710633087543203248781244475371327078035989415110474789987120193215147643364879820985578025126395606009700830411218636486678419691557605695355365375193790452895277100194449777871734264954124404505576124611988782238658589344805765062433351967718524807370913246627228926616284877003259763183023082892774109656401477881983680416865523866030695284541910845214840403589675076175720814108805299940632769201173416029684532402071909009766300142623089742885801910361457473518071481036882520495666114151010749225995914303918779386043627278524222103996461996130168803506660926587720843269939879882728440954867630482680591971578969866557986382551988159849145735025831513620967415949942456214180592194963950785007189277375030520420519976573283907554444403881113713191764282331460341185915698949668181823716036149016261438796539006440760627471974685528955991369400777576443459004699015159405567773966175892518182609672544748369902945240630887725028569985674997766820475108588860712263947794353377362941982246814109185860472494611464103263068763430761488255982236385947401449117469099379883588942814500026620427652324208249571157801357415169624384876056331689957519385522283563391894795108194949967199191698430891019145034151222389326314813696192133668405655340780827569465989902859709955750492051201798455878679222307337437067259677453848926298483227969125026196604847897971198130305808318431563785153422380759670892378885565943273382564455959835748742673797484051279713171850869262629244138405759858830802235190761490472733943772180457441188462233629108752249732287209979332394272842879737691450626308211902379752236692875559805191036312198423183500871699239650669635037946206685708221354165850815914505366338952752923935880947706609101411782650942164702993373482141174012978198394664608612707307049216556541326094530541872952929506770170317992388522996168686095956627101549289252023648282829918920963482265500842992235243754531481855318127001968500607289462523227378092326169661477433314277802438706070153053594369207142700149973097925414328149110339391587680689666634149402058252564352397201055319092181914889347794428914466642605893752407782982397863230062289067657899315948591758341230361658192572403875164426722320787418002130697874108578064044383303820207702007132031672907094952996544612979357878925615176905465491241988351762391528831557446639925535125813447342111610543697729225822587385185691754411779786041579836118563316803246592659112242004696620734257408989461952101573458888841734684294060890892180915414484381020880516054687208767105574462712756037043482214982912887951083949406964332868311874856553595892831447350889342743070917059552743793632066644555833364429382569519780901861050702410063222766063382480312293104616449815337448242948740010738613838656946395741424472303068068199665693511846550753812848803955715437395468241007339676240512789979359092650379497646932443259724389448549793516158372553738589136061183685032377574660279141759008510888871564973617007276872394626420184561960179195816484092449716210867789429248220397386729720581836497805475177144240749775142987884886437950136359495198330194260432834070902475057166253182168150048273816821918868449929243155771271961575521588180290372916624081230069616793334857965388677078705642824219629985123010538400130935498291700621254065018683750702359775745182945997302532089258789321594800486205241330744345144215118809086573863921829831289796199633547283536699421728620801104861356269816789570183149252146928157527779433541410283954071148336894114814120021729171909591817313566179442744194014853010063967339486542189440454978580332267213003479215276797449087780425133640609020501920842172029396588553105886152219247054508506700207762354376824301777466894548798578718386863377127892329995044577432304678498774841069461304605879651887888505701550170398706269008206781145409139870229616870451560186244896970526074964709931919749633620562392942295418184263607659482396105152465427171957955247694048357026364438922974208332879894182798895052766255319068205391376318633830869375049502091202433728104091959623074009940319127505578791971436239236519638951207550751944786230545149230347244714815390339760863474538763092060599246807482097541981186871289748142279996784609510822449311003124470152766381493882074201055201239180289479070286643982513374968289993799068817892770187608572573235682858709812663174212985711239359298900408595504316533785537690442743860327749425186227745024283778456829846340988577435212009994910356716987564733178558738148847182385101882285181617301194105865389640031365127309024192599724390275211209100543657128616624465099879914767533213943420294740375764137881702694394855673840235657743118935813174744909724627450609553416411193704051860314346578203773165821246559262060845979535145815146312748588523214309272530152584869907361594980641121329725915132508800886336888099251207476345009795275513566515063574962159917438951673034840258042667425101981652157393875713023467972387859530258985722489223867358192635759507495980593026292913146558670840701571943186262427530620184429029184523756565374865673233840280417999937082848547370186755852499604615179281310465884128412726594361080269950942272964793303077386927914153386786393300563735118140857774460963131345437097278171289034663679180049938125243781499822363274972579464953640195740825781120222315869368520277644997579725851424599559109535202333181375346168991247797524635412233040070133163382283555166287155446573191727638270451287886847383104818878945868382371009285473570064248140271485945864714362446500681065294433820392417655603583173196596450037898224008211914894422281521966209156123677648126670317867588177872321818666999097656627248726342285435553397047573377540156075924098126980401220684426999582934752407790095624085365088986958359191061723568366036050368446121370345601316904562719987455412559024486907093765453057794048117378385308835588353733361214719645452437667984162603143882184186005865602008313861311452499089074884260430237106640056664802533734536662858477767642307069801168439666249663333861357407858392351239014792986792644354458525622044701701361543544858904367419887509067946223658702727094642853567820177799689139264296236106155844065027769825815966912241038168586007646108340776315743608509444847208058324996043753561005246695087529084326329776890406028129303208635207349062383847117348131585543794323805967248281887717939261218863342453155910120909491069131476879848227840945795414800826802590402466232429853175809374379793028925817016187977172847677218458950908816474083115130127174100086638972680708772864328402611133905610847570465205409675837404095844129534785046109394705037141521857489310761636973558479537263723134416091371792498964035282189932323388207336076276720907226454820025997993527135835768049005859906040254198079103908261983164554003022580098350924314286606022205030741290904640823847661889878146084836468195245320756567640842557473420317462983818435155936681294588905452243982904873597300540328129702767617647484172900332483607824844451062346380653276792830049765878667696287392643095076243448192941662181251249069708488295909744953288364381496688556385359850374730113663680570149164359119611164841573331030641462558825695589931951498521482387193027352518966219421246605353852616140939877134688813601869795776067599900120384438538747225685768832967396869874817768016072269912661409090627672977288788052173996555218149488913092746146776605731979458614869615709723764014147597351320081632552135423434699889326022321310516201360910660432608389437142605812291998487051037742059580020702528388425533098005070450059368194133050575112001803508013446207912513893978668134771890772858294644184788932043945048337688711821143964661327094851509747365575652349432365938418081390327235312992928294190328408629013841888178602074830208685851851733142114288047738308220167999535508563844062225661166544693986187357394614364232159919662603750864855164218255317783053340952979679934689495738556822581929815235240178843428170321879707597118217723384672888716121520705059835547856034023421542650828056273413686875101549765116309913597670206185154288477354454359010611249613369146277441462994665219038999198916760505045927083541049502549330637553688697473789438074542966524082042021341331006506486690768433844319446228923701359894524425151992761558565461509475257040145979121816326569087865106179487491487670070717700686628863408212036155185126819428008133843123293546877497352712658241469482001294942603777802490580462452491921053351970203576814504541654209462593360633427997377186497094466556486416153657784463409095223985765155983630800327106832646082521836145152705626375815057216003182542441998677071803051756244938002682381984369789115235938347737228516506286817689617454076422993810583030021138134144590547219743618372900100096660795662821245615197095965241923565004867643397661338121812547333944080762502228891496014700081992548944596327616288270417220078669095556179643526151188984913257380181454557186167577956614662598672412604896240200275942697815581491152320640806941520829066810850268859264799074072031832369947290954697614041648435220904800786940629279750747609078979609664502864057622010608686296580024592392572388361452697450573841842735004746153009306947351715498034648690586166581814373425374297490176175859938518790580800521242734910037131238827549654153284300993557575556679297363169217318396974058601919019321602265294899233885972932325898528763732174727147949138297711194338399303248748374343637173470479326825460266265676445136716939657116757166139440398704910557959095129663649819246371299541095958933487184867103827405815267746668265508354015822044675231736777339406056170684051068943047209051790102610427162479756991892469906078174272390717599363099337635513718113427032123521223837890119249875228478686598987659707533571880873955247556377800802683813929692358895669263136507168153339401720113899737863576690221236915403781916756789457305960188601333219050949729324525200098131063791890460929164603899699298294259435281753688010531250740163637457076778216363269673665801763588600408448118520383044903242561447553113008213234732723588230440814050290140494327872345323655202957655575148359178519011125291206573177902181682991846862704067602346117820113863652420238079817149376068030829656694968929687249522566904028905889833559788920570824395314704312068212937699430571019080845300893172046798586586247503466704396737342298865439272201040457776339034300747594430565703571877670830488412165768485239391490333116419305415649543832150857851520668495015552339782514535538321083518417389396848360990834307736230847260669958329169983209776155801951726508801149388348711523821689768473327746994177448554193762698824634216938918750099739666303024117846131913154983714508897740022382887041077914130126765148402061977895426501725933310457446139948738525828141541646139901406878208532356967445459238339984764595922229327292936529932255987903323459704143754858259401988043139657741226752706164844009216937896093815332737599893763977173921476736416882055622066651932437188722122897986533662109188069667948976355042525373747777626196642908065402245607213947483425152282356499062792756817291444055215663331117909998166601456399459478331427273238140483336682970098399828151180522640803243223640381934400571767312314930197966302353859308481359075697072856716993077207755747687719450037441502623005861774217084322775201652884635046833729954286092239639878888692149298398805792288760461817905503541789448342673809952431998517168382371635109917067513686059479652933242315206909099225710580617678177075855105849688185298967689709338858874501777318663873239340656476352650368066925254196814721159637536811815016236629373509155797833620175422879884905610895567452391205607533072271904575593133260961728181548306074015092131213180541874043694665050751590705240032688527135968885594290358633751432148515760359774167415182770002322833447569971694447623244596544897207908765294752764676682923735590979536040353927377854545761543287258537382401976153392644105875188368908919594951481860254809062134058607526793468953639304351984990510947350278200478947426975817509429014811775889746396453198858522489481769874084553697247508598315421655997255039306731869164259837224237957981769917922328756568031395910147398115230697390207492692123024758681559541162565894136538932793575541268072678472758764946125860276490538075847345387572346925683258758169236390694279667767084175988082880403497925057287929858470267214329197423394159720214145679429266043051826066387788853412936673772695796692462096742486954640263950330963954032806855450420610887158524013404121676524592102109680024376797741883258435007565732191643531471311946466869468584947311718065607334892435835670649777989708546458089788319388564699323270756320395182513327974184096401705242437933685222685944245544536596021451684711799226546933328416881820214112256594339399341000979298163796782885799914694102154539671750566394298114929813904626192712533025246444445028661162515705194129272446759533123712257836659508453276899744509688640911859822471434187351243850384120966628793750590247007297986716554138307930157503875870795113661443845184302025919726999381042501573571736786549256958690590431039403092000224470621710949017377344612195333480911153166993293927618278202364962657444533374022382199796085300491861256916180150870441490234498251151393401951469033335560228515958498670507103513587785029750055545046648656778352491630225326223711066898254188954888249529816580270520502467492021615336005186993735944791760914955377539226108655814838672699524710641009780048246111474494490891709505360458123953153980705104054646942201655356190432075332690723125210114333246645834771895049088572364459334876855042242636144195344991753586394671322242903102000089518714700739154712150700949412318550010938081595049883032548830559793359201610744280681396331531499240547898181912466559411219828174920683660103728673079568150979200355472701596745097842702465549543417828123837500074909969383418830614343187445421991366631710082955287739018137987855960096323156640499880264211023804642673724496411398101970497718343289983202137763098286354584113222913847759380200552163188801625730189668259725469160268322823879352162017222946553891702252850902394566616254540578311912299237774963345093068480051522606104247889307054229718902664678089217524763516794850889209102194177468185179894696462745767690218081234217765649355280420302678417885152502772059897074090597842544987325629481180025866242725213304153048350582460252319243683791695603792788390813301304253447489607818139240517328204829355783300586080393767222291430448414253298388799703968425010399186142603039691266369182665853483344506489008054275754862647928435266806660647924194007156071939124068405062401071295740391184647725721090908541985584578526700472622122413587820153085280202005712038651050012294240985384024245449860036758648975847233536987441078611083883174291664927580400095011107133015587447329377836271249382651928775018185230111478292286089599081177997437711887431249682366738183884057473218040923086590660789264599402242281973203178085909022028680906500313003879251906289176464414763408608830820497854256654954467378833769008066245267999716312486573874411649202717111953578853080729390861961157593189842817453561443761804661945302150109619254934295092365492944484778319479425076411749632592149772946775753173415999473480138115782969295797210893814546102226156758316912470616105836768430619379215193303038797576949696981681659236912729725772608204922793827990924711224682891589977062568106104155544012219050006872828419451414269259832246768830618509943085457138951439302272202611281731474832447191682235709681070091130945900063312653861332700161557128753181333501799778360273318337519137401314814308239144314823023954920901931382219332926363823321208118855420397763809564086399771203038406794053766455361801712739748805456978406859897825166428096695684399090090828909164568585882996474897947991590741477569917089607561316933112617061254079954245923647530024004782667662313829657228561392132361248937551829171320894603943735696868709942987333965203660633973116319735457610625851064658240893779574291023803679491407894863694608501102511047693431906949781307433073379574588476754982896304199411317800867210411331555327430268044037125173592190524518478020723168054053390932512045753097406275256086627343552221522710520889636612328837063649260844908645857411914663348131969445134455422093856081297296119048190480939739863897007343149548741216655319525898530827120402991002471695340009683344190811665689143153345097159773613639255536113636286210845971647225797638077020722893260214634135630561955919822752259644843566656706226087827253576835173905012578728390066596904835070321045216187823281659942249437008791125999555499943763571130647770925077576608757053354559741550794990887697066150717532939324298699332045030414010982139092943671037634155782161412359598244258357453618191604840097563808645800649805983871786034785899360701734007220906566866839780199606409474911129447937172368598666592088342819677402429612103840891289270728337052479363112674137665874825800492967857483767231572939501081576307218126762238826478856077002338731819274777756501829993983722084132794337954937970882822894730348625611104463787289201050230578207275486136446592107259304932003521318404941471885320514060712896920291788796681364334676351290297875144086079281774370658146014713432111585172151692247456672977982055602133105999394097737780797327158066866808282252248926528322625650729898483369861502210042906912755815674128052602034612779555067467781998557469519738004359352543244771805302684638400340369456732565339807375979867570991850279924140479301779629068686459760913763911592752409707026732344962560754267986627924374006164461926044433116981157031274425218592937900744048394410149365445957857860301357279075893866440697591369675209036999551831879476446533840682499070964743528426650976246974131935381208322472512010465522793409398668902059132199098623144631655690679508990704881132494538211004142504356872199773822453034758337877559820699555817005530134685805418612536186054455568432622402900035506453771431240236353238726574357294017743987572488888035016003323757913091015714620614354120068603868283823519552390124708792844189806018558570293817560589581021985468319172297558405830331385801905453969668647755551551288359040717930151514726395360058218727734440278732739945460161809617852646419298324707154792364811178644555281397794564820448339005646335382500510340452612297275598554791612906019692176613365274024303149631221647971382089662677164189787107745826822903057590973176783146654612082152225269835444826126483523413250666942151743296863958571631464310808624529324186026716197379090493363110988416403397694893139274840331472647983397653902244662070404899001216297992478377163884365655863209938820844079591173906795806749937953561739626630355145682787100672579385947453638253083550570409530530791535201874949465949019285797977337065744898606115818260959274019745498028633840223242686513947421107927712636134450062248193676317406429605918834427646254861110831814896632798866533657941224015650042817016873534633465860595432042012988126352796182135856253026431502950092770343566993594846461086717382552067078778047600738981238205839948947201712564985004964702709527774861944922501342092936684292342317514841373005263772305525310112329316110461267226037949937093432677045451043980897789964384397099620530721566457318440871773451577409809690890748633612700799517373674255435455828460033941778254459346899417375895750874836644143880761733279407428364040531715248451227314769721401914004930452009381642162931018761176483930428124183114625658886221416807618793158438258415145160375064835504727453956595008665600911769465328762525262364173896009363317342513743302290407371806654281860081671138789567308478726153771798879767652233468494364273349428995150541613886553782694918402350988497824209342712011459822622486905648846374649091820175174289547259134741240784766023779958811141836143395209437303939407720831548447533257020086399814042319673818673592845221809625994035755984470544631882681641477472187461515055033924005896434721015366862334943876016179593593770641660719475348595520701073830414226764307833365682938258201592005987088876970610875485465188526638422716761659606598519252031747148983589598041872261917717363313292466151209395627710246618062344525929847556219358414844907240562362253704889705226825513750831220930413312952313558089270686812866064429707134135445599146715429983640351478043873081631541780204627759363007136446386919479211200891807410551686953820174518890607458726214522862154658159816989671525739651396038668059175032635803859033479020197488114934238380942404843929193310427727161232577630929541294274717122743132945515380944834392864765320341977338640700742005510106738937360540846655503016467350409726705345182057570555512661887460384810072239725832277425607844043695292732706113253686806606215990736752612461342275131748817717472510601831125459093662624296517006434598424164652352004038998389005420405339646125517583324208409710501540221732770253567241105469288712328210807014422389584615818354500085567718877362234857595342100187938992536921323400260581142166885435767733140181236980646497409673721477698640931543364187355244404691233401422845030686274669756797291730960381237828091876974600360049110180856119417341293793581255473846124260889085512690345427105790894408647846335344977886317852495999710283582570183229726110517836685346434562644633562883226024364662325484817658444947680055501192099531841498763426214103505594847366998831829104178066906724930474022707314968927138909626453523784665133742085128638119125146013134858329500546966430201327605177905725407768860667760185248373983114711498719082678142103929075756480982682237390647899769959206401206641951330870329672576224833750257673253666757012151746311747209619000480194010020981998078962368773650931339862022939400489541862510056221800355057090074311621866046478679369600873969694875936715143996521771132027535592842169924160316117299785308657992729702259863235713421895045484872897841960932988608064928744108957343004229579302475898977534433708796861155224871990970549846701120335654124789436278361208127144640181505500211795077869731843924818582391804721799416906934421610264539425811174382233725004638290672456731981129437464321425373726556941234756573497314388626704835340562168760036633599495589209623639634613825098578783020484509645954955523266050816154206142488143316794918848305195722787260814033128790665803517830865180526720473334546165386998768918504183449075615235916425855805912193108179165166694130246204021403671048531179225390804943965481272396255712506677470944371265144630353759397037366038209858570736677814390196849534747232774615856796242277365529678344820516367454062533612699609253704646179938570555447779826759410120917321924237574989909367236801769399381508944917612984702972694276301668349616628633452497114050882466435118335579440899896617690175542740333853773468620022373357364928810679954043206664404296325835348304416371023869627454853540647209880556537818560787065441436431036516183885418378062513021329732758675431073493559633737736232173369551782434288077120376277654604970600684287634594257262369923002446574403004025662451593621166739936198541313039273747241746946836546605478001625742878187570929393544533818499840117732907470042052080586210416004755111983138658417796865529702163504929258123933958858176151901341440642556629552624505993888965126534091227106461466730875441174389822734603472058806021429464243232211317408082862926123815441404141078908806981047532827352052084850349356482253489232370744101632631115817108090450520904776038556508770375586818273042591629793507637005205298415540654686339279814117563213409282663010235941634705579799860145395331592140129115650619448768155022291015847180302645699957863570111090896276088687942803742759325514855364243077302236097733584450153174558129603776316332393859271816842397249253030402168397408572211026645708415600503427315748627878150390216921519053967244582641291057793161843971574863840771705368374632587718897251325825290185156903762938210831702650313335369424260977549385064084451117759341261742366176995641837308500091843258801618476515531141169495804880520183272192364195169662725674364792864201640750198674006868863562618822195180935121206222009893177912473180455410312066254706233109670530347676288185289873343893229972794252608467870420126093104764696643009476272436152886111260684296729572900876334200614928803200995783914277197123633847275134388994363730361424554210864475132994793429574306236752915770653901031746445348175731599077275636281905490065929837119478916196906131752767429406992884864754410279859496109380311954763032982030133170462101371392316481196228758064378473798415750315155173073349778858896592178061788623737486093276798181392809567848391715035542341479386647484003211999343232673658277097881643013353285421699067254422142156952171778322463077633349478673441541956819841491298234268638465640411569042028641533978662500981307212246100072038450430575502553109853387981964417310427792377927300199900133993009290985825073185483299186581003829253350463395765186469899065531184521924873798720205090146786842924066324535470946400345002883467689259576388156028598278990153141083458810106423740061373244182314406952470577594150304055057963852392111985762440691140997066509227965936123131010622918519075643902641144225342129134617464338237692344133798186361310972135608867251076837747372904815843508071722632961860966997272006268013951060644735692888429295233671586220323914303180350679720138770958460763477026567117413546975130734878821186903008042454450563206173019101046210930255392110074437035663823782332810920604061846449412095340476134110613467210431381681382675768942526406322006244274441049416734456302239001673039354153951062961508403338497684726307162749811386481809112750122578677630560234598957953643175092721155688859558646736350379852001861372189901780765798427207729129732652422940138505191025902879712585662059698925914577055287116173083224036629892564978223137934450941792439435933200368813368770556757485260765154902079354757054986603409838798075982364102699613189051740998576033249272598002536967916485173613173569256233292065151535357241749053428752899099086124362840950122558934359505318446638455961080625650636752824642453424788543105947426522437329015402090382453318752598580737665971319809063299928245537574941521640947341111687276435476487842802722802547060068241999266754607865093378269847621800243307734062029692474278772417553033712211745332313510680805155640559374765994643786362032349593697436491016704223767641508948342714672311061667036600720371160797648510062176577028237399157558851298486226020675127962678586292681095933260177864323281880744367386987845793497240343275741973665667121881041534847214992316661688688322763742225377133502596510258318626604859403322466903998588726243108153686506850667972505798657319147619045741650183239924908095154794427660943143481506020909777035005663094460726862976148544770948396709404233855117351328866007444410916158645546589758801168765460582308791525805496995952367290070332666806481665805503855358151160114692306805037279415859213219107913994420523619843995281516158213634766210898505183227261154418489796026911851773383361148736859059817246011353809139116704980605615541393949984195224205537411792761676953829559104942713624048705484244026833763384329786365041584577963398972493278132711629820808667425224411923929927717037565212794488195437702068470242997357980927329957524413097310001841993951495218427307589413044461580182264540676343733655516594995972865363759223102709503063606003235567369591225608900852863300753128802798060347229105572496688837816171979472713494079614493660840704465261532234049256082806439964797803739609039799042526192559122734492851342608512402690550300356099406647579368021185453505703670944334909468033571125142038503535855726295132016289643298783971392645224625668567722635991128231809510385188118367447044349535855231678390718086589226743135734871881440933216297333671360794289290952106399725029044001924667627114763360857937202914299732887196789548920020754120095395498747246714629750610046380658354343738258062424963930683791516746575048490435357815852411621382807266433435192906842513194680291931095733241711305921951987807264828365752335574727617325387770685232340294515407745020325495748062556341075651497565841540055743376264473396882591992000995712465091395374295079056788786583731249509039617619961832587913912868609980374717611346924429702671380682321743203152226670827633658069977979949743744886731116940044870100263986788291241279274764108855527994094728387100290096329596697900966300148407616427404931042388908784659535736278713357535675970336386711673502076846416062315213983145418730510868563267797469135932024105539932715760367996110146793762968193907276301087372689367379868457729516047525286494865032396380170163049929719407532150109136906566152967376525223737014156967643761613463489036303873636713507841731362536972391581102689645573865572849264899388328350545427989503737465439083355171818145630521567189940177193710587795193547836876325592211742288936494094188533176583392267326253517844145726509715902796371089948266866961073347461497180981472165065133203708187381522519247965306943122956149621244565522980029851302738949850863510138685636354538184760749372454935190772823760267904608219738448396590562296590741800033811489807296731982335649106798521209101159374896508381665813730545088806232471390474371562601083832304298829998053479669348846956726061608642757045497606732968166569207193540422953583966115989145562013400057997509088251369504003373429214090082226106281861286630243342086438023646634210326288358409267670635966864902247563018014248194456421902319332628192364929159640766720084169936246166863919499422847155876267874055366008837127430191588519361093915047594965606823296212109622405805373952076958681390511221089630756386158606039236213432519088083386782465733399332495763032689935134009321419690123113778608543495634774909497363972134869693811109405781805185841645031227252512593753800541211105111781301469942761756717575867240877564525867488650710228515619798380882412479845580960787282645657590827018909684012935974313979845134397190049994203075472904013425045316809726392449027578884471473471884464468274113780282880018905138734902066986841499499429452795822053242102966005287958150031370204863114633246444335681743952598561059852354226314761110263387602469451062049165583916268071264953183075552504583987471032855602122074285919995851505096309210185153187212362588439773871627194287961732595663359927751510461385634236875582243715831509349065007379277596497274530410324595446925894296798583249588357657970103519648392689150183512588259654693533411998206012131070557919722744434711383865563831256589527119414263029247738709161097948334226885655161478354673516931160845739218843627013581627678342060625733700881233827816256873021799569675031995980220200323668855854661115245662495671213756985080193010067485952811666123254186098788307039393620139061556952905221174685198953163005868126096526809411886668830220682451257067757744457909548749227863478774855927143515658254836829105567032742378898163239287169274272083040512932677797671251446134349240403923076045436755270573331926141471177588112637772346427801943736868719249256783763303931719986285147107174026239232110381014823902957524119696148480217254276210521770754207484273226266722336038005843194447942014441681120383194517466036523887155137402228857257567386153047238616607128519661314966644879138739241005097045748162815771325220221158238809181003004820412149505779720502327967749029329026400184085587900576439950972380846570277005035408489355665363174874431151217444944504876824499794016430531621981249028656726126078248635336653192786312557912997646972729878776284270878604710336377310963768310268422232988284885698261115769278261201748828560884431168602885380743382050658324155535716506651087615190198715639508781496566976401816312171122041522576286993804396837835989369423724865632505099765523779836965151156058741480263104108342619030628509702397742014405683660216891154972936668614815399355269253697293019061409762174865425679237121082792934255433546572512237873433213211121728188281263250460042748010010651409734455205334387202289118318684189626791449311787697660216532100762029104818213169147864714918906753537098854915293170004609844872580907828271248341262086656978197674268065279582365835735706983897978111940106600725491667772496574062487828666323408629612036808506429795445215640408679273315564904694547695771370454181847534646675761444347149455548350107075203768332204866883373577435978691381011322569611201827887218364725035525357715964683867731954468964910411260166122891115769310237655310203209106706474867146824251936318576647104420659967579360235120270826058452852010163169192244577691084751853293820601200008608488775593692521058842198700101528573675264976486100764677607744468876609633274819932009938721721126837688277021516290763678771444459269288085282168385734259276706210237874199017727463356360321084989301737817851199719345444650390526563566102219361109564601178561267288685621427663819206600021900266891345227958605868163925926694522913264649962713921527276241357550966056377260855442327901619356555087677396997831007415170763803550336440236261575261973061465476498902139278703165103974827506575612669239308801836331389193528095078599104341249582305868343345404964965335521064928150298270811707008163936585454958526545528932223530945963916670981717178391324102774232180335837849405446634626389655980840111075515015538591647207108045827821940416041597588931652012455668029207368887235250056471794794443120427858822916364669625716159513366456296020023715333035958594818381243101467813745983954225701233320401695357982835203025513918545236902015060600591408855979740337939683426153531206652415845623002595257570368207767180175436750968056728160139590897903116309906820808633038787675363884003799766044112886576700455498735466134280199564953577679463092609654611456050285688017137470842605239545004687827916586449401910351291518244276705155223430933317262136086124448159231574859160347989682881881902074064531712071729194340157195438955571376916338938289162262782960627136132220565987563619689731738191886304550979056987100959681672836322175085320472617060005150926526796023044434880408777388990094698822325663697815623518219081580200115425863388451859340720997322089516307252615468694312289147572568278699688814284424548040594900549214167804889101223155717086187917509931709893914194627402810860269053716266417666791270659596485452665401454549985384354521546708782881285951827982819301547187155458352053469894213796616837190009629960635201424458504426009564477510703159257390545911679886476686866938221211583016394308733563117963926064891022415341666991740896766175073489081843594888014288758932418766915136099760054008559504778107539811061911233468725844540372460764400596256625122070087258588825040248443329796481846008421253903159248945073532079541796095674029168438368288267460619579949075644719453415326400020817724802180829201218138310728716214239203278847608975550798296789704212014770493326878017361821918455926434399682060745987746025558706335437849888686567670715941053761017616671257472270665557815544731071080172854244405998576978287914473311862991399794470487746435069244134718222607202847212066199431188162989068619049799361463231140680282940674165038213895916264647969611541659321098497886386834860661285241086816305604359856771687445315998120781175280062845104464827173999434316269251564278745549433219187866106668554762168827105752468290455345218162774579703322902188359992240686444991993145205030010176737262108937919370561810433111849650640370238295843948123672082642849933101296041827383197636541817735789579522050510873440816400063754364329131820253549405701059379363094305063685116491515151487906426494128692528946717078360379209253889575996830597616808271325152846989723572269457929952018356524041490944508289797776459661117135160609321082386545849033023182520891141727992289507146543069295907559622791932793685659562513295949011409940508750523038839783018069729722054852913835611984454102879011788514362043373199871264555415360600158125310206252691661270362571810168319211585224926096895792589126977653341765510787854317997718547011753417721680501478984115360869950321696502002343947414543441322276908877478323782888406050387624550699089658127992325561683234016050448789388068028051939973877256379424392084798803944738467463109453612811987888344336938358764963401770732430410608751121526192296596444032181424938669304204237817695174075577546186576598580418990800444729612422421374676370718149191631333596930493663868165690329049340186630768420655142218017490590731530466134022446342936466833884817395828384501631651394540656199399322891451986702687426999106598469208145422744759743763701830459654527908400452296822754188582686852621569168132725376001214368807480491529575694626551248653348162318014262689983796096666807617521748538969761281921140252042242846003088661986275960060609090029825019216560783804310064187210877251917637987979433777284291048798880594173602116406463767789366799090356739944384804018581826406363765605509271853471200708869803393522070261188831805006980500339408531842908380488854240067532286535247041295884368635264639060498411145205868175992655208867122098126474237834034620707248644802744534024052912683589413487836346054140662568076049711387904555825402100794957718293318947301557181203200209339717248566977060043323195141228350639530254871081430295021053832046218272772481012413157503276154324697764721902303252294658051164644555326128610654826919827526846871763467061299552582082093191561378759542777923104494761951548327583961700701338703893773851012477907694790959222743998368848995684232118973129792827946318595756616082625413196998132592441990872863007675299160522202447396943432909308839310510118729797584620790338263325276242612790620228923816491598141565501090101291843483220735574249768974143302457605738134490419630309173139485635757744165089949843911744296220323698492686793596248649366174292457156290379426075625386748143947090042053724209477742169124609566339637034677578434876781613030533077495522938084593040574847661470576029736743534652559936901566850392838603201968944707787367985501536199478111723154762506083171829592329800102348171682458537340084952094498381189525195811433982116660396293600835750751712524354087970333143798886892032957131286967661078574493789140451871822023285986932889305875972335525978638882497681309809957288619235217631463289641221898916152872285282746215644150251204529694547896176215131504055179409970536401708604626702042357209958290946721711737830412429739320130636813120708458071562653704894471123784504931816138286659768021863470914988067589846080745495746443457634301052116323247874892115243351268534553679347226140413509465426745995634654215986553026840497154122227664562757601843011009543316520176888322021885803625935319583246509355332249787817860479095048339657670364486168617954357509259008274897943062380035024645928698591933925457011531909266101505072354275454251272429202321956812907651147315907548996981387500312020601781344141736475849394920565902096190561920800397929506134324772441778650629910337945900559962764292152749636587159647036308521513225991565937874374486872557626827205704746504415342404121619164312377419502568022270453671156923496929790852751673718194102983097903473678515530158821685024926394242352640305173178278706396004034786429087202211436723506918528324261837792739650895769963756599758174155827338707092249457668306921889220770550604856162554133947855845845672071277629046503868780542931119870756964233281946532016308562208128649350115876055876925555025066863718492116862719594552695861291019464816646615770085998482540865425620753485951482670100539042318737954898459678188474824014866877887236533514331879196831775752742389039189697662567839281570001205712869250891169233347121504953755375746433612720427179786088249302442312353106339514790885650365717257923380081457580893440124868630004634615136990957249431067470847380625463826727699798469326758131355458615641942668908121676011285108616230807422780461252760499319794252385395190343759200861019829715605272987673770525050903753117222478374387360771724327038229545502790015476926178871402427606940161210311301349298763028702112122192342446612090223524462168031041832655404305205832425469236416383257681806074041305621711686276417146260029759179442924295957774875267984940620972657803437007385348506150439499123014526751914313600300449019280083255277867599822231930365814498369065926694185350254797673341528419765018537002611980459793426553535379742469819701448337270483425798223120798492735906529951653317738842379824156422118320352085153720694503586739123705514903503501266060344911502141688823675642509537799221993304226863324558586868174803472464638784767730442377190719600049078633748681395887134532688735216846614004855486546410131618748020080562497582257430561253571734172457082299544366138525905107059122218130926346259325948689926953451309156976523069955388650891105047410499118283545943930844965657553076936954918493987735661431194101327517193546172888388904600153064243665095952560491389488700397650195351342344730773036628544403478799316327769885580427069072947610568018400405241474516564576793110414309298861777132448778619088176606845592852008070944246234870292578218321295350402139586984143990150933664651502932444211732379253662240438011118757248851516729885267732420761546789694029913113000044800460484842285255927126778085688929518648157688824600287835273364461554813553040199281764106479876269319068108122227474167381463318877088630492749017462099271525909516027517452539225081534547983033483761602861881642851617708090805374859808793665133943943729284463612627046029073975626284323651627745979683001678368413145797585431842218926991965472249181301828267894744262993814484613568014719820628034257265532735741360053344043597218748670545828093378196248612273937791140809319724857294297375400823331009807764637993211804277855528673348080010121669112320992098945582569125464228072634987094365675042197831227800267346762648528505728257590181994805708695665108016265486914579369644000973482264289816086007520820472216856003930291414191506861254474128806083034365401882725863114476140328836445734816553721066850767446758462809446093560460277189401370732679087625152715731002356841706966239092195395997630839824521973849722084303692539232163033676118700681494077218433508286710383150059728372048536274907284499393002621919002932231225377366163518516760872681995211129524168817589642475125726562759538143540850219172435958650187348829861343646726746799081583586064253174927929673449112070402342151160250167553104128411771164934002737490273423118066069742214754988046194212500733247045446702860448667658791271163897864829641393111225105448190345494597731953844606316408195842663707728081225790635940564697849227063686436636292716031779298648355324195152098347151015804726816025396834327227783278133544288035590943988147860772346816171513060378703293659879251731845688579909296654502543884552507716870371478345919033158735025439297246090205758312168955679500786065462217854974888225795264302382393256468183529576678215910057188994293539904281333896734098684756861904272565630177165348381081261264707530065623984974026335645142876887345457992713962481483157425363186425646792860314822522093461778338046356127556950029985767058796177766172359567595398106161841432466496475554138506638796444348082307597225583631058805096648946941634937189529930853694707127335219665071771692331022253093989645887036930232338752933873447577964655691248349061568165220811836120470986895078113393047003439657347496587092642698831713536688249018649631087431007390681582071934308182598959097354206975178831567596719353071697683276047381590963233561291213998531847714200516576354808548176027597841798469734303598711530918790410143631433499402759423644701699046787750731055211942508709729755374498733040458496793074329652512847924489382817316440009410639242919970299804221809315867129453315211881541982416112168567576298933440573553650322785420524184616374563565888118934001010434386383205063495264603733060159786831208416500689889067470548322280702335376589427818746425709339371944069696371328286802586372536901213402043509387986820145549593764842048334495067405170335253370631608199464921688293066622474897073046816482797172843186894226000246020453348686967552922958873162864929157939287125793662885426544789994008011196771002953117022559089396027651380069203621034924849447160083653327634548004757580926668347407817241073058208855185923134301316231415624594664707292808811550953957059289476713734599541679205208590331316948873610206998000263157150342567167101387891004305633013633037297195040734153085296108138110506813218441182475268207001746310936008429574855703978647925955100702955294879070383021212726153120469264908508090655141159487507651209688573334681981731152454600725930761823984857467733128174279626632278937028105252375445430570818078431889689172640520234411916352525686749995178252311818769079031618198520032306783536591905924818965174017287865014587899571586415277386935920370381293317953027755094144497841441248801634595476825190238978900756846391455700149924218460507784997878111276426980914183801910442062211470796594435056555785739587764455295269878572610344002433625290197267158819187096319543977509235602813304688889670239846031944124821536080898942611697109054847641636882553225981740358188749890853999952652175453601012030598784064376851169612539053695264030873310951790794587016065584141275411026838396740330689185880821741049287069815389332050960823033337775663240365104674709932127057535687353453760990606372699412195101962096848216286085649460437130897268981567984017347014930456452932919890494035232157267368944159086474532922124266993542349474849927714172235037564848502317846232826683814819859242737704909044756504244473288561706388187801285381523976176281683906388894997550239382173218825122961761904537244206716635671309300236547989154214580015514464942307694355099620915096336455214959801481422562024785432527750788466495871842278777411924975123580090355454924150777546362435854024875156653899849294556392348649867212232609589538257700051104354632655852659038117247729555594508440582497347635872821534902089310361146778733475679754138066107308398366912260253917630913544445765264237639655066185304590211589214467158081149797039487479110162301546247579662230430688186774569988951094895792990966579913152167851060244526988048844686951302058903464424314950885387069808560024498750903896916629166374004527214152414144924015915971920285284104335976560525629506784486553171673682632231375836380911324258992386742816407404932356462780139686210933729008576860252751731717355285669014500905070653976972005689938528804234722689780643397670483905674876581850761697789170619002773893355283485026515159293649057273516914646462507245898482882736538071184237758147446353922314345132808106780028599934709438295670223723276151088931961499615774671277806842535054224546803681080719267609231283752421751914583525723268002083499534462664944233960219081597311445104757114560766062031124488519225726141463497137960078799686845779323335607795301953596303206521237894375081106352929816991031419495627542048616005657480829480822830243088362581336228359566267402659237220216642975907481818317528807517507856694706763989636115340799885059087821929037269712083702457654318561768253770902166725895821572153756700508280238281403401660317119912543817293350399135446927957349292747612754384160733800778101449937861691023214271539649918637817601693373608146122199871726182081415540496831201123296035994859008748039327476925813271570948434706327482603459049657825625214135143146810589572147256059878869603683719092121508296430809895939278793591889358997208170125699767110827395746859257121453400125031682659452023745512305614904429949104286484176657387891270204955616508749993564191517080094208000752351143688343492941721551334878164505643157725094567325405893671805471135947564974709320333546865364424045317757476066574941148317733468463021472000302155164774041073450041397235767315298381943688977454042258802310121808065601388622130417719333105198486879690297171411221073159524780937551451141840495067891240172022930287097222952691114675200478341892692801039929769960819687617783521560745252866375171325499804571806793909524922759871355961336998628906911115658451916605321666646437166088691604660471236476314205002953428828980942053163538690993838196694862899579426062142879594553708376056036508654801596156291175589731599186981332857368731943065484031079636997567003196163573579633987054988055622103272277758628023702383654096968154189104089711138035348409006345279617387945431458328334699496699480588060317838505910859411152484210207036358635426739176740476812346700687296812874832441427796333768438449387014270537040494789778739409034558390760376404057060128984069614483966743428257557973330454405543153474911269903831846307758970945443494622052692023894576442219985830830835678920452124965678127585630964266899452443740420247901982181343065841824938361303857406265335804265847799131111455252959270201279885148363515516359069788609492799196231329388193839752679083340871519861840581893060501461099370285446895047826039406306861050145697547795415312380715176642546054054213322235592058077720550646613615946846345071573317362711410831889042699560771278464788131087233810941563238523772464130540962294383629518829614862178881039540519021229009403216969119958530085443689374522972557128719031444411061170621099828803177074239016708415833573633673198693768312305475879295540210085896671997126891887432939460594431997332510502888228758326236985452712211544398939954029689833924658607733666540066787073977644193447015102261727854338405671705471616323364650940221892754957066704102396079788138947335298540989106637115118702010328249137327031658137924103951923810892683289078015013468972266848947815496535361923718851299164454562288985198779416765952990140820189468596589026944330072841077840836863136299956456686002978264086782659393716559663199926447478932647651654383948165015354267837055656511810818350962459281701507998843916862450630554666005979706941475454791034492701314209374073535574361726230822521715104243626852574296791597904042189540506697391563331252794003430415313814072941056038130631575413529731433274860098614793978463553377077645165601332720800372644156184960479881662542877831556098746972923853294752637370331519406705505913334398096461582563408038250807721068612509856758723256018453947750500486028959636751783344668150718414535007092606667601970821475693086847293647826641280363148095179611681056348460963732411435550684721319907529141575177437496717999978886914478048317329353652208268944223482336079231309704794804952010945426852754127161794097303709866799676519618619570514503272360914091754712571238675718201125905185158060043660950157114457794139593256133683671543365267427252399414972323523140647831186909299332327056087878218384266383019304537817013131993759972981233155715883432682281730438669099073836904561111506085258155176659825107150982058888316563453233160708205936557564599813903914750682111452213614577962601815961101679568675078400838145742763353564481452275502298396324233576591262721531912847754408751143596651859774059089739180399585038479269538876149519090843600921694762449745757064764777054966734796232249592590862270651658175190168712855725227495184390184407207322801234327568404446236808922340359772651574423779130069647083319410007444581774264037575556850020009447625822903468737462627663944417927729553055225502102668371129757957507336530351466845371438428778826797682875412071538101826511322370877178538506166834613496478553853132212642958077343458157143981398189444290928340730035972878830475306191348882206347190680700895874057190494667564538032371066775397750196953905420099563760634808619639769684842091390750668794879204798922827911337738653405147806080145563368972519192166256169199269760671477465009592139093709584483135830105862477904180808648142281147675335015089844026012540323602123051148113822307040223560581330616287053801591477939094027716024820684411684599067885931254499905117451408963330313007376387620519898106274672517429120338393282821824267423882181162728874515770232965018797714676497401810656122776273718110789527759395216703308540624703698630078159959224348837124985974169411560121275996940954824918913469389779244702540475084197230769953434866307463236756823476243295389446784641368936566513036895033157686134535146594127696985507063252204076112273375824336221493133021487956453427627698785240260646083946398958095986110848919067723627175047161186180986211104429865916033115936489363633770231144353524023022509564960723415610439450840193658666789583180208509134841965018058786278454508400963802424270016410327152364049920529244955067450604761377288756608164040728877738755165503282902541978383124128943588892587754240289289790542629104620518840223580854168346989640350671714180711420951442301306526783536652890223853444750856186948982542145075816946105702752536088708218481489001590915494662937260468632973688288239224278217437550651403924628077720636841745493312669489672718842255905600076569962265036020932761926251361961163449117293590609464883479429832278651990203236725883812701745329638706031596165190120965297430674016869044417826851215499455784486804627842164149156906650038679105237293503525061982056473542687474443383595775053222821593219916700481846585336878818024066741493524527998278140974268666622749678748719028475162242442932469958432793016507539390378186565700819113164193314458065785453585675535909432761159968683556789636859444500430501483730883766513188793191472616882635489684541901162034420845763581601328652122925390812271853032608412274050829772724985824554163408350578430026938178861064380653146727819184943295822876501394037162456718056059252606171470798137845931576303434252130528636192804057269741938657168413101724890755321396310850137411667415292691025230017115056362960383424367937581479145086411481121469883792316052465835015006763926085268356628820219148685788156915246164900246359046879108855182519069023974819812945661635358701569376088426453794181923449443841042047805883993413282318312203654855433681075078646099952409370331076413203933185224972581681310384100776770682428181244480318788769693536501631771361573055898489083212997811602989857614349981918708653679063287048580683500440125070949789562960185097978178472292485825092429097104319163139605314121509641262946928128278497317443210472894711329877996819397562468528438099972145162032982933058376389466672971834673791913087013050221334890953027585640251322660234890899014040707410385266708432001663126115525623954879049577239901147251393749607272570035854418498277583693747041056350096552479389532438581628353400693655732578108450703595754337445029856582867059257623814708223606593850528523292871146806590023686683225501864176053712538287029357434778481918125296227032903100093367500070468835998007376719372570038931192484791997021164998143014155498155262593849879265729192977950959316952018238125317158538801284757222235704154239471555684465553700250240842692068096812298860036657710925587427191914336819158878442366412222887052592709788475113566505926980264839576056327481746813481284349862390006595500412947997734606651329011450418274142834052371022152927495765289469353788959715750418135205895800343964603203622932678239098852377303471904479176450156943205010279942549810329919014322990895440655056959377645003448827476880571113718032374454709822436141649742623685679388089389475778348024878389803827255852885662169134009684083120677348342054538822336421528884201887136985243357674567215947168279733322950527952315977583612138284231472584704069043253009473510331306081968953615766477453159450215826653992633033725701810324298114385022986385740030953823565407880294670416554754525162742708892236456600561943405591126866980413273025871604329793030963530718200197689941885512041620668290283859608241774555350641728614160850775974152834408364338555101119677685886592431269099155450320195115096174573340582385089959301296401535370420255710829373298681186192547303989211749615675052213981231770587432180962420335553394805247343973278834575972523965197718010579072480977191538327885693163831148748714836747411907551697433619389355778144704729861871947735768703195400529209156380871919535348166793458952997493827023656507015336528346266874380836212254648556996847102216814094546396235984892099738853268993552496009362044736452684735777160221554586228481122004526855509617404249595497368503914714970604091725313273941242114465685306678061652150295362226105051017966397483237938195742138427881351809609362423222642990337751598527262259660810684466804231780492037530605682368200758387477775338421190752343295576707787337825117733885230248777212861624760285156715167884980104262377508629138411048507384049814064542731887615230935055921831214759630477099134561706896789807913766451995001295280132635054107215641725522254821531604843246291482151114526246235714634555446542817496787320589625956941552564862666222608550363598736907450851079375879670644256852404139917394759544458556239862799610850060242863136446056851790847070163382181426118788596291815043823533216640543111427508115193852493002546211751530386297769961438082702110444481761659299189772964734400574853112281193298853903791861604966459840984917927105610155534695594926764183978624256455849477662543504156090592205008837181643793407991724055284559793246435623503730631844132133642901764868516529639158082936701510567110586395671974547721098773042418151676551896196190169081462766194239350549147462068856628702715139034939268013484114221245111276833558863073371472909511885520286744373281752028259558084424355999509066924580877949877086125003367393730887829236909909784113001684783930025002771539185735963905115417779971589712977855423792464902540602202472354037144256502431965229965397518063415159664372580091343656356452487876324038950415441017331130738381680084974382973665567489909144251270135082781202710807582905715645434850892425009923994985475385398630023692182621726579450475149124147742364810779837329290121863998144124212825892504717097934462602820384039141217109447682082805688179200175181775077270982906778703520873855708838836221698374115355533874167611901903185168464912081045550353161385320419431281884659209456132106502707078747651717535618507893043510724870403151940191855168506690394215518724950868938824275915076181682337026670049219628360091387464726570318832229388280265174374545782492143974180399843045202526796191584211629510445185542113172016152347117487647144477843737827018721110781021083286132363426038086609429836189184436774503558932394841067145506103074398349430296742199777245391194226801778598087810567428069118411685435457448118575371909991250940944940243644150579252444430452345641288295544907449794118359527222129652784083868337621667942491832940115180049390923005255944684168592061285770742159042421714683930444365935595875162840243666195892077558525516044403554173800792013361434636188050773880748577738424966630672949568425944918306891843771545131184383536776496726863893232805827420982370800982481047821444277820946381518144223489877570950621842475784369302448821275408672377075666505085785744780207116765224919809809292726634787142988542699542794892051593734095892624278968436945367929632520695608257671577955729124711149236639543965603052775974877390001486407865337148728173669871695516802186002841683956320725719641773388934264361697860984545979558895306598765031726286054846211341042618763379632825039778428548183881165156370759336954648660997252619773875842610430311906087371004968063695253554535009176642190590459842300896537596873286744966140786403995497096534941617261260972007495761358038106730050203683575615432643685881444592950553947574084892350455394174950291192103361399952315688151386473410746141168208524116014598567519408060521313316873494855226020303504866252551976351761597292101342064560384637199443961639978165995883361424466043087274209701623007669128163846618167815755573627064176541491470880213793420852652538611111080567582412429623053819640526295598220316360258657263954480604898337841816351418085665677349269182748963903413418101411368908633769094694931572111607636447494190469792127177675144710706357485595019010424193550685701791101404255180147801702478854309768721667555471768146888785587954004389539945957575318706519458802920947402281345226872488821301346584310858353679875676495841780316374367245247910463572389244601030821955487808251657750524496814560726347512404181851269678533358823251653436980284824210226541024657199908941862720983191014708263663326284405341129742903307565433641603152680428718858888791437071004351622639732957224883044438141487211360593634082235879593497380923503429400540647286991536154335394196418007736731303341898253993174540244890379244095143277858955207148420398788500289813786162878914030801719966772126355844547777602117811476473476298923866201909333003336220640142223733815720412418890219883374960447699535533549249784746497272657303361914614224164572323591330549333904713588734856073628472320761566559610037704598584373764106148323053522591203246430006526269878166281810919406808712457245125656585863681443230531589202283967770672528800013328604976047246677885128078344124526713057544517126783713634127563064196222700162025890342761708550920321058725975888861658174842551347998640767932540329361152085918938641997070363387056121217886093593251751880833271719381151448943998682652172771005812097206587091452067243119880005229028741133367141294508406547991500688219137961440478814815395108098635946637964972103601656763269529732862607347019413111553672730994809404220733318464185290284150054196010360725336882378833700414684986209540487976545383952302834749162871427601984403655283040051547458088935634246293302856533810629506582151176437908559149402101037528390674376128788637081537133848150966010208561648011691098349070922480661739315952028325662394775700380791033898039261276164356033624954360441320743581002859110019008939192822813568982520996792388738614163804808463624081803316898365474163827795628412560051697443431744372819277682168333918098631892901101934656938910940386061250222115446370864197074527530527966016611971303617016614934113049657100145704756056435405829707937855483052285924597700880241293361255377480221861913908500608740199852168644114273112061905678737175599657007819085651777163911870374580333104263558084611872083739765983554762955626327055121266961913683825854607927692927653821482372683871115114838569468166091209494728573045113011632663997367960065651642559473138342847510536167875253951257005271309863731983032501268292203062267177492684138799606946783695292058947485920796819876834288022605137293044301016040437168027341948341033885984536152922504288348635769554250082411773583461653631525547224298679109979211279903073575088587541370473874193600236928763465409723328525168810272504101563890145911388755431660293147724617266949330176558117375163983186588101742974734630415081763261414516123271070700799186561895830491569051256772323834005367600660558334358301010171460292515348255112334135627999257342302291092769404108923696573015643031187996665351176109032074071913892185962980762141675474703867980049676602146027021697634664258386648050145567418326190370064969751312841900453918202116033357675921050413266089184410613317414951857952271888657719713584023171276135802576125809913643481700606020287313999901974535670757505249560981194913819811713467758846784167220093112214080825731900269778436554410793430133304591720264679254116762617279047995411045396777849308434211063469575319493353876135886693386377820776546259356713029265265495177291969465385906854290468250613729342573562367583672547378147847679816319817982874245507410738720950727312071096558349331689341638374924504557729198580142546652495130216349404511429838804952530955407441961693402210268337833244642884551157656815232797878302877121838784008668574363126240191666266174242687027349531247745138782116356892390561199774352465542222479931447971983481491672203222860549467039447047936875014600508524216092236911247151209798322871746626223992548154415115800870146110630219662785530568521283964451485694881437130050412392557775284221796221114774120443754880723347406958593311638267720567588014525504405636826472622611535658818244895790604308223605076445327412359401032581245033020668869600944860514812433174765466787334138968628645063154627644265524851052476286300368829757577844889992151356622229003103889675802813542013673952686693902122522257749660498438241731302810208311254918220887883610584312405929529149562792942492104051351538625878983880189166510904384545522177076953976181412587518608264447021606071618591248831321689014029420632998374239810082317929116005852648617583588866246739247295529402711485348685329757405144643537221946654204057975134775526711667611883874756114726368514968331585187235585173555623919875847201831738802128410030215491056813457113861254020086061313375384221228637101273153825697554864072463273737377235734141289213231995143233404666770501435120988551637642138248151648349118053042988783986073208286977140897005811758818217149170609744291042708465073336566994925674409128521954788585659863381697657911059429897803795020967865679107955009613672556745197478198594832011802472289304250756489098631390873535059604259274756749187598365166927149560922333864269662662593666553305881042063107341200622657387027897943549343832986653242360035720142063366752068482060737378638521273346814222194260524515250329893651825992114281980209617464136612758175628780179417303583127923323272556695542929043688354496662379397312325042843338205662259243576502965078050546475213582208706341054861763793807550182334582856932574456727493171579695629932352055600246266255435886310933681385535627490189823115896906404586471116283050997956382216591168989530627591280218620475787175482931068098003189014396198472838889616484087590678861312313746608497234963634111777809958793378121789045352816188530781063252778672629971512559047524461132839328154691801533547931089835675880035986136346346984501288448353006024738880824333241451708644979210971655115569526644475565061629431941938106641671732353721960184245933663936229789968061891434731335537371537748453460371018279929173244851333307608663721864052363806814335122451474155332825430749232658329261145762487283774910906896763125101429556614999601415922460208700516819766564131177972588850432648302124210044321745929366759881405187928639525365976839802171713660771003688790859248176557436717928561396770184948835387395288194860673433703610020533297287866964011522260379645384841314043256621734973698488814752229408720621499225568572174089361293917041378498877213541417142842857257756265681746608121543746422041170415512733839453566342920710555667554055215387176055871359555363694547581332980527906820680473291081305841426647475410670949594254349551383609018553454561215091438437431390224876617381972491275777145468896348708250831805662996042117266920061423501412139207667030889072132006063131504274777118228107559492933351734217573549196570685982087985142482262079680248615046010179476902479675944448752766569965501802624012964825823210574021245999950744559084393534416128425305638691499376357245203417521747969147543787182463369510443319257076417984002994999083673786077042035715034636523994755360475278149813402760335494731785696230841415495405800085384582358677950867114099932812654141894001495927165721538383359361561589620903629313996343090396130308441849780256946766331534700065636129931012546351047233630444787867829659358010106371227694915868130759530766497183606822254140083886280954850820242640684579009693439043833401434882643095591590439568595267714842445847701484265426772125260165164308996403827750648285283188399362781259698700402068369381508456573620300289858261598731760179994034876218112784176871485013860252328771578919696501051463126750273720994052652312973567814976753899219154486664074943757730741032299162706006492310475492130394678036556846285492347975587853355526389522729016227789687484791331953619475559626867855746521852620285832484736366036528552000249657943269711474108475403774736979793697572958510656247995570152416505965396919919044579025498463018952194871116342555573159646487528019648153660876919504115377518002499953619803124252113604710279152557220454897987257044712053782338560528113285044624280023913097968197983576394994497184227688351423659664411622590995911455479129422679013932422531189207854760345945109039254293944694410478885349855599935379657710981826336202366030795111359895801721854662460589355656738331883109126535108582293712885544279570017423292811652364275381676419048157073790907507788083877133328101288381785919209965744931133448623405501854450788496423740422229394569562286213497310740258679498211312007649256176781894456574540947047392001722183701003481169191234550413517660223567828826901491148143391954922480664556717655867242039429406156129312478254138771170415015511700126622569657743470933153401340589520554603100817564745400414829338281944213933866639745505407730506689891673030547984389990130929762615848940306576624098340111999700315819271716273514327532756613705708805343659004350500379699337181478569693105195816951086793061700870168176238150935090429311867273479661773146786808195865665990813265604293318527602370035171905814806613724819898395019142831361152376731744326875312739166888958946751853798084295475087803140853782592832291171816441546705733537176770462612018656402784461918417327318133190831185875976067927326793946050037624319407890751170854820666807422099367454662282766092216591730317278359420332541867008770627077729475081157661801092047568393191520169153449175530867828125845126307885654779261583031046221935733358215382445058827261408012953070371859205610324433003264144403045887824578451018255024853880217961417326070479620744055524072800166613131833607314214171537132637509303997785188814912728338302744765415108760376095236898601342778981526786819711409062880557145286307860415868526515913176170487169958202203479311853482907636354416721860540791723875592138037302693376469722387489036962857685384708634179918390449112636818641552245436698905329549733367058807561365454796679229146528008869104068985773379669505043012095645433878178170357561286716952591388700549612716571830291189661905716700316364312521001604897392758125359429780364297809386177846940435254857878026872944443893597747304748443794474868655504678691969185427083708496214808263226796654205280681994998529233527773563801708313942355988162929133409671957129154459523204793941439707101067231356245689578636286362359005137237389798975829733220375724551333341581228814751360131919180912356563424675325627372766757749865359413052265732564165989017410737849048509317663724180523666703971965657004135338923226031300077528704881000322912490080119877253458647837410343006174071757268832074665053632963452106909665553587927662781564859226712455113771618203639981561445632723134362514838837609329127841287256721344671288096854467974073144089587518879390822134583528363801353129822033806705516455218454445473633201033161114555265307446193796974563633480504928189340355781803940211394830080975386559931884543236115160992023528825503038575435208919479784908776923531291727056045937781814786572249459908633883247243070201236431764948094575984784786553410370699775665152882424515987375474730075728626271068476437637255857390663195399261362788675722303518438214405209100874948743050461185200173982577209005328463027218239922178072052503987249233445600252636440007624587477754957463003078610952577188129059268746414228588919594506880742257257840391286368724271503845153164192978161844519271316975833656687591710376655136552598867847616959236718085957152079885437297612660796858675831250610727785980809915284421400238598921534309962268194015455062963584552307697118850712915815691173660718309153264448820163099073805308048268473532998749735022264817291683468327278698653761074718918441380277847761745446223399122135466200519974306949215913934621923778682144985464540688225574529398362070248412229191429996444783350359216272938464528846981188327615754847450482376168000488144637697045586068082586210293104320751058248304492535491767211044686711095578880858281921483241823756493923725478322361300809924174354957493646567445802780431317897094443188828704162542966055112451018054536121915449007950179158454530033373250240620795247029844112670958423619278153508474908812155145330326963493973276576872546061420425694981644334591452483458105570462387498006993090843093500298645335209678761424360771791320955473850421883244937569947747466682550538679967053955507000060102520153959526864880356301280616410734049765532903715608492287928077107108829300800379599175793149063698348751866692511609449691567194901468151669162805972270629526244319801749891381850594529427404031124544358005142084173270929884771417067940805508473337447905627429610015941776297502595043034300110408299111531182600345047204435197008495916596777015757619599927477134553098706573582708355499299066365991615700419376337541604686424634822620210057240779451714176867217892291261443789524273831121314033356125109531170426199935220970285044506525296982344238548861837048392234228909346588504168940247799832023009186288825022944488357762015395817588375468462930105666093119442251480991138030533022439673958047990019506094705119848761354180918419106837718439840729043359382983165462869889431153998201652709939028323217712390899959686380978777451555739389317331952415581834906579333115211272735149574174530132169062800791424947085813040886743855889495070944391635410777641858320957159854809238176990608676915706286273923258987919545199337120432961521002884350028899997503282112160580646129781980255407867240390024327261661028375826390094345195699509198362685310831228218093561799216565921241982351829259049613934245939016643609101518303424599730859738103726911878899455351070295451472531512040736682472258638854420365831940665951400897366201164335729564130449480027628448571269611890832635922251374146017659423061124996357393032266068678323122403659229783438545274003189910999258542296192546084088151888585002316893567796469456063940502418475067925862957515801917311317906563982668310675875023091492416493562458468040152033064973229071098409718527030475742895917375900278048476562080841212142632525599995988127012283620468459969059625706808859118511332525936034951596743677310532990081320953984321466163852276388804168513834440684458478750769296181051759452509554867648516601958820766450951821333749573863209993775237257097328763203087628180242773149671090658985448044546492173176434901213526589937370548484901181892671737769737728700712658757608246188343633955988010727131004495552769589740479264451474898879261176979553946610116272139269398128659975489575883310711868440436987272110143552828349942728713404091188512799783402326788465937787189931040743734893161883692362594303424235093038437415166257096355918536756464459251263470060929090858722049215684608308362810747964623716886652628767152316687843246653952554913325870534748431527701685383740443334940464258925227327588917924148941159099353699259915861671875787934787984621129414925219563921919226950238348118948920370831788040173285189559674596667557596174061518373195011556385105021172288258624218806438207716367534476809480841604289526475565833096872878176599459926046500141519681605015988567632993040333574482482326942417598293799277816331356278531690234767992816896001812367136053673125574348753137833336327697196151458455495045955638634332354553374071585190854497608292245262575567124660233850758356454676513673618240294630844852996691051400384967993139484400737269606373089325098303837196765077732604456478957826149994518289487592925153861146384274603701896393507943096600686890349391476092729333762216327477850991344459305380331722943984029602426440924636996931768953486909346935744868289754343551068587833969167112079901161711156648006332172522517907831280163499944982387843609684372735012573081938658655166119431118812685257303778702975746797359972219228809625223265467003523440648700727076717956069330015010250050694653648623856212165329135239409849434811724573443776639140134747460759619416383840681557348151091399587801887418396769816283572034803594178927796628914498915501341366881096474741056691663697177214330476339985494036924661922663307966783386783282294768535016726512847023284796195158697862358080269473933259716393994831872137448571908893683649723716200760488880356774701580138918044934819864032057674736171630904131655366869215992255063903805903566452630013942198015005755512501244098491653737781793490611802716152775705692443711500344888532774442743217245930806790901122646616714802815067904978659222367090304005830859106003548320332076430280675071987174183753155769965175936883808024417632911606042161524321175650880040469997281664708289158785351309143281536785989057368294232279247208368087605214179245061024669886274753521639624354557241385434135947958376906034199914101406080192631864354256142511115317783817606586029911000952757710812603166294256153967580426467584817364667008652301044555721668410632786824844916819971912020779620343047665858674368776350330026792060330627540701905664877118555242222300799084306328015349796254650866070174710227315443211317903122859802786252634280479741068723018048790024432012788887085679215884907253932446331347696374404530878422574619996748695283351674865680250369286413800896790837866683675531769574971822468017988515574368861728661576160038780370895239814923598912453196697088703339381676554200227800138590151139521200633858682104249744502201136079723241059559218973776424121277961986230392336634052597804949018022061160539407178154232519951043727313067736209107979827774986470716156489229102961587951642139458994514197952282761977216001926715062353862106297483482294560660365860045446711293432200184962871269297237079891395731011472925929009379983190385674438012752122442178931553067494833506713679948794903777194896022076333242608952678576012354017078030430976800042348254462294840452038117750187520343366771748413717759777829482996626888570400640357217249117096414540092333943715348996965402794074473497572751046165158758648152491354405875577871703105471921766960335832225913847540752650922302293562115731260920756173041324719960138412078410663574156092282382591160359125413438225241951798390521438894212678327968549751515466268739648372359989611004490949494464643720112979059848803372314300467706384757898339330583302212763502786840086163987521763694466395671344773274811034810415717917426856333201390537826846803938171450039593638586470729923743006334107722615827313491126194001215444413221571827071462231428459191564246044040729294711707701096389754178336547427317734906519530078954228020480163307133172503367394521831971522327989847319060141219151608374885456803282510926762883685971035737289718476796455982959639339160361504378907251641606125296965521740055511768025731860349511376283708367841205589272838476060865484847137223738466679694367039136657479938598576712396963996071981208081420375372638074084385791230966437635856617558742813284944252479390946734856007820020025578268661886996140567076502909409941650546559597947744958476060162681255072746853336636987156083414125099106343464127362113174024164935065840046404069406893529922091207434034808556746346214299352442888927300531911319671306499762386034277464479236008075713511241102737129240247760310891847670575647061583941888393778171304191759104765286814353787983789148600444658091608358978667726484754884878880025132804235086303331711893876980915215277747207572561871096385981735971394459834503637565833721921403413500637166955492814263920080749830210885061984621726400329166170714596386369721881312564353964151461200639276549504942477479685231471616939343155481402501517274523198634438156884972741598025252707410974705545063574941114173408086262333155416981562589173352079439926945246002392807840467026564669085503973416884755878816443311137249502028363853410779240821234753074315396740389584941968164612904788652769820824901749284015824421439244895582777918071426428798143050356982276571610429176326142685739228902101071987144410839991418446200155095033857396372306679437937128240258627705048295020163875243109092161681044447841760622537553940962306874926911171545011530523493537795203603959524467323771362951038177211513335132814215298132892134294507438622272825048492582688629326937772929818849552017402531886980612751736314129394560665591314781702020150293671680063498142856847617050437232437407112987033653575477306944281843552068994177102526216763472555715073297055118561473149851995776206699536994182423340118243243914856493558070231700784876301467823346367723620764863799946014411623496908673540018592969476801774057603909141029295094257770954901305508095045462804241488122612017695836855762253231117499589581379864486637661771087320473133885669333844782765802964681240335489418385369323897908365126227219963189996635612799516048711048751354919403608975570402314786363754636352342743981713559793243725809686066620567244712807470985270148978826710807227632291813446454995810718357695171692508475914002164782243523776453179155668951825727512034845680633590625913670855487187359812667530602764797869210187934372708793165888361123165482211207162160247269471751176471440488012898941410646868132466970320696750693123850843299707440296424115226928415269015983613725354957385592033711101460488883137496674917547750876323760248329064372078553116556684482440116425734359556241809065388879650347745558325891042945001750090504519656339208804271485802380741344830138217686550989409252250616333531760743233408865075987190346007790723283364221898239203828511771384990665354348234368819591150746185696698776629200177245125012905781916536681976911229976508709471814301889311535505497066046382643187801631193541419422480452132433119465523465217146636312336924722499240106757031678016689316433395217912513696173574202971648043340192135248237089919660024354330545345397959160554809969914936696121499424142927040794034353524379157010799772352320388650358083378792249502090411444330479034006797642437344396066040498432069447006471194098292303879460438149730708669696705248641397795151387959587109025055268632656627252724556400206059152760133408031270262901796739260250112179158229453323569440733277555490199756558393425771993188269120962464385585871133473551077796835537676887687842106397023586786766579159192204073211579356930954659388815335836119515954634236027084406537324394773358015789698308432093357683121923119252833880741180888608833616446562871260694302893968626327595284902594679361713239672764761903089565589094619188006584760952305330771473770673253856765578413322153435796326457591639779812021213360147806683389247609195221582825306183235606703339061896842557287581253746705715582493633456345388359031224227136584093853266135080397127240069829969408372663767368724702600159214304357998615645301504260867783270390625848119045279167271812464319025682541198965291506359145523340505731382780226800288876276218574873112827715339519648449084923068385862392966118274079328377596442424457737483014053167552853956280130807051875613842688500264862957274298770768338372724279695008706787690603260532563305776856243015136413010309746461171690930515093948997155642147381706681520701955001306009918057974877997766389476159293787964074122574423294334647679724195976299563095217161768812414471996390096211237585894412229294456451588210791573932168804653857149736407599897486449981306715278319365985731171211785553357601580761457398766006022652431190937349938248136290172298160194975628755244454559436539883015690956028361252377829582684072339754774763615401895895515532111045966598230501656977004906651417072604394425724274560425804901708046418596560208275261113845920153311962735189864284936294223725369352732234416908245817831268954288731750757214102403691966460389332642782305979148689316429537897900346873763507201119109306892068437347832680871699494773556124746982381112632861850263198904910215776380151907236391249526455991484295584955052504369629332626375520618973774719021276427761136810986617655923313330899822626954417680693474716749130042451275146646041920898934487758664841639011391835933065821849903014188343166082090903140028139107786834452028727378568651183443918967266993975496656585176005255086484589635577038720689497998828163524650044544789072247392793355328997647485296771321208283053532425706013843759379740022007667607212405178623541450657576749678038616711481496400310078157146902853318323967061013874989605629315318162683883607993536817325271711508911479734589618093890450714853079310123446282577183687063437884856396985913990204681554724801548105736749608397066991026738431347362595558332593183051826456131670688939392814606110772483285720912957606466297168457369006796524439298163256631731829239813294761470882816073292955189810915105370349679247025485145151348358079187765804634498541285581061706355238707973400283979173653374017584642217578723824647809512751129718444541590473894219058363017832157228379416059485358644415177767305741472085124672326022320413805109781352800752719921290809328036324135094307643974611005569741268145654118877737640463967699041845849847541356382049144821188186693015218495392282924913085027528778423213067174782871452463997358033002423718526693571378238573475479775018371366347148198632941219348613404191586908124359412270474974636131751438816228985642318192821620051386368827663888530346002888977703753009110507582527478265154197464246849561110493471017668886774549963787994699349697019272278909636061154881589362933455718492596298834424314049025757769760564425419008827713612514721921965009371774273479602503222613630086466922128783555162289649159687705077805234235843883434904139547801500698104840875171696995863401555063727264998177870689402195156753891366373113533550220323891552775621504863703325594672064824781785813031823167357334621952286696425486441342182919611643759718313525883365072600141903240257645582829084807599561085407510068823540906601670118492923133293297316975640101367370640031600410108346904769657777951972177959325773368290886875035622951261439721290952829133247152224695422902486413965515715551907054081831569851685815360522815241016499019593842020589187645669036570242947508202285807924124097929458918706239384004449702602031125428174089712882109559855663450933491516653614627471485829050050340467766558020647704911450374919046901239841062308351395578056548222188718204368826174824990105568592096623307624344482398709237746827203917445031610980508516928729819853041464324454581347367936398127457625453363940482041538196265359488807030994775578687427486525183773439912645117532558488922911975249018416107288297208313438002925479901435048748777979381954841882125465527209622446946902608939372303603738639456351061397774285352956093357368626691548879539756796315603478970779835970122576164528786217223157036531198044242204059651195828248264432021521423732910389572131443531274915495078796183876127284317750437085418557269506376164452133729264860837946209673838297989186306103673180251963822625907492988912057278453768662572707275325286219559176589697251093268867018466628548431307437216776224632482796179553648338927189570858608223450764709498997540119459046320349198821994967805893898582460271669806987722216157376618573603569411822614270658143816519683073052137935714969744618821060736039844711847939347391602613728662012477495338799479682041970531395896972320725204981551251733991847806096672390886424493972123935115661487915184935943251922193742966243891458184925446302688045597662712844903727147719705330572421936490159665151734407579844549557991546087212890996879538186686597152259292535123480287542241755804808926770328877143316790460385109890697392489089381218199934903712952247888951003500420988356117086660093222081371727548759186624678966456136048737999322796659559819221057246489743444909696630627515959132744079490519513618675475108725781126426944343234378443195849500517015959730404486237403958722223164648205226162057471879640311786250292198472510766299510131813417340022357841568739287424357221401113902054354619248361380310307821961922564283172410716240802957054943015367735144858111331006313449341465862392764731280746350315308092256663656789831781453885593218121763079265833059223835479465560143822090504892046545239129181047004428924726541384327328753111635905838866814548749914541686517137130347351256187235203456672901789564400341501443514143627132586793053877858998916049679988427950203062948744050682359711932881392174128131587631296389770936134397809889489301385838865665582809804645266299021421097606728093230523993001145898144143639443837561839847266579248123647432619492461055526812658537194053577786510106856721534679761460450957634582594313832140847521622680023973272445727545859411226961928804869864975437535726436318380480500971292788306734743086092722494789843540161188484237245516673020901288799275615897151705382308840915070451262155384269847769019993135580664559382255535756023282125992587733966715770783932550830070578712633005536419195359252852735163272807271325619466705188919519787875713888436674996833895023225587377609588464750257828499018838009242393078203515002179271896659829116224068948514048459618064771640734534316543234998794785541785409907692767033565813804049253850104003368230899699101694405093751587695813776710297641704012733181619027125765244508738799405691985365200860434163348752102750446343894915477856169109632442991127475056255785800134380973209273990042408558326187300652963565891668137838222123366839296656866481441653944751073910630569889099401973230766723239994061370827161419168734655356616504468234431957754808299425212173932064956661244203602199325126624939989404428248021256115071275203105846880784626418804324422895247458362331145431835391949172120797406630262422790736507574188074986271942000246254768290484886862489650142862036350286819056379748838299445854511034489603893011463559902202394230917210138407475225729470668734939815760622089359121924582465828621202645880787293423168958673157016924694579254105738729849362561095456241020009298175598876779020876473511277446512354137407365834236461085005201889855831009411875258151011812590142922318387488929826027471888470178604509744752260501274674608787814944065976516920947145451768370215468129204453319126773151360078443556437388200826431219622029276101079710477124999220083379518623835109713216879018649736653281622175249824474977496349417608583596304481132560694515224844972590551271870673626997105587488032178493576661579932740961522848751414622433800872236604758662059686933074651361517583678301533800083209941125083123071715670253012664392256784451293193212738991615424517370967640688796332474996561808280707603596771877011352660325004982662097997633517186865757006648083855997732288024331152288263078293780747803239964737227123731601893062119663327213310282784984522361995436690654583384173387910743289907943579936615747140284805992259832076545430044584384248408881108984577733827425792092798064850670165132607866321532793912606958509183977155793133811140731896729425157766158071219098039131518763772295279717194391479672161873406479498959502273323679751072406157568429965355008853204034156044895024297164039327423548218836740738442342154202673597393869924759037471342554829586913100052839174104231395085417427084956767670182004044764487539455658383414782384403933857692482935909902892782443720818678834365688379132559603652775710240322048668656338337253535325013126727287535053120582904300250866008739422304892348288706839920937797207896738226982570723854830774451462124949622598169299714950569871511732457167137676938460601049374674081280688817744682669427764766292871657459885111443721061307124615817280260150411028738636506423386297647904666843370382225130634326913081832763770367340031383780687944726610019187511951132555727490834470255043673197476870915581030910372503759431634936491771508598401211060873440284743356789132826016175588149599043660486056101229650129524686357626680827929463565077431711035570469012598363770119551541055602054960813191457111938364762734980928472830683803704286540846422519741083801795736737253799404779067699044222106823178461144046939535849480433872543690010599113552675398209221489151806311658921501138687261468559298928362788539177265299972838812161637678167108361229725705806504924886365420941727596829627448432506610609214476379748428339114360136943750753515354372397863408490350553375265200798902760647169602873397456658751148444370952863388547857004136343420542500817920423444781551131882885328961675604058390384074519406058433444149004373292336893210738702094681380766488062099737981931945318636052744606206143459350718228929340512066327689866197943597898702965195979487241544294913428127939165321441838499737447462334928992604670791921258964065128398347351615214026573927590382371210109482052539073507880899962585427035646280381280895330919245810907598370939200303244190820538534505262591832641133995927010432221741703078263740445673591086375924989601737694620513026549560133507933625955646669936275215252629564983172936687313398132459172604581537150048948423472551810837972627778874235355817597575309782941260417568739050982781918938391553374242079857222842879246992005739507324191586416441795793460326820991551753242593008388230031253331409205200942845173843483880877063773356652324469434517102036623765522361105207243460776882733887176087933182832196618956670429759362218249824906901143931814773695904825392228897197117032253408080732071211851453301274921474452125169824015790056136118711901755220667967840905974778449978175664806419397152207867562890667191783016667834792683225985470120025491229407641061101722008405473635817912922829484070897347499873027889917645955685507529413578464716793139022335068915144357368739992684601924470052852517840135163164864131087534885015618604245359151228927315283941286756781169911097422179794276658913063048042135139288203874743763949733900927331295742013664814505026439602418202110735348819258875240358121152152572714050876228196353482714340365687190363189146944786536468424088381422489536540630929419002272475278410629192307850495395076029305234950413283168462268967368203262958148815812417396076611422896984207395834767797005792652850383462727680445771809154269189855966516419660892333482144864255635294963221407294311440651807510832261770355800118545483030201162480153000105517929334870159887820439475264596236954048012189662106390926556056620078062495408872209698186511710028584442804179172731224071437959658582861179848300292183471692183101728897708079075224127745995771480388763628135805153203123547228898444807543091105513110378177810417682314337720260860551482579615987190139279911647051208862457486321442516265112362374342956379615039485059704632823429756805495717431941572538324736698751144287005727131467351534377755009429384550995445176994326332385046594629409327419895251042703116266853014035579769798111522411343816562733100767304036742662094118692803140321471846464447959665290072544000867290395886222950190513079554663517436087251585640615097598684393291069678744959261045094799314507155044452196612054777685283051674457280126935738489433937716967442164537612826292763711029032113218543265270991024724774269185152571636092080009011548772203321317896718777059564261946961309391301189964646593043197157530608216708161303445852781059546130968041148108290678529459380495200630247838758212903011915559224964078528461950473927380128967634222535516918940722767756608649356040007250839311096583791287539139139774526735491730352034308084016412045613231805132677129808752048759485576667952383985349174700038555215300198613862410337739671676525087230046512821432478879165836218931575403080488156417986308609966247494552510404854320379665245628453657340168534401640868881446466871330679730265977276407791281874468791115952310754839253295315932444056281824995856130135555834847710650100429322946645907583832783961387022004374104231671440636113059249753869289548434130576767055310895657671107331352419998523322990607961854805675845761866645030222972795339579368567245732162397893370405986732801318786430460583100937110780095450213913820256621223075494651616501675697466342961621882731609620939640894031760292714364897865058344127170700385741459261338682355430952097058475146875539186091613566055733628730900859348744754787972701378415439736478959411600848570989184980092071169193905606293753702144368996219253790483980690679077328620394871827436539771066847814343471292942591577685920554327186277520461933393451069913938991021145958720586945959545874530758491034311199699305118706279793969607245513836226654518323618976331850994408087032942684280173412538713112519949376755729590772373924929577938030926613283974619571969686917706056344820474754635357649363126229647526209326321199323613565616016560879281095839453841299093624175183422723065398155419248686003919808337331370506118975412547030585248309507182803287923330052448002252137191047453885521450232171097961796135474369348578784172815764224893773017728674202143278448433680331501733985081641838994608056471077147825062339252473633967043682056643368398600808531521548879436546810781044101254054825449380284507085769348101540823579826535256190206728192283933263067444962519013895693118977953076467528370365320995937283988124707166408032919214444602988199739995098373896671806184164934079891702868015638870678668701916649524986410743905512656305464635496809602432836370999333437275203948088690533966051151378468272325269628065490244280118872961058651501244719405947752089289963534238065472066655253394160029563409374764920204757822638546464428930814852627469075749948591940085716199250164931209615965577207180582506280134504246505663734824057018322494334219575388058971837995877726215626520235242109521820002317847134448042046274253013642747550639322310630141766299508799757613348125614971236840008021019825172817902314288639691449620384995915824094997947063374243498951019830500152399403011249959118274621258981327321921728273319892986355588900241298939425070997617216165382201214508613729224669891522614221041838407708118346147047405273984030657692985185499836473103671541375121989923144496841590637512812050437299829396646823390302514769311821859984977682304201549284220618752350939036421864390655017075632978690891466426138731742078390467463834704001435591061636380050938160247873114703414601718663402492215565659424951423057584595463647452572974170907874364958252136566841531934100015921190855160861062709960008521819978333729536163485190749756706498670975874007349028972567880517098954637741992483880936340520360555229246465247022862361818929593000908067130476379478952970747155870774478572587288988454736957421447286657536430589806098562832156064737567685736651000641729818294081028993805562794476388616220947295063214858903335263459903703464841511487011800003319031722393562746932042004476109334549400940780000100559826341912302601387809751232332797988594707776314934687886866282539273687520404760041033453360952109529659952303198225420313209927602807032909035929951231191297797184978632928648308300596988792815283337714536711140725478387045844709627478137842495791837252181739588147242166038688992477604111058127217227590061283688449851683061629612000048439938053789937421986039614271686527267514846980952984658193032366676970644974164852001124687175401553093786665141270977643005414635792270218491346131826269041094593186242860870923965563765626975740185553966579772030330295905203020057974570575559763773709764918216774099900420016751385674738164822073796263927535619898461269727977275072717908199726782129818606249528477631275766011692967422780261663683464861416967678639715694974332631705517151688769978510961603692945642240253385491184411613822437656183063097518827105565038714549217218476878799086733027331677134595295462671390796596358304017941661534823140522652369757501094321211720921622992744723191198324998515603661234161441115282161871868100600585519161393385336796698428762485135269306245789861993175893718620741296763938152546607100529106777960478893958267996847301397510124595814848149108923272253898876222851711647121681881510232115491965517516060157901563130340870227118726834701144202650381477936003493431539876927316288911221653046004507672488730118823789891947004339260438832749241340716416314001822318076830898919614326087143540816442450483901852961170749135144602480617931689209910215109326324616715490722035478816045192886750505069303313759251051706535802720125238110617315598884774707072587063475777224146911189961130834055251759165852400973484834323974392937185024701418115175920446144849768075596205767556650029412898908363390555326127382863564443218221442305828405158712774150857395452478744399540285018190194758459447508544375891308473081797851552070176864424843403716748409934861688957508131720229382472202558209576313017100656885715085613776264090846020633920514095446145696717593071219051007907789404853169578381012708313263894029898787702703979557645166545114684634102337787367250081865472922336205585322736882828467404401573213246727304898512638761654036621801404491907506809604664378184444229149185892784706151389070825735067797496880260361628364772494036766872836369193451133199518821710162313108402225279701955750350727180930283055951990507549419118182291850125447323074381943535450536889000433363107575051866542500369603785310828506108497146783814755106692930070851601790057851673135173893125619996897691236485283039546668920392685633254807032520742161446622600086156375734442019154455380173958502741841809726391726461153380753600930114295028476842338694943590479848228127674078450046836726463283602344485709694405592149857382241017727639213428918348985394607121263618452349933034555672829012509040550386886459943734496863729957844541525965659704567215310295342840586605238031785380176826679547131803488656689916634263334232621037820949120349377181969605271759070262138474381510825871893796705966896832824744399547925409842224632023681838294640826547896621497359875913021966958654563838990744379432274897137196231447796886378286667600829178100365511229331907700000411852311504670383405571399549821059884106642334219614169357933769540858917007853097070806856611272538455890986446286357146581340998930680326819750852484188441825496274413181490383214452758165475827891934044321928539204306013467673907487332363336376036957335013242544864280232488499713607800626950488968113482149763874205733373510022726048623354093413147531624913907930191427730248056151060198439356143144769115094713305265231257565752286865863766741950744139012741015376983799317790837059289627461655583385037056331157899109846405347834916660096037725594504873015705075866456988390812317549131065701443780320157943213834725433857222105796196380117908439843450379328045711822136402553349699972423447295637326238758125831176896893480854021936130039858321848795481552959489217736794306858647982523612299137242300271037883661194199752282579629031945868324872151001427090181731359725132410908272709380385847588698386860764539761555186015404055434147145148606184462115824680214173429819998192048725137779493064152201966855593981140521431952384594282772881518485744394640893603390332986022739748711413552680492163031639299690277474780721007539703532237951941920292786701484463044979138903594687202897051818100606690900805840234313992310390147884333825828781906375458986864035104027394087231110600301922613971552154286456925923939628807608809257840986455897965181290815890515372326011199245485079700471437207047045160060134148919874340204626728638253228967281378866728700340678753667318122194390883864759621304490635767926869807515246493747095993697493245922677023988951945803429758820248492384538750945260444673996191719065238783204443524425810951439235117953642651510456617683663892570094586150314126165889047404213825327167517237960211284405810302575840076471478806341846095823283865283181129822254921574457665744788724684523328620940940305286930919696888953898904096329310851172607046026292150112792590052225697037720579554957579518924288510107108983530447599935947045110725616002338314479208359805686572520299676095645725851657935448051965461437337355479449610366764178611134426416814524507876079011527002204743838080502686484885466849572016314829349147737559142190319637861897354941809281790626902450154710566325125126575363711257622355026955981579543386963202682178203456975851578481915368056525331121602612337261627160236817653792303491174956036221473174469742809960569516387856474504331510627916958460996709062485310776755314759206895501702060890361919881354473949661098602184924459695288377610918093995674486526606784898370718564270591441074329344371882271271499541808624448242249740512390001367658893500659590006224424264801553968244052672327271104827040127266740155985938006166623732355943302154630256173273080266454866440079165137451911441096998525509440495850305074771486855648907266072313734134870827827302176769337592599111348187026568771119699863187505417677163976331975338640231222634275001786138157007314779589855849080972470303932122974842532329320812514211562673363668733495073290344140099281644446792849747533605245705646108569372604780460848394896127110534286197233554649414687497806167412617435123026369781535934252775497382252270628595221871704428314669023156921627128810954302618454621864719243080264440378025009830636289555579220598639512576975773103993409702168617949509498537038586994465970878094655435967990042469509933413640109356170386165228879992095273871156913927405442949580118598009654597294423317928419486151650741500145166199802381182460430334055017443492280055189489925100671076573801715453563233592496573097837308985652996006200616990867064108924265464953492655790748963186799183337056710954594954013495400792955633967501174909012828281686864547773677265474422401359801612307891982028622762318260856521216171570855469173641955497987277146456787683685225468703633569537925203430852866120399970080938069907852267533326614494156434986379279518287715928681610455444289696245982597735920681358167188726187275350720991842069988963377574097752831782201780441739260668744864311769557436857561838635146099415518807173428709038634094018281129921337740475667279281574186662891804646816128452899704132511895526173760857002133877691265666144170570818360673372785372913617861873862096293998188199452105826139274648465683880046141440772739654071628521004477885380803575692658195579925909068170392001436575418532520471881122110240762397429342880641158721214477406737463045473221919735227161992907228209748009900673955085063589759706762729580644083435524834032109819271098560109320237230586201072851429083859539351252797852940030490281528647496058433949585366833767983888279189000883598217846482876185929666831913526701460417501511287470620195951695852269844724638231716559427414086686092272955381182005836532047348472394457088854070436613110306006621219003405344951962694139067639316539311402676331061714761292791107753296312854740207542330186310444967255947915362497165444569877750845965069027026218632726714505606780998759826619072043288591476954046771624397715551643928706225082956270754815511516805517803359655222380573582144462986793920614955743220926332599195461539497993457947302108449357459589791620286653747062526787314497100491435782882150573568449758206723733590567671145019820121934198976148821875075015845894499622892348359489995747080149310009936226373676111586133470745587277683747655123929680508171978425392955486434527486042845463673561140249915446329055675824631185031834675441213831634665403705402626222700930276847921247068136302220226700084253284027407534307911400589324464309341587989912973746827744292972524065133065735633481099050635561271573307940747262268611167389815667742721928879478579828405625688771694654447717222832565596296555657921639770158129202049419136060756762816259098714442450014324318934290411874566920273732548806261289775731355323360647103201826380758701337288734462291945759738916213928916443830036570732994329285401260487373992875672888330776516800477133875947771649111672407808641217565107592732895354744252809457939952976528562239197049699589176472980746918524769674577242839346661270310587176802681332958937571922352195750376730642759216929431842441903482412555945416765278171039278549508110651946086377611928472813066695194727427019901625694873871285798367764845379212565529545449136057225011859883713183449583463336081519312014821381351760803944949425331391956137051947747526645801775118589912163762694067455845568646067771903815658468905295341003191972463972955573251832547496675784754810794394599946035238961508011790667050251661254866789327731093636340652961265799832890946660028990980630922287747510450279764742849331699306005554614479683667866431342140191339518069616437121498894902363914018220870313461547059883881413924899641875613124736500863677991205913420733083941287441579153415393717468751531591189855345011453198636109731513302175697388214363758960961222875357244683487466484137267036270654138222487454584747217023067281928364290022174690981808493372563974447562811498906553153312637673664736187476553487497814564008066675113876135665999846515301064096726869780479005790492399617740974109397391872667757166025244964947788789232988662918533114787516937311153617366804914580390511125013694365521572770640754833498703459379632039869844577307395794749398168255365404014879765106470474893936707454404423358324018613217244740150893939684225315366485813906938542322102712051295053777138172521204642510812371911419031395303627433200735869924167775651537513608168632022242313425536556496326386113502841755077649412965171966338215974335139118575685246918533904618276965521184305423553274623658508478997693944490805082455737998141357386896387997537724039476239202204414450803782161014251992331938286558684092154580028365880960856368705707420646044631565869395805434092460649385593231816447866779776749639124133813709306864412207480084561454485336723562945552766969414602741455272448653868227281410924794647014751854544199607980058664135437418618290678518430879154499801509511974158056340037043512805216709506539182127148314578398989866617456934172379400491658491329046602180601655042003882511939143562643261961737640493325993412498213973288458592757442533497630253025477581316902461130818805574762053172195834195081943117544193219064749123371084741662964796149876387206657388532386239539150475199635515018723502110028004715985992069716795864614103376781980991319407220965279747515479396066129430360298400759294646530903065744752241385950809178663379934253395199123843870961175165098192818697714763670722210649709414188369772423370756926825421088522559381451931378646944645087488798847998222690709339341993362610304899741044828950600094337417194662360049874670236208617021107207544194964370074056823152120426340831818573487731507505380203431902384671881447741066444597373405276553928401845431304182094995815595288482051332597492014250359000973972954400837800359230214525028239972952129614110120140108248335183827545342230572362892845580977065411670862072568243087325396697810756211438172583551646021750421745464551218829789493527615994460624080691567426130162363475302190948277358080930863477615073448558172415323329992525124085438643300398172451020278257895361654419298601588882133404500265605313855709696508156637882835339141862084619257493232685876841302085424193597261796859084917965547427395955976964225728344930732352794396003493225531676183896646563096333302270364062002963247174084151957482963411958742887196140399829838786798884095676847742574719486247874869308145005694775594015661905176663699031474658288379660222547902304122315781441678044369999212525105363317556784844152259848358842786508740698334172944728836977226612575157065979491615507155978258318138269395816282016050581827100955784443650654224668664045642555317575820308102086584454724414362047812297764351539604790055474995659827106325777065715426251928527728737650984367923530342790774242372476833505317203909198719044482298474768206906092418289328644224881790829672982907746011675910283074901720744717853702800041754493095890052317867857331140292422595539349560183907118321989904372606786128041697971024679170442630609907126495219583310591409903433411958537541612689769351708747582130982230365847562674036473517225463148014675406807098403128324433555649615109469104797909639776282790874611719174168972923241734420969909972903013227189368760615408494803087562342737973728340277791179417428634222378417655162337459313501854503306499430205924393210055810504989188112610505475298506992120017246797019394081221545283749225617401141608556239573430175869468945985774175208908032394833060469325705376470065215265159240678461657890212285630134446740309844112300081755756581393912926826241639113351764741075405983920655938424333614753408002942880527434279107894068897110027338732721186891940798594334982063554234887440688780052695093949492833858017713548702022151443657725838487471305532746423699654060083275693076505814743194719432685987072586777099134502252397169709975860251843598248339272952672481118499205166294771995115583425374641941533852367789714031367427891751738752512875426612219139478891902205237127218528194298800179735228811145194219209446144227276331372220767146774659414991128261968957154417419290039321984303732297451855090449826740146177372654977637954949358573969652961735292073695420304393656377783428427597220888041571436427019399025063916392261876790005211502491570822300574138377011068494340544328289583546968262090452512506855902772701122896476308050916271461904914032188538108140499586618910319092003019522600459125989430793380681693834565829297874546224632352602440955316108049127631548827201511295796953995804658432630544491477871529607258180811965367939804260725135194246398888110831973587242998720611672781840815352475417162621342767384339087155979797679939585441552637065113331507411229135294482638259442541455127347630804981564725106070533145229885370956878510847517183508955859535630532933426425642832314959758646430245464204863472368079967015168777086004349882608959588967824252523704660687243920488463590428065796739599313381390235119652317558490853533138410658686203018902649419308181199708082359951537395559156951879601928802887424215477187069074446713304740611424461403278759014195022836565073740880275693313015321409420300483849467227791171460292293860981583890412169063171378241626719216963415771294136516793020882893401159921699889043257922930915862568261853723762237561151172207532634622245103090669067692768694755144535622618412248630681076501912636444993431653162116097424814746941968791347744551860133680589252480392014021575464161219988485027010135474039822542101053059315074236197134101887574021640906999243361605603612851677526246961732504310194148059172559541815227239902275653662218516630344553818451808512383440616201127427169389917042045622850177084836567451860172969891850616355170126804333286440786183759775768586476856324766640375248831056279838707527008765256375175069558608223977977759524475007570727007628938310878214786545623823943927261313639960635930926331425534451640094182250403396827011768597845628238966468196765775391915480509022575409040810690237928747323694983541991689316525378211249075821200368569380063522048272114923006489979942757022761580338612786507745116450355199895823934838757802634429717317823702782952643506793209522969777551567108345527086759649375097857702080397630916580735856723363004445230691740591714018778846577415304430126593263341379265466972610292670414190508066196097771192228648058693322984516211116422374471131634099190547788918988747700912832005232499881136540480010726503185445969972176074342788961647746269735549988498891354667765897655279879688270899530193083097220698262813948204171381890013522698088741758884364125278633184575462986772897752442608981385680603893899393737816000982554429231259197835639769990525472623623280098727742192122887439259477830729228441721009733552163621000172050396526076068213385577882571704151590752395121917116014473280862455292467119564017677045834897951748742987532323808951891132219809337865750888059303913162885005133565825849312896071907354624511969379663578455867499758433815960632618523095391754238759549579755140431788965665805044974637947376782336964682580949136095942163661168161014616614672578259988756282203546890469771078166510688956144694313105825349872117337712401203800581223429598299290799979349359824499580679002643098376111664358690165003513400420033033923779232249018834050543305051112681821439414606902075450833926883062872512597230339569503441192640761232171803046866122312523433751304035375118766740588037957388930594726728201392061725440619997522423685734941814240022840196295089806761240884562578097960293563103263903986297276502464887771067102545115290105713683850161785206694712054094455709247995179981020509762247091859080972700086986685226767475231248420518031414601033384898085407419483776473149756146831019772231714239010533135258778523451328741184882626198698457750033203500474722204357812583421740835815109479323443793670361602588526991037088580386508828884869326743907425781751801513171779446957485037530540319509950036762571614099455573188564207567826622953211907186903506881742561683157516647357833852446599207312483525529887562549813152206663239780874325845260088544800651268173827004658983428151264558647463890733236424804006769781214405282627950244393155884357741855637949258521778866853118520648984869732661032266624930163376643582511077339888210792167861277225346128694644159066207188186428077734608029235823306026093766733295774781940801080968387628411976350250303961503800228877934477062359401013768979845965374681652881825528759618071126557463502892502736643864223302827928417423589883443853816994330342903162527302805914881482205446094150709788369011817802728141804698786499749318430544156670253746135713291980448469559052004999451446516751133219191500117652081064088222865772281881535584886908456193259326130428223877129756066324817449102414610984800423668793583963004584093255567513089427185565257773068335792250160586542292944482227068526113229534954930136735959606438559589763979836058268091928991938336237166019314146732646377256228922406567635594788915114504173280997121223665522578482336070573888298065209141313259288670423964998695494541885622321344972595096140324730593625573701460789422776117397430465657199339821863090315421368081741433835425157613671384441050727693226912088714280510999688693655242023244425683802552144419750779607703436245880642227107100865622748603728088484000018947902315096855227720559536044283479367434775136730718596735280477475612884876892085585966876402865634129917410385439993054578214655296714011249732992012862392076650614224496799312210345602491081532501643406266206811673960871206265849908901540813086270331532800826839402814369877461057097060569238969854491503887429421008066947092833707928654656396236185747580288049900819126297075275626729828024581204907126074774116656969546076390115899837259638173713204231226581389541582751029999203347779391292716087209255417896498896445105077753433675927910926436062824294067437344425070184855558417463297782469614272981858544459537778609803571966884194486749662453245428478516474954447430214192262469165041349358846993539886538170492406765135132076474808219770227496544259854110902456122197451216366137117536435576961872217546926838314038740442858793332313632681860610896544030177937135232396368494823256976749390176009888900965619571322752932440395027861678834047703660950596221776005575833443932615992440425251391466426509504212275156693985261335448939449372353375007016805321372823997984290002662412203497461128154503972066994702789032662774159093102986966364630700868526044275801698832382700943737420759491517478640780454139096745264416690769732665637356275908763554089065411252174264071626354879835385499235126519816854046073954528687999856179227394265322892801505962375738106110988218439381906455667143182307409218907819256563294347650739403878568166538989810741535369748691953287181386174924696225786115869314542721152490912631991946816810144966651636071896982753406402008096897499935501871788721150202868052828698948231523507309356446527741025798421401835180297415184039664842047698131449348844954402839938006448062781478807604697865420335328589602354243306639881799644332205093441547759623934411434898773050443131055210071448640561445940634867213961450435036885816898854983477136537271864278777008412338037778000091565141264657052141664998253358809939888996615296723791740113158506712971445940666811300923628035057329089701000190109751557532288081203313108500922468347655524539214833596979065601064879547006108948870726198780637433616465550558610747816467620501240462268303322904142150386991407936824772507428897577258111711805917158750614548259964199476165143243760641850650011365520975864073878628813704393071416428846856970711974036250022672975800482656635540990787819210633908278642622195139404674619390540768692573237908323752987567288882557639403604935985045347793954795094099731350233848783841075736113438989792210410812079948375587130001579182245418073094571925032129128717223355919075528543175673723003243011623517366333792316861033422548273033103252333734100578825280199949972576994843038654746576092264412815517065941175689370321518877614863593580481555888766948532124761132803647836251503347745485549405517326209260854534236244688010638416028833370952841166081021688089315235120030561471554138541344830125081846022771728659864284527472701425052257877380484145776277729768773803068260678952970186164279660246501758229311373586476559361545157258203043206665290718738221425994252469546622500877291155203996710274413403989314963300858051821690302794909134140918423800377395127292110766575914682097122639712283246343944456967407199379704001336382224965961668559934629190235354260716867588542314033419324374137446648470807989832590422652611456545481261669806621689424413153739555331317735874232650822058026566162128557014371461707901588648195392955362254450472250925826027572016161349938723545454328953157483484530413932401378785341470959489822404777569411597388379529829140481697579207438727999568995482263719470316102658538354086002926758465813872338522475327162397122326059428801826866811330850398202581835495272292103100041896784746365470641800466990170862053554439666904388668847575863813452222205441675935682908501527983112982547508210471161376662224341012564737660146235340464286777818911104778737481014140797538016371311170447038646731760437803942409886152951689370349866437158461231129443299779009165780859230115405788406393113196973383940465789238564514327495624105024047725311878135139567730461933547512661188728055772980719163387346119022646100037370429907545941647617257728304948297393697327019253791768046744388821915853493014528977697578451885884908448824765482809236720141537936343825786625285419224794606390584116314325771640358855373671654421710313394010176160891731347144497866839348721527753718379305046276185839297324032406717069617764385713309299069857324862972515053110300550348956832727270204761323628936650939316074048605814891036503206867389248697272428407134084866414965761070508441450373291467012681766527926000819622809155732536765466176967602431978364553423477022276529262684230511004569665165886260528142362169080744410187737287801878334267235333715402071453097096699740362580409183950782592392553704538936822061052761381895567793589860186799216924235287471608261152885212867321433302404178431260971215609384281627535326065389894996697097216422214360908180894490188158899774706446425702385291603924997800426255977578135634739191451206955551128936549197171867987333694494909976094417142288989062040488304775417618754870611630792675518229496486476907694093499154222661494173997360958105991328242266188002730851644521755989457845198392707550052069629128731188055355396823685702903374684985547464373380105845564368790950314117311768746042907039511796587041138791522482296852042287933929198608664982217879455708500428745472911987227668343119612435185253749588914419881781334051978437459507158479154388205646955846271716896585770698158574613300089204788888459485045526730897958341173720935576528090425924451055296034153051868333931352820269967692258852667630425450264363961890710571501507705896566939731642791253108858086976140643789983793320307202584573242537248143936691823893047906826911379169856654819412425703805497299734715489156304251936049367390866551939939183118834962850067868846481726586279814142463374923855234633028612655800108221973324228820196520810101088773931972192328217324805642708858205623757281341604191387034098701385587285583386013181585202820686722288476545593927630634612216619000555429792813643710607849518357188929396153308987387869369579319252716793678749344034747243922150994491672770136445230159477323090339165998145510457997492832512134377908416693247217524259052024261690577186677116697054826018408831949652708972742469418543205163295178976453174255546663405781261288754183924821625409519312499239239939086350093888038033735741344218961209103285380330955602902786505605048959521468419336480828980357510565534334986769792353330541092898362068145299627703882195209508201665584113500660586348552299041832925127865324299818648866709500973531759773932493064089669277577742968977416552812431788571670960255518905928966821790831966315816954813145384092376901849316711994224652364635355200831614078675743088220655589415673590961875634910871943542469716257730149874309221512806432661722187673171434733535701009008824745650821986495252486825756053282302337113332158976721149237891610432383795176896203480821521148143108185172222947662137699791259929085677444601038082833357982700415899345041364438215878644279460301009518918914643237805511976088033422577250506383676375750316048472001468345359104956192637472493040734826020399289632514327106244913283785649548431090997342825732524116324144872054596908985217695479982790739756405409952589318646411529228177601554685449014179147294275380464868562790125116365603890679338395326754014542348117829196001367903666372839282724197510703559916324561566408599920385186788645960755454591859101589111849900787523958004569288018018390163679584978155763564166621044356055426307747322261691518972908949638079099289983542388290788128755015291893719516623463604938247640294204194235928568441651168292133836784511599199942060745954712267185031339107484166043099331620010379809555457276815776950840348674025137813976581872337391410470705563961261832518623903383966653241703658221912200634493189926963302958574517177752225562982523829356553969331113789586609799120525699121987638209043571753201323446089789295251495248420647443612706527472855533070655951174862141889048661956178419935694105414542983573438011316513668533906952479550318057396452011484535770703023212567564944278897526468964720686582592569098496762772101397747315297355092653862056951211154585357365445720265053175164481497480514864573243496722235918974127888331067078828866819555972847504048702525876028193563037352313934590654386703288823704094601098476112996629870477032056345266870288195442892800307959472478495184586882982968923350650262397089709189551952690556586658468886174153139175745566220450188066763815557089157365428073482565666355719279520398656670239168330281798190410494201554902018226330566698113882708216602997479447543735021134784823668361146440991770913473453973928257120695214979418922217452631513495651434952199304234535824195513806823576084375203045532703878571928107717834055170900143219368530888304047589824130662215121010488425377064884077353878523564302377875402479132784330876776381436462131669093885489591961870845239818363639655593759436897939367482868683080406835222071119898689924959228277544440818549810454150285117330962779439084789944681171355079177561808295150739729699213089371658678194938090688028607101196598808238492445924696712532173074944507403201325992480613104570742339358723689725056924978178078566274825727124569636761364825011513443130429617442485243951443246679339962899904840232329265832642322633060154407210110745459324870958486337238740883285648501735069952057809554207640427535502429091967980381784697272070486988187364380436275880984187628257293011421195216793073699276512550874477958554405499690310769801870658679858255419759895977157182960257874597642093607644514439390261176434438261472280879965894027300044364760104155455410572663205295778396855764795313695162182407858819158698395030284858869417413921809630142207881537783679307740386962786816248418972202385674910137576356908046212240617176453759700372552879081417986394774108315646923081677790920640672071169520303341603603981464714869196439365661414743496404263524642754353730942789213584031030028830508516237867247066668151401353568713943959042292025531151700367265688633122324232712150914319529550096425773157604521268306512687930681314670461686472931027089523985158847634988477263611708527364789923318533805638677896794335686265954136065294067381868448648542922064145825191343212532632061051189031223138889761006367245827584690574879365462631789908491459026071682929520677273449546208511057834000801755086940028597279568084089103625565477976337360784945370835127307519399239251899524686182925280979443838006151035201800251264531623836703284615980755476326984806163301506092300040213119932634485257652810300313775568086201285965018426372896300208025092330916712492429794335347585555449697007720561156652456764272788249426856449011041557367929303592933324540780885643360686275343648650853368424685286765140529455730655250489832988634978580926230245124535275400653550073886209544107452841059929415028874647888505410013803090873566767113738660781283327432409594456998948109968393707158731691508628988430733085706499490491185838800580678318352644786184110678887601349603887523210722592129406879517278588413616562401781766556215692364412464311074597408879878186408487840436521016173475660423914999262892096699824061248690496756934323751069304262813463439813669512334188374858781847818364407800711432369977953673982731473736431914593378529552732171895825732324162111029268332573851482366070609312334108181476059857352697273582483192803691324131267488057804283584385488920608546424107091965667087297020662893447756839788201209616644051304037287202196341719928173516198186387304403359210566920208179226548253191093736917419564458009289715292986914500585554200200864721507978422427186461266974854911065066624964652223440000941451514690730179636589353507064856293193497713339606664603496443954215716293495121240532453435721901314073036038026250274364609707942071925457700066678912140800997417368207856888722127379317243765868113134084764693806695017637466608598489612914829739116427327070509712106354893890794220893754988251285094795325074846533889609704773071378905818091752076655120605595414396503749331602717611698482496489047830603255894115475231588985161198121419966337948041717030365160751703114939828287101017107928737875194088026345967029354973954479348567814587830538831579605768601409834628237764004423589710386720079380680954884193391156855021433993900453975564013796684683412599179197546263523671287222032987586757811223502463724733662957577014736790086959604289409545540133219083708059776953138363788894769562714892027088902240416317463912943525549926615964538623895455153917842078445829283055482121751328361162424955193853170727961157746187757600754252959028231085096019660367847247318033555058747388207025262698415950996108388964877849571841464804587587983011350095630657204717393227341841418056772032499574814324733774936234264437221216624977849816587522125095013671999945725884880286984414960587078759594425081898403493182000644340784887952753431107470163300509345351597804619169475941259856085869208627768237743837099364851310426397551724421061219473125162763734680455769209318799673307065535389700449168314955554923897338908648278783903604245099604619179105578612220855743282053400261007704964025603579140515535362753143445066881272389066371530488211067915964265511693229053748089215906154269267846785096680132458670709461849421378109627383622302756964625079385049580892902471601900465019698780520755002381967960320265421530608666954820137211521153750559494373697298756246794365449125326256654738927896772023645193474337991012802749191629180760780342732651015950609954659752739052889551253805806097400953528579570980353359333016840982518295330158675292533875701912194027223977272974264427256003687164940435432397114837370824009030684739776875316049021054359300380690843534137673462646938057977790967179444316834584458945012153725763145374612016834042961959569754876784288260898661323418741557878560287193950869239624709293968475225141056980641882324425611656778474265298205395951943379772533750814518537470199858330184411647048269863525896473763788423162099934522453343144270769318338962943545663227773266340954193573301278551757549503125456675083689236852905557805005881218062070683678921011876039502862433322202749000372570910603859582158384743808742450633839664245282359497886067113588721233681993810147924812967822295552816297911521954432341184812929090591483581715577774142872721606622149127200309771438005701050251565991618455545266313982417450758821230992314508828833019842955223752676449518496037699258252242632308572755549643883559254814868922186192865814203757532195628636395862890676252204326023603369434928573729622908529287105900284764883634977905192280162445896322307008129363892931672166523110297352444345321375062072916180054572478567450373568596581748497083658842339567884563902132849794669397392367219025119807146743322110515227320579352512567588093752645903029372774288893845119035353839822972787951412887800481813308731457322498568052389733110942040744992788765258265243288811910665531944667570917630621466774648174195214594127254508989256078424418919749797374137761707147063860363434796260389112649268264339972436861163483621008527078291927630241297601279504987373830256724288447793336215369748695345793152411437261329487499590114610492154918664860190238688179682188247576800265332904510855159635254823837504570174798595309753548839062273862370871717945720147437595422689727028712132611328576963986221764710059246218959942125703381969169246473922885778869596758136383554790374915976635003607449521368463055246563070613258176247643668809050628227273823207790805866136813805337091686151979056014074926995295579287858894026792597629796780187997623756352574370275706092854218520066272695087618496369046926858485539772089057886208637526590579348634737601082419182345224280053219217509629711335260392133112675943135546472174642772060407152911349343389260479928545545258305235507613381229988056197735657830248046817695229267061354453850113447894619589034174360782094600236785913211813655156495187052912756582951140624068087382537827855557410333280979246977668851712311298843055517328756447338322118674109888513298858055275455027805063664778457295159937622844376486006484821751768930593208109887978780885458134221344581745185927653991606884624904256024225098784190584332729487054559983946668945242160189246788221984257727835243763024921741000420395860491075124222363192060265409547351670652745377816053253022670422100951407387857242786769325634651672865443592713465097727628503617497329234745348136923731315364294337045640571329154469422335105276208622888348266139329199274943751925999922992062186694794392680337080796133660657798656386557599793122667254516991511703386679061486494781935777905324777133003167709737771471525388988656497869344040070634353355327179848302595112472535079805147485733013508589424955301738058437194779910953750219849665466219907838404702592474649744472208007333761494095298006741127817148953215319842241070375841428431413386952589740031311926933934415275941216337127111606709424413160391453661239043187287901062054504066711089316364525692930229722275821143047660220488902625474991188258041914687914064811632945170706519720323919848749880121772675173787626739838308411823171736582451709963003455876378830564218563627291956776397876763055115663886367241680451344073393330860179424165651954822674576486534292873331131256148654196208251562093943261322045614702279120498457276418267953152077940154537210046692394886533514076289069763573818586825935426644521939676276090117954737275415539853714180765452859129051708516652569943017798671687929962931092383849318586470951789897133151036602888880212190376633779408787871324894481488197441165532951728819019799600010665586571018609232219679638077632041341335518588402892379506771251353518500007329290852122735822929348847855882889661139907092241734993302312686749958984459575279141848879485203651617859756576669776080914794035074023936773299004137755902311135485812120210955271172214687403126699704469383028981027348561906088074281216578808834528268320834217545471547346689966509328560927270745553285383416614754432749897435100490811611244074674911368372191190618435758621022775127494212511161649631970911907151311239364664528133492110426367541756251122081646980260501938791935511638079852317469896471532294461933236827951784506377926969645137259649716395872423277084129836894161532466650352693683913057959473041874664423097359656362660228568768605537265966083329665598852653062424828242908745811487227984574564750436697751160590832394490996964649473872186401920456154105500825728441611885061813924356385162598720566331646929151355933803696732901291442832021820744404190786005697502639572502773447724625506740620924502981431481122866723318754004096509334744519997564789601656636280520403998854476068926868586289670195808625119479700593946100872640969474504915703416628319820902474858415931726298534066876026712523467150683576511433459524257372013357869788228529049031106993830019225408911618529615485953286224707407978051158488533271195596897231370032407551021250164790806001833385472093833628767107148237646275719021646024287544078213321890334313650399273170294386777334415854014080952936342573929649883550289125285839655111519896955381846409565198686035262918136138491973266708081706088147008748663106364285987091463223016579786389662393268974487879839426634113756674263248292750246869118378967430224335379821145803583007578833500653331787024586109559142333955174021794554259063741476731703022698904940573681830800267596741939751061834573894872598516872735872145469318308863875652070984389574597029791195430664654560624359281612447359613183484162791264636905934311765475692369482640823444917096706475503502148298467166513783936821175406594827681718779277671515559244128468281651092793769211991087203197763884263314614078063225265521519916549638067652958316403711717714170399842014417073909192743330230661043300033623461161571930606418071470250206269090187775028756308835337898084713354200041161507910734258989648378750565044498514890149465298790241879102159859609682873214615124198957970594412485374732920685054026914583236915494363648956933421426924511577760779159610010917580063892956853930105514377137756877050026992646403029648976492069260796414266862560732111057390741163094181057568723965241959809903088545376155299169823099981067749022501153420801951292388632366694314848567411899388742432048610042305968109096482466794316704853848131161744477009515460288970646309595507706276481949355381155978970871319478063805821685570037967233846247490209976486208329857626179753822665409774589227416962145480358518644599288945132926684975480014480196316216188051624921131646402360537246696589420712440870065026791649524961026206329440094872330439054044573126926038473622009162934631821789127096418252336542673701252522739792652642298195385043389399292688020418453885461929554022345543304622571067436187256400079533874208168963918578674492538112031462494642995852939334124250888687306247459439093419827874675879332834340585580187742841178835276430596747883465862754450935132022235670612504505016233975766906944848930095697098916704943693561371037488115182772707367917433982699881315942056802942909344661348590143847813914390702804426478223346857029042759338975475797918932035875967796926550204956157121433700575108050610743676847747618094600488162801788303280712627674964409259013955712037411501221615792351672406302167388742932176182250236870040578173779870053370584394059322307394407653894723178042795643908628227138767677686920035501577417245343126801031297576960417919921161670604873384604019553978335829588797384921392686077283286863552874326229341160401563816761038026784971180449164708024277651604469331085638026798152786793272902695066204403718598190833089015386919374971274101116543347983386805905596797468049758478298591917685901247487605197340488334145262767729596024002055939767872796670465509466102217130796494531638181265251810087321670731671363769403429450158525764332031830851473742983516113111921260500783437931821914277076084234843427381877992388561536133391543783624998326425944302217675168312001672203309501217330667164273811076625000207616425233064125693225662653263865383727595136055388889460149083536092905056438925729071145738226308691351595715725606906057034654511144152564004415732873385678587256143432495483205049329382694139994364460693721758080151124587681203501241718398452547140507936595140834199948851610007538619806581951698784558969661662461985671884622419982249232521172514682411113270988612908799680475475694910918196217289802282518974215577170908837230177113932691852981331967768363696625904855387650000710407405142315062702951950958155564180129337820984933155939284368712126679236213660117263602621548370153697894758016321129176325534783657311396056022764412739169895926720908668234000479226379694354637176995533142652125332969053471663086941503956494924995047642235271087537684533852227930055362417778648741176887885946172909738228263677505410417418636505762255869261630413882786338545424728342237590724593056082492806761950273928528297986043799270690018421347622373752122441477778222103747879404636648554885728985229602413968624371261484823634725967384203443762166973576013147575542063688996536999423107750556476673065494803435329775770434771946358841484611608685693328825481435799918071551067872810820902178594341202754254031641141470376172757397504781462898990019863085497052027635029548351149325656298236817104618647651171597916530561929697658563973737123369941070812355184402877540504367671827310917739316160297953102238760917725744153716343686591159867008423238234507821911083533690035680603157033609611040115579832518540676616979690531508096433115879649458382711938489014164060397556592050828226470584976688342077407716624511136315859571841514671683978428118337291010339263249440616290513009407416829786715429498045866363662549220515839235299900854270718787135150492831680057038837586805036254985518758817688644084345367689413760535715800259853398776365773536889409821030363444756138648566548506025504762594240794651642931609242316735953885362753507301518908151249661893045418939262196018802365436836798613897282666736998260672591372533902917456450242844295407121160412242136559124541751904824445127097745416241343962024837112831494011957636726174938042826411892663403348410243474600666330409791441972357934151771048193350422946459921602413005610791822581632698498378454683560095980647825691866348641891991131857547526503868711874899090409245616105620713753091970874061149327104316572370273178650534970000350213772580478342393357147482471817494306769379917897983502414415602495787993023500347196518978629674537047097580699722113288648980477732313095406832006480408236988722395703358811904018968797461413012788900762186233581503828307245902962024910652669632117285002266278189231328977530526996115815598168798709357611403828479717787265530327508050245355736362877817905460690028585672321503919523568459833951566538497863615288753479884490327834221615769390385080607247122089407222553528059395489631004293519435441738865584977064883168143353326022396417448901019699328183494233029682534444812204919017753443460254226974114541447807931186811555561760887556358128845218745782140105496702787616370607919107612175010473348481692724706477002997407898875889192213816368150946055737633397554581490008565997277194984807151025982005463512772690178670624198716909759096319853605213032758121375467090200453593091475967770380289328177979127657122726448864499654243428429755633211885229057018202855251020000594034023789775859573958620129532323262532135472392858726515160403010269287143958110002169960130226634800075598948252873936086000792203033778976165543270156551151071570960614405507409342885179917706019355052642470658194316719980705842610493648932241185610464617481015153497222342122653540691303403747348162253906804414136995143513640659272530018797003837849141547963598953221192834767644265199409938962249688356071810321774561286415374467166361459051543753860212830325149449509303538850875104858218242716277235749110053314780274923135425173837695833446315375878349900743918087520811382752159327956743177480462775255328382216509878864186363919119942992142740566119869852202250844407858875533054185738465777440307499627825281659722841308440734383397729583542258548697880910657209830931782192946532399322452654687190685477619416704633041283270678226368029243440604134432769941518411755037738299913113577159567251981195583630640711684317481019412424323105878467273362209321344419739915430981084146407104147103328306937790557195269748774903478610560686882747033767256404578467075937369097401465053863233728046633586061345612667171551834614003077280990580608119459742074524958359291372499568209409269636483874424194306674377764987263672220040309227585285155918963681806863582336042614473212297780377171113024307910359915228178186460462919939204982047304626175752181582931821833611072646377520306201482576005633739772186327488426169956376864872827374517149268831644815401992324284303941087425707007122668070144596324897873589258952138738929256217169189024492490356888698194095604016661226714495031780161157782067310177662196325382558691632825313038880301406021509278794382752731824639010556429206396547866659646040785061160283087153473031340630034116100697953316962510535637691138228346044331380234792479674909877705024058900288410050454956757846364401716540345763284174946388412009716070871765124885582594692151050108428105575847228917471759304634120979070611690097386864884647903219834733959650522055618363377522112440884142366738218779040716221777931958071573231126908592370423909218577202398355376457807075192482032813390848806951028146088366697892371536509320664078584150350726115655346773273341947746761932174704743188340269098307476457456590463787744368769826355698855426919029157727339125164280660778020459204201446315719931494069198894574582248720371514456452793063252445986614578817150927427744618911618025914992073536670217152774692990409708945696858205376296256527764917002674368755324695307470349976945771068762693111713271618461187447278322405409072149458287510791935723113643775517368545736964604869236524349453530851137169000318767318010055269696163623956920086874030392622065316179615166876268532785139838947533895668432985415725090639414089636364552500778182219645157455840121006592523605441841911621481068115751646931224316891160701281941386319635774216025694963858377835877592774278829931357510144389296383669742522172066129774124922798643864093970732489559892658296297467867941972048730334295508622235523874754926611354540540688215538642151771123476954076368967212033647044321707077540626876587736802660474901664966927951010101500699044183733510128889618659388326708892390132472475972200021777802873408098811401801400810122617667577038387236645554441402831688933070348330946279349157821298145233412322922544957018368458738115598031428248625592196482993094671212358192494886888967315383224814595021536007471478651224695098056833459119611785206745131064577753970544083330897263555655383202065437961538388554134691238959104597167551884179209772830720595412510053925076956055375417124444676328485247044292615454660716019670816859795814953474762769769338865927549618017748586944674831847128754943878628955021315913828940046686581917991216232577006817118338971892810649041652210161059959058539242918747108071549464832884897095593629183783876395986229940433990230770319766350361491942677634961889695943324648703557264078474591248594522697432088508465101192728231323685166878149175063023230455323443019955808698360114509192690105555873131532456636175139025520746223997392317077454361388292112158656556027885021017774968708427202005533976301578610246196741185320053099067999756284665617730218399032715272007578683146795217818172343259076782445998351256933407516724271750202893873321845006477870063781147548799770104710476941378495661849528448751739046959353849938791437749420159348088371420144429547291455726457664909333213066365073599449836908069220643144951330062703247021347491682908135807380703518873542191689333732924437581687677268007989009967593008696158122504723953641610298805134055816891986469525205165826892885105144623671060281011592361593392128164656386784767922622470074409381641440748260601328472947484677251685355408973746957993210406787725581383335914739618019341144524024158776716412492029766796113488975213661647790345889265764731127283097762832129096853878572823900717928274880439074961159465695690739036146202891247412583643352748141703684637462551062976266087550813480078518523611395383759856221387599986816649149415327156917089234153704902683068827264262202731559186114689381553362693060098494121650872811770964318878042569802950589861913242972040075248214144235282679539272903660926490850703430913462512124540419373955760919547018303875237762861022345653757348333086652085327569020398824445210697744665827644408078568013634117049254710815421526911533762285251644320707924882864289007984979358758695334769351609978608170745733007183676882852704178963071324301051149408754991226995107595013726842796281671349209059624208284667614456973649273738232304794586649365940260512385289747569732828026740887195533878238987450450533011049505905116200288180604806098065318830011299002226863190629213089410564509508808036064701503264466147129460541483946215052293148027667310460495168818006941485641386778190801759058383961788200060077679236461919873092210223059673260209776035076540729028867122909273645381140251431897036077359950428789721966739147839169161408690994592581953703172579906503733715537143546924223696431528964606678327506913422316785855159137500497076743524209574466753247506916151973840691919325618318314687400982957578565628432647350465826953561399520875909595537708291658827338018961994219138631503410317989762925296523320686469720002880270216136246847852062021678344178580024660646094842142884653231856428797007885464672873499756536795486371188215162116480299097348336042805553024929628466069159468408681772454277172879904348566140312380710523381667937817684953260380805273272590715934355963612071302000464015147663937401706281846388740352975575421134536203349463061044713087508802295277570688648702544359439342999123354602895189129292077272952077989223985528033510981017230160909886265692315290480839357285010319517965688362571705308450292755076121782939604680941555075305188987164139060448862286311271738004033259542473900848641220364502014928199241298234090748619775199257337752766092432525495060548501754552473067153384624108950020547750093825574041846192808465535310217787397944235404359522382083840000065436261712578939292485157019531036681997398950332487019549685377599621054570408431176194899606278924049277255527686503224621416900378853815636345294078027719961721592990467938694699977853599226029838981244502528180952005451035752718918703018383423766872051031274787618160097248155078278423807405853241494708556038069006720563765242598303597273630887261281911350679190373731601375266159689083553662359105904476921691798882550054459727277302652537573575993117717256432810378281145769199964222553891629292814266610409790188872895337362446201433448762011765084727299407048608372881823993517365885790075464894451672102954854862191234725956132863461197159324455210605225283106570707761542403179747598000187738699872939178541233161127182610842372449090224520506617502189559892449390552378877808688860687514402345051148792327312023288521774323973162909666707920953993801354727981616824547718548822564054154149648040220657689121899318899093919110174620288934104770368883979851267953734652703521071015766758591755796737627209416294389297365540389200747112518611273699989628459186492679936788739930159895136561050796110452736117823363924513279633557418028680146533392066467084029283231429491103025653186154039333303658563368878977321540882605419704887486920773301074736904068872192658650435148168141562456086588548529079499693158032303375241446408693128171883699304176924608162002264665371213756980860370838660234192746191689040142740026430963227369836839624817495858504346480571428292884852128377239253978804537992600595368934321629933530369599664580854334269144130282112562132954833568245005200462450388790121938997597390407902875030842716114958240213354996656805760080131036602875769996100629890390753521580230114568886001461527060577572772595685546325238068062910317058549320836635451749606037850765962247841609412116723150677007555032489381288002984515135051786460366904259405263120113923793608743320581997084574789196542465236281526547108388968266739905341970654465979950088000816509840656720226455825461209480275655332391930330433616729201229139778264122418142449949739985939579979582696250000395272104165993224541867808458552339287466295292311182314756410082119812143240593291269537779273372935311411054322928486268453395891201260203910749960455388035054520264730427639996804078822809437581088755911886864707856797717635307251714467915409463055273342852831060669313946327882848182298151733681664050885427719200326734817520383343544604020335418347784354981633115923992116902604276366871645386319951853766027185905810452325917025532014898160269715834424899644180398254084055089604221332881172453625785871805582293495313446169507603618588970679512062783191348677200902540943623129367670695988063330639179961387260822559404322192785566809503237891309764428370343463051619562408650792985941195960210817114157529745730787583917710739418093391895516127847042321335919693699395107009654582953774123888048298359124772524847266675976632934533717698738258608487494684008779882415471713167747920003118523206210151313935083439109012569529873649684369367457356618343461816862553315673180443379044925797656129009809213122119171810453669553841926837143958122052010646324109819713265911150755015180272096938359755765169660331648702230955061375662701586987837432972489916699964756075377944760918319022185152210254291623232407690074584858510265352149660967342734304761264574148713709802542705184038380720519722226801606631497899667176201623528539738147036564534842686162532736971625480147572687469772316837594177060677493100619385089394856685136916917748816212542579605529081972919952541648242361804894666646720415336388213236114710552688364135689308885372392403669623223364180557567003604571154171604295732749850884936393969225098759545370760718690288275525191373372711265436618387161912394240904318702150894602016906804487745118899594364339500760026827523343356416362403580089602806213135053769987168223234213992550477468157177127918321741151337183579155485160794832685278799631940680146675303176823799407051973493820796710414053476279128848175189448478198119712040054185974314649618729926141528368045055725218783956909275532007737988274045243272208185336685583357154206289324880433857908660515437210507116593410183895695786397156593913425848717017860549400872789832684546872155857426404592280619688481842033571177419058875164594444246209568177484282909568220800534737690014952066625036481477026135156432373730404183379955983885460078151355627065271517598156881208290160342977941424164282605029164515809129078334009311504400359989114041829966743495846708457381199258539834103757270775937111267334065957103348182948783702392664692471059243398946374921484019270632735770649998710189926860147062245037048283826890991177140773407090330368250363332122050954598426649889999600138751765069859003928916934977996580704986709217936801576459939439787481421557147592459413139381128401448321420255675015213839263076168648294309182398342547959516550371521316432865862360846757936391468286360610707018028642690584498405290538603686361359822681217984691309147620945786383598141537626948692315902139575025361667113384245378580413715808380025291409934792098050644664552767423119832028196478048956528031797756438024436168484499115261071598444873255943552120875393619215957553239870603404286105690752222766568708375583392375579917573734784499878572525723899897378869503742227657206603451696082280711994392764111287103323865656514119631479318480371523593446073565463823889390310251784516409704531801485550282205794321044641077122907154581051122104949983836990605443990077160109378861834241412799418338581392529047206789022273802026790261492763419027820537170008972337638177399466202643909900367816694930341246477708365365293254398921236716491149497266794282224356498561830064191111204454647461771937206142327634715031145993364232491235360265375225571252911925714683579696098640232954875698873228566355532302007025263085904154588633735335691094561271965133915812846813509806792338024218579344136017158961247320000659926163243475506093876496657448118918820359302441281623530577493873100897473019042524958411808124549152606023321592963941110322854140027108728319163456786354530039193728403786747025249220517318493127299789613001261826607329799748470301253365450596575698244745285651240157687805572857993699193092795451903282571391431081446629777132839453749672311025442367831699726774791810941051443518650072983267841769965512784832577401056203025863119128431969674173258366233812731417338152655646093024754908201819836590895196429058591177636206870749569634466701307208418083579015453620514421017504541686598420488773729849910778653014118818570180345946779481271647649065694350391737836115115560947987226212731448561861544657788707288848302755007358000614734729583045732941587705055872929266656675599691152661785132431401886230758532611649733281651066962660134528807249594983684856257850380631036473922253238695502074939804474094379373220046445956224560325468877584622584295697369851576794346151609247939407969141081766918328302762933314947075435171565376542541439751414981335883992789811240063337566301192749989287358292924277841464252844936191202037146217190860820172766630438758398618890261313556323739205022751643318791441539155279843845201177552653025564188902095128713900377978262271923669478376697453914945693722923090507894421163811285792218893194155227304593630416109073710952937516556109151919209414691901729452282400129265930207893351078795884979723540367860595953276525210838170753020870649361512291715473577952288855793664228303794709122873169783931205142135550355354081669175295426433023934870686956704133610056463481703706626424664036488884988428337115696619679100024020918474739895363290849717965408585921596644525438036519454370784222536550887578046391996516990245376618336483102956225922627333919481998675137138768591985392906412580781726050348283051931139100161289544192605897257845888153092148609341536992558626727439671834993871513539970543452779232529119327054459774671434351011371289256883502723085620172238820535850368651451587942703844634048191858944926057215210016708920642068717202730386614556735404867863359644936974157417644571054847040198831971260049962761336870056556333348075815408385915354681526526190022776976165827045321260811657091945147971207965355659017722078146987747370335945738540312042051718662963932519428031114012732335088447565466393110637455558966490464157966888659389753222451261852890489188523509340853983702070653466251428895996910987138500459125525515160836252912267887955776386892531298271336707851688396432857286118813544466180855494118131225146181614677221126310171859049270759842895695502235834037333070472873658294963942171035780278816064557397988924107768075737105649833993921009904673361581627080661683443070439733351930515923316716467668376065682592917593599291515379742919318528906702036347250183474579570474753948184534168141759710884258852204350408113241249996550203410637458825795502563009224584331537386358122455018932829239140105612452716330916159766674291523836343016615069152203421361902240507134342314354244823999995911783422293071821914963522252777142741389778978013099347783438805387630264762398504511847131036696242867474735580741720926136702440217790472018122084813188128409677374871011812261977672164355543595287309788583481834699210153281917139502919623450834927433984612438157791919590990449038250424739552515457859232047226186464112907999969963342252162848286558208183863038853556912951227268715363610217083115285238425043790894763370050362192875878835252558962223447341061638738947313794925674278634048973847219107178047155287485200847278769668204542863024973991346820095913230502463895882001788672362457597272871328744610133720142536065390615719390058417391185576192424603676333631874414431147107040721246191975008434370079256839126120949226649910308468681496654984727110195442514850307896297511930306172305473775837016557926922420279465029435060357069850941527895463123888668120113776433334548161038555368069753842620795547792953026742792079109173607366211405142003218933087478314391168974102388480345502997965654502832603349926210050588016499758344614408865274971264330179522156697661814404298882936302991594326958800657068230070138031022451846547445463896340414511543812839600864688619364520962034494374503883559299010508060914842809802556861451308954926235949573008356193792445747243148421446435161551297159704203368171047188929820531370442696152373539882690013701146808948742037112049085156295832663904099633191965449348799044758118098919074802893561528999817611197854214962385635478249377282727540966154713645425174555720330132830873324971100074520285504440108793378816036533739673861706621333872842022082788473823196000444658145957849495250106408468761511560095797898891795862383830148423370953737449259598002303811990168703661802406839566265143107387827332180220182869717422558359681976899703315027128604073015858650560098983538993634704488411236185975053522757688426948815483368645384851276262779584104705542086027737082852068001501168554233402916602670206683997053472508779650711602002540410645074688888092916078070539996993696791429263736714082847859442484101986371589877176548994125632436510290156291001203219518369400021855796963183623251527428482586935662802492185893404633950223165902896932316580008408291323780449036065134270331797072564961805442782404766199712814695732891237693762660947885853850831813467723836646394587947926946126455503089801537692618535290497625890819332020261578121269725064130614791880904193418638151862648202663735206057018584602122736664301260160885174306146518041607674277807657875114213808890604504642109350744434768006584541426949038894435169347003081196813401728193353148168485619846392378150742592642916453709686422246291979345178907300714256237519990220180064205300480685782850767410143252563967845044103420626137640064630441548095607856192768408491247682653157335201974927179403581567742716325831857652098656176486727169578805282669972405617765648915708149041442271862608074218989373799220450038352781739554541792969378036725744328318134146013977523384037429617127799222629645314241514747370520973376187892979803523358387758256155108471880347021318301537023762806775632127914025138075429490977642176816188494735050928832199159073270301812798534879459433793273751243957706828682570803622352770045742803836151137355788114912819539293124368840813721841571143373544864337783490175141769429351384317851647325938771724907473768219823555605445465894600053746214667219438325204844743571334490392024643788552909686686587772529849347892318985463738250878663374029316434161250402523977993200782670897507160795694483321430988536572540063668958919877212989661691592081845888347474857964936412375658397989719082200247679454882823843902668875980847424969544455575072963236989350982915686288237041768212262928619321126427492665891305312238431422231057793150806680319874472267809665028941868928272338261840697112001915305441837888050829591620635577957531597002046872144033231853344363845108217191901347878077584901287253160169262494997507380377256799439238321675182520210502048260708061809082234529148804353208851806459981765199192359689929348722296767487006424246717740681812861090425990414744764196694801298842490833354458644984933303850046815517740480475321184475524686209792865538711079558813837006828118780497933661289036278001501196813787177664818813528946352902918376451869131917270231479704216186679338602336010671733021845749035801783559286726945511659883609441627308925898225427545687206698195508620217315482831178263246990726923023141914166819111934055151093427120928057699133055337584296720611478853873501603929926821336948914737777286495606607602842133675377329689589305609643821329848902882421470098615559259230113757687365181919833182100518669196953293493373903350443721278531404174015667440687478382890029202172354433757004262993129796989950671803576057290599902440668784819751855416627420606226203541695165024666978385729952454660212296644499134117969232626023472956165230503505167160369266089545087243246111695082326223000792045125363678779845400451536719918678785900818817784976163280456686326838603487774042528734248136377722711807979154677800832738382689635370320130807529223660351582589621179576034458428588053145426362466304735410275652515637427119610122252830300877194522775912399119323016677730506646783790975425756733906683571375295597311370793561011612530691874229162309857064935967244997978347210400660295721651694287610666377661579409643327452353532857451967493288357811510023073807938771266881711504832657923554077690454606051644035327364061124653045113669607782348112984506934935886725942051570844110944628165154924358976293106182896060684230353063321551655010618391526941230805581387912350950061229881071286987908944995040967454331276464970286179811917903082866479103214341111661232392248130709701498373163736723499318703121901821721573534170348729781954774533526079491103000195571233288747654303571865948806453913668873915009867573626262911843426338400137286282327675498330095778858300040321728024939299406589027661889305938326732471812985249854157354476908599252572015546947641970650273386684907052327610430956637928071165484660787259714212545138553736603251315112776071017126193235249952762793045254987057540918699459237699117753343383846413174570392304943331386375403256472111607463524503796058529022276307845762078638115839066869068065535761224107529692414112486274817506202782438506731100547009878677132624587739039208224172497439906993488815697604509112537193637249090581770819510510963999199126140368196558392597075741663640516585901685918658710681651950800060246578846743427650347380352804023828677388332702258452370333229299270917398457472260961063038685284818463619224888865725289471737235599168492904189085403685836646045995137619234545298144791073392278607302633146106308691310663757232047730809120691475415228638186426025538886174542935669003467958926956687604945517112165139767852493957259475614031924860734112767443796979726970010430581648417936192827036627733038723548733818422228257685863129749343958047332325655673418258331410727523707277427732760056256074913023731285768195002383129386152476441031060706079496034059032669574178372291779372089399157292530363448086035737318454144568908890766837713502357018623608801664441379799446264992169091363618088200362401799950775232026597711517556879892258630661891806738303493799876743580801694906330899084169084523508174418134929814466086570865253960415862287953659125867430350368610932633610135165520987863983566738553183507049024530464604547588402731676651495869794875561850862959071431201979242451369907893999522467941014921117383707695971964586460988862048152242276809467088170619945453392568356884839931382953512996134305880834027066105968021708113982873788956314931043407447351587402576292291580326915725058642096544354585803606544588208232890672182947853360366188455731059160476999896357436754332911827712582476803447036250918738835150415234987428255804988226460983132258968526860874115884169164476478049500369927177289090363273139396059537495323098044322610505271171454325417854290949427569729774167794101766437082736965929866675523077735541100135387100975696714375521111252408624128282735270363730434903498259286688481713773237013750563517960716809055116336339635815440423346773252063830116421321808826569678874853719860655561505960704354155533374595740840522151349896603348591672689238908823100760991337554098976509020785469954290959547209685860862973133943598417807117376370988278966660247167298217443555522254790413957717539013402116675071911172661978506800684829027984875940515570187487709106345449955899404303155195635018453262284679425240699092195986628159915636636014120004227761979816460781709874251442965126823256937389392628544639456940522405372903291253684867911727731864020293202708267411752601624936622425766110823396637906900917118937755247271331308305647565103411393229584251134192602343035643200040755574542858279968557541602074820696314998203206377193966310444047445543894200681385117734325738470173219298136313252459950308915240184087823517705554494019848578894802903146960769957294417977353320564567423386146925990230580893527301593107485091530288988994412939414295097077711337646417159009736755968870877933666687613159985950366294565440393596281174983727921524337021031720441901748465373328778622969435064393882709832154519476261350516810465225592874949568607648798274348358165736631862762014893588115331655174810184663020238242021629141225053041128717002878927047932060687083694106915854613423529891814110261164220407472370857933384670144882380457674346944763262608323179668461486262792532248966137566899768557667761249699015102963614085986619481553022474257972323162111651163384367912389989516480918575414844147871563569594640069907112072317821303723614541646825434804759110738947135028462281396107347113175188550298746213450302283463824270839350641682572987422507075216474810184213709925909825938204699943445691448233677952002648095260123231035533872583257451090972699257468912951288299248196999649806649060766626040810189754642760216792106204558056989560841475174077812065402839189057935165022543048289657116649452038104187110848337744992197234055966711247323061209178458399798099147453849831359752000066441701741992248560432951564622522947410022098639285353884046937809728561033400144180355568169591760553631729356241996859858643450256705988935523252997570483421555856442053354113328789258912949018487190822647149562935077873689821806391859827072488037085499181022784384089627979033692458392208544825440353713240615006969257096569356725765106907873701356088743168431812338298692654003222611968414617563103145112887325550614372338435143402701641990307419527511751184731943983142072576712169135611562147749831030072986600848785139204168128738935376358710812767675785322901072600059742562424572906209921562737113706614137229695588656160321471849505496466962968334276039115511750829526863765346805343147652685885966828928842603868543468566629576125424486834796266135602222521215146319656522551725927573982716422070317215851706087732426250783640492668934740957581374284814492771687231334573639204477753451130167584921822633882098392084809712354084840077526748109328158445273914015925774860085740787889390360585538361513044964346924151725037065449536760237316103976861833264036268900431151057895200863562769381163446035271717071141857884716169485148363015543475409594958736407333218363985885769894659921859186958121976688073510346394692068848646329040096350697924815818794992489585170791687273362515821072634656237153190893960301169562258767548707257716308928158310629881112845432744697452699609547542769948195489343342052808968097857451373833171080120006115391061234961656767735053524892925928555575624851896766275437209176776719999333214596350753001007641542105981163287311033528545391026915326210344835136250393441255890179570266856460984060890842868114896681521343805352034983607480445350090589375217136613357969330247541343648417689857706414937953319998952159812426993447223847686506845602161577543359660600102339606276460960855500371567218847801735477813014973250089209576074804455577151874580770258436665285552789136085071788597180341495103401168182128120239442310055898229687520259817082341548430818145707498430176240498064664993665779177281356767041657134011081283515705618740870134120095107983390381104333959168193773936270259002374245024870376992638867709582965839560268436041521748557743226521744210880293436057952852330322648235627066513673338634711582096140100662845378818841164198702732203236054821980239281254376541538944170450899115606986788014289821364292226297554578832223360161804031578349151314576323842444184749817866655325693159907384113113963254581324879954378488573610282676144228265266119497642583052177026692057437088990112538929131107115048405209059310063318697699877203978874468089440801286802894653044767814270377818641123810589442977095747304239216134270084995654262729638436592271114501956310473141148463494945884674014150041829041717569439559103907429214323460985380394705701262800100865885619283504228975972143996490896197374625058379986947120023939216987833888461471746712785652822100188175500098509859679614389231237313125702295854812728647605109261724068309879003454537326491622520020479449034152306895878425623047366395149005718182766282883430350716602277311567074013346504444660677321669961470033441290476335625959093139859993563915218970710638279069943808705698317628787926321613375622440591721679697652029014402753108267395241974023116508156678599462010801197912710210090527583838175694414194409580159499906505288845773350866102534567270316620616217122988985217955866022306835397225094587356714588764255173425728048804867856965763422029346519269292325938829781119341504054890883749820055947598563753520631708939857350880060920169857032307694833546457289983185296091532186741449447985595710319212017424661831325225006089668902681621032541385765015752570217673719452955574985506144214198456791930214169820791959957711482187452019404447889029890016207940587546027744893576921355110123269772034534544002951385131215240173014649257050395652964465249697402021038927097452421673869997647012525553159917141753148501303610718470231095125521798740562912799553098332172318610885971098248107846120085037874256058679830770905194532467449843494091828292977338856859968001295919948890560148437777984422333169618480956650967011437460509101055981188970441120650139332405403081918832951673856429760481455560427284094999082095053148659115498019980169272631775389805443006182674991445646063405279954797921169539839452077548057776610906692489345165859625405122185702626443902253680567039808026991453223610713988972386853107118218715516197316532810157293254116255987753743259881363258071994767335933767981134558217304079208625070471849455377532132156051214025771248396934298355612113308908826965958259746071753691374739530237629826566947540678341421008075001528733012288817556429252370088771853625948126065373496735302728881053301016663268949426041891380980031911698893474191723231653718989609609883609101647523167803963137067176262317274339588628830718540589168573359894483792117598508059753508441818015300047293647060380230354932398340636495558986014394623507737362792959062189303603018017160151749433847355547508476030728686296428092856954319952741348696129039291092249586702081629308251086217037435609346935710424305731790505587364150650395258659129644320852788793639092288597506861977461897728025748445567950639056620369250716134890314681696580561092377384924951530633361696696827588359408278602746970031335576256902795985918886950492030794731137546536766082278735582042296665326255534691340961476620532622223503260862548900907640453476827731566493325718813179387409376169255593127112270385358091017110361230518275064549815569163191350898955235212248288052631050257163287751679972374556573401837063200639296161556039313940525216802552772658276693218121708497324436182591750450109772628718538584809205189816973605702183808764657463900046268661567290280399007018774342547901154291432456277434034896477682167388690232233854262262205126895134506133944606596646141291186577097410196928863938562758852682656419126971943592434386593094203555350105104780595675270930057293978885886135659181078141509278886362044563094722070673770888702865120251147970914441952271422530844845081852400301196187393801730721845578249411691263152298889253868869751933139077483283566764501824443824055522910662734834904838890327756005064279594380835939415223854002481697186308699531116691352252088871411157225082244161289280155032711527539755284975753496004191468659329294671920479394745335669032959453672547486253535206596491478945945919782699128373110478631036823558471940043822073656173699454039109819758859464315733642410050022951331962725332687908901637585271262354422934245051605706599709654945111223163838606354656990370847460698047481430469363654721069063150762866472386413895162738046063408126577753315921868110326907170474223624580682295888602589136374634798050354572854236091208787494804624137040947552168251354777902912517029305344095224448992333771806147233806982927197623018057976974563059799619017969485827419482930830160077228388168397846971924492541327950370445471415459553153277298731135266418179032255468873998608714512563655022484993063055890555614967947848006520728251748896427686617197727089538269227582137178944066155048093318637950892650267282095634844506000854588648079931394101925407030235622572876413101842853525480637885846695334102121579805497765424599050472819874616514728195441485354331792086822302946321259643693011545326613270710386710758435104342130338165400011923538240149067221460974244457979866571373725797663253291468444538027119647273741241498201586849420815169048943214285705366239162409652241668263859611823217566364537782349278029711860983910003734343101016188565093237641886750572861131421079981938213191220520419473234906186609632219627416969352269323771382519298728233904397858086812853911138609112505140373609615762643661165774616822980984047149860542585450150236852834961310312288771054441753623998655719518242878346753463061401936902580959213692773043127970994270207431579583711714022197051248395573107822516508700164176002398327509756798688113866055619026304684817537470803631971267584517162687309485730558500808178574282361398829678421750133163605512944428101865663522676979217187700448506672356282027862281519703446574505700406669627809253465341209714277800160916484022953851024188173844910763192131223654879569488884125759571349579342019640128611322095874572376440949139978733550580307062892477948939114257171922719115193267825208928886028257384781276241051512491251605028410499550225486501643162386844169822237633310302703890333175191802364910727405447731222895399924005381198578749014116440183847281218642439529606477547063736164796701383666646487409713819765413426092518286795454018681808206963389367647099692863019950483975664416696956931641946477693017322668299373923043978575817240984578112822795671799423821658568992132629518679844314713000049074345842948910007624392812872667404330307034074444645290852438009622424992950054672792666641707702022772833170719234236315726006201889814066069821533633128509094256329823923591759586490231027054016097635443999704976468737260319425719415697495415474271906452732125419229437292609434064167255561059670094219114142133595333945266680187736269189046553162993738933772188100824109454473148148706413251574812528928572478987050186804282500642226413776115117509439398096095662985152143464680919720576760193798991192012048342811290599049297439500428724782318192565564819546942789743553319487163079023126118233005576367959946401477289788670599008908182628907807486385153185143378445621595215165272401518134435123731560264956431377279469868789742640229708851901625621276494103521027950081316670569752795396486366394132037223585462056827782627796310146669598130607186579444865633391159766855947154614473294918368304008095429797436704847943147825237559480542535421140885077634715799154697775305505008740340926594247009110788465882184741386140169520072466371871462671367848877148128762333869842456126236485247736525797017883802062567863956306844309400655351700314366893646542210901648225297671610066133973345943258509650501254088563132948412724646034738711140447724239618407349350108537688500626497863755474018581636979739134450861910528329357786756130388035279391077463276249843679149694706681024744948011022369207795466201653255447913746259218610345117480251195574644974223684111581178229466651999821178736650113311423385836187340849286862572722486110303535909987427060981804691248536409997355129943406117473455911566844297675212278547931603492464876767794878510878263326340452108607623267701538548476331794439712263086349463651977975443681734619361173546367249384167447920237029622931567582798243786695894129206338115963054232201754608602559387180085799422507240515203376836148905208459070691451098382455527956093938632082496631255901855983937037311750754411246445655102675799113363386137191641623634815314933815929330403528892006576939896235049794877451181965222274608988477598432374462697049107812683166473652925224195275310748540700850435890393042777518583697556928490975941501677279973271675203031198656208666968616161009218263797668568348688707114566895718895352794507194605128910192643000953196853461629584411221872591910505698466733059579832395217952991881179093281340662551359652582951476469007919701960614006507323758416172512306077079017240099795413558513790905147373453862653423263582163820976760058651391683840123234440312721279113953370569363610738760027773906327845926479869813431658774929713377419887697996887057887231849765504170567631109397899532769578977036648792835278893513592814705698344394137773232601266524038022524644549244083331887997387270488329463075161271391787831208062552241989470990167624414175101551710929358342409958346509091362275266557260613549515579222391134338559870977377256197928377113016624918527625424012052519347149385114397835719701528905819460687587157427213992550294654233082750930529565638012504727160462016719388069356395952407204210027109340795163394331541432567224733077508564757268604106835758355786902518559110891367854989936317225356046765692493511867405793292804912209312586252545981244972038310168385142387444435048141036799876365914419749894947550559974322097506868750866101567522212730928325081215356684100448779820518518703151031044699278731817970282268637412384142832837132950040775787585606730405909662844557978020202697663794942028833183815720419852113472021181128554950500536122359324759208249173082001580974489805165129883906957197522460320735315320515715748809595292193284997345783525055533773926191194294129881433352039679781759224009394066772091233961683702750919287176879514349958850178366073766293666470137552471008118801618289980158601081993639646810535359151028723976614730690090912793825763052906852845334652838069151751256825283240389710224094475466417886666395229173806102917415263998128718972174569795920143068035159461004937555836208958420108867125824200721798219104216889453094752923054389647241331511761183279816941154078717951174813825356737875223852127973385734651047767250800473243939403630320994262607835846776116629671179615314402441989830418666883545377504206129945017391370800120276539952045774548983798575856627550925013562463427673000622412291430745068935793695153072735658721662538790937168803233780208273723832672186078898030125582632651489071861306076346283523082365065344405554802359945985044112751472812693192059546037840215318786892504592377727522830813022527377142984710780092975376699560124338337283213765164238242074031066750976653726379404130357839502672471469599700723705369221268812440441776236984111204699757749284104538010457667848667412233422776076968774046067175413891427854499737108153572584186304887572664061164766005352352148277164189092801341775530797893197125987095611606057182562902953013746316240695516352875150769487480369126521868943490390901396026810814250507266192638271703972674126578910992926078448591209693384166483963759925838125876033149298291353016089646977177961100438962590639362574607424932085801077677279425908216648162111984418017906131110078270581585066452115873987400866316849589206511111105909722250950624680965516420743089217788013280339132821014136775788942463098285287908979109441328075186973046744479047749618841556296643500726772258125402354738134890190247228455590325711102776303831868851513998540505814088506288152783392504513288915490709718346490096760347314355528934712322950739001042932536242788796465472533503933198939636862039867107552141054897410106476989690193360012921841550433495088585508984651945678019386680521608472864727333405033109171132719940492902614323180523128027717979820848408792666813423364090688933893837361197617137828811735332329029852158563974996963133957577994018170033173064794639823007416211081906261026604969999299581584166696318956781645088093407433147486176473303315800877249430068580555031177815969343134971531475466576148537421468175104837327500362112211103728733344280198684273587881386726867968429435735080025632430390805779967920332485187332381674016758446174255691159799154940068446263713851080257694756056142782158842647062726490602060389817419218775582710175181342336345442441805440368260537285734590828141583601429129916211361055494721695575316487648057175784730407160200326079532675103247574806999519003136386786610541107216825689067456008153248029539145277531946683017727822289566404416419820714799142005043436545688034704203272280534877153804960912978152326954825603600546083700241403122645004228492102008914659135184736111736203830985203470677686657199650893183255145402216209032838525693943682583747304702695798327410548747908404827312990255993386474129945764378110831857641096391451692011826967395691406748834121870775461181657172221651842413261824078348864084122035235564367893238576792086461169551780938877397772349766121377987523773233435705727116865401840415941635297279939446066138747073875545087280490446726031968193048700677104672913201903059469451647867182041417518130121128591096081246761057533477845788276813160255505063253256967799706748311341983000044511161280742889404440534412556026856669614497679015559921783387054198814212348812993839803354933231830899527018677579276460289832978984690663400099173435765648020760746232296106623082585650958262268750728335913178718853504259586512748677894494143953499305546968742244128120626637791736013624322010252437568671706669204147642030013061515724999607572111445451182634123191841443108026541161214752030757839276364454973094125042265703950392012340475402385414134123716822522679106584950500377715213577913979137305731034541800442763644709041155643274226545062026417031668969947952194689193995644441345542520697131967728224675643799730904522366499631062595952610908847823176355680973600823373925563490311254341786823234768798769237993992374257082580747285260807004422583205141064469252838064063119983118453351002676605670146288639615003083563508630341417076263479206816042488012056144101443300955165150495065321351177583823064302515896613635105178198487594575814154441300871994789758013491642592436484087652784670195571052723977999244029057631423706780323244300110984412912667624285472150726720097887827344459528122403064286292730231666197287433832542155201943987486241659561973571428675096855398654495556913436804276237225901583982195707857362491706329732335430654939480439749021263537274571791420864128526265829325671582649895183262175446344172898077116082697402984867379499101479695734071841300489022086697537935521793799747357167538657153112388812963962042852113257474859047691368657070206738667452083210010785672250766789509245638584060009418799347752111684541401857419549505467105809074621238707751292239710188771929213550995826535550667685463763592498110394566923244741136011285667670352717528437376788825475296341196728628407531495679612555333758119118868212452170624790767202791035294756703863087001466582771380721633952784557181898793791905566057330254197568525833186544772545367933078674702944433334550079980869380055390811074174280267689677171681233285583507423285804190772455437587326601072434327463243091603363926689348464538173218406106794971863404980100076479140371631476423251264396711112287744508481326139025476357746121054335620481831506484331718600233441490031611361517088503690838888048785244218885986075578963222413988665758916379915728051142792961183144768289454351301424557017278538194008098774000387185807113590018265065665673318071943542373617357695169732655951343128886318569638349206645448179080808203579731787774425733415687953229475421920251681440858972378183309348664150622968596535055212400659962198663732341056952684307175311373476052718882085553223018300849968409205451203498302522649957315947709267892598983700578640608265594622223728240032108919877268281081877260561759871889063384804687301717080421799490961259578474589546973381629581960178885348463973643505472273551053208787980064042606389264369910432363451117779876184206743422021790843373738878450464381940462139865760645459027283950313445369969897624471049410148642430248166945309083859096951967642027235881403438592289492093221386271482785794538426889929613850944042085880011994828015223948469919672944170269495397508497833425639583788513470609084249545576771819675523412901937522995270938077890613859927068749156328855053975382647139482253681289170539830917490793756813061134720747216783520307031195542650679762644721445569490612946306296991123024607540938223256431872786592586349488515572538010373791585161992198888293912064525756067124056329115984229925159387996405596393270696904297323864405929402197072749921779303286693368624621300237200592784583044608411972575833864533139614213199786339730933806229676573744875739005294550092914963196773112584233783992162864413817779827365601283067701929237857748844456675333227743610862683515850747340095921441786936366217250779273625693269640925367951560581167273954447830843919103952397905466043872662201834478613623833799615340261431753276095023044018623668525868292539056853927290128384742601538985818816787631070892239900460643455027613041786935430708453065288751094400977275206611548620588274781018849537122447734354356226983159363240071546765064714202341145636741320008586897107834485088034439967724150855786275864635392817765827771905486110519502915656390043598944948741024571294840569704893789628219189858509658088302243531967490951241623599136098454259021516919540266818083779805319474352792084122139196835180480287284117160814885827882357135974503039950302849869568178356213290474679843007020406101041134063447292185631680180320766869356659136612183686733791111344506780561652569048420977961563024439283225506662372975281298803223933629961764565764170602136644540043969713982874157197609310904129349485631901413827393932185719869209990102736045371332283708050027035886556515175944204572823419023383344542481561669993137905759465077312824252267426863916577482765523341044397969712511246501947510550529726939889866286925625668624266908991987914338373059243104062206236334292660312602510239484373079580190988878985096054902991690075089200123347281934538802772939008074615783541514318266569906008042092155984957223355083273171259210276384214170639884027410652428613336867841003189769918907785303408269207200558902243359740798295619196258452377969255606795427056368214776435491844058435222849038099418663276009413384608001431702763475014034208442748227850801205204263387152290668710924505243625002671327007658243777957881076394920788597333639750554442762138241646520836776938195707418672973956726026132521662763530570202017466583843749775320256702340703784247861144489476998499330603169093274950998223462470479281659429728903103016549409802196392364341830569008993182062933800986819704435415282816031505794874765974042003385872482971635914747196791116011994797609643710795397361391715378518241155115437117512644557394064586037293310530075339003760295540783954387099765687330614375165563319146183184164031830737066721469489174888422960551976401899311292572861220243814867998046898460363007217365039807031917666413989875976381211592549835654900217856404508539385621242665375400066145426677469942827165724890035519709926594524691986293079185992355741353186035455943271216467378601596222673969691910246083265369118087481787112944894176672699250704058168711791383359594049669981584070302400750208060592210179560141281557755946162209966125656169690040549219349982554644851724134965140641570878701739412040868403400166538020352073927269819916935888298570481001408120007390623051191806733675689480919888258548994478993119503530805115617358936458260434430366871294949480787559691945441100432889201582261975934702085621736971912059837889076190774212483083422150336104679908762693309522526410482135534944651891458395948027863179143823878657789098245657772439687113365076589175418233809229475525965107296147660126113364452706751989501554476579484646402863158490244979922901694048579237505530505817204232033213928477928783478041970297387321877176319092070303479834451460023887877008762382356413298255637296357976630321122660185061801575150117336994443244694145189659161993059175830363980834546535088973506265382192715270804205623987371160452559666780844843744842145281561361875450564123810891335005678768947881484870427145770225235937151270411916845013724513635722238313876739262525137027361810577724200280841136060246626485738266226561262482394020287703309651959891995420797856678525601197104528256927017539111240423760917574195100038608821853033607664003204968550169540887709500550860714754066461256786547760906990533241960863919478052667637321091668972413288628380217120482342046945146997860193688520765683474173721659507288961873327657724263012526807188237641666169536218424259228434369565061230522215776325821531775143431038937882196396330678193970116807354860136966618869305464996513035650341237576250247655998383942752821775695450004465859003212338960270316945560941497113133719167606389723941957969803204931305442329140206991772045982448353475646851274789168276229267493103660752030349519080373950274671378733815996132417491989680830997135443586306902118953312180495786631217498171590402060467992836111529758360969919790298868142491324715133701065844280394986217058178815760661371130411349542567091650753503756687153504892761401788392673098540899606291078126369058040750278005407875031971754282158602110526918559577330124595530751329943395097079545004218932965253429450653981113242558198113180018106937041198523260433349347322098554800415890241572228296506459482464596636560573487266662485541901578826405709666410811715237229597934088062997671586465953128742100316776721764987032159315192210689033051140805557620050778161645216338774085165508963628890297387624784403298244633107051857296594463810946197893918235888525123781288879946622265304883475976250147074480815258316532365943889154793836411837302623293616521033685066515487512737072102012013233116710678008650341944117708180749716490086537084263028918473640588900090496973499412830597997998945388169526132265577524197708137627712895151438226823735996689525522012771775929857004428381968902194053645764028843055688067255465999434356310361425133631004466839468377710830538411510367935776630801416032171850660867788846034080437200749929695100008869423009048902950481801277388686575188692961979838029057396794275760056746984037152097907027367013132342196733160211770474361747930658932072753305223582604118489774189908115314552770552368214912564485986771563464315873045259890907671285396063856005073728758053134499842524222069863696597623553074604524292922642165032077387768344944524926825593879603837524492259295174462336237298091886246065481462666056554736481261457553577207040410525766449336915794619713167745098236908123008778354556139752944684524308271684548661287754651391843526894271784671737513522033593359393854539427006158525838622412637331903504403097433520596669516810652237039071965144590237879262684405480488429617183193091314806040832442093383751362201402545269034373730897877888885337620082522626337780121056057419421421191109945814257251759159649703167257023830019695175231094577133976382281698579235498106862220972784028257479108058137817031113546107212554996713979934993668019942574084811689465025253995751232448016803783549996342305730114301073527335056884147062171196048054594109019555848241487632605606477973060727122524723555233056861752095090582082477633087640066951960189016446046646824954860794699966380541641049696522817699507702092183517532640306540343937314110123720845096360767127308325360587328180466339517197153811569735284172357015443846545898357623812731982057621007958965223717303026865699146657281162833272495865272103688860154828605691239611058405220059219001935278911167356820451002550028374572581282503922831451082781251005152532699648886941044558847383309742274934598583957931176382775548289466926971157062832502227526962892996761965516623143172169315076030534424115247229797460463554603934656881104925697938411894678503154456208092978241898738410982506567182951626925011439973920282115557169466799011584635060488041437939098490437672213464614886015966472976316778129722917895666695322092968720229097807020667874413318873548604262484781184717502546799635759303839136362465024261830733287219742166777510019862552159798030901012383735488802256043420399749481005787539449854175209207061857790514413174393554720338883048325258536680187235710334655243553762019505855274721351261535111983324664688498498332486483973607927586392746147773416196679809439662606230433155133804622277530948383681176181675985165880187102831553494131435296517272495777695042841342646967596540828202402646213284614114311455403316488362023265876856068576656162520845142766983326074344749714824962907249890397801775688854547010598179968401263975019432704853295850113196166312274713046177989447867241523691951584463149339443361761526742011673712493656090942597515380097766684762013897144112184357860041657443938180106401808063569079261271088581925910968442786250011594503291832061814732906864593552637423636408462621079026322952738023118918266642958574010342261983321235817563462524704721983630007374452104238038686719870055766574333005484770630478651157011537398097383824583982385976290794755179877487710695664722748077500355707813735145887045696805937526422586569776865355970528295101723071674432777683504459147618738599011784360741042444114966671631530055066965999108669531143464207720074627619129037810091302965586064277661639657244489413348738003397023027121291665749774816106280003232368283247329407153445604917874252265674122310046328616579558050884891609696556959322532047093870051097385044470968953067082309822095848841887922970804895282886374615958874413086336048752721771336353338619222349996074458049835809981914182608468798410465661447348286724723104781789905597984640330612844865501011042634896307985779016073890245994249485346046756198126052055235576982149727885511141100481329675433829953454861044064026206307067669869532666864544269618238269421537524668568387517982722422543316399120351543301252303777521534614544123460579052118649942633313004209797655340548041376402567673726040571343012988555221532665306349271174023395023189067597478455290278957539544026701878288907215068074251017089089762978105622018893174298118730651396255987290377380480084064645626842741982917932235060534960892788870866483988470860733125313194486222309150847670711401531954598158407155056165400242499458977739364618474374575427184836764578949224395131506548803565092154888143162712871379594636798878482277776789700492249701201725793486435791856309987678993891724064930824575919446989166108165140228462955428114675759485230052262453053848337881824816526252382717518142607481874071549569572834076633835207936558389271831370284122688699173718473926788312297544712671287995873094372774443242047437161825890624864585659473675960675269700546503258534955329178538238586535009205317794244405227167090131610371244587462928647167086545791727503485049960323627198524415890966565006892077744704861479577382060172830444207689836645520842528764396534430006286709128333731445666308013386787081563952885056273319875664760377665657079411250730530276222090941156526743876257318396792042586019606434133815675597404833358827951639347376976569939077849834997042337295802101070398344950292943311619604720903439892665329477374933382435458889762780407481345550224160550858784736876688707914733137356528862934343583422089190295030779780964753930838576779660842594164433773291985998668157626842701936254389399554286894837529337800809301662857709689459524524027257595933855476555202470557461492148600909869223873556302374432925737391217635714097136980316667629846458858502212777270285984237009562379782905644780524552155201101122767784164375166514674816079925120075124035958783077763448242198019669932874014284711773616816426932340026229100668846125674545842245006545299700934246639187578650443754849045921940808560941313139640049668770279822032465200105706973006503797139886227139330301827736659328109490982890351669219023770702848146654955963832525905021301018846196758725832722313462468514267491311083592753454942412523896522827638470736273263668622703475358467189518756128621958902751862922008680184452599676475493177540305369062578800754987038091345127348116515832756868866515100458316474892926222006961285229699998543347265503020384555909745173663016309369925045542953012528734355765576586145738280862795901883641913758972321245491529955601736019926602411605473468287469765491785683054667951192664259426619393688359551933319903057977875259381831370094755735214481944806917260346803220219103759446641669277565776416065416167832501559318776830500685741942957382218416590261407476118277808695500218421314064681090066204482806462264588122681636484448992563561970394696855936166020072138831149626884791242799366752019400737196013259880078581978524012593284160261777211733863407414887620398762870002662702511948473522001278136373609697195751031701867844229709633969587738606142640357648927751181483038395571141067362820352311822001967367668518293312476062080816892380573557373455569116927707875365333980420392946006598047886781505581785279137989240751258392736862576541208074828718479283543550523443446100315212924572138616417368579091568839661491122321972519670455723491569597447741243508638301748374930615668207012917982342782235521730842546559224999843602882892489588929016937594307790365170974998998307323290485685054529381206735251542621976120836399212398646222758321039172534689079147941901782348860260355585570399009846714153018185457607330997736334886668710240222097564328179547593566832400073369880023832266982137591610180411954542142832377484001057134568904131587699734687444857258909408767983646088649277626481840183150324100356378195444328179144108479178481986475781405925068925962010622216322205899443520963292385645095967230908387833062465272166905836202339679173131481635723698086529494122033568237605985037945780642787206323675531128340671754832642013853018600149720229006632131410990740179723531997649623502624438387932416684531984204279932712897862091248920832707059339451417604452213297646129084137304294815310886780853516115654722400296277968710969700394927442354178835272439892882664195482737593346485658293182198739306457199761993882198383996753650321857816603607339192875500373105304076699214141874927630022032388581642703639379851179405702386182311767347267894366809527530509439047924481064875471134311955811369454085057930091298853178102033643894011825742067933264029935508429465531643132780046387639994775724312875911038340932744208744158898287455233221906154787989677370403329942662561786234267857194184664664403724108378547316439880959838766300596103898108349937704160569394741821282094561601000025629876827861618327434664676502401505607673046202913122217432759516828824910789754475452223710547531124166647925321172801264165537670446517340624919844528982875655357791299443650906012574537615418965697495734620523634489176484949121867678010851239719116412897046119149403666845491348098624610709938519188742838474326108075188035246404573137240079810490131228985685490851559615797956127632972975716986518358523503312235239711542414124294041119773970584326511282556280019757075732994526559302337938175885601284232708845525952413165366796775292489870665284677485038721878563249764399672665068527637280753954645619344314570262368453645026387601919953485542384358693530828624857104312313580874140556651174957236702037989556666548260780002187629762334915666121663228895178954233766284851560966767338867976957911416480360858621941648764630611237722385690286125188540995914558299235370319822464233586856035472492480111395979054631613306228782696777233559037776951024238547956908740087873931770520282797905695304023526286582822277016055261029892904121616190603688617158212024691980910868929308354133840406778057032375652824423230154744395489970645820046868333312142119477979803498701235581262182673490309151079780020173135819483196880025634444540593516193584184388253777480926393871716472074760353923339247348736362307507817709843115039918727689814575227857490556461595690872506429087259568789409940042078055716599102170140827711679910592380446271831571066541160433741592641191001812514904475214987438936155686368234611209708362382035945309260944257867944097905767410881368004869861836169923060310420984213519311606693743484964281773323365442783465798313533233453224557816591880145402369800862518109471451398094567525023484499337661317799422420771031098941223610395389076064557412851327333810812225422028905848993868846900493025486924814598747240551801697850861925639414094003470490668327903300482943452803331099578936472712328587026848389393478203943773901486216780570684268232441063116572319886997647352161132917538572083219003245990690261862758251829124368821298686167900024292934315596441906576325716950971012612377335030115916189304530942232967677917684347429558606492336087885862510696611354249497711800925423066689293578140093791937738721028158893436177494586535642866842182223585143867895010335999335547607877385391774797777244968153783702404481604441309762405221932114818396631630545024830931774909058876780147999130120401819755172042698142178873083964769906936437405166299472291969715814434320979164278932765921730886516952409532320476230744892438546087749226932953049695441047493773931824585042717362131035119623224674760261568338955761486839808073890774683434850452220802003829252099071315318305493244146718902139775610771757966984381225362859231759817556269165739498939315121937390659992502264372744712710198324740071117874153432098113115159524434775551688852108096190504936587399278247540965509670547718567692574768281497050332441803421152365894257115619537868407505065320515741226345178633411562904060579455638059985225187675654278310761530321406182327214928958295020103080112783234165473684701738663339574164288259276885760855678379491641204257575032685099620224921033482846254406372757208873773561552890472748899599355736531434224040157463546400681366011529438784655552140407968210016914987139397158359862294398033559730652773052154504911122542950727583683969907967586091752184479191577678164123527691527401821894526658242407217437121364253468523517584338065775622698486730291819865331541989019125440945270645721790641410325153908348293575124685372879299267415060618205028262580003153753282489762165710903642871652312502134934489357108154619360559352509937513157459851349674410370222858239540767316847649147543396624232311636907890176387267344408701815785250331180328701826710466130855096127105756832928501780191787084612424228551008505836134307293702193342335518702966123490781322702140497618771094752763633862551971647504450660917706470775950347212917469988180559873452029646331505413983729722627284138050749528262007092701460631992337128964488477276986523167781154702769366925888185590460784377245210281863454688412718377969706454783235260647763928095749354879025210168826009922392761271830668253897286911271544694321957814314977093292432132816631065055276826233289249425191137590005659427187113594210423623747290137224965094781884426301511127642514319905551690654435453819513134273079677511514563634194285554043795292676582892784698728113410078111449072407252730541739393823192676829930710665046577370374801644073883277493949510578798016345527158593394973425379245628506480347197168800841865383873999447137350009889222134768578062719241255843416791531643934904491310933046519870372659425428593818977491177924217754332297540907678828865555622781689498078501150866195941489209819406124925654740467715800593376098406308957551207320956162594361085958985240140834212674947156723639738494140270936766708428015920619864001400779977097280317500682442921410429685487003213526770158352694057595634398746056527040465097659604238691753900739852991069875345082451944725812336590626061087885528905840435897268635648416228002381874789317005779641773872795253735046874466333452876723834337749561899742694286025647469516589704315850796377540662972044579606206783088720268800089505423850688580063677560098283124181094075360343430615302258692451515990130295550666973685665834240082165391596895296639072040892316383339910014535127831854734254827189411792381741266122998999530874741825624348632603730453353204190610597415092468202500983201954997655933804414830451895133224140874697100246309099888862599455532526469594210441970231898984742398813069686513516879704799147974030552081398699810963660938778596051483409630533926147536564822018088050991434645971202551383738140850405780207690456133644990129203038413182056252216737256198277062098687947595099205893169596423243633544813664306222534447244306649883872905969946326726633554241529631853383204903674443346052762282541646104836582963709550022078187159783779331086699598970537845952619971208989380526529506211225898440276553142100463730937444967244406120831389187950933929321471377995894634586127090459896325808341989755401774606773571102900548008281781575337121341844303808608550022492584632370455413158515735807616401314400296049691207002378160970201301966440191323665121181774156056646144233685048286565969161866616342826817157406673161606317595801240528669156617653070402112817015231156019550185244676322353041230915982776895277209639663621369145884369382574158297672860232706622416484646463552215832118080839102939605337747527490653566323682927347283690528850234070664284067085662780297415629492225511913789298485506855916215368238237198952879045958288320800551276178648933410514406641976088149050891029883903242058144446037446014267349365257953641006214002028019401724443735726906831603407227482078938825958390761333649239163203617932318163936489864405183261296326268879381683577579335574278044806488096061716182651447050516145901298275125471756827637164865007189060396691688536051732112539475596413387735938324566068535019532593301416216486633780259061986959007601443738203502537379711785320932166532694072828897340403017835951047116183726199394848530474150341965069168951367005897847708906414974808700924322387582461697035749336330126654161596562609975992620546753300166753567415035448462722657035765611773334542658290571885428740762776512268119319251688514783057080614375168058193775330343201554152571297662069578025796707218182776959455087204464520314631937706624547013651114090161566842056451510590074194213930673342826235552915684194705086508702870633059080511357267054510449416147673637247541204384666298503161454063975937450832232729234421505878498837660438421530492450765560637632921855075178078278310276862600805833872743452535670992892762704494781808162739094601436343686186979177743973974372507022993759042683126392985758446054472104290953175724772312521600598715835571119120271857356090929567756014016918832048817003243994011565163469442993492278642809448905491222560235491501779678617527159426010628520181904209180174889764184914569325273155409343207003002822064741985029680214188546616135274805191953392374009980421402711298582145772007121449788672670442601845701038262502396415467281746308041065213574242455240770185273034687709661326276798287518998031089386795858055363643412178963389186600890805462519187262768158261733987833112857512319801957187743609536650876752171713788691065026901283454873238520354611502168558217908602439696696858989295530172125706854473410965793068552661108446731499287162898118322961049435688491302211118673001663878032773441572666557072679814408329179186043547998086755496571700099575762513267612438816090860393305634624027933596961744164027124426301950255365651112381376444996795074231680715597496276810909398601817223727986363563225600494097641944232953966446871151449316961572341475584293401247433369284889591466411743015421520308800866313829030605013110737258486528105881850163355097346625864246876786700069531802411262150161654979193322796819226522460770871554184166331187056003488738107397210517122851502883421177070898855705921903700057349024904669313925228351880527691099950911127287820952811385362793963017259377485940380404100054867039641820413218694537637496053602721694174550556219610028007073028406995186997401141324994238316267941337147347766283031320984380173678685766318449793787998014628527322410507671911537047945763801762668637953956897419922526804180496999191871393554305209704716123143228087243396863161259595786532851003422026926450998465141482730027845645403354100974463663745641847358910193364625419433579032817300866211015041592529963785494355043233092706440628951970146047184172164562285927457776598493388558354754356008917033793759625621244335902280923410441469317117086073411502970531111740700143070640106442729989418019185204434612479578406722187068667620967581172837012555243433536769165829920744334928903287397168927329270679628371292627630401551851617856206069636431435088855756204590918206882751241119163410570936412392048747081394744264308860222273988487442463825834307540115093883483426858688040883104314561079328949694656689925563419345631243982533036291076220075433173060597237410705772137505414938730576498619205960482165512300583958714074359927656046995976889515264307501100987393899669879102909580846759343668932236422191653442704211324556259781054091136210082325270846706920893128720782627672667397790462802752142277932112464881323246617829521284677672248107304022207737529445325164581099855885141743995587808858409705051449876728572136227987927516915089735526088613621121085935755148219079112919848168660169885943049844686406732082367229725635653912531212649076469390447433950035856510873506206021785221237511732519879495100907869780344364671984475871822207455405361627819225834463805631513667512419619548582309520564789764657843040507766598652626486437603718075603433994139757053652908490919161366847030525104123919915763344622619931486412899055434837891615116384907845192344658280387234943406934318707138042554864578195761615068026846254668452262994901214594900342997990822901663985247970143899485264887969791158116733472353064137625156889351371875208374354392903278598405048010744014358232255975468296804616353736635045203495674080753875991492876117819036288055945304268029569422792206258028830904853538928288712303016239582377730448695137879794712156003333941703395412971000160804841783092038501795357681960622196042417883743165426664949334528403255438757431530706622475663351729361603228234427113941164665008326615833717625480224941012946380060166052233217619863861698137808089936623195216335193095279761086196338677563076043764934808670081232653995417211385104606717445083518117846828079693969236504372010807287768719081105691593197185693117424442845902642564665407138247793717154347588271751529030880284168445013808105363990111337075934274626308641680804593448776656205656976648828960208334449670950217667859907802920873350496762144295275216751596426104608823577025739756677351579650130839783833586807010598419247452025570901601176100228836128601965924759764486902914621690443971410251137601489824782891478257601711483248112631887164556281630538092478706958570675748125219565683365553381317855875690710381568939270713922159677050870181218208242689429041294876082666280386442703367144349350340776069317098972747758313708847657176102072390785361340868764556276529198734049556585406251017497908014058242640346627432331752712711249194338519459635807320263753405664716832967877996207128253235805213902211953888878964100687035462361046748595912428519783345096613497808673779774007880752497343616652604629212272371566453459802893592510947493369802467950631796696474006412384896239332085237814284632172603918371246843371082374904915913900419633442489640551802973729123618017915007758239674451514151855633305007045607646344097106066056841515447086471096721530248342742631599730067854043683040855922629404152305986536491988933427751318390069429307547683797775119236993148222948986092213514843697316463850195318646593699171883458528872214632217222836310582586483072439778159730557228771035318109769338996563250943944456712813337136041844214509002663160068401669580626374977816975002093376771513252479186641211752564958721117913724178754565388102281929616509857396825435434109741088359499504934221277088040053797821328538832245724139622335701081643697603432617761430839510888432080044290054114521883459906266169116941052071307591115033019118365915845955960348283555556739511816477129946136957875092221847339804813595509686110980261494547853512846167759508453099707534284804197615253788467356639780375386967053585141197904777045663455922755918739379922646312951819268116784647030559078739871129507143690328200699539850646419839759208302162440660945782125056725097242610739570813703398444297582609075019140130106450821368467423813559070235195350094367822735574421476652527226363658204006054120679864777809303765996017254772263440465415270229947527060007237501258566475204550131912780073853465934096133406952358565142003337603018284465113962728576083863520213346422629178780016483707088589005093564277481840228413769860690109668630641985262030428127790385717138472616803043004950788381375638318185109138623148158605257557483964388134161995451646828491266863161502564055934400985827964731066130274949916659726205829508705529318852016227768829585889325167915467438884880800836276261601127148797271542569700726972419639902782199056265534574379809923858152183679449025191289921062729938910329058706719104703870169506421304648589302643888557040513291047030860640406090775285634508670988217326962860956199415426881753472910672454923030997376965487580534993762220685436144093881853313483965990072038508744376814800641839214367739212232899727596893042297022254701725167181549581065187461582170172085161115966401108624937981608624025086229969451541245405568462933007735527830986867142201965247773605312919989501387387674980499509734976772313361819124605790042302763838333553646140529076420457878114473391494856234201838282961936344265301522062038809991208879773028220447685266952459143739225385637887222108157463320553197607797902593268254024070045805132944250212464370543939593011059399524814262401655546080567898227676076449752280756546093020201762940682422150758455551685895026709863374462026276976154929777624914247976186712807884926023431031905491501073660727062782151708469428996155735550544391781696362023628807866386854513349504376542767962631529009799987872406250687220716096245686005099653017648631136308313727679521765968651233429578908005179260467327765116548563334922903387924170934819286301429924285546149490746082185294602969760064965151816563257107707742356206409244596268487814202093155118189883577897864690195432633058903628759220140639921515994690186642809859991828093641593957456528501346455742662061699020984288296686892423844306839697790745990494372322236746971834137315080995688279424498213214579295438088664926261397420955531981577414147034304617587578655773975827164565189218835716944303099166545491771134116466692754895174893795691314106418079594724908591435684236656711888284548687039902770352802059515895982747388493601712805265547434358565376887354054054094733280591919022945150311095270431018596714457539690250858758549349322533697756743162111219945507053079057673204034182067161877098788114803752657466351817279900480872843072165078131313391208903118273283214164777118469270774674105097528676102981575657162972936212691842588178538149670652864315994825703235327108704062008210071055814504335528626870349733769739838488635202279603717129709099436079868254477473625680324176157885072199653572161862212937619868140370311111511709899036207658068923687446377162635094201056635391860320167701901227461069774681221490033344804952158942597826862176150094062755178285223113754035260520269897336243573452534485195695932088536265753264279081195463868962133625492002308763041822032759166165826770173414405487618701394736340388893533189192092328769776604481392834194831858489043327724501848557792543023578412017781173892682755501038957963445606355727251442997405475969238789565642176271194674316414985688394280495105369304154443781544473585963834290785943181026283195840752790175687753224397580797543866293287037319509206221518056363062920258491807248190704026163847091706462296354230002104686094594911866838125139174462238883023071079867185075458499880558561078671600752791757127517343345925206767336910110190823674901781908155072217030132688127729931715584904980694494631973234886888736200065973855251280160604033067652025593218848439464377546835415102837436610888621540870576492952991345985258269863076814756630687412100178017079695898554798530124281545386432774841449653642921658661517080216002099365022754841990040332397796835109482436600953305482442324506238656290191234693654657287661976062162605038402256340863674233716249239215724694913663202375540168084797022927033556770464876454246344421821314160309666604308643317189935695643910416562125455709858307194740298894404761889633232517257701834636278043862330184331484682290805299692348277842170372091772910245285615755500533144283724841757918038294479105898519883895512675968194564463041063994876327966278539504800755034168580168730188065222230469349920678344969080685418784056039454366113149713061962980554461582128035398587541647913108609509476912628593200496557762632955220294096178438738318215071418346916386778233318491527875220698420236584253824185055934480848354236792059049378219893580999158801550410733979057446252699956656563734952716219415343346736607194943993019736163921807035384487018906763626890358307867042453581590230880852235309423991641704564911107474186207077465462036573933970338814635054934520059190112728719551786538233114776746840469989051994791018824303795914602487219160637672229219326293325170815354602115983805631887834286508040914660611606619562964383781673153446481110069446063148417951719050515871531893652559685441393477824290748880175180793900902698052549261310027740836798819333768548998262078217693740448223319061977798391981266078970837163649144748067679087152000631145583356290126964775591000045951754970312981935397747343540614208024471538346417622843591158547531674674557686499852308238486416036738764794165268642218617779251999421736159356517474014439673439374944038738184607479781065350549421404200105990522327076624502757225401516139224022562855022813570033072865312231262829880196088190680682220441326090817441858829334133761520766221859666125700038874360225424137336380256600610119143315792397191849494564053721236598065542225724784906941879515634752440904151021838748695328021687019878035666995626473767926836884108319283429316277282462354859231970628767702932937222150889471717560743921277019655266506919662677122962725588992826439763736522494222372262357115496087881528259339050346506339451999186438572330958275668018086675897518392829090724334816787543772595457406389626719729782962351604774865802970206041852633297663766911908384341453766558442066376112896920895642492322415639883240848762656768914077536594973702829726361576286832387251805690659136474941101396215735751443321994687718197451109652394911503375887207620285291374525802970921388862908234860410487116782406541802779790129296567508791984262859731222134656099181368682111914470364833954239613213580939198886180428317098156432485043922260406123006572857011394630684331728487419605124551743866898769866659166833037975148575574895519898570461352734759672430555671730944272176783954378952644382535614875299853783516796727768735573581426797807566090908393237252482244936288855313942629259276794116388900390666334043906785856137759345589995110256538441852025777772851985542870318812715665740595339265001709249876648559909789223091834056385754436928855917632077204443076413855479905648719160746838792074068620634467147780205499131239627425211874201435962613041569817193061222899244857365897243837098474327283465835924227262979972933308450658290061645241717065989712074052112699630586358974432561293384448111573592359102426552878558490757437352091494556723120715402011661125106670759523695168987877811107113734871776906284275620059855553487359852816878991133769074854398828996171884798147225817418382931932300800332712274551002316590542880331018238883185357734313796175719780540141724597954731980868651340011691987852169076855894162796241870614797230786440929681770042685367221518260915375032114791579877166797123658143036873276783174955171363449768719378229229614994908820957679852255433720462585159729243371548177202209058364692601619617792075601246323088435608965908385377084424579134536075452239990444651317672167085513405431302350713104352935549008906345460403209525880881151131277212967374979320324664157658325213326468197149154866805100836109525109650989303006924561101159927069363000541779733555220588635062284399117739479941125746769099972697698286368207179812130545035758283980787826585814257060358825546847236344068235900159485493588086874513512227419378443397848592362860512942337198532449190837921525878126982362121702762762808126655591832323208413181813983413041201537746762587673289353306985651771611527927887920077294212821120220075642648943684742088837927659024901347219549458790453647185957867168549728445605219295414517787759299336335396245996809424766821999416693066726940984440365830388078580253251894119407551744411346936033143713855517484326721740588681080584657516416547440040022147623692687666510273097019523220307009925987351638578618404976002937732574106211805631226544134764991037411292310133827518779673093972548998258615393378122904968258216439954886663839859955029903791996946258897445773741927063756021176038665174975295034876241091914204050197142865521586869302673693295589724782955748456974097888918811260948502888411193193881755059472721880042425191573237433366064250859402049463804499450914003843298950932529463506853183925729875428241935867817832004084749664756780747421224569700086562839851765373367523954474424092549091928050409276471752512566857078901864882677837088376420837476559962632617911334929944123479743658789266031229659395838169811847327138900762912262821342475051179726114919578308718777281099903325846743496437984120705656187034415886607978346842109831380647064103797680548833878931688795251433018343142598750370533715796275952595872621344598855768201653742493622609060527360832544632976743506749324974863739590905371746447092210987929908289625301948447288088050882798906847797249877271410831075972445926255055793776723797525522069790216856317868375383443996199268583027591621349971297253828594374156406712221260796146994871446809354996150708869570619988484876466455451279594115479597047567017409408147604953329222467085231930011703974267849248012126871219364098683715863479892861679851472358925340101741231615204752337645058818720050473690267400320122041362856482812770934246118269417435014047843071641270937865856161646364548496792986270622260110107363285630633534946680746087799064762888263974144356589319556402644690493265856182676479359623778505181595863954949431385225975749469541980643074309216395646919305846640787968391703450553287065236937112870558429369380878873288666829441851846954695620813995611277491266225805767967966337647850090254870469220736280193179896495085095427730065436194173350216221465062500868300776180476750801827153325199845735150932659829379080926482007408968911412337085436590127350307448780289813956900606836665274543804537568196566483840916518671140537392548025966424194253617319332187616200843169100703644282809804465107506318864100523679873745983980810931057990295980569165415971725029509331300345022115054694322175927094097834035052582972301825820434457594007988846526831164975525083965787945729496344860231739880618685784296793644330669465609338990995647148930357140560610868918701294836732266881373916122805472067976906371723807669521330971995930196181932938636281641417618279920763897803927525795451110640654592627086304067869306275362843992343174686065823502582639162880582695560438785742569125239332307413019933067190074342330556859470741028846880081427246008046067169157035496413360239589602611770511328395961956482043953284201040226670850693731111032891313586681854280712008194291549402589366362144363108073354598981661569142816817626019039144529717937028304988877779655057704938210729136158295170089517812316772960318300240916792918707259919645461798036549248190953536648554427058499624612799575609430369640925612700272443605224939382472789360797743922407425218467062599242972883886100744590939350761748070883257603239478824338889365499858159781489351558467184551693063876563632499739623260209802689823123551941231764516702663947310050592108342232442333893396350422588857919898297646863235821594773864558959578453885077838018994803734759225105557311319208694597302516218511217019887921213538291169156519691731919468067634284777629226990369618266801462053628287116420092296832516188709858280881641176909254099209515256875502191305059796235917860776327416084737009146509453265309617939851811982095207345013266318687626954831822891891574190025788859510447837901357215001542192269858317914128497650471858885291250266099471562577164908562138510265797001637325710979008304184421655550787309186262304927684321591814401653287673536404058034180541549883109052499715535835189501768859363247883614436950729005435021783323795217904947331934463670201612819277040480835710437320823641421619054468218924325289230054515449969608291328763145812923013530327210414500231079538585292089910105481349212972065293891375338326825739129781952951465194569299949662197820719406423079607058278579527670945204283368214311226581133996375091911542085113985675816635423676057656185798103788994593479057195558226952010596879440664975742930327945810127902138923837871460282668581959094185786624618750572469561135145736253826434391879244476796868516723732859767713004160914882437040325438506910280156703524703675860075452555382629785672096162966494713902993754474659526482496740210526653521910214403798839746913400496384848585167561485562182088417430076486869267888276100762350084227634025444754723902829674457211934334867726368839837332835122824264311405756932289509792111563890204294626279809504679817237474175849648831956126723522339948620595961504523016246784503716000634878271193505147776614225529775022391831309778294670978127005951617021357033258321754980593154867084205227681628720889141432351388865761884056343391980794096275780309469489966907198693816951093833884046934617260617608220032871128111283654354147210270759869370785261756820415467232509615884808822966590594330048589693259218031041409378334984983072425523917557298465857915213431815374933002371707636283124478834646243820705331752402260185240158890120613102676724424691675902699900435592234390346546939093385323597648419309850610399338566531463039653797396010256588611983045025151485958084928904012174847805418283300231657568414617981285281257049250177048492990657626030709201907483349021881769239159352614943013620906484620091908770137537034618896713520069473918118924236671692072921299902435981861974731706830963223829309083424362062371456810197807246387360720525871950215427012896307214434357153262950507517748452180539826374535874973829469129338971540211802047501730745394043328012977822613832227812899594573513227801740731756721019081295280956149902743831354960189915664115110278829927992866529372713026256095437055401686682656917551167070334795571486141260508448938162455005895679276165637078046001804423380649682406749531941588645873979742563175489257670135990077521498118505552449391621772251317504200987048401796309132462463626202690814754982971647013558543519109582662197766306360870449045651584926251268964859689956885054660152935053624548264126832730781121732596294270062718535175024401313930824140999520774805938497998902340844748124476415039037420574983927638469485076156568248105407299408073128780897305439261838303706115543848980278053786474390081358771524316817932589885990584662106019012100918221504272804287618638697063473762063761736992362145575290016836354549213986777542200828860135295099107064381569780713553137487014455262873985732125163644495322537289949679768053402352291484709959707763790214721016630139946268352342945366652118726880219009334351360416182556720242671575909315252737311917107434856712933222800532953929524656333333274179982129694499833652060088021170981671022838276250853977002663404850507784514106091303765138340092381888917698820895644312985674777920792730229191550870293775797795660223332902785306317180572365435981329706312213445141134765025757145901569491123732456780936484244374290010699070582106144259559732656502391857728217600594282971025475877666818389643374944614672946616337444859315913363959418772255780720463753793951263532228192108864314789001285382936326927347265964309542494915021836795493020774943961426853913384328290855788737119667903725306667175623049335651086404531632374738516356910232154555072698032662854915794903912489526027817491736611444333740876031005951598617027646341775623791983645708546405941299854057067661509561622283596225667087734161990841126882363392853000303299313105607955246743841456044123286863072250708621770483388985724485880872658005592004660028256999746201147280412103002714979729088899901409663567679652411238445181853678054102622522737301640244853342373226521768389753353000242651379421013021816735619708417946368152541618683443218648471107162931512064006573283458284552601646778327808282421285743952587186933020104216945983154874425753753044320998278542710309844940914027426893870324231177516796374337071828124550796136551517099832641750499843579707968847406276812689548199725428334626527314667207520773550205678255666257132050669550310598361748597851188747169828729959852810968474604002750487882215012018733882420723635027952688828393614311903583733674009505603118500351550326366664414087581227174268097863456341158632604155497859346233039466757939694177369763615324231010690457618829745424712049751296307476761473947703096190175870021796150663531793593952446636877503680549678961849867947619730157018631833745628569001422246670762200138683074794871173996988114077451234453078450987313663176044475737102360331952537486194524378763803593294777158454581213811707370406124879511119992720353450631066234213522282424153593910933555267050888028602420083229376676748275651228435951937890196320882729472570992484465833856151208498138492482675814974297959832670528718068906111712660473915007415557457935711831231517252286513797341593425714662505020454115003825578231114052054153340096042776429053428883430447108459467134308642088292861203727868005035179194245756076485107133139101932794252184961340456117110590601929559062550464023124362870262240929171274349544111234342033622075756150766154087120160257595252901371559873370559389042440666985833000052989073755699499616335649359455488779655449371623554220217023900366627223457854252320819561027970542873966465288625616824540421211878387663328867758399526970474648184539243654983278665131087261831182726997007313270489116551407360775791693543604503316131383173035726756756908184744262175844186857152215419405729410228553900757567669478344544656955794811213166924314339033576791612923078112216434270801554591541315228613200374058473628002846345370584273145794867352601443471381663708522534123120080259000432316384311912247926281013287371433325218560000999864117396939143617724396302259654997124288189862656966085976041013394112036043229695970282607912932384362182724638050732171043690408399113422681453325272809763945771195561989537564578892319167681096331398667466102310100774665735178635927448539959940267703166977727888392783786165547496793469591799887342491003467976185793116284790023333214515688724609881700389923817029773938540142614653880964260636791233635618690444397897268424022998032247069470605239423456103656516572962054401286265037678335580480456374669652841763084885219357302629463675596464361915808924788458069070948947959495092612840957860960899181078077732579843801721019405381062515072227192729654628517931547896726516388704283271073992371478014507790411713392877720549539774549265995460187045285673694037211488882456434274631979082049568603758426063031445848692050760308175406911998814076787056189109178270422140491283824737761055962281019075461277603651298815745112526624593563119310473355529461194005136637679586892444118671314129925862325785095468469522012912241693914970783095053557722220846290808796252972936319217071371609960623261375998079216713618289708704694960119806762976593754482270509451895690115807214264499312259701994320516177116704354231533055458494974371284824115968171103646887500487516464257988432509565862901535744073638891236210467789546962178630771471599839338100896980865857273019184902071462165822133353910425190602592239496324145856189135882336461139633514930443657851819078107422588001887946669136040252661039391639999016748668675810310423321462421064125819117390774469042298102812701671220352667506395095503435217102953363411604712452017156283576251603503607059591237745504158911065472292386464583302926317315059741903515063306832606200470459716133371367389345765009514745106562822812550723125438755155207908054875186899705634028136573700810595376383659568515060194084430801556385190641405911815641835075346670780702541247325107467074596341345198966289543800981906819428710382054531760628962393445288182368847568815691093947288994372923506754856913923610902424692314639797888630450249802533235314206271848369258509496993869265104939662863660178697363569288327256354044240999756621114556006922221860838035818989362156362311306201759748709317786657335272749983604639868105772832129431296908495351930652088508887604148009862184621843479466032601898908677489412107917720833993375937159752013760086645068391995269110980837069676497020523858657366504552140754739771858693941579384679474684194382649869600184915019038315341604042517823181652248405781649279589391208215176630906124183184520419502070436672385489376575448776756659000840888340821671253731166904671336570599455992972697100980377133786282656973386693814292318053342901388189005092829555025709821127973376931121695669547548354410685885944541053283448189725574912244842372003388905528096073562452688849152349260816879274853081454668209253777152881375640691242657042614149940083310254701660251618345683959135360275093609408023682784825723865903452931950531679550846159146425384232127318094018516765943350425683416303591624509582354731737903265354959819502586517465431906216633300365920961094115930967597216780417092605912494679009225256241660287102815037210546909115124981014347718004413789459765448608098225708453684225677087013844554145926998310667646158043922113835394013761443143366082999768856143878289583839403402054856614260571626984592582271846554685923764039020368677277709745495853850540622345719810356841366829493453747585248618610211919734334903920579373584866381330752245918962946253720670554228229877372888380217094770721000799201253196284423447563315611116116896459808367216021777433307460341146384283513178092165392960495541278494605918302093157053335118755615330266473405325978555196971926782408695774239351752075086774907398860524132738381303230628000933010886817071900504777582250068854328071651345344390706148619579769217713709976398976592303240354053089338194642966895752005797519842074113162679307098078804844207474170502198500596620771089534341375479340621686790974179773031050871441307946085959307171779038635559766155428847634776713590459832903482592688446155803044888736100225100847567065867293208223229721323673360746789091344473226048100197229946824123550995566135120387712618873446184207430910414258685813940197221353109190043774210194755793569016158923781118055806575203462061285754942453632176731539559017226978703442186711771496413336857272769357937677176782198462117725936908317988168331698598430911492214427282333964832720156633488646552575829179142663103277362982016938203890714718919697170443342644108787997783926119736772669358877335338603941761787047870078844110576334699792260927888205492030178975881268606126841801654459424741203452357695375969401362661345298897713476727082689910365348397834547665694876977266210633212283671548756635769320807805733969293749541725969752729899046225118983717193561179122462342947183482589198114158412608268967077552230782813869809762087983872953151742097219564603763341684375340502172119017554519335050522712818301132597411340048172191468048180318044581450762373872360558174444717291182885224866598169999173263369167214253486410735716741057354823388869467567800887678041911414823192539367480502295507237142671259228354614561467085417389693799083322714408798397709598823297265457936355139381896153469214500501087565754212320580360683005664636823719861244381038080450074078227920365887684165720498896234257594913212481918347726897361880987906270565151032129209737927221013776652877048005103444336508634451830028244085996670777854934476330439509161568670000012344475212452948256616164329799027047472618637015552238756479079608721163514345896022728787208606719797317233042002629151373688936339817562501972700452845498894209487871777388293606510944963693876913624444795539607615637648218452598616264289324057888911977449397466352490292915214056543316608916690003124736292448765512753651327338895177857729563166550687001273100949719881156982911315001239934884193917561645266583210347573285666964175550503376246988425850028816492215261181865043733615054376988851512098434864349504167050708665266248455311533945775565155658745021977553646370665944429569116033972119302537334449371296624820413419171402920449711777854895231150748222622785008193086615968771660700462928116191304343802747274203450484509422423646817013428735303306820364619195253748749660386551785007797116699164532702781530839798220997487338367893814062702330864020630042147509980982178350614624205027694722538047466308807749239756546083083919181910174403464653282543761678462788498154419529673226200006632503711795404416451731605289262490622645598393868794223233559256462325896598921528093459942138839178488756003851127196157811554181355246674039746725859477963372274821655796173033488346279422279801756361457553189551784027761172878456180754242536495227519914981915488407574707438979886785042574650461571542193294047133685711619102133181747974237791350994420551361698429502215476736572446533707745230471195700661555137835028974205313515334561422059920112024548237498209949259205614138184383935161722381646744655949550605731079401193863528423079905978125653831755643755773586878555710591272224447684790881689589888239343467605284537313911496280452045268817621077933265712211821000578931193961730751183891743908559051125482229066332804132226158988053473180462130174680807276392684630185329027415125375174795147286742258665145994159640959420605792427149034590316277574779564685533529679472964861917559321751374165398536215643506533177362656802352377981335031564685880622313978537180690631910090214690225838792503077082279757585739481208618241411520331834875327676941663528719185552581381802945873866172006759477566641634146220869502129550884869643085694511341944935605269054287865657602450382683693479998801596246012788177659701522432988168229555642320391652250624917831836966645847656659906659800394531462436046922303587863167413561370912944297150053951396667565926053929854420677450873985407453207147123000386054406454672305077433209853800725106627491950182863546654311235683296688648037798846338019098896581055913991996262375021325179993185619021068321116133854597464684841283763547006885655766778663638298437405400115562584793459274985348395091854558400168042876331136863656742530604419822095105049846380185897008243751271877502702860401670954303128203570741933731670155884885828505447264633968390669926642984395607400696850671751821800395147069527039763860853559661373648210350600369186318418932476437790571905216958018838581137621211059363963086709181126804296077085740921887100156163455479703838689412068447543404066578405318451992301089995603288202222556591790343182204786211759477073608270317593958830530421859420791499109116843894565763446851021631261123946345542632870980030518322316720318790513502966272358216847848930036538261247391972046602764367807672564882788582466822503488723120924855207170938130534704208422106208503309570115287089859559333781760827080430534231458162896876366411209674556197419932484618488274878764471205840385693257443184532444537835770871653433088536295041513141937586035868543795969278213638036527627528378497789461410465828767986418165717523721678654674696666235145837918384049573082985411904087903929605328023856558949264637814837708161827097132953904748921789512548153239796202318142600846314888286180846184858167168866269930025937088133195755996654944267163458619923093334105936123764662042513690275037468247773170254592755328945478238014704194464086440938647151575600440358617878367354236747083981931684713545589901373322810554361368823781465901743843051054871265394127184683853367582594904291067289049317035231375165126548856158389793656726267284888002222264470801038114332385019043339346090959947465259458834175609542073699495804158564612451637997101806533371562733417350636543812286979583105437069231728421970804036330173670936636750847307749275156844607242579297819970126182520113655354334192294069308569660903890763121876857344394058375097952596645812596142623013547289224181541167287730300690718890580528454198026959137164079402966876064942390974740795344742994318736372946772301220173946035676025278886567733484118751710656444074195484656403366786791501457692710807692864476440272244817406071234358697246965949491677312247599338884257070060061518032765860699386180702661201874538380421354202426058395971474835376204829706108167341684102881211623851134701484486699134428572065527556679137732738231348051986602279772683512318032545310785680324744674388008588616950473800196397198516716608206169850022083243219274705660327789815185465241502701997342983160988273423004795215627235319168237423288839950647509694756677475773163024221419737159896566030792437893246801041727992644032120428304259637826351798732745331401304270742035161346805715645560686778972764081401991077223864524865842038778656157753520998015276673264011344135304871166977884815905376851926502900476080520855215075019851313046015089207746293797534465466616518708556494969692767560607872688695274947650714017858784991214687175594956813506380659137304027307088617134178598666811333965376266546498408314137316037020241635863122471459222448369988140319977012931126021771340472575571789025996380498335445321788803288122989621091687565307171595419207729058649058238884523238771990125818109625312418999801767841397156392453720640399918882189106109184958559772522499055526140861117000539981734516874277135441715940381934926854384173901890856505508092462517587615740862463169897396250691934187919472940908867637814414438547310647005088750457361033344515630574725869340839529467095397372678092674731603200237470243893547593051488866163441284901655516363958385300030022536860316845508131307341810764108691891213358979625172679530592105698040903345437914971578128156810474721080314894216026777673695723551723032779694919158612103732839715286131173177858235637411543110118808748194895892656423086205106471090385430766893685102093327490455710153439072892784637768673559251643524834484119139349392948338548909730489829391440030995380600192527820526400936653316118403072826336997717327382972375698066554405097456112447637077052625396619962935015506415414297290949023761368815314887763101393776645672324341228931896287165036478864778233533999157682143900839051628812801114455143834990838432014840947616716844199964492560456033826115169221719564546499256037312783816685878637506645834689075785722968425802263165461235908220422154700263125413191997816274694858862126166149700331352995528788725499435828046550863124907409118067928755249552512125293958714535206307258263070149070382741863945832497384767277432313324771812548576513180311723861577136222079898453912356552283679224771267189408776517539745018313619693307249484242917245814949856114939734416282132515916654367365611820516601538397140963118920014174977653239388801517416114298489363854150892340868259997638494370056762085433993899437962726789978450604956908379636160650776158830401043655970623256601305328599802518881782706633025995967798599922580205516846221137806747034856859002951878546394783874352270495759861844029604219902436573786953057663513065470503921438980681727385307684122082441294646989924345307462431020794107526863306705331021796809073018217941313225628000535051168544998158655426751605496067578045927060467407358130377234497734361371295984017063309628352629120485745201698770469004939106394300787050258729813329751628521506349807308982376097115972944834689368503474537334635100179521629254848734187515657221027580083401598970239052725061511883306812004947192216419185024026480797150099192405640492142297514761833920718192446016233502409256048181510261597436486753817269133244286163383840985481409549893251967539734105600519081627510570760448091200797167335267588822118846197674226598344674782722860996497111784133280253662320730193507728896070374397459683165664726887585156200607049340751332260641620159838925685647413980394451599239556735581983077471860963590917226670503059663217549830652309677285422068821115714580816449979760884799461619957719446682582754820752112502801350771588458199209583193829935738672858586181629356053830996788597849919160299994182089141383624246598462765981799326628482254475769490706512850357276899932686982990252207842962908026901108822269869558785209779615509640854225349790906920695661962027345202794815450812174701656816552519853273130418244540692189800053616370212228330119704121140597479518048735997662946513971045033904463126210043117401557630463293060184599386663873540516221615987321745308581603267807113575444851692763824200882891494503013831429179456135714503799146001109180851152180534305081881789699154824516338938756572303603310642993259156254402508833765233489915855218655671494713394169337664297913234923901093798631291800704247411875652384686424129045520406243668954168457286079282546169204851525423582047178321797822215811600135980272979316284763860127635716742584690898986935710954832986153219786660979433888640008169359825762208740135418504016744204550564050281284774401108075672989783553848878177363144653944968421136445234063781114682653509465433786932291216603679246468621271895905670828143529379450376153131513618888946459311445504773683209227836422534374623261864419536970398400064566740669218263510184496489261906036559967342369455297809545214043708052447586376279535259562219482533665077771881951492811110374401429499288440086467947820222680224907430847177475622935293956014240400944789556367051468737328778461641715164192703657145355545722420651483739302245722660156730466688314471187626079529838106338717059096020481371313619894296715197547658687553102493596205573669237775861421530352516550154598887615991264498536399115101596141949314166876289757038199584785430831256943803643175019231414028212622834095694306839896488965582582214084348150518593505339452553484654306898609825471202139181089955469088381645626720205127654493983053836229851987980456558421559175419104025611154789781559038524819755455078556159160173287451561526821603947248772508081089630611738293077627352603858434962962626564423828720249368354628479161048129117513286564032340110857225493339479656421203879029995333316094906506112899989791659948375061473735236247705918310111994165603579056983419068842885270282433430474212065612847964737515871883357358308008403923499801044364275569360088760745087079244798091260499843086487587837334350383930473230313423311818137383134036337006836248196345554100629275929457206234144393001433771980281267740275424891687058737349279081855834316196071317692835376527221379961976586108927845019674529273190667960589106543899625952519679321404227691410924044833208030272298011637185136491345712658187068056675402039557636873626326144369407810336370286732691271036972163396666804161685405873751855045809946858938421035651584708499124982184822209004604169809114886323374906932330808876163406720720253363526377952295630317332792898259318182693002453991456296573886330589974414145548536318354933551604491267251667765569863577771186721254509422337142487394749598872969667366375555657164247732881607648594783797804043323402370723941352713324127224669795684127664857284756162887148308844363896821753378348320257053511807053280317974830953694432443025039340880902607310963041066484375308238721771533511260014299568149979338696271519085343890164810445340487696428269512762067313500893411484062213676295684687926014688391015526463340884358896224740308480163083419566164607743881613484916918075601034539870494470299436642472536831795688047380854460259834286256206286964980786153869340376276906800762711410126533299997017545882605480457412338705573331977772855669462863204820604551993758418033029406808382698181759049924498075267789091101047526744262952027680143307774677107742101250660778067987813961993575257195839572130458535953110784790091413635606701495813136342843213951007872854739607713397503277864628802826998292227465609581793522546787532308191747201118535938129212609650153238950309683262185060312596525898491413585778295514200496760994590604925056505934848439340391099219722350192008770997273340005204558217490796400173239981941461960252609371784630718569625657642909184384149440942912240208766289287766626021716936081290144875002937098786806271275246602076644049689448136210454341005109987889088362044280673958205762744734678224957398785829563661519624343739950873461315380245412375402688722785823951986358034516610494125764455898688112113403539011811046098418271696351838953471733381543308669340932250949599758886542829146132530464714702687698760193208769122535370349219301970260716394753489437410180498204309015865615058490370020273686925191226888639462547405511795570196459678902246311761732446715688273093724056836852744633049788244014972606391734200519350679866003024142833907313087775163239045497944299330821933885129751648793722730054980812434120913580144120388776945192699985360120034953816497415570264234010296309333963065825469615229302143047598184424107985171124945086985883989225529588708451071645250940582562935984039423482294678096107687913140872449888615067472726964622116561963991007834712729675778451056211593194859117313344482792034318875453420687809560759493109613910415974945224559162555943094859757120529039247741514889729757724978439444858742818477217142722067629810781929406162793719887492110014404246356981859806138994546546239470520284178612394618228406523696829135879753656743089016795678186040904339673059794672919009328147674485460826342243981010520821542708776457238083869101552904898849256874683004527457436778788676595426942199325368484775765819586729500583749800197710087550177089477570314979150882304404996257521088655942903412059965885043190071400834725163255911525584348304575954643550536496734300780970257714068320571733629316415552242465440136140780349008994727417233888876594453210338965588806441920997167816115692315121107099256293628640892526999077897654360342989881717845805204124374311516861456818304930114218698169585655566397989846776028984717526890928086377498525548099611054971244721221395803320758350792121322270051361773053304076911254635462402042755999212536833027933832078686841543909439100315953390939368962737273288973421529554322401787412908543819034668960092632896735937641415322303614201525854109241392585300300920238155238943181877949417529077990854627572824235850768837933069071983285316429845137949142673616338837485036126736526592009258799791896966875167136545958249710366850486894961155041572237791859506438719993397701162807885428108655506550156141908084601840610119027300453418678115862610330243192791286298046359242736899574139170498797107854393241708026694029739594077950366031068575488627085772114782465873265258116161530421407419724043480360392358231826713210607509351530811446837024451698436828209501578546794161988724549772512541165947514249489730975603184090460334535801825562595064230569948304301171534184976404945563776061180845772211369840762075790811163891125621352626862874000440835975883108007262399008198442426875449730686791572585552500129126747294619319315456576858047424866806749948292928036036182849801829818862851835498837858573069834627484843090321587183873098332110390286594204794923007258330867947471100215500371583392755595068426896118382660808199780898587875255184425877398400365940696868650401707265908085301917772950439653406575876043717201156237282655001271907498998416770363462761496171381608064430217415983178572228049685605638635199530244633659191756289180811020927058989828484714415609884518922162970087000143802265303987260133900587203316374594338937116780016543922408371989886481974940056727627479070924519390168586419936643510662344847005904576482838290580462851907057025981218648207742379945685344763939528059198791877030185112433222009675714382796599414279762533873792688344709767992793827844453879528367793484565921244896199708001158588927345224493159268895097246556185764395730434449392165983339113105453831028693784071210237650867832462901688844825746613708518915778162922594538295876431255384414351390055577983170151798928329104536022198480336386461933029484182160429638791805571444423806173899589789074814070042830369262665941607683894655438216012924202936145684393891140986354621521181891270660549202549333524033600534931477779547471834079100711890569193542345087698666468572238695829757183768760795442370286462441451987694685109220463030427947200030925214408539289808154280362443298312189322349795767175705180017527809084985437696548367316410130208798898589882739307091421329066972578467459205379395843107715526637594192158218559574576108580451771708162913690691417477243257768644622567326576557741472851456858089743097667413812490961963720242645657722807014839716039920088517289416862314960502092522115984305523594206922562120228514150799735815679926783140074120347580242977406423787909829086865967238755337966318808294009522180456422435421215141591923477831028908684294208479090947629474593793271702013306434634499244803685364207459299985399868843308902585160075509830180224281311816903987550442736963497878368788950926191903483639208384095446306368909474225352044112032294562558219537319687042245524214389729594134203511622621818714530170331165927250113302106922239925329319844641056355667790995752533090396359465672718308663962454684825934976451211789040221399205859948656534517015766852028386305570820739404304388770278561857121275984981106565600245494786745522196724145271458064635245502273904672843389593315648674117007373002902632065954839478472481129228596705212860059021346686675458957743633674187592291773234321930495666516955210131425408566310624838291865720119407645771700251155527669196199002099290333382188512382966056187723721042957679167009321486604763643233078037414268386023659002098144394137116248572360361238273349000572684667164316623394777305165356483423542243322486831719317297386031839506655886294027969923565350016821050457897479343621231605714304554614953685594797096177677068682732429240376538981072488884740593508910729363185459665978797261275358923840479336398749265858584213084695211440155559643012989138213884001875648541822529115602120447095772280519050920385304379563774017621509708825739437249600840658717964079168981616949585328002528178204520481477346100331581166989579767602461776895237968334373331689566832237085344790646918790374472616661712874963802805504070125742953799246654026177428311383585982339158088410538659747611410231251782006832677596702742688971596021230460272984643229874887190937005960791219652406589376912844581842489098084908380808137518033860820625189104965243406794228497315764484718421067399911331400422566541433917106228843380607255847485928849220572852432988259725214983254704382747507261513473930351483334674131408310846669483758843811715368453945427853084854670518000637073466017934872007181766836311543198025271507325932569359526414665977352241046297696419774348142580270237185838586460862641703364842054628399236866083522588121272158714531812163075071747045514744369403669960891304089932743716067792226952872101646367600679227981276552007359251342416266988238983234110579231286574926679871951423949625982938696499743279932974750005085003615845178507153782029220343955808089527610893465399223932963949752832364055135052035857220630756535748069520466578184006978827683606980971791693514676531016479740658236092552689167554243734820831021295490616387424789877179228845460341441744864904194060187426333383543457968713723284925938832369171193964113260555273754907763870468966071950354900767542557572218090688904975893188408136531145589555613286090421570317767267605854817871460351318171912772784119680757575365391515003234120894865155009818667562858246114541757172961069283902051382202248585161624431827576417646445891488138162036261076859029985121827440182107741237929597062816248492983420323116752773064435364511731501092631046537844559784607359528014500184714529600008439953235023995018364724629548699089180754376097608743845013099403689205050405701730676717992063473849140144647559090285744012246300449809035110718084806819410838497529645281503674152675417020369842164973383652948508184443108903817808293552583550951253403122801329602841406270491415084561789159928999946503281673198473373819180183095513758940498429762485638579252595879880917069870930468541768101197792290425564093835454675731957784544108762256634530158530229775804200383667379240047716739921016608362729531841450220406361677611911430805405581248615273572291458652424973409911550346160155113305962180700324884981009801210039156232714113873739266418292250607533633097259181106249405952890176552580506981653199108234965226644890193566567677606599842586648055479164354480330059964616302436217363240770218746197897261376843304215655555875890680351607639564343466667038770583360535779499632859482074675353696408398577695056420245815058315098496324227440350364449363680400924189078517583981493873849681405227198666548066222753274934343820101030619215710871496248718044415436955263558429608423786088327301467974893710570986659614412972143812193477023757696569242878006503943916656510809715018275092006005860115402096282791872672034266489550745132131200583913637024048913716252338151312406127331152783379792130931239953930448578774009554998795219499471679944709502083758982389077393299630316925104673367039003015530360329224081890035819717738297335350996569766295762332939891317022666662538495753594237608640058066263927508227971158959808214826003314686970027391193744842529808789624599264814096167516152425248359865234350194261898033416411157213908461317976018914500797508216585427084568612585876570117932322133442808877467605572605689165947148031905851361919775146109098123473988072881779692190706293635284624054801824306759515421190281119440230679388296287815521131675762443847238254587011585899103741676468269709347260086353486674947303538822868329495287294653543068105796199773448464602718555439126900564642811024109825737313716485419531859034736063634851126956240738016080410972394720421304382250766050974997160040231806512597178010286140708851224159808492340896224818507053268382358093869859393209945889044907771825834684910961360093357140941816127820483026177414509503292315945854246960188126161590612969248286913967119260141159475084161134642686062631814084088157689632717398912461253679743882925197579467191451344643150430467851269821206699539426856547215295222482711491045001309764457750471985797264189073191585272641954979759112601162867207973009100600025519822905429226122839126720361002978719622502940829238384906118316017340552229964125123461287166327399171007226500994205193691135356655917294117124764033428964137404728142189968808943311440802629371493639694040894574844290893869211744170443869870253594107654918874973451098460226252159596184688062164539084710310248303852953463973192080859019276360487750786265750814726701920613162733028429590752240155530600824590558599945632310156294109085422405534342557669850172728690625864593576087817158546347618455533564317033027148768515103019355781268840568479939055770604590478741840862920651175978682565815361036120626276908808097628952681860468098361585760569211357206658270498446533597803452931482693401134303391148249679333630357318457994341705459866486245696148125282107623911578576782807616978066899984734035590671549444132300387440251160656485883899423509222422389540131164441101271179062914691788468242415594468550325107065621484801450706607465131959304159267342743087286365573626547520899182554275929615941616519084759349927000063670552423605318039359751641923704359615133926543580074614659013292112090612334974326379244107620255145503134378330848389915120151430629868263438318055477057692166935649863508256360714329546088381149203791612722224077431302626393965491580129819429320057220366911456358314337542935870656937441678264209686835333094596556864009196889903533367392722123894872584160348640910087410496543363215255877872639304990739901252259509763716109068715660996449389024117988301377754506750812500410522303260169749807178171429035340487326939452163555730742495154129509343173973326505892181028147351380658014268285762647563807052968586628487011869823663505111558737480375350429258568714129415740124481254053750616706923895371040908934289554000898775032352602305120445710125029847461387190157859933245437768780094846153965789698121622693348301451213941601748723018360307205854953737585433555777847265864235410563932579020012552825160946828307455292303585418162322463592011700380368366960967526510988027248515880389386964508626542785289663992633015279574182373639853861416578329425391474980418029857508507222365622405771365351827513921683784825040936419361599364635233764239598269753883067217685520446432807260800160210446681599278996013783885291084883137470321678048934996390867055541627018039961578652393159993174732099262225164149211131608174818764466711055549021807841801721378220144226938568448385261385918253778419801971717493306549927352896654111523818994228776239213713348499297869990644082749106116036789319910041348761303185866859296529721498518147187806103021374925969252868701005209717958134738739166625561291741781520025786187459293768270336051686235214746463019097650335718949838036074989290422456449587257697836989078145994046471461462976841504339699355689123352346362796941560769509659552691395495928907750953927594665504831214016857012170275890363431938251078703621889065907320919025845347181058637370347219684802959997849052502100485964640018547318570135869253176242032954164492783358454268667445224295127058203772276654440732732303598061756096721680506227655948795210489940062587718125865932722046087531730230509610644433485648849606535576946627500676877439470338128422484795839380351155307589151606582789600825606608270559845887458276211793391369960871692365651326329246500459558222887312848601025602270113647095890398762290664369480426655840134455849564860474745888594972022260756232105579270092116775810670578688095568873219887571679142545549594924377647381140319105810778469345458296718031054624651128384558189771449757413298030099990178723353546500603615412609358454310389605453699342693329579141045726034697632084181834029280709191971159068692130346916277458603761464566964351043503975928403267931387769435496924330140706538075032203682852891297289496090597073613761996836680934484585021650108191859481096969449894044952779764548512187152095264695924628693135222217070653084910724773639346223441884583642472091305605145467495421886412430300132362351550179593853828094438442443736639583230759138230101884674307790807215319865669335365472628556596885197912102742371900790617876127415675435472377360501130361547133524926210289797044912815173838041967519952562635820937569574367995356384518961600633334243557533033854914406550105318756104499938658510478577734511433958082245552047853676039212065507876592284947735937920200194316574483106305151058190299003462733965061059080917264748181464079387091401522884713071397562695182203822403746402652295152589930226966605475209226672332646584691946800574220791607953395694042780448798290325045809136753526043727955833527108017277501580126820458477677317730316276618702284834844770500721129307410612625326599493596502261923811464622354009125096030413569530036434696424775953830601413474117288174480459099645707774384572513347343318213974069078926677709602843827328235589813312759607714229176894115287537767168039689003916266600614955437024845245559390122284722247549955121840304142684331080825067608059840472635671550222383430592868917471993437906804026788908737172437321462443651931604452432975671205867041038229126154795059308341304213038316957984356436877485933886140432451400810224591448879678012781409224609853667191204328260941974721588949425827256279723851857614201953213587769100867829470228265297048883851599131204851593687343533527000001568996675584499607090983177556098209595777358254689299282446362571810483629775431744679676223738236567777897265116966626231258261423811952741199768347674746185783833501357234029732441186794910499484156840200638287187981258574259185677562847133336115140840983860071793622664044277884368489647626372975827970089559752175981684551109916501742360984971830955446871055323179658189619967006868996708632330787419619941845701419404462563679963738058217067972203215422537516998479404503132814751465286152514298929827721781074094697449549450953572493466249005664981591305126944749849880393034094434480766938159159344911012647789151724730670653259172266244967277858877313605599833095134314555551652750219828318623837008258420112588137603600447062959460504031859996766562717670958078736707194874703469224565166657408240286131802724185348509330709898385097683730776533991027478810740176834117368716230327623925452212842835753545237274537410208231888623049863092655836763647927315942798675925639073596040746381629229897955878314886891803735066355865070803993690963797098890483428705549817196023610505791500419930651454200260107248001551152605614472460160537763510841258727192659004754887045776729088623157934556984003614012285514996156326480164151716402688747878395402091536832687632649375996302597656699266067912159668326816953065700067401864540336697195229005779356394880941237154219307029939034035969795232926415144614113220503655181547403715702999997347916957128269863611100343900233409029014849843630384927789142030311084125281744477197213280469004775306838504456904324391676796749115632494414663942140911002787205370697856514957533323253319123299760689394427019314613621834040376607930077473409571595085755948333720985026939535359752346874510887937974170559369323344988934063249767744316652953349820318718733091461703299070929678561356024403387220313817909843509163997450600053727760247539005137523163363504733168519279148458720333911938255859375839757289300303983686946471677412711115205500550718659233288112204836905625741806804286677758619717732455030758758011177417617130815428436597666934942656575583975849203805508086600751734144762612561784096359708527531582418262860809863799106094252608136095492028485181256698324465430074633933790974179801958050804177379652819613385713176419726523088684304941501414548756577597220588564598714780791509918919112829029836327482871698265489315905334656860352578078798665001333096367359426182728301826405669893686584138801431251222088339034121318649265121291379525088841294457812938695181511902464415736194617506904836556760281022229951537826973357140916967584946597166564917802051782457816630842107487477625638584731398090823690767964420662263698335828100865475487555651203134579902181204785635961237417290340979412178670059161527253130754818117701568842365478529222646305407395543830049854378488975082785982557498318550079495410480528846486934403226419155113541153531038401317909883979696534614741902984744944556306254643811189046274895596377221851789312959190602504898657306770775293057156662939541888870894945655100587892620553044910382735137192540916306157929991051450199052719127078029803919446486685518283719093129644425390433901861600207592609312284198079524424748132118467442650511359811118370965569115737770889434853146948576434708055063844116317154173508727416217226717717158381165490958138872991888129160620900601146100092393462310888684858032006268303701725440097328623354085500006185460407631095832695385231738726546777195854821733945929652464667860817860327717908340920292921804374373499231761842002517492184117130428244313826559383214538153827925105775615419871006660353838903232562165968210256874344663055329741428536267602392715911561605683915077491956947563968235971491451098398470225970006897100197179699577647730216393147324882679138282981751706945870419316996222199714887936707343291236146970660784171540704747132000164289528705520835600613699352296709203572487836866979417985354814166035098474960303866990275403020305916316045554097482293342068214042156250399651429867106961906958688187421818732733104732160962574302673768526364691248252502323168828275173176766368860357562068422559396132082667605888214535103662095459121923610064789990905080624763389848345457880579168272506832360259473607122177946961377626608667662617382294751623018456891068504168815762590885799075677720042944804781996014544324833061731523628909356426649965539025550216379481869383403357584165835549862701236506106277996501392657637812015691066808979223143638224501636019258187088473603048437472730163283262718895311551561528234318446766385540722236438203999540792587376838286615919217976941780347963174697290280623596255965369295540364170602665557890632584285224330929955779313564648580854444951548572712063502052874102369444817869211690376236670062050373742142485306857683053427501238331437202126504838017495317058214414622549657141280215953752827231554273337750246341147300881136168800515635783595776799495632559457135301361760280570216945406709864394249118597780487756895770396225765686830731085033658307811535162476723285100734076884859611812657784782877122663715452809352786884100566181955963956294504362264339765313127587945973665838445591216906450058181280895684349200921722244659891823212192045620550997793903199216757078963853895211534174876170481426031874167704497726695927045013113330499594192280726654338187584972560089296607817522213359977155186426626024417315660278758825046741424872737761482166003994045539775559518737191568575632200515892985944518363825629684729737137854732465237467932531244007891778452610236991109987060507966168685522345000884534738347452973132624688300427440813683159644343625594217690270716670550492319354369401295795150856262380901259897799419609006107883778279707699296327284603327625601905125607886095289321494749627086883221470838944217999062726257828600609682349009717710808220373063550715733973567154147394641115496490199604967454921921994308316118182654492836915214312824378042304354772466985126874859201154140021321446520599184374397115887127853381365513441306467102691340551879631667761094209650396637635649562916804272744806847869392376841814191748877271459326515995604416644491048356919945971426017784524388744229035820236147056897130611416580868447244740042569301052142271562897593767332116327905064890231022893785654595891924521583012003512348999227316832356781423037676824878088291785385958713256025237256255854643383026797057197930354734212819254174840880039231359918885957763295677981861264002588074213738749743477202113491557257907319147404442222079020110983266243536973092626577263854420621759459489514075165527745523912178443272720140926453456376328983465932583498010153444627844335008599343633841939710370664746948190358462147428834313201439657006655645994560842828731568711020966580444517805023586259807995446365908038415433101695356709621957416377905335446739059893568013365022176437464108101201225246118741277870031297521410235677838149482926118130208207393798233863509935468028960356915964316673764864576145577392239217473539708500335912915507200298656220361132706391301052279656814703015577810960441971167347154330930264291444604826666195195073560318484087163001023026441236353493257736066357288634673348563673300305801008197065332562667998341130924602778321255779072760970846219386131206225644677526321390222180540026731632679791081462515672447386649064250051674378960670771963855500412814710592537302011542800803126227791126732797394415271052984970050052586222595737030695234480882047568703226523714188582408965129024371896860354403161884516836442404083346197280432118782744789907583920178458624588158672048936292968110447522157367257845941471630666598632636559355626865512230042229195221342879870289040537623761805244656809574210992353245778145094018169276395705277775055794231835398392285300069074732233549861434283183420748076014808524827442079029097533100282962306526822992824979634211843707308636074626328594894298582126416023688487627150720662456492451047307821561875684389493471032396523226166396974551901931315190338268909676071908089153358314680987492094466159154023916981246216770720506914505550930040491997990469723594003557106428162059787809797149486739960730643749747081949647071417170851573519217070671106184733543389848912353622048149780298462117007799754859944597500544411248223630569528171432928355265586328779862630543461110535121643488136064408835946342610719237581443350029536430721225053406074788387576747358761844808335800288134625825624762346469665939135028195812706639610328232950301450529839299027447704967821022760815135539816495245500252949318855864197822004602044962191917139460517634149490757268540024023334256142748178281666827628228458729647169342886116088360371733374870821468208526598710074806887609975532358738610806310296939418746075879604821784304017543099625760257135839692404391207598930934772915000119720189519193466061355670728770044425705799328150864247520081418150805350611873490850472300829432883852923852693195437114968674943021179238295461759865475774708349177568542094021963219821592992157901838303343369508048478545779831679422395826760187534882768016722849694490566448834081447871492640164890609579520766783847907864460754697272448695385259571973705643210790354486074585356667660918698479001655532518433397233421648985478797591904952772033860965953663508983835680745098764034349602797375989505449750399007840180334886838472262907999503414082978190436996747810933496741653181024199550119682750762278705402746362958937324433463785079811727613632762809685933169603354105568262179800399793195108603480282815486417303017140897349888572501981105849040053757614783919697919066773267035792402622153162924353898816783345467626439254140777735875615464189338018687268944875258312810143935726498158110525898477972516454420218319139450646191655422157519284645875368112706868212811119399346376475537695318312236234962095881328182454634371932951487615150140864728902906378131279100488340898512893609342154091686699382720711434269203938982060901898343733168308173790822413025463040495705929271464771537272503255450429759180479774098303589472503443650473074502692878908717138297380556964478981917228321689292445923553646936391287965653178480437551621112485958875289669931219003085383423236010665204933572868537017138079395081351160429470951739026057218315045547318204697002159633688480509512323134827803846868114043037434931541057171475048927349883244141068291313249512074471795429024636706497910789755248836052716513200845254692395743141042957193535185548214970500948021226926830647927024712786826117791548274937858893436894483280888414391682653879562277527899274510310812446438822619504809614794377021164827981452921481665505182928295942090312652795118882359444125977323451451779091264376459959970839223669453780772164425159532384116199890915943920388442933966804986579816926448679659184023405485914945370595212988150953334876042679440913962612402117561619729755079015298524377140953210208484437053348076990953927892757570222283860628832861196382442904020555822633572007156094171825752263476877054845551891600161307559635969573580809190237047564286523474028499393760926937423446641677402587985880379046181324107769595316191250937531081640293366764969513435958589548373566297402915696553739891401280272584303540348309568485380405169659775606617274674270005989596269726595279289242833588736973236047012989749035580836372244327900502988042652800651132370540907181187300031172827235786584872125781880647640366112813722065316552181157622724126650690811507402121616356618635951702607080506435956995903383987714920984133864066555595696643574518602558914290601291988011307110655725187278476480290976094777204039534285256792291424052055532263542869874854034728906104042614134685329744759080034226215058522855339605378608465574069365216235923545469258559905609342666994095187276985843049154409779312423128935451187494087523262005080435813384209639713692507870656351708054570978186401851844161599858059665333571783887178203625634768728092306769907954024980757736360088009046707070087309551565816406734863642085933457748165585601242269789658844982693354520876461551859376420438924833462896011082992878851551160255200454028492792534136594059023090955419312073889494060738493530282569156047319648404829058124973861779947303681722522953036353615027926347040540635938796831128919898225340479555520331885353379060895037364624988152436334304965163090772469539696953186777632975136441480887033666963700973399797658738842869383955223564099160127601517861989887318494828681593110622675649196987138220799894222749646984564447728700015458530715027636870101204665564360945850667156552405702157110526015725710868408678314794126816971466979831697923973047834232993846768495029642607429790765052943197377462451562687244422892911587933429410055614021637279455505377319032678188592597971488503279433470839536535688503963945440002534807439630934136062129616980354691816747908678797502150153793225543273704775439951814443026081333188460572454645799443014357864526987791132757295940558905716062799966216854708632805365408776431793108047585806997141921785182256788049480978902453847832407307924294425170587240304457220011721659503072313785908347933531155650327087700230448355211708093550735362207163419698124167933107833437645440555057763088053922338696305572044032858951469820221266895550489119313051882572975069330685333137307619327452430468067746327810517844230200686103393808471997795668586584887726088262010391054876564041132612314680451948602506964549940086240397995006081319940578413555134408964031627313766348981206882902227868090185550908679519633909496195592523846212359890370751066666826750482192239028856682310130084384712661575008528485167544224796378480817670510518035962119515020700681201403019015667835466426369755542021028637043247752603274285430047615527658703178009597545185042017224429235444784769528474944618134529281723936422780124185159210622291086356753238619658302335113149824743427712918138732637880635556176451019285394008767351047589151039111382496625463364070406310878522632716036494642412589567079238778053207005618329130009954545065054402703131910474689402120238775611101555346987554078806560269201399227663051943997830933359585621836404513585930385657606480422908513977975538772166833478851437226969567851389667021393999283386779703886955772516214380944820951661258125183576014053098227345508335033940250549189092100881177102681016180345597466899044381597313923228780844590744744500074422744788262651696306232968490566405765077830679408320411589818238453604165516759791796739112379192013851381244824995829617725812164604384908186735410928727232159794731473897415840591296696502027714908167998901338342640764686688914436647358602513389160777772259328953662918343667635902544179357001549851266162988416618396612046812579330931152180993763248853732495062778731671416853515369876958469861011445352898460890009939295395534923768495575411461765024366351102049742725756193425431258340074664049419139250911224727230924521274701862908165322597323988898302043620524068635231411586275355816282758391089579446292581118714498555889055832294232625006381649903938549955449702372551347345342100102364399607808121673734288087228320916795113840594620764456372850919994853036802632343721128050810477740509329334903360635612955421065353767520078464707145265104344233242179278727741489061578657131629763713323894745280541386591698979911739400960471990064741492857693683976243737231273830043945342030729765660819606205915381825809669719889870636984740644677971377913624509709679076643059637089497530374139910872733078757803677562545307773265512474941394978451809394381947494149380554660085489887622590830124576787546339477422339376710777989787991008957752994319939080682067035488416508780745530149033026768482002618073110195418164909615269698247453664097418452034488388644603271282591681738078637510537042630604501881797282248584053011004183694167158322303135822021679226882139227306656538538394273198028084784538410014351558193941487438392057275838436154942600838797184960303290329318508255227867086049483493887635599564422005598406304258853164883649868014336594408324510849316509959594712017149145244849585005268350733255149852269820527881671144593299899112871855234694703255973560521861582174682125847901698696052470950084815605549004071241324918850197861509626778969042403890578669483193052194279840697955176711968659469556661358168212416914288877013132157276319302895962476405706240264938491630705644334955856251235101681016841612513822206557386202501690959210260418387764850171659152293117726785363092761127230893017159686376314443410725490188930385601501736088385288148017194387016772795301271841962038127965093951897571781907073949198796595760072411789933810398488904105663623728613792548610882599462103240777638355995362075330834001430398288452048706595629456094366445260378770546564014944162063865416303519858044223509693046569043768596303542409077293546672146758345370553160906142048325827434240653863701298233376130917585015934106123451926153393628209743987097110005891445158385234976105927415219118664698441032251894651116546474552468548197803108072847651857777647171719924756348386948706981826527698826492549312628132114333953486721909104546865905591763153217124602999750144919400197552765144886451650801456088179804767807288103418568145626057942758924922520843687487231068741606822057222928556376255514380923873038193344916661113634125448167094586563899410578360500529693082468139421303635492992520273356886235560874711401357632604548602583348914953773416377769771155167711278910112046667335902330620903684740091986027848382678139611990827206393954989388487859367342551558009197330479609250280908080914747372665818056981029137983919165461955371746376672245114531994450411464071545772790139180325897070231118867520382419924626072747798143047744626255467921554635161943885643816916915373933516580260717640206315325690248771686140275820650962480499627103759164892139677151751751494838495692031842606161424351760857243282912127105602825071840034968332163460405972563476830732150722201278833791112730682511481626616266757261174993938429402176955165506437321674158024336845970185667431863761708734566244937063243834080586463828620594584410622743822447245267253048961032634914732100975233022721108661043822946774250004386096615139930860439533330327145582918462953170404485852986671580912529691674518092011771159217708104596056697562922437972216895659386314431849191264066073198454940421394091234408912399854993044102191471436225084266153292360870280666349705041314439965809469550464940818748755577770799892691105661733474847446706416527284263235021525582507890456255168821236155796350186979813466899091230682354884994328408649443897665011363249022663701928889999176327314053398304875407711674330579947586652505855845774383827900770740313120191368486375005025884424100786481700945366159447979594620225592484723715202665325472608583095143288611147025135075460194959507744257320387120228137354854772435977266131224365505646311810644240393300961048874980915036112401761877792016220686821950479488942190396014070074979219728640683283399791772226612736984102039090082635453696169464586691085691234286578764147384122210797482396756036728848195158351763255862295410388719973091844519131473245833512987904952198943643420311044695339525438313278680987480794549010560933071901876500119218778471372361801216682231587645214362765176849184218382360078653065723789943463407582471057273778189516006120227884325860536841957675758444939337123359709633545189689014882909079811832011902740652836455825274774820989782297237332678593301534132643886595241473307276465744062524924635868979448407771385026962779249955451695716578204316424174291164431946569670596282056064447613138579311065346151625896194855331076160960478742428103412277955436255962303024016456783459418349629426832336339193768356638131339833572901640926804584609802159329262478796568838410385524086529687683444063093995675042783434940825803424246519760325827616215921287131128798619493013360329687789411658630395675997773986449597912644040245020992685472458595497728199033281024721777425564979005294357248174697695663042029460347575646343648987976155329122204212401132888806162643949559203954659561005688908111204965521049811049754369684853395045800777639816016134468536924161656986382011431793038125276613192829273746849675187956247519220342998519281732577850059932268656894756718978574517278973562208439848526871951791530010548874612218075073878198920016214434618330982572724157942498267962004986219277135077284350568272591750696429681166211203696874139854036944088623181807160312133161924917267050759146547521519925185830469768260061623919595951986140374929627363126198431173907618537861127568843636095216843894790900297525288820819375139019430527058378930779236150676780190631178856728063108238171314449945754846682469457316644736595358827775070364249611530410474917484439083325609765974096981158398731543496397556377275869985335345046591405561835146364280097828342951556788556632898569030275412563349026094490215640721932202812506931803573887205516845432276217127306862857472705647608266528247975093794167641328619747911099063006914419325748164937057559602859413050123145080118597714712723267148403486333999030649767032259331426042319536560432515943428277948298521270142438865758987730974874634055773787685121772793471410697691518675751069986735851519251048506505898440547155903129999104926465572100723763267489996313876908447413382489514360333558410851569156500134313596768484492861465248028878128937811407538941759502418102227379968101604782368480543429488702233769512960877192731916177618914539016989717899884765604993275947282103825882747892312820977050282501100839082536403283103204749052108684299640579406743144976477491847342114317471843127892930787955665433220966225658023331238991581115625464423943128103889683849821526984589460018743475512326012795584989343647358670586100522784918939773359745984976747326918972976857928879453582030884226773082066151508444109201859233152074566803587897576783416524312051446984340835395569997971338932517812877415069070886985765171109677715981200104890540491555764395209551951419180408701577995322635455124238485448500097933840693040562523677087463344587405556122945530534652930934664375643900566295365381034352871751451754735595284372430796466260117872250685671942121768039904899211986692262741791536907269371286809953828901286584371676697334159625347440066112497248757173912371970711924001203861199282461773632309273140855378186057833158616118263273907230422457441033238950670118854662491736881167548887098117645535889842108378132923327977731193809528386783820046825258704523723674046254550164344439215514593831016511955669675164759198632473429080209530488449335485986213734783535086077361767224256093343771978325638604934936900253218048012516818120324014574744728805088188153682734952012325747002607103301245516127429145008978284068345119560575458559880113719826897886052571023236730419180391491465140231009614364740601449410405212426897889167234189124313419789366153411252133901601180697954220316724027282625968086019915341668819429952659035571904382018647352077549942062023015541340696026237195397628808856888184293054325006313002012238020338914154458036699937029874899689428095063113432982668590841164387631803120315291282549302334131187770171123246518126868671157668026130815134223178039856647259840754384121763776725091633425772829036423112292849829874455700525306562159600801159590314244259731981089976099932965991287231762516589967868993041365702635953242938282892157976853065725251130151743945609396371999681010856498591136315715842932073137370093706710438843266714934069612104344807466057116211006795117472138183342834969485386132322802389310894232244512059343581327953795884669849369563987091991070950074389552180133255718816012171685619855940713305386768334111638413740235290076048117035706714640671596111343808459971822943445287162961733573067039156868875340393261220513860083148316393738989001498778778095484310627835178424312150983935155589582809487810370063231452527209107585690650690607550565924805291498935746920420531053075397853711606508810124878896299204482490944962788769478663383550899742734253396307436107700139534071502904880484483702916382556577577581047174421979663553386705771560248738876339234394590070361603921675371812917222860542866707649976738446811488078084305418509622872116536037663518590503142694909204385692485154199448413173638871601385246308978767322223236400964377484232490947098004843353961012577972566377455049857883575676434696196812397314427565611363329673121093785363957928254629737232224348628288752301720048362882281973229154878096106749026430286157857312138539734655675968693937103662076452351722952425484827685202563346812425463550586400356169513235821206920327945040322853885687871239808004413960658443268599279190623830858077320056508278833304520216829480253448145751557857762151904341787648093309782368636601016514212956345676166128324497718341909983673771452056473933081855548754023302867937372541536622382167740019756370880951955210449896655992887747734930721601522788884359038192541163407407387026085545118291982840423123842998553659593530922269815568706929863878497755331243483054677660464003551007183745301880634061178805228431664867687081120584565887316880297027681158003815764905440584703837012337659326576383482014392489115046602909329673027720820074084822894678116005231719056720231172388175316462029828479123544191716088200121840234557554993728759060819278994741127117981539071382778983303457311493871062778802565782118908787791339612129556044035106713786749500449038269799304653530283635318282273722268776491934789392830798749827777468116072618090881052931927472147671132723293665383243149981148706515447247673515891560129085154481661057492062407173503185399922108392797562188632589501675508621350521608350522846869303476645838850091144473539799683714503028594232816041359586477387930061182519998335616248810490515442191280239871240728302519923570273151041492403454314115158115472245794462302114072835539819160295570230501076944517085017993217080962129196401193360904916241827593296544247718413903252602629491488877450762840801778913413266368054520167283713028780328040702040316340877095278833582559995468337661753642978344371635039064119894226113983095310767539045446236731598549962253799934322682422452071625877460448785042366674411524165593010711191781954825005886570743195315955332033273811201709158028657953814048623884634518679321849129221517587792581862574381013971572837112560910395399233848840797887693596655982142100222373562527133003922790753971227145056389788765912161746848288383738479543586639186016551395917450079279235198817442361865416693866318196625572659396678526888162431972123739409166660864260996506860124492401344562428219458257296663233582870318184502181146727019893599895565657737834373320232268115396031339649122063570970177515431201172326495020753888537991283806069290964867244892304049150216509826936383864539851167892946920144157239268359974357100451137967227593916141379605299873229691799418985825761404226717617965901807422702300151727412160531630803586976070332087421525058542200595988039860690617479246224872141721269027793789794683017174844556816248371613795375920429240671144631999767084974323861100022696025746038698119607708149134575848519362665723721109199657227489787328866644478534827217155400538810352338959689881610620649638960580966253596865149845009710913317949823825954151530477449232685507971066856212357225896825085938094239327715902221701677719587155664129170972157100805847369000702681021539082640512910819333067103319640100195502759543506170801881189886670896754252283463489787547006976864401494780861047607531733828800404042121766221832443934242777331700062242018752434609290691127929003216435195356566133887411388911012196753342591663246135323751188469403720848889019878601347547199697043477668216252707241114366813620764224993045281730409503042096863758016544265898505328720176184780684065776260308134839279320987647551947825146399795474460507381306540083305329855351390400565212901590228887323996798673192489880586175366864588271133692630541912581353587403864528703000772911630415137916286903043201657438108775144025684046706950644551047607705764684189154173740085687771783993806320523173887951357650530453387232347914921416534883178988501095590954414787031088197688377360054271356309216836400524268030322212397109785533148828152670497037979673935233135234413970331964442859643024677943159661099892132056873370793187951594587657523694771223921939304503002562830503135555588809802219948086315249340926461363010825925703789855440739627882224590375645983638769801107544161989572154078710510068758558907861119173544727314195834985208297058067689730864002898206719402362401425358848260912267155330712087948280303185276322904078056267989776937348621622535252359021343907380426498478763235246952760194945914300474430260436490136545119617144821932357086599267464304835202822097438939801614804233642575418548821662024098478504227286654431651006518902388638066374265951015755198505338117141620110492508487027005292869770528539028749489998939705678335111358810493878920993262748302310666077974839804479222385000109657060259876292928388959176514052082634727817637137143531117786221698033572104188611037921759029115133807327411998437045300992684046098463773878422101609771035849158245834291776661147090053448977016076166533303492402624455568241454117962391521339815406996418865946560922488049951641444030439656287390275939162640818567511009481882713391585887485594246345509084607207500745215956871568844545916968682650770198687887290020132744737511960332892344692099452885953878709568284640038627231075967198615093994817085660481677690436550776643292348814472652661101473059650249633020352277750184779823606606917831873607128182949869493925928019548521187171174607481255144611637726308826500318581096811272713250024866510470475823327298072704343232805927114638820651820193690685301035965427471446187642866811902746376237866448915630551315689357220917380315098189453005672748174160544832884840097823579749075532266174393450788319223901488267650911097920009104602238090302983725033973373134252421800606240546352146372398548728408455655642300847666461073160106279055448375449329284140519629399754271228883861306577380423426945562913094911868747006642188913499326242510089039919113007354491830835613198071941450540274381665827508146045370510060881719688310150983190413577945765438906673959943738974442162123347253103471867475438914569349845240240751755435739117470482184179169107021802105240990054597326618613400097255577641527326730469696118121928542923053804477624696964966044495994676162850690633239620996681876424871940591422094841012876625162473237685434465047350351301793249626720762075915194664874316735822910634992005428824718331056326015478457121106249550884692164461166274285928067782717140865380759433246456441464679583281706080713502201615163320454276810452206849855231968239318004168235332648905940768726389911907204879356510229882628403063756505253957203383906821703592734825858091663442213303394010074265845158000060681331073805452628964147652333065225650075268171520179448159060385200453905442862929844426863727683873836631286564859303239333591041139147442841190214525479721766512932687374239510165266171376029629971149857873739911353240829832819816906381942045540010830538477792410885137256379593352116530506479137756287005071101736505829558862975771829039584114226075295798826748956769027624709693802111036357481003688200038571928594778392940061879238901785788212804416555642289483872952541305548475277528669089883296904348762622083882887820317140928926541463744748308335914200141131298742281028627345883603967924461870994361371041789920343715673979433431762104661632176678438619153152148114387445938952998712006020323971141749210936917982076759333838038598005098930154507553839184337866481619440265691258758586503564973594435706417209038085606294364264917472544771621188121297888081342498602483147509191306378876918418860113066848320491165725926010087464376577744455613698336706746340472742105509172782187661998877417619950671204582297175636667342728829491344971899849793540572589472267760559014605066082477643815346788055180837372958877018115882367396461915250303329920173241779101634374983506717092793794052515977913556169849382718565463517646193392471688993803507733776950272918865392609469988359476835159892034985114579407591993164300819498482773089770271321352794134230383556499753108282414868178023922184930727596917320907966451650443675759707722013944872493204200219055988296379385592812830522961475563525247706467157357769953919410218387714085107506547124224199597737968673404341806136891253612538636373351514703098334289297061967443891231826579492078616570362455944678159084276392906549501823194012705916345019101825338158284784045077373625773976731779801004070082185794838777795256354959244909770979000407777621434026058839723323572865845577830662585759131719926891046494657188787933052835741150050120929372974197896272274654294250688329260972392856600023731239995753480303017677682101908530133652072835569282838852920331034303182088571106002213375204158045369366134897955293061156160118884112470694013534612972526107446388371909984685540146460385015542352671456945540620379890344035302903332035513298545852460753373775039881269196280718386367823911348011713067667918634977093295413595358499669959405993463319689886879089399864236896871367832346066106278015990535405698329247178055221138341665638238757935391140959916937448794713118492862578155416269221352382256883216728614637556038407149816667451322029071062200396085343671994176834379000352101908925893391855542410718555020094139353966423051592405099083825688303928988266794873228640558789886857556688830417334671907350502804204832758446350711342125924427797256569367231290630194336229998221495605442515412160753457847023214518638482711671272776669215239144565336612410267924531405772836593836058350823877778838101622581303741674927560443489132703983650121408129162140541558294765046083655725374041901803781811390243296867733288147505080183584887528572161262144389359377078300905808503156351170640943746941771701009756221698302592403310172121206265883206983861245751241100593363216706674138223037756430572938436447440388446176889337605050445866846814755360724126941701151127462843294347007670493992292718960974707864975707434022338412742916473634326643152789629746111190009207453490609655081273171242294218403572275211788495861327652622087924231648963416992923670727567335863866988238222852758713997859938911405923185977238422567461190157301030881308566138826776045946260762741409476607009839672253806041136098170866096443478304934101528190539444179248577233415855806718099169595337716754410541075413083278229887192364868487912776787201396061362448396278659146462878918256916781214984909918823873600448787880952154891487796058482563268077066599445009264261627208832738323091727866533914837991463488378089929610450714427002157665914518906873559587764984523995498670782715372809780032737643605588891124586706557106762593996862639337531876886475330369552160602572581388988166095189647387838424148203179084607297672053278410119968101186176036806503055785572739875182162649272603937760115306583661782125055101928680920600715631665440656857779912605111544286698831324313073723459738069399082942397019990494341357825842934930379450292179560377915805803027379833516067118127189646496023424490615299131736029236023860848839109673542387470135617491927668165541101258221564813177691523996957611489421345479441243664974470368989976705790697647804911852101742605854512867598222838395894016965055098227324453027062156440988573180161845014173801284277836324957550593708439834866539215929618567955465474187676017270355037287734033379960870463636191580706389833667902532835998283020011895636880754722894319910766910388054787730789806169070640883007637394060671092814382159832621974554892709698922428499304654870391190898162306684886507486088578635000778866404728606106426307398894155638155734057523123449278163220689363250072817207853461691791145390654001506684103108302739924509643010281566669382413912015100498150002016251845352248622734953005600240527469760957095578504739334949079890739391925853158524850031554546680548758675796546551204482495659955059294267443681106201636525093866490513557048424245609402847691641633317791461269652801899680623236107715396661488069987160283332146558094344218155336907655030807916859380155896964260981516846323492057670855850011410089243858158880263118789319777937890843699422589990323328827494855156591548001599401233150101048431107361030516863691398160843767112990132379623887335264494997690784687205058067787727740741459218595239729186590586785381807699489226033596363294912678495712157642578747218450269763963106948468997569120213250902323803249053875553229328839718066811173863792282600757119304748375163708667698538718944672820206607697064647851082178679381385321168324394836222516933184918633185672417173523608019123858513154945528741777646640751224806698907024940736863699418190094191453027115297372542894329239480579807115857174558239728150483178554770187285726905269452813585847186174245244607655267299981928824493365626105352627688249508453232802975367081081771735758355507127236457810614428441345764537625578459341381837198170343476416746936602522208175072814619228491213876318052610410678162333933827896367248185817100301778661707509729263830892461765425701305950568997391923911009127931046206938986781540473278784364188587930322617030196289386282617209348397671398601723326609330956224393213048832976603227361619398258927913696896530237978011040513117347269021661922413557611617465481091698924817753887228998511753091190288905005033893809816644035947125016357879089455943766583022935088489848646438417441324738643264757415237118362179266582350062296856871217970898150491106115689022350813428048475279917638804623995617424806756978588580626852910008382572175985779624138107690489057360360652887985479889808058658923069539821569956843223190468177508692610904498236018269443259929572451420088351912957138835194155349226583782325622206517347876135205450679746933966601444924991651853815401088337756319475302871245139146542184109619764258087674026155608325157697793904458059565789745740255929859893211791582970090740940425033025826037555708759929884540273791883308211622849427901541256075482107940072481634351001623146386326551929663359784880405572263405105528307085772654052595177579649099575343493186900034051566599392509000866851930410165004172229159420729485309378284195112137829220502823646387518533037884239633600897346479771212075926363326616458053793123715539979563322620977855677978660677700819332049184929823752560373752286890370624631916389868570564406123955430407296488053231358900624144108513809334891754248736536154307612673822480718009564078129252795906544473078153800875199334409290363006004098540766562053772858217882144724233702393221438084015408148205710829220944592006242722574990399281933696359738817994628915407106556241388958734476154166597833042436730434211767020211623807286811587708880829296702546314908584380281947587715340012963419534209572655189667540980047673170408649929644839710414134897351555281040629329041487269128953043923056711361091263619027887738935771128259446504518267139677536953162237305071492716594025586088363425921474037704474455858975552489048272700361184794101996781349816894484401582507817722159812368149959939238373718756808026440442995401676933634717686981048712836211081556455323327227296740315706785113019588995673236569896916647345205789847248118842126419817975513720841161135792134210919554443895903862149475664412656784359540466711907804360402151438245059910937025919251651908359585757561194485182814974005953565629029353180747884929399766342728562405417106334651645900018518765915220718181119882080073901256112140299244232720007565487772181755876293600161558208442206891770459295796161835166571912881466228244714347890336395038100028144575687437561417807705932457246152526699967587081061289386872800347360169422994185379778031076845031750649554137259641512527639713058764930871080487154970672627450574776068244583911798800892768242141277655699136822003500068893665904305805313168593944760521819088926190624257009115919796540145452278882827458009324135574029789107072725484564435282655801896684743710787457693069287772035530059869532663648883349873262099149358843212046408131417964124757299607861134186640115558814757784214239872231137851769219372068350607520318300778432554880933374454297378492535948892674576163658615129037279423155053186731306126707746873379492955690173879941040941355386561556197301979875386658894687582566762224556960234716254950004183673658364460562609489683633509428465219109183748956782994613772673406776565987141206480622165661575057328968376620826691732428845192414998129749500939358187553012754423212890411806101128348988121877437634013791075091105447516146115413552428732794547089451916385634910813059126690319835438997204925640740388546700748216599942843460637546339812862774970716254466569763911021987508913449631990876543927736182577903894546407067939770030187945707503168562158103082411792849373693978536918319514860521124537228818256301354159926404742918085071180467051269439795532454949553987148898422938802266933663936620018235122836552660165785958603255256959874436678508039843118660810939116341430620786019959371449148564666032605233081021981369963469352333392638322574571144185125126061958363141173073274536166567207659777134406512511450187389493159625747073753475555482537867186508489602881099510476420417156226574093683752857483279666680219595078157509033175418345406511915758968387792626853680609018219238930614782822075581838798442090328548503590769641887604630542652232431614998123991684715270762907628365839119854219378602840153346600376930053991889851491273633927093500105307533254066649837693937435930590967731721450122722058013565405212231597238771280756128074018601049161215913939009035540522009245941833104350665965945694435263595439515553151705743369752874717748644647748616895610121311445523524529950678195629419938892520470945327894886246581299783319205708637589545375136969418862762941046942053125315258166313019022221770975692647999445852801115702274999753604346484052841403082309801824244458963059071285467755894522144116930478311584559401732746883225413295744569171994708881419300211297506394945778690327655464002269862968035287460077099182195372460714401690904928219334974531362720946772205179087679766346616701690085962180737374833810786879231529701119769610144095675685645791164369479177498416118338846534209763734491264346272925161018598508418947780834452739200311663589573102514746093180016603996746736868785079126971132888565111227552190901103245684663507654371308153698038389468477052424772079918712754607929113396351943792754761575102909116391390354905257112047075202016037417920620129819431603281662849702314621012121577136638531262496071882431677410377298351530753603050547790610046956555586568355858418707212892356874990606141225812031140613745771294831736250158919967673374061347228624489778390807567647423113562443159029401639215552207056915260029666323856875092850741032413393612423558932933004048331748893429968450301268367192460383566466343228655798658870599549419607433222965631921142511739852208941733168953298771332309596575594800139860213683616455857345926847416720001339027248926770093289959461176028207010047424785823554725997069313869929752290641988735301327264222888133184839697437630686091308202946647461311854972661977366847782107492111508201585450447174778617539080289939970813607504454608381604241256939239540788988976131210441483324803529888825569204934328576876532883767389098640631115082254369438407455794288873050502023395196506762986465270563151384045129091132959454914884623453729135461280817833401555734605213195519219789854056484952935828295250883772008885996242675088647928136192013858354459949137049883936971337973672193117984148344373877020163133036507931963527905301111187907963833001698129833854897105074862245385851990326802412014233227630204039706924920474253749313565639453545566080630881048453249236797756551176135052182779964207629498332488573384049775396464082527416528537485399684468046574587607153188575978200713804281063572220571783595801587688791769486451040491665910793030837364517813106618413078400989265598490019465257919699457729255820379162141125275099230094709099765120808631306757031301633229986309358047725836271671763432021742229546899297476762298561088858927750787631041526089208437845264691633334219834905754264406661938338990815619869573445346178686541397926709592502653668183379796059670149055581808205305249604517193547324972458135656361726183273692887498863107560511600461023698747421355513461098960787260882887008428637570778477487604881389752897066058369984215343833044245803310023073235797564462990452477580492329117113530650634020004724061815606862812118191025006017823721618536081228252908304194876591627019585364386780099341029569485778504722163610706385381387051501207563310476542974846219586163758368966074924907292165964044965439350601699820353940840088165262998062521414795928969652605811314471426363396724939285649605954476919116252919611342782446510185342131297636225883421967975136667965266583345517786628193871340833352310249060062721492677575827797427976790783400303040145618262937249565819918356962083933803301062942878240426701795499308944177992584728304679561475726624226668957049014085176008394012525352869106670172241811992967007828977713344795236037559990966718398874613388898037448721700401070757521255175425648973311432993798262866792693577639803016745614658770971208414449980116879479548862635002421929056013085114914068825211754935330549896293068063961734954863113449173606155990885369827082867229287014503836018370184792780146480682590870984820018302635588566454390344095897611637580611505180191525047772732131352484436306955247310799498756142240822060786356623048237501482105256974429306082995149195541898449439160005512171154351436954814762147328949142671855192944797779387463169521576729029374256080034385485022797885960694686902567366037733457988428005125312083760741254741188055034457599899102298319164537624942886017535413959761296197268935945284859946227325692495698573103025867021281385238017227617798005390333273891383812184557508382920059210272689258955548956096737855249753368579547329751178560237991537531290139949073759648971696029003294767756361738622585423922631973509831179111658855148435536029176795055452509604481127321916153949964051291247002877030229992266034927684250994936657399714903432983363721612423213842326324862145246737384394835275486553095416367162479699454212845465143067752556786703564338482231129637345291429943262091064363161509219309278556471468350459451033778480010456816492150704453545324678920792395426822858033940936034480874113646129592151815730650015236187017354354789234010078788512636909633908288890839031591237761097278170351812725438208544327373234427688394588891984129257474985700695817657588926413035283567910811488501286759663459885688433507924167655306444641401148305499187627375982573698236057797706955234949543439508009720301128561864500132343357454239262337756977467898177357102521605433447469185270001941856710287413306601796733626506761466785754854269344683397871346051876765351973403363694670863506401976840875567610360514362765548777983436541720402861513526007857086353201870958606333655791476965856170905209013368995692394352037326240517456650999201767810122310120185360130739562582017313022216971827893569961370552916073714470010858731116108099964955366938332437075796241035048631824124953136537529530367996145694750701937240964175533051784355968511140216297733757545665209532614830774037700735139609570961120997442006862495349076022769691897136423414229408267868118115044511449334773455710481119945107054004967263969679063293924957371250752857286320946278246404869871098039334971956063517864732438086393601754190702120180919728264113126017758502298471437304895461210021452573303088286052359932045778647810124292544242962683282201037580976756102848043286341037209818454729038363020533665901443880393777205022015326355499491971882499940714018285149255389661472141933753730074307920856783818092838531121895529849734653326678164486448028404952264974124718559441342850607398122976545401884686142755540182584479057591387909454965889089172778728214621040061418098719236976864389766357982797051336134241937257035709668074561279557671919171125020639239774638276028342245090572763830838696777606308288234642294005492887499300368791465485892432669590405225953700865326079657474446959760884446666257082188967492428705489636282169909637177525106746563609663563863227775266876454240514904997427618399477570211495545832037968722849672701528169908005787567947047283873359969268699108765046018991201005331881555347887222409052310748301763803639913030627373346700407953982459140808834941180886334214731276112426278491962271505695241260495066251560420496574000606773037219989650716981239348200667894123868243681937028605413846847056237693144199759244292059755993638076103501667119838736134455814544677178482321530501619262977931433798851344121208639361108193256827569508014755378585656860787585005752451372366363724171935947046989222511633837353055173880509669123251342200452302737058902910704057255974992381819563346117968713419850251828985016407165559442200106399357937343537341509407946410464359601957543055537969317018930337375149894364518754286910205935142574628035291718963610315292633938042313662594131978174570355558544498675659273183741739684972123682883585546584148180158653974602273153032271319716499756578958619687771100542598360156272849286411788724292473069216203509608285794734381512207079577218409394645002658913464933190086114418183099836334048975887737930143602929920572129376780992580134120932056486398008332633654793841133805560630992744999093134902697717024874332948717882689703928966917093780965281993721997879782552013524531115611636810574856377731907388493164349475411703535972748404997595706444277488031865026957453211145050160512978453186782294575645267014388386942039561156769707263632190293621229196637552704202944987061385059971937354867228028790279793364482581551682605378434044024166114005580959549002537911449044091470362375277713306109379501398815802302839093287519075629348090332476871313895924429697548202029167838230850617383189250356387700966538943910404205368469048689252090007238429607211604302529457745897716890222798447648753729846287317799389075318482957370478743595292701841451424600418418786054590586283485514520255203930469808696513722011126731661766386732245372810229133752843303282851042835216955143839621160761641759041044312868126067734739804169711128642887992521937869742689048993798137961156090897875055870232369314626506482686475980072468470875699644124043778930523976174429202236198306776916284483286754655438432453443777057200453840337420003826328951443090385707336548374874662763584546940798267831565927107205734144672906118270407149245382660959784173064156441969924651903629061777818529658697122666462749777230210022344172565078740433146422768523968575660760043301043346231349071462431110423536089081825709048837263209099970212928896639709775037409815217571877854177679967606168074233862212468200189981318470471082937310915354227271952345924772775959143097405852257316479086948669533794602483626801287354437297286191105025332243335520907361440981051086379582041625852335022830088727092917808997925037412893872878565118832789095367244374953654002869166547113350117812405764492311888801721748508711586638957077493815746714899672544303274761637585234889460037017009340130719166797202021903165544300544773260068262416296410353355934563098482465730038670514088409365402851949519304593961514862350578622862191432326663661890523237892588236354548193029583314639935821945364487770745548563646277323438369813648788166893745602488546790433820846686791638751249342365906274959587856217816605244837309450891939840207090531020670773345381240463157280443664779369051487492030931875907731550763277702032135023149203390905579768988308579638902933757551362504595795868690919306149915617925668503817865104633727360600367780832500323350085053784297888948183525395988168480307137384875435832558115074764836728958391574557412580537548871834412116945236118797806791145657121937900411014421759758508460831382149850796670300679584804352661620114271560928906478465707070541624336175044175660645597378075949462584596364137863711352764743396811687327992264672909306351495099821892885639377154734355361511311941541538886693983428701437585526912243994942935723501470909118215114732987833568086520734492931042563932792366048992909922663298068974239128132793828429201035578829829490983903380333803506533140154238582554615177540075161117965423067573300336034884051681798297135155518702377418198486179539282199775955356966795110541348202868771909513537791854183495200159138657096086589483968206015963468564384147011031533123194029460556036116183311076819631388350426046574845014566309390871732389467083467523303076838677210162155122650726731683415524575688481835994398441007586529498225773159924874094159312496584780411496253313091203455985206150695266454617831706690116338482780709710573181293451379973512877983223887963320728354281733637871661401343847084933308110908837464521713392167606353812251802863755347917541908291061707670524576105583954704779563047243654796560693417323146286450437993793344098392123313006743353570650956502848655803122594144841755038684977836821700416642534087822847513453763796109378740423171141922887516368527716345451679475778669662462261716328607139067037546996388909024614070090685790393840241809526887777688744536424884429533097107944520326498152703875828767288548491340393781684675349189152598076194327823994529246325860635273871199058618068668294683121282355993481702830636059879400989474079894436452486272885870087040376921193082325688296709257774524574099437510900188327327047599997410190374887050490073933355362981484406486721263108984133790589452314335548815489306335976634945540425658343179375774307039552765680832486880273069417408954649436275136387836865477014148468826983718647672662491837985735130266908930146191728108094590621068666147400048616170477924161153105568328822882677276552585289363552467322925259478003481052915267710279234297798384041952147681554523320711632968617729488404344935215239309343266707226995742174212432528201096391532415853865183095170380084922717765697877010865366331963247984220721036726971424251235820514360234278114063670820399341616454577125894368260553062954168391476017674224560870615105237602126696670966335379424970902031165332170525504543842806365838690658530193066250242590769725668063266363024084335675592572493570049239668016241710694068581574674290679592554607108657741238903144782144600409891197839209835919530690385276058320051197942652380761963385559948591957600110780675871176327202958378489227445044358059251586147363190481890025836798399276429708594701843592670301643735544600188830938127742557647518008594287645633843589617033684327369142392794240035400632348744812853280128614175245698630098595693877132453616111030763781865044289385484576950897728245141122164244738319220645807403331464067174805191976320363595467731590428734993332426596102230161488283909276804732503096051136494458567296856832090922823865605247450586939555364409605621409837251647656180162239319392539083902309443039972194760685073311044108849630173170426232808674403511643977927039750864856958829869420400998524068185171637874486757344259635292941015926798256781406469596931165316862079417412626135838184020743132923549522425585875602281462941131828366719372494876236557621610952313548256495385121704706718717730719018663812006873046819357958683792935969870579639236569842357737675827165510439151299285905947318235356707914444926713841480560507435053530347115070447051757929172174404878550597874132930428595661999417602963710064636641114368718537686519445040987496400807346845911811005426950928874089983935993299937478229496759134708379327510735350825040845444100475122664085819335841305001781757516489974564214474387613733505054020110287053697385935571912600633230549785142144514195086147306380490063878831264177534498893837652033262137618283803092566292233919059291621527849499265090996563260193964584389292426613161847431468861060162441665105913833317445610389393031870031572552231431747031865756658397977054867122018774645666858903158473377626292516686429220673005684679189377925570988023151626799829281867204966195503004732646508186352365694897326559699769143711840281234875246225960704108501814630667882657200989380417203469774907356807331206643607262950965002916454305737954879065335846317337875948216195008542672536044824709867952184361886200655294350745796362814765417435932608724278601799786799890632793948001770558630677450347422623010831750021538645832930083663253800367285391413943719778513958428580593095858870198427902065288214802753795756454675374143125686139661358194691116647100921119919701378362565702148346556252046320540432627681230130876499620482579839140998307240346673826519692680126240125817940615679024148019868177089373774449979359638164935296197043732386081873521537696673957961823076472778915074996965492040312937713542325312496432967374690002948174602568934762752164035190994556653184551987148581741985498378928100254450827890716819687662270246899032815248490256056510460244954476732467697182850713935942112069324158682903138494695388630072739057998076395179150735110773343030391585258156974817673864895294492603022197361633079854288008440226326136479469160447685727094312927840279746622833564978118308795709265068420050790627972491981216608563275115553071780653399601424478151399121648019569465241068722792928760775721731894382731117280239828235344390698054604742664250069769273576513683595163167756891953380145798669402700874770301799102940655342457791174850593894013149345245624383029153869010216660286211706530175641252583856069758871493511295005759631474416177810761530565042295347992779729417729269075923803844639942339287191005538435783561516585432693340619896272173150759130260004300342249334380319837968507129479364460407423407692196730200431490284271837990063411433598900735484742246360752037946579855631605039097939724324038344761173779735090209813806910873273454909152067805042589955039791999488024337230583312986706446209504736804040785234914625213003402596080607199499922094016812737280931390894548634160096654054814147024109442939496970307555019357972445945228702722539991537875863384095336205127082027560890355617745093743753962838389120147614519462565841655774212311143826116823285739508866313463678906798277328272745748804797007935783232467822699812407262968350365348616103154940874001402467149978258377029980626446322369802280536312926402587098855904691065205411417734447889002587217292750185943727129634701684299696504765663228555142698301155342767169870197918555484980456445520063126907781606525539435388918047056581827545084831900284321011055420027587930015966223779302147548852908665208814492154231417129759029609527751010087204439422343379809515136203004451401179333538913626231530362482333240145285502545183333432526592138735545360904944751332479196516890247089987951782537542345554547972782091062264467277491557955458110670099767493396991739841475591423351546163708015727537648941539375290810720502036129907233643192446960286022323566652725428081151786671013509358458875834630770310912942368913711653354677775333625225125797981898098926301424328950392306113475218060027128390958658743620781709158820190900432153326114222003247761772492876986519531340056935550368822143086983318694438169756065326140430910910415659064188797439010541538324381378781357538892322459764801446190711751072043417628154514410746488145809290843858901082406862840411039160765206072463775396682703480299829466388467591267702236363505872283141656522513032464280188600818043995602245481970131865946332059895732861503316972478564067275348520154848983060143894624485485323820367090973269303956672647432247023606146492733198050793469152105814467939542737381817122113338334061467812179175830928580730813224874145762583021189266893046841111639045366767464261546906893734445973568629281276863742830662459670339088708082011879031821327760926599555810385248680736845252208399499884677884450859918930585453817272148056777604955354815901555707915959628758423354785088443497357390977661767852856624344221276081420065283835268385811488270250452627694045119243373106073188743590572026691188654057811562059570329488970846705378440225246472675932751634221355981752470805423035979801447525899292470371131626048311283023288067155001482851225052855114830029076175087312233260244961458221731714639635785817547362456536142999594018645288353466573195194652988400789007652390309940692069287050008547800451698665020315658262619204826535601049544103834466292535808372256755377743352416428496455491921395975519672549936053148745930240702793746521906704543388257191071169338569815252989254772155221268311737233850820272789421580756729239972949065326626009393244965182507347451799074411776220716524513644491816251573633273587132953383228580221370839254045652280343821220257052724847291376155801406890562101870992668430690501864425664851736355863641484924323799832998864885516744646163485374553568539110755843372039239646219903595375727812027926858018632769223993181254548442637555229469307171062281437629269528957253960946760332310785145267579747555298475519539145574856927260976371772492250143214264948342033081500387518407609682891114795322362931192642125122088567123579630858017835518971517124079969470388712018719755392813560201122342313871029750797029266233229118858885530317088668818642930308523834313667146276605270336219849119848289890684383029344020276433742319287347701348461799077859452021201017357859813273198344335893739644691793838393614661083376042098749725498135494296051666526422965612786936093227515219434524753523078011481591800044856769036430849211046481419314543017562409812758114240352966086261884830572580784202418739494639085474475117075496261245059823070698611832646209668605357847517716827887279105399707065788095414314433340568570342474159251900103649115040693583978972515275181724331812010922192574136355186804643864923293595206143381438110641179832730775008456658871909984226698548864689034040469340676656698966229418636862766073869535857952345417767765633124004779251747206282345844057130532064996416078367121900968831923954514284045047736713366383835119405995522186328389070614917061664590669790123408084294552531675891050847976168442905031106066860348413635329843726248230235259985284514578179487316782329992934885218151271724004896176166713423901445505236390163857929461203945773826769961393387533679419496681487657655609968296440929452972266893155224971170977399917701195511404148398862746047552232953466557316494936454135393292956979237355518947592434016493153069050920380477539333891829478726950351201203091058908160891977022946158780085053926901360415244117541674641848654396014126571082106670665098658045167693911569278189366225008749588541877303385291841182202665063600936032716922132146197059883825712765813638535843402549997554280922972032216115012784353555530589518496045569733335501017517107235178201720773371911868615483748785072899920715343723345833573748515347924325537270512207309760352367396154349295902014482760462356170370324235583474198390639033292472377526251029767391439111335879117615246508501285530252634956720200255760389999453691035854152195681106653732366500100242994530218310772142229744533839486647162166249179010268623302292383569217497451201166281186524457432706352416373479877792842763029697817303411977981487025613637767707129440696968092076160872974352017262791855739583669793795888651015513470646633191520435215312347404867195787587849066072221483778030261015081552994811010954668336406245582681041104930774631723347663432540015684113250811468919374051002286820175648354201830976424307326490295540509858753732284967733726385170727048391409581027647885394963820722861330768022886448211375326030690224511095290031188321961115427029043456753645081828083529993223132092545518096625306549591175688735077741458346705731824630401970736818601624949051184411992801212140839740517710056578719553977541985861180744891222691143349373843979293596273486853480710439303350061550323712599735731356453847598437814153725050309487883479348510668364856273013644706285065951563410065155765439605242565707143108368292104692964713799392211352811987412429144081932950389850049989184024238407789861982092960642152707966866409548901044875200536447153828240150742965376022356241430813912437759722159552818110193385418037455850999366547328871121247598000401597930172606795090608936335729788002694476409691091620796120097925847603980933261607130896319024355844483484384425911427170227290513286088622372828558313949822761032575157465533509557379851990741099995103387499999047106961024823405498956046120674365301380578457670913556456649901901628873420559604514634827540745842317865032539835211984499416171750392229141305493947364882522817164864148309944544267471386092561711798759395737907403866247753843052486809314910747655926843483989837482823222886283751993739933615236781065184290140604798796152997793163738971731612181084946333848423293382243275169935107392750263045554448522189970535147382184675916698913676037085213250661518066305506594093300869915761441956872070909917606955104354471639237991096792338393467925383330131423665404262498161504747698364459162252652695753333864955024114228769586498755276955593209964789254952519168897604794054872680817385854778394575719456082702008030866193411140953006357484143299187708597531402473464231986538674664262525291314607863361996014715515207797799251765523424095776366182312041799382024624123930228210679601400185281202881632659471537725939780493748314231044217957758525706822827371948119737925875578607134273859648000504835947934661854293102346644344109001241727186911711786373441512088877413676219023669558235821770163222106322688518263923871967990488087346017681021008764748788508506764592911905619853298640674983451527256104522463883399601588251316769949603506290489101817576899253600664445603536573368072787625367363932885242341404398679919055579634139124725705555553870957193869140615512871896118876130718024579341316344675130488518566923894872848265775558214608054187276023149079280245971129515959739324830674459992377112668663515321924981769849055225554031458346493440403687211261514683094937153317852718573522146304337685817820959189872093898059099727788974211481580251190427359897330760398461834486092128850524603867421079795463321032333921018812492317168365089912957824788031972550118989764357782061633605149462731758251800706419000803272936899853307157236432410575666440214230719353220601412679648549736234659959504344263976505886007305703673579481094729162219272239738750989874455921052251885641714164084394217369641876559549781713731973697044713037005278651433601063112019070350143067738532217604424200669872903974404847583496646404368178382714199989569946738999366989980351738942680605985162305400137491447515254627868699446660628026426878888847613507803843323650229722599834424624070911758191029437462332826123791837551349798236623606910701439461672063891697958522842659113033593235672601755623126899628055831154267304942030918731364475039130286674417129536982871834214447377297944737580161281773041134891432581410927042919468436774804607380378126527343208088353162967768337706412289697834556527145593336516776065547651554045220541482676985188833675808955740608565236448778123626565442479219100057572367807600346987641354108061946274803369087836629915302433225057486214752467915896415878206063624565268923807228421198022266287039400977201052710534668972320374794168371176371658603059957094369140537606833178268916791918404392705262910091653549953540828893409665863390509115863997191125357880120093643778154763394029756746293554268155373711212153615457967056276807542961156913404282252806138579324168492827037387135298387630566189576860506811961569280334021492157857500304570176034568154102640617432394210056297563533997802231635484818521409809497361183838674963131601180363557675061269781240824999520449573056468205649388334301504569486533429233137123380584215867217864543169062855940694319160079019007671243901481298356161812148819311087461363703217396947345398296893913083991162840802063738351649174486538586599055572909685343954990920756976881398570292331768183274855267010842439850825017442310856616876810382126793843422781271712126335019285559068163356287276760842081801150456705964241983225503750811328233487808918531690383430679335644194666944534000631381995383763671806016882489752715731427061168670939229659247995775578110615148418740316405730226721655535406271618181118035062234687935736562821884636482780636745475349912381628600181317766702918226907453953026528181324473328532577198481529039500949263824308757686470030512179085241385986064376841420609065100934863705311333676399530700638520182427401637579444040110380199600003590695189395691775283656685114658721527170002578147053264544538104864101530173852618329901991624811128411216191549912836165395713271516658562104691286536391625276474208631215310409096547282922076095651929334750906283679033440920440355599633185892164924969264203571502245687356979053944487516728683344598647383231633150957425555799117380715405021042776142146038681135776105027099401579913447449463311566480582970487583763810817763370595130033501826553155459481744056256502694169481968979846647288257175462453050953154919546570368513874959093077730287367700900002613857304769105444247189651229987570116508832560862844435781283494098037320548549021534916751638386572115688722611963548254715013022579250528292933666924861068854710368046557192292406865460476882226706519801339589812691844533466483544013245029122592382654256266908926581445912048006890926438137831855117551341995402601646220603403476106494790507140987196886479424831682010620547628556192238677613235238743265173957533941908767527111191777336240053127770011621189272620365622504062419916671711755335756492760907280897430271207054749454136802022924676013095668147507482363066552446922822280860366319532933494557365199669380953293227780087127654707607544835248134447788989572772704916718906980764608535603078898466010816078747328231188989667526227800318182992952501812731105250360594416876735797154820102545434311056928243878940450288731649738729418334588904300459971086388555487361553449115434294523958610038623798707728277790552578266715251829458442477534379187815007934443430387422399958076372768050504293354361784694871587249049331420905535044410682000576487659936552825551111027029306624340879751791662174657620453189938471224604705042969014631442090756183833519223703538606438931190163997247241424740761935517516322963221455689710505790379079775573926159347889510012154183721005789820436609625761265742266247054980564021351230290589337898697806771214545189813776017612740949415270614773398650566354440000365279357004735512850159605304045815981691744295914641428894377399205616640421117353506717149747497238206387510227914210783909280274545346887646788684061675046648460040271800585703801870700879659527819987849078869976484189375903283302976443688421479949498623264439806685479881387941421573412392840886529567241668282660606498531703515808920142770435676572241845179351742077657705972598088890855549488422981024680734166411057028419811779726236455028121722180377818038162998934233111699745744133251427539084149067529924508619632245646902054523507381931871875408950231083556282861418734410174197899258664948395791281146386601572739366566884051947335169572140795657164302719611446207626167094654630978208519824900268707945974862880981905425420947544871342250566162468031093565695559006033020448613382949304927638813590471077402361577875521927314337264084670143675254003355362572745020889620366921461164427927054311068310690122885814887081568779122384846129298201027900880552118812400571310148562006487947917537272714624610503113546169561509125258048360029220614363030688361653781828660072795352680904598376454112145525578941147770013165617058687614865382893501378497564938626697325800940954799785845699609815621307154305548685124350961987645103376163356180866329040156576495695199454170379512059499806451163901468185522344026032944255715122424689097942342338179694422975482319820066384976448590933733749628819437342063198417577150693839525146550540476773396343782417361404335224947564316909783463584838113238254975758915283588673063209127791243659611992119091742099643793135956028514071919534153035832938088813950341473774435058536209687396873966924329161589449989669402563269373284704355262251947570350726321670579182934360793516069736581530415967804121493976362427066507592625169794804118594723223527890763595135827181695526998441769757468151105633245798510693730474629240299380428239119182669740152879328812282019128624264153501062295000723311060548485585048804229437540209123533413629830882930307414037847556961022653887988452017783571227629625875080602863113757254931933159907773480012917256439464380045011451843673750484176583466958499023054290498237520341149108531642380551656107903844882508369055885609507403933457967781373901205837525444784187926742323502970790967624158863266929953970791265882548421599374019982158745299255940753632964264457686370033022935379699803301561306494807049818502396028610670852792018060098587281084227232400979659059621831180614226106382364693392326182434947194028216889053479627737773640615113754161103102318910093786839158563975887798915286842282226226557495598267875821731969695894705252706027257284577437564720827133628114790200725972196413601430004960893152712003787851204449055457342397674523180166112427045545029703879469951324373717374649384548404739794463263060556438944852730049864918892747809557594500404048486105210080626075907701038825608950468464528474580225586020211781456646406805664000480202327117190659025165871353340269763278336926965525943981330795168093501301821112953065028944260050326458423430026299207884909443667516806053423188940821501332075289582354083070836494517124284680667245952324922636911509260783883179494933943192832587822017184998177930000642969969433923479385896950612410802679297031968261683637301769463990432450648512936964935485178862974202008605831928119203628967136122182683139933185382940525055076981374326446363522172231044787508355685220291260730620203420187719121032544390555072105981448455742097379345593541266289573704802091860899166325001609226147657973583120659013973754274884074092634646176286280177613127595512130032073602294936956293998341511864206645222111409425400620875678806272822512643694959791125366613823665503939594130226181729463667759150638054778854582522300851309041101191647702536627284686791837308765276959087071521129908206760445020905633754842684853923471452693682359841618140281054539190894322946245639214101441932813303807466988423938139698944971332859745124080511293442232276073380433829961727236749998836183196762667047545717933139894196629270534508507780738124524794172063181889189748637569675306054334568060951123739800559085544717699026047795399089451608918949869921379575851381775015110956802729387346889648050900431323424268763237697778203587704061872824369654292956128311839712122413119433458406577439431010103022520901896189760216878726920822046873330205309119056312791851799402639936312264271619589861960489926008816231116289048208893088173288808628714547502204544240139439943626243516558546174024806202880030972390536571201412129034645012670265767789469296904693210530329512925362025236729527796783325124862991007998760589900463040702722948895064346288815809490888149175928129468920758738831348528409846535159123975563553198158157676293613766927425307023749977553405478593944349926354424192995966247721600927815555589437037344979893394512620242073619881466435391281350127608254063526759278187550886220988423889983494941177361371708528527435555991325136992086027680073109979355240621104609162742313475328623258790981061735673963921292097431030323085287414681654580382211263558186940389496059075349049608421282317934795783278548360256658387244697289153141323641072853566322839194817273114546164205319781818946338947660643422861760184755928351536460237950967117013119660293794505809349848675108194152174542205355569776183974508021274543306808337303218280610456525777933236222418895645198425163693342522857005084554259067896229413268506565136068635785124362298926804651360514571912448582726712825555453232471480988571357582898200807669909916997711926663540039291214761232241364454170963590972640842458323534016806430741710892060436694189435668901149688613812338394677229099565560503636464154337525381841714868384464487184048901984676555509169025849983425630966619569079049614991591219511784007570121739059733833674426495641969005897817253177716658833211354779044940702810639598407657280411957022878931170988936831447824163720883763403906906278504825590784195194492676200320241535425810073264870829489976636597035760118623464584061039955043709936591480789547597391017980960342230196161398017215859242238950529012859644118099734133457837007070115284845721289378082830675337528863372271216445858389527558184946469680259700568865688639377426554487647335973994724871200765612848465474448662814245972388189211278333503858333238716703542366280256816179415510877741517676334761013269225557486562159867006121418068908515222520716040828717743257798150785594162322709829991622804402648969776874888586560979147156855028666123056694652519043829392753887541910134538988509518770450520776561799949719868731134734994438214028983871303117710801582637543086332883401212372304265234993512202884869644652543246025744841643726905625580123068818090270446314169122618258326494081824169623640532970337775329296272733678245531603906874787042763134462287064283952171311256154105788659102858949156835223025629808840512364420265680666706200770454141877225098946742247195791432220998818125833679351636175301664001114394650478288051067169430557127980079679811558351709114413351357835149622569783768554841583517032074207700629090883503133372322888703162630986746764059335188667210983691342526316690094905793164172340292757055191239170577302158809864842604656489737176298584635820369723423147229770492010289144218814962490672314328728715370394106251622303018579098260756506935610860305074074500208567902637550083597840191634270170257422698007274365776587120945483031939925862535906347443638069227714787160173936120800053266476159159750041755532269542967668285649084830888255604433613968198629031832410227145572696648261065978844481978793489228836345708672280080239408246499662122854537577170018364448649374175431864748171026392096708066330306394948678037239792078458646110876184488158462084145893078925637506641203670977050609770022811301395098753528726680762550846147819515415315912968997405527158513028765827221630535340449789611810719531318826781229580599374410993203335873275362953432050849446109151379498461828455329583460314837306706281378566372314047794500068700316904688348345656128942925995937902499092816525198350725597686942860531289429591918738009779650734915943223458002562673124275695586007898542549294740631435864637153632386129324938154936470933318917128288469416906938992977632873481060937400789502212011187445349338008820228066751067052228069943065094110502467858404933063375205651408836809010758095281085396594787557481832479841650575722952362063285534082589437590254547496329998259176366402373415217069511276632088467333392473062981429340796801908838446708313927517201130455484118607418334514484257505239114978741210408021461471349758431165245749052125325097076165889707271111077490025898853240993506396182638914435804297353368389483150212277788179424573867548248667042225086258084714195496424277661498460655575594325719288086494699198648168990150206040624031828493245722625495313771254101761153410820210771837490147025110857512245292440287633321448260361287581602312999694511567728670283162987374022929279919055976362228253637871262799681215497488390148551173045781837657312546061713969837768748252468201330019318036442554272103069206706394557908828793449402769759158377710956173498856825161793449286303147133986776108227614102857647038261148534356018445917961516743424428813657266081423855014439617489467917995139448758411181185816482006858732097812915447912490380521472406323063151783097682502630229704486006992407871253974065823394520599120516091845718687626468702156960134779809914919091966154123878134170834527642014556159134394169154743402103831561027645049339248451797385591840087553047391597187451284585919631814113530533024906903742873450604620587032378954953767411814417188639779452272260604240492426282537030716831674091728645909441947527186360957164451414975914691992948539719785538486557179745005084816343228155322013024242169374742838945721667913847022984946845510298627040999957852960114539275708411231901941412087129797095410574712598302692071210528314323286695781149234832801352323165450354480867075738929751292127842767617553222666098674881686150111643206474755375394109825185923418844114978936235948766212091004511360223732987696708936399540056643104501593021281206471545452628502179065903959139454788280421884378781001548345264065116469825823237369655485757273292030317787218327708854226103908450667330445762445155491549885260913663168826989524602759298940622566956858255980489534669685670995371704988700828983689376603801309315077726314391117456728189803555983951820359251468697205703202589571636315166667319258433454059910443402224396941420226287338677815918863627366682995278182216857197569195317965017866466888084585336802075617996596520227606208780005847132184114473171824932637687635611560236739521948711643250664285624243464263783865119012213168391218838322434953555034586359528499859202517708244684593096514272657693581055884853760980497478839034121622741659259205728809860343384000131962606436945470278684436185872362632136019136566641910942008853648909841850833417389043096581324490827815709070997191425703987136749549704116826939949940191866129734373648022976850014400889430441416694687416286470684466296378112858395820026717908896191801928726709450332325188359021511865524275350654439241175359700844592535033710215503688253896157657386078703641238290648797161592670136894791047512193072353945466406113824127904351821712801450991248077191043772460782012434995664047803457022660103249314289775639077786538258371100230549798322464675561113343853222494886992390305378992035245531319935760463094173258525910485494577821040094487407779844615247449089069866354189769224981268934044050848699667249760577281243038947121733876598877979443644618285974764938191771104279120661264156616032412864875577189261483019348497430413667903558001779116375186003042834506417591556334068680731708349609907196477070345942572335508305445853342666168363905667171473951743267702113590949882617173689688907018684899183651939076981556589768711160269163914658938792066945358044451096216612532692650149227963519004782199865658337385910433099850824537078881197642597790854627030255222109823715869761040431286949624058133743750103864846808227804607503849608276404195291482537543441107834949752629731806334067428463725136919403955071084630534908984675960234784822683443542420493918445864750793450172061893657646980536537871831181964919897704828169165407388854984617367459024901849689928059513115412289851175089104969518710173742920614340970269162598370357336906172665381725398536496848577118197224503702182197435550416604323930568918587351624180188664060825604402496716259471123424551945485460945781873622576372908494842058854129625495879271725905627382882056744639135502118451363074234993899307975647648667892075872968453840573422763211139425612843891631029573095084661811586542435338327324739089152514134189875115450355675009268687598059344168425786871683151668384863040945189990380585540012731607634302760287947129040249376288700438439622621533506715937319318044338515291663030928493273425226671420152679347925914744770519209175247427293812236881907822147974139923680760521757891161073540845076376076078795796997484583468309068430466706575156546228254813098196317933153553255998778648604486925621727897808147696919132435247845096916043958426225011320259780426672271687862593731700390511041807540903647332494133941100233621653232407779895818610180768722599315697034093559368123050108845530408647206209603430713704840723414502444327242950994142404181425551676598026136934493511209201375779628600227330312202072366910926481021786763079391592036940064133275690955557892767018775899177760612074093296951271978883026109674548724910188699247875173553977519312625633590433013063010150476021355771994620629537174953716429042553797241004472713582534154292839732527360226908270172893109741286744590087018453679254498351838478579052471551425689912933654879623776570867421857389451028907488343048613867498125344793087432423692791628723444529457952810028086658662742042253903808510988112312787226697849206624675884070193693575980537353700900474854013819768188958757498784709581464899125293424998324419912982171847406707741453666709031974156521698540592798477126891641650280130517727680739088617703227247549271547298296460631277685254837402547227208658873304989271813045876430782550651184950052876060243931537373096774994226248478234212768334536047416584025722354352719441290140613962746804778661927379397265503065597517776046100933605927627951234092008213168368460484188982908023725604379555923864971484796868675093337656281689450421333321751472349400573272016936288138036879784192603646876684558448652129500471798913608133739114467825126402317199635259036823234997754063239487611646761841051884285110743883917450707095280441182306224515804335552680616496708166097552615629405794804265814767028557421137389390600325496802430381209661505377334041676725275941077457270657923254631832792220553008424407818135081306787573617551629762053882322609057912163226356100066495163620622107134329042277823543622359055202057719509354753257209213365894271985541972721950163078251620428755117251934685439780767738787272953361359747733519195220623321884557451981148856550862058977699565048266700293329752407823768458822776828408708354904794707123649554838130958814231104256796178365797075743391784911554042918528110192364283201701494255672149958615828239762674033658930978100195899852058005894190951174643064410970023579511453858521314212868668415327017558493265123692498439396199473692854673530672053726210743966961727582054624743127176317797815809561309559228356265918471356200204907388697421327593456421006301368100369005893819273975889444433060058706578290731331239465866798942375451619730381801946258260855361617271038539179554151740484352440703554840590212082919150794218164399647176023335807870352171090397586246568836736657840791912834204436570878966967835228969242632090692109966431247998276446763242715308667958456355319928789919256864950762398838718163122443688123049962211025982095146331958218223881785259521303861236142711208113143342105350434397356893295265143027752055170623539042089290712478640853814592181173633623280952907623235469059817670537266798695509901359875726917849034664135681616580327220215437447709538921008743848798375437566185710790305286464526118534862690586743565141684841747524470456218146394456261363870148450077098933274673947173145974478933474698344830559381345474766227325252944043072244252882015637811687139292731103040213649299731689574140259201286495926540505345804801240229298466234959362587806707227893894592979237305460086812739294813901431985375171658490179577824421035453643909052213767331465629020553077715995048290534005356015506309795275595202901943646579602147373604326065231750242458465147580322107485568316459490775859295022409075529250344823269307338833153181051521837050559554360365453052192161609448485391273216438949306326215749395773245540892205188364183235461449477201168402090741319371436567741339528592577675862908090397049072063212012766104550045531750961171023882791974264635545498000450430834992359333737230821916111630887137874385720149327835397384236507773833130967394402699298911253715061157324925707380063046627279665922111630594511670873622837972676593529140331735431496492150060820688168252882067844133715932756638596861060765496362235220209302891198848181167557376609488488332577838686434641111982269118044171082345168275876000914195110514940255521617595079912666289980118300036167841760895083853212761516239270642133777807397272379389036435288905493198695672811851644633699641899404010069512617470171637813660060682648409853202723920406050795217374407204763034042086445137058736747399682071328295448725651466424865470237690807131318033862802835564925095833603723032284965021068373765480759792403831883723219011263392425357980720690639965250996784351625906455065433484609431316550228354491428348271478151012804127227343649376980199596130090552003120012779827058314988883046078253278253914669992191781403676004920997862875936340183437446572762729310913304939738515737197553758879630704550705862014449587156500985395283023378123063005812142145990451632782626640693314089183176024943662625687351797552638412165842259147940842700417551213996427946331256496729871491057818092060737417886218533409214657912978172381748501005442220606342529657789911507882014180247366839070772765280213015892118288993995326838321405752882285456346926348739760107035635003537522216519466541636508810512733704091682401560597680276737040233487282957816341867876462314144422390114666457013188423814120493282347388023474730549108241492847826718590309318441487681193045413621427611293457449344983631953878164138838575386929664467013505876247000502792641281405248687429385726716216799390548006260150026183118435631158866726354982869448260734600842713701617663059141976724190630835653968113993828415075084931576759874878414999457305195579499536822120096468599576772836095519306370121731386442769477346780460828846706661139947219530859696899169708392076948214022535940074283317723713229180788963333783759607361594527221423304706754949959401749352157110798502359895889221876188279396937108601920609978233508686495529758102666227942413503015369648938671499720552937235101433885961031953773933193314896883698407424744845412577763705610698507432115567663679613170803820988107694976071720709101590263842206630419765769519801555861181770408455863580951862624380348331183054330424880258038355759355231245382536942389045312443425851142092845401978311800943960597528531565694504844920146177029854805969274688859027622892536065430112652576322595150380181873242821141263788664962248245361388811539126973848312036537471626511377620022999235881931688930787688648667869106170926977953857407972667529183747689061237864774964781997722185198660233560652991907321385619537056630247559849366169996768576595870247917124163768276506154664114693896323337851726338302243662035667067583903453056486869852647977999256248275411731279045029456461758761715820952447358838490961773209961081757377297356713137748272345451874897811911563429718369612597751627326804850974995841582222876728794399416308962221346637198618888336646802905031858103498386290843775623248712035759337342046033177524722517000441970814785870476825857771516737199492311126965393770630953798877587504146061013499305812675694940471136134520996849733861708418459906560896832263490867156136550211337003977966137884492142828796809164978874851448417328012770058719049019069516575710333781897508374114782717867093662991715096854876993681287720277296778436368619779354901056248831619558912824579233884983794474046829856246086204896770787841186338402067735328410169634907476946945032344909015709613720882536429976211967827993540482016956321438190426186927358814757055467777775179549628791142673196599070498734788970758827243274334692034081051726617400952016987244840482977955180301966590636842301792661655686042154015958262612431588975011193797176627906666554584465245859846589242521564761695701305544794642978035093620705655969848897061993109809281255061749775643892507250837064763417398682273045325224379945040683577241619988686130734297997825642914146039056312746896811284243862731075829590175670284876808930702674412885982612565495488610705034664419569687668227015273219708601138739619630492034108690736145987008498815078078884401551815758196160767499769495193905735825067588035967833181361566102071825755603088968811254974897222220013968602206912146268938153742290183817238833347001490498220310764991873526679032874403021907806397451803492382594925129019364115895382893965583173471297138657215128941106969591789952750474523181715593418207099108887540445609389954933136719354488096906582946163027355507740496089883053091825277545930849558760971735880853918170990971756353812737948081026458208128053894901658859680581641082899816140868555990741810314243930860002915429140437907449524324090816896697131852608587753690666698524584869887308417496610347883089720764109713282134133600930019523672360700194637272308493713929943963971035040435956069335860547242165406780340143264098045778051757428810586259548838137401505344948212076773204252727020091132725999383460820276315756632996521413757778325047429671046056511359588049111482214868005007405762507604197263792860274635693606058297360286453471914243909214677121610009724706702255754228974334638210416146253108122728817155984168026079852165745639760153989694585292079525067647831761336946161448804695967421673170861114143336134539314922843063463333493250421614322910655668504139346095175353824390458344399767045179013580017042007904078737831354740509160135649345478038242102556389324475519901066807333932272305014479350738773630783093740204666993272729125044946893896800991550321490602868535979911056141818656583187499394943682410554551469234947201236911872002849012023461918218628987306692801320985016116157569428765618100529395071540852105960662324732742816554638771470768121446308591370981644687827875467647567994088077804168627020330254480925752857776087881820713439016060907604018270394817594672620211186719361538176708624265051255901035921510840983227751370287217773806926138993639150488318634240600270197230350146614233290269182746115740336137122307236754615369530938608442415401148118722333251882429328879766275787597582988322903494929316150281307126082872634505632196460746348867770693518014895561107750785203243903306131396671206898883255933160182422667750190741717290634237723984906405571650182000381754566837362419022517785223426984572321275910697854133253640198530846083679938079548792643007219176531135497003045600503936145464639403114082126541976205144870895038804382380863865867046234653876772206257985711332012039515473777026114807619560050445010533180617903974548499761069923518269118209469949486861364153526894264248257374921190246741121172545945382337033917472223016985784208970159521993913644721136928811547909502392376183760430000968699002745523998999400419535542563510937810190299196688719564111633199396013993791670480547058150019577804887668897734251779388640061625841605871378436517103113853013945859738052874070366506536787966589084610787594243830961951069816949784847909207078545635000806844686708082138202937168928703816394491165252620056532721894134855602560890281468658370017336131896712688929834486081452654327514359859396869754204767690910117931300071880774566829176075871809916354086547927916154404054737417675970491244827192236487877835442797539105905498207855207487051136244655073593792593269563826445440999260014871405902600087321713787477776522500935458059463311632594702178368769750324741953177967031831583905227051157547121147859392878496516100423897635594049038908334393384233446988597950892480574711784389952489720251251419641302625416751216189558900376797208962084225709904083376332555970522704790736144949414327653094693102965635370681971825862270480496395245774533597995181938858656721166220259068902211248029150136166057224065299387167309023738575778511620666857376813532292328787359904694014608072700710362684662542988904207383505857133737921317329069800163423678012524926973563180444827931587281821831663147441654269215875635730431144260583839642695413742142979800683121323345791834691150373619156885846168901653441882472019357970451367283313325643582127873546042666231235290278637740805426973260684863655998984226428673827196618535552756206454424888375409856983800859241301662897632398607482126744988948711142479292135040722664754859122054940306072866349291222779581992620472394297057263334539373182846345336372716075495750013462333503952881514931156344548607485760771525443579819643662159489571340970245361210944184123623823301836507389583973117662247629842533900770210006902407551371893166107970646065561026033335197712335934726833984527727644711578301360397106348097499744209630678614898765922512445359547458124954661226127737315429577273389441039712727974279476258593250617888186203328725046518489059298152374127961239107575935651815626403389143814242979487915653235429890931894393499999217847446500535018820695139556570716178151931249393664728213817646706127118643225856568643420868783106263743011500031112779094723066467284997018155060302127129453605558264068477874029552378265233240532670154865329702261955387264860930305801042584931925842607079713397678677068241814513904783658770174494367128248842277447394822431412281565670702466689153641581258258098458727001477820955139612263442468900540337672730970506341019523737960277937849615027839672789347198573622652149449484769576302474717281506320836234811736210326015250876692521209832076462167919424397156815036840555670574242303469242736560713670421915204554757161225077904523559593301094209828828034425446883129319385377388030913863930512627439216477577829319432903893780104331641470008455042990904277576320476721379813481174253507175872293803680751076499871254506663007917555485252051618166291370425039075864630598320228855204197806544860654266941461368125552522922878858931549930336259643171102061099677257145498612591853889587748299434064256618978522801997727324594271145518197392829903934146378302455735772522615819753488348309821130978143776432945666387504059547068883394704069140446340310928462295000020032316506732483175341039126365286359163742573513109045340114866332522023053739804204749901450009702182910788526705788791074911235494037646114224662350100519384924133127426430501052091358032423918738821309582769859203982150997766768711842207823704802584292082319821971556460100304765072634212060609480755141197367069827446220266957975519402481882282807872328397617053747532835952434204063065620305326141248897540853019908331360169296929807791579200900622686720560597746892800000579973233490897535462823348486036815864779737495720682364038065722927223222062988084889092240323699816257010503361717845274289206148452166236355144243463496887770930788689373202496129850080886537014173169582436950630292629471509288567971160591957635940344081884676807029282450139606296883711219929155693972636310811744086522157492935145547844564179961879980287467678621402970703089616108437861375986901689671456528965177059025454750645626151273822498561971507159247390064051770792293558614925444208174296554036169657642251657495865723234566457755140466877950023633564682146950582942929879527768821577969414943640811598902903687850723133140352222367982022385432445363599708613600373734416709705482028505788125220539101366162960435442083112261580997143406950571520044331463993872955604271024636964978800666783682994425617900115171027747622448222644267598508825455346003055470302404228183755434833816084966172001626970105914362597493585043800954311267238170578937479733707815687233062202875296259265296498288255208024613988557501785460685073204345110022106947932391590779127649823291423828346491062330389093742115942796192099189515862337720131345401393238007190576756000596342668478837657722388111929448511373844024043511760518340378296699507398196490018849792867610937771381351205993206949277602439802434948724678704588757473668412822562717682943314167241210219808177587943107861744222575657894171007000026608620409736029201360331061525481481067188051230788767936460065053045999713747259484511313634364249010488089852939848850150176410613949764956264840463625435693609301723178985290975428590708112137994281684581526199603222247983457291950730198444703541688359554793116586650185410779378047288419427012751062707704504421251347640291603576929172819806394633456027491889287105952892987101153023800504025139923622842861284819061205271942770040685353767467703207771476141409384901243299573237772204774046939366320290986138567245071335627921138852786975999864684797964245405026873897762910972880090045481617268763386057324095982872670616321829194256536939067223926898764906330776297134880661708524017918779305208862339530025979581046533330796231939373475618446626661839718302248242082305030715958659480826656588826143376942365507374457238542654345344704301408374878131122050713143208342387280700548989989415819455661073271084457335605461125004006868895125241548354988244151924030681042270134124520745074277040402345563836811390434866673408790567295720898247889589812034355967367650908108155716400328235892430194083612832411317454661299507697123546144335799493695922004933725150601642943985127502779046347992378027363703070681681795017304130062074608525611903136188484263053352581903665620562047386560365966173877024538383728239226374401976367660054579430196470952663022082755061076471208012257318041345134479340526466354370447795488978938024358722292890193433568267895626964800553418647808277269939337604077117904939557443154552395942162755134271842970247110491367339172995283779328383335071141329277496453113385684319517000842743359271074700210266727822601372828637934106673452940416683539650663394371363242300197296116888553351285993952922765969746965429759622626672262673137209812034807128418036176523865094642380764499165293233867964560933345411142490499733490768996876364227103536847390190188613218995953046012087633404226308054940187472573311440525658701962464208410393827041127111409085595948374391158838550562864346550979547339870549447033254838662299687218063665603586851472445665401732690854833992688560139012898694403927110296005173047452864472905608050066048300869178372706482386218020066182128244357485429880090087624976307843454640283954512700833465812747017371200339376754372252321963731106567391251099455644141166064577396378980558804321330690272703715011335106080937136333122690325548658574256858548870421157416620852943913746152727465264121538802847046191512418093662788189870583713707672075933286783785913295574923671438664934363090437880778621324979356033563810949172640957030886304460920917215617281970583494670270561938092451530676905456183116804761758721971055334147844373781743352395825625270784258448817527582167787765409158597686981683696722590185633512326900086425790261570769875014061319938715397442606455635662823303557334017666200569783211415456965391443560113912206296302311614802312149798363342486586642291538067557141296667563436369084252663456082040155296671902946346088773225942746543582512116135776290163006006272539279793433967754324491509820456043240658133153968195813738167891844737062813933372350414225185504717713337957495079101831650972529936962167127060496294662457748677818898980864355775975476746716495984514387670884205483566159321403113113964341798337636262617944272379178383322531497104757287026193093670762137221211944904449698621815253671373314741693756518217396275843988274985333902313596428590155230403771196706651922636050333110668941178152599896252530010142114448693330785510485347883257143543526215760998147812147484771064223185784553307730572453520071401100116688522466635599232415662921632584910698371846643722175432341776648978684920834009253923334223126526622247123774337573099587579403242466179751044570811789544884550823677844540199826836010311790927871457773440942189844348639605923807633383391450686058860500042267994262155988010217070458913295426879387843389774325449148971383549104408754632400412468426595298980749695741803061360348889354091998269039705841643540488834300664556906996161107572032814150250454590877864895298035972683450713796631896190668995442215296512195355782260915644213373395858154411231189217339465819294984205372793338535623871230619279873170804643898956925787416316314724427364664625497164199688486772105631668039367474232049546663203833777855635355150836792974021216321146722700771738994686550045322460994788553700286055464597323117169150719912002445224345613461377906702851308095670365503428813569824861341433340953760291600032698518003832910469892808804303646910519132517606757455918759343291716544650790896374497887047893642371385801298019513275637384229773701005729222193763915993729850708191525746130000020843927797644555503449822849958910077044578869592445388979802831791473009590809042765370323394770210988921965409810309209761603942580848447249037164072351884864983095058418796986790537506744702391727936740261923950343507255751274329611452056348424019716481684591761915186114440145991803576121786731327005996340743724246838641770041755784915968900240869780615330543129567131618026320942171406074260203128695882886452886652561460353602586126397562374856067949690641846877348345930563827152043710291053638811767127757483032576094256414914237401061633754481599465794016712009545946086631499077386848301738828313328148076379940522740037536006746384735431166739811368285566861328913947220078731737252176647894753774039555889720371480675097063668259351872308608773808383237281174143478283341675295994114094160565343932651311113661317866200791698953857536136009877627759578459141089980404840412076506386869386223569177588850524797536099310110817878250454243108194317110204050411226701414855052628369023974941317291754095016360282532743337691062412146309047124581137282361073345492849137440967885677350543771217951030042611901486234414710057694609961110544843185011287241850120721114123245757474651297200293653263223363626644365903008204673482973418581655333169896759081682197432273143209937151853002292165808932765733255331146585363174348257660312933842185356064605421068105673530804646082877263588465549078220951342479274743988608210190018031245578946770361105253179132143635033803130326306350221405027182333670957520060311713916985129327492963912326563334932414626609854311210514272263424980304020088596584925356344483224986937547074077750767874037511238787410388173377194041329202228851779588181742224081711188871661422599211487805640487537015319881103017551467183287674082588950985386092771046494313538671613179710449290569167922817161515527296973020283319315576292577101250389600140340762418057132454395410714547870700084001607201457311674134293373444361469292119942445243784677687884545342232005141067734035848976245643117826412576226464044300664506481290443951760538237214342522460643601759056924646835012164733297816743465371542730731950137735116804053159235548654811434278557166870779441113590780723213149582940619221009158723846662627463177219872759818953042411863558983138352228744340435913953907155919157577177499707446726891208464011333600672794578179680132835470522324548613277951062578421292844089933417845209091554751663615026187657013679804805156939449634898493396145280055380769483227064635559844523287165614449905195690586580406639965429641786890994520053768459651232402604271856129433240018724722193301174442848837546313411044264651016576535169475044322319060678118859480443291379934665140184158272309532845315741024554996559486434426251871217493662688007389077075682982177974098722074281713368165515685857323908587370289418551871249226115981466776747590326599334960119691771566431888992070722510048540382232544754246230044121746398460770360093146224848284926785781898019144874301688124245052719619021342945444338114071143566294820130162253354030230282780080207576165241105264071303747097003071374484168471243577402920977944643502503313097936181570432811407386697706684296441254554832555238749510079177059867242592471315825776067992065757438795076054084067396133424717005590783415512327498228272575546912303143424440048356279508130066370900751329591521750241670561669755906346037222954856935726540757979944198116937768288430939316000571708755468921491231005788819504772907415366227797252165579877627069962916173481150967432306073502359576744405029712079993768658848211616020552188540800112301134374706513405924922119544160493008000669811677896914976719204534077187372417529483961803671310090083071799147598755639732480440220368699487350631050004368395231913821611707050475268894230579120539736896957222935856449189859103917012049370834932060097720123248647886757962919877460029226663093517322639077051763749463603106371145179874101122348286302911166761737611160555015278020229597431537149957871383185140360978207336812423839702829173781956869628665392530940750673157400125850685726639531593195836477619859716729141307311865896297166506362573785128963784254174382887182120314486201741712705341711473774166457852262219818683961757974344979329812247093139774623862239152776596382058859631049923776433775295277149074539945594793688467367588536282616472219832314935888541944333914450579776960630208566913897884443426160304275718482112482153094442862505992744410091350367972197589627513932784523818357560592607738387481195125563438452761085857154008442644293285835384171325840331771956501026103194917776768010976076427660724695609967388270613946547735075681594893940685871657873683230308249651336582580785051498607272409188539189694727452306438449091398363285568591608259827774609999440011239943755991676286779160371530513114442845171402679819045165068407335130114975921239840602050454907098241704358011969732793995351790686683386258163469381893462451852132539833707089084618034951046532425864289679621887007446509601646210606474309761719152874551972156599983496997746916432605853234706299970203160503796964963344072180586843263377226107356130131172087651276171976231293415132682335903774478029858124920301571504121461756004999355670713568889277163716650596184586917113876524774160473295974616041919306539744107506935426874706191320381406238651966617814377036793073694791101911341732468331248332897035412643786158464823869705819364513816613179084732248394071225336267211877147144692196158038166454979690930356216881246468426961757773384710808233264418191182280944116757050813823484342292898045845142668366712424003369070460464759474827640269447161656866616547040704052644227942268685741526053448907034691617664217968792751881184697466658305555710657540657504377150224771269402888742630364548034669032020351399167098073036944034074093348243661780400363243140666455009591829609074764792773334804863978347296905906520766519629356689395573370313360935761355300461601952582009567604495820310127015380490114310341519664439939563304879068417530561092076728492929915336936681950567676092415241855661629056029402906101770208978963999874469329338086527974612225643929778647757882700593350311425116154856080453651400802715696474471997211411871066662847391889239722877567103085705822916452641885556225574662022999753516465557620365470820045926994172944765272335278281094601783966432345945342954246146743008011495446387882475064072744998039116161573422398731072367550647859019988733221020474728909972857524538353697808201201797273049283726109244530450460521097715547136864617147863851933503114755523239797436882020980636655759548806205704076481942654706916433122865244811657518081240733676657327858152807016361678274648013433586564845035466579685140967271891371957352078047441617594736588603576996550913849026854766438342718518726757027048283609844600348755941285586968021151667154055049217125784896851911901317097416457538693760817676672135018379886880916954196276914492178129933896070514195879478091048332026030815511835184228452158211846061529555786755067849100974480873365525211151919843533813343430074872321731960501714306573995220629669466067181051569663092380309653547966636106184658640906927086448190952900776941814919867405412183231733558679817975152044854822116192868812151632766227987993019045382007217548802558262264833786228078983409154022092296030497631554411212946716419284931071304161725310817498254297324147250341524247500937480230031024317722863280409240788692679664458134204288524825103510724277051069699200222994815090082981364245661278060090991667395747938073550508878225858547840589376510049444659373862783412513702476603148609650470103634343825365217024331976078498769810805219120849412452457094738773338239454521092852414650373257965321658321936636864488077260494175094512486722457454263919420275985267571691980261734171733770279671002305429970881020887119732830511237194631882056371397036656115991144802087974712683207695975442922434786374154581211757473381132744330109697887932639347198060573202587861668618165055607965218109741494188078418256884249955799169209179938419960630461874174496797577734572228343252746895134649236369134743294507983969378656147071079613410360091168321208346320468161967746352382627152550474017022453171542571073996625370597152940587545681862746192064287204623198502841651580499837124390361303155416437156423375027896276239873726964418248947552115392962432982336658805675213152664213494920045375335498737160357978622850899105599513403373365661544223879846086701823414470641394866995610410572820994251469231687274174014941488034375984817562181715308848539290872316668380690112310956882335662348029886645542686913453594613854995600591219439465362252216150640083818008985703762534833886556420163298027442740485104279895463089833795955727982990561166781434102611524182074368684768741459356110874385662715858912098821703011461278490938334628971837829415174045645758795108520735149316032087001691426566871012624990162037633635067938526987291287019709205386486948125666922076692286461153250856299188314534573318762766939251192786106285376495615031963519807580532502624030994221999007497307946262729435979268699987814927487603631538678275931378308477135012312477270654624692871356684493198982938082126352364315323444896209094671679436814259874230151046473816850369072895327510671604689242025559646165145651848450962568317908939824947750669327181911338890210705317620364156461632856251535469580947749771987528175852944889151281042679196481186712658211810020109480903209288686917448712194297601626123825563833451806300002104469840628163226127301298797009730990208982206659773086287989210819938389027476557171203708719936806844284981579908972912654575728538858432469939280354341008567963735878425843046364334980609042203885292339645708188945539008958611302146037286727267558820432431248011804440741408035844798622911382270619473441430470342796377367345978623420419567206181960922530116789222216026411941271682233644740877466141667690500647912240503012200705119727775842888326090332587273679795247518376999946015585879352603026320215865477148755859007242419434721419726834754945452920614889353243399637502658471095524150546268970063429776115426511834314537460333682986314749988745257756602327479044791300328781670066076450469695601976274543051135981260223303858430476715647952570284880269999672376626488663750640020321287257993362296057389415178163294145013844261622651417296476643931727129816469661638092624455655132174706920508020281024288524500763800227234047430882679332065818115125061226957164486774962588236950220045162441324518661739568775526737890576437233307451560618424118448689660892142267860569564398365114041682418743852341853403787165774749746459098736921554706393810258658225656252177574346026976351232075367155695170410444563225537460359143909367757234299221810506438440183463968251016690081178539596278119225910289825888166695955345216802161575493142137297112331960403816467229036083651180869673548438126817330009020087447458112572380824334770966726789253115999202931684749784906770676352899616635442666520025251736454894343996454464085147568349768949813169914861621838424470879825397549378514333802428593688679835473889319104041561415122319714619883549015353898420926234195725279171823110770206757739131166476131019537984049880375381836456704876525032432091637487199068997101312631459236494662385034567296384907166514079218079922741989089471513585097124069369703471085608871652353360155236750568881127986755849817723174628507064068423969456647496470531580158037671626000508746528431517701961586244598468423152883005932040319879989298533109864589771796262297278036100759432572927911595847972437840148970738068716905422803905224027840736473469519868920157095977252515605561152923905575956985055699184517128614726538582401147212150785424923780657876875525590366751822625862924065602641438224052597365499786665107415181399975468329645654504123588209882145622846247726639202004286173654034901683686422292140804754132388902574944359434631974799381163284243465898712656009538762253926415969655029741170801381978374337223607709192033842613236986954450118545873314329763561825224324036266871868973238864475637760628707773653048967126450522301107937032802845404572212061447944641763957015432345789115618509347152642795494105209434128325737989442163135654078759168672671342642412038601881702419870903977576282890229522182352397315601428489512049744334726113470316921404460741730100966790287769590100909412314543104865353140876053985667629867153835160433821767966995911863782732457965537432964634100552697411516047040292427808130568993406002245785650742654171189243603774613248114307305879188662518540834663927906747712325332244647582698114661550942483218503669042247619794156190445015408124113455435920560914904020102071875862355268996170544498735116530831378173503540035814777815486018256104723894846210753270272717511445569161210532113786378775390483465013247148630532783046001138290838000020710011892623994702836851088563349483652005755704426074152854064928920269169953665827358138469353809850734649858169763425280258393464808102572666036708175514349951756442253069264184377954540501849455017503896285512921755376389388558375476563097128299303833975894973141488544147930307324935103509894912214353448838338901540100132483622836915881123800815506823980223551170186929764485565662016869834579294244145683308154765758197317361140934884990415859000415709245877156913087976668747535875913314337415586707777004683942241927145305110405542964305325802748525540377739308426929674513495710057245867168673133887668837804271672110965557414176590766378296506594641595469752228064810305947916856449975313875736741316758908006792244593258579214319922625825350567463336394401489429525912062914360829584602580391959666384407310112587114476293457969926836428515125829369152364925264323415106623710414008065658597478528381091013605743991315157758698312632080425684131094315848098778333166215550872324393627086294148472409103608755653456601591616961367390125075240648962533386390357695107572439610456985774831824137558847030628145019808750239166821795820945091685797987358142441086791604824658143948695204636182041818643578930653419721625247806968517772656044786039164240372036846134715804662721898102549508033890382866295938012978435218815599646503625357686220964719751649264945062436193371342593434934194273769797286059433215291052570193971643140458827852374267612082619472206454555668291159952742595948127517144295911388034248653475073904191564437011664924404453123597682657507088034275090136328870267643724368284524151727000997455454534413185941067299680321944478739420069178357484904338253695067667394372058115104397855465512532921527667800063392988502722537797432322901484966518683576391092830511331531045800579774554440104458126975423844573978502545875728319197202104171845860228050996348887244767882763542658725305771488339795161214896406015412257797194159594657618522555518994865714606547299879652682357761871166770780393209857931656065500300915388558307089800162264417271275532549533701164738193920206861881685292726080602139855889389138220523683032440647198586791678283340901759644347927053597176648620221094340951113929708514354134248496094408204462180983174807910048702747633059268387942665076649759406781012157964137696189510489132908250250758388011885735134652035516155396467386210586213476086251736508642672053333191960026337154651507094037842057271706946882152446390060121907299215831407909531385637734693343212012045590950282296643364567273333896277407896393864764196623041623025515819035493543572286444210868335344432021029093943361472783918639642398535719272449824504647340203362754909051600195241870259592718189780340557645051038335143361371164420815181699731204072764058424286380902051402771312866559673460269500773176487282795334792043877717741725249169340227314403869641845185400381220650395776189814471654848127227435125000451757787623301201176556111460921474777703061879129264661322191642635727214400030430357629156914402460077240635368445199511114845745269045225975023535174238433553329748198220223882748925481589005878055191745958977344982102877551956373083601558815451324597907043321835064100107860379427557063957955180290570085091165297092402296304738534354776339712366533722653374368853906467790293685513762422405952416401451268815776287709890691872486885057202685438901306458908178669818294903179100445101927977886712608899179257052278634905863499906694755854373845299059039018542847498478413788335564683704412090980386541281566954497444939963042331260668730175140993510531710800710344677962847340541172849391110364595511526699071016092212702838545044838486005423034402948820181670647970413284543677861373459538091158800790370415172779897461002505776417952654032444207425541905161628703410895212442008632015843496369146240666687286430513483672318235969934746598538054644988168514173632365580908340648448708807778276913831015738738544632666888153723310527172614685813004474364052429804903656515109752825762751150284977624339369994690000152915933351133449530003547137648531828793146141412585004923058593145728671273774261450040998126025809770734767837666586290732160400763891993758644278932165587483841926688100313682062571983620936120825672242025976954369510088865788271915506489394905945878132725422346940487333573246489537762775667373234324339865833090977166935496324993377324631449228841833046728046136490494871849977590695016195809488291299899786906443162120079553815752295087436923523273837201489240399840304654178241694271416299337519647506270389227890750905092373503642180500470329303139353688529086278778221957538727339277090582586118715686579817297171458772751826162306569453943677094731937793325318655970137222370010923578528967504602214871140308335183135158673007794153344769847092262627705989670006002603200688801592746956357506673505116638017497798517981816040634414163942163236806190786708986754622027491504061061176384783285931526834173598164391620428557240951907552714888478407253036302911292637028586764428184383617676800396158744323807006309387611039486892003386547729598853682478358602351018018564849791082545540288038253080941421475277560052669727408070319483014038139695379171382919724439188562154492415168987112893256562460174000870992553327685457275885249879626789878839652898752238159841133304648156283400013083821137153508468851453180498408078987271773740625749024001659936196991634438750966453987893607901300570925951832002024445949994684772757671823182921346747499712961484436501175578046335326825865030675354431307580323915987255626607969097007814878601199605708396280607517295550645503043963532198390028754510758733310391221124835133165580830482436065717718333841391923123404573132976127332827452009871262968876188612238385008280515831527627370306908192296160461457976795181600850373506183332749358987338683688657415433859265182100363016234957621159390822819198539301676772041521998220632335775193188036618943329367763524017473068603615632860575490338681346854060050911526429083703764310352565493829434464439373781450263247269256126878352175837806101517403314087846501315534646425591424216830944209963060017641995075027155747785132469050517839869427797128649354068849050723007071157977863435910278856841944751923626630807579912440411335436181068016268485827510245291918540406412084523477922793206290064786778329773955347030822272133109935075353591630338829515045424605626697502774487419366826515129640995938916562863521325518870096897315862852649724446150565093503555955087534970242781841332292012718213276897181915769874001346992883654916943174754609052548023126394979703796523204138547369868239892441244582107916961108342172202559970798223166149578099331675782750849539876516469123681157752899339718105384195515151282589355090028084003316710902636965973513275713052220431233077276666344748821371692137386440698862413923828650680951927014336246212118228969713382711373024820688693006225816677174095547942462567390525633136101148387391139484676955730905290859627198124507385390414061848367892071636822330516817832293491962208340101000671977649483070054361897569323739979974891163019670815844815350411053984866133543683338176681308486024309794468883954289751560725029954372877946186896859976980878662654242559155993835257257022217534037507865831068909612492672608947080027181791643761614538259396256054675667664094314013636142028086584196296395263290377458758883871714910395677909603897595257767852395863992836833299161226202637780396069379108006193772042140398842860882877296409840570571272240815349137960122877839526181860045574584042110814522566447890199610210029858370281817038270836278823590947889674710953071654253585719431819268776949043615481157524951671667119122846622186144080610132852633530488419267794375913823970124755439551768860219671852756254521905449400305298920639449771573812692600681673229903271084790869189690682766060685496565173212514623657909828391869551470162613211959727029313766852346071722702870605319153509419343592360130899854315531122512842055801226190648094852232338163881372278756103533520866189127051231069261785907413919117844626095174628035245372614560767745148759154779009859120874154785636793690884467891003758079270352491314319008156741401038673329710904727663113488965257435183106886046526070327559748594698731176333499787634903575113349940722481062509241753688327918576894335717488423583972637103407182025070945054180731580299165665286687734070303959337657085098743702774637095210306531920903220806070258626589038991679999936396555652305507415871318358768509496352871009658408665743153549949590258397172044825156193217332569537159812553113319466296761523529592823194468809286709745474417603564839165108338418320389447716335299551643020621860930663499572862170536114842538287569631060772131523543440851878259265001329081884321687336289179686977332066609355090571062219617793446761808379131680915555255440725438010560729440937000011342495078283170342891506669568495996178792832064224365145895497770177622030432063662822424524327997856048569106208663614927572833164913842227717115535375298051953024974492348152619915811786875537685359312980312707238128762242390754189071665214312418367384109090307047390416028455277252858542525764700038984008413463802765309457149308671224281644269330223713796801825870934540854567395358227046022998135052626145858104970700510391397958134451018204979254885583669793195099795863074700031577830770432681393137497066234739569161045145036213502825184479057872787097373981519192106385257606081611616985448048696661271904553029133988970827161088951963129826362734169639507498841291544987305518082337491432941756536100258484176491816729707102300640944411277566097955337599432802060738500787109376750002068184333192492823203009458693617832566481326126577861579774160379664406135587808472089904533779581025153156524383093046990532810195584660244730924231109651338896774329865317835080479266154112990820139777960580507865086409195120443743437437521595910687431712181285693427563078805529951769137610144552729602269312977561685197784186103009217279904615943261006921086494584065240114324818455561648173884552072010911509922433669246496730382232136295000066811222046714191728513952247867114185993994589181698079050514008489120791685679183772427117371505790605283770369738593217465120724413717737668351340695312539461435685996628081620751715587554178200479817279493646318096597089988637616903344868939557852942547870761034623776454658945645964130472321112794150269429876657470853196364538573403114867846991089808391862705698985134353659103559495244258535646980649385066446127951892019795701001093757149166693183652217598570382785280559356679567547624771415679956016653432770606571456432672472193424946169252507049094480154401648975162135061041130658594687272290462350473246671080240826268664609980521145539774207351049435614616979438533621579956944320978470415824102853306467463847911633759774762176447522248586972777641145646327313456468575451600299044435436346421798703562989528617301992601467051524175529558694792984587649962523415639199683553383565446069466840307719656250542494005616861898820806195563586591003285213004452222486029467103437841421043175328436269574129608720068866516919840201377678820321579759327411112566182810759629150574633657561901343830277329295724063220862199191325032380351670374635753400047928807060466046502800731121196948365156062240342772877677799766100838274201418573821242379919300117641851200059770853005079011490961098107269903790270889251070816330022070089901827628750539891662507012353757650483359437396629954695101949955536271346995881225091994121367595966900245620415841180566805673597048025372249758515729731358871174506235203736221668388588605944639876372627266008134547627694243694019936945517815161978323738200707637837048351388825554376060506582065562984025287073514589177847695290549811813208313068732098620877787696198566603638049796857067680727094388280773599167281380510064263731812841392900844201721623354064313538764803903120192883642875247861871665363980834245246456670756570713392521574140626127771991971141060308428426467860173040255631903031613838886280938150990629600947077210163110656393847765819794714273479308793955165070768447430573618653517467207561464251384615051045960220498867157067971970210066581902872157663780638564766489767666953590071266709818537970730426694442178239861476074589064762297296155724678082527352952095984790191697345497649514113872915349631718382506909215998726978037200459877974123925376525321559307023403707536087432275442076861886280381882292420097591040048240731687086434149091279872962756273180540054122768456053853302734850673864124844885535008726370977367017626794282569626306766309689938928911021125254958455015774565205052496095042324992468635644690456125545675878028934051975441966084249870552606056969091881229736670794670777131460570524901509285233684101564684690557306884640554937262500013547202013090771527282476011279222403529485665309039052418855286372581310896084055801907712009634602628053214068478500429466355710237409484248986367967522177425172090134738426806220633295539094811575209800196479231010405970893442142717966960169115891253220052804521824208542714478057306425959932173075325327374811503836791205203074688676722795634114450410828321170993781721237737541154942510087549804707288623254546576996140568970830755017568359399414097082226326771232107732051516407738398170749696338216777963004370603916317154678604036113414080080084365929816977829904861215497820929040069877006182458199274905291282002035656049049203080552283649152092160540764840438555780346452734118092545110543690947261404803889033206316581287297110030135442737562978874892417159986963710174928567895341016028710707302286113209790348293803181628365974736683032117898755431158892761949915055894858145638810089545086512830191429928051642024053320625666996063170140392535941395821562730363844430315422442263473374006042589588708684304336539516510242462362506302654721203678176323510174528687679844795896141790223643347488927079193366866776373077979803661315086994073893034870231108001021968118120395851644434861075337291532093412070613835607897838256027998257985819772093914532612172430665655409805695756360800845874685855334498191278028906576123358865360079680888716397651692403983091124370269593799408482458881292891498058595376932534451858209642841343279682615593340296700453712290478449701802783406330855544132141092026042857848394554177792441313426240429240219998139743861866871894084505151844227726068268872977688067308645237166903770827865130748006378999039882760627503301437143308549631382088055097123575800527458351912905235876298583103797345531028871965584133505330039491787446859087171557707682624807031243641919427032481087016692566268404731063327061161993046227953237282042227426639483900735346152254534416842359202321338690971914350338470693732741042142667145051960026076200453828886077354426298862470452887112439723020053403890150641889718292900843563063138563927689310300358398396602950346737649233126066921737607320416811993883992321340246216911645112902480593601600901753667930829016253488815985415150311578240301825512302814510423465693957630525976840905581584760791623763922334572948890681151489621801363466297567645840363013064468894476259067366213591258986634906563671804089196114011145788475926674624970975756875476446115304781787455320040488083588473872789364033194516182726741906439783047802401192847074267408132596664417369572038746888809037180615378944043483970573061667407369257277553431757601112633625956349686485400631766664292918075546068139486308351417168964766512176328435140601644772237920329290313724141656951518392387715822746557975127872476302176501479739912726826640785933247430620966651911896235688192030133943877784130921122502656786762624689337377223674028555124318771424205739111467535986250624793111181590717855565646106238485064243902361962100793305817127544068939095175509158787804981428939210147795066331423036542692605432509995790763489878278976528847006132042927020273911502304071168077830817143808699122317410101136260127841520511650664201821390832445566599479309917953337976144360205182606409566914543127939477501787898942004057433548535435912720471598084376703782604995968673567186207485114255400527868005718286390747082223329519284242234344333383248109492687749914017712969185869468075692566814069767485888336813988390358966605175613551596991622110529929670602885215580561645608303282485078251323516667097263592670460076084385700238897969717765751304893501981547608747993476318859648954403081078445480650258644026955049502504130634142451173881245999265414843580202013718754835787927465589602357422172765646924843897804226620304384174105626317275233115414540540651778192382725165188992610904985120819374244641525047764060665126128137666721582516973900586395175352068429450047152187677303395402565970404982637498815465548521698358204267393863191871905388996739545047066625249679787074522408437099756909109751509075202818667473725827426624261077328561056198997207633879205790809629713619713961774156877488952037654150560392341452831695594206516629772123798331432065137346900755119501822542689731563339188526655242054929382760665873558553606727317004756359312932994143018270471323540892023060650811651139492680438679869624541832753178129864360917868062756945719200357014650172639940630211919255729513495788592080131104220897673806590419925235343000241553101334437193637870782329103639723357095457958524908011245140055972105618086388858379665238854062685311023614061838322760768308632702689848210179438581380548340752534490933072233754898912688732755639294445192004196109866928229185678840951415676123235298425646526332552355102467736393229141473534731551311947631250944373598741311049631368595536693213238884754378008782312811331559202088381038230907601025128556795021757401473371185867333253639639042645597970926431390237456016503720017490985492179712266823047539318975785500945520508423147647689464425342987264170858723823477383157496879193464153034503011066397528899687917695682607653669571421920604019557221944181914705353763087446069111942825243097037282017369335145740561295300741296769505563456479082282050463503390442546223189912214791385729150465117134107324580363941379480626217312603223306491483814735877523712872705680900435271697239056140163873383336844103948422407760583039127586941708945441502355354669549189925919385849290547969337085971830196687465380597310260468403321679630862357626304690645742123791523229946395466899428869067021535881833810539724095503989640050907571969076574433724835070989859958931542150698559805056795517100900615941925910163205351623152336416654355626754363551003033829758895641581879913899930094430217738140413895872180087046127946396112575555479565031805007401948453961510915399937596011742806271222163678693814032801616365027278456842356383178142621211469326592091146560323765941538680465981919740747197708112543791467866778962828958639124800195084323753919032565993572602839462887945318764873886284939297605567468016253091049683916577585620010756526987539484765327948435988523717048823879365278583360539636430196058537659345855132015315035250138033645652433053207389164601362921881506623213269757533010170740756531096825662635400395056472059869145156962394340430029619774124589297871629832758807031740172806523195032243980482919281328351036306661744145664565991478353609692000657755735811979594716083037299856474796831222174845061655975331290725638356115698366810083212934682435094610934264300904253511439695630322299746556347041936240670655246932618691023446059518738247117534608460774037160813493718034149100583688888329692778424199292033989147150601272486554279328108986322654585560067896741185677129559477618270216537768525379251789973759082392257171008510653097873723674006948559246753715345099540972825150344791816720835523124239814799571823832111968194602899227498278815682374349202516372735612620541930961574657197770770611502849545934735565935416615620017161989219298338476033386886566562270704962699974897400008799447487049983044429416109405875730579911345406177944467288563517420770249860253864774300430969359772752892645080743011812419092723576585481405363673808897226434014661987585086056474070733043079989664403467914549164423961971943035789376767198684387245688990980686880595527458948100061537567037075635543595187887719057389261171821318955066014124599603743625422041347041058693806952413633179035237492924752599199261095106483495459422287914691503072815854744142490406510889113000522923350323612011351465990101329994082822507620366857871293600691542419311866717854246400749500312163429960391200777864123818987762027081025954753413275040061603358369268107349463847373719417895992333536619965113765333494051372866709913119338723329670244297941209802432255652885080220324679424562450496777326422988388195947585078496900554429467356872297429337363366768543706706352106275564714648343698304551284525362933607567551360685699515270750513810801644443399695644935154041321954019951838901131818885258259726212566223502844430663406573097326836446776093829732420915048496999237919117124840900491392054888118599207138990693644082743097553134056908241397027887692062940077390025064880390732580592917790902035420227805253366267503816904945758527433907949486832111239505962875010003153286322905739368563520305308277157114747713427177503118324839422235422909085891803777386118982750467165478750533017967618744394178971341292316326989751815579427692373270647920189763250096615939781820035450353049306006483924884785874006841150862024624492573490976626499928001920107760383927570676258982487164012129426518575053372335623902042845534402206956691123958805235128918325919906423768127771177557095826815246773284096097446590961600182572137907450604449715795659653379170185178072037780413875835525213818303497194803797828655496354584534073110109737344991746116232650520202537419879842553678307488870741201081999081947720665561690137461053445857322806085880320224623613685047399919226193769414718505684278411148742645531568282641637765716664032067475062524076266238866830158113468896846305137183986237652335228467190317844439822457088618506324000813655118273349131952249288275311985452876097610971389352266123108735350608911817223162643376396826146875695349867017442779620338872373864289018679616721514593751916745621126883865028357251142683525213302115834550402370381703486912455009725142039960780359725072573671821510232680718515013202099180663503419287940033396278573328188930218034145707505190063123261826345183800521125089975155099329593920683108820942886177848683185684303090142848632893467959898646737768349516085110998021055974021542432842968672827876132703872394157824769394872949487366178932353461535440139985262239142080697401289191714490437942307040078939633785091903559934845128053203501100392204005657093503526948887767582936758278665181915878231065217543626236936680079134856933839863717192400631794455994172129596097161430679083554141091192691817831627146811070947146437374542397807090892404277237735793019817102554507315272263537385425651892043567581109040625164759704746799509422081130140400824207450342820459041347790219128222731355931722312720952992162113983920148062995572456652948768667395100913231251103003586789237521944489720531919237604898908852834100833231628697368888758081901710706984002034419349649676285129874667752334579993310875819097963307217297560721645582826459274995916772288559652925103184357113504642204382008879568972374912295078786809370014305756057185184500985219443975254105913373256531003271896883503969669553866604636674360772008714708790099146237729038959740379287462413787993875010833651900711290381287155183365103315831127309787792581527384519921942247461431677216223129664849025494591129527410468774371941082971272756341203139713976828810871754585337126498054705277288160091899017040661122528552305863088728178858806335140973473460190247531036976506399071545363446127947877713730903413935092575780182708701076135573587603348381670165523735179454801877598613982010671229711258490586030571310426201736508264308954794091573058791192441612175251677727712008814904241813923872059774060311911654377310032070378375636463696492320049314382556871551592247341919517381751976159224781950994464366104821104865303329061084152348462023441569030410262657911015578892025485481318911251730172377240682440734619506296306256097320398483341557381795349408309059654691359692262305867568482646616641652450272065758058424380800231408464386273535607913166498373456293702246451672715064972268583049850393952942310513975913779168762776708010244101066427620990936242994569526959773674026917851077483892505633244019634837456112896896136560101749620546965023084978863477667105359200230723434031777098490711284999551571638741968950713245800994451009328939223803805618898164710303472673341663841839867435494941321713160197252569813754518769041620184756317521070008364411489976884428923880308550494935439828333258532308244496007803156082338814020681859680062907538469368439219662762539803642855058204483171727742814241277756362934562734470584376504164402420242647914806899665976688130789252662978182738824522913712255486975627399835068422770692980322437878095876212012754071980285276396562704944604553157849873283636490726365868075555656444550757402346951297726064458290365527889442871279752262275313355616110535313211103266025888721415885622860966730459011518876473290192079623346970892656186224864372173864035780066222832504117189449560026622241996230086142134359089382600830428135622145493708788667347484202705716912696861363443581799476879650397745046678389565103347965783593781281975442643914347707235361724205888256883370520084728414800747679889386871407056937819028443162521534158479933133489065071784808787077344687995521436695934562259255827735371287371055029497810534935645659984361051399581378417725269593554786354484807513246150805954527520579862810478985483922422651143284527179372212467359758072839199448055717549987979281046088816306256564620837261681398082856486494445037915705812145621559181868161948636800772447532148265060104456223520054224796754431299476514991895047901638939698353511176465111843654165842553167686159563646541698258064089626342434929132875690080221388991113352362259751619974231115035672023792448037781852451665614566814600649135306883178758193693725975238306435808535753707252188593389395482968014929583276574499604200932838187282256812562805975523129912061144072189824374212941449458132289286333529346033450612080786186537118719215823829411731299531438596736745573810714098085453826135241063957639619070125929438441435656439134495205991694001722248980622717787923575903970381419306718810602743938261637894627582179903876170822831309443028285111354742799069705445722710710355523571128557627197220303429454689932077288257544890034757794556357816745615132725833502242687413016642229761436526279491749004076198277327988831389410334526650628147341000952552108496383424205339053571847958743860568337411585941417391906631790112956933286615489077921821102700912510859285245483818633033541941220217538971256938104432071033128044088131742045782619131098583639312326462515222746800178208865527000935358387476157303321945054674116331830841224521614037462873816795081212450785635987814761326260737527459142645939719906973189309112762472329000945532294792341251871375752760086572930733770981201561983387370758982812912464701146645131022689370897611603852792780053079282175814496296776653097684297764426192643363405798340122275509308256553544252098614792198072897691986658268436531651305316135265822966348928452678664390822323055125751744120225007885935406118593507217936687797641432606894685034510164616844107985930576478098575139878646386697251268752715697825350063971128358871877631690960152167668622914175232825636055935528931749541361949649025761460243094645136659338701758893403494072176950562508541371478377282880910238300488658510701435575396061949179941016490610870427431119649283211784540608510350755040578470445080535774348724807561598896037770487824772768594401239702081609676990252396444932385527514759556363161753346062331314961865284778192639784605885886740912666237550951187236247409845196586517084566877058260888531328305810409198285143805811982890110417128785020190539851332531055733330830878146287531561120142267734043670564590287532097713361444346961181497383068903444298766745412538570932462624906698260614521217157712775020301352143123195418742145101456361714502044139637106731020117128400497301344114848163603451273717761724473300088504171299394083395691261684685165255378024882428425472925594409119632624101951190006829859036660800413402381948883849635523420578486190100093334752029015051682174128537540687917138145000973806566575311982839432974333270174648482196802832391494752183703294766359119303458047613238992291000274199642321899981327040957759679773220930451818214241460067362819407755676780276120031311969549994866637459660217767799319173701855351006960248601362959050534998445374031169599407703751264010382508351271820662164698693957355974782052441623360615274398930366109173058314666962213071430629471135543996382608175375958335771618354429605524488813316350417724199219816803162823533868752661598961987912557890179952275443573243967028613849211900688668852001769309540050739472888334650539746163973928101325869369863876214403388294412742883392934764278598731110238907055503157711057746441371713447258153418319603368994039708639070043534148884585181810466930016620202259650176473828724439208917193301057859925044814254470407737989417924233778594461695815265231206897185041305649258131168648835256804897312438781875327721468299689878341836372198518160699655855947402972768540573037813394922504901963313195718235585115036240160504272619925352108051430862170520136241878338414785956840218756272962122880804787785413360290202630255077788770094000812660418661616601713059233287452868517016958462976553189393416704526497988695938738462952975166887594516041453359401188625814562377996224834241557667457736877735868180393335829258662486513733434188888723542615512271839231457675544418232111879752439941651027473443350723824257537167048820537288546465421987959477635312801989745103662992106872877557159857633162546053453550139515575702951583493553770131780993487699206269551710546187145920574201739287693878277558746138745351624625536174308332769270992729280125062582358935353631852776280314268581002200820271266974037504164333929656207415738016760630612319533018527952666943662632228082733328880542633338326192544238827603266297395602154327713086331361888229181329371017120673333645462740014988549911192966849886172588642121869801985546131189632247425964017138468493462790455018030343418042799235006873559239450072648422431625209224470534545740880973193483281649487588325532708366750410549946876260861589056968024072443513281965287483026688908494627603321811845680229334136025597240809782728643952527765839695903346238154986409493189602804794804424889084061240947644067402973248214040264806630453690810519407882393041175860840670870661359106167040333133181088438408409470092165758318302189148034149581385522989206620651014798676217552850142755784997942514154168485126747462216856558909237378887099077748391908019207233501800102472768265274610942959999304036808801116590008445147806567764222013114367376880121553420612544596182497291501873585437741194236460360614208000087943651090145742700640205787712713269804383871980220682214064531965468947791678356861363029065021749254542482092895069932307887350186930863364719631023835502933131355860373872091231569641106086919384060149920150588492011910708532478051610850002420792860706814129951686256228260828249469442636619153533618722004004375205641817758392962869078186107086558600687183106694070833175051273504189060078342731236653973616051061320403209490379772153074915704473655162665390881356090153547979707536618058527147877559693390563501776787449415909125521995685398862525551946169395786401651714914886272269562221200572998675102073862202786249069249834082691823775418439389127480567019386188684768856348886970979652611098902079155087834896134768786144629101728426421737162763415186237601196236829227068634382707231984732032638800411370754984836549238254443799872981525631791780894722114170588443499997318512608335990932093892320268103864322808728998732670911714643639630423719023195780138727481003412807978977977703290615526315308500434304475767247252877526554708795666088375137721388522406233256589837775084360692526664144489059153024267106460796505467684004482563259196935602682021200851753533838886319508573156585256988495508942749975746558503548606866045859113117630511579920518930033179101352638030071990573323340435305455385152516803448720987989572416554963354625787283245822628102916426224414189892552133349105549952219616233360318027937689150697520804304318323467465463435800958410049463481935105034897111343622776388762466102830937344025982615563611130333700120969918812389056872269348201520576733494245585637219354735335809397579399296024631475158963671854281771403850728563238547919018852814379790986142843545311004313266135908788741137750863426717915010115512515733805574253786332796391319080643862759077436952598948623235865081131599648898247948470516809332043796607804363897141942941213411349461862692563225250613106351149501859652694168296292604329834006897058692808303905797874049378274023681321314069989978391397013548986555419741680906159667725154804078356662341016265567270129125666918603776231111635643431713968304352892263548048748151976270139124442409808521940150375388148794448315352490764076195993113578631656101634051307252404328491906295174326949344704143832677488299211413786901327046322425871925384581800064017562278114381668546069403263877730613660979818104362039397662789410404690716711784936119450125594172916585181091502820478383088573539634233979257101279988827549518094234970882444435409039617969376059044596467762062401591400109993738680812816343299207416550176586540505532829353742329063930864998476243136637673774009012749095775810602867709696888901460472752585706591755536878147166520846160577540612598140871250290226467619377182013825912875298687465918201167264533242144429248539163908011475702254260230175615516374767753155032585926999281628164094919813569265248031376084181768839658727339727879615016833059584071888976397722105040650648078229557177216860968584493617533619700592888631567654770705854159588848770391220917825940415760113565665722098933979818379895309964862664504012800608486241185007498795189223704311236815447695099139784446811552179777987073973116770183719091696198971110376944613676425208201004812578750039197781390760132142307585960732256464986902336606090201492146945332849117184349147287422174292965590188842110446520166612857946977907173474259207622411271102591223226678087739736792952716134970518846090479446715855882494081190027058276521545352144687390086395348792942280287507861787457613884631095906923221210840453911647706510740887963778241203617896277598274408824618121094624199370595597176519178101326288434952172465093514517018290200312478339048711981733289757232226397162385359985519949107282961402490471361594849623845023506345965553944058695470748319576933839346969337006064480483265966658143304093727669013903246591933652314763732986747090766706773404824072229460967089911652686254966055819086581048760524927319755747618146989121323858962586858174031473028308862414796255581406281338451916043285450223086591994179260423397690788855290258945353414552891136233986758457300976445695482574919353282766190309139099208721095220882151837487435130103804417252411881518890533592588531740968902115695040612425566970950138591622850191072901027098805254005570203867000209106318901090321841488983925805905477934246479609021704301340731958839285268609531526767216518845215377783003181248076230964424467683109624937749429734268115776429720802463573614412651744451106852458503658761785540774855659407410688920257517075286434394218481757864389226363846802648487642045262211041699422538152956685365950983772745252917803059955366342454685026928764278001876146984369041451115557799023876737166231552389387459427639992901262145225347091979476636832814668952798576150062281453269816032829251314681708272348928201284423351241023044883003216436693824637290375689983294098352863631874984951494956725199127906683921538772513331439885038616477129378999823812279603786344213849614515017298013537288309017039929837463745944504856531340425837958044611533069616926544268344930392661816683956249593431248556377369506051480700553916935720952813603464398229103472102534096729567774682064257511313190110352919336494497463559617109880989557196392997774386491662170315778250248535442498729602457365737622094183828921061973372099455219303720484291162320432105470156102505416669818076349318229838895375423658979259829374593212612683340308525300552886810748307119266620698655374710233411959966031505845791394751300292444248188136068304415968813682874872100826687657492893989575386667182234335751348171862184344113074874051779237527099466785094363067921990023843472793510964110297133808848017428561883119728795531499385639061341631732554050151861479801890902155097574173923361097200371672589426483851246606326161715367809038518221251181461888173060316211293064289390230874645319445248786424706779120113665442718557622860030433857799831960123899325657032692063043202215201545406171322436983794041697515887126348625716845966190535884191164040798457546661640253312395950442294286990953050977807161657418777741468696221128785991207907132659595919586635015015779811128457425060374457842949502562851846675271002949407831942960073129440229554493461323905124281498307485961113786409400864215907100092733162537466898097705948484048676923933512796580333928845428545604348754731314736174749694881847312368191191150742585954929142100678013052687534472764219384960520804568254260459265336698938236969861787786342789675628997772204238939296045383098338322287133989937544253673779372084685847675397044060566398080492092249428945899399578599507594311190266758933803276306519467820314227224610635066514847196803012414153881361611057388508908674063222278103667272034943862404252658337628843829732332361841370799404506355396963094767969569354639637633680506999056748719621746288214755136077627556968809471669098706311700084747648008694555449940068003380977781067028171522672463993666144526422386095210220578533366048078467568090985604434521006172059756126295261602953082958791483366630396197246620248176342111025356140346372598232475529080052614878732210253746752426589786458451136204835326581550816196943648588521147999759246785500190622098913115335952919206370746067264856267383629758816415188809540963277816363994669739948841541175553820568210804528515836358665505106986634899703728677208046252257474560347006844691154769845184101781305553414915351528689514085802367183378745454593077200235957815889512630353654004020674117046021971187150112245540478466168596916780674122598636794289512903464306693342083394919315329569627461744649008276836331172266837554871003661904952703132378219654191557170378261451776299050079463759003454664148813170030187037411984208146518213720419099824073585475774943483214414261476147856658840497152042712279945856794984666437713311074571548959600387249365158692317241188799705731062192469988580282986419022087896007435063012779035742740832655099263413868338541771158804739354759138918977100542389441152454329974595413836220486191101508495798262580555463485836644920516115748930821767937648916009583621473358021978714095629280311636754598892067093768338637747395139828551500454601967316016686427197877939739980016912332719751496247256472747131085741587717638801115268225122982279818037918794529559737512960300076018685558392283032330763798678512592434417920621887687568424306407126304831696980963173314965213754546489650110769191241535293027251517181267068475101768826889080656307322637478379915153758689501167208902185118117088190705123707625237738010740893448101263872350590603266085767595735684799245923997774762870647756281939819023067319263028454926710129765477769786954468419819563250324025287660899182447145193640110552009558145692589522948692100806216495564146139876727036032386321808565669259680739478243974329722167306938358083704600653117604369070302404031293025653007629742093213238368446706312395211904070270502676968574511564526787940765647133323661135309912143321607858905334921613233719397585054879089117159256154919512013141883176193064475391253872108810742930109727325833227936168160562816918662327183571663785406976276687993786034324908155381760463927041869391549850200721697200265605479851217087944629472621907374966999107805571110661943138576801214131249155006710621181894605820590450359554212549929946308718563612587070950213889100841022925125323423127818452777502809943645237181714795646533360344176284778782561224298747408156088025121253180164434549075429581883506016491031246590348866970792708469556444451203948307759880178338995724431046570900563855602113224103113007486382204424199001976020557142107131130163721882965088341828055932830499989549572315166473211605559970436841694942593453659326200616440941231660114634754123760628173701887156260489443419020101257421913668825924763768473730072034904370699135965117048642677511792367955779838195306573418969775950779936002697579196478961412230442444355035057015100677259601303023607960838749953520470222761354000818315159799379189636174889763375434913213483484701146288098099921936145125632120296347698038355011215423510727113335182066504464995302710491140699622265035928697772711329243713335911810933560570176841078406586609648984150884845945298837788591007325320151563243690554568600443199178188869364202258316235123006297129987998799239670541143635373805034457702037328370879705722085140995722236329523153382711962207668933043084722922452629770686057549078328819097439720969169553863335471938223188953952949716873231595550705253658664494680163623287354844923018004044045417044236636164735284307480307183035469372357932424203086604151728150214015353380532743985944244737514013672179461244078717539619327111928528496469744155357943138874224849967105458188505645883838822306421734924876721930465187580171061719693162997760555699003205757559489028708891983542045694390116905587666102131624861205676982586441867271695361677359628557063668298808215636923766826118348453577591482213002839441077252366529685678538022072122488128276979363508890652648752571024076330028775530671330039979377194306434730404670160831948690999144903902059643772328175836217077438734791393980044622191391287081050792077925969001329603986789645576367369453870858913020506685791986118428361630670073803260421357664145393039732706145300768307182233708319060461269720719235204659850289841879076453281693292555475985703886227018252132557022138632246612166138005507538661391915985856099896673638206358715587053519300393984919616250280749475773282412274419121832020442430717452481305768601954416061524356262280351508387306234024444229360127931644925900146795895838977217044189746105143536260119857849284724444121761540121165559307467356337523283468102213066788475227165361047086361566514804218730453617603932230956112582254889660699500803663741399452942050312240974916794099041478049696017358715785370591290584652700778787795946847298843271757603012203963363604532667676768463091994183068038899947637749101628761819849110526716148854619013799466856997057495115852839165794094854649574565376202169407523678564838941256137371576339412271856778410560669054381366738904394164338644857296127523506990267525408760230166634868805639671578370948019497578617286994969672211051077586503561508343675842151643264318942012072344832648032490585232025481523571197157414903134905602567791029115675441439466866010620335674598121322440383093780672527357978802875512998886663772936870900116898043101662102384656337660711279814220949344384056745627961033277982089321205053561569803782128364277450417710625538348344250689160479258503309776937470577815974405500319176532454564921933546339565530188921227429852122539889981237930442267357837448218092710278398670168857891554704013010014834281102498662568408144552573123733836930699958994485492663417129443800379942924587650698821902282419223637252450580984284293721150000729356792018582537241747538566678629858391373543948579881969932394962523776555334562470072609527346443551120601053787743389443346598222601790141179562497978570554779571331291508305142758410254585002127571129643890290585129882197592723217392196135011490193497116343380870017206221899653283614533264854953229503341180447728649158283263719261135298735083525714651522593072742095574698685753139174373520992922418326678483457783185319686033454581763264840222864892612173631450575976003312658155530970746569124942068491267285258181904186063853932072746008332268588695177218396942757422489624976389400111656408914508606663195338290521606480494806527249384176668472668202945685419134565790832365611741883929320960610319542107128221475500969251886603519856175014797924874596095103113180457555109280412972099261515223279310008059566090158360317376901971681410699843249818954960027955492350457829051784334493858256055055080545310888423529120137423146529360913159376173695876783711816256639247674821289558986533593934227502219180191955557833534633562884212979812507280387296147695000765075863599329133303032944910276602479688583309506798224165799633736127135625545150299445016008268674121222614136244404352039264980974315040902530753044044636850960696114626406015079466784046810373252541866430864308501864973728996762496115282472367134973211569538268630970690501084691931382085629269973135239419743176934028412368201900117329240479097982973545161999501036773915405817236254763865657290022623608550575134098873787892608989348441217288150622470097671152229302204005476193440430242889229399818055186946425511071840308448621511676209846098595501536556048702481177251218809190072309287598824797836577147316414907869883164883917480583389116638333148572440116439558435972491507682475217387035387359046861213247587250729820275445205643704737903050017999402389692819078346148172925609659210145398093058769437726512230376853853702460360797950495988991069740074532062877730928637994712762011078134686134578482036743964790001096362172113696334344054597473227664316298595465938183282014492469457453876215290609417016633273581868458079538958746356313739856614885134214091313187978302295197096062233112681897622096971288646385207802781377377545088102651142413300220024951103928607446645396843685344127923239648251718354214489200465911577195358076719088777378730784303032615918751461007362628375010478620077774442896245030699599246541638968999841041957310950821825824816026583003063906635546150961061381391119867603311924742212335921219087019908431298207689036376415589678454080692321368824029976971398380304059763476031659454050753929142030878688044145371071874384852388945852994630524454920135524698946969050543994241586407759749443741834964037559956531123627615934999019178554574290370348155074101584671040115899908921734986274983882676322180089372054046444788404786679807591720358686922781997378574876051859478874908787375418834734194404476091963387594160956232729165390975384640009728395207663153049531196503203765536221424795934814058588134356520079645349257306121317063251785472208717023386008763264067599282162721171157895838445325598660758786372080887604724018837362238223028752064244832648664297393300557564981402237918808226021409356956058494832180594867833857399083558865665150712384505774869366089074481905121144090322514427182603380588331006873894379179292319162429429586656996919240162210593010344595938102239169852770960188198937424526487851841746185356241781091458371107675445216348301696583951453571988703500393748584007012589999892470384305651614020368183185712429951750273180426765352333480751637665156553918996636223395719272320291822818845514375816408696963185350086351947411209959762293896508169755131429427783603301188910681150148157936578826877989038454991695941587515279344344543950037092509608422147518754665654791422230890335361921813694449511885176325302781698383023971902730104624282785411938040498940262306066407991768425710647739163901022045370671087024919235796242453698360204651529852269855960529706156710633641630343776685497977940130896809201136784000613318555252579046825390371695228708953762459559928439723579098697972277276347318916963316923487028919102549176335117095289100310986960235597483102265713227110440899812717412442282283291488558627631666918985456122842923624770811947512186124692684768929791223545913823840227265279001079828802574400183410194054329661250396154791199008039923723439838115497736494726908433450477148766280913834243290877195683945149490482506167354925182541587263962711134292501425934201842106753378808086299837728498410010468637244416578137039948220772013054621838040782670285215254989613799811034390693317539108594642148011860395093083948176924269208979882799405216709044515550987382453373296245090939855327867803262642678513738441497203837131919153520707927907897642815643975925107033204071840052384730905046035364826369400507956224201125679879941773738811026484656171327356969596184912410075106932789764014144245989748363389424735901051261299652898445623759065907030824545836629271174515996683524387717103018708173243794543224739457875562340302106419967638344098662576989946261198429509147299649075225240972183516535621556663305539003670259210896888002219438118904907353392031052622298865947807567178236722371549865822217871060772204622861941110096523774526906893447598651389734030121878488811280759969524845742357076532877212641367882649053646980593154639663157686245318821260320504781429380154893157005212448539696653311907587772191001805684602212998182478611649773078188832536195983300347995099643833623799916218344697124566961667117206199381981243218376854057660882135787063254356796262512559003081195049849634112440037908406082764717477047444815028535953523976121345791731708444361550394795498373000759066574314531811857909053904748181565454837067215873685727836153895847956145594591671397050376048393754555577677520638051087056847121632924875420665340490315186552252536298063822436280599576856225466200892711099536365608223792828848727028721563820066993688263264460323844638185257635299671146536502778268436689731500562451464016738303677402429608215242423276088841373799975918217760321748010713396137832694340615952443536842762428551288815348869392170123932097428244179805647253318240424347861944011797122612319875782655691706218784775812495505197737766242811701679238901577981103530651323191920626584786286721329546452100790410914141830386939256865117059710190671406828331366701530544349840295375731224217596962547495201372098382298167038841216082841116101585436509039239337295324618681767349975207693323652634931322322039209187113231925457456679000122332970189252744653184511097418880091593355631492687106460812824829736220712397525474349752857191012831697789768644934663160792715355709814712078140869945595422864061246728492333995613371869768884273070398398775819926363594427394858754283669731378659401144311459410040880274391649913181939937835513419650991487295242998928735889911935340651667374614468320634797468513612596324104478120899455592598474856785851889138688431395736634185318950706615582371669308337578382767130872447204542597311319384706045793462691333990487111159737694795154250712645224391983682437554762352437286753223128593246884872873060502330499192628683553218580485808068055415050953411963790993908668538911879571669757631650167637094463829005646636439917440593909124872304901860976729676941486856586075459609592856109218547301462699978234335688648994788716108585757606064587974438321346937607004798673135643584538062363229416938269112163348385333369344759375111557086395964363639839615264812135574939206603051323406014704292957287772435315569448829048899262139606782441098895152657755522969809009202766310913243627178063239299981698205315350813266751522428957325314892849621388833570620958130534957137215301691373057871180375656777947799385444646500440569923074519345159643255157658286869862268062458974450125286358120935308948903627430606438625120933517773529649526729166059908439649993637670666134856342945802325139082361878232645834491027360492794839293353145010326315291755162983576035794294220318993410941180137035934695645803516830102512013897838718190409661469017418251676430003528949368764802312989543981739884407049019693893436724918474864971885288821150721624171885612586256851262396320826775192447833036735713558752689207464556320833075018397391507350707826024107493971361930242553920727815219788347595373230991340025395231223500865395871759838170471528326124480309492609817279841102055114450122571370588158351015319421816433552805498869952617695982265803546781421476835416861682419061505473450003446330884597690173848829790208345957383878522931061483520480125738230208392110587732496939712982069766210648359928975975668168693918529445969162349745779017196954044894535796242561223789256231496118914710793100889001923630584853247424054393239223039002712984216954580881089944544332981046208374103509115122442384486387425033704693532800365934685217033723484373141778143676403669954696310092998397801318644741783825850997819874432358199310433035392396761772992532680437148343419973963628129245232629760065875498472621532235593046391132917471507345037763183338144055892945403201167905046322588136017925301799759993795374834239042878815817168099441351055700515515167602004653609071463122561515611447901164309542906841667198666295131303247271875791057340188647850269768050637040215270826447716333916972429912285583110907818151693198103378488050819128377591886053481271985682606124188451941835731962539640039793043760957554023603211427930248215602904793242849568973405098194292480796384225969530654985911897190799045866812034715000706775204141110457148304140019808618193946645012992467778783246242446090904569544895618453767583553121909951596120640097324641285499430972392735062483277813749412493135489473266729848298708017941857814621871889813431087194328967123798152141903550036675084342455499053378933918840577472486916266937882597297150900986362044251203224438069152583820293282822644615566552528652757727435030667373171675920263631059823682370244278116936709159543618683751369710636197857530640300478601363339799702548105923183986350907727959991989527372192747207587849325601257445795479862816972721237758883811728930411566914295423527257220794781611765349545004190774753962006299943579296798879611282837360527004568885329754589542700872375260109169266878931296334322329272596467004126335001320233837951436342830136896756652753584222958015966075119090111686590138481715257985730580709751096724230023004868844744036086082265763043635795247021492594632699548389102759643696868046461479096918850355340284600613247613957628346072781164821674733927855686901873483934350312323505639612331804627185447223661036117919675472656954446589524905557911367478371039649348060673496186668157224899208933597695145018673766130821258660111496211315268445444655438240619191129986469495549519521247006439292163534950334297595557000255212533951444392465299581156556276309459963437600392348423369490516347886703008913059080834988070286828526711960272687388564381058341223671525204488467753854730850342530777160514414192623269321638407728911166014852982834973872229784607757517464023459090123899172214467490105799365877789860991919106348559919611022513293881154543835653213514464389968405520909444203463172646378001507510264246295685775468474629552395514548670352799849564937776533472916488923569683461219697631829495466346082318400594294170999403778651564632382400031159803035990109547987959767480712840924972347033824349538910925424486187566015394908232517996283663773035368665369615735293693342746526566278693049960596020829573922079291857319221566466162546169809162222995682757831548443157223962535965146503289741776017183746356310786648221186281184517183115384515804784598612873146797692158901361743184675324948067942345126316978480140093300763566521716858460176131063814890387265799498642746471024567768849292486838272410960950800059113113951945775525913270630854814578545316201673467396648474038009319894922366475083663407871352396549929425126524372913679624050370968577316175675202804940355162542395667375910696091919259714984283732294090589705132146983675486450902359483743851906582133624487905654535117923025879320220553388414747236592086332417147587626410314845437198130958217764783894112300274785633751469255511988216829521419625692986474562151176026150141448989316034715342650212608167719428113752938827084945038690865690341111825170856541001461335365105361884876405543937181350603918648567498975420421354611883684763251379766958611593092454791782159054968019576077446102492421940159800511428274075927403942352701729108895392283592416599171185509417833226890206177008996899475811672534174368497279236489301349276293235721350870110268505965532694717965133555507258095678294962340999854598041192984339542454383036400921826974088447164855230753168277526912806913025175612333401876473036286295208230820003478551373304063562831578420897566342515332444883223075415170964816689038459706918243332044042669795070956906791242916156570421268820509070019405677734705054291921572681572296502235375745127579208156789384109415372752135108761994028638044274511451461636004410525484225667666919376905571191405696360947490375777304336893869544096406563025906952679479664093658414286160600328591051778361459986646259300799783680704480296275098748090520107782967260632232173607379003132145807528922670870288362228063048037274105701765358374625028791440265905843682748356394889768175593445203097167759922323224024376533128034684946512049456450652329303133288123129201380458808095035570521192711580612809926732427884565552305023222187282407343055884833778312444355570214807983131217505461432761432822145703074827219382737699074558746467744674669017544094244033871444238608940513792520247253694640251836015882729553966096344859026151993527278137133454972289537483488600899089602899968499858544149509034745416304150952398832476803338133498698485223284873638955740686578150944404373969262249812184219072956730470114243048932704695129470854303947128996037353522756863120206797918997004115309504630633526185863768925566418376260278254134395924845504857813936109313870099043651977004690481477903830934920539959114149347632444750496057589987071399720534892971480810073825613887996460804633872463516482169158602568816837937907505655495325332852540272129347086823285068145786666353504600480622456090597672691456732119845839217004685830207526412291733442393485148169403188088652329856415777456128840820767132862525363355342589527321416625109267377765999886663653551292906184162594461623315501967353466288098402762845269381649606827542859968940199684887801055165057959359441310216276848748920309838676578136989658326303022410707632581865942077549590444897233999327900663680826588813384348114751711070687059330563603424193774181488723859337460073899373389550249025672371046257181520753017555653748307880495551066000069117445531220780293208321416917567396372363603575051687406101929980176693966253595694598228134282039398340839031242265844367647668949971796035671510758131001439431315345151582573924890613303346837736456336965775324024347689083972376933000847745905231016202316666856870923884016372405135429544203660850028772599033305701001477458715404356358039188065984905062605189806462938922364028504714962774086226801007624957059909465476528080149042297133773651077763619470438151253266912312570884190494497135142553506149446236240376387494661868451759385227338014507249056032419017737113588982784492588551075585568184779476667199510472786289454010176689042326659077990659617614196342763254585278001496467560473788151170999158064483732808313525022985500564357968661796770742260571954659237100680144844275397244711944786736766407778921954973826094788644689439255273542810829464507913678756513092383788054388445336548871610810418612873163532883676212130314388780661182748859792084135061108235656166190077783001956407743454975065669967309666358680371769087415958869752777251594911427334405087213613741382616362078525882875246482183775807970289307517350760876826049652847580235079855050966948270404943860519734361184805937518331812055416552195569956882903500155551459040787440989111904445776853754314272921772751350548294352193714970329664397681578051194077824835708643663012764617267457194528300992893301225590867894104528943098867123157885644924110392127871563509679632024211408987550601621105459666591665375683172036361252464388380329954306337766452176049476094045093230468252025156916407795544410574735060052944498930637335834970708550015816852135161682244968282564324074315080925117156105500699494964075729945899663423803500559471701820252286926477969402970113174704928730917894497826107362073672815382354129191853767645964784126921351103514612671891461339560219086688133370393421354089315212595208970309167555487448028159930517144546511455447877156394786584877554999785486210878427860556272403241870227572511603195346172738576257788049500377872217420845034885952242628378656311229575435295768901311515764221792367824432190391336475036340706277661507790883712841969690004563335276181170985098819713718317926367152708777233945220948864851192385551526269474705196607903485651437720088186403814756445044556634956896461320235406752778785493524623936733953077333189936306496851122849677330608470561619800866587653813967462459208593220634486449380703593942186201212647791544103439472467876817954230542285413731858641108106590831809205667278391649655093771470814641849865589108236698529119418057670030252843652333526327438754143991518110550242222781778015050233101926865259777528916622372503903257633339178988887237210877885155666045807930610117984753721917957242235150461381037730150298335050408892876868028035867034657746952197950669156299779176251093228393954412223520082191529847124892177702962255604752053009810724525495857368585577363712131483720409347043662069082425204122194023710508901379171635908203066758009831109231754368833164937070873327384575007257838909611529875985715232137785808050036015633366785732108457020432652933275745082798988463752677318515909620342986701062585003942437545466063612776654451666958573407623620396520772208829918621812195993085407984353666156893355643682474041149742054102961371530751989984366730217348935814006951859714225673286980567371906019609295178730092879231564354707741208168367024653102757289294654225365141935329687645874327051589494239055162704072145620872071437970887877026746783359748804588625928764959627575795239707821480917916588613805507127424283497249871445724741358070038132793954391398941988223247538364345201744269131859264688146097662307760357991579523432778616115012448474299779611118042447746491066840581154784073762733485698132815490904923134520909254414582245954123738378709722326952084638323441969636055378175278474613524519884640105471895670205802805821939408822132362059242291061173368294630531724547639158262692604575006464735231062422188321848116567063193843917565989207721348233183998844754912367193900054040456089020297120364529334352295204045804395764232427311417471148482194207283299277489622595581369961473298985476260203190634627941198759701894341837853585465920722885481074421712265302734328729242402074052718720575088773390460853268448299304350804777611125250383637503114093024805651985629440302516822441034317080898486551830286645824289762865473455356140968905366683610842077071529990648098012004720836732079200434857086061646568316875710865934285137431927016772086769220398518289280151266129940860990018397953649916601337857453571599160087304869978682068095888109269865277317787318708638176136230469905385608554303296042638067497636905551460376459316357094133399027836343530776796104641335651507595818755867207720537405448203903435448155386761798329773300461600737159851748802101205619577169690689962582932126604966129669435542133263143844940682631860846224396000432108263758428705929185904912805206784774455328595583066790854373284826408341496400947876434748716200863729370471026425016967869965479626472312630121394356336568827785083414706483329979197446803320658541982162026689751486985590209822482429855285169694219656609669669588054815998829746266998777953887538300804372872284534329608344812292495525317036629222591722807139981684357062276125154767782212278602595833981498605081673378902671415476152754882524845499600096476237426029945547200844002105135895870455455793915462509191319613306868371929353313463682356144735744092451051067906698453385740569096368766579452919479278676010414820485917452145310039057235579151356202314401449635257447151994416219484347039016022970274723182524719115707622916789628363206965061153163340340550031005767428257524168156088856167696556134575839214146684931024196196606500187238620402880923392754200634641256425194278702164986022721445864201541150369030488009687905008293654249559761850731824602407192699139976066042500010285772708066981979874702351132962590239857806470705754431126903902435761991133894892610863958603262500136663299567270932916575513139864465647580025955762699643685871543407853364172326677825558224342634602093463425333014882355630642119284664399747911255141721309346838366556624671958740317854478076726080571663440212353454362717684064589670825725382533414727556413373931471758542034571708319110252905240805877418640323037209722201371425337300838497018175965216259876077299523507247485180600584913892049994185176206224256460169530876881247561308808609051920618321717128298289448013036685530194044233231323759233480445436156989950741069632599866499606218374252579864355417226600076970113008221987793213134259075684229354920479039815827204850187790745394156809169646559244528401320650071438644665667461070350777668309375024538124433416510392817790452399348088085640394603542294053681384838862909717957011583448155501128103328693208693474480174748773280282866977306242894766885935052470482855156165744378832334916534649574048380224875976076354452431082778465922998980224947757494782934112205265079714129330178687663327659620448121895597976199538196026522458498318346499086919943654135683487429884465167094607925094892062372599986117645320973977408810968752378132677728093992564238903497438589938380284377945133892628075280128448456895797807691823457586937107942249639415631587604512680319981452199903138807381739370656280059389159620815440881877835131519509485390218280076302312462199277939569820832028700023237661516339312380305336307456671188883445888279997583470575490666164950310821415767564030962755951607580788207318028803175841670967675278506085429137273424726353869970285223821655841287954930471818776542851311404276546447063189544578250948869702881632788285425660829241205579158205020834813444636483100869981455186170095660959249087447997834346425155599202803843682668692911540888172667661046723568332200967725246853947242441239221682705772857271576041915023471742616006443906699183066997020262291235765346817176818652845976615821929429681456594018174603719148428473039727677326408233973585358289015728550108737192085813252467292823297436375156277781041638503714267877464465166475748285344064701426527314283585594222794926619882569227740632536802644015697046695147394744145864335709105881698180258163928161649131658166251894470209396523766163906877588917029337006529329879524874278203431406485149955548115143078608181436206333921412165342924249723301534242365465072242615935614372315631503914747993613228735476375085860992187561111057126007708180665986579668517873583274286414696492557273289670957418734324485834161998348235932268658480681902932638372383745084108920107315289195134620719876618844766045076151099191006781567240020950813973719940066866551910093138209081902729939240344098969241143721600150278091833802334326259767420307940811985571365535637976737436660966236904143739182860067909643977801762617046531746824262146632487404561142274476302680248076308250981686313526594046812020912060014278671669142079201724128790197410244125732794596514058989792850786599660350212464891174685968832233366497185649350910815947542545087768508540282195555094848079263626617726965003445849480162265678496094603977832191500345716363681708873721440055885949244330403285521302325459123608918085395382455095723186029089116800772347744145466937070893789490343937899327705454085945325563799907696726127361988611883833505945442653399969424464237470314247205355172051255685191024908839386245176726971931153059493216962701839990430216680535125372060181740207462500447699338784677329230813038157180503550481201856842415255614335279593200361786612252621126743476271133529022291483786006396231666876525717532430583664786529836676959416550163938332515447663670679104288546114219885522199708606300948994399332737784382326354225668128318029220118264359035799597173268758662549998974216572964715278990372829701616024218628297964067788534950246020127533680602820053739208818091281260206483691110898121904663969036825893666179381710413332469607159940743342460265405244382238822929258118575297890761202682572767375555007579615854686283591539603896317534044017009732328152583932599475339316195144889262671862403105305298970625468610389984786789920901591023133363394499010379655092983011155505743706133798471528968706348056204190792434203317900647857507985770224386329660190366715067867566453099660634884466863933787564960868158828859552930772168131521368470702186579557492797764349536559760803756716951469973300383055701153875694141690385459393457817067373963942979586399485192012052262860444251837969001615255956896845550998884700240831188529943430630059423762264045441344903066137037866427095544138429743367577545769018199114301085608888940741229228435551178828149884246172832236961032916295606235639579927780145807287696560499381127156607208613818767828087690796775626379308685223458552302931811383440545489429381875595293481240942033979854968376205768429783666300613749608491663022529136468409893689321192943596328624895711511910518494645118885936477469809425129100517793660663012672132952491543605059368870326386186977677854588472087927103972771153457784610608184263596934518659574578190633956814685827401173514379594591721631884919323453668206676114049294645505746504431052735656764856312293316072873355075283912459238434559158452880732834463518578177093868516021019286745608362970866889570914881852338895260362222849614110012847546083342646122936685689249525912373878625544818316841803329755015117074127636968304760865235703330836049118335604508373130111087814411480887863083387929606044609278081658062221934338548948137990543226483725083524944558981625242898799769301382830975441473327550148343333442611014015045241451952142703928738397313126704124634655007736180797480458586808756340291962425342721093379846777887516034717173600935431342850767336959780004765472652523880959942977972143440323945854945933173769775022809356378281444891252058594626223363801686371015379238539874076819552530468835575489893654356797196007672724233472748736573805310503740516133605948876705412328471593837041779368593556499905484860455169529680720152113649260534138555815692385822879771788551470964693136901507980615475895140749068569815652792499330721821042212591362227205642631682004457476757184489896060089332229535777102322752040529651912379705260126428653731821070185692959007318585209471317125638418541121796603368810354083672738869905455208591649013481321437289025738928031745778572404539625649890323332939315879839516960535515717413899265352184615853446912151315849203330779773070773337435202876364802430082952899362145275552240027725433874251225070370108203859735163952846501213008768948982221688291704267640508580668598792203655079623709795283064711563988697491699019946746674386359763164800446444986776216558425361552207197193323100762280298132529118337488285999223072833024474003361552151634884933182026188742060057935128951142952727635006775325594154017765553887589512656533761623618470786789705632095932464028379524234016048348562570447010966217182194433973238822742180661531695467486383774370898067267346211105143960082877469789419212832025463099519462826565574194639197585786699310297098326104390963484624527838806671377861906062256186149520663086276878583654880683975986800041187902953374343041677266412465112579437832335631650747469671472801022438142301198010910897201640102122230653952326224437949125772889380075166857891390597574939482014166587582436900740963079073622387512583789297475655113807988683064782606311948443902853263488145201431614248497058060086415628424252933527738316343317748339540957145244253321486846731525669408311679755587739791159880358241684771901173646246901416619719878512736204578725738254123790069305510175084677750206937235218103929464403221843699152924309604783973577241633752034091056323852980410737408241540891579198625887759308523773441393066248289732644583328507868844401192724465873010314023372733540203257487897877141904412465244501261896619999259588129919955795365260061016596522815570469698664795984168672839617731620447301335740750917910848794455425044179759097725301691744902749339027866750243287634321776941929706043945081742018052734246694027945160240744835419229677117214505261131945707966924493347826094702001940999938610784191620918315573211431289862682158226432363772469805699426135887518417272620913895297308703073401077542268485749696383427592164005335535880753412300988035808695232998359847154648391468016286412901191867788919648838710942943540745765855276463208396986206206467477723482502497234857519408208171102642491754987187257197544919549149806156789976450606534742601935626076527966145208437948481275331787468082967604141693224634376381754990500524022638638284588399865068760940236559379037380380523576438645389760346237357126995130606845473763832359363943657322653073160445733653986744864488245583814232645662636320141955650059263438679932224575256658934592657065646885226233623776349252543799810592605170892426654754719285081224682274605111119666592438514108185356020628315162380396774702897723417893518810097768482022053869002296322796033527919038882066951842684999714048247919207540143800013793253495105095967897762515973037105477979851836933924235504574456384189355254455561034360299244228696750963317514935316704844184909442098841502400780666954433443146258978731310383149201784191823520032090562103585447535356836437520162070246480605242677007585473689994626186988314248322743692339634997501212769912464615207675756367506037830061156970494038017441300146420818297940931545251193203243541095561334905604742363866490418016494521350186195788186816815883352491091705152648660232428698455189513590191871792281673632178991332384161303613883822082375373011195101486162339754771762286613334498448836300378402230477926672637212995675086744745837757162559925026231201563855125169398257334126734595949170772319332124122541608317723323324071484478829409132967399360329619037521490922828952728860022349210797620785520949620594511462520048153485749967356057499995471718180100538720822141798973862433633087084814799387685925810242185332783737244626986249801208580047280823853927992350251530146622946328123203849557002808467927626682634005891688062834971555996793221739902647326759330988142265669612431810360980502404332079021419965857764174198907204760533572397414728330759727067694938157699688843567311721285266767795238805989322759663527206275210555073182015856702956560977240896466864365669948397938219270234836520173478405962478595769749099980189001500072518392882835795059434538976119762834724322250451258917713957312198121146647124848336393742610659332808471295836453859450334844574340292444255556450710507123495537903143239543386860370380292997448749809606585390721351177131110125489354769587164811755639035152163227402876992180860824846683015740701912706061227956745813048145949761768051802276489778691621385562278022018278700056040441175697729032374694121137490906446742384764333788654802390277064262601800836428105091477414379390619940888458584600592996199262167561176842916504539368084747561572383262464443694067640703815358104088398218486403784141214156962370530872605851439176874698377395819121106124098259386651568864233826928335950851097028346105119667340261227685292704472927048430047621475627641788016358108340419905397408470609599399496874832006731762093385318066727330709900740222270640935094792791139432198532098923351431610549113810036392837080084213222942592051188526244166594902919089478000068143563088414044299737223565917007222323599415351671265964929073926694609352786678352894885207770767941783292535107873639011202609177494226523788952418061244184020480737159623730527583466327432011000869321849202954847354917695992918037666790589909210487782612231493962004552935368505865526024314864621510985038261130821388011033533160173481145460151488678320156770938680166084044582596010010096009504790350925883928363257442782966634214165468861377988182535267871364512839818020362231218593977629906986697290815236794424251697985639052167851678784752871325063643157321551528741473065309752474523202650571445279200582483915261630944015580267129582910355324438914552200843036480918449834989050755814486468232506308835784039851517930946547609008402570016383960774989978520840009703653710390244161369526319846695771335662982455238316518044603092772810079304084588247854750443202653681928387102344324619271525382299136742797487019563681548562743809919247855631027948083950996010595476225430156268838983075236799785049809188276949223948631549120211066317465482168750640019773538583851288663026595351507120011087618696812268986932769907997705770027941693612007507500095504347022396366351594765556825901483717472245846153724758808504142870146115982701300668641312919346587218200093283514083137517267605963134199657141212634960143886119971068037452764823651489400954492351849132154314376163496973975132486217722053082675024434783914331672767554780319348071056027916839727770042852763431588376325527049530761593139742816532679437440774821151814390504782400981117266031979987015372505478419375360840301434803618636645248480641704204289838692259941021595717153511253710689617167386182376185658884677381670914173053985883244025792267285045007165765137529791247511211352425017471861396115605979234152780180782489019712666023317496022502801220011381566737431976848942851486886511610647087849843111517125294194431478482777835658340489881051113000117360689323236788478943662406342092484835712082317753547829286885964578199142316562258554749558937220300802150540694849447574584541171082714303847932023151730416747291372994540285088491562093486428436454154598802689072926377848422634450571029119350092329538109696643075088166360246954275585248834884370045358555153210816700007556006612228207830295067220172696018862407650389845949286274869685916594623645019990174197169587041860548332729168652316895176271568904706723518561956218479416393844234773827082787205970382247113289887833973618235615913501561212913237738955775677712615497507232319356714621742635493064575560815718079570830492484443160206040847471339054987779996363375017491196484627477492673732106257915652358403090763832628323060396557412312018714526158798280549509124328998475246466513243151328211873666279196155338310862240912263404902307067945183589700718787007757843707829289295379631939873946493297308712827052497981198172448208246662696067639705024953962819466130068254807707979911805169873382445182883380080518977053738781232519447409816645343574052460532815226587325641334215418418170460728361281752674718179527228257099678680725487850044416494445443154974589202502238684414847593959436179993392725306510521092676849089473659481864828943646973048997218575957721287689075679063855617354551862211090268484710952627083890328597979034295047050903083365521723160431793304241035226771150879826600382766898785631969971358608103873996962224165884794676077647506152860150078354904465692022850020558797971396241850167394345178460648979127286898086770510691019026586320444668785481106913119889426844732704925090070956796958067666584942595339063827934040003389803448085739997497987355274012001487271933116647094534792586259573909921024448243255351744336842370397069407574935592911346271875184183049153802095634480167565305089810341066753848741886525518094616810517708024899026333518689634295532740139682255500180718499530391198852307647942415925825660490014499676709027776358961617114686868490237889390903802598837159592040472698979288747208104087247922201358538066867135316999280593338085132699319065391518433407333163765752579531991110147184282297391716182584084677499357374790583848060997954153246325889850083253049280577518560529333845454174511644322211177117601028207220366562716803458629282551750238468557294271240093338724223557084752767578638117339522520686557257870358201332769656845220005463483948370095161625668956604454617862147015854720623792175520937027526894781153448726349826507106345819131064629040055716744101377416158514040264644544982474946050883988611551713840137630725749023925415160405703153050867051447798613335855376112505268002251063083297676971025745819686540127500313563101120422119372859553764901573987205975474043316997237565207900115044711203934172436131449405864069703509415075832768352373211687478123126699198900294295191919830557714018363185266319916897100874661923404995626367949473797737907070445706120078569668069709605253800530438050286735459919283720843715327120829448332826037617008828043407143873314519965464689520759385534330256339976218416721533941840858245925148531833199255979680931355821963624205172965542539829151299345456714592139288602097122419677573079156631634427449407775199388990017447681556408594822146683877592568520289835715478814642078885290516825201997824255595262736019055634815823363536586598791878377550083205113052146281741617180024944822430161957571373069785657048961999989159791121905369354218778101047573995429111682911568662408531252852272739495869155524715122763834760758232181276065246831599168334286677133561180647331694500413549454154163505945972158905783121408023078786568908840994398072230170772998226904941773355155551436013744931883206790121058456841505463992124041534605716146400893164925440533746207336293480876353465908836106726034786700387874073842491290227929402407755573957169106160102325643195141186676166185167503443038363706467039147675324721178506743233183417550015384721217860785122371487295220171164246503096365740159940121773423097705688998911359907023434868685480080910651753445309613221388404464703999658619240746212524693036820115941725033177614680641455035592543652329086593990155736980306701319863673877225077170200173950673182748773717800733175385734264434823804019104589862871495953803325582721802123200641824286766716454557168845990496005172927022574157557884590843295286477275982503108431261160535536936584635782679456434229709223057761771409441612887859520853775637905918228127838100141430679807831570861820887094606820805996542387788224138013164766324157164802856467018715833251311006079226853864226108033283664063001961637460980343842229845348484246331465047276989284203868053371425204495068870401959369554640922667023295656308591689877918639373901586731451966089073040461840305260953590371556534676798868352896991889385145466198663034695615901390406574929373235968325008463290475070635190697095707204339748789126429517708014115994068825872877573855183742057860148627382587000685211103839155178288270663627556297804900029911961264915536784983168620118561010048092563405555412930735446123195168189922187535213715546648991234741090452205415730396916182607554086767970324269021533625713134635864944779194337048197991893454432212328178249698424466616054062614063360187100218699895094025942432836572196020390635552367931631743306130941045744780648794759634090948214154257474649280196392207695910633381101144724194612276805862029837352335505483762597422069908643637031082342897815704781079659718991118086556809357335922179608605232516818695417549521326141163961256260951543518741955883730346650703618703677790316363540125295127615345160927724336267107642082711574982976423032707850625024339690882279477508839765360393608834299278061200044467862462617079879932100549504191663255720537199470539876882398802244630951471156583795273413796787109805629971902358523434814770437333125750573478657498211148408126751905287281676006113732242984366916030652071411128118838319674289230429687406097759093140253063879136960552594979595172653743309597409621098607178083379396270437641416086147362402894577899325288334419754658988269833149162726596803112655785195154305418615874418346274233908601923091574512470608359996800529041310344792753973944604479247625818703120479692397567607003948069446745917589747525954866763434049739041812917519065951687706159803229460547581906964343731932844821531845417132143609291727025408481643846737537661880004560354025085497405860816652672593275380374049790918857245674743064918630089633101700773687412024559306986038291030420151351676558557378118315286795691554940003008792703145489518751125961362361052792565320022968712151057433497947396372227755048389538256853760059060634850305059318084253945496522440351968497332519971967323486090116190715722459255218138722151744112848185795599563414385354100966292992787744113020892100154977044633447931324357504026112576728357295410837203951709602481005342902123935618048570709017522271695970174410749824831284889537809034599335566554220998778973864523076143333306611292648794285127073207888191486722311967078170182509753183101916756625609199253810234418798810959208564613715631097066074847910737338581670747782063996135170518432857801047010365559195992131254614625266544838283929702786909383267826201850544660648007952149877668797667597787820753094999915293614087808881089149222564124183890470941369343939878673915383347294847982770239001309878016554977314521944012258641275402657763519835263058675839066888460914331542718090323674912889647978771314412732596313844684364112417271539690289924492686722660611352526394043475246389546267825226419655824476212683104034322723294344417546319783452577069313903218038611084147663209252887110176940932533128383946589043942184397976704289976361404647672936578123332360288387184610311076671611743563068080767955040128670848011640400069893066203189629698821045765464107603801988432222850450302570648009948476321324717038633685606377509667275496795165882172945743940808304813660355177747718565751679257749945713239230746447543775592847737402232376833061204702285655827132539780285455341765297970884465080667705519669033545376743460443450559208422255578615495734174153288793819182622277879633306677445659643303295794003356516166121808895179701028674343619621963601057827438143843843499768601035077484314668500491702313607431474245385594897214203783764762717487433533195115689965364200797513905319417785976747090205173231284996503116209180545335721704288688951531109052072746368703348755787773500132704819229622759722142223744116603186088680227504087907243486582457339405215466831273161814114782828688160478927464745693695212066669577899782028181973356381211071998423597976950300468701765560147845121928455320414272858178894652175717323337103280141349633054301318372112849263735165578625791526504029756777000708263686936196317536344902465459244133723958864742357735705771354279554940463597396421825157339301339599099472075163994861784116124346124344433924093753672389691821059965228764801183460859806717932687562630601412474608642917135286292330147909474653812034811890185367435158115273389199351247030945579089491984926540763799415928261487844139322117528850985098929942018683122805006255695315000072071087895589090228886849334421946854760710627602796858228341906923075630883267133738831783097520550625895014807339228121097081815169627025395688442631904648896824221932600432385340630369378361254195683528994091530222524778198841933039658444395908286475468614671436544492151066772078991159545064315095213151223883900204519995419436108231433277263346214762469220461567292359662756048195615691477587026569227859901332871639028420166736520105900336336672707316819368194057091907675819196103726400898231000499946680139126167753023517523020883552303185018581775792947106974769767239971535221420793222612366537908374380992630693835549091625963090878702495963635002194028405772827881531493753056538582181705377139164620370115632669375239139319746560858152434176382095698351097722927966493856711085221518884800349649623264883041839931298960746389602897721401105159028803614644756301894540058144204432077079527915283622383005644277247628804131715058805120127051267879679770653673029261386537384353439988850124532523940520213575675400004815639802337873373411926588309845751274033022297652114721904211633005121267325255132116688462548932083115133244233817878479067160301449283584850988860049710002676990511816906297735036280073297353489504931154205256201265208719534826550817666161442915981617528909143513864491450241969121566295751297973691686356841756284691870830012749587391760949887378285168830571765656191080555246584325259735619641293904471900491687293968881669956217643426427956848494743793343666004138495684566821321250336604637712993468015940761129321570784719510337167294562455593932850636674722428699565207355802553550186817086038748712395171320544992181069928612532422597134583446786125468378764427257031607558736368801440925030757710960480626309488040698482320206199728072160779491041901376525110342800168096031232695709974823213134122010611760884272169919060472771245623908882057565044593272210219666490020476993933925667899687729694733294554807543034475185489726726521952072516864853252470542188396310830289785315919792065261408000958249019328152348331064871512781520045788895969340538938843782887775371263984484132666804233893883438111535391120773077895694118950915193938766944883122061033663969627942962257485665061035907146992188749278037258621589807438527302073737960935478370003694580641848220652816720734868803147584743192127658310934279532687396264996007926271279858776200887110825926982960666755881583484578187140193401059526121315023240108635573639362284717035130206192973268307070211476367773100704143134099555548358464423001105142969789070606212232775866329377300648592580266645721522345947473457904966636955729005381277016897082213531024013887564790085539530531310082475344569416641120920828474099247761425649073186251104238463815012794975966106092430001334448873578511565282802101883956052043714289641843214707314043863510100133278989325270966608429346629645410482776033354890584865300769080881858704609177383205176101622923397385394005723544792562646953560430065063493789815035719607888086582909984694595080912297357652264674042126907457429212266195081253480447184747536263307606092156889650088137265679906167846556668831896696207258639931458765780121097629560122953849623593318786343195242467998131728592870022856929842808717918810325232564184455818562219112812806678563103576115102873080401179334108315145979755070161695789560423266799998560825640606949211577015396261252397839427848703170569821248533751485619178412223420126789069166546285877953880324275627897375067247117937802235520814331458652862157317645962677430596266786863803615142630655451331481418737922668157556702868661623439660317212912625945106251200885459103877768789723841875013995120337860552533780702490674512740466954252307915490949500815493847975329481977319255799893597507940568984163333242170246261163152469560100799414430346565793618000022120482784067709905854629504787241424125909501183664345444951994189272104958570737424169603610132816956499356336445105020066973306984077274094086237994059939931098207204259159290962377132031647179396553191751592079948937254730594613907846142275962452943305852925191749293909557600091988689377005262529251530987004086677999321045540522171116985567864575063542805633766265609987312600334236765220328851135631906836952938325293946556740278018206356886219834094613099901118140555646979629009119704354827836091556598725046463179507688117509681995613592651666746990652110079788332535306544494793776126980637536448058070593751288922043425458866599771189355097345608111898474875621639544443063965334656619189529485055894722017668694078713635771160018355677188597723108677074011867403804316717036325546599296077920208576163746598564172276086432827731592283490543022387743251229184625324229147521093201215536182393824898721687464381256245009336888613509954232425406624901927770359725911331211174151217170209749289975261269647683596399998981096983773468429995550330956175360228989316466656882303352302014712520997291639900746562345165625435898955367366745293832904244481561013862340959163037936233598792741838633281696482698342559702857211955265642081936095703927577633489443546756240998290211495761079686058822446781869267696403565446231677644069824074036527141729161900747069459727744560565849702994929413037648348537076395734617310013445145559631559506246620045946599025849969261949691642279799708992114737517013645042873452339800357128957010658258562154366047098407843935807532555397166708832334780357748783716891525087922681106692104987090480740231380550932990566573157476682931154220030924066197819942378576043952851378765834912893198257790996777821422227781222704018643326078904993569096506359294360109452093951405622371665406047531352104275018265680190187269781728832816641887451025952236984191809469883439589486770819202704625584977014731392624620582977178044228940452911513501397677358952005805758091458585514984319562849584086385205425482564222398574352984600150165889898669136080922295507024349719533831048040857940172910081040997565034711534374029727902158696180852171190117476948123445618900868482173979851915966455404041736792687730535220467841066459238338420804751057739845590336816012081443064348229710758532791772458422005532382139357112705134830337987288744374445112430397779257513179774877413209828220723905307839262128349038864974428255104436252019173548094355732608642263830076024540750073456263284181802314558502454792271185010697808057431791056293850834047916227919164823563641792576836666977218158171673493919401357624097732991115300214530953766193547646921161502730293329840659629661045363124370879428288274684151055798930062526413010400353374955742176180449172549787932031182974966146633739415164601675116348238056253761363036770002995755192571178785491663097762871487187845634642955339173492329700466628730224356002428489087893257903177277785683021785086265661501305748322665534244762139296209862035862835993722471421344098080112718009648882993600727059614153415126331109239234955398941721843909478272227367518838467199978600206416528189475320531395892218411823664647492243904202647668082688685281736449697138234830985123801037340274151790830884874812316782143696911676129685695815090297259052547462442330162623957033991749178497065644609395230176222513462768008492218968800441703153496951149319677703006696241280445482751476980935349051698904650699500350632238944785624469645055012261126354402092956758931058647613000405045849781899200471142817713500231427060542118309383298948405083461114849250300741317000522591333375575965328567587850674906471355855259587458811887664793182922436770380790903791836970856344531957284897971494277088580916710802726764736755866586377092799333804893398510917629382887396371066826170280392541720012137768367102574438421924758432891188400423614018832002538910284026749278899139038714298328112338502561230323415379969669085743402977253521997062304691627525803859831211132901436735604789354666550827157161256182696822871230052634670746101440469055390303817703491589261377830389345234550201346891567484462851243214729308112185987641653811471890009153199379587549409449357722843972788956183791742578984689875294123592834834275450776014645950034247496926661585756425188507939087828963548937428976856632872827120558537697768241918323513869519973661439038653415579932630490037277596918732389455289442174528203774679794627374699077006122662624952313315594881111396762015125065621149183442606500621961404427090534212367801928570504814935399912362827670788657963039559660493887108321484205277757813070740072077632883743846314319263252732680571013879742581702252169141649379761241480627644298987205526579930021167706489673124545163230875776825435256825656170007031395065046002996998185923410386774150674558598110129941217468304885894667020822884756300293105053981514135175278471363978553897809166532781266003415511963030862157306228513722101090990608009864426897434552312841905303636608530060155353216664275221561041704091750632205562318079884735035583031672332368407820562449797644610176489211747231819056337679022196942936679290373383052802936008730482529087573867432517535449634406315658088136212977534017533680917633497875891692065316961777678142842970106933864650286608322603071759109560070071288155140516115424584279092540929578005870592382551573971582977532026936529333569481458459185012454812658709979384220013115422087698239789453056772831064319006222579716259437164353251772692734448953232938318502406230804437950640405202780679423383571540949553895803038534860793980541931779526098167974749806547181923070077989810357042271487935164316023602065211073230053031295501385234712024685232260778186324740370472187007280578884996135025389146325618290529170765170412809294037924308185393633065765302490480855045353778382041546244620871314457674229526794577035889406478415656601005187161367138036048631939887117237914430237827811027179637743922148561962652599717766410950536938752200478433599676556361550085123036999382583343842460935221498275582183660451520832119961357040104324807734151611052869899079675889729330996531949908763400185425205624676192994172097964902947805053999131880341743355994904087443387510979753320823308426044212018312000825287687143980629076944760977053632666327105204586084147188407771136041683333569975460732661046729968244514900701685867873617512667532032655948903576963776653485548142098791941698247205276604712665448206713983865934700491191132148138469370492583855396476123442054558975118240998676851840093324286676593427517099405647557692850587013059204316179319079127665282299555538132557940382468591733285910242876752408123718630501506038215823886092565198612170205222111598146815664028365219049588443596098123178057524222660715031371997959061120550810591785615387273101191930581997064106465531835226964415406275965659058660471743993498343728932991939788940183636472349708473237576460697849683566046720652887305838892311439092270217635214476010095511875069760488404285765876702609600855012795624898564934571482669564917751790458695407029281081794424205334151863866520866638809372448778097808146925386457974464911384522768961513816606323220635520168906831654469685816666362778849016972023040434127813163030166246192399535025477582753052363293457795397540347647077726898346578790868092193515148691278102941402594352570286737467589202769732906203512707455253707234639216950559142585700351155339736667754181497075419658288245453930681660323183716650804788355007496324664254173877692764994017391737818654117753743533887260441178415055515181871183174106298717036436112016393842810859107895845494185955926696192305733417174752880556604659738089912388923302947274558483683780790607064884643920205197582640958090707065122928280210224204317070148761949425837361360948395991267737196412020389368621375133240168305209544394291186930156903084840610682524215242989792182443076417267789691577009201442735753286285180572185294110737756131125838169043700795265595604366820001573646162387697860893830708644468572918125591611070519667402555145516150024813355066990449385872905082356141980307713878500644317994403910192658555753731872724432085330570914936718890581353912677061778483275512009936506234685442185203790133325632749911215474956088138649374331996897434546606686320770355894969003018306047970997348711864692554136722004657591993250242839088507402370015937129933945939146115072019970766521784695804652405649203339876173570491446430092061618908221431350605855701328837304546164623905818610400747963515831986226874873523893718815588708825220489964498503754771250218835337343661984438738957477951222819184396631055431924481528220593641086660032632430498237393309474089392453124712329480373092112406581462774694223634254428817215223085132342455118233319447944202806883542422476650564248039112788034368321555742897292762785809440500735268002549111417712307018964870650965601021443690260230013052998223330859031844144729201076838596801238804968345157182237777821848863299184202909133159340574893980370976414744715133791361516481097700633361773534190615951540565907613739860048393679861651947911241632078627717445360576597804710908990058552509893113249402141123139878311269949757976697518733760653123806795522243770318514791300170779558180547462472869761690699959840901094938898895862676911073954435638004525183555427032729737644198536261445531453971179626097368335107069072092378589199504735735788988030324264394201943749577239368180521250732985413244422018182397990845002474134975418355524331210332655368491914760009275535819471184834203572049423534881902824482095743832686439790151774312104922188533591917522870591332298204076428362304384351137438228030970058628282826869985950527597806933717629065863021678293903169052104023388759939390695021629084881154931695420992575362274966499746978495997629843764997940825953255472754460147655616905407760261478711648320702691630755954520877382653575795355592453524785071432674853977312799777405330457297551457413600690740979125189345738949550294071669342967302710363114034801736685002099143798727717483528909730878904515519884046574580672275838323349595718231987357509999310744747389414782361669692047663832508961261938311300040123007593712480468612662602899358657954679449477416176776409569376564222601140817280107172461631755563384395300573236855059981878212748897840708115355938253803817474429918691502088156808476061079594376192543618229724110182924962072853732944779120062546868463282969129226144164172574871472466904034125975205739392480668025579755348773548527686960579236963605730638069066131444371448464382614576729501144253594516882434912948653818042331188502323374694155654100494292909792639558421569500512596932256571267407869429100512520951678519475486282557947903110095563901156841213090572573540329382243720702391401026343494231607888770664995782397619850116538868873025467481570343934876984166304436924344171442104893517647464058948358166221659910140318052256457202124212615657719596556461176938659194607833701951753432068519283396789476038356435044917341386562571095544299835306388706824253020273539893988915829030587622340512373937492475210036254310180705106042073683919308684484529685908677451069919179018481644712082094370262172422267930368615684817680271084778509061392069076933564670929335469222197982893599563657233507520796079645782911903316806731910861558723364354808292506124443861402230295980372903522628504675456913999188132148971715656947763674588329170185675006472098361940518208694162286275764904829375194618534482185079000538505873140057250257097896022494690076337494410471172057395821178700777964277724212433881820827696503967240910302761825452208559258706347912057454739352713491663718967804100691483926996200052567484532982091949782790232563602636080640206334915442441078392690181803467357054939521718763337621171255787740673641450936506295692230869488594191745005566979778086476407080866177395184648123564994853746925131443470348959534708146689667070492623775085542390082854413510656105232106680477605166008819024210278829629857843263478866420632700307474437984852531874600289084539139178296617535680707510881441532887738389639665770402640572557794184982189883882070620668490081107403080660489037772058950857777025431289350469749986234845691849250555936012868542829015436728459500788704005834315883154697891300489317029429369299058044017132900051828478766260412134311870099993992290026501065716865926220411706341913820112020512300082860950611737350334841218606966230203425500085810506782440574499970493714066022973264543298433422596268355745454245547195802898872936924396165498190976197749576008804771367910211176852286078706447196045071923229851361522733311557351043051613174805755155075408142695552055448409872766956502508856450892095734826346075040406703565853970060521243648550272647603864712755807106473435762362658119886073075767709383754574145966924048281086829384567735693631895674145980432965870485380101364678785293158406834066217479649074539810130694483347596607291340688210057410103639851082326045528005019209001001250134927854416283299963100232877287171554029161326956126772006310405258970336219004962805306066897433320208075369172905395008759484223759595142113475507341797822485944609852722709890772533210952197740627025814572061232932068671037186457851173801825969899637782587070263500610803495180665025593889213896534214561576570939482775824974970494270078960020243874733730684110257348232217657699309436359132637218031855179119672334121028369220528154666794814578672186685739888479836810376889485200596579054510282147660322187183362587544453719896958460870017128249915244273146755437052942024763968596770952753096807712425674894534296637173249572224847101128540205225966074177833263243569135631249559801934429293907055965215622033648129420387108513226877041949926248408072175211006029046925259015886046554244108926450691597566835125082026557039910932925296740755242456688443219223746832297634378088721398749450597805437435400906886617147077945332815369862571353784992539827381411942367220211182596951562668682089122169003609088703486919134044639759889050177589633092420831880121858286507818449284788476553632545718028491632410737053525668034248091720104474385874803480200110163821443033202591913079002819921830261341721909948743195243279723275076828281214588339985151886255595661084095847373964170599662754652452800446844476470601430293220372510581818711321556930525676689130507758930653496061611976488593655048234446114346153440696875112260761165188338422019564899308572343101829877260623960618289214512688725059499394490470872754577401168017942498010969513116500319341471739248160632082030258313700336239726425610109105772292593077372235225821194944923414365980921962637366831500027179241758824542887203318330911879040481185850243323493792277880473555893440152309004527198841208479632323896039809770374509332907387684904813594247838405386006699472258679360824809220885874956576232424356723860984109186988178621266331591281814014832180386562742431192595596615116350370441948363056374036065349383645067485063623272887137512332646049216599581504004057557697620164676313126212884910189596232656964912670865571466517770528133339879627447524510880292753556435147313970866044701415524442289346900267474840837794954361558730370411405468800497403125847784443162533575734999435844947972740669725773831830799325416472781781656652170670458290412815471860546111995391390631388942157412982875055569039113171599785829324971563839854459685614570009299491642530737623326276422199488746162417693428701014881782390023716519423177918220143216616611613694062684025704665286921675821406009094409334287303728472823638158209380800300547039474178276537069465821190576318995906821697663874391611634506421234212904594138978791310159073150044868500098422817653155182365870171345138923682485644980768774762462914903596075202927570946623495769481838579662123750967544033098809147216364883947673986323197431417346017287051718508753199497980501143515522460015200147049992639027398878674833706623955602001448150363452938957115995145063357247256997964445494817343199776617600600451049100086486682187825014251053144985194262723432750817899457926739281344537042493962290653894891367132254194360986774884122284308998864209974213023816152313254392135485679180322040582378580066354369180343413924047575434267771837601247807760376770179597150048490155337206614346431280099641727166663267383967157501463212515079102592329150021885997472580237900361228509969664014063489766420176073125224282015271648029887102923169934964348758105095288822461611645892130833040249183686355768257712165342806924017996235370616907262571178847705739880264010397271417791539399417628948126924530886691989215572848315072293173694026008883884168865033640766939637615485554470040177053325649795492800560415961277346488732802276612340177543916131765890318009495265172879301970608789729968412105429731529887739859999438891627086018365835461746896050469856542847261185970638651729038625540551886555784948001321214063449901122736415922831157027429674548814409621737335858421616755582996224445265291067566191167536572024301245331029465363486570923055881844604007500370440547493901991177685692580664029572755316539314448339541610990758826817738958904168638512913807184556507832743442013759377981112800118622855112095826497071725399242303807315754872467052523161974354256172162360509961701411215828786645868503994267034044842414816029244410862368533189530537708199171092063009000273622483370416109155078785079047645503187892598134496093335873156816777727099856227212964826754235922742295561204762380623525848277856922616731254997367817716189885881681851231533716080985389872590189918262289021229869088558855830739162224130920145006312215660364239754471212399753224808510802815530149918904949286605492530238069869527795365132370651642759693791215679761109381465326190128098792559201140556601013331536187892183089297645099576691118237536857760018426684538269475504667589771464703487081546234800940810969136374637062440055230035839470460171680585703537425005746543406068295822706939427861027572954959460721302355682629960568377524862757168950192158698048280302682749418597636185979725264906250153320780971907526222314023523263343915395841449447081294831771949972064378988520470205219826174716163243747722565634848443723310757727989339991769481679996760631922277169623306755899284379890747412153189478661393140175641629935371447209061850109034172630437418169503390758084524852938429459318778631790870056893906160246756352529798514936553871796528210928646624840911801937229751717353583629775296581309139620793779311880293847254485070531186772385620817693237644477174859517448578592480601309020814103645573713188819768953500088545112580096438207265582943927987391270734884036675294238360440320259435635898713924595415087942624399207688847621199834988174798175369116087435180585535746360517646373964108890037734288785657535391507148931870314353451739568284474333419563007863398791274411041305185776380324941524983111241637070255323487495325247286601649598842824750652893681630251443592395493774485324554995192405877954248976147847488701237723689991732824619895089494590793948211357331477254008323861485534567283902170865564956098720307225594653208223556821242308767204737670406574072470545763970568699186384022016066912833923240749622419842648760717752569667709949356981926315795361126227835330159555909359457711750386706999231206687889950247711293641704404716033680828552013929662603143857729323806464374848833338091917570326424525593841459543882351929950249807152879642262912250418851702094245725618496093360373215951535385241566559114633495221227354067167628315968171689055085003888495827219749256685452106077967684115850356411909681645855356682310287980684801787034825170415160949867856785605350738886904066266123595242127354687782930297436543732609237242822938699142800415094125577405344498473540004005656432654227195412834697615872115846814790292736318655332736115521847386304429278926995822097126485122995821765736881858578297221194380723433567818251545259214579531621172212590540944475882644421061161807608764625103988430198728885020541309550244862922821272676263158374002937049645041404081511450146739813121508074822572868134442649281588773053622785353794516914398636340936758898929710804139825554585658975970508821868549879106872065920502493113083232077016647707229373718932190894211336263678892893101276485994894960774999793077219200892699289298505522780003263407959560413992521890473038558642300709235092954396845494334456673124243215044185168899849115537969832287656449129697103190411459145546806868256426916534492374858004377966825794047438724535661921589549895601762707038829162540098270571249305213133983576250239408672308412941895937002024335829432184192699855946910913954321838147678362632241910006670019999706200249506943556686656853256261372622873806627191697530435035741070149527374351011415858819151251132207483137891121018917550659912150066780597053997264302611670910688879864223159179099875297413882683957264031250072815343199108804229470874236867851029692922466719454283095286204188942280972910078162736276664439658166652501744620609671740724377103494128945480520896377794369181762273602643136567958246193824661351141510845844871164446476359356610687572056538660100035574194682174945446475437211011750292698211582506824090880820970833200476228035560120590932429193106082914056762683766107204898923086714757131991484109129387672972030719894500852250324834705875123020216972920803024330823612445259948377571754444341829314087189171213112899004780615220251983753667021047914242017423447767034772303414868500182877755542164350375666151602787298826283776625125405625467841647650996161335442709883266345501856161133314255793325381178594841966472298076158654736020018967888347404884850776866771445492694336640462738424048923462192696797294567489411391231642385383703229125208668584531800797551216999324040866741394972203276810593458503256021957233289344629665887853354836715745014123548734384853393034728384536301572120042913255428607448896117167634523896469109883169534629571926380333952037562261672385028478072139754202580735646514556654929748849488261211446199122626153447148663574777956014307275863359755263390771549612097460201134947264104700192362662637836242610790691820668875411935796891635793433179600240886474271310625242782508402911570532568373350824567549592825659529810541027463596854825486661897230044495504183174093416750106666563238292379772290594826203646275429682116309157929371250065632108174710283772781704288965565331352274197883476785166060688726753985584064460546572559838162424854210291850511969797163248491977668399493269014591579786712528729461619932527525029681368130549748259356768695249699174800218177180244818302077633813044681062128224362719346192120286633620363125111828074124694660050894519769341860646672381692329302145614137369338949075383067049747448340039621865551243053909922977348924850633462722883879089783526081472806006666836256896861258675239342320006993187057851632120620374569435897009307672302839093930014480920732881129768568425653100111492905563524709113163963608642102534275404185319518145494100206101684876981421732012149146327510116046379166970309835015880886736765028390974773572559713146150542945791062900917644920540879539561315438997944332376253650526718651059739019452445499536739370969082667833135925468224249478255106683073579451036291966021000106120827593412286549630005726624419827300120717255625853265537712868798782137478522207544694140355601716650838409845997724836922791563367437309329375384800312408459045188802192617529368806028877723135635524351608077736007130856114833953988612443050114311165814966878828707161172367881715966161155945619422543331719493572681124348616322658604356178986041148480372742235200658205166067941862154162032584533983986522414926733921373766196944814181049126521708233465103569056850602651044367889910051785174929878788803787415228135427811447235747809145992607951343963299257022674840807913265536575688161195536645842562899300795658769126676543200088844659003925744043051551588206392561123351192713365203265291440956471644036320071448326303659731320290983935075130821699007524455358892540983489814535650955994513438845820120168197736246045844238770592392286666888678274801146511515593649308554573528373781164677447118944141337378319990006658103928123315985453035215759037695307337890717254445467859641339694685802685715984035193201174568729489115151151077664591197350215656779002945288878321405026922567335927421537756120827876811137695462376204775927548510929757152485275358475172729964682172348017506289146666399366741720758384184940414656289520403715861219405285750259403093984205593267918690044282659080282870668503755727916970593588503866085960367962231866826714213661829705530653509934824411007427521070769933928264951492639408340002244151269075355081287768682114131921700117100471644676399973401518844016988447417323423210429932349972963239435645063347222433483628878272796699333903492393734219031709321968720074738474667352457103074625891619921909507893055598073902471937429213396659400956042324871849787575490075720035107145654652844216520915026282493714193396091352817558275187319634510301827182471249383338648227761171403841452825487414497777715652578762313687553652265533558590365173692912423315644812305937201127289918905466086355295618978946825023063103268542503096622354718655432955878033996713349358874477660341958122192247150830490620216734707362787705711183345701654020574896498949291661971838827738322014619573138960773284942942479080474944146071376325537997600557299805146287886981693908505382486790829690028814975428087081697785187773127385955012074774762346507167927141845874037850513389842163561757998702094404975061002533112652722394332767063461517063561398560128656614202295640786175690586541828566655098629798009567718182410967528310212900300767446480980828530433809386249553796965954143599011080987003422595242231206117437643345430416144590799962815125645831890231380853853301580868318390495022564552535120585811586112129778288896926695317071305476853973058903931415934222614551629970973257847366509685495628437187686691199218278112554079403866170045841158108063124226791418247163996887167856829963570819688117171629454594983220187650211489729285725362989374640299819809393651304929922171806092506932009463090482830646901914691852644964138903587242821792221316801251674629691265051550523693143834410035824810844648801896712483297816470270166745780088188667268470460861344697640436836202536473447213421444190141499112828952742238399564804248395125183865602125882832759912280505118229130178286052442176208707533906789702671572476650770857186201211741446686664824156990208292775446084333880502917244946772010801086544918136831423691506610971988297124849339186980230996829953449068055389295722766310517856121442159482651260737825571762458377159316337399253019072023944698735597990770252815618558417589874701469299143907788093331111767524179358343319209115362128855762064009901761988047845817003665906289435063244341746914564879145621553139766710519953285119205672245630144020976843704852462867291140935287896939143541087314776984595677335702456988674501693175526702619456812180043149839900721886149100182158155382826961471272133577504485751693138010837266961317880853901009467392487047101098896478072684409793222062804138761473346286440464077392115926448557292111476182058680455492874540379534027370872859975991920648692626093984030860672121157596138802502082465568728974499226877284687546700693759947384683954438722584121585504883652706090696985763776948096945463370737776569194147861191318999132072775183714817330379187575718490674198157536196814665811954975546244484024004134525219158526599954720817405623828111351337481434502296757048278673034544325659398939360681418899020145178329003752982753869321606327632321334033156797037498773227390481821191468271814802888079736721949706989003458237355682768910648144811360916095590378938385702160674239171787954676272655441121115932060826056049881725152111614324424670557781153225549155405387190844342085484578226628373010157288484881811455560731705687247296606010471477595508411236185002709261795607760269990681845509166305060635381229879778706766961707127467272752557371202402565752528687745205766870694271040535765762800932277841000126400964960974484726951886552300853324952642945885374392289938598294995727425154930819723338004149821329673556029222736369572840459567018507900149637084448767620356760629048356261823549200079480528271692875005243290393485694946876742198417980738105643806359487294950658098814540658192025494441948669758302207690793945905935656809580340725898254274431026293870185420901158544513609291512772215583435216029892731938657052229484541396946088527491067141530109083352974915841388726088810822500276112849623115971428122036139498431860188444957365370138926873995335988478583096553307507883553402947120358820512684491481511024076980211687737859752614759995261940585004723031962146489983167203093434731370603656728389785916042139374481650118808471901408538176093270758780027470925521647640339053967716018707338730813095868765103943557510026370222709785595099454217394315726940094364310245949801356670409631805488121824357803805216531105135511279251782890175742471318182196501123046877904169128301733624868648657248123107339497393163032643808775540232824552816293872240607626990335315799371130284297915557840751221226042403654584979923684373619925504143654763544703977115559636601677473007839205447254951738774759054973890802390913874208469701807941984585104821833527681740349703153292701624932241382647251879662389500770500582098731893886587240804711402412159408151510433997713831203117362168364713699886968502335520286387003052113697118369973198834371793560795163391123512543000335045359994885294782217979094703567358872001418550134500772122005056256369855277280589137467404589785871340137408946189037532791543058841225276534907260629256125361334280635880177449157750904529820073569874355167042986234279877617093635655005929421168729961162145595018939061174736361904833210485531070631183448388091842803227684527220922680133075346160276356758803560523952712861451170226849654870428207237294429950918230937215340204350063453096932861931344566458652842774721419065388149199122328276614958975420966243520871058655025727859132923102073762393644064966483431586904117335041504420164047369051973656236346599618502378022861903419676324088892306802843857362034475730195972572018722868037387621390459750601694399697226522585446064558941446685894605234277191982354387268477022516970022094267007129459430826130018026096213975529263929399413187706618050089045886644258365989843055689315875610766565818417953376916496562311162022458886075335643471833276388359046311137962683706826152907021755921931580404597762979016133320944607055304468278517027556325629990870041052699963293214666716729891606825430419089499139887930163955169148852614635533520877031835626355174634519740122479562803898547681120786062272511767482759097505106946886992612390560710940391466544238313581646127651428135148680166693684842026799978272025406004281005196243152779899731928973698155502771320964385553880045896970885557440236272852026176681760297360102147884003875909318876275537796000583719341236839509653762112325035567852708763000048678864567781955939040462675226598747000251891766024696018459339449458500981420935340159687628625186823849025177454878486818133872371382445470001095771048998914580002991788168338496778714098039555665245827932793346829467305121845251549174013796201648714407589738974985115652429154036428007835069709024839292879859817036246377672938654197421914005262725934993802204676366611439298990974188740153293939955364121450334623915119088987293008245958372823665647161937093946644260428802676205687126977159710913150378670021628652477468605345112282669171572171402048350616586915959953313511673943803138998511859184190217126931106681294212430842165612066597556103491084771627536595050865947244784176249541614111916336181766053580243373620545634163158124365827761425888808363918868015252753819569866217317922019892764668069888926638071109670547325544652223037423834298418250951960244545011217490290867436052619682470637108437442031632647454187956069429098234478011288482515298194962315343939934620863522003505631408849620882059077018323400586124471862314724244698880457706680399100240356080077786013784573350538891423042152960605298149493966066300778167360775535763599995317046761654707373732349794534319667633382219111260630144080396813745304434176516650845183233428872162540614290971664408023120943671705425843228448008432219462113819280390912333335525971280200701763143956514662974310952257757107085965228099462322316541021382467431685878223479022982417242716422190498212683695346641323021822348847445345897656325031425913597394292796180985156710828798130448281700687234197151612222283335345313189027342151512875979550908120933310172439144513945816725926707807807426989545567978317360420747536075007230304116008465502786964382758985181611500238558889852366660184949486809035291432133578967372116382324490740139339887243568396901634518992971050438736245069075822659471786565545039313928779999145914680114643678753188546176402926736857962729199590392475544863450435646134508869751215206251740395058590929128471122234571071677703268731495507623547333992135396700850155655580752440282997797390999612181601796450231892308905198912751134926539571187873814739537612484339432246838627548780853869706321230207319194810395360547060337560383824159734321463294943307136725177447315825241685854306608127803171365463662528002891180647084913655928526543836263081769646664882165934744021216852006564506631141985597006294194333845293150906081814223428849295332317205241526594128095572818566119603170641017470064335197725948032787693125253202022319394409778994766833953602386098883479785171547423558422261041686035091734913765488537612719385004145637313490234118637527971731215733085102350254087006816360716754073729344551996423949200973393758026600355495999679728811594158852676984878299345650973927629170117752946698400937451416885973971816740174974859061752499624352301793788785732385208706789162343475534598123805976726849685223883675250701476530915326641158802535722739165036278687025982953617386793674774103199041270455610621629903940164884466769741707728319548653691855834706171567519838426216398671966958225620006003276114258817119663567213934231468328849714625616509597038474955834494080851576203447402092405169190168691061085002901006328364890521814787314740086775164594778928911981545977985597635115323195194950277234804902958025326958104467111265394486523975590094367913866634372911820134562525302601826073594225307079990044765407327856639313075454890479576717710080189666972619934582654234909056529867158992961881929190938681683435192029273517364626557941484591617616857488648504094859599118487475000365725391348829250083913344144520557811528235705392480800242860402900875585113965616406121341122847396836083888587002601584550557310618439238549111420806180750971755550205372321647910774590905853471729899543909851412166226395379706764455345761228923387250297619419949136289769211618290640227940969590789375448522436150741041665668897840020118254211745967582496059225039917999849389221987993821675860031650970716484598147360197697178071739088130886315901654060270597222069845687406323255185955293835643848206669612923959554934278558538892163822324296645237090882554700288050906674933023356326252512430395554073525397858124488356007003306900413828687176060532749056086906169631555792100636964885061210834552820436531482296492111770530445398512180633161247243520842554174043002909955818794639706240770271498078741259964892999687038616758756523120453413996496141090380489763472250120827752675066292409622372892181991419589512012971861275147133474565547597452022533057730100483650447450339498630618844606399632007705615864096874948045130445270495304557798247363798230916979225811970893975345499770883421783470923859057775260130106083665859182194659772514979675977954170302366877864010779559158118580942691973729361012201581753008287947881716653048503676692626151423188358911034658438653502806685385680608006846275697097797910279679325568879812416467667495085542020719189034575435591654118824336497296860935249915023841514510161860640642288027258817817205864117779047319502874290859160134598838074382048830450970994509485212206968462877853728712968194797988864231459870740802934638969785999335040092850907289940884233128548065211985142308155476653315428480247893514976739501364536148744855956456083722643554002767076105977919083550629564653220036640991080412913763570648507691705646978964280879681247170148848983580360206350317030906853150935255607052985994030258264219666079963781842196968110379214104708892888838212927065144321464163436874161831235815127181847091826557912710338527098125278029171520265125341501577033363409847831312495391376303273833269060261092728043409980003747459641840581386305155086629888613704961926069612032941220574080409703240151420855540097892547158358852572422400880188156845878875033278796396643770910978329269620669265116117693404500039882259156468305060879166560588701821230086466098076842698304967144706710643578002515336208331014936105481177253499751329647476292683073302248664923596658725844431475421098856390976853114296785722430824031164186994284690902799861359799419012904549181347601737963983022254686948384120705498141121848104173739992630047969842068644827131716752271489697058585991695436316625917739912453750133168236582446384890990478931997841886064175490353176397374617001065712463531977116539954576096963351655122602598675944541649384819372066922822137720146636721949076883263630254287652667794463281624493068747669960511698405249452719995498806110897349579165315100134691593320668037256837982726669991909705670540815696330762743817173317168392236231696649756677163045321122688938898366608270743928686841036857579132878726595445015874767186738509601090790960349006346206303754047992776548908573437916212416387448749304885442899254386446080905436152431364140080006191874899781622561685038118592796638105931485461664647785822756247206526517016487635455296095414519278400344905897713238101507077835647978085911716314913800739371448722230941741883871539112750756125487626944349767538091223634603381612360258884450305347591950179454999727082117832285312895767300210123158009230455328168756076059836302518305456428552394177561354740805777986782576448616990485820535476620505496265692021373881134650905976267571693367202176464715802299028349431380076212734893028131006314623520096159155613647039787810765038769116048974104649537809226508240579246556905837471634088830465833567581194092599119709352667783608569686200383704416783150938348792925677382287257984089669493682308584983696230941584764551672189807749125516894608682478807888128764411197089069166561514985089562837724014389384546417117103855616065061190061567182635559256707585154023620826055678477447174336631386093636563015415743083009822321727715077653606425545973934073279805773544422069752604911986313144800847881774589818471061490762334938950181965395480182364212867089113040785399994572442443161277804094969289005813149544892910544874193829389752078428366756959482537783183304585403171225750410131967547968628583224316491583513866436737624680005659359826941438740691012611072850389127920957767162206658039861901271163518535152608793864381335911404914667451744711231191305159941254826489618080699830540381799140349791935913306907867593496104083134557536870321640055998050420849538849419171251884887872280569015083885512180745415017515755635822214621944081722665433832997680092864770418889311400165143916548997259944267892217573981357473138630757012421243284191756109420687659067096277688007624751440413271523942525164847425805806486959728334644387766066986193070255521329170583960367864500400122342292858992339200852374415246274559711901349502024784014522900232082203121524685328394321953408817249496983752889425914644039601591617348812348451780995025608439166564574627405967736186854361660666947279598725397429678969592684227287626050806866179589682345130616477972677548196846437323411408422467242805234792231206884234807507259588159277413456753914564270818263331871901294323371964066558571528769530535969586662426063885662929528295843788499891573275248372944752301148778036159410915267892998219022361657020144281194392456973038818417735012285030613356700716770900840370995946997987693541442688075200258446359362648427839252352350535692543650996409469033404215177103030630802852552246184026527333447800682055134201077503683775990075111414486304694949274298965686770850391259018577557911516951282957038097043605406120964641716226079773454456589901250515360530946100957143196999755172403423102992356371330264723667688553096073263877990090061667408330094244057189290227384481058337667077571228343693212009533645703227031823130705498229106048564616138460954966164631786084254844602387665899834175349337164662900161002139461300696850478985952109256938079756843283361713369706456669945896507770270262068976019981464625973784385824259944875855014648332075011154845749579239058271989881135336563825750914780847989389946945067225933230239294036704196699782018257051778917132596864017773436558709168485242511107338212443442396046084781079487331548087378346701707161717595863096421229551218306283661294342476280879713954434989144245594132130877745184064400865783674631743701838579475227539433550021110554169746345066244196688343072142108606275617427299039295127531967042115802255432961729342730587958844646633605309061089434528940055378576321350291289631599325476570950222821787817078787307522440769542577848128231624426972144333930532408309562119589023625526656612342525216726651101416599652047165917430566958446225235632620056777474672320034675723014585623757008149619920144712249816088047550991953697257070606185811501400444865106505448435192012686905113908679588620929150788779320090682920117164897146603704276591134731239717204301060210160693066311667434614342604362590401135542742016134029763725664804316708363860270793003954118438930483311652565625543787944801427602262822717231268526212810003393850196277947106447162068086656494099548295554534644225170870724385523187853127801310988663747794502390560510393480859722416105753552517051465331084623382874559736997374531276570685068053284330656009679039660881152078440117071926757077566401063959930920878417642518089962038399871071388578150073278809842353803327148526111657151135298985412386959883375881703454072011732369275240006483489306044918397145715914247323322769807817429431045554806631958772266390426716015209305197285059342604309467015069130901892524777907446492342239493006710862867686935392757938559468954641170895143443504310682241521901785329384694062897271493308307856354056184844573937910909883173400838157479036151231586348701968343068895648129547738427621006088637467006627668018909926760014015073701445955403105528518248660272257031719722797004394545923461077413759082367954171737781819789883109175898155396811960472213896926428440651683688667856695111796488780779350473283536483989938774131699138887578452697432393540713596337567995601934135790109424527481477871051604969389489463576014445854047105439848708797578552724494163163013512210746110491420509182018981302527378624171955312769616493574048260827732316058287625946926206947953376885834600620172534573866820719820156726046277051864129332088313138581075023528944768625933386578745893993434457066296077336748765955233422128927719941945598968010074830086662484138442852425237802606419576004645418818503177042849209384344078985644979819131367715144165616632002883738226418550662531550301010262458960668955606331822714420240440924933572421470187813485268244941286543969968520494611799598113371154795579171543450371315134375322685754049021687726532313263036116641174938439770590480851744618590079345627583983595878118147510808853609078472951646272050464141366116788942655537226288723050852560825196435186171940427453443135091607578040381980181471700067225718197829969092984157227032163013825003060095554748836708686889788769089446253007543978634930768134937037322262502128452398228913234048027798284489839216202614914224493228696659464804063577686280814327382016724050344740191718138829211179222166908027598864787969848757768443193201615409186515076705394583189225184521317745488806080303100877193416105402489049295113934049792676347602941011923182346227448070827064252836469937274128526690734924991977264318744779604466047595066244872490426766658764556312849899393827601672442626533005348080902413506271574476253265141596174939506803817655395287547324776505627044689115995280121870924532344602052554400464153376213965302446907202975908098071000477782859068912875033897100703577759675903827123071705831775424734652622914094231985487522535304438789161683425299944933524591868849882371222393729848788099602521272437364878752108505197926028896659572122788539227733648091113076704777565827593289778779567467938177429054653018324845617093419259187247346199021361297254335425280382530942816588501740840067178411093686208837494043439489533882528888059035573946478828477250247444889578219033144303383664680377860520290786171307155751302234027473452652598336937927009227851032502427787136208916591619965489611892975172137646879105939231792661868010193556913309066765032161427606056309420155474060576751394766962425122349271563818463231567769028997934200657198312781349557454320483559244093245882768436376033568878200250708399339925381104090469089522550481516333417860504985766552885554430577272577409362290203356092408147763005132658595948244891888525290713522439129195306220558599094699326838570629136621244117564416002101093474205236853432946134666895705711203573115085861958253802985929981460289817567457514376484517933872253927175132691352335511232396801549724574569744652857282827421079835207671352927143466999721227335412647005552057146408887854226801361455727543431246965826450538297980173577150306560683102606847170428150740562811600964357878520680619734929764002829077452070227355364763422845393267724713207427260765290849076052585293424123131265841523199910563971391677181329514955260989038205728270130738691060614111945554622313041128100769591659160438097068665546894933819325398440256381533624557747007347449818830764849583403745885193988036484705786558734261049183325007659785385203023410123489421457025601287999030527174983033333739814250076030343061701463425656089281118970332615908037929722847995817383137712756806569760651721871078684661477357909018023077966282487343360548782111848620630274302903742924264609051400199305495365967145837611713521780602187994118898257660193191761350541056947860876442799909822122408583867432240684781811266248327507699351178319664009856165038879226122997868027437212698566255891915541689677169808149399964669791808628329388478320351840231153734821117532290119383158613962313898047774245438767219337521378581591157778157435755384122328055001498665046554736853210900297276695909448661335071295946719099526203817989156604906853954289345961822502194526443460725879479480698728862640065244946927400002012625566543851879312719858482685358230930369127236524514147810277176466071010176714629649788363694864591033404256298107602445890183345340731763767184538993641058092313995408657002383389717070986005663977017429619794829951009186443471374333903390250755038303959214237562035786486182376631201719764610462972942733179048836771824847045276959039639873282603361904128481658123695376583439281532705701832210374102343855270292607619884048051936164891341540435279596538788021473270555549878727629108326388311928670159755438623754369134798451295254212405155157415891241347347293980527437677160482083428260173665729146748647689096457602896050530844869500926009742685831426950397400780855747772035827704249173307439381880034564339466539678884970850316639087825414763740208558511082948814681109052147881914008646281118599905013907277484603213652753587291145739626129411283302966715677376836789770855847591660105558139967529952273280529470531930335030770511550587818428360016702022820210465527806303553889998532946423105768733374270579220673290710416768768583969095568526023371942282568621760353945252837056809067804609595796977669487092953973073227278122284814821322644932649448729701562032228777976322075394668566708850029826360977012284947089247194231397642551031383956646360193132741305866518735278187672951864342742771275204041352797745769233078160343056387619333124610803224425804895539576179112158021200176757659592774123139685554757091051984706955444238439910828827969682239202937672618696487119640481589603562819153019185850569159216051906553291143395621341143794203819004365870209689175867933681030812414426599609610328160368261748283872169771740130106156201752265550076153003279716277225647990221492438019505811391908289194247919443419093166111196096411560871760027832670747421430695804026437288299737720909204821595153629956298525220785684269874053074075387558710084255929553959406356634075629682655114293268994705779837198703985788082738561864416800813272305270228930772644545660966849718620679645660179959167295693380196983524847455249682121610784377040279307810470760748044001811613657548189651923563949229290800835607733946132630405415334141833413067295279126814871752773205770382398972955580645885116876859675873106109597116609025290296394715345802368059649419183863369504469548206777513672569749847300190031605676458412385723124956728982656318791217422045474064663584408378204297930918043346424774387066536033986962877516887303015326140718252800295889068408645141408433333749014234904165605233694504360095028063040052402910821151392851255728978639452378438334289953290161864800206509352102170515184225920863407770042652538470993467165407461670725830500331947814402638473599188371956237594621865910073971283580465725493263477471210851742555490026177008429753447086874069189128843099594916931435974457443288834709947994526938691318478950026698054855177187065365137618643482453627978362467645299340549935845894121244580281511029595791585195898923208973600444227461863061412584080678951209378431370649646368314895840644580332279330695669786685835196451540945155339779899540694778889110392490418992969440946904024813124314247343076447201627558164131527911720290283965055495622502821347739509970963509102833043689860085391519547675547237156802204711110881064237915859233393679098725399081466363813722514928141079320829066556523609061376934663130347777331301824053627737476594572135746054550467388465931429236150671681816600080790700962031048910424333384871942756512104978831266340413078967428261504173549117204627403868456128361586096990688210178666783722563999234439034163414466982024178595875626844190904894689717906879231850072978209233418566765998365806709884641772902673033573067868928610192029491455228935904064631435213379264538268333830531151905039022625671169084834195345327498064357712071199233828086119720821580531082036961650115731016341793798611917868402219331836393070071888828941776369827580321258185594233528804183735797531422113841618449473784509632991701422502131131379488481326844326110089670628202419687728946276381128927718237857813147049315990679761861531254107647047812118246019118893595394489224049299031591142725724823323915281824691365658003243557353319148611253130777746021739179357924247303767413862051510774272429244907438924113325566787922641022944485004461552481426958174042296130652408487284906770380159966949636722564075072571371080696900507678757102351683718895595765578021682692994921009437282209090823192352025871262476460193418607234671852416191132328901645380559299218664065151137548044473852602522685811565518571868940712256117166411352778748523194423871939929452360360576619407774159918512304925645300636546961454457411484360941901146178966816824101015507836485427994843802507524056166674415604228398225182741684371483748119081968311913573181215667853041393876629424883258555729323594845086082852256313374280412596270896627523985299576350124463712443744707508967631064055193286749126463052380497644099024852618786843807211691822927034315697079807172092300535442355637101360746230987172553354400442321378425421199356475112953998507548716962132055434111750434432132805479448932564694059962802022720339349828910105919359914477725203802026207180684178789619819953143039139354564321948547751448257886501198136403535705137860047889266125181593081088629429581417976245010517732028333159460765644294509799416645861584959750528149248362912900932643418220702331634729993096007335239497925524105092108189804529334209194944060140933791568676703569696217898013139503326183729885310535975249722966371720637196404478286414333001623490459939557306745851679155774578365574284473681050394529253256664165211073456831230236045969560958736688420393746756087700507353652950765479895003942137591728804146413282992656537803748605574636545772156010340778148917945554112005151651657711922227045881214578238326371063095428002942256988149437951866454234032480077567745304606517208583986948476151050055332186993164756927742074735797226983949249831928499219974836564928882615012859001028225849140896371703090410468956996848514520394448267592847849480950013010631424154643026219532092487653908769172897875564871688470816887068660169533407886403669515869749125990013666600546675520541762350229805000191204511644431911379367819182313509854326697258935028012389641197879032417751182702624889513541171848333066088582160191644765542222478908637039411618644283506925081040585605150221237837489621569648601501844138535626985928236147737382869164491029361773887214944422412907161041073728669265532534681499868130562804188785882078323197065456261939316707310878043250835241399442914798340291459718301232388076247583619787832010744350648455452712939323465063241354878963367205330482562848718703699600815601667843153543679680443787006884134714162616288194319032677097442991236700158607561035068104231569009754176898853138600464498494661763687768412934914139608659841464948614208110565448236404493117927824050537166890857645922553010780895151183528994113961304321664934787000531147539978911291037734001152031223589101645917951354089971476397889813848886749852680852964131577280185954639476667443485598277879512949521429196633529711445902462077656524052792293865241547294183600364977284810866237041786348383461621995402251534507187561509593499823235385035743188168166196409120983640494954390227535330577138656529112382501518375195321773216813850358835247775827349289948553485987790751047261745099158599275427576636571248320809664160580192861925968874131660578020615308670914634530612033444912055298025796474381489671492899596957866158775749422443708036562040383159170128768954416691108446669592756834469525821447533681485539485356513991201228100378346786531278191723968721019248305604452801154983114873646841887647719828209110219327505239412692065439651516215313518496505448651845569349381781637333797895496573481382537038120942255482245044825273389525013505363424663640691742371618474966244369697985123352374797453372712453190032621436699806803732298490415112550967457584426328715714740713012098038810667665185688217644494860307332801838862551281360417766193103607677766938991992841754482525991970342969289585450059571280397779371115938855700117802937567388314934117070842442962358863986073014974923940651546081497540671449487343852314731161157239463069602934398009909472713456500168626011048938838734472240372993655581556185035617906533019757031907388539402763627983817809930689437591674509925895658386814468478452702377996277007477056367554175602197747572831829945391373194080171339940004513615376550213958160066238436576221022093700226557219571660564638567434946233483528632752308645436874486116685428581321287243233823499932002631833971703174597215885948285431159077257547023863482420772962837331932773922455934158941432454262091411277737124694156260808418022071987182936544398057229172984180853467677299519224703621942774868297840351456304604977364195003455323064448995387163259320012143305083314337136815812558775359317148046210283486224474555890495326009725186517826531392477334671971396314114071996458129757976143877019360023278073434465110160454624900948077182631055632741636369617702853961639970345730396274728033765673621985459595428941010973185160886806231881230283286975953354656056938503074672385256700737806835838033350754120925372682872866122310069842554045437958471648567903978539468730302705975880509395110144861561953342852787426885834573350688803751526029133530364564306195876305181099077715359280997693171434453698835314288243947329284522055752065748211970542523325732992368432759995622627332921596199885321232551343191159145028691380310268948534293831160390489119757183319275582170835886754254927342747336427160614897059008826918161928824040003639006809626897494470963977394157957240975705670323388305619118282331473153790002884332941748059293305568590526702019656162355005558955091155275517400052088835614381880865367023485828581763990682074061845733469509240061567711257101608486910067026313905364075997687110281802918030372756076587696747715844814084568504928822155720306597963320597721306836151695543058187698383918772065380644275834467756193452054357842649350914313466265191393461496749560839591335767736876451650184971856056780727121800892754033122639856385325464104634322712881360587241309457747619959010285335698753829282179278163169620105196858017313387703182748362450816708450419585215285762443403325354991977354165329930419657390746855554108048035323635064168388195386572294184490614446788182502554449158866490582482874294665274136830224847500534185063871626755911044514154572885415438315604938793425681164258547049661729310087464860511792000444156608081427336673434909401134034748956829138838725759633214630032480383161022328770527631255103600494956126902180665283850564226369756732615795946694404726138361743043522961655873708124862664238992041660745498790841299668668392236986807403976710234972379591985515040983047218069068597031916462134905039217331235078637007525806240292176439860551112641561337331386784389939080690741593032440130173087885343774818638850110900489230318848530531022869444727246856536616625613865617554136582129692290668309723880987939613794608783312039489654378803636035727202658455675497093472443451729427984565387988189504868760624268045214321623030568350142145191920464947094455111201349116730238561134726192298915093185858492626872582326844587727682438995965894780123115995723073369318604854206634412348866140647754654161040490844211527201032105257731544961963683783352696874338697941963550366371977080564426129232373282335524496487246783882101994102257036356811901687471214547013365762448345672054637853303558865501601948197957050023750514315297881600767033976550959327221438217391981282258760943799505232634174342100553932647285830888199155916355589053877616310945537148480063974607952216267559292561075509536959122336735191538450857265743153905208114121695343920271010800579764558270589502563352846953727468244499579832057561940922058502804679077945117635789794709175291992901732935625184416157137435102587781379005390468335857816378025806436561858517748235390991513783085619484147700099875657991846139853633177667118891329534042982853190969472527398861183909712001078720493527415037281581336546442205772788780733461082037292998266278980761159875657891915371606991112726114863581848267155650966089029588345905130652691452098939538793650122900264004491936826464871587744873044280497011509877087240073108993933336951628162173471980017702181760425181113600416950154383117743965147443842256155004324591002276450540430567470532414694585509742476925123058935901293946913458544209173589712488115359855959267641035641906637573163449147005462786878475267814518153331009272636223845437190251015566394363567880676729594212563386348280232276890022818742234129459697185643414481593869606991102890707464152672035806689654156948703348894283921240429232901481620390128664351658120778306148169841996897941712520128403892692591841359212901849610685479062141675665211415369153424990280742807324392178947279361889820292609090873582080510848660413691790826133647233723619744390189915835067826467113229146940431654401020816687123954989564338703014323010311224859380172529149660003322295976243449196799080287621395945931123666339918194702997025175347408135858661122451111859417752319990031410928588419349889849755148104715609147275539753853815108197425352723794505852697675123739561225162834520157921840427575059213978505624495608651915509350737337241353898979306255941775286173456322427553205426533310625618261675563087954080628814900775485049109252217920652910861201856254862092465012909402873292125417228710142208310580253422903558745990197242509618451938708411455114272880483634996805175940348496687799068527297201751131086766495847949059594514530908148794536790867487515431072334761011333099774074905298585623261670041086187201163676995079118417396590489928697474670158159147022924588567464270255084133120549195694677257755810765059340082006963936140541867041078287327502998648334961386753925229078942250880964585628289989180288160275060201346887528253801447689260141495266922844909536821863237073009450189876839249064666379706627058722857995209006819344127976969978277312571009517470281962309908514552135710453701951054041977417994306676345081142028497655072384540613184455981790506646434538198498267832686553980034276250607295507829259512845025383514971291305333557367289765369975338968696950799627096411931256237608816443978039534782392449449336248792600436757891774863716934026328557145570354996186520901215814623533420523921237625453425263641132361428385490081788614668351777391307201811655906044473472100482024888929487666914345225794096608299923944458275429416601965408799297808846059802837325888462827565508209947424038302829902150234488110242354419574427594331125187525273995831950687381641070690685906068763588919966982089438102497755450752885102039672906724778529228571032885375082759651646143688409635104086305597634283438734033406064152689748266476068705456541423452018282864201205396806834043740150292699771110767987558896926182529352221692867349983502674333889855468597278081379175966145980875074675615080712540846321320573209387151614384808968821613931923155983786731668914183810505326121615887167379635234906702828922839608102424225408148918991282027594431079329038094427883732573475613782451875943132127526377231538496935596257784131899007007055750328351859596631635922874663760819168273508728082331402960160117026949881482619707919194185574829656879813902824419990933719030551417907230516367780448718231217800630228255355427213848151670557783701086727404342868545912374908311448406680366739984353502218143218548117365052527504068293269751723596201921126700991819864540202473724683286102139212754990302864459120632876544429272369285169842639540826806636547579182319359961752032598067316725775769522138552323612675822733314737041659242583546297975509889362831796564190477159370196270873014830857334013074577239838998284676802925971313070381384917442535656770668803300178652594766846074123326654310183875538264467666772935458555549899483086277022091950907412526196398399582877416824895007521453526503789353791922666396718126093058444932253166969091576992414313255375433372228418673778420328261880369802311651789503538432211878937895611591385745511644511748936951374527947213620912763252138793290221988118711337270624800252576787042302506332236794521732246533741432333955306926443090997587705763777730622459744728492211439714397785566847544182327538531515051838015108983584434657003140771219414738283674577608392545645804695928545004435729760851271772477915882085416233789904107899408736216579967800057348067224186489072343647654564888412820433326443784786761558076347220104632879807484829078915162352598057669441850804529304486292795310213615485508083144641252171969371087558148122288449362496970237740314817359531510710141023975291722171166466935641084759251259699027920687503160210352149790136312377808102846564546454413400145670750173605995901875166472832923046572961763530476513786412636436344738020369085426737300809966341753994188895865374617887575994940323045981883992327799998174639583391935188831998751187509692667914827050838115336341659165739270648440807817969867486191747764306125806365872623926614447812861468337178858375384522674887110873928023462513603967766061719002826074671056031036888125364114355855662832905712254670442582055934503045547805848578139677470648403221181827924691045624521274195938945427501281103043967422368952794320829371680078425116827791287305386166753115496339000446199597741219058761699724530060487696313924477479202477870442546385348545175565922037696245374285747787540913341270054490215979444935938987913427811197043736535919560680784628359742206203946372688163761825904468884758474726598351368424076143738509519340632203841387269836386534680128796619169073656284900161801361231360091669883581327842708402667297833536578544232054535373188280302401154359984019993368562893664371000606510088211730955557300462603060085242801750832213210433008801743933358127628993682075142636468380848927649511646569346445400504197059567289895091584125898780431713900497771335479282113680169186196636476569811009339939770116922749784365962084983179883537888021149060052086685783991291858117549113805276537558558230688685006123405225316364632036202603546990643619601704120649835090754255218685479271185923037602952201413281707197890638939973411357850382578493751858503722300229054259766736782327694860019036866872690463393536599637312737176912059753218402298241031600704261540439383014263210708535628857811599128640568942855195039574703244411795401517544612069547380821385350402858951092337267331739329711043112172171637513593648858583210252355452443610230495491716292615321178134355217440404658754936793057768046494292050979957137110808965482371060028126317986786833488119332575045037185536220056482715475203611314759847692722598202847516391227381039164917092788519167468956326874221098763108196545411980183003386069286350839706819176915893524949883795062022896817628427990584238686669293569415564520513824029308387689115076308081103708793014591656835458186464881983134474798609168087222186205024160826303237954162542805651253870209746404919941228970705009049560656649249724233189862767436451944063703040577416644055868054114095221161621855991875644101451757778727292881147297926296804226804944064001860313614483761823287896806801400646007762138754211097672352540868518104528553242897425689241733912533381281075282548875193350973031295040571458632335393082646210806074950204886934069908686590682150976909872775191251744915969525160794635910096878535087332046368524635120296278074834869126903189775193422574497092089255503355362634598588482562448532753280809992018087458848817975587310846801165554444159872099496011182985953748452420236926415534287271517362104636432730919048159164856882592091267667894119557309290763201435760940665571799036523615491835720025233024440416848580409511309855482956793522039315694377407664896595691663689179051160623330323736703702558165683444113783986167083477637031076131403115105911810010141345666174188844546369149251581427571240325310503188538050664642270198393440351571480205335268828319486466556660535223569903776034223101522051308413082018421433470581315599092321457399982798783977215847649286161061593846040595586568121471251212826973092508352102036726841022206776797237655618268638089735030882297383233622536861053524330928298923893696742324713126477527166830830247116050953734568923910073392064259214182186418185869349653667807240920559995406636849789961894285122953606418422745450616075083516580966892294818039748940968767192005165828816214928502790530061397047128333232038005038728853584263962195190501935449341800569971294155626328135089511543661594717116162235051892340798558128833277155241633602765602102843415650397987297026867297072624014631139138699986467932817602944005123861563351663282993947725415240901781439308675199960630279027722931909674868433263132778658577424854120546043438234548636295130023798062948474000667330122876858148533109422529458505567344855009578191938806850950294240132122028373714880336141309143209623054399177761891248535970799946614772470003583960741193347925943867981304963324882420326308255727082258071511339442137226792018993174959167707627180249269303869782822315435046349007331721529166694156807039170977549973273053947447428799402744511838132738419000389096055311994458255410197799668188144191268717822082904107445012819143132139643615422471046058364588193418163842839124877748378550101768516953709531197510133210391862377425653415224675488395315432219945838336600047677790849048383578180265015105853609772307842070314103028341745510526625711673011609280496337096488364204012672577590193417758754752968296474463966655102892537428811868291234877907099799033483811040364688047811268084614482164811835721785054306419204475503884062931201332024681946651747390600142556387477169211420628443650569988211864358691394692630040837844914553848266919317741655548971739201323454298120982048185692261211731198164905156082863984494223968180859217778281152018713046670175728719563926246922600507860358324471071450855015098165021538160611450330243412365478530720964202726603009738395479439139941590939259722720857620424092043016935296545953493801898006654075300189579002611132121559423962659250889627222624509902487116193393660729907373358624788436548707129757163745947385503680622466800646967361798875322359754566366032612152346975717501164589710042095159502308885008447677251563428453932426797717540834769286250897417212849981768357450473506517711295150421343235658346862692276641947516209204636859951116980166063181807961827668856803388292826175461574096162909341314971945020714750537518568409068047364386168715094444511578867270183636016010205248946999534539966906573108370768659788266138090279265744086505690887518111404701074132993531654882889962297998412006299396816835612636141767215583650999205713603483950426778748200517005329109591620894657935054391942278910137038451871890646121859452449460002841636257334752282750527964920723293024348393597477553439833339992771641160774630119024110419108728776493593224047028714892450848334359837014928018293693361148636729700758081655742976354258236226225583336716203092733475806940847465255731348937345795681706614263615593743547025005859872376840532545446050297332889296537686820676225104034908166454568003221142026571435012297318308520704998335720679202953725883707326475740119085797802613888645866414788161272660591942008248853985135816623607555761843969944665593974439106303529712329571378229102819807781285337424563918339958122143719186513631043433842508995660450316078532831484077299589226075278393119063313151525339874827827954723457045886806637917046530308739419193024897757654168594456598354966909856674366764549375686960071721669425691303893089617333393595848471220502914755545072732531764310455569368653074299986001374592285504802725226459322070852517439246265175322034550061350521674255677224684707397360368753424538076298873525768826777272403831376353631669425623521929075096640587312890918747517038782870714000971834859605808495207021169340433229115916749605228941552146189131401206717558480120131074296167212196132632461136321704492688915724953267684546674258816912601669423706074077379297317559897780342634605421397215880460888041634397777162006574731853693057422533213048772877802911721776820884171429618039630423434448228815085817729995868494974260973921711160475721429964315629238357894597642989448184252193450655551041431123048875962930212978832089105828320025553574776921424637120610332503466078211788181531971999565563017226562752007708656864337322720090862086090776304904656504943588518337927610572712480588724618927964673377679053095590956616448176189637050300413645557314327732298021997225178787107967779669639081769042607251313666897810701025051128606114225962142592348311459118530732689842140768320129246817022397074677590430469104153768429575430479583513056904382510914150475979036755759022688381932484470697200355081238263076113578287184415576139348890548019567662038013099705237417661209472767711507942932078618157216761927410784189982434245997103743964896240975712842781971838658994299370535292029366465287191416603042432772113789186807827160870679907989217160889400140146402692470851871599280954422322902265387579681945267975388850557791505327250559447663667740990374865101799000513440693363356620749596181059788972303574004457151238208529142810707214267974431493187322762908118051944780273447210284655096621847012584430964616545621085675020285407942172675284244184441229524323704033903597652172809055758612273850869715102994378229504429448720878015743295896192832232495448003791319421801683862841527320550343022976784729218711881265438609425766635717342030250417923511671842722147901450406009641242988896138210901454142799176100885353893844029916159263516843724950561653473003335407008736646276744321051290505746561319672881630743518130264507419477899383314737854065773635994106734855639815853212469408964212199030650299447372843882571027603908020499531594264437549099035593074865875490871194323614120584117543469812515480789467629027136467576392829739249434553828820550512612248686153619957005559308278541871847137655012462877972289673429153192674484086462588708776272790435184784247924321952433156142945267256783812086910855033520008132190967715879149951710362613698850192754365378883210732886159955574963044761334280867054698060965137108808147717856349284753141031028239236595948874563001426354560915714843461408782303155078041285393537982829473433188438265762574909311887929932953350665310264752060435472383064812941245946994987202713287330123810474105607625647325821836022213254402322238566685237608640756675534560300575747063402075054809545253980047727434557905633519180116796970798821782781279264653090755161591104568553248777839492594803745451910054095269380354350409999869737268778057341899020393539777111384542352825922959258196119416013703734289540189270593222694416023050415204981903825449981189109823512475632903559237576828935476160369466249362979993752475600379038773372767708583811898641400878595918595976703333309413654620387979563788681939165019961900464030951098857274401231043347512183523713603624926021730505757196988893986108826445529852173577280930654838932673627293682251883245442155040067490122792214530560353844123276765439982832384824253919397026683239090798515881116339541069989736212461137102967780268101717800619381762775481622576151463671513157419797330497281719826684019963569772180594075117301237401752494787558587844961820789138539180541738984050482416881634765098229385466100647604594637319959901185265673122599568581396488450930293858356341477032813344132938004891174861147345314252166078011946722656974919709170775322178877845003488760240657359050402412485491236746285585998827729106135063054357294416277937179818053990724908274156429955829622448473467827346332444347584332489274658099807998473103568562533775215446643333886396161101753645410654144619935487541428110386974181661560354285318199180960382832976191712934564756579804116730918399804324449288077496663564936300101741044453636698463949031674622420373936576336156924504384859113709568225612316107930051094070337347941605653921635518459214320486870603998291873407941216349980820920484700245102349945839599250166307979867067675801877438591039872105952762194971205741962052874644503742422526898729038683501842117146981674385095639706691371129231162826168438474552531956027138607178142167936809090871992005493834521681233652186046138957545123674979370768194146632121886733137065124153036817709184618814432382651476401238061925926336756783111801941695440206576876336089803013322040839358616486130135519724912868557847587140296169572810946623355860379319668422156770626449548879389592019394943863304819067628299835391721625512723674071166028108236463403120963425951544681873168098808654728975221513628568539430414199765734384370240870401654494219600740387149448049498748517127288824932001913411975926404766599148545946410505816009142764145582675553687938806989679429982573177989694173652231358938733318895277191981537289126077492690119230687450471460675980355816097111332129475873269575411803733977537564142393918906850974342975312691672481721543797183839308983751787167234722507615004189814517186257873588936115795490378840753473411363126295020690151511370196718854061997045926307613704979200850732533373800829681232877227727180083055113787374222596865885767617281768613074577611288956860345972176102306985005633557121743335808742242688766411823967368991534217240625103814087207771629682584189555788007959900507328600873661337823161750204979935791459471975766959261189643423642666627379211458784813964683891895792139324363945777198350528447886704587620555421019581188158975553198236603537445361592505071725363915072560775839977335632395204763752666961715051486080562293336073467786170193958035477976411338457466200914930490628807316021596903514964442851811892168904721254549729019724411880602446774463060407434960315203530481530555777108728698243270571139799894055333897738443918422460452229972796775878616892538716624586082390606072154163178791571569396031724060914367795975874857100074201243540481524867303648789694387022352356809668492088313378921779855762923469911122924821991424537406061526565179053251198957300886721367052652996970320381382273236577606808229820195598825908744395944735581539353238497780629447244351012321665882130868393686240008258157305699126111188290437664609717784335844987746212530450116649732209824902497457023311668220025873545150895863673903142887177798544282489226918248871090194790876067808690060926396145420054603268658677947914980308363560761507931481500933062850436232867212420064548781570972133883827000966327736364182110543162104114690241186949420464152379912907536053568899586827172917392895220060186250664297655510638706014660822289973241076902487253961928628859506382935397229916231829194227071075007165792953776056034828294564145991861384062218683725446887324977895967523694125416039602261964324171298804908807685343303767314036232479754466229202839728387418481896382628617614699461616485923677428573692375462387470721760201580106953525459162586127037691639048859303509274732345355774310338843738848178647425283413202053490472019840380789961590937605565960162546994466557070143043748813139516049654512576833051590419651422351368780082941799205288281960290022506512428074013125776576441952971866085335443113309676842284672005295812899997224369786781530417213313227202183981317673167384340271175275261971768044448834796173918573395427626510238124507552880931251645632215452376865246661200051960272041186099142109056987243271685019001868509922389959141808018267640985800174787042886007591874062411406334234882467819876034552434102148483945379497949380057827949863488414181711692236792747752077639801001294778689324440645596287441793692027889838424745232506065392926805318703923194761826305288947166139650378166733334910226024449096097811572158888343180468088657356155972629316417693975531616866397085089210788844404332349111073385192179926460883117957428740814202771489943154679361309351504737718132744507076731548191532178705637657828454635127092702253932960336895405480232912421046710035712705322532687565226180561102819037615551632799022612846224194028180405800873656086077284767443198600217151658191542822018600704084792950991767204672234251943105584704838951569076660493892685923782680198898964470480507267560816207545105669038308904140957635039199814953610543757861390168783991090167522287504118666930095175993427510783332263571852395694219200049337552811399312663248525137651828185422738215240989401897610623721796533588304529306625418743013515547251688447658754787593751363206422774097649418238766432830167632990230613676327296405598208565368983228830107598061804278540745008531433017785193328071824712717267338936366810987840068497095594142769577976780818014966194094503884677224911392032317414350871971663381303197243204668697575308610357396002534064481183571234764131330726189225034584254886186544367908543430124857714599563409630188536208159252918455167856068289662847386854767978702580250285887404160003677335661105060165434830082162213501991526795023432008018489135542350748217704180050955013592351948574408861601003263944176836696649033691420551760885656113103833157240107942926114118532598152074189020339141966779895877784711929929030788030551563960637932056072298718826621082672599808838964536237973008904895281479544600683054742780759170405768171677408176909081288335897711956068445614591988760068772943985404247958279029296303055098276741924297895365349092817937169964793852985174505158609970446835884701739613741431759265821716271045328339677029573206989184223330334281988135264053117595475797521236603553446612789691448197582768319449608500497553315953519350997987149426273846433476473095835958402334943304165524817419169554183011578935647392879094017887780419989446781300051854396507447281815560962823086111810825940599184645313210014320970073513789619140371967694762041711063600216390939757765480191156556601744848914027786545098495414408510520672452931302803451702396006181269169287397148564574551957218789859400641659328204244053639833575448684237501420372805045931371681421431546064041515604995979535787276434425730165590122761641804168787655949659056684788471380650494760621060053716196488467066094030829567715984965605990054532831687955794564814461563569609655241238991936988888085004813926998757731988960884971064657641934864449120726290755240222337525563255896856157859206128930820316170758097407998738247440994290202245001106939666367265554946079665517443294267751633199027867750979229709287991610181528178036965713914885204407789285701593806628610055516800585083509972313148359249009972704033283749339031408776512243795022493286136303756345056405128763074510232338517228398511934589489878710816109127959102469245089110855975610747024500900361669304416663025770581662132652715498368049046654972119691476048507122136051664644668631217484055789005688556634389552596151396633265618086538504434696938349756353732261971856565786016764703191662603966691264885115195610190932635948451596671984678194534226837841585711939247071622446022950071883860545074676803314127447336731392880711887155612777603369612894314332653327442494313981249634741794840829413180059566836886947481036655595147944353989316694450341757490643806417792573878429491614670137910142007887760184773095183061330258163745826901102595537415745668735413725205373423580458479666410140517928424200387744624131502150821535009964542601390932411972757048996662750685815387965681249358160819354376022680936673231330975830864033835638251131320087355677350292570610462418081611660486232044334336768700620211493214741645368161739140377699169553549520118162427899520685115410513087611615756672697602593835453722088591294945861998418136685600056365005755520211720788996360634415120745776390733399459053399694324655447559089629171339115772446249509214603668916361566221457577922426624315903475482363824965504144462694155305155532060795369816096387144697531673136840798045307360758482308224118641885416641214539804007125210970422647747279152666033291938325225811909426005519020103776592925186261037366109741687174124033698715921091379566635490062130220022733741557033917026769406356182892474364457664620966396268736088474037218613138572655895714368073910023274350702357246025245858430609441538086698703358814270418325010787223519110403062041358827418778845733684377830860787295360125279375936894546516430710259081452425339065958968241716593488417187112648599787829226212575205699023410367460544713824767103426231863065551379192730881116665092215417521369270241837249375857611162985978039360225381136196545498598774191280222372892432298234893608246266233600344304553113220570463933983499691855836555904029787254154371042579540792191836967673915861642946245757640108845014840254390337414964194377124893655248898562074702737930989798782211483798833040022311444025286411015381407087638627010144150358152247248483752314795277882601554626768407517004973299963554032284511005844346205276961146404088528912451023722555512621620474693301388952510037387466906141364471888972893002116654145867469492566498323673190961859570625845507547521237569377653557185127798015885903585061745790332462067745250022545009675590091400958238032107867966087775692219538271131103684292515593982299266404838148749817340094200575089386233185953041853734194889042964538026247454090428755003522359093108840344305463646554930330243841974889724252067354624574377593709183285096864084295595343258889593494840763028682797291320130522322865473486947365300063015854121726915349352308600659467942008479539521810165169361187636197888924672289365703357049420629966398752632982154665469995806087826210392029896289658488141788527116810851186646734658580091118330268752674548001488053620841726384484825609620759268340915869479962610679770704696702558366483566822103999990576307175705014155655384843904394935621876968448991809196665122312226154451283380136060164207646612670171280376929138546475304864072066634171339229887824123912464360225959963494366689725621644107892867103955137631412712975120488261475953346990052936192241829225174101688920666359249838653757059371049407371039564704585197059730545016913189884383615509955952183549919559033791373896199912653882889347043242294412434539083160634812182280052370701903983694339682880302799665805292600394783919072393106538477493922026902405851307051769791275294852164019957891319735630343017310262703792579574111786658706085328263329548527091997912048161381799414009542815907597436753031667664796166812011663153293176352964593890124397454686509805291739358754283498989545076801110475537446615693964100127885096105526863315895466833281231229220736297110902955143537150652117030880366443492440214518544297790715672253117295294560110421472585133361377843795705078132494885890122931116804394202311632532415222243177212873092781073201079583973011832218248376221079567094598252204745412812279430221547172826950865579473736168907300112665998712193860313966036165152386855313219446135572885952294985475948229982935123311336035035762247503303769844014518308494054525908403079820084813660277449255558844396272236811805223057898035671875272019474648313418783231274222343482180749030570026973849438323336638187823551478315075917079299969341709621510053082400663112623867179709379905831689202772205881417669044526390859310788492014988639416298623256901001729702734047618567559952189498310983883165497047315393274439614092264849698499815415405128802640514259924680735536333056196820387400458894924622377042707667678451715302323084880980941449501211417882689648607424924817545179855781454116121505130751661413616584725789959826987228446887224096172718795630253987422124055798464251090198055247456288863288475327610412530570030692992350863626019770159580020098859321878443887289620633938436224909237594370724385717521518975253369492020638855779377757936166159956432879138175875300393554438296569765084213366558015954360386171268662421728040485387433181655638567857117110025373591968222591526388571203469622787636865176487419762922805186752919713096172601870101545200854718603902979585560510211696943753810500018287994754121209281080567249027292300513151382723602700537775633192155634757285245052935042470409737287339661849843540396579217414070953575199352441155245902892607346446076292607967431630163808173824132293107674722369350739381007935413118494329670420032563119692873855879020992674530574380611041105785266413955846724199677110482880549974674915890884058409937602523005961577663086240367304575676887197819576123275747346357623789213830040020540235770620323383339447536751608191266307778629476003200746800882913863211160918768151670497014854997471852709515238303926147117844086709176553289129453461860513531554557850578967785147750349837495691585749032560797656770083491280865526846399776655325218551394339906848898125590836426626459390423510947215545908809987738339845920604448191024599447820334453840673008343512315285064584845061622917706520424331006008461738759598730734409041061276993600669113144606450469503245826407761403857901951162218064719359976652634959580291858267163150708330577796987097376291589057789442124455989825242155502583298177644447335045255312783792615522199795808244343244693056054796610574096358823296150855019629763786948741805001113577340031519417248773681994303334824186026301012233685485151694036996412629536328957566742433581979139673072022879153061138946237066668135600254774354951073724955041052811083299698802014487868136246132419051524351495493554150699474667856010810824491639442142500881215462997066831548731697941139094677532323744053894957150794382620645682235409725812996658695498730428697569726268526962260094815837327066281304585873533782032783547314131742388361560045725390728665488821121133101571913496394441573033065924123530486634098938404411424245004980598261311516463880491746735044408439245382525298665695373791029584741548355138614248801941869735831206460314609801768794515462572310129590405245632207460712538824127896435327417188278879675031096868286999227803571150552314621556051582776559173419629090235317843379945696506505295108988567430653753171772017061873575390646108797096875511524380929567671909386569065971718090220913644821665444620653786641833112154835134646041213170269341535623218503615419845960655482629993179097660191664301687914740022758359383995682703415647632503467036118458287065279667437831773152162138323840728117313040043127001176586499818031320893546222555310115924105661312428774743416985554262227423661112717723021960909399788933494099075455370924634881021174109254618701075992042719539470097263872516477100791886717767868254740395941512034255298213401474644619630475182384899967179864909466735282941548575482677464389689551802731673403620249949686546453210612425189673707102513868738508126498426671811977126576515418518654709076903556753911503602238046879968671186331680836072612745154222417438505346868795453874324327078732239521720739898663469400237402406218426674803242875903339345648781462162790403616779377631711984939139654274414133343727007132030219524296127936006236546980531181234352308763958248542008993374447141697553905188743715092260358214815165869654052085271969640215588009333788249149112996444812443333971677220229509801781995903766422685815974695789643480217990051418860884144716214635712444720347504163605284585402467871649806074979008793654172635471024784637487996610129680589402244283328199186257870858201806025332183847127066155329753038392469403520507875700928611030091150761546862928329294411041927338361634038213494343025038625561513759592810488091142754445525976193926357693630176354010853456416958824438594878625159152739214747729059519414480245558631739248780604293951772767793654119362364291267741468174350921584472443916812447906476219121404214372152726755716962992151402000317738704881961457534299457535381332247253359190675358824903655457695091400879085130311433293867805952958363783414848282590944178497758476330979580726187079834697090075450284281742898414653816723009815233792539646997297495359142147867703163339168639395521634804114903861866357544545075030409114102573156396030067498115194526763241358310512024554042543426438107567714445477812496646665371556163489736423857954833542101471045091702996949777235885507094467750778367883946391617827713874095872824426537748510748721951976112438756064969428594208078743253490272028921544802654433066796692915316444953348983746430015904229324439931739295541133758829790205788439968610934620877921034384563126645483791393394757299895453884086221551118903544779552428208766197983000487262113642911684176620990112353838200975000864418125999356670364894631935654220907931904223316537201778701239321581177905906812042480897244552171386930007370387492289917278233978107347498497825413114987181047467356001526074841376803778886285153799986772932898250334626102413515322067903669463441794057692914331623894120332102267667478839901710180739929141623216399423683202372972518979607597954167634617528623688326391623369861627102001132827304578513980614604212418479124254482169263331570344848623232879852220604761593264967441058397820253245774844125102870080275845520186869806151698371984790762367921533174117091004442763166162435524340572727330943037175874216297611170059018968555726286075517144865954558375548449363225242031917290347136056651860000316605776637265220973644876777819872888918833701206798542844607727191751988043961056035579324466592700496861194063109760263569646942497944595162895492203547024381614952809321419247276403133977696598643195101802665688508474347340821967065915406190340281558708864916977946958526451267412759965750815598960926865715347607391127470025826980246239955658583601953216392927162276108236571948174740195092549576205871533679371648045933418835676048221985103458432409979911904925457905500642994403389101824339548396464679796359502379126491658325294265499635359991436258875553067191913522153138003810690365596329573469100338404714709928496826578144436866914904680076186406218415019064085712284113111104212830536740020840620000355318294406740390391329810694458201890770591731594411681740823745847776081325050849743960365677173629431383008060392314483742281384863131639289098278082547597779479508989412795006875787403124264642372634959495330955709754077978042976063710483264973525028616608024821873138265051538846341754234886738212531221945497311528312547344296206434035304959619436932696000930223325826095285968335682239085678676669403049364458317881826469580380505146620731662744168884072075022552406280474044904213090500766987476817662030063729981251034659529735733629776179809865641972278488800751958697010363001345717803289695645137379291679229313271257164982024177136637973228567455579485731732804732061133005633965737984300274993189842829548081584503254992304206944129335876693780295061570945395300029382328841715670058271503439024295482611891659773871241006243089856984786178830839653151778460165706345939802144988140715240664161062462698302051648918827108869700159628745324324180266970057334116454548506018403134332637557315770562017263926870550174343256665521269665411775993487698940003438481280510333548875032637803036296062684635076992548264080225045842822114954587430202857113725004006688179646084119988359635174440246459277146058953024536157884088389805452308913178421627331508045801871462321703449511797772209547037423455023825261150301350166384659551278200846469851966247295195442753593273020410990225479737750501902758551943916511416430149467545567544773433807762218556303167180072735214562926801457920342730226805680324201756358868813642716737041562198766207592437998609850208893405292172976329503470315497215539074225714154698463315600348803239347009051447031267656651822251274968030352364787137544382546935536066110711583099317072657328771575659211296842021327430622624590096978307518491509383311875531809765066705056212571919225402142858158141705774661289812866966192150718780299691998618250728956552163894593541299199848183829103268596590858620988153123235883720424310402672706981047660145578925962545242825024989961697992416960428606457152338183147344603362035903567960715302727698649160200732915807939631718762581099617744668610799773351722594540162507018088291484303031722721137333445723850564885393124191409949903101630114865927549278918211047231703898534436316013869060132137401546037479436510481395663007931782019428337095667843122355593261966973232919282645580612374343221039358398225204339573238581486788436036663339512557574082543870440761315571308201243355365691029691538689414541483911166645934072373304384112221502280557549910331119303743620725437588814984113735584309898688274879986250064819891931862358501865533613342001437308374365097407810680871274738787207953391231684844776624091360212869735000446661526106158567348749803428087079150560325806864129139407603555047291466286386260967049519762246239192008287506381413577378407843456632212746557752588569325583543971564551516165819257425748203571543573065858895677303490838366105782250322105382723296931183145080324010163444306042918797927873337010107680024851087181567670452469328135721538411832955528142064886161663367147830314428685926642919867537395109867483194383191143223810938510821698065476112564383097008857944157925572786318941335855255136580445401299267908773816250271459343922805692812984795656086139971967719582597790301236182694271420490146179364010514798509609862802428942007773378954145931245292083208926685371008465244603606655214602082213332555543821717426095647255919945229845476041095596750988998624649025311819500843915274288458622903684613663977016289130662282582683777562089948056711430096737041724367687257490632476960315488104171873585607144251843238631773154331733275812882129226477764626036476496330021403463563427168037843225714624685234336091683421583243841764622956474214493385598335769576617762019822895020320475297943377174514290387876511772346288207948654316659248533401009727390520370202016172358107012559755864604260610900228683778864218550839676631008885511907826774400658805413358660226507027973287622334236235367481436309620579665175427073256376515051664591844812492692946671309623066687140407133186855651740917531983466215436538312105788215167555715130431911348075442496519151466698944980332553316645234880047299555390558515266148213741989210684664040687249861948776449390179628495554467554748607798045307019745291433996360370326023834156197857268394947113111027056191555998802549632712684355591760562632560305342772417249891938973663532150336924460912383326886323883044817170741726985817339818930946039581508112291791878752848183521979115893459435881718559394609754715659700311395485429385334913064369856999880366800986829381302447598219096191553299654779853326729261316546300128276480315726039255781432540038319170823497915082889702394055993400186661478132425519306883456733406806275759049845867219958706306079971167168039046589988573465956765225505913262062703994447652483386262822813621101747064671011028615847900440548138701181643925386104075931737695920448016769759404176853175770450138876312145651575190335930984190484713373794249090576089274748311191217269550161723826369487258197149054386528196287013047095241340894675207478942690446574027373208071999766718343138791505870646303974247229052630125003294024862142979082336956118432628249411571276949039579819746324430910264364516763716322801697194505061559890543700708208001358010618608180241874214877029061723772839068967483803080270287951587200012178278783876376213217400511821302498017276378806600831308690891255757544617945626720306447510002509286431560294145034625141337723742888026002112179323044228269663220158373977433270028822157923074803712845152215275872888158645694522849677847985393739436704838815888641810183485597027478486323127087228702233757721695277178885389712202930529663021301702755696812113552962419287434424770278780756931514650158345097730817233838699118045574317117958111568978381182774223287433917692436090216974000360564191187140139975281454153887969762337820198596657438555696093100116125703727305335447011219877396049584387582712304634698260325159255385250615467719805770985893879034499684938212690372144655811930418918520327833583043889365197349837460876661485766195912625915657756710928966068762822491403913986334527880474985834304367157330967726299080220621181669998712184943344995514220891809539360157084356553193359317643421645651598653311831923338271254089053577105500345262109791277992102156505326796824428973284406769904292472463811740052515613640377176295794319157100774094549089488013298039002022130948495642488285913156882779295056169750939725560556880376132821999281074983643803067611061889739401346303569884726387929584207195826270349191788728710651279374205180776678204785331352355278619969630219001490577167889382694056693355437182512629361367727996715824472896074951666780229161388826739870436664988661139701259653359681826384195869739487311458662520821874177036126196729805955669405761175130065933233695708267337484884981771471681262592419138986851265319979606684797311070058546880737606725949240781180025470812407944988246172944021936196814796446217565948368494499140632161021655399788165296389393001492618885001892629712253219744664925946286680187261563875950855653493722116171605990583470862682705507535137044646573072956880040957059138038277273323063749999909519626312016000481328857089727446983262244310935480131450380306656238747874922991727650048523682416534643055713682353742155006455074147868295033533823286474177097691140232075525234237956998879941102213940583254990517780395242960862372760115175953206014934540130097758148139166540892033378264221839807373402332165703711321963755966354219348712093782190767019659542301288715137306791283830485527969751862556360339901313172406276404713620362396628725990293674498356281948379538784402897640239745053322841513310425683018719102503298093082774978565322025509025421666433438982608511267777375244145182322571081993035988142525326916315608217222353982848666340193132213074102200340269223263572249351346496552315900839222294283895763797706533394143277093657471417367775129720182260504162513638669660761106312818215523145418020385227349392624093856304982203232346101842708709336006225149367318321985182585795377309357083526278898334489082916051913973703969201160252523952945571691998766575371305239876620864224018409633361454522605060551186471730225733394897798628017871440087993603575025689854924102779320918982642971845276067742150479171062448569528743694953262272324709700087192492788343404994200723629689755711733656870433439905125262737441081815565978300450769508185119276753412985965588419118618396641332380669286062469603652799153910763915634764020972815769194459385229558424263202718146445177135422520181722253021368490233671696852910303506278087214033603036062399188356921634893723451586326912140923539310375024940249361510603646449520799428231897474397558490409961305302224591327327871837262354554740250271352164701928697172125431316791797029754928757576162395298499540690290577694778889575108550807106071703591180644662145214017108103636300921988102998641259942167280909591408810561988602743087611299755658528859027223032607875142150879949195051692973963628464436084310600892000421111679191633252166337254966651685920826314026428103530083960074679753856390598397089028060638263767205374595659597341929583819986253398384976719916933802629883580605503833086816921257809367338637094459730957562952332760525314697415921913646538236073527818895181835350581059985839154119827241900304071775264893074591077809996667249489056120327516652161563871969549740027857069373069402193106702720945811788528050300481710405101933671207087261525205370245566793604271948864285499466791183357467241613807585762100084669628246722401502130611259673262013204895957973313741125967794581825280723234125279951475125108172303943263885778957601313876681431573591068490146255243307201915415885439987899533788436633643568348147200481936422248761234663465548221501668375170233729845180236698690599347708313374312231004150161523625398933132413629817677280039984159654638977759511814487938446347983298871822932937393858649798586848589713700338093159418552805189008258802370319180686459075637335539071334276950863956337745902423171369530981889971691781528636235744981209839876551136085432498385294060856234048372948542423475558407691083379931541465683953219654403753477422022336756047088818282767620052820003012246764369207835600509755540426616060507005812362863617731860615322674526754932852864558562635779846079582124113843496380299439525246533140407751193158194617410929022091865161457452030011490734797040108266440959736284213152872058459348897783480375199029766765460179459361816310975427294366668166553267506803648376691705547941004940110184727217441984286923091503912922049782209489790873903355871434164341913258847909503945043542003532663365036042225064987694637774042936447478106329965204836083559460695390908215324537017072587089447144187058708570850670033377150915289908529676248812754087396988337548728240703381374550593968839691388587414517389792915159867682603110181293831802960694481733581863554191111846586449901614260433449736481528879810713967689390258857681385228547179849300396685829604239085721089669765016797539703239511522997834898140397261736894263468665739188474493412793247492198289020363410194711765416768111755896334925555470486957941683061586444593660169257112388228425473449479112214535757642341743145888123097912142625031106477131006785611116953442454749676201120831935911253696877323607868731718601200849421037044313290434377895230859225699298133885645302603689680599025736025617155840878486336854817557266516575773991565637872498781276742534110215415254274677265851987408397509124386301609079882558897654573743337891756956278786499243289611342280389532396780679642119612139924949398702394168311688752071126312235895477722817135619168065778891734830036458004766966471709153437062383082648409705751479712491254565057545576170098226238739106164493541701049047166257411391461581601975480655659802394127837810582382082028508464698785705670578216650273506228340785685159401559411348221710099769199621981522264700875059485902987390191512233173451154263350199474993479131052529253649762743191399394826298419679014748230438923109236517621557276689617113722737064766887710592943334938727273116760165347852324718483191167958846216335304279447890441780322997721377740704369983572478407487285519139065144264520909624627358891221807753854329384641837643768241197046997845461808713776116587280094549734016421279779817457067967737432835347478387321719499634093489900213594744074465138807553577221902723209012028226420425371684060637658957270387516847664539307973043685374444512787730046673858585338775310847610124640590016479967113221189268496646100711350700002234155496685793818969413420981078248203326134074809009693962177221081043445293600081591097346953526596488307785111436318291583888782288374009309936414474522096797250982005189875281595199277309059277161919517598907613411566934327385481494226961047006522297988748541189417071484597080837969374137967518398883730061573071254647277898186431912569423689724752792420370945840898126426600718506084693475937052097956812466506078519728753532360325765016131542150195625125368916241767777435963113146316920666241519465680194853205813927817764641000476890825600688496129820572722670669962470263304222236829301530838567667815761508084509717227053952566842409556437849621048210682347796012423672326230910350345057167013647280397455438161167602209120865627460054093387396628546245477533915114582783771298689818163633796170030775055334285246449570131781441021534493410816787792544620898503506667504532830129626465714877046277288336684280975090172518842010292262523396943247417294495970392633425479723577699224586840151429243693801571050669149237282820423226023666120068908048472584240276354202254826499839206454323825699223823398923661571929276011132273600913062908355351796612641442737187119783005137543865119032266417332689554810780762081506336359867060473366588244406950292928074031188429754825858068434486355975634103613583577398297875186229548704516838773869597050031545389916204702463040322850554404659199914185848283256614041378009956826500623398274561084866922284079706448961536286870401515787425628013969379270303989684075822971412304724439303995867392490987685460351312869427615219707172160613197998712208173142077314562375075272311108449655728741930590253275251934403832244726013238069666739997725702340993176530430396373592867722277918940062186811085601309784074868039338580867116048684229301719452297318357322793320309666915171380162117999235107551167680554265530829660701668016463953554005865109191055515629877996499944043315514288609941838955787176666142069944274912190253143914496169968840090086531909265103773059819043904718969118520002668635337002491438855966758477116055999819497127573060333435347773630828091918219710088154044935838290753002674486366803095614576617912640674757427123033227778104537629336488405331504372581634526554456272881478319437409174112587871015676503958874917604197810938786328973589170284013998509678876023192377486773531138772090701565297684732741324411950592889108994308497364196280238073220516198511032042152143065005182289772850238428117342407085142613511882476593243228785699000593542089757286161101929603904453883629556792310569022946397132360672693338373450303030719562018173791678304567501006414202079055972170739665573430432919025796043431825331997390911429053483699885653927148273629035597395307767363507287783575757347653150441183512127009783438770415188791743724534890913065226738366488046674108023077664735102764782881412219844047161085593964247346179026882292897891160782513549252305866551954500236955932793354980441779681859816131936703933063293546801532714438676683931241076162857747827205856226430504341376252445133878080773027603792780657453342146604453540046696121909711952396281773914754030154012521801477717474412907894132283899534242077159141767043992303127100096102698916805702786145692510990794417118179483222601129541143881764222413159439205713046945404904628545646161323344909901636584026000414204966166421427807939868183475950928182466698408300577565601559885313386659204058576871118155510468380132322953683003124097139049562572007609203455410912806513581359746846166475544339688946275331506677547299294830421758416339310376845835844294755794193356268258089864807003327026154972219415743656469744490347160193142954529091655592587093395955185905135251983237242842506001704975307195750101902489038099576693530992994322373812185400027636606688580034814144833094006946227392198480443349168218053248200699650925249671439388199988727248716267923915166149744474932732754933636280801070327445554692615593465906383070107472369043940857430886688660823475291904848649652079790486486787405200618348553623637695649205275074789944105889295452084004138989768758748247708025641129645962523370608910599970214241036907246566326360054320317394280828856088941321032603279792636235861611130788453874087439575547167752743561390741790563892148770526432422866022091310751560013009786683313663000095215107423878428447877123229837844176134494793793591832633366100555828648489723550184378913892277776556121566861127226116892047578012785026449451467078867115503214695692527939142641060279684516480036676999324014278259412835953713198902149791389392267616187401812639936966111373008696869453202286185320938119843049579794219387176479606940180460375215370638112687133615727661200706982678151556658090972360945938721518247232841997281733702163427614204677041606951599471022577808764162069684404223103125598372654143924990378167837661782021879735403991364490730863179816354936069367634672887896834966011611397228897442793620746633280683807845337782834405809694967037494411817659409136644023447153573983954834386440165803406194077326362836995583895811807219910392719379836347946731229351358722290680697455532980822513647699036544278481116560068574039086294853784289637452521906620528626996469816965389548358264730155705081356327747147863890228391718862266556469134126240689969256431720663622277661989600919815480879188267684387136345801296049556565233412079568070621430388594112154975917383219881374525043041980790730066650616085493882360651595036490635929368087212514608775158230926324635063161848874117452746325038698600562353806354732336177642897189392801828787180125675691143058818778690286028264649226774329381766678619499203349805264762520047533160415241606919171692722026932247760511208922266409170818672925584880643544711519283304687441662234674422551188984130390039418204411809650743259891331862218988989987573838550541176192694499277202067198947922404806833983413348909591525341869290516584145930677353715500744647366909435639379352344955393586552993296622431646676576782320342614520444902683518543905292321498534653491421860960451401623380930090003217114529191321923999704307811707265627411239637977168422632672036872705978039166256949945439387532592972272866875511157742948346787533693247504846731126848720573397677717295176217655720901190945061025965441409324337906102124255216238146768727573150016166691986142997616065818953497725788864128180638096578575930779700598891645649237780991664939559262858636807652026501880849732181587464638261898574558225874238569449332972271210025149811869872557335131927956702129879822488046316169141302072339837932171971539574664141594742537668654401749349545127635818853599913440249259468643721066669013145238047278192963464450025498522152393782550110755148212584586560603258524718341794892194001154994536067365102445158328382397672643635565988922233769611939977106775634297275698007032571554978386108492564259540349697094056608829882149472402147045773403030686102162666323504686164449584150071644467405539403103555976626356785370347935976004762715172683463971843116697325570509054001081799923297353616385224457537548688108801413488299609994905003239529881355124809937635014813538076356383834328141669125152091629951521356058178372731021609207682714163629886593773597579718032353314599526940565086008315905119437436977521011362246344509316917270506201287762033961397261340374461573681802777170641003365082235119843796127720496904541333668489926895474376796191083479458305855394443758746581815704481173031445411574891501192788446269829018939000241176637352361952028026163990892258209273570299558158783302522677487689760973455589848939117661811921523943121876844636893847641942623499014874273626619667617020633827153670378882530639257697328124379920187659872576879149575907210779515817301217426724158979803737599028603035432339379544415350179650993876867747217887996319269450701165302286500645588194722589928164034445240639201480518541906250986976376493627740442105437179895637924773894867514428912105371190306757814993691620164408366445328574921895422947637666348317157368812315904663822170306967536747013531625996252459006398887211510925562410933639526078441131723637364540846556224196075398897580558836935529530916441826384784435047171662785998618661243294691176837116003740924842095529980212912476503812835545773644808057599140746149668521787278584486082334050938252991961628912776338351449351531346720084671252567665307559331835041085412133276736727521283610306053605493746969360339682836806514304869896780940411477392634486658294755070123302714149878175933649045483107498078699196129969928741614433409043177328106697481177113577727765858802401970703886018608973870652897142684715841515260325525884717615612957807559629865383755572635662841635179957580154785055680588967858433418796994502141903016514561903719627350673025526048876891407452451422508661497964068371967159312086543324244836922362814117163845808374243264102147716888262808663229544140578819197139357209401968672855806077942960436787401689105744232136751913266279854278381506902143660235555109899797540968936003038701948193951896654075845174518925028825284889696053024776269102664118258041164938588854643207826852643339604524114179424309296915054803804595585300720301667286871670758349616723898746550069058684443802163364904301523035269460809832729249523592027631454462935607592701544862203419799983124574525893594775730877997681437960827621625004226524510361490453908319651726817411713915980563611820103411028606855166573937093449423219309589830425038732800312579797078224819969839354488016785109551831033407235419444171469015423977616554214495575783282950281309767252229658524174920193633226767054649275627529970976844974318539181049440791257928535162844846189967718721854335997177600816120295571349660977395446137392993471982899924093285122278647950106396595233301505942712147068669836090530614819961637132356058792639817442133707582271995862976654427304780218892516002611625005719335775829469543844326601471165002694285564231444759217955318315913779051474504948431144532605332292586919068703002581055653563942658648213442824649392524175658214402550254499584569505039634616099723003579914305164425117961135612132425400457291158757295390953060389249093348738213289557429635581057215005340817903145378991494585874569131609502093757363328580587619311779806651730944040273855156117589445870077595503256201115794536026947700276036176102477345035369519966136601090934147498014835069769757885501131806284435676063684745892630482240431402857548295069202839653724568929438686406433897141940061187982552141084061461782960582517881363579270012084886599021052137864899562514377607073723277977930875885989750542936402337483816490190295775922171282366898066385928935751890445756941407238477220081419746368186895290495767910299160021608853228879060626548170461952484594545061088487440664323958688972525457636363336217439382138450152727491200011396810697460201895472399807654591411069313775473231318397210297785129649208390897504390995564172693514198595376515511305910950012788503080138868693319166807792525703833654472849975162456769176605094933466512673188417456405966222084268156237272469955950620882317508272664603665397628979864155791848929493028044760672885248366530029195741871392570171251160449663000358992375026662532324894315015303518251783518200694316328130179093115217091102440208423886873687019715278622263875136060142909678602557515135053197253537308931678213729907130590168078668224084283330749429277910792098758337771262717163338536373990567195743826948353937293963754714804514323589479749512617606963035487686018917358854096085337109943368778938056272622066631820645421481742616431546189398452250178196979937564834375905038140697236373543473478785497860380532931825170617773134882956345369771265586489560677097196777735321761485028005174231841224274372971845740484952512983535258800199632384128094722034883791624342635258631485578844108025648896138383212136965829407911413491864072358382905205423304524738989591607780589139140457237949195549968352234541212124862829584629277267755450120792612000288770102678614574710948043962704633407947244020485103772438345033901761612420503107422382570282629870883715463160847918693461708381393141557130523571138692224256860231009196306883813390559834473382134203789482606359658405351638918486265814706002117821589613327670032010480494255623026457444816925539519484607309374956063832260187261636924937875058131926319174425924489385521396681236005812855811125984038142678764486573015939343365666598851586686381416986464225244994945107193684433567931307143938358797934269524157964521977382229022620607299118477259090733103901862705613474155923682491601869676469904286665684321682617592804197981262323156729483590767851286636307755188256903959771047046804632714451751394424085153658736422972093487081063140242980140977469949018957339244357791861167400703565485937289628468807497375758759381408768336007983345683151139428195842228141451020608088113233639812478884826729763836209555189593120700199631967818381516555523859289031980045438513903790785604226070290960305603492817974650908496629311904785787315565388553312680683115130765899530514707202019934038350903244997578341315711885593210161986586360258946177434153675605097452753252016666458815655917402681148547846978170432314710081962564069725748154275507253447549826481288434369904081775193909557194484134242019249038592722489799876280871051953146126617618362305846353927546200324410324113169371203814398735950557370163186590569560856370694606474065003897746413867314807490748730986046076036905882352783042531449517951377386485866658275569341624839464902504193686684511125058927055707217732774238273465654034451842931521101891175508933793379137886463900645880043290724047647750247429754348885779094716378539190191076874741672878888980189844516758983693356288826189559153990953306616299957354363371516888623239887234509818949769893265781592785277894704683712321081243059982374903811546283614396648050438210792998114604301017015096880898668323796875314835479291137568816432511190604382126646958340327987816732312294293901248218602358347895142693227316182914313440292841346343144419628135124242827368178552032182294653398773716893426233012003425904997550684151271034184097695344771541957223137549413332315155656321011256704175659611253868189607578209035973717585257628407123224430315285343008484390667802449419730801387785384490216642611144915510067535790225496543248123734970385544818749614946919998266320458817514986052344325170192101085092600113783820290536494625342139607454401690856461440845010194126867033985737308877513553473671040906239368985984537762607953159088279127999383304961676034031955904073371838432215196731749989206316143798297725472856615376336923505840054884978855630438119893607109223710344850552808972058999247300767602455768748712408959421294503545957802845501985147563642732880077717062779943916983689619232030967886958781672128523981613919727660214910081722514198196870570327804063763812854665641275479336671685508989971446776307139229015471420315240920595294006594978537411820216883874748312752772936786925530568908702216360613214012140019808314894708028490211668202932565614871717397923588141674880257584952626489406353411888090275281184247985391772033837636658278866494723755417128108155111318902819442713055386986579172025608224158351690459465094279815768233451524216341440381501794955533991173895371922269895448763441777504215757231867668768091473050863083308555877928739568456229910466563202373771248899040208451707389368205885619891717529866536735993295145093426258883367902174664406676463601504254200503761033589615005331969016437989884878673082921161230457426745412727505109562949742330731691949659452969224529313102114321319880079498830868374913665743017860938607824588852207182987765240948514426251248326045683621068538537691406334913641458997458390288139453902704988739437800327470223805884166826090410149254422363231462459032293215380820463115717040731465309462630083597875622548714902372559029700827036831396893585704876939804468055333829372620787705620108722765801333711405041402406600676796534869565475385361351259606275387081607315304454698164946856162898666780169914127052784806449274502846699771123893892283129165528790673112724319806510112772259430200814920457888065029700211631007932672332571155025477637136154302643378094869166243274024676327137983733825471402036428316384066134072668355499294023036963494523290163535726323431819783048003460490084105355919496274441351501951907756222137339667220152453795917136676441327992609825530252584307707253960100648067574016361305126814376780957645749386399844694394659045054296017623027171410652196222208759556382780251635365995726051519201979239485723726096463402800939056986509662046136642588620703100257793309117683200363561934936298292974304192868216999796392487390049838068994531989400773738764483642832917505096438607785118279571496601627507664270073788492402645287735194327311576034548471047548568246366458166049322495940807199072509795298632709815888810197966580137333047174026574005759561971112373452747213535878126477721644645383047612788403614426056210579029022752541317979050713845983524906575482675840973346447835841615905582143046630167541393144087712072043810670817306456896311372388251529135255352231397902127471663564298457525309273864903269684500711402039735487730078243008215352634726155472139219633459113104768268578965369586163960852122108597594757958852750189239065538903896494865558856915230814337447969395309382450498294220503024980328769526886009654179785957902796892417908202698580934396968836553734398038854604422863263337367174433590157333739972771467023214534929256088413127540153546131551989850656172014804396645170229271372741979024688616322184235713328348386491829385071993737661726780758714134425581241433208448525513532728680127126339965719436640649178388134576066880181312627612961287152679479432380101651302959470584838645379227795458282601512597392720760377760962821931583544209890224015868637700114835445689770109327508354164711248263392417024407976735217808743659483059803471635828021061432653207981290439091176539864496405354452871865305905134375756389008223183834376019513015376676236192039583609943884260713962039261084954735177431719042203197120067095431031460840702540493457556062944471087975366226968304919542302897470211884861260434386564413357453315286047959156488331377158232339037988581818771999424097634648384831667726974637850940345748367741368677953148931982447172434599023022837282101261924617762631902222317177771438816703651286520488630083200395254713720220991897938239956803078365690454678375750071521697767578345466239073009854048097057670914160365311533973506308313953117685773386158644794214955360801146731698044900332986110701855326438470063652710196143593548447229995500867797072877753038643671937248299284784907132484564766900172349226943347013535435145273976282859148174217492808765016564207314914919499138303101561095870824568608764073368994716019107413106658957270451941088721159572174007677266698700689718647883344937897717421134947337916480251564687050468263486434849305548576288872996420186295502441251943583818628028802051538628867392342545463999781619507828562140404505779190108545989619235467514708027504378806530860301551658313799002033804724593212862372895808649090414837679516332696799901420760639533588415787123565832795339175344577483947890076930874285668335021158952305074020299018689430220901499519035004557789748276616136022534892073294438868164919886373457965939456298753927862381247350829121155041670773871714780782617023456883890868561016605451188234180047010430325559476930585961992096468656354421040498584294465575728518152218953126099565392068217039867273653276272247208676833478403610832060034680400048577332239501835531951219781735878407833669109961258017839904912866875207067438464352080886401158535408532029374867218547806280421458782295115955469294110653325277823565532180517834573673390856176930959407418393975784336711629035203661712113221466235781517599400147343161469166129247621190758958631491687924583944516170465772603027920474137481896738182110869695258802779491540723330299981532129635668923207469582946934345780400529870558668998952652803143460230334980724488814322144546317289023799818209535654329589183084896657984086569163352893481525401971934305984339775529782845442200220323976464795582350681607107791704706342721063576951143959120462324810839199391256019215944982717269180946903735195358515264141187221501059238461854455475812831650344473007005519917106209655098080017014386139727843190903000306170879607089966753376489905866130859031062686132408733486233680340611553745874660898786573313850650121432658242320704689147125459483442257711272145491204814308462051368768048222183121617336356495140639309377648021066682463788448014428172446404357015202636570098244302781755036483064470533431944218227874026801915603200508161840520936582650929817949281131335857052936434883322866625106847035916930924779712453145536967394836905275542850520037468713998533751458188745195240768617096856773717465559240536187019105838823711803920514384079358437930511161884218697382433529446873285293815795614714124229102002356473485748789629832457380106763786902789817491133347401757711778463145067674543571263563485248913788759527872188606727954518083211043342779545530806545571504982913204756473712050908499751391803015926726825268270379122204032102101841312222592633844327764202479507998516856307519464314515052609908972998883555765929603126286874791809959659089726342790935070411856681429331210873380523979494760670490152552267722835484483754643246324858013510764083694158568491605772416082023179106055049655536096310736590978241721722309676240054926658725635304652871672921460284122191737642361772236783963713697774244788221114812152162942887376877732950610421116387020667891355623677000434095521500540870100712229754148240884746979907802603000913838243582908872252952711014958618053450907865924425814960588251781712362226110045596089727990805437296177523643349452907240341129505229563202390142237668520876689519592108905933411866034813966255012075505090606745743407699017013984963792842451623689893090767265733475953349473726376345850343901141987445115469611972170171615389628570439942477212397923028554372981594591278164057848969476544504174512583236412749564027679749503847831027252402916043410465048227605238839821172185249150207645271550015069233231372873972459690150697095988453997722360054626411984525234261235591896910025444327564323397915768125521478660163628208596409839004624221694962774773303693148783064927799552650528152115583747375170458602518703091055086326894934892407599229693023004168556893354388498791121658587037517570372279219394673592962578737039637119020160053216685696874265119277792395768297568640405838084743152000998486399686288310768760420420289231663225676243607360412586585047856029376546576662858195499228790603590975143310324816579171772646562570081653161748445664543033134793319823277526224076192602532845646919730491397270961318315500463752239987427060450389550350044654199492080181023658127075214124618521286773371004413433097182665307009470496427514374382253281642703812869479105913183793522605230900679506504583001459375886849769766085935983794271258819954168593129988208949050948135757952195735777953968819456837335973236834676725401242644671062036836527187295454109141140715073456881526944174439943679186674805825417456336207279590446772873397001717294936350696971251121082375805698065751590936490441278008219816507562731982590244001195257948010644105282886376993958218039141890688935982816360585539004512603327018090984853568801989459725901932864219283150445889989875888259081438062206851370011500302753690626254661273645829344478725412688864760545646167265861658340261600074021447215489358178611504527905732392634398786601679051740242872750180241593325440760503246441956780830083530659481038440645845593170490286576371068776953303075504466840122576163408356978535797203992544509565109547580797574278018310470902947155583486857141978248459880273598319457426466316692879152201862221349196690705032378798994377991968251601430545819861354853740002017712628157214803142283860646103762941284100782113185467529323982521888187309181412009415322664028203389562810550631810185492122690569123181575841197969023003136688174705196323383725715184874077752981688998773921659899522720545479514731003421604910695875889167364452823339474363379113310560684999863573911063078445057118560713055597634375221546605249048446604584421868323817872408541641646682917789155357346360172075023472080569790047683734927570265181206304445674050650637309183293717812630061422490934907717991060315723036067989440616415693136410047759098209067009880986564685398014827585957012988114002309903832308184577897651192100344833430441084859042183505183717242123359240802192362311281505286116284916854742316036300977503341031388209762804350927020747086924562432448848102849217450601406786045361758107895311967012527752864403083101731568804378879765641101984582172457587339450978187451924813653734661733856370449852825577887975128120514241548080944376037410157577241230005312706537567989294856481438632473078561292265898150576606678414282515256280686587117965165796471879351833256867498548139154090676126037765822714706371523884495407207535058193200170148773599896859210609532918788400474837330399803349431476204551059307536688131728602564912121041504258493223361224521065867317871317212902945117317938632202643308012425924233469597516493554638918686809554220017009544468536357436270828344276589045733213043026200981633578879231767943899434045338035039366859628127976145203378508136765123553102792991207606943000075800658359738187348398725582503207476054788872327361603227324692509449583821912998094924630728974042931883758992592250675228137210973515914399073035235073842808253219909490783860280668891352585622398434175240998249532000165197018959673134824304707993106728321585579938027998377774929030152732958903694423397035562458634643811589533015442102492163355399533349914575626695395584231678297176789297695944601068102526942358542497460278976106474810103943957155967698700371444904621114779368854681796625180256602339106330246316242845474013627524212857500091411155399189206824265578635799049148971878233651730930653196354400672023557682309763439789063908741838812057419512796708345726870438505085815874173296192170223792952758014063717793855674477216224772801818279524067612096101664676774781293091997250823315654618927690840117770585997598788227930307248096299897884818507949960084794338222583944717928806764109918517281449464002232978843725780167736957061580705560742892907881820917290572505776721893570533501322895196205048160099164417700581372990523415196789748152487337574864497307014089015973057213984453060138994661782636118096061076510352085155572395547491477036370050614719978296014197520178622240439477433370397851522773946475012053401799343776617888516682597214817852210660788264793956661194415577022484376392231777127347850853722972911180225353918331227995790372303212374253472748046506594854847547463825622822284737509135476507518855083456269027364701105459068497763438549350842197140743809777504672012267706940610631240913559621980581726266701293555161074222884308715459067998092247199900773599589098384987723524181067635857092634571026645716991432310729579309531521212145650695363985164494867595551288177483070188735805775480145388788652764522631751332195520757301019102717449128959986871387538235075654906671094491564350340701038298589049590544818416390229429822098515827979512792943674472460665425808388945460374818906129951059024285798978554062157528421212003844880894858886278673265419873780192385543681702648115459386510786217903157845455932419178534476340335542710607052949483680285431814124394606647807371308077103259468107007128662172471926573458719037925548452085958153989911970048102741569603927347450635938809333832761007889326968261302657270123642244893892679368998325428420999063008345985182274277445981272796959197223102298617865958536393823719851447220175931921298228479196618476302961117218089701199951673278861815539360655552476033985911636692935804107764641696965482031492788792500647698688452987382429013157171100732888614690200068104953707096899871347764992975500761506515615594367619243803055517932495431107108583812413196545713260064429715301210418124399406423881783703758491779002872387229793949391029102596838267803458470309161552877769203244286238744103176208285055898386489334075445061295512294661341271437754407811696050443839919145633891353894206149276872296942561189763773068349770928095330979509498367337487527368396750094832643776084649879571320266337373458587044452149248166647617314688382248542614018735743540105954724292434832313371846476897014070441914710005391286211002591605494855262295586171505756001812673580166917665089678390990681139082654424972867692903772662227933734277088485998753123491961715770484506965496363797862090977928836131828691717981129450172283626100548227349293129136548340146960704456242514478386375373621439348206144364646589021023697029299695163996014253312315663610726847653736109544949705686770409479609664414882588610958249041993841597378742323902025081052512457739910697674263634475423773109906076869946641581362574796818824605544801517860178520872829836603147415636533194863616177996485981009008067824846280539258653151401091300197476970559261436563868192725964971674919126554807117827056996963206971989331143688153639662794830205142806489820161723718028950143918298259069054842093042443612124351695690083785102237735754594296972809863897150209450453650434577143179781660236303428229528760495301551328986082947536126173366486272773567077337114287700311692603588780449966541558181018118429709764079913165320661482428079002121292067667856295064387369753435363820896213192832771114090337606661974290788758118374386823441765980205524813485958938647845235372092077806174940426963914117422218608482216487749464436090180088567241244462789960940738953838257792665739538916371436710721857547085624809182539762000168052167357735468407480402081828619545421775826646152347168305413706869846546186464928945155871421667304522987653905573179989418498109391301990477133740300857440457846820572581718614147482585187588033295645298673303181638951389922409238983353413626239550590347144151924978551551661810914936514789567753148614403489394202753743449939258376884788828990670872060615343895561363175094060296911004778555775599440957209674038153205310241821130527058728914133621226592757204111147259623716754350914954715781170007095998536683639240427321418198940284837831207582226615772185033294011137356984722513246546585418494078570909742364194846171963147996307420515255629030331665954075041706990343069492171650538192290087049802560367482609467613015929961898108248203712978263211650295227134411272977296333910059864005081571508257102088629256690606967015753098155329345452312409571399654474220551989693556515687963112825126867161480829810990062646272043320361542576091717784825118674295766662945706258935769003551400867286781457296281999111046280573458555974801090126687681620678392380716159249159480169384615471487428319218731159957168964761844149049563656947118910096572485038350489112498090402883139528071486290060124441320910837996498698784864093385990469980578165016563371253143587042327613546012268962407288923318743603818341094259704852004755954301326996743404320541903811997064170434435632422194303451553154977294068247817051852190576144792080006069295715021631716867458699519418655092706466500177594727740011221571444737093618710222074370624479239681301119799588223580005881879466743924559363654887956798750504576139938547075517257845637553340149010278920334366277157020120237288998051768656952161915142118847229805077056009421323458463304318574722317013701572842773171124504326772835715402597887188516810650009147546832547788927427337542179799800095976134131537685723259027018919278654322018440926196628474859672316709245297260305257650399967645230819588626893220796409070711979475070479439070513568911864884811652262639000758790501289258230989135743748144175890879085999689352574446385144807299776346364886610994213298964176796979597176008013198882131156439226028125507134297219085086367584319606895132446012710949772817047559966691335325378090906330295345383046675784560918558604763095653787321171106591943882627322751791783728813597921236264964107690301310960666657173025774640341005010968839170195660947514395564603235462500283323613214547401914363031414964139384365825984812609731377575991049790802955025275574929115040139685167732700438533023066467810629018511650957661925110476473651704035820979198733303210400496092189774099803102493581244740605605776546782058967207296002779945675863146853653609724862385552426797721357080378657181029647604469355147084542070308926797401800718927075953082150479872000529725499270031458792582753612011882161561353244161439650389420078737819124965205038579673605151257324458338487752526214188865299241845166866291245837900807542766899147244964225797846121404326420214331035657385283625874855744212634618974890797384020107580209350943585177962906853780759002146403716628331074698475432064933887874266879745665982008082967292265227085372974224022163625919508850288602414919089341156069492914164913885180120810849804843211354124130090687169837829400613130500574995157849654961764408129825124634505429311917753267305692119884034146803615042008787087785352458269915104790647949187493836559750657923938446794574025487504481658748832900272222628770981779102482700290903564778361897307288479231274015011952932746309239084688313504472113658703452765283431078982146576537373122497755375233763525517748924174057244911153303740145722385358135089463268038966322579876162426091858776053970126272088411615279308015417188894257183236573844501442958107802096933261182197007980492880734548904573609431334572336688685649990596576718881091498452199084813835756418109648549271082385102295273615908068076242772589011817416059386364106445223233336594833516785136684113579080810946293219925148210507790111299769225282837801395861892183676074905187594842335804052046836181283613115951352278141746009523971798685362847116261753760028506263529287719291014815115369579351993373987909915901960520442533615090487311463936779026098330367937648050044961217211029449428311066134342871224689300509463211772443194961772504123910395428316314970886895269893062222856815892341919968097049615881176613308919023435625456141523947492946419653390501461971606182375695103029069475812964318627786952093216626109899932817168326884600886590875713293873424962518060527558292440121012311003581648242669725628615970886752782520546007106498232789718103159993383752948009574889121550849755584509778154381315333610901941389735581754940581195862100926281837241482293276217467275528245600980628074237720085218851684919570650114750421902979535120601222834332407259952361406362107787936697570518800844488307154686131918166645159073640161263576954535199156365953499054321118300297562390097292926823744851346835195835933455336692246343630734552935159928526786827823517478316282820623796237065045958331325590470973720167847753842635496432911366135799592958599091337914259828072685813895289095113049455971508703292588358620533551198574995690570321258065064113693988860353967747735212099399993083368587151177836251874000507934699632068062138021357665469930534657739868836551769114024622064746083775793699555021553413438716460245131663194530324391908904998782586938863943657429273665079732170444657760254100997645818581253852129681674091083390080411646762217222105697056608050991752449614953925867905676223319461099884010915761539662858727159267743539690675716360537911390329873391792876043040067118406863094004262012810539836456160758015391732845729134479049450882978960076644200761237958679504704861940685414540339205282952296568561749727088419212525624638258931166932210434428686130359671746111761735179982478327725205808944548345909006742074819082499599520230158019512995092212631363754772649889161836612354320064902171621268618213072094435906872224301790718320579453730285072312569918895408401312446545823274893139368062483297231688363880025764770699795314331195200725033496648836220895678584506436755527942886770132523780670073424550431548279263953932252036793883517550180978445323629820970440480906408226449789356547366240801925086765734276708379948472778175715021338526724563750693035538001733752867992239746367460660978104403879516724829563901010779483900604518815712634767111264535689692774846889558906320788699750043207508376289696319614071277621925212263740299333027353223142928181017783951169939893114993359502187476983514044312752527798090088386331444613450094779939008668738027554077960167926787292573048036356183549054530346160208849400143048198044546591731793535374475330225299284031402600438455423263822665272741608844099091686702790626899223870989296185861254714191228253055839564919614827047473689145891439119067927810703085008579794622869626071810464134087865849426017793513840491165063953819249652309517483613405546658132164533463305526004765303888481146344861360689367795882652855999404955563455397853499791851184118954287034693489640031163350518574393248397073270043466452587882524531241120663909580085662471224211260183733169899225642238804534696769613600143625468445501050311671255183533936180160362569074592873438832258489642850191561068940127566291751155680446504351398112497595950056557152848312548216170562724492224565184960545185609575025394037136169463682460765412778670671424805275161022607474524981315810167336695414020868658427975678245310562240866834323545950136271623537455345690544962178958032873401935267362419144365852352665206488562880724416048291839903329707462583529942515312005868274457359350874634111649673130754567847889972199693214956761150926165082315594503403288099594120013129228317566703975072965814404471818560669655750026801284468413295510214899181104180157837369529690010660498074602199095832793960843689667184124627830166779496276847549764918295232420350795561822085469905576402396933879160607662008744159263113596341214066052067084417973457618076441368521034318109816579307603030653235847052311448058528347220847840546306579720798229023518056182688810073764993846627897449883437525606304456245149026504086552705022193668072639456471835049465930740707207732318604778505414384262086813041034197046136800431252851030637816821983546830102105139751557357987698926564536342736081652358988998407573910663268573257269735410884458277281093265162774674672918179335626677954384141105678866856987376801186654584797385837042738399039831722766972219126679671318119374304602545442864973303555135780924594297975248038465239418132445653111059645155616419445670238221463355174366197125882118844244742427946303740452719165383063607442845418899013888761795250763399594970829403255511981943807607133800862554966111963355829353199382558378178765107290025707370246842061297696467647565653268863004566947920346624800549180151587631983153495516342285685659539173926593839899026246932781646139235551123210179068169088815516420596677904482030117648470855967796397120813208250967661544375959168532496975394078026695713403743221731804614625093093886473593945601340696817279069347304593598484324350757284654836096685449367940887768125456635021016261473334966235294463962857597773958167567330117076736812478640888299203078372850373900964316073684950954950875026562998100996144958746568360218261865557222207709407933654883747094123604640477091427646702462185637826973120338168102382918808299606089759054293339381225843702914484656923102462649033871461851328359407970899026224095305622120722938764862819195270448031176927535651958541122309114704819267462319906270430014623807296616709772302715122361641771891837855191866592372420832545629258702129112919956252270759833827340231670602397662527362250796631916058421865054379995163371114990415270592013366052168223207109781971777906217801116074523534339117512136477961575530092830722353099851974461388030050961255875653362071271793962924863866299428175832189283204618833615181348021772051607149677194014500347069438637066664483370477020382521232438100232166567064135249357734322306097224101313111236698740090543555996187885648599383730360013351609689157255393866038024108819166423055771556571556818816687216331014590586358487119865259068699330263015285831762412766878728959192502969995246175224180347087846550921491545016527816577858022345993552761427587108882747558728511228273766817098075435037281218113336764690575410119174462565516200007108661593948880111134238889931094317165501520940855845007823984521014527725651693924823835256515324472674230984335008052238594745036314634862934597944624583078768867746796176828299227289734734631995886614879802724754964378589359158794034515598470566692201619277007372720926600712755911136877143309020371352419491368094777688284503553893839377485867705782166580024287525643159667714047771317405635027978125922929392535258713224825433928484128219750606970570260824817114552131077203670679329357089709178164766972885220231546472249450891738175389209219892912411147636331975363396491813573391038838201415389322470335886809375098729018119037656768817743497963395952183286445096341405010795111048230596557174921177660827255263651061378644349323338910797826040998625936095849226681036163720807256275567004338193567567736666852441287048889161131026464023210630583102839057269245250087440821501113527703477593836078650484734157812680020866988766652056993637071003767713344822495723302459036873074141302547612946366310278679212329081251316652127742095592175884510999516859701077517110657829298920474336566319343837549935527361336480711273031383882699678973536498182766905038188722575561845729742572108468845710607546180318397132149810316535932331049143785794183128566340617896471316475013842000626504107751553906498199032711927569653103637270608229542394998152624890947190379578215088929122219174803962990854887061015650456496488163056160437552052208121737366560267835437613436476427259693482860663528532232591589394120980990580907634830633774400432732583505091363912970224721588500131446884756915904711150017554997002194457850052783945311539035375177409716584841361358772575193223235835527063785457709687575579444008103021878391889460348562141752559767733386478113383793908765501266648593151237611221224075694039309167321638783162519321280381108919868008500475224201607262172709350219553014171137314023559756735670593563402799361701853936331877613909069691328704493022072369101898191826603765160528136556827916914125173560210719290750644057082516588823651552618482913073791500254613172379561460044374603441207743142630617723520120033976650698987332669493983910317177335018549062565834277307803837255119509946184015207132812779860832767982447532547387260863700695378361978575675179451753166305236425543655205240195151288548951678928110993350647487127694594258215366202769575432713251375328495966708454680506820277061296539634642623666491961126906883953997670969538885651870660045406791653583739643621719060785502392974822103637911691339828743176773000779325874399744656716791679908239753116256178979577290421628370817056425390598668683170588466566381637837024498804409915138155768665171212131200297806433706693537887592330051667541929828451111434179653783873955898835099110127516380534669475199285841422119453233856307758473374689001425434678897531431871833227594882685526949782797203619962555284160538897336301717515313916247265426774962186085942905953920594078673702491927819145592084382720718043509790925892917199741453026130774978809224265150747107742329251578117033230183517256848372312143466053001345560701701601094786503737760095771740069112695150156739138759815474922582678196568633530715340179432925917436317833503902273112420118132923125375572325194259235864687148050070929307225534618148540438901769592250111964524495783990518376382423646976268921002852043173524491715086475760583465498194447744765704379649960619932966185533744450163338775490056268157697276122415926812240310730805223487138784018181372576891751005111322467158756852690391743338525182347314052319256456758292817270188410767344491305952491218186544276153329897337692584535256522723748276596122898656236442168254345169987185509454159035026983416936759778699784898788930047107249742933793323779677716238140175071689431674797795849842700025395529372938852370957428860153840137170906829299700284922753159910800821911358033957227024927357223886548222352273565243851334371304212594673307911484685691192671466828916875898418380846818900560006622897508524175212717986790973461633179270313633772799545662288224892848594756671315343680302029724392115686925475697293005427783250841178776144185155944807592600756603578364656246228525277336075690722339524550653715027927683969894462787146376256285101247752621395880474087692164097880880046786559162833432403308742633562926677291293512411716863384415683982082195495213132374692467689934436444040885854192519022310791386525660896254195454537029246209668848774579385259781057834440779868010056033697568368100895613337632528975736472190554072131593588859674264096715331540606809077380680543105063253740059828700319932725739676548596114570310112982435185606053096662476562043882230962853153143009555087777081374345420067384535924767000945842256130750499293387343897293886743488462042376499082682734382044442961723417515769802107041245067039539787147703768323157085118111191848995979538120381740964875657952574069158660078405489354487504465144921711072264643043053614259996703434263088220204021398901792231796535674888451468849934752651359992447907282825559170956563818325470518479208224180915495339977758399494964321010392720329881071031031160905894889158220423255619679412877255163198793437329660079481265377839365164565495358116581278168529256826565443598437445844481884034839649511853349015447074881768997021363502926554057722050360449392010524144349700410883881386127899525285273643816372281044790134709556077127597148576440251914128357882941199483864077941808268228357289281174757685603118701779881383899397835527977241199803780456627217618600451860723253763217731053409787830671773728562713013815828991847658161364295008880630190167409858668399299423770161578631936881209298919526218592643904958909345683567577503015374988070484542796149697565130991154656793658196570634002715288857508510814152845333426195261937198105146923922487616228455614858572747459721056317750003907241434065868902480072393905229500747552060584822063842466416637202846423915743190889558790345822642746191345678720491919519909942801488458492268040270868491707701009041928211751762007705313510370457856199075258059015382466564694944847945886638222325024403573368758247816166587801153391680064904833428834712656626685480529880868299508192167384391457585472201409964850349820668226673044145904548863253659539786472162959299674663148424886277182227288705765588570302248652322983467972078481938237791742548078299550039323681065991289328058939819985585166112641782779415580396114016159694445394148620386567089500335715325171286642116471100745325196870729893417675735768226331180326108547329723444312346011642108226543916062549082332099611508290941807222377512982068092925328954015767824260531419502986060105360751080206233999438819688600906715903453356631119812638392485091532485429951701451844955348250569626915110758712485926829076555038728717057780854212753264001742176884731280168445255236929569746849754630041340907369732948588925251559435574539548770792250912669690443131841291315473869971395992515889413664519696718976531249785643442128389086709270339730338835063822093366272205190078458117408517940936314666440973735782910671598851798807328650879226574819566756297549401046755589531074862365819288305281179653157710970117248186060124332550880475683043703662288223149183976362346104382686088501806307222091817047487172414409413552419047263248599141445679792289429652725940072953897440930671875878686085763893163052823443396688179718440241594114549660972538937382157467850105473563438812455915523625006012725948478898361758332935530842459455803626676875363795560346074549854843312788009427519874219032427228151104689813505990959055726317543740728013935672835797749418312622382462334929737359941618183630135116601593228294417882422255250995770372506375132424400938147097627202592842610319588576778359104927239300669448907258686579037665000139771957430253909683054542154667356999043563252007467997643046429143767668315343698011686153264871794765507209007632032009470126043383252046155845611540134161203477281046205026066146249697239378208495401367410839155359637023281474671182802592659459941349971650447361781566786140101544181945622933439851626996261739630596047769400433653130948213172100156634562507348122857755044829944165922555821005304976884500423244332860697616612456256684906774227734846273227513096817140797232128433858037658598399157865078567164581333685528152033834528073210919349695111141900385604448522372241003707217615920579606121126781583244843742431769595854113309140848628786402123536644668590512269528134682667762530915460671383348123650101439333562918363543430656479892292876911026071129108442988722970362502288559382311496141187327818542285854579489025829019035131299736191138169311650976756667954208835636702238985833326898156443376181000477944322668841761360128845428788441221182171608894554708240462803291988581718982188959437736671662140302469349796779295264045718477547738492230515393930129055845867249698503289212097444947740547092023892644194260453845359911225963216216774466436114677867967573089275026262103695885878473031643447227512832369241094019905975777659008914855433343647739945965403233823929746027442453170359143384709775313173656549829468043497295242587361429943428344201849028145464146730487168660490360157987456727220205392415281448673182806130993471729632030898478879345791250706612891608703177957382899019696509290033809220671763483629675560653675045313315160593363823185206818038028497828623316208278125735219395551079546946329711517497556428441492701472233388227626443037901939238280219453806396770102004329369910374735361690312049444291278275702375222568769678496478485411436745996770211002289947456616333723815178452049144979760897311295743694983840780969321711740327376452763794842609567572773264012737888025279984995064526541230851867327547208899880918661824958753253779398859001373653983891078731995284027552100336240240829364018651723282374295397042176251411085138831299920061983311032414312550979203978746619725287764968829049027739491396763944992682496393339030775375569929940559340342352365864308817062545006197429667381709609170636443648575776079141943535281374287294836239729128851284479414188604502919004803342199228907008430552260966255167757127248632123222513255451198378223350311882528522938645156134068867767058482650155076226274387856979651600424478109941062637224115608184480072387744095291883882077337785434240679311850717509056330130689473150446016864365082120547715209300473928546515674084867623969530089229746926428726981650823166292680631400988744282263100597881448979935953918950388716236140334178967544352840792152267122680767252592881205558547945824727456224868534370947766945580334788040273663103438916255782739930963943305157828574823705724508564879710329239913606512727017253819249942430635871806863419415623079861380120703347584482892469147070929307301607719325547813062643642648731900974854057052317698935397818619330067445876784849097086566760495619295437571147026662580949288117217098516235118472489729813763022943432786626023980495281724662893224654182644188700555714200566743329053774253651167111494406114106241500621849024165679325390138484995302811219339905999623479230558262924405800665331432865571631692800230324058248015637371118880295737705303107360329213764925232233528424591942281808028992533096042860559511879028952516282160970904788193523482668430098934678399134815632082518711851212065223820513205907915716282929074902428197408191716417726603783746000642869718611645033177338800172194811765511180292805583068620680154905678559637499696138622135723959256739569473002437845046272340291591129632449724222222608835595803037046210408094222432303257479170171113347660818808742676913278899574190827252007815803517082559515376574073907729030613101108067155477020669404920125018552628972051468478860099747600574706104242321584759290294290148863453710153240785920557641878808473074137474837813246090825448358726126732059110365625468892566496760195273447622384264829186261066375839575936593881862271379975391999431580990167178035183272809397724438445205181800046628491663210418303186361044086944447189687071244491199531510223886873998544913294029049534670333545779503830428251538937870828996777427707125981405256977042559226589606690181274586240352322385273263512614118797061692711171048784913394203067197739096871193590649791551546985387675865330634767255078678346108609617531198000431964773953931381302193565702170880957378677756823672765222698260664034660435078401809329445218844354735825624523544667964937695856738759977153879327198912012440754814915663118059979291067956901169950342174342559652549445458252003222910637235173517434333104466122024453396901508358937029469041870213243690887942561052500872915086465510724036035640469509448969234920707628889087211228077597264580709152840313044379382506790524652174080958416676139444096073591641656509312457201489570901089442678181333683536985531573227014576996938856801756863457882172768255421523860184865268671747663488791595374045563107920913622880014043377894845118744981004646413277137362549425468000554803185894469811846898203190141648199094012380869378935180639891387962731703511807373247772937685522629660593911654620080471882464324293970735434951649506274848025844167132484184433105496491930703519735557863682493013879723034403388483838703705727720989595349802969308505040996721011952147247144680223189103558845598112684270124631827731198771437413763227260700276343878625540751184387004348996464243933963657455970486337589209613563482709500286305156999578303523788444646108115345422580210538454738910774656271830714192893214597339141605737100318094709473872756904849834571797897349326522846030383001784103206176933132029670398543380279201475271736727526891817096971612260425622613175886089472553645314432986556276115880274600243281594762031528545175835133310768285541761535055031427022680053708825622114963366470233899359011031012715485742188704577568272531846317387427392382384531642771210090564115673728375505277647660044417352675316416535206569327690306385088147718096102533412704813256520639570534466683158456767545414745783674204902336686461489811008148682128390726708228037916094300888408438219833528638610710410145915707399036443082588504911220994370014833602867470588841042907960780465111872118988584986832174620200032352619192369020237986289768930925435582049334742038761883945329019159538281181876573015148080565264290838351859564815127276553527592088516330591966184178817196306043664098930055592433255414054596110415840135492468472296734793089556064767922192948466862194027121160567101392662463377514891921513247146322864244023169354477752119545950800865829334708191834352992370062612423762600778402848851409416545291870830168672523704849262970980419345355734372405685295227556265991631102038610960781172681143984941496578414367356845091444974612050957072992578204573492412238967309529293607351545343063512190243299931348079165408133631078584314367858275390410454871162712554491533856752626068074884684194760773931013333184405535082224327671347560124272053914777949392525707115414043467634658235199201571890212839865211675058006614205259864367615948021575138002270446508685416484633239337989930736020734236617838269803228084689017182276564702084501157046275540394353383092587328480952927178194686092352918218800635054580217506144195659122499069531639209028655241026673527631860463676626692445416248475708135160881996464794249428296280220590109967395940790080722849452067154494197869523549913244658707541549344665298883710342007496817795461146275253591824868677348047950228350356481544581932394086873451015758263049503834741693197733856050886235199281652991676189254967975257762948158156757798727482483702416973094252280649972162936678299103013734930505321504421158121957691600471946422226167545389547629208902592463803856573797010463347017265082640094616829847365615294674640689323524229499480280197405343548539796016889761867266838070328933775298038746949954109990199200511724652836762584849613085185893329848228758873564261353979073886101553471979620715395446386447002014825985089871820977382544047947049696584771745217193599221499754756496918005040971421777121682552938161041619016405863967957624587533329542902147598770062021668346995139558910334362288141838126181497317773881090910580262358886031131595067670656813618514790847432933694053297850048158414002649980475457737618484370842408352634248499439237615486473451551122634374003938517919882494561062213656909038300576723924642775260661656068256482512749259660203021479533488512660048033973128883828820714689597833018484947789182965735995206488072349443530963733056253844870348498518711841470164977170759657238989105387535766612960140780648594814608303681532001717501039475306426903412758246051674654048971032986457279791946213564902126680384997562463946402110757057162944461277256600083282177618885610199474335825915081736342132684849506849970075564318156728673365392992431770495144022908048154059041920377137469435909148873671679444757381779439343904284483046404754608239128129372239016210022286849271439066783990138441174590807668089900676443001679488180960982060972026161589116180914067789959555415796116028763658182988420753243931939326581551253127570477138096604945332261913090370052686813160448352641596969212125739105046208061512853502877602819238174089955534274887022377145523964223694763281426564305752628697327954869905905958179163530308573251061828795235293229226333664833877097200210255134057066210507783525426257947563463865537995470263750161113521589146856551545735714835198921812649013579270734745607706619257456018469974615703997686290481938951476732850751124181294037768464910272738382662330211620084382620225974096077091120104495598829396119616698548028699936397836973855920777013345077306537702788493253570461956948059591610684051826442526207806275398837317679750925594674596457507123267436669473346456157814147990776248750033363015501977181107336835713488718635670603565066258103602628097735304129270822622573511541104603132177818828519616086436279633317636192209801110350530940749276836169119615461746127446235955156000208771793722860456105471505587250702952259332088446544276945472530998984895221040458488317218690065370339276203231622677270733052766823490633481200076667556786669317403525195652762226663204129052166504395049490386261499364677301630114999380777198895160815644937945385340796605515057859905063321461579616140666215845785956608456317181725035659533062022507663360814023522360222399168984968910613650866513112371211670679657651033123575304010863738016234670450487287687773279334090800391314122198396118195986311273616732339959551572615012546593749501846058545895356478687113159233604199913479066874678527418032295132714935844084961843852897836695682509062374845441999698107485194057262718928721704828909155997505889478354675466340733674133830942228498256862594104358230699718175764990475719125805240891433969838588724993040962605505137370867398075348533516342057489304689902889963074478100257533445574197299536250802262731840012679861622265750453069905042963505526031571991464099875821415149047660501585172411480762913562644855806452748266544414889262003938714314384080260670831240719250331724233016166217857093912105674939655603052612540447579232135384995368698348176200014074657773526461395736493621717864212270552070873023569180776139053850286751963784352536108468384407542788903416391332466113057926602635350756963556127488050913052591823686073332622516853507455529944120631954713022757708221804987800156714408764659982606344212661995140873827254271072036267872689044035243770459167642657958157646204536275191527319208388409930558848966182519099821903040324902846989328254210191279748722803172301247361490286249764727619345084894867336882173469806899118256656438245863967581377254866420626808636826366808188291638025655689362443554611647953192024670348386162693629901233227498932757190137748388473612298294076668700053526619597327803198743162926243030917647366452907408016695338087699975052986237593677306223338994735901639949397003542760455386605160033935766303648648176153568734947292841941214978311591731171953823309109315164416325658052039279878852625342150853302294096400813217709914654428114314331791240190477664238360954481987636265111832814224502599411371816635804770030580492414994165206702676860343732623027849274766567979297574809393654565863684598080398985417897556849722367637755550132482862899715313499488506820947184479247198430512189866088650763848077382488292098552721623216572337731502848474192990531449628048994028989658693808920241218898822037725354639085902807911580267379921593989981078250964856804107194959691952760700792338976109313581569754850699218067165437059141736918618635255876657988765930347547634096939629380483810255512913124957261638940426386461964379649895598928339091770295949955361733435922402768106614041348118941643089979857000782388580419143640654702039088914898622882466640709734518714115547831314568036253225817594038769128625672503623708762636614503416632445385872759346626521290782405139912723388734706353444061324609167538177300800672931631530524690629811326468674104381198781663958860967123111242461714351634107227590223177789195338287965412188795034892233947022523252808663740237036890877240952608662248112528594342284769157442697671997835150439639305663844639602513725232700132483128430609805875576211358472549688910234956724630230731497690987624541120873724512415027825385834573233049453252106199806678208535574849648479692701005773692272430607494666973991463731103179408915224733789186419605012699265534437534051492432568320768134245830525987514123662647076804135206203974294869817227928182274697028525310149704801099350624137709446324682269420836426198838028644996945249185115769371701833269303299537511235599186772737047790670989508197098220271553177585987312639665492837602606565427840222414578168743950557172388570911750138558727352264519799335231379921101551106874761272630965945425931787344442903037228327459772584358082711044536452514929620738294726531072397295965456120661933380905258660156189703947888198406886536209816278036421423425481232151729386049587146143836564627618013673557305916845155117968039874142583021885573951122987725407285492015444421462076550452268627335256022851227006323023966818853969603640532831248338330648390344736311744528972434296877852781301736663927638100898143748726716502624753197815621749737827733756127357058958798456255398033018394530424094616369266748597320560933487238518953489230257667317716522660797088820051195105066891515421966719066190008290219515925499457797802925834163686949897555925287689796263476058182840327120796512654688935758261819215324733027801015763002834342147222509903554821785844196876490387286959041394831668817296915191767270547006128300286134301161268023812324158285565731959534429197110410045807280139371044593540508798541914027701864493049690275381011178781424415105715750159340696495181461250612082343090899207639045613943491532352466568205529711357261586577670168833158113408210488765399454428734922580599467629745775941465425415052061326165965438082399364135784470375575598045362409013240120941644589222702216525643921944982622333044418434825407864834255625540577851069022882948150383232193077735735356234718529563220807229077606776053897131732567790301625740318145666187921248098997943673368003282549197156573447439442856744160740277425545449447423320842712166679839806755650970210766722934506155239287844911532195635426845927418068779585158289141816954462800406562493122377987633537041106066940844572307348339058440517591306859157337596872514275746606334319178918478493720546274217794037296789665395029316909260652073986594998009668728370571086721252221575254841316450862434263259361516779427224349388325507804136952442838593441912660328230352684067491404228307244808812051515091115023278767230806886681416605916873612510212632296087414020451633436718425133132738767973017090176227709771734706169350957809719906257349453450439385690344470985070585094766064367764062624126662709561614144708556639334514208794948100450877247657213640822141799536515794264697114389842868743199987958245585478819846261877560651671298257074742178231693438831384665620884040173094573139768058286162341656861110077065326014741845551504211630247710196692077439986676808225951375585600530303744618554984759518133453603433172838036641869424127639356746496357846609854557301834702924118889730456412645011303891178408605868512014628587948749785489632896632100410940948675728779357394759695618754828677644912889228695487646621562765785704714545453248930462522748870466449472556786343698024188205825860033883216520739229745144954793915206937354867927082368463819100908829003675135043888272844926807419800912619049677762864794868708335241934535003224219960065701912370096708445553408410411519378721075192620421497577388632165209463928661062258152779760491913642296406967512002966159263238270124588663895609083915453527021920553955288755882689383469547725465809000782115242601554577100566102207864474653583329980932140929839714811120806613248921259332310401066603110978227179772351512969320270668476518410303153220639090202286517087518956539587300961627125514954209038378191714414096435829243083874568070897201626165495161480655528622410785820163938858506669239774537619735630098719768278994024313833483383779230918056920616235122922310419828623580820745572158971926731880720781582341807955239549496625833936794056376706066633501419966541421209793191710202095741846154948176133578663554858946378009950692121065943802570920217941790792932096985207749762788076263121595319024971185802196423578324329969862721179461309391863946712069988056340129685395281686797527836335384447854806074741550515348914660169533866948494806720648207118311405197404278220629013977482179394731308615731754338400933629548654437218053715532257338185441523209032843550754115740463927049376072363543955093900753078219822822891799551214013872032803078528877235460453085729853504711634415513082713558416252512831851787256691324320668551674353775318305468246441454051075012860565055775292873950701466204117196012443837933803854908413777074445120426313351689786953847174348015337103418755527835805789061672942094104006896175947763284655749932584271899969781039416283612653960198262866441592974892182720962266967980392386579427742943568816289356777304388594487827634408868607167367614471339370485376439668849921133381549753405194502183848582596338559911261233769733065967862366604221818177631221905673828277611001790016974522205541981183426930072071819966967546460360697671095401159959331779954732593453108060156328421915203580512293790923479597895475066074644850837356376743777519851619054108524513909229855012431641396932068868977946108616632338842945970497219610404334913337147265764527968780779870193053171894575547162542795645216531932558193733591002802674731078413416898579668955151471890912145544433604004756137965543464285343631524722095470526501112630313405592236466077985689261628338660930069942075831022419977780902281094023771540434437498663059642239016959274629448154358218285950355298010372634812236167588653999985130268526406450822708258805435603770896062430962196659230538854210944188232728779494696793772674896377544565709185961853989899853750383080064143133629608573875350606177676110391585987430510765801604696261192884051575561937628895904636528988522445974645597495432903947953845432265005605625194967899287797218368942982851177786823573064122906699257818349510607091695039204517840983868154413534615372364221720214003813206716829661553957425032449902769136956573168032491703228334401606786035560360804133975170862402732853801637683450078545664111226200876464365778202296233526193504975056178205056075551841207858453678275703879326908145634326737015282470345418649643421235511377705838481312650641907135901844560923596778267035600850553087147293206647783625251722766491572319066754590841210108890202133758901900390768681286239743201533872144596411247768476797895062791360001367497391472986624193760469277006891372685998309135396835055400971918180998747065447108694466062162963033834278831525393233603180582080822571766415369628839644822387766633559050155753230955781633600925859433858525145500240709160525880656374936974753519242084910441862471433710129624253678040853379896020454210963593920149974275656967103340873072150870778037982616691894147238380043939522747503862315440752423088694604773029957203401162887968078133571803979822984551825089046701271070289580042847753848250371665033935293387070975579536728711474751161062653374662421742988078396010772379706226843002171455610633658764367921841190750340205439084234567057033719709710095697247334430515794307541013986701616094385381789018300800619927822484037693105268224197753576855873849407310268441020107470210522859485643198161311455112720585932017434138777200539516034961057908608679066168919118052804519763601379849598519106923120815213612677218609310493968841933402806986708120276059248535598689415463464988772682858346487371900746117973349228603173836195738945337915732914230393954219742884308569334159947990999790986146190269382212881850492309007009349098648682942033641347540241043138573891381093325772924382518762755979641403733788179443874090574516938228164861946627301534342096207803924117272764491936340552173894202859801757485555222308569390594903297098339996342707572893504607692132785359809676583605587614400239953186207989784136190684340583808104418676324596108677608303285481394434270290559798382555732620803346087365968550046490066271897521718837762380210492780933687963289629990383950381497681046653992335419613890040074597531613003319853764667398910452128750240558930275859619056539777877434665266922590948415869615657156276940089425216138925302693671826864481752740811173928082333433416932931182604730333446974380908511826736733879921156532119147791757143581190649802610612118054450765566812705926783074794225051300652508574140722826512507133985826489289663941357844106049890813786569435004583484849739457682853595440900841617478143835745314653487419090391670494961023268079417126341961786182018468555588989682597155238708001347714458074676369309916014373828047481320918286231646155898611047679925507782009921658964190179140263507508937927598337465688626303632676175141653329472416013816893155136009923521815897399639845663653368506740436302837487936386941438962675147512076917491884123821023893398130614993784975887542751107850776641784745532509427299120249733675158579319837726535514650901617233586443661535674178458227879113617155627715758183081683856051743966561169649039729047339022809932980897980284468579365542050700824593573676201796331077444070887086177652688409462798767051452138673704361808751869319155173566864480350923630996310680589785550499738910213302722800654540761762399801216437983733191670777970160900932353870945483146530149033551569587029398145070647253852135662407820670962484661572184163370456046364796226492733856255557582199056915707034436775343257651515501220141104209587697350015048701087049954213091447527049111344953062379938695422166676939737957905418855219456074595939680609519044591347596979909359367977949564817467625439660700058535494487471241841369692995822944362755870244689475467140823354098387973274661888380167788478847368151255873569061105632346071760156415074294735568186088138579887757530027762902695761910620822907094973943235889752873379800377204855494937253619945836410557482036321603291777192444368361531813767482086216420220532515854889438013815554585003156350882560743395359433938896233072959703652412818301044488915519304090348800395783820971777012225029006806181169888464303396795116186657606758615706316939709865749449323512181691657315673505372450501151630176022807013023133292182646745696905450049899039121664172289923796977590289452449811658317645106305676100720313824252002287472616813098327062065868177096416073321828303506602518662889677244524503315564124056818416291606968473659573492250183021033817140176812081775541946797472465109991174122606562045878635137839056080496580121656906898469374017705829368125953487372679809698576291620366045888087973895173826667539465824169072166481659506254591492069870120006634863436617715692888066836025001937454708523333636715293400120426994903056733590300045022965795943496917297908170684471934671462106505866658779906555815607304653056569813784120780016668184336746835525429500015742677296143144068214479321007688499838138042606016372145008536048060263236995267380789023103719697761042874844398228217859569592957939133158112575864459889937651488795009961267217635195362442163011647752145259544381334717856228751965654576583170308229638265140673100543133519977638036950102047972542898043218702455767161600779166029531359307067476205703667781683092464074428658619178001089483096003774125198578006604891170522634439287259278122736481185654460560167033308196452745223448179251130116970697021091033668912116518796244741595731561753891897303497376642035706501125414011824141761031762006106497173839434087447271483888845667654680724574773890938712465158655958955091790812473803986397308929350223464414282462569403422772792387229283232801409806584707391494516126060901256537446318719063935330633327431698593656460515607604391815417149508966066299585016725877740067966236422815777266726405647612981238128197553063292408998499335268692460526515939232698244759557633864367294930487804559649132775440880052739308408879657972331302838000774714198892883124631765703730295926212619448851984864386255611051361676884561065949984876913674862324550471229932097853716243602489590969908774164939249755298373849614074364658105300846472665318554408967680465979102707760172803473233064600553992883796836348356235313661230560363307537948319052039989273643372795978464763824000817192390660298740947622423991931634272541844526396156721572766520363906041099450057273166936277640359361725442621416749217380387373668099309052588854588375319920926508538326238906292530922242435151902649499205246803616063243606215472922364635181574001468370687783958392995461089499623503033295778169282160206294549171426581759401436979382998224786267152013921737201182782972399582489009892438913628299357276739587237507820853118992541890117057799075414186648305759531017220416188935486351576115628270528206471692849272800229096834561141303720613015039392386758924063393561714155173773469640678633196161842191324505041058089532288403496870061433352873660777036508455106796761209668532305770387019059799136307215785092010121464655976497311136875869796736894579667062666185473255451367099011302880112480496009325513983348628414448375604957117134567171513876485406335996885378932463405763455317204989815760270056233235394088178420769806043737513789988218597017219078820375865500504153858648764660220143185980607721957553260452057513675691801135251761521602729812229211828074311610001650898140263160745443316222413129667561264845874787267250443152116713679853491173844804158957817624871059864292448873923562270610831477872574187266578455396679198801119015393157771111809622336760083775089585074254684460316496731708171534908639704458959269996103007844471802272328948716710900250876101584959398237670601043399397234391070662880813879061030377736358183400175298629003080463617998311948281867019111655109305539197817537230206697378026139386415506093347032867235591824411347920272921504451741239939690319461752084468008013160390236125705164228979619581834964607751013181172196356227669619385414998206520372929834641548364685326542240327335811075731547734462786868072338013439209626483336115245845241070558913340290151636415938120996614575909720524045681630229432432314483426479886794025491593769833476423075117832775149943196416357228358671209481696925280650111950596673206441358340507159533382809941314855610772355384810941555998758006503804685203189464779293029544552807131814387084243840678415950496137648134263164028838348554552652982031168715255119108337520023751255246033774410442697669792172460982332466797925617195853583136268598332943969118997274114790884795482571126925828501644599808087098924858508094702213437752707576567011394972929557990268788019501532706383066424192443832166055110885690733202086775676853674025066675517918987749115678979513549558901052418338098038476025578233890208571905323093564583675538704219508675075066670817086182913457091262156553610327454203782027592583640903563297587838422489051324427046778799970168549936441469717012027103820895984511879725604062455434848215215817679526886374777485605761345370849632330936686868590392739463684111022110272791487260056169107181887714263459242624894345238260382038307628660982396000815975877194249167286409048612354158049449561101290601491378051404014504281619251280807645164778800657679763748465566107816338968230062839366441193044444748140248046847919099220253963291635834455679221641260398347433097215898746008191448935506701734333502374448307138793288525361436491699214276378230123541479680493796282642665471128680322579902321482520540206495502134982300186114814638503700489766864515957935884725512493147365566551492063989160561508132322686780400706917306355765204993253905317783525317242698622736864399789099503722267164685400391991277732396574348794976768683886447073913186515114570946342709605882002210531081637965607521793501844018838905209248027989205803930708744923203934243717243302620952088010524646846231473132449167983274809396146467961680846287101203140048287022427890549613011076521674885046116530713131536405603896513938606988185363009542666096613170609048835562685225093853161923347356414921978009521627279291990175616169163649536777538672220108102800847687192401017717442624114963055890151259592464240768138586159523384375582501868448306069724624992799088689308893735647545507502146738058027839243230757315123486360460660251626745687207796859539505430167512250530082193121168994973479636827422533099404248554353212096651025009556906883823665968863746516158725050283773065345740790523816664555797067187868942615128144541641315484376289266984820642753589343688160502646754111972307964441937329196667419135957979159620572215942298518542763957765627506295839617354872992028821136032242310957164973219797859705619363008074140537056101329558608262014182154260157580960754227053750571582184687037256967389596223765079789894635834465589769550460530162423477815934197188041660389739082523525495202703151697222918136921895684684108992367894839395425788596135342491713638493469770546535924864490403715724855724430402838899523196356170743250120180937008208014952012010013854527140501240527274341795995595142526467859872302780429899943562575689702819499896010920157953956520228473137001955573121142232449161080008390740985406102679923540894672391571781317061199410002276155331049572898245734052844007011392886303342480091106245160119661906552847119323087779951474159430807492887909778663141620862228884526608630179678969070458843234009659985160385261045927461168053963026384272784934168777897012238605971191022625499616811775910802818167126554276133591133236678838037226205506443762881257930897468242273708982634537072152976181553472106188124880446956391440285618277783208456963745727344019468992565473541001067558984366941462032887292298467198869903724645003672210551490789402415435905153958129035707077624975159647105463827741255062889214060881554540244000453766603980971510792653864952186872068303576333384840231934777142196868835363379716320699390828491301607758505489982260321100511805751857235782562469344261432266874515639263590916182793616892047804430432976363008508584169012388164762874641961493559390380779211830914331188519905376541616338624665640255055272804137087326668681923549481436591027782364423199047819147117820368280291657991068485797887519338719375977265871421573837066767017313121595570886952518871958404754489317517512094386973399299313663340978152472631680918724220342142142032048039924664145480484484940017556284320720971426650187708772166252462845675552275599870312230217140297350510227570116689405309426258663801715499840508594876196487091828865577615811776082139099992009273690007521397088993427672159114610972985811805375530798522153055424945668117054021012974791242828516937947744732396153729193570350245614474799879986964977157089944045638595101512082166161845759504328053345266243114207319106948683263551819990825931148931585660952812318318624320929646855924931410604608509643100816111521191584159476209784899865965063297217416752828842178853930515432324607294087102532042406814966955434760988799545350686457802389709649293975293802207381101912997228978379810593576339474226600184390734881933914055387745303631237889682018910325102673744891070731693907439126083833648252273302656506862114242136254484902356806478221279241142540964016725587814106044296031543736841400449641059459411273033244481149779959984930841898649072619801675373590051840670535935377429902777138968724290216444480995616643193702501940701213771875806559203406361585740194612078109055318606722561693301025870698912340480638786707833752792645401467961542091411180826100012907378642068407363462925243830930397666537417144353220926027568127954033751452449795970500918510726704676685138734165180112156192773084359300169140111933910945638621327639869647714280510443080836610330276696153104008957301799858870112571458292272303894602399800106050058068310115283014072711868147958548136929536253977920355871377628167447086630691914742857014301778181240313471154759365132007667785817927582742634765599268012501222516862614036476043949177915285239083015978123422473579404899685759913676198289840926599951487342383215532775902658079239162763477658942207633821344709764490460914356823813854454916191814151199457334389253607816729908656441826346759551219774898003798011913417725188039801453821507893525541412896924925017200636817955601095447645189303879244057586444941248582160247733781327954819889740769720593039954053472716823657345784526454177840684786055402821051871450206400392808608221532590449711578117523569212001445676958114312039996526282499175630795996299637917509548504212194218962845295939537445864150244312641961684990470489066795698719098376564671493463567633266098721929924540066347818124273385835209024755005907149679303067330423265138064708355010860803843267398043528258808153423224286501124568874466728267472557374008193036213414530269382833672056584098882807164697096922485751318203216726374523268637300491738512775525460305878917647599120012994071493385109031017531177629386696461764877940806216301280005797470945201995560445302263743526370358893216608438736124463932517712482976964785568756545777202756403259201301513386475433704998062239897643522937740252600302757954306029354454833909484843291297669615377106822799453034813764124497231669688490282754734661884650132489078685315169342349563171920900387863948917530425570600371446381570402967521452092274481945653909496983179709352410646512000218874628728954810095615491006890166285510969262911719745523668573885174187482320841808994378534552238929757699739097806035394315183848813928020068829825141924866219089004195822913471063657753655584532282544914628073963019076977325872318963763210332024470970041305162928103326209395093158547289121409365605679630886487818975650677646051702158298709004379355414519152464737425040580248131949514206016260823173092067504075622673631566685917346034287328086742248110463664504831931345147285618293287694675808062754621941524644623340307912465159173348313171991396852820077847337458469069518369991483899783359887173637281032224911758308281266883699022923587935993154355263920762216611585808242777114199426412822165130689920821283746036604112929773006350463254508336184573870501345456331299650068612156425998162894605382843570498837181811432855083258425894111274788840939861203769707165517735660220271342837362703314981414662347309467330114316857839898296530066583178083878207079380366306563605974707949200008285905954439588988203020778467761589743591101062459807518899800601220747372340135781024957831759272733616344894972004361078245541224796985722791107137278193415782841699942039527504545007429781948579828763829090158716036522261833095140103003064561849881762473385549876997433772610694197841019271375788140404622952558948201205297338770208191732901057259957923707906775814153533964404412359914217091303704474774277540427564811658911941103583710032080492707105287031095606423062641576731960629889411327284859642793124932189871590721532499757462024343988533011703785101098841217227390968576243473610663155260707815569642483073756109247963865344313557481551313811197425636512315616377754804090091221859129519661717253304229012840441601825624669304861896975741239751743289809092005739398039318724414111360745356784796373402131481491966711962805796451115106206505652364114933384812827938544905129863619079051817997057060387660890978263496643963704726346407048695355819557739989726218136887418109097575152816255740186433546323519014298937433186161701558495456631609340722514668109232905527352193764402336882009799329161311052753179280904754820129555003138329077297764142212245932672855704984527897979147306507385920075541502925366768452453557139895252643106618950234704734968013113876320517225489685816025589205833752046349578458272349839795798802971451034420525369708541055645902186260817880769821568722000730646380727469541312641593918809616089429152885652250704863132378003451298658993833897679202622448259208961365612925026588010556876349894098020527362497673915186744118278650532911754624494097535939528159744947509728762816341583810351300947799480936898493908855942082730371319605058518693909457594344352161362859486990465786831596324829935973776833650323432248180500696165775509398183260579546183023152762363980750532720643778872929918524003394749612020810070507959287468714519110740093605463544881153470521153591567205076240908576179446981359143533420600216008182223563447603758390042009105509003871694709552556787821517544820212930049061049944526620890553900851302323359420826059401742090310936030548641560955610225776274419542688067192312772612027503264280257964848023179040981424910704342977253331770093402234736903108741564197686618062059258805291930930431875879410452209717886924213865054335980034402591453270592093059983622573172490783118837128089681682724024209767961842809996741542697619485879197575192231912111561373892085197368221722583510721591241910404502058721774347211632379133450684347816953597733770364709650906730000749919023384558691843191151716302959333865085491989658857821951756717558985943937694014112563584615919190086944726492357875097179237623862561912290801238896921977082097675975008604363079111999409374088598928541836263179577238301588037544877122280783026683010041385193502367664571532995867303604071933005787297294023271922777424318873425828382349310540220385385195226825353710900158852624223876660872419573686746250365748489620422453971389147977090853587104661990682806393902571697177369828894414957570863965830000266521259098050144206281069183009291378840735300576868487061107947315582656121228016410474185395499827058222861589622365122542366179882736762362746537285221718573123456463025797834692189042277928853928612589127535089828211188260374916600145840730503383969213120208184242897566098145006377321128001742103707836881958886557891235822841605054562191131293982367511385964552020203607143153180981365866749345061044780055807078270028841875317216554028250243746561756899865533268937351398063816600186613274487101765108226674907676786236383591301338392727892363854997674116165983505029973803967553441086082330931923101749519106237110348585920534315116837683606955256548675940398466742574346959916735691599405762749345840436904899373534612940870999022759695371088268524906821152238359975192594270867567853966217809259585056399846131406717469123698266737422477031166644715281897325892645331622049670624347939030295112451749193203334632434449789604965935493411191038477840549472980982527826875424945149910286206183008091673925322850313089532098365034765072196009783735915982647021148072951349154920920928213607153952685769143434255510387371874875872848674013003386853160752909306018677964934936091716658120643338812691430969977880113760662712530968595558886722066930109546859405362841999547685553941984170072715126880173535557094129558634247879120726288446896478254353000945648818517970915338626506026316908176645880893733549432747229176769248963584719975113348256085641966454932705736258691482835326776060691364830050930757912390216938594736936583013540105121346665985987220487475827787791536888771803463027006311527981989664139096376274239827316844517789762169693073540353505465382914409023231401753583595055352433560478892322084220906164255517787109087014203750520318112447846766277597207260184927391867315774479437277297732644859055355599652084710874253874289428149922806766907513951464091239478188978909514853207552063742570956474748447385094472590056304168527416657225411665220791340195958380266547881880461016458287820292114598511804452872556200683336624589479387108981398331973130824314576313659908123023398668896941533776250181576872518515793062984137995030745982441388974305979726801201715748952311425161676211884151607332391474522540300777988670895911877544544571309241131133598289214737643150130818704242278578516208177559082197373170588231615589286473390925372021640211518636181417566240262436644021411495371239402068470770244423377280448347464833898947854857015547942380976355908451204068724031223706833504268025421771173991931493042502400891167033361166538946398240685306036606050817786574412655710957055678212827718724355234425599610250517488682661027990095824495013131314295872817734301880391324629497735892965679813213736770367939860626376437392670192654775884882192284146581413439750940741925690432405253020857014010153473072513581189733643655030972790021633713913611882059859652787806308232267578503942692365049457791030455472621650325022986948021214591558216479709668778163178168656206561616220102443415302213359488131037253603992777003316869956796590063635794780785011187486220461966164342098084325966723446415899632577820712362434423695571862539182944111681613030650018109075092762865493578627132202948480253702917294485565299229275680432419479769541865384390443488787034493336420862947669909212858682321905481566418912348230509733235998153881020896135436692705705732272370266410656912450654253356775745300786675529475120573426185276676535823696993637076935892731039912171661995024201862216391190523682770015699001864257029448042023407891682238977812521804625403613466572967785068727481717794348868700726926277798051390146552194193649866220294950068554374250405653142357135185748536428012934672752559134853062796794955432154793987070741109611505949912501253370469846397506131861879535599229554145212343160057021326731617620438664755251608672971645373074437745571920093295280316614519935369437369319343587394983865926133571019355481056404532027910080395582738577880350993823214439128982382012950318683608802599416539602060060722568386476913416718897008194688923570630667749757850427570766792485131191452809172771740906993670377475953109511143099196355210957812131757522708350734414472293962057542861643971557665151879376591565366928646685077931168838876021457881113758395712785071530565691210372024720721988785184298720453490825758171054599590404953764349790685324249027562217321981498269160798837016717256467235404241819185928140533105461053875159947381959251927735234084159245538986681439838147462538599019029914099536891949098390623042092638917052404965359069726994173570644487331873009870723657579840007011022063275657362737469326862732688828039380893468527107506408668867347559942244854626998884305977932393550511782694024863127942572303813323702799470395452477656205349958440220781914305858418757979999229941175655575310386349665794122301588430475984248220430861506208403773545987806943578082008557551544432875927330074410973492024639582346349630822541891960856946363388765389794985089632619881486637472170785839424822995311150165637839689760160331232692237210695003528680559496163655459142254006723267011715673397417818357727814021668190480824424097608692702056894921013604921000946310723945494692140694310845394227385870925348792957318196824259682685220038951334935550091989403093371122192584072917420060940361128633341625775087870128363799960845548764181559983386677183135880321161753155401815331552562899291161750046865132441921913563579772782870940890844665649270128082699873651004811227442171865956457347136584783067123621360923848535467871407646591396327222631867347963515543668176394824795955132306905979697598208386777382670317927212188284165552083160626374823101018141199357502991314273996597374467160821255351430736077147906308642744459634904348630059356241568944074652214295713136773114372074711638855695781432643453718839448109031457603790372250330092661421180446614936208501444998368615236618628750950400657715032011356982630396623414560740313535034692863812023766491103108415358006601538712864004346923190839447321144818237697721522610762230988794687287942158368194182121166281090036670915450318719896477688399825334060102865023373108706059643191621162315660416894767465445531992187264476084715837959472868187379402944925950026244345145510516198156437731808016964888484007319250220206196038230028904643835847276052409559883553171331885609846948515058934083090290936917827272222270772777212165885487390769560528835493010009788661142384708612260090780988111741843416654371035782528956124015351946736689227992041312485867645090548698926686200722881426473709521506375169657068357858638236127550705151932214944827830451762718197733460906404738610970249533632576844963582745137110602431216563984685492049840389573765486610323610387282834325085773010950646885235881370970702908097367409004577239136916823942878385541678407610070063468909247959918924317923133600807599759649317311459710263162465384391888647733134442985812290006496461844886765776884249908129980375761910609952865614079857726185461375946492663644713259030191383759237277528690189344439810562133481373387968463014430501361954767039069039521860184912922929219358916148372675322295398848106708812234264412459391706465539301714484978236541203575613324491671398684759337193555906747429022229630603663300404092162149936301772150337937574170436316112654738418631037419500268464322871680043875833968038367891581967729766084423048738396154136325854432823202392148807912392345058419182505388301052817891447715531588494559611956186074831022976836836793884707110104676531326901723614616292142659457397144117508900944785404265577132033835277680076424538986984989124939632229532835370506474269506525508401042864964277431824334850981816982235438860625999589746495388232161900247515020586322550638795024186727728729260133421100188336286675023552792813267919894087678158433378714738611848115458359060911496651041136823011693604717599710112658543333267734101484488098855591214526330892584895633908121731988913377083653889840882133598065722058161297396861176973831408562353971032305851458883286106560666707188049969143590796168048756700956032083000292221875113120481943079724933549316219274006660358476866056753066822679519552834121829761350788975766077661952189856998749801639502435188394176696105068956252813742153842923439385416283055744396580539754117759347282919146340314860686189046363183846484056242330427453432686266410387125702456258134003033748731414515753560456216020502773034654558279079655967114499905453194358234918968503399804518462007884474933823140540585376812686386795185512625582788827327048201182659455926290016359490974875317325866968312653670597112490648427707358444823974182191348433379676988619648707064356504165932379164332691478678120906622067173247937442262742657864313724380741495898179923891596204024022846668384870906413072329623181580009982665547788426801634073557261739350715061040157647068851873341655075862605283259841062304178529332004652614101776012150517233917710142112392572124342992052853221409990690539996955500252018072257625605555507211456025724337480193186796105145582602157274368057511587390485046316617599317825575229693670742723677948356361699832559035496034789409702543237492940220567994196759558812476969845445494986770773054802138436843220788318632771975231961144655025126833084108457929617856843867800942141183887027901322545547445251132654583924404708814182768677739155765671307794848875919836129764697211712751871480338597249549677493542653802627211755806448202716552003709241479595612072540253709555568143902324252412690794265083773345406116118132284942791078335657457900011073149624056317305687558742560347627873676146665581970526634815312408106630424433685785906714518764455099530896158194668174726817775200125563182550686464986470063368341865167700661745415508495094610969094860387704623009650656276521794796151701372684544640033438601256406784250438257238843817818018099038870839032782310539033165970597854584940212671255983986590800789576776576077625089317832956623686304982051949104850920983439928998344157218743883681176706593399309044325769131560650182998095816105963055115565311621188664775124109659672526454277563491903034240419369483047193545889084637117379327432471805038529320425555625816269826867468296123779379204975628853138067710692914673305831783047417353593421580176453307685085623504532666628320780811220228612705592758637223619308558785670781107109048290208504671169784347875046223239171811827725753258395973586876815482600721272806593744568982151009795890061999228725167333204691583058176266677640494100240768948399530374464735097095123891275598246933283966056730632319006947846292230032555056833521164898338226352091955765426582131304824437007866924811063497929703700310196142988798869035328007546167290465729782496332587111296562984193342073836412148751064115965484615789031305375569496620030997331882330062652866991872645584647920151445329483774573733798182668498061945266053478820183397232118764909202526037240404079874293423276792076731839433406123042303076515104414821329399615101870184077867391361183467162784882680110663657528302959227065321280252808923343005772196055295147802321474787964473736080833361078292190345801383165189571415509513074250307259354656011503274562883522971524417587300417672618964279567972864432149486567384977849002075630521162443534703238500480437369324060378639212763891570277800689609777425927798757937400708596100179515347890057810949841325456057739102953795093766789188980913921210852100617341157093630766779057043770389097275124962563410581433531523995955210827499223929575283522735369682887947343319750752618439083253024483784029047842341206141024531185900046384932334700196826288646244180061809926344103323810533042384709776944997102269897345947529807708972535565123124084235068402856373792723176909736057379876213836665089184169173693918776492220240560955186360870497050079717428946745746837417270652742880299744714177627860162134665683496037684275775374962023003300869876291577826180593088796219192717337337295371071515366216246781815291131739041137507222374060319825491407651935890845732649022944547903174502643052215927131060221701935370464597320212527812133387591847240756396616066463701896884589801545221427652685411017569463401967175805294529670285095181564103943800218771397698941181365030025797993993266912889249610158671468265246887052335525627922200550446188454290269174482668752135683105560291542756862728114302980132192681235408619651404903018831419933559030953588663239395451661691103499394195699406951746756876249633167066004538852145606721100457393462877241268478649099378262218551791470643481113690370933836376091132221973471505221732022135005813763278265999972068462184353957681863203300893403584428975392705272561561916214330146172862203742459568894394403469742054055398376588463473118816171210742041136848295487737206272509838611771862635997180314177051980411355287043473929904923485747217163029348000428932191087763920654544501898701752958003674064191103218949195484359414479035353473013628653072227989770389163398909597221110406551775370886781829271464828230800807478120265353118808339377861947307399328843138043488683690948545998355562388532132860553395756996174788122731677385933121486123132825364785978940890929016863493277225430616353943243183801853409110368080391980087983974626500090140747572385383838110307469492003652237861566476330591163680404419157189477710211878152500625956160404043783317406070410726802910764283728644476996896728517739695143106514101237176163646748325456475232233962236334177273092745645461308462360062829918644385983014184298644747410953836949164707506511090322590364552589284130299152224503093347575385581204287602123691862454609064215064780830871680262567007529514403501479677505274531921692029832349822985130258087324025533914846376012412808990339244623580011724379810925420641696319837722760720549633292390880723228773560811723430123408176879659196538201153879747829746874832338834179690781149625355682093050681334762833359516489889176136722009909387463068609511626784554937455507195954325693363386263531540691957881029681589085457991084233531389332777382714674077117752659308596122868116706203963393396174929608161410621803634034215749914995647800179606081918926857101177676339208972506014280021752300424270198533761214795310120957286972202524283100211619869929545502843682356548706279443142207807439908121603333294843090830373117483729469087809983563380826357398696835232196811267528899743310870989246096803354210202441357094680241092762540291273587218710059833780453793148636770428290775101412748373737171662660453341976624454095636426902731413240058685344617090589200851579250976459493896942238356905540950553094565491331832751506405073339807638367018454470912202493314363818038820608441567738181183919131988571529075088948764049942791621556596666170064203186243925791563705809660961097044564573616434174773645872563241709371576089436858430820296130163651324380772805172497110332739186498181574929279856950163868551451502015544378460314179027788792451788679939307923263373765627170075268310051048720556623238356777688031738807264791413822955280802363393194598303068765836064895417680140750818439286394878893940259941221107739141253383089451289051011547018595750160871230092266622817387981030068822449757940631112100389585608052702534999888528746722046669438621010345655666550790675593467528299862254984013739015093089162864521900607927160030115269967848078616102951090063138494814051843110080473879614118081737058119363732577292537968561349732927344143357731725900276612732375662393216301562516569693542052496036703736763403483150799218798800967754263139885562821951788628793750963553544779087784596104129034753540398724328631275052956738026566917023237298513230224875684907687888571212112241076182913100443367459448361097248922783572270380708576135957652894820873516792019024199244589473161846819557952033982379609192114444378563337747879751391257481057768204367340049641504269577273229502045674109401022389919787394690843093023159402997356361543607124120220228458242460961719693240418997679642923289656443737398581992753258696584244486554863503277820893867107717858376966942567435546839431955715578179293908407995027015505533281288536644229768355423743891335879460173474090631934832488682214571466517591514506206727508611307566306464019439209433326198084436434441023056903787028385320479595216504044353132765839245966327749088702004053773116446650715789317153358660919966315361608233065118429769833822586646501382283385395383987636944301232195632090151011855086819759856395241863739381074165731127072982370126433614732699733335954431166368246314149145037589900841930838029600959599711623315908872976670751364202147564771489104745217661006589472157789669275591485385210006136625892230123497965249069351795823983455220524066203987260115212859652702202056492896058387973700502252481967649138586900522893213448369143887439890193119547395018254012587018975661465902019164785835940144783267063206295930914136435744958659040531761764862347286567567648741941830672102402491637790214154839621991345696528083602321745289810672516111215830659418486894374272208500456572415509458797495286935712187476657510187423263270588876404098126882974308653473174193342981502523720100040901913584080739591621856641806978853612996326384127254628469126446787087869602038012408874037691139640523880180897521607880435055200471182971283396089269939442476114655715200424744349373474118867754833403515244618543913470292682052566229441380376593235687039357690232758783165214564011429576227888626380852973005236443150823793359067031115399263745088839464492380234533549250644935640854692986269062490928272866586189357407056065327333912193975283910504907818274855343547416753006620290177826746990961138074238315538106617816993529656870057892017434792660661074713708035186003643974995430291334126788313465162672063749532417347808695780879607888784827661318175717199558147147212860892246641174847668308687991053105595022467723303827814566058704236503538490296394008406081398899075514610814596237344495948148724112153608723828451055377489733582325215207592429784925507363993632248525289645937219256425176852171186059415866644365818316060049466958481603810837477292840750477044425162056632978674048866470121068985324462619375566648929754727916536874203880454118043719133986646332047435178977327438450871034648053133648077921012510778248638222327971061831107782429194654014483696406598098929147176460998819467812596178130959126961699837506397437095627163031056842983843692720710940178284249789786274849979840003282010095532282148571415675647909197998210636793739274057364917309309901639281579699235837530636285832232604621178282409702347934263439075637510362554419915710845830961541553160281034604024121598124636901806369921164361539485092597161359415437174137095603014012480166442163846453951484690146204848985535195838434467517858307288219503284791588273517214220315370053457693537367363090884290176768567701745446393262843958129444070048148136803980116331479936528776338236618029869423318783742000016275333201449032535343497343657091412861087694516966540024952483543357056002319354615761263495757410189226722568846233612962315686581927695671731821944834503168919369925331507950502280663717204785995319189408725876689383192977643511736413217681419082375082727312208542665388393251499841669465833056584970732594806664380159859415409983807745588308185962884977944894738361352333948725031671316165962133749524456726373877186466109797443951727314495431809110974577557399655208280886799056791189585407271509873192577435187794626451297625585823270965559010996365735171783387997539325025027088070253656896694184318192933446171378565886012758412315648260724819037518438103891071276041854712076707167186447537518315630280025873447138312382689680298154632635285795451173181556046868167066277293990099904783588878072948916099969221832941944400114914826342705208654650902527147625584878229767649031559048748505492754281328916831649202030019385334187862479712598006122728436832806996443350846820290586220430705875635495003475149057660274000984529732492575437452672779773536229201204934732862694301263390447487120981679670435528554365417552814052375604351492977934930699140258003391222634775692055583902363601428235468359714097846038887998696265637884940967216316083167079245073987835852198837544883618511304042838533730228874997501058330216588156355997623995340955504799004409265451306705930071283160819849700345085569582735650087089996945491314058915597052775455236027073430611409437937228524746822352191315569276877678662051660814617426091198016792557748050091537348654704879292083000983608718606053589625119982517354019805143975281605875715796581372930091546908106700834689215188346652764947836315588775111012962515695203646268287411113111659221622529394323942330485917544637858136984380856079055590724637839575808653723057160988629402206876165588492173154302677735284055741013984242380170728015368365793162860103973273899315246955630454602748792660956313247652616778638409294580401500598697925177203850417343680367316042363881942990488638925772537304387996551065258032801094290103428801710203038250445172624720787429518131345524449417352828282378756450119065043919835121247289952032980041839657592173729765358699269232452509655963498894505922504187451811043242232895400911889152705289912959648280493407266509735564264837146836696339896329096963554378985476079238033481031901923357625038408398291995308244392909536940488683757338093938499651980938349582363488178537617673546813541444517066709435442345598343208866378787988544906238189173176037602138813634582845082987126450863592637837678154839593845902876094984946968149566931804124035884531965423604981193484868809375422342516290457020532381035712109204634077678300037833723554197204290398554393105321321063895053135939576187599150076767072109677076939348238685485091383020218117103567186291526900310028771113457659713054242963892648548405141150721435515384069461547317802621451583313341850696481438567464288449383031851708906031076881166872927400407579630302502128070921087577890847539007299889388601112188489250020177023736412302801187584291121290195567965358435309036923078278780435564398416954101165757800007500373173333308617968953316647040621178469943918933793638347102542204739160491416096291083696199221469373255123968473367458505825451699102225130526730971194614320032924249338114480217970034942267405170075016771838655956387495698143211313141816428455213960825168002494693136343859269777849397855872844733844589493012131960170027744937163314161982040742337493682143339504719695777329182591300312285230538383373063629586679448994089865593490797249546645105607333796798475684914652004286689315811983068668559153002029846879659005532277491859766922663054482448291395893868118299876482252688621915743745687937770170288469078326621815610413260487677701204417342187923526231172689974843275913731280522120198232215050127767093769515859907638884721735008233470778991345582770903182556919289307425887039156251522890494125172018461366763797645197812537573460865704115930759856756549443201407555209378800682494918058599732662041947448448204500364807010869944027811462057918329267429826340765418939531678022221139102415921362911023325740616878580662920827979063997862432701738182418089062373844809402457183245819994008270462768434017094563685616394487586211723304162812113949899964901691941239324386709821912827555586431021855284578935082858998076024795245758907652162484019996092934776104256455166498954065230117794957333456410009928671244413596191369394890750794855629789078518848229581091683214246902340929924141262017928987267039084338631124739993004316019665597299416470921811456074187476293236301599670358979574361977609842298846020458682277748285013991548923479836744016128346227053637265799026247142491617468466095540140201827701964516826082893931948863767560403467714070468218357069833614637741908560246780774723069758862694225808672035327143826918924990223675515362023507271289585022415309432243349536380746547978493997770208792899531893175079342164179013240819815663805767759841191530970686563076172533085834807037992600330960266944097747646036154992177369951101835030759499512857863002728915011954766135272337331120815091082298384693671911886325393085888403752220901499508010503075337257116748593702734825224023472604338666419597334607765871767832549877832106932493982493214438198660960609463258972803691451060672216314176043395699180716216329040883680856901577321182202524829079740618461007971501415716989192127106998209327519874539622458708098692251497680963362929446645340897642832339316539658038316203014826442300884973964492377853596251809131797932017875776657907374160098472159622003697736012588173778097572071513309678794473862843419496380930754990259933050225106293954976181284810944748265294580132935917385130356540299076195049928103322616906711404796298182159281197673352301705900251750061630973558549126956381165332282087407368566514449062167656250635931140735665442285645558739271608581782750225710078897639072505615404746078880780050951828198797310105144296413719958216627261831741881714321321603696957872667199941886065746288041074618256203520515826845610808196089784823416110718296149176490890023928689586973632030381361740700549008991111954014207238994621568639566258165397284606209709335293068168709306653304233752955490697923318321497608229187551951761794975113649095808489242530057803329730798201521451187159447823513454541139718416575858427281274945596347948097194497775549891255205788203532706133201603088759348220124524546756084311993082688363412820688778524306378290210083610089667187776974473832696232354987345396175804118113311955640300733798460078222406687109058897046610243626059373207665506539721404370659684286746235820195761209938114484698687800408642503536658636838906669489115652587973899067977625767837154583903965642163467561341577519023271232281823794416227412475486726570915849995141266587143886157318257267025384698071857475213088338990531717594445352970421588315717201769598379470839469604658729679326378224364238731632848455411007189964280302651157996673296920734219121479431654703156489457391692614918835734294767461730562079237352324208089030290551172490768557318154729899923274508519833503004078181734489557863469674065567015402009710285139258896695116294067408849754976990180252678329291760891921092370717509814223116094504470509822969476030026786102536374963285883755125128464729501584148374420361780101934261175017078266694211341865372130795262434820100486713502732310452039407977177233112764239373820842511551979811611957210444033559972358006947084268602358367678450416816775245854983910532179627155641679518089533652264023530807359728844400966696572174354692282309722749920507463499622934649247741051643223209381451409592273341184458399111605943066684905375847296090725673482617391699007217910743820144769774805447511121373057788070390727730595850721449397491712134983633048225342088233490531513464785976222966564307548042379939595149570811316505188144913232599903301233774529910323599269699694133272880285159377476189297109022727120252647312608961216529167468015281535756937015686920191458910763229827085204501647760172950628675488437888178739658599152648394335063520708141630831687428548584511717258933198443481014682755528975715049835357419452012227756198835941500212925407841346760826499512626617877517784872109685722558096775927792412825790079605500818014137967752848873180036374710895615849745813610971660130330237545587172165622314360402639723788017195978239768244124344488281076630821269437392074207511564687992652902794838358268723938433021638722662926979559292607552027406585655316953336172113470052688694642812912995295784105605040686494193695181439826039445791535302162274011964254850020857996952228686123832384279378431890781528435484790069748699099420970501883921375274646332212209581628560415505166395878136628888147531299475048972337543912783598230065301858943749332572239295010094702926465631873456844313120935840990850274634542296473825297146135517031165492837205148349875757962688297528374816226658472092776493466790069581921018399825318360755381693180964449748900588985152500962179284677913981508214027623076372738499703981835243899057603058271659542689344984430957073371038761296196894188605529343407462196769965950108336873719991547597817378404682528391227894009164435433675325983116640158002877358786570649616341590534826033207487251681117158728249279461905967292261583620692791644350393159342644438342049176003210372627312183671883359001321685600584876051462744892855403849086187300927520805822222724359028054028958915019377433634819789641036536089711800096111629218407612479940672146158343980972968118046015377914026421378657014168158442534937078689771252658791056366675644096820217141726045777794680695675395946341057305532713399588838212917620536124782338454405768722230032425951801084719128604049817571805903174554774575124901198111297898575188911317511281570354331930204920620292351455971339096530044898278461051797155177734141395969359010180646510462401462225472946940624957189636083320265276139667826405255630800703584307652135544310347485052489769376168188373862093275429624110256736197275124055738530624510614580037027878051761219802006382892015676454908930494215416277590519916653117628684290564244385078033751667246044158681548457873248004218974020127334084183278815878155581185825631369467944391754467947472202459490616306417531030804754025057499456432561802885780484282583891180743998738534285706336681610534326931077147739308706639540317394684993000645089453577825219833481043697069040221066382439839337916076101091333840138752312416360376194510021192618140322540645961392136918705634263922260528320102567526099771579958289726837351473336819174614122913632947654806512879271275786939174989399722982369111845293488656498064203771982437626284873206092102871550356154234538077594648366937730819952085768630791294200174149734969478956713884350648810580173664041310392409224105307521433560753215559860726667452008015715835296657503078781480149896959071961923000579952848695561122661317334314249677794365779321443076521096084035702621120280095055679915744996355128285884113662865765586483552102695844888810283387581599863234302188406598463278661549357245032347215815470552140087357769658306974735712660057064663879655750858482810425169188504738234939756490266480613793121380706272632093717181279463893848677135882198040760660706874731399937389435749103100050457542794567618847921922467317990464781888499528910165259441394669981271749667292589099424660445910273654119949138624079361684779630197735958669096072118668278706364408393116583680720125359544992649294510196229886954049152181471323082656506766772147008470897195960392286174176693397480074322303272205889624704445303990841322609192727002363866405840304989818307731016426011680586817026683461185135199521506831092571421973875979805551277167488872824843139138015118404013496185752915085029228761506533360909081089514921735770038235082915222732841730380002424298510029802596955539285312330615936552194255841514255847669557357151490203556123605286670952813942854382281461204344504996740418446196011282567432073438923458021381006670962051541473271137390443867893302293514786403862819612845107940655870950209889101975032250070092346516949365047799140109406211173722721134046369579860823149748446534446346146093508536128207842910342916133178045278078045498277315467893033918104956349942192680990460799104963879143366851228703986424907578928582391306197016696323325841149278637579879033458066809438460428242981408367013514244019596590336224243285585982273239618413614478176419459690667623501720995934875882025382412654364920546161748509883135309649846180138880024435604203739565839604911953193612056550598369314932503561113634299717997754922386120270756873128407488478823489258390107479724071983154909887402141336805347719351301509410783155009081155765213547207804316257109010936228135915038098204858193620339090567032177075630182490613916391374977422139357613224331908277662047446248557606317971944658059906556575352921495384133163519980870608756428138576708443631788114461048077661608787793533062402405859264415842521351245898126515639375427681663472839726526547961199566847393201163138943129344095518290596502241138176192225346112373422650416094655750024930847030704904214946967431037176590184590836316062150195673115164627249003579041735605754881737391192189049776745467671479420403677897621126019618749933334035561987272569630541017437539129711610127409732251687661900648593915611125285275714257730264989703652501937566951067030511138230090476768912361300498159793632025591839093692225344589313129869732268151527916293745617369359346631796724879872280096184923928853190383293787360521044534097960423561769992734338059351636161721798401142184896403552890391553392865537329145675455439142365352447726657481585991349675348536319629755082373414961820708748031338604573270127234261270868991225207547541376376532386341525084599672210892962683162629736029358141938016709704903180318628634101961240317250523025097574314044362833058312763500721240592814286085401114672068382622280799564401392751764014995832545661716146424191612361122910407496638640438773279244784034839434704421079701291523427715695124183925450726616494537901421677829847486409923091093853975315334068362778400557932433072586424726201391022147948569971079285066221195350251209404041039700115612294951295724851757583024564981671926835609718718470591823220134766981046685117713954088805104298384918320125158121688775879974223628591308243099183610357870872791607304013049445810128651310347078947890641991781925207284418558814667021029899178603166509068409617938084097979335945697380660737492541394236317713875045129786978904062773687820166521758687558881273045161283065735873030470543577675514752399792608361812077954842236739834543191275678758754891977836752554740755929399969159349122196126020969660339250490221441111953321342496547697846544137666239536134656828355113371461659063719642101275565666673570605840385652344591755617737754543897841437218338713777002174713176139411658173861912178788431141577765452375368300161814416525487527352243435644650281753834951368582942227178317689461165012197440016893550897701391375042402126045885614298090397339587868577420446592898445823415840259208406199292619773790622049220017027147816918726158910007223589405878693260803817698004138575258533002252573545476788156945385827573863525591461100455973372071052493934369771649878803958409582334406142444865694073615152467360361707245583365279535479410314079282113627462250969404739036692605533551249001217980781259349158289096736654976068878723216020334754349696939362309083121862146705298335062364944078180130102146351245630517219778537332320548475848951851250740228586170313885689692523165545149195817682374829103631154879086770986538502697594545098607330453176702982352715813569795052659733042264360959177194603515264442776495407538327095037400766868729457841506901336130950199231427808995501127707761336210079292914966384111178086527649078885937644377688922427074450118580764822364846249673273378062546855440710776277497993181612775958004196453367179682285165841129563884803567977208679997631897436646209155697529345588400501049889779336872056444592879687931622570714342284972190048041389260470918671280639615899538965319815999459479612094460215501842045572919256317095298646521215305225978629921417786310131696388722318087447575709118420224267947096337050074026180207572625962708862135151108205374529180244415814558105891563234326072497470562536839035067001574107708497164609753317247146134903674350065345732846467853858445145996858995045960039237575524291637233127175807167638110807083825870046401281399902154820491127325401392087533550604022483615209972490129830116172515660608415820215703048437762722686800325258324433072349326313836108602324550508835341267505303877241921917278333777086394167985890083138417865716383703990313917114683777105666023415312735792511797443980179748130143082744153799798277675794499184683592773804882756792711067651614056207675317353773858360350645176370441909423054122054935985556825240943332563424735614779480670520839025036165922385898539178816501465137654298758520551711876374571111414026108837395175310986282789862730141836423079948760092097766718615602131479368512065569962043184754104179830476418853919370567762283750911640253998670328437120611806950917944827464823374171492697528021099391548068841801176419866775451932701952521164062447299033832745263690803684589879439510515089258411812620120610042306004521735282327170327709053434225069441368984267038634914742178756683883257445666778196091803764951650317733840844843707546284609410153852999034570634805642202851596754989488996044684767465462132562029997126253682061901557559048953375404859410313539544414647534370195121203229703047330169597762214840307872126679598070756309799741312630935791733766646712479601410345872304940624866842047919724057021873534455189232757343034111219758059806155833117382487320057812573315223299794827605738740974756846732471851251728198921054824764645500822063164806334462826086121222494540955922504858275911690105742774788749305837645470835473573981085467680778021543240259660087263961328196216503751322558519006971277325411300795252479021351850951988135518869346490399132599675056879136513115350121836794398614514467370978554713256491506135912213321408185760350428626403552711859250467641683513777822899722753704226417792451023392570250651391803997212118696227674184441411371519383155469353455946252400279891401441964897967420443274516385121260000557797216283635446597133210891552562989126805369796779522567441582734430533262177803597525677451866368983310593660199317770444527573886566674187192696172066734404066670401521641895422976889526099501211065280185061494750122751831677658340456644787297942829522248746587957015089081595287777288259772530158560397547088444690350191209911627213949300502777602240044730472603700659395727335460868643480744924878188527268285253235211299311825754412959050368896127960657440846352125562197582654939261480378915178169743908720117150527392340449994451085778938654812977694054757508961988816752557496208170191387238826709120503304353354638874741286838089722324384268363938030122501539466783499012819732708973044390144023964585515229571499130130087671220955730927728060795771924033635656449905977820727069950175723942119609904073343129092950025832168395638553816547448124659651239427981409397837019595508994624736357292112084852329763963655459610649926957695586100981243319892499733399176768608559553816135582010608839062231883166589780074953295376086565796362277890926693710351971685326428698601192925542792100446535245439412149881282491398324114608839898334017334931516522826874011028825839672737931899821772875264203841434226999169406636514072676609748019069027355688310394353764775910669773799869130528861138808931458909028949607469629930035865650152167389732828491525478000838689864259599434150124239176794701685473642152854198545838454611556456595207236953412431615405542828248920714780604523735842835531240359855664104062688356934344252138353166253302989625906860339734360215029156394947718121991400038629251445743281127848950220401896054092061852073751633264359209262513998347365443166259316247145397280386645517983623595562908019432114699523886781935724991831411684720569093693440591884868671433626081754256159769052906581306117892721389856061309739959157211993418318467569981363539977308084248959066444122083514160251706507505116920329790251073941686376112218602760015789656704067204437214691952187185609463305417882545294576900790825710779057848445121346036209280299106186424690152985047591019181869239456319614693037936248805861731673610334626970275268468836550196706364255327467740943229551738974688779897010363536158794174340483707968723371920617235030810742902263204253480237715378560070637062158463930094001328512781278502611190932694217274321589382401896250260156013857207118786016266527113263095784345309375123564724209296595087311664753549232552376223686737147884335168445750151194934925664811308577277526059843386641493740634213494625526030782386350983453396678667439114327052544306452081636847743895298127420835897923923224836917640470844278737017895277359819636721287765775673739444599770991861004463837223904976131131212860280702512256897989663047098386836361400762533354459968184905435613595696039681194083609479308814139333644892485165806927347350770465383007783747331383367926863625750240117191931177414108694942607455522248618153293969278257088069449708290858517439219350469068999234702455157228029562809010405520777292534522935724200302210197228979891899755713373215148679253935897986538898143088928249169198927911435566880973719448722379067897788238749123706479155659242349820158167081168925959773392665797487078321768713297441361916280337863119654727064720518015375561643835228367879803211746162254038094479808390168055975023070487429468251965941341227044443765513307697805268108580041266947653445864035465835882167529404504925756272276671270510957026318720309265112222446369156642748165444992574264544523098003464280121721925000944384116047071977889510167868365300058663413665302186457643033090258292858298377799336559607616242754484503633486014200918593843805251255874037876202852939898630512896510443364524128539604989787410645429614439454845931039581779103632315143053646709784635967501363702973720003052035009011803983242473035175773840507701228021812810387387400265570226633674985118616279701934499340012820012091443959726673313123754898744045665852642406937131251506919829742374953759618618198480571078251809863672617516271328111449892751717231517025887351767092160209669469138039469444753699518071585595675260817583475564498918514631665732456532563381106714321955740039973144086129902937957035303497701290577179638646084180980994042049764016007434572601636717269893510615404312433562028390542840226884864975592862018588024189933918316869927003598629399325363766663026445472142938604854023036895313295453629943443472374261057807404197736970062362450533713434266389056540585854298309263807193387876008755314582610046827904508610260242262601364727206314704289351060183802647238766648532041732988426986118973713157593330702725991356243475799526373322286699177084202770892630741506034432645604086707877822694937156030281822131339921928969020881244614435805795254636830234542897570082819983365707953579939473457983689719386007631829403916994111961677680064023427435420491219103147884205316879592934997333872300965169772119604139385568216432883011358104802112238120414704155006213444054130842274317111921903022274591223907838364691849568842709611297841106877242649645912101862164131548865284119139006658565267976668981060914395177402835223952705996023366351142186264396354169490586755268565466025240698510435993112668174119202347448966810958979596685261243882821071206739975669357472087580107892395578332068116033070965753065890388359714687255331313670002361764563620384639779913986225920542000766265698633483541289975569864322403394141216603940759614880107017493949445883563579462390619308744932581664055752745339753092899048602630937952420316307323844729165998059249541857467019246249904690835489420497495656195022969504808219230127853246138190824993603917799089954398399269642067754510555238260460880225562415742612573754026212752953794331720517333065647207523396659097546261107137650899069914962049561167833864346383154233569545470128147208818726831052533013343383782260731968205710788335355512040699222029220710106787919048610490662148955491086525850678564627377483373263266761756178500991023855747169645097047967058302014547593688710429473254431419102312170719898115554204727961751288646666233743246820166576548654912786594333689640710498405913365808195221980423943416628106729625519175357895685686227194988381618616799754844098020354504089818776799636897640097444374693862712759989658423912929741990730170609826013781549528829761911988195515311163345338774530202944424650591867342165325325184512465941596877943591511391948759871807840849499219524020833171788502380454622122801321784784262663945630247386060186412063511581675785977144860070154399077320689477355504724902634189316413528975163579687594479736602131799255213026988124046309327943189116752941692480654453842550241782393271555331506318763070862116727149224914700925729157802315574848473593508335429037492436000986266559971334911785821366683686053872588309544698395771812818869026697435617879380471865470462349745264448713608789481447744230374335495996404702355702415732603108184774676635340683374271899133877438526398096495184518056250575264894109418913565933252676760303588731359049715075533583616196285732924487407867041942914429260832208814657950061206879224756167883340701165864104143100968082712819789803036783867525531710196608301371479588927663235471575877786313758720727717515566584502951564633770045288966467204538909414287687217865353228453409974946435915326723189341199512077017797820373969924170952222008919701785317439969439191146536833605962470712798326969652780663356802859076581942641646037224888610863854398776450033308442735602087847643959527909846559864136649012519969062024705562574659471868453739541861239474560347230033380168497438906051678685611796508319900550945739623591366163294426529286191224560133265884518818440558055965593399273694429588064626793804670253153547891107856446822846684740617050105347561745791439033487612054937331309559154712479446302123481283010471225641524845967367250987484661561941251166478817714593479067351549450687023807371223408543201789513306912783116567573748880258030306210912398978628149263692522472733136098621529532544623868743015132640668364916418334539889206415727140781822118847985659582850856875718230990658959042202030146623689976031988059818143275087754794780064960766095446070880946678211577698691707475157517706118770578699071335964248296353916043389786276837527657382473166707815776132137716895381893828275687354163827557716681118214809407996723075938222033481957991287019553352236759135476043757320221736820756347326347927916346741915237210315216994642668752247743859525833129934483900313057168342339267855596738191968494917079665907229306755273210153257084075822614901328027254904416613070596494457769918554879066878379343586324065503321375476279990348920273907163116864328198218860687694465433378624252358747623762957300546067457288078206814721303116638219499132719624858133591242491041474426683986414119040151993214732647636416650793432051596838096183469262679901675604788758237487929624737675750859139459223599971991528187738365462557532291986833074008867184839254268257949640690747583443847547235719952864639955903174503786099322558729001780625076123469348730744921466092614423189829297073684077256981717060552983248761923773288177644174884281722372038728599276236987878587347333645856364877178593603665559242603707968023604002839204288205914086749665124904940120642213231108498095087540388038652403535521659952781321888041792903286712382563222936551295792770471948220769988805261767830075927287188729926388859239684685168131223710955199296224150976179498370024619849682075936373886769491131497324071482131285979541034595034831076648775453292619030393266229588799468358497878981513044827824931013375896796658310311073164200017726854718134570951859042415177368700721596421336805197515086527646129053205957873297303158995268683076285349434726315226629817243677567515668003200589734805713765752193526296442018638609874537043403939243529395210906502134550318545223728955205195474424101599767535899623541458895426831919966873373450200567477794835916250465022308918555578683725901196747549735867252772547542569281316895727333015828699880596831177369094516209300191252489986855304713997831653020392761543974736262612722789915358780731738042001297718758674915584487999225986239169400337841793173591558298332645516880806667923728526888486623023266640439819619311771124036230727228740030922594924186915023618755382894110247375895792029940948553423235089279448324427028114246522618068640492556908341790695580773519318557627055846890668743080785400315429555953141408198909238067787762074615209421599414153308775698204255927730324606403745226205082686175228514405585401139191843536092712694628125714474075645370049162456568367904327102398393941296574515350561420713457400594370776090394709464360968211316503054821779791477526854269067057455539901840667973998165399344811385096010359301778939288145943937180040236602200420380447735285590844799532089685187066987707597134927084322357286726688538325522277667672216240798067958124621999556882225634185678059645297491040369909381977479644045761289742593825054642279268195971373591641284653624155312283988520336403753497400994154292636308252057913889660370705730552345990696960427769324538291574025385086940291678914412217071063828748754441819577441852517957872434417509295935252108208497213355587323293444450868668008614090129103413451623455538147181278936861539402053582072180075146817917499275211166652671656550469955600736503533222045351317968571134751080825546290792737342122834968352063320357113967539303660819985856310323246310481763636382378862768447987133022502762214451603349034417118238935453274838581093633318131414625456406766404354533672179763487543875901347304142148501475151549080869139682648339621592628367828526225925825644812312446942904444154085695074429985766069735050061177943326030396920701486544545628840805402415096248188270049335242661242768868826942178341835205733584806519223332825528991216395249600274072159369901386140787968195858949481304013098133651676979738314239548388480935529202551331563318864968404106984518300387336470878265395133413462301208101194498635065463954176323993351021402412629278297177557971842745695169752006945594020518928794671419800430275855024812205753750228139903411699455427841825242593752230942308456626508070991544614811264447391533850271228100094991053115265282813194473362811777686840975688516844377334535014007239255029838343996552173991668511444086137801251475613958775706402176270740359955384458415869836438829919036333866503533232629929465451647404046463163913035415479781606931072225483355927614743830429402902407583278604444699303083349054004854756679487792877027311251069725413270212652617940449830508448389827376835232170248640035550723579471129309132598532696664385294879104477641402582674714507650109419657980329002717222594391695377695189886856549865158155202152669383216121452475600823301906037795284046169915936916367635148103945124604639781564572098101051736292036015402472680437287344170869154046820534987631589834060206940760347464915885899763448803168962293872385681921173191877164204740296050508689995307244363220138832871273273070244571367126226794940993347409347266559412181718067163199331364935812666021935545060538717198694426377609063306805175896044180636981402504087807460985996398329436733151340333500489701897547981779295323311275657990348143228071370993173692005076802225484140069492875131715574608852480399877340447376460791396821065043443777675955151068730389820866531682153972102687026692678210625840440680357017658980140125811234915938401161025504835306798852904616401934990644931941565110378235459473601595138022995394577791559143451122923097649407864559236162586549015169054584032163321763559450108064155507322154844857704438575533873575644819578139124308561371824330474040102714014832662776954301786839213520323891740530593848202649667336755377257227106385984947175938770879607487322361549884864986545349088673114621325073157604669729952622423362802249818699037055557812096737880703719790200511126223799957578776979847091770635079231757399479911954531604878720214727035312123447586678842147764362774942187425278954378439351581305265303120095182292479898675201580918955388450117300227577134741132980559507391919327262398574240205523802906731790844699895832979111821401584921692260342428195439946263776517653751029707647984455386199958985496557429588716845420788533517713854977620843287000416751098817377621785001191955129941578982184356251084371535597620179283686770867096009075025519628834672094592484275434019958482725982699795115231317931289854125938141404015412655209899575800012065220754031854711120589668075033148539950197014503847871103952124279433895930268423864206849548165882918147085392227548087284088868153680294251319676073598959907743756678659638701427120672665621005743524735641192599558028747905517768312763432090848746164376537514113020757452973743947678398858839752070522820785003569607412983500400476930949941082770549627080414574635710372833756814543330454372480731812566398194922460933111223285356471837609156947226902113590599201258702768347067086401083646532873622022094919718415610140468671972869274688742056894192427242411520657277988410689313989005258086610714948982306092067594824737527784939841148484849723355706617930509143475737402707823772531312532209955987096134397418883621095760835392130184805091327725059578495476618518033895636663550072829709500260463448022375880149474304007787509553657801197856188737945344540860744696957927272520487675796228634787552407780330871841458571042247916256337079130713352659727834920276724168219230055569968569579211907197940455741936837285007563743866742240490735535136475433179302570949794818532892775193758578232727140147534900959511612458943296093272817183242035675706414293474306366788317448614143258614494372867105134605102349042897197185865440868537356686870438512777004920101324268055051950713680827678976751413687891308479524912419141627098193325465923537469398241641076032258561082696796622102193052724182098606643819496054156737852244367018267825154623270481452997943498185287148146703539914175898816284029736971731263472556869231898382358194003848736388275079199371173748567003527587690630337214817104568715583701640547451948637779963923024414230357308247462910919350177867151183680045333058851538219103626214894688340399515231544578758892123644124256639018875474158890845157526821103614263043376755462016268907495359615182290513294170954039151749920029140844183961972738590755528394676069710612297109116239164677171986302159753527496317931525908435545983078966423714033660308592252856530367702675898035869919895663371267177718857252241084336262066329165807977393366451448587426925155404307147826157648651707853108227106308987452749725131084217076901510874449853536159558924629832824499629453490611839863445609753347803519728755217494375625131146321420105501027596887467221258081121933928551365615269519347535611751660860193175927697633891524348190752207412335113923492865881864840950179911071636294262567596085746796715175242072044479513809630417356496134001232014151652305622128519384747934492888761391187163676280548323841248974276762229883207409916466421684237050184665808444840171628141888409424146387617889235026074883543615349555193597182992045834227781091710224564324960246456701870258796828786928205724022425082398310688783771434411315955281897224187038163568838754337808487687120993578716408397195214809040935784035595870021449133801168087628354512587812546886192788371334714609024723172990797807549119785245457435651516085357693906067879008041036449117305884498108282083025765348737232044541680614379945671164872852857835493636405355034868601900031038678370649796715049458503459444319646258983095938895308072192012878025914354511307046792588037401078625646548053469683362441834409147272458194870454014375611316690142038483106844632905050051457644238964415571115422956073117618397247179887773401162200098010623921428739284430867508330041440008378506500132225861845001268673517936965024688943226825059791678315621839558072707022808728566180571070706476621918375572250000221492134442428076337939271675087799493699147855886785649357309687159364435388261986857975743770506086023472018800362605484062175829450951695238720556440842661471805502153780791704280542670128109913447344535231939135261082300615353369001675379002142908311785591289416890516513650237267889017356639179545781878491132958128305835503201176590201502339549128591922803074891811712592047268051825710121538128159627205944419584929962620606574820483395567472181300577781757453670214978214979330102979303310712016324609168776561911232863385286812672656244291077441201897932575117769435618450696119688738808348787635602253097996449959815067855928972365375907554498861291306078807363575758875698620604012364921152337710517852449191089388073584182792720814130296404809562716799905507026612357737451180849383254804576195906861066860399091312090002322109307509733551564749699533324249948010737778806412496990860897900864620472273361183613246825700462788789349948633423649875304904940322081818165860990757707536170815149682561389055100158759653094673504521567854979367173567675463541917821374770339999861514652625812418253693231432173530438340045078153792531736432327690656940249189357246187521555461647962165312787671051600471295757531783693832171453464463678877165627317959625968398708777441696905363900245940681964434606604215695541597046061825293715060144300092777031630898623696044716344546895331936381767439212320971039710295838546271930131764432226270745947191609800451682545366558632382743808029125378959515236754384524194901524719259368772724607457737582647240185774193078264618377621490562619527502648729063413354515817823528466432258929567462298315527493795472325611509171386850050994533357630446894693494379956712244234621657699101833541655809600340007707494346467464025309890013832997400603418318183600716011704663860713876496846937871925649942419730821591081052123529743470493502371198195278437815447414290975495648330225491802303597187690634182021514837577731012743923956149231609605317969865407810979254778023980142242851622755129736030912889481945075375800316846370698651935740301573321309740319346926837286090908225268842083418735354339584950231589202440788312215607251042108750605195054804519430782777391437880530491749862706647754120411658199966187567161018049578533769184825632066943150565983604855457778989846016519910852340510298269566904750702844685075794368055299620414517214946974702282377291113140807129720593607816097608481794037356491243699782785021360211360235573647482982288175969698728515571876589724278858913026474327152747341790488624226051974928010762153826299565199908114514981080511536513652869683655591891583419181350888645530224231660770262150709033484837131739273530964231491348699240719497956597949149696799026626658367411657475367439930746936826722056989586457977131803944352650277619394404022819314842638121972480978221023246784101226945227854127295309022649249083226032901066864034460861950123020640666947048444025823898336008691227136821185676106347000690988207742835099115820758392805525528889026960753980347270988965973628278756591801780477745773092997754943968710273874548038879483236919727845250294487733736136384533370548277786784510770670916361179426520567319161586710598556914351802509170922461426573493112149715660679348721279852860357268273379194925674985575348696794570543297363448579122968827238349203505247745270861905596032847615108891612420136652977403328732400985184581033943272504048207688385434308569924297160592248170170935942120060011654759128152789052451654549601414374866435172999585149809000146784152855882085871065697673623438894715446700350743911323255206961140539398414281146643089281741455302903521454414042361684164776283938551109515889703545089285063569649727760406363125975065630512025218745315769521622767852715465783302272712058410738229341859516542574126862473401488052397653259501708351448162254324790982565104609334590594807720567662009701229417031522700284237567543539054358966667453222375000290256967326998978507865025894789882831317728306150403921745539271509380964513512517305150830885909641824818431767518144463019154570332061757060365088985184963416865221879525792652534910963854246625049265450294589832712708908267002316333582857199058407396995351251771034974871396824794283501340954911678809580908950762334302436140728509069930769220245422500755863690279339144009872372032890587770877404341089835821363183613588775064003633809366490025879340903528656575506174558612715901527533005612804893166405667965950679714204960583694361944164951667767653231757350265722487587115434571955664900745269567589638221904781609983181689222107979921614610248935634672270637805170772851288039288225429277422083359511901740379592561868924829290516211610979647867536518348222640534488522295353978322115560047503996495779992756560561464507504311863605104985827614731818617226777764172258673268893741308012904423574768362910991311002582029678405717069033590355308198258409381420547358924589783932108144796418071127769342654745130996409236397946730283339662341342700065150705296770419587944035394024800466602599228113110536672637776240519826412671168007533248693753820429906963310658207259119385052983717834649031841255767046647818911316376182364297958989829808466227568423554114567319767587622661337928740783397943812437084257933786129725049606972716885072357546858777463965990667307793068413741903867288239889699673757968986073954812732941524044738604819993548148879030495346163077530272255332875680921570591413893076964308400452756841802642385937913173351199608895044339813599254520142532149310718097309692894682231897205541808169932457646061573630118568090484521347183088909250656049172318143995322543626453930441803959006454368644906631104801044365097693526210630210022417923848231026790047996544651358482768627459514360247651282840728562137087336339233198544744326574761287844870840254050733257075282511504623941794818492587463752812728779813366611763284107629684043447330178175047260819711166015500037668937888730026776626118702063555285216194047033003369108146145378057071275207393879036113301248893964549696087870690551716404991459817883972313650186217867587612629487917502279468549245530864167346144654152150422575035269145615644715630661204755244726231031777546406561907812480866811623565109709641880412572814970189312866952296469811230647197368183056087306047417157358808741615360216727815669880692137845808552440442320811992557137149443545603263116476976730420401801496217934033452712201574512844051739146310603832252338298173989559559530478617613740661558016402136288962519666301662342649382878958586468768301297165741012377800768555881029115822157177756324384622884042133070178873109420861604742632253243967089754398095607594505026882153142809776827339063994444706997648389220165288483944594456057432777250299607307645967685070262745959937316563703084388774770579581860022620220604481690038742346447947636586565015130887136471460881683711752113622305198767320032472424046266121433825400597450380026888152487909080354552177236782675490938705003893212742652722596905933363170721183065027302656503429351214822725905449954986254671458747310720299926073470322721604047345288427370369875265816674711127061412638839345131201926168040235275742209521444122915586347745262240449768807002339220327924031058184835045946276429271521616034436889077417559374101674820271089052743061175838002315280732164784389442390294298970885738416000525608390693512624035420841505906532380584620128272233613787213002255021839034134231776516408077673394378131589001883881480813859745262110350114192562651979828188631223191317225982721623051284484529362068335059565807216146238037963994108111812489734311047773759591414558819745038148607286208339084644748203700651705626789600470919150164373030721281847631019632459546090895311036500210743519455844202868834035231406854052913085130764932502543717579084033528466187283231674218134842230077247170872135668889630529236897100824577963709071437810339797693494663139098558680873896694655351754436095542179100486918203066049596317926598079576283502700505992246332093624001221241435587857962346972313734340351068030192077679650592815817047811480102011232461868774756430826727850967863845248621789612817339174626072824037522633773926190215494132107773514357578095437691593116859621534453253840162658117453426245732939420305765986467255290807193510310144383902233926475267822169439993843725643145210162181586374589252966745286987853535145340944733611137263568325491757385023680452495541949255583995661579581473339188372790354319053588076201146211835479208611545734933681829433986491516933713463540646061307960738113827368153835472090045829005121727004023889119651136043007063467393304064923940060058030533888138441724807309757367115720976127125948730340844159270491856124282172868147852143021133382681175755273734347291228629306998878343481582636322297339081492352658846512568680857092911406080281443056477504414595053127256610606632717345379581076549475041445175859259919743784528415108630107999369388980177973339412537433062719905261012583098763785598120213765009927123220676659800158020265472900265269400094009323323585263766770295605418580461170561363271888504256575124393242797228306337333613660722886179957664301001445890922201555857447055522913560534486493629136004046682728805308302325905388765271738511329825020673903867794124518774016356941306592390780338553228340349096756091968813169036232132966246336768111608271117802865709619194000120827201781081728156598132365061348220622031524629827377040286005800006298520492722953815539792126419153214134584364733953220583463623638056935587855661329357102372050101366059065581949641763117331253718640891956243021231614179395866595704930618151938106346243616080547775640585473110659243028014755878900395709550009995873783584818822663899301550925682360553334916250623061489269232311905463241547306730693858026350729955605013034470394452911105594497657995956744163105443874985103881416537871361471896267750195565437312316893236841172314374110889057280012204730305965728745491296788843280089486059482755701496252835724526586659203613744552011085869400433596721225031072028812181327964901950115405825749492045770542769404583404214602693513241223065743038132751637161425007217187322241636789134468392353966550294430027667659867223592386595954482899381493618464163819646076412559481244456390185682438677815120277083157138158481426480350063027467460375655426640219622856406038102787597026816638382780703678601887440746384612748317424801060162087822441564936011968752362930304481710812710001599466416063746117797510040200184530044908525119207078378960532909574540246883065471540021715935035203671048211973784150057560719307019697194519191244256863064943628978466794101674919443196214137002911913686599681630319100806415554697927384657901393640811325209583563846484585043598670481499170598337227073515165378870870704652425446107672882013572783750865569732238578336632422362905331323537146289330348357295531024465078890462432538017938281297100871412074946859396724967029534384516359894546850944608394808432937961624299494408410141471125376137353911766454342332535244431628822958650988707809563750569983383141935570295707006521297586462132013397019534051162904318746439237729409490781426710972353049584354336137383803748084459941706428466524212108410961414793631968679050554283944140603187461287686360499059681720023511359256050761812800466438308222493327506119809113608989036798771449229610925491026915436126165025475831709726042228578967438982604436305706223554425060634984265950718811437777206781643799700052557607045705877625840448215389204037863758943209209793876063113491950295236191480132576558698698575306200359188802797590034891076763771377372138256184821092515278048976544301141744395974565328757776446422630239967072988387063123360292174653477561019143076751831435955067991046269631086627654014618494704845096834489407300610740727464060238513561609366840538491945785496981759145773423288429018786905701124763940450267371945269014408567741109403251587692528408414503694480981640924542381408031607383917146596617487700332393724498293405824115138275157257024618103344844671427282168311271265534884984598868198637119258171299205633039173237520842035304315043313746477421857244690219628345768489038498072734535427449218103798136840710853482235394928288684298718544031508617453276469313771083097969424338419228703682385903031274379138455253154198255545762346077896934553076248619735411078089695356459656897363090447363476456967565648177363713283269239047170823884444842040617926650051066233630270510190963635732517290802621509745641771160546016633512287200081513279243460425389019790509430276681897239602608071823152136668378002477224146435035068902805934205087097353503415879635986585058651608691207178978913980712826065013953316154520850226813005917013176720581198911898074178361879263510891561938867673682426844877423548718832359222429360241582347788781265951446091563243173675020835259699495423058520268028409550263093068644413043581586499700459099066187840514662905310317614457749087390311621718800562013510764828344161412823219675712939168342292926630276339980593753570697291071514817911216577533585534956141483165533348297346802149312752540169205853130917166400140669681272560848940080558911083422584927054124081134980909968828225661769767560429462383139264944518552329610272051589518654890510899878695431773615470256317298383223413264638387879044373336526887696672176222610331347946353419752409462544998838447191064364516499559868257337601479982999037198273412862385159632048645985734280714096315700075925434418811552593370176457259386534868661799091784386671570021243100739771602763534314785710758282189674695919101328772358445824970714934715951085040662865861397240974058476701007721679895706054076660472307048978546941764542148557528307716351926672723188189263120085329942988652283019189474392146928051182143901844832242103611057111475576845708926884587116737373581041049257694238425582251815860420198786202173937842851661615009541274415087473390528451872720593093615236918920638084802620928428855888246051259306453143585559806621400677402181374334658135035665982942692443999911017631406380286145891747440140124866844991566342230152777713670920313117888681571095379226808696557332186852348325856319696433641979975688110185078068260581979854425239984585963235177846450726114755610413609231840556919813104744384821692237152956004720995960682078581944484767785022008269329413957488196379953434778572451114073932723890516081941276909611069810022193050016029407570928318285788594168272134053000480082107280753858248753801773766520587364792041541239291884287498037193701454101631358225437877310828377641148725891346827019845173213660167253501040863771525490007507126763409938457479962505194827868198232712442535666282203248307052080233134710928066078608204315431154456525208156919546052359640418582057656586157780817212390822549030272605401780152833588415759293394436192103972625309296566547544764329723197860143116116994500300879054194318101832542081641667446154873499030271218594502539528481823970471286540471490181186126135548176924970727315923437308750832195325392639073471540279074916408543125229185966169612796541767346866535677286717491089633260177198720628018150977458162567711957336361774706423971134658096620357948039181903973659050646998100475446401551568062506676292052341075023357441408379288726619827817500492887211292996008697685750637343658166044218386739811333091467507997297844425936093046118562666869281484546054751004014188293389602691942374077729934282715380812647775464693347015297529622072618747245105429099515123835869904515698323834606629977719193007484804384285781228958603271455906964321530238635903221075208238063267540290203467059826030089147762193017208497310181732618261907850267541523612606315416044800488152285201651294911590535894353866102324494103591140113621011406674104596201827360648395932003083737269828408374246825452603577559512148105088886922996427635367218619734924060014185180057313970917931302290988487868784923446046195158353390286080869277338189373086034587727774302368858124140796369951195125640389455876446493175911654689964240824252651403761245933647537482867490527216709851993254256975696850384551903140843277160050432026709963108422541660737271642783883464775690892125675606012297587579557316693419101644402656090724659407687458947869477434248288649689223694398712207100789007807860118085539541316526939558204652512762463114217793675820301894849613917052511750426448870488733886882083676758354834730130887930025102892281925562295336447919429647848207376999908045129690041115380275385607466639239882619836592192042331704726599853969974984235742801444616457962676030442342826011895665666999873563031657161034724086112141013758146408387295554069055157988631752538438926921409775522085350166536262072412892157909783461282935698579672339404657636436517507562293339374122318581597125627704937592118264073691591062505422576323388976335637351973995288378931049258209888713220220342148208920731929131166180310714300722867620448122535430974809423936123563238972862824005939231671642741854520944779528446885884718808627240329618848587027710730782075579043812751330118298351313476450299619052912297226242761389464803562619743700371523355457274208368259981720217246464040445831021105702130108193879403940918008154064948069743488984194682279506534583044574683115954824681351849074510163838631237116534097674155373573430371364007959250609743938060395898265499158247527494460216807589137479922106879593876411580256457360549810490366878017746735779830348448432340609517694172483648981199536018814994974149928349573767724580518273630574580221365685907441661624091821555524891012044758765232121966456625839867884178913080582151371463815976227191039941273445863235758349958330054131270366544955056238928589647974722046973466900408061204833653475538849382712974582844519600931592091991065503678497578218435808500547603769725279394387848727081960632244945670463534199677179410410277599723515708228719265963777974720432062415609196881355443740566623718088423158938253593283842483567924240926786841030971274093761447292454057821106583787447345986246815663806755483178158334208969017686485171654801595616892426393438990828419428424583231651953563465910234166866602768833353229030293684804943995709311447957188807138140557762170012446058348802427485963731571735892807098019865998077451700942968884937436427362532684154081638556413131696776868658096837117735688872928412850860913054731882614912848082448801689189135833461477649132270708157943755804533412923588390833201371208569212622702588135924324840859192402792824189593462197378685266438041247709455397770296290847077250169742227555559940229971019706340582980192680661716052657040257024458123387671224803757784503327470447661384641654272921022548858274086629893865387289284297684929280638008373062219304918463711035148197869005925067652848258778552203970120028668324542223883554497088794775105273913606474558784536016002321415768351176933462253992811072966027023193369415890768523568716987523195429322040567724989042728851185884940029592812999149462922523341881651678476692607247539017263891160002687115362557372317622545379925222815799264720336012743840440125070156965953293261992569102095119241963502823948377839160393143052293970525847269055833489198017028742613060267235194726429907185494568421143248560002281643564828842459525430860756200677167586764383660398436405824006828926127814077643697722859842266308522232387631991900627405596507162646583993893570908987685473142910709745339158031391800671500567139422574812180463402169263755407080467181988178907743622761914097565609307651494674588061309893218141376755594372386942524789042055415019477757693067213719315931636163925173381914093120322997494624176640565275173447343493612461355594469291582197005901804366747382760433008026054613398013226848182667130997886094011464433046238171353206794602512269583661600827005631281094666243829540373978622338840466240379151348275635380051305870680474690509026896297961811244741305402868414677886024717481871766407902581690872840598783054824109085358160301252836493354764323701129951629400893822559829200596359660345069369661560340928133490741909958638801224342486310810160626883422219871147581859329471935787081179362326259189132093962134511631338922244930737225366421991216253899611604027934634039866821134584451552112559552293445808193833684990487514903083448228054471228120269477801861628516120662399595433673822314759499873031505445880270678561077197840631187646699506042682667723943602435751944117892059398936936861469337076717831749029888757182306575633919495943320985760754623481102013959311780765221998917999452711882791807324654327993012585481386021838757930324275659890704040686117093496502737453074844490529352487805383868113043033944363206255801989461983818492415525530132419860692424487225617334599812583826489273687574838932797647021394698517617603410098729797481404522197540224523973999020901084430060798648766177254620953762726992288382317474929510125531797384109080725630525766865730883342345665716590008161777309624385741411045478545142246082229761986344240566662479476412911394564819715183677458716027381975783911340996980561101099812789245031362151258522180246773269953469108400796245949693118307249151235679549082714720845534174070812437937752510559380931135575922797940008095098476172352369767988770370825553200145518938994333549566352858352072558454588526606121003359357051057233832752016839542005084246822376435175021814897921422485833258326312794160283848690544026072889219220569823824958387753949361892269507816706599330443092944942492410557735553231238872256111137491901828480944618602543022503582779304437360006318161141455539320757446223208912462687518315000246975717898698610366015737555368149825001053792747706746925335611428304753870878257619443393760284224715483847765068202976137782203809917299842205427067971072952442564584700552423570743867692493517057822723971576116108779422551924652355737765903019682123527554788418934776605732176168646982020273308294456615420156149594027062433115994047839157136514545562223366019713358929617282648662294148939427998406983495796176574048601315052786445839268478790956259890647513062814306210150726533487538285352992915281961877190102693991869569860352969742149949650901612562934431013901299653540720463826566238899818337375097477810949140091674790438081185088282708563019643268478513221328912763721006991038215939546915955531647352277533149621181948783292355121879178718948613037022372706070639253471221753020152844929653998169461425848076597807046594661373664330228383689066160966633525861751414677812636068773617681309881890483959257214007179029761661689785546360509593767576455654905051507508796746160261909717637666367147884461435391838574336278740192727641383190970294544594573916354390133085217838337437968257134902181808703515701905326039510603438473048621537087815225429774072958819837542976958064583858590154325873027849616748796239160217273316402228204733268155424310383454444416616939215992545721336730663726594262874908799684978008144586856093422911310724094587627312856233109437299421807564070637047907114929362441447993879281543351499277593482347498873206783466376628604114361838179069827926717778990515040182263288087788994261855335886734341109955815321221482170463110375195009390556041000599680354659359326598657336257026024670124185518860849709320597698902452606211121989573715482220537051078058863286628131299124053833715958885171656952588989427000365987479682735672642130312375570126267837464385950247306976968206982264925504361995132389937077715852831489062756850233338702996400462471792552005479240757311726181930198515101704590667123305222679341029140783017061211416236205474963432157346857229036631828455254441874594069348599947129254895999327837394177528950854004284625033501915285662399153400341257551185538392285399197646526171014378551998591541508050303056271178562890125270555998567793997082736813984671977355228259579167285865394104903405325601714027383782168593651569351455717165327817191278460053546200594355834935790145625283808548777966166378485667135410689982609047325892586744904891645928118940907391901826147320161383881970152584633839570477143999020950830733420744240639458955382546060244467834885221864270745405681890883334367132179539335086289796894989907616746845739934371316351609558107659737856634376926515439630483631565177663090197728308529792285533593217728163677781854639646801694448562260804307613668304582562073063418657756924597166560920483273614940954957983187637428220450295237217160891386987289834995375747320137806291120760268751893773578872592933437075726493168477068570315171560769404109612790199216341402730711565603179116023736971645838764638341292467026145358238492407394898090003657705596324907799005090495442917782687424041270957590914043697398772649511416757367738965455567569983602682498372334500658908400400306430380167057742837473905795011518682438662597361136728784617843521558302759816632885264469959795283246731421110650797480836809862478348889623843152768339447266130204018833728392432189142078027380245531587874695559267438673164999568766087684700899036656672795188667837556634060657072609914097740325146015716900224279321473646361737796203659843713345779422541462205763323991178621146008048888769683190712609526319599313985235456849967828657132701543270285963040034025524631448127033044145214631652800258441932518681827434308754355440829685470830154535257431891195337919085345606760743559370103724522306246986872738382726040257380828372941099023308967189779043000272548746146003110434641310708065312519886799855735693169303090175424125708514854002335448563747926651858182791918568846019223247492853225693742278770201047713045340240781601461880853344180003179305418313118103296010742656407652496470289388339134857723520587457600351062297754326994237995441227686855939539037755625787730113982129416734649075314767521097924037989264435057098833181031154862194582878639729493548721887392221979955890234300883679135416878061948855171879583670098359413074380999851106938745604250908743380710691125729800986744982661736065286699140507611550913287368880553214547409040639739088912490801189703280110771392124842566876204003666099511077678602994948932454036717603525748367459238768486595383598685451822029101366381874910429092756669037742660527118727524514869571471983050786300968339554325356942133560499104252343631477438381403585744909694988288899431270664105709143298149324373437295060848746989507357229614409978726222758191030817009770683434188864619092919400881643643249706441966665106790179336906666305782153533757608124647658172373800611312926855556405383070902322489049628377958966209664541922783932191400311618565346495493001217946408108627015317118568513020429996184078140572396370757545017311510524331750606150121459517006995438572239580196706442360456559948324490939022985777505654794614731451063581024457169347329852157865083953472906834775677310250137898851087185227068471229599304672183474896274268771671328803496806432839417712326333099105277125746595962746230602598017036523537309482017397001558382719685817442956948247920601459599514165357352952656123959551506615632675130203207072747884553852173728913610042167353656665044773807774232715832939786371949085866645015488675021334900922601379435234356803961800310655544880762571134035395655288506621504251308096772280957752569325933049134024727927309384202387398838646847752700545776308800268168843373688267644281564140140752090128507325975755033457905219740178993461145104182631536439300632509502465447373842102222570431129648676713847012691712593270020991527065187261304476061724201120974636119137721554017974837603801898394418771276709440085228470709882183954715907983943618761865144915835174642312939770059109095534913601589481881254688327639466910201180330671974708378184757018450136436797253884041925281996714246382242176825164365680331469640520329783386462335348974642001976236610916304684958165990269739606477185214285896172771737874502400624195650991953387406282804816041799993606880924854479945719697250944964388621604277823320627013174859607971169634460757536637654229532274406614952406197213446669355600262185169914388420106849177075157165366461633079704550975704818246597492137972045853008171963377880741580696277781041750463537549372782787527251234077807026865656166783933891854682673463160340872532145368987086266282406192438958843650428738037177417178596772731844321538448746474854654098978379556409484290688562587692010357520679074517543805879606596462987590268192979579711793628298993651536049363538460542817105959339223852649728990032396029122056189988217667834682741895331774401788151218203535557626658712204614873427170827604328398432684166293235219795567684165233558047601156303429677104321566507342400330972887670302947539983103457353780777868151703816990414640561596279251937570537508665031579414977506527459064862372593026485770779568218473703423757051819099992398220038373233027665809474566171024589586690562940892210136281239902171801802441094555622973419772827264407811310203123032008869629017587275650078424898975406840393668735777329422848219172195152185529639800816724030312826102954586601594179253408162565015792973865064668317091394655459315358094134866199683906714884547004145049951612241654543875692159131969541136920099821144527330655086578828379680735641195798724980059036698869540773838175649671064794733714346777067707763729490935113815594361389219118157583305356385587575414554212361183629469310742128195202286645219761305531244574826802601390002763907752257289007070448268763572546327149336170656057673635986355880829931420861399182583941218554708486329005977004819352486307177031210308230121797343540067834235748433531067178529045500609118236779687912356490235703352399145230682773159318154130168821624909160934362132005421139925841574196244340507911427455899599617427844525133865116010106356995351642287831555545146528356755338065625491710235344560190440317279517261255685343052711533871872347206712683178489822136314913384840060329019503068085540013296495972107172088578780101789805449316697348258037651313577948068518154866485565772863995522629420890227850383565493709433486694436613267602430604961439854836834197544925756809481316846135356706279420091818893337430432895010202362712047930691087054550381304309833843786283006137144424324578022065421156151203232349594010789564951260917848330100942781336300203621243168202775322046333051447054399399687286781731866697351703307396778700934672030431624157071447656940156341318287066392612889147543291510714550572221640435737319358622037657829897054379512183532991206175768580813544500347925276651019278736847254098968434970533943702792128236301438288664902426556532812370031603191939251524712825324604069928615490826132660510597989634252063524325081027980813131316833504423596976519106846068978382206072009959802490667509108776160283986952272253632238814039350587276660934590934528029603959182780279925285654480611943630019325809416680885755320658218893974951145663285861522223559119056248464657755224500816205007673038682404629829091633119804523912460049238977646647560091686167424469315002863926045824031648787113240245131174599383906093092765183088988124436134834787726060172700463404726854579047808336891977045926920462254100674311147009601283761515885329250072096193615108215087657271724683558097835779279019086557892736136329925974512487457674767034063631134570269449537833411094279956193745727290902808430792440009349025096380764121845279251595548165080784283798807356345067369310872870566442620685414569422015413231732631431163833068530233425332156966289734844015277817561441129080838627375355579709481151252904643747832099948699662744305974541784991212644489930360157609898865883773961282888594753225452232078170713606452437449243136373394041079075130126776686253856250888845117440236703904567541488748729552823272975526347791951188841390518304299788668177197993409891315796802371095513281614773125840979806212776216727134358875239560242997499700370204169982292289493589399551387377465487019015922007320577078545385240930942798899148263438656903336287069071875953874537643686182488578878039084167563768796811932225289669767835430621918532245783361019553115153761389740915610471629322251356422784797960036286623947529226695035832389677981337294338532178582855184933765652684027604714397064206630929904368545264649593688641298465180777176357027222645457399494559994912774643731450388525988355065865153924364504544474179026384235920980512536060521031657656305078728919412736491198203453286281468159749368766415424664072397444512592360484462915867456720564895424513817917088093786521240108264506249558597902048770771589512650137528731745244537013067575033304089049918378285730460926458267405226007931678928324890721806530605527906792089782369991148536233854666720648284231164392969736825775199385671632785172745001129243379650472545347953686813240740266429151974965328256971207502573270396148655917808056164593272459000931879880030179458363449629859053367615974741425649511562271431288639745749032386694851993442435765910287640993402665828558385315208990200919972681860998460485935533046189099051545418892239417784090225787672919007617434783867088791791321786411095296495386959000237423028849681933472996229076041705866087760605980361178080263025717667605292369773438288401803037277936842740393051098089631113027719685732236223037930022106299108218584523612465607556567008817157970040892757884214108897515779322585746679620766503883386708212433717151492820462209519719168385006232599425126498841714661378480477111511955548088128088899475174661165597823923506634816790569459420800228527287087064412124362483312881592981702243284353028439266960099234547567235510088636189502427854824332518478329529319552116952374703598447083450825189141796196014310351282142156832664322496310136929812322238087392762029552373629684721289142452857980203101712528674945687099635247479881288754186155020263667582644261663503118813446196293661728291809842429978782972059419548230530435029855123479106999486648925732470667516203322648672740018881338766513390339536896000864576974196254076607469631481315735823925602193998917299543313933563918700814226079665388955379461080537130023623116904781220541375450964017853619842385466386739502077209919861751039638893315030197729235798518065371174336432183846209780847560654179921220587120599526550564647131931071276998407143281862020302858926995327441864767165598041039891219473963734390495494694348366486180099719701352489694559752686508639413096416382547627479172859078924770325776098436661641539256046980042509953062454191779615183752781617010828280330312317185880638817050216909459509342151559529521995519315891490994444445060197805677953442412691564745402786584766199892779965068330591419906996790586313526020854427219669335034001784641692943308366208623452092821433946021583106658854656032758055825520814250731456639682546535164283722926720345457016768312602291605061438917302753214627621367887280118560461732955920033240139636128194288106951938377840408579199515800346547367622897064307243119941328618383067620618051204249422629375472142376065423801530854913850346340635488960134421661551215443038756085035616305809444822666286060001103761139056141289066366483839582305190535773752344029610428636789163909835423716876420689608778083704827015823151761841197721791716328429252611975439253025329383557983700880845571254273297967563733963936699099661611367983716548622594303262886215666066442679585870094173438695382041309186380289373296323517440841250376944268240573215907368837348377600894366521755721749365361602138702070456898131368461469892829640713445491603713970340342603254376959541786529134899207794746966645205448874159374111284695409158058294649583613443485517220684680517368795595351421651757266434565909964704605185936917958416211339668212414490367770850450582118849327102848517782827741192236863801210961908228337471777301603520354250191419904864235535802063632580189195276885480299627273154309749515164889947672246454786129128198227118948254973979345531089670902003874701573602286318346907021161486951240090852923350210970467766584275920318339266663884574021844013044118113728821295755472488879510664108846081322617657891621624718301106741175991528205313721338379899433298771010307211763978225926359620338529348827309315352312766825459838585584580849805403855549873939240062249025337854757594056761276607931835795961901653251599818967259591513637211621771632881751296321163784880646111309300341408524102528587937582126023197191623900847627081087697713993749463514249957362776687324844039947869188398309002771985416251090073281822019234088705809805027821805459685923624253230728477919750929597660247484733318894871214527589718371621989719728590188900765586268627719001718862700981930858321228426064756588322896786307683713940300649564723429711595411186698078088810441750894206216646826412052081890830792452117840744311055227744342966272722932323647856208526587398912441318417722977845289800404051698529769853525085834954430317825229025396130970886643634653715950292663791133831256225470909104031405543031728994040235300210942338415723977753738314044160171309181341377323855261259628518456782934712632787676751702426224107919466380654479773655342182787619857010482165009765621759978150311766074438307830813909448604841138575146006645346634583234995142587564740007350309235635289133639082310597285548331161969769457738927933912184506924196067597367660941301195695974087603613613627671730168598576421123871299095800491729764127379875213217380904375755431069613104488838529402991719231108196986813405349598252373926057605193400313000441674948482713980118774887090120023701502109284204684799533008864131374571893384108420890134123367286728670168810987833840522784524792699186725164529709347004213745451173712480494936842308685257212834085289980162203550654933934995349215987197008186385619044822081257426729423234824733773524586943194690147302390103586676052516445832901293064054638243350180906562139344845613267887480965932450543011430229864136790109349126918000824795906823101173187246388150023090924566601263221331064650939598873765994014046847858254747157004923736281401825489808434657025988704615028273714414427689615615531580822071323987252020669076708408716109152747018377947080990159418377652693510911895685953138929897268911008334587649628744795250446098023873653182942864395821609627937731405642851680032150883822830077710502690209864468128728631007488473927167951287232069238110982429853330661127590397831555288281830496214268788370250991026303649350380653259797613006148984277727381395862249160716041679562835663204195095815798843390699812727805445674422083517025377798655646321107434761993951855569542830733464774527393024135586054445119673443625454305735137325265594715819337544902919438809281883769977117751161635703364980617150531947304520250257624401883751960951235974146269992657392192571786475030744101902642586653722343880581237891053140153117189077105736892200714301192066718067301744358398394247240237699241070800408178857153368181937900329679391903021261379435135742094059098561512415049944120940344501531143648703084496926126472332913072668446268786349361529675761476547642232175310538548385031541116244586950176417059135076259871204601030409287606902582959511991848674154704850932967199304333319675310668254052886563490594529684792219289113042900600982730395158796106937460019402060561927229091213275810139428370444432165705400417988826384859396317336774248091201258809679172258865333885877012432732780345924635761992110892989975900287622519501085595807640487299367157515158205122369781601579678211343082766055510963331142119611303139810122395917318865400509965757816290283975074570899475485767614292322455359004223651355888672567024390339573479884697202409045735385796416724969538664264380547569583703898981085076178118916161797569155145485259441270985855603148935395332338680935106299660651064998793151695193775317636516590096068654001453137505562863217307347532754014447986327476876427781314336776417898819073792527252310069282769424411668419989002995252523549841048515761220548767433491169408462145293755997038298218289458410233447006410602955292150583314206290190981743985359138673622399611863478311966041157253864638595831937036492050158451945471877745019777956494728117654471220745927083442228824404678611393445370770766245659134264863794435153135357866034177251333000330866407699926525211206458291433425641845883432351062549668022566990586264776487980278581946689836248039153515228272644907089370654081443370792693830652161773100580880637934546118610238100783855494926607369987943129022099172748876608326222788078540733007577202671189714971365930045843907082893355670918890864265386494753980160246843071289080479686729048936685257943699789075991741664429224322389567623708715389808435733863598035364503122333489624382566728673347036118267969474118059787833411110952743716178751083215373074846709721253006877154683877514912433175660304392125132360725221996321426148778868803322361702418035418288669082539811093149115847572055741705797486538165718267271622806254646168199996455856942502194342221166801322719816402707848504201910448899627091130866747603462194553506121352680257185178299157873137878174958687665686881781652724735459103595115954454488014208190782130093539568948939822807447775882498777062969673275548452641253279022363813285517018812704931302084525121704768276522357801337306562411672804815126982712697615299673897245955898659512117185174623261707802653946700569235273252300610633845384118933389269755385467561968143752561894228560481143228676136945974613781692268722000542664408157434562599065792768900901206368077989993664885761310644703369301954177159928712343488846954199858242119828285883838462130487771990517463297884951113897360739178123454412025489982971811910121267097782938788776828432864800286757690446704921273900197642498552479992248138325880069002955991208268531032750515674162125691462369109284196158518888391720913179228352964791225992003785479898738725349115008799747614651878868324594721384151093327636842576209546605725554687109196742055695162947279696773804492897061586915514135176246005229324161371511773129299858197567456473204210391836668047911308165739792453261055847591115234665953546440709774008531072339613866638697129714489984717773786715709598234597017708715615755690479657019634861479706272554219014789273732566776720408514247468510668507795269627721122939459738312643539767010909594347520857038065950364512657261023152531025520094699871279620616092970328773619669861691228527155681801666431345996873113404780265496451085725603287436114755894085624846981987707476577120958705339671051768797643132525809006767190950295955048651429215793169345480460354912627544775470663371711782084861176273191559751930197505852175037423520008351310205434027952213432624962369407098864603963759989114963284602725219453279539253386459829678470324573769482157819127990262101835187902825234098985389004962923448338922489624579786243380349538945586212617338038525236722020982597120607483216447627091125627854780518007684973759589634081390312758156450318045247968133730646216551986058657799711149300341534318583438831551606557720462729485208142136721522957143943743463267795902164493844605387475687158611647600326490344535815168803945456982875010516154606829680737118060011370082929129801651919192818627689279546876394709380936106007826015205427514189400517494580241278594134299191587356510631461511987298931833229935646294379590735099599317613703511353525004148050482116819495266695903524339493389266102820338458128489643982953190192604171798272895848007716156795008616111524857361938038089079325411520794763177044439894789870830675554677952973427735470966104771272543189168376169058626747428649801946504859609067122341246015688042479275613428795433664240595704760867681234693657911275114867831144724669392014835042107589978486282331951397149794215090001638300359419957816982996020053965763965438251070540180546593690539543577918773996427606289982776975902113272828346788047445311182250034600161249581794806885395339580720164233601271646349460355635533337884504497465417222011231632033816561030542814584819059534166380011872215454158220163857264628265438404997138810773264186618571842789014745815667336522448366064836762153109806263736690876361561574448617926257851690173987261260455831549758514930392046096781681324488952274970922930887049032838540151666357330796871505237173663226820953834963268218601802531552362327101084619353645980676602382695604195576790126052104362381789067802785432933926054106224059853205537833809989221950354341006055749912759456437501650928149233933258752874807704013534581473870690490368963774421594100831335176961322121792713101109620121474560739637453764502004334523643939483503289276139573503345627441291839967681123596347049278432089025618409775357965782027283234151549281564968999765439296726080169201119624025055004988729331846313089480018986655644136834382941767093468963928398627305422490044940284472319856168227626405801018395835007599912591112529318330912246006551255236589751412191535606613614252193984628909972311762466117375963233342993121275509575206480128230225154191864820102741074241423899523025649517839077286306253849125030360002867391751451176604901580971994278920604555388071431849237909325909479665514523619202293814083761098552302680085835727164332569685023255592168092707999771306863715955037203508808262377040391013298718625662695720008716484969154446152513870574031755092198602612594174725487805311194036176461967185538182579510946067473024376865864750985935967019842252112371854333697698988196541558526903516062455893903475325943479047004331940304703805910711108035829080944072630768365901360070261303689613721033062350301720009882766265226246512941222592753886281163724034231398043947072848295381104097198311437088469957522103291700256830383000508286152167441539044270432560974933239668133419875590546825819469729762028283045767999228027560193443232136085457606892822391723281662758476024974706062882801390855483612733211078615782838425003148154999381686835626803273177524575866254325290574008830364154734786264066362945219081152025793691528989510874897721798250875709798717591288054617093262721620596126619218980836177700489628960301783948388309291943400669918287452515765109972586996578378945488720638549702014581554032168841246067786640121562777849278505720598262765079363442354872410219841498349240485566636386197695668310040713688220025170976134135021727554996898515168805744617168796945591644369923983744509016218046050281290936445968093217890410529061999512089363274534778261441141515485881852197193905447026848884577761710368503212817577016125352666339881012201083367285932098069574612780667032635991404073619249766329293826567722711076867434866208038934143459988083611989338847271632600020203887117085753080568511541468764895823697416682997272351901903619335094341115328124029099380875046721701021424371463355037262876951095496792299353186682741099322705657450969111111790686800662517900286402124009536642359192054780051140790092927587843419084344051447837197615093745926680194531104689221679415974680119901660573835650032573632026876107793512808327190337256196777156783464835193750590837983149449792786667839403155794214209306700486468614560936585006728745783769212965903084743173563232455286084678749791528940945014227119776516501149450324647954245880579637622099715706706186138364828227334228269983437861381944922603731354929836590744693946841415012624039295860143475594176705624512647713088399579425130047022044516618276450104801262926948517475083384794273034054985180348420163937343028857896917158434959439405655717593194905405319939834668020246137433674410679221277421483110972281235589472482887064938570554117924956725915195947078067487713495084657480917422256703899401739560516514695505705048176867116833726906890923351345417718765407265839728236255042669912399039013200323517443904611825367884240616091001173704708236141555753626846194852385267207886408293361647899100427343468442957124191968790914308441330811231388100784073441805509936896694361280227676139809509606598586960511191197687675198710131108167826031752057735241740805421733620827230942931602324817055126416444685100487319196087184671921846256328001471912410458003322810441849845839669819952097038953804326611641943807119860917941696459031464495381323759605863282375327257221846041061397608869591330135490653235939745523416617558862388670902315105795318145755883496463534992940431875378094117530709477535721451538882652736122821903384837049339513055777681258893627836861390272367095654669544064175171505390735083346514769236101849804581669482209374975331358895549972862217811651385231175735152845150786036121968432583271957222892806329083395527539033865484909354275984098665049481347719798062745794770447837411628802772858272297418313414780674916811498809255734979522355504980462572063071594756123610994335925841394346478906729031749573628878715017949290858764876034966921839200445154175080010091725508225390784811067291186851785469282340713463061140597251959339678586995981526838371383345843221945173942808002785179764043998939105771355565933081035131094638171786356341878534629253151449920551903519232886751248638525939701601077432992364855501721824175429139777107830725415902342756804164682697393967106904298211323065690383211704345827039551429188909124012107032581194472956119592310836189323411535035110191614165333499218425258799450807150645209543218370456963914990234802141410129704204297070889419005898169971519051394816357491192280652099711173284290493871603193073249327687911131871233604494937409616701426687535012249080773020464897943157222779113483443803315048225031221005303736293628484116142422531138926133653492690222843065106340927950020157038893897280217042450056669687065544469620299473461668774487535538845980107962776962763045288664988423504315239040655974753532217564064359703234475975122205964016692588164779692675852443261945027275306150003218611674172878076878397321797555596310104197734135321444819507171184281595755068384481903190050360980540285584679680814475348454411019830717577938813757286392184588970399348418180278105628372393891619161312154155235078214714996465804701912602436609371144834739948500595201562132717912324262480330690084889663998384724941035256069396134499661477450112348526426763793883589047462209002571928333991405543386132804983789684023048730660746949470806316848493204641484652290770313534654606335726316464032303690831858429697144543054785476328677870914465821092058552230330683034562150107532556865447218214323099877868854008032332949541500782481834201133884692201033649686105262313533343570563516194062619536844061374343299152349512195078333823106417547999227972724902261877925379670096593037697109620067665749436358109140467851189189312698018342638508717505135293455157416846627343151579253327873462778109739524072402465539487864519172511014621137819776520446931955413359629453262788242685599481447678072265995119521872244321453836240477157474356712986966307522858745609792286097040051077498243270213601147102937320084114259699136530943298029490757721488899219784178057823830927171617161899339299350381085644283554601236515094875239996555285966501050185395812970413039671467739514625718788354830087204433871818227971149080772168191814418471025080844801854208612999112676036673178260601659865369006035027693446604380797972685315763077304256118587461684373714502831018833516187755415384208793335085622054531387029665778744231803263148896602721499531070941796914385583402067170224400640890870759192651709208653852992859122676960279900480693066701090554123663238961265779813036441333280239442742178236089074827945769865383573957967696706675713333995672748233389208798852759662984534631960373718950511113184340758688174144859941816803596866426927831176638039628421051235978020359308647498727713808295381871819835979179159670597506709058895223662043880493205442408437736781703634380743996584792144821213080752191889624517095500264134931526247129799629883848018777600822628481221902401345499696970487856745253829792882878981503528292220167047412039774045598593797350264883918380427371535040168366627372067991405002339878302130878215680009960800866499241271862932871103480359419209746830922302126131160322150462643973751597186918947257827224257611186854291251119724755622633224883878550769186687799068364316299407177059814260096484686534385433884759374819232628295581171376117464231768037786110238042874995085116609421588967731136391894923118159261625148817137159150889550998740033669183954671844811872530744907960026249643251682314592628333815641884255534730857279941741740746380601970423403862852051989398775868818960728910162127028654548957339497664720595269229133109209542473145714351917034709752910362409265270464246929913618510586684946544196232072013841866738344381738918190931851507078310439226933904566486207599523617390234348924803224461849204420345492011795330126187736451598054447480313868459934473117770016845452359423334391506709460558944485779628137030973247831468854757045489869486133591737632301397631016983279644201339371473084621215264506738597503554555193866532345885382675609981116328181758466777895787221196370828053199672990933954117168494603310439836135659044044873255877989725663124158079006193365022974928592712791718264897852034954008362071612533874930229031663630575974337535392189480037673365512651940005726008788424169876479852462055899457281278219381234125737733569277098790724033132575106363297529887716264332192883198007199866120123891426879081472394376861262872783745294213081690666185127151830490909251665701112602767423249570081559841467736633636970318918677549803182734340601398720647833150746325875015725612322991000072935726204526265591641408910612920397429416884915502573450247453773089851007076803960888755249658984759230433270960948446682909113176164423525718028065518212219033333377586510901441464246625310649855249921161789623551367008696671260356878549190415110790841545060080579493757505874148655997645707010784718694117385263728598529041927370200907327609378075177466635683954499125608977392956918017952161543655351944637954885972597153484460384824297659421086956091131045614820188125030911754849771025397152380114003192101052955142748396663646079624943852339885134200284769694592541503022872899201991537495820526598901050270388501386016236100995251849149303217499137725621998377899838539959547635421207131544861432401661921590335811452824192676085788422409379308088003258056773249632369838556281703688299294191829583795499257541926618654267068669807478040186159804163461110974270335761819238819318847628376795119134981948159984933250787229499428971566949901270119064472347167732971385046108552073567871029854472258696894474919383821411586270120445265174465465841759664498776169328542834856525262771739234455216144009405005106626290666519808310558840813760253993380047114514785294363173067913786445936682510528781450488546728661701729844887967587616431756259133699492614164270392007215467484685942989342575998797766457271118455343358284221173383886755201404983152734404145640980334417244475820380517972968228761208762391163805429420254351487673070476558361393706741882696132609117693679852782430070581648296362568328631409274078869503577480723950469772790508772441197464013479047117501944746625002954049978581303936933860069729921023588126676305952453725881337902284387201110377442557097434184202580423742924559764504254105189778159092489408927977569069408935374310823032854405341649080916555848310891311216377556969238131903924340917241214770425172564470154737311506422764734120725088792663096612685786589181591794976715432923212972155727367857172150706625097708035515327342592995749218596141584681856622760916909007437080300509675951960590087246560525906355699802113496207570320892617019821636483066115679371763261316174077641600317395650487213531735881499759138952606260734074336990075905755806550706487378146433523121217364127770626779427495463488717292097639502808952423595402657509207242414372517264403829112522960089342621092243286375545037328234215516300018190228744269257915687719640312385680420445096047991912661408702643495155503360822341382911005110891916269384618412381046321522796761488491810832008887904646065376803585039879517759008454328581515977094638003901851036783040000124350313653062020303126632240871606928505015041122861664780956104348840999831857110452576181794957183302185001545398038703836093003293311794132942623134469451191058853908007781249327446404378856872295117948832183653484610346753477259933887323525746618507625293177223371374064657770470249314522929183899783975230510795794469696672953899886430878839184371914997432418799361191982943641652184130115096719557270974176813722379607906316028937066493775237586269563598636581737171956227805427619531115150101396217541836440128987863054145173770868276501292000832255646448246642929783011565996709697234235002651134198011254730148515154825439433757173198946394211489364770449940558653246232860332538209453016734385059139525660360482780273785159232835461050522807004329375259407534126815428816159206243976765087069214815926418128571784499289460988617136224658796854609248301120119710669774485884251846296363911868034845247323476284570157363908102855730909781460933253426320981644323305619802398719888538704160678615922011795941977651396422257008390809471990411445461181294252915072729951993222696383175401918795109667363904846100329381951987559342616664682883150330876248188430986560160184953603720047030549275382896418811057377407445022771947030634748822014420613774247174886540483362078244489018943827463236799498141975360104232040375745317758611144011415648940568816136577323439788357900965480892645247959131141925418803291562380969142017230664505198923101749890050390722422024925518860803001532831328230632366431756269180570840117500255918727696322811041249059100172729864405178657551319445207550063841346726646167345195348156970814678293055097480162158199089958147222608917597487037928584383537753255668140273330002547116681838157284803933545315565331159878895091839074047986078113097547588322544373366184973130937320280805846637417962914659467590321123605672348629187679568697149220529204771161960398412885474954040135404732458502455833150970424432499749997989634791167822918749767546902793595463093462997672319829716234638386831924192250666102106397398665101096657348615372796253950930906233271810861971208588015733459744563092523976019324518543726122127780598406764460367386019703953822305024872524530028959277423781443158556287315099282797135362399756143240377103425107994722797811618443002905567484181228832064344689205226909089264847662811276849267756260644976685209693537894800442612323067421856793567584274383623351720925038370969050311806499442655379803529344777109581314192176612064176373156771825726858043389681064995447124867243956021423170961930985787622900450835506602026469526452566217708452959010199904894019970046529821751516388780055639659400387045682985007987339206321141152442679966161097047720080253074242638623582947666369327443964367476837138061155304327770976536742277641287237311659151055259797338443519153563023957696427608939452159925344927530429323720739808477188028211854573600576625644546882599131024959342409160276853140548407268278195778486496859535776220525269154649513229513742948914755782787140236657703715524003415782425371401474059054672044196604305077248969489550571002969445509209084835967966205021605354025219882627952454442768962041847950054385360379227080243461798477482215634039335614358765203962556357581691388705111929582041272115257965684194406107996892811191925064873820955360802864868740332118816249992559550712626348052913841377640187790500188529651441570594495514686324509660383950145492150254708683527478667631915498309705862296487294991080763356705968709027888210212200329689562889185277673868255291598782391134481029381077688213583403550421771140742963153533494551207960523135600522720152717674811863574609644546485980130946109702062599247974069444512067392529527726987279822709839085287576899351569991521658149951158081101039622074034296069904184295732155512779263465755513420160492039516572642504168435410258387447493956296006259662730591502221582563027698554448978191923194129238723684450185042209300803272674437119703296513266857317144199481650642853765961105395696230868879477257797967779877482220496593437543128517742245164327249633752418709730624746697769083480634835268974652088430339306456262608874859088732496578047501905272720803145772003103906813374979794110275227202511229872327061635124248959116972713504461655752061325987750608586313381865794537483900936103807840610954496301503801162355754252564277324366749445446416063037956261447934427601322392593021470235547751995920561335222901914862350527027050331720441034472072570892266582265763742178752233611954476193932821975092208110402529152278323799929955960844827296220441653889797410288310892833363415016972400773067337650070604031382988169948692685144719438486736003372992843474543799412622188494590441905160982577018601971316692731347669972522477896662700358639976247920163234856873409672582295650606906420507008515211688441952404287507082730723012098601310087740796806219835635575386196359679621670420835468875968446744246316019032480545598565044713279452523781111788104499267543757028036988076169420285511736879793319466753477775481510864629382072704096773110886377734866351299136845674712894438027993405072274551292792331918760202324741488650769195916549476759894912751679555387112947941683383310840860728050382089940011164644489000903536256413839782496491039709818275567504276934578289916360138234950326790266814093634508376860711266875125019068558528262936096765861056011083764267556814469815105571464268065995899735800756315437166454411786754378740536470611669294547718768346682308059534578818435596413497835453921542077438882610594424410577499471980592895243183667603682486905577906182967620006825026760267563385733841378064655879418199723268753997321883384756733785741055619840711377320298294323325997735476054254150732375259138067166466108233143485935209734077738058211384411691724612848351467806730660665501252008673088603888906915463634895588902665138429432385760033101092433764616436100171869249246315305367513698612609449478870643369831199066129806618957827633629478225412758264839620258824815092624310051297630311300530477491636145563219016965966834346920315552030437210981859843936273274692550063855124470508938218046943176663887254250670637014291233566581115695269592602443939741569941031182718800434279219736706446220030818449933149475567141487642918968555832870727498300752668459230581588265982891383033535595196146503358685179474845701355141236685656064316748662471348520196412902519592587171070623740251793358516899925257684400300855922524179574836302616799788907235597219209592425100288051656253089455973473609918735997766000112221560436787127639855110281648965637669203000342915907771150027651401643509066761482531218484633999911937234188539296499970608663477957058795873669468698614795704067101696500962965625184330085195552454093289965461846403952324863040401386124242878509084371464017441509945626123949568062312683970338808720592247272632671947307139442886299359115891058657862506718890461948295119405774785434072329399099593988938235694687801810212296188981127342030449695199172589658000606171856591478015455919782938858125615953829022556489633419030287245583130567343401744724433791788888953068483761073673504389608854360187652215640839878665808721797782691378484651071675039528254780591795477979416848317095586607884492695555253815479182525369310261690760180603735377558908717307584789019642117145156113207439118793484912613935042994857474970396492535787495182014242758796865718266371899484181968359950063521438396461311485796292249562279910670805502341650702181636010376840116825027108295440821935948087967435835175893396357639029971646515610559481142913021778235024174436961961475635571157417573843071657683493636270533098966965829494550762385483045964163403143913177989980413370553524851804517326644750349313026883280596979456048643093921722999064855563846804584994978480539329644999993398203758605707144226504930042065841357095197037583787833661662518251208834483979233431525998458936433062075083746497680396669228398200133317726950317987894963015755733612690259966977114470652900175215896853837118011259690344727099339719637254678443045043989066420618121506822123971709656537540748883505121673306545027896283962444423227428027044803016510964764265614377247313066283854901770776900326935857268960585300199972552685424618508537869642954057224092076965017146292704339547167167821261837513670570524751275683185443024432996319818820689760452851712531681267953514104522498889814313343116791308603717367099462673349022431382995693611007174278264172585615666055645280807714788166961735842139344886087904319697878689371380891412577065526629152460624799814002395250112113800280436511023441965493084289718320603577033975929970806384022762378964363757593335397420549255188477408314063479214095734745957094665209789089420353190186574681602167160986123291226456206502485464164351887853826286618601800650764637648648730191457665805146915293849664188124145209985419929811758253622561416091579102819637666441468464819284880944936571379085268739220910935497732131181963087439287387965393439605128355356595069219936342278972361059066084921041712707688541294711431667626643690670163682488302600102689578319478286207034311443373424481372392682505288164033746270306218782592650689537262183169499330715465954418553235580609194494185480610776782402896059266450134409576349229032523183998877058207243865829652853171193051622282082158129457970553546419274481550582978397632094520609286869620411622899562190699972972179814913911291015631551709634383919307977323851294482201173580445181807276671046130784635724964663641258817495789065853925683250069594907968796199318961806498071728730618532256334967588612290208705488469008865564533406051759637796558148111824164242440065755848420849005554485968959122311632105594703418464688586178196187440213542642001761661190131048823926936459517931660402310730897211931654751507123349864046239937217522881443602146602442084540184837601033004062228036164242881127998627966230756992483623868663713696603805219311532333400018704649003782359039599770967377778819127896277369661035027551382602626221331514963837096923202264529353946832942461861752091489201143746283761431242633530743806258356871378883147512611829568593894512971535882240224653643737105322641691894014882383210017059193876543337057473134028942034433404481554716664999143152210387993048621392952976727320972349866477666176806599991659415166483545646718530594544101144447365786949279960385409853431094691233685855149103462720330192151538521334151211819649823285103467760218330117552906869850127857250927445789259704669947595468679258908262928661425997310466437140234939025598390460601301437800424962205536003155616589686551496802705339772070490376908437720805531658777093584716119708953207304147404684018277860311417626751651413151563116891653271921630577364658829477861828025440064470186856339601397767503132031707106810115519650348576361613840669945023371646240251160252302324407194202103829465271211070720077768964956331571108427014758131440120556676819497907204848417907111255280417126643110073252297327035500640643437186137214158497497350507621035854817941192118710380980049525255018262547006262297049007764650481015602655793220736204885696144718617197717969360686097094270054372169016883015281255567991208632691266453003362943008318967165734809703373870255718820845382792265743631405007847710475452539390035159219964727097103993359435550539139936775187019935548372419554640452955888594162821136863357294508037817009916402573588274168037619465806657684666057896931423616618548706902374108049080943936769528129433218074103477044964547183155689114206252604863905912607346040370945740021005628232628686255191989450394333303700121861592903552857664096300474519431707425163802094764824935143141671946576421582055337287723205441759609308555545576434900870446601104983186161454660432773662739814842233544410582128544126626709466984373681289975942793330039828349939951961953245300917860107788139546530838103384917175859532098584878728540501119141038855852743200484020118702245209438310252364347090290169556269628376278492464990548254387129679767233737742902375727864678507028047002536936037113768081802303958979154078847189546465515351637360396187921220005456657730114407639911959229736353765142609293008541408389172553517039698010353868994680504885231011185405261418339016521766129176711322245966904289308354566231360734471806929835920399166838078101170509177788183594948927467802162560698619841167798173480931331091591074653015694816841360271440340523852174677084077035625495733181432065886513504418210366385020781824444586637433196061015075460655547487513172816786315304950812952313945469360733166290903825127676608435142050308577691030078250250036308216276761648522514739230119861774060334036357288454602309702539827622159822635611739792032971451499304367329986095555198013668402123790415857107093428509676633785906803522234157167708771492277924912706819048179594278627779164240519340178067790499366131937300755762780269327582327580013124683708164669786212313030988972841107632491593035222766825995914854869469668334883630842162611499428933408494774187701137481941236024764646844352910202845449927998487379700879265117226397342955524707408282772315677281071556643025281105918473176220369942025469668921365129733771840891123852069436334090472921865868273150655283309169859845339825306880959768012198993402712513736698235449384445452566616970279778464763335216633867890406352677941531810819960764336632624709653633503099468210075286955812690990684059014430161121505180414639779078221267344423535384848223337756659852375805736733201041450503446178751905697429940923424129472944177769363505697855731879736179632986301841780100241180322383062200868323001606195236737602518711741867808140471700463891784658427951697353129377069485523578003587800815188683837632097830642892277811687764110006757574377894188420478272027360932408870625242070471306733247738424304425649680438866536973172999827083682072919671781052334587458845743521293075226637966716961620430769555775419592808760347091983648771642814418835470178830209796281631209514043739820452224248593095546271768121751331508164799558681351452037729457724779223784355141820372304900658907557182338178321341590627658024766772571617696681533857446029408695240020355721480926021552265234977126974745829438402160636837736604166508150272094565291537215201787648499367737445840067733994257121057380020754061327068200600771051895188500162821761656799260153325924455774628954002026336653015419287238220089581066404770058024186545796241834123619711158332816603467088262083551049466319428089677913968342341186782788759236569583386606156953902626959314525275429654675673758647022492727232714011459791300367480286803785197354126001206247919965930731056836966698851535467118067938695339643784143566015382015517007906587026549406558622152114078843674345190422765814471159884012207228219825766145994264863633090225209562829964678589201155561163902428500036018330137346370734075989597257496795198941499586444239521364930588204994946540595207441110503612073857927325179800807665710419010742012614615047464901280893547316382539069502637243225454939713499879334261722285909738333755740485310452183529845177320927130335080268476043679379147688501384253943399460159447982005587739852053807451607117911578227590419873413411179257248101179784809995497328902004773633960485622774217171805213995764759450071835225597336539048441824619851751624207587812564519295355978106222835698849640212408540270204269657468867410987797368281153261764069228482291479170881403093499745178781547062881888793593137619437807110407371339831925271560562296191997186751634283181248708178452303790632914687996204282733419442568363479949352728016187560152980423060587031771904405943787634982936634008224928870519980505926324118861177509436692042859401909788752565881695751128344854738533533877100464348860596189829729024229123319976369277256729385641630296226060132245538459832687248067684181084201262522898584644887800007543408121690205334686656989628092925331066372098616990101373084571919079421631517827004883582909118544508049119976004584366415226802689313162238413471215482420814996519862513050896498350533273516748004453140417157914789319099036826534874229166831517786193088918662403977479594275503565408790993589122643091121472486991409740829023958616979135548146329810393913597589231241121794209395919074265840346746130758948993668957559520188294009783579129996631980295009555737508885112081404524899191362391826372745970238962959710833140843427795293688487941621920485023341533495717500929549125446281933612000577773356290370109172866791894034583252884367046715050341397177449535125698236641447691769722505761428153385436052412021906578149655385577230649411186687818241884941235641929670613069098490081310809829771277930625446970004829955360665040081715906188456707972789365129974809031900092539428723626165123350404582943640794326421342220868943284155921096654663713399854929631029835350913038046549294206637197473210644672899405646843427859770138455073713554100839788362392125890841413269150135961305563172863892743554687050112466119463789349955742382577069744536609859563495313414035869640987456452663533385319317366636833043301106911728137795015664644420531363172126466431570976141198589955166637479952566708159428809136407323978805149564037768960600760445895145397885305324011294148724485374974074356554638661618355414774525737809370209029691035659286060633814415942686324493585249900410435368925373115755219859468806309810686126460684982543139903032496783850085138211770587474843430276710655426158094042464099417286564180590063429895769843769342291197973820445524453583280375947917945799960476789636466662154674631526680707482187954613817989084490809083009781804346591859776596619149488646959118366513997509162669369143457966816080568001762227632574598302835915557085205398894580679641592146012231226540044245018062224507863751351026427476291173815026372970188817475121903323264195212084112866845263262139008791404598295546558673520481749144261884013776110958830040404128566249774257862152454997771659233746805358311624092459021191247769304211321250043770707832761512308956875870716209690779203903952378404394516337101198911793085007097141273983498366815538077087277695158987599852731648105461319128524556377525823028245673339995183358273134406966663624427188891878327306702674058501243620636288953759263363289404960373215152764932785632930418369309600067918838639388323547807676772091002052615978045800143442951776235575451961838001585085081280592070940335987232628530267757606132063294502851890848613126714418703179370584059116716098489311709654399871160325019385695818887166853659103059629407252574736090550422845023192314884178597463021560406615623468240999274741510633932676410746736075929288533431707682572326419950560999447331727526942221657518823720498215098588828462039051042328269268079495892619261153218170839959871959403940592062419302201790495828532855038145436190738837634721290933966181040358660561173025388052493598205181456528055849780779403247428247257389170149735372380780953104318218332522340980254413049642872069721873915080375201529184121178333059078207724293438078883433629540136433046251037291470143437388217324130646857651217837102785510857665803846878847471946861056972095567644477057249094502471843392291030300936593502657818158594546148069160890090167261332557572044476231244674295543200586038254185783577964473231077789709346556310416565264734006123012233354316876495536016357858531066490747181488967462061892829994947628790130060482812173079097314801422139712329992848662074275339557318489524630026273839633508948596854782543459857956804296022635248533988020977022014947986482447254540275225437579745714782677371865452862886546157275504053476665283718513624471243722983434633967372725926734548651669628551262459439020309397580967940454986806612697977546343918588472888291844967121063642792381017717546059851748795219292310371308333286467136172129138458027690258230566259166396364482587844553160633040888841079328260168155426643002549530689428994729666080816241161636411575207067743930501473404846326845473076351967704758448940685863259186191728968405713681883159256972804421603460942384136839564450127741799964409005398122877478220183279884268431396121855233783264591079889244273286304102594156760130678663703917044097082787513209550903276026571917924732849203753260454826554231294811774137191613142465477128172430338093646007130155345215452036548693830498631897979270519314567548210649750760066839589135194332916220661189919331793563265440464609172528384274539693895058305429944749848922162754215176770594663493784657418842192878919349057054469669904917713396040412507705933444906847486378860372641044930825691048576134955075836071639554719845957398646841719087118914313093633672107553444394913554774246450615905978053458528180420158035166196331957583766031000380763819884031020947740892907155023681221950643175155256323699977007202187062895972948940878762462887322039655819847053727415987257370199396794461469998652796906445394148454010058539836815941665090238212399985101341876078082977321568175509420456349676835752150277014619264529182841389324196594638409749776520803415476668479813672181120450056667380884478622906310635535948874193560198829067724377138873548141621940767590396145361116853416745185335460162394840569721407627557871845161654756395667338343458745207979638591000571813399060135769721380487863147193127055507677291330296332420954600755989551624932276081807474569477747635743168839131312619834402965046861235598517165443441139972362730344993235302991976103102200399455119031913523407321341414329262524101819756007355166397475343313327127401050835026684869102048619387964737961474688911835418300740555060359740087278229956972303855384110905799402273783241444549305209421517068835293403667378685393998174253348446303550515569061749184745785164122276328515809741980696953681347667358842665327890920181257422878323603313324405788886085719470556685513970166723855621119903962269331755769424874017971641169762949982060720624979545529510781518520785152747554993857140571670816301054545485473222498523395332105432162797125607609948008051719917847006662192632637518544755527068805971693875970510045670677535349170023292844276813319194895022952214730083606762948468135989400311463267876039972291837943184823426822854122654929139713206356528030229200153600995604946607617321195594724794251029643763512029575456040413398577130495962344515922034512425013725662012104943594704972223978476854390837523270684111412437352963520211528324691136671724157012304740428492103721830666960501558419790140824241386182764881047053939216237184012499292889112918693889949626484042426372055545951188210525401604058612535618467264154063601612594334383281347739909029709484072655158505677516129198974852109727355037404100039160638201282172533421240352048936172251986462361246284190477930116286802173639277407580181543121131620853263132382267130326005126777698907516451383140372671493659395566424123989831380169511661070515636368927220897951062149128332789446543939893730193375142648142854206674213744241269586153466436255794705524930347264921388212626789283620442284818538967754042735682770641367276923030236390549391770117962710425835752169825864327928203041401178048381678868971692672379862548255717570490949218089252526440395504993829500978007659703523529276930675337849770345623187675549850874250712179104229098725238133969498474063091695323540141120936022626129520664105097502101463131056780303583195886602546887090959096151912863097641604258175374639313903108943667172873122903261578562182309733192379056554509685875950330641231154340544126891565336486292568703131078829895711853511918335700764438791044351194875609634352184089601923924276987947507347288775278475896986255200806485646960624992059810369007545677473171728563725102517557527314159196414998595957224766272525246239873489508619288750655891555545818568965493842679832427291931831370297016318074021991073392066001895612147285755818496907981086340449803246603804817485758387837570094307419415773714467851254243786034154842002746421446909897733713926857890221244276471495473114519270561596073091684317994344291522660658534336055053466077273096127619634877044750350292193781259087823590336338587989350140277490417599699127584538707777360443775883703685478481184501462405767342484338475213829316377203367806674910254670346781280259292456224093664939148960369469276161345735288717024983239507666206485209883395756784099862812883991781325561229383025633596247112689215930030464149655726178306943537055556964714930579072659093057110577953729649532167941394555690752299804734507568752785122764651821545335565818048582615775520289754522752055491203897723167162587301883657576252457355073601668182887978942567892269905312739692954520603140121395811025164690090580208011807216786335644364084593188720371364682421253421288564615532379185943495471558508279248256691060247801269511513625455504094845130749865894525635454239536954562635397988161144177475933987582591011537841345142645245824977436346110513368381260193248007449699585842088231565185465144000735960803816022150265165983180692227499273573319268206559565762635435750921120087260337767046259675791444847126419915060926311438079123029687196474346950204893243181889126003927692377527996662075502498746219670744186529370433301327527742628288648607175039634470846701969883557013647469959907290638520374292367615074312827906012650001189991906420423909721646921208994407633745580124259322220340569092377444801213007325696302444044268216929464469718421286344858502444221414818460515416434475041955208761997909555979701469205565523092369120951655719642827284612159009019309854218405471358432643739882933569039354187653316179144018333037395960071300007047803590517695614401267948513030856592219323271577586606836429235623555698406608257699675298798240646039080140299259117221912538794806090593332700162058161308766887322169855981221074954859131907611532563606597061479836886048937470470673149412440709441683144722990255727481914574790457258713346099891840455883908167508292137276298702737995459297649065695024460225916994879627713158799980196707334645641655447666293584437155712023233581361885263658025289147762379182206335419692573120566842004505787348332137057033700851644218581495723590405775060830575293921521507820815205074280116294013206779197434726946597535921521791588421137266529173403217605107712259621325316712056123406211396481208698239706193798511856996749099187459325286257968750902921146727224339108289827757294353556461698563354805576852730868604643785032321003397514096374267595678068098681476456373056495986744532882104691402435960229626425960577737886523026910885322219573267256015315399474677623526337208669558317462782188497915163124821351550193727407736455849478677877295528478117500648388958515086209341526960997275319920361497172530301526389495893542530067938988216844757847893377343582654868698493525060522857280141391152456260026154842982336864026146598101287716296810563240527607511326508992136449506531526702381595023847331482474942990645990528043684202033365905767472355217776958971959295856599023975034772630727705304260406563483265496595500838226506513277501054401307999111495533949552200345871483679592135572312649101010542498171302295462628064923152729162902113830483318240130444958292683494744512484513005425224130334363487617520735802520487904720322185998375117355645665293295418946341239501412421418032051046786351684727862906572679725047014951223834424586431211318090890093616702563507893878223237891084357766625751498863822637965888193307489944736613968254409476054705111608442201179676837706897113192924991116826036594871972572561410710515250261897567152281205353022686811277593694122271091894494331145668754985250052672928945565546374348567349307811950051494402776996460069014342174778998646355404098276052094419033949953634866734953210568329865389033784767745054751680808821627380528638404361351575063192323466249115287942507470040076543305361211156533723965832571397245607980507986640645743224824841806272955145357974973075040837256007889837600050251386000896185281025211765356020371163239313490774803396239615411329949092232582857985771246611543404037567368248224439681440834071562882971856737668283953379609891937057870457274192389096653563296184139898866433885591184152560059002137940914966604331817704733106999834689421847797388328595206591204582212739485395583954102136325549399005143007144093698757554133374558547003065802981638099706350133724382037170500180454265326354427212473943767269863744476076857296888193731275486837468859684532868205069790977036243043650151928363841576275085054941064758603722207074552682627695228332048107009877579567844139887503161638586735914020686340734566630553115601667054015988510421963184294854166305993807404894314917093283124538813427232174793713569098430886464025089831987551140993863165634933756096477362770069536834378148551218730494744560744296275973099298017325490266940701372192761802773447461115152111268523058714151970346522095957043540885404173058628070159943578999777569986189791384129022146905645311125624756069458165878471456329246912542339332402901178868916881211414729076974245717739949366168901988750541340891845994780841505842500350839156015839246922603928288480279531461733073400302325603611290413410347467270034099353153864715060770394435574904661713507531924440451569337842474600750625524927236185657093059217566564592248873068146014557542817166773458966544335205939054833945215181460558922019847892460798411124410446247004166030313518352896758387445880653692383096356545138832250691472724248302148366413277597686870917641434140840564004797512482434273082600824204298999168977282697239885987045886122974475540067556196014979075251260809607984109311242671123291640105470265386219697734933885270700753789160307241722121916007052014569597928451673551936789061424269271725051155055249785266639658532936946036798283023625459892285808377851120972751106017781192123205943228846512306357408603898615623088061504342268710586727984552934907090905334570567258741803639112559811327363076199246514081731263638502482377055903803303040006876581854000851616085781701768945816567600394851179229828832177412193147091972434461486720645478794053617589886363431262277526860534678549499572597095599727355370757333023894843627199172729017054730336377573136900343391118969048049732507843389335074140562135768683811354104741271223799645878035587893621834173806541940162437906458395484514055275408670473600201479849696008872409702679357743274240488626165677052811686500651850760493581634476789394819517539425034201698213553990335235958373889675744086342260087585495245172033272617372202595138477942548647705098835057370658977481245753056458158587335950928650840619180115922423619538733878260128134051720126931348608099733962126427136596221152027295628381406619295053241632561781215323261039448207080774528109562970870287078029838519430796463072505734767560791341099511322569203082810847586388990314575044925609007298349231662902295584426901459798944347676752423102346734715236388621898816792581049348736911252340399923100155067697264899040657853380821581507619967518904562832833791570967934103311252145301284410418975808568078667687057342972762913641623635975215474053843035855813769764104704371084174836997703305299047681054131875659087080783967399466821570478967451901774379410027222310077484873911806887201795503255673743291243055638477063556759320007343775530688434994260681129699198794255950739751721717506943751097365441658201104923491524128086884618840709656749442617516424880732456494041411715551045240442232457214990369040311465689838922848508911454675319389145332907733433977621034176941017456710773607237138449401812671484495105694987719239982350205695673574941887160872024635464222687887820645927797491633592490194066609188964962514176373616890107501747528711222140386565482657464829782579256531670842732839708238871183293918623622628053287673461864509596736716406917155441937513709758368399502149653324010287181401138932750784901180698191028153840424949634324618770593468770184464388369044320571463135389492726401407381446502540889554615587644117830490593668871178384406613068680190010295331722544228213602425523779683236932283971720807296897409748462141418252146433875920667168951515676246474655253108021711084488379566619236195249982582327895459706172517326663856343430688544885667456168131933776057950739703969774010206156685771084042888798917627343443790347242538197415178775645791525462161470034893600166535615055287486602682117946184626650580055438123434046019011938936052625045963127830771464990892627439601685258846208087244929476568035534300341942409930281983412194578584602405332568327004043118169166850674896338359080612294769615005584627665059156391670665389986130110488534383254694082824105293070178176881746017341159319233379445039669171513916397529268781313411324537869391090424261381208711766497997976431465533678950190191033176837752237262663282602274115902267697430167305888940037627518834209411559470410673570178753595332410434277093228200246155699602692950383472681530610467554969447097003672756263620381086847516966746633367476514786267462059277500663342529013947285043224884020774299917589641206240535632719705917088363979233682829314823933169172770271738792705743702987188608818836540444919786978116095114741634052064844277288512109531154860705902699117464749392105249381587773929992367330375451202820538727309455909451692807863949283241282891170092276871164776156705666875491115770609789833650544245621585863784632475611294901441499527911494076728755668858762993038443858186755405687318639429334396865929820679689062865762858660005605114789436077128013761507348229317891984869597007043499077545959400786496311680405421099069373020108941143484920334871133865613058799181505843758192303232294385139858002399181243503776233219701734527295487054728055173242696761353954622264092255513214437088593688837365800807812685004808987462422166487167101288349259561342246029085151257378647518559127457792261028888058510188090053701150769637126626302910363665631471440726274214149373300714861159472441963882696362196511427004403087493668607843507354012171235806656608850298243463023588427094453236234874352115566996623037417894846539493176461631326132458402495039680775527251593415263594926776814424013898734388287390129675255637608200003238359315973676572584149759919889853948679690395433238354989717225040199794507362449934290678748616851889365158404190993666038025344412459572124167764906389104313729569860818898653102932307044928402807449643307520927140070116825149518985041849211308570472750602651672370138797141408680647672880371564682895971080162387637256418253392002540483583559512408686202371627401972854172382397730800276094075175133297066486626516594632053674439156936911605682629927760832254092229278780092105312951803850099118974957333489475478394095998011400282671948082558013669712830908754120202476424820710172816051889261046047575609362962776246833607022661878911472740184312103009897596895304785296496968716514981912328052724896864051007580273440300783779921229236291172017688016384363543945935504639261254423866710106792729212654209416616484996099142644794458401673706026912237964564849336857355899774373703344860498643941929394191190941655656863044191101057482863658469097148118835562607964579671708713602783848888804466562018309687656323275909844449926979266759038900620726797173651970726729945151772430034734077236064153101521618449626024416675566024523826836237837812718674255349501636439719870336267049930142874377266885227781385672713339338615786306755322713594917753159091391040033291996182829183369275798748138855157208170136816827655839271967739599212914668914864894555329929020150469738819963566214212563587592123363871474855902845751184548319373682317362619314885414465824302445123454711792926793333303062959646039570781086315277269952432510663618056913145470678479418897127589772570525359340750213328763628721714354251484928606111289772770844606690341244904137258755420780995815935429313921801672175155575353513281520539944257138611644128245964690157451681631170476597394312073541900046224649390755156771359030145637088291519809740323998013299543690264321019795358086299071396916372134151885961653290476953974635825518975330099730027508633284705091406419517094701546892567513957068081595978014019777265970721750171285223802144417993232392000227294664600328181633418497311338029715151937708322831557666541489514902450944282179836517548980644437658789401030942205824998836707214307596853391480397075477480587178538070450416176640625889492708374179895201914414636316321133880588204426984204952428322936218833965257998222510410487403923512162909575264540673079730923373213848956786235137144287529132157269786353818354019415196096250408586343375323870192261706688006945018237170278763064854977300681657113214037840988009275420100218758029040568027338263576092210870730937565796150165750267024828351043149225942033341933868027871109377915908802303426178981869856376182705369229342782377406679630785117339923416720298245699576183836915299550516888533258888229838695182503780798140845783175071094249541994385382439510541423957405849889368284257484609776743546458536455262552775399601323640916493620233277267644932989748904313007835632473127021197400024349255449564883623248742643627116872962032656963667162763347496140706771892345117486108431292578628110904463699344857789817172371683632525716043018918770827613245855069498605077482090843451136660220800258243063670949245097524874592025062422094307571647087141906811194376315563175182458727307058082796984483133671967876893733092976455552380222564287069669459144339802467535679761111162277494875930275722965561534342954996515499299547279905347883839512476712822339418997570596963092103392792293471199659866487701663541843336662952044705875126236788448288788381686173074478433086340596539757772087876149983427861877226890314076512226976439955081767399089675055926306368258062092923853185765554328669303831204643806065545879168380137796300729487568148232943517476761551323757282723374372206217336720455222265285709360507005476510407096656836545555524598932753476004727659254745014494195292800755951058862952861919639943143846253723122542757683487274572989157930934346520127366845265317170865135810294730438561245466525482605834230685679818100355684188243713437663575063409220407233866600102549543616319396883349574110100117621399700356475096402184778528407525254921434506814874825485099198138123590037279250647972499277254478204843262739538467475983055858362378666283681004568754934533982078676630383680193856533071624086521114550675459895216429490040368573960475675296663418097254370580670090130283450168115275379091192443147296183276431721429657340901773913269231627147395171833642431738250784578988625077492647873435558871224747904038375950059276063941531631943999585445331158404612650203727209134736900549851002211486913825345341023802199061315719958691268791721419981898695551325939824328020282183010363365485583619938531250864400555213435224437825157189402797748942495379374950636015910914796837147806799769207571171987589930249166866448681686670231939564159205667631082978825615259157709635899259176359304163124518353396611528825197705300384774446205583793950140452498458086371038358725597185572304991977477402579842734959779997356182560420458542220404331841769192057252306549770661788166014614998499391523458245266386375775527632426417230077076272332133926840393160278805370658578090284137155767774577884491505819911446633466582883132957753045059734853513641202821723664970710736689676396365106463735434258578148152848143270927978589859101781148376032344512119147317509601626809140404780783010105179266648375978514887902103007211991866436688352341802849869727241081662594113145044314815344152485945554313129842970708235992932578212535403466010664600826391252589702774698765420533768118860872806483204204770680056970394174088870166531752307627899412773541575406895857093649707319109879758440309520818265403275130827605014954427218704737286536338267752018620295720194821738217256822063698143374809375574606507338884660242401611873462801023212778989127396102860921583134252620772728474802009789573139483822481919652355360642348671339854645229390913770366527323234013117062804843406185033432941389263285124332778241863970596690353415852345929628030443038486331646797235047224373695239703221525844263889728494607576997634829178950888956402609624867204660720711754019461976424362136473142158938712828435347159595780052492459526299367327620294478122308165045637192875954940828291742592926544041546705140609815157089043803735805064064701021765571474545884336804673988906108064323311682430486282696249517885060211619599717036740563993051926792608164295098218836363731491346244400964750422709660519801504597166619087879572526556899222134539232924841345647157875261581736737899883103094036990162769036201695378873600176720026955583705801531997700100737202701493843524673076351920615418466236348352190753473096855127366820727510462281729899822770999119382284898256037542427737852835943502286409087645665670238861721308172790226429009601999710742478966191964174697388709471276409149419792672986257817234078892390745238186638288653970091868458904907044331225764718319173359425821431502547671997469239338737594611736661922252107750098251789379198465742402901890681652668473136964138551897752392320904525079545880581022220075227259157510618041102531626935799080310202425806175907543848002166090451945137129613869385216992241995082011065109315453079492760201968984596351245023890792086321620131803322119025657056147939493073116151685705132814176815055661589602464153378249649020979979763013801353886581626149734270785177126339406690414908206328186232955568340577935561970041359601667108086423420986718567388557678877549519675565962297562885100280508100843282792970098612986437285798324360968834132666781270281446245105175962585800428323921415573991673813673887923431152322552836358852483969556890268481690518692500905127655945958257218769432383159239530694615124311437425883039511682295705518181256871205341569684108508392256905837246957653275052969906366491773291911448440618997001166352621504947577485955040802815477960694306125661880286416833199471493453883083524173867090919999889320235925809839592566670484780437824054502724076268507117259911415501916904360891834791881014017925472977201953675258650389055361933343560249665676536144825467942069895621294398890354393866002070201737948611490087886699694719942094594424034884579375161337141699944992222076408150911940597457393701146173026913879576112850831673539916295229697691903582473422547982589907591655676618799788530767066004952257317440163038118701176786296039375621157495774635317571225834808376482433519900059207187945940717009433206486681059185145740864551622530672389407467922235144657096882899107845858813167439357372939745786068235899848716287199740412534673641993637261929269407110511459659130517924989887540418236100270912605158351722685174998462722800685698023052116932811406254086240885241409214601022232638033121847458075798193653483757159074927085914539442091936727312632883212783678232819425848948928329764359066691274486537089563764454053329451257589453679893068659224345540849599272596506828483386599731277738742079253088687880959414686717751981187843093045942497744264725992994560753263383328310844220013837720890312592422556503032205156103977652560307215931491393267584311637423937053940459520576430176892434860833454194084015957208078716044780914214893312425791668379266356596499340509775823608102119612274931175601123301913824463301056996262158192834194580721796429874747473045603094855595661411543181782609369103963242762943910498311067309076359012910330697852314631637654907334395810400238983612344844215486386236995021274523225372678080502024136134457033486360333755917664345781534260003409990434196478636189590767801644779329083470152840234996725653591142938715157681619204945513000686809984026776032561681437796499120734211135266282098855349630819069045705150450418789089304256109103987176698226794702896695874824612191946132674049231786158508305780624686139039469752219769668664269750830341179894819407618774287419810648301096871161057308315269429804274689721819161219956364018841749839756683003363173250958024500043445036079999108115840381604350548263385971482318788950608149532328263727047093060825100299223745485025769939401779669829490562862712930817267954563253749123584375039244494240792394308209840862358977936705921167826708568188303252365618661029716057661536750924771335148875648179829029076734878472808443289527816552315849591854093058626606513381156937185819575401985484613997548587031512522450349780809362331056946385092743831991078147881322095068239010215473841520607132287013932418869123126043155662457792101614667793792668130182851065131378384695770595714762372591799033283959995238187888039418705175524514110865621085343815679871831405801563255760150041730290958108115808231917070474414705122258851980155782379842351059253461065686389007587730610779379182047661035000200224504745922910897979655793938799529076331404689587836235445834301948492835816378126810957591951893270005874954165522171877493227386634858686094692524647208247187140693814084069799637169493316725317024989721186471630947854674459211503165059716442091544212394139893551988018004969566126279715159837490648042412496576162232543372670936799198757147934808665839432963129199170488247693701266542004198264401521684271358870808735426071343491510995049030214090107045697987052852814077467890235979753066062040216609690783524882622459764359685251710014565356743729521257813688189437428892538354762338509497747577508365407802568891054761081487415392318166365370069744555043367892674845621034170191247788812760341203226805426334527003557366051516962961376736785189375486011984061030938977304142045721872525339077495966553660956264202214370100900817166095286814406872607092876378555323628931964639426575664021195241495260760082467817317377276099892634831219940206533356943707430503406000172494916819036735885029316347236518260195825322735613472078812616034024573184980320399931137180713524266985774953361440041035468592284493181054040117565773701488580732819682035848824878152049505161007275033223448805404723424108101534896398429968558272576102356903633996723274826779816289408363028287617304591597521128321297565891497712490704505542788004954260468842433625866722366882593958934485502622947577786122639100719615325657526417817755943930958486180361260024492978090039146405403692083791027755458959228061741449524443707580913237620389692108537336008316649081701626134915570126181960160893817734043760376436876739442443949706624302461865643655980902820390875614549211554221005879617525764725027354251364310412969106863209323322787814938709991818141500004792377664902390620647271380789721207148463437524518064538564003823118498417406539302801371587897309077248781685661686732231161284374769379290271132942828614312693250657768302920769736609143731563950377534650580545531066080416030876978710864343077411410361753276344389889331088455112188807798254279898206056087866940253150405247845246251402115916054531900089975103908464740090153420251159505851583322033076242008607206629496039937769075808379137463319423619078076808582392520629775807104359194172662986636215633889757501759635064376964562425169977760063644003858846967835061462616347529184503805093787738839104974084236218767138503168656750583843241413859058666511741337607882346825640159224502558465525683832854405021021597980579517217414318835774669566489704607773204468983808892017912940601050316419747305901572108176655165768374984773225570770253405312081191577157535185680691740556507821529645455650644490017231255900591332612448271829427205440499235766151221961342390593125992505008353302447810965364958259639410191358327739352150417522330345677655965469450718207909792640840557264878911490932871696969910737414213015821953786816508438354164410893315679600978418638380491279518890825907051762795280370527361607971782408609425939405970332177477277918963474750718133356341497775829878707621112593206876785714108790313565796321980558717080623187765852275959544435603809021161448258800993243030206783921733272915284850050281666245225770288199176667675585698995961687370532487443717592662892492110662106148044749294821839024737204239166530167326973325785066923612333557277704089587055920697804746136168856920696793468546815940727319671163528063198284608347360401337832069635993359057345683721074108704334764237313968052648823824429758692589443296518922165905821512125034632054371010380240489585381393344690345733055508964790283452356702717437836524964280111577786093660476773905282062575577499937052344673174855941791390347759888162957719456391852706660861275651788633293341877838771000748682377970922625165564870070056375140553818690958465817528549852537660792293423614913726092029487494818233319645853089153221535042893383681452289175904525145161676909121384896573235490800041334416276266598998521194869307779617871216472004954820874186638955309186351854191996754520018424262795534089315832796843375853138137953334868238124174558398875994150456794137688616170024541142833732388587111342473874778470561128103079612497437456946864046849588220052504532545317802215183922582693440676720776685939195898207887342616430020341883070956693900339086655874358896910078443218638509542236431478498686942779530082531425150158713449430143733002841576097236010308560632149434951261830901763379472487449558795593584537965282403160280982466330651328574202722996400876997220934271101254046853185895532338415722370625307860625225677231952533700226620381540568153400123379516853712648955239899791368305847754973022250989719641792826517068125527632766849629569435126221292767136792097694783299676428634144791471577236288552540684109811698220095228294934010337379050669197190934206515273288789702964318872736093908220831673094041471873539560718978269273402102336118278669929132707400822381249963791887518273952343761929441252115982023751088771569983623910134461921461530175754427452789855403660911222160434056002644117456375362229970686715770159830293241758475993962319997915400533751076208080617939691733278321751179821085913483879050215275965594522437339578149290943544446442768642374784033054149745950545470658480231987626313128277839171917169532992412665171430916664280774614004006899048692106033128138972331338342527888980698962862271468066858400378706572037907900080893534326210641672225925781927387491986564061212638252792981187747599925510126052318310777127002276024194581724769397331408504930438313396037541588297421184023975186771377639977235181640634038453230540270582678135366114497044148000303274965173877383996183895954912715708515302235241635199026027178020588861285218098817057861026192951862762602159886357046084780304109585960782501783661604993450652226351528384479976006295356554371386029689535955132757623388528596778530524848278544898658761773260388742504481839452531438492477457457883028542335923891751074347054330669932809969729160543210708324199616354591161166931578105994165105969983353527287320891339417993704874591362424268370805239259989568406619263410777276097451896520866365589018691984621830157138301593640131778633182580172072736436307147311605175566701896074883289873347335883366196728852626414200220521771463751040463461053535277183698026557837828648267546320743012591797675714872503395190087120510083690961839140071354337776104419492004745448162665727495060332280066160671887282134419161650199351593245027870272328251176278783042034133354459291353672920234025811891638395482479613428985445483463107753904303998918979294816499744775184855089581380366499076619827684882429213136041883248333419340511355743884630206273542835884729648657272460348326407990063699253065616778595445745984092898046801247192455076392931204940926970930014581569476310831343143311254267359435306875657148231513958278625842730680790472971353960263671224382134413212251546063922605775376467378990998598522397747972691907508104719475628290447178047853268894791457510074907896606817227856698258695998152272114025918087642612480320878165956929897964395789367353063160344745007535852877526954484737491191187959972659793415703270428793118045199441428179418853123026134763127145756747401166133669283923590377969895158432354929692344903259374471688072616983379320190176548092946141990066976355931571662135793272374810126256900784152228754587730830140506989835461988210939975419675628574041465512073092650576937129506770776340846104684555024337355392337728036862170372837760322158445826687208835093315766807690935145333660728435964297178926674471505723654854971541193690518366976646359041695165747788771591366308550576736014394354957172989580433009857583171079750212123924253186216889751924192224917709558292967590427454925253148716979119069994144247802156131955025298775243584571292168487938869622764070438040484622704906326578213149640766218632253230814395449554356610711762660090012174817450612478335268500601232496515546712227058441506594669858162184345947546403659507679141312138220684650559630721871697985519145092311571512949021976541895317507773083432155478227373794498036407843860591347496221531393585210417215520367037988758416022142252520212519372593594243283933921575733424002555736354544027704739889128685023540448055895933380070885818759986060019352586467586655619523538817983289679744686615341125841908818417159304796820251236333748820285314712562937621933265369713256824230190506107696791034783347566958397796200077422226454208729079451777318218947770321516348874660636309092759891441628417948842368070055079994892871390162505280478288502489266338702594937434394502277776878774320682236144129400946194672362135727057903792403457208051905849318232685686227058098489354338896604985799001385768465993656609799460452609765336449107676358062798467191713580112086997793579197208539169266840366765438220631979333813679684608276414894932683980054766652725269581857533220649523559471167770228247320214372891532479019441498904460864863373645898930180979286700592484466628776455063561731355668821910545395177982591536836467789042454930007366745871001843770558677878949314686070507169874168040688787013135622905913293061427088492192490859569006367539945377293516946584028837774925969545465968982900335598410782751874418506162339804194885871950570119617980626463905927501538804344291478339344959685402468290171549309793872504303341567724982008039589488211868530230721636737296485054447025454090940354848678989690616429481614082122540987912785514983615767717175787803318086123070097500707261453811612331597709183580392615755846427432440709920457844607993436162731144974373682213928424119378152002420117836977364045922605015291505399890936505595104981582915942455527544813353628853867178396369271669240454543792784338377250204000616055978297599016658180805907176136184995698725621612093928866651273392820749075292818926763686485167767401461368198625831913392102666767072648718802491294608301872497067901836884438135570352357739387744782442747431897970351404908510592066295133814645112181927812800364609088280387128460548629637335867438627861904719625783704353601999773433202111334816815426973828890236370829757833970998251566987799090726461658457762541756016028113939479184755190165343597478567063640254457551237819076438371408356330079056602558314916783727421951327720606096772659325530442461140975620365382313751168017426685388808671782167905256321722082380611440636925164181726534348016073526604328386517372297973890005210066663590386596868473738577981222923037205076321391124860088982127661200916936628078814559265925241606446895744560956248736094288035038194525972036762584652014474235819113296451232512351509139288000875519641006777514223314739259096890824928178900306992909088816088491572269171511869333573763043684689960509254840958071285756904845931085214066106347751319686894093704234762386175266162345095824328370950372374811308135099339393902335389954212439085001148444561168091651721293633211610773490948960663886198194892537030164124543075568371587309957301206815620833677244053234922235022006403569895160928434682202024015582511645083562525456264282662123417311593639394376935509272725149035926599301601759028649452889760451244534333929140672504528236639736615822075884910230033137258813851260266261777902808736167854014021831632520218461745944613532448204961381342831987822693365539649084509353494547794225740666757450555416900411658101553323476039029044689453335613159388201874202998650883471954360743487340322803164146548035369582944143178803406771434608703251629932923495063661643265039416825949682161187051837013087639609618392670058244242102738812189905040205268215727641022433877678209927715754290650141700440552830302440837033156921389232184311779210805151444396599692493342472767831997719008116045064465304908998646507227307403295911651375262691064299550343417466074160826262159200274290736965141263525263148364601205941879586357327933672610853326721726203847143393381292247149304159880306969536735070888844288596025331523711368438400416206323744583953905375403356777643197582900826223519220571887266310703894009831211928877212464955176302151224172985643359063479440716596785595560824050703273728764276143545416746830263858981532552379613342913754241714372252638531498154064049068670846596676775032203119540545232948028465367599410508606900574282778014687965929824647206886629462455823299304854223250803984165881988569600740365970152169917851219042366488417737429237238621332979240620680665614157955040461548779206219309904023600946293254444801698385667817367943953634264499075733722674075881935073623978227941619484302356806397779750999570562120099361288492801074127071561263958990884949581360820607618118596993494407379352133443653418813367453815327359970020288530672526974248240085113518709042094887361086289354142205938969084369229952530119016687778977030617995628706810463922804570899925929369305828858455425842548164300555189688696969224754761136921922712886220940213277776588091366616732067699713693611776248212903832669622121975876835138949357932012560761856030590333513224214553978482493952432816224054820464022393376825025940977753055425170290455121895822276031240360039455679419442412299955070057195635847106566218248542104314920272667834904630851379880499370153249483695237047828421605429692835590596121129772742632141080593548278281607150069198931043538220648062238036945642520961540447056961303156403877033926467937819205844341969574449346893410021836380662357022451599033097625245825227686380646815697300639721826484123344677123783302604714531309581574634576879223812234689547879960286012654671553901282339325025332116075011364688295418695971418112091600803368277589802714419582151521112170328927682425916520714229647138879604024126315476239659424504962848008148700687103899992465592246293833120210797168390994777686636647199639720109934683472086384268130333019586504301120373260676534588527578687496258861426877572929511767614920988208313199264631686822032881031751396553657353916649464760364794724269309669423797030699377490368023296165554344739837587870272792659033923907328339483743621196203508086213675326061019042072805928983623399791912207832137482299488325449189908295577544073009429675908714537537103593753773872002446360197887148272501902452443943183691129543336355152352895304330363317261801414270661906321687884970687401122970228825060568501097061904923861117233112871530424641674251604115114853829630405855966923850988114818160805803755172677862430418776689015334787890953824799579153827924841971799184285867989117431190974283680516138129776500151087892335723801020983536239208976505578196426435138303674219962124576941927304957919219723359239582865842225092997343448341461773068782247668116286245054762774585525390346306721876615083903328434015819408200069512561894850987955809156548892273476747899140646063338537441267887429653619692360703067978388973917350016764068673930264979185169670927305927990486094913105908725103256748717468553394112220904805906962375888328208611530890094839207856877728982932224078605865527121953278817414746133952124800802859586155147321645765369236071624482927596765951726954343540977687221144951140318347205829007584631902307607988310734109822206548047503119906168012669899975365341105787720755930151004765683621170658034642295282824742341948365888853602245558265180241970812838639778463666198403811492973234536955472003690109798492938964709570128913723159964313636393213596108343308096242978292278856880491310993769467774568282081428637944500591955650320846007145769451972026307809697829800494001754525502455234281217315687744472749849143888869318981447980619739743416227521258361205180719454558065994418950904711303499998611611755076237954949285654833499424026528401562922328785451073973612799904222058749002897645488874707145642872569969830456955925198019842405304601434498337110617843850304925934721151720650889723804587443952190257225566096772610837185282246297129488387357827686143676763779806175661750672661760214485645832929766661886384810601700124359033321898123257233813064720067214855725662957332937773187158412883718752535552449066295484783032698999049296248920051849138903931467564712199524237537612727682023298148124539753989231230613852915758425293777974488080191745245236597022513404937099361316159225813157378335603231804058873583703980047074733082091308916598062814492542994430548857383887608778748193437320374759067043714888592455223460379160253252713743284465419800880860992959274150047358979978306915207221917647365662492565657693597961550666128233784495125079401551120176336036861401646545030644442245003002315711935951632804222196438473549452417192277141053770843717979576986298850839367812874299392949056094706120850520048352777180659412505949195494956192061076275109938438987286588821224730472985991842110182212004928940917998815435387671319559550454379474211791623909673129401663105035052134906597161632263945287063787862489606680586545517754890862103619203957357287896398350111167453879816564935977750695763310404163940340342759359743310384791387183347344423128711137464546392103944609693947366835792997678186273706498546887214920904107718985238561009091104849584834965917677577943709285191605587423081455580226498651752742080746054798644912819881161677488085205093560468845687365499622584712921939013072968545669849156939316773168494478700689007493725021555944197425604342868264765641968865101792066054588464403305774483376274039338865468138966306235628440116302519336715231774268265196988254386980161103291060868573465465086633239804406334421645062729496257920804235900946355193444948716995244093579983135542450146348038959407527042735164407596092055571815867554021659249857097212461585086087119050512104789228076115870572137112214259954657582797319147514398966342752127802001461719176321893056462622179167390828240633060198656751423288417509032165527742042149539140312651882415337256535803858910883774390890447836408805886530363890928611914161023154010179095981243153385358811436459530073099610600603163361601300242801365115846184242975047856634000546241352978692854679069488135363701919714181272942647461245253451377150556469019761026561699702657689615714909542877655401834471745435440623533295648559712226865074576246600134300583830279994414045959784116533796884340647946016203892990341935406911744092189045680059862509128747694575002352660465739477450057596374833366888077578850999521214389859119894858592796953615210501457001241934430971607425259380718242656613339827326817837792106096109900779405928440090806766153167165593159894575255721469072031168932873329969547501393942214678462370513215419348935151370981039299579454520083519053578436904060152594643025431998290460017907477137647367009362283617830278548642215117102316018955925556421261890892260370822299446254576213662351147325927449850861160794881849391583414760352465526100692302754708837630050520616715010998060161772321527294702021182880011474286122037166543510003082105542522879450049254393745896283422810930434714296338983900601858972569268390186551269651607747050030321780133774245022341725413736624587723927038222103192083506857423540951916247902134161194100980257303418508549779847581851651260493683459934984208621593274970763620243348308744904040321839418052377534693288047324105222652551599444222404448122577012364202132947213953275279030745606348729678295804271417450056956796497207277295200603478413333513455206176756045687667717574386651083053938159541254002061507073420798020653185974824173936693132007312508588138526506076869172002399900937994562233809588371798726812725389179435938145264591538576933570249244839527623059038690714016355883601539691480910863192649785280580196826224238723796601476861991786443608653170679833754992416547013113925155120622615413677877520522579238956618776696511656699128905238763774761677968564659559490915518143501740449722894631631145807402160260379920011180835666130552252434804414110736466666493304455677308367228750787992964024761290821757424082412794703353615887034959596331011255090405354163148474865567136280909847766228625576638712993610351841851791966300490893026611648389094780782840026272240846838888706113344639514193917107438850890513160160664394964901187474241485820025847130715506222219094906891340669810260586551426651974514680611638600186242783625366006235210283987173483149634072308463045302590945543030215330697231401462651509298245721201823890906631947862126235638674749590791928336840859191191036339314354908081107382217484384588989257216874532026282890464893337747726199710962498457841537478205248247672930489842082081984359392774773880642905900121548898439131541932368710913449465524491649505380683422538386739295647175125866889970984185109207888104535312834176916658351829399379174428588967470701584078413676704570909815673056568152293090454543885372661883620704473803833960550679518118482305940736777856554599618342373362316634206198382488299285196265994809599322980988077808750270269921042227327064808506466110021449436369016682965032974413675136624247251859714762132737336134163068138923470665672526589213887374174822348312722533346437785759932765212190092953048348000567602002311828490333112423298225922413029815523326643182525910520619900813132017226082514948652910231797204170805075524480047987461459645462434296501390623151820773940357975242316240299860182819470129403544559770004179445954134717080450989708923167037344136727835854049073309158687129682794667691415223142648455153541792875409531019615842668746454517408203206172397756150076687122663373071552467740644036883153655123840515046207506162833678726797486899285540511591111499348610923082443810528124699839123739248440955747176362560590207347770020029160718979040964800449413228560040872235445687856596261702096749214957578299211821835679553932536558035227637741229338506647475749363851595586508906215480090232531010650274929914917074697009597651437963650701381850643575045136559625273700022817900576906071253009592794991597574927158730280921845507620045156327943859758170446292821051915892653783358960465927801068068445608558370222502931437497088969805991963346647328333853859233539338248957431259345813064308572797622877335205005849573456385700909652055368862588950839905393776586516922964121224800705420723616222228547783924144306966404342628608730861169506786189115888264316722613568456949325157745052385592876301811462534825469377768477225729440682190137162821130605726657202336394323777618226914183762074223413858861798199743129416653772278081623536171203274285837447835198385412701367822526732981549801906934106501946688830613254582658209037342127708088258586923702813563839041210648211446247768731032894996961438874436199555789431531070245961415052793840091170888515817176752830439345080565237364867304235008899123732362927270791931760725725015751587914026886995074505489383703447906990008792753338729387822249187670301534262059302337551889526915100333608415289148370338215783129434419841800256637268311098679302351392999693543898024976037375363147698157832335255488826382900792674540891176637855413552648640317096622379410034154199799236195544542547614349762191535121998019280255615877482818815401108965792203552028848554882903842507945667669081307593275941965539832406295689116893885758669102101555123314270641262113107750878478132892514714966213876130298292203890546521230238558205366947513501729403599286632481327134875112759218637851276647162821138962985720894908971543167104319036297100445780475887669962026649369376107404503114439324843075975674108318536021486091665103191039659518275898063049194722394733601471925804161626616620515343563020078599571368689134985380303992677301247951205884684024635900677684979697989682566123095477028392942558335467951642495479840822307357690843402718662069394138170632291154079746725476822965651459039477818634064761281695908988572611753503895002606086104698566306953550435925288692864641949408213096863376955310177449997837512395829458299245947811120119142371600609830299895999878599220295149759731609126062692932751364973984220256769353745619857672675936200740111198050421123679782324532500587581955761997804379892662677082851999158459677400934189547529062946874747669827038533042387114168327112700326186348083595208585394321063161487068776814225512727051494131885458313985529160688055677451384079456845277518683888230123701147978664814367316982594844045791335075386437948574961243414406197000972746394610942003970736809247750064190139675845575775351313373909612152288690333832991198820635809175906427538337041850360794525950192475444587058094310606352420269656806789450859047227482844768349791476657905457963208223030326398993371473820629613807628577308617282189142994827344819887318742256024178891142493258164000232954345967542193546557389638625077490119332366496102090125799446572622855100999710524468412563901773297913490249003169430035807355808380765942672064387206792914941464939645703879149316675942780261038782687629414522002400514530360878054604959123499273331588980106874545309438873048132962909698581492072604235779277782980622745257398136440638446527907427142201438609434323448517366011092367382914010096178087184320092683382805035115574678271432808959670773066401993677207239857409687654736996994977542511414998010744283997242641567063244521074362646225779268208731121789360005478231587044418402551024280611857525484661853499060526841344826997877930337166373488884941658912693468015189663261534256046147584977359981183701705732602682103388540390998618847278941303400101885524365939764469249183896869735554906085053064239296437585291783012845424566120271024702104892180650991743132740056098347708955310403369413570944062827291150295512644492134466815365486868106184649470658401640190223911403424028212521811625978915116525402263936008337518036723001209963226203439611179342810326071516636732955608939157463777543122301024942911311392045553179856196944148046199428350842350181496699645404254128796800870895323826567696690115061548517873669556428058415991618691045220403950051011032001924014708701536868789797987798768791006919482050338187668150446324405619444067245873554587247769795676269849033941067461174924511936471007977051274657319208442699635991879786066303356779068796612199254653644450311140824784368688313589234763878328389759945801936070655268394250996402633863393531457719474634047413566867287796520875078206891495982752164644436880520954316893330917350516232498186413732500727930155431594492977230162260555635226345585510920677233307836916165460554548110204632995644954424455121354016074327849538302858943527991056679787105612688980731595010280407481331975869054482409216970402954615564605800781431813293279626981446928949214626001039342274835378182075604308578841309748860404069136021371004238279557935923451979026450293756946113761842575637182157183230989908162393500238432365107193866994172890221050170424557410148326279049113402645173640655969318411733311034983520877954412825611017045759065750789603287277108100625240645370607027018386215909173504103503008223775863652819068062763244918440504983183102266247135367354351803428479591769149873361119012411595573493296797574312519713325561059778636142170230908375404960440640580453724615747798300068517426807623573546444339744904762417691006354974107517096706238225229077035042852377454568682107232446022283242554198132964067185586804621587355019865539547851596797756562942042490867574378465989347675160402067500022799109452954601018192078956629548116313801803639952110746022814689748556060572468648100222299880225020112813594816310283645560760395369060933765969338559811213715037674351102603310847067679959519755999669259041664168849882083569546969534430309898705473829167882182881248752260531539702768300489739402333558820230592666757681368312714195102015700444585724546848921958726941270602588964961355631255089685546423345796211556556670507248195275075306027348642647847567381818256185973302876854142497850413318727462923340507930225175356044259038312685197795441647042540225537556212500082995676103181513713358250245700704048226920806785115865262790582403207066260629135542703130156643226317138331230788911283977958820922707844345802564818581465559369437156064384825581936599192623124672117146286820406201594695316066836818390260749346391593685895431809800882263106793132250751033877756141617009886240985557575291663290724739871568701039427730721840462014725763174617042695322048887760630731978585552056388803122641116702286991250335198517439523857493145796879920524985907868797914804204105122134406780220358900695416479256308241649892815666268482235799480877836960462639422065216747356954129796535254253850426587777067544419865673240130678724602777219969275433712796881321095477096073560365211179078262762095685674937121809603310567073967862007861084241316362870606951212929975301167694033673190189621040237298824115728978661561931537795062884506238077740608403350248865491004366395678049627042884398901011763940599062947059894459692134159159170006790895109172645179021199751739964922774247558972648831317588278375580290002653029735158133944123799283678619620417810689241986557105474419391730733021785055364354478917161767329654089122921521861904087044893020841806794606450195688489946425884712249797460237322392197560982730031082469589415513919155135525518939401602173988043773734924171070147217530638207832355308628878953567715966546928214368464416567033912927739324134389901237472178463689364668122882582851166351517057873529800865270595789655522154058866759419722105733193608119515732713350137126006237207512021462766068605260724650513366960300507702861276560216533767635961043237853752482749728229394903811597946565568739325922320091881357072931574123964589363926372367684884053757278078975736829241925422539076435648713788909109635116048302523393017228301275491764308514974497904312536198438671844181325001927144322025331602528322698077924586163115654106830183456016530971686575399989721647940892249056393118804946647154352426292216161358506352017165449610448477847872252663535687193602078595538685209750581564161467711063794381030653184847192173714948131412011812119045580363229480524273437068027732475350524898257562834223136328395189463099994454222067637052113161793240308051038460212322695242366458131158787225161819583598320296830039535148574054634139921665977008222197478905488197869339557067711274866100409649515614346387714806405380188887384617413274129773794541964042764837503723002195224352180165739678356460537888678613804075509205077044599954706059496586204484083016485581584496898486644144865252985870682930882021047636042470372082461037583896654231807779690750627300875201625504184904487057375802632893478834755046531976965249524340063654717157301923282832304020799383127112660958963825332181978531281952467081919924840552904684821739458546133097640208074806159114369015497532937554984523573329067161229204841371159558322307023711526089583193486690355248660410182733325213765713622309319265328827083306716850501454276303702043902384121441556523211070819854730076857525771843439831636903819380874086264591344651162612681748590326499356210637261701399961792434533688134838098900278741321526272238384215178792911561211201393458519838763649239791586452508754759280305889302296022923494389182558272955226665465622526632219625173881318760937209615410603236769331112542564717469802339871932423391680030818840710691914368571527022771701506981507467654546010659826730529158563012561132959608487731250187044393953209662231028275613373238199087044065367850273168711820660755224570166005136522917619489415453543136808990332042674607089074819862342461827048543052961265869612711332692056563875672200447449450122074995214511236834759179242166430626424429371530768865242608913802890367029899481922635190366638227075677298293785422171330669985480282316744516964965884207078431028720384984470574248540464637100960808561071851649702803209137253966661839706595259024940295708856043061977215297532352023148136540660303546924995692446017782368655440022880443521549714000650568275041356608361486734019950778784252634943951182842922510732150027446900256166383107977955223944169114055696140928678089831663901035479557176482788728598961828630226581322479496918430199560937496118338995609449590053900800470189864124645057911670419048190164658339464051777918379700101885548743511496664449468922792038966306296271359153946324614015969360427052368206670852237700777989709298387416880429098029771022817732916278509816192272493384508641853495709514515912442776087901612630144987765268849210076041932429845522092354531183819662996298981055866600706010863832734392254273866536424512603853417655641618308502108792178581081356471230225307838516485082087921681168865538903127753457048174736152363658362684703500367647678722989555804284609943472999600672955125602456504984948150871964831614261613699372897234966563011895503601906723999986641952054507968702684282766408816565946436888170270219384102927661354066478251788312897447460916996993050961291999492833119598238290851595552557482598214748356191520357617656660657873910966667300292123274738041179482993370820523239933061402995826655886497769778007016273274676707629218848188210990095053242349463311576512799102120200427463941319653691147758864582236576819719078965305024048520193991590747874111576259655002644111745352718321051245636442141141984489406464576794006481870084632338142444631522426793988340691305924604644230555896183853917367401431346666379171415304914651478944197739253539684538254691451166895743594434908670196015202560546663239959792909990162358410380262664128716711370081847016539047645811323209531203593747511753307400570987783507971798293010445372076170579522116862961152285479187326294035872975927219850361925193348671587555167055306603607491886242161420625272827795341022123279274114748882446705966497960033587156181718764231012859630981435023226850958670431311438311158278691117418561085979465523253913675225714799614983115354536854275489891944902218239633897179084197323610828377675318889178856801430406312127353045291552851811234774716784666992674654538620109705341931896370459040916583509008186636450445481160706960012306824563467372324768887250427030034038822052991060780859267913723711739788371835737366023091370254044624533854387656746377082239346051303148732706061269228225887778725333831398259936269030939849290695218037596567472746118133731152271801678135724146343942466206087625276334581382235630441340858778146900661265726789137459922666304823581414198289580544997239097593121874523187141155855646606016339490215892586493732903858328871576074229314183053671415355850904118413579206737080992020120891039848486131608707836048486246207717434956362467356396800643746277084699177678252080324580525329539032747902295492035090663503962336942441271008954887703504248193176678676153168896113810500174765374148575566804650341327393876720624711862583088887981730941616202750937604217218850783996368656421062213618129357174061896729732656737766104468288697303468789198425746369081687487907137586088835024562912922355749222802791544254100812590640651808901908929544384375285567760220634090859731996769260349112279485724415054968228053197671636203109786652294905983548683440336731011684238033057153149203257716176695042151796932850719333888424528167402065475934887435756736149486096911566019171102434854399946702001163885740844816784498740162740189095778110479395394627484834722365352385502261114454989775986799950888750244034964825367032239140163865380102854935441676052351926083755950113712088785520759893554664956505279416384759998205278763933798697807705175311453572282663937004864806184375915501888232879583193101210319365473019004708265858419719070114987092455885316386431776558347313184768901805106871999943875378982341875487392549088671746072526347828841266593285247676735817962011947910013525997029728865652820201820196096171786287503902435280126382974789402575837284893151509587174032481490578050369192441317174239065780457268216186515865572941446697902496969707121170822822946007103274603548119443945230382482033684908120165055722857839782778234680740188546997807186870613808136994465763667731450269757545151547008630260117258470009829378210671402570629536060486418252112601146538343020261617385523712096168586497954790967140837708041437833947546186671080601264684929341983142093637446946329093440611549062447350298730604476737849062946663159135661872682581719574765216380140534968600601371131178910480946249736490603089163483263485407265524154273743075872839086725377966800068326955948672131951842326637087356965399788867359004343025655336689403178734539778759743099281202196319325101091289903910731254797526935242833380167871975244223720595086038665772841847055796264359322059231801295797981334369907242725585129778411417750560322691628686987115089627361440828465775047882523422582347249151053980218883700759392160303486863787636921593184649574353319292040767012395062434118839790001204920841485174034310922203750189714227676492299794384890211241849975071647424516063076188858405743904940210735996383919923096966291913292932907752463434457734050791678154423625908282223249012830150949476610524990086736059052817317885743446745619419019609979165444358377768339648357235940976000015211054639938375066877981253931538032236974131312360062138061264407653537097858483454326666571442082144063852034898817548483483385912777425941362121379514233743035503831141108169197155873413741380475213014188938294664578571295255821027308606967985725268353796327194372372714099736294781265447140248666978490496036245626095421529594631989740066865127419639840045203118206518454271535755858737306486259717286648668474988866052723110686458703126097327973164717978085647709130257226570767227504446371008660649553137651252936020583756053077097830427256637875004567860785129560049587568394878806706961740501731468199448421105766551865136776531430590804081685736784941910648831140342543443836735366605906181354886644224660859588267249552772309122434466995663299163086502189047653768129096278205289121648055525945008753760361361013272462266465214013165800851465599986855736787532907133990081793969594379688019232547046380761369279055059391435857926394755397601897609721126627817883923261847647646071811423523898775911001923628010378534780068270695579975578068055927581463071962266314766647961909886315662535342413318196567427288462306613896901092897529978693962602896824184455242748960120466881709601751185539854315527214603414995782428007620120509111072806355106812543391421656704325803621208704343165387656932277711571999135267841049787124417715644231480772973780044660447989784296522513390900462482996587793713129214474512508973806547444492738259246716622833769898585988050642484083430788399152521066865233754220476190702203373958234520865650214706750381618327759350402764112388244287980435821559362611687575052114836624393655120084153073439219525791247825079651963079462829900830237098756420781722689727059132899541090089162587293276612168573772832140870895756963175476615415227512119930986324965064614337858846111089127899108482861773714854654154153374381410134304569275409457855766690099809907891818009296411906483735798752955506650564048977729944358239468456437099462675428725183174643416613305316042621470116250555292192907995936893657449037951666232704984676472550829909544444816628366914713547411249488404933500518714541097452167883737535609983992077317934159428443087342771067009987569404534687637474323941699797950955800764276563931162748673064114157952428764946121751925407117242771151315990683721227360834639950494241000753394351902479729781250776042100193260717243874122693773750147566358753321931717711285480736628897026229151387268453191698956691518385719648394626769108452824995138998638616192191819691338246630053206864737013656334094313506109090625901981308734926275959888302549180220413918957961845514888360904582523549111710343077197429362988267189263664935661379535830202622777934455073953605956565431140534656314409828844083754398430450701833372901490425144872151692657016746953433351072689615735668251178410716869758782636073053346081316640858648136002827787286632555385949920620148880681758829646109741609346463789245768844728285461100862720072453649750062475565400094700723072761515646951782598912507941037440008639835556524376874690640264233474647354308071498477769322132414133252445402835496651053300784505543847866317275413132343576549340548693393887978645654293424102058502118500280788508724177361755839816438686221037356220243795679823158811227528358971167284783865920042354129955162736218459036614171432552371028468026919593237247961737073478284710700182983313044086273260205223077994764469032220740505612455218826160562313584018113236750768584929624241118245587606258103872073431227140179591277086973848774311500182623934734545475865416997508520464841866177109487344779559346223842230841573415192921250749372232661167704782445698247117064337100375000077369202286946080255324199931063561793888533828050022815800352035155418202089021922656857996505236037721742616254106493486458430331560959594080457936624245556336616605478261158954948011244048853838989178013502603639263664091590857207170604774350789312730520765282068718084759573647523952659196343815347961577474266795479188651921444206111653949129687463479905094318806449117413989303199931262482129056817312522588221898138421231364031035491196386256010429801941389644854248043764928451465946194917396598810115330040535375635701634317236697331514223639421697086314943247527239848137140021219819485694051664256767184360727354408548267033914074070420373383612658544273315797605552248425274674840607173058173979026410345046301706913147362011125751165897617808189714225137524584780883184844233992936393967203041120351382412463196517872133902072647616505476218007426125512577280893726630124675715826457968928793755143838852861556909700936022462142255551770204929503037327903713240959756629255003204502635594844911905373852900489291088415614935227559689944399126699394970515963498820212981021515051619249952598030899403537519785575639396552853378767214185733583909357997310776381063622982899854285748844889993748845308854226779408025327974088029383862683720423377327746239728552883876648836372799303364950302069835143299292703147648329529791105475203485500215417686833680824170366016337048618761219328230050742922908295610813101943669915090045101655055237610872894607347167349111265282178938886121059858714528363967092829796695032858909321184453803363847167286462136780360190132151067037492487887418769120419151275599500308155217937195323163560482614327686283034401971418145433173122011369695846813369334541030439486938994336712030638673321646455566701176237366330136545551467212144291866787867086801274283515985687464526373116965410627699114747899453117893720298852516135979592518587444602053373360310846847881192007972627546845945396635956817834432226625742956922682199258581830953750342249460419691555317820533840139175768796894373443049718659992690419521838951422835512589107113183356404802182910460735486708330006167729486667348720225202288519212216686241455980732895168417845034136035526645724739632041610529953783394980935425148932065877124030639493344581638697485903599814253199887535564217288348042095472890992892905584475677442565074481460796402109982768721997700071042921002451448275485892161216631603307717034188494673013434958408828325321680349546421671961244140494848806753061518192003949269007086983104630841895393908059332950038336222838015448183170398329870999076151390734770936084132393591175540448859084001843985062135548196067299311886072275671350358294777946174495419195810415643247166026837192550650895515858571128603238993853966380810810020892230077732122293275475237159317541039990760871652527484778127695940012589259178191113883882398491228924654054255401134521192102808053114513937885849878889361910513839663826926385862432165809666765927757900182314154744031886051140007538616668934384563103141919709979192895044282503505853615671507550643679600966464981321493177491189906193161581024661291550395966919048088594936708550074585087204943613015493700401144712593446102239450642858907386344982047603940194067647974548333524133565019344180526567855399159563838515474412037487689803740655415598953465339777014650262488297937709512711068817089611750703439581150017159195516536091972443129795163169482259486327045475221100048698995650602790235813793458014626296068293374238331232708288882325149511995393063998484225837837871457818984848659698022846588049144238324315868980453584162764027387200295798735465023672996717139699501506884461801987042825885367664178653736361295105248169512867757188515820581022783052601199074110667340253071360245127025036876232480418640941138104330363814638511840195017540118888568471210271190050444149030398137825215521835627777179807570437924761912578299032500439943558242648008123829333084687736255294968889065660286520282127179467035770929121425976362406409541997171263818555525211632617000734364825358333731462778858323771418261773829925078382088729000491115215256511332468402978079918548660944347470087570952165815245766190749154031847521324303775518406986157418564429645469768211160102909820959316261824374243827598500303052843821266407911588164850142295553157855884475961028269425797661149339723354911689957853620267382915474699244389160542325048062174405985204485506201636263787333403139329451513966914777405270336698109789001966068892153177188722047610843542840447600589615590905979572282397120752694934141161390446955417360393151241308482835121812275628464256608254159909954159513530481497434240935893567796546968971395859307372537683119599651924800286564338372856051654133207850476899963182832011984339143849030435679998974013034443759481159450945147811077724616936260676425807204261945698701905730561088077911759193452891540629887234744724219495959688809088394677553020464916925586245674208286388797026321896277975067744053173359937449104515172492011115776593366685811540815482604982318998407790885395210963392354696671025725082991211870580878043884367572087734312366192866363116101518728597799917797941420933213690527781203675461268831943037327193220698162964037465314568889652010191425239415218128752413318744464316437313832616200018586619737592878755848654269492622565599007397967201998012874081145281212650935842743246881292024747222257477716572551514903159279905911810689265025574037071074921951828218900425475427462174162310261902289406904217187758305545427263883067288787031074291209441700212973975429742496484796194679961262644467647899928726954758741110933324427975701216260540523342927323874004988536014685798718212565169018824296242881839323830585944750675452646533547659474272838370395787388169224173887379205355330441985640241093303526234207696770439214991447832512802024705587297920564300919017630288696346264646949430493835367435316811683435822928914447447769936952549459744822534786599859623657981198463386996371718988908352209692023610416760447854111445133024172451457298908199232406694080900245300080665962841371432824521050964570813731817639101737627674971545424842756456068952913943704812124355021873524445728728781386728593030044974582991743034317391275460539795320185640833459268733446180436915702242393131675262485381546256689846214828760281599339621279676612216216185071713881979955795134402448275688310528118938200731715672020881439247938208149135759304790915367886611885137211505014195054276132928563100297584692762745465792673558518073440582199243341570454638743262716301489673392174112947686330698646669439035902210970633909985725025484531012732805480907019523433219354922098435872861523236982065426588281067636152516441858191513295993795258792866916247362063995234613889416352209316429436335055215852814163604444148231325323911099457790266880553485771059565492034583300344907926725662596123271743559937606724313727946636830342634153446160043125277459601559742389481797658793310055211341551500376002112163378480918642936717834462696114174695125061664612195374040604033997028329536715275402853655113326012205575396611429215861392061239653763105888396102887984421259478097142807080886680844461199795181117356188326387617325358172099412213240265230624478990786879376086708936367483359019437689073275508271086932157369742766375111965798273063938305857087503515765826132801770594309108898584031039297282775631718659948229970979900127478415217300816111908958117782028383126536004702901496628163954693628471966655803079158481280780625010023845277773482133859577101366845790932865327363522696725666973155129066228653398765524907965074143487604402150066975977114389075427796693626916195363749628226049483670468313104791407517350374613241568387355019821556190731760349995770821641659994704101126518988402798153541583614182675246959263879273243955588199771790743555894945193908801725406186982209911034477868005703526886963663025376240426016301329734994079312090656632478443722234564259123395563730510865038591653706040553618960541708250896162559642994659121281788604314954178445370486707443148394488010368381718904168772838114888535952244847476783135989927029661101753028153368262312265048087937143720339682030053959681362005491083776512411724644693003161579149827544871054746163998019745779399922531118835652353489799116452597210243207371434390544538983852084734420699606350225077186081004363949186723784207020213513139992987937404715546994625217216387606450011921079070683588077404337160483073274130187311855092871984016439566034342188602284092611068466667073507181792461508484589898677086128166540418571098088093996066362755861296816927477952753196249022408886449562043090157431232541817907881707289982345826723799001760052417973449236193559933344728932838909623791601154054287986752474092589136818987395890593387431947683855417875654325460778192876994036604854112865900584348675022590276446945344891266014426401727265847278860823884624704484825055884577892430444027950358767675448609010083505502456471848103104456119552779945151710018127449925070757665981667477012717305764767514201344860764618435245184830330263347319384608689077557787380551132539509181240051452704238888665545469561206505539537181329422191514336956398218101596262138206816231890546479896068232769868108153401533740468803389663030356168815937563674796537481392617333787791199202866822257533369838334736621876117292495776031166917890882434966342418810291723472055862092288667531919759077004462482064072027335257755249754019512872609458199220396907199182972171513347297794599321519208367509368801164224070803420657606698786780833093436908533013376760581810331552537617313787146139061981764040990939369509836550502644558304794748962183310279434649828427837618738843417354740034816180307308697850715357649827902896638968508513449038506519331078314737098974016285928225815350288791330000921535882510477839367250042000020391122489241512699985514921681822348887332823269786261497304615489156887266458678858857889542245384803784907825238557028809267288863721803534534839606154852013263555272596385298763515538632105729069304459877744143798372872371182784536364299204221474023639426197549568222913724234339004719347823158472545572415719893265117632264646177365628225124314889065107790317014513277703230387551969769806702360543336898965450935177733742243654014577340257555632523559295219439827719605528758071026060832532541519750925044818583910870678439144340541522160738790407591114777849431735827786413675978112797569083867766082530571911624965210627210758468949515331200975998865726702458790485548261805744390952325746847702116458743779091403732568367422814135267492481166981581695831946987387992549055555976719785159114608171342542351592635087405048518301268841048419448358623410568419244880883642765273102179094418907115718226832546686389578714752404328012670987516221951289970070331285718191222044379736709970376537723712781533404204007621461185928872516506142364985278707857875836216661523899051414523266358307750688451516125575484358198415348273682176173731011062347543635469501087768063258960405474058983686842080060119032095529161993670109596051793494185031922798140825708133539532828194776571055264166637621951048669943953669858091607240742134149096266950520411486599389048290701588524767738933696626676941078687796218617213473838584270695206275216520588871670479814596298738874906911051950196916801759599734994986713143906226965071522072148629477096110854930139919170110340543042546193192558198596471547159232354600711476271370406811028258417898950313438264878178389297433600913893267388233620173921039934578691743868322928703518574841857703043828093735918180594404910645804666099358127990458244460744797743390594528143654913461887901165237205518714466565338753260112175580449822944028056046491561454511160913618409576892876450569030683626015359102072707947011419181889149031963732362039985514997468580554648811135128701943104224728522559248636733422744422522128079418140428208390596797000415497090294367973628843024271917067995656521525252273328657568175731475536187934447600347919463809388737923324758270368446185827068524214596988673846248786049369632237599738011643490152223181710564741460239714122471044393538242589970768107672455556790778216431003550798551080213532265830790665455601369593131190313660661492413256573554682739299621614755172341362868285607905400745408179853875496265000503507084403707590234122904399342999245686015434094415954880508175462739099175959090996385551438648974935759130066021377502028495466280066124036322754443088724853367340223531118178097925864817752089162447934467684561047001455388504784103861935509967665278638005067022210397487323284150579324185854732463545048794445597109197255155667720347096169793283673351162302469189146083531415475599689883696964883901642935789263105410564258514254937724312401736422877951811134092714627232646943395394893824152777791311054040022639939862726296721768639195113787509735711176549058165004825331978438877141197629144960515039427166870423123508165699610980440672049797782679833933533425263415098502698693763176698067893965153657395642393374231044532507011188775768971579794832744995454222246157960159876838182875951170825005726866960461948685309074290095191936450643400825419007369241482244550680571016589718825097318984726545406470057788575075181181246716019205964839956545446357742460438834538355601117549363525054707203015950068133262840266429882106704506787750252190640126735952000098816723663272848560424428958652790570314192553698702652196130335390843775354687790095728499259758702198121655126487567211901600951783011970068665482234183986714284033186511533231608594429665723681994116499036930370083820922218600214890324040564971065789170229626691503985361942115921665551791720719697116789455593648045719519303348529843071522417449977381534496758237601780259509083403247546190377910943646583238734887825563381518291421444286716024199014476076301748957784591464556538752091866288274028077523779719397590092438000267301642105912812755724465344870246699027509253601142881400757839816624727957163582352562970414625316807146755083464952795713493633831231390378936121105392299701012846057593504471070267682222615265311020234796874382406122125647529807049428886671705472645215862025448438743940665338732185164355557352516610860992061080345710088224702990026038089128620661464502656162887831672083258324100729468265623752622734379536669705539940664539988201137267462405921460694648695417683980507438095364169709471130612619785990580925914201796912383029281506021284191218762342202926561655914312783569795430223663408839641255987528872878258075784069716555475155171867722403767571107812936140752439030640296865557775154534311756214128270342491454371469145537986733824784553405999290474332716787289056830319576156818480717077628546614557244266695919509486793783595338735833745349809975514324128832311943326984266300493505486327356117780413729075916297467991946751642371613374093330817275422652079433547983880743803983858233480027794507194183013870981961827899444352770668261376869709799496331393893353913948751394310055103785751628628999888973564646549690483351525162751155012816866350530677131781744646758014119100799296838541585357078442539793676528329039579817694623841322231758616276813930202068297812112126966385587833946605092483775570488575875374669786769192163592748367355744642149805116676410379984179343234617924851208212317723396726510619950196983303685625878221212283741838042874138445448724045671893056573608886080668668921586113768041054946830010865919513409357041158258942581703336042341535962289352353051679981786337340159633265994819310889918634187067271291312666479312998324220214061209372492702767673344911235305379437151835972704232188138144724052737367444945250823460387175274306078117696023563843568112565769830448954392571896443883640742872405765573321013981356635510916099171500836029225050084389912350564001177114222052332564174837674237252503618277943722325281245630384411469756870094173691742231607301473658322348071718485986472450042106561959359039959760897045286433981935167036381422509543368180880383987830937987926074245388042508442261314280097495244003473542579457549762047621385368020221527582964882851523080783446943638835200755818086438051430456633861090599762935078973173700853581451902509933908941426502755521756911643468529605168455396445256746659865210614135610888382266469310495343152222948659045371456976589513398593401907948835846158920942603536866782753544082867509171854896734567571272465326402097402746787674826919094282244477220528713911699530760367586247899536102588356784148870447887917431655158235430236195870295327986753066564331779884766595701019851797918585544968479265362071934189682042986687948760348375431552710251566485385833786422974533613486390376371661381456613010590525450399909065568413077632764619449892128006273559818798295969566607058183518333475024973420098329071072212214676806434205393719233781400642468503138262757005593918738593387306325927157169077152966055364025814675882091685121679867912335752024934276048352372835436685855542400123833687891016488661188099897826779217045521033881494013552796226269254642082406189952169534257381664289622692723640474745928506554373270087247796062232447088762207045655255059177285286377139888875532555283170434517169960107965482532254084034874793385533766789216149521754881959154514019892230031818415797866189039018156268271300252033110266475760946263079251518288931059056358969079126026845129149973976259373956298755405043984478027921965190478393886785663668125278941090756980615472445900748946714026771199512745775725367729115511789329265087360617926959234417715076055131518934468048175172074335677898006201543196010818153047724740970677553585378913394062853426078934322957241517243489798376822127570646255137323032898510736327518067113965645736694875193942197885641745334417429126389163537024918476348817227868151759265931114046661591663794605183082192593359550921842949703319571915243206194440897332841138455918196254716725094315199029678419979072776213638185167944577622900546132666073422869330224526988137439269013032708605337867043228448891889234182314879432418278840169565845199776482721768578592733315291418481725158500233085690631580356274478722808960376118657161503002163501267293346308198244961643493378541829901214209129246367740549914065479443335437114914436072216430227277624895800605706121518309425315813307079299381214225903032636180275170406460076022810863962544762159570422354021102403557000571593839803384070310620126567760237977001753601298888352878726857292307097171141322835587099282312582261678568867338685470655434577443673646651875669009186936732043070184895120480433376035331364027879294523903711129174471044584509571248932566898943034669119265839460715937408615106412723187749080483080272455437140532134626692910083435687004459935695630425031801207852584875090368792973378371975915731609451156423697081276941089872019052928155635587634153683990744033564878064021793222931578580505478647619589378164008875425831820849685189877135033553159651128640140016342233018280879035911036134091087394228871795096523611671526073069862213507212250546186662132373963604105491122357860454496191615880145039788328971072341621335679312297717658389662774347014401639562398457587023657368815914170279729982186440218686968960633353018387051070518121829142089762622456344370180509633595473377306139905138072905229796873629216897204263811567965132257283999114501932768520979508771558486831302705691295442564517027162628043796257969426819042552940527268147789332233331609745835339152910883737804393393373633969375114188764182269207239789155434856596630248882794105432612458734734918664929504499679538938741004513514366411586544888940687387006914113649251254104079320320857160423145687712930722284311647171488499942439790888285788694922442649413659665746550301347430446321406427264056573429689549796902144607397235206956488993198818623370471042354925797873765178769004732251907369209963756333601460835050709421776524753971362987858657705668717351180251268676625330198289057505950976686138827113241505259280738582291297507441270774152592595173641430519004734210573264281392038317010962295790568587589508418745441590177945883258027553318795787610824498708473918018177561019765440755791481636134184034675221422397732907939308030487114762829943734232613737043637411801731499179167133236892129463237634288031838167852954162706433842091155778253224707207391971493257293204751768007932257756930933209163269892502730363457707813303459002064386155745129261819611969567735026167380988259737050503087028698712627276933320803668900501666068738042369556260291942025228130875859864485245921040488019491190133217154548375118756197058577154839307655985286919273079529116786995798064391874248582811479532895611129935646022775719705047528646742842715557951265532321319951794818551432040466728599109826295547406069708786563961522699111313021587019338255381758404239044544582096370607682713373667684465982328714044743458548804688260091440777864420939162083646504407755452566686677618178960769242402217215493599050848731827400626179771798618307493336630715509523207695581886326063027068655427304967322212120720273321062226089496384671423583395032219861393862492559417478080034895937853695026288595990098233706486394116263169041152435470473048596583771649069741890152539445005202702041097314028370145250545094255041008027678750505681628756635932580242754440799447091330797956266295635685636888081943449424617964270224241613630124424790801877767290198816782893967985731100184086878294172367024053593974077787845361415655452881877813976250562184212529306622743236196376099437438935508949150630976521786990769386494288558719010088377966364164174158725786930362815082460767623168038638652782689356466943282803510066183280659288149143773836936030948721146848662319892772060014140439553955965193897062783734299368830413087995485404692937232023524105942546964069562827639749638996908150258101471212567890536954539784034422164953581402389369393510411288657463578506443393156351520656445727831435937041244664635798538203124421026086581856720411664898100708231972668794441326347403797338793220061699858190958607092895126915403914222687419067171623263760642270085406302988798213803660759040419291211431218073270654975781439053174423694278986117983421227625921444561050612459839354614033717481443638989472040863140146702393455469812532147462863407847357700568954235866465016561681651085791356023339559390797189658686557234457758069212755575405139070418496563302624003057927874424329685084580727026237694527799873419686577060051544790096346339787325868775888253529531080040778747395392395348991836360160335075368555885597178630653483468893149832176461750515642236065127113079116923891567320336366741723626643194641973568727346025280771126758551696953465825371124276660564769555437534627257126146381391668834788104397037960212942738449936104723646443957615007985875490711294060510628971018822222401738864675599953026342833776999292602745597221971213346518705734106499247502958755386173282633712099680140065900969240919827687411215887061563848730231647359815275561265655948129178619025925162618716544035993563717239503284160983808637405514011349844398754817506464087342995172057771496548530995848358035378436136927243984339124379121971328815847211112699284814589900732757798308188496589719151052494567305740382826997185602205970711652860548295726352472179093481936412721613049617843475217447450170098251835370495659108823599664731576950332930920074687053254770098010162243668843551761873053987398696862362641957749225041979025390401941087518745288450660532609805453135049683217581486968455983345936055852696940551027555668311038820210884310778561080438876461051848405534069533595010189433866258519115771379424739564112512679192848920067404870877200900779700322141230481605485233356134463215250847982056634992473092719662192823769824971656541044776877329555246491579267152129167229827115012953784828207118663065123615945305167898716776787479200354950576320608145320033097214651703320381239280606548716500088497105614561369975294331865166726695778278092498801514490840147050139198613076028010318534016092560318958299970494779979846835166229147672709169725714477435302733056019494513527801120135583104679207945749388366142523359444297368681082356379196415479021826560105089036711170633304958981530519253454945481911023847219785661261018774905727940107683686195998917911389474870347593226229752569058291141276505194224705347143845969882592978684600581040365957620759080587277881528514357250639892588197869756412474099953065142253766371860546870234880925657156797759593696871026461188765432366326348457215564818814690911371227564342580705144360862663574969097667826744306553672951299436517584895721933004103999662640089383885965023630584299087040784433180721360709653024973631642210831928398509856550881517500797228604736827066731614172940225578002294752255941312544549469738332458580263111339128698173388867186480331526578649858043478872593591532297114871262077528427760260360447708408185617574025230988478980866399637105818524762329863662626713436279372931698466060277218103553258865893802122570097908110480035242451410510131530913715872285540268851472074021028810968427063463294020767508626656032146593995222694295041302289104965470905923323257063380309564303332221707975766146501145140650074027905176342905890303625025483382928630522183000983831825593030795903725888322346092482825413521512777844025853477253062813217259177512510041498058698707279446071857635307242620084469835837254361451676783998487595511679548479979199400905781312677468926147542013174284229251632154448703630405692843083586169288893784562496186251156709056589436845187151131516093530333151374140605426799783223482403254256440810570810089715176114149646837219352865658663613982769316298349959387280828763109787638462321509567576069914683728248461254895077448883415768934486221922263986862157465774797460098020484041776912722622465256823039077057164643211203873452206979605882267562122554324688245657416885800347319696152707862204500072967937557128782451777882516892454808298240100265602144752925801291669079489525304527826013595116201671464628785184487522942485242680637805326676572303105495812848645576712647911945937806184958208430505644319245103371030833892802539418052383769309369857763861063274723196219995848874857468866114626811986869621930624069260853719620902470543934435812416060783687168768406434368918942808586345989081421792552503234437088912525740631428484218722045967963484007212980418774413905899875455242332845230101621666599435576162674082193469264804438382705971260286836290658892353916478616864512398261247282375700440414463595280595316144037836306416646218667635215531148000005352988171121855402270436434261182326423502978249066126279469043116475417652343025547513740028590250422055822900182565981053663167949868052637292936440302436495844418120217702095475434645884320845168610769665381828648565746803733849975314188615678585443169115040138009079149510685266047993914463439492227703589749918147436018459113654827096723961835469095989691242799855372105073462232285325522079548189565656675832737659177659265150306073977532321143809405014619921502030991117375536978174358006047858078009225093938415283840392854222261597200766119733059664110373343087893011099330212349364091583484772084945424004721853510150427173124563682487692282524460103554514969478057437505803051544639019277366455657258927550362485087851461262705198067793807529062493818007580733110249969894572218148353145818255588046501198661876382109905248517713386282443744085165596925918019884167650640866833975936852701256986430014262822830271222507880936863179497159356209599020522189696596583246895318985089043534029429186440351934838421124677160747519942647583498274115544019650702795492680655633542677893563504039261241548081744205711466051389378905297410764051173639455637004528620415137402857606246494465544479705936085812272223811505304683552665423839869580092072727876324125119388153720341984574590645701044320475223208418217107512254235449014850877213907324504116991592698845900433520347882707367674828151995185694272579524627908787603532603891243492770233282409756279388014937439479720046196312471661759834793529264961103379137554505330061615708674277832365050037428775510506626865571300385247506538915900979858569136176487961737065577683638109960666417775638589257666009741497344368096297689591355019808581756071017744435279328065084865152558499069006963841372094060464240575881294822465824865201626350470906047665637201348256024233142274259760611156321744702122289161091985796594917370168686094026751850867408701437543277770153579783771526432414580192300225967169280808946328425645476158464057092581087907041504854914557711508394322620277365761809899821923480139498926582386195134634270244219362436117439990141015868021230476520141548721354224317588343535226012898228048017492166845655051778707285811517572653193935935087720095674979130317931899249950255713876929837653917992531541399946159731987589847328425834155414443889489593255456727240727855283479055184397840948100211502421228709506360440116493987001036547311999084657427888392967491144437099223859789137205609734363023768220343770868662157426679062449035298497045985646244322813937348317536683081584570453807190670440559773517807887137406639289458039158355361813673469203335689790815696283849679578132804328196065673387997882842974227189090301243408327376323656756230211004644591906281864872019960621326975597887250811846765625116256137760477112696937955620923029028522764461907420023581436537863070560605077514495774421476356513072282001965327658126325894861462152086787956881420570405173271162518108728251499863231778186522739016969239216767860791469335312174175215932457147595651524052015074301519546475080605501031078221193561158412823988459463651026341861216670373818552641335424142531711228081884593868631400574778747143180514932403268711659500585344679135450370005597321656817297572750528508238502461939545369093838897177527336305601444269542579115025984070847803167199828934429844496315643820493767810299632634836539567978736408123566197623088366208327166279672923353798369511729165386392878257672713018670125576561002651885980795939568782883797299985802194305368793318232374392593053047149696891560619119601215914954652203404596431439257352618147241594496411915440635218182073279652157213724711559424958527270674589492882947462957625881612305306313196706030103230647513252406245297618260839629478878649496873928523824702922040049480743756409028462053131464917434570174716061638551336651411732768889045466985093555933057184278439700889532634067051549711861939783747023206329727878577435366750300563934169165073587735416163843537049423389088182114213632815037186034045181148840120041959818725486214390962453365932562820843675103144040897459289631814004353244745329126864748918057763328606603748099576595282616438646924188669996727376380410227345935944783435725638748977698796589311701771747825218782956475043527105826888917375576468408758394485296331213731201204347076777774676676321571653301925102233774482950976113570634198754461342901616027176540122695759112738153588109980292951549109076837605545500696678579535954819737586418080519224557825354505659164427736367617227213719135113651265590258330841724345536147799878151326465214781711076793754692435578380779616781320106572493747440690362295333944332728635305086374082228187360763952994920844607274643572055394053125579300538440697779257833532416653271171730757720364904565712837688748679032227068931817662336967862888298777366381856270642804930168558401155312148832033308554942634057111861402512665490090056529777966026407290244773243932492280565859260022664052486039590549446990615827114451659651549053813708002794804567483256944185872247629192988216957897729895525861446398929632556914773546348109292301345388834406880940513413619165095203153354092870215087092725951964364738554244674473823393605535174437471236530829749598048806839229776803539106432151242299252939174404609016470409934803584500333549275885567020681048967641864019570059624995103529092458769725043216595236648159846190744301766309062444106089726675563663002181661137869864384568164525961421352327186764556185904624526651369078553384062820564970101154888938218830123325177185427326865964208242685955081482146337193423707997565435619456056457060426665988600208707770057474656244762299693515398294740927632718311522892983139248926705312647464817395178851876235797524773541172066871433769727683912368287641309252155292267880771048397215527525798028322296353711070104908198415034585440046238911616845040986551438501281639177716958328635222945253031072041625763597061406977524039656306188322260255418715352405386456651125121270329088724474576424280162456602780435881189129611017207697627473796938802771508385589826578935232053176360300577954295359881720131418227235358171914307314854887711903981123290376222494504900698583613831267906635189014094323137389181905175737165478993035685805417941973651664865105203336761216432643477922108084707665899969839623482911207317916404013092069285628489378064666932035464727188379922160717187601812083018273991508796117707144221961718361153745998948555139680645800349169650407091332815257079954508103241997705774579972392123265806055692179649572517434780751745268754758075707566530995093197603033655995592269263969851500286551987794729736621087409800634508889583351792337788402422526701141095161770172390975098367108170083681532653198299942544509773441420104305528668076585576948521528127888990236818925948390991985085908217328220665999977802793538151278757282912568925632128170444725236488679324908749530707789815787275479039522500844622897828463368950577660005890075260538993296153111985104234046643829534867291992961953430081178490216513143010478541254527854815808991164786602684992104735448506474239912705843650711556216029396557744899684253729855270219672300496706809186283101366344967134616849314690618492347863888385615799974447092614259552969401025843783971646303412079336111551182100765725335477444611978028186159010396459848504320007014790411910755161338684634975660793459040531739855698707631786038628022733883755437770709001032716857944911065547884691958047479128429073747118700612210470364549416461679423808978693203272798310711594413386564517282565942896289548202295434138981855220250398513295187750163904374732602383520312574090191244041163113032272523771314369086548428991156562796811835176751338180491528545650864975803937030151868962585760109885506828268286015768367895457440981959990155217447010234336490384967500976367962262770299440616862942840912242813740474121594841920575531482022272084997105157211004985168765731254543869086468072909219651359959980551968304021527196802191747231487817593822678396625865515709146573740206036970513187316082419416857398666118522941584696154133014579689591392612150341016301118153629696797356327988383504038845007978120387952972164718364508331862853098237449174444606006066692150868247419408017376928106020944055304449204792132652872545082634519816692130673919333580675258351683993813665265782319927282797271096407629807155977672089272559011650017417258563275029542987177724441317906024194633983365644776683773697225570319172328085739901017279581911067699847922316560742830698280153416256162558235022588611662262248019408631137103630616724161375186561216165222107619236503612663958304860481337991953493459431281405229120029585426439649062673452606930120746881431142004113903975751855448658294477739072005911796540331622454120334579573347123268944594553177439084450897421356056760714868418464908552683234249258232592542280470876182314754311492049171025875667774632201144692028584740280543815528717094669710434599450674994000409707913046520586807812235262392037660015556748053113253984940800062021227217985845016943779688866410084935744180158582936677345031294109241014596254615030233274971960032311649641181401789088085403927803394718463304823380960066540356918654507108405528171578765115064733782892810071451480811143795902152924757248347093592384606007542871544837798639112324924847748462055741713047519646877619264128833584489543166669790809589499915261602940996371992407958342213810605733665388600850949286228953109393541678216929019837412908603374678311201304428496466673636383769236168528962709001519700313972858977994391884533533558853076226358481264453992189865601716207948996997202700661196702334301511970568866042780322550521323353247772097835477912322214441414880336832610971437747741388773755085070573105210461375016150930383653711850550674723158847195604549289752496087913238878824118611011801666348878453266937455919234854145825827474415102962776278515110875115160484885774187359540842223822921879373961337426358184248086097129251616293054349217727038687194034076254867799295613584157360206397464193828471955294097169232157975385359444429270973074837964913046412854557609331288818780990601090564117697791588484339648653316764801303653910527616914529121633046795778586669408337375407872521555267323272752224050249813352535394302485287008385426582938893974889181078903932693238398128607327580557683539900986378520491270677432840326427423341614604612119177018872764898426383351498882252255325169017783533673556491344781166099724530701261746260344234717913850042053636004231920673793097505418470122014430205288165737307256283025068706613765259285336423774516404269241796961363357403587301584568618659128679321296779750224521314427149716255188792532955721384864680566197348116502921352780197203462674475975882257575625570940353491653482930941412678442743096332460477761682498960190493257091170961839080899403246298902778435299255024802325609994269026956911446714353258866559219628035784001235228026810355905440532724987233326220958994515821343928650789100210959640864974493898551056532630090920720863374166476714313550470578103972029652021957856963075890700197305428701905657052500465902349241978023891494614109593634041899168869822509793735385277623921598102961006758375532534420616342098566805186028835748628742869213649993652096027623381133552453464022385139678549383810037534293101003762231190075974477553995005122273709823332508014675733204418287262499642356978327690594326541156581294951448732212502365859961181049767023370933072439509402814460810976409755452891160247593249548447882872654712605526010060742837729216708530982412510965296116841498852739820656275241456271606976782010401050239406599936049248014817614819599536251548416117478728146046234768341959179311506142424271904371243521854727917151285997315108285525477027947394077517144946005086699857373801034904256140894928548570963704592432025560246546881675206855309464233679207577441293231475266887725157953008957953170569814413444780098153828743001911169047795210737436644360458713110317410808791081434961800851889096927408674672923177912874894490938635358362033533099332448648059956996672986538845783106622681411001540631567730216924008007920862014494023644856116458014607547598692104278125616698179648707133032920433205911716904420754628506898667886823190445282575733186759376504714952188843291083705524643942452243587096911159782751573610384604192708529293845232522862961753644093938622445584665149089970658521652556645837484040432582675458810177241171414219591237376448661574466128668611741489891926654741410046531927475025542975422970523024825787809040788899029740634316524268416727316163353047929379488665740557535753408107559162103266499134826404339045357437301278438629177151662909434352114543830408453170724656115763265099689202741002656166561094560720612276197066330460241202045501011584061499236024785091478080865380320536651894645095812838721470985010062339438705219143758025033274049270781847705880979000372372318817062526980485039948605400360564769955061410162424343319286283095521065980590224353433962420977463566272444744032386572568796179416813025001712707776794840195633789222978401764308204950760825809318310460367260987936012690412162148383668787910565577320573295339669650526146914352341015371442143990926815415423855836987300521127489620338753327914506139308458156766847561236443886306057285859924000406771168464252547925259660993825460131338297655683196262279904015825597878644703678296136022366668989773292819749040809354818430066651467129441917767815423051269956171174544440820834494757868246783591917947880725106597214154681492319805292781232723856045493158509573140017728507428383421782740768079177509738885968330237065435366477264337954453319018656686225292984165628316552567265510340938954174131181298590425687817396524458539982331919683011873373906508022479568986103760811738611760638260779530932011638928983869154431002205670452138083673525197974411309279623183461677582954521490126590016314690211298021989587779616024444068397492052249772207256386990918260715650385599693932639094722588227816144939386745858801185271652417263909904170725140033391424235612090538624069535124871345198985780592181331708682484678976723148317992366038802214001922951096681594399922345381442479407223603321559624644823256058651040491978715675045389565488501398240851483592895580758350157252628844491057413450504534192932093637559813661240249580951344512856862314344674452731461068144862345589388688758537772290200570153170987362387035884743373872337492424320016975324770818884304496745475601361666375242985707056748351052071731533012413381877713332580289810117815141105798998111961157804939382284198126493427826021454796127121686670082462047164845222124277283961362323909300852228598055058621923186746981233703291340180583061562851739273285764354381083576153288704857933666314156761987211361205194985567862117733215268387626652057159186591072575974048581514384869255401628727814168633065014325719436140907887958453711061568258659032046795980999065054547166965081837977533118088759712800145145991831429862992722786112818872391155484257883614185016501221150223893389501032928288590823714630234042065394596974325635376607769861827353837224486441193653296770639510798506220252196446216217785412352808886456861019012536584678380941925471609821634498867282609970694012374708096748486181666779290391584427786255814521480984745505179244979177830004403346819136407365856674521629927860915868274655012655834026923930343422478196795440320957309839586790088694028421058964469078295375685219503907073805443773573424560243008391519675698156102589423606966356097992233821098805686406254053278022947244005084596608644881660587460944773923770053133456383526170382871084888920020042951126194634858352445170757497840732267701143643969109739600517141906611411518701077060751988517554203768484532778290423155219777870477505288709580092221325271903427229936695338077046433254393133509634147533189234729926643132195234455968564691589285233349698923180891647247552722003444790855626758121521637366802965449705703440129423286045732871285138405059994304948359426162658977850790813955780131003564522853162295985004678440916708065002656450171209492506324272562841105690064014458332204066807204555085983088349811347281528165477709032505685846317879575692056189908570742454524470165833845502700375953858135370979223281638298919702162522433511240569977362514048615144238362144326226770825176894625170180332468972443914649766879910182859613590253376847459383433908060478848222013638061479690459262120797795405942575888282806629156567567290228186780585253603708608764914043512438883547724683725275872320633671799156967378275544062046415392540993228449168420265558680378853318814289388239594109745175702673561781694744290345510397464706567147395546624323570291532050747156796597009712969831877277908965539063028353544620055918267922053459942074392893766154291267051244252746368788018787378176082279523268015189631616747646890657993365738100117629509311902416593075168604194593633718250294071732138105596702579442939320608059694084019275211047286590419265426501514088673325966463461530050940793698764420304802585509613612023517018334652905040669517876289099758205936646401049114104514151065693326840868197129814941638996896812343956711527495893106842810925328695853174322303457453673393446606406735958115242874177140452599642903114947984297858342700646883515589091309906063114222587210012152723379824714346988791705704887897560820104979440105547175780078665661184696798810501408629882741170887618527056102111873155604803827223368032406161957763169545988398905410748898321591993446928505396924522727592284490402238016813149395259705164799555794685244231627143461046158878267500822415087021822641120012622621732422614590779392035548586781748362242451901934691558262567467245590354462025890048004212208953339400818323668267115548147548626207298679718042400872503681354126422893496638752652187066196664688439954064543935555012661075519872476939056065953331915466970265115376556200314984856917098506614782165223984726064116391978650953677352632551377800342040140509740506700513629786608376119502943350640521620952550606310624872392340145829288275605752089766453634169472966538466643141300229199176985858375315796332383319913966514962121926797278333026063378537705624750900331629276823048250164771732779292451374090833791087202077113917005352803783943937130733745912474721154605739544369890695904334973705705224588707831927435856810699021028386502219107030056619518646145919030752004593856787034355297033596592016097679930836116627939893854294573544314869403333962678833081042811337916163170349542783759995091245108911866330355452169430382231967984145719371813582659057370162160171238465189241181540148018504366705538334140157382526726671416919938482423268512523572178982401668700501566906929907712554465191998204806631949591327346428671356297232380217054510288678514105052379815253430963886278260862200296471740848445300028434977380374205390142784587616945997704768619048872781453070608060095849983221863002252979724787207028070588937731788311859426362219076685424871984608018416818564778893808393339918253419852635219769216714524514555612891957533829864176181319241125962967215991548487379966359160616415235287381128644373287797511847045010471757242542386233646423834096666533319878291115886091800604421885876007526139556757925311415821291929044481017984457205695476663587788655766303552492042445595809247119320464069334948531161400234617865034679044133503184426420800466658447666208644504113013883839587187538529683289419755012940804659348619576597748862951085371281647449009314493206346630974034546883985929414225707124074767120120474579163581627786509105769213602717629337917865691150347989781428918656062108944968415859294917717996583983771083770227313998133952234655855280392437012676667231539876410608337587406714876704359030743246428430539180911509502125787221163482548863749105934418387914142141489835800939289834478775368857637892097375332522964875933703369465439896030031908212055383701851913409402633243677290089662767913289994999575526679682614939532124782092232357089710458748535003581075231896677917018608339577466620876277638566547498556535292032751354892344347413402153980956124176186893758637246207614502500342354029575839968382931243610711425978049568738001814708178150727437570940969677773672442607419600912920979580276338164637651148879621202894753010996874138777658176776802313169927766024111047338769154328019991033631000625818293305421907361809017560760009919592409128153494440929790640886353578071104502890554473326976474139907243807841879080035308579936800801950015656556274731684951638840355475650882768731465746647364792800844247168948483980919023364719458912355451251196527392986179871330125441190062317817811629966757077470512534201698462322448721857842317860778472503470363269623738802083685635018750817186477953253000209163058029616355805493124881158812681038940518528898253685224412986800393708105502325824583449003939205334979025612596975381809251272271922720882717613470938712932829668452282200250273419159905888402753068957524343588374007346376056542260256349493339014157928985496099254648020032783280035327539130383244044981571094318429989246383308721186560100762665198169419180781004691874150455311429795219973135576854744968672102637287108194049526668885061715433212455817563866375546019095001795283217574775842977540839008180949699701896042701688952022886146807544510398051502728807688585113408583739868310337353046613974242144895557868481558076238848131064787867703427535094910045967125582024817048197753165331797307875472765703776709661893570491277010063153777830879190722596567428482334945610477814972751551584782963101286745939618740944364895665804446124826214810563778515715556762968824893343312185403874901727193322668271617362112333406791924094027812635355034233399396978709614849669951333585586568717100288165329732160560938056896366641836045732383609797047046891670826156721542995828950916779079936590097317876818654420888894059732753080105641543667227278101409085093248385378136827144798201756576967744135699709363016379442209202979977800339791367464832253811353524314015711769678801319076765786796558734861215131560936721033960837353637959763452611229944159647999918806466453540727670082029696936012752449806124838947243169952690451470283456189673500044237736165018098553600505173964189588786317099064578581022142253556526871440747962460225725922711190074620467751182806472401664082405271696198385099262947544445346818645661404107472633733402651115385503226259353096312624434465959159830750910701882713708848370785164856603053282635120162188592580702576389256820527806152712266825903814311076608205715489573080295892921850596804806971495500443007100187075610880029712724044361036925815054007564277453573579682852401621265445996821491699591641613894800799300657957190758583618584990622706099039083103357336411140189049547445967180869845714069393234208094253656630403430108158736253995328249896218711667941111966918511787240092097308289908164277049499588947340292289622418486250023996464169436690287775675671358193929451350570465224551083271035349278837486935139022217665465151716968019294255496952557663275311172082352188250795776061502572923099372609389539446952803362692981740123786138623945369607380357982693892023115046539498699618948827906352440720906045914494828565964102306297716588963196656969114597672384093614279316426307117299852902906575536110880926056080456132928201659077742599147495705343481594019219236961865759911782257966902132360179382514311366181838120504156849249585016348183071931588075882309298221479035960069472871161532622870511539964373904034919054536460885479043585531462898767082540287581303980309202598233360279298973067077834233621787941730611758349863259837421117706925319451158519008527387834345349395095241021003768967012995005065865688454329591284345551191806687770281536720154697910217533425233267204035082220926107491505348319450418311424288309091341034110531838928827090117723188742796336356084154341325253995032709424630534689801525350581251456887515476224008596994798044167170669451632102509916063327556320870336033462993732956834404275294246799369046564099182921105887490053336867011877850924384948946706898414317947513813468956009988765217677297972306807865821109836085802762794618052466169075578533754927075422358345335521241596095151536259956751794631248614973883588744733200076208474224656472002659449028811997955041590394098007448645648622115946391458079902075241573669241318762793364292404489476499508343092320486504658687755238689092262257278147175287737020752893838232643398818166834023069700595275919347745335747074241144503394715733065294173301516254699292214737969492878376524939306807132869483350818290012140682811241717077355232794017210372427447118304173642516713201148864437655571821232085815513988111688298876050932815885393184886776688133807398261752849249696241661720342564755250216466303474404358245586942326291655584837696507204344347597649272719817032348667163170007935678405871667412452654312996241252561974109923801827861312676047143866601054619544938634477061774905838581191311789880946129916273043643968251246318811124017928598769718121559650667041078746817756552879992502301677649819097200422462989138069808727985420702578181262424287383032903838282448477854956179502781479229014265224428184281521120626857329670290538040029879547707341241072261776814713285152551877974734926330919511649020526556892364919527749488175436315870079906669394630437884602555778755856071921338707703940414298832289034190937605176766713851927182636582302680114913051913102909608719900092325400335366224330511154335003794324244344896074321052124551600970634530607852229572914610473010794984786637084718163249662991136806892615300474952484880659227465045638611758408355129630565048172592688935661712876536359708997640540690107606833255767356358256280079438855502762200869794316767156079741553540202791960110596253955227961352625061651366104864733262121819135580781912200447963662626543362841056237931113050725256351733901772347067850250324208182949013436215865488428072536325672320153861706540157126850300498613895573006476196853626586591364810880583757076203133365303691102520357773687025955728993433196551390156944408382079972831573067998256819369395775017028718201876117622474091944584407299448308369822789816579769120668707632491004428333199971314429578521808995890315311575576052504840754628533385214867285745943182322714872542884029635211991378375644909153573585879245098103842241118185141717216679093563028977500922848564618551224813556373871359338707064024780000457606867412436038376816257933900996444460615859460057466393096424695066385752963811989661082340792745247532045014944355708265532498873400443515559605598058402130429561203732355006606070625419380934390663671387968407367714114110259859590314252500154079594098057215293404747957769924117830565528757434447604830640388063396260199379846028757376266289492742956931391216109310258667874305428510559515937956097503581272743822702718222878295625170519548040703462911762534626376883735103025143118448176302332252254462316218859977500142022925900677258272263967969270246085552268714220442156641392063796662295820747812659962395223257309843700778028645753028946618716102371132300134000308896067789509123782376749198698189768380857087267475007538825152814711375427367772008381090184655176438470872347808962553573184389594927832701353792115696475032930170119526005607891930917346706713813624390480655436494904268213738302367111942879882434613660851394399746318559366341295417909420651965727444149147961022399139583465353853043987702960112848090021312114521721528621965279831610016863746052911693995505731639475822775690226041872770926676629353008887266692377555580957184013252778962918802730107214792347485334449584188721837986442677611494275804570752108901359625502671284712259474055126931110774869864616038341388401244888516291211561045252433098084451371748740117395207900617850735582632823800646031278369548583126304642517876115529694467969310378423410744725972503329639425374364350076761539347740349372401056094724775595359943391092521984929207650332844680193131242083751812324205995354341769261678846892419147212215378684014310069454070886870567610235645525249640818685176868892034293496246131141711039615099924683791157501551933929751259839924519445553428611011641427663912538601860629793392845489092804819927197444786608893010472739693659509214992975056768856980613509552274458950177066414815029404138070809166710251393553479453632763855203817897580524627661489762051598652793001539524024100703062087499288868420139071529973595408581671468466685625956815434212923282729190386230713770729220762441316509725078325166689601326307596042990651139590387777301408384573572094855888720134069702474529774389216104431219140093673233215376560665244468178711927155068793177752176040675239625378286845604058849952466955166408856968253494800993306224770727658936961210596078995482969705357499406706899168327850158848661957072181225965730624497482421244772507853390957678896714617756126398677120704481109241333470148873714849944854831982047399085087171470978632857057488483175885088859067952424166871296635070973867794266738502391675603667749195143470700420295046412506481715421536918139015626163429396046247603448239111692714251782443387694204059756389511513930821510850565850000613143537353667398864386262818371243930320463438460938033411378687272188734660659126601988507799572245855998134741018605782890175999694656775958002984276897377630788662044088165870926794938135350942389975810527671900642959443305145928782126771981945914933587597790048251660615932200035528940164699705729566421790069131682610665134844231281491505730316074506275021161026091784672514779986645333967009862310687149605830902091038871006251117187002441715318511327299876187897531864583764253040092817231937723106099067037602101226425746551969904016413588215710680358924778246355552449957824157427748589739349545904066465134513753865859812960112037559408647141171807356107442898619361341873896351496980344579442277974579336123521731092164408443338511691273961512673595108034687232067882600800521239412436036270547116488418956800495713655477873414223776714037620655489096387542302147616158129651683788311444141872270348789154250222887741586560628596125773557927507441489955067261852347441362917081936681915152809520259695035408987971976060133629785415019765284955851043916504860817229134921593398552918794607563875583014530699064318068136208807208543817746649725507709451475810910614534468291897241268598422024605992709981424334497869090049981131865916675419837159523549138993806143328943447630929286524965738914582024627244469737915961045081486486075898320794313485082156128027911647782758843904020832135073578917243132656698749974141182016801243761798760454909370061325486657292099449739183788561298681344692568336530270002445988935541096788196483399160139499722270095231272400078675086972250311684499601402614622505247752625934937101508622433626310700558326506029897901234266418987897799912113426824665577008509059620841138562941210491293752897650242236624416205761969475441624767908325884091329779125169623352944747435486828476572658630239870637594094071162738278079084347515027881757796401630833530789187318527273902537342511952079222402586881697336688461999896803614286499245523811714852695610100166862473394892461120548501841501307506049652188733092394761680765224258310328372841014945436368706807955625181035313967305911445606414146543358137593390010539017711340412171591949907870287873573928505052604744732633661062673209416617797337819805611671297417101728581041197121786726725459456733692755593744831672258440798702659638108395047416321127833537238001986686042470500901802865177810485080738786079206769417343601216521257767924233326902406900773249947327874897548335262282292906937494543016664898753119145501192896019324913687180986251816138982279902248206302023713647963920827493609242398150185854496483052996491439561316648613112333380637821534582106170848250823864529806003068408624516330006162048671626025348964500703050982576486530912778970847156158434407063284532162009381367207824168167428558577119079551094137267758057405640336813486529918495617504075619265926372038848200368733411721275293597189392102222739111391748622766739981233264697793456117343058559659132391906587081264426036227351672249386509913463323938283952742691258749440061540426124414905176624366670850444756497229288983965577833035284578905944462076205072107611806379958826463226037850804156794170622461174355822413343362030998558904045039086563509889190674857097875018417096426151471050631885497257308099900085087127658665080684030511552142618138496949904576403661309461864359640451990681151181120873547290184534589926808223541912522850371243729615328055120406409339524848857038763955790054269332639882264460352739949594535687818473599878776344889376554257486848045109958333390394490669253450793427427949826953650725988293842569325734256089182671443524362698108418316994959167451040452555811101904037591719705169140327853781074638844606482109807236455248394755721348903299489083139888607249489741385340060393339391476229893096168615561685292891284899876510622768737024302747722360146543696764494634419641452975971230805764280972297392436211734457698838118449755309579582745273781544001095534455973049039655009672700710668544066155137406263796466081036434329027937291670179204061701619467111124299875757420059644373093123048022889610618777523245033505774678062916490075840917283329520979833882830291008523260381351768085252769052340749315578062792162231220932679796925214042483262868221935173114012989238219602895571046435421745195122068394627125378491899975878351500832027831187029485402209140771507456231431834971501130127635462034474430030526202348908162421919119118064988814739773947712420067432375709698123129024503677186514350701957525346864863713354317993565450353822673654565736441655300383959090594881383961279678381035359791902827810882898693231266879345214648129159991304479053850466226888987384704126004553578334694773808427854983507760372253775046045807912682900807502108464561242801685216603876811907981659330375873704848936206448073905887270944801715217011077004981317261889766863467202825851065732375160547465113302819282220647855455087044286800846446179740109643663839535655816990223944017093172550100015165818531981822588015605821840368807993722576585978238155795504392647483248126205023357193082616135951989601289165930860493757838472772742047189103881030916868219303181616207077707369273849256830333862045517350235501549072583588278397962772980930877819510357005441483697823436064868261873527822299253068294153772746124664001718159710189293886228420825696727341188452884159471103039165947471306268115701847676130044722063623692954498891661232223965328558151011986488553638575505802922053056096770202215711613295209716811681088519626449569278054244854460226743365773581308308324071270735761402788178278163947650545627022586594026698222597887136450258081708314783256538194887273232399844898439592112748237500111649574417344621989179679256132799880280994426218353200412128071246925907433554331516640886653677023837050088421748698323544403410348283554353592079130574806201961596856452037884378907318362664700981027309131737153944385354670459133030248888352621318867604821194450992108215433234913951422801860673025592927052026301380983548854667175874892130729456185022698310068549111050601006484829405197564187060117533432854562287423734993758653413479791584197704899604613996023011870728129083428685488655094812887174650060676638196445832348548410413427096617596033280109186934417618339842991518414108181021901773333442579287659578878259541907182950255375100363884623792879575885291492637206353123259966758524549010305482173196628967520826824556219899455022521020428001772691126232019504710012151739872407659233110292350935804558021824414088242386710806535841520172162123832259153767736947572744420613231019243072270312699529147557285354134528707385133011171798270906176820153348357725597311954534162466752560072642513688833874029897859572834107353408215825235974257459481834380950939548740502638410505604426539658907222035655448170415550397871395494394874560054506300177472654514095769702533547028872499066845645465155400719299757186242944315479428238965093063341230589714086227045267703589191065158759259488756013291393906617193592663055480743899200469543184686036022455560702499992210682947379436207895912683717520570837109337351772165477668201998176610892097550673577733800412663370087077967264088752707783555972409962024504526146053996591874900398830326186381200847233274078730858085378238642152424318720741128343842536113984632264327994845922415934310785798510110443872117394355905871902923435893142447218599637425537118264183833167856584289927510184741867686814290541677622435821554746192684355469899977451389253065544281922762499574644470623860642329912731266989268670920822308363822604316861880304338071595947133464219686671434135110506099088668797939625506206549639238802828676807211086183704149484874697746766126984762299546782140203593649636918215548892377762327177854148433007774505555166619385356519316890016381497592803260342610695022927796662344367460736406191903395988780185936555858552058107661096399685180505628954332580087264209289207342021183778001886440476728826695889114243701320003259329076248974723538663558493221880603080405778329237797182009295221079228150366215416159932709722594902689626307540513597064495107027410816393354718065438805037060541741117785103857989218792095100472703705184255772136096247496844709561238379159151819132318829737775798767248951822830577984335786341685032017880056567150898209835569276975173028581573012868554240512123674753220288934842082717965887179999357177784832677087666602934775324187057056124338091138863510822860853054240412067329319352490782918019520131253328754400875003521927610194014716468704222534074172142905451214104372851878747903739994463185871261375733366174873120371274359832624518038573669578993619882097867688302678537495403797757779602492421636727091009285546343994932511998063465514805099093542879603624070756731880105177702553488285076361381904320527398242787917103005065074823181329729909786716559286974551016071043679855659749599444156374424546241781800313544899366299492585446452425637463062499378056144919618854457935852686350794882452604288178108269475560170438870254348768939177180849300547565604829289098105659303035865105793858363742651023144673030439725730181830399925860829750614407625033871914739427473195452250077383187588717941084100945230042434440789701749274930932789522230983610800511414788441176262472755477783683496363720570710058268467800005729562175630324515454547373004628978599301264560047440994324646963439140897262140115663638040540545440597339278873264844324492768484410436163762828403774887830096905801201523072963080875099820240611666424395841731128001845685163427613540032877250041919916802133948668389276007608558158413728752516210231291410333149152925241458241628532496294157134293934026230739858344929386498137663043396781155493455842949906531112462931815700392055289859118241736918823037715225495520364803531080400427666652749845898114984567423242233644352911612276576182426534964216702946864916500945126505233878178165605596200242038739464179694169445717181969192873750896749351356401666952652109715268593199504534509395416791721644299668524469816496591487357259930685635504046903582758009702065828777046602248652650599287586530105805566507660342614064891687825052212489132650311447321158966155240623681224741113722178990165609474805457471844286677320623706960239210209372496620362638953120813525288919515003949655942419201668016426231843207297036725720513071736515892429815601650008496145710929422818667500447045972234206760608248994349882069527677233899756218623056457327717155412505024359954325587552884225564340126293881214739108259872166073167692606069149565845818435868498090996439847324167981251798975950484237018470067020026380127208393298982562030165493245006096340493411763230348410025334440670236714481003261707271679947076100250659592425268298126332003196565146465185957709567184019837547985426324945085149104552671869158915384526124675628040162365743057594512593451032576392645493474565465773091037959884492028958001363211218042951431633441328575197359011877159792787427242924187278404325063285911495604171127126042378444922929339826751164700792309958561999385555034353558100649263099219428708584526075086024359955420370860078107715576053279861237331181478702308506982841642993765752472818684641420402274344270916165153087177973768844751348340610300474003740144490932685587961534618560424963633699937990839959690739892228279094040751427289124937639577982630462236746465555237279576335441430314380341059803179918057648024808519908467334224786466778509730469977618743651599226279827662526987079770122239272486387378593104830621266864086532443956863241373499184451018585541933921374801599862766167364417306375771287717244211125598166713477560581434946012949410123115061105954916226757624804787660404192266081730272508992152716664962256586915870707063700095529433541195684639181174259732729311508268117731494356609252149763105160065972174006288656508538131319078199537300182783850825191941128877100375227538165172815107053209323179339369941675715239676368548610026747709313550481887056686960020411359256388545260483666341643746633471725617324353379177553852530635282875115345965861916799793716248675099824182351478709422531207827312623835964173089529598667049497246675037279496495224820036618568696352505754420101378445997729149211159847563607738585711347769253247336125620087568448225810145167732167891063490120710895367918429682632691933748192126433295800776692360686018135591900470428749372105028596794792533354498325145265979540607123452360488801069055449764284833359768479651973722941910733229834010730158735788226886838352629132552576570712498547396791625427381947020003733998559327527538764668496566168058821539672865818245313941907705068284879133266825052445340513915847954763349165291235579889041181675512373455874174338209712368032875552680765177184903579640049945994332715692462533091695539149393280882844890522212690029185131453268675392398273847993082099970903028995523429853960948396532150588250560960510268384772939347939582929574590791090268985714248884584619407374946394440645124479107676113850482248361427391217418931870375758258341502472609461688756944491734789382437466349033961157789123293965094758444838902225755200049001622053495114768174870018767906710161243729442153959039263994153889149303123070360463229423590503602185795166302064092267863904629274509989301711742647759598208786930543276956850281003100987857093431128812937287254026877276468855061758684597796454138165013577419957826165588537495941335126541712834846729254326466583549919494967076190752456419371567975727188099476254717068486550064219474672912114578400055295630172346121091141187950594585730343910903680955878848219610410359257975372043380373686703471134750442915197757298124033574241013244830053712648131301638107136435372569057637627147878331185535662428463984815034588714080124111189446881981658072366449257596669903790433452189188175991882324291390625055929861763133229667377921197265197511018172024277748583162713497531834373705416856213905767108899704814155646305615225345430008923441362738520268802622053026369825564615321880749585829939016801098840389507422391945149330544463198110338087441102272663592850482054499436280766681688259896559054434264523391777793880538988263676821158426689797229780742421200808699851163607878783379088003679081694217053860474666065142743354118556043523829992140217017332705203795411325788818413265792686838101898552777488371199233188933582990455869489152153294677564760904343702913350597375281790674042568908600926886221677720024924398941307638224672961902061494082125952902087038307505295586196865558193949233923239026639838440550364684281333439529809113489757109662507786169769032327535578457683170756439182427814035250348968196725140608825928967374725898328143950563071752087294357559279845113964735634392399502550357062559810151923560031541587734021158488054759851286992502778648107480683938489673495208665702560087389683163307816934412431863245045113824199239216949173390493522651248973937604134747765838600255480109171693091664862980865870999750091075508971812087987409890191866860890314848636356705827384226504846799365393629514657940481207986903737199399758745011061226515718228556012588378710325034117254912718313605074306421714191696910459588871031380033124631046739725324268882448081836272903586001786445306425142652850121594437387614094290890955631905557625114748444430546182437155670087516911472890070653949364406738270959445402500930590730706976141766391288487729683937842479239057522589798384363949685492104309659775671921139487143776482747220765766896973033888928890351422421988712909630943801418492947555778535330124232823544752628458040609740769121882205842432496378028220722254811141904294270665698625859744553786357872459348481523797892851454046476232495988139116568865677587604947768012810124926091774061444801341579065143120157831388488418439352341241359209730153680964516050331171987158555194883591292714046824279276643200100390014033253452235694221400975185932938049112015750989770354656678736931136399818441549867985515087328918057712001691526737900032066454742265957892349846277079578460006153239031461039437549026697799558994205124892881847122985059648007538885212097583760328677747637660549252429844697576128728360153364197954054134269012512386431666660385071281626110369130737242128115012718906344269034071084675510665858540937536404118503103087434494788807689658085543708727770038171601659509148926993799277921687864500086943574106860651774576300161252421538565746667955862885731636633704056785040329878871244997816637003771744711309210798244095300408243342037850869483391754346447389064128829679363962232353553793837905207995119189662525666592666073766166616627224465380299556513582316179168499358712671161989300398149285521255353187697229255602609136335956775702590474723174599741807711624009407561876442289844742072000670465020559022368248782014125141031071320214738740818093191061602412758678783797729579947283864319441628307027812316453939645599182817708377015246438090429167246487924325609762946316303067737039478509180321093468243241858573946948045644970725911221346218798001038689530327544929317917822547059199901747018025769445375461685665235220009228091924446317829537273920738304711105347946524616851914999822544924570705243578059046649999714204383910655450938369710214705893370340135875379579079725324057156968866387822338067730294198647863994823390570963690653779382774564993578859676100038223336058083307543607195319037988270058963685857919280819805971963979131676573572650686670018484982997239065593784143981105571199003557705140401209739531710025976867392338227800261795580490186197944613601416418455996430774701866419615033379387689467360225836275548535781784760194955533990488970076209031712719662834287575303482875401838002663122894546105678880412396369500057434498145745171756882872652429723665433161954744503040541127569394483271947111864965078429682010817590205113477666684372384761016548775535610893564784659430762642581274263838136237408156873644296750322020513168309282593855480785680520835930140010595054741432370315901820494754068493259429190244236989018370365737388666394332493592228628379496940414835252734361473291729389466881731168623441754077735552266635553642526842590647056943555081113192268155575456011978340709717895028854874280172879465356577884745460726153729559739198347513712524366473316076741376240144818356155897979826724342548850471299279290311989617695968486777641370820443457344877735573566738839569142455734319000401402713943028525700418799071622867298713003541326020915012726685998278761936361771138482386964774996507197609419749676882837958581319163916084880771948874003071852339476238920333096896880845168982919485907827245979017847792846291244346034771489156198542983633466719464171195431016835457424219651308481946915842892162978430666853903300827511814577334742723207752551252183707187101542323722822850278889860468462847356301242459146189421580839999562914605228231895501798045307620905591681750083434099127646716893882838798592555715712999744299699818589579015446369568272910623792224766518803798748066973239790554631226609097293553296656076120533950551554144186149824173167233332167007371351708061280719340444010585964319814544262449010138177349273867994867823995344615129964730419947401454547875410994490083413581028859245418413711984478458345437411899020155620653200648810632439703258027992281571055102479761456876179521868936580725089905262634422994029413398459035791573155522002991302079769624725859763450714025868813046101469811974165659086246318907717123197748805052573894212960744755817673851972862305334946954586937096519676204432006570555510550441758551522491917562538652822910365557930409984556989846821538723961307848440504863130463272982430285444500272235519024472131132825337712681757734317098313576108227163261056435638047703858170401550785080200767391095250700180779513278220319539964968775729699434403790659969942672200502114927292688308470721073786795201839434024567324314442174255255242249655397390558519140785822612740872176031666163603048089986108866797976605889437936805863426930595110684760984461490216683200320735584918446813127244715744104916845899130700902150292173629277093191340743596444529420998834763365190044739714442738211270366476457319897018139715864731403077492866926558654213384671351189131969314573740739983647433701790231429114260876734951858498624826856538437512338290598274078892206031221775660003320049262590214451961930775551466223235047597672512287847384988350049477523430917442858455541732086291553631492086722856858803031491699539627503278686406598562031361875445046090705637079345230091659149149743724488051663767728551983886286426972737303468197802298389142122096375890721898962939047227924576916126790143749053851611946449494488813239366625810627787775033625538782784827609079008397371495966949542142092233210405914956175043443255371227667631379589781864802084158361080253967193855045696053906534691643614799122764313005343505652175057049796884134482279089981428381810364211345567590906647101606324452609229170616740336078906757805097794257866526214084540349703600314957753590034694192466935689601720175426162741167494971192044497325724032848477480808041204722125837724023123753421733391973534051652604547710028403657416039987573710688702683645165395041604080322883881011718304287559603523704162265662886752724109136622295732755033134625208230166566937163035171584440185434596435786474661634505370336992988571181182996802137250632051330476794057567035525818059698432381970597024989284075324000733321830106332100538758260782175287546892178803593922162145727154000410903459200374871396572094020788619712593086086022167002346351574242036078931941838911816638902447650671494699261228667667477698131396745303036742724317542830860774394589008096694470417427793892432306829463538072324387403612875512445785136972782401353455705313638012293787204821856615132455845472116540538755163420371263822470896233841814349847961340122127827833676759555192870105968530363598986104905285277382408446247141140396571609725362406992185696972569486778599770519054769507115546434893328578006447008008420822599087183978579186982418983082727592406514662366108555753100057645222142698970248499351937522042049645703603181456822005168876781449528319761255447291026225937807379306636463786965517374002115851401469662288087814136723099108663048882593400918992594664717209718591722831901828880133914759953290064512433682187547314639631792348105911509205969709492344151153814301535277592918711931323412761526183533094322041458937824367922537953464112616773607825569718787018456156244185337631428237764960162660599594816866348513025579484889370069205548307971889256883431862532430470838061010245858813115714232225036558094563949888218365539557844945805615891211202734771052125618836259314882554687146546237201745422456047259688495353181556677513557464125239123894030797630909461084919801645572713892049268031077009797224115954505559063448340566184331777235025593660700965464680968736049689708284259655222087536391666794645583206557631639401100999095879297808957518348002018272605073594850900179011178568205013973390529155251353888666811471269224513781936705206210943658958179530802037761133456171163848556019270454588255826948494670556535310991946882836030779096362483433389973616264474178172610680667818336929549414890720300741789859131815016033491750812542388999781598088385383445527633778463567097549887605669291325096131997857247703719017375854599562501327643782672604452529223272640827379862146077070614780012930824995311298512602752151454531860324983160889684730931571088418125580120007843929884171615302558895190118481617656321597914796586203888319466435002211030550086368947331749334272300625168841615252743274951894801970391848469625822032780503378127055096894623359864322432414380567398115118581853773765002950327118820651413405408471936357189280107496009745880089200987132699418013702705029538188823555942682269864826528665138524742678488925652173026940187392759778544718824682816886198264254554173086807025241040849280626982334126717623888052683595013889749894374872234855839995362587112060802531294006678679122795072941291048376991200215957573434320595176633858932921380065042811446659367611241940463241730002238225398521565409273713246498094357221419036428565638110095729017181058471193784661936705750172458341975695236825836983263375465006644343449628391753298021423297762125087892513558680425074703614064341266514427984796760939221887359370134692280305837953820670080779581966222171511748298492455901982961908956490650983754672071206049601495511442782332124814395910326727919755109019859791315184524462403778474996888355524628565341008197084358272499446810082908403942923605503828213064699507167198822653913548694790803979859600459647041539045026499129025358201180453819365785862893584508741731885376903997880393373623525258624896404071778687219820798604211763738668521587410386832416627900297830453330914948696326275771307396818716709214059536280942732262722578284515993337414310161111754266523440884177469906787624526667097745773941930817002602689221738623027351765920874977948089178676323615117411140115482148475831772481677173306878100480789091997016404577152923034670408599176914277401617891334409985894315957594892022881010918082563365513186315854354356134597615316298662394457090476410367757318645516537728913244302608399426291578555651642696581978602606650619194591259512657602253842554234069713434801696492023630500499652711065347726102546517243479626775111084475609316907499625467933185998596720284244164128222350773722004780290557024575895588563898359055402644904356414588687922923613644177316035712774758604617092883744369677945620644447198204819783714767698973772222566732679865814343463963325819612496474615322693740347085199514983771462138097912225801120769587768650463879224584401484734615129449862290305102155324773975340400435276699825070810293039707469358715606272969367565745179145558230148428032572968070940166057576121052265981588794415434611750373232726477517045826622852656858455955730060141728332608139651788156428913482727673722108010383455760599321140895416251299350262432643835763969752461614395606716724135817534551882948965011899443757321591497722400841384680154181911236465647351055804643724086811834404228373252769069897889809397028193384315873612078117963137840442521457650767496941254060885997433826626222498297935830467124284119117437799852765043293535413187024842686744793547973387311768348322734691594026860266454417033084130528226544975208211597993689284347751734943771177716092788602885525393303191202473996615883473687367460381189524606688782069423676135099086811335464316787845594317154785329961870505401629090151645902114214618482380056083878107946068322717693415436270960873434160285723759979671298965549720994362946654295004079099980411468168660030462366360976352355909225642362582205149958430836562640416669734443843349236609760155678442013610827063633509643551290221566340145007645793443667842169908962584380981840491283651536543527413495544369136381020779260467881702287714677124520271015397267759905103268336495948740529330492272822099310703702808303118988945031218172146664675496816801655796656673380105451388847162530493476233902325873683186361073986878191339091977940609160950655844233659091079740779491251174282242699359007134197267415978765798874518372661771622119270129746099567278509800974886672532770711891494167843012681347142267596046986997289146565874314126558011003436876920861993487894150957935035261120812459825331359335640566498329473609310876763940072016090255220848735277542669852288145791768137202702558965518805271136414654445284226900676162235323685672293495624180529084612370372539990980130156466642530980743707875413943224947658210945844444445660709492574898618995885124858189889426501552834910008279619795830365387051898103167096964801123631405408979045444900905431770925307383727761648195771678658844882086021435335456637189892360043133707533664040963650066022914990586776735617043482790011359841846666000268099923251875485029686967233163684955926676820760236365454378330713502371758605806404727266308804670077598488983774124490338652128054594180183824091188951934804594863112288934089478210385300419275783174754262897969510521892450759345606403788699856597743168069780658970801598436273584824948234359194652849353481350985838363468327511841193833059394394873987331822242294631812619026033049436405727083882505413312125107280414848481921478306185545896775124526943851095504134459464827653035860289142349690532134403863431805974034531729202877617394878116692343887822216610423662619403895004481181580533302251667305156153413132978120548910520254459774081761895246084509413206435603584456597640775101860513053329072479847354280283977483130848851930220983317790621946166345870473209522964405812805046998318528594192186370622576210659857340686714706888131833615841529643592453108251334330493439609830242937367038372695134912346161810869852139444502568576888454818430439930070625883663461192641954774814171506455679961263207571503611340896631483929187690281147816940066202777731880447396051869482008439835039529633078763104626016973891562551679374682784877438218603858332144851189295162794326892455501732448632594844067328816986140444482701206043460771167257132017490908618400666567891375369239648051195435160724980978602250097946140013264552909007262709492357574183346149170972486272379346359307139357176864212627031026632630804216961581046841311592374392746604514060798102065560070744839828574832444959621958138589753504869968846962407582495129122367807052976055598791677904554700143646708266523392170920176669762485742626672269821296311781012793322365289192573832029726799792088462045969033174464278523432427734083481619680214569622597586451718919811250353318842261538407231856609383659390203627116413371093977508872965743792549201618292545382854003479010137065092109752306005682308229235047303088864457803024732141360482985088561932459845313579912161888654329550164078492223529358577805897114305277006671346753088497197833887703112376251439680443993295867723091740740050892186278501739513390464545324664084872250019679799500671885093093381395315534281831848025017670849177066891303643959628663500209754143336132374708082323674383506141667512532291376112970539885337187003218049426584997061267862518416871808721897393423030697438796301162823379202894806673842336609347648535426653400329790533897529570042464858904917977223927618203707268329291648185778025949789386236108195426901346826923642642095901137227643865546629560006275574087150108886613007656382871707636010980116031830789305652723371406034789361445028753304367514913977222766640258068614025363513130303604171803736431280935099677988070076046027087790050488975047630423865679876812035130264578886391735236296911433853185791102651306413585729101111473645224906506736723307399977882655803410060162662499037609749872699541236964773471792936428239760256154456386110114398820158131107225034917399548995422353617444097948492402697595111387263712503083627229583386536376866890603137786603141725139301572006757981614219109357494429079789741232741696696522317182265109625906549280464410343282734739224568423209970631976754462340702783791251834089623104452445425058653967016490939084726636604928330732229239494958283785562359704543678524595949211999033342538258350591191138000064642324936619978175154032072179711720271033369113544412787299530376480247806068913975985167713645342501062173279822893679374822624673622876822479029275918741504853465252598642969681848447243511918218758415588488362820466686930584248047398579538131760978669747247644146204952743860646776991828445193476484299219567142846684376129922784179920528461038339908518561886854690351945025566825976169930637327007809062567891455571847766647167005892514589433378415793988052450079109799668801900596031210040533273767602823749895240227741392464792011790889029857830491829121925630331666148572097887233144576598171412398642167480399860901770908499731753913208689865087342354568063602760335679044865140564619219068599905972781497399973045350241465182753425371168415362269276403085077439477499291486125851080096577654952384915318400323688785963888378391829226240196860780301689136923764665744150594359939351815735325359255204828768273694674940755961868395306249266241251745113138501725848029883378827938567579431110859885199245861385271353127569488594249681373184707989834770672572804656537656936869352238088899578568922796883608699063341237678371265977656861353354353737204533620171728172484574303023121430754748364521878868121775637707958435368053116096670828383630709379115791622340185821579329583751094379180806289845685277494409469662372767834741214114808441005998522592534211901127056976290620134405423208915643134856365676147947449487195940875899106550938418957113398436854585365799585704304026424934222544489887790306032656784509363336810510207693535114305970179445886833007599602954542160741707432018871898637123305419871978908019737181694385239469126188760982876803048933448861079628487595148268836033958049161774368355718317205151267376969221061258933142836683493021674561939585243179693586409115518639231539035995142386576405666173908051379577470670370123496777795498476742040379500096798087426360151524854843641784944629412870017323857649649263858735396908886475932378498643952164298968729387665539688629158927490201851929197279435784492058970383171672038569302056307269395801476769424582490575148754524274513559531139143597331948118363856657302300985528041010111736919148683014430679801520517317279053824902355350230521792093834670484775505297807437223961723824250987369911848219357669386661132419586988501978276113408455611425925393370449569430613419602816699148253333044948925348230052611439764428079835115434433776774665431128424130506621343991792554244625684961341867456769711284976467538254751013549987987384607668436342172327340677931939779401311373354425789177888404965640958746635716840729364248893304368560520145245427912035199398690887428505826719831290440302470500367939809288530056538082165053014212709058524908429969185216258781830219794038643462966922802963955064883633768990329711615905390706018552538439894801217508170304874715274391747918870237193364771826568948015834413915232587988748842674455002010871312359803331083154603002701306177603953910852510208894639051034677033553991870150263865084656816928805566512129775230202372780738150764943694219629471207925373649604851869274647847224199478408418066995893814034913026427315596965162755169487808791622550514792916123311514089416307209164898732651678788069013250096278574701481182709262525874513286079401218841423703528714493318960645197565110862699364177682812198963502262369431748686230001788603711542955175492638072325199578504795115663228081506511521807232207413636929525234255030254585422991017674535831385292568040657888065134363838776864998971853371801550524708362358709827660491379756305281462199330143151114671294505926977578433202899263677366769004293526107672429397815322100202970758007744957211499699881242524053617916516911534200707661283908935506327158798458389661565822969904401040585093166330818324108463543529317184813280239465268556104333003226983460520308232276697152934742607715208522869112778493067996962551198058907579098070220350096948152498960009283130978317749100736768772946391316073346937918145800209241486399901070300367632671115438769270829784015833204931953690836418073464775501854621106168182531111584649958099675286412537049821301283996458540980155737529557459967632611882143827501572880663421188789788750255676406187133490052074502214432724837953822492900589218632158453611104540188241582592480593886986559020987327925910110542067944226130369251974645575322067995699691505769106641280899513286678896427474818212035198283463807171051413323446219131533064610329912693554220352921386938929547067161005216925262642042457073557577844391203746185467490528520623923048594009726499611596683021022052844435795839403753294858544658690793195667775367916961949179240807343531423981139783570270510098084973011176588093082032527481432522607969495339868780278504292844814211236755666533435880416527156173616547580760343487625564017497287363944835468516481896826553892465003021615428671405582346735244562716578610721541498902094798171197959731690991131387985089263378957351031884249095518291375333384958730919765978885443499285649300807332498670820493987113996152358821826521387449248381934621192719453292758609906339681142794553607411341464559334826323719693215717706968225862863636521462905919215676622776985531953987758070701562153665815021888500015951931252743780965808443046571890126726455222181343170553397471649069390136805719082448123984320127300957605788186510710345075602362306578289630498780078358403031418211220826335499751460373551911263995554026595344761386806242247053872660855665019460578012713193042568168620664897305999573642275091475867779717753303985974027366053964336051193578117327979240382000177911857455357468377530834784860130019790203633917066967376401147403002702924550235884568540237111661153093856429685380726237971420132540302663328596909072041663671948895152619207882633944452246439659746470594385111415313720850882649125134000450526922416396643132103944115377973244149051766582466367359039138831541344594929054882165432839192795472568114786564191372379265536208325662829063739370463859528988980991006397869610121908472885796061778136128425133657849136985744292167546612750321150061634120374556768398135046483567438672344315953977787844046353111502980351624067201874151694359826591407402586700419538010201853743537458721997534421165914355970689432457494435823437453908530138566186392716893517166982994378690465156550417657075807575287264353555704827404894160373589743913959339905647911134304602314584076593366307815205151890892361890334818556311983906686622826425991787756356577275462343681239210629639476623534284262857148052202880983861893380671350983220478484774843340250064730994519810255114105472320794532390002564063109244580535106601083188836364308078751185103417492020396064639020578401710232913345720093362350202574348778896349241819132949078459997781322628540003337243851136719538098819325761129838506639195070530902583125190564080841628652388379945505201032625963621727395239540853278373702884033290210737736070383390484513114471564860611870675661956086115513755689130826076069820898997851336445530573876659348600452426391563488683815169333037883611871937413537486195304235947419007510765862698498676726131117860163167710805067989743911894464236550353726466882044090546814209415511158659979876779076160419190140034093607789156473684921831690066538917344493276275530066874113726771725386219677776429150539552557019188068809171584608388049750397710309325804499078955526548570892836077833061715089909020522778656951462780971061746286503667270357076102040782192036970901183817634360208217318404181825016147468877000375956360392231617591507279516252366193996831595019638486811114596212443573467008224534723958954006111348426845145968639963969615568441212826896634022648577400072611146045354798110597063797581368055836738165266477846741642652286501632738544378632733070946566816234566338427677071279778599297162900590022543957889893035787916974496746238797118026556456959357871329223491684610973329683031632282854530833229069085082782836150383900667455302979725237018179255459448635612314654880857089725094084914078889111788963586935851940196585683478916432615001585678188466919251861708451755833453634338041981403894949419308215294529954408169969107491154064600131425117400913122245511925386570280793565970551872031130001411384815038871250842609308526749632940216937878487521646486265572805623570689450926432355268183237878882676864071941830537370894882891728248826998140448786076478796931346981753557661863093338506101617932505887545216971954687780424663967111711129466093707884959121537500602683646594680821829217974146421753570330432605245372870252448425377293822951788345057436377501587012368334188313618369838031855166627009295969410735983076477483139552067594794607135317186544402191153672549031740925638552003813257616157310349556203243729972437276460055800416975642114082965917832581751068538881719531803057118374083222872030446560195166113821231280418711057423243995076117522830008583896243714229168082943425458475829676233981541193723808877320886225586648742268578996852734632714088553167693471008782231589567289251562537512055169921700598006598904346064775170439945832756037798550451479792215300579924627304067056815816356152001114040117111542266081422932648332029969544351529363961233349075076768361765242683965106887238940723729732940443078624595741255290491601800439598140750516993397150373395164101584898291944145821896907381854598054170761274687438128796632831104635125124434309522607248451846056516217824354597464870109062429794149291151284462528758085430947527983473316447303032263629244572347804542918813584948201596113711501721844175227655841862098737674356658413049488286740646950694170663388375145865150089126429069098003172727882226395623797071648640390676289264759680216246177825235908416918398674647771383081547712794289727446649383821490432755875109181865927548110089949588642370889181359926321613842758457976313174658776653323305525912262458837432589047579850095663501736922192064735327635220914396385971039402417656071664895760629048561078913920470923970019096865459907479069963468900784112204630243704707507242166965269602366126532864409864682525442678687239761575678273721916029916208130207997803670512272587476624334852755837616204642574021331881335158685590692852169693057352371660139186759756766945399125028111209434974711403637415015622790684950890787506021756207757317839330600309624249472889241073752097437384559177782595234178890907154974876320494765839627832065879269386260772639113806803633801021091573363464552471440804193667796300392643077612217507640747965936107772969539149778909174609909753736704002033915879982862209744982919107035810783111175114379621121943536924489048742314574622801673416517692288297165364633324121229030411214773867465141358832415506511001643716181985748837376462021706952009093318307500611857088851254995049323825514667169026944266484410246892771864357125819527898406050190840551778696364726641913553414840687187148546405063989004960836255551083364006058552214515305936123253595850350158153578533812069625800128038391703525776756050140531457472466773003055063464333319382533203775918396127903914272626670914612463688346417907962774507245335639126448940026446845003847408552550130020643836135989408259457416940507361730363458600860507614014900175768446769220269920564033387375127089781527385276866616939355220794405407580382851371525401502292982445557813948487779763859417907296840151526556632256249338798189453444094867411913322349494718493739621517198578158125323448924866299938102676923246207022625540589436242489049865705566103997953722355774863664132149051459990309633691073118724173587801194581974657808343326898315623941975446297397076700706546942751004123769976044510360755647912323884569647387061643879191041753982248671296147844488564660857216971872023588490690505564847197422940373307665939375254113602241491392126155993649882246268671034403557422536634631308468717988255314038331757625419762787261038246443184851819000905328290827327541278555500513567914347120507548850769229830706735513633805017137689793817099398933011658137054266791681989299904839798534882402681395254230281034980723616707617401810204479955437125567999502940574595954265607735607376883720189326967113581051890556202157308422300622158644198815673889662432271417425654549098252477773451949242092199821259880993778818598294461730738660047796767732362998251840120619714872047427758082444120978091885553916209898697943965006845553272653928593613571213323028224474918463832211944243879037943270177820600425430078047341963645231433830516927140427736362716323872448916998223629239364767585192673260610495023206672541782885041985368682539564063673237778870713894681960918248313358073380409431177165937945989596330698874972397118542224146208763163278274746893385783542041778053503575851377113346482343789412103910066571127573210705418221677905409348407443154704781606415718750945530543710762706666424293148668559442495725256019088009145418915797483910485835445011002475475152903930234643423253321166239879163978428143522464968899241440094855929922574907298283980963779468395085488435726831616552600279823925112436871985060541216801299614890316020921096411060671788584977437637576026034873089009910422128610355077695420322479084660656063590445179173154815519493158086384859250440404187098611171370220853411440067704436698038457003454619877734086802225942531707753886326674986413913515352629984348490517958654702354662760470916907846025954527673946357090896810685769902607806244740036210922233054225558423675761612256754045003934381413101309831348861196686749553651761343898188215961940212554550526315196515102464405596170184165739212621915323541130218285956079987376387515384999431455042141031611202043819846670601457292847075355643768218933409202610133189112656204930518443672961681575445360661666975379574306960222264148918079711929768207349262592152681948692965177352830513577186018219572657672547208780140455516042839296400865880566538553556858909431310999305178340716374150684429706499218987446559014467465378288176503389468305155100220708440936018385401217137097010933998667663352205322439667429443181987455919508982028564767435363251861985609025696053125417940246149651707589936362443595655670496148474199452203701451202404470517343382740322171880553633554124058175946565961825944115847863498505076664745588271646051541348005214840535822247117709422820682622598150673124336349413870938973271339812028775383729238884842978230734613015650621768160238911606182837374652263384313424301153720630547580199580456753915342970595085909246827648554470623020628389376518719637937566948163449421011248115573752388321840491904096967059157814167820332522029777598687543732865062601974173817546117150011739493732268166830736284933760953990423221534952262204071399874600035827866118718607458910869979070616492129895471796045548757413001537297638602614674044390686015086400822687406259938832427846964093080087979392100991755678946248292094944018479991098280585202984941195261105902577851168572226052480330063369697119405853401864590637158534969509356969961240097344302163842189269187440238381213062660972945878572725387986956820167072726658601720634268971795643775146652645365324701612109958751732822953698495801331749583055585462406542652396089423529651844037881380162121964829008440072773123006074626391023668223668627381573571892127735492447800220107976295969968519737989810889723395577806134698457682246610637280514082445504692636583949944741739492850692151104685488582088175569579607826441923129971153581040014774458390503865860475335123045447813026601112703784983045603404290621409027381629029159259978998671904138189883412553130445041831584032899120302960213034938052667630921237045573878281730015969191306104999090060502933133233801739346044428487623791564763829496452805998143621651086365423252679857135227926848120624658760377426199459774395424838290254530636530514436528927972742855162410490022713777086240775824315105941506500588159383717013789002016414890708510883971269374190734301219632582922249561603148048821082933796436602442982110665836355828480568125588761921607920905499447769987749269062532856834388924241941462940356183153444256981635276275252827859561594892346729846906679137418845593548840358170355411296696054036886793435394587464509680242868197829027489119189434804295167072632633509361122157120091046761639775679896920796779399262638086361351301673049770122117505205345860935155405997394534529499379332021658275831107089262236190037972579535617409711046955274412869958229354769993990557259568660626100428612469431101944696450338856650665024633541379387735026723615433463387675505137424430782035446015058543173631334903087279410594742422618202212044327807158554972977537290925060041874725321890259229254552407631850472527932152081205699863614889083332765473803701185071988889535310055084611063650310192388554654228687945010422952234422156339995360123337375442961089882897895006533949740063028640450704629801504872557657111010886491340324662248154674172254959552491017578952178052123428600214279572204762363134812519792212799515269972052102214045679002111268089657734739194499321434070337764452997693836697770383640239137744342999769015029890249312810788743258708287533816558741816982811478946717693015149772173824781101464560858152083772984214470369338470965248457724093662501699862125438892800758825572607143995250340778373607662725705081783592740877437346331694148746650160370218143769727241394876629787106556155594507229116542884106901664451579490516620571739964531329297703185823028133194679022676116008162217276079055716027489194500999090080557727497081405000413835030780461920316841851282939671304259431046811818702142701201897534812718223069450639470624237506997133975351728334349365537219666646255886695301354508003406091972075994561744180224081556787816675347877240951992214017369749114492011369598756950673940808978773277400817133633811878337915032185337172198855667101877040095697869358888658166710747909797021294308849846924163798851634701562558766207857589129835649432226115559901521778584393413266849668306865716386833038250036220193764224546380894801555764376150402371221309249766584389010339113259573915267844618729280001508581081240327675576686494653131390108011547656965818359676286816257001859224864106631502835654121174329575705267209006595888917588215464816665480623711250868996150725961855749022128953441863609689837845419727715831678831538830766020684393347020964567975265661806381885840248442491003980539141625092416844313592315141363863485981804215646229561939399415394313480667510254775609502948727668427578605956693027200741372903789670772766750533265750447824907208741623108025156878289695016098677381540030657599368515128570528994780168626389277681346423372680321038353856764678607087650693223900989472409427126633453103241991957465756660606105118719168318688170484879546859330519534541194592517051709281352212431035132846539002058728868893212580133389538881029769347639754259462823405724083062473273416891602715084585596510264236236277008651947042847729851781917188689505352714771780639308869001352698936180117751768002828326938675295129649155356745163791650902956260446141133936947837858290436671218500366081462729897517122920679339370919695684040225626417737435532131157063398102573388446926403725449465826087894554888283162388307014759260937765355381336124001817080257200666105616106484146117281384755744455039892839594101417699853282548874682147253980992864429477123554516641887396972586163982028972157693859816298537501997195086075762419819968948056547380937301859848302343212810953136649731866536228411555585442198892135569199322231629581103267025226156315780344119354683864970730095323013656352394303040632599101808672391823402606621488947167357684870445967809236105956492089305904857745349707213460878078430525224997550081570633851448655577747362602457992292806958601966039179206067238005090506113029643331946107080003796742400837851096810862512752020875287887908363779014566692415100075250506528427873028064230102238242275647548674223787709950053016810920257659405702246507838727533986598702639487804123831948377693177887952009990869952284154122428019894176316374354505326213161124963040436862235895418633217034352943897214404115952662961650131195848183668636289538155624024329163063438789821782859241958716214946548935292637131826898273541485119956910662945216448961230045254206985036186970823134970410237222201202691520870274882522581538441342111047751262441794266088238481350494038913141617022710591825805791454375285636465172154697157099908633923607156156278652311018242389500167580056577943507703119981317627893712394981194293751993308223912735511757987743233844373477948716767829855774941075027825885570698287435713753739389329912653677024158618111382697634302062764150261683521304243894160730423849687093433420956424953453220745305851635589003559681805082993051553245639419568011232352725905901058323077974627739173795394959520511886413120883769115213293721827204557881889718075694395770668897911050549215863828252472390387322603626898976011102502815840273924629722810068575823554165713036165920530262682862246892714094633679010011217010661613329231950396273259202055126111166651005011128144889833240969821103437991127791131628564538264708112335086746842254745117098035757570013779241558848506616743025581447341237409659007638698830359411009288845200172597576297706088205480866061518170876731140552463451498060015909251361031283486289130326598308986567886130778821856404206703351211280581674288054784932368159786145251799478879525507377946716376923554106021583753135660825228047026720208151635047180106494321874167563290344467383751697092244757440552457560529194246672279019822821195164295956866353426829432236849774265011882575743466749242615920388952399802705211060833338252684709251336928868064387305089944974032677445653318084914019266083958271125800494369933793022790998542247448593985775771157443078542099758679554148768101565292575402968503841181885669881715913570890634793772311660804914628201588732386952095928844355083865608233761844610871229522436355609948913320275418043278298276879626583483707257553024113629393918220040348196590127869655753033366926153333549972457502544285398425580830892832512076291537691381532448136715566836796224063795914372241820432751291305371265095389501738405493314759633796695762565519382144193745191461447375430655143699332052384065799480574562232907805882364609621177795058107936859116338709587675020108887061912143198159266415991800196599261127716527458571972438350950487609994006475455208220140235924122775688326615205562042600770471120604522848536683250852711705615180578084672975827228414574011971452930395509934741497843860100851042016329297130718312584234344127354288468664978110133099974716402620475711134082462468212119663899236402136959707337256903928075371321034901845058175812805129167845654885493614786237976388377796510327435099150237749494061474928866654895146915600203827174384032105187107512529638793221613381829763767752842375210889574847343662054029230900937671802640137228612696572024166795183691604932334315901223543063511788474992526947942130993450369633402908676490558861615250401271047664793781457428788666351804751414196160069163136763173211620159544095041701921209241415331448358311511731045765192012379873420685964500439579107903139597276782231134968337303167387192050791613599194960376151301392715495243105911002799918579981279212409640475844271957749923201524121180156544596003715262501805626826571710524070796149613906396329468503634507548569858924430209536555853897065418910465650739104109513373996246273019615428891706056390172959482846899422075762216594733200667221392098821095104638656017474082553398212020677779832018375005886648152130204672862968061266198953734967724047044318075188229434621904879553679108787599965751326893472803538275206673876452319399799548805837489229805955210661263692370136185180779579660499384248143250833374377745950074323904556801343456232450237019684263451626997974040874506784910133277989039868487185773059892568749308052528415938164222647411686533573115519989901139263098141056592195441332918890947234312887413291298515207400931272609302191408654192760726583757593651593338129168521403327679124801496993631857061332505027382546431978181995668398642003917792519317639472966170976335621515445862760244067394577083015145330750918377457748004750689867048436550098512287162983457929106724032756774500712243236130522868256518823146877684904578616287104738672416409241771216670428791205550776053966631984544678254550028431989300511965507332541429689496146088422332948773195342490140010457740347214261460854701012809993515397353372667021196702370970755646223686979145587819921901699477096771474235924188369059982192013012484190945893411999133601139792741544595219368426141881945788351390710982300763314927474077063895008542351248381240392258214563699996495643730403869642207930581088329684943095016145129387965036849665671404523723157048879307410209597589266275453709405370667615444657879827677342113884855680675125300414566947819951071029085908085706722893794126900959044678000213409133793688414767016916522449677466590432683079322311292665988338121111527828584496987613133174412337494068530280662437637015437566446555628117591172892001727752988338463410763455215876226408722829385448383753133604866393546235423398184318322720728416494224772236108479897335900401603069862444737189050143547627525815900146781586523705951332536184633001515590000784659233533847139616730639927188995156265787149369131927559969180794675621629683977299447830809016718434190765275637499965775668448790355774273635254728286825219349562637422888514263473612230107176538406374177674976880754847576738988440981221998149487299089929773142570904905339601711278120999030970600117205822335214702013109943698164645985416377543369139721034294335923332718664243802374140716642908240954742438902333754753760351088608612398356532602228890915803171525919448915951623407194090735580484222337944263485651174991212254043991272914907100624799574821434410192712850805582232431049693359655364293390618106123430002802114238424986913655715265725553107094610608311217673841384411824358853401818280166711741612377265904949267730887598898872726967994591265989292886867497217407016240625011786560631256261414396501184251550123167415011121650845704704157772935502700068444277073311914083373641884499637357992874552584016247971813033835323111197136788283331613668635854080427102805653548116787903625550345679300811268333061598852667046005636873340007733703710803847892076780071286534715434638803302458782914377642354530966572075457812506503037661001004273405567800541154633026029825914065614212539092243953640753929204465406236262778833472392579039763401974833772959925626163518364069422881698003832210009621739475208558908703877326351392648368120083455212876038720323368048077933220943269851490562001979350380013117031154452033239261614381363813340837254107675352122320011550601109712905988150653490409138870026335644795708943760916273126463165652256381493454841415459546900932435512300416947650478098149431281036325937039643248752407407679312292970940200745292087901411241306583219370160699913623812396005347623199535793179326425390885978642499083576000843328498736525847954325499611916388737811279772132021510262638417783759290939485343907179245487929467227200506938123271293725051553386203794571106404785837791793849589746854034313852359691510317882530037628072859247918968674399320188106176275213649320837702600041270779408236944982393309543418536347121131259673643787847307770190127588047416930275188713187124156822189258169130019425608076286374496364250293240660214183516593509251398332836801251444372576462437042054154369729672590865094512259895214306207315800719924956233092528730622809440510380893517066516193862039057706449227415573397700236463027249057878345988703201609738882497935326686401131498153939427108617686725697988654757806804855187243356915938289587534554862997831217123284381329608897545377762443513782918379860013047042390181406933840777139652602189049971012915284139601159766762798856576435080116901459601149008209801576569315031991297797277832200160941817635649600668522755325175365942930636092597948525342900000940273144766962642918874614684442780252331895065853807166049719460779285780899395482999821490286149732628168238092359708484253336066809344102593488221902683327681771694799829077908799964545056798753471876448068545468993052123996064977874944980632512210180123387230382385947049651017253221820121253686838940678154166941990799385493611594066457409256372350422789678037335533316457461707266806750677746343792780402296471344505254284993372434418876342698618786963744842492264163912701497617280802535330377315886831479277832390987838256037335956948708056171943262024511594412974737973038817937345997593219090135262617103550699794303625990367331051824242888281149482724717491729500160095497113164482579473121583222785928411315157739964654447122469651028790168958358288949469782395911055265077611100399058469694089606796305683777539667648543368061433585183933895763492200725724677001633383782171164152898656947590920277770980687289800712814041031250980968818389432095571227278294972486513763141101329913265187518702598322290784383200148220433892670705290976014473178997041948172033709677353844180510352424107393403145706655597142469679052350223107733257131634063772803833279672164627181501460907979337776640862232017688444119310120107640146246077692251527836114101925999558643472623666745214082379681783564488572218332963973978895140587007099770924839544296938607944669775592342153760888844113179161911779031724969205877370821766687855634308930295372141147790504306814286209120512119587622887945760618306550515308154575115827900019236168022669341706348931472013521388048057724865444938450790615731685190376102560394920155255181642865917182712787891907532493806526585528048577451740510055163453951714609083870896584029590222033884665965956191511277614218199611798660598579876607469134291766337267278252724575075610998717684369663723192039631281378825461806611431166667731900689020244121205191345006558269904577938807498427911949888748482804285069565921808910933824373280580429121539505414047989451683832239907190252465884005736629136580737233286323153948688302917338744761891077920186240063106766568898154005168916283334586095305915601998244727116450833402884410531426890196688644211666323763269629833837286814365970235195285589780681207223656548072618951227483805645982605875726195036048356783247699123161250411854244918671669237369450259216060418637255834938496406800892196854334573159353461986647327637626770527905720833784040372798312696415530449177090555104128603434355635138758921988238347508746721988030741341196031598947204093933457192886994226841330197639905078896206222896801724381914887252900086425545764467154582232210281536605848586035022679044221965403691931444954827901895673159086510501593107389476004985009267588664405239707801443669484840603447583977004298692954150637078616449934369969065624871250130517453413876584382406714044305261805527811670096585828343217209076272615017773176973982234637870334859751283674416435216177751119996469913457209051129046714459424683753162149865873117560677434513666886555939434278029970284452286921275246269567936601484769046562844066119584824904140801383494419727866865765070704823837085619176835548059357346960581987297421307658281175727558563009653017711743065239832112783054777477607583355844693477195260153869870519270926404505510613439142434315106193971112890026180641689452709644007798797975272697747779156665228377344555442202555533721689885888447326674157827216341485308824156656040566511462146595937802973465355844141757494834303176124686190871171509607955186442126003571160540138570219636888071856453436312770801924670902439490716001571089508564481983134222155816310813294428675486700328013192654891222477312655776066364465035688961192382121129526194652817621729251224114411356655734816184394098787122412985132801841453679188634229096828811522098876828120376144063063011804383946233810122383778657788962858979693529575056606889166368342329660590422838903194712398321547359206132682894142165207788791206303035254406895324701296848011370545881949966054327343284546792639776836549245577121251208528603926610305734874166019702076653447760703497346665372085590236455573498351897925581312342398440772242532558872698939883202943347471694684709915254815373451254748519188294535801347018874865944952467954876574738641466494249479220941128220446856622247024291503921229178926141516125540595683949959024063426454587460420817696252246203626610296890090952632642536745189638606991994683193956222745606334579819247583437641026701375086036279064837071341792674484822564629250734618129051045242416207896471585089460325356810496574041387732481087756786764754302508882862479820623655681959054182910871144252483436050991495794117229294331608940335545486344462205238683639483808456590691021533145744895068037032856996596817631756258525465078925072489068815305093712257313164292739532470464454511878558782568765416725309127096511269898070930000117757653420087739967289385645087097747636176569836813863630589348918434251548714007481715219279000924170468853871543998077697934274274046822790180167418986856895647691035391697013606121790800231823776837307059938954822078586017877828472394482519220207965444074038074881066245722742293022850610417187883173418385820051242682698100250253351967799871591246019477371387316515173437580206753252758185601468955701507787791192372056783365661253178196615149526243713074200799763114520397005491955652060629824811784360126361421196544984352076920205137074242913029754380920564806422576388714054604386796515355199884860493302030610443112230736011297121889071277541409810482636573481629668778061373320428481212399315940315551844297351220758505439749052994646526158827274117310425165347529748154496481828121556083578098543337009087438733207485815109008573696151383324515090447323991946142024078851557354438354257150760329928420737324544471919899810637008959987071628455420151909119751425942973526894101465381746826619299802947259630673165257222140177762105815436216550838213913684517389244061451150032824942451309605729052259881673152969721604025420197545219964532942923354341695551732207966133456664182621192985903494681691509859241410618573171653008063150841902494918226004017794793890368529845741705446184945875987701137484568680277095745370996925122558853281757255218543619764494328006300749914861916825279670461827605481785049830508303833591624921584946003787476375539657856588909081731139623925883968570091619258928310628209384895780494448823281859590318276009845998633313411164218518598443656964024748332922378551520935007180901230161146640640463955016877210597998925553192537820225969452152564905867140443215020489722662192701848486355374578792041744074667474320589281735571318672114334662051004425793695638944594986506481224254776622636589214483588009777044393772097144518690213596860772975255532622603730731673952681162858415730902341315637832830978129438128331385300156454271244482378938914593527838776078946839554724815230114891168615721843256112288896037784086383511347795053653567519833058112867143786446534457560357554603601568276507893015174784086605740170088955215115500244343063111768832774843462794714047109025086500267884148223169603079059706094184889997860430125935045533629879739600965104366742894371021828976385163080911156762434565498876575883251783384080947307026337829762683128522013122705046569184430858580823733433479088015318918580689049566016050781085205542941088030424983306706663557513490680102489922922950440663426399522406672895784612677792510533834423342705840530845822392426488058415682782426169462932845971920253416011841597894035343851172610132908464941645948173187189205720131567696464556066996698587435668218589703276392940411832656632986735884907560591792818777088482578592992483856047379019463820174353733761205816045946520501980308923597744942390362729349602939671187033670041574137205323395131624756591685217080150151789104837592263658571874971912283190121262052131148222238157927056281524011459891501090223381100083183638118124259832740460640701025981389430308690617464279696587550794902717026623756441695842260564257479785560295179666721402066938411547234303142239139183881865053635384432525079367738610571659444123365191647758702323956121055781757422632850432473857851031580979622284031833794694948625359950895803420759344938358308181645980209493337417072717243597511247287405704686276433721338856624196029490880032792567497499614893180999644941669229796709278276691139962426504902097133357830139678558763191954065241913220612395128432693706078909861120874823104339349100135753581898911066047430003968668765213967005322616894317507505518906800957768331835795665131411590834201513642603061497509432365513807649784617024689017361732745329476047324968651673872253968380396731549381891124985298257954837105332161141950954468094395488763552097799324360407479620012964890532289973056830290384856526803254291812657185006958620149817239045718649836467991731744672924622089758941248175437569847395943598131834937853789862191743150251501462047142728322172006593739691533686088915471448051727339160334308168021013777766590760874483185953953016794634059490660958838591895487061995365892079730027889397669657143401938879937056987748933364758027963870620794099825266104692844639106782521218760959375557481858120384778862730062003403530287767428082495548621471315816696774785981345008471966228394317970712452243480399311779935155887256832015521411200686310958160224204724610998180399561274633267515406244140550755352813410825739950264138214650077417482231734796629879245678329873158347312121025002529156730910873826232379092002945972618067394538922161735557272933832772158356324140970444844169958452287786430170802592529827434630842437857019545550280423039814629175253858046069118071520342420985257233205964385963176224952653998455089822626739995128839255923260759076906177628571117516796363396250320311925203252739540820643857084647616605729542627213034019954201067696036400719355244002822912527183657821192125587683599698450077330683451284995668912254595641181324712329950423604446126408537995662297493232627611790662656224051323547703474954931747371794104879058315776062937804899337233212282314948208991848330030687834780477670657695698424916523962719566166246389538331124695033549855081422123480706960516361585674066669168103526495565700499596371001840016975994554103374679334418575561629647084872088883174178488862635644549839634739862910954629753176029548877404468345880591602425822640033995797008681122009704460010584378011165571827121891341738793566575360323824358596593702567610992868373630827100539389427175721722592850851847319241234308417455037772396849709520655961476403697108942441850634195841131293355000225603730307519833740920027236506443374542477463353169298961253548922164999381797717460491634552885276841464210373317286085663476065993719526321290508543345279808459042865907829259753728739564640374904115589216988338466881693721396948079191072893709823983108426387311326897192434862122004532155248750341304332807547208795921930540879699350873906877913806011381240732042444305019135932918669696326307887646884362364120821219405609626578056921516885198201218948144413912727815595300392424235650673617059223269254944511533794386030001576375435528048395527038231054550467733199193552921367738600094384396275015730014673800163121004822805244007862522743903904917937305640173910423134541759172727180859288634126235807100650355535418557287096173676367924779322471018367195222696728483245952276247151667998566435724033084750955496643073847590564330166704036442091494200087969993472398878413862361453743555788730155143835860091809056702435790998863577102602149438091199754408890003450999511807998012898783773073304759471575795838099817519922682016956097697121898908269353088416679861786275791482810636496397919988601430064982461819489904741368788246268066346068507319688315403878616867488476080443162807239986229115009587480135486043656216842889331316807717608759816239979318202102313368182361936101821175826581456987247750572959395279951267649571289717905089965415100651389199854581975338240819857153594007591451523501116201203406774915249968259387273508365978556832872330574700729074916946581577566403473393137279729479251904406510088486333539069306225612518768164376748064891273839505106101252971648473677032265828654997713850216324502238979101549641607482333423670408120345822580128441316695423172142332254326991105588284772166959662796026110525530234112059975903075950593504542835528362127731990820431777518580582899349613111957868697198775949339535437828085467216336585509207529966029066152645939942171117037103132483721558157552732452660716101652704106949842192871572925887645379855226626620712904128002296659912716349437726577790853836375019478874141209335948497591010959070899671813361377145538303409175129505861983749200564941870936041705892621662029195493537938896796853398434230022792846529616892934937695866417599212621561069728807682422787733489008928602208309180810499218951899354740302632263068969075324880727969698742218827954784247254834773847892943979842914934527104697018104012779640158157160433964429775231057027438039489615625931495929699570299795145971768458866546528061619917986484836893083875823347934087886626430885111633029043256933768917826747595657517073066607786674329174223790915391829664990930144755845336180989233428058166699339359766152807457424416354244170603207218421369189084903495015202288577012023767781380504312104097083832019816936869351518146290062495029746076020295825610529322345001813469032771517251437249874965010195984744890201237128804184329958855048436844682169237813010811827865658500014753507768963029093218603437517334291847292727330049398630890210521182967613809637747969068309369225080307778737193592431263443616939294322723343978504058567288603953659789883086724158611207730900878784552640041609473277330951727680201259127286526015886551403492922384158985457996694265883261703900396301291377035799025467395214249233344729168164270513745950646844325708760606253991297763349731223478979550300766544136653670812416322074954927153703594758475994159997395062855481624009375027382233101375940183086338925500272086566867526939855940155939798115124202321549213811336421092968774874278336505089659865538825422925900713286562840862679137167175141894189513603993361833630003816383676764284284151484599755207973767319093388197801943728274211868968801003506189355266561743256310999824784714024862717717881663551714840540523066198002661724474782715727842959518622804006406962047566951460543725973681567129322708765914406135334991424885983917148202286540100746584160713322495052290603903418256548489358121472348303776809653384612396626144253657688163341310112496669874246604678167857385772097695451861001522476393985269211384860943389102043834087529700974463138230438464920248129199940014119715140086487548102658443451324337616094043555412833856569873995441803569338958344388632267998701665431706005342943307048632707602834354588812163229170318138300652955694461877900112098911402581607162829546275250315287863326591546319649745084050326100924289284209106414156623927124490965251198719900039454355179399005672222446663559832394819520495663839280783472331646065417361116079057942522673337244294685259247148890609689429273226374459625133715796430029982436912521060711677475779096740815144926728546595300294675911118231753316685827161596467791860988565981022912984267947874463082346298682109661699349248184812346485371082343898395581218040001055530899739807875300712063475272446832411480892132547145105151322309609577337801050072575681398852771090603760842928319627013999572631712324236952798608556181141595949427425458043303615530917659346327438273329236044758208477515187858144774534054318947267317777706646523907213824510464107778709052553026796675306063602050840786276711199883199677203393855411512174725509136842685574577977161414232559653357142873919948399205514934129786234326464466254367910839189192069373601195410479093653649921464058475399245863683459021223427137839459715181248737141384427904774506919043362170236280263535758310634854532852425825333108361289702862892821785769864893048842464113663200210671977032119958244469633491119876986727964970501782349920093796857942347735259546786101148943953069123570852646714097238338269274337031326654940147028517360990724531296571351044170204363406496697960901954037569665100483096993604786653832222958445538070311989048556164202817036893470105528718341181268438703907814923384171507517586967110626418337792348052378891189593524960609968308031665047553740444748500614572645081004687625905037774950964775956103908213186497769674552345758419238572840291525857048804429969840812678023943450787233976474053107722942410607231468002752592080145313312966464309942257253743081021974005145261851196870794169651725531566017577534870797060753402843502010061287671560416548275919131108145901315624818777785367654359128577847380003979961840989947491055050102252714864695019696765370435450768429458236105288384464976961042947683572209990301584216176877266307837341933846735903970432758580239631234535107155991007871018577395883787406267324681406975742278581086683690736341239907308123703977668580638258139772421083773474977168577148069263153992607318179171042448284478881864575539903983675499248452195050555296960936268578491765750495410592499589131993615157445576170722719006928800105844674727459025290576685242410961102141844631910086464900331934253380667105791713840792321567027184519310549578636686735952121222951564964690532051693968798148920574357920537408881489669309033460939029553651776217277485605264297808469712862431469037622561885924647385766025566544587216770729722429223373676748452311119420065743710487443965467229932597553899165548921687528939172842582777675926504130740435807592818960177518251127132294658146983489631267011567797402472304646439147652951973563023508283396904757466525567042495785773642609617818266104510410712462377033157417171081303846796509975769145384686982959806052483345754133839664926423030005982552704291419418684891802157002040264260118489285387945866813572661073232528063507084973787288833007739822203419423631772928304053395492788974094012849088922306582199387487906607773083298218989733794787768778821115395258500383566415306982035179947931073834952438008340143631194348004722437881925216942894267977007953466898121613041421036611077998411924739755348084476652185405398127817398283197684736943389413240823914512916232688670660379250229479865067675741680111795993434836171525553769768442538746694497983387774061923163709652163205370770975140491961437238746185971534072007408442363681324672378125372893885126259098013883807123025402710513200966262647135515726572871593645089437888804262339531369456860023535168505852295189384662719406452184223971769576618026822609721007979721781283499764672635200400302094837400989754726590509328691148901850604207518605795491068387404640055931766072044193168818490116346000112380508387390812349554026033134236690376537272059178634252443909318013528471610239617452558286866202649984846160785925942511429617454428869962986147548241929838220750414587648951728453655159034777875708612047255293349035417337579803655970109530654154563338093764006667521665896162756869171447657343004294799462434854485845083740038984311260086965028961466266667751829556710111081745291174887716208162876156359219823529325838534236219092977661674467487409164055466712247652705741655400579340795309073767786367622824495707569319215092773169356925035549981105807653796505482545772042892416627561500634781266034405120318104706859821774679614346527565554255779843407368397790933563647957772201535993829366243527174959518926281344121908601803168916726751441919005079524577764295353479311952814338628905770926508504640976950665795265174302570788048960132424533821217812412033371509230687189801998843137540556212127735798584869205288555111828441244714887634170954596993370673823294510070080697336058031453587879710121871095385378700244318422358025687152654241222459754272301470036911575475960626790720163058914851905479566660534619125093634640762494200961922916917947913220893845355993217931438086251561617216731669209962093971848293961313001909681206676359007294432142424166552663132140371873707764547892952610250655976630105109200550683619368094649823088861803731406137832575412721357528463888967169045442237118120452942504305069534814730814357764441729372275433893907197251393707726098796604859292588752098735879848186313290416407318324936837715196164832964382608109697568078173492592952732997610381655230122196485076913599771440314552301456882484517473211584938324859876137590781871352405915640448295849506824972338857775898837595459974905819922170810819533375227059122691188330102472569874483706460501138159431352695925675723577064457134888319527135631600926582516511844613776669561486023768910939886077670874249834418377549321135731014122724867886538244225453235421928391787162704012135030342724501968655064673498004877445155016735119561361940961138384830379827746691518328745153954891171923354419703462635569669936722922925139211588917872598276936019611568340205635584275998824845402946278495785123294075411014120757368020896803801815769464895887319463886232670254228306353685944923199519834605596517041692318463596469145269715072272372740509144944485260455224138170369688930819866754902007486599319759570843922679136638632067552149685919128331569459755942245657715663253715678046983842226286922065820182173707642121130519710108075633472736700574809593694145612551609306606077580521271783974985327424610748881365352705681103072800297677891722703059190408447847153736263255502123830373612859798673861787633580922421464175531678663651085759705085817385482589655158052501027363643939068640874486253111142983968302265430283968934455471313854780495028011964955467281867204481177946303715160377033997900450568081898860680726342088515955665406102248448360110452736764828319784632361276915410820099021071405754418036870651879094606966726559027776490659433348941248578965305234972610924960949001041588362108235704306460158379566582397827292683147515446026315002908530013080920630570858655755908504398352445824930485982345696566583173408116092241637612944933991054290543674404350801073802452060712668357467827604402953160260990152653965217209522119972528275772899597002494809458505039472837311995569226565713835474438286113559212047294399718781353022089348025305754418327623355807952749854750895001692542323087106693195481077031435732232647380400752801887689146900385299285302004585163011626738859191582081648538836352273351521854661722316663588710756759800639609478273158867230799479755271084106376707422048510940957921820066599980645467576312569360054744052323603284025244652180693999566684783610896359450218322626380459285822061249885705414719363758844333137850911834054314723514379488378394216453417896653106964660181470429530872686221278216578358746957706340760897461114514093390040963148545662259741525989612903546066959014659567630382102650096782348772456552339272509525942867011351306737428514345293526735490939360847384124164969630878375284616823462159244843739134137545063141560225209376569574870808428969372188121261602873215679619851811593179821958144872600081327697643843227623237067443226525048980722241578368763860961959679666118812544448482985570917505176512513929961563955288096675091588992378915730063542587234382982874109921139656153506223326964911776063568197018329056333346478835279418354394798153071270367854799545628410127059442559409874167262824904751828544714619233519390740439035661384104874166486089680392999817841448737735378481065764411264469605907897024588570929865499215584793714701636232013886893435560235230303329410075244645866502757950917056773016736168537385910720115118548773763569148400010205673288049590645172620885182603182240265427964544702710710296955102516973049726797439943190590523447815341614151362763019324797964368379572243659161855371442945232688128795734490923044421491502684232166630572598322743864069046755950175909762699212654982152133493860619826158276404964581678015195923483166857981946725772495301760655078046197507314417924202424948000295691760795416506083142969710169877195663822074239830865280510130226670990769119685523423276527915598895032397176056834493709578575076796134443119962230218229073697383939882409605629563487564387092240547773316246889648032397162941214005721405331319330855181428554852390844631116989427681297000480266764213423361344438183046802627200052140113643375865258549022064612267042661365455785584668503078281579662388544111558965221211174137855356641727739011134993340759910357030686788758318900726836542360621521543204329011081302428195876606310575251075686022358572378332408360621828351701171782862558870755541896491329173645373749313827593659885105537233599703847860635793637076107849062947419880351416628752271192728618883312730543624847635977378369145672312310746193871248460445836960928476182133354101079290227959848256536505157339812119689116897166353141375264917280127539921819032848584567659841745391577044421903574010491883124306492951146794914430748839106676366547767332603327994441001600368062046021580559357997485524600184607741012179322410733549935221876600104077217576617407391903488992655552772915228043556793373298113712724602424580934294582328246680572037161975739399528000454965405869806813304815353339200315060870848049665472711767527863751143270512760768674963047549852556751474538116921912677828386558809734415199338185953208133685395527175235567757643116201366980938549460512377116466640634920109380198706406376315627783979847294469338895906723947811371060623862402661816398939145392625265178455618231991457062761507409363087974438992589159173016883087924511846736370879494925410824812132386200725585987799378458989663379880264843627710468472118276748988574931013303823560595846055302762952425991794299789357040847761915565918471913947271393423659448408805171021580434415146462785868077851360903345800723806406521868513956631599136544439438941528957328457295790166692805532508185984017954938412878276682238694950308189350216477381801848898696622910190010339181914758723089481586862326877101167771287035506945115385646907290669527221634510295416306437224268415410285958128078058225597603395031174873646181051884440731763576807820928943922762049350085665543091842644965872377395239919148922968962706747711500183321039258875710540722814099905680296625657590066072226159708716731254116989576826702145098472338319734367376134806234363542376299843165484847305955506652714609888747414839866355178267264285668642509555200102244732725865587115729638271956517795194550427899455662652130098838945029673220146813991015250213160667127710254544398857462056035957993067857801916957627688190916993407488849015790370969757859835563260230548967876702337674310138578184135774021654982098653407919782975724446169457979378452630637215243041985829276677712289812618181551578169129697280569056290886970554317541011356744018940360580782305539917604762442247228728408192178120093365311003873537426202408625269901057764126096313869263025465841393318981235418009804441740176639928535884366447032580184918994803472334376147451548013128935721273864187719802405719275094297702062713410562553668625808020844994986181100545231072535571515805320097767653008182476467345808316989250057714404667362703278298902444704418667555520603510227519084877441840157514245726121728492308952376830267032961480526821309006999501861151593312035042555535876750685513449013777512381000558003530522383131402324218385106958380891568182864859980683701090756825763822183720137569066491011089175365977809341875879943542355831101028088841252567897005951197180502651203330906273147308281179226457451281711024565690006515109390450281033939071372264178125098381902499528289058375393541553696337975465615483123673052451644103975302195617699232906158180700106968672588457773101100392062895209260186839466263782656467571803796253082363242434764880208947573148784294536300742566081037336528133658558838306335589023222945373296842056238062918462979223175440523448834421562929433815469138320154570311891674859666945527347174993709415356423134796747670239394870031298521145069157215990665486900773843435866267431423207469809392531142246097138100253998836518363071183989673061618088027552337172115087455210051846935019511661657427251427926814177955804216074746664483896469683190696102777923588810110968505971377910290064581679353080690438515949355778011414548342953459927201883335192802569682179623307611300104558807591070033498582268352415086444500152698069054203387455561583944486229647036746139193581522389919852712004480932276281295398410855587948087513361606973251656636980517833367912094643482523308147016314538704426074163018059754008630224020017959475546539818584593100028850195547988184248665179638145940940380138793827693018988540499265012045130682806959659920941246804703761894985031346841774925120364102892738693578732890888270944274307631772640312912192010333189079313087553589258623674333269608025121121386231463798452665967265829309378499146681480537340345592260096382541649461981540309948111094273192697613252943554570648995416202192032377647069147888465594160892889278859530883937337339019798243952496442039845283275410207935703951931404200341273283129593093406440214776911633431392356017981059899232620853417863149731046391497989299189081799199571668132223892363890677397512528337427279093333150818101807641812363203661270657244111646031306343988386729152892417950390410935676096175210763430646703264302269183745630257952484514650324595896418751446159185538434125413190981858522629312731135040611094661936597433137057436357557155403702007746074893481275833997213823659042768141409853196456169485122954965908521036893449166545925139408186187198890973680125675096614356732481226185275101804253461368759823486554854177525695351359400124498319530825470998308828685516758465537949967016259780460735114794798011282386062427353437467566048916078913047372831930273669532335342450969860723193907656952777824629159310808730479762230662649130586918613385136820161660348742729339338653271331679357068285077705009422228648991481519692257794203315805523795419962027017373286550090075956093737154985772552477416379150625410736423609660284619798705961521870819787059174444594744633712248601017871297965859483557144125061171989858027631599233695666828939673372869596482519019504874346455265244155951645479558940928625207155118028433104166235393447440968511613671182410577716235721850615330005246849591249204574439500962769424327217202748415281937992346870950956738698763999004478760690092754418154483058215634944280812472022666092023489005282146031847087142085010806240600363230655123649803659367719911025436891723882267848937961498996593691242533348506007462709217557230192669778564572625489026743594652710308580157812653659924599184035227584646382649056413415218831866374277924198053585634137160469908378228159588760336825695790095519460215465540983520166386298601651103267261061697250681720512565971345384682833690441363396644805354964966982657104605168665308793719515019631083059858190497373481333098041873095630140748527315352239703262998817534085864441418614173936856482229165337914151322032609589308470521487589181497444844663980553364431123326652666499018489469269651990660266711845907456655767687311807944721182928308528927405225133985888925300693053211168097325352490785500201796845039521801962309852949414748867513234691045649823399720325426546188904345103249083249857905561423395870530200284515758413308183577237470980064079486154607451652059784571829416902720646240399963724131150867743662677261009169684756296482004935572412966879463317529172228415491705084534637328904421448012336151489951524230913453188562307118752089568485427328377665999296378150739135351958964920253546910613039967454535782811902202449128566994384252504688733876391348241959950590700892335622311178754839461069233906427408888718088214109779811302490952132356839487166336344486004057089147460055971413203331107055101051958124788203043851128310835689896137351274673541074275362466449302767576181638801099689520047018867985805240338631808788260029146494975137210273501957269929024511905428562975184933585760350352713682436322538570012007396305042703228468178501098104953430515430977407717478849963993291693051291352808517767628589351447750005766030082676315609247865300580782184806614316279319323036346010925178225392980625511127209502007566372009915097003021597895956305655534158397183838600811343670338225044912588208704013847281184616266787755585650968791898121801141804862902900570079920704109163287922588056020461815703985094015062930291491547822638417076516169116154634640721417116003858308956134756432410712480766895155523121134410223234284291647394089191464172724208175345860846499531364749708760076049928050068786954018796181604315570217300380074646271248083353317993459689261411236345121636715658039826418483754830962937003295609708687481313277887477923107180511046392351389584806279540732979906181748124538288241890920233903697447780549513614013953076203599126523031572083085933065456217754492518929513476946892650384391808508017359992700333168154316388352788489789055208998068825614033061935567546696352627848826862208561554215605352323692560311113674708606677874725279274498076143808971308201913931724643263804559714091729254921379391695173580911920702992690645793105712834447802065756149136166841063018046982248747732828127775278154988739970673988394376135377379791864335513721528310374734273949388738207315503253586201338937276549733694150756631109408577862638986781978524998540578539936789343076089475098851545439952841997075320068675730917602833695962117964422875809241553269347319453579238508891787401489619848493635857733169701520673754202641989404540498447367640940249756613985148797716665016777453164314527813140276008170205936096274989845960235799346189685470167415620473033149462119143667297746350240638152763914665453580004852269372083043448913138258868102284792532570554268035309911181390300755626268436925854321140916177710686015826214970584056030772235238592199186445244462704686699213614591157623774361545253114736595311012741633165947830145608264069448130160713960851706192679988763201197175911347286370525179843451186695039366020803844375803039586224640624745639335508981812951198314347484440123431706989410745232717854974194591024886448635057135761863608622531305315157117150799895100585141413223286503585412518031065012806982608119878641406914446196740339647140101829256702932784468106626283041790743505008484104178249091837419058318595325024193641268545349640017552130912809130729365064781612887779290575542212175496402124530729264107947981840139268732772095093870301588578910861538885583705233752114047083569421246045930699978404660141037983212412360694323121842430185600829124457518699550377428311519938385388387622336695956790622979579768185044433303156630721284490926482336394683543174725602142676209432009137186879017936431001266661259180887630912581265040856959907596007769490658898806099769919958350593613182076053116862110166040899991016424851957351050160265613558268351561916474106638764530422636751687843901241535700699193655162176896959903040753584826094966526841251400275761554580054814622312887940406694548980048088143476545358308701576302913175275029253394741635205662578065476101776258897717836289529700396317502383191619230938615957092810428266352302267206134950166456751968491897359917046198102125800895735918199317466106263090392335085463521038101707513966904695540031186825969562620439398665871158720184804924605090787760729263887576622074682606620622745112975112815437745177937948805810824287436501950596700225253856081182045694541929098949525630166883280646166563242144756844672125500820463550869965452877877733625008744989629044804863107139200312774415884109392965766483258359540743011656766196297961578066168578307509959545274315055833372923932278673426341203576276051283802240826839257054021549376028644323435721425800487243379256790896274216273670701293969618658128704820894955646355526615561171408965944056545347287618886751748099823004628421446507011817934334063473061437959716136480018437324889830460477256223316173271812743916705884197707511379826611345707557010693591556624167740916658060126444270882586677237197223357234624668473664601783673986953710006152512739613181596868452489515723414185305236197264442399282384868799070830588579332716151302360429042481812801929541111813992072705547311273871951150112866992870087120624472301045661975025738170313426477725421379775783324027339938376049625570875789317665149671459799914729681478231241535254183119059574662872185423906891803068917818194379771041432374705027952219892169111455447982564840288896063867873980801805114386002021969677612575583429609170782075666007529636820498176398270415389003943356167411112312365381811232252427123446322717661493080333147707032499691079000927944007203173802020033327511188821215168893269242934308771969556067942822286830182169766731193578742552845827550226913692695107873688460167644411456727694683002888923693620579727651947850403862638710132177092376491911235792042810252101719708504302635561140649501607353831096296234473074218969459791599795661719168703976123813639856379651051964219675749132766723497412181478620547649396053035127702960573670838983071595523067407966714423907973136427556486344853598835232910250142059737614225473060843259707044323781922507882438680368860764107366214594325873040612502032611645185799266934391579404820203228742829356099504923142871504248876491332300997412621779270947691069961899512147402866904743081880828812902193508205705665932820159925881368813286116853377521522957873697343552139496655453958271094894284011145463404010159871432783335269214772071658541591695488254145714101183391304861584028181035534716112384475252906074148312901408644816107175877385213506169211263925455791734997766592494736270226197226780809738213977126721742401204723141197721466348176549360152155694052247155528139108086455192553495575402146512686417564406427405971967445653199302279202055919049561155403386049303957852232684905716433784194620209979929640703341905976515657067445038085610833326826744666066370217144872208482380494897401763595968250872670662071443221741011003310436330194357268589021131129235173375584660611046027950333072041981193768060808038478928844969318862190922823347807027439705915734409659993786068863366191662756781066123687308349646927074241207553336390185166782721176789454779762723189349603818699252062323260822033172042500240168135805884910414262792352793139091343658875776700559943058611723978889755147124834889442695679962855026660721393234125118650984078815754510685620551986234611154450626351576539460066268105295920987116815864182541251292968864914065294105175536371641404962741331413467813965420343108556952296250444304223976848478114019923146370623688026984493025532895377284272992285082954932726586575997526790247085288409214966058595612818797845259959314218357048176230197802357615286244139943016012850278292050001797943228414624756987640423730045560809233118759464782635442833625654826559498425485638000367775050735602696010747674308861470387023967538451253103543404247845140041728432076618341732283699761501401206411444355434557583265357431236264479782206516688612747951775868132802123604945485305235532277165133108165014629273324813457567913576916609913608279338480954784290770366859363953570221358541718113470446540355927885543050236071876051967443952405595792999597428355508148977446998942221669959395897716127200209813648236430645952986545913265532456221721820047242044555015001701904112612301396847974096052333991025829382251931827716469802518965553796633263727399944871523066221941677918564011159689408337751037211134628300399159580749173968349142658803244324082227449551082856847020099926821132060828721287457652238551731323170355131926426075297255153303093777147119681933289694284597250952630129897130773912210031623189253527390841090383703942189752207521771662139688182868802179949456368364610263345143335046673126781191100551405297063686587054647116729423436302850084250563410853458849068316321031189563620791540899088872989489580183159890239981691634075162736316075583639882819376561768815724819223453247899352242225361745782823263874654491166104541765663435102766573818558800067190470459665952354546034639056821903629789369794731859548020720387389917717014178430640433473835060765457044267514211198421404961621658704028833910649711273534566016205226226756227960709232382803911912727397289475741245465412275198033105577566066580575834529765687406908473003151429102769270873151803978749051310263743708377892451293959948450169393567002494736802399964019310365959463975307862417709085443775180010985114732629267293813040748074106607721588392961892995633495670227822303105464052833917448319611943415548023815425599388005559527187089292254034727628873239836913247699414996298650607707607181929662298475661984443964447286657690360202423697329402468205265144398178311127084399008944614677138418146096260171859667581774066529644389878050645454001001027011442851588975428176569811502883630381985176722524916822979586145649962915946414441323132094259485571582116926790954298686428243523954732214566131303666182696402395803254944909971714701634518117427273939886396577897640403389904420029095956243423233137279376572110260126879251413820451293630067947595063839335651233101004339725803358669915566930778441008737998896946993346132605476832761062682854005836581894715917563743281412548423633595597751740405386925082335202806748955322531743421827212574749019576956078387131020956618271629693482359982458642231482501962980452151367774717193676827134445698277109821825163298279452241285289343559132780120978941461895906345518830811181798495334696894970944959543889330517121014600384452741567308880307890422006270266906390063454692361062957947170064263642234809763110152371319717915320375056038946556415563495035542866795931091419872591020705376276968516052761769131316024159168762695695388784664142053253418469829679845486482847873230681811664999925717902705393713278252431870477515002574724374660168164357280406852727570769889240044501635057833648035729998340676824210337298286101871532406392117595452011944640956571631839161684682842267660818351571832317003508250703645761589815510887800341619159889237133050352741496757114635024612676165841113563780338811616146104636723299971266118932074050628203780567289653444007068123876813864538565416144787367068831398579253760089505547538579982755590494184780379251345661804024320634029348101667868687697804225881597680011662592810016903533800811548200359989036285209529210134727759542244185823399826061637379951703602866204534424684514759926436515242314618853590681304867237898462448800752276709575638718646406782951041190887269607996580189045138234154486327058344764674175608798709124177565832637940742789344781486865444689233750732097762808038073753930639969661634467738571571739402210574135697455429216602564369995889754185535117315399071634456259125845041864718843466832581372958145127753639657026496898660941929885257524967725327286867296151851037558993256411172516774045492025801206651166034044861216352292554939378241385709188077156936534943632184548157066565406561940400896399923232588739722055124275277159405404146088354745762956962810215045977054895806708482806730227346776340674524944060649188875603843770060316840296833466643761624266254633102895616034999874153489731436925514583915054906196727809914156716718582263135893431263140792176218865143210509747124389466391523094677021997634156788856078822808850467938686570181174488237044731693883070316854041383379704324633874337006954319325018990545713813146928680981114188891582217900353134559355340267549749606672923720213994800490291279526303741945129519400403204097251188250365406402013011617703829537262382384080727329266960306977977374628317750833018830669090811270552430826783501989048033821115349142135096469779578827695843448624040959863200272063292703326949400645208312299870204698315475970803718279165212550205173465392235348064377956194126957601160537052020052825468034775342384474530286781090274195963808342767058528362651106793748107734575571180133805283903875650570256402690472772541477956478486439759607121228989706779020881765605329122824100747752196673297420030414237068183806101864377042426746305609997309212422757136729999186591443862974227712403313176533742098341156567605485731668897358051317643789718341609648646845437421709874092106300494786367935269751465035149776031677000788581852665712252408103229899977370670567213402785598455524857028010281625279536724025023332267921706026316524499031244300477319311808061176755968568980659675319742979628389229213958084627623602806038578875735406983152903144771582010189491980154143649814293193496933085839899159572086874690212799956495350507153310335717200142123369003404040256759308161288708570376816946527618324587788851836552865639446898234222267749570160311618305554033078212274204162250239243874828214018292164470973111216702040357771897961871198619519504523256606215255435025565994779216461269293227380720809927200099510026422514347615977063854412734316869735067733448896348814243468662446578055771904229437238995529444801667730507498256400082123111603195397354218442964672909591311182327580626641342174545561256378241073145636409600545028807981604598736714277759796154265065072535359465015524659246800131203309296280379464766225230269768049729226279041231668430390380547323240905825392639527615347486237112133027905844708905348415877838524896513908017976296487954457955518767843367338067152126657870510495819703279797792510077623553235896682176953700774401426372647901559003111642541705174585600106503749424856021497789548519027228373916789592316052809427634222058522782549410145473283768552337062880372440024177902122763749632949227204576913846356315975718517900322920462184088041542058074958558693698988223442796570473772337644005118478067754319650199361865794360744078944600469800014849562746960017754578030330615614562645101163812014843219125221904962385594664106316409953981983064572409477337173299541694087421076248955957902145187438335802325247123647482356494339407046728541163738954323940618311758557778143092651443027835778325889816437900778621081674601927479367087532552488034664364951709850530226786009097863173745148597237393418912723146096478552167436278063139700642440452433670547246140854395198549572016092532884437786182046340386137345176605436926273370024165585126863754549036089656403547922128743856873881602772367889340427482856503567196488644293559241576941357524282814324873839961019761887332696634622364669706540127134325473522483105224953835357436917420585950858298579868600810123394239323252382852215164384678240941399991160196790925897516803849292945091615298712379752233867703796948736979101293214941084857694522763404861256460906528153994350763348601436215424937124588601364453519874836793310897247037064142049013746341802821235358066066109108888428907759154030696737684114352522412480895140083048598610822817630475039879716522151713658221513821327352452231532251478078389852911322099534198740928014159920415963379774427924565979669346077279687099382830530697526986903043012162393181398179206315235762145483053128237871799604764676386818143694878430077286517743110377909278335052436111855690593752026144341829631221420176652369514705823411395815235310203527015745339752124043875169437456159815183010063197575436403867872405056779401109531844135778901307482703957917640532603886418362699856799372779756106629799973876964652738154136487122199032072850499430420999971432277989736589296672159381938712476628537422902204030199419408165641313294841502394230161200973405287581184262919122421012748968717679053259878976683041099957194436304821118260132390448997602887154277980511587897332019626278982197221688071201369545949882589766979542718166051949513098396087349835241468684875504944046256961946989658189291162824165175563421377446203153202425030966312891312218951766927471723094364158258300596587963653139586858848914458859244923736824784700220481119164014166622014462064081642083506584349002502290802828671524293899121223732395033364550309900752823960926657790882703969653735125535729034103014623180633765361829349851773223425803154223359393226735329044610720071890457237967008984036678691345608800719332763039536756589033577055901134455701681254860937354425200522974079568365645443851393766191411671467549703781515950673570533359420725807793215742456095766436480928994396857237514062322009168359779204713660077120897869414968046221442906048477873957852871441940097105878556103107431737474187588672239770186399010557242368776936992625983679684226411175045092367336596205692982377109398996319244584092419402647118121470221794036964151008852046099053150601179598533151557568068948497650756763667818280956095799087540861674189686340118261530838069865652727331154625172801123677605564210248714171049141450217036650340644138425747187462344127912984520713557575284509213016886828542788578630632151177119442997697484695710815277851377108183470051211808046223863835489806755580931776775121556183213018912010687769540003228637560439734199041579215832869826407121959037762797759951365702817144732175331304752157075062737300894477847751036237129809408840459720658282432630398659228575545029010744765657905499015315217729836008350215565529813704710255178031265056901134027755965815760133430693509619687729697566073070089789704246230470273583913435549829007181646971171228974636694463141379713770874671211795432604557491885236948215939206466677203692100288862649977268797838092384909101070123090428351473158911272944344954648481392554682353013456458061864104674391633622325685159623974580537048226631103445709511531185598594620507391787976219285439770334805691201970010067407097503596462036925368187282815704247626053654790582187764177973090778685806070118976429470811189853422013318354766013980410085805683995774924138095288687988385613065250023287439257532870691759270583189187217317574161615616413387268173061613017152867738545756846197139019651153318279990363746010275920947574595934644535835783962557059888026724837684948569397666001360591217410234961344895274874129659636472664403521055246501010095558844403660195203092984827316557429045928535639750292481100869432855485796016041704881528643650707175930907725008302578652850954476082282153685179259278470546065306472443633635228855468606189994807477942402814923489454919890963404597335976743176223151955596839293838326282108183506006897444841871675516979043696845424974736638923519970059570713064538264885104847348039870937965938985938877776451668617611840287039512660501146441589738062366988435858662281178478516069071730685496159592654981080943046835079197129905159830417738993728470874319030342640852498599622788773700654406633284009130938487582588824469369370175835039815516452551332768657979693488605674168766568505232449573007423948169199777084244259999117672396137530210845074895184431798438614133038704823426034583127942014208102361010663295692877352646286159073439766827270721959864627277505144309628771754054324179049558014069648983939310703519209383036619261052637024020241773729018444667763195491583523012161420726552741815149492725973558778992719611195414202441979784219612128351449010565245336193645376625965854547344586571959896519018404555002830489012366144632943443171221283796004252270056262789302176614426467998908842719053228048664125981377534804276308304937847308725697460333535503832994877289902563217853758533324645974578929133563565614713782453824496510547116724521655854216865304400243525101126807348688210939149943166772357961414820502667315631718306021806443705680984303825485054301112195522459942067999301084236519396768025202478112213920706674385405243279582173621645112843120437615103433740130288514709389557259377012788856895693432445944186693446833622937391747033841280607404989201361346338344938499594720877351788650367956787902495374686986948664171970472579423062233108615636075414036485942201176730938691246780924430314620149664120537437602852741408112983125006664389076276786126696756416943292519554203849292669378462441095232726983827772687121338901621081202639486121384417347685895570517525198558379765870146784425852062936541895366085617939208046918215402902521428468960335119609906403633544452916552837767282119466670375867548500623937521698630685007267777001378547885593448856214758635671431936464041913791450759279048228861357321675196650820179282594840614480658504211399162325448332894998317940432759801000946236429453225349820778842216560303409119992490103749825154833022418015451446463670062828930955547354663006651178851522390844315042961251359557546347938460397294453471817512277862028184207442500288669841180723580455723292073769775931072232355994961760494862300520995900953793916239217699782842767333941687878423991635037645249007801390377561265336347990435765572291750269082211946721697288614320300129767947392585108491212403710235948641678182649958459653736375001519590651311312774336296069183759462189467660008630578788503738382254197884518608967181086173467792272331552648932451448643469271272012638073249525317844266370045101358599903638384348810568864797888785526176920762948220228699795866015980643866553944406455953221336717507368998633691406688944944809962139379361742677698040334808969460464352824281906288635389444030364333595952726767833321706080621296168877688033819316082183428543052998309329235105303927024712336648489120762159389774776830730087249556607914325051432138517067071442720185090149451043436500847657869356394006196905408774934239590046879238990323094259928996343972850477191219890744202679492526314224848740993415794733768131581626555998060067403055662777679708035422648847776301345783851697293796031047832849503389464265006399610858826373326513804993310078237588736441818321327025390232299251340109344547368867222270389325832267150509334213852884025350856106928863372298262055161330482678982531016683305469927396765746068392012163409246422281840599554584103089501405028138433294846093380549521615993627561245489088133337054996497241808740922046726584947604370078753671876280292631694557732145495992274210538588230711181994355483533765138100967212891259167106423795939133910108391394419077495943090040976244667244605374778781647155737364122122885482003082124001399661054486910535858884925581838876620479388350260338188040725096179796703812001923295800243081906962533815679798215414835517500615442586779805589993057879099284028330207486930390928152696162731994114486337863742939784373999633875843230553757587742290005872365799592556664244635519310479352924462844495613162841738992220952272431894192480593822158914044371611718367228676174755026914944672729540391124896255142848567384906205943513562450453090102673706253942900562921487400726219331724407798802106525628763152248047174864373420535568173390295709872808318714584384576202808265535931142079948736934366771040955988294727876449422450326829312849632436225677468232915146789224645886554299863020449928487660643359880182060244268183163657333359122311283663155927995142479680136907547804846439866801474911884911802537204520482738578627294384741335813295614765569802217811166010869749158887240145056994438964775499679690457577218726645290855731264267748695673414150853722230632506362616280071963693080468220223084009383419103409110788988832240180726529406191180479275835173472460256748193067706681189403114344161303289177291602886726356400945991736209479060082234961189869445423994354014540696178740076247842458683761292588803566866864538120308199293481280134231342713522106351648789614565512970991215773367111869156428598834328305765899005160306872839582167129460755126563575515854493439777875635847517404969153874787354451751860180299978567944882270798839385077996696218585087172356321746718716604702904595740782335509964735820911239058211079042502831310346840159275778233756590748080732742684274019691289587868264241490128830965300863178003202743809351732133215399567804868743868312009585974152582079900413752146303248447602996451911191438814331624225442693099371632004005757553616312301892127451445934292877349413941832737537106891430385778496525831219388353329267103257611989278866952622510858167970620619125495034474007349807613479949269730987353641805909282344983447220778480311277387607781889576685261114548660995989052267226045303816765642906361061730243519785139411432258372229999783343894284774459882902318024185172648634592703763309901043632288833335428384718635035804500821174806397674327886161753894735715092169641476415621886045080757116854024266761537620930532769132392074242630949863969590099905221090879887254119664891848279527128588357513076782782041287405525251699154395772024360901486908866922368633656173513538631239590870566696346490605639472117606791459781808310565254384639468885925311377636204493489878832001568168227628318666319663288029761439828628981369795740211482123433766783630480345840725951273658883033900621027989571394472931983829016920910641815064758323475925792140685901636397683663286413542656072224535582872033711444172534499604179110765413949917839142170217058301142937845560596050112428467556718380738845280198869245510557612440025424749878859808895067452466226900207568508154280288549361671032997446450256216545010481408617710339605056619953950837897095825878553650753698741114041022572264204532312009906652394692065286043772648772872395269229387617357283200229971299482945703626343015687365882183621333205039607004273078734699105723212940429001999296154905491048126152946879975985746573515395536505531083798271282512578494042122387199021958345783603912536443141380505617128213397138983854267898996219306891765334960173407196269954019072449289769966048604148918134232901822754819443937287999827630548095371101887624835484257620536002947034112481691062650961028209266055432681250405242043852952096582149476713540980655027816435680579887111865673568761441317472757118117339138278800739256116057959199414544034705000293577742021721464965605006234562421017418121563881014842087070917932942806508066639275191865025367059243389404243277795628903445505996794406280859418798974993275512939881747756053430171283949122697262410597322735292277357498377819367232581225019287531235781727034578255051864173799870882142988737312382314584876740918334457976229922220572986027359795919439744769127089089892711535811730254827471622982734928068171136394065241326961493253267795255485627247627884178705679012504050769922213075136858009948305125747260141866322037440243036991947322573788292887746446901814492723661098976879379051170702809239489340640877136380450288132152019059522344685425344735563798201774507101226816176849139428178648161496135171688996259334618666006047852425410460313410828174593636883214246864520438528705532227390084435113870206129971852562764797139103988597152209107647972741753748980689702156725150442803010513230464847393717435304776205960331799648407256957209316583143544411989147983236062273800150467297372146260026820474036766804638925116931049392367908905557003778500683754008859275933690006041569254798993744114887721806413710747745846521002696831078235660707107559742674929118848391423426954017241481275623216814455436567826375945821480532568604983573809015213075382632434216149168303586784747728503008505567487930683376464209439537266029617224560661130988987848933739362855377368616422872742441787286310327753014223242661299493121875305618684905297356214913599707934720321747711200173406265049760721963628629464459974754923053608206315367720986382359339379827425590364502858135660877105571755618977083938629965192190330921438183776707338802710299336659841719006851628053311166351290075719243004859639036140380349722718155322716277921217585427479774062149830058439902082015824026130110926585356027995692542193030419354827612859732517700389802444501475425486325981683402691926495358670910667129950572160552161912550373492605368493680230928017488595243011491378130976781441705219426771749316356595690604584396047286573503853098266317793191606212871031584920218456716099669657813462431334765479878962221539309250372803156690302247675742168802262315986761448635417258215869172045933929625539420663255299433696619899882860124189863324072868399460000736355827934965851760907965902260500293270534851704367360768567482499439046300620328387468678716983716106790244872006265359612725627251235180348409735829244729012151976314666056068562308441323784711678803020070104023767447067279137297192142517842307684083035536695068749399307184472799005897237432990984152875786460618373510756990000045568844297680479808490001996010536190749159794758207144644691495438199883361437676996372299066567435573928937212670313096888576545401748742292046551118833292964999867393238899546111823758708354276339734064289696456968049106355315017003839934453581402850583718594434628095747788137423860048999028117785281033464585510870485210672214171770153935655276696619938731802071199416856762652977808148255510441632714040953327101580186135620343284611938864944958819547684828506596496975205395142717963267939242762223040183771405823812278572500458288740578527950941572546795595200697813856830438070251787247388716852669309273295027645986295934904252809941905949389724844688844592650195592215900559268096610895885057887639863173816148537915457620899590054328068154060636282075629095041359064332882323891970817350577945234625937943697133964283151175303304572378708484919531893432974946062193922736553725032804809048597532706742573360182076776643327308978894525799663362225459987787923079429747883829621606262302166918087814021058530071051331803745893138624817121890332204491252515650509649478722662927592311758719166571209199546241481737818289194803311478470373586226405426902710394018646539304810291769355714652773948185939241331192933173259445830926017152155129720198527070189236669506994300626672305756460443640082474750849882322627191792699545416467063094568543042454273135800532272226463695590361908682820073717705693022695440003450890179434698525785076209687362775880003892505044003268855801326502483682372933715024901242686513816389315781275347510337853035418786005232476191402889253662885059252324377548511642279079766706066249183907786493850812261709196120120265000709519684856795656863409714210117061815988605114533346153156190345470715238249774264512937426067127610748733982637524197938539102639647072494699427784618283280652347747072058535457628231684629752837114733013999569027249718378553523324538755122311553338210372475628271717446039026740285284167229602997074552390855677602020445979108963999286389490910231304615685331591960604162807669720024371942859188101560310934801096488375349244764858950843978700438606702531570321371900184088981720627513700108706203660826326305102359274645560971750403884708393094210571977939645685212625567129348438889046304143072631284569706206055005903351001298262121493296931539514204755559216156713024187051602937904457751977485452888410097170310115667024383302847109960065315066918736430756206736764255417716379601411513579767341520932580180787122277842053427725935941711589855807515571924385046409021147188659914510577007814405518475338183743923370205064760832665379886224502237678903231446753087529754982073537986467449876730083880206083840668131685568108204226031863856300857439838275118464971283621489982126784452394016353358161537777386828714577156192826262370588998919989812635511071395952385669747143714378096124778626222260750568325070008857328553126356432842941494784532223914857401823206782703423731853889400112007650644380270806046914949470792433952657975037104785744233834578713706942693774771711910059643313484655205281158675835063394618431496934878865677460879670214925267524709127332554902855206351802678208169913275594495356566090904281553631367555829160408025662548287602463955133867885355038183787007702259447686146457787678889488087530300507254329044934001899975140527991988957213039561155046488266154180452142344115506124405425075859745435958056288660186200758731222796746900472511544931870269978753916416743954178875095694222810895026290547475080814730039192822633878998996578767352447017124128970942203833777274584791186861335352576166531424534321081225635771401193142348170963493076383930737876566198374260985728508376033141714896312704198232107211933193827889544569135186681153260653970674578667088204496967606026454446408938631292478334409173707528263608906290382752071212491151041173706782599060293150019259088845886792124441105025990347819889109212932285132636233735473160070215081369117283069922285703759399156959243502610031028143823246281066863998918685761560714504615150454655301269901976737690142129667963871262339374756426193735728490290374913534279109094623264775696475912413976407088026802500085006918218528117695212704972543434706969823651779977085503395895634043237977326815938515029699479675297439781839616776066742683840506019001647184459745583759387352290229790761543772525134190085455934360992704723940734770343465351402984920630005077756989360363430055773778789470083728360749461232684874950022174234845297503030977704809601802263228221096658135561411584999723961348019891652821362666478974353310942954627947947522907518030069220803263425206929461823670266225519919190935962225640655466719771293671823522730140950415231786730846216238039441342795899053675588238044355338667303786190048166806730729217442999486652431288703606741230677416588083006988516791309520586671129996524578768309137391994506869674839860016103904043070320564173748035412762414367003343901684109776038009527568090397984479371734175630303812524396581151476692326158428601672452103582232833945679807796053993972625199343996093725158350110051868518179371802121592628205050117491295132014319785938708327416120084498314809456540862250726758069786009227572396485133978407821755661073460075683167851460573400794648908435066444837575358199610741435050925449031125999039957646662578165832411628499037138450609958575805034024914958141066391189106761573439705066632999869737467236693639753122775435546616869868139955600173529767327114785830449888410186888661467845675715598723525079310975831211564204618106825248668663849574385162858840655242843647991239597206506551771207607813502829525222418964389762574133792745769742159943222808134129041392729123469546319141785242915190584433388466540656016740269472665759956026159679185596307092285905692015531763295292060597031286976956278394024780673571910116492394384848346342449345238058511950690538004226195461272139686059375298680672248074372864234968445805711823255000058869731383828876644034478384390265813617217508853892824219089892686574905136510894374301679745547829442885948649896198380825528328269891428979906605646114538854555211158064531656671982194240389663973206452942723860622367052207045271588605125267990492153093850733392615370787824987029816952082817292883326560276263214276645627150396257749886807250088569144260675731099680830245174316530217717079981137533388796476845396512981367402976808002339769523053063931137556741015852929902197015061353285707997921949190267780265443515231894163674521223275746232556859039990676201373148115119154331657480222647390587454393414470592259825186612428043429794641346263480464020546070839698455258867504502893166102316637210098474848981061441258557514416266715768593514273153479281958147617494241208248190221951646500291366312709908903632254249857149603690287473736657177724202582681891656635760609167198271890906308045955545909036823776423589688833932040343145892769183046765211942848831198197222638037936003215405273301259408495257002015147854908506851026664698198683560479170328451971076241543404800841518375807322567328734200585185737944546796013155567242587427977401927871725609212305837965809965347765644806063411515818955173427289361328273966352429382431238431349275663234003366733656681152267752218942893413933792667856852035700596028653809300811628760507400455704389157168566178494224420971785164992867810715714211924553208845285230237992298483321060073635487209035027828567718456953462909601638073453520877847784985602945505113644870912207636768384964852522373481198872532900126962121328020856064255378635996686997569254959115614154328291593721052394286499143566177166084978703788276176307975607704460668087375444336105228949149295851324468596283470617604029004724845645210233942370458066663183172014875081270564620320690253082677702670797925607996933265917747281389694908614345013819433528410071949027532530060934786134126228578882332888572090193677762385053040907653353647662558071064555141244164316300908281238646352578637834050292197463854098574558396839544909439240198179086018632120200111058913342720225512470067050980275179698806579795614887209824242507294768598685153313621414033961200994922561150249814014472690247476630937039667836750096175247960420257404869694177645825029404242586621357494428695927010200520816069203623426032074963427770090378283861479278229994114070070369024300535358514409689520563259553550492620099014105124393431000326049028243900506426899258493389998955837035272659252455179520585495853741399833270040461076166888099374236927611950681837864102389177528820338832968224909860017285559629483600323842171937361452514322149021135830068494568848288373093248776210684653781852259402591969950120401813897701572097574338656266021250420905537897827255946704805501322170882243598782344432421263198521275491579488293231141830084543862382875247478665129253625073948376154041692636275776573116191727522816752907757802337440098415998111616865070343057695941268872422738966359982291105009563007132575159161280272518172384938148316363758077612815404907732453312850607956809024599701001705307310082064948526594308210330764296444644481193214931652612307963644805313202329850615207228217170146656412803712745950241141532649028330710583587373419010483027443488869541432864065753198101173236434631419455991022858186521478955817661715129217784422828173373271093805742382613718111132101412817469480048949700763207043426544695470005131170721873632997566538106774725390381629219404218371293195596160135482800902010695426365193788409190687190885052180138548433274331816665571393810677927146425210950459298087718096170717738580085393718457841680809658611878579681923426958759749326498045922845116352434175988377024406781046822095905379073439685868870649691641694808011945221469585754773023997490441365760270279095565339809822520478715699811384678547013645291716240243891382968452224374241244640606315131218830843447007809001236743980334005107709846567541499797473032329993118050390662928777629765712302560173115963928395899162944371897325830908194268171603511828339985514409427559650843551030341167307986649119278769059629440882874876800612686085122143682968797099442542069093690262157000876893430700539330601164455790645017529757931323455944342951161698733606601564713313626613861171340340037445437447387832299319428762276522661519493846116564713553290346267540235910710678896758771863905215110976852470980438772771637230326186136988960182800408106757232890263295358844924893659529567098842949164434782976528459545614193182462412530095048828122896185332132191712167698975359894524290196441979455185318805275075906184161114380309732956842224671027390814552091113512041688929769872613302011974304887867786423280769967635789558682643825641124253570597694944536899302598374703535468231704015752605107590353602970653317399410349438570427132512365182420349981229228928654142263952047624222886377046525029258808154321943850782819175328930170498838613258640257571971136032899858172501827888543467680098055502903433836438326520234589748686876703843562616544783617274849017239913975052808679269332993430096710171180489651806985013272857439826013581485120562171115540028385578313273245990474918202548795337345437632404153114947427249508642502639993156068166374883428970012094013472554679843121132587463841091292686077648662351643676529746465169541415465437217668138431686068700680092962054155154006538010949611505188465295582861060365290344815047393949253706433431034794947719932208303626877355940216634362235282961665805192749985442639629428663955851422579598338074416032762554038088876099273531950877698522426312230584839262981707384848481327574558977093592539505828649168414340454583807421107338127422817369202660804475053644516868494092133883759439269651233727694238536351225021639032834536379205300304732462742120357777226471114125255657411263562331648846013269139786058869444071763975592631517986532176717767591557251160708918396799649841567909532032591184630402057527057473322397474970316148228432765130616555067988687078299362256767468521358194438330824576587935562846723666630107454029822606834652515224881563934885352489933741096240115740589711373044502677250502881779295989223647034407918309248981723054441308455849741860318795375965452405495858625630728934298439920432543130375964081911790670378234336555526159053471248053693330340173438807367595559013175981189223205663165703759970955707141354448210236279329106313395502100597626304399986734637943885785377079015833536762604630408592520615692024815747354056344635929225427930550237511360688619894088238871096422229967731121595446078943002521198554662419219751382680846299215653233510472961358328571434598241653751308312081806195582662913306991082231191608089059617595393453962673838820704937801318874791188636248373690883202169474492825951542465765339076172324361248086474970525360110642566953821411585530513105433845421948645529917077858399827500193184043648822223478936135577949468754872738198122890903763203787151754967060759916946975803008259576729799391463140333190096940864984239250398123627807152652964525802058183308297427391587619630451071051260663354241651028588067063839723237208896411806952706434477825110725816615305897215717261324553424511085277076094644601957797297272412605602943309651194721894269900376640219639224782607805812611990889636815049904175283753811160516473702373950246249279499708309322421759463009649450672345227548529992999464222775392953772190319770026448479380217877873851219620062712257384829201692518139761210306324124090720579485659347928985905098402843574596539643897258672563663192838927443989002343400478396324115780261615046205997102132648375720021484875883577160392686684484324966895552563745570466703315515595100363542837831362897831194881044663439509382121902200394889953994424223654697578437259997138393674599192884988177580956277893321577935556090819607071340160026363728074620792164934363932587521751756218559447345762889289676957381560327527795084330448850581597216487081851450762991655666405793363394460796305315153015907434888534485978346041330348048361397407686041424250533092776576085882234724145491803002087478300813323879842201126866457962375868024087423763478223438075737298996083563700825428806617559551678467508606601052421494474058955592845524499872376642758258507372204833285003013645409411134507728182465131863117461039097065925233722755569838466977711509341131557191645496523070015621002748008632185117303809923592058676205293810406717002983026063244252916931885428635259833478192954625349553648407662998071527981877196150970798350969941203516597603327228018861640777805551047126532092046623991772242224971156442820821613320154348044795289967892344519394049483407608404701198015908589754036999570413535828069633293052257331201585023822970998060170021103713174172243686939505025877020089840420277673430939986953463298094175577843291557057196425681919138487921929307191800608749612137759172795127889651882762868099639999954655950854244387538812404751468478560318502292148615455323228121891705728429112190097482282935513361061967538478193544381060947059900362547749264580590480108427388099365711003674926458595352405319662705522764514831828133183027821300801266550351676839579094541896977159100216516865158832565464009329791029439636714726603196496336492270719644094919017376550390751397186077768697677090502645628410764695492794278720607716622196742827639924050202301149463126732704264421179060807676232705670690614929274285857850046080163766414442596525994904884933512976125750860458306952683366189943546540817042610659146536401292758709384362629951136981207369903974584677861946923129295173453145230924817008408313702396066300740607408260055991138232671937586994733411606514812599568060768280266706017506597327606817621578230259400124723639909197229629612113938288333922757641407025705530748382973680966455456702234194258052670345396382615839308301478971523029997319838055193351570287675929589399701843930060610253591597044020269443179061571479588904894363262341010045352411903492423573284907643552145051429747287790238312386536480925364713020289074073875803264493499893857552123420857079807686118453163686873163505081547095833089825517105305784757335679319460769939823683684919820145656612715096584723208349230041548709233335292213733367417288335319179298576082886322139739046776271491042961634673968267332463051204269705198939508605546539571561347060918210797949802026507804209618409997484650154700186801072991222949697559539775975041351933424823265665158071877386660188710329217213939897193967609369825009346850100282360772042624192502578540257243905228895097191951007678095400592335495594031487420166431275388253834950782311199771212002700472668243512758403472817339043887864822482614414605715941996875506418780231897719265711579576758272959961183651162640105049663477991857531017478968288036025988774712105453561393011019424079553680423019617653366755386978388490557199575828164785177726898427344225728676885749989190290704181235201801860308956491383821943399283878728222928340869988952139205714944108239513611095307989168457182749121653798550536859581095012667612997226390266956359667674950686078320476579553301178607432819003888390901438229959735562653465441215883394928575842371250896130870858832546068589079947266829507483980061225924539513511455164238473699458458443936209451479306129170980173557484771797962562026743994720181637829668631027126541909741120040903364697035675313843045904963729698905126552285574247524841652516560255372184539660907495036067417826482186104792690947729146290358562571975592195236521875602137859446621529797698431516419784215800301345321924576217886469666624314392292978300611514149172628152487031353591671976639433303617860116178153429975834203407918788590829623980869981824878423124356980957585048390251563228715839307187334154569168755146717611383884723290223925923403306403554743484306920892126924621932184366658774640686054923561627797511029703027534410877178192455019156748261153768662748702373953970458026430319247745482827881232446571127128330146750769480244343150826836776520671818151189889918291781324698592013413322976329162388670317456986121941073133814524098979991126674694142299052272907487553600044995899310427085840571829292375128032984925585100722392133182194888234655373872514793762567758963297531389936618541911038998968295719923127040243468538099399530643256266582430991563497642932311679557648596832153219847795364347677760346353155480663290076852457962147857324153492533214759423921086571081888023685717157753800148153690330945035153811962427235021521819563163073727749998040022966643632030973060782945372407997265101792868075980381978668792730008714266390686981290646222844612086140288298213420112074095927478546373886199357819757095493703589825788489148352077271646201512109203966356467997615601137763818826358051774645549298834369691210243138639087043389291634479119454173447630081099828124999292172699851157642812112512922433926026120796112061518962787076821961745085588598503632116082197508331620069867142630275654357178262842391239922961396075771067198556784748011965320035381986639312556697740341982538779867417560667940230612219352624610070453381594116584739505532362921189681787646452766719238497780665411946969752864078306627364084040886744750371098475262362480397938928996937741466159091304119493164237023769771375412107055942338180341031293205548691816809502373957177110601719805067463697057530887773691290120642017675573785379974672896544045515399929790041996667356946447328327799291937200321277221126928536818840712447575299903679804770285650867156034790417814931845520197172150925645406081970928100581967295268847444066712877942859598779070546079363766175046834751496504379755003838095127895328180809413082639030718908841737310479395327689575756643279734586534473939195128247808961536364929934482821457424091736873212683158277922699868946090333047371538395414025841003885441514558752258936479421527816824425757448438628950756517399617368491081118719590241925794061616939226397549498104758139259979708322641039938117642295145789566245163838738493110464714357581426399148123222558799358276577276632454570234949193995813679378216919595868029755784750940319309911887461768321983524135611837719763999968695546285624743382325181477912582991283928053158186462412706125294008878036525047771499983485217730588106375432340512063284227242598901783648925260014819857045788815399030129659651272735203669791444930846323590237821919934843956368815708647212289829960659574285629445817875822995586125382823751458614275890217492242635826435797518328574263021279536378320107549586867993574045350633279849279998219290916292763377029048887488381161553679084922347202094652909096585858326230213823108932880167731035920216451957177213295114433245858995804013387369469851352891771274830350411371473478662162742600891983347157234116644875522579366929141862008148621667736248899258460773146524480146190052433514799506791003678670047310359841303568411955781783504284381131215323261024019062703712657580653329385314860534709273032108840299683470551378780782320110133198229789566079335998074554344504197843099837405990272963774117067132906483674529783671004333228766284960596322436795955611338790219031974623405791563664456700588955841896200597977950457360973676791730914579599362480410907593092254070490310663409820579987313743831328501816646148598386929657043239029437262908263175602000522930861311910884911157580939397017595776056172608810442654829601656382991945929684049706337612908519465983651697809497149931395787472880047989207461209423299929213033119071952468706817184944239839242567322272389810833472582108984780909458249033767823434272893359300890260747905193840328641687977297280024521710429353746017489160830432190382305679664905593865978661220932600939372487303200452302443605344133487656076743390402316550647003300205119269174635481381437957761979826925471284920766345628379064784206527676913176765805055861310925051860282761086977200667521400147435887385093901688113098893167727369514656114531842817549782963453210239757716652968107259342593864854312345102072405978180036138521876565483097796248726864090023111754286642598579002241401540094122043339733953248805734366517854700385156249238470341922047492692126173373245007059822384174791116138943071412946581808983709398713076738759810103720546046036488648404380956524234458849801567723859018391514236170107088357089312960823514813814107599806266588882988816153084592468363411311502052599353395290802522003430056494612273239351991700477982978650610547063732346122237619667886049274402072560402721728289858255087607274823626509814204864408153487133270850469711036359399045325714935334505037624402475709377566651151129397386356503196460860407214322349136676225273244011754025592041606932745975264050084170402267199361317367282221547459127444534067288935647018096469647063938399124516754701037896208973057969595497736815121277450054401031632812114478627276564347199943099060962729616795782333293235739256268718524888368621739155192701551496154878459156694218603777032708088941961834613683591881362487510433033615959539060027922571969263807375370639507022671856110193265782165404325988121812857115993171703953358967037865087777805004952695161499538317790707054120528926582933716578570213110732851238194174884819756789547832758107868985214113435657541473164601954550872831262998028470925583140376097081215167588179903939930015629770104275925477724544434240494621000373192573444783587660194613223963801704190524832581381391248469921259101618440550521993031823463992557175512000753909678883447980743182751744189639659936324614126340174761006462945761756971295572454530082235091361949851658937958243331786322792833009533201370025425393055876155059332828668773259034916940628464880253430553971864499645820372337347896404163256175664383559487764392350821144266921603199095925790725783688513630046885190751463508529196471806777416757158803630079989987818715380644705852235349074380453576322964818880725328220658160699215041220107553925174912056971343261001011822160629355995093185606083851818214734619326102446245028642856321536588840724350393547906231869125603882987294677390508254936192798818519584426216625115579226398370008265817108876386258404772416987074505953805350069176950840512100942238794098757524218946776656846143289505955699077566805720089812659923405594180627846000123606705858572027172795516968029064072138394220834555485128345860095130998972906886865257899735303933851927451015140859114865054398998195177070893124249421564213555587549639755986402285056732707377538138641071177259704547452196453331940044451239668951063321726172407198161418744523407586819277999952799259245204133083020667597719538149730583288864508792304154132090339696916462514983722922969127597552110864250044075429771904750614309988798393065741585292771820577030197274034185364237126148436630700238351366749684063199016367984793962237723969867499372174566630973622481837108074788294236395643077217344484474861486246616347517411813747206665599656225368284301533663854642467674568181916963759289041769345584155153202447604873297195740783955501134827889012127644142361479658327277156901566627835569528116425269579711441202917566931676695544554947545067807210516723789251163383339568949896545129733591823081994298055665057946547961908616145593961858275435978943990653804342368089827165067877203362453789135070526573681379600262728609471703009756774722038449743450174952913164046319463330315138172558211817940779982884000494250675445827338054336007565637357973022752325013843116828615142853714029717785691952666944389534798034112150157864619987848585172702678409291090444600885523259142703419379498471535275990920740383983937515333289002208682122428023926606782890660498245095508957789712103895495991407451477381522516864590374384438204195128277893195603233225863424932588292282725324204572093752608775019891100143584792577433838031316749449617171028592818060798713052172086854547954680730077123079918413634603879200128004471291249208866911469972212434314787663410342051245953336142340321609589883989974361878122383543665823771777568349755818955853108219700340942402222159388017030644745335379255947326552492481487407826554093054361083618019586570689523434698433623279463115205027572876124819377268077843504134246499036789188247805470365587572196271980211965154763384803339522394806379976782253292796938592432123779773176295616158124421939590944698864818798402461611214457091215517115515818421658589133564181830888831779148757777052654454209772597319509895491618127882936984020511621880939776504031070805665253187412948120583541677583208012093743404633675490946206130417484312191626786362098596970216443125298995262493185652571975432899131814537904305378696872269001951880028054022151371364811495506063025311048146741477897437893530007481291208569510114320162624829051004960764661338492039181515778673493901871091150162587678337271404461884667521467684869697751936428282200041203368530380917026553964836336063720777181913334164939637517579533277700083079008103325453347231243568901160536444690109082723601447671417746539227888004237514663281976267733849114925009450718005619811920670768357479035876415368721765953315427910292887285926036793024498234759534217846546448165300042164797605986232846966488683130231396854824395723275573663269186742896788097504796116321654151522039412944448712177862396672167627587938354531981520024118649281219376231007579535430055532034953489407914053220560846885439755883942924856828339332753846177526649161104135125598080050795043302937597826523916429892501274904293996619494925116258206703751650203210962143535751890037152422621248523187615996805790141141767157322472756248638375880434645492690292449653189551299336552643330856453062462518211551670399947311767102131650067039347959894255647184170499675824917471384411457231380890550497760542231240626960611966459005055740635766783673392753772644839188578852732100210765045899226272407016872244621180883582235943889090491897549715246960310495812597311684573502005544857121820350390563228957154034302525187826061960419382681327577716527068639901649421273564378148160785314780868052526610318767852252608594175593804575779260432308049326533958392459384544078054367774353930640030428280640031683494567795424713820829970154801767742470132223963582332247454420298542231354741658158637933271998637881250759785202843341888475648694200271269268201465930950761123061636844135577840737307985082083543136008668061812436885241321107393214696369939447462459153854022111381450840363713952572810104247780912017068066495475870545185654910068755504899552803979911055854519130864161073117822869160669399507263086414565751615136393766648571637710806737258720341137375035162251562005371672417170674940996020355534804316473179678888985371756281117929592996307409527694879641635649490148751842316127280111131916533379375026948076358554993482048522226530765689130919111765014967479138614390436056104390455720657713292686048905493281099727093001812816167477771351175042243429274133071095030291521130291039476054535517335691884771077677968225383921781806589330431971548180308427672343020297467331866082843170008668377211147835705878522331959700884717756897225421807599933280430793542668556853932486099788497123626995301737223411048939514019632895240431386955024291611444670990810093894136988625581953211089011967948418851458325334202577015276207345735554906339761494062117952378133301612264247068085751990342102670774585817846717355399656111091647369859880522951879014068217237112543566730774734650236218080381787545264230277153232396303087880356688819155330337301644302676011063691646348598399655175350818944015201119699414483097700847333580194551360358655873145160231360436055506201456939668606160963474164091912479016894737063512016268458774895786559623387140077672139025370008557910116680580535960437229337708853927238157748940271605574227624902187226528530579787684744167180680114834691901598494458202638807385232980351752691024530516161423230044992280662469053110950893167975213878932236681779308880223721695737295915215742532554101984765193571273130795635685600183177887560218179716498755133815975017321901918058095434601982439277177060443383383586086494470704805588567305855167139506059003033677176494850519883239484972087909494542194758698470129319340364465053288954555250710127193503630530570189709136439194795297065520820958012142269452181603072982693853310491094740775523265618880695835113104657535600921727415208582382000707254687533557395307016303007566641898518001498595337198667875305058694471679140063837563627013431185446280007805745270333400054006331450793170870937514120676969839174910534737851841481025779277566786355127131891360897586312641847483256879783883993602759813789424272144112910712126983663374374483802685425946341759968627235611837612429118116888949016292971116212758429237569809689701510190038192591417019112860844844433178639179616954070902423049724017836260484008149369359462398415619107186525300873519248029385707927543043256903499103808749414062632015007211710330606065945867097027322915746551179998720966492195834333292249533638355932920384368613957472517521615971172835018960924597409533215770326303477915159436820562620313472615427337754562167112954306950023316968997371353484975913782334265527347230510859294224104344620422304120062387344075490957450601824171497297745770775272677798982163499332638936698413492805598870051757273434668466393600715685115923748992501497343459912639691827437361527803359685684201876615744384019603916198566310434386713117696274886003087979703442672790950256279750533942030382889700328586757039666157865838080439039827068364785626605094012127545062250956886121191702505211827241563343928002985462503212539228754024761552692001755418938570495374184854697109257754624393459065951591925266824603004505725393325895965948563027444175791496725859906609488359825373902130969002445804492106470464756454319263871714218397950801832010530627275750334572310508875907909462157561574320244129975945412998326249329124835145810367872414417871843168503026851617558474271815745470665259834500195119107427020744978655476490223585658465115210988544513802358722484229779535738751925259424496086102479065427063680009972215826404644037997485876468310765541401605101521513062542543685806717575120106151942264225753446098931144454903709424967112049858176382360389448643119740983315697982613488113428442912711674947436438351570710635700451546843913056045641842842109432300269973870113993966952415204995602795877735006833290059792476141880614336513435036272748243942062487833678886703444411929773573552475061154242383227148336679962318708979051779787186747427221487890147436462335498629613611579361175857000102550309362321584396722445818602673625192097077916977631115547620229093592689632375744576823288417415617015431765435723558109095361768232326833896766929289087539113420261745272746200234225158171391393130419357839845334162672531748368121775210535518942832591204668397281047993246329253561267975479946388499083725813589048351733943602179014359098712607293510437346505005098710963321087090269932353321906065020770057593210264025090333565679791126288832376683325923751871331431734718241526376962000659532087538463856293684855530804743623197948773330757021601579707130492047773947063213223057723767009450155211103123682061473487665193454295679305733861410912900882750487213859796433430995242450634196827097845479581003716292099251211250069516607618965379765111014135133071598007583872293167646150498545640437005824748800568048122270175292404152185495569890690792282093957723363243773409531949215887214993268133825859242488445204451361343958251188169695382288136883710544070956744786567026662050801380863033683918140499170873862935840265532307397285451653352326377746220539273541654206839563605892712128009368075292806073357729499892028156120619724023443304015315714603382460466089429072688822495851037278187556740515037739245297237811757916647242728372937808599885926938575261062953270715440517098712554823652887344454564892015998305550554372293831801089056702614206514737880987870049014443099755379585241741511411143380606155665244878429910537272875901286573371207516794763167284866353126675135311323799342986437285096820051397473869218392295448396893759317812594433827823385770736945163461303773750774052513273304083837251791088203136366356262646907677580942087365285557258598869603833919551708281016500107150645334389341094443326134549423216308706095430523961096419036218624120620686345343224429617345868896080516139381143894560557694584101986029064740577119783389696601989126424508752751890142914745354142551901961167445223725905245931057709846207432601219288516013341045338393161840646741167019231968459381243267858110107315795939467547304484552559895920853648876428609506831386972014214564829606606961612060450534976209176797494587118954041867910897877081550002537715089201845720236438220019458346850038170750203258983110138278392492808859234496573122389806539630879091195194606181453877768013225242910580397253974203204739031091779971275324984355307450718635201551888636834434865181309872685142665581785588185664749265948566115049841204208028101280170621343614065422460383987219856533295605151489266424487253730954532137157402305256844797826496789347764972790261801551389662986507048210312241595935682674099937418474085800193733987877317733573665216374291627486177171088144116870893282770697470306625834836640763873979307862506678616909460815552683937556113787177498736568281528004947566386000611949580077551208447843919554013849631572914701409944786052498618686925099729309137093984966313145014076728284775507478243977908820795730444179827437502839282744448148274353589042018766165159769148858688355727251289067292287760017941269642238244508443704726367299605498923142576631786047296556876602807308688466926479207025151959829968809203439338026454994383001807277494589223912873341174635390599986438773022551606782783440840518808213620363740356097669555920492832414745685851579069351295682038928805377470926012784174934983526943553078871188515103485400047808929085315842172795468687991679932267117083308040488535228334620697053715449147596817023135383775036681246014068814602469109675758657962546059876923375520703993466776581660681360009424113220554411696164681866872419322682231220643271680290505055631788135113462213039171380918782227014553805352210182977134670038099617644378685836433528339562165162977355341001876418452263038318780210964481274559592112476641462653061565969452706884915089447022557935733892603347594269116963300321482464711566332428644579825848643984849839357279344630321092204704199331373806879886559343217274456873196472015351311409805347731435829883683107844308139296662765699205873600696336544304291969002876376242736584773963315517758101180910826265246239233155057769392408005238782037702345294284398192399010896728390441297289964137757397040758067261572302589370387019255618825124634365154381217530264933047355236012448791873325468462429847312533741216166983180538021206090580427987678071628043326928838508028135548754967910233322437209305154132410735124558475925010615871869467981026497625994206499405043488749315570297192125362610664980332205325941749362106450411562343900756509126990049232080509875456080452906876857837205263871238223235078297119633650343690651846751718489015615295072897354062164067613634846559497069149876781450615516279073514137657268275952997641575140915168139340682852837272044201499831798210105406866381775846813480043903640030602372334529191954128355090619853098694895376961202480246562359522622901815391434250890999622203933161832209587400379938344437765061385841271228836042253725589961243755000990837253930251519274805478077276191365845873737872949226547489677339108267703393203788049077346602707785598764765797882114414113931085245121526860216837629385840540823131073840662287836456799022396446139574400278488332959333536184650530240922720203101040016423846317780648986782148493032246824745541535181304783434153992395751067045299082048845274106198326695307591504692309443176951798460987941453415815646494004058750164568358878727249079146555675167872346434210262048095648343644433534050848546993508429164829740346975049546140876793437546198278543242498031295777709144089348515459545285996949257322385408737082716924671879058302240949572038978274398419173959023486613879959472540946049847665549069673230956046665075581008677721443852060043148426575589031119257996717355057989234272021869553065718356772684678982189376170747456376487765601989154406950740091578173661926481161346256947280711076661610063929024267295795353906915748548575524367308187566124089739961485276192172047525596686590231928254454892757928326304860160083872151933496585196352308498274104428432867884038000887232657908818959691176332587952164089421477397729081383268143004217778427770070276743289306883640423618447015847085488579301640053699982340640478258127101209764402289108245796518581732946706375147583800581828402248368333546120169939148902971860687894486520678557939586791727963216616601078365620638184665861591328350467588077038207890759379805820733096682432814828830892702626989645892021635878917288712486348449681129903668090569938356101316117674495275398819576752818478045722646360595352004594796013583046491809303802759615010749876558526022643158679761934892524201281607117953917420089302949397848741653418387577192427330720812323907797461726418915084600769520127871906990422317940695370379496549344969217923476165182752903240249304230507590754552335314627729485856373498344519676167320632809505943649860170312990481926103658339010719411855142737008200165532985214521011136004481606520183069891041767003589659744913290291537177675671471282674966043466315381885112425806304487741150067814131599830644764746748904951138744529108248451150085598236897371238069855988567653418947734944391640153846748209168093153697480277909371586101474714859766045077376179503652085228073064267424051905338725226502960473281772908500142055874253277554035061227216053017430235160215445062384217142678542367994199007986912551536040558866589607748616317325490000448224057620719423607007812933917831709026422904232850574820842109980905508017162030342033187031687643522062523027156296481990286926005322674552241278638913206428778399193220058104512532290064676346238595552152401295384723701153731108069861294053437799404323683338072518004645610807571505890784114902111464726399029850824875965265523218568140404645518337598368309529282965084389312706842878707557507449063424693278736431012950461897642618551436433162504904368649353602144336601938649021274385075597206631162421671297163557464574194144604930999379510542509012090363513945415635059412535555041174490649403156905272352368280173590281624257724208189142263648827389179914615747045983830835741034667595783255919974900692226299219376986149056027116892616806631777099451677287683644757573572525052779549688214983315862553980302624644943573043447967137233923742137286933189714644207346381639516362685863645771696771812156403179993807395466038126753055796029759058807024760112652425977768227472527381717091266965202266796504875097898203766796639354308333771689109525503934725759669980459424272673910859323759522937674136932099930457698718629078381439585221801428074739874307663815430353971376856205221539282281018013979300337873681475466139792323090117112324235807663446047484506734518883581683708418449449733171603542611894529469506042184336178041777228206936280510985308681653272783313851775977361915249695016286262398108142646972244409294329480862011585692867718547008956898784573822964919688644121301491288596826323083032211248821809018497101082726075272783876459987608411587489988437660170047344257896405149344284964252229746279948504586828484617998994404311190663310352241285677138620647342830772416148407904889012111513203343354313072443410266669421865471038952497578315160131648304788237482261213548300930165595513999904072876778669755687527297664396409811399766057133428917250232791137866303161661175514500014414848180721266246243253903306382298788994573152055991056996733673980292839686761128725699547725570427405548969785191876407934060137274607207669746320113900539802873275030281025849323415348618185282900536785763589186053432904788038976493469221824904197949423078694514294899419063256577216754892349433278914785544050417138327982650845417209447302424258348676454059773025377873818320516616085068140758332226534404747258165544420306215089926542412720882757534094055804880442067559039664302947652607407199530611758291942516792233752943767680529423760280718136783285824667204062595097123021823460858753277196509351456253791568930932626058497747230367396116560235620865645492355112770237308246228630030958047629746643150245921000181310820612711867239641749766376543296291369412889094814384248709138745712363556912585171076908774342296207969483462343154134034626372073613743766376485437641669851886809952825407511914710891151462290114019126308310416218684704006221407820725482284496023195878316251612313722379893169311405981647305701679884589624267310210431735354925259132734321381613913885794326276124204084882121023081612204508593404024441015843026412029394396661828320038589533267838932625528488294990959188439032968613400239874317818062209643978331865599247857319278828846544139699400497971726546512720117071345478348030210056341600777895288198451742459813409078860931290961409961511460874858753749111574418762823476566742608103867690204424847973985696165775648411835427608183526312220587451707172516045579903596720478325655107210338876781729919628137592785932946894670932016602349649109314870877627328683151896966379265873279256076806140905700417226472355113367083515316066782694965940712350263490744882213447217155872371238659941186280158951115645539412707033570326048950286833829806187172935894305359605933488432101874955197699479169122883714476461042117773021749077449725686663229153835790493256215849574799305501334778171873460461558390428283604800598665706561866486841071526256063785320995349021628835515491845737582706879631078606036957439311375516701647155139630663892673905581226358304762772775406917171436994610637098493462125278240816569029470044964485898929330636400899379914433628873819960600830372495470891205206158742680752925166145731310413567521075750336957673734240379204094255411297504332822150313754315609582879815015928106964894596056002404713374567226377398423250581895398885016665475636135301836751343203572890757403165156375774922774381003974481546663493920391231317194214840739966148967402903495199746219271930536951543031493321226296387990903238492550855296937403722424192236207173598865099167819128337903215603006225210271805283793980517413603688019387251563926455443560530028722162791670042908418897790731615529941240161274760811359095488655427697995446337023086195092084112165267101237475507787056035870670044566912184713124641067450084383127161143765248348462963608964967371232288888203944558463379329697833961846904617980205407721874174773897911400937272540493638202904638338727166831970158846019356619375379386292719371553793353100768725865637957544251498737489916749945850624053290774652120532800499527670643873848781604381212142619941774164832899110792702519255814410727166944460944977864949911939818329930824820362170480464312157284655560995301184061048346970441689748486941264362832346226365918563958423945112127481993091906182884633667155921284852901527696468897745581079127002318977210915452010094924267728914586017374237650099164552340443307378195693318983076679292004425196960320007087272980066549449577046557997874714590584270320832003126383706677798857768180729565062088658942598245723659439695693520156704401431437078390395806925386394797742412335720459446069099621002049236507267072896024353072603774764612312191055146391274064955636037827420762470296694121882597265794697648913002845855601126057059317733289868510818573024610560538463816823845477052035701105752563623504284418131855571883247238442225544730242867108767244243681681897537418461700801226093200212619148929078262623236316491078953990705658079443924691474689565608783900746840228613904532974169880937873304707712601149738676974082765562469603781606752470305091406104875464844143688135219403618990081011307318730668226941377209239576851845445689048754983067527513376486525637207234320819690658424752405181733319650503700800554739249558112852012699693752361721135440229512305176099226143517929632830671683514225400536513768151877849239842053271174980086894179142881983708061641010557627897308269062310283894881513696425384252768504441351804608780528875013540790153195505868335817994001210901535251847010823983152950435449110296018411279427895880044622793794484864552317097718740615739137234332105111289646424080314124346430816156294885254142768688557496772181341923908385320668825866661105500076689698503544555281635764893873364270130940912289708170190620477324454791822553526083588131590735203817630441093158506159034836778225811380418541823016354010026081510209070214648828693529889768128533971814118382240446823806738764474309051307249617055612986124359741635196018890758515918575154458202492728126513948535635409957437713353544560846893415589311908212289037488090035361266717399946494932843202877230011143153535425204070197195009637245734334599993290049458893680877748690017556455119486398172453127819646841628517157677281893497408060074488782322734090984943688801701351550355305466617376857023407425272900261968492411050150112877233939873966312056809191817527258827197237601607878804096286234398738217689587387096446479405117798914712465388130751853950435318829027577832279667398217308383555668697784948223033911808002857285671849706829696633412451432329267079123642244222489017305539467185453441707916738138879577153972514990628505713662174607176569501006961974049078402222273084870831262728088550804551456825860368684288228083842197507493301832962988131380826945209675212521008132043451529748653985950407868767513954451177130131868613702442832509084869105277488204995395343203078844521073356193200015060877896150966397062155824622149842697295976768509037526372787163814106968244543104097217648502194763838382360522102801415371677854282541430260237043591056875329033753782909744209610486392395807605473400063541277467711343529511624611559372931073766354680734507254312330296061492445314653012639967110577597309714935363156722125083176358428477971140162096688199171495786358863152102525802082386231632564302006901721607104841412439728002090459280245288213108931633348864142878565560147697389028030154502302071403733791626825784158514316670444678533720029960829181931903084652373695531432722863230847083631369985650273679463022707540755916172327062418752612356765489428597523320032619429285529907711885877701284669196678886171336194672974449559707035151214583769107758517290749361472160492694101874762387299460367062881625917435092215006878503820492236807719521896202474834152574023525080702195348544014735100060598126157162247276584803061973554615405588495677286337054154579565600531191182923963610814882575991946773779376667495425756882968604504368305278435495028281650625849708425621481046039006818617301796952172404227058563035230543044130770283642316321026809552939682049279810795567877919088309658408471279169268649074048163720398378933695226147371487620324128938399308697756049407757233008044784637134394409530652189569022535536023492765869738311407040505176086055291780216292227388915801554908927711342802650595269331797733715741900491514200943098026128130591537902906744473275692455413934366704320304762738702421499916692668705730047509018529586188666425726216711430096643679002630405464378907109668509752636107660086669875631596099797192920829540889454309307737334483241649945893683904748987163676190225779404546404888035566557165805435024062561889552744346035272688877305642358616441709539721605816548487046918356585756514087177072593336073784743782730670943690343699145478464870983723774552192766971892020209729064518674138536437856684093608479595642076508092544641450643822267259582093205008399447805030354821131054882725471272893202558896257916461791377928925199731876067949281410605776205167269702602138156640749660673817452108576900147151346490956020516416002864470356860702734651571139289694502059501725908153672434143287490471462758763246699326797162023729019789187933542980904560135386596139802986166001507465190026791840997920223401311640123939500879086066797755595008693158211899844283264273201273784757595447868891370862809477060897259967909368629281748463172556903904478578293112001076304344094794486817318987470209816251000146329080204570250903952948275644200755037749235194493921002013092941807502340383935088556682049986559762836895693192054811566959688624878767895768074183670259179763347083666851655086125962044797997294078042948893569119573357885210625674050905768692940750045178062913880353410576519130689113016485037584579487156271909697961670253327073535950314562868216357297327377008575713257719675209404988563974340584424211172777574364002629689261857295840193574322764705258091821824678981249680919376892299261101881506244128329953086340477638214398837840659667846821807633607208797771949690611038580405636019163878524758326403643602603541001858425709581504510594876076158318717249638961082766392371837980627433292161178300105521050480669772239657367857523698084327260416876345303547889034778383887838664929879610569391897532036564157944596933391724340901697962402110212392548668373612454863440125913823684664524622196123351781210089019761436966269983665993281710504174743748147902917918546449465125978385217704170577172428535676232599142252844839183533444212223129171046138431996367435446698507360676489746423498930806704947537928299452507342061807982037722237866048681752166585831516972513673334761011375722345109831402111905673447887605556051214461116021285680146394323834047634395000495544356259405123684896621508356750606796677558120398209991963916165792437656231678128195290276179080342284963328243074099925410796849599678123787219164559863813185447430221293202777390477213377056374058504672079947394265599091562659585724395524780052061242067054845139385643625991252690450530834914142501250496331334313658777742689645020127767418505782358319819781564105754302532874643664910912949072255819185608819647744582275505388667275204118187105950999280716474995422697727617910076792256764240485965485983631232824551317904539909857690563358076740652283163162035050208079152645372103937448448117229110978821674249240956766004566757146974567821106778504124854372847566488106556470702001968492635562521795126259342701506814280684940418977946973123714501576971145516730014325724093812935653024266301351283991857914550270238850507747462108985775201781493275018829811096808263757993401293266427716755035459309161060445657265518834872768669295554632320259443004949358187335555315206302762465961247301385638806113781963754205695458022176710260024996992029669299698907756772160327285801148114535992867631568297853942612315518698116140055820170995125872812306528022472619285032241688974642212133214469615357936422335366614124952702541626101806421348341274119605551243015967097286518071254696170051319793997409137374385462698224519887547849183780588650414566890946523692575558009251662567382308456857287760661720242194237718780273165865275234560246256482775314921913529967612556435122445290729977875669456873957084355666057475583686095462153860881418415732774945019967991639355693448363435692003272093770821132261542173828099524938753767167420642769911103806240910892992363525552852473117222562488264544787394477611714775035760310632778013928319137677167585957753948140851445493316420475647520662871109626135415483479435331933051718744789279298117308765161514759459131909968027505014400594860489726442770555020806127835643191452118347284169313861218397916089556405301162837649283846509068749396566486894360513459978009046689427080618644323443104187084887503622704291259506905266721438457285380303690472907660165938824944991005200075548053693297854101281941865525540993511130998093659844769044187839745878888614560965130967024931531998410556341699822376461648996985459958782331141190345205102863155033346964460041980316372521700800374129789034983112525125843464494057090980790837297300075970599827072935014420208529665928420035188781425406052786017981162662025996856253630629140995729529969700918141456768211033875786936650784225194305649441005889389957759539528867317434559603764515525786466963554052939298353192025589676400283678688979869906640119100206343018907777672291679997450318349675293787333890984230280718758015132633110433462650026647385299283590026541736130440817393013292149274745947770989408739603651609290227390294371560947304964013576609180201546975430066944783904560487957227339392117033012141892139246210203405263223376283721044226861964432680991110182356615838959114418699417585847829844042838073281744065134049793169413336485916890424207683168304946467770893065595403892832294849734620760550031912519204395864322992016132109630496517870507739634048806799907091563901344803767767588678129698586077246345995540728683378596368809380884526481510147753116526697715169287877641556561293825142276346001423627012573522077609324673752688672586755277780541882861757112087393273670700092628017727651560570292788519342748960372032688254603068706612483246600241026139036778313438053635873887220133453440053742271300171576275553549483892950680397671594269860603705444132312581802440091332882222716179378263898319554381146434337423657208706874772543021783382661017167447866009720302522216345799721168488590335964548039184493056886663024901570708838968505324095430746043973794689223438638888487902586369602446097684537079655601477292837410338720893824380178353249291947702518244703853386795610654523622125244676526925729292175334017408219553877456314558755892207916607113618994407478892683960264986432631367817736993587873098954527101943984735789993348702578588845601309499774158284474827222944810631988665258087145020089102949507531863768665846345963493714894558598950101645082772018042120585387579477170260636624816830845893176190604861078415503749997802029998092445303726283270947902673911310534302191164656624239195735756896906502978324436254586321432702387242109150583589231452934052754406585323684668150013655958929586355773053483871985843564920976856969891999751648184299520514577198002638997331309861864042008125005267088013125432334447517544209944392731208191752049622983198806101841026596842566610875590598476174881099049876643192573689505971324372224347801188023203506466912127251812513858337963532942681503943305961576792557921635103175450884969383448834229208836897011364073405084014253911608562756770797716668839347136237608886047063914807306584485713965716374118899686130398201930635869082547023071805861655960235029773189148736515434283721137303637861745379530508816887007115897760326607666630878611876614142218478483852049115876204722470084152793971197184089544884814560326216335975042615611129226213738090097858557015952544341742692600888469712517590446945409142281977813835977522949884933441162360566813693351689483449449283675750676211668152942026701623832442045702350943892561262048345904279331074923715028712013069983144463059951184822063553543527501371557987506635257248291439162086389730332415505405959378863958840100035593269080367686594274487593737020458363863567068854595374599599118176276760229784410791689707028606673176869729183827036466660601649058158744885656312386644137238565381400314666262990585499229674339049255931299694004655890701284975693716773226516784116672823851350375019220115672277636203138098887630615465923073280781940230948826315335114797379435667861471998246270464153752825714874730756587713280237319417474183681504933932598964347502006847420731414334790196832596702727014600388859266882582281730768185955729976767459769764141154531641225438569189914956631653404919822434554599631213531454796718116529576081854134118651257765257432866910504687136618178082653302405122005800809396697518980000785128831352817362461145067388020457138158287510493287282654718816859340455004773837726031294736817700854719987165936490841200247772351557525154498998077776510633635879235795150766004553291077783797689211759438512162799714515613644409232540450707906005559148318176188994594599033813122670844616592162559812568538373777282040070208695251817084246375128778692718261854144908922332263903536303256204157175664013133902466226357449384278428670538853019822476486944284484870325270146148508936292351972765537035495254513145292845642763523917782336114585008908642697555707438526073014998260470515599751190947516239375174301439023409591426452707735910822896707475243232517856348017334920994856619552239101095828410195876513406294083324459717821229068501989372392029510016915493347805631219376496093305317029647028120092573344701851323489982677569876565232139515888369903646224838395750426396276803578306807747790431607059783394986660650139529020388346237206455003830214371400320711511287292345457368403524414659017391508470915584613817874652062497427617366964056323847326533298470231806783477362021180131486481877895904077848871582885169598844205733600919724069140879972533545198106739638795646087992883004365853820483355701781303043699940286083469028737265778533177430903431740929218305899659699522606697430976611854556092633171709958771948828742069341482906782540056112484474810102406722793593145197531152264820676390214600167540488844124956184470491583309836729863355880912550430356148828326861364138086735360681762150673351551327892999039595043679804225595890558369173884396683421081859351447698291320454461361421096974880573288980157608269351485838621761171264480999077956921525792060295726647303901127759935821780609764743631911955053624830303435632146099315949003922449674090848060921528121051279652156507737238424114553777164840780962864184400760859283622612735193835290673860305627908543556721836833659701902601107201894495157356217918647502299319590132441286653909764141489710584037766784839980003379965912718232003338385980338318341524334745963312120307396850622283203234310321287930959119213117234241807801521241583843519736311376744638697361084241047006397592020783326852781468877637890108726207610061870847810358591957767791343888629783665462614792373021541157872579254923868330504569325795740939460495263899254324353771192126285406201668937250005357388923206785459741336190399104348811924516496148665531969353204963985436922598290212413027586445374860309795050146404122992977346833066713708715820884824035361429483033858086300097918178418734164529976051565926536524740446135984247578168209244121760095881773871659320553981243721340542809198499285821673322483229669650368374008831279563296919593643510002999526887391000332064055801154324016724748998539532474192695293005359997025151610194393860646526943338775041898705630429482352580147454631998581136124451221920281775000142996048336036893580947510322011968947449162366714099824985681352882318864429870773402963012469806861312038768298691716737309054914782979059773487604838548921897731312865473190451952641959053363110682728304323819075852975919020274541109267122974808276118885584807849873106612077006943945898747096336338771168054563392349818183228833704966555512604162463442166027316812989256071537696358168323878094878336754408591249918081868150019864502900617346119726180665468758970240549019158203095308711805701018761294784929211219208910734100538743432160342250164618023479061069622538947813973640862669134924775841669754652493449898576377016318180457324669527949908740066737196643002487849948755477504166193374717563454809475456766735258742352492669311341336766611166161681375212395397773173348337527368847665658241956654319508837207455496621262604128668366953659140968283111071044817397636408321240281609545561131623710041637769523986523540950787870197403580047158090437130010841636363194032898894082064691358331212305991660367337704895395412741769677483470299304349783062789602730905552391186042516091338752888763585655261945032323582235750027592179031752588665972987226047060781040696092718173074954759057473559780112509753690247512285742886524308250116619611808406008073907960704446622961565270146927724286447502350369104464407182910305408662409934380835901026130710751787322668585240941011724462679232769652548447232680970060409098430808190411444679417181126354026869976812822359288981746181122056425421823093475421659033549509371035508660834617816416764931386920972334081281063084980154171310059181385503982486909227341164113563521997089881658378640196380990842528146683832918017847542164946309196181517476512414073577830848447853177525026840447400874581876225496782603160566086490457507460342495831405255726454810909106046584149591721933109784114168628676013605546365166316382713080174510008476870987555616261184126687096715332144387354745225575000179413607683780159436677694638802066172560620172499172875841223605788066582341666006891520507289775942075432256639077445694490909263843166315203046499125310314737027844492857990041699719895899686392861408303330404966392424522949429117102718415358669720783452895898089391409706875807889149913496399292401860016537326370749335202635801639670823168285395406844822928278538668114003775834406250722498246837580603343529214644744717207581322564203123621393905619908108341058561741789695226736860734739982157101247718795485170254741967610616591854925602546160651298197663360442479186685381126684224258944375064057150040561859542241287420466726738073858502634934579566228118350030360339028044473202672377650996892309959399111206171957206963019235787264731655477009748462253218322491485493502592397539112237843046146782100143491675314595811050465057076986387901438728030549385708532940676988522898981526705913014727404405566451107663096227137868169817548057427026180406243236616950015734281742069734816107381121241858128207361684064117456266982471941621570550764543217395210311848630300322646672808334079679116927201165165021636206629738307741023707643964407302774482538278345796008965114368340765111612143380755409898935969628572458427158004514289768942947515631546314908764378744402689629757399259335970016511493800736239070054120010451327998930234746265863531377268453082922812978518242698301557433959084994787359496086957076852013806236642750612780125647371102755675724218933166346534103704118507257375520493287397510868976199560950107822296602835364109371778044245840374062520709707162388533850162470828327978599881010083567912669797408432639106388342275676808799082129260398355663473034560249218116700684211030090896253100603463231368718237320131265872845988833143048690199342467719635904220242883674962570572909477270625573570038361831017051034780265876737547607370375471803943490013523058416369651093411897840231781927451453457263922622387056030203350227747573700587175375617269961886727868762198014567365445319250084936618506978298874325696151874274837131756295350284561410481892290007262674144600906453959526302345128894140915953591038733828539803495788479590224074541202176546846580924376515113558496047323375112390327187162943360380756295998808627376805866181820897964202833300245160516753658622512899361169232194265704842998012569878807508487895914977445258693544801846024560758738399089112508779241450246399598436847787763067388452278855593008424070448429100242357181648532918814099882477920873929331419882682147323783503779295062176939083945433185215009637229173044334803203729840691241985149398860538572251282142233587877000884331540737359127091435182382355558325224756653840799795460104132653861292132293236744752575150173382630993567191339628779929228795570767460463400416145380372684903578011349653932389934528191496117384548459159762969227366532129798664857100548645154527133174894305682831457411293897245050697467088379277681855382487729603252646342106885743982742042835353139690982945856123220465493172816224903180750531079856427870911225883349549127380684422525240051366797450440968579425827396542727013654885583383204151732244355154632206212087874733843656239347787761814447653485211364247105266508355247932290326137651571442003125999159614025047913186821614385659352775546998853864562702522849494165034891888479255944196765443023011987815053380367261431960313536102693779142253461633677922800782911305322562989582033039625994870041536515727535772518547321076481288028059785109041664325041563798114109239660645768516529653796873295010185628290523758900301225123042226390610947367758480634807538521861646864314879661888713531733552986851148199792647738671402527718238153514435954627242900643456050967411492766112937431310613595659894698002126992035749056527889151352229898412007171790168595230138096962232598428337183167053341307627101974697491836488546018168557999533883603011720910026338156227194272074176158002469576302034284295535270493261845972841831011136479272937641316017493689783937554764363514110625597747694098328499926767779783374026011942425583788278423295426420787794712624487684853483843646844767209765047232985746128720718608573139022371373955469371480412056761701313303507537995202734805320596866357843613365301832842356638348987678139375547612369235944033182318854127994537000241124878684978441298505166234452842404467868324918630744764554798771621141459490216843385008702195246979454379533140866325062971921827826804225299055160492894687196175695265918618870458340950076769481451665418931876546080176246734537340818270589409072142732531974315918174219118086155609760702526240768511702415285828114376835837822475373996953076459620289434566570284740293547727138536894229906449122831012275802639286349154058514071938621761501433607146553478779091197312278150972235735140825057976294268372656641475541913213829757553221327489035544289137390735529958230232871489707273741426357159692947736000231398026290990325457343100275722832165668073488079869234189706603747231153933749432677340636197453999979437749714806592632894819152312577021561503015600791154541108034500050114873263094245934929777440033641508126433402251786766528436399897174522902361258878567568137046942372199496532786425373725465222059730999340102107878328552044964055375602527651906494715369888620475607599660096168339572563987420472539768598016860493075076524222080682686168144874779868748185946074285968257811716963435333155934099237250769129222879229357829416523922365739223242146183410516542188378766252513078263423724204164102875792330524183734797041907336317242364355385610341451675288921944436042297605460156659490575826443492726535493054312003429736059557258007414667408003919393956368280371205843259299680130466166991173248412677123126356970847108984046170467471465876989045667375626712648808750999969455040535793435378822033543826407574677714310319120645294187166191409052372620286550534953129318026715250216236548630781883916321745833755221701607860560803199830371179492565087773558717275526923466622583685651990607708186538756227118547343836187617294909277770746519634129275425147340127518138962620526780645091231604238555807196140925258430118366309258147322948190037858688013881233732102124490543446083982672137734616785726347022684522429383541487893516980136223343409629788324751437853142257120843745987172221097342981350980368146846880640937010843362472442202190501529360247525969520765071624128010549206815079617478117567213381083716146225632198093746784803828093690759027007739785248406904127249207046756833374158261850440028864724902436148615162446126230163948886247978750195500899453717772495659588545789897673436923604266140101833792035858258606755812139398410332694932728113493497296520801249710856473305094252682547603054739648029839254797165785007579509587274380810769895267582500769523237501908954449024349830324853462005535976942024887848854146820118566208324167581087763302621364996870850664122958090516369668051263572475845268732280646241748024781060369270827441829727106162683853857373429975469231093212043473858258321574494893711931256481111738499362595142709881903470399042814532599165597240745568018583856763714309083919841548064133569164614659583569774404058699048062161061547179080876550073726596788328716919677737673282209559844984331959749326445141121134144499073306593844383293667941516613547395412604540671430923557489084728958387284931267059255597137175347507789873248061935816662801349252496528228101373565261316857948444608372202737675569571305200130134953386442825782292198562836948358315781875503852446565491598678044660517245585604774513727316465469508178067374165237628413386541050648271294700925743839948059347436009814390242809418989456795250695772939003173499818942871934616316160676999925931882942046560493012947013694348855771760433115069124597580454934092842856139339324377903212525371394758479749207461160672753079545095341226948828620020198119273156477763708973122733750509963072991631883844664766925007272567169083694805594344815067683897859804174280993305161078394585537276028357818317302543187755497270056020210002672177238369573227024112403546295230448013346977371490379752841905009256016870487219556515606782362324019862964072116132711482670970374310458620360921413732761943776587300096847887117345705854322661586077802774017413947444548723122181019922274325021542726557431866218648940933285607367883431288755295934655632210335265884858589427801503008335265072146540894434409729663477109447190402803399890901512050155660117451533909521409645985603426744574506144470948352382137091837086033334719247433835552339835881041186633734313482624749109669755533965699788202977026945897885475593295976918246386739772803240426496861872606815403258940566202072119480812096478465064352151871734672916507568117486056645858310721104490773974714970598223890099994510750387816553127611094086236771081186174460876243377053225079443207657622560065724072512394232124421279368441434203960008597092489167165623675364335198851132705604869970968687697819138462516925000304724595790373589524558091331069051878381376860597982388368236671567452877445329463107834770106657642086593036213806285739382177818783219999042944787055080180461499446074962160992396871114737236648620987131527704346196766803776197055915086136433137177930899450886933704810456515180426327625083496532529280135031704956802015077330537720454182741997387226816171475788189635107295141126220470699933389262753059949684762917902865372590519075846722431379110587375934313111747767433232149532855401275996071086674868038375948672053034327451980341957848737579417519984873953671576848503549499373368778951986686881053924570715370928482743152787620388524997638944529672651901735488934494219870881007724269407739596083612373276900470426320495408682302787625632820457495163074016807174248076197763218577791213572346285361055417116296858353249695052597208457062352626719628664662580027482042968277253780487856702908917343439330431720278811969421413818848069300275481807893594513451240019654801235712917233582803430494099817954284988774075266453432562967765544272212150761683560757564303916117274543448938978620791881067289068127646513988881757273129416147389467928408466612785301254761289531273108585443881262996824587385459850011439899802782287224118501462278939524721136082262867708671044505258010952019745318088281780703962946568803603099700385114815559315783008606389650485253298987616010840376131044266617805586635041453642737497782583079938737966360055410350991945035912722380206744047892289582420381904722321647217585405278010256749464322838357345067466662164399957675310132621082031502560303736482682435218781533913036740045688007318197032045775824679494879123712257715159393710519484277296214377033216568990873120534724649360768547231459148857903894445911273474295666206475057327276399775205943204607444931989540480891739940925746302463521734999137832875435564045067599140880464879519533125028572033376722946580962272474188834566831173544224640528770349916699302875561170156034245804684209080290755817291344079604943697831896990952698693526127653555009697812604496163829785487236428480935195504571219299125604191905371202580679165927535021598859147300292483907037663618478863526483234517965857318367041822432971812180214676366733843557818233972629925574322169827834321542387780181985997694358031645151410914242787527711195822258683628621996200919381957456038380808216592269635187302809378104260337630407082429987945482432329142035359802071025720195587243454907516942576230106342188484875453790612113195030494599428430041217630640854207162742633257304991624236260965717721875487404763845063880518707252322634748197128418836487977179775516855245810595181164749335693485969856010982529064853399410124957127252124548758800401812633065153920546540686510790566844393666924502141038700364617939828728197865312777748908650964174082905448189202950557630634980902687558498058026115298368425392888011141437327376255473782541793946240638095508998076383986495394155042448293594910476764601834956056380337530191698401717380896341936415545433313663173571424993250683555390562182982225220018557735655289164928525874051128955885150390018419382596849427738444095478292301755558586974798578158384095501691441667688936149745799225038557484860393057378889858805687142872682398844114867315762799939871509928450613648213951669441614701343578454950152192140181153820655617308801757659534404897822096168292861033617038419741413085398275788756331884892704944761647305196316838270742186514954790276256167149274327656219513400165368669723659697975830369821408530239003172913617061397658012522015921604208421076912898921138623962876435214115004561760328699337796657819325446803252137737475983689123563960637445821017988660989842804804050357419420251899965974797561586575151177549052333206445613016228766125750491669321310228686673428862214820486727016366410483158652770644616549476793439400190453032496398598545224957287137437236598258797982837525831076253284839424011246733198439476405084482051436217943990918970982612878969340150217751606892524700941354502622343004047591449638943041301089459307190986526107065347442102298263860638895983233809880924163108690114958682960660168851937628037383983771711832845651812862121724445972509080414727336993328304093017986431938537035086663539870954931180023808909094086326202698669394149696989992711160768166824845334015660139154905487906924460471691015914040332932800064995807914935506206501778740356799053419463017747160035162023667181917235539997579115235711415692840105605560221735456887546163259125654884116258681947728097749798964557998725744805098794300475885314927645985460909441924983209858000490368609812714582416783139998327032868149732827206134580843686128888393310484178401248889559955672112082164701114768051690006117394117487227579396602353292265778790865948147701572871034381292324032901705337906902847466980341059341017074651842596699611464049975702971213953671184333603259520568923205675372821650598821285708220541950597069382551005135593859987922998649991703427967037763028029246881418745602967474332370619829310825327165529370779928869893054195640774136958085421829460726532234908097964066378731953969492250032956059519772348320799329228368044050939607429139718431992036541038253600231359472198514814676261448330812894713360540333033743808914906071523445395235650122475451185272445517582088829740297604364651925477233713994815130041679683581920854946829924737128561789083763737495834759134041353653402774237416405745551992084845847065852998589448891923031625670102823844654123909831748232426836863829492562685682938230042520865006665594852193072279764168624492291119664737309225061586629844256345298712560103068331331607906567609248610446069880909478221244574229699454750785135920471287798867719403214234297561036423688459874785150354281340287322142658410523038663217993665361601944221069717182510516248960579515294550300978187245632864791083189297918967311422363449110308821415886858106572051003025153834247102819802878346247306538469650271688401956389597637919031588842189109998507981578628580573314670187264157828495384790554128514351677573910064500731885735053817361403953635748669454593800629474061298386053475629148419918421185658183078022956173095834419853000951385066452213929774207691791420605511600538613652131064071971882990496848416545494155532935970896014293291853879312885539747792030931113944472487107230938740630458437262300995328594680647640094950943648688025212116252274685393505128669358118443371854927130666958910274344576395009621684499796686412575218632637730128150688393826866632640711076231385705955857991609494993332950548034238217283928479196324077805495549997152373303785417312232949974160176918677625232360774137040477338028455475256936964307970696877841180511987259942792301946688900517014716662556853517539846525585680262175358011543247412313147200588001070693110702078392254003552024009325304091092508604907357783828950346195417090149254394563162309251012552670583475817785167942979259616424229496029569649762758375054350919376349446670844425583339988379846721968148019245386472712235211470134777317876057038506228806721961237230707621038538640568678046451757607279650605480527735280572899490516438494108563200815243358465150054821193163479147037614939416798434225418449352469506746878124477428692655217566850318672149868093319408446909598430307050165163261950159088161422984505181303931445391958326274137245802081375517110599466993368701111463148344675231073909391212411286785104609666287231491650490126870943449583759546065471975212310282253698810287719172308964372659224958125864196149030080725035509138195801415642417611323618685895866603037209673025225699857896414697698418576081716879525315527952584290377521875009026905507152398838791062013152458313343833157839400955399799423543698411209225315495812770704444204264175811611917171121709341217784609049508853729748843613119000409624413564758074620778921919738629531675222376370190445817533097306694004264077342300723274655700024420575109996668079212630561293180752441423568579386016485040424370501444413915496008223026871509075710055899276701799452608710058721477452980182211078922256981681733271438683382471175452101061135349118861212323788496977196755103564604880220577306885924281971451539330397497176755694572430973290993745222003311196732756927677140563376353100540074175783065958095137253314098428429276586660579610210549004088558100166026452411981402500079905924528057640602543284834581519457918439206297957409799188566099223203803618958517210819036034299316361264668322394630736901814864833307509205021173998149709753343387784304858022751856646971498547404214885345529847118759552526132355641899522197202634524062701493866560962518252007752525068079119633037527344727275391250487495603133770774407999472836438182246442346837838082608358653391529506882248272333460125095900410157444388576870540698216204437111068100319756706877189277988748005353739741915964728404204508123855325034834175008048775009199206000117365725998442315726463985687435762897096765644067498937223068350753998404767558483692926619370223276216714874604197094782250864565179822569487285570289613997830664741579575931391677525224035840165381804710088208319976849506201070565997343533120523513991910373576125776002861489354262577252505656377831880158560909273804014870035528478389663562426933030111040470414760808200229873953291195537332842959532942945662729242299365896864375628505033954003873964355284132880961593169699660752033564179826098080824930855884902110184487784860728320487207137328546970250261665998572889479684587632184828836500361681913069458860196343251363701392699100270116295775380127103592954784418978317584056570705035932364685889335151026604520126612123552813178507478345127633117635650211378428767617613989427916356250003353617775585476281059613948184342741483894518062247890057971868708662198936687121445253767004733559759866616910248605947626352740840931321498732041258714273527040597718612508050735671583757215954258420846021289652320616690482989867180064281864394855784916235364484379923500619941135136572895996176502346214299292088072848273473149486132946038241038167154740626590743182156498337959647905013364389068790200085912616324114936612935802380846342474964103048996049591318858802509607624989423201701808962688229724035485970616641231159918815126744819055494253706148111821773531225834481710694108919851779890442107800328597380728209742208027802232039932198412550699548040601262573328146324734191372629636211909116503576898945343807106502895586999898824394444933224636595119649709236269895015371777119551394253488706690865137802148167608870747410994242623174629801030791849088530323361605374479177705390460033570909374924943067317507600648166397097661691568873760405630798823781045680584142642099568841379627115140264010096013412893884411729106252583341586996126735580559864140677657909196410486177549587517933784876963633875277197687162937611177768732762374786246642157820819331431351264570989161238686141101089202371832537956050489192251928881379543271125961759907347469772008409372662257306691781565671449120000369862081819617514230509462889127274539942228424747357055733548621495648813355461774645972772704414111629143609677196068949683376097049525259393961043215049844461508153435234402352765702458521898522077955610326417417237459307643421548311787133313056942482815543874662855161865872404848910656173360845203243110668959129919386933728313660510733716160197675501631356846601668245813120438030469459855737989926708475536746973269797800413105868479511761615942394925245881961391827529295924212927264474403174486188479627740323693695079008557740663160742139215558793509344241423212367187327317048021230953667838811730474834039087695562892515187068269743203567513414726559070915951647794750420779023374831981700376856950531376808462783087067500152343307800732139233115102737495834770518417501830216999709945304258463588609561492813739712542408543586963723997016105001727546037521408671608671545922047210104951817688954405061369542242723434718640541272353563623198565879281519192183712776789049124946682195684377428209423586343455704628402885670397473357967947594892815981360304084028936307117624618013887416477032185211830494659943728868818050364398707866957259175375805711052302564937064801811668091186355604724150142603727533514949881473445244321946423581013824231304471810019953278038791889256431585937171256995506308599603797696905089792421546942377848939743070477339661889972940561936137739214611987075679281326235264115060222946596539906386274419610901712069267741874080972406395166803782069405717600151413577174039856615768068871839432855494781788134919174921458794179238090570481528350419444541923288024197163778713753128333794854495736082846309708938272046079328290064881158033591746598110204582392768008390773279210416686935647020256871897534901458968936881059634415609058847381163746293096844462992542118059130229982972045977373989767648157223313187568475705014726883618177528530436166724789582056442737552788351642773144345241178816438267665184191924567575526828639729300968058513398008405395968562966329353070605931816477805456282610982513147693062372352420192059519027547223346282634366669065411406901501188642998419488200398175037694890979849685425237054772593170049192444028676926755765733803057868233665547771751020819903958784696559322138186768052473377152601938080306531704773878799047003672885218060186828863470418959730448982755105582321693094936731660932506822580030528994374088221319987396656541101116209790170565875304448196919806733825649339915526778677918003771255972370731451719411930060819587695717877530367809289746203078420578475068724749446015561975174404856472561753124189573878806200463667451539623983761875406595581112582588089399615479847007012371437393471800813755255027078381646690373281627820874497596426275613801931454446260915041313864166464687802340358395855750709226671205607091836313224074639694135517766070559420608545248792805303520835048903080976306728061613717992517777576668720185303196397303237347876771008597009704943915383061774743810916496940620570971475324982456245356261325903369584614302741157237799736685812883253069383572951421233432027670890565300308445853935571764380714799064817643872492796256097058265846819779636911320435071131667335098469041829101919329153008886641534001135873378062173792941977146949090501443618979324940336124316287505236934007648321548589799268469056917374901945732071419875290769261062025549396360520478705849958149735942343255736479037703943258639719575595889225855756377006790750850440009893709969731634599570889266166324724966693064353156342870575846921957482270159278258640383642280781863474655655720984328250108192737918367456771305684151670754938100623322599388408689028604040743267906147873435162545875443037223365684845433736263762812361052280699695624033357245770775000300405596044918888530087428415335614234504593619976615159817102693951017718476088251725244767574348382173637396512146123058123198734611337905595701182384627956893483429733823020390215872755321426773496491104252027564210568263597074874686732360573422142226238725364292072627088281198062741003406443269108217243270256940617895896560046887535183086984252637554325848543108825116221838481347282119659926196281907310664416565617902267664982697336305733909358524738932046675722961052178893712377068917885539369504783181827173394255350596494570813993314691477695710993692383900607722038806668655644423192781914310216361916116253791137010870236032010049526396871522566168175473703551361960894246484551550581562372599790645349182572387498564979141035516889446879938600511194276644935644848941376596241231761567395957007492962467651356836219334203069942498146640993044629823787173564574307086552901372692209303526504454130731419673355587908051822386227442406385607729800602953988626572023782188859897702808453566072160027154383084693400106623720407288700571639218684539336919420660468355582327511676747845866297086741271708337954787365734844375991164947790656525448619929362594849202999413046457250420277081349994341747798968621426290861549317544393676114998148489170654705022696408567444217813116870096706667994054920240411266765075019007722540588462654733563203971901762043538808539344641775768771657653443448702317727603042739779905103812830970799428243419068201674373146635626993481880538981168593802938444766125301140539917179422169792584611199533378408905788373189477289497550156263336557039055415696494054111609185283403992306899049580881413127702193144475035087404376360000844172747319940522202063927589020166299726763573116617129576824636673603656381282954807265690236576332379398924452976591969945190113133274759176780217840270714095939343308739351024839036630275743588918861843839450150406497407427534751695197677457237364034701199727476297032497008593003200706458212308554963453072851783695696487288583776482854186945760906819548675340222607225379823092804038761770805789143341793576077176100263220852646791662763363687034822019513298776439958845291997073362933534250682796991208008557719779036146972500890735506808404194484467974096411022609871520369585855122970034090742167062955562402287546895178553486492866971415374316817744970375579805200304913289370363781545696708085896510371841392633557402329819279959891093146826616224940904446384236470912769355072630721087153059745360078251965273958335408536747163256919996654333484611902345395400883109572312591783926423851907490785762716815497252187844897250849131447600722123143116403346904040075049266696663944911432868573233534100979335189723186394738259812412549717418406530777020904901154471612084711645919319385031036969526033704467733553236748245145358320126772370067678949706880062093417848723997430167978439362399711872385034304909430896321394184732352898884757575938790876691471930563232817685858935112753154766601463572164249544267687858854608853316362394395291672585321004876417572784882826011211599224661049274610693837912543548720116728128745247686203502285659493405144155048478783071318354250087037032123669333118486574294189089426586597313664216612101311155744256613702024664320790175181923839492936340234367146410521162856937001777037635231658844433187823331879132401687328716717607643149175329211569969988884464297637942206266932083206533999246389452724379649451045311558879995168107773918742874109260308791062521680599365273218341506580213337766018441606172062894127676796150228558875180236140812680380209993616662755897574624777545858580913355781001535562305972102414225730285922833543067166065901577975546574916600094978947503285479229846483626757397588360718972321417732103573899854444374889947057943966723279837370461423892759740501230682636806405519562992555130160332518106155751056783069553924387096957101547574914028359291621436252565760941002888883495412425011786729200958435591561569178227383851137659519353227679685453685074219477486500523984483762790198376136956763747234418025606292077067359493813048272657169796390765835340500005034569153405279663614187985145631428338842742869833438475188793037152121444147281903131193330355068906495337868664189411755840181662928300022805216592660996103228709755879432188759593395160838639752376883419225794079662637988110743020304649050705675307598752337866974185858123455176553591234805112552574838477412652790826313670451670117613052629518233498611315563954414656151344381776365395246274747711010169281129463770109142453423358266123841265310501358688837286985755435932636811075837814559789732219802624441903225967834235336920067253212808163941666252256651347214894691861237219454696588280422381470853030851989267753204603046890357071338611737323724478281674517263079272352574923758302325364767404225936127838058986930210732869318320744252410629457957012334915253278519186737633568352206280444935871331301419810921179299259811190992751044896783633314177154706568238060244783300064417168395246081174527158604030822634861721533374524198132324161837670526382609744829336903295526697736542722069943253529697644013680245796370057348778645403377349857675849048879011535313822858489740229299384563332392405540938090325697365421107061703101919131624522436866483542847691066852528665099413849521256262880704039740712343990813015008813258983165740682687392422463354093629908858608797312413053400415508272441349844612289759005880395342383751879646787065888306644051019593234093847681252550490895712695984998911816909704080090932774723151076676333134947314211565962898071124900521252022274919234760870873901438899148482910460853644626451747376827700437523307364807011352994865060040086315201010133074235124600363653575240561839886093149179151135310265341241382819850283450226249298359525093041471835311417789182531675840983219968325581013189549321011379996233966151083116040503414859766778472080905122683510761855000086771425441315993055909529678137833151154175970397196079793854860714102286657256133425530080647368529299176715697303650106767276095428809802185831099031717725081876996419179140292100643752777780541225236771195566798439923413986987096648635470533944455563341313288949599331645376975414090202583252679446892413858285271373430387861830439056433050180860566539922323146274490027213140173282557538570418510734615904316596457620505728498930953037233466795158601099313271639341712831080137151912571273755604586108009053437062848547691357482267935616063576469830613181460140450099764351705371556749202214551954669260551747919327089705297910717362755553303915041689155086510451017581016274773439029942922843012836532074842797947563480921735251971529945227965433427070924998971207706440044321356596423124372169883221343860745101546957947989884158857925570618212847324913860826879908939069838392765184960788606068216082430882827871037822626982929440260794052855596979619442253127165080324601281013499212676416137580188104490070665067041758386991468780946064491846351586917444804934110253948091832989185641709864654520639054145045866210253190409568216238031280995418450253941534448777766214629235988482643373845860148663262558806384459535793499704383993735432244192315069983554523784564757615021210728255746817174367774889271142997880687199369100790687765791047338999765295513728483976306356955854490750097152094460467259866541747795942435230080362280746600083062402610603305781936093655032026610211940749779103158667475474060276355744788188879602167367139962000926196713797902216817916209128564535803261120002626976503818892189162419083655282991643953670623605220017503432885930141773470649666711528190469955970131212672375325856060628515534796993400179201890953818027574114145736866397375456354914616295409296314198569538031797139660024654926696354048436440578343367686135285791394066728535105872948868299946205158803529923543450799496030891475140653873727995470373393402590665176685637651256201937531516720633921398018258781278005624597901335330133099378437194204179084892098355116226204927293604233504614820867740906550203169252721469095776138888832646901584614268174269876902001254279325718276953113261518664687649449083933080924819218887450402523379787526462092838564353458858661187092673532463132502715508351392471751520762789256566723748096754083400457414946846886743593436697834756515979372600180782482415754361382814973996632818769419090069688165491166445507650513048895850682811605552268657286780128625944628852782941226112025675223769161955238732287780046101974010453652374106262469432371768415933112876649424482726245350768597126296531323850347833031962709735922957572350683888939803334287980646461938035216251133710256848197029544040635490351516323866710967531697078989240844687593426935973266695408079687000228400265713227091591539642188298097849177120605973042989710903795085199004923338273398408927626668724835362053651271650763966304148078173975403379785911707704300997249916167069287735982601402320531646140377753375681988773513504445776814851008340305900640332057160971966947892617351368749000686924746541192263916061251316872804679425558794844448455420422767599112364446103459383279099392953479513415543817772003224585399206908640749359115479873085136319005549240716017614084630888200705638673183734899378888604355161695636333202634328777821247664164619593310521535153711091747965310963289281959291462818826074177450464117161358098659350599234517857230498017553490348249665281104261732571778993594302479071089259916447726380681259908649763275142607065973810952699256699309863957596011380999640972709316616988873876745698776462140381571993786713468206099171644365120603082782731263459466885303955060416010495935606069794890758713723354129254525475029414006106419068099587109333767738013942933423825117815830233610146926478790573881891264118250651948265099721731104474189055957154125268972303166214814068339821528515511066793304093139739986967065066607456590989122123071439972744577338670367130843028688752634214266421631849097541938781822516619510437952693432166491928919931565583870395030019695160260652701151877209200301959998780851160229933450244102426835736831288760092713879494849510695248591917535265549846319325308426366426751714077483271020498662429014244347143123899847256484425545996151789970686043588186436214786376884154926067357935944021706932244401828567945938200762548873968515178807485838547458586666198807645516982068698000330009919222103788661602411665288330131358371205763540157050426593691884778861227769861989745232567733164230763427417105835184890232888920336501256856693148964837339038269171147637106007761572710782974837279169399586450259390735045893217447580353408185615798672263997053820103260001271480954841106541944162429779563698318376282225356892946206290732961189757262603745597385452195539092480074216464664178337978710727803313054152384276787833082056781962590778600928084147375437066536896960047889903570054426168380482827189385762641494034407994877616094204778737889396046215541343467959363427632152101878308031719577502134502158026547882684821545393224230775989467121834896192747837794973170285055819458609229522482667598534631899077758429311052111058463832437214340596462711352450264900363409214764051548506801425412902499826570266521330155353469662140656902463221742080092071855804628738160911101937697641458301913463792511636132611064563972535062891633155318671339667874627671546212777515446439449340659572169146992868807259322907633344551187312582772705302436603059804500238045305861771160984876030166439259532211442908065692909838308382704647785453545652607327627622139787757657071452806781854918749886361599618526983387428559031573588143254111960214851783685819893850345728450603534692386374037195153422599956308371895510608683851905766252800933441780506279176486807754662330631595017395950669968373860958351016130988624079261674331300336499440344451151187662262991400167763360796323526191664671264847298987502291249091709942373820797081043277760843038946958027042703176650818346939496905650607459024079324544351632993849936091203858070535297167258728315522070046054098865461640477781618858201759122642988308928518759511886146232876475968191257090743066808980427567104177441144144124781347363672184334421065570353729336325435442463660264396816113513107020971636464048433653927136166500688701522547722836563753283361019945495869783042308781529958264089449003848922420748156761603880656424466021792028920621968882447954310081761178665168911898807327359830075816825477401270603015418367079195547923335826565026920694790794832457199825201612788185801210481457661383928733024142201056709073465287439185491168319437760894195970915624091940214171816514761474935338794625461394986247582849276099261495939558873159517533757224107908668122750174870207398417974369757965909087521813003815021376559215970326681466848732639179883465980740843019816712440984206688051342202923488621781244864770295964374050582028582310697799184692068386695774746600427005877680384357046782418534203847449579680649124514236085289413972636584317972978449357813867114669785835940852037778781946358936513823886515488150786647774540337772312799483587436798607322911730884482646989790007096195950942097160465477448265119998934056202768651520160865548473897960084626194598253755519990983188364869134580220692481034476826106065077911179757377520415599300433580907954269293418791194220995394065267737086711188422238088539732055893603256290578620485041342392864203919665838991287361254405485638836391654791537571996250876385331131454687105731161384809533220608969492450872563047720874948560700047351863985953425048560456350004790861477376363188160339963264450208271313362641982744958969086199707802005816579414757262186539565858085138265875727422863550304267234170711532340573043497486020724255419042750647575464401408667946533888827861901181200835093891904420653215966066542483168895719516218809766628514991301312070775019567878597639975307696698252007505851100392383649939342286701245675335169136858084849048128819480923813681241988382190627424928901668037342003851178614199092821563187589681664495005787031789962551227986060367996954837272234371768665514504594047051320110099525142338260720510633854313096905650166854177971299978199745530443305583611393794190188103143736863283917173445245147771492446610727915097520425520211289527171820306516436547082477908350666380779601439917075953357175410553987006613498357582802977893590656824273351388345529769581913439847783305133423660951880300045534235955852935732813041576588300058579516424814101294351627215223618313867263904560283664496710065970673445567020159731968095890496999119288905516743974600964623345961989785137329111119968706634684955059457788694112734072603512273591799751277461705189844893778560144854354325982698948861466394092311032873097502545154608540987926799069360194076053726892075213011969367444605125152424889563581360179978741222549571083925890774544489014633390137879400153411118650978708481468352696601269677859901963534504635063866553099657173831934772858769506415478534371872832207419322747038349846600752542586322214627244832982182396591832604648335536513471077459280325330789369164227724009022997035568475917689551861888919316894352077698613114574665212154672107764108584724592465289216700029295316132858929779210312118672448777417947118260497840881038303074675472030970661918364813352013902244192722253286809525935697150174549172830470271927024810879525761546085941396296692551077294980136357896621523698262059178691057671726609088588667658009226393877895452760293712530050964422716500268714632898192913543382743924595020765824599810185916353669936955580487257500782092520768295179130988294756233384350380813354461427380677133744978574288464254082202419346826623072628020509738970773776705083975734007454359076139898913868672823306361195019282783622052993916875518357254582635589402930441028455452192879479779007955817108313606207094141122799643350236528876359880057442629749817472432595418225830681251317695492598798949287722034986101125762353340228424514877314478032382573704295221990300351795282760823656076680367819177019927003407980317666062607368902940752989269260393957828157100132287092964725737296896296810468873426565108947806246560477201295804598782387543267454457245115113957798706347508098046282594566570595604144574971285694219852410315575627211619306254510708456864691278808053683244199496337809763307887563940764922901086291203524758156406497388706664263474680886429564612523140727530542761756123233333712860562026834898548368257513243921356016862213260293870189904635246822167971564811170942140265806172125111586100007766417302492556518196782751867499701164384715709199850402090205674162179121961972019147796318258376261231003041565832396049408182546127229986598583415927437931320823807199876793963838669673090885899062282223275457798619891937765201296550603206358334904638583381830959822865670629393685662822102257655933334361133160302135828879494782129919677495131378677400361898574357914785960184635515535053268854737376812851798247690318129499514991308112777972381673161636614240316331317280812883822818493672954859569205984979874685300453870148242349730375556995341019182699353743106266052759583461247891876989740894773150315896044406678276183505172410061995298137713759563466906021566079180735125354551811721643705333565425416582439896848193104120223586010438996813064919685523198200897362360884161758148391835215097686253335662916443845849477658021400155106509896133688295013234601719869302241872794329872469665339081211511863674886464423597526156872840041103537817147444752990734721430970564961054404691836511328605930278546409959050310544625464937230134782992966759511469509479123308184635038985915715847264052217530969813561679250947110375315667609964618143173689456677525336529441712723997085870699414131056676702695532775009895707188044431611801578830185484948675570825097379454735841589303187699592447425098773017619344190453821398400214626288517678944691219492526427843418171489962645399780197588894042627754909060904454655312105578830358647237109361911238829379067044547908954582582089631825873064306574287960157114780016117451913669397814056730770133003083455597524968299449500060049731432296513166516223957253613691522007758447292176134785711550486199702134624650290476474066363986567111747473512414530399069673554693264284314030274198910978510430591308590828253316251851414825705434074138729267974806226590429723691203987812749426615489035733329197877083533712121910632600490136783922654206895472849401105961396808957438704166369516492867544230021793358036822429317783311722228307717561843474908766598124663580391940944552691734148689653650446335619521651257444605404052149901163787122153081897685750541814781644535639044814150096282472840491839306556280334154936199295057252472945546825795722741816003422269182307736067726704420584915720174858534436171560855145992187905571304651298450167013828885016073775209772797208672565363538043450894687497894791572321848200604997198541574419925581432395792099160449560349197633691504783435765050261754824218344237489985958372134789309646870130692814598744729564154320269913259274275680337062920441612857643025781259596158695026088016860019674860495903141432053940814741993466148666477681229630868408757135856457511162866773544225563103743684823732850082770669471423883931427509328943473775160078201761092998919833008891564551970405987204833026097271709069975625251966173470684970450347099949709212042060184536448008750598249385374643634594596999676718492602359771723824648362519799911089056096432102735676213366043759014131898683570194962479759224211249673877018743897943985990775864619106796434418578231379655702462736804383153368809580008329666614522788134386904012698888775419787889484647770165772998620116394387843151046486290053877065326309345277665550495838532663809598963690644611450768895054490552690228991547580717733097489895595008041677736266091716376060299950437141776288517773725033244906434176364085552561043847592995707975978202733200918161297930125899497953811940470161658139579645906702472711153539273696269845464327310057694456465848594365591662075203045635459904817939662141667438372865632544902012570063218671232976708805863202713780631696232907484471825267637569498938009975990005198179294250537298179553413664365345879809315132803694490598639606895972995391100827686061939484614919587687135028714232416470535479986207382879738128140536561959409657668922372507856905480880792480264718859224815820215855494484860184309004602483535690556944187058522835875483595576032900908530431421050803747639702258978956060623593443840947372189012506809034770353868741929675490660020173964310046759604454364186381758167600166498202361937981968101945699871299463970130767660861063509224728649023210777793423731392666637758779907737625613939837412767590274379605354242428728159454762323124228175149131064031662797578737019793300556604050814240567488638928699855238918246514198579717007081997658764106561187448906065754008084457599371640153772214886338410740216832881373568557305410378253640032814480384193036969868268051960798654988739331769811604323236944843038944730443984152349766811458034286054068820769646138148721321696799453769862418716245675791562214010057466031592380825775981708925261625362342207741965420464641731643638123758926576274308117988574296301727208330871250268948551836962674745976149887447909056370802325278745217938422299926708125584843608443038251743830101741954752730893834647359129789117139372579673883657575442155634285798939006282504346533312876109495791405843229641386181688280461480998559276418383365352371825288008096104851275349439935810784069064366836493878806040599488586509396634997209579397690105670071899049863976172540756994784529644325032748093788375362741816184671105119964576590732093584470818783141753629474495692863047647957675850054268518460519814267771504995306844796795439998191880646453617612576342934032749928885221447672882518421423974630106291467338310350395979779681985042883543356472591948541999381167126464030858853023221476761894664030695121995463820681006972171306275814657653625903714011269214374141947197861659632816888155290657498518704442978911593778817497363298350388260077727066098228721480484269566983066234510371634739037100482000088272428107529124563371782646263130047730791298025608191866896229297649726995279684038761324461861851449611643841759636922730972777345386552708839642304616563381117540032918440274703329225120843624592111091320011265075723557536290004044489868849196483658381024422153839613824372296117806660949658271524754564177837918344990349166331518502414097066256046589601475297446824874126637179622446911044299439093054781462541752561610814629486250027906501882746055205399474742322071894966742672020976511637052034425838571121587304888178817486937603652531563007522868054407769322371171925343818304737674618113568390264185962439952813704729837148210218536467345310033053544442798877725568765996325841470289359293959761465661037857147903143756629878746406767148484652994676234612679212412087399587556560909114486463648987579510646015666084350774526771349246161501534828769931744261506915266900535655503600169675114314358311225578530994879467831741706363567778165848255380326688194071510080310329502188454637665400946124682416273539022205271462238608562053342626268736996754829695493233697221669282263356852791403706871767132685846245739448986208837930809178631610763004850795251943279706851059556531895944778045704360259097126615048473631121302870900686675384553907447895689691843311277154136695352819793371017129785527843846438189409772745005349626898235707615123615033544405800463029125770437458594949570519311982956968342404204745170954961641827921869612001929519030451004459753140975452197334149520738298414835496289752768422797147748203912044936159000662450078187868199096169091405568112576744473313527976612128746802327916552760980091769522552265120643084164278190442126745934019527145019223467241032499881188774855973403378409431985986275086381023469901106618101338794375271820274545251189680154351953645504758535952420661606734563703937388244824405149094207425387385245376558421579012719587028117371461806087284942401008099333028092888444458421356985326506640353843252600589194910655345884959423917841608999320506125575851573020767290113528944781216469225350728255744033800560793078373057776845406816822351631294828179714826362092881332775159618600563051558945702158429918244177734898915234838797722173886267238189101454465563876684449640223432448378877751862570881122940746117024245374119872861351830764350313396526217559079489819970041785003100952661152108291563061545970203766782811100051775808819930086710667732190928597072278887206103709264885808164755193410711642563654680628284832065679241480755106148548851994081706172474192250265462857857598117020176577346864166720114303917337811328606085362566113077690349395210309120159993967365607410148495782507807936985535428320936158056916111766018766981252962791469971655801248651059774840258024107366136121325993098612612649940434840030403650106418335511871335607730348989709453696700733176753145940044329205959304099811351238810066598528308638961705027694558789169855173450772388951820650544587638331389094773674533768345475898052151435726730045493490564084185605099417872909151054310083251367332293040222252890129454056102134154105847446346592157032251338599097939358729323002251584388620391074051060020837763436551334310447903344248147104126369397432632969958799107253627589520890144787206973590524909475208017576980410711046158452748584238923327792134408080943125911636220114620547121380670713014856613250200057235534809061007946105143495701843404276966863842193110732183692168374774167854251004934683989332293898949648773094448708617687006134845923517609178592870969512340718622203030085603340295959789907382964456138827103382367798738391633394900890138890042520675809118251143250601266592981440744749865054783497214758144152822129294811693994415991375004146540400040694232423812216825981457471652343175321616273976181189727355593110322948572465869691095571769498308131680872161125257001285340037873733162110545067362218936455319389378010408629377970269561513232574093857090372158598447419358862682563081711596115816605976643974828701217132873113016086696654735719301237565293604213729758297247197891027671178703446760687786995632183043478201192458280576967453878269097716557051027681333133274522515530399528491298023259277139959219915625947024796799593181701063507796293595154880440473477347955023302250392671403587228628917716781743695182045772714309728294218847430669224769766175620936180594427073453768204959205405429133353555563454388379237069523120569267228196772290784968472987356748983978032365076577708307277910661715580480428172811963329158568710801457752427965326449142633910717639458294087957726266563001165601623951220856653187401600369837878398601466830755979070033005601638778588745433773131333546449875120599175072598791880016936263090142895008371642269477574663270109598017307269942909984655668683675578868136863152789545624497273600168168860271922409217864850777891184749242007870369981547054140644843971198064888372011941974435971915343638546927091971597736835122574465683958478586210844781143651494415456275056159681572543144401504140854416650321083610654881723104319662223542125156653574781857796741175020271292752588112224478887635215393840884149617576893766635618522925178778810599021928460190139194570179383846873603023682871988831664640834076116848399736911619110906984910497746967818513240815202213918347569851549609436089255118882566867975480062708965413671072135814231168633936224140341118928529206946604449168981133925567887452656003402468568208652295673687136460417157430032195873313066890029488181454915460709279371084102084268163389992291623969744153280183107916694751001740591281201026911082680402252596703365148401927336546124228260298717308897237539370060054593502141799359689656661971531309397241228059114667146957037779781777097638302350328531892358061238127455924204844148594562637887719885604695665276194914216855853528021903555323447096109208509818158883777368167621742365754482000565110998919141228309497460109992741634429062701925364200981400410113937203890182948515921294260722236058307545638550769048918613773462637124231820558963867393600277782461519143759518529532366078144455122178782529390842266747387038454744634736440882928165285976559807207358935660450159469911227898752931436129195773067953791067075584166011914883330282533442680821831827141251837246028061504790164501725845758453717994337411652596385547069027485580321054336931118836398657492321846647112622949306500412484427487281938603627452353792916369162699269926832522158619435818895128295768872063500305902634797036226553096758782569345918038902003293428540423452485402628457826033524487250036831450202684729232013306592842031008318168057240988683108821915462511244854289356083288310651617912606161079040689728124165581111737393517335641197582393832835632100729789583726192078261834860619125163099568999040301788663783048845573213139340423935896166249600811307508838576519895529749066964845291266831293569185649260189681824735461432307722213067894249739391869819840842173193341385862156261433573924639324593837116185180210941054361684665845807468572950525041670510018483115224083220387951501814778357650944019109735326695601491850502640062154699112744012528099314767299333228915424041791645704211029684789939996954379387954140040944179719259601233277646690138154624106379260856479012631970988287977112459267973311123912495525049174363011036086602933576897934565389765376522595892158111027844084812368473097630383621333584020696236176743465996685245709125987596689270748001363374965997996320182666213627588500313097012771803126633802650174941586434335566538871617072313192367266902417164634810364388363100703201821749551990740868140150708978849521285467808212969959955760067835411299992587144216643844427758686694598311805685490891586434389085822904202248488844838992722697196821837622492354978418202217694349238318012997733068238657586006272185634723696475304774496405817566689245762570805845849953473019374816256680410150089668783342422387927236870280092412718691469470274319440519825496232188559154919635361395152034733127805383989745794915470110689396420239831181209776243514191914030985064133920297804674060886663696821197376188218946419609169780592921626609074980532118778384098558183805854702137682733498838831512905935868552939421329274768637570099757919671192163561414642760488247538325347395312327384706034288253293226972873216386492171953694959614856202920217394736116191378185236806218340524652335326431975881037350082078145551563373800777378063527981866005586800037394563716002442426134595955140421368459939959511950091930941920207439041906407568448301756924499680567797316417806363935144759499426407995691647206474926990116018352012912073293295665187371901684376492333582363131135173304533999279000040090727498337608627317317612888894135199093975715119309179750700874267632440674572336582207739873427307825991918300271071809632691922054443321172972307825952171251699384406378430648988840578227437707256723627506589314851261646158234302765767046787593558972984554854969927494327404576222562249303913123966206830212145246076075631953046841279519776241858029116436308311329549002793992810815318245345935103898557662527784831368650154497855415145794220688089819516507571314320106817257554728013993582795809809746543104130421071009574458086374110564021218683187454451595964217802053416542363500276449808817528493224937702915084782141007275936385341806819532184130612031724673952361418988586540840618534701714062296467018081370246512849307482815468745591569296715033987655283121331875210658831698119178166763517531335145103609406879828259183057344512835064277505391244383782315385377952169469197316298952988540613239069205797194257867176393711704874705974601424769220951400394280816301124647824872563245675579023411854777376453959182074073911551188351330615454640287211149310310485112448831679405192738967275774345274445268097627792774026498495227900044831830735551379054396139061630123159774826538626004247825315484862258582264005030099995642843561461705582932491421775195843387476868619923325236626902432413222087529712407216492827030867519502377425740071351004062609330796337938664222007322265159183448028103143925294848254049999507865147441160306606390193992322993411925671299279320194433786416395933690323289186021702215890897373634081915181749261081021465284047805003822209704519207934625052309778028044255137703661172091380033592061465159945033627745400905420617399234370198930340316716703583444113857539880203976541927824585421492152018035374419233742443123934559171579725291980401220819253485365971495460230923194452144552505079266658421263945770408151812294790542182669176377638084208090837087027665678681832642349178557383759075520135846744399199104452949230570024540666524224646311252812152216293867405026868681305341475768906945594672638624165535570255584778185390540284491206668594454250715941380332220697647904566971917952489278760785709152414757353569995114353080085510044343357772178363573816000451661032397486993560805824425474572413554077261385989955887321756216434142356676447059903251799493878979394487092705622385316311612053492086772328416678446997774999593729752932782203418643957843848044473357330921466428577517898602237186883407312893775789810044283546422186336354940410276271208936369128361577631325229845107458523460442037210560589422030658353465341599409096680587881639601855886068026486280015737509517888488392204031707002263731876897974993805768520425664831838212029841971196314423898343891078266341605095228948062838728147580661876259028410972961596077704408063718158777929466338572724652614051651008961083833930712003957574578833510403538139406071312042334045018965765342600196253579238647319344288942500224320760172948483795485848274611577772273722393624517123261209538610663787762788954879244444303004643202841326604844585282468271323924842944293009100701031273169683795540533560271455900578287991174379483269435105216126664938180758716936576478018852191939464039490800027654234324614138516522197814929505987292384580708038102414332265135266071304825553299709943959308267120195075944983943974328311988933041140744248668619442773652808196448813892911421921354174491909450231955923770517759795093370523977511370461995975653490355077351624246522459528762536415563953237312530645688993493555278374544850891455826358406911778159975972278685371948999295907250306168996058592342018925542789212674199503017032436354136331119381680388596457722818648274646376131777083515489368382905531639074750417702320664013666612757403251135545496869776584555075851199407891811773334306754065947666731132480239308789402960055671267552486305644475675324056613718905133840355698409640710538434072134671553078609861307474412620210992205978835413417175497281632656283813471355297995948381064473912950511320270078944992350858066862487333400666806067093132068157874669879450432237227693672596618665528391947316636247043972021821524156500990071242264180051067439877651212244937691326313136880253274138910335186980207071608209195986814681770832652830645888823381603603660966309609656779903904558419532034589812148817719627460497336747747872342183894796338322813640270783375579425408096369558973453669299029509108729260739860335989017084380504064553211059991186717704516855691359699216528592427724941182181784678759338411184347729706764260307989470555258345467003240474009737960264250805181092659334225177649556903617993521712234319903699477796490552230496218522658889979143899825451110015354620497496343633039053353551077537212006901388126434377116616115194014824594227874436717175817552346238339527037863156306081466840263133862773785442762257336661750144643071768768971403975980896806590260893747033583536584387008413854860051386253935179873633260543359078274610507017089404561972211755353187079109692152138902122616674639798435429548646231996695670870270270051616770070459176624104142196015733158273473103628629478529062390684410764693668328580075615880476508777083222471660647576492117017428057504602133826170757455118429245922714375124898974534289389558943339951045353324666505109607676519345529146061526697729228062622203757308361593234297888859695687966713819786399185312490954612137237136310160847548465181248829530941592204251176809459075262576858142675521335238377903419957443876404472085257778609677690610840242641100148050958923374180564303590884047540622332114938342372864609357920890873158563328518579538461849797149973961673093644884493246603798509446866787890740309496583850785676416010215946199881361773667240719151572907418185630777179559717790785816356722721702493060191732844835333052730561619580818881578619701967822752586847914764468991229588883262585567859494749529732039983219741888314456243541394306902671424982645923913585697991696592489932603572074883539740811670999850064363594835326273466755872153630164304549263473825266862187008369271103229545934051338231380905817010311809401682958426209368720353109954916276375284032444758712797298535500483901295449168995657550619792973771764861165189246303966923139969535978484254388218333188908583620276650742537655823757512976993218143081846099640476383654210667161981027484627801520825904077682401478199332563607817630686848543255732790219505417697750479770671281015053216317021156429548450141543266448778942102429854852220973306407574413562597603967565218387913235073146401664324866968716190517523488245438706544917814319916278134667922785898914167275314021008921106577654190622528848044138580594623560956145589118701087465680815120953316985264418524369652649278366996993998629174360904293944938963634249957011112387294938600595705684886882482660319264942606500172783971384525576271269185569778333757524550288339004845069554095389633251234291344532311748111323844388076186289793979510065962720541997820460201578811952605616236256351395255199882743604519877198580512034736102920384838419683124911475180439021922233016891918938633969726298302513055424338715882871727887309528467413472420273439991737333129209010610950852667782189092092877851615730394552999769141100224138213645913280965463159918055104517708306424232686353679065548173171429989599807753979013586822309311035003044230974766871101033608172218863642135806398509285296230017579048642737894336554899399112500009741252366813469691543974633311283956073320672268478522280914309427837844403292296845280251735903991552114180316424911692477914735324254881158150947255465851441245996039741778576297926849699915754682579342082131201723584888431566775729865653138464893347209858118837274102300577875760836931993407383299429850893785840057809010048020917976162482598228187233422904189062165217504317374931709988252195250654345130885956360226515041878449329992479860091049492123753033500699746622176283029009073077764875256454491020233856130458578944827875422287736668627501114117298285037266391298895851948632220809967366626645950058669133490165637485567874065451499757845566399422266418391633838445230984879150372920827097231847993371974081506835698879349828510565966262206177944628641844652962449293082986258368747107097505257179771546109320736664008768097930993876927560984610797915823502705493018236484005849202693543296681048934367387162945663286391910674155749378714630913158099237600554667968900354269186973332758148912653769908722488155028570910068916798766436400596024354216959521961066095504166715066663924992381128034711031950716345559049192708344164157345030507948080511909246758771580130030221377734680507560557196247343875588066561120364608410908505265864843612823277628598681714830041542472443327902007296610038919322119091112347315484865279716015023365358681780759077717211027336559122585099372253120878016363665766552561925800246183732850892283963961602758636089491399751494857430842480096334043089919679569591450107437639265404013081029603168223805189439492864783292993955791349842559493789957575718901686047668140319056042579011644038133372306697358130147955503915549415381433057489411927232556593825262096353096334893855633291830376971270291303468909320623345545151123707220069885218221686282691067973149324986413471937107920016828665817895988342112714700947917059947732390666451917777123894991849353350600063454307575310520571398659510219635305775714803106489159272352704360303415681512407873583094017081399998271438386982598028797630827679191005640265821594370283721711653751651447623745101154122568273151998944194510880899229716843242070971239829739603968816519297005591136154770026366634047303707770672739736702564568260198781420106123519988165620199890829857623906826336981059790458291480139699298939662379179328969740597115151492436396115706995011196293166578824364779231327699060029252811033717045480122316402417793054608315039753992646997164672221378426227610864399753840121840863049053000995903343402549544649672074181478561623244084482013916530054694319114111707940525637876275753393988939020779488810374502741127944927329098613216811436136175217406817990697324624217883005175822399712147900430837860640339889613197668851226449727492694766638725764760552257649104469916992556306960999265025424668718534369660797637208712380786789136517161351472773998195344077797398646506666974645385502593306924674991620812930332532760703630151175061388772201432737880870166527638301329442743107308951205912397237843449192378847276972113814485886269064057636221740037110679609993313897536357236572711427519615300128357705495575605117270746672438021557327970546448017815909335727323635888363341622650349294810177189101614669498457407165285922848393060554056221018357219683834763587927971001748753613084896721185685958043061823174294503995424098705622832964901469309628901113068350786099695744383486220612237212727748134722125551114159172925446050940910319257571212347931219888540270074076586382697282678597151109301573252956049773642572718712320676213279134185625378443082193736189621362684770661371625559115739030955918382326286859479936111387830885972391400596997525705489102378277037619119211595933634447292021889600160250026729896236038788826774473372651205249731671070970846968567881524030059590442125981106615471064837049533843654865705574035862161294966875721595813119728896439706969683074538082075493407002056759524881996316397894081472613873590200678538358295638189351153494211950036586774513989526092747151945143906862185830322926231862627838795724911767772681580250542933941581763026514049067557731791571236247195818502893871578752060982048973371089491830013862816497125719390661832833636562321640519301070832080728212762744430911721837021909140888464982992067138514050095196497303077999808666765782357623848208128003449981384320120281280329908007330778046981934518968830708570783204766177816525765485448216286957242287127490898473868422955149216058240278727977783417298769027745644683593033297984244563089770651266180436638464567349547634436862882227474026593540795066215553237400320036228279113337276855707803161115455837503539490616491890682640077286148311806748167446444240219668371558238882633037262746663558209334829162339550562889300053300231214843077403580713312659344539247201579658249249714679428450576196146530830455428811834273101792229417433585607661242829539925083730517272857304253401238801991925210070551312428176666634772989830423984261655284789495638230355457358922339969646516065738915440851003534511594483353614078207119373827376526781959379366578254365191210091826037835816654818184852040907409145036395518037218896073841747192199478888381144079754502812714568450123580320787556404847400489889437931559801435899751391975283589309566144036466615102736826184792951308615076621154973350881485383573370152136233729241756509530314615004102173887621982708931116108691604404937862771792835103357504621568957059602125575760633409738870658042323705251295779307872482198772192519455427537945615349817900607770893317891086959647150560812681810913568678889425041126052357556722103163725479999453592040888852449320579076691865474183169332784981106175520242280658818725169026563305701417262763856734827306039646223065281432406955332411107716230514612088879885640333874616068121198142573794458462015746443046785522308976856875484705491907710572640532808019032201734600672662336503207280593184849622042300096277575093611821430763968236245208141944752250649900401538627835513176077078734981137857922932418913146637443481939836611917667848588159637569183321150268027349546434105075591155451943549705315256671825713637801641509288553400493741550052309123172917793971364254249844931884470771344498948931605947529099198667060387746187883150235284658948184014121386589220253724427887499411258439724890979814312639954986707343959613067697600432670794240993804201788503305809460143604740868867182503707256306495491796091715467292163612424959045178920906637770581573514354173889635471053687286094730677682288157787375145078506313371429555686770516051930085015426980706495018845238104953738677106262284857287818158630910925263810782273657739659804245027390329483257723180812671579558804268593281799751587162360638571023182290292228253504124555039386739133686620365438675905039960203089539542800394953596202393900049945615398794510257851346461687739736847105685460974932922956650030015332721660163815317373368871537016992466260491615543086778861038547997900073962759033784957685507830566559659437491725995632033832917616935149607553901114314072996682282543874702131899570969963333127586515400309367281603707850300606851918118207383285243958517969711954422301956593732759001490508969924641050123232313242981708054235842039052153146823830961763548164772161851700350749620728611305438458970538955629710368419718745977901114960204441544059262386320204162988411614157671711294159579781083620054381412749499718159616577971142149393361628187800058353899978012038522361036355585407164306280819886634729202277588538386545994015577926700676226149488173608019999518807354900114391897827792691418204621361397931635137023393902876694884029330129362333297848953804915580752091305602874444318805436930718565933264363808911304477328881692824096960296126636409786490190376657751473055819999123533521198056222454883128014669553560154870779240397148107483455508882908070959573522032456865521388173190010963076313193091769830873025697825958794509452322014280139085066221366021404255071522307848819217128884340293149056437856360301764157921315439633418332701902198864749226543049316607796968423095782992230768798739359917632313152862718945230588277129741536548797699145729595848484794630309393333168484515517740299430471894355780248350711149620067995043514779047946243238301470728792035280579950837566914795320141470545953930847204406532227154226979064162140300102415071220529754495880598353616043824906355611690703158406364917432213409262320320495320474070317139402647197781682725753068859175995378295309356492958208325856900422850403387674882946168067675166288923168366340272543419840647436240434337113057763658731165509857181873258329729768246639729355130459488186108334164188901578629085080929250950162765639784256157021307781243532945815715755336555767648970270037970802011245136615913519036082232839551489858943795573718881232190613702170171965600387041913385483486754579448021659638825125842779073556685331343101137601626023503153834386906542067405724489672723479132950375793645861710760217517975865527012457730393218779995140051682911906645479237475027864937838186185986681087185820002270056223924871955963372493860881353697442284798642922962655266073423876708843602368324063568412685453996619972335292822382565882379218340674794029707092507392097886000320513008005790137453933012094062796681996860114514383491145116684635153651236750541872193409962408188920277223049558999357816222241885615595445591771635529809865987237240736057219300469669033560022673215403752592707305560330294031117911257171406475308331505908938883148882021194365474584706711707150692973858498703361271423388757939387284208032287914661465211841794997657710931480760633865348516064896929975485498796332276847324650357478879179052862759693943732798196742581413495108406040494198908293144291655122421027379643604893722124878067990427463388700989024464402083150967366987130285375951520244712907505850578547353954812421898619486941141779446672906898555277446935502702266178850249210235605879053370190841614109616973239664297870382514844053731083880598915850178689155293594075060245507566911156263806507864678629911125680092752720499504372239118370719893762051137964442267820687668007150948608591820882180881035416151825291734429660260469346178068593259469041280483129338422249587421082613941136821540992301740897546554108109684401251886833516771439410632371645885128480576550980877391166423310457359916591294906022299901141564457619745344957835953889958235850640084869285227829974084630626908475106633516375064178884102281240857204620543839408058149340145591379038649366345726473882603027886651519811945349852668862640419021112476919366699450246722280361979086706076251560001560169293837887947868308451808360045174566138505579227370200179688658220997522273052835088224038098875813867703159329747122701915500542580606731895356475020730717382200827136825975207121040797318972951738566395847997153382087803087399247259052533566691739198061923142040220956994562285884678666820071852784676152786530312215173179722218450737106947818645843078440255442733068329188963599551345460816522259599631431070865280583343085216841585164704028779192105031575347177553804091022051181735975022660016333004940031838517304875283864634886285037116402506397224372135036265712633487395448328288292728416509249070348234799876383858622663343098021054993111421783464954695447002415423661799380173006979225860084074481024211636230510972461523716260401682159480481820794851037885510656152495006912473277677499377505079428336526754492607553802812916417185581323382300758627877641010348511899374953522321660980611091623135416729047874938115055044047833297064179618815796423468364990659398045178448817990932149618084979348924307274910538969302689325932450651788356526175473823281383243908100789883679346763963926949476891989630757374155481940946904633933846586376218790145182631478148309931005231915211081791987224528649193639611056119869210969001129367236819038617201307451496906097508948906750159603346518042590036032118807963242963354430372987791664666187009373451023219469020700950752487529654211047499091836946899920821229310666142436272609589266486355065797321122544471409723153222112128073795879349138245668323378749816366655685062921688243720994576399179381212625774979001117771901847944802857457881543663786633150267931893255229499565972446699632373066787620241431185884595027473684501716651223879478532235205262056337613158634296499208136597683969561028570264847638296997946700868801904332538039790503407692092175170521621821484286056613557388814927346458234583709279055225368952308303443825475784781810009382845350228757094386874126033882867354520155953043911858231822092459474563806345063551977067209843068010585730734898931050863491625538647015471471951187823254041226259515525296493691753588041083602635384401473186740532415695703196332507931658421391122629836820758581497451918191921718655121071714113725936215402380924112145593082650965225399554674120864172116880566700334018298657472530198764648554146387002247858617822185297008890964008405480708933663769252860094916798237197498336771465667298955705627108040308618402729950610351111615810842287004329783216499420594788532315147192092413081577460414010496927190396368350371314149487937239134832038624083506201262153217155105120028129125477380233991210979521878017032566082717678829629692014868363602125233969617994844617425392804261644970325651978397122325918950811581446510751190544844451618686443627517451721913853308410561484125227449078646165182656817504894667207493115142339779501076457606855639545831747078947947707766986096966162408991816415687238800287380218655142540579357437283031932470811963255214994128541603743928683444582416183126273798642669184413042427014878475417468675559230360197443930364648049592116576502939061450122023486213524512864408725081218742633883378124432878255388060007625874168037411634452351603511958474652679847064328335289686436787306337146287336638369536989748982020882534629167978108903704193801312265106781641341964262651816498238855487665569667658812605179049266630841923022692892023437689133802866852877287756955251214074309785493737144938278622160420387250672586566209264825643328976438122343336519872353821524812248830245689496644644101058741466209541587109037867356115367482668642619944386366526341449001576519383109090111047484998756385728813360908714336152291610279766519668563209130144467377528479628247969949195202895227297261860675941970473861834619761678280632666504733561484888358327553157392319910708121593331835664433780390635882344029046757298042924655862802047041882751054477606589713113201127470051935339851383228423401287208582292125448385216311555049576125475243352257178456581363969484723003404361423914228557560636319508147872298984552731566603725300669908508762054146665192104501553140054827075215619124312817677499443120658657824975500986843599786034755374730823758034811693998259433237137306528635292803002142433293974879667596713585273926611743409867250150632547752843016986861803203863399599360014240311105242604895251214243923375574623547558861524264289921589483121767853330275813784115632509530154546663011137041570688207303135455894598646670574696639544402151528533115900365777809110944990313627539583980461912926412021519599327670532830218052863492474079815841303641764128200216516831557332899948537879669448944364948211356700815246867507502064560965343881944544268194002547484604587621015074394093543618161039355173182783163164336869496244013875015383942339576220362386305977023047972284840442591954788159080381040899881775113564942951533495122858612614131004709284610723014815415900616987617368112063365133492314777223317332570184193301943095984701530286350244501588163075189840367070879397969081097569635128253817174652279961192648334270229923035572555325661996507477499651663086785835247848231667476964684303366429684384743890315914213323453996337643522054899893320480538856895755603502745122391710521267258148698413006084426580018190110577978412017014595888717370311886389037902510669300548395303345833622972513747025870283734457768555375463205091463178454422996676015175284171875438826505192171994730457494619312509795303601749719693078725377728069475783740763706608223529975170386184458715292778006769995033729230867174911520434963048476082850763136381981555758046818945995709950617150331722837984161944163148209867821821226208963069953101960289704331971032255705419516107928220090750978101430433781756344416160431635274749488747794579776405930756243798650536576681093275116163498521253108425963308039333514010720331028588776568143513940792101082317313663545933916283964397019218133409708855644753736585814266590648172774642228325364382862838858949033624605837903737045691417254748652114146820644478544231264195600456111143530101963775637035400734951566634950831003340250948010564678799119910451970701652322539693794787570503286154322231420311979457639679292503210021713119300243717363090859424888355025754549825236889705797759694797747942608672352931978965614045939928492639494114734467732113422967922421950351383050589326686917506588686816649610943379881494300419732813893291222111186260747404821328649654930668595680373098295415452654026370650314462504300428989964560902606902516082187764985089707279678636859451934623324826376159327782541026435001747981463685337225352038967894402040198028859039089545253571317181518877946006696103715694118193965801064988277423532556763351686509502196818768143252810390720512017554131713523507708888877941185647923556476058503518582930133505272912737607477964003160087675371043327333605607140160668026250156682965518920530109769941564279328976683050393410759170386365979433977645006639829973103114065093869729384520424433955636077266372891825392830179922621947439430518010141367275492022078182065716496261870578770573422293109250982231064516268993592371411066907693860562700374705773957310464433588617916689195384318141815357080380791000801777505954655116052627178871033207103876378290226930889273097002491494423290437917487090249717442577335916205641036471570700956287269032739972389019955818362677763821778941510061190498433304603283397544105957471363558270068724603475374343747061549086353508070415147901014904970102066788062458669050286665179601440945474791877775012310500518905183071956068140456205565702730923924722839317334143415759967950120797185160642345459933880392448645215039355352600572361414634897689740099539561872909567373394191279334588343083435772101357949292163181906857456932999604006906824797545796597718917068808844579073146559338122375192104491772635874630773099284714481502551725609288132959819412459580133552614364959980879267735031930718614469505551737993798159922586397537578766419606343669051408431489088544136060321993133623915067401977140569112009845054482593540910166836299621120563515585096235588535384417595414122235522260180246364706078340179585373543226866188476423564038173586979155749335375217172805260847758308883910810829973305501110436807456902628863940269202900670800848971656060474585173115627567832916670327949594433829130626925867252054338096845702840582248409420719816114492551572758763425899637709329353609673225322722893561820173951071465366636969554303683242456786696336498561065198458334101837432479273441172743006583361471578319327673193079787080791272144195304025125333533779890587510357358836101195950510111795278263654836267821361729525777880024511365531566051057824892371323595921680686540429674980782460029874968744057291075735035153714842776040084700520686977526186030412012023765638649186999198350372529860219008148187058317730547147717918540495292437947732166883437467608206628792563089067186542207963691284510002336428733028714493665862191181801982378261853404459258942882720869224776127638617187294047480860627230306979745529535127936626897729190123000523856786140803422862101814447986112041194696419585856287483297267846121659805005681920144058582311820467982194939816484350788056119852479661662599010407202495757997368804471076145282729253145819597270233881227104099935759523531952477927010679196674390188126568839932616934744074235009091220893981078544232386087704122916740058207692849378511074428081830893380419358819456013575359835080172815611862492774751866619266850344230998033719882509490628616226492141373406290757466101558408452163126219775118981600714376834173279833285076660105897981814818148429888416738283758584915507753136084648112728538145547272957869202400687478097303279773731642527835484919798633243457192502360504973976351774969793922098131303864431911993420132196613268059198481894352100943979082100064430576040963535242320762904169171230320914569538472735581099424968849083511182389421304302576724289616393091209712918993098954068491172712306328644487490230584678267762211625152157114191980717340670348140877518287274043285934897646512036307680060892062143341915710523018246134212042321323751271060859558585703987116844974592711901226156927406470064628337199272546444254705354594621831445962232357851156211311712480189532587865087921856761590115623031510360210366139420519963106292421660314666471499732935249717842388796503011672205714251709143537202579781745236389019705097750401519325469631608100932379075706920638266024013383840920820080711856527649432901812631388489011592979429176780853120895865056514152658695811304000943692596214835934548874483039471367726154955436008570576879774143700340827429297531585800747928820834794003642181296328460760272871800820651208945607087962086317520258081188822457940132281321066887138964549127814519978517429633843097848283153680374908497097194632512606519460265568547806075940053718281356140306433436359230313618349570733441822616383254139782853065474650592187693672046549110385900098688801575417823804085777971979261994804704902474117819202931438729712542031260948508956257576854492651109140847599669050581492212301831652393088369616336607798273606604870144190818125870300711327668323019457896901960487072373995321106804063046546504321518295292577445484234680231837165281791595051098185566129604568924933699621498545053881776300686214974670503576224879641939734295678596947981193525370015970608995595567260335090136770645415711881304519892593980706382740031271444818790140093747385981860176351968685469341500359405307170592137398262951742571513975350331400598913380574167133540550494377731149801986443542599173523954724730767349528840636209921663807180372118783948077208731650557712750155050975536021033185207829107665597960367266560228090657638071696067942618753581384835309819004314539415965461608675485698661498158552471078789293475471887382270284960289866471883824972147009824632457475790121208783510140714548610017975575730902805933069905403545427853695950003795848749240637573321034440784999029130336657528619193114490343555768730212387167515182829757106817325797241282970227710515709895092847234467246902337282864682912207899858521229164484267954374831252877799926680459357121252579061161966406281534834956121072789980615215749291610220189435815361002003203518360252036058924460970450750022460015319831448007014369561365639797650832557404112366532898088293461579393653369419858905909988735999365471023753657101021079364404948674006299034179170612310937141495065378362316401113836603858252059554673884318229317248760580878885686886426487109482649053061404589538686484769650376025098294407366286905639965545220004286565257131811990984602710835310147286797019521358957922843105820148309573073346627714292158103292125925321420612635275144889241761152399083965401142842960997880233562262526207073191213993018878871800177196758919026881342540990465590091323413772666897424780991936362126474111257997171089988351534187204189878031148640630560908344446169077196127518075959380221065496665642591510273595657984459346672293884120514102564867976097397115001925489011856247120377543441636051928337761686755881444143896314940984899643243875700250745289669951979248386049004324213851540081072881296356313038773266780420649967379723586472048238665193305066440682670286822170693655896367600202018401574342492766589900868191060389174817314342769214656756661833513026154105487333156556806814065350224624319066423884030368204738901819346682763022602240797909412818546942390155804226214382625393647337677145714373850736413854396675892742160689810110401503060627833334629024853528464390206062083297536477832021498509207145335972424823955840144524395514906591987958046123144105143127106673277352086490268330921018067635965107142901538759636358338738649314739955142156556522664039795057676097667945210633361781414122348868986214334699119114852819057542549400127723098624605482353322023056556372895588196319619909506807095183637090044032887611741996080252112655248636895279309244781246944188550595037980893820922530833893416982966529815140387363854979882828084808397018602093397702735924349235220480027048530164066803610496598001594988435929317316753230917417179889614639552584891892368029859985756227841398505680241302116722317751603934359563088533904777089906851732478910835910018916680158099570326279571341157946502933142027771937169373881985000956827354842585414500965672290241688510286340709166968378212082801440250731148452572571327377196324093395230022949457947115492301919378415607012735222170940976742723155863612680999767353635836888313528736662868994131818186671126902850087280681624803647033844785520659616649073366920414620364700568469959337530075332217684685754335235432530736017262406604196418699558799754880782239565013298409278916011380156382965797818803475014839136708809075530155015580263665350181838775942993070230442186512247437641361721834237821408977546154584362518230532152883625309055605869320218118578459571489026983356194258973854300991165692445753706949773317024453005655871501436541683255845288834191918300752171397907564086349843708015333473912977935750613090003051584365038884291655045056105374873232698135587402746772681102318695078466006923213295234206700389771086071227882934198475486179639316227655925245144429957611379673210718266455261181801107694349973910774251657136039480398170376183880643170575741187021021479354616422380597462877134073186439075650219711693048453850257662530410843263521775362605892030648634325597116657545253495093063259109652518314241632930579591531337507967548268557890559248749239439551728101950778244926077386248229463139809627186326678044980792604368347325411330014699066615821288814387705373879444826122495161856693698085218939227621936157886029245875904451774965936156234312130542454715641642185290281151939892362389038212431245388792243782557473475544317386570375888793305727621261445202366975572499686230676727919153226483962327547647411176162729339224119669268092591766958478676072235669924798902688742725039865064425926704653844232155393472146146901651492766547715672460537878744155613335352576988995067642964305047975840056651082735361073677814390830666780026605733495252353720331836911467760593367634086797604858532506470211678058763303742916407928472143740188329466091772276115089262420878634915576032554075940138700036535724288994694852391462234444078272864366149659789878585319978208334718950759090919910627453808570974033155140856211276108729547632258997981608587245567149652680783372935089411282529379394241320836316845448167376894920509462174327033833643378489746038564354721858950285322481211222040734232988166459321529464288795426190023506365545471225314511113037324944880075375510470383830686839450391667873774609605433362597435229135349896756350344059110979048116515719976625706407387869905734168858595532802060469286430364965926731580336436503668704083662128631270321884440505516238042284866333038692752702609295555767137215174716246597267326200663757896774894434871825703708375318372663760895346860362671512767894113494216272302226458743421139701532115993506315668100003521614285280613131571298879131147782819354110701724668615684313163199373146369351572434320788294228411749798185594113127602496373311032587934306009313975732491233670307844647970483787416797663999815847799249296950325436516050461577911956786901887220437544956932771734730237718171952555539532956722186550996850040775512804215313354935014208409524769253876253275248825570184755345327099336667503644114868491568591548760373928867942982246887414587418415840392253501105565153224581655007298354214972209305894789351305328727791033570294863137030555440137481960085737708449696528824678912284482925265842091285731115666149832258709378558444985830755815824551894150581774129090913420718306574161996746493778120405462098124331307610649970525808256459053613937816591218013967484681092977736660852447406159232210608492511182226953956376424954503064518248751690568565385358949222969939863112611187506108521075018311419326567408907736889992680375848470390022588919534197281726874597408824195551050219551941057038723694371540426454558028635497178267745546392541829615792075980835684465140248361852923812367776587681493444883046355165890835010086967058263368837613099201254758902388446221806192088163536458268289688306945299534812095492273156823555073632719575343744953457656247359931432119758475249552856786863332922937160018378552306626224294103609172613165300616343908835196637153008890744692322342190221059208856538091107310073628078184242089933614613889839089880659779584850337016946320893816828634349502935909177154886842885291001261559733299278920692752539960868138618578622390962411482271449039692998381863527846818089301281668109107627850252073095852966286508782536973430533109612357327402835372246635911385369779042398188847699238398533797281783052992699827043718856276244662770892691344183924300587656599484018532249363639023541848647822320183781624124719478979601290596827709369113102389985252542393529507580602732179868574104917802067878803507021397114207911473133566555610876810465659714033458700277077064966580949568003993327304692883910061137470417666115171657172058243978580955150094462396296893095014239870892614851552190943290930262638551951602550643709922784508957009519263335902718876032224506875732604707958405162684114825061620883839317566564854473855999430440292660045815160597487945823018374130998637062098406013685353754494233255884977904164830692859674304873066736093824048292985907449385755131010562838988927970818186327675724033983800490387756306663586893215126533601891067581203251731175360954586443482305586553999904505707843475566473139818408778383242333725545931334037038780511058154075381393816305353275432493804023664884507917989588632446997894593133614891895296516216332691037692088116373259546293541603825234283459376041281762049816163227204004696322299082845242315351525288637961675822408181381985146651480117511453531635967424760448138842154310708099925728506001412723169805005473921178327483622478104267132620939961958854047274021229236046059220749462480529064877180111972274901088167999192250249729063384481832177590959160295364542299409678806647133391838680171544466318324090261861866753658265210907831726189148429206418770560748210201010775021692895821077155729966079639012488894400946379738397412319305744336381338120424271562594996757456005420720624625661453714888717528179824720511087992370106531801374014347875692001410854477802386760972662064455297223127326412741056168248259729464967065711924793433156194985352676177824101170988908373635608508013654318243453177808467034487997249954326711336928313266253438848983297737699366026507336710293583329536838496360093483258454547494116797901922913263382745245765797768015408006646665645503935651419503089132451268317015890500544201371774073049802236168745537506250478297851387285073364655890697664526047956526864038126631864754819672269629325404872940361955781387004327204372445377503886366434092477296478994268193096327948250620836493965754146492774795868832117995488937218410358022301858831838116010058514198484522512116520772591458108553608115809957823781983224503505209554900634976978280169546598371366045263443086605273878866441898201268528370895545019369327319696053352069443177121041947489353608267492002517764552659693580578945293863755635159744011891963090208508318955816173362110520212178366911435334903175797017133220112981318625018922271021975224516037232710434218703838802362162842723622998631046871286473787289569776522651507112759591556680819505913999967794926966254695564320330695186739935167587981813593226206216310643458094194558969700242352226259284336424392252450296356806934615551115679624183848878288687266876049447723836946105467063582385099252763967280828610145926592148061588274676501333735345908096158202615416877425290123748382394385602486693637510072664577069533614777203032863744391382216085179919724446512063143176714723875093386662322838611379848733851043245633386069213291366135656827891573650773843699439990968697476997462587849893479302830517963666258429852135375876131642890190701917710939176659143771331728802915544266462792875569243923986756790334113686356136977878397789055859386190288850897040461512253225657469801128876093005626255152072104266030287906613565247102157027868340426069842953547010570216514263648178707383663466030674149334043034431332075289743717499171252659564063582896615828457292617842265617457416912733275334922674483377621968544383105842239043394976934768335372059551056599131102495476654294928646607352921400340940147694012281835441644650696659569923658096490467429502082343889628909989926112059318770248982643716777535471429719879813816651614160292825092181588677568270122979185751474089586445536784658465125011567048703256112405267617870410000244850419923231355621751174630672727109524927647138173939426886421928109413145769015205396854594658729710972897524335005444236808261089513430488732638950621471665504084821138519534722074771225236819102550758107721306422142324715301715814001506552369875857275336147645030801445476177329679661381730198262881741286431083379948572464106778309846539405007932788586063443039416129851459387286813816762006801206317813487390914626104994427466404346123104477070610872701736779887896989084572399825059032297807454694336414742062797353045419989541734903368886675602793517916399703243988061764450491166826521609432292382069045674555118232186498677208452696148732019983925242660171032592456847347836572774632033660020546885280595760556624112096927857544840802384785529746864385344766610481937177003372347405695942074988351685938222894469198988235607268765227452416761486715721166924171318354911971863583119275619918484429431380256314458332173902055822528599905701633611966801292543841160689073608610454865739458535193440997875885736394175507428070990118492728101475924979204367759000923690073421407519867629801311788945267423423806443899864782281895518992983092714151874849417261691270940104532395668629095224700554622715918066035128649765209490588304696288292845725052724723442457530596986714247105954539877824390737271567776478920524821918214875842027027994311254559296409876662149773551535361861387756459986515194398968547671870540666425415050059565165844670364300388590891341071091367363873181286788308818955725857902479072614830392317183160154276726938512905019477668545676671054329632787991525190532721471034092870519704011949967547317427855480180131969442299423624038776175857719828268473239134824954905768357159158431363689253194708902233717678429949235599626816353473720567127926912354670694410018054852121658021661190789018809155528718068395007619750827306275387129776507385591920315415146405342641386368897336943372160225544985045545528592510821026556725727783593040695352786638350541457820914337102646641893293340412000770141598147860430360733755180697017907360001854277879205105575758683751773360341432595075902574652140290479852171900282134939719171444326794925394167236149083187978025874600117701710878192005627946519781511537706486993934265340852906188193532418266483477028543975851706980793189343018257320608193917172027341778213434141547993994887127926373143776542887168473272120985724577511476270873092903279837019397583304577631105631255344374240499227486031769277121751156148682225196043110287970766982730809609194719059450954104179703876148468364118970198191390866357638352607610195169710626805547644129219698427139621752658318677538376026889145185046486812923133202234032139281514118799055391604028287941048797949058184641115927542131083245358948811281650992554942303148373669632038224588424508865937712893894325775211839777019215873692393783634145092487969655910991728860443095591707911441600378962612409268823595316251366759913258875436778001181060212839681993589297503075983354846880704095545345025103639495405823759924026474312689559629871474270179741249256660360165159619080478316179986147991934819549746839145971170573599854410541460783969211117948325834725555622626560083693647122618877832629841426801516040389064536988759732781514432803255369033640652634760835656960957326341410120183010870323557669569885834134492517927954113861459618227053128819773440852063118178810367650838750648959421811633660309927624204520902276557545146254462582109609959044393473866867530383526842590350762047521242227283807290446469291054190535049433977242465061782089553585488602224761610809290522153477682217772271352293179701721066466598921216795833807764580013282278644520665193658645326524194067051394931072068120571821663846974695774028660794398742431146813344497280931874349326308902536111305980063635419693809012704641795552416572299844180081478858914065370149047571772727735102793546023394865896426544499889306126060271898134001306522263647830274331866279238418394194231356445263101123095254021320896800012321624530120589986418127005812553389747948477340510160428374349775800312281553610257341278480338630142258587863283588415941001760188539716011786934012172329517728235031756595054359599113062050783557765077014000858366925737259118249473442814307258682244195992659961573059702849286334237224152058785482904923409365793146828792415457128692403883240520916369721945619958004402776540429655592207801701206878078367563932071995270930078023851936099010163049294121949188411554183093058143949908609435742428946396101813993764937129311985919967916116097149474648924879490574138990011358213267723009831816628158345098671189782049189563885726864203956080148675305353998082886541720064608386102991533337900965616129588832548479593746480803721272550635258521752067375133628196387634015089152261125713447650553534170933475073330715980064346264273465074355485371752775236158212515717472468196236756344406354439516950587308446652959024124933397030995587714811639142419419625506067536992854085694615466440933443992172914964219616508276154558807565369871148000442246925288096801462154459309604695974447035463814687146607020414103678473117858667808864074998012766831872855021406640216193607126086240066286486920058553250750069516526824909996722555211220711703797166759177168140517242490376641968611647559729101587489962793581413763710220986067883085818497649203842782335885929027945858994957102832678887331390905679427376810416407603918303764256356863799210440660636559108665246186892547716792834941819541521350223040698541034582039190221148852933284364733623279443497579597472310148594315502376321450883266678670367114009733961220848331577015122889731503542158288633267835042381290656282932509343570325759325007192292954654358965735780367274632041836270433673394026836794663598351565390993441704378498484350647993569605730845017727153918500413769128492319235165826339271874684935385304111081578884813160493476788726051909492788395864423843994664273192930966834698415476078594381952630541751473347029265218019471545251716932832188259185580957493588094699177295257641983745447321807437563517932279646552090934504849665066998683888040750203946570977735975433843243096606235929131038580993097426334717895363934080843663940052779786612533266786884549894290609071195400348459089996177276310248709488538552723087307891903446052076567826306993981838787182594264669263306316029721663368659766207281947177776014028230513189652828530244062214406162855064567771617468826831620098518820065716068201905781715084373629936539464145111021413975614682781825861351581374229091039239116647930694475239153096615416272613564964789461694856315261856394258603190840677546940284596815454848183766922440737570048985968051099411375960431364645188663963962307158668357836329152426444289267856791573546830367227740593455230737039910880358315962035776946009493275323963564943298387490178271195114142525058597655016833778848870038378986021242303422852310566584102085516436334003841884800449188398155815105847739229012380296628639697898013584811555285212484348963149020486341582486525145405486841884669490436526208796969217879316321307399406658221674890576272836090705752672505307293544359401163013897344082744463044415398247471577117166715790941940693488818864969792246323569345933786581616317876628146882075771857477686014459833313519322819945953361380790824909532848354834482869214928254191192175529705929704547722154449631976515493722571487234686448377697256241109149459864483988761611893659741341396048645663993027483473618331589066509529242540086894397364163365731088507013018788628015514008048700214397015782412550380409371213937442611032312221205868407300197828876630698742011367796485941012917270413935969409158039816239503664867668138987511720940174213591696494029106272910500118533411232896879397268565915759633092499505484517637715895964284639907689373266324351989074903887809169145063586627271840009919366863989710710498362777982285511078307198255251650342537273950431481052340496052421117956778652379483738722504309954549015527962382022138911740228610985042831288657724331172609690234031758517048558515798141042487746188378839718929331103125457073305020123759796118451349108836365886624514748907746596389946462670979393610506741691275122206856870115205803081099545998670771682115311258493386601858086296382525031300292218499839100372836360670125480722818543404577759114155302036011069799987431732620122691359105854410236236433276834555009657190226504123397852769081156605186926647876000925016670466524085914128191636602186096464578631309586668169872092629079563687735504606933947668451587626243463569947893446716479151767107126265180133696812846809274105303421479166335206881750564797613065320892550007141416049203909068178495304787522927520946229404119673254163579737371829540864967258960173367532466142655328691408579793492248119087109265939609853824871388995378577057459601132678438371831161027322667115201707961816571253830909834346611493865573655799014143103060081068199236154596701210541173427442002286131733537567192502292844075210161541414179089538067045139571846282333319276564770471558432831400354222166772371766817325722852409463083222656491529474752567609856381637862615509305169294560070189029192050944024148549010888737970258406526309373034572149135236006018483542420298654786065783198952930537647036279012330809644402724526301930428567685413280042698219981469875797899933196496056954192018425204042333583353201733033230062139682934134850003061317614938082302675390079839778304276031651196429217644388328845717955770879767482998868861016445562030817759697416684557957657202676167261289384046775895105474956232479227044079806782748166568388868437834483787296583682737143359203382371570821119787340014230553626873043501341610916204130961064096564748144777733627896423144005269434096565629077996292946337299757783169362276961978852275300567809973399838838563114043775506731125825991080385686368901642523555417318079666447348048765758617500126523559221024831231580203900011222399797976155994836795974823507302228771719787188163305514623014562180878894290727354373934094634907567392724774107251040952090904171841686513074391094350756948242071665628888985099958117347810821832859636762948359367015086434615683066284050777266262386281984298387264826668210063566707525394634135638434346144893268310826080390819525886173074993641642389235988289495062393293750130229464118121811521763908768033527510157075783747693057454074443315183803623273145002510307378833504536986943925593418525255902749907076047376198815032371059854107586244569471124125089399062496903634613484278699124964253309697416011756415825301546609648283511141962371752416127939709291976164029332770388206961271192313695899992418850176258715206804938567643636502190800788140071207935639601783508474452419196482466532779386477016255445040866236221899936746455994321370262983898078150006919847782404904858014156579832189734296048019337529777304454977994433048735229332616256887805690831479806737866240649033933496935303492375460515017885288685108244384188176853040123468864416510468366847799837770512382870228035723532006723767670554297793768468669184154851148825193723250321355074266623340928843714582192733293111107877891514494294072798500412437494985989536892271516254332889532751489604587132064164148856312567851811470614853718837416186986144440160344319916177815592712294773478279430364556232851046387931211181302687043953667551445004094047477335646283353042399409335896225063064548738418134945516881084457996751921149610238939474664014000413188458012825993649099935075838450693465301496104908206281447139540771536911646167482341153568235138696419195719886712771632244053230834835131996816134379520835877428958441926301702348250493364951239943338087623049042211210506268900432037454588107995458049096503630898904520279522625344462633253858430955839281462153613074805278186274598625830831491453166542307080049646199110632081354502421226097394007070825903268275346855697184399588458470923924702910201129993686670462147179390802668338770438267091585920705552397066900812781515739503754759295633613685371417397773954276334155524346560451710447705297769940891880775982685770440772538221355077916788932188831498895661865287318250191703802730870099983298471667953448336094921072667439120047972891533843156872563445562832509105001791816118649463048891527778748242749870660469540510666831621437619667482150505118373386265542009244521519715739709887202204547392216434418393758811213048023356613894218588600642050271663309397375364027020785473663944728606431500554707460351594061972238302398266432190027127457471202229715989171056648592036391274285193561772905781610967238865632645227134263004485058346181126890758403220847573894204694117915445091094025642468061652811651573679752438614731551127848895312099669336617294149207788151274530283052710647576553185315416715801034336875266832370011506321304532682009726834350949687440316806671521882447574978411538834524171020053184421862023964435936991313011520799799779197059335958619302633980101171937934453784930370040342978625010726398058094027793196778611775779025812140788378045068700008589918697340110866861116933441840830870276340127426345908392868359834936608632356453328365886139373717328994466900649847800625983421771892697660865768718649032841214727291894139251973978685581160592711724805695777477453169697726489455695036157827679963301106392379184995573615242606341245032580706568394439037617316056083804608740988737197944867845250839100032706619199591658996607357339342683424350122907933521750202569523160799292205449848699067339309203353798780626665153180803392424457806588471922622356047834295771554256340541222263626947388005148292044560244778058297916740548791282207177386547320924336143449924478273537071666573325222525638209955693082509384043838252153427100687214308692124011551538214347923261320243769926805833263074756789924309917357185269007069718308014116752596280103568885086939102050347592000501197895828724855200386003596462056651060239681010613539911615272556514332490944961252051368504480930529662456287187467207512931989457736962203612898813881667334617554711614928126088314081462697204962899370038587583201565538702261424160177869404378040804469442330199317178048305106181965954171446578376047535706981282621742226247120085649425721884211020341564066567721160114067545353106974024984798624719949268862573489764955894782709959777186363041285598474785146810229147434463917554077695532861827025310209473647913068386862231992315017399885683276483368888476454962177220031018675670509670013814013529127772604022989032879934677156758117155511596876569699249620093048716034715194683515592782102598777634583805237672890698716143252518465102245183370489463445270175504700089752895896214937257878681234156121416988637960958046428986970413173504288840938222065866670375742153958044934192455899147550682398629719735694483120452616730420694154044575277387483474669396339318203898244724917148643141360513416363827608750091773569503404109238305959693420726089306645597995231511346658459148275958934707012510948714263394057774819133963029624273055835166540512732220858644389159464609947617807395702040676256241815313495148447066701863186893151412097750996467599719960736474621293074254728615797438459968083223697251657514054597586352641199839833985310917971264350087383991901991916456462316208741199320738948384016404850221984847809617494557169799403998435181858098346656033470305154848908076764034582849977406481357089459798123429146553400658605886532977810686955596061175769056753208105252877044952060143245987240984152203864036782106611953561965615743394752316508291727415749729772269381883154366222169479156671685320903211404752082902476259368720624105444721498115526517462073659085458624958343181232771978715115100489062184223501330957412678155093082163513777399381687152330916939631574421872495870726884474092099971622519489591958297655368402547650481022436668729090030555922496698949307567076619593497166551027539617180419066867164634070998390054604027487885865125264924983305060344118867448364289193886517481876738858537060214803606097992673292882889192132728480048010143289381648140740878958118546854313516043734824248822275424944512773280276172859694435963486179070024839020830823458626385277247691740758591220719719795769521082634682244502705542210174502597246521097790934505549905014693638969425484482861608510744602504275803113204161528648204312621025218642879057983504866761050232830783089072848501207139975855900310786199254560053492934827853572678153223292602947341908863414944211442517226171481601212496253968875808506734940079489310104818286965126980401730821289962791126008359708655619791368720970215125695982538016782674649865740547586391915638074340583721109672788644938448312308454376729843120288912015844583670505402057955844160201307073636707536835894908557934704317385948343611816485113410836390249293090874732586573920159367438597311758101819470395341662807869994675437244617263462861956065020221621617404392565870965963570633167968474989792872188824627934912782235428079885013812840724661728387474970567262528122973485756434011182458692055088001155328240405063441069974419399391622508944121061162446864720875516183246450909618301976261752452140428754452995568892163997536732411259264928332136845994317674971203400221958399450231851522227148344224071236312911084144585609312437853480356055102696422638888908938448716833140462628397842358548250252231546749637278807221045944761442287298242023467128805831431353376259832529762222335903270114264371782575995275950077962902595932087443965603378227692376173309959153319434570687091500025922354814042682197857860756115826130858193380960148204775224214969656883157720653481195952730870827774025781272950044249279846228931780011401823782662555452212111376881937798024808857684492506848319853168726310979295698919809730091364432201584022541937245324353365605220159828977981941229188762928188276322126374680483060592318967256387659157337671870490010854994183228550132836775753318441023347948592279937618369041086018342064017800620277335873999419988862331801556168270192487074509281261246661901812137366322109468646526675301287078262341646559527028459510492017058041671293731465645030069806585449480358026432466930880443409497561220271512347931077780085053259607358601819524418372781600185885941335664858485572012093429315730859643001406709383958381494124642749822224575319422139230970187825473534331311743001025381009107070680070624307103603843501522237970154820076255015741709985340509029719182627218288066801365326615803419817172756713921305958514489173943972433622141125423710563872210532678003200591349145342380321281459162907456089545645719330793166318305883603259075976792319991938875424357695450207643014768512286216363889091561074855062980642368330573890099009974088202001032727241454460666196233661694751541272079330148645545305325938790205261548652352536896611740768655670290347947498288920759651294204745163131222602126218617325840469999937349531632559970553917475876804283726555236104444361774010627288064377913993013694393905175694024218119331338400334531029862553436728681550833798599847558627801014651755371129897721733803672968086154533636169135090199109991471781211965267992539465577733238237338208289388133796344066137395725167920837098720547365010559115565357520467782162553340267085968819967007152872345006140425768292217093012003204781950225444253931168299641486329278922785699450744067059464379641426012073719115137262937674199862387171595347170448673551807884147387499032423508825695948795912887389828530222233875947626733901184368959344515045053179722946158680670471620184822268237167618869210725843091561958366053367633481627139080501018521224784449451395929129980153473546168409446668709309216628215141675730511073991836602887748242822752020425932478771676441184440042370447114919649629927343543970195047016114620522255093217767120863874024145824634369988991275360898982740293442932293718289609001818713501371978416770190962868708978954808244020034016978622703362506534496901790375101728131925522467493278215907688555748775738125152468183644122778292238612874896590017574104700839104020523790888754600617148592946408940470013191260097041763947313483553573138130702879776247021817948264433165157243581522129832520601549745806805722253932961129469679270042771162253969222669336194301125312404612046771832533136480272603846335043624893626388794744011005858525431688584869154094444429579134302589215573406963932440878684579663449392716243212245039801185806491384830512894250111652885916993040456101434537933487512840787646349026744284893589773814025315175858829662482828790035796421148621355154840441530909237448592855368453151023270583832927204632251507773494464133691816572281679231303975385704264733621023051520798693801301668634482194899821714660058838839187798558275313944281370373627298160080878547267374752283582831462866177636299031131952752016714081526046820984892413556076809698927374699831996091982591004392295555815931669463129697643333060102609287436351720689987013096324234525178020544123378021553182609672843593972076705522956498408305669504726083209624079753102605078984857088591289108106262224985348822440222326976189420652591952755617469913514213256344684523921070022367242451693081468930294787403034357110533761490596430260086569166290832673107322276325003921352400698798008999859972197008677756355301046864224831679425262391090014496960195544199664604905982722508482017367539091731613233358128773700427946796518683701482722767662167751014267102208620624264767205490808567055354512628088002637774540319329233311152534699721723475155408790218546202694193930126680568918747868683705897837861650818871480345437498426374717428684100354650002089216416420974605310757654673450907235151424315066654000322889503785725609704953262398531735107227918437154387337786187228989175390589718492179165338748476107246932533838273511921573568485187929179022472572948721585761448840400931149914869414273669284695993372774110312113150180458697359375251937103959002822486839371503839384286974520821282931234802280043357241464587336749770468950552884168910512573409498146242092837355931659034057816320002004673875794096347463793392205094598583573909087953555183796185547207259884585680289475374759221307678712023921046655466957714487514074134129792651724769229123697719111989164936490531599098302724782331948422702412291088340500005839152511874643300488707971965036408190043504362830919629010658769574782689174287960604273160390699780159128132644943612203415177954603860244144701535893339935285965750903426968943141902573619347785118640256616225717737196952168201768364095032757377637967093706753044911125573374268821078128921600360582146317795214473807842979449617447838817100745168385988080044455735758739465301401125243785702507598912705366314500274913155539097101990194400273664859357489587034154960423843035772463386080950444791667454575028378258204678636362808039650596783844322755858356098544279493565592079787869441771156864736879803254176922268528704749469729354854295035625871718814572522076479845265652786748765599805460644363169109259814561125149870410510747216380487346024669158123349719457389549230738719991710314669349958056850245940208191577013715870370664381841307667432045349191500758039010845405435708131590535022081934948576575123298212431651897032174074702407227485025334757546325815568366265447657600073247424765659739150177266390176345356614653485243413274552021055904598599018359639471630521265383109338035261892855733740374254335287978934212518501006543345803983092385517391771842290388791415087773429253071354724235157053538267479743894339552648802046395416925295549240102131336501864613162443412605229806926676524637372671660907130179238072093494483105799798224149903225767646493107380498874257974097476183393994827813156616798199596800523346950289796224381833678473416590293977318609217993318221683726158935345737211463149019075574287090438810799825023938398207125845890219930180662983850411573598743488611263924935870102732968159301779191254214772482396535206479595670780073066252310772214187286895105160182698207866202012791338332352312630171945487315944557999051018136241555076095335443181967357932590598330264834908230025226683243890661505013768994634508132582342642464265471496722820890639637445061433639005259106700923019928906592896743396367315021054572234859985694642882430668259256370712848750805681164147037697071222627804737752845824509716117319270530652317303695540086700710762597726560114029219666207619891097348872912948951895765530913996810941924031300165477725348197891638997029541346621725734515956065685292603691741606441681088013860388320310017183329634939123509347468022910836754238816382582682243004783958475973477124058215584862597130505037271136468052276433249216582953371677018171023090364703619413854438367763922440450863835374754007584570624565821819528043804939417484157990164016872083443803271593087280172774793449089494000782144588898945184901281040803302894756035089473774970367057344285022997317680530597457666721417413770242818417906351970792682486743110216011437865617299358343002718357284948872830449275437627385943382230960878373886415045552653488144589824210865263204850144245237532563230628080594184016665412581640980402329422874778489933464930824204902561799543147528851631167363021689690457911225718997948681348399686801782641955772472693201306121205972985891075214606528714954055232756699630562849753503352300900537249647082991247393542768845573185264244945608091712397452510370796533226937584217850592390110105175555117166878078225285587253662860801727855042617068223045911853997233594062037922404986254683562729157663611046921987051213679478482691705510766108727298874637142485100773951653913790102126018194536359594973866749359302996571034361159535493930834226931671868719844287725614192359835423171761026551166835585356423359560063265771433932190594348099237009223464612003638904113743196098175197745925875503716328927429565642549521852944667820193048764989950335099725938765781296952912771938481022630899167393666541011161456867603980047776616384659799753208966595860615443843769174381182517247658177233280385273287469932177513456544554542204737310434637145506579404808453487276106041147868326723207923404071853970596354065007852693759161190077405412690214277024155938113537583484688969406274488090289970238265735517924386705528821003238685623787181735653919868120370840100379713130289527281756561740396235310561637209789309797189430234073471071726592609623977489879083795001190646450570802150316356077252075181417121110400992829117789333935497446298168743040909948313863369535075834387939014908919089628605813200431425531911694700453058329994187309608367670735376170556946758183892881073242056549928331295340376607093543787287937257097979814735616913988682500283118629745581681642344309349988510380968569112298728901894687041105478120055270521093619907316610187087794081782397584154312870612383135810525070571239015730757963208696194899964193620258549056432671927384075860719489286194188353127299181395523786329518750857137104851780695400896037300349073458146570096586961680012309149978619069046301029915503336581673282649945509461146325561438068122558811119899694575278519590088773766974535884502271068531052880948957147910175742278721255994572463533332213614959706343449572391539619276546325269492928692358421621266440299810966080623158066391547744824753802240685733887207021232869337262137863211640287528700980633653927624949111330588111623718704782198527167546344487782638575471611022057763033773957751113086392703104530928227222753786078556285677775711369895340228653995238518596890223470965321357273004630619857611738898814107333334488524360711707843396815155881820185729584038200241061573953763685390010983830551760506042571663610019759225609200610369340169554309907897690690172318455042703937632308057549317417726992110318223491703974637125883141624394384754841463119041355035016309675027455038331313838652457075370721371963395711603379468954700246370260080322009992660211586039631103273646361561106197825487176124812407589275644894877640538596637015727419343421239050802044726186645988502641052027254792029535895055527283450238193684315416833492439833798948201234163317623661196352236040492968078188712057969712510258709286567061092163839835230791822075939517610481334620703538549113965540730077548669080468094179299921153395673166304488724311836220652987238139977832042131185241822956120969041930851502040553531924571926027960477853475356957376682855607751059976546965059396484895700390376409217313427092337722336381492695903553357903448384562417468815201399422361356059655043602913091254448823967153454853004506628217612156802803399361477984629921792211838431423493765811665686482887359252416225730774505656073512841959667377688225993465772934449697578652042806859045560068093146488303707108817979727340326218949672620919488705349359498546622008748459036442717335394123848979181175235889681950706369616408458097458564568109224292206184111442386746303224527235584696601509916290141817397110732280263835192749673860258339505968301422864102839976317362763285406402076219056396429195497349432855195334933890025606568875732656544354990665661021285190450014229865289949045056675324905955987428680460665602737319271798035629684430669571662476721782396629890147214205031761652448111385188788222006352260632344992512719803262182985089459097260920465379441169782165776333145592776941106920313889063251403116924537021114671065335186033166220051198220546931635580034727603451997412956482006473169591414327775568690545886894533968201692521038523160716844269124019817591249497962095345077085211845234224573706203093245415184612857300315052165710298466525084802450015678017156132330526899688053306858655710606355679583980179454219891446998411692538750302924171561985685615257368082875723517037262485326254341294985742154672791533445817096560276809730189928247023041834706411614060517981689967941576168882946873931548564830673908280306558163586022371439431120295462596113960013152416473810108236524146493403668638485247831399024879361941638543742756309796649033290684750569336957331847958881857759885994393895288591170047660181504641077150535485861823579466131824024392557609607298671520899799345683307590954429498581181311899792098337920949009581580739245091822530676913821611307133539769744928279773459377641075378380143934415690224653933167424854374161952468955234956973014542649651346862353819099902472794713499008192219523463770723655650240543490019489912745866949011303783423994991926531751393413271715690132950704491353553644289515917928088202708380879686939848922267015256820218832852465006510438159793530685744033835432310315573007176680120374949935808385850309594086660912162087567782048671669454879413309917526143268306832936585460796865307932551648623194583310536276906539006580737075971192938729166726363632014583849642457216409360720366957961995444883440400476864787967373168159188765858189048024275103226242434375175804896146685408241362197652509054696544845718989232936914864137764123848430322112407325273556097928141739415468736324970257085576393690828481852809131647984215011165590625895256998753963334575450994688137055047055784431633416743629233740153044448090978946761679094709553228431510065407942574887826842113223402240348495148755267228081635305753373360938148546977935601048576599353462904359695941745916915602590795769637412694430399081038486310152309102815881745362536359918575949514469193535655883247122198105241025455835307416559302096387593606578017586666768435574094781116076936766363955754551258377709971234817484169263012118763060914405456138269463816411376013566024438893439461548847661548355424050879698175735176410228484811295450814962575435496085104503011283948407248578824955661029144823817622021721294379492915300597590577420330264535752922378112264707517203018185733699565401575824562165686858859336846540843768179033992735694374225325536768903973533773477290545016703265313716592115774863774198329469977780787074864983745711194393025741085266215790518219601324115436003822713949216808510570550735139564287136511930593921833197616661401925602918908507793024415511983193811005439639477009585270696488192012455006147857945254405389234206272365782847218660384543253349167070339586282798306173406135251083527496060567675942504376278447368395468080320303862403825061519600844789040077686651334259078024868970320414149705764410240270769970121527880425234078492201147591497670896221834823646104291887600862464697101859854408756723672266694368771851186978612594655380051527870681337493096598184428072514098135177695530498648935734535950353065164689459710941455088689645125445776929842705628663172953887465178439998358291368695485655855983233652537610380661613461841826770027067127246006968901715129569907917258957819531474139394414131928223106007197137207457982127444775307147532259512752044401816276113332352393477212262597966491384100541888593440995841152342807110531729238042777287108195827081071136055930756291167702236261758416509481737549458662583852762849523475695303104719729669806238605444344974000743691941306383611429234480005665551718020002683429154804872236772983909109281779768972226547433668165593758303991856406018565888224508403542260437870219142943157163415730501551059757671630127413526242329362676807753696113968930116986736810427434830959795081430299322507584514103233984621232630329200792859063240777823940230856551563402597919214984536579865159001092177836640591499896068180112313731424515372469551437877263307312884795605567186285390285896658984192219133559437921692890525111118347678410753457998914998377827693222914230099318933857110908679837513546786705624775632303824438546276581796844045933504120276034177214743289703554850286185165586328755172498234804150324080658148316205930728946795959674348995077550260776226756858266139101690413718407165944395000914263976202522332008510221737646509481435821613922283612622936793626925394476036702109784866603072286907657065129611754439515133915522495005472865137211675012437177494900805543895684169452514182495661626259346720209284967648500209206231474813156651496106500801253549177871500443334339140308319270856333836208473951326989802071275406993544862793028263547361287337821559967410453856782506446464001980928357753379155293734430262052481930970161481401597405336031492637980036617105941173855622143418114807605212635408707709555474824224016082445545109783681415166620999846882915767347236142447651315663232556894950182368551947015845079548020050969520875160394947471832649701036208830202556504346522448389079524554894763515766715016155756060836534527916215795542773720057798391668891700712772362379295025433774046122941155203071614967487881124090273585614427155646993651916091664071069663158943553525525370909957265315500579654396522462962453050424796080010390795970762940024335906064615476107059536650996979065411911559926943639238256742889531391837852072792041290943121166067009671168639283485226172070753007648983981159785610143333358584858557784343009148076813659723263465863055999662178772076547882723750348680863069871889254489415942843727062576936025775235829411440123476343102372737374551332526868115359850215240636542085712564057180623465248626979054795296609915149838041792948126570108397971550481496050849147286621646754456686654859810740675521561627492783210905508583891676819389966288689610201738344089412984339622379826541617393555671033845672448857006585834895762954360318874276812936011701436686893995166238680720748786901921441894604275194013214140678100831619282425377078654318742944305696800885569011477215386317753934079104174744902114871217170810928622950999912446665157449923747862278821347244823805594798094259099392357817983356413581363585199444870619149509170541022622591184521146287687682611859777382817844757874182578780374655457315915339481511062169706037365063367779917326748538894579596380962982881570578559714385949326812235509831641512538687075661833723419882895033225788524261058597054227849766993130428696572342303722135485665333750209692685496330218538466236722479019708683426084380381171149519436251919958039727256060998869922133935089669737744990628233871376483390921315471502660903176231666725332522008474074211746632816878431082881020797247925516251386757582465696308680255576888596724876232254367330354338122373346243996832746264761864263313517325011144505559165948968987985789537200116531067639641664001074581159554555159494271450343864678281750178669329696659995052004955178146753807984917836839366749221059919898782122117834784648442721606189071826023101886274467283254311441066957807722333648599906101841506694509155071534378820015876543673225033919884551712151261720301135891841946084832716033165196836537891794313251088912882253329762538008496262965165573998411110230647066655034895955707050012674600997185190934288820392538491957131960978165801076632589119526090163911372491975000535579885431046137547811025672082214665802096165427096672675164884274335769471704229284441563522128161087545300527830223684506360323172208597289153810398324077866495591308898240503315158253814798845359055639101006776771181326525796114946760041700481019605629591002628795709610593976320442697078041877365782534774047770816081467932537679576583517680444995349148025251729474428724091511648869352397679284557032634320649752629247731003814350501473797661203904344027109872690077140510303298426811476355711458463335323500249825448855421378184350297275456529462426911160715002747622017648215972769753395113114074487396722508120766881705657221355221886043142901336489725981426714959261029004739475811836024449855130609848561618995047225419668166033697827878848966779573076438312413525333899960176203346101444722598533417998644663419194275538101008406357397945391834465829702905790074071373790384676124771597753910332704129906161359234677379229745200517950924155345818622984825908395160272047668482081182992336219580326778251801027710536965171880328919252442580217427686147282499466208151319307901552951297269984323491734447138359785959556306267896883634490535653166588168122022244753031015644137348438533232656291757193254568512483839558237461162372335626391671032611316964485932347395872537657794394331442619161965516155040603178568566715578602798443849433021590838325724281715750682021259123503372717340742026676628119808214154162561113742501990673898545333725094636745229209813776287019438602705778081843894472553103167227328644231583255745155635080543197222798980073880190462730353690024078243877789131091622884005942146878427716232680205500393596488247637614440941789755003163851511981555135581865842176559669053557692100300797028468761861329793515064910021548893949257467842673982467583710648362175618919303175678401265688671805886299483554952658941941609524908478760908606120123660623176099125987893581335774147326170755162724804821133512823161237274446855659351672717865504880195883877440752569313609677501623321257853702470865152128769895731889103887281101997161676860988499310317760132036285273643553949351525181062946848668446193865287058937204334530398153291669430630044994515765888037459306585129672982339548442642593622146848840325309354073431430971469750726940834970209708206875867081813275269481705724755170796914162869252119871991478546720847841912597551300177458502841550125701836924555823189909476074958728361944965099897525939379417994099504632046216412625574156010945491274127316189635192343208743529208264223754197646620109049769394026935783341624459594553336644314050711306816163652695274311624917013451017115384689373464717917062414332748571819967858146925982300853356152677014649086661708713288146213670874577815484915652984708224153766309808184349718097173429156310269401772434249154273879942498008860626548369561472721398758644319452762193529028349812906129727501844558110228399264147682896565120949474534703323575669049629891935481376456408046227510632748638866171135980545949337273208300843619359056186126293488301076865024753681887965460310110353739116602180767702920215226999185777546342721629466192663700266787326008066750750051438373421569121712034910788832370097226210528920447255367636980673274925585148315414793039793923319394753594737390294894714295805779299217195780221030677486177711342075613441282013666086659882008536850923114535568952540468053241320821307767006279816017672186285670514450941523595511563768979472631282537980776435883379465671254825784284656955996587187358737960443311869201135836868687013229443766016247614952942407529694608886074820610226963962858379164949470669247215520150999741319279545136916319145791474284231775033564283533372924516194598884803545917390385420659076356797428408863812217949505612709331749148539857158301758687944156321813260580339625857425217116112701677788048439037384898992054404808776260227390289250376839859540261729676471322480915041986951275307971992749040378519292641268007525239971719259754509652259356527507226571188324175927218468092329534861426545318101771262839099571501773971832818814413873978974938746227298319461695370374424599714487674378325996089964390745067997183280525731183951801664934806605857445455686894328242678042001472934917470841924554182134449868112209724606580308600531656125972842160708325572256928332167223044660345519531057432787799049700799909437003543665389216835996957347080599878905465970049976709361954261011573400407132432873683334616592420459003885340854084027562457023283311482097901852620646554119916078245674096746553718864367367897414832137084198862732119945312837844080642816530473483222553122582086452409290655794054744099965194584594655763094035616722977243414936790210805191209110334020196212670398842768742183192598263189809765175560436218819673624527008480114276435185120795681791527984943441850321396708212498029559310370517920145839243279255872544017593942580537741955938261880692848857359861414789369171369326981815649926631482283101887565946812310917418656645231505608661755774858775241534663094282516310604289233746405492138454205539535755696298695847411148837737951940347381506343907437866166810468092657523248577621097295245287447797879124996179681889667094547058180815391377186128373712297393470588034379075927470324788478838973395334560263229907723971853670222402107160544377213067717949915626300113851922526233849430728861632274125618576713809607314511718076576359476757327915667504581297379041017602533102753761429077413835596262690562006687586915244535118886133017185935365839711407958559166956618199155571875625169017814186668558086343500883306139707136615220875897341092777819356989798406823484366779523712637977645350408875530554794542414016406235903229325304356435306701670551338906981594323231737018834925968422688580389841172626800264964594530757566186855963700110683002407175750791529097089641565460422382461271412355235327931424904297941209069047750615486031547931227042987466789049082955685950482232116025200873432922333153084060728339036908446013409117363088075429261012847211381219744848992552703533676309288077810741613705246569762947371363822040278125309384952498886916960361786120096118235688612657175246580131950653832597554648122516533629131146950657208750373768855812415278937173614734408714124769590387810647714941587914616391991824054122703355685158859531763421878821719517915575402515339572002819767322104836134622732394445544836805048385030964320032256787913995439948572572046016690130553872205970483922678909516110791214866211831152776556296865367207699570052951233884652070372283398401407781940059804491372156181443651289798282714272825323382143174299925597993910857011124807402997487210311081399914640084800409249896562854456969054896898144756918356074677105547323353454420159940404904611627251057861601587073098991375254846403196844869147052601027802390268951324498579715779688974609125644961354464426579583080610810704779030466259723937474017758697590003880930740856028554116673423551179818035179749226053134339906642841090530330935190765449903292282747699933928686898224679079604030213502874399902689969158713211859490410991333751386002169882231015863929516509148640028538767166541313714059608034515767493524287416872348885755963495595364992994967201123945771494859695729776493087890579530102512088862670145486024770486856833164242135552275845784760551883344741488048116540173304528877272583529336371217782732427971620406901516163605509978321433364670641520759079018859440101591962516222729505247579979632651912964714565196738549827781976870961678384046883960689051209636734342822619078827315129201532374432352971494025222159457494652618551334578778907949594685510786818420725271929497814428732061495097277853246440598273829846076257229627912525643431091700159573989627933737333228019041182539821843538343382623308665530818701629543387635088318159580061446613246695802637199990197034433837686967189257199323457421367364735396204066554643346025195877859478504110274448817907449094108965989102827506780548972843875464687940898645822974619983555850927814500690194574032421206167792913443182733635623326717574662428043360562059993696895270775340231695247301316266198453761135695304233796950192805033918198393164729499898159152226848839304893856394271759631244722275965879168832678023746565179457190203290731286865606467126922280607546244606411833503545683819389245467120544422425144473338794392918179711734174125578707152303929465274383966277290069283820271549595986135189008167303237591993365279948667605420915906354101420422143318354766586299851331581249732022891511218757805046273720108999401912760338370939838506483693137778942770531363212475632135236823317707555059441138132976742616893827666212951719990803032347369879907426068778423724627887001576763878565167127579578092622219905879658064320527263007720837880418458320402732876288349233692571515507444424379842720594484990935654278568586749219632271632382258082454382714639856302510384166320580032598292920357856153823849719695118100530294994790919288608510677153279793440875375354149812037928363270501916633622420106228985103734344267790661286889936933391002847091496370108730917504410761810712802444286205432979830997994419397146191327588457546110962352397756147231739724961580443587871448890388051438811069340000477966486431894400798799002074537634804330688340229894612033295009454798580801630849639630057377777388286054863555989353999867391023945268916031723808342632548048568373379620449596834261748616979538746205918865174648741420743750555006785386492615619779239807263116032959343132793124186152425559677761317107884023843093862864015566224258124263250423610972485588450322732410184069598793580042932807173593885062619347469088058754999912462309629940279179311902685944407832130873227572537141830646662632525025511820718675475340347567339848432941110387329509715276033300689968007935624407576868582111820589104235418077158142766653321873550588253128389654041272558075978406338426833841012475879338776776953417373697066213800307056296919006321843516434484633888628060794837524881029725156167109880086085868718824058852779045955651586387919797271970062198918528082727259386634048936360814937891567312480387472323373654103510901499171512973345393486494195484534765244181390002812763806560151686438491872173159214215735692829390364588490720351427693113631054648221095979448052908678043469913921642728224403142439076471827947486587465360369080376600232432121412801235510725899625724266748626781240104755309969721838206528705712806665412977978856605443720734794646325779086274571916808858492729490111740048779168254304219053172818783633073466736134231821813296222320491683250194063592328539590743210895770226217327824737487249952958007472453685293540203557463392349229429432953168357468616814820050370070179400026960428135428939893634660136143385166317835451402312184817301265913003692947189719491689544262420270577103747251575297186461509784776419975868948495173516072491418601450536513232364610218966185980194954473967732306141686844489824477079228622695572057172696710011238512223726753898058300488741479248894999844806953286430830542917068103378484356325998286065960468035068408788330807877909991671852139543521638331073476068888930796798880259964879714324340462174636415136352238349351222044924662567474507073631169850980227618989885207418974931603976700573698176356764992968679918878974253983815713490415870109541503921409113850912690744575611537715647191628766898349334522062245018683457902420190481298041837891141922728179656288102973663634487276299857894177158632452351253952609653681780277797271615743854996253360903604634966694489752802736808875030509948702229191968272209330940327256395873895766750583817384687362193350228166477788780599412740679400819706806435131802323138201934002082252145313641691133393928406000263565625021902909672232168537741820511851088998636012291028057517199668044091608051532061263448282391834007040299287307092163340783897342055713278015270690892522583505483039322265498618922377994417363519322737808813162772153257807181421673637572852012176819298646000480067426559740086530385369379866413972499663610281867669753987188523455607794281615723106183712045945477708872113239168545687430000117786607665813274886961133066373079489651686846920904945248426880031241069617903665633374697589281032968370670020341085430921577852940366133545964697538722348288120311535869238481802301207613913010847535726132001014515629647369668053654264916309730543126492721170232798842112434865784467290558994696656370610973302459394781994704135547049293344265020756922870144282440929244379779431570682847097585344370561886659941000981397374940090820604769946899507750152475915815638424572700273380440398451626410856181955498403897236504637645115884398599937809916064026616822606470892917926328271590504467594537166246214946562761375812165492874661118085584938313783584684648334340857222225921476309286872822517830514881234535516020118951614830649736262065717362153766618384142421785283964045054049441716329659818656590150776940019055053045060126728722946333571272526301991746659319528241974006424913708828238774680194883435635934206748837369687705738472302926279011785788415213198478234497214869039774784176740884947838703503855168819020951507399443142186089788220110671016979108855019487932485306296295492722673835575986992638456174756903418038800452365667148963911088810000062322273454608444816450329137083934731343856464350757163568086043471746018989854391960731650783580045244925614075600575924919969145832867391723636467678400893095945459345374809799075130845589894001105755775637161817708278933541041074164702945877628772078781233774496389738779310074636004352323953299805047312873768908263011407131861654814720180670654698531413228825350099244983796634991368382149922520868871404246329502975317243614082802576987198276933319714008720867602032881362743216501429516714557403312026653496478752347462155414796220932474817727732986724357226794138967901102285675011938735548449635597113405261479637875986004416928581801709845671262269949044611097018516840307688192084695956010146664945388431813904461863701093888282909478462045375577007963873483626865883638985652026825750899393817173168037120481276931047715868860299434417809271039119504509842965327065562401054718413638076443612559946572364315127506159186589273522316488833979628084429929237473850738267709046683884867644298957266868361368278179049915376705827055719684975440985266139386309669426527000553249846138779802715357761228998449499884630966592656136764716790782738747280310797401222404873383633388271322264694474834251129107283028450779678442069440130163493000724786844228013958137941790600571222721309591365385176606827861857899661048685341113960375236455193321833495081590095172561453284284430760419970432210471387877873563157270725235466683200483358991164736860476644568148839704984448095411935895410798921267765541625813628819222161850219911735981962036519469279385622309809494364887685342012959680604993530236474435295198305765695503292597927742410506354399716172785629168145556295761446841948271302984655589160124130251961381670352033425646153475321519665353196348315818298145033419601983956416722363850753245892227386323202882573579375904923846951007917486442785074077214316107404737600355272099888177240279452700135515187030009864780795095552770286167488731337255960097762847579996645060500422272143497252408161242257885745193948972349576062499722214090619364755315960891510079048936303780426966078316308241828019296120093544951366491117927989836493862629876715587335118786789803555563839099223456513550699606995378486801041388193876100978917620570616891507586266376588380476144653345096524884042226823847844445826086326206920440219279854290923814491560114537692203279372932612857888247624683099091575844242098747982811613980304421686463988514280529808475259248580733732558550135233919297559931385275939092199497415209106684660306924406064506607084011998008776472942809654376959518521059923192304852859191098541074442478887835434717137299494125169722248402311184643865586739428535724581779896679425628502302526310570033184716508238257646693475408165762822130984704186786110550556624937390184145506816589697665970096599118366715158221419783315443599696072297750627747709408417276251819653230613495078768926893166897249294813538593952676497335841992283200245989772452549083283459393310653478034480914193877740895949827893373310078891032776428230659294193185255909861201867844415723161591131992605612359241608702898267947285924353032452695921812223760050444371525394109945243983334803605954097974732060064890856332038948467800521018917843426346978535288928693347879332671908425118192430914818893894375986990025813728116207819988169066752122348457443669323825572111996565968993358818010653955146964530083498824868353183294286906712379231597213097652967918332191686968181569879480946888778622315764663987159720989340874263645678688058156269434015989068270335417533197217501461786123285160483637174445066579710383866056586466911416826698392034321737718641383840294706873421039815377605379950171935830329621772946781731125904048228471710549152201325362902810212201329091675753734475218392996990832465334831719435397588365736574704041676248710718937889376397102384068575581618504219989908820049405695746302216153495254017050118008252792783270347778036822838324382457608819986066918719211590839517365953286939316498861272531028028272396448804245312603686407032758068963810895748923766691919865921391807331072494831595012809704939591905962419214388616054684100343319766259511392670451707886186134762038125349045935634927183849924082463334979421441515934307600734915436781720636354507022825154723796477055386377859710336747921567201028325682622193688359237468528791771831660843438051087098591694325842727344331206487516416155611447871454001984391778852053071262130378864672334087350438928813821802592418798267550431471878932471068376563181901724395359334860983531937823267848601808552438153201664195166327027713109414245408165635335919298170904874945278886066121107439595322314058629961408524546627769547617784467040840889941513518135853229243083568876537020499741517378063801615168680868402514187943375697473942310463810595035385045178598277056883426888040919960481905060295229072620412532334455737661352375385532857011502086486363059275262990759592268020624739409635783423906744283604526271715736542766423107126799423111718123933584388755409206490342957947681144599938721413583493750366598998881460891528999903247898574108006392582050974966570221951548914780910403627925735349016824548436573739595548677491488215245976049575063146766948181594823732553762806294254962283855980236964493747023012295589396060733266938712215108161407036128220313693809097039156041544297807598589076221112125414830394344848514948323835070039327698190532537034748757059614379771996947690506057963456282429541444452613396973637666130966471273852348620525529268433518656094262147959150642526690462615625410846644727368545928309261657345679981658767273634364222865508250948535840494321271447318426823541065128295440692006627115190155732893249555049031471547798667829355396052701342916939219421140167446167659278988957298641588515041164958245216937569623882359962214265677671629578603896222421133239364225105500271797595696447964131635636391945715334343262067633581546996248882603030522508373756476162590827247526380824425106416389495717497848479326952984147535818131200383237870141007785552917698973709268161257103588756518581481559672248258949527114979382245474641804119730847077650861542143732372799082835028641043315915508343540622801190337714364893237438281072671270476074610341753526152845823824837981829754143904293723636402830826636848745858606427534399388006848569640323423411238351460913103440056161043058462603057825002148083497196451183174676548243440412727753575060731661076686592589779724824850365103426948909014828625811497380648257169047592756073792758929332744653798218554579000383506675021540768514767592461601869092508469034661998243010523865583585392688273712327901677407707771421490676328113653488549939683897761754753403318184314873573037421794784920273775376238204560673733452541092891117888428529284746121054333442343050799643673893610548191559896905876165085512358095353049804859603225612716968312514608583965099419054052555819845378268018678010580372963829806184620949990112634535997560679309171703028222124672085716165819213406868407599931227855432743312156514029342734467230365791209747668792668964275339192683185088814618829029513952467207080726834217237078681679939435840996416463234237906882260607949064812538110820437232068080195626260644812348892409180223245478962380783945196983392524624154283947925845331976270787176541471493998429201857664214485128223572915723156477349741906970017309418779498170015692699223934501888393854540066549447082763120655344264685708802388931982440419130681574813398881291817281426845858816107876996767774983321333741467585520287246070487161871090689625689129325934531030952465686096308772539407872934021397434659189036893901723320317603054181793216876296317789179542224499939131244237013852859318714943639582533329936132349765110406936036798778721386147229080205783365565432319479583769381063239182460101983970157290696947532460728968220437974417656569619112230575874756590157814356927264602393141403578563998786057206236353024860380117182219203744808840318559513521363934544896512117342985671729690649572551401316164779015706435348724524269377173544400191855535624295073739120263810704556451073551438425805151234131851693493553384007662824904865279461997131106252279830348307848228055428796458272528564837520737265009133114267555140335606876241202766415142142554523986977243235516879378125567125234852041677270237327381436659994366698196765393070131227226045714284951950916143164072061852782856346176292441309718859160260350197032242213414036846887379123281541619847278726028898458565553520373014517221088699100734067470795404546599230170606735871074924829520021918340874415362378716370439292619713574511497933380302096046565984892012736098460726114549096041901051501034724915599575705603910882462681846918967884495899210543173271443461981808798412163288486648714418358478086189491543155470730703281711453367260821427861796549286322865881543899404484422110630645138206237769927555007933495630237360557765110490671198109140491871927632103922407902119486597988688162546107209366684074122974571475524220386726866140533917128344370220817631895262837063801584377722474750493619384255338542054421161305519003719949317002204434051816164978149535418180646835205030563095150303796394966823101792966972884484107708415233716519175621512131420961942330844965926490486268427822118102064640225582242851221661279331027765947065592424886837100688891073638628835436624238835616210739413864119659521828879132483966160803066941422839968274103768923207984280109536760659273015664442052303644956601498727276114801552562568444812001721541901812386765276629458826531557414227341626483081177441819111413343594659681770762456602925416208384816566027705859999584520053609567667876023594869668174389045263024752133216781757831757656250339821407148086801592198639921595792938851645926445414591078259193720677353360345702798360456500601149162808185090750982809056999200601554156025172049590140439240549187432242374215178781503763965543874067766102326387608675296427837941183363734110557143667151820997698174900691156455561691205289400248811034628756430370468536658717445755647279970213417585825140768774650997276440922002311901547358524726477170959932146660454778413475908268876458946519069412807229441589381747814884229880464767782007395430236785945005017754403013846584488251857548467150121759675740939727224475902689028159614887270311213428833976788645719423718216055822933758425185513809724390020541903603437463843014825838231177562283750196005669880052118210795345574159386497443637054307091645413671621035828567379149914934875010274773550639734886214837017711996662941744037796976623552019374277897198728477272062897685307390570905679082105057859600663658456556939650145171450977264482622221540889302704574181308976118418761724322220627548526129914215438006471074278661013200283894683602995623648209138869789444966346669402293810398986794702166874018703186360437921530498669036148987074143405241341148228414512506472007872363535277459828478549653322383708074682407497426347869941950214324859617522851945145760679019042244568362419186065581465191806366540631791891458372279006412421916190747907697843601934105732146125046981112510499186222141384677130136811310052075238304610459749470955886515059611541477116645490934608548589016962148326389270962714947175064181648648259679545297845471847994683783852946296847991618686312212011631728019799054472855854358338496995632135784016222978056198433927075074519488994774032260346178432867985592015981182605592273087932943876838182374268889224129949028556652712931600385607931922826534828770187866439081008808882216847715833025121147876929833101749433097564741190919746801143334698395511256940751499331006682248418643958308879875232443396757958642129534687379103972160182614543340869835363075565597598941741838846368939034439817660785671708936907266494077301422337323968391049222968937559131286818283955894708380765226709420003063318535197972543880142996307768301022825551734138105430915097952807841501343509984292804874268301845956901030791106578713032508879362946816267994021001871018540336412976678098765850991865449084095273954830789558074887785850037272240787810403561014606730225990736803274060993469861490900821237240620358931818122076129101464483842525690247701135566775366289135511178750735225025790157992050471338484398668854736707852440298709240896077121478905876272774645663993049054087639377105013839938415907619920447003321969188779283993278700298634938658976189748791693679152493678337471887060763125755756800606620065470347281894353415016646362574673163213687702248152415828758750986908608135533011270898604117579971924332113619556220750952880498347158295032191107561511479503198489342872145713480537320200889502446922054783173927580892343856591356927901080595838807772560727370924714866118739898673860182088262707249025410766028111709226870254008451270393015632747096077594078401775445859226427719955522432790262641010090520330155315871145577030562733767660114592653929797113127179478950029183878755096654535483335897333678673461357666446711111827720273696921887104740336561026329793462887164453698425810147964332466921300076893003080735847727660134140395154838304143737476571972111704687954079472087959832914130211855493769132623222882334197970245180837112237926627615363788482759823646207244135416572964087785252156129592230112858099978770121709257378645845822182192903968228396369163393807258511663778981946099163212930001117134844584365052598570727038141452435660008843878425425991371538626508696299850520471085286362622438732403401568795818426974594884358984350205221828986222656170353863071082185809693297640578228165312307386441027985684358598714362920789494478259161700504216629922024044484351529868970803548209079418837106741353897349920076259631527538742909383781920172660641626595348370341725656379369688376715784271416977518575758685869608727274679306203580053162383519883029425546568832950434257744349807236517287574736859911928092248025829716068510090703703096357592597744475668478120719057334315094800378581872965005541332826043164923267642960262732098644866729651005607427417069398383266337777907351616474902495994870801515837197451511134461166308056210125888375941702715407493910294345663634093263988525159443725973907884325686721665192787291751544680220755701779792386803289482523521026241666247269485679549357982441276805509878830184485243316742881310553311362056964620370718887037357489398548001587492364876443377995853419924864339477591454095496223500317295108177623151289864975121303183919934994311021963231437188293381564680364186497941541092396350270775253691811170249459418707135472315729440765518358244683594691480286998767414403889404447069275221046517320116162345596015337897392225038278804016857012620543022524015535292214612488246544350802106415695898887932106458544225583427426284362601133898466127487950534373442401416030094798124521861239850954443655470526954190956262953917769006337458693518744683002373475928953882080089555652359636954791416531281911106631195682270792402675349536116270392334933482989519786145713829946817560614879458105167398480475331914392968196065393748185610738489582823537804231709704351706443014186176020386954337858698132901347816036355602674666558961828550379522612229318529698265189550174812952283092860771061550890718838024852287569338117950058948314669392509501569057427256005855245554845031886427634218630176400757628763614562393135801989800699195377942441479937365076310637325557211900427003849516499694134923578626262734088481908809074324903429340386780105880986638717058960705742778979903361347183870193318112487793138174296239719731158029915459245003072468423931870059387468982085932998280178457465448925797895748071085797845817630025968529088954965133841577035875324882318434143564704613472660665941714874904318730906950089119740698852199409359693566682969443040161873749132220470895927064992308178480433895977754803635895412958755102167357562037846681827076490591309494361616847015587062826450554936371184452320826573788448876452170570863624913415336587781341483936802726587251393900762034669996944178351306845151984878836897333559021713221724719909341516272171797875597151459182044187475752943677915838032178394218692571370973391479473484352653555465494023103149771486067230891085990764589951671693236931193017052937312621740758785700604079546644974859984304906910232223277968250693608971833026613893998694684409968785208193481487397128501958699525751729688054876003450489876505476134473797082599786719961377725914317165614964399446648821660930691259886216351359196173832894300004289763496699666077544310998946817675119994884891514786616784056358724635036058616333576919488826469622495069711694304755316446691068065993607591393125571624752075312363869739243528172922981755116331406004154218456518373256637652785600385359652694560946761631589587607770888351784124472032163686359264388827326512212545080281602775833856584242163899927189432362983426029870544552770627499132927049642181618829944038528375144885581435632513521207649174017961257362721114319031727084724672626212055981999969202762821903910872927980866315910114968898644674222622070602054306796396636981442935252639400143865312322334457809970092019398704616811837756840220889007163772164751372647694925648555870301987799979269694479370797748183375197195074555351468481099183398029519697670641146784823083511726011303607401017619208726014806352620599221719791152399196582871763243076540865111049111179657975476058782685426692250084101221749001555026456509201178637815084720430612409819845172335145139734998524632316331442150912220292253477547081073768713939019934957861227736458999120479077201436087648023469870597718334247606311827636692287512088439911514110121745656011234715693790039067521445284858262011488688654122937257668700853937889107036100710678131488474822222141155175056290008428525961955268714834204269154465531235891514822292204236614218887896474805040236921201390323103640355395986057112231804115538149307278027408263211253062238273961489054021261099963808810010896333197824479205523934911797154175817466754172625548144327335248123417179003879619928953921667025443641885113277173199572177658128830788276387220099518093826846295251851068531941235989608983382697486581021519320256857707377993550861392152462419958163855116827493912257506153504253926569244417106124996212334077972091337038154155301981396046011780536814541319015497990300593009156612792534236216080338792423062252833004700513338437716253530751867619369269533220828617013894019709243772636446744188358037932632579333874790141531849188136147427429400691628884461252497632053846647124159798846774355779235482000786923286026742917021264948281285999535020126360422824332875569610048523560990767113867202089099314089267325024205192143045892869023844518144221940092164442835804520697200399259512030123344893547995605864944997380048403337061850048190245502974744282243690499497382416538830323744293359297820536428883286187486143027063404330578531822267147508489320411472687558340070922456420458786348568369373204299392238923279247384376745954726272214673593937240587345928299479559650501405529450236207010789856544823941403826217402070189271561258886062662464615877037203776648687599532917664915914530505262844178989928752841480827411733166298261455460158095925417987916744296925881344330880954443763629287412195657042747926708744669875928682653356022258025215103049731624352179114471225270073147475485938452929407824718033958695587908295283562554237863645182536816234249286501451019329881139691034046341722990876308831327616363100304867198898365796211760975145895897410956404180952968662987026468982708947213835603668683629626657392161296365327673436182657221372652586102606862954925591939084124646803736530252906868505417433831957672165737528542601182731703947535884065106844617981834939072848546377503504106019245293188775401972608652995067813032606584764214063097404858076407210327885522136930732311900434593915465981359246482878170114890853084824370945624289562882348241401134079598282832052510490795060909620591785647170469662627100700002577250801231578693746943566732329087834500246293826185826067492976790731969038121379135219717358509255088176187159319154154347387891011898602730270895975093739840942496159853375814155984980147773809025587282980967079945443486399435980291589025940895860082992448982315480725667885070435059374824743119555413746552270643045065729221253306932642027271692924647134511204690857631989882322416128220111356818361123909868286660050816462321980398591988017504298948121592186966624010161322341178293809430939992384353383960493768797941358882233611219129074572159160806913148126173908394505611201829748806423432750370477221424604576404406503299139372034601431894077108903410977497588046662851673404253089381579682928530617903399897077116165981035405531284242863792295301756474568979854487794394717504592168712578203077361352024354139114090853368636688870377700394483951199402312134969878107870669592732448011960768378493559342376724284829557248313791896696536791273320981602039029773599730507373281765058073721327539472569259662648214076672630974625844653004356302968174076956459212701265837846269695684207793094092853604628450909631042977626731777927928298685654145738640206681216282694023865970100748801094066379855375355989630992914919362743552521741338933913225710019754808329592224749271337118689633825143165823990884424935173730066886084888005300495506401935408962629173883190991167939312950264713074638287150374365489205589514877270978944780221662466975999893780822255728604298596799298701542578391184867503442882668982993328513479024665843169063353197117197766161471872381447148733650375167018702455258452437409275258218749093370675509942990152327535818697545365329459123294650516387227239394516326797998653782601388450103666943685239696403764971107732732950934481246985242421778788761261991600778569576927873043956293937595282251362710944391298713531337408485946471278049356384400083975400059652330019724284752622637092385439606691883421591782946949490932657075884956727470567959627878428481323612746306139230456042247069604523398960962840438280975285503545338506437695814297794219771882678790047718308486018360741554098848063779625100845654734885799037883522780242537964251550649196377519749406071485489388628210586499177823693341864441880328945930453600190824266561790133193224075328400467886436303524824485937964236460490775955688958876163041902995737862518078228038249401286470727796844516851853229511276330250992524618664396086438467362602473874720534755205247252348520255391366629561448816361782997161695044072194352750886720544709595774931625208771077288294420004269353873511244790462488490381785953920897195285564604494589180194292998258933107239368010703289914472635315272420970707443064676847217363959985280550702360570795185900210425939186542842884551789092177592501654953183193045106577403718301271724735942725572496072944471683463455415340924548974146943850383695875264973069711539062993295761205511166647241065892784074577407473980117469352851287563767138457688523212053130575957375656061171995764141350546432742640241399914179411961015828791144236339137741930423165997959306320204159337492365644588551077029419146910793026717267574987446474813814811368526392337885921502771115907246492393689091304148149887132175138145391825906662486106076334953112761229158398003843951720341731138289957369184516526911665958952781115818261122531702757748605584996681215836092661765633783658928305549839510375776121326223605379863515063411172646409062197094689773709640015652980617678002714036560128941777464614234552580541186129045514193028498821197402016767767416949064493315944008360985925126949113931130903585945996563661832368444885596460394211415381512212140284944323779607328745766798030411658276625445275763530402345217439535586288931325711860388767417162233149673002545900945625646276881139117150277057553967737062274700130354465185195898470507192113049817945641783085408230180238856798059137290073384732075804504634204931994393227359944287547514249632991259555913622951616348583055169201740407435608478102843709222193684324636391378707677695445197786951853152867104922873681954391812952180238296151941215356568182216580224340919981464185003829639280647828938912059100328121861078166162721123743264825784944001047285298243423950800952955490382338507750555821440852298162639960190094680761707921016103040462203969620207296128713120923177463363129785164861848019361260318909254545993484689926054800248883006193849083467244978080664113093188205831240821386874465772316452240529958621225458311744015949390130366766697677952535087697878371781417261100702934573037084095587748401251086029284516207423546082545563506272984493662978501617880730256942531114575912773125697615833904668714027177505176362571199365889529235209645698754134492958437656477866185439629572944979457535714450827346794645785497941823500585236241218737256449488186235204224344660153793271152924854417208831637534866121596980280224229290411015003425807165729191663718455990226142778373209325060474186450364650791928923475352503603862242723318314162778589509897672821955224472163171119600662395420966959737707090304868699784963986353888403492049675983113927317823922483979299597511980194549739810299576176128889422972193765486595457027111913015623699939773965928296056434153928682147384204427655548113076305493822434662572904671439634195602895385465385174855665924202448540948794040702339408762606377851102957102707973801743173419870330798754458716198343201578170506692794820154814069605531671241453157328611374963824394988525122466123102457407953670756214181828754463310161369564922955718703069270713408683746300061603240153200428128542179779502992889994640077073758545748425100225659910564035227001491320948972450026593790728100925259854467937955991183906762114157467886699514270738811369430820793388979907537796836522412886768644223176278495914494828169479686103966600554465107380116281938816751737722094215235359362447164019396001430298798485887871059837646149843542044306901010742905933835730732656517524192655818505851146800635702798766185484116003585544828480402618144978736888823765151239089511381800077980171669130022561737936445340616264185461013731480504451768890579725301571085871623452458276272200487968976271231066103421332856148367956958205882911374116720090987193192598281471440982216634178354549224128764749528862885002802761378900181222427079486282300221244949836245231472013096032045517287631478071054503944738865266019766266115119932048570349744155555187128350919203116426566002192681078133716318751904715569930891572691065678234842619430980781668713777539161981029596816168027030846180918499996919063425129034369637601424855365580819428870819195308876560335466194981404981063720046087289682894318470097199993915658432836771581105648223236670124252793131004469701135754156923268843032791467779485381684850979599407317381567202971654524406154133108649186643527498522941519268579293930762503570200651767757525976545402716077442903484294543418238305909518277081320932698770427569966809365233924760554292267528720379329294672618241732749005190592499822322900287178215249817816106934271594762469463972321118798540066690439797096846534968679931611501836890409665677562227245931270223301253262547529782941384280163854544020718008717805145391921710751419199611078640461016842270651111381265264391736010275589519538269154115417631432899301413076374679420496856672671915233685194448411802831798841369310498206539034376313767513240276336686579232355408626086716973942095233202574232734935155075177430705508183281593511169961811587100810229486440036381526281792589921001306799818497895604505640002262369232219032526564361030705661927669942848538673511415002378652632388417916601994840921819333991028596599551074956584430559528992617513654693652172839013291905689487219865093365553498549132010778253755637131967422912479932391624185620526822917818797181039363261452080550118155762205069209975508668934249751304839667951651625896876617099294947480571180708548933278836100236872851608143198226352795983519438839339780982570116606680963724752761428195038106674501971253234338698657949151721049287178787381266219994267384807457787017842530847470202673784364479279284165598018566382855405123912500028579305056331781249130947098650872456308241985103337807401521159285978413087523817502952828488555114611207842666375611979585950626161975325009801106878187349017195778595287853108620101097276195303869673513793399689353917282129285001402967921408764265013209296078188384429301197303341387113803307630945529414747015307330178483097652448452897266847067024462495601421772262843626547557249045253196445464459927935523521899300961192639359817244696088141794597591660073176040577887484147158445729418968649878405425371604289071365114901774229375064671932646623365871147834624416450612411454073393019569719216580471429565912741770968967120506024107450639260140632646483373199984987558584548046923000669892734545664874401677397588023382851528310468676881331484689574984784038047844516831113967481468025322598855678643008756723951214149225961667989938259909930525116834394382361577378264222656112127053347203420115847934032856144265241923679674194200658273825151483490153436836752438328155521532970586669950739510414842498274207350563877763204446525296445104453002190070341062048905108255528848680068673981258084152763584593574644035359051477105090777305031309526841905877440275499730087801190016744195603703696142611194678928584160381102039917591870997592495352758079858475506998894132755165719786992835977574597360520026495652954833256328092664015706519871904760358142603183148749275536213502391480308509636638302604938256207962782875493840719036102877965088267887927877692292647731899961406685344603951124877127188373441097614682608917931723799808553445326910928379563914791197448267023561698503930325175151278882072795413843217957758992161763360668587159160243120029844861094831714102470351318907719498724590277699378452017266967523784162037353475907967119145269247307090963101532403759993610532640435945964491917412180209560519353237473914031947695262601369848922200188033726773360590093072102097210227663663558527125068847679374507609338448483689645069948750347030624213674427956034784760036739559091436782163379693066488991215188781317964273196085586718629559705274375646236421143488412164644421893124883202445659056791355769034382955195672149350911533662186668277821331385706562704206160781106704479756979598689111932011847452794794902202217037661183245094404441652581401380693264719583582551051187719301534766924647777159615284648962229736781766961791915228727931212840168285699743863955143084183076613567187302760857167160874162584061003633753101183418054111261659094767607145480134393589952540826253784054812293892195622911997155775612113494013896255800795622713850802925812963072508889279883015287633697007152330526708360869548663571540808212379412117467560118876619684701514626081076709577110962020104914461999915812491255899724392349581062538787898980781342477729764027477160333772851948693586485114770507558061301051117273744460633294602806049583569138727710143900326744289708759607197517755653118147055064571163314512322660135298150822500576822781890387058370004653206807813250899838404757558460687607374531116870014579415892451691190880694926488823241176961625686761249376075706579557186777557595805444738805923228448663274128404341753370620168843590540509311468698618490587137222839440495442901796609008625207269344763278631333387138228152794224053017834441012042387066420851312418885999196019924017655699553932299747748898782491309039019899181473400573067598686161430843480976012195846687121637179181078731259909899829664802915768258966314621987588052444050241205762496460960794145548231655864957600126646383866032528688079142055960920558225403318622897606839662655099391529333406556864550357186106107707182646196659083352547002836865926195737713248043282231814580617046830103589662312409468124731176935148691176754386117799587768804906820056086162198049469141617273425442736043794594772654350394573934136723374507181654529248463332174734370671062451375376294124287948335343760254483914668099164319862181862042107372955770798221379863135484179064563379983556410309118818184955792259174175437104608180312476121351380732892181190483879359633759392273160530819153704286277192276982462789257460562165838347788917690379406458212063701393829971012498867330865763421507378873134953881915979285320244227477682929027050024953678571172874687833403131467369570280808781646126753939513575991488712725340778273066137535619963712514803686734947593524184915554564769387971966906546413492100756169124013601322035445689223133905405729920966349382727971104104720873941496495420586297925075617448901524770629754707581001058305793197602423927909445493668876610164631053791740142097448566345140569596729098307396191243281246803316807374290812637981906380108048090681530987120244560354782339710798161999236194883118959308756146212401058213329317185685130564045428822579093071790480218261836695500259771220472503537047741264573938385928220522379992573553752635109080397325078162994625721728020149322379753099453610011484016135111801003130314037067601993528743596968841133168531768533724222976753704595074861249532647154140395855979988784214366196941969268147929330006444249301324608760114531276752943114758453392410900387615667230644451041959787733279675774871910945011957780923575656615761985718083232652998540168893197762646000024574200960595692340991928927223438394612127337471690783634252501944917885688045658726111425966687251874700647792742966406350348219247133303730009621377793141272878610468600362290730609902206149272669273524718922971668153606010810439988615844488055504063088600801146005417164894784959307427248372563773985520446523337493827851431984279698087741525092892089570119149315651491041463425619174775264044209695795013135661887321029728257791982816133286326800828367133127068847940989990660679976472346094208526835296135467009771296530172348367582438307284037504955982264215186162213324898705965459622814873374772711721634963477916322572220708482401810330705101567916085235140878159545828982505177316925684671453936286712500163596080840631660305759384950357661312200395113427766444528482125506713149294822295717645517143244004871518109600849843660408767570806327058835311298690621898334469949601647153676718092995770933609852747915657088310554692395300430352258888115464511615618666313515212012632582101553060575775802852116125953269562377799875864890191620793480561560330428456252542856209791084350177253395996103635487437368324901014629444529089986449318857015722486779834894980830170849399773584923528280996824951031558294472571119529420098396396875618427516397093678676839647821410140137909639411920635194211542770525422393851870825312146932814903115887537322420047332444190820661497932507564280968127032239235597303892772993787103150372727901392351162666632994874559537188582080693986617031989812818346595645626687585397078601204787111870588520151738369810949358083772561652506405540818128311510468150897574417212516215403300408479504774334977742133101285928026947813549976654047073566998029266691270465088795575927106371591129908835411205444887946476864450138608037756269590811008869342942601717262010165510415115105895829993896084189138163370457757702030806288696346343643934423725984781721529010505338927788904448113949124221761444798458911982096540416795143231200651202588986674049165014457230435071675808236057247658465628608439035108029749725930994366863315743155032204449778692084294506154828497182532664413100140868419322129727231296913022696102402190290482820231256550501365866685713428224755522249498556635149666147511376516728993389562313137476350639765566056944667324186367472014062165518801876698259279418729572165159730617411179404661691614835942181614988189883560498450404968083086333084376014194744907515204694327873684352980158003791296142540059989209994367571319784471799906745791529120036118500213164278851326430615810033088285662579002707029525249178942920307809932438203376772616446638531221478522167821958404193806801384413309477511342906621358027204247597819044552287295467331715491916225927209176974572775481585903652598031709878400199708982566029553058983226116492076596438731603237351336131082692153395336569111291591564219577109062817266693093337896371939504750368681417233246964800712305098342097136930312963845818190705023070903180400987391357605730055914660302196781311924208339262026684119753556443372341093307738101660939045151936298967003109330393685066387484692651452897967399225641632193700983209115442070274606384805201206587623983695880802785543325056728627275589754700437172749341690822569276736415031671278687477056310197095745534043320388131284803201700059714353493738801890869751146754632197618722183025676219565030988120850336962619308728266509811229507005329113533211716866581320219930051248967843723323340982759422462138605335942530268917092289243817971507385055499044559175740611627267068153165629858169628517704963201107959491242039441133539562541657099540737212757296095082775014870867665745012458560066843343086805589585793761626012684685413364665096919390605344524632640706619947474458075656088095192422409405736802750457683389224999781969830272959622116104919313674817767790775342399246228926988423920737706219003810518841788283231758568561382044730849272814638006268297950160832160901533800827043946896922711569472506296402347833625819864892249891826854214518835382212309994186748975904468224088782072495462603249992663028576848782824934084760281184195920744049691767815960225364732913881725318711017427430476064713003325167758485526714387483255174490406189136385202522744580670942421210076916283517705879701651882185834951726141547762727284602146861875364808754384002216960177204822767499011953421649082534476440958964606747708977158879240669114754382130260525019919115215732544107737978112415956362499700545833864695837390391560736598568504722556687116330394282826812162761579406860281733975304631211680530518545527119546991712091247120442211781844660230913666310231796837386644989080746823363046849315586708524514323202095904831860904698901712075193157617927379102537110502314979480358949260432190997025881674885141976616194085218271453106635443947678429668043324839287785717936317110116644268599797280873978692050779800358485608893495619126320538992962014876683279126596685555317575534260566001730970282458736060950794745628271761059458985491288616273020030376279308817931467035844995347544854595124418127921326852220249291764650569657359474328236935974849466602718202120185055841197022380849667755566999662058808199334369425556769918922168993892596962970229256067701855973189633503676205475077899917008355174352291487443553875030357777609670873577001736778420414391558620405962611469675093670956333577111327224965554083623809940486841960352425982193344523109008052075955948092173539194517266778933601535693940537917920443326936365373345974270346119291123521982003668989262942735317746933773926617778834895254591579763762074643943312049856137229465493349121687565856602383690318805588511005055219645199366254347878274784671593926188145610659140367700174134919382947143618516965732840758183884018978835599374978476274145304195606881011232514265692939494234948393871339739077456039470544508059656946372211614245030600895528250839288931913523887125372789265236529780309719963431433196915228256215157777150200009983173688186526449490821724114566684401390207783694313242421254573494892328435410503267523125426752114125705561958067615622748272338411635841849002321213254504169830449264770824899279717332448411150873617049704642683255144746794397875403336541684288604656659856360804236075909350044143139974215123552756925509665598418604543135448699197067547519773532688517961845490637565555511736734863847050553646039139116257796240957963686758773645020632105618240892044944739243581096879640969646624405327787764136720459834531032576835141362599930473621440475744705501301470546373258413942129044102744624992493989961215260138311186451566072949596794637673064585153628164636599851435124153052164222688632980616483031488310023886867442896803430349643822328181730892029163839150515259629109099189307518796881730384158520640973349029119169101896758609449291681510077210720395220425419337531911883359107086227801753381830313364402886172443528607290008779188719632760513677884256005526401804429972839093628187642016420091463646782504378706587147173420084251833009319255130740680022560128944511196414966072024722332969275890826407078240708638296491339166939411531100237237443010640105697624371206360624453327669222681222080569790304042380563165847586771277015440538323146848786616043924550884524959299726595087982449152863621995092719691325096051694845359794323889116083523715265124114204124090915697093258982692719757327930513398920845229302118544962676397724370877191110196208167080036142176390681709470735139639973051733816069273293243697866056141865745195307982923004674394359461501029362548173124342255517848192849212223858864077673952071070237596047455148353261008971354888038053532761330557224872532621618846226814584922346970627356932895043134183244325459650387863120821320600449368344053629456445441460681014460828569811513765590759009964186011534759327908901448096698487949705388477791328663725701039391547667797758641575004227269332839480515463262106048799554378566662243188974079183208943527810669801228150543418232586515701079383056288889277567413754950361905899434578447691345553358565334444192940036199506813781808443108377991415367526062267874991250911607491039550245378453746006993073866266361510870245584931111694468632028665365057646245476945597415051511301875056359214137440898617907725139227575940512472641553715916240953250348932342978742162633364837285267557048764692223229565911389701893694593303911276515160951473808852592380861949959700214719507920457440757001593799852250204656508354229328523912132276582104931695970514202360793838033560329090444662485917956251490632112552816387496776772977311895251205322796756153233731435183874205224409273131596715916919384934167193707986049626864374920250847496617126473098817313322015298596098404296154042739886319851601240053768331034041762600100415209580747169236524954166666283155244766649879275233276742927255637132059237019339575539436224887300022594863242595344631926456792304421666528699076143292253232144429491432963382838844467874726406553684636887853834208781800240444030020211920578445938434647521936457968725982876545907702502625434746850335482233098485038718060417940114284940485380339429083158898195544061787766269969060081139210346006696279548713539069868460439924707020397253976863490029714951651683734225357548016045887877028511565890636147631667749670966874933859561019130628725615288522583609726180634905198613718770935421655557166589960080736234202737447308927729308917381920671939662774301284254158083212387090980423362182448184550759692210383875363119039548935175323259531205176770073339386092335987872221498945545924929652019033794290673968999161977364125859592942853841321242295469236852699817031832117747516156229752483823199846303331446994184989347740455720806486019699702867975111611397388610060953343267055918809238521859323409203740203017383864559857686303951938821881845528467692356301071277582036020158009219405590864583413029072974229649301506722447604685709085625473803468225809019918726506131713767923825382425435875331931726350599386800965981811456047813499107628728785819385708181837280052492085051481805418933313968758679615808886170824327740579060822292062612038332617559774834513815374457591406776144368312517377034451429102846493230249453225942789349572737367833593321180515946903734813039233356444273517382722722806948076575514161425683702860913808977961376014796585964063840833136536991626338499518799215452768777911128753739839860400680845578389044780625135786629817382578973543357042818865920580784357230668834704877767329086900733414648815766998706965244074973278803411082282657399743912564631090351721854208388787737272202793413510416597805686815492167721118415980998699881292777455682568846129204534998369845308360242462856010328774567979483324952407664632172927451799388248894202830449496014471872279847457996100201919519139840308085645620926751393356399386932989223720783361996451232480395945840912225200220024920633018165713656239067386449267269887345505232655709878729456614759487911100481145807133014541824001109299955379955604134173166080649750727735329675152344943210599238687255102306785051500527394712497738507860722548244146260696039501666484914649302635747159106159867042949680033578533433694166250666902790565552411274965734806406231374932388049771056997755316626909910813866910021073597378051974596290627346138863387928916560471755996842876894805749881032591006478231408632774842666552202015028988852325397791171272291781389609909621105437782256544942674460335752005073468707578263412538304247350743481234323100058165980068113926783646154619498038438830541366848406912383958293901803479815877354192435297976652502130026280140209384466676086040143188273233841871307338339944191525287477894880413433283286773870286274239915804968074123433329902878097220472157991160679662673215457528022349223349560303087416422242949671815209256855454120908397006769007814698361314937093598866630081253850289631828769973114425975208418761653086640131495227090466891444344530730041162829983877067715439279248480198751410181983850698547232302097026189139034950325304675737377327581770978280184891873726706844731801467794976893752567624207857098115921209295066224949087463299541191216095147134785397041499244377529907899477974665478214733602428908228899041570958998100904203262994932142685237163307837738164652236804667237174259703982824418646383748245106892626427546432672391123038847004252878476004461721232100909036666060359780787871483286831527906843129326453209820259262921609900120451695804008920217908119256754017407531379379091787187565305869017165380264450306160884813677837956878488695422622826661465069409340721509946973629120525092181446471916296626349120935842728158907693497444293781936071393553205115094997117865618554919714523392025997433552584701418347368798421838230976717231717985575053120665179784309674681792660631411193924020981506331335638225794563613817557157760613445875601833960691907108861198705763059692526663127879283222239218240160279170341215977747340417610717974991228039958703296873341295450835390078237423173986397207528473977602600667522114364078976085004043229085070151132697548559057226671396463794915815156674248647539225729197570874565372119148468632866221407770790466251090321644547979899308206109598800388165271755633425721637015254705583192170775727102233618215094119956685480219847435762966909742570312569495243176984390098596076615728931211483251667471110219902956021816017561852869666040815508764974567847962187920805991243421984910245006285061899188953520260575302263129546996148403039945528713990239421147275575849187349647285981099952698508651332263046526095402063040066141519285037866053308343903876785418104422463750309523958023873867098754955818270372389835278008424520339980103649070369811272226364078132170563282708044735893033082534151825454065352767824256750539973461584085850272835217973468575514372236031677011972334269556129564569813382369021907118217423723766292035747621872999339695287300276333460353307742323306399973799876345453694993050899280524306088618240578473390792858851794389036440933714204250400502363133878104382284186633240032776646036926291092329941504708438803167255884599100399173506627343747391804328775320859126743748039666043941230663972023582308422562690262108875627405296915941170834897979799493303288330843698904237819273208531146609328979908100949652691935715699131860614486111246544084363299054809124761810476779817617576931672212278020071775720625870405373179893712261731108104251836198400174112689015807184170997830044217298902117044845813426862195001822689782597902314109224873513312739958388522605188426590139722566784020491725955991055803562502506701498348671269137360448884147265052586366710709623761709226789136810708563951825583781600101590919521430381426386165643515327156396363923450952618663687679122618160357583956952877813998868226355849519793559074632258716741091522818956824094312174906980409796285398325674621041033753777414989690034070015745252201408891247590070750123086348511471723538594901111732582892684925310446951902865645156479707814368827673853639489986485596303138476029791841676536567385995654226930510173523977211819293326900918727584688487941939246971021564585409280157560102381063300702597347842356736127979070570090997839024348535388856446407116537375189763508487226613611429445352152337408243427126387844722641213352942256827507971819945590011050525633850360827000496081549592775925286783444556477547435836513667310059681060526269535093012453125912796069784198553382264780321701893183823316332623307885728042276826652099282852591792558936144042615896437141564023046911705928149130432692951345131526522592893343058655083160586068179423264470603284920440308833499533973165601852368827699890031327692341805958691181227362008145172473133005365698807623203708981534264779875563035964404657429010158686281373322076735128976543289216909918252681763772495630281824046357759087988632619428802397434015887003931061064426669013359624695369955064208894650998291731206121703213950047279012260605809571409203527217999968324726866751348783565536330016688262824410584830868770493139285795196373970329180113824905262764034058722518123185168770966234553152014863561652630296999215331200926284186364234218430509409253072873551621411390659497564438708926058543166989175999927173623946144607692505677384803435614120714810979590695573849754959371342880119355450180697825255203353004976675882121537357132969357520197124987597964674936137515156756755658891125188031981120649168504516108662195694750017633773329798263598966345361254604400548713696431015311473445390823066420115396338813423973649807253609690189463777354824711022464716862915431858711491137100353523293065461243897695861340176744051931532953625332485317880716435363676388714578026156095426188373783967156961381321201340522545271885803732033015338649544210632969277153580233870417922083690943509071052657061276654286183760574404456527241656506882645696734755986589541326273970788432635293769902577640950600816376400433381050500213968813297561908735419371264298659658381080870623918273441545938970033936073831828169423150538131673324200696548637659232094778453986167819014239876815737304940620927669626397381782969013885936119444953425437385132779247601428735667572320523212256922192496450457894788423102569151750333887055769556445114932759455468095075541653076086561684253084808567720924408829229069494318148956721587224810774613219598188711089680830213892747818443012223679190863559112204961305405717116449548080666405167430446723212265157789003511609470971569418505651668123827033984939310986319206016932831698435077010400645648934418510706435270745049084313630569367705397990547591891862942017599902654888663566179102083447027277590684518733450713527559342824295515149739914726225237613031934737337419519329122669644331339364916927296029144403835452531063286384733333672780468097330715107764689312685186954243988269461028129412741085092671887689648327309286714547036289723102092984401510896606533606212007009400967943957708128887030137528399443922082193854007302960748960068704727095044342043355333711517735895999373409289563386695438561864496339920889358972532827119087999595317672397324582015090867820422520225292135967753308257278005834556632811408600765707522328615063627814148299749038120760264552864694176856332079036388729646899076837502108378078700299859866317613680860979883034821538197750061372228106851063062321906204537121498869972663201600743430956363490639227402564009476824351841045875538929746571738275785669563203557469352817297612091969825197327172424733218642055156039920704003395719193253234673365716988765766426069592841738707812552620810848662803844966515497548109438872687714969834050517419686907071205983506034029694494699301467912426143185367918049841601763500056253490046789973741831827681979807908603757942541548892995564909408222235196418479641064731781912005314205480073483868122065779449298441478519268915245532095441974773120528428188477801687997524462594754756150937900162717060651398605326160793579407491363335883718498563369452433969524893928637010143060278914781351465639067238636820075278992150877350620951230520528511087970235330743305483787767541994279442605220640940616403993843385023007815881687089760710706160812569929077084326180810599448635225323019554756024536910524839829358617726053022233339588607521301644562964929163960223620411969532352478107161000739467698479206273442351682639492417936381435209451277132115951502153908373684423902234434462912622108950769168189033212503770180939822929037337593250110823513336632294267750870381661707068108110200473621774032287892197776750082890573527216128027531371653118156522920416420309404310682431988991427033045138339592085550649793411468796602512650686626593913171809159017131201103492858419221215518245268627372296642078292524759491671777657563745283276114478182646051635874766054088774430833980591974578568835078663929373676284182417662481105520017328687134931688568198393113215092385462008148508711342838152061030859757248291431138775821065893135970018228638183333420356832560262733972952177968294558560078936461923437842965714083196108853760993506510595779804870363315111162058140881916369430286106351593086848575683582161829148667661173267508692385882965305964475134975423953591680911750960863350316340027297808721333763683088268648054988875434840515479794689292684754954799453549455973709752488922431197007033955433961292124682621236294001851743138323952350520249269929789259706124002285877841415732192002946463030851471089902443683312565701374385500248743815101552807648066101307866402125030090943488820977464395083836120400381737336444074568660076132666340481979885445032344686814959521384594985886896055092697678462979935741040634235376155426721382749042101424616698848848981823946975991379183685668335085770652364380079868405738389816119910097552649074586773198250968713542730144541410000193961938332880718670685901156076928872051940258051087584128769351223932778778954408298545671164805978592181537410687637411588189806737132249931243863622959535161930843024176388263914019252024845719670971313070027503633070987245781110409969526061247903990282456984785502165696632749798124067697039629172393746220625045226252194248699990773063547506718790415643540794918700367751575723732694072439674859499727619848796133679752920375858949933053091052455235824211228297886003797210752191757567430969261234784982698182489332159062012165566452852092099888827575464563117756922398739638986835221007484623805885875524923162363267362476746825680355342800936126485919388580231399643562244879698560162762345580321421990205814853473787341276564421578872540253257803834954001228877235682512495731941479962837915467310366742555144706419431959275483528662465032572330815676736854526485979311505461172922743830346491050366155664882768458961227592708696430806085890406553946553574537089094393635641073016558550116598511731401168489288672022903119128487051953161007533734119635417197175994181067892425036452739636775519275044649405031585807719977690322587151679378747927171778947785317632210923377206402408207986091430009150285387287656692186221298191846426698583612253056240197278325330519467588965929497012961332125657974672017762063883834915589727540792115835780836549387310880937077671900430371336948145410711098017317897403316514290226602005869685969826989628116219564802372665373737731376291237554513511408908758743022187076134635880306427663643821470292441159238541481604927753121426657592382043111190426404373795591316114839931619258414525123202241293645919042505075821162514132631446130672490101959836556497748339699447367038106408359018857637409369942904725158471458588788223789329336683611978087354950321281827297958722868027642405593420520149747798343387454718032614737702833893293462165580750667527792345703550298204657910823721329387161731125490272135365701113654334188080711822072329753418602036756484821833310397723945640263478786571470113480634313598208254134608135928795760150913972400327016469747391274631756534703981809211043541601517591498627517857390160843161536656518713133040336994165914900563776530246249120399679582340120162014631150828424433545978053766510279390350456824914116720431201137519176988425868647090162029105515032734005426513944209597225616053039390591571772768003060684221839111629346926895026058880851730863360766215874754776469255279171539479237668070533680146200673368546115766126559715591757557310839598533727933746952929220389058849519142738301316131471183983450743534983700506691597515999124486088438119568066628067468932023619916237075537600158492804764138788329603806636684720541387674024488982132887093569220807727348227707043251896856416693576346500691020695916507139284299606340236370433305368295509345686505504774098209398941222949886275093812329068533681602322940448044515971450229185431401227574527279293385119733957856610845747328356550290102590497330038359405851347234917017259811177257703435432205272113019804929083857652141131778347428377659368988830673347528046745675632992036192169922416224489539331624426274384939409905011970957674462465863534966693038035283463882675857428460895235304111180346153012786406673319581434298093710443175580333070114565301895563836527231249818914734221787157048460937074307677214616392669883421745787992096703449916550615231376232111000896086740097911471069713907972190016109517517442992806816372726808098589669064776040855042512273684424382026195600027811870553250053472519518289370148265030947221469477059736361591868130899847907862125987858606109671261298218075151549525304868708620139625336656291336006681609557236861640211376465849497043373163078763931686221110826648495633861903324357668899627478362998706033793421743668806753356013709352819793187821399291317283009838462333757804293226493280561656488982288622099864290218334529967802060799258354134127630358030713952334945431740150891842861269349007182279783105488920283738037534146844822190349847696904200075842724265438676833684489391850465406263117133173624101088819595077021473074839220169136792522034900231782008799066066127994435962688952857185561009155715977536476824868114996362726439399512665096497187700094143259892718027689918517862893694316387823846451556090965051548762949703567671878024128618564552707034719116165260139607154750473813705976575877298245809421604659645887443784708231974493396873387430242274233423151622547134894899431203284614141329298062942199191932485689070787076875041966600114343818070084307484321631754686796750284138162550240625464023790230515679991331708336477423180211869591898108868965423356213112919500827707704131059380364462545420353313839544012485368533441541841872147251872472004347270822475619400326229786197037885004970482370987205916109358309895525700920495761708090627236047392438881127997120313482908698120001805349791786023877773007354770993284286928605295214714887598821390135147710413415871630481708443168184624111184839092598539411978092286588359001438944644058984276089398248693010270256487144811224827128762794231604853616672965920047995856921481180591533401287084497184315024701378419047114293781100896011389085555435075002238106348685609041054039355694207134045435452981907080223425647568819757203834199356960470315126590547038154894968972914990017782956266631658012611980834219393736923237072997195114400201611735317464229319213208610465337368705690435320097657604814096872974319513605206337643953893720553252177672557360182246139874508498694899500384565595678705963290603466578374278060869808823744397221448129854806314770369233408179183745114804991476030671425448008895592381997754381254510102977554983132130032731668914324394914203450372620221485732236781014401103987855170769173664029611371801199228330886444969328722952257008575837449972764990043042744080665038422061053241847923982632677645755390804311906319470640591939095518036513120100116759786577177390733917881923785590988525529401456790652923219292873534334264162709878954760269501494580903069696714698630063028025037390299151736008856397557920096225326620678340135875631476169840583384293683918629019898242745285811100399043085580951787383591364250410484817943887413782738659228912411408763828831123387911743809059179744779522794844720020560380213068517365388081973000052555960656015769766772316764760432303713750093521911224864428995654254759104757177949814352862629864441814046020530549249981877209449478699742432748329276023468939092415621536384798685727270913564008976056787516533936786421050723584024884339282687962542875701473555052372006174766773213659692264164111967550595019124789893283882194947784917407875554671296121102856601113278415414931452375125045778417689611957592729615134798674687621058911130415579119251745271895507952147622525333579651094546864583649849579794081713475506669488965529706614147866176834931800042162998478050624092044851101402573572373409472607302667063721218617271846728973253571086258747637316508786303858822489790760903175373860457547913129342330326333328383410538361355531295892714214096251931182910557027412990504064526715060519321558098433565398284784685025984872514326154984002381202996065963059562893657905037498067448251759581509256025144315133890104949744733153849020257715636890248032246232368033374869380095578204609569176298585836711578478833255251461933620697957485960293325141303974183175333532047268390424534455354791121974201130319701451550387578356675185065358439426758371899198858435153881382440448065124343499449197522646785986606382970473487082369546594552296601152160389777519890753107562731745038751994232157246106702534155084436916464985441329625850250064327335296652918027707214664036132728233267503731344561946454292460067667143392534856373719206754314736784700669874585549168579572225376749942749678378292157783500747196763995144103911265138795734199601766654133476036217058889949783639641823122789585315800293217601017513286301040523237304827326547272971360997702905410057906171299494185764791722723995070043738609055210218089545151614831066586411873017733889386931223019345027711130785215472164919643459466427035634537704764192344303868007849803445849965405346473383962720667507639081102762470249610294938529918064820467426383730932415693792943355456703812224782107418671956481769439219901445316138134668131671954043909207374179037139322277426042657071207797232064548884522891103867299205953045108756912049464594808302560805690212272876456658870656693343343609892460932139059280981246950539886364522449802546677440130225478128118080932710806296300950211938213313553061411818671229292687186835956950139713031685969009929133267801385787923438189375073589793165602878377148460972147543488347096604339534638942423130803465465457442913005058696401581328339209154017757069225938566360876384258195379354046569596484711788305466507672509723924344955700121001800695199187421139017991180310048393941105991370011317988665772594935432449575433782195809098716733820645151992573033212425804108385463277010926079057195478717431931657164280585537386158598509232216101960476441256743989239517980735597715220801020338617420303818848046478939724652435253325949175208460645626900108000588699165246517619767246842489460954242838086439445554916151717569358450513966057632232230641011841055049642256494972363299204020550305993903647822658247321051562471580445234057277364413700609345742600436955838704055261296411939732001878398068900800858960275062209199898883658702454090742270172026073731880358225529416823844432850572542697767860108234759344714462145687201711707376411517294891841890271964455006178790874393043923587623168845860633268770434706294044106640825806975802526204218598937199689891075614840900099998285075825122208714601724151202406889180078604901398540413805657213350088444363233719509103940181391313267092959937592639759352902273322438211037013628527419315371664285712081416802100872776771239017602360058492327015424733906415600717235990646152812258154557058710573716616861582216864656826540089649335573621163284597428039419540561352027712458076344201505742722381694356595299676552903000000965186482488157457576192415049475002455995466634035371272912918219693405434302840283118340033960900515546478252113443046977843869770138466732691715472378454917600076215417674084533583994859131212081814798195716032650495563993297143618160193707953571474669916858906212248714458451749146913188102024117664693315530757074909549312732469869358640741918794220009898716351409758406124771651946363530395148271814242280357781290295264608499140353653395423655791325770266260648665165893280202918520519627506300456165215770613468588403755054575282398664137910680917659483791137681169861798486714387200292193985696798252993943390394394474056185477474214378125330121095879940581339085429034075284872063549297680078918404726363112320372362273957504690496972977529239212281006176735022232263809851275040823012614447146190305953892221217831073585524185083616193059676189240460092305217318844829858773193747982200334561116783035753047447002035856649405175488722416817061074771860699411899203946686638725746654235252902202026208231167964253306757691225018825768628947152234479153548975450095007568617753340252094096232786969287990143897550083732888113441686865583728152805014356760572701753530001303465732318271285076246855794475306419879145844324633619077035469673057599218265608803162279776907366729462962147517992256682401079898416652495587099449618758257492320691664052902089540536104416219630252973586526282140854035069510594773148715391835894383655835890550611259620974306711130092033369186984323854019934710225437577260366669112740132192485947087943800866957585254264933206635621119985351170705676418366950732277590689910388510320260939096719671711454938178486924651079672172842125623547039711400655685322023036230931393318756851857601563571636953325122055702654205738769013380775742539080486356078519809242460848119711161123254309663371834921739403259181094120647592124189248238676580419572059170921579039704086522614425346852750058209458613293110120159618444794506011025768648904998341602430806396230128664595901017053989433386497657060561223570404984996618838003707279857169944335090607649497212600230098609765132355437092172941125681929138098171762696400277005498247581830201231409163816393708505372653622591804979793600899404204212504037764610788186900981991340639995872372920141944053839288275231272526266581070565552287680344453450513955804263279846118340946422287812046159728896302887988983748159511605208385762091776650813584491280653998589347982963459459818574449009963189934756999971379961592299285021259108908858207363489973603072158287235813817937390073852790851807703457894429669898164340398994161359910181407939480842456487993750210216108598871109973136811673252346038632993586722916041047493556928028353954540064484158148767794110362931850243677543392644576209598905415890905529388719781847371318996445185241123545700991358963257411331599769703486102111233370937800746529978866110479030280032361309228211542843236833537323910821788462879425154049059817237453973921525286267428787370922689967108108531415580351423551666893324021920401272155848555759796382468942553431492465060466490362682380489675887863939632971640823754723790620131551190749664699058506361016886218518436588098693037296684293713269366572362535245967112225728275263090615372085540102713315775124975199098818209432637307114949935223920421594282657596775223741541062823481895416521105443975437522045582224983880342611313178900300182522053719779892654480161346900720118453392885981482841698390878709062712605344710085707612615485743176251234506019544490531324468964710260718388277831633754632691621984374078527706183613238813450481595440220462705616340875898683769222260522202766457389352441650946802124181783702579790232357381773412481872265857464121135884085015862308804354061227102042554409379746103383166091099904765878520763194436693239568166876366922106847517389668346640341123203623047736029300799735687369899548727570917364852993775864807164622515472348057004496080104699510771727962690896260239393321042755738592643725300502815706112315629261977741625994874906791632026746315637368493039787546381368213527223500542166984392410989306786462131498695848067741618686964011036202994745670948103912776878089639633454371068502927688521082641819251419741505537551854346543138190322857943345686517160471682781988886544321851667596309763677254120580548366280140112106802446953849197262338987833455378160512880727667263722549345144669085487060802831061828209924038515871809564446087152568762488263155958068941003470048672153755299913788545606646760713443639852029807470928299114562054169999790198977591175075604260359483738491954562638620260151164545806074433355445194263269847280855015822763237566516351048142721512883827270747811234117979126842211904198797372231161089692522234164578291256430557913062605633345690080475876802148938412507672403648582810433633140337090047708754045655927658981784608748183309666080184060424431878609882477871443504825356380042575263022826530697149145619452966455648993619972683481990438616148405650253931623719701268334511659059493162879661908719050209704829064748534258805574560540110423903748842332425478849795710220097265853958192940057883504736302269442932783864745021562097560054443113363161935762130001397813911625569917783896549630348335301676347238225644831731271679162759977103862191454090534351286401799309879011773948641497802300804511539727519502274318143831209243365566087826795647861669815199245512622520373807717013308828020567245769566267554211771148920876792582631640763047366523906691563911767301720517886994706060211269295290652749990576855642359743321115249753456789516340718572707865550255149457825460599581541697046862683832279788045122679653438641639689406797333883507736683878674940658686234002942974656424017935025327718402478732224647338636455485104734987477486522180339619460368417037181975948605794928064921725964112877754699368730949374480933844128107241532667093165769609291971869155388642146237729610187445848413350252635993369233290552053196821591835223087039970479998922279028892493835069477400929960359417845755074546906078670048338678354216683505339969424932514218485520001819156713783470372644368523991381013832067077703689014931266427112257752771759424802461266851742140822409833570757269892708524920891209130037298852310776217913197822254986774485774414461230439249401199695026854743838169220700251515352067918446261411538954441355448712999236438259505861090935239419340235347726376628101864600227378330824655490319709348936088679466521994588132655486890151123116911418309888604159730930198336677961731486461198418012155190480460844946663974209178392086262070718908511902730126628693724970203852054165232891975596931819847207798031713351772081625992847714254729088122555181522158838047484803606530810731305448705001923732853244140686464771390369646600895940070501485501983407001704585591482555573057172352600445799781338108329007606334407722568091011216625414142891117044880958304603843417257014461303161326292417143620587718043032459896847318766131454844162080473395074287024472535012238066561402382590730925294385264247955914035568704576166955858180056049270759077823633887492418309975340005264635874595426182766030595915962320452200308848845430119472585076732679267312613160882675123848727411385972418449530950978034373548016578027769821101434645035281313434021720936439167176965901298663771279947402585835274417423783673382836425241475301599968942447415182415745994820261504034864167466891354777016695010947949867418762190101534676653305960511424538383982761496539531845055896874248440022496440916226107588728329559682952602444392879876879259822385769379019839575557723996537118023053043747690895389319574816199890710977117483821349194699978319157735567885407956403810059090520324152872816645981347315881624282959116218636879043560819439639918572987754950476145689737049560632215240393678231443914319492887868841909029679445902627258222594475323357103354605470115582769810647014606455699239014643293350492502489272220556053353339579415655682049506511565316881212599580128806088813963172903957008769200049203924098106350996971453042407060038837096883898109814986779311842784265158484918906541474863359667312945174909574893721549381866289085965108501360305114142558433796594352360027674625271166165193526368858834370081504882933200839084182092662536386899799973576464882015735673523945467672468964993406124938199569435789173704832809612897784513622590324134774775407609385843722678183347821739113510267504879542270721547677958946424137140469935860729661348141460953981996635705358284367641820218104498113962447820562867762104835276717947166573333873985659867961411640563046851694655318978577020923414511718759521360284163298423970636867448937944584248062488154003598902202134966333959428580233270699267367292384922327363087611793834939497620393628418528812148854775343862808846798108830720091199789420316301224241241086703330183293443961188691258164768288455656927613688532225571013404031075253423889616973081096902925835575155295038920507771905874983743217363792324487872704475434279464923941098851449475418738193336207622863276219666047383293187007993127447562733278154430773936070406653317016621102262555806431502079910929692143722838200829717856398933851348832632158424131899276633314394397584229492079223839956927971557785851845168233286818000905482223138524962955544824676312125425423400024076764557399711724982437895478189367100223225636590623432081514078167061145362769025955758703299776227373560584446010221014196984536258334784317825484877041368620055053599122278588861276594471005830399656118176243458217189052000968840774385057536583464066077700329817857074419492381008772106536535288319414581647001397627592399049933620903898209675269176511470808219887228370507528456801153483720413463881758510408407004250724385300425687122108508668017635403692790968035548444800258838654542509182578916547422048426131674444901460183024083018268808243547866546883968765178357704157910807150414408124051002336379375596994188286466500846883371998385537337663054515717131932573304485678076217746245918374838434755759536647681517593637620405439207838295600839232536991218059053371877680074045316719284299715034058462498443253583355342352696178246789120022900624222494293168093595042510596895764148811774473366492362349947072104730060918838123612133093150975370130167890022714969634042611485608313703301079290934113724383945614349038855570837323686032200758428597977609891577890298066816858028447466977140378666452935954447263714315503650533842552937919360570435784967649055425925652500781923099777669132580362619044324783704533106439051743980775582095401962305658553413664331019350373179463857141299051508822253782043661588687582691091792725434264897025554986072256647229542494569218007975951649651642945559527688471372707234117862979281259388569556162596284115754270715897613859760611604623166734118806670598887029065379061857102661255129222908300623569706201128850587636851538208679890611153486999807656874813198305989032434639492079144124730836746498050681617705996348118483867437161843668568209381237643795564284898035160270731235200394379053878838569305004531790654570675622785815093284828954132506308669656833555590320012117255287484758598657500678459011379900309417856747714294625239724362209266397512290432043800044255059184056731700318024990580093269231863765370656440094196548040475316343392329298253808637634224077368720429565324693747481242050096452380515849707219879996429782652066354813357268286852367513553480513483557479332933099231278609096806230226847055597646907487106679500029741156674986232501605703372490827090918596218351741493583809203758647082601770549459243795159938380043171652410987508267450751890566012785315656690169075506270488422206966978527732454389795313552704620961206564129916079064229250693443396670369541623146235611040234618839493534695689759914581836901536642173566584428447136138673508242291689220231465587714297158799549259918478598465635898019363547567513198194950130991281910730688098493275010445871881910894423279635902231082125976903446580892345724723821165621436699103758390817220488694336741921763453234219957209075120754509839402570614694928034106597394343945063362363599123398139494901299755635779992110205253478596549640754018526604396865444971582042565046885507850658330673783627497661827437755283267934268589847715315724469299099526892419191200450280599737639365919956440874144362579701914446907563680615580092661802153690899690656546483802208464179152203894655821219970378397127761323952327256523664019006997072967672079821045214184541293584329302477337695063595032059389414125922915337185250643760942917277332320993376092388636166364199882150244098049169815856218125365147657733123127744537186782774689188093376240604024605096196033197138809560253236156762862765664307654466645933455672377750065038569152110745750770871362274044809368976230893697808384751717709202843190669706765339570698707639795929033362082719014005252649290746308441073029581916129235307039268082874995664091922041167970806682415937955579855036609221480498943359392612663422724345806748157614514784341815211722750955863598886401186418840646678462260633667546072802695398734207235310607227061939829951237272636273771531231412777810773786979503394158576051289180502486074657511634812255901858324278918777771754219782528006987536293795112907493048936015890689246961522251155689716142951786760114627000700568760130488656102561474631520683384960372289382241891299944238865765429633071218727712833974396662761435148814459094914347265260886435998389689952973692359466071934557653592180451665985802056196151565946588082066384454602904878666305757102756812542259747393319949899861432845022156361116558158647745027382996308159167336455853994291198540150728444194567466716757127931027185519860107728837043570685617277153793036872587159469540350962426289224794867745433721445851886624464328150960501668161700374086692397344533745551871155161494266109334938668549275550640478995482227697342109580721670575294808400711173925173156905828895303863669985515783491396245775638695246946641534649192080495135008394607070483785598491559116339668466999125933302164564338637044013424037641146317636205253374869452223840965031274820572346590641413805366936124069165006318269291772205369433142174012761121741203160418075135615250014044930935672902193948241517932703186428933449835286285316436887908311825498911842721796275048877363042963378331529978751686078000580298428827579281185148040933642538683024839283041077657427418906779345298979979060393942350926315514089366538185751437683486382945532250529883891136559334586766530406065197890945958466586836633656294610774246130575196642162878125549639843528034966755970312673088460934315587061011438074631351804580466026526354691025496607612279911359730376613716165100694872056666669587642447982876946522725416676181849798427308167668995723160208590997294596198566309873289004956393655123046925195524334392478378240758975162991919685382044003347081086991740265048968787979946715361462814228915633833764832015543962358925489369192535151042349480769723477558770055176567767193086207649563165466314860388232471494073254826525738641300593287721625859413013404705309062993017590010530475064105059028171324267260731356765350439157005156273502598378822999449256331380304608686463558651622027581260038328644195123498893341112282202414191433608242675793601223953151568969713211975151752925352951677639181990957501345764104098894856186414383596847241790704936213975794441490239336820335439657838649200235514327702343922027943142859218660555467053666939090910048312434552774586213509412117729630653632986379028164987714957577041496825696260177528067945386117456109048945529722338886554188257081344506941379278115108613316502313296011290766380960980510815549022121209400308293189251815845523243748851261168156969342179269938985990021335822782675292611880423553116198726091503832391390296534163254345085118027604088138348202117584680572981809459286845696316857315338260114723545123538949452799380699794075736080373851316573444440496384638097573160293124228832314286711735921379235474872121878349981253395171738827368332666658411102512812686620262886576281013936172560218293740843590000553406794852815251364076658126858962239944864732255997253705129029362891928584615788447004133681599251701067275834417688680103127830249419739485971351428101576489133617703443660718413944689173374748805330083565068876487942517743844655329391266592261040337762009874042284915538754738259749020372061425076305198093356681105151743481729392798800999671586380657655173793711735662085280924396638926549803963917829551119629637756507099122724512327710060896858724478329620659073294104276090058738287604089563641556353448368588555983112323733652958053518882244258794072632916192187660622677981470842658344860027461245031230516379004528887076663394175201897801489411405480927841165323911942272339089223733131876498581924402800131828899268595820678537816871714492221263077488990474196356594466715609211974265434304703166618759894923765587259693830290284952221595439580061509077104645238286554305342349185682761694611418862750567747716410925185103030770243388903985420278769893544839415541965764965256189415452014528508021861579990017980164932264102632080401203988251396595999072825442462458376232496191445924875107972163441210955310148871194866013867198211436790473177500612757224913525655160096638225336953000720485649180090282727879794299880827894403010369796906740056151719023630503051790376326219794144609577241549242398830497300122128281089164724998000787021442694421842076442408558700712300178668504445833950376122962608415778839174183699474251588463624526778523017576042348034536189770259941617471487294757602558105539447031875290915439328774750999467833003169999562056265340955846590490744012253399312985591862151308343782400147182857722714527026809795445525662400463352590244888974263870032218396945959213371669429507915074225358664947876620977131864989145882588140074921534417692780043774393818735267535847104176221920992452273774201901708868918795438791730244598368531068276528520701005690251554475839382605975898652530964060643541794019792200499332034092505724229860669164505295294728291585763551277231165959467791022217471382277773490474327367878667738109208860139690474303935103750459277651836672394610647626263040012519308354527770570048116356025356290843680043042876716771471773887897176688367916385293017489783977842551218911087577762387817183677342289774445027910907654989354464427620172166243713759275647643040704574528247107295345458610838770165167704414769974483272875957576587853190322434261244531835023075960309585113495917437755993514188435996643285042063013892416605325693539815093466877560570713586885516102068697136453380177519223681063508054162248375215865362066756484163138562361291219952774010772929127666425845983780288150982036778092151402035415729768587620528972270580259751681440794064666320014040987836884929004788227247076904027039147570533766537579627778644329076699897898304627995961895144779007432023802587780219532451262394588588117124884710004116089100940678265137982446462749092898823830908752709471260729341816909144617122404445328205294147787747208845218339927056228486575073072608486950336253315988570113492515182387927331731189162964052672129907859478506829716975572096608254743492540776611540483852986254660959755263562278215676815282435903616924981470096850636899095894678206363234912547931983756413781196557704694884966111645532737042603934810733187419315897880905358959361557390214401521596865805072349850104324795679760270442745875571932562551141949468314161113765810313933312604179335568380546969119661421193051577104892846242237953801519496879339703544921808447382036869027099176645248270446994842869091085743712747197721340617955377719826252630813553382818921331704487716501467024242370754574199594403627981283118571303568147846748574242440822034867738514888874891420849248975132236782732861531784738120390980595817329084090486151088647465635320071233745856845155481401525509938374268192476493130543397695585295017368847096599570527043842175889044228350977209801329313141475400991867667658760348613897401221389169433688172368577209357172352558576195778107467895520308436094802308971363146412310276020088428227653112100979244807527586680495520469515460630113441151379024375841821584579836909368249491545405464354535706868491566980847954946613408629821168102741459476974400563777814677521438033973688949160309002632254336506799170235955963458000357148008913342849828047146490382243951973679181249723478345706894742009481338276716560440371072954526871594697257671091200027350361956045263731957874300286024876659356802789258406148002374464516718692969369315921421918520471177400981178323072497188266685893841160302103234872068944879877441667110740302070716615780838333967672207235342805629740832746207211319894535221822845928644582521503784337669060755228013300231790765051467394611399683311431267125748926976684684659913852761422057007724823253626340443068350569526345350558154121127006872023442280775227590062845004590201635696362319059235652888906772463666596851097515504865361134709114523225399196152345139325263367455804062955555886185721653410228007468181327201466683567894689094804456965650994842187712004316480774195619741876873475367633281273744134209851824341354498559416570979209135154055885065207862615447008963753992302612062900261865325939776110938940897576762950695479487125404931945384731229025545662186379657407706506410075867367223944613345653395514658106675950541909569725880309320509733357144518695372833332017625161369707094002799353573235158964323329723173354578218503575854383093837934926920810460489387164859891939943544163127016587722525690407856849928705100901328560047597463814088081519691463192861617520000787859806080828508558376928547120039787441331971393348615193667294628615072397152678392637964085155976948126999481801974461782948377437721886070780089636203875650169239876059473800241901097058962040674743705330643645496210017203850080573741065864759440855701850962427849932650678099218209814917154517854004058081069637844330528891666144182354871616428520929168055120783516662787960347663407167468158988508234771580872914012349485944297720899142146832871313217309063891647247002597651300306187111654019419844731173290976074869868823105314371844566286320065902289177145644838065555187567417249289309788596137179239015025228244743667535579379566575754883822899616698038831824972998183254815717258602043325219383424067261918145893252632277466007507529618014667891286870498702039608320731584250194637512050808244643560867169749809184013654251108000994410132036663844743965766308318370666961810963304284233143201165995111474686606862410158557306023116453132983421230086965993886080081352615757700648969258811995023146624689297071546614289133618408771570269930090973497175456163025177648955284242930760668135287812020556497227944905857994354314577320839629634663437885374207745039361430475964203928452003691931236573707103831540924126238612892276506501010009568620018394277755759736147897143191110186729999297497766920907691805070412938238524089509245542266644971206453185703587843632426310169538025252677653685793583610181593021145991144069383955956931827391383512033988175734825841391377296782321840827105965709378312997727553567672292663638534058693852082641307239332453615426194925675224638818194507202977974808458320083854982299663330054840727108908233725057788346202260533311809056404444533678724594779695785851108761861488213295902748246852529772194192037666000000089923799258373696234365494154658885035054856609329734426592766117449620405505222492881737887449151776784815004432345310752249129175749356490379729866132817059471140353850053699029219322629332671146253849621590551924066345223668553583201822191568747314283412517919929096180040467218561020264053986092830443042533555211223669766241381369453179097584273292398766370645784398121502910802077769520626959892679913580934631043716225699707477342576626907871908784001572305246462225286337687627822916714000579992427678474338951430476474217324672899009237365013094972338513491148104706457215868676707348670587843119919600797073734074512370055184365829967201550832657852101442649775156891607131225109003524057724443776600481884212632925148135175434900391329601765334962205066698846670848352444483604522302182052407302060313168386459029598296270935106473606115018951473674679983882612585857145353454485355753212737183501877113355633740151992961440377076056631839646408873888240895187518379736465869798689434436847159787365991960067590362636121927044628759432055510789046342304472132350558453396391801162771729736352544780454336230326373602720201008414120750534660861568557990132669433497898252794502498278423356857000823034476611295948410890039239472030655416103415677308312908291095841357599052849573179392914201063721571002541860572307223059416978582121692949079067089048146157692232131795333354054421072153084200837792928347447856092301441341578981817324083972554841136893173388952695590684696351581899343042708482740825248557102475983162893225359572321728102314381658142201714321757679911759700729459762023253418749997632734933896485056844923077056534290948054690780546591408320337179196063700995256922676618075261938829268393951627111970961069693178111121852059148707475536195688903585766401839157978759483861693769084982609554282994869836357575293358180415512968572024686965073383475070074576301715023644642897754958265626449548731640718002784351600790042345805892321836937034437748274318715432523985678037281466418142509975989974719610900453591820975091420039644802626840833640389812599185647250639729158133772127085817769915356932522359938233427546418161625611968196365751324128413345300961115733877307278921490185338276365553184838276401056030591910908110558537162994038349559975403138109884923761040315586588773211912072047669728655727846031417336435465184138176033924889696667688823414524007567121665172921284251200217027383339131163425594269371448701962262731151027161330250346144658752330524811583451643417901756573641979286597598263579884107802220345559475129242203169238349834368828715092835918859700619479931263629079634618999272456684385773184504077125425173187702811343131515109125300576600712246601945677042040336160723129684231157508755907912442873417134140013589423347044515568265157242377224353581585142002191634648241122500137939734068727727133629852609305446600715578069625440236307211362546269475782037234782294033719193578009804572215983641477887767197160080809719243718325878195802387125132587330799065538416224207886345155127433307380089384603096230693509579685492271291004265656165794698514701491468695260978942942634059592521885974244564574465078189009633202092264498731286956189177830446617715785383739717055023827767867502524465173842464360948400982818023398177409705613569513015203970461063763390774614894153315508164921333950173567098184290508941263364187747829697395671147240596518538852263497472128064909005178830421861596534539574894451343438366067423629444017047914341474814932200850326212112098218297268552389275685061580954082207518583597363111598699295939588998203153350227539726431001023684909953955376600379097701403748195652213632556281667093301163663198261322326246697169581977599036415854249419066353593678488257667438385423342131518475874027160717483514594444669592432669738594595957444278319569217479871737306415942917899232459737801635616575280945927247488000351771409936601536297611306177718140831823064636533704423847605402921542227693735974915807834989446928898504976230964552183106778772646176618816441037791232687950432111184972984539498589221839450247607926318928439988197748095983204416716707805901312521774281985494306768555646416430609083550333287616588705015346075053464545619042197259339869633360765226171470450572245226087274722082200724196527129867112337997152602486365752507761856059670985448918176352755576618838342961056876851861259591242509062418190454995335663579974615185493343954813951715624514612791651190092665991531548808935221814177997460610203911821091671016237313537100407810952874185932754073812681883225519804537955077480498163357200589995089628236442258911468606546759796491039148947222652698247785532906946508814011136375640355051263515735773781585264839532901295858782379763429143926455116161286340811444631979434441088475158327960082151483680106944180633841048539954952643050432925684809839309055873621964704568554969691853304994924633040933109277488015416830899376371838014318831714069402720025080539103242451991879057140607496209907541773405054726413418621304369710020231473386798004488725978069852382851527987363902885989956811016805878364610020000145503527575275216882644679171069991506494628041944937228503658633459771696642034476527361689758146943349602306909501460239641485545230545149121462769650914830226296200597250089991225313627731996401963872738028466536097888095556864197227417267003845213886049979753715088246247673553767629201355060086541059257973464434158072146095540923779036013737046523671348378600773600666607117465305160646065509409277683319933340062005887943854280574727626365009243140791357915500631900297577854121768335838051416891059856478416780881973581412533881040846757692629063942610502816237372415354120881738066011845645906619867315734637076736673220619179513794188064878257444777334971563881179670101864264596515843235791319298563842327699276712318061026327057658388522995470059199243804450980226689476566894342965974290052372860986761422411238825068937934648429266317982598460884253667442451872299074406911624317559667824669589402628128167977764179995972223743408381288376959106380838943387068990796491350455226292140677352355796925538773279407886096137609332815474677561583188651001333066867776449432904395514296455203012801880674054875744234955448527083912282451812389459487529336578201956153410853317613028296340262189982759797760578746525497547256434484256820774403111267776976240059146410852565687346484597927407363760932275772689070131683625262436685705702575272338208138390148970319236906380870849795630891186843477623701055611290052581876830371483545283447436781383234041650616666272045081157530805295545294634624894496588884855411102126942149231234121242158346907112123574138263440300826748751327866721573642966746446153755312540234812073623965146676868130900968189496785952544264244416107790879426029730501251259564016526723406858289135554959512284899470259696634020835455690897289447065797913095643193546036963770931113125444161948714667042473718153300296914896769931200043607991829195585522095942627186397280121739757035915832230936335347752787214886359960875387870570111417661690085759799277104654014119165795358247275488498968396488642410082642618660685478887673647101082183656208000032188823911938417078695151438022401192030336576784430551956128584438187995744309680380074811727353966822705867286679112418399958344134333207936218285952308212421542869740161336148165262345764838209846366836979068518320502282128622671696237222416945542020858440394129312660814211009595193724086475388958713083815480932128269757876924108720316461864905633385705628259965670835463124366600579273822411589287314329235012570078498498775594859229360653403291199259383805595852238693416044250834473516120815015902512944488740873231661358122118081363214352814957120213393560441255962518810738843534088947252337392649088575067473752311997702533594832400773614749428343741077292381618952073811773740396156787611711185208791254184393712200037569162196531684981103659528576135010470035418287747140796076237751976779682264132332745556467316714720532437645104540530490761679498122951725316075048212631833982935802877508580344491198739789289440709144331711774094975323730222088661615105626953452444891565820370536836038955658942043528417634018130110897967188148914837164118093891549284535580520859503616758992329964990764058014724552917813174616331743138993359336014207139493293907318249936332700683173912491686828729766710830550040254539406595577809322315148970584158033986541023675253034409489841949628882390950237755150995676075778335983006823105790491308686918887015342542120897428529786428180027888952006656784797886717263108603499993221063238704939540856448167450540438132625569761522635677287012452119845993384150808279871515303803322548397215512580640839895393955000360311890700548725394480058015218598156770044290771840636048004153981767507738292545638562471033313505122894753179595678129106550939891610955778211169202622988281071058385378382675959782160413567787183248831158799019549688559240613044992201552928425968575478701104639680873902921744171581091429119589651655589347734354513090503119883027751743432057293831149303134723427223475215298391786848657681265901150831629697692603437160435759501119134636504652021433581253811185355360689957470565311690384702822036802795024992414979443509536901291358094499981059042410909621535346733791268994873576091426826393072386770344975849171004394475486960229934054195605358739684363648436490303784494304504167873412172274541446969847191209030675136559395881038800345003042038981930996715715208292748863740750212252246773334628495198373383889579920791899836549828194983900253136820896482183564606829833280193160202388284880038100953025596042835586778406679683316905856098745250898023699443516404539629370770277160398175659445772053122521878898700760213966905851045303118933667409007878092277504087164196439418581647416236278307159396913945539649816423385743527264895883836991058668489996369010634381395711425495480951032970709029065202961605718027009995349841759654908084475902188213304766641258813427680675856309382783180594991865257170500826646217627753773181227008031475754169713224594040213079586811775826969772030716118037778251321166800183121269855064225263954668082046914857575171425361949691217684181751685110814386326372660111892784414287303744358454159725177564493686808861377700757056167681206503005332905837407705447424701187294138360127773905936197727217292373040342876557537846708126694686457128209658386871521607102230430288696864754739588223644191172775905642833537857641912904438647894075496590205362314800981629245021130674998000230975723376742087531622180330635980265675308485029609655764624209927282785105078226523036202817023491599732156786980937229648526222544476104477239862734263448239529325150137790578419359902259209018239840958466874829938676989216003709189423152480172696615143769390782118046811603650010429229299728242374613023788825755135074729131594260774841842694589761712082898717109756912439341362576271610806696913432975044992957404147429019387458193436939866752715115421207512337978139484970718939137891189509129241146098667576278944617871433640830852096925372572046122958088189473628119892041023242975844629862523500426277867307647785725305891895406952135867527244499769937441894927108778453085556627740348485736260105607940567406189459438607998739827594545523761876473817477797864877087951475368267922961131369456987344310531081676398707910430783174007290757639838692164499758885490631060200995470208920463278926280734229059467702857301940473350137549795653252353235559403332287571566551741976186944850017907810577628121652659108000099161268668346649424946335846585069475716420076127186474971105346251630922027508460184541979479200704531579233197005888085510765504442846511973197348186429466375763158113061272200830530209732466013164042880540543771963344452332006103968249401122287363864425880555567442941380047156733649529961002845582938954114804761976316119631089529809459798072166607080938157116800086088401743114957275766681966279922380106152070451554347592282933522672150197186201816558120221979689552790246563395955376501621768508453217685902592696270509741536069784207241433275121377465409706878249471214063241176747536606883810417739254820920563634296679167441538469958444849995914743228866823055058849129628338915060161342642970516301422716444485489114922978344142186927730666419505908615326493867751204959773055576819067459183762665695004454041221283687993669844403640506548634014470808183990165661552269968509377168984919455860779394313211019675852084488491354035912562968377327143208397171878106272782383820027298370078765883305057305779247607165274851922001866031693436870535928082203248434108571944788606907159128555060633021982639775659096177660577669244627271781036401781458246535687305294077164237681909244139359821228823394095566388378126486394751489650269953154669610310388316877491189907265743933062763205140525672493875090635393505537541078493618445932094802250671895125743031679977733850703778446925630944836195689932581460574913905936114476573313312687667259297633385889626628824874206213783106519915174025854335101167233642125206646614673399764174389957941155683989393158720147098776438492867536051264293704283565528667788584791339542279367758163407529180814445243123056403246644307667812013457970408032364203903516908577800284052287688351578239945462419431104931429147379451843249374816071027847028632336893641848823019775990813707769355041817787005355794907643543015929708245786613044096974513410265549547276331394669413997348775066934545977538906640756876573101859100168570421423299928883429489283527858757963919559357421590918096304065173777172891152050104262474371459175996705924095460360848814259699905499141261327401247086728850597205329696402238068266864693022992687518490134317327030947999709445050998981593307674892592153303123089909786876577394115163894704793853568907068879732580449961756230965333884923431187512456259863818045164426606770177788564507260027785193896427729575255633250840315373066184838809451302083503537961257239010243804112595291619268237578173353901539646050379987784055840955132404378102169791218366993842767521043826860766304627814160000275224014191418651767623668101232950160850731118334506985144695841181327509649188821807542133209308690593807701717005031305778954377691786708092755117727221304995908161750771398226534452037578764781681617084818922968278895615421891500643592963871708726698986374024001879613430205711123126431016888688407017126496678712039962631068368646651547213717580554364937023329935232100116872024210019602841814445910017905280159799541040985694243670628850595901601546472371886169132724686657504257280178181467306578124807714438064394564241602010457266096027034054176928424816728672700432086639944245585723755070376515750459545463424612317072981627291296736760690771758907839250596094777483222435301011073303976998359492902062893768276636949174089976407443991474989682217109781898583695529345614382450892864714426071369992397025919462952414673639041353245162005819432698400174718962433426732925649378353867636375143784017191353372899748314207691255853241809042453456184591660112981838168241550306293551412571397811170563072904918907576443876900566966535598112490604338351812983402932012081663437747628350224328498305347333507716138909958103605473724331472331265952221161533208522197224544162087619184990147513719264568196922206872289623375840575671545210705787975589713701540915285539272728406709622673220226361942897965664263274883093799043472049793868099248786080743611862724642573005906896554883596560001134940866307094666044611781124917370411093167189257711528277063060114375335917352346460032756580081231168795283566628244693809761014703183199825480735940452449251331977209813134967675152259022785169363872687095934932264387737505841565313184848028619571115319828637187538683755672283893592231939272369070872057817096234682983561524827227119165585207365648563461153532974837791938661983670659537457437930900448727549273635166843012328169587910335594234100902275283692252390812542977140435144862396348389941670597142665717044250977875401538534439845550000550863421368653894460035414889241953684167844283619795284047686874370818685798621249201377053879344704683557044173573019640300517396775811666749761370168459622496397622826525303591331976286693706251247999542693458754196467358757717995559767248489729716962451047105400986862787459805066958329607409373777971715588727541807520620309153943066431048290114720916810831241238910264594550138552472078394278618972315568559247047653051536332902266050031798361288280431421183615672683451434486614450866755139547451592340901531411975504572043827809909077097318983448957723274179833326973546635855823957428272792069485197188220819501778270157118198201882001964664086632096091544055138957601600401538289270655540925421198400401149530112167177593298636811383331177749866627698589046440505903405624716806328795358320612845151725763763610481326781100909993658110566659329345065836964853897223680950361193698588367966374399548763569061919713088491129362466343406464855379755032099997522845196092957004841207635942333401976700765045334383861884378501246379106604619616256393751504808836202521269900181264813490374955809774767786907831807405125977110725443656940321034341882791584489795947715964223029231694060587387772816047922081266334692396969052916642461138128423839634791583095741302792760691062720295895819052480871882845473492293312488858283922970269297473470909926259878457051455353556885033131985870259367072666845869558590861891642534706288588064354265894879584881002524655187180276886351769058518230113746012497892053186304097322354262632531012774082726167758393846242195273303652639969326797855493923141605291590611694782093651274731183444802399465204444048581032204531897806738150688952778200879283813830865348550945280384029251069719692342642886622872665156192795826867784422372123522531971088252291409400553295721894237853521822461422663043915115910759202124076995055951215595059970897200922177046863532682283390414483678843510855193330242956767310489804572911862332217512288590324609838539243689953945601640563692651504914000173622341797249998822214332180969123832811459257724771035766087129774355300559586325549027995387234185290615945187451441070171055498242282106559951812691734350121942161294226268913968940966214143984183618303264358360621275357704230435406896876024242670056152267054478004268689126777867672213072740007158028321254044432653265668265130357150094948318235946618742885353028543625878524328600237424298378599951122727296268447571170037188534951442108059430941301992330504244179274753786026174859770688677006792348457890501454711481840116758555042214125660842286149214569518175837887551598136308978928165883991813629165246519840669380411295779005422153406563021091541999835496909604662777346826371554055815988328712279860722521500253835290128113877886040864109271047848916355146796199323676873318123560363148673146614720585451041645448799268797454509598447272980165571758199106837724029516177400820439720019166433549062294681017425277817571433635990174405647625820934581771989224641094781242984526692234211583164044536509301754307434416986961643031570563432379507237227618861193755613487046475784634975642775201580550150077157057745817791156897179403415328132507932462929664775054573569167053563170671293826845081646500035822102417186960696280958475361384059528750531156837171511132351173919434790626702214803879987396246490156314016009746395306620356392753728376040476683305024251946877340202336639786619410118825935821748778697671295253093103573023907993645048783578109228399475415609212719009058994383528347391593916741284094756320481972352439671851501029265844091577243466113791390999685614555346757076470251591546224626538175115278418703114930109662927634082832814449405706441294529306493466227193137748993300699974544977379313600669198857654108118617941017530934727221126035009310596470385174915916396167297704801058771323021812002019395036550776112187438170631679072263088629382012746811228448210435658775732881396816015835779986475913276095477951957327245005057421542642755554713478310529073491641846001076423300238314723243019833454166989796174714514466738325241306007696050158673431486384817763117193402749818648043513119458975327204521768059090125711357956727114992606995755476157129426989725563934054581964872314667157575151758647112595340002395431595158464793935598973365666354803356020696542866019574067246303250240739687081308080996727151435019906120176790296218581242595670210708131885263787842957480226416144984040428628466613867508857955341521357281395832762924335327529979652332149521353890149327343131259143687555106510917684126759191127727875572609338799429521573345003136648006239430097992818284112175408367250316190562004477639627858303366157866430101919415109562800573342940400274550034069038529117331609523948857594975924274375895701138645275956207096889277813389395385769743986043177387006847151024554885756635398506901424844427963694498597003373873389851266135689375793797462522532380394606165752565699305092701893609526054771185929379651160787237085607938120560145002890129951217604889495737965444545165251992792102464950495871344592378282065862358728001975579949440448608096048861511985554435993554901802871424022845057590522349049980457203257071598272910000380876930208740117327366114778298796403228749808569323599732412943538208790857026564707810984019894963048341966540007284389105380852252458698319728864652140816382222713897174754203551702903655013828053539489043426970034508699739833118173685140565112813264815588009712177767039066785121319230460071354709693226868899484630699057656407228395103949830206827168251770655471732293882654131265456921944028898946484360020237716103906908380885080904742966946472122861116140057687535930057952251903702572300428776401405924611581121134050516903147306330574192407777317968940381778515934640240462684599098985351682899621716427696190844049663991150156021492996052899875973076635293165301547098145806915457364062212604659027694360159458599972852545924608948980559526543687734204391940814749737847526177356156640055984193403281068614862662953230687166700778149677952911622184381742975398342957770392398505500815064453782575425066531766688397269578458977133116151340868506256234975466458633651625642224330410099983697726545244589011611771766306472331951903979629959391145021830322272108629382406527112342899872283985819402336021215966317068646872192941891196654211075821926631821309447610956598784351495168850085600119955144915096859258203327685899522109816123585291923519643782947294834645234572285041028609980701552977912871956928718683272338196662202191728341255337144553409601686826468104406854261024113006124188054268862268280148892963994375001102988010401416919315698717893485786424376270318873919175242171513487040095019042163460978452686450284795361661876564089055932932087769146118789926131238317499761120434510756575871589705071004861680708971251712268604881064652728863399231617363367615356633605017579837237228866710570549514744895097412080246330833952746111813399678010983271046945503380793182552847872515810991321982538974569524389211950833254705330321502488855603146957807917061013633819110843317187726293561265475736892733405100264289598144881339090025482578855099852253298949261613394897314860733358329623543437268336060412271401370139797176584196441682372170796220055759618270210186371505941992962743021800089533450160256175557809283859968243659383007593862383018860944242686011266758133659011637220647841412730692360285363817160387522253252301280912252289267775765182835405394349257924254602963538421649732117218365937455848106689169120693029018089312591485917167271273112320920060335579190152430722658223209885917571293411932330696020384490038651551766516866787410874658483731993547325001993202081790399039947126505287915415735738712740027179730360466796455317247395892029231042549401178931792231411222215491662702837422684607002872045327807544670485099492191202463654583153722227562619138836712154276468201388090072154485113051527328291932863422469100970006699726277788370517431803390939378874193523730780788453133682255291196090420507647844440430433849153814335405825139803431575539788928224663174971474757157381457654903955322324776405245938153672806963603594059056127888752785619585647883212180593460503202131735502720539012531752749958894786019570174898448761928498549135609277440660942450560546650768254909816835697767618149607818421821059205270070401698340449779365096288890908231887556074902099470784470671447330746485677531462291460804863127783215862072093890616543043363302727714232349645318155820945970051832788122683663609796168895011409672562670919571496102033065727104899514814878990463285209098925192895001263012696561814080123189509489705651640794646344618714691128182046413744991739695578314606839164592681603743343353729156169579942389258301188194516097307180020683388020932156871631073476650166767182992563331695420383693398737546473591489836234960962232568139829261917802611145400077757405239557287503832351434185125575626853164274759464911688215824030765449501623306069662258961232670713466117169654351245886870194430201019878002518452478538161724822012891549183099673711963772387171030117951856753331873387316525213186451728115726308538099629920386316752740081614042317665360308542493786845581170537927870233684000202376928021645516931749571642903656639449788814739539999521796862817184717436102847629008805198236832598564073021122861932914693018422444298262012013326594823601435205875979767415564999560079490216055507341115078426371893334970058729486919318920081364186751543266993731747751719489944577872367711590376339165577525101444646577497707897630703990858563119607671938262502195091351251520241754884308262747383404885811180719069399758263013812874133844478856833670811897952613689502792065910664405560273575474477326246067207962831186712046876518480526616900167607457242497700907829762710356850756043146822639651778701870626501587555967054291045670776033359569999542374202824209124750354256825438991345098700128610833783861264897999072461094327405724134885611237077382904294939758100194299418681465202458669403466660004619965371473963031507897621823768193607042028010028242558391434707838657467882953122306215479360394401593102566461550109469201151299226940840491280737856109663136218939844820793330568556626676284201033287457619947643488439741700498115238351782230079423673950754066852376305846761200611920561898079328191762183579003211276397584838037329865141573238321127976861162233016233103842490568721835309528184029601722783926381225664625872472574688786769959622296494240167254645327849026680723822119167883202981524625355775194334698072211159234862303482844050164425433208235277339945492720883582387518512972843718133444700500857375650934623408201414636832835004283528311774323887548044658500288190948734610883363462551066764298858831077058707889822724665367947542107970078907316319020267064827604589146808769079919016051326320721966852308738076745881512959914048518598093724487820065518754005231961290222875931547554547776407359721338098647492102322705551515086249417430331787512648054885105934772106227949474623345612903759932488526443293046905118799548817046472843835026079717418692477505624633708953398926054970349747212855618679738150171890569809234706648267993211181469587905772657471924047108131791474440523505585696316486738761798111261124103541554821437542431236000224377717272298372364748287786022974126747378869738475112677796156232290772772183682706188072408142557573850657060823611155975702837167673439300681341598710106948996652562624721962824647673547692027285957343373392984797885487193249219401209817127911494501023251621020533263187092054901687628054814079698655042404058559092876565144092406579899263663024318844194401914168995796516431411149083548173430867096568510993556056420387008524113267446278491355842776141861361129436729301194791060585835423496874898244892912476563290729601594325027300602224019070938405574660106005924793119632280073115903573791534509772699557741352610383824621326401519831027425613862802137840826362432573890528968223195088808115373397172344193226279223807076688806148689628347560452954540918947129743964896111496508159144747157044339968760676597909769878621676749166950479127071180349417199283607504155591497738825496870200470768588298339565806969150153905855507653638374851837170682453109370095214466438526201729527274200741916811008484689149611635466268736077442049776771788530142834460254621687591019695093343802372128288063736694812707508054668419505174890452555095172448532575876099670752798229998018222226100858938085870493336548815148274457641251716939950960826344901574694353726879386976881023871636195482404097572153400720506276683672006050766177504076555168009274054496059436713118458300389195043498891359801767634906910968339053749518322171109365799550235292302331957571873777680587247925363605650510996940240769075048488890177229997010072283794831926210995330794471387706752595377052588942663974538984380300700042415204492074579441289194467284106978353603593422867194760861012619292773340890238226289006537732021915569414463864917018339035551494734359354413922371647119152189814801577811179383039177055190877174828981345211319143095021381689981902597197161508634880831291849262957470080108384054295055842915675958353489558697106473075876893125167610154453888163320101635998255175976156923264088746482760581041670338143849375165495813806459294857630062701556265752784371149848061669978879187869440015632495122738247604901891251414270660971468398179303976190851111263507119217310151951647625971291747652441843182458604422271026882000931380406954025293815217578268107677065220945130152623334769388976639287089365841911661858959801098062204193754154122591611077390189395172262534318533442238971239590768237192019174468463523846374229954171156361218648481762363931762227097606425843008370263694491088942347826193823881972856164760660734649519701761031076254335585909137804692700778872572553843114271720640652867323224849134047002975521768967923993426932528082032155268409657902029681486118825791996435460472826919661128155519422986055690120991964442486212828213411548171197968256752695113499027436250420898950301818198869118155726897702320638813667797795863354722757510175724638303723711316668039928577076606197763980447217304998408814505197329092643508924214614930107926661471772698371199386713246093253649143444969181963631954333622147215844858944645676913599203265667217684470816830351771891055245486356534981712421496755836775166357033845715722185371445621338772768160773184757775998000858467477948144304698270636917516985955803033610414435272583541653883827170481202798491698037383739466158149401661502004674654429448760684955860022547682855098616874771394631799302462441364959475623697765289970001304697164333905036318375585792768512768548848773309972408656524558752686179078891349235970681229053897927573972854174055229652965939142452569572472482742131185441538625782898071323418208305788150052778524498067809295622183908762526734255063777280387680836123126290234945486383434595511415049005145110935149012777710823738799241969677673355305235563767141913215395920359188866850609210936947777885348403550061828753208171995875734953324265093884532360290036637966641333201620010769513212663756450802054555170203080637685722638615182462308015720107340720793370052044277829941687099816288253835393601347539822960324951139245224944482717963581553312565831304541073217599278774573266803355906339459640991755036567188917906097569085840304227638684144834757817637882672311150483152438513990080100686929182526469278216322279260160336687200750682005072202853904471798971924989515628538654880628965872106113903140125526049001355211414871125929854913523982249396324153459780460769208395264747978166904154099104582578502391300162607546166041731051720299865745563665571045696598551123322137054712249154760245179084976875783602002950004963201100410911263865839386732243231211884440415159155654155591098879184313670025543619018939516165789695868439736932396337351347334779215977705148496509435331798880058012611571202530474390579260154558933720575206559275317303113239401276658923830399453048799098133849844182772152828335090616031535929787314650370244565893923226761182518265834663137100102543608904631260001204314993958186695615785533660346143066807370260805348891566809872239811211546553778139782721557361291425208601190530101464464999552406695046088596228975028710302311641434429366485766402271927966333679854055020279503818272467573646093028388297555633859854014336109243454268031891587916966110861076122110464987415472269272477681939804498893371951452646835799134905462806881346134000046874377992856221464978995187959869116396861927435839704245562186367703421695878889679551947916776080174637917147813104298614389402711183724950687331029836920806935274138168553984220713242910831412095096736888255952549557703516670886678833463747229828230235599460639894887069793458784436116419174490022747509628900322010390483976357190238217203547204575546000548500428170020221080415110653046657167457935114943682467074116063893607386598358156285133882024202657584066064252998465242322211423003373933826215143123870887979050704349977304719209313023854717110675299989904148258994899011130777793235458483542627935829247921312478454030927467452154570433832655123117853786042276667937121265441090759289936924529934560117079930927323993028823356074623953151509800320555712790786890901136514518457479333608828103430150280610008522727504900574738850483002127299188893680404078998046209369481618539439371383778593441673543348632268547780122654310504496787846739826197733670285326131648918984296009454150514504651438051257679697996360303330054111701471891309660954282253891597085677055556179774408997428030335678396177550791859867249976357352698367425507847821285571610828260057385971833924775459037088837075411237770727171546736228186391153677803709320345693564466804617558959524144545410807754877427068980170185374582962239622665720211219748886952867009464798226398921731559665013356218488276311640174705592674678109452555389918543075918048379000651821628659520086677825966982947031560536314194907293588244608353442577913913546445078004222273941080584205519031904542952654586586568630460084905549470192549035057070298710398996972728552092176340860241321416959911427182374919411124011356986105895861558152921177461498343359137086752629651672078876089309560793806082893709334616222442564040176879858963264408483060903017716160798181372286784321270256267956440371622865718649757038258401532920384044470617872031369240797642695946798014270556742609965134211264530337567092805929957284966767411741814435234963657219878925866157263185761235062341877637471634408497750437772361483552262194204777842204005739762942024834039922866198058234887586277126038777836108051955673707088673961258245369387192886002131474285376178735336639295480012076406959786598519094418387803437532810402717099160823073030241720960393902969294085041894155696496384942403352301800109541846392538391821556906789774111465372762169624237005766827015131401143101130711826033287091674620562501794817354646437091605640700491256247828462195324323479325270009985882598894793479067392036029757564858748208578562793216262927431250674551796018004285349226389562994363213804455968293044624362589754045144498829919380763562766079588925240004993125435223953580137327751525099053048180059425750932782054120749504987899822819252080170674337215465464613802903834481388375301568310105925344338605978895707688456366350128638894849952368695935158483233790994574256939934437766596857736579851523484736096331848966175076933735007535489990419317899816293341007778270521936127938522370162527202024891618881681386528244099374315053090701545005316172950866944595368378107111263463833979291225657827361257404694732766387346203020201268186426174524076687570967791737201629422596708640186641577240140331265667798845626686786286651204948438978001434360968032136045461222847010992676770139520164949115316218472027705814966608440340423842417470392916695958380619848240472513143048444992227246334926741494214108710804281992939563595462953742885717697025830195710543239684845861673582211598729747700139982541070778029814702886006413114006210224842052085667226815620591096600974515778231248377309088091992242604769671077511540601251408943144077525950330474775876122114620382955702274816436518098335770887979148597537717880653389536773767139272260249192664004584148851836841798510350703245163334675572964078175674992587231178222402323045116838809891754356511058675555830822776144791456225030781378532194808492037099707808100291917896056647492248465991102928562038295318624140050215070359646631613039217155946648082591443319195257618884210426019943517104050400774634761660416576985809555879465716254173037367237192893074553497519838845659827587046207837613115620353636770659345650960905608357088020116019114681666396988232507792946816719004088984403510415652389336030653050032977274806250323789666547425528647128248949695723666619873823453793807803195202234149431531200093730422327762557842530329485578304604459913650258004076621548015696770281334316659233870191195917795236984532722866071252338226139458731098532053061232812919804396888990433255589793237066199538306990136552263203988807812808466192068481535071342895695743597033507235618509275544797210013483223577516164997089639009387513970776170669324333488514947003558570274693706880376671222909647201226786143763506672141137038444555161626926012513845711636216121516773362444205956908592779180633615060857766813134081911579793432246118062677252459253663199269555511219260888809295290458248253028198540162774563459629635528294323942515759282771264018819022766174227463025656869688525690431399641373023047250164204158720169658621546108140331862225194677279529832342482747824261034720129210505039487931404878438843274631033513572724384917912432192712543556731436251611916100822782395833243901833864805400645576176274603236106654869284374942675188265974782886178297597568149511082752604137934539348256411973929354335550427217784815591865166785552731824269364068374087417537910941116890206609424102699456545841188554116426133133391688665464874165557756345250942488453660887391357199742403736907222970182650596541722314407252812766701554242791016158975380738080985247476322392398724738907522310511171944705170165847896829316965923640378586562503763888826605571927107113719271529203935838711611287623689094012308375280314085148586272660273215977507272601325480417023432594538920558780512242886231425714274045123054517907529699818205902090987146159476207639850138238184434395835484998981380304509146127176328647935996874007894375182865916537458722751367829557605131804933899344431171711263511040384554469052745613087630584648527631862965371809842435070473201405539562640864727155569996529160592729440971431979784092064126848586390482699527150814800775036277110427297963605992088809414556233964041940576151390600291908980879442706926527056018619603810972752578787136582654966938630547032706190923647315204809962213148002209976453771261579187365476048079617074375500453115675758741028885920585719845992414071027142540381417238849991234870408320871156177380373262998598289052880123458621446304260209780345211518510425622659528218282658148525912081002097902592721669445975707383179213482221613227446820941965866638442829537445165184894466405396060426363685631661438250872700184003992750424689664268873384103481061738533343387843763144636398415158447581515114682616861591725972430550199551796743968857071603137050074491208377051309951946019412802525334389132084149109613240649028522788513429224620623039923391039077246950387129362619033407367432859668272002326548345337785822294978895295453886489353252749482892248038274327508352394273110932604767387738955374788597637885367753773976578922037531571234870716885623197005435703786535295057685287642098824744138526818267709159442525364197396284662155211535004918251454880113727618725210790876331631782382209918629741882162246649789527215778972946290703396888605732404767776644802934628992948591759722626614348718052464063707993327355908386814868195681513143384885447475036858699490226106185117210011479381650421531525885178076575813993690732194005959597280174571785543426772270556884829237421947916739711107820450981752964468052826424067166523791942906396035735792710398734699502732967420890766878727272871821514634643219669864252922450812150355500352029683456967517187240590523931607472277548566214861524465948765395775468985000178345620879423620082333094516955861778119567334522685390537793464507011415872702445546064224668632448181626810544255714157429695372679751709216999850731953509474106597409316114033099588248222196201049220938299064776466874127770315902401430611852538194141740400448718482793072177641188636193562572051892363507608971075723545802382561404142256493475203594696191921563266431001537035389201533529064916285800286648448840926992670683869079670167786462847454076311648932052455346072144271306863023913037091156533986297897109286463475512146649884216715647019226678894321958827967837550519767567369807590742623398087788399077514852496696396789389003218087860560516455917247706897808918715941019634558770545386298678824595090358292072636818582702804675465425057657489530283356681851534613642327528486726015603121906153489949766002168438090858212446981022383266438334782071639321242469479950256534160525525309213460546727578876405193674206119000010741406433743980162011875654314912918623908911303975103027585850753104412787661986920373807460549234274492913866303805793567646624458710159921166906428264293522858050978508180961735115508777527571683005984751985616221950099903002992695616941771909818412861418226710821418601824586985277345258921145628872474371413125649840180614461471914830021346860799840367857522806491150554302902978576153788105227462612784780817461330491835100692237977641497229018143804410647586753523176324411953936759875765060164006457758177057626615719997837494171771294582144818575258599284136303743879155434918963760839981320356926867267393556857983167495781427554539908306031276340295564442580184371566560208010537292990942054832976806836145818635224029865320041778781331797575155617418552691057179678729927973947359874752980622706864710734696126935289106972498238198019680321730414685231146750805738799503972536666876433867188080926283223910986618773812889944921740233961616197801079313646909295138826644896940447853050463319683596106300898298700954117030938184502588869547700018253839443589227132636835260715968949686454865672202929809380407688507870220590661784110937272239821204188024303715871929944478834041071868238338933959918746227877125638413816378243730681974192368586401530077180043964036011109347491291754057909743623968147709334973788048229501107515533251758145855527726369877204799954818550234843812700411722475829326108129094636467327285773410706000478583038988492913870346586328436768269470949380493803173508120840077672259326135229821257889762884652286548146544640871610652805066452325231263586559279963690589624421853154582502386314063832939262673136340048000508986997007326838236869114967403535127215458093226528555707404153739015968415172902053197414911840308097933169762600055678550598658287750925172420406045399781759921771131422902776699771452043723358222032717785878763484372294946057612162507641234472103442758040662241290245063743666810756015764869974594207096002947130196272801684920663934639031211168421883863382219077176254720370179689694702944227510892051337072480329270654137762687307319419167284560105582693587451068260601085861652231880847089314798623829954495503533797666321404120532599141990688699768685993834813502658442395058233047576207855474082456036753480406948134300073820583086995107906234294202548751545549060495493096457193691156334406857848848567036693884305786614738986844200975116808134255745867312499209507108960613411629561868158622684631111763300072992595025129280411525869986473894193639889709658419234196090005007687411230014613793439351097425525196875415755815335842740889255248240921919551877974539768703243558183145263444772707228721154148515527241909202256848930897073771227208169969554252039812358786417132630054782574087937835791738820768568753735639611462755290153268500614460943562674191190186278656898077246005025287187910816257101400878624480106964651986892325540766843950462134665496052962001092244799499646055899262363056293338145190421418208858381375822109203293440310836084438395594950621520494149725050161342599649480549715860356358794175903455976188083358252146005421962067242232697325557228944593319901115566492422692359195011106546590201931757339041515638570348064566593908343214710623658885277347294774388791731641240872692087569144371024911989046399613256221220103349932993433545513614029200605424671102201739857375049063335327998995202798549493974655866073210792568253342719814381948014099515632045675967273009031219403411376734817906393893737743430089993960783685336633693715705978609063737822603278235664093736304117030135763823877372433859724273067858628528497930691778732723975030605844495257223439468916163110423594617422504595535955493204286344892920456296137823167857251382056736124070733037814412543798302773004073550399091472497612295980642844740750982818702922935882549511469092527668605483889610005076075109995859489059185889177383562899527807412304593545813797796257085438001572688817951057590258839122969858295333579586182734766568312089218934817595961238726204834883200619177425414232649591841409829082301627367463099931061153220916662932495760363330969428708866349059545349026926329405020765943486952679207411840640017483228077667045210378456185688091122567824264791114845683004544836770336087595650485150444652372805684324596892470499612825811896172577987513429583651048313930163939794841775959494958619414450798829137573376954399547591956249908884458971952637953002765653575032852589894913747923151740804106132688440481519089123938918603107346833881126007625612698476147444800018671696950514342910981574401723002607417632101466438375402467466455879884014906924063034010335204794054267436116398099955634429946653405765954703793663860168581446751075972328851471464318434545242132152338988548853030059942572679270130196834975583409851689098877608431846681382430719350301547259563827480073705091101897368363749376156236059592186839277511792779052681640801038348947010250625961321124853005698579472528672396124516973511030927813935326356033989336317119365312632238900081616116297584362006100040399504670248176759068289109142342787364662910028119282003647709272467464164685963445521597413203618649257989419269187153375802576774338713421548848463193969755556834361000187726213086666422398671809638329545020467240856223405344950917530313557860516868220148017798744713933384898718962893855356786180121787198141767720722450830874957060654765841147456108176253996447648546118107815654610058928960665720018776029983744325529808934231395879244351819117776305371109201716464067155352791888166559955549323320246167223215839497520768412880731177387859829380547062154602025291938690475733263567956272368076430462750919612258665893873827615962781441240290973314582749108326385676999796685014623356019761973538765261055386585856770469077620001447224324623147396578047786783266059456390696249289768265381198031119896606190920112949747384825191693772619237579075597923274596523601671394439295276899902455047040480423138579593824412363758672867826187050972428050729874451431027724909704144627323300246601531679785584091413598533516069799823253417497828500095972734672991503511408916819561776925886285941670686721660425451084314305191901599371194897583446833017023429982184380100034568233533270359014905578148189072497183369314096111399115869368071680517038759533336078833991659125051629877589526319173725454200086418971405034614471004424077754281723291082539424577312469204926120737987700325185838715034589704777727983852090496454324976772799985974714293857755498763486369962518533746205885577464707708329501054122993115519122968084214118461276909110180640055379693414254834491003980874563637201218814702593259306589669181534012991246598426766212798037138226066298460776376736453506400201085515919826450160210142885171955192776333690097055118233326995198342031950406709768201989802348461132422774593270229731242264631815853777081108362413165611025851750557495436914491692035497343688741634714851827362705478280196449220805259800024218425618383054667740504840409070713491753443517035017901285761178681208185183374354694976151964427523873829436814096831212662483578826123503079865809468489235159731212793885953838005909274155222713009249523673465072914098319605961067657109874142272585330600894478291779004048786156098030090458358448593038965947116967389757122979859229934024446364176693242261625221763546459298995913377123621391909003453734521347085817230447907868987297541850355626300205004361281581931183595838429614226790222649219340928273476361436749070518008960945449707267161232634100884447849050155122980617969271406862684758984454529347810621712899394037315058136574639314849900077911542807993602202357542965835742228017294993334078115722536508076986206632424937832133683837520907610408981211744166990895941219276798594742716217117691056414734924785392134398712220154549740089795695804550269790507906882533791086682100344500716208923965078834437700167600240814269008560765015370258156864657430160656648609649461984301159533291970873298418917331531352642079949398598391665869373811056025718975133040387332328016419459141466931915910614903405429759539260400560883929530048286003409460746582495008619138271870494817985661183426307098443061383605370836168756869584064307477360906456820474316544360284057651989783500481222049014087817153533515403450444864763719940906389908041232645152355872284919777559282612391969081796380393086567712650593008404622382197482102838800653368534450212278468123150078196757151192403294672212003392486647345892122920530227587423997634201440222295361120988118596246992170243265069958038327002895353109056584889963475138252900343217433452556797970433257608639172676942491604045592134510003370271812949775352871169653608985802267495241559815229316088655814755363442055350056628832785470574352234707677708859416640534802134959582348898583053312302180468180387201749339588306867048129997743947923575877208324982938227947879478327559301675527449299812630498146854729405596745367327830585858330916142177033322928601738268233936844996941634084258845360804614104345121303801608663428984049272912231504662864623634974345820331258859120734934097238316722748547608942353983366323471822051123754583753189758392744134650789042056370654492505559757397157783490488390006081254143848520199255421887544769151307439150075542598498045897851569927399632137713924965228993147121819810999430235800780321097987088341355247744850922548302547649314981846676069508211525102291277829294663114045538021864452167305047179481552784099405679832752725307645751339202636887925211488296713149301389411874269546515967687269010236200205601299071972260196054072344016638237498856875777184931823111849826175498300622221300993349876238875595230269469982353430632556807230983447829153136880539989656156778782197860997888181806988868766066466188302789411634857883140589610673539880273668202346771152278053387846669496371271618111938995945156670748119089823577214145104123619432932085983151200690604577241773918672825495183699524540852219234917925865992101744456909842206261668937865793968917116051393590782504478229365085753073723164793168822556987674293038924077443967137811892136511738889410897024182237573818430748371441071146699695034369994039253628677165785394747410520217695441454115523356732074032938588594322046803214083653108032592774430659727890052479525433073972921643721207471903649731432985376184356484823751201594596487643356721058061821051249320603114662004503680864387255843716344935411318010362800553291412545597863493925216514906635786723998431541468163627963956516390294457885604747349667190462735164439992558541065424869834528137395820895687701010981446042389391608065965168035372332011043572674542849415199705981032914267206251395161793048118145954123212367087851730837594611744003744488619525806402194420864439507848761281219662176917432964278814110517266978452571686403672945646206261333632263347430954660775312431000511886113247938126115137597545116979161234272223150932902707048247426581213686517457584262078932398146445182612616617477265664290159418433892716626077705313677091984099552247341665840114924083741179913087843587775541966750580069278786702787704382562321730867842968990901225013531873203335568825010696545617696418614142013092194626245264052172241881953053286159851041127509491508790742750283333529449126796657098144988639428214495201636755912827480991387717810754858924917805437291446880701357700613069835938525386943792340263781261120991447548628775381147473373325782240008393252460087266677496817272094036451329212902569448730280194492464068165490803551795292882056127139868810013409801888466977738314517494181430453422124857772778664762676243267045998053757053253014625004728196653427510945699760528181461721215641256808251670857310716443677460345337666899988786236581200368705548604535520624628458253575301543679195204943820953062816037988149749220056238522892419845749939828503075047008837623775679755156557200523871910539200284376375259045673619953741980742682714947830082066749215857273999455641781002294183446744506695838885033523281066877016448074502947507449799092775808707897313771526840944229392691681355958268546072712819843714506874366543555940379494700884029247408708165789664262464270990351014439660409486510922782109260435269966537084528466713802563449912360067395001741165827514483719143214565536995435154458694395663048047927737472542648748948995306533886467399087187351836701502837327539474488401523393945415456948075213540280855014992997981270994824546120429658666510764678678099008607793269267574865269569445452571394161754968759858046662323760665946256436120377130655693565363377224522472847879602379182587261377371503366816018933514707217480064681635371319896184481331021977978668845841719523664698016114742570560324391719482383694006979902492040019686702292594428337479991920175751227145971031385996553751262480467522778127502962175434234856821658065267718031779199036601199601360657536990763432863126226182473264703059361792587194975608756402501243378163024545629082128570224021209806559261644498646714722620759505393064278456972571570208497790712694631714375688832718117799050864154450963615434976666068407527749252822060735537376252464380202941340407227845772492992267267913218702106759007544932894202218978436363455949209677799343958395838433173214037641212265711552131295122173773338209217070900203509970372898265779562114762692281214389144300076755293009817632714258227480504804792287542463194987016068514865563901464401696689962820533776307915341601275972383628752541452403956148604918313303438872927313058011242204605405975697189556062804661575055376129781149571059072223950417178438719448668720369399122692676158756509466128922101353737290442485123084967113907300861382555712809628448037650095141514327961863497134409423609849194437752037734587640772848678520179337569651140122836338529885757560018036046631509377322798961612582596836384326354156536655994203827148325484902973664992277719413112489154213272864237595631079219624775155084601620739824375701650073034564393472611796604039467019979580962396834403060081470379801964506161163814108294196759431790851950694288235839641877691409991950427289810613281027186893902390378504570783627597148711151155905710444187181154294115259813234983400749139605702602171465646210140056863332994883928585491862728229382460637402167684014535955958032240235585147923551775220897172570047994081692001914970621475494278463789823959748430705225649910007886446537055468317959832489556038330232702719157116004083606256347345338070415847710553675151016968477881093973609512588360054559913322668925615996945230756858691584235291840353413737089335542915212509676771827741224732552231583341595393797675023409096449559330481059889743335696871153465659819635930797451829543306916989058292522981936424727523380469453986060114279288076192861799237959855294367362124646925722708360589820383726320261841587376351532784304263589704465475404400624957030637804325672286935098227946122250608597909195355555236696257888380586377782946364087013093346468601578632828868185261150047997679645399406299411073086841780621998090208672542312559433543039544974408606713626739945095433956420967114105205320429424417500900693063790288605939152444786738082588369374537031808510071828700837787596623629326410672352974331111564326307818351148940348079606788090038881018549626211009848851729316387933248353160605779243157816986666455323896082356831517086421769433155395159819265419293749552903665880725190148352294064600221831094946942085828237454035664238586872228330797695423412479130327396288672759878578545923479642208502846693423935434176098712109759368260693238626674422688319170670270825559286093037315737540693222060828986976022707576527283016593400585180921404327475278430141805393485299472809146820835290427096433644721607388048882464673720299122436921528488425758138385501728125406567654263414872960406886206431322285753422359908672663934126273380936633046687547621251471432614415876617777581960083142646592121982378573702573629595557933723648076355882216186387845222690163095249432157900826145428883528226951234474177620599289311844118669834593262740991198452694162039792996326375889957380588688408053629033189808725902285302127588850474919536734166394391428406019572510158588314032318448067945479360995493340682363519473695418360746873087555426262158889061365958051838253052613132512498681388052429352307002912614496422845119291033853601368754736422595173693893418723551900367237536282063006010079666083297230219175658053706810153932723523669254466035006657465564635133853926960254515310472987711990762046341728530651945178654686141034819046087689525020112182830542685193387312844480749772584295490073886511485793775393111212169998966190633191100664543128436101519206470138510218685691688219251913854860287506435097261800923496021840969173046942750303456200921434925892296139303635010139671438352348835234210291917804475574659775172809521757841569065026657046452233566028716356020818212637594690885237247005375115056300846570777082255081868772684704246211472541078394344560219055870024660312830770710591192045933131259283269876624966853919932734723338518392408071955314936006408815118617183781340357446105236853578442853477313969210202895294141296118374247732610396742890163464483985695070950225728715969430814882003649976808520446225378444771851512346291327464449693493649130445597600955851877856788299256877622347731057832853067606211947968592815177123918477431251939163850635349481011924643458846986650631846905170488023058687170243832930725015301950265629964605317028593111673182722218871642815942216619438815451542642341448966892565668014933304844632591908842550041998408696477604678456323976950796742624702198952676698597229702751302755521337028786004629471026464653978295780821127747940924307038860817997350224383031833135386182695668012739087187001970738262556661315836823246428926863788499007202810946230338048037413219059443977751580822313099775842209507011633270258960320036599455504366434624342193958909930507958661537887265207665776439558650002382524010002470685916911538110246521155422319917982916252365445586500651601523236299966516144196695053141162801138822366671664838499922276835484821076240362726726509570421590041807529324096282026196246936545408269920818321334496038824572927615718367526965557682380585523126994719036172899241236952147075850019523973591676280466842451328829915511753369986310085354840000801843405806522087555374480833716361285215785605490737096013448854007699359094441151825864002546435805079265034797177405414622208055711973718709514508908905769188376517438170863448120003106330112182902052677600724814342350569936220806453181729572255231564861529755931262982799635604411015917829100043997498388517960411978889033267664756259509826116698402519256614102052363428525302423230549642755410606356459991950459772632002568172401677624707617801949716129636857180085432632904039100608240298284509809909710230039273510945998489151553674585717594969276003340832637278120559060140065775884175364669972790186191771495456074385685057467471745400728204728672472980571542880668706571925892677081073980726215225836262014771799109454855945036013212905209180942132156900417607464289798301296784621633093158754240082730775744928806549737697860570156526937491315931643782467945936654557448029673669151349745399714332620803142112298607825965934339239460860206860161862413817880997805572682532480475369247943455938790539019316473665958303657860262919153761555377285017964412209883111452935302074156932416424152290934603914913260309461299515250434179359682865371434745402689024568021252479182151959099231640176515416988038690469649651615309885938266965075297653896361630060585060733949554109974563994610286115753955031239132029455562997457890939656255799002759790333150507453158597354048599684404649729260954907163062340590947608814866299081271936262981896775208031444283566127068696947821985781617194849123063932583749952784576209954499856724044332156065186033057859040297279143405822338871262024062780144898222545742321704122467432526053659816050663348217559381187931743401788607123061895808637392123939815110275098718038171821786252804694521462326364572618869931304120630176520771270070738545560989184776370814509426681846193454782448698434883548014553160094925897147831758087464338966360365890048649649087381074169008962356773173703791405740002923273387015978559960394005532188520601953462299805891432193993216810235333257850272568244842612238428288129930763689058978263008345563151505015104434527572256029661565078557275512206729531925060976462605151875669753818410636373376097533683114972366586327022736158874465466454850850532790144967283807962439227459748861179454033733584404367449879278908738612645746606992887723103347906130632080207363237827032638138244156233424749978789664038244267354127041144859461800731203622613104683570480739713478584366265749192436186989903930885533177713202165604834452510432568327296852444611903546324761990317535026217367440815184343747608919287605985865408576251407291883516617481445457528746433722315945661572082032416658347343574314811583151628261607768533754157692061958884147290148978322909991530013864016533282961726655564145106947992328828355489978047418459090369666248306012556897303221734188045115822765564080907040337220265677134111852303509694581017043273015519135793913009576403367928458015557578810295201650134942300756815202100056342552050527838609725267202686640648556243722139392060546245201534877668254062921905000378304750132588970400031750377854120026686565995291409970958734160886623324709843611764710731879569005119833499317328597144126035553056794916088500215065293842721652307787991877794807424542562744922115288540142391988271909793240415823109703540748535810864617884484093072284151583936724286452564835981723279067003934410711997053963236031726619482264193878495460669960013137825770783215008368910375128712761122742036941493795898334951548114775971164239005507794935963879534999642357734280530359152601772168708050634664604198989572889829475296357473516341569675218961454270572976846846401036831798485094823577427118690934381169192595568814169265709143097470440319501656664223770606451433806383665833283507144452519450209756031161790235844885376952275358776152446158580145206059323358949023012066305240276012805686295491095622745930434439436389759519449531362360548338168716710501655899725855356994674375938603477340115976503575687358103905039300628267981337296589580597614021465351526952707693729704478922446148385954099036632354081574483064964611601840693321852646151464720324488897297184360344862713389206299441046758057072632738060696218267252580291509179031270844456951520826535120288609479540069502431348633942404605547568222091336913711005577994104509807945857456796313864926205789462685254414053474198666797759783042990000487766923045533712622874932757115292003154849238494674350781023123143197249878977065654696500992712387186579120800285869588554600538764823229896963119130433059144592467424975926360518373948422732011962961421329787909398560752706159285791997706958105187591230597023392330037443496290652477416218530190868970189614660499032014233024591507713636082347275395787293952351082406700087819324523583537618660800512520842135935956147490298964864383298929070862282366388656080799950655706227777963365647285400259665436689044392616722279299849723867052792100746657813794286707783357239652731765811883217328508608131685325705015578041561627408210693170881518057283403890703443398041065244686892416606228561972992870338645517318670207194445963005358873809353740215345720754941261993562919631622150676108378556336079337025314440149519613675925671986274923145070863092688270450691881712041842349265020177883640350539437289311451706588851130585961466108537693268121728167571629661050035648882336795396327889780895213289845519850660925716920393884347891536875814766850636158422501187367634827438287138958777274128620381540910284712442473030394843867032836129823414555660877803773955276305955167253508935335903978307988514117306309911480048131282643368308670189807691284003610896667029710775759222465595231479763604704745242983285176473786420881259160018143463020112388869385252685778165262496938293111011296312253490171863637713465804239963660753087644218531075963185634351553162932940478796043939743260519016447544628379836959800317789702092278228098100433836564410937674354698296046724136688060668517608969120632234060620716074513034277478995489437051184232711354455599714824205282115843975651737936522389472811430828307645085454031578517844367793155766285874235521925319620841621991029595242872869954896857468089424049428284534346407258087749238788083360905037303879885856919992766157268404674750275570864242865379668941243488253694472574723810260058041684815635404102818855608843135576484053424060614035757246486654489734544066246471044417651989428583604677739773540976426556457017887556678053544919183175099788221948826988967501670326057717464358302495679431351506140005540355825042949951565991784183225103344880841517602886698595671467789752163490551503331523592014140655421764792187777748127419232056199504413516267719243795923153478532380889333058077738992688860234504785785514020260186749864657303001925641137939938550865431765124128268818633997421218916872269763843883865235948315377816613212487683886471572982378367314350078642765711064919281986912384924936027834716910437739020628245243586760923503762414376146655043598560453397191705515809610583393203399515318152279075014088313655876945645353825361237906301073432347195401660424717612422264715717035102942490746055139951408149856338626956592065251056233607122539903002069685533626798932170942206826559542609542594383487554269990513700406775683627553367611588656656498869413482520813047400613649934617429962124191860867389425402876913307744706142409622400329686276261356581899464443011989317073041483694605293318081612498609300060379960279355392968970955574286194917311943942330991371659825758512944204097899573574737245965690383920210819047066677111981328034375138686507132010571067011386580785516561155518687297902176036697593393253927056260265754485621152412340688607165767432589767096672718598118584708232405873039180617146994910517238080930458676534064131791908061493716128462035009367330225876539777707821056774610813728286646274530802733319356812032242260959751528442325919949412105543419498478800785642136284337868396145276094140449782014920928591061723637642015228149251708392900998310319685036709749437476139885168520372973890518939230894997623564312242819546939614482781781982769881264365869031159290686326726882822724182018143240614825678931944138965303840538255576430973077015549206843525656241455334633260597357414618356628171292815006559336198015769744504037481450312423899778118203903830923695855962351697615726220654978837782333791912739671478402373913267700680266151216046437033411962758857271187804875265988597274462868428669639412781065172273853562583565669354879440714878962412460772499718621860680451814723785838328241561804426985046659378348886986965085927231038644693124782438721630690320277019703374813448664878409403462625461588296782044449209733951987020857412042955663131077864663808649713676152273314264636373316651414420708166172751927964496231548051462885074169170895052025347370880783806285874132971239524690241190758588885637440197701148220292171486205350814454197312775418076163435823782366213448960421525778800843951753058531691249960979944014053817659527554669344982779443875753357801572144798783663741128165610192886878988857698218923321560597732732367526119560715905350418525412778934662036565951057298708301208663668331841212541416053182929479701648090790268548851083429008375905318207891369103853606732939933679294296600817757209307077498080239236139137409750638756250809219883304824787774335258054247957540645211358150383896728443988622097595928436250084503036810200278284518045404275208362364990179776152310696443094832657127988430078155796411862599450688487970361344040397397424535357902887973940240251812177892384650710583794305282455683386097530982875894102407927272249938417044497690020522957187033541549010929841009680041918681632209457023421348487456090233039376632519828324478013542628733069850029658217662793142197514110410293724577408230127301580580371485508090506738202953499386483950177697847170452254193495727973935980933178845747147663053595179730671300246514151201422914552190676150101260472070760654370921551858553838619492187646281021709413216194859252633699159474673818446501067457032321609369856471851549061007592092312549165844640088956369210687697289735882309904679566142009840205076492164629803246256496660735081304035720183875597066038209715826262815976676398030815382139222061963239612568456297610064176353390819698442503262858485502108921023956367353253912234403835940135129011526534899923215663791327903591371109921064842255099694252706500900503311812760035002115343477190105061229741583591770117458838980320522793921069589735189081681126029350013239106274099368346288371893174949730602023928400966002528461573272871501953791918807428549365953658598834654150851412735709678115873994043272848649964451605213255726567635945742071640168644888549754571545692291681096761106354984496265524974939651819491414143011228395521003190352691022935686443144813801822492909497076135287127932284294479703670490098949281348300232143711983473104969777913909587624059329133776462429713138895833461050913119711577984953560997762394157892045721592559870847141572808042748759050615479063587990865891111772276703592794531123864690577286202699195788678095664272542208327632469439440384529453809023393916938457347912524561761123222099389144040872929849830066875258112101338081017007934046368066647611859365696976666049889487819717486739244845372617289302528654091034571721821638977021173050509472038869627881815504338008691370039139548230602452589284049260975219491564105893537398285895423311114641073387550377305939260074233451846510778853653612504483871010453236838148391688513820756636244052522725695250251561705460160706903255269719158099321051423327231330365559553454072808907394026940165726210215318154161962631668569993416310410651536551236106160072766799856924586733938335780670514927926882058800950320934898006709482633508817131433582559342967528681194444204282558951169884731659403021155890536724719730010519008857366475130289817041460768278939442145780292316986479679845784760229983956263759809186878506114470546731328385886694179914276876272278849248953449519545987388390072402716148242340199232887062552114124525962497197186639128520354600043737427350898107789723403684889672861963724235009287604431134383326151356931505179183900023273541142968884090825391462442766463210591542104480539795255335521596018598393627505058535801172394393739856668453285621752591774639827837440365292538913649616548784671828004032819675220053548035898649066007402747263333395954319438843960259585363887329872079627645304546406181202219463439747680510811306910035403779207684655444840527816931123337928252029180012875644527041735888491914483891737929689707656217952673261783996311805447018281646983973882060137980828187054991849851876598810094283104517841598020465216695860046930419294504488918573509402944526480235624674350272623453280729482575073595759677440856532951883261550967048335082359221634777700357866514443848552308154655992559319302933358282693725267356651012088765314438637837327427213987805337444535389562305643504058644301846290806051625440421606921237276670745886557665499178659494953238005224010295666264737807698434301855467803672393613365789782845195175824590574382692077771327587260045293661001964622291062138283889764161095506394495720778184600140013783716978502855443143987425973314511861947468363745769985542964726909786163498628372723334107356067831418585890327939630018378774539184528580861960695552625248995294778044882180872717315758933343277080882372878609730150203309167907247322187540409715940543911466932848546448500242220239671032995690423102014012259812614228099323046236894503996110010330225245296262896226968899218563210832362778090780020887774504261102238588697451441587697277605430550029005995045849477473508365354539115515704508023444638309161801015055828564451611407961970018367068054717584632217782892172407945747222327133699129317002749107953113531993928970741773023856457412704282093931972179326399092990234842687896264426399233708983687292838038122499939070758070154623880930419483607287015175343998519786935404962049490368299205945851298468211469980124060264855644715895891101930238908231035101358136259317868566603965501876551942055368432859908720809694059798791102849435477062827190342466385769025759380589033114236673688059242430246146058791480203278459466861422022414265862676285733829178776609798697226397801033878012484530812612622380934505549312462782002423617752506502756035984585301397401983471759130935756788032156539854636121829885741742035010428213157429899569910793775686039725670345197679838793955964572766399437912733399831083796321521572978283046824119524594018494273027136280341317031083193312726594805489006640451795592773066033180398945060016402899401297410541132983878003359839901110660138796781718507428391995952610794126482429687551678900215929093596672074198454628614272815946130289458157369542796002288169663473933881145734472360922099905410737769600339110052730995687305945349868026682263570371234708289039997831103014961436155175446955978572415010050259569850625834381400093909097552245016079237886191496974874248948936687071444418849099199493868600008916286133074279919648418283909969139268495344258429132174103049977317975562857181630090844884052807865308199028331273864007869774780676507089744486220227805301710386209503505819405633241341683688315026094016339090614502783111926356661612533884682101392001660843504786941349957058325795161274293526758579406791467443108617142955102224656291337301890131519841554889208233839661436488448277878543757838358418838912018807639922397226009147516800739592211368278499958430249587988523706941685818186369199041152836881888420953621773790545650479024712666878231219849129385048261489067321314011538853278318632760762954718986157390108843856165099404899237879745097100505093963600053777898920319848759039209122389516618316916344829961099853694043165814916969371750874735584408703980796188585264709689403667220092978097072519842846533665211488058840368492131386862016267252606847399317006861351282826517387795859451446939652813159094116505419131644150787631043361864129998327235163749097272059486281776393128901903296011698061119573693807109592238176586345735380325563038477040834769300332735384105680232580442935138815995538001015475784409047883923918440971238525259954790727304959630801689206845480104131556404417044325850448398686729351947215291067238002717208807293276334051360210750351142299443268760307923033054355887830374791469856329737768292692511452741074752377862607085243468667066287617694159741047062444226236116607047644336291222551784075137949100949382350300427886915214703071467404085650219196153574288940748705767667432314281478588990728708887556429893395948267638833438424432673797801916873657291076206159373634591654508546588732485888343997469504084139047631219540254102695748137565308139003319244117956114446122855614849545487279351011497867173915732342207201467260757435205013327351059980238063619091157572223515032930879752242779015900125904080406829324864128179389418195321610243466545282024725015600773494647267507294991950540592427532200940211331311675309405714140418750289697434399269351180272941752565850840262162914572308101296772801539361045203445930793272603822203103743518767550974650636729196247443848110842619467779875026721079516091984904820165245336941657705613487575280721131018985859461991634435483418903108133947693770127470287431437921553847553727049916389825112698253378156396770519579925994024995411488828575060718811181218116039437839230222733837560585375048803141705278861464599918696201456602140262043424003566487288614957935793022249435191791908859606247385156290331560333091939603056651369208708795755754221536286809893137655811699045483084218051552855274442217593897914912126045872177375880426349979045288933520102789522762413164490532156490539832500414808674818070807376785596470926010510916470972660824245393639338778819840267417861065902101676373916646002509195690727823100850537783167341850140480821958066913827500523018001498105427664784352212568018888845132125742033826167921130768609192074942682463280552578364702326737536571299146859189219923049765525487486277504468529597972531066466583758968821743993159579620244517042735516191666364973796335678236884307270149630636148962048488463737875755768222718395173221368573214355245538520922603797354366728741363132814120964384305310757045080768312952448118647746078156010945655099761238517525727053317372042583035291755998151681534921711898732607989444279374158272681302808101002731904273177257265262513976307254619235310562969942699422322658754176435420312973362720935737429059444640932190602554109313875316781648779182496252935731364841696807697603592781404612707088177889957889195102537840312331111422899506651863945814069753726584142705741995246562733313292307737831344999193674983565027213435527636570844752337463536145431165368567455738460451018368537911936767983888401526009950405549927362222455981647844235159967980731619091914507582238551691478671159308772783290804413470474280072483425520735925756150733024137352249900109938205432400725772072858278572568332113118689191753209310399609351524672742959753491023035169600228684878623032012832334150092975154897189159213269747437536188520854061019222837475193821048769873632739786903553895774811737294260437991027812271142971008196924032259624285383821317787290752968470882079419961605250955526832645657904410871587036492130842246661010193666962227972993975263704913165103596226181252736185159746005550932989053160629335778351666089588786891910099569990698878279871468030582329812709344895246384093482156844123366182403588281710516167761271578097283629757104082859762094604668877245876209888761311007637971158445784156170455254500992367008654051847599324341730079697934717915572592475488064795369232478556394772427150637577418605019277109103117884021614705084543301637977545185942224873007209238803759055322600596714175124141744547001718762233623404731711353728228768018366922405929201896138008102284132570601641562797108657120096495470743305353069818890392637517052972464018725525475494924415473173535976357220231048259634338177331175677922794214424490466200734364261841697609410719630625703753409014244959816604972418691606795915106959390622643216724845992241521933128699389306193737243335925552183392719504602651019897937624630859364927528654484343554701234226725391386946888877820510657598366316055873667629880476749896372720109913250380147788459723388562857610011549993085188478331211756566741401173835994254040261934816596016039447024687214317682642207115499663892840870570773460908781935215193724859827917232432190368125919395026370785802047826545488932394772677493222275630067011882727409059045974560997230177615430392360871367718160025326148862982959434108076296385910280037606612182431374416276054354674455487154672323139651766280027001841063561620028781921311137053306883120509758831251367046454915137267243516654189487382114212289804739265659625671658196190952575393469104433093547281474759099000075122273983929782952130866554327707888854328328231923514981417752100614298094392325427403941224059864270449915079456533661768426500676355733942892758023442323599458156588289212680424123835941483652827358922941101489124786942905403523613545386193328523775686582275261734027662494007526130922244548827805828604306297432126393883433961035434875913995265006843807640018636364919286853520158701458448014359132382083455883042360938034384633617717798767899526957705768248043765337564457193559909423393044948583616321639618811839611279381609268497154528767425902430402942862383076347843447841422998716450455736473764460056948858207508401749271032652281835189993992703198619032729475628066670536239633775552487647744099156324626419704826150950754733382260540884590225497781782410916526689727186348307840778226616106634725354803883579560185255065166268307133139745460638523267433498970688984519675717079253387824067176679889961722520105584783481274665420077180841777089990015581776513786284602184941087106903414971873122891169631877419929363743839734145952616923997889673386773700745666473187712313854913554292517807842467460113222812863982459278295943490605210519496572745670650881579282576211434763546044331617222272947337233330196529060093063461309374090753534955442508721222663542806564437582362273102449096327595474307999606217851934580743565513212113781963908273023724823882097415497984335791204107266724062657814204288761983755258257261237079369852197233847704641954649012228668534189070672117457488265864122951648317222085517874578245345953155477316232575589573839800822286065003773431418989301958009654083470968238381792418546038666745999289821080893931751573225733751723614374033537790932979247190482647368503714374427642520712828156514829160952596939887618494379941687191398990903429449884678640239447726826817893704643220389283847934301533108969817125311165469313491479527546384488673088187099613801874177344184027307777775150486187817529860307225886740405547932851554841336737114743531859252002583522926801313773223632391386305457661076260815686827073315251267907161636760879644361787765353365575679652226083049175897274347317626078923500566937275705760065966118224922393205641105713277592226869440237563018011335954226671864522522003270983553217067704640203869229493301286905103821968877275981193216665153302243794264172906926018493502656083584913819181127509555431051533576988844645059058741174821749614858084211471691338767905810129826896671354525722771912242891573931930206681577984259933785715017454330426845811466206756636742577697808967988448042955340004458730714856094925815624818956364012167694746605348555713099842983678037786461246167064460767522567228043744666798741552711973047672992675202843656154075830673071182354485309643729360264020976743798799335219165257075268227547740588297109569478962943471547193446257344046183806207606601120434937134116920405478749544981080887823334341565848205297348173398619632238917565863144210717621329871126458703465979595623357956643205957174455742881076026963793954713422505072336833747723350257748518680353368867377591432450325106612158479263102214938024102726640014249218553171783388968414171676622853775103779856316533887146749994046197876881268616432160448988365323836284112104741711011268780281002355898945444615830804298335155219358257925849677293699800380572716907929756809028477560214937197937877260877381186591960442254976338456107142175793387209997944987540584413748288263979439316304720832894044012769644162796575725835576259496045262768459697880631073436020813199829562417272278820445125010375648467110757327141712167792053397698056894440548774910092110772297236522478019144852791218139134648219866525620630544604622866087677073128554926683834419921439009036770255339130576299983090026967590625010819008083896151431079095550236396032580447383338234566768355141339068329159297613836067827238216304909219126213237638337214882667765628646434070975584309366401718493297968787224988548031680828576197416700450707609884600625199850988689321494031246847249153236229188361983523915101826239777678574818336115980426094679325177816326019040185898617578293343745244258199586796409896021054407333421336855700982381651981370757649221617189349196004079671414440392554606694848281975141002018432309874018273081244412486693736822991141604168914297561343810262512006520695051897051306590842657200165004808242015027706227984107347502923184581594748325966178333880688211719104379699255142225541142948602992758457380135414348657511704824591295799759437295540938566905882325714192811971635885889616959335860960279742609755411383868112120136070261950998943587236728727839664624459532925553816691945174841408868267778076810794554534785941604718025442876654587574472930563594138933726174495392316348457693528781072824138961135093971273054217068270258605243880947040232909768049594189103279107261140085807166355101582669123305670832987913523009298659040491529518397413914896412111401185651649938673795203933954220054672536626744496855795135396541366981288975794089078093338002322120330169485062604820431918491332979564175804585226958707982319142027333971246697386246011428495423605764312889041085967752037755140289219253169413874753496856836081965719971505632161690703958865915858722164976088546641686139447552868361781478931117722923650399012943386005772037257594612536208511042077164872158062239140983306516212611444465894077000148593202281685496170797673057922480976308216351715046322761951629717605262611633945300938819917398367578847533957849223807790759598370223193400015639922961895946704234306705002641409161388700086078745658653173695088736564256720663374563218489285852294148446651940624942062821201504516307108734655173299649713997756031247338284298222449118516789742083298515937621918026467107982819943688979642519470772900978197044751693348483188408169026584170226266574504926141853862325023503328761014705193783146032712056742718910536635648370737990557251346333485542951200641177036029254335932953036079094385067936152837796554692208180459822392066714918979293873604278745148211607790437348426692946052613923401441787299783299050381700915221601345342396126509298222672205843798287051081679157490663730524356784405827812893078192461306506487711673396983382228028226759680446818693998350956108560514433379169842100361064031822770287463755603481735715566585274138840267203347288186639658126333202516259154167254311708401149561990448288181666887475304409213980529162622286762188145554923998827289483679797513674216277933275485581234887738397855226610837368493751720792142336654424864311619945509710655071859809398189258368347360733148170411481089692455423505655531775960495934728853462200063902908811066953892290794007420420897851560167834920559261712245544722579282478351304158617211131560719427615674620230918123301555123751008284934693728659653792322586691243790258613081387028518877864747620573286771639078435659726524973166113805823558406264851620992342782902820471567203321934042124863760413152234569113826847016663594208084019680449080966367293876327231374643091551986262310321708251096086203580592248237707597586491912922730286726390488412475459179565216893371667568423216932351649852294876806335442906682781485719670526801934384341367344466624688965130746329198738196347419056672201150776170067747026709853725946319714068929793744091926083062779594537537831021047579645442101147907214577621239994671009152218028279549871410082250127564000008879875445684375694427039175192536348878594576324041976861532080616103088607120078298630031830976280776830396921799572878348153223081391065802062617797873309357298049545571799653535002917775939015149632525789879564078542619690246398471971697107732064857626230913016939030264203445235564081807107185842884801944687794200293727638201530878066653762147568345585766547740283494896547655820293360425572927688804150492928189493712695876991939728970337426694823804429226382057234332301385004418495273720787617189644239093526575705762833503050195848188180678329323010693470712677552064869216690300527504910137784772607395039658407051335208345120666221490733459033684009633796418225775303769602311571499507805169579006417979498917967593636648355413131616271726032608032324655158460402957845390263560382823677441666274845410754474508954435344042523899747227872001875685398709133326277298928574506153692012992473207561723194705705642242380089551507014275248393116246142022592667143872206229035056122558607413458131910696487577440940881005862092514999990028878313864103692859531896205169781400214475232154518660982129405097081463365742340256444297435394582374414336013829041393031299251730910729640381970660005724751137461687032296942481883727744799872459227747123938517450449483467071865495313434549211597072957083421592801780236120232695349195283892602261470989318135759064586834301230438218086752947257167837911224977534056730733708743660645043482564668358975306544751016374339410881642839786019106873595512640240494335579105484875928753628836683907545123147209682819997506237943214145360871235598488395985468851883639200913590648525464976440557736901855157735293960522388051621853884581052875024517022529651021165947595029181019906661266180011826173054431852309042897437697805689806302438967311393829541328572271780329507293134295009645736281739128741082251091529479322865986588944408682537967661036319663366076926721090778391878698393446643440188263886188674517254336826727687458323576615010844347452174638458425586117250809751405470242714173631055061537273215926973770156958361515969101171536189517049586435001086348886133913621902468373347266845109578877944700372647075398526157945907887489977865417269374470164777387501369392561730053772142342888141052435544310255857940766032455040474070374193369692427974463176127159030730417849333484880500285426201222967016275804422913903420078820762390255474758328616201434291561378402332615751784954768618031735232793270056817503558153878283048811323111558569306093003816293115217148137142189443018153717039999485881874461104647464385905609258400029821831793377108736911782858384230912837972200920901933100724329596118207363589839955077820813444661527803205887488765764098091087394248657612684571215294427957954742728277117855061621469188455128186614523523997213708380169685395894872964518924123612612873922520707537057516913835296899519461481431118096645196126350428645340154487698287684977528736376427890282607004844192624364274635627870619634090927080267870602877167832603576455913090647711753303210759100722258110893656110569142475183292465766952696049194471468850807092436990111791804513847427448154104485117262087756416455264403470479879406258963715603482716594076579727666587115752419941755868923498943762985236796777998543679654400361362314849382461689590910292914818353312915326227584275558031792383448248108670506222578472646457936286345696627398319429318649814691919622129802477384701358164125991263161194392595364397597435047982859159686203245385657062149321297524311386737921287964120446465003107554928628330964296061962058258605248906089973017290166769286843402264815664579003560699372042995747729952164735269574367156300921637322341908074430730388409336778129863565430807183495757150134604125057967430250891195328634719506523246141793178428918673447737073025631178463617499030870291027636456403514157080770610830364636224748383267482317081543548924335287783675592639401164955071549664348777428655710692641446447472992356546195981300561690051386331582139555740758682452582482319257376371363698623622058727346271372089663812842353682982076472231884785860118052712167671038848343946964969446679551080002411243809904923060783068376034626999411603498984299758196381905874730370932736717226206916630376717596720632815138026811186073440806372524389715491768856147627769771095797283831904739587599104753167963670113625252420409050377405499452036848068084307856864754279199523758134871367553529998192468627091142274750043462264202355164714737428143851656014846752504661590184781268978146732932387161561644351536047352547443075555579457278358448539462430045168474994719444703889876879244155345060649422400159132049120097039393501981717191740517060903068441999911107923051193430964365920487652919987767057289049328963690460948773031019993675430334817855488288861242134832871645872580042303449385824481109604052424540359060257127891208411569959165013860284528176319326522497337728341597120366934660037589713469477902793135956288985403985229609530336632427756283461528874627013158370993963192186232333092503512712151871842719077529154174901112479737561714223030419955308974798865069501399836302929971671941021273604265323272315780587976403012046547919274650514458074106984624291574221731383543953314911099941484214154339360159283404775323049907412458964505745298890811619460207412181412946236525657808010861549379051018802623119931561923896976733942863335961864046313575314705291461060342964047141840251393663882593394537167138002322991548684868171067138986125872072983214758134286853759400987831471398201046610898223319175443968673151737664258309390851301105209188130566302289951959238883291883532901487657501737235694939392046289530140772853902250456101680037783610908994197804871891469647148959698173951099795596953147906957857597527038542630647426871773772353801964742473085943316344530686404315817710288966067765307806043267834616597548162822093424223859796011591984918363400570411351502150221499011713487600307243374530475614868746484131449390078028852841909533362811355292029922503504900846820592777478650815148462504196889770776968121994817803812729932979227441339866121525098554755511484613146098990293193043771404288695331341305676968064155080689979954135538983312766213851100383966344846710886750883094212926941593008334938013191652853558524194771236423630353024314304020036548108702276621084268863136586341147996058216022667264122052635553351641781879860244023192524331878065109390497524549258235165111604359697546661257675835856123618846207223490041191554737585540673252443693114326323445783565558749331543980339619649236145719748087178546512483074571205706151903459048772383282575931056705046652839955580339072657570858704441225188817144278994731015785279493195522423145018975254800787735597441722314022153463171611562876058615477088262646905811838044090827633977366216996681059637994055075347351697865260613572015116834859833980544349363503788547901709333040300287762397399549220928801453798498551228250911832336989125400331677601458379777132787036812662088674359132737714810772360672479857567188453950676412244897488953759065221433629888171856786995444363395635534820367653975771527821188665067400113689013641426246987025097506474768501454021668623658279971693003970468246973524075865791141112034810816539806950578354343531560625739210519841857803762411341363021502498717422046022404067442883366784577110259591812700929869437965825778837241570818192601954064643172663947149127017436661278973261930225714766335273556868144054658046969734648039963174411373334981362173098201839919136063717302942513000628792866913525122485869783557288812835829126543616139300755306083396151061811442843579868319936325785923943311548005177617393346684468136653566241736907553323675223415483839698271589725070071542099156290319144145581845309933332991174808107943147927908374674715256796115950866045681281111562509024627749878638812742315580084197480716207232211825749442366547712282093847515218978452018634799690631561970799748408865408395198734995091206040465524837015843222049134291676482138427106301256270220021045244752499297391882220268821367509543347957082347397294136980622298778314844590213014282390177292414235793388925873759733923934686084506726488464506136540723541748397558500388072398601585946642694503299637950831526980019649093069608788975820738012442145689433960888005876995851854376846049140230399810322630040438178143413053369513903946265294243019055948673711069590475857907490900454229188904649376160780560151914715232762360954130841789532823070797521508659915230507548948657748554456487685084727333084091213871638252180359531852084910557761666663928502343294772964041581045826493964716984470271654471951593531013907107798334451412121314402415103759080628390920998681738952945790635342369871246424361118587247665871088041231959660992277683345840553598740171136292268833844187777041399541206653942638578581687331636945548556071374956069624053947625358737633723370582820358628197712310290508355613386849334937473352093100723401858076266563658230426759784135215544285480591349109477257563487264365127226190163040019569338990862551583438796549288787031692252023485719888811216816905174829088238582745889592008192990920205795989939377401778258525404486361123330897863817778355907019510736563574789799831180339385712112870228890564890752783259449240772573132208819410188294060189961272486302265871050658695037263534192365563013113443390638796047490547253774932633822576704532166548611914952113653957080450955414155814941905714738510999307850728937000282784321766176571316364259930359077829596349158044459873384430231516368025491236725225631410522333213479439098610627353212448501490661968811140530239066412885631187923318278012177507844503995004914600529325497978918907159132283930823262003507862142735677476881582842617657198482585819721041248751867612608401210424214136032533432345596199769606435279263155659388265810653863560650611601658071567545374853850726145104572463166877657568716727199291376336659635952780182023448076757260950001822377810556811607743398549408528634181500290908473610353558981769578107609520065411623128530368004613885728264701532106220504362523095849322213597015521721125088014668617615607235387899940442134772766909244387701856971520045322250987921629358315442809648842676301519358617269505878690676186485535903038076626960149211939455427094700363153974744763830935299160106301667140075753977091312174275899673216226877021488464985195666970149323963944324834925372022348506561899252774074824515795147627349688672108520005189733076812727370563070313849818724590378356436905703774936856905637165115302075813574145722608036079855190056375111766386682010028466283925138186119032110998217343294760092927558398444483093140368709759392109109805974992742762875088040950518890927956958053032470756571110657757740176301267286012290067561801833012470727734817043116837876755728699190199119484043964624255640584784999958395221286729454931039935680044443287839779221269454121460008259876816039582519325770015284265205499200791026443583481265068294951995567796845256280983718143255338802904882902108534250947669734769061839820324390299068401289584785772944572922153732665858045038419500606216956017280907115126634082679310324914619324158104655674831933627589316904114077039777177452402549910230463701333163652969015459653105849154898145930656657526102546086398475919696906872566527932942553304269427313735404514087228631577906915400102251784652324446211303160595753107938933237145475654849247315334619942988948167000955553556518828495786119625185934564664804576593643811598884733030915723576468476476066637365980693118871908511202092187194395542068835256142671492046601299778177282982135881432272843514468147819925684451228164715092586957151754136173921956162667986083601696955133859127438349286432487540390987606352940815613678292115218302798182241383469249897532606331561051448801100024368358210064181459407835296821899798239058632394744865923223132608162171164178276868783711506319955441969121879693723638889659829410877419235461399996631110389577562307799220895657930267392152907495504487242614705923981539990161728094858631960710508689151026099931800352124222743387492534280797515207458950075145536011299310590106245456171228566485466041843406969421412224489971117534396056111133202030639806831560170604540726952445088322132935581837121356581371309123830772331807441863636198936208820090863834287725866508676122672773870292538155603983852190731874663325930677537919146238060506616461166769606601143401182797758240480010121164188819969972172615017524976777554443206615180229100980415998064379656387924015815813123710680989924202645299568938783629607086040251964718596190622060964614578657477994289508622669755620410067880667706856364163120047240825753318070407669033394354122834825915017436613106704351169281204337922311801902818240804860150850599320001059057659736810531511364758342742394675488888102486619621374864398441637258022345044157002423050093206620353674458595197226106950708469004179425979938940918315909078475602591915633259864277025884069113725608218190290630507410946664678101613171360519347069054945082174951851276670793885935628461150889169669886446962058767218151387833850823984409957926493392224744137436662361844169115004976441693767526794551889694074739094256530436818215717196307205087543369091765089757361799715109262413225002806501328111046277897376251278282226642725476180273802650407874216214635907810927767218257481981040135005947450047639066915321036307411228128764010750508464433095458502164553142564796190326130751550716815520873576214662163641820906177734308902915562677459204973528999246817697413033418512098382135437879731247894666186943676074144927730547251424831668365328624011433102145857715837136902142660825347655422183220026654721084448762698523905071078515794021138901552847609562671769582446486885247449706932156845485169133999136938712828183946906628129599273405930068361888512807534164708437272150824152903181516686018916762462714178339841506999422555411127361988366570683548602961361175372711260283908692216516195072101796180628897592764021840384331050673151796608015570289211104611875571763433082084738869758446542593550513538363192764668084028604728189697330006542242091247989943239889732703977023507654587864374170364791635601991091478235108406022360351059002799851942846766965592060780774727450496192863295291802882791283413088651026377098902833159813548493458874462075167181727150012731723808816252876856618502813532362653040821837794667118111216731218142007048144399501033003782594184784840434649495160614189201447545808247549994452982280838788948588658920216571117529290904308666952132754923320490669398068276713082958433961966718374980541232439799965308919892254120202073323638676854490638033992961804006084627569077588282191945454976445621861820852725492901218166424708039258917836111078959300893485974277016925064357757688179425627618286300281210343828784421437616785077743119385802917805511633490583068709851525700993570134822098105466117289602587088751198175405278707944023238199153677248811410476883353715461381606794642091566663975070355654011190791580320558266791830217038988766346050892116840979384810566081075864390189897569197441578839856747952866320304932769904191678510621004905216818319849112656488013322588996730653893686664315430522058232790669563115539402835755272445755669931741289884672337985353734064784542499699826247599333562553492095501645485513695236017175564410978955531983329529831898258597663693963751146277714789340698947253486034265617895149098404513523370933228309533959882779558307172348962548983292311622800269034071441292146411808185407983487482512884063873642160814533611912060301090383561348361792651651047379639348871087441530876117412380143355076502965296293436230397132457499703560427856411426908194697717478983044154355762824707658585393541071368563092839149130619993277691842801230071449719493860895862466031628863275856744223526173313855081924949753050274950697367381891154395819322112527324990055609969399355010552099067580450161272744717699471475582945947408461837031723332234077895324383454877122823993562755103487065466672531833788334418007499153620133714356036171790626614219374213151963970107544849024876124188702263699490031843236720420427742611876386060983160948700843231063386284124503515895890087331637312895741971492653156540674761841313074689614371462934678707904018451158646560451062240064597945582921348304829385377635870640105249821326820750968346685721241827054340220041490839513705677808986400085607238100008500180004604267355220409816982234275077739098314808820181306413218095539404061715286473243522401356171381619966564762814796518273020119499405899602177628140590575614420927246861543042432962742930798380654082936641040302428613597527209004881085876651229514700257740118190666096198003930974752084883170209288204430218800527585217872148344272177324777884155104027448106772201483583300934732312498764020841948095576315883790063899031554828150325835293604858253900044997685702151530283044479501159946021445065849947621913272039980704249236103924311171568002069476815162245100405568982903399861287091213879687276110357849959080096703676145496468519471846587833229789293431342578992441781148103360944520076466164122431657954210304069621709738400497330790546345860605457045995721499458554152096997570171066976721451480797506212624118551899950345088026318389347464505348874832304247990638148532904207788353049618417499603376696257962157963746710957147619529825868890788179478687584651953235925455539674392679517864847711782914468586342679136537317094419902119997078601012298088166693243231766223451091014256674708957041528398177847467195693224626837238226493354220351242355128178611769936993206241297083908673719993627035122352066332652356090097577335941465208887194046350655260657261692428142020515942183366603431038012885539019551449151480090738293750424794669480142036741561328841367942369613008883927032317183867361850017998443155914730455096540185412054878594200948342690211170013020327986697296871898263862425426742026899043031907486633545067763064367833150881181498650350945671282019870358715637686301144114384007064624349204617186265811184812213407201062175175291886173747043522247067509517711871237381666454233138348966339338740913998387388807653778609538145068539824303972060880410494559404613652783848038422156272817061135327410162344355090152839599927523332819363466543171119292237723182807103251540575587473547375709289542829313812688347377434346164241175277624567160699650086499576104819502097009898845934832976285455669988391841506403229605328401357385035715787339987966825407953219917636456938296412315978885671873283763775811389431389690420289107562982331539375215300691036705254561460057374134883975720481982314670318162279824128409218747580240577594939293356271245242779340183430993809026117416234159629423116137399887799364578420250314293115823351405672482164686851344989115747421474342185090548164527684694736976363374157721031336222659905417940906632348884192513191605542089286254113807218638524613753849618094251820854348971313805832312245482077764789970868865789655065597191939347845615236245711389815456523562547835559251374387171388886935602468526499209621772522997203501499394327549679059172645583523917888019694639697430227300185886083696047711492156277317861299095246709102825185326727199438336144766125842848901405837669757601922918151204124642009051891133073063750144450721852540596049134931620973374235903135888861803324886850830805583811126913920930910721106142950343802083100937842222343345086152345378139473022207724448723545308147598081612131344714021957507951625264213930812168870738474068345196851509564550133653176031481846595898942511925121062173067406976679957182667084784322618986162335676589102101118930367063207865623548846089501128885811591477232938943524084546420440299307300348345755394218143285904234296417530391704198072185864986692073713617499402285347917170099148054820854242940001853391293171700115425199131390420345676313356811747928055170151501342734115766456622764612194781087479179738640192354967037704941412327199853967264815772817406518133374755536387102265440055794946215322325320897605175353455456541755163656445728663716834659608161380052140353152457113797477311883857825617967780925405160307220004028776214478402417249436519725614370116701397000895937901889560037882500308457668024082682860056061221116874471062553640928919854343561450989292393781603519088879603075449920603700099781977109791154348395326844608252211114215015990733199797740329062975550888240989591219346894379315924765054390370631322831391943955194031380769006219477838352683873139841372812764426520845436523585501715811676662264893897255661754984078197661004050239915599027749439937632070664821355005576273227086732246882584723213765162464398895280566782958596496158241473683945269512210342111976710196976039811190312427421004900284687483096824423154089768251860820480092187156946210136961633313056083112761714473664802710371927804431226710211215153672190706706736394943449445680549984798660993568512560666534489355797299782531108531430121159838456731673891834693020447637921034166945090922962646395877673331395197351493535264531284894957929683747977928289263295114831177211568776016195912708228809348407285728212629993654098459158960260464046572705329257901921367838379522042053400180257892075681657838986784836045424489051118014227527825360716928072199281198201279211259774149656482714440733348568225073325694990865635039849260633712103552658058291528622222151282496707935175789276037137366206562473237598070373478749555968331039287572790684068429845709889557822048858002507093388980002049677885658312265548541633928331937153173070388982094429468476831726886555907614609235134791785175394547122214344922494841886404137864743001833753966431048592121029931607527378723811374489366099524325839885140390053107186050320991009568189743893475839738963111815408267069839603338901065267333580267784176653583153497246030160744509558180614210395297938827644903524222691392774562606592320150320509553193285191123393838586702893191040470314242883610245830817820842291115154208588686965355993408901402361533021566913555901063671362556834527283858319347072533621210739830273365396298907997553597380354537249014524589339898760558913172095170792937129798241473270006471036737976630208842439622886617568078952973284298451711009842627973696155262854605072022551429313762464208616806232566735549560500062757850622937713162213532518807378183386035491936247365513984831467714584975015901123602517882312271590188162174146651049976000889681441367126681625325488772167365200368029170535487589909439505122684924301802294439205405961935434172387883327025124973094169279644688844519537912129075810274046627567521487523718963586212728002526982592645193695194614001280084186198192717724184444441885307008866829953535377350831101194678935002073845793612367060622334931190259464161924220230080893512364456241977596001000340981535349820608950876713739808691131971184726736138853532934287211793515796299040208279627049487689391834474281081910802643757492857382348464838179510848389690508058432973625568542589163581580346208457427603101718185479745303684270920720976359688464263299525000794191668404504518780885304117726125331805090392278606661155544401507652159232391804996431056889632202672037234923987444186760007127695629686421076249202060545284081768276051152101324401875959968259723349312074769311808940749963780093694675137389492752879427857467435988124673602463051971425450231154487346180192216330277385364225704843995752444306365019122914282099216873433591005900831197412488451008670595261645022653441106411792113486750089292292929163659645068741014611000683319850460959979349429776250424170343415319258896776568693258855369366438998227853466846542460849182459205219288107293226912428519274218479406969748100151475819265001909541460373460755388359574044842479421459986065978576479280009195245842073235626789256439272914885865261297852335670225871482629178782518602115526249428709780815965444969230301841145834839016280670817673960145080449268485251703552623191769925977046866585643172840506117065809967091766335448552195117462714027669278902616610075730122558719994135103483372533653699846890960346172301056509091291337606278645968075565968184381083049761821018060780606404814168497838586635057246415235434828718388963687166994572650642483394813945927980357273086913052911915413326927087039628900790562447478007458983028154041631781077706230060549772686556781520774927349847478808520413437144490126609918742628123335880498103367157579864057667608759797716835780799591511852925110187128870620687904001825207739801977036331687443760196213321837460974946097120141044841651224325727149182545612502100897120542739929725366149921702768606353484737996060854476215324496966277242524474550487863837915786554846086909631881590161797251827263762909793978759490280304233870330793957896550794550099957136752530598899318349840920145791982427406976346869160563046092825164814343647145371488494485810523284855601218939248761904392239148397893836882667588906289383079660256477466752938521606306199513753251916418280246208490486968326236002251323039398429248837164312611925656206551400836205243192200429549550799048304507699899041694466345446675832158226566694665622765170214294239438403781734112090109156090683026164267262453708702763650371087286843689394118917078869615644006348717401495972571045913473503241991147959796869484183313659891824677232324635542667144850912340762728085604721858530439323251414682247762367842327228242046672018747067365484219928547892643690197661931312274507377708639472670357057494937529654828192551988567667894751878309921813568348691856090275088957176543143817139094891347360310758391436501400709381597736082114718226631115676385984544433705517149947325689933727949367976615107370041872342611884602127093110383900561401407662725502473519590779254981160285744482389097172262367149422004572285828392948739702146418148360163198856713419149716629796753852078482267049088002808428129302286833340002587218453164308563309493906173413378912751395843901027198824184564119170915837702079496805417111683734226114078270289545592472506435035176065500706665869620654105256717238363078004176292671431112219663614351732662311226797642877377603853399480848399628579979145050477371034962940708302707492006468882317701047011136322637046878218912745967600419546064921490823024937418561451487449449977126022731486448687289464218350511863777771984058020865388980754835152907091684822236773680205118059061436556525894645170624352408179541607479116719824691730978976485924859423978179900580290643172387629367038991955907328411292301317192007934186952884087922745481472407622620584202167671218014119591604352068686535790019913102757951446613270468157577677039480062033909783994874073197546546148548167366419887528985640379695460352701358664226789207288235733900064870293415601483801036618103848757962909225065265491014502653185057759123050091958246414014248764453365566511078004994335402657915549256550065671431982527174052885183402644325896061166617951560359120440243130467702125025119321505214382936267351787446182639052513001377598531847192367922002015140003766068575657540672699787965180324058154179976601551650477773057462122671437437517409503246105913895668825127617486767759461794794275915373697829276565758961708648287441426955414945767150766162437404174519830759347505894358740461837951693214000749596307601565531418115345607658938749909792133865899356065658527365964710241217056246858993151588127755521082440792367881183719214637736816292747792944591698442757655895808683386683915444606689878336338336165866864827333501526757794362636859467832057262507881769470710654560557806532324856703336646619307334326366040365385190824610049069502163650118426824778796302917106659748519822132820453291636742584128242756066063811275107755014819458955098481895232814504344113270138889716014408541739489671034063558034655617196946005595652960316680192583410756917149710311059025684307324892468736700264879073642096989773210523544586911871666379162679064464726622231206237044819821381288966038852687437291296567385300846451752301926312459797696590198924667942900090060903017345042918144696762847572342792041513259580840374185847190529765002152183344586294990344616604822856976595595398419718148187274985406067814933558630796228029834009300858784367283211677625645640535612094177783108554067891997134985959074259540110995455031434626688451414236853974205266544839510857820554746933090945596091279737709236548528505092673027681587681333133923006682729576530801212414504509984247182754199920981506004444563539727683180881468216061497235322369014608097203779740511646874331772156541948292663905761210937722536357029261242087174621877808436019852949925193732105512253920707047059453725485264914890450753094456776260961750880479471358465139714384864301920946269524268276930006677759731883983168943512868149381055629675007188830393333403183302824794298486052623469119636450501552200706957551303299922802073747874123084991484210741348526295395053183660628764042954348458715475105204333540431059066301259283340236616714530962376557957218933402226179161657725651445166698574921894048495565886217335108764299212671415389590236610235385026766791815051437626488580824238129270688522788496773276191811042568907603061761106267969714108594247108606771007649541338639972256303293083262145083832226099657042471188933598344099058185068331151706187350888126358902972787300584408547235820963482556733525709262498445292631058231692126600355147095446284178280329498440120877943106672391082750853277965000606859127612748382630734992191245754391286165213109967980238326202038152147853373505017369902374284274227509161622891725045148841691087412300896233179738654613840160033113773482144221962684307412549533642275866329945226101734979115930116071142898043771818551850547071808979835861747075350121838915825541050019675167570087893011444533478238344091964741201962657154744880236071818541734874134568812573882867946616134395735244290877692987157580315297321900951765226207764407784309128827984099408537157677573122056581650980437084259979477493627087925010512918238294149082739360971121325538772752208556907137377158731389953776485038302198749713649391801582976217047061116410135124314557060762928877903959563055257226643671200764821069912752416307090726481457957112916353344131071088586188991561152806090004369990460373844340643222468650079754645722809444201840570160602647839458738092979300928787934561916988894017055452160397809741541836400802886019939493928235321276538543824147199433208469177484436963411836080129668905081813168884104113629744314260993386068893591441651665351971567423186494549817177390901839883550712993768669532841641427705184189337146485504019327412369237251073149726308744535837182831269069785478689944858709469084911413318556672192931905795736222081523754186541437206113949739407760744397785331186283803073153661728345979767587197787687610228839530500626484427292415154482945276842240330504762511520711623192096652808955834779777865534902406518161500812249944935191115217119894585004581557733221373731864508994387326818330991467743241499443317666488621077630709976439972210102083480171181593141545432432762530705891333071150372665102917100944549838506589715264176018628860156833399684949668035491719450715510230136220714764653536565930061325878935112981084794194488349738119162690951586663209035761371798244722066442824552373206580859383664178170696176968495647568057672184203184413824301161882366095067068830086009835417936212336568642259363584875971271160997778376360615998195745601156732189964924565703714913738412928331466228395877566706538521142621454666336950421348568664244049558567654604317086735696571048913287875461110344812826656512630232289689595785121631078600783868713481086509417536714934173984177656585544831908954598311597614668763051034437284182103010734308576197463998475402313647403593881581964601233989963423245087062921387791990924702803790677778467977045483773229567426090738410284496869881021274604916544328870885058992494543479936264520502140332513259928404832909508910905069038096086321311493213980391492103078870523818615484258452820761391937075796097326686003839025600055239539597836408861097218446337667036644831843608886041543052990131214173512250016310633783504331155164212990568305370167429741074893778568977400512801227931308276621874536404505286487608974200931610357267635013331904617091595267457747538304576095345337453729639908196218683054983496500842553055351363943125418821758038212628291683247383390727839288618330643395635143781260901986980906261030637191151095939573203231990596695001174711281661331986011693642377425016016562627077227933931426251085845147295841198412160860057579644750826514054378438936726742590759594401204989289610137285274042607382267740530377978376495931352036073882656545064609981152480074684813373396246604393328087795610680443670311995690029659999584715998917210461704539039832054993048775916582271700309241425407895761283057756281374399925370805485622407237585306100418519811236022312540850372623744584118711342264619874990830831751813175151346468836901705848075839416432649484431046111343139328381640336645673661968797509494198201921298989395992271889757190328686925725385218131988133923433598217837798873006681887161683046036823362688587208169383030375931466732812757050640963754680015950064985517652591716684970392870231854982376416504136298250605774101017216901749622764534055577955847705573136501013456112248111487522126366666811015928033204076500836065976577412157265195763818816037527309970227759813508561678642046097125967491865194096154078493951571349618981555375423369799879021872422128080987903438872934666671481252121219226401784432813616050519942472319936358874656150296075288686422522663608174844396145295144852821234254012658588674320115961694874221044335269700930657083863935400754910045366272364476394351872920685122030282603479008766222207263314060901117675622996787218358282367829179099793144131662989599169759058191649586428975485840362541781605754909185493396947160169537961199924665179387862195565259365285527815842120402771952718686317477743757817061604965964649855938389880075325599646974502175066620102806268917888272372436851279428898934620443585862195592758007161224068206426238178415724833724527799808524916030131374215732346434927645928705298755406319903189364011024645566715806291014966873561665622575920327893535099808575509708219446825824277299118648036820949424302302111445456186122333245076338560747977936625072527464954081246000396480774468989965082778125814333972722520566404794770142675120961645345742722013504912418836598356447134425826726575206505984021555756773086945977010387649753683489991397868766616801137828501624827840443610621159558072361508826052174015600391071125224071510292713381338014856741714681977679727260762108553808415723101035538369667290921411333031343709031079116700880702110818142466816454053114998065566914891424518515275687472544854466013360924433331767926655881090845855196349158161151493046701424886582269233514245559227989820184306402746774844697687845606667258427055352749904140768671131836132943734888411816417669181421395508142591764245341167189152598452561137415946448708647758779547270655743149693701871333073339126323381095467708859111717219702520936427913011115273253134342299052234688066269092729174137481170270067515750765872490958922475084365877658395683439610338204374479508689139416236282171211649327907462460311520426581587295179875473605873890761922984258882310228453958901954122002282677300274091705815475604557797140413080719845074463826414692283431967628941897196689165822366699152601177758021625276369283397587931561143753086077604382092484113184182682053357111442940643690944557183013329377606723516223525925330982828849849432730265023122699326782100611413878056333783647346154414424854172750725037049120476006731977489398947419600223729561979451663062623773780492205080299620668010165554345156644990305360352472381262121447943536648523083936087955363821595942460593948544771909760774563468595278343632295335076360223721540946601784023946864801331916117505308688736442150595410274637105933644417070471896206177062388542524756647610898277853527137086210521707545737507497542359704161372935993716999614147655654574713417824500872031950390456628766112092109417542024456718917854727586570013561246671115269084427762821555994796908463866924984107296054868121741096728956557558522126447611023105749290528250107813030703416242786870806511620860290645046069725406966256946662256298686646273094044792129250114214046865576973384249174094650955054804818853868342849569376938636069625606137991565674795848331996313168942909362577592372507070429631552288065682252641158063544101457821665214721928997064151849978251584780998083869259116778742663101728366676026261992901670884881152813193509840022993969599502287280981556418138097308216753632004727569830067877150507105450007222604186432254038165048073094283642259653322347494556704904234298907639788145751383794159218883987661295364177741689304451412567256483895913778601484749059964380663102886246052453768018825706992358638537009099222025935212807441178956674847143880763828980472758699044272806611848368333295155827030948782719237118254954925605420729413020655179886307503731643048494581279908044861205296561332451745558222703927470747734189241756876242313727767265408355836204645287883592971305087382608764476388866897783116882910661108598422710822982697048496367652344675858492179868490842261762001798201443140805916345022936090989296291310962743416322040690483909715144273282507118829807232580459490804179560564784231780560902323152605756603736696669237214066846933124520275047790676149999656812779717061190840370835889802796374561040127155830597216001946262709793943684493053289120245824536073287677448487115198187674212355301496683277678645496986511575647243093138577429341297787910545006099066269488656524791852583719362525285741612261384343452661637694938756112315176659770867257864278528080987820419729420887944659681113227876563889740475713495971277219513426243656242067226071104001903244220031535806775686896484063593041277519641969421574720062237526675509212867455387063026223248270236239534115467670597705337310186441807878315554177513222615293857330942069281155883971772823644487558819304972493531844671052867346680612788957866986957867144099981995990437888925658769843259379481506483966371664626534496281327523007815851558152556941690184615275120437137410164526830930531744066119552885161129396534173288660106422056327315370537343673544778168315396532995407906073534895842779099864722737026275455723758560015744856990763895079410646042787558800573167430113885976409363738146920251336377871328769341136810423960147056475487369264361507196480242567807975900569879992715191294073130336934795147906147853488094887036185825730176988928550397201270762852409001327759877659357922196661599119192710508379427345391396038541574308270843630930339062315219270985193220596285464669418812883388214536430553263926593654076017167175173017437158548227780826732540131907389291658125917929055696726992814169491143790427328194707399194253809192707049088261756611885132611057380278767292381544268794688636112300984498514212327170535640067309534563858790351782774112229876261558003621409957450690040613530679444064970087442631453549344485068956460305509965748008535685503983608473940666783921130447110649836762127128518923504710212132254453106701930362939831572978741418811526185029758649364532775385562521657655488468349582898283871067085805233320327186478271070708826570699324971885365876861062312974858023327200411999328905609350885022825854507601557740868171598856598095372426311392405261695289611500055215039531657566018590492218177007635212008380448924532465306480866005980703099815745679070918599602090139719735792025949199095910869722555873743912004721572589394748761246501703664271497272302178852154332947540343364800730463619102383248494506833950534111898578939226793453053390557938130707955356741658926835492716595846791711150898231984288392831644302381335640382469865507709237369020430021667234828629247018666287348715507717875922025687525254928463730068715650259060280434750065624136253436658943631951751546346261920666659128448921065597964982759816075708464240657976712373289799777205817405503498065208269498479799636492726781970404096476660325075107808055316647777628844918457713939547158620532448969397244309608838712516046977475841167037650094158096230944976359254712377668999238819754828734519075005165941749028212916175957001844030094283878036977119191736559924070603432402559086049995804088511319714900922066253931684425475689515785948676074692993561877366948352181995522944989932002356489787447543699081467268352148872763787618542415161444191701027753002259028932831942776084280380647988914546975862079371631697633746793230833789550138844597698092580226732349490660467648647883609172240217228587332393604778193247749094491070500441520922085243410155793659240863569206377395069783728466318497051191575758683950178738070380748738400728118916876357233853847603237882157341071765404484532936403096669153541419156101281383344344393746486438945801467130548449164267792239686605525538717968620019842041596103255048863970728094358119555059986002906850125748070681575772046070173398447737840559395012479305424194024292035507882620959668081795631500627271969780446063260370934726654664855678911168102201726815055531906716534964621134711971304326986127298739055334380455202429887123643212224940605875339322507188080427059224098656597301380974176086085845903144314488836382974214493138444489173713648151699313187889429225424413139278041939485101673306992244553453775175331625457222135135995127404673403751266038291290131172870147869201269962107974967171809181999410586849017838818225032583844510368060067228806573918158693478356802377076701032097582787062203010195736684442363079493060319353152473577842477346447179274774510388267029877011191073096198105619419652084807834395309755473921075822075043565236496965711700788269801644413913362836715969514067715872449021359220984506731548125188868296252793730820123860353193282524604280010133320142447180462025462146613769569750553299120237810344583802572846862329983952385043050607317628827208064709519396146038159475219826762425906718253591688297298150570633304444144095213490705044426236124398240660227077027954700104172849743312824645902546182558026497258076294369652165892554982867751295657081731473392901333147459659917219202561635369780125483944488460918463156823563024213435831710531339634152873490411484314238999492992713167800614646152996441636595085220967180441188826513138523620769949200503460494004761061303969968566930217237226137245222183272701731353819297657613329567188902917208499130892042130511126603540134302931508785937947096297992773786798901157962106841306439701331543895035078262943506338768028401237642003589612173229109735774767194798698417015935944553993033707884057673397043944153784080351573536993380656621000159058101856215431380910570666910424256713372375282345576489786898201205619984192580179628179794022141964826076425188634919618489443402687908408872968760043625094517681216333402705238654104696676142902516925985573318788370087813999058869693280302413517300056931562985484305078121108346776639934032872362016646686575153039072875156236893995481916475970425771646742813745692751134821196886675162429601460564397196195513389778691055501445940492998209936962458316379400018253052028225888517762964662715972230195344808220061333165328290449326198052927436994770056815148842085370862316670217373127656747714830879874742633574298021772974658105091906241306464482190398749321428431381908281004700131243723043251053431374340968344202597529386282868360434024038264661184519113884805321892140601606014005689768584691808549247495483399103035181823325535874792007149989520368554922954806140934210422065866703186476052646356019202126777365071177579406436298259242110995775872336232170932188049955520958137218242832846692526598848893456325725662811912585095322271131801547753788113065832746236992684647049244164031356353365597820461603641030456045433022593632481440544129934654798409921236579380721598648041605986469053048110515036750300727530265254262815680249290708066434623290779879222290733756226645288487200199009259665646370652436050416376344896394835753222934034057338459042909727356565575109910417390537701398928035200104308126328021200777565831931187444973078597807804938571995694729779096866666308325160740212846859047364988301245793045886156515526048244338850190479688309655895802695306376862119996543574669716850384274225348845807003696904536498736423558931131969302354002878507770717747378565300930743602790830116095301714168061138458517115970689819547862133820107777834477593087083234350674110814278266994893981735616323203370290245449434180829744920481619937467693028409868540779919785473961244192412391037436551983908034820885561590958954223049184339803648158449538619698981157806677528259302844721535721189697623691877305523320332676206996589115289320908444931805627895406319215336357334872872056988405470600195606461637411813218574400661935396550455309484750964532383478608572938762100703665184762834888021317526496600558613026562558563549918427159814199602134554169771528257286108597417911045375175062821521559773414929590861358860206051225269957608482216877098985601018501852756605661904324707662214350350478078801374545991068879782279536171095558502905157131171933753786492459491095029863348073569587150201623459272320942218698987840392325963969043978261007205376031301471667118756201158670395048181413112570233610465811963933591773978776352396678362514743874701391535972482625628947362215586111981059100469799503274491981554793938625493834621464812949881774340280759539968014240820619725282702468020955397916900947951834517858462589420994988431850976721322952920473752434726551715467606624318413206976223151145763903620615399338600146419699142098877857966576591853679879405444149680684347762290923584383541041594695114697714785623223754843525216674199405259812214458073501094538100758957727812013717242482103903009853447818432586982761568725598655963660816375184695350255544820459748875600477955332672522354506021114291071403276256899919991407472852481347319122512808600898397176390684036245024476077698666891401412170410359805690803445893224890460041173952021778058854189254238263003881786341375830900252292092724525038800990294606079055029022942703501949110108215973562847533145299630544462262177229984772434503089826132725811996366426998791514110147886746790727443503444427754909964417523796186732019536607466275283796595514960864572057189043217892393607241975206722025416703029115933454909227713756919723136191237987749982813947861520128758767983601292299419611020513792492696212158742720397676726230613705221434246681357613459713087755461936402920816628144261012326294656396412620217222149399648019179607664157030250014986046813774758490069507906687500971345536040203454133709427025599786872238962404981930505348131471371828736139187396395928777664290456758622343147714134341331363347062577947618424868940851705553166884980757482302315421499945966145780443602963729253543048757746605686956440117580320870591115106690733408518525739496613477239511131471090951023902484034878477825755946011064720050081144683222347289096624723141456185521870035578024211599013337639597400972579510540063892845580297400470000147317932950295156466781934570459511500920173674186528337987371964032388532341041551836541702995832825981340147506025445968209094360537102018078620183877036151938488838200232022519824488107637065535808674434270241253586139984600276224926800388178946815936418018610890677275493160334765915628691102085052562597357999641355574457180602757148207704133761708565953036178699694127735378743007758305419139873301941287665877156181739298082357792639871715699516164044227795889429449592730496799291041364116907335941737077957507782618083523815385931402438330017100448160933345362404599315385759016657390092357010670634488530186633159335953635382984941294441353545296958697588357911102586237809212105630761579885169579515511030179874552622199908680266241782549861010002836533006670577224419262804774130636841294229372139467609683253822064013636442540948158059637781802329624298400340455618238685280999122055075657357294928935509015091852032928650476302834790761319663976882821841101314251055692854419083997072565694462811427184551852479388303912910507835602477824802203562473432834222580314810867791103958875014993451698253142929063845690109506397832508666848983356376970468369718060316803627031807466871208644188477013839685212173233221554764070922650256809295504395351796940784073489183978229037728526620742473387820677090178794984806959110738303753413916247421206736852410672811183970889911552420382937536128097172462126100756780024569736028437771291243647353934898853154823044619211304291136948654906691674635702852484203353496628595582116048643010603874059279306509147366203552807947342051975145800698937952716831572230549742636565813457123050460025533919446097100547329180081406638926367562565158422807816496148595644490356797387443141661421846216543528537674738868286155785191385554267802638549259799574492564152772630179339637124476611201199754827266822205008340070254483441018246790653906114507959988098309498768831427976274594814656755937066204524775938920155050645136043855811299813583630480177245730902859184296760835762873364933385462016830294239873962132856210754999985457968303163922893602544700065581443667897755541486243253317643016496122161116281637991093324928473159307335143014178238525437648217482726078221172430007951929386942039758543558432446648003585061667640817822134927240670491388927214442793335522612309012666816207406056571218604462550158489661227605906086050518178810804968393531997661469914687184966846704988857506769095345153517996960657501679635653594717886791308766554909585064129180460310164540106179610261143308970515911771095676052236922989328338635867126640489270962973929205379651051087609038859410966750978245433301458329404213587517695775724185815185959818599436983381034579787822759599116343633299214036013438258597665177014915543584323550463393212142905365268207054845342560512625994076400113165358867800034806556415734914548816279470373462374644008266667465757489743235762739549776451504580002201289740263929653774545466594428844648470828668030490570982109359298676615953852950648273843895226562961526222142077238060406548029300403784884568724381067516702247349448371273309322525422165037833805127544915315182228901612042141946968626137709678077799260657552150487630142732907243148685641284019568757991270949031476724114647830972840914199499140522134363393694228765460320214109606297441774915518991271780447452826929631427897972996401066275967998932969074274872885537358733798644438063821771034082612999678565731004536828999379077651858462664672860809719056559457424061788598805150630932003589327139806803122372904658528629092446826997595540990475428761083760497510953343746307743088677069248035499620822392405865206306680957301577227822801313562400261897932857868352109704199442227939526339834341265126791164617501550154695287932728869492459828881212191945235496074237744512499329167148648508759978915470528081235158337801846878151221766760066867967384224417886002447933390087188651197359227306550891095812070138049445816546111834635623690170484176300667814048099692771415298884977195740625758206069620828440491186130101393886170740338082831581861185661935786043047837925029220305345642806163806813554779036355124996153800387881251726289526615010126626560226193445696203261153691507829446893147873431644932605211636453982180489621609427346985586475872348992873322275912714171703057385044944748857747651365035409749261043482699776104001622047987310145560476067212605978339069854481113722597627579481759677181705329213698729519037491122638954167273271684832807203936565644345276372765753618785307774319621018726004510509672084876060058490139706234076407373726339621682715388746495989748857610931788603641571597677301906842618543795373802259348156388657416361356185755908621345251129323435706278582310604812399014785077643816090529575947966046913318359388296594554999291835237813170239236490863351961693453157195390235694138678892386550522325082823660984965613910706037974223337034275408866703777478774228037681844730809231536889535833796436092883888463309701881229548665742367262217896167128269392166721371952706701739701477800386050440601392008659143954525577482909226781617440727661066447795966565253130418072101949214452022989937052593844797173961723333231252355197405503691042613954339471098819636187306222319680906551340376915969769821095678216613584103581470970814966795404061889615329525784874466953284027424621054624478588326181941271010049059902722389119152500017449347630098206531207082886546134542210914856359115621184725763138483489607973926526235878995147753064742954351341148860379677513516379281363947628658160522723118068011555712523372953273443197788645952207424001636574596635898369452122275552640698106216666217008044769593108643149841293868306725825622301303477807527731283779538638329088622604871089166605285990399968447930400071655453399475158315294257109141891501337908832135885710450607848211372981413029640044212062552858078225080183273108378278853900962288232060053334299553030582939620708907454336907573377262890643509181949245072681028149155623154863065554053235664149443558635272485287747585734350518621118996979214131925838906861485536714576991672927878172506638546375162268275436318624348358155135452255175411363067619349745247253039690041478431390753237451133349880758253270763106386818707097983318421852120654588656576737775097113220951505823832635686581098152531022365586547860296875321752167187281651060667227906863275870081850090647617875456586037675760429393372586745009391258771655040808150939753054358170844316493135353858126060239149036816783092908344029958081397320925716370744213833612613506758097375606631484088564925455047060916016710409913314303294861013956390215682149510942310993259770299670726083654085496397528641981758528529946972780680074914615339573480251422538751636149373413303280389202054470553538520612727765036242722929620909321475552145146184729620078432934853992164119920274785703445534213295333675059546940394298989545711581463872810819652198751962724420229073443760579672248965674999397963928077203129526045180831171992935109323773656169645761461235426946099254273964509600208217784896973388433285173860649846563180747421842881272900926012953982103022533518033951154368501755350465864294694378513099629326952117719569418574205833282933794587371137708126621754904568692287513986297643154986512729093274002070908868413799005278862144584927119832039864118613006564622932876157938232259869632867090660018931465462108636925871568712148124213112669039476015284710791362463728054510810029212346822389009422612753421579316217119774988466139445791920981945210252774402367594234940502291413710773756300394833647942273177585084075636765055943885492752075172058135355477661519885302963893521959534041402330869087137076483957471140676896255644354099945947882533256740066532010724986383816730243829483923941057703499720388709669580606705646953824719981886417627527205688560858191631998017637310057519140993886569153147955270931447815682921304338640254909461131383109031089092864378428768890442317261342445570584303523319386969736038163789944159209583395277986585460199480435852536973157739014943408902684980451643716827703177022591078868746539363010475859262277349888537143854398601973462368489723552648908096474257604853268221131504704973268593443093346582657877379831902635456822122204325982595778607075966314619152128363033808546578302204106002395344451863044855019758164493660238270103918050368609444002722725364961908109354221175958675841465795491131148699922160516420947332983483541986622793703721556192477373504928908951081857750653026431813632610314971536940209465821810558686775132110229018223448816857216053152177925423669331550945833195614666449282978765060454486540354804662569937529760655628207751832001008778867073534698097528066869333270549163845041357105910588861030852668787338730685421006608037627801850000084988977571909649245434115399420516399565046952723679532411152972305506593431464637269737395352203625723909274927972868096082575056119079180594740497987582217229367396769896597689654402286036536433215913636754307896274473863158600040662849779228411412008342439224043599781405679900610894721999743119125767346477646220096719679164204361775108645136325855186379497027308220810314139394338227885247287662142984351058679340878353656112014126048845709462403629606035095386138016142926733392158337189374661808701308356021818096558542595203866219857412172285039093872570598952685359221352154523365074212138514481544827271690788723154104466271607779201715352436229641924101188439699899869093450805672621818150431622831607761404737486820915651737165550740631493023691634985390828255904812342788770744549789586626011991678002593547070336595441296336111100138686241713168433120677599436926514116399559092428016775264935112808357423804142526394150598732671191620476990818017750328321467927817983928606961485988178668356180797350352107486737979257601531224471230608598515542615397639633877427830483171964606131806555098606237286515777444218792573348948121731708257478542192396722171239516881372774868001469139883012284230932276655151456282760953597867227216855360786279240148881434263715852904098823882027643551768438019632533122374904527708464560675695819116446472528141758435952003178222119871231365687875407261769868244243008910141651097530523197000162639625981796136747716059415874517909129184602419700052580772924364467514715190000143913018076016696563654388734968425249837784513964662789974209259917967037756247584632999582515964710837462125638810024904598271739760753837641691576646178572039006986781286396614791580761306569633180972912227073366966685491931444956759336816526988591112605566456212806851891410007483025248125844585609345863173293377137849103181622259885867455924194118821122481085218016251606964165849114226769869032611355477033920338337094595225246263798872806497428112009794629741655715509738568741900078882409788334193615721091804560638022250677110135416968201394237075134264441668740683092318749877569675581680671562070290801044872775336000991195022713152212963617639359946433265764414827059990653885381307332828555000097940400301554686744420833311970175763913350406905854226747292897610215007381265071654495958118116153762935440365121004240446158756702986676081747644303511266952910253897807259341028331385556959489763362663089255857767832767615783994317181065073217419012467673514294999970777067215333849780919934819796625383390244393542108234875541450181353351625392300185440753650967371309457409978123949632454898911231102302906614700863240540509236916117977880187819589660651001532190861281730857819246940900513118604054425193017000105999015686700849583471269381258439604078289286218565945339151548952595979801184732376411218716866462033513361491750088633352488543971154243577412523701430793052733364947134644808085248164857593015389142059635803707459319612243879555699044339629907232324088244109800846880677499603188923397314437467429306635427951156974813756933709748967158557411535965070559299468303381381796346065703088143812948919035330375411298590931944673972550041896333535619316530922193789627448415309965199582528664917397497623182239714356938032135667330315518302033614107605871860510556656959044731543837440022226811309703853175888100239949399793649488538639651486855101955820318901943566009883253153354022670365421043683060889961898554401875210511676736271056113264972792102547831095069349275570671430557810660974829895403755582577139800042776635001258525999595014163641176616387320604537538130554843773930455074894791291775321321481615179587726970607396925463672351724837586701316303237254417481586583555981638800679948812151609320676992209429725614007069541052511723317223099814520281775868343931182109213414175296346551076259190529028381476130218774207795575570277408675601514454637019515576086339506027070718041532654190270870399933322446485122523260673952693838051050817982102267963628763189163763002164855983731579881947013475538343790704752063424903525813854699692404230409083728173252250699034447956506462527434660272824487454481221171664409268017044367842893659955811179308249617673563336502477687133199493071844708557310313926621654724030113676776304028495478084132694761423748317279061611894673912085548507922984236713439442228725306472555695038645793003908860270415244428883113298150924760330814326926481585699931879252917861140854993789757207068303555297958342697862276811807236948880905687414164936470995015797098558507588354445698341535926827477120873985511348595424592014568729518121036442133579401984842703337819619509610195474814133238098211020357556680237485650643753048845688804509235209779267435106068852369130335849154711432492368081960948384239995859852354572688744769087498932961418141288789982892027571405757490662598396303519685906688512508332298633332390832566468000234319718515678207317964361436780440286491523662524344310865841042092043486848843363534838073415961130144082013777818982002345240312032146272333245682557009404207044113990882885936609877369824897481822562819507190332360875773559092071392006140826976303432848648588306287091882141377739056019170253462986966527804985255635638769237129995891949434388624261241821574599363501434797536462657413881055545079524944967416447141431031288075230770194667227759740556828296628683381072331096420011042324275046599574998379124824565346939282474700319443431047612627370320532047919811905038779242957996686037473991097624704507499199300800494541164275120081696401895368326532756044260662000750176683944426446030613944367439255671988382160161592226402040979935517886069569497500374449767081044484992558052881117748323678945705800118410347915504860273749330616770555533067288845717984311616432365452578717613601418823793702014950137644734641399430337063598032249773303086571817725215731515161852637596989029054492603060335061180190485918396746910588153118688424935056778197607415400200853960694425539969817525051234827643865729100378577777359801337235914165659421600238651438658216989774244542670790511148578497750331525411910803692112260763958599208566958918365910320592673978889501671410099976052256409533306063491694039283911221779771163608315085103151868010105346224769933481479443829086078588922527385836873730791950791839919585110558780365339156214073190560395914469649707903022469371433656410218735085478426210622684399792506649693611930168003559266566226720134461835140603805964624789146642067252991635702118757379569150180629680010479737357081702321877998937328686531543017508979854982532466944959560141135332996439074781736703432011283699776372728940982767586289781550928019165922142604321152302619071354941902597063063749527318341285649618279721981848218201214626344327790949779972032403602855375162143022027120914279807683697107935049367528829069095399101890556722862858653668550820590307376179319456339086583008870620908657542987491462309316792489299876895885849686170343632308773092875009606077025087186824526470572829062503880556169492018589071012758508398568738182538434117871221879662314934736453879098111125107711556005384028073093492509960146863205819517983410300033638183241799193065954791708109017562147606867960616881790368541189284691164225587015057683068028307470738978217090925352590842508361231881951971887422615324047378650032462810902294650128635269365946630670535313350046956869226153575446094922627588335654907565587141434822087747656579863631400966965943553596381086736634907434429247588997117798675722332465577179878209072100595560982329391993525327197666402759463473925904665603092969195499422202883781891651393924435363441975360552638872474885457491555369711850837065542390595768484162215322351601409381204602696522624998788240800203160122095715994256105877716449525966899020074214838894486840164596759145162296561705885005724457219579937693014359046997586808278550588699978094526192158620274230995979519353595303407473533268992608173485757531230488487302032266228476706104893407913352090082295978709863288993934673000346925873187550799542476289982953765687089725795415039126351980164811968485430562259117035441957450897080889295228503101733987893936327471680974900101489760736066509310405904729671993806745289420946188967332146049104285833438325845935692681593736180872643891667910395294800563066359197488754143197021917254036110635792127024671078387482298153950706959011272441844306590579354367709257875973994969323899672691433629905349783622087086555683024021180406836305978000911607953768178106163241489410183325927132035347673575047241829904708719366337594235186528552771946228288979677433580562740386014276882980309085647875667923609985016912213638004030876586732158487364369945393187493584694521545172488267922895357597201901732648199538416106150193474790345212859854678107554068736704198732370602506538162072225029728014780089105753683398519050394921495515336696639798052744793412588552475397622312480861675069659632875702050128170422114664280038660876249525842778398698089719853682197341121249363356066860333458250065961586057666817927126978204908363429610649146732678043537437178016413060411873950167564868473800972326653388987992923637793835563850250603455564335029395311808773679605621006266524388798392141012034454924600592384386087915068128618576090672621579350155174086202180454360151542909516323155720375002956917160498846873990898741100987033997948247037511129318036304377454987717240953070715968786531198253461537100385266302731884703356657928089456761974153781721038185623115703489830827147778272832770176009854021041334612146971319784938573972081409402809252906123648032434823458624265461474604364409790842195851214964432548017621000111477684595544894400782625138286220131692549848135641256459596940083111422609391799365183856859979657121908991335843612870593011202160694714076513147536234841261730467207718691337156985640713230748179282114682133474401674746936319699784547933206968752889346536790042425747992251480813465316797086302883770042503605905937533314469573905451691867195289126864030201201340042006754820999468165838861998957834810503910365361178428430971394061048152535706929815583082726477569696174925727657044508239011277218465481724520674641314469261707436005751864785159574879777760517571540775654240449406501074871538273259072415126944627994647620725934318805374347885863889388928881139876761093150916053548087257222834659845267004174782238989208130400962308323782604929747842368281912143198728289123201829786714813668217914961347753179202630822010752361236986473479097734124938495503453190434571580722412791178342708331572367350414959348112176013227681910393171617763354743412511635316786124240320476969371099153699123560964295944443619188245695949701199642255528554977045212101099399646314290937119338309249503535674342577478378253866010538420084057631834794508145590209492218391239159468089043061083540072138514503181461899806305566944383982733837016525162426890767654036575946981738281492621203515029755767042889052657620447026081596127109790377076279400136722986798866098157302579273589079163895174299272086856405388146605810815607021223652788624494611056212347165271232234366807594168029281953995136502507792873037139501415887392839184899564811088633922866681484594589112903597291518977125453061212760491329828406728451006785912699341335207314435172942895571548254550047319017404105877404621558575388827605606119298019275762151539449366179193707597802249168420294952298221880657689674103504640833103809255844290382875441041053309243917972049299203915178690672258867131248103492565627353541373793190469196889860055141282926645776148174871726448814441950170524976909074119039479300873207779724235558125165816077666775364472814697145707917074535835883279791383561326085158898628520224573065210752211843244831885236406623702378059109381264056021666735273084729917483387124919143291765779617917501542433057419140853952532563418648461027873570481868577672745785937178940481763716432933453182679782614473222497136515891184424897988188747899677456617259488357493612373145633610932706262977623236425237241371012647949443641871569378860663110002998084779853094484314355324544504041472428766050121372345860864930347505413788813530556420877485760049760120988714001649550462102943500868385823111859727935969356620222900251275026164944527958260751782855466044208451528908356102885655170939777296812898012907532007774879714927960889537119449060059596401786484241619761435276359697711570829497201952703207668797020671954836870715167133146997453669966717449080400054306450209561495396579671974039793944668195719410124269791158835932479495489493077342782881146266920374903162442408080224579951281838668031959426148826454309343957407138399556303037597301676047730419531577780796170237903659915368529685875683852178783047059647250781377009239865421171337343444684538717622177418079592216783550873875247125764613793011513078666431460134801603115023423057512011441656587890970278647536792116934160545335673642195305458288054983681360189636865965494970542947823379772427737310049207553115140846809664433307760764366922528516296598310834982108021488988031859772972995238212741432082796206487151859620417059385599480315517541619640544328932572969351977501287990536720428094308304443763492885592145205857305293756569903312708993423507979696504113272958896575078297618785964988444605258086982592789069055180796756824367858599044095583205941537849819676460849115425892107064206825742932718716696778165610483568886887750667979653022445054511600667058867374103587324542207753929233792765802743305060454047318512239793302455004624004364380721389854162846915568635649195743827969308254637624764963001506875556366903525446031683713641501305869839170783185191591271020836969776413498678696499991956989415488817866229391524734987166455372659581370758675416271234503219020085020813753154885672271520528111859593812285015405332393423925072953940751815184097776910666905061604705923176643188931643435219954535300151198682582366030963431728002473893780914502028701520079800580294704931203406002792827319886484285154202134364425076445400506220366576556385518294968341580936771482817552516059395583955913358582630424805330338416824964238714512838133622465294870005199511996046730341905933322014516740707902423695051203948281416824751439014175447178762175569917552268312417148668154732064863085070100996011342645211679762664062628579927196973901527008317236561434872987145418098466549622142744664775943359293065718472367994931003537461818935750024591038071558119839351370154802508290354803790243787919392829396016444548794914805571141962253831834725057596503571361162010188015206559862442483153507843281755080111564882147372618074726492007824843100071800779612475337975249456763728738588059662694066117697817122619456313789767081297888823060170511277890560209163775576677790918071622311076861181793527856131868844045571984676842901501952054553470074666484151902949725285683483707403156452861253729302395933251339485644640756996748968406983784982203868370782563383759192054728779577271955249925930897928306546414573367871652253153695720419450569052548784009056631908296481587899792178040728611884266259888451893125162201658223979336498579356271950012422608243881032167157442791592441275612092624239187344839191785593306403489787159331699283923244176321807099756602789821609167927103666936701226215715460654979460424391221542296915140010822246200977866925587118070084968073848364184573854240498404030066237845158787471033226956509737246424429335978351682323876657514712299979819344142166564162461344567568157016493007759844776850670719773673473816196425215286710141331438356915196729775421438357645977290712325417198078535891605992791516724903917648419255738897449972571543783308909588406838195434772610816683512456824165945464620047380475224462298274836233945944167888114284854433384875937538469713498144937453307329261912546506450531215390907215971146180433234534660617659425299292887095787757385697083139424297493338875638865663390943636369127548693402007834006869163404065466373688329185300204565907025672344009016327073650497449903389918225348243171648194653125171348059908153006653101729547796666163756988920034111895953645168315141811793361790520433676485074904149444713736644717302486149594623212577161183960175716712419362991489324299626916619579953446867683387739153775339033353022649273337776074358209438712527538386808799151148123706582813704166725533200266420883720590032434132613478047574348684240837185500676372236833990609859859644034333658729289946302633207948176819042052347453005311187909234651054297307340615959830123163269941665896132413819004328886335641936048145348737060896213175680206163602243539607354714323087824157438259522204604384722393336571283163855212561573064728262824241305473282983462710560461906002411205312668141953670995483053838173317595158524797839391220409741466043837717563702704393807175167305386115564718327390897647928868753162216737645783196671083353024650574794742484808452600206455616662383624165888353208596900170929210548951399758361551546699573341447349536893229711734885304472071247394481710691823634454131028005849937568260322036424772342173628820550281990131147357929932984299320806431568931957684830978870513125843990722989124732349039094929518522464356244662763577684319864876981252561862645917888284956935699349109926485345523648621094828684285869877910878556039524760777480675247269016015267542990980610472188408918177020468676913689676513487114071691990627106120669803422396599026942856051380457502186187724833234843834929353722898045457605296361467022758699402045523351543667032992720819983793474352058570272239061668392226821726419451087091770512429496390843546502815884799057646072218367235650826642606209639245306782271485976431797065681853818341041804697014048740387974108991827881645763436097100610537163082807696799942472820279926088113930054311415007710978707161715015046461511106932060164203129768919299981281550267425327019989718865712665264001876536307488469928163393468508756651886729220028705277346200972765212757192055972988468496954979180993025090379701479356374080014150042921629880711463221019741987385114504478213691196662963823461273500509109147621846641603956367004909531506460343049046252940593758222231917206901781844913339270954779412760555569803934732916415828345515702585163292314678822561370064218002908630750674967063168429857940829734985785703645632026468688240481715742097739186234516090151858184061745732171382372708043167183903980818936300339804363023981931185047999579126342903290649716831823404848395959434823905239971118729081425381260182914977165181220339720955226538077700721600522488118242664304420356666739373718770150370208643097713639857513204004506689107673290934452649739257392006166916086450499614807578184428659209222958152566819306790589606089452846960518503389745613847338827790194332263177745436109353051988402332200933102171272167002073090210484952855791884561425322287621050217530766389431222893723457750583450413983177821933873201656216757942684782898016376220287826906721232449424825069330050653706744823973413955649228445524812403213461331371394523285914991526605904441595386825533561410152621772558503215329506811842492225576177750539917695859942943110148311085423714766091199434486642879131553773547982312401504597167290906444142538116542717278171237433986504898080838839419256756303686729181167274212847089552523249114802167226072592118926330784955831563973648108977914046277106585804457317276032106003393388147803998824150710058994902438291561884452204303953525758763788191986176077664180131800922557424010991207060481728073278936628922459234850617656626854480047253396228328757370046915521104609883718258995856273022705923229551577851967405771012342328200388252678949180812948735473760929027289815166775657157895043971511800627545648050809624552658429451918797591163278222801666334997447703296069275461251693796244951196844150544086640553373794353748416133407784263024504504751829736229003323542538545332892684110249857082916947670909942720208530120842525522624436688341877850217797144412902876587221175057822854621574927006544220678954319241513995953399250325254538231820148592908035211107884395910830447617438857035730048470080195954644093935612003587081904205457854766847266274879189393554255375502925812782197031400452413755376989335119134897798785550781542430021359202436085590413506663859336536169826180438252451095084522234888925766912598914045135744153380779398455525546600135106221520142015518066687525955159868517724654201161463356266568031163714593296270313280719796495038061585873346699989323580222130259355299150700485227243651651932164033960445547535022501805551315291479065585942401739155577871841700522422942113548527749364042422138843131185329814075866097620849037285042163114581263919364642962010404965779301352747812583017040562100038332718198703769568888645773715311809626985224227687224373014537915857294645211658403027992838915375048718143792477505054964780018799827400614207861494027309616879934929361183958187551117502883729187016726214949814569280339439678734220289994555192805830782379817767658594586712360461042042619930387163627019221204157293695169089964681563087692722473890561619458184915769196937046108556767361049118656544202260602788415892435400289235707273951456858848861263861024092869438962488594073449162507623527280408625710541534400216810113432369558029667817217691388436220058709947490031766353720029876049859096331846432542399578652639487500304521515248592123859733555852140602116256056052228873238002570996176539818211384089723863888278432145882418700801571867651872304913995032338117491752089735842079396254624496585686838684078447841065498747923563572131801112902927942848061178893021458418051429136784377091693294706027747779695066484937517114084408096593161332244500223330123296764303772074012905406838277192070831944195489629491225504896488938219776684741510290923474930944885183577821011772947595538364601697655256294113784394969172128107567873203251554600084023279019146737312058664821560615581314242499700391354828447594546060169655965256377179216745045188061166458267222499348134538882502969761428660733651092769932182058525599177570904865436107441189135757514171489962541668717509293864532734466594449128200900022426460407503412324517773737553407159876128454683715564690475488527155872485256936277065742192621093152877114332395131080897871361445227659352671887518735702326746676654525034405540668908458406547737384667588404394192793106380578860559802272826027449620902581787629602880468855639108734557438638056737330464541105186718486570504883413586266633448174560626659458624239386963539048649426265280835687294797553033686877095237980933594768567708882670910051653540793973781660533068438560135036006574711636644840074425538125566272684393869323609360617657376324187288421013925603325757807294000987797544116019687707281473650628267034417695444504959785826451572305434836836665804322227117124107939514296750453378621007928187836247893802850396823884349799812338677610268329563147768142629410860989547747926069321809924219075296051894271900552781606565207215912476922303450210153368403868729180171833637234453556235902040317212298575935230865513377969606497125319645561842728260821295258476938957105425310983792148987743492811843899832108656857710656948260189260062319550613682691791167271959913975288919535961258350428133630836789936163732853866382833737846123639872805951340793951354121966387411621030861617081975772707461809262543269834054978469507486105476344628602320942892791034863100605800523888164629015297375435494708825535911219589617674404361686575498223045369834465142942033547927482864524397733661338483026550469036526106406024564911308470721160582030952790042062490594777636342709551289927426161023515221085275340464890012591751471786070004897735267609281665125190264332529100931697544045026492603041424198912901579408282252613823210428726578975105712544029492925747982521104940981191714180248288956944024671106658648293445476063370118453160094396421839695215091591968980041832664557532360090842570190484068640322419989780175713322164802768043156213433003125211747009688130740050789205921719566091206698145251753537619603368241939316684491226793523272478431744322632364519019982741609333249609992862444395846257709869362435368312312727700140330514210961953913941369076693374842097825920429969152106902730293295554207532953229048037264701084488229158613223733560661119081236897364784138147968752959779927830772984836465268530212436834441605240886616004817514544520637280051283187581476983690187790898756320378546363183192196432281181445405767273375820220122356001718242926038961445618032280797609419836349355116244473614111181044539726744228375467414759060492888828115021992510595481204622725000925287098543015435129010589456952000931338171277521526752395356150601094359414066945087025983428691656182523716622795481609680164517202236161336500184276674198081596724493078427207591511186821179277643870162844392003061268226498091170843047357583230082281610112525826007058787625355071894890964287879107768448578172051972553886350705563515348557429446267650786211431264038253179347032745823059124648115549495900864161229911440016023488525370620173125196674131639074592931140203291019578203132819684815839692017099079155723668538046016178228355868642841940127747735294864338234759565353739766908686011571302073813793196528159896348050833560053638161042239025692861121772524080046821737169136929508272105052078401225691025812836929230821570170683945053926990504797561924790730336341045910074953223649765936086999759132850861774693128461350245815513720377427892211881798349953613066207384799401332899156843833341931580260806386991462959197637652212538352135665629419188250508067490767458396447180873042944164715609635544249058031527535727633896092566558417784191086197215951619594141188835569628474924698755419413735794401849350342468077789625374256684522154777449830694307351050044726565793090615908747129386826352227187011530041739512711991366175727383379389951321162379289679462394387428921684129897251150710838161604525982847682061512691642207437893009105213795250635877670103799413800645553033750824318423865855156658139502018694768495318668280925532958208916354612358900537976917287178043545081413364608045506753233739526451662829240524099045071504569274009728510421721215720051409079042096055208191654805901949251949359882429211714620795207735990195939919689569474091818504612056214940264846054063846910861391147419108260940197355318934102605930964907601357755667018795418855315336174360189252368448571235872652406609094172678477879543015000695295608902206953929579258786184530012589899135402271607234733831099508221187184067436833408516814733302585510340917353321439095640459404888145753386922574082548452850307756117403765550489016368215660431453288934242953456926303058777737323799940572801650107465135128861986374124943750248611776275567208778636093492315086001701618161861558779331690162314771188052721820226168348432576310262012559581121226566686715184752298812194647156069580782448513419241616735802364022270334188350317503089683382189225802789382292823368695729415671835438802168319647373746297234642840525766367957665869498754824541333858745601848152371821450042902524703066584733867290717373761797264392625477044138008934953471529610349346704880691793630998357013498109516958045666461358875229338205313220620584491211659680651124224312592709792016789943665095921407077857118024435923175797886962213016609997495769678733346273969845096501678424079409367208546030466227059446628500214647947137336447857585396087962849184643287566342434394480016069546555383320088007140816926741455793841177431167853897672905301315380150367171175534359339260587875490414389811405059412611361547543761138919987088892662674959855084654808716053358485431896538092230336879968459353294773456720129801996285729768023105079521230599014841440255900880736388823911586528485686077958286604955575864127632897366668102939538482089237800621751223724254152653260383450181130511294009556721775252348993044479886692064095054139563057547307796722721905460843647561918931671901184381745237488710451131457940218195213688256217392224880980392147881798084110263643615940984484574888166378996584618865220011472620491850470922900237176403045140023567444629794775267236983333988479277510143897959673767146055281365767575699621422169061536703015849102365286836363396570846503920968254682301167741194580500113340947550545596336963469051640897881161115933238447941094931344833853309221389233727653150434782923535848873740453578807837260635015789518511864090544492302884106210250701880800952237820751447617435296071975636147500066615186580500259474881427098359750805675567279965521872424560005432443523487416517590449971509211338692429413635089703411863051138939504025250208868020112822203054089980763599876493826271330753540695557794727509373737134154487282653449462934053397547009842906560195216056806545718577655457331107534266266953005905015989057088825678401579333866708738441043631103778569841137429419514536625422659808964697609431825526721856561671880850848460728770291343151805928089761769376807371106175261501212076638611137851049791590435345474695406979626284193344547315177004586237090116827008869019643883208755762922121015475015221432636822374304590049576906960361982458376495743533798250488214136529639303778680282999935763903666235530149085542089875279806550713780144546136924776320085853660530300839186990136244100491598401302073261196816007241824797740497805527335312671743703939763273166042132614464683870972411632035936050950964859867842168167036540075331186499324078528858317129106392174397546592984976015675454781800350299591725768447644731278586268489499477207242069180328797188731608250577611928440910426299940188317834406061721278168355875319732519284579025245522263230553146618078980178220186272966313004746289264757075018118076476136059820199311085223419511106101760292970587146369447634580845173999446051972515914122379191432742043538224749649873673762430734255380703661208119353926452475465446242572677387259276173611271398099729533839391388099856556000282183316481324746802111110945272126948468243329114110957446672696250338414482951794057856714055877399948032815988305000574065550670277620642236147357168991667436448162328573532268506765386330553965794970526404496344112793838601288271295738071950452636759740931956604952480521477797443540492345812945013632116163849520310298141590839534304096246140945321442945736220603718922464392817645461684299446413733401919673036808393059472457043930464695467680722535696974499664858139273940634888751380079565439928522656898550424922826573152226992065477754873114195151582001557277214523447752813390387107544355779539881324663385893723212443597479787722227050028163771818495699132362301773886026930657238124260381149045132148853279937072969079625499198848120771254249209125974527087899759365369622931666473809057783920436734516880827423096489589953261749164395083739445752376978551061124095734222543052424895446691190806148074111286750305365511973346710921009932633540044253953689935921921056227568050990809653766710726997025095035114309152324212517746902267699003869066280546963100577293854404769541941240058620229638951674455021890692488176905277518345845272907529043130751002823578550300244898101422762496097969375937761614972982091575359999022385292184670693026836307475860686883641538783660602179399172374389408018247302448287634012447180623960964175049622977230258103318038084712883477538833478116796822872161983060133676061129755821829936653519266336450196777948730058425970304900580885669111044444729007523154713967453940441394998540664888465414533021248557752460157528190264983678726702383486151873331411557424700972168598133895801386758584895827635867097993417167831517798746387984254341176995419824184113328414066519872116051371502403183127156779529589818632016706430138646279827899674215859152402510355383393816722499709741365242825982962958863842281736108584457220860656114224196986920405657307683169091531723388479729936062361451934408016717381981115001205775393584930808184544842517924708061014009340909425522285427369860670902887923193040012795627594195194002691126477468271162969585927508523623220302202295507120663335024428995464158321580551148034694628741963007603890929658528642722320313390554677340513287695338867253793343855331624737708124756378264525352551280749429476595101679018000305400433762522332325074598308985663049491674089166676975122765264754473837817675587947982241965271100218456813107727840457126248340467565233024338453404878609940057992079651357814448330540607379980931640409632212283190225516830091503870296152260338621473666078217839724783407464719305473244606483172912097676868669982513025361690686204978984030168304074492498965792764988287743073035165666350036398559331063457205575427852630593416130173662693077549555159610629109161108260752536139194154087015931570579817681670191922040706742808111586286205641727081864296432722717297935921002867934588933093543130335829432736506661523022316838270973734150280715480261615801394758456019444108482596553138688537909680956210050167773637992574540032337602910116626834374748117498466310246260947183049330723642750902096004948730999073049126718605886339069806694764613315831931916586037735245101065485610942042579026151378884869333607399958220724824847225719138525842737485658045788234141737855553395147621730555409095547893502567080183443108108296045570448855921350980375134510393129010260216301203111468080437995695601899936948961458029776120136551728878847555973049932116161589800893549491704988256294062481744270795629030187966974156562225667395247910253492199642694088941400236500969931822738224591266740580969669024485021787247093576429478639573048493273639425284286510496318258035871415555164278460152665301575928044623580331233795167733571391486013433901816050517921084393611688550298770598972430372170271975516013779597503911212606610736272277685136158330766149650946134143045389441701369819949298629871812531405369594970341611469782537455115698295537679459166702089087793791501211515135765580903554690582247605877211512372096569019765169386145777224386520369034390342021739449420732032557080508257084070798022358711966066353245695738640902117926886431347528572264633420727361425704222889749582261099113607749016964480626827755928791190797102435611348285695083720365454033437031787595578697690994070052286376474488214772970814846743013835839970473242457194916654354445514849140088127908607996340025826780813851808051434564558323731612590921889237913579433373559240993644595443130745746626145937955005998305448369498615138806108545028851012956485613141341109454935143434358135198746607805080331616289583428412996077996256200550995330747533420786254604061873334381397638850379896064304325273715101664508741207860627626203336239319641162916057770600872802385323689650666563939702674155641598264776953567986072972425175393902261565566401415018856760428838883921705788995543538030328759858777821739923002316969232155806170404543638447787464139051134978080982995883408337344236740706333459247062364128336921229040991627693698738415928564748650801737500404036044274140816849935111245930400420656160775380533536443903301267813410225904077325221757602882371745389291770220152328582906598416638846101564737779499505682760606972781383958155342413843877033534657025516155433965859924983569693463955126363725873264988417691604183618838257817014672414402778165541525448697259608060320793196213918881761383456263392858850100822015169106213380328786154594571634558634917621256878946749112892096131983329302525731319190289019009000952962469262065874814052195665770197118435333861642348288333968368272988147385664543097533269528109042602003924185797566904543310825963597230512347063553084499403640788608247810886689097035017511060764462161299563087365561825606227841775016067880432697023307027700860349853585046622949847527678182348180594543475383322689277286022404712702837615822823778280176320199325962752909411300548954645424426523450956767726287866328782119050439099116516138761707661750215075350905571463895198914034990805614731209669868542312967959573112668635012243665098698381269302992084670557112985625497258482504097820349752410258922177363850338572437777924448705691009115342445040867116059918493814367178300794667064133651526283561115461593897673048835997670539697733679359263502594568455888138089072632097741051024398408020131177746425332277702075466139718063532220647262063424912588092875715101797434405169274540340398582104654636286823088778848054610231753874960728359568216518049162369401145500014511773996470183919528904374033262526433241234212260840614297824761927445210301520026197154850517397315457319762461531807552705559214411189510500825220505974495125793932169475539968384855333993527536507781897762926158056177449551082350693774232370029249592898138479150674752841425012631838020200266172730967972314875123113794221201033786526732911162031838705656590038026568692105043414735026160542688981166794731450689667082648441493950827019925979230531717893115503775066816332929256094056955829099461281423275673830895706255074775382677581157463344654091379582023549466702383093563539507265556107578939898244887020359227301401039585779922062588563014903432898058465179177114625374654482334271553091124591280517767693582242628714045788896429675403802731923440981458360033767795390586053206228108499620403926164566294855922749035393323870814987331279317337472168680486991670573840712483074645921134105866128548618054311463338107380256082620673556783633079746294983287758679847680762559772438492890904171346010442673221954337116457020617321884849533533126383051512708635144638224327460306220769938698053861553566575306997576382197382981010515348602664653414841893266895555018880480182264832962847562119410522015064653815319239083177827563352477341395860173546135160280647951235937672592135492663228678251663665182653419281955705106109247567597509220495751703898149396834694390356305037292162964645512679113101829439644145864294789343648358725491711203746559406479819105734768156372468392750648460805111735171900549604014122442789029947128268539982255098741416922442962779758880485402708211548293304700431207703189979683575580750069211408598114607325001010193698944805085456475518941743616846567853025099820061723420337255404961792539100224575660535716384745929476521954910629914739582273930270146451940674989629551681572906862406727138774600312692621173697058636710224088905516046867200896853544523628443431378722356729314426296113274972351491971280192080399363021946427736750416217854169557958941473006466090393571333577411406398995656104001611485490509805432652072899018141259175588082037616030492799541808277833781879771267188509041055724664168673018407284072466701241850737921585569980305473828174366880930536946207091273435573311131786212746048773030239774726979179061095778130163076549672357896501537459513906456849325534321099377105030782262702925664965802027811474506447194797362466751837109804976630907810337548252341682051873157009642140792220582966152365148709841132048700351743517638020874662374588538205292041542149610876061219848064958026094757421346521066770398477160345167340781561118622149778674321374757811515848348297814243080645082051449029782700217744687357488317767106391191697419891963066134383547168576868480977665196830719520857862756101950463575605054899908907579956209184095558814087574335900179866272589609388617654241356831343781292547591181692079279710975459600351793932941670124173122813026942758690947010712001132144577294175492060494311022547625448862534779802017948638723434828691381475045183437879758693320508003754512787503280505247469146851902002765826202675327247223591750546277993096643397803043285420097721822474084048442422323475182405413834588919188828904471848289823955325250291784302581808529756434731865706547541229591200746089168758069310724073788394093559479791777504444922114858980948040247191484403166976769910765022551346424047910883470590160787058936585058907885255820094092202653418501414328298403590504252699196786990674045218006920860720913067181847789148495532276876755718096742591008820073954388809115558637384707713346072302127906528405444482556226956864817299842560743367465499274498039594741252439039300972647288000498325986952546216994821352490842078880544785964120345164735037402160822495167112073856361559166934872894077636301570842772583394162031490584620462819346105703763490355972780909141066858245916680586527111336955165477115611340822714246434555780146050656226493781717881714508189068695059847071409226676371800132026879880477373991452326558773876473514232292807060919885086170604530031358570779544716686905738873165164149512432838536279711683024283517578131667628957870031800209249266299648113308287668825702775291494951698017474630880400133745256207376466910293602037985208005852239074857965533113341328031777475850145280080675813566262521873885452137677444575906519219689595677074011609201476990580563387055455917574190405224969963910861759720722940967088054374884587380978900163077053391712020632994771974080742836844141655216271138021316644993040563902905002597603423933709955240843015441226994092091780273622786913889591004732108667362359264888790689009164362883095167631507399027120902557096258741510340254011774925946275823044258134955129032846173118231249914458704932525595198301633064254526610917696797441996173139959871261295666596900792548185329370450036078252409303887070460435532881982546228332403680573128870387072249207517458531500613236430015988900357030194692797297124815056897531733618455214147735422096329786364938053104137370726974996129155390493003717258851203486604052570570132092510907324939838483598679113431919703114532159895597583100318476026266591326225164244108759618586810687795089622004953892651817205519719109947412285882967118996506839389321996321778695673863484747410542817848123336526200859111764974556695798120000704413265842295520196539150155658656495132279956191664412075407540700122536848049511355915795371261763300228208823922237795302654760324383805582292557186622694447039196271817265911243600699296141230880504478977694766665090513044496680133362675873135957498818379278018243991808810536390041418708925600429455110034564734940900793332956435500235938366787376307360903450495486140139817103033301623420265881085112539686084668298294715862107185169706860704386502337006525933704439282184893491038876208536679928224328335485804777064429505410676954152836589282219863946183616433360853421536489128148815332748587539281506863641884202207522779394261438818864884647849449530988553212215723150916137665918370759980367424262970713892637975790081253286608238294972284873906401530088968382759969452247666623422506249609308781840124804253196556057724617608344813942629850073987411892190277089232908360780593072115018635786105317316503486026372828784977911265912060557276217929776455373870020914686206858416938567726109702613966189308737789366088892460865276682318141916843022813416404001357062619989840347588235527530834492915390680178801198631955548287004104182335057867741576287715754341598194784752265946086918183784975713529705478855620265208905895026716264561257895490329708928102409723138003703190536047830507746728125288239190555793133598298728431016516289298516502547455025851789661826282459137789120397599933287753152968353418078112523628386592459025518604678835295504791818569859516132090990438826358625928829179342519282637489067945686179956773833417061598395472063810830355678568952450833845127933707602287785438793520083397393006123139569013584490860027188827427748694835134712273731888933133660451707000609796659556357855139609033174297401104110795887541252062477216136935435080220216147678575208709657598422709754368628114033868103262063502313555029285179418330526759373078882264349470917648406443588972671109909917527110387933472163541517288879019019872233482451755033965338490103499726187506830928470501735710844211653377858350555437570503140360950609156090641089140768360975757079596776349947798290858024091253544591450708500136410801056473057670965310040459126941626578885322343983186552464528978680058650364097003733248789585112947787726402060230593287801805677709377078241187905585281551826708983187726247778374757919319599552047342982153993145954388948286407797633774418850256571469108576712933743406148700744132197958464349418328711499273987749518353367469255289677546458964718545114637701550102853730354439087459194095308217381179298940134365142736273223343574257645544157373076597071099123908345947197537852536039772632086314300436190187629375707972522326704624100161687023525796052662071731533735831125066974880702267311923447490216836138879714167870886676654700926867038906505882836335235528755235296291690146870980503169891210513481368296358006962385763054911023255137432526490104855179754585978455662816331616182031063655638876199022571155236504495500326025077996493589289001256472724426919792691623538636639452458148827277733754352032624670538869455307015557100319686997070544658276372994973989456038158520938321542919652359927752093840560091813788635737441458255480197980779144645031524820702384688488552262187944595147100165290898151092312905811414781018394162555404040498364661809627672788386295239059123094883166705739522150282816258753318420142375984455894824570957609153640709917009003988222896704609045269988127310631653576268756882594820701631838340555930846088941142438797638475434659188294801218737219515402728042485683517567906340616183979668154510225988471452529553991079558130120518189412162487593201837979513268177199342842014864910078378945590356853646034844601904392962696217164555541129349207242358815430657819457486805738738758997872434345581256060892483029335276003366861945752458820006145052126781087876252804802119469282928349936746377902083939448222775859171557471570291438371612863935824166986197272732851981182629182267833534454662060505192446006062053805954611920811952598638185815514671783546250447728968974662234799463587061919697026328122954997976775398188249072149689774700248173281101053748003440129438003033893193280062280219515987569683437446320812307139532233619254959716035325876545130679281194342402435439597654346315953844200010871754914475822366837146053716311488004188156936758455837244158267130256096134869999887609380009363152685511621286309640117122452235846236633706246159641059823965465429681621015073346009218804066691248926878042278595544109693278082195959291042652447351055165637889097823764972988688749883640478783966322289923619859368374525941351994247481444329505345222523083207351220273111197135309745969833697412211546034689566549160554180102150867593021479341121423938850580736201582946501552535845687690257853931846384682707214334584631265468819083350490369168875808309733159571207589208938519228851456173534878307098037151142639415017496221008177385086563084278394055998009642302666958175360722055217352305538342007601384495781376040560665964859436400704614495346865063416227365063618692098330417077562784077888584271965948366003047762516269333011238683012935278003529449797017999784368551968023643007850597980377129301546544080570868456969367547604291679700021085288297742449135091307524879998895408182802714685387491989225939536407865139598581242890083604290490406711589019215381161928697698663479078669326818601531634680260646848730019452277106182696467386351565458218764680066716259500772082943929135973966647503031737004776911498676362258988580111301965801468835262691960157057570100401205347669175060151264646965911594986209091995434112804406278920745344903327602923321958167274287478280123900326399937600904628206127417045742559033764912639086789077401978857550044645786399355223474265672685401937690126607494293433663243690277954869925885080531788456012028636403504272379332258102862524909528689112849707727955542225715500258408914019897436811212586480617967331504362320985250847264134774820277198561000341869908932119150408344915997418572251945026603875382468299365711411877640240129789043493534075192840566988166968035401229529389231904908073744071192242677500885891274340295273693133374740792016344447326936690721040422391394693303326878490717266671326724368806741671738167688693262243356355492629210733998454169596569276477910686379563838717050132237589948364674989442617430029968450917908387049135234334463843380594248164080280393225663877245250653776434286787041779062206387294473433662219158702582273473025465724960788580092600089930846608805371176106985494667091944788194282558782744247648104142822979560772093627787954529253722530090481577937355050012427477467556321733729173126271365233079911881241839161184470215313537152936185094018110777535394094206857258822190781450010864886480690457852242178625661032757778110311012840172428924716450219653931931333422824496178574790568864043600808311706410538047983985302671836419535351334471899038954036773102955349175700919503250149855811112882725616445112407902414778657511460906827557286422307046385724083472671631779606434858504103037739211066761985409689840559351808891193562900096653247890078099981999363707006471902488363022822746903190998241341166989831743271577755949056074412968656800153684811221362377000399436547971299374364776307810481869309888595779678629489951873289057860161834637883980622392580457469035564726324155891966319953133027743520279536902859581606355107479501023626171121019299315759462634526814177250670950625057863425617073759278967073989348181721734521622519037935825318578136184930538859200499198656718705233272739174834800394341954189762006917671931389345398596051747843373233566318280588922968935334138658702315566322900337898675834231733764565824771112919069654475278923541335406764702680170475210397297842987977938823946247492527711850808665515537540934073546368784491881834334676764888590807994400392377877989844254953346643419824967848477383239554332110057886760822777624959143377909222470377653480645995022547869960546827133977183476068973229007524717190496843563808675392145881081429674782689674165407025123112733650180543064574916950755310852403961042254822046474153295572017947119158368180914518881198251507504724984788798064771249198919574095011737444027508809875379263251392344586045921027054463145258359950855283430492472178998103974604434463892073411900480716177705918155732560817184505585674475533963474546590688589383070859242954495908269869150942500584238189818123127847423970169900842698771251316821569969793563147451014129364038314362685276413375051923589927070981069988132281939872754423612106400101111064216625090434054676845513878475686607825713057204386174990773573874392225769949261676158138335581664940980443539053008866771439030974535948504666956688973112029199829806744203104351459791914863128758898677286627200649143481231232806161979989137753387336938930378971431228425749912832982739685614190747796308178713574026437964455006059188453065041336923795371273544756871698622206739937399665633554452141965902994908656962612892267321237976648980001250437784051138819196322208178457998576665265328685404989741257229925989390195722342534603759371013295787144077946594833857114259103852073843832162269895203062598421504690983546141133505995607978740872815039260980274887314380177979622537845165103794611336260056954766261293892603313417033573631348408501533893918107147545084106532428895366356279742033870812669882788448543277685930461927247129248830072305654028607862493362912938246831947808757497073847034543559451328542979033514967549879718258876396125179265687804629287998102828957361034351686686421840893099968110698009347287910486486599384980959587782236706849046456486122459908848975079855855046372065051716508557441606743931968213834243675247260843046289569306526275014774900533418193000743368215991622106789540756169611401126878813905561026501166253172629731822906611432362903268655536983571644363347154752938904718801229283209426310783335398779924454374459526144298642911961059808304986069336229573627591853230272391703479121800853527174736647616336770658923324076413023901599967512126222308917574895092045630681809674688639640199667512474672586215005769529514364157376445656236838978825845299013775022168741747352226197319220269701349163366688405661207611677338913963223327546922332705761215569444217512491718820306459463260433925644414508703555129201425710073925219813720759790620082348787359103258883148771667217694591710368126034762203752295123361324382033888005619407063944883990695078284205780889024123258657058392264604663980663638030628063614448178780548574426374963401460288383850364472142119433761738704534183730218550311031905449819810432505182496963458213625002349996663355100917550561404201316346844542517753068355902392573709157655004634249773977744428959608110543708182483850823143030004545239203703150544154966134258222105425685789365966857365838941214774928227720108458554988103891283673610224618588524362319386308080958849668744179651888702016363977378331002957697081529534649930678625306875759903729649315635998801601623026366747005050785488394904564713833016470121227427708755013644993786552052903451833721409082554692029864648464413940826171095213898479364857447479462563955700182990756970908557027918275046293489820086150792697796682323570795706923573150648274984713821250526060976973536813415231780929596945166446196428218460431928258151515608872617357520192054319263264200079197732880402895135044696990498305694367507987898204916817866028318931322912584370836859351817119468966266202226875569884417453838580958207722836850824768090271231529017218755768340689841258116867003497448549406389838666718825229321494825961631117595048586658197059986186741783908969960011418186006486457268137615730561013897524249101191580748113326979273860543187377562765314399994024615465069874787367583086733798421428418749059717457492915411548997187096192699948270767859709903854298905187221533214178811545199306247430172740963687687034978484638609372713166740268435247538534053799565608734497624181932273194944775245599850395151747579882088135775635725790518417248247711267626351633857781891522098840317678217434448465395231640038772880364600434367596981293141957586132102508170410332199623042429335967933703862957720656717865857958029521486439080739866445145993198163634056097113201261025875039227487766625026450140549367657472306882725772854611238359948563163138390497364546148810959531728519716946787090776046322637762094715806672175343336985971731594411933201341372865117931020797095794807305598998832700037951360874117993733593332037480395913828790805245915960098838445485165965817945098010817079573484892992302128294779931257426487205733209330241034601742965103526101768343571694980221606749377989796513553960556636926789694393381021883665865834162291708052530166741582409164173046109407435129675643624914801178378365955214336418127709682126537177253275329793395011170225657378698200605505820518802439413027026318440328747226829224041417514479296889754080173213070467729598152231021176092359159441875622283114105927360590232256307164893842120646262005292378263242134875671085615168690134576255075785472570289670911327218623105670466288550624158212236489367027605823077233871599597651951551497779642094746569023919250902884925018493798206838837694750625579226729256209146675518245313466581071184438006794762777979790664854853893557829922526795792698198404472059077104522557044408332578869432006541702922333399823649253466641942072118688870994348954021032453776369559603244897860686359825471489971198107531962186923703765648306699649179452071321435581802431643215714065699327767552354144365461218910744675103266699807646460225704041135290794299871036325985685205067733682789445052357644891214300542087318169591021253315594076571193072568697920746467729935148276108325219784696331856369323330108650978698436384486020550248683487163391551249724938127532590006086586500044482578607991817996730006467833255221535233443292836550966231079414537956944889502763501623538346184963866521483607697991600175993381733485804864615550531153043125524297619379651825766780279071290038904655469884172765518845120680641058346848385348770143517969343957291212355649566776805135636737201811060796116200772218700618823763394055409448593122043889246693667949704161636573175329776630970241967745193401033870943398302791112268405812527248358769012569367075328919147292498188752100401029631979232324597905779193622498841976334623235682303545371698199385121341974157172019424618968787982123028626923301402471405856868344184911505137129521507943982082756671028438610947081771451007876432608792503721059303739237079140922497444911483666750168664710112913568722181915642649659200492706838552019009832907376604377479535299699847850382240516851208633375769506500624939636098878646853370151972436331804117088915390975919475305162652851276470019782034136629090604167494701669530050666797468767092363468001311235962575913786287570254780283295892575230484695878752596467009725020555817038018470716646348631075238175190136739627016663262403504470249948618009839935261441920204115106217628926104545328741097176867658705026721766530534159037386106659789975872417704464769591899634105577668841230100425329930222216537538750552859556865759314911688534143445530744050725061727429259271887706041236127577012328916566940340383554920282712087564553510081403695061315833628809646216191094061021830932028970807989675189607079194989782113048658351764959054339250542327585991119663207013388875067192173441145186171671869916288863254127229491398293402518113259534899066706236140380686733259251815047812249440374115613886816651505488647233495274059374468072085061619141492974019960555222683541784683844179111307885348689790437705667691397204104402703542923567316039494333892085110556823552383210173401756663527301782970845683089452917782940184726932902870996351296008437413636098449803604491993042563470275705488476927820800541571382246954552524070991668180757638934979344668691368534972602155036843650610663937269515143041732496127392197675937659078551532814617166310814332276990575963890168607647331958639384543796545977164003172634071231700951625566411520155525509616592242089680711614300930854227092720998702802615838243381805353712558769377618313869305391753924500109790269907843586359077631743196493805993879738911638747409076595663389968602654417961716913737583630281415838247955756021333750811707750235840171603767447969096740342692425431991167123421600693082179117860883423399292956054992181000434397739064352821769396575049523697665251150443783843859757233490129689275961924745869473626622094058020777280434614917647693648589424074455149904390463103969719812064646274629624292878796368531016453592848068069107300474518685339561441656884484700893671823590702425630013154390197075676494152608191516815054580304665471902948784736506910141870959714565322682673152006925700451977809588002003721944244015373819352459032217143564143353000285352666463857939311276533768271417932511109189596205704512833521630099549532521594667575563276759877586491752992099102610105116022641849068732581305874674187126169821825391941280577425327120829679740722444000849674601625853942063565295892539132164155832387338987042740351371537835509326480838524314508529647052121959150827785067325969210202986830019721050817818158689075924238676211152656250185991813729647082256777056496386406968971653803625246055069354060247430516617190116750288975812402945988463354580989364646827254371660248193994210091287416319113588203316717833255818333801458603397204116077556301685908622772760079397076494377639080919284823887629113001540170697661097042228919636039902763377557074806631222199187368211940796696168416317457378811684199077013701486442427519283856199151458268101162797221708580793973987033373979054296106089916045487433781991741248967234078058086549254319363605255269381009986069504682691989755307184926638435044988478022087870975878617467222393038561937035330976385994716724829729146538889831695724516468593035364717786156809222792159093113761107693507035704281472427349931854297238258073243335273129336887424505976818717574378605036071381132964206975503720323770204459490416829937281599994513277797026440045860416448399056303294714728221695214159507440480070200971260767040943419483585290022599594430655891192952364304814223652787762906572855910525756562107788511975169341808953367699678000511738874638270172333837792923460560937593630404872729097661827804281223022810734320825692059586196432471551670201186919191511083584315092848533664601844423009811390583309010865543695369017106101499342994669078979442749123248810668223078551634875277918733751657412319159465164212801222232203161338965412908343020984631833143525247789052638867878996492538833312725928840154580612629084606073718610518202210751606490498258950007430543150931850696176596658738670989518199564829140205582713595979804558537328918645248318174486390522897546757441018058448969838149129004090217134034610435632828575597408571708796188757073869031444252455137674826913484022389220429907863410260831051535199104051872859332169330528075043365970370342537701213370994850805452145421862732166594036799470975236290354055986549576737940243296057325263372629214789943236633279299344438681142504454829624703666515351736169869259431160929497474982841246646382381158022815181885658411802115457836421743646036712893221394758014992459665087693097518758937012659274751536293830710725355538477857365257829945635085517327866914686914770455356789152141517763701517980467862470931626735177443907897446571165780519059107296406932860562029481488597463402989329882192612942680137461556356547841968250209565529349910840974513561532401055560441359121972301585558619109678366988050528867646515185251667860415927312595509187508342029665014857326624098746541175403836932781020946518797158322597476974983689776182444035131399949928523602781349657494978804796317135817957254229894327255413962179557562153730742453545664554551117236807840067115687753644133027578874071001258225072912312763316829553184525536314910056929662031422156069165208154210617903391615429494884461386775936813715487427586003166468309647821560213456651527076047032483971376727465999001033845445382410646255937262476378227745398070378137138612845519418826478049494065598684018032078671201163933336915172169572314622475340033201477208615284594063762864636632572722517160646723555378273538700440588899747289902865130122766611365229467728109484935283079815354190661962484508356410181711469901863589849041283174953788198851812355055079945280128423857624833315305226382783717802376232865105744725942205334028621238172621731109457225566957055136817161232894727506561133411865015924652661498085700805275551437394741128923961259138559228737895286284110982538390781287591115783716731988081294053334375944384071091853881937141136259624803178613283130271789124833377118046329149889529996260856981703670900423460566793795190720448920286533379878915041852196873718928316680942050703142060441726406020746073556140881356269004905510929450386039062717722200008892336523510619807429452919773884178574506720643794118654273233951641365708369359239545534089135535632370278140991166320333827081778959448300456018607838102661750488009348486142762656536563632524448896294546686533897689516104010523158941475005152474601387080353960773669602863173106316993363051839721046895985152589166310759146019232074257324709580209309133319523156928406977029325359643616185988880862011880461646756941655300845741723747534045601375150048351259696998504016063155930480292226939922930101222604803438255256769096342112928474058437452216050958968023355455360305180093332464230483908915311947890217095855793324818967867414121505789943802695586877671827613851601423816074603593786801302632339966494006009592126346662018357090210309358547041717766763849316418203961380159014775209788725362731662608802606565674562587065820278107954312748817334392944909420216171356889590807290737707507290468485726660039813151400417518719992244179551238677231359888705906017652718367482192641350954657259117059982075338795603530537327561556512541889965079233940442067246645850323278079107623058751720122150641262926202946457637995404453856096773546655829729926809963916644816590117599615023080625816953278425672684529983724099887332460867255290539129159733765341369048071820536168937529401272415051960056672245452890412646286807466332902018142587852582590851147960137455728030881430022641707500042403167831186016902365393588947490062002473639312756632241373506737605180922180125484287566047123531809088585453370507930295713622062649743137893372495516934802109806103833173066078746636222052624122473931398678046702068831959208555107978563574405423194157376894690887886176103783345914998494475145538168967235669507872694397949371356614636074098527619856347952255533366064790161169449079995978601815327700108011026614813390852538340656072505399709756290392363694455939477114205077695862002640853660379929588324262241473844989021727703770315581503565117425957815066772220894538208327265830034581125384661037589215483611672451801836349930071099162238319427017838968513785545607814905039710596442086278744340664057418116815761035746482002417691599990747489330787646472684025419916064441762814667157792323366204141431980822182361835486926436321988011499798383065945412781451747311494767109969721186405262336150089582169680928121775082648765131846958353434496904510311234841280573414276843641612237137992415362309007171821625440941435693689203108743576748097250595084455037645901403976166989621790400680183261946142402293640746325412836910702887444750700903138411706743179614724878336688211293046364683624868289902104366475560770326054273170541743281465633427251804575845382774554891015200806588695572686306670711152434546249296452400587531109726267089977036116599208297199535982377464302929790352754365784981909791478727891952567998009331667031429414245992568970894324686437156210630157987397015387014222361237616141600786954415264778301975716967074150252372866106849551043841969669018307968238676553178821098831784229150152432552920708947484194379746009495823783889380388179572562855400455135831388070209952020966914247102923287539962235231306461342824386131853952470321269633960528102721763252920106445473428205154319440103825002577027673868507563634023969614386768804228049971731684536529718740441312713830415576964932292247657270872621005645162501717009156407588308383644612500274003584399502622700920183065384880624529227958309046511623838161082542547029827797799254925454854378442548834621780815526476529106458406763392022624839800924330462007196492341038086839458173722413763336957442138401779674211924482964609570567832466943908553032849134253909232180147552468458112373581155094386588546300988776980346637311674181043388482253137558284731749666670312536118712885903063150901263287466807018879305425287512094975327907404709970830205103560701905324671280662954124068697342390504642583048264274538136519745234403294608134478583092968464995223541851336712628951766386413415745551519407114470966356512444093091557019438558836343857160210070318650385668950819827121380029788994883879127367556066510339411386942920111193131990801634064122003781537055557715816877275875937249798240039028729260690481823827368022744942585150410511878504801748914055161882598886495995336235137991851968066463736048843778676445463133112995724244938126535609984091690050238922967386314933709045891089336860743900055778870626254014261459412727998374156850534756611812523265285724068714087667021778396736214110156207328825213278031756824292366381021530922764899230266384160006618383311371957598731597759555033119832350574850750980761477524417639950514080558048730568690319321078557975170501150216004019891774028192609620213637681883442648236076583882021499577708767157343705562900184529112512882244154478027125932685921013839493170113331323054777714799601597787508989675319960179279203199023078888210269206158715719704701785725529878502590272147262403679533745450707509175669045862489594854494629147591565865218344153958874178834825525868118999885050262112378991062725303799203710888380151021502779565054747478968755602935104529251552934257356416767369181816818309670247500131019510618809779632557601486017621856813101766599732917068654255422790148120586265469517295966132050140290819805826959593022199808422808480383902911762242256533919265009668035403361288881870533383051476424434980053578523646793310290700356382173185514970484685776756433843438366597829221967043215406441442132472193295933430079573638567270641276599939845144451604069453309195692046204516824900460108180640223401236483112161430144432998771492180421656279557996791807926564108126536631039813695138106434215044726833788704505324414732028311054721795680684972201613856079122589711253281303870709387009186887545731634522700603886483198407607919797431930887384005916151756263494902811183206850853943143294207652980762111773186877270709415607237455411903712552270343267808016131169418689976649939652404784182866705293726582854528547807536352298885981155967117100369180394086083783006007556863033091445401091725263433563541872512473063240377336241750760790472968102404090040196529712329983777175577014489567102904904454714909903825314959886127749441212674135150272478124592995841905160058873619648257607168717473163165242232497034667713385594001057546691065446001882171907840849959388990125783482567938234308876710715930340439810544426704602154036498947151114940563925403296572653050029544031597338108174630305043041771522905808365011704916081588598928943850339442382723292638238382706641288116103655696746155684301124540892176169773607595499569876639270311760575156328159891715347214936825347751465858998576660964847229911315620812119333379024368886441313739664067420661276651377951923754007534821148607354431718053202339124965406116994717920327641182248850450793676866939160640650428281915686146070368382372831077881469790380246056532111955672776289977939003428980793894869992369838919603660577810794852620674409967931817488604538068967210410597430198280767623351669165846933486262674763658784399783587148104439190723696242186712255507507057000374452323862607031615124199887355806643079518421977690291013199451192366405258452024872178120828244157111068593315089021423233824412827286694362471328411031090462063943000893907007281369517717470814081620176565413366457459395032888318271839495849896325489871813260353789735298728320749145579547164161591757949910372423105480449458436824404573044248259357844168642759868593528163242280431110436195922874090279910321947334125191615640647253422918948624489525231811176967844127264551440065861329350377074126629594669841380906610808469326852663560282951840786183362030091958015372699607533371337648701452986685679627184692507827936702132110841165250852019652494349656072671745248807333323254619201675874172094567747486358218851621908680068543893308977012607101678561425470822252712609122533215871003044532709347924003261906742832791002625109442347608032870822444944903737136943378783277167786347166641946627089327147608982609632007616275014100087894537863794307370519630313290772852635247728905201610423663126817144907865072267167069020944352202739766677604878851886533112034557143914955713740560368037060027965658361209614494946670634987256228957408660594717403190033955158377153553001822684369909058416121092422897247923512208927107983231075987151093397156330347045138523263645949292198112072732590392887701017504023532539102546944550904956075536083385132972946681233430519246476018514299708401532357339079725468076464178030369860529727633338810716996625630170871342896032982957946603577723889457803263905025541893533152293694625802910371610827810876175385489729783056308307925458562150421728355941664276019917190726037648163301088759320424565772656353326004958843030833708662867501290896219387177139043033219108844830513222966687368126244109815979247470761662977842065892940529255486388639223955631636002552853677073320509130934660448198244052236646919149105490707452676530137256908976656134637521942963081890683132990331610280844680985397970444211628712702488615288129038591424986272837468794819658846700560614969251894705741204898337527288165629602687328975528194917720196994894733857035212516448311426533901811076906386965140478728731875127414795730346034386896462269532482247523879999587652743316425768260846651722105369766387317739341993648109076195172139454647912284008887373470282094715913541309765919808518180977154497341217820435723463170808253659596835848866763021178103897335035650700173147664685483113331236965829974919616582957163133358339090630737038116218420352299969822324489462271458314936551162658644355654556883476254112171372513428666807956165590348155966017669368571960728412203378974420961796900130439000351227829921265121717302115968115149574491821559502151421082269534213443770054999787810812080404021638278809340330532092141084185362725309692698116086949867928586901740982284788820536959435849273399100340635204608085799948507486277020397404330091484329505293971062542672638535048513821092632334409361207479928210906071494386903807677137944462697447885761439288375902869070114957590523290204746472135815786485659305178388127462056414945907210025815939141061227287023047126275094365195866633472247033551832921934353712419643856081133628987510670786334491794421834543235995559233400043961550405449175214044802604168207637445876895905103687396659784284350258833758387489372806902992125035656864480770953592492215944734951593149251073893097028864615687656925857994147960578821301683517958357649893305334806280246310171532960751716046338719338912652362972510204202349216402808491845441614893317915331233009131722693663952019858342016455042553919304105139748101830882577338166634785406932227548949691721280061562978997582762949452056635037973620854007144760108422278032038952194418553201400069563837745894442651553779216481812809347731273009949660477937366746116371960597094185113999137372431176408526108601300719087953982373684706112959843480242478737972233521089763806327532364354352565909258044485000933417709544030613402368049616173688077592635910208021576698600048654553827162922816850553322323083537194091365478834307268087726337314092633527665206881797187074089558214337463764721606067043232860620803139511429299209135569975381462136465430156157102773191966724603847887290643018611035519057094669731779786023503758753773204835926364130156157160005791196437597356102361816710803574841352301946096789681299990892992394480417626453750399165453592566788796742091519046436444922278421845211950744809536583227633373899078370194453314948333153135647951970917891782724303876631952897325195545139464113629681206575361584940323741028793556073400429990251611335195418158968254309760477313637911253047775921552916980076087122100299447232317071554089519074623983845103262779384946454511799305696939438795647593163386632031454953775861071609185550619411655683127576124170947526100089351337623909658321372169355628790706154143830407989266269179462742815827607949749308438820887784033672096493765216537704188806569574345280825764597924443444037350121380288977569907197328576737353301914777617279623231066052877005433914803462920264507965607992433731683018230645324053617485844203019855620712751225732671834318663834865575077979756649890365320315694417360620600793480980416600112783676628140075799141976199023308103982378983636494162122576009688095543155916333639888021184612496769451051244569095706185219473126525891428945390167774987922070068485569547687530389707680248054171996637509989167859515683011960045575085351506079396015563066838521972070320145264611525339599725522175963765603116257453678513169415455193170217188380372347547603696380037236203447879446030951563980651338091272371179187144736406537585814826288047571231031693670864281700969326898968790168635029550110013696738888950699153390890212128892334139950637829638788344114476889144267284396141389902315211011057462777809960235320053860042349528754163616380319556240764450965085860502909015225845945765296735943417056202480666312833658785716541839833167088679517794612015951821061337280817377735977491489962382628297773040104870824467935577286390615546096345182818979708416243059390337201442078618494958430835993485744190312383163398917836139282765768439063707137980135785938500090250084309446443351823755977068207538882969586800966100805228843213441749004212931873531273892282663943480418248812265240421106207617851845025708128600068734965393564790520277249731337838727224063925302161899093535670966911846732146302664038380235533565180038151198752522955643301365621431973611287038202810695736639691753586895345853750626706020977174246973215475475122325664320115681663261420093688012946265362207672246036982344422102842208001493209568269505391578566577142599860271777839336927479337034336787434967641759159253438145367529153857089074900106600276501256348863494436448325220191186004582736179843748812625114388404244208982677294259576889206338063595597077226351173445357218982241798422495423102583256726525519280254668578289038985963124562484419623802844715068193345120178775634684327965493645735679402992641018075141316853207400926034680267531317647527652550112261119847368484261751423949076311924545408301255422933625340713204454782646234007553220359128465853771974813697232968051705365141063275997840462833865034628103582263682416891036421775468412491405411077077740135514900517057762001663127313432096235444131828716804116227303072872631336171449288404929578291140071091460505030323046674650633102617580835749954417335379827092267717093511244613362952088512479618478065502523669483295866891595832460085959829450264593461202996265658141478697947009053543172026662288700757485936583544462010703641387131682873582031053614552143413981481619987258163931370400252401237050203365505622615696127027260556298411557222344984437112211538174629216148478201184244298004825515756247856986908468999425706250239062122083224756719171982814650652951187607063780968813849234351693657228220740965671606054063785793930524619420319420849492138400182902970319925158894146670394140227483882063255170340799919635971159916403206523844500692642503881425694083746011011734433863718006261325175208839775620396618502218259367764990756747923223841914471612451174546651394937760683910493129382120945877578427814884877332904119884602660241574278950745143224574745663522954899472870467748531389149291827826153269820618573980208100060708108713366722258366386267615500652065243257857202321831273809803910997515466127024882017226205447348216707255914741836453189944230085515420620286975705836485791194215220306935385692134930290652783561964573024199511209726595229252310087624315919165188308012148378148912505524282981859046061010357821940979171139743302085924298820613140931787369208338375129691437595968834289621715464281409844492714318983911505612622578599783370539773415240942945511193357031703901642712202332042559334391716357538388729618900267973861225651386174929989881535136387489985544509390797316596769938980883981386442411431887610848016095168688150160911063010701627757143584826320906614234340000062782643335611266856237552588576066173222464798137345664385793682580639417852185988268112239011650891841888932068557066598210352923890825155612535652747848150414894787486839806422937498782245925081647725154174823058259157923475598236540237659491554260544522118880945531535283548339123693282190745619495905884308637943793485731611149430449189053568626795661818009866671564798928244749405340167548665902096928000124156752840434396605312776703116328221833608451379109409483033331322681387247611605149702398034237020416853161346414566895426762535514523080137049252436058385306541441636195086783923769189937973261466749688111551652081084926025488896754600289031376859483900799917206651570064093033676126952228441498488403632129710272722167933883710598494147775589440330058854085783590853834632832894211716570396923551339048190360758918529875625164598374997836973900106197110049455414140493237540234106937613741581627547493567054577555134732831933904520385017689050800748218901037542351993263289582043028980969320824511243922619035034563747764717712194992079761290383205923692411745245318593997581949561611489593398916671739499123931483204776378184683799866436332546172486198878065274271060918430783651574281386017154282946847796487381581185046582833963111645842344035240036962112287682114509621581402370426084766206078616048054599885408764879775401918471709787958465483541362356468943021260623471180381447767945668626108265153597556055125545770310502512928375066422791299499168915214640209993352118105850936863086149674993176614418556648277706387794052558707214550312753750999653997604569723181691344690560032486134874019191116114366577907271631109186321915663370508476654125879970823433533481847691203525195797055040658097300027830026237699156114845360185339404103005047890946870997772444676984458575960750401881681916978159995614851048796577224085099528508862598475421028347170709067683301288400663242080694061170529324849684215451265667156674655948794380030058143656654471659980846035049400472735932252223423480342565131260902898725102406939540694038174461911827722743154607755323765652788563971230055170635376713998676720073678430192163682548037858031689957121011591397397830725442841904095979093057372317941158744986658928887946164228766927740550059957231456122757250682740528035938833164067691455153088536991005169685329362157433268719003168565205860336930046173862130323963308211557026223103191082825227130799798981247288053118729140703089488166622810656617445514113034793413699248913167296036383101359211200035362912518365618789968386176409041796459042848953504211297326312822389342949114797159943657084202910873791024991441294555659097600277586267247884421237233032774247309659479368166455345183158973290935588060351025920621555710472180210541354542737591517584304703872463096724222783722690780354056238736518919696044819225193367995012436852610779718323450419776597587956719506160394881244647532914617052193345184519075131509701190639178655768495228926605698138282805795730414745834044685060921180703743875472153989310338191068289386419592607213314476835788586344856674502826124028353254096476260927237338888137877250460381368994669049982301262429606811022720900674429340262836360223750855568936699257688128499986384719915592217877146968693812536239148185538532948426456997023556603512651345776910509971824552626176799513888516838271755654644906131635166504244391049899918791260166322750745259610048160252504861861924690417437380012741571356044015701535867993675237467192003528004643657489705084944533310944685692356559779096088366488921076848973882500626623177284007642518036796154273577747212393292132505420746310490217858880278208160961720539060248483556557397010559376830332728532483089477895256763595597790434697540340713308088800762519483938653775166390551994960989304235370437608741191073397603829242199613251335952204484674640850674671749181942421901567351228026295321779672625163084780327571745344488567956914999438843119617119807557208144074344636901220650319810837735777907719182059952071194115268066404830145503287221550502743998155184102707830762696036633950436865410597933761553669679758848944750130659369863748232206872368351645583933356217929763659183120450380334477372036821467392976768826622941097504858137346206110766918122301329366340530354312997086889820584378349017793519043810318265641346728359961441855787586481968598800492553008241968791040149478319701954594712208629541318975035086144813460788720480267082682382109139678604873413672557452295765016992069865917229939176517862952047621571865885164424111575477754127561267057330334484399674543399316413100296916499607815980594007847823493500767230907163206179753287843670125402688434891971912288451383998614207075379202827362737900737128621400281668364855932242246228952049499087348004869487596448728892336379908426619455605981359760526848480219135627292774810442269525417805175629373464700049052693119304800572238015303603022917212938128070338945494783295000998081907116902560109511346582604268443672580489532471183408107132190827034911633937072226465032486096491431350870399616725689310765658687593175335089035040846803002993670742653232358321817265327880730925407587063287393241665224156870656640728845800796808860933332615035535437117957212388030663505530154207601475636296632990317828108877914729954348652751257015355602207253232625021747072310388523254305460026834569658026531030580451357857291520712396973625976850386453256056086854042263227456932048669016661181323632723301474190458591085130495544086066938486669212503801131014249823112503394337704394163546319076554476930565648839098575843903195841378334837595490084557720291357016720205931050169028754181399334676611022846799080642340851985700332548624768891912599540874569578966747248894562917516385201655820037267181357053466545593650692404835038114736262516229695204660544782128950774519310549407674099560350109330894886563219382399547628698683612880077175366588021189975839483461520347505890520693391070359556165574267230097611719356902546055337536939030689153909176963240558937748630242898031772219504376967612440888215790593938197282070393444161136253019055104185042743769044245863011088307205265601982494297882153206140914466524599158821839475067789719318269065354673537038833094129804810154651814255977036438500156782175962656391229580836197013681698898831188051772406048523491388394128885446146528136967108790299235973289481192499285420481695731284723034314569735136026223913332342464849247888631179659802296046793509045229856862777417676517694024028048908674691412093986607480888638237082049418606452337078672512576163219482053187874062862854200829166622608951037020706142711192802059307485687627655828135050425986808597932761988728486689094551396966982649301583933013343773025329730597052437591649851126041683698356380656127168034296561301374354043544608250142320473026645896615140346879464736309933113220266559419052199989705837651805654356986589426721316825635352763207569435906705832242218528230651171261906204977352525401315017659555324886856741261442990147987530776160362289112790313135418106540052747396646591150442792922609221422867758010353808233808225976011985320649026932633799008211399854610077634109501307570025769535211347774929340996996964944289723714152904933506271502497131934315979608751850343990244937186820320289885987243028728975141701097978462266954295360179696551619910288031560518560096983045691424752997191198230754721064202717793346325457226259991650422486469879420617430489122601694139277309831337311163125525988958138060566891242352646236352532154618635958442586399148199258388366692228683392186273989487126513297548358786462014568910941793858707392261415116787488783429940542468899516208242382286025490736644205814925854638944235818873888986856245183228763447126516032195134880430345673433527028058779579682954985748954372626489345000887082477879275287139852215377113790112983407252577027974645666441265256338361156186771636396138645447171120203334133970349366347929931115571015146752372478161423178655144419605438302394748123867571417123808204772182423239989947126251422287002621956340494222231031567245635734277914872359900470518812005182245264652561903806416850655869623700888676371625644978514545354730626644286348548152274762074823845592756768366451222882261408557044731295911937699595476063895444845121410517654430979487832180593709374061343011073624152153300649314169572409592355818958568868844230707926927423539794027351911737256351525224313592446798959632590100055902307763163100849602532801007410951565400836103079746546783218959827787446046717263152436206602438867570723314233542015419094475853236483365889850945319880968718408876271059352984658110909149728675402026173898266284631055428707260652921386241325319355330143934784749063327093050037322507241910536988830813473469859780328135465621546589376631510907853020040451542626000517127927494779011155835201638307514434146803261561934596638717445880031367621339278525921302738438212429438869730553579586905243229894353273554951187489732545774106388356467778322479098723322764722080086631129792044304791274845449918193268886828312714675026995024485415759267574896013550429742892077721473785138039949801060030516063111491622203130849919597700897265862369943502978327666470631262988926907310475735169520276310474758073480217574880631252709033382410160610306164261903495110553739359768073321898605063738106055773651786432098046528982284767122695034924427962874556766593111830232173354708610173554634761904184271152137829762997369985080223417489152269754438453523280246576869559432352397910736193397901345627191495205112589071512095411419478988188726811879502303613680623568562984980105389250475581239639982826715862563647746194888619140117269565388320792845768120550049108514441461445186772500028658872647760612487414093498617131983308239929958763949185256156629810669996010018546183728161506288728299418570635265873569012653913377056913280930840076783016084534190370630533499576386395608867281354174399136504776298403899321857292770416734003454739338411118085566789662864799529922892757442357967835268890947855124115970984960972179419223411060753615090435544165135929975049103411258488280548519886821129876487978069354691172615633036992312645619983215941167821166386977558609598911317770465446760303828469106381154162012601941953990854323435723552384526635847271145774260073227272345248514825367130100652780153061636264402689781950299307103801243839052390393515623362549893965392756886027027004799457150415381828577259865036785426620557193018703397086309908081250056490681327175701159972955547013964293783169688587586654949223955694841254438390141437098452699776924927780760305679780954403561113300645838354528336015999152643404536628315537919570316773006922374843763933457162789931895248492762013776449127606763859978606685319622045642710297535976071611316090916690778713945241024658564294789935427932097251866500896587521551835970955493723657998292218274899592403332176598482026497191654781423598802668051103698620411197561098311856728373385535065027745846773524387545121169157949648179060333942402559746332583458556528628803320849770371726589189504892166783463648009609262668959382814369850462838815057838066300418431133140036853672999843072977341374425010055460287286597137476630221454485213554224649305540613219655992605044745810892943059580988361583632389212328071314555106310718653566250539259109868037990246251097927155665472358626278195214191945300453037998044632433950306283675023459755845212081409860933623252427289606127157754777429400251863681658344547511713522433091932806331025313150744041215266922196374380172200777142140384541778568988884803084001470664566005086457639732588601752597266220089572377781343740410110801268714250101692237662877805779309832912288192555217790695420760131933860509969424303246292097444142186681181610182635733013327408878692270761523796873720068103441583089892491420150752401985561786009253813580345827156487964941584419078956209217162228522589332428815469796393641876953556233953508283023662103219863835999001253559910222414023024881712193189789344737848039776055458385492173577737325573357455681767086875374997238337536719844752823297157036012852643643884807414642198591193843797778464878152234253544639040207694734434045348628111731522803444753754573212000147750380804859413466163074438812083573161169977181760901418142093419851783553987897457908188866448137247392511667939744163224822125248749616970475672092907524995421535962798937611191730500772498151671690440779248374926235956066925341325774500797828231600608200591523910626770873549597205960820804708569567432155667517614925806562488749383082782362703475123359155473174074421082735576904826996280662487049180544310391155410330625749426773363159710874079327678380552137051545453094039115189800483207433269138716412804436760224957128142359402392051268962349546999359844784396425240303406153013568163826365504860031908112197825528175842535624374872922991313165253757506667575418793161200751002920498708857781404100697866938814661397822302191761226117510969558395764701172099666395015582354716237778487000572593105981258959269698764824090621900363038323909087672557530535333827450407837919562926587050525447905142697994884506434087167725389553202594976132695511285137253712801160476437318458124106870021991231019242886356777304353867687367906149474582980032240882811360649440929192289005274765677543422373695394430185020199462822994806778103420331182737329303869891045319570402777042212557434258533079150522490162549465328148213499649458181938879252839099003388646291676401995421828377343291178916844978517101591827112970698679653374173460217073548145648184748688768399337559219132465968825704157456316298342025278918233770494244410221041048394265806910851409142364115235966914679889882997958520736272824371395023874463378495872604098994632287191308870798654247003940959627447707879720490118150877608906303494858004309068992402385877298227936774062048381180357325618679193000951051841315403610293444386414043514467290432579593014190452747508948487176273470206020418805305562067055939056733182904299805542881226451964769608035883544477820464374812026871373862187953976153742090645413072296519800914541835492445301423791548095809675434616223178718616533253680223039439107426335957080925397961472860522554855892597749265407898554309055520843987262719988386758047657110163091369987439588332121784836117918916085078678006494883884522569713215161647571766122621746031733784235876299211092725979545899725213907032243844416219341645569890434653748980294449498204106452060562523277902210241910698611146326558810948272890429587302547673234672193652648218865983043807063876200836528001759119208504566654928591674360262210882281912757357107522385153715948466109627343035640571021777891655215677724221418580945267005990554056634330912573633308669571666911642053209507823029267187116376015514106338709218031196074128826460406517860389429279350148703415740680945076623983747756455876555816000207470664443787807227292825988133817379484570043875939310877157768137668500416689823114845313453784161670236473578900781888145887397333083041490128850324579380216939830883078787405967843289934732682817588206526534872055453262191083603446191387812639563159677088379463396656071182527788901379854480006814637604226629651066305415197785329756686906365900126974501500537561611455472798540342441939519106222734342986609395474124143429460383826571232108322519318218102043175517247982312884250198054483151449592074699664584135618536645826309667771851675090620463565467404196314705983108328555367006941325297528761883573457457125978088316479998945062075585604135686980378827843768978477916512767360272647162645067803746486984185368704733626177530333101008064058900400422777155821642050869451523326191293096890151558833376393566008703627403390146081015056586815857719532006965035482527740643171118861016326393997613688191493448676145792943327756430733577473616242310403507945489875867276604154853813761898756550886362023392332051436683756652336919757841276276999642697620449008414376876105908283930203999039661834805802574122307929362824380663389492887626479048570755523326375647517455013471246470890828069074978548731710484257609308442356254700591993529197510630196668741935958350928516516951385682319881713321130263337721512620631936532979272179387788080825016244710290484384830782833383866722935202115206653701986451631495022744413582165306022033600461071941997154711798242963801262005630392182519602574681424031390410566928915879336296097558570941696958131601068283072346241529448188418690732656733192490000816160991654771886787518726952626125345952214126071778522278913734673171881168863480320129564558229884320445566660944871256441616713801535654870469529381554430755284891187376011013172104695446567140144337612631610118428475475766521431292992749353052673668206440945026911268482499794177835197527884629031004139825450972916001653896594733930880774039392444504846611706849312878031635352302496731425368759411565247715796431319074077699791209093336746856497442136720052361476879884857285702783123127852641960378493111331776656085157459982120043486489445997294871035988667098471342537086609613297275753882769109057177026107964657464419878111495046284895663164595443209961852125308893482143208125595482300165845669434694450147493524110543284003621521690023637741866935381542164172035952626324540600108974163792326526836531537285399210039603626170199567538878218733016066824755503874904618535223273581096186707668092168436213002014958683678844615248890658530372227909756585751363509333551027903321699299958817319485911410802990127224342035134903649554787209730910084010812381325517509345304871705290254003275837928861375341585225457050753507345108247156799428205603029516026404178869272121040178877841252778131767940514757904794344224860398129120914460792083578435269704293849352659047112777360225482489521639264811161964790281182632053806378659760050282305127789283995289829674833601502348820500895082379932073226515117711267369893323106094951812156206165359687667111895756106390291733985189982127009822003301065049586459979078303883556885955883901231517073111344798341932389636818080848494369822898720980652222624856001745490527785639435543979728164107364299512819129649959096211993185990925172626677861444348989255397030745309817066395166356038218033242388800033962049112923555112958923469544570996964364932110642001334757822450226974646597610961853622332512886708631844150433255125912857518099798949201725439206446494976729790085246608839083097474085155825478759117540349702532608341056640098252386432746998396976755702546645472082665600768237475526612914913442228232409020833962345739367244392164552185263554518238102456260099063314247643206920089987093342842215943847068903873879512561160620944730969945797645321796606588456067981027032207810330416404410657687703600433876152132976799096925569154603963281672654658802458957394795282125041820577056442956271475459115897819040398525825987584646508070022877617392468207251958460775284983871663531887166386490716592349128668521480191571871162116016921912861323263361162113145829934239114126129447985248290834769575215369474995872831236854876889408000363394948109339906462781079340195100435917923482372479638694474869631724554256037466456619537612332192029322570994278359088403075212516172726485520869363277355760303207904873988492111655579323434793529305003211953112673097691589051181834251544960441970059451112767836731087408613536454034362361855375153127788200219882265759888829155660826822289555633975584679182839589370621266387222543281388391858914945444060175281134658358058079621076237614824718683939947789221854654827421992814050972532830742554086255061480269230265276410853387083823562828778930930867104142533051625947128155823593412350206205469033140594435933391258933768831144596242628657037597112445581529747995976864043382332665852580770403569372784512019743805738875371887374159875749595190969096525097378658650839322670393384259637353000175641999941172165926264122237317787969579292705467959692567301442849997637444287045430015624371549209418725588436920515305228707874408845839270527839972252131668209899912286525167181650698035195653844527416524674551681490727465149708292714486199358141289563911792315097663418384664127753142849499283391774332788232665633292453530119588073953301170339962016396371737728246662070171812018548168613950644764063440803424484270780896002104497911857048749050043867368541678277610301120680955713047152001186650700052230270750223754540248729401514625327375248161058614562967950270937052457684308310908742429407190425717677033295502374541683683436942473922211644513466061794632732050452046010811697685494373425836546804775945860653724150448344345230739250789486436519566099581916419084977562272473113208212826352938478105231584028245138609340556431108829542671693069418045036796822153649160516123299710567152646598304223723815822532305297729736377439014902589894892869899813704210113823179944331725516954239874794667748745517508464112193057382929503844154067566724765175574019838505999522635365952056120125272748292692474966461644547549698372572109974339800384964291898317503564363208290274955863370823352056549483051868768657782237318743067971103026734748358090871274783852444847989365590746989767247210134848675572580766202672708687558134963900354714090108416232171672117568863452532101254809105980210868910815143443755311831874283288766750937236342214771434661246180106183766243083502350531100626766228459417228174579012474038653878216069292752806455372060342951176704766345176327114163042561585859482891043750427758394740104226286619296894373612695240089388230727340934312854338100788397861173256154717732779519733934124882746423267409657755927701310893644979674053728204309779809563466523148642598404446729334457229754581193922103690811462164849533763696722343497205798502907393510404383325638344885773279660619106573363440677677712107325321199039215115135278810786894689868909714741882139044499626537608359984132520793927140600439694851248565512742960602653427253941071275422365309324261750770177255115287401934778785194159245919401653229119020293493856952120513646681424820973963168913757620086906739416984080429062474626918347948641624989415780207574404891361165485989048949412370144088522857482166469925312774504423642986094965786030064022205617413015989341194647173093422485132297595325511727852669579713147540133227405305369891354133517733367517636840754695055432801382541626114615144408790227259416850744133041557870480112053256126481365608846075780036376680265541526887305069235502939414588546767775406382830546563131107781351328146951058160847458862837161588924654308839052176043113254939885337468656002473468162842159824328310919825974018912990549548526971668240497264544755738500191562917887946218239622980904356139479408108954488738870027410231642233371965225403627887917926743365157330528643217217856721944957977548622679955910064105360932955630364798019059720447988452236483460786569078529031609753430781930378430360888868809111684477857884500632546243824464803196967182613424449160410234360539498972425073993699664344159122683243909189492033804007835791178010838355704810365851839481194790374725522194409000214460126694399860793464785690850271920556487913795400085041085432527398757562279253937269294451307142716302391878824898028032117240902957888697063040745681892273608459443996548489572418934713388056684953465936170398888145507983597006193316159821174623033569472707580949565092775749474587631328293867901083543825518715859410265626393776033363381261743185710172176346266647373363615197552273088693778911364057572647679739103235210415484569250239757161185052305556113849244460793897605112242063298975328657744546520790567174108381308843549748026332217648104598668134613397583410287840048722059308413376094652444177365483297527885337644112894397743864811161002741058699235246382871803048291512837417351918501495445481539733218996064762060053701708285769397679472847531940017985610105537403407427358924902994594762594547340922458175985429907622620011764769503491105419583722332696388539651535160173909728868112208179101212637792245921243820734891816651261282666457586682691611821608025473396891598308814462621111479744566805573452410663936573735479319512494661473165104451015983963517857609989667405703403525278246266253622835541426056705072550197892338595551350514529183816449457943280645452161070472748261165999191268825956362488076448056371936251907559153861386053911031420430446565215971309378186794924560016387414706800126211293434719801245300780172608643040204348866014613592389646332830749449174989220233556225974426520921958704350384169421260063085526980114485033162277671992088273880809291735482219486387539902036300900706859147577805865494812179865615079706433597303100662326993946463701806239168516235530996158044022328495847716235912384431800089048898731733258111050329481550930906470214695698868902340781835685001159698209659254859081789990492624510974571268954348469057920466503801074508204742705851252091752950036043533758491906792019648155524154865719622660447193397557027111068857268988786174030222314096649422824709407281903121481393554268132460094992668724693419026021375786543396295823941387652209522282494580003729520878545798007027583283087837256627923298282499719775280972793945631132094003307854868068326850654865351439377237303737284085933794442398592110107456566923943525440203027152827404507749821162646571041325542912054314104615390251988990827838946267232572932536641808266723479794041838360494744516175481906712188605256612499577783856639011116709411272059998943958784021091532055690877784183669791792358280756590141555008404746105804953561919285078852210681581550747614374487716413180085586168878587531776331958341948756400978817937761219208103689580241673779769641483991395211553157335242218384305188567552400733572196898811947817925120977071509922708254782116114276769293941174716175083502440606334841746554620574664864988992036694310660589868407237185035573125316158143755037139350956179190668465194926116452028038888088660008713042047413432572928821909644324801042542475830251557159331564541760968979437700807539795953581908753054251420560958694941982422056175353902597181771177893747832585307955577762642813317463842611391777258060323955006398362663890800893921553953179146236867963835905439106598819103897070244757654289067314442282764790738072629605248236164097834789764630735854084830940956345435977832702559511543786705491571741949611964166402007404987561629139751472900407546897047843499243561154518858567571075227134463730347788641790301389193998173836858429090642824347085596144510707471222117070755116526932673189760840094151039681739581630330796806636399079233417186884432067890001019512048621176815782682136484906187538132663975764573487894655573592523545772859817553878232975627166022234670334735054000666431492564830044047444159236977194157351718037729139430753358430650222912933421313377355670690185036878931948154270666910410014731659881174417664160850353184491319316815795228860088235995018795407231693490847849323086337491622450890353488854436847152601783883206843287501382241246925455187413458186673578269410888343438970391588948244011849804257896524322039186801662817406320081323398343904912124052578717202354494897900079689141096106320915596022645922048435042469064033954707637760128730395181339710921488895877769350865720415883240565343732287593479144279212678695229660864376460853044701736241377868912633920011544219012478578987038195868999451262633080196297128820243728239233870960297822653269185196805193605414554136157495036477666928793883660047657733655281716338564068877933814603389395009233259095298676446571693451882658978938418768350027226698553495991023355890208011279621452255581501663365822459829727656094820456447714289262575113897360072271670111451383255308099831823100931775218043167015138651947518453994502233331489161782533223712178038959359581660642514441320852492027407431018580072112038027237200913258771490792095317607721965865018633018188995515349227546796163596851923194709335742304413582238995562929730383606787851134958813418596769837842728543951063051281080427858819780534163159527805515392853166674135096683468215805186984218000291079355887985762706498961569067141181944443220731604836354648362293792989800318274948516889845042418960064591262176361910595031609028095371961934367879045823009090854750892520022407729554488431224614164807622865728105308702746876092656941443249640466985869174918118404516540281392695542295073758653673145634607394540804712184977038185610127501695930641080160096773418417878699310578468782685225097886028487528994546778246259768124338958144605687262631604368357278276887104435047270843336539301520695760941581995969455703026290939664824640922303183317128480647013446626193945404882850320562513573663645435089014883430520949475713424933749700014381204424221596518210642808379304435680702354991373611788140953686903824095580922934694546505197623885995093140411345084743621229852026045134354300915682929114180745792469462120599549705230428978328805383242690249399242973430396601297103511534417855039045248791307212458294565891942992158830526112570841545915448053851660933640726272803903169646292292015218384596366391165446723884291641822438225045555588523235398528709002195925106625785944004335216922377538951665026363676166189083193631588274589710222303391209438806886122760061239042628496329553599222932607687182279210202231927628072565456420067930865651410401743950543893838522003143602926758383805200342689575403527723597621688323504976483919375655791458024286367300249818491898087502364793904578938427463944620474596881160803119727784057897793038893297328806518681641114980739089310554933547306673902763414821180376820996288436291550395511208302517940729800987212916098860992046165314769494989397013114721360834843117291435757069106261970810878568455234754535722350047227690264978983449631249886431449305343689175978926111944763743453727978076846266239358141292966325101156482467424658244470908095094999538441390535674116500741099715942621838408035699003170181030372211407723220811416663167547133518664339901801558509946220354873213750767207894868339898343202247952502854190982571077594808381082134701309997327959918729681110610161125631992708686464853642013560610253104474592184030421420653101426463426659771500864399779844895320281117805021655740223819832955008566841840971897280010373101121154633471189760727122160537582606073836552780231416756230501459513565720376862661469915714062460985796122801895918595726674725917766950390765648953036891104831388342635989200746691336150739710278702933704456604095453798155797020618614232201125840660011844255343898503792086347744209345494584346629527802561245280997459686106737356629291250960351527186883528998935582678309161183978542443077415573861752100782365741099446888955767771178913516334684332789163538411969126816211030392910903135016682024990926271555029529065901672797016935967811837230411293510424214455472328179005149872496386875524963139724833883410463166126040388293841507305077893467594158215847881979166393071546094291612680482267745640494980534797568894851327078970652742453970050498023276220414693820677468854930758736433275307874373555708777133179146515141426442183612074584622830576183198532087431012707776090537735961084433221422682205094758031983999098071627311746061861323325186107341888468273663690886794620819985288893744051442505524986748342452162261979962678134138851961919719556373090201854447155057009174516778519049056870539994099968645331591828757965805954821340564070333670474747350770769454879479053764955714391210143014364545018165254244410644628200614563491132482316998725818839438375976013202330277931764469235285261361323238040064774940133626944577077659662741713846158576455271044782781374184147549225609133308437351464190671396680492444514119721126359557015255621587679531821708509343599882123381914869297933712091433924534572714738530093935500224501000371811459050624527844032512307711928751774218254331426084466270905583176249191444569144474751029860172669117977031341508343813005725962365863567565368271926258330906273742728347119205092742364199291503921845819047529239903121925048982403059045158263933330681229003922831295486452454589348299270765139145431606954051949952742590072739651154915175760778085852345991388347110999954082779665172023349717763357283777675024800461817234559426246561363772433018758627694309029942813649534152562326031325926567157574358819185479626850957363816095083625844813941503485705605551983072705605994403980498277159653525034490412010172809265008094981680091777056158470462453594481483296385122035646034969480439491667561790999116084409244100514986108183953131989061187623422959913923851095969964639839691166250736640673786524889248176961441299253544704113368118467774809303597954262682514119844361546344885593556037958499758530470521882164805312074783103473817612838136830873153178394763854302593825859245685350455697838663181851880510231463319502986945699133973666749818148763526810951127151039894267783552634228725482671764855837163045846848601233250881676431609832830387263957847580244200482713693920999467794182354889158873877367117437703018061083325919535173798518024508273449995821992986222037503872223099966920806262230209133068884283665107816126000425455472391511281343615981676146038913194254665396175391809568666951627769376752414011028203113179114064802192794971011151278093799966284319823915065573660593801857167872277637570067921280374129652511736604439355479318461053508342616274609849345180014546574722747297770453337421070441437348488157742427444064947251115641053349019944187406837835624601881682990944415557219900477470427992473075285697440596698279931524585950737423875432413053774488853400466890585067183254487952477356893285498380296362264934586905816244545675185975387753063546715813745781607209370827072636545542273165701197823616051893430325440980846333731332014724204188738202453856833999317997480148548821441412364171126770062078840111766972177824258726546338859516477544154776856879592178501543742647567551532344122813203473336263712618528225614490704948984867357461194139990989807454799930458082959640666714721440986949487166190936185291337328448201716978577944629411566992347321556989677466672103947190473554461675622969432479576649991797343487384605255974624016035231521927092308103567393514441690623230086839135221757567208887531853744794967814541364223707112775723045871079315172376749167824921104034324966468895104744039888024947530134348643235745690734407029513869646470481973036879464137256792536126870811049501880927314139339693642479060996254245819296809800314817139576678130129932052586089534683921117846482526055781744648512321964399091506861269583259894041289536872841822308316958996378283641072582237454088834809834199563451747357065784828510907807015750459010217120948880576289672643359014812470522475986002613557800656943362213416810469007937223354873685629057792144788738619367695324020382382869486377772528520049912996473107446995860790124030423259365329895895743482555444843171947710360154258180129814437599885446748551537590456608174953187006854751233249717114101165788877908103323552644653907151222183839811255741182048349795539218809173837895656575276701509224136594788614831553679059966454068450816910827489743186349998797578101345998122340823429636209334724045411512901918141019243675616809742889410619629703485542128998739116631335372587625719856183027996248082744716230664312624856612456175880467241533883236557259433155888669447943325274000141556315668021852247332163067635283532698230385683853039420483900127925777886748068995530015175312048897505650222851698835480125399723298150437714663455915849066597148774370163958369704438104166502451605562847635600770630340820809776427917207200101706142599853105354732468904694160283981694030469109446554106049206538311466762910455227228457205473128452728773473529245413438544028602003259548807274753506863730947978770907050717651661557157337627151557305556305676074417846588652461027363440812730491782302606686791330285422032894049547440689653250211981451476407607105743497906596496600835688806177322222495005071629858104985966433083254333974866195591094409904250868975447651850961191150464859517562504428063886933131993963652595145311291854823300502152114660586237505580977363844026974619676300171104737144837056730700606929594954661840759593798493992918329843229323121405562825653910494425721537137885507295953906965171929928137431775691635393135553097332158872708886912625962140533526078814641424506383496994138465998465049734638349520670262909972946433772303119669655644595612767002486250903871908341586061372020531067697935922337187432799264686366980438095520610475750136766115467277343607957669085670021742484016021908001165311895548564789303969012470854617477193676178684090390780088914694564466624489678025871377354478464324220657102171101034563335956568307614461742238113433901308210373880954602135416248959294320181779095453656262892716315586231693975353921086486264723009082324582699993677513718274506196010221357250148176903749173401914519192068951069171556580355639712155677897943130548975067909053450269844947804660059424940642824068481308727249208593916913235384842413903050655844953639768824599140841464753449360471213958745282552685044817789972915081204247998496039537622344003438478791717560804458047310545127559391988349076067909740219542624149026134674244154284819186284799220384323299194421811195472167373475280438349696107970376477731809773301093773898332495572631861155688715283084176553006723946581398604532275649271692364038509785432601181648244640757530782003806782186908702467993642457523015423007126786412460065567255019415417129977674610062632159586162717597991312701664269870020197385238248819241576531296964528177141500118493031875121021277863210526921918496797994085033109055183829481247319988085339500011993621051295377291555049188786964276921481523208965678586176679736643933850273070180981365449728731685121267969476582986058879068151625435432935106578861046945102208205977140735198843704317884860133446057796808931420996968841701330369909216923420518815850717125476903080437360226289750825579316074424857867591042900685348034204769816766024353880172418445102690375961959383315498425468991539568500775255718504515729073823540853485411635714981823946561294267102506877746578540926460098208554707997792661262634241845705249750423994443209775119198893720877520610490002932584572336108417232098267076575133375862838406650488856783137185604216874655436925424509793838052959268644616749201358018811400175259472985947414910809871281454788106130065986124903383044813008727064614008845375745915086191871218771438579306815047751980971450941853328441054238241087465325726798006764538265749872478105703108559376491626094983742469575801801574341723665530422724038306122256845841424449745282182510121588661358331146003184515474566547930012250765385752415286188375531759670366340420387271839745682869212513452925423819548887405896455340993412126787557122461010631185096757201870788739062903983787852483526539088744813820146094124745507924600215403341702319369108541698982329152253879439185290461487519432826809316144195562366056201908476569878811171312221019784122176903136659779581927967013363300630957023479726478881401605799435718147425374391144469550604423505995409684156881120481814043004476389609253596050322591513140459286193579641983242257284713507319695438032889085243492504883386268066368007591279065019493139824084794532307610737685516508281019088722678048893364302547506604370904332904117394397330849401436118025220557753725148794535621042904841410007267817689908462207869013555907444397934214348052373469842124794041969706777414333273902369111932412734159613284612560302291511864332003766702077555621746042957593528697850405502104727541944560244268016200824129393522321550174998712919530642135380550890394858957952052538680908710214318585705980005653047610093206835363069068565222963258880171545569212192701159182113061401143847395447534578260419073498791209407475361190214065210428007006169316788701770165835434078928851591617822023762782240782705617640427224237183165056623192884759557496267685882160042637928129666649117635905064516292363731352091460439652124460327985095666443449972143333970411103870825066177900849029370665278457321933797181242163180502994939219162955786920478926939592311247703990126010437673204952053832865481019523409986057900300058601587987062812283258815789784371578693911942726515071097183048469056703966350746558452454290202752563036757821409475349504086924719363766676000423616700850690000844101339581029280769399813194144036527524729635780110095298316338436066577087515777177699491442602944793033507142731229938083739202397420219000278791000306842780673704001429882735973562942998972520992003759814011586000443750513275998228418897585254904684251324608955796931231852456604842280459578905318098655015853303987874859725919266365733220147706743809998467341783412748868650414942240253496767242942090928783752950291489549866142730324351181304852251447075220482487202171187163199153883128846785668529421583189142142775197751659198897113278229838460111706193023682064135103914472441020981990808152188759850753241678135630346852835336939805192088777485783658281713926705331311203965805853265797719529019767276664981004527199640166344731759294103909675535683907911314214319010450944282048740443317163418031718770886207583662112127993957225408391358002683374396845979217762657454142397145988598138612986684278709423881838428981807521179770459277826895816292542052210862552617150361621354324094733291119823335387491121494252901571211904754550246039893993507402481506636802915781662510030050366897213740816902272529258883979548390111772922106272560350258961525890111292730111732299585140019677318118281748560748736822476484721549434678745833280513346543490937442296299070117598302141071773352764792982540184249488591863224233134043715776289000370606351007174679185256345437601461407273394175443065676582080229957239936495223515880835364697216045242454002035517368749888825663528076976835537211319648137848184127278949710425928444161317016872675700510906100599003508242208862184719503988955201400743530472314797094529772509317013850980161515326143532544481707315638500259604981095485787718807069020438195440835806063595331783544449933005207341121621173806682896592785718746904052289966539215720886211087856093779338774890467532479347598243377066242118209761227275816381057280479910952843770636597239989383605165482939231860820110583109516941301113501867620360935979533142025076039850520699086636861148147492201651299824350840459809740507353073605650465022798287893450212661234271023125056191768867974671468435194341910932972570880601305118846506511456902853771180117915359627699371203534216001563561325071872956189318259730087560091964219258159853242748902694704916245400196250871686154226694827675607343346378358750408381950071449758638607343706855334066876284415392228138753453224491987889648366531747788312094878607351488051901907787186763299780117822763624128670514251373012573139476530861826120119335304751511176285278109746017533059153987915445249520207302848223200153101924805486111089336023730140375494096014913408096713202510739253010335402361194369986805968960195628838146092982621340403511498328515082014901892822817615050391726465350385921291959737340881265833537798187934840275504904390139112267979884530968312055179972528969804101707088051938019658084228182767033777918205374968773717988783987536429945622389316380472905171017031975377511344579500317614512085241575426020436779005993921660186934679210155247371082398120231084190353899935526174366318356027519322592956401305830589831787176675884020599540698928221962107172563404524671568610015036944721598007678222671518699452197085555719762317673706991400883956771608820916748649949502910477772999393600814068381468218408569893279040363571075947611337784220652103054494873135989027965056123697234626226731436079965519856088020158499720538601244750483628453871795101840135884556823500653377342398291273702015308168176676382778525776929630117660736541454811691354351198534979225325570742346552245390719915807325568841981883830751425833410367744505167451023967435154016015285879101517693466188810974422920595635938525315853422342182436138191245527849547412859190411648620584787305380080080747468952767410914334258681010470252709343192080621519404274709997226270946048405513754993688681792933177527183273768221934591095560304019155695513239990956665957395862342596510834606163959871821212166990815670056513779415198011922670414520723413340881052914182638600087898438528598325215955078437855529564404942119103490966258891319373422411665926271839988777144962570751989464863053933550078440494897544553739850854580045583927886982172495123682341953438494348822100219141389958020141749340089313560464072442538870284970235771020171276202137978676025668661167617140784123820470597928457414968543376070250622372812100225222556557157546082580348170885819240616519189884216116230073399613922096433293737670887832230828219842275517336372399247335139899973655793531465484721294956587912563038707083414022411733689017170355049048985514696316314876420700500346356108085409110095463420301326283764111462696763919583374971682385834494774359882355506210449363163296179039567323987194824736008883237880566419635836678020494738755617852787106496934591975329362966827653836760551572563127272033812984085612264372524056687724744635918723807089603327459430207145251282501947929867083553728289703539657714857001851164259335843292555454084164120060501249070096379760727241638439986459084679015784244123806996480772521587952193899551525250742894207989849374579582079036619479594116713915032983235355953226186776628675933792572771691947086275881717842301500196680606597365407829484179821400839103490786591132566172173432926865553329716916847567199221202322710560733008558086678836445264706759186322631675237888047480282033654550168546508433199400110099809869275095786292596795907111527873625826251028550142880460103296545415193330393630380321828780991660664770227952749524588987127169017728931534481829246943329489464400434486489579170431067235170619133241852947046972768422360899744660932581564763424821921190700611394451091962562452649356623494732427413299652144733287679633762480984304026488941994726175925786778661905802058112907644901919548257802544666057395204446621717388377939630815314212442988072476428781690507651841592095877056877750207916572401325013780919199066968985434617417621034474688966939679490383913089333035452532024300742952773509416470887882887739882250213749830010396616790699275072387973658349712526244892690726544040817937298139108054373781326326280488765297081957526918796856584808387735657493068795602561920405741641153361341995096800757446480412519242895860816786687110777055298968075165798692656595540606413982025098404586388332956665883376823311595182865866113673551751967911548599048122309743354774632121293578822085712543938057149397023069575100487375548958373194080219724831200746321998468649914007076073263335357634446006026262333939219745061921771853276821505198823824842404186693451567675237843198520629450270216006471621952136847335575962161269257739877479572189281633196186204835521254121240675270309037868922012199576184797582604707075715768104861159277536766175811529489662453823613651113080844647976696987974844110150081632059357312807174536632257092965632471449453679508165342672821940787825658697611276345924035481227333450250339055049452519106891521502155333741184573958702338045375681701997303414313222893082225871133942756923130147457316857335847911544261347867689287905203079538853242176875942171557987728374572132317565021223096967152060641102090668703008059446727770855606725763718861954024703998174350878494295093217226369175593685009773116328279758510751730764228564262376096660317403261574477597687874368601926700931306133143992842131667623696712607063557818822080894474292255367005719639187839629316439654123706231558843105481146765457901891342916093988370708499330409099526841094074040196526169105577727341221906245386736449223323315177798977464620399403268557903426841280545982479636060372807875180683576242243171969753474283901248189138156272917058968005707900582044964981639691721252121341043297959790830410563124018251253242340854819600162364371220120656750655830863892219096735359345753629361834065480758885276595211247047819049126265426392097679431902023714157324282103054105918705526459065793881390831521374233645186786615942632696158138952843352597971065404741837020089284798506109496712728456113508005905630677072100606667178863184402157167064870734400757146777140986688780538733685950812058266138145770002334423185131524403844402694415418561393507972164840398167259889023087393357842421832178254741688411772946644860054518525566408647204617553308415918651219955175259984859888636355466735001043429352133002159108607272185692733274792766845473229859699201503604143431441035099540927573309635241476754178257184151671843199248601343053025810243542766907038525008912943784576175718447873403380201044650345202499109388505948239363277891016778701430162596338241123021488434653988239722635714820731048465945384299866186634032215244471603599776256457950210151949545642165988879154431504720552971071243911748606225917720379692274759463446121766668091871979981857124598198850685605262604665895456364568407859431902324586332445808736840207110561102074220173841003880035385038707385882138349244314850676104765821249477265729983515321481953516966166094348413549527907342624624100117385883589856433940403209860698698836487471580461422296435562249430419972135969561433915355682534835558179786157638697431580813332656772234949271776858540163122245670862532223455923773452480087165925572099265836356230504913038951168897249672027478971097417619656480240165563243664453892989667683064890081014865883046563819066807505380900386304508421515457849558961036599096183787675064094451271444619163107102953572231755896183021734766548873365800660353074955529584002382607881496213879990464331121327703088250080397359103704838236348117575765803628877383518592312252219108744187056613738163095497669174720530427429894932053927749067709118548904293621038141858984590659633566202551719309663720014913689976302078175847017477034520531876567457625795682748298169501519413027801856179143560475780773003672174835949718235079508978633952187484623144199803696053040418334015149256853205269525580001345727883239939308806034978403723000463797557427067479208075982267347866044955156426278028059856978334544301113647802820757941336970268006605633831096197826132838687326857773831469362922941330160094407226940128100156098753850749469714835299755865665605852831600834165241829590027653881572449310849612345340470578382008990148508076763596799572226620814239962451673096078325820728110578724910890754005381299454309172372482544644996397059495379090425425304073470693231609991757363745970062538213637671507401901044695825790351193488912683476393721346642108269177712266071213517217273928244894698606425740316854880403775290610568848542767874818749639476393121015284743436785538047515421139388074008451453227931735788409885985570956714742354320230851391651353294282121244192905458822808293465921963786845519364297916417988068635973785611698364941605079235871437576322455043456903507074357464104125487350986254079379779372100953031379274506550153080600768241378117270745480796322492334930740463606912161452118089742920068828390828242878051187427544781394260954527489786852623424787024169683712856108795288319917150778194925430834617123891020276023550708377798575473777280082674883339264525829209850631200526042480194858532740346494746248683630685283392721292438580421628245135677487211662420446421699219276134587218453601087650552921643475403118540601509325850523418830769378075070884899503203706750498434016811020644757654813172187827292947372395359096670065839457700247336551035158218114543791158333627127009488260287592099221534087438173067718609939009642230945064531899517159234543562753766692204044676024383816473159903541907243511401707421687115822964038828351634900070686461442359864328155338204688846307286298454444703722825825026250589785748730592990051600630663166516087828714887547723197952116186060663806141991203085160359298106178093945329723866921823630775609631548220701519947968319184013336670090271938778613514575608539315700010446148436731345068813146866700205739815028835726457311779439893913640098262204268457343891363880006656979391682838392147487159724007680683738139272384647524393371554492208693142732717564112457693445591863393950939878798429636919866467550826348684323461382436256298529979330050105307247417440807131459951603539128688691912550776074497417614474275062411669127623240950435273267521560504866758133795112918851767541439102473951624660829169013326086036075410370622889558156878728120184275672098574978346157675667853930349177085205994428078184767091601519427789373379972614582322943725248562459519578256337621541372536997800394414649977593181595703516584189540403193746877625329405365385267313958563669581461460328574209308410625535632922293818618246349829220069250852120612311911309732170078501410253267895663873029051373355451582777499198202938138389926232059637405367142017545731539597221016719813522162185198488562714358133079513917148952881974495319748469376969711679815555072229884162419174751136467675388904479821439514060686639802457874654893727309278629067385597142161101815716571790615311422204849668595327864187349511389713680151050109399903481227113445377931989971426211174871560708365588439142445074704695816080707261094312339421919694364640051838755121078210404870552074841122135351306652134185551103302142553879676712614051107565615766487309519791582225558719980986683602031030463448174201063264351993388795799432666472004342146706788411089474183786534005003895618384137948866128448342967237209287995871701654501247809811165054068791657103777750782557755179405746327440117463533314362268771028592857391571340102973580957467266995951618024061643237066536767648362683913172617478281021649151073279043965522451922554582088763071273719800437609793328283148627529078956997608579544349613692165935899282723978539377805918017964171819754830607954033571286447539989877924453273094121331540488901116939191690012956253925555634415741446148325647031646550210487816733427759344227521649052008347473294789578668555121463003640487418434640837336038521503217634535991668858767483035867711719707978990641828367311432450994979900683804110561455249561406966081686898807631703363371535806335118097538696393190655769751757183763987048784538308684655821602636832549837268535914402830615259568316172697811406534867476277302665500366522730715239767535218600561342212159016795443346582780185943958794210823156988635043152787663456166728999451869936316162888791154373455943339464827028806788592472136327825537096282509559820902714149113639211108479709373516537737694560547752109615139942762572774088832561058159049589181873598267821826771186727586748603737648098605305298810324041398034182245678402535257001500722210233499582303464705138556666548267017332255590526803678632109279089169168299198617906070004592838543689510473137763624199912765487516618279735828571781321787185106069944231947396060890913568656257203929133819485437075004603207767564658831066668560657701377633194287014421388394904280094938350848402677639693594557890342079790692784684556771776272554987326983345902346596772563487561400358337673833011365814727551949853156515557823379091909532151727234155044876688395267659348924313788243213732582164901390126578782191733892275864604290915568986875365649467366858969978184428325664174386630566539267492719141937695888683180214837789340004174348992527053970248097469801315030860542951087881002431532859238899164536138949734338098675738809381836308262491385722437855959380730469426583516594940372730325432070820178935942815805023887355691347160103221928515776771020006069327914251061400296932855806667371411152456715365258896377092252660203740833493223331546345363981918274408075196785024349319817199280982792936404963004082672408818489641905068501197267137765346027107034460672408292259045117248261505394886009058990594989952404996205458091790517689635754051550357647794632309695473943809628665513632055227906125011500602604614103429228498086448461370431120070508549983649561467364137114985506499923012916265798732061457412766748279128963344349063033920144873892916243934300719544970730089645233548628221836551824507616313666823525115689362691753394750614450431979823264961045091891385905819660380980913906243985602114627407935590345515898579996773536422641370725868324357547719994352617983902906048183679377262422324112595703641643102285517376433004830858568583144953403814769415154549118688610981667263340426244855034345847941560981529858072603292413726823677548046080827473341319068856954119608497175021522975975036818611764613964998077400013045202244527066562461948290085337791930554010043277142984117733309218566205699047989504584092878065002070746442913807693109039198682658047718838400528877625831797185097708494612022360677080161117062872544146646318139653784293327418461138904133402018167282697066191329439815343321102430374514515702022331993510174793538567492290974492597232696667383355774176864141521942142603718974098193010225850149963518108038688436951091574874321851565499271194003786580893261907413823840403076570449135048829467197984896264580282070432481062329127202492761070759562567856323407889933263276501962237728724472299327496583971630376215181254231813016489201357972055032089664765401417107878343841384399013033632445696639118019288618086315395044045497051532700045347785875541144217458296962188229796973773003662540323229955911439586112739215052803965774035255550127214174113283075207205348299557583960466959255874486252935424552760793236842308431244608726030931647396525359483009388302531304412632195516515984627766456034618611631143054903743603641105438251243563999122326845070044765316781834642432490514208199646240715823205408916102981930392790161188322316717447422416648122357229737657604980264046170593783391714038937476549720366994495395590012305866790970606303389709217172572020523094451237215442014291946404835833656071808489181019366778615842032426497516957323696945101753939283523695676069966347284177602314433857389955299457128301124268228251254247334126801003602045318010105416269944685361472132303075553174206732991896543690256656182367165760231991354427668214442814474049969072184761704454194661836168397119402868333375138427335718060895693993962285508072174066475991686319206197424089056760056901995745349400485728060981895253697446892202510141248968695957957347408325052151313847499558482152834989657122353568234072750468864688427274163789448480316431901941577641833121603720225242115131350284599540538114921271565208287921936934930150452540895296105550428180530388398108487905234297440032442868223966678515837854791228017881701811564293008657239640771969785412423737265583333707428029417952272934007861344969483713160954912968209416994568503797180999127265546057084629530362897059783877522138846091622852926968941597413414734756911388899418535698961076942990982065973580194113611107271138670903156642476566066470859217920905313129141209878310785576742491634138310643177596461265440580285322826947876951368828004112714205900637117201582045988635909243186928890062633628260488011870827799394345926849690237120183600010423231126922099446672951964617181556418168301982495375196020364784686578545523534458995778366074318931723757308172835534862223003459066231699073495289257098918722118523490475048795033879946699613474913533357991983896543285026323858371144841410068923178224640344144503724850346655587074139530402368115134856162170674831713636653246539675463291431386790422434164408018477245572785002046379319784165846459869516501005661946831436154481703773319944502491812111119337241219689913558689698162501953116005047203877698995940079049701056041781646182694858230320413974718788396444585409743775528334287952539208933522479122042510045712243974084181463716060383966966658156033269741404603414091299526752011548656908965682086280220009352107724296419899257055866472819923743508483646453276576282243018388341708019298508740283795452893345752280393537121135837618126343726939547153319904399402908168038685248679399589678485280812251188603556905423146633985649155663613110405597119119754136658920572740073327101637101335966120194855018403238970669303490661769648506155937209085387574653540871669551717730195274060786622031844834551134887176518755583609777769206137554626741768068253460126017652672763369956942892096470513201666768831190746252821181707552647487744276649356595749435965781944679425612720794747162992541455797322837356606450588683135186463042696777693424474729683807141727224236578345730286806801210048719385461625435478830903972978395668667137886822727324414797498154957124570033150211232433635148109268397221385460010612826379123561466554500284707265029317675064206932081749784361864362991950008590986162386320344702587577852072609062852360811004526177881962720823115017822526469645610165853454610409115037472498692549674284540183047661848629242722541437545722269283156460234615733729979380475581457085207989273355083930640283542982211344243586551910800571084326802575962914621558223804223044170411049862734178579009085615703811874829418881690762292602581013459171360021411745191839982251322217077354828343113469123449971059109063147344488000025906789734860004629835149958832454456839695868801496552979598294638982116060083510836642100561878036490622489055690530131957328240384171356439743546086417703388429529620268485441139005515741153780660986994815188790430528128204765825919513475638485204475511937046278786692299192841546456611249279649802942461928018922663069279788293325733491829693908320924374081966480490184823856508863430732969616455082422130160405226827215305075227385279671579419335817872500554396330103605292800154437764463281786777188464466776657557947831893624428459047288648567303303591932465819024117510521570008409879024244263877239996056770798581174001735520335151010003206735673041819149244026792039809092809876598888699996688843929757541437940503803755462923559769646999352928700049115861950495812696478699502849018507573298474267803152204556216173508687248703009449493015484673333734701604149260338293301362531350882736159850668458288309136363031295179315042947421232649633657805411706047957998413732086677814422903462227612304376617017427381817162735730659811310527009960730564398647151395480058931471150207764881333143152998018670818303003536121870839524016620992575552445527698011185024465098246402308102973877466906676986572225751648577897305967154473648056311407147437667821574453462350408213047632680545173487914514121713272244879788710065047126385197330922317251877260843782143341173488259831299876074607545013054338967588191805003938545081874790065167840101355154678475536134760841944701659588506782253134906010759959746900626053080649941278697129087528072597841763690336548369499568923627638543298783227586507103815127843376642390076815091510746793175430745470008875487925207359464259509250576078123137780343869037910582578941941406945266365360156693459342875126889120208567950445445178347924477400074601001538157744955242052467437681820269468644331960055096159969430038646811016394306554081476155423866987406094152436966220788416618875737953915841240580710914308981107923626550733385658454403369614881115842183984952440771192532407571258359816185248138119555800936469415022043595739796794578248527687841457020642145754498680665581604120210579480761003279506647362905939519723126644908277904064760745102646215932038423525362809485937718255307352004969950851039691293704576308635672145727222693333407337677385590808455649690680255427452376271296095973361129950141647099043902888668307435096651786945491010956880843917379496070918717785418952563893759876430195273545203873211318835643773304847167145791000733446329356607299589617382200800410704728180138366833958596269210157636454702462303241728597070817020924380832440386693054635827109117222842076120578039560157144830000702582117026211193881323356709070313676912379298368300077830128770708322961625003173764558346380840854767199849442552552174627372532482860631049692785618808889404311391378074676398520349399786636512559570487683314912695542733849631252349964987573890600083427707962129622032389378628629205366839000416268272304310120293458793743555511344517033199990938348497915793114733161173521901491566002113096091868870166652326900064042026982996562327743042159602060120635411666864756107025002344255603610423145081678561068355993244679592257663917763522839772657041327676772636657366997661737630921782670860857012771909483502860634950927123450584407213820486112914048966745209533624856761455856974422370390639049294757408200407619106597888088500101068637330229026132232739339473834584122035557404802379068394571557329677335720006687525128537844624180365219540068400667128843417764816997502964017973178225345562477538805189559406315267950938633633368977749427866433681875192492790053095251574223163112245647938409234389268656684944436532763248451761223586038433712233017484299523083143284767433301552976335411975200877100494028810647616633801787635218078554364600198878685108657305770795783293098955257215460516816149957575471907128962601802873819764104733489574064633254218259472285356072393100106167581660363506593653153420805886227855624029724466672476604716745534625963316780537169337243978565604359540598357873284567894054237253206134391298499041892987061524108301250396101496217826512376763039973215477615863658974798702089801488819808256477876818136979823222609801478753367458336422100471557988147098987847801664373446332123770890203067666929728597717236331564278289778663304545160068147526022584132932878265970716813020100003761337134644383965256405162037579300072262648366402740890207974735532401466190187708120630670286537607380997262092894371339926203481041941436645708368317660531700729881485351405590008748341531743722830575394020571144218483934808893867023535715498188194032729728311395279447128165303632302047813116119373779186982003112021349844074937086584675450395220328793848472234578892938500637305968284637149947042581741753286654529282146738570863266469162162398333465173136526154414864621450702074229329010673612045307529283709115885677890856713242700176311447184497890323823271164081278898196368109927054942042605493345059150181239646855450276759099746570894794746676848668574847507265050831756769376664438824561026974686565093323557114554799632823910329580158580272736661782412467100820352149796403184384006529369477441463428788770233507291128617016534775264632021999146351793987047882358412221923203495286619852713351730055769712937130479473628796001752526905759710566562761115531428593185877811928692530989318829911982222070289587944497310831233208025020857159325964766268599291392670122488492847046522704589282429824603132192692766579286256091346717768465383838486137639719607157553999873099285711126917434100245461338777939308471194501782197992391736323222022318174845551119819296887969675193188364474186576394469564788365985923049661247921847811270208288451721615638539616820391793057418094386257456222601042957403003200257084438497701978334088878604056338391047341947304908412745597105127472168703214289473877122995157041988023789358514095841506238844344538126659029018578923733074609846073932128429364291986876414961814799046215093111338869317548529248445616762033823448724973859148761984493151869678956208139387523325852101222921682944159856920919131065795170644207083971835199613098832295819036694347561686196123232352135928422059550221724794213555699863061171642418160002901759508308980885758232968343161253314982509263366752082987309524193551109168454845125193953400170103577769157360506970237507200133423906201931736755606181917893680584530338166724024649930810733121583306966157295197210163256516086257997791380918195810671175548830632754176359847722919533413086946292266790523599728882547318072603027204022777130579293064437486121355983535187220171963592477491622529429942510742342360213342363099834547866301836615466389379069365870908198752333368649424657903171598298184097251062869603700812973158291530717137232306930863679641935072879900193209491939802267704299050820505986588132675837007142340949941130898452715210607596189900938683155466394921040319095656623164069043770052745589820562689294212514181691639339402197362073422007030819172747803145622868226241351795681305175137780690364580169040434630207542827114393433562082302522074347784737332763611209485155382769551857414008305081921125671439304815981737755859835471637931249913261289281715800606424932877622909719854512160613463340638084430809854514363230207839060697479752888616337638330160038459437684258174324041832243493497441715395109330058769568458406929067039293968210354856544264149549385923593203099442483327450009236615703318049711826627291177755863801636965126346883504734501386000975580820764074430960214276783260137506077157311163770051232878339686734561320575876982315858286467930062783197827282036429554288025536729646059131744208110304881576540113206216275798109260696511026926217299793394285003807700084554779669435643188893562773786512632359882772547566587590632577805288130710612805725098642596221026170307275712683105600245693029393834707775667964488856477169574208350016213808630570206311673525827622533363880914378273806736689395535477217975727127250386447511450118486282598094235854797629675895710720913583954628853304719229940700083822941672612932631912023882444644981043276831013024506335172367901996831636188850459348860185598674674834237956813919450714604266523837323580740855372626925424452930221848965310383580131480376578736610278655104385837139759948758978725654406761357928210390745054869008693689371149293081768010301648835065023923379649449870277541696238243281049837908338853841906243755421702083588060278736131692040761108966393608848892727450232410993394051005567471321111681648808159140469408300120921858330605111919523130836176209911231244995111618469671591641623476266842458621459361410718465689459224726266336882081125480138584949180528111872948036931158832309222618674950798359735263300089113391700792611190933235632029383531061930798323559869752127606943738514889932547517371861576543898867648541317485814577744930378639594700292661479575943088879379531170661090624974198231476283513322761617876746439857085286995460459543460114835715140671743600084007197485052218834951839126893781387961003088176504454879147378567894209917333964296548017972734312732881240932928559729439228629213885173077336593869967146197254270870132195962664670784204845558890047351429354313702191304051295884472750654851308151337437958329345205217317455432163313619336770120735831746100643219053903859412714067794088514587668469599331763704458894295493067962394909449219032929068527413137752392424968603731457666143842188295700100560601775644061070210141933300191326345332949587291062095100506899500196649256659946506018309135614775108899286954411800486665738131794434066788039355434569565760748881968476383185618212326930066596255101537554764504085947908878934441957547359539084910607816307253576130081227315530682368735508112943967219692627533454542592251907053173757816133294945898403360001745162920051060895875572309453001271355966807630294498530845656996066089733319149468866255404981365320551602051452195829058178259000247025573705154941626137244866219312380304683197791795979868141672642446830902260623821963352663557207551941386406217815366944460370457868473997350981537444226497134897315833487340935777589402756706330426708653323193966177610216539641169895472706910820297168705958366483557826044908748621824478065604395933895624283583510990846487802716800758705088745949053619828584658814763982946199470095443311416179503709055750477653644307140079633002956626676635856109122594743857258797714391233983511526667326321713873822997149337687266465210418820084363220168502101628252070955206690524108860222342350031739468447216508670317745123569148153728535885033479468446613769049756981423026877612934064952042139006814707228981908801816231351559528550414663673624599515304602147327540274429418814956823379365203281329053414815113161586381877304209092086733323357562026398872214316582319197032244695494294442281272482166269823305751921257451316427111123338741688218797304494685402193515708412377015815616495566718115302560688514628710147301779508000771071476869330511807196159241880731850997103328354439234291148303608096402441035826397009727606687303610795743537519664130418253509857955725690600940291427767176517282469974868120783257142839710200525986474575712985743379399457665586983686814813821069960240334488133542792376969357951992936382212729294184301913543361927710847291835181362622642919839356875729000185699026721105792144116398813940697235009063098302951025612050476854991460797488612313604523211699129868187388591351042650744883516920433937566613198771418730975827648643471593213991723441037827037607883879267262570644367498191297147109500055784542962174090187515556793697383721153744755198404626191716555284756179763121135668090348754050926755977177348614808103513802455892550169670628231920801265297753467210918611224002260402676992026003356424225888857334058851743529849252548092788309746181729611316374078563278410261978096112722274317964567014583993802753733796014812784128092580660425865769544157783351196006251620401791624846103349995988030284110185653315680952108362948080563421819285777126838336847298859400215592418334672232478404395787838920854931093045606452503308757469267175088276293619706790981465733222626772325101554297339284730261260829282620406655998298864866155776640671083953910951455534622050945334688960377125969872657754940931402537970359664205466647065130175003962570630435711975760011818715807885999745268723598641768002522862056586524612233040746495729730102211958006100812929254719869489879491740219006127994165263477642411414342905209303982320615500836549533799886096520004287938838917067693695715535891139358398716883023467937716789962355897289488944528411197381791384276251336993283559613186795839844264875524859843932098699611228729484468216526224245646857597983937453524901539947033374652799130638408181717073514197095078919224323375064260013395558935656203440370059378862507805108048600503637499923346407731957820130215296485422536903816408740721899520477099846548172878387483016081668474650105562436203585729486315966364278783867974087273357905799233364536475288826837916675674458653142361008858627316810539892265092493110010347113718694717281903453587192866849261682938019057687805925067544192504778994820369115985522951603378878390255327546960119944302544399878212605560335169843558723141780534771497543263502454379603070428781217388589631863153483774201603174186564359030511215381575550874541127599762618054980796128122878938898435094649843029649055021432443677095145408853740603290893994601628863566438864671353928405532771350056589339007211681915677694013092275638478107289435201955956609257516910458728936649031431206987634405727557721377356237589486022724249846994138712187743863363302786629185293797956749413710613353804012057648464777664064017376783390350296677812865440516227809941329813424459902630759871781566920970025228045905362192156219460347868756747766840960533149094200118579583522461348000025947962624133480668978576386997987265702962114138657559216826356137996906395414887647553813986038256842352556583405380221227022006379160262529250766165816874700215392840744399047215686877835100078093407565364518773534914915197450934463361069835994752788220252219621378650635317206686945209159138958230045721833059400778074854679327751486932884195219409120967769578496617229321505723863694932972424463445810412609799779984424983722803457378993187012813418457345561036732372222621077763081382084831262977254685184276347589054453609562421256556152451552325217138603565177320478191597633379136423818238974570778966319669582918921445114260892070510605482261200639706453584975338456329850635906107095372758073995057981308048883387752957905172712294191056050919479720524060791872613142838521725437005320480081704063811331414803193072272321657211918938404047744526221139030314919365495975538038322937359910277833537528794128868437997748571263290232287339141686395315556224104166772703676517468039253336420267533984642240119085916258559967180110283598063614109438372873021660673874152291440812207190434978361324771034423409087963585075208106961175828654305077197561483428621551322267201802665189955868557462975633577089829136625955564501079489386356151463692013789394893228106222270247580743171768603341923230877907679434440833800561383424403421442633873602096442586792500158471111090326551147138162270400796691277115469132971875472358237957034427253279930644074573543635791405040364153118037415260863449325204883159274267020574588562605865964356135549845194405380780531118464080792992699326892925305876636052577072765061587398110055104035340118404365060922601483128994284361625170515987898891649450859457743852063719564658228376394860582337084619874270163187009967259541532607145780971385085287121348587953918457342441479246475487702333793458623606759965998889452452136669640252200243040829006003205479555932928102565481388353297149687671425089433741382676840436064278465067993077306319316738065341226442174276556466203476214841234323300762580132674643005535242637968853774541785413633735018336682283952432931261075765686218700314210756869657883517272049171102105168129558315532915149227489741936839733438807649694890539571552801430741747830904369580072588494302210301248711459965438266084851149959248592784463882973605394196470282094017630845738435692255057342252637922374025434588286160855432137726767989682713491993541175638406494981837145640886419111403849317578896164791299683219339010921646999499102155544714438079792033290008760025308581621041014088564262916655883820819097563367437816698743144020445927308169295482468586617726562955968797227178886199339813871201437906889777400452474250601261343109185690479811064411752477611328941814854594133846108462509959162268061783208128125057469450387335394444857493211037045959768344302408715630614212135440507768101285621309478565904174663422545888107072981871776184685463038561469908684555180390040064934413187058217386531083676738137374945889304554186050804543888540864034643640462101711234852350181935479766711660274187055230341957242335764399634164466302140370388412635442373029496984675461009850949338409082376598579472871882594347895179297581360147167821695573694697916076367117769210505281943150931547780694826773017934028126607935281340171174641583495136979994838060564213160931677932212222093034651793460974994176013788255294512396849386132687458883469678262899888798240525702181788527750170611922344607880552138527515096222704277210476660525785195486935752967779882816137216652707206080237235742897352375009821884130878962035346597410764387552518280016514267374645225136605778914234068299737791187538668528088179667484625989289792119333454042771332268958362925987604037377555292115399561584142968127173230085762906673844157285673233788314267028851226025841003869484656197891130770491505228348697338856080803655524454478366660998146128586637216167375660233733709878619920021567108384508070231634999740503414442004465615931962440575916110714253790738802614635012999425660122930138207201079667415820217809967416099871942373121193091161980952704558564550727665821601042139502169433845588966471480037114311223244194879982819438321144334870279436038966299668077058020146131535056169609233941020869871917430987317178691669062294523850383490913681796952312012130500813005415065691679563639162256850950996885471387486069426899341676906450323463702717035486526379935495672497645995822481890788362097604032668689114746404858125773356073134129613149639599175906244471025774623891903384677999608761071197586857980393120464606805638108362861640442904744335359590663418093043323850995637778976793178288469866988649264608555863675566852043358200963410397888907053739226700804273894622442977188458564380996386394170265065938016004184322659079902561843821547967093230890420354578047502955785717506199620714034869848508465149373576519560932639660814550077224091126377615593211319127440994319668116575168800747238741278717772313996148099013626646746485935718639715822351496249942077800117156197354970022522583684535226691145840577546938705597270448650314693743290939231480803752396113367000469759492876183074600073227544393833528470506135416054587149932063770863541890923666775050183307127364114464955151435073307069938707302402342408149558256314202475545780859247487163309464102455405328368177987696350322811785603375925590638751393323674647719351484816097552390147262748197858694092489749678541135196211345572227928601488795467861476066707936315940013417320571540165040225893873988300289920747029773402392835200541216206743061778687876543861456801177720745172630083063688574359146651465672703169800744560539635396001144661544397879210570026354914837402348933608778494435340139745229888729062645601417693103110895368100735626385269611003412729357645821782875275622937674201074263500632018396317488347837850610287510602981402795010338656272022134792448843445111531838059583789697738984404547902595096375726255493928876053619942927231603946588850454911186016533154375390801490954101138280741431247898401760039637095545946247429219546725677015510166233659554372496728917718761575764743395400130338201607636171251143289996025865108665305563053805908336912064714201424462588869411082618925700016229667825644395950522026700740164534646772786940213198749130587631749899935236976410173708069289525118802431998204352168180384386185216411361794434658714195726123294987795470901225956625786956441336211233552494246840402747807774017484035978160135878590652387290906213951488832492077547038614894953951888198104402379677189293328259838847440567231872962641747052745026135650407053415801432630205469956501676087347190205383665892822876360357947895913395936271704724039517699176327206914719889112736105725465542066061794457806136827775873272195744135721712542320482280603826125348347612556604774959420208740826107371028432452415396078633668964593959786115107581555996565125137851885700570814752575239580250202248321685973781039839223607026747708799520483176411599101576644568309098498818418729091094264076279120657287401021940498954739457298286282304151861177708977468873208505509169086038154946437637309227692351749398563695110324940013823435419577227084388075234371550601665234299088935262499608976779532112655110027334386839467256618281160175734567495682054485898856163953010883825103426673196336102495313342384077596952159099358539735422405837928530751665896402987340673610478647851205860000303668594240291183021516356930340612823983818569851044181245683529574414626736038807910700904028461530237940656077343113296416380412087177498761245054358607973643494817174334953560697125687180061060708255122418924597236977352274509256505547293814145247683889251994300221070838905644728160619508217273526256714993867276302291227049478991294144631266833857725663896756645944770273117987396706972656861651123855790187444029510105507211224895896055593458060834802950195351356098344919842701720562337138080801427489257126394997584930163083926197501949922175935864842360229114507607030914226252643439484889384476661708850727559359112430321117258433974198453738198069394811013437277929029986750894067080998917364551482472937462851951965253781573869157829021920033047404815024381003499985458864308773499364211177036680637898255966851479503467719739254261569293213624164766490623348750077073448280993157817849048961912346553044725077839231622677030496464655072504215823166752151246937991219810540523026709098280116249909637212757685055301932533685143204025963332759347626488518891164751331389134081995888558906841248421312723835613745531351780878999933389030757722645458149219099963551955236157415112563148729307335424124440136492169848151820234166327087185924931251385193550252984639573730047566722728126502776149173291151494946604345307100811580484266386207189225814255394023587798118873983120640683412058698898168526065373888668388509967419350600012261605522878908771263810780668535170730991378440770633993745199923076461702518413669221848255732094689129857350748316882778916742960105994707707873511670478603662216664203887224826939442564443227066628024286847530044362268657224867270791697354684979133200745301365008342380660347288587671886825656135573684094364362332414103680709059463500862796753585091716100051934804499334759742835972902283746968459204839210747183030206609720801114399702099738076375062404697290634641256797912298945218158977245335503069680983049104534312330398263175488751914569940353464765327870705014268780164664365292427886411584272509155869552074494362859639021788462825894014002314480678690343337273505610806664543490604619131980929027580103952285825599041113380090270977415084031571533088544711811291338870087005893576864690949831049581833424657490074037844827727557252196663923549119387978103781163863876661444026454739562295587790773231060861599087793989782920073751503571837516240747872691751682607805776055400459217560405634311248360042154929440349290257853572267396295386940945798819847398485384155850252100837151863824761076192729109980077736069287296411933094144096056749336322764263048424524921669039612852603571634780501965008905274327653912138050023830549764963119054979232775141182229626314957827351332276618215602571781544344860050134801816333625810357594714395239314915198983285890524610807456447418188269898100687288151338790718776938918859992778044969570706991629587246099772390634078512223784999982549911562396605819628805225763663387477763664034797340610319825950832993518115587656458005496530101472493281036618176948929683062737790060739048065494709634732921530833038330810804055055013171854155813025209697497169961731639729831190146387639432939359886329297550633715945472647735821912571467592238035370937623489614132537259214803097377886926805814263646804064829841070884701075970196702586886098742594815614664046767123414138218670937701783707364477169129007587733232738478927270517811642551558218450500745873148027223234350393671442022916724941335908973499077870339714647810388940159577134264411103471176614587896054978482593564302262315363651444767956135027408349646701630419378961424423831516567267839935801401165641720329979719481207076347329853945100865457357471715008604499141869381965907664497802629376347192925456071477509268556849349995179276362904260828382751010920547230625776247469740636296537009475764178427886801756348607012839168939871133066256710143452163218811778565234988229050481351469577843939514524815721003724553343607174876647698144231378091138146732861951420266872904486644898496886862627386292869907630420538747333738709014900936654773417572014234333263996748525127092026152937307589337077851548602536704755438424199483983612975646474178368817877697578301605866254228447806696427271229061433882472862596899983522270598688607834570292387517156889726823131094791304443174015938941204519277611444950258199382708405645135273263951923095069294797095999515754898212718405744182519398217711454960559364962383237059358682563007506198364397293978261988053370681341971033895137284159125088227927288593436920170011547221839419626587107302640808331705096117539767424133298609285164155498168890071778190921871752558056226426766051491175936882730635284544885760154474931596878799136889469162782926591767227169047776617220488364986840862510474629286670206722176378002704007391977032048239724115716047602364159594872288182219337079946327688748630406562866717099369363827483473819351439080457641834855995465157312033106156257578861279391201490447219151148702135497955520124547677458659281450278594578035310817942109588915235186881159072332333902562572736550996444180762659241925921590015785500274353644799600303298299148070703013113356607153471002144506865616523381103935471122412144419244959440323913917968132430374536841512343108901891555165074781159374470653596359836269377817438680536527516448725941860709505545614962257052692697017082872926969270304420704296437087608704033623428502478600095222659706380724298061636211922169253252776264409490384125722551764645707360176102020437857875246287181721310717678300721655185090135518020526671325736461298451156621637411678483532653327722591402999740963318778451919703596794916503815558394938882303053463893405612620270329288189967033826056113642515946826817369474680720551486294111306011238549030682882098572340245568725613963580757162169501180948481675844369607368539830438112603991025229151244546613424486565389390860857033001704101835479221921865495663991945036250597908236838842840226059977066845567125035107732125538563947896102275037505268227132661652630164978006884258602149260716872378033504879618728375101075570171209058556369894823880440983627072043344592891026502338545398996047435021251889979394134788787704660691561680824648250630548566858529172890247583078774149805216750118816880037378324776606736212736564997367716351442763886781021250678833577799303172101251562210255967428082345737760175868266399481394836819719511900520462795098002834690225848370098705987471787459491443207659424746244812168014118023360799687808976069051892567378674488920678212987603516776236770896096746651240340216155308760159041402983420019967516488064097626562300859171972041760337668345966790559025181705337304153994048651307800454949010690873238655339268096128608287076471224444831518981701011874015815970856217004429200380595794349159385047200483900980420809542738888259613335840972982011128476357116112121088288766416335248843729961387743997314841479226877933007638552979461171095202586884974676191305096999286857019304256481470751051765140248637778587632194790722245327637737884427457076407821731907269280798743484318610347833317117057698950913596314865301446722407800175977472337784600050715785715021599980871342338357673191021684417706347551025481053357191135189503305072579323618229701823617643088413610204499286943902058215021975318198541844658350753408601350257893575603473188012018509569415542543230435058243139002291347423504944842037635474806178094025895709943896033560563465715936205153954914331864779542548300230241683310609720461729050942164144537494678836641338478542851725190837738596330219999759430388865170238610468704051393400644110833207003906705701286771948007288892629174329977959125166092453343174513384780705652044349534481196666039618238934444215392004421137165113366204556122361804414456089271702892922078221277763601390761839589872164304631696095335031921632575828452535717331806472508451101373311433794225875316913405663881834657834825621459521238197586324245013341288390805314321367096283657471116142666201240739838209318851865343324473105949151149978875636678362178333091955267683209715956074820605765572849040649558301548094159202785149442354871867579820141705035104718707564193589966137553497971805673359547027766793277271649386656318451581745209220869542659152674258816089296476422567309201870096084899567203326403655940576355899608472434504881997752327419834026804806016621453827817299867409768086448400914142325542334962610080618399591915488244475379802143319981878471033236755198482885964596431606554166803349247800750628571773826417051639893811674148626265377332421180702062181270916454108658491889604808087104042243771830504808052933531256916238735356075109940260091389472260194257704706658305784159354400963093248338856596297393908295628732179283293574214392659386565823116315236190834472847294951579698253666679525142682200785230136815272023423044324854737963279067871436312219030831131545110152786233389999178946634816714353067366698484445131879732047788601153580095899793763123415439807086164343108590949299246743639405704404914765568427010740678525498406057770506376280620136378708213429772456538753465838869574677041222959204272381102660593118852756049325721312387432459103379356498146225261516106163859441865722312087899778355401549971655228996933487659996480133988940239865218661762195178148009442514052714594355996342986532337188633715162615569474025858629091093117745157194943313639549993035469936325966315017466837103378126591167397488931760963760093114733720836771255354427285391604995861909330628775537610122529791573995867800292161034769701333118247335402418612984760646122748690743593942350823945660315897404695603254938366103464248131334041729944094164540216447608581502763104300343801053900737545593418821094457090644747860165838164049535192257542318346500478274392952456356198902965815204107427223650074200704810120866619531746855354591121061344906814681149608187986756833256740459791766259126334532402496854007131745012802351331402153415449465068672203400757207437602140061484159568656255027776097172780812324438482304429445317532045634803983060392725781906065750894234075258644548102364693702483509550159556689099026157507575398897739642673507770184313349031234490129572537984061607168031675763888322387715679081752927365967861456798511208880780123895860148332563200768502569047466865121923562166287821867634022385572235237615646689212679340353541256345854973603213913868235264942122877536730202099955471622141683900630773267055721594879725482206892661229172009479439619538251222602252274552167453424682230411002426753838273933839342360518787069372408703581313985002732425226953858153349879264295639401031027774275951841634027993571050651431200258467845856410923192078446567629760959060266009723815536096126899466807793365509644194989055918228599075483502585825482625201271961285125319179161289803867708901573659014960407883607297844553058535832402036563451056054714647017204119568607128989963747204248871842858262188022814270900547268526338881684587188005425986288023218581916983337853574932610883316090359283427928426112217520960063986134514326518085817164031711757541991526902106264389376983070052087770199137826874506849642073707983769389512394615407055861878515794560083617557036970645592977595841902338285797300970236793324427028140263122916627302744220565459487886971748567565340691971093748385688115493779381079036950067223310791885850432266329284906212547148751966749331695259216975205582895995180409242767413817882304047805365617333766767613433563525983277535997913959666154724684204580989832267456581454865040550882292855562018796316775599000470715592108423836390412679852689434723956270801375204370710226438153964245606716936368031212273546606494020074515416850817787609864994110430157239987970081324961696180229004425884913485896344990313060556503110164123849504275452471179450541514981404237511906301042820865674449384340025155945618391419678853418048363466088248841978004075122784997575856355897712918294019544659554240005380642887585277323760591634974778589547362863046166101556673476208771802019629216305901967485591901690643345456379090030423750249386746003217320349722349432467770939273211388820735429624261011428068699347833977120198605739972355338444009906050527590685430010595041415730169077178676581254786068293633528551876926044890974531810248393726539030450722734205304552147504408778821191105285950919909020538116832224155467340633079608797879394871066424419661440047881542209041521682943322823977909385872794893251569723713419833591897246325054453157919617489782905074229700451223161560049837863130777829975341661218549613758343053638308257011910327149818395067841621932842419587340754939821041534894403753399119519095995935241100636273486829975766914385749562415558694342078241094627069708247864747646652124579957468059134277772238564301311177359789516494125790739456319770286065889863480914286646559964701650984702735428658284468414439552171043459365733194650878802329201708150524226374026962024167636344837735060390769309962205936850254393800602536035530441790823621711226512275986495389250262650860568629009845353980219371984667446946238731529216696661607295153474491456280556907391588475548672097381339506870983183472341252346560260078850886537562483722330548757906526710939835726297577038482576062611907159900472468994972571061264427788384746426429590817357572073585485003182637766634312261230484497770411933089825930161180813530266270017134668708991212310183049392188952294777426990554162584886020304181492290916414547701236553498836672956322536392573087356602169924753603972030252640871057336282347520991164962991575757298200823874561976266485227185959600677646960813703678822566346465163495750903998801078502314863210533323653854047799154996499091046325868320710989057237481461604346082368749680633689783478523249705065158359553713171780215035913062949397187791954262928084794305121674542565289127186497963447231288193141443579783286315520443488813287846713901517124692733548524562123372139223159565055166225314129251273633138698040274024158902289323775359185026845943727933925553079693806022095591968361571919229949970976509223952502954858836789940799638294500001034160653648476796310576576434486254379589671487682327691284004731441844634806941828158273004737813173081089387638278115403551915674455155563799036103773694095408151314728350753674929770918064031775079846704073155173139464113301404066546191819828355686260516618665780305840466418026708909213828078212411243232328889370077286504925741419708819900113371254373232334143102274910310400593043401379449076919218446695695788466834577010673324109286696738628781199477519167116792819781679069297422726534031858678975869221634951182612308449140734439163733361615431010524738639104500505942506657957444231447258997658019505085127132575046835984501468149406442498549802130012491047464642365492225508732677779141589735748018002857924237680523984611723294820945752771130183884530476300652319707782924225945327690980123382263182351628543969755511288373236667266185875835721536972613134568168618100526537892633298408717208091391272077757239815579342543169727244514412557509369669688698693817403844275088604213755875811441217483111481556525990398794486462263133875615189730226789216477965285112910452326535637971960288783008111262700482338570696408003346338920859965135168184527115399208675327804676848706603500222748491875951020037811675243106763694100876331179422294835665313029488451726246041975257581907371181733738860151591744169426137617029373262123059588313787566300023962271522971933461652520235321879547474468910038889767579602170719798421719400089472950451405067956314206848534607800724159380861567334272860155990714876119681284273845836949125019678499406247985704740240205147495353738978262142231362047010143035898623636326993551667438118065236858354245203092343071606595661595090044802004499594497623721542939524553771088128665212076100489431459046924721816342355452770158554481012537535298854711324316063137276210152548102038724926725522327379206059619112473817340738637825381955759686415718776663427277166291988977359275916186499941946839808064212868258835072210054995739302865908977982501148803573691147957904360186908199641560248497108321225068260310849677221019737471710553481423440562522234152165257178518396524087139078136095233778160100391359026339416020022429016332393055596953859069833589584307352920027033739210326966794494086205144749543921434579349013078420537663090169324662534394568048831543379638396249352667385625917923178593597831856124985189524093569369590165607530477039911874070509805616385310648701596291604566263984277364778017136219342243117800269200096108556122900244178586184944744872091300115514993944696748880323981641810844802394645085047405039426265118919038547536893677088879174620066148021778495311606434955600027782877501284993860899661192714177289055316655065279903874933435698776234475414565941773409368338111628150530099495210345869221539927044537149412671066310743069110699747036114428069749965311897760756827063330225761086513160776026225518737571122817430660255145542761690537446727048321962167476152433176654658231021891409389808290656438058184972376474650555611919515410523073262428612306751606350265692354823314285234603764133641550605355921611286782999095646439339324116398807635714675165932994293237232601054535331528642977276432942629821112018297232205913936565852269029051094847519697436569068414399856747606595974372053344883421166906283093212446919763592012931698118336516119291624148737275758396066376970378018869494467588854624348981554544806682517790850756044142545654052442232953581667421179130666895968731871924546460454145189229477659802414638526212714149827597277639867055124311537140542517098306108041411845410302131766453419302099652662203555033211995121734296194723115517408280116305235787124721061223572043160824729451412155015253466990639856720857058752414397119966689592441631467741657600636913849691244746658125399274487918475661530861695300736703956431463059267209850210865511701555402972850393812601747819894273477299932685279290432622256931208944074774043615199474025711708095572778949220818432669359819437093461886647844356681753024913958434822019611428851534753791462734776011271092468312410961920881329807458203168809417674354654641795724406135455114986782359647193463826674001074380409789799875967117815032722074088123938966900036117050902292415000607114602999537687508466754692395353029421006484538841601550605363736037449450781569417364878705476949614071902286278944017620688083599941418886033248762945276374182697257543840558697538603047226003445893789857636883117441394572429923109936791918166666147491920331637838144935904625758711331840392267486989695102679614581280990748853302479822825581174473791505005310299379612494143015427228123175423079206393040104740049692417248470978067692043983458988438140468548122484906124896449438386041116273768261777570694197716528030985731304891257763260647064638700663174089940422262968419222619526606439141499749416922640049498798030029853617836513925700182050234925913921973428130426948295880638964022318478089658029884813690414642757451888399339477907087807270925680031935659063243679421358361637510287959536659139637772441515567043087793181389933988475238636423030320114754671215519649992996314541140475416047986677053963408941309637062816833429621546495567818321234165542967480119929955946180291243860599768003448382735353391601635808272582584962618556208879315146465191577767018498252776301420612652303700485296574754352710655990642974109325594873487543336820707901521017027623963831689055772883222778274192067220465605778752879529428550363177481386897600231587840624688929750384009300442270393534404850169408893953716149810447282634612478850733519321458845257435892459034994802810546557796170105585334990581887033600077900870235611649377890625243627332740011365158585928149110748130940591883856845856241019927475524100546928054170801901001682296569742867911645645578710482866487453493445170147164566994643175615479755598095633643763403309227315139721256837483060428073355143354006323738416426902815081886686382508224697872765187286172141551031820182591495656322352693284641946925249528090881063329482012796769754008663533098928185569208219277447084621825992701320904561180878155771978094154098864873786623533529689134633353835577514151535655075908049994187926110237867232512379364642863072922462431872139006006477326938821806778011928872795590667949221484810021669098332672861508362619766224917477180677725051189313430457249865423390874051737715162492091054782904733335510564211733946126790255171770915674660933059009733012682030691560440570149678545505918374631613812232493203932652691930439620298346910673831962910677721154940821836980123224841153706361064980599344784658989192814773953192039182263166450173177171029396167277199012277957086315807234649493384385444681658347359431720355960675437788196534890129922872404799707808620261159754140988506950294349454303817991178415860228351269702059510408622393900611641946254981161176079041665455170272738661218663940947910974302132349888234912565252067868113152746022339209271044225025974331608748925514642985626743473008409913257751878920694573490207789650358149765362018411612453354046923426368288788914088603667595166364999096400359628413603650412499541605936255215828741836931783009072082186973624157157158941100972778468564017277531396583542763093191525419079009558458822155601514641708556452037275107154311316888440572645840791247033619822352723484807620484956278571642159703214409710232814847342635136558467649313975593436617175028684671868620464913718855760877989449954511696099109614533256975421831919554819873276864498058902223569773801465613402855124940230675111111551661972864306112237678355420379052545231722401157127383822298038954815068988829284026853399578459901611301267550077820437145995623844408915561287893737597892125831324672685742943281891885133610304473658561509520857023100206245013576605270146030877030600787456566269146416821504485253913570617950716265042207797601410891222187606233045918467000304132004598767500522173956693515373752879008238656185196710210342438399519633206924617534708940964252350444983401637926993882843665758513209243830932554046233436937818131899036917459955811669314069500763162843076493273810832993749456256351790047638289327097647262724397167761778398921157718217539599127258426805718336250635908125279501050059664884358907253457119091372893586745566474810560157658596137344378308912162366288899170757522740477271311838117212079108524246334195706504840326336800781707256625945063551203493359237269170348529859686473365589165223455424021771674219391807713682411048932728009566089626899181755155306765285781536152738607232963678927874660564698265540067850069701218251213538721284680828682436870893655232278260018757696493921202867990919796816823732785170564919298150510890487684168035215823983922118512006484509299016538658208487303074783415739104457358638473241708863256314927051316082570084783236260614606175668653572341754634418569182609727991627887212856723019954084503960304509221930509992115350173215751704328560359861482401318197718221098127870771372141466163236033061120731212696948559436503845791235810378828729604013786949936176044121091806620272170751968270917401264675972604222415158778562679990708294393543368440499589718902961460876833961213810532550817493670786589712203235740566875760298249211518818844882705775234906631099392277388625956819273749710726470410125775213474400850469336333336311969022854443920230119784904263817172344609888793254472363159578324025058138695152322237886930623462457889689495780600961502434670484017093741729476150858662302404208082096110710689211592433700097067574292921121938717721924910225327505164752605208871551308543424551469784928599938267957461474306397207372910466909009058840954151762378746372735263783476119061130199232064247083750843880583403183693038976337770131978277402766145006433693503037679418510743286564536615846728781095411210533007488748603118473678596966787519983414192347260694308687410700250138044607176960282240798384567500961236281540127542677837746734687817173362952939355424744101496452262606017055578283211649166191106449225001468307710167889392557285076040000020919194998380570005329280920782454637142998668132078649838389363145466362780270415193893482876079361176426679635412889457949531314169330424077256541001980411008891530845476377160529731184594990428464801957037474713521921380740013792916915818559441124348754351961726466467108513157710142797977449208400183624072695769870681667034027102395868755939879007865843831840914779755642166002401276786372482778775430487803763964683271405751690034563152280708178064412342158986116671677834327895794099073562351582851384324033826939951486973605867523115932121837038103103548353190324672913381703725248857998193649569886172199969963070674457824362879937516205166723585557469436243308387479875176189586491796198879872357974472237911302780915253747840605090882655757410620659890694589699340417902168196490918546294484205517661043753146656865552472292733475591260144692704922923341919836138917749327609587082757459162394367009904357238074745960917882989588256617682671185326008667107031168919164736405818508054234395359143400646023628366660320112852045071320109594912720078119389498752776713897712244379572044708158264305703137088236104771889962312697946028488206307331109692006164534464881831189598539448358057580335164280959671716128986745222186543212190140636638270813956475919785496590449389418690163465008983742245524439882467445670456490995483134193594748509959816425284468414699744841316530753383352360033200160221035899372972886099593675261423557551279432978522374968231395108849742014284480281938700188621979893646176221912699523652724987037523959049448684247102565917475042319332276230198294654607630633034146929767841684016781846151341869988436353928177139810642702883070177960038045141977549647157468802617265484854479178987419724828525464361663972666970551598836672893158642513156176029492717462030626743202479423059862721616063137914569209678123438345713325232915962416643656237307501972947274859910508804348459986191820934265715594852664343142157052869342493999986911202782503719192681558551410655889213700884168725851605139990313089838109894533578066491955782822587067205083080536919675395747303234044597642817264009021776047282380324437946296303979985076170580589987424179586864229295221251184278917128853655009762644207669387709138953085142567672447265702835240774587209615203849602749580439121954183509587158391306251324760080733609597812149571576203791608913353466660405072075950320304571760888491430339233296875948741895354282266762397667777084569141824649878232853335885238620600215679657632885620162648065046970734416476911494752892506593700701384526020973219051794416696697478066608459235003709949354194781291217161116311086762770556112035589315835232245617734762923371175158065650566490196534885551955194212821089410525570184819500674952269228011712661918630884388199801209071785913543734891545613945598830709509081915203757712469502222147522735605029726890661833842777252631300845170646871923651188986631345258864962495937448701975034315396348601229836916400686099122526603978556843304131810259555319290705948549524276685306983758477430824153818419819289394635563071849830987505855017142598570703366206710180016793500967919601053886885592139229917738755330997376313162878884015646107149625675795708468949531976291883982585504917752262914473927427394422608919223887441299098906732316104739999733110876418262755035302870873066730074315681913834664643423688579392863051058569902652228059964196731289168613551130834367519572201419563737195532661040612085895325978212181936843599745933829669721468551735097590143681249516626254879723163141440047497992581846245964480599422865045514429793850800621229844488807230906024661472177486710777015476235312865900219506331141850639727509567457863287098002793495986727991922669382261896344735377914055297208336878296510016291352791350205896612415490396059653461486902465777903108013414225945284937185631645124492653689120870998484315305957116480100848152468688273237770017868561738511958872575656188384728762508340662563260951273299206194600439267455792443356777617786300541201388148065985693945485682603064327072880314034424643674614747227739756204385440725315793117935709403363836219758708060396654783295065419421609080889631600907897873494822382626691476949448905792856432761210849014270641865148044471445141020457631099291006955134797845693869462793078378741633577633348324084567485557499399298787441178626872031278181911664999650334032667045350830137934822902875118973090261378588240615104109176497658124554234641511637030326329691960787219017918456309075526306392133295461119967619856506817445656405039624725810803100062005548524530029672995987738294448541174199348234425748197042424002976296837608122115891716081867902619105498205621263045340880565693795411018527428902909964872267863529277511260342499184029987290617566944724675588748828743075310831076551936567500255374026814485438782946723090189795043279578203738119332459713188129552158267709908610623410015324040408885572156786173401589825492582810285997290158221580127429675782109469853912752640505645189263941805824391258490824684300783393956753998892576955743545120793977073613543258636523282779559360484782969727640399833169127367068053766400442238474717383508154023878902104695056522815804095083053209220917106538147172892047455700025754914163550445964188962615392958806031066039883661698920328909897918138826301762324916129906849725017228698743668977856140205929952469961103644678920169882515131215477193017176262160360960969821798098654381014786747307886582727085136817000630273687835660780193888903684965039474500658403482646821494525479805746187867536917966952665907939079487635329173424778368925381843022395156891568920963111908034369028637794050041008745424815570799231045197002499336326508185031033660620884800688066681288103504127324646676653513836618766456378073806340285312750503317884174780463473374978249043810523500648713043937274320649212769066851237571402603975217547361527131518188071706243622288405701633459084951677214416424616125444414851603717694635561692132988567956026688650600896159920897749014035797330420350613124135623638084216766128081142278150273345852619327504177748630119968879440342511919984195967349939452722039169931344618950320000135952631938467888711375747027720138873110384369228118434331679163105719935019844085783352929018255596302419890722856577658297655301286697636977138313997681652508165422328854165389370740853462870893790166415382738780811145574257851708563601258546334148557453130739081322965111558952726021943177017924849835456563580134475756746122656983922087429647667849114379848215552296227734485969837746799959565274096104479988084352258029531408905648552104047557306339142252124400769935223304905728618295544223331681234368106767480888740734692802684983308580916287041408348516509163934654183555032387470641465686156400335113698600782679007025122579592336974825955833244069573304833658642958622260967426764819665453552884850222374747223630777449566838079755711459390923176025053103095232060392284496276218901896711916359220012638522356685146410949847752680107707575802420781725334041364371896541026453736163975306692196411097285324838981184017707185712393057656393455158553518562627623409284707972351538343556010827391906479328520251131515964623254162656912251849006148332644479492776294790416206093769798809496320110813178074135248771978359247443145586346404847245249241096144726607229791811164839882208282745230683062210976554935978847384052499049738949025757127592010998940345406244067030161497096315371408041681174118251760313376065102426616092529347334721786882445725476199430357084845530991357554961526213528633969747134401054129068462161606463263826920169076631895459527669496602823890001820183926419613012745630322246821635029888300620540293937167687773751145926686068621079881412388496923587510413184071309188366474180135179178147043439089560460332677780745210347320816576560238913972209721582826544577373092356247078999361281624650426261666692232867954962345879893568726664713362652275410060663265204881553389421340080690852277251898669605687080717717348274917552163995719670710189137844599776941574192577745589019170306083292962582488243695638687967296547528525463052835922310583145890048553666326800216655304398290523294014071289079156111268555057079379091392020065423503662042966939523862736166553486980066394339889816677499702081401498820673188808308347069559553385262717608348048161593917929881601718049292213416220325196377343895131423157840803948029122166216227261190380383160393030788093830902535739830965471834217883501573174045905965216373690035828841773772424670523461981148030260406687419075331693122069267193209574796816588777886470102236689956342781256755292753427008948542129161406426437697931323393904805398050085797854587121067850917771765628091801946269507733625056889087881760200748159915204275337837668946652069393443587842759402474783938654683031092666994071473622202373224423931177054922422997878056294976599384439006344322973783836071700847193323870331355382968953063623183324251273028675941876650529365989969259778778517856411731627552555315826795214887631223640856116374017940665433724347835304722246163981298693834846153292295753478404347739501651171897628393241543531530819641818603475996470759026666771211695939829502780277032454802705566434989511016604628673406843649159752973432671560061831731772787795247205990967267862734514154029343199850699477567908420704552632292230386827648882652442295416695907481229219854112611179960227418618610938246107848642655166003841213895669349360520287203702889852096268997523512067286592258365786453728900590600468433589801932520632159196124382622637810590791498821549725987755625889643234218093964641135120608825060990782673403654803184411724336714984592827205370472196841064277104997090292250013288560385388772063020683693101204432764125608440868215110363133213128532976702221527160593633703875837305311166479891338861008474578329984018511829523594766762709796834595833880281244041149269565309688408431474681548138317256086273358343845261466543511862596559188072194280841506209940845113477976122572869969442508894660885197594817330150789243523697296012659214070306882132942486417336468175746311335195850146735972821905376517673678412146346178741593316073133305829975044219648033055777607312742709392064998138065452102493586763561061693024891978583742732019071630839581575675143711282360618839061211617368034879415254361660290407876947698248238440772678419807853886455811286806714011555820476430211997610845586382773478147402749937792703924439058611372685748987396610886982945107719931029076583400090768436594909170757358110136775777403379231763587800347029788104440313965242982675988322977704761143519034297384913785879182143365526072380552612945374874798436645256507764234158938774413010998146496306660379726534430852265514134347400147959711264124542435574390230256317846735431483084949626650245402178996710631520899568571442651596647801917570185888382555957989867542043688448578672581364342594364044393195921536262111808858269442145735041408379701452169529301361976859074358822306383152248707517116349850623316471498107496609360163193361696432068575405292367257077625647750340770999333443301189900663264373181472320650940170730555562759573487001140724314123028949689647184124168493874140394849118363803103085589912152512276736804547726644446328610209433244418413265187419293172056220405602385623733288987943432143043511150803305552202829488172593489167656888656770428694563491366626287979459260610381360432540011119188041073312089913825599306525883450872655181383264564603829759482406519132868036944745473857522671121660288150876672940191978898071120553571202794734013364527762895278580658992173017989418285270238658432708669916122323221357889568978291836709389083383859764184764810457777915454657572309783771633638625216303244813058731319183543800687362177168447009027591732031208843281831300674713124234842483829708271089525994324842016594382458250402032399912988947975614581978130492634446202734933292384382184209070786478879870102730023559199769359949741622414473770777142608449333258586266355336404620562822270674504665016419226344552314894075463946138709160975000404252786064144598805956649144006041244926432146311275250319805235045904768757730379882417223357259772215226092761965784451590767070393307536346611660482587048305955971588320237319853096124478241417830316621428472231807528934101669463424262912657713888489155262473271172610504869899132824333459188911627282812753808018602873345159093621775297187645364010155939088481789288282606553411895046955995399917684998732237039805881144890904144245395289358399490601248948716413049228452985391245121221762027175141247017006316295684439697971922330912792443747331621923688577969874725616127380507278224660540266849490344615676951115234925933746695396559641737951065577059336438475119737717104436670022320831041012496513501857986101631528193453345577652702781843154031934914613603204937926829010643595961015155108045265391423766158851754580816554838903133075605088191688371952807962238768410323748754918940715930187887350131473430573287371956017108690956128291451134789041997515848474651563516844633608093058296954476150741086985075374546385412831664504803944949729571116164830265962734257840124561780065031613450062726419176569758159783623785711543223529694591539190816151933342794679410350565705316783104722948932533847140114404153627748922897238552947001905118755915426667865587565823948375589560456804481170773951861500766733780320266634954317349898183594608938533383567653866428286644709676139535280621517046269414369302455080223653216397673859940448032347443208405865272023332772160513659427671876736309963937380561571310519460166695055628543050094689291986658201566607649131447541767757887297682403088382597691236829139013493994678026621135710211765232494539110599948067821593314588962395110111113540904947163220776613053840086676892157519562825963164179606600981913369752601601996145717435973921664639750432014278673702621084976664765786033626960972649335815196592618448738362974730538147199791874290805493211644552494579531243466772711299716522358931021840689673001478466389512224089590132681623516544119190758319799033165523620740394378462820227913257117729470235209417701235307084833832946259940330926071277106860641979142175738008611272571100328974023149826985021436653818660312296386900372467635489635681293425862281158653716825493099122201210418034349217051633956955040920662492242988277329934813236926491153476301942997610977931089554889660061718024983684408059938922087228326993217207806827419999691236886456712470134098327204576287747406359075517070775194810313467069468594527213886898995633630220990475214513822945556088678731793871988214691308869488241938175730115189450102081411516624921355297470429802806708979226492994515975478517094612476845910215509367714462559933616709185707788590429621280960516569438327017419649944704130728740030121019552170677767429383203197111909254562885043304726124974283329681539592778962413623771474005435354760413294016094129651591343219267827440500265720004803670322446710094416568208029629680472528263281414866293042379448071221321954916966254031009123192204742919259774241241744255156279082363711508663573295632249105473547327355216523363583454351105660214543895930346248276487903419572875423925178436513781960338925246842998652553764970475171120184827592162837194477798877437849232695991290926674700224974488743784442644982134993310006866654206188684425869496106075601332226865749745519335981023217647199330099032084402386588030640813534410715379548876645332039297461021720004637355211314330564141077839334511630155054171583275372484886832654438860944776061701318222523296360328177883392230431286102768202974329904073742345188387856745467850406579669321108146178542704685084807949250141548843795822019333124970003485889608712919972316869707814270246887559838253135986170794995458260022044656060532155029060842180512518458714371725317319620950932669421499599326509603135410496797993403124763821356793756334507056435209236591678754535032809050124686675691696942113482564184144551102046191943732505412233747295815505324486289276040583121893976784188247902992494818161331467448597863173401178908826015907608564555112596949437671260643621065577176741778517336769829855440282920213281862351202168385307146159401822329792121725803937612561922668864312440931497374228006800355466147387042910393319774725609203900349812274645600576512923055694862892977901470848283035212888716980268252857302762551108789087823679657975178434454639628812928573573494446173259599918143584232293030924160641580799902120926279838730364239220658785531890429837105109869686992046469312335473620711991033489052262636833845140472343937617665292411054412581454495132524276846325569014622182599782164226027678450558215835177555219872890052336714125861163727565012004723925454573710631573057395736760982211205754017744601857646244165806231552403338369527237133381784094587581739118244947670469175078771472639366417643237709332119582045606926806226847302435458595427224082605677758926085074100008776551880092203630106620971666488175504950456700104274834280261015024216057526820840765823264892812228305432771289189666073115398481444878304677305374482626961958084610447218729824458893125366517674427995176665895756606806692384972317284381371073204469147334412361952893059139846481055493358265245004116293331565695457439952955318573009606938405044224879056556846638562975389704341068089486844746149454411185438351923767964207485547195012004634657706769483615967452547936904107883519310996749958951543340554479996905326134735136864271293134191621354536299343601385558374361819638088364703943022888948071111508277533518143930465101673280851587145030844381877819392026803026091259925496382508370886325513467672886802188553799238299542103004016513580765006950320161576503420920241541025509695750733714515509627758929497002537242439498470011518693462998121988418461808363386679393228154987757243244780878200433549451396859558493547123489670381417173498575118596140096543162608159695053059637587641552792592384380093220052052830841800455511084348479427600077705460043956503233300215902552258890526956526448963110511399332299142001649405492581101289409263302641854763229449473557419741192602684413453994259799535069531780990440026545050959676029603004492222193375473035398222107701739022726848189290930125745665029199101672195383224860152519900273886875391566878558848748192291074025168519674378161322651295539287695113296815970527337285265457714562317562097494235233504742573435560182055524059689715611665250606328508849185612287157144843004259032156017724001110748633264349670296636250429038913610744457312403579453267192293263446821413260978944099033739316060293383117223927684478752942475035610510114590278374266533109124172930771337494918564138675792302660606190711458606337908819617440927641772001040996064015999018886980232235842277864212196926363512890059431914388693435344535489437504553098120289857905167104504067628493136747387024091959938800883490552091575126840347476880579930908079593593213572353086167737844079058090781612641183584074107816933422033005680260730656059221936991913811212295305032304712597626127060598977125570782416209802542529399135669429188790620104840402917566240722136235291171533247601411674981144176896317080996450480032650684228172742804430739386876159805202760518380617281038331109080672293936684525190992154176493908878126667523764606128037398643574945353974882196316323162838036331901183654232155727041349692259936863837875812880748137255062137237820754482181379848507079397422133899779601869001598846595046825267188395007327567577422202056085143394839440295605545770936677697927988699542081112410706491359700997336050551442039720622433183862330410930587597606905158021663737536527577262836865921986899518190215420086073656488128254489936251172492435959440135363969690990193891207764660952523130579673502924770602612517048743653414452001620458317350540510567777237516525902825545219370571445076810242539158347626449355137992844335195507302722890202167444403539959012045793093219429214408536051720185937719855785624377666652357623837979941558337988676610392167842993621840650018857844508522714466230510242706092465310059333097921990606332251084651217344588568457053880272856802881464486909822461263129372556096074777111931881072706141541157060010839201984650009125963007566512617242962497192599124029760596694281311964597497306431538596442471549710347282310075036372396559617192657939157571423198665148813384128346752546870232824070016931408670228811968157656248996443084835026817814290096196670409104152129586157083437305837379100086709152808499253401117295187628972119082087300828950565378275792152401509503427651094165591454479870564192725464139558860845430584675802404297600131230792417018178395631031817274805368687021623992249818709451859688073061543425120180219406829189461686824428499884996489559328738068973841742390130716077541540372365787770839658741175033536532292369774039585265049158144023751527540168839204956660527490394390809794385704008396200794621101810239115290841140318560483083014736562241984696863121755039694411985567800707551800372254070055944610504207658290418456994978635513892850550398910918254471196858304204461053284403486414227275438426086690576740326146800211414499187845622478930825616857692230433981017200432572868834135819170160386393120866880433507656704593762414561554003850122300025933652908144125850615267242041352159338924960411819313202583109698509016401343559839169020427303482818076821768205231697192064581799104551795164346205026802365268658541179720646189613924153211637585838341204593411241908349289861679169613933813012935454259487017736432995604470974556924949907582346152479272472765087634764433968273774409905718483413833997681690935109168989856807535723509362745527106386408657856142379081211825884696748707646698487901074170215501129977650531517162091293003709864989708843778634058708223369799466926760297543482140551552971587618263662695583656044302450690980797608315207864137817613603509395956460952873381972660257221323173495898750093224076647066010640211361927895524017966073205482555834680814142066439898137712899536419504926775390599841703077468093328501999025859136035176736426635165019494811982985606499964146894641515675708797690717001563757684034028013749136849340610514140398133372711157848042553033112385658501316053863043526466051733319718451734317653228292200506259060640102437042999229767426794102890511580120884836823269304435898219419304008050142296975695997990729523199199257179021617252055739148808454499491348450184100688140983160840634077684789076724737547004474567182963527947261857053259358866808373655107074374984147098683437651173252106602339220362826779391119551065958317856657122503739736236503563969333395397645234431120729443118315038982570059693114086293597592154427801999903751984273626048395410109604555323718371822616756112874728121358879785178084683641342388158575729334006360097780662787125097406722545329069560642535830603164019147634751899548487133134740021873937723507919681439424652745333810932008662537060090956399423540550874942538916867552667249924020314110866808513923379241960529512159719202655913323531804554147572178942632910186228412786099319320921110987493201234723336969990153324353445957133765206775269631345004096326850913832296388033926404009249272074054385986427432660992112861092260214615617528984152581218426964829359126774671328568308507778173120913388310478553262193816710055334005057596910456471154699321748835031950307604854937293491461930299070757403674187833906556125635961833880627387328454329349103419544586287366127347234975849807004038437121197873306352185580154169235876753502183334432219544819424642837563269237183226577511937438573449434581949751919854030687754337584533406462793113919408084148234075552735280719180990762658769622375169202503775298570637828510017094485554291716359796945883736030989132827155240295283343311223440832859090039315633198618038816342345632409229148594164039232750184365003302464114848416115105803742779678420007996276322731900045607717085289819484783122864936710236376798136909524294721524813228421777568448840162006199147884523844424933788009535720920665718745372360938168611360138478051535600929960656045884792880987934447777911552415470988756070371922179398177908879311581569110994408829594901840173522836961585860812932146993213828899890844928040074345200320958635533352927481951145065388119912941767219675641582989639821209683554499879867713535255129929694484508127795274839919991803575450134613009089263727096112332898820688825928632064200955255404491056166468243780315630059742681242195300309227578098329792221712881144164672977421836762058981750392600151731512533807763801145688440195128861859075919666705307122762377290100527045709957034698737831425111070241136655524655064938642089032733412621361995998118503476871183807711487009243096522087637739950751077951212933025726654425123874488786555390740082564056336355051147715661377877180252894609283519870581932451511018233044261417413779544399484722986134899139637092173403364216661834766039499838845413157013342786745411110582300438036289909289491690824630882253471745399081448854978858020486398951206708079960680344242272604370784378295461300789044227562690615091611772086333363991340510632988969101974007133117128023103852025824386838503858183442028564914327529253356429438448845404303162018684211848737794397961066955768689987870738809632153993513357248791339838056128843724016574801640995182649974477745692238745909870687758806456054557831053260827226494199017329951935943338136869974789692228018976073525935997696473129606361672544967526060629859933217155094957899209223130323517355357480531021979252229141985166223603277325236981591074123264156981824912077023928630628529050381199096607862021221079532438746302525026977886108051075155160833949089015115208328228161287668770032777036704757884647291705229332555628200564909587502970435079208279263006550212332786044624072302740560797054155096412704591957254270416232997124004673159052452678155059738632614552278383917813027523462756901560823145421162116585322475752890352332653290680390611687753065631583966550218574226521047792851980055744201223054864121158909793805216985405166502833438174417472277822599383173159518396957874126643390792734198390352882475919511029848537356097921887835046744179032305235110029819324558764221021821381621430426966532656776116042619280482234003114614339649969838639939234026484438395363539332828679901605464347848865727631174243226752173815401844991694355181428384270293630584785424120040504964397337705454271248532083461272062147179784573406576918325095375105374764549628004328649303191569046444249169306142730258540589108860646603114265218536284765461994395150376305478375221516090556037134737076523475435796713537790431867192226948186918158404052664094937511609109712577103408027832526393756316387254511046633978890023978315153917326888542391444819289084587138125036224774576069431326507195168373939779697074015902113257849674421464730768660461275384000113330207748181214156107847003125444261179221579738426399934402119655556015046822477787717948711313575412687388595507540664281848757232107887101753920817755273597930312589678864206020573516526998850139644611905479325395914790349502133679986275329907184967937841773595310470254913645521965773875214314322526767825511889729085808228130046422660495579013681907054504957051453973918428034040630533062691453888855983821240348944824041427451362246580217973688184088467771210207424277648782657049869875275674046466995975143939151793698230491454502813869519359612769989983450839115306142957267429992950700912846084240406732282358667970929546939757578130246422297033016177285577112350552704509501259869970182326108751911131306357839475415818802765150988220657221894639100158002032618349834839343811591221128661058814809261761049294604871665135661214084166959416895807865752539699336260392690076064426784953137790493517991139567719521026149754791804227808295085091603808353978426280529132729130762685798781838289403449146716901730485997614665611244371074653806187494752723274785321369768031602067864212467158408210027621026280453365661451097109210359759683283440321415681694870869954818212554223736084958814808651878751346957228918961012260513045297299656538858579196857097471896321605614874474174908309556752603485721657099761051758660835001710911350474083265070707886881719361951434664376940496280035231569343329331996450766998160481020718008319984607417198542323700461160911662139026481281051607186169385899500873274894345506738213608878700187456260330544745881457660375442654679840753256932820759913759282112439146613273533752852759862290503644937545171856897502497377561558802262908367669106523248639428100837700561493877090896832807716386299836631687336504472790502219575808844165384766241656980569378997942281792246784444080340337707889814414729654916514275753814764840660994551277533692149503950102648746272304259176818405774477585690289115425631266971266122805100646995073590863732104132724061440292550258231110483488391198823524763195979386062099165921896268052367346921571377375508637020198817019188590360401576005699504762273317780544250557029396830838330345950678322736276409285946742379771279478328894859552194147236316638739898370607152910237286493795370720022814314814434203691073215475699081687699779783338842484280999401131875234085856508987576650857932350820678631722759482769055123513052053240737674067531771063940572009637329981676818821467195441543033357605690331134787684116479432995901658891380473125787289295250999073685903365175095421859656041442621753933635771622760646285908202247446472448894499271732384316529444283665023799186850394836623344377332294869964458577157991252788880943046352495133099703454121887884083293476994241400551719365707638699032539488195522541947190806908737824755361399793159432004753825814353971929395662787329147547002959697552086527922875608966955668768953469181148663361994409826461582391850177629451509859160146205051090512218370713191768259038782020846116551338504033548284427689619519240218821691693148201386639899203087886222883783062435868837009012694780687031221667164213615460563059679920142219614687190658612923927567235824859496766619259866732781299706713288124853008522513486135405451608097404761546985490636186696688419171629318978303230653691767056337308496814367103366910821101810553349173096206458048749182775501440899467332985076361698322643938818158802085631873065615402580701991117472272178952679399050203911524092628453576260076916936245591271044623634526730448245212472471006042135068427831333798077634289332537446402183988016378114961675054422295867239669166491678986206990493300436736596173802700223006412456353770388730352185425632251388332749713096775615747099559941943316375320496355547629907664362684147716543360746257471377149694229025044656361004156842030002096967856194264444871829974619802090063853877598348115896857752849882092280579753707799813086104980203033049931949390796489276371235828632923918532510069121934212650321794649559207832256016422133876076955449115269662785233421442691274210040720909132901280443459319919221578333001018455107981861646396068450838099902688603313101862040708681600387063386504916126371988418082136414568734909797101425232088486844151507243606532749372049796813649880751941930479159596971095057588388368509346762593134153642656575749031544612432716344221697445205202066058052923069170870161053454604506420634728797657118638303862254964596948147359739993310847948238179189020181886793640332899427662855405615705286711696521395356582795783973299858608722011015454496345717972423175491241946289835554668351103197168355641097802435575785126534077601557645321256315414056223249840214199000047671215219156749783726183022863589290282168703410968410476209372933546149818684474514046408327939931391295783197656938704670216159289371281147011257256190699055320111172662862821272493470006116048695570871884426853159939677051381057598058685634409853750984613381904375422868206219284360376618937214888313148007559887784532429359344323226521645185123139665774457145998695548004956390217604661300185182433000288122403907057405346147265822451335382577161482180002792315350421750910860526736443336933242621789531054756899782771031711962307457589719048255496421100203702403865789043355980467677005504820335856572969703222022281366484207954185257057316610660815886808859318746040689251751103856879574036289320554593821597072163278461825549446304274060505614992901423472270150984324445205542829395120419422643039745655548100980605080919464034335322373868962147579681680294977291748896253011812913678681599513742063094735066833287574618361534521461293385867648576723306335900379065817704686401172509631043037290709889746900947592773968325047251066332272040170289423455772050450361436177232349393228024750497201766151276796285168050249716790807053212790588219390717935777517766470032029325058261381282666364798408091113604852270190516146340756134589633001928440607247892789913637020631541239362796396082561495753510945774223521696835168001157396635824386545337959265599229033858794375571920294580596649618043150356606655475196481142465672193128963174939395164845700731897962592214362355330745991692020976871066601906325996224089478929548727733359023850533286665837219912705309750505781640181567544348832648288119430020025243412025437938809847668482125810456845688990994354939736055173065034946283913641147289376887157625899756260447001088942179931246061375907107960709622447001080511726717179659739507492808317292452386013490595425762455023769011641673893615362387580827508683978731824524798917938264104114927434242913572183913741926031592174307962425480172111984779627793620903906283081894066612249971040345338152194933575597359821143199150758886818762871012212205120617711628439280670233440921433656415311232009124305174866576397273683063831466838174069447746419213900170402536777407007704681654598965601513503749379311134805586311835850447105693590805671693249171343440688667690757751329724432888331862814781364436010843221985279267100676477888202947378199645289113275211915834102198920956260137540651332957753768242247359824467258826051370400755307529000481612998816360004018029368280875472147541139250695602961056192423613450383259025894732807571281396427465432741115123438153191386923890542499820946095227327177220173954645411101589831167426381720322857940646775453208697896695761587541908527494082001880064228870983912133576702350701711717403657464523875657183140376927853516158487557383701394464324455946233284206950681853683707067519202385761023829969902003569753291260618911078110028994283593846798757860244204233942579106442875808046350129231952791266001150308467033667177554550211167913496008670980019219477186415053067068493156396771453034051632194122896811089797175244542766590258491836438384037467242840887413278774111166303184043300830501966830317958062744629317938690548019510555567070907689878863277067622946892939652730533873819488837233557415198826901710887199539357158942471946103495812047456308452480159110856748799854054674934958959570629559275747209765655023439191795864541418841140407789137204800605388151426566724796056754436478001097793247198940989816156513810736685269999059121895769655925550597810943600299318085365806257128449355031262657600046066149520766050686661995823110763909082459166378417874987327576359454500470612507730713117931834238662236179089960405004871598979579656788728034474662006455685982104418411421045301587650350824768671383082824033276862880361427453602519395145159582002676343252647024313939866639989958461124343881046798852711367723586872270302173930572597661775468942524296862399378156609199338145092553036961398389832143870858821495112817260837372691048678650023735551906003266558693236357558819178165353500889559295748880568906036925186952934426643037281525904545116297649164024142218480045817955165388344606073613015309746132648197243307990150868144613109881607720475718461998113709455268814570585606389455223181373098998758000489502645564784120461005425108379721450377050580557625601459383087914432012836863590381584023246390393573593247801340850786482628200598929291984713188945540085385286291088189045622197980573205999134092297206499009977710605183017262929521590306182490967214855156548922004803629492225510284716392166221994199910650241813229328186233651836212358459551024561923000379133947670398628083782759238814707144328841658016940895609243645013342803412678386876443595305073808865102689892113769933075524829861061621545558120630440252048022573547937731099089805872226652862408974096359611762865628317720380442858390037464651539024526102568833156238192025214713002887679820600646663016799366440724590860080325125576063272773291436710678585340662452170472277879710381747956207080340720033318887855942584806766122886334276747164615640147807359099119800522105534349770565778696197861175455943661437037434357950111134936543451047440652636227173460340184184596756977657617650685261622909300048056419982678952785951509282493912612222762122246779296020009458175221785850646330418498847714795443493351588804541771668921164157020714012739039998869401768040889753715521236989678410069070763259232371334880596825356513612933436974022334252118037556600673783941611350806890775056611560550589560464557614312472962018096189065333673029233451801410497349602363914005245759162472305848855970815637710009619763775575908579319763780012606917520283289395262761500806651191819803997372888755569961876731661854198547147752273714645465284919535288261361701202767992182412010209932706823191917172391762387249913760580041818138514842554499199781755169272599476375236570839286075316581556453812330619151262349356893501960363630053190520561459562252445375682025940035395383070807165478749537412844649150677809405582719864626984440753826491177034210735022930645761948308319014700894375312301983961214151775030639414896966358763187742812444393072439669590795117263327703658822556506112839816272560187400509224923892050453944693321774913824548556669529411231013291694414508321881973863500427103309572377064826066764366473039333116921170244846443850482351361357717208244657809924680822467333925221410468390764254315759615410742333209478821902617099153484113616115603610781745737273911806462672772613013504288484733345999215940017409432959583918215814253539133571117381354880291426220109111099831306821790638601184887403301788764838621854396871544325981646734167554928088029755174553454176156205551360865631719611679805039809509929883491809715097426525013551772290650332527055622933414793508203006136019289223087696699132147703818728089593214379387944111073140384167327328036559026439416479748708959127608910123555766489826561571460859186120974607066874310519308070457500145173987497824012410216383819772941082075424500062266156880987311160297543982311943035060832946401465889991013809129887056647267887997964284093515524142812221827252118586814714684965888634398498147011117334657682318567804613079724380869915097105541732889922581225140746453339224610577974325977129824368119769465717848624657512627894853389412016155416802764120113883111278077164702739857398475212960233832346457035605059869565544753839472026253846344424867927914839491990011713818827513026739822915669660690092072599419214083514042169551732805764676864694048966447107984603959460748031481047174317473336927786692304146628207963657402129522200501771683844776845609952251835863254427801956173118293064877957581590064422166371573645913414326853566374063615230296080220699763139779599768439394932965725988492182420573383799001776085445949764637023038542959324915461152907822928757539306314782394740326554684062248764456159711237055448903872017241426141001706011997255119396282861497989333668188119368861497043484647622453341646608686639848234323330626705532113869010756172798329459287699345271073035710263169297678575826822595474314419972102231024552095302963897656345181957167874747720115222203610236377494001119747096694704665695319847789651243968592742531655395966522754896717151376939078545260965279309569650573860712822784362991970701982164002930154132416037860726484136274329065553735976104714363674061832784133335873225548833162968801628951736958037560037092663771716015103409635998258507967313086421479970011993570627403808016435237099996527881548264575903131579007373695736970381427651797053455802369947353087151761126301431391014270819507024109205631706939221109188039083791229748827573888760375251428711022972204621972972227604655851068399522490138320165905965136848882875277480283984421956235966796892480923628931554466550864579371714307465799274417625012473132868891581352695485169445105438629329587754146640858436209873273395711801122538963347575453571254579631363945739845931509798721289116229007154756778859917742945190544089163093020788821563702344758105306707401782063547938958329071633072602030016460200593705871239315858113003743647567493641230297662011074720694783877894779369966662480760218179949729206511318556824557439856239328347052429360512402530253811406226890261251300542062827096656207736800198592472194103259437530912810693294979300556723892542229782983367708350701101917779573793474613166186397172960794115691010521150348082229251823173024944719653120626483481120603014633451565665890145090995539311566733539643231378081509118385411754352346501586836085823736828538072294093823205107486675527136246524513299365437818817225035391897983757683512786433184741706727620128914864989852211112322584485537907393601491216042692957949276507398417658726239345057468258672280772087717779283925868944408448677677616043885312821010544926131980517629628368209049885079382099191352273241107833037369643844140850994190868755789501516284698171114708888252620859178335271375578002790845321342497857742254068472822381907526438572877609606061829603687366014759011768791754885408126356248693137459287751354570026971230531633464671728902843288498799199825823707085951476404144667184967780906215491276521784531493285870258900550252437671780239678832233417255883239570666866638945547120956919630407918090917871483251746117383191030615968816556197779888023085489329213251256725535269950494647137147323998414869102507007562197800546576346625800821971983063475374435876262196683760835908400879479784708764665334604966625234611796851196545936625266220433313538500782857009569766603390378320500702451354384989070890596072563685133293868626713276900825813155736623010039490642573528489287179311390314404246485628011917804950477936933549398491007084562051955286218121707300219299522130186064686610533524803015179178552725803032545435253659889640759322452104035296145014066067815106781350623909269120926037581564047668674498538006038661597205835466390775708869048116796592776913703924621446589011516599647977432613511394275841870615646592389701106029924431042421725361515211893391041307979277686263444300651084118812621728500004787272222792155428834758414599073485365634806307652081342402784091491845022291661738620894588623309690477169877479278551476104397312093411813545871838951726818554883274407311284330849588958365529194108009202034039787075749740195891543348847659977493125802393847696914128053832636600976507685387728175253022435978056976696529465149446780193112550002221981055648641428187716041908163962401307365033020689541584090146151314518354413786239621059434728788022034629103324273861793485157822505976772354902151124163515182215199195882600960011187035917217032545141618275609758676155169003034647588993910670968714571817613528568446939091178822118627616192579252497227801523824349242331814780795468911826243414736388060965274472970551589164999018431998066048433034270776817932796715949298005096663712326581175170331895950535631598055571197363338219488152721940252100532852165943058540827956037769816527484031665193946835859325578928139966510804002852923852077280795919004423680860282726219727787177531293694462410344097157207319347525784884443409924427132866337990567666661231970162177516989319792457553002248085590808076786740499622627940341810625136803219694904361804866108810836000337595573483101101106241347853440107039394861528455384815456640027312499089522833143443059122006485835506793365173702292725356213572113179549006138682229709107336941377281136885019393053324578174776320507298675597369944040481467169216207152909524739050983843289947211080309701728181105339248295130277407618694695275882320293943181720598306340322447986731182323804424708426152186545402923234173639788872576493939270246614959178973511226098272583871014713585173879414451542401319227293357597613956986646018568911816078201747043840661902012459036280561792880143527806660774052707903911748666514681759904637809551659430607333975991041530140123332683777965657151432107983645812143135811442974563854203647121977220056200955537107775280619466968851648961056756994487586375823702135328333377697199448397202085947055502567004729537814537391544200245845886933907994469229956823511884525138585070775353363468523602616733738231583299167914543094754540902561201311582910673161990337078402539884931293615976349490049953485397851990165622517118089454722353506828459321713253566181086744168569809599308786691310769121497971391928715412288705708289573075357627236023640950389780711664545784607553786505338168818432650777121874507757619349563482866702962582370777560556942895193355716957652538073217461541197912567163587931095697477072421489849427624747357574237188525442232946736281493510658185770570455138438616020920009944242749895820958770592397454976664329105523231053928028581890557623048913596057184226834795997181349241057690717246554246470643563626478889586529679298343559040638257153952029873625147132691595544960062729505059424257472936938772567224250427122725528329025182005622720662823350093743500468960778713135376938480782698135504283759717675675636877176267963865488439540425837991144701527180021784492153395302320808362751153881980411973974911564183879042528635204507818616779052978194013340398217270399940146815866005911012892527458075585070307442168679318193441162603446248709521713457468118641124927249425522332826361361206003404578260155632480557701577261438669087915179678734613815257178367353181906895713445672953902749113680052143557112319302653690138155530705156260751743952815361675945596565410481742293509300414475689890472472947140673962673801715794418815878763761094152134153932008777852925213105775038929723206213557962396906930158095488322042203227008732882581510700792121722048913305553754089587699743112390620346738338510761698431141641419672107484853320679710929293007899749047450084618680634891355847598370577228022282255984298326693568983900639351081338005685875914480934196281924665447540542900647077050779717437866704742488357234374969885779127216759574609092833320568915765265935172075500981093510938641740888888520197704006873608739242720691493490521876883666497800462190590687312288229874380192837041237659582381123942029191499611337119590432461384129841517957043396697678008212637292128512423092935459587041684362813552357694488380701201920506329290398987205547360795956260588469313850633943012758605211454012126557092009108508627959160919916090750064170923082992830523280087881803040262730281615637188860751328276981773108405232512717790940037625921949673047526671626838534167387745034363367993352325317189043651654994535437161756406149367580153356079282046312806495257581096623008441750723450214037738637804979679179324716488262857498580793890783062177643137067483518941263569607797393171437123820430661797996585885385976295899152008584862773229855243978171568457019639607904494939088090055731090178951186604745500152357414618924483362706076327974979077595477228175430111706857260033535545469003278086606006321364293875713627623662176198080468611061246465480962595835806370547033764888843717661855532587477663685399733990934626538179377293878668107781564248359507434949879980334169861882409393962734846798042480712249601634972894162293628483813531478859079223717544961107436413417572690573324559948941992244540502724756164636958907867563276908312164013893773471673287145868491946998610871900255441641005838756744079480711725531239892510956643115888041688341884471786451403641911771296377683048043957242993096907032295227908356086009460048762734608380556817316855304029551898942311055685003199100657486334159615054685846270488831652092983915256901191219452460447908955033026632876208126734776947099637065730444246456016646585431493115535205266722770894914928960213225347019960102607342077279206132427483871407835104835410307293721524570872719827108775154060947044927813356708477918063038966124170986420952434280844932686901485786061826438417397726257756805243943571614972267305812294837126838001760463935855021367161778364039446030072195996413841561920952999786279367243192191130138005038932075815843157136705061207530483078520074090230876790690871021581019308340874514112078860209873481387154866369242288196996295527745744491661358961052805462387362881123895682994508451220765656853585339578090686029201971725815355407168312500520549287072908567544897399447011029868094061103321784383694773988991755112836661740712080550375932940290641297483687399639386816135660478477823608266959532099111240327893373478345022804062107708746926622584441494882155135335732136913074982724676865939681906244700110663717698277002650785771893778467867409626894450640401023474989757017202835090081618379040577356864729996798374280330248251802100282410928899394094559032057867013469268149876234045607058308284299271894956717709948496688843130473497275274113341267044918897304652100479556917204524330426435947177618159493381843069845502012260878519822968525479767998165501643814846006519404505739084420615108200929426485346019710647924263641386551867097881628059969361797276983145660879821055323271156621202635736380818428838636893542634332374626458182160132319516315987959224899191368663265238469074380906736936869305440276072953610686936823642360825436962569322691794144832898715856758501803178000814016611146193631011941783401806750468821740190957587816054391055332525154725553969723542545611965877264343811216030859757575208543222104508290209275230283646034176820823177434807624708099372552600045763389624926797329334596324787834571378247720049617089898573471963666734954217740100429263684233426491721607397440296376922896962291644316424513588982220689995652568602028810921751563982649573462905328853173548402771042009529793622843552995033184784349757883270430007676621167836326019033792600501964481415798838541921332620950404222300498212456208122580754021213877077500723188553417393204681622184446348624556084247172327714589429095712238345232493505746386100136321449665866956034024860482886020388425587047676498560666396607013981737489626765857189789772847078200177861064274594745593627300659567335261534328285039393283662793396989094583105290833727281146157275218058354754832149769297602045344679641609518883421037201769875903133312490844599879298427842747324769500283322270853781085649743659301200274842537623990413210791743358558941823986966843518444478824887326115346036099469794894225329308864129875119704632825966710877809029407623620442007955463631762127959592165434296008035933886402965662636679512587041725199225720222081994914944928966146100520514423616071215034749206648741599996720164460975435023860353762041844944264433229885838743351242928474004113021541647425476166885017314907365438037115428301989356431176404174137995208287209630985042948973879739331400794285961622147313063383595468623179019807993895259399959007263490849072655922999706978396553208211747925680811652404089756068270953855885194880512029937846032759712138145452329120228970917622384603231811265390413031205432647622286569013471507130172209457685212237210926760981073671798695170761406045072275414272823153683924510850184312688137438657386209334937753690239532761813993700045692997552298308666969996370758685201753821671906806583523569356172312061062440840670512027319823927625312073966793203439499734052673904825910682925564713236129922592302759907780021832164394392754968913599388800461033773294827972960802861609383173465428294221439378509629903235955357413839904702728711179605252334771146699966052537293570605025510665713824887925381350817951117078383885881069078280043784771914935249236428970074915788346612619717607735402130568674261606829967904953477698890777355155984445139735485751344095444138321598823125920553241014857144253509373163255744280100331534900988822097311220622826071654582947908867813538854157776553687803993331967468662522940058681631211201310573028121602680029781913113198873503265285613934468041287979689418448572831794850652186551894065387894758528355688528743939499376985703092959832196001059467463491404158431966701193015842670832146806880570387011463793123980338361454609273356585749367841173257497389396499102286820834291851135443403058839771010741043162510227020928577250755226226514297044527394743122363238893535074898621891388577819198493102501199514818805354698831418725317756752267002202902206801577423762738637350820955038767633557992187799867581269151973231279459950878594800945515685905239614679504982983850877191888182698528399967226424259929720662985902832890671845929760389591540221733961325173117247273899747706769634398137909798878988909139458275987140339195228299230656490763030355698349809229000069785790749352122124783852609680837206683436872044961263277699263468138556218052739348734913336413707742376427446067737201771350690246170747701219990660208327577273813134539881499570300243292079886138764094421512212629889049190130219881361489449244149469367399057597856125037316311663496329550134311809963943173948937839711378062615278813701173914914973936250130636949027093254785363303747924619026942443646961496149992168947561232325570227728747635054415415420345510557434345950151953772556044419981105742088207170220892335428165209763359495668791335106440574858722900560513424234953139479263736827678150871732676051755843922106185962418085297736834463209486708357107408534948640869206910046962435821402275326224505039867252028185384079854889588186099113995044758897076799047038949739237000511043693519887050919323106708191909958237895416593464555779456712012738401535205612548489766862903294601172455889307067100425506248010119860558364351876586248587636521290717787010051890882225316491382592558156258611260516993248218638831336251095046748675458854567009557785381052027719012529580492863486666452227436084013800791527172546699045782774626512107195815264374796373018554607810272530231941422723590077611177393157738054943185807028478958988978448716040018984705841451232910218798745657234575413337088713234093341384183809685963775104765852548728191633353181311348929834393316291509822456897686467283085284679246855398448107657653586430127757191166924373026992485489929123456398851093720790081517337216012977822015807094572721799163973539629774112979360822140022653774285898325789005412108456449401763692860889394158552572114530414889073045090698937804388920289884811647439768704140960172468442256790491690952083345296487111969667905662086815404105480295295562093083058630487334897566361793138244590015309985093848357097008739766243716580079221035127387975932090297873396094154461027278981315351276729249968509429177801933612917656048865512253377536893593908253213197042109767220758743719126195897564843728686983835908434273859510018694698720158871677933316126117723157590839084710306019293811095586053587987294957846615130329860788863809205244320491143383699409061191797486308699476283776985818246293372630373837021873735014945857090437748270934908865723783643205640791895795346394861424066155410418655327067222015236913976011574873025797892532478614413938536761386392939142889008045665085872634653687755250888815468718395531301338641172214483894479321674421972070931497173372048100718693601807701761727342663914036778216763533109320897737728879827590472616731987173494852000014333994304319084545844424083884043160818759557342106768778417676953637841929364124062672419543547413917198186195815300802344480001243784101951680232962151544759588491449687846873149853990397647213650593496099687860641894368158229171786687080474421413275586275746523000914446857850952742353034469644798806322040379301572279956856322177826671246877147966411251085181597834781113436015690397247261065934636888731712081415586574965151496108386620043948709176022147678789887668208119036711820843592538314421764220583659192984427652006190979508968743207572491164861867831214676256174683243501826445866552353187281141579678505793823799350482049612315069050242607104349859945629711574610784325012020484776128681573128371143813167806568127982940957873908240660324976798162871251607316112632940291824027798197711029015377585362049845818096009987637789882119691313193386727212281973260984222113365829590998560367918987178901892402363305928737390015135419807672343774238533723101584269694229230816466946033463975402061809396540250417224176054648276589225723833464594820109543122547852483514406038422199728030430581013824217224161989696103405352281493651262753563216905315608725696121304835417541670072989826473133073832361425793831805220962417565433104545380397036437926237039841938980749370955878504725635934091731658192206328956286271271807642228055413297877772608055314350487929484704343154454103711242222643024126402341284476203938479956834404712691475524582881666193490602078242354097802613487517878347225506356976956966763301450576838256098474888811291416533413954247516110573734380349469197080316581583763474091553698892636025041465496207838481716676855959929356792987309605558253990357869448282000899989375461082623024296554520341329289703872626495219812304923604134747899633946922668596272370454189117932046389680033738257077480009625073422274924355461017819852497160944514167488664040809699346017338031910106829431824666219964902941467835696518643194932284317119542316369731856803478580904964209538064896562098539624085856259005010179766497699413184405036280428948370606192530986294694827611106508828892247976042523303225098869341914896388698561081208363303456980342073177979637877896524260071672435291362896114158379995996704323596790595446236449752901861536987355270435596890813832645263247292861216154325212413172241150772247054013527036993820896219524486003171385746143436497771293816917550836277307151284535314973706741193836672681011434564208513130523897515547963131963985724001504739218961239720536240041675695018004704024497112030669506581611320373093657766700804985294811769196659394942296039350705388777379717413612538872098446155201682573097399931034364241332915752232483351970220380632438459803736604093884748286077280176544138215395652682149803989520966511281530863759901670699216636597424533242012936713477771959644385695784901555671359705631409109377052975159155744650482548741824726262555674457834641531116759259878556376806162429080276997445314422173043642156048765655742786511046354356451981649544220657163233747586886522606078719859738189581257845346185123991204455646745001100325213714921020822076348851974591799076616964846475811506828605985722356718448674429971090140980445705188661011453454381332069097760950258541338211384876552146851837312049606395267329390344957155968977595931178115148913052030223881216294667320647224838048940735090360255565175151363839366064216867395442224459803824348547023805534557363854356341703186632076401788985000648687690111384198189196580912040200680026072582351461317862222348326442433679064119079517104281398524703580876430145197300834405910957453952170259051521516565195578504369425356946351163003162831225900853718188567581525006231437361312739820867251466261168874547577949518606196290875488616492346235633041680045813277724669501490821078602157412666576605244371299397809445541514213213153761772827168393101308758951129824694669146981141139547134517078790730845763651804504207341307926874738012420283709724385710081121159468806338098779503145573084533965611157903771740721815815897551988767735891270406626387432765114686958284775129876340143945546867970803336830238722342493138876942323654745488918071673825707216779214555042465855882455541200079212549001332335197411212811175098455916869009818649937828576660628480127117409030761904469240777018388706433007617273352569204088171976164463962063701942395576072296535042352908877175370038854332315560338532724776548638183428717776700726151848741257413028304042392262241125134588114732670985007396571554857650792492476413738042436539110762418713869179984220533471080433196033480867105367922835519838186098888835566651684972369845377454538589318966489391024840791758403718916136625971080873977650088722528383228174118142254660051439708004113746333553057959326989693057088910332049645975004040382608677240147628043016688208451081089576897182171746904985141098198306385105158435447827320390374915666064129497523263654218917290625863150047108026059403280297935903960562590052121854628531976235980677472691740039523744023863364378522837984805275640449665561976711490499196055226176511482433065536126974919640786292854931258884324767812505336860594634711522518127263918896385857285339652421651208824386133610472075373417421621362010832812155011211955040898347339665087391153456976041430369179134423517206215368078459266955386645283113851072471911970057850664651046175374835726433058223728335051138984039200232015989207312499963217249610468775518836278002245214750532315501908627303937670934653213206187719398949219685702798257505213901161805276343462978219994251245468280023028328343694408024328723569121413172852621205341742283813074275837773234361111713027084417443149646802539868500531985198227257851857410963821184610154251389433358157996512985479801768263849072066710423504240732775555287058888010600232517822133867242425135135844430650540591856480808395120010250984779213452213142131283085056238987471912782873306813402350884293494439388867718357489354658890092050936074199848729017386964066346422780488680460003397531051763958596165852111774097109056152935021829733508388342393149721814179229408068280382126471559223119275518973916925253427461246458555424070147725480915930225696160057611203356255004053832678039656664774422364688836260424948359851193634637740654794615998034856415219451677334533828043403184223819225187310782979616151754543980792835364494441141197117996532357572103522386917987927307523342710366709035440496674795799097015600845330663516673980669378838567348802528141128725452422686316895838225564901642193534007795675251221068021329044831206962422761870365932038888638342148602491472248029958587136636400195851593341102632783827296958338479568198144582340243081692719492448767621985904649830763404287263748667145791269573712193708060783898230221687072072919397528189729565178408782567152799059172500008258353411832744219191423073601471825806569811223156658329951414459792264811180863429081638667902111549867566887009477345472651689350886900598332775481690050035104811642004316765414654771831945373870186068400075612638634773527335534172113214914243654058800329830038631296875796202465258312810843769234615438513197101740644997737518230085948883602934180020580599030096505613945759390493941554048204894860037477238861551863214868282249919294192290903198674877796813294454289036692798779713678291106273319431682081528216160365499095488699100953727655143151023829370949661412972637078467175918820924070530464150386309278509813877270015515897231833365643768664407543069794537665316534209800817928108784096433850232428380951847472976484541870663742519690387600986564395985361913661977254675065412653427649108992456362024404884529264963072138977392352086170325501788777826436498159810750809820793656578718907897177059154214441206760203407979319929989950969263690164146940450731128901184896056452506601244786199858642520319774054150971530178413500709183519579964831491263032011187687922417441761669389884599751242011611451067980451922434642689645573782951735725391551366558250554704576211318201753904827921805164312421796477655119436761499020592824471944731350686991877216466469047055251279131484104985967577873833870301425180271253681558084822761741661886522187615209621295245757871286865132264628973664480733460018540917741968856436172836000048401427805144223096809096996987051293367085580172169248296462815925619903624323722958259936305769169020746316853582194084695323272864939839657331653285084633976678093278600772578736240243933444739247838460017774085061371634460238084315606647053476751899232619269086833316835645338406872786396803737885623842745433104864088373085286269581621877643589972601618030867519237867135545739306580473266809720842427400067659870187384242572549946093543976620041911155899936500364482939038383847776624585892241505923932341450312022131413376526482881809367938104828517719352689483916105974147261279912611757800697419351837950747017353497586563903574881196040472729412061039153488204638510593142275849386110542206832449193805060988161094519433656968375220611705261818141138168156246533731590227937149529034583412201327928832597519102907488201534388862789391101707129192059630561784310611505594071334360112732858123209047098809274546786731342780167887591964776653160190949134661665261082263171928093847207939468756174006251937507793148812108381571581613590513837268248829028916465400254077512149236512791767674350922787160920605746123359358929469886909771682012043029270853432102492901990128324877810600520088408981615042218713810137531645727338462712361573566116803956055257362236883847205094743968058343718810590592736554693848206152946740272283780422680071857817633761474870731115375990454760112298353648771615434315073076797664565691357376839696081658765464428331627478762337704537977432948941063302288324274703618209106022836892077218843939392383633664000600120043695826163205813021002694906194454794201194452745375924944876330838277809503918613314195357967469582481556974218417796964786708295924258520997228715735546497513918608319410125955363597835037202159597786861711754667393781366450618081218260590076393823471401438413876846460806586879580673099045166689271659321261978908467360080863513767066641821331547205998657930469187138840841923122106201420525261209683963618122145746725042432864089849247046095476883045640333830788581254116664640271925642504064792456890199166110177113582154820200942039876601999075704719074250278905102752102746643803126288234015315132583030141916075053540747542312259679052200359701759103490521379900318694092131450818813487332035057955371402191583509104125464030210858963978028343922345766689676548398024115510296815553743389799890574361711298811734970736699879601506090057383301118877516895905995274756041684179416181505758412314192489153162287977389694829956600939877316343232783888077646915490483881749758703336076868078517110922296006320794623511064520223188580061344839805619577943644885961429220294244516697702452563133448601041426749550774083916477884262227544677548921891180975248581704610108581361494184321969636857629996468325263277966462732711822263352097660449652143154223254740952491677525044966480532448204194839296756174707377661001157840610160719435639365192455794625877566937000819766813202777216007681845652189473367850438704979972172377677012307881253544827236054855054804424899704979681386711214387725496983329113987003310436457743714798258051098274348725552293459629033608652917877974052046915584281767277285155378400928941022252871457709498743498760605131601152354379360288776401564729931608266514876547019320562329422374044332702029082911486834291444694428593614656259057888007001253536904083529382118353412911202257233177463033611326926263847327827357813219265167079008188031339488745362507498529062429636234826543230399725661155039435091711641968492542287272947805075342646138132231161540555181661512590243996015292008539943523060882535563736388821782074609318229956037180390089481227862429932570141384874281217549373419968546659076959109465267344221428070278885269220087648657253668945152201249609755943837781739133209877190365281430698976436211956327009935425962850995390439506166207805130016439781718153874240786419027412121410614646347765882445020245876987355485866780122626251526531447706859674720925398522614376780993567368167676238264760369658929904622661799153368621673840712593998361018310031135703208798721115742910784685830445577145487745161941420027116811391398365137390297818154430691060054129533975003338219481155920823875710800036016599437791699435411969477458690590582061996124273492931668777850564955574304598366998640561324552892703679458820817170932757705331352523748712961767716550935076123263805420198431086144641853607234249257796010842929808869169471270051066007816119952660977160791269189801629097168956980568547190020015236077678372906207845018851943212154465719107434945787727325058301049608396581647157069649847770948520211690266361886956076410858582777064354777359304815986060531068871857527516732211293140707231725594097771397222167659091052280208971425973513308848861380080953230060617998241185813845268795398490922152482021292890622833138250764567135011208587365903619946389738905121883929737484511846047229815121569344078131276380622453073279280419433823803630053815435956652753038687516930554896038566610422235371907637772109067100437638752356837562350930562330428692918757092405854161221565602209659383497023109911035440045003449573942400282390130301995836604299723305373530044428706711311252085659327458964233183959240837551387751135607566027946594040431690512046568079225588288386808128536245430913257399908588321761208449915911514228956150058585294125606080665102621221049527352799535106043026231868037791930509930554908391200276455221032900357797872832983239250783469263220729815400160984785073146538269602331463538697008060721500960681566385397308224408622856122899560384167952951000750924614397633468044888496514767299462216425360639719483828597418864596196206945072395013459014904400225574211881617103814090922028062384047575255167718076829741105122358778497476289792787666845916784457766724830492098087535872673785109494107236820907787097003504498058631364695319138950202188861190457798669144279768828225963467867258786587882998029875240465420176952184557183464685071838382124025275934243790950508203944507783498789316038595809929845173810048469480155743570120562986096761876317391227817835140606715869699010386535719688674265094776581245988817526400421993373425821995204255275924965221707597578089915836334490498984099887689852399530974911546341612539370548804460370511134982466046117788209041167789988522073713962902263148380851062616056988707401751990151659278528478745466266903899025112181241902541938000507965433170094083128751693025009576253983895398625729539275128165905763278679381515521376674440025478799801479528612484666961186980416840930991491544964510542711567178352262965081354079333631508311534113402076132129556806142012880138691818851657044467359857333530704882598085587961673416122339643606551471754088265887220213847811897913149073892874937926759456924039410828234471019251555223115758163820467902110831132180436390452868733834098743733788158055822274042225925074475569694217540435215278463172827874753234918984571456513190986066085485211938232755323932141382350964761151658139260036566130617544708916705578390373455694490344380044774591026500120478076750784978681085300230916664936208292208822428008791566676425337533356801706958223184764879636754274912616988498078473507598008315979229831158612440504442958309231640971400725215257083609446886074175669229336924492079327354826834684069932062245924795033531382063934331348891946661225152786456627115736380749554623379450009625216823451597122424927922128779795631377822359593710663802763542841054872644121987114971589205775913936801073787869930326194467272058323184455613898266313104941127657476891273297806458363636852193865930240924519266265250331818391973412161451519694522501543393155431339992208864382561083576347331712188526460383300947990046255689469112680590668700343694334722974922610604456162817925609638905973352505679917432018529105796505823935822583814593931434485737099880959818610553063619689269683499181819508573513326413881662407456686185330349943979689133018047643164868009475385667992701120498776433338223598091714389603265069420711367813478771785591991454457609238329513414436900786261673628998576455102142129346908959393399633332972796516073886382344445892780177498138207064768759201331575729556357359565969326725844398030176916607608423879708926881717814644570421381446170681865775926274775712380707611596190757754554426254012171462196962460167681055250303492056672901296105959055433775858768143701632498953236434186131981635274711586107057448264827347246549311977359165643573314950813457262833416185645048477533144626090922503994656440826942069434743757551896775186694079201651869098351180238152828273944190039598091207205689493738021667774415431383638009328511013028213464003088199930866768076676063130924407529739897477546628806658018168592681265693962993912381813926334630265808373251396842524647517540598866065504151168458237426847772717704406154340805471128478305344192330377300272014153354351836625503168209806500715079276777950710680196385267837837882362088152221108211854378637445298010449039702890488447091808414945048376653356449855661924672069138460862492895294479990523100948531997417455259531000314753215480665887315744698022937479805199758087734954293562251088611194282977899079565973638887718534843814142815721874015828616218998447546411434909302448192596402935741484251641964562352729735538456188080815321151697111551195585560611258204098234657786107370933370222337470099551454429661156214617789984504281648741148954262468379496805300699449915056039744072742964540188333638377326379595330800526693084554245519103094277502042283024674110140636934932400466062278083213015347127567880235733984696247141814720220358556660116523449373081473515636202509968144920060493877490304354183912180711076390448045805530272097100004919371789536197169639754072399083553185281953990278825612015997195505217025998368452439370349574226176842566182679266818355097782403581521961860258806490514714633839488396212539430530976017399925967820025980754313883089946841558344459914774416656416583441929460989679287228273131753906729271866385986551575758111882473540772271717021242614631741862183032163036021091047159810582469772288225249831417515674089319233055071661466554672699992368724376630239504868359359451505645904847511221411855848979706292133585375695293610898902074592800251424670803011011081492093343267682506788192031126248725554724449932843656696858812874238329567852933568267053995720275931749173409720529979946930669715301764312100353831903553270488172297656412484491042840654679023383440844251051175538729455939179967716235994756565218574504132607783542961820354771270483640641110500257408131212702550899450129782533936029282473507630886542218366112228009465472120812952230658941374443457973004460454489639747132239250329171148449584107837151484338951591350136382475987324867741879560222853050223525773983557561197189737635739439348373436578622168360355017804791949072226752079489991249121612781184611150781563523431942719642590334374489071344014824792688109273395407954278533549709106739743365207433255255512441270934282153198994340885139153149225015380085907285281581174472764286314469105415206232814570834670857663270751998964106271047475459951357077076651678892483441990358301900468616534914822630604033754076033916695148247780854903503016432115703843112941023954293019836672650784966751735799844638784854916440141175565730497272437669339376647302631479018223321284067874825066792698101020757790332988035989533947722979013743838882612161538843939345874640989465448918679508846855947077260977675505129365608649121294663449415922468035932725018370488095222419214255680817548331878594380493128486259565540400841531692054872287531925010747306051655484983392309429468108658251289274439077729990937867840277634070022343909401447330010818131058457072887359117792433049382728649046563877896121518661183956449543971769174800365955327834738483638489057991121754885483418487094645864523558575450167790974993961363665842989106484884390177218198537863125700649364824884103831684449709927469711215988947344366382083903553746438223453152521472124296479837993741717789091955462076068154649408215580146339256410356456045499631827463185583625181246738937362696652451442269881848282661535489298251262811151734162761932179541227313944400273649405370740838013485999271760882753347810217403948157733394187748042189110551524978057228551041648176457057286202326751843172693684276569332257385657826953173430710400886115658633810785831385802358702584367840366439329057256415978307969196444583550042083839722404491175217222087953710232336194840219574290078949631994941373461886706625230411299245436432789701814428816528669388600617175684819867333134176639463476981534911258618438765645463591419843029129075627959534852509163256812185078315379051946098242659320530641969698891302331583537074851365673480443674642349783867433797770057856546521794790696135530080143028991107514507772041945596908837618343075456075384018108714477320150173299912564522815063363115974941464216665993882868245780003778256773334620625530377868148377069259852799685389791809218324552395441823101949074058181671288804509799454496750414667454927383108745041324925737226897119667127210693247342427293137177812818481023820718687354231279005998100630407782346292979866785392334645018625184414352709139840459541825385458895639224751085813352876154812816332814758722292632243510328505995676744751940448905539072017818143891288296298541457099090463285193278479908538602190031633700018900862947777947248970135322360261553839452314178482218829751057086165017194272377680243839284671331826171195459484413945299805598190755185628965252102316349818750288527752508544681973501998691109202493126165232342799922914320831306187276928863788497334801396672820909677555641591843405130343480019019468759512884368885153780230364540328006840632868387616196176842509441083908443859100369136606781330404472063147232829985526147160933432333162823260276979886237466732571441965093019472046816735134553477228420866269702417840463027717795667924701406323667762955531068129628456999607317586073040736794073223759246867309288234647415035364461181360066845616299771611072468749143172079008042982545189370631600826297706669663101406948884492407959073761629658367449717900063227432771457468850133306900790138530758134005767482691791848773502369720295271293557613844729231187511686474363572536746257531033948444461610393987295563962448506894263378214878051334545366654144705566446333999710878342083379713257422676734852642418104225112349480250825999939689647652864776919283218234306396208101054037210094097783527969125843259573988566472020467477389663486827002181710332087125228724329687505448580024164276936421408650645640194481925378754306634598658965993073215188339935149077330656481727915182692270696207768403906236657737511678577683952434525336860646064992575167173848053686469423339567315677168761112436022563504130105987878129453781660546949275033793220649956032763172714875569014373512872068758052078933655188986159883470037922545928781090686633239167297209342922594760619457824347962340788497818571710215740543024440858607851325918138214660560938901535059099845969242520363272333448600451597503102735058478738205869863517640222249153024358480505588146936860621220531381217236483470379181064687886243627775417146231936860427515691806161576368421017150846088241547494811821712355213862701319904683258243396581936540004746829935600391804165771627132911071074938945932400726050907980258818595166329540610052103103808756824330869049896495631254788351448508077060631704513902826458343173891747796352616481455991839116513981144089252638123535188252349896301236038015598367106326409954925791755333673260622619508254421461554908314203729131951698117716159715132782645539420407127225504158053756223017865216442457879108289254457582290450128586434712091106779038740282714461702169406080631087365737129951183859658387323723376432140669323154852325139092067561567620383975698872445599012046324477343340232589345602284178179083673744734849179480311199778301417981865414419070848905252237797882132714946662831899407125599208095101891684681322513506324271947579898844060994173637697224407648891938278303620267915592404253069401309461927946778766812838784236626689278842416498409237156252963695069101182533127090430108238404062112864221869908581757964656921136107069762258650530837960424372359858306030640578901586138521124965814112341187730767988703282242963837542575442249691797542736466622072448129563961377028872285178742829835169525948418059470129018914956643209794316582030787291943363969273231871190834112350586380412174739149231985424265985512330541658058721375131939093219701274186933932947256123403752053117285638892995640983559424996017137966474973804217880072983580477719917024595302718148312075936079056439795779376275656030153106694603826297728651355908308904326467825631963126843028867256243530496321306371436164763587771768935216677093575634888527555464956523038235565727021940891053556271541687314806761062357071953684384442486590870734278591085580014621792129413996013663117934265895126946868126276086213673170983203617136754319662031151540843928098024691682758430841844473063263834055691040548222442324512924184468575867328641802359946776270452025199287267278433977205809253620357188280726681688228294353500009692181751672373379941161942588330248816385630266219480069875847138720993162523172959429580550395119036426073786752840359682953848812401519210438323686446173337672244539687346194834741666684634612299562254038928737653422223710546652598136484774454345833311075898069435246428454076484303620235835330121088762430416176558609006821943926947852174994486853458702612645173482531619853084920650507601621136543612110370807092590601096351124394467334099462385126182764148175468668775467393962235088462760577162845856958457213648018478566288574219014444429408716441575210937499903961471597254660210762372057414448900450508721821982747422852533783942920910926484788732291337472061813145047255804443013913510806669761037397477712417315614105992266080086403374084176509268806734890381337877625267758299016223765284278157732581886991314459032363775054976959420300706970516877624346421736838013100947151538082249156795372428232548446399202688540699365635663760788691376965373915034706225138279503879715888184934952772362279953413072015048785968179494552191577020708770684620807547734895074492664189307684333115626956189357473522118992201268365957858563801954965134762699571398373327285614573213232958005035655252232848259801066976611840245135767337788086099473181893833677990026215314705686567987728761852837640853956047760226217664074646581758169859703528405977255283350391916932782885778448204685741485098011040844661300328868819564556939106376295017718323493289922461558291418327294024174699339008207411279740443844958406992967692724808289898712152126023643231488623413218793785244247772253205196205036317142714885025294180296340505021010960227054905062188409937771551327285763438820790770798150860679620712896095979864779972793519993387406677365893293116471385406221232084715979112047605394717235050595623658940730015873060633684712735052463094773242898705386160921659533422019678897643352343451388242913132184440248990917172601618039288451291065332628545463305643923017487655699522120753075800561835001639004891517786192989904805807654929056556261729044610598884962685171692767622547334606240139425914174786734970341604948757091836513893842471571011755216984558149659613026322906180886639409371381869839837535871219367819961343850134399523721958773329845809715782128485163775667088652660504659776600396467049766725377484683930894200086117152907907478423918543468728570681283535822909094167154169060704500210354926761621010419100858880488873653472633460180652812671358649838710440336240244532744410779689691724720901336196645209211146667651789413687186393727483631056464455280557040246459306723279614539656971855699875308709792071191712980555736948335413336822472973117687396957040790211257443933217147765935110670021599058987383819890677995774755337527084781782410602411516365333189339922064836129629203951346732709061969032458206034577367724325891554271898745196350022601865944975327087284574430040719773931119693307096608494720130819311527402778404691968504461765783362624058827062336954741233418727819725930240861160305423118607438798816646345874520202299370059897663294133976936373456717075739928554209525718190462935135649871544093789183856710584497208304053630183259779452790096175082441561377147409787685274187488584616452584914896417866082629120359240473413154165399995037576238895678448962719082121208045530843703432663717248961546504410031185087228424589306125435117619141743621419114438082844580034198063395402963953997771913293372685514268740700670787986741945044235440867508749395016128835258077668565047889447288253678748957131408129676822553387187209050580579883219644446321129313418156161653900951553595457618177294718410747742521129155406157260919234879232966677635887615189638702225210061029823697223443503006817598010884319204378010898520942983985078206927751058437737392011265866521086567537685385452041721067016874095945123191841320482199392860159631630468017400719501775651637385989816485538591388210782064099551285383943357533011807820000160703842525221634138407388887787878310418588056272992621390433178951600803174397569622356270228857383677252889680184416842735177294281569035940368551714726021960620212783070721208432930080749189684772120928496799367732314178206542839687056813552235143087811231697702782071906749774034818083393798898506350558079691024450273996315969311958669993822109805267827542250144332457215226834367176972399240355553494487313822441421212610971676178004342975017132933464186689808342529655152862649979027553425507268422071485627707543576277654111462890317680890718509621069097829427153558781932458996706174579863092130138886576532151290418779592386481079273278309391686212626012225349358063243940514926753212206174599328968570670225755302403448893710158721590020255811163379226346415223952513050622344780383940075560302894743036309635315597136744698269241639798453742538538657901326227589855882876573244026874088299187290809678795453998630896326364602056688291266130854917920180671825929595764494304770819408923974576503177359521616008230562013644098738372486139756835843514642632943497227302937100772500556167095151558901628740640140707292957835045222658612350446491532029634159348773226311999293413881263968668258533986216630343311086875674590039110912812042129634092170225675865269508207613392126355553358302091343041781037877784607924585050554383864671747471479274181779736473755805056271489107362264188484848342328573593664513575997625124228401790729250089936208579761399533045720582074728228030016228676030237157978928433215071991861832024378344493431713796772188299101792016956519084673067984954574223826066636786676765538733446081166621018649229958084784732985838066551368302981246548633959970463190541661735656644876364320448638250246418530236893052765647444294190393633500169599428619329875031215321924965062608023880304222214068731333365596065171639693930569357546332676612827169013846435759723548829589260655378357603509961576759157818635905221534086678506919507627785825525227142348432433918518444521818149033785003179839874832371743070298045573463569740373131353623657213130007592822243250000639431592456829935649034864992615499637747582557761136164631395195214735112700537814457889543795275549376771990813275451991331575013520128997844210377626799475359099996192388471464375474197157528262001136142791154215045986809493028177086438938637973343535897795721686513888357227144441221960106245257157247727850824101945920140438864869843495420934795739047843178983127059948508638485021526997479823638334302935119719398460853914236326584900947039451802719959732356188181696502269657177225415222331801090705154231430669508939979151513433215925257531941888241976190075559984114600699789108614799475400258098468604585544047304751909754422154294399899546106437567759261207950131050221457651851480614022328825709685999355273436508155738434517870889304499816260913108522694816706786830088621373739367186984923043128075007909419252624327909198273323735490740270045968897582154675347017837236175899480418513937310731349664241996398173866576863269468132326693699518597984263523962162122418497471089386686612048565516759186368656194948624304190510214995612707132369976406286711239381698115209310796517870434602189282491311445576747771932424205175099439375805600082887475144880432138696895110281697898283650072817649128893777230772771095908948042593245512089048260282840152311506152032377022117468623374770872128597096461234736863678180933436907944646857060261262326302303308677182040949108940742847236665838008587656982327244773058142571359967417704308396593456969790052407330530555929328129507142362288098920929267245237553510589261595144237170308952326697865964501083688947187085531341181387781903540929519925413317838603444724720408614409413963826169808087000431700560692977152504315016231164282019250594933280966742370060217666942174694607245234215786247439003328496099047391508971163325695411442403985201697637794174063424218949739713196535536518098279849504207827190072854730299977271174625259824328168048465179470588431806531943347072678395466931548700907157928920987067159149610800120836724078565053158049431364251430813223632778092333029239635296268988577220134141815340347908882921285720401720874809652434798363768207744442140460914804724788368153592253011578119521502845261268486419150881344636500885559017357668930769480768279744932838366088173076027880500552159829825458513245946174630796521961471784359096188020297463877017472068758391197210135407080206040305691197892617359715111870117758572176501689088045109975595093197289329423924246475642577641726851798528518733636621732323304128077861994768146610831525714896901083167197867427822008824099088731471273396732298552044072556674073510604519209007340119772687883541206501564286475328048187511006670801064348432610238988620191215989940679513755352993732183799138868865241100451220104131164349434889474951671319910759469475930605280928254363188334203156643102934120638908154038182510017626159401388021270581616543187226978362365215990629186562690785098880336488932272298583562348945739234301591596751846113440573263969726193984145711467780553034017857185341324196181525170039852183511138503499332786717920297556595964400904147929022298416445719150827236372859826843900249283661955991860419495335780639288543393003232894811558098035060677719767430227664104663905702052022959966969374252630373149326490860591407016778960335425222769215865182248491702094532133610362733864686819749274371085768699842663898963380901013212355506318931711574767167616331034771268310299809724034138397249751653817639524801909519988577052105975533938488355185598250050264281517021114163481457617579311721831368230965369933919031444704679410683390981743464104980693374466585251316219922932714292421927015679167967480318705818991375564816585623969112482562553593483181749926781687318142418104868508417507360499536369907871293170375611990575054097239990330252381779975563827082465562033647402810923906391304573069816764764396848104725203128668633708578086648384411409496742245204647506955550754529572226835282058295841535389215747244569090955118338708382486989506654217502114027805674231646530150689784594195265201822300469213538714580557440747692796982084393238685641176371121933975218359701107340773985017675764835476040597352795462720281877678087055347782732170249318091816627486765327520593879489335071490203827079167484882216675563847282232412509436684193147819521200162099639130509582367384426385579701949568930808055722115135215538745072848616690456476894632519931510415244551661691094106029426415412700664742530068602388043586082265445630139431098597300224029664969727960649660174990907525593427111790855247846210798345208368629368162835230169262838842357728942356678142570333700049431198700647773608037284059671903762711039233758947053985072336658748487826483227099772914203608618195076528066278610850825902221752299615805982394807073563859188266215172337999255427495369879741186185142841898329958816343633791555642628088435397968503481362682643989749470406807162215516788732336079913309005272260877249898323789609076434235491729943762474760399772598623582348112072890078590456481058216174109327566439380332442248502100552560481092362080249189044365570372772296210533270849628247248451095240511176222453778511265220453178689349539062963230413274843008078776216405086005814058643527831996937243313148301148072731038323280656171225904202629684877170892524340940732566809999869374244111119962501199155488782252420420398088389901519733854370216445838880146193311233151869650691687056517912868084294336528433279155427149774252541523931279293456235773215249025156713576601443006613719994937858410868878640064349080131824271338711712218408376897385263407683603815104789354609237253768086732786546471271203594497710262977644012967641721791921433227742914675941487901997329440309023510716525850401687957836705759961638778849039265592516189842979799861382225582985787341936198732877433017243795562070995910260278564171507482437982444800084768057696462843150832167888563347088843493805636142941960238655979494505838621619898297885463211328692123682982526488123404696623705377039833323186031115857822381675760151588888116053401601760731812397770995618531766415507590509610093238788512144769231925044993117460527755642029348081904880142234375140715566202396731311353052743357752309234221260120504770357492364676572577005814602979715895307178124145285124968489520715050046151104359320163858533657363417164380577154335191508663012962182505273717078742118564474442481435703457466135665591399216968139953741153741979301654113371013058173251600806275242264202868569279488598201680364038041360214089794982564770236639155347045363927927889805300800796933679977755030063743992763148892597226184754438028546133092111406704336936184353297731151495914682355746933027988917042000708888072731252675763802386768079112493594194595119292985553009780795910074086244029963812157128001395319998079443813750236690023516759036823379377214120856106961699699505653604610313850794383904613130994473465184066835429188709742637575629846831947214290471311394000134512493660990280331568141104840409361770274528527324997382831310093812927306261256225646306078178463508502788208060320309071465585537467429624609374754089374889592815786230176003064226222807216156240964874218556416666058470865943562267491242257608464692178057781470339010923539108698833964619036660278613059338503085102187531318221064377607364044098223629253777470994991226536956347422816092277452492206496860126667453590790935756433495131180865470239080444277922960501414211614766388036190369391641801237533548517824731934985061913990415854364412751973192169479477044150449060764057833595258939665894558645251926675099881422568730118329859016802702799159755726186815315696938095687883199284358367148446076293176482011284475525910574601498309610685375670997820794289585064237537529501668470427578963775839653878093993702808124783455784427410125960247676706004467184512661014748328125123393332574891688407582732107888329592900470800001880597779698585810705980430592991420374713614128357355895944045165342707261220343981217016034894994789525386834800801330655108096992691375428705002403660895735394562140953985452573138844124691691622064084706696118926491965447994420631393503581861193978722181967457164745459687765115140633284308340570427869791949963102411762369398461227373755783565377839503266856170696775712937976027205925562989310478866583057087074517604305560422599086935642675002606639100905519891751406067072207806414651296295907083331582166208215382874925441482032256055158461195569720541521498793528732575349637233261532213440790777194621738742629634464577428343164826093428111617949277749783797505902940580744753341748036897828102888469380190018076526443339536171383565141384129359675192245081214767808681813792917411181803186254136350007073594728162426402404536985070812678916247358465649788803963359304292339867286647708310128236244317392323118183309217054771916235243944723802695812609599825597561816911958569055953030779815039394782333717200487872426385112270418538357364137886431801308291175455952434223700049578623525758643481092821531862343124732583950632794417780039568830431370332730653770935377602626345348227108510526667243145109058992512003212400224315626507175098298863473270802015802377550603701953335362255523263746559095341512849612220812139689793167217104580722070214740155849122269168649193958323193679035696930001790008732299608649022383481019545684411131383971032882316612085433212354151901306593598018723781927003569873116593973291846112216462014892073855028533972014083349579705549731774815216690284345837292270252696984538642356696193796831179537386273720256620070068129818669939933069812169838346747401571568718020815619148244245871256178819782693478411535875304395928916279824816178099862520364569934254232977152273077924755355001349362553281495715387155763718292165787802007495203938411945328372822430026783340081760078483042772798146778953240567165459898346649546838637409543088151857499107548046721744781954271768318636825814084735753051659088206051665049229004142601903131211465587917721199776150219300361152630475653097831881606286542504046586420629900732145415848852800268076861561844894348085507383708562523212869989978302198765620258764070606773681410872542178624397066462717217716799734975582022530550667517461970401131625531139532960507037319765997865102197199316113146023308994884541729247629150683434775663681768552410783405363298674543213633724438372851730999641289640397727114826344204117877484997096420445347749589331832306662684667269896539739567303772574713013069475517296371175183359277119035888853794338398221643664096464119281516309919718362891495519768797519361304109889938067120826610701125936454627498299281398437148326408787401800305271111120273263004210273128934255420644898602219900491136451706200808192927349557838835352313114176198311836468105710060893153257588519879512625907987980664700757096380343589343933871843156153125201722608372999555970763614350471199811820385920979482593867435653894037016564728451294694406658459496408367629600348117739938304500039396007535533192125307542441746354794632953209093061243666834782475868391794867629508477397259133771762469641796281341172562839525323735145549433327066202071672687219861069990885912202392664346219397672120224026018050744648272294908148896649114128596733998818850105766820249300443999883503029223568787205403392139262611059028353624995246246187327376929817970010913480473679814635197074074423603749840628245379195568247146777248378139196824610607158503027105027467858068812485127371106160599588617388690455775370273167735278459578013387717069441339580946847804281463478713108294023604519513223021902549704168635077605681460387298021480616052231671466709697509667454143614224998932241245181453208712843452604055903186064056612185943063295218364327855456045017045503993208814893925306938713519972847862289202775272209022692631476435622986739457213198373669389093366984352279709778731043067173261434605661584568968611111553399833809471884957008592326190090558609729592986120063563347096081492497585420137554338748069641867291759613952524429893142287586763886029891022254785441954551123087974921233270069313507122856072116581720244818417452063021273535803222997636570666313740068232599789774917520156229444841733356992414990398672435091995972046809575726757087909945682125073847229259489964705811057759679706728588997968789353603238338223818105219461733284967631283196904581398898473242653433784519243605201403735471062796571324183025577460283054069237137654271567798696115204412730086534129987169059719802555740787226844732653626635160508952311418695276421050652823483922729745918501131096957757691060527329585560223029753751009762585924344355453373942098307416334165963714806602443136817565516246328648005001197884389516355137529308317359423225020052971294143257926226650632740659301564156777530438410438223966074261917223037353842923863166708148418924288320455873554798487405464871350350248075122306131910352986353418017119314086729735041230068806817443070516542811979508250822936666831042251274329220025352011943761043457571831637798714476101261447195316341678713126836046941372694140369516846541007638681909937573575359308316955466576783826487656198631512724989421808683722378631250268289100286134778813996171760408338482514155330065368364803274993702256083203414485979965327259240439026293914630213918399186055082688536153211728250513460335774974278374261088665389237004753682869170321215389707702497033570717126496718809465399798550936586087704763414904494783643215398068495036294830101516220792470402057186073005966473951193986044469240404843603087477303132615044261561738734889086939134271960156084040258262422550821329902815010102529329121322609148580272796662122630716339659504355291988843603162675926384100975488879236551436253078393062901736690345664608458807707005853573757743230131886073517153865768170281727928774852648617222783632670800076933202765481620453087091651307608332485167989114086518484604214483124701313532739097151156990241097090328448052441317069519801360135726070098130996214655048961909754921208975203180661721329034359939507034622778298299379428420229301398364063654544947520058546748109669348153699033997930534962242720690582830307754416964338637897988861391293580554242393860881483641216022715010840377050360169943421547033730221581373762439946812672787583272724006386051450398762897930141111004827450387193717834569844944805971431369460152173564962885912594709872780553157327957847863802507832960558011919033832537577931855144397700554799194437073850009273598765027447598866634229518830364082233039504298359563083578928577225288016064904635795842306305194216377337263043129638886897717971982052893880118456771574309940479882984842183452947961418090568683971915329340331214632696883880257735780756866815974448521280109167069876582170501845648720234831537353742729028699969923128426781162696825673104526126631089323654716977923508194026372285649294687590762485020881666526934150445779462965259393643768892426212778299985302762114702256219658812163763767490234390418851612603368702597429271743130187709894286892032488404886829114213022465547633476529557104645698080688272073967829701609290058944017222993560622713044805150226943573420607908180019831972525698118545625260261918648591041333508965667200693631634513330133899346249678076904314610175156498447174273784280695387300658416901333816371791119739353567611847332149121561487051252995533652561149756618113426043405947774899743990127053348931746430568873210361322723272960808032963693896596517240226876814927465314593726515008460890188744237708734828578762614814480151864839233270595156495603213944801768611705622413104375903850293093618416206625514562781611366362925533776746021023307311220998099783668615061432051794497952792636387426036864136960218190159334454042694213028385855283472632486542904826776073031663902278858823068116724972067749275074118415256912172448838008880736478126413765738934453120270342607582292332294258044352421722600672536900052155329814592415755872238721729101514396269109600035727285317212929041142229107424095986843486675747381377429947547023416333686757809564916425424735622578065562597931588011870483416067869084814273829528539176450164748271073212783965083985534052727884170624053600800883378572995945575794858639946810098073846743671510931899422252398873395473991478730984040992431586158361250807851441102352025404372608816474018051299245553324910356047460625578830683894968136451503355788021568442534949371998390513700395696022469433204050600914974513342415091780195399367383320155981462846406501831786491299554122038175348834845460327574071332664476456642081439063764376137581015095169957560241030159683497783013545601453501459724906434374964438332838475663117611142620985612402297346196699489979282616658129562118771742534902128568309095546902378394943833446575744186470603165881027067365962368447433229894375165186299283132751089147178202535174128812981134443750720176386651961934514228407189422726460364855936319706033862535510092286005821492924143021858569510668987738055150267934079381858864652472145181511891406787712241482055533569349205284215010619931104423974514064736439180043161812790221836171826151046908484992926734429460747389901455512314347429030107215743030058231526713724566369493387439011734055037336986602848386844285664571717842058006947155576538063982179884423970718243838721711281484917407187384019459738408706908379177900871926504409932780087019473773730444168687323723946512597624453506489729580287799669860431609225994521471499948887829894324554271044891706854973386852132834120580510335707414850566443763595507225804151465298677492807271914404403005178878198624764495888347624055602186033687053628016718895885929430262358321517156467455265166758157316733557768459638234084446627526499093762950933773834108132676708771280514110028074291779429547500507986892047082198718291357155198964094069630422629075163967160290510150010755029051730956013084524346641910408735872697659877573975103215396677456994153171765010390917988616167196704301850185890247718391363186628096611471230329775804965355168576143948288285980034332312249811011600245138744188261501292172337097829846344831953224612488943789879987687688211513513848758880093654039117257482023949400219934610650337175551975611628660794124609420558674583289913157896784088027784542547449942525689812502463344263760434683256410464665273206735048192006700175596607905805437266514684353547661550624376295739137781832086463250348956888083683169903735770957827357184207771986004743807985401628193979397536015913562381133155687049454483735214367383111446655324621892422482943648202042797122508567534480952991334517962137917623174347382569950773263452653029995983393289382941866639963947264788030389174731634893925821008842344175489979759859262171604936991347617242177926280324014492809019515543871300925409876725796168956654152117588820198776204815213158445422860447194616769777434004953972062902230138975896661540266415185176088697936762490756231889287989898115103773908906404001597517623037579084964441781951683291865435044352200559924076059300295005032511276777641642282322943593187684258949755001574913983337065746915364118613694245606554573660255437064589805881592116448844375699952554082733924454278997627968053008514025525390538652804326957335109783941720648048410332069888389084594356188730253540208376616753218363645972396586834271915617708177065611924456509071266507274379087027162737272436715562610879543794537932985405081117306272188249944043537759460414645690355211157805938728731827035121389365756956243975555966581689825568124202025838907527473692373174707264374118840325908764127663973480051428295218804670505544748263928931422118198338876195124091721017982411822080914975896365687041506986078204992424670743482284117971927411285435933143351680869399432271618340276547693282721504141575150437296513793001510579953130047453041305791471296177928693957649108911967149821331627337242144915916552489521235255518971529158221586034245538019623848183250901222764429755012287103015051600813196957827789839728717032887115888698383490963243663343965333927013991148279790815982395513506648788752167874332311513821039219624198019449878092955756524049029512367597284080790702814122920871338214116283752233241351773350711435584044261111771135033494746260914073598027711841845983094972695449456053475991154899103411577695777667954903417132576498178063668541546777262728112302372108585141909726611536077963138055392693611946277556725647353019773708373389592418163725744535044290355151730319251374190831951191723923483928552909206303404131126311172586676709843199314721458076849806903860279215959443562009169749041592362002554222717465982714680876601256800876407390650161469774928243429259213478905088098261746745170844101343165349396748741924931590930208010215238052774657457963926895314406798668691616894187344681077582240449428104049670211934792572151373136298572317727017284633396195528057901183494197500449450994199754085421564082266518595584747581850118204215929005099034851594509624470918923410758347039167857405790493158803804640620071465815415837675025765331793448024045411851867421090843994240096661176632994929100155684918711085434117397959513992338929559289176650298850100336290347336039554026264263841124435584182640277624477428516866689305095180540724560035069906485227530410447019306905425447205788540152993623371681227451243565939976999097524538250291171930969026828793228407431961467240920904109012564958286959288784648254534363456711307774202617604711515484229770409150650259293612138494053013022585026509283114132739481616707304998065596218508751954891894435017172875332927220965484208018385511422590652443713490010686913188508578444324706528622015076631982566602655121770487868464052258392673576138378147330661991694590056255279982608405042007144217338324524728531036560948526974417419429984686983724782934243878931429509722270890983212608796972555106864516818240457482205522761790241700591182379033434817793703514926112169161548490735501093960269761912987048084985344704623307564434335388850865698873208464770695365477833265977854631760568518600493017451445538679276006320900631487991421759479916627715245605051682851216187144454255537279490667591829995621715751005483017487286196476036217539643501240772687521830021169754341690849671591543178196191836349358066416228138738491185369475428716954100717505824277869226720696061869457693633967944239816464874935694744167576242678591585415220129390220024212530620451119823228011542367537576616950955220648600168345796447724018473121065377874194543742559119099832057166755679463893927094753467693446415460964641602383281666098146707423613532370135455712793663406786501323437194988475035559025176302538777709080902926997180101039127062380940895431787524182333245207348084395765474844384106954529022869030243428655999033011790086341536811754409599640200546950128134154083630618311240811645807501229098461275753679037618594408425064909086907916260376889476302378465533623366607427684714979243049292526304521308013334803502115801387138417973049521555306205597478671192277727423910134284206670142300331046616898600456009059259390036275753005688230999875252224216350111978344850490377806275273417519323409690057627139396221668582992674620303956735019686958632474474224049124211620596585678593462977275525919744920091200980192615544143462479453934660915775234117801809085853911890771341567762371829716715003238335068411478844957105640496844645445979037582655230279725317097370108562679343411648196989020000297722356775978372871312734797830208934495051007736715273820770428477820279956135400185671086081601783950341383317357117298644298851793013945022088340377899865170485847737937095442451135750973206365039111042555497659468672122580802675781206840931747421678376508241376698577278313080650264186145778825237416895342218005700874941645929584970299709634349513176003680122273169174292330882532763687887167856222407134388851804147981401502783217240758924205617644927617254603525927116465681962831048821896805557341353985214677394369323995658024842468917325494657443403292451824892636244785099122537023574786117438552337360749844463742550064029980370728910033982203601678951141914479111312783464811418510772001476276106072290309193815371510807291377628097464914085054623003211727498408703167990937691459495061249693961674508113321502621557101632692687250077081410599025451676118270204599121497670004818898101205038367160424254005878480596019911606127631535862528662949695067916204090008472193513705092642169173132845594202552648328834057133276672284980804010899087269722388939569924212020076696438152999034260394027353788856521628948535274506992253566542023013032404329522926015180651415362640418022503154302113804507796892220018365945955526341526983040058935663186583297517264953184175357851547561339803836940543020419174062043105095305557916204585757346614183559017577380660014426900422320203126261778904166591881329714507732560287530638347372190571241234153349244386005622330861695669372008822476523042426904989554045366607081425004409221567625909522046908465630011812447122667645742800400197621679133165969327545402371487630957004758433964912498405207074438087026465653702683051840681628958826823813690987257466312909552369232914492474947723994594644223010528462069689850286461537571498495587244534721354925128718155627360809714308441058483227311803094897041325695948616324170569525438469397727027246551673410494885567005690234174232418653525152576734456040938437413450431535107746749183881687551788786679544089938539140265933764983707736845857684162653987672726676026035243508163849649453257183817100272592576140817801409983941421477128450119088574520537036437905515108234487839694865626929141118873960246352624241341754903332607613517087342684127135739395694150736145618529728371785417688658160055287634051768196070736508956105717457748369437651096827965025103587580385549841879407351586945828271970430993237309218943035004653448881555071995323439980726650947647294142769837649949234228201209097687746213366138314311801838935742278976398531513164920900583920826468595848089951111548838035316004529833193453136462455510446910188170183243246445541686060151493241821336543475441351653812962687524012239846354680686745486840973360425634773404331110252900412682426968388479236237979063931447650838570901990961974007534862564819770928282831579434453554827759420736892282782414600398932452264636739933138983180457224697716214518957747072991557665276288340220415601581298830501838969512131541948718063582304407604943609488965007155757280926877122877918886785645745117847332941236911763105497366664146336671393696498258753712452088648091079252611278863373703795516835288206221116059779068623653789014939823092543817362589541502735858105913544158464886106274696005471335821635751635920575681218365716210000589456787866378870228806851094174975439481876903295701695127136860385419994686392094984070540962560020498720294616316544065157215734107464340637375007383595536693675736694166668894206781080345127816918145385797216631760179036512131694695302626490277453477899484700465982626941159385283484202188245507124140177679768996472888186590660612125631181186724704848367426421755469017661953832883380411284392577788667079631939588749560374790183315155607165823671914179825165442895798313455357311123799695617625496756395406852197016151740115818668729151832954232123679335278143871660367414677672742154627218809956931867585444750408788464296769355996885492416383828278256854936163486153676999678949673151073721184545742365491307848129464801416242098613706793244408250116066341926138059990105086634592175700055663777658730913768816528895222884168221268141436787113218492145538549104971751788994738645295413092882547670870445300592887766074021728171815388716796245618175641523871102470401954841412028660009021192348082968421212413419654677597637271349716954713275500065018526322223518258254750988969777778300250534781278715999880669339579613303259818538750739351831789318179295616558257709354493755129722913774331954912973380137184756673035332261244311507385512849974215351166118357607486473121985720756118999481864606188120958052893213915493269400944232719405854979426422512317169003337082776231168077023447913155319059979292064981487980195556307318993192697540625213194321757840524888060782952277940992724216931720894769060930175427405967674318134710584396430525816961042647511079705531631377749430530304604741954953849963409900179626977695224550898556570025225729687194568918674881916869344840559787111483022444963085915514631469202940181172657300046774111190608668367221469699082821529603999633980251217964971763928268393526051125666052660803379999216942277044223298762932031108939338470095999903327699530728249226510350960739182618826793545743310053597432818997460784340909359635232320682231683692578614641429820175673629760732848335945870688710649622963626456114932709323011285646205634180515730612953914838439762627848400893090710614907998748534930757206750228786313721125674487466690718266670225295900396031245778876324284355995251313593371131596752426987795690886389745968418925445531689401596504803642707314897149447646439814432137017767810701220983056062313899724451329769996012402132600397653933650423231442601730619048553815471596935232626499640994766440855503064074535640104141642497824339508264070319874055924902651866365316997491076679331707201551479699591922550312743281620125058924130654661949818277636138690650258582955905936632517748280134366194812061705439993897695564779433286989531240384586850648051887872024511713404471337476088433477301860879467168935761543198130799308347061855277328613259363403267050277347362813175850700150311180256428932811405542589967031937958713750262601907353224284916513656337641738616876256445355997396219284928878432593538983124402907448166733874237700786988784167281311177584027872694948103831281413439095652314901100429389862087751549578688385811126684582494222253590345417866811496197692142894739208740456075663128551476675755339332445270232474760950298580580516068233668643695328793812953722398863694021813544198819722144953915185518631756692145790671480124690937353757926124510220285485752600644761407677365285844333294926222593483966272395577835027895094885058273465455020117517615649799225001173212758645048375374049923095657726557700569465088308283234432164066834288383004131281881175658378605870143724266450205501679146707658764638964539474474015802182401158541931999012281776479781013277080104130136266106789258769384283487556857276013859749430784095425525920257610589158635056086455353679336498704401082489637991215265864851433422152597482091298780732639470832648159452535067160943694474579491760850197824401071277557690312776413899698257238441241755787832619088533232991022157221489057276131888656453976229492355165245569193825972008144750811591521959464672746474782626722615210497371382485114964986031366914846654424028263677230054972375710502102768577596508964823795024002989889220673629201573572270861387923340526875952257402619399394270274909440167172235082754217607087876900955299049592388103713132932145108716147223671972569978668383145103384191327005824522422910760308084614228247937880606926533064335967189969837599804220444499163739000598190650372241418207427856258133001977470700779067850372090056004922557216423839080033681332352567827096617763879003132278098851778372498236450160183689876667873797850283315150338721610689364615359806369100343027047155744125769040409149448138004051906176473330343245011936522753175689480293598148012268937659170766337742866329421603114077945587579558375284971691212643613876837372588647622262134850870352283906532648555353583294935983105291181694856747655319601404029061552461597602467700740631677118532874357596731514260724944437884512413100904670755954139826788224421408803782257605704897781645647696115555435495179937281467047960741179946754129906527549097199399464612433173146855921086194687810457435626814396287073253790666699151162044201590242621761464811006063106552554927403338157256973692793363203008948166331853100388043044670033390145574770884996384281424992603459107867559040394890351107598648276015967500624393491510111397950321572030236821441062747437658772873577511702796285798529453825187638077813706386378126252024056656246600975190400937677076067775223343309518709203704583390427427336126841475657792744670525690169018369874767092270338149520000517656452935650412393364958354491272528440056960422941633771887851108750043845661184115091618448549862739539516452514762428720676068581507232560353885369602835305290709013352625652290050569928846058592350096980909914650575281429330583296401179998632689985902191850229104372595740476816228114069385392768431981953509874505240467089903062376048133871383140566607736915944024062395208135707891037104393985513431906306725043279859603089709374946032736063263604075929503241922666890267481191733783909627279449152448330323891219077259124523363946684095075471317398497770621050548778951704252064271801293082901000193896457199599696012371522018781990128087959178512456571217959154228520304291782871488751157927244448874829331288964850906235111208388825956624687181152617183584955682595013256316781433343863247642875296216028419566304565710974828439472704537941802738516362049099251393234703917539374802375639585039801636850614420409951693390436316024871807633919809353800353881611575549590598412290960262555391483026294958428433489729809268559243763957198450410111472205908612329237064673812941169633850175506338863514688916097466660986070789592821015223763366696240997313626335229047021777826605068925699799305172820988062852932038024454302328387088591168411600224196880725910602512004803003752865988396837759913666406370508141244472410318014833677007691293730657205809624571373700703631033765129205448692017748705161516514926555495138958364548316635450421953883660354899982045511444239053725953401065803676889298840501715476809039774649463206711044565924475578562268373327090160756369523727840789713040114359114986077093018559907222817210281307523287577594011317371328033669147134896259501812691002820727281484084641907156164278977041704689881623548005375387684735015016001731272379319173468064829563284289529889694101814674708029523243095948712627411542278871830449262427792878052972467977881607900054663339576994147980592909594666217980089197954489573980781514684747991889439376721097601993493624656800127572946479993552471036951722769195504184471490598560374527766419515238858961841479151114336528251047025010182693016068619143777569401355895111081514126907312595569303843170820065830807763095713505759830618163943529812799348071463586204188157470802740735821664193895494625582946227472932300052772175171816279082474660086089059100249472027192588923682673246306809744733663607654298601888797054947366618653757590810195555284384199507279399523926435065552862333628810359956458828129198730284540300661081062085988359680701868118269998870769221815400997516473939938189420400631342807941166228528813599345667053321775593366613475157017389919683420846381883980522957579599037563127965734436100441812172368633206791906242400108063869695314076203074791650089036289457451213111725491083936820323643957509862527616126463010453758113835561062007968584368474564218800413719694557817158879069581341927274229035953735828886029722154525817441385699184918326323331928595705612192949658059592768349188774945891136965904115162742002174969936238329428304630954781769563759200661817579417049710191186776903127887720448018798108080320169042529806404039539439870275017859037559003004786026757724603560016287338987936540255710550524020057816195419285415065681709593461869984542981684698161520567728314568091751973875060064605944326437601395758842005387677966003161436400934983538116679963635196060328616564013126921095197721866426967531102314420320470428418067566231568268903717454611427365866451222682921416763030445069195124671849400740706904238727814882033010980935670079761806583754863698516545840886839465332633375390466079898371727016566407953967284462035073740925754822170516641561806916231355159962583221460574829081665122652199906110378127786977147810914485603769478784372908607720710476065024845326772613183058396305584129998535143676369984762262219645909389028727530717592390559776606737724930076540217292946518550534687769549656912274309100264060096200033475179882699177322030934464898241032222827811692942324161228200233950306144431056672437967003719109916043477310686241830897220523580553900427657278620358463722064495529576096395895333552980823806908996794236519859720187182400074046479639866180959561972980491582525162940833141852843736817052444670899037854812395812560386768190440942202788911765387417562333927076310793997736166998846623377158460894126251842024996119496078422521283209871506043926098097277767575059788828051428173945718913287930883478543517698432923874008185855516036759311801816346810051456819720431644674394091436391139430208786184780822682576289798525483772991818261827430741686038645220107158855125346667012643758474969833974321431613637568811914140715448501185612358775726016368168377987998140454249491558040452148417522906091139580674499713907767724128878312364208310952017848911688352524986894164932444108848022200113360129307593334391732201558938788776935677100799762889817556146520051078326898282733993257341180821854852545278475952574893751167028790515606057518893332831022793363210861614473911023728701499374803585434741326792328986315572270193978815028288801171190998536973360723865342685174317944794074225083969763823963891867249430912623244819953690352700731035176751659626890012167058704494430932877470889961826130671387989743390352122619762905366690254390264975968637196631509408380940248936778471689173406400804885245740257814538448812007032686952579968658713467596832156795419009771389675102280659597216712317656361178869885931106555532593953311672291479777525549519955173774229710531227988618943266326039825136275609425534775371931332002237021566458049823797913937379765987655849524492806870715830670538005467449608715459478391713680058161814342406630620747396646240073926195413109452105199817413262153523173643272092446827773291411861944398324395308543043803023315441078474777567878754437219173284269447134040948553601016384764938173585343164951240654707716942529374836098473886628510023511396462534352106996221875289890682900297307243432695126926733647967979700746844339514092319585470512452627541041712118191654317668479343315971702291159234734260232429193710515236541609679296344096691606527744483940319699372168038059001697995103685535302925434603938179193960764982053893802020847909281515666123738350949035176492352740899930758279497029711271974808414780151101237302451401870508934161277158506855607979745045427753381341197018867837818705289354825004798937805359907224975045164038800714100861644481646784475886013185679127015574233637050542584297017345489566260475074834871672616204705531991768117803899006941120730637627332604085517505377174634558304264352543264460495554782430976203049800823054154483522509218017453352537376763711109045475980072065671222472487808593734849865809930260917818158588610385140136340768971320000408575562367456682348959916013661439034554816936143452069449652716736059787246650493558747127663285437976496037317796006027274719742985939581408287084196116674333794976959236749959878737381067643235907294600272815518468324157904414717015755975470400703668550756715543258715236366596838775476097924601880050921771409160477240102652911471033999347192963248921576421315746953694433065752291198448195014592264860683051965869899700571427297064942590007654003924675575283428951262520367210309364190077171840008029843560436710150840105386091299310809324374591568453991543870818057155449082152446843268217546371914402498313954842687670222345218682610705904904721963377624042074291014784579601978794586213245480148914790109261389263499935856567356736470224933589536282594012613523768968212264613990577218345789011404455370967613322834221223579707446935010218876184469817606037405983742124273112005314927748105243165511396755055302158137838964612242854395972947826975950904775718929729027851181552008398843985257783993818877915493144380112058977469392456133509600849165776429655412298067059091581440927402075691485273191645069932863952836333222543069518100873700909238668191602556531266806472415762792134850616419177041542316258599973034608135886514258462708210129301240826414337088709362651714430117599470860326464074388052394459940692903616735726875684849699223152868478187138365993160859628030490426850751066226584748341362433728492360545679055473659502694321222641846096028476753908302384848962346879838342516680719049007860100084419155403321877331248686427783818371337009513727125355616244388077190803592733200358151930511288797647575117706576409065827241514006834783902799505998107783963354708292972911152381802974750231035389389107678555228266379219272027399348831870169238330390646953676745215513639259815088398361805153214904751775410290734756814591836573941166965878507519330301628057569187785438984160988434804796088242156240278502715187732648077925158493122745525039837142943517126754986941773376564701809468139176544580831446922528786307336466777956717223020155758905427793376443273204077097542458666159244796704016955271006898556789693473202162655781927634927335420944397105410578677269297375065454214371243306129274370235834809731511225898597292804164804296223742433659725755189227688715531576528676282604454792148753866025814661964785969574088516037430850448253967978065599445794995854481097803892337442884501342531468849031940321903607227593579139940001244724083671590612536670090864443637206404492004444512910021242372231584845861398201882286358725088573618325686837638835258958357149649851269760633727249293139703261692402241257949634354202803620924177296545739818361727257300816320203293207222764668375017834371814808630371058343174216378600323867068642714439611148472488379786800016209297889263777150612712161966251755742686285884400405086725666975520974041858704643437883306593934414556542325948823597863215565279061115264581087731102841156861764959856213315264110718024926938179455358597248320538641725508133882557776495967606352601524738557334468003730868368932226057307209485530257718735882413429935127698430899668543695595627914973607108170920243869834673830958391775406840895178941025804417560954716708939870324412131955526292731104346540353484690350811580786160712830443200363312236125405514490519802329505137788677617904524564678408870595237244333974032313281521630295193651470363571446389310232000643237778761869163959785451704858221694986945913532586041816897784065954279052838799710112617425604561883591806338088074769567427713038683094295191604912941802754678747324532121611553367809673150999701730785273400551155733777017199820100140356043206933739056951178400007378279416360198128248453473623595740189431901880872672652891181893475380616547591998033620791662841317723671322488691062442555535335560836781043568149836652189322964388259001949427595270941585624349055069041014880397528437458154996836545889719688380498879807715760205311225718378148720661006213510481710275095884284910507163443663123579364336058625456419499982747431217534114401910133799416740302781305773209978537933865247510587718484101425148997845224296912955757715653470388248199380763452080868836745551432834737873395159050884064523855651980699388618131359984275415909783460031726605746144075587510607994708432832837388733541697827579858268307112648448116154206806686746892249609989904001284086050509076667643827068511782016599211570533702163518019613475051873354104082305752171774247117452812943732082990631260026687117456299639323555685778762678897438412173803530618148220603146592309129831953031484894416182675226983224689765042006591644937971271126199030135631601574237317672962706670741548561808925229515977044722923816885718489642227695855943895294121217827964834341632056370692863014035020056269716283633516105421875788578489738184251011080261727981283980925336747050315280549476664105334741576455641854242046171899559342438539301155406763480264939001403819452023042440784786540924766306873531763813648056430772979849117738659690612644441509068417394966093808031118663338775452254682774291363282008731225528488325605054118612569424869220204734927565944033776810473524055603103292141100405487013871116445446477088874297312985522432608606654342920816606073086417359816666965635045621261594454057082538479623657419859481397177033957751403503260104004377349219547054804900399945872193798151070000983014646549071664159008495838031570489700904377788307449108919920830565366232189818409380726892395839990394278726247891471228517412423073354021825367565648281503020366620060129070307130735848270354354624343767596816510873640286362721923599625537047356500975177600549573185788244620293530646025667390916885828611775719432569699246361720533258459560993510950791116644885919101382541997773710904417427676013885882392542014707665122732308893032386885795913837933200509306112167213076109392801838912090448254107623104305828421643207247029320806344847253468032997485738955731745608424466695453175010200877889398738875719391397923689203618119579855696222068633499294753706125887397087703328853765098436343107174818874256225910984170928956264666778726786079918898205442923071930251301232046581711204368181985197766969628136917198444389779959065081404299581042224138737054438794019317943903961108061226624862221238452379136698663018002295086761256168942609788883238423604814254995338670437823256993403900124710698943840112312771631700266310113083639457288123080812610720925953449053866510367418073499171204116212696556657407640695567375619971038662249271677759488769367704971031863127722072319655767377040295610962409325498261920906959673335039782024193451531228194516062984223657710035220340011073410222430126146763534769553713488009902681173480869999687369945966947951482097350779219536388316098376262250310954915854175357677353409554033895858391401351908353974032358620857311953973348458332147972817378659681754205681374715292085480624032911797440459566452995218169196014478902242900362148930206073252612851105344086221113768156978773954411455620168069449064880007959866497246281468119629029127428645149297984199680324577648258513510080400327407793777299434289414561329033174163791211116494701091077359087664713125425063913596829579464958160362272277694384707246623616873497587387480930906355837421542026978570990347811470987678557762825280535281186557151081130418538063526006162413704585583971974757513538520836622721552116345033266076245931950486465075241033549244994128698256140974824867074925367881059020847713120800883307913253749035099454317785403766527738795825085354542614315436630914789794363804251133538474797648479277190769171331659029774707237715454741954124955949492644509128624002646482862858474892056119600651888994513405499261458899861614209935209165675948661592649956511065281584552617459069761530530903146308634828729894397929980392303105759542893412342714292734921521770996731952965558459701604955917606165657098255748675203494074021438436301342192235573557963964308874736145430065115829210258480484680601610311458615396898252770655426096409834808981508125849349808454716760298914602707722822487584096546158785414578213257811899540803122103509374961316446067698567478730916023059511028418729376174533313813688576364304896678343906587823607147032431528497101618049856913725844190221663013880768775140253988406923948594268004370493714386052874141007037839071566368116369088978522784703364013493200847154398770245134407760576559042203954699816340338540157552466969020965635518192362114418615666745137986463530243369037320801432526274528694519063766118607299886721238865908594169897522932183537799362314033959627996765569294625280455607934159952316955299775352011298806949354517302914015718764877568508346975735372153840224239870415131718381697092212270456278150865822639201405719927467392315539775923772983694433886638329375697218345696478646929458487656927176236974590003540209236909088842629927450981061015539051981756506567934251690150442421727548569493004448448994528328118089698322667024535747317742209459051658780632963454449572346143043331272328572030171875379519677194610359566606456815680827543057614661978906294666702403652209012958938518670635836516413784788205717169496605592135612665919562481851772299347451884232606428054816687541036286345386706874825378598650190211771219411505368063795086659171079270097179245022860571702560918657363521997862321684970839776991688506821256925444166129349661517467887888705696701424418146323534402488150037206466747809781536076302506519791966023357709456914960839863838583797460619580243565196143597926978835595695947548581237533056626475587767557724703900160662109604442523495540845010329387708418011835565004795200497878656137178771255948865754850284060876893006660782279350660722177787372264659408558985786131695309653303320516980673973515395154976093220685886420030375739979399241498911095287557889379654549071988922892508314994709293233016396428134052471407807395170784605057872326235591813732335535181930844264957485785827713313787214377021240755191793312147542061064652968021512562886083820340023354604525632496372055014872094596353846056208133523393281864104727132756056533323045561469250158770086487072312810084191891984755295259169078430595438200606081352736517872833832554930678113221467600647515138761695442070794006594386994935583579962566173901038630202800411317977718265617310658112937638747901428618538175469113258440983891136204220540544792113293729509860582096990082949023325290374681716157711402412015390701433922794222234602554988125912551850528850202772797634871767058587815093637680429016913874273744873517960604355563424630990881871375572442714196538729262780005399012847733512645090332731411547105484775656450609794502304472262350278695416539472198893208082125249982718738073935259543275527508589588836355770045283781631491910112825275278302627074043393895145733161736825639030672203183183882062648744925496061133120943961111605719038752821367268299025550593802555913928760480265467030355572838493141714377124578887166019810431442794014028604479344062675854490592865048585789131766307280582032911580937089492458477860619126691356955999287993328485831347541649063875712802001086706307396589911937406998631048525760981328014647601573332887697830234705794513602515274696277218558674323334592925081178780883058915151109882223628514632863622988233414337211099147979767339711350940950009064491855566554690268829993204053901836828845712236056799060391751771555265160542146771595901789732431177776750573330044878354828456870673008821089974083662745904950901892607976097858238424188636318137433321382075073806759990261527465176371607079036931487244216514726515136537403729812744923324683494177300296073162524119661160261007178185060165833194221926733912326382585256525179677125073949180800927206916036992910339887009480181097068880465378809608471767273672426930121303221314917515171595269258601083326392763046117682465710702375193112027611458252859446992581010893001894026843601154507046324238584915549836128803789117898472331355874583354516981579763160024756070534149417378150656924720197171371125666580776497947001085034425086188369023819019623482980150544798196086796356764823025248570847466529371446421641387819329507529243529301043931928363431477720890321754394811358975357565311115045978068892718095740611088965446934927515199754840858981486053511251176756579054890945136505889680351264089821423179243910881542274441666399850407679199983437166151097047127892069480343135207112649272709133503665640612739104128454461002739170918773435459792663642037675743332545547612795671384590334635771500690508795009838755725172997743877395436083976240617189593998868686768939344062082045660055193142634279254204204583502079856009727152445241423523159665986220383433494829824893033326358431271376453072235612494173262095249980465767484951621738919822420126673139109036664975659368764462198008274583944348804284645965433283318467558000077568745088286749537166968136129941439566906455609372484018551631980671063512932639272456659460136856966085726708599928574313334945150633416741404519137360864966587008106481931785540270177642662259150789344796864186324563089381830882628663466888636284839903036128790304405355072867851347769874761970300011961073723459138379005745314889565702688913910574423623866643054698893852721702310467472777698028996078157274320255787203926340979800999090981663288359655829545408610609191487097562743889919158957539476938187138294762672458356245528018753951279694275909992747850107196860867045505797183099328962828228628727947358282215342840093525532269292315797903064194622093470653882990207925492804317672908506309253212847556857191693841185275752129286250372770801527339219085673888359389797224011065762149348301411280177055324063745977227750300002238646605184860913969105442018837388010812936009089362970455009533162754489560515490953378827313734927313017183543270178388478804680988192784486487856883402396242714921282406305230587993365267060339204075270302657577327266384775626542587331374927226032122968026752584218994433438789754480722184358877103662891964799402812350407650648678637204586681205810796392233369505351124485443382661290968555913656147952126411231195428351059962537705418959349382784897014154641006922953193667974193370014512124459296923959085627694708177062292790956142114670912246683483939775017718349228721649533612728355107477519888191385910835187772642598978228691762005171472569807075713833265119567004610071316248633657493723693985061811480497378537088334366992030464169246181348643501409034129001054686084394228940575163768910587587766572027351888931712661291163761029576589906876624021196635263134973220297963930476139690611835899171017065876800994345997290977006329896094127106238337881313136452891395856784987810122138671589648365308862142696044175217515983962798210991251575462940388617963391327247001535275439238806654398347224652350608007606405175135665860330540060477220527921694109376903694687179253082972198261369315997793480576510333837398856780037343047427853816634748746968204985094643537815687491029157450289001995181755725762998626486156765977122594442794297044082102072347471726563537393802688707289164205437045825687068110099326207022456389253286833027505808178892434816322873412510025228392876772594873505011526940992453343464356113930932482925816924528803357175412084183406888973335601057042890949405801600013038595157835895359800206970294739450919076362107369604697981757549114259295335764991362093052565845198402583331824227411161058414638508966882421046029627403929483148733725680715676602415844960769448464467815328111106097920642591201814871421628346235275547497726454819409626953482829618920886220572313612963237242954957835489640217287733366113484789322706368218124205659463189135022669485406369315755189826052700922955764476700418108173697573981734164167973767470536026364163211002708799071490875737095218657607596195935674974838747328423829901897740385376556535673302995951473703719644707487718049649322296565628436548452303028770253337931930456552509863763273996242816927375122415778792303131030549171971090480165020892874472038921274492490246687063802451137295249505306499534950031179805463495321185080081311937663199626287772477744390438921535424244965734461284379451038995858491128126459091512354069699191999485974528068193535009889412481392493422121465503227188114120448775607945523635089546625577101897319400524661623851892853270392939303209699892456696497048499321392741166674242749418825095021257574875799152927242237238798659990630387370632644078484344591173566538259243452942662759909093032634388343351086150213136139853708941259443888065591934101847411680455971597541121208537392012256526030515714618980392789395322200050173760464769528495074297484095144633947274345035301296715671159550049035678656340417647152112339508710814391521249956533659277279581230930068897850925265865627911274532210453155956942676498104849265060803209549629624906834645349780279424013276074988325007544020115583904798951435819518285018468317294380218773305250013173552499588744608383413116981469572121111617715374599510052918808308875818271711368377825877185416793101164481450145074097181975626200583214681638081008195826242677038891879919150544086259365278015688962720225406492165556351607702525113712102194178085651565395694932120739269521705458359050437254983301256012327326514948111935165633623058780549365358133801269616247166175790661327025478771285476819121742098469092636859524197033311546768063623928015263576100299467940019520583805954215563231362471082973714596499351211696645890517229392638576130178285316632519856184005150862595121147414208388381777170940360433763958002797164166571915477931393014056710763749371072347197158843031078424212140403146762612948751153230840963610386464353739194996867596123797283877609652574383361475006277826221104874961903886776921040219479861700394812168462216962424518368559101778870355662673622464866924440819990618565711399709080708288238640576348040443930117697475871040762907606078441120988009583513672614781274314156493328389610260101149617970185404365957970835068585094976207524838643495588168124843479065169285467053619868446153372008243373572325158859142340703232748253045588839749402455525863015613016996774472410226387072110353691544800246163132605588805712439212658547352257523254161343950113108875403048455626217965619587307212471401839527051349995876375190115319709436554684303167924991205240829610952615929877290962215412106025065671152318868431734668468720267322639029497232446061226767821924983806853916620863637873917852004944939851447613252416683718340255704505238330279384705227816874891784172435072674529676520025679482272628839783591295850418662138902282245080087751034866426332978799973793387302146007830068568685631237110685431770128505852826500768605389126462840155557041507630104540714234725362774399982938972897843165008544068978572761995163803879207121789414366569848868012314247295016558759555535982656259036838651440392490355043372296323392850488867851670371737451802856193530493680605427409591430976898778899039543695876135139111566989140395621612517625016684354688965970901897843225006580987995164099635157278818376404434132140206732831017259561517855996804187647371793953867338377957046064146689223044805747042783935304019750328660721478698277582730599773844537764472837871964179755425509383163115391023901930514880769270698522537452517908333367115495336157286116472414703712975175527288033090970022364488418171418201388307425098571670826477225862782438145701044146923474371838658585810119657648914580166577768270347181602860840183887322566207978195693798133195380664969754455342964804041702887648856846374965900031673730760133312585200435167227642855660643728586928556114878186088333807166597446418040957807279799357962183458920215435299736557985898513201688766418388795457343368399170287000316186315919388541695697268018674109614130589863065185169908138826112828155374914589443252063014013597673856236418610487688854396658489864477387106566936917525861800633167934585960294199471784759896445845302964063781318316534326902447316613547593272288747050104879040371650466034612064719595931576512485405002950768206599160886388756536139264339609430125782541451448828519140625175001277597190198978734203019709350526197756302555506257486515746732154020158295928765221670537739497280708020255923714172856440672561274253208649025700359596098168356886384994236203491532730336285104478385897502475994284796192824220293498824312371426676028330539167883069252107632926971623029209989520655462967195465506629154901174932486911016590587677437105055207935581040276285473734151699615417728453463831218586227717382511372195605471358735379181462829297109026225376013899174170929880706617156414755080357303936064446651521712967308508041120988667013252909779975820722355007241646821745630027925057589253523850942935440903325057836672699739854115065818129775827222321095398962715750417679322639008410801662577936771979523245168181620220640680584524546086186701124351753804079952444776132168685067275356449538551277401154667513080694211317551293576510892441683021970670000854414776746295646787238733203531962377723482701135621097357981569225585920903790328118945964667472757991833418137676546580476602862571748281334494022474284267708479097334753745306840793529833142129834412405419525621981179433783346504807828237949222598178340640103914496528556665336858556694089720580944914842244560441157914609641812483970124424990706561536898938210858598700884648415096646710183850384764822034778493174819024738622278945982940254401408167904165918925408217163634167288667043513507672820847151704077213620317491383591855888758257513675538664430845673830879086855986875917042601065070820081864924943112619787372379767536038118962647618135442413191716641111097484442771012559282203113938748975835719041453765681765893610787236114417297563807437293743857305673298701482221984483621762908686020849038641743702911051792556501623261273283096185573320781572733365657349660087821464282500315462098614120866583635878595560559156378668652352986429699055093242002451551953772847071379872909459977868579816456370123991812579312440691899443933303301228136412530087978906850084752310444101582360862951511973989359406724282335895922888983063781771284897505876219807351808786074877656145339825386062324636747988511556941211218943169160506208247632286384493695194871129427429997884388047113529568087442210027625754739876593855731547774676540416837308494051374561055006808828896213704284994122341116582748789473999168562902819375501978692884886034497507350126522699982000250394639859959235123745431947715979236874601128685240162978403806573444254008716512584747802486568690331325327782217602550839237760813914470158444111864097496845224113986265692965698175871545742223750863562890217296540174009657984189971077781435536569730566153836875087232211439200596502362286931570701751526622166040711521068269427752333884240188040986300623668541808947760204731003720310713195064269727991609356977665545741159101492915222984602798610441249323204747085275064644597218992042040014976634768414002035195067661387375083818595561869135631577717672686958428782084273501800486321030694059408733357244735448837206445654677240483098958766460150114565757259668144498298398173808301510230944331428287214750939864027596239048188288193120423320131307411875577115143791261750062528683281922514095845342380214341016628591560959194416079154221903206352158575901547977549389207619773540858344955166451262903454234770164092187787753514821383038937612240161532749664476888347100770626474242013560911659880392878717135453838210377769858603093911679205671901922724760093219878422830046113289075190799630489843528207756520054028458910781770602328412006616405305880700526588648251927218328760045332437237150630429747223262262785792203406505315647963478037558465280985436750857645351700009536881794118910051412617020111807354226996566411177779432706732411055910333111345849531129635554014414068452514274411474910312046550277927582560738978574996626066342755975726355784128554337806087497757326932428487573855259923260746045974060301615030207737030557190050372220572681481140674091135664089050140638160182572903205253347917797006893928453030620821811445987905028405219024557428126904725988608593906951239702521780601728566864819298995020852645772494136070136309110106662847594044542159702832939591705896655924743504791521911784484780221973849525456974634190374697837859811689214878526125542168781070355947303951039557202465562070281310337728213806462812402166473190021449577141279472300601807348632294598967122433104416700169069713962447756594388362945234057620048404765063423413757900121066434329712840516116396349206050990376776243723891855623876259135469740590253427088435651390494691014052645848599464641772751834593235439647958445329271577496484166962854261348631280672502492541088014415152210901545009954555177252161266402544043057509295037017908188110366449168722997896502347181317254268079382753481998237602013207567091177503916388333002478186457566591017258055273989192588674176489570140177630633491022870797676735097376364015900377648690176548957954835164290373965568632597149403973683907083607797520352872029196251775419824135480788734960105773825122551841914634489986466358225125103085131584843158395527611376202216833185127036225483603937451590140906667564426353566327968025400680260283675128297563034047020588946626206300488952011093865214688865525245839712431523673683646721968495630125135055966287624098987621338722828434023728268335518296836179486444107110685955582573031369622386795170156920630147326996760449699614987642284232095496122340288377769903726635131526435294543253087408199729880083732368306812622324139659009617987074826949471462355942757283462525341076710102631637901258953854366875423407680577408185630126719731098583936804970138932565572371833648097177613426396417934071754447363625050409360648205541960845582770626394985457392195011748137922214347477171796651722430706860313126382009934210081252896953574658694616660545621358739395857338163344767364843944090039576331723672202857290801677912735649366750314061887243280843956675714885496861502212051348650202296793123831434409657112886248770358499038871312060941972165309136171734968903103887660930871683090041549609380930424901605774543820853413775634917509116954455601144946767452199919969172820978951369355259605944673568979152617680243842903119890602847350565543253717211785941003509610807439016068128652855773557894539363863578091932462042057617465380204397572061579672448598752886903441112661829482266863670536227872800077522802790312483045527577366839375135104736795074244870702287193408739053632949143900580986368645612809771114520573411133091614872796395458851122178768401545131764810980668811706120292567281153849661148595250640491375755759899785246996009482937427158571853138216237290544168890705223227560868220519590646476268218920698215515682293520423938326361081321426991124054890123004219078357697113411171065002950976758685041999607977994074511684230300726895937083459408597578633965328176986828114133099707408604271630244892925093246169233556177779255989544064946940652492269216195165321523141360837039216510731503197869342608957902279838945247001690380117240028730941565482490051446757668021867666297660611722204095106257744603494656022871733674400749319224572635876221867400246405178799813506620212638585707714763823899815099355433820496768433565650033888418786432048176677078072642042775681552272992246539041659274962315582155151744144609087918089331401993767136169223394139878209710210353517697206283528790085862133360444879542710894984090291334165158079158277241292334524990656989907429302353897905186310897697585992839483386505865186120556784943997373163480485851610259171821750082354935785507531407175404359064245621925655885153585642315280915367339809372155358843620136221812901470471153981753361982611953028302584365302074057422464288525987426028071390388403012740204178532339535099468248533123254925556080512093352907318232308718365025143260888089880140289962637041994212151901371492357112979743571350480269112393971274842834569447342358692904027545485500070699520691620134741746514399333139353968989133803861850717901074633461824052673414202431575646754240092216518145568730822429917728034763678419081062771092673639379244683699950305511974564318214991958301018686566538664491585578183723339040153009367153552087648367301846694152036316478667752904629400148810315453982320658440421006934342821694188756308801908695654460851650963219876319636853331456933457067374469439719969304711122460442356940594455283937713377729334631143760765039877078562887378498321736573118342401950223112777384062776619846650229880656209380885978765097784931021330814110516552224888668357234568349622832626342845198073173484881019940872364149011540774634764272244220589500142953188267834350199683569536025950240185483481250341484521735094161007670702706710591405927884549735094740746415360598904546110718265852453166144810542444598272529062011419932726594688973534737102787779694079291862298846410615781347468092434196648410204424805850317732777187563838655898593468675261380982332493239658456557419250712404153695315218468868134296995263470658317668290145946562203350658008936650108507741395023470552979104061407463604786242933090507530518857129510268767850324195498022002041884619638785248113839867531643552652637427118144802685042352631411279482560768510148493000936339224803365426226668131818044925931401431178221651182202144647300085895984050997638677248792045353480194824476720715839232164090111699712776032394605683809098939504299869105175311576779421299841070445392739967451002645698417162911900297087979618652891403545435341028017921177719015744890316385220386185448307902274279959870743830309080116024374357747471930504211247809837699031639886414873092230402483434549898670087774604252395183728050513494038135684247773939865326496579192043002626462279907510588072262785697704474507912295792803532589043884705832852232738214116386473361776539105336662531682704207076693306336108685855707124578673095653737465584923855052988967997238328786470416411801279713796603607331567719527095520070611830657797523591366685561580976866076060472111486516208014181711600311278037448819821705613795316890478753681593962333045208736207521270998580809235963560308081012552810192960157846622507580345048511385276406995712632569654340960104212044313565302711047857795973466172978608306834131838810494463659560420315533224108217082394862607246418023271032806823478374032655180822500083334188942345530798741939770884022968553021410189699433900277753968101699565246985962339015366401207724774869705558720668740799996303403018588719391395349472733472092487104709228791014415060477825385051222367308667229256231551383730860366012950420664538878329146668536207191215718908394169695098888341261221869185857804338068457668206165221208997749207100994081124508571812532693092225767924103667382108932742698605271152356409786666177740098217301247101930654746856592879421190944054847390115734425143106215061329041238547305982608566651261478536426663262287093212562767365505830851014912412460675133951991404704684502547992311672884012967802366459066578079588924018540712178794433046876642738925622574125756322203729733290881616086345678537547533579563074048076080788221196806768263694173047135622380940450944891282910578715203890893326358478236648134723422484540135052761613680865773858316383549614257128550925621453631882213103469668890324726273973515908106088183299103566576398261684695785630108771122546775117816643588634788997275249560578720853279633848279531420706449924875903329022976217425149403106382326411547653692078178309410935454044777909242479291641935656538123317516402461447842493218278380161321248731353288187269461024234939122136554642481202350174327745897469584335881432379415435029968677634200481509447961871307718432554976877046022053829082646232137970744648457966426044009712943655616638574081006801773083260845165906717568440730721810924936896025127586128831980889536641469560609237440895623447061730552560934457979578945949190434104818188823480920573993918616979768457562014136348813149080447377738004606122950813153954749655488521602329358340363412974843493826222746346323061981166271997298547266419377244162878621892565509384299731061706266609119329387140533451176571370703645137236907259023576837680165581950665132186413780643089375745086329227199974776419165580638270765057984595753544904070588255406268870518239216027524722001013623372884774967958875260813651706044265361128684455028910033980401797110380238767619311961486967167908296775329125695275053946104004720942364148456766503653330168488134140695439583637931349927316049697054769061431870584097894260330115333026108772971093794627518261446487365504109664663824185033804816563016998180271821472534785897145897961387803239809429501958768796857084506843603984653321753736733731355216720398527307381260780924904678240673055715529989739798263465584626457521694202772147676867914913630036377148235425789687478498160457591948667216281393117350000953618696984491540432410591733589414223874694634320681073697263565557176001228285567832038629907188838446398058019378910405303784259603135812706099227081808471979332931510566554649948498921694987588013261296882064217382431908449579772778436378839364327578337199671993288827352561247346509898599003320585579977017827329090672871021319889952219631084612986204944009109052152546697955563279003455001243533843282380001489913631564286305131853750371498927816039131250698702365191162121847332968204717132856470054510919263247777375766065544708407051608938123071197929590516856942001738687503372291453841920550926732186513958151347308080916241808365881564420972849586885575005006289292411538611241574485114478378972988073786878732583938482421900941879099197185238269797643063627547477620139458676984212394093566116895340146510736732906303968077649346793103814574577330332756835740581608898942456794970396421396335931376741442900718554836385595851388211349886470082699697940341200194904521210822492169762983125781481143349818874977890682890702440647299606697542172954260831062443578973772718940386507448161058311068411882073816440787194755339115300157611432098997244123424103703223321024198005754926881994372850935010902179545435355215133831916371163678490398681218557040641495034984126098993801646229415389691414847069593586252751880721209548360901355500542192394872183560452105762948031954421469474965596900326549377905659953451493308675494416335915497545038402342503569328054962024363559177987594865462335546790214292885105680263458022492566718500250788346748022123822541867429908988617757980385251087679404692851442628516977074824103679989787177208615253907647751765228300383024898268678298965849387096354602927050915111292164741752572693872770191891211820827840907176651347514489734310330740375504582295117390911529989489052731954208475256653412167711726641836991065615548587092749474024576610960791506505481638779303231677639857123144241296601640399327414547043540962253362205975808633980307332485400447418024997927970624730861868095223870638969389237820610024147468026196040710351860462329079321162896750069535794752533485575722871096801635838392633363332533298327726871634610757402821420537676027906324687914393993047049563141388947394577779001407853357189409180484634201710854087114876896632784189073521484954470670603143602788611166348922629218373811993510441579129478375626003050108125049408276709734256065851504505054399823488020303014105851785882116922435228949503872348571121194698307846875902152809159224804430976108021149908723895802037045054428631801694101617655679502774054673367014529253653800055851076838871533800750447130904368444865993095642697793948612178189081751596259384258573211155925274572426657094999854552586357193913549323524323511478288365791712039596357255326497386808351667034623481767608394841809744237614706588388527442250635594474102536428223975711358754634206206792952443245834979760970131948328752659995759347197739487548425371103523089059017409023737348036396058789132629306142922075591752214883274702723792328035449992855554902762796173151988177475907322324061327323352530969374354760052045149815326788117241225942898165274213140044648091747727883229901850217485016438972162278937088418709935016508061395818879374534861737607698452219857180068479201248231043236195100561674695903010568545769007404496522533489411902457151061419501266909974359835708220450251041931888333998442217506693288560301141381593890299077957815467839058388574627141900401269822563341206226247496652254621360624228056831635771696814816661704382287922299634712379986520127257334362932506354408767078352882652560715026384964667909493373410621731031740335582061340417006696108381876611631387708032464498705648015876002515398450565578609883239199602704436619729459035384504894118804359767384804523135558975633014925943593560709172104822649414018346033807409924922081276777942876742681955676008542510053282972286009941113987483838992179589117259896814381165638817413655063235935407130422725019672075150357790100176485989018014600610449889598657520575978292897516407069828987890908833520707187707687747808334430422274822065321035628766224589014662041937448352136249896684013230283584176359041431921077777296404478965608978527158999595936769373383865194117098235841561363395122928710352520060982196906220557537427015238364477812143606066659440140736700817288383901906330531761536281953970239075843254514286166597665773737335189837744969616577652661754221958521160854352076606584197223875442550005178460443098746657008958948783051140389026766385589554442590562203153051770522461723451350533876182009215969200434460701730528971737487404535490509169622206675749160408593903358570223840410675122606533538942552103656092973966163807428433882544203018999447408468584318546254503023303163690804352243098066543734803154974095568226848604833828920434707372641331186472595347591067023360643766657834382283142445174797923083272013514278927004842608648985350771398264990704385824556535755361963643698403196225080297871533149327658171790346201622344268422501235832511193691039456645698516031141989682406036155189416879541761554102142836595716889466564719190367005743202147278877382999046493902817556176980857235031100683132175609478993171082184687614992691865794656466355003263024126129558343155673222853326124867793183655779344075362506932104226587731056629579192401932402713317025749610059671239673784491414887243881964168319145411515799058396516830642924472816965620717031388088797587009361072081866753453056138632289023705324856257098427275951971675591676580787288200795813961625567176308584152863962920285290488682579714726201716261459654460096930276324476723731381195864829742014306495572818191156158208299217716062402295737587204014008350997529064923323680606986094957008485977109548402061357074905088967867572850841936065887183603452182575361215439151684168483667390108571842828627824061170595102819951169807018140146044976985842975720429674176547026931620241799272589006582616639105540555686175581465085853380667946996824655555613143991484614046634316071936799106179909346762850755234384382873024442752585710972799192170765879576272067801782402065403385291185644263478213572072382918639397569071102637881580259436278870003112237235150728135726993455096402741307641749857923238571213054211099139313647516457968855791575228416296028286288294895010535851731757249654863328454893539873517060136913915082909798407791757382853967700467333690764237278461518565292366539661802832979061529875866125827715800165123613644751695698168410696081708334014930702881801098882472336362911260988609909297948315446119476776973754576996976808208262592822964454939118385799459082835883282172536936352894367202859204990268968665866488894132162642527285301325893256624880037458809111203527487649766246239687996306191334637785905821897016866539772374098850216486961000908377616498549068847858170164760914921011449172365203618111397423922973337750005218627315083729668122560502281793260684621204773080241270960826404506670756783821495419576758137102701810209790605210691310698566718125120347985547040793507758305320733770204815301540374949743332020145285962900745039100231776145732919818439821262003765372291011691992678091714373340569826201411458843781672295461680569959368558513041533853223339232591634786656496459361911594197178599090028396670478457344686550115547106921885555506641523944750487487518549699585793955380134925895942642939474846713750650015031314447805047431747102163473289500180712042087079574628055319403259893562797489196608500554780115064304429181082470691917598153521069760709083928450216481579885324394731029598976820654316236978923691176525034155190410666399524369524195080493583382973801998741272192882085865756982714146708529108965505991125643786337430101383787518838508839719837759260445926317696958662439269210454217411003968599545971812510164138410436596887420522219577610432741049498030682160300225570164058103633952545615533703063588712627755644613823493693921240809337115454372722140877870332010964608089530879275409866270376784296589191979970563007923466637499569012462434707615815511782894223777886856950387119868853849852460775524640564673148249177092839773159107941021702140024257942523185189003796638748389113385254648230753474007827325245113571926909420577949084427003294404810093245626830102554898314889536338910041677561752058317912294435693063194382731012053119752875746380505970277076604057116586829963790696223403892514994457411063861240444722600458971313767453095564126873860624354011318403401383869418403549035299653733311348044221862125972109185121695635279622492028973665989764194591952251895278154283171650720904930918499115579908262607481512526576367459994993924307163977625028611460223229783121096857648903878684750912200644932272292894706154801001924449326549273159511910205944869175584198238375897763606457009337669572890627499574839753446496380634692278631096002983743742965972781833393478835816846546450834156876135135804342267842623405357207677450222866718936262650344676286958760985321609452537952000811140561157058513282785980155015184610416445106996678440884332028246840346292473733215032769958778398700778403504374718110351332586390407165476742980199032062330218354754314075843715470625941837281339236266945291811175601939848181675369532496574005344256816418049566098035786736696872815761365059031520512113681276120838293361584983902777791745038116256674337274167506674456828061744290162230522423424343988924709708044047096138311308867966322358725146932179395581206119150305385316851213314163745936936836783864063898138567497154417666979657252890654543356062010006030351785512298952557287956561696740692170024832268288025129480453683718041471240816040282206592951018567637281851529180634523904284837486862092697933674679960321051799036226927125475088567346472371109355327026878509610321009389083437731403028527784076059364424709994906498312633571253239936470069829873429996639493001419330373974825138857003085871983801349618773541891793725901499181315926529084374859515925356655128984677139532378700438086576936664932068968875100314759571526482122964816758605490420369790737997192436416660423595001658656257580143539743425208242307536249383368580215142475576759943368203102869554904134764171114022486012042931397116588320297798327455650297707283006764459684162004193196703448115449411383563270873660136498692718793725115910389069254822641453257073295485239808623677088546835972749419678543615449048713794125586043100596945258660635349842686262015566411879621472734163535510165893691782330175241588984908298378969051181400531097293442303674544925218322404332502345836445427962792503437146953849229053081900183656882571552260818123527201322743702061849896688716199577864709376951969209837549923577012996304043990724191114387800990015125338308691944125953301565122666428543176222076677382563809474657422243643775638087138543323844032731653152779659067967462712173096300073785193623274872139223453155036673053353382055825148177697642521337875747310200765264607099620295445784196927712462766590811208866004149323196511928757339099282864169478360732039037673196769131336836135801912540608109152326969847534259358090821673054704387205688276381211947499862310888264329796943668315539288001703093205750086885593878928029223732149278269797597014862969457321787761100818963467750344047781776523060524812796471266274107797447985838975029763385656615701537397432614107359474223071111515219330802083575908311748291294701346831208892865365859379161706127321727755185342507860948419959202368870290461776222376644131888220746863339163129938415503260700291626053051683013129164642407272390494958189066853378625172404876878066826129528940823665556429302491256668862558048374440001277342290133792539407048530284936215970012541568433163067540068730828028103925315845472000636666894608871933346606100579615364427933951884736623675251643332370501245966390584850174299598655732022149047577051705105084485908727884812942375934799217773398026728046295004466977344645217031093732356267615194585668094980359797825061322653971303568997867691451227168326858860324456676451318995445571600372666576756687710352239932031623207614039878199377445691416122353554393463716532979925504440957527476872347904706191242712677056712452904033316637507417896542942205472095483369798126200870582848866423436332606963993734608103863192334133707487292916401683647844551604591132482764467790528124645676360385280599533180833335477255061895447794219364268196182502204753474835302233340208294404784572156791931452568950164917080164344715547160169406170053730330041199160783400335701482399725492326317553287052066592206125438189692011950810577929349120187364561908284698817706963884334687954665982466036306212269863325310748106350286454362939898225579336564886328585272392169481605037696428936243147879384755253950433966116537447512901593769616057988517262455994572396313834273142200129616665611970819125568863246027039702439167855682969817686737545746450385544349224104638897121371315673290205279304283952919198545518829070227910915602898976036499071846345931651762497918215979254767053752790099589983047221438071156615581985651050437361823732354475218322348780719085224404246519642432896398817967478376861235747907809992094061549711535258463369205770206376706639199184409988392245033514857085233532681694142278292781246287674763570409015734508400189146180532758612138924465354355332318492465268244762940125646279004379473606386864974564332991125215060505680895579093526834753843856344087949002178312942686883107605859740578892762554845678857851712498589177349357758669109343798955249741274555879535625724106918422394807572035847295604364913438262267188947147710892843041699005460222199140725926086492851257895790419608441822944915248583586311683022315235281515100919790825947550788243850222100601499555759676727090555516136600777158028021944030646298236599391193062830263906517824800071490442382266485535532447951010797131675183873326701302443558724560770040462090842119781010379998534254336955496737533828556945791499831865928589858050001906519279010138859727323202269280147235090091867679348816718390677228162602413876194698755349902872467223548901622042776194677990611245875984884455277832903780269174877683736351747236542421347509160860876775855158089378180209547409250435968096676741668482290313194972260578203540314336071004474742655931774286541041197234465233634996228484208290069428099914297558975017248771832584408967656286097517869857626515645906618140803662324445514919482899180718494258041138315402093487029621414581323935177367178311859310701174260483442916148147113916418776220233246967374606890697850647416135730292758240169759402531954361920756070239545051602335434095296953897152208538267525332836216062101121880794921894104807323829856338562928086280301318150860214877534660561124852156280257229755361800341373357827346642288953257963488365110687578569904872610239892436499715798376513885306038686219383471173594668296301469573619685862122177344882927293936216988963404782956149278952064526488699041261024129674922856898979885503054237003829971498750794590645681908381993694740060894882714435855707339768908578248408058613957662971296127808360188397379582064048668492556480267703078529889366027651775753246100030855334649535646469792763238839748294441319052470225348239574762140792328327141812620821297913464499254996933827317571028307858860530452359195542307965361038061433075420737246686827955043860643289951332628904981424724865015211538984842817028588498095110525975834722460894267245341029519286645640560680898567863452875512885984486708089314834341233305163927378416857367021390846294380995066722801009237960442328661978171303702650523056801824801515060736971884198244447528473330010863570808660025518341559348778179367340241554814441332240975923039612358898535422360336166288288288872209787136036921607452496258503132248385503762302444978277953715075564580296203439481667935576266940103425306600429631193945505146780371637629734650391991294854906572971815644593625623291394821877139457223973711553049662170928625396059985581807932223459285699931068862311710824164806645597061852155090242106487950318399032816802527250809953967164329310700172164998522254645759663114816329108565034207973395771644906360945052257032757921099973735277670184437645086211178395024170419567689915731946565098007244613826789985938505348620151118822730268058124260730091678583320406530320898344167134400627945990144415758309250427791887147779417378555733026236231792872370165593084799587258322259963388523715380015809397822308338964964610654472783797344757386610734018441698868493085933197338367468119311390846202306380139083076170562905771442055297230977406619863543799166879143628526590926352540869690484000255964396391691022502864753139771507212121126130991075984898103110050121628813681224124945199788146594894789098955331432982139361007130953938780038758529243515550406951691066224126067052811486044709539201318535332684910193069203021211917337604038990110797703757363007549058292998428366640252933326396339432747856371934933418122909909165970693303760643421616023062026554543839495637255219326718952898588834242606963736212849246203377672868151389668343155880647507605713251790412737653708395225918228525361087077089431104703572519593874835235089040428401690248860849041780974151173239521798639552211654491419783810802360488485053843024749809505732486973120460837391791228732291731817487358817676898073337293709323338685280159765223311466601472245916181601464957539962842543946972262323237471701602138254983986148075598526566542383587550422602330180046620651824525459796350771960843837036767929352558795164678534252816832502805650577208650158820469378505480558013463553737271743298564532963143139936808399705090793327960175029835172255968104387914816898888767022877499162044434083707382046292253325655038137968239277413254378467598749105473739372103281050883452730301431632605536137811515289601067921139520894961487933871017579563688847767467937279946280961914064338743990694655359655981916596302228616550250766393176549732853152251045094997071194688782250085693163690753176084206963914418109358763001157462261542368206043510462305555884259830886528050956537931502068513585654308339686551575997284740501724600569389887070205876854261099792930524011938969391166576114675978002969338970239210866773065888163277541522227833354543484163437061960566834115335567785067312380256698455015511106881298613450744247132362505575713003283560093230915326505970638495628421340989174353941551669204912728968850629607548508931995887107344272236215813359199465345279821697565986829715776264830774616806479961276242597893722235598403859559817254741351820270959032051527298484247835953600742123065729086713927970777847214084271754143048447818839679551353133015125905715833939398774048499287113525616220101745871058557416897192844873597820805344065174676073721462836824248381816066923841720041079141718653484973582021929401527979454716126078778949348806468962638426421984998609020907571250847909836281292142888556994627705879401868924406510488507633714065619847998542123610095730910191708213058656112195459689900189425484336700723875167221340085190457880985138223683323562992595500656094175118977872419339900337256924562964972497864659827300888315252010144240418852509333700541674794979648135120783704773023224743549818777832073489190702844470181473394470838976904466863568049902793114371223019725905358407953329608575809961816558309422864084793460862264321308210038747266521509382754037563598798491209298279278657111653630607347666762280734293961569608542037623704553418842938906862064602799007565804508394848364682072173997046087438094333490947017992542641059015751688869827066158547372247603459566575186615160107734072464986911882571243916979620194745006794618795532970160063903787749407977708389719288118935646662838437893843600517310019463043171530085582657309627501506495047475567319037193150949186583843197638101267705117433376112451436879189510166094376050224527442529004097296581623251087412203072270961683224137648710283173976653836102388203887103635506946925115102059797486649533893427581409922933241595834229038319307803867455195882027576309780358317850711661285150205538242332510240840105794987584798697662970971058431721890771486192417965176180363126288175080721497995548944019514538542271999677760791373049026521620536133175109988730597143151911271600145584585467954861858967398721667908902917986443211400192654133648808402130926892992356948426713724112343140784655719775493190651544551699822322542659723683772973200342318637429395298553050554111566499413058992641988443525305175656798334073544872186636722083504212722857628627429976898392966862323057776793416127851051492429668593398758527756095286831660808871970931220587908006342913563337299639545506900504089088244068900435387511932001600392146769994600783850520663673444244826996158600252422908687978647339234155377222887047042980622261202092183136230224014795016126175786172382406672590136966313600094998118468746255190792031133795294616224024218454549972506900746825762677683755292969735833801357283337108054049597908514654364489796897092088217642291250591978045904353684424152050290730933008835580053308779099268289869456722798655373739360494557331509187511492726017261947098051604101190531826331456110792805161498237167400980703091588205934530769983124032631326655655063109015265129231026004415077061417239625580331349849801075079704359783788298283633089160789214441194244387946341710840999581390866413507854707480070507091853651270943868062695629407377721543793774774252162842311264300984358183686647432476728459868760876584771388401097242770391899317973947483149656682563624405884787439260193098285009996809998132972442162803052259733186652100228876125744769151900290336007333329717620327580479215716152673672717228347114166712574137714444109060697628560984601959093273258868748537499698412606871259254930067974328975872804960043820403370671278309071896128454017775586431320818462490717385979797156689604850459337602023574643037127629280178658202677490968128076401776787562001798181404219364978671002296482347181499365951913447001187209552481214746809902597054851251695249056818342350635386285623603538396126786722159676644990558768745807050617139248070355966878827278197523799004464602294814234655324742547094512330234979114070327909885010261500783899828186361084376647810193209067331491389463236026533025672987830208938383805772624000395328964219441943763478486535420320793308979624094943998029065224106062657633391968316230662294482260864202225072153483727563382637293975060856932090835265689670588625796428340404939516679148026531868105486952623429958885473304218685224401626578896982175292098487128113537876521790155362731843059447479072937850386374576358015368493837349156264207358460151506716705101270197967721484056882658641965145653978279365999647824392205571419141298728249021517579710987491449752498357997287482067575571762766228938070277981457162806958246350922147647918235637802777165509741006295514298553579161142086947683095552886663799097858904340874280571976787805379318335422495902291663091296510935513745899398888955168246115504440640827449010280800785728079765995145216001719374534402438632034943206247406611687931443018607288727332804455876525772042056440067981785243930870194890326726459178742787933219590645884698081529588488005948185803525103992284908897303642509570047605841181088621628776204248152780192637959743642381411142459298293108100578939057087597020928039722085380375835109344308539878559126436626989445828194418441015851348252163720241279082152735835202653639413441856349963047228327340345966569744088833362020208677931043205737646804272457553121490035305221393473217290057850730425996808516489110112632010877487467957656409808555338818503795349623862520002638119576015980025257948301251875450093075749778313040197528584396370441264590203093465042032176322752165106486065558497527164613818019133121613680649373629477686663725925805537384220590135111384422328926247901783425994205296766820610665566105110536993607832571926226240506961027430548808909551944000699844547596537092503857868928510227635379647495199599038975976129747120923112299003048474607616300578734413810478530935893036667238064783642558523020622427283666802902887128168639663182905742411408111122913006007854443160299042163863758475210544923863176174301817841540706205982392218715185863613458600328898601897272871625590544859777803285269125237586939612660532140077798816918991245202524976418975489868457104311291672885044466042072229135140441515981785011625099890871646403081937866286141380582828310511973523496276712297376651136840013108781799723123566274329109053949207133226459750178655373970949980908614620731959986060517825088137746306980660897147514335378896423540531028082486809288852715743945568930060497499111285621061163855016758860640866222000697124428850234005562625024815654194894345460844073480875084049384004197698237230031922422973596519367197994744876848540806938502706577255174272350656509768424298853739672269276010374464492950569473728880085588812838430167680931883754887047461543153175409952409157060756846651821879857693416445425937948019456203710737110317598002521139229011352981110390654152748773969689490998232329076175360683053891736850559077934706335544928668211005973703727022935515264727888174940067517395472497863833310869837920522171342154941993812305594524256580992965962833758205982858678556870039472161000489306017717809686455602945100314177208914926701272166254958621682427073835985668539526570322559704034072155709529618925350787674959528915900253661974061479996856453127445088034824317672889167496360743507420077320103508387436413090686816495728707263439133974197121161140392228421501076568392754873181888970192640397463111468449590348851429299714907178273792912728416950627255946036579772642134751171425523167795227343911933273437006161347112316653099019289549434358182482267171250783092086650605751645092958460244061467663631046579028973446550873542124782884171249177553383143983336559782137732071556493933723100962447059983705943868985724543634270254879068347655640500093166540423885945370993226536265823032409421442856059012664712743498635477787318017321728350806991780447889908317473697893135606069026219245257209697149705776535189318509453537695009287848936976462406848177958244623923476815906855584566042947964774664261195821916348680577952098483834425027713906160372584952620229609217431194985061040901023899716233424990180759175090396581579797371319531003338304015777847345904014115719353669673025618244530462539775418330326573891214491845738817176834531711441008470211480531093374266095467621298968025081718528932948156704507178059562500574136223643270962546461962076607613210395808982789271334320097321704018753427058070238580540731904985430402600511615849179927268250182977615140621751645611282221233453272088106455283551688605035172285738947363281994530486929567940935418178444943385240689224561836304281845680389954190154106175374319051603892874732235182142432080419185860750198763822279476794614168991494107024084944611033954630845887151518377984782068455286431438520861287675548039482686072008305962434128763396896962192736320882646195968724766624487442997681070200194159756906181268449565432777050890509966726596673284337607265101191919952075079069093636897306087984692403378793688239088461935920110481722635906883132854265934270323791565879942359340816369194046403400582368852024248078625161136993958953423425705874031164319058545864587650024841125998020547597277709779137386553601356060721056604609460074277962944096884821387023743272217439973097053922382515384188855896678763538495518220551193349210421569479360990162215412196624838596769846414088081575771855868206401338974509031780644333023824163140372933975622927623254738394407308939805221925736829804217446922656414496321888852057484110180525120936931477174187564545284609088925190073226201067454682637616625185713822618668127532456162899563211704179885694541304724548217332424426543585414365558663450338155618110512874871603546783498830678482646051561247304475630615292842800406786173531064068659315567592249054122865986030236865569560327544170283050112095543211422234621712711207222647015727003038334547629667518482897013460751195385169494578161460603387021885222803342872983795141811798540231531529857093929910052334174198256160196645421976853795191374106075663789394276851591911861528509861802694910003597256325996191739936646219761915084630763193611223018268432924691009095665056317080411191561902614667225889390242161758088445058415752215808612081559279514612279729107240099398286577698176625473631457045844221343856693257765479019368192871136893899310668331877949949226861654308814136665418972982416556702768000167917507022323972548506812052313142720118452716440645758020448974497116408207784764214210940774800927319214543326461644705435844862360254379734267875379409888461283556798498530795832515612615915316190042013322667632432000642475941244959363715842089210705158106594332577318509091624239154380771696365132833420922401111962227086282552814968027095219616704841600574684364459397148933487735940769950139288895520856984994684112980293295413327503211492861331603072838696181687500575532510443174314816986485731331829652075892520862292335919732387939647911179540298593409437461453022649193980769089902715958962472985551453568919108289637549811729667933658838277735806970685721431486417951534305276291543780142675792261495193475495146364913966987648306385863234745105896038856480071720005165525689173226902773845434143698477668086530591358492140515674141975751631349901740621859144866678752952881684408961601910966045052329369883835991905266248832774452102736103275172811453583503722244289736366818603594940774239567630004077601129244818352794624521360622869143531639298571628784769390227889205407310361620652348732665482904242288505755400620371731825045862331213137442043044338826077027573302335963689938814248335782472583813924876926159793417094272468412912678373459319129123589644585114058175169782770421875174667362770914133156178947194975341833704302836610032093027305058586142433430216055716588504480436982725314690222345864288798280227902859419797791497918255892142692070563777956651931720259614604464171625017006077009749911457705180541306933058522217928632837201542087326849682099772750690777836592455268070365313697769105131064510178777565637861982958883722653258704306288682961306894850164257754600328187091050845796032347561942517326959690513495253470375955070046534881875895789062875673364164801480992899682366887794921923024428887414249717145617338212308315090674571098318289075836094367303203425582210287925742744689042899839289187609628435186220619741942168661569697349352812381582884265912989122373315010952112536772527657389581689441560170820196143951150884861147069387005622926329430410578932259712726225219714678512053021665947775046124437790835300866313928358415677110235008241011328416825348351971600851398548439442476355025889141865432820767956909128950211317693118718412555574029642956706550192084652576566278567541085903260562720642413750789437223491314253879219225725196860535238543050624115867477978655684612907315805304206895551974991960179341597367748205515968657033001331549216973140401025345811804041250569022041926660457462025327210146336416113456418941293093545437828674915861580134961038582365108943846877093640882706997252274768377986179480431946551560035009297668621423775742872431760580986569628047550617062719368788576107865334586041872072997985462842936937805133115760826098672577647763393109022849027875666848884951161097916409279912808267552730863589347467371113695792331234107822703716527317443347372160147582752764746172666718342393265670100405112698338598104507474241949484731002121338930432653612627489604445337110596577694053094754316463501255174283221001343997529080464395014942016623214354859354032268965810084310008442502506144114900372069497195046397751196812658681193948420448277005076861321120441010017948666359442952365094524037491960133924218498594603410112507475659959541699914872952834171349538352861664983638503311225173819522862900563083972180800277822405186688687023774309844269885080010611118922119133570903719542643243388254419545930604277161189620574503159062129685248148336364388185623068285865302296502821056297585844700825409147787857024475672506412097598860295225818737557063661921530693367735464386854309697936224271995940164588685290548155278406734542459563892833769494190647863252784618587378935711494783268850158772213954166504778505998142200287169872797301758974890107975099898645895185724424206774494337143240969952791344670864919768947432515461195173332105667879724949515043388635355601487408822582205750951954676324235889027610596874294793418083712657798321876755512519566502322729078902216057968854010816008092827100332809561268025593406594630375384236829639614293597059659355655393438097772919276904084571155781397229142989270627804267319608603746928797279061184831411106160699400997566949538615802802277703637943217693951960353749383262014260158456631155546306828455968281348026109373433130235649514369113468635813870533597127206102807043916792814937416545738008801796069583478407280916021418846509995727208481730058586236218775163367808469960465276401473603762681205338679704681542996490076097744126614733886663751854975652348168338251325086324186586379240558299119603893717389622685924354840626123487886546203525332428886496686858795128075397725411315489944428387007806827269880754122188869547193619829373017616260841626688853882195823443137567619933285044494633604305264348281836676313424727750690923339835531891321887045915732477184932408478757009175790729290998763191841178251878031472347425707483939057361999099086761307665464466195091721719656604059594296796765930595172169810320849057763408497842489879446820803665355352862453386029140335981908185308689114542446081519067057999603248572838930411322179059240407826530197900520943508423609813790865633506050301288152930846149221918303838296137162636613075860097717445309991689110931571206678090603390015535258326876103022054229939807831301750089522901172690375037367647260828514445034552960420288679955680276110697035904850857220814341061687192539294459865085890006170029873451932327526333473379558909499034460891888012970894900135213892081401499143593259800005536139071274049892057284547266221573297833617796586361288442246156785910761038740015652770749028069314992206514188245899990510192212645373507289643933592732544777749548760902433972375222283401924929236879190218962687876979013660309862253408660681825514278622668520753895681805266494990413466111103447380312684463762280381354815816465182165244773124685422514424193404384989667658334677584335831465433350737739427982666203722076104164860572123634755255438261602340284364743779685355334766949110706263400224686783723412935636657557061187156585573958020843439033705629810850553502202078009353886899765070893872722969958360678618178312480104798203675592640099009851818871547167876804025334363934129470883554508325580827144382518583631972463504945973313010539245436960988384965857880192423073695069157111359747429226050702385353059976146862470333490640777518229847694726012489356596643071530513194458584141316240334366858867604140783678809425752862521724357819349815402770830594193411749726858442803239853329172425608819730190168498869881373944121704255525120053668263941774882651882621510582081879424264280030722849355523460842216314283104873016998669507513253216915835103463606375958302464785908812348171393588108420871841077181992748006184132126822116004319836627684749696255368424986154439282283358934272921738457441954727193879555872237307926287767382743201134760222469792971087524294624300440308987939549490556898014490382247005327806952987799273281625266591169500812973242289528839779982318705748273064730340085521794816602569555280033719803724132337652650850888005615068980395033704522057904738515623533444418533007885433458423359533017637753377818553187675609893425342196270324565346246407442403310452411983027978918567069054449918447196285713491280988811458131337271231083078740043507052475977200626179582716308710460913302987893818575191151610125322584219726870223602423117580347375043743046705896243521936956869544037321549516369547517847219238779276067555611945928251766281492784099172324579507807158639939380161893676770103998983713731588065639792379120879305700060183654838417418729840183294771244948270836180857494342554726472049670099961807430874123436272248120139202789176190852724343077319524989851621819502202073948676129989369570288913032637728876059933761374985762212655896105866583009782094495762546882609499898016894479818125514414045717517346988686119611435300298370242088768918385204577841028341321717280193926188187135394720428859242155752583248404100177631402358600098162361401065565544378181237893993469889216185646991585347750245746156020502440916609404004623185669865009142206436246399911595300007120950993696168298695576967657629090324708299634606960074187544135597017894221621761949280111263638215995809793559961320007390939890840877354135860208266446300763386415859029795938058923732272087408462787419258119003908227073292748549898919951461926116002367867486041566524165187294399610274474588257058402070754637581737164165923147773366939780129722544618749406744088752681297543121845992440697038842637217606112617331295627290800608567358070475320357623444989508758021934556216191948861862752596878073972267708128042102030400041624239708684303568923149867731107276083169985910067781648537982799443770286551356189944560394176369255855145104065537845776790494327123271618776929318291540758975945401229158527584375530256523124491830168682986449885076550070551105924401940311279292393074243040044701702339570367918795199869810981970517277965231144177004875451686353536923249562834642815549506733848353304583502290199900841035904105576475892772439691755282085954221326610514323723625827441600460238685802853134995526273064453899777272744325699414019601146567925507625300029097081634611172390043809787479473755226148911116926532510509681626087205136956265328342043405881331757668101539149025990802165948588551958113620210803843907218871437865874607045943533289691369553798518444346149716428976335439419447343924783789202110106969610684196896399026428142502030556014837884283523570599522940077755108051260087083772505632172899846403938137613573563060583824475163005824077665055223591087772071293984318656185342685442654167284454928736168643246337490970923436227240081469726795575838821774743305530113261024420405767446245023119955721884679225522197497062255841400952349205599439152178732728588756876327078055767415784358087119831964400460248025380935987597408100782004635157925671687320400186284540075044202105885518438175299035629314571718441734695451652425810894043430967261627841255823607400232059728488204847992942394548275133739872128075008669528247291644842812154792244479900757381277406908794179579708077461002704862740586835096082442970203899141963218815576837591117902290351729443275795587302842849804425781625812151475677983899217719919128115972082174902630838107244368087017639834923776576980719034417036825838650206734756648838247138820562711125794506272726419964305326414232693873472127618517780375487437140218484577031463124386355747611068155334863564276459730337727960443881126330876332608427659897040597628884971893223548142636679858169753617249962840436178282716640932697165233743337111023072461490973227565824519902742553887466219246565069653749673159870610363476619833522355027738704580679501764090491583780853752675447811061358839998234667490056580375306384929394741808602141688601012384831608972716741883692469278279173094365543360109852227015186018479156870800046348634730230163379155083557519580233955252390239369267686572242445673958219158019427384665637308928539114377595087061327426813174981526600578505083678221592093317997898345682252042782525130328446911791030669173118493180216141168219890102366176225227654470799065262754771695261460263922422283743814111289230062619117420312074802171123072505366091817176067076847700207497155101009337066910571550631151109772039105638291196096092044923839705982424679710108758525913234749505397684903039368583744189258622411391156267203207573141227004927954978334727230599811360661524781590777758686837997984927329542269213650030617678367078276224945238058237825053485109890200796323736981527415465507640373158883097010026807424423686194420297580684549438705147349054883885483264886860847193521590867982149354298316831949845302459998366172142614362900098793693615567298866269670576114001715931686343394717303221982952045601967142998392408359169370241133445187164370539246594425554065718721822674451227608465014628639571391073328336933899058348752775796182287238426924720713919223956309643771319718478007490231391124720211641014150337166027930242199663232192140658599540128296942067048129476210535781820029405422948664684420132711959186888257907885279558719514152984769256278942074012373244071668728637522751864711848582765487969622780195182111556956257365844121496656232602351717750236372274688960926667422558556651868146967537184388993938764112259020620910550151120163229550012473085240770178824957332288461568772457442729109789736087251866991340352038718925228351745589113339163159559723962800576976417292132636611572273834230188027229550791130319762363483550519980269162247496074437643479372431957684874127686981295281556292783140413718348479260537905838344207822872983764495468112585978426950908909646924200817873047650263444713447153611540565013079631412303777565955317314302473342267166112730921740746640825613850234614967952590033698848794237312070740383467802544246532068104628408870325676126964284832507319309384418653104771397387992020831176200157120138046765219372345047449633792510558828939336703819272143194114845584887942896126051918910919841262170475466077827614261655302434301723675388997028595029324876626750968974464529618809305548896171842600444920471914339888643302385000120093119670426684988431663138845113982951919445669253982060435744408912611192466845146474921262749515837410809962839928727162411739369304441314967972163667181668956988191017867076336182135920249062675277104432362055157715713212381614348458634613413470908404795426048852857695153994561730826406269748682816508162252428161682853707349202824524038390583521109839370814700412139358952185707998951422376565131986955384814823793752578494883893929483575615925105397483424554894203062919308547413416927175800867980422814801488388890395216621483921082427901384616966610047644829882638440328515743710546837014065194775644850740195726897581859835164177734957194758381226718608323789234873422086657999615191448831497064067816479341138607150207536153190925654440152762427961058038366996056650972614588958152258441581322952150634647815634350341412646653671782373958242387555958901206048660054791530218264067638476491917984385102648433967750293971605656530646311914714404878746460462266561416548300643008967972091994433352102254119975741081200521436056765004143716162643975020557375185109046157223031698649322257041016081533262279186826975307288439271252409368421014046179186141166956989822803873252759603872067905781476243893360140320520999171015385596969705534567133461325923457983539587990045261035643893498955996117820477612256364317026872020593819931224581686478425403882281488754986056964335337259941745220591949506963049564393241182025023712598602058673489118139749606277588122229990441099516638717298215726614620142136739585132430988128971474921056843592603813261257503210618623254937709939955193519552807985326281917401670316077687656830166655074845345650602230565505188730805396438771080499266602424873383011028724737468374634970009304176386997149439925941595812393010969697104679175210821477871296494686683635856626438574829033654541929019263795638985923881135597822879398907870518204192635433878033039586355823469970434613423567673874541134295752568315882479234047725488450028625555340239180940103952721617721796203398324828700975788417948617144867407238076840267409705238239880617813050764807582234439656798641116287583733318906513991404695572030407980446200036617127766575730592188204968431910669143464810698688852457834628694527699710104766075502330241889207863881643017003179913353708570059578472602574645928993843605638679403548496391933586091131923747679069121913276902644577152716271588152127448741337680466667895727303422773768380566579703875552306313188746767511955987722491564435018737087873959885565732552853095870327604369645049959902946041828574891132766289179928812030233189766342960272595693792264152329291691768985990703589417300500777371140443013668044189195237906650049392294833340586121970665013527381821021363335584534680469696165364817023287928619320754045180421210804763220914642270964969675488739234898189390921145117236565286969724753406987228711452395648041409077066371098114027158078518856361128504988989284269289643547880628468417682629493274819178511503579346012398261637738039330942689952435276681632691167323575774239571127863057690041617940136842227803863940745790816516603588246349190810749872606906354620794462780342595523174759107257375794150692642684671475067927853014475586070338456846614921604443480127810857655907428838465674294302167725991029456657640624063622764935356333337870833929753183512695119545504371875627596759644222951236589618861480723878807744360062641954518962259755178080501083711687733788942912242402003383882925770894595886636075709867013842365801795745611490514629071810859414066567185160250476509086057187835387774534131348271270161513169314820383735676372465292260803139857076131511328516990530680993132314229842589625215908612230067450374716195333578640909054174788903424442892399838814008087612494565589434266612019216339092762703336673227716056280009832824574197961415237148286453548292459605466418359341171919795873309330507317460265311853169409873655723004877720047958187550350814604063185776309291068400742418647718109226121509587178776408785255004372899817060149590803319799932145794398034623165776872393947584978039846694606580216189855118437872357827222480195200553266227938594208278805040319200442081547087320257591030074159940034976323484235407573000683407054357373128048602830473502554788126297372266644217602256291565686042125487219870924070515858058602537814650374612530395569921211998139365696706301421741288748295667599673499984159810032066721556527094421346416311381768947155017227633510130742342657323261926680784976662975674236294063310745499929518790233940111276803798381262495872090163296191969043843162525719263027701049266449287159140267698922508140311977618559858063210315988235267650517525186548446059508065015650393494549041853014624698608453182918541913044576721607551888863146435125664916202844466502543863838221756457316304603216038592824490276778320130946418012266024902387827588467349619887603648771990958517860586840239928517072198900314225713254614072506685626221264041861160682568632526044419332388164645598066723822270702819445083645856740039121363367023420160155843969340300657691295946731220642943375022391552265571933049601632696924201657562300227082066532348620331374469903708383027461036574956684642028828319174235882493779301947643896485899584754385637449369259480470525583393724804573309355076006465020609686041509547327930865527093030414224682733363525947717124726994496488952173737878128877998846339058297010717828681362248074372328148168853704277631341604284561976311908003174890233426599917752411547474340189073355078785803112816656930565166686421964165978872305129495322048145641194532565348236765591043156309181095437040945520168229446600164670871926250100307850225542890436029204283933483838059066566079022228698385111114910166707780409516161022608980044586336737164855172703459978426766598455426179425800316469817099480101214981677488266680144102101673827365281957611345359340135105487609438229389933244630584179031561540077067033547782973065505597424250045987319392601394978983860174852280879407174816572802866737982339609971590980410251244873634271898186201959591573390688774738792378670488084926175130006434094962872455306343215985332103619637956910040981346112962512330851678743907949046679439089066993794305881682756759710647269054351782632520382400768386047048894141322069880265296808316051626490767435707228385086002998541011042412950424807367657796571271401987323438328398651608837462608357914364862616668169906662261300540089138037099701722639649651049785607843908100254849410573786637031694079146197989962906215778964178435379981764807506530974390002805665876182319800843951374915423817938939013774156033144301093238173467399128604580106626797461089446831723621229897936670663126888776284027901585596304460310165914729652208116318077627121123708331093333073587215934333431952764554853043581517314008947858734695786624592897431616427447987739000327511968461934746810898221622416291215211845375104854002881996612137284496950848689065129751792697066522854116128976428021752878446943062135901245926539729268207455638229230483358983627874454691647663992961546444843641998403118218101643883550865203284897228296817784015109744865915421573429091654811561903932816699120297786204643981530452129914683952145521704344471819022563229866034814052899186247413540928096114545732414925377626462910513294264158826514137086533595458015825309303896959106214441241580962715570840053969007783652264045678439792798401190743742091528704915814130583705332419539686488535683205787193218336900306040137219989905944766202611547362233853214048974463418028947705097627967529299868701755328625731256901365706518481711192345597672356758314692114597156769201733534521357497349202738866428289137432906144176601598339889837061874559450495279864970790481830996904482760653655548627205799350321102842694327788800010286830812849885027723376338857156830905319383489577738346026355193960027077064597073178911754602989847158350674257485138650716375732907344559005144980051130543766981261069152635984520746467727147719136434193795961607319548117728334231461911202359529159992735803319813018411190422189399187208085845183418833912955572076959221079973083464987718839090676256059120282035843142749609140560049360221341968734285782259980638668205261565139855955333120638067665438525437260814448338247324492274357600244785273497890607662000968156982940604761686631662205485215675452971028318930218205877224457190502665959233031028604663210370479117023436355103015649855615186852769371205662726288208466825521478735489007924951425373048415814786632381483498674458677775654050995840370008891328128279393507405692542728822609109001825539014033681098353561936257399773177319434367092254945291047035090476016096721691233763343216475565165590965982525845281466291790711213969312638740363860722125698713528865062612825337169286174535180560475364822509479462354795168340892977596358732463810831094327587957057746884509174882280662578498173783579678020690376317852309046188942027143877201037861472644931725201858700000047706640678431981312739225440880148976594026292925118456499601842792985701149127345625011445650075089718645284366483001789782419756962226114879200550629169934979866008708926644726087627120890441983875390150463598628086395765975219818693368267419635200768914019722302635176972113822280702282337734664841720496548058815733132757403678543902838395289680056851743430446547956220360037818327454440947618585845234118767240243165719964796507124927214450929507392826345277020104948449517184205569391982389288688696800244671925094391791024788781259330022142149225300878839284676973542450453178936579924574133815028369030750357470908245259911778640101749560880618462264134621483082584625629400262456330898587862614435295727801359843999177020077884574171844085400760379897320806748964262319139561804858935686338219410941518384023027318850108276560143332832622772490024722662940330309838465089984100207936399481539692092390057383192774068263579384971946972840161738464914572709167794281760997313682303467078976476707422358570114453054088973284528039639416795373242540543127277015049162613734297237684323657177999004788688459477730553603219802218280050985290455890449473753877243515471685934307291041829277196999973102470543128585013090978891238365157983739509863377866208350820914887310920433820131461031202077875517859793195840339988737344372197543190952200418023878550055722156332289210083279957676282088150369445122297761887507777711453888753936553609029234183274572550643233779713673350997577796623581549420481486599098598979772380732091220970984941968762061320740926188434581567145103223926624621179804637993348304809598505926373915119829998427944205268378027418954687173599183001556654528310284259264617668499956433492636636542846933018164298255425172060174694158115366323577309491507793061064165522587818274487115434258558229109399166957642346558949765169778149036790781090092994533673261510662379527328388960552674835042196388449710490689847803605302660338506813696529018712899964679389187494760589729474405575745118886010001744067305368338850091631240716984649075384763269678118136771645245045825492162661232064205964998747781835064750993679244915968972887427305321100868345108326312801271768779350417635795046122935873273228482145606631289267638979548669668502857253731452295001145382058103487732857607370603433749214487540127756618585567780551237278835233569244848459694102992951738389248725050530992649585601978266222480858402945513696463124418443089509391855929571524882171226794439845585570565805613312015777674062510010696636422977091582795861711189545446943491481203801132788456436140312180721524107086756852193913208908416431483557120408604440568881195068538531913544023877684472988340765004142538180819555018228195708847162584203673461696086997681685889212389514426437493010139271433085828351673441108742668024341012818956182530877736722224630941976280585595440394414880009452856370585239921525536223804326708432169631924577130725611463856367001370485521039848892631171142277595137277575299289088234311997402832833927712655241440310017599186976847453230411919340155473363319778624181672240852187758387105780060944164807590096471853056649660093182868940915887377036000350411859938137961874039045949091552050470832526472188189794317574871087899663061072715143320220553868907742316131163028485027940212909935271366339990268973884168102781011082834454423756085220827512409120485601575187129568163021195761428305606645852011625377751971719953607839300037694560903734288381619999720982151196779660071566717200202503178975837068665218797376079344875109476507693083649957695199971636498324181490662258868527334032389487559598131694601822440169704769073210654838226564503377631031993074302157753396153177510312022563801252431993888013044533793492884493946040967528572206682823066504757072781880803530765168072118770723828835475790576442620925349627507373854674909075290359653251286607130145520469060438805919428112563801281191604506449252498921738010437290802737891207184416872835482406842466328798144164958411961295302011331251761792242485737837828109350353973481746997621129442918447058797428538347461837954441706377006407800772951922253818023578148427456450887246698575361588328842386116786437965139724318662107954754768313698295162064064333826391437795033870792296209527496107301687427308358402577838118346634285040512194006128765849756780292779039298864003359673696423208436114106177184745831804186578206050701623732719787172876740092964443189335294575595154539160458170651481766506469734609691582210058564136158036085509403034171672136174996473722450687622419255023192040304423339408893790984355726938542125980329113330428883636133046886982509149136103830395319077618091210392489564953387806161181461813879046298079967641016403103560629268574965023532473069980943432224904054833317444067583971133578898241508906439624317815850161042458069669625223342700566750105351466113632122286951177703838242604235059768295548922628123487201312346555945787397586358104119599432616268105493945196816509830339795183479676913155604345920633344612068836124604427486072093705728644033043674552012734545329672656495552273864417497599503049428794179820050383458291653170418267529154643420495625693811773627564453781716243679621276301697795603298192809805066706477834874768723618167056665557455947708835177804762895626899396493988674224460557718067967978059003097471570229242278613000183652043113164827395731413437943117775322171430504228166070536759480447402286102108899271630912078256335091307500069658151555114736642549817599751595182417743933527464565099446650785850335060456529581592637885474977203338432579741998051766324704211834768567689220426595483823411733291932635994168541856834272992903548821622598770958994477269819278168650594858617304941536105408901188838122407624171500845741325366444043931561437694932420363803469514974415551489007104808268823488668466328002642166287261877259590693687378282012964369826401223674658549805695006078145431781421014678614287117253275970214073779448218477388343783195298294721150036442525828713457407992863388307693545394503508381963458999397074695802166691941173963007957367471909945055672696879314822054471304120645908250831031414801372415333417445815145224371237138136201435819916013831107193714184411383498899923146557153340201293436983874629710666684885637079337783113612472657166353791859729435233426131833624134202195998226523620891490209013227837579760118668896724237874613827104174723505441787234285325878692068506448322587984020550252514237334737102733453177396598665548468696902882699435258525847456724693993286719285101480309052529156749799962545367022658650293436246732721565578935793963147831516095697184374566620362406948711119162678795734341747769644731213764612559269722482434853145635925356429767940925624323662018753689177095522142100332776674435757456669075832618085186160436954362709175378205220281488880649490781490950533915097833712989838401627651740167167864889309118685826710888870455061591322937972566653016481641211096420231758559314159438128280403344149679816161932339242402405682523371675729263678108094299490305289520466443396015404084289502735770886133708823379284186248180756341422376348465081830161088252607356127728482626267235369249220674830279228332208603250303754708805255627887682710906533843413401562180869733539611071192106240749335480367046994388678699519777639142008174677199938416822513520094741858209220820520395078080745646046449527774954702315761890670923520311343761742236762157837155299961705500878121760269473555301209520077899560833138003921558615470517989270769350375641680787031557594679064297333307917333050589328125477459957215764906581097320117095181334986172800792189721716853889166870280552752022778699905988392647668729611737051869088702653925720975008436031216953190739154975640840580493032901338649931806613659480476014195482629370788212717358701611544370787441574753435246729847596735482500865645520340607450060655029274695356441895053561691336094305219134167067181725791131178821498022540647780249597259920067892424110567939359375361959903412204503791841230868352770604117614737181628429044413405556248223862424692842169280777705885744807513283537626495737960187231112887667132125329795661439278887839958762591340624871446314687627467583621543144148007170317308408577214000663465365213823223164529810463905052703236884833104948894101996022427743519822014741474941563984994356083729337380513782458165771252233046684183645778109465583564315394332671218592063002487457452882406629467257259680460163810968980370053964835985075099981411051987969719230906163920642318867399898365810113856528829777630899542497282938267198752679695053369605413528869235681832475495755084744042864046156835763948208201091116807339770137473732310086455558625802635894841647162888981289978848337908674192924433774575206514938375132691769924176779135002444416907220487773553485218382954239198972162636935123689615785617162144008404466869055865794382774326477525403926823871440123698081412957498553701841302701260735171112765035969930024109425212193578851006242463225960682488160899786944794868466190271785821793472828421239228083480063158439742759702081652002561861338383516362356964926929204479076099181338056671584073861552211754116954976278545746783896948133013055678816596403253997215075603533080206569367464143639018225354757660068102226613253379264273674009234830626834838942437067266435831727154133144615290189290761369833365932247337694162687321707121523439823258366387776077741149042407596064732863824317835537795838892064146316373343983448352637043933455770413537790980656269214527563528478138021408743340003901906863464864151673526276101438027816986043068672904244976509078863817599327302183986474481501663930149542109444664438956623490786123198908750584207783367212182852671654376280528723043479390586456897405242501800168604939588509244256948414412609923474554478631217132189892617061786820400953557382214708292445184950452142380257770420437260317141667774767419357548614529092015332380286963721893200014741160340215977803876694493339280427453081545391673910331729083938082784763406606450240092377960780560498876805699407878464393314115451849534274928137315168709054248278934558842152963371164150485582122909111905282137777338798473894632412480386917644744718161648727990952284395415359527845172816647378949813049665068573874608866236973159976235621074281174427840411881462661240162588134297827765019430676862138905967184940856834372120296852094576315806906132201348153571269261160906730749396278371591490258178504042422497513596557949128056892981609333322023469505653820701905645346615837140048933546893581587658299938384354700847544007462267566417721905625604615853462921964193850802940803032520769660773691132145506874126873317183967695248614567193596807477943339549771188488463258867960221673144669406292361592772531484866603690573243246230887766785170346592759761177713805174991455151182308405708327580117191701291406958608187365299238718386739777155211244009358255879868763912527406902472599970819162631780945992466140165159742131502982781972874787330414403149704700109356781270367408362393187829917791554999509472850938210495062425637508739250646857910415938626758082638944781827343071025669829594289421017189583950461971991191415320733148171269390907677150897525658966738814269894859745212408230599612565853327755432364724038784745108405593015061136897515392507906330826886137394135709223972247890532169047706850634449379698581493570877645995768911600376935596230928490401115087547526672141080781644537640485441059876513385994911310614444038519710431903329860671015754416488666640510434854418722695385770166413102329446268447048851199760710499913782132846668858226251574960292080339653517664098420500703837950613295180489543259150225746931431448848885172643283896436634946769124941919897277597265919029361252225868211755153749392165854645608286740747250472724776557611385675345465310487980272054580092137098501541220092678639203650875857053404645263472138965048378541482505975553881154388340913941681985862332772930052005223412717227751196731216393124082163774287248407417071191246728299002398433667677207779680159136866235357849738566887326265456641252982917847938859285667355756435130180185010480238450688508439989202388917937188688566732459089459285119245740080323172749835684919447824220340717984003262736953420159256121525461703032707584689343101835493861693468838207180081625829888513817358967944511398295417030766985895377811179070902647949725792839826608967598340612454940882942680521904212622444274585574275232421272340882003044750601409193676942132347062774719626329891336167843140578750151058899776712014302726611397675642896908194299057396591941379656534001034136786573420848972265833060582070397107770777330394532703075955336418831848322598292561935528362225797878899943721004559600421124319958308641249130595477733610774526713190156713378904961921028572661549210475828758743483331202933564011987114028264256936944608098956091103696819248141231455146555465526576176268563307574140790315872119893733753859186295693209974226706349397902738572935314232690514919090945538008325998880166834255206682532894381661679935907773113421796259239524970760087435441172189673828304226326815955689980903727620527480562329993764707217356909185014653569413897340860164751100734411965769801953427705617379513261364159403864562425093410905281599106794135262160551186744566482225824357238494749159159713197813443483448564458025898098279435981099981260257124967546316920528493944303940330061769365561727761930729109391396708006188174974652016266207685583847051955200476089353107634699461502003645493215556625650792053701153933727714982977722727887874494772678661148136515226896487904906224105553892550597770448158729133655709548759889792867975147058261418968976474899039223990155118381890337599312193712493357194382268108283518075755986820029237423929209576711396328902797327109770796243010683619297817470915697539281753882104548843488816165242811648091883470349958033324623611206605453141445565861741858153326287874730758518471656914903080251810697887097744602413750319067495720330904279645774051488268314476189516151190086724397006891982591068938984618002038753333014526221244523211181367734201556447623946429408937834857551957612665462132338452022100000998541187102205457686890569173083102910280707696386612335942702564474506856291556823534448568288013368494178286159055750615014016499993064856444336881002162720390197775765616690472198882700755216330604803516092480694463585726984522156336304376939144480067467955459963224004846448639987549867073860610995100610200123239792259894867207371832381113080547405620494924911777545121358025756300567353353897561573408828885932151165726319083045068115191801877991365878899051585624129626957646785883955527072975948415637461427623578824574965924769385295163389238586185572318825886034328266872602408226640189062821135129979481327626568878344516101146693407089058479253312392422550802735356008806980156382498856422403051566352777808692010121189533987090757170526898829684510474986588480233711690486131571306800678200003664759058169855056029148814577924935682024783244373800445756438904538794550635506718013413208927607555036292442096445909910731994012288195464904218888352639467613986191068433936218740503533183630888747533550838684670268185458681020523009231066151093774112930722973058191344333404189439522381235292201989815406858069722956774622281161742922784067730434659397146662995668543578728369141947797644749003615752372121959856565461794112001288042877558307027672893760790147111718551159464550612668138512691198176807745631226827197336215473664214033502185612021620550135970436280603952712055923066089358951504268566137772038119413898230380496277248256951642958608329199424696112341947981095832545113392077812981577668591179647057395988700021921243258634636543257005593498462410435756979465457921467794929792676922939450609158772383652335788587169618482304036401770286496607389692370522660027923591718256260568767809724184394549692944385885092597616817179237923029652569204320503793367762323071130230841572523170730702496431938988622305829486649869458464204467117903796510152123374194649587401653961926906970959700737270720613195456593990553593069210789283934975593705525745605939936467567615361723206492431503217266971327709690739038714736208690882272727251684475844924601047618736685492665121051019050882531807718298532231760824886401556815412416594354641848971078110877014461406174068610846273830463240769864401604907522300835149436932308187306818873079012269095766046065723306541307893191424148829155193468158079511563487595898723274264559395405081521949134419158561275086850169057086581657800085139510419904099282668627737239122722239574091818729394663717723641236600492190171881973698721411722687371082839753005382892889555208187714665926809950127236341507894537325905330403996076341030196028306939482854341775481399252441479513354104443500098604458971874178471483647691694756950619400565658801535678924054452026247636821158060928211263623542374208263810034716529704506521798940003358222921073478464501700202369048343776967031176387290323446184721757824997312855411747785884043971307088937534113431797160357034663944427080105384927610680023933341561058862435087887000327268939524624081341970046802417050368575877306398317313507536356083947757216370051462154974044876688590032065568224116212236969685263320335278911610448582815623549272936347737582547249244741840511524767050591469385353672346314756833364553863163276087389784844509899972101200029981486574534145172437857658571835130864564674577454643939280227358173980457329667841165498108191666301028657726008123291864214970813216773215527378298483534265327726319921594564872422817692667209916700646711608497271477486078589469579891982393248682664491764208435893022438439831715317685236837777938008873335036747523801920613114978531629639953046725897010951467813450823897105904572366555772675337489730819161712250058436814040238827061176025321499287214322682103421658874105776773235669913075291525076103272134667537070599530120079338154392351939575699007921419774854843440818661976134551846252490615907733891899921443075828316417520166057226508000068513415046559739107743017196304290140037954428801339104151242958958429540850613504382584425274196787481050020301541766838455267073557499535738987127687234364002217745334688439011743096696493462539124066947122171784050123450921500035957397030497966437582387431795599410184257670155964089434489169151873032490511488955144550098606398751879629962828299513764144197224184292375975182986232851387838808978035896431393582821556012670270910177407632710749111717548970010222251376637798407061429460174691479069586361878519031523427710938698260137135218364533138205785092704408343837789088082043797669662940781820536954392394594980796009105568834930747351821957182207041389403807754061462655384304957381428941552957343184331444259971303510768586582784042245256884435316135869167223781534010833587016350458265309123305006533306326858289885956730779612328733686232598986584341435278670496443160229794545209281191132004134396634720734218621898507759109438395595037352346497551790850713139399939860982007855824755894472262854397644817948983541336961325460100906762408382230997825303848643885464152983053329810082662596392287952892422248310723786648365086586816504202282582866101804759662833962130160639862220740853258876087547175737797311846192384014576821763021758471651824415094460621003349008334715146292365460709486100521077363329397242037228412334361448006992288353102766213767369949453816826718605819535168406508302392860276705832462249061207923820621002287116668427613568294728231195262241466147539351515377353271939704045401316891641927547008921983247551671881289721336885803504289875308791569501098198260902693908335813930660910323427436803823389019537254924223239873836351024524138801013123714265987283538170360374966557694491177472653804256077908323800821057841662695359236928108759108577311520972990027481568408855703933088064789315668364387704589911769249548023542099615248420880491935711490907933503836718702702690609503923770059345567250734853272005849800468994751091316223489455088227059251654212608341551106018616833969415859297510913701595831879766888150463769309380141878882370431320547209389020198400725365893406038806095188069530579323535962098321473868666152533255566823343277485981148423968792810342994331487774593672557266775801160320714663222201636515744064797398488993057776487424675518048555240104301641227192328913887791744779209832040885566500760208475342213638731021023871042074018029542101780648593060229537158926828594016325324951724795368578743209605008536791224776258447204126843807305418797969601291876045487033071240684763769795189135393713761596395270312983889615940551570125945303754820438111739822865623610942706542262562493498701326432716274680446534555784900262763355515211264041292533325856322384890970284558194778932867396348139157263557892679289719752084123534105020195447649609775692863796295872617456108043424716289050064946641244571697850260473510585796276415887304142135843704026860119730218173072776060440366862249924855646028305498701339657743516278179221957829406532844013025237830525444858297863296968440598458916538129710186129304731888513254451705448370448702178784155800166142891151812649976942917407582790947857917928340787827463584836327126291036695623835658772279704739433173550092587465084624927726719133494763565945379115193215761940490639803255881423718931903299471306168293280289809270881483963845532269119369752633220266902812462201200873914488917322562627180437793223700577579974027814217952213772942031639980814182268744351371916006120234534858756786964221712863517485950642200813783757160663891838264283985936037639709121405801038839455230093470090540910687296510028835425089964846272800591155975735550354465035473450145425413981721940153673090834071152485694115199412895112516803229818890503539620758928059616981190804228651533838959966654878474606346900497269514268735516253417898346420051966024806932255711975702131907350996185271037671447307013828778902347547869048596840190429702180612013112562305878147512146737597901179176128338227348114105592700384287275489995880218820286915894764568388562689413351558792615249610248466949750983790127186318441198436160321549439448916162599687227996106985492287840308099821431197983816408839820425083068844540072746085141230847098611705277109078972171844873836524758862037037934517065680097836643993510956625915379692952065092712914912722904058641688102658802605615173453953651361530634348150655882520177782962919598338051027399492073276619453022195409817035539565073891339568982354301707230333003418907405189063615669869971071524665490739274625118596468041973088242760168320690256011033919362997851172368136247687846321336003916660082200463801035176562134300334582788115540595118396360764501298607740738059815563759538839404458477836817248299301255248182101884094723630264758423153010654787290490174676984007163467158011614990733612697709732978907994958388351107331254878061277518190503347516194646512791117865248072642902106631238585284730923407880832434508446263541616645369565544306622183372555549518039159973200291740498389031765423256968358051222533279804902736745872495936832240493664291213903286310100611926936081052637918263807464918733945466708040026708981377485562516371762841542288185826400313860947422732798669304393202681667361500496061161647576485443669890538552764230653463697935892037878338424856401009514736715909380055604194974458397445990754277438049730409343880087857419172703416658772138933605760171450127040523927201943267351527546705731415208633045554155887976709652627263190685123481237860697501234113872558681997018717667139179666806180617540948809955295201846909369243411916154397163015473709952364932631772854469955733849564153671693071377208372389694204491926434825104038449375997355741377210465649972372059638630402596509711753285163348932810448461290547979109389675288819644325182391136992952641542030872908103475297546343581124538558033648358771960600605773347120313105537233052573748889634524840096593421474899345279742252512758913375839354183927964649888622434568999795445021517744103350471293300219836692328295198852845564907487383092062060929014336294109691967237499673530159248256022977665955734421683824644822346180026164794152263791832435935047410351136971441891042944613147202204508484758418179936779398769964783756108470639246218879465426444170739441658769201875048074160851897206926458718896532839924941854877574861829580737341161023777256545719555220898978880714197260640865012923586512758595414939256101925797599104153892306367525888457759508897108896569588650177685619329304164178915445121268760839855257329612386213459652176479828743537409565984054893958305073365989169993224824676681932254655827414371738558643732244020607796228750174051062535182545417232813914579032620047538039098457803988608447368403203256234447455438979802871856410637750277227153530544428563167299197713232910954972399090835732228729998370543036479541795769367522226949207624695154547109424829998664586293758260885430715894408504310354430160158510690143398504612948324549758683802990567527707131431881762315660706626025825886603442491679341005934287544589507914522875730699924179616084870716670096069474100757551043328354764964774481057285897572404759953579100046496881448623984051262598283044539738423344410031232602617625066617973681601196842443187319224137479752172109720775585982267630368705400081363557039328837850701347669132453316658813491617692423899953329787464810044584734740657213360487871760405749537542142639445729706602771170023672009327199602548483826611642069069234641514850986765675043764383985937929341171145179040765750265497919857679365163266948383042217370056283452387124425680125391662953884511269651492465890675049105715816066796903544794904078192897898324577718763734420812304457731379207535240896209065834489090479341778323244764347924838895449853627522248221980605125477694574859507820537053962005362080819712299681167070167234929277378218181536227652101752625460887402251703658823879566724687567823059523435476092264660996729735011116000115218264968291300451303697785780933505184718137499537037654179746872172990260577683437491486022513634603286901121987310613777014697440905196350230270660279249227965933057478460601358342944049915798512170831183524869853754600559326854497610131215878513011481608183814600812705689725667949066638031569428037459533725187404183500586879823129000482079540788517403641301662453554181940888720855099498311149045089880740616144529082242866540481231321393921062568085096584044332508237622021066588271440137984821435843103028304382990712647640175879065603464852295847468573678096692539944430450429295792318657675020458635163951841441175429445444840260608404497223922015685651579310106082680641201623546469816818691451344347103742926000267365931177720898272169878844229228535947715641357932863909943285277238711639008509429634549407001066268662478384547562805934982490596609832261324702807851605860096320963250535530535921556109416999296265005430642954639935087481919560413831673444406064336174673660056213072439787626410383409342973522778473489964642781696073189075265019843970686126736381822220620235752019158045540228957527211014949459497623828930214420104147834118589064482432878370226009639124738427161491547754739212317053734035793851193772505958704515726479293788513700029243866099291532019086090491477348606946042748103504014721768001859447004697386300795824538021293403979145795946496508089571444384904108786376785249247865327187027685340000381139772933274174621287383626813859911792481041336827687790026918730227378134878335317254867975322158787646831286256117009041170338992719349761501515906890415903965100668514371999017217127026204421167015214781865595733125976387881241668086402036293317040586226921111886041187855930297426217679354812458768882208875614141080262106081730228330192439352544341408283095593205929102575019281765989087369623757908550352128929837063077172906435124541456720000002585386417194655314205585341427298508405814685903289508612554110840825912724418655928521900035118649192956297881268367555901947138791662355189267072716846676063743930175196127784933727494529873028689944245085678406118774093616651535765151894996771872460077090282708132487932372236924923697872513914107309962004984820423124920708877951080313795035284710973303835443354338471331578564583677988834020591722193756905282692326225427840859585757417492844755915117040884414929894247602625019770707699063410669701330601714749182366053486428060486715649231938038737599427521522102650115505009477198423673082382549578515284704192992624694020341492901157922091451336762304115839915096755763308914637183982049262192843941869470403903378685432156560458709845544631782155881081828947230279810969942151979283624137734223807892966431329031113602116548596188717696117833041860613954070943021173321216699967533730593706350118521379289167178040254669372840422214972315405170497328616052107186565483935975913590562539011563056929485045220458220462664106118515004092247800928686773562981082461058977748670139718682123881167069619807119522199062153979570271352099381237926613171527438634288784977975581706006958117397773458533696980794837872712404236067360681906503846369079861677795515039139376690536007573506575493541173561814107505502550139904966007066049373733866764046314654135517985323722278360278207094337702737322205608087060024764664759850892574628667638326437798309925955978313173386238861942094706437890127663897773477409199074619251894614114310299181360355144049970554708685151715870136473434478405201442907243398562333816745694809308360807154557870295511366011674054480656544669485290215673749477687286887580865255972083189490857986205149496391390728758451407024601758983418472718122454755773466476683167678947218285582137778630109492216923154480409444288737390886351404672509272923259562359195096559545582160993110250189170145217594811741491731873985323643956103518944972521181067253186400733908455251343165072940512571992344797230728341190903368333299186571012946893799319698336014040368066985936995124830425718831566581620270478808369413927508597898838441172461492539237701359806704190918159066524473741832356947462872915276131232440305207108815487823226865465949836334457055107257134272847428717513047673519835135804346159624967354319311792871365487570895227959113704218378159899685687501672862543158285953432268052649481461824583769016416488215107292372701196248384809755908084417681520353602954932552106731359338277858837960100597873407574190895217756542530933201343261778942135214174697278278860286083777494477645271691933510577883225381406869569706059677919978196699792479183821298615398709511177408023838480281253255157360008356680176613817209483017964927460089319313475878313645957572853429188879353677391781997519355524237451851972341355551362490792349810332150334019614963628940008068742544773832491474454303223790206657108584107216112058685895836550645170455722090260150894715549478290581163476062799350180052954053344858003964786077625776368104711492151535004994988400373106682694485083910605194416600076229409496848376351316291923883601766933525351066862159012830046444596059772242510930263718703783408651666986166364073886792659846152552418050871604736694799555286207348390621722139165308101279862186492070725427325627184327376466353671396172153640499995573965804685735691816516528847777912876938398729685042388124936880469310867949702247030567856177011693773192762934131750362653262798374438013622003826606494856685139640505353842259165671164530046366601717461767763995869918433717465536967652782840328691873575602003574632205109077798118379996859672478196851974196423707943192764659561059011580884575373596903944764985704769775356373658686584187774599651431064178697869779135894348363004067035374817336992082136092761238446742743467376636640017281046303058079920651325055001940998099717589421574237169491145667266104273130411715560983290345407573429564542963684447453832779744067403437094283365366691769236238577713984942821811319218185517809052221593259739118762912398211400571796274103301339881665328956974464367804055538482363354922266885483259922676737331160239676535306966144260798468361044007261695635500623955681763428826350397248676025201708923670088626907147523187955426476242608641102681644130642286335845226013094259864079043175312096513664679149846806306640514912407503994547315605079845389814025467176482432567988952884193063909707736791851874323264331148680833981564039264337192388059611738999523763973362428480419164912136505971651256008524932676251351218840080865448274050331284506398488229290452470510255555712557913033825191836020240511083243690061246282990405469337211779890406326402680345919501449013343390071176963282972138010104217061575776828318351202081092976410733763917024863465088327547268275932398361556520622438355844514339776993808030812012888150255396405370797162831494627997997389773313057892979549683811092426542631675222633194987557561097362631734946855711073760243856900594670730048265033714128327384721261376678097981320032692086405342373201131319604873894067255913902798847657540650813998297164628378378707925427996813409754568597149684981433085692325726643713549972181483590350196934708440227878941041311237881618673295305046455284482300544042549674235088081424973618230109384522351067916619729459097752490425025763443789894427703495485604975413352219003116649860929216938280226137954235068572312399736525152994647572134369141959701745252277615950331480537152737812452148989748236677931210585490202646849375160618026903754310100659166780967856349871098121270293309221543522670167826530385790792850984509628967172022429410280940255705614622693269156056936318644251901975695999129892170979615679453438072312029355347945867218014947250824011724065436485967764945911728466834193574033681256482590869708501583238522428428428277601173314510103019465384900513100228136171834977538119564474821545881290502546417798586659037292107779542589977712327110355709880362573464049688517823634724963747109100439910521530444125174823579391744201372420982294504445923596965313173300455788331769465332533709344455800667798540986781274813673673286026751383580948972326490861755603552148577009029597282378083349244380088810093669554390138116326481392152589556220410375986605905526291034353081883628547955666346759813405924530139331079296038002848863420279744023977714324783047781033196383867138468938175253728736488247930227942670871645803752056669541935387561663436451106580766086966468654755503531161033470700565708244462215623798494760765203903021103705728514313066387472265527005239444631057960508808551564245025148354970988127601606663342799036458755764454553457545525906519976951134512817765169959745769440999831183027249854253008862375908368192868338301650963048754114416894261599769620260414173617533219517517619591183084038058476716385091911478450510375150289111808576878137162755757191472471497247704323366802112793123787656641446404990867371751838913229802826934867267371224104624021997705836362461353578301115437796506418991386080591024974167898257206799081986183844716271428276469099805719713012457318418192295025732136711167977537134495656290697912634083540833606611173742203504469378368681958490973093877248600302785453554484383951360487839757469903535853926350128237822421235178370657381540172700568750912709330667168631605826935798075592528127104977733625488544218010620284634288504412065909729514089066296479796296227655201741922329847985232772224430874634235531820536940422445987875502206472340212774062790929380010244259014584853033784381394123418061843970903300148640735534974108031683589659530378147984733242052338541101065688291511184050410630000483601029141343293998379590027778643175856248508137807672575594129014190213040343528150706020703083799847217514385388600376002585541989870131528978081244036902394040264299751141057056844634514674234393982886590989761646011889157039030315104169778984256973706479743673969364942205818460190647451909025041059889363452900115042109364347064936187864265197020707067661566123235149406116048025543510241419109112902722270889476663034916447208132595453113377440874469001848373210857195491617207180428786432894952328595124624562060520245941875126696906375786506544767034346383619712330334718696351950033017240634291494659582301287398516555100352742329352461630076331140195320368112945732763891558357869125532415144647777171911275545047628300338669469235842291323404635564535073503177825183809535457782006293216478706537374033416069777640509346149595962216981159879594287793520313647607625514931880383452798235960204760067099739724281414129471189887613548774075249446692603230504664324065341481926390842897343387517163752335336692645176320230202496581283714737882517110666121823726631273747703393800052491832915431547058224337171887239749655902777226796625428191975166258257348928414796799565538214871901656735686252461795734843626192661169915544417803035620895984834559350034580876160212645896477765103628833148205413298468374611901140144938959317156518139462387079172132354301262493667047202627421183288079997095853312215252518474048577142928137112555690870682711317278094803886850422740154438790491332615200880605739830681851821368240492932115376329718893011472730165045394514178714694976362569877184231021310160439113662881653393047190752128422617338747738783064280901724251308674676836639075864220547286947672647546890879365632705685761222451278017911497441930363360840391368747411109630781990959388304362887874396716032363065913034064254349762431887580082531362586801800750237065168174092743193812746529843959749515266251539610125821653358099206322447476477085008723599040019171256340013402935417769398442755847769736535171394161880106581136865357835721896689140795865483283238930754007824212943843331580591844110791673082866194850688152396782590324015943729891772691899485647362852842005874777947276575003165897784701818784915193106529556476301893878468854585946861380860467429926899466522223874760905187273664882040784982105304869855395508888526201034918236769997296357879120283267539830472287329379586031604026612390434679642622150321789266684831569638810488932042336295120097334592752783768356058937541042471847207757199209667538432207196430285906472892278287143472829928396624080242906851318215563839497028312364867573729046704322852024032861328023636101093234276537405330949090147143911934500862909510953585701482439767680987261148890021876722442305756553081258301330153365352290681287602518260385011989668641433674066495677515995103725618500953598362241573016834225879763273915446296714836115514770628729454424349834189993777976424308207934409038099203691978770905812888258747444716482409652540583823848388769676160616476630855436891968914457505042751261514663645318476209398819530768281275338628205362317813125997690731561985406055365125811870462499918353776250724272656471155571044371988050951984453920008331972378794015461990872298225610005879192149079259973288331631743589582205619872951164503161008675789723705716465785175165539092295289276665155193526735700997197712305642866955471142838177709409630577999774414499257853150485074538260218064992695230887633809345732926190505213449385346346578414160519166906746813695698874813065139892234448602329875534079190242559438036129629145388599328502330001706730596824444476079270170194235887435953438684026395154065858634408312557352412499645846640539997488568259245237939981126066225211989243664365212810892542836714594382349871003358348750608250372895894595124321212054304847780531959953953762782900228450516264447929128303436703040057105420142515659421004985088380015368595989775345966252516729290337412726960980625797441407435498173493809666572958902927914304024255078138108964359400555103904886357010010510374431313473462984520064824029427415525556542796899312567518534015743906192098259114106394038795032686955637077522340350929475201896480367778695502735897260743610484958505515446086228781824597851594614193191664201333284711137667864314537163901668354418484373921432802161184258514917877611254455422585226708059803178229736967366299916524096931798705217347883905220534450758729716546931129459216036968562495945028323605061883133272937908939904522796567930899638486286228939513770427666523183346128179931418239281831156961292590488521516243615510476873357010766845154867504511030116846966570579350970992292597003199214185402513472510717525276141212054695039873998227989375869548184354402082393153894700274308865798877222698962127394801615728372628501858007750440020602949198350540656180317618280416825046062528594512366163871643094469172199435511069917998512350680474395848071388443740856006604680620039100852987127456186425249718259478861811349229829176219704762759291914369911925616556739038461746303091329653443353816280720870502385286281645302085029344265468498292239768272024165929816201781450267830622041075357498037722790307480768230144337742340792899861306621681451631486456416968440911061131745982585007978430278507756764620004833583824776995514988490782994604339712191332184284002670014005993335824533390350145457647869566040525447804576818581664339875815625558526018996379476132331142111390516732007482220236399429210012190907061787739949923748115518666722269971490610735289977232851976643511943042692532580209547348866075549901638357092691259429608046819371198908074589643949039372548371011295717649587481703935598156500577874601267945018976137229252979320269273769415956674333226400130325589383883432945517704962020442961347987267671963416846012286881843802817820503694276075611149231340706783708620398165622590863960778811350013078719163820955263998384370643369703241836109153418385615074130125123780934669675633545901788812082530953936376294239132043450967720410107739343690935462416920777045205462565872072166921832139916118405192734054772805235378118419087582677141864871597814400167567169103509906836880463732438161046090333195909684844043498729946512867339242151447304994598597076118673870356548017165373999686540849483030782452054175525466547849915188088276266452438383525251516519201914860096174574678917627407227969835683985324266355044060012159829432721699598801708840359853779141542166252193861195925138871205393552357966206505216704815196767663639934199308212007615493083427790631940969079798823395239387650259319722327708856402765645784533255585886271138676656264104531325999710874956399515791932321100993583308864551337525580119329440096043781390633381473865123756983386658964428104421941177751758655105926527128399203412441716880930375581400441784356108062675332039277451240794602931186021598438512646826314352607751944248861324304085194284420462092072734584594420194191915069560552005098643613293793066011898744409955448342507065358430132297982363372328451241053009674826860079634421597807199022799551118671692724029845919911468822536284152996326428817233541130620127576891884418800235740309298856283939979578923221464184743592776322228437942455116004926076543123925800426974829345997535348806850920825835500648519068412844444567161777221405567063214580323128362360034390041754547687931716318784827626067491625557334481375895163783039112719542745975010176275755391684591444235312282803053634421339783980416228248648533077852407036987135133055599337099110052399839798808363372777727748834495958094083638881410968958818357784223052294556804951203841740561792543385509690525615494257653095786021032225765244822201260158884188324836476521816272525068652391739896999939799198039501561498962133861163663778310334063014947010809708367592940742958931595763053178143905277277521733444576730318115499775082392594105471859250849699074432780925141464205990981256955112983675133259518591510560392034362650921074696410337702724944757028091816563636184412291695046872774017801802518925937764719350113466531840560813218681841299062839085595897031849941791972910324477554215643753967367144179982401364933293128722050610043384161431362395855298024349951704147177837635773026834113089169931996325746348758869598026248007208212712494482013034905572668228050870577153235292278316844682300602253613191161601325745753822022209695075613008599519261168236946450361157640079052302606161667672583086138526804206697404024326612382206051262802766912572386097047711787626898342342737501557643420167478184556372608163349933211999351972107321456015507502690395533006356348364047363575104999435684776139532759008225268576579419901006418665475805545201438284045076640927843402668038303345367107052588420544361182145700107941500544828605767103118062582392561437363303894941891953306397932083268003393011560202572633916652434155747332558227979869280590789763124027573981757224679794350224565045529963699132439702206794579392474169622935069536922981666929930686533910843521396257587080697846326812691623628211595067942017563716594187934644068865131072898823394135365459709068975231747398313518007117822632255876454634220448348109187164155672746384621521588598047346228480517679651218479761200288895627403521781027757921740795097085351266427981143750017907389095351312660715676920053428185407371929853941143221415200150783508426927172135525538674492286132422135527714234069729067067167794832936376781836010003535337086844437741842271119564310489112907319812546880980869873329654102029835808338362125997758177790075292451733750103344232117526883918354498472613284797061111155297754379421283514890983289223130113440307003500690865095703092826185826586386138836236822272815682596696855203604772204452307764251503016606960460681245984269435116425110029594140391727782636723133457904665513473218028476551962378454591853613148717695764099849313675149048945760141329761299330830403260410122455956977443835679859402742014571110517024715916306667267896361297427088985913396917545470516902458548032821777064287671182782275029571433119047127879061177436554521732547634339666720370575154562891448094963904160534834305478848290757502260503080678833161837000829232131115750980715485503113017220174993819407113286741775680206877744728408542299736405296508512989102045634997269249848341838242892715465325401012283554327221227651353023017039926462576332439663914968872628199556726606857253272973847736603584446186843550435976894333776996875215036780278879619763394906526042116238933922894359752187716697398595763632737946546375387286984297138788800847859848273016876753381733163394309981690066552671720474813813055513800961973642204295953725712532894381258851563615536073812013838718291540855485015555558995183932538626367112601862771010048555619201003706323074505827485617366715477080236349423574747610496513410509771628811174088975491452278028793925877303301832253111895667027735004330909406985724821084382917854084416662486130027988944390330251682361001239855592360786071457912898496028599937766343563284553140988635257985688335147931250487755950542746932056258771596158744988840945081807124935348239555924686015088673091024451490320258167874432761055685507598135096281693890708629421782104987226349552841464394239370272789613560164649173559758722198019075355621218522879842596180110531238755779006856595994566878084396095568245005448854088436773421367254809183107962784451483620248145965167141904147103120899182572873950174968098385171979404017872678271961744273195253610822802983015420628759420632526974677153149771063809178971976448615308221880990551118811243723392748490757088387434727709321317914234630258999219569907875211584098480210113236703666626046188348754398785193364326616005539608550100205687336929946463812272775178584837805929000118224094231418506612727709379450861588678494004380987657661335527744287975270597880828180386820940330906184861706833012839424275407522943446738710920682080900990769766921184389474948160074436072383102476430957491403108190194373768649245359176051052546299261768770826658257432413932882115442650828192855646098655861405522838726441322987296212859198187292270458070779410933623630380476139351554599870370806345930375597270065108241959690827296125922915274715365606504185676209524125677082019234827986186375763130898750698555832592508696506682894274829026206146766404383257807662317107041521767651801454248319721495435154337893827158426979404178428494299705298503012440676561997339115923943879008648001379664881626676901080572304065874855839927074373986548105402436766744609538234260277074978425480222258422125390145065691444173844782501855233367732270478688416724412706332154713576127122768732980590663061761745224393632531202310574728889218314835840434900955069045596841398354208871514634210928299005106529489017444160061796003211852894353664077671951193998570477551604307796772389578996283678236512641498943821862970954453713879754214169083543544690166585071708469337867982266101587778941962651171743173738981749242130524486296446293398774781418507641926642437036722655110856204416887389774527090477426255820990581615551718026656951111823751090001778096427591653635141859688292416125141212197069915676823988701148607841644779654282522426659295635271485905109073433968483667013511423769178223332419887647354626343561636289534722173141376552247537182737803802110150643834625053209444305915082689382127103745717557011968388275381996514095212751382487766082914092922592252694205034467003978854502936855831022223972415549670982383244577950233678822947262634569109808532064424538989514429935715673522340245213175899710137758409054405860005953961394704139132182204874196495660610405242507614242096481771220878321842112089028736552464777516376913047830369297496130641315981979039041573392640901862769637886362282629719710311864134229454029336233610391745275007218375435832503563065248368488966070800257524731794452717751979921817058633841735407061126420927177409651796750704814129164814596186420371953115262240722855920260027153512742841413388416123106380654629441832487144435990489702373576599699449224465689996779764764250171306922309769515161346585707867955863202843117545624424408982551915825298183358860781085418506200059272200958896704296431093932049761545420135833982774637254526385249529668146775116026231230854336684427910932623168989855422674095428705812101576375672042931948361965564842437597866421758620204971303462763689707014199070452199295017676978968168275993474192477585269399123386964398602824746861602806038125090658117646745680011933329286105543987584211855886939688487720977520654967166157949458758956876031072030220446154709505766555055647720380614519119719497930615028924013912435914193606211290526594692409837231299600982004486343823013289663693081329202571879339923427041483142057447919313223518211959692889235542879103929148664679701429120938171041525261309850486538871805344481926080834707734708165347022703024880951906720251390632816254331117105007332129793363157817740300358881434746339063864562632296037975538206798981746426801534268709510046914968391384287143216659343161279205455546778898594706577830249106085476466645526775328273356838645444365685291348464157951447411348727722069710267249254690638786273922561868896373013965139956643796411635542253959582903073919433861540004627174533811747280853648310830980271896761228924513776174829221749548789793595575918851709525311406027292369205365269121054834965767682706572153067050457814074067584489931532008236428555937115006593468266016392103287581162524913388279056390179267995182151147501786796032119624652477258339773309189702021076290970571523091582372207859756394939209104579236176717762488745938419105683315043372828155997697319148828186277233974453398452540099477836190897591378083611712351019821152916156868892087604785289850527628266993648990098271214922736776775582447640396323383243265753772137166862537633796896754980518523948238618126175092272760190400168150503132189747854803493585057789794427351070202554638361128154713655965310601652497020843157210919292101658680981318977948690997721016730972973504033173427574978524211648183682917690407868494690307564086772351983191490314160686312559236055445337516321615942317245863580761449991257640821858291080334460335032953364342262256293977068600990389179632956004940072280794650227591019554474413965749552551461640730677811507526552829911997512353691794737536896721670498195091092147658949964125385241653078407534325526859456398909934395023165777303361190814160242433954076274089008891243798334358579823539980695390256705770209483375675892521019094522915298679296274545249196083993244998536792736145476865040047561484573049226241849905784862634909116235892975846971658221590960485997754944155396887692037374178019281492624737854048966351642546179939030732622971102466969245261554744019856180077890671602653848471414382802750493197693774138065846337246386552039969742737431072706249719910941993349198695186755012718961946973466122960535825919688297832724243178794458435946257822683492703953301876505069228081095269187467293192571305124891232312725309437764509151896316596016232955385162834061997386909327722763686737484450701712345704401369049723756485986165347449711029805710154972075595202090158516204571495989563563892485044174930577157696876384176182464277012365930799481047821635670045093668106722321061812419099783727214039120912445803618816951484682339504630574116390235801821014265224754166526689896858231055405228246503226865652411293904593487307114872089683493151482604595472810929536604804061040616094858275665280057114756342832434940137763999122856921762507597578471303284249383868252591829531597201867077625121275347805156430049125803970442732348589946864099258614882453059481499413682922282587703704438093633842266070032309723325769323265990349595325064898372659813371605656775641120318062845606319148532672731234723960452822977751109356022731718293493108663700503289249318568671647684159533582488730185362415844660133866991233526610280927616071947917924105072368901249267475258792408113427068457295668906131467920120090621089215498972886618021228210001735753939105500718362086233599742589246984618761133559867254818576089006384743344329301394051510709466836911363494884694022748465945766177112464317011974749232853013618218374886799340188399786621981654999181810173436157999480085018590996552061839162480029674371928131604294032625458156819794306914832510713344132426939867996925277469470510688300242462350633821022610288961235162413931323348747750577492873454468003911454786057285967155031054118336620276361295674434683394254134193449907421777491689897230484665168962571284195052121798835248124050347235132821415616290820127919360588588474582366549081703200721305051539310775562856909424789033191780698362410289115671503894080651591650342305047837184942155411025527642972917045297927886625491780434469637832682523214643654356079922037438878078680063801091205451350951376485393373896630577214802625501868375155638091237929471288041201863689247647013470811066337833479985321405728664691270860188610401748787005667851413317775387542514266074244030882165839256229153218464756244278858358987779425320625271672034840793856187092021796051379577642991434535381806322223048589856499081309242619897425291054959931208357990746514274414009927292967331122578725294536366586499714503903873688445052676822796637984945798764075924018701138513958448505663494772476902519972574182188422184466274932768918509831209145113658432705183353150707761539994421279393825278346935273230237858133971051493669825319845431900659362108380093012729501358622465363972967635428554839375007763116153359562830070729208427734061206175614326290208963394841075423183831293305863980149268505024952359963797928400358619315704790513725068884829521523429142347320610637437476385954016183556691189618960398453757245635877576504335499240374835933726695243172893223457719989159096264481037079444657452764990684830145975513512808367929689978911038058267182194319553787757023094836627050844173833047043393796968269474630508664906853720251599353338738463600104090805166791764246963323311169729680507206350597358325273692573221850053121164297297079352629759497664820385826490118487040358673846968143951305372887812851437300380392587400195867631907552655095896897800074338442677600960550769974627422942423814593036489853215489863927754751253806374686111232567143626059269384862664390171806291704686623075973429857325593041594265373229798072542551088489684414727544272624675703670401641180791016819379448049191143048085180019681571672416935708822664878619195658743018513750315184989364592116688507424376345489237998816721570204152764851285143304177230514818996372435883183093033939345429771482161599684462573027239870370080917493654861755986995779076866000795895354912831668275687715208165572928695956411087487475433226807257700869381300930885482106348619925819776651155288277074130788338891002642877396302691332014566108645983403149787053978510352519522854759260813792032948864310810223332074973842139829050877850055178981016049309330253428535342339822690763659798758270043311414522058498909777377725527274836225583130462083345599087024216101303756963353148493613042837846605725560498123358201411640000880470660751910710657812703140570163703121128693888200233624080204637103673925689806892411053052884262537580432578041272520308111682869336110194023443400187482229145905587544420694356118947917159515301373260247686506071837552453662843207869213814556660909348194860535135157347632060604718222271905543230375196441190536876098950369101881768917476436426664455636791055968943616700044961043990605562240894208809957887495089416545799101448016731528715496856074966504254846542769809501016312054371570939603354367858385300331804024708543946848935413082340503146772363429898270972185584756397073865535090017962714406361923350451328518351387095766786675634225578189471771439755966990467055159422131797568488281700295427669462558344479322698278095577996517859804075912353252193825088326840019680757554372364258086837874914454465309151693487512151491991017476625041878432583385745548930031552854360214899557986463818169900059750394921690905956086112852439630621835028549757470197510112234372377239628470967418555219298924455982777976119578286887032659899139386572979727167455417753070268792886765416120951512882765878665021655689494143725807993547602592032206473978692735943218405907281785581732534087411923112126705766887669279324127262136358390007602993500959402833983211547617999963351755285657532648728870104497538636018649892166898359703097970270113051125497248151337754463975273788966554533382557413143059703581574451787598660940807171826507121125853116315845109268187000609271975369064055288122416541120431623514016375444751499442738848918111641183998870910576595184198221976353866579917270905841194768810178358789057357917536593017927938397713061649905166269222981104681457243981795751824300232942518262636448257885679876143792255742333107912141056798159742941420840364108738584829247834060325675607979231460693030908311881498877259736784835820645608852799266365617475724207675069356916347771982093741238755113833221935636328392271869671523735615876075280294218034068140234727999937375742187551015289750246328692487483024431109411265827890994348921562955999618820438222101211029498730506741718942954547131057773074074627978807626281517328575470307892224129926788140376031615512973554120809171845181782266918126561992303147691090461751017042990496719829231173687726068728614662758443044158297876218268074128766058421923323477149944445390003585912706022337937109992875282240960356876192501194883674462269516974440031960590464224854879862866780278604665878616311490608989566071823400923647561094343263747430620144656802950583986262346170905973693128153997985416164525148688177462908801670687793972892495008270080492492142646008393200781205518735106189275510477697166665833908334111994818260534405529695101859660744457527930942754313458286318089020274658303214848788675560340829654536538723168193747122209711548675937908951981205110821309836680211266438830707694961266609255922618556057263809944323207839038351610065263770669102641071398559486733918660891769425965485669830219640708571135140878972984557038449157746317114036191881952985451783405358165132616792920958016401360450441793474140474273915385656719059243847599290469165367089495631341738328307549204887005190152830855822735740762137276068374225933893338656345882490850237746496506547075270957799998687290738550655745707774371056014850915233069902386011389939284953550330062409140540988352891422764329959048718056774878835541170307627294457998518513816267814597446007538020140996416264976526338930788253174517958542852068731916531155941832888712389896018667971017723594085973257030529651710069460836552885812009658737838263128555092045073510404901126822290289542805209373136857022573384313145676054316055576741080990135426299465371681904005770803881484244516803537590258117146648528114082330646133567429916297016474086038394330853305146474199997179434587048760543502703168858610493865411683036871696537122675431386301851710415046782712847208559802533100928132489419203384217273831735047419519747372911190878113921921445237203880665489240578102412777135452134299350383314403780625331108422401734134843139960261500874153522130168462773908736837884887552848711945939258138491250350082346040845723116762456882170818207239757658715334748137711393588337119875787022534581589107469347942090890697342926443876458468006957057522891422428381491566786867432003126159272717204212503897524425024661769515993787250971312677850828642163256946045615528181155561262620241778844339981757604598455028755479915199233855963854369688329068962614820077539097451477494461554108669960169013624749937652164518157902414831121252115415567344124642306400464003935230092707266578833398987108576467592689176418450206951486250884230641719516972623890883424921973866020573713374442654146252158142068386233192874742903750545775038072316373100631760578800266155896115965689803614215688802509531980709035897015645163940488011193814303736214912995801715254396650917665175322812091692217879263959156985164524461383133350587753237651734626298717809042631372150210267213666484794558770928295642966277592252877690238428049593733055736027735125728556702149955037119785059338836585818145937489574854678151034699247842299129952582314634244364462732752284601541537642169605241650005003444351072994528564800544908049470726120704003949702368530418686356903746255966335189841139679784810132726881998314658318954237898051936328468441272041497300351679248485997728398624781852466636667359550320065302803906768393972081878552463022360577832904606746703026581688355570967264510812416686883158373912888135798062873333952297477188415556121423966250729122065293270628668343856264469270687998508404888787102481259481957478174761500060006474475800640974565230544020723653435176516331553375515394152740048321835336361303392552732262603954900583327542522233503217008670422083810352996174084763180194691727956478939821455467334143841275451599886546295664838148846111621403190643179813817651694977547536099711710169856047321356161026400418758568915017979612714430173506400630717718720740750773189539595201162922924078072045528244751984120306482064414923803811097126322266668815469779869885738240913248502727398398249178861225827578820681691022768034379313518194254751881087535214873693676623848864392251140888514255119242305854532913688238550609072624502200780331144709925450485565056222797960737370627423712962445015178832989530017394720493983339516015581671536612677164530810512250285507399360998348639191499414508707512386311054558820538995738859065110773543441980983567038029411605059085895168429976960054624336514038993549662061219245727130359833029269616518053319359045637081274232325762567159810514687451981394775722166153392136484753874610907711366721054182605729298599692273638478119929150552603081144950830093911929464549989234759144220719810876193294628578870207728263039546142112000420740504990957932657207094865511222830435130212493783888689888472818648905831467062660375005076465695876555610548145434709239982345657485348834643396299118864326964799595416447664813215094359475090498212784827088276635927566401845860105599462744279469009196257884446508054462729750559837954785073292298973430684192173861195057685001825893184264901212443750475550007665548512818231371307760358439107505593774315857794007275345713194927655693957525089356679709946625653442035875625713554903826024433637338260198615692094682779046795638423447890130693325026541859272881373114611534320434076215661239610029023299702802938645528522149677099601878204278756278017332923626442280811644649358466112317559504079583531854733003647976447041145737021234493770316353324868394268163234716872292903667859526702664894723981479211557246780976225518405081413561738046141477277915841737349697478161285656429006143735941973890120682931439011569372463673480943623512605008544807318462951995882454237295153940070247931171294601714552604560706662169163763818626750981958281560579615047520725326356563055910722273690125445273368109847211437732891983816925632303772296357936324544734338696671623194318511073164961609701659762456208586468218111556820338451440594311580416779445225700907336704993537242229092369162746057372268356208908803686648797161223000040161911253591047953467420863255550016450207928052882621478757199321672623614137293171259543027465542870149577797266189489591172913942348318021531318542660053443408264930675605283570386211560041809846174974205922669865628049239140197471232307016368996807484646966608870656323091726711629049305773529090509406327155847055394097656862874746926207973139965014393974356206356092894875646007362887872307761550166017900536353284076942953987759874623212833232665669028263639260170715507389897304170873512351571161803485683179788741147350614175246730784270454509265410581606277919165353060106329516288090571904108963187715355683964392913611445072377128337865375433962594773624530266300720371083957076948826051280897284812456765845472294569475796192163884333817962491272678667115473746506224614729636137019794385042835184545010252136015946854738444761319913914011063436464891254134391783930349433507660241595412060305987219911107673805239843123450789911943730639586827788894618331283936437630065753411336488412754255139561481223494316306200767470162360876313007240576048739904445868986949984641768283504997928697876533410155307227211086960926898901162073465270217081341337662425139625551331220480399369304524207235074449964941551110439567638567133525569155206727072239816326744849240975289177403205157170589105245483809849884685027080558514201170032827118691786941879606270570111646672669426456579253727445842286035986937750503276155971511541329547256296667190281990095373736634209056128201588901136530911026236888207182115912362427166283469991260042967285052462067220451305862736600361488762379060760848596290615099787285282653482751214399017321589307147764199922413600498381037840589837756337079160358136402871559397016997753882105499036576189583275655767461920577049057106456094105543326715894660436818703464317560114695948252160186017104572933924807791911879448045142478558258698257017517392250357357310468962253239423096697516741476988609047300220808849600325627001566178961356918299680378818783481390473090449358489489089267478718017859287648004413053366010104905481889877650576406510482709621109467578417744239584787539035824788511082664345916962199128491141061037835752440254777806922383135880801535729059061837914546537062814708676438919604572493088786027481649167315964840291112981267372663956042907783939348865827011001353975342443818343945499994167767681284913570467478071101881386853181280948931498399094391253348872852266738344544298600635278067202071184241084037962224732748561840932725139249609562489639586015073310301815379138545117675208360059880823526409445258105949236494854200393603348979106346529585257913189156333073998159243553530129353816530040607709300314436112319360794638248101481170514199445054747017467584809753067044931188779143694742903013305005575535802895878804018383079091723601551827231334632897848897331632822111834434666193553323538652635433177749520212711710890662057406117517571026475033575243258987932577637421979108262196106863811355681207849328830836471682018986814468547785866368693282908516229426458054254744453531910777879583030994765912468858356414078425999817153324815519723204295712012911092482395347030580435842343987440530286566764293212113199705719397199025195280626652779366069416447054388961746726303790875614139421940726334685588414730565431217734125738012707459806987701802725661640581377979355251828653910033385145023212177725426734060163155985254902266674201378014704977475970362736139909904025270144959257507645004183007658653400106986847181351901349010616755627385218444350803614196269169526398171507368397989830046574939493548017811019701463178889284160382683841817695418080664395645696374785871319983095403878412556245078357828286755710322498075475217851584778934395425892265125208080105726125178018018824996531838266361839555523873665467543991700649281834421763850391930840922001630183675241521961907566566339538598451440352286334187614540307625111363815662979719035497964252362541260467109476948365324132283368933977041191311579385689378373148642429738374393632823350468605839074021964909036026114533018947320210802875127733956524936691699254964634195737682162322095302959670145673278501766489083466337521014397853288969228508893685259865954363626645883643104469349856745599497154713841999163332777942974862504941752343735104665758172944866220714511786638733683675717578600746785313648404182243887695953220858823793504812703204649011135615357189266301981050903226282185534100193072113302570181914774652511253809819643724413107810782231669751354099709635886066304530471835381353677039963949190180617567317761007220193169217335650628788631411151039399033534238631258623854799759501440771387883311046677217064578471823394600266632724752427693124893959686051483394333143203693018509926554317208647302912193626839486011386296522184556732975855302317366248119950020996148581090112858390722650281186663564784538218986250551207516167721323769311425057684046814390805120044664300381595136629801782860810695175851221575661989753977730164323939120358193763924789621900096974800672350242426933871383848966145195901420628658398353628848959323035516655470182965114107531781983085551943831632948316242419579461700411729730321659495640403108326226502650248891326487207296225774608283179288942831345718708014380893963399054712469861185539802602204413712584029289406545315551665124504585439659325390213939261656826982746322594541100070468629628230343523864195160519396874891662641966792980443801437602990466763027803384085267293129779907702232381658574136017086725150472320701090666099475100992456412168369588874278290781206390604877191778575355529745721467818963111245429518158224002132673112483241512041852102234689019502594194317838109403807195929810689265534646909754102287732147043740875193656355878999760496104150937953374050901307962204008945876170270752740094702597198992693600664373497020330401531334750080750824170179076407119959991799742507517464841190722345263238056132865144493847274703700999897375462871124714572089354441748651455609497461051468300282767944986747805197794989757753330700360614074204194174671492568747286633980023899169991032437395747203783406134997109033159841119244814107593504859502604573954693519305660218633916912940732808430712651277341742380179217076047357977518899863779690723279709696918909217706143549809422415874409609346138358427956911782932926369382188954999834281227813467789735553264161677721699645563739619797558062580931529430879201042996455106866600140955833679872932939465692318559440363567088903215093065754471804162213980688502192022405196378036553375340289002402558411993148383129573708166761268512219035487393810596863354816935902727937384104828287281348427668924946948868207736040999593819035404194646855244126755763541626415609181889825132040279034077491308356371666080942236990937035408362510554133142849323723605634942365139726905664558845581916117372980034433399343273823223379046006942485950958319449777667277238527682368723667692981093501122201119021682816429564585130915095391327745532277182312922227556305895199059668038249383232472807095993564803122422057609947860872529562100310400344038510964281763362695428649872378420821081727950329738084260548929526565613631597447103493175696132868278053866225409346745668031733550254490789730578086997503395087213734463950416576336285273081181504559235709957989448170372043055827464367941100415991937794424729971772837587352878937125630239656134714156239742391911829029069759849035051477739294260703636873624786879322604760803721839274766642001724108084335774845752046694999648781422294041966586184200010426564215998015909799024317061922749745478042186615761260835723901383186575931318549987474731923118492080473984485310383103606056614157683213746552865039305372806148962624180477403437512808353588365427686654843713735240619566022987975245464428565258156403571123416648366627229398567148762852406856027596755932355923371474191052692600096156867734409228421536359728553174172183427510165068331330234766206900644780818879764231493019271961659348658166824199457303561801172166593093966990221354651693098610862036660043019919177626696866633555809715232118498835350547901845018833332101284540790492024169894398134097769205204590074472359344157179429037644813874828891335583668257724230956974687591367881820823430517774866194865639924245644043094201713604507327981357186586666774983971390887883723715616673916295312343965759659620094751708014298736124331420153387207239139303888745242375269398094984322823151233174080354097644803566134552668514480282372914191031833750791888746136681982282127984824337032836241508675680880204118541454504931035562440828433376363292263283457263323703715196451753866659741135813667691403058332332804021304823844622239842262612721077342737208802881534688666421296190452397928297737631645282172671493281689079051074211005456709265878131586131358693904260767918641881178246063493729803566999280144109858831847189456074137252569674086128297232519839069829423675903207401102780911397624274107367435667550560726817778173523868958349984443608934192740487339229233657484856981953612057603455918423358796662343978337397956465460756618697386042338346395780223270828966528447171234864134082727383167090216378024413185637589560003434459436653062748261938117026322835806750297646397317863995302604994312084431898278029577139317224888556344564664720502966302236048173113339248828113525563929862948690297598058594765677066991515106270991014365820389744884394631713666363876232648718342181201705551794730947891471143729184782681971850367724974603657208489507957901026936218357568814670163993148524721879331857948017135364270420664575495411177243923149975005299406284729333258084020947717684660148838468531717522677827423842340198325384335890767260060066052209140992618624173264260481940318228102175448377781425676921773041926093975005994988737710843420091530438388767019755724466026807903464912715158852299874740699686125494461690990473539058821406791420577011674574511086996850198723848539242866309009967448756556326075204947471765108373346780660341599911763311943273802234445149303483427488283444440816257356873178604003263082489014418237380940212537955442384183800777157087532198306378973227913980676517896206388094753425816970257590729897728937898213858658052699818478859582511457590934335653161748689464241992815178398571361605152336062329492946410903503755988856891669376230041924459838008690965883943104915979020385178599694937521049944640690636733587298223247344024702471705978444523585338329675807318526081719813279102823641596625834180828419702418764766618831559739815719871656559077752380722590286515358009221328573887051625729820857053977213453995529794162428584920510402057952322066958126271521525067850402606892235177903585516917812711254794231261437341717659130700483546150512421882355349376830255875070686026190091336653964670630526020003129344461309797078686800802352707547994977166594092483807945265678458221378942639327347044683418284933036871865883609076070550168133109497105566533526487613551947136567242298473343514948988939647906249282336096731678857062787545238531098697209898997962618222952367280095224126272876053925853236265642907047648690988767188699298552655628792099824811802718202128999331478160246958943001394688647113104749473195582712469476821983191661763707086036792650104048320985782161672641556975969399881295431417340432063978060907679991370280127788584493092115421013932691812979491685328092323259777446349835682207344697349253758556971472574279355817800237774753097248888339551391172566413399175039348875215365619509494670974015092907995239973110231542525771837119676598749551635749791334641626402040302409056609465908922827035105474548667239346051602154471544404896496610691600615121040063497373864269380609450737030423869724412160182269072355212138023772130250202458972826804525630605731965213617581613252159672179819054786529559502042017494459904757668588406222350841741177266011060636479281066858776321239139751936074477583959403865330244318305795746301573408643530996634246527550730803397032048868386945809592970338016859555321577202529932118569501726439484666569776767005903917578422116887341269372471538578123743603681236260421338201117008736993732317615333967215093951282638465056120803748788647868711438048317783015644488740045900761387239449073200741616605227322206189507230717831961590818977868524875760745920787687876952431714118467794746937682020990587713183662619218786292165037918202580061916765779823267099629866152316144877954678415405910746562704501638596132419251639421461106482597423798634820189702467153612675624449543230303493720597961800450491533875382063412246995043834195786156023980754434442588942983568982727079693587343896670169361835387937564312192631226887554859374129609690205356943936327267199046605768311698974268693511261770718014361055531751540863119112941710934012929513602082004273013728048984198425299940698301455269035409733339605184806645753285715143228140535044595764966905691376782473726930510779856861100671631481912270075601407726909333689913521511806914649071707878165961502982649702302426998905943082520850021246447168915941904249529588687596365659756484469108362769546692273578188613700409799538057071875257673905377000956904062686712845816026461462100354257574703214363482354045066992869358386184828974831735506748118704364204630047980058033094187579537056282649020852730825659376579704783019212873358101559645393375059352533594942565722091471045415473832973882573504509564496739874741318372047560926831415247851198466173752899460804345974035647595025975976710432749129199973815729676772664135025549987443889347347316751497501135682217957276925823702444041499093752257694015659857692140306261151888101334682993721583822360190217918832649594783987720176946662257219689090400088017350522294525032890559955490833705405824756769530501605566687715424648621396781783835400991475060497464534356564065496663238813496857721081937119366254961008782564050426784372356425200596719939736304189703475056693572749741784483550490001821405238325621676562978457739639684318516938832278509198959789447662536776427469956541251353757829784841593458579154534515120374348640321669307951083539227123543723803629556923047760854590623471489291673600357684111823865767392088116980935087907201899516649715673278020825630430499674063248164980241838264370061983179305136378934754582048033395367729929346251826931073084092302619920020034320747908668944754043754932877618899231789492485234045921448130043651956567206095290717277036815330080618726788192263057504693330510672022176299825728873425138456464903375792271180322146853362825260457785456826357908864456637928845492483489906509058386122241164793416519979058522610424730966130518635071724210144423272949323462424263073801070520435619977999114838682129806992554234078037264338345687492094881929850185795101943643398390033243736589836340381865453481366889059869982748779485864278954565609697206571883090326874933526861259812887555061629162055893046753630513873613322755693332549555440022513067596727028643486102927350479732560110407269938909783288356621589033309526525103553969709502729973080553522221647407789691414360190542432014240984537431768695621952797312047603035604417681766620209358036064981645394400308755956076463194042788668467940277151732595467770009209239313950808837098432453459914852659062918043022550251227556730750948659231219054283266945172391048279384367057292974433374621911337935077203895389261740585400836781759172302919463755809323021523162227069572207614311602212387494655243678982791065363264890923575174376393353718750266588461230877784965392746709233258154432942874697837346360309042780190683196270883341734956176559234323028488439706880868305709312660901014118766477981886764443096832020133606222227934345203190997452781866179340023251845519107921896118650422927620088164276145597430659474580305157190263591874645756483654033308770409278198771873076632135108147230633845988489988596251099969311686671701102585998823675288818006968960800803942269216647763942233176638484847489723018308411719350932594448306800381574460236615004612126348231112924549498934736337661575524283920820222599733541343163295663955070009514621657977430082859410185697441577759233587892749403642528987593412835816864892379792547002894133604872860983983013105130916670608770467906373955349396378593407103450914928727778156670620738169305463363334853903728916213259476244267455426205109380016769667357764252526024801325681535025401454025963649060763074265415367658886380269184926417288802109902884446217474508536486485023549898353373027853764142523837491769982961839560453839981324769908919947392312325325171460771837433421123816308372073653374181604755639924830071753822250460667664482615479474927187204694182839669316965378366264476011912118522620524922386566432716663796478828357039115129825273106957577863262127614560818628254559806109888412837061446894053324224431985134900393752497211087922784663712423120934256418791921748983268699613126113674222571979619966947462046947760814250611667705237722722590238180968419941008306048955723386195386729163841012013914682642838914814149918881038329554647603314449618124634549003102475166823341050402067207318199852389639224632845992949055205193164391955750168425609843048925576122382292470044798595672339552730437762980768984694278832331576949631277864457804166009548929956405726839303320549722724294755529848695787835105413383360441348885137779675786229244789096759281476354206236973513767179105296231825372321201247360942621418361662611988706527071213297545719572011254830972609688674987371794907454243346969426930887312672392939567142711038905841395049534417992044370941665382655396155839430519060645868881496054606154616530527001549762578974155168468834876543268935368150070188749075200792254125036699767986941835988836790704096398920520155509839080460025903734743362480131801973251833204439180669465822619996418456916992519776050730820607753185459705188676885797363395436401901361067714204159467614016839408093960741891260728645953009535696045470837371979743051635070957884016349666642835800422375144380170587439062595276535144698882370957600878875622054123670149384813092227662665921567493310342434442245799692883768179724118232065327343867805952444328753944880442443460209380744145696145619438473454980472548233881359049034410358433346120765309589737426071919696674268531339710568125897665985287618695980013311552401544775015309362428498973273309479057277012485219740256657574888908046060110413581488298424126796515451087619867265372163218025646555769737338903925601526043021942038380120946859283678319025731804033429410587950713200465997403529821262641242960245729345710222508718670561973365692878011827263221098464528406032756077521301973153798568786881086221766971764291521714546680532456675183252800349426586068867188316409990910909919414268863800904406375228338061793258374431366743263701508301986177371159569809056490713452132263290463038912054442347604038270993102928695319646858400865322011270526281855617403581660807249659669483158711444674374311558141278529030187829023586625304888461843257205977717109845459660051566660543787748822959034106394512484286176283775740132210175946880091254414621921264090747182524775728785346771796696367772847074643250093862974915183543604941286724667186132337636108095593833894792687075941215154669319456084263384917548843293336959412270765464969942058007074424139860552398993611131959025458568340872139218449039511360371427895851367836413223431607774087860757440142591323484820001565899843886706553654574807643196086892448179149854485200104899871397940113584370333840364328666618440760578266977207407065978540948856002314292358159736655166614590322902291451159092181098544163398216109656319043085518211214792276899864483421274324731799153646932322247538414666975172976425520335176971365568744599867621306035652925979749038005969508553596733871306763674603280898268301082120212095380355249517996142224361691199591601969806213948666253673754224253447013822622286856940930341853781509989477849269661532012520558314238615371418327598105973305752157182403073065809281637416626669346511198569534799130138114340157051085940975128680741076861344610522271404052042508126663658809464366868133415100198965846219828228831948677662487289297092165994624861237196116672684126077436938594870405480697106752591248422715631284575089769236581061548954118453098195656563267933720564297265222726878172672275072733643992235060098606963630543244060749701747860093266874516676959192776040211292152573540211154075874084442466965129119528407744415373598793436194276390480424364861962609548380396629802939427110553408109025697177368261324865475897177285971555942956427168201939990901096006074006808927446577935109282477476662770443538563119040756950285002064417109324109767363830788278025618878579614942964460036278075356841312311568391520805115288735581367084568821728987054997556996899719887320290591926405455559557505824200192067793847222424885818112140300976899296921590540642691439033906903236232411292524913042451688963003492689604471287780823131377904547184317834209599421848653037204290792605054300272911156066657733795332370493159073697369204160606711552285819287645878226266524306364607623624415136512248812608871041885779123632005873092603614939994418323448035967346373966856765606677926771893341812873024791089536470268001695296856505691081506926340472704295582462765056472335114659310553226734982087272694301777989491036636161868968471810909316680857223628250451487774781993423041416899265944575661195484621589027812811111169532036834093341171060727599345373807660206426516391248944848302448628626988850896334503890535680055175409142772672954967770393924860657520950095276924266286935410769646552928618925490330941642729957672830150836905149785958111220571330397229599585247299010520920304864334115174391821659664698846290518011487045981572206464511985014479068894823149521319932050310654492214861726472860848327448780228268997223610907666870431419915421930981543984107317335727680552989333161074233121469754030474241306388707176138588741248388947036913737555055820299779217201816978606169565469273572347451521648461894213631727031997953145928285492720193728320552026383291601602311431059375200017688289480784123842567558117337485832521407084414793535034600217342345910520145866126025560094208665606276109456237381143710715086472256705413452724023826500987611510661913362666684164508830690321043471273726159893755273651581619622732335027359497772532623957593591278009120124537754075471955240346877204079224063788500137683567300381037617988890250677622792903669271628869089611946084445090256976780501286968431310332988743897737047121465527448688978936550837672459691936709664121825726473460125729017762108244821040943812584973827821295624089729984757864617587225443788871498847285706661480022724008521603142820612201753469445121583102505103221389800844482019417591061281360707216869352357365500158429465590567257595049946018279193217006378301744051809057956015198251044184232308064824984549003073569035384879441518847590018548415663660301377312731896955198260263600561899965219554711556749814552149519235271160041316152186520021331064819261314807587104564990794343610306576330494234595899435435008389626955252701535878101617958703787322345641498678094410278983461276508690694807398571376192217532523993599766780386580731324649433210019217883800802158963044389920849300507671435096942600227073137035386380595742728117364816675294058998164967879682372022477711895903753129568755824452261677590775133219180457289092673557510877671175093565321742739377187848555533053162538203410994479005291167416652940217500465165531505019066361394401295783843729605887880807381434188705088226181704840092460960551595919398226316088808572049978369566196141009073945735721255807655800588135178807411620804066876448061423634418853154178745014379383600483252095680764467879317371085013417137169225649495255888139922799767645959721931190390037452260610223118810228146981405836192998615572223682539489260003106329303479429467126433765831527739405380365346462741549632238276329040693326849582053607229483244067659107230825882249092912369118262790638656263326247811414388256974872562785513472141046786659014806352274643945512758504287976152724460389252997499126213313456638548129785591846626220758978739942182194422116271772947012448132695946775499031706174013101200271419931284850874501407152417474592089083343947503184637184844257816510783567755146127385887601540323951446478107115301860056393977133024477233101525337805616727352991810799532974725617875615723832608402666775752131334576654937064080192933869215935849208928538398109743867029940594015685619248001887544735242158759469277441107477028752954622179296622163982047849030864013997466639383777115473170295897181142281077874166068909204168042663835379988280869337485613115813571978834458614592730601183261688360793898846694367268010647021986349629808130118073478974315732632837611133807258881326930536447897788322006235768110404290616390598272628241895980265152043621131841362878160373475145002666747362748125776347566007032700827144011423711024473068437826767764124813958870202805300904426820708295360144992086318733671541424739030836209059454165606832705507635396557620243500498896674833092432045521725821947494948112317452200797082483088294068533920016388204787745244131992121067397790350663299753125771448324835341046895971534164281814941634258265973395359660372755877261575924891052019726265629891460105679302177356675668738674092233051246186916923329010730309578888152760845401442205113173774603026269067705801390772250613985279021476793826562288299950522079247585197547172333430477826015571607976812099588190374176085771796465466964565143852103055163353731660583750802584819013063494400369869691379309640142429297955105817636993992499303951529617071751594893506799372870022616245381029873766366236046684657006426938174191738046616217112365331049221233370815811181401669546279186649473038280781433653544594217289620990338907065869111542754356729446970913231282245112643849764579605709605389612869891886832157172866882067710062967687262953954723868461547851940672309540952939065541211894721155937715635770659446745025451661966143701561536750567587010636710333173867160587223729904920308385872612333404053729466909191790037409644672674150683612712066123846613170266030221074461137409615529138062826908332884082550658021151835668696526145616059047253351362772145054991625358474144337659006308127473424907759997441671700874997272372213040232052144513039110352923193250289204188325966673400425941779002119875251395099647139656565262618861965284648450427487973883604838375054153405330687215990946447089332260015428042993178574468048459248439567884939795229161991244720358223493756751042033701358928660294124905436257874596757006506756880333098443231314649682723116191344266087139411037034886337015051825614174554941509364713525402544103465523483247052064349508301214702569556770314084709349485396735804204298760862467725444761041448294917648837225112889979501908444440160596027289572941431187112706396307214181187026030713750445017348397625157672583631382662315943405596260126795622848309386197228991350870688423921599128320861260833209153060409468864311301652668404532924088754309734516375609467040750757817461946294750047180375951954874547261103416840766561944994413054504585635809416202611128493765709381097354287896117275153380246767418163036993317061661876016251913400186760464931840632021601212478286028749364417977952572249590755856891181424314222610662638109429675109045353248434601403915952662135725926352850638790856332313045227426623018681801087766898033134668711090674526502017278967012895944235816882311915173164941748531629570410167160877574378953694952434296572894501275533784193036958214371404381442172883921934966639854651280530472332063627207310281287959431247475313814946375912828144773372324718471377715227477130912126624906708589906915106476884467047658629012466127454062602790084743008927178791464860100286123668070883188269305820938135465309935885766377206499789157915067479937834275662674481742852020132353740417835157963161971552590944557538712732083200198751695724882284217087579700877023053137430322953318921203775473503677514076822300112956951658805589462973414210510527294326966989409155059380321926394669164705437927494338762312915325332821790191192846549749879004043384668059792285621061573439030724164408396655322674809599668881316947395599913931541431785967453628943025120925871745204057378352732194043232090265965219494330415015976350271087554950594474971101465335394120916270499005254937953539659878576875262903867420413426025708499427970167118489591466883930493661383517190823821656875872773583647316804861286820515322022832331571053885601029965792440599626632566074830233496266738325540951785637702698788476878569434183882224465981125151177620734684663433721262685350176594025749762388534857783713354430078793223514904458119635347368126235258270938198996200671932621029094467597509428604819677808035404895296298982359751597632972375248631493912134867714507389430597177576130074691093012428859565240853271588653152196112001409186538021316462775054456528632608496940499090660604233801505481706723580553950994092352536686497673033031340665094800668106152155231221045225260260074002397667420824845448855737362030522504221973463276477656758190651334192218521972842474606680065776986238745566179549520981539240561808562833073290357614195223392360595823204910548574939816785071519791839578249981116234601411012425358967760950424679925462547826553526121071728008021289218342981013878874190817929270382151036661944282013612143801578903304249281869239470084560445739664558061973245164665135820813767333024053272297184970692574273993780657685565248215612129056242926600491491551048963298519870423277249429929466448973368719221859146504209132542408720392610137796199676576066214206285308074086374805661222195376055352020924455309166266174970013582773620593264243704636501144228500165529791830463256814784561596116680326200402425843606446402649154276915123284942444086762415027185573677813854011028885410710872986822686883848053502293238062677225447650842305017113406975374529006099259159663027727776369791874496620568687590673004987545547495814664260800909380781340458883768053010225295714385649773812094348534432206747848317856947593299879806962255108850368174961817478990588484027751233739883984696397945215163603737609766315817094518815604986535897103897150371319496448894634443232104912743674090441205603489589327970682643819470400550678023701000864066596899812573528034615352915171324169404525983983037179096504647524262257243921950218556447939283703373081236222405849129723561600855681583894470120434471112006627502358890490978233331663555600652130070916047289421602322080357699735643957309137799917424799623968301117400525376027719955408526082272699053749199680432562844477921071698995794638401492928859061191307979645879165280642324572590215241982580187946852088328387853620653512435004686429330007566893148989074192769480384870734785985275072084722881881355274708636595555693430111285066977177951058488288940620960379752241930675783665760309262625628729137790934662212013283158178740259370405678659487560143449206240502660297533266828689861640315534179644184009343041600650504092397162337429589614737541099965968606199603136065257131717405761496842421854137010554207318403201277052012020185385764830515755441551366465411509350132789772953381985915081917185135526428991984518364214746200200591764341114658192350985430174197883086354177823762538918331495232949014582444925115196274167318506482175162198531427024825407920989623649177962824539530788986582012499214839691240698218147653061060990324083731668868486702153877217646025204052026033808351056056849599407947473147644862886926006832027497501371157223260548298177271904127232904621198972987508290103374649012242476209541243571582341539633943839636344072500241291156023556845024670974803753733378708371904442867818033623773844182566596743790633200805920634898022583528730508967225259173676405493412953342459484420523299243374138211629089271009204579304183101546619035986972699153775961966686507157086377865494457560524015085413877688469120267370194138971660006077359622947495932841807957250538799302256294139873640028326644294719954553478366333475935736745255242196312383499424786437153922510308519519535795101242570933454486045871229327491169535610908466442821094498385532230528969098844571909534526512403464876418036334833048309193628056632870417036770361144529628395870973130074504951622195510010069106235519652218641190426713884531505533643147210134382221033340784431043878129458672301707528795501472626274412175251055847562424508820145145673616205019075736073400093559719998297372840353611886123822048004676589769415362566794780257864659347158885443096443474164321149658497131984055268487280987202017798801167041285947447174628341434900280202754003427860186517358243610121534109654839213515964226239536885886028127262993587653950178827755312984285686261317997488901376941981017356389606900708706319277049064090005991109181313645275114681540611011997575126764029587421232499552665765601665863228490528789083744045034802731538506163805910134569527525284789681468715919955508106570163046438999982282244692995604477375798126883733342012365948438464896318715713388634996151654286171269340581756795347436098562262005725146186759917390654646346453256887029242389015902085183102555176927596289908957552555979409485043341300485911573288444550831780148073746917692755438613455417844458985545201221002682559157691179313325919590319582591996443738797704963718746613099798237193468365193915041333084991566104439972398000469203162640164926129109931248099912076270954483899351784017314328001130123245319402811618460953200864138706109332935218263118439521784008273014315732649805796771096626544008233384126840405559071082067929009179829969564912330476061391889004431121192322263678446896552524338248410329569866669990028653225521814099953171940078328841764983780528983648184593835833705033336694576616934139695888967070190678923699598028982102142568306798768025726764029873864898079187110156553693089875311488367362309422121784818947058848044620729998266952688612331895995366236940409619797131604432933576984697256372383272886912023446342496699182458022428183718325707262239790845343553813117368634317759883356091021823020068062132344196626745128720958164823046444848888209324454462152272798197246698196515611472123167046596063266312794053513780558582677576957368209481332054990021153022915988618499405659908581553446777990644333820311412959070202843372675905803534848623246937785922144787882917251609329474616124170408173524337560648159173979868514860945646493477291120549878522679490921739513118123310529907449980894416987922799612592662107670455539195231746853606028361310233737168018375602239647951877964916406747605757445374437558358059182224491482041150287692700566733039062272521526202751208087914348653539658417278252494403347140219641368347631840891825006713245350111036775259325491539808286413966344288674615007471995601060947962809544227804567583293078690961832647830053363612831242194388905271196252684708212262851338769235358368929488216041863227053955634446958363275778586851697436192592754864666908781958246487493961438683970522839129485119560981425810512552669602203331396909876823178855528934938874861717316507608030171892072266119332670364797750749809451711240440128524561649173755619918808166815764563912490591577105042811709273850051619366792820896798834134645715833552404919699009996063175979519584719636293912390617845925898141683355243582040993721283361762687839611957069735882594731433328799254471791517858733087543752453640230724854806859836496902328652935171726274742137391029145219958272915070486808387422547292305433715910196320362801495446510537801321724809680105067421126516698519501690949719556669581828373176977747294913725118489806130728396426466094705545819232549733800612190757797376417097071326503466103153472263412409326569821817043472693312070041308176874383756012716056823499939746925798099991788637013123297735337236792766626127930312042000391621302239630428474443731866195394577903773390902265230380312601537698313240515300881860398169397490639377339844499492578169635520203290049779058106399015750528463274850002097756746571514914724609977354779801526490901199867988122803098089077005335476916586402858270408524054030707723270230482288658953939100731957752521508064059913921397333924560870527177579889775563470139542306293298777926760538126609784128953611694942629714291866807425193952313787938539816227749351142047043293001651843231693041532521867247299118757507980229614314804935817250902346562068726761441574292829294787768921758789629809034906895925959591452310511294498225932955303209255184630588540332736262202709501790600577279479221931209669688644811667269572109951558197605100011900624652123153746554299989607562812250082858802871782186731908985207497431998793295041510932793706037790545030239434428283285709004942962470727113176844176140367578066247115124649102310079476270025175119782360296995057925744464721807309966417592754417842479974867718369978461308223895473932128976115944118447054992077899568084900982032909431280555091070251301040959510737446623025051333173029021524970803283599958351233598031862034628903902062744994298794411198412454151262057039012033947916377291225263537592597479892957586891253077348062248344430341852362443163329282973086640141684175696168743987463892616529149185408362013015861008726408399696320426855601801066322634740057180765099912877037108879224577621710505161125422630960598369232128983633049923049306798186096007586031268995355442996254772044459687251217913758554093451259689412716583814008961572876051703820737747312440346294813769383629514504549562804400564441599652961076818179073026812408868267539018778729252071305585525077862587868188812389474051922701745127139430473681244933431550392764083694948666806986194250007741379359657400184485000992352446768815803904408478200438837595702458184202486865985340094223017470440576914831522030772537447378761065891506750139912091108342921726832133390842687373784984113610421610461474292175926794101095911918407501558082779234734326735763690954960691361738142083171201274893974122195586250790302721444901530840736890744288981859753952112419384710080235120132088145338261924921234009145408591763122985086425787545587920934923280227185549292335514988303756996078955157402926190398393594042570842996905907672185203737033929408261533270469815897456132601716630323525473616881960345201893313942591244370104905083246065845366678524458726199617912681035491742013265591686039146987452028601242869503301937905727357130556356822305109949706228653748984677322319153576633969906459852784155552336757718052527521154840265459031998471388770161616183490172093361760520571208660928663876027140255978132898950117099880571560984457817500770137018342407407622610369719972836138957127656485781045747254940236711910198523674920496055973754535438290531372491637178103362371640130196924663839868314806896336262173173194704147168750473430977830478083689239586437436260501739464949591865971010281172824763537144945066168744433282877848060099066666539919337819859969476082216032092883330013262609836875797239320652692899477351383655684365270088365854077891922583407887899683448338860961023498837773818338660160109507829451987634014644562091544870244339918313906623624082899051471491302982234177572807575906716476138446055505297072741728465143729354989181862592822620114268394120866380127537360498983005542302619804015721132182873966211547572903170730622194517318790853754570020165863483540646824628843929173672534106622190592502924400630902524172428752156824198194964325543724344533235970171276422783642365552981532794791515935670651501767288271826322321368954966014287012263613503160569659710222661805077898803165931792851599717877434474133682007486987164105823454305731579709177721878883708857503363238916738846733739080868090477198889115525510876608711599064569692961350896483304243954188299540481389842904541935093805579248443543845083307477290159866974128135344026838729755123832892547709131766696330853584286333719383760141443837091278093292723621194182569278689492574447812660417335543901555936285918573595733522375459902840920743410710881707728713300360700754115744344873776801774043134155553467576460299215771465310668075449203255301300272727199108437169017558780237503546317054917406483341232813690676207733286439839660002706756204166946784285158159790462962725726356800427502169022285583777872076798220530940525681967057068085646822129560149651773779273809028478643382147214759188794292500194092957553801516785499262245959364621710843654431410994234554056463676893350956013236430804851428343543008293869752148413559044184197554473519059032828700519768708824447319712305371764117932492146480702663124850172411359025213462445178523603454805088513661538914675767865233894932427525434597322788120879459629501119150287202789281148800329548368006304672445275981714279126672179580128426181163602699626676552051206970181108221390860170386120932928919814411140446845933605952080174804220615350394640819868068535294839336190553264672621013799726005831245335607797574498370144687686179761138508782232554904963146936857994964187281951363956923854968162002523485752074306300344134677504867003938908680528431062833829307750234883679373914461424701946196716525829415317967355114874011869885740685739194479143476553409023035752916749203332614820769349267972963599624625786042467959493616812462022747684678180432383054444322511100334477773576165162258976978442824209289263568213273421539296166146057467290375766209922459307508327836140477281086163253916224388740788987552259696467199994721966185705730838287081266271544132498114130045782427732413332110998624851234688887971111909458072370344242813309080646264077134265538829492048886634179715030709410081936604355119976909468456227113035694638214791984183004356690611947833706361669789825709459309369101150485767976922547494788398473793750386059698747431095974309421854212898372979497799472736842723016822811225967294664538698136489655331438792073502185726127967864667857085023509722204999056753702848403198167927604004006755794621524106382757213402187920175188724344511597424136810479511516186133348195523471812114368444516863493515389640206920206030882679887242521076844861762884692609785723673222167585346265906317446349170339918516139093084122642658903700839666700914686841453716255802634151533800483754116866351841664460063400354101104643931986746280458724684403692310531539759133894373672333043332631764859697795044250663311510561815980630233692149498638232193865013074684429260370199171712579320575308095189053615215157587162674897778912846252896593256648559903645579245341250634227238838848151806451816027304943396411830022154886581437150493131256838347351759301109566018248565910213638030080164097844725163991717627453387338152927521367060100864412588137895001229861268379345473176226789452637296782398399979212984650619394203101015964196550958179575747856137088579105419690494883814508980979605686719403538134000793781502030566208302092225762088115198037570099859225573232397443527575266128683006980234099152959449263513974026603566738519987640498507682453078569126619168248233077167298185136055973178003765624001108504555192870203542324726334319423287053073989956041177049493005254854757422290999573297189902836472120028730331646023901295105406771228019267994076967144968069984889145664611093293835419393006709410106938504704783722219928177133694597188606351771130901509410685242001944198818384984404861056400314835740545520654971919066471886256179809595876107453551641337266865798461319950598845092593897649297570421011492172220410613610704723096170369283037480302929505981501609908318122069390085694813656403237330042850102092861555874044901220554203385445445322846778585947538789076144836032442900326727718614184703539756635246197146215783162038455017338427001478282473520904163925469691444026638965713275349273934943872432803247503657424712834329079097253156791712829562967542621670953608457923753581977689315977497452374184349045741201636044469929851540505844317245947128678897152642325102503505750384544244389984044690829231904213921173727969399917349367413747809890813765417252542128563680877789334136880580576705286344792484406451560096875002696771355729269415933190926532535965220376536861348308494787140538095003777473600208089980725318226928905998587667413112868050844796056101688226493543583852034094904461818122362954287560255176597128062734029934797950130504874496274829053577613136181952548100039486034026702904918768891705344049881242552342623484165054652551665470492489397793412210205304920277275688729895469253441651645193574190715095145473786642244693033999681535683326601829857976023775472171691114601596657556486964141932709327234746695406362032774592877238409398489255062164340647243533408614000965793827393991886668954312804922391812119640181474424769094206493233639769153383790736225197635507396899446103698021637666878041480762140807164949790520705270222347716312419761180111571221879337299394041941134602618469792829112684311296916320966753181138522434793988241958910903282962470390325471639867005905084419987541324664999121063213593892170862430670685006674744590761040437037951888462459722021670245986673226828227617725876184953930199724319663353526087477074071872840195858693460824405180041454525225874470808012909106824021001998136704349901149783964883976032949759192513082955002127999724061462201674334341189956181121859419805025348326093932091630339447344930867073630917339541107176314478703265498067835301004701818305563384521502435888275216814924427093099511177580426577506797038505116677749553860213827498147683142676840841710636311113329797910763315667374974797731248401670994259116411456159786849809809227002784378841214887649307829425389670492810404960226355685318164603982798899124843871886167107577065384323981991817972955453633308062578060557924725185252787148488951275066457598743084096427605135034732912238465621597391416908548137076330482118111341207379162126919087659360911614858894888578143159605742114793914338502940690245815730218912120969788194022458422698577936669740132606442412267608752437127138806363413625989004023087023994650308841994694022866014626467865830096622241299487751241726700834185000786570363707589844484037691988427504925933873830589521767345164075681569600647398858197223154973795193277233749102744665142122721236245621618078189551215017403273545708978313167880560642808710442160217985632074980219527421177990320668941219099165201345080399801516434039580602934535406253723030036635436368998933582086700010867728695310214396365582996440943900323148866467333472360805367883335989665458633145975929489583855910107717340604955043479523740568165442598128126816639780812158716314489218330876592781240898514625409741323865665677599789151664932633964508147069558408324002662871680206517429555281889081712768874637192313897798789461663917020908503627363304872282716364265486690355379643218602101070744505580727319475684509472810407866450861565189324831206583537206144201571884852053623989804667766426163161494362443333074286101836516438234020592868256448827365221804137974116264232675616432696139689479336207637289604518310386812614127808564758284047507318120792333170376650692227660654679557721771726864275670489032064543542372721355863272661018503540729749460101303383790397991908825940977615141062958217078821127296800002867413623065321193061144334636811057269730889461970466738936048502661514697171181216390515181078502804981584302496441147279194019831632195490968299250320468620940781801430451975375185520809046133166274288114344935263556988722251502170762181975531235498589751625961144659804753127647468457540054934521354281419355171153762191160977053022877663642715891119213490186194001324112431840793570036681595897901129742812896612532619610139444406089932118748783051629180076133743150224654479151959920217134192823845578338289947396576490477484590264005575524634418406493251260710643361929241508516903380401919012646969181054727796736080069957799187327105393279868966185872685044555279467993602579967071973373238702992854465049832273116278419067504138502714253828790648719929602294055988538729700959131890372445274484663582649819248787595686418615679035150460502093088941537667654045586818346862379212233292403287498477884452262022156818801478275763045323013629005332834837208228617297797939281744198089653322750611559184664903293068335111907567673285077013270222586157458116529852485784374217660146636048720533359506294999263947698373053068631626595348970668667736681976355937222434363507280443565499071913181451921630204419720056726130791858907749053921251811460256099315773071075945158484231891959314789458073258410089677615202799531709967687728409682976813588947434838982698035984060944370832598622182782079952444399830333947598479630015301818450523764718519000148952295595705234309529024829230879329466989763673731888106695383441824627233870090623951737961688674426973488605708305101027658286820165493310230936029205094565110716476825530875830394248726027751583747922495404633722675532277864816018196759451107320057616973243136594896686643196182070520951229025961981142419512749160363149248282226989921925542841167306180931139159736382414977496679923355318324378436530107840563276394885461349248630487107942357844807526888389173752944450219204941285205663706037082166805803730675804410321404864171995843078855786041527531577568625986931666586072010029500701976584667571468737308799159708515314255960542478273500889829549484103700753638813695999715130819317396117600324166951455779003289642121796191430288267596692608851348700016956975505253306211940597641543404036521452972253301351045981081983183544703946351600816433175103653513495121031951969560126124211026851546026617684405485260270928195191540500656781872104786277369242648099045601636630321710452758521242265023101889248982528047212765322059859726628529793680260171932609253234907724678265907726739312244883298832520176218691331562337605559773219899446364507700347594774534295353733029283037156448161125406849308797088087978596966422881513587676271805668400186773267084066757784998335313227226632392804147844996637228411073106839438006262109471598750135540191015644691437642286516091818773377228551482939393900768258403547663328859324404810593137884013813506365149419391717916075761089556718590166922359756490970390534834378323752436305976956665922950459507997174360319687466470229597742948736336256796782329062251211998573107629010673890772843233732145163339383991793120998115389098461091070760489686390245061748097384183249382779211318754748799480527136245932794172911282078923157815257530981423731718796593983964312355476644735734477960475814031850801844694037593607870650375305951946386877840456904490436603584847989877275483449168229754218105604511719931528332946111333039756135598033382722736038120139112873364480624292557717000597251161624645175121132992892405918214600422254345876117076295539830689770328879647234224040793774500972345996143503559376194804420908674563028049142392434648682657018996209215741244892781107638287807439165960009602994249023495893697967220062555114618507915734608792103299055253776998179312171582855751673378031672960016894651847644398384228489751519481753021900873280181568628181192786600333111500192007047650130527150298472489353062191437867267066774834990112072935506914515785397414081879065488244803372553519483228540290593135056129655616247267913746022413191626594518881187882623635896821174629988626383457101744488747651762115162965708977313897286592524546638872969479351954850356569587793585780245998688952082051285043156847210364524949896141432674936594836397227468101144568933861465086922174667205638794745014027257471381083163229944181158223561561721117455384935341344774421578743527372085346728405817164847923267644338646100275555025061777711525212870889742158001634443469066804386056254847115027453207493932573176975430621971226177326827488458326610718920135890430930270759271630220101245666688299726575987469879350963957616017090808132674311895574068551919769380990275019406176996570111822260950088236539539186312073681520734920239519344286712117906653510437294297020993011029537437884853290083987839995672081165804889158924759558877884380857120179950783301638993674818791815779792511252624383780146966223061513471034094873325814569245352390328440309780624276032843529196835058435587249264539494066140807827515871750394182172722165187244512558943921997045873292763368713925800030494818808120325624617366852902866719162332695920043366203122660337658588602000167337068178534976891512216968606446478604660366367706733909488439411143389770495734267370098309350210512877661263051452815638752449205296863823306914455773323008899883912307922174579634761562947345970306628815239693124734183246690567695613758756606833623361536080157171882268733841632022105248016553325651114385995318977811483025420170984494662333321944994860542444783099383165806331361381672344676404394248049525739315339892860615719238551622894081420614245236872508480388960172666150916181683144423921538024854825484550815601341973085623301572162140589655315554831046571474857678971320453467316662683348440022355235144217006434769786357237169723318576897384973579472964672359553503952807879945401824216643520115920514426836244216005012692426340535384820291475051000055903743929099604981389271184983876815569625919549023561315347088760205626473119374239024995618623493258802964155807399881066845613975292359837124624794148285626626730460583110559535444928084759551611117113224472134947333986740999471533587345600499810150204724569401150610241327261620104510090342250089537153847096128939812230720240501279065011492760733004949510699693407705030715180885427192708634929393936834280324446931110501492178438782331359464395516273033076724614727908955387644891104462993485920249392420300854134817374256893855494724865262811066799105150795010559966199748978153782543166137645101370210970848000153820794983655170361030288112325531229618520591862309801402212216379771833356594692736493305958842742732924561664619727792044692415370946383744402680337610866361146504386861553285281746454670957432305269866243718766197259709714316362391521408623628507279044731381317134123125161292493182616222698257432213746283474942836813760390365829691792814572705588089375684482647204195485301216853271951319889797631737781963392906892533190344575958430798050180472431357977085407526367111679250574590888310768743502034407260582276220578215703511654688213810617832202188750350665113433125157183969065489613135175786920570340706995919826966011348204346752695116596337477478481028295490434513462110462977802935985623068785679813240072956823113231966871918880976970427606552475771785856828792513528950314352571482379834190116940240998482436471083280826772761680345247884729374920048133370359203801010743597817583004330075671867155602251416614573055249381676672667206309958310754347159249504172780321751632177855382500272416396834118669220331620910229205681264254311979229270327588238771739039787218318441921852743804554595316453608919180802731299324207583886468697466880767363663015090674593730444080607943743234315283851477593709270552854143672527362609663978826552122349643288353162227526695630431599800289540851746559933146434271879997773911048254863484388381318474876243572104727776624334489641780521659670965181532966255707487191904914382133525998407295774857708534727486736990963048057424045082761574156385425073387478504906462395229641358072798417367761804904066561147113452686716805208253861696916217043355801689056994297542879750262198679543259520075820258450205393210719042066959011999066208357038069019576638906101612175222513801192000736421080025497690843030429856928411704647070478680062244265675979193552911457813428500838568268663842244167327968311470240519488779684837404542401705481607083027492355582756551024318909605180130175945885034427904620747462405442196107873576387790937641500096262793401039588229216506633687762000406507493125779157986843998734404418338757543081454170531296674747166337289764976465126832720643276606772585887913409152565444495688687472023645174931733087005232658707582240674284351710614019131171889289004931008331669471088768285930049343496029758061342240486749043247190125615254401065602607072038518880881836029606164572003414164711326384496512982279201244526817683989756321498707055330844356542844604540235325491868402203471723561797318083012506285434132241456088729759825693016858960643198584577214103582451132775078500588369668131539986633024540654206896056673722848896276334079783385503523135657475045232832825052935352385336877377844922428584459169122577547296770318853784689535704484572016956183087070233154150206826690660351763097180556590690978356990739866459362364599973287353231480137200178986495962326374271539898875555329076636712623328893295664360198721813911966925858872190776345954139955045952095562350968130045379415121297276063368271662415285681346728709519453348988954523781989853433447821108193990743541474015631944157805239313737930363255131471724809911412800333474382897400974455678489921203430495498787697124966721452281390515040908813288323346570798186805110967614798052100955863186048126448796113554558979647029304090500398397413486947378348309114942480949927214489292973370328039521403224904079661205478042352257783349739437651857375648852567729794809975098345331100940260101601797868459554957565673371659447195039515019060991939164103213545967571994626821611675175331860161546056481498946190201322459738870027816092339232110857092126783331715101996573999671889681297819390533173247424169182305545097331442137110004892054164790374265570028411772425984645020988466633656965101080091138625638247362147769776674443790857189354992416164781962323560747998661365074307748377248408786500894147654931331378373087936323826565874993264805438120004621254185620386672500146561444539707257519912964849688311724167719232276639888145853947045602896888729413682920366461874056149558691978153535058029466906165899523439871828924739025650744215182565554935443156509974545397144154511888217026401052656707013365844134100258459957664313405051163386805385422589555597899882358204147219508938910858588167498591888689157634062162923617554448799001223590676907517973880231332476513472170075822041799582200474976617993755474742267004236133179924752303707180977065180967966370349726146262871415724798891379947224459690194151415752167713982118871530245013942262873298014220203243051136779268472908583165141853653039946199918200818621238685359617795560850714211547792998061185231288926526656264602657053418723284112988018846802428838080582445370724158940233041899695220351329657776184731434391367143306838552967379856708329185447701664845334206317471284620406623050101223942001561897739149554097142090110341742041418086063868787905537396971725154283074455986731195213315453654581453720802656745050878264604710815445015611189484212463294505228983349777981892819726921605988449672401471341327129225486391682606121464182955839930597111382114229290408256748045076148476125192161387311285500905507969930901958876548898904386474812006472854601592966921925638029603061620246566332393456265731031138957395776658670825613051012561800578709170515826343803006973449736481580480802555654178109948155905086094105344132167448867533224899042832751548542155221972931464788426766381578375884113563662730245369981049193759536130664203032013851437115783931633876667866817723337168128948042621688204182412668763031878726623257881789159500541181043175911701272209733506516452760531537632116714163199228972231650773807651165004414903091503192458749104992301667737198090420209309039816834231952049623731138602324120271479552585604240360720570007194507683232666112487973494194099902846380506974488938224388190402316975883533669785310773715689745334784404220161224880421302641107978437341983420568131665223673239583321028164053837223316908887572739327538080711170441007442083004652967034575471971202386499463479825421052978549136990435170792858695356553557206814948035176468424412485369759342011065318443656727365255945678342956273062288024432983423960253325898167889892104329625319440884360487894166997312941304419969170387076925206248812144264060699880755732361471723526495082440240556019143596185769151835263415363735685015968474825082293192403760672539831749234523692109367478497573516656583399777918020398801067369488693669924651359902053099968403793896084866501813687171886519988721724263402880908506897087381726281652538877142468808377708523177944879421476125052689617263758282575097611166211859676921550148561501459795688247556249013468423525954330487990869470203772327432486863769369802348756092856927877290545596662908616079206597320882459314901539304634560154323170045750372819853765200838123246269963082708672093949280049917544014238474499612308373961169677550428194015511224745095182099352951854378243541099376668230490822940781124490314822454117006995583229050917212264823626119483578308840116372968250998519657352439152571606019140819731949035137637855110437791749290742799308668606270768575917034513934140565676931449248122592213250099094009958427631024455008643911674440582912307393094052016386334790617132499787975675506683070012606933274374054670588423704727894832260074910808310293790645858944370047174579447369953302659566913529451293315530731397993100283312052141202478356654737884814818412714711188178432376747133985653703142228771661500017755288544928151841385964188801765125371016546804715188626441651975755526017746391371939927175153456708551626591292729074193035255897023221916300200093009819802176687894630112706588289145087614267686702374581561873882357395986194559045605081699085006928786271300555461596728163553978031595624928948651077989622772975141749426170957621605021552218253015516427139566762427860833523646157778813636529522887917850106824456566020735131716690898499759762920716162853141792263774630610728055908150495171554358813174438725475080485908536950192363319430383332866957694984459324018991806637254717079008414125010575114573706620182027722124959017912036916443081038955425129163138520777709076595965254345264910076531224959045895419098347325933057520759780427470048559760526354550566260667734103283236148510902274491723477271455238620099819182792985753738474361267072285721127786513361240241030170210876339143810546955964481099907985506936568089814559680491880821951475021027580023893751227038988120625762902826882630319860958457406818925314670331087999328220814310809216018076360912876771158655783572528463566029366895062616190940568348714763117527194795994884659874102005811625249576928441859610785679814036139146399279060804506373552944667704416739723529423357198972406382037276661458252641683600147375361434462084906986836133564981193730419620766644768384408415415614024129849634109480007277165116731296885144705145926868787758755634931334468906343191913583736177237522765003479647145548861498185184894878511371830178326261952684790334826724335703893834181846133568652618463286151411181459250373214215229700334374156755742833093969196018679260374536830591663644560046971644244332728334798641802289237391628658036464313762531939887212545496391035742700893122233241971400022617320137699213771394399720842998205240562691494747626294002092327331036708581636019236915319699885277031161823987203133308479704644622939962169116573585122012629453823181360925268784233860808548476269448666882185699262184349396991141659457844563830382051672284001574697883415478961456603257332873316577480655980633123799240813496123912559762547728335159074059158156346423951328329149790254737283722628457125036795258515644283887963665620485229197048755953799633715956357081499121230655042517617224543195401113648799261369626227031898221960515391669769965274583729337390157133072047073820973320057006448026409375430186459906824379264576956088451477833810824567485804593597709761774236543648249028578244273147900994475040947798717665935702551505116589341186772488154581614819234168828971911267466908276167321655267818435046598107785173232738894964365897960844992519751469604320082968747543219928686173117023538356915825145077320054123225965042961648810920845850892696395846494497113605641645238522460508733180158381086666863195187107180433834522187956042372962985386344175558531892878687548959002845769907890750969063277382442652315250905595379758517434602558215373216341803266797529097714807228735412005853462206259101950695366194887034149979917468860973295489234449212658221443079385195942067906177723255440297345094206256541764550681391122459320702726022269965307930196639194140684986566268096731684424828788957420464329210924211731252999020812131637520489768359966582712577477943478930609491221983401088169411894991297283395718613138517594670481694463254735238034022973465509786729638271134558388938539022972976805504636435430887911001367364751924046920957278157399938355108481892615158667321972238657589918628789760343503374466742011588059492125750589820317591413586920616362511633649425190712524994498118501296250898133767163259444042826285884225845900974591108094953997586853589026841390547301743207353879127959065648563518153735123824954196449257589918544777152271973942078441794880367549734105363448427230352008137943377854714317069117837121568183677112348119886774176124919269860120478323677040046942320076941390053184600237552038295579002822120975687342250159328126313089877434348968603103199491458023612333810813569867093971185153731374153076651880096735422771543171001314342066636563002187430202761682493422907158147493055823784363051488154793225070201429179387699659574073615293921265693762459588973652091631701237365159676240052320434230505014017576382804461272951630837675412814883488855287377990980555034399495571129513843389914049173356000951279817540748412872442784403796009119723749819308382275509649754867202955567468556388000970612657685296019075007293087031390904365740955726334085151816332809752927964960329197939351137518321440801649568954319108370263149752183308702658295633059555236880916288665843691421388060367829280686483102755225088757052677402011787741946405886645936701034890817538443764748467292497481602922241747039012912149601146085144381476524802234367662452686048755604950592954991291673459616864243495859615812205471673768714597651543251443414972303013708547255778748791704183887415768213166229016341930456240040771254287770340401496600203408582977331255494486427211846094939512821837916378814131396513481812499824951944419384171042055729486215739378370523317965927937900703348605583461773611092818323339525480819934946650374001228420979128355392046633633037606247532840051332493181624843803278750910873800495086358458695554924674214080759114078952668675457870648711277806126762731733082226490548596933087741136085661206293490572722520544503775572127946216236916180616524334327684264018568319183300078055869816739213559155255269157330497137844111875824140920679841988298879174385782116484607033117996334954683565967502756251428598434917088363967470972786785123830405024940416998682530657145112107740853728020077493056884910283944816355096672504208622813555976861739686573175323301092643105416812941862823522557134477584871007558987576326360157575821627019888034705946420876746076503378486579587095520717807699422326079549768929437869728224284776372037417945630407936772347338236058431178596472446404866616378618912848222365324732967169952952183978237396526468222345367990103479295499456045921652540619276250216437252629111351239496646054481782981951281201476604683893696463730193719459397670327416593989997547600371922175432044757125836184254543193120066543750809152167952383928932286995347730664136638003985204333841325213445833531075858197787938997828692480468244806236175821276496432229903608329193456633866790387141430063301902993791094635830219687203638173803647390990977631912083842530139989679563740189806033917630630680610885856037194695868661858913762366682461885746930684662399282475294524083770501916529362717865740888632917175154155277109247290136672532045345347552902124992268114977408457300440346487330365551797265247585435139657840246015640476796999917174674328310340311883408303750915097210597954023796230659151739817264599873833591963138243438094801932702311400263913708399302059273839152494169670062774787597158117125754963536382562131753435748843872755838238595108877792167083434789539551731583913464085196541825493509757606932907620667418562877232837422339169491164660345058647182578921479213078230229174187699504105707601476576190755190856086820973346379475548667026153474445058312849905573683642224946392899940093352848126016966978585357713880561303107753432102884173056883683888611129467599139374119607047386915154516378519392737886607577622881729496355410714716280826356739144861696189325045123833809697001714563765096928143581888722439388208602000657040495687209835146560174525878346121322718122481362438601077224729638153650936037861315528274697025695972813669639408628533813246787195118607019504781491617119508929509329864189058552068322243952074528098985338730272535663442636915543762455235710903947869055718167622542753294523156401361053816430642136813694867370169490678506577203099311496737934949453896236001646788792218829007885074874937695788742670893202925641397983001176931922212660399971085697531298947778325975465363685119415266440864785705605446087954893231971085933434003774041067587849360150525974529130568728729757219987140751376940213176294984622050700490822582968218597377839397955211011383639414298744642953660912634963987047450923687642966628557040238415236175376240425742570947903066606789202543436408163959388929805553074105866653072828030609572657904486597095180921002071636608339281703862017690156507777566664830276859246555629224938465480228065628958157631031716276118756018484804051746517426968516946418497276778769043666890615652495959616729427248865851221725500862877862681204367226734078504835684780701243604417896014299096788713013503189430022369532769780731320044584566090227018308390500133178774117481665916366809381856101204017568801276723751562279311210788744751905810494513471571724542292921599048840239542477433208380653031630247227257162459104465763608294366452960398561701795932911749829325170986424700599243571093819164052644879343898642274491833770410487291514021851296926334182007012991579023534332360165786589715772377322198991845980817479523890572902731790577671534709510174080414676397404327123039057108574591667884143135771009237641551635247791852182385968024867089960857795291245283613794794879586711642069152436482913902954698996996802643451217585308689623379359933622457006649250440281668218386097540641865754939800841346056340662219912827331590996182127847973390276803084284357061810018576689038025648157195973980122831407935091935475550318183767971943062676188394663679126312575295683112010366662956854143286149837002783956743561881728444423927572274212648646697246523751230403129003633389855065180841961853152371529197549547113659077544143504895417113243730507146598544803158391253811052983413981422053398035871480748037038048507221051182049332091956415144116617142498430730799421323941654451606504791444652004120461208244318379618502450006794193230187580432803651904803257196278690516858039699251882363527625336128653175444301847493079014745118283990991975517499888991712801889873349470172282269953341352803822447857039325098220241515438034831166280992641731342682780771867752094280368683388177527770462761790184081352575768321070340632370720692076643965765639682704885050613504049503558437391165861226060973008520407889757491655417510165204896277300715010862938582142645721656127682864669039050690914292143978441527602066615420438893260302427001426908505111164883726294311855826639860625639793016222473762243251715133708709256402047930372422339597259642080000022721006227193229894601893627259363816709625867459553329671836201558230105327153553603565761715886818820682550626643632115131587342001924497617039207282374995857371478656216578205539241413337297344592361359416657556829752259192142572582187631642276623593505258561791645530176180870261925508564082887317678335150183607101062945942763955299778733198527109787670384272974252034080985472357288134915856950383236475876472573393614748814585834196658145774918991957750018638317913171065822975384159877272437147935527639997031983563325092307667329299232485074613313154900750635636396269135573710292851461853391708733478802169557531595439511956560520135855344163889032567732384689183583323631659237602837540100439173143712778920231707580771209213581135541504695386552236825848301874395136278204213465931936664882913801486558990033102210068268261257820883210310987423352117238152840203768179087412781334553173486924555201116588107156725792162985094508219165487502753548255678263132130376412286980388946974605411359276457488878099059724800913884362627660538410532569936190472631665223227808641576394392030101426169365130112785216860213198291933475011096704318843425130090497806625506894492271965080617116490596855072574415388936707917979716186375963060559012984769296067220001804627078747474663184249462652482458663261803891074750748282504453847136542091728827691914649964097510493727242600618328018535758442646571610196768535238350357302298283785883180211671511483049742868347525260992007867559601453337985895013663798684271998026169926014077942325184992600365320987581888496238057387824759289045310492334180736810338045168412850796716478058057335465109392178445294054219122004899658096818407918482058029342122498369941420650385395868828881104100106621948501709503099689614504038105874166702232985932786640537517024927245533430574956957474859519342124075010614587907133504137683260988995795360194525099948417835057957508236407155969871150253034014384602388501295326114794952983426643649626233945800000491638953586432079296678395388051025927319464344473719112333596549696641537986150680626340567610269540224785041480603446950446343318783072439201735303147827414446642975736833481086959474401068935290537291168894682596947078447950867617543317714014978399542534992502101149327378768434574668933777948520866822700381195534262302685420758756125327518118606890243457075488409438938036855787646728265627320588715776580096715648449530090876602830749688725146349989309498153155502796762254736514754418635198854830607253217644318593013010672935037649247540514219678641585359581206471341976178353055018747043147346473458518884122368231518253116353458621300027574198420685518119278247473227331779277260927482136016040684532689363189021420960663444791431255556004975829138874114820124002393508065189104922156901845520472237162193283322195867740043397831513122658434315954518725593587354870032937077709909678920190549500328763518458286406965250548845958995400287927607648729808203198090142136715141570958124331197071015304110874988210289785621555464649353873863765547446137778482332957852845829746409139139243796993171341683989737760021935433026248897278290391569727378722189875007821142567981667209127984596973466058315060013395341344072376270861781356760943393759653956282360776539645567325215345860754801727558073100626525844128834110178463413302631512470696207526052406744051030970230518577324297901677344595046465425770242665528508450190910123956655726945263190820879482604621156258749370698266845024134763353677427212470524731141815790879161756859258587821068544315729916027001046329847084095084620982154531024867440735645066279445561948384524176106845733722990654463576101092614523273138100286519356328260646916871389848822795806484070651764048978105828577309895991854031397806676363468877899571207020915611693532555164689475966935294422378458337319082162003251519462104131304664855133498321684600351523304880446010086742190678572932025223483442660342927084462646942186046222017792801857511082991296381153028743351244477240143182059710203550889782348030120856973502862116118795661926220496679968819321731193010001989829695269596619791903749167017377896959752415184215964390756278057684983474034219661208394774680273597923140405077263799698923926423149042465070294977394593890998819865604813247723753960231050061104017128768118098867274580461276358386584836701841527613341380967310772374249251991628406590662758964036995217355260981610353410130060103882585838843997338459257570409836242327310061142281836758430974755898799272393140783705166114659033503743902806407002659726993595395734861885078172261973357361363720878527921631879183515390492990133474274991893745991192638411020015594689056293174649150211794453731325178341780008610675689769535714195251252863445030451394485189018650208131411862024029362471610206962182055533109876241176223639329090159431602804338891089036222071817807614257246353947054694392197708409498644993058797280390281253165345884646667450962193499406269785421555634489776234186981434863654737423673464523136345646633368367820444643475843559080295917137522704782214189491328277599663987703522633652414417046488227840231775869007962817273768479274940426711253217145839749453090077944648376330067054628405416735942220365389782249364738245451968090435285872528516488064557758184383045275693212779535814053687495580914756581192013426478276674115136765767659547303832084961472483466548076687713516596526284442776947930741868490261826434182618767272595048854270978946833197575882439172990304862655278581518482469085954055725646513018444004738605534669045650896657513279951610671922564803125722876934177272473769961032623095545911143804546692600333866274912810370654027260351741248269349352743521746780207526321758238554484962071748218763772827920966773492728479903330394354355327887579788182550678059246857594439520202195092745268519126335280727772895561089298612444686014131864269276325702057821500864018860847534029811797497192281232744767420222962127415698404074521190783019956159277451707062995825155467120410366670646249734470261407127559680909571741958602683422736111318569663952526676819136340315489360203975964087033704442311825322039128615065783130168939570287767404429384874151296560953747019465987828646526442965237531460761187631624021254923759777272648311371479447193726631554539879613554585414329053426138887825132546680607689885958754719899921618227848697649291588004451936821657429588470402306599319435171459466736507347776234554908529967999923271852409876179628991022705452584596531095336332769304181103249943527554851223694324497537666044618883807046609447724105424776479891190339621450992311307282687599628698391266752642761363740170581057477097044361677389329182558814352040788472767683601305457255077719400563073992868031343806651828826858512438835625428031573949126533867485458930233581656156986277333086301154213619297633719122970297320220684346449975204108770022128081991510660817776671489620226308339073135953337722388945838147853879995036326014113629112770974779557908115399486744862539926877565226631193888922713790669292168878748279418665887678650691998550145480481002756363418350990642297735228977058306998809771100345819622985327736749703575249933565876714652763749351145487603578064895211073521755891484339761120462517026871606410530297786642386501872548664227617483543145454549530889713051551734848135381831388718499496082310115045349872805956093520696277091702805271682857212730578977371958779609512500463909468724459214532075772309465999049537858137944116464502688123541696088999556329143549394635501078675438170948737168115032176940595354414673496049250218694826754308237471570756993200976143060676869515457665924164751714284572953463910204153805118590844687348842751041905529997208816511722995882724782306292254776353535783249342003515674538372779626332095579601260972128488086477091278982804211197225515314111891689973465083094552753621698011139573413750732233698843180493492733590561796994594512961733806346237980856363593100288561579004377230026603827696394888724247798497420988087729603704553432046857872662295816624961436251937917117156796175600759114041721500487709866287017430247991764018599707906681298974110398963333650808639406632752252030273035738428573900389802555426127430314290770599389355503218438530704270432849146771266706119466709901730325341722441155971427106245105483895586250648402047921101978983570139244129443698590673782030179457759577794605746680587386651217395785158368319039530795396909818805224908869157384022456434414788396424770574373587506839719592067883433083096892043712973308799446790401251136180825615074033633391042336001012736521586043231822860732455340688718345037418088954950765465996543369602601896301516108297376176139416652806099458537983533512608870473161193681587911936973816413185302320057079804111254754147281404571306613126273491059904203546104009721050543655605843888730142545000548543286441440585708128064548232183704794088542030171217872614430867884406890811678191148522562831126289851108919203962928967990553013297004671812407405183306591122289388425920516184136209711447799902634293340604043156191521743102113831226795589297736021777448011232742382906790257887485495300460209192783857426072622542946430390271390680559201189367191083829595748390996904169689409573423744337955101268876446879954996477887406578704445385245398704289529228403086317040920114731138320727168708037829425339782062863222109691662031775347277341547500501195248385959524013811743087496353092178045208650446066629746790327890298210499249247988810985347397762356007687202801555507989492887385129640473977636284802392228332487425218266227765096699858416141498139895819014791972980023108259327974370539400043443444681680046094633453826405589971935347803050390643903613369002001345790391390648489879491434679131583753811058550991683154156520042858172610901284012817850626019590380344650208757350776762108015782568263550490517367151111971558351002986355404790182628124782838622284225305210878700574911980184932750891471428830827002387848287704598476111659763591155196395719719636276969502930173567498507737512609256855837637716424603483448115094767316524123160103766077423677330779773560681644029512341907928531568378535401378277139645305749942416725997337940668168934027143316244800921232565375086240489330182143957326010043896849508337366639929975363872162378840153762777185636907436820486243824402213470000577094247746795316156453657192182394441424756396897152454401397354407136578739867775305680314547935669960103297662498191914375375585985199436645306787874143674109155063535438580934929369030189918774551524077039741197359514232550212704633307366502789966705921720143308164391442790156148927000400732000246907753732377078194065404459624242783578902644112747572266124763539603337879342414940168796654811025633046594474388943841772139095933341821592068872990131761039495905143854064438102998513764044615013054248492752990436691668772013737955444074306191069188431211803614065555221575642542981995967758472634735266123503180791187534512875768562087020791805391100602687934316256841105182205676994039874871144700965815470299725927629567276754481218765526016221896954971182026852264645664969753443145215734243536142083839700681239952725520639088798733180968547748192336026992706512091695375194683346951858022147579702244367986943297375142997941711821974926785066639919740070291979771472654310433877772015589456354788942901847874916168332771755215747251557892499387667852778005839629366414404043927807266919472307491006995202787728056478062237942929604160902808895894345384750723307546023927640037188886633885968466999377000918132905463426491272903655190371087553565222238139130710584995387977279521327466306751309366972287738710790929809586516437100663350179084109257095148496994196385416725743464099582008944717614767265917453191444961777519173479806936283869563875237799449593071676352304076242212799963620395707372992732785312755215069108769672258902902744673477968992817828863165252250407440038606355112144805918482103213350263019036385082068756961310911238709014660620517761875063515413488063060570701820683313144470623255499955335891109232169293520190469624482173884504591668902487755580945957212927308003421899954796084143263963314484643472614762044372225284013545664909031062889474572793198078065884370444638582543564519704742782705893684189260334044556430537645249391393849770259826778708834172917018865820053137107671008689806526131610442132933184827494618964728401899468579116385779802613295643520319400233566905940854432242980736041823950129660129145897679778688055879925929907996018358240084325127024568366349681137286957280631794343867333099883265456885566231928733253965655294837550211481171247742319987001125716862653835843650504759764352232237476988303358813783353363071582557891808564344706091698440019782999300624404391412192647833884674888829596484334923304439036518265506969669325526329834643119151976334189707984860616422741514635407500272247173294779367987205667141456018291590910226130158452023224753567954149401673314577130065693593081974409274439553656892587111637821484323329921712893387794946654687694215251245334048905372615068599817671633308722625508022535445682488733937084740379078974379499800972933107566754566364536870487999128513327761342515352498532840537343591131161494142416230759421392105736853336498377775829582284546037034966086185754868223302043638306893917439584572911625997515550622306271119098528618105719196905708408916393107653973365768944197205745940217341166093975919951957363443268342406856793877795878286034118167816391542162863925688573573943009845115175605322089083089553563320094362117511476558970084112291114744399595595941684271909880779877570179273855888822713371296589336888288578501631328174813853615884914902657886657808437625993717067388176841340300298189068559390858070999886597293651374734891453371749769292099085390252893442876222832039788117996469459842181693012413437893826948118883464954283885715456083760533399000684266078724731691637795597222046448958593086938456152419314420718597676720045559943902992714115775835010315642475614938045283801747746208365371134928679655921162199077169208742461438114995751619510072755635174405698760650734544881452665161736491721327455089395663928327073850583365480942186150581067370149688359009006222825671362186535857428840152226836285487978662555219883213419193944480377183460177551429034277590752274515885258069700118018050399917957942906692248384275335947537732365004025962769078597774688105688319532702868113190113638838836265786051084998516324027341641465290120722722391682042709863773884493704532027245083359297541050180215254588341405990455630387164769312594206630576711584407046635470376409702087454977060960567255488017532111370616984277619838551886018609722025179330612745917387063702915094233417849104800638909991113789182081145963948685006810161410715469022234052634211926913790951661795844682020700713055978732839591181348320065717502137963637407901438897365526829912438217608923534652579537231272245218739894005237802207192049286482997664696296943665684146413489462027384812514596645995803074675417521461065525466487830405983820131621785043387036234531965567951226120672930324616753808433627842368980189930676414714359370474418605698821940461767091086049075682874417199751456685634582179667008305016468696129823943823767454045650510311057121027303243022479352037624514646230346087948530641592824471927964362063477141760680597567277413337061113789197720710478452257977305114375868017834881777544784463886360056933547609054998900060713636976131616745203244638960136547323749387724578795925541388442574748398338527702876884233053062342313758393169489268465459773312960569389430978994154435809090009630283763224564929405350957257950078603615523018089356594730730899814348592173689263805576428303947389558150399742011623505085441831537531717271041704027457243178652235018532864374729040946386907598254129202658184530949873555046117940404279119509826871041364788068488964242447410243773238650846349200384213251129260095307512689661782001417629324152531977131416503540397982043795159648266060924094548969886851903100395401316022688248528801381487197448102983186144498582780718285935686716881795340624259130983438616095812828143035517402806434854343091847095863979377835400607956305745406362708119432346414810622000259672257095657606767669553617374626106706746953380723544678891899539698358423471140182107358781707127469050704505054407662213339421868722259054619244347559917916700271503198562458266467934649823163398943531336502448266377671659361295895671188234690688364032824564085549993596604505037260223735433889023973265619691511383949553331437966365401716091169950020079266993886182031539641800577211673026625593445369941947668891011387314293167053874050157084293888877965803061444203257324300494648119736677417335603667239381135794353576733493649822859336149684318544533210466914205694182572561443581917060349170667677502903418300817559925326232056832488971770560373404122136399073385273001469441028267085040841122552229615856229715590273712638831388670297249611496780357539681206225594613983875838822993598334658425924821584035028566215011932874144367940620649870488738324131155574067105843210805946195984288760051512590492481887514766416968211191990409807981644412072067321755030672194423574802972681807456067357742414782584323071140314316256039215966373526157951242683787846095978587702091894301886446537107487584186843671537340010910014268863906581895423378437268055295679516939685399691612968864878457252035718545385018991014229269396708212307367941579754694374248712080936199357041641711483066217503344481032612725204394185326138746743554602126857229177637181120588507010260125678996675535713920091325390488883524273306978843273256585073124091892861931312633654798650945174350396072487204438001389597526596767601434923182168023091926818207194349217543791672386452327976008548832311161786931660848954690370182768426609481042126728380537042282373379857260385597954256652530688124028600965480472751692099266267994629405935415492831555931391068171613197754339345595215127759276500622738934053379513662890871081020856568472393364359837913078865575680406219574922801366096473156465684126440688222430198751860428287574890028506886230621335461766502119253126392218952412013316440973699830846023928895722448036900989979479625769840681527178729506760958889417278550437021738191497681964445451893980965542928271110087973419210416425455543388225758695680704487186427968289059308865306836871559498481974851087183230887414906138275345498329861139945968520114189891751634189313211271964245797025411071069436975027433355316926033758128950191024268196152330032445468991886052710803965733445987374903687387636184467248816026093024483341107421697245522937917052538117341807720874338580340652338441338129624679702581182695300318823755925532537326512139920518274603676795943026857505330880659244068876613874386876851786789503225095977751382212137266852891664552039556801185132520689605703117806385307081481125724525637282610551453418754736019643611150515232554008598274991387521703761940281766755981538345087619452018758071951979855747320355550947176953964256184538801635581267294220754466349567742959001893453359328954227394898476356219427359225932183682262160566569441972675474625475226257473129284997543861168116348515334680453350792433250951567109579973482124167275709409828924451905583434827057892958872973269440982016240990758564544053117164727952353054159567287037309786347211730732127401762484738593641489942473743496820636738054435338361151498913008112423075947171821314894745905932785148088714774184548398953211294304179413397497590159101448031325292138168779489631604558633048908163591141495695756630681302582052619395796417419474460122704778297573099400772837074872159461127193137672522316874023725413468383716577936432167900296777302725801124788977506463366290697574668527329112336939324745801316697653282890654442377131525339923357150310918799687776455493743815956534553530176564131272878708721753019082977779838742204973959366776798836031345544588451684107997780750459562692069388641894160743535919762308546410859356787294964748403631381697355212908177031638506429503437074526396075465046860194696925267813941333237643939346476753031616521416885220337391702425653261267589310214549043391032506022269226182506102937758099716095048588799941897233768170368954501549739004879853852678402772945860129174768419312704945163468375806178808979903059468511693248236299222668078785472636965512347448485440900526376178611233362322331923528874067296046563483911228256900830475286690410223911806854477891638335526668061355275927965524063707440252548171021169953218437033684312751233229325837763102537802576216335102220018399473641488626938478216061329986495292668986375369230696318456398946364378352741302977893022732653567503416907452202089743693019175091189163394858167942838452961891299538727830674992462542620062722627276276170251172420625734596539377818108289218902060367535802972954737438838498044297345640820238992235926901798377443490176907284440050295986456320661890079625440373857225163051467101441904583698125005448614802961290245612476978497158006462312397373413933422001569506191429332851902846442146757812120829728130320699026881825430424436261839563306619702673574927849349920128591456086144010817610995616138292279591562151079303321019536758504146939509169104868185560038234922073480359896544262295222726411223114291921631993217944096220788722212521631436821125306098788014443846225680966615159932211218230407126721214806358563752491580936809635295495069460318144016750541838924872357251762161300013310511248415365311454302746636196682020692860606777236921895499815370216230207939721557637518038338694818880124349922351284870896334973951233089298893275869959780237305029597583493561012139393448242288955879456424168743767962406926494966425852927227550727436028020873897932540601017415038275149585894382595124909528019132237248150718751482866632783698812711503988996918658874749952837806625367842144663554197798674038405898643339275506422133038100006520126779579506989745566233104286628148638695178303276623970433298876043837784945111240802115729195204222143303653887452177995139024370898251514154817048098038509421249616847502825002012559741839815503144337287548917153379906032369911437672251575607193993011768438790339036839412954782792428489393768804635282330853631334942389103938104361588311071089043422932156401405502892200440690119761479056074972170423643174299377130428871217706298770120694814172490453808170299298514163442882099117249023405523826766791770794684755558188232694705615056986369340720277085634757131127588075157528562168580467142512784506127628980526478754519159870763316011746866885844718617462949044236258553401474605742861406046610359087157648679766687170466242623454009377131338844773018696927592322759410786876405030646751981453061044203455708089395800811406439523596300431051770295743605236541601102561691437379283561240710182125681597082721933120654158546458371447933647368001554598624196466206845880494244898508089451225750048195252087531425345963226306728626414938941140714434985122514235318692196185651323611003867606466119022305645876743348407502705114162047257119271738157254620917336587383893658273503304251963047057109640022927778075838618271552561630903958248413764811827463327881896723632855922746908728611664422032589061028066516122928505763258792870653392473429709886963264110383781340485849355009426511427278931571748709120043096292276500597837202446512769559475830663798380129654778530697141123756533967420479498854861835582073973257324452396038412033199223558117446274324148146613923404486909132700397754103505134967806491362507115968292935210981243526137493378317163593799697165945833158435427076698746964228128883184440687216342390974528647563762034546552133601908628372521988241524139736917479976331975185046750502037655913737966801202626633287173386495768317671477673372150677969322062346404865214809632384676857321436641487372292964548273476612961513444006720429742581914554207914167385423769901979106589865261843425933528111284336875110142325786564062071789492421449561795149820935070382523042489819740295683037047384840633184991675702127090019194818387460066151655267438773162592442383102194245792759977168016734225244785065935020803604217824066846734477491573247368095498843431381395339500529968379402466543158552478567445627167492856353969375381585627134550786602256756327720996838695041388520846992730300083015574045030842513237307610489665975316435045849653807200382470857926745356207616814075573591892530452550340485973671127401387751090479924159025023701675223134725242073775998397445843553507689031247308289236073129550166148697195230448980440600987645843175242872279175133268093043706677490766990872666672011232278711039270131162239140670507620070968234329619373351981669774324157101797128424869352198794403214179257480667042960696927231799935086378556679680275579391048471174498023984812092413936456547679983517100739985384668783078334831475692928478478457588962755778104019202487362609859424404984957381416159471253492153291583195412213347999121587421142391167941117860574731743689112322150228381509887913749607099941940026711267809562063734162649438253647189639416300557613616798063984530155530284456394077433588616643934089592454550552471820190762782357866053764435576096899959903258883827548783778039713294308170689935287916026054887402637591459112769260743067123322637316232026242358768956555508939262022909650862222496187255759099429960150829086424631616265852043396096239578511360124093423849039220217663439214158213875770384426058696147731049967709288828616953955000171228566331717170330235813557289713497948330940825323460786676993412427256805350014276674212607805431512951249968156126348933166744528477683239368643564466314430018583346868105119153488800045711773727900828770246850901694954189220807649534387411148564334764820954033212084579108587025286958974936826165661308780523633057153919844855043625354263639529337986838254325254206084884444844502703090994525954453955205079985321918774566866169774376588054860526761487782335045070100782585197361841587875093357245712403757886406559232573405535764744461478325457110311786559415252142466101160792195802840895436855268922998532792043307215027928384828885267121243523146594199591678016440283186662482245689334218539300209134702878583834357268169600937786677469163988143974100364863214287825664836406515678680061492020996324676143187493045192985770145152516446692535201108160192324985200909259418805550433581972639033593558241811959566813609889523437001723136647810744038830753025756239590179619109009190958315313172763665110660958644604839516971695592160752900867105212461068457446497888805576390933229407123721099425613975871875389317978925799645606711662116279643284441521810214829064098709426569873144779298433642278893986552275084783713547917233972935025744594525346666648143854138277642174920994501541985335865741730662075864223944803763611540449940890227557580055894432413638742819239587675268617979323851359058331465142525463053443122710666886310722746121427795610269990119326947708656025684630867238611111660549272944675225317223843572712405326714231891198093265955938743542267756381108456167739181579561194815511533548288289167929669188346085417277515344225825325016578696571154922780009994760938041948286792805881915496711260873847816430215339803096024055541642086975154929991782431171302675371999028908676225331110200759880430370910363923973140407721066973246361760410612946804369454566580982563604957347516050034819732839972754574464425876040145651204634293323648550624463048675702962740606652327393854113992023846494329049438807140307162469223049241782355863007316582723659083158893165608681835416954200775037412717956780362420339817940653568701363340885468330532409283120997834444374057132903080633967575703060048298584896861398955596941659617850770414577378452172432239634467530807165564757292604259915088522228638483792000817098830798997954536557294348809136079506134706264231848671549184091327904134887258666144493483189676065975742093434284130845878910595893925829137477323832471514147111094622501186554536513825297209470092050565497573302241067594211837148531443484252137854699819454088149219003798433266519042368536620684497357062515063522975876886508694135049819055259863010618492084638933591309855075884257609766021627049214643886844161068553858346507509251996522443402302288469689014442541628673822286056213830874268366610399834460946131896239099210592265313521334204824829217550320683654744370399462738134636203775542496589109628790592009122333831740843070677589154528153597013394503258720604497039390779272556453085165873464975424693267264188591916559513924476639304448679035799131144090242171617773978392911913609143878397958350808196229313078597875289191663640541114215645809699376808920612223689586312485357488711419457772346446735012126069659516041503593109528478852541615223106184407265135279937025301157419333880956813452671938437426513752721350730983030840252857215278449742857234002991127912342216459401516846623773642477380006116473805627760971599551687008955866431380479812564465309396407064018048402182307046721432081358208543817674485297914502910654041370088247122928726585893437109402605185468106218923762056136318404842074837648246172389102709046278013906608299720255333121362468559580557732270916448913564938392944078409302529225245888635974209145305570534277920009848656170792100818589326198292026601433317485119967862318332831330767317524546346545321934936808356456869184857107531890172642453482544533412513197814318221374879113582255734549684602420114625568585249742907629363179675431551870274323921286470017514015917589260674564803518852169117386914266036440053119599493946071024363235388358035311398929779909764277115345121138644489268781737310163542451558367163323611707642240417904278731379699873495494544218980595389245477456964040277982556557139077342856131230002865392776515803457533437728960725578543799615617680987696180892508177541183962797997004815433705909935051703683412051322854354592993853232346879871888626581693073292778475968078096307841052054337667697702695919672865974800108081199724510934158147750970439137233804114356337382816618342824380167933779870909222511582295135981491981826198504280099632486763576488583919765121110059414884465184920154183480559800528623356675641102120376726710820319065388326235481426819263855600450137936236232960420866815275247258440123618326359962006740855040454232892877550721687726771597610565965066507025718175219963961208470890073998308154950805580693793162733304537669394822664849037666366849747694329940837929982854720165009511769301223223166426123125915401396939130963757822747041229852272209782029905908801075126301779588494265148927004401017125944237243823218076093956893894402274871757920208204015400073329766219184372416310494166578690315342199052623271158322932520931429789726317380098285676418396223177127985953790648608267163332884950863207724774196277517891644007612559371711152869602156227646504162517079603790810515135738512212207497155591499379508222113234846111272785174453084898881463126301625416334266073380417821658689554024725359862302963246272145554217536717773885517459090679727180210335356982567422894324731235728484960029990781840327896303051995284663941139412011349992547178372070296629692278636187788028926759674706959109133226930059005554584221068544426542941322548223520997862601337930092985744530609558293620471350696031110339379176296944585063233233576339315036606500300282398854096579676438831522469793220394378013011586413374873842871237777277786196907631676565770732399691383498097918525927700997288809005601106377540441349833475859020400767116815059781484310978472452476888892956384508049242038468977720717210191141082380412817729083039537806598595644744668403953133775086773728329446239968629389417585678525036811598837713923777192613170209885824486246634948045491015073038245852524546036451617541641765113818185365697685061093610400442832990987779799316400111103361628269874967754141294878600998742939125805671570498366508663536500467343719750507598775224361979086822393324832885884317212380312040157151324372360237799233954207327073821639864039744435135298239986578367151075041086411014930160224193358822360988595292491414808821317853862387242142474411268712445723142173510173833176135544280696415963803253911655933016285205205532605610199624107867084884321399147410431125860807894058470119406578608031693065234812518506184039343227447955380787015669304783561186141013339050250531409163079612960555213650010931509864105808018782785474247307354469276839800260364199517995907179769741950456357961047309136652231106281109571309351467024416126378443705165283762470389663764893288938866093052994307290459107367045018911602581813793988270701326338728935086865438219892235216594526540571697617063704350309051752299728455477101547625678070045115790568185020020972759908017436558927258202821632375397379069951427716887980773917505228352252792504670498914256345765625070791976571950237901007118520634437907044844450834597182870888762273964816656848123652940424723338728568341936328752299744404363651338904162754056397810822669604993330141808259882023496539651640452789354407569749267341544235399199466425960384170658930544924892257380900202462747065230697877960972307805989963777823513988239108223890282615985093498164440789211381432552572236108542046964392345612809734650509831333164038881121244240789991650629038610669315361436791728616203344912302398642337073528692871520623200557121923993189372453133947625147584283359581031088502112428390687948844381305162540948037925313621679686509482726900637927198740214087481547659762857562843079861070464968858069976502322730389272730350401710414603542114743136679300251293193115570032982558759766632557935903584133761984986749465631148885376407602242503755964575016281523611755257126068020730345910392901343270993340634336140078546759315508289372910422428322186398437050564288248996394127154697360212143441862813414747870938775212101372847726872775260880572426557815207871224261077510535342844602214990836600140654348067539376502628062868322060791542434804267751901844218056705775493141338673444860070975949844868027710135725362155242106362121201895866780967927318898669634662029739127573894590383957171864978483998295026421839498647765617595158189206129384605378991064702594839131232798294391991571126016099101762578099006482899193349558442253451354744408113635297533051595086695548300611417429881977665926972438980735251991085536231684177438082760353694439428957049102353169312522687314750026600396407052259688212681035589279415714057662419985859102304334749767232171223625084939698267226655222029502001033311405454607177454218291226234205911536553753939610140877346152739323353493325117159087722500318633106780349548497415405191274195133610506057446986903724011589576149760119386312990787368873762313111292546075210474945594114264964899282118776521980093594153020702494332574050879246895558172440819356200417810175512422877997932047652919914291565121954141450731934158156743463137111586889556258393439580547876638963108356962230052841041289090277812470456012148889332638899725697029633687029883729407364383788484137307148308171980046511156221671441988272381463121579020709842661055830041472712061537533311747111007889207320501642179354566420845362117307994085934961307714017086569377791592253940385105084080914776946676103910843442437107050128635783867861475611549653964297474409951931039518688975332177582172981998843519777539585623468972631486860804586265560999967396461489833733002135539638568597930850318988505907132154432760455959360891817259860883753910955447656883361102168631516585238044219606554304725790005047155254459040338271359509012131413117994842934809779361805481244054084106856571896123543325856091899443430518918259549999781759674883553215038460546202418939889643069175272497438146971062881593112091002869013448935287895654103079490424472817901004884333587187830787818167986908575889269338615050973691118208497531067070784387639218311452311321751181361307050634695012741912249814920853641529521127712727862392901262502656624101827304097795403960404754528826201491029176955432077305275811780736537995882761988834165702077704357030611706285482101022743324192493377907951355832096205470867555674418557719855399733078805729071641497671582120571098504331808432581481567890207636922132643037796886735143531765439762722268866087739567606707805401512381031587027426255442832998591609174606596583013309542542206937125277389727315766824821267106185998996532546467205409031601842152202839660970732380831749378700401104527926584172756959377734607870032560515173707042150793926502065918252358188478446615855065842055711923836810671867113095290042061365649659559813847418206563658527990100630629887829169306805613124780225202764604760995148227800332400753363200633852273921426747645888493653894401858392266789147229509157399617144932636729695209331133208193932724868124067720360917857135163967329337900569782985376569917107698350252235251651684389285589472689076447404249192046394670482995504812179489238974860794086991229022124496012456816876711399644490324129208085244665303092553440120455707471691439957456928339161163533470971953548991197290000735406079245178697198306295572461373471916133496542641122175158073956499296144761882788672856526220218407080378367103462937088056679620608043772109741198047056115014632368515559755132601980526942043611710442473148241240763381330572016573963948652475350852766537672098731233715851114961999233777050518394869931555268547643409483581772246372433562069228852390724496116356867010248011008786185993968419251782010982827563418693632958523914351645721397121833841517717391508450307882042455946501586112670694965019597300477354841800351863154754996268227602578013742085668408692163775507164851263263778699917674125781672166979502499725917522614642839015971588317770207500580137269219552320685494297643187289589806796724296742912993565755113208633583255727751067249419594635796977090968841344126519495092194500478405184457276290351920227627871399103916865578059087387955895956095917952883671821241256070754982095122332874784171628563452524281496720723265502555102634070454778230513510725239564551201025662844449949521620578122609931794152581691544879856310079265522642929908017362205496748654704865279711079475003290609604559458377581147984167686832436473149268213494050663415867855624078539504064882520887039541443500217026461985479969997160855980795609456580139684756918380240791677052315897375672566194838494370674616157632344260304950197756910388347425764719589915427348996141684885776598096487615786506960531335720783856258727097779571642820353061886079019788670629272113623452486173397219678510646742485776049321439943035446278799998462658191277717829792267822392378070588522040949446890472070504964359999302715261314682906629217887243100599450211967384609021671942477074054304212680173263461182720535040384120828386187659760700770774242272274181829076317999116659265561384013863497646735434474780467396878544315000643382954636057304342892432893819398212610666067655544589660045734684806288962116084542040165816794254696722695389009015948766324263142131206258972545898840074481208275414331334075951759702100785018598862822390569973371514397392126882351231973321427927233192487990510591814963540059716476705092724884406621382990018843298041783152708373835674325661461020874380115209541099633297310730664206362908987034442243426849375711169626418448328794535533895921859393266162551388521636415844265750744744692703389790461844476486999527431104745782643935864712280322806125234261527400012650341555240639302988088296012552408797975133586857105938143877115887766719215737638193307008104407725304710085290853066813598548048632040298066715486629008114163893357159210728020565725762933036803844810296371300127639076501797911801486963879546073741026778111566115325158868052139107084897635055907660059064152311736607193329184127872873350944705193817815023102475146438964883669992298328610548905413135859250137146924518515911734123794387310636388052763926414407899434720761744836312159671880371335607367534134619247777533601684196247976074300209687014864345332635040991949077738237481291935491554452177958631826034111768525712184249258707908621503105580850550935625521677510376246120772277910839189708265978553555143460292026015965589384917417227509252007557347113108295630701737467437320990528864418901351919190054777041943713056820693692379714685349235750187102738435446294030247664109620798235952124157778785481991418269136554801289847728766789156468468005251145922154673787036546016756974869131106117211699748870563347453041496640329938231484713632317309465244458603089924445824178678165281231820350832457247411402942194262136334753500823151307853122797306326277621654971583959210007589643823717707523216971189866783335862650945332671210809299614192297784038911433001570780453560027008164761500700556517133639860694469591557014648697170711493903770684402105481696204341818164939842460231377989680176574807259520722644295804703275713964274716781921483990786216145764422970814529627462066474212046622222221708873956681585249018955282713643614676290164130703813122233310288605020505457509435084075548326924065238090310507497344549595144526141328368766703404872421947599657381377791707735881695055007881819791161342257142985771091643197650739840121908131415562685995940609007286050332670318479207255377407748526643167109528381676317145533220263707862535520708857304316336186640367540493792614447054496481497481333867244989926950241900501383828331108364503893608489607148130077000142067765087800536692298172585115249038892069178586855751625655157080876025237830554644937506460322358597049011118772901938705231725565713641714615917998472014678460696171008279443898147243726104928701004681664090819319150463103178844570865484886624037781228220993342105336694489223885202069795672418600461668869190119100845765601332285239853560374698908436858444701536131331302583616512619273073755568407985306680137199670966149112897391381523739081805668940663260608632326159735471638747717961829608191422837316203176696040110404015754406969841464344474508002218662291689447729008080663213685676376128087840595699458495569302226923035467513340547896912566125387621889406122069617389228134490727298193407278871383002068965550493082409195848104656817271399213110413130038869670346123596593731999867386620162981130561338558872200418277422579124167138378748355675343086352545360816895665132972474317191581917159950231244566456036736388606506221896370924624734456669827589261261408127453840920377237262632368264859227865294717588050851233858775938466913530700931235592848376819634351559238963748122162509639609047626696428286287979122871915705013470987168081196408932701552067729749854869566919651704945964325998330021578795698429054729267848362182042181349582360698115925544384231110980113899530083695383847512610996895509224769975247907717484247649328622134419608410086996684548805156850004306288394575468838633221933425828890801041835687994737443424397691738585720627518002577965042571100768128924515877978304375159007775681545777516247201269524872268734586371950934677617358863533536410512265121337692757896599848077396869777717643239109897213417515215689882186217129360404521070413646956016999081104870673231186285606765777297072180525124024255632551889910403304978003315683032635426558370343920985251993736057036127796369853697273137504001357320557090961390184546187038435552651168019790154378559707968687259630498311359555465363213004905803629000865865798006233018815053413832669840710160967625938780073852760360399362534282625401802814692846817754086493259740257521658726798616587517403385315305584592525659972030788469749848392253618535310428054733595629431839715562404138548779518529214324720318266460643867634633632954164666632656916862463337638902485895534681814666687727125926207538800277028743667211720914722859832198193723026156741386960757523465548261444457816615185432613860059209311137311374630212025705502901052965661504639623620975437177101550623327148160795994849261295680941326142081022899062267199513124437949773504778017597714394994247574508480481312195326254206429030233092403692822013368041078455523043296637787062568483427159961679035069345405581738445904933595228435532502699163241324652876066873676164811195252994916510969663578481057071285104714907705559770326542159800091976430093841060179331974215403811717231705397259974565633002726121196466134516456029973970992617322281158469436365202139571009828471930017279865528013347385072386541750798974883879906128207982447266111512942467983467848748198397092867449116903732951689971219385156679054129533313438822439094983860083546125964278164677152668175620179741452990978872301952621691924836246785198037545163781798318248206494226022917188032422210434215342253635192092073833578120877184534700799369492354463927305174151566427359982775405016808203360407419519553106775610395326845318531328398882517547950221387676765990133305319507439529578915296576482411638509109166500703418750190255263838554090164140851476728111669583176679486923291409088363503097561760623027139490319252928425369945614271240371508966268107239182398509057887883131937214831187830926886704041240809987094237031842031432173093970306476557351478125933200471605815005533210799892194357033026095779191037738899134529430724776111016117248536803834103752996720224851150523914940425373564863875017661172448342651011114265864740138201861013162296709364792601943291353035744208311951333464112454624761703817225668480529126267956228759155889762825816120363564636474305685046573099696619165018868405637804468581400815512954324643080655661053546376656299855504441430806326077760760764756747589683371810332067832901945874709059217271340314302711628928860740271323320055764329817425704664826353465299649271213566722072675493918047092248029800188977223217300518921863035825387269878842561404215184856163981796048289851623044706843402568136747993165671527933479772594319903003407096773690395111454656352053189753520025860337729579166273934844047787958630045548432680362233989230616370733022835270687580234821604357274515993261154187207043032294366084912372540195247956144046627451095756685987770779833263767927990069697196478383268483555847273066258753506571794596267404555116029609436332555797461002245486667427950128848283315294730269825506553930623707554857478040990054615968731536959232663117749844610807648145423753515372937720788825109384668773646946259434111821289040698900444521024071640241482961750564674539332022978529777736718854787055260659236236075898689169604456642477386496217390994709597201364843559820323930654155799969520137157274021820738159997599808684320228250270004193887067221830226214637461687610460309729342465457286626213018130776070580204437740008644382520247789886316171649876230466307763356636283248247919255475165800312483661922553118605184212929590462761769174983572568257362105297492538184977450140263831274047052185400627174552926293976234300746313483637865427816293459344567954683349259640880115557951838910589818516987204337687201339773963318093242910409834302310611155197658450894688123472531375988872817593554326622540039793015229270824531207322150571950426549182994736989944841650740486153024966670979724193884799205539522444938007750003975255939651410063833608266514114926486293011664075629505967564159515645072983582304978348831528604151359436163626492948798479797927936465424870644964922512036163544542785135638003042752700673192278211558022883143200067113633918899734737069944014445443105753350401955760659425529663178862149170874645645373024917917431697193753306281439601503415896985530011284346934730679607902176745000869985560844463703584584558880966915979195912473379241848318347980125338797509273450959911076477563033281708588562340921000972685015612483458499704336090814608755655744591577632633785680310680545788238097216834550886600551090493116595796457349732432057725334627815919822584773573919214049084852857496753825988492070805409299326388992509234151412914153956594018381121128603313724226555167584249912018350106911529393371024791491795158653422436452406697576199708083036285097013988873524054390173102971401942371496064035847712793324717921607846543554373413618709713990188371380138756896566938716853099671145462366754161429241691122514372466671861511923528306140993957116135741905136760321447163833506129296745260216036389030411216466590161865974737306996605002240786208135679924398894062368313091142804646848878431833832542714779503785947563215425231816652045688129540018633376794726934207453185996047503076939374420383721371677924504480215861089997370645125773776338848000558687553799939364650431756712417145258974842725029332503067522779402634161295049012200839686209898067187236500741309264513498099029028902211727775126111977619453399504886931599346691004787351671145405303347932910908233962454525772693862782361920101153878594361683925129927389376121192928026652546277409534215565376273664519014220758648585848008529953013633475636442972276135178782779178291133018537734038895394488483241229275646473766767710060881342099474597170885404864705404030799253370950701376865282956263040765687273630057639677522783263523505883277807843152620180225003189489795214649960019646905961155940317979280927628963167401394328095200651476704355773671685865793581657011668714877964426385919796587198430648955340643000782620199976214065417186496300084071394636449722974700059812102673784167545284864634765417035696824585404520488591876913244634941572132468736426764808441371358384877598871819786991857347083215893906425649901473348058513617064490120018320953786622350025754452688723673593496155424711504745485460067034836598853440457499942160310829658302657200988010477854163163456065523639876814451468509133517181182733997498316852541630342597341108314785901369551365750363362747621821093179982152259510443389322741297664930724150272004670413879715977422456409040725522687614714131559018010586808438094722319462170922826877163541799481206525356677058407092680494948497247343170800984875185915946469636975938088912804151786916477079462861097364521232701344639726593874882545328308515061232850120830802903505240784779570972678724363648929567494876069254419047929661801308521787450127804863071972524851591681152689688590475954354620076473741247460273517392206643607885159256299230021889657250851787447018909800067245844632115242588286062524069732394287313723575435234146698819472130318055123552971990907711942593794124997781735283855114857035713493023033613296314735901940555458749336723418968533703051215925026396975151234148209520607588175371353361163319133530262585677147423652071246275230895854320550636056351739359650945336719737983966531056144314296326739293002780472220656664613137771483079095495534967904173879437119482550652004523770601932731068470394962169457735670747167493826484530933357116997262638302375291156144346565438657525321274069256019042334048963930681554914375389862640489129604412365427013000112419096691613697521945294361694619421485726157704653502321794252572163404291191368411439857924111343397242037889928195328637925808664250285229646022751556736779224770093375447574051988438488719306649601746767161604958893061133030063682066321060164820501359128107050711394886725773844138983611496892391827317248313943928961134963321731088621906167298935150693141541360825971991311287296258918871757172478567845641628317487935505489000997123399899618305786546783944723740365790841443260426188082983827230270049660182274173698638123173820566500213828122471215172034647971230455664829861997430939080866016836775845375318115038321189148911591619569821560398504460268415890671733187580994619197294193030230878549261905519094736564677618153949326046960520156709909358208992309588414917748973811400840139251907109564975941958954593165393624379929884391958730310656872012538401642510971085782953931036359294998655613756330630988041408302532847342240362565251313987580505082243905495938061226320965841797687551343406902142533281294860813849730111133590362371230423390424619297280372181103323959283930317963893944691355512378974529298212623354706307777181416663610038595139640438911077012020891474208679326517081532816750406763925200278579247428200186191607763624371900225070771887126621847838595041134812886110667715733787788473480149264158680409369053997106568439076217494912388368811485406125634108330110656658784279598680222000525922430230597554558911841028042015386411922787057874962222105491604634300768337376159709158950571977193292744035261365196255497328974988396039616284883836177068249423369139240745234911964682107711552906191086507452213316850745834262146354625092757457035344111932207389916747834383669922672339613173713066212337296030207356168736944219979120676620206589107675744164381818212939821461672843484813124652166932815013280394475902507441144424657409780380305090568348965520689018865451672067773475266138552918919426696312603123155759763780012962535651402198531431712323317446125991549794680037095529717008969733981106332526470675376642292204549336323894495977314949992633459339443257589927110842829953210990295094080857779236266555357263502104282918381063320160013591275611294185246713022243635572073301910718157077828215216995260835376605315578964274611103966073971164577626396239285785331443974495181984754554260968362585515893410194649203279165865089284894813103328321083547272679572712131031915155468136044987394257566126588606079564142536477955134459389587238999788538451296723413082307733374314790409047096760268222229342692021657962865620441753535954592263738203123417954517388418989541026635038411959512339463824990918041066975603445983589707731295395439608916607315333007452748534348471938380532064617286992880019421323267427580370296514942572732986828131097137892105666925628703156705058286794711604525259894485392427055324379464111962215872307672127586505537454853845843131941588994421546811244164444438380038125783264190553574741273933928441335546873717057461808988355361032191862865179961906022682775873517281181924354423194431287651495664475973073719342875465441606665269023231275413276714752368054136695370838159523980739923362033080559992151437807344065124612978478421184139773987013138038839634500838621285226666646198503223627943502749323951157912003553422861580363051891242700569135749114193197784017275166005968805416581153795521033240081667211710606800378590239612364033317116959214107404646374452414494392924249056113162516224331900361024997954195887802164125900573398345724305561010633351312422388871152113402617394185536016334549676810982883777304098093662039143579907061336811727016958428971395833762353455121966808442662074642417521896265837288196923201025287699790464755740738412310291497630857994684489153253875117791961386735938367429401941217877449874291962186081662723729142049947610316196032641796125015077962323395166560707252855708275175529063222638152957594239383232851656373482105485168533579595212313551178222626124434148301693010597843903016489417292807736642100135316987451234545182369247312196990684463983359853504442350625121327203942887044763998182038711474357658895906336770522736880066128848399224161967329855916020057760599844050984442456841066113434960975551855688746303011156692301585171575992182826800200233902791205026375322321896660344708083658202494294655693535873378341847381727657554848984988062937177811726362026227414873794985279692578605340220412917601367214980921776055384308440003034906525701347035217822185869051398173043344071368840951570703385341430151612731428157843742776269782712190109868265077937476616342287917555859758158701660015834485750582573421844320301369162804234751079979156416663720455763847592910398778374411700420582140911783449917141917707888725199638650942370445479032138656793347996038933583570511069926567982805968279624721453122214377860118980552160322771712274071680541186967769713734032604002641162128458883819950555721647355262076066058059233286283855475828518399559005108367209791319487115632710543885279688225677800769608792924675694663729038185498868001661871599757555122421293764583856853012614791792924399788655567431262821583280492622882856021102331434776737525081912985459114747467608044627666610768845411262766531227773270170617959463915404544136536905787804709923392165483289393985649068376903482919526611426976814501554223135505330369275806252938145570832961815649844517473400473834379853699102084410897320135595119097376301403659376848112366748843138933967087758554697351983292113264230210862198773805889114261070476425934524148318707854503205896259455180051232157457266978118644012588204690594890995596725637369971208382769832458794601293717202543140996479830719079451500107042077232109472856302301211806120061804602820795865209815708141369077035325075981584893458206549382047773754537194855328248721691737803166386084864765882504503887894813941412881632801889307763849049001739564414844484112898581360371786146939122008851070947182622243351920268937143132304104101351228282226247762210342597231669719837884334437988186150266370957484902830348412510512503476499359630159472178042150536255390353842202312654366915082036685169936229611296956577603828777566429002344796090427997428248451143533941839413522173231723712885262656743947183693648160282393352132408512073763260204693069757727381950932815932609300842922824719743058431751090006190102373787139719070074467300828262492825565514869315648749828185244306275039518090064768931122924561195684484354545601028169935021876705328989998127421785697757162117792519437367732303352186563568393330755234422689431751449158479859666448366211983324526619157921347233436253435765593333871037426619859063828450684120731404682551228810689002691490511212020268209254492290390980424470267314757162723717803416378960643820105604611580258764837467154913028059115862710290416950139638061095170951217932120850589878130144322106428871510141812677605200622073600103726077208514458848459426055925916362457433059363886234966055473530590706513047187735153091735279734174531946157206887622843540551197641976930253149569718640113099946264855184639125961002962975890901151832719670402527961480347758876458865061438817494189289702621162079781998773360274948477312840746556988630145070105547231062026815554495491899483037438054001478230730056148181131811087565102293439172317220829243853464457630936179339641218076746883886528444875525873080785669221289977145534294243366641097989528479584111224913410085759230254844691161780627956620579107921426011242939336944475880207225250298287830739102340686926492130560182623480757683531364103044748651144639279377082212357263520934401687103077069193581417341287998360659738197050494918174680392306097092614898576280081811012308767799411709550449348972277154078031173753389588933171457372174197808043649705319956928992680956830980071570501348779684630815273637003417878503050289953542207776211184739286299228994168269659435090777455834095146020356997647758125595099131684776535511556378513866048915228763290757806329264721577949025100201443086277449792326050090522108928084104238239478645041932888241948485897761675406426410026701250888922939606701695024991153634028280283597287002012888624656155371103105447216158683831445607626555268583439828610445456995582409812634844964955584845350891292024723467099746493933756563412869684882111931533955471665141162955774827834599562787458193930602759980086120515087119520784675622936929703789983125708598391118730012081344133271485122755809863505712460012912508580584570901015598513319791361288505801049382719305481496112480973855850068191936778694939567408882436741355378551939495551170325370084396230216333823616445025828803798914779056810559526443338572973241908292804419684849208379045670152250047877462888143098578145019960850697017935663510574121917141410041054350317738239653835264712040039576225400498103857134738768830404627120565270627658708917328541890631764152185702844903462430488507093035112556400131346459680076025223525943363539492085609571305986368151299853351592539742522744769271476542011422705951467796716700606614999945226301700850107832768596098569542065784888397222282228866691673046174497640705255898642796650438281372561015317566724042429669804343328667813435515668563765226310866223096262232933528597117037003697011049924483466013720177715221401438354949956154822083737050237859700975380316819017835969496640579463761065866314233340729465990279433521075284782087975318401259190401547554108393877286795757006688186587483313557552487006313164756861204765480988849167781588730584328007131121005823603420257373960556659063763267751271917283367905920136499317767131879735427085460790493288470122122734210755352971820710231298231975547709408921860221069516266353462769936817439671041771171619355886992924791355209742790019851133750864353647584759722403077831503455501482187993323660549515644274267811424694348950944202905098928439283843473999764798448786823483219993831148688498330495639951015630919850853940699402493827160267095815172467499545543398892862490663642422365643443567190529174300652681069317190742677725604777869100496930900279690513163141142597347647001562834684273115506715379057887122674090658694329122882169146741217877699681552329525757573869245836957999794370022141978133387794920695564522088969675924347270234239738015796387493051623613801121501353545263724156194957097481393001781472182494561741076591003232350173772133633126466764627691080202865840887654646673271210370829608897342015123184522900321692091941032472083446839051694361853314513821742771583480197106172686052314547692336371842309631802509933862912263688650492753613744844656102230617348918082381862302704772087499534415586344109058721173603527578025401817906088137911047024379877265496105838527814818432142374768684677670444355377404855933530935221524997278778734638417167188756796193110541920609115363831409520789200025598345032515745238296798313093423031142419166499770490067366630794079320543445309280744642625269155494907147126986643363560524103177535511252960116992629546819401981658290589584086300752050567047543215591806521003740294217266994057111049478740715902842344419116571355427657226504248593907297801176341986207001821470680814960575813701080928000813818039947769524320789833431799475343773057492341972753926137036540122182085583129351945778161828464242317995124351147737802048385143135450315552103910114554699183405782581182383445433451922689945765536418035805159091202914794079099735292167143888360069093453387683733557557395055073339008220297381325347228078549277367676688033255488512983579847276056079693643395953478631819703874191062698042074650391415835948273758939554689305689617411726394341150123111357862622256379475445840496608048633696848818794708726604710176027474015666413061567420019310732796928654886381592840341949681597765096675685427743192427891363548544829866835886823848985467383175135221328412529486708132080552394713641244896962827962072700771805680471633597003913550387507795558034107962085571833443240630732670761504015215419247340624437711023519656188320739600788326794055526571151858770550426788508024264191315917642001799769745621177275884269820054324412483711662787222230414276227479666051413207174339144388656793239352699660229399759933154155755453003619073278356597778915846652599506623868868484437621563910666888160357785531579352232582916240080693485566699696966433721129254086421811834463904166964679678972997856828790365574724103964894878145682390479862143632960092761608127820868229739908487497408781016776715268945606987437038063343652514023474901555836747098167308748949200259284795992152985363635424544386646284574126973111281620445488540784662299162774852074291863404168600139410139859258953194896540262234450077440113982747344346928646136806070031925330895667223121270379659255126637582288124613126511360169578322517531895939038168782121514136067136295841502138101676496930253355635282258629979671966892610995174228892824890620856084503884763332416390270704798295379306452527882132278108149447769925841454467435343570525802437747971179339735556221193297961265239853767474696001537657131798515086462175517103669630030899064760780439482930770124491465537734908739139990085104930301844193435892262669725751937960538670867225809360571935257623877537606237240164340108475371177275087194850494381727707391430732394894289427946961759719442207826525834179589661889075554456181981624106727548084074830713292096716152166985512076363207966746254703693591651774966946097116959242342178932235003208960176056296203936309731077031340960430964360771250174795254219559325363243642666329602255293147784586772628588800817447914459037223937828134989283882307207831739624394158487980862720861478585982049185027367269998649400352499776566153218351813957479665594368191358000466397095342784146391920916298486215343792322700180544183607203775561996612383397113414249950004368589648325983698825311313861127326277190069235103676637963463056758630432975859737048254849231362936656051145425716803417281432496531304665911896958527990314689672529616436014288620705402119446871040890628531715167972116317959618610888763071002938167268221457131186154057360701805082889274731396654898534992081198043632158704299733681774949511583528876762574857254111237923153869986448472428615037905782127657914843634163358293373980192880432501826375066969764710138222070330327286549599369887259561155626237905002801869436589753895007824338164319398494345282761546098061464144398713264283201929421478774575437618582620462420131204745121504426514648171784501337274080858073546563811902887501322277636437016194661858019651648867534902265377261085970210997535787121075862648195365067183369721730937545668507501959682982068817923611570850431825363615170390277377010362663425282366257333295895867987667600351012032945540415887367393418558365913170823243222005473666375913056830711401900669972195982753800310585177550020119965896014669110928882925946105911516691845005699263438668996413183385867540239794143741083066982955098815935079695205357205308777739828241910852613767024010042449474699170614726762756991041084602154571313346523451780441675203922096606635412233232766607278738233002995809053287924613461933048812714882276069576147154977785716203200380465845687784072939178293669322978149974241281148871927584040078389790633590487796761456068932826783123689440169821675376970089077159090141380432012099823394501693216148065283101261282659377305574228974607338882871575178681184116576380205003466185798131040333783232678988515588694427002023288064722395500490069401504861274871325682487346608638060340906086874786038525440987492513605997320383470881867019738928445007715435906807160354921018643312468002277701530274137444209283694887352886402463322875830503088230978363580622018592148760845155278408655178644394069064151257315001918953582975179917361554887889438520416033733883223218324028534268167125229684806425040755712117689939990735713601859905475695784764720914680691605640127334322465403151284207242402677567555322793249723178740852930939633273545892712808966976279504675220194771038148545542953622345413841342161862081939267513090702142381720580356636838655151980709829958061544747883065784201404582922494441481901392172763539818507258590615041276596965271171670775410540966204471128703811903086510743736783009999683958070083419966731997060191123478897505410630594338492257174860901938159114438050649865693987717097519639133388622134716406551114171516979585594812704703650160540702780575531399361941429588386657795903791724433715935603842165478564627201761911649097992517303756016707210231648789071719046427525905320378027754304626982954082658198224713983851682145861340729918475405975660077947086679165955927700623832715734093272953172448055457236645410459974893852356327181501196202237058898122001816662384809116013193697252829025597827698810469214688093579641766313072700493566145492590623672286102764010233712439386284988574096731350831752644810407641833677242096443750264129578313062183640300797108430571995144471398282922200946098367917686115218206312419559924088199338935140119178045171831635494577272842602299871061717171265295899895057471448784761951266206821669161627046198151469146756690326536459554694699348980709096707617353940131745855756258366888064343874187466151475360698308761815041161871245747993221730959769885828817109662733950383669884927075737422475819321558930936679012788451088139546330220269511189623028687259070946962412325489552010416203140053350124168005452702716877641002355895541449809904981786770773296586192180634608118857557509486226135679954356715282243690267648894442602800086357694166820351123377135146298332289309331194607189942699209224970268970983800866286784810321791782816057690028755706444303102115728000142114638204289919223829120969123745864721249035790669896856288538898692494043081802406949915845517922567054746621172434100632050947588447223872223966528928816635865128428810692183429727577729475635570843725674615140000383620309703756073197243904651317314466517439925668172897421433458533886332780983622272548574421071415918583169024590663716662833281203105116550755170906705229111204664199470301740964536442740047323517592208552493295163618354076524101044105518436244091974782177091174621827306304423924211747067529547256294864930619560709796025900875247597051641925150457698764263042076125244174096385404460949056454614079201960989962759903095274238535924416378191896080016627047226691692872658611721753805240149432605471508101939699676559263905836729229219099407954108060345781234369051674226939296612748626897361342117337359374994313212819242119849646979276740413335812053014113923720912568170558951196874236677420745605978943895796551331095962477133186047117945330055979241347887991391909725402015563362389017538785821687350785256738974491058694390484692399669422002001939840182582128269579140601713191806054622130512950597381510730150784197995568018888969417870711209084238735620128384291479896898445883648491849543387264311824321910982307375675429262452404485900215278024575268806658733810640416739044761134241926564953311642401262031042057618071331926843868616679107767867371275214453825709719771503818183181386232424835210480994964043927625851317475582901784492721042059238881196590131587086309346716500195107872955782977417634923380229819704179456002383155840230321044637543957331311273882696624792494225309817368854515606358765145101106492554547544805001346444807857078656028590155666408366296450277968213434412228473117538114123621295051447123705774330510366134190516357695855147729492292544890508231178025083320134376123402710322750609845542782892090032666166919790228859148373969667239034659470486467035370834475546419010989854644363354677997105929595942423033427918123020232203617680827174530598174700784196235601685673143059315651942253605827588335568406992550280920109711070192855387242075068917858795939797663077691935502132109905022926362842821716176537796103359838464376670270464959748922782181626379572813284351383145859049715656916746645700127233553110465270648583433331729754600930118512768888418651608867820538739656621129833624453249843293670810421467636037814620711317796704397527553893019041318670102173163823362149548678252351868525914102475115458783834257574435672195790031886858540548124747477079892024598448706609208768046236615971704353558966133115395787849798570017083224317637382728245991222993053713974963522169656896987348571943686809948913860860725076182913146833629999817741014679178179588423023776690058448743966815681730015473960034717757546874925230753869082081734301053136137058233176541030127733083054380144328403770722207122587769739656006867700774265827414562998373823998329051781978395636110627500552755067164893172863512850953740932842718812701281854196420861533685973981664132254099880909424434937887250706626670240164799955488310309460436467681017321260699452032923932870184246844650002243078540304467783443999331118882925168882464110357860637814830243726678793083952748444263001354804143756571800380569060487606673650414383464179313358085654768964881144605448924950387291163223623013673969459220630660773256349745082224997186908199581791509495796212921945529561046708090647356121053971957535709705000393632421583483731066082853578681708669909664719887467771058616353135892195898353878049984837951080305490194781941303512941667191400177043609432507242349566265234483608537170043957761308524997093677537253847800303009282455889638958691728807982190713890209302536186597601106543224169642895878289040663119737749811703330098242078355910361833342087509158098601613410340635580340190244729516054243660346742149198202703801358661292794835343930449840465652752951183464375508453290967657086564853185812982521419083927247384766623278784540534039985529156442383684017374476278497104929437224416203937477403440443797057214511996103049232142167211743191683781648512014832362459559856693630494732707884955432953147020107808785229992192126725175063911532288940705388888046037067515258273024719097271161514531173267876135343508366278984508762496242519720951270056834041944059649101791008340747496285085640109918554202752001981846837443669706273264738087676875097449707539977671930208822764648724192782801000572275842862296371755783552748880306078400330137804843499334757630591182054669342988045303751713219039837151485098315512875479453706284100885086727189147561001266608354957119762616455065348934141964483649220086128460497691217868667752213061844527702432670730237951683007783196164763353123144490123107227201726873224802576306862956760188764043754788643989643487601142944330850305706016364666062478469066406033436143853778263074341423773961319007906641943250443291616565895567972129971950626676104644081775728182176959792173476954180882278594647171693099174765550202324753333910530006983574658925172110514174217987997644791664860165226606503290141680747336714223849414723206119957086434958676987078752379017099127584886266406002116665518556517145200033010393108013172354175732822986971672851155164301884963366852489711589311894006492454179738338765283606810059194305397979247374916031231550363900561169600272393467703636030812664642122005977880753021612120205459334581463683220802686968904649030519216758468873813190132900271414332900387984891157919530864622953828541556547219641997575387410985076095311128683065834066392557734784037619209385464707641763581742190400716731997468701796332490057522935450518176279578391549952439154409984195081453969561650998623621361435598464076016369721631256426924704777103592868754089714054478993636035185054732624393307095384137540541880505629878564146761385179152059622167634312889819042967174422826716628623556398194458626926683715554977718824720120843619975982574972846916634476414887445025350441951877384514628398064810291062730844277320735775602769733025132037968304063676963172271397346170160610564560352665300503861173387305743806534656875456398837467755650544338976943791273679302265466216757765055354313710087360097700266313142469408225482701744637468541969159769524517093483589960394787086764302663762384877803059161299937143011440047620728248671661630823967952449706906772698351364312941886756503108198112220753537726624078000224534744964855600983698543717409585231712991022412083078848434863980108340989501792655877439048274692193986292690000730791544808189999833097319134485750629602426455684412217997247309626917447658619309981852274114597244799662704827897549828823862230894087012132312309981474623377801060359407979862844741053609313303907541269163514809648709275163259701220893175475532828431064028985665920693396194525471845524315457803685780084368784898028319174163523516715996854156517181616129161814264530838068287703008419923122497041941432772643907165052594968068550858764709739689594934817540065163966605860725495253218415574854410333316010873008412606452186751876651216156568062772817524568405304938488953247174690323055699766555154614502763408348059221410904878283216226756562419728151657374795791471769280120755100433373467203164822706247492708963455406139261913399135711176004126785860721197543744422352477853417576433118699079839142626352167741997970609903638903757831160072947195159944883809589393365725167130985309685529367694543492669135755907593258573428345802756227484348175006511620308640062551082974398484584605757028359171214684627563288602250481770121269641965432298787370226836914133911097997182748828829164884788445081039296200882005868860608897311124311529528623128076965978942542772522173217901166632469307047221505720692278184478633051145969783241665240112766238727794937776048489994679671319159528074739065572632058021041185819915225627695109767420212747011455089003770926788800387747778641856513739440208519611500386436080607264715156751570377153348219098095565376089206445394163017802967413965718270867758035614401054889662508524920139357968842846832120403643060783612741943086894188894445272621834086885897801649074480471482177100139760697057449642463243625587486297051066455702703063374581219834712998975245264687657182211688029988474179262080867705441080621553499151538314379888050996791420574341609429125901259552218963798335531475948792724677434035510316661453788115106769944210983269655256698394064441948938423207724069123140444350797799250849505523696379166931870032158215931874213219386946341799994137200261884131982004938400165507570572865911435230925560783948203610958338302156191447333039426461418506317581705169260831632197563392440536967974694726695108154715039931728030911691604343392598549377264615358425509276255313503108411292493862744150243699824410337013400493987949948506312806712949573668040602916872958288928102609806961469641391223479310526159067773167854994752031119474391828804904545276307793042560043487845808516146199841709769187408281157401983607218549734439014745369517523327434970310119696314097934578627345389643028176538785282295450067484896130234549780464565909257618008626784058222565907232070705530086227024251642333717115519465121424150768974828587297107324361841160746831856980665131691533963138342011042202697525848195439732816537304432733095629900515403265862092585819785496502766036027178682914144438888474290580562492431246376284883535555585085704756243790803452664057977052195586607205658345926716643186540512263200462167599498440919868756638974305148186443663717661160878746632063790867653108389331644193557332925164685518192986208306589364343715250147183966426880864510547803581879683496701530576127329608394235895799571325073136291496690125359997751248459371784838984120343930249252722901478564637839448021341081961165644013678633564295533466249950468383978061929186669692993608640896713619539028408628939677975522553720108514243746673837007731239049972990857665330452590867297851260001950910311717225288887233582236594237580359797105435850592620302811102486317812935740507739352219584625900654517240448773149870228614932643554195486295094452261688651562792711631814901162422635248200507982485532764911811163021754526715478522772284378061502242843596711251784322547971421871943220188257281897408707609058612405323041223797009084338421682033276869478040880339721911877369347341275471982449512316293306724241060225727914510291768760238929968167027169467750241386030353683410350103526005531544854958763077272733103017447604307413987448458873002016469950352541121762068224476520164822231797340871991931594305734592786808185278739757259553511748367665462026094575799905248421246295847725673349655658998027741542816566160108260910866344799855566653887629357658662049448521747239684925157606912778092657491781156932885027653614385502409482727191221872609752000605764575643886692574370471419528691791780213589590366730361665885363022495191156227306450847821045651414320506471148263270467954575773106286893685270447678584642446027437333245995892082373255276881259220531104545694291881788322154075672922865793526063550624617220982044589540399998106501514470225035073473338513072934988985470680117075083412601050925310272654009779797987045985445641962460761283812787167967235729366757884016638258733984855922989956565216385378429424006992557847869511096137528772830778002975970225218788141359341804953356134471044570890607523022391901770283248897701963618309576979470979504338333538034972734028203125353075401648374254263204213319571209269148129819715977834272985411753800827469770975756658999132802176715334207859899394731702475895348461439683408988944636059152737297282129177357517682859899023541326315383150401630945623310930060332213716743457175157759921675364247790853680784876885074666550737116647424126348916113629757993073785813797365650267039408248682068392894459556037125031369526482552930762893481527846492723489756138537837282119985622254365924523642811606285549869797205472527159710970876559736600760710968138281137567819839253938604086097404027700436400094341299006885083075909842329850179758903531842577905089855598250249847530139423208804762798988893414565929245967738204574828454647919384940091928338105731305128400448250078880574208799902917455104795320484035764052155239923202467827778903514141056089618237128775247535375769601023323008772348664870683556625536444222781041784176242621360622395577571047845519113008937929967588962968360615696159943810316491010648651019809281204875867787013382888400306499634311246869698635147557968813609375576329177750780482082386858898238392949409032391100277813740236397763010201625287802222051838137103202811724895455653403597614500100417074615238946992453125482380322081955979158704104109523883311801090695603557312458495573210628895845491816203833684666983120495255272675459120484809782080111986706487462089178526209146244002499461710396373118986264837329904316479275778649615265107536184207683492838215269745245650037379593344730683752835785897583606081795204441674951191751223368761392266768071947064812803170452913884138442676744637576956559209297157281104761014934793229585532185586746115674076262497246233086992260936555014208280458707433270902132597273187017618038735977705975596793943511372249641012923059222235830568099787444579416119968465845443292453497004595807390341716373271468637188823945222774507510311487188645933105217363394719916517421633555021548506061858435045861739123110987327151051713474131373491396971930779059606123990398481494817931003186715180946252487357147756402521015752591631698023144017988392280519768891462933573471468657839026820776303899711567448206869717768399273445387390778220680719340957557847345534524634049037105812505116019734924236667918438243631950513371753819292543725480184306925516626593342564102599356229714967747891541166842304654175009757719552166058284003411081584937458500956888960003850433179326413030482872343920051668087974957720812536731326539938692724986438808507736479734754062079935601426575607070236673612361767870431804899121646776537100073670180808965269346053668110538439014635494789465589235482162240847520299232527841482263506607326784275773264691293001685011392015962187336762713012497067373956985784364842408817215234612664202530512076900152751130822607541207483577705703907888126816265518346850852444269098413097828391739262789972709151470557628392361834831191347015554425561263310747369994372368444081157778333204577956590754965232364676772489600277065241363616330653387690750301906345757883128857797100256413019783922303851479754085371603970291880360972634234246487220309854623272276489631510159293483438763384937125790134855458401157867671171175815511951988598955164422825666979061636507320207597199155293147384344931777374669307735525469564557596353837960000152447183816570076990777697457856425653463924257587568904149981223330224314492053255438711134104439063250894737349576067383259289827918443982588560401102633171119791444487969750430349147712384170421052801435880352528714532627854918545558925879242732906579116039358812450384983814548502123588906677790171272936232089318127568356571201960486023835656893526768002432550387902060942968523775158738382986566932727025741415193819492772188959515324239488192916714919045594012290348271851734691281004587567179272239925768905165127855689343150957265782360725107019044254951938048431977210669424168797282612490617523186315409066814099675325162719465073089338982907936837520152702220025901622201200721875340840825694967293122839397582025078417900094057357951996248349099080721726924636057675234415692610514651961473443620840216671528073403305396496647420107449150091658488158075962818236519654153269444442383229983360533433714588494754603865437667613244986549200279083048043706309499564829262435047628252536079420451480455998914710520163216866052206008347180430825916377102698985303885657350194633237465562426779644138256648903347181910630625501108176694192054118353762192265781492064887960417125320160528538788757083981236504993122338282143477589207189757476972431583886146314694987477326935770754600177997450326939136217068932352903955687654039177393683557526976660044714741267070184300582306524540991733313177344311416300933645395326695698564003725762541743087539705769091937211479795740607075693791953891919670909720186941795202197886432740046158976785791345101649414543502942534283202410687681253176862071867610558170340529971145523682556225783864274957408550582230854832232248071339681303447366012794724418656787987999284355468821709562901018095173613890904783678922025736803826748935168220178847341132582547952136450556607697812804217735594206771343660698551215527916290108089430190763904081278106620749454313654679760882176394472895181307552708349019473393866826155206435490870407550981432828322876206667325311235376714523331703491406250890105278328095719179178280018379761260867705314663848439907740713453657351234896983195984676678905985861582962652177135751869286706609934309831215096771948506106399214844414254496721430223154450841816879620274157597815428294133476165677535248655866036921769973547326152935948269637263198474447447901494134309626806436246210537790620041035629684926682634434013666205935223902650198700712541728731680321351535058443877013609747882131310678222485002894063997923050475660937918156597836466239173175754134053520830684612299335019912555300395365166490791505967144725675097273880431671611384725318265301501718153123031087401511839349825806403675776710289809039947152888282291808522912621743793945335926116179118664434913243835265887172764861159739128055215034235221271937039420537461434370595544259757415268815425744244746027666631853626182882084877950224390364919753430711823105239211101233207758412779330856108433933346965242572236597581743909034491783113069270562377266354083551139192847768580686237677126997242282334316792163042949634338762114036704636138893530223469879162616531206150222196606378231538076909087227838807567727956800415513946132414190625747268627444422383558751165443824292695124993522819856901129582538483307567612358337004543355691018204216137632362540857587598509281662328555482365577318150793756018979800811837495843119461209888212375214695294446445172455683755726471835329680520753077180792557755747919157125366311898443052216944787052711238561732422488573903676507413948766785803506256931114135283902558261565363884227104464435531199016226952391965991505157293660755605739540857946880891787438383391770531860362327305780054838931763361655141953594382173651939713929185579762812091173633155869897867388649478322786183157417662814650804099308966251983930419008310107810667352975378066012664045658228998354117235903778029548417639629264783755929791583136805090437612424188659673756158436801461703077848573822260125592283182302778025332129245525053885701393006909108758133095057987170016917706820143798964118332476568022980527981673764319846224833201089869793723038324894930713268947220416168275291959274454444183791092098838077684259583776877893092289694599624770658806116225320087001220305269553343919609726020335553102694719272077722899188850744824275750712289980483197249416749670043610317968036245207675392573985465790648637995565902104661598753173772367879870641788890425225993163350504276565531647861087133611635085665675706453792329481610262776678496597433212416070340395733466304950221840009358374408093985582509027922676130671789308712171942589886639942928502154537226077503795458377349050715015861844295528694074757993241038187483572465377569152938866871558414369043335411846165739316587773581007551330331020319688577410852941308242045264086798672624324132577777868024796476596710565737607269852102242520031404284590930350227870645461841484358951276996893409415673784918972325850897984256313673791921059787298318701507290918973015218046361791154048476769919818081576134674592469491677079793750929228401050257370983638292443812674799464361893712432903768557872803359607323855243833239684499883072428987985232366049320977300550895954014464032819598723238474408077227468871386967001275577858183740922394881771882217416996209808650856916782154926542939085595830877649547722723998335461115461385089282632980846929644157390325937845031195588503420762470019253591814996943991943155680720425904480562180761844387407626359561864934708301630930549714861954999868623797115042477920587869537075067884825891486123124920662611938603575965317771439055988503997555501256706291162751340637683647965196190933820600770713537809849622200230919748965719549738006008607463360536884951345211616077196606463909919987296320470517553075094764712325415857454240221329478646433364769979011582328631597627057395608508294376339312215994546220590588496974123908492601925086053986503209306764478919158248837478993184503191929352602375659059332131451252872334793476666103997200282103175054850746414185741573282194726290889547453306886425208472885415291295561700088324914454030681044707820350957170099290731716318042009339582527642250424061169507644727231867604974041971801909100411018965238662507687755712889128599152063075220980741315388862737115031390735982699885218009654129691814210535373000441687935951498812972896158537477005306001718587658013056974322396085850404573421659569429562125701688550825057270896916420322049037092495980274589639834043797050904139021329960674288821871749426424964804090560208757160756777594632324692555838761263421465202432620655948658455886425353048599227604687463531168595348937566021505275695289957411393685910259647366204881071775990435226237614190583737619143992259915135308547533788982242474549610156473090773424548212576530184435008974109585997777228818250488114504135361450184599623750191085509661595412406467198048774746353686528800921949704613535903304805148525094735542090857002343681559145077654412621229524060750971945373754979844613957572461656352362059406567373341242284679907342757940521591064924379290233396268552181996037961131982080339035671667521551863722119791081777192414928562929728283604101500322095073424926964832739505581919299605506630645303829959465406504585968929209242134002252353611112683961282811671831445298770921031472428968634345012711713289841426001871057896361824629450393334307375053425469925924612149801437704255820670842319278622768652434928228875481537720803373428067239164963071376798518457296570229511322214638801777706407969526907550885415396752754648247894306055067058808543382740320279283464015428226007399904131859024220263991779737572226992127852289541529938500861996510463582152208730265320701210115959550318716647027574264781991618081674767025562058743766181288915078828673740197658112379526964189311532751295397198764954881284946990936255981703039183655597699391683609256580706845309187588212097252023675144625407226861967008607010509502048512419471547080243688244720799575025882033374320924410625461095032230313611426003431644876272287156803887841565130206819336041761217687023151534621956898877087327353906984826562534731622541284710877599166383223544963804481905530402900380887017290972976546111848984214370284341129732533192557278457919618462693737290708642897561758263214980156268977370192390724885480057760088657903358389526976485323641933387004029880812266558181246311815707482165884251749312942187013366287730464527252928746200048601029557154434999041149027362975248164183972552100531918734581945454555956040606527890413985196069549445534483352171911293627751851926209130678062527976310990942278233545365147593344678107966705150950986400683908275106384889483343466322544365750002416813571065229376399471538559454207110722094787275867643706250878966997948335088057863397499991118435533359957487350497592406769548048661746864586655002691896396345329974825116555077266244739440627732989457898503104516616515536040612316694849343294505740067325094025023095524047367282576388945354315422143366493103261984442017485355399727110248576739758247389387318379494548288856929331914794488663838123280199763959544478445046060514876778425936943248248836440524792789205105455070778581245711861251230110386812082146820772259795146716025045058959976630044265191719512380952063221758738287558566745865346350853738787211427272341250049718658814402603668879694273365750196955391986368000725394439969582114398931025053566633133832092898886201658728631412025105950038263058246793079912063942701212511657615591485382697318887494581416730572296634232250954156411126768522384466331103747284357061114991442762420631272011172190322561405543564028025966035063445905478457464373669734879478106250383757906461399890178756253758640353211761450927431041523378184219441633031431053296321855795774861619557571058414006433200060130719067643116782800171533451960813385469139672196824301005404892343177004855031945459166563236520505469773903340190485515369659159906986011407458227946671234863225449086410018032733837293988923077662285098328622754159390510623489210721284758033891230276463526170860539837675467183271088129161473866501568455134546323363608460401580376147481356795443279445807771507270825882662299026257813376882805725415963347639950756070246666662859113351067115580003703338004097737142019304717483884985519327328768312059146258820071591060333453897283776168300046815668817331222169231704627807194913799216761231123664516245954911175361454879585722495227399606775372123462361429253599681445006286940508091747541253374034556006852425393234568068908293788003235545928385957247742807768311367079309355550792056303685370280365039915116574496923921426940900950727598624170273618933224639770806629647796692605144890892068648870184677532353439773529597340671318294297007823117589304086375958819708946761566405675296058378239230213079519451321696686325378916887408817500278723421747091702970861718790049708987453917944232547843869208397648667537925373016952638492803536645248153233096371367515026024868079252523010654844942430272338515425758670245191079813287524688864314223937002916114132512727151245600894049516556598980799321020980600009257725779118857748653198028989234128020184686970049326258277673290231507200541005006649097870973024282990028400735269408923793374446779893230820021276700343814490970140253685341170487959553028542103756757341871595318775808466566280487248628815235493354007153904594597594474981453303012213673076829061551024190565358285501823869246496316961490628988571891381760073633526066998993519815696034529642639728720193972835680837648674248254556899775031091767208058622093739115434796190441044079656167239938984774433130060693129446080523718404457714280290325714493363817561386326793281674466678907367681533975425119135075330275911519010589576181061719166349740195460689612498046614929582280447115072108917910678343373945656692558221867217115513738956477528980342050487670133809244426751666065627183715177952192832364501158335885222433039111784127519470642385444209529998023484917896935308489022761785739178908575343804693297600159632059266866458552000143933540092533826209317234557958548319574225985778708632120648604697213436635710491190566731120178918942252390794657380452955766321851800546527142370127471365968856547859156066870806946250184454550839465200936062739455711128241460348102648694632839937893928702722951273515887404995346832438900947849164408751405326234150393261312066780233815335384236543178725371614109009730602689489913230260767505357700208860337030814989263283638775488490301425346794886243739959624460271930606364315486518932063269475881911205758038774201611398611619840443601460470368458493908235537804932073719371661267743732043984698159861931830017996046718723882225808270216005723686352851160124349174630702128598273185356682257200485763641707076819613280671538583024135092141353448035815097600881572540064355296388102803405985320567597731324977157292030599675887975655789510052859610177925843267388055286335737912763505282418259479109688360547999990411374531658246046208600358078125360111838348278204930012619921695125641745678736739656985275480421864617027525676953666015291037055616812234597508437602204161114841771651092246999813754759011738009691252511433450037180637062151113922024723986518188453501977616371936521909034368598339015307572562965452967192418262675111587163165351866496093860555498643621584391700333355102733990277026366071309372260427472321833627771714626681091619741458875818639486337725498880555175799120268746296092376574836312089748349786370081236252329182188555440811448587018984702875352474627066714098800065668020805539729954682679030229237344907112793338440030137246716270460619652124134087883664604822047056833586667299066024489288132144262291709089749726673091302964705483270784780705716875905983703742785815870149984734085588267306504458168354733340702698656311353404997843042290616065774998230767003302782931591169562813039672311513409064746593364206279608554938296260800347010404728469435987343794802774945681269007729078820793224930061403696219865598093502431716488908358022257826484455132548176990979122123295590737327596020476908298794289332618444479823386233578033084128045175191057834026146046565912885103967385465980789724342058202226522154314331885623780171773232569055885361839387103187567295296591529774109583863336170005792967592751088796438937909785097455555502117748329717695816988322672986391403150697601358417528580879216820002835571730023034586445999775081232698012507339370368978420296902155349380086540954251042987957291607188145618420686331701959457687615244002796679645477043067817377243911700771609102084748905419157598895597814257429153169524628705261407692586016660956617025956503956002204592112274253259603460354947444863281451498167693312369531161870536603003885863155976206497441028691777530906717283702672014666055997988896034229385763609893669285664295085407164180640141492574678471386456358935374529751916917802176473960621768808251939983775126480335770183479511806551095122899275101179066133971191202431947362515980178771083745410467076937762587633138121614377524307543361507511849100400201330572671948483166295367786206329015578937866299047665165323262796230851834722576287673750071745423127164797053115556308034269656087413725412084017619935338203024227053556856421083135184810901719422513654071456697816959060335407880168362347146928575034944324868487427403669237684886977385666467751436746590729204547527819100382059754921307730096626887687403954770179525977180069169942431043301587079354732732732824927612426872676017974826153321113842652085212001684585464766022318042999019943568938665753254736742270158566675575551916182356706772714792912115585553543075338924834800494858294012287500454337478296237799128464619578558607037033490322936885569775054279355033472961167367783347805212356322986691495869850151321304899763264039297496112071511957405637201205769700925925967073839987779669449940332557279919473516397733146518525646766434641097242234541711233973832703590420141924996394306940407943900121450687711565011425521306621207661499471265275234007777038889316403497585543565864153653136264812614759257734082383867893950914579166044989604574983194573209959837025473818887659097061387113108771537492487908572877671419735508087963277727295423012349989128777817627014996396731836553631602364248584914030475743086854888850876571532763170245979200987521403741180500112623778441974822832625405789182422447364298972678699975643064086475725434164310500642716488508292878024650257088129862312354303569684791710922332370211050129672667550244910128215768066618620012647308313552956450472068886451140503621759469312819274063541878606912117796612693763787099363998860615292216675982372479715516350927651098220950248092163711718948563013987239906121616217797600728659540926394879039189397301770609401105236615789724803910840469856280388832202027064709924571745810521084838580011151667683846351934358701727408716782575713010227155975627773003627784678145886325804257082562607101749408691417564063934340216066292250952800640394704233038955121043131164235890580402535896468713495680855860954180121239756175616404803341450625412536719602436795261738855229878506734253099052254108985419654873147720318715816893599922239968688362256277936272209980184324087175752497598039983865003191703988096811309336825655651464876464904992838487198630959301343803511994576120941731251390152989825011828772254968907077184243483850638308110501724897102089036565017622519863590035243120075277705491626182522050751816701363791355426919598695395824119462595428530094901193168406985217148608970630311468417017409942950060486262756186761490999394976264820540140478297676229857177040116535994010433143559304378391416032115637781748391012593132455592487335099350587383124851676379094165728928001720756083709043056750046285335176334826979925166546052273075317071669466145118419576097424686364118891749974325499691446902565615934643522173137988569679238893420447073248507582905420282306762152111797760135080010574478360031694825558249962579519175537304649299011156449988543897903744416467539916302960777932986343376366352550871191067327442775344954617227304937217743164197286374297750834163454598394254382506065590205020173432487423340525083325429466914405274713645555370331745997951354324473214381093579993953207462665862059893142023057031591086856929970379590620698879391222196795195778257349468909504252226398955013148450464372802745507090838875113401238910745687003281239916706587914088114050463879421500116790743320085483823780377949720751191613511947986632228492385497956592840264527049468735964531477637164471013470133856384619104717735604405410388868713351357381786519977665598971181252782193687273052557976091390770298638627116362816066947443799189976115163038942587352638577222442265261237251584537133929344051727711806421058342320859830238648814264782649118174874881980411026056913687192079865792675272034540797203827096771851306924206598480889971180913322489373474953262054815506550276302090291996447683113131800548699439235558758200475803916999946641347924254709926707673192686478889414422967021400496382113754158816938583348657697274654519646345913929638282847768664840745571175374504573329926447499530794461354977793000953781951734280921368012538472979808566367316048336668262068208582063886118971490310624500958636346592344414280498624288336198193048785119980641828658969140523606248205909911676409726305230492800630026064801175097927416656044969330022233821433526621563864961264132686540651466869293882815027312925849833918338949037000262609300490929918462069781580642642478130623531293607398739166788398551850796936093887393086378818052988389648521840735906379992751811324433372517412550388208067672915771525274858445524879071843675350047676008718872941707934051554178113991207876914069482986563030494608510709159883340842617900995885739721582853663318628289539251401772993166412052970085259205694163526026790115049874593273958754721973364788424750108574485251297005198285781316873392915085987151729800732399588413772776590306352064516781270673579749133522596489768684240304314058752490151611970730761478413221079305380673878824886506834799141698832977076520831163041367651285303047075773707886716157322808391148702001172189544403161484475751910774592822894055887474171422862101810017898124450900261619293819086872144254947889315447661833746281835930761124137489486124056545418388283891536318153278478046125714123301479449023456971809583191632162947435664411354995480044320084441000567580530337376175436682359453499755832025225035410836726078423153701940332994707636864724664524283290606958938310772217121749620247206375963629038392838111377672914254512927102763818312619172675216301012265174746945651600661212268177243340478990994694274579525663759041267095729970216015403554305400716263272042809324747752913789135647629925057299319086592952004401971889778073272140540061265442846117798629612379250787042640347080492716979903431753572814373444551650946608144427741854486451057776156123466208112835427410130370527377290425378666518533680086105196589912246564748767833855522125947299470295165242910007802378363411001442639288954299695367611580309429472446312010207948835059761720971231172638600645540544716014845101489676413772840372121778004159292604140938708101099359679230350729984442098945294983127439090293398079293111515372234059237861100532932211491685936417102591703679289096427684459194129121851533702660268318263722500098841640014028157027533779463088006034653427369970229987241992617888016315001237456763824229830566079388855681895815751596788891522987647351961876359611156171335244450556211610103978386551605467762671575578143055174035634216171165785470064070599360261514969069094570157923363310315718149544626339120902909047416084104244934813624118161884464176208572645936907510316171731335538423336975920325886067372069681198185928502190061013548957093403125638527046371942841431488976122294909089783052824565777800480310108933689680821270177780377608178521516306145456167984158632654260639416364680639926018654314663013409193535427134882231200882185775512791918024396296909045661670292427993443955380061340128995938170378720877166128716177782894629137120211310964405121543311098870569269778604865749946347774376284858753064893857374501267768132568329232555163380921880515549734586971951355260943955155946127334378588644039017227809745436442740376439414241643481998797549460521040154718559469298784550951532234839028192310814670203103586629283022344776116185628879344309786058032331773765894726263135165693423124961579351044801300131289284976790667892713281037395199582918332736232635750689656176240653850216174217257734495219645904255584685579600102618679719572413053043549538630345890553241854086301634265184708988523206237587712247591321675671117921432222286639442029848988174226326713219459709670371480154713487706884874603054453246847054753638862902111685796161427393579682053681828710135988821075069058466921642857015959470208077552907830308307517309558933159580145121042303418633660905175632937089377743773601263611868567628312526757066939886331188098698609627637193637897439220692818583702951053427429461149141465392034230563866293381780670004414197407660643420374465117948498866920599372742033029069278132193354480110875774621277997989658768218260124071312688649955192231351189701066182472905210776318378756787036236052333887915583625508221444689064099765726310898695746681445573705332987851168559653261115935934782317433069392360217743812372674714101135560031980487379189840245040311318472333048245670901200803677108806588895443613612883613098465063865469841558322742149406311818188936013771569837874593964776280392562769663972551828992826585600726381424191133549952506173146414685062450648752998794399321963510463217152964047238404107694572139063792618346726816353989062439737444894428446308987805322620931930658103820600980734323226664349308677660479652219502731395913139376207822057854984226934136919481333710048900487608191248631018331480201179773546209300442683510596427816104735955195479031674442587839221872003747349400542170567832252896417052068173769065589782617501315480097412654667812566725653563186383038872352722240622409297329851644647861052534811692521040186916850566588359789575030328182134187906747843903077875830855539979986642263156966987685421139359278425226825341038900958093279074883964830238648142014740502824459142701997669469407232587134102715211886840993532961068605513008514382560391601296863317384499158761899635880023012977204453975648598467731561198688871203174381437234788751358355643949329900118162279951707905803177062111326362381819571066306790164432403742465680911210588421741367231683620715749765716874484691494596000548750286620162475979601235651856265286502716262019768846535732202903590663430881528046827493913170377549251250634303071343447953559737577567395889982277860665811088657049640211060562772731259900327360318251171514830281313419105660630062485603043589219887678669294141324668004591531345036328130640719729906469389166304216007075694461426089605726126462563300992310465919190468805511119795900734490239150212333329203461177047702541590450596650155815203534419303917309617595580557765252033631609337364636755157787316112990325836679236065633221700395905103089062520341827414914167791742642306150680455012082574145650068223572426327004879350739580050804752196583816051371156475682783129333581088904733595829401917918135774696586021363376442428002111273333885237890908419790901997768401018117376395974818266012080366598730026195072843817437222918145819503137309479259206367523317917601292648871642139456488962825616681682494148716984686343662241032871577842633135251009055991872761442344940781362573410750160148452864678155457211483702594201560597951723684957525102194147616232678359235100090039438417878687516079949751163662377392060096785324354522926483036283965842437689079036450843917226631830795765462034415289028037660087076056533697489834791304384120507168634712551014923832275730339941523686236129050360829056194780755737728981350497192681168294802422145272319291357734181051635756708161685718299043606135551630503912666052129783391781483962393386639072575629247347457855466241345088990884903150257589086609450559733139054780004229927232908306024174199132966542163231998155149766456547454166696912048503828350503334428986126027017674711408102170357495540397282729184973765939950016700365079624771911052903170561849569823222062117267608744218385139544183758707563559848708692838884876468072696735708817954634931726156079090911718227959658880986791486630777906584876221998711768497738451841345708233705521321730398027296019520802136187474506729708801599452044370144209286997754149587370057186610861150549459210381863775341698390499673169651636153790125843065741041418974364737304652377864895678575971802437892448208271429589988026955652596752079234061349378081353539170289566145344546675184856942954787517888285502753330932238775228537836761015579352638191190406858324292796155240113547591467170190881380110682244516776578098127450678425977161270774692760844234860805306667833888829088736763268786486010894092761623033629554627668954879253646800949805409530100880902975619468261669055054947682716160996750816599167473661615172169158829015258325824286760217515388086684027613047707756462513255237419432512567142910214000489051207643965595427783760863368196457422954916656964067446825151488430259016054062786625918079845167226165769941219469484470094601693846841979743930801226082163318301204187162402277724196057553754802828734926072185757429397420435821978261549016390227699833433298378551602259175335152038946271017750627817537423062816005602254394364778042637938333761011896533179744403768157519653453007061046383068302524507803774663830480220699547426993147083297989080423674084842034394586782034928054659773896747485123913177821247308778231300229907657733658056934144569124374215984407729719125624934370941488172425614630315855020461592701959951515411968525078607547375459857012513842514425029238737231950860379676563583559514645268872213758876326548128266773895307240373623611183177205216420422068079004028167408864007692504181537273192505066415670198507898243268906257901282366285648326833779570811079190958041408722261437878704054945806419466276898628883482074834969102668540126406539440771039255411929486718962834312509623536843927735983849149263224814437249030327332405787716540199167954632767706765622915599552339872357458982683549914157515731404444470291639342329345551275136998337172167025564314648709371538554337971156803551300192976320705094938272503859124855415987642004071190064671761951786461687662751457426328650592391445547343176409295047816468867085733526100126216059508976659841659454787195067182455873810817617550511457018246194550702633733343753205153509981685245630380353190697097266656591391008737286105206483711044128167681150784127700745997338304581165342976674356438515131538324246861775545811854741463341869668259496205870935124438494092652877148091449569749037035476415841423844907319710618768574346487234003274092696071481195258483502372627020239766353834594164636644159975971739016159666445572705161972582980084517502279892139750755507331575658476590539787711987426562093590912458115621116414209120297982023843676638817108115016310422903268373835099169602786032403711140732412689176522404878263693676179708866648107484543243461611928650464283914316959257440601585209217711581472227854672607842363452064055252094435806938705279089601452513604061593118130899352367997342134042527412098785583333041962553559220118793083503273037219925961253526315221554432586135422891502148533147025597137512471985614781318368506383905769803628840596823475084445002606999395782537494282006174941741274482892628409369007103063074868759836097522408749636275266443703488449037159935103965069521300626058883594760188820700439967265131321616811879785171802022453053354585754063608812240210187907422416440944094817028750213399252438669999963331970039569574153259973138717683626026309679329977714717962344693200286644137181778943741225944894980316040497285420994566226592818278490216415526278043782520118810040749230063715946229887949242526101658377013508144886942482162585729119121173223807439195874620030768375242193076705826453143973179015040562163037416731811914290013549223209908871654776225736975025729555214641640443081234634215390761799183841628416832152011261975801109782840744168369739193410834068607203775819247141906220800998159988905590543737245975723096847597171002076340936025865180958486578061787412604058044990845540198313094351763679776449449564628035637767783718653339433800055499853860766183019557983229473336176683802664509570300605773784592946100322384532387486005162714467563477603810504994226428621282910612224026066357715305687869767672202963858021929013720421106340163769879209214628530066433582473626004988875076900270205260773005635688892790608007885819664613124608066666427467695095654096301959589957381158514238149154958701489683758961002148279090218441581444839766725783530579719732661636621590453136445149736137511236418162157873501609435663011793046457159100753422794103702096973799650354366510764889546328982595346469773024247987733323764765310164319504674188186806295703367461432087082733213015019983385702222477513389676856485340130194033184799528368229360557082868318328786324882898984582935569341409606787693436244114779588592375545376482103666513891550670477047598829459991538025499769162207731133343709897207512504390841885204099320661339669873476167229850049944257592535100920028674578901531988527085312158915643884980778290327887159049415397246108107947666111697271809863834724634610471961410361511215690019598307267199523436264510928164650836555913832993690182193732194703489434169664026605909317314825647153122240185100117044367049633338732728744594332284113281625649758574910013018823305151080910840630579338167570324266574014205943139742599761128497802433669694273736107721353929260835619866348737036162833023364679829963618881527011887541190137563852553776486348600883441506285489752825574200619438401054243011857169481738705455708729516363609789450201814319996451067477315698415777033702717842203420877102811924712191439820515907034418606542235443681597502144277609418797225911125222716492139020302709881170307647832434697163769854199537258576864407108825683042520200203581064570499699065662697555340486337835328468671627110320090412608348981235263701139555260452059803369086127702457535177122232810760159208163696715656127806354245340852449199897278774766774120249222550955006800557992892667508510195954671984778902391790104860564567961354928424697527263150973930700982266210649283673650619071593297651789664233559957774068336684488617132038550392585499512958964295110464970269963845227739790798965557729155775473571522374016167096403952693534505435305911090607531420293883326520143959713923553146592564519524391860006313201437502014085035145409524923689189626945349285013918714566584205072753197856881565546995650362827137749786317180099838924084161034638153366184869767335411592418337929377626131643457621849278585837915223545859142567386194539913415920688125117653441558618407435576794021926623234422113336837895357086627652555929392570441562270133868982872965316438644075302310241206871594629399904582008108658161003484892666755187167947812963180020539842850172664487813440702427444127590209141983915021458548760933776180694038523098115861815459185994341172056241222031849404742388340413722927299600085913502827596147356806411641326608045173083349523122128235302891155328342540812443900894613597245353526438372709476008497198551486451492635701826152239416335266314019033924860025673209275671241719767543044544811112779221239782596299000787102998015437110254090282725928942861684267740843228274950186898541159023630346316652363376935627402520594415133055253455213221668121306257842714324732730859165457722482450222760181770685122914184219527152167038904647478829271481010368415684248033984037512832497673703776223760340429086715510189104904450706669838210470515237480250483562865762802219334563305659805924471427359439430226478222838058516087822562185761403288091223855260945452174564161561351102654913463031063782552948332173938876792633358336868286544664183874493795130591376867421944384879679120285762069942869063594874899255142238643619199722049801904949694395857263274172667647062847360765630209135572929957060845787270064291674177137751576397371436904130715804539629772940265336327861249465857075888994815080103621326695471668777561365673586832613533936248598133153394970990821621333510151504647836287770849889522215200780762911922316122146160546242393028914921910547293737254929857110484042656385132195298105863960878777756754390279465999598135135515802032127537513940575869458732265678930169908377627384508255846582538154906781081258517553426825558817257433486602832886554663679456107761453292405886774506603428289950117948870011436416956897790356584302731483495326247215402407441199125668011461504178704732192232721714589578395847919624413364433967204066721885623588095562055262223977292735342536733306945448215514653004376822762645370727899858971221527768876511319278170603808403578477902518050571727969926041059047547851158198690095814910253187531956261441172587390816366656545187699522329784578997619601626656071710615146465761398506443568329889567437124226917257698079036927695127661000163279868216027490009763300297834001394325644992319423721743948620869395350108788559989842289000443890683383119247759019753789725134260665882171420030902949442417431341010836164291955545270601814707564173578291715373783467202485704267876639176367910046981216564404146804842350112325031183977523311095918580116621494189612749451918884171641539852034816632678780651656110415615051745761681407209145834786766592412732930817733663753105846368503605823976805798684773531790726546833815352839259260583264624737550373277113494222422866434674590234162813216355585294582984233322065753140832174997087691908317718620837027136152602288993931145079232922088626203776208015221044836506554398926384989438221957889520098552699600827284240564118920831798703088962173113354413050586056650776230889581719627766444905652883135895926315562333190277013024088129723202960085311287793343752896447910548613709271134022146410207602152034566718243005827290052591647119002218333874744641914297204273095289968762719466006243150420846870820251416289904651159619168393999479046458682096019161034627936556908182518613168167812143620065649222850521073231851498419929407791277634961048495656864099113310138258205502655717908012998571977765027540713470912533912905049891496947998426427230770697422005015949253449422432222475350966955079443815474453530726367800393582048551848675152611266990392146963430623094156337138819283086338099414168542631521181245578758187181591307574252866451671381187564055421267275625996822292083732166712612957255358899760300884510094280000142936229931519983863972932265779505722272249943210356994730536341595957325310995686350098321247577103925994309125020591598333540949646601246933238540673779056599043541722191088753664101630758745099219754028818847171423482022877668029661332978101121790239553688825069995052424543709739103175098133412672346905763510246482162300760996515855956246603509254797928365717493487832338874175513730511479670711048285051433731084397485171555105146652050750790683497446474552690346771856454780002847559384516434243352546512827826938284814262220113432129326382732691887860893716370357080152592774644333427401308092479072572066934269681692665042695297907156849621453509423180796433127151431204387266563500011719693540471601838361133088173918360914057964903234764164477795718345885647207183042171014889272504585707377389126267461866370998150980075352482524228377680504827311392325638155297890822414074513459360392313071371528806253373851876798739596272925204775543006992182325894153696787527036122014572343146531230986542303153381803917902135289297908692001984216792415188947548120833871997935474618155928164001220223130420068255806772055306302757654160097317139155552013878458487929590907756041605597385102980991711836904510363486739686681615345923775488924987517831423179749167202802257429790909087622572513819285923627110827621025070589535071550048683945288432825386208966301755897414405362788690426550803754385415110370734065036697113586677899975076358303278242116538836924608154174911784226425721518818493934969636652284080366688751214391878483115242939009120847994623145391806723191761527797028432289861127214836850708301804546733898596744031738046519684673573985352915955722799913817851389239865296166642563813764596563186039655635854421897793004168304551364404343549095193060236200743325693806846669582686741294111075420687562874634177280640075421365311662714765573832835709921030919185191926578643020537655816524238901721796396409305998383048717313622410641550153930917114065078586289756230905022471626355715357345980463529487440172826382160801664553403864708813801444616804722240325685248829251230000152976781725554430890670944165921562237988163959105669718993764558554869691965360782886513862520420850231902063574104139014941901153397277513938992512338178906415390347954492914889663820816344995534324935827014608416789125493031801865494722384108058730429410976686601739520484949983675474115213315194278773711092741921550793990845280706672022690301405844930034291162945717951698341334024991655880852142961333010774449831975991583173787923206315753185182768622243846734172939595718813974876219749763893040166752777985333633004396390985321380644562694137077551508987222324985324471229812253834021374586209904614142258970411255166940938367871049398277862458753385941517953560491512173319967589434352330694097011698447717938112334676678844284356844900835721818547099278101706533092650934839172222780878327818925625703429809598888926370526135323997474357779657384061986796176683874750593184443509983090645831607015977092237333276660010507637714356957897344300591610095203047067063893914546128461625991097012857031136059740383284542167469101084766607518390978593495882266008285503848733586958557630490267897018045359808570840972267805731273360808783723288604404602267933476089040329378524229591149563398579236301264370998480850196956955481886747557380716582408596386050327672129817986230017477069512661319829091029805162193223947854816084735795739560191486679500218474748631526614009806928970335804021242842151950704042458468001244121468198419765675810290656385240402626907732317684061067888321473162225718328678839631998390417552590289877268901085425469126690310549869520981012004373581162784517360093244921650725593499676947645181877473024272173378106393476895833041095978370417721777370886618080281992305449682097983573321715646425925698525525313788724729785537369935457778714749919955857073136313306334452693202246551077691759822208019877881434540969147653232754087527637863686017190201511546629295574990533031297710677799170507534458665568174787180672709557757236335221528363613403575226143728291238364038572593068534457692252236666562216101218470300995915662346170827778554077392069254571276821149378023104603410750752775630768928429765174584575181572050602522733112513387574652356169981169006534606220949531605872963462504500656093146680468237879528575566023155226568296906601686239356397543395810746063072198953804429045014316735952233704487456618023245460888937496178235352497936584386062351382002966532685489219318872197884313827858873704078242018953529428387447877203432757524196575059720596974898572849198441128374931990183255951799788463928649690703748516396287011872276159320162976016672195779425718931848851589157137583812655465097504153492350508931617247156548921882532840673717008688643709754665045029055645047210567415588272072631938449671121803430594600969173960708228016493268586000781776281874265799136496234011018513891353588499135333317682670722592134975618499113504021369953619555167632794496428416464315335647964935490492311774016288079694291724841079380139664402503570149140350255486064347199654939901610069179739153284235333240465666893747511711415309704418148166141111289136994651624489124515797581156706182488300603532665875536291468764904717153798174508920167583514956321927912626375465012795643453464934647149668621348224926356943845766672250563153995353724163625192873470703856659414283717126165224982448918501799760103023664785974677557796281797894445014247129049489576598564750856152392917996910184815599177398080717367262851610838024833906286740492973341138225941510336003494204120438874292379556758099611665792244229664025710272633992936129071357701146556542730985569361849713792214750560420711768536934676858062126577598868486002729393785846662714797100882698901463182964056035924033588743227721479862004000100864076507594124898315072570340515120996074167486931506130438284422614072608329745111807499189141536211129370211106808186924256609666657885581994005442102857968676710780306611668748013572321717961611865002303973213298182353065820296643395111912089971057442717664560292490459254503460155109251461327634597639589511571833185694901049393425109093280915030860634412669955229028601245030925832195736445235864857948669873216155755717875898977096519353770885502703570041677318371188098586676841880957051080601447556543428568724386006947589328029569989425754546715532958486359870441246104011553097014795058470162894971762722428431279702545077983155710462329531281301542639512750219304022361806949102033357769883431081936282413598177545695132008044291252509950525613053357554002859571353478514828204771957934677090532854577114798447707114542702969122477724213407108042663711992952996731863790689473858717319315282513195006078666947404303897213846128625936286519347779985322381636871537662321382749629241493855390591940607463302787740907402128597193139784004101617756323851661274934302090251642415137640036319314061486704986999985272625832328101870304496266615518334907346732110538904944192875618930294201589451633193486799487868765749236321147074458796346875436862552826445709961989942003606545703654165281896004462541305073214914115616540998179984325456355340702227378934227131326775696074281113119573528262828347383877057466056891307281539216876455170490354765743346723192011983318502887727031230217985891111466985206189253265080165889302457461575391501068997369270719369713196182439401899300972700656298117211748652620293102454514598604313208733513839722025108067875029936416162218198018796503429642881283124465464221745596603511585785879930878886372621347854657957929692858850770995529147710495698636931716111067437442786639135589248037086215117944269516479380154831895910904435760018732303644227790947234514656471045901765724069086247574683606454394769397778192059358241218223526677337548692847466308459392512265399396419878916383063528085142278842429849578925369328333252524979916851103752606036846558191834984360657338929436215133955725326690712903524992984434151009173963665773200861366223433274823089820824579257458301766187906543494755800625583709217566734244700329402957168284494635193597473919329401513836795292920101233733261605834414587238999953844419359808739968233783109901315395295209196540271212605952321963608324031545077152369351007560215462452466531411360259255718933846503349979757520052804680349415122609268235080466304918050795303419471623269932334465937609941554992922073690557880003400263577245460407289877466536231319363145941523036985171557085734940809282374856952888171789231791175001507553891229829537578132581271074779771742362428154832865216792033334105468372349229874988704822886821822005237398638491612529242880374809005524316457314659292141193177769370852076697773325848700290886463694749505009255332794829036209761033464093615678560337304612763373283257179437456516254568873247964371336238004132535911768882791332059594966879291224390450667008987036639013918686078057829910769019060708843431679302267582432367529923910231515111770884839832677336824985488780566867481504864265701247967472228988336320669972903773063899404751431187529237559365840990792759124709010183338289426420938693832629540359510370103562085784469826388548890041083753780880593401418239652192501968091968033382539891890362990622955108625587369816458249779440549590577968869871427395132123854990727346687793247892183636733313952407480169089416555549364547332690536421270942683134888863032449866063733541662743933529066639233903531356952331039686544136407221442318071002648830687059265696034029404630708718352105785063042245180404149531041602608311145866041037378271181506146050881248437021955109370451892708376479565503708826988197312299809462549820919803236546304760593667555025546188483367183853201790419818845562940788685619501452766219705507129946298697442221437147484535662243450960079373685627757994651891339207937011576332540770051382095970983749570943376364821256602289484512399218828577106533902622980581916990500149238544464305400056490610525791355987163325251695700084499948486648511530442079018172412820792139098345155168996582161793572923590892007284910891539072327317496954523319436766870388156214964843266843758518965555333937335654487715428706647069308927970050007393521418754061512387051808841153669798108233434117372306116831263144365753785312938811990810991506517324595449128280468381517353733704562347954278845219219452528523011584097844486748999117560617039152340105369898034810989074584334037692163684397326693658658430245723840167162452957760572870803436568966762443241529018097291954804766752886660618187609383527234019236492232160519065668573069365180772417696188795232888702721851078244834278494266657736132362304804649693578428306076284735716278215955374950260049545430012123912285811016951560212108858224036578915324467243106357462714530161774648792772907873056846333073638223477508729128528771808652374077944952019105744281630982795464094100073957963632790294183468771952951912152289486032185598031409969266118284315895557988799364712291449152989428073318436745545121805610331119357085152558341118047331827155429366863550531462014349979696020702905301530868368902426354145710284562884522592555970420357480442812279769619712260777849234626529181603549855778371977606410921217001851603435994789586870393865757692383222718304110990564168797114765566435942327486234558966143158016428645831666711987121220266778758815155221757772531467799555353694990741367108165080464135477030913766501287815868498187165531000051667699868179022646434646816409048528609669970967992493317211168260708538073073157545448557257463802310281448716034101484772887095173441779745453918118724083751965781733935882425110286505895631169249776297808046212727955253314168244993624065841470374027953696864479779932961713135148209003795815179432299693716868458242349427864596397616928284764661401510567234265501782152264177137079959602540863290580251411594688981632273299647908673534524795443128409817336769643889227427463887558959728231426630488693596338667304768478554910059919451499211984600494515363368055919126447009616886007430276829297348932811649738710160908336565009239725860746471092434157209624557123087329517668192299602261104504870851558448443133673004855900467092555416116850995803387820210911181808697032131697858488608676868174402808106011076120112668271973063549421138366103404161615936143670327436794419941150487364715352627760842276662976500676226539521816136922710156212000747609619447304562660248855065880582007022484560158314709290500846088589134843843345852559429332124271170810108953991479580488653119614794347411576782030971437221879588245170088272825121259181108286048739458193236909216316695327158861255713693723078642827959603510918822771601506301966212564549193850140722424571284959890182273438737204611308825346631747566159817337857985369236880263779285080998952475323002652154120010301809593458183545057363885290158487918330858889192945833357556732479784845070061215759848754535743730496821071363532691704798678427477393449829325914732278386540032280561131741069401293883778153935886727265451044731466898819132064024431732584529184521492478686127354991202682196666256565919192312834682583192261299252730207998937664300304445307090467826281486531703253925142721694860085869232810498434675481639338216293441098957643754968987642528434626983728368197374967319804783472527070782617683329841045567164164820378319666419184268946284374010839339977322735083289972895063416486408828567221935912411976266335591621068046989733183550291967552263307912038892588707231092522739552552376532646643945925577020185383389202065305076820262114478394970566782505131206104345751905277822808073116702498189767421399093741793139944176395291468963316969341159897329227122294141324393168243143095878709271908697148550615841400495557891063359262610597043417393851587286077241002218604606337130531144603379515594336220475436098262314310596213259411356764366311820293679352577850592782651504796858248920972871407331241398224178406365105094988764403455108543483565788872322065315241463883699691984197185536442728614735689175453310179085980893931421771809667841503021117992526262453023489514233257139290040149906090538935093695837160674747096105507763844637142189167054888693650456824496857177935092241963189277044733552880926606178319391309259397520610939062025107383101308284621091467427809112220378984670749737836870441416281665415550667490106359757754128240453643330539483255886511513961965711064976008376473283447978140479150237480311089881109100849906290064706601237631379778378305224904731942737906616623277872301570228149412793940402333614495429199156038346920177915751965252273098846755670346815113541079094333943658577752911554444703549695984428248838970087498824849995176997363206879077178283642628236297910637141398933675976003740774751171635788069794992949010197487603308518214101382077159545266556455606105901797905231040394994589610952711833483024109823039823032521848327736604580793081486561771237313040140470288906058635220218586087933782147167380977535523041186571884254002455826647978842919103890539264174863262223040606384366337606028976615900409454583277851001590690582967192634788895636501446179189106953453855035109396431994413462627275912499430576924420443770498092957467535646139979005127253789544363413985163747894374293281649276436685578911641298688165986878604676226108285403036178370119465368222293422460459775333210214246970320101821812135808421168964210645749340952152870687398613676226008284082686871396204551815163617148826125737238786609626648600571579558571323920848106860854886061329126750248601290044997687292492642302809423151023594461505259294463246807435390560057238387135327168064455016493739466049889706072690296410866150241050325334065650148711633881826978600507563935520013166518695565362563915603349853494051574656684699288649631638058643494541668458904231998908486794488055928560521264478224223584822837465451508379191404283652510996336173128116898124563894279962501266952938416732166820228992603782330415479821862205662433648281632647316478082928807152211250289624945506077155610851760115687877313322053634505264405589494039100049307454554949290377215222424665215632533554034228157424633529233426339225444880584125219185005208097332961614531568694072489229788184489750846010355143276151230748113870560925219303256149534094259891318506828645298266477461144747322770954916248971161129676178942840926135462995171137670733820231438052105693776387490124258223190837201349254097610401048456508159538105925227260144820119295508644836698171557220297969906865220399135350471607176987242371211699751476664987343698518842427715546889025674053260318966267970596383822629545241235603938024936334078067322251510033002647870631975863714212433187332536356529027008301094251070782917425406016210998996784146665768558357767459342706351724393739684493366368507384194213717357554843184784251537669753516254283416166914689965004382437425868515812267285830110287485120793991937057718530307942189687971767752737840970404200706125011603286206314883187852544229747563124293631453121975808970343155508955934045258675211134808505487918317551236153799551010133643132055806346213127119741279220766193533018599670321333058015036515267467954251401577316632757492165005346112460872371086284682769558999396862305127695585048320949293764710594580917358693092867136989040694451477531770459672365373743405381428249362327332881131674829466952153395204525638208704208155106229162493719404307393799094528787510118466643627471861605903845952768874341427015199955359607017909988220176324077682438036736548749144731877980264570667854080372874566686692033258553157238714880639499585767535001157656885226208875792324305268044030433266466212339586880677769503780824685404813601175851031488337186986206634372892133986700500328527057837598014340845746491386524097149306244168049620316617833397720563813212793044854068864475533987199395412520128922746203219720070322059711977030028413375578391343761301090608846812735817948419261538879510272455480640159218024665251984297741173466228476809442853618839609929336064507800006436524562301397684963658359836679652569181467900347452526104468759735259200816176019039431096674538131047621938689581190686163917620135328531107330297866367250902569871838399625767931771867625013388580958061727890848455269411770399147499454261339079888827055898287379577003358529233945495320923537617246094855830584752430094583807150645772301789366619330360135322221009672461781973276198183951987512910209211291831257887552853227783846496755465269161431616412600654018235598831216577595853282277268287798599962719767526405677491690702318952287357376752780333764399517248856285765221560878029393060975849759830587545130393966589908573432943861905167968887974459759997810766481818483217042357958386131488837533299599058725037473267241134447139272639667448396507864032141395313376944454518258782621570619136540575382443191987128883708035417262790822372806210208603940929186188423045531222530155412899700571547280304825943856947646021087750991747789708804572869941938088180925659163400510413337166050391729170937445604805654141285674688382435526818408740923529155641255511219119462426933110324831888651870985752914082040457344822732016452866456066059529157253886881627712363775904709074193809647679993743378723289293036529227935155345607278544491793292105094913379838847580407432425692738495397086086820926994250274768490205682120177569005803741468687083635741807300481576762532121881036271360318093161854066686592917464852449360709369992398727836434411219204420063843496360632137480607414495623873564302789338824430685577180047445019729383012819684582729295636641294289584821631949451915668037888866019415636362050497027460815321941021365032661692990661927342496335521877124249852539462872046085124295531184142567811983455094954495233121745654350356855902202927898325787466870321510453481599105593187669042789093901430674344537621216757314996926814319041201445798252742884352065638173064377512846853216593709776928790645828036168835975865015411979802300348653398720531615147870154954712234946769638489755747998424298739370892173837828084402550978291136871592801008046449054025687367467966055978237191834721992312463958632498912066095390188582993032056357020020722411439176557872839101777208282998875392139563479192104934521375237485039752733351195208925860524895387618997409814150809851102325832177225186128159810800610712448961484305041993902378753941016846974229819647153930090674444956603995569878095572925878489600792286641831976446247006803817190841822415361678121764796394333415878318130411990715919484324705254187968499373253040322816165409429755310194302920930998921575212991827586005223966169104191053801753731674224260145619942020269818627214976427906913127952139091926028855448769034606704937025139433191677978739923262593375989723295340216446517623367594973485046087247196177726403031528281535864106290365874565871220979124646171057104999207674975283521953251957022981013672581034384777694407124461113998110562958420113052943217304439038431080091679502740741122888911615682483292075747634598707438990227971875826871732060838926943147066516049644414461495038080230179732099302147582734278645803179518728070212394546680338131235072727617102881431633595116840146417831883220210525465366489309147719852113388608462064527928052748819578043153962698591380320361282014605501504128985777214880108364840454392318096718362744995852486841644356792015611172707190486055608059666544558691978676386126289264463473907804715918982673174101134279708181223047639558716880823127730390489087870231799362326706334224481492226610403877399481185086160065936518440426709656637781026760061921946639228254284953097127817769727544359345372969700684842933020204299953392963521115352330659678691691436296765447334948438629686458593557090418730118295743797244693398338903283759996704413725607000637156479763476116876701212110885253292990321043088819682776908392003722575804783579122491124733098521117607177320854737726127512159799290529007048809612061391513249884553717567582211557444855788517266105323551147537513696752723217448116357453514170745293977700730697028249070309077799074692494602854194481005658334020631986102660354139404375886669306500701927042968897294696177150934411466925043641126566414167048507048818232447858709788530565773316652699401610847210531321383790996682213304846582608237726828963813088220650795859452867297570810629155305870327756171014716720341221114986233457808142191380903290640540906644471632203462095090020830861906961027629464145447313800176933435564545703240581749695408867532455188024814428342525663231711497038880176819889192708743368732780568038746143169537876772747603612060371340688078568536164043082810624744595286880956881178251037618376961063700156376156014038818843422359260114068336470148545239884477008072445697596502800496711224079736661150393348381479581440151796342260010011795954951705019550293329689188038077192649905273286868065997637963306660662760713591533432264326353846232827360643572242953708427287409161980476953611232041432118760701838555707208568939025891581799302659336613111940080331346150763010113245416495658100649045147467077314133936964357625038341442806159509625704878945868760810074198240362877073596738626901649512742547539295709216533415997565830061844489221537720927544387315038052581882048580739849335894466827021366922164930350477296988238369603299242714180837320347286957071487136867899742948337810929063884350891612233479953448766795262080793657211722444983993915388601230241144815004852278680667077021286878507516347421858912121597063351642207478832525378838263722778703474556952575754443024729290875318972889712057437728155920636424077626451194456588589243631486481574923728801250498579705953062549894762668811707164690315290889821155497083702775701834764566226277347590295786744707156497077417872033273684094770946635103327073549774254025053577463338120576465295654345320547277936259465216810784501126185503942684236829893411651440127419471711876928107840045687346107130247981718833527391904140662793259141711503982841591875626054590313714640375857018892762285348491475103068762504630670875685702067792982449356519747365838603698094087878976574178048835656285732320530624169035852615412888891297921404660613607108314423783668273452245048705650688456179245395067887636086527366704926372596012424009795656199241911095866204735799751457252817004156727194938993374739145004622469872241121359784270835316731246976160275221468722240303077669396975963658442404792208274094724747049007235118283225039198063313725126407058275061974649974695690719708889196713464895866887248865478594546807952178407140125740509667233375087865356594969754580292154386447321740369644663154571202586714229207016876438246058341658755909844694225930330573300206459471153698581227001403748347367520247533200076816389095882509625899058101959162597833498688765317767165257155005200086216424901599039855699253644985833785540350797066566070567386063351511742838422421387318689475413130146833931631278082499909963444804646750019484083598689830023827512728472301869863135474415723665158796562488041938034754631672816005845472639762844714898245669654100676065161529395194342574834162276016219957884764926939582702159790417438100107819578319212684104387082948562624175199817553722953128236404885681667031883098592623378077117267210526039487837943144121644774400539359209495664138489085367055752171643891676541380818099952819147960770118972146859796361701724463486002878919757062954558422603012576170388503622770012367011969644803994687145173408125847551121992337188618396971503904012290300962698535754741871327844384440608572876642516702888649235160254391935941036623450356877061569513897104062254224578870761772559473495342430336101641503944965635140638655089909451533586015962221682479229356717582406638515202930250352100337104595331408844680833777341909954136880649622745334016141727862069766113200949351024534514991831285840811665575259636634314068232535610905944912843916159979584887505498966654355912192751422130402198436719676709859487367451491474494686025992942641049082674961149992964411349569142438237223640063804650757909848785246953944927154481825777351249265271856151453577156696158164799981801692408803955713460883690012235344087892902260123020059739021052524600928105608648850294417436565936963551556120625938812313408294419086133855121555290386703263099976690235821622922219277913655467143138645276476513339918943695898793916824410699055838316183024109637131189566253748217448049982759695363148761119814232818800969720689695678256638770474569567860161600094175642210391797365899597455616092926262822233686144082839530080423454410565623681204699233968862780791979104346529386000265211046227600344254126113780419935206371200948821111478120082725573407408994289165689346071700994135589392658141417472194530243488464052045050301247268813273831901119828156164231377825442908200073364229171347304205064265133884699089089629096675839367794223948489871858092449070312728554290097421149537056401343207385976467032161445550780735661605492611691042622947380673292155215444776028918323984838076674328545221376038282237743610132633123444146388693042323625591199661181501705282911507571207994329620647676618187233679733290440024275134971387294835074247281538220815003251543575108126152775721563061217571169586963292093494781890107429200679507337290336608872704551098890631426874757306236095258024281611131672371252341882673870412856138361760160872016863180033189217148005325041731832575735776326772822316466597362386468229503663248506504372660486831120850966037069196756819087786613418564074915223067052625857221622295360804256828953501429054657852509598548291467261943550862782776663593508290178012571975555156768095770747464372661434084787653743831044971727017976756662946177162319497112054592209441405645255837165991062345379173278920092908614029639128916554413166051239017923374171068377565518637309251199240968792794940157698918196492839397736054851515041663221561961940983323163203414909535175756436391675557505656620130463928817961023735876747139311189019868462836732867837458119106860061603328610064370033307123964573345863441238832607099476084457325620051514013782293614751059056726912739346177503691721134044607585873305404803514862545314940426146464941578714915663402067189036934678650906565445730402981309292568750652172899970532255902333780272592422451134415887142733455979008154642445274291361759758777134007807965325730132751575840610506951491381961317594208429330627803708205069355616764380076112713713593383975960087806192399960330474944033573571687659601751844965936133200177323820505959478874585146518946616389068164048096550184396798614936790373805280343648119481244685278649780118741926816125939501353136413375634286727020782749366908539100594525521343954195822804903335311902990094274380749354441840117410993040415743937471384660564881970909614277621843106015381320807336195415546839008628763740824641495446259138133544911691633581549979914946048668251360938920146126016142017281665725766072720270495844415001960806988877997452173043236435456663540086775127588083303223066773610826851848840728417833991862307507830683897726739227188957470732130686757799015104570991748327107867112660514306734827210856891240511767216822279396453060943860083073418963711654862835943414884697396607974139604239346184644359978439347395565936066448651277399425478780951609134796732501050295319664785502848661171497887213363514906198610800278257456315658686165624538986747570122551133144041179606727174006550291862620561166148075531058638030915393126425339703049664386855655912682599567934351887759791523037633606505089866450206893401475875797723358743954249410106711589878253833409198327834535301194831792604188665403579845767376840153686072869174249441126544395872565639100227359597289158372494734487832300873193191660661453179023158773896015871149348711404788198439881629517255480080491596093020528784819298867694477866789431798099614864445217339165547401206575087807864895314494805344689534421008745205754070663037153577504853024879482237916335990232528825902781986641266619549419614729765751251043168146500204425550900860824968385202205950313581476739952898876543829860189893041920499796230455193566739497140610986823798933905622533428773353986791088021807005857465354923157624715374906089226099424684328636912604268940193714748494944261856309371831151468465315142873968789656232407673031851404092824937095374495516942328855611822366268748836756885339607923909160292384425706196981090151106941114419053845886290830692985497575669187812622177710614331392643749707478391107539954834025506122993950813107998858781150526573106895356688462784348417370892195098038803243761107456012894751996977068816617919406810906059051734305002443169464360030432558974462660148567468413206088270023093407008423816274685280588295270506353447752413052933396648188321361587250523622717233060109747373800787404374548355245525592645234774111461586212079884339035441525592888452474223731729044347504467700409513956661337195779971891895502667308631104881926252485189930117839196709790324826762567627601874273593990502649879045749807198671709908108733180589677284360957011783072901028675861610385673367372182703896545079772559793644321710398095431277757526485625905534490384391769733928763772386653237296913036794987950045846282557951666831167935878301586291321679414934870270754896618892462367177477802844059512014863629053989141720067507079151356682772387992745099909939134595458710911133604998535531610812381932150652454663668594805478364996743198746248002462082450579996136941260428713241474454191028507797161318792542656005265402289132283215907023360975904657511202468362376704899911545509992424251998123410929206691266119980177794200028693925925691854584568619993910656844356205900700035602670175654939498966724854783288784704774510855334472332263054186239173314340314689615509137817311994365440747320236515005589323918413624782837828455302290629909412388604045821534797925978341538604030030726016009551401471024947566300291593100595069718963350496574997787276223395385909304491790287153442716043820275337635205304790435831460626462369686521313414967948012146481885544976801502337224870377442600974058994785324696039565080539988191234120422632184559092860682197909646360173499290199462648558249998170992239102801514824526343771946409431904783169130820045093156878581262587452413926199385836140234542669475535939517630088059305032551817005525843469910964269838348425557538154039319545390046318328101246096134342706448924872408398512391981657958591537527706320842015171834083698059091902262250793717859327748148278096517770189433883537767582732262434170523278750704184116439787612161658188459830630585162984654447417341300412420498865854429935935360751802683618860967220932129151414311206809416772986999518602718835039473740119255521076060632081039276584284418435749527009596728647736563013525595304854979556469628238962196305053009403365074328932193162478734351069264759241015622590619143946621969678959905224482604491195073564439124933786287079463582173144923794554601373808468165997491360399163276698240343139316239570023465320179078808742390054125278663632678197740662804383343360408865692657042463976244747261307934517930103874429710260581507457377413832904444683875311168314763234221816364798813192333701491989094637190482873402657665336649976379746667523822859380440231534856938566007791385594278998458147125281758943918840865893452397126761075185893909774950579873406415432568121889996565356307872723928990436085132893794228172471338448104974937098415962365618782653349344445626087032022225712671158980967216091326750883622535749622115101062698773669588177891920133928284041372447529347320671696122407330568459751159344789641447542070818956523719717769305037904360719732813642203473211294277050545797656605809016994656646791031498807826122316152270005555316978769438392436034333729315752258862756011046403799108147118017879655695109207533080729471054001661205212131234430435018071294830917974144403648345824074073209581548072233800863935803853570141121849398654061975036149204378998692888688889587449857942834202274280704766143470917492689427893776714526472523485236232377972480553727553180317495684591223548100602751877308798952892507839026614529173115572886172756122725161634352289210605592343404571518158921441537525458755173878334971691457589411972631951409937013298299121122655319625581561046288722389365479140177739378210446186732786300115264263843161021496583340334802000304391623282229706488418349237358546049710225565131714925220276943510398555864036455259201187196174804393193141921170512587868173809059752034863289087864662932694224963329768323569825374968832369009238568034223740495241636893851287290429061501875667993552804479952865720206383759994732736307280323152059249079559591039785802640739065825147875714970019602779142763348571188032836516160242809067216509929766061422035507875659274184707454766863166131648281047009665673969969700846128045427259391288062084912465233666474644136549476361793325765828032520739779605227968610488643466018298445287599373360730205037053704303971573402964031970548292183740908171130566028065869650832105272910272452353576223079312375849245445190591286520009883047602075718634044069540551767489316192270333373127938879491706965823806071650842335704099702877799695782396182391707348470128664790094962919657616373373488564615545704443328087534802893471544456027857590216894336971632757263576927947440392397878228464612902456108176927003202057721223280230787301289515145699678593487185223512544370409694840861703646968439755364436187347668651583120995945049031937123066825076987569361471671521200255825520550484266576822555099184030535138318187458625452384845318407445602857796742362942015534105318501759711902060202741631665668194178012206918736463695450736469658833388569365594773971072293242746568694420730765539546075922265572077106847554801480421075031518914061896473836470964396100628893180548995958004297529149661954654603951675481999845448665140424169279574692212309073104434664110125576902470722218519897392397738766962978306268850247235983874651417946420539244213400556097743961338208987519975312232527480040864757269517655980012819185533837540912476644847198788261030547562699006639449160245321291505628896608339321882396407476142468518432128913862187008223728227034422775869418951643850438208560679543726488082489834849001224258867099664508067832670833075103406260191879523272208689491824846974949594118686201479456166128575129154053849372300429923780187112359328311670261961517072452508238833413041260904313512539550542614786760386550094994157857530640316660199063187365220051615948353062532723983278209811136503758820195839985047271080158984947357329194326675595589699657215434489011929644807324707911449604803723053112954198840500851617234536366558494333714249163311801555438167690645682555481921017201844081087173598437521524974658078614275867280894905367001631427523272809285623925654951689031897819182061435232858966220040414722094252794089865761626573089601534763597849707538367742713476877510157903872895197163726824716174953903442681340205224745030599014457254818924309656832811012773948411797480148350657313063182402535799921252357510149909352994314821085045939137007458315790070090132664322072527631813221668825311724550615490851559103475347752917856099344884516506044633635419853754119359728719550392036138540949506586814149231574833329767635425355690116352424837437672956509089254373039970373326596809836868029137320296464502267731134125473252687936561904983478315683979180365250647883267828627685496566734192135909686416883151876496291661252620569477054700988679035572852451360434298665782284238789694929958858057617133915591709735992529361893400737109415566913727950528206863806840288164130014893639223623728371634530529897528367787405583721567592759484402507267693981645538416324745036524406347853064412553271479366392189637672860771355424925217998764174348018055332895190814409181854368313582029487600879114479150384164085444152627319387957979150754926690452764919796571809557342052530170063418163927325299103910262198461739184850430676371466408884444719435834993196292442955399482806047612005294711803990612354603994774338825289636396490831554421119856526627720277196881013480524480422859150529800536692377177092454816671908454671108198382022864480968844201743977200334776106830861153857854642628645337262466454622721930385123062551075048917022885625459650158424654556718561796439249727143515187751697057187594167631854259714295735054614058452838958788514043531835495290286298215870388397045696275412670473943972726312982674041361265934497682355830314619815718723499118659026030049993330196571284309527936624925040735873685580473867869978816888197484219323278492190787963586200415989858446926840590198668858002811624646208995365568553365598247500884914303703162814532538770035879953352369113483888187292169989296868716540769973729016032781627026733057544283651400081039270355587620970730256675930017032370997137371237633455917113178615468769828497707734797017719951202473681796787170682057118918766160102637685167334388460336838630432499461651935021448781748598361696854691297903844595342622069246367897483007281439253351429050473769864860517629664963290505660515491739035440651471871336808996261565431609951887993640526589324671172075687483316645657598355379016707071038873936393663841356135232921248024008942412345611807746615064415582793138591547919619240041270402562858006699204158354286443186791155250515369775522848218425654277754858018768901154232861692672163914945608604270451950352429121943734293276050550591962282771091931628117244501939732669415197053921751492873687675515754747361111826110046185342245755498578731572345818245349948375430600984494366443699866934913685339460423541693730565337414201683849353091929079208593285238448227276997871187861322341667135983954873835251557761418459136999419172113117448980781629376158463536388672672199708230572622625399468129294946717703900721075460831359083612308552861595040902174773515484941411993222482505928185886788277792895101036782215281608922418928841550433985326872887801538135610998814814255201160229621112398410661004454644713513945184871556285783225271403420254485158709589049676362854897144036643263816919047715570043701718932114520860846697925487042738008881966350158635591358988495764453825573893002229462674324026348189354255479579493958476570759484126731129157003551800991311599854089733000320608564104340369256719488416684124154233661711756333395490580801306357968354813876940592447999372880053097690500224541393266617966298143641421835328713763661619749377536093348258631579517940587946156355727438624852215200297790650699347931316810607115576813917713009391754084699336824575807249388830259517824012284379069296705209396760800581115228199792583859850970827015041503394257139629652195967344627346139743099525914177523543603207349386770688857359931674407003130666118991971231924794733798547297079783079208137027329331554274515793568358444509410612347438855843956092292892501449857470531652755368515347132071544040247382621461213020255859416360855176777406306593954242864228746995427630601422407410749297185819051461077184216710309747346120007501423264168209099486220480776165112957726229675374924464791435290052250252598546089339681574380717546020133022728098709250342689434198870611513523586580631711650434752909706137070010671229346426693777123693922793801760570956766435424444841302700563251427879869024944816200687865849505888963602018182640612497420228811769554910918131732655961357549026531379778508398684107425582331766592596330746389130272661795176783119431925196971796514424508591961475661420352900251074827676521538857391946678341114401149425833203056895120037136371403563460751812292158466767207532347553667332962308632932003425190092352866859431158239737673100108416391357641971297929055529753425306513471848666687468751735037207624263960070817445171802693942632886565647284622245951680798884627903621730263411703130329286156064074902112929012690930973589545281998234532174919644744954801916187494832182882279821982108308525511729322975454407326923469194226461523585071167151324147107630728340645940359385819639218728564131489110389291814040151499434764616840234226624293406395001776661761120427502324118164790978221100808726020942167284334371594613491930503377835869750303087726541851930828077890969328645895617309432055961082294686874192725335687687712166142087942806503389849352297258979963815316445758619717239304234421751299819649603645162746146750588899262844014816979260864538878609898391069455588957196266811760012151562533047747362040744440593173099912736469102910944558391074889833931525945938434265830321598088667625319850640216700182770817513380780722529909621125046213998857353204211529487629500777223590705808315984254155994067944707184402753433564582044546388155932915503517513998260501230445266354364720183814717672607138682680975143968601837181965995591107655938036700557944738416326171978221859400533499432806963294967134008027304228978572122941126118580226414518244407639027859083968713168235795136145043722505852184876920776175268990956813934273505826324326344919861313565398352807888145608549908200182646176561194829298482938576606275233804637731298517549754320992078059993371710318286660191927489876452702032383256710693547680941711670366895976907451798160891095291380440087084676339744603976275816087047534809283823543203733499975396942290792679295238877825769959540297457367302644764910340448102672705586135335416837827117053509568103434402693728201825516315242116556882942098913030959911701037184386965539197396551174840135068547994991390576794236879536992862643380313247336917099672423874800264214146654015313437215705725381106883045274847243921464614176109190946673777149465863250029073380464880468960705285139663297096515252705072981528927390414800929327570254432057480889476513939410425238743737477844555613016590151935154895975055028784906007745254833566304271237633792166503683757769657602452461196467966500060985908097615871132186587158907750498356285627827174218548367647531531365833235374169166612738799827670837412829846699072732655777782557860482666672602924638017813059088421238121885114977822048281710626449048676176550598525307259823211314974820211009164242093727513913569381473886344179204584808990124236561586697984218825645285900889160818846098151967564106661039992634548476683291856697366495726809515429306194115201448287579878576601883576836712564101910018230932992806014523436329963001382884133715985351971946405606284410721049186378961199690845189883698581412468273659358542392818422473530188445536652548421748738499895373026980721826213348569749691173761542266734958352597622773171558019670275979700919859873232761572423240396165640508114212406309051091830639138582056808897004927737483936733517288408459847189784956781403764741847986967318351304328838610084471280589336765671276640581236081162445409777009996803595739110974577734287776433624430305471218923585665255417796305107664839448188756761576790787559068343145435048334889364774474182352867711839707206359274898352981718526732707374166397658948704554278712137738077973068677442544179176846863720286619755562025706831438885219271822443178563191869306119973950246647415195513188710403976871955115887292399099092531888617623654907065637350040145189853180648433696203830408581395205634316966124708557755556794205834673427061322994472378408631116886084832374262447397018022284309123038199694064399693631464409277661093330833148044588018488023778926353640579319543201098014824398800013320377885848110865826281140724031036174176961653745266678010636899864069249583253565336876913393196001591500952796817229511407256834674068993213221185273961287708820624004333302762616458363774077925683833407528342454200113483558275489394783730471681115774664678082526725303934140920667814870208123226485969405022428868519213569250024116529281081460059525478681189084795849035035348578759842767909886959102739867091706044347263470732340680567032403301896342649180803820614500465227856223253106759779270441165178097196252051394612113350481707211292500727265251169238185065548411298275790125856553232377070942319512498391509100817965310831158749649229244528712034380481611918303751314052089207144937438528967050965627818418456587801210481130378370416355972685744467195993991590565919635918041602380081135022304424112685510125559007641086617714690738949063821872118572527707014352460568602317404820029410880529610170719761062701463524347900318371518632916406438473751292600335880801068943132828456361584989783650143627061846967979705473886193652654225430988329723660955173217360844000993486310709257524728315683734392038970427128065028872331082811579945041788665597700647707543595763944860664853048359173822168645478487070872529348064506895719772183696423209266358324129475595662617149508953004318054458686695313151908452963147292806872948172708230198003596573579068381034909333200340108762850295233201190459472166781752640453966250150302872755303722602100707121464228165496405258485003864203528603815899067876534172133699710293186028866735009791256886608969263677481026415029120910974145156786370406345174030957353754539094035182451578792659470745291479535890076385312482469127221308271958205096585131690590284357686192676181408779607002722100876445473627636369296263116252262814629684313589996081608460468388663552390000187041780915688931704176918218952004352941695185763040362006761120916030868849394690446865772406496576842018951731359322174227756116253983752614569947652752606692898495472175385177861253743272940065036296637599617198846995869067428551631416976961768240226014227947535878946390702478903258515155385642628597934255159072576192045489978033852118499441402866149220615196570504770027477516433887409325450064802819250790092498337451352348382475192839914165630725766374884314225210003477742332238990015890370787818675261110817303785968386070167884228436946883933467484637626990598045976738781894723962160183917070552764464927795364294289266519332124572879565883449347902873816346776670336501905224026855766012748716770801959291363406213859839525359208606338969219484035326015583761053827766753465827528706194973424384664002931648460090869851113091228371750395360533162897199433029239595943729873951018659369384882572801363251103047265583557973886673767300934040492877955417222418691385847989274088902145529183434506260010688734268070260681509229830059507509351418538149269944793309902127293271643610737715128927273561114706328900318515046161678688750686079073455910694988038052894713885606256579802517977582167371939444899509716481128475925620780780749346229644133985677465316964308903968815690916859629802685288345771080179634009000977798737227901196540482214395648360749453867188174071901598641115587264797839150837443443464653343519013608707897429268044960726920971894338032518641143494165820667609095612996243984347834906390534891613634732051189992894073772592015634113365125999438754469300794462733607792902742061990986906269369414713594849631350538440134180999055241579374722394941382060320536014376341160178925072952993254759588606477371770601301724018455095305701145555687591733703733254741434304784192233022438974215681646108907731225157406895262936491159458036365172934947278201132034696338812346267927417110509261483872774657245563077378591717784020314091990686661183019710640996402935451374332838177363576740855339270993883933134776924521902814582722438694655862920918371111716599905346249117544450266697098234485504412856935138366473193417467779487334974553438523599200606408048908299899958467284002500487024370886436119018037745269964000113460931978634610565980875429376192307164844484698365219736061206599505593567140295228087450225071723315251729653265154486540547913203668343484671984178414624073688484372606050640746534916786472350057026246203979461756427808321419969114983229139887339168751638461055382705179467659483767065224837908096589272927572254508029009256903307069895892768705292758229296361541844572959453900810568925905982195303283509892734770401935168048482491766083110421958957641459093255957751052466073452438370412247941720719363863759971894560559052984471275216191495066632365542113592878260026165726896960199802766660690435809246950280066173558438697715881818971257148767200528994454448198069229399205074896866340485824455701168703749155687218222651399130727934119575097989120821572406833138706198752624229998218548908174803889231078979190448362845109660539224631139555148252971029999650450899520567473374892196230894038526555745856276499466009091836963458037975552366089694131529121984586121819012902203303044690063093195056453964109096644175362261110333082194126884589863766431481754490062461799784631073180824127331827345761162938162574797473726680304267728302833894372201591977656083057670184151255414202928941315756209376127437284716118613600860325886763383107132181993277743228692773575605545564907917697703446725738582701954377832595256890588441969008524628077262067485411907462236061377778318508868371487329825928348435067578359905496115401707043697479320571964731306841480732800389084405571961772337518700921655620343604860132472539418876459534328155809133925415689989972812354096704160220279791342872714721996086415318433989595516016425407436412854982546223710679877940942558693611537489575594484406703507687286409028734783229442673939677165998513868753137689008330292360375300439982496662050274896678559567507925289718587836743624166491281736753562780740058753341968098461982447662697444400592830467509897381510417704264351200627407998819119654840172916742836394184387362676596825951197610454776464055651026795412982841851649749092284840929770965987837901206152305825348462238852532937715254147701762750567882133935475149380001759451513383926595133820035066201080588759851884134198341332579558132484747162223111142834592625499283168499290393869593253589141910657600725175094219204144672711947418719425154527155600094693623084617282257392800373782956039852097793441745447672508733479105251772265054768036899673197531603687034916357600699429823697547630770816941400336280971327183710128337883214041032027575364833037395803802339897051062460760691854263963076726650767767586282476669543522474452882661226581498549875443758646574951671007402366455945007824131149641045740969709321707803589960192013341389759462152448872324211050922822365256359338791685754726836149169776632971338479510143405939190160435005803595126775780907455476200211512867410210049284826971852559613936096215104329101404867769916855518408040909417250590198806001185380105583847244469712704283929546614147068788332902268191357143638164500552171743871805394389723907697813121476209287163125480826870101565606910336084554255239155384204991534205770855643200252154767497251071147249693387023969922022611894923221943868554511050485635481583416917357607271268855991117488066666473246859875337584874296152216985860609579104268992282122696257018964982395895140021934279688689021846665984497436397043022625726069997715987979906903400467575401075843330232955595163676369891306109002620488463108148064266452372752055521447632622223164720796991705137455585238480063425532129932457606873602202171256125785294250894776842654254554615932695961021093128549885007923597249767280435589638262970988333099445335488391952993904366838198910919287669200671741881806450269830891230923472924705853752195038542693006452119818391192402295203799996238431955704930778818337978556157763981054904330268582496140530489722568081195742715773046183847670693484651167250486411319391804351029729528255569897064470620257298138407571256824221764773871687069132900858934130410189649056752270616398191796799290505943819144920786294410987520907707211277669826069519423574264255265497308079526535492177695288412973185451914969664059867231202585893882875222444366474640201137268517330573452964156083623423781518191821186711705425454941796322448855590493016213304417064986769092445641171840995612394861466657243981779537011071666245459657948176491752294767100973060927188194726932578354697782610416052169346833470916246959382252102556498662354621995409686864298379098031666413400649467066499966000561224149036831814492277674318831080702707851683915085364052458743935123138238346277901720497001036362454609845185818180955580494352627826973202805721785177870364718327223077438532064743618375587419961970783268878095564480410521131794172271382005906072522739290147184813336492601523919621010847299979613740556309240308312237473047268283397339547355050354014277607831440488970590153282265632266778672515872087947466076679881621875783008595334060267895009801042270700379104214093098409493249414903510235285902699649229929291941843540134039404218313198719423331834342120634418614066100572760808135121723952793015995568554133737447983925975965787171142186901454601713265775878638368820492123655362821389517784525761048379669543777252886353103469817768114917688187161611846374176261577641540917546376972666337129622053277805864250692704114231166636479576860275638463083931168470890058449975681452960357776142686837290333865570005499957907070287597533373813758265197294305338641032330439048867639220666736043677395978348466719430446129623711326027421525792658501271359993507515508839095872970386388344887396539405003304909154772903363025399443645536875354469674398759686413090180595674944166408716635843702288275715360094698745336151090958826372748318806161619662933238766154011432800053897809034228629505819446246773594278881864927367966212754953738633197051560573975137261228251620203485341760101220931118902260412094823125182453024363035399706597373617733492317500060321091825765849196496524605649122906907407560218455822779963152440789518625037303740822210757121631864978931755587999072529946614392987955349835762169155295828988365095332100158054771225697723630277325912568539030200874157069060291683553647766941624970491607334803087692077819638357627431582251619710640367027424120012188084526625888126401023635299389058176946533744663107941883896577900567028547200611499155843878997516465361534590260640832736842255961807758420423346119702575176744675629378188541862218102064003137210236642384277860797623030021695105699938053544759531982392587933606995743260966406075158152962678569131135964661963297738885230243253955360813286047180507284817392216033238873057055618884293330700140976305346531720730936226352859458043907861988928332014535132136144811507838847637804240168978434001733772137195095879087748893467516801038393514832829515750279781190318049994792197571839990679491660800741943853791388187769112791787271938509896932863370436456037664347968516640288679156648403817965006333083564651529938706825661946036431127556683943280001094484297655940218185563651853891313155335910815115511056602981599028715865219171559507695883138103735214684662942013670334701199706390270223152635446650328697950597706458933835571909810646009958900025451797857527441673356230700602744617741552552910682431250432618876175837969614576926390831322303941369259720171261130429245354770134277299281133597002747722766590777576910952828062354563922144294510611389380461779657462341191867809344376076147294581827172263218482485851033896886241734022215276935867892731121852834285052302711423268323027761856931034116418147580550440576105770274487454930075335934079775735386578381363592026187379654701159023091542040484304946881212472740506490044206134205087410122510910279112424049988631431569393013144712482296970340885289819060857473995694644244454591624862960236107502756977494788094452047509136692481280301022070199496100664861090195835030017971115615226246158775593882689272873133843631874543671984669953820603670473254106726854303796002484514357928392753659116599171823705150283193237879850866456587411704133547817415503926271051329699252689264622915225861137853913928328931733548605274991897599380275639474097158234020609418616613015511130177957599953904720866274738766830440306860111070341775500616004428964214174274056467371479563784080502982764193188851358974656602176514843303120668248853230078555171847413622492695529277843161535295834382867203718381026993619490320064991961024163724577294547411345759449312389839682970249995701623143173549092039461522856372398041536594228579621910699864174831811526978322935964466936854808642432141735966139921645994714753992621437149073805471689228977415491275170840941239215746983505404481688707943378162118560360148604149015725032221567830135411766615335739185307413835089219690818719295809538331229378597067875257378426568552086865457540624919574423425082224817226800361306203750737807740203995632373684250556038724960509612591554972736597611906105503999180815527258408038141243098367333890130117457423348836465673422653055753775155203324173261899023692648652296175205891967283825829000418727551870446720238397173834923504089804400541444174374522682345199133113786798999371778471542525392476491850333740915992679461703732367883103276780237685140175675572474107865729999272976363165214875317798520425367501209214975523622558410136688705113861731255700756959176952105034735262843101482901946521611133209903670836696607359269460633951570821404860395490229433498021483313500775286950148508671018209797181714550586186948637980849522199058318479143482444218870508340584476652117229856109366346175685494690944242573890201932949394285734059932214416337428660532875709388417875842685804679774981285235991322174473890756615312934949022415250656814281306491151519878512140393341775586712282798062658793844306257950757312920916861756241816076131547941962315722951660224737493407367013328923887338431442089535727409887842915465175492897748951201579321692598925112540265529389089389682927246783565550771085063621428052959705002728878301771993785232804401635899432475523299840630171123579035426959975133322432659543342297702023926943674980061832085092878134698104737553601390273932393206704164944176691486053964873154289208019590164783917558104839700407606122730170418976163891811481334177344818514280039733501305633615413316953871891655978185258159745391151315392107801642750745277365236982318807865394153791100613984801200504552288700095400532236308480169584434503314839443603680883019914445961886738342540328223164642646710988268893069496621077102947811512635186872283115730011575961983224710410471826640274272852127330735478672438263294371895607770622028824615501507662160142388258988485951318134035299164493892294460033580336651093897545347877613437886236814634034480534990857191107150008663353556851323051598443534482772139598675690217476820326230434150437131990949279289557023971577461351579398844037281466470215070442401726390423899622947443801885242536953308470327256209639105504694305417510322515836098635253571862187243781204997178166213740837735626133360164212669661772040381119035918032150285562285857159441321119645374237454741411749269945508328675828618761854467932570512105954705395228162932282418602186933038109830156047880094236144074663323001877853369655003250572834358619758240728108254048443891211343550841346687230382236272317253695743777909497500378582367840677755131895896777711665261233451291705707479966118924331620257684288432195524034940806331711081321671878208245487899769021880536294684883873698433302811504000366764033858160882972421088391291030721717810898095036590938805435007595103656754127849629181242153674022076566892904755914990927915415316245049365120564095051966388333282136724320088760809854002603000872301251167808512049375802434791949896170065870305452884937965044840302413235601006891763667206333336964651363070995991329757692963681546588432808720709870427110067494265465920372512549661170491871531700913958094156187844896865779581830780712465263263698322319435041730641226337801753318011282047006100869797844367282374015909037285562506149448260608761529168150478384295533479550159266217974309837526339846965110716511607322378740106570488876000406129316361073070780030895187909915468296151272877952697243592887860602052728057555803893274386812965681094558276476665278380476969841394628153172430156186382685491463847684972229589969323517647600552784773499431986344355685665304284608360426268198039705195076595065110620731764623764058099802820716807412311823602811217168173206197253658245775748814737830606578476855337552325578617617085775574934322688002817004197680014953298532583041189673347026887068771030059305072240057066467812905201741141981563092825118014644947828937304652558011740573320267122853068972300394145180278307653952451998198379525448896101853099673138978964098738077461873077014002650974964577476967930202239066186102283038195091655506959809247609735226834605542735759025039110219700959713679668193788393355625919878336910252187623073322127693194075189068759455494173926273397996612047625633341601457049193337663803100223652474051084085913839941090460006322308843242163996049281232066718761357226825368211196664058582892804862430198707740960333460881149573539948413429910551955965656035036153027099201128373618229060467493996370258460336477779401860053472459765271679785269952003532365127074218573653674146226149830007053396176976670681241843541147014078235708894224387736909736739336440533446121047761992920128032368655805682750974725288846590072686214806441193086263950244157874643816247959350781055054531211127477844412308033921288316808436889180684363632918557830842098220520659288703884328691401390650912213066272903075542446864790991764318464220734261580127890641023016154048668562706865933171622676203718467451150636903967052737726616753960534483097007397678477130715029516741619153395006631258104802848884898134245272998294600278254705727329633925762432810229076597933090423296747769817951747055745779313070226900524960965839381070466909019340154087360711084888670293259175471051700933041811703056782131944524457019261020136902713039597255034909428759839608612343499450818814213648952267599679368372216015021523696172025468013801940012325381049228541693740361188739352266518714870292930255981756545284710479747433975565954001292568652684311985315002093681270273191738651546016973338713666594979357812982655471314799329628032756525104801708691117279375556439942806977242752038192932509012737819283986894402709288418262845451212957765314312722439104562324614773896073735652146498740505853338092093925424264992256303759624805259254058121430636036182704393419157366573410420120468155644740379085299717135715001482152646705810979786805179565935152232189245017991005280489901506885683633076834629798587864494452017913408906424064364083215388277189424832509013645682831904816084584932872573377849435226669937675723363131245903900284394569201530598824870887648127269559017172633021497836501826012947488104699645681666368394620237928094963496693822481163744946673748643679035169340767287944822280935932028020241385333879858845890745900001819109123747544397224524548175679787046149210528320969408901786791451200005186236290057412227320675060248839121829021677518583598145986797869182785622255441122126795198612095061159379754262462545630365440199181089361097963367028751172122879610400966201062740938501387099078701157246366029361857786297100866235388084578952587143313241043368533379653350431994261537040460070781611049860180724010449765322740066807518574690406353876171642929506134956567752187801454964933788073546190887118264494302819318679318406342556540608172758971455629405405082667839568848733494080737327182333725031394729394052866407695545556591907989786914406548625274059307942814862839964932800970766444193551722984278574628222161102521395066215149821897112830977947757386490900530180997285755184071657275230193016415789477827064762333899071998425812405522266582834940658543235026395435577468043535462926824340360000138739509596973587252636024479120661585841920841418633224352482259932120148772738270402113970824686306727702988079806443345062960762196175875960903200688353222869667357354420160570940637291498428286317992620289600753847472288305766151008323525426023794309259258159323318922767373699573794353633915992210395300639597923255345535133711401268382040805213875438296463497896532232429576264610731951840239982410020686844137990134342911748797731469182889701390764716218224195539010405556902437128407202878488911644875797144110715810339640113180937763180788464510498768222468237261837161891912734653619379110942662667720295817363830898675360466923190916681428798916592357591665393112033642532555487769936989106621239260623329581544021460864511687793751832806221820959032899178301202151213047680463068116653031814666129425780737336898894381237148757178164312837400043958169117402114969109533000352619430304274664641414246561177071620248829850314509199553005594554195889313504089662553543491223095513220159806632749459897257490864324948922201167531915515193195133147067083826549116924750269679553493775911280482152206854741406947248970366229683877857550543120783055660669832059321883312071177413616185274424196399025925234510838588278928482277114608816388326643428386238078162148542348835217577976504989240684169568369169854114086647826310077492567306727449699886889731686113185515092774091487431641456510932654686650339570070611427610720665984893937670645925734369214051661533148656373681031803310021604368803373864920046838172568062623426572169761428164130426235443442764590447606688724011809297904552568979647120687814494686898231995888080848134246665698624038283217435597403815354633438368706816916142315756967749724212596295717343373540061396072559041215751220674950993874606305954504119576769808912336858088714801835759880492359431509848262043153218856276482907132298241137544774800830230913589220500033500841720476254430887801739875841887144363646028058283577337938667992089950238849865000264047893016281754098826766416651308949610320489196933113937457824063463483100844483186532330508584592136966020173927336687641352189681279666186954929264091406889076423511784801826203086317015870883983706491864899611186542361799161663225927926937005395391924311807030561096207239230334137402475847780837825015640661796106302871608901177343574753648173887622463548363280788383224195826577687323818141958664706782123525007795843276021829110531461478791851721735681928693531063805428192056557098016976228073235208851045944851963537138736817893029225360324612663365411920158219963085752597479847400690023763779669494437071063001629776048077614259845645721727120282486840687037117441675093423475253850468704303938435676082519199408198025886622893094894205024025355357433461137189672003928959065580690705812610969339892302940023240442017931455571828060603559907747979837044031759016477453947414412914698015333815188357535408206747756406665470103878230022401144122979296212736417636330175954480338068610207201925761926430267709882578276112058566408584679108374196991568518010044745467198365794763727281294021013525225609523477767371538895777117762200343224157024103345827081802457554887331160313859588407973329354845081004850299674246044168345327074778164468571362881578502303548148116523713847003639255759171623306288545229989073876954482204998168034545908765948465402859328034701675437759628691600684683275834579611066401809092363881217150620301172078602364805810272457889988981948169602481223521925020886941682371514914209564953990588614132925132321585932338840977353982069045453041770345155197492613113267231485126711602376576126072787842027819627180048821036155758530035016842962557589565403505285710904903320407643138612549555561004020061589090939504178443984554459091359481237620553618807545989779436457235179239758096828753911091846385321713121069288771771314341525351237857547416261574383089213513101413383369694525229578214091591519114024334805945528459521317468998323352728208062462532871542699824639961161285472733207803593691613337205914153876104926472779696474497220744610093585715919138806239976309169939397465399876793133290920075286065482923215481970308587858200443950819086092686669377089468044991920120130137553661918761957256084691832704511058214668170567173539336050463932537507363662661372825947657959364995704405402390143475669005642912136823790188910376418221675747553046615673481700475818798177886151849234611496695676043754154488654974571866074790584727628830665399140862652793725827730421848732501985041090271251244116457187195742412331635424069931700279052470207210257204251871476984326798574731458409967527213490049078510552175013175710500660630293155352700728031530179693606579075098090536544270419873803947145049351581302815217533823183759887193735939902222518968140742132692297023693130892749515537690820349431118067542313785667782810809127375111452392650103441282655840942505147124459542347831448112927780884382774219113287300868128392620595027196969239614713342619606747726405252109603692102240165859579565550643753286252566073333542518088178190297268232595720373707056052782371025517634393217354787782426007677899800010104832334669960824394373229963365031940269765247658413106301264474201323065169278427760151172397027302938665899725702406965112465116999912056264494785862384980740580585535036426143406549110765556271653400095280539838818199755312809119008704505440670745981696265651518378484967354073247520654128439532718665037978802719834061394958621797571637427029593010412388658439917936854375438587722341089507053022763886730533554278731790814872115214165201902050164866751680305885323154432463181593689679550277220119585550562125176906546589417789079044114317265394669695986243375762793543473614365841101333731068497538921995643553239128398752513421950635730355065424564499021261235577843093691064968120252844079233348882943743295542119449359534801778965394382813799615303791695630457236354100762587808941696106783492720882506149824505278520976112097493778925476361889229045803497370167488738149576003428805149454249853622088184966736877453098724147894218640968306315681101133929242993350406743715666679192778179116862297752917787379604086561782606850928741393954267651720035267551534826133800108834264865408559731902037595930262602055399738071456622074252923374687014637134813751774355312310109696576907194589930069212713649456640260255978393283385441889842242075751377237900372035288242217957686616214515440534912013806284666092862284289378188427748081584718910956608667299325375263063888313767337868791373460997144861062468491770995304387365385148496237878469049284285724071456794090827333967011529530795106128092955688434202394618133653279657384343127464879859300509448616566363072246558870116770932439306245722153444409537362639304594291637503806685954305530949466827876891521827110155774458683688762874321195794580229822820606275040780893979803369328375730333311402790748942187941207817456658275638978709493514466097619742521355878776685414160861416289079516873704398505672701767014060305768323107967812742508551033958619962264636777381813318086969321157851421736946069744892206354797275611241856000417987363367472978811998984487375641136649969811119939591768840633982710861171801945964090652358637209995488818356436412675311845217323188409474787536801260815109096903370734217039391448416300942127990958969791894431825293457315979715779518495209237724664293540815488745607478836401611584554242087952484079818886377170553594806187448338068628403785037190003342581087902377500509770830579202573614920096061297073020177519706104594733485229632106546196161246875938595244442638744583228304402554239914464063113659949321929653221395103624131245610343857950649342802261317843916451099664732517476864740202945961799825696350454688268452600944382249296674679664421280992913114102599706681937137846700545985404368886674611581290032499372729987085323727622711029021140272506910308988358180722137024177691996617584695065546680267644241778003569358552964361735175606608481551092212442355234534812311962480718038947839540909502259063180858428165696165141556597287011696507893069210793010517490404193517195092241515477484022382135077644960074106907610181179876239818668636325177927045550642751877577586017859837510468166082534332253740618838849755041065740965010182956024218412907805591877643877056824328905019112256911571148482235815461390449333928169000259340844294595824669319752957708528806252640228430962683974304203911334529608259079203837647086252126434085334617157304080425645448583781955132538253803679767070268773639306604898772842366538500381947298609058910474031002537310255178126935827156760336115666840410840090703615092125854127343288154714042240864280491010874058547046655596602548149313685283022400784610689578511451869514229354294242650815763116461977682849976127812352634073918997986354354296730595413747816888838243329870507101157432699113612610983057407692712483996548107874552393176367897518400684514577576627381855709695919035848735301212970891458771330090101298840175414368857824308003959920491863779678650179964098054854875435847870135542076626540095392891434200555234167905529549776972414238385149158253391590186989726746914527622137748212430663740294032583322417046394786172232996324948622634251716954978915440312286362940344634303207789617008027263630102821067403479543428689806577712590863564066354577118192400478355798767341529254221450955596964770449092876210521143050905037829598849935565611145708741404687772504927435251762312085364351987807496520706638251326225300892023818270560540024574989571142354930766663003937893860265517872105762961216357206058642672977818108485470518940009724192321479967984261021752901634490681087375681221256473091062962880818076863346912207842630913286438648437289208173562764722225462408378166350180946838124820629480183465329001434089239204758914384847317735792517267421939325938161199142845930307718663834216965242918602754909713097456212945281563441724012566708760646801340755281510004712914115906159706287852526609691174609463500210812897286163343378321504574899381274527963654123519744912985506979379310199554471133854645841213089867512841325623429568443683027392892592856231709490314140304964269850574680897572446497657773523225601254661957996820287366457126902891017666521266121350643042790034171679493139488501290703905025240112566354054502273120060196741821935828780618150387547695510390215052138534482263881327152262820624177006343698051402684119821470430770656981649905625297385944349024818466697075092453617016485284909871416218283834718892884817577116061174124616335784353211670295980450712689931037369976499135951457561147044014205059071541599081695343059944763078320735091041528455735022788130552352301961718711349550372701025471848574896113554363832400872196154933268061744375350428286908545124366214988481630520508812765122436912491603648678415268616507065496229451014732599090888597814509031553850935808222141821551472458674183441132244305904180075477933549967476338690699291130187808987296728412255618687783793086413914543837782164205137083679994394461952673616739235075315906947543458267964627234925669644535790307407906239850377929343890736358395073132522110436415208962348378912892780335722253436470847587193843437450278123738213343450883502982255101845192998547812367992710375478337410719300429282335732691000866596564312632708960839437874690214624332118257822492033653730075860351224767321442042851139499509771974576695889468732902601894008611080827503483577315411355648955057621105434159724168516127466825660421663107225832270454508734387272732702355477865114151459628250814577872329349942464684107637661934980226562899253581344822491139086675011582619016129334148685323374809765551004903786995091796182338582670476491807469485742830203530487126288513050358071747423039749851903298319409225965047470048156423965349507815357015800906742987499499312814091699566045067186791903326404684374685744450463209690435475318856130327253762607790351581126419296392866421910261553991683131939761986877284323460194294322205888626708691142244063692733741724621829793255649247541088199047684534541025841369699385811903711475824004451931922597364150747617611192289487447374539036991842805699231484229760934941945306569972817730478593067915529391386699001690921662383203116503491269371842551805628050045234754064079709869037632419755455958829802421190039828194023156908799618385596212616711245536570024409389900060640788136196311207605833644496800837222380086253621976988271503645138983643572779687024180127860997601354907344089965350311715160962642828724214693582297657135882092433067841967239438156409575750796572759067173236546774471959915837650462140326110553745667653491504200517007960281340265517949996478836953825117774975805273769932953317123274180727632138143282176106580603677979152837132088476359123388604146416237516233665065957127538438967112085397931919553464633702771367627839342546545395115730144562998844411862531257233928017765813543554527614040433369885996362397160062127059201856541674676329892638865428639589085949381519870387868426718115726693158779395467791248852699302126566252901515410503175603120366250799436383381991525034872639956456463001519140509286264439652867061838577146916953161710289838939657914418750865537007668175636296734808835430400930921009901086077917803086407728279531840360557632104168838616612429321048804754111908667607537446240882223181075852542867140631295758727262439262721956199184476451903707816762878910379798395534517606261456351708130033373588771731790229402703450915854971427623489330106355288342203373517840559625053467975210648092831311760795394436248619824299792173406839774556317158748104535180068617982557736608597273993905672738552847834679004576495878482961228593824809859252517921668069233313065417811124376349851684683246739590876084174806623387808619663303789129909366675335963151380716183694849162886458431416910318065114305608757864585546995854000661521589233935488332213678615398676755100145536811451624184894240465940129177170944573870968745074614449780007800891918726540251465733395373587168354680384127504690480099816705550468836630443962321021631290296204170047437344895253306363187613011927474714940819129102587727883103373099104820291495388663451324369817701237223513298548701826085243240776144123882338132729064082734274583377952515920753031768580046289034531999683856705986399406831074599653653941374908407266179214577529233950531780593607920096317568926725611719583064301881706248196491607515362856338931412947659784865864165874585015734658109161635590999868999215997614580635737722764562914559872922319131050385228405351315673317885234999968365460880519298733809524067886566436619181782942940020437824988855528030969934812680736948158911936761038024485008045220627747574448804660157581979597712231197862182603721095935161119985537992619060272339779644065384032806568771336100184985584752781180986486332213640025498571259310319349885563917090582515259305225910170930776776056605463952601710662986817722660263045344775497965670695792861518757774129608821696018970201405154442209134065653703542085324587344283159966683844706257046456942764071729665440905076686735629447575176294132434665273431711027124425769852549944626700247270810131980956697216015205422851040135761499865149863196087820038503802889445755665554870287090247232848330536986131860198552455425698272441499822990796442597809868247848739648809926609098162603838075163147521619963956245355302951424642875655483234364270801442808945472964330538036387912092533176170974188112292927587298885291910703921515885716866995206053665345888958782381642130093902520018812878668634738261424476943135564194918089202764575331229504475457870988216130968909376436752005906931114118229918603720638173827489195923784472233109411980580424158866755963968039523958658432456790455974605544510444483605443554703764911236241667121048234287396425355689819449602924516027653821124373853605748443696237758167641494946757242657104572234029171642190859411204834176284229993329478882751550756378399841456963492707935194604532013098547568062901326340831239533554107374104293763722505165537417592143749313927113054119151105365965748355442986108303889874963487087237805757310221329211279337800828589527897902893601765600571843978506004260146480456901296844215057433570039625345427554324915152565767813784570984350038470391175265037993084334955939345588962331577926225890438548586802072393670840081769577068301576695479862408896235210486549592141235123139346401352131775958271928992939581245110606568163897619615675669000191092467331148228219448102093572113068645411007892887458224190602022315723925553317954082251564452435981660836204649499318988003078315153679447472589179117892398593509979890226194847355108720211745147818734672040728007527594039681024142718099058575537391636293362618705409083606571453088909378426739221391096543601634966115107034920547062532706392602006295320566595196955081106294263036578385375386832205113991604484603525717453970486353702100025545364218777742219643089638136227662692939708492333896631351821186076807069016588359496756152258070586852860768064422245660302443334321191279497287275483019922553083700268963168814761238088013532954106319153374429335169807969347976526149226948936218410792661134321768631306946508016975899602230382555569205821769475508179313293368681868398250900965780264897018917238400163865487869866255238216673114403629144939938626533623307204823764097467026121593470516584279187288120600983813378631065206525769059449512615424477034297230150374790433226964775422240803261090034614613490974145048920282942354280355693448372738166589129053990411291391327975270827918661177604135103890145092379390014612799186248235669486763777444044012569327081602415445184841972858954147730846999102963904043898268244144202605437141995988968797786021327142642538298180439401070637006943724562019360377423180420925270078430263109897025552046111003578169485990340727548160674019600230605432521612297192207975477226267298719039583853778902220823752053772095296757387161442956538859623062021059288342890543736727119346434011372857255313771827795104549226135351823874472501434342275885723013178012790190365608532046567805647406685726608650366454829836233162307105567219919161099784948896532646534229276457261639988418603788075445287929802077389660943168588171928633678759195996638292619414730294309048620790122587279970005099170985818840696543401688149426019471965568209463608395697249934201807970518360120030894506721081494014956979918612857112057912278048171159376110941530097081041182315313756727418860153963372798869862853410348601468316964887821080783288504935637063673620301355772811260499926258824724841388726222810553869257818188873680238556769464507859002183399282267575361449672765456173013517481812320466320675702709613151298725361006290593497085477429956401561455399965145584838457183992092642561099686809307318987665873881652803761775152669510223532431368654014019696355500704248641797739011791619389848374372797884025691560546611434817929008356575061946106264199276388252984444547536487150452058245043333729278665272814853472377235815300795169956147999500939186685038293990150872162998559143096394876269748988048551877997095554342556169227344615626091957818625436466565861616055533470954424954451150744739650782322846776376007525023221944939616210082238222228273922527283767717049174411414013351966644703798389125017268073631868462905109429551245771063323950359891015139480367368242715329454803662384794331666289253111311268928281839578177090738478371786488448844487477896323252277327416342404644408875875381009537471316699319720207569899380279210679568097304154001792160651716724958065417688307313008678357236369716547363453476218342360781484106095182825010602970002842862222182699656752083964417716833686033512263403489653910724832802591749588684452457177479706263683223481045297252173176946469564360059085275837684111157860827386963085149589532172700304087275707241887232809825242450511172417208042826665434099742727440017552071575109859859594490237825310278343723573452096853364691845851063611469370051583230933623053267024054821843812382385338987891426621217250678144487962890197981450454391414758101281137283513755921326887689276371459027722465207758198512333772532881700349853787082700794248544159765842692655930257367639629237527317507926158166066495479769906677763452527475341088969548424348512341801496455299389796472094261220548237282499242184209938446588024614700925807397030917416987773009113268379239799169578457980993070119775218876753497133545581327714943312567231681018960289479023964468781239090709477316066223342542045814472726368759919465181076787550538318054352536182462965078439110038689419537662452010839951044055927449593804141683069971886147435085444022326750805546610871774780110240380594729571679981483660308964033439592693110731462693806073365505790614409955628107712649464754655313151960907196985334186767123563347964626354270985049136321041941782833267539847548512101017000371000462270836790444122369365931123276950897607922819210940515016573313111096848953025713731104442486194232526624830584724362414156855233567894193725788331571309708841674404248559866709782564849819140837717420334586312914920701220239004240816385719521850692685764925805875696184427727681838526287862131894674354678964959581707192545962259704157119720399184142113956961111241464679593371273808431326064087589508062500816466217590368644275279274450205638909927527133329567276498824618152976675441403861291640584771810574475676634649955042264073787075347757702929389194121464172869658823598478565975217353840279327994606232698321556805965843547370552250782604553237770375919531315004319434009992451696907110919813885421768381610288982254062735350100084414161037670864791869762383709341531727160197754507324925528955907217008163429261004959599173924785740216031973979284985200115108258121509300542504940341748602105128742346491025531099593562128534268240123431137064934916260242781022240719034937150140017440226936782318938806945677968332778386656148318061896098621204183179819067047453181675331450312122835346484170246141607089297181769657299455929061402782776012118998311854439912410502306648934072931169617086208819156021976493886108144898332791263034929426996714927107913640661927787618887103257254816114242184590992550893457713118386815657607220226637426820360769399610202352240685565194947683120967783063271400476878499469714599245177629959844721902107431346266575638684515391479056851839479764072653131703363317950815936996039037622909143316282142251237911324308422268601616445384766655628478658566865264253351049645057678239055062152978309325861855493643602291177459048515917408833324588504226956181942870060017848032657016079684379863480359823055818495918122888908254745932424625787414125079381472910452549413993346846845136090089445680657331025924861585715328537267990523600946128645372123898256791257278955055221618019036038095716286965355018536711021235821010906196053386593793820401720525722866593845800644245972845943586271092188224366303927402449226061127459246555003035889890798421283654065499751794265743532280043620991866673070089420427467132530008008314639542249040058928552189458664137827368738021129345778232559228487807480099091493862381696862414164188274642627825675567817834091972764134667495901829580492517766098859206213088343905274300152859047358105511321426998155875035121956231049872764557167429087154931810939730199867801489488213128176330270201269684626685271141600614044565803258886517020816930297019153053565374462702428140045841316537682382448059242802217120421416359402868386768168915491401498101723340114707989011366681785565208539814875535668181771798010804438469019726368090470540763119433392075337116770515300043502387092970815607795857023344774132794383200673684804200636134812012305833790682586071806235493436140093636988216326219974490365084061043719339052661266055797575599248106275304642318152930886294832997111200992918709205179753353597993889263149287960481241999980988488385120312327159081782608171096792798891442035097674933223291132794199750910830263402015164457680813203683992016596792041432182987681424146105869868243182032099171060324242662244847708261534713058293514834971554467628167658006424981544301967948989111704089542449781057720547468985588583381853718845707824133376873332210957655683073837780466846545966820059644869175007009163454872212009630622744953775988908558517169489355693467386658583841676836352592592677380013659483491157725672611089155087960556412784939461622643593590778129091567012280926133317435743008475600591881469901734307841798642886526615610882034269070339904538787664433589995314598782616712575577068460730320580491825977871253742146495817210077148153736203708597354118317870988535561074555262284236705598698149503496892384157737820158762131476380144796341153214620573216118294836178663108306116182879595512220795354319102178302762874315717828752380360427871770998948183429015090305347719777449093514833068234033185265978281868235760514337276708680017164907489711752662452721815674304914908599696464986600439064101535649882166040013625152624661491855642577432267887167466124619854166073767515565810024480102433312363110142628843161564654520056112311893876337435882564345700026729662829770548103883221595742830514653707623251705271725570281602931793809998580255153519333573333334481106261128987284292703441771753644055272729489076898599445950298412668173465195676730981296280683035625478027124643667898887916338489954987069637296603994126497019868244231779936833954211245125271447543819825405802508434631369837354289794599169782268603644283229871252243302743078574870678867074728955233735669170439212759215675664744172239400448813281036958970061214393944773733156389805804543815139333841377495431115306815088982838276395070700514228366421481250402394754961934834057873741798409837321631434567977118135258976524053778255004980813815910661149411636576691419190795835638939776139811200963131493962426386562346462635348916397756115394714455186747292368154255991457751992943104702682251738559941407211207893029688837966537574780869997793725804932332110700463007875157912431184004481463039375421186676812317402326038118033275277123276041792924186829797431936031330647384550091541898058470286937656102664083052283902548711384715101488236320828143178216452612614881509776677998022402196369402146315716201497672231859857470463001629516980832248578245954980020808952483614864842980379350954861945080015210683858008484149166509579345842469132388223057103041422461899575021268822645824697311771503089722550395113698419387508098514607728233988330951071015961238607578198318851974671617983242196810492439010470298340665855976653611745300780331804585099716442910607263518126781575092918898673212417516902890532215590807659212567255339103529221964532994354857454760589659072175587689608740890502340299236052129578126250489045173576452414915118661736187397433569596818451982275060357271818182350370595849822549753456958269091109166162069730217742455555733758339302058988963713405908702230362107835732442823608622646707505033008486907971730675534810894483769439815264225432166488518042448562171721870384340059504409798401827870446016496545329065230678527941182989205414206867182321815392071122442267199122106154687731188777422410063275754900000875150750765149272665870738156027677485719537358046748900587910117355566048636536024280707095310722803089558114073755792373279107750912251599498387660130435583128731929969518964458393457195491166507960749862647288203982152124858246438513978756381059106299683227061199612969532149129561450931033740584326707029583770972295391326804598259385124453979652729405156189957705235211762445020057489991207236634405370507274809643012360742262597842484328398337935021762754913073252341493023305947913842779462282432970945103163988857386229753814220858705717850746225859482763311319077841335563999996183205197820203955200438281226471548811782866320985238497228535520444604221220036977463578174220270215421783504817532864406934487162191815423610250172154380189467872413978646906614493314402165009073953007908441980805701768191731925238422127240122052751575067818245546787835570063054411853972143770229775807265454610002192922559962594935282123169017677285558065323160054405010264781250774957323785879665046147176135197636303314683161700126544178432796365023405755071558801975427377899069462112371338739745820868012589499319286990921001430104198576291280687618453081803102465511780764412548978330785850007207822214173675129003042200875736808553881187259165148792577602569640737564614200800545342737802967133427890165112456908298082355553290728392827520665068673942885403754004747655083983622505082642032373273526818311755566953665935838340418066801877505666763115507920265147853211756455592917526584019563691180851864223123221376049720781299211030900342441661012590817252130347599861101654132550141775764718494873176483284907658988564692442116735082768499005846725447797725858459146082795022641779849140882478395650810086049466576991594519374288457235132659667215775718525434474310937943008630691033079958673775206499882804792066582128087396483371443609080459645759181289324074385989877211863606911047710185344522384338523711435749720220442340328962813362979934957307192983400827586745105567386563247002660034122623399395671345711875379853802206865446259431666666366185952841268562692480185161144090779804928561487513344023216860160754177256761041717547915587285072916790922665713876406924189671306916526352046752384612924346683945956230566719143398875453830631249080787503525642915292819486709463792162505568499427882887214351957634502578975926894900200504097517168130328351325587514545228623515878055281870532151540705759928811642834576264723970033374995904798033177737065595502163235765314865213750586962136331113941247526115355186168531024558982561053788318823964261576274177314641344318237483552181717232674270061277834064708414979610163470106878197073775196200565231441100344692254277771772183296313715911716346818370824353656532963607964588938185832831596578135135264780585400125954253153334751302792404552951409600901157576335442857747170729781231416545891258894729617715766384271558067973066443695192866288028701106638768778468494161967067366559708906033989393083621078671878167194374629737455459743426080651173026041932082237275855637814915394365173633078782023149741313934699342709378440896086164360662588451224162137920840459919689185171948286807868666358867254490257050950166498225412812341160865588928134020409027500130057823332000233426545612891689261925341706372082389764790925069320102300214073277890636766682847164195971456893692197893312810922205164618291408357667960872473652831158669102016184530631324651826776466969797161323728238826125710288395474846279629949372139697004110665711476913628386886631977763848412759182768392935724146699264324883462858820063482235507183372894143690338868648397224098169262955869718755500419082116145446107064221486809743082159342718930706584457540548351866629108103137730971853218013686869641191434122017047493068202899014219604177361189533913300412229575507812395682798759182021969364957642546151112995208129067426351950843822215536757091331361997503160020961605702928609885669580134160618333586506603850757416155669012585769618199193724486721846928103530100867527514724494247917151413286090383563805627468003928537476238919326539597747783528952066198916727941980062604939743031946186949019266982564121910582989636570313458216652627877643955308007033000517743723512840349150250746407668839869639283610117169218895749564653921813171721362339911449779280074695260658576212452190044575729004965425858030375445115603940821647252487814970819134903754814767402630492942535021587449983080861827372293059307660823707066393967327513237911621003757094991337409221078937402161673751006462444121308132645346345963897677855335990987775036766020965038476222623458781173774777949435056139347969702864004717967488751693033351628143306153300644442885823793158406590490299100643124979139303596705996621425274558826502487384041384178756255211017364210383091784415841014891442265096412987827708693678595485375432932043087862788570964027200490450177258860304992381256967161847251474071238206313060755165486020397703820220748457069221896631638470615688739634895777224972373432327342704783165061190524926753529894457366180545178737325833326238458299889931525804477523815433286721182181279273727919265019152958747750147451133098496550281215581701701953846403911532148522017674957179233271187613961298641648827802626370238038896463588977104518952620021655929204488065721456045014167074668975407083718008253913015863822731121342788445586004443473587454063057205711018156220988074885453178678626135792059805468340709740311032890949981441417761519746732749635869777614529894640621902543070329295251759334898801219623304670980162362537340609215417689189625252012033384877758601028120453138512454806476004850065463232226368957529841954256095550703667300977554732000800912700921411336560099352068199905497757332389948904649815688337486571807935457777937348281634814240107873785405282946561945165717722112750935961698084421476429257734105147837323895088721073269949275171252436934518444617410756182993666671607196096810508479552492838647498819213888316389061127531044704163983656024219279716365289425548123095381995306361045247354711349546841735781777331106831148739776561734894893606160271752421180039510332692253744384732604112920703413476974157953862311182860906686332277340058363653663396191716491768076048108124575687577446601241918828599117467767701278083468588826636094027029888077494897046337491618956188907153656931297328290475542464951001536049216113206924845744573432572797913088381811157006102502581325421853570258387074599507378470426090397768461965446796347456482233633885055908382045436083207127490676967017690552742029641667275401515161924046391010683225295771186270086162388164044601595652751616726195916132428384282083953791504303136129499890256601070078187360004110955872051206280544654391413735916366893840807234198203557452198131674810056165283088937445369071952878247377880459452163626736767003139410315957190163123734309379790656850621937670676223101343332981209512608660853374413989792025974992411388087703664363756079854725005842052431474448866671253425270922232199925088512174219167307862669104160868325299345947739769641652133356068340982732488566039178376684677992905380855878702122674021965685730270079342779878608230758493295185314291761234540461235050517939579113552328825056917539923096325294804361553680123012204044046441240138069478751900413430093072629895485272692906382041434231517381088483113054998240855574798580846554359678498754855185198712876166836025287452448914740215507131106833559233409608837504019387604624539441861644123732150450027593956928465640918409551303034057337981247962299454444618762531544024594940450079490810789199055090278334613830886287393704423202324409762231836279256070828551053765682758606530135809327437438774175661468547073551848015974040403926981535484193730937282140552222923169491052231896445368972208970310126392527560743636907037171499233076558152155748121351371609608329585551154226535694876075545038729855476250101273715286534838951675140562628316769440027596595800829975560043214096828777179272672118891408959841639026156436737216736721960422957141075262222646092723045023324322917535427075933094839821324775949610793642114204778535711417538297334712794493268002897825601503838213895981302012051582698359314082491867092868653675869819307790694998664563920071628789689286862859472577631994638769463752779705296266382444860285727888556964441008838841792152444243992221880903058696737273323667237720833455703590120495122799128793919162476646168877410662283577547600042417355666284887710335864579639003301634977335121956531542314772987266440020881513856936304930123794148578788181982154029856997130152039155960182624322210066676312289255612112423056273985654412289954356099867172646498489016717105761219502086464842894645773092303579355679853448174440826263433438638836773098652019914549233409506078110617319861373556234732918223490481286547949908727302651898241248056381153805283219214661208514934909732311406977532276417602699220350483990102952188687068786577492523895765258528680424404174389205262537403550613481746336585650721715838952981082744672232125440336696399487652806108771835860961941236097474849816593111018277033423562088877119643622254901440967327713215132662952738991482357364467829789540246206814378978675465903917523532988457009981402622397176499204824829955677395739577575383084174154764282244981899575871506678897027953866870403542139023829551906979076263754213007454715049369145387734385861832601514950367870315973106762337410594431448007267506632513873676552513061506197725019535591129352405972159692516878940232847651484226900530544789746733079812782230743208831574424791886820944437519670789758446733123590798227550381592698160749920091245931562842594685364176521475992968681355149596444549621525466490246504984032790626053161265276110127519189062074708838135969721627676733866843280667314199833346641812252565725099409764719650860858773344160298253662482772687607538782871161404673657043978848163608353957565565109893196472609400391060543557847357194009303565574341670968757417737074584192322261414252539898115386217788253742905519667468778619512761854107848248047562052376297356371572452636844894422161085669928278217355807441660236637799443866323168501273252660481597940510237320333126471685046136291376395101721839278371115784712975016432005267543472613373655102988235493534562473733854374453370852200823760869112023057277311821995197024859787604402584007879705558838719055610960376297303176217927934973010425947293717265885651429773923342270763758840015965398571323502353172900570419366349742353776202888018300127271174317925996866208549016296075600557724193110903388787227678530496126215292155610885771100559166360824471315583079727901875248559178458285233644029116687344553297156133326639650575044486742607139031243187152996115534655865670101770988199320504878411932272965048596103982487325252511917594989298261411675237286318916129468980142902470377527549330253244354443684375389106407478377112510624267732840563625934244547554214406920540262727949617988859005173504771459050829145753229300727410265733886163816004408579539104105452521866760805051598468422952781298067413433862726033551373514290188466977843633340736854154230455058471931700763332507473471976845833535179476890822648724557850753860687306402550140466176434736730814640367727524610150387388801109807691636270107631671576295383387015779794271509674139004310427437039836348065110652634172785100093488626307002723201250806369843337181336751677927597557355795956042043983337827150825356414806307185357792133955550917759838538003625915144600192212862724873981515871889995151610401653876486366506586364267418225790663203196940066275838193698300516625780010469430924755510482902688770645276248592821189888924541287587725505644023774404912185603965483071469098111397033910093006930018648229482943599648470520110226422947512401414973141213095422118425194049055196378637984706966005649229109389799508722030067353652231663044286083952515636333236339924536639693459179686330503746485636321610474909384513967411523126891809495937053825019181084962691457114654567850355667131149592099158671253106508876463376736462923678714530619861332601212103493747056046991963535554495024376855728571752655593956910170103846238989302569914421483507892764308386888608895130481230195084881734063060972502844884277530025144595302435447866580070623923791213608627567528071935696336367074146730312863228486495073125874515701724585326666752203080638828295979131652771543389417901405370147848827939000505480333964640347689100807362239502923983728901981463881750658026969325112729716794403063233857401031440744594463837705828847562828531823589020297411279391178145897550931159531633404617117450614635001771710830733687912051468603500871356873722885425716959778700576679903896239895043536061790021536052955191736409666584290580462960565059313083467118393971574438084437378691076772706164765833512129565935545379901880324557690841942790674074820722989848950075101121628993693593003101779651488411675940468287499731959804988724815622991449167162768424548126640859232198626803759696880141670828806087695632082735584295716861223774693425046465207620382351159434786279873594702320608041739945065451454605622239566146695118900531425770957867340260095461749001315909132343650739390683220040475976515130140091877020088962885773646958078077952418373144916400807595161556397418394212682135725896053869318374736939374930365063759069541792433899228783633284847895545350775615110611122588528436140809567442236592631959755531909989251663435972861092784961116960735932822291739719998450955281898603198104479490515199331904378199170497944086879554501169656285598394896331199847474341245427712311586342246770132440196539238173227508967373670550799157949951541970364918260023147366168084832202885427638134277916553057958176600314923020870107308266031267197028153970647752434336588547205453643907508622085022094618331977628978354693290699540002201200530843146621772262483800754866327122899772929092758981085219947641704550480113509569227305355472852406881491474051424237723583957177237816295526688269770408926839398255821117210818973270702603330465814098823263682114095768453760178089865904783347587035438093049708629737437735041605557376163481324661486857382950302511913488504939293557107039537275654262465639926759392581258549658282820909478929168276916844335131841113653881747380857371284407306296595195207270394092603840521831800060272943370820663534181049691978133085759157820981172223217639542535876917335063802803249594629692438924808565671142522142751258593046490637902887412666686015932749070274222599405945671974251849891834534917939966601265661225456080265408039017859089747078459822908902386420718770472997682115258244833820527376214739515184711556145344885054209738566590133118679061030190844190099987418450603753009988227402577149386482477534432904989420495506989890566552669870389189651622949435158064373610782900327905268956654515560564474013652648635191820256656359433288378118624245463155411165742038667866703191825787244039460710605148671318392141585089552918788862065409276897148442655526843617140093137229266578743231177784633268522381661427476470181358759127869478061743237890562268734534465723035489723802629250472554831617060718838894972652869979399776521629209245645017530506726255179545851920701055308780168144660596630521454693529247993597440895639938976761369806577831197991784531818702130926790794964286637955017077282693975067569770277985410719858235673220031292373101530453818927348738660209685608615185069832537726836875851697628141003806972860760431077453798138938401420587297508809591868874959186591816642084957238171208691068248747838916284529115557313887647771452518934604754489889835743878929365388568397321927355801876234488782429184419955733847447615658242220319415082183752391115767792947569583101702531845590953650118299591932081291315920531556209907305148206273864705491055550643524041213659122052038508413616665761693513024491323935248146235617484532066885674066731082294264998224160301566419034134248196486026113817350798639374994823077133067632322972801780837406242664136307242399713501299301314415782824348017973327436246365952970093544095843622256589431096208879333260897761606936262919008577700716161186967278861892850474423231758960516476966599711333607542477199524275013535468600523179696090487237311747698959263889953657285392383410261540851854911385584285118535610897540454302438108718710022227931998452169096054310119131655171691353837594804082236434784859063802153444446856111449617132556478837526616935181818379579085002196752409223104626277733211630990072147726952788987200266625117093333888372390752155313724527791915563208535933986713089984859066188384630593122226208287390826048975873975304065045398221103687915809579750742533048354085138206315612340672377189886306315559418593266985451226807572989483984220597205572349319267421150237460828263214776366375214911694638970340280535614038919446346048079025728310910463686980646372302940131780550054112435331696051253160933030437504981554960178434475317539368024639862509073893360527561627300375749958320303033825367745467822170903958420547281279770210327052309379998770773183836674621255306963304542980833494946448035985057812933857143805917206587974268566357114374955096773237480719857401778089662984122402466245711964962234272865313547670952405757499517120547158405870412456422483703022939837511751533635450791440262224506910244286749637056053092006817594445529795211374936835202137858406613877552982204278811676875183710737794057638504785554995781529126884106343133994639380851204746616617713891220151828635995517030242677166142338212693203265956017223575473836961374930051227972242987617042120225521363089448887483015348666534408010877607249746350389147626624645416121314351443036645283151658486332998439628359299725926580637188711340423068272232577413095827831376269051700880526199143749466007711256372963933313516436718442635838574890703584318998138410799675007148504514407903744886851738747922038455898381758930756749066301320151234111790950037484746740161335342330811204187290657644477882478022638139063301068099335734102921310028627641927202846280069660657291910827152112897117235566909527889737675261501622711652897861332814271756481127178562688502454376747715979224452858707033837019069649926986481518885774118415997165941077062633840870757913327318997963876736730038928210222859540823611049036084056795768637435729530282163335361222828826798984321421139803445924853104051654230068043929968130550969455229169183471680013157965397996759651273709624834464178286202952573457248933317218938746398705924876698935601849719541984118143568816410212165708033624588110057910777518087336350220878686519604671556418364980276251779842755150174625796460410688971591189189491577381625302478683508260774064236772744585820744668699602590402535757022922137905211456977221324933238403495647242289955472155033038051195881913310498362814155108894850853790507302863612858514099242871408526165181801313167182501009932720142847949059391220301958560156444634589212605514010450008336154303296608831754198745607027470668911642166105837326882077968332316046644397896380586686037672764990044308145347748679514715631124105089090327212034686177094587821545258417357117931925434592488211876760469284212330061846419220206056024015696662649461886079446894762786253694050430789258534205548948592043652513391457155411334114895202916992274626286969331672720825752911780670480911568678013296674662797332123826765622059412168577767641638820861764978088604538033244249823645915979522083856286907467984538349316841312993466812379205408490701893607598363788507774576859084166784746208270724813216777479220815249614745601715212068596741159505325631485936628485955843813566478554551987089793522803629394679578541960669281580540618073787385553570451000413500648851633701131048661603956050709983935942536088213164756104952493356878708971289713561019916056030861491799979333068894075143961977184639927954236079673510100385351597005086553950659358690080384846747352221416448151014718210843695027067099375791191933358701833393973010490177639101571259381705086581004569450892159322018007093797013937987443032382610000516338884668281195952386817415716095681290992189761154408942802897922407064612559554630789593028907102786918835143863703994831461983589088989787563160199459351862090577856171665540267610692650277142272974745345756249141628748786874827079956896172590005306759625741858173248564405506302123218641941985944773168866128148763494292446862136638663969675829524643936512864074293661364349962635883311147887321765520010378156586454235611131703171190258953715886618959880923189089246689012609277698250445680131591029487850688241997480871094927074882699674206984534713507123269326435871940845353009239673690001472292902616981436072692646201249528009330738023085445243279593540776598937510406090571626105876856437623709939815185781818858175281199234077363435361198354014306965955638578266913939355816539808435483115681377087459814008969986316827439732612093045674057265545720512426759033658545054920736597748803988787882287179879222430946787565746751859205930124284153646824946148956108332704874973410895178416372876409106485097072518446115150870240998848127877054650287718392412973764960548176069971011132063307760070519611299646394995786589842921155281407705845718262655945644323224908076346570976763237277242777651362491084173225823982660948045785629112914641251199466837859889093756517065217294397325490434097970016508521513727992708065906645788694047683624018928160128718489458660517305216819291562278610355506137905813331087159949930809634984727894579001403345822278540492481932589667093609327598559542522004331785108984356110617328276448265844216704150196879892698210687940406257992138352779784583724977249285301960245373657683512444004223561698219610010662758740492463098680322377976776422646026820041200651804752196587354148072345888483096360705342233919423507795204710150766971817436806412486857237582547890705503555621390500618915864621334813113880650080948731942815644650875971104418566491145150251097574649509662462121134936029172863805650252203575488227386556023316085158323258529466269036828860676838361994877442276726183440156543389905431687256277485735133533396758319263594542461003907213041138864237214278307401385445429654705366155893091739606423808183880187012405484577766900406738526711841859016363206383150266310111588141432159463039726210560530711733626286019914941228655077970406257989342684248262187814769704914146735250841135545027597660320704542318921084865309919169987173695862575896299292407145437880776085839083503496720780802515244374696983128922996702732038379824782041629362342599835749805140154657712144542911304712962971911855776938148991079069231052689017529522240100338960515970776421171088181418623100437891088957421925563557931233488016557419815960364302628448887795744394495659572989275594812355395062705722937984090560645423351588317312895396730049726244036219538265041923595706664117737947453361872750495887308501592057344788917746303748853458993032250051214456799614385689105323186186005582762361404901677773556788098790139649746244859062818189686999008200087425641053906786364174731670374515168488478798402215538776188007493017773917829196358158783963678328378056641520494656808279825597062561005966061994236665282234112386203641670811460340448202575681468537550002717041526936481147858519753736969225488947128521995722556757095823967537141550278565084898543116886713889839120081707694124739014224527848935053512236793716235187848970544806827394379745129797571686672566683688052202234154814423412985382816742926112581584039576275614151260866355532301787996026503727987384713198576165055540245769857369857437128961778985449719113587819762347016512760320494426451953885683265076855667875503717347332684867368897344376669192505943736478724382362369748217280189123973944577949065952125391913684086728477656422197094681369753635238221387747521380255609013182870915767977379614053032648730911971816887190424084387436019915935815969669899864778131362324925670509152033015989747772186278749908451049747405703065551814963300457855240964751338914736237436884045212292997181029729710347900706519398978638007446375462216817613032639689307840645402517577362832712350000214923147860118334263852529682696607125321983860750762404870317579386503556149486611178532999034831033230275647850787520516983153877606376186205048377897140955281026485625437453427714399629817830588376677099165923938277672817873881406581887900435196156849550834300204883559089980233819911870245712417910036051239284954973317814025300033048912434407846284226588558774409702369823441953994511412043478135769641744475927288773775960839355880761356119117982330184088317634133963947469987922948437487137202360587697356053074895020144766441201300380982480044496090676016054202824927363477946662515140960633362917564661503830233799578024542357651772590536475640592728212639658490406010086348242545921663056753413698161417289993137567484681385254089913914468511758419928777174637399944100129469461772976448091146564932406217657568783533701507032995198122706885347255244632753548571215369036117917651662112811048767738368030932760097983042432937162164977189898643803290582967587959938955709979491246536211498586523386488702076086497768287428727271041819442671844419543731377319716500892566294078337765434693907375472497557813061662306001999938756523934866354152710133451948032711382289118293697706096217227545275682023024895237119332252935604475644401221235991116769602592884588312944469722967197152927218135463083058667441754689027275938353803913734106524232857496839349600496015853947912333632463315958436743779066260654154152329717569265986780990562373356860888903553927395266053913941297721808821306309833017235043288527956128222853638650604049822843511895507753216909681194061346305023963121985862325920130540745312246122636014229178191117008004935899106327171836453359322701936304185856814324809393523494879270466926166159694466466518065680971333535546954888028136442565522034549359628057396940239676191654960091507917865731891159308763473019603275527148800505870241237054370954558583946875115215320748496348685586214167301134749855439534122467898736376407146103011951431043613050130082722495075304868547397788131992078779871733649965763490965574834923499602442525220699422634950185642253858039477154303188240126623880087694803865233241079977761319005696900894193987020601527182089973826340961449606878684831756913980590211728275351252823223355938430882507499337233924230433208249054666093003819273420233992418265457124565948273970861785407217835030953837973741656895507804525680342363133794661632109077771408944944189040991921604837840276983755839961856096866362105694877380551563647174489761244865842536415612929339096642551514971327376101133923444791914834410288396138332848535515794104780297178501175869701766500655441664991211696598607316318459767956548375030590940610375330449741013657427829872930429077246567483351442017284361653843914749204398838767660360841681324384566303408262952235332207993445847135284253482689452608699202097023764872524977356335600622902014806837201387435102908651329491561993760562686963995795500337763696192411635498321114638424021521525233354273623474335211526117456979668164464009545501030862750511369798756051780274117163948528455668395862422176804449109430814761162905798802030241822882230697021936785772048233070208194370917799620831379101549064900133434732961803351205167647768097717879386673561124916136527290768001680968184707287088476580042438634783504514263122487618870065774556707569549339946427334022408185182110088289378646020894371345714840496034475013152064122007082986470846426130321378635665412358358957067273575724613927576196991140850972502516237364080284026352318834182224066082265248074467929783745935890150001681332756100706108225996532130171447476331657383372222198216911406245280333231588787270338640057400786948955887395298629203056330160617883139488531458273263963996884942012186633401688768375650064685452673001728583393247963461029619766454420888791710882405033455867076184723385345756063217045526139151481094955591418298875193102837761640493271020178543761835514201577563368151056745970692373473340095488445094545158733676375663076234001344949409678738384309618836517415096170739365700877315683742610072797959914844260700871044749004064168625094798005294762863231446801564729974955591291481259595882411481217782764041204051234380479209801749581786615338075544978661201670557405081526783746612715738722989600800436894640124321828379261671286982023521741709081764628130354637764617318342354600203661194559839798404915472819690580608968111812647415300707450730327059014415886083783727073391153624585736019811638458815444503832725609321005090810068276745725435723070891281814570970855177453537095125899071157863799803147625345110629508308978679579303782158458131619447657287396576635520976176987199571099400898609232497663655451895111402560566362325771840793123946480340217977538079091171286142194334124166979711128274771720012306535240006463812237405743274070186831796436619130633874580474554861027389817393634629330770442750650507787481840324636852342509804555644373857040395729244200084938053074110266467506366988875347546613260643570959124987701543865179446501653849701592368982886416970720410291568103881030577622232378838329034756208003130207491316435563425713181668047804926737995321535727579566308830718006617280680580618704773314916452737085844180506485084784767953795543858891368884694173769417302170922046360653411926533576266329740360134581057506949503508860714799809731207438628646819604404909206553337756300728835793985229452499751398730751810441627479464080597958535020148485748620391146474841279777863517036193269123775632577501646586409592720411491218333283417182056343861795966056050048146503747384059974045179891898224940466904619776175233272184853573597227831604036730784178110243614065886816722807285392308809607788840969324673029270370037153668196586145804625128988235139562021061893147525634039166041139351655993750505533132828689459984840459996079529620502821413370735969868690616365256731628452633431208671446964330386521690171889762258969055131742103702093988032504309258520168947444588584849398574266369622432270141538683915655852937532406226157784997574505334543389288026593399617487332224376690086422642603988041471475293643388455700905245645437844596010790940419463738959660037960759021376541779690849872597969427663912416095684733631573353697723140410199577976168141127385733830538198497189623300620868910904949211010902035695303637623614277232472271931578979116493206582311548660063010837341734659524598225701604670582919077460517812465072011457644744268275101824881605906331581295881964048265171903983725789766235892628876006113490690326938489201667710883142372520640341318654229869176733303682536646749302811657038236018071091265130144592298699886624536445268968272772109103236132902631302247905226876476448009435490111635530035658960369691754113600645193324738323738160356898705082926293893728937071223959188549075146886150185047665494536206061625833011662580693275480803829422168912940591550644228636676425498871984068615310132398072128280545677626946593202128555010179082414913037028379925780875982778722033305367746678828875071025988320509143798496603881313613185436843975408016618567944176466471267897414404046747177812093241504898920711724793488900356342483976483172604323507513415550520885038782151729914972543354752800154957401027132452141375725695123985066591461676142519194424141287484889181861226340556904698822361179941156484876434584507779365723193487891936149340407760110165800809130723674088144041825726265226919722936961443374535074923965514537090639033283318825420053843761668518486060587301427303401379430358516341686788474669808126785694823023764702592859188785984133273833916972305493940930873910184941989729202923090565452030378818614928287570168395058978976172392684125294287369005286731723618605455481621017841238435976785136669483259467950159578466872628208577791021971730231704009910856180898811229158966022244597514991467303459798451415003128421526418449240734287511091147219516457636527264256228236519900918867508651186870938080221097961816295552041522966108446313066731309143956383497484405160524599999046007465115578317586607576029067417652474608546584244145741827152941801857203013555262388069051393118424641625218133417783135969850590097958091666831352929642593427156247436765305992228808857743000155378781104679731855191467056540795293197824122003051754956352933347931559811371630985046826992511841695282905773279765204557355547512251798002295208107907111126492091732903285535896059042918553761368135193264244691109011597792586788500181679439739616899914730848508261917325286090808065603057167751789037155470636462690977193695873659196655238232005883827510399073473994894493027525435359190272172138033347333376509433965836509286055037062200301189345035913058498874582767088623658181528139928520196998490514502200506173840684003410887190311734163718708064481916294403563731971943031343445860784702812901299222756559375552113053701381282539281162970115694091499915867318555044190869136040232708448171466179541513711439971212929420385997405516472996734897182798626780459964669185891507893898601243189557004622798918733725800066758279132359588891987602276030425201574285244772253756608376239099287576390780813148774708625273388041751082957475521218066905819354331456913766133329966165339885647933285746039587477370038476475588233929942284642526218419781356167216993775970388447348918784707010602481543379650677845226196579250294138150249865851285271126438761641648923224316929713286181610541914184099794449520766892924283619280408354763913125505432624372737083830882484565696265666626370488637270046471444743098087230046876091127263465900337666867450020623530181768305890613685373617917144539524128146181455261468139318315839350285819356647578922557424549958540559493536899541226549835365999103044426673624556852184105837978308618432739853958846429935524135908841444526709612510707571651058435546486099693165226161999936911778825123972411706555058619133472646567698245097610582834054360219893662851065651836159168473886287482401274680087187136507555781396320523809327936937454323401087041732245398168068079272638491740308543977674978508282733221038704485494351009250041116721362087873139462593170179504893102197031073040410898914706645208537193428248820424375660239019205559436253144128540215626938327659824824165473775177598156887367958587583810444636058844729728161078706896029365557546014706141298677844871519509808139461221440808316053743431423410055473656083072509482554113160069070357220494808109893455622761928637612032376532948267781255504563582909172837998696987194726948213614802651560187659480694321989523316292725587048215093544687904788739299974668350575099219616730411123178296650708388917988369290837430256426524930555842636845936336391191876435542472867800545590962386879496436747717293956144404255469667576088190751785653787914250074099908777301709786239385835967805341121112999849209588705180721440101920848291832619533819734913313981281756534799818528089746454302523898557826645170138880720056798051840010800943683474415687589408196372687585735288380703040416084564984143628478417833364762820515955975387569863133798498418812645064763192404321806467072165062694897689606397413154146687565100402334727757600448759742354461586879108379195998139574431274997230522008226427112518726510469043451142025730896282310388582799589576632020400759198305407297734691464842487588200844529007040075101415264117207274253883791516852562150605520831069356331086655445925028938193708176079398501213305679744792070624847462909338056160660630622456088546486249436014345929834275976730342027860257620765712173868802396335997576351391568824407401984816548066100744671991434590911068353462879607025315617659937333897445485008583812365533318178429992795540036180259602593199215560689290182625538497634423590324570282279981414631829579676878177448502910791756247964945167877774714870005610634751116168528153736661105626709014562149090877605097632680934419793405149134240629806856552564905933022274531043022009130240766415648012022425988558237024232751535367480460241110327042172174708161121650245777350787987116623998247000877274638986875330558605729473268753761645208257823672612305227980455494049596367376110403104137783597904793526036961216999170782782673915876988635951966127164262980441324411661744678616184463763177445916666413798051345014867247965216889141896765635196129105572469817380836830021942762854962148443592196286697246582805407557803235031150372586841957977563737070242124665483092879674317849949691360874343387168717063458882413993056846701213806815249938432863532882369373368112401412806633793736858817345896560449153575528349357229404169211566017863038985303231454359971300477091532611023860572098359562459017838056066001469433873993074105003202400953923599535504427807886681526754095001804768960149871542221124767167062132477598092382551855628260788655540795288531797646135713618530326717493299182654380096769005940281558452040490430879698073683983656233438105960941751567316596942601091826838960112739798896879242835333884343820828393794175976757673497937188422865336702036519888145154346771453151801579938090226389301227812156307001310779800551709688186274853161442979355990038511052638644020535040714822210793343760348500702051521306292280958053521161146206175422427372055295264233586768832568437195083631323227544116930803104827435471085060033664849803370565064097725445152245704740763449598380398174172393877863871442867407321878591218329439539404160016336250079771190142947408953843987046077920512891105774801129158266171927600977547192966600599991835723699880745623839251545603241057019447120691510752569690471742775799977645483847922625592802165731389764148472376906156779289311253737482998554562246712187705263978083836931150501825329330360397950617685196264269214627580803176096828496537117470227023448703552060236893312066539243618340054180616499757889832621439394378497143080781921242092687992898833097648362656170127847636856110319011355504398260680677089683052389516554271083986441629217628372242948230399899128375569676828101085610061238602968305335501501498244757069264619646573187815939740445911393018174497273853378077132970700283616231199438338499403565386274028658651278320397321516431970590437761385123696022368133833046755151990938696022810827610921283487933114112390633515956665959904672858551053926080713428299691015012576711725592100020310379746486430714505783482995099804685861109755109126923874508715945543742697219973136738721087973846586781596001946578680162071257346444210205735346138258228520191365839145786973591081477832209395399550215518915394474515431188972281375841141590447158093261906665983128596969519847985489276268974579885005315269859983495743913086442907089348341830160596966842234145376095356972441357860951270358500197213859126542797415883092159915067299780976517597320473274815634682391498071628429047449285228815265889279798357366800762578302315103593311288973757174140497126027507800123722499233452399158171424138522986782530071670280821756921529831860785776868777277486216824218780279500071036631350079385867230898813911444597731163156571896190305915186313072422978931572980697160752970239535705694289014876901292995021094764179393751104204566360163940375650645587670236532520163405319022963558136680841851197200333613327410043302440126149376882037170084240624529222931543523070611227632081342959323341003150445343537048775200685991659381282813270142876325805968509636057998583850344524600258798597128665657823285074983874305450756865666329200282341718347946904275577440232768298072549630488881975732548788571803388316419250066041095975347961114664346327583040147470717685342900656579746442693978759852100395071879179111512509915518794259613098418504375966201784258911936330499714869427150834694887075517140961105198718885410052158359015620461309437308239772415139819933973295404732911102750416378197163060672635581373778049961384921069881214887275217993148078701909826322947953205229463661287949385794892767643668274176860177580441172726077610930872725898696834842111492999025801353538305910981477605799222897873378156091432438366792651426777102559007620999680563529494233326992741822226587960428405123558760102054926126504095808789355063393093859843862716371589666531241407813048577064235934047132039745709013895537245889689514892129307628764190392548226645279795132535121030025954122326688121903785270436934589408629786349787686661169121508082347663357889655253958084301987544824789568984707161467214468654782985263964201710949179494892099430175140822581172011892207393371599626204893950629263155004039754055190538821171754734962637030299078848373363437172956903705469369957276997820403858826129908221031534687216656934356040354710014823616693877236848790836596374236483558602630494800446738180312719338139003814661013258489036053425116822342484585719158250118467897593757593727198321303784597126191780044754857054864783828075564310765865335790073926105747030461446388088020564516285014398792603398631451270490372304663436455198081230791030195251467911679634992801109210760989391052959896313629658817473705327784867917058918435986573732757565577908260743039106835346381185309739395259697403697866431071610182175932367284086890030068583076517484991292798252484395794628676483068655450576374377190292669928408861363727635461001499184305458673972476556076596778663731655358074177011979255009865833815635385719543599161167822925539164254616463145985752951349430164193204739197428282720367660942865340884214626279110722996488317892507730610177486263155144025709355696391388377179029196095651832836422054030374419828553036521662953844354155932920669293807631871187849281073989422388279813363037160891685409135642108328374215836736168723574732041494808440349383536806460739136470658073453307696510931560837050610297911174103776597135064145520421365270725783713743823997593656026467741868435367083369886511286408245778042139485860191513804736194010103181775909320949500788970684130511456981278871764267807962465126421699092946400464644888481479096287910436022974877663706436886781872568977175230968365471290717024720880942097222295472552319975427079653004122920145561198268881037105422507101508239499384255266302679345276036071448830013744798292022340713336834229351836953747578190012765659757095755709614845488623791070000687828983083317555492982287914881971077372065700051127985660533614986594393558702985972128838016665716589083089222263095042166002271917691026291267914972552841055032966952291729012006146924126433758807731856370854084719575043277407723893582070523365385836659874342645688191280629953948052637006441524808760313371110868637948430987519231407286953404894223231076081059483223458769783747732501493710796507725686590434032319649912413389509859679381240714638595669771291893831090181139716517036741233538060938133505540258069203256001998562417703430925247720030097562876916573973957800436996328221798702569975419091898231196204016311774250624088688406372861958750456442410198217726433260008560076769505249683454516615169276239840651159126819843141082230163148303640815550230595242920888299360605665873636991772727049714282259917184338159179346095051404472505696657181307274368312729574419147198104867556049923156941371066976815240325958881928940701075046355716128417386516101500950331988238459704893120806446343477695219459059132080673798026448865431373711235468057778898169106372698736207536641789008359573645212897685106190067345141752720162997591197804679768012078796415724205703070074967798753543905960182735099551558414996895774551215793899557550623504281443469267456350820963414797558220688285679704044511966287565001143088065295814112136167413881112251632156464617142667222512102211372834846929588060884625722255402934233614169587235390348230126548503901283373144352774629569721066069104833686935852138360683241438470607638002767887460044212135286955213023846785591788844258323503138516080130143157336920946206194439619281446888068670685698675238682031782068032693438873328844574008770903858703542544274768028344276049424954585224254261411110840712387776499023032637119159149448843811174517991452286158433684780140056410407982499875495292322078036166112275323965791857149876927302370087839305592276436593781463641711501873215275823817274073849155476981018345467679538408812959536345881946002945208101476433417530390064535659248886676731632897404839641108479874774281828109608874125905887462480205707864007882301199815091117622501323205418845773235552570143678177931089421958702495604708286596906509727573696593479145813847767457137588056159385367248745076492795302352917583679658713240340931091813361311721159583538129661220011959812812376234167380109916728277347786057753522901645927019534675634690559707484017777552675554792658040660035294581887870483267967373688042842602560527005928266792563182358056263192908321380753514125155966787720062779214070395660673156602406277222834622180916480035560536476227039287436249454657871868710107145067508739719203927201828150932034743342120258965088046630986381809507238226921380791894661197480954355622161747344807918171554123198192154140289228355425316812336949609576020964827216918598104359832129344092972054222538358155076858931357425354021887885456262281137134511917482158891570775129433711073509218727576703227936201101997104326253222415937238926635383460797978428683400400897809910690259078962181057231401342031976635848887227335568374383075214635895342670133820251106664058974038359156213275041592900697924270698263805207663219484317874831239850260624226545823927902236001196442998666957465099114810922669644838292864395434958178423100326344557156682303578253705440957868595456561138180881530423537661464380126938646750093844221172814139321905897130258036827162043356223626684636655575363529234105998382753633388771148822681017424560385485164869393558815962390678949376034648309643827537828775659823082403522975701125518810883286481496473842295672060981665922750404301761769196321602127368826304539602347471915949644950991713655526529337126821865439311988936254136105909540239105611176641359541538654357418748291880797486582243544561502584498870763689331879694502011448629575753675933932225531508077195215005461150769502626327199284437697770058528042595799566409932183684329965020145374759967814219766952776727868798060612741766828925760545847613696090875675239957612715218112514408451657304393881668029907560048148797780667519524987839306149613548116435104040244783736673146530408349482855775933229499089846510994291882122792860313640748539418448955019821874879266007431583184128694765651696632809696111984155639777203813255326647727082515721034729982909346925046276271852428323794837871842420637674537811884445138223679395083706269918889361829428665368908203206594256517834688267300129733421968511525470111525647773667668025138534745906148057571994762343636780783849725389832220630236254163927183634163883491356148868759323741325168711207278577897610520512559571939546844405348227816076959938182953891917545567665744497202326220011377981649536487107398792394448734789438049839291468733142075690203529748739200114545057913393018501163413977797371173015243591706485987800245148704518231687700616775828669953288254090433770658292824845281372271053789299765180059300336872444040446503240479534090633520955645226776006423797195966455869225845849958480001073612554362675073077450760951044487632480251357978744390818298290393717145327502549919336509227700845002353535384593944626266433452345746953001673886732064540251394836376897220728283112472528634564241736788730774358972817275524700424726542119452071995881989504284990124211511252946111376754345808644755542282508802608715787557808584849629448050055581085479779926358302425935976677476220152073287504050434109670357582354016467526557983499545207733806449103549791113259380978554650208291076281997875889075126348747217008823552005009118648114410965009379353207293101109429129621613002496839114627853779953146671006187360562728518410395220440669202815376383055596744314563203118836908654739521271202333797083086040070983643952486543712964863321757628923389251948771948988878368700665538320661142469044003714098850552222281835561556430384190032121588570804596329075762009242124345769876929395238197883633628791642713250349774407111739196061120882135236807276872392019376727345651274902471254864026447138641718465644801116813726569035584798384319357426028117697946820827143367284959906855256339167057450940011349066806800425806025257804450255787664510832195838430071690547993005933847979244593745674749370366273112259807398655786436730540131225358380545073375050854671526915392651586372625235678445634197936489921494863191359361451031423551297443926502107559601278490157763809859870972278192719172238644724392605856607317457042317928506084096484438454037992945377670834289561820785593519006392514999645646573755085131588392420420108744429205297702017917077919843667850885154683410240888145919033001038495620758162586379916612842896532941084495620830055620586080685216007457198784464817680717036971037351583662313955202835560955825814546390412466304489735141111551484399330259796428614994193760281499437262418365665302619331342333826090409774415664979369636772517684521840298196980972364522911702501833054225305659582140045737454787690117029368958300705094573731260517983388503597844480667011515107967155555611116587367596609741891465314516046427991861136622146176971102928513727915521735230973987865097372773614791334721857576068075252576578016441097286635709797882001537670222644407436346318123450158164121868588626728889971220820914704314793169068932118640851318350962129751206098629375122005298713942743471200927701724541239652155111053783944832063369963135094671412670429540204742762159020940431225823826718978893500537610326599763390022185792131957480491025357065859503566960733200183116556636580032739370533888475610717324045417838980760233846601179297730585756268487432966929288228768193663346061749724272974301346493250663158156570769123115931439213472976455405577615823219875529873415111738281161758369296608700916151920480203024425693243916178205455546569607722220041300227973572257445859203246421896609268119031088437456503033751513262816270323717451071195662592837565569794453187596147435545102017057406474850142690989288843625578183520270970723681831066168823469268851865143550443665636918375986225886338229719675184080036902862499010558593399597614639168402222462182191402060233194485840204128493476592893834505212174518223081210180441868793580552544263495476962120105209756283149029637598545055761954688788053321917452029939330741771745546004269989225840262856517587707886912932966715496684178735088858918427462489585103797261965244030233998068249362501159338772785332024218880621953109734519095621001727012948010854883715649152998204650336828784712773057247119639003594976736573049903182326022140880525949427329212768724798364600350916372864870771174486376598472395246254152893416088647110034306819438382120675253179739690734585343593367928969339069785569057749525092331148172445235131602797477088840216623390482980542440419483921424135361663435568971653716394634436855143214898086846662669313051920960735863012649909517856448235875233528315097248127987908382826304468433613683025356397425366782830332165183598194040988585158648874165756563215696116510657984419463555436555877547489998986954255954157556939923595583901287564721980337781540525590446206947499289038906915219008675505526906830302963756094007061496771961290485181481274834333508682941131016510079889335545860777974945681785295354856114512723173145768422743751266821611221717049236175520864525812712043004981550664410645410689177415384446814438529700308573784974833757539641495784510118192642365814724563870120072398551688758878119325047891348732491149642840380953249267881567321934102520624585074283975693874186071977546115261658765007476175867129605228174991963094400126638952463418337293568107136268558310810839497237249137170520450690208023514734106934595180347171805846242520073686301489620404958388204889155162705674947388628495330583432943683671325140158272027613208509114769821563474579139791790719906316910700146469053951590845847180375763050708560583022213255232642507645640216268545611413438441619068755086026570274245360534630465758640024250786346940232590764151833471666190334016937230587167178605855622168365680185347846090414365632857529321634183536780609244035632460492317772124451933235511856538978754066982131407965075916585769773854500103847702863244556181167441541415252142371091030949322637395345336941935410557270706452058010659665965957331849936447211887598828149575533278138658737423236075369195457172499115206025384253784107509383450326761326665587724483922835951912618970599696832612432167985569639603692262429290371796028204020611422461336581426470545889942432297281352075999939683504888886136775327686791477069065348439223200942012849061260888961020162080174055854450040946024750281007866380532826256944857226983721727257997895625651083959124065286255992910525645139021375467594693510730066202641776990724521814418258862148089266503390543665347854801502772291596758313665278282275632155493876140902216905539908823029885312192945464945233461857009405084302207328104340323387092588350044783581921510566722707458191776875768045424071086379750362820213003486566456187028750272112043105614745861388831916105419242343744046870042283117677807582289017234835674727214248843535195643359173274780150976613559148191290002493546806104276820464839432014719087862162773854738696728798663853827520864345740889018407855231711113458136340495498535997372755034465647708123595567378158809237120537607009269539665324590966274993619123058619059734811348345271657252743185680652538728740619336355052491135347888108078310727106571511224769056221139270493174609808640071232940421308503417858328479775820772652871067203082991963599072892931794898925870926733638879164539618001905586472662930025077975616695226197839600161123273055659703730387879664760333872176989804734691708599280730378513727418271060871310658461784615823532708801143367593322471797213567486154436371433140587067057812277890051317651612975824305408108033649379039036138002487302667889742593556190583053708377183045879835931078676728130227905607806215561005164599184674223786269477658893359372624662614726920861419051464302615074847536455794625052310771747618409735222877401861692652529748472748718739029035229792941497986680555091456711969209393100471570596778936569452820180470908974512348872720870250008291837679798881939001372415994300293869210860973407441696345664553619966398781851358230198376678698571237001552388162971715349423933812953158371103287236991264886432159991575337293563196093833187646558095012125511498728022237618323836744009584589993014631008739963948575765256477969513500501067916133239541495737941725252278489926513689227589875620184543093086935581526653373244896443601065677940484379903387429117742917083167632583216120497843510691834788333149253279215244615727622751456513299890947366143500873591562269052979872822446195481524817113790839587820442518733020485356779937231466626235958959108362635666406372474216441429235531449218476672084752521383453526616174294203624490948747009689094891718094644506122029869411794444460801983510978249792258167195213185023721581176222660797682933658923737342222245953207845885831730648724973363034769046188541329570165635888665157706091578151753719513707159868231148986264938384041959162848467990278041422429103606206084736971534088993330620384147376814471982771968098155414532231715449014205164457090318552517295851210460829662144071212005929842828744554013296730918648284790024451870615528222687645939834838659071761382536465164798533146759985357725437004257445831047711262468806077422951401268526127048545749620351931282723369093076325793096426993709198186683495248647067102875602455807069778947998168978203149863853411677556670825588349712649210292917852422845478134337708183870808312386025258807601379394587525249701499934926140367933306855543578457324185551024828967872315470099336920314266722062868771339379036332293936612880504005672554412621862316150198072854845631646191691416676913430569338048312047148812457809613229444781488530713815342702236366942162535668418216367223793493629306027837585372262690023516206784070797535613792817896889289579046289659062774314247364978822540400997331663809384651075151907643599180531374654268310328934124093606731990756621187637375290674588805871720095055308159216767173931784834386263793421394618354882763874037410073936758727104085751751288806381305874644539050737079289555509399592044870226789529482373420047427309000803690909116501177640975092093704651192037033435980531266379361095918336592913280697935716427467173171677559106436118102086738367854761091978127563809826417321024598216262949461480836407789027736688588992186561003412217227375081027953674730999317556391728050922054316745007121333778758162157657987745519902182056411210695728984451717016235439193854982351122699015229305931788888805682196045414715423634165341916297717719784960583979718585689289834496010445889922226878930797186191942944613334311613340793681986665724093515910893604772598773923324051300764074528200102103868828510333527667700446951766185661022604037668212224333550053736741031829790677581497714835243206462170695357191108557369490375803419310370494767887438339687715410161262976613760905441834986855167483856620545025360242150552775059367957810481092320346737423621968394130950273104199186249440825198372782204972523697154986412823385301114175182244982342829072730152356373706135960734859777938609881784556173888969027030338209826703874721588831015559459720833745551795023209777073098020491936433539519604385776155473425850603721355538833230308989762178440778214896451393807446167190305191229655411546998877490614122102054172130643505896895912726938462542919936475137999302216136425726158529400773073491947404072795161073876206420818448577557957828068902514496592618620548347731626624685162246386288247269253206494169088329875958273644865567568899546755151738741219014525486700745034008651964156627204138143584571882002950285838806168697419790784245702354667634855253910690612822498924191091537466919107305105468278578665388278994932899085044852552871007388078867987420799357359280953502882560710666901480668625889234355874929484295210617709969767921146525958651174230422452996237113885451120619529207316695109588329054768829049281204657607292232059213553339478706687742677984202344609896874599087731063487257317260770107276497906821683224646965456048251240473920490740636054865901471555816817752624353799149829010282496174805850315874470695581826391969835565097475218443596314053686801920815202835092877077127242057700635254537106738803528551186002759723942980142870138917382566810576041901994468852943513727291680991936064408694850310119081701802051111738624395617010822151246119941763059277795498523042410298516631397124907758101452157185897678892669200011120777332695663130677307775063834052263112466675240534343130003729624989929449632516984714106215688936173232073038615585538431941875663425403227774778766487989806504787468968768205172439589828128651051402021802186177849427945100473488020178870391862214266932995495939066256107726587294130479072512593494681896976714461730922361640135366211759721659825091037263388653838344210028797896258954369207802630990673509154810018354916331372136723558755547107332429362009822082584091744912996716594372393921632479244857871525209295247526754871895109587454774034127562107773361136026426976029265255072007322274309722646658878522302474256122948655697340987777102405760707543239885441578915593730465105846705294716101298072304513629245403826135761042947224361552751824325789139600860851750144802266407387992012515121129737602548571878946414892619154645103887461222369359987642728420713823293003560588786538571947526097888293007444688069750616614570589079712827636685265430826122989264197014730610044472856785884071115161766160803875459631634111346234656910497843621380097440152736223294892019750986145654914884046865256346422775652280594771506009774790411469672685705277071047725711711376535300692428986706847648699362396584994327567397305775053860385271334164083936628894750268269212650512443197068456024322178522447345861395186298333012367742294493707840614161148250896279067166221864754933147018579545400600881418693586092413585750577057309003584805647150290593592011817675832425865376555853477904517839087721400828998116040229059245309539871777460467073479967155770215535468782734963261394563423838139344921043238772060066583304446720261326353101237297155272186937201657623437662564737008477207291955083607491754187610268279869001312735802790498566050187199337534645787036230404576974897068090603697685257515072865447112876936132728357242369721044137518466272977740543319539098909247739698738913885364192008952859200091065839537395750769951708005615586312740199202959878053021976769282889395278853650750411453305998353336020152924863299363715306144101639110854164340653698836726861181706705769850781184511128728112616088105631791345027930039404954124987725494456976813589897325052613386301594348429906383324644241027126307941167943936318021878771234560618182510332883785972809193122186906577147130316554519345492651232078696855120847896242525578207288631222698167388754258409251001125416131390362252513040910532908380447579328039489300155546840787454442497771745746711166630649838156744572322215038836089728555655085095554833860657890114064320295238096390641943468444212631240649989416882946492605604380968454018525570707887468372443448932920945403808937941688006290165626614267088010897455426816947607094221178083048532141704241051566382600918422234826377561351143251813910386745679025807561341329961074846613620113448108447897609206051102487323896036981135277297829793130305777498029828364888094926564436738964388224998668280868487048999209867747697022085171359946057077574476675163456849542256314886309386634362486112287840090363615566356941515566615605261992852461763214776432847840656756599750586939804439000202829006404714693295833894539146542056162737248391787769340924734761035855211508122816554690691067773346799864022019954225698431359097211267445569052498567488141682989833293954807074490019823243030960700593850617309982780886972326458989156117578059849059572944912103947778771725142663575849745545684195112720534504585638221082053144274340976717179603230117610702861423862420670802557393934696267221930312801866836489983873453775477319374170675497390575801119550624513331855964937534698398790862805535032289155243772559144183137627136972334002743828663050464906674736640063341210041000945682682428425752963667401221583728470299934918587684255468558801842877359587177694580431751731880638653215713653951827399734442918168682876884202332432418053441104749983055677123235614798420277005007141461860217747944101689798993607138668161063867039241157559399165385718912993916752543101379829370634051170943158823509940617412310772689849812829437073885648303439219277427607072186316599953707390105932060352397528371354675458013653908335583521454304048088665380257242407091906733190160845429173682899320839025538537562835432903731284281328214695015631794473800361197881339663575703170314768475308919968614053491897755756730792948247857051413838479443054174255429617823661987233383786703144731040158137215453369547294017797613764603744744645030381159716554438920287587857865837266762409394666796857029291452053870288750832880045337611115451313235693173126284952650653394947373559782438954468294060172465708272286429719404139299264635953339478525424888294430754941805420776333360372378349087008373719199598912123474235922261087273416848287468788945490957627024580372709511863108810938765411694726338858057023861256720364473593055268124101467510136819280460156623531576277219530536924806731922307961177758726426880714247434540826951871020197592936516279657419329125665209213018408243350448450368972208839882604120129311351855837622745709423763553816873275166528391196811430140295693738864696233263275473898548108997455333392827892538017693309107604801327134706700482774652615425903108119752627206347124048971708173803286400541138962579620280975531363867442520099539010716208594759064690212277071916387261707117843954837769344970542398064043537292959738366424107304276065166142576458909652484407547026880290195514116863921911619361729998005840988928051241011039905165124542561782587799602875200761321806231785519770205852499544993961606345905235410947367440193247852207109722290404927091365170571844153381733568556989940220716384209256807603298032859931071852640336713607164734364852223400502279833591199875478491074504682393195695476603185136601211913969647132238088133289793168533325727662397488561982057581493210192713841953238678277724118306056407359901184931105826295423967393584020138019013132619914333259605716802510555428608216232036869362390663745451421204239782048208091761380699938281541970205738432872690899655639777681649787523195541383395694829972471992147667627490802022868281234477708101832001177478310673884968616064997103383877435354857892158920283059990064788172777542259907080123502360755138602922244942503992760040035726343258365696613979873109257367194534580590209851691145292296161032088535114811717599508891902982803198672389747184776010022637988731397075084913402526553162156821903937394031611420561794725253254720910319921029744245480420600117932445993058001271175631341605753662123737282569246445323271949839094475537203903123086665970166316636241688208654891995942397121998524221316963129450345165172871083740842284640471841775056914282886640709496586728916745560087293289060972405639929496542016382927287626665384832769793966920601430484574421793566557805605322246140486112903192962745586914532347443948996748708979670055490316864303728310286483986735629083020809030300450410574385317098645586444419808200166349955073088415992024916241710721894188420531308453084513625497037012891976051977412498215828869319235363147740744693101371649593878547430941530727962372521293662435775550840745943724128652368793803912795297561918779600353243540799877955428502486169511749873117684474309926365240029675997989257955756894686624403627998426821506940370042410560133819560978484001401620881368924634604804865230487242047099364340594736461294402461381285321442239783592360960214019212114559001601263921020276784646621713050535188910316415428510456862851925287154024616812362321546290556607533995531499361167850362144383845203205641842206666542866529872129443054835459822648524276946764778579396162367780884975191127928570293527063226157450218554049773980626022145705396514497083520448506137400760982049220962900663025492329326311467498209395608930915207025988645499022992339285630091171080338360320984500856541724750962256252260255178173470491210807003136672107756016192562969863383482797478233617977860702671286390520940514849290662721893885771143615656954920877231214768108951852086769331743133192925400182929416755122592868369454397970992572224724316917968422696980392084125707809258019066454691953018681853034242463312482321707554127440058144097322073320142310405822076231592685795200442291200798715319623185191315829122298410312826905983595523084582266100969291554240658364477237220726661222286602992324441702115377887738662162003680388440711293059875599563073909628771876878429082122664082920252213088078398493155673552475892417090939805086942844328735272667097067937495924912388025856126839093944078669010273650780556329982820255351509458015690180814099195811852785428505702279150672570905634858945654567783171524092140470142475285600040439567486558619711860353865944211995125993557978319159505933828375668266765290342272590291053585476200215938492834798603715786609319380985241414109897127088171424053931766314841530539453717767358679732453906860956238126001146458067044662882891900118174369353324056795628453197214385832743362205924598904796785478622402898497625353064047651661822649507104357975287490354859575822807342419373235977436108168332663998211914046304161320340226743188717273389775694634337853522381473065041126185260957077476491025021495621739485779936097456106745021349821834999162354067832248605010399068852237028981592613092637823846429657382875592334174172742300551414757629846321713461603407066806592455912685246039657077065700581817251524522727438955269946060238218259415944748270803224043388560703030220644952253615972011408182111253920208204260151321179278135006570642756090119744689235283477242060286649994374917688504809423281264000892915681326000506169584340761704685726512520217569753921062139840662246543279538242943614667532142384533762588233785657048166874220783059599587872186297111187510027122161450004899030004577821031488408828789469388646267517131678947420260664971389735294122840853662910348598764182627272873707606511235609284319824986257384924943768600494476019058908385700326494458301997332363464333207321603022924563631793837710443696987111369688705163462623042310005497653402411340866652074533776463305808698988929726020508094858128016448540689547634679695507729056568135352671632694597072804959235654760404977191039155885842830919727251491794106700480224367864338242995105604087033406170413005474912878473805453840136755354516711710198914673418331738209143812447047079817570214364141252367966373817282738207201501753654077174305112242767784245303538198951083409838726855246875631337836946246912771614396681784869482132324716101892712936460482980678735066948818078241010297583292080098076493290354037105884704114103540096118790709015582651880528656415467055214361330207177693599031303750474423081659494788954637119052630104354859901528987396378904379162475947600615558017408113362670703769200627303429275971957742777492789682547397345319571305666394386814303931701862731632090639376410113890385195061709795578198681963019075280518252784340323063836407738025532190967827528002770305421431622735692463578601171760479488807584677374098252053577816978547899919722302863984578424449829688561314058367757483605784638541742900138934207008794237845282672313306578233296247774834034227882246168942479568404306496276449714635369042546510540117223215746927639566536389258807954389732482022592908757150804126411884881265274607717400993638523245766852772985107815149622004791340180708596631712186650419430758092397389079924004455890417584562172216888524422014249623943200002152622537581018117512027772932910682182287762568704170319178304865624606600936947070440068422781287712713969562114690667775371435953812108539838881594672635756088157636766557084726373792291288151283774966476735091234323851684650411932963408427751269919897181145686523688678819154302350600099238403140452911072287452114516382582287880902751017882923301694108902971796047770297427744179756589075689683124416982912787611430163981505070617965217583873834452854450462163513949199835583577500871219944235178990190417961272503424074524949749101875587643707943778494341521249151140853894843014172449479796645678930166636944758166515613226359761416560559452700879528736309418477311737109320194757919661109689615375422369984014963480966601065052061475033747724368941553079962223516824453293598980014837754067340275327140633646520617204884795013780922864781247810742787742697337368601759876421589915747914978516175247944193984504929700123241487482545314042561744773764836580468021759658727540951426577685521999799619200890302528680107872940278662611971323043318380326998555707953675956748974820896717594471909806465169583622135190292131582015093738380757160911084677228179981275654806006544591925779194598609280663714773886133205553069043773594333914421459451621501707530680838554487846555543236500361577483425570630537424195324485432826220884398966385128943535755059162526654023795364103536166565065552569838069641174898339010644163002294734099187913198984006832811987824734573702470632259312416006328806641121856616544875055481213738214593363164548734825227538764343468181410238405804512358360600105962518231149273445544552070440663935726869902869534795288081392677977391632423431786707265311022412586658230643875088320591927266094546712218406546793202276398853212464482236868206463218342385474722571671575115585144481916698990415017999965324370067958262941337787129939768553353058575873543366438041900397986392663915866902281744947883259919089998520476904559616306192792003503498322656478661001140281304674896572059362332075436182420669647791893735460938386551142876741563753567946238555389515896737928139482944162198536309230691357082535614971715253504347694181493267891330269237516324526596850980372974350118561515045809427148047494689457496333075024091263766125284374349919805254288416363329765772933759054825899433456047551444528327087229595630084606888280624666316771817767591284772735284507017526062135164295813029222662607089159320415423764792884370253853488951160955094075431614338961241675422546601711927613096907281198910189980983728971789033725454488413557392162711582553495561096610323616232411473048580139290794228093095058533790392421137313250984860144295018948437702230526481928200872741332185894133630929499086979400807074719730705591875820141721035371539094121935543117353659780691471725532929368059657659783624106277382949841044532263525399530523257021351462650714220444350306983223900098429592378426088367629217522794507666360013404426641887206596443577661397242765258806451647829440317117564473919499127082146960821924523652744714899582082428339340040479434958186139866497826529374229986154951745533915236103360619149443846784378735238044290820003836203511216292152780206175642100843998002610733181774259627596026364942235850613471044282656339324734760957176631575014001343068943374777419325819081542002962380201500434897274296361976508033021696639094479793297809160668840660365367458881361800188199646667789056344779916847883276966182277635063930069367547526266564533794007853915456503164760990448063716151609024296269106713456856179119173975946970988120830201440095875682205603045009265403291058186091917946568366516328603366848493248493523837088841745859604033812821962021753816704330055137262201601672481002357135315104891379647382684831702500442695767119431105226572557710249956778511632075376321178068497401583596713340136349035974313583294367442282277793407002599067447050261462015541908210435065658278454739299882146336354593184883527697118253904377313495115917278101852887628924720453960965073239413970129696963022896722604483426665460565095373337517007623362849891284674915993135458835615053392647513104809640115628541578060323711358274736238918912747174468237567364249963861038144438551898295566071482972886105891190229718559793952884308535538981978823360820452971338182873817443808428152452798925112165879158957831550736625081329919459205453492206348706426551738253589898263266015564291115359824763195931774444867558424379943558249901054420519164533108921418214938004367202318420573247454040282528956418534553323148784146451492998466335987936918919066965262097907281200544333368632855187957021491582227691654325441698003159692834074722274741522215172821972051380596616009880464991724010371310829209044590339249510279250295060500688049510064203339018391344855589887203170480663078699937732840054163579152886422478421241724441941485100794856119428503915352428868766824307095433667025883122766791587143010017083483246827656634186185656315158346158760798080435050782084510473549169666722003508997234843684249027935865939971349224938121832756543086642716629628955890947179510479603179798429190728774698126032036269944434771769636055069447893245931158562658253563555627320727602145010851052122113341383326477224584213386014687004171307368871773417475099345981393856689948533157059766421496287729452137182863587846604246799422029614003676575596751206337320775788007818962405622204448759432237403888696909345545124295956709332894982558139767639092883587910812521936997360480840556972418683110742713154746431949439902029644403339359746416278216136279488517447285974262544977638696235209803982108656184839871564115572409569201920293308678060917032281807113817602784338117482457851109291938382249020461117081009550528387304471157445096649095289795066105240363273049243883493772634763249832278349973551577193135295579409484592945079188629333316398528994780709016870259327918198622315396332187371697366254212276061113493729455237085220697082230662419987374138814035958826143780618666288726524951393717447259526045121818764869726412053573696021243987845124666338796202728845262170309338907678665720002818901896881456483306574048432256228352983323241719846559245086852007264540539745748623131408246873533534765213289173932095730344220339865764263515306108938418202754437708440292827771278297886233367672511384636242703917679631075558725561736745892835892876808057512334093343823241233495293561244559458888075537016217669265691478581086498782991504041338468305875943716287524180711597868049235880333482166508440121184063170180409442794025597980208686942339423196338853567523926259164702113465506178565303479634281222887866703567624233783199571166291706243516720564752134880650800640361486534165660271370036083520735944468485676979395026180933617483283824013867390811308610903712929816338112745944703003306681713573574857272334664763432106465899882912888673871553347997676394006697110293491214723744771328105443315879044168585515315724297174394386200636220554740092434554121434093959289301523310979992902111717735318958820329095781442136065710953357553428065844176402062895315081577282339429248552669638721791751802026145043917308306864697210002887421621882801835254312432212076757318124522454160309003830079487775712472183544296632396078726685695704596564883706552163727416755897684910513714807472526857779472004432956461443253618878299344113399200848622273351164495338408021984673985520595455236850130573063361750024877596569191994293411936343226889378248291789071316093834663498754468214523285290288940708787716111266581886734842947638706752874426023529162258101967603142016287208384484606008692363915670479538074858925790714945101122149161482674734272489510537754030799783350908901965027176180530584326544372232750834544767506582232431709312107021719412682130642661035651097471053685200854232459901216311710238091667395957446094895608289777700012514797759415873467422187018992309849778525840867646913846207905746005143234443565321503767403524443943898457974111550865827228737132667112101342015651024354793301006634095552556785926236496308839326092888052496621871217771599945205542991388828302315089032110180693322227349897424306264685544620373816741367844224920850799167600948667891409221921788544251125215577457306902108769999081046577220901600202441382749959396039773529215676748831436910609965747117951290297208553295135566814087409746558623537536412628687676472010622712619188900445134794710907144356016091705728943536323773324431657984529686386566184542577952588074015822720432050459471249638590008212973649997537863453714722672890395075953866309996444620291437016978481629861071120494448749485758068953665465777074178733050235165688919796283017819939933751382248628895322439032315943798592542980940355375687669079164333238014848964280167765600825677616173509091221325873131806251459954329115423069525513980054590707543353963333204767623959105174965597140916450365338938734867542094111364311335411419725915847587923991578374805309222545858240592729345567158296848768514423238074551445683786493944587921962066494950741977872974046073796665609581526193658591042060000226696276909062702606727206685241376979789055652314614611930983125070075005803718450662213649082765099359377522324097062179312091383412336504132752632345177121831549708875093043341280742132765096607171488001235436488443169325812932324494638370335566636471521297890623653501265137407306513664224822368177115389502085542150426470596060878581784112179839702395030685237894831107668123667447450312960110865875274720663926749184129242805653647992155675680358739257127606643036015953101908074849621433129726771564043544627947194099209722025784411285123289916218570157434704914916485428020209344783198165118199604039323780351291619214439444196743282838276854075478672497161738133812089943479534042204227151623806025859655185527486791404541816919335339641683807795491757957673219706249315968615396260017050352007965534542898828478534331081959670366403545391157435911602750922609870376441875847124864808111535364247885992099511224026467071866493386049366857892546421642068873298004581645643490334877420238401486710267614301723388507555694952992831001632245326518449901289270139451949939895558456161728538522901441456573204780057250415616132704900576529565472938354305753415865922801957357544011570221943249257053224528855858487223521979690010192781345962048150249379863807459640005430507182184666813182299570336394344483237861577539387719088179987118799171522942631861903756470972905523038074354817467341909603508291541259510503296728446671910238625024089495887990731231981857636908489114123769432367221796645367775879434212050292823583401533786341139518293982596862491920457811719972798760396826486517925962405875748238732948958782888047156965177875796660664770488112399217785595428635074341354938623345959977243609676174049150258503535241099260810820958150705675347135080213499472047650386447176579356243919591846432635543551348577995277374671669227304388666480501929588163681111968059489689258614748381471097477659583734461260357682414487407737826207742214924131120055234789110069528281973804209492163497576269625230362682055527423698334226224157181102070785295467361211705490638515808466463361457084301224606543370754310730533393273236330028558776164214627087083755054183686921272591873307112131027007607031880773368191760608642739510739097087647213988874521560408772460148276766954101677474284554233440007411833999013970751737829089872133227754150715521388744023298065048462213100558921906046361435228255723088993752843046939252153461441636794307181424078522061111276845350902811248204422731110146140805496618605061518638904050814040077891613737352088806054878098173251061646294227463535707872300630439643828371879277756242904495603055479236485733556301244444201995950036839008425503590959678372848425109463151642650165243786442903472213769583911511404930536787596598463549330815573348554171616015923901706955378082174628877933363973396417322860892481847957689828418908603921334736181892495538037633382710098281574401625750481718782410919587237499326738087282515956556868201623634760561799641540943250727389328529031475328226925437942365050346589994757928018949580493140063625788331656345886059921816164971092052547263066111868180903754044316782977649389066601690527249287824395005589921101998631376479575558140339951403463855987699795263536173212911198322174317645805648503438304470518681095774625411054775829952742801660978064845977812256898676726062190329362342396892068426864349959758937217281613341118199892628611482665859374441255750258033963592150890754429939530653422466616255922225907155172612687807574796306153201303536970572570592757035580478874391234767560014033098495852139206463203205950810700992086317742247294192054125677095848138725482905208826898054405927425239645733167872984192207314078791855334178704677270073792804815471473026120497131549652867226643711670967739251612349155844341177696256414635913640666955335611474751027187347492582499826347135816995060690448313090590946767333058377196725423935796240848551229394234643276605519635358958565817725757250602983727420477668442023752787572671442122086053802981885796111796839546795791564287445048023054444863937579736172531592187354886328481974117079747901977532332264474194508265827368037784393140893707063113511501628892130018847950947556862793816984188710652851640044146326176366576394305503428455897677092751733456109371794296691328978356067433697086301272090139250397381367684586859684718943930584607070260141378747305642935101858067506767067323448649169217986847326144293051989812210907528797102185116367649342119778048612492116237682879483260485421921689612445172713391140300237699774593700634286220654701219052127816395441581994750744967057369678016115587170350175422967496525262817474923486231725536124027103152878417683374578869560650479624312812471694665967025707379607000909860132835632449279495518564474526932587654061016620439019457964564350722108785701757864128475762186201486759014971440743546397286671822844489253906129164862071421478958717928038594180636078230461030927914786016823813271900359582490436451758223056701944795418434012675753096172435910364625122949843769761921174182893821676700801090825214812612944703011453289105065351022855338237652247432033653154022809340893973257383193075981928972157417656824541860378914287729187203642635508314010599101447760979356681329499120390299117176142311803013009142909779134814956608981031952352272479339738639757210417512090682219001262908210125077628814402149153581052500256711915141528455488336967343232767353786677942110776642222991997247823688624731043536537960920022473651437258631659136045653713945301732640747624733898736091993244384252974369148970308395247462871230911678297290603573904617042197414832160861054213994212367944311368228350534626696948909704880087721853154760913035382534825866731482720496560822626414114694715706117283466747643598609669471279428859844442945250900524977853036889490792377321613598122704509439055685224828751277815920753572293738845704185414385945068483375282190596493335178659849509591183347897986272045028055913638458292061090430417582824218287457355625680231565059563004954793302650889313829303126220001909997244654935511091815309807470775638186778594486116832622970521843595466151246996989125690393457922490768232821697054185171994736350296798057847135611197114549015733068736696770901833649874187684527215204237081400492532648992300675188596966327960874564713750457522268030473713934477832476592655741446258871166191882828536922276703970786571980126990234380877503910242082809776453194070060411352829956838425651974750212546446018099744066393947896244770706202242425466891936634605863271380379910855413086638172067445129532105268192458848416252507883880902502896576515296211523981110100218310419406886675161497237376259846098736769458958999045325933775143528749604510713759460532534554027334159189194682010949683662308075329203520474478902080280495087063903961686529002856249893204151638938963504619592432210405951790773221321488899412875968056883892738637699016630325589256349779492981884825043586720313239232958862847098453782965685501627498836700102982784464616373130818144348979172427171604384915491348318933805455856533227105537234971916089285433871672408752855516272869937463408355582046387019954482000765043495409747251122813762598635265865211707920637436584019726293096136217200283620245634004197989349101755602622680080344451212756159137318627897437969737480870959093827556094194589394533537059662580144197706146929273908626359154408128172660877934343642902105872285468539477571813173503098980555477221536285659135223179174875061221618371616349840874164466342482054249631721569641828519173273808081595540878661499918357689996988100686016346612597795779177697884523601332668380060554719336179109700303407685373232491204167312075272111734693069072144263322817511110174427317394055611401431630310287571809308304278458988868065756267688326589454696133492678242669774094980106794946489613335196118157482626961026871016941144558159853363236465582316488677317463306537920535534893272287397863879562066954846630151810584613618265394622911613580581007816975836393762707539111830036592787194584836952752935086002393646163168865358635458644283072636262196756015861991638960370689607627621895724751738219277772939767465292977644798418696644007341929151168005346762213263507047609124934932107625757474226282054656466025842092045064211695711616968845588294659406180156184631217893733099872834225549849803096253473825342242919927342500102641267751228081148241567240312453978118471913631740149759417079366788484983611041144772849969567816557957134361887237136272104509590793055900646883207901444814351911274193627934931690860517758235369270379731775296992949341420150486840066494403029287732138589721649560423006030899036461621937740074943517174910389824296581005059431535929791397755210804495151900187417519761327218236992419960368671399969641644928324780855579301709780810792649232109350948471318975164987883502116971016947071606039902757829581596327850303693061550069005768907375338527329844095246082407809601729353788081515901168220435705850201223245869305478588212975554111026656047646210498894390969735716571614555961272052042538569378250824546877068886181732944499253946929293875738750104156442040469350288795898066321706013077633080296856439995551873648372755751872259417772845556811961532958034038666750961433790862756445382749854721384808264596725224206503114855843989286331861944230694494203063812779433266657957322225112834498514091716304318874334269818792197027428424623213760477775739727975701283041603166048031354243104733204534960772090044717701240125145035289222969218812087439534510661626538858234201291995625613950521912560789557667878054432249871156729944664609999155933512612290379169742501860679622822612967708943603585456820987771250224312006692813928659460438337876138263440163786765958535880895037930211128187676444581554633815320738636211949635690911557807947936294943984517267660381005107561393525975008409331321718932169086841973692340797921447643212523396300266994515769301910065071497650564174744366275744572335734182026928694555074358856452464165433873731509401635628635693626552600715254791967513531644542934189817419259678662822545813695055725566397541979622650947058907319909155528436518013614644440144282270821239203258423988398571100059103454140291054677899278346537750674481880966319852013095377455120391130379337801230309407010127610314260652105129231649371787967969558742805979006377803138865582934980292536827727206760547768805732670415544440716056826840858129329763788136795303622452195465021549639440297113941925936811775606034761451616682761149443333075046014753241768405792919387061211178032844318609218976039652317005974102595848894844527110957164700462604468510087980152882114970687781367492251917755450375193982135062424350839228298341625347304718763572283462675453996846787339616395199520454390451938102611363992446989545276697614285422209571856588299435883458956006257614200949347171365309052655928552990357464064416029919404787286307951833675868479712396673864121976339907822323818449612101988291995153169948909567349769442081896419651237497105379972256479846702569531673288758645465294096253589689168714462239655311585781642273273359513469868225672513239984009245519214192422157502359027221456227647958440694614418606013073209327390131542201120481763601259314154037204715983435510941719937770447443090396594110075873146765817755061028851750646386773135292516305128029802507862901764348509889532417331751222252019547103238647830940073187216707195829464153868604329687639664278039160556057091550041097133992486544706206541444230305705384250608148594288088814813881332267209468236027633917530746299943650126179759054424589461894038216810396335824143531447839169313821099620796970119194108694856315663599642791467463798609554290964885182498484071113821494861351067953493163005857834510672734733066132983401904440126111700522463740339149212641211205410057631037952523549048365671869565249278109767164734347670385407493314652118740922602156972031643271872233471694344751362092820864227519658683169244711381042861043283709167398261658550049748890616442491042368348052159279376916498289825064695351624742807242707791803427257183571936524836314792640086507011272160088480174418433455644452569551153616365442672417580269681545249812654003431151983157706096553310200075923065729197575724787992292424560605202520770725456769871360053938236118813378601332067095451578123272337499476691340764951961847049940278197129706481202917205165204528875785492468944623624654381270840834279342921776127390177088259550762085484472038281969519267558029572680834117776046549199116369798025653092124996289505264973702054670478314902935579528295927602032860838359277895841373068603173176386199893112328597546178341564623864521717558682295078534982504467013890375785371308693487293296902342825625071469300862614517925462453105115183487282843820097934417842712549546630637299591497746351705136990822055772999644553084543701480929443120469236778192194619976485880574648102274450952054757953193345577591562617860452107037792853461361838689194729118399927932212474720199878656526176009101578647164268981605497167187763445187808487880335360308430860966616204891639587966561662883981127736206587117099063682077286940715042624970033711340315255812809478853209398373433330969877225018615333306052139338736708373160986636318181771006092848084809952405008336260511475322318032023242469483892681039029889885551736243998795393824734324701643893164894674948074293739312038440043941739485776914618781428606714972249823143268924689768171905223799124228760451816098439083845476049630655418098219951234673396158499767536846606166838210841781607698355509515094690400453468349209353563198028258195276443751444468530606852051009833997583858714203355350033157096562571119944649880893233542957409425960728054280743943866839069936124265258029334385344937419405325654168978632165589570046194807713633795468891278054590233615401473901174711283830553923602864125032724542341636306643563906214694386868401972375541385038009652833871000738063145805073346240106204203626075889556545852706073086756271373152598061222702948124869826185704176375697032594988440580547249935526452294129323266189093013201428848776957438801208610535284912247477403816420155342207837525349372112138456039218319065164590213279800683931539078700230382075151324486327079945792850700293296015803936853299015898226058942781249343716098726285797604138499679789640906841851445264827433330886445332351151974143540451051774242727030107034113310578556096693190221258563212386273479856155298430522187320995645244149006745864028442793763548434609755405853643359631603844416736867881123724882998313800450416850450165976999838916154244340930272997100602738660771641571195349100341783290587581065375189536034765849021198620024226887501846991633930623878801990006565404574477610924620662489383494563489767617467491510477990292766213264358133625210085880236225082809025861781735354917719188284617853385198065880504803778527341199288707908039266982718599948612366874709874561748009351023562474081390547709676223602415698916007347358497667615057067461569445171313464918799038315460882900321982926871228870703575170554007110228176380628924734090277157885687041550183404527071205300763567477141973652042147974128514865642874111078484233486840075050379151334340380835103667868714633231465158115513145758204579741991878187457231595264789589326666637307100248399466553875022085278365407328963782335095258224915526142345539751343675824984656543018512065005903480839249735865897764512983274862452435447919849383103303345368382917864543028487413208837200080270802491132861856166242733272724162831293912303363573751500144065880650937366715714073908821656837700102999739115807267493700237669489719373497027955542628357238696833794376091861364841251161005230837438982539654568490016879355916556449355526438163964582735179546890292237445803914630986183655264161227713526325457513872819064251270324477310187070291472758173494602590227196654641295114904574600624832350952150255874346434901611248639975748882899852078958029975490975985141849559817779512946284770452826278310287978226964687376754642991364760436331819825818423375878953979255218813933965869700745816043108817766803288456622032583543487210513823916202913867314404880915602041618835042417664844826410078074513497202327933204791381923746338725034374669480556766421435967988363726614452006612717108965044767059936280901580038805035967329671560844603012604225612830317355726848620566011005969519332950994059477405884637649474596053695063564098486923581157753861069126005603655053648573030369656299850122217119293261711556867078347858397677626063310248772284233505565331353506986569041802487612041310821089725646964263353097422408587338050395583900552581570781626776918208492503171765686785657897046489357018320830199715176322683696841289947735045644172007443221748307263841462330702912401339092706259897707365269615294185544909971673491735656663583435832630151020767231233637219639612242622341092415173518477998697012791982369955207480116430335560551175771238901456194092138110638117252068952072962266235554195805457659979040796457661491532654163084967921620411584449186806294990099799048294400902784154174818820260500130997765760718274692996817402899803646425165177288090913517355079156521885512773566076675115542039900696784922166817719896348078196167891994170391342106637030076403738854126226754349998417096194178389503382889402570024179205169206128180654177628991089782812751877181331902810739228306709893781379299116656374983845967239364501909453460638161792110757856086580045428688010409902812129676325267605750261497317559582104028769458515843861314472026523164409770089051857571540847942036564452170822867936634983968283421050099220493809986931864359052927183866549921713225272516751408109024018755774517845743904048628004266580419484482935039204392076811155535471537723196137890420626151076180662107807346363987681968217389840043078801872117011526204671364764885891151596655520788317458716394134061249090690164150181660713144906517554529353493355259428082608919187947637935843510579604736157283174362005765703882999968501233465651759059309561804100672609982362415629908782090610631545013763142448664519038286480849941371867207798015142065840865457021519085475137705611712915085645227500814241876852589087896801121870959051706204111330114587421249118438677641385421864731781071641290528285640087248132562117964517544936680100118202023579284180021328929913599999809528697642955763455957382454433288889124603254992109750162495366882835448740018704750881413981154459830545122974985156462763345255223536071767509901704369475028427771343315684585236025839513417685136667090027889243192421213442053885638644731982811963574498094236501828868406946271976589576920437948966131695588774910737960370414331801740027252972570522736862784705212298644130962937154506726429088343671317013660897305266313924771672499959075283866554972508807812040367039333256261265688529496762032571376400434824027080870636383338488663584596750913301410526723090980573149505262350703388769583933184868992185318945992498365709938576513268241517683086806842514244879400334318730584145907607183281951791318400321225605193037145275215115299582319626738010824379343464400802250703187728100367921493127723719048204810646232278914625567718397207732342250030791070809135335058493815985990379157440409589396529601357941285617171095460449074140154486014430661171061218121156820725203911322532471267480877103804674028210954010535215840973937962659585331405370724397809468517544287522407160874140661500499760994022553296782113691689472988535635047686700227076921806295792626495087120444008590006429798518034910890708603529023881403800942924517473761205715000076269422278703994935907717272421653158553187767943739233761970461986307811434217672696618591604071934404266820435182346553496333200595115731122439887885583750507023824167149125775811524908639054563930194836697430506122148691347364194586824726920807484425714901508712020897089838404304963911419188275182970268170230238130991750258458972322991263924694816603084748994127307914447215133870138887147912774642229247793622449026652655899218877079087174289348327941185503969154008891128805720891926855427976179180970714578464073688041616992359754438734610242087318158196796213907449814768125298992800128356508124356469640841448284757196112135537278860344346304174148893929362167681771573898105472614316465711997362019769969420451237334518646534156604812538432083410925109156758307515605033026239075915995822988647504945147454568833166958155951268776225890717428698938612716911051000760515922367528397439174038955650049004566773118199053209673579111070969215650979489573301583936759276234084329301340191784227384286568028842506699699393808071708703659481558111475151260349206384664269485997584715413736608058242800262824006833400006030560256286074898106151784142561933052613379612925984668171723869295577231651268901701487680314090267551127816593857438672670947907820733418630836845167296206925423019185526108451270359324140934505435433877435663117046906341821742205281109346598861068997648424093205561388718923068955899354445831841822946825739300412365452802034892450293439575249237733643969539527246570857081545050566934126336904919359133699054396298516284438255907961176062473412651388709180635685510471501438499954682425408414143312178691283561512784662795227849707006372623535749424562313673424002101392607773023269532556239251268664812119254145592077349636156206014755062806973599655743845376682302709992852428701059336257294125461283822770070675827094282342807171233877332146299694177460519347951493355421175338833175123422971545767756902050463794725413489492390188096276644723294740794968032743643343266863837582679389946901900360040459237233829516777844224665919293416904154959450782852285956429859006818570738221135202975863075734170031177037003977095261259956012178638869145473173586147146431072461294309673879264737456916470343249595756059791052045009236953294012091146967861721974267999684650790225715781436119526554674759875133570861365132579611920074810926522540545863422602457245009146456084756891291050082321409763022089086404699256286949206034448552046222179996196477643602434629785161578601347639138799978712187804031111744686939287385836579532013770901816659541699889208408704360550980410096028456857389070991227859127982408744116027793826354653497684454820131961331645957119683845605922527714061439613299352868622449319708923549550960454721884193111132390319792553904034824706785741184382067684711374610818136702657119487425050238563177172699048754239673691980582626583083280126931138767094379374168966175037037720331710857741859600536041612307154525623676242344510200160548266031266257973745322352165096953442094143688796418520416585974797486563587649456952423089223200611589684396169192798047194119646018642671537813556767404265991187980574480772843859062945115054476492739213869204659366260508128951488572838955730348465441972950595898449772752417117782282074891731678465548138880034215157692007231369212007323905174082605102005021265453771873217624813592953530079304852540664172142543293734359586174092514585580121640432569383965005495222981352594879417105198644977671863240975625473469585534742233391702032083871112880901460980397516826287252038663182259187121933712735535545866083188297000525490272779164045052456001575733872515095837112604001763574040977924988738013118581610932858817888713092388279218195251192566488841729524889845836185317317882825274634888167996218920356357230217518062815690630328088923266250439229406128773655758493086126230743498252760254023986327367239301665842332800384119245396381675349866240368536127096064978472107076252257302169353735550142239543897583770055591976523230344539467581797293169337911903923546251901825685206191935571299438343592333999841280628141345129211673982717453772222859704768950657072693760430221573133152705658036481400792582253136725022701070014758741964578281816420144948929225271611859267437420186054797597530170184056712918379164367690143846629152158645776524968152090285019875419229431339368948311033372388220252759902462551936523310455348148407647794074996623676572487453767082502680121702770068920295921606598563620529635360268634427637139079234909934170951795427575625700959647782732543802884084314107075932102944255017064338203314250314162421342034532127361057322718435972124848088483301092624850726324625356638687734222016923578637474293217981698026385768559067461396862550686354161778378936810925267360352994913714225173134100278046279533145376776291498272011499195022063846476857187080728754754654158434629137714864722153980690919528268164368169186726674238648853890946148761764516384669825798780806301763033710540011303471216579484815715113952736191392321007938575660445206550608935600888457911804319539955169978971028608305395817687195181418681106467632439324867834919816745319610963501660171808221298287446692825001207582550917714487368937722274908318794781689720084034787966987932364541038615937172169451342928471545993134482397955088893280170480311830526418824354419393707726353053804615824525992668888573333590233237079465193984002347948640607606689714491645511654469689339281541930193712261723011854791160383503359029551118998841352222342508203974630310572290895249346194937990896946896083541198768927441711423180489131108540240655796617438387371225081353587969449295456585782940909958786753240454061871791921303727812685011210707758246074434441349301747680996199124401235432457722886103797064864855283469564835305642096660412560494229365173745872065476118046720373213539039853826104718547430427570607724251566429304836753985898599809564479879099272413498289331401805456218046100426979148745729239240354149406608106977799536988974367030775241259818656824034974895935279659805787917350077570514174501300050278006320331790044643085194216402840419741319598982025820040280434053576256260074217070206224796609183007354277166450111863652095506809519980596225026987615703155382195750265933427273276148440060915334539901068274450406628309255823896031804660237494401573325085194565193144479123394256250523199150797630450067811183330419795070607536209587466572049089770366046837732483514705961208460998933052059463436126040011411446640765890867150018716417172992516751946231504488097062243043889682464629590076958798458299752178962607339569809292406605656026733817552044464092479828023819333720262874517455514942748928855249347836056175291755626273992803431606951623080911282414054245130021858627322198568489871474324156215289418786581799654679304647639607590853578495611687879079084926884295355211271325790994636728830325101268893598942029856710760040849322943241226802160658698227702810044623648220804783664938719316733966298245757558868211648162583371071049328087255377262943448947737780965708765805194117960296484066446154196525345693904890489610447249873867081424983583501573469556255877906065636429196248011094128798888861800130933355726195041894435843195572798643631834479881352872938898946173477250035903308649566438180573738774688104533108483606504284740180081479021752682231731391492216833771755773088894511847711826284934502934894378006141624395874705918806334260033906296087680198042591439843490175958814483104496342856277035059138394876488073456600658132399777924540814593757019598661235868137688156191666131265121636160967272803749459016967182752489806486739885546288468839259020597025251149422469137898517867760815239436939528798512636012018581698914890571101585442453903481035254002976465062385409714047772865475368506705332953368629312227257068805530486912394593375167395111337415436629316838266368160948624021710438881274656683764498796472939843427564944419092099837992505321760390073084124268050654302847810144693258780328790299154669220811493832054128059316460451993529039787128008548396530265304632337955279682401486954447167439018995191333814636933591948169921468271669716406165812824004155917246772839129012413493717155746325404758844526645197410459041466598892308797766977976590960725825657283618106858757104876868660133382356673671440665665749494042591326661478864222074969714786426323955011141848125534279833880231013773473857428094019184179132662140875206610942270326575895794937655555636817569513577046846532533118219187153377833342595978349352873731334999313350248357658875465150069043159067844187931239438773762563392999450613140399071047462755213206694063497562948903484100691215365084317979447354618794400243835492395599688151569790625503621907408141617295378653657336258536662977198660084882656430200191839465965959666320260136608426821988213017484524131355180733161730679960807376981096413090841583540027799396756200776773388448110920891184117244688586053025121956649722472714943405566001736696660811207213353142664548797368621567122993118921312952322959412811804861455543116810560307882805192216876848357922740784174810426942714846539924862805423841458399112834157639800669932161533206822071696917246935578316876021422199648463366488615734032035331203460155478301882211037954419070779861348945117143587267321366247041666586554038594966563584871371766259627424128780956738880888110204825857097194365645242497571220720040036952110257960935739468562535007725286176102265433846011323629158402704523611266911937364292994775063957091016725889404664722540752919286762337146318273163526419580091255482891962221708814571571366510529800614882967830610834294271718906566315244977099814605231447053613599497445014619066657217744566139930672087289714165421141033408502637894798903527157923443956501789122233945407957374927148230215921308227221364031982345404462221056464129187613263911689066500817951966777173786298629775738403593179889186245664979296328700871199838840862539516887618079945407606557772911372557616678049607374347139268779376693266723621047964603857146954448871958147636480339105562128653137764610449543642711256162422422839965777349209514582307099390629666040747378774310450263688678994705753431760781911866112364626158663902585981905026452440170580895060050952439164694979640202237856185206507432462260805808261733772678815894818014917621278181637102706680583729374201476231738416702401371735176929588991476342351874310250069310737103146736509180949172457306680680522429908818343593253970016589432145931894988059348036107894419062442556465360852297145885739821105067182818981605926217655252163709847694849800270075356750949561072612388589301875827100809758370176145674401675951054969073270553041941152985766240420691934897981931304732859525517214532288066779496400409472346510693658434364576377638440319223225200863616748774061517701466100119256227586240334815341185075923090818743630178761015203311801337554445365810633429910120509363193526095327683607651157893547803411899414651398638984686486132314298305682773209602877387113289500468902711879754243432152884792209783781613118419238922590931988815102456243190612959329812509584769866004920438970163257054083685810497360604353082826948645600523776504715817282021388800986472651816419528393179536399858504339285282001148043178637384429611380902333937815999177532079791815905061759091599185302207453137729702333311112923655409976541006277605346588592565364818246348238626209320945631314001338008470799751595484322612994321436704527454811359448174793283217967983244910302153801367858491733600950001906057377698005277902070576293673196742775697132276838567886861723481037010753808165102969052774358121023927443041021489622541269867937903172820785852697789217019134018124604885515009170449822616413949969124534642265831149930300419419844435202595777087471671111223070279434281125649496762686616761614699015347882070100181229699351582757220160537058500456080159801890307762083119239241286477988192906310146201029057590678343409359832721095760628027743283179137743639012304818394356207946457645193657018797202607389405577216396644250631286832327916399686953126784983963166923318854355487263004704041292784117406465450313605096764767370120046753979414623954763786547332668646412003165128450085816378902705304442670542623184783046781307626761727251953773213934253918518288684492881764238462839354452955503220526112192923046447651691335440386029107593415737272702290772725699075641337482229624830943524488425394464042562412566946804897465118324376258390788440642382515557439735597046113146515623861715724262703954912270850099606682745471086795246505572099407187837235117859116335731932964344020683121221516156583835898360142828339041795425036107216240239076670668043959444245768389947868442237111735048285655108468273017655789882996227299522009843356953391908478069302607917711779998901391367244111336148409518731228005577558460134482017686422384376168868193430132489062300540598861804421404094164369968191702752086539693869737599777827252446464428582256262061648116317244103672087948024796727470727400321046955672630797953180918252018023258340743752611672933852605270125266516460976888512893287456716562675560707801377065008976447715866373776751109005868554361607144764359871458408597294796395033120098603032003195727159652988955520117718991282494231737556101400122660039807579868472806520830835231289617886080647238548303292358090895152042031371108747802613104510673199475050857619300256566790708892292432681083434664600293577136011098162475262605749126946672521076994320360304223016101090018054973496577983607174829329998116352732171353895042293696643966358747049387038513561867321140605051951074123819914336252644232667003663932855196969601735187988751195044727039628029066713092481990008632203122386645973104351314777927112278521173503682992819088737513032391577916690848584375047441294783246662106368221543332645671920709428469365519537928570531675723457534095318813433734274137927691379582876276015594066322938203672607198901605793947925098944580146999887849355508126005094296769490240561793517235429872139684363815843116800509674407688742129749776742282957226790644652281081261184891081200367167483258097624751578508182537973162817524847165892349295203053985827896047667695452705915444282468524654970807829663582289805128041182440179080031083261722504391420067927260502332727788357051892639254675964305402130383692618045754227093652979666639486843214750414381925756430810395324583285502927115274207854869831819103103564953219918624918268955577815228514714644913263534916660129114270221238227601374113302457515087328776415124692202456536841157414844936195615038411598701781068245956435967415532998413895044916349387431593521516748186283300069012285985683781045150549811556763453825423478424040014867187796667641182648177660697332401609570049146344318878763417776317451329769124098117485773232001986116621168548755603172790716678582850488536014413240890030774134401760871392626859287366189777764274453027678919594777389033679668278661178367965367042799373776854458266582021162629981294583547568061198167103162900247356638175587775474256576003040187128445865676554625852532707879462084728415868906381250071111789297154273654634638198952730354732517029201023264468671227167791178558739191845966109199412283845650717697467311025608032762561353134824427514406608435253439206876647630308202338000753547628663767989424397472863459212118947463919828143022053942692425004635505465783877014681910632400525460750742288395801439571218317970641826917174264143395362515286053853223913440260960416294663778297974271471273268916995321607423796118093303941921239746120084231916386147237850317217154470172508216723201655951649486576218377396243448638778306673685592764606620491964292647113471813197814154984662931206623677986892211066048368099627508930548335692923338998990644948338536681798197513762164654275528668072791993606332523325233110501320760996343959477073317655708987758416573070233180276080251227394972092362515103192020991588240779394078370964700148104632055497245374152130128653013420038149895441175762810399881329232819235241124349737944641613364302808383311800159998366314809111323758608723691911762036562583830176318263840443768832774991453845015536681109834466468164605835018747726958965613489376741860567170788019445621604475530965365425629226411613570852460738639382626433694391260191808977193768632421846479622903351654312418570636995400560204993551615090118347636189259864467248469292413207559908066977524486322060740433969618645660410851079531343767042297422382130838567764969858752648903823584555678401969982752891031755246041934047900844149875799215164348313545528349039411653177077320011013244020053106492077092811004038116905186505335010569822566503472417831695161397219292556287164076459607880728413906434371059926017317817542597895283898881038630912365480582505966317016193633640177684976602221867512193104480927226265926921043999989326606510201311430361439243796311774052168029882289399840531230676512302884436041243172212293034456627498000530891357677925926236847922475375459067725237049951588172388358675584011075486200596079723133808245639697307964929782995128806327056863671688191262170552566442227358178229812268586448093669162938268431806060576233534616669523149318140431691567779034186203280094037825719316450107792895191957501055133379839646500441429574386557182916135715964682326486938457393609804934628150236024456639253621889310599069978022401474985857427821393988551309491661108878606906852418248362976883214340904736049468589322216128539787956769208524747379051725138871069950072906559309484714073628029129847466684748137742438593771531626168198938158357707053398366395148283910375993195377104904763301755134735108217024892261017080734086412674803328156337417553427730233014962144111076288017103974708622660847907113057147614191017013913964314950309029141188437148124105095316745837695358075809030498670382745180195747542799084681253996433563526963814902913370371924685772803829772093780321466254762787835633133395164459220188252015362532492043049372336064215090250205251935340542681845437162362630224246950857475606572755070250784315690479328938638960434494900853386211541738710436830844713508933474797013047325890438565160425601322249753316213162318380939193302612017112199969820105140506755983033848791392028422834681925266004772485879551461936656314676349305644157221575214024444749674234063472472480886405613143124891390108667116097647494407282091910253051525004702962942630951961256864353834329591840610581191924001855019632461981987794427772134528285212412944862920959697572276054169564954493790000788213354598426916092150017766056750510654018444156032833326424119638584776353441576868345283550421777513168177751012669561757211338346481503353566528196340685577533626554550227194349928472629068982048389704488910351139209175127859078577999601694953682987866269878014885248577208752439486197783778383067200189446286657230335590049539991540855471680328561595806006798189735056035677924800769287478726344946866886225743913088799572482296374579674678921240191603613804362806474748545241240488180963504393113450700860586416230260434048129042885356635716662072851678522109927856045002946107792786496373431654231359616142303283162053173320596633533450845092967435745671077343263773802608001172713451642041317601638492951915745576341914980246885146704360963287241952338631850487178631578025881130464972944010150923721156195462916210110930312557554232466489245661643808966170157298938871146871394007128641295448046242870800641659318285588410126838683732553422836643062002073122289697465464333270985174577919505083283615454224701236956349182022200091226767450448846601918234275320348614014895763784134050160018286101800509356358398556193408027571857465008859676423300614307876725369085722794242956467055554733237373018417320085181644641978407144007618399055431302947825511777037746197260036921189967614754198640804084496942971410282745603932547306895471293271678459104158082455224421510404758091248822986480534152670038633861373013821633865130716689427428392250419645746949536265802487866208974447449983266175123565643291567697707529702239006311804005510569743245918419584076892457098788553958590942512493513636490330339943034478825387137311121379550921780200997755045348389935969529063105144695978619400684596850751833077441457276396938076521387624711972431052128556423809839857730578032518948334280526192972538620050552751312213842924928442327589127965750354402580639302781613785047432182071400411550596487912517125277346875697769724832493563721528445465419663767674976103264526403751821933897908403133860720394457734976683772142535624049978550922006713367678308487860022874104932855768307338153898987482094080215134413983724981422713134584714124705249869489471644877076079021672678704368360858505168213036847106690132438331194946112756712682519281878533064813229495485836620680208953610242559994781622655519916908186668927462427107431918327931784286385905241348421432652122631030476577210405860511336234035494090590947495710916249508272682849897436021366047490546960115090759375158351410329296301252370484440373819882300025430044485749746647134954442595244004169602813976594652183373346593535461944307375141140765611626926082609957148438129834386513632225027859366273392779230230439360920930696281227640832713862270957627982529160880794343961533868509297442825111897259020830927227584683367042053863615960716994194743242064119435804012811446519936074869869256121424134132935848562369364608437081631374123977243562806359348830714504198730932076483520282801434938339246071568096472810706029130997353143240766772048668435158365817398940478824820590794565702905220089419201824740484607710930290864825672765081947464070598542398605873796202662240469798181579679480143321492116956376794505390777320555161401679384504533547206969177941665552058348533450149114856108812056193260871801872266869643043423741473828183015246138749116864135442294381276384821102143309238989204115374694055754678998387988863269621345443212819630371204566150335343626639882605172028188173823946625018930971201873113017111367682883335107145171127821390922051531359448765721023513690386922386635672724038431677014894946688087968077878725965712011231195753148147555361622260312671191424189985924131541006267010138516942831228009010120408741396640109662812313531641039523777147315094892918094480467936763213748683363632128055254980355658961916649361265983388609451068406879441056208187154402953976828183418639707195006600792163778848583292121201820955220229511106184860749503100200093508079012606050010437897601001916540397069003156252494666599300746448502290299332709627954538298162353612198487705422593657530008865841555006045773551577112269454418557833603345064540270263305049180413399414377918223368188636440162594704573983684556409238229459067382710367371029272317048918592155318460703879915776441490977811500998255849826316129783235323952035955034551670590382478114648857209952087491631985263444091781165393200537197161427632968224709946695904518801750473167964646723719671733816391118774835658341288139378662987238762745445177640088847165517635135484525886089105021330862597515692480866245945504086652410487043541443873648965181280905353153178698045194696984218685765939205691599797384687173205174528082432236027063428508605394006361648246805101442334607661787775108533854254671021408511306804893407489089833151511262488162863596422084140471544733955606222511647234922814009855363263104525235131476164918232401471328429741187640973127459876406175602664576388901576309731514574332396428711675351650976514572491132021719660845580559491831693285665666401898709755225001548084999974720680296681731695200870173054827912325400030273491960878618730562755582990625975357953269040379623453423793724573805251030768376528285353187883852388063479202612445370234996428688416960049094751297711063493837837984354175704330948803663207521972951680234843992164650002799851560994448141789535309637679430120937889243695380140280977386008947025871330436261199190230332239895878067198343495573108088882226151464132486737545068837041662778082609229691624852921041387649691193300006687244510516899718471099734894127796512990182585535858300883448176375313264158908240347713183104340066177902495479488602603617250401156911617603324435306631653522847874728717447872386802060867313168789653494705022612060641579566968867910125145676953920321083990819769121249956677182944587736354786631913557576887181241611761312375049386812447747875350203007807654122134402037949556897498982017747530372075497219598830321070841883926258764563349180369258677212180619223472323664801335862056903970840408737518584883662453512734902534533582885464521081864190074077635984644409941958761447197107648503671108162460521397869505779306546208646645188952218670246631377597713835458665311793146199820805832900913572766371183755800535024463098825245516507126881023446538551224219541505667613197290642919459562180245893690927156836621247028319196414632193468101622865611999695454509196904138837192555107110064479384936913562865240278602554944691272897806693730269183045858842319698370333380535833309267887311308772548188244601188695424296733714011685994875554178087029759893862817268926583718440739249153454805602404233107391987468303522023250034498517829016109729512172088277916854630523008032074410980434121350040873308613658455078792186014656607750277250055786127716337362109857517222820996057848925354502963405438035908966752403303988608963450844981691211307437787132756955323441722326739904079300595184844181373254305262673557341673874771616797327017544014249061549275185773163539924686803688288145911787197692672061288301808903609022678558764414626825619426462589632905458854026359673465442256692775255605300955116115608953920315075738125984635419581781532326735596423524174528520633325280377919772505406383370092492842025714988531094751731614240515823607643754200640997681011565113347613168617905634651984360321554650419208749233386226810143100730676598118404530977275495591608342305665990795827493581313489752198616777700829251951047116294283217832813493798197802029823720217533709016926572884482208268617310431177516093510168894805862075816931047866002632312600352186359609558441747192016294856215305119331246234665781951625316999309583469489258566954713721854238363521648711903120298262862661286402316568380552484166699600460891837513895665796390905500231593488633505486623438718886997712133846347017679841029354593490204668445789807985190341255361183745499112152526538390445161684340916995825572793783756846352021031363609484398772883779842127326229048599897463994868114505948165904155276055776152025694556062336031143521619745563588141480450281349082565939600005424587835004955306184934550233825932938970139253818518928205215349116325375188950760078677281301362626787042028192469175305323180636603583142371229504361964052744779336360478063211779220444289562981716577676128048719406016763340545266186675402606461372294187556489956881923966465499945529412811668368679352525711034759817238308607908474216914597313651834815097683436403226389206937020491793431652857332431668956165348488979024981267404952086782654249844488350453595508104783334279956835999041910489198224746414075866120965495712878618139537072906475036897477016525376151068890195197661727918165872669587341936702466763435859804231972774157556509866993129434307507784676044191734129201632245694587671617800987282055614154347886723776612996383398490676068794657405223696040161792685346868633576141342198211636778553741230116058084019882050741661633941498781978822534967212887685877449587858999293499678555240114642454369565483812758440852557829294255480843473907709229738836738936829057573184818109317776774405950181440537054984667943738713039540961503427518579817390458080990767392267742603394557135976825124040196629252666382218070567484367017855527494811846399752487730365332331014955178377155600073159386084279348794671077163702492598793881717025222882174216388468336379549963043422269973141541162226591822820884082100174235685418244351315150682242102245117864309151877561977203338111560108501396807461026021908649474477008394808402593583690496251351467083841197736941505738801160569025101103483874948583105628319046921385152230787840276128424121693522101218784650190793125069761008686799713240348044631959619000456998811641199284474199820664072529866340209707635553627263763203465306999169886161259495401073526225088007723689034892543741879889781483736199918027038690244301176196469658798041175671178953573114360396179685155505178611749889578351807121848915662114000033070789566248737307825590231581864134160930542386490374956063823923566777323144848161172224508928035468417995123381190508788220102425389892177050992074378336712131951299705835086249620061934289420108473203545409061704864507571063244632061259265582476349384135275520145320095657323885818457539555549164106641577317098143845556543033891248662023422094183643227184819420490707935005452724391194626899446568094435501405138245754608715425285996799342692441329571852108736806630764734935609463199561651646776726903592664212962854993372305442952537076817888996050432848894015778743072178942261880642775713393270777641389125613887391828552919340718381944158790270137322534894449816474938605290417998694811567607552317344469810681183435207950761447101627035000241883334642216790395821370836566657220947330960761596309414464663893269712588494285442553786120752306962376272563788962619229139117861301219168097916726423467176584289153521183270149386620649680279394098941584998800471022687894121806224549841024736802724513620495934112517072055027309012563129528487665172698787467036597278866059235109156113952225177567849310987017311429679848041146290634697105326783964715976405656565725285155094015242671161128647305552501836735279126841458083744552748097144608922159485712038129658404286319318919372459677944853621323520985713825494199753862618688797286779115430583976488177219518602970733370053579390417033044711069629825904128421281667702859021967654570429931359397224651274085833101852376935406919172294932720736014165815589393296659210439950046824212658824742034149954170454265573510640980700473917234324482525253863914698955904511159175364261154785035091562641620595528025801327008492065798033147054857617452587887096113689943934017442375228135892127858473329467267822378001261281139153457120108648795860887180061608559850270642507935565959597295898813782798515209088662940198575253143640220776287567259200858732886865802118520793396789207253744697135007029203965559437655499347989737846200007854342004631947150025955032118734717959853341610846801227540743750469910425102068785815193266337561434607589363197006832421692007446460085478220905801785978380326210898126570137375834264768489425635954839690129681685027782681905980227959115129006054069831060311130746850341006182273329241542745496320821758209751074202868453033037980878421323720628917862583769162907456039351853207776290484148166738546973818974095335677261327023414804862479184454528658710272728931756951728000618002141792706977187621512824253172601356096902620973226695618090530000593402192856662433354258512877184738888876242161507225811099554674738238386203074311123651236131102315717557355141898809648923743460285462337268898764061792011997608539457915324789896354967645011792979463771387552979521959878776902652827130320165968033819920393508258711924968896449284600277418881362383846622328122062957317057069345060850820065156805008687345318583021616029649166176683067412499420873333874941387181355251091500298530730913484949992019861657177182360623631532106345718083402594731994396998800769571713267369885744477533586693664961746181226145281292407415882709589581470162177702294243194094146178808403341840665396223845813747878696912549028741665982142499335076619314866377564022373126606812756713223953288789159385249273658641956740584233391131334422815189502002092298315634631427818667082007064213810594662568042632356388054704364214387912508742261301772004974621872072569903813504590626844387396884978757746774065726701460915925001245358801782818601283090419714664214594481122955588440298203059815694565278892788879552980483240863088735520949764333950700177285698890389243362146142970166521407902017700264118985934411663303082768235638257263863218001186360256162370064197849045165505491704631187949594397361621958216292024220776221437162061855112427108658750061449245125595755172269004070068571097661135514077568929918443492077354161008184613178692234141751139082614793813801113099118953913477070311680215080858869927610120568220611739318179955644953132476022546368421882523056666963151062309850455537331283447701585561195352375172808937685591012439587234307621073511005580042620394669529444122589828475806401721335642778353422580806025043368397963648141869156970975864404184209569743798733496255272250848872748567482277738471897355254414965701542329768220939641711251487177711039642423687124175436937035566183796332221445268033879225463368477846347459389451755956829716168103575490332889913232491472172899493723088648123941857024340880343635430628943675912390955880019840538696867401214919032280298512974315969323264612163531889134800739857023769693993740072471584823538810275778398407990992812179708808715138785067555613251742128526710309798404385691103533917214988517682860764049753832215007209222701766276335842748878739431581043094354082604295842606612024396485225310566727333548660008598913103651917738351033953935360406874714735132686009032171500449159863976954465909320554394499157290163549898141549272372999196942079902330539021930793232163110583222507235927869952675624899266596358300531930769577385463536034185240017812299740127191141094263644692105849818245416922538602652764439789344223451646253726474198264462116904380311117177812239613239443899715436303794496220349110474509711153142128267646061316351716594466260169756364114139037906338938409644036219797333273605119054957179790856583045628164728642576840504370337515808520852534118391081229156520586720462125291485729150847641299968609690670178465787234919810210569124514911280076269804393060957409015524731008441395218691637922613299509849934335882353510676043374678034751869266547288091142562141252680487488474294174665428992943399098269992807112151390045198395202758728365264608345141669914196215299378738039608454538982580552764708902433291685597354413633809270298375360844374004791000070893334690665158692655317838674693896112280782939645504206026624604181822180077544037124121295719007830544260452864575389918674821246243838066660847369584100678378305339198315817613228972762962662865381961102504457044929997553311878411817788540441720859370121676935082624757447520149255354598445634440216727789976506719253847562018423932052207332163079896216168435384828861787419531709573847601847470164685803561633416585248805996104308463382987141659079488822046550244527055558915276273877543871542658724459729054935493350619010053005967857734607621345127546119159645076269389256001004361772526882973334275992188654490255254467407710785164464941911160158169334139094198495140600034414677605794164398168534192359848141745941198439956272974040725736418255192848948272617755003640144778086947793294520515742425409096943004425984178646780484960221395645975528213665489625663438542186528017687666740952086366525762417802543702429348754036727551356436559978018694433982911726191321373986528017885880523406891324216938756656006783830638712189165447003874762983166534026950470726796947049970331766937570223170675348763509906443963083573430173932728508515272757447254946661247310411237057300430373572006318789118081389000062011315756730601717864219768722252125627068454495142248068299054899520067989570254284096395477531539329310150337161210184833396056350326615323307292694918306534532084756381715757113236493653099668180759596840150259875860874245545533082227493871069134099233331112174581838265067570003362789973918539733006110348176671191601798592415802959603988109524264834211850954756565083279499093605831100857374386950374617344803450170310871878145618293157071060264326000679450821720642424320364962917695625543026518608204722579886539847908129410604635520395523516942151549849006232997471051305584076982972447004487108367807199455938310565674297519653398234258320500787661526423427683473982041377691683265357335273789073924299741755735865433935640689437040174430538636000142239614020385160176795369534648301101677949098636824355394297219523901705983896437919592868133425972507719213111374402142591253891176945663702696607679408101378669806819739030869543595570240336803605601035215611231927808001255815611399185137974098430272987930907544391207897021965508743190875563643660436397664821605424782354603553842497127893549173155293418892071540985640038046122360663695688970122171327149786857496321501457656347732527334106526324779397313105648131302495118301648506769788097692468234836341517676564061266555453384983462236387887283819800227011342017537744167551749513411138719997619596397463691299671105651361834584133924488234687904867482171978633082005755890369278810134331229736077272845864275475074290858360320205367131385518710814384948856260203516047998722675409542615626022332956649695163378338356014502315683122051757042898165813878048149127358625344230453123231013107462971059183527017560397491656585125262183752660232238481822619335626390159671568975408792394848069334503992123522371715369965625529331796385966452003019085104758183970918013922525799796325493916547726414805338331381199467253508213965300315073537634359086851185798687058454167542041279279729913488570242762279738795588333433758840869782078690099988221246534990718263354783112040071058076924122445443772709935082370332426626577617204382229257231828808844691607321593490179836634478132450551450329386768649726222401650948766690058099431946695574384075545411381640740506978630001849997938923849711983013153760818430893984450924187613056303264566726129414788466944419765441915431669721448270827450554872367459381566250790371153199602699033343990435797795234271792721615739613709972066362674123950683004640950232732988830057073848814874425809253180882144289504311590329636455114220382294112465060392059547129229165287711562658739392682183411331224809659966148243236871169020859013523796190049570459406675965061216296820910974726224269325569141389364060104399330031377202466803031771113903092354036128952818243256284381281331955112541962963755378743724059818385561709197137788218969878482585281972978964264874204779321830845192673819303753168408035804642533613858477808962064407197690747117254973949682216658717593084720278597154040028379518562817158306980778312335025731601997497285581570842097873289624204563510967567219627099064974265372079982153976478982743022830762153487920320396257123003610169143720938268023990432231210235426338865971492798592415736288212851390257672991769971217647033499823159671344698504525618031537064153225669798302224635959091300497527106289280051326014164200835948953902154612195349519310199663455883358124191190625897097883504251797888307512630795889972489030031072029890280402782661205145546594191541707536997740168470984961218388594948315834261537359560600209420999500004407878361907503299650049982455683472528353521649199879497097138269721910946075913069583886272711341172418851486386303509074570882903168117751042105850290966658458398291940156374200230877372646040041696137445406255406356470415361244413140608013396029028593864594241085356215099315458617091327019810733171098317280470261387765575898553082180908729372958079187839468785190669037025747790733241805503377360608510359851048777685470070856318557566260767144779920377439445600704799999021185947326897473175020327771407384805508551966357888744080643898550327920316471095790436167666000717267228350395568515678552574098333153332451729279922129877152705383505085559636256629161558686153011603013478633785982807193803131184852795229313849267587648981533248361398288115161936135442312405582243931645475824786059012983814624303748242738760218737159571679100322359708066745558392396587164171304410806081434305505057500750578068911314189463816791299341381078419942020899509215499439810332289538101597384674068413069199541120229336270870827358353758335577387467569299581898180396973352331350891090349517499751052800159979318266304941094858361569644298459131147486549898098953357823174978093055589025920871568702292185051521777297953602378504339440077156555937452277331924296082127083659875195286978610929611719656963241500199441626087920499788634806966463941503281750106393494112055263310676185994858551463616099328523793960602168433414995285243996093980676990434322590087474180731781525102565731206534616187597824060905145052994702749048672895550439366637481258550081512512971068748494250729246121482886683010510024339376575010095194859108162656279408340454699206514349767310133988993605623529064804742991140630022910099303614342572975946981222388260872918451416555642511508238207628324459351735714592093336749491139103999653285465403287065730566119802545108747210213052575909653184107938306779638922254357952501072668561688235562560953720532475748816938466083196314051949185958590871412055008547670944169639733373944533145777752020835746529078626553460712388430730333854911997202054606002785608507228413255484370605736232317424776056072154576289161869969622487530816044968068237942002401247680955743112543510597920179194001614785625380372210157915576796926395814560948957987839946931047372038634142466995253812210107791935194151659607553828924480576038077183401257934644248188922743625094505887279058524210914635870702841654208868882663455721941613582144165719627190843963964130722721251554379758338539391004999074968614608561170700830629092539551798303265866415806373270731089321759240925603491699230282104440160246954413483493915277136722403382381328487302215450678821393330112838499850173908984749987176543764003016658404350828103676906365497033531017159016488140693550124894958812471639575610544162306846324535567860016306462744736038833988713786654187496243491286405503825898344576535286271692859042760271691752957511868600965691143302823421096970521399585130258531558614041650108743088287931568713460989194906851854457969062100337214759435873842666325344179667526407369538076795856924239448559765469121046300962463440686790012828993793462591117153349498453209791966666135283484691599615189353476356013065091580722744135940956015191390606172924377387891049021846070036091709397728786227581758230314405574755948564952153899926408324037004959825470825011644196712798262420916457339582902848534746332631522754591402347214824123502492030332569450798274486014833130016078408948117522750704476800600532351112239137399607069202626880950284258072120791211758102667329492059051361659287487969585958681040826334731805146056148497564805897623155907777995542616213633374749398220695532626691854490003390448217762117486075510677464454156686904256327111463261151597570593105679312268043826218198212492861468641574298322130322879923070421796263448142019821084389630998928767726598702073733319332271468671996394017302957794923048733196931026848099007564381024501398168339818361573910544427974007668236918594457562328305185742221569924528063779673827882719724761568973581217226605171330621182977578891481691877433348099422582393162951223313219307173071337517351042108638863347849703111087059916359920225130135611831427289275785066171966899993877337242741850518814932479947234977072619277690944496148263496811460739134345148810266632339138904132229982327781303711868317246712327474379352035471425637856328747438161766262668654526850512150160331855537001706232020041655650745885205355240029094370718712776949226261661046132187819276345040870389779088926152329296765661654468342035670911275923628764490942563572999603341747574453572605877444973649634078891255069310478009103743968333711841154534760472601702628044740089119331941494512103059324230710306125508677313197479273213024194683364501230554213421287277650109677644066130952031907013458244526853972136014980763145098533875620694010747045188937233830172338837977242685434657147887522158431247389576598664218771916575419432157304037436844383199111256604607478502154386745833363299963014409208823820573813557356615813138098528579873334583990068632456724643215936324464786832058888265067669663888452917454680818634245759108538556528159427239077037421993289625459742921002810671914923505315308184714395677236279085439865276678670656008805803022016266031471753615288146829939360834503245274205937074743188480218840649183509879325622957986584161542411713743229424062237848165682076764165492554608827933638801004833740955914377993593777630958054953401467826760038413260595602068366002578282344548891920048945883416058937092891835021623988568894174343501439422828559282571299789253088484162498552214648457814282911929572803211326379659230873434914696087112756051298942226740388472070540975229283307087616474036892749685613758373034119705702119763675645989713908853150669872625384796181114170424885930559855784532620003348404889963047022938404420328788689188247210193630190575151684480907044365578157476087881207160728403499283546960203839550470776097896729722719208388518898880701505824106958880586205851109388170970770807936358721811000832738489644217518332414984032721521210393838464861949632212445433562506012190803225396520359172312006878520804055258987091204689975392517528948508871414509343546562762587793421229462330290938788575512541150971257335290617668263390380437702132659138879737620474763958990766677066850075712864076451168797120668880763715216409353918104148458355640546524621107582151965398403177671569091560370544397672536415297203267190805897609491558467928690362193660418027761544190032308403707259502864427779596741091137211340248978763059901967663809185230255651311945322487885333410543884700496547645861250520106700102655873395676253135988565065033396341353760478691015691254718527901581426419883630093878672593620510543431701939926296980975117565855568603265087008652100111028266663075028657180934808386199687450894828398326846231953168826223757088794371385619045553261513032901943568732108943996176241759933961768961190462075234254285364805988623313830123927194442802237052205320158141072561127161067917419453636598812672926752754096819798898179985738360320882197775243067941843580884894153751701390692403610464394131830290786443145676823300879730516433838038831852147997907155439238550207275347946796761267601872106792723287294673861766374935008546709840855556771829501599715934571012542137183332985384638489868599378616947095150295927164595200524362731451875755691005842220310347757524722903758205251835299851193919151551913381757678524812342823610138105023895941834378184821881992501689769807936209568355859589056189377079281743555964310298218838059747379614983741170741234613912444585118901196611915264644196088068073987219701903536802439956780442601597532406233440859685583316265347401189823997372720947407172114907120604480371569333858501834263274345637499946034739635404324313153682688134256604238688124212390029962756380674185798471471677160086218717763756389852489138073200902966230303753941442506720509343985066282405624945005383860259649493049539715685871577147446175517440709962305291478223942452917742577126063331315993626834824822252405472818440777521990780235309678993737021289192478544046631446243208206097262364486450305339187014180403512595212488250694831235744749440575436415986241506573627228843757450754467747569770044245669651365746226117751423034169584137869532868218769050531839789555586740876564578752075357756482571488882659763553875896445227249656082322113682781579373275301711785687618105647020739471999489352637387855745562816109104287093107754352630506660013493467509981538366800905719193489481882194116830568281523014994333774771299881523044647197448539748234583775105836751159524467995143566284464233467886991306609542606219138124953474238761201888968413872409418415367047333153471360338786014777216515568284912292014797878271627202286220926187769540467737263637877044377410827664353644121109306201746673016301602440550470536114692470126131888082718181203807821375853163925690528332360586875255965994524882956886461018117492527219918419604263502323971847815745992275797888554908454419782442221222393522955885518401241106147976651660316409857193958580281669373092009824244621645874910037910858503472272706678843957430157137628226450456256765528849172177886813068312811795522361456850290017047154202880785169828818726682147973512019370391418572848807902015507919424498908906104661940683412551650102134168739360603629879843987767849435606219661818327004076756320326413673340726884028781609711068925880595771261310557276159614533317225516022581708533079104653692771603807348696595127587090835551268278761634493346648418986785187514506135732207418801545655525173274030878868973746455429632830366848741353133315177697853135239577903296591704950887465072332956778623872428185654919470324951412545182101511807816994159974674737117164820172808253386425895873443790734348345743347804825464158014553248600937726043380547853710796765589412456867097855627893911850584060601153413187447570856240550204723662661667930010453881930237537382154565150112415788267108680486876381581716468666510583746466359375015486946399562875463341745517456247522722313191368836086431758003390099465531145833289208117457241759328044176751316880772170866819482763993091151751535227741149626499793825165451949537513208936570537280786204740314109658024701011716484478215577118525270492240222934885244744850644971749322324204311586161787813367796580346575579424034898536130470950193017073988773624637415552664179157136582551217255484025381949307570568143548954729122890191821621907957168932068150162970875728748386174217552967545471331011189620745311415971064949232102833141039048667763806564336943334189467354685024445888287378083552893437902125194790817579013760998352070813972457662263996632848652521096573280278936076712591488461443177057349387134928148714612903922849743612957368635676187818836225382399053373760715712392776213040010347434768197261618517442776048767163921269509739921418545327105815400296275515808896052276678637000579476485096862854786033698657043207253300314558391630180477632278490583413100745467639194746384606371020678070304303727012902098902739104961614731204456825879638940647402206422923992438751617405284061377372275117333075756669149097208894434912351960399000120814516584478794705113390546674131437593393003362970891113698249231373712483646088431816251323171154652457443697973241595244808100399319676440725237030032644387796392481911188550017984947583842054629133970527400348464588251257175984012119375393664841679965194644879874745987023416909321348932718905272139471704364005964425163999914917001385659818302072193595580882880928809628370727905746440694437287797688622408857815316546228034106738305963589169926042163336238884398394212346183799709866839015376077310512835654516795852227846787512022365709152550511303662596607017662591761308610720835200333128331569979821904395007532032338797264971536437697590948293228993071592111037710482558493833086114497420312117253604789006809305595972190224331913684820484097864716381244119863886113223394735090873918872166593478140626056466101021706165852088662325805145864241449188515470383563062131619744897078751614646196010659762214752334006702213965941910476883384904965974205612353881351100239033522270616182996739444799906200656807275458865225488635191907091713534313719434956119269603155536883058668686057553691958590185904608405797199750684198524491898957504465488412423442251152553598692637761891328986202417396088435207569377799321021907782025009237661500401838166286046116385911007820960187637791708683325356565067821507062768105154993319810962877102382349908709724980563047193224396825690858418508544439733031161747950498118081011983737615175553856157140601202934200784220271069462169752320975755840381646038807651918953174747589108038688659820229675722470008170288785593847594234907019233851281483750696667576235249789417781396499127918600140274694141339898712361587128345831975807001696609374989450495586295241390710322509939599561778719196751361321872353191877522512634252211803255167926372546203644497851532519702853022613200851146461268371387634637630319032915757443409461375019787548205985595735427866541493170083363216548355954182715320504426956190221812936414293838284606190574787422902583739448212238333413408425374587308860621842394707230442076436193902620765338730293098476329836553914271715554642954601596465791914972835569024943675669436538249978045717797871662391758347618359945164982128167568899079774214475455647635367445034140728071400915766041129174960407344167888065924483639454794639650478876370560422090387101781813529361475407951648183395132148791652158059384883713541936589606345937133970464607945268115217506808181087053788046943292770611886308383940240778810188717272653089186039480780292464431920891407974283438785767266511058958884721397273564691094359503912978025870760558123789806211940262217354739415253942318275418757473698296770454564408591994421218473026588462341959344977490621101629205502088475097108762043421534572718965395405116414759809037368907563729277229059684949166334490305261528985213320628084577585687338029057111249595784931213084688203061211106637038274840292947625249611159492159446645814117987509904380872327278350582439233696501724555081833755763386547680885973016776974515051066139348872271732042994314180486785040383789416239351356179974018776501416877323438201943567163345788249883155304219832573349299288420752744083660067002223688093042633701889526584899592561976896574963100744677927469825376743634018560091249975830207838765777858453480932166778379092412373257724510255619701292704382554810213763476399160716438854365029053143910900750590099343588723524292224952434423236145158186130777779477933958813407026947343515420798388583481960759591779010995282296786822186237767679066106399441610756768992302919447264801420856871885861641247926447644272912778194534482459836741935698323870160110896521909690173061714323587031893955946859941763503133212075402309429664191088990294896930106951813014685523636238584155971508119361195787704329080410735154210877484238823918251873659724322444979857928663037631726878154483012781476497674747847589128656922833177314262018180903959838474288520805064713691904855895501369842855299730364220324461960143127711109248562790572618515685916282591389921857733498980120649720119686632555170288301804932703042808725736021221757288045296021886233945780948406139698790879085535545775952787546383972636091360374737454452600424852013245203217014668649972811431844978110752274312722019848821586390733352045707423490107030138605795964610212363810347936242640143096931662987204810908444508815901309427876607540539390707769093299869980724572115187472339316068251196109631658254034255183077795998268948904924047153547939205488791474067781685260255442829517500174999798650751454720564939155356585256102103529292229092887264635875127830215314900608592223386525488297661355609048266220741158158932383641961230949459593532442705433839886132499043726254503268665105794052996295458112152518647215876570770327035539513301731416566849667566282209365745255262102263053433314380235053105192600514440691987423399493486236472679028621883989225122381308431710047228192187340327793151930675296340514988598764447971305457064769539797157430830292999311149211210163879304643583363909278641093105754076438100899513830722699228244618706713199598014061119160724547309399909595183824316425088092347350564722272773717523573363719871589668591565591358301261253234062145654983593302253008123628500717544797764595414428509677267444064701263185187191649446102405996231851024633969858468133222318827317775100738588499668010493336069784610017937123418061534957355485541510314559694134940041169050933208377345539512800002422988592892977364815605041348485619870528644488966259752704721200117730980424272282025727866574136311459869429258173807918334728694886127623140270996888345564565816843639458897441812300624743740932926824904479132521333457841048019716643965915356526657233564813156281971297817275520470913353758413558962994496631938401477652341831370736165075851370217512540875301514579629725938248238885212320850410149636349088090017200819241681050645456117640258323836333498716832436521447917902115250967078263282153535448565571486545657195376765019071811525352799174945736209804524633965985164679745032007291679316496329327416004913493056705554193117339164904619807813690595865533103053596625983595025263242315240136563748689701913456537227971482095943862323476402388011532738189050015751999673922585468051580783634592434156363551707203086970880331414538479777776333967338864471231891621459538775516204301249495379570172691253966230311681445855944633806883679606601298839574798931529001856386176389535077229328715101657994330947333234851281503312275128127448187909108813793113667884754734510745342040214713778993273064613657001751545859784021945722110640107955083162750651361744583425151230270040272025896908343245087352833766887275436393618216912566639924092154294019759502330171225576286879535908102074752478188813987490325069628592474624403591525414989123709696706648714899197100361433418138041014848358271345788202479183484860864945412793097375154389932598228671462332044810357927648743137123753639515850394763698357689099984158485980481221573576051398672436090053850870655438590750299782775353092688629152208129680013820985336997096784523311523442060207331651972890540034603890472463405067601766088932241323348171930982074528323176550692909546272416888684176928204888137633034624252068662640358618778383042563798870522239106506465284711109520092318036276739859099033327058022239050361028789814781295143904759473668263586070510593609154122249751120336600931609405406360202191346540407659100548045668063216833768366136843000515070538983451714682936352687886365803053374107045241903909654164759266933231182550044741012397168183350513442266465629426177724915276983589535419772325596193777479861498626456771071198447263568372524431746058658980468743239267235828307110807527102673407667089695694940239372179331178369570573950580771899393611404173426411288809057555578352347543156883916022760755672276387351310614880975835404094419224898121713660450110062087634224979016682837607470753449129169163673118295992579493344079165807022412336955487389916335791376017605378318199656243462727155708089324426472235638097603569380790746796232447493055869837194847836798705652140124291462155997382963735178769445039521010591698983002410918555161235583033656415945422928531681729877601373120807912320513089606012331899662461020200729211651265789082269263879487106430708386313161838096450161669116469041586125834303542515323664602592067670599549608909642036832040895100416958889487160697504061040035543958782878559749430647187102520151148309104883903070000836654507646725068817681512039794554687722872461254363730552310565515144607539592022551710406461610319308779472597221719605161326064745044879238227045545573212077234087464867577661180937495237922361698864878667737735576984186926267095606979366309212180639235311599481768262860473476930241722104844216997720199248141827673099249323556908918596626829787289944874438052764452817752249441482980435957113750672816598838820483002246811184497984273937654410362824735209421696487124576047923297436941035502644798626881010789409166679988672267099599978991056156324882899224664601818026457005880897997812347693862809801505950625488586144480367629428897312852227153992497194323525961158975288375895451978048984262587735229335104587840499344580623389027007901610645073962299977723592963899128115842959110346798513913258469236600606645754383102505759815171505751831956137928060544711589107125331852805624658125791963071601168864965424221427942241339748233767438343235420881835614897129198069132598546214554777348598532561190591797695298797606594398777599691939755395675350265232210050693634929767809152489087499027039018373401581884732503561429500901982273458494336685046728534441200713592707985000775483048337982606269796795488035231410722418218430286986827660975382794266487967227612335015822709356008616567955868862015334826101942091200641058325868920972832372430459541384745825989362291459275134779556917903874797657165678751087688046725225697505838658393476228731958510748733566156047295187418144676960012994566314803021319328699709822087299820416966393602209599252890046062627741104794387803533028079900644726314968473342176259593578430428078048539396485411417158637196901714400121806667241011317236435869549221360996253923560420970856134578390527570505176004811732284247119198525907427321721681378857578687585325077598829644133753121625623012299143087590687216874588441105609067423135048446361208971631016820438824096994590241888867179749194353518804192121772592484398873055341824001916795242225541926293253771213781098387299367183922181358733026418166420609911660858272923441422867108387831906338582465962980024651101304800430859220404944510459140008508824711779865688030322160757284451027930816542490046736304516392886924295431768874832556754933155954465074670603257127873051750167238068583342845539334126901894044942398283083865750085433388944184609576733066764569720592885763883354409208361725249218746916006615685358601848092295988143169354669280245312236944603003712096343557089231227123219195576503635359523460303287307603421312462422703495409238410072388469473853339997287330827802376259179700662514603093605041849326661689454732923128975964923995880651279704154914840989789909769445230319452806542969432367794930915011939796386230377523697200581479954209150581871189891775339473812403623856048125838006395036836550282452017158993796904749811854556433559929545129656759021350982691019756986563159893078447198850077230455744587051174298384540709696159990115423109444307310770598791168643368098963570693128031637595750061048037021277120048485984475710884716726527933519291897484859261697218339835783875934870346391275344492113839919720027717467755666701917268573482210968329969568859044302847513728485623463862588249971576777949961914945086668953276514294866003409762566024708654597693855002971156213997571728556971623925346975201304465044237222890930410172573881646454286565859844710012524194168461133108493586002540530032413577682983580819582653614867339445173473756552966691712000663124500612077340144449897458700343201064531121339165523781684937613597538706738648847861893334361127379947395574946166596663515697490655894741299757102003714423687297541253824432550561116510713017486263099715149420287458523088906071482030567063168611872843860487333193785756333679790563289740482941122093377484107790111177235288702404618029738893978931745424933503451428968411857636164469144546724684271265111100600985106157126203564076838716596595733020086773916853723259688876708682117826165511788079874832279134459587063212115286728005719862555898035246591128880783658019445033234913022784325333988673006308070268006002107911603219065094755293337806236045343070480111488746378798938962013017753843486309980923680493433187633097139495255151396969778490930239557404816807127015536353173582980000193946147052451703265789746941803029294929381473035904620292089681239583247189080340050331859089431527026199583689530555821738726736311965467441300176405801263607315258758159643129650355462264989651668874272562165817196494581614509844309048287259614365855654214823771898721630437285567608583762317714968515203652037262370287576329410720928079248669935758033799456564439088402574780601307558825660718703295673153423811777405575977159811622560116108903169198575714140602668673918040103875959767827535080953417454953353956261136676123619024577207382776126709074469324038543755971879832998483381041636267796683137189979534626791921511935873596166836802836366327282946221204855181197327607079663132693767372171358965168435954057994368950444247705481430171438870294892962907282001169201128493246965973249897531721698156942620613597482827375100249005411517668329076600865084211103630436142927602227689302094664463518495883595299696615308805184855061550990290687623157474696895870999219507990289416894231719728243179277134149139651770663756440040987380055908228621196567420234385852332376521229316491598128934905225444339148980707940290814001543228762532357739125352514696333826109354965063869415137058176040435858062932037495521941896337953882171997246820553921935568111130375984356404784793775527856133536600690377479893747406381307290674683531458413507777373558267742188141194975574278757543030429776660610171690519689374613260605551449781756435731232631374646003662773788260073845017182726443367407100904969742250427374930284998954904799201016731349030998687478334041549228682865613936604845513777961271800524268099992647902356845455333169813781759698480756001390193716531655682576386339882343924807670807661975678623532356893570036434645677939392005524995581126052056290727180278045337658512569163579261374588843843313121819606251161712670479623239662828264255732976408829013432648113359311266138558826617037935802585318687736040205292464591330760508206880267755144118339826847765628416471870447535643052616297641678816343640987170892782201147286004223898317492708410425397112071791445315237274031600202787147482405556328990261822565066600974416095802560171984228094293932202085057969376256904095225610511747608187426118599845394207384059688999623115685952491404848688532987457377586357266894926318060929063003555146813770079431286049107864987055013219088835584900331848532634147176308346862456357424222228811673786052557967024096058504242127108539112131056182230588393610064483866453303727174732902067162864893509424875352863691095489505126063928408930340208521569836607497436344088540710940475394778710991906130748088244396697399101081736460170549891575882828292660775813820014071821734379698180375404046624153116496886438708281352185978097267800148955294783663923429943446110112964037222635639829601065829366025427782883867309498993951892826082371389657165242196366214366343309651832590965922136871360953474093456008578852956628154418006226183046016797682596920331657367028187290062471075749947627887042553295295434375539635498217560466155684639399858805319769150043719384022132552707385457813008163700636331931795686053761882577026160414809648269363846981337909100931439858904251771431230475163195302618748560901460443361873590557795584718260486063782785930780244638237120772101546874446892861408852832324600674564096189445439434494555405091103131460587482200908200001834086965347849391513300117627187547431937994086765768581305168680408198910862022651705849094401372806851070084058680358615088439596582429158465346538608374177085676983157481335526422749242952274567451319005006507832915441425819181781840465559777746959439035905835594790633155193740049027716930207003048484244441334683366807717004288076362133091587090660981645427118604960214025680138327149427615146625246551484832365959417607802976133430231053769679054227668316971790024165014124590078631411211133383945151309282132938635784236557735353937027717889612016227538194575154287362221795085810580721279612660218233263131149197898390204711094912786202322394053906964008072347961752795976522782991182451485977639121980814674834101970741282508344622285323174536093600020205549730476380664629442172204078046857948251052605723026925643913980740589627063477099925069948670399652707997847966254043098717812332672319293988170459687969578340763009269025996061363157956475986087944514581540723111093240870029278127614214578411936573136348423419696668624559239006761233307564799256559335401289716491998205038565724526291844882525263569983108252581347219220933084069400165636264752693094623694793984523504002345478942622256347397118932372118526154053858761461478516336016911885912521524005621291371937281812299500335921896787010466421209255562949206760843094965123969242763936306914128664518173952927699244533143728309428060976202620511835735649015639350549074298319892310251936002993464351966418509430261694086053315726665491609715490487336411887761129678593525365304623566048691774365114314282423753650352313999956973037587283278738714703798797558894715822598558937864589473873970305131843699495010635601609291221803269529610640791130235801855147719485413037731485556960913736939554737059174152538877146996073523978818218294434460557973186664626601099640653848193577705024161535006613765875806651555252334267534574847407505750085016760735943600942481643569390128014716782198199814732014427526193827838209984101033994835760429128547893308159226577414259675028526851216579795730131517214080959210141203742777725587371225500464779041826643438206790845272381504140431580952544694628932980512353144732810262649088272295780130966983550148522461778196456028948246027428500092096021390012214445994858697275916794298809433837553393848785259006722092840704054431341309886032151941651391266172553669555223416245646570589708508368661137756141617804227822017937034648800584607545410730728014924373822469493643430262989807494687312959135609332582693656423790437624403869249480275612894621141596778238355022489308784529977510331194111205807713414954281104778077750378534411874522478108366066641613828378228613554834603445957082853983835884415772394741743929880343769033708399626276819164215854658141954224986923162080671633018263675892839638726853302724339512011228098075658039814851440900818714889499211128914646053373153309512293587956658128725686219378099070206967989686654289652458710479250976234003585656229224773284247595966651724496858685187415426625893095892505296781941954805097109713233130241336791568990371054678012686069949432531223473045829599313951735305185293466402417252356716364479946234664984775987641548972719233020495864081552620070697220048026050542848548826169876209554734290839428201508248161457305301200143493399669716897546453028597943897093265026248852525792231622213875696482973167245247389725651568391450838252894239509697123763810477804984245095165030033561355407572885556646934716812114190178680428046521055284231798571525777151449620585885043996109620974642335046096350062165279959687878271704418664033229105293963458571883676648958748971075714044178888124425318994939200480607353003710366320135602963028214284516232591716126151040419548331937207438222757804198125470987964291617733310544367982486592058552148097208919616705235358488210197238884937337842301458816715084336468531563963952436654821792638215823809869109810918503490293471270388257335486198448723624681629528899613534594915587299688342252545776962031387745386326532870330737914081406025232524820195799588215632667900008165650200032025337819674717912533590530595913037866263529321230693178061103328965714785718051149998795152182928723121362964399100679958261862005818372884359929176965371784656077881072838457102900997518976095720369942244115997247562664574490339786861908791266992564817900774483747523668585797560856677336110166757070577243825691703947013048671032479893519160231213098400364458177735619826055547395017217531700144791003409458221395023617700735527373123307207290292605344771025232020630268474352639221363399541653525098915226778255216901396300149741371888431402304557221902603659081942283325548052880102036550438013766868032580373665040408411678975308662703389107223032189950425130692084380443802036142704873530785976173560914544094123211423580303355582894948530683885505429367217758178981766375407452676450525374053438003955520550328211581401642255565545786496231260049371329510956030748770371980961395696537563686901267732864133491652538798854473163123706067705468250283658502501372920187224189491119740191527854245039639618135188579935200901152289047987630628302937869720159813499109223167505328174947597286628005642430660185436562208886806197438699851764567750018659179191962338191456924390027128669566573106342992502788281940646595351574702651729841585421858525846277787568196451073305778329268011197133452451163041441880291521513864398671462702220840372624229868021574024163034105840445726069973757473565664897936506605918275567022087205137153255081754120981165211711921471006579641732088158712581936044940591239208435140993318693839032087767588060440601825748649294634209895292212234810658767483603159055576723830792780104481850650534303701086866089886409363230669045875788356044328000632796200397233099160822469067460498353280075490186104595492279276190637395341499685028778895950933078413386360262192826776073910900232770263245904336412071296486686151105734595007219063122432124232701779436601201363240109215722224780247015241592514762819680848268016976533251382775886689056008505410305735271049979454784611617910416528418099851102630854587086533019403937832750236115556650167198228897121066702863472976635033539230815521212386155122162404149110998381810864776886153196832816644684161664451590325244792355144835342564434162852131103383747822299887879488798431774953215237754927083059213412207485077598640167265044727599483560023483923056863337998841762492777282062880542581874193141060228537256497153998324539967374023495222787822489205655523698991607939518220299254158716418663444096354392779991543354456341444296364482878580761874425437165216279398387349341464916459488324400983766242069483499351474273357775616278573613787880065528231386165102561545509936545504734197770928351485211858592906942769629622923522676852645580937573332033232421510536000110962430418739605160890269805524417120010015708510305973671125603196019017845466688872426392036435892498984462581686888650252365821106180606945658556445499438386251652926477702289741788808239207126964542416780006787321653668320869569333239651898143186119178727667918306122015028667800763261811958960347663830752913807490531322212198765638374859639992770783891453625975382577030957540349071006415996541502784523339130794221080436023863196647338659690920829936499126987611227583661883303171576225302703859672660476330964546015303019151396404742407280951403229121136799600918908628402324548502183149470318252131649422236503561519629866953721742565619184244421010981390750784251565620340732214483570619652334896984708287708858761957748205314374795365756026112635383980372581461575958272699599002198422361513058797265896158441553546179448353576041135882658935766630821518075586196588223004523897462755070017122155154664293367896029360216837322622254738721614988494397320491569210150947524933381317647515052864528635465575314423238118263619315633141486925835419760361801864687759470034887059843258228672660799979137944793626579081442048688444969504690074018570161788778746292487622139042333895534771066422536522157124963070596334435049189444625262560496768876334249991822811847396610372278870053881086096682848123947271088680873747004622033703305860862211764825842189946230314594415195651711090379872097337728273910912656869134450967515273428435881728241423200696701864947760005271772196713973926044931272880967282699344103334009176530574543885970257941074038064804417963997023285301410579917541134319284581410066153699031891040231536885356016122029977536880403916366907168496278354973212504604935306617009640181129917922038848713918327984616261563206178703999951289097812921580769262138728967665535307252408985714704910811561578045389279814029576292655879939986088895558329811145979369932348205705066403501570998517148686913375238340099232154060779847310298647428444655781354594366303116393417128622045743948303686520824990325649572009474225584248655075789435177261801536586026063246288890122221781951079466449144055883174269423107955800399309337365063259304518245168551356288549010552574396745713521299408537485155043953897591424364992123851444061350707577883320761048854782818392132636489810833511904838801982310145580614940956271241803322887341163255745248221999667547299862308625742881302809568523384942739265204487784614258836921587639116331385935175906556188454306427256954406081173245786014366890937400013343908967788031277319880186258069201135136335940452557939753253826724887520462672188164538822671848594754391069181779922244191553819579464345167717524022456419645873569364323996746865512706004549465536708104837097161248475309177540857756620951778465011951800940718907268433535802951991175107793119016191512959171791504089536907418514063032312462067715678460238935244942950033128632085664419344820843517713878906611884433322088013072478240844153000477918699975271641800329399107420992523514928213456915157618659171669069767700262644759688218534567453060918311497642491801886768000300888344229851352289087895952810172986102375933744916757596465320558688730920289676610734823321906676937333833118438465847066832685312850776350217281230289033843097380869330306675461117793477286940593211076620000151796712619773137561072062198625737457883869040309567500187065771269886908948592525875328517072687501399586569184012509566694988867174203185903175017610605961111749260650701573674402022977839787333171984604930006947548181655843302756623373125924982808867071841462219256807230852768499210621666432046229368717109367947902287361652123941825709906572675373826533678852986185241605655204437596585465673720461500119370226653023050482954220106887535250443423651853254059999814573843092836920429590558004854940732658117298790121905550402372630030524938625373767867507261880907052778435292729629548315858283499682976956938974090829263910955496030499548344695204029216432187803952740495610715080856785889448066416798317732348524343703961246983297361619527709990848297549069334534357171158266528389102442970427489774879020686120289418940448181801499114073757304600636119589484591445276666169659982950464428189539190203039089261115345902803536873034926631952266045707043281657106504171014335838513051924323643301378826021687589672095403213680138518141929364816141350095271963088635002701044880916460753375306141867846781656819783576073090457672035428402817501648521014919189702181794442702060073074218233651092748707755262819665663876054088366558376949105674019161943612710639408465052190707003007949369499067880884776854809217335542186558348959950839992519364211762188575116148795147689460099253978897451648177677600477122376777387391285441394198809064614230534339410179806428004367589589268639324791245265637208397136499552843519806880795522314127248391275002541908387375555929983439534247696140111237064968170076487786473725335963253770550940592704619185240209359749122932140627485323595006017507868470108959900319378778351286497966245483008767696026843688973056084386328595760175213213090656797553198655800525531687795890742256595669952923439384862949745190122660288584045368266575643954434530550797602875760395315450851725870039060125180491429513804143114062879121356811986618555484491444624590197532784748993830574652200737258229243368851888663884959587478238992949191442495770473573449873362504007983264927921177317549673142839117749744447472866299990307368047996189241461902844092525232222865587579064538712341638507864882889411032505683420409259988770532629751872760506893371679514374375831489764137604545200911080164323591805861894594759816452101861948866390103705936494716723895791465865694245156790887354742297831467220756081402934555430505304701143614096382788432585302665773109803718750981515161039599089506179798991544934217927535408235430980825357189840109511567179070474830408363309391519871115955024014936721566402889101946797691930980874025945035162339311582467077210701167800814368284956597964770465232794828198649475049283734934475819322526912616715291991849573718709431950457969735713610824108824958506651846083005260432825467447479810559299315388133651483166539260289522703854759647401099324928875586634079823141384330410895257238661683832071984762593547082379934267800314615452678651097657881520972861636703018810684862198484493460728618076278152163296283406278830210046451832695615465814316938990729194406255625842357819762806053173273710868810604714277217458872317385432009167565020281084746563568090920375522593844182237928044643303178618766915069350010813940047598947417731152802688813787972797621418682182493756192815815552004660180924518876169791981681050553332092752169467991461778847835394732867636971493263450635425283491268775195984723228705406190898628971366004978395010503054338573997340711713909165368427338900313960662733149869448639711770378104422885990581232336403356232592345539152060751390128622677549482346057824494087391912536606091413320816074271984005486206578656915306094975570719182320131866273523145531271448299615746673564968902886163724142413329705350967160472729794639813645707673094813594086461897011949270405546394833123544722326092325389478371562785928142281040281165733413406293059107669077352756314655580369383732282042440084082740120942754087640661478194781318164515651351545467687163144024188536202308794227086989051095337925001160737178154739682414778355715483022898029848910423919282864670940077206986002284181963966986093918055628363273147012370888147368257467443542767267701834772712499349099322702744437886114370028150126953699543918024413557883874283160782778267725019316993629200458946782022675799843131316013990092285109402253641347415676174195806369799890176399092991268373433557974112426949599904523357315871359893187028364947691827613328027397065942870378784726238323904181221399906131347911361519876451280944150193510717488943287527997116338443260601891897519149131343704010057914155968299806241019474032960820116452891977418820604646842575674680201062729670134768801702386971286887844708743771959456976746475825608171764208907081373034258005263740009627335508432099738430479298505964092987674508724545800354655171145481622832345779577162113658977514795990652255888522092634854400989659982996214863119995849202133044478372476876410739786494269932027714455734748303999191351639797417324338656535340952538271113891108213565021852188831206396639058622480647961946724516234701675620755025392585503597840827326371556877097879929581016289610278709395824708631320177114981170279982835876308571402195994699305471824862752204204766481039273569580672818056513255863643458874359067451371622382744037632104652653815873296429870903042947092503029621526153356564604936488214722093399981739631736830929121885021279335774415616015804067898560369212458703279264648383932038075875578927770269271631594060939130828361469513441240544245746650535624004768860060241429762111910870032483357228356634431391807914454583112887051193700494998625058295936511807100860826316153546400818916328795414614695290534549825200715967915293312401394762404195908400131760223244288070637204638028876756008382934291882752727405730798320302050859766837949941899372492220090694678719803871244977328057322487729874579009817698695117686093991373390409613206864246993289410175996810034920269488141259537191050012587015231448638977883774353160974337714082666751186441508592621404832843361956563204532236526717868278069888725152166360569998230232721042213834404152158555205388167331135881826411043167375140880975397421191396124659884271443716850829893016036943895430350733876464904247093997885816154698068283951347412521150861652033433061350600677619618618489165579612093654805090766640131609463338475634862696088195027500088910220751713100987147324858090660944190376272381627370711182651229487478466849185799604541926490561732517157464878803030103757700324317349066578558870256382214396159566696367865383161139118613992353225963794066920309885145840389091086954887619629732389762470239502505467939385946509139227934539320265011427404027106153275061666360518207235854589957142733951128629574084962607697813200698235432942915100680015146740566382259561764476765677591387938208461570924870008122000347141191858797049641736563054242957572028842679357087877629285727885443132940264997061589378073679363670532273916289570874696995099004202081123363364367476909081341402895887629933593677659119100220532548960741567320677490924669817658949677662471395754640620337819053566484327888121009509843928745338937463729705242780652823667614922918978784082746384128775072487043052860439904688284206439122122513740567532939260154072708321026716641482090479432107373008631144398090506717095439415042341300117932855467639513168254885342455871983457861399791040549654838489698094910009282782888939873986142314576161109643116831206978545057927058016510445100655387503647037028541541572920061623668606594895281085139332303272316758658622329203833268970778847412064440305830168448475610410112818907987442888866520784727623035519440585809158619476967477025834985351744298523330185768479744370275360763038350459143942171813361365101085161179999473013745734645654806100028731597435178720258117025170884727096280646548238796135305091924714314558509421196172009843698457255544157024779119568772040251166705753457006163046027261707137250289935598542840499597452151859049665608670722102275227168179602618945381701546431867701383425126472121823129016358163083458746254265195251569663797555852281846432768956311330134587186464765392893642687079478230224301252362188914619428300687291641159877558857236093050976064004661002282167435041076941627266663981477387861039959271473522445591576214906357843278255250948466957457574363609517008052428511745752007148153119636657751705120097533950071035547667224707833043423658218179186419504735841124828004836498205026754794785012043132718190000383266116402017664191241447047997881408105049418076085275758744060252490368018727786397784441098386556736917015455106433020170074159372817496304997889516962156806077480022605069808471280086570892479020824185795177502239281561762479470622509857390614720172518207925231362594947724861971513673787582843643767143292780798680326829325833256235264899073965100029912834614421031173378381645478539760301087464821950428008117972156161324964391812240914218695763605853264696220223698014680867631403642914440184607142648356747070904138793214416466530049608228196315147495139731129889827674325902655378676933657683859904872736028735536365362306315591667046146227149474818066256295111625562934160092330758802533634181782015145870828583998857833949892585176972761071518939961367759939072332640443924487283699954818560826165990119517274871666124946564895352472364028138101245268107712916622076201853894239614273146998760125880189119498542527790856177296708762968377908678754564555183727852002435151650784079394607685998051637341248772304587163353877680921057606509974938511643310652280706207850929390394412490408734367552237253091214319022677647749849832427793418827893207515562846536707136389790961063230632004162721873943151986215325010738851781718516048890579441607517595826456984484380533030837143593020670935259881574838103901821264886653539233199957383117872864453923053908076568121224473984707120543672780455103381289114775648655300114399410144454957122728661995797488122576904937405871313937403243787662850645417979608904513857931946434284230960504383370523977095227011950528943944603609421736951494472271087995086614980718239005931166607024317545826215467849102406962284268255579312178289224111519631907034676475777141368161561134933030877675899281395393297278492038074684109523431096106862786259226043451567349194179262624331087244911469352862052559689204985169566259444007964097883926441327444300321778720130758660629805065969871739081912435478608505577418553157581397963766828506957840367716234112160421929959100548290207142962047529391763570225876874932189287827546961431340995766562752566365987539952844284785440410537753826460922907813206331890285433407192437146965896046857766234794454372419865942780074189658227837986323302029104449825509802323645616398923085235958991460848921817909542213485971464370048347376753034407441544207739329503727080651377573511039537029763220938367393227918248544030738767544305402593094566207073974917003504156155726349859088709956321590230584811962107957358954251819466759923952389813195603530158399365903330540363821462300713170653372464227958055721365166829065333742331528802725392738554866891601164648255661268619180572320778100612790574220121035519130594091890206387103273029599447747397272671550631342315493786518776393971990965450571801705417843600776653301368611381005613370674710575264587393610959825080398559426589806351417151043382594481388829612585696103185058861187089560567029331009586661796708479393489210022057400610640948777544981425719485884981811767015384507103560186446608980965735126442774528367017869865339596494076155720054738367147301973814675691085372853086601283647566889048026040060134012776845358072506484931668868330102630723641576654369583650429191154346152864710656521801832837600802349160023271586657985825351083289829966110234807277920498483591073912200138880070102451995568260332846613645890380869194490038869042085898095164638814685147798371299428006265316227967063484102263502469904618377477105218817391136364756443153907145060123508874225910879165378600641466347519867208810011951524873938324011109327810398817558811453569282585711234100709522692790255019031582337189429785771266776354556571470946268092088263644758959386165261852137527764626645921103698857824823635655024688743743552957586271547532942640067937121148815112972865840087986879048002434933273840659393938536595610080031716286745370282489632759502903751235036205673112041772857546053327507758951059684734913909833085320929249891790871732428656742924924078944907354423756792810334373545521556178276954635907691358724529889298927237907906901682519348363813040015239051027319830489126307562030474835391392332478754115723712421091780285380456450817327332623520821119456592173359051992387517260237765084745336348601708695872050420795102552468083898486225582869116498275126337601328489353501366539599041091190217298465172240149782191043174699642712540571518945482882501712599181664365428208980756260509184716089328208318282143608258086982170275730600515647550428596673135298933664307522794480386234685519004593548261865604388822497314254525375520181260813853565941572017488145104896377947653104053204308550479100543434917093823848942186305413689022183728145869895491079350383315481962125844068736045926471081636780858137914220799177895458540921204343058064809537235044437865865710753668738008482026648236188401947195571119371453023704732234843181200429353561735474516336467158772079407230511369266094268193840504318194800209516432273098103622229988158626095213095006215756376991327621447531758257039886578121946678671899989395000358373826845570289656856919319085938370004175581561283908509586755888172958427184564968127993601223944497447827377168548596026720087720393854732984252904923169247491348506955363342612214599810230637275668438166488591852823987168214383346430273953955683255093573078203513632584851577495866155443278077131677691433642606166875282762580290961742003241378286818484174545055487302570361968674957521623560629567275901093531317575624907598961711166182438695384958567387507060558666887107872466561394945382230251204589256697822247231774738375609841379626761375738285896383738221807921526804048332543319987652344990024206945402664030803776855896769746358918271755103060423277638910729895892513255362336041054949124923144895747406938989143878237365315917289204457730406792067115909637016305470441307419823286202163121178200888815676541969311264096993697783733456967708529683147722505733010228303282692768021650344088837733625589198459794517340523202433102645942589798270476362106521833352970784527558426755874245144501903708563227482505008976271996138977822465715073352967193480237212039526819225470735811751288304344259113543485031925831685742390737449293930363186884202789953167970107657068268768225099622918264965895414532221205546562896913298048421949545388745545665153191952112968068548238218900414357392924376264157532847487257225233817589068092218095445778232835457117192591053696628864951619182066471529919998926504022274838950576843013802243616644339050967247092477095566101698003649042941951642007966973047590761123307038107417491851276961654566841557113961063563498074685906390314369697926893353425528038311708186421292222734980749691953844197744984308458296530458364457663144973841024452164264417817064610065262946080306597703217870264854131912422386722778697860979290147488375087864103593278089512118524762690123494353255656971942114531832302948152551324976585211372820299151920866991920503657976517612559264232113754384252633753658700582297525547502110063946230998462766339573740043077776223804550842982058616155485071729478855927761797972616163349399891452730102164628309079781128742015269361435132018268173063704088169641747156372363197883573904830624931783133557296290803982615235865018352619993106874864859737687002581447569979542890948562403330943321387777738788171215557691168472162911695369526410941035219667554986373310408184525705700785556674011676086439409936443694154827771499866847959599689153942087571678852035338902250020279965979970010064016712881882040176315813872996671871146853941981507462289398265130476245258058434328594646070144978695174647377182321007898321060251853629734096506382206361042693016746000760991675415337556651687113647677331881125412310921993364301785148623398202182937324210940734688665034203929198910236727639067715519676337436161917180893577553869225004986203582781136769492063024635762265252584833169520412963343637768998423660679566192112056715355654199881069653191349651311835621492567775588556656024412332312795820828487796254609110644569018379194758038009331137596055548288609043965220709134097990933318588621093670806662401846906218025862626549370015186634820517065740222278512648472228987054415178542845158782919066471893023541839127458958127848574097822286802242545990843378620081812633192276312329765700438953231670720542457648553493924694717746095203467023111283920603541848708013589849361017692619728168371897666815949676695950124598121106056767034215633553535705546679227325069139695695035237852197487245250230397450988294967673780821952149190535415663447599567550434934087065981393107902027497799740628116408196031326797431574963884078651837954080838140081627162687636878535819518433405003332865390687231483360568336099091626683201739081591335315624501193665821593119914723439970638560740511451679600165963028947086200052087459144929855684051658062995690543858461035789453488731337139185322578303414746958743328102195068412558888713799421714944783238781983444993966219775801691418104052355935321078565480913988981023051288163831899080087513812343714414910867657401415089053016451274852472338985950640623652545133861785361108345274029264090930778945752365979513078506743945154119045262788967184849246782329929748207939302131929619391276566218298004319532352911273458903464763072705479881024221861858819914213194644536796521921585311443972762353859283442601965858924924952445123265794301569781540889334094630134811828930646555930602109158322542791517534206505228412237828729733660000151946519916368549334317976570210517807968174650359878482975745903198525310035287957093313789394149271872406908994177028392263185069043703837374019120823038615324539597998524395675831570728517528936714620235319001097524351780073139694635428902816906229878353069582059849989048917404949531866260048047319085145002043690762948571818653616673320645313219653142170741217654280762921678558625278187159566617562110983850620598443414161806742660184864321949895842568838579175410050265837772034260423522221199288218232307903132108667926767129552678364945752437383581721510070796119099085478158699880375791505294625568426193914687526746070295063801540301701606134290639867948868891719862366292597564199100555565724759892914756436053924063055150845209726295372870707735157797801937884542487534163989251473935157122931610225214681760022723749421299181059282652865684625375168011838451986850771339579058711129749322938103810389909520573189435778770056005132409687597720998895135422637478041922383398171439263827035629143850940622325076238656537166817671934938735863996484951739223338440929041428137174327476027283819177343441632931650011156701981156194951234888590099563194242300411319335531006130906355742965446222842469922842477065717176046806265426561616061210349422747182647119475490990551181213576454919054538181927474914793054445650159917378642751664937292137061807319214999872112562737640835995748165150356031883753594772613003548452834551807374606211564266579504382828770131291791629358060730196173384391740952928557822525347519859710024547147893447244735191862438655131957909871285800541269007288923621911675881553458741579593869281703456074227674634421816680903515320415669698207380614078013005672305179615471336291914916046510104979164800332283021744759833020019547870276404580993128417477494952959938617860505697358403689606602907560607099064447735838192464360251201490927671342412634064417742517973580209814865724634524312844410094287060213551011022512366213468384224888906164196648300592210084191632382155313831630281021673780717611098812455280543052540382937152017138196043668478089340608575483224968045069050846948201443714580265440454593922009359162279285190199986554700441053879612431137490415524553994720816569881202842699758489207376338509088934140346721945219294146647298220763708852173520851222688462179529218214861763369140480489840810349359168708576906815782235744786701980613258230214375019069256494203821575531916331439488622795643828432226810656233986097825594047113940903861065603855784898918837161275738598337578294920905774948859285122465401637998588402626759280491072272947165731103998669771159172158246379404326015398301654843732975047517011492187097232099611446204866148268292240971293676940144532971458652024490961626824680637010135600996461733444867933304346963267080276488469495142995796394171875541437976490547380520866898144027765535722276079048761337929204918045906140625068916317354297698035794519546513127267161489607104209955764710049967570968805368212737113277038021729810672113933330124507939587335837923978482076214065006735096623228742326836074966124913121366271218565974152698631657117035394777254055210963285187561073140046962042093706317903119421242153752265936798831173311068091871794626373157728104730381507150690537602319816772486923722206270599823369710010806758982960107603844998238337266403150783969655335862348553524226026551624821371203871905068478066687773629157526506042700001387640009131353542305091233270551191922219937681811615300445418696755029000063316732659299343391453191721935703219651596331045368760300875043304090538335029981801890140561191334471041808748869817006196228361643217323351502684219771380802762505383172225887750167672304695885842729015062864003772553531537577592571575574490610921527106460859041617221730424832792993431851079156301746573356482693150121037603101015163012728454299358548096947125003390593520488289754788180002255427271366303058459402855789215277697512784253203588858031499491380990583226410356263672891353550793453444880822783479472996584455433743649851671462126062398171083267304477759709073793599166368418595836939810178579416930226027503653121260905234906321922349889233014924384362098280444202546891579111043026527612751767420232791444050442022998088611329364179966957263405615119630800233758106074993974695255890312544801873493825292556334581588946342145490217474335243360022204020898548131874129118835778982613025294090091624465037831619500061669783398667312032430152416689855265662101251705537426508402296038523796561316952369812205302665640268300232728718232367257995944664774901281227105935220913278695697988440940093253883849264688752078775726224365490328587065132798064734276812248894245424522774415665833289302788819491512534495834581205903990100765538571796112086600806102749980513261970791705839265938650574123171078270383465248516498464698779688300755242785564010277305397217612385029776747578591478370277029200240241613030948931238748628383662790365841254449888337531906654770536455794455957390506367464246453061308333354215592057280828274284053081152950060045616982038323199160630045638243358979462450538022489819696286337812362336244299648562191784817784045092545596937893729133259614679125400824816458398440161087375478658801137832893679720063208432562810632084113889678217137982057578308852872344803048035292276189315476953556594907136683915073261501092669784308588476964022499822182368333019318063834395973110836961239453292163068346715926599427910537212161889983974664788092951556632785069187237824134537559907251657100524525520980487566543237611687691303839033586041407192350739673860392441338222881242573740947539590011864978477140942396780211139571232806451173147236455142973882231343953107612475473609848753741913914024004734956631069277582542897745855707186397469955456479649892196700273117181636587722052668967628669240224197597369821640826493779700252442461260444082682502689015450384811343485591189717811794245478559658570325700125313666039430081291470717730805721171918483821236124226454545882105842517837924769648028682904433844192283551355810201696014976447577088670700428225297105571079284479059990757253312138251959443732726975260822623086257336305375416568654259232454777218172230704256409087555483126838406747653322676808604999355046595967693132204079444977089835032047694189040504059750680952489722209695850958353956575427866863341668776098959039651825989761280920176592737163450444262536086310928839543196316968269117399173072721107427391584928636386269964303749076845215764348429812964438996810436993995045527497670400356050634217159801634061749052343907856849144683838811318981304405057151465720534011598797922937678122675687960758952043708384264204319954638132503053553773144030636913070834054662485845866455097958839069284107016328497764910610479375885428506440245175719364093911572464363460227643630089675714564763150758604337899856319547289005891151550630659365281277679625038939850421715267778094184761346605493275242680961868523528844365825545098465386520563141297401997890244244188354200419352519193657922509537131794464747148458181795714886907440101835060135430292935481513563910324744465576391996921350990823614017924670543118188041870331364935745428383639935449594356333799624826848666898594076977246517626953423527703117425525527275512278687634771694620459479180954547243920317218090234526794574710748834200320126348483055541575993930556673105372550543140722698950472253690534511097001521949094542308699627258954838381987697835384880560395398735741578130527150035734502307456064499951633020742519884600125614621502850227809352640538143582621860550016247162895870240396237167655809225237374657621242017125954017768823517482655800749767731213941721624438231691815595292042334153390962514035938359309978769555876908554156066510056752553272704900189760135451123235611415786321419222903977731289907139820638991588757161356327903918864284063108872052423403903846420240612962032000241157911909995886186266520500276115045649462533691081834253320631512307310441621337189241041490609537203230753161367790848076511089205682294333623964308689895440934705379447211495835997299616023456207624917124462310749679527454450524037103988928854925196016314713275672740823977263304114807525865881028280168848965755318952031725678321959795842139917772671656819768497013057017634492827011627615500413691474345948550906992996374208977692853229699025680561195568720044359125832746449146562143140407035446069005970073793082539631314247754216051635608839067218195562196067981472465893835039355896646972927002641805088139937549661284719095023608054571415933468622594988185573647624786542003293758448854744909826340941900506935786924599035057870640492009130469024514659559149060034765986075565929581460557505422470299638835418246063713681562052733539165775778762059306752461658008564007759447812221631016506104024264382356101406273424340476532219343153134440968409407053372369774820345780787953820596239382240139643739526431039713238729215591996046537359176434628426498506574495484425975162905316893272751681104776001350142476222773137359964086209254658456284861451826700360412266927999190821649320049209451765414975722762198852121428833892290637389279843109938809626794299461606429518882768193958385154706663816829087922084221302639022453462823037865979072335729666117220933404318631606729934600993236171590312828738678028359721573193624694655997660751069945982918535280952860723537631443946554156599030086210907993528778212394227375441597924020124883613389676073667389632117010685758763468635500061140597591865149145707150848404869192082403600104822573910849289934573719783931258292505824327971993950128926000887986967622362080182916807398610642463146275580972856195027660734194171031784592734541444226741452281882525819548800392961205114716018271949501818869361945090468790488715528382624653121384456996625028130852711430358169766811015359150057358594627143360879531992791519236412333924642201279114197109167494353396871991286620779724936495933162526027241851535620055551348859857094623346743497712403776022128121055695935551687943681686817346267770158050186385675096051894667240785252532631977088763274117976213431490493417226546418420544036425047304941325814386369498372864082507359077546597272042652890665607358807479926056051729762664911588215384704248896679148238394610303739664391106525495850862768253375032424976362879051441463685708540910520437285399301689254785794642027150870229722536736295276738736181905478978004958391139910508343653242115772066751385329328034550180242263843124244166093532389600461372853846525629233778696747575711322542799046728652126141070592452066883302176389576510580557415040055004574242815574907965219038617222102898942988049553264126801230113011331769207279583393528845731996835570901007546978525017893816079537612211433675641098403550959482835713548120290473524595100110772964899738384665443044875473303976528240458199265543825455994068840916527419007130515574540586942204777339994429836831603177972608874553193674778448069693724745166045383594461639213738793848304501080464255023099494423769942486502811545547717513045009924843188697434507549241549724379499143025563468943947422593054446467309870001903446491123357074212842289125922404959411468344973675082784540311803107718491316160714475917871080760382127638715580029049659619430926908950302701218932979715484520710301030697600356623827896514208267026054064570229161552071298771859318797664222252066652310109477557755438065110085318428121873481233730712940614506470977563653570377605279918428164370633505602383192837787777320596067476660800079235271574150458037647321594935284533499021326989949524185936782997938875784675710265823922739824610855557490408725299137915695977405561969870595124275800826083328039437970933481321258085670562427207356062616395822253185919571777440112720509347412343492258529304425549733843167778766189244337352476403501762243317451763737531065167664311740941554928517214554375777807325676701466395300942994464409384969724072963220305080867918844345575099923405190453831505923923689423461532938177208817834216141868213287848338604975695577749153302105293656196188711114869277476371699218743991745337403775725684561549131035772958485184086750081905404507386353803777720439787204224125317176055934933960100990405544547683148068817639051809470366804455322625499510748983549157830773166372397114141847175074902609208048019435744944747705544325531143677551283915669442705240286344163739169093107053196113149433369368360822650633206970415353982572667359533947052464502741891711907634027862545782866214365563086429749767995066819331769371579169491226439336673944905001545562573204958819166057519380977299157316945229760445734410468907401237371764294351724643154666050760740839901089532146245431098719317973128789025992928863510313362346032166180625956279670234266161391065111148600794307058523683280126098921020349826095510688721656749983710188287957871793537490716140745600284242072910005518438030034203131746870041637027401675795650969124026274164122416729950745575030524916402327021320640349026992634907837313992946461651872937775400225970867415827260666426597924033353927524257907902905878952232271317140315153101626474407527355221533541072675153966627709952571264486218971903245459477914497267210942982133119293210977342914813377516713602463365160125007910877447454501683812845663976271895480111083057518396920334451511018263160853596322046588290004134802708137839136810789933117856909947461569150706892745646963320959523296216783690472713517217004223094982538906741639653432800416236100315409098622214832888577228538476164017981455025872996481282132218195090013753234978381286137281801838506579923058298987314146376505475600316271043261985141206574569111429818957231018031606885838023072670494081605891649317892065483199933201296149528335282959829429800359092589759253545322965128781981002899251242828924737824753119161314681388110168250355727333077471325259759320519030627347212454516237543265284073088456368809090952934193182834169596942889495269251056613103248555470641226274974728283551595891500007313587182137867852885723109561304909902191203000011297097153567866098715641380453006712152020900520918025122569719850413574216910585908060270396586214206814668567949099800028612767430150073878528498919343962544852180467717166567604679876746860539406734077812579563565739873287636551782855592637728252589721751885689550291535645020629613384715878349508097795450278288096482569303036221513115840303809133347885624933081101063078067210276905668144355073455363192999784333127618851057016603406563499048945281210258557762207336966050360786398530664002921390622390768029674716098971975374437251789480049519243250079287545042376284577799901992720074530110715661599186220895629622497007827010650253125459617459001697984896715264235701662603401206105167658308985890534696964737712986559432710715849171237100261842970681684489300608758864578858242847957913250433092271982292194001158737179147757666956734282717109423212955054815771404761909419938669755632764786819702415604179692060880795199621938022390006948498541789417052380677161087454146249708394028936950893418674044946400176796441265045183499445011643566157293842159353469500776259490456803210416021599071472905215681064659296102065504893347119770430478170065247003204274949214096454104562952670331229968004282590683331343723619303935613744861817118540975434427458956146374821120620874530107573770075430364223128882445131508378298362582750226781845171024295542577048705769563193149403005616472071737272319886091977880825870694254642902898576631005059968483128079989983615939358440464266916793939156379578218235420711421876244567398118057870984694522594010948753814140645013754424867553983456372526075415015553267282660890695251439307791182856201473434368224181076686293082632762731387660807329564009383367493372621814433710076778463458047332099824486463167250935572193068751405300190793599516779948488585111284419920696664641298800409640789220800845396096970896504247857590503926135859275351002108818095703458397905762592720685757537038926025183380219155743367748243599106645944348417191077464411169844292189281998902074316318584647880107707972773683600626963582597834058351523335332865500213337247563883963883240575132235941192959458928522391261161990435508786062314604648159316861134374583878764807818293874213339051122704943801815701987477072613256608175157746642316752486936204605037079446864507887496285685771479369267687046050997620588078236021538957454280080646012396552191176135778487533772121237792767005405235899284732334205422816338095662792292089753141916928857975488951078939930496069736143103256027924671324872795861337679519226687100549647732603437033316283821478213045807804895351639288599120029562254122777720822627669432097065253762782432717586045517595526975275287444997844005064361697394524677033990389384661244006734176915597732888714453302057531191038031996781955831767499313088989978251772089317447733052585212001838568585599992681361108864610011338248350450618952264319537634065672170858482620529083977275346144840802053185531836591076795433181928422828329762380189981623740445354319459635916377472841367596535951084428634312578891110809892978242776581779244844620981941540562650485217417802263106713558395294528856757744514628544892501052090743092518937579140149466157670235364583390379842821317150361226469715033386824008980754185972955741910934406970550178299367014240129032881678130984875823284765189764963188053119276843905696684952265104307599032081597348460182871573569748853976473186713940664989648351982023618340045133676148307428941380502116167081188840055492938082127173937568147758806830970035976181153867492033084315137250502252436522849775432408764114658185534146272754513991313593823800873002707772671461993907470708384063149747087126167952236917908456419112026502960980197002499302407388457146803547415974602604723692174415817957809959009365812067973758821296555899221172540457826315702665111503183800007484139356171478504193405408964725809281972212206725366416191981536164723512998986007924443109592076458229450558863746353386959278405159515879085077565812380721011115973648269236929399078108165639402944162440214792894745227132285760801873852002015909271799362022849996215431921119344263479046139901346999467805859813561523656218684938387376813196488871231087426717080437607364085197147289101098652703348656206508943423094454570733280948255845634461988443409630338745821306314232745585283933994591231228602865762545550010282502194907055548577358920393499559963342429412064675303462348829489421922280777660462819815936850331447280803795901009581921661541416537878534257706955221225661074071662979611811384310026166765416392902063106075636090624107603932624031920928953088766004167237442479468116108243759057795080907028763706510622028994713928931168407280659760789463257397026705502323843895509994936711523087377228290267804688648067681189860844760438284677850062906596611602362609334905010780063734420143815906168921176092527037884776209097520207063652845149314251850812426213738645979262933170573252366611616124211534026771642377985252746810416672480848422627173188174493928905617520529387727477345994161957701356660751452404345829526260884405928788064318606469081412581272324606866180010697921365165455856713585077317510096117340897601984593506575149295715348623428204508668553643731377171494330356883064905591369669390894724642416952148387706362582399411764946222048493454461314573298446136151940786337389708582038488666368165994319062818764316979736116680685894668833278752939870395841554024405237164664173294239703747810031671409924164012199952378916733799838797881293634749925847652432465803954075107525470904084426326810254644226636615864595359033746839849908727848157064956953152377430501754186331096172650919505190453965861884802881438729661165171812073122655422659433903355848589408100184676476438393724450770730525248742355362811171702450592155171274535010311211557376491526832764064798439265017439646065507410709664998700636014141422348374254975158717928860343527108471918346114717921160064103158193320345722516911313412270327685400544829218334684919403110513529658960920270805978775308042456140779380927838154567456172074598390643022754650843235798256416986530862144932351131952714118383783237173070463798200751857778471437313023901285906915701829715926656521135897116119035614515168686899396696995153519808139717777698720143020553090007101939123851594750993474547353945957799482259585555058684206573214051889637248757231920167748778996632057314530113106709722098918269064739986581696550009509896077154765989400867275121582017392963342645272206178097419440925200650005962054457330985151591099377437815958491775480754125553183396943843747330712527321155217110624573806949105215626164260019843143269488944111388289237110174385813580764557757674153292043984468834339073384574325025876718474444925822298236382650322466044140745646304068475223492705597555237710917145046080722436415962130167721653080582412346502397229436533171681740550274163496949650265301035791736610922208589428628918052795303209179601659796802423556000530042844850351432077879558508779094103237675961779493020426626412286845794727184361573354611868164438919353323825725535950411121414104818376105610789002685789319644222240454254715082781538563298918137771703119108611788049670289880053824819235433637481410017272800860372336940735072739599435005375798338979601428634754405836803484778816222927829207662627367028174358264321519568127611334056368771828226548668906220321060252484571076545781380805226503178419203174186564590831250196415512846775226987782650812646829465604207780006002958786280136823104675773418542629472669822683665931946164672286157019698900851012562920969625240330982684854204222849061069468223989032302794326642457914050317486065671399707623455651678844970564295115301696388253813770364155810858286966094213693728541600208608890832364129266189725266130782999281259763415886907546202205233689360016484316443124833209684062653581659993544128033436923023445309744646417917859697565004685273801192062152056482781271375873358278793631361034636435488228968835406064992637239269982081870847952209567737837981559814990985211318057550535716695623555596258526913183350541940026392226657070912984488137284715472950775604528546858142098878066145973296254064112063398367037027583216171717567844512843679194085958397939795493598824445318300695039551803387429319871753388859059996117997830787695264927359339401367184963828792828578029743914535066078459869330555458230068895414344210538608386324511265660626265720830567341150315462440934599191452916006667061198610926340388822992196702563168545838625548041459601133805870164790832414312524296829575686379134541294842339436019469542556359132235909730347730257468518441773262167456778166190190574218187804590331146085589295733860063863236321245050892239292141682730729839605303918622429254910730886643021455553298835764636053390295798812790454220513860637830002288330860060185293559879953392156299059285940883322937698388367675008266195779362122966512859774081134211056626646572716143534453412648938148480061570778554617768394011641368804816117702622002320667366245989911919185945350466178524004807845678203031036792917308268043233944021595776473194194203494504458752107471143338645577497099036321143420210750605658829754797988574289546834144322646300557179297172261343359361313248387386052185005665257435194096246135001074213845963305088275736537379715491273985836165438314409378536073211716982305871971557113314152389579927028032240973960761469192879883769502105872873737825966695965866999933259804606217944446128890318876240638075319035670754717651442520948545626578932049288168717948935790082971121686931586051138278947421513116397657888507438465977745769549786389584016222841327742239209463475621028355973653359035238626705927784872803097724034088699140418155038584430904202833774487994106871710745291004111538105538389714033876115427292755185197746458218270345272779523587403741430484474564975281939773143380087071635831051247205062170480864534963616920894690817882013514768562694270729363650332774076126180812628421413971183288689578599619897354027184597486652994247644349900689030443208998815280896111055187924485272379613033584191422652674093113650563571740648738666524928476818026271330808378438455779289645241242143211601447456240517550087351808913796038714813071765020271526000442279313266355413755289815676921006193480232063696018288911470710116381625491742708232389472264327837353903007548389112586502154285865611217925750075277409690711858260970169041190420682346595462074010199167700925336712384823496265177276154661318890249049565972343665048142448896820786344305016710702027738956826056155144185201359410792993816462265288238155948030670623056922954109068851839753517013138434643305844229610298257270908405491140867542752998411813326261505981358177025119309966163607276579723494589798254065472896083635941992458123154377544094061500779513474140096223109711582276845617749827547568854712459594892539744223906038737360307448639862123291696439534415983212944581389184831217036790976684350606635068102511510647655233743026426289729409838234656971675057468080455366845459751668994780563657137088826738431659235551951814368892148147418460044158439965168103692514835686241735843067646280104715977437966500932113414348060417271539337296406005882349084309448301067447769262745085025557456774048347645999088914940351118581458183545829830359359932015044003112245680377464249216555199304239493156143952656448274362426955433496228008256626122950493244626060586182027806121210928226496356759646117989943977133091014606082699147103546493238669758635577876502236256938702134576923477879157516129126803726297177387651553521871795388866061581980702437201538409824228110993157485994449259033760049149123757875618564021269311527953825059899324649102915889728740693702877948002890098701512266022587908282291133014257805504714691669669131820397732886384323772479367948122850637753456877728752210999386995169107221252194032699816065453505319299023019643782783575592916881491542977846523659552555154612251136360900397237208778889214303159204838539233297602443836889944225369330261490692150323571391377862683814734364351262410144667661254117881424934095868107538924849751427755163713368017481347057882609929740353986747588369830513553831169031824582239641079991674112334805889628993984190005738469431099297629678782097729608411759801071617231586417621286452468606379089055594610538698214460329166339455265526643776330943786903508422051620812473731484610035358062812859394960852302240257811833877809211035413302951170111725360331623908350367290295676426398331829750722200232902565950797796850038493802121165977130958440331159086852484102857018116636082367708259801526333083140153794743971926729921834345409610995152742446845095235536377497664066209192090542368361344457371827041778062749499616614554171071092099573024701600247603666543909212267520199761152778471384463530186889935489812785648656131920050875649172046284024079914460048331903692670801257905565338581701473756234131927943255927089681062206558755037562923530367524002202058048972258551129767921761061517968165175975450056222807455507363722518871285118125627722484341247980133093203319702964593906681249065651615844045731679035874019875979693244708138699746524153278348357410951715130692572439769006907646089110960080256031179958324961788417187131469487779654255610750281078055214749487259068489144801213735013692259747547946562712722455783272200147627225907368928180186917425360296337848093908336835329164451121541149115239588657262753882937262395339715257680860505174617726687131382841116344033903285948885257334814565444955876136635283815396807569539578482852346019273046407550826997222454179091754673490522655018444493408773938789237035019190658850600905074801507252871015000973499190194912327644411876144556685745631599970435322897688630566237740752681783708999014067040901911976375260529533854659120065854566939508206884279367867897727350194451643283641913660222972982515781611418164341916531097135693713840367884637373596684678450576464953128859355682237043358498412689908626037919135901155854958891099980519763324634024735563869009864829052306433732974136448618462134325065372772394756299269975260763317970173266895325984826139095153529698997427575497329750826253860827635582267971633762605948796154190169647650215600784567346963848566970685719932854023108168124222037397960395726426372967436634224252420760660341667017187973511064463308789799546883369514100418625242446270075155264847376473287589482032884296382841248312174148170040770150420300137108755290210387244792032661417236312812184635109121920920799609077956137249744710277264058275939814428905376515675501065760282502455998057201321703472972404558601875272440781402675290269729179270646778051641083077667668961334022546566411587331729866213524177460910433605443004799409737294557842063222754444940253209743332384225178136506868420463180706660499047368346781951227163247953194552409850400855193458845498776913481694091140609777487100777124166980701211197510772501502267618546644394448095022735307737245081572535535232797264305298266999622158730268259575370528272520709132310531047427270573867612648515388403262294230043136346847993620191603052769766975304415363940060987114548917320729666672268293954065987910542160451286760101766081592089218219860708067923840873490015440726706189591079501433224013744715066160973777043633469029112336900774831758633571237479244929842362031365448634762760086677794707686552524241402206149886635368949360886943121874043954836004564601655778997599776437088888899771323837375140157606290229385796883775753198726898914714612916013758825907062074194938995814709704175723055635835102836372809991336871356219049174255047750224405352544165784941074297774643577495051402345422420282920758871928009552561039857075278343964870498243640649526564080747439715083755272740061200294804531336480069690019877639403568295282898110957849325756093886596632553867699608801871603672559324941755345313331764968747819253382516885677197648837830695796781207252482350699091731764002448255887699951878846721211579717154167258477291535779711126075221798178619434679435284502077350914656531737491746990611146903552998979094292248440683823033513912348763558920484985445139276834070629296743866691501319318880912301283858154070894240586087161546343765067501748792679769629903199054884725880221828821530924499484324382634313947434384345511522588354006828139154736176902923240355996577142245306071766896123686385463147001035381310307022177113526240059783250287611257694290904623411952908830700581549356796928680997872476490159189687869241018132274600560730907595895422325085857939719507375873163472538398546530737221338444244699320747914451038004656007433046581109363443722728868033509941107206458866303473905072245680568111342015706591901097909286182767155139971763996127730583043212475860610911235796512157099585253472459885240365927918605057364304184778949098469254566652176869073189487878481268709637680989025677375905457508026860236380304331038284989660612983936938088851339954536342458353191058598869536928985738113476109527034110132418339732292003986960857480553755281409419381992771395952931238833945492984837050808862726014060312171479148556042549451052103730046595962814529433131091546003860987197336293729341810308437519366433010390509415233831621654322486812633332807185869014532676711309489121934384188776413026925118706267087643281187901272306839808313925325346912517918101286324101089173192095594151631252747766161528160181398467386482166520404636899735731130805288564353620069483594385420607932469987360316857576026134655487805618772328820538825328582967890769818283198860310520979320812302068455805985893557264959633542553311889681258246941229049760919706478635786468353421055430160191852552933710694903580487864716140219166123186668072580424880944463962606880643095117902439708009018894759335299801262301964114198297733257193519093803878141748287762951782947966323896964127408151675096551763548374408484380217639087427224449729025212069641506863351870509487306725380248454705715675676809122989778886196341650243408844945189755297206941490855770846471757208382217168589161326557523063716468599130242543413517274111363905730634515548403006667153147283705577993840339635068142050126700712182287681130457538262467556319379400336086164227636557790063524164110102743632109829111357495715942967694778230472862095701647327319869196480141419064071594021763057714766346565826814156645075994934116594797895667330686119785576998674521216149081591392537756520062431853701217207268700078799227710322840455198373373093474155118126555619464131337693194739057866053720746373501670491866079126692487341329704374851144439265317741748572334029177967377083646524015298452662622066238911183370540209519996896719547239070579704377603950976518637808500304780653895395719688094095632506670684828255316393906175246385417686248266386651589342237796004723762212361270650325379687229426039124097351461558587589257805862639909980257311986155758934766730531585271231165959257008282390339846188189717549420099475514540614111585713037632535332788616523568375354931221039714853711340546781006889043533099939284876292836465321622492780492339706136097405151213194399476508842681067106219962668948375038933109684711444195411223049568662016514452497830059349799162245784331638529156529262949675506715403716919558071342317708108379395217724381007941251638083560843454313856428671627360155937673225800002903579437054914477312603917596829235718203200712594392061957233249607768213362476195707517690472278879274922798633435118404943374062886523389072003991661676106530663474046968898352315072770165407387659064973263984837638616823296227920010958967617059876002656904601089485892662736229810294122318949901733514048293893513610664129294545603392514754157992235575048411276437371555591398230163579629032349970764230534836412796531333583103107947342832769899149541707630055984439504517740499571769131527610773596343018430431069516027308431250862280701624755979491041484195384169395932563859446282069975213197508268072087351069741789241172598712503182432433366081157514368793942775678359908228909112612674906326817977378782632419859852603316323176166230319386233784565201549443253246151066306607917303743418234073747050487982734605212531376773825192357929752520410175002327974281940143214374677301951454090088896583548133746295116242102916105471179752835966295988958462811827781552658452821223917718822756832541088402951309815687866360258650789186400217139056972669019781683483006326050133729144655078935045688659044589500687622194858887063718118307038357704981479818954687342265284404610688136392857467795911327077360659456466661435465373950381643227023749424938661957892163462104292911439476074472596931569068044360975467994440107842355974646728879574039247301337942516370144023248410785326825377294725448018432507922759565408892170025051778549099721634747742653005766167219850166523861148627396515092447985030401258570586817030569045825508772102038712424261827772256909063936482569291105759484124729286606091326954255767925320429118353417893318720401330912099519456705341515737138796890795081509533594086438152159677605534593691804933809808668503018495500656616506979964722040800102244187523228438478875970265068384627860352786671977749992678559420001928671383982390909868196997721645479255692378466052360777858217045836985423050126576561851072316916313266895516812877200572093632043176511835718391343364272950203792903950723025519077781099429242758750602316146920243772964744907324159813294779361137158131787634710973412273815160522853398481483985399480278311330848662473242614098670759164474641394656013432636726562119003301724098928988403086122779479354313723259883107911218296257256295610553675536787866228386325337073379150945889759379665448537686591601225150170802976090924839550531305232951970638446282417264867105795313084372464432740614848036665297292712354393096051017674093944853908021235800498549517335645265373447346301632452317411764212455689433910720949489348982020868199112276269001285001303508952743421389655239719204061813731413851221990007047869538433555072555836963244498717014801164551518829464675131074698603188937208768225806923396806940909650194203028385169982917132424297702751917480408562056083965766931637461811054242628033184891314857377951866434637896723422920289361112148221347593917047016262575240195403881745539979521933797379566929197460936423155568217356405091882091009346054546730637068912096271118519164037114788449774733130329354690257872356670164835352771169110786493523961626441026602498031690562192681114487969342307386499710129972473215006792337533630235742722996087305900718272000223862709995569146091712573443123651471246295657943853916247967001107007264941530576862595194655049127992379320862971643556991346063699903966422007544018825909757768870504110972768662854924696576559108263261078969973137741769742430051025220248401643836479627836940001153441243872380439869499925810479356993044220155213327791405343624934233385955955372818246372356393317222875715135723385435390843072272213914697456155682694621099680051736351879345779045616229919738594341023495582498365934978012939896742489870546866568554906764292357110904177224008837319203816625637747512318628576909463369538152779956235845142089364572081391985177745428960132753310716008166324186989032141225414770390649290378829706744576462438446509315911879024432557685942364646385742703762803831609457726800775122628255835824727690487312269388978299285718492029702298162969030607775502766546979706905122050196302300144499802759538556342715079315685930971622723249349422046800810421056602280996686948366111017395530592213793311095241779446506333394050708707998871626179812588495227221730221826998799013671964472931285396388326021558849410080092061657564872774141100193181491407351132362500231631574201982863931160897512594544281536470947767131754058418964567002038479011902784507315498367437674154574906849896643297496193763768330068768091588781528215926517662778800195965174710879103249562192184291437362750965247894875856932132062393304702445561022165872069762419335967489104514291249476855736011566265002511127473964127851234339605424110664631251871746583441194737654928911772719912278811611784611043926908678108511415150466512357432724032356103702604204515716956270395049607672710616412991052678715762082254594677738453923865730455880439875172377073401454202284751261846445336294880902067893218625778235894544750062261033463918551377478992485903153978111245560105070419375616953874728010257278596382168616425719043075471514106215558556424057173218639180472611499318585490526914088549368186358792143800912460343514170163214415908986866673685237479259680730504694245756635790283557479459674769176383222225953729898538885074537586426330506128474214321801508589572694050665004359541674981110074008618512815967924827794181267301284815022042839350646591466074976603197201572711817027975804438640502003375154332522518933556961938966245141814644035141078100547126880873284313010515026519167602743821922645410406429333796505470595620424396067291237311858644459975666899815752029515267946166841973553175994448240836157786720534257389907734047178974293379506843516676843631763386873139733043230891654214448570402902727213235738843092704465795849121202459088127767504433201483738692752004518420440228636016671058021680977291485893671608285533422328094339633256360927837449635618492394988371958472107254702647748994271502718997705573286372956272669117141770433364605338254239724296354345121160835832704894634111816324883879902723075551768283980213452834582852918436797276949047205715288063101720134006365798647933325081759430026842768600618919198065520232696169816633431058634749321820482667715789391292908810096990487334175534047325839540130557425736439329992851676905152554984957632656513708141834490637246318584291114847288289381437457135085836680730095738653056588664028115859135591540546552483458269565694363846800982991213919104613883820100782618677549915203645892523543471891984786270706254849789352216570632546127350531477868268217388165219114681109398843041009889380080519041951692500788207126403806815567498166635733331889841781813341725892625164308588238626536582457362827944573879660825932277550755713857376996428502173320161035745469739713227516563636927534610037156975733388577276058595324425852457470550937873454892665566728494771151175922740799684929461344133427053321228004089023931510943067607448835417963243487487052516699733310207129793565572892403394371295439850239375890117617856001626934057861309765211837973897849560509036997443585877725068383415021728159210894637301439168929466789846848478620310107212912698174961452147201309154531074551564113060939332732525759116915159730098200834925292997429621042192055626524745282668109916519916133186178438724763173649603156606926609642816468129511189343837263857447563811165470685800458803925469397448396365110144607548997715654543874211888460392122328028389360028441167563291206556813503388900247500926167770960810770625391456547113416065489024077587126451130665974150605330153532652031856941352999121163195204730461059977422187257938809311910752875671304423482561725122958106493456244784730008283006994678193956871956814401413208264794147698724107280671901382868765453311558035485879860866099173459440363307148795091390809498540509702884217434382391543146896654531446004983974465097743164640129792935647391690195758799764286226907062361345652927246220590787464751431998585354941118368812505657058162441124581890297797240982137343112005335225392141790412986271101646356620626302146170313590190414380257480051402156457517845977619924029062578290769244111277560184791147320402546193312435678144359856613727857324283143399215086251068247923600975192894675269506754250143854118368454402997541163439100644024373529439843679339184913577835016560565260303730988625019106119782292765215679833255326630302240721380204752052485327070090156884296864318916580886481262977543527247382877201442026975773891785658079823759215378868821546122331386332148334060220614837221453998657860452368085323380028052422766522391612613322458917682977696600369115116929466456984731555008173442324008371071427340747591125652446385735498250440433140052996509926594586003512281053412497398618569308618550148430833511216363339986371588986557152637146313262184228290674884349576852577882588090894330823611601078163921983842887752385438290595979556080156872600959911840648195853288684726335717156098945692769020923883979054130645513033398258308693502875637378776313361453035995919749526657518082880042614909748662317415754469465445476431335736467369365229201284234022337662175396399457711551559759916967355055299364039829123583432844002374214046459175360376898417310241399665420811553581218878094635982333578872670879257706492326385236718724616780723006442263601046779741087621450619751947939613452500405760875569183888504012506148403518792426402114268551722169511321514560567693816845840609616433330302952840111747907882152887850679265720280998235796069874297884288133940866687853022945887294313177868385752186185876938551733613758747915003250009707831251528264554963007909419582413594071141499964257019234389485801583260021781010391894940478052762702713480816174914972475411809346660054718651435885746376637866348366177295509411468196052329539103750211732365915374003534115833415853337389443778916285409425778614259560946752037427019299907750208942665807696689971827039962006540783043205685277228784857212759845374207742344525619055010309535700916904245401000206532573464128918677893036918699162423707068100962186345137731378477784092763454147807834237370380649688829260235322530414901654076753437158297159257128664386489078542743110329856777500068024453976726941313810188038858639767240537459056935304688969261074649563157414242890468497510423302008789459408457568422471805041128537845293271598138586631400476652952703505818682547940984510764690817416175628417195923864232151508925345629027212024448063299952493685128171557259678080042402324067177121488460916213801070136272227218177590927808976658295819702144705425840008118922201566909820248542779078472757014954995095702191411321261461747043427400697106211843002221177778968290276849577401806702558749315568225798897059437857609001723068632673442338602800677458612111407264352654277497679582030725028048723064360750528826883749371815002025718823928738485402703008283935643493065630638625135756453462346932329085606927793732401578432461427429284286612576515674617704999562760855711762421658206057855766967388333486989669372975553358498070550633578219700749670359406396437511366513382694738912800303550074480583702450400044195652931740494918705319611062115747241508256018276964900730530270126377477419850883184910503917524698069068509354500124408748752103041824342069243248525874792918900500942397965200131849629829935078364209807490601655587248621295376139925382497333529148105488768393588010523319563992281168285987731613210951709833671773566503180964405604516189126410343002929821621312810867412347932381939034732575108621369058273159310109661066335430512875988208351400315027206325822786223078681484630812981865441569719769321852681060665599744727636851570634106142198926232969142519352096873695564345757951790478520102926822390750550574213722736577976875546445319878972318803963300734353652240098424502108250750797044024426701031502289245035270455435981388049863474793238931795156071838738452212108634960627286458445516554635919195690257793134589025077615907779528806617215464820596477781760232716722806352147583975121399994074871774307954604575099086333485252972561002841110919045701996826184084498131172840562372193194607607545808949523712585593240582375742785778082994897098566737276372383571981634609127823829659016568742290228371108478689112740317813954084852811897201041331964490254926995478458260097121020057005695447236787235583771524041195049767400532031868016804822683699188586360679201319271887626578477893106775594913502388152937758987815544570950506271557981425094435415369323354318689162409896916429735683479144676059282316577776339983935632905614483946084406261012279967019734761154467658561961929876885861913346245928423837266340478040604786333147173153568107896376512039450798123292810747952955823689920927719758020957788672718659786461332225027845619750707378315306271423127218288403627928658416230565411497582889451058504254315661650873053472659675241300215762962809125621820166180566609213379848296021358500133982555374364791645218129477229526969397539429514983702056001345304400688543133234628685052655511610860677750380158165438489155581703277440862246476559446729514253615124421327454103811060171840450280267321316262538362890036779301692558149424260840707410019382156717913477952169774505774388078570873623299391136071636333747201537526655939558597182509421639666179899946188406276573445335606818071259176882480086933680975716518530367842900916259985056578759462174844938031552641833002417347987141144961332563352590141656747202041361622585524837875545433482090623415295746526717165401630848402970676714447953025361075885631952631352701511091205233478364512579096203534262747259028103065761799504822160362445529816648328760286533303789028706254827857522133941732211672091624406617511566115210869684806496119675883337104957253411201959511998823007804920137594855072854664576397145111458245536439695443817360107299154743085897869724947976736502565363436079291928845249605571533865768465812181108859951386874105762490551185636694792395804454671824295570973965830944676685966493639105446234550081446887951816293572455497056683909702334338347475918959730704056781483439357562161368617399400978578460812965126646170603080892702752742990360991152549481250755310756396208651558530739580242913344092657958944153261689374701974256454077148709225259580350016333211224481362282112494897807809499079594639327651105116844719912006138278164198744368398641199272204169583258478966984887666634481261778932710927383716670361416817812134793655605113579436013362623740815670329687819409403336166001136768109408899283811548361365107391639830269682906140338428773661871352456503241050548242944934125506336285908242387831288986533239274959984068799225524587512945174307631837758070782147474157620443131786441484219240014542055937227742909177516849549490717609404418011831975186394577571495420515606571173053581142568995579523207929728223301352140843121391024127914707544842066641693356348625869535119535993960946776850819229667797775974264051753543137395151644299695016264610237876790294140471152915006244197381856006002153374608390964286651096509999379194103476424713146867516236754764743961447879781221744377817617581973121954754566051762911163183316313287910925473284635408202189676950149799053149369242466672079217648776780562986121757808355680047404332981226572640465130455312173204810159422871407093768110790344236533632595254483226400613408710828980423687603312078203545063556290421899370508012769259539390038487558517412778080119915724978750676908024668551427531509690768836890630219309605457268337348105826367992190848382936279479987952585575445917979189486162150739977843726202885957506876537050783434049775447838164523079573144870755855703094242058893749744565610979073510413001108821423865061808935814235955151477645766310463066180545471689994467695102670971408869361983451440433801050194879838015862706204824267126750807318296200684140898817589760435537156137641894011073058905519932360730435195867144158573926814474537511579791674513117836183948965084889355726732578651279768588113117081976093000431736416029407148838283673889249042574281754365792925086052221015354082028084002968110814293356855720449186427234157470316363048007928660459844666142076400437635049536107116662350101664269708913103891865061159658861864185016042517406338263423565171289063939901169105931466345476302962776653696767996594128320625929711058841492113311491772013066247559588612002424211834012271752702388861787563930213884294434300397100968810314562933554422228094253026384532198901775691510514526357536784755695964007556659847343401295246749875727269591278971858961839904475646731348298531293424197091722131412780764216305763867031533915054718314404858036155433011509690890406907314497600506602551917360138730060867165335072830359033182298602265743949791908551666334924286798213256310648997875561384838089111674076044998483828403966322925280284678783891966594358270519245216783911234046983531387735012437271524590677426150705936750392355831955439760567767609755415759230983369031711986145553706347838010455372244415412141768638786982319346755224358403313089790139660816475483177701694482084367549374892097706389398621695168974535413971215563200438579762434348062285717967845655091973206763340054178472348206680192508117169170091780780115520951027729569844554833137353837601163510192691089793566642880921897312910484549958083641265488174535325487015643504062668416553153398219055745082950111253737575670308323081699432683508666407320005931833494672167710472735953446251472456991833977495118622876187923629234779128516480094495987648791794771076784117219555991797939803067869033054206354922574110653874488211819917792695387016464192966845366677224985026012591833471227792744578351074760837715981637359524691310853058495540686948192469192580918454024388549484092829591027775157817756686691567246044113222375874697495001015203772917347738372560502782737400128153158019419312331186284657582399763992774286708750862032157372477121534762799671753683161908855933735922153834051182437971802299006205233765177930157274125237910801631681657774132005371489285920210944443517060710403347412447503123966029293066105893146468926087117531679498146060354879587936155139469943582156234885845173110662568266702284696827555639833578753606437722715567374343580626864004609623022907950437593624598608999387408577738098697587871151632200903766074805991798299398321295240142571651553715249885104062100922143114255532797686383087300277279618024565294938360015708384407374590144479249222332882810751784230777061338903458780196711231863932456839558105332920679125545937164671473815237171352614241354093706069375745760001126734829964586067917245480859119842510496242973788109965116809497980445798963314946239179153498353318416715687378573417483145642534681159661917976549044122044141930177500588312137291457980639916395386381851692301388786986156850281780839340276178306494629067649313408479352502240837232093280787512257720234057657609458596102236270155954560356618268779369035587632390805523296788697372508966294028420655840519336923519179729319309512983600028796652956048279359184249429790345439758330370220084634000983339213377502927466920979585970099293474269411843605318638897945616298601434788118681187427653228313074390628813658753006895901175199659337221847116416079395191570488342911386167608385060003712332578486030717218148636529378138949702277397059656951400467148619128595270434102281842352911739540759930552820939476473691149458883848753736932470628397879792665554057113824155738773045862804049529321268888794904940389734031328824477223842804376726697897801423976438270728204534178367203649524607517485404795961667941964716618867467368394311292861136065982209080915213609002981545384117984724075312543405104155710848796017358939624677027932643177186620059524296427719386038827304635248706161453543167649876025679234235211927317826497448304204828361002307388415333739795574836140907509068519271546382160096688263053368834475192684775770494578767748094465029179789664107073198837278930841970003449032077687515410876845922604413578722807681475436057592005289490267121542032008964155354769581395554705408590674313383162192641400969128757246818911312351839811972149662950658949006456068404844356760488312948380722390089149179608664062349100953580051175960955589288743022476994889790599772091703619266615872725427081155496989239269708484804571753721553202160419518483451151535479324051793383874692642421451713371351441163833527123927273578077542834888361476927404187339059927911445972764591193791063352076733210830531303623044927827037215792488623172313275014725291976877084781094048203899471863563722146258934613486240989914825384041397993421306532554117410723144557541887486088884175386042364146831971831097651238371703488068999618582185770896846468812069728071488872241326109806042891995139305734905236455822128015998399986190047708211291514829243910005178402003590003523473368872137064689324493707210789722677379547174282647161195955337936301422660264118960385708343213285718718541785426452080348226144656135717117864965910828665234186922742894950361943037528167394933021773951492669320073898176354330118896597371511975050385621756164549132584053327928365507925325372335936858721989238944840141223206438231903253165971197775741735344386552071383957138948152399431570287223942122222300676079165856300362791543976149004370526709517662108950680217126796056101310225409407173132988452259527698200855579818990301887813669157481595961915811730683418421459915121881646817789466826363584396192749646444489338484228651050094441340367082944322105417717663247738804123502262701035731444370946635874721955302331230996270339718994332882073213135438146312402637499260970288695067613560361675556161359045387121497985037942065682410147088723231717813734136845274894264618186493545889963045544865259001135836836008941524339670036120687245171358856463018547756403345997538702037542736718151031411787364043811067477439193496213441726074397473312236375116215741458560577785000888157412060035730430282994618407027480075695485632593363179380965709597329774338164947106874346358141673302629012060821434745091923413269951452696661201913157943225120548586738172787698694826663284988478108234381189804976567751676305858015262252734292409996908579649577621085271639597209009203994628017139553119484270616708474018025875898413067734298798198495663737546635661409612998893139256234780123294952792441792207387182476314826890470103486313604143765956127051847025761371748920083621240319528823975235370339494160248360832786190806806446275472401875101154332362254766942562351455234301261022675257762702274228729755913856367374988566163683100600465669989423882875857702909361486466401217815392033023163328230621856299699892382194540016182597240916419120160578793882767923314075265306603668159766072079148795209332819937461416343350727606094645319526756753258745134158711615361266115620769026105103119640527682208663578559292033831691365225326067608435824141225546775223926961226136914417192144629204656296431065209663776271252855230360173018544603209128985567682636985023931787524370676678027014366687134537402456529315650076953126454438670051184802905731063342923374186617129793480560891397740689062092819301486903607412162654041745846852448977339172652876590732745161960722966595301646164033821039461694775145123349753911616556691956133835683341811346333456735581766911108402525921761110241824365684258144125791297887813153824804639367676763572945484812503260257484288076599318619397915458251093835581266230444823243600666266035958973742865050125369710439895459313212138282305966493080267455558523589592804365772753909025922965346690729732463816771944999642027262095105069214938834649177076694764797896452272055290055758263411643687565109144186082900293132455107598767612243858056757591936779007961894604653778430860469845424737705875997650563259885486812127509731472323597606734785151669535661057671280557623818848859110590175007153841805106188734738053925157425333076999205207256487729803837516160616945956672429302042310602425660705126323881198534320049615420934544294574710169956678667627433979062812329431475733689622208640810677641523529710268558678471403661071649384258716573806036352362374160063278472318260379327694960323513097532205959901111845549217018534535849363951862323307052615775106697047432518433932676180265718515658134929271490861344587482778417833243523680049615305036360126016625826179732869074699239892295696137791316745110233528703707946748946973947347010065170719062676472658826873586477361529330117807570366751547032254896797416398820380919614819717501836547985977375713828852215331513257793572434741631419814798202677980447473525765510422849520112114326953395924253948416352986132867075422263340761786581982712679126919891796617397468959600566736075864205863303159613159993431285146886214823809984603095682898577617040666279022674278008324380018521233611862539307627121593110000494320187714777093982670586695383595710074142357418480746954938853480589631619817631795177160245351779333804179486625786501986223445744872413553602389180628782120802350069592866446114028301495121576657709329415055175452660554842323382592584213612415056343144430224900726828279401205935352148845627728703873305976134992690097630973098241643780032475375993577554652444930987356429489546715873338410620264250642253844094018860426229485003878813032492465666697955988170698643629716561025306300220892768061764466070557627747139440418075293595772720655088011037142927109062008373644008478142988952442370211032190192883765474072307534044384366490179327799087161873905752177096792717659507996620552780382786645282020922246168131876736647392275184909180721935094880488881232830736118465526107220407763571713736685734441858168896213219207189946173422393966010359253421254195416802309729575668624139553638523578928602779705283901414669614009845122463500510409455079442986084623293404487803372881046589917021410531631164275389279984287258632756938923508755015228088346684884916621031847045377575608600343176641744804856900424426748193133921428439518241246910167083199143247559078810191910865992415898106525073315936285281740667169244771961084543972752076443835718074646532499878666433726073857955755954444764051000957872473528485913063858637158783147160954729861411121275789010171084785592317136108660429086759912836244973784034252014647493511998310235377146965551088328354168158420742610543640103600962500529048088338001319443213501610311348943972730818889307971170156445164243242362987337747943874731203037838721724042192612893507436079222494538765705103857512592784757134653245336087387814069066992657391216060796396214124967207775320056621428406306814017519722697770636926053820447213742290183886241874726240828360122399081873649448031625187805724494463938066058504780506414188124372934841077046547948153501859866336346766286296755118707959199483891529794946918631012723957670835071635291346904883231609982603603795219164496951904140948697044083131762733028697842396300861316482218049891117978358718560306034033891199312921129028240718635594731511271963031384134334576089679049394459749691933059559880864575918371397691972503748427467688720266554429389518519212764198665539743689278895091357121330600411601206516607406741355508603522698309746997627282474290745865757296581885992107010154144268668366406949084860743107341569044222400895297886937770479774585366202111166078659986863916494944187812505785392450946689304055435347109253856807981142455134040311337725632955123478866444936365357291355328748750136699716077967106013115653334633229112684758221923631018062170658896598192846299435402082503179522947493268816761757893061728705695296840779216551958449707830940537018242321869538281934614695070372667339725020723515876353969580514920947858372985417217153076978626219065554827511874317224021966494568503139978944103236567484347809150425933013250876700721099116938113419709050132110897235955513833166591586624817607660397267579719431934026765584395263742961586954839912323797925632777178307178873953851866403561782278995430593206460753185083598481266234735394572241566811399991013411282068030458401755183785869203583071864988910874969206258082055801489519344584650468809449372178313825742703995550574142480373912241982677764510777874221441724280763646441998064563276871104161070900201190078618486066224319685566200516731983252822319334728454276509262418016520029915283751730202838889160553047528672625143104190615977617641285822144167506855880595118501930605196303208572702860863619420608970928040251251088346011771833898949936314446455846903809805644965319486404939172058023364968550563124876701652324534618268234100024700327756280112625249075772596395824571097107307233388434712218137763935751022331341798893443634502995475946934246752162579134882200991599981279717465791130726327095976785114208079749941649914020670365225277426703090666538041586538050434708330256247356376006079273829920004480817553995651096504475673621025726401320619469656508872677392400088376565172693970435432813421953422761904233646911319723116346960522774600664912601350563350917756382010512089704474860890455068029555135690990620264138023082928111625853189815292001303914740725348202265906700161863900270070148247071619230968401210571541215800053637753744066104890834629966607375010687952069297241263587185960999477492120717525820043117097251206388797623129910767110632906966345337943582205762108192931271911971737758917522419814800258273552350973814169766043537871601077353502917596790353071287654535572937889513873012979362833081917955439745775433407485243807366202725068603552831981497939141777932043426109747556558388358612650469172607264712191199425698447958362479169794450392877651973862182817717986119291746109289651685653524956011491371267846846954199370434429840543674687034348933914420668719214763604116119500049899087494597033663562283438949144076736663997148087058757055583544774761783918535039857426031284882780198861225640889981779986751926280046559921645645036225101999124568378751457487356307242371557884302305363177372483149143233259223586796347294537780641709948409880812742199406849599288627208713585015112934365220666055121520736200383773402524660222268968130650794275657486211066745959661273650193105710746477457247446778501059672993848940025241161334583880314537454435733905384426536040042326273109381702329401092557528582579634473961349921739859903981217094623301417200121977517299978042669172082580752359175760457021034208688699753314242148311468352189734290834288931685776063833857812860208064462788838351576603886806491766283200918865520643727882854217988905960078442370931595279303970647011170805848584459615857205863697933288832199816950256462495169958174150790645601842473411762953049135134677794940533543899711923424515098861322608283658051024593626992216544512374284544197367788562156673891254123578630735526944648065540928783996998066783310319214827184352251561818027844662692013482754009104536968542634484356973168841819510343861576588727144381666398009643193686691277966343502865302382287726568306710198381282380995226390821059618979015871332217899283427851885445175572417716108059719363666059394188283513252310936361765557860791223967377650539583168015223267917004609508546553840411639213746382847311406567415736799284899608303757524027210761086344823998552008887299998749677899006862646726814567418182250920283771367849668443073808130887819301917290142095837525209576680378694783718378616839387287389844338609279782888289378197028864673402007587370738567834366486580348624635172661405305956069411490706434959659122901175468127939040910795354446724279098480004688036913525028310376113937377558937258414356201416220511943277321565370554754920022015710751603689610841303548410282258261324344644116202568759279517905084851723047725164841965902531985085831797632174486776910666926913634066434268112868093528703277601728891514434595297296436511276845280224524827670518134567407581101810460006970159733077229169172110691207873716939531543854469799330517006637108177623210907648470081121453097078075410823406636372675080411065234978944673963276162087887125724637696609016069085862766145730951056908392403747946969956745254485032333220560033959767279484854428791138267973370185713632904057960912736971870979435337543988058416368323934904030281767850113141947719371869682683147266096719817042970645626562597504548188840298493855579984058350086699222967049448439620553932818354681606764271074670988250424091314683823798101245634140771663642764547598152008458441061770781329206024256481924705285406354904532786464839039996122837463763203369194082318791991700589270744363053023978694799610314502149351456909450979823195378256034043639602311205593354330589911298728874608141021586138014269337293926630519178402486740215892210948392768349639099251925481089278241422992792141114444685612470739176258785843871796679443232210521889755469587100860530641007724662317366699569193816173906666366753383289564360670395337917636206816555411199855565587939499238768591157107835316703161635598650518849362488930083099515911554237172124429197837590683585814082569581643898810045940675334273120406351682018949441295298852701738398784647208042791530275641343546545656157909147129106944568477385298173992127976440591507658404690464655637242423973526799397205518508030415090389943928158153561176824480643626208576106770710303920881249659213578042168655945127940104528593338794026786262270772608073797459117000899972177734153471535130666316260231335959052995278788631870734313475949065070290628818412587845916007318207365165217360828151594372378345883131096278480871347331308671394522437410677284915613639498078137775096313299651108981290094429219194384335330953226162061264840775189837772021047429166951509815109293731218113097801349503011871488645144907771565179399690280972625369184257841092026952169605264535600515572446023138322260978391179941908732000074763623725868427148239710035617930751322188298881164303659041293365577411095663374807731800183656378945963741608017230429178560446865526471532113685225887490257621686753264127930237312032851085697205107611127602590833786430832910606093386316223961443360020488377113438497051189113978116581733047825473112257589627512011677238823197542453507019579074787022347052951388944624720097969114935671975363801343341784888896460644832582833211049855192247097553062169817660546286955419221119136314142657046200459367616035191520600139315430033817002094225584151679864093032903024625569648435508852367037961414232245235469951837422176411703675657397986892109686927612141177504827286695481169069496009475787967381747756109177751852076403970330039891991591016906359115982975525136746109847505958045207754382799558743007229678527978927017487043862881636250806180204155415146582526861443287472337902052534491864743118327248627172502092867440424888935774496694710411364544690033455076174094621472923707679022105563941937708245047387544257315665695384662942610292941027153846659001998495281810500633101921435435904932114678473785407215493513500090373983928812631266670727030675794336863352196792226281951746059968775966246575726154154299046199616780256630777415490855228569546082137517467409963193197868142014582281767274196485948117042418312228004186929912396477334401463306388801101201785678234350641588216369445900363436046068251084616170271905506921428244639168173970759285024410453369251935430563026201240585561640749662578555786975256093806297847150442595652872973823743957349367932419292812174135713055402182350856827302665094307649029136329780031658712995006131553840881460771181011334878818271256282045942463731324338917057188169065941559399012023042795351713677884931875776413674470296754554261764433988455885474369690692197671973210333913275144611184844129434078296983697163642832785568341453300055637086048441619023662983921778988528446990488847873469440193432795699617089501114289708694577969018407339477192337916081307956417475083719881125825973106220216813964806727686914395061032060979925395669518597408616229383111891757114148956962148404856664096094677189577161804629308357377355463046329189093931839381212414590599134232210400996926135545568258938113243757534516039745371603039740093942783980034105681128782754998641614344893998020406964411681788997324834176208302002015621557251895603961280909240479505604131538510257748420216461121391987375763663859347977502355272183367313400798835634723207919035631566179399955527543521793525827554268834172890199951154231985376321077339606938556901979389574878873630971449791769261237337569658826244126475307610084831757205400367963086729547599854089351825499215082932867159614154015956331481698258112587812911308618309891467419363286591865973375201798830064190727666921645121924125931015982806696278348717338553669148283860735394008871445466411966797077363316683544446303092508934808801108600954374621172067271909384244306989414787944788600531678068885384584958006311729654519421714254563798015499926869073571187833912054922058911669957645889196136634972492909620339216288574664407838058046686563630299377938744537949399417832773551206928250044409792647505307927193919227136858726213841801878687084269876089278806878028032419387103212120095356298217605570126107737143603865898589001217111715011850024255855946859908796282591145373379733188187369248990352362480580293173237059517297172344781397262396448533143008962259154673759594873596526584917042298608454900005730631791886616978062153273625942439791545665476454713019413635188350239984390677857521412231635146570420786818406804151764714216289992337473685819246446315042432521810862253824615203457472891685082181844558985123456470786904463655989578496135087077573114119009529767836350962727475746038044395103999908111923189865906369973992881205341231292627167529677338521517450379264865239712656059263539134892989806292878916300414464782196454866570018818756620521631880651546708018961336594354928499479480035769891120746047810837480627567085236218724353803819866721058094631719592664667133842750266423287296002752440416723263179559717665450302998759264328866699476270716360852444405246292705946375811200503514681237139546053824180096179438670509916892675281055128578573644354929690056759147041680318421268754888148848699449953685989836832091813743637812264031176999334681603422412461511247566349007566891026734014320322396171053474756739314795477238418467663026398676653553300116178692876681455036412529062169984660942017591199374526460778847610615869332502736280385628028693800664602896807501045316365936107347990204680269368318216090827259557602973672802790409759313962589215864729919804976982568186484009668651540837327696098218235340812793868009626994549184129665897751278430869439666223689034010165661935283788784400323899226574437961086091579081427737528928186745102841484288099600241184306150030113460279457750129221672062774989244243852380778020470394277457642278066403141770675411968149289704328670517429754650931073423710237933029342637731204221296785543347724250982008406180755407164013688648533114055973891557956778924356283194447862317766849791873188373130473846444373643788146942324131917346343620615481573800599640089725714602590298960242174399321578647093463029944104072221838738573246217507793014352761653986416176801169163379340585396761269738511378674678112735815351174738363793721834525716528837696150178994322344322977201303610357816790107712669166138720031485768894689889336219257570514229604168469078901305889132999738733100052424875303066395091783357601013180644654218000674200570597843075657027166869892695711688363721025417282053897123598656232599836565109231859442247450384711428746533334638014409413669777816101055447800986152048821679023760456488629847404844385658638510235852564432118029910570043162083564275327821960749443211946120448261575021297542145954176929316070611740342577144823602268444256056097614931575535080045555500370692091292862334740015634983015174952898837116304272062699995736083838123459194732270478357783681508677307597684181694910962383123141120283354788091998364836870912050205899220127131993753452622041405534622381816878989896140385236338347199520023038669339957329868509129917843075138569125463002484522457511975074593952177184914793120714653122262428216322672425260686062169474416985265957783740318462102569794297181484973140549833069347734018409877720057527935362464833230947755326685505841024217314720570298701123996089807053049835259672090108381099100242927750920599305602832030208208126805353743472447020360832843910626232788145449627362579631184146043085661929296020957865729975923664042833158846341984946787253818796939651372216708930815714416242630866735141242718024573256438709736940340168070725457988779111116966071289205915826173970142118156442940806391672756913831928585716039029350322451995545133360854890877979491890782757808331970198122719217721405479699472455315647666974432538117472515387957457888148215745275775088393681089061789691502433837913390621262087583995550693968798125534387749703945974047397010774755730129615427131479318905062650754307820613479727670767223966481299676626471350143078477853097524166874090068548064579811480845913447681586228827921189192862108097755268908164114992155672990618150975095743122537270447229851168878192365126379507246494860041731155503296318902267196387082296758981490052780973920724967914218503377044003148836820218832183852954513567042379649449032557535682670908419755668596326569367788658051358012367015831263448137503596772864727783776835151387231194093701503890085315630095316638454191192175962844964679587550443339516440647925876565937090388761792639425126922320496788832991882326177427991141255467064197166926854427812362812782071544780123570634308109570025479614378522501001890371704264007467634010084030922923060119708030131243361587386656800413077284173165901691115731262796761341896135408352475443040650895409300937545468928066725602421844364919440978209168349039504033395396391388981752759208175647397774517435063271938414911976885235956576953524430105827500083277539988431142897771228339488648218835118491298026163988338151939523698085705065094196792724075674357938569325580342915149829216295721653248118285020588224326661049853548032127576073732485774290312808838383561154399327119139205879031660505974365726648160630788816513301762064897384466445555824242395651731956740276171249011325466815599872572285123125087100491030287707641782019012034761667980002547678063352891112894498783465351556570212144393458384627020548635668849291454087015238527192655835443592085898946301547347772877886683577935592559033421855805648913418567709256377154418190901294983470179289717296178785215688860917620290360448532004829543045104822177707062022630124776141150292586615378491153760919331459887817148783163361998209581413264269462791232923918127666591087488774080597715649252791249001018441858590857520828567647423812740117850676413128576631639119526333689271524508605936081625824529106540306407725633866237357071670754839365337042361197466546931583297993196837096892947230161027506661924424567400249533405261471662555965859232844594511109763446512008282990444516223359522268371437636617038265637222903085491501707196762994047901677653868071154198652421859683399507189185326833320512663865685567817655406187850570589185696470168232301046847252403146040923394431962460633971495170413122542669710593756635992548395868153281485615726807307497288413003693643870480517122303355430154119430017285608683476221184192561269011587569248830718715292650453125442639124339699391185700371905467225127196196726721533956964567542231779927276548010043007336552312583586013229675789528439764746356531541844800833274858622185556702426243268340411950439008159855969273855596641039782078033892860376438902278709313317055353258888168568799661645395358821741357700021837699692170971459529140903012627203964538611600474503581557638893404083493006619178736596634957309791328284014482733339429495358413059804830664249467436079852682119602314605772963582904517954027915332645133867839203289135104329749681408592690144320677023105523299091491104973882934317552040825942456355630513329705675098628970758183370312683204367196943003285653828160166432628059354167244477950743896825033277568984716009467522348685583192952364881747318123329348004189820502872453470588844688207012496738461040164331825637481776769302347254503214006463312725971574963975131453408633142091964591631799846044072798445774657150032631958209538357746069745256391641625895247447790638007156911166764470343896285645279269982562377983460859633490372411692438620047568636071837863242357076727101762444067283969090390373397949394308224983762493962051490941636814157761030942977549307878200352404653866046355415210047131942699131576775266993267529311475293797963284276698735730666235827261461932845306487226299960497360898747905311308723546613792074846190669909869011840561171471615822368172878468059593929554909996373018663917077506062355914076143567591706286746630794594837114670331293108652440767126212971181168655249991507833521414668458920324145620452391443277224729993402376684517017427343565196065392182315695833846313304105573169731830171297308953841114430352657222153911330746263207337905884125104373956676388393247410831545367462605361933126044993950372911459724794132279566379196926406245331298729928880811653456035768191013748983834790096061051974792595924383534475166506619161987695120541006974096115562955106727317334305924957829422346656631615589144244772110715247899897130288090529949407893231093065718958726794750950274840815931622893428307635255908234612441544350203510503414538389630768072938117601525916308089915328580960803701602329522329213109444637295348187348971531307883451997477229003389515480037685786451208045355013682101700476558808872564905982980376317730400057143999255918399247521699072379309517915096634756361898051165731873578750776828216805125030581505840515485457189201310213873398429737432303450608223243021022009944203372380376869593060807116660871657435666801222446517895967032819243290592415610037364115893179235083214501494983016874034099577804739549997379832658778470703009640691436906980619991139471531351147448873174494667006397403942899851353343225769407289044123939419583739863410993821574468170476628549283306625508628666334165990634959297307751685758445662498949448277799300382790116956897147784965202271649739037035011705901800335160410051821764475817716467287485781928261920135684183356675636843910780267034487803123256176796212544080631066278830838671690595590361291831888673020080185894457581855961988141645312521376548398642317515110345333164630749755687025124367707263630236043492392627111099568017749575898942927644410672086876251965489142665436410727626112730209594196155799254963480348567721489928939147529297871705475696184829842851536989194229633056312433830337393368423217806447661267068054947456927386991394822907826891349035677021155070765961167697128100652733290141132970529379198966428521638990978024671358687069450070700374660986442905944705978532522941253385945744630892416885174424900950077484375704258649889646411996948175856722455834462242546791611654955711306299877482788132974190286302514234850391143651960226999756197052441603692716498306714756340928528717569552253223126763010077488423339160811494328572842768173431882816350777111161340159228829259829529431862303869167352443275759746244304545493096040310963550766531578327926944511232433817352074154395697968869095535991258791200696433270507979290983703992441361896124361324189031673613801406912055866056031140929116130757676632386103405825249325364601164536825786855059727932352627997423077058871485100663191324845304173717997853359714863005830289756903722073160038683311688670211280378437188699139018552215627654610211474446335435069497717037849116708238122233496985005495334295967315156820334218896875600989045099375210280523416844467664974130610061141379552118728285314476367502526448032511585863394625617647036878143574631609753191297238064576216207945774490316370403063062723376577644117320880905822839615045739702378911174433691981019693757331776526754840925882542368351431271978031244547497523387803454458494485351118437185544392677252406028324115464879506875686703341832372072894324695703555016544650084301973960278621381153617756733502255920693974211077977887007455063275546250845530385072644163969748764580220033933204928425682598989469453760276290916790805612333317727107612756130632195959183291032904553105046453057792856957986741695040822676308349301572369451986790334696400957014881658268530747239342644300616358081041929616790384041377955043309449241798544040509317410814687371733154981855403230559005723962359920544333631404478611984325139605501997986264623411106766220699242889198264888545690141901602831257965150354675634492219805060332193821915523684988120559133759445607671371039810949524256384267820610736747937089763602711471654711877791685565426277063550331228293812598754584539119371348065334468572410318256653155843382569616312167577144435941879420023351989443650526445177145676441579623821834494407854926924179818121131474638617227990319651744979327531205792463038050489871787537526735264571921475969788546411807915763081829478740138072859456646995782188010758577788518226684694451270479474783918308432334327371205370671934745533099271900658520271579037474450676157249250866126928869165305859062896652531451927804706706339112468716314043418156180449215242428443887236804193888383964491709211650583092259836979721733051873237947762977727638323816944090752781210181411392889121777912119762752193857834432077859502249997644208261417307466970323134830165555365309473062885119434944371409970151717514046428698248268023928070019296244113290068784330558152017068268191207162659096854250977168506590060140915107298483085343624787624523978530202452977398625107723795678899019583760834958273031114903833143303814248668346441802231809014176954473612449635552136861357172429413550442703994912973108081650675121862600997563466762452595074540354940594683882085711434501763388964859813251907092512069360164963802404610597515118615448411726669112583513265873988454860379600317009383886320997437602744508994030952383355719594440827071744524075637078108844266228080833744731809113350235433187519600967949599029085242420133068738271631724932419591125517325362937243295554595170429547756093855835223848113475332571793858266887646791123469658780807501477146811726087544824406828618367591690724276972665869987737403712690165247493851966345405587056770488123968584433171501893521995233715820336489415978656852990450383785418599921921706654175475336573849614452890937245655502695631786334700940823906860851111847082584028280850054358253307864168433011911050577702663219527338418599397056434125233471800867874569300520442176846245086200920319919515647019354135371550761124685309656332008550974598382532459579510429545288668760276153993025866989822168910119510911863642694232922816411044117581061421708686730717884722267081366025800679385721463354559955800524898612483285728225701043855867871503647735185855407906448744651634428167792526235925467812166413229610546337397008250948847292891052180305609257070509701485235176271710039005654110147801284050009377640255003929410262302090098774996214037105978878527811538682190532486339477763423845466654963644859918329306708686275810174713305767687799385006817726660432100056943620675984767502059957887338829568616385678400044618555353411570054255411492422244407929305524965426249533529154287640686879741260371176321829989270199684325599874637672675296868525107280345625955230908181690465544434492158857284097740351652504075438958790347032444543301405362924220865956908068504690729682756654570584912373004192093401741751758881181226848407914352297269346221516804256793860670581775558345333973228264073740277881891895983027391876010281953436379523584842814425689241791948040996909469677120632050797518878926325086612671109257125787497738686376632650253062698089396450269817433365568526688010777908304131154795730834026609113018849891953104575735034091199342677210620950225091297541779090563978913647376873402215812483642933161155983305610668387710388137571917409340814513881634675646411939542819690241689626375123835549535740595504509216349250003412314981336747517796919324784281806970339122660636011894108687048801868404723443965684800573544173678926439221362682337935051186802178796855293773762983565792994265945466282635114451049206245327758603077919825225626534338709081472831500037991111150293985657714378699933807792164189005009519125369631708988366085998989492566720165064880803144463302495426100235164965453659425583750695355830891727787117722421981895848094270630635441786095616447234552245874929917977610931981654598375900557817154516967514858377072757133116849718698426865850248306227825533838621806725596708512001580571890125120140710133887758639588200833377483023490433525005394924785068684715673108171774685990009262728512131541618786036223575668169505926279669970054338110693119805221088560728450780364301870555295604137786051534952026105922020533620878375496387295863726701520125518978227427853477885146062264223797799305214421706144283816637351977799970828715173241028791924691145119913995830886951925155513457291174866288047924306292273620382968817843989619507596847252195194412706644246333005487650914436326056122299104277759031630762805014889301696522185361703087839839729972851825442573330468779002021133502360047136312799653963772481557443182219748938625448923600140447480298627115882309164209929093905120068221910340923680708116655737367656212166268665212728435143771708378169643937955741156997104090065997649392018029253187186418026735750787448430693202151095956380825676541217710107140186537121295972830500727059375595513387663244652680762262880454962999833890820647174361612218049563848522895439821486472954201128084669825003136238068356327847797732348002442131794006586405616408206105286101069882311126194587234211894054433903147098574545665060358504933532004325827471440065485749510716997818212839458748283803355934853242396464006341394865526830797514012180284495590796251772413415297792476775870687679523470121734854802214686179522163308976082960218885332346133032542720971423709327896852074883589824163715791244249534257000541603667904417030568559293263595145424514436597267713361869544526876627558130641874229830304656454410167017115360689672234663441000937436784822593830434006024729359106829280324931154281085845265160420862539644547281687064595047961797799773063576295461782970087777259854488610111398054900367809517829224364985469931253375136164058140248498737086728046073272248817548568975324382841143836213857331558378377952734159028657308191442843716755933941913900746141541271552122115824215929042923392906110355091628128193339482815102470102070502635627432749681473288736261713792127136389853279642677243348083171385241989255183712834980523272006625487466567582318898632960511654777303979112418873415198896550222756322929859853871204409645163887055204648736799747446140688919493728870586912063492139841950066035729912564024190309791428595914007826997552929103601833933998043634085476900901706283035406092329057742740037908996064710284992630628188640676063239140588657440017394376920257560807722885488201154352541484783255050565523951234868653522077723768661509088401747878634525868817535033819109937778701609927189954684623675426760202721324133425584063117885410637827857540734534132002897669418824064898427864213532108547123936601212741623153481224968544497870230726593498450644047410612203904639380546136805886744049251274226127438604521120464991948519933860160838586194921099114248787413366689042345562828022397381533199486560700025158772285714002407922653314461243712851033243550968961575376956460810744086968531300990469976986272398477548416238054978065236210512687263916158567099425469576909561211117573711782914275192684728259143207581305580916929861390876075349305728051690398270023391691623182640741176445771728694206056111430438891187424164889037589760395960429308575029973463445502774593835769803529100842598914709962632467242585182187433013413660077940070668266601495980137242536125221376592776616262540476270918833473456721682987498533234977919216488950116038206455741385002420835477875785510897115905098612098020661688940800164036114735484615858244226496548905461270977036730286615755194435654842394636803981612634175491132868379194678281174434467959031593751837143370378810678430826080693445003188660566253577619526720713637540147490312439287514372517279624211793502711519525048747068443680459408138939633881156509835009281607039569992052743513323671141340858968638461922031334594649485997216859161668925749540827473785514537694763818424123385855129771153495324446530280560427128138432096726004000681750851587420443180446501834349267887492099809495565665874813937495485664602128869341800640386857581684914008219295152134284210731670003011354028048762379476637862717950924176296175570288154346011750852475125167163568342110952748488576401437514670143779587652419492890521755476365704714534298803605332215299980495165598989438004309937018347946258167538955622705710888947718277396497347577770778843773239997151463524429718231193241104353491925010098331074351518405298878118185627633965205907945368432404893892921673126012965875921009205991359086306211119059727973463949189203130942463493643964371801622300926663904246981245320892641255199335729739038217963252326738729914899453578648350133548682731413093384063706380931499607021788011101358950666992122156266966876791650661730971523113535914016920486099384815957785139531979566990225904634266734867906447362392444545962344588098911142432274135148476318121593341610831647691889032997338873967812090424880286000224694102505569666163896327450370203833248595902756085181190720749022775523557546995179280635160442185885786927697723304586191200532063659823397509384242594826001604212964671015149971084608988263396613219332238599829364072758578781807841369158590445651212153976829940924831776386092752285244897759496598571813839127821467853865502754169407100524743075270921102011042475265071148569019634697587755020008773536796528122062810775095955221468405932102914801658309343118903598050943784053693420201128894537906241384649087183514756166001936426929996457215546401129447369064983527835602807018178402529871302833680999957583870041751679784520098745024431811838560939445588410402006298641199984188164944175226919407267883078040252525479399325624322855153730703194344125407989825600955090404668000264808012948493611623570642667461870871307015769395668806827538407399109971124198565687409647403406219916035100894210312881052870119484351047251841871466361322965259921629970357411254484892622674996601868457470966174487243019003577857633231723593476813539680766756857049491580645922604382273191120090809285266545331025266892352383536169934280703022990806561856244827028906982250801613152253753837013658612763458071613063279574000625342254365219411150977701773371273411582985520155795855349645940204261769708248889260736733559227030342823576290393683557862419061865313187277680908147838251854235785642311537074924900898402301136202112915552334976432361701292221907104209902469316919658040331515874476325438449902616457581757551740612817428509430910818691961579269991150523415471655137953861182123576939992436321945923529365546262067338984158989799012777341312405680405905349672655757742791699699031275642970700736599978178852091499116191238197470176995115607925955089253097757473119218300298975848213597001432538470812174238410086011362074836500229078436419117257934545621233063593629744168462107684699005797862563248944754691349729191299630094001769152949519131267510480373190024384188323146160570492557884542672595543109582731296855283296632439789472773274466196291978679584617977850784424045630006311692295167125191437997543664825196753441514257092757881131615395987338473947372554246956619540457185117786837433884210193968858606924756464236945392801504460977468540077924301289879811947498184580464671061842421938275367620082214665340481745939803590364340950692881234559063882882680741408933494451347027199017942475505958853979593004758190113694542401238416672957535373027707735926741599164280350385703642854680204406159424551032900518930228776216790038826241552213003378715118988034169443264765042407808953742263030255756003761339062879508534364812561094454818480395476625969906415025175221852564521473278934725801295927118255164609699879718346140001988910358057047519045363882941150133441393031735384791364164808770441817493535980250638660263883779824203297208281393394153244372024710032767838637980796380283021733944035327778592395022911848295862249274286178919961214889470510762569442568873260160806730300925790844764846882529866607483023810648084830541719652380563295456804959072851881243767618834127888595234935154551244464630844831496010095728574940288168565317177299184454235160310046135103758853862177786442003704046072387084017517097019297546849371927927371400710491093825992504218849113712577132088070409868561612756797711181017399925324791838830629944655891901321174206014402280914314620949031540800341678456716651897126015016369755060527593335109287005896677735375209683473925351132354754006108324100129840617010835068428471014903011943735332135138041964390013110729047693590563759704730623272678049249156846430426609441915095940912552538409522398409179404116044557712043407294880114470548914049420352927650194366472621920502059855530754600067828074145729511348053199449209783233114466052716754531709897044556593237046084722726421603522171551162283663804525986645481025971962354708736617636160800182661001595784614166485826559125003257005757745333004372670539345272138503205166940036491157163720123418451572460535992253660541655403601164984786081489810110386090408056601451622918292912175154592459654414813434544656241423486071264831610668736845932170966830383484336045166960495626956695133553398401339187207066660271364885583924166386387330774549962663270089893107929615378475068273823926269667109232456584336102430729822479595630502255226273223826353762441640510589260631214040799603037296769611272499859989590413934514739637019700864987953627524044680271689662020660077359210397462321461269821286147201336332037810173290583802264890795641304053763294960023060769112787135746537674815683145371635676230240724916299518322614422430455905351136020490026304085386485552754910834299709722104188822199322521347503562954006355963526674157442719835478391289022459787278747395725875681157763667528311301775905451660702886082587458249769457106836696152042985454399889405586469687402391134788594647989206894773686865597549242903474059529786783337940312939677651878815674451896962289826649629259763152083119632044696848725333687368841489131220256922432521468877649994888896040141661598869160207658839720603967144164853591610123453722485769012684890209774585355406261396758981629846338394501118223892679760433403330589502603710990344357221214486862056333072570727780677032706736099213489658954849166693066534789403067277225008520608735155663680379440576691713401798732223340838251845872475682957988550228530503159694820882667761128389243651230421515417955207418534517402092281796643362042817728482963935846933957126648244368221306451100810781971276206225209117929096391499505179240109753336973556732948545062821479256652629031329558687029523416763307974415366459016101199377412776842199118114888343196545796481098459820829381081572292194026318613641775759880151723472965691018442436972051258280155595587260955528628399042228110730457945415975090865025770638251488623423156997603185326923576803502086656826221467662592937119367524396648700284560264016759273154181409400889183471131657240274636434945046903611430359409768689310429638682442429586451109313948401536408221365655595674622041532489116706281633808827459946927791473546534793850996427523275706677498178257788013419562561131027602289949846013795053140155076469946005902636532631177772105667909516079054022564933000861740188564205871508831976478482188536519416860222519689099371016278931755485813988918589884324917461030241616957845464468569044378580415600167316126764728858842216361751178529044348648806179319503169015598957607051420573124431674120626274391028482495059460772565848267459256030752101449878211220039660275795480826240157658260463410074718234339428482761834917416414052337859243908614483615601059639489004886306693059390568415084212568771132301640154551944805806212368365293223913121371113446973387067522037332030444123365043389397172419278041430973796670710758487913852781231137162387781919336205244648634457232260792747293200220185858453808054774142307113550949068099021537479742600374283149009750247066063029029681888409026014957719206339378383068569723663985884741582796224924425272242461762841583804227824665261427416028688940044210386878910884413943273930096278050891783312606535256417445787851564081089881881542804596598453763264649351127117809879596496596135413049176312724624833311318018652324655739019175033246675287969992613134366704062211508126741435149175194298385023847746313640982606333787047279558787427908466773289125766220810702078625209345487082869486475745528180741495941857402472247463163573208685508062431162553855516620035304700846518867004592613295664777666727652353131861061524050221150148001495228098848410802575084481134328220563609040449291293627389214822745992190410721182044315618928019972431053373403355217113358977885300776972993728464892409478318639583119428908243346940117553080324447725766018167630421891334374584036168075230523700725870696668755048887330437021680527017939601128739018902865350472638320987213416987047987643106868113140903606475969767691944233572852588121057870620320014451842719988729303367333564468679219382001501380483290840952191288503191915235801846108376442500884195089920394180187439588479808103051785433952698161327019164442738434731801376812361938904006577881969426614374035419531816751939475911490123559330451295255589991564037632798752569031951413844655634981041894532662327628796857127831320039347472545331099957320341834400822964387617445366300279020207117303544806460419498016556244957962542600184556623167800067778850954029989866996079385855586748000552335663732143404347069113847599913166277665619206257100173112958185063653174852719646438278114729479145369684034519017722328305404978898798790766253776238622400291187520398299807623968408775217638246378908762500468809801193623257130836825393731360773736551394365719718122372996474065349120488630894271390947250394654500807124959953592074125635529055379141896090661407055276987622955275144474968337302226612760844989209605093046772340522581103138354982452412485585404005159667363523729341300163788595778720242848940977869829589248149606821882162230550786608236688259986542717316069233040180983972973734125043237372186126172817735492321638121882367926264928478967338208300988699313547102537435575336723260872046843534756892976363954186240027359899596091704843358079750936956940627903095803487193516501478513883393377817546593568047679158623965970460511014758267494051401563249523103542409161043550452987398466034935318906014366559002658398982493789804914921698123356372077874843867181795985350189398921195142236081402424685137985948675141801153781450036692952406172998848785897891067114431565292079211588241940811840518051901099628887414578182412785680664288748956906221220432719982193956418539784155163435036847640772541211485092413918792536752210077287156064613819463575398286443221109949783246307391057823031132628432666500340536491964698288467358310635176649572347466675799215898326418427837057100818408866285462240091096989076161788208848921770898496045393059180575540905198198352118334334213099165434854235851600025160898900131344746158223696998354146600938095704355999909173449257574849944854855031842851657662359959442484280928464082303076336621952605059624184481263450518978779240226475363434359978555291198659826679024295806031569350880440522838744175999383675609526529915635116667043853698848436491063089529038098999322760725863847169268660745915271164558440374244818858077315838383987243087165740810772011787218127139639085798569117541580337011026865932624894251528276760879212904762554079822095313091127790695174494476417955732591297726638370263178607898690554943732790040528339877333743749890821135408669054983620181009683266408434360524908151226620092565578168581110925334259384876689585511709346310645362380562396963757050859619985968983560798379555024857133407322375790998560187503533555570753378779604767390680467073775419705178686359971897776840623796870939765779429949639919452128729354147899936305924089172829250947113829285222415964613342583991015247043319675277238099322012827255912450560502520130192084074143346896421362325166144522334540259340158414437138269268007378358768633292675987409916048710534774190590010873839613035137677020703085125253575967653946475654965457486713488130301697415315793528155152520034481751756797863970739521137938384793075583679096867799493707995695437430870564049219771825338094610680780243189578919233307523309869834040286240838314036440713368299137526448068499674538169868895326037938148090071044698073257904812465703993762507816719693647784587976512413393503059042243341394861187862769284228430098015916193236927689106760062717557522153347305533173928774371163928967729587011991367267267386512767312350715250408453457654783196311046462224435163818007995710487214605487532791412177539672723590770393648478395782374227010429841125322519313017165896383806172538303448360976337514199181615006482184118143997179257820536215292503943165038434868482759144148015700610441253341087873046243544482527901538817491789665022448149128188686337545665933681607940389417902803780635796948719120842274054616780185478371186740363024425498770024369667915517540954884923566199397435678411723113867820377406753883424612469811098459339872121206415859237475090479046028351037661389516733093392041628497078332432618979670240320683933251697734831997563324284158627436054101629758616880921420813223861886750083891241822585144451388503197643828758488786280378584823396054271253460849383083640444196635913281476605422758790842843425044636505276223874076387737588098798498618609625622704906522979750337882927929257645964805376244708516857700665753782209675219137292534890866458155780847514765434205014524857137022474080783330614817191204605412949787427908598530128946968753175055267485199240812057631414407210530259132399767881461492974514890026573746564646546544509326672926688262350882864975349119905550954882679109404839867740985902837773654342412820853190805889450202303946172513174719341323224345097719894182366422214481544257389805703149311060889362215815710588918749274956232243285992401094586931129862824512646988899981346009945098432563402964667865374655609572352172548998200763327921847808530620767533047975731404432970908643410808034601608243595693712719921598119234805915200524406976935374385634105220684942746118166209185660761095011610866925761993104934308262140726557030833633936740472447105790978981009628309883049819203120738392931932858351897670045843131664440081727573872889265148194996773283734871208451011409965767830319093456596481268736060910940584576677919671777244911430902291336136929366358370853703989387703265802711676557738966099470632044901374752134620576406313116128991665922637340780309076896088386775870436583569500402744354518166132417154620414262241622116409351419585735591700767445713003503806020040233681191751496413053726924829896485964484166928521650273128905651121484634127426296569671975274161350824397287717110852864886792309748102431153153920692886862840331671181176932467503935158242494281839063057411930628017090482178694373677269626943553725639906763986328823585144320994258542720965230797576447782759263777072636483572186363912870718351635227920545981321246323207007851098374311288839459190231527663690201915627753445399101201522214963637853809282509143166902584518743402567433074311328705707107373522491046392631652752980312710829928921763995538854876295858908067471070262703208176972908841901614300270741113499687869614553148988237285528063714288086506221768427250403281684643821756548700703167480271077169786988195101290895872635891260337667373628956088838105075110115966253352399757728327017625507568321972108139377365277540501941092613585825501066113251288208865701023861849744473375690572248627541904128072151922875702514494720833760900627147200002007287988259908723913832363362629294170500675263478060046969775313979888728120551024337758701243961072707731084473550417134312492584954326587738565379805045816156051311297646417420230717859204111465136963198054303377687509063513655160233429200672027324277668161267895845333493100450253061782492331422591289749870823062294064279050656194794336245099992550864592467562690856793265491863212874761467501011691063528320257757554950999149816137956321756319598098371614077652266166688098423973533158590978044344231885445099172040633569150791830686913725558957085310722605048321819047346775167013441568716719816281022789900835924082989280387052513244146251674219642059853581788837575644600812582380495805009120858582011862064925977316489160778519280342179297009669194176841013442067083889897929433677590775652823999024983033354791758826937256469365917012101785492902364482038916018814281820716715591242309650478874765718373533822226248081405864562807123174931984883057647488040460513017889306709380169286153404314673080729778769790814068658909692928473106052278344429823667951024192376786652946602500194249993870792079966034371093281440237436061607082492982689476178228126867798157897662499203447333533149846091189624111041017833967272024130145292556771556107784453986046531421667417516899013403826883829983755514206115860452876525091597610901748737328609212272815163295989281627123058394729755680698742053296274738112057992981756211379860099100923477553103146267261748587918874007974782890651317004271224980537171358342446865712655227080964385745042970407474348771287378931979989613939339566416470648380873351086332909224376850589342316347490409930416613953561156237610450466718025214862898167329883680836329819450654037653155311132115902515833794302128776992505032614543224157307711215408022762361623403227273128099042459509537354724759712766108063343848223704174404036815318809920812097272226891828023695864877754352072999618916336478201565284953095734514797688925375245404164802462097026127515935821004728044092463695710363038802441647565938076997629820123538185174306857434679166345293876360103165604568972497891499397230786696932954378342214589133502677267393776271645100020749147907422189397878823484510794828225307608972492579852190391494950190001982637937570768609959485238174519487841715948972007035787657171988301140918390291534562215748931122586180438278298792994609371247897427756666122011480588804931695609447600341686130964907356080444036224061728233316625508401694973354570307661328543005165092727379296031364435005850327543562474574193846867820524426025776737425998797834434615206811911764283050102385602050234841284549047756529449192690367489281479361869452132214078556191226762427824570021671437780601922868524562368678533942082575266518135951630893076783714232576779694429593192935586740121865059550135023082869293400405292807769267727147081009180899059634791055596113395844415636444039244329841159031251396560915496934635482084608365306677373424971124040647218439645890882095613983675338873930655029444048244156029310980347999474950022498150858761278041894884928833269061520826711547328086835263222733333455091934650742285729363525375093529364328472029809714635676073160667979359941445888394444098929477735161189088970409479937701632191090456086509664314264557324302428583456950722466717851032785745118784448342507868857087705651715777072138563913115783512859432161387121896243150158770753862391675796561293136374564626994412130509980532944031476142519037275455624785409749867422818132773497902388116842027385122341400409189018687592142515611072010874668413387738769097459894585068506624642052346489197599256060675791574735832402691759377529517446578987599610529970258720386543035796751456186742778366860803618684925102861161966423727653735792374154281302039671200248940020825905085454629070555866786520771946213238992582011351245137083210258365932393067350985082863853900749609870212302890239761367281669707762993584552781191354581410962470169348264370025252529847272861793882762607791147987284480185293482907744051544322679331911966361886369662780111466309265641018814115156354887880205098903695650314434689766766253506390936171996043598523448851002243794895811954316407011956013649194503010868404724642153344384008038645831476663824733082172240087809654230750566886573992033300009976804676690170204250918966554013007673377203920553362031651123296409375145585306159609655603263146697535716192504020072661777951880171756723234442045597024669922613186131419601362031181000149130936690367618349897810788779421671910466828491239354102587286057924370845980114079439568735959024756225259436414274389041608939969082941569074355141141546690759996151412079037635347713091114730279994107486118345371889094110856890408836048225410523864250382243775960175424114899775169623155762017390135573281310775157789013484841293108031209513230967362449986955866759856557657430904728921929682237585730308401528298551614215372209387939433386976197304114560561472558612175257172172003849515916858258018516129026297466004784553005854124483339667085402199587197597529721829663068290313318605566926598484027994712091221525072628943642634754704239629776303502347737170962416754392935312567542983618722946551696733770250216967648577829006182831218464793010073750803331503386397777155829246775999724700721400266171502516950848853269609227335659289336900415410626019228107120163318289106144634934968479997444642373404130324741588153273899313835198338886482499246692963690646790865188954515146675424931679496041062900861011615159652233836721810383770261798233735605691211827161366006624313464064369766380822772240243443975438681322362453488949413088609574539554937607832310893581090138325184450557304275149001648018608324397078466709389939563454964247939850317408309104160219384129694605029063684667000217245029199288684626169242273546827688309778826818095095811900170688738160581554230962354647607400651951590750244790838810902015985291239114115518782163444642481323159100673919124784133857524029427873884504860712153192995232852747897951872617072716004654616024198704221136130442847977003554024423698335871674385750565787551994437561347919770485395492124581112010032942647530506290553286441754160046047712933821279066611352770099434369481370440292572971175860092234824532557930344470217535565102682692411742332534539009275413518868970525423780705677457113746437540586637720813461382077925830138723083035577343480899408546585501305964439838262280943562703315586301632411332142342241988702597030076901293467517979119881583387721381027754293202118403482839621808996781524411399402646967553061967455833388364731445827675733721508485522117726071075169081584952921065394520961039845455011965322953482488930305828756559952785650686129176835983280199775106994344841064138504582948637004443937758465426078596853263332744023805973526473092446813227752272541878976249925777324100470296714054561143871699463662186651354776271656023694211729792347035900540125403703893409856903626565932534149884463551464274361125023792873797710487154952235683771977257314381483091208903413517052475295570743972941339611772868625443468829652504802660432220273189695666066620118752767986354942981360998140948738761664373448527387882554203600235995806668061818826345753115489519953998092314898488477616773954055706362406740384431035499607736128925813325397838437203958455329717711554871886675359038114561237941067433118874859270512009113854032567308251371561000984490076292140335984976098793729515716665031343341899474178423536903123486928601590574870805830788830546164265362063454636356867871673883571003365602357548967552133195383928331862696817847501300648268854508512949644113747657241496599387196682919201801218357029883497516503750625795697366369643111048928309736912970235896896241055486421932332242337629808991430359009670288703032190275570581541675598033926018859121952500157282602485193717493899882760946532105348190556090634471832633740387901941563222017795580186468045054630261926106952551693755428299219446372866112169673604106982947298489203598998073067078059014782409004985146852285519876455209978279537776566984526501248340260105390119573450888301460631416638882815683328458398958325697292955711944844464978132375315463730321390022302692574798524721137399631769154679376599620656309411703627155387050854189676225256088606607018555386526553376681450567751920447264471930036709314866600097217284360728478426348578782643407226485167836007333744355377316200857745023441650250867157611687011401009283695027827258881940366802667718582338920357211968789043573820795635788068558631905605738864083758805531882997547267568788055185670879483511701392135895607526568027641845863555671514743393276649615298529753891801102613050398716397636652077271193085428249804509422803658699583747001028038825671575066433782488788201534610498391739808030061873672484261645175120784556270511626536892435710984674256958604895295893929869543370941651311722465559537673784571734214187992015112153193990240787034758272876040177861514458551404795452351068578852846607607273951578720086363884937949802723946778046374249920583231726174611549765493636592315209752696989285901150604712239034898335872821257840881755064326684539377558943075706896249814868199677731702022419330566626381919620239794596658427964924273301471433188245750535378520726551691497283653447680640037939792374598527072154466610780577601685191027623554401306578925818853492242520668883303309422541995076099527955980321013973044051209607281141203066538960627609437246413783488552373529286031411463351163218230060026426236699710948053938075436956989744578159805689555698121429739263663152531171250065812858067639247725624853348684363836306313933210251950406842505064027510064118005708703128220788311883958405114380682485909919469079854722061587635355061874740979562835241738534556140559489919485160845047834017406396443794444789051024844742805257395439734060268992085010773084087976066761606597502837828306356008153814573676114013371296331419397815466174707729519309567111924356995941530742267062338632392057655841997226444521113749716690304724847512278528506735732912567844717907724879070350701485177729166375337114804816275176666149149109976081641615582918111863169080358226239658398495028928534715171850959619106756906937891626370793431256387420027143195321802414838290868789349434761203911386668427618747916022501214507883562873419597762266912609064136681751862959748037763627707098207132174180583147846771424593886763297366340121857624794564365510469950458073125830546139773909277995476444122946099677021920815858186782114926041389649175167300195071608011409411947948677266038868030119380771151391474350876678816362181023739143037677703163784627821394426531001828897497004035810213970351998123985745289072145337180584264074472699845842502578470493832395074612366385095844602404992750709837800907445515055595512227374996740634278017763557487862440815149549228353123111295038843510347263848421606325285764220125207824452522016857729629823443473522464163056403940081206317289365286206696840812894607386064554566178221101130990380097844740100913995220768338482530459245000719894696096882058157308600277024368882814183400953069582148659168990171052708221581853730685270483697013847056954189892799008390659145964816033254434390548202598789404573618931262520226354936749244401230195882027759731375221892131992635632301225636058595765039720320876083515777236540505814099097250806803410683195463626708197780958582060432786593984146800671519296796776852607806297944381926603875855712266493813446433418366769688236788155884842818676220737299148259968457941144678355391453891383147203503084097094209970974811939621548391187189351533256076931513826456572501831229773786844413562732939517638896791654567660995917460699935983302100846589237402035964574948380644951519249120346341140092332591850314608050045055538447962326229456209510531921240211494645444166433631676864652087004350423198919453930106638621048560187511226724388061427864922804216269778528822597679988563138406430240284613142069184084427472787702830202799306497759798133709894817860819820233432762380467356509622506619938123243826015314265156896398918203589006674515343752158267883078578848410651359958526535342359485957590826039664600555341157452905754634369282635424452014385323238714350234140509865874678925896449891423913785198774106627933539721381858764451686039896088235885909424933031167855258173588117667404582755796839398900817217605226330043435313565451741122787182428109677673568067016504820667705469920206100595998326152099237294803705570832920845571984841589347676535176017605252049211691320227282707826628360336057095310637394108160477226546633351435091578876355243021723048988833394768723437153815058820498508031834373086382892483715822683870185227707956748946212577855443971198244405071822024758519343759485808642634751219687181979659727079120345232052045781977992608198325945521655470357387175063231399054450266125154310312308977276147974029476593880537452787579609037990379042911726851830987910255882778228306284555543688037330271817604730779955214338714139811909861027485942824673600325109430912048182750086547712839860991934038913266892587234966114006640698288453075336084016054774874113400743005966724166875454571139113890449635686072881095900702345319410489147786808893019875340285065204594906863181867068520958445416588011300177061994077446420553418984486278573474472167488214333192282449847645566601833869863881630141129429828511370124505165863609334594870980273647578785474521629274525993635920090175256436297719131197061313896674732527443452276499017052844082751135512770457262941309638725934598186031819952156575024199509176267363942079594791406001447646631302117612845177854142923175780284006922962675481381096378019079712591081909757222732789571259858469252699393925638014485717830736286782581799185346551868500515374653548183317855317194811962385848958295296987244966420224731001515981017266735014965488306295717367719219757134795854320833095781184846210077145150377033515353777651085274769010868585947481290271564121085982768452358223182905970307676211966872324228767738403414622502888432903771649067567836586241190341939391482521893157984056446036709008943045695160292003774712608584960987159068766930851387376997752375803284071603379149057582449167331638838570898968537258008228285853386238743178308855767045226358996162273007255909063765300174779218487334006482967230815172706118886818952965731514190274215594986405501519755697731581411422545380018180538209952610098525473538679482517051950819403551885106978609406130405099303056251875606178771494064904859829916421331979116260517707681426930405041367586344287687686743296208595958564019528747153520411549919101056686685535334825520260123597884035706648196192457228926079180632035461269812127389857823100998699363445786739302487107603604465096384971949682021180090956190212959767999418330447229766327942693384911779314764495066022933157792765755395675893190821011334253981157806409480942360497378450029933528521655281910361251260752875901900446715906322037762739508115910898690382296623580153616534217566771100424348105988153736582838092283426609690128419089279763608719330030016530172202127446722135196298159259017514694827193333241737637045796583381948220833515371349737027657768939070004633828762070271922848213909763009275513116543615743364843425196376624831112048292753502338927029993094183320116097261198456946676217030945762150711519939743081994479496488010366433358653889617874024539733873836132401629571287391059909040144630837490880210369364558227239070550843982852389034083795628671451661643873784983256240396885084746865761174361573640036519287302494365972715924312451668526944094002918943441914618228418517835408939528420306767445541730889338722591515642105959701563695990676226594965825068741141057425666612720253745025029640559414509817155691296527130786069734841422462253630963892053563078910403102198730724374848085804569808032655186587098969544913428353649109946635709174745990903416746608579286948194846064004931868066680376472551219919154493989965947367913498075995512164087886791003993070213991807175519003119111427112243537610988757295209675649485634492321222512197390300748770968505905983350068083206650073726815739042231832694507597391462448585352822700522583738963309198364854682892376412215607164428956807128625163169986036391874527572669669151157889181369408715632122295303047826469613667021408595880618201980003779377339425039815416474951375536610344321500483183120998584435164685141429515158214914968386817942544122720719361247762117434730692272580270601341946482164842673623068265037114869076411643516276066975451973224225474636453594604402876654616407962331668572994323088755943157137213176378814597736597740115845299063979421338142659368596068135285761424882407564334540637700202560498099044607407907772315798268437045381801461146286034939056095054190182807158888821125079301880786502558398672916043324701264897596793559437520247753792551573564548955941932655582018464208361244460293302690828953902381049889530272742925165491645708212246840524766581791382138813979260073816837096419668550781199002965650744457872691256934066504049861691956985236003660748642710561706124132313948519665298946539845251730579178064203559077410794459604931499839136906534396355315222244311818801799286123720170210881695372015086822038540297963241969246006754717447534753975663758755050500008959115121378714269270844864007554914563404581109576842492533634825353702094064939763803039518850601399746158366252616566171914397048488754861930119659682612296644781571715434203061101722393675156356442938184968206516104761572321342673759657806056526490306257019321504137078933948783898455110354469697956612746904988862877775507079746383340335293317224864813045818082891620112435866157109474411249850339827614628760627733978978162632603321162976714485245685831833035878362413209607937444165419821384642154736028278952022116635656078227927452048392648451084440946654544787701200616837399600530767354328134342532093025256136195892389033594821810511282985517495977596560514799714999732579112281525974171906763357128567048154075212215772791443185625644666669044099977454522900514094161146183803641356355642324968351113295608783839079167297684990547305851173686887159684878279438145241822072970790093785583165847662590059099064937248625639558619824342680632970564355771045623131838942110110962535557344124441597841063985207875888848956890903608131177250191180649387465764000277856038853205127953092550563342640820702276712612086380176397650725658855074210300630840089515506113877735583611850512348963222823576368713103822679096572979586164589567951492986616190376072085573102803657283431874606675048717115742405437248222840054477147274866924660402435169649644544518512970892745146600729092585494380735303728447208042477683767684455747301953153920850959868929516249920134238838428168214362428547656800352358990072733165310375409555609040215523769365727785567958508968524243915988817871090201215585252754304705926502382606302431508100523328271998498454983823474978934368789874884293926096741507448612081015606100007208977351493200452298349202342725096951907602098966737077496466913067709914406860438633608470884877867113305320092701383941700807513283195963349966395812593889946977075643392156886467009610654574060093265085687286118729535074176113157354617390306946108024360684729713057284033255082409913612507700628238500529316718899872189446932111231416074833003179617217331534920887142049493297630334126500695252284161843363757778624303899006235277959298811747803978548507981606847872954402650203474252706628418936978209585064680586734203973532760724906896014746285881745046022904600279649748391149924270774369134650624217720244575578276586904101051478579240632154593309260932221408504091141593249679682713813964299135461782058225146822664745646507903503403856530612771367530150172054366098935217670939600733894773956293377831989707206668776456577374328017230010260377573056362608308812214518060974175430362282173273697781223246420554212361286694336026359224069202383290330760859507328652846311252437272745088361203297845249236730725304594371453690805207791793601731836879495617963010238308502636789359272180934168400582172923222247813440903016174578281752797835936873420665993714705404009766189883160018705898993342743072437497840780788360981630372668029378569568131971975465660139707740570865259393179761438587874849401166287666071463870619619988290015423588023078277034012897637507979911841171651023639453062863144155814092764824815304309556912177019579327376197232415149324954964054501315949051559787152045370138504452874070557788456924025952691200479447591263003522511006280803216540078630106781349615252678820446249643087909603668168432798406661777719424544372914451437842908076828364565434804988771591557103611329920614486332337781432556323479145103423876060638894124646559723816473942433070499747065927010241875554941906847080626254194245382062912819871501617366937797725108969188047248212049841464591962606688084054715598517377112985789513325977721511612908016014901598591313078193682637113101733416342553155936283402988812402693394367922569292625617716872035153965245376953445273806313346600372210544730887736433328063680081761122671122158370643227625586181829366123273259195006128927255578362233398891376361660863916866882749934248332610528993539534709142299201571416022188022623704960528374032580462059152415575161015075332290236724077316583599657747184835008634268444355937460753955894727000609286170423029383742226496473663542567636335666002964596764584750287585562762468542987498346983460672899885824611866244281783445162536449197118125813477978008816541839796028243354206639455659667912044660593775705396034851846098076950743677610337419087478760955323701026541906541403127932784694562250244981179306133417545450135014694273912783447655536855341843407462954672985996844424447069623313629998984074939337182123695158080049184773263232101831370617771276088447946781707586365339788011018568937937204736098633810942333929740824476901283988570667848670073470458328309503591785901348056661288159427784713384377705888646028370597314401536270257326044389013466631138585971476508606383132007701423744934852628499800820262767844268661273330882024603218046300745782714022614661612169099207705738634439438949977404499508479100296400792714944178680228659036120275140885874283261328719746967502832108627778327226075909839806310474793143258259853255945283616807575086758628160685506520354615724942278928218192330676178521538958253177009041851408806865869509738130437838982960422971227984948165545225601149479242444849404481096450159099049724959766849149945913128532625452836771682933914870053109789401073425220119819604054623033525327209173432812987391823122542029772365896788746523587707451631985918802823836085849621333653716731132115800928896935461062964661430716360144111119992221300491381833033852166665852675191892440123372121321836416899410027019339793213521351345303832409779691691561088510940217105555468500847975921112107545176641916425593310903220251074965862871482787848243083781885407612195544548754909826739617325274149650258558469736092441402556588241553234645411769751858259486780139096927658579464680889907609981651687670908836577433697838415743868604692669209123576276808927257387597438117717262861564370645445504196998393364785988108124503136430948450847066289295552122205454373801990324363949650743676872583898237097568571791439132732350033256285198506077758286129782585566747926853095242526066925751589272365992293793621016161985994284466121938025371364654354799398367364664835963056973842629246527521888057712747265753546042528319569116085266071093283487560884825577089392591833465762520312917030277765634747396856946924374779884501041456473024635625550928064489799118091540256748546153366703865749327611410483822767232692698072071691865430592351871069869312451472884182213276209285132733943912337197348974912835047003693871347577753617414120113903576103595540780157601995385764667182368240625037475100235688869552860501684676085370103183496230655099527655707936003524078680490039893646972475229360195324805362062310270709749136374683012553065909289445181633328657552807937083098077667917007597120138048433340944040841195835366364396027707906861899563562310817621831016122623467739159729216136593359335838581802463711362126345012636810533299983329919126275320295185693450607582702276599390334141884346688040451617499303878222456889682878669388298150200913691608109677615561375156844457610521429512871932117579111435017962323236693573963238670173834538334967681336914655635792493931833167701894861815594004627750796067594543925930484041282341037306537673691300901127841747861167357181362126192168529742671633909798207068133850546021606317076825374695096396333109100406311136828615084302653726043178902189811564752501394541364987440644619725144284500998429430131465966376073624537111721923918882658779540531269726033882352018275307697555868482205975752655316249233969907818009140782421781537412400100972723815645046991329802891981339305877198780052685422181727537419336646238561685487470218592765891979949845720748173185350154830974725871810152994438147014403019823351363630576714934533135835867961514659649907931966643690791065702855782035807821342582326529505177303342367450576350694935870602343004746766423163770086791722409027089312010746548952357641715197253844924390466476039911416860291998715642233440217319094061877124343524862716711687336606372306966455450951456810450265800466483506587086551301903365569699918503526628513358779048415708843520952028208304622074135995786350611174191522168563326603997933485677535610005876364544555640818369202574986810209830446567321005931730849709065238253771748457178582902638500318252799446134466065550484759399416841979604928780679275603856687333115756298822783975644188078272441473464675264068292838935320250051776541989642230941217509000701106304059736957192124724838622016777791761784807231537847311281867571476544417119662217759685373653467515558122611201008615232746874794497741378396899314613249314991972413265174591211886283486164130497374542414445020719865599049757431536915916984088419306838564228135458291335227394630525058375709963679002479455820356836085288276949874098986263229790085236567900355171849023199625333276646578902283833983499973762986311722057275144579187700257256185586077442403383496393176115399417218881434803037521620375080343278532134646842584630678837160103634982210229877980077843611388991500797432317643325444690384025043506237581489671727465161570327854509603686629792510973736890076662464336645985001226188996026785512479712741317678138695777031291070324292678051294114002363726463038686706239515485781182189440709508227342497097747324833383383872929440782609773348784597977052518729745271728262731590204332765392111718025092643078889938076217192769547802716305684002691003782074780817273259636643318226320659516238588687930176543311486118505043090215617607837281636614631801117301429575533418391546482433192492900578432211993116431047317376500963601830473552096927076856245066589801615931716011203757110031508034241155615623577217833922632192492440332117763991626255063374567154920150287109931989622249284851720326080528247997139242732272145341514587778330420784842464007612455896423831485096254200472277392667068544421574962023032783300409056176039216811322927869266176972519921643032449296097591151866858108585331477148122567140614673629764062757930922953135890869607734077740297775722564582227355639450524691275125904534883008654060909753191612855402285441079730184692805391927327284954227347561039137298900029579298961730930399179049440430649959993207825188784234859001104957512812488001448380818434348051193072057590305252697815347281853405083896769877949584110354796061902503377756106730912374432599081652338483544409386104662862904817120411064651425739267104187127746985327117153713044954988737426377550528447936737190701788304490348193055357390314128843715918784789493809565739706343586831893357370938956499095904580576453705225511727040549833929821573323742344622419694553516605486141227218089341099171636628487228559303292883565062831350768161480155068736821152861047881916180370740965528689724036304395601198876139824424133902187525638080233659688707872205713930255621226524527407453600971764858048384363561045428814189742769741155296828405748732998800995013237366253762263743780816013128777929817638890795379235630772889830087719568642384924665990518504111673721958261748263593393584653934764178644471796535326606376506566723673939023695629876639983937379994397139465711904239747806548167295995896840839091589247844556797921257513868950229677356922941237575460641250238034465899924196181052748901561342252065619823452598606639501126406602100694211589158686558818674942363879979663542388516305519593636264099684639969326727521765516052454968776692206520522883285581599674371367533377152374140057180356541420224278716355111816321147056718006109197154947771460258865279632934037077559234629195094972484430057091025341830578520370077470414094248736642145183301219389281246309198956869727084247385396484418885440575666388393931545236719878353633648454416890145413953996919554649340069402532963627913666330265304339829135938372277121954413979169411324217784566999523084513230213121578923842749134489848787097635915531590046760627478190512595698143517430933030309070723349471164465926747154310077954506152510445148845179488905436114750250428373275313288521197488589988887353200899368496256605805220632606075151575995882772454922474580000594835314960390195160402466293497369422556915469759973393012041986165306295896120832346523362721205976214539774159575094452879845680643751528772683440474642242113654214144423588478364995772200277633854881254996504534967346376278536056841448206447603077295065142212493949001274800741786169756062154764546689561997595222724206458685343440596252521256777115735706441125775566196891647966793340564267589245072266608711733193539345335889591790031342138732590470091194366909248769762688945718602798591463988012123124458989108550051339449243387661482122769777342701260127656745227439469891024314340187812791418197975736947782148995812735719120820911862361165464202111383274956141810471663700641272376242180408453978184292115864836444067377507483771304766412102985362431204918160430151909209069600093469562538185296174144874127948483542602225933596681759077248062514269689845341837085923453370347089001185299237867152006065696642709092506193454203577933261350703849026968256917605545137822614201585681284854874576932613510938415438324089242333226617669693425138159713377159278966000658371288975457792558522394346233291485206338373532257241317779601167861161633368293015909536856296441242559566884217348807323378095370235340133794374797110465691770445190784364265838260593525213269263733849923056540633774508776025738568445279862178639475440789899925005222908810194140385092796343051994994607921104178197252153669884015184903629511800890903477769720858367166495050837938834219570995114962960866018287925846738505369224187595311168976481376970027527418940073548441182504804651960108480864286537719897875027606152111069300239486380072629671636550344445007590461760396085713274227151388585504217631635018883557106978024720985209176231643303015966963631138926710759191889697486661518061456822222027460725586228517559898869672333574566005241254992525010972117727351485253574844441168776760961449258672695940094293064549899734748430287916055280302265294870318649091715525908164885062229103320369017393693802239903094257049534253332409539322882632658407393997425503281131097318213856618653062241737475697899886711308871429127613569648772054731846557602150468512478236811679323617413961077028743442591079776756495329880987477820370537853854808052827468593822387186713639241373834323472553983000797164809051539845461555053942039669884357036734904546548023901289071823144941553649738238595372549379229428209080416899024669793079766145355760866129863243135441149552521700040088831757057480183107904118119180853152642869048324437977527663828203706063082194807768439409621007842280621119869922654899851562241868931142720818488178853487959273535191180618749940338022533136576549584944984379279459948122823836417437686319926155134942854066041673638634415535505124475201551230241168968568192635463845253797626574946676455825500336561477935321923420729755315509374041928099697262303175479213872677497367533674074465238672150003557012466108569250384536136533959704502750253603156469585224480268080753983431936248949481293162431185215833758763119022800511081886132668686044173412772242307948055108208334767042204032501103844527101916729283412893014947688907195210021505352376717198024117263008872374774292172231184331243849559261275940155291441591869137845992510099057525708965473948413267775981788378468075509687106031744136512243034540623070106062671349047459666756930370363434529252001934876567824061802351802402317416619571052413534958828472251573519382017050874852210152938204091187151875107026891873724490503345227632152948137570308791913672748945615499825294221945683825412882956753073270318323774761008548064931282904104667123915918960264223130869813009350912147123403511500579933395788485654586872836300063884490217452118945378256812791956026261564297507439379948153331682007251936922359618368462337423931264427607011018119302926432203127182409911422109116491780576057919577427250202091110307071192900667117713385493540774352356400469583801223114418422834775103804295220906033985252007297425897651679621011231589174277449658034190337063962270416130853493021664527829635882971681618353071963580124673913218590849438639820173831071303161477502318735840601647816922323602056042000346593894379250280654374708919059311655951807342787677733519702867033635151022784390191824010681598579080823797471660938348047108970379725900893757738504216614605248999117089499753454218365701057062690036572169384482779773698729836592643953877875409138935038022615731443147514853788266133959283264971768690552763246667114437641654808645944849454762354805243215121375644391763703237842385660966092362344027315656474296920184539290230554423584670236741110589588290975310728586860747411919784767284458957565252291140153649926728832393898103491820559535808010516914408426051967367031398892441694217297365861338306293384534320943866908521563392121322537663497235972391179753345969767017438543593462522918957142936689532144251058793047709844123789301137369201723082152645766575995766100774462421603842226286723695961173833541405094230748189573506679327591111201192265034172783041465202233314478769436504155498829560698273457626979298469453615611222723234868707128089662333206177710764224691980033095716865124295362803776982160453556538873743444123286326897251296972326936530389739618002373201689809445689546349753520858720205139797498759194020905586566841426426984244019248552074855647654230052959371524825875713351297489910623454985572226977245568072246326050587721164465149699091047026435549600741829454483513127101447996329236230583925750073268132493442386713539553029003215883624553953785897150358894585191915711802597017563392834452003984403327262184391476068204104585996881864131811620956210575645343371296920397330704967222898825496184239501298149239310097624352786725200905945973184547973561940532407739063865424659679465640014745838468498827591357955256406677795191844945118672094817694241241513834005026944318937494284552763217851010729400567804407968451184676612106974367787067527301547060113635290480174856358001729170831953747218256437914351200678231972896865062332189756622981364056733920321915332178678291845233860915027182510154981157255318615164328034183441753246004253353063432656913710559699853000487885350964177483351514982370799360353826117961921731142128780681785604303950125278960466043565555495616007942948728779615479196144550118804226571797365074069141266474334192484338701382009577504020453984721673533164495171258491649507560202985123998803550345155280528026349735547920437130713525322804229704060174586447315336385037035571983788830585907433560296690063629592908148839413573845927481232648480880846742289731091770923739668433802389253312933064409443140222854830776955724650065632496744189415261247661202943236251755742348441119158362167846939032812768900631005282754502210643132694523045243584515450975323292319358001872332557320673649871104998686225814979588270843068145687759133436621032797961188980046386572146245926994979822280772944736301187700309787385702944100238928476867040107371604913030588439186019912495316478270876955499909190024304897041922488315303327600012533799417396948284515154974812289048228019455605661722499372707692828749928676621594808400913757970582837118520634828814014973460696541566931536172205365018832254153232809953839174836587251343014935881915746354681764780421660653977551332475753528494277711258601966699901863113691757711877997273029674051254111182063388049768451912217090688637323303423079412076957255586363853380581357620696925046651146456436530570388455046773057784045856835246226166182267181690594808004969558846742540168640286223875917561899922941780618128638247651851174506452064021046190580774331955642462259010484383597688482038618358949258889520479228257658584327814117199588609909274242115021372744388678357318069879387500115149993938553759773609157656909751337455051225295301284171738169921596820440196050643128449366432493225025964307317930443675718052704599112191962030069970874733665798969437470375146382964512995933670273879469092909173793971732322858641478425762907573507958504957214013688895835278120210994224858032117080099408638929263847464636070667981796438786168093438258753142372083958755396629195222549485681057420748894215683513999247760926356731578617752986339036723708912012956546672411509924813521927386456067376726926057784765377931479298559082232072004745456241040294062392503280784215144571123734801715487981113090783128398635894613426915581501913265975772347810510873024521091372804138201753955755732934579013937718891806311836351731855175543963594814834196842196944616330342284105349887002858461483144774324192762495220689145764826744408973154322249649504010532214178337168371706761225388601759128183333666566080325666811992569156370446325138034623661628237188500957594252458739095519226287015809744827111985510352929609023090103640263652056573407454365160435691623670814376928550823984702589922522393578784612251256779680137707694333230417241154545565874877078927096865895399697099463109444193280795048556046427232865952001354772833476671033594244211488013978269640880824142322131991781458177227028950929520614563024923939686690503627028521648997240132121883919664387785803679005510683363518737393950206526667302869337296301024085837623845558446650567148610310431979083876799332275113155786941313952176260977214632568416227190500821365919554347933009690078530651587837242579960744465556594821854895989929808697574584255932837898681647725284603182575166872630901014171723543226814998357847500514092558486770000261156186839085240361334230144968421033641032785927370801951238291508791478918312631041868324928171887569218663370041630651145711640759799562615922690298182137565231648860852066711318741871435182096378853442993277713925143855732482188528107691180336785018709898249369261988051997418232306596607903924671083644393481947602754457169203389915464396592663665926561184754169113541913824892792870080415478774226949609288641984337898624096374579509621021206753186399310897400083107866127880301281860267197417182990096091313608581994857577336185931314878021904303821593813222621078873866413818420844141175040354693935281478772041335940515529320514672122603117187392585646159405176507208076720260450903334374566475925227230007035027685765845788977433526116578466746320091915814220192496997045769230320685446997537427088520832715120581378408829050014539238795361537710094754421989722972800724955698455301008172327510381055146364043400539778433791671046231941117644054149073169876370250847108827560200113045996420987814294924284031807383219101496385988581043209640813780490927771665610857135803169238560132321421198669222307395089652636962940781974652659455733163849385485652150667827352251897229294407162045114999654632888357215240504791719683516347248130468298627695970428525200257140933106101589729836881543140629676940728546256768127899742384826513598329077819586390593579622809026518794326831866891002299051396078549538297337426592086133860758182025348155703284206125939168474749953594987123828816643457806888634918357393191566296047701574181315639360998917082731498310589566708059689024607605279418095597698752771052751528145120091295970967268643723280167009116654340222638592205181947080582839330412111956644266472130785834952353178273531082326128441654659171181311455430727813751021552086226685944606207176388585181381713733123914757935591144045159094115795824722149246700352903963611718816565686346635847540128871088269273824784816721225391078746141071134129314700632408904344291943511311412681766935149965721021283712733204570415667956691615186665140688259620145617195884755285259752298584839818959504835868542323935247415871270230631089873156428345809877168015201665641740020330191107007149847699370584479970077286843555096868647475161383027119034794662395986653987491099893226695231505677239211439463788340858887994330866701879944460424200839189700482964613469355090864738703691018694647942009075865529216579000689779273247204961597350191227305215387869626098087965742405505338624493519882373680264823044284293188365499358916934272324370222298209410502855756393643684616074394427068139751756775607840875566680540867715364913592040591840183856304438774259563408495992700290696369069493044165778748165008905641718144026010295493507747221959281442878386287984398778611234454693162517671581815222399617367891566074048751008154083764564558336245556479629305710292610521780151955359567781647565047591107853923381254206353555697946934557240207009742207297741926144928712319357840544591123413259477770284692796855912626180816504096670672833762279284639939923069409514287070014334983778369050612565153046793757953554445949370310973537471684511923306253819091745157550873233865761761655831678051200248118146774392507182896578258535042993136619389951814693534090689536135872516783135491243354398702103116267049576752987277005405869797680303110233936932633195861322114995866847904624520750056688858312437172887210358064427411379217153236480092031462956981047521585294184801296898484492800864739258465988865543979772048072014766178121999419709300666075493243488603877051518060758723125845761236630013707138393063362777976134692592585158915754185956728413292533350894456029963547831818166025824737894467428733183645649706894244114997479516997211249266006148480606914984780728995791066697418629837999348499772803512415479550627057204047674194289159967840992193233552326223084597984240026469044315743610610193794636264718420714376755813775000328452501474427149794245371582418928754201858979448316592461899469585490681345765329576821868365734222202178808099422094410636246632485387927327522962000517307962770933731366786269496596277696444993324514780864986656050416163257245533863206109811648848332610655790552956083933069950109250591936242223387964386326570365877792432723428397721809864430216838347730072951201767613493680244233220720805391841112587237488172226772458463136754286834059887568272140136670700869699906645535260675441840092769181269113846694827086098268346370073501921277776916439417913273833093212535568364012748738408399767224273661932651036932142885156142566032008079232836320070319092837041778186379834962077455807874578553790154821229003704754758411204148185453953391730609745557796062200125721587617228691194164263896570361294665816777934894198782794328168197414478933238599834113765899933367528274433380800101132968128372931002567011401853281331194211140809272917163109463184445160031377287818771820153382019737871755340407672454662950239453618326936395374927531625653272387143753919691615686131399092861287212820811400946957332368153042537052382516090450536577098095229539702848834943033390787144298562902029329804721364201766136540101336209532383143912634057460594020882558678914154681991171768202712081127030655503153907946726669358563296801462935580157353064120602207323888108591080413693711572275734412200116763763183969464096237944200033461811376513257474267882930557495537485098784154968248063050235422165192427529934633984924544503120537469376729151147076257674113520783147572567329597907527695841649225336967372129420386622566988002482354989428106092573796148261525532977185545552934743255439761651344239937093898638857498124515538706778097330491600083303860073446274487041517979563047018378078225801180488800265931526026582409247989575428823964925710593675696023480620268396341531570486622519869829364778062262991188979958383905815724333831515135024860901304298868470838184710926598775127235543475668453701207682408199625137421997679857374891785510354272395113203647058555264435251447466188004872454548775641476282630825322772022420997432502226242462777381264869111961260203010311984480590767370053475788736836788691675808785418066096395558236186537359155682379362327796461092437644678765765445689832374905856901401327886483796051909226134641285769303591760488776057968183015889551297642535935305366696071297322536080352518783448959822758380285547590043335909551795032786564814326887090178116223384267926068454282563662205947115632245288287750988555403230849238672887494920507311884214520994964822675591990377894633344136199389966752120422555090594835743530364976637478998852798325914037325095494072707618349442215872718643300176344504189230602150801947290062627907912383033848505756956648130425377017937549129446786215257535559703115545502261229553422386379193446155191273396504079899855164536753272473984880673182046384397581043702515029587913625179758401966525348348924317535780550083241758256977783854127232760345793483312114724882903418804244623987156533584057668511627718747959291780281271420740434271293416443466174966655839925304160707048531227845512343993376588740601233800060899552476147457200333861788835276272227529383609535102143960901230309437682693617329386206799778164225126072256366428620464126020637972430692471322504142407696176789244628795138098946205276573492549400311595067368711118755315779049003578028446557613892899324946785375330439558734975657931221666621693453288401246151861455608983036612945148495760172918049886080097351097614789440574420002177247295699263877647264759833900552557187804758756981677106072455075739650415439145581692406260398291336109711457536716387148014021774576381859683888011198365043907448808063026940628977495183126889815410425322796924064950474188478214234005964450286130413601797031909068874480569465645736333851281411625921673164127597287839270971371287172220187489985195386212715039948791245582132348341149429461650290221889403707907482781648858613243489187938909302687343862714897017633222814393410660298122794917213244301145888818025972373783431857565694457355484733190440722083185017866816671757393081298881132042331941616100244089779110028237149768016604127513180150820050081474817283992093355420585097906341570952893382292403589544001616167534351865387873195350019629805906666654502810880216526654434156047438371201486858485807773802426778849215819603191290157936870323377036711875751234544485000646505615275329451903248777250389592559851025311478274479447527957573356560773789544533681465054901248077774778047142521399513712132146514365392389396472163616396501413158233202381175036037337364000359501159389732726218056110663327648511787508598153785563318057473029487927611814066243768935632871124028280189050396312410915308564597189296313818045559295149447202907072175991821090075885573984485970193693275763758456512303612719402157520788176061854494209719638563855233863460930147053232990376550743254839135711971991162700889312974071073361062077441053705226133338387797591030019670818499548515504450408210467692966508672767420409957620110965745267398104957754957428306855561462955023491258276351632546764649594899327965135559448799050207622403930763409234136908696873546757100330506508260194032721303756669913078073603017027685234368159420067969848628452903234602000529857733963548957401820743438101460390537134196137363431700536748507758781706721494062436061860029962768854031692173026977571785373469721859096245966347709296148105053105071498018385575453109185750113063227731447421110416479883081107537517873667515519878322075067418074921173481976338993298566488397915984742254190699773774675115831128345496800617750632172785061070134039683246113714155313886290093498854843244806018916733366163980730249754789944517973741738529186520285799514637127278049318833092735095489237342833760047314408176336192324345772845549976799388472916422771295842018460080783407976489678226525583812580292473274155296481810601401111594141727144108803809363811766858188996003544293139716992820011515455443056698793986514558637524497598395490613169195190065737469296234904920547162145477527859548538976648905498804135609598509205819090741018176872604693991510790595729235812062801764490233463075587136904655834168094287961403966936368964221001035844603658390669195416630567567189890822720317777223462631527233173258875917657098432473861703494392491802539741476543069053399200912731256795833025948650635913815556380203699343444933172934411742415259626927143211681422215874761940465278278543261059378224354018736028502197495107760452327659679421939442801633624693534710788165928389745948072495788884422934645469337349494113774667813200013665560486376747949603388908726287817529486301076867487680436068566305984476869385527187832298650731480949007345860696167937125229577218783209852869763368802820166126821711236276927235606963938228967118556628544964819593015441505779372404536370065234960717885765966504071539898744354159346226480238798604992150771796376856563492029110479852489970449057136645780994801183841545857655696287139424064925013934717408945882502528952616510034908106875689423730878124964805752335777870003750079613304175442896256060390004882285499720373368941228569472696688233581473574274598247262765100123285862152962320619974666763598654292844048555648353800661588376063856116623698269367510228733152180886402077900594246267489269151584620347572081454838292654546442550063283303717472043278272048666295442783095894519708008619488141665189990768749509221811118969607268567617889598116288048143751240103941301398781441949948401473594008983379152933373994733913250283731850243002866469271279815750551349899446269642280748094256811451005078936049877782027651445236211130970665374188561577423648790533423851093218892047899898033807325914464144878657449857865240654782560709081536581213007576580578665949415787824279983260528707609334912141038744829961451368043980946465443315574924208756965837675629545634845383412078127335060367644445875775081621540410369312122787182767580378838604439919141946561802951897464949320759051656351941483925244808955617470079612761715528499144873399258637844483651193930957247295772244847003221942744666112896562858493806165299614252660296034430166519465692396670533244409720384954936177049959750218132965817127941403486738273863732270141838996492101055190449115907215519354752806161579709483972854558646470875801315879870160679265034545487672044039886637040356567943271999638901283833885844884680889306616394500802417024227926374751440435277575948095630385487534733515781072698623391843189879341683932261066916672237983897476841960954839272125159322156219298809019589765589945114573208769837886327638317522317756984169569940015916570047851756430791934424204531227170935742414075051400311019968629862741819524020914489485499364016566356513070780804094983352883429717262653129544282030964351612585118754709815201504096427230615064872583720534434107864547493607049941906596125420362805164231353589174084536789337423403434778349275625329084987353259579325135959745073204827692215412005365402885033448263997547995228299870721980399686316224675913906183955122748895642186340353147995857311180445751036150732177948632050596692677885900599991353193538277562927574998957546578410104212366781534849729937356206742777894847106662230500733482400886547309116607265119723256534414111819687060063354279166148213304615269591376534453014226648741050889220650897632965257697805066542044328438450194241921505666344924585960604447703105778316195906017615145133099119975365934686662231652241345548667937832627000941024999331694371579275041950130022026358780175794987886617273656287584038862924876180539161212459790874542624584878281729605390675087141158398606222506641358912493682946808573616900118512739992004516757313379503540353566651527066435384796683019639441097415754593240005390155921315505500254687370671519617319946737885753480090672330698956747423109163914930397514518949803630794692645382174002244080547376132615372893791467765612683375129619126901015226327949120017070777736259312211703788872627845923425085784107741291423681709355866949202536920932280289372211232203460863660088846722616971484572504545147898411340093493649062163746297115020311192831321515765397149625730372133132138910641573842156636581392595502924163018093598255442205320071323992222807566405760093585181478669711358556301480902574729884877739210672222707447128025953366416457602636782916201932331938886878201949504445238178290383488713544968208393621009789098618113496741282270934647573991330170853093171676805385401646353397852771554228644859723522908641639341268880162821200490370741065430804742202822878347304022617988468559001861867943101891401942962370666218336584386064916653962246765144005454729643491275709551602589887653300624893437234654001331065232545284995573720875182972662269175055193105524111776201666030255279280565188142606123334918178651212560085082470793857022290906030452167941675071853695384593086284987346899146741203861148589474161260272177794801137038464865455639567107904108658370604021367835368751145630309030547630592569916639891247635148006469560273367667702571383438417752098117316899115117758705160502953968098461776800314211324828492588246760546719186865776427409290633606035013515237474799957111539756930009566876749524902979666556821536325569035517372337088296954473532160085111124692229974748679872679518291924334426862767890133936632518622255580627097585452185481582779010866077726290458662150157916686888095275720206569649295355419144230565437653881105986889325848708221997977306335293764721731526782951331933602270867314074769059445645324008700246467174758940245568264738556939848986791950853957318824111505997637924021984384956979210009778615828282901995289803672372094339734564583284820693872298999209110748323090339069980536199074027340878289859148273498936365667145750561006372060792483182684094764959243544495571370522107232427954237738866587234918866471834675693592851750762544889989832065004035811394891838900790386597269405592499433898763325130833356152404892806461922570969217791119372581842185400137060951840988904582250621384398241908089617834999358366816481285065064409021875029335600041801829552848568547414604244975274681671899631765205136520725284485591335923933173655494917815382538073461008661919231714523791536145236335311819158320864834654460433248299529848785508450007723336097616373676524634904624728171235819895912642506588133280102891972648639859785520908048309101381090706547282808577814030780590236567798423923741493957919623969427626160918499317400475372087905227863900397566415685390866580573134823087749287756467677945148122202082809773411769422277720009797179178865022443204351481335557454422104104983721779030937869230994375173399340887081501674179196539754688813979940062145944606542956891136123700606293058523584435469817384524056209491538524025772659000490935659818057835445943264136673240316341916473127458603575356312589355798937270466311423278894479829569574394418623421674628236798634340189059465723506509380506277036802801047635048528158508955781410003278900295764612387075335357667094780460837546558229350699082198007662023989200819461844025543997011716088626257291095475979756715007010477823919909392271508519135211305956493199652771579224083036664389338478646541306539823036450591419671987646729791544516056023027913125174915210829228523535167099938448670083278332734701889355918752550559495621374998190863986369236592939669632331796520934568005689238350465512149423222574848794097921569136791690965878908388939935957904316047181612887620359791138340865375086226616880049477858479754075123918400342017469032442103995762404155134855708474961363669733868179571344433511377928423782011289530188361997890690318702503677440494828497460873254110166897827160280500635553511824249542416351680593942883775944474800955948284868196455125296684423097255102585792562818491453461283720656904343796385077936878940102665973482167779950263533669404391422112209935295481931757818592973684280291698747397631996102772210651789298328605456541896304537404867113235981348570809515920367330377858674109823237796797650244657396164434503966196725532377298267411865069297573154764381506668557211293099652461203901713794452706586930929631482135684279325934998901481998041262757202444595005484628417656516436708731726179465946525538924496905193635156717842264075167562328336193444636218916503796709900708502325908847172651503802709390919556003023984446388319572066851971986889366387875241960178447957725793863407057010433221214109781491012039510159098287934694660069575706046639463705996401023515669748545111450968880838734405750972065867855115801628447808946744987213877585480472476668024606724439129907446399356063768635412072679778716406443885159281477542391694457350795254246944861227868637542312969732484897435898615201417269884030774726937394383355295423364137528698934173342422633559382616119051815470183472297736012596763805461957023163475534298722419799393986923892718658984834377818391469475812825486903991402934945910744244480067058540386076329384155653063500597937977670823231943854443830512527870391138907249966314392364511565697076147497176989537224150285016900150549990697987462394325887717564462730849462430985397884049478834787712954115995801685361931396778748653760427256149396619738773345928500395353620284747522265185312181542749152144098397364487504951331666236050357902297034879007493736119833753380475376469112516793491095851643471122391175985655890757191800658733598185543650717093878701992051836104711649138201798793045414140145199308332956364424990346505013761053736129163462685217139586680785262051658769956793803739823357164074355894056254476233159015601941546075010654331407403693663890965691810226948596021679718387544653690808798928294318629092369520043716018920899701972086518788492664973840465346655387519987199201673287401101922431994836305467003475015937834851710902585866638937271850792044189308612147032132816462836774962930075620230854611487664538677742562403147393985960625636358007842284820380930696825125164275161912257771076228664250204600250411144723132326117209315279328478962992437816367627042839799078795227690697051490031163850832272184617050748961934572517001100296107214182384296055404323862397757161132249483255234599617209227036800752038517421038996882998626783060786304597781804000420771190514726921876441790549257746177392995843725822507525479669369867733490447462232834088819521636400133816521981714528049511350097764852875431041068234566924599624460115684903441028106440323697860278316804947581758308428056180179841215018534573670878327919018706629271711495548999069280266027224872103984404933933181091461631032029671639496386759883249821531218262753141664731414239978206090850062593524376336966801321127635460209490835036201994799928204872167691351470358948779178973739722415987193830319473652610951062896633588433051776825551654686844884525143316475618752275779135959796610350679954057862431606374112663221023227427907991309308016799146910816010321885646962064265109235961324757087911091918848256772432906968793811942945449974336978396464573364185243871294314384601022232863010851714274825211223150198566789569571751751280860299544566395904573239084902412186353861170147162047233175835784784505357229842427390821085685994742804449089919675770492292578045079725196546848396358718388201969409003513073423424625342293019181831507001165605714122811921726848839439864902147925286755369596224617587843829302232850766079178872059397564291225707017410914331481125533785489465407446040659459800759886042970052960656913598098733679423699356562074632500484216993414359648329096302015351390244654472985705440549735148626678281873386595654922827784855506383199424601319709712529792108766594913213759904283535769510256758400306001040365140092415138106190482672498703426760838613090977005396074964307809557900729782873320176957411448457389582309029788001177783665782081649713750492442860574235896428590380155851261329949965752959931029608684077192497844954814355952390653945025884342178045641589634155684775197342397300354349018923274412470804741518277887767098847356729492016460201831347055675378021372387450700675357967446033769302406707274062513852018777191282707177303951979866415324950268705459842215518139649035180448016219000068973823743571878563559675678531016397118246062301277281040263799324907419684938797024318010113692235751324207568781780803031134211365139776335202316547705289853926892396011117871516194756722107819591434630620315925145084474298784881088312461527299423913800870508486802152234717208682342330120744424284300851172061174642667448073669803495533215998438731249546413725617002640042722137643708584388163830508440810143206833809513517012257055821078860235565926949175460654886269463755220562325126758674044102730369014722388717335610415889390384086810137986688220172192578371676402610686781180713119063988383221672043451843879986113722196240792236329754629033245429596941025426305400952041184415135501736895179825585438313974076911684430029958733667014218241217499757498085993580652524064589808308838509279306749088575916335480701321551522586451969074417598959389623368228327687818766617388939535726240705952565040542511225954514165096483846394107495664946981585255537073243839096418877146593024810058832294147028827945005747915444228487223169213233542246145641971506177404267582973224267225789109948564810428632968732292014175544113119755142619733931285985490182926965824393304402897428182213589647549837136349319296057131053302703998501144495898502647203187194810264787994370396295746636822057597504400015168230025015435667254984224110165362812591024873194300154689398415892618828767029877220460742391364189873331061977477745874382258749690071291131422355677108357997719790395484514777442095119228759110276965225532788604786470815175377737217717511953941231643067376009732200048819347108107721708439293031539889129588270496138598452812625749400340886909687482809669802971198542348235780566107404982726374311191430493790220808087327598286202085504382473546575763460194439628572876255471879817664030872901420127859261983651428758774433519768304715746116501724991703674592728557690196607458346850555748292625753841694062805501477935964116490577272847888232220616775761408896679756759003114689944237765264008388426789738088994037962322798862302050284738447248239039110913423537423534228849895644329200664974311655829493047109679202541555127262697462741642459986517286837471895397058726755843232128191131705361035808784038173087069445834889609566889234340249493505910082428348632067622887773740093716576396590776617352037322445150605960813920756887523902876905342836320623451198018980738621282111710396563878984178728664247176853247756214903340215157942493317061687077764567815863201294758238040141852320446366336779224289692831687373790847971053741502677116611637737224471028706091188855728945168147509558330817312988645293745048589665630526746934467505470902660924165637693829194084728771775971788819929338210097482820085288183581006807873269078904472747947484434977451578671229720544846853315962166562247090028972096953791173366243845744249897652741904351062723658650120508857986834337457341163980275210350443957012797987260826238990747978914661108896760374491975636431490615563783630004125656867060847309781476217628564623137465694827958776307133333690158915986679459380142358347547593939559570668457399480436396109837678036267841525245999518794323889333034938380794245796744978717143431644984830561623245242135635885718184702716034052136936628841666835130781381696489482612679795170551414173896275404868560480398116367343509253002533321634806148581258479287320321141140666623116098264832188264442045424991224780261541770812300398368468464525791309765953893703912872782312613019550117271245903174171537054806545844174407279282302213731157603153075739044266283028769955914659505581001512208533469216526822655550419922803763785112966491465093648148206124541629767560379543536319237764516632535463564967990718013981978502837445707457309895899873157848270512123360239840448053147493541521396304782312479097828422294943410910018896463812380705451976546089978509337044020196059740850400714408203676969977962176693044071626592416166443175243373582753137530167201979082622436107823076027905028330245710581050528385119430521768980111673720745332065628846190332992650233239154433068483084663809936271596582785284254328141721134534933490776882343207821275931619963104556358200904070536145122004621555908578847863216034196099771462175863280532774215270151449964622123547792816650236510258397693289860073195914211010109805356610010637551815046780968951902138837159976596728496925690326541267157831229029937094032343844292285626735694660998564455021153002001844057992867230638810970760164155016227472859266937609749970360674477570191615318258477387157031829022359331736135778355899111459123385099903882247147030799313059562005955208234790009238356033027155666204468543453312730256682161949308189087651918843721008092423253680103741528418282579023286498246960295288141852251245632766445987203121307718638723350098929576939408958541339083461993088665214973809192487227786444216366070854961366991899622349469666221176966610593787700114272713118030137754928846013442427452719947633844076465925193902796566722846816492848945843154039998591391369349968855370505360501517871587351274808913525002911547073555210478045724960690093203471146040765920405924351818006146290456767877283979155190959919838225551014158658242786718535108908465549613434809530933479430697665143319133064312529518299007356360824001150983840074647827508480807074083936866463686704945027068307600953713111361626815912784123004886525023220777736641642019366160919974622586033322670639639826325352800006607366500693760629946587590764728416672415759626038904159016543588840191089289066696287442902888443310911743112618142940137425490610780231781638729520523827076825218529465751014166429122128031404827516505497731893828530021611235421820376913584137867613117379558382743413976996117400567572283151873736995241338710416754432603700350348254720337426321040840304059776675109130725607025249661669314094473792911539712790152832991664103865086286469789594799649979980043273590341217495389754686812283673641067319191026902948192340835817842823141658807122393734623000770338093816591566251090207863973718690219232143893779193088238603489852978810240384057396642260981665079370155318620792025556365639902998627374725469149359173488875206058581761285925843311062961850642975418624639048751956557817083290991214691383322099272745357428828481622966753356447725118071509049480326772111141166575861398099278611335044863951068703186087873738093157888640175558657954913402641578664067398425815566028633038651026156909016785686762698972864087156542894915708274295880834074816849480654903118387769466351599854956486407632575924792498740880728354787109068871079008840850406033572943082552876464506363047413362151017001003857824598560914832068169076548847160835543355103105240044290442423039009293862300861482386722791840436420972616327656880541511196373640454786157807760748654260511072909431381763466187771986210617981121706336237430338524146078827438226257916965140896025871915210508017469823605043435355942401205547978025673482571184748181664277127810190788145289173958186773074959024025505843371965563817501870703602363966927993085618369869041515572234911229970809318515491858086947828475410540821814356856792724329990728081068560072724238668741494256378661732884343831114241993975191014398764226332084707936786443938313264735169732965256523430693839411315436313450026360956425061508040096943569353346825112880484615489655543215752996231848306113390126614051044084003682802399316172934876914722977710871670270106522701959222291002641814295090399622844381538004292951377270939474687960674431834766701497684996423277253121412134968847359327974753978938730756463927756541418530747325877470453126346072559416489209240994301868808711783549744349794051433813780891440429116082928161758457660639479005475065000253357245845805411112128475866331679128990679424585034689424299838526442856887231810293865305990108578817287674121485828247751930371927115901683507855708061662506391273671654453072754643352296363907055018362240546774902916038901899490282324493398219496928968272743810515748658497455824132767763729546721036338584072384864184349905194925538272813979652929486533908200676623581645423825975682007220666506436176727855920661796198528038342043455186459904078022584891341237606089639057454311375455078251346646534008045668899708646735972755292126514161649658623267924724047320340644992072263016330745115825343529046356275859815799027092070111522824602538056430239346323255512008065107922152847116374179902686636372519814206168485282546127267776828710298066978973120751641889577892520275617913349363207826092343458364060436591346421263301326921958452106890978846725182385133184288774917583399860496829686335787957707967835550080221570658079303720015641990271044397824199282413353513299452932973540801202383188430850330426754616851101348820693145467181974896602599922396313698086965764221562510792216260771714762975938847217933912459654868006103268732164266430653775286462201396353055981945058056035912406788450227642206382334934792499936512141493300649816104897836688765446891614857444291219688462786478043615071037376557569133348343810823538767815817573306752893070274650498506794474308364277425609289945301020501655930994485907891288049104300086950099401766602223464289651915098343246861267337098197460997020259994810754047616515912427307003808093299436316941527277956331538080006564250133681992493971198940737721255526550435305190621170534698868830581431766099625005953403742091381132962334082905424372597441148424483834935111232064007140490799650661591185827745303677444247515929909920589448224042842293397489107245246793820191993427030748541274604506815716851518161624197851586914272275024814468815603288969343569041370207250922394063009045030835632034204129455418329292301521478265500865178307635442045304322008468715431865812021832355755766182387938410278636557408225284358555724769624293920716434634715256941326300020194356814043499646680406660055215963294200507611305938531904527800162865465864319927384230484564519188080585341498179224869529362679393803251394962547237818734796362295611198829328041420790966825577692674829952157334076299348760095361591650666066509470735180201439635177765927121170930510070782857181355405946816525672390166913259480190011953405303543932779270574121907507941248367897375496886922483279097451917057355130549207836892130039288760330843196344313661118412394496130935053006673867718738574335999469327643435424810010800239907270765767458079280864654794951304074162748645839736698826863505186789272198082090293447181545346771842597260111022214855882806144715333206361903701826542684040454225300766587751900101396223044264493748995271608710858571206927929053353756469275224280836428416562103863835680566544330509073265218708637777137695064992231373638151184475846631707936786859016334191252100463530565470270024299720561752619957501997885390777798373701400908901925141875096662206542223482838895450182821006808474660711461817660681651754838571304585547700717840973917518871024410792923772253288897762021935308536595084803240584529452426262250955347386832474758480031217339902249535393428589619683099307696428373870369909031822787850233698283116161550458722908087893120223872047655020930830827258491706623209811706537870991341477977879034452913829498907660377122694311399308231001985039032993874863687858247189389379668013592317303920758363482439404105355858685603899228073955368262975448734803992881181724953976022506823604354510669875945782436118741469186498967743290270596265872034338300484105989559869150522613632595126118389543363558796828966037324364271175153790106137195802217622931064274838166469710911638709028214912385992828774532915055043184900198622066487763985001845502952024971111595034329490916728283294083878550479321586244086566886133972838578705297704409521540736215675182554942967163781049662005049575337475121356799530733992696310880390865571422991052072283409991980897741397716515188473887800792153779457414483108797126434782828084746847202133537070112096163960695913750657986111961492633199101048421947460875271394424079560286893764599197299810213892980880031267410315556102971979363437474164477538327184538543736522718751667767701890811691638199404040032760504775072676378728600429124831594421141976952237322951706432087202620758326690868364975778881381407679587288146799668242846982095028427059745512247467103154637930167154767867044815324255324673824670448359681905218598275839462656112005622195016415621682915287399624580483689731456895074887694604031810832700961945259798941890052784578082724372614631760495815279314277666543272648111149612612915575377265465463408041395066194985777537775368510803659577393262145543146579407155668135044592385299468229025073023904779275861039659162512110736751371045711361129759419927637747342657303879278035460207217261035743682028890630350552582370596306055198800852632696158150564673839207926478828756184261001431943290759806281945078549401198361255154693166755463653686423275426431245115367369300957535200452469863751666785971441805682799254557422592806321979628987781584437509494353434922716293916887744676918956774361280961947590280316983426737306853324915954363569857255433240562051735311231979397736118418268704461716437019110565704548829773545468018521475737822542732707095996067633837840226336474537499366227937713335619757437749046894454570234444031800201875900642128208675404410815487106309247646124383489117997100955214507431174476130017054645557630123990825895190252922979910942653004409216589223404924715456124348163320923959446847083594413601586743345251339416367978147323079093921134185187147151601902524508443183073334259365995636699216333455185134622214671428878032282220702716234742038375824987174402597542266954726333234312906270390674064595564530204623686185422231394130708386089851659855697405583515661771851839770236597703340906029305037967333427233339328940172692896250136611411088272044896959417034259297402721881846881919547786616350441000702005835508862581942198243740097233556101044625018838311535394112323041464341259052241229466777378174347028449891746626484450616635256830274013521700810124952650086998529402919382121829264897940315274041692078915004259200839281451628900171441974644403633223006572392422194638572243062714871663491318318344954555538238619086159864386077487767623448563437475510970577193042381068141342227360035525290360080899838629033251878260275555309828244595413901637542229121368195494066988501639345349879358145313849779158515407706978348547643641408637048544739596190702183021227130580313682980764051021618021575223093526327914387823029481663153868696360254050982195305846717766836215234591133836875797471473438445401578839315749115452920043498752483956306260073553277393364883198176824258013535947338266936331787684789720961178842168084156775793199819728156802617629582426111292568440308254093255008707662817540883871929662013011252723748380844881178951933056751016558028164630590494681466251335406500934804151868634156418410334997520548996875076477877604253051088130638710405079179770057699746925758572550259273674743685737921202934511886081651602261917099927838639879343973885118269411130280454577188346894304689056582480263482864099262783923865073007531128225009213970409441303771337361244524148793988167645221373159838634875251772453432638252348471820208183560385273146538687887844707824197979823319136399240496447401867901525762662972131369804229081291060892455211814015554435425375872702726850297544753204453026158513770568273715647459017062836047669417310924290953545741133392801899465371754658487463493759530672566383485610726795832343794486382498719400183374036510819390613835291303673172124468552951048685327974328974912432351432807267796491146993348491435538196408654101507248084910103750243450495860838680890011661029780189066219887926415969054645407847224488225858642408555181183049386796421712462057094507003214224861033105544611237346618892061913493332149674616828558630928741067030109544266248271339338205514656491925319884442879848840799533524373400308385673217645672419427290025696970599626769579364884368246241531136842738737203789025050564975239461906174002479902423844153251242131599324048514307066434206752261911778750795268811258655287440291316910432137913676121739868079590402279808624743591942439518957082943427066436789348298122761804541915459203047729921633925958996826746514085108967571606652629360213239069059917359085025421056351361843546813158699964883943816136024403334868728110270758032399083523187500396081265019187365317490813780080018020000921780214305404088322508394982701064964276732367208109663238131066129971336034510467184405822199264014784965015138363892887950178379245390534179074492730732333996866245961087754086359601995303527195353688047939808512630095498925023903092297458589562717447799831589824935724959680736958181435397861874174902063843600308526511700928382669059505813445271183565724489516871184432019293731273297675822548404783113135159019939800668382967639786929540608329415316424704515497893945118701034122043425474987500832028974800742821802939428199705076137987267117642474832066960881076448085153726814712583328478549782129028012113600426782341250412093594233900117152739214852063420378184500870864416607583616890899297910986785623856190742894604556831413191754139846280844674437801388197141587898844542862785162368639799993528694427932587799239833315163544948474175930753213280743869219018596313726140925374263528058709396813595372434535597558124255160392165238923627403609486942723659352415799299576129478721866526531656562208753743687918743673953186702752535096014340340187111957087243688167710882357152027796547588865762313465081120285193392693037542765033132645225312991762289450316705046969957343131076892824165558826493706528917406316426731256600093086437312497501098937642217123979124184895082865300737325428449919560877125547800786519981939486103268063234517472699415404102574019144567069822989388848347832054250624008490507411268607983407539771784219318883869576294041997717564241094686261377466653707614753693140715005308004644058396442730210558398163486651711730119185688479649818850793366554974605368684704820696186932973534389423346577687448597304579382943470555447989345493716057844164288078468622751138360548353121076044083736544609130067136183572883380261057137269342775612071735455896700274239030054453007351590483012564514117027154892667131647756303298356772561053692851271569936645383399412373054432104127368746858254411287279084897913321142238566021696495985902992871806863681427668240136581587218363294870270981371712473134485435626229442594001261324388543287480975932265597688113861903126967144969027241803366298969251402945549685983304146753573122804614158993345756324030829362821644826053491682192419377487220781247339286116859762853896276398569303711760886798994039315859007316508591727410273109426712071285275467196882091919160956553286524572848322878930557107310099986091502582577985505782221836204216221557124806890532286917926332958558130942453000155143161940403625492425348377546265116880832146962843839041649268543214598202544297344909142643264076875599985748652198751814649117210786398865459140549244211714121645606648695376223441695834655140878622751586208944877752837652599947340535604574192978527687087897271141944477328844650698439852750212285192905002200937284665220596833020606904914049356185705168077301621010619266110056200787286137054357184514489703936080089596958870334953999783822268719856904486977353963709651986771035196826519173247949217493557737717561477901897907007676032097514666925520028049659216680713618624803793784499262893133608280153498584847707459926753493504248332619591117549673279674509784710255382295713999091427795219356788292394222593074361263152433347896467669073264424314142773573088556865165325313114620330964725370194452017144978665990680744389566050055783750493609277613484723595381013054502859417162408035679767040315124757189356683059260544889634320878951434740590289290166740828015806255144412440375185241605847027301449717000841052547774108403204148508866284398831966272208966854457885202090517545699855679493578858296552856048755312063651528093639907535054839779537312930580735003069787413985536137512582868844940062725186473306704920465123771023859846592303375431202726491972916883048996255253379725841799441291910580175375290275726098659890900483235813895878154720361281316633893441374853236351667592896073299081788081102198653763411399171575650052850448852971896464238509452172522084937040371342829190760761582389666277767857394635638086805762329881596779162734136691819400363807449405476672061015747093236168243178720112585091309726822301021059320516076921671694594536893981329947789166257221544069913650084677841120437619548273452202136318033011574977260545546027063404332700123587175082313337542982835789892967877825213409595166932713471542065683649511687001036498255489880859322013731907449671909286859134109910835671779850736632442214951211450375574749408111000478366897347834713816254506259304537286925190136965941314498131333256810410111803000127678398393526010711654170368068278708217081925159971322920765746985471568604108138275686605149577524969720335729260940717700438327435392608508847467788856777610983957117462703616697034983239253536418968906487790257069306607768490150508379520341222117141840468960569509810748784459977703206088299374191714270565008014029248292807745148543437788827735460954093132069914109753263092521449963451761310311214149095003084868006037836084894087788972874744052553462573117686707718348257058918411358099827868325499433924346658515508606964899243772436062913053094178605520702757583198246217263170354525847063504841526644458954255743580623079556790328794370032044115208569945481993211514234054156626356081009532712393200011900442563440204201740680303047882807145880492031349386030117002801074195032069840039797709555422259200560127046158351446617472101601180735669208375976229939434763136306165087690904763361539763472459755595278876443548719797016951703809037670450262448663431314219168654655588970924806175018820133533643225848942955131392925863784866593331054995826454778019091824910211498210953669149577720704748743348385925942215980620538645109565152822981939182405658818912448824044135542398184628507249188400135490607308466833400032249704326006277056207736684662403727806317686443767991414497086230996095283414705932913969387707662366955876601421811391094495146578666269842120730280973456937293807831509209575101203365839956678990373078159237584749142467406929375371615917766264174635980860458315707640368803469809071275561338640156332390051739793284049957032638634037490624430511503369518563838984036257310569502950526273013754036721492036705218790453729780771636098375458276675161313574820954299008202669647004251125722794575725078359526721312247171578444676597566319849932345044599682165607034659036232139621397232227241536124593314243024653012359373713037870903452592523999257822497323479687560944410568728668257077230127977526042858113109091889576082773999835431709713270960697178206693141884909696943020621826775612147012802883135844017592767746187500079971943693687494579636967084284265575866470190313323677928918795428808169446087383761039652638739655928616761641421110430897388054558696895409799768302410896586356033934429547914842782225891262673825636724817904006855524830251302938902978616716240041371388073571212244893073257960747233559496168518045044914488313156777185751082109773244523490621213206894010143344312214013470453338063352034599609791414873366727676098884405322644308658064567076564265697133936852919089087146972625544208849536380315437557655203117617674524181822259358342118530785954102694848381852947923782229032714936003526815119151699271099945560862030785982649833773651199949925432673216492521493335036264669830989159339645206560346799043114261006807457248821177827076018801803464056896292416967189248376871193620599036738799240078196422862662321255238166496054387003711950452985229248968981597155001751733720390704985709794685013440106172734566926464861495560829517931184039231964042167788709276768451071817209985009962797419051001467190712878663365593234931307364459311931332173481461057479599968654537614079026473735221207971779684754265036078956298475262315179941517791670859394354394077868917306340865427318851445535653088243504146519792846039780133067600769913774580572094891982376971391901788727615885470586811109115479482893437014708622871849668868057794780667362736667434290345938803093959471427273854120655814327839104901932918277549360940765357278604536901620238479417352160959972313477909004262555078323225060224042174993212818574124744002552421828775854553082323570167957578656434576503428545555597275877887424558547362739590301555357138680745268843047526311984713366001714039707092961360640907918678619355455498046076224905773731601094035582432310879712266644220434129927174224883074176864664142404591977373714600729965992102660245618764681271629459100848204423077458776174592597161680897324734550819028969463164173199806687557762789606420444153341624013754044407362464047194490391795957218351448852872812314617608729513171282557337515933986112689843078602543454606659796708098248467683083454979107972913302025937448837600840632560139543136208760063767435860381258503411052195188877685807682001381597340389547214513253911215803611822409844959529439523007818212627589115478554347003845540497995077274181996066342772309321419649382392536041000669269383924044726454372187318594761995351274602461895868166563078868317704016282611577708126870211276504632046797963984360698971068237993197905618774940540677933245872031095632076048568028261203694498852298531189549099669258934750714497785828130362209518216208595702487567909387602377298306269387020992853055087763495255542671531548647650395721138233421243159908104551079853537323271036484568384534171382244547948517408175062364748098034765438582161489159963947062503607066109449381136534012620539136606471469129016669648844178266912576736561134449199878699442580177642660864896193301006607033435244315710377491700570322338940016576055439932218350758848761626177594593419135523506120343506196609855455699884368819511255489296988344555558440850013218106027644780653389779771900468516194070810420299157303503453121152603210361388272679522437657456294985853200956453825840391239386856667196858755219464542090528559045784126054408173036316165721863700284645458183565199078714751500806592037059610524462742232136490180841202814156310462755271698746938279596423192176925638980222404762039855712874727312273171679589905590473687383387987896758703266285301130942044935476463484356647094497765669308542622670261981491767182593780506262937295087148541223570476703933027231825564253790421983765354159986136169528125046849693457451839776545732108524990214134899189018159802631304657822843110966367680599090898537479441518125367847734955200961788647895238682688921825005928166443110722084219830365768629941837748195846522533602362773343020881353344128326162688885855279491582860005071911247211536786255594367471923400745230933821519643985842348868966695153917979482193044010909887548502978593358421019502882083307078974739532684638919525768387455111465212109086305907633798086516047176337526108897763840989925163521312976554217819579079957807154081615455025750320298641384607821013903069860019178832948559396173934679916564026664753945907207267526455938440081416772643044956153437546490294313590716047511337262651486486194154756213753952656793786834367994121511489144189154399810894190113984439157602575820019606274993912085531802983898678505185103172359832688680975980725236548586359930809964571429534374390028337679472591888286176981037014175251305710213018535490373983395077299708436918296485632458921764174719706448614586094270173467146907406146752284096019026961250207626691388053774633223273702336216476216416996427059500828577374766735562722187935568494111674317351303468593705353364358571817056958308818942172488208694125765142619243137254739703426301190125815980631873783511874769630592479949668326883889675435984855002482065219818864136670203653727042302968388402151863169448678923029301389597436502425942313150375636896608827234792512935120438660829651337067515597134153929428634978209030899110291571914289702203254547611272131739973634213202443793355695011373753736421865281035857162345207131207884334643190944393467430330932842801815719285730118350325027809034011027280746612010077639309921963576985248797477157500902983606126208639337123154023489510846486783661626809885593747010408436533159147633158171139739310248267517971886812422060721894260695967882403790789203408611679049187643069961954375283579263071084604550645851143622298275341465859264151468131910339473244506769607871897286422630016799168262572009041510588358091182981915175065452645374177952381062014086102234637756015133540672720801222206239520751474810692101055358621878747209185765599339185850901818592432180047354888263501943095208030826526435130172527795026944031805829947861675494056097812181036528478425675385919495104456151894077898390842215878520360167145270914112340328356974261678631162748188555993528372388948078560578849351454220967936534377042258465208114684904455350151751689407036459280052787326917829142344669827403845332654945659849302011373492337979173378356349788766733963358592367905736783832630261523533859756461632172603074750249961669461144379549447005766257166733100991279158464480189916338920953556095921089026713872119185929771689000173605279116047271553889779016035780793061935418160943761411632021487686041160009683717943467800617908942002982509043605065934607863560784668779765139648572924004575135346706551114281118604419975861079990293420872892696745433346225690780687235130754996082296800158140238380023205042819859054902172549383673611740293424376458417656166905395506391459165488741801391772710947782009592954193874539541457985359559976385389660475778828105075831015829539938825407844057434123174022376195796428690828123854825929238302008526802507542157686755121586759029705128875708304520832757036854867107537044602793284474974038916536488609592316322420743313270789399963510275969957348651224328082336308196652742792983156926027013250101878767780992268644180942462632411944604462182975962965385022640328537448963091530431710180743060106360971204898894938285782449747544198008824067897145661554059708134133542789760563282159376047506839943012833233112176089645045738822231382551767980866029795823681491072729737749797930715397344544013714278925513718682323001387715829110313417185150151181390027542055623725657999369442768339829509594484158933849100874405633781582795694460726307197099675908801356108882264256199715149157843814134392072387601467886895222350215166922951260757770589193907165798395598449287779356796443237786854251859536977543469334716347663701043878832133445215663237448871011727104274603882460331664922916271632262941459631295339745572610167003492980841986005896867218656086920679818847000521684417785310116888568683990563835622103630953075333780457239493027394750346706956628148943332270479420194495859751836896476841799572458898280020476361368717580978941067018649553622759602537709174101013601048917607883375349516753036304393520248397763762742336118777347763039330267787645690516178886443510746327414449118712529242532466174463846619280190927214660345812496654062320310254952911811492075114348340749030304631216419334161735621936264662154649632475760557681251742417844089888840395178867036292504922050374881741805401351329780898965188446883394477765168709157299198608500493833150525928453462932640312169184222520957515958259988688117144551433420537492871334127317971790127212411397469692796032702629720426004808213707451714904724899460242085093690344909610346738707121820921061184480462197979808120595088248769778212738759821118985268326553730018231079886821367566889904655675333352915803652943313252724271480653297477131683679478850288131500131323429545292102806346552175656849511314722235233364121648015633378237406478918915205410796983898944253003377119263009017179637630917132125259574427542312933106334301152464515010458710858484161930156657520171172921364913242838695008923419979065460481415419311994659056761548505476326058916565185225335288800727341259922141883883190803002474774621666188045992064960617002869273287956601644109345356934378524858671310419095495884823870785060782445710006570470746313771382010747576687329596903923564766356486993175561058196611487725464776197703174919888333297888458507601643253581055155064850287878354994099649293567849336975887624990143281939259414320071723295224881078129448042519821544490294605891558665274237539587317777301318337710439562099788871434878361201632901921527870007266460860896068169072487507989732736877470952273620111981079455444747025409700729467617769919231565971100019133007335350937085273003805849432711824685852239310695191037621720323911563500236352124699739479584893257159644100729224081556672478689878977826841453133965473257998568153789846981055407346752220580564638318752993033410458252315173487310765464997263807378981853323455152345309033300163198288758963356722267227546736046711872454606713869540334921799117444473204190563912472935103854300728489777158260143349360705510953958420348838729534430289266535200211476664558186281618555629170370483446274292223081634792761249395159692362281318169394724018439414814803148511270939559334056048273616567608215767434529519682213418436625106755506363942809439421205664239158672935253454544995917082535586298626683382968515227874307088525292286135768538798014124602021669106581668993428872169492500930588200108096578081357135478586686340153817435975105319326918375560252326308590127449635281776746350013540544500831958378609850423278026680500933550677386123675698004071624627438350795551938307244219875198924141838816356921459429737372404255094855078096825408067425985692428847371732606600929143253163875980208040415892128715678416754114749558239238439615368227084744859228620429382227207817309062274327275307665049330887476750875812915015560123843354303422069154337225102403473296860588703516651594157124425833408119797452232201189059301083257574310298988456771981664306218757189658268595330184794553810003634255398186202107183517037627534102968605531200875609285873652950847399959132329496350447892376747951980138794953159613204541822574186114682169489113477646042409748780176104973949603368010537401055994585861115904008932308668363105796229865762985240662418142046797285364339976411099116561842924616229136306396684304025099309223301211748144700778288194113191090777065393792773637134244079819250244407740833045868902198394575554897246686423636006513477663813986825016386337901246298169572007064227786610081449088938630536740419388362500820014422392870677989677379180900517585841048991247662018902957474044305550448069880701763721333445805587967811071108594603012645105673894131839041338982535496217027469763035403768080915538316737587357025008791527257820008823931863279008578236658814570827956788150181210089226170782593602134455981402219025436105985071192100731541963866044689225411576617643110108674047477315443064054496475918727070195181507585155235975029806168459990772056960274093566818666440712364543672915265439497197669578362908965888185777154624341276401336439916934562148273201856243311123768353152624722742872313642698558349834744985389987205620092380017931798619443982914320618551636442894633593249314423283564943200442641298788052760216731521715789899049720773577465745639924474595415567753953987583257549503693598511335836539869003705448962448625379384627262601422631717629513874582608566541227266965967233753695897972166219948730993495948397506370837845742608704211054349422805760676868549127578860731673125985924293401107018246454123372857012131673076218328550513032840124254349860868818292538909727245090139654913816315288075801683299547911367789990843849273598319483286351577861497615656681047140297073711172961236607549905395198080292860551071992622969250738422884416932377949206141734586200781840105443466751507237718597601893429897637226577619823404753586374570480848306951950912651873295126748480110961297751394526067964854618006359649334236096418771188273665751760961006219101208594014968312392353207046249020685285653755814279326794037543585027758519826803440348589906370056143126061688370825604153073538773296175995629064532311291663186523885539780789321571659539952487046255931165103224148252642414365925092081510498160414898489370317072982991388915711905977110422114898395381180193245773981756984420875407766167799628431937144211506077379020931070122375694993564430455475021161777499914619278348337066896743330928313763514870701604388555063423017940801417552291569071925930660862220306607959096811485431422015610404285773554758406611638208291262340574779447373368217322098238707628628930772064051056659643001461598504249883374061133836420583659709841261267858165770477986749753799581091025046972230701575432554433380510550242324918283239809792009360715548453725225838323916243399638087653510410145498100853061735783857249870277246266031341198533130866165108499765636747166796905291358002388546701735285137267235226599889673698548905096891554935919834796961471102997810772247660731410145162176726767823783454699483822013386974521186368630439208881453054065073571772882897775093170317078429495523888862126320824263422324296737914610660666921577295683391847176592370654049356411885227378856298622143859078525695757960703118115488733207799546157672084922841050774699214821839082104691647152422984604708530003181591085581489901860102367821822862959481096765295898104923953467833710301064621815910629200945770106141600550770696802000733220391964109819166905687649630073889062838763772054325117932375452023015582537788020119642031470795878495941521037703562098089380015692231907814035585183986668766730447830053322924993902969229884141250434880364589051244878164584248864014195312383183073448365991786705906608454696853465209766935882586488174019105750476397355088508145838422305007257892687653049650749998382338601293660288564169433172052780614831916530271626720909070880609966949736367265112924413277427185535408519985744423003800879121559396069653737780476525746129794951501468000315092675299832653458827334159929841401846869116734017177557858492869172701622584475685166347424120785395261490298249246161925055277011204530333614779981745560811968862744975307738042342509729180009302575680786357743561608302941807393277947876161589082098439502398379701933091349163903332276014076961900005231938990846779770837869245119003557204839366228460073377493382053027804132306538414986671743619369940993524370531817650983102634122944977539315627751625428981207707322217182237636724619067517270136276038935589063552437807826303487006216893494826052198557686042941097538454158917402386935059520461468969280146594417899576421598123536368199661628714371749069150098721272022327332342465820521370936212511135871782517455481182555335764063749776936759622781346870711515038056591277398282412759346430051626022137074898461842992772182198775401667993148915823124146830637906848082355596025864092669107970131254776160317844977089997527086231999901134677162246249408201995081729531023971252007011282346808073388120972904875193911263650736041268506235809303457189985784260487571766694809307842019328553043878293502177795135476385431196844356448807060656136297667715836073593144128627414402160621329121764212567329617347150367159403335992413104027242577338508275338643960004945183684606713118628928419025756057448407662645792799753517866333305165988896211972587177285044737066648881622958797796823746053377299055801672113120722546762242210588118796041766982275996926342871087276223180116890439265304040287331767086324363653162588539238773357164737841522161866263655871017889181223589297844252377324710908860366665314381194029853735921144442873063531101848950336545525745484598217623452852830712856620903281584739141378367975458974829239893254145919337265361251954114536316895945393349069735963750328136612078738311495635106234327263998056597028345014869591117544774336636120148989708492924627812063785283493099517177051518637437764176044392249665997042703762975973483262611449231322072904737623832926381298497493095040906797882252870019822725760533327412732520677061468618453293719961516869535403777956353469816057838277794561558394883170397285098595475337283943189399639714307802059685595841641121421581561980085691764165426400588804865821249138896034953685958592917639215170091745359333324629938517491263217562621979219539325429053538521324413764491267746730792651473540192098641250332117550945838130420357093206235765737107811448060882243035684840107607477238481627962061619264294712494568503662942941351662402752033874805431891864396924486505073871639576563482199516398619690421378029012571698469445169854782008453769984324416455642404617896868483692997068629818017313796766179761070514176225518966466353070461283299665059868867005144846209142829938168147264146142276374149359680603051706264016048319615162724070156894279360440487764022411609439551746701094542169343813177113030188180210532250639222450537447124721765114850538676094200233712302600444556771196571321668843671417339632188717532962286246628668807587462485583618631144869744213675988598452904292065604103129396511260885889110228137865821779780386261595227877757347475161294503816464039969338045964783413169026816721634873418574945593523041402659835896064261850344713713548576599734652163369513343018358237990602849977725578523780958233406829217607328044828974292335203936936931415244517952575697559265312866350896600086321825897193878382658822347360672756966228347480167205084631539479744631068913423344415111296796258500795717925470598616635687983389689289492878904265117746030591262920147560941488535155009381339758475394912977095665202731730863710013123732004015416874353386536027590695197974732495486885203364361406514314232717336569977138249186907364272240819920431193259462721920004329904458710278934890205848988338124124053247596893304264359473979830098573017512800301475807978591505673640996135303625270201769023169614464428208328453997005386264967503416751694688042261828946443947831215492047438756648926315316351628868344818906590906667906586581036388518495318665520350410819638305286992586854630121965551778985935834117319303509295930049043914646907836872022040448922901971638854565552015232238945757183735916003412358677735176140204322355977292884175749724985854985814141655532095689887740438973803537350328015968578745072960718119940091512702308934924895274642424568209288494104881773365782513092510744337576806668040992834426699047922800584959067612439194022731593796306159612615153057287156356932040358318324425836647419294618077525574234210383310193326743058721200754769278183246963922656523609555550921855697151685327969064500475979323386362052286763197503439054478113233364407185287513760791725048918472960581103682348942549200984021929923084794566672245547543031175669998382097686765675693261446485776087505113124505919674833008224759457670510169957248100775702963899411079297007826689763161529648904611247290833172817299409621007677325624801890497261556075218664238493697018893520375968202543437675749550801266355689369089612030209755399772964453964358010180188822574683891519915043661867885659162016740094643537232872859255204732337996095866540700120900926715617308797433898946378964945319705974698479091257990292923823590710310665443014730220904317984003549378656502758346285264627186208955360659926886356048191792696260279293923576716958858834135826962882880166519743834159890470084831324348378249038785739767138154113424242800721291254001476145445494790001321531528719128967298287681094262507947387902052351442619923419220938420790354437214923648189399768791154366982330358540581233285625777801888850527001732471455351057676978783846919090234958114339126493530196370432183685988530140115961308541249539562434879130099139419842558586423012271492057333633195832546823767559943482456697069034611723242573268793411190511630676466443071433274796888679405915080691109858762595733434311836471640093080635386114165906866662347421986240686045753908376389205251417285597423749403418007899807691262746149752594749401027541759234940046154455304229598498917534322550778513943143635980080979402077996291235938082843618349206269456912981146064035767886940699052670990246530151424938992511122029980568472356426779249804040025953608117441718247527022515547152236891097081267370104358702050282199309362029890733757904665367741151324684659515738509305382735818948859667446482027205337708207024081162210583474543429956144174199691244732839818520782104251341381392025060293884918576651881931783284464362798027359537615016984661865920834984167483241563477674184380106530827456811988474277116662048553509686251741619342239570778117455904382335417939562993829508743147649417328488369931613327223262145878924341359588921878868612322430767182846315847506730986881465895411184978066901716882040512076210702402049487877148867928502776183682070347937520138762662406294134035672525175472108096381403435479920260956531314553769918235188417514582650840480727267105023826895060866376996076128500083678520050403812344705743597342246445597505327859423044742647213078200340515653201173952308430398432708663633481498992580823714622851967987460711198536952549633813735721080752760904155316512137367981811595953677077812038975631713449349481358535890404117854207002671801717438284733663426376576385827162470077860831226933296565601714822164724515201151109748137426441255729039717625901323003741864400738079762805441833669787543485827975589532018842132549051663697702941182532632991410160194737241236146099822025560475446555572690657673667305236066983964799238149147565132722295228630714667965500294740622150753867125376366426733249473851156695226335520122569237621441607899321002173590292933873663926077619898967951793804513171520583251523275832460653634473175550430076282112856241832937968302193907425187972745212908779748144035707772698552998153775585186721365573072119914727049443091269926797582426483596697087100147635187928947503018663255601300258359017479112128161858270583460199169024440360144268496697446201983082657267293958273878063946234486760070595024473193093840949190214620714780992408809273079194331651153232774528526939306330868609484606469073017559181382712870180030532052803242435807921061583785835586548802344486278859238028724619190789698380891334120656333193811074531639553934365241577917696012803608159793593986590978607626998927654422821385688659383012571899897177121413294039785532039811883577560132237663915222851211303943680926634583389495475313598656422521366683019835767483893300244473182624072975043440142690631005618815806340172316208192966237206054182432659214789122623774127146889971671197258985372040388683226880767662620295148390404818453649932349915486914795658408952747783617238576918622231647228801186135442575948726368663161680391730597566743340755559745062743814963002282109483895879334880104540420536278133847061982784409722326455943735021145419763485862302617647917018156951512715424712095364797084317410443740398238030166139166634441780193664734220446969759398585926679139315554305985242481667850309125881144605829916331323833529412231443640110904671196893933798333546790267748553760704366123746381252813884184867110917763008668149815208309686952982180651272600612171818345401179761150064595268974127515807174996395181920898975865804430210732008528624757516830580540857650172308321543117471204126923844136177998184169111756611901698536980873098362923568683233023988083867437523273168887542511556756896565619887531169825735781949212992651855393394315385170658836794182740027304852407522360531378494757071168343807692612436597283906284603148905583206138031286217050091671889446231289936811058503085369881460149217697108568317060587266442461381396517586877178768457327584071762377373840103806556068116958285072413346938819122292692841928825818430368659600880503542764937992308253596284786567755245135221814168339587223297819143946581102691941306389095362178703058112819459008400701796299181454956564211332929292236913877980920868222887046140470964244955763787690143402541839291568803620379354877667750896763289151161636548588982766748270091776617706569481534911222019424268398456302641354518719541586625529422830613943939460183780869056799325092663380953085539475811177802151643505022673483276319684878769955600320560870284923330582873827900410841199823028446482218566806951769583457212921315375624820596285760057222342692955790236829179395156476068565960587566648920833871409333093864193372514326299174011536884073059911228337545680529262932412105507492874573580331983644754928291342220745875369119608695588159947835898322407767734677061845445924876603158194285503791093956453252360294395727214249287425724751982188104760041807095028821774785425563769748509830261333283828990733388144100478500982780706251924683217533643542505310286716829914866034137956397254737841159734030019958206483026605678062331943637862569514295344938760694657760243715131675485738882650921600315461875853903951126510044294730716456606669827552024367198768870169642321823231228478532117020004402041775580707355665290589864084380749046114577379397340809285614952661365125497755140749878230050109109428872775026204035178000978096931672743835736402392731788470280654635392935195090297381611650436636052140705972759860322133673131601771356529308281627236974241478516563535823425777447159820246250103914353836571323507103618279446829070543180906798127836379437800839655313504839907663459148994231082629861745315582888882626895181421973680707908137725965761028610553765130708166543836370379145346840899670900687910813686652819596193543099114858108302897218786009238158527197202709530022402079331968310251607855330978166157086291239527598653642510271343830908866067043493179116375138720068076835788576108838979383208031471371138303130027262200602628477950429333553059774280756301645610108469663102653905825205759430534268351222620863648775730594999843031107128283188349173231400607418191142457239213228043721778555573236065196645243801790650176822007455523010172327863651425318388480453430044177038840648906480763200692744365500442886050453624860377770445904569154313334640348867912355441784810094699094946424820883871862932871435473663412555461802515857022001463999862775941747003473582732479373223830380962901021742353002381154156578025213978398265090086826758336488870188623959768307766023179044679963560351786623942195565040815878417771843534635529878245640798553574661469645168064256822697400977850901850198641600111412978689668470807968790835459759822798910825061665368135683950850165501881898113361408642663500772862266563708776783924035142978092452371093202424668097538633986812817743893372369354386694299392102313255632892387003170062911801206179210048192190452153101644154389787046070078422460246666692196084029198831128019897231140114793718867072703867711003095723886707155020036254980680242971991489303841198474860629670484069211845286511497038105090006858853999384504174913564978787031004211857447071502614235600590631669585686232215898886258020088571084631281002197888589257565021678857103012489689683059424056528812215048133702838591815431365020959676650946499016466378995207680629402852501051415643787665902290710286678498541890353052414721827594455235583114723551445821983919205383870856734505292447475383888359756946111920367891825452258202765106067979739356767037170632711721283657360459321417108033985947026006096079846706975817025181300264030780639610326092926415545744072355880136093739935753034227744024774287298728006830799877335294031871886150214678870420004460944360557195869000526035713593309998988382579869538061480418767711376721632125895243781766766840904153806461962088627138556107023845475989055976517899003690815431461361389693170537854621337244430573610504165597921160916075875752394604516845821029757911021698971062786713200603989576949273392623903365732423867073224792679779580656398411168037658511079389439659187664232968822838215195926378705389106539897707141839099805986578692339561332763493123715168939161618531896786436409423248022658909015098262282507474129547821681886134674918325690255118868657934263582719541287995208868759391174562211386943000719707060745016648894074502021343418733104137091800131854496591519421760945296241202962826165238323897928802261229388555973944783480816083685121772644534902244206179107134551719697741985174969370767368677888455434758289296620521101632617552403631558514553936269369512438399926799433510095042672324060642936427556143345225111535825592868052312361814927957196847676820902189226731928540402196102656890677105309252727412792379611210191725084750301153135967189777405907283955993892161152826130043958688683724598451448271674151214987658705307221304948070896844197948600423976134000414943267060654977463948554806998421087556494233782106107202785161497461309582620487286008900528330988756865942878539463126943974867856638672977916546844253061582080379127207826110381966671472080393033241234735815341786912449053111210410364619252705176177165341235035612115191943908372107838469281440757792697180496389634872196462521553667521068653018979937970800441438996969532571993532131929122877203418201962268973088679263271517261220861659716860815026231989411265939789589452829810731244299932867688722296221166949880336233944107909412383490751281538574728210707115541367681634433726514445271981064633046216806101913308414406249951829642467206799480577373840194879230144714510971133505763070496470964525819813696299049656195204391930867331628272675369343666427145547048616468351888403529007966382243007062984796553732146209836817058153951852409367566675951037119584210513434574391329658216172300234645163208501318563471686265165878935577120937919289710982120971943869755535365215185704835097827706963012785531109264326901585370023203061415324462560824947824731255562602361018934586001265357344199565180831563711219530959514808310651236579358854046667590713003697737453588525358557268671427549701381664443883844586491708731093306064860124843878189813121033434749245789664954426417122977477081981976204962441059437611639772701688188342640981053017757868633212403764216100188404761823183712517570390183344313103900643306711126589317386394086300166098631966592681107109068804559883548850309802046875939836302215753570873225025999873767036524504159284227655385981402007143805817892871415126720532384979800719996580502264678138040263824068695440424973241375511256125826734190910892951186824846974711628483514588098580905171743940038838947592114851210151708864503136468660385499861984894076611574052566616381099100995911382527151035557972811504248034063036126737386430152614048447184244129347993976475845625615648693244590402809458189771469880395379587333833008778482276190414695558783784666922886892873450826481817289312842878449885582696979223896385446983525753646729249254222911762102586258278491893276133699183084555538313835622076181255915661637137426223415615717958219889937990397647524303786788926076653075938532528638876820366332878883872920593928252009568505211319584109801949622822688746056272403651619508447908139855749941451134741570250292059931567779231492619908025072815375714660756788789804437011599473220849987107952858753625172213355824011874350546645296030391382210466463314627439091112840726275243486676146686803542726241016882494106484677218525827222434279312174892258223170062188217899574645966990705901043266619609723728464650494205012067466474174227533234939204884767886400997436889629733363918676079293638652868209561942639853824952007343537304535940571172233832771261530645223730006506630817167200055385541089104612924427691636085403043295692850481930141751675189127164507069673357992530667144633922244079368305992372852586773582674699957908618872866179119058520960395462956234511630042740200642491009904336075812461746533180737990669123179524600886956955655984143513480659598555754019659504881460037220141095752926264312323251135518646462365930792312338258242839973960623339387428504859729801403710278307573818364019298489755072309381131469105244723736276887709691222041490857849971711695677595437414595369138022401204797530184695155122544692151322422242441959125774934836774517980362860981001230012469437875075276445735081481666038736472602314511013732679728986385414991080444693065278564387892692706829346388418957969867795240511988395379016522689268847474099986298563721195774172945205286212748124277843866906324180253814419524919324857710763075260405422862440047272166760965150095558777966330735768518807425967822752888503782009188207230810104488335101774465166862688260163177808888741631123722449260724824314575164444210386773560038406763324498373019501104856326603073062099370368839239450774097436523386036603008164807627244866406799225910133132712447238153218756083057080534384491587548326174015840987382374650893148068338088153342057587819181506745822847586190424234087061475713295674035845867174834332767823106890430638891295521478417932391485901840210949229339730531428330422897102243683489291996741602420220684856746274770753391166631473474201543860547683129289304327764502847614869881192481387884406389171409475726175124843193215290927789454645113456586789851880948775997432850625324161078707461269910757515755419371138018272459580683277481102412024019454769970854835603035726605686370506306960644434296027721866825407771476271940644671167173876188932483392665905607407691119753640904385099127967718156108115501732874183594883640985669002041718519071603009458496431911027422856563148578462823659119003365809934329652369564596021442545014590445290895982328221056415002174271050228814239411361033247563823694094567881703447363124942488372189301694591233860116869943120001882012287847865233447241464577309076955935870136943393334685951337636990464641820333081602513476714392635849463854393136031878932138956703821700490452586638966064382595799378793998270440299469511849754432740221990462123793303881899989134730385278726419540780965902290215251281730014113334887547856740998722915516091990988889009515077761617971787693332112562351489174167827803706131651294129524645208405771691548809410511009439170888537982712591359587765077478312459169230261666983379521510268887098417611548048706060211839335750033781644858142242918962279212238505109472221058790415820843343138801267200161806171029867078042826341800548538427207169540953158491697869695554679177466471464954233627526950507257532569129401667666433188181681720968245612941863099201468670709334974884515568299655145612294132425765655791630977231040695283627977333641665110904643707397906461124351992644590056690882481853046844375444618203479536062796132259110260211864623998981386337110796319743361950850120208653161579513114817658262304380217896850169713666975827814816057893540615852312974847262180001224786322739083308575388905590123521894439888725880072755505177183457111033555009623168982704894078254252315929172655574181947662783846815475482224382982467921085732065184531574505519907968983493227491171129469670594336657243130284246224687783906654339603678163456490306507947231924536329122723486512061968584415641467230161832932733441375574149768485718397129130483601728164177433791466256091876825448371617582036001515265999201757722171254112285605326278407122606835296855474860661899879854081786489215078072309189135714472086223952360372970179964125819052344602792876671916294295605660083903346649317705828910631588958170635740062968718780963007583448357256859964224721739421776706368729233216222408713381670477161298816721013622000002227583286360799912233036132678387730657770838544971922966342688768361336043607004383215496901271911197416575848989315882141801958310525519325873924041092433729056959050113616251389473574738248495877826762434919977982367915349575605876470057376212560771801287458332674858034413984394260515879589371279418074018723012372842435560106899570298782122473156931949433139681393425132312705332776086674538879400141052012746830447522261414617033949672610637829217571852444542917957597045116414664526424220968982984270010242653383055666600738626203306532756250715851137566017372441953191969160754067889660084398251271621533561737914545217452871791595772474057089214416110366366837722269701203646081983682302667078736215545500095583403056249098299881541865423072963523057561858764438851356647101725866064771484440726031640267891933078692203612869548823131007993919879992004595777325568894188426657746713298279260003656416786262802060261482438669218915649124792542810731062459778755899457349814568204349201607438586470130272997633154087726954050588845171523479369264436449279947280557652239549811774819079643759947303047704568014089038111421976797272991908969074633945709526842880770336145746422382507851056561269840627638264038681054823839270151350145022567213243026619834137437342293625442130360466719437196625385493933505714746584718577241713863711544943593338665904279513142531180075136377721860161065610567667107705539889969009175750879581607239655232944727780218210059325865679555067773887811850124293830398056810706193734758649422812233045119309665463699363569736280555989351102794312411589427004721474076324040907510059090603586785773897614484886334492135475463675452796204344140839585534136479392806189744381352526747886571963946816042094588967856335251028446122426163694807339079640996576688405412489023524073653313085631294306085439836427514226692227654954319799184217822271408882303712949312443728207337061472249757258292103712833305049957383478609592463813328564981454033752286706005951598413941899606916935586782833707564275358226813457657109167430981524509800989962845342189628758265857286161874101702582734056179066815511800144251399218654309235369223119535213196627320194490262707243390441200629251251621884460781533012232070818532463913851666898482225389388421166246588337805981894968484891379939723827888281448745432531002563183028014225558688645628755343882727965614034964978029542762295554651289684741011136580203712844105004149777611352895349809395541022371277977204367819669717102973654574614722425505809883874813175318228758892838171761874611106343509471682782192287299305665983073865902565816294464629797203143388238412347553440526883878286789174749199107517887003009652821872585206549484063292702485069865429033378829799317224712948699706781810871433981556625922626065428905206262658057940582831917117731899320649029392968976983669798475977621150622009649863849649725446627761510352177905763833576082158241062149491063971492699251665249645985147334259373653441096034667129142005738783022901866323474792301095468993581525177350848357553459170908081271494685822220908756846680542543007563137814585650009455380344499050490982446107877652658263906083235825998385969767884421833250457753321004786443269021511735915985405704181293190059646861543078706300920288395022172965224535677105912515535322565956328869986717250671910241687716187816286297600321927270170172912921123546600633349018121013464084553195775243278870966360810708601538455577103065366962618512240606144961308441931818363506060506444954687620686097908756761806036490280765880778091571031173629251801866773642971590463880357983141700638549757411649275634127030387528296126299453303981885026626343476213878338017715149777314816415119363081878563585413523763604151095664688913711941052130083356229004350437661474915468195148492373010227612017585569907190710750206647670408814955356437697725043549998549523134787484442077093629981096486686971949802799749630724703164976895881433881405959608720081688467861575240238537071008126591079186791557712966398650766000210055436410273412150055830549536625642030852621945791530146808749282518648193911185176157348465901432214089367799141718651742373920812684957008628924177227092030660639900915922537821309612690460288586848151655158277561367106611356311604210407696607653656843711326832585525886657724376457196726795008168589914794586233571933415128048102747970638646735437514268111307962209185179341721564067308594927891037885488357671673006911776739550592029595646360017435833523754915171373434416620477334719742418323388022372645096126787815967589325067122900923052675307658127125818609945110730043635012476273700163354340651616968338660601636001542734026919240137839632465469627030937989300823931434106273051856872247126951982629647063966672813392435255362160573779152426745942928783489936829558955566010015538000687122514016967871665994396379865756464038712300900756919149580397809121685626456122954237151432164779997683441347443160920441995609994297390802066131837429354407387448880582170560626315005609394382034139358917516732365915685271586678279973830083911004614622223923626225489885249509825605421334111682192716983833590415363605857052658490485495911057298230214633195898289866721795603091434731981434588138516972129590269836292155979140198811051881501430982873925019495806790472636096455058852708797024011726037076769941719503167849102526745544058514706845054015201206007652432947968887973885404222289136264514064790379707514728988339998108554175374353740275758746219566321645319169800082477003104803604517082074658767375610729491642956066385828954376915835378012526767743109286627366198312830689986211650053205158646812344243518035709494383570223138278261699355344143490226199941952738639609425022467402143127224137412999669576849733194077872412940839954965880879415987312152898004092398206502439747456491512567053719969149392704848502534816356295257665176276388820896642174639532912135574746567518494156992441877878360327128561819279600046971676041261854137480985397761848742513659336049238279557487788287692964889151211590141910155576681484534376113493241784973914443847611343713769917300943904073395696792634778780909443210804440581398305701501955289167318541126710241473689434670297753344651370702547273374866940330594447030871657249324640053278541421875661514369886871151275634476470299937511272122932477695236229452806615111973403393843508849909201950781902632463694034187247285095989313245699367097702438799531985595647183055393709158610589326437301729202842902742536158976692135221974998410121495311685645591089254191130246734772071270075087194532813190214136734721856380855602642180027565991468010128764620323030296818505220412930428594195093187947152830869115599368527860326847704620242948758335214107783802899073690371793739592481434002391709405708734313490757818358791512074534133090234612124318681444761505198652730061379636143678362806331098632793977455914777169675187125424976349748198252946174657341109577936163341880091100213765297938611154302874747282104200765259905157110918983984461112183539308849350376884276842046415552232148778811049713078778178352027729229101884686103339440786724338525629231852977549880441613596629180482148940061945916095547129251278816290659978337950092849681567740256925362908325582482335021803015112920143314855709178425593321903715792192297793136259661926839821683902897200112155414144288828737451704550227835671054663621289964681379367917654712443322657094090018610863160213296102202337599823771949942837463929485332148976831685187914240283789894733867233827299669726099712673001795253024608780564684821256996206983561589241550821532037549609448935518464447374020146664976851620277028783494880353559971126362511058137151123685945291753042009498007582609938824384759797656998075984924600187140329142007237629144274179080398762398990613353839516982775767202118542215192394696043995557843003722553163999028118283956937686822450961245094838110574195527997480548328304969826082328515186748246720606088198461317878625862980240494436905366024294041492740571782670277438403928438875898721050047899588346903553291789271587649038880178052296973696325649617552231283317095804503332812866409390139947850944153230034871450418938566015879621045201950367410901247201601313614212680785769116446433355127038780785530788529333596155870028185108475364635334062453747128358341298557479960029518661950040024815448768293129700083083830402043392132346756917867383723739829840264943700500766929607120757204549567004293065422820741314673440696958604996992947408700046706402969355389422070163401540329786401459650240746339972516744767957766002149856594451039876787799190858259177367526659368458886724818140536707201426246132534386446114840668030663420088807682448189242510429297362035532564099912256276201227774652944628816605242321914623771257965565666019716268740216056545296423869594950309909502383515138400030926237029822577484542375496101474391971282332577944486611314407898356087605767119885192347342823302456141942642866100901163197792628054734542902428578592553629865336119904496587456666100866676483669535411204053300277016948771465039158407229215935551058977201118907428430248580634196645254110016684318107355883014964621577005508372047462362975465663330682680650555143629788771258400041033880349849074919605826442032836384851701967453375464453662457786734052795573577434386373462736464570522249671334784394153348338836068385935313335390434559541358648748060385293527533696937078597937979575321175035758769271587022379795440005209897022958888316804690396590729332357551196004991688009938532865322864783914793653673833230145218264737717847098709883644805099610477950275181263342942562799228504168892735913423544955101266326353931123389157526023949402486037520705473088928915998381404800430225891924839434559107718502180263240732949061258415331845426655551469628332434695652903752578399217849121913420010433110819263054476753453093486330645549255240487192221110840996164353567698087866299880968366414785160258707944067071647058714874576738709114493117684012388145841992961311036044449363624775705406392892871835567445509105148638741723642432977310798581762649150353774651274537625011652431871209069117878549903880158141182690177180425810071839109495085097766963753046419501324165543516393740624573547735198956020612419722538527570489225980964642287190805375281537565012717633211456724846427601612856330486581079174337705768006044251866467972556409050640055334525164513852016565854217004835376858802288934900190350861982691879234292503196437046182762102726114118243268263292134721946286323920402800228345758973394511781966562320109601680629956286544421602748637902308881767014807734425900264370264809727120433802164499568429760980339414181857030865790967428174808426677832524160637147872946348041125623699185161133912236007463257739165791056684020514071385426819843844932478384440353946281473695584565963915365571159548762746212403997224895832433890549419838919367834782472762831744731104811824092514989397368051933288334714556289790591545083013537675063157481178837274694838165079731315292442301024897774731032384007768564422560455692715270942364324050709214706241026074325601824351677136271996153445551287745834850405195010198016796076190694738433580211436678125552053721654108100744779178033955498259692914106292513190474411211481024451731685520380293204038900262947232334999021988061768175470623711179989034851411106312101945318315208575930716632723776797901688207143162491327381272887403517138240609602568401099636056301192307629081027147845736682312018281681674075020452358600573862423164091689141106591939863827106015964958825964123015759871047019650574532383360888308231807569637436576426102334365330836638112746750831555648592925871430248403270777117920442795090919205213449151762665797889666782861616205757006944740594606524670885330935260034277831297451439510269320274070965514697777505390324412875247891816263362152944229081575091742990438851710113497073164023200590661412448600532396487698695692319736112364542566073831546823961148261213398153781120693952838815317363017611934859961390096865723254265462673609497515802616325179552729059205739879866501216213041476590337832471273353036021249869063413233632438171293220302414538930356994135332686368487261182918923734275735448743000057967218170659075731985252057027782948853441934997117995302188697838281374241077487027565989273727102765029846766797896483129499354618350562318412784366249843000875924551986476330190507632947096685011981829299300080287872889133392486953997676870523481764308941563461694549526026056696607248159697606937767571255194023596821541339998412185023029403126086964034163589249176810623758284432973333159719687532550749969564895602848356935490345249728831636212426754998337632251857173560373442224325401681943697023942028345807875507165447955491175020335062701375797051318581765041071788878177013952830903954382759410060984450784378702429543993753246204042002838492337772936915901351671080932626524492029999909469299023235121238280612184028273615328348939648124274692636000145432023713707861132000089792185327221900753852776199059942112842839678323233985813782773753764117669809913959131653762158937522021556460977540527321245474352413196119483410252002501320983574570219963643028414598313786282191036658647416528852343336507756290851497032076428177150777538185850089026585898846050324766594022709588569482108457549732593589746205280274126747857114346683186191888998058952392850230690547638749595724605864120922485750191888535170457769171524155216580593332729373664587243503667278678315686511513459694125857211047362626679443705778351832816725936496495344297403826911937980607010275706736622023781887952417390546681897737966140549864857562431386888792257524824717478220039827984600533839582906343065965792911963880403961715782728688191961488858577244009356061157865882986775147801765073032242604051030959603479802172809011105681480782438855173034025465467134326445087724915777298100660743348117420393660128077933477350538883636381740986167122852741914569524118944518516027367161240695447710386675323424665458086014196461593961244453219046303178325601243060484565105372971260546941750600638111820505557335408252926639319689888933206709454940577082924517579125082639442182741579455292047533040664384384875702354240416181460499967887404522391857774344018801240393671788324051181538889243958776610738547930251813765924690499905238545815645965479491176979932688922174266716649361921489878113958651926879485577887475013374482140661573205352351929032453384421176249123075499090927804969683276333628730220742349233463622735640163865593062964218458670530965270045834438720517360346197158553047693409658388201518204663812052268710578415405088081229779188612352056313524127159740407384866481648229358693354007648215763406468737047391841002737213793715420891440822161427864541327287475446730987024456957090810256939737049796860257760132398676801737471236553999750387875362941592307662942646036245016514590326251877980795803747001657308182325631618999992436039000784649777128738011636346016068945729320715716922991228502694009144876963769419156874214137851403423161883951781533410647636815077999855443440678907479175280894975119356363112144571760940953525812855170099104511125619652948362693740144129956965059370087745103040767927104325008509643822684615542092910316521071549295568027217113587455794886997887142186241079845296897886692554436213115397612966770850335826367973073586382819402233590100797020039748152609282806717454632233190121113757531796788685512889009005130751050803057291790073837679143397865448541838150408619903342606074781745587471161006599751556231969487644457488200038197184593709742232471457727967292888820542268220881386191016504546282829797479591381538513676597667632494322640537678494362153381817113382888778540524656419383833636340098402069134947801080863979197041688435361030562231330759581889080192560226181337166720459551267500192424778637108338421860762941016155765353657993549567074154660099892458530784950223427365435486721877118703978748206750920958688940839507487000133655217472351331910311914883898655005156902557128928338172168251189767948165598411648910849467669834727527972593613002907168694856835526788954350997785132571450537735272040549688613364639641655359115182412359208695622365665593536334210832347354415220674063067187621211647061437135193435714828666317487781185148224607358313941774076888792079954016557338986062861666963947131545776969456513984877744000104199990279842228778723879691708546701252246173356725802692135389455831003391609652840980281550284683965242596327617143593316324212395653353372458690989568537181479626078939275473595947608470531289456881645921399924563627018709573435740924853026142094534758509801278601859066453795273757055478714616570038426187359612634957485263400958977350302760972802687464875067791492676046207463172074950814955843988385097760473973095451277573440446947896425983674236038987831327688051504708343782694468392083207238189013612985686896675201875684730267062571789892507655696213204858655528150777957098600280684280882922397392805688826029888812029847277192890302779618530399376433612503632933703106862927358068024424765531764622117440003739514541163688608371387567744070110231172097451210865115987338080239708116520610418560853054153846654439347958742503334328864184881437685651129408077640623021169751722790986650023986151801155509882977191595069319560635178806385055821479925662422299089758025681055005129355439162213124191388088589467845994201591481344266384778718521344551924249032494740615810193406301548087765882551058793591331670222535429572352919638457773987807628248773430247821772011631302870916604407753608096363478080572545532926905290232259608829585233019276028801914692533990870310650417420916873828609776347755390207315503508656879177243700194205639921726089659048447839561367764137602578450294904990186092506389257428132693436283157762420535169014533837387679855435383632629858874197662839979269935898059329686577148404786906617237985203533715814878700570734029375598472445992670312322294991232797823707602669073893594193423759789955875860634745578318156776293810546216918696465704393017260028690812968982149553185169090044903725740511731483887030925464040543267754137185791610232286222859299092521288249585806541925751367397068492726074685012270111901980394713158124376346278849546058132417113405061771557164698114756236105672699824143049214342848907003485809857223703958904422005121838772588845156390858971381904887123969678953341031026430121587146378634578828430910040284462945615972441608291058378798435529930744739234188816124564488444755727269251517276454721855418730345695896440529781834720372670290917483534364507275064441645609163057147593113744194110909298575001702729458148933301036453707381513063080760146485374905780663285051934928689819776078406788751873889168121034468146724021918142496042755938177578576060810141913701554649255385355284580980366233386421096324425426750459106466101045797166644701211136239589348670549896979740943255690286917997035889587018434781617433341937362462754730809720223335796789260805985802062505404854137410257922685147790793548387429367893829328263419389015097330584618810900631761313045602056204009654997511997000334739902118246748843766963282572412212980992128781267353215905964430730070277700694754764101295087255919573154251742598192573684895065548028597889050777467161890516921079129670390119384358465929869761803214819968739092722622045058201658004008670228244821772322621855588970295930611841856268936841620917739800345122227216020401692974840005499476493706021998388244927598633555916014056928292105151331746856474708913230932309873991140498824188299048465820213905101307574167664857638854300021066488274760960579877136136554669025337904261795879096176139305012108828427098976237421529460575244607514276806368533995576763005346167178492937400745593234161175191840211851431715363243252754103772258482150889817245961877243196206538623001680851249270766176437666621927719138003563856317409228135479573463727271269251658418394283423960130774239973102321544507424206421120412772143269998490524495298611307510186098588299405777660567139781086899185314222374026893558941239607621583339821287171257934639240166501130300942148464718487317276069524414227110734470704991635283911218197249018637682123325087939943023401423615878825533016702358836383376339052130570246095552412367137535413341855473363791506684374353905739203988439417449936613014934724520452976982214044007379480512024835945544649153826769217902070043598434705361225735328446840869828638290997325141706762746125846464939592858493781809929832650625114215647823461993513503439328562461154009794611892843802595436927799421590427095440094352838540841082305723874644984939862075239432838046335928511044522975696044287800793957083437653465102184420420761540883168147012298444123705608642265623876453552826625921642534852862675514580381026984052931187654089827890792632847170842855078856787520377119190862666862200276371978351948321318941313996836729046492477967765326716981575629707405810707587158357321969107156525867751671891285366249423638604984498136428166002762449404132493194449925116027106155359038553036299510379949373194672576711184371675421926726697348679439483756900570228837494820099604229446930052507476359083123119611953842079576822524955926463096887813542613909378458385795694138960859915116052999020065547953188736625893886688995553179431779673442289817392554170131166281418414391592697402868157669030783272269596707441464323328263986948155487666879165864807722548692243533823355705343279616341432824821114622728045536639892423851591651029728188735639585429889883690959884406138320769381047438092058858882309272386869756984874466059827085889093314481011647240654464183861002250807444099551973978298729252423287371229330762618744470619435638936635149042955718305501714603706773469708662195705652825282873289934119847616497897487657832954088936683431891988720532259872095955354980212825895171544021967834631921944411757248674482235093442503729545992895276376699311824624240915253198918530498850917126266662363289450464194636682335715611531140224975359990967605521485730526866602251304730684508914948166405653451515071998880170035171972338837252157650923430644427143688791081205905430463830292231948468442296669501513165976070137655097631210586124279247528207886657897710107751315274671094307888851557805675242669250420439602512790706520747270594370035527904663242460644505145884672982101838900791503784559908778155183179567317160948419094333653386161317544597921809218435619944874886247763044648986931223148401551445017240590104349892066182422219325548512385525416463944226917386890669912976040191982037622372424934007365830203651272076788735123362972455257314153844296452483161158714013633771576467184669526739846281853638319354693135732896633048562815314384494383992360775664976554037878417404713497669376136885229906789346374424759927129891088739080101071478752053891482803207364462309753291498543207055334814516171423057020344845518577479025673836405326916538274139863241444513383475953158013439766637117661189195912343903366661287814437551660852544714573210109343671960660249280145260274501209354681846051241978763470044640828973034509198677681905413638583829462017027247353316511496037406876095761140496491658017289642508170381101772495148595949929844056605546126883143554439038311724822735935597900239526522151014794052920549859475246597675324615530663296799403940647044536512760251715636852785441693793478245332815249618707841725486195108338254187463735922339124527145359119998478286362612136618639104119465534561744996828530851056622836339607560182683531350695549112064842173652423535022736612527925075955008686471002260598458726643470127373562630789734296653765863475033935537522549161757382471504367303386846503396231260233949403284460642331612144481034893725981161226879385776597975970758186083633977888441796573057266559851793754615911484745322737201249870339925681725428555977868191610928519450941221756171258878543076923632984261150323038401165959005558920718479830499034443212035545404050533157563403651300259689434872303703724536226774803209459185343334648687870491330275369306747774894873750794221295148920372979506371768993667647408549164580843432975784593915554056828884092079822726518520075507830734652093836621812415208508304357177264669130577932517523589387615823573427130970379764912911853976023035141430026831881128238661626661397959895213161688206686498101563190177693635348009297831195249610859357590908527116032962953615966458791708372052747717271597360169868843969040831839071629892768021630742661554396717783562265573432730098453661900625309972705286853733326725243507180163582395546401936469676977671577306550050372319708500873108595587340737836791001316975510740716889129419538398749120649025146788889857841703255062592631178621449011407844039972695755505917115964435824313320898378854764098815265817569122973894154075560923992306064544882854948535987390911901042296592774244906667197286705993521774262360967208269486859820278604751364800348601789117529898878580324954271906930452029928653256093560749242362719857689281550133263317377734642754091688621790182114164096420609826978730064370757922314568808110176750394848897494214410869223214049036870925699411592352139163936187867021936465266783660622054235529241890295172174679380005244978981341291376560463691425747851026357872237611997381026344831890499154745502604161466141052178894366913374112371313730954381237178689193194938875332638859451056003928538609453193626677802383027741462293804191478389495409206798125249759800421165269891469350135178208719108328634628347765931805357332891173880586120995450309276055943906433919725752087671949913848126098722931841413393091649015198638093912518077277326973179906762242315457482800295461849837738148554268223105515702455164226408774209261810424807548038566156871721562551189550240417184464381916786513019850313207155245967858867851687387847986844779804722524420112499847239825300625877206850397394864647943534561498761689821644378299487645640708636619345100598739536747109850195301508411473725162953706508052257924913578400616152983454124629477842667042679576974241055655630296229698100179188870372482073720573958860181926777108302425679203761780351501954712866897531589204315136983714702768541165097699211306189725657339614278067773497273333813563348492066005039394303340940876307994154427302742891103856489286268398274745605628427856974406311101504038304333094921557943601187482802020151113013518206475283913441270480740856250457171545078978606089224826632581947422238637213372676454520991902073936597358901244464324582790557621597581542620409387134059784066348578181676550267002783140642063688290302041106627250088559942245296462464590687770832947595317344363225485064319682419310898574795576873148700682711926187849714641738569659009240112875396585313005611174220197602912726172662943172715087826017127965872878224030043344506015078841691140848807564817712176580372833591996834809288498740347186367472078036734014654031162459723640923144609642486247280234397614206835274551495168633041094795451680507703026682784540251639612228312784099582992799881119744831667058250470328316485867180560234829884307591140255517736946914086569147063930368304856113403138115724821882550403351113460210912520043116121996223205679460285583974299181777370698452056747358473497060571338966851845168250744639281034954834393402727604804803875438984015796739864208993148889428098326279608508716377584382749828430600191941043897234885124220652382940967681635682860218219498706814763851086001716243285390258369610961451401270975048195761599205995093621343690574258411999160419818636582072081226559961787109479304166543211211414027409564839898552984569932792780242568096202945086428366145925067162718510814520017466892707492067954041273965185670980801892619838059702249795311646780562069083316808704409320287295316714813855154104132427812452781294663988858248397604391414125083309803357403194863692412021919405588959899710897806580904934517172250234953420822036383596350301912523983146149952763649749913171294559253766073737637971629350497171889798352489763470596330697287527144523789439035047615940235602336675096272419230214742843255700309149713859875490136629129946269131337917905996823553191898401203163360493773428211745712386529093147149270240298050743992663418879710911639627333309725373886079937718510577223835314893454942941907722518793032685576735905401251233042611299217621155698182998758535265608350649213486291001696432425133363559125335972125891825852511869793857102804814562238784815304434204065112094370206888064082690024584682234005477550675339148546084626632067380391226111895956198683820077150888167151408670970092510556646433507565032752804211314098318689292515913207198137147497141772855151951150930445300920368534586376031915556805580911026940478840548307048986003698146965220643906545184626533266521760996310077000262957746550975823454382114422100108644433984670904279682005683401266335748382045168915489062553443789903538020090508385584104051913174416186050445975104901919682640707455786919722799766908149538218196134858140985420190370878571447959526153007105742920192411711151040381687395959921078294035823436046904031174096725991189990863546742383409676599590854958334753709194120821484169877853834473823980024268496200924001702363007407077015641182495641131237809251929063168453951106943446669607606732397006473324334587806437566246801186579009521562057372166933870298405432797091002619537236637776114972108805410909490152616297240082080430692682545313378444484617471659250831238460052629668492782567524051817959227581616909401710429596313482410374759932526489276821993106094758363278057569666852342230201039481784822833859339370830993435699048458531059710829359667126131839383536570133445613656633497450392506839876316418365737047683023544758114460646169227829803341609174547741027029012336958652143155380725962887240774562215787712070167902387569546741111420527839729222156086919171918225942514152860604558053543201036499331795281340942184847264053461018794922845112270817485575423254097822893043080760527480496223140804756574210005919931334322607637166923660661167443429373637630403644664483903728342619472126427375150360898265421070279553082990446076768776007492729688258726566576585222301573966090218241208829051303739832439171880347670375133760507483196916457478314120322192060573279876914467222614078005680587043172030120907967498351242413697491398417599247210324370689488230991531559106272444354473892471080957692188473698558277946515777153308281755442857455695222872293380027986583043928334212365836597997799811805656343603487256519067277130087223727485423946686946163916401500961983002538566351696088370218669771072715404378645819607631316283394494097936459417099475475663018558849385486684223567977637563517441546480860646092369753639115735386793944958587847756768041042832576912682473224319323506817521045905655291772399326102477121786243729053035884139699040036373812848070609991408248091366601111714570115415178335338695103888770424203935222504453987680925829770687368305389019872353368890292875236212469253836536753921771124159320058338616955143579586076715853972793279357058246218677186230237063810234256276721108838532547639206731348587151378745556715944455991721661543893001175798615832762788482932137189682300614518252558493643655415259107938263289643455685841417674492525146378067986646102920056632685353381906080870550566356429025290052893492648172431825685260538982940611198722446753373225325374479514623820438601865774355799094510544615748986198250454361385731138513147764082019801143603429049128350686928925309217851702228344816983046483325521872126177417267125861223903891557299782658508449382494424708507295300465321053488351764102806446760860959915521454490177553442283928244474637085631988260991622583933414583312634549211864968111662991960784056102380315646959045890876260826905327154535365673061726753478512091794027704480541126775327422781886184360977363058193277102248091813439708379404165903384800915265125177607350160409819046706125933968851866533568446997794640266296752807316602486913938236768700367477028190034446658947943345051476242245226868696210143364075178628337551506879038418903007193940338001387641861704634235863946110488687519886888220346013625165696261024310935058522864096182107576895613849103306647996150353823914796297227752290229035486412409287974801506847338674693545185436948782342528598764176234654342832883204568957280729562003873084139700377033571738449813361771688141045092887560961734020495962391998414933875393767044330140972688339242587878572635907637528492000659565689465084917255286375464547343254356307472851644429971020391437796057328755763487390562710687335027828795161952093077806441163162478155560050333749778948249859259773348126500903686777761959904439672895322972271771416976638653050286824326796634286012170656219621521496892169953220650696879990086335951844953245026205711866507129873764165104865484049022530242647865440039046184884640480399730312908363945004980712292427259068715095742573330728463742991726163902978352815705341026257232853080692219093966918857511281365613742839622674361052877817802653126672230820822537241309630726111390949092389544279201444308485902871000637530267002126410993591993596288920782721427252314136152915664381839626368587090352317816595818967669625798574264657222927551047430496766447887871845840623585631927503767246772840878707719982632666784540093761334728584689486270405104484969390371066260119221023134018555831064632682874508697296768487888746994238827786959188642147936405008927260262863654925622823318312942682239847711627230074264405598216269355547945368250039413303672585088078922057374758662898411310666105568046863956948778659516487456300880670401763522376304360086678581017556436563162850552918649409360262705655558338286782539735123145291033287456067893650463145200322160968862320783413235513992611146655507451256703926086856672154472101091219215271766381044209961249972211427462096012016360972215790190641858095683955702185544962955554181843231458821190971206523774207057259889285219887221374831991495501953392699790019526906992156429481538912977812700500165028587931292060986290969226088259171573177714173267004266403935115816180812730480439841890566932465168520326953524049872485434115427005311001263044695660705207454786415828176312948339438935861815047977225047150128402362547905053071974699059809722310247200274363413364751642658565754874265822700570799771596719600373602854136102003929081928725503657834494246014106577227073711300442882754995311412906736504656214680328854875904346955755492415324260767972660866657912469986624613218691552923974593024418090524697590455962305782941802228720069222112469675770866879384956062621498568701826641075952778305389250596914130812250871445411419426419005366042397644728224295755611111493570020024581411676418220059859431998275883663754594640609951462851683809178263729749031514006430867856384589288530754380148756000724292821201134887647508785512724720186957901191164135046181173359660163734311762547367566162334569943501825662953463392621829992515067592129873920685839574793149239810647549000706806969703665479479755333602507021561934428607174711496690114572148717649235700782206574589485082789548420614698674553106155524171762476240876284940738118037700296464769714093567065406090978913700875828541934684570663801319676746051063615728153152400411639770749332360195891817767060484282789953227913424651071541880631688568519166875917323512529967988174726029005264502166199458852790102087167831624274972331212309861146701358192953073401679909947389888347031400797432397750309143999068447865591825660655726947372429688087765367252877419325558197352429584115271861746285413358559338352789804204476843089968837602949092908642658346508940356738576512740859505102546411101363298264477411454183586212452277368454411093218668085779801746802568520611381278526219144379376001032373928782094433599779298391157745199263045900054720703956687646334283576144755295694291212361196110438137378570392963176384695329720610229890073326518531191828760427130285673930181006877180170503210984062397564808071911806411641800412639127802877853743225019780003759888318649060440738397765387694948667630586553985676198188697405062858900381572174398872247631022183496481995778352808651812877758974300361585633262167975925268818446878599338230165355837515825845491585707632435146121649755832237244430353773498011610587306766552246960031321075524571785064217906619985157491744373831892097686728563707130757415281444418238901774341086759852691506069726138797087974851884645647219862864903849602650237786577778781295917633618031929239437729270426249261132398580361179954139517596920609801947489330713994806459421574278956626926014003772399411239398448983127304458735577007534935433339811620068254132731659455831162134336439885334287051253118282206861392601972811196437828736467007019519014884200592966607926303809744649528195185060154024783955649701444065301033607985267500472005944068211109492007416032156878239010365109599428955262825845541819565540190227239773884774619204029405923751987714581729732474680173375175397191638771928112759655336666404131918332312187698680766751049135157716268750348589332207170696483092294956068982458608747252432836580433694776112179080300938478904971772040110473456227041695060552590158472907637902752473069734983359431958511795083180720360022211872073976788043965382937754328504500545568536230541118890364965328201750144912537252886770386844147567766867620976404572840636515304641644201177183623871937906300709805986272108803527711993318272523079804471835229472074676976350922561526751174883063244850548668510310952610534704601479273331265940521158139021438601968757431884317509030898376992289377543417237135571212806478761812007339553780901975795760098885408262673585592551487765377498273927500371863048194789148733167179847170229972572847084105292064931149255699265901738743805715960784003159677693380978244234825261233557308739207443147939476166149789814477233517066007368739696136317647332280653311377802102187818555094190037495987718385191406600272632647690380810367416525556371133937770516669339108618417001651584653164178876224414234345864644580298942232001007071365581455263717247418963625366249160851206506127687860099333528592644170534592074672310588502066604907046443121790228765248897481211369887028389894400666557117775963581637574719973396903444591100076414538736187590733901789339382655480169304118921807286605584883498024271493788865829325721338690224084472590838011080001943140260629289236973352835172521476129385164658104520407927277608074668701249322216997887099967045982677188905855958310049943228202410723991549005620558564860118357613458188747642507426798856897704832200217800802913748777814221732464568284276586439993600716877344569027799402160375698728688982872868702052609824719161122733330762724496928301326802713971055556216378509244817284983244434753469522982316555388221315051634613473472303932124798965725347032261340855436905219136165181437503713967810208883210980195679555834195431299114906290604892763312944319122485344732392997522842613971445112838439055144552461728120090422220374163511085964374674541264165809625515505577317997589883062762205859823059816515839134763455918642781945302787179276460862390712161470033479644997198427184768417900744815250289090256327116873255425161154808145200139015571055436381844892703999530398889267435069195762847361268722313556736978709169962636875451856564204916277449457511435746212806362839008608977959248541696204040509114172110223573458753906599490833449811854270786230569478155902334080664870980602067255112105969906629517085396809175288357286206827565524018180100402211430283052642721236722172330898652736537393352681011992468611929351264345058768642767105167154589260125014724145914062592794251709284139475052861279097173807016621978441207345124321814932933017235120143687820284800618495764102719478207289748817370315048031548892728671815420264278831989972168813155015021878473103239188011555666798991356250721168403512490671721380905370814169844563907748973548296456990992579822407669023102779582239410964400765441663361773702687715662166976448685160853215774201033603257127036703750066573442434804137117384744788865276823648257044211626497925294586223980345075397792363715239370184452442612949483612058685279047935455070035819298764847666854763885213991941009496095956366716020083802721327957115719575721597042249624475312315145059906032699778305232565431256282465302018020633770263918593621136939850295097151524253608198000358440596576086345568700430578097802569106196818111484485348710818129288440191946267980904185969138364693444999258954412304193889703038493529395433412526998905747901060398363120101210709668423640051424861497854578710984218049279390526526165451008755768620869357840925487688924303878082520440576598243297402707984122948628013291216851818335927221697718541849689017035381466357946249500362316664486403211410545600573756683158919553328157824564275045738801970324689915070908234215006915302887155741746649858038415976821321170077542798190827662000439282743730538747160765636439485987638405265359620111898137528295860693801304353624004634064119661348487595315818094081610675918704806776520207983937061684540740761593889581678815004525320200979398238784486691654707422181507810442042736304191510694848584707539986151207081869907797394341852227396091266528634616957296398504160954792686302405715761341234603549196754248439217399713958517268112139276328961458997881597358549296993582749270273845563566643244083874689664506630302682513012626748979786289417887060029418695968904187478521009401232306650698605935060160778409907825875494070909058130180923204132071537257533186676223437424940923029175658185095924850101814806824816924828420494640290615110931281928827664661459287686773365353023224626206898707164723489528775309583685609335545698682254981373352346035671686210036331479248204434414712809237848346004776391826877443384742339256162613317403482979072244334965485441230276537878979209088082319603591077039744571064187397578283682326653247658035611781920602447465221917761594655637322356580887687426733086282109180695898229715123012981049958930838670682955655674603952279330794382151470520499958529088844131854977261561937079095798294484691948824450218072115661786447425463203444781756407265098869557218436116425488036131586434837469358883886042586951473143129426610215014341638154117632942680520663739262588132025151668922668038947624769751938832994353830943626643389049064619339820198776194875734223122057758692097130722833414995130241341139257803685486558252129061441559880747609782093786046347080712728939913450393872064472715422214328413244569288756081666177168870887206694581127520151008717365483042660448269530618625335171098764983931105623272364753808860610899844899363805861214962073726586126268975398478220840395307283244292505886374677712836533517659596615156635686972797929180269064297705190562815516286778671297992768316057584033545689948525553971134917737032325747920050576391869359611829559648643633212585780052782613744759317638900552862176161802510810639939363461113994842117468390123647194822200404529694688398332535782145134729424327451641795547779186422978916369915070357097575880168253165413587484021579783533244071282229584313560322276575816389077528551832590440221516100003449998750930609326796353401439223558095878046257018828982492895392430391149271735212620754872271640288999093019989916480276567440079264692922376389415048009938073878153377887736700145398764507450174465739431579066435468355132704055366012363177473041568247941933604507372219399009016113509803254449336009706002660162600583854613965769293569940604744548509354580025206736303774267563719999670838481982608081285120455552109066484318785092692173376485418565994400717925377489480320138025538839206066838763173563678867872193314078610836560496276614538270596043492096294908330088316801276330725967626268063959853296525031923588211743310232225421619332614679256425595327919166843869609151763843167459919419142445970487693274623282446300364021363435984339015614170539507681799312167679646564132496586813668502691354551989199145048558999350510493029044975445442632796724873500289682503191071383483130056971128626455215575233795947917366055824849525444254810088514109797677217133688627098586190581434610873612137568974547607737448214613140370722183660601949010763956768429775362996223926709489108976819312858444561715420485160301832804189659247344829305705888690505244770145909465593258089206237741971003960013376391464222245742421928165257264892044261179486008613541977030843846389615107036450538921337657214421414011761164832693831110914852571477126880402099136668171412919442986915227566251497303574002320228409317941488034485721958037843358273517741059697918403251707868853419991015123470259516000876395332938084650411527050553615840275656089599299093456914547205250981418211495135104688970977270931007193574476337290646384183400915144860753731275391921230263499979605847462982854035621026046261013034150577009771796978968805609282514767548433206693900939879195483633885460885703806767781225480460285859475973016109358439649345330686089586275460093738127606934963526107008004368529458452617289907984303821096095777708206373450960750724027546506448912661794843682378965882869134256597097254122971250436288850797372270471932574678137886077376671750592571904450444225661581649759309331831624092880380117973701558774397994445340333467832521819423758573785372399442214623654552246495871807325982231713554615498351424549804957721995699675571939991864351291831599208097165892292294888912666264451022689409010173476634455076512310373596016619765261608974124173988995095155357885809130189776859538132577812266063674763108805652763043753019519229793360075426424787769623376118149070319419972203160002156388585514414603807582881106204027154709215131230283362158787353310624936367170658218716299809072241409054161120138720431227232942915804473498621901114005848014133597921463378525492405528198154689400492178721410825174829403949774550370167168257268934788351861314356470571042265763196367445155564730385359222260251488054425950083101150750530929813905287623714061047510830975820329327447440597607348426196665448604718774904378638955407123635398171056043990142711688949704942733624901246415396304854545429929695965491032098123877546489991746356584306776359451760893896147457495942118101761528808249287573724829988598404302135513617490513296767806542365327704378197068602951063953961814717640635231960627090940281890740084572191594062472563865315375788282528251434032451662464933906223621817779021366922949677278189104469259424965246777112681589460622068262285345929134048871171861743506563446013608008663299991275573868158104754895485820199444371973093407620427170174853609180402659842194078305687376138778491684656238113565379186159674095261067574389752086701867773346184723283517537039919453513443294985790969704985194693555678284303597838055300518003159049077649768631484124278052430249156721792553749964945284078548369376236730307327295164960522741431178870788698542680247319133152247963129634768484855315216540951689482638144522688429625855514803228318652220387667612440038064674887113314086784687839305399219505051616934843950465294354727952111666754879161123067673066358497111797197009102839279185226619316451580963183004894229442684970488125930412198656659252341521240234078596961395566527334086012078794607343942753826196931227585446534605930637842595859281513943575212314554792567482207930881112090527870519181812836371921103144075104246961855916839932070003360916809441562717663260511366704686924862224379267758474228279358334246703968892444255777273452578159995086299044399595603927003571532906143260536687542166378101328852630109958718218424169796415808500506413066250169683630679600935168603976055599215697926478317823239365602785470741675169708704151946348991193003530944942929714771993518445489690825109785351600693632128982620390624127546999398751821082066288498806760890008006131559451345306421131215226450172534609696408251248446695518506054980649092496583452479303786832048399469957163399756285283381132552521988400966126721889599814854502966201280734145256081818864167597532553355636889897189429947193506442630365687026606854822743881475260565927369243748377650129895666728334016432771333993521709962045086672772034168879987451758135514732692203935457397885522589136551101902678355814025115047013158225197196704726470090816689785292254508406488852405104702155383375491990387686207054700299211830017337650448300688874447044471095603503444662917324257407561624142465307360618308826497502390625903174229769982000347221931680677993072978554516808910913659782486402938229171810003246880182190850022305734594871639916476936492515071679465184903950417172306742033877639884736279544244559226934370332038065328619775694066711703953249915315988215709202421148902975870766898153157189091280640790215935700336339781173922239029877844797336058502939046986122915223981119883625608270684992703916836605038187879289330095151898453694209946528194494895119263790542616680057133889433429661119087470151700716273788497796750376832477192094553583339106935737346191712458047474456946686953670325401957633267493053965449070375045167567870009642833390117721652299906570673034728432564384131794033236552160042525583783530785528177634351137691822650924191143417043886646873057845294874032969997266777231302233420547775957088822467118450545896584334808514129786279504412936434770079358849204938579094693669248117207873718975220207960996743961031578102846491530429395618579759968094393880255838426092162198589089770632269701977440949415259639962624426025378883230315457973749154920485788410532383644043472494281869881620226775681725379984376707913016179957589502586504737474705969133986996742879033091463131738991801044566471102407628279263301144512423565722227906033264116198900503526558781770351907267824808310235800424342250937296264897574411991160485157841164005489558271918387403978981243997410219545000618983590216427378974982100172494871648698737632496872141762244761500309532325090877257956487331246632003524425652759991692392887101586471909585024089693309503859075041024345902837050303884982973679768088130206408793960278071324549927542415390422011852381709951233547074396337638296559283157312686999153726839393586596078695412423611071777002785971244556745370040012536118825041485662245909786115103134233593296516945004336834950252649724162837836679479404707158365117729737834408671289416567041154233706645996417838943421745653063147106024493250554601199601264679829216641831787363243935841064463865331761351919769549165208059914718497716671378755533413748622557723903741657843850829539230050568431931275979782678726090461162055314592465145822273924451030182587966995664523628342391700994403479136942990565768178838021141830268081244668240139368381781163588596616612077067484621813789055697219688804895046082115256374098073090766799540079375477322076665424879162803774258052982514831514061022227446989371244323755531210159538710997109759184823824825076560364408343371494598238120627486927455332501172882796241955624043488314090822235314642899776177557036972742389840861756711930988600120149885566581680217041154170083634361350686674201775756915231795983427182029018595707129747737763597209907583848399852014035342323902072952976166852233390826729974533865560789892034300546087135734463928510234421354166598648616724729495845228971142759131483366557580737928103591519159322083049082870268786702495210024603627551109523838138594907967057419751350467136927438001083852370582213700693306926654026988100932633029685112125507657895635816150856204442345373554613844842875652087311232407370417149397425005922074638207143555743926809748365368283345208600675123828498871517149449290827960124940335556557304905935310972867765151385807793908883631027633884700088337756389770232235424521251283161844898705399603501061624550993103969675789502421474845041716183626371965116775058650559008970116917935313550932134734558637888184132942897904980433263924025782665075102483764468435771975718666266131222364467552748459704672382932069171891820964229709075287893838398017033306932682542145884690368541189452304506956690902179106517153052171061232712298157272854942879949846850924128935803218692568559737849058248549133049773931722687313245763996693363236588693497483349479178191023290050458659764482044729211843649273585642868995048903582204464118847364652129468345980106076945180699721923530937551364909370560670881838205207954695610891295555844915812300282356475428850489656172738726490544856929862688506160844407295339991638242861898987539063292139450104087772721298733630837269131754311968632679665974407480150384812412027402278171041347021928919174784987685071016034940092027665331029588843122882956160984830370324850735248205563916955774850363033038899930245745895015199195024103104716522117343660489655246979654290400793676398109493503329483036913565292893708717509721254320557911587644164729476707419268847726910880839044594207928195025842157583178955694162179988165460692739047509286903964836400206652406419200642854118394023852906781867162952191398708394223029805640903956312578106301056803370760475894932386252886582006859531589896451228781162599458625831865420228794923706871497506868339939693854187431186963480073718628787480972874153298616979197222481616463421798227188542734776916505201189428120402273640136633367375839977120535206977244062001208576442158195197026594164976665060113233029090243402659341522597353057646654319722389946677154334948029393328821305350241749668979556225584747125075701822989123734357968332713612472370846576702166476051457841393302793149412986089359911878827121303193466629191098798645729404859770454341699253841741442162172891729899595241416943686418950074242920261054865067876402343465314958039270040396897091282227358067708071043355031303573688543969439413924112124775678773435725044005777400953656113896603824432743076899997725245717311399224208685922347589167340351014297324500139587528128611643182268350935583810583786942927683438195566623764717730762279209726828780870305341982896283607527361915731579068087240899574631681402738235815229099222062116489542517267869990607612503740616559425137320470330327337639566752674139912380761916899020756698477557376429333902253403947092370972846904480185762527065597720808911309390272105276925704301744129288051708325088045747112634248121312317656049590564292596660485650172640960480151139776367421182154637487689656153070127115126576180659222786987793308090826764358729296599315273056806214084851394264355501188277465484665804644623631692860850468324000982205720500560651588080110787029777096405211200173625026793486820059623616623516463283747365267160088058933339452891834484185750686697550108317794109552575268385554466286587859729466838205107721285323786180403811807157270401564948803684082000705270970829178814172957045756796324142084563246951669165127021269224495497150266836322919992283608804175193509072438756525336815019679353312654275256987563958094480745861484494341203908845118982200077103940287612272998024861787287630332181079268588700602725322387175888190979698011954084363913425088656741537199368986557188219185411718579406851686367618380174254354286239732515649300402666733155473428723769349821287713932714337159939603889359249784275470405616277003566864784349921001712945259673501424749719550631010672745163071447501563701896483351209756427064619592472016834586703335761696763091409250336353358576612655698217175148991050429603919030224859365210091480752823975005042818348583217822767046691539328980628520589773727112478941726113794229901885351840188626326124205657005403762133299415031583153102752676377191703124938245784615965893715901897942061955677069245573932672540249780979436100327645929255005997206678031375915670856819106253701349378100475537282492364277476568616032245505452233425517228747554229591989944191825047504124379592009442075541715301234205054080526749632250073894382591412792116439857083000120194314183615499971249676181988454280406285509873858434984962613089440082795772119619829535001239266524958448954027783336724748819492757792293100605357433378836686909972114396459564638353854778456348383750884478738831251286057912686064770915173455892363213577647651569536099434298787548052096634733329806916282921522600140193529656458788264329356297149126888036245356081463520097728174688899824988985190284089317975697022383611908693225218798335175798702708225627142812554760766522167062720005485723716112020050651931162248899996917965220743597032264737203748854536437057041187473683178304993799794146483093848850729676597023478631404606877639485310198766695232329559309817259380593897025012442058372788871347783820594762248685569004475876490832022473894946615524517719897678026694814720520779008580933881322741239634260484141412501193373514691756072840718753784068112638734218716736889787722919396255848795705258218928420790502266274078301856090942951874226147874600638631177686856489124552914067502671712616717099967672376336130801660311135757091155655429320354145367905569637426581255311167777336611658885296662847791370409384422827430323732558568286499518073421140396026643736332884042405065294993774712683514615129927742109531738571405531303647803651871186261425657300306092449589037006385445928677820169027746334590198914134639996461150833704545763025528425885546930100008598431236132735884353831833354650809872963821894365927923783748906815630474558483770033298184738447811934277944350854860207842393789641480387500897859656767838293336875575493089443349207243155428131685202932171556403882792681004958929291889948203792704785097380326405633211210602821798266039620377817147237370903302289918757273184622626260758240113621410056387568938106738865714798462709679650334902061029406461954737900543760673506585039159336330859966032484501914530554381100321813519320206490223553578570299079896516298015048138081737350273193173556720845569934648220255031123377064969495662147337325593537037566081248819531865358850232661298272377913842317153746603589468542540273110879389250438775302420564338897143637631676711833973625406884699867201712478755212174059700645457530510602777985297209261674962992034339795377929448605057885062374915090048509144654187281585637189567254619893420074999222634888369971156911076793756276777979773466193175746361798342759224245485170431333846957204861033850613164213562788119034177624143723492313690759813508545466460590889860936191550798158669585689650039400331042946678519551092991057865207310201225314867358335929818443843388524373421853047281375586603784003944316418119964348280448740472509703997824064520735623700571024404028942882731457616358288792195774958070557764587788605052424904717975401233907511646439417362942747612811780203136997335380989602577877661369181261112463174660495920631428037519720513712278661621710955193307813596135433084474089706027763795042460366454674955479026261391049516046350500258122270550925570855204163447267665224317167645347534546653220971470902605650313502845372575663242343974826493962550237943804881969093890989432022931368753817172578854072378064202072234609801832037101161615390104805231014943389914792990155309648515527008675851457639087469130466352355653495057723730829458125001798954859784233139387443176212517313629424401303084848044146875017819509709741540744588436815605368344324868979109583545688644818394212611921251494243093797178423414385541492408533145326590804534677866703638664158343484636925731579787647800696948455670433658006656618492034902443998128584028197094811959420733041166519797567529736499920097626882713419020821637298569303696824261601044250207030622968269624146677845411472892722083052589646071491867457075845495088502340271117263749471658239888301237756503298412408437173071177215303002617082589345200778656205575325739322210085298085514957327590633130775189073536773828547436318646260484378282393557001026362173720888128487726145493071404615779695268473888677084371979960324520709116400545913369328768594888457497524611536967895700084998049106817521785778033938211550897336328948889167825039076037080827093434742518645876523324152837299558552050856027667990018833602115945025596319765003887910004918241425296906661663342943158894022138248957361755225991530706656214830668022055165338784624777366120999450874062097440071878439393649863191802926892487812691171738676817780555010420508811701746972789650107050929948867769727625941839929290137165828198294415807538597989011827863597669315969209084775677753731948233059621974375240537157838999776367661505909922933190866478418079397622048836191065606713823607968237607032195221174728423447206598085707305882441273322037406713210223586980179419058564033367015838296833956730017282356229954527043059038541815720336834034720633111530264655101251638480592069523343722447387013242528107145267563105738593552953435174871353495819347019587270931968748077504341009837032976526273452546612699037080746321231835593704938815797223862078955145318972044210055076414857106324674031019792770410074419552167802339740652309928028214094125935242081673497949358787154178374829440344534156810116824299494349068853149585468015466963768544538872422430629791275289445221616062633610745398109537687400707091231162854809251830812302762027344479813561871251023641423632484586130052199866164560573497547201183913946890655404707139123123002630487866204074198564277667474129331832293814760706565131524484028814396030852025888158599071290209504511073206024154803701425775252915855269113501880176128052768168671016962243184467287191583832875911408064793387178348399833232577259832022519063651407176441008051823518073847015431958181735229020657235794397918125585186503107050121376844015879202698152288066984933324201616643276183465224087465201859092048928887512282084695449377594547002791303083954274731581294807181116089721231490953776987913350095668584788782900079564912182732499862218696415681683654179004170793242956090391755157205189281833076122512053140189244680146797892330625499588628700407671987324508353735845111465532514445495380676661422830068261743792704557470532886206729795629627929298633623431930477193015332327491003916604169968147901543036851200517444637356131890875941105327403648823489425515624703965699923888978545483094212464978176465985473888357892638660069098783056773466940226475545839115877484657872529322961921555829934866187567670110318437719458987680114155769283960518209998999871516355841035161589175245541858934938538651879876058545323484066351357550506017041097023941751573882424775097430872158996146242171847100006883986254925508094959981072253017923278141504634389139871822439783778888613024111330425115274786635786706627140538375673758101528794991164652055613665603646562918955633173858658325550853215312330430926488858725604369380311990358015925593131353756256081725204475620561830479592617922388959688852349729874766177499756369589312863311551393977829225133255916148907460737752724598578842074902254905248711800546355336166424885671864593368907606825720699966465528135897390712151544011919937055175805742049722292816186692142131111841106716179917068467184411404509892990128161362370313808639835305214222880836985277556771432534840723908579457830364220505799516334359890266572929887989232193184301340082128016116215771945800117423025742555707072827371514907361608381086766355389769324239489396004577837514486302241741003019913009921843706333588238357548040297462912280591588537983879021373584676918228901940779500273662807912046661866476210068685307084691915731566709365969636593157740567706453935403441493046572561587045641509834545471767483487701084901786802262716362807700003459102485887848453188148028752008047122680709570429434986888324355700534232431665320458126007362306669114610999561898787788357828447812600442720064925353905295175993713664168208982410690431427096171978963569544299740274591197056460893794816048418089424002299937593651399939455391320625514809241840869096805725202830290191481577069637758170546831129363346475463240008529465675645627837110320626541132104240280663639451661602152881872976492432672963183811527456887876237080049931674114591887036696551576114262449335002284825534049840420816437692088079449777232071893134892558068767170042409195277131545744227104951180664067183453083907125997608120547705208375013555468171635113389865536011293889029743357754157360989411137953484828789244090051321737877689738668365310537362480855778972407158286994776292553409804162158721838449147808383171016932516933075971957668144329381397300429603531739002799991310551862149797196500314910333801865814261254941616326070278032513744006170409406256972039637020089238279428759070053109539569604698467045318593839685029958285148001396691074618229505350492251863991317026617820902928160650021693075501955703447360945471900287798734897390788871568353293282456244364234214346555457279481753323940283065708334689186908064678155365051464154764079503408108668198840712594534451250987140422334886069753551528885396997554926288538489440147540868726282403962240306191570869278013900788962846830948329794344265551688248440029772922302522262227135123359599833135494251185092260277945244816669638495241684999785594585559933885196575385164118429953841004988076301895257373164849066933044756948992143620177669623412188081726935075552931191124667623412648557713955612106837844253408503702663791572307564371004635312128563067821509103705791862114568889064896575740122253512475039671908905279728898190869487486788588009140797866726235805427145959122915935749712459653905457027021869388673473765988478777188367330993689109514537305817042858916712109477270509897701207629393649293893305150667027604421092565428036424032888082013321606709434868342922890408669624996964086923189482604051978003513756109484467868714839140603772144719165326106818550407135035543712203396037323040275779023549240506657615126898429768050263002954165226085001290739559102054304958914829922113402880409590479812448430169074607599397136399184614890821449052376139148957456377013027019988566070552528405853855134476726509732880357681939817224156106646349498754965073493824000212416980739088849046593497537465235810264868886536266341322298275379205273664720343976860333075826904926577675048252892069832367144669793898097755243248379464244523554223873815937270269700036214824696334268077261140243455611538319022263158872847254258358866417345442547414673146138886951286550272073788191972204550193006353027908615379826941011535085411811966338848175359727070356470898521180822414161265362205208026059028552322642846507480829411882420079637306313555516110202567104273667327068773229527274634934421415497726865385369669443581631376557755993120984903326027325085333048356590983219845998006360163757050814783944965253687977323365743312243595202000032644022628252953409292405360567360822143826056374823951907081403566636748635978203984552250568672869596440111988748554098456460515192926698062592536979188624980502541038448796798404303402404376381278735332089459353774360684792429582324960095360522497566239931759928076309530392146488001837383996710394096365612652476236942831727004260520328742557122776362457881369441084741446249461058125110386360099101952754406681012510431919302555626477530254795971571777503315267384626576050251471939885016909996314626932817117754886021380773631846477271770169755650946631013822610890331340252741186376187539431179912325406314299384856325930668564938301615175847459840851408060406374344297306747868886391836931488218681695782092632294794562540469340940179608252280268444536450424199598232002475944240219183873890004624983250321378005963873198406467334318815003117203729951547547546162906878173168360122845147822840715071839739405323381534491658758154003720767988647499346430538431735523707579200933934600537452787279433937617468493264761636923773933301743570679308337661620110115483169649615347245708634735086083656361539315681363221787924124811558484685135224029967408022354054369751308625357621779575139811707853551102019893220344034126251930009664089621828716478230207345090719415681241875327983892414492074839976851532105539281144106751466496995188465386451213384483401536365670129005856120485705163229304957728925257695572067195786429206513124760356638291702664726827582445615772743742586008591882547999574641939627111701583866683689074112081656105113133323707368427823961890722697545250637054063236126368376532579503239514845847655423758699338810596711534770298912515247118408329844486399668660655928295916865154662194326144569908098315039614391716385215821611860326785636017739534781592386448447671312386734593320403917303947084661858303917610398594912338004561604719934319438720671937454258817375534840494545080082571410214042771985971520679734696227904843994058140100876404599829809902850526839825384634415603496978897145401534200159787674082343487392828895268379835111160509492291234523850599088251352361171310802427558332843489274918906994396791771987167752790329238817974594057304726720388992978899288148124242744263311760881071059299903590706094370411375415380537226745595820050602308732427852647612732432753574600527195194036539001390769435615122382854797831796227433750996601017682575512133170910704933917197754378528961137848196957347021297941152951918401034658493345012123782740893886261973280109830315368090143765963378958534379210744268498137388744391757789067519233322121640903132898309306807075640787463514371843755283221971683423723987380285479210128700214810423947857136167623069622875749282057363542190647219140066060336591981731020956855875029062450624107621940169640752538971505316521665884200518734728567827012432323983713151031215311692790638982079914833214199594092061830703799624641055524371746694894971481264002981558304510820392573087884902532454867904871242600696853263425124861931429113736615808755837130269332970406487256830972321028805331818716160865886794121176469053113851668974980208069081794736483047218961085221853864586797577818237386089600803457286711989985568734696000765866424555381311155397487458331252456228137155716321416773528026780223658324985371822034248346510462819348210649345991101760874134027478450253486940170517339425449899636986224502129903804330783346146471140038386890576875914804548180739910539021957025394909536074436724382491250094990846766666427259716353480853801165551788764005895688428282601692567951715882399052566906253077884592799441261480762842488790090860533936867381703464757317230918511192060131226813538472770694029410120548652234561930746647360528307131133921312826516367970966868642637852198580315528754019470671376649879114211901081530099895919295946162627558806376922675584963417609911780897768736797036572726532707830867117240440820540271613195415012909750091708673021106734299362864154370564412106710329049661075111913814292589448484076257916531230024150214918891270197712718110783506190521764372063363606367962387491399344725491135898657463353140560746278107074106413140848480252190836550160654455254002985533376099770782229390324075886336830313286846173052112525824086487691857760731961882616628382973847731701177276371867603834833672367570229836826982987523426448605373089419297465075221229494045112161679124404060242379378575472661643262611343326757143989916828670350372507522543692390239049526706890822924461409792012950562024505024241333947038466401026149255313725080634195165627158166111708878625332138936491470931127269341114472605467853861473497659083285028473309473233531012732975820753670608313811385685806340564646072390864624046528454443712986860672434718282178435855231299447214307029046801000455075065976451586452806069819403113905833083024785901065302925257454188174085557865076254536013943559707978308301386573162559997439077700173593377721816823045895908873986968594790404749006281362768493723811823184069576063891999838130382486081054544291786348188242523812150457918115438690740851011371927043523465043925633512893590884291731181334997273067788331356306891116550931219500596289584550552285735429968892628289027542309341876166432441920008938712560590451267883585198705062341651014954387636218265184729796146946922849107477446118175916181967167333109809922604397914539103447888791875636761987349741942440711785641825285501157699498832892649568881870190276993425291140422589541450280578397375946618594477835915515789529052539575617297005522424274924698794710812769483609279554781722492843967230863067248524981055668178833156425349140786200029738337242838344767260133335102189753913116415706375079413519157666420104563283801713179099301655905409419903377345161410665767174719017422104460102447658266219192903465518761468034841771202268478590916537796539826198611523396671782539063372589997975144312181475194577123851539539411628105321248273596468455390276898028580224422626683697079731614296649018189632849488547494968344971211354081897589604275775078088476760655499687455624290632240749161378301223172987897620024585978535517542486130598976695229348736404920682375226164716209161849102769174636352481607236137733878402073764499377605881008254486368369208185486380309078771027366347828476010176159639720759055648551662735399173244950775088975722662105835838118406462935066888469198528644454487151437997758791238444358765768337976125399366598258134371241525069855481065408495473576105522629137245466788028541662667721148318099002794487179990012900568089647335173788447043022905290175286727794541976710623096841121035369572947567634856635565040149781070016530061901751320583797470528591608645373917117213085349645614874004230811561037816824700465610687040094775305636406661014549077719479807453940662110244439275273057483840170905087825955876446437725133944083727376919063082428608664940696160831537118939730444007277257668697587035264561563734092791995595363684847043480453935424903766472529725800424036848614632596321314094498841263256210920400386203913994496673436618141404159218134011048336456863916048252696457897878240487124943853757331242720772679877673761575476538949194722326950489341504019827418869007613492462906094942245976023622309428080783564879585390827824427820425679046873142513946320674729807426861041929395700561708524967754172000607680695744501187517971911116089136773800370745355389129046877420876330225143411084676331141554936928908368161365823026811583113576794074988658474334526039888232342980369751119817960202749102007046236420202677871371336556067607182963178571786737515332715783559041606661547415248869795009830543154687123592916966986227012354910555409279090439968136917399215989252159585151625468896719645945919182071765562635263879692595192212677753659388676834077429217364661662547398421952603529699074275616936610280734089170863736064966877277008867037748200395964118030215688010018226441558134084447188708719791115840158670761965663459539347479906281049032004902346528863783418149261318347530278119553664030634295635039923224705962546114795678485578947716391689624288059812265787729092331272486724551084641830030346109092378381213187005875165889049082028650911972879528912042099483918975358989993395046024996427733038881078475861867104561454760290222364201805144675981048422714709086464227753285718108674612597507921744165377199007754086127144043421375624876456047208314028442623360268018899237132350571087054073914410882157958590845075968822977633163827106296770760774433590808489417462435611263454211303302798398084944723848483003838052167076587514731835471870745946698756058579644889639756103754073043054592039962934873526954378431187455857111367521366688694926321704657731960482794915451866748166211661695362252171734582641974033240872124884447244612640294834984792900258072123751274471941733735714825506517474133730975873960853992721071207377068655961109337634689936411489569037670634657081665454408776079186431976195275956669561110835242767682550116883775691759492134198925140916234680512471240432635544675385875688664694235223307422224172058139860821124957794728439303859502276386988722069226618056556902465519490531759759864177265993101180117122779552442941103411518978071664104875805653343207405226121079544821040897938785952707466164004842129838413538901761637462962279574503643656971921957659494976373243548544910302869644323317234251509296555572287519128683344668568041495210444691862237933661150724226699671434780051227026483820595251239194265055605436976387518394125036152898850458337214834054551305722397923767733609476651805660323107959158508363367889240042938317239901397478161598542020183178574080931003186809024449130650529240821867686443056746863976159844674034243383559578223183523761151246669187130770149655254330102127722872293434167350892365169979892052293248509216705951247378826291369740233622778507465006202828147026676595540294341482403723067981737396800925798174854996653709947888798982824053747019686898281389198696767190314002120156855981770479299842473243379354578522366053539418793472673662370638777505258248230763982686877007457792718388591258430167029066026056010183923705062595890554687851822303485624776850670641152522176167251401023915595482842601559159370340294696390469139435993392128447485488711706071176780133197151578271062586911663463656968392523651045804932103034350737349193327529586339549933179306680586901249489772494187913494201476348448045265331025835637700054779161759113565169143669775562042697112093755426305044030826317571235623168382418020490840970435417340453599170284344387031400807445687417140184464199253550545680547346805001521794344304198051625036167467167828124577971863404997149021308488464791071177041300181412826580595605066508406652647329797190343992527859916075483785757314898548816777906191320757514102006378025336789616321842298568716336904774139508109963996786050236425918297618818456786767140766689284571474112592598876467493946124234350114429154457082727312730927066483300456897217466364477250644982862760980464079270792522493315367854980046550953493205747560437095081389819516505333520349360462398289448462400110821734639181557048850956427730805542131300734260946224005742563586693695356158231325409587973284643621594738156069120901946129944915856460869969380442007356310481821071422653514022935725955072296725749758396003199235354507473924632256468549185112177782826161392418075714131999358488025191654837774706748579148278829170419076758054043168583212705276387545625732364058070138148508537589750823980320938578557081606937369301143907798854402020227134874896153744532365886776069868981108238461019643706317965564556436751159025221921551038892301203479006598693023263994520386302722837612882949723928482723296584998896543483049150456803669761122313093373563918631084060477289674319609350203640257313760804405075314049998374875877918844101630984147986138935137943843451204227747310655207152353939495669282801167752723635895364328488586251426594608507920274698444310642167746776736326572550992882473658698809223607064469693921474932736865194237662796732953293956989510618737467029154773829547990082688652963948416989719850403138921089052330889897415146789462984695123897236129725729402947729997981899288346781540816634983294179388955710587631806100756416241278080811483946427410417420063461517323342481044304562138606756392057915242862030378991102035510043122387911071473772735262669621269073194554990343901590706424011815329060324680544793910187593052037380414538974623662448254372308807291945070298598074528849950328662015791578403421716514204131703362240159194505113797463861547872691369363829980223059364248972928532112408049068835553453297040889061735350653136914724969009864476739966145162472636324824810486065824361511059007825461866706037899901006801221996120443835797564851446401712017127623629167908510352420451267133723301018430850730645158471910706830690750453093189593962544067877899116834826959699685725608628120007451312624708911654673441521461136723623203807687291467419969488574583883202312380882954255926965736992093183281199547994138972601054473820742597646762029327613510861394416510288793457080755076067404690534344090317685211450923950719877557313344315091742858386905050942403355815786709441168123103787503724857077758902412173948678217442255676075221227131367500983498488940570719689245863051533429193161791715651141125448789491393038377751744974184174248854227395658520417617341483985035642283495037709494001066888021131076300252948941778431276417333775992647080321785281367699633653451601651156009026724550075315543295924675820888366099651651270038283573020095092013320253747302375281386943922737144312818432104232058254149203751540192969260530737881442880634439309000568657151448632941628659586562776235452462352750377013329110943408642626653960557474497373727526283840839685689833179700046811377285949943372621352447773984590279336387767066116103951860679489731780159009852094007830279131911043499960249144713886707933892274410010166890596426012558359767094764582873359228531254784829364811066311249378070155410632373229120803186121767547022306777738851589005422807331803735815476597432774317107084784757819818417084030130038739276820693249370720297697166228983498666166688530643807852971578938645999972666482619378653508294692412754459749274638687834795580946827663262250919880500568868861228574480047430128944517320997108767615893306257230080098294176805933259572521325844852311345719582464102193379357001306886520198961084427820510923891778727962695535372858266908301772274776408278728057492484623581452392450405629041334987708188741155930081331375885932187311091178778699242015457639803355322464364193644068937098796833342875323027088050608027603572259405505291336084467380902860586744485673438832455953956739106118246333612992819868825806021122488620411359630278620130529675324905218546297674739588689867601944529833533740287306728999027192978954085044664809639586666283531173298434455074302266952931398362515389220818473938216276600236720478117736762837392705643437534165496837694289090677194848753204419155435611170966164056817017784932484426333368010306469776488078487738870839166251055475762240301310367988888495279116611937586842809905428227722338632853353581840822936148508035929458336693935108399249455764170390283303215450711313535493925306811933141928196577585341694872827457171381003618293203318131153203463949625668351252926149235488417652624983482370826957991461345206959630121165051458439363677810535705481451586161407671951285533751333101529886622609896061261009700746990009880249416281136474432554131310324529606841996494469920489546924097919932897690516873790577473061668006413790212846754866950204223540054171407942983163869137410292808174331587825217515462305120092659264103443079499857381002188906467092889006650121801248543444886696530397388547102737856163120771044382092115529850093221655906293350855010478073150584544317333852999553921948855931431447920493923107828718910020848243459851879656636285172464486269283954557494992580326546704480967014091761012030048165500731833271377681169352294191984109076989658932556220072293753844747412909303622244243865340484654710535918573923327767219804985187109313002200138413372897125030946785315533825578357239558380178288188038286438340387489443181364532896351966598271633991874896301124563499916095986176771692158228706731395851651721300845122089266620775032300790307802623684058872655122631845636059609906240631816873867654555274661993756595459389069246127569169846773171192761854142651893525673762998038987506753172300685366926976231827142613283606987728280633469471681406846770520071988752615503983099322248802078787531011201831014453580264047615668618996191957701546841190123861286849055574327036228339611148297368596846829127297818873556698578502019365513208297243689218631005947150752868283491051181978369268620989252947854962208622113800531499993439752981733122318945299861791329728081075243886011176825199490184922552654306129780017987132146773626597245870565202618418779867417770519659739285186487889798046228571138231953183626513199813906619452585775351999615606702337798644509391875679997857555940210104061385040863260048977502627901115664415554112954614449388737519480348224171086456216474395429190642222694781985898027911196077074998603769557178721063628952507177308263391830401815876315926224750397136265089160968141563772843164493735259168584144954364115200647669484133509799216547752031704196292934320875001623404338650545125060062686933325242412069093804231870416249902224203418112210879373745525553214970557632053469252427541470038582012215692478970224670691013442840194158382596883262441533169222134027018029619653022547187349708765284324522358393628895133238635738159101916761843466333257149146226846001690119631523541162865137133597753289481268180405995326086988028443971751408003978380671256931286482520001330091658476453820472589729990806228097020762296164437679370418544770761522608509034891582573517262212563848874872919681402078416166571979590933530999194679662426143056959428182449345837180057231653206757879725065384960796217122855086712506627329020001902382178466643240715010217848055361111920955623628346145576732166520468435871552135656816765562759089826856077165721643730835363097643546730486681650138237469035897351921817824475300975725425998257206746068852643071559723899796412390979464173277242721423953703376008635693431019361402639541641969252083638948424861269147814830090101799231486524203738633323459918918191513814910201973244821675249323525821565785844516421035575515677011075113847265597284435158765480569652312040788700455523943958877951678040123504637311882261925853389385754097631266641377878619009091752184286929430655301478414928121025236255641692371153240388614730740782173725833706103355025992879420464236282962612331279579427099936586330728424617750191128625566426884073606717100856817801915432854599349813961414739919312302582341382071985822311668903735489578338911493502177780830731029410014445935309811931071953347120996670928415654995322499294438177771671007901505579387172890874995051231214986813130171418390599438403731657838563439092600925443301522929910472011104122723040346150651842683909352023076182343553096968166325173455473176040053993971504309122017927623179686605968729877658689414289922125988675213862796615723877977939541483417071362499024423842935882685315153901447874462812154122240845728141395450882333815047097846704976821544199216279171752606163021540099461116043362251235976232845035366725531751796898666509579911322628012837018353388321002649257924974063970058980764663180110640857951399553085439599955361706268363795476072188773321391333957719254643204039562667364357906652438480005338179193715371652279838985152700547302730025376048047232824470746571176084079339444469769902438610013636536347714576344079109502482972836016178362219552156474632633337453941727993226360310490612636510524895540679321507152707473239430064498580006235963534537084592242711960050249473370444878608094629989009869089959601438864046492632956036146864896744696277197983442637701654699393380553671324213186388229980761341873537340163898037578697315032460046398710531248723955860206180492596319736742936772039483015954833569294595090349308958933958309566370270435910579186918796440959390074435221409565314320304567880816123909373846922335605945663025940584983851248933303669102814221909698327785484054311794879659944309548623796846384617955073669912404513289858624684259319087172173981241377331421202776349182846126900355043815883049439456626227235979621793085689858574271683177755886577357702980583217900627539981778475571675532133151335395898261609901387392971781405618264752830746610768616905534147241629320936293606708183851893497075458587012210273467519516665206980057405874562370369329711207261160857809960142527551130040771308535442513419823756407559247853160814021216791200490130759084182246092461821392320221387615431362684364616137725854032994318013056938540648838667882317074994718838023878194416285850319316940854251968529748744338917623460506871652149722057780268904242064629618221039694727324370478948999332454142362585322691991203678669966230168280474210828252894538706743254761621738712303765317750029410129481008663900216789009682614916195988430687277875216644695859547757785054324296374614117540065292273722670913920818403062201643133202663783926211336736698978601260468852271291797768790153812544010635605700431427194660150744101367976774659551302596981100013798074107664972350450822567325330029134185502768518055548324103552037071936231803256519058300777631807424837925036949286940333439755169317994691790580761103148259389961560257723744838485199660797020400503538464140025546431284297850775027122484153896111976937113371202656985030589945657381831518261720062306365672327211256296977462312276886400022580221492759290944161940831475647794199493523402890678116487888085769629344179471447709850980621316586703337661663931436125976009753641842079192937855455433199626394737023265606402848695275717218183136939800788301944634244405104724663574063043653608224322736746232807016841221549277552863951441280403717177217499637367729316373856912925675162053811851462291535014921482126548687243067880479099437641155933439918984103304250175346360631787964478077363576165783879224595573206068915816729610632149497109373527186922748615015670224117692759576731887631641140081085145543298180827786745702262525043282198179347628783284577445082112285287284462224882663660608385157416226486035990357363633188672624641035807790789339047691882075710541700014663847647351222392046214152058653179817123391122635377838206972394666826605837845426689931203087561447886618265345803464777456515094789360554486376925682288508570489221923177865665418360545089610064608267268517361228452988760944321603283385317175200795446851186388763290818666107048458447336828828852133004311299329249383698980910406623908830691968337143048861723905747438989783060928388712309355621701319903760940045161506414462534132241420692795872459019764870674936710580786992562699739825051141848521725560231600957192786305249142456865909375344643523907061207979921990267232307875604018032139106265989203415235635353832982568784523853893050772977660622604641678696926581713356001413106182980501906700356248708438348218726163139602094178522825178916972859839793881370570257852984716556602509143203511699399742303132224330550604336726830356736227137268672592417821368857339029907766126027815164183242853862246327860974177757378678463900464255194633209967885468863050050854657131128298405668845571885671725627857130448789666822636403460775351092167956074142135651620568075597290414309482886289392529008860566403780932626793060294923305864522717876177497975352897798241852984468628626280703285637043204031344944258323527615682615293037412139872674607793312147449953748071656540926360284148893983445632644788889741492648211374136207434077223714880545957181556624301889789270453270798689120984911150660048108060117573252223652391227413101236715377750256866558470274170452511911280104152787463953506402045885196725050637371898729197390686243246045274907249719846737466298609147056140092656085227298059564541503359303255532278263294628487837190017876306769194188295639169638075868503928290053075488473208073017525057609245638709741701320040555695106429832682670122968797531823566209865221461009062119224004229789901803101638263365390798036769874179195871328340539907287259052000871516206998355614872447106404272254911630712744026094105244545809355693440536910976443743975270838320984152879352531701691516261659779151142128634126811710717415453666515567433469492698896626277254908800722975826580561267168660399796933975291764515249125938539209806729777591078587338183349347290004336896261252234097676800180898154833583504889147428534831859046669444118332456566667595654248997825203209930765759537833509719753452715383716205156614952222617835843285576722690147239571348643458725523844589382604154894760917252998650419658926268343793023366648962891866870235505405833377287661914983541375421235912410273492328622616864932101074744769866407460600016852013047182493184025630165188886629749903709923603370388431311311446786216081672834033011067271641946732580876224986494101224126731347793688071758387729677820657484328005907655661935283507956871583035945280401376156548053587450058925748084719995493557382428011495863158846400681387783706986064665512472499911490091604115128679133224415940375528416529154059842731028229132039483780885379856601554784293678042892318042149318999616604788620701822324171484887628938819763873142428864255248190609198150851327974410176939188472820078076051874832246573185604676281296949364601421989140588734216024238858350915766711584489751099604570868973155317380183403911371801140567124097931475118042763423998257882128233886164605366323325133798873856706512627571084749635416357252104241921172448372989775985200390018995753486657112538427785370759696968228519426190143841532293526401724237131722268200372651148629413698913267677012302426448022153777151383838405423155042766464217148417366591588640857322380968728171629629957217196031984986227580926216838792593784727064261577901460328787809489644604162546347349446964865080420279064459741525356081652246051338467841711363621765125047494614474054785754781651093014146271820802642307517834075699204913271365526229637677543617434354810548087484473712257704250377569605343197792790302947762502376299901604351621351021551126231936006665414711162750820129709060784850140421485536258410536420160407637483257789015929387804292752323946589816764702951174482050390113618403857526356375129333534931658049435533214667016823705560079320666221734063770263301031608312672563356437585658158123209112991486886349281248692997484072490045970898656402568283943158099309026614133728386926860891426494295257457156674411781830260897839910487922486070167663792813028126960657737600295760424044700461596993346003542518339705487611313387297050265890730245132179653414006377361470621139519603981088097877132559976903368838245855124145454039816844978877817487885136756406606367084814785765368882578061687412379028111918356379607326951120388147528179917391672530852113381931277854538228493673962907955527763404503323313810439903619753548233669767212761725689028986062797921518438465898004466278801373806009947916362771253684084355166057958075838418808139378116320790121235880456903750655499946004324333235558155935463860942327386346347523424075611525824867117934534370749927026724179774416849215723862058514227975744270086653118006174735798099724359011254274447966451208883618836808963214811251601786523841711415172496993788232991307698691580714621738132846735934721739433674503226843754506236429045009928277905168874455235604188457741287074264150429502199395931348147919329557439864804684071516235960101441683738141421156006973036857606223635216566031959083213117545693901373297659856983767922876264302537486350293449020679298097368742679154430327081656060390875332204344452243434870095362997855776357159040991413982301899268522646063075575427270530309195001058042306442372554158243121374001498559662741483793078041875420678975549315742273478884532682085706477158700839573004471215591252027304120264666258262045305865666184093768662964306711556502287373310741058261228495297341275388549246194479215739243787979632139103320537928399907649853122034696769684369624301612305053483757694506705495550033035031690617787123044619592177231694140652845069093902141040541295848587384092062372346877047687986689228844931472190985563648715631179558710507298951759730827789022574976381279544520237758028219250191693119196312107657386408041291016331581988000056082165254599063169757874443808957003350235438194349256756518661140639861490378689738291089594311838296389455190082292031216907963952385586236379492179005650064367784210037677115523762979736120652836856010863727417205569406532316178314949065561320435596698026281317217296102163220967918126782589948463966233045069382374203848537669501277063682450942767390992265131947709456718036862553680294282720674972844513982397123497692083432039353982261536021120060047888607748546123471224390461241738115463967318703485806904057259147393619362184496943837286451434730780373247294078749382885942795980430294225079702877991227498858507536605642087397650048766942774302431998510478087721876201434443395047176774133006762068446041376722498316765825072431698383774381554326959137003088782824199939530684258316989688162332333716862430732249706994785887448925973666523603371297708916325289912118583728607494166063541715341307219673774353609555621128705707764648556527770083849593585619635878806176954247147338443293673040075586745270961478260893348941116314668245951583643488628600894907535432256143994550833422312226609981273586698511346422069150869897702683257964377103018093024927687881270014648319008224166992086626182146140530199909105706884040549722581530676136888133800491530179996313177634605787965631753311258733610430164456984983961864389941502710808237055682979086418488838311697180951770699990312707260009525500372113699991313289444404089808067714324335700637766662851038568403615874404097185646603837289088170326011018267471526233840913386725786770869798906370089368841521663152578531112677422210046642233202592334034289617658755139718497558058450175166419115285818119144918431057674997754522787554441985902477369775484474489667289561000815567966601762538869821301969811698225409044969242015751102270459720504004836378387544566264663099146881656607761668223976530710216626739123037080871148769267147648961857819163702775286408865205708875532614804230486662502973256878109275078214967197987322812133892063782372315278197231060951976217608179889535196162511788748454818652098873136739709814322327063311575752727078553825527263513396727571916823059029167342189575303994311477701003226407320669824776828413913848448768350439155717781041478708203400432020021754702773001358597785333128945796127214413399369504265195485816804350641935445839361309820780062991797805076730861612011624345857305541112303394306930720790685445639088598754183250522400556586868800438988308891209228498783463858802949359025240265166630269593904258241294113432064071435305103138862845713541687012585412014021023279848179896012654282153094381194148371757467147342023875875481817021975340821056258633417240010178608037558506983462292870829920342691966500510001704513994606027810055940964019713819815062684756328200981529431650866131002049780211100660653044834552665478168267577957764879238156524797531506334140995671036548312105948153739512989875244868163420945946550299085084467301238638306145030719636972562391053425674197667264090790700614566785465058080467911972273982796691927030312410171130660297543493249200111105294751601029737675202593674958931213441030253112826831813112774634281568978660245526124509889315311106013684444261026296533105595823521778072840560287851179664159560822950992815760408027795981074603891743139879902954404104251307723819403444718899756997674742977762289172438190303149874054331426108681487216255727193294761114168573329664108050984268560942254693742432120813653445341070633394571791413189878155536617019450370560464973560374255308209279872273436340639564274249883673981297036485600062249666760434249613335910413631508933931249549453863786834381886828267628591880784603712017939129994255300714689890664410835861545746855680376488277627841312644697983503755499241974225802012208031865782636608334029185500620755213701493482705037179962810018204872396554742813673229402832481845221505203764484011497088696397539631221164190952184581166454204985580764237563298939221673483835176854689348658376922718891205846000557300565259295404658507402976507197995106014001222491549391944757782658367637486864200741685839503477045694197270270810168026068549382990760086809693808231704757385558648171510651160690528885358417198666509196082120211433646930947875705239897848797200754135172333668203814937646093192007076445579581769920667014640297895419502983348641054416325052979995826261660875652610799890422264877623083683055438505969794401887142897993288278218071248563943092010144905037938615452855487615358366373079193413848379555397216212912080202290277604480204334404788427914231600141568815632348605037033247618870740019772649256715734943428549191786061405585033582603179169452277046234120624476186701958035914193873199769813944205276759614976832645128063628159843060878295732363781812944876620351589310103303754212130948566170998133781310821881220474564516948558380566388699460243510050730853929187814992388614403368940894252346258332730585827018922172731888301819851256028799385961238458849705061709553369437196094756874164634048667946718528944837299536458251915346392004420915225513659253924230693791867470780501170359485630268755415432396263037211083839438919801059050464582227826568421551171213152378922017573704484281510136872081599463705321568774680288990366662792483290339801164035809653961479100334070466873033773904331682313725633878352051416170210430785555275962379162852386734396442356295877491031206404750773668369264278296559603044137157110967200514448394787158191993084387268725787812553182182332930986097390522475363576177346679755592376473183339711832007903880303682590173331156377150228108173647079967331570901181829433309341725153306958732253523744230311108979180295199972351569820576294074002127822991605118496603230628516776327171803924561599911132165292736191135380346874132482325879262576173248669839496031633614825401799495949075897397405080386136275074711489098288599940991198466286610915046397478417930868322204949020583285774169358165926551316444139761907057980200930492123183911054389381050430867612305210995129259652079789164570043505314814674258660435939654207473828709300308411105269186395692132202417985475056757820077445028444524349771902139522578684996571183299915980792492036124097753411507759277969201825173192245695414145424563890534806436701526844332820182986216572811904756513693227142042246180091846761745055992426258268508919750358836917458034006875232401967700014489328891352286546404154887925653569045602795711852637717208287894937843315509001179020172140522045986408722464539266093481249528394477438179476398550319677812992868889022104792347227146816758357929106406984564226714618524413786134954987908950877038789000723740609178267624277069778331207210776799934474431773941471133831001283488064636988861365393457473319255834500279953111494591030881561843267077757371092602516802139574861247469569866186721329661742612125077627421581372763612636463402144151478123574606106971495955428094569002658450964757066595495773802320596871841232012824599807288363378647363263372861986794800382973084444890949921568911270355410217882413708041631331104449415413110046272874815801537466615389018120441299606261644322815254551382313473503903498215404666904808865609828722713614620302758042541847584061450061601370955279714670187374966143074234351303478650712354765189680196311116250569349704780866076082801004333976418075149381917011371666527720583417488790809271499852284298440182426980680287354910052399333835423946677671394618024344787147198769351639324938843760711376515269875011642747330761637151652368416737320554179149848161841705754601716749343620316468039643484329351557134035197114678813640211329882561791751959280300138533037313775353103268548394096277810582267656206751753973627568207782666463050662985109706970272799042477414853868084179225766506164247580246859287536427870242066025289108680287250942173870999227873341774199050878315543138218671760816500189457494126051560896122463825696071890852176795282717191446247785715938079209247299549747901445030754237360571331492948593634093493520410525328863158089847633502031974349300065572090942616551964264622468639534983990541101973269248145726494077358708962472885332001016168129113175871121507437207297889445278270324587692865128651889986273553641068113153932891089849213763576086563796904879990614326714566383844819803873630301205428245446187345129383040209748466994472364018440284944601239540232406778943500071785187702379397836515753102357446873194225237297695578980661711547314885455980860327600915639221617490519832867228620491388893168636650185169162619573628597838433217238137429357904772121584631439422228193246061326847446160646014774158118113687689644260231766228961769398890133199830461383199347521684765244110866608147972656166974604295545481045503202791309199867622186160264018217815733500654445040102433975009404827552302085368476860373201040333877415432246846056638617956308621710775039577476921574460576255263369989530378439721970370309468570172301927205755705346587244747646791207751714230075234461147163089629796768681992771769783858635641585191437088771942531162697430478407624738519274584962891476150080104067296435449976777293577695542588096887988681463655619004161448090090117086603400494323924613824903859987678058486333839087907174538075275486396835535899313280545869220033528188312872245766548585013235310963445475741991838666628292231182495639002520574815657374596956436659526400396268989137980946152970933288812674244398038739548385511121751272391594567918349709864607202611839960532496043275423674303880542241562027178331689107545544211189042457745498663377973833819289462663153743491347725237055107134101351990209043632546028766905614066172067276410276581237033356732689532624828697137908835417850835998088771123944259997145163069182097471845121916577494016815685849076267483596893025871380611816850266351389408650086354664446599714996825289177242997456239963067816692202210591574226733030955986268522693808555694096406036121621282737538913834204896571279383278940427365972946159047562565291707737218667415063820781905747804010116072814408484653684642972245428541940753975396737490366884491601950169236447164783456292675333300241265681062318202025016900202313928525028085431892386846711524124841788745248716182815181581552018582971918604581702279576813324673639634035390004254203554427327249390259810466807684372849964177015150451477930088740137735735678998610725052006223019520931380242491603755120799891653595649117157150189798590780206935086279329889467117100800859096222171285993899887201363295988442748940104538557574709763641689029389093897702977075083266657270763655232434433699213145013495582713900099473573202461709623938178363782984909654471332058178304815517487049710395214405959293638438564482621007565874690558959840153482302973681598376948707819564484174834705110696433737384724217909888179746426429356547574919460149568604663388049732142038443054639379718938345480876214888180081285600995700368343757635623988762416100475404747207243245209769911159550885265094445923632517718751345113240670762648818998210104876325430747441834253188676943789474241558795541754877806852767716627391106813709421388911845522092075079158961812097237515305262373339078958888921368440326844617109339631982689717131459817873599580318814757519329640357248569824284466998674790104758104262586928181867981509048568920683863799224078232652901726814115139025608475015651830843990424890952097345750123392692499847982704635507552904638402943515920018334791981663437282978492153973191043963745588785102161158752066865877630304356201364442611089328664160271779293889383186317636686456666134380681597266994698480200324752411135140578614311032637883617963442642428888936511520873395244271471313463751841285664152800770267040643374526917555423501077142894048366407519090268084093805687323056530130384796615715755161586771497523465288403120136200827175327545797164409693037145514361488625492329569649278986355428081589316011199751706283940872955640326312493386853685519211978979480583970764631444967691210720156364994117001492402239793030103487504196681895257331698603884203399929182420081724391059535223660708518072345794149378839044261482432544358194206098475261303432482113672712564148783103510608372042150778760382094508903124856038595095504442651512456333757057950162568877468730504746777898681206170499222427671361076394266666302602742576209184802608387093361053696427699449662793493124917094660143547491132145773433600034688557425738838882090384131359188983676136156302302253004807296356479227998289659585347773014116081379056844874260950846086212971986655411325351598394643833975708555413437602674701915867320746843220400630740521420949855415828223715367274506805588008487838874033557940341305200137526292624127138066188769624420688232187511142218201159982336538658549807799465875854668790626221523872240689162385516033162471373632632426347109750343017258000953816600769118254325222573959827279848919758384720110225047824246822882902603817450235756776003432269705623188882681637598161862592733003272216770526194873390772348286230490432010672655776008254605869960692431144949065741886096992983189816560193106612961388654640531788509158464305901100586562348314744543518610472337831768896188200625648818104226591759117247765244022164869160425472630214066096056398571589771008819233616484653814664481484390398419284609159079213897080993112519188881641126233018955838719780187884182180169385340545697379006738081589822908953350682764007245126325341293039173772792254097377969914178535835109143285143614121967493852634462159714726005355376122759976879690571131509501195268828814686977003924028356186110051345295714206887324920528054080705115202731102074019058022523799121323885692734717037535021305077681518568241902163201338408684268359339695442701191809184922557260227311297935316871160450610607585336100648114837988781743397072483463419156698464896315567905047948234108282673672061269611938292790001211269823865404241573139571934152218065571368503139736955389633770514220316279861780600040059516748230421189886229266183370419419574528850081426241534707416980777159739488493194703465261576159837391964774779253424352558895925979267350249049440308122170359015782683284960246466091880593961031981104607525548428706895172699405295429575380146694653937170749887473974515998348641275843261616012945459033492407297464611673019804317482273743134454952146751469327801094782790989487199330368986579042415836626168283588764530594754765576651746864335120289799977038788970477162172912777429619420968863918070016351275093203588864607137675506137096170452641063063878212080212312907634380554629226967650322959553637872589103588630604467097910380064404116195758688099937306952373147210338954245672361922935416615943514629709548914434549227693523670858779822780506917389941858451420651543646064598206686202618436775097840993268901474054348733795285868983819690310473891004859635543649905765224990828162375850680164847959941158099559157810696621018202995697254479568298635482647298967070330874964836745186328413441673740756877333028844989565775593294273017470614832451975364735119613975002015066604402146174716247314823283438339679873505383301198035302941570082446109027518489040568498602909453442175066383824624711396266657792729744794598806237361241741498430488395762390882126791121019281563623352137234857863054672244334627795385326977677032180075282908768517516066836323342563683889382991491663831633855052458877529738233431584738186900390115797793233847589846379513895355545846838210779549570850944161460702794725031412947354405619115323722216066678182592573412274623819588118447239283387030327921647760041024312719591646422841093023806779911465867760378616220265489522389985566873768826004100598665667500770356275112877563087051350443240185848509642632279725626606523586302388497320179022621153087280817822666140546574550527631149784338644174725393337070074325740557829089676676580225390014030376525935042160478324026693296543862477702571171062156967517730195008822993774945928358908969574291841900186098206393039258718748420840458367551732900831124372797526151595486359880435040893731774853402656361931086498166601619031927469774665870973865199167828661984367826160959059501875564917464422732603879235129774530793744534453982344538150640253065155148872812105414840031716515003062651095699079048247170514075234299486630513204210624114344323993323961811143001620406486953366456098227209918873269508126786459451744436847647253571251142412102480513788195683088815186242076753333275546987384883078149198742430845368678335737107985263568308315485385780484586538486339372955488277704549261232228232367404059271246488341589044320294012806293704585744720917892401063864498575948544916846359101455221666863147276830674588935554269697583386253484580767713209654977311917767323679103306828485685495234207357167524726251818804998464038264394035928428601607635736877151349700244604931916759217909606957118646558489296854359487118800379436727228690804954061535934547132135436705963311574814632029298366274281523921986185214799574994598085855696956113740707436738332157612435364045811835862794892666350258992489894218842417925210283261998056377406516833621409744412490107900740445926801861852579336662106023713621818944793428468522231793742918956124216904008526980121888694909489461437718723460901787834681091049991048251206383277307051103569846482341940309763850269647075918674471620554619490894863865816002017679198615524906958809607327373941554646384109451248049641065600370326916622748056705891190810489170233854179601064371725790454336332407000688540131060165322951192557267619343751352624210435060317591233039654124813249861660176539119498744934615091855164249649668027066049570087893467123100638098799102392359567966381681414980538017120368058923381697446200631870473329046606116024759214716432053364088851302529785550101746640087231466426205892497620538958542845450580384033190573144305838535075322092890569835154106690526853662151696935296184974962682897975600977000858587391967499119959263410156110214549565171486490300433624862584349933338041077558633107266676316656524120832054794791439892781019573507349331170611856342612161820615596681717356618704874594179941170145656419799475466746747782560097163418746182060210746363229755929573519169863877547687825720593824454668224696840719059779354282089992197852989521680192233830831263484151716589026565836646857650876827511666419375384786249183419860862554310086428382823590485543779309924326423196461622672636944064080941967361094487912413459191317914433807762194190326054108983111074080016248973879812780237200370548739575197103803912016863110264500491336272572902957402323657211609271385353795896953111627746344673879872714485366421600598029738817718025298543143810710839651540306070854930425124050220050993245894214705465918541090161248183371560875783448681511265256082835941598091272934524382574855152327645301598282983323766825035773779467420653171135966321162317233780164441666048162204632101482112250130736968065023858131866985607582285895761400230746111638416708124691997862230172527930093210765779265768132322083509564157589161788035612461363767124494777383406658688801098765235243999626739460141041868104425791552138887864471213498002812661315326435796688649259445901798783906843628139365063839659719874285103644674447766441623946702194046232495755338844195432993011549929657539993218613076333321429229460770309548137529613571103044359184531243251207281154879762054457161061113465303405512459190507544156400363853239219837887736002390087849805520899658952866131634086967531482444076576516651620376539816284411331484060335606972777763718917745707567550847913198881034982253979401354654548532782683857851398848086708769639198065884303379858772423258598069509288128561653816818260179079853963756602431877235321989674909341695357072949566383322033256723182772502077218595239092449839053113149788701470850502336505475013605768623164112899133208596356371861918197781598503360284218718904055873904133020625901300209774473762048342888984334733723937806449925652301615554125536856041947112975164167469778858546417411848833523466289453977959984296584329625614009672953384068265410493579456867474760654133115892492794167530822252782154596948648444511507997713992502371145784819189338222469777198609399625760175409112429260693398677534534121745904344566892571675025623549040555760929853309758656244471487239838579823046575307843828784327890248245856965686891567142229775410074037390206104069243821193896380685423953760993305193566984816715730695029472046667328713750750328967395234172039324679018966395992273257933171833210439634917341631891160768370426795830263075289238802252017197051103884837971725387441328572071686857804452045578633028340692426694083192955001407595713250415611252464457704186703289080675718832050374526221778618165211163570162330620391498486509194539581218818632340894143938936924744251146536717269762516764432744378152798051780279275559857735198494351701437845612068902666683523422758128950026862944635652169159991051388307577455504603717124588020366357720540761330165172666589499970474875276737966199519619219749320705090831689093595002541843492822196348942912841946725810875055202519995200171897913091862817308186630167769617894076829971337388234933972866505927964866988436348422200881845352607602253652001160998156237571743453312103297078611431651571511993506716873524271217182341435211041855399754819913313331847235893826267188472287435220259897556124941123925726421472978691349679266587341359013392369379793861473923272728825170414916619799621683059640509171604702202348761412810167042245830597254405196068969533130730559723682630417288504564536763413039179611523729413551215445008291982723364896343945285781672853764132546249519070412381870079046993832566512803728819633842371713727349044174787272328327294145715505059767531579374899963489049815851381772843140512002270424107983513462269064100600324904286616802115289090695457960257031352368049876089296774293325034715561030844142359092562980440490546309796229940186661642680575475044193733650787192390117700314058264091338965068696280568790585483888203532481917054332781845902510953454656355077746331649714354391196625577642079741065249817761396626676932158531520986429787425987503112284561365970432670522371686070410622132111427211945821192999681914010948016466947009122192845943981130031563674452793549991758650063607459603751381791139877602250642437635529204984488080344205045555295488729305491447830322019441344688971766560377154926031710387430541615094668408520593655180532511517175723856043896996727077916738485217592049726453335430923152827416672060124528637261782612113826827077886828407376940813744129755697305763667000003356597817369103921997983803722481794092144243265546349234792865003253501216314997391470983042550414329606131773105309241125148868974122368705281932029862632696981838941975473486187139861091000199695561911105743367655219454959090745867201081364533197979982045676991293063865016162705554193917358832464460056080682631228516680233067650402625356798102163420388286978042794298669588570680971663853105657130834749096833799666603026483794145806059999256454118046910866154033321516359783469696775744365544135245500262433548356255384324531297263432034448591190709109472524730892787161374474956789370355752616057928567318207066655286072287620791848564652081983273581631401772754995764704034335113208860545822720728620599658733933582273096203141954735861662656374191162642171844537790585275254920389167349582440449712521936734267387587246571616202023511795622088903734874542877114785384998128674945594439134974242511882958706216161626552320092892749051977555189093177122875832208586283860857397399457875551687573423362463998427356391361585724794880554797756374875915971212450203522830824649255603626947495222121023650097587250921619176798252007941023396207015309034278289539680100968308519673468612907611087625880575423108211953624725884318100318583328565701476513650068398405471637009901152111760998533923355357387593964724639889297935571415344934703946689117328263270480160349340704942844670777673476472644095250810104350538582246134295220040455372197733516975473578312623276598851168130509410511231942973301646190029080962945840188978487903799063444741020667738440048549683635303142220755463238933598059783647466273240520770547747994962461015438241917450801051257677180851440053887190063476777634590804996520943771990702316088577514304717662644997969881238782304581684423055952595224678492467089550891904536091409235672186550429516053905629499186026921600670275144724203025856664713857913939785901298896825117303420969078395455721259214130184793265473307617777943865799008164546780664164764404909634723460085597616928298232781506284215345550700536699124330939824145148421015354666051490641800166538127476934687436454552737419151420952354505198168692629387007857262345640400893915745161205878520569343452858780786841695756814394999881602333370078651381828314145631843687789606681051458459750540335473407434855936804246733586198916277125740088931920105830642912596803803228559667376256084764941371359718733669266024163111553705191541321720639834193888595539260769355539015468956467668023405639120986283119886803447862700095246474526385091150918192751825067673564692913871559596281240991633766968798435502838893942551404611492138777793157341288720985233183410248567685465574139266668793438298619481036649455966593270794940631222499957382069574299053137633744974490875185096999706008772064680819857542674566347587737355439511923304905813350132139939308238380259478649731558605585610140026291319689760627871014051433406989013651706526236031965864816161344393981426299542036154826450475753099550708839195944429928087806041642650641882858716911177545597332761559093483759885275952589700683366212997768497736617119282415393964009865455449005086340665354500040162349466478814968910401319496693384734008944977170097273305377626516210221876683859873473427796072769140794712555073471750989445899377060167528542053977551927176478203289706979061443862861341018195783357371927429873222187171409345224223207319531410678632083480718635754152571362892126325646704300012701741570043523548771343353008427304697509965727160228648770038722873911363272688630951841708793160102468973193814765437707551641511187047512961021606082888270180315895611593575934727715904452438818280822280309590428893062122512897766361136975642663775247095531352802305393123212237135810877071034537051680882256196191558702542322858387397465200408425531622824027048462868248337187363839839719407805135586570122062466634972894611972052858617511825775514260420770238795912818594670553940699342849864620508651411037822188937406884229434479982694294118754937581619048717934255940114870141942367767289236251398159357505709855930219712895503934238756151965627765407186904749699218128098704498798030229234819861378067667723155881844569842441231139202617594723704126966154123473765429512270211246035457534500085726542911902683832027484410563230597513942362644683329392584876692317185294711241063491522514096477276582121582078297945095916415863892906381838940995413955413203629274903177549169564754148115231464867267441615728929258512298052306045671881587186248440607305107384065751330246698984639880651188953602739750246923084920886770753533572398974754214958734832479690377600367681849095386568937528767454009396875095523742181276096440618757250212888482615727630852716464721556565141143238000033453399947621465010294880487993955194383957583945640319394919865546149707742751024389802266640293813175877115152444950859777414823949744757629366837676505752833920420227219462256820777240052228660403409102690483392184957755651882209677437785066325963521070873754327422133339684398228964861807773872407292971133837161184364369127377997880630807146680435948564875857149896977707998585185314340051632668630099004150990783476982784299474743035312941715763884317204787197308374162107242355238069007597620440714233404365352918093874443968473850783750097357377732389538138351568014437336757781291247994578766879475452094800381901247703529186457795549289836444693409446193724793989284349490122177997373856694186669407190669260526820745167086725595359160385761305298496847577707538014087455658549246481298200866452027953729053166202759981371718912549308232042477222596892051518174095439999235422834683387603660768755703079136319377813659887811922205057227527584811321679206173519126701067375240073527680285556300221772718546266377781100676887771616704570772221344337269052656801571750025818048465211791940308614357621822459974514076702149159396640231861317831175520183566547656032934216655846585317901524663912339620537718722399287132708096900512920985419978328720632069688604844711702764617720531397009005520894730167778387780620010259199539722991717973758876842782226152728500382617283731271474474267810893207449966674769812036629596882243622502312911539283093522098536680614026689176326803446546348357849458440405475258534248856765262831465670824876396642499381454168730099399317136101306079329237845854149570620762168361735906071048454944987717714563888286775050866114457701470001648243019086644326691220888322811073291085985885926827023916172099743548470562702839368880366192387966788502956373399341061572940030212804920619916345113599744789218870039694535906577048394533606661466758137014836739581448974187525220602410815770119748801970416286386314005349065517776625575553141111327397377833435129765985227828274685911309853064622703954335404361554597126048666353584660717787035752897850179014813936006621735992320723290123256791179173911094643359405607955560398299799600614307618947058534391412968018534190864699677271998906030878744902323333367936614017831478636351311081554042311007014688759830244194383569022049316516805819027705663405490742370654518831846685282742911797204536921118636755015273504607103098630400355392315661368967208828494441761506489387911554633479933541428800286030390795494479342046576683013881378244469801616267231474588137923637627563089440146100470251331609482413088997725283646252474891297874238928518118955917566876365827446698698368051940657726830440177416618925339044247965960349010233545093603865378861246414350125307473865420766944950814130864413661286031162703569241785222669752107987692469018911011144199620162330329366949291786094134492157109986929039798261080849755334737562226641426017687660506238768763944176211620002162471924404687116030553061111473640641941976647936960299693719251409982019250297818508761346017816257790665544065251136941007778317921521315003586335924675127162464378892856411271167083793266382020293391701198244088440085807190827546329459246528352273369605462462230040672689495131356135177598186157109760796367241869152135633872125165800499766678421271898859045903877981804199537332850802956284486277551403906562035021893175798642119925381867074497650398487103060828275798586080561752980787270507676061249355228132434855589501583711347413144660159237659047738591696844566691152484728655640799534907459857237916652010449634052880565571940976184679713879198442716555405169624553589855319226796191793635356854905957727541876186630527484714157306447789532440572618933647342873821006971609637889912865732416204044094147890323966901923974757000172038279774641823982770242447657722182813968098781782106317274901893999417090332019688658759377563203810973277269411154803435772864742898374860102273249774890507609264335114841374170001293792826620244363439190463767394679325387844607196607142429029752230721789683450823502395260327002120974265560574359100684821052077067315682439805657457547939902578691433852407911326422521875454311714892297338626535681855186948164359818481713205651272701785843815431138071563642158702142193614779489085442107555475328193619559265412843877011167618797785343599541616291059701151631811269580103364839549897417690953470170186900375797326749379267682613965583255257951336032941377534844601241622588295137131558906101207788574559075276775882616103918474890837154517376538919111266367639625143776211529930587379517478744830217417174950385888866295155567441654807354765681923677792474795766496060560394281594179067421553455958084155958470642251330879054438259852605106545435393411776668253387174099410297691759470481923238431769078649671804155986961281613939200347182828783237407089816266478048017017407115729497664883525329179062529393462562915391045290608918248292179962262361165342117548464442152626381606907647107622609754077492346210468801500068646457866431199239729615548182113846012047374850966919973748063657042821615768036519114550799624890610279109346688968659709664861818868872134733220769996369317355292327564395214609207889836923569526588927526119002817607564058667803692645651684407163165346977830563815756137932188835159540825094472325303199194696882113084545892515613305483418371656236773484518175228403201591583052156649095568446644930858896227532263519070441247988122320881971357534194646038351878854216014609070320331631690162311964567134452041913531885519178152220548581094252251850982033020734803059524680474088940224111123997847897349561278426359824380072958417099388062698643181987249409737797180133897082062893157747848940349822631158155520704697087361400219248421424931558200872125444158718298968180937310865937719056967022693058771555591606302586236714757511480181802190467705115972530115548477518661510191424413887262692345735153720888994844003888596592120669581585820872650545769279583328866889952473837175388923302049936457396948795014498072031283703166900366843831068837463132602979682264508844081929257620828135396953605673587010743125156009526082215050895515140658233954111056460827433136471833011905294220142669337034146919956428448290081796652017446714248321745755394948344278973787871614416823003668933308183233197253063784836925220236513209636580299544705830485856155832136889204997142464056521212554113388743506583103770018311425502659299728020435757808201973054728892712524610776331101901233311726514283263170065918187144954255678485725640874167109209314075737127464962667649397199077622294576051556972864325406009668339712622851527186542196139875880790711462588808759148928027064649105407950685188339451936890162688475260418036587493994493244889790763733620482931454182048209914551445848300368137124874386292482451332113751168351115012005764659661726796728341981277367596180732000256616151825909967349457279880162935749679736210287465225942731827833694331803056777387405757855554497312689226374920556486536700628401259033481337900077465816478511894076696829630328997293061993916045421433436148587510307142731045393534553161298294444254083808725822252645685304826717265365634692416446490151622295744359172900631540738954314566419160485161399130808289686270596367373231501686788205547912654487509902536495180015080636521315256579664282308430051503069666502187643083261236132416210606106711140529608941263533765352723360232425347728643886733001800677804395848978459426231200981414191855129823287686352290257209967580069047333059798930193363012956456761045046251835523918623522534374247905932145702125783134685715064130744275245439759852648829346502159164126075926220149457689614889015009412401316083519997050347103913792041493180964361015626399988773109724794586624305970515525726593379307679204520411998899046704285595432033256888275078303920307178729167484318498130055952676477539419837000451975292420790617238101965241404546557880597797571620180329332721665032115328432490775571834516046126294914088439063022098704930326405546034887898740858628016262792276076857603102825740965225140086640619861439385943748468831316776313659744075332592165083446785357724034223598436977442277873360677259172871458956064702740503203447142248860935491047367579853295540037985669636500383656089658651650339954985986467745407102299698125607814961986657394121364014243391316355476201589164929769256055641991790634813292722914812495698167647992048461834525311959404347155792362911169927667395749182360420417409922022803125976576921227229988619837094629529641759660536923691156781437759949816738307927467533432329208815000520629028404013347803160554583277837179846891299266259432874601173285550920121629284832365201823686736972258920222154834688256874553283770296459443243397308520737247043430746520045839941495066056763007688215256547221059197968990138438474770924763225200118701379291588476778546632088656976315900292297018487619100284301784118931651584773078686011980072963480079106113583567085402228671763591433015171311560914113694679437231939124228229758846739006732335576364985998904543077774325910278916762439639381579764091406597594062557667835477138984042958919597075102725067284228127120611953216007972604822672459721227918437566221586255869067151314480449173726541155736746188940226716390978445769039150363264943781847243270277521215594272255860079355799225700607860921016303337478910954531691733675542677356006515721014565136107356841766049760432140296525872468573333399456316102148675760705226096690704690869667420104116573604616161226094006963988580889479248166738969378187341951299399333051651660081707093654043556372005792069886012625819910858068349768972076560885637719399482348812716354529480946554824181394613374943290693431243679024087847881504886020126897268541228930669106607374151788270310216302905008229786685055021882366759017739921857486603000807253305737048754285484230947982213293357026745002412999332908422209165657936754928029896439967499482451728524143529576497999398635164751038937184742793902127145684640846478497436530571109453776809898543945209337535648521665735439909346663665439132550115509881318172005207046571956127693459053834214032411728634793556610194408078824743055404628418158767455397770687215435818349389160652281217086254002293951689771970313507742153722578717368394563379988806580799195024819468880739658970883708094229658995242418275181325424771070787057341613524793180482384331414255256243010429702855731441234676037871924470021630418795324005902205265023408055819596616188914449227413165935978518622123595242657284325845649734400732164712558333210462068075920996138293281186145785247124843406524336460559356641113822331962295829011428395579637803201790429583781115624662227182599265874255496958111249900315740527663923279201463492434317007425561776935075732189071106616588737707738566848344204820475614807603527057189211550155595628571145034180872889387187618909391803959757787781757211302408072557414440363711289717287031276717074716466728215573868006761864244822272182883528353905324414106486661661543714731506338901477555271860460429206501136241460180009964445792740925984333537085994106431668021275483024484873248333983746449632914217583472095158381233098123135298767492860565829820308226538307855899047416509513328782330259401435881907819930337579213181390558050334518343193225748407054370759074112383695834649377533850256948317680585220413896721581244125205466760395665252217986833896660233339782900288625406501346069944741954077498290479491297432961222379884565098061631949573576168701084115007324383413246617070123234714679379075435827647779659310774498053468764872000676457382150452781962655023337615804852170133412320006149744175701353891242435187607287701045289402120250160945949367674962310924519657349374520920565541589306458215256011113773782591831452336504873508219884992046234529886980751269053574174988243359639671950865043748788095786850680221972171296845088266410149161802139496354779598454071310064874365658004268466367453488489711710530935894196277469424988515409213375369598335744615602469150996015542163566454954044249720742057379756062307766689508835949588929923983753378646215485755549260809114089313526528241061515343081319606045665962472026888304118101864790657081053653850525077953194011761747764882216372478085791696525248186967916969178956146547785334074908167629599918296363228464920011102858702120644500511686848486908624792132286283542524119826361007247651529380201646153207561580164756160286704893974794345627632200026836765970636902790329836354858210935579057321657685969852204684307730945512269206297966992290301620293447321459750604091711224403818211250718198496622572253044945575603732705956594419753364015299502041085619287222344493457271324840618454628393081635449517453050661066969207682067034781144019103872452989811410656104971065633367471708310205150753053335164280769226018809303722650382307313768339510727062936777464926143724697758823798483673368822706784669503246365942095095400620474625057830486972022425436319859791334803394811762143787318503134221805136519495901945156482382107044499823526651510176013505836227705916370026494709624822613537495856394021557850548247235175440339797898901903394108309191182896925563520055617422956689924118001980300168754843150195436545356620199519520455308260668345742051543844425312407244038075497430306462749149927803536225846110125227420307728193224865173732135471402778810147501246977138058958779046074763939554138487864297698063984527147827519118694686553326105880438169429699165198037183752495641967078498865250587709976887784763108995243707195620335220246000316825563148807765166606601000568431655811351062292774193892908555296970738191799176742760976821656766357514078963976843432359612155770422087379275251714000093081142088984891648883527881775524363386309577317182664181294624171366412292499009313542638568412938209377023075811988847080668477831890186242647478415022614601943967987063041626996980491951357625126610484304355961239214836116235013826272875594166992441781620996955293705703552192993376186962631943952408266319355322772556447777267724370585869424150431002586725233940339472336684808147794022368294866521417729479170822036086558498019146899902067220934661390154763252971256004592312372938475901507155717688510988861902622212478338339828583162578085395009313342891281620627601084961403500922061517431054650557463414658172164704490285164827362692423615484848111932371616850388586408953502023434042830522668232510420654283273922858494297229552646315640061394381964521918270629420983180828196333886082179773626599516912188111038179430628947696865984945940873858371049457211181964231904525469118740866000259305357516901057928611372624207742720931864811859479402963828452477981556345278683545026331998209586154641048929851541640858886109722453981125815175984396600934747600688730632885412020686580966024988520177623040728468371220266035776462132849812972080830118562113782282743614000172554324340961437785560457219467392222542268153297498326154529087233328478710960003195744857429430036060174069196864049917107086284706192660609914800223469845674045266843795118051668834521378243177960605809973343145538637334303885971958236886614346369100719701468770946328216100001290220794206464062196804590311810984728156398087812895850270539459057467452150824648413996772222002344419960118266334966509702704689382745193620101753729445134010952885190941975388379394054304444011408857322765643427673986025974383098490639958496077551163967255653558628422604664209323302456601829648827095818520669898452371336925162915903114178195025720070032290770790816888947154200262375330374239220582557649954049253180991952248275374463558113052908278034213253038217976062461763868061552826454354063082496637394780922535317024450564186963925823403464212798219342311397184201380892168625424319113044391131000645490512271138501742540597642358384935703170283826251203736718869541148314644834135402543324326678207610263967719282104203265273972394213393831722167121044367101253635262406269357823105668115679169843354914605682204532448618522698916320045989249196863372682972400692755054122408789128849268788833737380422624743618398068847985968450431728047652794764605635643535466335205307155902477238607085620371574809654680216586296335660050634835755443910965811147920625428543590810927751154057794098738464167173237436409911056576009597471738950814125366309429439953154151523568263912174780388286504554788007600829501841047629372439932885417529618121952058945564815776869108573514838179440657260175836490885543995905845139753456481061493595625297601684783180832633052285877724747330935621662485006948899741195379057305548192990442144710153418907895074111629461814129530584869361349937194432647012639338511853329551858784947416781196515275440202649615459800508574973644665852161484670748349946987118649667405207001753244663868742022954524860454135061924263601431209703314998970219370143326481275666013749817228383457282437908358013178290760233748202746854347762063339273976182334249378183247434254704821222590804999719975308764216884246982901744600185524905812327086465718405058269894980959283124913599706091545138005854327406022881432668371738540861556896625531403372759695510494246302392696563219883966819079695104469231026835358166520162554883939735212755400850949787255207797340933050501691769955259755382756418406532443789368459203127659214534010982526270844845346129089870415204324956706038222689486520186379055997390378576365878688494441621631060550267215014548498305959864312636218439574640714352395470162965998826384591820843893787522303045622112023172289505857033824784474315286231412780563252085075374089364724279084455959365248014622719317560366668615694410686417082599536766656123457562486675248566385205701622361441730721358622678578470072074175807664416200851933146198815035519698206625193681371852243728228844884820364262294650286672715347395186997119129954959239066378209508917734692607124425149342508338696367081414841000252925872903507664755946305723987827719546414535058075334216268266433343684343942127352211026451372271056604833268164186242438998999920174427474195850377756349325096966552130347580555571982500188076032318029453783979167336215229868933817778102609236793684327862761095512008400854298007377275740538584328497689977230990433709920634874553542378577449652025195044967858702171239900799874217559579737719937431823433087918638744435813856494180276457105911786240696547167563040817567091467419188565937853982010415217811327068253739423136465213781412265939037878279468419333284508276858338218393813556638448056658084570313755631969319980677047910904357022503369850729417109676015201575993071679350560002723553762048373185710263379826848704357847029132078204290223734283905327708192015902388250786553506097307894607995863621132566850760944807118165961423383988054389340919656673053799862721352550909661409295964691935606306387837774615823519393245104519975731426002009028750857351414970869841819287026875668296785016299349727311013232285534851760911091783580668529301988523663506802109329193832156948989923316533436446787691304560004651069480728927133849291416124303450342842208366642351683886213975258753587310503938291861611226660129164394825854173282789323455939317400067322320744630597662910460875587295771602354860704945423209799582337941053526849336964256703838760771438397139647136477564215025703409174340527941079717184660729038233101863027776890851333420962832868958270060841464897893225624462932149630807983766320521177969435075298526426567580323311332538932857448821905017992466173791903915081492130316366594606197945484189386264382644950127692765750318758198045810860695301511258858327017433435328833158134214968543107794385025840710412990223534802247999581225739457285096866966322338672834483329959528802803499108898237229533437201341062441165519330932520350356021931277003730401076594572586380930316474099896097482791098873840214965525359008352900097793762805518188051338416262994590797508394063273539233603816053446819269372714971676344772766803076681248030559820242591017152055872908106659559968182787101349737633916586564421544744161070605707817759587006039360752486339790025448375803142298038714829167411577087674086384181499388571014934134442773027372249002072326493411293724807702500307257399393666449379153071524201829533368732979800292559799020732386120379267461591013608554047830743479283698146732393085986763435033144713208804404770153144048194652439149890504247256307174192529087237978244518379773383786147102977394238040240609470938730233510466407859209869046646926212325357042754764650858255955822100968830160194943589939308386669227469213720706908375188611478610132608336121191662442490803075518148106058599116816157404725649049994142762907267458815346666773818998803249124844545977437477085672541823566660189515670771049227470157608722520138299307750683328094486136213986040163059764567733610185151623716701966776973192517764290787535734890267199580732586404225661980333628205088669328112108081276350690880402233252693318742434924384691092244108567879184349463409711224073995999089777956457471536112503721987380073913714924608236549910247308216951809698685222212038566425329730052284024208240774764213906771702257931732024168676307636851186372552853435188200298688226545842387438394984011972405955759133165230399269839341341702908556630017008688580540676361893555483797870767327736426224208487017115687125351402734872494077656260810957251767265195948061999473971419869592490340739351333636734202084450201577611044650710577282635810146772426770918663467267176463699564910853851588418575837186073991996913006722369123679378708811131832203966821850015068627502278138421622138537014817175474475120291827980857161135791580051594712579691829314265100906507659829822781492673330162281984903035626485733525603240632043841328983734414793251257647388969980734786260848517436601005051699737539723703902836862540070355949178279391464439765869275233610220411882302168208567781323077116598697011547692455970070265302778535006429423456562303504091220309083887589506395989818594691606336210023081573843795343558901827286635577150342903108472106241181657660838170279838038393487644984376770948712604508981911487322898837713779257988873590534620835378346622881450360650202404520511025191987446059247335969548266611942766266590412949776715470410839855354754549723879046840986467547935529165019281046015623673102617986812523961120909479493185428938881965924700565412314440613951357817827779001396378821974586499770805993492168145121620438671941301641486240588124178346663100309472538859701263005269458290265675877085351615398774303558646159462077926831898489903209249863502386657375365400059526721672784451145191777686592175224915239348441315043931732086079113929853848333414731118249981494079363057848266475519190409272751198336282570382227901513391709684082698728314494766906660349356491990948545957292480491797165726317820305225576467545282035132855635407961266598789477261431601722632363928860912379503345831211478323945683470960369337775211101532561348135032263079549475015263011240425925513332450264663798193555511245187934486609928210433017625995553165020987692793336900321607467389948817487082325011939313444650404872497941836292799380862791382449695718018910087671472168320442035019238369794682215004380202679957022293206337527741342139727980091170934174328648356982952656416539544554018298634194940029621514051277923940999972075318409128794046498203448198634164612836942718493514420026003169833615993967534474589435031684829068861764377110726931370714937940486092341283648420005251762879787836025372707902736049260737572806004066632747083413470929994945625671163772677040377399973642245938892076532253482843243318817713505577678652856195844009412985922818578220898977467119072293125041299858422537702079337214966361801779271397895881748582060305679288725213669476212399291467446204645912178586381434207374898961793548026816817765758384744501487546215408794960494520453745498672341885632222811565044679884300272342003873850264109702282098592837459581404119257824778758327968524499738808687050928881844018660333941448033217814689442020587221619675045664740785539273024741065864994180522068593402899395324999699758082340816581035141329212073019852894916004467626107482514312454229378362754638819615641500019454357077048703168201170853830565547401859475395783982412969412641064886787781877839900957039150265005474908015139186421426224179895713112584843906001362191270780735271177183364942531632827278408028635820791593174337682885608423537117166009268615417357499483214099950571773243816460166292652705451519311890612424275744762451406830849284619961759327185701760787479146794622825798326103906233912653834021035365698432655869552236203036157649903102962341964692680148955824507165236395500290053043909707769894423761022758717518220684815710173458218526353742007715763085357681319863336380922846327529226556828059386356433305046351360921894264640946263848652170755974292297901164165610666689661830897183116363894518591127178116897356635412807322443478091919503183785432586030426072904789304104746571281990190905646526441620155968025131577621177201003659795466146270861776288034102194006540402967535370216816378697099224536561395444356607211453574992090149964049293212859023876871196472338644849799179869572456556729858984887898370525132544399714921603148473532226308919220765866869951941737342656072706725710858035671797636085915081844508322127627176436194121505598337822704473967046766770484868426725036711605153963026610314415068456503975166163350577356991859591552245423490932718641684808506746005947902521570865478882952189109391034811676380488886016267296484543398728492940725675286498879368806930489442743612533208791461465778223397230961840661716083333124073277723377650837551201217272134788147752713846164626903825233669797194843109577810441793688455378648985118120496740753850468488380151227737142241376249499998877424056892210817240320867115824855412124641842566129332719448755597659016506155493560401641080100546514141085691765346964492427631604557397367116309888924437312127537279759649343169615803849646275643238911917751318006545169562522811792974167084886179050277079100495484768083002645872806912183746405957884928779152123100143716230313352181301764052378612902251996798406601408595731749434603300830149314456010598803182016072586988258625939753715734380443018217330729703160932249363727934525785166571745471438565324052637315070029109780729393403620683212153657868429627197527612657700458049304797643513405281487448011679908185131496408750206688165943888295914013400315710520850316834864803953283851850119028997014721258762898955839663979375268605119838233720443016970401893920299507427376130741714062703248096445592909834137336131925718417847060415822845836772451907569645447769424909542392208518696446803138908135746782171023833680323083785059694207838459606956549584686861217940347784532494044899025940803169301373555611388992767923138688518871186858783243650385707064093503832174606575468872172835377203088705203856198580088281050932629336058228138498823368105346580001415753839315825491262957405894788927959154412217460845891963783348067215437960189442610434572957683450405598335930903286984674149604764518877259367894140972935732889535597745273994941045412785149721837253585928563531390604207110975730508658828779776937366415280239553374303996103188332919462652066964301319218735445500162602923082890755957512507233109563326593966778104357607264759882410750070631622065481320047380094071302734466665937402576338744813817242796702876354355597507498365913714468440469550096461679332081794980873084898722973327934937042304368030113839671190202920695812645220038700986268120189401483984162231208062401654792560853962051797029502264700115101748140791906440169635637061132786237325356340319144538966588944501680346158247973257024549596773530964882990967316637960996938451015158157830657323319080227711991153622182148209721556584242077358488584027486304765568693904760803089988159753255213387672519313824856424680816664456254815145759291312076589576892746751727625380879731935193572749579491450469288440152445454412974723008912355349482652063979224063804476224152544318111673189073969080902534138276874423978496989733949692526731370339455327694622759345487948755478115069247014806945060732044848504509576338136526785694280792377663610688783451985779664624535739030000769432148384490189044805613047623901467423509868600554288376341119599653529736385550180308374207723624403144887673364224502577377853702677010023498079042778469564136150730754730894238839580027301925156523494887442952773041071703774168318650855321893614363430387615404505245362941260266332575015974328982307066355937975552184322471291728263227322541648385999629073995362860310325312445174967521105850619962088486960610902289242725679489841194645424990513014842209013206267471402711408073592043809652017231508578110353075801513541134979476000668221344871070336849932535993744235037585658510803026270424187892864760148721217831977703479819991443225865932518422791608327685997832671207702142438615059861655818912524780177987917070013838925400851465399078978618731998972565428666799564863202067264547529454247549634272402537233817777467222107837767547480757493487325680015331977161932892581129235412017937503072673734140664538875757727572487666217184995509291254765979281302212923291872208224338825773689134387618565521740713834418187537054121512517377906147112800795093958632641761897801256550238109904975698878559868539982745316547100481039760240220124310959024547491101896240060830246279669816840875541807132613877181564716684391496795940517610728328403180701608027821087628912644871118825089607420287767247944360361699818777266124338528286168761675424257284109543387364126477276289039213617301175707528682264646209709650722681299124174404303228783104615022201621958743752850407638888522917068296287754189333419136750526769694395734463290200304497546914719940829180833513022876176088269249765365952980861958830206466033055737751311294809635288455699443145305773205646304003949398062982798970035721291721737442166233898830146480170344261336521719758630930680609833178859877868018468978524626598542046412994637316408803253047605186053023675753684280655536024034721387973526535320000556304413733853537115432490474569230659645701960180530801146477175492427518816290278244059996456841068283216080090805184092741005079778574474056264177785724313857485443283571136116428776237849119535491890517707063461424420927413591509347767289379568079615269876804538797178617345376849692338509189512807640235210321286712192619895879836028230765774726642418822533611533291301708822258786871142240102108664341971836839215476974641636872300639171820663663173563007925508704462356568724262154497998109599584221546701655804025402812499727797713081905807367673968889331598949625954082920987617424422227661192613233079917480602545486491535425251706930762166485550331445507136935730766709466366339788986949138926502640962655692592835855417674540553207276662975680355920912945503963462645869324327793591241659405562643230138834264202971614441594897359770293672637462674583298365873770500002937376130306852105276234994636160478131333728526413895434655949793326348324421029722641712552833763383152595144068412422198493883328696238902862686370739847868496506590394613267567843555619375389633681766171516110130960574930673036868237025787990241362604411808306022661828753859920815029389909001434999180639287468963804231343057777850297238728654544817448371548982342509475025498231263949925972959290186904650910623291853264830001806835225891949127742901288094546533182651887398933402213510968775512232945143888626674514727063781631870636726864390655120628290669661419769165440888123361717477203585824277924928013088292077319772326452608395183175798446388693392215149479962419355195245540890123698373724531671157380899328786162173764404031035670072296030841543977736863004955089260533168097927396617672521177757234878313931167035912791564777184775175247712854167582986164369669042410203592265841611161405008379714030378064411856713284345340579394723609504261737574258085087553500654965221789332872995175310234533849996896974346377710246639980687286706719022700098964552873467094522601416980253015751769535711646883949468408345485923497606180567082348726059674482613350490372743107074923897144544958986144385511774903169256804750215277279683733734877133032988147047731782514281463588811572445120187378260426169623490749034239339495898740142691917310440240384261117270687759811081839909253378239205583379069327137755168823641930268153272326016688025741060161759135175352988487119729794303780795104280329758055087424446725060041996340408796730557468178858891946774721019901175901345355262446982635707908734458043572199532354730372383489467460038939424559462302447118768974830193329010892188115103284022136324348268642902930691306583073006435489524016802445861602498999157100908147108434196419929859534613080321716558255902994344136531441789759690553427688026624295400083947796922312474018556617773774130154667684748855474920466461076243979053457436310058843351028508043352295173674956767761222037432321366877807342323189329275172438874726804102477596464883606536351860799792313938348502393578668089100997703161359504520801676144892582748139009319427173249427991755732188858159730002695250128813884732135215899360283396205617822745388757623683073233562138323461641406303337404240230561570766351312955322379215892988896441503522817609573964357709783006345840932231762464919035189035148207418370232817215598139416028261366468544158262445533890784100959209049903051303785779644186336065012632979042385157238373613315257880284057271894769121134559855590200044047895045116542652369118527752930410516444119558147356050118873251418378363831226263709989366317947521762812671983125561108164174210391232459282378389328985374025832800091181897420985979285543538444322231303408858131128614248784197012345385328081492853292335465652681931147241657086663480442347484523603660405533581060536347882510085677477662093144518306409919341262328051509261212951025955154455588287673637771208720594378173914734222890737372732649826252530254390191295012618103022590426921167110573545539243542895354382702350996459125115289873928292192827056684623612875537380863296837358576232090401742705507063027547654346568952568058681757286578524416421177550225147436773294006616357930450363051556599646363454373549220814161000268557191334727978168469404468055826986204610440566084818977209945552448263534527630837443598475942443495219375037723559596637358962151730762442778637952782559517977953007270888700071688865305486327233052998623822268515057074622574377142959987833838812891472201835383532127303852623692428915843548301725703019428828895650437703478683027929714712973863571259120440557135299649917547861684496968940406747960702820309024342154319726581369018519171107588039935327858467018804077434478878956067954136333616862600871027268302784306372451190346520755873870501409902627888893440457828075996020358556197822990168172058652872267001198262637479136657127798016446706885229893691627814984432272424217748745151890464693636941588212960627646581594720895229139866481803137086399125156986502612486360469017051672770307211967691696922635304644396817624708319379810447202836922514891920056652233311205208341362815753714606668218763179281083274510010593416994813090583219272675555479397764574787474392226567743125432571253230481751714291828824485519727881445583528318927786752819042789160447162670905732563798651725013665868015545648241968442887454976217214623784836975777841473977163787185427746701087651035966049181177779026722829314738515251556296327970275955322396119913803657113358220502998404025840343199186100558979730544428814896137678816120254252341548029350353090787129189273054820764213277276195292064400569645142850336383680411206557903283747148551069862848107040806897460673848259677659570564447475218102274943873782941078745869406270879906908445630165406518574959387012906306511007424087122847175814591107214920373100783352587364675742961090815257965077795393837584488949021708290192961602055771674795839315592628554287362345090558829720637876254792381137701804089016618590311448424343566864615346426256320311113056573986726392857372198298309428247674165959869289574343805010025076610574038153623145613891970664839772682201672746975025225143337254914760990012942028506870983557807627059586878942997578219348524364251366164533257947613571595775158609303016611489984672300406981835806883317723823327907538494646151989295367120498338292253386695547421018064073147925949755863083401147679861054206515766094650358826804157786371655886134336165698638146855107016490643550903593321799596442193425787004666535468693595639819659762519905944508177986515557545539204191798378934274433535648071512063252122581997874784000832140748129272436804196159034138552757411936023415426126065240038328201788996639675690138783012265747206718841374433227452605485281465159350435841260522049529825622335978070914899812677870375664613492719551247906643565082271860196126724135699225516958498206370012850130840765818323431670275915451900955156740625818104696845134899110868797592048843261474547293007675180050320504464111301818711566505333668968556280439618447206011030151693064832871286826985541780481908147744377676197506619346148114031171040065885964105575503099412130889699238362300438743780586210128231685995950826587679889834242803278545365814873025748635585023782210948235133279828248598585148109515524409593014419160992432585468382234049282301974773528863077593264671378262387144639882704402719853851071677151034620277514532227037167136011017995560095811972599133293343964634190743171614362608743117686229267384995149987386449193828542770288673793925896266249291374285879820883458542128811797603650555496345489524418175573158186849015101038584487972314806609328476858193782708166155543866280980759808016612186695880013676305734100539409785665154517980825220272417484688995564635231465623698729640626587649361313408695936554659900187756436666080741187486589694653909803529873269208203835600911951275750607193161361310253719842403739597094063515636777202604576310050910609990942070035385439775696500506933868329657432642739356324384378418829211923983098709555741435511972585742372685600320274606389170140863922974746086117440433426008131723609203442647240894772501782919479357898560006562452659545841559723459032635316251660092388562390731588247376134978895208958658096019921010179773410843327177833840424134055874783499758673512980841205297367017319008363824689635321465415064471402412227138080417554813151766649690428517280560134882319184378393804695765566810561691283128817533106019140246877946130861638851802628647630877209883228611747849608987382941271417999185628813984149089398811435104983683067617535432886894958251993509375722595848082158803996300777668541843267449633008356518298050782971829943194903254354400387968493473793847275647419860841548271780889721500994536199333624290774509603460304619235643873276630206515864042340416908360684515450250345675603971917271203863364218475648547734003695070660394081836397675953224207307423640361113055007390231904404743399927907771621655599404918772204350973747898397126160460910447146305478374634580600678139582199894800689391020601752628163235269135241981441165641463961253514429676300830272195618898605834047588573072357091954880511265353106535603116493601415230635935187254329241157764864494833800185818622657930403633011451275638202493154292231464757513039629887586878729248107684557337771469756143045422888508665233897512161658186011956392424185553361092777499917080265713514943321754399596669115056713209037826483216227946283340423337044455366171820703891651582616624587145708939752307704645545390475207917651466073932029803017406366850837868586210883108588668793448027298171078450373653226784022975701218280547510136164080125518749964191043568844009806118575398865628205670870939791152522581577070341505193849496452863483742056492928833197821758508014027960710041698808788560929974720595901027287084301875067698097833999760197603016080684676552799471266078139207990692072932775159141733339068067180471870799472178209511561474695039601896533009417632252334846876368258058929243934264292549330325077976174751132028963252316649419070899336119429183378800202268578443093386972543397596298982674575743995893725029657402232276164218778567735350007476871149384680763758283420510427286416198842884777179260300783673040060845356415200105970571179900934274893079444578314148280020063794255535361686225368476230731201446712819319009463555377333241879905604454599725319066217861049902832631742493541108855862615663384965677262550424215305027750100851128052600525113717416358584891097266985809472590408733156237377950942929183404695809737644936337680259911329290648577006715632768143586344535473869119669224594997646823808802621788497373658439760811601518535264191773127139034303855925728461888270674398886802938892785700116829954779284116171665571337510786612844485199954199774530482707379615836596615275836912275285595958349376186879963518048652771096725882616316671449280185788939261986414192328470357312339979888145182291381861895270408830915986838241272027731616136082678392048823820648858374827693985415577751525555445092101302377613429410571787322893323003298944933181811462692663220279917992044150987218440482816887157194768843574793511106985291223854135878720410795320342637309261081837191634750144057634372311681921846023056865559521161707959515405303419526399576472895672123317090749153241231337554179470542355605103236880402816225922298667392114797489290479579693732899103079816995722034710228531326752908830210582453971870678603413803159949557141948988260456866096845387866072005492289938021580424822140446598188054147883577013102955540840741471318979757326769622481892997552589176410729385244500037294645760355569086157190453792463445439504636636325558736324278653322677476342667863200915340230653602359394311221163273526375100497175888999712612650180010591295502482921839170287638718052465089742468131106334832537118749427176005114096180693000269667452375175161497473497229980985044783038729847693699691343601705617145715204002236975693190432863004214389903858391953772070818881310772768462882541783196179994761568819683042133098022133036184133875974075876800001360802897464056177855856307925825492793752000377435036463238136508257774244345559563995444994801551530997181191169435898898940617614010872144366455574766891933274785742911206009926287140358137722561097170378212293022678020767775073483051419976415730222294995166413186447104855261556032452236574370227634591129333271588827092701384678534728403927864361750857013325391567627662332163119435372431899546228983546887390426621039878190867535522438604181000669991666486457487266803430309859058427345169420111135378027047510758868229624207065449064360754754786693702483382025009264933666698330760684559431127759550184507450673478140787443057795155009342187896534714353909379784679271127653360939438695804058591734631867409906298251247226459869107900865359253785314771192117258659355815838957321923556466654116320878679908753139733900105811692422826541498385493714389769036536672634673671948546793584552663389828414875014254442377709218392966166994094027968438102634082887404048927095487425172193703750738871398633492319372604206180525637192722923294235186396436778982348573368023697407152034594062816167070073516143084426376475868490252757648115666481672664382710561363919113266815196073891416303106081916381043207424066633635048777732584372881691590952763498868452347427792414540112431161146550017077060212333186846555275830075411673408786868962931944698940870349991708244617167477752192604823100944528153903523399897954486736600378717953165433276621066265333976649350003712568480183180214638113725203251358347047275369203440329592598057006730222922573823419855340215611715130473778095125984834488899868792398016743344764223005202303259382413374241274108641448364747865605431102857756254486193367975047159492845843744014905696692054790506244415059971494439289742469073583536229975728947992305979135736435273370692013386035774120993913187907064148355344555739693678127283338449069091624886247537735998342266544230951812901363892568783124692150912234947627228903712271555854315845512021176273339612776151060223930342418965002877082756517090671777276345992063898731363866624347637994492823231397104224178875302757596981729035342690245271542060439256766684958756255973613817822831511324292223872477660962845845972036412331340428086105650104789837371450276585243889941045612588205556748183434606636403738111882239563696383168243332817206109785188717765327902107791439772527315797159345195345087939027600592601546218768661234434347131632891014454643271238100244712031583410942399439799558029542042483303155573159802072851462777971555022869177639994038426830755777383190705818328029492281489830454784934783138724265118373475692554857639293071633562352219980618871680227094013929580448565884123978824338382543181400149752093461493128123054967115284807342005653876723994911305843934531165771139308700421718209106323128573807413272849062057490881448925050334771481170400982179838669202279994644482583777089041472273485458863144314996192176508888089730393048948816870576836035917603207243787718282270742110435253418033655688402766450839687554092986595140727859855208141710591415724404781189227471100815250036992701304911035767549809242768565411484854241534946727326569724237607671781879960016119128712490708341907642486574694480564911882994930991621983059558036712434665901083310343321173907790171927779613635353587245114885464177846550826840793905686154434597651778367648508959845712862911167433622560126508613273583713609032249508087314848353013175040734321530657369604233720971298060941711773736522135413943774481977725721612743828181273621693996286696665351559014864305684373404716908166622782206343531587631934687967562981905999576873996689003940165011942247551486289497424748188049004613473656894873577497340810629310382693042331760521656100274175242510130020347890884441303892373069775014898770512768997782230140035165180176565323881988354337346515988700309278113567223206116113192893368388081104327248239851860927496549640481449866225207473933694846052686415985570831633953232753661257201455194220465435822509728823953208214629654920770674892283180049822894912686180582059680275853334968038870300004527863576875233108449158797590221723545053580998833223663596128868599967524430664159808318937748484180593538690345809043405715271324254480642181964134932528399738035096770089460701101055126815559485599461382194638898376515298108137440062132813359693599481777668400397192473617119555212566059146376458297610813188019948960916765370342769423755943011512787446559412240093305248542099827343739994620194076340544407813792210077789398839989924460779557941094347396440920278314356069288345001061185039964611999960768741257687916642312385593966816192155576644759147403645709125549580333569403016727345039578438002951875955515385705835483133642374099541969319351289005357936520065162406727678252076685543982902879827707741226575461556471514267679742083387433546054412564216039849933986839052618159966305703064864567653008785506260965052345100379162418285451568646849787702277700731333844209640897373598091273094534449139311019553645035895007842328068615869429408003768946984261814260447669963611761110143453097803049956594588869340694765811985480562129540583039244501467779712192980750216172990618668896300479270445981373728052547827712025195566477213381308487517168403795898279284997605050846189679771270324475165120615812622216744310107712653878959259494622197831206909678948672917348355310310385111143642157861029471973620086735739702354531741173990679710159222142934009568144039796778171739890386794144365811328132240275735868447686439989385237849044001920964360908662136370425759446152326101037609488852903060239561030336977700934508549141113806285369503288149044049144550446379771093699848714241076821358987728538107647632990069306687431175410371598726237522462039059088171001815961027081706952156516798043816422994788292471325974506782979755570112389621614589291316785747451751176667302675074618560244866124766376277092905498516568957246790758409287885941677631150671859718090647320693728557387100001494060585558542256513826902880783301904188292136269863394369922914688801449766054639502000609324379693409140026108537712326167857465898653680864302825217774317910234786143598479798837403283717750804573399711840718602469862952898368654605165920396160105447458081774688853848867028689227345944613721202935570017077894857101951558173466577672174157932845092210559920250715363250384308997602787042428129632443573867070375945031994574240310272904186029238480055389578747556057141322444982005729954142611157731528767804968219879167344886531241599982294368057100574344040577996533911348033529963189117816587435349821032117389252830425872713644049942529468538609218263946041231571943247219610616283888037599485763082686962961095531979482136047421306511500897334249097102241516344395085414183858345171031887733829084328846660655836740934950082583345824634450367739127359136680818626862117703969424427025158181994434498866198894165609693852907995811947853386809094032957839819947275553193888277517139686531120446587975639590367995995666738724711604519800969830151721813490721305203486025593410903727445866664449797606014156896275826059941364312815295272097717635059782112943783973668560907858406886960827195432061640978374022986726980717622354251836449553689630046810802638406249388308467491290916280793771759157167109195481957248021219796482510456631242703981821846730516277042338353553964097931048473385658552542209989151323081613448179775465605592670002009573021559826268439341681958011403706720890844282064672819014770918223236997319707456507896459949262780469968829622080548360483056730187565496865646690467362656887583346195232852700397538072145500542147542918283683820273820073426371075149942266719806196454413422185149376807090305650634338845348165244978259866698837525190106024857004497305695944746455586468931376505352677925824204719919819417818887787519806963779298634880512692439326034393188583422456020226872381465830902693672848979871591363615455625859894612001575847715409291582548981216136486536902266643187545422854459439476461385855064442464611260346485602127977553815751621856297503227423115604905608293600307560328390992327017541896189578521757822491468311263548127332195592265778956246913824657439979935057152935954472737949824108951799981950269295546673399014341620059687255871187675476248175380051007359401392745289300390582498614794051646318470279318276665005687564486646935109358885296161163837882755274811574041895325179170462986281332595988068141446976539452200486490036899324136537231762354483304512204201392092817847764123055951980547547424060848659499966933561682078099168376602842895400735493717217107488432146865118770591498230553767299888117523370199582300497529460655061078150797177684474013240149308983155645869378711950953931475748609722077924367692704085850754579155260722417616810326532228823640764771961403604656660928829515431812910397294423693137952825620620510397804539413655859923750232076018730535690358489747735390584410770168120830841046883659675137756689551501163594953601454487943402516987554220131383066840486834571676767118137353793444565359594408090723843887734251684699227084528416840326803936880981301320146940141722852707338548663308032814677801894715601196082026923676319495359761926023913461064007819600935479512523485995878076430507862996286429776277545258177524000152277835247764920088944623233911923981645421195669409883821604716204084668708922656993963126668062078952682217030213577833911809897550277712482275905187118075168692394118840326515334962704229148981919565275342605407957771273197471960892857626611409218545270088203837155715909082448787932360325993446874242548984806305429218288013511663309968112876184613911460268625929319051036586134978336964286123607249479633131408240549628413163441412589430584168213458870142585339612182610053852455451390216442708378481708619135063893204372747281093298808158120936914743834976311721423815941882159001189776091238226825612178570668357259521474065212563662025663744040587246163779527854038453755843005631860006459519140725257445901992121261722173801074735561200858367747478365730556260616529052290561231865534985542316398056774396805073579551423262614120392341469074852762953438992162676379815158853050632856390481949136274875167142458041388549986773629578058960431135306322754594068411497652576340299811345888009181940506721558376188540646248593049347469220153925780600214396482431952102873633687717378371748485782110283797205947560328538892936789185977176234774528954593456334310767934647866531358814678597591706017053868512345105511649272164117998915845560040611932474706046029219262002686463798264419848836227206201176750948251429283923307667505932209616256196236383147999710058782242044652261350140223962736844709856278434877811394560231376194570221414934276397720991884113409048079260034896166173815271697892908330707339235134276326013916474728252433309087880207685098552487071621098535356107509017866552018794046861837656282119585473698831131048723875441970845456543307628814226848634857661976828434765711104823968687118213175368318365916294199703928305200167009678120030194257058392143785644566650608458791878001222724197153841176299963284167299779869621289191238636299493234536403536191368667486090406449388244114817819095088460519658806021576198294662675366150763362310259369160773268498446303076151517467485914691302879810921506943150147097574697520935420871383477977931961091073552812419653383291376036563817157221774043177013634773163221343254435194275103612146487694170839853701783209951076859140434010404153910045346029800331498298978683997240753658560873513923968711428483429492452877247991639547425527211418715547788097845078726538553460522122308394911992530726898285226799127527489839355966534614287375132616532672424382114884344185303986917363342378717148039646890396638799177631941685200286199109724916256745404650882314072217253814760664686953741834228680983215039299657482804816216673944479378838585853761109634300755723835487891621526541860234719522288423718376547240650683902350717808813410808828188572621490347074595872283197261809123075187573296258817968784981492794989970962558928255237067183825926203770605260124120815509555140656844345500185505452578278436221410195173055091456991462589773844699776044966707674196135683958117651953800952074596605384577491857307293198421545060987802256742966573827490133561485540410632511440134291312832665977077053823884542403667961998419070516858435760993345856089223155611197617903215998325347712263083418952359560446419027079676961070965472186601899470641515146422097857622737127233216702336091791506742832920353598551292844303877333495456627455424691016934775811430203743729789765928321738958870057764514377594362605289355921091695627960462480954637709084513610341037740199831533340499366313168003649602120059244141257494656425396257255145778963188322894457989530521979419412786439324112346829142078379641646897595159710261825266510778682600319172454750654482888295339932959477699047928826713914897233428543835073101887888925821159422663175430954808914411345220537161365721161344608810640657483544276648914225194215264778856934010557432606720040474653863394499364797998447561485930393034516298750710634537177310811962834021618676279750052858045164666073242799245851756882039567822996780980997939060800034361947518804825668349401256385990167662472225192401964385577090122989606576998534186257272718671427175500480428345179966647504575922362699873334512774845412226572550483168919436887971494948738078176030577024012632909803612831132926084151142254708977048114023981845024268600364891203663072680583725354230185926437311383397681900018379668872048765351265415171778799747908236272124661142878335675524302858153034071200911738065973316233185822543457538729138810839340015987810587822278345694488704985829119992591083197568354569410895162329901724627699430083778410832147622909822310767632120792958423917720583891510262279448300382701140117602515739182349328054533930394989178574628653160605205294034701489347308830866865907366030144016588275853567383092472123424290393341151564897925499531740190538775193685154086565619587442666515823847942987585687003134601723237568957875657827713925674153855061077409797589301899200722048782950028078972220978940210855415424760091755691113806231738714513388098181104816034384140149766142847565483013029344656588139095571275759729289604461739970831604865970287836328255134019346999270273369405760965239506168374101364726311680678720622855811879398738285370619904974914410020166451233339198865866766666554806795888964167902984111947208432981377554589058630261261233823705687443340591155740756691547683799291774115637974672493840485464555744131524076374233509982406112573505946302454387832375547960122522893377459107472285497038197625151431056563878869951173500646033590223609671052972038228498068485577502681345080205998323266658020818072240665537192169914524232427465170283190017081441369320905497291958834254054551179160464708723768217340069454274525586739129936994863433535192322163224273293351472343457760309452483132526668428215872787929548473942762072491705143624693748005213846456165390781405686130980899437803212175438429489878997592381238200713192931189916332440976963329784516410836652139666732671806369014566591104635865941714063469862572025562264973762427961382680431859527140013610876949848207564692985024514443733133398827092315826673366645497036476978329877808851925970409736189260441404055796656737438094178892451010698080870034521291467828699652925720220117967002509597455298626166788746355750295857227694621536971972150389931882684593436541235577807253867099247515202234307635936038444044164099667125664108662447733254422846761482511579261745748530270227830251611825110295896886942989969003286412946872061169202860588333687356424554110085053655170767452536952058544939665242229940139503279240581197182402008668215112797705736187060806078918780684501742394786700495158774447626124466114789155642611071882970673899938911422613852106187629604676445474728331567194227278635001936942246938679138595878598915136315173060896398205118246254565125717545191236906270757307703103177931465142178454785141305528009182638299481942376854857219966071188596675276721307132224087236973724323191490167316401796786096520685736368879295572197053858821303419501150525380099691026059184090515482074391959947603210375317285189947235164596592051511112601270970128990364635644693512929292623470648803819093659333949878083553812962812016677391035482667739842655312668218915203526345050683735071365186856812616958077151768694748265493849332437118134463772322764147728851584821755607814793142752784292969890193996450932517539205948976675801158364555257774845732344519594742907146865126576587927806766003026916358469927108073894927853134726151767250806991264041089062484650469583579277843495227914246930970574551088089244136130654430834145896052737968399454121526597913245765004856932558510066499900516082953380311479881477606400306530051456907307340447167639926945217534710150552686735700078473434737133101360713287742949190922449784855991555019085157200177169812812436856549982058509246372340398766106948899865054833241617684096049157026857545170663637918449339949309877228355062998881759827453581778462617681590418133895014582631719350094722430137075494476995349596647959319738709122452375411329009365427556862661085943513527291602989813630377984052388411617333931780762059362281068457843110063249394192354573386004124624642254208775991695361966673866329498034930219436791402467045947292140775940437824493354911907358105909228674759552223501927870998019575201022028845886181961971128493716734331842056403310162438959972752306493689464547899424825913071130284629012142027224470166082248685509099832809092610051883430514504795032222125171094931305269897277313370600406561463469834329669691821075139152870889864889314314749782083527665266517630205078017342995844990401886475511912938623072231813166231915750712340565435945571153975718297875090752210617921001915033584828072143130847330596579741435362157568605848090730263427960795295054444124901910371318423300995601258256197109785947529620787882197235587973033559312010872235437210257261479389842282590144500965456391352714784590099448420884714349936788920507337379852849467553248261269636065191000007927620364253013056539480533855760348083333398327899716218623174865902289785646030964367087574965687614722209247967242876034583639007089650287042416832069767676934367914928228445338794294147900393635260612591528667309103801555246059120675256959276116983384087422761307105972340830260598239358437215401143309758389977229422689821305047256957218871463636511151839844810747244854808343839106826109372227315892594447525631061119338121742566270114789483012137628878572368100378593565448515144146449403894061709134554724485453263814185241080255939374678798567814681131066546658317860758387933629913287410727753088252089299574422521097745523961568137852623821757321677983273565807740829885697058812338426957578352984642907277962156294550886183475786038479554721037119268561630908027051043295695202743877656124910495873118918914989322567675352934732537863373021153663974119385812135423142447203253921773422559245651133455424610672694063685673816705625248313304139839845608845946055917953964848834052336765646281614708926441988621275902581498295193399890247723628090328938043601282463312624346703891845425923789597635513515812071519945142446598779189542187931938865212234617558623839569949227114473761299056213986141879835598574648373126381569304292999344129478540102574793283298968296417794311053505889326189407919259324699645628755409414794602717605320043901217152717096121291893025351363854765421326503103441667677729640838765594576918627607902193149285217374115575036917902392160504128084242995559713563837069109864069148309564030432984917214826372008829333388999302112671208595183859142161719954257052161606512392325975032347719766591511597829353947053961397200584190415920209694714330155948655128102003539947122445985886320071130603830059470185963220382786683446638462360317696723584207605105493851137910266442625052059691201893582095969756598296136353845883350494997128634076210881644659900216131568575082905828493990161773123428981970255100774460631994606651651733703863513964091426040947102615695505751502691357005990499494266604662546979369819427220706201862790342247413431881980276876622691836090012126270078927973489804158390760322387097785031487909817482500173859711175049316787184820776191610928491373951694911571494124493837110610632084259639832622837498300721078043098717779073830215892686167190648189901534785584791671703495277580174648124582621713516363690103220102052716744076133035779522618217819689987113367299969084819108996730648740983748241880507350828348165822572002393545375962608496249928442643304876773369779403651523593411991670503926238001072865104239171379776769314573343330244929859391286114823487492856671730204784734436908551721415222064805874578470458959759514606055815229506177356970137783081725366070121466052070428736545205947287824714301487225448545154154785765473161037751081513065612858930808466871515294601354023685645532823039194718037350200808998639491763509107028366594774337449872643173131172032902932587523966948763126012367636335833606372812697921750024521237236343890282383425234046513878236816872112063391522021143016825815505153553401785382993307324902004799145751612447591111588835886672045200242679107887403137722899849884717705404807659713741248398266825944189118196211816493582842909151886214778258766506053275562546594176280933083729173312435603373042506681467719953776225410336195504761676382103608111714472528406126222605622399445286436789292644975543837330590623094302077148432931199535833942654317307986618205263477285165498272138924470037868792735832260399363411119881872292830419948432011023885291368781537584189265228165438425434806685493175148825378971094138727777095796628164485318306625996374869083842047413270888906027561845663399535518562645433032608922127438296653318191465584353002453440297890658453008150260331441335270064975586926498909701907722332664721717019741577443206662927465815080875391504462421372195347353727705931719530493214812899277625786180046209441174848685400905598132929512989699360736684798447131072019171818140277753373965750643031506883934034954080124977638588850536025648894078215635313510230408527856716877638979502344723228773632074750811491369026052067357638345527303448192327212265563434872275518825730046809792021000666615216237494180103778716661395158769452390891368858705264344633833578758259664208750566454412364188972868667788412830296038862327257614397593647463201567090777924722626911695637732025204803070271949679726869885791938810248246882057115864312651208905653088045174147429889839621136428002034207618837377758997170518131985469807983688114144901665865096730796461341810996600887268733551990742804369119927526522036136618441163396001428057219302684186752817617122999022987739284436881821663266705682421534751544961386472363958521538480311317994548347530145537851561397603911733545705306663072990966311436936837095709490931148355952389288424991574376952310787621705586867163404480561945167273607998677901240374976306985589487994666072606999260062570661537225422833190217955378573683391695554480938824459685449272322956563117102203569096627706534392879767888720798956209135185571553733168313075409161095075456881896347737530121564884948755231743515260548710827385207484858697995958104037781296969054716926774519240222298842389832029349545548720836500906392579271742241210277483428550234962396236043521713377310377343240211568488709571026603788576974826087064126508772905244130737710987991577580662989012992520513754492012431929951546707015652331603454803704677550566787623806330381756962664813702419495775051224008093789525742935234842397341836160822807629926578584200796972499625640443517845393179782124713228178792443516605680686514602286861620840432407297644892305234693168126685136501187477717592112117795075630385517044991864472117958474743799527963940528908420367681434919433128265980032008600409971733447343221961910271642101902886949231724013804263773902362224972494461487305829839591698639764368428449882562974860045172266628919510216495609538714677231948893994703315357041023716388337587175656905540478125088161484280596410475057061177952843776993353029262483424102270102628943712527306284802241487735933999593789210729877415786968672456157866947204277919852455304484791571617746094114112462330229197212398386743333920123133872479759793111895419443785018756099712980321885813162018946136256490425095598964397011049233804880129075353197177051779946650658865623525868166992469226775854558682998719042966031573152365764339303499282654625877355232667755521797029587409094436260515220454289693077016673859429288615689369785978246892455094421900770914990422177390544675195984029421603305576094924547471025998480476880588668397075718617858792295007177954562024210121843583540451519686936307629083723596659197464313769131559385039416740729099461501973999533640682587536696121575383033784637818767743659780570390978968513936392838776101717340485701211761985383596809013709977280954593376325732484013840554016005508915725553327515598511193538935408911029979522478728973458811373689872308347601455271056800477980577986875642130305078616467037044616767390336358017561962267031654091193300114714218098420830296865433420142626417650478729423930839187279691998567982059098841214434624987195917476292893709814585119627784743511644734865600311071390116570871331021340198889720209972575655085602140671328365159984532726001170300545542117902139459158581760632401028853009995725589567415195850168550669420851665871700498932290280310596504744796347860379826114048140880204462091916347174134345888177927402176364154864355688472393787368761694991464128170622822165618709485333120982135303561781675705253693617799143876579119619926815785773290571729347650168547086059227671070960222465460773637062313088189530585251859113622230060306143580417387244985936809316928897345767365287504266430759885941560515047757515562835981251925279629294410528895620011452656258148443754945826983470133994835717539726900180479549538037810311344179836082749665497704098873158140225480415605668752979753994673853563948613538474860695755272203856814095094676184831509560821228198364795543299415441581651531487857573939920575726185534149740893325962266476702438246788050694947586958761791251883197411401717942391180594543850971765818414670643920826538408747199611958818270756644710821095711872300876826692918994952277241354344882880082195824106131150272292658831562721086596106446315440846856682291313234107577667065619621207479377999719815404138105994599768854624964544779195212640331577237589358800505133750889160761648831589814237670722261623146240607767695733572142256587453689000578613852753521582343194555779347968385270635171701932980316204575836630918637613119752144152181205060804093414888994915284553218180170295386116929517986501549133391291532483738131009918359306957395717306740977860609363892112596996064822655099610896660482103613043414145877861146298058025332090967993635119834663364589122369991073157679520004813890296207499493708247831731563810263275869549985147844154229262717981708717121052378132630012462413108380587746463637444890666236296555951879131640799739302568173710990478335992527132996340214655388942403796043969951982898634948442068346226787709964769096174973479086080818381444759566943409863207682675747313828977477584484363957083576520995613519441293815905030879958444942535297073898578443002507732702683104202114931612761763604058797164490055062541316930053694183478477507799585685862072647135664723607352804194206372076157714602183337415961288557477743061997255699608987804538387133851458027310367609112713839741690211018507042920093885503691858391216180090108718263107101833987665661807862324608081877441325991649790334118906808690602188318732459229127851315717798426666944019722713175595197088491481031313713187866116953244875150362748005277153275483296189494362104095733881466228483391924013097927896743126773809986470561743204914992385721136233093423955297328310214545890374736930837107824887922024796398336626136176107850670475914727758412137803368909654520489583961016544907157471743366822989564591775887929967677617453266344874516549592543316307155323093098708786119755138358730890168065500494009848752485107355219155408531045811302026941254015640796547423412598217265711222078129883743612879533958932211644037959908039904220032199220082060783464927823638495935794458312492491466672715381096730409840812630770355819094055501256137684639111012446725994122447323077811389505774414697766950382158509349776893103442990634007901875126599764403182877373897429685119646068704450703979686486036704373314040872721543879608780998275068849576267106611510014542610159072250865500283047434061543566127893732927496747763953656110571093214341223907380499988321386525010750758655395528431052778859218803868656520142263810623144697917279251105166622576165355726887775672231964381574514912917608934944342977757703349531818633296274215745527022381795668005197333156185191168307195884394970258315647935006643318445592293687729076163456107185942964911588144488765864631306362134728449050776929665793747437880242950923419058289714867850731609365425077149814165793829179195127137036329233078308520252294125194475145261019783913463351827158573943415722972162254881064145327660261048129821178506758937191254247142288311776564842039187465468311726320091135707313336538153133211616189989594366895530572812861076363210120893092891676514615152283203857525387380944993149943933209523922622529587767030464005579649229961711301755665272662646786885582035385050603342159718326728799077917431557240419484046439175988023643342563677285173624451991771270244731731158235603480608390529125356233374377159176088797768681612289120117243773151158154867150463668502911453926446033145529657496389854525506205573586913040656882073474614158351801646160696911601289593387256805583580406117211596153957433044863289244143833655792148914915497589416369086496458655925296578118740132599122763795786720548514448622818934690078823745299213906203914310778096929244231801608736015450283718840003749581442256087242964037942545097027947688932745855821709643850407402549212234728840994468433765611695706520786866772081212790136083231103859921401391315751650258603868365510716467701596318082893768552467882121975421675789783773619429492621024794376211978536357313848262371328825055861734096995929979941732689872151615839034191123407724704317926130805944899063311951638285302998363498060685836061773842168229017568430359257872987871993297731291653204261618673404530475946585344833624734341572935762446329274762138472020562656135163686294934651662138217678572467702056098491672867984107706997094736849157951173835948376015304996978588889511967469534623143296762563665032363734982233809306793241582087314299260691706857350019573258939226855126299930238590799646869799917528534731209105337009264981568268146607312447012223794705476772062639810771488415677429612148439575214496926119622108849623037407157862288343681214733080630382088912943296624119271950776703190977323622297643233222584653172385388074337421530860622409909404919612279197266096643963886876671603961755505472916527857120408646072849830633816031354090353700316216175648834811752230891617694045367840906495168977220323687123033572183350170583188600065070123858799525115276414349125440601980634076787198865307013819104752652586445302944915048058237639276135538449527671777308874828496360808493281149444267767277521000756910419480018061687592576926496107292573880276660110768930521018367072727102634484782317531395837117846953931538454639964479144754739169177723384504281622076599424209451898178382847574120158386682765401775549661303420888049595325536951502495380143450308356155992263947981859368420428378372419202150975522151094958480319669247654620267479604253321026483009535352483025354582552567774760875871201438124174729943977943861946834643418648739822674381505175874688909813677096025363982126322713262614200165791917821523096281039755173887346663560688236680091021346732092931429457991665021639715447094354530267785827325890264077341552730475458594781894131185533754052546330204907979107886937057561497823417731119697816603967243690484592067522878807876794070488318968801488480245581284577369940446414627893784423385890210560571656445085123308025150487397790255331279696017078747794105107714212717127399828540459668864882431674833471340458176956232057826276534087101263466682595610638787289630695505142271638560571874346168246345719720708360223665692813134254770315101955295516446443682510009583645217857387913943660558223438718373134770714840704989235026303432683664077636873941457118502174992061770864986315994382455921096276227044343815265789745116411979664855467693694745586987389484221149190585763130824627247872289028155071518899817070455293909449312243380637488543837762287270291689913243988691531151331523735905400860030110819847554270641617824605817816484608515814084309912505807067016663374711927436124957531909106896613375965769712026371620102031181008353227561802771046745697766492144025385155373218334543901087132191228097218168375673526205539971590292222978541085031987796594872255559916871054340976200252614710194344392055388608791027832303999163645782196528324380175457762660641751310128100212232564137063719619464092922527929366224363970023591396344227888229550664064711576850551314095288606087823295984354852764585573875752076539209495830748665158321067044656798951661423159096937534452949429961193111100740860103987114786126653419319495314830525569858397861385028329334022911150524282418385475017208259115775635620122869819909229526803870262603634990565925047759582851301693160835483707903670574765369670040797931093642260926894150923703389243862878389268914040135266030403837266217923641384136777984592862620587552214393057115942577018640995463020156577784964765173601077951184756523909218565262638999715536587080315434821560491498415421419417508312113607321072857747812626577343712914181849573777384007422963798742676341968841414568967865080882134257956229356868775575309405520206849429350221183725019834002522647963341172939597262015967955924381689039912132397232955161120876983318026765845464886970763038575403968292910385677102799604050074938346407401470661864667716545664840926005918797680687314263995100406965519875190877925967342718008818118215704540266882521422124914040941010156431814574081205985319044702428449646958825059273635241317947491008760629446561325791549112448461520199402653652404986389772552667832125836928149081716455211681756983906156290987597740722131941798225584686766553809095826760593286809111034216644685119696417863580232067516426760747271076146901518055111911705986037507128171919948626712255821356255214362672214002304224804226199505350018876498458525690118333011930648959571053993721486466963347333469453516552522017794439726414332309315547924384165821899534883671987767692979743611393144939194405525285307981151351315160557192298041167726790884472916294963266506059581712159868168170018587504726349499250755659902018357982018538065820189886244229782373043056375354338589428617218654724162879882123049926804711008265154616953561682889603781180437733990487312877762327815881833489576905649438119238767929054002886175705593727445232128119693135615866866680668391437828583795737413020484181196300418928963433993802197271103428357076780602537303602047702951447193406637952537970066509532116778405808088661824996754258095113084268770517615543701102583483330567112914378165409677732199573723219490885792927329596477277547578012034331040927738445988802048041485059104016234125597694629261165289716566520209766832249027250162953493127092123000332085607233487257744114067973379740084152900232738409204375153046518720775892888471520020790419443780636148561306803279050732673785165669086388215688283893999855821710299608800410893231925093061373244258682837653178415888134797380982113616862043666076306458476136166157713157753229556760301151625183184954284234664827419478352648230457208306432771736593932476647019138964835522808938398147434672663822821896228887559047816089547958211975622185658926856929044400258541870909076658154786041778986456260000006290782441301113984303877162738246774620902243823245617676050747664444856927523125528590105722010369047115653086461541566739730440298691869362693901144286534020639054919372869009450215280121281560367835208711981230328781880916931027538502993534371948572173717968456668043708216745003996765262768943132527933939188136017846617685204185166669767491435794702317474016802306792306495952455964130993613350289395261607308502442341853216316397480165854279546226823514344304231139322990854856560837381812413129857464109411873897049073379477246363780952416540134678828921064935729340490259130551838288402126424316053662162562529328142320542614497644237219621664046128855277117713492962585150995866551409819363184789927645864984760218459289262193346839793289344402596032829739577418240780955449468339639438016668167731933389093362128071461494189380457373261206959125743671588679884950808432081819522184607017224477432970203335236828701985317663016866586752377377749191923047979263726205459324286112075906943299470426221449297149053964858177697631784967723685436152112190230286596142907045837838241083869487761944593008766840679645158585576601545919080477369089269059486015010592142135004460444075577075098011584956172308781219860806526172503915247164047149766883548676139818011836820228114651758170675382375504507469826969790066959977677554101155660285165868588966484983112824959429077057019859216572978810228561811276685599128576367967079675673394998510756896980703128961794299168742705356031490205708891195865035447012846864242695266984785306876139191311491393476868247740651436922520378846420107078157395294651213965345189770829720809304657428877375788680573717528559865869145747764906257402131358439051421209206766582583019809315307663846999257893013378548111707829073305126389104877416222350992334951675521868732963342213984747745261834134052853941529541281452883993161309719500952837341372489526879131032969206483650482021499954582293120302823226903129482877108815234948887183920984401643125019364539903665173059493296673736222701808592349627654509416324564994482572236000618110708456158349790646143596535028843054135116513617814961235265664465030357117445799613388966016327189413930722017440547213972032337792516181478194930501160426003060759740263400393257307654997762578408408562484926043415633426626821562940487739422943696012970843557769074644453166515109169033870251569416813362118227452779347167552542344942834219964116149238427389568600922787440703666099004848637357381856472825589626921117287378001639658372152402537949104567041171973285542883087346936556127703336167697344505019615808523093116744492591353462983422166622317351493758995986649391710152135905251337215324170425237691143071137217900658256057944709530688899084994307974966618242529239935183139875744755186876632045348097615715240004137268807990618114410197983003541851197082390113486034653354102186953402961016740453514494710654136702330584630105185927876534605172354186266407881460664566636127142670406257016007274777379455875016009405134095942868237114410757892275982108145364738289184579718325230757778873848053072307743179963961492043196718454717944165586287579735451231572124681661006277120854870544967157205975301871216938374730728356533016599852968646704489234709226609595588648536415509289126838054351745657884263037051643217174896224063024198408233984328066597945034472492613633228971243744504062682856330640709012897065035616083518346286789992310015732520306184022726579527324161179691653863199973250652615375531386405881491377080810576001258669697628001360222598715140021489887712647340489884318693771017500473783447420975087609170925413621357633613269724920442205267048379281766316536932994008948431988422442830311322065296118038689025567055206057051004409844932136479316398534769746851343588628275731311576562511953602884537041249173252599690977632294279330787100815359566068913999233771799082458926931797250746803359739172899320757440450615499083487161158283454453883826251467950497678369400142521886520314577558846662142472043885406524189400101735077239295276099669059859994885851959770914377591469933590723102895342842110398164187391276097349791774734925057920464930962133884837709938846821136991119557570515206453325809262397519352044225316594595894918065364004433172953721627636623285916152489295647118854463334534639252970611568866217684260582762341713625433612266051957951607009341620544970431377774438170596831019803859476033301773728064218329841857699706508160901239900914730571376569807343405979820477136334505060029009357658508527350007080339492522417929300949416766062960985366656545628033296083811676459563114398129691997384023416494810836591420735710032263634082181036202972071453314942095140973971286736868302562440518405436874483353010333985006442654426359269049447388962214202934031701412370581902833915618470217943244724492196921600968522357682008406184870369141436640865586669262434664194113321107374166339030375166807311996789259716203090660761978484414176236632240216648692171327109917229946755116598156386738125548211979991764538054503024173403099726265448802952466266792967075265042647663566865358648881050245175082402696506547100084842614661590463374592286867571511424694585350202463678607567179279912370638693703338295795836820778360382772626060910962845860529032701263607254271931246561957004835652867459224330063373734754493098548214651401297346804232309382764579407758445115381810261530673796752217376288163241087110252468337706666925263593022502532677662242795999571928709497425642125769929264607976828535100266166387544186791210451869860996523837037863667075192242733288493734520898410241588537461667446075041264772503145641391696003905254049713441809962678068009263766698833948223175267724738691717928884090810861579055345970486553218133366504593182995289891573331772839324315666252940787318894763942700498241870806933254416831176363882701986108864643703446813723715464037554156213133199879894056819598454623486150653459040073599638828360430473131333050116388409443482275059297566084326232970830281079969813513140842795746397140899742713596330431589357337838693560803913548833413612333284542233151914527111017524222284457934765475504191820301800494816358033515118654286511682793103098547843340243435911747986065877667105728360555996133079485436849825199689953908998079808900238289343996522915764527677206925984316286749629941569598269134360840640667591429398417742006196392253480505093894563279028716086530773528078566094707268553394055050291609278096109094632100215146875349050832064588804016319641172098309382412627509527903512907801192978107455411891264782375295674035133633442881634060819301413383730637527430872716620786191077947281546464085705438873663379820150262707856069846158929409366079898696273198233711049730924777293178699052448332890519939809415118100101577385180840291799147249526367082000011066066964516801853395408036570763774001251723980482087164108081657703715669005378932222499528591488636171581894259122650233991625552785421784930896361377112111819944759364575690002705504824516664186546205840186527522239770349158627011272410892128867567352471514063531679210705206996332399542940001224124993255533211354800539684732627080900340353563706025281790400481767218373936079582889022696853924294560434662262836672674830150689028809941687126787479582111641442409980795733798564982851867736127288334661992516920228736875393208012931424654405020322755964264855023538358238475632349667219795138171397603971019125365480281269957792832989752716158629249520453525218460840241736345023172014211974837460740717604098752085784648464178211061099760836881904453184380375643660729478433070208609186387930997780700678098808525919687079414353791724685102850779203492316706135741828779300365775164799478869571506343237062405019033346751628236418294332157578651583709510771532159143410577767816883754393515937761104645883160475608256352690296426007257794540942056501038279111318035658738748721033201503674713650192327996864134341138074697197710710726144801822326872687075133465351162798311848820156398090827972983677840764990025047108828312733186523136569087810932665688145814950645774129476892133125457983745595069216874028865333260583036401773103756406190826912800921145872215219870198959042251454483984375958986601075669364491291001890999891216382405144041779248159133313115610347739102730954192512318805297182579296763339727828238618752020129548227309403312450220856421923665141131485944154381775757255188063348256143999496497077898012851607394246398316152297149090896683432289764626000140211806551159120885818859273900061876137640009169088857541541427031355949311975054062844949301848112561522237474838618913685984988229756020117980046057397354581394069454823465274279307628717310422488920527902553159834126586834958325828158152568667289429602261364488644769155413032481164197846557495542243272827294914018860740669840920072609746139081192586293966169364926177552557070796159748529413244303322475339379662148168077133444793719238058283402798992601154763786813926803513965785509908362314534400172349010718881299304732980383625131810029786697471388090446884608768506328727354204048389817327846123851017366468990747954237915757350434982918823960189666867560642117792425797744678128619244954884635079695458097317949756590427482616490574242337510769947698770178901646295567212360974490568735887178541433034565765455293531305643582244455510129940472688235670753589952981520732455640467754134352511263199039276642877269076498018625461161896915291177167439570544588134471634259081396721022433033351011107241788975158281043745673172104432736096815380288709550034970210720637214002408548251621939684544949978640923569658927308126878288514752580726845440897874993948518162024691807263153925702880038643649950123943352185504655963139868522713134008697840197700365464523497068820721823764934664628655407541763474970148951165604357603375202920052510895601645315755679933009361386596981448365802668973508481157846610289269045345137826437666814188091167059797544670752122628270034057229409570587618815162788423422118769405137420214793017150635314602110711374460682433062550031841497426559438714786121163757173671776309402630484015168943247209216569734800837313070779454952381952495781147729137888933268604576494761857487014675217549366508764463848400509549567702516422218931561355826015920541084598811276587862146163764076970569753987388770304663366867847131663170577951224957973154445681920251348331855902589227700971730722479857389362214708278562463361481890655006537332922926240511713463778681544306227127308939881609173303126933019952286124510116029044351500793864181766482246586468108301924764448384041761852941968069353629595365766456562945454772789662097077121632691271355830869865979103644567778193651423044584644910898993281247260077139018248989055080453350451986728485216243782111035264843508516401168694824331062144362973533122292665119747582047738013259744539552962239232707059953165492738610632339950394010100850805014695895948874603050516250449259222412547222938643133831050630082368215353679603512935629601449852672132191837579830079081193737458948271925966946481526332504019070720944389128427483599898092443174357157844733791918443401392549546737120781579882834278005464534811645073870244648071709841451374759566497260422509869721010524037335918840924189715088699875070016623883975911485710718375790028038206785740559525336097770381824697489634810722928590524780517513651342621252986932234938864971646279900905401388511517720675631555587205819126648442943033781737525768607165588255988755958873971445591969461322615795356225570481917756461434766611584688600617446971787687948876660474402124345419828922570299438636213805593082973189061906013433405602365767596844426449139737979798620585184348759390182799555145956802167754896345459557003229111098597091895921078557622131714813055918547386244336068225857149738034301731799048008991798824772244145370943853876255698644500404097755176059504004186140409920210662259831614704724802040827305243793877152756598297907998451063198664567962341684031662024120048756772623661514224438908478237319152972722080245978194813879918201308060382660718395077648508390459733340025306978132575684092225958682123043588629151237697403131686176060042399633579496564632478012345637689669202740032425473422469475930971045311722924918505787418357619590594127155803191798852138722589963323150714817460701189310538781376475869268534902540387324257758861271285084650448226514561314217757736183479495562547874164326991879033859624810344434744537232901244128511388815501580967597175219918859793595279082259014211645956736282086570027627799006563967166163398746957466027249547127372133395518316449592060791587063245457224313789581607408797315579509543158323221451309919548745434496846200515679187582111979034853503322684663990799282387245819795396613088476268520375011039705268242166496312459871817009354124522014723095068445320466496329983382382964245632054417539226546253543017214727298385689052591352288439250321526660289124120363614654265218763627773577600255525784579140821618361151493854416225889672687831331182938789668996479992439324806000768635677117449224673057000138683022573616852267557436958778929061400712119748773013293128775260506131449659464454916374259360382611685538427234931012181987569092031141886705092949221499932934528241754853694708409226899909222881261613542562614377275989020035151588951707770793740968823339163142160656773674612104254280283289684685089683789047133984694034520529682607794587003098462379748304169262402340340801100987084882590411487583918270923411476196912267574065258679580773924145126343555758312407591072611502955117640763931307196937309633318964148292508844450581489778117079535912686347817601770596635420251664450651268740445852711157175539117979969156959420964451154846999595043727521744688133799816017362877860601158073514006492258241452137598642004278363222744304968725556292981556814945074040955666798077373837038709024014509226745125635645946036336611257254857047779542424974186902902665183782723150278456176692531457108332723729679416760776064287077244490667043031289147032390300286037848827723483176325945528103507374026005225952337330198226143319787980003905105673677117836449923123373424177025402086059447586067393773173569901200996957217665747287558463381173206829486188714066640974520729505293569866887379012781442814611686520546118863285754987659004344027222162962123997797515689621298259881171001387622731267141398397365953549693545729168952315975495698159841868543753218734586357925227523979649043291405901095430925568594473800388614409667758566339022857116184725249694063116421094233463046044779991847185113019561580650984633467812752412397514612938832359545199741410676834325926163210709530959050999387469071032792533671277242287633970869305679495518915875074068667032685553411361956380622995937886282370136245714972475266812266042206802299827769407149449820288251143594465588619554199198169255393040286669656149543767320514745022105467097215272637191308946369674081083865940947221261363370775714644935087411205864727722216148583621957642330956001937253241290006728713302010314091194759421574296595138227029761699426818053489934067043393700486804422559915980820711566402183691802642499521218822589941749095950819307893164808204125408510336733959604106947835355068662400529461584359195879560560414647015877669732187004227973678402869432014820109797989934709579620377226694913866593029728531608568401534084369049515889250034877342339874160855588930861103443269663250541215112711185619133208764250131359435076574604198259052157779102480863665243126621554301701322264374437835203388237537544882647826775707112107217990466229940890938905576544383378505068151398691536845567895266127143937555560651794082704076001256297538566519711287260391969089395371593246165044260947431515358803694868429691075777106365269594340027456642892632711267567998524803232376624640983995270498576596311437730625504689624902092146919358103187528500673002816943364318075960021654764334177040200340762512670340635639324452793887951828944831201778072180572628489813704831821999338059324047697156573293838595276626774689495045456251057469520268637923092134335219214654932986948002545454583977180522144987061932168639876672519744491599292036049883214788177661576122184645897636100803175862697678119482328089914565596639151346996339908859960522808516319602856250959364082714037838301788702725238207799590474470647522174930563676140324508799449784043891242429665855011178646024287383199443301021735566410580942732581422750806688766240473141872528762264973509646844228024764909583745159485225697259870801987274853320042185967662227686677134472145038674963110682786297041903755020580020682398648683725223684836900981790199453489446468635211961433496300219758970723896105266988612404293143460622760112042056012388799059724589373995937180934053657533718156555427590411640974782618912864897308471558448423550680561231766662720278762321476839461218961200205726629744087406639664507505596542518503272254849982677722769938086722896073788270870016014945471404541423867925039127361667884649373112707350812425689691967011877543865380960039591248004065147870374298653344549647302230394768581315879509473654181430156486278106521313197900296096241646767567593507207269058726521613128655131010174359015722819627645863085344602906472106404111122989873217673546586010429695012042904902983975395033309861946935877295900765898010125001080936075296270336375232102591505969072523924162697755549794287344398247032857178468467801546074028350571964952469064646851921062511447514586941511765113958273242717552957010608576134240266634216681861104540519602205475590099642611678982936218623539523934903900342579654193184633150178827390470073039594479860386147467847311700898601781957845632027630957082707308153448514545605094156925395603960715639854779637229231068649189332678238585280738374874403642851616059496038588588487704471085063883355732360533143634323284627920665267019009704237486297303014352021855511622789554398595013696652760538348908519669863166862005568622745725285761755282556739285992965273515918493802738996492359699131758295621414671703829379964210454707457689111945044617643201596787254495711411352263540927566921978253703303794770783814522706226298942671708697003361831072791647165162603261132701496403752724922161095889273544018355203486603206804755386024201675684837624057018015575371788450203135814798155250009621371388296786401103218150611042394218324901273285774586209882285155070795326702859641296358119816893697918412368015947389900677336691901258270487868887565219134963283526468825148673205836424090212344635958417989605553103147822118239275339111516980117219227810937017118771506840025715132995916925325209776769450046197018655173126736751927068855898757774953648622943930431534571888638790042498126875441987570771333877775486416165048531053782224616750662397877960170405031338974965404150494861246380736337236647211671657415822663921192933035734667912267687070384513780320257901059616063750070296302386095135969707329559596657894072768034525958917707802986656055080280171542524024088493372303500085517314674572527242022044076398114427383730086338717023891876726008234067709923593252654352464694646043651025661823693097735915364444798599180154606488900052574218473060445778285734559233059214559249414025129493233860753344901895513843604237163482475561066174965704599728415484724120161991427041157020482805960532022636386648679649931551745834709922568746065577613731436916694684944730217099433280884213000946766484734958422332524176167413618295286860669298418126479228460228688382588967451525397699423737485019198562900047071677641585223794038950949688045594799822229119323475528478810626738004576760502252435840600429551005614004085173469033732371739089866249290937171172330361751067521989317039733571280315696020190154903972283677862226006160161996423603892753493804112778699971711803446468285644680133690578538889255333979527331316795780412689064020627650212456444173025062134383195778104783475084590981773615902607787337587819239965617765297627360261438288793685085930259990865422782255678632271563254652916536186420847415862430513324862759345071320612168853242090372550790620310947817380554884566270220369711397261358624784748444929179776384551970471845344436808879981167089353915343007191853273103375642874083165219955740576376561173268902315857372954986571654028554488392406434506008300111606998864735289702214098775816739319451870417565376288415960831234066132804790025801595189170233570203787850662702347199443056237308967439077660831607182220446235546260480738073423048618726978375302312867971879501030744439747396470816374649169560165449475883359620698220662325421440797353967678289176976834880905246309237844097158753473465595175886390471624210659690546647586451941669367465779453060767021322565182792570012500998103241871444736282959018915838390668909214047710909823553319729328928809051181452794200517208387956650890324638643715891206075857706926431009918933965706188777734413485447758888398094648318124043377447455495289202740206491865739150945047986195176293974571259206371821139137647605337563839054735824982597540754842691827464038996606326845876137801321752548539680159077289276192859696648040803056446064839292946783492588186515636108519213648734947805007564262093578639555977423358722741799235385749300645757693881118647264499513929502458020717009821169171163924569838552840366230719548728338101322737008670698194888939564722674003069982280037013285132576644825677533886699983272803363231125303515375260977863155465824324328659058477039767115708234116864215657504068466655494382987879203629267238670144622091906892655836841207255915589778731803942619896728962874745218700363457446528581351285409873518569478678193739659120115799122936101216977059406749663099097368812629374150538445876249571105480771632253879028791835628303038430938399065364390511617006362535621356792012636575065012987019812086408513295879357580093517775234256781318791495639687436765541498078045648290039800978111995324326818086092713434970398851160306712519793347529960199319660927170035341626483588135588791435612389852902393513907644181772676187717327614710269125435921064363414174292236833183564827519393938917005268193021484309179849180940260465521726184284619575977873586613634331646843725947597477513566066403102040613655140061473177871858815932706896326857301156371921426504639682119986680384009836058860563722371846604406332470962878854823391559964818129443951891789941903808809396069182188266279610332664791523908406238318334216616875273100029419763612167574394473495404217667297196447085023379605298409695687426792453534404024050130623096904686862549326966586242649476349587266480838316715906628511246462881440663236427248885852309777382434817960577302644180750278403937510138300620657363109512186172386218350774668806676201645127125140805064266323821643563366674468579611935972274874585454796585423567905311484264042927952062177424203516375753326435332109988387359154693428487863857742909458285082711689770412787025458136583989600566398795496150955029992638319008594560253157283931175868048719959311910941599447410508805773016686512745196493557980440378588351723132837990009184718329712284077041643905857901593507857202710411921497379295696719149599780628690621108294348255981668444585985891439953036679305075216262765062365173116936460605878946950381050496032148236448084798712631116817494213793954606312436201348826540140802335445663145160269832334646939285043582060875148667990816952242813213470312981850369762791140277868993204449326658236404411193747395281814721635888583215146573166068588115162453056542541244216230443920848009219320600376756529354843257288970511722708124216418134211686530101193156612064551802624701525545805742389495839416696214361469175802529611325426215289028644299843447293319335037722712306312518867504389482100519588212975214469957307515236857195523358705189561403204007029034962616783850014916511028823839287413147299914973186500455827448960554888384844225508622604038539315143789014134745003869093328318367706963288474730492199685201465972310649792798665203969558627341997014797660547734353602395397058864935505047721535862031765960468342437337328949800441033644787828993032400196174995556182486815831906071229900393640592037394872738664935853957356699213665504856328591878155617282269931256974501509036814580126734035472989998452126399056043823195204711981377572339432472696784125595604174204572384828890350392758406549728223296513805446602225458393068790430212635492753028732633866243364761005510266621409613472863335485328439133850582387730402053722446769003780022303720810432362736430617071463980637324286216415364619584054368077818025195513682395327719684166725196947144835083779344940677875668105037179513019046588049635394192455516126649884997226415033665264926789065750259125768063940773111704219241875012154810739374517596998561410043693584920956031353786963000585187616236956379154994655702926445139533861272308515683193908019979503114607746504857499639774685010334656163934351365484296248865334831625576960108114940874843514184211163734628000213216540260037034464264246008420291044951369762348832076599595614797987174025221615377093261493788465309860383377319876985293335775880724098508526222881166023850752376071592065148110077339451196489386726455586960587966608539617265356916284257582691436562155916949889208488298801809732581513876050870219346082295979497445570092654664185484349446116976484740953285184217219649496877491567328285102412749134478457078649631475562329737907622763503722672566010224492026589956487607775831385608586939230057583320506923833315155114513039192454127387921294737358096921214423956753302754394612658606782819207239532258355905168608496685576095121097328290712542041547659958626382340019454264465829516134917268792330181330964140676847292088112790260362131910138064617757833733902523729882188699326482974832836403709470449295855926144739834050763554907375507354923335666360947896200320175193443420115066949133714306910509219238721520752254215836096684264434916772450029841686926735908554540324856640708991380451551856723779358854068609667198699151472925037147832307156737536038239573688264159061391435258668613011092529012203691510972035168259788729510299568331238800174460696517730196392259423633972686683716919960928775775172730443111969420813561027098778660791910135841521617776187537752576051005920425190402331224418594883322071065879580099577936287279004474947843377897043767420749495720321315374485268738331615910470106706787965535616000845448691868609985394846802981444340140076238723879591656694537629499996758721360916058406876532028334213110316947917792244589142789423901776963811775836859146739582090216736517599146808551832854661786622463435952225276529630081193877658930939373347492643786142308948613671417840807385703365022670267785656121285244278523516917511458224729231391056730727854931702815774221423048643820397453275235816117093043829120593728587035933670181714925278783110224755973331540265168948224754407694733898817423003280275257606086219395678975294491293973326394153591370503093691455789180302070389097877469446630195560479361440373306934099762871571241422698441531257886353253379177314935166073596134048760100888807818540202883161095017313818745275567144894778134768696948299900500962453486322035577287004683221933416128252477958925904676749767468974218976140915072352665911529262770211637424531718171975476370896547377735649051845834066786455522253932377408909300263423759914655597797539175964085664963215044897345499246705534361266406937489827344980374136248632786968375922440971973058290538571324943464539645958760361487625756671956782370665993741624575550051076471074226786352412111054787725305718443184422238575254368515576609737520627846115180000809075842419940023454352949673584060157457029406811063911079130681253501500334128145093119242461612437239996236587452121672744327845906773907784711253196704610961654766518111223657506980368072734981768973205176565679837289976866486674016385438772553224300841971554691488515682372549296975369830996378603506270419147627933192943083849326068105458038160978712320822963419800347277398802494883881410183254705343087255045806669079735738831869607168123937220681219175114262224318888929682880507670547726639580710215394060056428192726029030649611651149542134081701262996561542557647732350859681498791230254551799748999338567675213877514701640385592297698275418955826992010039773105484080379406162822346393974220166606221396311102204092419224200218093064257735709934160091615601608381492005424573292576381556241343191817027088221623872621219512387936293351813449567055606179670972790653586007519053720852190594087662819544506156102078344912450825963615711502729092870716445578251094908331751805205212852231907240167912364019910780520111415167663736358550316250453402577562184417708514564484626857860019842955562582179161227631716094336372999152470225720332506472876892103917974562459781146405697894499644282518466350219123485839402259080829107972365604014051410535742184977896346430200030267734743170606523566303984146867068249076845133620437418306942750817365649080183278703827785638732727796864663943838816160101349484850656116140563577753647092089334443634590004049970673895787186154704737550957126815246265262485472049971676809223096291825608251208153550790480796348909974368039659739957624364647664171385110212261979295585763051754024353301881288762302628537602618258500537767651215491063738829151810230887461625308947977333903837701086910745145300735622742537243726407673654757691892682824712658070510422220880883216406971229304249085459495282590817738391192020464483292006429877843607334000086432332448003892767678788097542562058828632468085560290869147665344507106919349404002568599468613144647668048538481093123349586973629283165924691011219150012889643466095264491074604871643629932836468611583938522922675262580097035970521794944982732826629986670398195454847418155247107665731875465364396690703726938478797093421017615354060452132928757420341601727093301987367985663637334613853072522008148068716983536806013052987317117691216460064217773421022355532152082823432203843112848277992738018882315037043080852680913633032245462197300625566923641722908834087424652509828830149552891187885792497805844422110154890369475160562307495043632998641293222910664772765954830436277195892618239433433978017190625467803130121009939950511345506943962088397645052257571402348181974892280679912186853502027506963131169876202295403089937089063193181224779888498814883196794123737592616661864568809112758901170646779776027822905839023088532346406894996004430369538089829850690350551085430751686112097671056319591146043672049960099564824525815661739770331878722878331153290989519179552987763464651066176659948157209926655943511150095525654544189002754074972501167512142959244375106755282782280004671945453977535393288099961034010198271275752640191027860448898903231915969750337165438620406989074356372997627054993405051121745550371194096042531097167268560651080640980544898518175048885017469611401344612264207235507425572899399180075466548267968356451274111981367694970950544122786555856121521601101702563371349395409165025440160019755033887631910497743891152442854596528874628969723831063147978645147129528525715846234499351316940317222014171006741092814436671504151513110274788872574140601284839323162562931178229959750063003245440175994203526674609688790902218153756943584080017036142882005537765258864638938390190887738508247252390913182977840234305779001247672122926279399205533188494996671932497508906294410374620676855361648140597134425567190792889794525429492062733531569356599891273421413448076095162756819952699568779370060674945030115258685373681888403241027607005992228253939973913311869223667154443913612920375071654651918392308581781969824372876039121938804000836867952710979482847363387352496065615433217136869677831737407816596085041807201837222813450791032184823534184892279239715352828837856961666973097983024742501900126842932412864664327510492010358275126232451620100197818531854324613424090985359159770703953988947079490201591043305488006058786659689816005468839928666675355984480062606390425244712462646317065569917140247241804259580821354366216041166621207802397291125291163773569241458330953899560139050409948257034948504355474292982590591444369536307957908266524857169362678230626142735000946271686822413700527625583420323060729930541221681231919951281042669356151056324069172782881383939383639870156563671030560176978759611680823751124692218836141007807002414564305271530577457089733893295416993673455297108716773095966964028739856456242942595744677433676522599393244122297277309885364826528784912477762497788916747647306738621029171422848195951964902146916188182829121906004203600884407477846476206750084821102805152836163726369058413970424161109647798028054660438247061434536470878586706200113185146725727251698656016948124977812545065226246603699166147201715347579379610717792246638697715264892180665407183193672788183266601295376708208465139591143570652431610624615463423749178768398543748431781395998804288039123142398443780458930943638021618309148996336605533785213783546676068329826046035988087504691246350312886220302103905119953027116434913119065826452799608808480799718914263322051991682578323462713076642992308459266358062171330424914994088731059890553169370570170387902482959726952236762509374806952912672840045724761413618360075699135481629477222626737018641146695034978229068200566282962521960451120068469956344866763517380020066544470406383653581970621939264726660901227664536770853418096230794233913727260676850034912307280006166925565899440992936870222890449664084498623721673167500443818024731637561694733097631129494882494018797032264231513635973790335258287000779149005312474488023493486158695414694313107316873658648919309691764560820033650201525778625352119528787287091796679289995339859476314966959764786809200287779853029064765299739474999834956549137617707236808253993265427298803638238660024935860642739731141703780227358105531763934354393377570357906298564691990836071086053525528496373655290221210554737201562367985845820499825114940038933398257059788455055167537377653559641159631597066432518442520130993302174246737907078013335454850455248662927307864200629098091130635985867138723099412707677342263181923122632047071333457249666626447564485221166947641236744411583877131952461906229541503765311454251908442930386022675233716620785192795695784383868130885945726093717222890328914564601469754834894182847880199375407522754318501399164985103444969656560088080122609882973685605158747086574982526542360477140294487332189129096679639279431539139217688920190818945477440801758637244294771506321773862434548760599215105040638255016165536590778276588820312950737044981103781029156613429408129927214227147300933604808723321846097611125339097611964553527278748691526484300982946019010040949220551346320723442205499276359933771450861716930111776118076585543259370184403015442809021801920021685276884065268154049456818862913667856189929833893405698992217965789714366871328991575767700322092928459799342338976362820650620109992125101826681923158144448314990795526117904707277773599795989387164026870205898246472951709464986403712268693553866848592998996927413697813849784003829481854246919813996826408446651463333224691111591249218082690923266919321180708403790876596610876731694626925358127328233588482386999667506750524045971989667896385127008210194016501564719668725054937910108677875365388905653700332860370863113653154016015174379304174181952777795203684147319614837800619995961824984355852316803039249584850693386643464000754750361955581073249431682825889007456494850958614500951043805791848967598333001591660209750026826809182202226474002892328128131499288480310677135061955153445265042429281565167666948045036583575814411911342553613171536707915132198898913022381619808713033177732639940711165449183520022841438508453000740586351529879428314408075608653598833967183498916420282425136577098903971705169891343596020428794896905998335993990192840259453938358888411042210979275389257515110719620307741033506161649079082891902786175450441543667105701006151391050379838443809489358353371289368763238927391181013905957785593483347331534959938601594131864014739867550306254925027367954821158409122860330542259822885894894575743745902331016793389457818420440125142031105668102479781924450365988059190399943503616152686376837801487296703401848733125456394297279393525368176148203180100385605919562712781581643372309361220921058484977615247718953360101153997996525337068634030558139245614311392836873501908866076130255086233703205467085524706184260701749478592760549357939395706910907477100799495134633206647286193824243722099946759214073029778120618605987550413702909289624121107924180974372614217562423305448003640535058212583750651176174701387290487742645918715303297593552041762913587600264419304239145551423523144417262820764557974820052909040250138994215112198431742530933252299338641755183386122118964745153039031249276128619925295547924537307296406284564992048614783130740996650762857257398435303556458470460515844869765126889510383507586628242879519074690764453190518828873697677575132906164552086394900694640527432399432805661899560597120369221626082745926001814289687765260776063721264063479384959920736434280276028619048869687825370226813032475252649109093910423667987005788600794481645994472857918112814028086078068314585459237541969163676226013435268782825184074088724993591062463198483205321623066299179596671415193288635353305845445130085023767025857760545174672182952377394133771442670485557170840789671209099689500620697838893691261581075403083250727757545705117707185201421391273959695076709922905734722457305732398697387844949457669088534013778666546559786890996059385090093610867446883910149133954245652369549411429414572481598646815765951625324776275336468778086521116048795563220191684338990195116588925322373485382812774108273149357882253366077829033344098254927298626415005234674907588806941133036528112874399913380416848247019332551984284991992208528576025749174887579372356573504129050453211383306946155833500981293227232247465174282083858417603203033201726381801387802921001743499820353936873469820376748300485028856601901078758807387853996943128040241099872797217547707368859692830190419075555221486379360977206066160399952812796925881132854343872969583207554946848500168761126315120324799117788471073090696353649185861107171166583517276635289289923005874030864978383962115454997233209704590673403615681338529698175410101259372050640698002011331935826234731678982197361421981454997549756702835889958439421226059659769096707977057725931601778988226136832875192671958071578394009627556762240513079432622427849604464056466439964107985629794236303507407369140301362385269935885168014095449463741043930536941504672588339224812116636700437509458690932392540424587041057370947134716734183838165041388428643980313604717800629176319902509495793355849640377308254355921890641007718678761152513939231050565292673716616046927827892318969666833411250752101649453940866521945103392556288299226916319463607172674247638669378226074707731774556548623771862938443584814745606525436194531716507233906590875635636331783481999278576361020951751280519815476102543846144967709426057548747207969905444573349806637615905877866046997781385096938391643113424699724944207267746748668748020125328652188187511101892667348577121172989414632505334302367412443814180900274329397743902541886911407313890647679786803620014045111819836017657885145933131071494623744952891331910246342525002849361264599347843868806669941396090679345768804080518819409125708156516919664694735072535384658556155409207283539026947435895136001231542353622578459531020982023386927755675809012834586957348615390924395469855291952574098004654211816469510507374783570761187012448914271051866799619520828416221287355173972648780201851630544817472651536637185609911564665675885240698133258828813706918630799720101288157064508375749798759538517009192156524235914859750840504883632073656660468525818851295408578273680586108202026253397570825873927452604048792357126762775565287915630545099585066354222379116091613787155805359215621684545783355934775910754168820736874467921885518143036878495341429358017264911536152644269085789408508728121185204776073293126672224494129969582427729877842776394237009379315972672011968017907545126624081397980674041792552368004999530376546942786189795322929071615416632382823967626400725427596333177912187312460419669813476245011891563467345095313627393201362643813961773152083308965678184003297547554534277857131870590139433040001327303405744073349797771035277006477442851831992935750228734749210929089250135106813520410280578319052942036876795137386188032870430329968219990942874444329679675834752321921226210107556881114329332847707041303494935257836539350870759454044426392773285678955919736975999005099475298138187106395134227609988342960874164614754487218780716501459726925654261483391437230895591203172390973851038670802816007656734422662975871365869327589008335374683140693665796796966539668215197565758307184449753842357397979851348132336162414326213336518137552979732422238536960784107266835545221463260460870571304907203525399519073468091665286014678963062345870524909555141858698191230018044020726513877237733761050221453380167974000985025818327828926594354161316222210871478525743344590880068522560590030179763487987398143217325418224161077717450807995305652076606529668890058265775930918840303671386358495951984401806720437269471125267062789392467679520661801089234984841989229997040630418538974275145624097861581019874585626476920864216851615668124380840330218874657641080634208307230576898443617602630894551880955271604757041207699527704038474542528036360262741081042385780733326713865652381288472275016717130319458648800550484754824936563490479826519416359404518139667027825649847095147647072586935911254679465991704550101330227955471754912633469713166825981140767391312657325084848249897922115646601798332115110734285707513632251985035887590500944959993189873673274058541078351571693648185729803125587537560658387963064567404298442025487621149053333950636536558516174431998327499553923396085754830223075495537431562853989636895967098751005290071760505978434434360495239822276624583776717474358801238142116589954422018253022846648743661599827595498854982003592717475486185880869218335935946578526346372545622895694811180728762759314637549125417746445511515490407906297864594443574486137162483306197831827509389634098396912525669149600482841677470343079971005543893700570129602545259188596159494962754102333979279320643641044206354778920901464419216566438108490833979807262165418255123596464440201264469884109028764149756336128707030483729006563522211523525072186249223734266711967432370471393303034887983562118133620125385537045557294499009702574038230117158913219095416571116335231733411130527555348154275036333655161534129334855743571131515548513166265205379973153869169200992472013110820108783631531516055352569617036053931924328449813595762138158211110557440677790579615514300395977661268375190416439288231515771156319415100191589246786482921525703318424874830545148296807353285153526062476585413336889938019448458008784053588461156640543433129350781669493445876097239425883648951569165790170775687801378184214302909676047841782793387383857921535550289116898047713240127690327553275555780240806789634306061157216182926562843440902883292865393851837957788874366049110476630468358804827524330561392470735898933236584986441904435370361947151578250312912713184130213588622629240487986243136770500983298175014693694442835026997240255399891672436712811890278247523592546741349545096509078897218451476118080738693691818726357648064789536637637770779524995839052155383169021018649765393625210768391053715354101787167735863014964169771913015435047922354655602819212541826688561029895427294162632039165082896016699215043096273059947532524408276640142251504803896827051852182666877052943687954544017388681605582164836504421881463104201844135594283106920782325010993539985365965581374346933142432526532428984154141210651368371791965916511727569893089881317383351334948135074237606480974722489652490372150165966054718513205486928051453398517314729143520932566895848823555986757705767502901448161561065673206237689731870529167667200720806963344166485335335065840818549136815448681369784910209500643814411309741475816511811863285689107673787139002233187374513919614303115757860700098258169702432426482784555905635694215458471788202470554761726557920215964597489301802738515851075282061110074083258137683737729135902686667069625195968771440975015563941978766484741216486631205584793627810480588700865074640998455130650140513271736669947946184865075869245146615187643388713326065148795656202581745756088028488687534580355264221895177157154110806276079000710376479583380445297715195808169549640672249579920389747843069239056651912506167867371338247937325519762482992128858209929686997278314713062426396297859031686321887500497605490716592425566669317678851516323380797715893706938240226197254356203495937943817921197704224963679288248215486585547625538515483998010357468650747556592285485400737257104862625841599532347917335738664031674134561498662538824501407518578638520337392525712160548087931566532709197187915045325858165164792506827371280242808436414255888152892934909227581473202244182843332486843765159667697887344066108867815171591597205386478080607592993997737330738134039071961412680426661572164553979114625000437532019493922312451634610485665508914393766734025518527866608719276703828656244679402470597088860187480590803668710614882684915868662153688630047734474805137290896348782861097014538688787999896836330900934442420251634703273569899894667999457621047829877438410834012526410530467805491187347784701912937124935020313103835358769224240866030722183939145369049858212905301970067675862454498522741112796025912267393632589276494559863969660650729631500986882078724899945515095282589662421151342069464313026094962819730070808065541702753382524637913018305525549850270491319352466105907264737254094693160387237262176945876521249509228841097273732847083018355972392805833770312614755942100920232033663696845782443728532901114813806638726278774504728201540867414130329946503458431719502762413290839734934575129448921760834162359193421478765286078813980050360793471867859407647489521123066460568048964289298252298978072050767170241386592600213656273272218548181083600250969207849975267489116431439251296937183415884649088107611550817702775088726002842408842776847485817318047109959028977051637484511888102887135495543870161890416224999828258028367313352034292465086528303264830817300057428686367524435121258964824933648943544138618853764063906731763403421984769381049815959565784130503185493752308276936214460827801120292545751446806740936114490390392134407510413339262655000157197560341230166116432297945648011954802133491138500902340705129916382148315034794544200061598124121533485078948573710997917634288102628649448294448122396354474585762814160296295701998062599239470193594132798619999363174118187020576379641454636310388310180606840880895842525528081121721963010672070139809507419378170217504162850994531009260235617034941094438314643105272743307692444015188177106637790210061705164107839476311513732034858244296021985087362148891108873063957112047575732323345100935306728138163745934511993808486351154054588808713287165681330631670535030768541163439119446626479456008131140271545462129082146178321948505468771038494751823302317625481897493993032231663970939841796327347730794114322841030688405965313181422621257916798905551526268187534630568224818035450644341861526280571326685851558159848008440122359257989381155135732600468497417164221548410830909717857383014350252064243116544434876139284165603937684665056050044510666629886783322491842803843914344218360751637181962566800560963585583432498178787432587382837354896648640388661488972258742018713452063565412582866740256284606275827179128519975626302120977376389422396560839501262488610728976875391792649418991875322833183470545961297311727358286752813106266373150262613816205710965157865360700552220131271424501705263491902475613907250504206652981400507726757038418948596232443234248945375351077896497353242833375993070683966025874663431562476928092373619435013782379461690023080546840362263196140429997287606396111803790401347659188167247108604994924143687707854846726154104190203930938005861959919924483566557876710761169566910907140141834211746043739778562485486895939826697102332778908411804383223458593104987129867656116292380043103655777962211966674140315004690599421983361907864415073683837721176338267777877884605984319035611674728892264914435276428266599653690966181626332972142305597241784104801500958274666058612132384013808399473598580471827600480669433924963816721064508147165717323215029786928105300507704995315430107122875524348970843412657339710235175949961400297252168325279160519848464172949238421312605279511414053777135030342775305986940387822526231431172998906228560252044368535312589178430195377073800463275865196322399486418247516640671031275791808909493516583886044505444304772746497667339085277841457280455274803295551925042997664169191033792772903394296631328903510713915394488394464111205522946037698195540217231622469524215561791718421688825588704834436022806701939770202222804256689508197759495164849860988647278719129943031523344817794144613872982757065848928848863178025639871425044330837290673428953718361298809773796868771689839620471727524176141870822572619396128499480698499859353214744802705732170786873147498813757330817495382734807296144694250097866275907467429597230329803552360880999116000013664093487707332802339379158867653699751950113471272924233214520780440084925562924927301813889724369702934420585759054021716500207605687501147487084358697816159451966807828010218585524824193931305291496389205261972102784951002885573550193780155998015011243097998521657195439302099752337964748883102139143751712601176052075517084046235367831736848095602094842055231841878764698727297604204586729156856041975183285172663596548499816591572197994678280527635078699584468632922866251475186362153196458838561106920786432361489386076426026866711023614973254519718469185000433171743956028262422281650104860560967742369373504233262955578320709516201573019403496527355635126308363606226946933109091372792158356736162647006136994529394167499468483638076677146771116604005424373617447813371434149653825991806764480155469633190555394063278543507287427201313612715154133691722119153377316145159108821071086539392722267660302664066565267585170998157725198908360765475002740848487719431285316095994846778292565789199913039707662357861198052147883880770208925604488423882936557268091210604006744844899613615059241457755767039866218438186724508854464298425600597426696476906507962030923960642834269226730987766614179437865337001851957622593302573323829379948237566908718589814712830613981188623117503191069418616852810829629331105640373034114444799372629520127760277690595319238965761804717235301770826579310493747824988742711298691055492595623811693420742872240501189515701899939525632257965661774447776102011119654418774942790112282371194760564326461199061393898110839251393556880871788635578716214518462228873574000290106558156449884672990992573309174445008605425650275255546516531687353272081133142950771020024197192103863486011099326872199689138228826191285993720275585805836127313122690880170525241953738447448889751900313963420761542134456114354544048064925707225084257721690920071157233053596913280890268231128104980510815651470742899209811598535205690639275052034563542073465550859956857102586185430768062885408148207898461190466592906157073604192865056628719960598498478227639874265800442187275505948377764556235349020075106938074977094496372305053871342356683541472723610885913489146306879614669647882576991177283256258671413184474536211835131984266381553516398992176169079055463939945205556858025464765987393373361785666570663994412632725793186066670032064315851849612145469090493862539591483172221266153355489569425419764943067674944797254470377580177929609355791339499123060993833247611036447805389169254398992737071628216138586730955503204405317754015970744708927125414084098642188415365696545503236283598855462248707398978245483485536103935919412142178887463526638139929728288809922467909801635582886618411347011723678310385682181577385939707683134734422733502260885604455614618294214523874806743429934611744769779379503670396072100508674851512663828273813150296978968894502154603283648529594084223484344154597145910866686328102377504738133016666676355538227419935492540548412081132758140389167687894292351230787812543529728303019744176048721473887857153804037296471829055582351340888300690183618769014446635645389552987541019118201607581023755230529961556771254610589988740324417716528262295582248641081544293967413911050134589409470268463103315073355365615463196765353861732389966064671972291279937855155492051263271457775757427268600684424227199029209302558547810376165601159160462820119031738168127475241026489580475894250456964848134963189898003137748821511512079499119128759764485291251313039617051202901021156286987846719584991869159913513078316645218484489110661546787517947184267253405511518302113273657063915435575793729369062143557425119551415933536606671142700022956926025996119881595105709931445046077032755629147422503342658654410494225461879212538629942085719847542119611712153210199687443538497039688629387434836493035826460638930206795710644867145952950370393021503446418046182952067560738693950354076070240872237100737397074088265297085379262969183394287519229534882591034217422407106550808995028622076031904439851105368794835635195575860146095877733800066965547787226174906226764544765433145060588327484983298143156901665239471303918951945828581576785146603229527962069538537241364011012543916064580653401848404209429589648167556906748262135390617048483321764121612067281313101765084341123938473993303636273206624927894947232822990619898430462574730312126525203427224774165468944008970226572548420696914404187082754812195605333741867277330095429728281270428077352972810938998663343486714109263932942159335941150747613834423298577488134456980777320496081158911812986720555440494528261414486807965978374368910034694889414870584589556407990800493925178925443270490421228916791599074845628578276563468440259293271296431167840904307501390895703908672538387700898852909829024206338488979265328728481928992292208446566455176458456687427293008881145660014045685397160505357533461099134660126735772461437794373389862561286916487527676063694983679821455427037410093806427483709015413156024972659318872142892868804745304979088718029654818318223304427620980052930325794440378509100575133882082621620209210534550029073955361763535691200274887484431062538811296746095478852532606880569810387681901215665148070878623035200089482200588472948681453668560157296758981531464416713324568297893843893720152370680379332342628183457373265446116970994802505641426505450406431240164394010887652647521077009410269185989115644810949202944539147612362975413217941950867883928105266649046484511235624355397163097191890026072329023319790982854863069142500610613400783878311857501114558598418598448148822333291771841527606782904372606937531909125049739682002318297979408373647501115238599774195053455304116176188020533813117859198352159895412668540233707743671114349011908325215155733118024674147523434975061791880793758677943219396368710580212679043387935075524845527122808671789599803798665994973949903523501387018604002884712412837918143420643600653815661458088162155281115090753239280481348752108641892072720953257980600412242112896902303928862221950440518450089613090788917645994923743182706513919289344474143576014078511127153773747252176091310960685604692094269025719430266935520077270627432214374467200647628836423076750878819848784851029698066549530807090074581578023680848478248271897466610537775143688563128134134754903707642704639509802818728588986995525428454475830480602772044969661435697321774722693054867301034745644756053756361203947805815812383534006645673584257048859352456850220656511490650333757262388534819838184320941541617801588832629771642771110562153497418495388605220706385621762366569015990392686550400636308017588522675934306047690921581508842090778337052156881033246241531463916985977709730331628480871997502795565357065709250874022639251178396005377662639162253459225844556326569871588208358379044390559014265385144336095642117060173572851950116911078001535597302669496983757750392683091079194811304761346133620665927306888136390390749000202323914601876589743387138279206733549848229062399217342740724727057870782333850935599391461290186578894921165031167147283396073238683949212019217389109530342870505275327821355948573518176332477229682422357627309443117148770357424043875325520323335009497943123446877917930070792861152071997787696376587967019489892250433055308948786352081388748084531755563329240882874150634058028849363251149528909719231089718711831448314907590176473766871979822405110064717844744099582188621736822483524157806739797836320216939794557884582945989684998817572140514785771334037383636825405262958338235246741514895630729298117500431307762517405426025518188094111525025500968388688641319973575855952978753316314134916904417774291655134199023996067007421394114659346554320913680893063673730978282796501449957971646548132398115774405739723317272220066060348946714112727107844115917334188073716032142756564524245150033923391559606266369455042721465169205964401306644533916560945516594061494665665326547162421401131754232755450968008012522214183790139279922517009187967140299628196656795698977741141792335670933911439723504235033013449529549281967229502419007225756134481578121709039067441776260955069947755072635249401168891076422099161301657607166787990149164876915450758725378145575491424301906403743597033039661990907710820873641730846077439104545887939503289657586690739768177168098467713336656468886149253457867113713498566168771116883298701640723097037447771334290711040788782499582790844987854131656219720128679553000414756551186453211621594233012667809989623156223838176298916992557992655211254373900183406051581581586637120888145869324200238032864397913283500469678011862057063041836417696430619625555257037513914558990127305513876549761861077071431728807472519061652265420567512398347538862851947353985065118888187838279190279560533666448124942601429027447891531832947661304575617381773055263829508454061025896845335505588518412579244557839974063610471321718518761152040620572203816992578683563282656606250553585458239154403190155252356778956830232400895360932590722626333719541217610476086913288248930997212475906991619855206726985190389763956547180537242375796650991123586015918158086104906073697334232630521088197423080601526141547751192575796422661348973201441024841551375677923270619920121081005870126381453273055196737853224603782354286823339425104291024007382847472200285375308143120764958746312631408310639916025887927236578543302909398911750415636046845074373203158402661944240928947150279347466321999185494586725931243481476537084219162408579137470089396451769672750170120958834933348758394797229732537651241959573119259020310868468307144354551871416674749647234583081070503784071454336940878674940944868885112003360917055254280182560862818027342255583850835149305263412208048862459419131712046798792401346300005003367431170034464543191035304709244192040254969094325049485029454453792649685640114186899075486086683948849047374212314002026778665294139625589700756522597403401193044954827164363889259427956395997811437839658602301293124481622588747868627725049349010677134989092769814501535543875886083774664464860177936923615281618766641868437697917065062128805317341215930843774268864132860781562925214631514535589669273698235561128946981557378724345567967101770298112316368910136340794058035494482153409364570175386315038493821744853554783233955878337672102146455279497605046690115087185848776998661230022331497127364602624711610692271712890575480463942332632157149694658355042409663661563030083083946016402632440864464909463734879100954064237159674565168481321818256153951521471189162289390236721542946832698159682184937963681071984371379714963025007250455652475386670615851980312495011321802285161042628491598892174393255845843706750051688955167541590795097398279717516573213426999317904495826000230094165280405563402906625661938617249274253896265568393712366299444249433457602819113763776427188251271512540656527258840251263559331902577265296151844465669122318359270114488734636457066152361783590468889147718974848281021631322355519064437132394951841877662939300398013662817281269564572505120574940984597065165422956192511769911764225908571537999957464661138412397385148084031630665212961881171043081324753903961081171739944722039130849972277280655579829386776720390563300600253056229675302253165163224332317219698456249110409216334041874535624522862370564098991928677263784289522631523376514806576378158077753108053894319314217186904199412121246447142388155192511660430161698925094415724788854325950664913534467077372581594735891653476481531929471670029769486722206679615897828035333349444962906141913588208416007849004927800627893853278154875828700450544534721006547757288707886958479999169858950723519913627931917034050323404104066801554042362433135359681223900994968205002592944264657038164430261392177317554044285281069406101452112161641014229030572902425251749924916115256087851060150060988234722123358794203827247161615782274073741046985088773233710689020461468622298023952467131069544762292526648347579425655146756208614006833079751525946804451615611049624404984533151231003433449250002757685989595608883668648533204139434094203562425437307860635387237784181499933202410713910859657288072623880276596547786780689813273128704468399211668350188857521230692342616947132980308130400886077441803072262701971422602364380432232741728798898499220726780813891315400870427594421890153172375384879150085683465071228241038824025190327738204204012309050157080307502014143039458490097276171740939279218897237403347511573542533591772814757344825007385872822252305144217876965636893189927945541264287795952500836605193140521020114074881510209408863115591962120786047151036130974773634361058620326231121354625160886386106897754293738264442684125896352519973337398541265025346085863982560046248378897854719506860065894351011584005048344476632389959910665707618507657122121436736368176549338488726544784133456129366469536635481609432438308743499185186349375537750821639428610555289532928330801246177354856748259834800510723638369768940687023930202100829510834037983096562098871781569802360577229041087444608215294349907016803506567432666774167641597279866920389268562977636527837480631659836932293463401869181532616313650072055216141267428265375170627254029285796331816950362603023060906609106881463195828811105428833024733264932678409747643000555647725543950047414661851480684296740502514417197099656653290860303219732033473868911590600272892274913375823441310411149765473563733945197387767643278871647878932941289254043797984191063248860005044782100385088530391376668839556008677031612562718350883420430687476331604477387942387869251574479908214966713588055011375430389884140788572035036090006514323511488052009851398572510356045382258122537097138222320480173930612382331058532715182014999514534972316595080877696366268697686167838209928589321118820005466912744368228974277273379665539872252505754840965561729264899647470575163493464092822497924381033950384565027720096380587723483916572967521328821603966344421161828412202803640439257864785572188283284309624597107564754117035353578563886384073954350013329423623215145739893170905991893791961675539998371631942247997902313379932606369611590716932038318853785790045525652129946030059568053519865785572205973875918400303651957323260807049484295971284438503247685097821954599096715532647722830719405064599974532259376430032916961880324756961828237093037165879049607106266904398480780323133443315442407971123334717594083686405069399577758423308212565879367449694192171367169629618965704311486795272676761549563037289685350410558338767816813114815368564350395878460688408209379126562898625800275937368031983792143002875844152774659600445718267994615185312967496971028556619442711996216878863642354530292691071605826999199156211918575758761180791579301893235469519188868504222467417893034356943539257852769330202178894180557792880663650904980132552623422508674117032475764638560926569518329819752498151711074522923584147655913983238420469247300426580675031708966166678240716741804973272314691565869060514604456253293790333829215074368014460931306226472878176045930388895006104889311685987262048651416268938571013525279068515999473903390600483581169809771763656073805620772708783821048797060763246092577400850265085340302222355809279202963911720637628014880648671136613970056865533205643508906679339973983545750981570124093526110713399198722580630898457725093220352536245772124385692292842025448684762382450004699630100500104426502880501980421429548088377655704636448459263703500187890246614554305682736048303683042034113837345370081350492733253367945084517193128177504553921691109673414613741729827150944450585168749785204962488488259630040781068637454616394213960696575708017135562122814877552639370505127839264282581745993212191542402516568135809202084093901390276666165857046952641280835830974258110451309610964200705346647815809919340285664831235742859010118974284442916488878068825436119400031427962551622695268294338520818145787554718189801804965483990018162112274851633209279001774025780984633122052642407167936393984918669527765285794625014284152515270141090390905707987693811391095387434980045326114862652528093946617095762994839647506564752305854203177950827109876141873755849914134214500462106442763990490621100460799693798725751917726038888260278430007983580776351452167610793975911782930847822386663489103785397958543185993730087443290184515109493477009958691122066122438805635078877821762394587804241881593646280452006160742480746778246606290751125698493856739995850914952472475512337986029743300078954451116850160739717371266946940709824625820414828046340387843112462414183628699409434614594360940779654054896751546657340512234192742727354996553485619869897669057200222886294657922077089762996908110097259423321672095779561241651426574732098869343779113451266813912621733830967289745738923442875101242628615880749591671977925766527089306023121905209229170361019088088217737223388397140644095110534719907459960684944392627635665945733120281292369738867141370861578806803223236778762851019592468393576142369203511184574716800034017809736098279366363641210922197961290869475013867475095884317030149278409694513713778816081411868584611509921447192952980325969593888235257576577161664214655873669854106279811666158740308310495358384271606220754572123213340376239710386613564239977079314572030841033528044305758777280917074485619406367423528414706303212925397399453614775828215236447670205327459406064008234552418128095823192710337066899158978144636768001826919915357483695076040184005113693863146967867453176567246822674677676088216105881571704037834712818861389287164905933713279043056783758160291108061105505980569894507686985939942069229315260171038161239377802944111421134263757572427660609406461497679071858429854549340637396561634657283276532752535153026884386054865997413120934932026953873198412964653050264929887093464924206587828358084902270533183711912197731459722975602619311642573363397244388480518065353131188637929059357003076679629671825479475300333606599336458983916848961135963272703600240453294944281792660765322327296245853842568220523633867883713478623433659123625866454929834130120924541957619997935171828226079580457120741184749031374929318619777168564826725586015327181420305897762245660493219464489953570782719820908166416959606024367770966692395858718601066967818970603011144156925543488472092463221057427123538179009193138952397796488049517188187739709193368384293874521880052099264589083541525571672129113765143568036968640597254999938713430401162883466829754886213569574082419569099077979956589131307662067861396667890633610363869010458625346016227542263956232356398774563912309776969770340173639658791899692918888754169844420137014172459968561176926930233260421404911097518631901664242524712688695472891118825467533226677178590689165755106668977019527174560131265341638284114131230027144895248217692983061947333133551319518574811541831484032624120867822058442405580075257092284835345662100695210824933585702167628616915489462661745127564445152667853240294008147476771659024522057366720927812230453180701810250834849671417865723486172624768578971390767488070058209899005225607755258308458587986445471155389925653645262919486147169650429264829281471228893821958951482736340930304164728846187473014016443678734077822319963999022793811914627978144212886944226295225322500908104769322546245148208345332705552972349886448453304633553350060957725907069445616435774956928790101811209301417607113275638667945633521901760454170494404761203316125905861787844420966346827313040681813967848712896990117929499928065905942499819096123935758469874312799759464498253582435216881963248733391623354556083854527533338057211862130064202922762047710124650103593176407751187787666741369389689259640726415390412196294648397546833994158277266022503049053312754869157207649922411030683603579761444836520106714433662216049170177960549084075559802475036137553972740457707141336831398969609643092766482903095257645128116264434769712755118494124960571263460105126841602280161422436352180442499764937683046782799974424759670231669642869525923385767615777853385850515232661257280969253967045084411862793496425681296096106780643521930042060921358730447410929329129909388206049100108660019323596249811563078436799134895682898396039635997520216878057773353794681309698530555839255336838345879326913957347534110184407936432595643820650431032882741842091539650000600845078415645173166147938179238958650656007608038427302205082895076235546499770650364473901009869683239577434932803926628724068577325808760396761867723139117614723820894309500352695328302073740646823073826240825088313959917725629342482805023434394372384763629138309206561818568373822945418167198580219907329327500489574536191892483771865227197096078273091742334882444719655066672952707591656769874481333755509581596213949195190679313722103314079439586013702169632313463843520721519865997475075528040099886488020950381949370723327808095753997783831873830981546747807654127942434228446475696891062276858467594769122411539463180705809716734644113906259976028944886411344284470380575924565962295361361790106678160018600601966089852490678862784999374373784435845919466348099211286569098260718830111629061288487992469155881651246597016933762898184453427441242285376510123276541710462813502959653308784342636198503705057539146263841488333629441100640629259658024435755186800356425980357077995272223111521740407276485949985117696694644494745895553031095363458057676159658857626647286825240238601993129508757776555994379613081469142637417184065994470011154773664629838875094905618577407213568994383655063726743667768837649867468063039788058396531624545242085797875026824170828331698610361047203729838431055235901339182978167773106334020310586835872092267972273469723145606386155148940235460555126508873107207854423817152272936233291888266083640042472649310566682517656486876148447140651150214216980302988007412122703100740098534397980339807630423388007306564687404613903258486860509071173672760802714555850029538147340391030914410549645744971111268478118954833822717371960409369087353088422231677373673742998125087082710882817905895437783342255540061458657628058299223999070347729592224917136048620871639627158150207319368214726758985584436052996745371240747470824364169185459955318174155131995456330832094441653982980551047934990746343153221162120282757311870250381982992117041816346423521671388944683731368091052688468064593782875262986189034017075399124348361341868047890010966191915895306300772824419703519140843612295686432131967344157819293518405624413236316970254797171999715689565151263841400915790931862622080645756030223386842354095096960487472845708611917217374740082664724676542457677730867910939484828767000760048092560134663582643554254081320000658388648221790270771658600978978964378279056255067155973340726094836047855964826052122819317295233351164965534261030901787441310981334937789444379470575936348160126104091380483741085455855373188919756612979044722131652022329427929482592531748037118371683151458968163428309184131962691309143883917754597934763554828318740955280381220973185860868102882686757689285003270339101690315215679255683136187041201887081963274912250328842476786408813958721935011997778355668800091089891890987011625923324868203922297146276554884739588784259727355630323154138234592487148196896545884118912512117468253858683229081734461058099689406064065676358936172453435020976846615256957450892661602312175015283271625515332223971436128211829838318783088323738686496935001951913215863367452230389169246274939968732441173992663300030766381215873328357016454929527929899092029783494017293566996600567985350555364451210749909849889619127233763716540631576441311542865145226119360159578185217034158143239495576192593899758290816629940977972104884428424713739023670158092628568092961923549584964106718445149571042438122745563075650123358878621806785056203399289793076966060908269676863078227863966090572840464595087590947900838754355471631027086506839193675258041546959332670083319772849130052647925666002376488465835652005512583447663339079851574537781750152215461908024407433624733487609677534708871735378322544515230751339986079956742219852039477994233496980200337198295065198913922530630536844890842828098322656555973362090734788792152149208649331354991390932780468669233761013593198708425598041471457393680462791438183507847552099713996509527754651668955524485260951081433963268876675278830889309765834943087172533900299348553763435377995216868104160806927631005414955442777560611708745629687837364288057580913901124922252261835406554138750849141436610952274484589771135871937807358504289534789293909752428833596856549191140791846177408023133535425735951900924388862359114630560875961274676715954136242692252773309712453048303070449781103438196315283670153569692856852256513843857652829080884501772584063638638076082512906484545017610296837044724980329364769679618641432238586816514195951945793537874528972315414408294985794932460652114605778196706025353751624885203807126001719561098810689431908289977099087014046706738237708628648382872514206716513839669905681651960189610319110029827498918553781807163055908850784531623752010371419498375413141276499048662535091502891065243522002784183679145821914718262102124538665927071533008814383131397061977901787391412949161984966210005976348216024999164467867004743184226264053883688408968646785306359583680209584128080106978048652803634374554115896859258926648008849221330332692025263870623097442845684375784778693566970333817751904494063634894803224916351339207200975126404371751693799068585519811356335324891161210581174014005094287604437016786422899801675265817562082833550876107374859326058358688537317939513696651493790747280655727669941370249796678135099844781094711896999879449201531766171460884098815896336755306936637516905816629499381785807131278260821285639700636663678782997178141509944012947346739326112981793018904596255548295451650280757786788575498645739446746816244269009510013349000390463829472952945240109704528241111342234013151036360065927258801150582941171873722637207109929939499268401628881896212274700793876644588991954950563189380305609725745984111926751183381614903257730734807380585561428549899968660094407464962910509920975679058613977654758695587712347026641096811022587188165214955349361271926487328914621269421085244002933493086532343577615401058254670520173221427280054965174997620471346414873671068047552525752708629833267310899446915667931555640002061673215544919085710163867513933530938149085342668760399578443668791970021976618290277914860225478521158852540531693488143801306057823404373160221123351071020557445409856739027744612538132732790450014105975582174715861028481810897929194524623885024837664452248786672953489654638363957708942286316157188930524300743904911991778135659979916254141206248638991513002818308920957390049275583597730492944333680006431454214507775674808640075817298575360652814517625833268120038671533866249925366688434350503654535512978216729506513955753701658697761641485850944277797238520095133119532096250145685291195226136375004020153719331495740150510995143775956416718383595181527262519489224060207320985078347431523436717172639666781752936923124826852605614810643254274575420126421045557421554942485951360881633857893259578031454522927287873931429660175909002342150815489140999999103356914960303030873105704496570707590683263068100362584336735762901220743798172340677647637433324579333265822102917422842245996395155648996143875010287798401135927126395050577026195732276713525033232499798159132205203934886972185522278742033508763495714721582568250848287438632695375885626957204730789256436629114593709457818244588348476334897071129418542517955516265980649211614444978406490398305312046915971907877014197634406456974063440918569310309607222048787934421671210465564924617766503693029534790253790456463647189445106303381825066324747299993522276147288690463110052510089167685180942087365605831830599951292225916249931974233089756769486535569028807429896000423127037810931134881733467560730344829672713875515125383149105767420909296943502092292567363687025339076634598830324096140269701777845937294272465811895874300751329037100010210527523983206132601224342610540208332259470007738062084034085621101606928596640707911250225673806031870899704672291665568258630941726275770447906405147542108427032241004001523476845067505089411076706002125472425323437583107261480450939270269920761506976545675636910720411112449391967829031219969541309480748962570817442867848946313044358588607619666580322829367539040480340267100766647074481782213682584852830406048758748886111675544977944469948388130310265224702937028357084799252352747183092096074442397590831058287278025086627418267725731065864718366273622082636452783822584554600385570942542042000571410494877471096641399646388428863506685512732440408409082300919455129674797308780471384594582659887732837361070905031162851468813717569911916320718291495728273632473757094447057157975865624283022363214235044613158007438820211268638372046763865434496137487351335692796260208169022383824763513436107824298425798024432127742421292385080572897304076477944851596511858191907243710033373471764082961062209990399081909672564384509170353681673151042344688444858589368283603173132954391271443898307213420998738630506886961260556669092866475172347638070848522657277140962514434367197559925399705218637687193381414152349948539817305422409377473859289532332964278270536958872731353964371970829806044580780525020614693445579740338173208223686533703054196615710998528215419583310800350117351979961270181217736360321671992481054258596494425632053415605287563283807885297852340876623499252320935573999612468266590403791122086040093382450542274385123487841396895946473896227958962853517111155217534162074601997310540045517544257892757380045734113531246938812038160298459623639894420792702216799760270968106447330111150411332364222295485052348908813249248820655933455199544913647589434273408047649259971586009974961066958597504517976073410695210522855871787513912224478714108558593822679675934208295240020938153720826693522154747924495205247741718845730424946462489723259289936191789245530254234033346903351764668156691719078355435809135079187726077551755093957189184144439789859000156795277445863267801162767729332688141951308001657334646505530277307058015980236782449839962515364410439981553958422520092436527190293904973566257037466136771575440415381781253228665907890367225126975395234470081094317475285277609266898800972493874380715610554241063750812573402549688433424142193296920936808451436795221719943616443860327084482831319630190507816956006103418435851410341926191685793880859550252736592266056850538439276460956197472303816168300517575753967901973256337670838487758726053734485915745660597067579142202917788810101149983320430149822769358131578990091190531022748306897909624785256492578990176665222503282858332715075378470552694033489021156889967536993514525191464542498993809961253535719542859052499852566251256434631334649622004819459477660155983981438639836138337597430863140757456205027121809626941722244885316117709843052435039682123052107026723777608428029284326687807748039619533563374167496574148920696493797684282225746972969787118856338598194202661578076278015103128022337553807629800242302840091736476362006391997081097286980071327507413540819751375984870638196563428021992780241675849155391840515158172855622466725434287354934523201781967849008185902957207621178694437678500826763283025633562880228432403589502329355884131498587817835734876590905049087960071939626032613604323971721780890142910697429625441258700912280923273796324647638713074091045260948984550849381882708082774301176690566379450075216559497871438149243826786956891253145244137772215623033726112455502148534031371502832563236232442668240136245440505911995156691199238108550770554352509798469827226959669289586882211755055148591539792110548140944194477284081991723304716592011709308644425831737956938377880880387622126203259726483072345783985458089112885269072931317735615172698098133997544613389672561091473081214554302240164660994272028086176719054054146257895487673341933240273241453613575549206398724184076194489695847849600917135609137440755631678120390811729865894061195568280256801848743722042613416781793306071959971187862222137949239492440938037043813299234539214719255422740497136556597729184501121972873995549299253469476631773933090503984473501652718852223919506831803795936796387920685279628067375115479588868001626434732473571602873019687399727060834762529765200327491294573267402823157834588305362244155010401651410329761873338039338288244115833779035273708221675580198980507894278399609787673165051432177224402846869811325431363019697154164110278386368940030191444938699655837638388535949526543660621061943383122780234410979131676336179106070149880877465662021416228445698161450495699945154046821024119467628008768278196625365341340645855567697790480143505773668038504933380767412400928613484653445089007507801614791791227073130386858951345914130061488518235119899252571124453662917551398518543982773839021028679652179906985245242391764295806748951919848661655135815789699535266330430283998210373679318805593473679643171981429852792196297471777713468867390498200108020285629644163594116408402611907491962723590564750609911764539341921647439617960835543033608632396483178664560984477381420181727200964199781177713327508594578150865062085503219873588488236468298953880535596800129326283760157229459299241921154472204809420603513100401411988703569907267816258718304158692563081923737311576815389559078008921574788099012282596600012261522494779711950067649438056183318561775838403166039525946467408881898379671210330449716304895689095590405498618132444563267471135029924569515487866725104075778146615975984989184073190115487579841946412276456231473271200172452713500988118862173013971747612009064080733655364913437678940004451864544915632281742671279587485845814731885578437441537644187361750359423917674171750404257918269090823033670357168630006762230086137955577247125305766580756570598508579869876295022267054307911510679687688286223450004477261386571665077172741433697268578387026311586685069606605397197417769829705003113339756122066514993343944532351420266968562242178748578497286730685826009355263502069193593810433742900880766114463154991084979664478377843991881811917632758224765408984271448905638409423900012390846085326650651400681091295857109218939827829926069456613393108753292815087685315662812671945997134188080787900303803775374227947706044246506308112918302610516262078510622396806425411474882479266880942161735345806916854305905235980192264023290012816663466660690146722634253669390000184346955409298575761642211560985228546939342405968794866083524002730100826833852448965643621280326685747799153845696025261436511877620756916247576699343260299724432988026433252971231948743084913323336350908716746911977279173141300095877668428536646832869582661011357381191710358519625173729351079337829183058026682787442195551603908693048881985263996005434582838423796817059857957882670218776672406183877682903278811496722714884134591577009730648455614215548663557724291665704150847201349274121193683630019708357421847753435335890584216526470298564761061329010584305080023690973332109878356315038508597525725736583477450105512036937840379120832784157285460786577800236393219332524015234688186732910920604321619612516032828506918296312377969561353980203050568780566766014664863037544699373800523220169166408703824522418206395637837092706302347284616433418751767852400929015051252317107769787763445061524679777069563521732240310376212425567832376844215059442692134785056373456736234705890171315740951911461642761068504456855781780106077137539785786730729058669863442379947917128332096339543273304975029749216240485168691842960039451156985149447186373747679576258527785716799256480104267916547803883021624577215482096902562203736403922794670101093186006558403175161771675753844043757997670770000566246061528533959124928437349797676364414057532223493998726611499310821022365557751258177267398937424066604708580607725385429983730790145611262639668165871962216552690601027843650795651963194660974458939971556191647180983076039939390027258807513920311402059123010897167994590941368986458990605438802234086417201859854213450064797096261224676731129459496984747553457351376488734599227788303873724051778582018571339403771877442549346574168623109820960858076933054344921567709476258970400236395423528217122375567179592348988666620830755978603694662885355053696311758100756044828822127851155022434187037781758920202196750889098804900716789364485506401625541945980760671206800631949195623951313396681497033101656230614306188600753344805837429144920947912385643912186207312203373190410395246271623472383762009753648688901655560920718875044004456214451920882878671371490216036371870985511704340420513526995941326723061321934464222361209785976803535992434027930144548912328788553323234416721444903316154233030727949236923683205802678931976249647948730782038026357083518287337205104064129794264791940656674547036218091098086789606008836102392269458532057975289588441506917281034154955978700193516762393171324511313468287434997216342588782825585320374313786941223202026627855806199023217435753358003089639470296908141243717930500273316287594381390128534598162883676106344646574556008935615167978248868479864493591800331157748547834687078767915000578693588725077285054675757250765712866948960311797134601398704193107118119812378384678688777756728032262897335571869570554451883494533374118561051593536837344597101021537593380437690892342861972898126390256166707812207040872508052227610035146820688963182531150104891419117335924849612027416862893841665818133941098575182447522304675384750977540005197142499333637754628703068230289557647355459606157826540500143074459195906560525434526030227958373038642428717778529430133193520130106943836119631141756797026289688337261153515689430953206596676445347849534197009324897102593186057783729552496406081167789414108421497202625719119811460331702367285429137219235124763624317827771586886549507039130338836909369518739998374743794638349335336989542962203326039948159810278640097694770074093641313806923478629059643859143918944873163964473968847865034189862953031093463965616892858928070495183292940780113915979168005128632545668826103517571761684695372280667602964291128941374018903955262956704252180944489555258512886792415244665490787059807510218829425215336021374576709294093577789098516015815651310733346803022530407657770457333519280399481874529628338442207811823795884611925068929295851963537401699899486979828037014514299968229105137414941813756791409857300976497459962942141733197496450209081942298878635141357292632479927226095025946761567594277103536766162704215203322730266305828810214744539704036723192968036658287003747201105919278166330635634046287148800778896700938879028442360779154682968441735739320679070602916719206016697375133114731093556072073508944911604096135201981522436801011891372108274332247020378643451565370561285061726696792911680514580510790406394195196634821538850678947710701703813631872129374231611796238921751355536380155539300436022193512196707273812221678104380965466813385233858612484221496490278729518910296505300534514719212599121418731517083577454225136359712542330517574270165756551275788320569655443529086366228751572298431792031156555884226063527146651976419814397458418614063620444670222201464278146479419105573875551486297253583186236747373745337663972268397873167433062532727195652363667021765506269493126164342739925479019222169793568218737473974806965849749008965524757650995014461139476943055695229038964296585085308214459236676916895694594268862118048449629873421203681048474280523821831811741502259823579865143721831807576013026596504110329479085700967281234144144452250817658970953897710587441781114073673871658870886395936518192167822658766832496162727966484075369484325919611766551763140068664288309255054545748476987073311579710583480285240345943957946247318858645323458171982255246873985572735091789191691384369467580534628656404003536611377684636727098413912504791330475769712736598470853793891897982433333020568076572429068838607064948393193849399785784341449384447772352088576149625692497786210599338880702016331617649233653645468200371257946066650687460038170782257658351973337925417496898229578058527648678337774274235477936862379138493507692526036337300452322041204918407514408934056971860279323968226140874086662475644899408224559300751971250671211494839100248427885934909027360549830763794531583127051797980898171443932153950729898556592957706354988521380313392443178689859040515537436778143384437909184067606234501300580470849474189862464035838336425427344397977177898156501067394418363728438451442144786286815322858491026741713996483382046469771277977259790133992828974259257310689949876400889386587782435964887361449822854757066866083020984523582026835685455047607053910412009835493959684634004514630877406203736318877449768628118564046924451586310080727447486225714365783662479755061707033134644843747250998906553273763505283998697368535338336307000926429511798304118794426398227105925126304807682039165304587523299191644491073682853618211786031047641581273656937170894022194489322122331829946646489727830887648650188257075258026347020220401844446407115633317632380584051550346139044275878051750536690346734536778845985792918947138437047660947596862393807775146431737214454540502046235193496610614356133456449162379611235513361232188599653177187854792834710381418599373707940220460028201334319292945538203086654097041426253524864748966549631327304232782889435517625857192689431414426848293282654640344107269021990236751357122975817747108533787098124492974433692497802441026475793632000661279870794561498695909645345574522094160727802328160263581790974847112865809252807984848248536951549660269792189909845532141268697942812523046379769739502496052362005432735243320660607356421256989959719897229555978350695083355164020738146501891254892246804508005438675707340467654931782341112763884587456336596545233693232100231245278338332337013901109212797943560642403963693977311497506615089717770353579861786366179062572329658362671680408129597988364222055436184009860774014201417564395198817607505345215888630053522733180084225763451912720769545771540287411446171739925997384553916162651602088614973175211772569662333161786813277953724077903862531200069248682389664846586504261688336700381333972978198699995695246163746934892917575872941461952796431785196864508455937357523599729443615004855564382261332128598539219593458872590585081725522230756913873894981692600577317930196473835502154484652340473257382952642708727584696984781583885807517201798153614855720994417906396406818593007205976056920555023717171118511926473163596124810927172827828774613827459347044127391943633556618364005966489418897135275397098179266426225567159940021552539079355696722689547399026077455151841028884863029895645561086072359274458292171745587747759089792131179553506742388398250564675434622536473296245953949480929973595352562594864594750956793468483340876261602865020606535755340132248606108840590056602037690535703060199451108143395825847693673645667158718487656969048795690830585755636502042822053793295857695058481185848835542595325985622727515177706371576554826230450541699080732883161413632261401379599364742764753170303608524476591741804713565469327758763114556336406045032411059789005654508203456043839148475844189074519830531362855866951877591108211914598790657367980910226611540251515980451834856745145444668338171534375748883181808877640072828938136365131254301766700020984884606346046249309601801961861493188555498910077330668022830020400897204308634337511269431759753485279986538363933741574510048210536538354338068366088613679067383467940966951019580341273297441704681391671696788500224375915338412307503935838577871528032030489656285202850323768379705125215565224295688130069829976021138915984693392049962648573008325580143458027490084314100748614762934690469824942898619162825682435020898569011633628337277715254368085187240798713457873275144606309758380857438764478629831357434787612281433797415463413989532457665904319057633980819247557389970751013070710832213102523962520430478154728298370581018453840487078585136030198325960833264215405251938076332204713386456909129827695479626531004258369386370655285543484580543326846511344334986663671589444748522162816929345494596195527559449400116406976365760183245054418761111919921195726405928723780884286610474918458989274208911284339217695334288467034447962324120020205273413858757197423766543125962318595512887415310618452468954916083020416354958699583235956669884722396244344730377247306237804874979944322763743459153567250072838398387622584053687073553307511508199202784477322912706930882434564459767944501217020202878460569462623039732058993632184957974425714132607373095915322075860420977692100291664431560610029093804294668478773099950735237344893236336652082667781415298741926110764117466307243040204645091520575975993019845153602450385371382259753468716216756296733902646208489870059303413261756184668484456281569879907666635194733223836554895158313945364692424247188579992706417828249193131192378532758539451591167126138708288958527215182284482571993728657664162689535855721437076347650069629899826635789890534202708528758677485381197111388885660858791664085200602661244031966811378102095235623495381992802110397836945991018224692820483104998396928896713852869864345107595859200015102768750957099462856989931651875050667336002175692494157024481471435084795036436314308553871172951989411864660862711386694778048636551119715037346345770253587657980508292187228998458918099424608136145508847865170265545392639566303698286733632591887554807951509102056680745287235946732738851557507181305602620685569040811745004594624015508232469883651709996214471568436180569596072481304324974082132712344041811706187140575447602722309579772978644533484006203232623136358102289675006705015470279704617181295483305063245983862022539277870820520090127294767409856380842899968118441861212211624571597498776722409085324187672836609684664351168699722041115569411538666990848019036599309558125416938663081538722367348378534949779691592748041985298660404658645102245891859757432118016352738479744012718685108881317848246452739550772125151731934324782866176734689850062414117919463401159161626253159469825856532325384909452522060335281480827662766991785821705063455022360617906322080571814541247389690102604898249793190049814218503371715507281292371081130151138702183943381646577978103354043055994090832290410983745252477492672953305497461182990721933422960393415226842907667374721987419613438245746290325704724988313674365025293290023881869546796667309538509629147898620752101432962921945448608860127324127392673250265701245439084782998476430883153123758462800034881423045187646104097586377096438376224783531483968006759778489008476250774416745219039690542409719684802717383623896106876697989973629725395904245417348880342789984338219097870467992687843200205916390369558703852572985425919054055235655550978814306325572094123955843373837052186770866319192543739512479312481734903244599827373400951204596362425982464952840947627079071438496206661880824191884795087698005856694205562546242622051510245047331688962033390256902786663146441435747801357770077618001972123863712142009877322799899235539778922692694017069615410145523089811607167582486126476296565751406802175419700319940567901642125597250909303081936275288741653104055209260180978070622100966419381014894681882341338961876941280337728016142563171627567592713278923319401345867180317558196043784555678419271632334654120544866722007077746507585926483665247438529662782696141554471871005935807382077423593066092306094693583400858636484161779199130246036309354235819119141104895458942109546642583637143481733600783102774292745680023145121489008986121954362031672490975658085479521167394531474642241510132078381937820109843634809020274104123840720760961368266811061078051282482727190976817890619961060099031758286506505089087485549475706332815700806375909106975830386172272633039797688624219850361493778802222455852766698503819619519681704796433368233796369026585348441020784672124157838706673766865200371763254772173621542349782933873281607152776743829070409662428531133213770680289455291268217031366528595101217221728605002213184094812015725474751280688566436831573368416471891660159580159164825290260184112046997685876983226613782132090535891186462243719313055122869832435069109166673253775278957248429993170357081382698604258896907206743816024473057701471655330124777527469750189206843935104793481128617386640007949375234752325978303472327673321671954313260908878688683118298145328205090972608702907760779667895619774251948416416721698840234627358467662514091817803420738860240207192519912149802861852116093400899753287266126603706561971210054538740517904374115592355024834644275240618975032801447332490561679871914169844030395403241075426415562794723150925396685039317644526104096763914978988230046470094699186326392981061972662303630048214801994066066168722521902807932170565329121782565747247881457057191985143248644598672711336938347903595118308201565859021706400887723120459243704817521567805438269573221810515332310252874940446998086186123135728255424867210932281458424206040052915549183146690075819613709284006706261377836712896438618351929311659819185658113876387981476927747651151107664618549938549678325080610588306652835996583409768576266451708733880015166585050522122677283540741585145311015854885496085321225726515349352048917897697248197092995242290548193299963964536744150396621698309760525705563875132981663856345487117579782797849624917158072524690580338597727355926754454025534634060885927175498257373429185981926617892588478799398099912373790987209816200104619495426477311098864755191877948435003814231734733793500826180026331170023965136621380556078447591413556553484281397593327630957185881901468754569306849839320261337620361280962162038443754340123254007197549311161097362815285523433270256675290440110872611331390822604332333433197397917059979325358405341121416201751167820829840324971722942342667912521152638281639234230938691309297324204689447386798904234423614160490779172257325703017554648010310738596154012724241965029976552357024939350343524791250240151636157611317554892919674628921135601069230813098662039747168746386482774461675058972894087124161447448438490760174953566031757891578865749631762473315205697540752709016389323483486832448956730687212503542841146112657260494075784999299170853113483373580876921286201872739656305185062777203624508362867804049718250645620762111351250890289285915222893834825231874984934583102440528359750362869051413346630334904525159789481814692635966601158481414966934397940448127481005245095376993432462252986494953507587161691906165100155224726792575808008586798346066847850262329653087308295286414809803023552067190081035274783569657238614795167481258060967834823503231293179763347261036779933995830173083040494247299032863785189073515807120917610864279083672598576722258992603061833097007688830428333299576950758415717038812226170504944082560188854885091560731896086367156734471828613435455782644640844161244133288686492012446866320047479075589834588871911371752651675918457873336486598348633505479267486226992049538368543982545582829425771271970803487143150827244687967935932672512278163668988711969373819976233596410995341274764766288082386145053518079170290835509029520969358891576671007700979187750082686379388535558673252686932978747537930800545808723348137631774599846184320695678562816010779779298766937368460266847995200454658285786483375928942134547643179278604147261226118200417872058776393473639025386743286200018844566766289248337774756147182599051400658101884266992625641513865637241592011032161844965828329075390459501929711095177005439684286541164934870870753433282805883238767057520304337933027963029539036308108718205706415796529319914759865619158062265796864185855423668166406140798451941861419774340066633850781306483234268016369218140810429673801451769379766611594506368800095338124283216783240366828772626676910864243391050383389837543205107435383146710478822388019821765441606963907841800310192685367945961865415347365020337754509064296316798754886349099371646334462704664043944677206831098415409377662105272957257544752941677663596793822960921438262053703344952161590027357151255159613450488369721177252865955046224858238743486321198044927842920812181566519421009618232537210571965634987922907471901558281663848858668038889160774151896426330793862615586328275924509896587932256525261456670612962376269634036452410307517044853783725822556803082543622131076333971830991491090130031150048001651321517381617494956245534229821654880504607318812324172718408025911724682426943714041971944340186101198171265194011927714656136456987533764811730120538291819110412683988050331740861567794784237584727400081220831815024947180337726499682044050548978379665193743207735191449272640925462780565091512232215566574065372297509386436771991627189597047319935573070634934956661174731312539525825950045814195955069047069296710730025079782058940715930612171445069305212160167358129511550305663333766476076949888499794988328784651209728031296634437779014611686415067579190323190595130169046936435157172039750246819013207613578281427229810100147960871014182005215747465539093701377552292259561459810141425867325966220025312819224660936766812490762871956388509692197468432712316139826862048656458565809809747372644271259989654686229147288157944726380294622226929547928031180550321530854407526085642434038820935609483690324119329605885040451817126824477667979458994825187820466079314107244516401452718786503966394788736380559998304106692688807895082746105093439412558880453151565950589475372404829599852463511571603674944011057615766533286205921916700998175323390223482049795075705579967098375173183382990886732467121756188084791487120839430049129010896171912088986573831452995959354897114943684690047582341651489509300034168788178497337643188833221365952653067391850324429710349319216406873661051245320438058313335344335560452493713080694714032322132762785827096658721719186970468915247771396809084815361835944491059702903221370361203275791944610382529256942951815511114853639229800875947555110367913184894988371788854729801157460975870448107371094680116565496778297262516373369901355038634104165895377977749693892425666873689803530317858926758917782999115113100172364909381811689468372266002049166530457092257420510285529378258460978594615222416402075652393599530216365513996339379988143906069395878178268298008759321344410786395651748152646822024864846011066160229346648410087697976024079283215428841873097485321460094678078248949574009286496160884424747608662938567353774523552733926682371173507606360392379533095171001467804615949105877117437925944851591006608169026740753897922546845638193675193873570711033665049764316337507141167396760471878739259394720280347493412629994393732075032247580254643990539812281279537589569457907575072659409178341163544903250667839299292484010911897636282821316284930675506559588313159041634772660875689927398745529189623709596753845503195365104483795211391790938996385920411453454469807373524670160789189736577126977588455244638129854456831089268805732513669555166860187532492535404635053429296622267171327648681616482755133842697105884142868626035327893513780958689726120058664985265040748558997793643448461083855127172072907976564526678925597786044380154718116496061035979262248649902680563964761443181613516216245867554511069263749786248484669706214846900325697225419062249487913658826060801992910366779511422087171719911536694114998883849747022431691472911589607848908730564911984116092885943622243795734576028699911966632225395252932036320403581125646953699022613482994909297770612854861091695111087993705743427270859969478264065275697755745002779804209265605000449644462007939317623317010103293214813463476460947391693583096340613751960021258526975983025069365319293105075757974799534036111216877690466931890530734347762019642125164164869490167463826000378528242796488841207787248464931649518907349925785610922445377586171266304146369335606712642244577913434665865688827043991607782307239953099010707137340517218182981634889949732172445092001904258457129951224784045102117247153489096281859714715772069966915744863589412101899461757466643328365005498135883098350242995114237876164649151879993366968281765838813979608717188240879352099113838606954768065090762184615576386016087916408375899549721834779302334710302175721502642861121610993808801262053843282774094605185780398541578630513983113398289280409976532923628738347860719018130075572873467738893415897068752952585004335886167207861533684315501501212735253226586753583777119299672636324931075597647522933748961467917525470138822045015202890434542569865105756065074736845287725268392636577692098179554527398657648721143507626164572601713423761851228025718667621338100171971725873316387354710969852867938866094479986587552875589193806187834357865888438438776799178744938809438627506609401575963046175855920248749529874566159423324072558531635601555189506081567454920150585407631462835032342841643781853455660583188060842261173178726629133090829528784219687546166629655515330996199993655322162135347490489262098850379460944868666944252378617923457651294448375837797954688617407452762637004243725378771819097917908397716093898170313097721766676030523548414732117020461364680412415367746488879212262220375437487127824855953048898902909362987101597786689016575990220684538773994372675169419953863672191357441817797755045768576450511285139701767304189480822826745034031612542220073189570869001427141335008682165955210400022077518546814169146354871434662666561501274588162983642781988297814135344315839511719380453173298180578251060869219640712558513770491392437429136366868316988027439553724499266743631439796413045108194502369038142604939190440684545907475276004354849701041555030047417261480626427569717767520779719837206720636348345650962541067706158400889967930533178863426251292525658662687308318656083454359192549758011087309659339575436919713802989072725998428791561902713895548048647656204740002912286298826663973221142382942766225226176301515702605325676496786985477686085345261806784829733643959351895437816334110458662563143123832953403684170917513949169720757348599303816110994180207337909812918861290066484740980476865360584926829121831936721588215128919948165492649357610046554137408061772732095811268767448785345036691125924964166727166430251873775292580755664774115165469732591003503816913491939103676411667847840511776133824767782588046252417567219328188174446978065945261310666322689215525912774152490423144644664656596095632306306094604204105750752818821361492269158492887940360352662848096211873822780779792008108948646466596177779133721159260941299596794344783995119195630055518018313400366850370496952302554694777748571735996729976179168340987811619951465167397652269213987808668124034809846530937922247619234078214328998845055549910703613196156594716333364667935444902410473513663557805072265399346392537460728942472510750167794432623078986596839285133754822611025509807991533863861052889467763761566163408454772342141216366110413630906430193690569731564182714830064813871580570452135634270865168613782614552529564558555132903014218109561144689882150821554507171082797887319691122014660012373753056537847056828795778581806481635791162929449144103043289422523284348790185573746658012476331436055454389320259248422952320538704482489815106586098000966166914384020728501897365069179985892142731126237506656989799917417899398916984405605437412763199156258880916158342039440388014312686578280531438926812792473560449819277111504606971712414158514093083390485410266475764528542545394964658222768582272792794169694336411878879126224217369479675183454699737713906794438309558942757048956798055224876786941702235621335883594948313671261700231742524257616054861458129542667991725123733241682412312985366754577027456267771339275382488355144561264959817544636908861095454862372531119270449601456491793872522052023870366950444347211424333877099303226543261848207215990613486417035458889191877503349007650664269970413178513882527617060461028482976898617629168874726794888437439135157675922433300946886785468132006832477854233338682877940553341140210764354504410168922243606480504294587407017660115400961534745867481831624712882629375789362964260936142204441773609162482251982428268717162205021704367919987926682634537323839714952328154450197034136780019815823786662347164880463513287511052168400039510736035664189966972462888532235609725414337690867508762827827728660136321204880990344868563488789411719255147875120717722841488202795792750308035165065303484338355789557146601904014464304588420266974700746707612724090832592226298684615377802425843976956399232730026816939274151296410300995865466315832803235840457806789761112671614185629190036474318526040735244487105891249469465437003805520393972552723920703723413958849660780576160343591309500799707683907794455258466784096961652639889664340210876278415993662255678365250290794869926791972242327040273032154284339476124767105885286812661304809916253919082440139148262869877690803707815062334474017383752096931930954774400482339360252416849746756582904068508562643927864881631750107007970301863527245920228227069942302070338406186085754749509108387556568143326427745628526034038315141501312477559655816635755870254823770199039531749205913150197395975617255459167149007243869432382874097170119270518205742779901667539512989553510002653407532264361062780153053195450925698885447303792323732316040278294423243948550722323993950362064695382767496461663335598054968584960149225800220081401041246068331586780850876877018379965904181112784260243468642686145614603361626438981298913740953310407528807663805437896135140024933815327447843421163608186986560689704852571287114411007420578700103685355372669003025999375921802476504878784864809982873659598296532090277460488653657181555777574081893677189091360385953313559324875290107666909136261204623754561770682937622937298244267777942086916880330608424941641421446070302121184256772003676080301018408457995762360880551662299883781764853922591684600105699630267124081197891807382621181376455655675957330925664459450638040155409764011960768139955781156472921594184085804011467392857098988701024755187617242041089637434205001770651697755461664795906774027075159167390436827741986242120645047634257061479703389273166300512420740348176761439923432282787242290256174965230620467342328195871510698243171845960029680224862352378919556448627880535685780127179299510533832367831867499298562982295189610656694665428049674026889995719811571569752921985626413663535352343690257429820461476939547538393044748098761197210024927277658291489435391820346882176674552744451277918338722684378228848284564126521362515833040786625516817402063264888547862385651292287509672308266273191769830271812488456564603577298769165535950472154624196265788484564370298656486514691067867970294538197213311720697878756702347309438767972508487499161728385220401558081598266373658507315275847832835425168184237736796371474866740306438199638470733907423268078011437833500050775828747495824678066222136227139728043772650182365266976736901314979838633173634573381903322037162734251315479873981226645378365611830437298202270494501192113395190234266707705114512004764073134421720663766416678377426897425902646467210475110183699686806019706660574031057733238474394883101680197990407090052159257610880638786932149426541200308742096772608358692010848224017984711427077710041557977733344628545340471218538005206073491374747692681652726998310681382537545980418942310228947211753217040864063852665421276432500060172392575507280264966901567776879221986049271745472544042201169975029596584689585736043504200883849192226344316956832606385791063904975624358526080494181260807577388854717339748802104280500676129458691225101924928659140128111161033095024616110138996173751853088306924222033783513886738550064024098416111871162871023852795465461621058202433903436385403352965025276407968199842803087240880196881834199698486252989773424742409460299020749371357504170736066839676398817064250166797281937892782005973130690689061069219917044410113171911306177244415515161118375827872037616249837122301834062925698073301354862570829337668590688921335117678910031473802805126231224654844507457387683091248640222476639168697137693717233772408399637920552395587103083890700894344449977001730108376080830278891197529146534599215828387237720899769656457829660007809175334729894140952916888466017857799723801537498138912464758925367677486085352386757002601004703037827037462333940449409480853505811268114057317548586617206245323385368225322496800712680300562504534089601184268995312105337143548029589601336122665069030868393855458968481453560578942383185014259753490093059673747128698444350602502733260323368271122432758237008517116275917228689821347116755294133017203270179975146758340339346819742803116934302820025608571362604025351437675700865557520320524498559706230394647150324878292463214456648385033434179255916418342333184446105089510671210120303499863191986278084131138194331221744221264653015205256445808242084854034528923614348644165233070107095210521242664013557483663889452396759513121233433207507419476409475924370952374628906756301512445243232516752199678304114618356136878393077563866742176933482035490147789882735429621492489649262250648655421205455410328759122918406183077630490476872299387057461457180176656193674838520869435940059652627051388142051357042052163230272306287610448215273921673566658633444815822204540705769700297138143702928804242397308681693095680518424343173946053675001742827769179920488972094834104360333811652498288139690346889565900227945483533299047574583358493409475488972416430761263796683506899511847131539900521488956640981718513833312887170748352372865007904798677688681717122288646601579897261601764231716791955188942329529468513098836038620148360232909265434727499578131374014633557962038087323267082558040241485495698541684924124053233458621576577422946136593066205031046785087283453700750480844205738202347635600037500886570173135564117514582333190372569465340162931644709833814376875042993583319545666523573990762238843485808701522528624459364774498046821193227121455665265261304577734347359798398554454841415206634708177789549705682441251349320417503022015386043149178422776715643025637576241872361817003735124754124753902940356540890902407214072930121787920920320989579008571956511835983292803771621462847298127299664691700388936674976164782910904706209413574216830115731789921512284533911272845785851234617881000512902327076040612568168115432624471079829119218180221342112825808440830789028409099428787574378375380681781284803408808354460089979811831850466473359737510664498454695232307914843204888352544484775625417209779365105080307990164462473759549439983604462144025641206208071100380571414604084640819683415382109218434569292665429735793133983768950279456774784701803598008314598768247466711488613901572620242369087065455735921126745264064214799377238234138985848347527092675773108482108735896635919180593427451553421225724573855142100830301896645245406797295071084452203658007679589180675110537154535232747260278384182573967188502884880146266004300722014198506640433963693954979683284355129199198251425969230805484353687371342738693299075475345820264467340339076767896850108149836962697466687290765165706131979023181327364369358945858941220489429121713434893278473626651777719449712076437641204062252536566792817702592119363926587975576089379112921275644337489065082667224245480911588842366693768407661361197567011690662811320471480584639621347522826457777352464781667065297445002400767521738646409791129819830053114244498005847681858492973399252301181100156180571179517662902085877510437093348797973273045398442719336342332338396701102793640912041474297082219141148093690553448765594248173757639886770969584731861448349174062049753774962802333541555306649780251607943057719543214404331545245612063324464748766292945873868788308363997568499661363667196952658366219375297351062568357632409438167440081438019184420018634712202707394715295756160245506326887484901699724356564640075532674158713428720546401904615827341967793423209582395994110836772254017549920262467009945784080070538709970638978371733007854546347812978130217166385576765238210067537554829204080383560836996442027156738642120613572706235052154143327914986390218120819247077860193204272216561357754888669310713356158831525715958071322195738707191368688920020649717435237906019504136954293432156726498240878657673803107971562303869827461124939107564835648531477269404787451320878829509614567706947434405006692078116042940457902547907070145622142207187139388394732685066932961897646917482772162185872024696872486358344308270546141714195206791483425479910689200633635960441576669709485970586915946412181586958854247765261052332533399656481623090031948999890483577566189025466690520411342905044131710645119227290244822676962535834010692581354074744329354623604955269286079310345284617807613970170639181604076965308592461989747878184230294108294398388373991932897287990009752024070490501548335025161709253984953454324319613357420310066980497804896277161871611383046684616106823457109764307572928013546376885179785748420063836801100455581134441710147060706413376695157286142672458815973117017588673266218595606102985660704021044561621346570757256454916533164765382130359669795395043474990655683538276341218664214485565352556270102003264094611763511240336214528403156338366636075593649982143801780971102974580189554147648814472272177536318264854143726854115053217272496968212319961856071725470420739868460519344259489807095358150581903058706662516852423306476375723239919474343066275677917072342376421106911647793320102960993360881810853261746761038362951619874255364692575702610116199665433592463912402871791574758578819062561610341835336694387492593590702765463635949242605410907903626465874838939703024356689222068996960975550447574386600838149050707820269588633875760322427567882671400691438671741868624344458142725740866099993133592072164798212809070629832228604169493960721480092948206433968030369778740641637994965282657420885173355717852789060490887882452485340696423779529201137126680904689546529539816043758474070874690754217119598816679264553074015735889314341450265846891781859690248025600562258163808054439692359505336852555412914557403480448998879135101215739355291736477223138477422886413279354743692393362771803827037024815360655650834074617051878112144814610474187953954772945532189534297741948956769618880675634420604375910391673402761065223709219767168600771983752372468773045296037484556650863169432686925236064991502111776730319119436286889632764766405258531124034270054171963173628875400098564761490400918329760703939829746192118658393348532231828397309527032814393181805193199123648432907316797461337278405622987944742134465454660146620924222810439328815808821201275031037390245782753846002365876081891770489287777321691751428580511862119436395218721426794263220953282692520065497441600968926470820395514391864348528378864070036847598268152225242066058354384520079482316539174280955203362764572955460062608574603338290657579986413243119293555011413658281795123270758184067332840380399495320465665636052888270008081814661874136827673271284604940761483109927358245289148174861530777435069240450556913692045505739340920888752996963664227230454200352507661629210685168329926549285341196493465251689856100299416706061842450373678256583509962141772194366957418177286682437902605109647679173722624440156818815171292758883488394881735313328525084112349790637275323251162050427600818891578474536922369329554997826679811460047857133967642713233309710977079718157353461539719681904578850074563887243031274509895937363936846465102597776310052450343933042917676834315339538480915835256607121720561270809103997031991488809441998437637998436564347769159235944603708528717975155356790319013403636110381884548678522617012654064781865935330076309480753287398562497945286699817495535035675015087875501766065085560173107707438675001396586541122703413830568375713832904749914014440174548102182624544604266817756980417293063827393010171485090983276682874064213287738054863687214119020906173771318371960018691170546466971416524362820108720098774665946064601066107095843441215724715543725910367627093955935766987656108932872127737410380391206692428288306545389911926484343857284357734614841825850027518544087288446097675435100210361116563673148106478043829611895413518488497365879998098876622364482932676371691180081750136313840802584991688599980651725761479965934890593447584643651751013124244712303212438946295478550387114442275342747268934903875192956306889363437443241913785537486681267916328554949200767494460984183245897220312883723013968300975711147945996046016790785541890368253612332128757748278526954654982133610349487782481464826452582056683738393254900603997807029017437961897591071927124102610565653178449774342142022797126994586742787139535520671556942599438874312983957224309199039105391587487250940453096354175744418253747390142451437447797770282179832385245726881979124412712214445951089004413149019563123760033734155667856328880951496023009086288566545273725317512620481583469335182713975468120515407326840221589883273807977377961021277401211382872542908049562776388284538258463561791989399297912046087794503075231972315112219620769439185813626833369917668478410600537822040508874073549494137410158580529360168478989341780925255417152362871788399326728411424721415024636018332874767083625696439092044674373238215306595082026563084428863598765961200713057658950156782517130190232976318667074624167622100816827805124829006438888664882165216083456997126323877335974198250766014715419374100189259718245553330118344880380804968214571306453989431508319364219429007811375284159312555248994908598597708251360292312185095800066948534781226482954144480218412752536263625354820027807051666712803327987899057103860803189277240425932555529063973918503245332842500516613903439970561001534161392898277848859451259917184160149861554978126341393738308339274577465907221791738305537225445892191170578643933673370827992620507058186133858483939506124166340030047926753550854970099435884589300922290034160684796197190003970430547792505106276348234936719760018846903591416639371729305293176665811181862742053172641724555618341490930492681901562925076341779007345685165424652589700930537481390102585244928652989818019935651824022325667838449302875012331364608050643439971033773437728117147928931691425192878523311450435284480104926392616174019254804705089117875895642593770179926220758978945566278884019100269556321124010047943621535108110112131122113177653156733349109846411585670121113892030136210641153230234541435342650835650954246627348820684529013275110811949046678822411269265783735586610538175627654283912481689489938094779208010400515731517995778185497221678567203332751724867083938117228502469065486979987181609358558173537399707498097790067979725817389305108094953516703762063740520645377182030399735396040161187465503324611311529081219440157819734930512899686524582101629941007387678580889542878573157339796343914066567619748323909601877410075095187634563215076638054883772312419674591986716148713833835119688057223591576160869617519458695395954711404609852771162297716678498928829301978475180120521735737412134816715591925350206604361473425645407681331728290340692620926840252885672252179149963632977735688602859344928512542099424667707587771189408946462807521805286429041576520058512963731253139099696878014912419938676465859902283972193494843592192057836077610580032432615948411438358051080571869920850247867419426713489470131082894236129444515422612984340411337463354598091754264808764903583894757836440767225208098836543344383574055009463675727772348064589813367007738583041394824854738896118185425279163351643510624403089949654703232798286418655110743603539201527745389808590339622675365067108541618880092445920667083089229329593731389694770500508067628197715498690431577177549516805436619555158472420834736252005463742088037946382342914535801286917972281522711156695217342718219543108028341973435061209350905299364149125236030067374306219556526565526873585105359487911767851667499821161854765255923614922466965294123825258769581113441507343537402730543255710408425978109771072575527808542581314957457019331498667250120144423980769912992277252517974191093290081322546260494817464725417904503961374785276298325217367514645096370889371379898326796528065387078597696118886627144050211216186583974789726844230202138751487444201007577570996770205057424568494021575639198764278106497647421621129601863089133487103239175908757310254024728962208584812052013134599730784379405003715061126826038944836275887803793469616125934557666972062146585795347050376377977606731495099780444156688109507118386758732253808757693111765028083253991357145323146820649189414263106465993702952279007865022782748653538866820035662808858488106753236651814915668737214078425560760193920758155381087529241208779567065827465327897003509540464463983197326084779292025710463844752746052958999059775183461800713060963289109788910063513352827679646886872278730339745970733022927342254184766894663283420514631359762318964227438162534593343329848624396419152812362996315178608375992406680774456313273487070196060514905842282096900180031391388481492207492335938256558620258818129195137958001808964723238516906980027835975064332478827631924078802749360597804361260245229372614941019659874941653780038413189258910215464638715137676285599078338954976896262583132311834776668836332480814176846460659928768829576338402494477058867473208513698484549609681727757401534263609406956612388318156936857149818443580617875785010457300369905576960612775832997953098613646690903208572498255630695671280381941879937706476420966117053981949864143980908250679689055015556263789829313262156573722020226493263751095716384590734178978995124495606037008911751503183568301867261927042895172883833335057611087476116611711243058836415489881371768783586258425190155836721011904734669532281802486042409968059920959009438645065358558524827626164320026528774021976235543268071310815797779891146070848437663256413590784386514983853634824624323602246807597708304855852516314491506396665473213508366302646797434106630727436297393034965067727609120779425210764043871052254623380438541684788845970827878603511715271217916932582916283773151588361640111676469927939326846039444495740716685366525876278455806219434929571095754954104963798562422834715179323109646807385038242141477857297434848987038002928133191050493785809447903327831642521399952309829705978689107296302537655097008639885617336262513254609712112440657358267322071767180942138483706119709434099823176222129066133421980401232205614649749000304276307098367316236700826518283207490455220151912387083278922414911383766513783781384274444252324249006144732677700548197985596423355290839991230388328108219657272236515758676103396154009809245740881513855120294950143061881424395250553958938767042380306783220707113069830872830918700834847990272985976881991192445409943481507411448985230036109571886972950820952992070069697743509055785077121218111577597478171497190441963819390064502820335061153649187820884364972298725237575130156664417849798980464048019554863760860384931189927237797773468761423284417861514106554052760431131835740582613034415949300355589292208945752369773410602781393627624916011458978421206057507372623713008604965385139216868621543230165205292903081122964522412827310627854424660753131561870498450884054224895442575555875712030729864457062907145555866709683497950781619277926741737263550284242110295715241708699871187710176866151473772883665987833334325814493732081881197250717052833955650497437419817357471125839569743199359772534148837269477500419349310479130400087990030526409467296448526203955479544791944726604077812359202562071885562791026277045014852771589616352861494003239771351496184764907513846805882892108346566701699323110796001300214210558253675461092297702355802451365787407329342127689515382941844673772888599523330624983761217591994854259029565210460456618035849048389714733727688133925929937036767588391876150144866093445282440016040543991014946476116019495602008948262215891119830011152927555638266465166051245645833218144408891167133405643055601950644941470274884499102749007664421186863759248287376672109663802425398087684841577863541311743328164814284266030579570416335855132743009969071357240861104885734646965583747532969258685779503969144794820151834869705015099591757111830546792608162295735873915795433477872751437906815679513818003139761569928010714401003747888005134335912533890031118119493734288540304644657076918716640980207074792395694669331730970158816162773026412866433208832103529515830383688297321597376101981290043579404922008454186855097188949395409417067556111735332431004227522383834769867904241948532916783520205157558374172423737946437678353601238975219007917182455338393328473269256824068910820198795722442138480418623177386652338590435880703861651935813600250941757974564993974547532659607461053731259514935919244925220133938468934857639164316874634780750058166772667792908274239274628837055736418442332918401981095395323692814287357678163503465715987347708515585704481960171972973012114969636399771914634870629537417405146774306338931486641733880432494340397245847911222941336571146503608895613179996990668376940417742362149135843611923404520622913494932338056439629370312892286557894378196553084548312520826880980214639700137281987723383019175905446028154716769138089892699658086100419439436681480687053024245414932035439295412392440134603491273767020098144659246174168653177360720524500913233569756374819778016324343983746534035883013386502868239472572418536110401027596940494115274739882984014530013254227883692867885497126359218550715672402402043354779666694309237852714606866494231666011121636260979453296434507008949231094233206399812549106847396687314741475810307847257375599785650574980804078936191044311612734368840296687441074935876033868730973584745334540037502008716709048172831937824671397822180247313277962247451854240130347919322661266852780101852180288042835309159782933115982408948226120817480884262028444901426462238218008652960689058472336298865557720797971084357486792955616322082142970679851519339410145929171613918658063131604347135454387195391995067308434506720715020960112054901045125791431811423578421932002444720755103607845352961201411011171824374128053483254890668564082146161290579743072405235569853889447737075611323002074834382288269991841544684081901785924932917741814026245353022023482975828164346239404268071356612879349521147815705256918520894668309873651858880963982094419603062801367631664317709039246000332896214770236306755624596981660796350731142473309864577688076655452697755807494483488638834776659415302590927081520582235852079046591889811933874092881430463011502838711383129502099889468425198071999439280371281347031821014687946270741670473063951694666607500082106730690395483643023115038118654123725993886542114169584141343525518499727297811689761940475813787255454840822321535318578112582710401510991726622883370751180104582725510848849908020439485558095466708504575391210674605597128568847502906141622945024279026865203480655327802757657876237237989985678448174872596640196866406216672069887551835773955842863877548117020812858591097282428894271868949000239104341895326745537510044677060260381280617302978192894615766632610262620403275068774115591915008749026277073142938160338441816837755246452733903655675722184902541304192108017047112725956191433120931192669203836204561921192355371558054855959645912062026038401596355049145761574758854695143812325778104356951373471225021463756445281586351363448286362489685631316763489772600219708168965692813928891087471380953444317935020699532327051140912406478496912389952617800764841277496066613315358153575753398964247446121562275253665924165236286953815587524657411005519019499254834941936831377591271059527729864201837302335454838895588660376119614992001912829997441731177993587956178262960050655103743230732846466951144437448825833361957146057528316905195136222759224632457638042615650424035099605598545380239510288806850158450339579142339424442324458894177328565666229270806858666014628025927074274161302593801157660104290718586135072269575411252726145045975948829038398394789565318095825595296723318742100948046646219285581875304870368750658680827744496897811048526505785908076937521807574576234417122072577782493944140928590819829080574229850871543895215405082416724705186071518727587609655810126327453560149328667506059192525559582379927654046684459319314826476240950152087655741688170342296080221238096382169250210849586309090469991617599326956743267380639350617680814465180220140950311296527735940755080053314152887716018229813358330377150477079025106487955512431295972651025225738833697513688526343754201941730131024533527070772835386151401980222806422745478550152781685310168826692250651677581695748715300282593578522225674842069768948718475852419689298605872614181012383963945227631796542932833824577040440781722516505736430136610041989949295830843164739991658565640058499956697984169261878146021840095089133898297916294861974791790538451747545970798581395897701635894413457733057021846904322557855308889562582810856405793881307286025498803448853702164978666931840581000006317716192401646246367563642378254017305499974765915158572761897023612257503750555536384049717007808776184774181187947816202299050423588211633559169881446990245958010623486956196866567773226911477679973823894400997529371656046244739926156704806699710904566883048739732818247869382151185487577046827047004885365872209972625699679897659862922604014758274384131569367387134060020797413222480577492051554037007954786666954834924307604838185921718022697796811558863099062396262992038883166455102886281297636025580689390254636962370693993958972933420072662284630021503472052470812704516844972364801933417851429842367597965216106475250024017674475741459373197196248061160539083521689563220769096862939383426051168632395652737464286707599603658874376796449748215406845519684412766839603761874383211742387805706575945200369308452281285316310673286696724082579838654734834098737435755962032540350017912348128976071055832366960308077360850561944943841167683121711507739760285865913713843999384629137131391924684834811582390999577151943947625086450049023803493544067636802412330291493169805797493702187819465699581765022348202027062840654867809375380909460151183576489501224427185233828602217825276919050815292231641888232919053706431817195544996298784831630079652538303974352081953645671861862298330944852199203735700733368344924241620305651769059690924785335509663362386484503354999754218978606197904535402484058400000896998868069613341846059770211567183157374701645490812666304787079802236996912324848895023768968329044958903129098581591120075843672294097865782003713272113790001584323690183883799423816340113145829090776512760741954915947629684010564975954794238353137437388370153712491317283949113445938110562294891240320799864042697694831173553262317067259707373480010492561518808654962560319056383487734370572169772717119121016289469861466096607895007622255194749531232916024113356840333958932790120308625229588622713225212812069648074612912315668310141761996183570315689971459519764321014897097118725036628125043984057690842564955196843831494071136708299906218268447118373639528715068563472683968274656663157576458003073548281609248835450668873484601757422918070310728032602077916715546395957265558722597175789439236903063565221673744232748724079495074579277286319643584052476832521917184476614696292303243141826533491475551426553956725765145554168483185198926830936682210552083414686916002666988257155241317967491308409150338831669501721776187755514214017748951761380341560298183610797717112029860898622340213399281225870601678733654196314329183807570885292910628548772718068890234571400455808521395179501734357875271613493391656027075516469716560121353767825719281979575763015590267346388398433725300873561946657823069075749294501280091683018997225520677162474071268097805907509517647005324995456897504452190266025188726591431965443772841663874893880610685602592480445065349464535344021539291175169349544151037710900114713262517670000647596241919684067619272427389299175640241499023790879731698566277138450297007334322686839546025711174177233622096707950018521664246244343973038564066051352444131200537615462303868353850665739687519496721399795146529710028308872037208779673957613659089679378019102601956517135471070992096201028479180749407571705002957499625719465102788892194538591383721435323169535272218542257234866366020493311409280462387030538370913031110843556064579152840153559837019438581532627243513097715859397700949074732532580565195354699233472405762597710510709041726165327370402486385554134308549963633821030624456586953507131639134968319050934180494318544358892249038582678488686487206088967285503659511630928786133304695956222431489519321267631219724092446422514214376101872817934537278489730530913611827228971411879522631412588015878843382496422989414779956188066008254188094319798343537052963832812698125846828964111189043781457328485333934994825932761853078900849788733058213174958381388672844701638769379296211880341952055978883637114803355928601276576100738268934543405352899978594064206936683529279057998016029166963675840751088030870757992480782499319606696434810875724142766444450035758441965659850450215450504108156192202110754726408146402316115776883967114818580361425354082279237439546996304825903742336659207904728747573937438428253227107139645837165868307502029321120433559074189686512273835638708944049056086334924646232887758882325399114525601397269159763117629975837385169303452641486936060984206954302919606137070977093153883198545441719872668407347626893918834203955666557691807591006675289797652986464920717981805486157845373351825011631596521315542776896433464904852199970772626483148458366872782198363443903761169266927736707723984825649368541509032292758040048913593108418900026356271172541227939004886850970872872361276456257504799517641844080165969221396876714572116371483964614908613426195882393781780375650068972956034170598760448573923387627022489493368984915489524982807521825986176241434862687124822418271819016472391950778860859782196880098469482289964080279952296813785239579786032018389238981523214358203542965951203147655608436581955961137755134523752617244142567918380121995279209015012583395998094447635029092912718985292205615435591960232928757584622303172878251321981951646819377145102333753095495045229865376228295018075190062912250181667529712095405619411935324529676366358447291625881896233358312509380969217020074122263283514227542765513687449406135308658932391880910915173599562415350557657649114347820804143492031615170681544173559934366484421009995818511486886508859648305396953572589967967199141290694581539188350463487930472317504757920339406622507574309857730059098479392266184618182894391567998876928075085007017213776402410021357656549184123661853631237063256158891913633830945245564198907958787268871510694922658907104231587979293935060615830129474395100815117726352535887747917734876279140074660401557257839721084483261245262401592605910537477526098700597525667087902809754914783001428651176197998543325389351496042404506663158812008421729523105821382554290177594864438492191061221800891084289448457048029241343776078464921111456023551795793911919970755039758693936444719020643946288885310194647947439575236170104629891731337869787849502718198899106030594839067132173399915570019213420773726899595054924911943988310911950492872145538468350866927048616558872540654572679271082799775001680941018643640204240194827155639680938620035836919974339432412317965774897854104670956958904634002447677845180272407930297632683284006748131645351241760923873993435067576930879688609171980608957979521209214223876256140508133566430731765189614620951073992924424126365810383968734743094642315334693673100852489596803545828963962946753403679900786857133895055959090050224631753833891464955478021321409387512138438803167187402861178760442642195295345060031867268863397692592404659476446744464761689300519833802733482199272708379415867910366786057161878956140333549807819130540784001254016087866869156895338482844854707284351973058485208812500768989603989437233130816112284014767536989817204721218218452248212036711479854289179687275750647270017359265556156934310708264116415651553529433532868115101597747852994057198928457412398169675340481558245673428668436767487527924432092525588961189202162309858498804863428105190799021786612949745473140232917624939731534033819799562721059232717394996608355943366262158639744106646856271962504179294818486087730096450249088630601047775749529041385605896144631710744828265219868980774685404213667174494688310506341259660641992091933114501663598087079213918020463477242847348131175425736504089538603800002545383915585095487047093317969166191783314107118052658677478968035879021091118634742728659014108284868264753821296600319516450063197134035957097286592977094792109692524511888369231681593184856312356765558785226396554741231241677968311004422033216198039326291692023528439349055033553428758115036567323237825697332974596369711698087543266912487360035136177672251791942224958500975041784252341667874095204251245490633790421394872587147861162947463581976328248840437648654494680408132635150968249877388266797118534241241340126982092426653207053053617887698670620734814302493370155082984173376421473457576812805817741804227423780360831387133371071711380305642084289829473912394127452029153214081725307735803105717753787596489575533214705111289193309610809708864484409333566818999792799398503287337194289237860244589551846980073654778950346752844318408636341073447113980364091564177869790424202140125854681388940312803085390588494087407948531999402222043780396729889984988100934818525064889286807827495276519551454888623020611609157251807937182512904785998358312354496786094009471284404825843405154013419348607761523310682117567427475885386790922700284687907205215118811767387050335230277244628009246769378781512571275764105792366015932910167310849452855824236958347821562316389658653808740279634521081296080233021087414107802620712333181955218150337640661225552957676604827068208082233889013527179078192470869515790475783903364214466994289911700403120091661214309483062780163873232378646932581085451002076906394507905987785752659956888854746933262594139473019042355059005880069586382454541168725152261451495942373351058292555597202715412343046129450427591244972933518984793331710667943388320660816789953225079293548021642237152530224350789179164811289115243821914004376771682106950798260499787760764825481862768043924249892253128761565631552872279990812553827846490085534884589338038693440493504351473300731851314456451324041168411567758836412259819399246733685386243194456370052984189365342342247544559184945976861037527774492348426855507811610248760037013396331564383411506393008404303751502909457893308794692328297361548197385895621171607552360032173622442156853875751553387046867389186403037277305841347732012866399011464577426792338107108660568762483065403534847439049805635145997937883948594013688916138448704498953414955916699531390138369563846566108424831333424783135678887303774216692351297238110926280375555124055910460310922784057800713860808744270005047476296732476182922282661135942966290098925354127231585588165827042814059140323660850060754791925582320121616282127097202315180412316117170365653680387073650414470393769894183314196341050722394613703847623061141458696789952891028683588703337543594172580422044851792662588703658305633001135923861022302117209901320761700084249889197533102887054558650531720187700346398325271948567771233823306916255790767573674105079788831665459702319961464913388125821877839906067593444561217048452276480985406759260455091814812478019748173020103319484896988317096632905627219736620486626016506240284804639330771018962175960486559919888180746469394151683479692772464590720110127262831424802577298409419594323874231385132204413930080416917611187434679071062269915877687920504102973988353337045483108769531282422665298958277597035272586032608561273396785773702019509354650505534890064413957397799234201285220762401694171840311162534652735878671024767918043858532367807828868259254472448827461627414656385158548109479577249797100825617218837659410246323366575265303412477625873051115906305655120228255437044287147414610146256277049552930735137277624943030352674739578307852101652274736977567214170051429107731295738923446159881719451041244629238563125128028025719463425648133147772002684092450699555462538400583793325639795401603311589119195826717693428793521885890489520126306711134544522273292222853211541792208585757414647755162780655894654861761316137623371503579922113022994991609246032562004986667455473634265380961937863906362226866059117415330488758275103305218150284568277815707052520189801461624133130163751771758954964380221997103332470453788953112426315696604384043719774778717390778896450772180250925692620852791921930652511433159745416381458882916424990294984094764361659267472545104451240555527658090818207227832702518575542543795124727604327951840127175401164983762094043358400707146393625877611475460292992016016683521158096015116227284273464365975010294114969980954423039645962673608145123743998839204921342775537024728313562072137163371620982703280453949826843636797665249882517894602803140964204409313544625658166569473564243729669654763257760785536649533556879373344851984088787700549896857287257500081725451249047215742201729269998682244048594765678449039818935014392213095704426593040388633296361298403742151341222563408260073663211460961073255234689503380570192425992745338140031183930845035572146366984753207330788513158557193708485775231986101284535229800345893648596731950221812539556293732591516000187254022179552120008809593675259622778154681921126419546043810790168836589967540902526637010595555451099400798210787706656647538645894734397466994962176172894657728418943418900459126284983840591977070253825986957643319663240849427487375770397233450887863562086070356963778206580482136454549200730313997237475812560447682729476147682346752734468417316340078266571397105385651666508335126013515293513548752574979326008521005768831586384213087335375743757269022658097477256333397439593774156399215166028230417830708546278383151602051446728512927957697606913037814768470095507959299790218728504400256476134813315429799789214472803710360880860531523765468696973838332652446630729610382722416674608380490908388491554409505833229452539127196798387078012253629160988739447975155821940946036263456431248511222607102219926873519939865777655318897089584862483604912346129800380269565075805299148611077581050137345682605482910543121669341259280953590508843167391643990423434764163667414541479214310406847410965863961341953074581244877290460195006133915742526096877397144770318237621170000738807535467701844020508067104358786842257784089912309360599084247432626834756758418855207858660069636151751712007419467472728252400627403248568095569968291449915358589008141253923939446301658138447799776994899583845958206380874090209219317149856395791968495714649058353049103405716575603346296168756910285386041993126967355182998869114998749431368159747174449044213601224613211983149686580604617011780054628874953951768957393316011936549833181297790532712697234993057793388259598567016020561874839010460959234682131143866116230157066840280750829314196968834060479310938487023357911521740280725242133267144585945013685335724308563187880954094674245634674661853894969672530913421861857041864115357464874877743301833662671701114594987437794899500308239514098901334776682010806951473411072485242294304007544742866133023318447991052112396815537176753204312992139380733961163051501977462081651639593387647675039814790686517015330218192190111695116459535516659743640121191035851774414705715619891761145004067564960099660455440109106521465281237762139136526634914328657843380717963853234135320642346999833701431281230764048669675050396336513476007353231157095990174498566631621103797956502993687236729851178169525954824701067669432200945056573588227428775609285261994108401158450103799140509674031066727947542583012059990237325125060172449864987859568146553200739439714498673972522232053732382066891189723585691682927362521706567347402826003132302406395391439338056898797776405420644439843218566593180936928950206060507355975092343935533924548374096597611238650311546576191125696347544566541060901238491629625992962508434453739787889465213252250761356730761738737147371788278086445098520121323839924716919852502871825130341501254852480027128163970006745865598389880910998334924289823440260979224126157659661018980027875046428537637544272826409277267025675278863320593020862226439883544298248838841536754586664429791452242421042115625919090733996354406633957338277770338624364854898896126353493641008598027442446817504297464609230923463697527046204985113048942398498017102131247583785500553170730138480046873604774166930858174606004087318648212908239825533054715845384574274975908399155316744101950453248318195989956133722423546069678577357541856075192922380708780283349748994904594985241210122575749360898114754002054197419644490735451064924346472975506214506375165610820885183815032594625081930204360394406423775680140118764319927875809155674750194043509112102332368566729340089583794698692155671697945385358063792115146348921677241313887105692889001055579799159475607822982596199279170345771216003466440988016749262565372661182672646876996602671904553064905838975777510791636737773046725137766256038070684832476574109677438887695074025302041348904094057201321303888082137765634838488611367222394433980355628377968338121227402302745501501201098940447085822910989121614854018083941665908661773539047806252193715178677157820467521534513241632459425111676322141169562993565153085935124163325437176462211039884459160494664973710850282423464645590081744698545743765124128372787849223823968207839804271439601851355038927604437697670725584975932730888190638719244621224220258540336781977351861334056220875964518322340855208246198626374015509829669266634259059366028400683817967858603348646069988059986947464258210210552895338324796319558695829369996151889470412573423215157472724501172547060028221096151775822874066841903518790222323580031478682737443931477099118459778434019827722487250386163218363103926875394885172223579384857313514564182103917072574730072211946163579239663658476128632832613309951449729873667466214540017790385047519119491107950704920152208196006042344159893549963564685580759781878196801156509684407979277343620725738205496566264623424419639982141831124721691685908716637004018795946797279565856450114977994023341299907912267955741085096057948032859043174240619961278781818776695919626471451234269531956186588883581415570214313814624955463925179729763483863927087157850284412593911886542066592567790010775429112014682044950163553804074227514180748860183270796162103421311693071046677024026593811553754259477440063525430761585279529670442908684713408585097765422022492120143569089495214216814208260943716807011978688664718322976532384851582775274449723129051694548051643419166028090744728270813270476569957608444954742240994172794062822542961668473354348298796256173735191030304048789752738636436323826805996974055924877438207335435588919086725953949690412916555367801182860315256337070211848803126306174383182506538622449995252671138688273180971540402783704585503652683944581028755688654979147910564671417243447123103820115664342437256774804673553151626223099693009697158682024937470980087294558345213275417371169101321453019067636491649020501047439993611070968963531691540207528252282085052837798074267625203591512649635009588280631464488960179067390374097884717560340818809361635111683856012312780907013826853557183702867416706407425937241231965267956235444017718848102794414015791949020509462097843531555014189914328194573813604179191148550539767043730277749133429631352439893055975832555112309616536633378090106354740784229163941743580942513389498474527993997712821408512749049514419071859236678122155068772396493129682376227121412496620960144373177724573680155174984074004084775823837810583492143128210434729664468834094844557145797385116833087186292896693889917630921728322332602893771733962330806679041621120559187655984788211458140742267951174516238400158444433245967073042403713877332620139376425452625288623019622570185724978645389542138138551700474148086531218684549631343881013917612433945100428358296352436006413363482865335736803998665072291753536415670439319444997131722382611996631010324433467881656624210181866481749223244398043330471035837274816824006830980374051676188649084209177612811313231613954854535210207522365329168382592784525194366022228881681440403994224194502928786193263631836743239474485107142032885816014293866771354005853305728083773671474114913555594250099998754240094767445595562782736676895612029576832756494263334734671115412099316755994927980618110626354485708952711931390597967481586785470210532060377291699113856373878640253787680285797283067117571360198903102371538868957727027695180747122394965006309662124468448845834286742186158577955331604882199227260721479481876921250587926724258885893484462330170432332703623430813240572417801040229704914299734362321303580294259378457414279388338450966720719260717984751476650246362313553762486504472054322319424299385546786367909339109006089379732061451072340087120388993753000346835501194485626744100651388844077614302386775921722885066860276210775865519859805354726433508695357379786044231415314290435847986979537506987357844374519010780114557715546206033923299292244535422405583517329661744011022202539035813707438958407395175917316877238639771271750614880607117526862064586001514448324973207426132512741096494588031046081549842918207220974089718006552939370330208269911391773477592773370291414414873680893286607781963762726665376963350758824862147856543993677054604437973566217956896072666143066210681419429187780184112762306831374956385212574357250436093455438441046965861561350066798845564428697442138575980100489428502537588032319248100821101160427686640379911251640756391460360455491029834992884209534559001144652718180924353947027801788851204575143441434870677070676883862658622637500583792720315245660816562443328866986372997417410025933403012416540519199442381183063177552454118148756688306450408468680631709516116362564095129426959667049444430024498169427547311873092962377269506970929568260073327488268516474458978530516862493445313319551077635753134713280889149405568762039576071575590057657545834633923905358597951646665646885237823558362662969615734038683356025992169915217928798184892254219463668986861603285198957252188779037504863234883083992114915379129714952001312565782026606932610635239517679116069562900453818144593945021340591531564371111682952669860372862079007794326327870447853763333934580652047983599223846447625348730396452089518544613805537190124603691010742801739648769498957599394304133567590439461993346857490520176498701577372876341923279383550201629636598835610756427020331939139429844633439377182572474157462224806108165546751929100734708768675884425287918361450877125826869460236665193201436148206033865446878322469939880801577641404472149974687860205563401399866154058305558973509802246962116089616651382389317523772868155353067369232853664242086635294318553610388368316923120817333779558101817730556856182998776381407821186150826177723982712970769975343646284561087423601491616422748706121795858811354976991870351816090500533943568873067395597658677792346967370556559071834764659229676142514081892162305629423246354437017466332501489538616141423339572918423572783691960898004951149874062350015631855679578340659799595000934578029487567738819565423024767504204420146097128433862635595927867735805427733369619660517343611393245013870058581631838293274846430931925439259388659662275799566411429833040101488111811056739858941832426805875964142874053823128420300810609859948296215023246241738918320247476903453118288777621005938020971329444013196569656188599282673970330200559599722451215470442048160434189451083026490307583990663172473701698463858482585720271101338830073303426821281324722695143836202051719415742144243609017144869694365196133242575793618478775894329641517360326583162292224184097399738315973401703482586852476601843182462366459084768853839437986145110200842989165304692072860829166415962892353280526073333166216140726703194574471770592787034895418126814777116399220068960237291948237190900309495861232725014127610414131750924312245338401189150231148876255924747880668471689669759836072597819645114252429428429346316937326309702953401049655796793840642078242632096908945922596646554970337132959627093946105424668772508725565802529903632559508845706772131131529716978985169797748241742167357207423648343253597163114938048267108672014984713257256588112645886253594698917739497867360646110996615146177312525381319548478181639501083665121081669932140846506362378000938975310012570569746712328053532106094471099891992198220214211203469465404745650143578665044302133293150311424564743222923752079703085393669075440727526760409676758460516799053797264619012996347951415142905291627170090847828805563974667100755176539411085728946781192749275517480790641476333254595295370534042185743909238002970443497462212498623944137106654474360658537405856573043876934371487432952595711094950162430200146034108900610251269792553320068203138130163899565321055732102542236135235555467185873423167213978757493067646637682221625387726281006293233403102606626346269301276365795328574639455139573351729942233461670516145885107537269183235868137197902168172843917151833197957336496593170491744475703982640404611796794751229859692563550287916559743693631409986088640382629892337309954362288466865123454958594816946116003564541818340135928288619015470087692218974344207078432523020347888072924168407324975249842646431792841804483280769037365456887384989717589578561095753431813673517954612253823722059855299124909989334746961238226964984324077627763310863589222647144178757251291967182102979361639985692284320300822911709502329921427840791266010326994959431876032709702157802290903475576038572970745232014834933020532081340338057861491328781743693147633538081915509044403117595114803499874256553086779044749503558922371473464337908170964002444500551982824608945168971079011470533547464360355656315166272712244000057874330064113861271671916294913235049915600074840745252396875191562670883023498486195287255205398671315723534285494765730694558334825212839746644232345009880467454240972474451616864207687861767466363046538287592754562286979798283133451035116462103900191915961463678365255460920665501411966193587902793310095454578783955830416484767571349448600226548656633477223500572127071101716405033960573131927371833760061167127564803039656156803386643934659559486544188083217897262035829652866835095527648165056295946089909423827548377942053035128846957617954000271677249459212964467331159675424155189557958264217643195285807680050729793987217287642354297683485965515157437900305255992686510104245694235007270368755146635928893608465805536210229325592283477323822359695423214130457894755419274836127015481023106662760931416710921397137407045406941302920845836535311657433366295109430698610658970310034229647507533309903805055126310476550817965048456985263663382686086782788363549999533802042873786883350611394090474782372998177158466925090898248244663968945189576072361909746287790163190228144895283733366579540916159141862341637343525639291395818463662518686762930876673690424699326817572620502675277791998149925818628274049095101519336788116559325119984861730638912445638602304420497661616121570262744196670169328239884898941479448781364043522980199141161783749232486297023550986706425419950686749880428735409756439239473342509425800649796488300409017442420807903994004750664776351559652839394341972114910952553067067212648018905607087625107339624432088541895324651678717770405051588568812640236187640895889913772523595771341591996675372787234566330933478261594350410702023226162706515626037471770182805354164778273649529624221595955490924206315977861680650663158695998083331922445011068791006207851967143632748226283144665961303682728078455580790523745644984522053903337500837010381554271975034077756051369834144389642916357036317627935878321763099612779200122575951715838690801153595543962374524981767448578717108137824889725801001817823647298721292244895610301787893120902286552503828265232969560553993465261884443051109733977060839166689634658221256976209074949356988210250702171604986568268244232564959307053360866913209086226344879028589288285669169480855444709415464738308750149673999324602104733543277220649533065905322286057067449284878790131877334468778368774591827985120196579539540897965574236995008918371101835432165997437414268821850022904988657147335596985599993686291334970597473622697774848349470756805189309141138240980641988872508406551191346011237578928614030480290192099903889201376984214759938650719174429548792958016366249462427288884821280699954352087418828904377826635490807711977803215553271163575550584511084687677269403596672617894861334405923823835044243977364431453668396285690636973221699310887480342262406571752496937170283884282390067540125829510201880217887723937660021596814868367321862005361428116050057455492670680631371733768824307803197164287276932086593110218813781838874507245716589697963447761522688219569687695660343172108734892656099652543974561638010631453168555200817764312833115015643788626673306396956351946889092972365511495700899329278203555427887897956475282866670100685106819568579238667533678034413306989922307365956160420763135744650294437222345999302531920239465487517344079214069206301520567292153585756613550251196551884571517355158025356109868665984072796630077680558918904330967411715728859153776945303657045373124874404349917767388992462277624808449443189922120486909651012359877065011835061190642496093993920150193172417210870000255193375335972075369250698723184955344820640983631829603540617766084739946858689530764619101588553023584453822391120462763126681564327213406306027751632378159465802185090374939190471225127354741056522896491969892156521348527060166754032085210842645633596232571774812553457831449697260669840053014398480356284796692132712380284381324149247812612863709966575411163168351752273953677098942071776885008060224291743469557412054341681678608337762949301265352948488348909317480504042765295032882893858121941253628804968466351938679176635266995819717450572103490020137140426030047732846279023815342610699047458042444008081271258970383019866734651750159402294268119031225852113747471405127717679346110244384064925625653412024441445318273032580571286959796172264082214316991805737191486744531998354665586498890970548108366425975346023012414172489999169173794840724929377884410884287521594817485506316268549716898066526031933843722699718564531871109821006261499931670613696871228046113978586058839534169568803205388690000895777016361394964080015915609805344945712198596429525392569965165307796968462506829204331253743488823338868178257179131413161089102095324421670311790735528243179469523654087645057164799298438538357325054713224533192274789235643764791866632954132330957791966287910829295595086719486825231246636702625349272601108793888912557776796821165743214175297213552086818336515147395572405547924071511930981208280708598458662322692965780082803484825706211457717231574644359969080735656271889020807690568465972872845143487657141494938911962378134300470309161813002324089028132015423220103124309102387150467425125854697958849451611252428429812041768190120454406343016161859421956017668637665710307429545113023759523228774651939862688846527165696613165255900591077696652759742539226838632040706578225677055052478487285816923941866037153912643016497318561294096723077972311669915370210302623608309223100763883538989609995210825017917799016964526426416746777934953399009661191128117132416930145631879084239850823744562754398774028638957117535938340946133988783481994314897157268976046434130341056718448294909385966379565454473988261306583654323027739972767541082456489553060649233064518817778165571738750555913143817133238938385086534251501274389947620111257647341799089636586281519950009172062061577030505479377584751939939250624334778274424174662770449671328994873795309785911469315154925672972976596321514277740332270890102946929318102077074927145805108298079417856495261715527371099018770892180152387254994351975072657310276994018805055272662236880588295057998287751944460705321819810498941412601426634976442212656956670824185412030523789318957812798090584993914014769760690354427543332505222817264663837085607180087658185955071730180777358990084941648313783379893373033380668569304063224675759217984532633732971379005201433849288363846388315132901146567436428442865491966549610775587442695550432326664645598896153678472859872969114789636591083214964135001487264753368256290793095719790936439635304837697655145639715958079429991572513602488141361691937114105881292157091338362678450342327491912960469512360477657991565123202572077347737443718603320095815759223001778642008556230587599615639130578725986326561387466928513457614137260952217556590831446585610485277007713995548324001833798019666595510323648327593662105630336081812031476891111115946330459379877564525643964244474112876643485623912181509590172720628727512472447438740265320758565025192474037139642790850175807889836937746110780191099673930559334646462836596958702410843936228731421301862184095173494741022133914135381975274341961056702776840538544094753695907832919260634168753530733593897282673902470804800036380292082443681725717350140213986540568164771358202817955156719784593817523350468296095693487386958699332806554590006895155646017871768764541908004971471732841190771608227754652066167945625789685700851941448246334935219610423865512276420094376281962334509381603521321378657920946274505034292447870458162419409686870093684835681352643979078224542254520435402340573294094073793371519901527550754220167955339156335455487028945991527370746190617058271332799870415361181673207257359001922171625396166795761372716597475241799864351563522741725946161530065094663916917429897698751390790272484977212821310286539492697014438829157296813537367121212735722226873968160434139057784230752905878042642065764983100138052184956476936936319859388539363797810591228503823163517797656066340657557159106371718326538435557169118847452238891879288318724376265712427427265822493683350030534951396440946337405929925847685858295319718731521260686423758138870345042792720247090364580758863132565001817465470524775184914309991041917648689751237681663986436262664444521050784450768298507990994245080758513751256816744666421523926318676990509851733354370380898718530317956403997227007934070446162784308001360932015939006255335580735329491754680820332364816392001424859828674986024859555677533861260885174470676975782999034863602585906747227617621536431354233883606663883560816241658910077309471780097240699460505773597251580729315818871287782772072738748278000785288036363140835427136686669339229721689205266048364526493563799495449987835712712502252810914095874457298937465303439134788205944156380966847094908559526941401054808456837215183591461326350956033635197345661906076232082214557381892869517176839741710201583986652623760157896193059784693475634641904212338146338552928376344204271285166800641515896968915594271177452102034409014354793787900200684761981181725155519089518344671341241628677541061935261315791941778067339172550959496504553719095869062929549083534096302456623296103492309994739136521862648857614936583741845979618192213657765840721308951800526919691826981107545090552182379890909637533289393331959294614675367531672967291324692645959806429532086970619863296840964398484088346416207189951199281835378668423346326510697200866185074694002116339347856120060825489616276311013674986892810264061537168099528202445495941498436705606502016978450954757077247160097461464591193366259303639514065573496133970920535742390554181122185592260841832813342364886218959135129215858925174574898710106351419184486755849063551718900815038201290800800667210717777536341232946054540235505449964915422186604068512167245221023316826706840515403878311693123040203499874632881621961907698659905744671867416758682887446002733472328142566642311281279125379798675080887661626838440253911358793989928116838107995347764138111387682667900926830884826010139119170780557780400853585684338313744597439628765712974646041327408717276612835319588623524820908254447997125801942495186897525484124179471743735323316437881763537709358375314649504582009946598252982872663552768762474602893772819494329994140804789921452730187330079028995910888014808086343494165648606917147597746725227998970185251086978314855614900506733962688345600684068132299129579175748670122577616409383408284607444385253514990674635285642528328737489757335828683302778627792957855434343965533273173632532555348869873138642414669434409613360384971744551039003451954243588691128632310039103329398198149779307778806934843197556988760911593582219811846495191743487317600786577982565282641151005919447178658633512188744663004580557841109180821816278044445105143257374581832595408335330949721396594054550192304532928173560105978194074487894854202679079452007615790242850010967624451733256468255002801721344910608155419323819033737153467456380423840011796078619496952368990895095038986287591137929675447373401939557042944921815505407028376937559619358729051317023253525997933552610160305086332642826068619673814487228131123418019976417912662356908180719771861784603031717269044943837175543971332380129450105043104697473191930227245629868932739002945412177276911411497991574802199881431009966257657268869111713965046053819709242782035170500458490920437089659289565897892046521939059929736719024838184347130572103261749932567721258435170504192048902706992337167508647287421979060996687276797046109841436614163047547152983162659074319698421035360975328934874753370957270712592703943566594380110857047093070970415993624733109273805647584414745141071863246647912942927475638855928056376367308971275574538049910941211911147763747012435292168228922530404387580913978277156404605808362473288386917839385505809002034348957953416489496157353189168466987779931697565193654526346176162862947866118879232865041033779562789294060603154094461769342438552950900487607615613925866878360130824944496406876749203738274343485007306523020610703431788110082777672836400614426313041401275315848232167198861970782884972100878146786867709209419318795320288799620072693431033582206967578971321221056087826784507497521762878818639342625425866149288178331897103085567625599875739132160535869654903402984091129623803343687400887857727220020050463803902344888691929247261191627847403791028349538947046955562757748602492202624640581654389149170172672708566939285896600412121488559129131632464231724393431750512409607679311370315695230532549131013328860828674705846897006702379914687987056524968389917257252407996686814202006592194714380736108328509199130250876044775384411650198840509837390658160328976661251716187993904434111732054988935720671411891037488594418088542355935785512737486795868083313307930612021799230883289526701873941526156314433882012119824010120721032309316652036844060639979240559949896099371380491976402175236507541645136632639345562174264887936966896440700973522510965397822024649487563695043619894014368677648931651219922103174326739560442728759734571431271582553554507932951275169770764776406973241967745111483062998861629666667380818311193091576862688199930563051571386150306264148501335166213189512315477895299144929530028349529081623985943933644109061305576156001381535464029683710513034988276087657037466959913094805111439994437487082148458744880153636494629114021247744659066589810099025805450132996220475333382296526450269429507895322431568286985806695037337435725230726414965816825528204186489301515806866287895177243059761626339046644127296945537929072457060800256228765931882646612464251858439477426965774391828918139584529772097994127199360905411747320030876783092357619432363038295176958818460718633176047118089873970913536477606611464543535909678814595354362231457766592910641675676929926745156025293642398588298417210872068824096956485653136807465672803789591124027714813055026604439371749428574370506148439334875177948790237549212680302110338742548736418223315665474527401553496564823572535455964445478617790250415394271412031376674910473533017176143664670547961543404405874235940876603040791472444843240339065286215372609479627276274002576336823205607884502905012240129826931860584205574838478452757634036753066790950462471299922391894948968416948347674311607074474443892712093297925721663183499545148682506795156390620551432688801554183734228629995500020244806899481554068882511809742414005716154695332420961752619135894217734079605531376160108719299407812517249855241336286958800092181604016739550881086064910576408635153769241944632513903014029347076877706827714120802508866935193754824164496988000368385051798819581836082022329453087038323098967758428130381494417098446415577906545455130484777837093973916479681257076006217060466703363002878447664796108843514343799416944973954989919624216695462922459324513460409328879531591012643350381419936770885975934505973513463365642399243696689621388025110315504249649068481183839714691363105142245854803081689188589286927572686207460236524953047702720013917349358885269903130205617410037050230095748296944488842766209437680522144752631791244158618340267241475130318685445980417489042358122500212278197515814931501416641359683734954551878696231964583955442887779562251849457887014714700872692086297446319067937795442413510606550444250891905220811111760307126350516617142521622798269579443175829962035134479901556660901129927981091481684712417963806510256104511983772962659437319156070493482649081927787132433533676651151182905090076450830479116685336543094105154530422341393589491213033908787308757662301339972651586094956481514876433871232547164141651865140674627741011011768811289827467313936168721757747550601733883197380406140212189433808185055143450179686925843927294862769045195772938728007154027733974103475748002061915180613401027462155195770899926311080981087095793637140937233093906537442558588803658592111119152273090611798382320898561139122697990316805465783524175133575649713593226660457920280255912593029161385113192795035880034856864353338234314404052807302774283674354395717948334029341627643698462606526354711885611528161008398203096223633811293139986512219714552069827375605747813780811499996648176015100798145679972865008298874521953342018349769872151797806957983856559657241576785375318837997014325951717760531791067759064405129109375628911598734323125198869402618123799653722824629187409341482309660560655224782594160053024711639641660568415748566805088194701414356281311052800303547180019696981337133628477103793354048821417297257356803686147033841600688015389030034448660431668942444600295059691867468954913563793553831044045002383267951601615864348413843946863356926151702019979163127493396284735872019384347858901214301686527852585023927109779864157185920597840095500688704589797668749323644486087623718612147914488720345032579105300087959802717244331993225445778493560810989092352338427100887228625061647434854587432596819797252216087815079118424383995340940066418808150861835917629071659696923366505533149004304090789836609005776106708517954136118616130823711465837858243982026477693092309828572580923695773755398019638615873104031364548180062117065843891211061693641415770774926984716296242796887453852156839352056194997755177250251720173423831003673142901873926558100519273642369596826629447064173934332022034304314536885748403530872383150748595690698443312518810954643628733386847387223691894210907267287341023639480916733395632079584162483351523600048068998788126166804753658272554829326824394192888074565180044366180031043916394225325093156568625839734306293371353777393202535742964012382190769963540638311801302632334384988040043566298580672036140635956471992783172533607495376034935761791062546514320145519410353788273136972483845930346931890614571857586876735443211745983054825234230892236953013005080480223354765408608877272324283200617222815535579597183757045381026690367170544004385004928605578841816122711783902506889894983043320890073995928985150881526468863517219866081682056288685569212276384846004564885333795321223858433695283255459454882387712051941398712625904061735294994887606638578488460036093628551299071458398671654227864558795463366801389815104002893820358696703142540857281223150312110378420721141841386924624686911140347445442893165577046897904350172413586309974790014235082752343704501566547303449907125691691598308638727672678929634023009872881307793911600097099217308709998893003478433920944483267019047374727243064967429170148468560205830588202156074325206195304363182182951547967951627536893355202463620590005838754189983706572534354429475139516461070561882768699416727361002017505759604799138368939345787650077894816449405265702970959561559312268051841072819771154884110425158940575487064789762914080151596350817509010978968155066460333052083247589784875120238206594404126652381868348624422313840030739550442287870112140694087453935334329915357131782729989504703100281106238131891584384466334026154477559728407222661049067461244992468473081224569674439944413281613333433980786651118959145558714275158153940208062767107463680051661317000984325376838699884056237454928399370207691569938484457515380356026220666136686338759046158492064693284556261658045721460703278583270329380203404312888975019798334093569120419777507048552215058092654365968243448450426350985213373916115631574708541347297434650342923241145511158616206027551336772058378636147967022800447141158788564661825257808945266263198095451849376695314540138875112829953665970703552435161269784102145927608578386087617844623609813239248717236772741187735606562554318548119954445617554199944692120242694179431916795669973890784236955499419624275661477197997013053161529038030899167856916276275977270450941039546819746379167539350644435127214078213082278878797581698826507129337138290552439943897964982824199796013874501231243095919139816487663901161863908672249953166903759519037524605575409126960938578714019309873247892423563628465999541541275623803168045275093108528980158338134386194517049883070208888526944413455777815087133434048019234492084379357870713669120612745433097675062367462340895584652913125426278897485264921771379919836713581226621852917712988732442022954218764857346600664307114295217934408415398671626240966044766443966530621033678678363637502551622849712810096350031335513736096259967022778174189840363420122886589348952002014175775632732777590763756578484772676064809178231118467727482146031573384486411616999874957297649092842942713300886154904233511424441635563133977897251049002427818987376934143764957807169274763489218416538687704448793830946337635210148362263775819542028643096177092714375545623662623470647726170910423958183242277722194304290227814351725598083312618287702308958255458516242396915151921818481359477832903281669889719231733723146830486160796530171600058710749131809926271817105117238501971334294497589092754006259967518900284632592714148496965636718704558564479756936409164288882269137894625008805646641393517186120681288314009972572755235621041190623088525529555871252028824589711850682768310004033922290401087527293157607849975557323982965166892374654886404505421065958155115305546090312549541198004797989881941413216461397262325991124364161099441440335503135666173370057513282245978079411359214554411862828607602855216750841624866191826450920168924847815783054220942277444836792594915998998659438531638638683625329198374547336608861237118172160723140280286759083127388955141455651875842645267840726999544326024720948985622794446140246761118514022310892547432197272325143036896189408825614884503839417565249974816501678723870512335350711806335678541214976244655193709241365150990224263567098020360973909712500976251854896256734113197002090374581538645936121544452400250877190305129219381849961662645706391475154002716966451542236293729346096222538538606880624258816510271367540600084296745691202634191644120114654971986776820722693763159551589842969332394818894303626571778839654971339254180446132428129718622412796149865948355468920690548463735779775437969087750474565866261132232445370095634646738969332514922972533470263998638827864845285996712419674044064952302843563024257862644768709849421869158035739248332150453363905275531907279828924573191712569009835957725281205298089742833387197645491989293962423931749371962375144684645756191475483032003293812062463368192208470859117706622956504932578020195744752958825716586594204060826719668808892637080376938819004180027331732448780277243529959461398892155676496868415853646294924699811360734226912016605528984591654344291274949350720383807205917925985035789467212153081154563284556132374038756264998675165657732820032497881413180448506987121105866822486659066358674035029281976111967366509316155450185978067058762249595946587779862092563900917867903290595741094145761409609629521772760820819537621469374687219359769098851921861591276909362910649236638871722055587108137055975028997530118521500904581094721320699602641058555466845372910391386254128778399024444798577219566885794585410264425564946124206521107122565799610298293679211759434635399588386293588544040623219464275134844164627717588713058427813804752964494097284172125296005793614345643112847689558448540317635613274965825662003862847633220887989245559392750253820982511408737931319405675076130291681673024213067648779132338168246467762274425818294932500776029812413764840227917063637790943720221989673580157313919655537982593633781842429205588802205396624920643062957266815676107235186588482872730886664615735296359591324035702804248127723828697734784143347060667790864634005934342045714241927836858341078230812209398929444305622896062778367947382507327964734830558982885395431496977856788109010710457419628009324903954165440285942235210369531097515596398605305110697133663221087245174060362597732470002258697880894401375000180737447232726469016032606318270817011613852371119482330289037585651191568388218561832290725971815929992722658287209728850751198262831342350985646428292789872953955705964200693080505204555321682133781810825843806292035331659345341657236805938782161726342449698751789268133997311196444498054007289678728125467238530139966114290355036989808636094383718438213177638644208207600094738062225366500518454736421566419313183284578091602535776169080308343555226722686585373853954753882977498107038871291357370790706444816875676366239395806763584044156076850088028098609558430616999285299335182401464467086251680174207277701967444763319731719684064214210228728903221457399897732360447439993769322758190982396827012494307864507592175254088576488778877932604170109677292094753156689485871539623564010313966188859733325759926073840131409835061744781010926745746040508498350874805047196395789196456850129517050733822689869319143763485832784536404316833576385883325907058240206791612564819249744522213438470245182400712903329347258771161092854755485984564973654994681726823489118833923783512895336795336435174216701592431027206475983262685516978374797894379455135209167658979518575174113290589626889848977240939269736597935867292013657247426488711604423081764991847996588789794781887946705786632349696274287026056291631373967081832963548726293572952481478399207459214812550501996899281283882321234051089685986774115259524930300280375895442214033713260269780053687315555040936974811133087164302159331269640320131997556574660620653449115323379233152517776767736548712651154427098299501641883586414221513532126195222651347764773627161185205531877098309652309840135820318157536157424402963461289115911889557285747052409147327567288498763512393842303982864421926647109709326194508761947565177814430431750666284856234842350096116982027643893177342525743473311352636603895771295021766988308596251884190997899577862898015974884512057098823284261755607465427895529026991569145405584510123043294687791267429091711721249054649364891616292996089412326088668765339505634296083941179899624810388925152476104779028981617496234735936366670888739901835867405438896894020287445287793177255797874157196251149341826538971287081794176418171228669799839702412017190163320768983373828128468977143146469956007129301652680064243110628733807404023081121166481896719311195359932879700660861881560687317496390972696702838960640557648493992841390677543617934227886305435029563511684813101137345850259281497863062412911545479995975859913699614059604224201651149341488591734013859682518811148696349836333809024049251225684189362571497740950127547122497038400629010357902894057405731743819120954652117820974374580052224373334790249269127897071584860156097726660000234074630390961291843289864188074944717247300301415233390441131361171327225982360051877887038316243431438433432115529862783268717839638798753250753426885557236152065232007010127863330777202283694443207229455978786214806380346103675736353412848394463614270321664472638066064148405171510755865610336480724746568074927309561545873415987680046787316251707712079379952165255421242402755723659791796509517326419180905598585715374759747307134539495215628315013139993864340093469941430967192927671238494946539733771470233739592848496636492808604784155209695545413948749662734837626611005827127451432736924183187631282815398364295482095059541845302455082872234085887988988114605773230341561788409249989842136697155751282334807068858079095842558887969602003660675918708093190519049860588017174269331454714558176177338984647300881969513435970520639282803729373967569267480385526628454539222447909220771379379567500418999036907248878777527477490334789047749490428073219335537174281208095641040953793441037308161746521550625810279669303526952953305955017634783356155862216618413580025097595023837238611241108288070790690533887690852276556089973477357829804959227317562776894241191457578054599776097283226966944686380964464420045751471421668875119151266238999598565851208680102302670662901714058532870921080236132274900125488575530332625862946698492965256120889343492866188250701610112634999988987845354329227698821216341762514442908056728794330852382563853714075924064724026106019010477347855564149237171436567524919734514771431688560619772531909893279284557302176521346101335673814908549794761494132606324068311260963675890527987447496913603927795507209041749778893743946586981359323603743994002744313619420264943644613557559563755197670362379717826812285827448022050084478047959303261685887084565020322409959394923958430667574766823303546112202319726719003330373541101730393431265790160595280693849446346540482734309688744470190909905973701389189338189505186651890096597105124601135159983263667777024979673580884264012881093601740703794319569139046696187176280468582208857434320187676442299664039024238124565530737647241236749746332726456600672814157797896586382120294126133443260145827376002923216631759947101963155789378266086498670400742211893287087740356734655158977608864927627399903311244231514113395522080910068760248737396717567943554442376778141755498278316777115685259006129858759368447628503398580721163835968199872846989436393031357268107149167788117424910642964591144736907507295992595533321251961356972820320373823974231882611816605894301756924141858869078509109739024959471658949598403869908031792402990032108467948912767203674425761468389632514699670641421096462689413907978990916924313735474107605598610538650913284879561528944251191204830965837660848630942946587460943886957822220785299427424905599588685944327478893385417853383738154105693142892847953155648031909188912762303749807486796359129936978095501310412865858055233353485091450095350233656291765625084239661278179853732361101026876717110268489118068270187722530081355351069369262553298593535094794047974751224193902642415221225718401019279153200311830737737500639993688655269464011428069975084637354167476699951988171083330048781631608704764961752492868817718673559432488119445060220078823950946433115551036947478325478179933616391377503019287628250541678964916443740708619295277136082013518225965514220444397532885532438288056505012810396332657690894970777865080290651488728240040266790808799442267880844519324563676388430505315873408397035484895726823647405278072585042405626980901166586693064872355692916609830881597058244530373499724919206072230227290769548467874801799537966298204112816429724480480930571250556979971404942398691886688804812138923282860844631383676761100669852128852585982537292002240284366002332984409824275388732691226552306529480648675481731533680847511540879630349253326628570160550713064331326840428437749590039371756177742125783100675947248700680650285546742697600989879737570999292110950269664945492407346859260799846063752515341798431208392665200138916033444182796480427207978738929149571718108284768932590405526353680531106540757050317457963885677049420366413951028635964164791376891851390619825347085781768751339969224205975913782008366869952393344776159184928628938673261061895227101765566776995816659229113195423036883823354328600027241943117282874399373760798907506626121109530584143389443051107500643888626978442749200078276185592698940752772617670548460899274538969024025017203279945990401019443200615414407151245876957989471755611992212578329542990474841336589412386865913238158705595719073369487469885736742365877547160566990289938842760553318480396886301944406429203714087151335034001736611613969596167349805801791556932744513188521189296272810864489951919179341494609318075720121582638791468064492933395877911536868518304424469204172632448517689651824367467072197020857520572157355640594052242113314367950673030923373526013141647263826397059565145132100382873088928979106203824324732253205780797403768810427099890300586946685336354077279119629098383670618656606345911526269127810500811224651645636092457171428376344312493409799578682559905704112133329984788230835313814855837395152309117121564168744563666224416098975367431278593678470686779984145076116026894563876234274699659755745630230168258190238510500745895329500432702889139226803158878573752389241586584887846695952718166158862504162913822470604584460477762275462469302491334063018458409799976351270292983442939583410399901355073137518677465333981364649903578452715430599244395579514983127278630478234818221195487895479604895907354991468143542796020635622744531991515797128468217409189659279567050873417436845650443516895855668562592856788123614417617154015940322633882551222946421597277433466371954785749160882962227962545110712196488952830558429353621601775997523279274742878674015944706229086809032301242950144245163671655831261107566105383668159257427517201661862314704153520065116149440185555597717401700711844502549415338027881758715794713589998465027790282566354063881100541198603021672114528233344194688948897159604068682510326150304474798306908300498509533617147298662956113407279015876761549879797890532601021383529884200002677535367505446173450210796397323073133778258024015175755244732964634745117941733696762680835056771967873018307229871648907866383171736348258118939837608456518988611770626114369792716848469552473517044207138895501647228273047344006185080842939225594136946776703860457863675655755412443266633654783050602370401913648725237564913400555123668785235987754379711847698893415388960848987475921984423364105554640919054819290976862459352746432241428121772516977681602476977266880858049950862881783479524707005344321775169057057903061829003395976511869094678430099327739640310250779849074208724356184714564997081775016409068308441980885354662939773280598369588472284919962100824754894852530711455354157149385548221622095218513529221235827508112971955786661381429171145757975931387252658399592168882744154770909821412287927779649172583900704428246567465593374933526672052880709589596511130830729594987093844364797682325670520340750902050119543512251788121269483592660252550800828558929555406149686821570261230608717010904784030591297545029473591244340451500412460750336275391015725482208604794402888867955101722140451906951920965117898255205590944496394801088252795604633982705976265728506195867223296195790839556825696333483775497765858783010328367606681331887021644183947537170477286242138634680067339728562461673944556059827692926270463615121672414873551338218948214420980839678355574385652624842311389518069953861827305424308382780103709836821249538292794701510095210813479019096949256834492089912345101221040686708006497845244327421237348520727097094520475592026633409419752430001199145350100123695338661092850797762412706277022414384164515560528030968695576894937724518606290048371064834138614438148900781643726576807752536905819084366623418529829048547248006768256260374276316016388472108284683187505437804758384367633638326942794479107770348749859573023807076166141304172289178473921973193784803854100195311720019748004853551285426936977106644647973712202230574959227289029180356345451176160531504906443184730722754410658544657210636291242181989741372295835623286522778552011165087484434422048469011234994821369531939534613810192591910038765212630812434839989549905252438446551141340837419898641596106324144562885319146707722310684130503043524214004256911766932764563345181762238243917738361717318577538169190961711881843920660859604465206189761914244062851698543312921498949294955099269289917462143681678185820433801135281945489092089941291921728282968757232321504250496106921086025843585099691040487745723117804276794582167762279352163827925085511957034600015993723295155084271485988802991137890024246575890392976690365309001252962825671400604059451326511803035516925015117470400056372403176714900350894998047996941145127636121697782894179562838086573552952113430736861791469335221403826242466870540485619799773082699085732496369098623641015540391328893538810463648020073774800206424857839392705980594218537083949318739616808606148737527892671582081927819129757210427350962515921587646255820257094923640827552453203732916540350860088051620043190058291048257058273929785188413248051032578735677806122980899922818851362540015003405954537366205401618361014419951521942580165444648904198496611152324279228527886690915438077878621681770561126303947613003128383592313877481127214988699045454726413959713955291695663411561995471509137165430617349401756080967197742722338714652621708920881341733505895123368999197394854468701228168360340992401607694728573497453746187652132351236927117401801522955415768410956326717039421257554813204922178270721322036901782149441545345624475725868534066278224010743230676614521442048848803785494487731102437428211374284128885210321276120042892546984762800451012884378692646983028747511500214338528688864217480880306908867982050923304868394979367055274322600417674666553616729367069412764699651285367728553392128774092912769877676126230550834273355724041797281126322743113512260937461646033404611456851189894979200781204282842693536752150231940453833274713254358677427174387614237121288190631406084906605140376155762225029093366892902273878986003019721931239521445719472300736833257538635694974711968693635378432887959079241328175370488670275522905478387548684298040858240452944616829389896931523699934893746337501379887342679074852807077868940623564019433349697680754223064918765958345894603972867258018669640916365399472920406823515133449178417511859321258480509041495099067251937874249427905940486090295998084327977507560460437176980869300703117243316762473810678313637234470428296831463819268829695651848716856717650099118128056441164633424060727144391201541114422127537402792740556890637400009626450834652927103101362361723485661625103967780668659770481567811726960310383493197165084545961333669736350884004626478006717736495805616275484068250799020890401693774538494613550907212899320753748909157799108465665415216195543599203596695884517036691390063450352985195403850830917052211907777762036810898998798298593952603961207908290390145458101685107369394701674239196618311073474166809533692827670843466903934776116761004980605772045526843667204704135574345942728539879584964358439141313613607119369201803243453916053585902112853919307521394420109892614304743998469826412334342237786225041404337711296829848891602741135067572941517555573595807066470375243522681052516462479183201705734800415479503736379022566831596550770371279703767431558106057902899711061812317131642773020700422734822496848368095402127414557513985431905747454782764282068410637413995576279568072137335804870395834464384177492024460473686870206324465650328478693542647968201370527485984661226623291778550186494383489104587496542548598257377949369596187280449115346060038991722589390604180232212000208470920916683844654121838956996057240921874724018800055504700821561942994929976502358370756070428959356928749392762487576316980733356841207258638525684648386769151186942426585249879246533825900986175509909795985209837826140415984279396103361185498901488534749719706207113198330073374580952791715352414185412753915399704179374887227812186099831225501507724307799537916970961158584023256171128670619066153025645771505151876908953096007099992204667156951695850506909051159602854821511545257384156319270613468704169019674778350064032677147791123530155100321097702901275630091721036485104131897424991377670099577581235234676561345308277467869712881431686220308675507178244996917597549335871550814235520607037864463111183494122157679417748502239501513449772067036033291200435503190052057009751757445319138535911103340552780123977193632478070610476807432519885731976534150077931804373144336788794464158536638839404935015438800921426243228901520847984572257426856120579946662457598883905789977020033155210149639859111643011991399460913038987549272833721208544693982140385638824414692485899107628783507816792551655897365850863843904997229805775160039666833488030318238626469646436289882285936474107310461325456087415242454339643831507044057728087880846812542327639234386007375876932631696750694401815726064296032690666398698740554302326741453125909832227808237145430203061519151763488027923917846105504050762563774563109078491800135654146026203516856606051906717325422015350129907485376991422886556702403549533358988884117178399251775508881578705427758108615723140595857019023111282038187417483174837034428831357134916690148012301161065553073626240125203167824132735429519914349287138469778325980441659973216319540509439490605506748407789898691029319428360767123989258427377195997583316275949315476285730805009584743132810102731337337466267580456758525393263744712494539556783019973312551091948728596754879108086240561724374668322066106641293833457445849002235779059247966504875842827238904024799497302110142819633766499797235805213826017713906402520489259235896175477447746975299274083130335047403392852654966743656090380064483467851765010013875482701054126896639761915336716532936071425597123591101794953821727592184076209151202177200437304027289283066975368269133334431665547586398339064534189713120578066501850373343663610917082927556697429525988722048656022546122398843220865271967105889235360151055942375601235906671913659262151224809286354631302299156955536417794767932278265262567038267709605220627092662082192617194710812796409191725929594514027423005616700233334865009970925627054288725054973877569907023782872680985680799893535372006026744253243897510882786432514576076570664577403852651309295526768708004748015330014041716750739453152527858179805158019405404994769135628689222723428464841963946521142010533566053456483781470076922144749936620841197234784385544659699783963079666482448950078170686028021913402454323711315753663940061613910371778349184713757339675852410701051453524844788713221957891400049566978896438189014205726467870797156419817318152813636871867106204307374511354357275501252140339896231926309569834640261089025544871506455581598672503644240142715600206426351746820748036512046070071681315940939328650457918738209491970777338662809363903835821752427663948962957439323157042044987129717352705030557379236221708974541997152164364257634734912758370095313769857913126236279861182556623644037647758129937044255673185588293276363130014964521994773522965076770361345522337489648098032716430926498588936873983377182074243392554280615805060269779152640235287896000505219056765962257410711850773142283476682550841877931462215569231989271722695957472769788575600215384429295267374225082912085973892108785494667580848210075130812892400578947168514723249606984983335649229868120942504811657488166536883285227362207179033360624546205081788290742240594198663138433101621103613712891750257349459367759565290952476772651962916748348080754068224097670930220363190987467067207400390082102040114126373255319008611418538734256925732214867214254479115188158870265507427926022093792195481850289234356182965617130168227209805591446829361255686376233076343333641624774528045810186483458985369012435985342998968548236238025745839989378596643731232959929946113990126066037784910413865844704493328651909395328807326661204356240003806369294614257186662288191175630979244552375666841279175954705172429701002204307523971463376971045470228522035987517048407935456220818528177554069305974896615202604760492232417960846431778583063429054098475664574758344778661253235736123247708969133490744763866884340430778639336248859588189197749345837777696247425051542429445988714234220854445994016952725787590559658641367017215156433104910220280079519632792071870077598433403873971730096572312440636045883396318549632268453115645800292719692600237883695762063275535547182364634880080803326529703423078016313142147478481233347554875337741828909599302156583376397982820659619219140446188171659087673141654533970561877675514796299143520641862297644285401370983525482726654964375809813365527762742565173585047034123774086801424307546598437400440297852792789080518690946664761303714962598994628976109315630327164244879714443118405047145882751071875237066927308777120041191993743625436245664315032500451091031626192488562340451711145525754827682686287046410519715229579103334141926771195389211096599041883858320339446455810633092610423454748459384693099082303983951728628024031998910059494732348478296656706065683742177551540697704195357480878508526088450586730528967706151754823425074009808505749961125508367185112380279238217846312773952293657630499537608988314313613773269873803578381325097232690688509881005859305890786318519963827202956663216126069367188588528223476689515065288557160784219242686520325389643231355319602561718286540246776976303819361455707553681028422566447587212128814799720247030069348441149614815361922446167724964333055927073981754419451447796416772924544408312622018523426273736320641812017323207465935835592922223368725782059419778695641789095708450147816046200358222824772966346131665377663191071675521474375645135515615901878997956725855559738044357552908957351817214107107591293311618565027713580357653310314021355056112374141909810979440379345287940940889883151140728196348944315953189129207168203138513422143757068420093549327042994512693809856167955076704908660746813521805942445328793933149433295470228438349023885654620456142231997309278500565557973572199791814651129925643703912069104958075269417243763871571668736862587983552370674071402689831155651167358711457492224984567342239791554245635011955623162376038385752512464852742353945319131541242027478991734307511906034318242090566684833077428690105014438907826258754199850892800215031306229919727582224550226325031578959060282514281248522378173226372076958400335319330748883439427103592316914932366325204999708526440387230280576222344911787495924411036678128929344578649218908021350955719607479789908211740579321767751730660293254169981491069393890820009498378902471115146978793894683902358538830828488808830150295699775260330149676137179680593995213269443622575877151309573131874506352872370080165855549591137911734643429137710936541252135914102047508012221191554381295736561866059329363212855089014456610852336969407785465399739939159135041240095186203398839616780276729236418432551471583164932466087463002220376071076836494193204694388718626250361035748153555560147364696718715672098955454790609385614811397556419395326951168055878197209963195160141339100386175831399603382457829175020371141030207795772575716883773885481385063542844374235411588188326052191775094352722962020214206110298465222529311399326509889188332828989996941180117444739540236107990923205126843304542091909060782129840482954543356669546774584497654098775131525387742076587237309055854390902408265004431170330005769997094715785068306337464487446460105081409623190307454410465943136231674728739099340594234959043901328151674103393307796891969198867048030255749123355124541691815538246861214491170760496033550400262399301210033010718583007668172099091682576023144727240379758636542305718755922428041146271025397697551772018972277136483447435618624211334056825048807102706294952135372597937239746250935911502157661962231450686742270421442032938569261419487073844426225531699333912556071490750381991325711257568774440943113379369132518015471724998181228514146814709232859045010003121953742058534955567160219454710434530801806049991490396925107758844887375191831107828112466004655469997175932508805171179524026487541578004115418993149573826981941493338842473875240643241789573825516438383633175017487697445759707619278545945334626322329091890581546999831096564847096006495432672613378843204540509337980092132985271255554071435899067019428877477411966185863348894869510362969360020112618300978046351997371903750186570262685095051519946836640646508740780611273384640576466740036817668528555664968155476967646034696000475757515449069562258418136788639816047437442408226820129782288407834109908264421295497736958182332026945282753653090153705198642124377024404298808364007153907065594896675263001126462068073220183269051317707395220134545952013766338132829297699491341003436160600545909432499029085935878459006551701868390994562805985443191681490804753076601638044029492280328716203425767314441595357933440664306731869314722816765438730416793923494288103132903400384459851820201816214057611038169525689227557268708779387564240318621803229921904841700461837579327247226066384259407722722132158828371510241958505767269000162908946503544704946578096114181327866394073677815404762477324627948272784188869701942126253267871423611289077750399066181351267529342118682303817865806419905281085597728160988508513364841034435878984181995831791533457052770341306610364475171562712919636305766602773648867956764852671654120520857285065566760080622339161557974969940211446303970340245264204978728725144700708040509076782512214206078967559894825060024765373818874074393642420172978766387392304531002060153047237946835297295392075693876011729675958129309496607088595268753219750542790406023636376371543997665047210975348168524102964595245819310806787912838426405325612600148696015043976497962932155460266522022710557082884510978282785776137144622751908098899744385233055459493241681319273409825128343225319358068439166182330621260367516645911567902127028652136794652354211408988580388908512303210208846068759697802511347991583615705025787023143463217117827236158639869767635506339978546508573659029373764559650065659710518538021811424560100401318030779582857200421169276957687923698587430128257292310141946771778775601655299508834377487053836163481738059478905730347917482297146509663143260721750977147439053525025770978974256821354237311998085968287648981818391245371753207847775221137396171237135883043009551044539669841421895597097874122328346707822490671369283202264884716258606362845195415097581407202007230607131691495225364360459947665150210446808448740808718304024090015842041007677835809725654843271336160345311208864089759461178073361579645263061702412220706297404448242224461882898695130587537810655416954967012488781069458102854701379526583643581589076438127857657983239475927054497051832487964289411628822156458671263335940595531185566866617703097007296521440569621610054204990766768602750489137423026157400223985696835808444737619640821873360081934148809668726883094366108602693726677765542306220494955591335023591629137440447076502479559283810067937569532151144502701950985751245304609790426012724296643618929611800926204278871873918849258097452641829445763605468746335695128926695504635638814574170635470069746352380962769939918059779865476772140679475577458001489581071931921041269737887494291304360050864564843667120108151485709165737245866761635875023794473686693533532234407489234328439804570549590835326693967526526500493191577696501514989408278624446422404143246459923114165237123328698977926001661346100611036152675634999573265448021253476429955533117713804698212271139154015791965833853306854483781547198119548683377078631038109667030977634509474107444204508048396086911568674066295466490584573406298918535236593081213842306488378265152582943470846594290709529677505247126260710253518461941335979355139441214070994951973751857011672962681516455612947108718180735947811262646957088493889029660466131660547685549292349192081127741120298402180866058462468968711894637943382704726532148964430586893366554780446631294418408236470070250240151332043689582260028443309367614073679568998459875338324613081234225326428159095305894153390014778028216799324669727648922405318068180903603815338857813513468421560033185937501235848070267103026412610588723068088584509620536879345264452200651256339421707963222622205866681153479302752382600285759931041188342128231091033113232735326602543442014298718469507442683266372977909320885048979654371241475426667454439113589998959663721252869652552233618874198597690413684433832118224400651627397761462379543877811117826429370092137107636415832270027629770466614416725271441325416203155942171953061934825681000394469572737918387248566210371247971570827433467183353718384530416553826540112237410601032567610070441584587243282315321609141734321939358909618531652955961067457539292909644498214427504865040869132770111960242358045045746564638668271708224370985880011705571761805846067895520443916731049293609957839479461838002281414176457629229454562903421402613319174236626990015715013382116086291607207213878983552377439958067540378432406845344219045219704866372262872849896447117985647751212585167558612098237126468490848807014357950594311176812269062859274343817558918127138617323009937329211383070977398844458687040334285295624618027688524489415171168825054052802935491979625416718592235331356618718813001502514915183333555665094216792661020160422316376163389485791823505783694572391811479411572168080151404036622043382710779527279156169989379974190275095702725090608376534044708432962456362445727606653578378968508946157045068195889355446687552743292309907515774964846993299425363472705371946597907985353920744394425704875048381490958346777936119292950489214015472885510773055127614232014315912915679329080800175767534799916424779370373333356434994820708677478139484015988256439756995884219360989167528106219257980745335859244609346763107968001808546391999780895526582998666795057693851852812012179866683884089478240606317566267095314075077345300001966650100247713377448152206155435018925550575890094156898675443759386816725194900180024577857398047329853596459518763825328289249423535131903718192915761420360632648834079018583183521071232771636797857820111385295503644533159834327389425814672440668151359698045714576338686014119281184655288416465472444740233150236754942538930931180639195113121009961949818290233296394725592515945225563165605060969113777249232743361495895283334487158815766057325415296920721911672797839165943650072066050131541807359636511286430698073459720070175737152451773402728194545934520932223465155526883536478529418991342119610180822107875669590003482170106033830773374883884262194837712269773182120129710158574242879136268202651940515067658253914013387582916411192838612430331417561420617762278956521956505546125642205799854065374875119872100169662233029427410737799457783292551409645790284129983525307842767563345511114283119841698881514139508615871143351815271184898687374932750776738968793571315434030689908668261865033418039112117526003077335753227861704273872234960156558162502608796825984199462899884000881443428026390777278526959008042557146523463092757510503930182350551252190184910378410176571721675330073212858427750380998636119514774412160024760852952631556259961053404052577258519318358705814896686138159115268894305844901773305810989532706584171578966764870709871293170499514981722986122107524113120809992705869486250043794348782276732094944264364621575127039305426493593562035114758537867841573467361498422332022149782729210775851078331867386680577328527661611922575208227852473793707979211327973896924015344237925131753961933755642179730689355730981632912937939026981353795567085127341340101644686437321226745797212765228001650805186596532794536821970259280136886216220428631023449239365434832768168701477191403999806162819247027024603713188764457716135334967679211346492128064696751575285947685710233189011482787603735279857126272373008015231810031272609588909308040634323988743709118135061594604277636801001918510988683969816285724489323083049304419288021592869794193423624756732650456174982042384133945988411618344255558818280433401910832259980914536764570965700922622767769340861748947298703905331697276651861102390994400921633620301214675111507816174499467168495755396313503531004376219890079258426983172019831412200731042460973442643435172761051493995467140869944551127104598595373689610011695389517510934154908621259404520487838275876944617228700430687012420935327037427015593860646310724513250924488295036481492077303966396713687266377688285266942475840071558398222559611076032218292586178664378306954479202531190989355424708985725533112667907929940658877423315509848947705238918419226941814533466552766972453997165007395931004495902518080090564149924648041111565271697450982637861275803115757968119046886124665483868542302483998011435609027432459477360565208804843050001722926177184958134345647615220623082591802423949186266899616563519688943606480775604816754043830869458370308328663158490217576970652551913805997808872227672673072161373938238700218205239375201244267118568051626349068510637988530181723589459848204751048260983234929853644296899649238321324402669363076551709998548886932371950184614240786746289558248710020643107481744198843438869223032125344523305348069332643141363085825958460307774526986456254365856830802217998377953826092107266786208772983685698227327902753312125588840907143907168927347316039224480604766558072326758530704237031040450914481970114972848392660032638838559688345025654935033699947212120660223778088763155018628781759518079761355409901994525202641737357225232224758049699968676962373637598088875836305650788494136560092737296427581292959885025837588304057089462267889417599025346219444202625227704012414890263203523751250401845334323031102099851385474045786251948123614429423793551706678517001799552014754488168582863920792698219901062647180471410326076964874554836991189174077193662496765595026764191346050697998341294554384395131043784521749220217471662490006754930043894658618590041281144728477971040789763957531815299596384790521926882096852429452257772196175280964734981670622461639390140864873602275338850496189505320317222215873187445931790619513385030701569789050190632047279560426781667433481390487879433384851821337716570160139622388169022004988053721879835396219588119016502484080914053953645551253724539432762881952579321868085785772472879948104158189843274868195416972735423474672015841599407781923972738369612410792174648882758952398658298457299263240550486417678571912928104256074367363046071353073827525675131643837677598231257295189601256200330177070751188100035096621797162300797354210841551103990353961343758684093699849024993952486349713788450661155520474998953255882233587684756016825231110455955534598776225914090553769899757114197214534533167112603858664250138681513028483957642223168839539185364568945346896549479312202855792501407384950155707453983279805364809951599604466886194656805007757463108631285724283466823798132469569414797773608778131104367339953949642526601886717564908205098210448025397707379578141848794560200506467963090283878835475539633925137666699214022352877056426942182500250237948565045587543671848906162195007196220876070389123604492792393772233130215657214665973643835652471019113462314124644973718672900140837967543223883017830930616909123910736313217982455958927902818155834982469850333075105102657103372917620031824240744592577545100126459976776583663262640434017180438438498390804274201586460797722827313615908461496472700264833827528341704767481886543354805053122599816668017208528328759637286677085543056136872572664759341620061513366387458888243357879915464594131202401667309544343530378243717044764314666714938092902114592119652418763716943465649844819812002962597536546171273560855932646456206558267404304562770494243562352920008879372988362295165917650393924486075568465886059503050916850655493287773669409450466431149892412125865276399099373471685928469023245872129223626481475560968073696457128232213405115235111187651888698963246204563618017027290931246241023298666187639858553870531361982858567487029803076721161142777472152948423154120152078663045066425872396897712535533714346958739533807940731742755640328098818058806538878931806638727727660227196641869435338155968769201821214806099176764431860503750898887251476013618538240274788639729107440497692753066258276335431723332600153320070680752395892602491515302932226649093804792419680822912182250454119596509644789984249354057230992070630745724621114820787896077483113701639811924062761312338449209301339307397398957994232944936746789485856269352558773429937632915907668399686589128333130315934683345834629772751854593744743329268113080119725186097534624173117076964189285326156926045768830322849144435421013412043555488865178383865416297901179469127597959125279805823222482889435509154767244301840642724700160125887621048651365286465609173134930998174727239414692486803857970909858543344507442965702190007909361342394016044768258218291496638996343622788343235022552232772879864343791371600399578778845820100243041723817874122288245399603094574144970497860008181910964009899544095575723805900750261662943188454703391181512418047559236423512272098149464991975251511228052948143402639442830953209611632781161166792840964268955902637503263971486757383111048462084901107081451349964489166040173381249124789624222823263348327312974320380906079827322763767896474191454272485310914637123393113598700110154836986936435503247471640824357492975081015055055855106839905086014448103926013211037857840921920526539247159656712914169192727996724815231288941248454222317354562134899866136919095246836046887105596181753275255017364773597617407924274094400247900452945995892898705200062674526730075942264879034730841070837438099747117276696984785890044967408360748981552081625233066105928407700565242625750646680647671016709669460435845283615340066712910889810543964246031738225474631296336687595465052724209019791954902484541293606286629109152094422229290342939782286335647495505721438586542496726106773854712431406681298917303693952499534485968103758039772994158408751730485073915195851264429368046553894263096208132368440816101030944534841686176866417540704047958613621591761702076677615179753105545246484581169751233263407897009899878398304132510814616476399839484563003293954642574468729961922261179184625352033023174140505322015553942051874332858394908930649146338458765966999061919248624747289124847916815874661276416551011425883325102877660999161462668639165698257496183377154273127326552167824174188718729399427400908825830684338152577670071857974369766884064608651202621409594639347111268668127276262190211943263957465474021896455844540289071998178350997253508492868024158655467107472937543714070485646500933419023185449960533347440295897215986929143281596432677344482553376121204523960037154404296778671379575527506654474179168282903533745561526390315070814605224977705866442021169186693383405188629639805779003894027509070264185416794746494990920789990002818341647991111617863790417616665030721422022655713708945917308680526732752620128857436706543186741282566618361814052048631621280261441890137140768038870386589592705074231144756619636999358826215574142243111666032613987917409993854957342264774043994761753672625227231698726888542402232081204627829810574106488880181725886071162465945700042142069873918538321300466059849355572016108905384745586069190794274898065461903539993101313189262555791164662601798690083170904271914087659290485129486701546994936019897466495859921883912221846154007654373642835553125457889176748563922297321291438333881885224186047023325957114451126872918857928150847834912808199669035975091751059899123876367129096123533182665698947444049911547355844629064171960621517517265260203015948492802652550507716488257384464831219317316691418059563226716847574363618728668938364305498085491253693617169814187347210640644239058829004095844285219346110558905322435158727135887327478391792887841776997382425749093961887093960921005674009402329869554393180977162704306225027070074939232151599300185659670048171565870952898414816279606941801060029056072090473476188340226097847752353032061133125911678214807023064034504820038436582604421815888908166827549936435653758631445667667254273034522370203757501950998473624039335193218609357164628942693932733809171898761089422434637705084587541446488129854641173220265329703936771827216744950856778624467632131057311120355877482249942898540064417308550137454813913784974988169701826337404195858415828694545733026072649780511349493446621876076550813773116118133887555898412656417746754733414010622588692683351800444858329891941184784964118402793780036632984073855896527050929601479694772400039552487200820231621664943699708643248872714358063142817975201230768709711836896064201083159098790790856949299600377216824752458758427213408231639840454789299201012939752115155719238344511714413668767506597635103447319151415540344694970173506394316507265325004580910875490748630866469797994238370670262355512645966465177111495758720903542114541089314980874098686440446131299903196839511247379487717305722197853519216607888610996230192623289039704912750110039146354869477626387379636270094594993749710609992045078378612148852479621790551468658539215145935311689006394408697063048618637359951122609936227894118392364006279400932668338074215777188194076697534082191633411694882330935488403404814770292593381783791647518494681250924627169204944624526421087999674449498134078002900626450029906809101272512505671670478220127225096115436220089466605110983710367951562158816241493115497771314506775685669466021143139182692947828291120800566993074528302299919958014442802766605945339102807529072419155862411913117988072280105529609789353831124774546208109519823652964639885466212681425104995849372431588089784946149321976964317868856483064775538546798164057363087733437487886022877194705045288930188653984238912665192168577389882842872957387057521072381248205363930499514363465350888597260906536112682714743531201800257048931201174821391077097113874032289945851608062408916194989225886138556648390785993626720399256279127819639150419001774051089616133530414865871254039322952105275770515345959620425717909012315625853288437296944895308124571142569237597945555371293659206670396833529792131997770019266827285010025851639598855205270520752253296411151060804642414490898161781980542781360190399633119378333410826100985625368816531822656136753426091914540709249320093187746070271097646233527489685411609673568136628037273126709391983974493045371155435096345689019592873951772416893780030515236890363127787812103409973018349604444838458221899504636870326829323300214916032367331869176015578598196278899859525185557318955106998379534797866149588545954766281486482570442911323097502490338886850539114392448129422374004133120816477642411105268963580231401645899698060603455020599104862014910469399669694847180448613018617841111044670498666710393789432357827646695793070886764013168315077386083441987641937421453063481209076774131925982217540328120656340017106927614290553017392889497062492043169035222040992867694650168910590662990024751980719669572959140695452151536457608721921682190906745967126069310178462828018571913861063500242934703750547849181749634401242439360213003674574082450956073558841376992420786044815009801796572585165046118796043548017949409169791208868463406797818915700104472238518046173521572532012600569219884263328937372660412758398904920928921616531177111020642952707243638434145751914816452502644455246413239387999808554638142428380191260993285258506639328150480065086604782681517423738077785666057387082181423386232104748401684032774938967664834241711249296665390053417967997440182074940805108608458582059274119440388464392241776289814387221722266669763402642248186957205460849778375379882788871342357958787926417446321826968779058271838726669114365680711263712404605876781301074267938201902919394010479644295952314586502771798784139747667103818998796461137732197536884070232086195292354120827853315876417637321508793157806866047843803313591572644868909246406931051638804604686333094143765067937333546100342144791337419309679025716498473134673733102150323006208420879777378483562233344555007386272316796753361056083044171172534978039604968505451246872035446094766044737326292056574840081095702723954568238723387437470037304088228111607350975054412451557043565700653912430554259378073075515398473716081139657472531389000395704889490760239488334274775114902503772099824917678152278600794095192827225185761123403100506876606584162557175444765500271065846081742893426339642719138999254528572058586033848008528838520908368529261171900525537760957933183668452510400748052952438263839422844449766786204611644713583445864902512973643164265272042086683825813918390251688199460101556071605659463840028179957959557968499783454705542889965320071659340136944838545932105415107188323365949009499483853040559359778259568467218520325777417460896682696714476479360888916283692393762973308430512802833080148670187603101300421017129037995222043989281988029935969785398842221877517424833474270736231813664248636088770992720807420952679727029014725664559172672517771960138645460251746916906846184635635397689417382246411757195561420922543249406786460778498480482913574573014929888154865064059321441865674583770780577967063299074516406692606118330274798955577019425882585400895130831849209728305657098585434020161129159939686825211899479521944531585147983844696528395858618162220850035679076504956367108353085389548313092773467696083365269958568045772772312992094084620202733314715431145550951058768854521727128875822834013135363224572951891881667919724528047567603566349332453885832610378846062913789707423720445687025469978090536288926034598093342759914403915125859646718330191118034769311499883493449762856443037908955182016895393464084300200938542720822981779554296041250459521156821589747725814285791788219185941855432090110555703107568634513534584081011304078967459253027507166794640265531243825403246568544957214382056293801627335173733888227048690636888984367388520147105024773929567355685808405528799021224680109005935239679814790197542037927261788469458826119741257258867699934264560176326802229003721342746359105117900453205302779049108675449489597021424644007070781601740614903385503078820290384920705013493416390560048290488916440999278193031690736029993099763231927595424026948643251293182153693429921252947171449799699317608303856678224947245626196044886125499505353923821720503541974962073157202103371685899299696815629670598484050886990695067727139434016455420522455369506426110363155536538586581776549792894255807216454152884644261128655240104938433411071753736415019269140370776664236656984884002026174734280484695952610722046586890570695889123214070242627123581856221790244803518801761658143050177837300732493572473432040354902455101848619463498502770279423704306792649691167412566729972257852451026065480009561220293491162066716995664183930183842393816060043198052235854790890803519886064317281707593014647477758257112325879072697236619881914144716685312165048679819435543098602472161321978456015587137507302083527960629189866867215778420210716138749174515334615641458345226603854087365950651858529910065115656031045664268422852721458789154242646432213484247992457415360275320898222268576225791632585156209416411953616786755186873571226985711804470937319543374289208031912888516434227813400491453750796065325144412910821157591699671423637983557334649600840632157822574110852937097206038273684925863794988958320519660362283133062335550157026206370955688453156087595651295967545489489658678526793825780809763416556976893090311582647149825940364612456062567459465959183257450706411456668852002693217472730457821191141158852884053581574385721980683246198014657684073314911445454413067779354543089930296726327050356722380485979643428624175160708885792138541810728710396624280290033298471665561039389344763608454475434964729814632248901267822531567538072177402005848380878701966949653280361548291289527008247468431777356957403067417369006915139921978258303786847460525291971631099519099660661909486848083759785892071293270965642716831209668791893669544756450671685287093285464546336451905204131318196943008253340441024333769198632657700582908719266789125203181355267197963897767826168475724780493104853766606307718796877318628919093243794825484465703797621447355070583749237794342936263824547089352391961354502021428410923905948380836709885110009391558024326982181710308703183100617187288238123789411041518036910753011777005037170278983652992382851497866490189063548416422384911530471805661593353153228800786264315947937996581616359470150646282989966563457187433834383504092046754910737227752702195506837035098405513806242162502537693473235349019672649717953484818563267777218839394305471295990474326783232799570162479721074459471716486473087903990694602790538307443714116108767076709538432704780538829671513899328717930406662707640727545200633935616484693578503966237616973445326748327953307325777367864176410288728704592538757700029288675161597969782423067693420485152468331168162698109251903894835812293169818554278286238752811730172157772178766124599198040743655362728865057543293684965172593194888188766797760288301271485584349242135523813668117350372397776058177590150470319606527616901026084806656434129628255705448214174802502858175712819688660530774202225632799713317261222125813866721125464410211519519614363016435439266657548309959509647716391802148160892084174932394511518086710678240677619855874523207012044283953229942053759332416055534889218862930640905024304611543764532869930988077138208362603923495381182780778411010157286702343598100663767274708886656504566610056451254027928560743775199940493486795947047955885499547538966690709610380199125616391730673249717956112918053848211041803965830493074554004154957853308940046198798473270343589472535695219998512231567467266444143223407443054060261613313430187140115627064965293631751107720167427703634398203869030696145237912365764981132174874200094153122884565612206372280689449282573186996708151880348364421002325413439514843801549269600082931125120541585610982704238605187143909595044899681642945950947679906770428955352193906980696406633839129609090107086511500299488924962120378556088954457527697752780504455914938657007345338128010808431299016494967428528314787673385581374292359015764787394978974206297850510470125351354122593014294006190711295528022031345648803272753465016291891717728967157708260687080760139774290247221795299022445236564238664068681378864820155278543595544783981028286510670128406706208674200550823831117535535869012346100523875362170170510066649173375182720284323149130190552926545294762175433578660065349308411184493591749233097367853003332132330683732617888945105959238314726657047883485291546373211180984213178006133646111727543465456331810974523789296920581489405157021468387981889595331446407864631101982400046217836848248693268100586121522830297333642067753930725767961822429606485123911290665794705582950846449475375002015530721875999298840417171473082968868252678971539267766093538224579633213701087244868684783357942994370691432143728005849363410276479322890020601486010448377719003634350379919374370819639751063029476173947452978316527384937931163597460142249079303188684111581962938160605649350721876540813140783229343950200495852778786130138179537692669836665840570511685126366367789463433867094357378723330158694785867788243495361496456946751666559702576603221143998275200132807704865461304288898703697691831827024855249659660466182425912269761699092572770754034928920023309133814597650333923370086732429168271382148965278687192481444375466111482804142103683557036370825716969065554097779854182827809227285145090949368744315610990720858322794956033063088360644706012213988356043603195656510944440308552786061661575836448284419149131605127709521284632252617737104455252112516287717348536000040248614984078686720723785704196389605902292905658423736708208436589084308011104963967000855357680783039590888332419611314921691049231699242728162575560121975622299106189346518670555840064299089645523237148300332303845819321061155853137338590623761686196663753663978583021911894474729870124309162910150729283650244270306025729668760250600823821581341183848394101814338515584095212443836247397457156886624560322579174449352858888619767916504814562712969341821147422413268853974953898754833546352115705624677333130047168257994102916564002588245900161671435288909097730288630645189341626721747954629148117206235748445157051681373091684570531418549199438564692701079779255953903303538165177874198650606605850162855022066390482165806345676038886141424236832227590815885456011251422279580625088820760622156119569968099037757503015783118754669667969980279173695119912946663661554518337787335485486253717606247050748976404733976499917324732418879756628701897055197604329180841969371332710165399522238891562308661739273182054166348604475388862623164096381144341871403759891629327936061610450350273140491621433073124866895452100887496632420635496009317889276308978030558625625813254376450991392410529531147020730387472752227137002050095451013212576808154617628451986872686192697072327088734609250116323623844942191975716614238331092436991052810482228605952661708845373778811120536204704460541072065385647282504874151047163393369038528285728127554535832873207827149651711207717619045144294070511575127502184068043745745434926695032608013499212069433755236646175555811476353677681424325843040083130737213832063065522289408225070235161987337293282466757835823089428267478035923900323754450153381137589199486678302318491931362450728553852529859707746978801874320850256078923086202399145573596024460305311049920665736975829271755057502602027184207853428766846379634244695672013612657271323828286807841820317234569100036831553975168414093629645122354136903417762172925227161633024080729925526522366148482208488588128860223604399486898971871925163066961427913066154976671877793728047803673301183006661047919345839566010361049971376920407893245496915265913508190043483413055002702396938898858739767340922698128126760750034636059571915182313381728282041545217883149701284193258325918819633423259842751354520250945059608988643542427070441651041733149966393528476560658880419328659741522563425182040749190829817590246297673060346562230631229336171915709887307871193377354695796262715503357718910959152150497252878295076579877608319638079208755090853831997986723403917346960516705396121856099784143862128017772696407477499083988678707932779502320760342008404170889795049834772732402072816276530147277776620807561991798708373151384237348470726955484723622377933658244283764374923849567701593097819250789876360225487305496793066934121233124506123813301824534900346499611888608643381028758234279740262599153702182296642045592076537329276452078813293095080794669627640760847009393172301781144582428949459327727486707795857279067666786365594784283663329238389255506979499778315534211395303183138625847741703311721567565755039178059250151004922558879955306010271319119974663279037815279323347435537320270332169638649395496206457179170260353337971638021224739948236132148255379453760355451501903865501558829517245688332538214814235250097070167578005260596808610026557125401554482992367432298574499164539119565104549107760780176933161564982891131328545289228530540937090171528874453294825537190711578431085989175070919284015128884016947239402245983021594560150986564187409338806496447281805213722719197638308412739188964003331816991944555358541679342880997678063905743317853057894835742667768255540414816080896164428898325750046519190443486710372199621716994460139847690212472539950959267437807497037264871340403954873372490141056907095502841104891957482558846236751783649372687381818590370656478246106570538581234675123951406873856226950618027155012303140070723238485221616788996337267863662401501962465183227960952197683839368827913795349950136737746870755521849146036890803778288072540879171009893668068967483322233682995043374289289729618529004481021863359935848597140616769998687125466978041877503909932207110993374908876212460212236873701001638856552480084931780660036698041776218022928466676311087975028330607367945223686249997488356124756295776699873940612481134304729978264122486932293165311749604870590312289321778395855783593305159317126076815177410835543042387542298699847154431542513280272944255505014456677019827341772380114169796054633075572522485907594165525412985848312001878126220008305871616642698819945489069630125639544920899085145703961240472870274378261353123728672491948288333123207236518371018005896172882001926072473300149134423759483369891708959197585968770673406055058190516703125505120144156541219331580205028714571952135139253554141410114121898966257587153330641149123575205815894648130587119843913034626420260545865167093970616237292289499121750189786283243455308660193966635664105434200041872682046177690533787760989589858460598305075008663754539083332620942381974000683708255875770144884637391534331770962118218069900547324937884638703895310442400923468906132890448165711157426649849802078978548552971673575239920302958487409651212240691365019235564640284016966766950092105664142920509500854500248974861680171676775740125325822864681657437804800872930555061564336829195597677051747462255150242397340317272241592180326817862851940735569821191861019051059989332362384022513738619413934517299271601699658743539168896602122898401578378239217904080625507345547154020775341481417072415464522854144561396102207769146848303788690200585133375929517656248776903384291781381983714258316702085710163325842340213935861700527284137703400866104584834971020347738172858706667756100769146001931232205429734292256412814632383871967668979473232907735492039832189909393548151994969961019376342088047490268544719227148191896110937320030815245942505100227075502431678705352194130708841036714271142929144187714472569179409220698738553112269903901054531449871197934600020055483709010881933923866261881103504814342603036804510637680833601112873623508608574412910075852730593043463002597224267045256327216704384248509580588339859082435269795153049545596518859253631503959239906193343420277413711461199194580475445829581558590544664781409443129066928844867369082121672189595295808553420818228365745336497106374378079457873103084181696195407263694462917553514617255038403613468687408292934410015190265229831562343095534585426463021538727212700918477014329423062158256465222422649673928720521467463471556101977538331217247777955626046704143623106035599757756561789212686454550740737365340464437477746902870169784236183843003804294160606317678690859243078808358744673527506191548084639812690915079984750126104952553833537281061384203730919752378068955311131115767255062894641457223916515763466073018650846223697217983331739247543674500505121181617021525466887225993942798283629470602115413824555543489988522724060097919352179943892078170162714298220909860460565913842491244243701426649417139402424181770829241261060722439123167055073634819521696780703055647313851874559686279341825267838048754008942437775533719400153432753952427906918135107998269301543185349934895814895859970049585961311230616002649836278555871353109833633750823134792975480656257924656538746315951318367342433622776838522106918367195672195867986166679348616478083772189674695408304509338975205609262934666198039430876721934229981559872600509631792214615240211726921183122927062642684292064712405982525050614101851010875273885572321729864956816559698954673800182920255814010562110240414001901059530414268075388504419508321208050497786980626957610583360130611162965096364028265521674176345809882310429063485834502010763689399740441468433763084606951784367703567718225758854008316713036832156018477038186428646104146121722994300687015346992415585573257414742428406716689875480812148017651844321735518155028170456751948091408757772976791518001002144119912667931900995914143169759964917470926362639980992640562759853373433463052954207489704901542571544649271925399068780880106621516624657202632001114138593275566229243741932553721760223852374159767987010289944822539299170220780728712989240258844635067845427964350878901460539542555553101831683353653733477686714044151795441479187137207455024017333545380121623488167390802428969566113345108509671894607399759480845078223246455837913881606981210506666577953847834754550254013620859840356459539553461798891032126394748615774440400066043540523672146781564641179914724205080601353777893134838931226663415427025021132675673860938124414476458556907272234173980240298350282343082263592385469892112778955359448896174013268861627235604791068098504152287021325087977822440181366207131294041944475124213409675080633968683569397210775454808075199493334160235529018739492592360001634643443282470420054685874798184007614462512224941941732105619697557476162140229541889309862897270115589402192327986661577302258618592332409281183606676487444700932506855472099432338090766168214001768006462729591916678326050992115036027952361258544529313039172486952996296838976560976806420709350258721101971548897564496328623121025513699052402533840124186184428909508169611188825500886923345104759769441059926877306530169962040799912522742105761732405286474468175048728599110458155342248006959747374663423352750422231380686978594497917079052522890529877452659236642920934485619458281101468464777930734080003930146245824651369305501454789784486538786230504719920999620789544766500274647371111012202084174318488322960922245769027737447979345159236120228151225068490455874324654597290640076263740052387464493663232202901170377626850689980690468638453323048094336120220053172177261511432320600667614529428649882618545868664862247406072664734832406817109921311849379558047197582696359657321107079976829282328456901321237381763248773015672803040114412895016078340576925973767943160875216200083831517335921079718881162528469677204079360755111710601279204159767146530403245208691935740277615407296908497412395699552335018470557631674821245913021793761948984892707532247979445763894643076532330034796499381287363677051854775911553729372020781647070147923689760418012735295495380400791260890091702826679547939629336578590087922169028554274522458499339771464535277532887242491570390258877076837803673378365879366442837884314944471370896577057843456501333866969573588215091831142723941733602588416165643773648173002368646284782437952899900200373053081634361175505956066960954001512816973207074135917319916934153163007918433889140718184392834534879404879476815238251413234176552198973366453476692115882668048619619762899454496053871138885498362272632561407114288152517607501089021651584895650819919563662647313766622959465840991241602749952069401749268864509565302276708677258840353462567199266937299881150519132511962247760818766123222722591661358677039420259764453264939394803415200004187258739265042730159177808520067348993737907997195688042327420120285660447353123155420353263341481306383485335475827658759199820511821017156424268371765411955425681235448781602546180254801269850312923174849072152068524066867803741774233847098021377715510154331903636305622425042702313364468109366691080364306768714853640669244322639765519761354225975419044535228774506563004059305912782596332555246499642973077397180448313018920543088954962910918557018128079570391129159728908049838260397134357101661008683827750518241867032487294229213432825122428467689354692875472493290582635763162497041335223723408712676532290547904215720306433462163938642633002526402730165738637097889605805102518307297896012881773416466023255713357759935996248072414062343122952029277697787548830657400518438831590585361786544849821677800742372094773677052587256774027803947021267194145358857990840932156484563523381546720565495459241064347584546631722882984569382615658399475598950751225198545789124435382882227150487109079150810526406625681999164052507005576212251453022912052385442288199783959110615953239773742755848615162595545441207201637282932281056901580354019467381550040110081093396952108166951300182825941953587278589594838348001059823433504344086085742813765192461414870420938464380984806548584717178567725973687646660431356443403038120091421835783102529938847621117940881030224014138060528702055706753676324244911532547921612026345068801549714518569345753285819445155124965879259362004326191205144789677029536624267600706122549419579735137185692950369847433337828648529707915824961958217307378446357463000112812607986845170491473985381879185710034829870066610677224603751170736684881793365646605985317767562273843260076729689633860443568000065266515436418323310984152391349238955552835584201333034383990819100884441072794484025050186688905583540622837947407356869133294954341687999980548986381708657945437212548594697577513673974011251619819107109257692135311202221606322755446187887132409147809538427177437295921696542719239850301929339720042133923050519556328333891895541981705435528931556003990432068782020336172551915038700787825182759554802368265432814720809998282675565232583249226045158640675695364310542446532850444002168373228843025242664888181878358593927035844511669573648419287070435821590502848468340494722223944537562867021141305142907428672652485632478250159625317737765694833571549304213202720031969134212871122566839445823933861093484947437062705005953384255539255914633896941523791867990507329718077283775749630621990555355365526161785473390097803911412850418612023134808966283330355654288647381170212280077531721566001462919998152526488220168100917761540824048977141774692799258913894046022815170113936247971616389518665804280891741894589831913378550068855798726520609587514929359695774754895780531467828186455677376012219421268070953473532562804135182985589585744838547168308288502239146199075110962001107067927829930452396299685971932967595985272920181302255277051349830110731032458352799191818039711642581168064807541688108391092897641515297844412049066044782396379648627620258316051439575922536883298884577302623164673592178477431294158086195102696631968872140294011719145084296689296265256964118549745004856245452745437200398691846222107203365535898341838086324960571586431359336986110500023857360513890849902699829899380923109544544420638826040801566900763762381016453566683092276716988662666109147693490222597243236989714170529666642425856102581421893032271483919115842204196693437115851422639648072752141618696466045203006111002465291853339237412484371841195242399767128940531517205728497500263648410893592206288224650515720453883133085157950415937744184283481460506382151638259111285800445653008483707488993200633484647412372547296882773410089414679615566301762443024262199031748438436276501567152899292009659833262437197378650897504411841940923428680695728743345539816542084280904216167769236149176733284634442449023402904234014612052510583667254486869298261186655062940302139898880832286354192011015388549631743674653062197078822000770695299899277974304929972704055010681483454442173844539471747744980640023412214847255836847529560264860774781128889556316728544418528955384936601276559883046942588127661529869232176107606608720151700942767929238314265427911200884844338292587029847029237931102993088145415927937520560672049202385384046273738404116841956255539899337228096346101302476814440152048974286805399845991938040125112340116818332198646252211971795977418686299340381790654783137179241655833234804844126693562680188553358464129778133116588047416207998487417869903577061624438058735307679872736830431102091526814999885337952382712235346897339471806691737432919845711631643128597673755829640078012071342345944406914861894824677992049300348269973265687988302140302261144188824151799692331846400660618438860455696457983530403928149191479412156478661744096626367100133756401051605220388256929133966880440817300680800795872798220155588128268274891501580567982280556906630737601604937506066855920660434060639391600438697932100924637030412016329243449206977236342955176273036239913763818581018444951912313588255628831545696610854503088009984280541843514000011890978532060015139179751071265101713113348677999402942253702620200085093201130028658060406557552462948044708698839981395851156173848833652890476957547661409909905889743807810670292341893433434328636902677978056236858997360784495227032141210198761606799740985838018121251214147174073203366654685488978489974336173755672744271494533435744081811807273654386529962590478532924432254849490451340488384941623047504845326981578729024502712662597766286106325604522483414249648819686032075647771606829753736031038185112516082213592498653237981856193990412391989341938979854413382368397622616405156030458796427806803680503029330554346202457301623137183827791087744791715455591254809664916426501368418061156986018579633207388087558032694604640615619496718676781502668146528957575564108733332591011732781277694718568936815459838188459200493596078286605617191293871440659234178928183678932398245703414761494351996635702213356145035208507714131431455590009665651926805065458220130308643486851450903993204989697178831092572666605218224125379634939769578230802686785727664733791366861636390070809968777581635374633090852097786103530379008696264206005215401693427351737243718406930781651447549529468419273525983845880229890215482551044321882120494761062757510326694459164135121637160946910475345186214152713952676175114894127254480685986502689805908872026381058206276267069478773375978125430302037979826332780137438915427324856207018020287985048676788475419359037345623231835916094433910781394440764409458075562810317803850848577066519666834276834671322174379752099945761083531327693043688563668316744956844587390789368279918426175020023124338988278871650649563935109181318363296465544467265354688066326087806920796869695271747756689626102354700211005974058236434399775072952300735333524746630205870222154761530933426708858185295199132652167944037505473347988431112024314016900159593699325091693234532272119592078084845450346278742543615122061275684141715651046252753036208168995114144330648203576406285812529824732502993864059214499413660422155448200274347546526830919926654721332024160886865870862012322048513961629231921336194654905270024201052475228554525395380959756376283040623887367038522619617367998213483851713796953034349702958987931737640684603658218051462215952176604512627396792414427708065994229742112909411646233161611479224202227628199541890259803684661481309971030443625457039005011129160339334455928958752794744309573259571324325210143435971534952614536842050120171401312623752841295979006578544959553855998305782803788913606511382233348299966556635527207990407424465308752474462183182804956767100813259559837327170518209103415104496722619935797880257672490883708060677435126363301440785422424576944324468727666349083725639168839197256470259559583640489882653006065183581624260502622135698521668228720560411203036220501886977210081134365656886677303877712682720175065909620180287666583799681549199917519307803156979831810978543884496227318390354115467638682611672078016291987750347006499916044067133546094745900949788452899716774574126776646806710773478466164469627025356825813045145919250337657698728484881697748643886733771927179935251096701778709946563185444566679841205555444609518408018970962291484342995058469668934698730421452298090505185399011931895241891178011786157007956864445283651372463763854406079547618517151051927912123237701766923258573532410978316791972068914930464173096668433722691247454995531650439413627107359954517508983568459410544603214459367895071498509516601883233433253795588500434594295963586551587706847021068160091126451873742765070777214393814830943702904114234502372453011936278250995664037583503745086867409337179201119269030401299238198613550273093628307607700992607269448501592694441499378583900074669671533831208739271968268885961122177963984976448250996595741020954426552731278300950810185208399766967680737679523140469422190561312649207198301954223634372413796666221979004348047265883752989482467488091194520403368201030543721214157668225101748584542597128715844834239416630072912896210943433110521850257383913467147547521878256936058531283895354792696001995223098648396893320980319008267451291608081445760585071358273780974445165560726019896318544332565362723581031484455698876333010856492506230391363293893108135639879499463990163417371266206712438133128392611726344382785990406146291048316241896402318988613246114543365985268554779292731621154196375815855363778806148847607034885547014769647851744477605157096146554728236441073980155298581676038658845912910538561740167962688700214733886893527566162257864591568037396701086534762021918768956400871061525493245144208951529310870578597341502704669282659087646973532041332583047631566283837471083530601247992240460340015616205251719586432206676540490675446638533805741735967375560256287139352510601411383981873432797703233077921417748739549475495965558964100739032984067932754697174738633944353559282274882140673588652564466229738677825126057208828717333171567916431073540072310082807210140930222231181190851616117067221819176884539020685676495984822332075307244799434387531544081919511545457586815847676600605454901086955050643644772522128099579067832198260206221530943165138412852432270211771600283932258740844282073546259673059408824799223029403618714741157453935067385910724885146031410912257853240761686914024407201093243373303852756322804671123563043125977586676067285688814336912594459322026737462441524354814782845320235365454607659068845281204701714610016637151469526693949514857600329942287332683057852139922967506464908307022112207267602689904977001622082607777401017956526339234391640166970589606064593980644817307340140684633680973011586685086338638374357776421302662897006325422308932995934411484869695513910015880518352511422803954826891500645311881685593631832175186845246641429666311212569555800080063143525449398506054969076232151480470923708828572047327965884781565302374496201251573897407491304716134678348089735932265696919290690055950632436700606225742871898916465101756556847127052536266549748672291866366844137445989996866940732420803101599665920014647399300749146812286030564771482655079293271663303559877533870254913117168399268455926416647180768657708295339206618674900901203428598020114673592811231908840254062832940802683946980152521775917625444876176332900558702624818522105426497736381776001138751052501575070607904900472071315079007888437351801800729489279099257277474803701736201818176173886597014926301613767093435613845249624172262363427966078929250021313441736809253160173599180662671262404636784530128054477136768683497654841949772993842780285760616501253852939043152646959491039410357788496873392235158968383810496122732761400617969414829047393681231331058661247845231496797614728530248712190723178251339854337711021328995578100490114942824526401399131685249536617051722467146859658812637864277371781659884096218216491729850733511591030091698304012521013517217369364802666370152398849275871660955229557458999893502089404677524874423962130269109201240806964378327672245087542855265747616867822901011097077369349025313861081904164822935910927707643934403629838325663897516942176069208970633419857488826031858975133576964940222829098918412642391824993989976039779266911775241724396852814334113929742433132137185750902853218430687888156583515377195516172086350711647065014014880088692427428253284615996846067056027788165571849746604323502196103080411893856457435933003735834705195475630980374485808849943373445792789114372082170414015874847827909294453651023925823074775354237570814942136386885934038347423025018060791879199075282025155086232623470586322129415478302339997794520666182690174563792519323939410218188529293274734828827977764780561639032739915790791691406702806147508007863829959310287796557242328013606098060309290425880016322899926141498915448633485530169921248485121081889090110090761667745399814493013682221282591909487409530822838468209867092300762463869727999174990683752898791722261766032592642077907485483036130653478194435074681035469429597226932546763843149997235489198061226242061761476904499794637860498100077523943183757797837147275775858045187072159293676123623602294684267087033809354310288478438570590998394180311528824505505037345614764628755914642398515325755003847507346245160448886559541259227155232487396326413856810746757103609211185185034743123669898311825081150414006313728264989728269610768683255715245833492711218861342357740308674007767614664705773476413153849210193943808817430309354928303553843673123872466118786569338988477476116478878836903183710042140796062136695999393731692178318211029790166108694070082431419081906230271545509608210430187119794623970474615505844788087474226456331036685718542362809882690596094996270209891486702409785057848277938908133510754053747127901371391076453761552974693526601335754065461808256683123221159231682108515520066050932733818039860055264829052457104881028338893031958940792900490859829166552380284674601794488420302426654311327313590664288151108097095223581266161801939572703834175537464493005499705188113814484111382735066294227219582301370718033950484076271996124591588496069875978462666699686158557794802873226360872717721343818484703942341676817300101138859846197724274924376147574403259638077072716090625756122413425592069977464698576119198488521097201089315083643918827071047353873436375037971799164161284352285208605456141498818779854425615918464927740095259832683228759422674963812526754663268681115706680644171336265508071216281384920593774469329100795632965278475539171088000014173679654356164315305752557306396566937622167559477308866718655394901642216007386109336168023931132182157204649197479876643737138182064300028060924011080941749160510882318454560207659193763131221758899873601986292507926886632186034346341564246003316030692993442694887344304295247469760804914524584180515691582922084767084402191042579450564996157268824601174426276358639309395019099488862319887756563197634162561385489174149255321566628178628496461677986550789266686965818116184950770319939062870181314195180217892064972909657726073660239112443513399525918975074240311968540891122192959082686670274966568970941284075387170462311854950691966722860327762991361021481839474704813534128635114197317520817787103876867757015385572293614242088403051427580148118798896041296532311690578262195639797367522097255629284914790897285900689912211189881574120562825131097208747279899958284961093787074323462858229088427655336404057897287888345834746289047898737472737068301673561098104826057050943903693227812118062227539650327693630801214196678791773595371118492731515332156021652918642038678763992271404648593621116358462094554877987044172443428968376053217640165126048602643885639701161731123854416794006188298709590221642592000859403852971834504166157433167989722044347606359499184539817894131273359032355157459834619563336689855434566729565123790018840443210908854259204175367708688543864053828592657376451498990381085371037534366447312126443912843379370409930938332605433552425956403313124638824719670559235809333811710027139049680481504695137271055380824201000050238035053893542062073521212053091959402120778753138561365498323873734401553025603663632147031174470030037973609781411225216287197297935540965534053384401618558515324037112995755547871216843011390431126343478865581347386914350362531511039552569356048343773826302128151362375683539034953518134005228131614608363606906025421887576552625292646118261651756541492753378734892458898293459518382925662715095466625040966739532648170079746942187205973682130080030985824557583275340381783074803946607647132595694667947748032635265653418513069617819088379180476110370987318728183019058191711461675350839939190199369071329236991974257526380852269293087625636478338589455027610230821211910577000607759867026558251673118198563047347085337913680328353242640715363132732529788654079273827067595964606828287938407461959572191033665222297080925730493430649079370382125714911214157789820755004536450405901441635590288054853489371900665568545790131237251972046371911074817976917087998996993315878751730575039510259617228409448188255470057489857407707143207553648383791855568821947935559748382140475942579791631957880400756133476234065107500728140768600619288271679430327686054873721722852008241566291139397304757375575845483266106083115658401420986161401999884525583387102951946606030543923668604186268374929088720158170191540058421422996133288739448016616340425701040535062548849807321148844622492467323154793517064723510008565607096922395280659042492504769555281425262790431588746764172365849096159189865046166913091272496899454517371093802555313126810459288115277923350110246727372232634334860910130881027679598911568571831740169161371550133981735928902403455870656854687683946892299893835361714519522123105842941022213107213289968868361839308018218856778244961902123969327624250164742215602282412844747779059846114086423338910416042302924170080946482007811321584973698381492208231878244568199401302651026892762325750361586055558375256931814498322677610702338891794330133399706750765212131376434107493727927996758675487357089527409276414196255684659470990152225437589468363136226996151423687268000549380148596280757716706717315165472455885174829593127338039909262969186324394677111650072444613356929601188374899612395446329995234141030667204936773888388212387568432774024438017203744960371532920372416912795228936489085107246799224081435699500536820837358510174586774223993692315858074430965883247563389337099738169163932524461716701936714941753718855232489444294941693958083995175205694964811421631695610270841370071947218850937082633171925391198467954783084538892378541762861991489625250351817106942127495766263580913872569122017721510602347241838153241787048986536276168517871569855955831897677601929467323415602948590511776405988619275212666532465853917768484080036499361130379338576041141103164087726837864682443573900508587346513353428284155824785129197649326231878566830259535249665563320973726189255023004033704311916451553028875616971432949797085551106904829795571899409624540024467726442361297951951433169542172385565684379587912417696832587241175650237912663581836083223454343721009396244713963197170417244076354708278300388172434226459344828997430855132257551044865272582507022258168127014304925514853382805795868915411113210485551958880277144454213546917924141673009145429933746715153002270644064018220356444800300886839662416359825219635093724404592425200411368845829542583653227183271645078928070363401030059274118438066028020445149354020959977920696802661117514821459167970403388785443066499818390940377800413467373901800218859568189742273757083988635705668161927595882880287678580999415309015209184762260521113022252934609623226021654631940702667620902048908061735543948853692030027426146802574314375243679849315660942939887799228212606375839990400886817967762071278343293093142476256508742289798271122196965842475858030156760749662556335975715415546083603526399542059360400591589003677185271386679116345870517618741475605379313852340493793000387795581652545164145198652343687397571645934380469784668193481440565830568235421701828686614354783156234471620511408359682574160612192426897554479709274361190448350263718507463244419628687318220322901572035617688750285736791874340654383308622039788924368616823042029159966688185319734773247759756481756005013794747419552933971744728226074259049355418703967991425146078572346462200850429699041566007034653114579157806236205984771285395514139271405359666766800341972418618266978831817631778564906592567637909614132636602453917091709603621087852505807163282493231476419833573392496200721001370333317335801538990786963551917852227393630597626184278725807883965612871187258928958239579790468122820384643169377637895551285239235239665584687094771691377478937529729290060262099332600980631505591903366887201719218828148851475762082607270711760078745767040615708113620529390913130232701256823914344148706515398284033806870237989689745823220074681902138229682366888344226593878895124582019220852851317861187478907881521251517436711186468930963835011766141885609481312925061821582282734609808102788917323473744156593822109747961498657205657859798170847269423243900661973930966326452023296816243857331406424080427205261691966356398019598320998064384567100780018334685622851346995900341144450073333744861101153056141051463821993826759360659866866959341382473472486081333982683205306567901210069634311670737611773629440278731030927290232281246545290490019937282366785700318989072529361119747530016914609406173747574287859720915770482738899517012201891847878451969596864058427745001305072645648681834805879129883826937509318028023953126149355203748405495078176784708845599190285726904813411650945515607856690046121100490455426893542859202646380929838354785960969110702166519655770086077626492571129987112944954962267477652958946982742585183434855274449140031842988355780989310219622739602386534065404780881147219096580083488759579580313360584580880154226163998074276382958153015648956356148600744478427445444106579993370496453048854011224072944385036776877040958741871841372669798132500953417966668806633545115983581662222683757624415395155259806471328914794154811469400409748596256768944171779781755994317494626993608918589007696122764838320923975437922128560290570389243524028589842868799510851622790715562722873456104273860729040495442728527911309060914286115427668914634659428778159485565902670673589573534365003769706661427610580000024157070799812297192564959952750390774816758525965173640599365896023212053132100080486897802947179395398679451274305203799100070151523013690712301789831231987042771179778783959678778316216058885524145083205510104953226207104933604166851734648263950589271369888426128472536861988412493993176623435969476825812832753639476919395897105299886052374223800066069097840688681170258086687568821794035546252616112629473040590069008298053345109318040495183118639604281594872315809826447526833348191061890316665271990671104137784511497850102954689357398922960731864346471973442355912930341700067498827246621681669267839216375860913200552214983030104131299604541304535430354092882818524718984016965607272152569089041765319318113814877039277253244365450852320368022499673714281898361561549398288460536488898312511629501536729708813679722605297275961021559441227009783939889567762881155014378622668609432660889438034837139824402306191355771996172759649344136135023283304171530255810662605506123189011432062493973202504072317789573251289464425355709446917922129674978111100597120521531752630705775724760682584735604214100508011712099579083854604129660303288721200899066138942678993799804916554416210552589109986258507060359682495522655261703810700613531160652545541584493766773452247512323215712997872668593636941066377172642114989585294420651054203398442598360301159178276759884453712354265814820738812755696621168491479776936056840281620084256992909680084745888055805851251802962443688113670580243749674279598075481914019893777869691796840247803593571202969850648026084722311144940728065598273235929690974161005263028995474936195148196296993972600238111687832610396160420697237213509902317373232833589564568753203006944578562940735264021278460065750971380111023755510088840569133821748422838096210588129556544621103551229849119310940551774138784834128199215741820363744950231635537622787691644183013264721617624302431024128962510853662730682305452196794151636346036467598735110220245168191573626403278104229001285349763616461599333314321650346562639003985193857305358196688538900456440298905125512038410507753323276826606301125338711668631826019301755774467045230491885556837217529895604080030125469440665493089463488177569535882162005262220667641381173350674450595190432763367515148678072079819913200094553908298759156990543232447235869619713420235008227985695258226122509011348373330582850005080588004039209626515762962608198571272035159692438659356378662047016368627579013514344438824112703585689960756229265418115974206645417131160999136617785217167850584510424982743438893210373293811899666592199032238632667027436189608535371955678836387321731860727429556622546467628740539797118688543177133533906064535897523826488783461819189724407504636831456173001128036709626167647507008648350187436403969750452521085067320284372402955861606982516772025822906821767999037313804143206537681599872357283468129188894981274579086016398283795257340894185630983085511867005557098076353296636112480844026505837561629175202004913261472017040122588529842939212158017280926734066721584835836453408421474487369868445723171834459617869778632230696580670140970760989417577128369641702803946041420776866549251295650997942028243282252723619835414256036507863505882584098112248662726018346848222292044588752367657889037267968804774537554062811552898887166008156962750756310154836421319723255133823088451085694197622217683618340460452359296226154331327636501588315108759747314812954590295022194053885919980208763899481878909943295234573788304316430089254756421387836785201485854166348313657986237107733886680214233228126254968596105604800543433762904977151774093028141126596140558118582231661460675048169856467762751729079162002661219014648342176685889931285018352660414390223491528657066664607128014912731331201120598605709644795478258037831476622336366701621679881857739021079041525287772637672090208783709880399756162594025658244415116937129139758154504101272808631887848958999174596242857062627265900329372682043405417769977005570068148393683735129895837587539677107094012730324521873005008804094725900526398258575976509649856367892763506855922804440464394364046069319811437743903160626586131387055438549565479970710578336302417075857390541357071531667413889355431374682277365263072286647906788505598126376314287800519508530420875316813015927395010162339897444452705154317612213741185286430229943476947338501797710435661192783104742503328643007021392740391538579810697744344999539185137043195929929411382031726356634955314998227146232214507888682424476612182733446819255716823467128933180441062557572981646730865939565796044387986401893795471830540247630191966159211882468931455852261887102402488779426560485981445501153879837914648893889890524482706677209423783862334809140290731405845663002488101028197484139626928628060607896901021680031688201249248312227801167318072102886498078573782172075374598719639562388577917804289720769832917812748581610464854020704268521557467693137222424701548504028255236153896890287495435250345794159377964928949413566496362852314694328722200886539920863043798508494022619590981216314259434194652661599396486104485765390792823384739467706694246580002357076902010746757734309716094440640035393589261316651898329173946779876742563906166371382983959500034994056595877244804126212947659953639919183385454152137949727034283061692980078642596490023991049556717538197038983718510930472287030393744982176833795772860513708577650519020275477987815566109469684776798570343020444211596229470788812833552754570048564712882037026149901554119096046597978862801094187163886176090271726689894396427131953076523022804488936904047683881063563578981764618450836698251093605511793200859967283042703215373713821431621593667439214363378127199500347693359910748382412555368710124594475923954163809414453748216263672976280899717913904959718377377050117928826996218445317294604626068942767313938482789329940502885922876847341025250762764117404142218857790133366054995928119569410847803291381201974743034897478984547414838796807823479264316526672111985223200871922685801031811326387818967527182200736836529752039585979418015732425610946654191122839706010519712499304406706533370511447106214583604788976997310496218621077310835473118703512898921525932426419475192833802647399803482783677331811446679247682873353663817568712522198687800201697531257183101627743477092772552321842042723018688589967022714184963705127003559930136745766699366168962011748397191520257421570794595365346533533882786828494057827718774929405323565035288401572034923730417453771861506404293968209850084649608512496754324445591319130357290842602694356473940005597198160090405721904437630531289027142353116226329897337581398681773258208926636791951874944895390529108056869065462335140545605688883112701433400679638206609055311858836311000375895670642193518549792589094593148918001108525230578858588735534631921637477832597306212261112459456286811792648740445299019784028464241560868027490584941140996878091003852413966434543940988116444514396665061589555685790493000549255232992873058749141582110132926816199150689889232174817326546296318027709058684725432597337991448313852956060790612091782778209926853070119985755566460818027566227195756277886927397436564767328775308780782008564349746844926215841152736195234046783185213581616861253899076438997326414381406945918608867005258338557084589368893711617763464200125659453743090757386046775454003554900437235146000935612328784852761889780049837944506421490160112225502213027190338328894680852694497066147112425523972975277292441813320799823925956410815812690324770400266986584616607353853906393273985254919335393287387661342670651360033459783034168924553339737086696778987722843732933546330047443821778980798386452184688668531525803373475402237119251577925231304416825786159036621028359531778248588806401994225103512496593919479478606128680923781214712581593149976881946978012845815368289184858764207794891171650128962339254092549009403010114903455216988203924866044039695081502433735574818846375101007791375836421689012297011801351739079162201794249165360550164990225473752512623276680104663791371230079155033605764130814028316360105271335730825212373055028142648163107466267437744325656424647633202863043979709229420017753259203345097457154144688541248675213376036205568241632973533831141324432472643890466805353067763068047075507890747769156129175911138773073118792325022908185125210233747120395081266150464236205008976060818247755624729317770085674272150199856160600006425943727895310754045573737965050923745970865914288420675127809222968532195812467462437615990799185527869642798106169913398544222763614150140767352442817600409590818074613670224870620683336328176997839200903439294687916609168747238907747751498310734220092996494934957612954168674700635982899363933683387373788244489786223046394361057535660884322272896898942683519207470014473102059750311533932887580838427461286940399925303499318854739594651476304878470239042691398524377318118143959036415034848661576577373125026452472378990127334668984051996037654330985765658697813088197735838716756655663612868443363126417104116030001158885945966723164214375256547473924970397814063930919727232428817291926637660336550917766205988736861898316049519676898621433630365403574975508126503622575744573657795686670571706953050380107326331073794487646105589125509330250100460348721349391067741977673240119001195072243070323272521160672547465447258859736340331961668601865960926891418620590310418416268009209883783464054920039717536193328020858724786378796647173470476969366853989303505541767568624873859768658311633065068484255402746316323447515383849190831625867997151136155561015332896138059548289633315675987217718476999527477892480209830667189960844936012965075240671631978121489766286745872414381438515627519409169019773853407248205335859728567757622311003573880086545680142888258424832216744429460205939343012503558651654703604435309511654180302221625325557189994294100105407598695832003060620030223192490722296641597046290025969956461396730401547391030385410924359207196649377892106880858709139091886472884836317472669809144599905072236177727114272541050926773288620318637912580372602552585124886762216545804538738237057160356496338925803352155919070562367845659898411704478853053290848529304060246574976454920761408254272672396240204601095889264924009463426010691924635273677412662906259806275267605970831652804759665198631939174281869543412603503679010553045840949692982017542303499502204873055412830387293504768686587773262275842434114211227116475249515152067144797169280122635688996460433514032100550815201235925422471353650766387870401294392304274843043258006347175778675672510798437448947522747549247643063620069715612559272072832184026710818565417255052750834617340559950187178968971592238175992745063318306711013070407710803533369438297473141603320108724106083222200338178503489958686983290174191628547820866706796639740202540419066184536721096880892196271153118387155799089596533994167689706166305766818198979158109133355692005764919234906493279652631822886343895535353020461062021230408434229394182679672257505922420446756140039048243982173098966276642284236801955689909908136807770022321635462408170382692931647919244620687014499190409230036783356686516190218740821508228145547994978448233765862268102288184180047359392840665749770929696110136098819651205456843598130784430365760049340304606369013898707305973199962278108112451880907472794663792578570111788889139389122510858950242977934774584000991172582367669496148639840680547729058043202774050124842987425039425697019845266904478734854375580131894137883609995955613134988480872506582657795657379865764766759251713709814401518967611736841670847322877259370063464422999041264117591921617451649340530754587229397800816345049441771769210009599542644718745453686225275173466656990553269517828436452827987384529925817495718794677283209986145088567100864788978270180639099160519594657294792930964346771417686822921231859381986205306924120352586548626817270288976042499957846208586416575383332497045916641223048937280234268447070174939887261125068178912648470493102620830118924124958543350502041711421724780773624418971619959781808576512663881065044195276832220979222139196291834744390251329178735148076790552036064773520951060293294317679208592375718371756959386941226296381586860612923272930782661351798043713014581077919620500729812746360246626657620386454542183892611477370141850844098842933625359074743281090907995776146699993265480396147097421974203174873145576801748430475746965071770609905669388739511923822712843338575635710704137383904439742310050534551224890946331430266765189077245281798162368461075197863855447238738282892802036551532078967979835660491692675683538029855692850725782702212227227702121122319738698661236807462437735087365197584349166516878681019915683965437065237196024637724765341127138175879648488824445856035617865105845350149919628512915861468869952240442030296295361328867384000570309063665632963272574509243524598522332010575293477518105896002895003235265525904667605334473921563181109867243992996998080614305224846205419655611796424431787734860646961908908219704323549276781700862727245929298152132425087083194465962473052876032113923234196175773636014089554790293479548384753479599965134491122350746726479346337045899259939421390295105159439884893936041799105951274895469812338384838644421107650142473051740818631951060847143944350533847608761393639177375949244625845041192018623000377865628596111767532278333959994879650701067874147416902762606775283139530017323710975097087471347591987609801575539624245866779502212811483702537750869183995967866883083895883106081640241607990511162855293109761691443383515034788305190651174873749759345624990917689827308176688275120806782839439698191530553281601893887186970042361962578433052059492330632821453240885993147082305429942977329411110416121761696612374126540944128958206477597737239706409611250235641235993628279836510127944202261354857684071038980605602643060478026235646873627218659203183012513760435656442847969959554373633567248920831961828711769812405910915834000114161356736599803859616712944498065415969922321458768520175217551366552678839412756620593382218055665999566275718672993843112629982927307416073172740826556200394715040073660100227735938935594958922858497042083326295727331161752365258044088759695015464635394781546293480365587335902870185447776375146717769753973980975446170835488201321995724781559297367789136004689298566690743732790829693065334584225258086603459427438850459100518312636531750024223301141068249753831295377408270445595832695053003097846166608656985954532168762521794000927814738779204633323678419959036963978044395993587018107499943678349027097626196290617368296399140489956087154032286833045047475630516170630314332141545295106499121553287484175738898281027936045210969845515444994312642990629657847797257373948638218072151192536268214359905102056209879949500372698001986272585225915847488136413756006746426669618739451463670680234449823863461445493395174446214766759356995208615116943626113117504392333377246637623509130150159031723600200243388809382280756716946614337139910063208235141021470279652649577237504968557902300385208810069488673166181718801149757859369219037566529864355659711630007913438852114009048559985514589265749702307832526143707593861149186993505593110586097393783764563978224998217841020288226187382177598576271076637482729169371142901317139851168295229641178359873105561320724711929774621071385427261157819014422209073287199060857435283454253937172482966254577535766713731856210990840785962953590240387058085159618382607520093078745995674005806368921397842659272268458970417239767468604833990755399140330141334490225988844417716620521242581397275795270952177574096143112806906702234679689440307141846666003803267277556630033596485208287771072038182310007594705233612742379218521162113792058241174652333661509421997940915242339738238289146678700511071403008035201327813605299422199963765138033558290631911751967653423718112587627299420153607875787951379626666705563539000094603611786592483835184556227049714375781508200097816895373840334212192632947932666936883236247568203671991307251926771152524819809052852645140922863068694208458910765412987750403691071395323173130552111197969072615203000480545882672273845220253694966997894660617542631124680741686313848058922617159632645525237491061925129440129618409023916590187940320619805172963875150924173932296385444627858470646729628568257321257436569691520132463900888965716837989685587359511950528738436960673910899902331460077540559560351545368431146776974150974051238220135176240145623403600019722599545501899861965467686829321323461174725532214807224828412773397829767427299310248798573440833720905633939607784501800245679141261265824094044664591938237720559225748481347120848548980367666989461711835457169842008611108108530636088664983169602887526392039694784817160650481812835082191761559458146455980704465171126954043718961428618196178298168907945932135941727585024785775071441083910995853634269123721773109311163443298278767312465312575594486491767407101598799903580196049620697664431032593110717425901295657679682004840468710472260722125057791006771401548575528552620924130431967558571080332246880425288384015492748239521102355250925307316971450742929063448041208842381846744119212368421316270533916663879483293038931190547855707892004711293574642849702598613919672792502143196998180170599500295320285372581952994738476587932959714088073572554095732201911450471667905653518247802879013563186107569931143189494672429364946735617585318180227570417667897740587368998920019661502471286121330928370641583486699485799322089031534918010184915988377411469939929934493592165993414984178963025914243114268316939433277333594276553431934808871604693351231761880047774428956836037807256575891318606948108698120797362837566440823116448117011970285014290839649670055492992046439499444946614258113831042960070932114189604896488947301440167867148791415266595978441809366763814523235912551038087712003303937251841499956754139546518806495275954181038887818192287102100932573028245197829793402718800435959739800552752635856257539862684322333414650228587908889946601259918801576298324998887998505885629695905882658643624594839373425202533440578844080235149365839011529301756091071264981634945642994481904567222623485487163215441688760234091023237878585381613208773962080228882778418606420828122432737422844842160401686288423649944971168558487970134868523802533696960621296662623016506001556733507028699089421835323452152600216501158427046110333914942601099203174346487792533532049554635097720614631420377917947658691703424238386295260134166667782752184497369993865900514620526366070198208436035338943207697919084006207175521151841220953117216958239020726813740527564200150685176518562744743678496577844682054918395134493867529066937838687098365219770032619075470280111437753679708633242836151647138272567583126112752447197422112559328000521580687767468991705108970420337542499010299495244500635553677110616345736202882606568502752956956114260146179928360100950959506674739009918131300386304485543862752577227665162913048998622709024786362682723003304306551038240504577680670217552346784429172021553853821094544840680844618225085405007494632185248780700976795827881749781440422525722791185991695421995883801035283017361423952492695744772922907253982845884553945371772698641634888034633068191196281750267506504887103411919312685051512308163759303040665461528661257436647069821392797765547078629153845914276964233181317156087200789885477732205109750132292035401651683484474360676451064380864859721236518592013690651006181481756605415224929191620409256036421603854276549209717188359569587641199981198953966896717691280096413098504312739071869914574882010561942016583419784037957387568030138012822429331703804278684121401999081871092560106068026570497967007554445153649994884877959748208317700793252854853155732899657684228263629840191673006889382396854247061907711552939400038949401251766054991701488301568945469472559874065579464539859950181505488693025810262732755299195220926984358084437371760468343146602489580806301269702300322896082750670588583704169890006253878356060399646544011704465109475258515150041466432626247464075164808440658810433630789726490144415769166482648682115538325272117825676368102883737316818779295357464217892049864264565361264645374355484955950573699317138772576357531639902537029507215744192080426693683429224256845694397331643309844126901794399346116186162048698729657512596392147078531618296250412865372584926237708934765694157186514954942342366836684161767838692736311412501788606117938526707836954831415189726240293844887569190287440694854108095013992307055722857295147354049579632798519602680766145701161215864226517122689242440025233158174849691858251691234885805141715125920989712688807387341337163431106934149439845935451138100619172653511034011642026510762161004618424228299847354580039111502411544081227665322305451974015039736031108836060186367027920146490276675700756198918975111891212736625021857538859526715665755858797994595744606189614301052862316640336689087029176203965551297498650420954421687488171801766769203617575932431313122588199823898809613968328632655566296565723559891757283727240686379155936756207000881438382796771438586814967861485748137177128194962537917118652808096231083813841183153652180575833885605942097424985611516548866196296818568345054863206263030618499065115144585854550060442124922772213949261500317748883456725870598137930349736875235833258119048050008187349870198146404092315033452582779440155970997532824180695350355454906784147181395427790567211566240425274742586504184451338866557622672478136971065986931561253042197450557333303551269348528210911558704602049490463257756772667855684313271365836344171522441055594578290763359335257786740026700059958218608252310645272917246455751574207711270781511276677940549516588395154664577494615497213249979452687245159758738255202666412101535611230810653161298400000370979681332507777201390634035607001808262202544598327299838139192904629513428318207264785158555053407369357468993240177031600040811262977386256287221888527551536069076189582565391083507080953294757609012701887109913035903609727971056334481125276415542799735781574206577904644111721041702151548079188029240220341786120622363283208900628805340788958422263514334917155081759620607460429032487375856905260999451879424896733175030804319252206456138870623097771818438285556662263275338157035530446467160369228741193952983146129088956331308253846716167904509854744332931488120955230106990483771466873698795380540707972874865288296553673237740423644451761570525155621831398527960076984513218015406898281394433154742576269948635385425290172641330890833735162669119934386145240222618038166942272376978987461560945249999055185995737946305777587856571863041246275107518215857728166560166456611303562777598422669996510536114510291306203641792148723229483435353882324179675408971922617384856029099243786475152194195878751171784485726196970163549248247031882815079821349725299148912538991717588400992911454016465245570363362369667233031030163525803398185898686304799963236342082465124549186699545113262112846536454536290693352203765220456920526468080304731807209561570245135521071268510808697900378995419898380076569067035417992604837164607541600406858039876255400199324533980246883406708847840629386909218630273833249728289197391907532932249573868543416041419110554175825031905035214803243071788698519707027238031710520756169372581058168083260567690696136299422205733770291981751758829799370767992492023739439681671281582025503944172544153105097333840357904107285980289919267342146965307214688621098977841268698457825603020822452420486790665281497226139737385303848411793098918688936425926766401435647986261418788679109474817773735302163333729567347695048454226730523459008243887169848422231995274210602526394736547557186791795548122059079734700049883554383055938149203910535322717900321482433893344206482792104146829904472344045088747378027561036844144386966943984428407585642429698777621379540929866612918775247648007383568002985039955908016900508842920972535575019935783323204732109378808130173889351472989998023212244142165835715015810817543272496172750741329307254425575524057177791602527201379356998299141030755453820334958525919303645912446657451194663442662831523305485853520997662794614843007327213224092060854720476474207857065144629814268758450107541781431041954256979828301966653688750989750178674948253624514105611796318354749719975804376936453835047083980138625445666637438565392448909727508179328133513538574952788102049597872032476406062746566339086022706897901231931947761720185989157168838922939325551535041612407759230850854449550346019958511383907663630471781435906312761512643837979653037985601931820020473104269832457716001962631151160060358603435487149736636667527319634812252913365010542991284173718956903986394959982848625233379448661855668326799262539615351484311331709711265652604119707915332996163345742010974236565989592795096631766691450200239451082759675471945059150692891859785795161971625402025924267897846307147476338593419286213246320067117358702688811160023710664233839017739916420084564065610908093878766345603818029682161323753458806334505176511970078859100797379526161741890901571755624285960395437397347290216110758910307217166208871097294853673235026530678269287384078306579720912151456320258923758068250310959176631958763675523740059123271850178320958918352233945421704380592590805955125461063624854182821475713378203902660610705051795300453578725740304683970075872262989168022389903988179823567708845897128126364737381568418823149409095466897984731410649975785026786893242327622327011347184807877076639021530871147295958264566213839160266711084648375253661522600584953503204868089128786811351769313449787716189942293159442722470945952752279163245230777964627155271872678390137596327241396787152146272945849483721767615812350211987012000386196657721759882421161008586966040647792831667572418916610582607537332354450295039013877668682938307176755380826261279772741176944577909543156678357733510951148680620952819137115234124459862314387675441184014116324740324133457335482192090820957478959707275973851817327891371445675711571880264813982792203538646055968730990218345716557763419109029563866238544299518130720197569322591979018518527877493088220811832358950726478032710185267989549062556217386352174744927197352584761861499108947235053120893166065178962102239059547280337070436763571624094807680726545304943404853947317304387620985823836157651668629678355836437649632992730047297105827587858994552041386741341286622815065712508494679819380796039295367867300674193935896793305326215899378000291296458814628557121299857808020298515943782316323386619896476685970385500034663943487324899183708878486110571536828724028228642052039807311640236177614282922957951212149493245454428731795300628928098545838335976188848531624397437708963329120569983851235731625997139397610549585209232618006914312149241752711317361915570842265358023042877359963334384035159431154467335135288883227449444518437077917566204324922164098541445883734169248397043299192796952843159079442349197803686481549303783237858743216464204568947902143839827999856050689611568603523749159317552510552938348422915635253313233820223759830037754617450029095107917900958644852667352664651145285032857095801764881418590043408573269887602253454590448090802927311776680370786024321454749126686518813713286959182684917768093106249935878181602511399538219054674877882277501584686990730331988121054749421910102554805844755593485397833942829277653186888632186885799903063341965159216997119177443253371238664734093012678915507795606698786514829395065944232412056377186619544674223405559960952671918203035725806830409592564344981358147375429174002286429015464195654039209813148695306809288082734421043013486639327852607306457375094786842882171811601877315777747815124524933707794100197460850008035950218474194035699149719898733307716448737126851376149852934158315983423925117844680096221430909084371342734806090102573893993284719536408886667600864880419785770154804041527237775188363683535939941511460050976194283024399928158545634609383040773213833797161994434530747462494858847292507173851117711846139964272974046175279987416455496320347870429748135982419773381744421570767711391974278930448988691390786613542906400987830582070442802338760841492013109735460264462771962144439656671519284941616977923077816726247135210271502793002057145830223327365439222826053635341101340096364866279003801331116962069295049677647997971390828229728005351022089937217780470465722044258883249273816507947431366388455122510744121263310106612193617952890738306586802895033687481082020663313014556926599524973677259173955154493257972369267551610400742798981640320631820743934944600957053228688305713601830588005728277988710270973394372884563438675312515867059807645603413939577467451906655433924007389304711246671922799498335518968755373722969359977270006032274140169954669467197604923438516819244811589504536329996555911896388834480686886078478739620178327581919915108213761929127460981116749146220326585641301215133163287534533556175759002266015883411056008316816809705602303624589638418128158693265414514398537739637174687303241728404516736295532438371172979115680488584018018945240686794004856804672191618909825675363187342427525245177757233766325194509289738654747586431408159658601011903220233210039356402240137576798961512656321873294229306671215369782450536081421726542175378135043387744053035751441510771323085850746355853727284592241767533786514311725091900527672180996972694199217675415309750637119226738298759423365796016239253683641309401774367612731247650772697377440992350162473556976298226507278478737239625795675318090317375021625548820761087500967322698380565272230179785657954116984452584272216874509098099349206519161092889071190905554570255430550520358856648137313413709703901409368875521386269434112836301759610095878789409436038311271026064407494532923430512676633923172831257699582711471873554608018835445560611359707730031545020054878412446278795286232808961271605809111224494568967756831030599702936614463094858325394241220113455791404004402385272581910359628496671854603482018674637496651165038780876267871593684679915932158338545872789909056066949458218497351885297534847529965358664558067330447482738427053439759617341014301829972289802528398886251918652747965595691558493654029282222898350369519985745626275174298309146426166040443658052663088538445131316058576360036583398741998200136117460938844872720469556022521350596684802155011872976100567315394225424614435581424683748587444720915022854113838432704625804022376722162584764415800533594197106917576022361782442225121412299682068260237257342101759475767108454329325630363390988883144693365449354991163175029735863926257905710059578260474272225591922295632890684570126586308322553365832891004323138703205341151573706627281587180036662469655599984412129462925314103837761227643735642845065707911396160037214083270147287841866913967171105887461174194910820070824196799454803683378774868521395631722988736818228064614921043131140736511043662480205453106524000927500961033986685010456194142224756931424542401177132202982753230776482972237042145485796182654715166669505246642156521873858457654279324708059026887889716456672090055299820919073980933273428374247115717650712011702341855780274752169378405393084315226957877645708972238497913864564557060769864543471108151433697018476216665149760431153165945946845429790202917686834931915087371768176274953787644043691129291705424698390754214561117397919316392467297349478951539899234463317443599410666306055575694279280992822526857278097955301465129514777974058500575463537815683211791638601350516998991400506985362526932164048612336380218525112313531952561636067541276874621234960738414362723361277426688330522460158372941929111935197802349389246829198876620975517466388514839190293591594168013133201645315958003153155576828426211447442051970520488587459394149276684892293134454836537233910823502236950276562598486546992798053389123302996344507291608972959133631290487165983422703099591844873297905243089782319782819242421327090602995822167124591334129508355463117835781621957056478584062849838703509035644234153418296343349232656444420058026412663203000566807055579710788670694225233033807105568617953849032065623255844606989305633446764514717383066870988091403481004064308285589133302322669111021835915461044899763128617962138608132062073190181811567350996547446438875246146774875546820581258472031006688987182546986254346231176272964244233171752489885154257317510463039734323118543946531902479040995879549368449940697637024965293015225904741363979069874754475299650906093750924350914226976288740997870671001267402662141277095797967779546479622767124092529590818677558692867183532928424658613094745847079402903480122645759198821075293303371668026180812047192658318480175805532507952443382751337164765326620264993599920219282969221015395000989616112938358130478405034128355455525322605896428869922688753601905065540945825691524772905788103473185143834418423893881883639941613492743259088366123174653919467999530113704821616248472561296784827791226044501153039839514851737621584045412718017264360572175662221613944047657954524359232893913027120943582048358318805195435440268494261763347823413510511478162709186714488905190069877583942269733735876906623870564255926600161868253844408867260948581944540316772716201670180973223379209421081930254252066183869953705556999124090389681212705123241605926863257985583740226987743954505863119630064730699125472860311508550090586108058447667470217593324639188739710968529238147717446487478582307817744642081740248061429674310567451158567947669078641840087568560970989747922820800113538349160566175339664858729352403005514937387205710349326703618778099468987154563963571041880058376888364329257242576603043556343975328350473451988391794699317357073146157989702091418609394167756502200047293089554986761477711506533436485813538745700148632675958223499341195969240946779108445217549686558328586942393465199869023314670884408954287824276698853091234577847237691977985107972851905091770148329985431272385953942693647808420891171323581023688476999203292355712583827460037671973269314676157076639112579353556664903770215856154083798467486137769540300360703925090319754581408816722897237386659423829388888249930054907766730788031127151318799475066773122115015620163599035415976180211830786898114303065387696454563453034667631113614515277522332032510797704491767655364123359091148284507032630059968980574022991324538205897475122297020166922083237160271649518016961422527475380183213242914045502370090643209264115479522162423819576584311981184834983677881990241222635133843109484211019383966877148523158507526238273811718115987901798204994759552239061801034511755801373390965154083047265726355436534915410260462370000373030489963466523760867386325003488783054075286748402365034989784856998326023656565647507536151444865197989081490351650709224424212943581930645686543759410493669165360626961245895518993545954601536741991891922848533978930975365585998694810573026007280028817992539618941267250834349734493500267177011481823168183102173581461174844091901921155491169400038586225073394736478285102591157216509681444134432699530408546787065451797750381017985781745178375553862769733173265333485785394358703897398633234694084625316427143859389990110842310800736024430504010087902714874947008548368412535447754050801486290278209108368772392074599366168794698597285743069133850715181796175726747470626559127098643822994555475139864792167608750407023113734396168409564703579199778596009093763178677459407502594249148721767217750506272783841519131929486551060116079432879318305126271844957266608621716127630570996701511878171546373720605247052204084600212863479308556003187594816307166731357005850643264121898140943703330090523633495315602490309457053099503974041620365026464775192873160375281470865236464404850412823131363924813760518259849714589861344143327530787040970691933389757690558886950627321983508943512328336022250762880309326536819311802207385690908033200904227329326204068373563963389591852530731315145134339937267951954467394586182314092089732485679419922353937025165285016154624723644386687420596065571938596437284901428407964790257678198380955974497387973580504706178839282169378943918992439828191763550197977603985487100508717791511343874506046959435659921301624083571145429752320809226619823696710104375060482703472850019141422662472339307144671366003228040862845442510310751104040733464999560065780257725262990255507928898294096840137196266981072951933287600395082976644885635832036008403432525024798108830974892351585529847004359953744417628689162140442875831404423590971125213027331428599453841858031378128545331393436474281603438279361062278517032241718876547707886949495231084402606100503691845320196768488730549363261285746568037249328418281129465392665959100322419139934509762876233317784858116371349527915698568671506208552072194822006337574346675345514050194794274414498934172254553063466629861589162565068162912177327034781858450208320908100154527254847107801481235916287027057719680060040055383235362583976075077233272203450548926279366495399623958969892276837241479360256857170560705864891893264391006683989192735538409173016715710364460245504847156674699294504672223509187895014451252245573160886418977662522314314351526843914255634880480587429027305667438684747611761107246426590935050116976513046346449935106234159915410640234100464010819974085673799902937399589331870213269723749515552931142906522669275721882870324477789746877952035148154296288891605860633362910377535743860080297743501282300219058008244867822966171048669760883498228017580148808279395398105760800849066700453925452574258314298482821121642817631615879603739362886703588967636454328591844238798783105521600448198517365123727539624876963314786306769701226257681897972152778173584053133313227113133756615695871289589786304206176962687343959252768833925298407936664118093488263596923197985803454855086876943952801413349494527941630073412632425119387095406932148641827490830622058271854219327484998681312612688639107122033643931594709892249325383576115036408934484381460207412531142890736377721327328088677520386673197841586715125208889400966877485677610398424764350313167671864565677610100106368593187707869142718080618741871490500188522695090389367393848334887591179664717734346967957743592882571648065846572682879637425708476920056169161689320572660968548955246395216604322153091059208906966875485358861198610318323297776202964295725570956950558287412712195633061823188608521228816914292291749265607118825512776613300689872819374368809083915486651252597412037454059515527954335131290097118227794345976331344843665130204301119272352833820923019404080476826770316283010243142594075754719702474828386476155817371939573795103813361838262919699873639195096504162096495121679177478380197054955959939680758353358679513842597740611062823966587825677157826893066497534932133012744763187752318431784459531355283588102095286496967156379437135443146137943643660488935921650794210346662428332251783170785056888535695868014721815074436740995631316459425518784194744549418751943711731962767221432102311064769368319225919792656495053313988913864850767777673494037364794730722278185638518363544678933223772340405872001780531883773425179489939610606379858174314140528930562249215335641998134214752197209097861202902356986227226441493384663215139325811858384779731058343958932894308053507884964361200075474837345428727549654643630993195916862842112384908631947199660106974724021403204850151800611920827812578312070945809379392180328975059368595939769319737115802049640384776006170473406801868423719728366480081984473563613629591907586884223049509860678246004445059183254417117324452741561088152088166392258907411492936559916511069194391901556038390098237300134600982498896397155702360241702431547113542098934168510596056469044026719886309389300742421590492018195776369581203340767761005000351186824145569096475825189491065224306703898746637503628914859142686210616556961811110526758929291134342565047531015656767781882085078956245857045336709241285706157191184347604230647646586796200159796691888060748219583942931546938722026366725516646163486379493490549092641213065087131449276163684347354797214706566557410873408121334651191141315872990151629866172972524584131309246332423422554801400940528122483960023475437179716779204385871881150757935186770507454471109380338884106674723627096280649730614961150320727005828375403355935744268316318137238123993005971625387056072989226379053753146787296778220787232567033347709098274448537908210912093121951907055486281696669859570663117645616486558363846355166069475240807037078251312870077551257949000306491410157542187121629762221152397877763420085895602734829390306487965136764337173418788265016642914897235725625245305720554244527176197880853769771862010211909810205538454827770999018128953214841680191560389606353018608945553868236634273289159206851102454814550461859019976130937289555040566771140845929514940475898122353371280597980846612178094449844066755285402965907192500104158535819637572329528498895639685594887215863795891350168873916517047798157510595438183044197841513548406290751044415880478283155728571548055334159755430320452701292105499650793769523311969997881932935582347526057746084697917322238279140510249543227150475042961422916390253914413397078384460453552383444762527692054240131089616655309269109427963707296080771112338088877865398243140421971196678283026869878971042198423643195814994240197617024764660129100041134359897405354842387330165630000241762990034964271269827551491018799429979570732667707259078830106064941320831564109154559401605657151679099410246503417614172278237665329934040977773067174352443439793618438917023842077853593830427128018055813519363032095638140685905085710757707030577434085902842964220629778402253890184280582067456907942300087107819571903463905968193455682367448072606264086267442759836997107020135814301626272841001552011905258038051530456159207802645857023825909941791254253933802859830010992018281467641973713674604008482489272158400241752533338808273400456726887553510071728930478954038813682457818221518768838751936785344478301697452882782825730905160826165924470468839362623585804190634863604251514548192189335019257148348735197017248824631234140334253478709701085964829943737485853289907740754694764141773753190319651551083451832995223035429356721048714964877390297261642156782939426079171931892895799021583487384662269055861156859957785040332665886398010846663606660218563737578752087388541150813244076940300889303852726694227393465028556027563448615895555074283798700101374114378922149702168034373402512069552519934036369403953112848285113787496661082414982710189754756974349528308969757688992265174572714407754789814677003552536956991488257623455510876128027012810807356140616882716802607515944712497662924045927699633742800946629551822663369250802558374301149461754356067581522316731923961374877253379073704194996270775372821386105787652529157332518362932316860615739422461746181520967994277162778846435038247699526974343883252372346071942401468639199707286046480324560661847876552188600904683921829108570171740270063055410860505762492805967843975460051029965542503312947724265799663882293096877453885414640484519935204499810773831239182693438018823773503144157758048145278556165269203519021655367207006432613690385449579504686925954670890382020756056957080432142665396046108872618215870586983905990048322432881682159991533960292264805582900001489517856741416683186046123651480901090481191547882357388670506527677033108761569391940662294976272391199650317573888013708058203658246820030617721235790571560248575913976597375308332598107718421643079320293388926628046662361542162677511494571950043297733564007095436155631742416318955560446625150215425602825225360606267274838839208112742801194007573591340005028386554358309146020569361869336293166812160881296885471263603040897846159517692934697489396412945628489416337511766005381845063189060339079281366000373520417775988238492864787256911498559199270636307593467960553620244207470982753851242608098894094063490777059380012419059961181642385621869333202886469759815545249639523196324851707498323062948047724127046705854874832665513959842184798064958952652997180545331905682485256927432973981227736875830345359515926468417836988663519870037739531698483797539461614513437769125443375634619822011006426178491187411528430396541168073473882714973161295098390764093792311818834107853133010925938409797801511921763743035655317742006701713116751709317908164183179867579223310450993162207358431467474406908503577133816696080057300035699397189663105824070334365883086648799171780216977413852866966390376557493596383516084607142032552947267293334918713767744004067540205056274066459862705434573855019819186722794062798785950169469101981067115344850240276359061314589684596760129699100756699483225867836998439001535432580351682048491780690476407373716558211185438244764934180560320290211766960155820157069056411749620330215821489748296357073495111929349511452079080330844883167449539720585373830651650862536746326199917451884912674019086079173295865430744666489605789527817217272665389566552714504656052517900006061668824607466734325109929978645284019296406010158499478420635470106855649398255610797741257327338847014380076972032858658209052537299576603267143373738700379367295636305484897162245169148575495948801707790312568315689945481613098459210695784621553557999768513476656411257122457385450803137841529844913533011914397815785634197658985820880549672540473934228287486524270898740811962099469805775945395039301400096773569573207413952724980988728127171075679672302565182781468961265633802137016487193196515423321670620244588583219327791800451469785218974527076050831660435695613250190414563966653090299909500261362257202636576033506935132042217775776560468525695530457685449239798616226387767303748141991195219365251496727167612944427775022183749402993076548998452080860914827299345973321214645576083903847126129489290258388368568260641580060022531043106740695050664610388474145719791298267053965131509640952824786214403874258343333337922343963366274779111532666017563108299894338311707405391824611937025679016025287497385911730089923081681217634835946308044220930886595925377282875125689640563753575910868330447071193112454813677245477099173876392792236359931705199456463971248789327105176661872741923369047272819875466472320265514433726666318342016685912799164043366407787117896810111116729115980903931441988005726870465977024137331462857522384440293987850675799728705232067135927031317344324722695878281160392314354287602192814322605182785864078073415780501779134852812545016678634963273530495177673745156390653575112375102569030426281412000496257710698961105057264755554674176180080058766120765118386874905106565436043505995415697104290794819749341445895760128518671372838203168713285043118005360538189620769581877364934391867877769073979150450980630029318558998426192506544927493528457620049461047444463406007022570309022118243460268724752546693040524726714691946626210348724654296513117979903015963505877607923367451292650455796382410201666891705276350897458195158688982479512132090721599605735031735788375128316054819489692178950843052781305086536277319256313021121863842148387763491034201492454595723489752020714078477711708904114785892767692665078104854025277677562423942691298125816504353836477068634049829917451159688727835135388955467702799368158504345877565185597738563613246839439263954561659468970804687894231823103058341454587997852910478722584844947208449777453420949634850555828558976314676688062473396548609417701464282589293131094603522152563149667306446527683869999949749693738799780038251135131150594687383206204968347603520989707588675961279746694053772089987446878630190545822294317446062884077104146074875215399671850620060063696578298728199436242739214102285422418268978165122974215823420604208720183445200549976824378767444870888177135528807510197627551468518009792352645085479779817509309454243015785319973828554459095706092220723876944496421356908251020182080172657355608264494540889008604614859845519608617063902278725261283337900181261614549317203332592935857447163127807647470139944778473377275787533047510007785265736837336998651952125052565820059866443954091133999756044870346640847128677517688605310975173691277259457887290259757797784078535487689468056394354312771471653945258959313953594334282103462348041270702154113303315263979502951815627864010752378233844603238301951105138138219115721696061901522365569046701856583004676997834990152996605771482013826783755622757706873912923633379876459448494421815029938950191860096105398079856687315504320038220273684047524954110455960307659189407883354242163640301752961366083089574917560166386502292031623234975721094926441966317585596137762106561002425770153632549209536653720734242326585930029036225202559033125733187395021963385667270642120913968304966440213080864974669135107452489817824016309768568536189393163421641665909072146874046451810360214527916150438189437631180637264821883629834164275876240144636021633402832521860649922472723958597779358219678612999251772040444596468644125182992804369794853325425583018532662296861610188574701513092908041716759359769491663651730080887000351668923982283357191404287602974709556054581847308926821771217836426719914902666892885251630533392058156380829103956130068799887627426380639357397995864344277331693086906035547527823871478625509640999284574681413082553607553816857386852454919094545812435305746332475896826485840469194397705568198038364936272265641236705761716816232250445831392077217305085299110691610795712381212535237535442065053234385323078554343599181842122024621050699396453006844531733964883225706816159032213221610722856232857240818063566718960120167169385230105147549029380109980052252686529477919020991510463513343611572505105571849166865633957644756225193902923384575227723532278901630815793324305713323392201152007178243268804337776151309286829939519066633584913730014244117283170113377510741624146363386582487870263128270508128089238186922050234140904815548557306030551059146232334676115566643735116070953809209866633629752822649753047772352928192247509918757140763488795003196645387909174362056276365741751743029857526407792879302863560417528856598908223049227850316601428564494714360852295349808843013606870848746395158508703403151519170209970263478653741944131369803167810661302621907593187127055838195297089462683319033478184814942223325297387393883528775586511192509185844361288209535038696585565624847358170950816558811657719490841857337289629774589090527756505064561206826665528271169906066297731112444298631163843077459402100956636259247323019137097234754110637756576243655365678631389655055751109722433815949553638053014135291302557524235949082608997938564276748043559491848847982602712216097562082551683000900761481114762690326708896748547925763948558137497038942037189569470412344816481662405883463140327432307259193773805163605856648444413964594416207969772245648463506623174437037774267313013341063288589913191784392367258511185891236355825952356434751120712787147088371018923241741466843146666874604581231442557514196441222305289064903868309026809967614767890394935592708119193622970286150451377415498510774649069563152083362233509335778098653516497573968496349617553688077421394417543992162764215018853902295500802779279016200591154071162072967526031802647944539287303781783579243690648790393343643733965630297414802968637391154805873704767961001869236018091382029818949976393321454621760449689079816914862912855325209302640626285735391341427325625814455830747232474101553343687142882941519005042163656331671595419440688528455425494665580623244658190959926327646403275270637014522009904092969905580816124380745097695419035090095152489188628513973268791142976097299399909428421147885517621927378696889975795248884053422240216683039971373167779331616663596147818105112188559794357566494108264304580486076811255954020762902369954935919795203387641761173060487010783461679478932953168229319828637358603574862001327518633940701293921611442214584051927410518305408644794997783716890990394272546231868161534178598325533870099840264135830924648478468582559546276229113804420025272347377812501769059091739992699903879168628923968541619233485731373049402833024079675288839636469950889197758229203427023902236841873581605678515476329530469348984621808179613704013406239683550499013277391703764772478279280552086807234212635297566420467001387822636099696048979969335305988873023109002078127846202012862571869291579587487424865703407736073856992251983585594642525958289738938149556808331491916908779801591917760821605449469429559177951525629994473802245942915626460076152721598270389328296726438382247584332174440126011175826488743596853360619243657989628812765918543272000063392522117915424315724110819464607746782753547784460686746091730962610038521985952357661386873134057766461471840893764329973036957319485741071366250150357846201927687401888896943127386930022980277285262416261865786281948759301768908416301030376741137696904390041597072107943454708384204497716222197747535598048089083926900123636771012641952506889550803336070558304760029939579600986665086313818556822392606448052092847096658465340922239090727910378834007513479687674409435149630785328225612552923361325705210621052753365044123088164144577169206923076165328687524890228754671648771441444521004963393969995662701170400358768036677273988096230295996348609015414045485627068748881649518036769027335817397318964439269173244633297458323621041526979923724756543002290509527310065552729296371515801009379426353515475833107606676729308368373180931185879313291698993162433556085066219359673756610520210375753218756447779812661957802704240218365111720767457607741628452650260022348623411177394332193930599876491076680427553996408449976749760026757056741463987953871318937073118064207215094537274048093070027939883779561380738065030667207541452423650847598657442627819190874619392482784268004917357190428750475051040794958485167816117336676509340447254772897403057096787228805274002479455708659709505897439446697884585094653148683534214773579198745648512692668654071222988870036341634596964896155250582422484346497186787969465652908623167017620493397751768975920706828095587851493614601569818303730474667615530345240172392504674016141559720419141735686707032932574631802654914555793050465315319135679723561765492474263154487109275547664409506162235915231254173428955732297376209833092548285069189803963881602068601596703299616927260736768681261710342174205236446628238603772463121378965978649975216054895899203746114618583020383102242503675952422940378800392896965144200866651729516005916437444286895494343100445399401845600711570165923210825194332657818040130961685162081607360168877419949190458200047427493206795361130002174841371934953087867648536084466999584981186938372144105086673355587961884347544310205844362691525581652648948522697880520016492238410176327587708897790211908039902233103120645159646655464812472212253053987630232295982438627038226265836898444428536052530334840337052612892507683796860800866719096815661410148025784655652603571133614953324383305937951324582259997863322299871293457065983631910326973597350333665096005195973282539283755730037916283193022722454488060094302805756495394384028846140867300460950924270336739127741060481009028217462014168010563728832932360358473987694382959648665627158558430344878115809760395120329313618032752122901029799540473941164579064590005059521604329814459292052817618516197600607092254800854642879362753911029968830059759803999516264236702931641711503557323142155956709207063081903799098756683785070457631810642179096453660372585155565342684829155258363096744176928544982980056254306493950880228322883855822873703479240872346975658589117657281120930136830638366910639488618889632694173944070938700285612161173135839700584847638534068784385001183987236962672299432211663133516563094315448548490124826111583081658810740435298925816817624119354116982108344242185784900810669538995384860318398021203345054272587215527411889629381082441332428003069692515211202826894151977436248595040831031220378333637106147146703845494188758766213816844268109945401197084943029482517184782778776994667245795058519650190281142877521327611974342593067782611158708141375115147119781380220735170576242659440898637770847709364867719320692019073815913215311748463358508878684606910238061323532258095192600747713675794718382574219640505388504021031196677192674015116811234969981110849576407071166500011509501397243948136211890880433882107370724095226540530816377516561417850808931833596367135606016951680140523692146972723138629823099454059815351006857654952630903721248390545712938626648434619750155554249714010583687033632747018133554653698507390928545021507534978428803440363071759996106626984693998949565039750704996175946823659477530709160752668887657467532210656863484234568681221179353853036495691627764974384412194705131036949176544513712087003476073733925702288539650857979763549237268906922102215181971444489587277782266556159348539588950814467087773006526674368343519729496165497179069512029575795038779480644756966986382430233696161993310775226897598297364204900294655721921291409283919858397775587638335556055046802765856078189175398824589430808533020623676779773953622484808793515673121077885362523193681107315441900447968428753962583343307260527673263259759418513373432111240496635745510918807469140684233354409588936859260968440363634265061780925623236090003394981552323844165973340091298191122567730295018921317910490991299553408090829086229965290716618183420370332904477025703861146753966975121374094879210683687314762159936752199465002045334142526492952047957938421458768513138708190904980858007157783967647180352727975597455451265264991681528924874210129542723151618676656476483935774885184940771543113451035754522151072012479622347431031377320846572959324847059814228143762639803805601168661698540641666752193841369382466565367097322783270465474607374154479136656716907139075512920018984758501578611458143225291247980522886556297331421753993081095930650092644174421646889451102955253684652164524668678822443633432420405811670271853879851105374042292207025421145936271833853973244914395960593652582441856942700838411188109190660160270826720164866575666154398921122685436725245135241207738345600047782686604476092428670653015027544562682332205771539238166918710494188236578807663456647048092021978799974930287063342780096358409327720765398871319020544970458180232517092184777818533406677536661876100124036058285281471946782098636102222421763474322433973251944311325564661010389981442933789751656506821670767701770850128146842116746408854466101340930542810345210219491766296904941569779629275304266670368635583489538557264877743232741469492347748462918766345115945722181036848666031001534818493651407043445614368144824601160788245322415713621836766320817003294527582217477149621982401553874335797328012458232712155078109407520957351276931007515453595415675339309427188650103699962501703160085040492286892360269449089128816649205684250964011277894287254200220417906032455817415510652822394754330552742167300323741126879151447006293207591140711896871452543952264415973529203136767995699114725278554566389520112850492276054227561479921984563735411114466039188086449258478447002476783322703978675241837349725762741563363700964512217731329953736558793892577659437939462149740804943560225791801917853898978750773055158561339867372534194281727538011016444695975690600531927728021143528959134074264850089399042067999404461419317303162708365822253636211080822775629049504113344046209884867485779730670283496589642744310344845446481208632920004713500589290086709431629584482615851247657017583695914010277120986332017823672897434765988234499423223964928458741179014657225566217972086088731441603933679956630368881698677286506799123037897037874432717534933882914430806569474629195567643918234822418589122909081830505391716831261034947709725055736465297049784940770595117864869444888346879452594302436410046408077706579825123938204632811474962382575684204560363858734527422119025265249130468065912984927618249867685648378753205655777409225604623746930110215338203193011064547815825809554207676633767828910705609736289927612555562076811755312755644742198201026609046014547773059227218685218303026870126079489471747133932231099678610487362423650756738190748585137294975665546078525602813511893702582244522584644381053693275045081459164498737726158175510671807041431021182063392478124658470437366587258356183269272295429089345958674054108747045481512860633729137475564915850238526300839588981151081743529182710999105310469372269784643848890000224726826192995024446554184914797545032346913289652506623633655797853686402014246212605757256704701662156299332555605659302776925474943519953695275607805417062780890308235928018098480099726430499560634493992702392557307233279163701130204602728138479349370253330817700463251378748487313258377359586911450890295137821748134283488508265902457800727043421973093651775705496335941347053008103288789317197546510639049130916140068531022330348049946436116068724183503690030470651640458943090589071626176331374381413243182872586100483955208768206270107086493895603493869755307564490807666590996478598047174964959318240578369052770237905083417985659507843986473878007841956820335812732399854353616467758206828578735227893031166071420554455087158459509414086404854936535396765972775587270049989722424467315267325004905988631713727846235883897107779188682347344444982840693868770244344366709724865543639127674497593213013369533901826364205570935667059302723006860315589185318929996752213948631643768715871678728205517312295774290144475412385808282567831594595639056106714462285984116459840043470636385033076872110916256328128195232531349651361308090589427628017191213919394597604947019030166989027728967315676380617694201892196666710316415771934978765090342889437263779266188399810780456525846190349444874072804209615779071721100737598620176815267136688760662432550076577155523671496701733439273959909061860949730793842037875298087146101966451903245801188756416636191836823898322214707752365668639151337705995339570048642952230037320723632341338129888897070214831722226881705779151553817730063469724012934385809403689672845423325197318755706798476353694480185225946241023652160604590839543040320896619454917302122091853994028124840738362073241526196958948285651542348732853395107318283383238996137212042038243982465635813225669730648108774304959048679886472953915770900134159063377446348259757126258530271137366638287148869557081132770381365331872189593976816166241680529667774010427044864267616556927985431938283974181310553863832418634874090049897803744675326867723450327487472037046052588409626944476117495764003779961888156280826980470237457994248786235464767650466227782509952076026336714186681152814204802176207797579888950449512152461593455439048379099540146748155045529091497514962570497019106456920530404021673964000161059312387604749893069560601048580794284847185264371188172998322561298186402509301640574777761430474133698577898930472919133947275955667786513854252985347284362502562097257511983309568066760623797228091827809689525572268157088918575687813564161383467450687940179284537983480940737204464769727209805768198200124891490563071974891158099852521359698501133043395784697651234491187992856357528104575915572574804945600400369145009975348237030975591202207904970235300604537806016222268521857068384453252367392079735838457832726454206401532119490799552526239083831297532433709630202532547294080232515429514269811034776603094179688259803025283678460513455043275753522824143581778366541631512674571465170404406605258140603946146620934928546275998528205338792342708397690323028609967325438620369237992365043122749221181458072060341626642076385270665500314764211043331566319264146795780223837955381372153611595366432179675249572187773515402945595058165939400025953547286824331612198445316861669388123243165460406435706693062288026328259596767468280982573623056356700925898628170525048514922488143205598701578723444758371747193861909133775199881701253041454723482295880984286329692658220938033837144331632973615140855077758470459310820910337415060915213774554185013142962060826159880915033231687633879100453166170071751676899963990249594657735187625441751561603377354140405019579732602947118783689045157468413211122624317650188810142462154318312923705395386368269362133333487354759100287413959351700556041118467422985634048980409128318219012979739524898570094653851431475047907603419100516280016449621452336785948571531859413270232961178734865742453899228831593217723814791190765475726848854001022041437871690613186122925014508493175618202536456146228995350668991072017451589056847243890016808082153992715800293779586576947325714580606832726539055612312140185200472733046272927084071029098504565028861724340674048977917758714772600543281949093261214283842103343179896892602171591255372288477043565220085089616529430953261601166773999107884012380045642491055744463663491790098907644684714853211036031854614197060141582319598808346144133429293058897628573951302560766068615233168911265640644996946645632251546351394416447935435994383442143933555643874042383977612223639413384503283989467065536165235124112649046652130661952359071299641858049656344588381405554788663388430179201531021460911083422412527284030300111045612211562059030251520425991297381525065276747004491029756957788429702072175950450584206152231282055333309284306742947684085560572917127015806422656267778317965031612084313281477908461003618911869655030174588610294444605515016870108844386946702003372285613101632310301536510790250358607627458710839812466176110629925485275868456725665626236703886049877559419190162439779157508945805447032128703060689772082036723484679893517190331499662731158028549387296825778830083826092505710111196117621758451308502445534980841008266699277583831351514619745493306140250303116912290130160223154766366078147187659607097764058480902663675260375089720090980045631998479934135642155490036675532219045758945170559690046209385890084600612247468593532591602428528027031994440928988164470707819843631913246116205624931359451534248955198731893449563831793814945902409192437826837968985494017722172773318233401971393443122701148512492954091016199959829419166388225337442382212010641624113720140967846985292601219153950800852135951451720140929670754908903107209224816090728335414050860453006910559801290505941161518895518153544721325035823293367885522380400141368887221158167938642273970776298660896469708183193025584703359042555335492883436573309419225796586005103885911386586265212758227047835668740325295405063440382016824798871692083218428625409369014426520511483537785036899027583376211548782659034597607959374782720016110103862653879113287651916565403997896491669566455787857676059769589978383957490671306744564912716789070468842081979376931402929841444044666907832160061407174227406875867476114609041316195090100509217015202796501079947041222694908168798094778075780022681731369520009566421571712234260060387643265328490952096042846859779598845887389797863238127833670577492452330652449804001905174712955638491788350519199368683293431954352032901362199567914011018217564171208729112089970239503907803381029208085541796742482567968569605683710579018095815554390286587715403227147036450069427846314155027785763642061097998005405632846190611847177212552623038142009460047613852496596110201317487024780156293831032208017071099031873039589450189042764431259783217898285883600795315470524198128512414391729111129627995068753033644441329242570065083439688846382382503473579452643644773983942199374738700976933543849993505586496760706835616416566700032328942239686501030148717718500507108745555463137910311136775141190465398077385225459856346674935612212388788850247378332450223559490269457697914334456495250543466208249723917087088978183197508588358525849552204481998167585792449528278813026324974465466936009810698036811680326798867616031836219749752825612891838650468520383659257265160170307247721485530392700472253213609190145814118981130481767976329493537542747130677368099356524410034334038123910610562428332115308098338831866895231366611530290458034553929193799272110442230332884094183382102892924980313436865011322854444806086484934315718370021497663973871293909400492915123576534981958038167725974044381123425536087726781669072783528576205540856058495565462535147089503857039811160304855831759434690608322079396155559360708418802263075287574927981805629372350329892877677560411480970560414500290230638708710223170962354754557719780172840592229988232008530594520742893270313574129620329538855508844207415171204334120272587596143409686434887950195928609598341341359228645531504930166723542026760940390583038407206104474021347362928525134031557100655922669293320089061992555601705923682930469845372095998074526573883028878504028220076443366997187164517918300314804356809628680374845337177495402549847815307653317471930831447495252779532130512613771400130731691094955681767923740320922952994498002036590029109607998120756284976877714941142640407896932647578652296391061839605458975491311561876650696511875066135865516466474728670835325901572368037996061290037293608146455057472992286813481154883984142159639588700004889695993447644746693244815086383467779829201745849183505616180322790424224502216935144297642643770786492028464102416050389425047951492520488684947673120103072077567458828709741949074172737917735276325933562490374576599173324121962158444431980095719131235635252430630937336051267650478366550558104030500336308617017538249296244621843903678479594543769299276704529779929040856998664989633877358739377669999818950899821154971477087436441329472009901874468913587601582473897019117883658559014419847882505839578323596637761152030910298342349990221978495175652564488244513654022585216283182474017420760062278067666624566380912264939839655898800440760954344522760870268684315219166112353279645965901202773683060116871931256528424998660561489074807184967012154130670382963967468354065304534189837150901560668773676441888813699496384769424559509153856373062828826112063123969546585845628392136807437642733050321470651873984065140819584803408339145647750690070881245166446827750302563265199350019629874349454571485775548883143730475810612307748245653965010063000069395705574701157478974805196616499811706503550008779581138134558902574334784891456219594733459539454192192708624042738830794205320376296309448826471789900735239301336330667909167929987902240837554079770939782036336989761702175998079270316166651169895962533841374359269604805109735750784160338568852740686505466746808600666512258085419907550437282992790536151435509235988914530585123263089048418148703694177438280671534974035704636763179353115239058387842909139869738419072527743016438131011841365631220171938552343572484066788637966392131644121766992318427232950375239111240465088935741106407779184933103459514258634170134152404552619418569499706928108641870858701096104754766446847432907895753753818582612411169343757396095263379903159804170954935379831451481185879149085851829179551752764969180243935290844410571640092310001386058765857188499960226361287452039833981743523559323701304557947258539343108680759157137028035412734131745676838040608759414520880338674399524834309396726429543935370713546201967237087699242651884883311455106312787460275522061105399690173570942035505806601071231742809421281913984826181719511058478465344316057337108846939877946026161995408973673614860625402564923031619898902886380674496454769691604684760708562045967767015204721429573323661463203829482649179608920702653578311396603684696816844105164090747076686449298910860266013175513829693268622596591900589743275363545947406312495039392129366751650055876805706356916615505398148110079581859385846988021064836666190328003115390316811819005007575808410131862339122495102729096006989576371897735276902056054117897956854660782392389222095817720434150175348020018441108495799299092098914421544270409027868348628557075871552872085292592565558513272517914422847850367773667552197234440163569273563474024166811508922069427758312202111833560807859669393175865717907415418203715538131098368729474851787337829884649681552595991379579714611484843876834236021459177724302807543333296435976609039240459769368185342891742274496864911137386143459623202747047849218113532953236955002630212691721959450672934345437164221840442395614166616561285246231342530736185986596258719233804369158083445740044269565908607219271624706185813857146882928611855884766534480856861685818249678166841558239280650406764149971984580310464101416451842324119009788392462850652502060570808904694016304073839042273432502998772122247751615746654024304462764940013778996654952718253806100200744987397807338432673353194796668917964709088710756422807459186170746332578926211305123880543250818145686625561696526020501198194985375610301489912411093309172935051018071258487035936846516527546449445476964172488639698421282188735202357460696202492560838693372380129219079320253558050263786482903323341123444262457729563652419504178464514260682278993278983875182218183162705892393526012566557191057760213937682920278781913468376185230317473978939614682525920060952888682749270188071234794875586702433939857726375249469830696550523275490709446786400220109001473814168392504873726578709709531126093673244087785280165965069395816752088578590322791451891407051972672238295292194809288243639738997857382353960700352291927732847168894699767700018699963554180002952954106611905834066483050779271530705544738205402707971166750000549770519716784511003697974180995045962646185538346709662589429982037885329857622468852610163283992005546760329257883118441707325913091456476438822302583715256083422991496670911405027726186218832523906642929489661091790904768411821830354175592931845670854782857761891601783411028284501950872418949160694272438474527125649291604632656895905824846739245168468498074970761768604012081781613497424134609555803698405075978173031837300430197846948403990668083940056146961321842527690190526232416195187980319672609367925456500361070583830404210593426993062788837185040516183988873417997682816216803419698370554437488264378643780232943326690154118323089936606573697388640935419696389991125010188475010999530096710963687133490717794421181371476376871123886895502910652839286288832280272350984432274671282607162789912686108566407888422911370061564211256573570257607108355365825038871451598634283554041091870150684875286340981642086926489723290220572551308885865629812119792771708469649334389276068740838387135864025165138940363992052090787748491268634518162924957416894825112578781300222056098458942209709330229633739328957953456269530384653065731418966191948131442293193162548552048828530789150626955446106232346749839250465471528281109397365050825351132505932316931325421019259661795986460633972920810147875174780808973960066413402950773373604198387000209857062384886585769750132545132569983223952394539469995310784184044947824103827178424590945385548119965807276019022349731248294770707593916402081677050385239696727525724080003625556597602828519101874591974918405072232608521670595881134292971400284900352301451508162340739345678887148309928446857155441866785946899680973160368120834584864323782692213234099722314693840190648752912529066835045389627162219314090345786238636678329014869873028255414749129530560724365652103093315394631720623592808867889600363195356287344737417946452705687766720156958133120029263063337181280886842722597047369351056418315103777807051723292048224805786669552923355528461279268262816403180356713701924189001519763613605934072139108842161801013091696223859397997624796096860822829115069274770669819235408186341026499396281620638270654049360679709006435078203925654871311627181501878878776164267327659004396978434416647516887176694613011914655391400220144848874168734130918765860740713169033029597003875191080715978942656751304189475226746266003865731831194358507128088545329819767684969432746225294484136309250567491227610242362587623286033398828498081496592656455229316221198059262692073889016158242084972986773997830324236890677935800936550653485303259211346456176084593638217296532543924678913985062713087752765183821504624969929043971400330367035202460248919266910580901335211575164188588731671985972227449862241497669402322781133202928604214369268345777416197627148088602755888438784783039598953533521090659362853327566528763500986903994477969997035304349703743130710847519330666282896695609636791488556718631654397296835698799592292371903955727192825585850147097170370971834968726884948451166547193476877965533596150413070299320834214008477076299075043917004030081611886493230518547352017712590825321742517174773227189366746967178859139109902618074276104485748380529779835816725334050656132979594417215942646249077071684574324619080692317630727595650655025583995352074622016104208046078235409280908888656736404642119562508383718976243906906155845972675292121096309245496160705747282883985574406145502412397132934975333917199563661254033124096355819920152118336265222045365552761248018908262942550042193324874687743862498139163424357350649922206973877228413305885564728578583347212313856803573344745030563037679191779021327932712534783115378742117013048428939077767036417455647910406526580517092781324190243194092363661854529001968713640212500324652924005101832080394779857700031606403653370876823914217683451405097704199251773930040126857562762146293945470598892907435273554568600858720224758861269779989909519008593643719833837403068235515992111914839701669402147032315458306205369759560245675133647186319986929691083712584286372616494282359238337311346327271058941854777543583826229513737011033878140121412458641544063482383836537021717523531523566820526301773999754166287939299761421426187434724956690103772310514577210163206550539399575393948115469855895668115427791666648942715049404442294318203614062559911632988013834188559786791756332245407234910520050483533713059507274268247546185424173884822202341851812573995966010201218261792146548945962663728628723247686053804293692666383171812475045504717152927866381263642992524313734433017408257730663508350091641442143168181773213149880665680598788614166136517518511322969374672540820296193976865539848191019190232056612394669630341935394903337662880398424442510212268527041164724355568573787035747123101390757647116196831675087271510920391640102639554597220272404098915828519441549003535875100903137910309814304441670413703705661418720000032749098829138759549400893547266669333115415333901261970025178061969852910903450527734176172984924323234628808276119108179941507209881318902321382147655411459218679514025237234753960957014180811386211070403522364566656944039524261562155474029487770837532115317366025853096575609852382636888194171450356263653264975967047010128059916000614487733799444457884170590764263390028773014360326598779556593509342747025241662593650073108129066618938446637482432751800967836407458215533954118946793802315304050111282712348523268097294409100293373854252742261834871832603259245967944758926891318959796865390366777469092780856708593820102802572947129463005511415824367308775985847456466923518160149406849027339384704599838694307014306589091789879464612867387191414418576225280328574784470867602227337957541140757430430653402418223982631220565846263524079898285779435407330593420958796128406542295132955686442497157221378015731330519937227211135517686070328356730658518394138085482811099016069625513396937260442719463524267238448278956598809414663924307410529804609454279917235457873127305656024643568442148861322990483910504478713908172594916817035740740110412714919529989888135622652998887089376784633434456514978080869331927164243565138455775572148547383772314850278249656684524946707839636286930981999376437015733367980099462234571936344798972029008343391454670138895154435335370751463979378402470052670978363485401412661659505566888441908439244170896827254938650684228961452970483082760154661587000193676731201301734889237822507824576748654892594085247831285613761768150167719464928003554020258118735789844889948255828835839806398073642200932990597346075616317780576942010084571342524418400458091128108723177169765878659017693688320715284201809502851546564255602774607360215108522557919419706884132223011654605404696009643413591106554376074870065685897901970982231371910730552567702172448365697304990441674236435862386238633117353591546309127364917098864795307185051735404345624773615055387348584776717954104318996626897672262447685562809201381672345786471234314824719859162044792651660961376001737317231673028674960614723480720844531221438325175957663089317788705213245346513098732006822902219081219420232708545103519027693878106328657384791805484274573822303028322954157075627008482071142083919652928444383264885144936995042987199668332466717779754790970610576110620817457519037391812522905959037981303688205950585582360365011874175201680382291286274482735373344600150387638368154503583410979175038125794753917462894393019387531201941105856689246781299284993888474645844677045566003148836626938382453183050995620342979808186063235245400036997373512316025539755643859369430293768482624177590234557413852218189536714953468036046801770130051331455342133381849065796222284024115181135102885605430561191519919461246053788787539675845702054900769741767638177484856436519223681465635616037773616926779093208767703844124058820654766633201728317064361912520330719735371117789978473714228168614256133429307052674175329622342665474074433001497372944749669176397577670340140461245037910041994394919126173567075890221116418718678440972885047212250470841728971631275829021933993522182573848664150548853334293336787543815567228078460369367625954614877617615029255404439092016695144021555856170565873147978631705378400331487417047834307652385324261781514611381844167321275467074609106588729482501329724250291498877107776196613248904300470050190973090270378617595394088932071833484879173427200975819289977320621372268925323770984512783036515029026904564348898783700747556541386283962008645371646959109616373546345990684376565577570289886886176386592566514131441305141299313481353384229401033670662894681488586520824092653091404914799456445682073532866278445630724871607466547200825351840660429321821934150410179581878557564835451888359312839526024391945382534539335257504928918147897244761974566383552013517845701812903635031180518263408792614726155575634366380023109422887726266112814462995898009595002942132723684344052661130632445559297565623762019898503046401041302148530697627754592518887686176370383373320519371160733749185340658146524490650437956350016680462029376875715953742910189779877346995549185279071610028299424472385608023704771336460392173063023600680278010900412460419579382706068357818409811991416378101799981103763427634361303377864920284518840124852093541043790764978024337250703901626132102126856770225906955421841117258539186134285307767715500098432043653930250178869180219249507638886677365870135216623988551832556033865291866909204702846713357851516387553913338445266496666081150985791643588456321087430441700541642381303216398499368721181211120654766373727289424231739853923249402913366387673321672275652046564392487426039129789172161757541651616461107740335821383467295802015440657914201012851444649263224754859709126387830856180653322722714188264564831684001603711404032328951793305271968527099171773043713432277362772265900110181933939194633000788203107045222351441933728102108841154419619273145881914579480545278886913915801290594116965498641005228584662599067692456491124855368021360285433187262127006817278954089878267317014798860497607479924387583637532630518032837650107945770632020274519437896054367445847260868410614067894693788813822512483839621808043240418606854551649843374894441135371339657365635826651509284636361231937746695483684150495507716624801401146138209135956937504742339468208635504759701187676143786271352501138763492122572706827993124564919311894519429302362028217961978018807362606143551861467638724284270388653847357327152635502013133369828934194539268264210483818601121064703750964914136370103552987364223006965504858348340008679529892173550593960467365460593164613137457080437644436619195624674336081973815502409281750127670422616330724269577402828365321530802894841378224677333863851033360667724933252389740761459326547543384520550307818894402077880842308279630650647154546596797072610776028612537433722647201052242659454775888448751786343508171444466118932485753323637740352804805174949769988337742833880071280950196074310105335805821171919380642252531159421802189930280482292969160360059726470085813202679263542786058513041119562862802021579414508693652171992760246890012815072398221689452872320098198433544414288293367853245416983116372533389607609143082826787320326459703135921688305321307742036763367693089864321622872232674691069994037974454205539296414052249713346569975753744664377013148021992733225764314879136627677971713245242636796084077845603223231930771579941842397294212265063486793913662913663854152497497361087660807934313582498484506745607333862760539299689862302807486656554233652988509388567615105873824150837405283286291302191908834501726061934832344059580318181107188343106864846730997537093594688234316915455080518470438386155062442825456739000810905867090235325867530379379520777329790049845857870350194093504465960324741935370671566962707302611280143049027612617870582466891877638594355448964196660241519178370459270984645818470903811274466789845024170429425026758271212435120264205679787200635994275620844060458155101704308753367769317802252014473168622872486096256635620270235313849805657297723549711563730871080007731756991486488042665969606954081792008116898858268108421944153093547335060538264806909711704770123596326052199241350590547522069423052286887386080511699001311046201263564393206168928476950649996940601643409899238619799561793117804598385906834629101695747080501746125394969212939033900740532543081948421527118927705834219993787855217251655578775126989243559941269837717490967079559825851686378100442600401192970554368798074221963601687355068170926158884179723805482717431855681939435118103806018735773130292567738785284240970814301151708792133570476154495959131043373849072310035105530549368847760966249390186585115854891061904696502745613457040405110080821462376908913667254584710208678567607203977874309108802524341429031883070192754455529541004678654442559995513613340362893580783474541156984280975557274025219802440193438726273469001382624613014942118795295389778715032223525217117839289030864167342364362239150024902265816227597832761612027627287065195781001000908963911635885620175060435580425170157401155327880647692948961538081528322437212900724950408013791996844697372152533017484342228432022712629471225440309148263182525015296928064776373811583297738570795980106692397309117763574089998465194470007506113696892776335697133680005908539169895982940714507665799045749347059297455549895021593917556798888843910703306884672207468407654005945262601732694686094413129657231357687905215681422174288332114378310207804828224234313789899932249828620287697575475917617948891503932414501072900308633197454264483619945283394286781360831182322559660366894542340612420376778547460411807633951483122461855365941620195306361479886118467261159585472250966447705961418095038216312073599880540322332213184099208980492211184218955143400869437568910863029173923556659625001178906970636457293686492612189446693108227786077482352464085504811797343559222037877489690701941807323200866244613863210220058699693655656442056307010885916539694489535869667556278736273143143664727001707754152266891741281400816231618851049537020052071602049213970008016797276875316269813927226819544101958356636958012977050914252545792588633493852926082522591154365054813424455871757433422535525605248067342092461110236742411013704462867633046707516910436124188059589354296902595532741295704954624021981994284800333990733455264358929315374588826445217052267584170371579352274322841116991606454457805830565498830352907198379110711639356680979082548881603637577478771798418895049619014386494582549626422026478969593471945764345239208181805158193068429231790852528124737857813480038003732643418443057273301392886925411365767295821719902368837054507425550975035374467168223385290544047114308333575152068918240528682427617871595213053376289025449938476287395619807774169859744128028472963804623103866877981464473273567695655919121984194266134480651166522740414941362602443494223322730604720354996087704725413973744112018650985364924147663383952241445651275161484463674522431839216375487538318105985770674970383870381776454269186508531626981812600483305471834469201770098730520128355017368576548936624823146888214456642224605704512513424312869374619240249010808634187279761060663140332967145008953165326632444844661486317449888595458596150590490158879727213686781439376596781950316273844703868953707363699450446586326899463941592817613152499815641362034478507842234374805163596983766425253963761291772809158310615173082276802408620408475039984821457570100684089041806807545084474294402071788825854064981117922320358207327683346499798965125019500594132364775798900855067714715750013794591734630310690294519625480938426820097830362667675726199572724917172724647918453516421486963699694463988209560806428089989283832064336309203836269243619902385625739659731332432059777429554140244383838409251391602666431793518544774049017131626228114562197332640190303835719881695978100342395689116165114124959689654022327215036199046064945088113146194712560314242980071045243754939373940309605594977179061040775843998646365554367465079741324196822878450472967886253301609671669635757093788030642413880933364167053046997338147145447648356675938094459527333391921741995490187545071197598643742921879687446884014567378998610534374216859246488094483889143400528696108082870101388693082313261414342648055771137819299203236646272346877978064495941137969677492550592245533855617308856229214242097866669044861396281458789230777831348286458862797478627714099018247644457361875651954106994241101623529145702238182447405776368272209367521713122923902600185671573888071118584842837329891137131026725037504142252454419125036358969949383907047231512438688907423113273761403350791513133887896955112602113107546212862361105435605547135537082061488293713978665618902687930136792425836759156657941539934374411918049954920468132740383773479526429876822992530922698691108584748129335843059100411156998107376377509009475582658878606234176743511236509419230685385153941331800702068864989176317694278982292936954488600740499413240445300083624094403783379105769153251947671172779102883943007221597106873408091957863553885637143874661028515821751909868786161266332030274971062592217051315441165758165668372522607030730024099691424845843489719465071002115512057491507970343462989103099311382419735863932387161961957576175211272440635015147983975549544805422189517424562954241036551755378088980813640045975488859170427613315645883235267921329098393484142689898511758806278993554135936963409365491421851591519989512268361256846250344850903638949481647383841321812529062240577405976119854579849825391832439283232184486076049759402701810864504235842697598887202123342872586982867118880510841909775626918057070843224252940900062965474078620796647934020379405084179509560701209373309048094113035020274308788836888730294949893356026234898997519931206312043132395188146623979793832165559452548888928884051973480271372322779686222102270659137573027569591890508646739629228159107484606982243987737193041270406225575871477189490643621236686064710095848074906449250235151601992514943275781211814815041073979883023335846966409050578992653364044434413707979351888966842201665443295381207470023565734433642304678347327508750453335347364487479861376810892105570639074695657423064754559368879618254203420526859071798366899660150356086115659789257678460557200082102232925549608597521350299892534214191251489752352370649361939678608382521412504823566701539774557167442062037680238281182523530518349930833224895638996147361562216789423443747580783716611243766754495945913233812935528966222607261244260370062253188797205731216080849626608989427631336117313729353537325344189670901437186221271684366267670316998732376466492182609854850734408043984015043055472486244694463793927501640028699480943078038805528969012251237125857262994709495268825573347625203636879513213150686545472359798399747729692509161916209707533336062567782146851815086722455554095803382635852815255835824960386201059450179678741775714801840665709194552913546531042249401067556080561449385509525880910800813472754367960228954858261278387446158130259237021580368404008925585683116903666135748338724791074589973996856048011531479924307251979863922372782459105813047678025406596079761569971331237806923656852384977496870932687705361109502255845650236316304131833797322213685631276674425360952925784672683107753556181766944613692286003058394359022371644037502904816112546275464240032790818411901474146092499814287903271755568833382096499786026460160739564842678783716820362857582916948003418366178420910283065255748775929993384963074700569786476021440745444823935371770654095841240931932906247038227531583463817039653789125075145767214249255538904711780687029495570050867349401376836832710012407427131398797290416133631355407990291721235122715258074460387918813597527637867374000893259115243868791194010025693096664692306369788664599358229946034843646882651986521401410486029662722373721929967916454066726424773469818257762013851204612873427826183431778256209641814465285633229390689008869529570995125170754316883187229560101923192067681579536340840470998042333569694992298430823338473012167427595842775005789859068442665239762933309709069011748119214743389360835992349821603234710999982156714764899117913355700738013074004912906195146705194895403521964987277679980183432017500962049877252536489577152167811005542644027314593950408398289295113028573793926745634225339645388957152482024938175950832189967641051081048441397703127161986328451522546834570364989718826360202193287073207173205007757825585815906829429439373116999288320636552493329425725344823295621486054821432821288389116596400016161745861536962387157636917102053897315776989856049025000019400040608475269039293961130191034495416820328408600047259031898472995954679638089456018236191079495489161532238464500737501538488411346175591009371439111352261627745936179423679680717995215815213153227692009423672299172872487199161460769374724176974071496616898217306556400104755270351613484838959723804669724323192842474107497655049719528911698346564024390352596630490766893124066618249894610876960146759256021850379067386398167396358721040482853047145720018150050584392222066191965314069399240029471519795653808456417192329740280790663182193775869980322474118319694071862169789007324188752312299036576589618343086848901586979351175007659127688450658326896919156625242880963601044377608362636474698900284395519142240916658129566757566292700296124570998462804215642519898611664097192571862564033886551155514577005163117858029584994992315205168884102195907795328838645262335029144848665035238598284155761702559604524726432868048688557992384388532753337063882891458500624110279185348964970793252238656019416137738730801620310635600256347626891625255624105907196960192504500983879651841639690954916820080988550765285382901796556924499006604826386157428850929433645011061747197413100225125127203953644377266013175736574485907130018841306666461024679093908658837072787241032450376534654232575524080630565896091351980652931208421042729188190175873534761763708469951295936510582756952869654672511951938430458884210496387169449098149839897232697921490005157437688861331425947147539591461577247105977429084478644260812603165978655710032287939265525998448054808127224335084329478948509306150599067336230310209689586660756226139731209734245108965361205212154397046817017273026679194607780505352950916168390809589403766423250858215155870177294172508150351581838650830477878967363325076309564522344608013056349811461543419138542159513763559738965712252771055439696787001847001052034169591899981377065990258962569097612718418124539596313047432706981260749076385360402923605584617645799479129488778429350156302771010083375820570824401665900332364654162571577267534529819617818968251458312362339968014962918046455114595223736897293486943005957820162708171703229095019148575101615718511648861806441052206755187559369135783145820940637334155896995406460608624923755044137069287156057101158363549185504996966286110609845887481189355891657883689450601846236979206525075188724327489896005555785355589108016883571545854642484897315156331262821598073669329514129035151957377564913662757241094782274829112888504008593724116517654202800280962110786352979671659041446510554015525576218823957182911712589365913578537117656085253496331066828375584576536157048726393755860767253264899007199796102884241194112706696442444989093730749473555553633353479879997691733916784772877074693235894500308838908707939719619826859955141226785886871818715662495898447712531814467659380146645429423104388645172521805373189708346448473141292972435713390517589748030004710062953780632444854016759244411020065681935613261404820399697747553875921604613325437909508951314926509885128144127804585004172741234815655748311044451238687381642212433964151089005041017025776734769830865670008314698918081164508749118084619909356373357909942544965725716388452142318584015269359434743955065732641076723727201131663229173083748173634403659341601821098205584106426487299074705129569227331542881031181477655429791852964942293384219460725103525405892494133577305025398685558405687719527538519647662658700678875685345767466824481800149521897719221850234334517263850943386936337038666295607173344383529146222150659586909731689531168381757702492225888284108332915733509230248852977400459503278127203318603879026589631223529252629970735334840425000553648660498759664139586847826167467723744643777345094217992894957406570210542655566564982394303777637023479771278735353405518480322364073200683880771938433885930848593581238912437310226371702033000112029803038399776274331953119155040746873871481226289221340518149654918583232217635620501950472379997058343312736276213487860376372996561296532655800284090154227625458694130953003426431400968492061277249184170928260162597897480271343052005383510962405282939221718255638715149888849897595520634327411011260458208654960553049868790764035203942221964751403420577946741186678081593433531625243976873784764211190299934866688640396991779158875020194520702629045065362378715344774203242964604646292095366616087177992766383707321732550811504292808888180295190044422148064290121347649770150021076178691334710822140109268709008952497421121029360301629215292180732205110692763207673845436483520642973740266367792147466472154523796909397848564808924446629833137837623781339875746818272567268044564451956348268146886220477199632124185916158608490872193348798832729263185204130992947177794979638920144467823503963993775736905445058430715843972028430405335862795475051848183438448593117363773168038312432206553195323586959332955574348562118953716611085959845994906728444407761274668437941707526099225044998559562869680079513192856854851834321623504983981084085196853254658768788160730129687736605856029521767329898518553355841285307489878236196399943875580133217169306624380635467686808437959070895647367720484089994630030384252109180554595397123674098665765246675496104622963912898660647812396544225739296906260817259858569851972061977082387768183910132831595427478651221393680366472337039972260983324575711432450864744216018465298838604686924731435091476342699679532066907464771073172597778364782669242069931991717637159151983189234339072522860608274752099481098791256821907401043489286327309669650339070416192456214792271068865719939258420121667647214958094277378054034516112958298477667858939260977503101690331388391928501119094085634109690680532991631751618659765394779742492431365658227611012979397199087329458709466525949318717506681915476995052936026092337251830806531040844240238946258394197456712706202330269404778509033322643752952313063456845170537930304357453822874748524275637995903252833683775494310502735463210102850271516981751398568462573162926782613758248611426591065247673525916226397695396212144862000784267068990589951552159726979815365302101655855989701095763721999391067028274891111210086323567312132739097846347907998834438041853126261830581789727566252696875672216135235443023595510500839710111344450186732825908033443920842309967433774629927592583530594717887231635440012067696574614708215454109649171141836349660658527446021126787102106974095858471184526498998679145682018822964666093378883503843655713193046547495037344020408298180954281856484959991950072178480357533297855778893616950146548942033482360559630682377876012389601073630070906369206081158955035570041897641345973024295589756112468616700043806786712435142812037459021375195943577074138637444935676436837533067338044340516148042303856993128771451106589662222553431077854460707627556510212054000698280005791417208349154319894203297805692330505617250423987381833705529594133282651978092033338842012442667621953004126805875991736524873934189861242232778538055312772155794214701333622375846476852206566721689607641269262490341619684200791861852299053486960964134118304684427981767550809696452416286614423260875901991829598018246404067105111343230576090713073391050825643261400112483354133007777450911389848947217800215034755333515104242609049226491414123041107800327380608229140564818718289739306215610386772857539891555030763408416995066522915097633409922421248375583620878063483156537329296964308695980366766094839294266958675941488982310221656670646121218950817382639103847318933822722294002497045327294228449734066140129441914647435224857989652035285021179802473582368805062377574034539415702659654946964118105878809212685825584868694986906209848810685587472939717396686887034946807974646091797553972011565918412338826697372613029827972774922854954081145884998281428988735831469635095498818884620516283476103107593296185225622624426542874118494419608274937229463868625678984524309290746690787474231658644122574959539012674161927460045754946357167556536402930211074719720491324057107582788630017313729590867521077564584620411510082899520003490193475149641566508929408189338531245650646423199369226872154635228226290298670887853736099833405093222866408373030808527287574306066184145050877368803739303476108643979166662999761401978127693314378035204442303786807664112327253598781009066707823872850392308530994762106990253981493227514951747420551849237202950788260597403398209812689242417548082050055228424523512771012872092373506075807733994527578544091642426544864438209045585943537172360342408943141978209197237186439967827858122728896938624325599042319002971760540580953831708807458399522326749974992247136045318564935409539589203760029586697593269619091797100292088576670697328889280313023338386608196702877816580879379894872496291089498556062830930085781995633564983222817298453406795344418407765777311137739086610185313640425715105949577877658615409706196889629394466732036479390272025698288699077164315566974969840904775233976314055493317988273198886956716424834410108078032641683398381767959353050731104320414458212986882747368071516753897733342110126365671937378869186218308234456140060553236457852631510794298397589836288681858295758653640126311803852142559645666276761852004148355937560701046818401268662951491259438182821592115375857858973346208299769156504166810455241560962707018483799336752886743718057348444784848679255653807021862424158269504919137937702089914687040900189122367885478776548881168089743906222861104482438984807807257195019828954516489952305555588198319286624244576894572151608926413537675479751934995735341187015283797503293650735141412623135653789516274137441714704203022838135392722791597367343197866958956356687332725036534910438649050312483567370227710330861949194554517411789210966337000503079850540282411416015836459451350671555994869444442252445657866346017563251724945242045480922721909019649249281663935166596730489625877107607122222766501149500692346997838963579810027299067703596881535516751296396321568397727982845643423741727540678620854652932473204031991778424093164309859652629882788618560834111877784316781030431878366913872578503513476770787408437098780806822860533344264838622146757657436901977485796971151987463475679443131211708873061142572448576969978431447182195864452956744836517671036790216048627978543026878522413961811588600171675276496063273525724752391507098700044546260330694739267123202602226726276155226682788526106311244495037165748445628831471477198549520991987935339244813308799989948900569748646893448996133907101577600032078000313968398035915121005878782156346403695333947397343633060551906279160208798191692778822629375616402608203433926931121448047230871016001342992204386394548042940699877369866617905674965249772198371742008229030296938543241138608557553780894387470262947036378204767233497390168834928404235677911519414157552991532688306628739726416773827831098077527491573430654699164063954432925433793771112687389746923515606195332721833073840166048859300379697395320158724935156347433024358243916234418777257138075319448415480888073491209660508859697063498357429704913008469564919501120384668736442750661874992923576147573537623760641539810646270941778848711690382544783395692904480751796488051721739222753246679994014285490130867828922221368800389616182399822410596427487433983353031176037660774074775150693063903780779734395968498844930324649763586118366949354428307353432576278841540795034929835981891816917659209998719684829305684025790473520466807644684126719291046183996222913190048600332473033910980056967355844071036452866214623620219019632328504300084822283652954507861566946042647894158107986555254498097486474924958204321531431755280270994896282868645265626345264971920277383326129761263003998427263132569520439914744583573886402779049318543508554272267560302097427563583888288818828062433249724767831796167645410382958806034954766232616928513235587605894542839275823770507221704025735543701195161857148117638806120645570621504417237849340955004458117784395768290269967846129895845134271682620018971103335445236621783306313725235602160020135848166543525397980373864207820821859518685925564175130569870377893552703957836143556484758302779568083941220760020985133374410743668860126983368547385901718191575159685198678196471632640246045557584995868316313189323634328645664788520798724459625082784002899519225904459248007661622599188163046715810981060340023727970776907743948745811679770251190813126283120857437205383619860212655326372151280255198457828727797960798660507519826029735728081490356531801582500755463188703612656799590911825019467309657304986829689884806140106438086737121413251378228725325153999757933646613152975610033716944781532970599201961370845324587059488188598268387510343927636660599910304513998827254579227628279831802575992607396449861150997842787723085514855389970819807431751973462523278788947346136790896888907112469342649397614379744268617371271774963593815311670943140171935093317806006058821454236781728675536538205117257678712867620950839578626372432539612880149161657147523608890897345814189163398019421962146921221812569819094346265354220856463567836655418245881352666505818789586300728461257806538204992193477387874812601099115845260633915252995774495855277509798187204578797988799077044891133534629197220086173106884672493697496406211257026936110348754356712260932383108188668349191463928938155699294639728235049453533987217342207871766313532816410556267423848359685712720843164557119875727921174044512003709336784142979761473272242330275404587552558251830596039114691559151545588971746697709767921898115936709484766823289113687600256354909125789189494757571335125138186978746514471132397468109772048532462516213008157882721634642214565343073371075848560178844894728848065838848364322875965054372443058316010531283601303217624769061277932886001140258963397056614426779558364398542075407811930105464964000863633283948078220322369372245075524774247127817327937850986961905079277124022706565471237567509523153941075419186281769746977432912680566176026422713811129600032576906463556756256380465940380434124339943010201557084729100272945424797771466908183404725188619234957001011195660286805496484964810859249814252844342997757668273195484043729179102914423586057281011458590614456121608379829154191713825532031969448176215897816481578536112778761773477441166916805212721257209364986139930407204125023988748275242104305409043312192238344445370586340603516237710429998125141481953181145962513117063615040121117905002540165060613942831606239944940289007673164740805680815892509572120900246373803187206892506460557359055691313294489240484483996234822021476180624396900653532910424774078030025938199129804056400711800563957288017085792136216084032610725767294158238142143581959669465522770078107586975632408527512796410462879301741476024282280051493900195747703654584759996758491039993449890856760684344511324459032934901299525674538686697584408950912002486801311585136793786418031556064910131997939244784681537261385577413877619147453667366041774198266025076982647802479426636599021042810827729664844693429172161397569526611104823597908261667365680777030943987102194786725156669118982672844611488880356908637221142896285764154819142470778747575648809902477864361277154087399136209304562052096433228226608458540502494608329581739116865989163624345777007332445709963360151763405518917872914063323784057802543705121083614195053019847543436981724862688358095777197477071317334961742508119904460310373101642406317919483448183151670675607523599114677936731677522150389627204722520796440837791404042207982263926741901640177856493102723517984546822667186290643424295550573769241166288255931047164995793376366762346390290459138017135821298612658070403562016702294352342221273267059525317592690151250370630868926338662545000609032399322213733247631392106927398116023418539911673369558999747183241682602760129666205107477437742298544273532617614551122851993349521871685742531811752487497357353767738239765835969539515018828977255450840081315229549993903475069095341580528735219701275455014311131950055045332146590565171486038083721490628291814783545808498732542016957500051527596971508327967484883097101348990284844041916987053549347560481193401039967141650758359340381799950530391420443123974827909306080203064387467784134914736039383148763316628869886149495671521836161201198534857201010379005090301761512013323947006254409578896334855462143560514346563244526589171986117304607003471035433890468881080874052148020156800411489878605030383206773002990974112968679235319784088465728003402008327959363675888391968431406961206162039093266517396731212631559397490074338989246799335164583100481331003337056169240993322830774586813862539494090711842883825518642269134214121541555561210082309786586634297248926545166107708535857288393482555355736803423687221651645008852312041407520732407949384449523079531698455564945435633134800830817802777250418805296294183369400057084039883965277973284743033643949113704536340586360083889216479855793983812098586335658542588757989874615890097138632072361247969289546412700831345901304269457468366168651211076768647984762753221399188219807280709960809025650727024421870373261200399334864050265748542926647207508691895171682416602614149761651099366528294167873470937927005830444187811647057895944659570205313402207008518440911800506110923961951070068147855278006505730590222901033771479765038162575269984864843895557340409645585735576231974760677703195573420468457632177399556317664299347996779648817585842837735253108787184807382886703663198967105567940053589135643031637961026271375632663147481916076898569059982945135597770206720938253478935098385252301217473240589952941987031368508070429757248836784972676718165767557614568902733998981086777402702843585639590442411136940242406247837693951428570383906233217920059599188888673886991696348765263914083498740106886292797658820032088035553372329431527962080727002667931186185267265756672369989204461043610558527139641597632520286399315081589775974735070836431764731347330526034377246704069933682190036252217257619004388198577426188369673408441453110990241870532075582235720431325034795126628547942273596852346013841022786284285506241404587486037635262271537652074280227572447452838336717113430895756371056951656153190309595405089183992581716034820293091119934853404144943431054010650971471098977918107887334582390093738702200241601051299603985114662655262819199170575698319070188556354581059434831709128297071590617630038251404103228227702446830657846463330622513982912023464407904301937284240583012650670024783168594701446567343267050399756945976534207124877836836212306280953044081863100023322794316317949750166329289770578016319958349754606135230799460170753246504510519670885973189313269667389447279293761689543287255698231599110300730119305404773013838685906483205822737021720417603479162721948344865963666769725707927992858067339598985251003918440769682074858312903898207703623510772103932332923209995522105357285739885053296320281168106532890271602028738082498278298974486362010350794104317062037088070694088014301587096790502606830279375626833144323734354195688656400251192013800490183744777631059329433598695649847561138810878529956940274253384815566578799034306132110605880068104712083044289001881734502447980730487252417944384181894809836943503682929913660888263892000365735751788335836260517814512059574174527483081447239504248917524935758467689502191692521782821509459486604682835880720892606029802603145830577205048713420720978569968250742602714653068419554027017264917153355569151556306279923045494165246270039169989130003490402947229208010973023362462416701218224374596589799315805813569113929295493394140597481212971791234005988174427706024949689618855336608822576535364978390730642810860617029823232701701919467723544497212891208279185899583235472627963618681747676825074775477172554441561086557000235315035907434845469954976540148150482752653241919185164927406293136993850120780815341680054008857429929669899356099809479843894925259701695227348214630571675475118111720882605832589609141966607070135472161395217287708783722057666668868406845043464868613687271142574950484726365824324210655061385725711282518261209349762908951994927507472486047312143567055155208708732805741355982210026216585886281809372276017991233264513390504476201362347625123275638009239769059511183776411220092269984956427462003518042595174577702550490020875049649326569924024146047622559193804991596013877367566695315916852282888445361121178031581587923358281584863309101026473114564898680388936951364397696392401862088219192256288428514944006096204995242253737445101157517603490052871414878001600901055134161921319455732620314235968635032434175101870760286719340409416108876151828617478051108324165576086286465433927316878040729763602932884648471458708653847035755402620185664177001497431474697346878991582452991206221689249383842465783433744854882112299220498935669387289622970726899092394673063429767996715801659318488369395824888294703189714958882897357156500547044265749826222303463689784552586860290096050583512795694123634436716464683333260936376055313320258539838282559188497511151806759174195700378923772435345176607463936524734039358395207807119495745854486380309304861877998167852750288017186658141387908905954764282027690090755865483919607959888034644754461131955022334791434340451933526115627662971047853215475377494730649876489361870405527640085920750691818678248087862890838398775271209563118306847030633092569413531216042011028449186462981432673850144923101184566208336946771428507857679756755913813934908361434022028645736521796384491738379601360763869296740563856060094651948575033516438639854220245556570647700706977934672301402121504558815166616330022284154369854337215742573259266453098903737334060573391629221180277020562692664800338294199489093500151073995148074436780267455122197319415814134665210249263591817577641543795241415123880721648318711859692818480764843944882991217090630855701359791353656268341493987550911331701591986653577488613756150432337395238761054186727219901001591494184982500795073627489027917449645664409185895936244188210362263829885737626335858492127346711776449359894983541757049115787282459973478342443638048277996281918683893765059198101576135304572306745909373067517519043273542123962866879892091242947355829138778130482371371172448975122144526232591295219126016758614212130695528032162512520153567247878565769477511759420552317323706208716254288351764857152185036766272768923274938009293763521013389122738200343088738522375347149832150621820152670262098564907464948612614878906173431809151382340422975419426683279895525984140500820223360497436423612941532861428223520922422305351342673306069640510831446324260421717769491237902739936620130303989025932530882583175415281608511747173492393208039559776282687177017973552402294351592618766626665626920602028144084008389354350609429661578496368408769635624326625270198600092847996390253741226405946601825081414558553973526246912104538293114363188072048081260409041307760126199625564905209410914757132536593937929934558853422004800562433858163242141960200461641683704980580496598977070557856585623690659974955500625033219198126573920455583361993285369365376969609514858155155075438502355044521332513943432250251903125973820075653949163936312699112704273434332653723229108374630820722618526789447919131118992659265433573716086047220098234685708928732412378403644097548956206451300524779780012691789131080217628490872115584556485889814296104846978020615298505675676857508481446938753732709138813744319815424556274786676823628696890022596220318982432787480428234831694289982519882969502647893457121518324458938245977278181447967222579552703130024038137372751539588332972267626688473868221225714753486244921109025193008236060058004049119064752035785311087240016697203750384917427027057405965632421506742407900391927006017049174334865011925857977973405650898312446053459033517869591186108622160007251999199955571279896628131258604269632742626966062262349760119753368018314121298716922009091326890383800705376589000770676845857233086944250270159635416863305589933255002732824377458958388393832548551081040210944779559063937981490688042591713715873261541945221065956768342761794883315735931811454473006707260982006771712576521666045428983226428161709288002190907336859353898691585202633689894151023045673504062763157011136340232279516514633697908679158454962105752790972198969086363459861570959329244529007149322860623798445172137738080913702137529582325242341164766809732452206771505770205204318166424389264416218160555548277894581178703350832700007092935359017632268561953595303977200515922770500952207597926796100690744211444610981916958110156296116496966014666417213428639283078368904791173034397324643155669741213730770045350598017177335138972039460458919632456433056429591641815079156189955646254995947472487786172088339208017147627049554775167338715872494974644938543013507237469010986456505023805976053545340773167874005817790545100860468370072203930561930093414452815748603970540012102819015488852096454961528108467952971743485408286452725308083778532615981494346207451422944511442605475018321953292149197952173583577449671355045689388435621398644073314786523488811768812664856394826397844119313092819577556290688070179335600704607173793558336845597544673144106029848787881483861113478887633017833654404052081023115313249933181176332704075410541270364637758743223788340608353733363839568259817536640401690486262621318064379771206730172745098487488863517305350973807515193562075866586768837532010318758063204592141046265195634146666194690802022760384526273760960972867321965060489643738855912558605168623425381574682786272529757073015553952655524002054495214201745871732338333698577158936648353923382976036118949363782598823474719052800704926125336612163352649962460592817446759004297612459141544381802149769970920422889302070112991310911145519721242732678394434911213393765357709077615952702146539135476513715294843363494727986944047398764993851294387540485911057137076708411023101846388292146474905416694459794078934832085722619841122828439761842720591303467146265806623564710922151244383655042127436720425707303860121666266663919925142069715156530123984029124592572091027273697640745340598032361832855705011276643073057168526635633199943665948958367418774451915545151659224891920485647853237534360609551522474903580188366087680524605430203767062276721592649320140678194241587066986681768897295479666100108505421777775842273447826321416438771471917730019381339468807254777321484026562898456208465753074981527862959993647896726210107322875211127487338238235779777766418921062297446543014663502898868397705979443535030555896623841492378976065031836041243726162721294797187042693783181019519392414636598710616878932545099659021659461269693779366550533742251517485721695108882326834400309006512113545811517218209388786810927208076777161559267659097347776226217353583256145225022923365535484674527400441325640177097719443755566761170815278682283918639873512618998529372323386596183570877003241934365397358701241819040553477232121571942546452595389982767625404892840546769472209583982981390383190188383775606856038504328279830496990505979185748938611547817515126410362152978431822966656748508107052914681590852602091536135674314090811483560580731973420552729000961088269272452081032452826462870080609152866652031891122997803269735320009860736074613568921341885472745121000852097926740772919037057099578042590534141114313387330144592455491738879636286723636954554259449358446796756000202613378736141958597163432108678024292706183947380341236010006036304210905377172640388469334110373974513171968061156290461726879630802212964800059495658424126924441245794879555329629769669303065641910824456370040609981749602537407213786888919744750863248103349920160425010769758045553501686062128778423108058140352807703002009768384239821589149109247940884468939249119177432174202938336193155419374553027708649354407622559605471124032794136268956687918001624740481322399276678947331002093887642840061476839981761339393975894738510726500144916560454291109118391014942170702638599207380794324113355341263217838802470624110832792333904884902996208479071881268955117395007993830747468513818919548587617595647099694767100251943186151556906556457671123212575161774003996217613123712899111074651214643541298650227944457474069347419468834830193150062529306050175540089515291992398319368872245448694659036842280184896206739999300990813194538394710124265307887527971393418428659956830567492534007055867962760550635900822423009799499250243699901719873507415555253307605708596691427430577059812954000622726500225181300414458963517825948904814304040557477179354261244838651396250843504783782992199069060155938726010556016508522535729293677832135766025671003309922661046695995658290092256332937316848985427016429040136196291520738112937397640063003911241628320477470205468913875301236501123395602993990308061822619277647494350875598929241506829551709664777178222887778982304902240539875430526809284661610744799712961273803226770106143479976703784044723446221976457498328423145633046088059197714914335333132119472254237324167691218597843472365704984177382970127578865866875609892065373013003080427194324995691594925214534990976516271437950046329632548388704693510046380583826002723366120077596690879384472239970645298182626592742067197395633339702866181599673029837953117792481611032108130330751728455332360900992739051193902449395262619825315740183928954127569090488929441600283615979733543820025087279731836815946638188981833788477323474141581128741618489696370600672126424052717168805151984066263518680751586664900141706508207468407346144006968467185521391439033604785247459196629695335620295425704551433345335504198901692235425425947710172805269703498796079827443522728369651408321387805267036934675227568910684799049942343875648609277539702512232168562247516599550874329590484506369012615173921831975586942232530992285469032054947431119270109564047070413582093173637901399628568449922748526345639529890281608097640847858660535168589300594409261207945361734705126372592127683045446364446255541188431042209694895906124700838203100964227073970931552602024053320056707906249999319598554908474330439146322215200887807221723367792559141384061013111072496600684351889807354615311949778797723067935548197471576602359227506860385227655134127803132203006724715271387054015606937811593969424375982262325439827774213538514130488282417974994672903567827180059223938401287201351752715536095795126557568980831209179127050224962827970936737390771647745029938225844475883028629705512156511019144520420242436139283174607893495828547349984110161619381623065858771501621831841273850436699933635410733196495466654949252098441897483379844047032884348359373098534367054509888383758533070523108996879233374701466831121485949258433102490228839476947444561912863301266312791000850616145530265220004041779576159895354648468978538106795956682103316856663569510613049066298127381766389095094768525516277235210541012753841413403309186183194824926759833982966683006800369562502458225928671654375013818851927519398218536812837139145045579934337304797450552759854973620884881434683870764054063096230045967562335947567145336510566770104152601018089700891033104283448916381283211153644746473766037271013590129574217223041395566904221063623477221128959530797539230112536220172555838898003255726741691700416530775463291180367007419893086017300820351259655975899381174047310193392049304256542265661397112199515419247441135103065328875408328442326920478303941380811339108348182709503248009550889110829967811027355331359660337055808560811473545328552525515992703558623143043401569199112661235033066914659621980760217281533611398237363890457732680232847360155490830772721235601758596606815553695250077276518196155646683887378472973401844021674656329271352546351113055968347807066337211284840483921250809557585163332837193797139931410608119211668615362676755808383908044875324115979225771298854683074823007908454316125119002583151211199729647954105292053265052288929925666513018677904702485008712875024601991850172672413762926299525682236293420238001362266042676871835342023473101494566770928259456264046237977839193031710262914930267622092514813666651912054649475216865139243071587796407800188942851487809999414491052044591980622904321439024247725155528598556286990658974110121860024640723111267540449298025947604117431885784085380022856499653095553550290062575817623218824048564306997217248403563349105143529253829582870056860533537741433636248286522540107757548466565541376266622855243660205911937790839393782976009685777940993750019151345440335972320937021254802538134907620504605470127664091585118132758109811617767935085592654107204936676308303892095082835480948826851597477719982292980537029575074338561293407913885891762403992031066183956025832652576148802254391620629383077040725079531220761311904251604022021292129301752393593177231814895838502281736980622082150238388407968662727564042996641696119390085619361071546125302434611923414265665937122078354021425278832446370094998868827312544533156422302664364736801140409053315681912092793795914056723800529677610182874426395727194405241475258587164497570980335540826461591030585744513271623556678719393130478152835186079364030634142433347852539009070890509503904067184375017414118082254157574917454347306908622362234825601643754722457287467705922407046266913665635468549009264677747824746633964134993654088101863663259893583910813748971386406540999297240300153894982789705032938579967852245356260411376233910806119506567474908706725279330815897586926985212412839346840023435471288899212335987349999715042736537187387941153483001409194940112318749214063463574566722303712770014169313976722612340977068506771508767807816175173130049494894313795471401759401656896074830970479284166274382413929366666396195571632213093024393075171485079812010743126055638382337542836202667017193919506184528438011916874440753535114408259533701073325326725363695573456362910018457140708235479483533879001652238049601283398666542336862832696089165617542380103577139465373420381922686926702122011044813511813433146493830687831000404937794353909086395355567741875811444327445103990016129396797671388555072144085543929671219907023596602814250220400581551162397502808155665715401678404797286123094375316442106863462532195464664364450329101272664875988680453989259361243484835490756956379588837233777911196983312380104956208061353896132869379859504331864623098721752962641698815307614661530603092656693205879380044279737252953736689167496843319224580283973817424850988570256508366327593968281581707272428983660571855837627358601757351817375405396050643335991536007716763288986272835801864132461357431180028762264856055634203719829064996693695054954957368660856992776002619024448874475429607740899330362269847618092950260003486857128263695859371390567098944038750847318547778662313755232475090269306044303438826353284048518176110629668145550757139784121554061335858332606992849770826254706482434725239866368365282558611779032771267578005458975823074772435604650683811937785473115860047452638597335791933458699017069078810449125661030827690321728908191159049941518516697663757705056736383164768381538945433010470210910507741414729795859014161877235804155217043788784638248460267257100135557213496849747978377937257580916100700997186523611963451379973036770620914586420845321511971986647646159840984807093048478816543236731676480500256985597141851610994040904737915162153906837217951109518620556800944419938272897402824928898721399289026235669894657695246711753012290071909056900885410789099045960523710658617794267652503322013382206854292026227368124602200564984253864258612744828089318133578623103037115875721580527106849551583837452856357794274437161034584187375748232182324335278735679240932750865180009942161003070083101756976138448338400724526788162724437257569074220020058064962440645804041214989806467114960989286077076776724539248169625120714232159688907399380314714726641982673359026995202585423046195616912410493369941661632233544917609556374452537752411989940739854807741093323748263555305561216424761996281207328066227177792796000614251395509539798164510056577100877276866545555211551509135651080718985375157018626748773054918589792378200821807958708910380414026221501406405970995033359635489600884348362073883615730312833838963495176847304244720737711716339355779895515277221772058139682369062321329601902163800953691896431341906094737987609948594892288150823360099126454302568268503709186285816025655342184302866008304152652048499491133651494599360964946579040198359024920326643106919849694549720157847987632866579509449741160141982724347108232141551559503208821424213076658698133957232725872692392333174505812573493432046569077878047797228852127457104962233021724094205294195052947835599876632674328684307044432707090265820548087981849743217993608436609448873818454528862198443195787902223068072133768075571878427490490728113857002987466330680700817179935065312239491393886402887939292159821729486480339574539179434808099275134762797619892176291430291467402915409552520016557417132134857030461736179959396128994333536162869188156808599061157166179907499300066304954650416095736043848955282148714566153979339450555110119706264641049649882088943257765544420193030335090316037410232417275874009797283887636956824729756039702029935996567246324413343199316280733157292236194802843978652138094435351413158526539965683112762991217491965664004338070054106212777968867438221170646834562681909329424788975573776192844254335969204964418058241411281260736575485010782823529925508978074504710727513252320057497603718928065516478459333682892191201951543438167553799762510972283654753357875793276489466222358053982309397006102737313710584640565293930319235955172655881822212628438652457118144276205761874613410044140260356291455648765469241222462306951641891722712152940800542891844430806818042591972703238428670717767354517474882239393372578285840374339460371815303922644470319019185906659849156279860977410625965766285590899688418523155085880352008875591207405825978966332940160250954051726095583049135369309001662116695606677187196470301865070514950634192992550756274042969320901868595387513683709272467802398214675830297127838210193725947916281313925060383483323358796833444181366801584583612312171797258507293689459252862371548061783208688243519348335058271922485465066517579741447757477940699927318029333076901130625891045341986814439174054779626044004565388073860681209959526956583291789771787617870774698744208031510116164122096660821937687497149622866939421081229734089557988344635290707834351200893649253269381816745297146918529294159376967876206591588710479327737453311153678832632136427407170641618440869834542511426723624237667208102202099750661604892573652011403448550910335187645680635823084357055594554328381433896619065740159613147319348232961599301637081856987451703786475153510718921592689750672919212587484670442816564514865238193866014814125970878546384907582917615074530281537382010728225034795458094682008697960885089042698273339267000272152982707049399931695337360719350298860495343469919963883038506887020106870656480027787539194611198598040530104551868285668249922816289089296690381534063789737705446315207662493332865251823674079566523846533088553440051662399713553021597631209908707898305344889585426136902005732626971809604100951159393295574899986688544627740135453786542307946556716513468428371825844514894726119981185107769294695069760653654346903290131180499470691668715046776102334501609333808783023765177860104183131577448769446958078607488583027386839256179395710887893178522525064863580623990579901749200790189583591726468598688700561592398663530707160535609551996444582432565080070649177606490274901258742385573686910242866935406340831374838024177791694400355686834917217125365100200544602884814789493230450385139402891605399763315121353054167713797932056155467985997263725671709532014027540276212042698026569674581322610041506642412292501788107877372341850350930201582725855192400407778628213046741183826380892204231643289003462750460823338293094697531235623617935638374191573648644383290114895321400819781533384365107452562494852953207746901588224437381750029462664513152034783337560180660951271895276062569586669442692267781906804981475185790812110265454066658296787040573137874865478768302605180841167117392945046082664037906133285416277066259688478820596995847786980829418619290651684705159446052690001200010007740985075019140187012273495891502178330323295644850469322206144409329025196073484970378738582427610826594635288125889252870151564045751674262171620508334391785688368365958027097910741276612881278355867171800603686975943071652782686765774200373696282414779130726370336731372419898054907054641997601191811968451794665881186938636574705360355002895651075595771432952532152180144555270678292404016627759520882802495400996986401088939070507778857704092758525065237346835451442172288638925210860808593683414500640767255193515611162660559923578886284824138040093493073999552140432648634114416136752345507285649146235867185451185390673146502191071357468652909336904689072787832849603016962458643359411884296631933339666807224752860308856783457843397949996103155150993372222643177887401283704344987644927152683245897415406081251034632931833877767927218784148052440405582175486883300105488758170630719082538591248986399415889981639374180029251156485263259794349072240930411672249249043823944073418398714530618896224047832307048453502992077336247253944468300852572837099400470883140936274129645921310037172069766850224387246485054764499816741159689803185689840238493628620117800311802265368998951560234657424662179835434765149261666962302896263675751243338349046464852231911353663283598069186926160070215025411929213813831751102832071763262095397885306304412948462380901323515316915113621096270872550691152755652385511289184814938460954739770367046435464315084616809187309106350805509578207255723589309409527104016376161784234028645702746403373974762150467933540841773797397297755868592540143932932616159620846728328917662560485362044054037456768441155339140256844477904013852751586368059482723784160435568034956365704184441721194337106754607245011837272219830641953118989386561813971862566280071704277131487696668917296277206888184885107880887871680696503411632862572921634447912364616388602295889801226975440199423536608610179923575434688169717394793126794243963463380279016021440134863878797636906327543095705366907607673384024267555615844281189046156588410900474927331579388950274581662650720441651225997416541275270674821543687924533104098897236996876672479592686650614878439626819049121897820208959157096214092562065312065836666280481489840305799524325185347641921187457459241773086424346864751451304695903999908709573985656089419279238918395002453516706647025003060509347291361755858107299712819709616856600613478766781221783882944937633611568905974133438071762951507171464619359522137572127426936752368489543038922927105623682625055788058079326888538713984816080683209497038743395613246668395050312259230447650178803264758501554496879638097687486076203151904462313180572531495916749777576169303892323857107314240258990742226384046909798209342885279750012473721072222949978947481756409898319212759342350881562602262861425487882347840554665044805786333914734549887510600725430745689417167559020411269590575806586190992542532988918441077811360054409259944362619206756759723420147594547032185402787829422436681152714959966172430592923147030112144126323327106390326730469128433029094642642634030664110364680618031479375930523185549386845299795013208345430752323697341281277341084282986881167417735312962351687980692322215148374133152400901573563016292454071615500629344518288859737631561215219170146010351094744816710724414720274692164434528643050180428755088505151334655502780369706358318163383646984255727712831356676884396313658572198878383473078937729657685406693268616795985158889337941304019412204844591085361366094728879655037969622820971874945401354185729170535196073142537045291305936468282036467336887455271257775713631270437675034966314108504660453303529096214590119897481906127351950121605158393216897996451430764780779562636202296950582148536828668370821121675467486792707523603715875842002272401941630148095818062000931523816239089252714073020796635863167476565024492860174934736248914712660853541462003306033212328164933663588853287024760775422752337218568395728079176962261300573703905562444347899917494177135691285051070667557841756080285097037317324718267974167680617938390610486835598342943810693264922706442071791129863971895104111186493379183608891597104915757433594080658186873267064750094076650457297573787788918810070595767250026561877889937299672329563754621760816533590925298268776615593083465024960528111207060583831479526034020460718255444807085275499004079731037211403258329517259399004783897675189390530352133702375662397539084326278528079545322162378291669301921237256739141273260280897694410885439176764337849283958036787898166040885540995067330061290615975126173326198791110623566283158958251320699967055883388794718920229420862751710729951338389704051864261461809291527751218058164375860022477906548998353639645544240906268473879082667861374568877453847773941817257933019984363276564143623605755828471669909842594896062394918605161401214708228039761363649508347770224985817386286009258285173411120719390232040620618578334671014957671178395566262140438604833966257926045187983149142012670549890714964985139955357826420044350762801074051952735288620994164505706756019220148620742842326567151272261560285927591240001995431008793350759937522476854829055531647498986879273915399667321838074703027145563522535408327548797537758749115958228155115800907348774648071390078164367477597582331029470038043633426468311381497783240627517938693531386665030630564228623359997286224807695325068715959157599248874844464278377791874121360810314437935898246138402942092044625337790159411440089337375622568918901344155713132659808954060401891830202566215126634279445651552168611660140203905109623410192776533236729244670088033964247611325087772919713380394063678848031022653317526725025663650364776941464407170087495315328695114923404445598570943061975027352789848699533785924700617614905816138722499120446897079234297833121327394823551111420036461091981718363474614067163708305238573941524709896576945014954217417829787845909092750900286119837917961886692359095029238197632464944934121011477100890625163636888772677127694434591461177269390703519857217033921467858738560660287889206068740542958851080043029554644226932011464740244116472696966988912040483037727509984062609948414391350024719073167379215598206361447854047140293560285633956832295753570943576856180104701761744953339195145809705959450061778174341465553270981042311568758529562614311327317061189183259132166629980499829083887207784224723187130829338444797667147092512598022438121381294084210009429640180048738600262005540654186648256446738910020681937514128331585666307634953639657595521446633976939966384273693355139789221273945863447658695597355045183743801366012607048381175788928695322793802307791200609017824196671469604125515430730868894849574493719184045886141502994060847108647851853837065534488776528864243771343103351297058918598727733067272261006677666889816695195333670513787231331415400048631671797851738886216997416969717845556191653188649243277208158938148900979405191802240397304729889930319034349802922174859411674961580461949589126946400070156093670745160563885717500169861295366646811407211088039790166862271259449860309775756234304555929276997639665545619894323550289087218697146703975838857757097525520050538962278875919390261196049909369110665521136582676158988240439700171288772767753505498141845983415907397612324748533552108209107208705978253953193153469806062833011805661540732528131400858348587288021631878249638573749995088194664305114802354408899198613562887128929031999536734642507008824814388304751304853090716604804754055072154083000934230822619215913966616059457270801915604553133511442993371905840399433309272791391683068393942922344013431472972714094500876326232756014129822209113690487250892798705455514076328033839090221998617625781103803998181898598091978531381334235434314968650423609199812708353795450341970286450647424925977763381090457774357786834214013773846115448671422256530760940190395653104910615696835520729303090016244834881891673141408079773883673954749792067899328378101222578351618358336859644676272715416174363598840257203931953294384981133927016627009103419365144669550661563294241339063236799521855496117500106790160753529005676088307725521781641791981039536733776414253535037244926849435763483328195296440920363700949761496510626075276998233432063906622984075394428886979702211744509312432056458032112909090967710513568112144526623265911101593621442680741927362559476161690990533548414651779877481290844263467223880248691757337480455926382401573909073829344767910310139862441785804961602018717597434325478716694101745272348372407602309370481513049563140252357650291041700527925207149248435142586234692801247796733533224667707478331338190828614189685786183587454406366098888044280793982743097277898137942314829964149759376197639231167714800374830884384702429939261515344013468275997794010110723631576475432457952255588668654977341924518544523615196541740495598916287517424917916104399906591459460410025084214482011522315554283697891065351519737410202618166786256506912111766712443387749801428326893745150235706904681311941948041601502525107728251100063321226468007929115846866353003809901397357963366228953056654024662293650785467842332578424043077333270379808118083524578968935420149460925940334238065077320554665913308795318474852871035772836487536328681538975946662509409509381998616538945086624998034092320676884490848505564999443947674908807678019032830081721981610653595806433627891255863779811506220121010973024692269198086774211620030018164172952963181444559456654239816910115461705518847047786683322258969627721332057559715382613538527243541449905826093844660212079215242636522341273678909690919350836236479522479053470666078002127346279854395937431321201002499483260787765167394220318795094480105893568739252294547554641546148234201750845224358740946866051195620709426584284881900869814267423292572542811276535897640090474300405044954351846752561865963764484971388271038791099850780535412283479970547040506177323442744454565493154954470256270305827559075367113216384602485658919379645138668428811663786796140074747797892592278213515853999209088864953005566885443835980260407433241991940963485469067781016560552450486299880151842891081310532557847502267604376349774271680397876666049725989706905566350795584485704079014613864649946559621451000353557070956234624715517352833307368509935515241322468343988596678732150420382271770154515946885610334962620280918455033174760135642435822621475564908463682658122447248198589598480628539490447682095998228711145662002906679134837992063350066794543649749521244689703096785565086708973231756114406490428770083263085067977410700395528820314183956841718942091405653270401472168374192631041205086121760872899651665272194236476305110874582130760917459884722680558648590879527965271018533586457180010590936323312788067256821575564260009552511224938253499305840123537803101671750441954394034872768049384141289445934738443486673237139795006129940607068600698906939458449780603878099458922181865727238699326560428566500430260246313888551620755101648050291749347693376239486254355620312552941655872234146208383750876144085138701264301932822674819422752982170165850666338479551188319109260886789500292362078446568018866427898101419039841078904630141588560723314836814566792201736093868593642872419315946465838549205736625144661162973776621595372448435198091963713367624309136666460651012793721331388724129092829237518026350998416900082093027944593858524903824299358551669204847066526010707825039230467748949091417126512273941009992248266064467007172040584812149128809610233327905606912121395936167854326590625264309934679001115076940657527164904099342759584804308944563209057629903879041663930102109238395203251436711668835883700032293407247199011815538053560187966708075765944311246037898238554789142036857891575412332555863909975206525771725311008324476942739258515351146617893745226896626640580239813390916898063064370283963277995282764614284308402564314370398260577584109564116443734970534512653573476174552300136293707872045880646096735466882894703812033110052189590794286722230994395979293660349947000007314039174544823635931182045417567246849244577044751236314039260146742956622509239596832788925890717935706823715933390233106872091242466985451971305771934592047159832322174445471545843390979988296313521925276968604971057935758947170816030724296032665045275095604364642661180736288355728846705585852990574472094463950792458773245226765633436371279012225000311813347702570744403222209813104596412740717939652446519523677221380140107091874615333593896569556698700761441919528093018099156623510405135237113244424562562187809167450048443083193703816663461506873401158599353621657933490883377468686163886317730424600581718717121152425597741806616417383031133989418827608414878527321665452707215314244755323396640009492647900288853002996336927575312449874689924242323162503791243303207361309012186838693369204804370847418685065514058407664225995047900000269165529683168735019541269874831214140428106287884332063562368210614323749114107249794644284656393644062091890492823346818421579510450126437503630843435703275633557433581150930132812990286074836801322069178308539654517733988090365821435335987681978094712478983580349079959424324750863274387483112276046918881999777324920322635242942513751057568962977043126772840756628213807579710667427145155179749124697920508413623260216507922341499949893295031814192721995322185315713020647906224779212589017768219896346784610288452428162417366470461224106928802415033418911447186241068838139307440805034104019071117352450796918958682564246716515461766000687101189932842676753544558457885779209491125492839346203407314404768009981187183683490171232859940850480313159066084318276676994987286064381866794756904526582832856546648534894992800126460995893112645633952709165052609849618683409957377826735707632430478154630770405413781665470220520440811686998176533018750449438121209092865751819790834455782583916593472623380808402341139093060148364913338058693337557656478172504027040856018053769992275342715970451725821463885747652638141273537489425965757127905785126291243394321166344648593366638563320650846984449549263044870742452727188498420531683143171929881047607788164061454671018365296232244725275092729765104485116516496805848460229931496168255127164938008352362160502887973994483268250881498091768199204194623697281155169997795239455324679263030816382651706528889604514995818958786163730221101925372734092437612806761722502955642320968112930464959472723858727312011962383892099423960194198781131936618568725434811203425591808001437194333425212870163891369795883985348160589188493625001018879447618416459613100527083291084901406554265043774757882224480776277196772954370944548054769135932005517823307681927806325496582424267795744860051583897765715682116025180823401042200154911534858937650384610441733113458459415559489253345585084350130803703906389450557983044146155518389851617297755552525761406860011240241889076312445939315259489374232497892230974532128137865029117390262431389050541258286947123957230943763854144672519011769192755933062085089839184415639872185922165289573240322326813840044614631165146146511708800773164979193435748452436527689371258682079832452129433915574987715963514108402055654848500909071691294133523253533218342533206675099614602641918746794384119594561887377796913305215823447818458438826100892430916900460650079881453216647197872779854088256550323352535515481605877496427215832478352394785571992639314962006885452404321248588166378604276066100212795709927150180413214722267997702390795002640423469492607705164019728699680147875285382010405362108704346053174759744265592544744099691234325831970984054069540542998781974873677608731867454449843848562612989997600666374089862939614793701919391354047261671968848867179802051849778085052532113538404013683797055273806943281016564646322429101855764304424443476038470911234715268521432618130605869228768843308121263897718586259444119821092820596176564791606672386281592088463956927423913828769933403947346494794274119837127319368810443336695336729524656525165778166762299533903655615541116298359467922527585512893199649778518613376200037318585618215441200483579273410673434764292843927546833785316881133539261459125223004424730254281205812234874017049418110609728252523456761618958240777205422608562147704226119900138615402070132029873989007614618885616771750779745336319004411248336719597645138074947559558880872219408419370716590927400849239879354309739160487482305361435658069949602578560827879881919741353488431143495049473512618765337023352050140384972818285829114279597161763984233176800786845757060666648396577837933822650173197469587050426196826488731352912691839029813004372369825049916635935234788462577842649620244672320960515049310365486557068432850763111833418394605233811036372866463171672289892138335678680997875852800441595720843519762993165524731651897905853251848601371935247418396682475558055765786756931364341239237748108722143964289341582230330268081429975729665264850865203080953445505495164357437377496920341649793725360184834107278440099337984180916765433277003191254004165122456617017508441792099189652546644928913628134657018042167197132033953549252185808846442544116957429655972331764543155893340949550913974418571561000993739059706987481995648346097484001240626722496454810448306062674136708722949456661986987716541007527399887791433408613654733290933809354270501195510874837151330600175274693447247327665642634796826743729804951246404994326636360992947916440703456895683564616822612736992562953694951273062906345387049629376472003811186428137445201842724762670650857425623873640071553219013967524780576272717282286341627865069495134131957845497619245518748567324637516726091219479193114070016644411404741868623333346085255173004804859148794656827890077987051488019364386712782377321685682437902291371898427448118965445165711702897308307976167222542491884728804312480663369351288783503240263942211555301135892326339448270736466843820263480577807286572338201428361056940307128356853169168816682969961797257241319431674304686307717491480776388472389932218886782766988064655464389252123346805875217846591362399279495053026455258426818034513159282042569095071773262214002925270594319491578875249473908304026239738052371097326002921440865803036645295747565420666762201068912319676118829964348650002601170619422987078983248070354287955083276385495328841708378182352770812468392742214132399710103516978272410163311497418345483114555208844635896018972096954972908833273502870183660365096326449736774822777149936114081319826066755858521356686360611228469431662090954262468518092611217876031143118037794920052957409059620889918958175272153430676063514343670445240859148071170038851726946776521063257730802074553248572317257181076670666247295913662351033706298953978157470881913072902496296857512801570030245114788878457958958309228635960186939979424754184063565183258026139371315495604825591503038918782060235751863248087417957935994439814482338355496867769975938698202034525731322758786701378198593149517277024986619259189539162843905281916272952347813023412618118236636244048100928192028083635455774163095001492592856329985017955562435240538722682161761907110997533619701748851459275696246597250051613299074039199325151466059480605943520306945763978825034961332384654964593905576018100286987727384738201028313409245439172093758707393925215169927342259197585942344595446454846736105200903488633563231567437822267339385705175186643240207251328864158248669721977142426194145841415465865306156990588269542478528660390888110107127272934042710854317802985943855641347051118885002938219953881209754497562525191071640000393497390961922913541223892941800720693747555289266837808649933250290722047276563244805294720793471094837549362647219124924866013439915844102604030109900430890567751319596342949707284552141048744067670115903068026985739719875474572505470357613989345095127741861837828734060035699336454110078605406305587443493215289797832733984861485835898923690795705635601539852857661343640558421718373588642055339692498269065314795282241066862771777291324743691190407670031588629987572689573891978460733791434958558972648814573901431263678899770580353307265166551486231825617987796179319614727976713663808394212094892680519641573550113690030307045348026920225871987007182995579423418750712705592980260958696838004428116902194184426976044353086914217842309508749135104182315933524259315772186074805683401985423958699774812906942317823087230432347103023080828111577623293710490845980769449268419758100791604093444171008741805164622212642226300775003547757415240787494873059391259143474678050554001631365003391467283851459173792862132084848235883557168092984496428728457336816411637003936008180980594782598953283902557592905067465817816115457034824293609974142768720973239839200172659931163403870351310783099107070578699444887486210012630688155970749035748867476178667392889551245024435226643827813948851689741541495701363492272245862655049219055693790975039079579780989312592264638956795314051957104865995414885387133976173039959148502844959456019597962541007475978247439449604374274515275904930031140719581086674163236952303588695162126420103557797474874347763787676083149827226378823537905225499613498543272915683515295284372313436304050697132233953663016585848821454507057766497508404184059363894887489185197872924747767037432782340634339702308263938540847049324524794350226559856562416968799596065963065101082887278679082206107767805397294568945295532530042842792462633438599464652310555237374220431652833412859772894058924192010716034233478843681266804217258628884495223437281832188834277671387579871817374039463727918707588802574433595122025405049525355445964013819412547061192763756539121619920712345501682977242946212978195655280738524000635135902820783224751219137100279377499647916161817607733796899438031024870330903705764343878550277516825120526742961485145511179275400526885931782238353384663762557040207591160609943442097165342599184587694228844250733430943701835400490081703978097603943037033056815800311297007588525291684305324613302727490062971281320763477952712581939501165202188510216017730230294323858491745174093911545300656025736892306808233727190676930918215109685788528715865421699381331589155737995241656978628124988511740556364717590401383131863751456970897431299572965432558841072598788285622899138637027738172833633915267645140660916875548758807300697732355151831037397326960954857572859550347718158080369576016486098627779254174137420337137261335074772520881688188712359767173296924468084537325195663688773714709577399629783272865909180702918533583080664953722087569446385065959180758354171551842561608586375729745084284120383232298450265544234608294519044334083446961410311184987600250706022411065644245337141278526016269102126225435451988512055778946671835702990984339419768559517289370388709966858605149605141195968411122686042197815422987749237140554225580414439443935882773493738628560049416025053483348418932411327439568716154624906976367766766302877356418175008391406412608377970955536353594906827458466497057724198029905544917761656511621792268526062488945658664323407731365878817838164558145472919662988653165249319829209166045447858402685917825818262563750261132671925490517852405940361937540461628075206285437228552017080466305431727840905593117699995024817073306699835243366309120175297572169957671763020112068677181991430878354825740822528774228511860270021346205960050940192362598736596348047977624414634420573969006898291606287914897821179727442371650170997613327527859186060852648785762299385620830488232746154862983700693364468999622857705773567200534664072720894763274346744282976482715906136083008787270997102755298775997742511865677850005810251079574861509656434845054531203134334456121922577525159045945093644512351492202696591817932133484231149154130014543195523746504047957791071792864685195247191889789975739145786813359525647431672850635287080408816543496310785862484481876379876650176487304636392770124491506898609113857913274155176636884508299829476043622698877431315660535282255669161440302689152777355159422358096130094822782811959722609074595944643070030948498970317740694102713943144785886667990920039002060740925812910945580433905640631832403770742046276085296521411278499022768576808222452719434204063302169237668555834348322884543423891747186979807376896210761718046292341601631864280936389341036433371636877185702525813291011435684728526041724818732894483381353024046074818652940264412254288696551682414235739793151401418402360439090785385600241093294546081417429316494208113317679446940509381762802589715080504765900033693119541213259844094687873178917414429568221351077142279572243010564121220911305750104330693339483994969619094897900069060924713583843401648564037175772763751189367441036146462264671655898742021561974820544331870914656368808330473325156769828226273045918897251825120312232190011991449512378336004422044628175661566963124994136259618409288484867201858712002995358944707043382425823524391372901125852688179033715661080594137548596789349198497474690843897850589134909293070762137197760339135157684847839288503216000650274024014686001899862170562951872165479110814122289160077934972346351385275601474029678006904294861578961813241356170437864371686181209558716777515032060520320667874448128465565596603064413109832720071493246595917554432916973827904558439264960059508364420724342431777742752409785046134965044665951307010553836772908130275003799599840587979935028567193428773969172547947572618126854427199745102126459110995372763110796038383873770948031558816013869777913681395808896474787042313653504831348978999549530276217260733073514552198425149792391068881488309132092064580621794339515124399831112037645755888230034668762398156212595018113327879721981742388187236884128310851201264780735515243261396882089480016767860876559424686830533511538078061181448672668810865751535483590610322370057419827952398787272151157703908760539760814109195690850409561613947544194451064562845623632999606189622007685544632092139199028036229817850923088645126898566736729350102460279158755406818745190963445150381182969277852532428975726171022101255063427543636359248993065252099017126900519152420689476846746823491603204455584220432271061402159096355272645233404371906660894085320234108397435999259662371927162996982975100905412121785891596993910273576022089922761130373109751805337190640031353668949643222502316665349380776239327202851225231017884734883602585988239091476430683885952890191636625122693381804478356789139203083722096252445432381575784924247844188876133777690204505160233834888662465786143185451049518773533688183815314288865085714335309547833250240345021538379242369301474048487334637995298020834450690948224941716791285337448587123432759489469290590423565616984422025690982134954925299898625759976862807679325632398778224500775012950581460046167521615773108325697946445465876645142697269111993388513432356410911271985575552059525887370735753252533041412669673695511272775201440262507578927469066287437326446769108811165385246639227647949542705911773662702894023866036922993796569331770795305194563891595292575639247203585688378615887536313943038903969137568286733210405659302888413588034867748026012620916451931899623160601348177115527192657283568033282933378743117322861850196285998982054864692819875967587130338480713639460345314550599354335241223247591996896508582103216385844223684241684198116159426887384377584665368843701612540964087504404563384493994619259350462991180321009062813292134583197073154926490131371016957685997343325541124058451254234268796219024900875970228317098539668690270098056479685299238999160446361750350775146673386394098732693498236239866500347282390641066795603603292104999505416558861935763823310375890061601665412653489995539034783023070107531455077701656469410536144872400513365154582679609964157850028296928780366673386390322555681995755479619046161326383353685127442978111549844893336145213931186911652670685034235774738295519149245932840602802432437099531447079551741497918054097112202089282587776731623404266753143523785241433218883711831856418491472753062539426110101331036705018992126192269344553959873200674794436089091486130134325768209331531907562603539035338555406153522741345508578679687589790290351654535066974403738989078352304165266971583896248375294531915681622633835920332261125472832138384769220669912784457604218175616153331044136540916547506688996362482141381545312816374993585449654780256921123814372712895069524860792272443968732118411311659323826980835663756074586132674046259089873585294912179676991046384807788403257415062994757640855877018432328043415661423202160572033231287363392734933687587964490267030245129164451153137516652769508448577162769282665249272420121485008361252825292006796061556901996427831319290742123917692044883331707446923004067336996600223465872068774520461789196054410785183257189008417130199038809837768720725466418462018757591429172438714345820518967659428944274474138929905237337779024972086644009552810777100906154639440745332613522370622437445219378609302409450363481981395534153451215753028230091322771477825884178986094202232009111959827315825776962357186989932263913278126704769845774394855610596483837657323589671070901079945083701433067343708005271595232871092483871245257581449485114572815921130826840578135575800866190164088745113098768961547720061706547801267462112472278399883389791784107902219599728214379786694527052652906747024921049500288866168445269834274315036681828641994190668329838222404417966772341503158156086234933789078813212644709051554734022253346762838207270283001488460218609039930928540579443278043387654598998349089621249503268647396534659947254119390635772456170183383165268946833568875319853820693577831194819077385852208063259847694951650546237146012256488912851673652173590008392697295406026422922648091351309373040092612541673269462726846560953550272264758792604176456597044277582061651767438082354028919777669772983144117654508446767312689965554571266660500323947368689645410733118338783360029915764824561480811239584645046757792806912781916882867891784575887690894291301763940586004007097569508183635688445377518914158561065218759556935107301581349986060755648112519074281446586692016719628716082327854098198367634522894885557026412902872040108776168511515453586118771537491658760555858809244827720123966414863926072568129650051749976691264173795016364541361725636370144216397221158041775529955561647423230290406787489730518292810914717689773662940445188772727260085732276262412914942289878298786380447623356467201233792920328542445870397446448861279531610634075920349423369716918329928732834586497459593468659925878802915868556834765050679252920671183134929203675986514793356117843676226982807302075120665519401792951486422464544176272068578582536669293207507950026718629903019789929605764297635398157497770616558273228536937443821917244844179096582870329489032696140398684030365662960463853311066327328586317239235155306713220658260990571320020093353716035871371195870731756745209277739621244953505033400798456979745138707405023918723567806412705463126217421470014814424718318555218466147065483652118514127302762987442182612419459611885179810853103700747458848115500917543458563007032872082950283894919122289377755886186362197070803407135007869856046724325271352484815018294369499151742312708638495856409564453931865328978247775214269918988451988487778611496527028982367489897316472889462722949917097498194549874923356650471923013804693810679408998403543266132075853795044954564993043195388549060001437682863909249754492697334212868088410160069615215258992837811179346911800602277238539893839212647174257608019802521121049228414116112542974976395314217227128678509277995897697730619780870601347374881252601793925950680430980574703868928015921147233342627324906100164822682584578139878124654128507570395069809080722020645060120150373233905940241748176119124481288043124218185271746550653944741854421187362791703155198580091632220918226520334600871270194407758020092139017522245083523161931179546137221710730892342389480048773312804929605590887302679361025840990993413163576992232341579024169399023224067725277322703238591884841858706646484874738762093710067599127580989664569580836238109470044605477872118058526769045296761503320390683441923955020927302879035815441382979643348265938449172715332680500721630829823425365577830338393561957962234001629497494863748009770519029718356679570858779691629384802633632646660567443895632188004683281582686218182452707634235664718840581490986598292278141785085966781989742596858493832915753435471760085548140327260238902223948646859659909405884750274854965841237651407012892666071473252019642123273628961340142334247313398288606745596984561044089724113938403663579241602729209483340803931327480651033007891520054820269381855378674884394612467521964105973523310961522624406214079132711338925910770813160598561053313358856355430097167917116190904074746949559766385002315392769719423546701492989436473193004951021771793182769134504915431549975700690185009192453765930301204506797200483981224131072962038170943846621944479079414602781341014264425883566664435201645837244660735750224771788726992575413599066099797081750391622071875008522713972340256179793226571992894005698919035240492029024607178829842244091713911707720955332501123924143572347016155104158751564269383841403355806135294515598110163736107695595208443820977149802970618354211355114996347814776059836055403427297122769580009883053742978035315925125935057050825488329685740997191539272432517075272499066190317094032815796548057178546562384846670603793717021828728837389368775096737749992369286553896963251549366515434353665473536504218421345151424680419599090198116875984920996201615252685838557071283071415635699952746460008431016508503726565529805406570397016624172337936416150096625510581373961263229275803566302008552357833984088592338340078630340699900585891273553525747744895727356038261061694310997286117834536280365680650328854002677860804051115067199686297656666605624302797068551213322838746196019566408487954376623411869581626895906985325871803236831747777962689605767115146546206666012058847795287545956096573929724453905203652686645553566591002132648927038942590071634808424291773802376539069032576827255100424066241358592949666005747381561376859702924340888148446356236832659718073869456812003219084923226369542367983360730607158781167417824051883545542233074406270317585050958382610042069961181730557566965961854539548198822404439091922498038346296369882848459503696236239418285095632124192012876923047143437037940304992155758548829927640969595291573235876364260362527139105481240749959247601954306136837831986377275249072954669107738438183947065576404596771676633277293049935226458284037813525201876488519347196722680583524644118880641794270733245007625440287470098026099009720441825235466100184912415933068566548803994095021346115615369579951442453110264896164250466657012661012246098879440284581307392901475110327404931552530996459590899657165059929605616109556133039235307286716036979837382992151512332256978393413718976757736129019050192384480284710871563013778005277719846672325027471096738194122537665117508132640065321522815069374216806448751919771027710850031221668280546702361964068801300042617105701878001886685400262581207583905118102320086194759461465360696207108223398790296894941421050463469611481585437954929437797483388601182961073145406193602337720800159003888225966234693876781179252045091219659119136837167787138785270934305443389839275768718470963970561807690991307821720435205467089740876478148483827221844421442631504992059015776944343392263268330529363408746772858130477691963644101546796544122294309427784017408409635197362009239681365688152279763119088125397141605315938598614641739193301176422816689321732317928579194430817468478072675992503797132660430717938290180011748243483360757386801937641189627015350940343658266101795061020585461627039159945299123408195348174944602031808958287403495527381819974912957405304727305760584575888228256877984203619981451584526518728863800000919698199725538317452727824152182789092403136308059092638152067754207407291252210167635438909034874445942486221051360705461379234551500426868543509057686628481285495108040738724796758594731462947508490711087854255859685944406270379272275060720577639100409731488941278256973185573719405361378859987536657372387915689641633144814491662095431704679288484832900990788003074630955500379966137528135472704407965351283830305945539089064504111344657316262497485664798636230871232532150864079405139937539287576232691390915438239668967761181854150571188390215039234391876243754737559356650024238526696903154399966293107983342592369120306155315428306417461398866856316404545518740389483215453443239829814962261468535137850158693626305928735559500497834905678771380205377919142801922212422937998836878289234065793337492198799872653881002412663043238220523296935938530701722429535788816761595100301447834517585876941085327521845274468731874379095162432846196957088930498096446716322362791826477200250395407221215448184100665644102261253499998095591775070774844523014579441818576041894479211835691164274955009703391385022355877084941599684760665777859079800779280321431146877036784573393457283926485783761258439108314882612389674270256945855983049068847673159027083389052227417146274217698587829658793233075950196360699003985112986478819647461311444167104412607501721120703253880109605655895113560984454745361265818523393104730091111197375537442007035270844941873786383632186342356288598940982423899625925678928193772346890328255916249732577585333833354315618462795977276486926375271210288692724204556135306464031740449667392372202542939322596908461275203739633102263602154674536830155776848182278433721374140918062291005509265982369002649545717149001224256359258654451243576033417986451988052803539229615247384357631770586167499220635136060012706767800347615874412651375300834852236234689941482364711225241167919701017136108170587784679780978662594516138759062550731993087248285765336839658475465061043032545655986947441251798394039269934474266779748556637131302014913474795540571552308866276163935251499247959583703764046913945717193217948582278198915548595623461258025654181406150300971963975854091677787911143950189615349427368606041832210524901423958667427686777163659114839689963868385444127923930664587981531677209644814031193168863194012939635511369692829358507604299336392823418655515794879523369118583521994076851379579102108391975442922384977506308862078018835818362357003467423495230803441970150206646199806715249676690738266723519721764323405072216740070445803107008811462407522831083540166347172976467261248204485718856210990122796843447171209957855720655597448591888552938568497267770010429901685092861006629494500985175885665079457320763835190690675170831140067106284696359945909723015770239559770209972261335467115473622701054075982184167326622129828963221015873518456539486504809093409499821822507455051431571189731536632192632101413041737254001063172811994579855465491556775816926133942183198020527981710161561452309603922670675964793478154542389894097745520222572519170667404381304444441354121780789681687315315335363934895517315767401878138879423497202736326154708728141366494682276796548698146750881362922510409618954793131710640315672667899185334020387274836263372733563546493782045276087216039355814809038123766511594134552694877090610129140838757961084419092467634223980783004959102114055667548717921826634406701583144347443195697628762904028168285627526718570018985051237238196094444313006109978075899165370110727861102017041463819493306055863116241162906233446957985128835882552274215416826618467767083535396875294036666498216756862009481473417051956605024575709597054938505367202390360579622091531235091993698466822714626798177054643034491330542213514110863884138244374811196946088817462804574755509648555780566749522421637412422247129814090952127731076673239295075668433605848172962912298732790638589998523059081718747674680758478471797082061518886020450727114205118135842379754409490922903799571188354587286423667094151568210059076026753768582202223114116859562466011045754953940364331187294870389729701534219632566658883335366747108065135393733983403593899030651189299343123095144084084579000702409385922071382568123953665766063847112201852951985144565997988296899955405619272198650977033106516714858319619853908075855224038492460603573522136707145396187407629045348790843256962932695697363009835968802779485557457243917614189963236445420133663381243598359246652812531957481210911099948715352592087792176310261365340107035393841782720419600346503865114500643197576888331572214721471023654282885551524540094100080891107171486441720486641326191658487040620341120869624871921818685465141231146307079297671763850098656288734002310011434942539246468409482634922609856300541943680540690791778721617353931794844987350339336436128688669004807562366870570849124884200228383682034032605060017663854430415903390857632514677599626815996410262310631433898469158475196996105757021900911203966056519861748350097271389253763170828859139331076292979734292398326131143597068113483782949463618328802166475895189690285243812411350532695484824555623023029017134173434424217732739285782582422565355438238803423542983457256393913266062781288758100373670363521636784525367666687298533396333167666184045369546544791214762972683262319640038501963586261247425013702180634779509380882601033123153636997789071889894208915209001118153757900419471654641567547444816723411634462756038126743557138997577933232187687147525188757732094724797670352692997652600524677487452705173637673789718280537814667883776730812465216484580573835429986716613443401038779798232861261376182871437307001859385017376016690790636254803567502578265556749511802208979009149312873266171996946827112216505795259581912924515703587134092874015529931971498481629686491046155247089257461868374549238006081064255175571432162643613044686230824917953444537004763585628272292174878965484536964341545716104496293512754925102076659781014098678638283294397130633827229801033233594280731686106246039316819803122662021498269927497329712481666190600086124500616941307836885829020854309609943229442612397575074752442758057726714865639663515547352833573268549397675663348606013003522876854898826687943980613346441450135909419068125582660608532172756474409181702146017705101229377586370825463522267641420130957597734995336178539149902682797639819876852034008903299858943414327658155769791289036851052625291833757886235272737292121734857280032092868105969000023537831440133170947523654826212023352669349272950316780093893898565418805001195890498778817156548124852025559642509284784319104423711651048723023360151116010673874947908553497432248429860328034489175306607417490919861896211643540732601583077270839002152972050423088933580122118845113440453398599727110671704439602984891367558361025394399966560178762154900597443909278637365242264733634160505156105756065706767659977662265109623018059720983247132293321019556445599409232263238279260452664752621896354879077129787326016611938071917663545134246798685500399651974543567932916112134501974153636118589240075611264597490970961656227425165838365767811618403312570212270073321403103286242726818615202077335813833808097060488764336203221092952759947176233024608458250377233136000656744129784683293203872260570808957030750083244146290691940407487898257137473126983748473437880217593229768264586353223034807417324456519390146644038866237987151374397447735238122476874952747079036964455768048943709165575041955404817322093814488295819947860357491270809118672905226826066971700243283962300634556770992152819723465666352739078402425395168935017804403361964535543606322552990833558707497900070941218969631976612234324716773766732784892613611144236279728200688090182824216820244825856254175506128569209797171363230431027308702569403853808129920385946348755186171183036055921261403035179498002908964329045912782604150886928480952276844645974024260329877295245776649381032974863610041011795281718111665422890530478922815875459518091878670319052016837145623189876979439406612076285127254412294227843373334788354357249750526082967998958634676511703748462470596522546361396232458814399931365288827681171340736042031264581539025068706332212154927903438615027975187080527335392233592413670356974258053201667134896136181173727970496493410310733415274528522410901092397891641433166358415588524056661611638117973452344758632446011219338766340907277632968191687669150576517002605664732080357411487438732926734584766162602773313003070570564675752660134704080326273478149139329874191251511109397432769847441511624018287337741272191917269637682447107717233114337384744918463391378955663968075042067020432900287476038795343885614138317636712283889778274153458763387716887831250174126588196963481948330781102578001096077764787740862182139789327474028296000017433454368634654529987069103607820344217389797760644512803482634073353491477141971554117139783081700231856272626023932692306301766137855386432309494707844911204750009558798740806910429110182196350852751336331711551016933086122240889636911995857543343959739268379898723067411651995246893237418628283979641636131392179291345966919012130214455167375667095133184258786490962508166036852684944758699234167344148303672898679188786402796075180200917717117129106162989672637049104199311540559072136287877543343585020717753879962335939248811538632873727844722442840810344061140190164739924683340977630298231593720755307970609051370457645926994116019291187964440860764249183017916904878466122296378064754329370077547484732534096086102178661967603120543146833491744622979381887547313575930944204867811742481852892969892014945061571541740876151635002558786021042844706538169643483958673741913018731597282911438528967846111518795514301636143955404813413947961318453811884292084254171113765329505220518324810845773737079806561289709419509240744822488317324073922169977881230753292893911334610835493194850944299824182237055258354891546665254211069170655937406894379093043024506813666236678668712104077062364828432674764071599939574030572930542366428733513988526742291616679000043056427806555280333000737154090993822090024923767314059549071346901698359101442149645606834290414863848715623629318524688633450089845448482638737771196208825257993624060025160631569214721343972210167320895985220406842261008346545870916785919506893910581294755584419768624367054180281183783135795199684492798293597890810128409302050583574738580627538304974354128033912401666488508163555971445000817254711129325483988634087394744103246561114161782857949775089378833835815358936002403268796981746439718009699902626342140137578572666632298836610468144704525466288092343845234665508034805425073146074443503323763235994282872408490849535333150231568286911236532309621458202484206122678869023802135304993508296813468676962065262837936690868565632830019723276308998985261595410860677698792977394143906234202330320825038983190169789316451712812340960963708610704608638041114298816574142653133280703185525114488029947762390635066085014184268283038743861678745769498624916820092804745953527123383884377482346216003838442168882801168144141250523787593750609861764167927580465045754601024791261916763304887676572382924803629869000585433017405830167233421411310425472623040323204871151229159858318838317491319190947250625473018050848661759212712951304587221202241869113761140484185582591805744168625338454551374046962064986658101329027185904671099230480261565421833620272021380940024991543839000300032765775314027900060076762314284366742595985103684319825412898337283601114635962116077804061890078936115749497744133495498237018983633998250850644523626127977751203182813228919214851273925116179812666193597266328940472987050607070355502264538587425931165526698216953287816000988944942347979190114245406912073046862683402429410242544676582823346343924416720351726802310485636249599058186181534224905471362320952199002156430971465938731892008425292001829339359062952239054896720028431067420927958586191162596475891544210847827282972625094498254209737380229247089299168476039175011624664577285667909120484293139963648781448582929798215832330430202850246665346707201050934076620171514091147114818992410056627176038490642673809065437797226811971669011426175057124658294378016354055871625967474285597239063901022802516096698079885357332167387569363437525464579282898005527362194594858250096137354132724646760216763789841020440960928672707684882862114361164267458762276906395470053971091041246422999681645211189702158367717327018415194751296555439307299968947611995506187502686224987476347854383032565911167369071580354474466936691363198786049505443826778981933383308370629581398189689158235329297088490497508421918518904606863858324377654956943314087751171705080304096896518378162795958478241810720870743523447985948338015461231267909253772064522870957597607320106887243501872415079759530829607797719332143702791067715574392768174150359195950423228163362940005617200929311579925967784983561731955879698139731782632462678695817273487990547990824522128262814744082817005087995657552817524198224816147467761062324199064582474451774207781119979999584407046051856042161892951439686276332524927538954323905052315003780816579392059238687444484158674399287937745626336762806947080303605016775071182221762753650801367660874635953192528451904195781190680140916635961927104367495794132026375973572989406704864359417014799490094610671509490451497546264655901681345834099789756416133877426909826316014386633433036994463723149899209662874059933998681711085920879839574304142892820234691828801761062160201542864263445619107425219803265120402152210819031027264253222655925923364347349547330821379343670279978063017049291654869068238849302644730150696056421029449661828102076757945974835050989256314876107672076032188094285680889136543618162299745299582910562473117476331744466003094693479564099500839454569027400686708823634937285055685661949835280153239595816178589625852153119187950361359976559508386481363676447941166465107866053623323276399033558482247517957321713730335688023748326042200210158251010703693013884434662625137047532479071576260354779362194822463368803088926280956576112513495442993215180281156863946608514998083319240117573692741871863314829371706701622713597008809911231876111919178213439887220767721945583648415254181335970086540892043554119184087440039614451632047468024033707437254386346707763237010722365177752622387592644116933980284857506346245590555817882975987572844953637493924068723205122371039763761978696923323949431979444908330331889211348196148928787980016023364616056581927379510783418158535076552894601303942981016147620053921564129782262551162095364946195463068005231618603384827710796992159857171401683969655442113160554440004778695022398407611225533624443979001535091335204784784713181952033904622513005050742437848020662802181016785825358382868606567481736196516467991415313292568468728668742007827340291838525520632221807729935230387162511734894104823136768832988705571273252971991122041214856552995767733785051037539569963295421946781282778354261834220345177901342475579176168460768966486791993752379193634477959408976851984858033169529529398812777685835486802659423455558897331511105733171608450963811366688044483727291786334928163252785749361041696429249360941809215630914492958117094865657302538062889316065062627395930624905585332153738898581432282612169883091600221983293630353037093571479349830378828706087937098245162787332827395285011535678958175955947781375148831750246990730816284125262631166575964576452585972192804356566094123622314911001378519580410836715025516879819401317348434998265562668308364434651665568871035673125415961545308978339940504313184199620822598186660048372607361013165401692263987593595488696437615007720038591904764318373117389208085282206869543165198060677906098279328068305607723756038245672127249197317671875003677591429396068078150110241089451815203310650906587504934339249491636817167194934368198832608693130758704796955321666638764497812051480299198160435185557947267248006943490676332745697983862075874455479092203014976524426158206972187794287901307774978070760963680519356248049759995752335315854961243074706383990948775932393135944551883402681649922727001295133948545407051563684560956761921301535449205928809819332289490344585796469914765013717778470285908310899802946428325805145972219178940103288258762543146768838593475264263501803287808321095220200429210757441289669142919928176844993364115807801947044282699290250548872086855149567563448792412273215867720078722965336729324477515788638379436555039760506968188929502637189411047770651020047289096212093712183167977906110465314490490290154088826479039840431355529505823301348371452383665308060203404496638269688053198826028795596362707409836113303631225567224560139218803716856296134446265474502542596662205276520855572639169469369679718545547219121851244680088752591797520767279249633248569975494081820393608225842769138324739411243333645728791117670982546872689634684083547444276984188883306394605117682962185034006377661571852583929207252301324829866387661754307431201477402103757239922283412361252666610827212156068471417653933425256068416795972263936598490179710514021173372885973938797407374399838635729521056095115988960636359894382520904652648328628772314917437382811074524546062769029551880613201143530428000384611797903968445343216081730751989888730574185832903338472378778192618919693933037839573703260920823129300345907371973662068001720159934866838513858151792786998413150589662490419958783354331491240948987622888415202301425933725726488916324572030921695750630617193114757477246882886783130062974955065721854886125213758315728784171780987695486111621642985165769253035481559459764884969854940686951117427485866537350086557513350984369627883913301449457700004692987736003922473691371077965926350932620772656331301679310446284390714210034519019242606407321789202715173802092749224344339080306356257132202717718738580910862531074199768717231235181686258102128423199255461076731300007191239296425343308001160500461923311845965171929281182500869733266035693758547351667617910865072940647181086813854649604958584098342695767427607112374113031437533850522713025499114132990305340008810099586752246480412566463364772476338494224922026939234877845649397425624713002463897260103541927740093047944822056640828209239883532970714761063122872969157540015424955484684239267629126977976797053718156460976092925798931353798671547910876687739365003507175448016029423243458505279644253129748364156155583560924644276294131020303334447596825669306873403424053231723404220025785673457667104900224437479491072963024191797486076465413845459426464970355260557805782999743420187257379002773486655643631481017858841749583211995077852911255646825385332039540921081067296859226903218688530581898451161018923841303328171706296822265428697856242646763281756956671893490724586837765727084972120221817553211164263369567494396317841154802553592370647779855117651495823318039850509258754949731578818931700469707441533497743770050935504423269382307094380485657649127430436900263430386975172458158690704496722069332044529895423256495098498191807123690378894114684095454085560066981660948324742523130313660210324937821757713591015638945025968011431750172206947684228687567984736539742166847609524579869751098179853692968402147807781944037614664481753506425058652317013441680827344010122327133615759362094488896020908260014570514890761936560692155209067892047871839471537264173105514757665660203733576111517815640625465814217009048708695345082404255247974393567623614972608599566828189589546992498613415159611052990825880661859007515195998521991146934024229734524182363816897320251645346167004479985465967128301646781943066523872156081594937192675978365676293062237385251652677744809447526096295411175572590690368947235517123858996811573619895474558846152533651563292644505073208797019249771487740150082960566670135478690640186456731995695983944704593091995225931623671425447179085368717322919587020225913057124242536492821882137013044082692039094657186115065647419490100647574018174915411320008186243642984649673531545011422914879042156181384926091321229746039178983294185943962325853898805281307120465539834725652704021699910679051475974505490188423105170171320025840819386214479549006573745693196498734909176841617870129466924889428558077619638025309220521619809928920361193687339884878841730159002656396487352589787725850255476515354561864891354979317094188548296390199942338636988469816218449394118718362679918888986390103462823794140825516653288503002541539870124501277508202535786670902349229718997766370660404724118240585423607838471734213237975955348587535602036440997859693697464345408676680274176219830842940357144294879575535930291748999936797101513407950883331095639027673400998969942191142993546160256584271327094019785876199778834550246309718584761747462003608200478907037617231419011518129461819145696018555895543360589304881625592728814465129840991948610943117419711809093939469403359574198167851851035146882625657137044629048442593517235128897744558108002663080542731086220203775544737304834189254254040477509156933749772863890050317856921924182983493747475195953891320749754760852275500953237537142769476722927546073148119130947286497894762382615438537748322062282179240230382670327434272751692971839229004349831118613874362964013232973456411071934326478873599528724082865161401599895971977076195258262411887811025398110143273109214467189640462890271795665565846353105459634341276297237887411001812811274525452002628881743967761463355734277275853044661979671109417569807128804924855092854768178306354490819605046891146068515266647731363312680407529553282989052263239074507981976129159549118827862471186494538080423761972572049313639071309873563502522003787568796352844895833218662927899430189711301604949381285223014669184942987599963985454376395485031823458320559176567101483224061022847940273095294421350691221542771140153653539275821490130729686079294957996728029775857209256064823235628540768110329278132816273813357614931169840506589771568291163412050802805193060310843338360423442998705401587327801055259525151547324912199069164631869721084174845694841929397559258484814410148951031939337530097848923870896689631621796581214203045247120402835194783957359228556703318789938092190128791245344629939303355240511704788181312997605438006563758289027560339215141400572133461788190522129376795546549545282646005633832226162551203032406394451398903531312321746811573154935742184136153923435392649600084864665998230678457872427749835562237199465604390616388391651459671703632905939847391237153720882185535873528125085850961487667597842268179771076615219050053637321075989169468268378438542294212820978755040300191554512017438403909941514448190857197577670977891093072076017487208362007053936908846303307678270506734265803602760442009701879098116335291884735969159046592074534405380589027812854376100579810198471926783934751788877278369919409927263242323770360931318605250423758562740584863404037615826824116583901230441567946297381946680474248574582468517456251547069678387283081053549529178071138959131297007855129058539812045578927899523368900437930071679260843936288457340402478048737390142003300055406740539612084949557142366906237339042398572308018897698562062099512734028602207097817981925768467923138595019528357152826882263135263732221212354205560482870693051899626562324195225738719058239634382421790969226483192664938096997543165641480082948039319842139938163737222443163119423147288942877675838017978470713268361073940138290482566507826266556758355404650400148239831643225049450764101168860519633582660944798453863990829213659066353303326452248669535806830939023351034619226715092323539785267831836692808318782073992003426358796705124969205208983063345609132929041447344303591146470304380867084825132297352756592279964593575994832999113731839418648731942341048526777953008706019322310810613351857446456931420560581501867357409337860694481186661960574532370013218793818466095479201234398774358680911741329192814649187365325891874881812431953127434758914684876175145923437015258280381293149370389898872268298812832121310924922891981687799619805337741219674942847523285951219517492018125048965331875041867930031128017892864260693502811721535625327792368031916554528203301475854700238614934391169289804094247199999758233241883434516342171674849666362219240476120852247055151556439235785808005838489044331868953269232549989406829891325199612744226081005501720799904560570255743120834647315732792221521411600503207994619030615088420351953184680721583624452434592359531011721461688865838937566694542390534496761314694689298097665457577558377611842691487162930269955720303088483906349552879008204219398004032749250213346316457759336238497201429705804115710205806900563771036830885895540168976625604088507860423639843621103348793904643727255917674169769984873122034203396282342757337586991347389709579836417619038395080779001803922890391774284557238312033264337296419982086099044425500215042149762585940013859027349717430392728958406781043060103441602016692774831545423342527991735094721220814184861386277726932377267341038529486063807804954540353225675428638152339811780488166062387497733693821163759827874816111882079207713040865657947703141721757196659057500736810430593321945899419180991095843819075888619365406256846454561944694687369894428171639485449754847058277620619762165775871962082429090562909903301003635319839632511930339176896315051504325393932791892085370011775720520331781016979606702069406513147412326233467049373204671616516869939770526492513422406855022968857046067717686175577779990226729029165577807155058893584422822594350825834673816745622029408326089907024245272424172858844703565031913433440097105645682650801740282894041507131331162900104958605978355245686101196871563727257681451922054138789698573463206619442841475534051300534056717362515532932046416240458102695697568546119374230392985844976463769577678742046494091432207684988927193058978118638712792005227331503345180172594785266145498356228746309544024143415266214582823843007660212743772997989852941908580164294075308970024699417812469399249587728677981787849048043554866184480216258489268507900300038677538053192452527238293957318247160044101893336431420283288952938917610622206264675400970956639302879203536404785153688468129982142606654927144413468100515456931327160633535188841936722675333691961505084264301388759225335919822431517272434830347513379838981914221475651738674221657524682806552559412827133745072287207532752133684504442623305961984830482534408127756477551386803578675515512366952412008819860203997593731976509642485476847907254506874941083670022164158094210869398426087358878828618198853197944212638794822965345070414882098047387163711123923697015026126325246380658330244230426208974635941758793234930129091164098986994634198949258004999422628502913258848294854362903714449869033082347092626163485612650666865514688097125370657815778550871941549780109500203730554052329589018999980948783552773857260669525541518106722926740206981214847829058631410831447061481974403869510794918352961662958829501575792728121127534422912883687755062371022867141908258572916218296152166674946761711705652194202061362474245984289277433927875677343120371700994133696830358585361991534117524258493311078184452498367603846136260128905622288928123387549859557941015739245526617958187763868658531390187457038385922312623157956998121069247584035783764352905239649232549310507357092750911201249435266655178195870140740337016519549850864297800198260003238535118603204305157515974498722316106980371566645946121953638665208112966317475470083518271240086317477318816482175663586602385032795777471005922501806732395525586951688449699395725102232067794172740388977444221674033552917432629271176686168676041703930378941326385634177002015196709197418326886215469144743771660836009257223698635158159924800686671888323554018510924572568655879965570355643956122997204460689967341693890369372899363641150430757294852241326163200159693900439058056350116104244665772840102193134347070817091023084733287637165872087279620143145917973206338650657331382897764680119737250957551477673345764747490090143629002511092717074882555257968767592928331675587132329522104219558731466713466741783880099466008751925012689596748402432276792683162164851821746122519793722808936804707008574821081382113326829950214832660115241018925550327044566623028959771230408209330195745687421797740253000781515890991353256157142860723086355295467942707687733741093454871781622430298385621064322694652194789821872950127713741675517001829667537812435560691093496186313409825383633628257120363946401942425915084304290292681136405756279571177540163076428933897175488213828319817328760829612647132189174224561229840177503885772119570727916906400491500728506208984296612980239544568688681386751280170667163249181413535070666500981703996821276188888632060144174495278636504880998516300944055048499647131054926171397925627116872266878231959201142483096669141385091911083199870003553575735482411962499130672539678334853566319387747265701870795216057504879429601533854758335801169612511676612922631943715701761613507790094142105802010292860401580354213521447881678990225271811442386978434479400176481172005134512847146117646702832591235359896852218826549243717983355321685776280981263845459287431882677388316880911276249426704421972679005503122973024035103404630613247097247321439267061161543274078039902099000983295905274122061088816374149318674048195120473527380304837470708322670363436335553688519029985433365294864695686192471040435842927292083680795940120826679835993749423343129226303226150823094634172429124003074227574843296756591268992161019401709761006186319871468137255589567686205418162384143820887404859676823642135330573725875732045501808505655611902076314909947272793155404117916978055755376539826327391880358200919279697337546640864223966745900983142393208894299356623272913428129083626143848999821275777110555303642427704846624635207340572218062667135104559328043637990991696172241430293549507743942430435333157000394574705651532413529910906890832975214054314430056648105991229666426077618820056201038915368288499338523854748563177153479437887720079623292592441757896419592334948916385400051973493091924771295529588546841485867982477507179583209444703643385075454389632751215038413406758156632011173821112720052662205449674462939782896693617112081125263393968008737973916553612465508487531308195194006872866146374357736696070430729371774007978192857744578807074377908450790018129173238830054568744911591495193445094322614280988037809349610277264545763003008234232320219851457454290834458841692984046257165260596598680857890597973624223531622025160273865075415599462396195468069522754093674200019792699445681316426914514563646856793641195599501726310639695546123951694352059819992602890190188263916183053717002319471906264274685889988507073073479035865522248866258709042917128990164181055458227253039306703507305079488918896934025370849753147613803220143356624916740490964641784413478280326311859455658441995889430034594280566074156108765045951885489979213605623522763126563345128629562553369017230490637880940147776362057030393831025056532952929081433862075029487781694015182320107087933266745749356825562836943303900735279945296971226362959345489215596511392854245903353017174529542646822695982043807329106444719788441825584618229237696391811868337946385324211837316858009338915002581808785002743319379468663579195316357379649666394531903462188968659292424738101046599406013288892227564028877573812145633322009874187268226983232897505072880215079067845007830989825452378484799221854318278987668068438510190582205324509588560688201044852174647736230538012380806631828407048814639191084350503763086964086853514035065772283060953601032095769305258269161834578175099280901784306732960209434805156197452553167469400485361464483864609975776407702388185649885457716031402324607073326124776712131052863811965354126858750185787793038446562798550068932111224902519072927007549208717315982703948198330423089768196690706624548478705444332300916305338410295725115426363668289398396883567207685870193756015667118709576480044235101555857566608169680735428561201102268138008455005230188022763113549310269236343152217954510998499971944837875619050775980456097432632977460176768280368701538188958337029636420092295467330588154160301394200331670164699825653507232882855166333452322217336864343136504497224858531171615255710412944346765328382395066893709489392144446910378793897195285535078452332621385836451433620822282872090797871218315996995520169420864958691110895479716313154347847723847063074505451432716551181885523816101928219730606962774092760706619647526974195281797086359244714352869908855208112239998718480282790454292313929920286699058143425468107710587589312292731275209304401630201555942771329109427743505183310525738236530877397390763641504130543884973849750931616101865705107446285963522192945904117516459528813359776932956963971518738784971746119043623864685595854661493405674519906475847733408024148065176180766876836463694774898916965491749819358259727364717071776425296789887788353874033269664952464405822288343444057952890045112498789404000991561035200641095511994615660946040468921320212714953948111077416816414166240403064508037277953126732091054178103951668327323979514925978516843596298955305712145186417373074535437457207883926603138391139491955859557486610564384220583938631566746317212716840855333313878918718935515198160625856855084615444808300729218259068654024788383977094148417772143548472886006451406701248956221772613272402212473875626665592588412795569660032187740267979561327885987181221503075571197401556389964903701328988331368568156316396581818883952494900950278164473510086036274378324947076264889979102520448291658257270469850118741637885564490905974377511206398286912500253216201826044321640903911113572567614591527504159832875692569597349969183847888185690612354090240124643541678607415939859700396607181683541013659151150318111250091728119895617039881613030135189240951585093926531925151561616899918622964511257743903938631638275962454378879261847083775631956895372468008118848398925223692980326724402691152087736257470670203249891545638829273035737442781557607082779396112130826018765809802462863582349842085908636212561522554795539760956213018969898319177427309853572439765769735131545315189583023714864248881016943143194864992145413033798467481815648458123291147975107983450372821729935730751611596852046356912699010899360506930753382776851283022365596197634099054352392119141443448509487608837421462635107958695307143095628526698229198140341095823666622679853083578581663701302038252810338899157018152937436072022199788766002679654597221651280122524045378163345203504014285898551722370897996390139979274369289404451832557498831356346514679960650434659674940674162530664316787713468378220022865539586734481871270295548161471639736680177534226614078634274508763266673900406267430363798586027936922827095789551639893150775135591411938563160459823842018341995231764291054528119210417312106920472932305681386310804489347176720393816113088698603161884894013570753130083049814794888442587119800428905712907986632568063924323767442741468420371907821077878502563513776413760666897087094279493997752205979750780833417342670886513477889844708976116476121979371976143860167250716966678924670036994391264003906780757554927007037622346339444626287047410324552339742084029684111413631911185988520781210361871971930893329553112794413791365391443434313473272652614417974667045036243518342516689313935808797746119608790346658691411334944875384806128715166426007758816748191045520323833811204594099550934290455674727473808212517511104817858604691395616257869204393269172586313767700520717864339341070862690351332514024073820090508129691102529972798147581595019490571499550124821422044185720039188296809158116497059152324613601735761106485534706287119304232738873100101734418407092355866468471768567359121641487397381877056842751538768340916733501689174975542909009111671441827566649518504745367472929836825127938677045462281992876822132071410254642328021387384570713283149891214940363286659707139305723514030576700099991884178363234428727804547646132485693906806275567590423553143921813842744710203380404652327651952857441305369762025149028569351096864519289069664108051801296724831498960207777726722670522612452555675132237175240556938793668861493075030050082462021018173843592765251244612171925108742288539987118499680781750236818550258500447663384221865645028005859627521020447006034110952805244336442061064266874237860828026637402791319526714019981185576475698729511532751857236383994287240679306151406972569772842969006519056711547602392008124458459378111420690335672483034946181242103058119023162971469298912556302764550792439897875088949652962765084864926532991432216038097543795519058817089420937753838120351870053136232572957728289761000253315161563786335845740817525636163388958285362094665015385857701147647706953039009970896178881072920893146413448393301070081149348038442854934981286326710775963025036616518580681532170981578685226003480861109304705513799174324555825313257854107089226510415429093686512836132017094504140145522273362139816460663265484994073270693602270507955117213614594708064380635246034255332765012393433080811652291298636090751839958830609491450596382732721977853314354130445556267270997406887863650073213744495880805787925309952688333612526670530392698679417140956109845327401166088722619910374086758515510350148979895077559596857166188094907854624817850561534063171663622079531176048103675695835679839744298940252336697164237796183263676616723859940716592564281718933098563835934151264481635966128388728996001521986134477355516720416787259842206952063249205805753529538534704446360402773035540871037636447357429919679137301214976362793873546965015043800397846737652613663401522006959596544758643490416420905295149625272276958882783067339661308089540511226827491550494319820792885146055230458466113161067520898452981074827898355512463228363357067535458079024907040200222603361422779829078958143927016725991402015198503155714021273051207842452879909240784445703274088090151679234856160413658660123927190862162280832660928163573981296642241528804280005803618498645450854703058719983114463245126950562165153923599385720286796197062205718841952121245060343036082251156399502615614046391559203675451927960796432676366822714842565498311052308771470492604276086470073981331557609725570945705998890263136672530546855426122201911566126788869058932296050458764706121074965129150592656082870279357830430218335394406702696088372520546695400601028305815722135872919422828192350524122396084394780164429029374566812579696926820732786674912364857084803495563351856102942530982872906529237124545985030728679936623671992898212693884153130424629034959974614154235297623846624770210163576778000462443572136220955833589405211783975300300757879728067987372821662029302013357078435152978545957005789309664460416242303487115811790958569064201069079987928571081764418648506373229062159308502572382500617036625145237498517454947625024548337574434608846907538216664740600173855037797542176992011692052982925803946012903370638923231383521953668701685353894084043959727750632325366998242803835196078167278605846818771986030188562022906120091847477206076018144419402527454890998148636475115846383433845880848792340891043868764963920970911477904128510641802341331444006949592685720086590381165184515537313174381408857466617387917783822452842518444715475286974562641102732134531675655897562446844343253394026268573822116656143188272262640386488909331356732083022841639296629453204804467517966970681128331447290654764503503639359107143832001725532038358454897278557802133936526869952126462220331161255569753143111357462055548947077425528644402387512977734269094771578763986658282021328568375553640281386630551856923994709774869696578025300266306669345473646088987356203552952351618253541019755021311314976041092255271088170849952518881626540144683774750922240267827037779964174472528847854601051481328505200931853365360320690258216276802431614442199433073629841740415722972599925466155470190258747713051112439424518060594948875223506262748776524069090081746791745336136593785009487114270518312353694366796579812171116963905426849572983113965987762255344395635730383746598836647161261009475371214300634419444750481326422164740382459018908144356192228375484713070535996652011002794721331112401252945586215618752110414510746958582238638441609977158186104617480945919346269587711031558094416675635863737802939482357633668156190859280875912854931479752936243299288071297524917966761195390459875188972296532818571821889907644661035261157127006720623366900228272471145919557925047837986169398355260586826224746334165432718694911628179322763371698465522798811679809235584808821053231799812462455175219906201738042031697663839665227602730799193510232982853403293272239047118744828531063662791755239032130393490138942040658011489478351488505594482057184654169973311487524087512351615825118617697300865668051392197233809922730791188589571094147993208160488839727568867407550095243337285563783992310934116997853259414155626028485390410258024806804194063873941871916468784105747635246130922523405317573578570739505652237052709700238414085335458380162718922890462095730226899862600494375472923038313175490958553483665128599084836784574381263314983677766500151357405024982190867439989999134753377817669164690410412924682466397159228199480622879422680787519980580106969689703905946429438014217157859585480359477474391871562108637668982288857644030397694089408432436532878205821114450646972798487705545680202013392228582258574923822387516700268417599226748593736346311266728488450035881409930085763851088060774511266850751652291996473092042384660373795267970300791535387426416610100824816853511525299450196344484812363567399795897572390035731846824673170601065577251155889441332871277406525461295726249531759190993379087398428815952621275342423322369145985073562516422171677058646827707728625312954248602547923216774407441502859354515773904849443128652036016782600799502545263770333618840327848064129276526876682926372859453191619491724677674896227962812762461957304466212346932085468910408340446801603628715501241726879091576637596085786896913190462820822638467993015270686931054984257608762476666099717978901285771060735928657743283129168710747346709675961811278070304996068682102483486705309118596118346580322619822918024185777990416968580042148394328553591901553770946513222611149924538020285742275168945498107299098383531889853518837330456663050033634184697458810516301352628826219937890166559180955738804524840338268674143393245950405971069881488746508679266747537717088008565624055265921902833656936948041424635469683870794955615594220237954547328521292004869636775287193948413697621535396477511526292612406073512644439968111131623892104561716348050033096184522861072554327533106100447872700654373677493895329096081323109768698572930143629697155408344334828677938006585843398785848578471270770200541938711951457764851582614970795302797697905583583115411289587011674247986698602215071832676057121480701175340427397845269573965588315623495838529039777525279835836116624889292569284894473162922291900366085808017723710457639183911276471443948602901337333302772587907381387162038955447046459437515455406092726403976368115155825483711493861059845805304580744413732091763909943550375086950623748086028726586709991507081748271026963665435708857071177293338187567290986227164231742822915900044536496542228675710284583304326921719503198051575363666304791737393745928503139742934092140517246623337519772444212921760639749224480226302490655763402182670798955024559869921565537419944246471179352782641981543452640116308787573728926566503357876930938426222086980540233411290553943036854083674223404956583286277383812578440827877931389127716658614654503460565928485645805101743102567902012245236846914902328169990583851259654487857674687051496798425128234722448668190207726164077453942215357972001577479555342042038326885384934855270438202189263458692836021835762214119032571791088548032144775168489181306990238238389309981325537935669086088425430942661796650685688258351510151610015124098605418036330765030458799974860670583057310642757680284450328518433478420338926486957652023813610391962136292241611278685757046780503735621991427268265655852422109184137804901617614769089353688545965514225363409455086475817013042269387833097367869792811953967659310494340838503009587800011165848994736762435951341018760822415088241281760551634521368805843284503004758308579092460741329200673620569530039946484125547230585954114068984338133618323141325438135784732143221095512098160739547871556018451956946832079442897667281903864462400616069758735200571952101452923074546414556678896951977855492030850126156683318403939658219248861886215168728576371309824490537075024730471675368810186087820533218998881361956045252837615741580997857694305869584109047240148710989928021759739422115803973857335269889236873807498663675798516688073442841673766829300866226359443477242699167585874496750743933943904948226048935694417889612753466896424891836486710639168937537865176722087219009064495632564932569643232367727255929239228412081180134826720749474503820870980272202278737983761691572548307323751727964944744514862082139758624630956204538331166520596112827404835848619309220251898961350344992340294245257257651262128771172729975488768704734228968117708720745309530735749942947714507703641328299449294985840211022011898221263930141003520706530804608234179448641053802535853603123072284317701209874763903496786541783512680046584977477481009119500725313414633269373008665209765053421679095824653640876812903550620780124427727916356525683162090095798009340771926507280789739664113756235959808413245838672370230600959706387977846218113679429445803125592396672571306067854938102076481820108179676808398352573596050874994346945168727421881856991161709318027404222011672116435617596913605622835855219837253167655427875583210131070774074182950185644810876473523297255800771086573185894069696095139882278487799785395261832859926068982834474974736270818360375137061686044617975868638755711570681925098253528431230341573593370237114936591651280182746990343307554241413593440574178539059394202148716275668828274906558121035002418355730918499692888704057324181063893248416513059898513292821505899919582983185934855120205013302295823354894361326465908195667940612728704002333974586517712010011377685416890649397394886580098685614597717115449253149697663989619461314729334128053790292920616608898395851723981738538210734785036265865375786896186331535200189177506713287699358149334111508965862199306937945087192362413700908773388989942637382381454248539732443063578622658942556044047462847810663762161539717090233068251665984802050159843705856570889227585889762209951525362865360727054781736950016237543337451160784011131202229540223034594937480657721270789733531699956804942252627932447467793854370824498823347430966493686212536885228135548031453168516020985100021265839206093789856284776223521606642810032488869344164608725062234906704654253816517830104258442817257043767582361033138108536340275137950744391266909950164124786435969538549088008212076915511182676628836710360755557872356561786689952437783790287393806183734304954176216811130300691528998234516201973274770356310978717001122105821320634300952534790456262017887954219819063732883141995006485776990606898567068899293334936306403229248129692990263043475256484796278427847121978352716056385926548044439803149827075476151254719243192742366772327147262597265120565984245019378620323883590124953256231313418652347524776702141804982308654990624311156266906595645200275209992405237639179379048174877866383643840259298786338522199517580443472836173202038814855916797493447700357236321597665362746568971212928487204803882244889546332260864452397098916767127250466980255813195397388347199710739759127592544523032850463612299188742172142457474746423180375512748576682831794160074693602361327744595707680239142285686401723743036419760315301892184443901772706464309735566400365001617786048188314300778072011001962449544030451697987311656475820896734332186454066629515496852902394046870946988914342953960946617339297655253806184264781082931035023550006517752185478588536858604202539861472365725295012877359817020582449107065859248177586013951532078760346003380694516956114566033586684475086580066973232909887300716797850067136409488305734028481686259139590589943014698315745189207761353032966129760252071986776272754846051848575041662642779230663487257552829673288383791814699194685118676288143587857200208626335399882194540765359206422668137643606241701351796120812325342970143183717301659150393315283899437718564797290787529873855911860687625814836491944778054479738740494640261025833594046238077607556834853344215663065315249404201764326231317929760214206915344800917839353784665821671907434112891560341696013175853714983561835015691538602811570789778967114414720507077439381475687938487326497892510429071803278714486840387331456416375038125871828250493782652363558206413998415514953921027358341596168714160041266306057557966201036413303206562209954991842500646343459706150192303598796768204535119283189017139989324356088806080919278620749192269455491184278054536061171541506438679955644753092743070633614271669789724927892236956050512919798828988199348508580552028411287168576248185249047255573946761656180813000916416983289938385073175417105581161955802418469488777751270662959278440259342700238324052645170842480075004531493175931153335830634455159858614682549057072148929225035390520594413671325951563263687959696376655126455697962603722316796035455231497020485520133084513208127328401582513382027045033579499377354390109905231457073504192246389801008031505336698883109744389657663537975617469094631722902276494952900364182696921287111122770169069044924365552889955474803919993169454680464061565536677690420376387021004360790799081769270909855317562900374563309360995628819616152215831712090860902331201320848212351432358642823203338521755035519913428295658962768797519777113600721575584376679337543902612884677138606309345498302654251985033657913794534021513530616593068750559586464993500471925113865869984277433234856714529878971033404413112383219580360048001776007049533922320487218979711137676621075895096944195735310389131937949931184455026411650341607040758504889490348814679469329180256210972306049260678100127753307947719940389283302938632716387226482361606878097668637732142141503290878319467437282346903186062220660833670106186305074622530184314361894158038721345749946092764113784019596034735014947128019019473552822011354939798982014863800070028482733185184421770234924649146686636054379968258014793114369279156542033164620916843847897839155416582783703155895431204704648251184856587667143984739190924915675324503015003463566397799428250005501925933837625504580237351014383982614047594240574653803001379371483706209619377794429430401218375667430982027987379858115064901241948503408040848906331877650453359336810234501682936391825818605860962195237359118158046666485886744734579342271964228247591176675990273917877289945258817672404624676484535553573157048999808475330524277805767821536604961843288488437461465617404972111078092915064116575505984257533496050457518530817079349133735411646312785942446947529550050186497166672287703165534041650577079619260747029535222958857890406591397905230058785528477403145868317152096466406796318893936378603854995543158590286789942821040920640971142217600474229964860882965353125758810442890142466620446091460660237361763286791010260111338590113420199027840714282303247211619604804520647070632103917045252361586595825371178073394901714763192252111337355070315985402546892293765839237728519635987558122377263636602952769513444869391269408419910468247501975763126560327712139555319100689106369882929559375293087034856299670842478756061052696138243329239607314950059955926940945223243449705546269103078354168207087608580478938254931721440721301068568526199302404580905809140921049784944142496469150859287750661318563591285718317442992947453986896642022526755517128937437494320542582027649623233822315912440401420408850622025568215733854596055957745933354722856478569836697505330128045698278557746760171244259621219905030588462429012135388092865312463136824529112394685385544916955566166485270940106717225729231361706543917639109355210353430493292546328743969276063158359920273337809711990582508000376215443257995287320489886275946571796919049584652552672355142594697144141922351902416030986027013644326703106600841701153062111439780780228229129829392656393412415096573550721731502019090645191844269727957000468051086659744849950022996150897412940543799554753902295785415873144074810179994451639276331889853727455676399702180517634177370897555794930439760936377895530378641609621934084025787994755217544054858174805308347157658102348408619974491534976205043964985049779299744993917508640899897992494709034457748222950523404503674518709523667383806255471519732047502931636298657671733616763122123628591670068697405548672420121557941412902399279454562630792317228241064453804937424794083097583951539441123054228852648971456918795433034357985217058424809524423437537920319754236580065073109670583655837596582004297587391998961601427416831098955918380497537095915868530981466624198816735527487991024507826467678168052604188128858131857897245128663451184781143562549543464298223162689181488987410489872848241715096053603958296806852117629507437747871226307703660524952171134427314696506670197539724444078249976467723944975125886338809924415006703982917267145328087626250600835506901218069654418068453180664760328717419374965216574418950360285804595714848274382276373477628036945303260081251657254452856828195037307863778967352985297760896098198116198253402849512537460030686471973939683337266103966622747712764108406932560019022949814918644325874331032087981578486766796267206270807357002235763545273568288888463653625851911449503985935104743554247975113168083110323876970770359782438151406360645469206267272360610269783598518776969713508824391890378863212522803025665608024563173659854134001216688647909949994364608928515705419489599369082259286552566725938125402286687277073935459991598860696497682494604481157594606836406088075606768910496132031847131997067006465456775655870553823260173905173051586538810871577089854073654464339770800985918893934107516777844843471314499341146249495439273867313188358552195731096851042286228170446416148370498359249895286845701969925818303626037135606811440534387877310617008226507742033459355972228083179906057321239290289542446959925506763892172742740202156853715217562530974793679790262028914336331768059600202113535321929321617706030041248658366728323808459062406703395439280067785197030201821602021618372149814784413548537966580104350006172351329237023187822826657754404946128810844516027070928700896896355084921972663811513815734183369688135797828128574973533033910939400660320212672460816811386378465487819492781972760493420670642897077600129026896579304722443774616364795157216785479875207146596186623773288946461391687607768164381820656220563987504572343021683067852871182396149271270714197118206449213645984179460704137663977729462530819050779629927444527623159414553623828016787807427073146271809062392156054765304299293064189293997627782281260085884890054954085692665035038375134997864956235915297751117209935064927088160976808586971860111277405852554896499812983287761391770032105271619593143144781096291777890288227182406998969096476110387638996291616993542120492770476185418949791307872748451793588341846629878332969122110590145660990798447787019219774695084219261957002570803740558452925089996443830589523713017680478263524709439266364477569381999606009417994187256821036201280799310796143925769086449759963107537257339634043890717448057894997709166971803748725678551686679631950992682767974725380252121393235050210509721004110565755383082685883396360839309136604141362888319931012617578810112732866244275275248108584161089604023351866783417013661065625431814259021002440793760499459085065557762156354649545251729490734360625312615514247237956210238368349867552107367687479933549607630263875591511186278549261723904103077044004005368602788304943987977432445727017460002665107590187234283430875796238844548884856489185544317664623061309903379533748565947651960399996064472523610255709743206244750664044244528662020028036811410151754464656380712541032021800368699370097486326789932151124705450811561332193961034129556979151191798053462046062408111088485206915559851629792346116492585251082064219870053263595195919832815967405412631105982036732919139577689918013752597885106517825772148573970214791407240063938622432405134645661395148879385172442595388890564175844955193822211277910690888396420944182923091053954653548311686768546685915924946657059298974261546125273824608436312805446145358405263823896594213031108174974969954235206367509742102690895542402379001203084900427172896161923989095706719578815946380068729780739809094687484854083597758247602419492964388182499821629771817185236118237467160836833391035628706589402573033293243462662485428956073788603548228929929046670021790044108711716506669414443720696775513189140871823791558695249983718910393702271567994701724935525173414632191537296198220240806858499647649056106465805435140505893654488104081522561752821667112082905675221416167253298156883882419496113676574202811804268696348120567129917847653292666360236560934251147430600680974937011040581222429576002432253056837767036727978133487064017827446474296611475777510277580131214965593964757240084400264805778129731369454218007694349351969506318146472615175600873014551115355564096120575300625367276709273585526093041735317177569757662052383083538705405051070509370663635621615178388918497595307721445874466394958712483613358123466557733596549386366135188783634623230607977232375167694184135816565357347198359273287770227005836224932263974037477670697197956356630266609993597620760632667111343579549595240473814063736680243550220871447333116478453129582450561757573274300722321710349471221241448962362661087272053257984182775379103700874414675187710220344165581777552598553640496051174616392622784013681070123481567702136585057981048707633698596803282399738542557221724300729543747160575694610336425785613080828993463406835327514775228930211720993763354809887030565716051310975534841658957446716393240329071187550028800418846877339057488866936920805148788857519364494893661656157326100943444302767600103508698199586094702430770507366223171232446843021060513182007523643833311359822229536266699015426486264970362487856662467185532094662973457411800958258732845610910521733843053411444949906430313567581171145142794365880337522874001913123057395290733456194458211953885633794981170530161959001624960367757877467136084746077896673818197998196493676605846127199220991544034048995885894332850075178452287308835084642265408921850469025299175976544171678632515671271872916926209523876868554622165473333667510201080094648969248857936426459598884317295872276203453944143032973006354058234031600633472490254066848969715003931455397643027311105590165910019120688796842327165365428298659148174419855977507275151162651627063772689439827312208777583304191769397616157017452199383297190063755722268868046534051135827545657561445189367845719279288907974193312807306716465926227508837317668447901090189564397590158735580041347915440237167096503306973537096157291012359534162283568560342337776563142853344495998494734153365526906980196828333372923219882256118644999068061221727174054986627895514603837038942541329781722980244027042174206585811814559673945382277092723946406815188898602413001711085063943910937479931322031490956964045937108424319505724322495461979741889318016241203396320592302827014814819200409789146759671545023336463560298625484154278905361118876203287489325141391946358994356004678648486624084646111378224473082874735834230005840816606966718054713603734647827809029234888217010293793310142480410953826771918370558666080538042256677807270003959831318986401017344765410768401350255864217337441752766452108751476523784204698606169043274870207473513497139891740176364145850241227936063839308799921619710177762095007764146349570799964748632058537289006551714128769827460648236737232280754332773595417677670503085122242825364742057871614072178801473978016459932411534984493863899481314418658125959030698613133465948317192644606114709516660823001484697867302491020768574573859932740398394034618605597075224376348272955121173107782194922554334480456872429437477540777032275972715024962559270495345879335266658039248371064180152233927867666738032766276177415115624167118020338674024129231042793128437294469581314745274047487308645861873356250366706500589884508097808399805117085800343971656569201596776036831166537261997365055030808573907278198297630382289884166571960141293242044689406315633462386525075767686075659199012036593648723767027794885173123950997909327934982771487071605833514213411544632180375050872966703145045275386564729480165647715699517847993274327951683462998174640264864535285474868568268369838174137677954449904520645366805769530237781777225480832241239877972886721931097786237515430421885466055763057181147113574647691857797582573671866436307711966719533519840793873718300868030091410258980065779421845426022316225916154394055106292337639894752746768532106909435028437749605089870083036005224120156388716248864424882496935824104233245145380143879125293836563383478340280129908020098668104145483969232414976567467057478604918504143416685318201162076276389921577078736360548737358991438891898525370882476682480432440040001899499053455665206338972639833906917805882080415648072345291749673263827066355262791921105719358410010063584426654793603000020275400051288323494737080361910565445173652883379934394592587468590793067277588618830712943515806422498986476944094629758922506882552744491783251080624214221328595550158379971502290167720383490083097189179967682194130719451117072476448550842395236523251288039881294155165588761743787171892754740276163634466964659977392629792433972264242323726050010083078583986919929031791922650196163387261471958735942092110232904541926485077121175835490363793787000918698274237408687182646249339720587319336093811871576551917859667817081402857516665532317228415749554206745218086170582579126027930119688099935820394316345102790735359069148346012269230447359677340831686119705021007870665230962786544563778974158207869561292777472350519578958554637407885138292058933129626123786066916420383723492776178974207680602323701411079073414760566876025378367813612245196004433022807869029265662132456432067395365238664976571378923985915068423518329125067972504907364076643514242007364354654085998792638280587917039758320396676342409470247171677783402992359162418577859867294073758255476109011957318517797965326942069026712798925406281474889290457141081912294071003867150740779826376237583886759255181475541491731040543114657372154675194280446889058622427766859706040324206130745373397530439727398666120132693432882645769403857329452973570603726753274921619959077454255449555957948310103364173020581079400264138031063787314713732878886991152761704106590048286250207161660354864836901748090455398390806741327217256383703565877831309239688049311539407814896655362647364858601816269555666550590181778171254865844084980871322254821195795502855837948086277617692642189070466901204603052293502253998680208253280726718198372075482201079952402056774127915486325888195334441534412124515437017037175244635482224983095561574890048342558785558884766141221164025065266261340488789559886680172625832824406934431618298199847191049873081427962955583027152977543092374082956344260126604094688454230206649415215906148840823796873533902939037770987103046824150213027695180644725055102517310874280856874861164061356523388579076719559789992843388394701004353836518312454969255733467634667644357785165252333689291324583558250127584871146098148081486230007159041047936865022539360299631423119857051714618608049304438393306585701278612788343831471645213879741468931949237152705580598105794514330945614569338650121884001748108452925609826858501824087355115818656658365025738061334616618425545650366021214728184616922888759400697684886376921694740442206246662747043803135938972139249168862463176129145987071329363690310098528420991536872288069738424602705693378234883024172904298489242567509951860960792722938627286305869853878399186461053955699253141981574259123003071696598082920608477001541209207761158119244460815138498130318755328643954928036509848451622922328086328430625083937874013834685212816501013433143732871835055994764660618927049826099071535243327415633116368962823256891042888766359616208450342126301114588593235877337892334746534530074522681860087246345480325657319498048925901171197302931523607245591593588927420829234152618146855075923265824135585674296260438086634487661745751555970708513041599743511858046030906846449047139383052106501717005243801263555935177069903943043396013064144756166484012607351128916460750257686090958914093707901151944043727747516643006962530027807033688627551548964064801490415767039821043680163468899806777160675280582241374026888855188259259670450208498872128760647622120541441298434870028811476681636855031750290084549452238777400768717198394419673074314130597862303764317552700085644046591323906435973546768365005279015884878339194160690989537792776806090888033023913795962342595713344559771159183580798558439182546526652328542811665601396043589473047277206609865841701118455581670497015434846565604144350221820557939132680117155312252578318767388109180408010142165836226943966839537238296698107268362851657349558171822836515908279583955917973717036396329841583199511937056523907025660553490085177285578826097665180227271667622550567169069164405830881656522215297402105320725423481519755781563550710970155834798692420091353225766878217405938586309144192717513469504367352436941612220275321489558618074872504476197103323668831387515512547102262351049555479818109200299355966878559885615489481639722054056247682108743398261476594806621116057618134914234316124531474345727455173748383149057970027350334661281362441002848330024632766855025818168692345955285891515604674019701593912352179530498372573952484347345017469093348764489661522340450239661141420322680744070249553418995078336120093981139129184871691244474378587869888443026307975853753157345180110313230345590553046140677986324446187101670559319474512960382613520138448735701590489929482825854160080590704280262440817252972686528276796916235532021758570201759814261521056703989888762913115641318781915204860277470755235740683604225547822420632050363209085954870799012596882765825320314134257690134274353381747551077268786519141150469440389649215786189972923189168631021587968915148454660201658820857948625687470407781736835247422234497504226886264445127241609322235745396768062569568864836378963563110030614767393661123290125902352425660582190198465925513832026475229126305575183741940961550151768542377522135036530329025312687022245544344257721460630049964970918698810119605820553831684870332910677832162729436642676071304525996259995813289878339781027399469083742305184296854724188950469747698597906092570091067437514617906661686193223533740040240167420394810803596142513888188710991646216023031547013460646618304178730227052506169685366297147713595951614916090122902633192016437025020223929095373575137403199147712425393279331544768152680643717990041811758694026974483266244253263542861178720856804992775563111805044216618432950096208637156351037251987076808853508600823618406053486162173376637461257674270986715177665614000215973842552085445193454823180761422911838762507974345265974744525148740648746457110891600330226497819902921680703814847435795655242506591726096256472412374546529010721673991086046334184678066365358584173523612226711225161608489311012912950498530515264402871493898375850614900990902305858612329882484462025831480808790557986435684422022821758199330345374514804307134293194661303917399578013417707351503459381980167342097458630902399779481199050338890387064865738235626450878744405851950665774987381690230543589578699987340742275659978267320626231885857097564466038822344805503281761932491172328807605124101641162887155032375678438851582174195218527651269759563524860059827402442854474352822485386890384554184065661345542145048296233032149274153926353696330486099606911335311910331493168806198738546792886907926628988235130638070560685426101942299610477734430013177132412332093278581034699145345589524808971436674060496910028280566446340404347335691660998482250157179796858556082837421095904513510535439764707398473315675762713729396201814742937947650361275919024292310910018114590608933083378534660847591779257274697392464861257130992683556735261557170955626870458236191131036932793481799084357426404824413970865405087653778208437871063126508170271703772676378858762149859049935389014056065404618784172611815021603959995026907098997460375896189668874929752337378682208477355998161870800644882395018973864279405703252939853536676562594513026462643307809089661480075045265684546402343046898510845670572762037340140824727967631301703818547957655947196938216087413138182176658898098431441070751642164869716576235129864607640089537854246444897216635683562946758520542486017030544684055985760319069725975776074502673368224201111341200682222843689491197086257298135728943237179957225915950824649390774379229323840065644739510549772153638280082182985013893410012239481484785521706184436337597517148202080607869026215475148786267746775872509415123914101574849969517985991970247401689338224470367185971587609716982631081349898410712021233660366195350399721024928332908428444747378322226161638031109337077276663937027484574286249438994300730281260443130329638220735263211094208906565606655105516240797393542581768454698156496621746586077522405475569095530536875132518131695373231578175314962429472291224914521806586370159979375040206705658772246265589919880096094512198543490596823379707484031348327739332446359311724543641923860782900601472481484415277816094788305650347154011581002791793722206629499603429480342272555102913925998023674564435910420137026774110337139701990971115324084450976133464841445620701391341488068186753829277326658091304248752362537108624716828476929175721962847225351610177749223971097377449808711865170521907005243043674362403942559538865100450503132010132787526484572919414252565407721389085191757228737772185375642764880833178688028423402972038293348325482567557790838515363949748400358828168169483051772593163353525572263984545915432410685857183766651357775568409596046997635511142335900830045626925573485707681803437335113773357829064418759999608912834104517845854304065575079852471752387148275422723132833186776387114241303340618660209377294038490737349033592443703014624218131043805667914337719809484987597953980911518815847365843150096395721144739256805721566041251455629832864384414914238183394945966051776793678213485104536020380277494580178467535771585370624593837614085293778193827623382617436573565675931978187532911174485791480541107145138097161177594840973071629800519308012101945491189436624880245103150617837643805498428846056902805558696988365233170565795668070907763815517139170921091286886692502596105625601792459434007000844881325193930906139110783114309273253730859119097680805942764780435117127772138098325659902231109929427000530420327307031228289725715180181889872204086995245009159040582339158850376787938221326220562311106425536182406275904154043898174794469646998900549893712099054746593276009611331990760491212968327711143685085781716745158689638121363859627624644976980545704331792645240591445751417280160151047115891597678902246473105880403969159461421210307716613732575625443584688686756807109116460027073335385036559397450143330678500234193769652304052452357918873633481912625773258718776862270479183735672783289268322423484140115114065712289314835116968458901558018781713060116278796076742838828737878767947787039205897557512564698915384410192334747076862815011281742100263110174475726197927316168922113044385791651753678996434754710022618949563750774351395923236420949721053470050233728587565634900296960466601749465315401819965227799550617877188177307259339824038009795390120948295548085438353960190524230459181598865596100480315379586556448422402876578756272138008302955639586123971998729523280889590214011492261760651157589359114728777552035137613443847296598523961056338422011765692085121381691768105701335517177164175934509394267584440526087869032265742637234070072609237246473072563205775705272308560918393913043914427998935129823080959380180003735086128219824555829161210746166309519739701433502269859570425321499678761345805857239980457273423871310070408232951140487467707025015101851548958299324947031476926827002315587691225862811936297049916575667523833462928767327581133289606900957214268516809325882143158743505361423333164976773326553501839119946633438904293120203630100342866597340497480888246793085005112642997876114697188588517025389264705308413305235360058885913595797921005730314432171402749860651218647162730598527356997670816876335943099814926784630833761340336885813935634337206304704360342004320966157664411608787905071889726433550921140775069095685033731768919949468498317856107863282490255056239217323437142059138296188248963765595009363337389007837852864111836378205060694655537415705054144262962373554784647359728571565312479837207041055605582073707186376028233044098323223873129849678245971075319511817078153000872773355469284561257115478082471267837657639139046706046163784596177622484527839103563654779430491033821901611725412844335464750152672571543154783250948774766393865381155838864194601742686320926739587973675205401024453264920998931795413685800307782009478224191365535525732566463846949731824752564222378683703404594280645826548493589000506039532474121835159982862673206899581680542410016947661533232233572564915929634931674727296295114467894503301907750398317738210351526301715493161158100322792413867698371387520549509978270485699307191922373231818853424741035664693142830708149953354403687086901838538322860475063749399498409288249272434064130742340787528993648547339229346355853033074611326065955971887951164156718739555162314356171482316399185085249456565226266292872627180671584514490432475296264323219808413863287691504234841821388582290440254647569303204990348377926006536356305038650138389618818267542426241789617370593720013678187078483682004958627826830152738989585997508216981324602031441950233128299092237938119962582038594189741386304205959723142169651072047383612158657612550642008705364710822624972888856075583680570744128720873076437172436864729717490548718482266413324943291935951032675425308784362718299718787103731869353191779519028269804916413429840620823415545838509749129850831421062729613970678488086753445656440926854171807693203889450282143599245211809252735079797252370790420826525652503213280430093107115473909291988669498618201132001923699185460964342660192651091876304770860869325074123403451822979174341382079013441974767419991661797508685552983157295009402922098035323686401888425006038320712525312245792694454805543672798980740862898863429497687301491682708455466636722423047322192549944053520465511561231705509046328587145745020096747215983719110298290639233326394713659797902352944441142052652010807244648941227430538186340417520670230578706895958206909216285820765448226490746768323820700361536424280522682482128560585093473108132334730139717635834720575850584501319940788632604453520782011890814349153579866124988231692665656907671088486848795301269114192258612036343811632328246647690730197481277832001150124293611406668114879197101315120322777628967902205487833833713959869062961508102709773088849499289479291528725472958497269922868095308242117869927736067745245308942325755514013244160692862240323517142759420949844709542131030042380859839108735506791413541285619050789993115643173776887294072086677924969668099098641172640396140734544926059348095598250618747736229743294820668495222178274615851009321242801800890702380377732138932290551760368547304478792786896872310526338739111103691242280595954513246060331864498339364896777650643164325200931230751291881113170485547016357496844480790651986017126679348687739654113142201290869595813849825558725292599552083971320634564405271252895266274684878799600456607677519407600479266394230440130581901231270396633215547629360002881183699282797104524581639236659165552608728067011343896373242296786938010807831803287668144103200612896972823322413888980861884649630487676504246927334887279637143586093677624692918971160476805671999760600741718138039330324009700001109670431567628801220281043684572089035245147397116901389732867496051244600443023547646942686542764114815695046176160751781363679855856166160147271024675838641280857402626048458665370123606702417836144600458653468314102986325763478587280335199591690863687618354650603888246780645147826409053629755603845393294826988498126739087054666044078835331230795200087695856640988677281330328901724237158036929853096361896982595760182058505942949730124631472871991165981399167793071825118090025603109641974956339228223452023279338050204856556590168585995057436062452895816882628891870164148484682949883265785307047480978023132726910465749206873823299213816242878671357290389885371912303944809796915931958479137232372709957382169478453452222908217814908509951679511247212052446949582800926075316804790211193379826077722211798405207648628692048314797314651786228566762141796630150120983195727022192627627632143454296047885950215785063684232776995536075935974657830804268299447401699637863690888344736991889076821419684392089952886586315532333377778642926799743705174757342212110651194420444414975995246830353806855720672110407884330933102900759240979146889089867864557453991822305859022471135727767951778738467691783346426750260587259071361466739232486910150949604318542206186033326378761520774822529406926205261408412525196651766019343215731046672099265978908184996490468869367944015864570870951089200659789909860700388206355169378602366982759861814518613316975616532611411408192645482247806558333917897209377674184342310505288098736884874346874656448482681052607787907602491823111403698669345656305370092431182030095994855725362853763590756488536404845513936250881790235470683681624194617040661830068032407960119003673003606984987951231952900414240059267575043517670317840706249722217566006903957189345940122890878992524445616550970421455604195139311151674528991803622331017434456647693347273622466156989882446358204197124490101419765832304640128385725390001470562178181002152337873936785183118900231297836565732165643775945567166843517981529672260835989927341706746340442491753000383545508975627477234897082029214639323398213100860188047695217603263950168744582263298922928258776170872369206357832348241528264550069421139736780652122343228282423247203859760096491908166688068885555961068150045739372496162360848379622481260517723133081167598754458987110722645968120754135323753903218025974398993580433113786032902442730933843708619542512956195083742577045593820982697174448457165367397845611837308680224793545694579141580571108411811830998401236579298951640431078221228532633720673528201422090784867877060013428803047399798129456245039517770251728029297282692740221574501206428941495991917855089611339800807336068637970967129252288921279835538169654211613573852457986183900190404997372113968576961892013472070289976494699985626787861257493429481276997378244302803483135321979271299996597006393546435852130116153502892129199332359491278985386686873147862138027678322438250546841259122254602643794652434439620995499726017894578481487501787802464095128562380808923780517991478645232613377998160170912585870647862010717691550930777921305675856029373101067325693253802471236624932907008735780407220361105530609651482985656257878767444908647127075871873189600145130180259704927237560348737821952175043662777151629808775088107009630645730274935885530410180512849781182703088687376429147983565518188286388077841486085354424164563551808981836501079839553251608616027402287828389491174930821378343956916708730667913169180760638971363846727507060853710724242705837926167621128501561386641848036299658563937705280662695857613640664731884272532245811163764717215920558615773844090437499450671367453824895293386072998761298338706924319277469004244909730845413703873102121764903512521544503902216727233251465726921700790939814108036797326779834202560972042784698893524245082219588158347510992862279338184744619447248822953857506738951558742709682080331991279304489415615777616565716017262876480170274642579476993600038890632836646344905291647547711076276285726615146433222224419437120773840712468018672916168364654520575158797030821810220953684269440197994331219205593827603318647884136475185196796536476803819875228791454790983581281046046269133199386321667257677091181722649823987208644678453401230252753994950054273980080641270085428200952819955826215180689229939412922631238227867168747423971245076043160698048298900851041686804099412362427945839042119774152371936017813208553867672258015568333434418536854126109977908983564578085337672423963823310486193373382823042410857768223719004167321163073229363480075050823560795868908114011178025617461558901751436077069798304825818791091438368193336458292518118920054153651654853186145393028561080468898404947420424575362453826910254185012972124834832487779013996131290895066097148395094998285567648937472117648064141703300958958853853405298417083974039953370669720414272364940837978577339356971019192167023194062141650369400787919531666701923887570953897250894558368477834899545239314098936140533431993562931483423714725669097101081321547022887869561144260489441700279882649139352986501637571349632273687837258690671428868408882904563549224785095963601727928824711604842607359087935065423893191603357309226129966330858036740024373554482151011280702414478940554463947559003892660564275149431421225659148422084950162050798423323440103432940938771330106140298561619706536684667269291648451141755973667128916807576609431828006468867156988402027241625205806247193776590007948553150283017974831824332268204049691893855470562859405214203300394739945997048616764754180217240146856146436686208339123669074679194448856129647910106071180224363002834275118306345383021653283148934956887218865621450835011580779805874370122609145545748794405351476514191208071969651579159797741281468454674443959847527572843646050104311187334974203121931291848316448555138468184266377628401517535046364726193410552871775234538270551186882218498960321366343945838171659289098557044391089245010302177936165662292233780900825769911121426380894893429994780572972182448030896421829572739985786169204426036177444687215875971723336582140846789988949775579711106214381594066857323690109416046065268552674437469462702178706711661413692988641162448660572242610141103200078374333557684543763504420210248009723119964815006769815964366876770556995981027515661225530101631332866267311460758943112509227181336794225363359202357945943238244557942252182051494157508139632152068494187878421857689814935203570197040340310675949804721829939691934542381911275122850588761844113929507926822247938926686158541813936255977016761654824700122499783806046165349133632202270200077309899934645965649980770412375848678788248618102676251834524676840308351558839184940819625742628749211130218496011775223054347875913239030723341649067837345262755594869531544863014919437966678996244531085596417247337111413699876609939945925033325269316731617966677776346913392299012456467293914725629804444149150316990784431601019620912723148914386663168121147626139284167485917320172978425649303729663181161548854719997642702357145994513853473662222118169498283648435342782298655022059143632031095928463443860219119706196159764415267135632734375292738984529446516531421783163113587235944590565066075516159360408603634700114134033877313245952717914877936349656359650819030169125034962858490972565720649288374925919521124944338981752499536537147712301359682931736123740889652854644974431221467224237862718927358490416639003485827357107943976654039084771727699721497340140001536291028630455284225056659665497514139629337767226129390463820675219687099669250334844992953009337423424801000607030625560555582577785862786252112475148476257022185810624919742765318398032703168155064710267574431763458348871397881376962843885352872631821058933605349021393431147511995652665646805444271416153124953991317551596086005770374758114681998325617566562242572937150324187601030036178294813508233557224906643726036718918827085563116242011955025633517316136138834545716254502753583158801847418764866272782848678762743947756567597916901387822228422408263666696571718206427980017196687034874634408268146165827159532238059025082920950323271212089994880509468202493252321412528345037730657156359519551833722482084328571144894690622492404397777671636301643361135546024576395758509935240292809135848659044421109561373932816062498269959050018323247805048154789121239295197188493409221165178128342584409808826739564905908253635966601654191090044094803332719824302235243673906118027799819178868601713970631966513878907803229450616284903282557462114243102568161777039769836311707300880019336781583213432599242168724640660078635718152887151151716659796184001381315055784183154963068544212499311557721993891257732658924295903959921589182923669625905466418283217064728120712679656117672027929544616621389352694782747045961970454841686095256917937024684893215054699629106491465297820332872382411591384966910026483141751895292459740884761984383560702181280171928296205649377249719165300492311655933200593037727839120984558179699324304172982781624781751598314901842622458673788691520058360055776326096704521689495343869190333303845687858981766606978473468568036429492679885103806627571059784266968981446996222477766217120874892591953199035849078782978785322372389288879992208872899336127779027447219180068118743794179826556607871670220089469133833368849144473542768688901898301579981000551282984931611992907891043751559858789899019163346950074960869501019092407323388723730834002804759229742145509173451491620783786217437062488047801258202931237161197660377445772399782993945915447624870893125194709892595895697845207048382057876361372835865938422780700429898857458705083653821605018882675198913225114375318583654163481050826067537484417627184521441388964693006011013266103250028748728904867985766107067520349754277280381689175592365075201640039457188823928643773939789115665246845603339123151565621665591468076820697104439899656148167640307220605120424501023073499545813574444166637262516456827177449038418562045663113833775527789740648139950217391883528389256894883335160220019880753734943547754420509425063758170316013687216490113574084864505457970247899430937617597651495969025063564821485718798855801617832867713672100805598538937693997430775525417654922157979010997231096262053521572489328865125193586780824669872297831741788578207628093918421489398711338808593112954372150738837259177672185983036691637547911906025249558774991988407382357200590248354966058775725672943521454575480274224485764990591817440550725028967288844251621722930599997329283873450530684251762801304163217331100258521937066453918134026936707363587678011352424174660757232716581562308056076569305134661617659362315138874910685211921028916243658867306763526162884675403425880652309514584468139648939782278749434838216450517216008175278820143789357365393169408116382852043062335415663776458608644118928673251055463019974038305315883719264636649867156325762787321654562214407501496019559698207908584008431114633332802522927380739788227037177853969175560945093298508260007352091068446525943695849006530806431221194953577721349675748106338789321336335048683959286779938693938331224268731726195046498047678448711695962296262149793125493695294372151896701760332290834433297308611123570275398010111772495240440071106013695278048682642643165352092758047064970267087454599954299025999818112303391157504132691096259422129199629207402746541396299048227253069915058903128642173204566702967025796289227433983078322182199723699625888196233232304268075455106541992036066068695046859777289171956630741409743952910668110760831493932541993037782399341877783782622832625910843348740357969509676041000497180414605767013115804252725281317409334049312478221478565307761776475418600505234581744131334712207511135342941293595298861727583534414063283938005277561371725460869154825470418785739755173950440723121471803810363205564578454694054520384822500595985073257220933726196332904151135564688429359801806540022161383054760488612614039633954131074232932644275709760970260787551056703036325037855266462202951940797205269791385195960051700664298705143515980672648683563505126323262383424114975334270734940335116569023749906285137650480048586688664427466110668684975117918612599676104654569282222912397314848166405977496009934904982014203042078147780501954844054706779033863358396770796835125253642401288733317876286755050652086750699724494601958320543755761445386062071070571840516238231821818636934248930895082252725734735148688282448476688234023532588669458181287817576630004254206932398376565596626467872871702658427203453897169247983154891736469954534542397825533749418129439146263916227105538619132959310936560007838364033392907876099521897125728480288103165451336502110563354311916942215644910126982425781063932376529358338513534218339554666897998096361726469220580852855530573128013145085653665473687480141916019084052014973331904954235617093949684710200859934752008750499415829679031821149426012371981318314019006235756646534810920607020122759177312963854628823162497974824284247087189397038918858915010773348498797998134812528057991101002470650993208871518262873546164785922085864933956019520558261800275199467085715616941867215516545872176776781122204475878965570062248434000815287143714762066712023295792755252830691917628686699013967707761907659611561232995750895124716996955966150389064335822490939151493105692721258796027117213661188038162863868335131352416853246918016982842315367077349800048384077856077517039275579316435421751756644321307893591853680268372976595607923820603580630394439847173253640328234904702368308468229833215660481933565739535940614651074624656385802745291888912476192089364072794250554192835925803721676407848609036706950391104037765417157643407384142785639125950017791413401609765012424526475476697310974901400347976408766671264874328261627953377864988049511607680516889354663497685855118254496370128166006534469972424437276778525783788067075137025413100742847464065593425936758997717213970032561046331651166226790196066834413711285891627854550791432548000781724793380681335773281044977797910652103910563798884244548329403454161325411554512052277978554949651361823737634229365057029968692378066523009278547912577199184259808524164263575950503465102568705177457780320179660760564870682633951128725161529012223121479171384816045357469117274445078535127804827190820755999218795747630205767971196115338393426511929346249049265148299284292484860280604861279595872650311151053891376685192440538886525272093537302000588612742878972999344865114321568989977265635079774074288610062962550363146175631773802448750623915382878339188200628235641987477544896402568914378138346736137911257392473064932768909161865098550209236814328516058148269149659951631406682105145744441659062570299657853268039311669448307554510003740988516731422302089202452646618377035785685819977223697335893861361577852888392319254157166926074187693678715645759435965888924892171114985306010809722065441450919561501736515071954921621796823607698957474076129985795219863509908760551738726886122091718581013433628888341474020980718934561131066318038527093557393009961209052486613881767298419850278335648736308763306780100749088650073432676623989260975186954064840979826632766462627828629574694174975915785866321149957753479921106147598019605835089125059479010251111317849437757206634557979080508279672803504522114562911633897513624067837352533155053197669685482993319877304491461609994416887053267318388329967034799653581804845686123899093969626828802037793258721772839181802463311709054327489830419371438858167638765180418319452823569290313615787188754316533875051596249414479180934030096084785606257523670150933315931573540382897199961803919063651177106731264736741094378402214867392774427453589004863163180405655576868250275318249607791913871399485066693340491247065363485799901498922450447771758765352435993969558989399977678442758624831992910431882940937019725577928364569357538402680600243017603943095017662077032566955021369141048977177984897318228204772964892820035606385502566254923890458606542691306245424872849796409249592382569948469510440681808239145226989681107163715323488796360300072825407253006249513077263797470682628470862340168453038799986656951209545192069941894008676675114249471141964976539084548570023491116176431539844315664244794815615788951135637867736977003463898499525621345614535623034734310485358658654172980398578092915097259340051793706466175920683074801930592806204043676506300021239897149648483143599436272365124379535191678077994872974168882711623187046163990186111701102240020349389802126923465886992821246123574077645632924870086905602988453622931131393214598938790898573469328937809952571197431146255626998446955476920578872689299672167680367157409707997333969556941942485564716593717147426812353426188815821665156693073546459956357597579505688014888427668210481369106245396459946292255532462769519281499410973129827215181139555320610351974150294738478368572036663915885207048453266612207436169041879216602029220071075890707835912026369333184090136913266815679684013944970120701707045730312132327565941255755924993967991433754779016848793340515842787529392052809450632930195567960647701582456870101499673773829127343032491493802211100729786812846489458155900046887988034205689590923867111541949173197487578691596046266139223065902243375417027087712222801030632581233593404634607826293340410830709603601527122625703576483749998309811814134026803380288470203387447062557745915223883201700392864583410071110895970696557103748887035822578219158787626170116196875990111620484645765491156166621565198290244550333147157316568481336642620172731751661238754531900418101399352453330821559916674818766295578627011732223622078225051834141090455661249152759231243857841512626655902188260651871263258190273264823720478600472970009561047221034049956649261877548283702370152332310093614108386793853054292333153319169981768112838807136549494526181374532706598822435760589616610644748724493578422061434773498307458912604727810323082063307089587193495003759978670359634639143237654381733000462466841600325786286051522191652323056071192043567478566295232888513322439548980971940973550227218979883569659116663539316947886680776949002617819837237365159683307907626586142965603396195868243293580831545647779293826287441178000882234908978290932919426274821868141451990896349737302396135476107498443789946535790623317710479089515585501276916211091468278339255944094166896144681692232404564082507323781034801268814528686433665131073007138951565252740884669055587789577227449107336437754481707069072066278040682480878866013688399948438240886830586614419577308482249611062858325416836775663810255441033035745226328240974734148617013791293013678748813393297199572543039484131066962994892833203872833127273933655495507446013067000087984498140795994959927405366088508448660103520718883667676725448460365757283087996259712784278553376721598573621897572773512784927801498473253132578577682762893115206061410603571717294761737465775433057730010338450610271629780291433682330907210017462096269393988916318992720643976822484671618124851641009249300893812786273486453781550957051109819718999929633792416535662027993759138232105626663925027788855049752821504627824529984965888694647110439009452606535141495487406392943536804377392533972824519887341073053285565851388109097544836677747197287903784454913397808795277326571002127622028657165418899427929637924481077217925062241319848979239012701492726205840182844741263550389390724436946792465121505634579742324581982148044602711095466862755542611444306445809788883183930477064804635633673107159087106868351168719342177540968315627552210751394569938667030096723832694855238278429950474877160196309986562530198714493447096443066987019230092804811264969035674621706442320468241742652127329453965946649644231744764877232987506426930711327446879081134228994769868733817377888566657629601987445883819490739383398463957065666574098287874367108062376984421137421924228564330354862403176386485358829303203239946739382804257476075367785794412908850999809892266192423188049036265957194339195269758867586339975478336707833890972545823369617617489982207998354840994438156812975010769289527406702966049533504780422209797726732255804439180939883847850608283609809666876079446563554669870454471442757637236009144778586682383021967362395125996279853357747991168896461121056952025936755980886311442302339937112884902481707304067683093760866551209387736398381194902712831278329570819232018331615296375131486992554182106476444243344612007243022362117356658292129846601855463617577534070111842496015316888384893722657781256471552775744241075705373883626404048615418381135178680206343788506038566182750990849987264847770831890243098834347400043515704301345816442303958871603381968682741242600972968710618714607017822974369002988786120564593394463238369294802715671356618117086879275314299429775295727461339848544606545178986805506090876496602359516763715679717937024877398303047022960170505753733934842381420684984466149409599332595032722874028042095284030949334958898060123070248646740564247412466796245328741207935817551394082601847665914921138589803303176092907094718103817751207959026297494134589885321055020948162280123066909191958592132513349992528839932541791699741729918010940603377003369810526070739108575813319107679622872957816076159550031003196481795836997077591948847161716645092680631940651073446545767510292606590299876386476739677495848044738605001705036925463732799754310491685607682919574222578254916391007666965989529189982844720652955782653206350730982175016199550102315203194435866540245387180898898992442945833447194514610814847942183359587391992843323342135725188896292466836596784685352921644338683992101690723240546879820304592649049862537983392083374710004489082753309607510186612376346410802285879481512576916775325721595626314575076365651123562580711185125480012268569223124816851167452425918608053540161294788986296768510992407429255347430770037229966364482385652415160072479883839481172148665137963820905970823606993275389188188849056026654675471333180898569861461682804661416588048989428899704252654244514000430249615089815400709720531636120279482491306191169550618483877348985621299562962684227331562643363981074364376481690685990773077248307004289209802937457094595333791885214531014120378565291174009849571365186493003030601676259577745132978977892943394905588708410883048717531087036338708866432239786228146766633382539837109528393661287434821746271203666398902886361309566565406461117844529168510237302938635506667895251724125733997016516652723646960557221416410654103109096114338769779094902575424142699082216686097966004698499077632923520317593865928026433686494577466233345171360345668766461803425817907736209656194967414625049404163528305778268885288390485524667274910905491075228043965324039092362716321212251663700685803026984325309193585861671742646761822021091875342535399641513621447484940414669622414837935471860330646003426215262374190522656935610438821729155090256981419556575761237198658635157476582987584025002193116909882264188697884889348538656950736922395928125529223752427729803628608901745747324791826746760126883818156478598439857551211188493783844251923641409101315953806186647558506427635478827553948391646815765370366968999912782932213069277251165669826551048152657049800344917514522304443089734646443365071980235123600707675864927592153387906559565502230675333232565151966301476997772252013604217023981774047615338119824110614721253920869571383661958822231828598799385773836472569942860666263167626243871220935348537976080804306406850192725363041921498584750099545466739228308344800604897776789229491280078654177692864840750646099066692379057977782520075419795208847135425706388297896313984103555638510397178071748668328841452446384687077376187163428664935259253106502242456418315739157383418786396893550802482546566597972505634652998172682306032617101834174713488052475370410128100583664074933167684323887160242293133565928729683008094217449721343202023569284373442394968385278743934991496718386407685297082764372503026363800493217858157010961034280052090956722482419003738189860391938428407959183467823176682777819545421875828660607717758498745073364228314910967316680654614595338052637762659208426150487243291364559938037874434937347812095327269878565896326835108632286885967945083940715760257475643102029245704134418486820746761873078139152349234364890152072159118212495445175339392052567895718306965508258665429464702257470611804810901147235783319365017357147308325433981874887503029515351836380127516419853881375729840846196242759774825540498951111268110660694724816356324620194791663331388726874396385156083140979544300999941806665422408520409471912942091245302065175638122164021063446094868851854951927922239919849055395982506300729332702819978489036073673839190807029845892177914366107326456462119337296084935647662935865472521636975978671085143128809772134648207864972688051746723891649608951277950715761772982724937739700540158347402843571667560711199597940171080997374591396255175882583295474857991693695673457981204467329992272040687026653805024329250117480082398693635710570614241216564403352548108285626565333125507897078763849817108373084029453090440311876121127520191896180927983233867250104887461203978420090117608708369740225144641775410879765665130182216384212066646314058170584097026756475337624428501678653302715248908910677086841534152831445996079849124953452428862949166452948768882454764270929083273770394189151722342659499368449828966636743722501105047770622626530489872117919280661504388260578753440210047060273855358706232855593027180172550445135656886827787175664681735355221383869307884197123460942680621722714408205722233403247939056874604811878936712248055886746874278853586364521201043314703906665424124495870153810478971887341366732462600524931365333363971380523176747051618442823334660400647600026898285031173135556822682658045260517144412402974142600430023129895807579202860408580218820699122803758726682008025397085157833740181592434066747980450549465306752644842637408786734107985830470270649271523521647871011615547648030759720710762627815565946246189936277862778626048476222971895196348245002595742488571570548070749681004535814930769311218969173923027171454600324377260088558109798173392357379644715387727736401456898961967604976324407758336437666208367612933285493424443851450974650921813315940180258585058963597807501893845794682971226129094994712994891445642657218207622792851612216715156783627772641163717759230014863687157074250250017481020893845441174422109257662487047801899276270636392142430872596459076397007135622404426253560896999938765371915739409888019863143293205047871992244059227445384687430756912573050462431315507701049065003637530772086078618772704489924127820967509976572107994842952834210680886822935437097026336937800548100111434561552287208540190184058449188982042958223822516712402363533429344235209947902719941412179299843987851657023859650369093968055551718578143226661627273826685546640994518678541542572871800843809245722596008745337220058265456177809334589483087848320407653298617901113944539229521015107355822183323962110024537449501942696785197599869944889511298328433887565057762451953509364742420279815629968793324640265487843769991601824914071747950780792751312397591238474715780553685795608844412431613714908457140551364800058885981220015700270177971982370460796356207706515034826011686387484888807209173446330698531438200756821058781826371038546117937556536178198197013543616668911956047687630800502330258502665901462737177566275513574654146504380296638752051814748856618489916463493232126706647814658034399571175345576089182983157416468731407206053951770828148917595265108245344919011536083055040743294120207439491812578266887119806360350142350363738725437273888514615559589113917755901043766028897888079831274150393067249927811112821542943202695934267808602865050992629480642193486436357838869147492962434790928883949997865335149928138735619666676584437883299876382344950396428277241558516546381665377840267508638128425048969478451973655811053329742468141577320154168081505458341803798238086419258818243338116057600950846530112601796245196485499801989075610409055558020180405584251736213166854860688457668284769162320233430547402824295102003793667638836630372635947630707086208938984619000311280393485715571243261289103770014269870502973947536516866251764402524680933734209804904060632569048164706457580142988436273569426301777890790128574398739256298654133697353075897455807386522276700192615997751342483513909395931070754332350946450583853419901109023883412495286848145063978746315871273128628457287492288693274013178543945475550274887755608986418980738371807875297172143799008814385921179153823863547299501173552247319025132560506700082308929160912742632266559334684073222692361762995481953623365631414641838878204601755439268527561149883676654979638686803057009783510096201468975135307510241601324777873276614125848508814694994002996366674253994365652847168810881941126149547636256824270300629014237046037754541628774065052030970963119314302010497645385802359875510229932544092102418147851496125608954576823885701375053534745300827959668216116241715446021445670397285366478351622872146721942967927227957489634947401658994336697563663626573366202507289530531290858211666406826057369688565790351517801856914802132839341956867178854329853939259113934381651623878227466980806345553297900651839238695339842011165281027510370967910439554064665116253151418890573497480926342700879396082916092302698837326283868502741934233409373867998274944608219268689353915937659767526767797286868337843056010889953991968159085428739340954538079416129083675441644735311041572004200154730004285249707095935934643359805772068567301321406953108687414313742774557025358846528044295837668055724534457528024370643105123982413410674373793754252720572624258621843266132005477450505268405647969809892428950674886604106449431736774371313340678284905247227693168481773843317067873103832485592408804660112355004240525760911852358690524332044327778614551636292746907925817066014598377411202010927960693180347158187204683981425862992206672915118202977604228625557695392806413246492488418889620823067200423902380593584661029906265198914940007371496313231695871255723141909312361473833076888430762574902546148667579004524227060577045066534815652680489424979285427858046945639097325147244221458952080611947138221182893155681067730161726488911379979480567930146213398623698631475978037071501265826584918602727172971614918434686938715034806123359061810948536111640633381894876424874022321924583065717082279761396945868939445079324376955289525391082780586111237821932077411880437149160983351735351978681550275605162424554470211309991733410916528817360208696501740454032788946809632726511071646239409886293768642580648042492777527731956937191489607278028225307715352438682559904327211368378665154656506319663111114323260138889005573506469111358210950435240265453748086427574401303676892920489409390547259275043023917775301825846580921581176076606503221617013852933949838172450223992231860166460187126991206043066819433088830601175303626059973922896581470429862607118460637035552120674395518739019854608611469716091853943176302499968794547322289762387278638140830947250024204884394076445867254944677486532002000415867357561319856730041257021574459109742150359590832515798724927674995372736846747180927920279211520788848132360690177030481943716291578335553994455184043714513426355063978521499703427298085404476682944030355881597171631725912558697978884109567442795542809142757374749501207727388024223806832323203054156655983858817807910618589401069216624932107035658797488613997797393651188457940808734153592636472711501717496440979683099667689885439813467649262856835635692962239311358958987878757626790306519447310672597011525872032032134219339936156896621022139280063056968510228855859512445907081752551244265330233228505104223257395899122298983492338759401850926732911557867463814284446555326073827096303191142890089933962853909490378787712127636898857889329993634911853745329939596839705950760746309167983710373827854882185063367611102071494781177713961672363819412578952890349423549576280670265995850411221639231695288825431173748395704021684656953388636961051595791946727509904692872428228862709185169421788341768173914199237395170521716986555641842218403059647841588565092219320805268719970040237213807245063765358423025680723305665604966427126227964537175932556083447029687772335270139667946603956403567293956753128130476928654539286597628251970750680139186487412317316890014348259967296614350703832880032183189371397375774748803194226183920273082902102285111067166261259691286597507875721358885629640608743841238493940933785363089494340136425392269400110309840417561695379962970233453724917249693096886664403728869351419209333845985751938581351562284923733559446727008546114020843705369182019706071068343009565217570978501371974827021747186015279357748399364692325191958626737746752831749652396878430922651151456296388551308455172989319840481972520520469724825262085509989746164436343214010658703715812202457066119182185175084363249321330895510480050003056469432261657339165775752646672429742752457210421836521364483892684484531120424162156078585683576148522972369087693492072513394430828158452915228732589036312632601349965702781859363321593878999342629721747731477942114558038047752035255546668733857437950045859085014652344502144768806630404827252426153417446338125383140208844956848973872606799668099450367508036453566729217151419332344706753956068453263852389808889126869583847132724090219506923936697600017479885184851793837160681764034552329631719141791170509850999690063443556317765364110460512395539859438937282304983470994256365002288814543520849218707622509152080332330982024359364619672252383102867264589137940675058047522806247858404389394070489719457662182946808700855862290489689241093046902208862724079963629283279720043108809752685500226995017450603965750059884582673690956817520992407996681497785297279516205561793178078505962869287147625714157326188334527463137102352931983407964520112335808584037542471159326249184120796104273674128066382687977167239479841401583801641121302447992613154067171816599938857847204355564529944155298135244534030569173708579518549273141472927755437796513696889876532137190273304427423931539223752921036031634208631749496852290169140847863938678401453025460805584476966353253156617672222865562425238912982678620416534516675894099208006545233801746739536839893437087023681226825506966915582192443016808994393241968181204963932586085664965585976547845469001041632249097943672344846064679635808739507474207689689673798540949220497022737216122745195827136356865635933755753385433712949126238945481203341975501515474601939116869808943888568806839375794834282316750181674148251213705348986555229678550236147859512804517295531496442055268956649876217147678215265766084313198965007232605281057546958494319590163639424916511401945704465645295048554878705163527630948905914974306768231705883111028697668662263846180165770206700806830514934949242638681670488015917371111142763998358658972841671749476804677348847361061289421857734798940110148309152924292115318790582026203036831954759043717614781053541584114138291907526963241009426625958471618919780069028654021934622231525947578549888704607691718450626541257075471909134718764854137992658239047295120609556774606165129316811577164776199283514382631112637001252052424970940317123991689818189955365001645893146449029369281000626930320765593616847649035383653103224619300793023279001991475090849482056687642058020226251022213389877771720457640765671569598789170313564305205811001267844967846035493211051180739912202560619830433146344084900091676233906708100566368697575582388838771784568574129861937018152623418372165214239351869739543515200486549562964209722719427943201317007970759536582305056059179071067416820480270724946361000996139820690338177356630588900827950595061604635212875372319564963398988886453753254844081226547758459621889925293813849736366234703024620827575371031474179541309977016484856255706446597150531484526700041872567982950511748288009232762064901439265050159264404159143141603461648540388191895893924193822453738746231222257641395379542200773136645042736978269966992898253412881989151133785168261341324557570613361962460604495711942515406008230870225556944604528001052449377201360018828059073426606939919509031071057684932247117706587652278681750705962894478809247835969180922513320878533167569265412647817176888156282191826482126009216846573289875596130158643422574097729333719191910855332643222851847572183415828584551281631351530617264085048757354804432758297192827430125193768549750122493923525202021171484780463209181430897466744202354529075969706261591063813197190568544712607581798604955640281629298996196406014257192143654493292760516473350150103891192020355634816293583801097712293051588171478195189871055771765651654524594634492390324481585263849542590106009803398213748491409533529060717304128100930217626301511777970448815346023082005108190350793519561364569549448458292270118640945286904485612882035216533179204438400630338465105305262860657840845565927587424546525077655936581638577254191517124015793805641744317259634879054713232619556582791110563010399744516562260929231976785390250102378047767367239736741706606210822445812863894165907258299433282583011197930633862473284756097415784443002046286842089774412548055195172043086945805582414468849567266051708650997199859695612333974935079792782530720288289427619572131043726011997160070273736996537388713641813109170353689091496038433779532144371107728789854982309767111032853366215928033044180589998239671823848233312349628053927967923479371045557978546968305874271090877989390464821417158268263554257776148526598823639204864244976233017439380761075600873803988788589971134582857316956291085428496635252546420684595018306347359938276506410649513492500442854980702194188062708789139287623638038023409686328594885552598305572632708621317123311402048317075353099282064204711120789904628736613775123902330172329076156109830455604803072095063372722846573028310809813039168816891650742515501917918990484115162000452294237203851820209385776079323652356866180905497869284226074654926054343993193740084184302374375029616685691286334427490875980595160489186396870230078063121944772068955978107809585588225637315449187953582379987838585602923729886088301412826049416045732561412367203510177662775041217420458310627076665526341323255029335428561139125206158921079638176917205674561619762355992625615284508027940868817716202040109655746193726425994394080503949628971641697621764296045408114154348589546646901623154245055032037083186265555194771412381891724391350448521606516544891046249862183473010965415435560354050461167652329373294717405068408149118336695588059457235489548884154673075324616767853618526981063375014489341518535661805147234638273003026206313233321951163963958493159658714349172820210824852342415333969386912249829578670255485691377105427320178320685058335906701629420373778491846818200842327026172669987344718970649108112669403867106222592271549206177174930468604385012327035167875229463551941599853273285932211006074901698952837252512964747197783871599242095190248691206406202339842170859885698975642591760081578037340906016539319650830817414503275308074750579714315304590495597876507830963552209177663824770191073731958549187397874588512599458228728096614582823850251147197161050629847882649393351883966949855248461562370663230637271450326109024366231703047468681073590352299926754575089607396726867215573823114974191797321036086305806250755543552674158005931883962902041244598783739049121146293496891065690852136610389929746257093231231967323294085933915170277327160071858103956382725448149147425712888891819791235937384004931341736378265036343932345856428145616993599068289190644904364267405127249125435731201551179481238173056721102432372145812446490486986824569025670645588776917940241527575024651201139662277133189445539962153287894204378422388552094530589362274101199236409681147432108660442753984637549070715587195663299080911760306113652173193927930741006269125243255499252672655312457579706050494082092682272684848164290325309426749961385411076990262520474557766357318534192094547165501794559656958940554054975956477631878403583213364861359169808453901270062098103774585888636717094004327500109190456748133762415819680577185565307939098800941991669874791621792662744800361672843808606941414545254728073853383286171682036167698296903378714386679821185068796167646359262478990215781895174349835497553305349180114459966735146162402147223579612478178900546330730542872986311165545519630316148645681944838249969667398235064656151812410213618297508964051232023458235840499011309860974852083114345004383234605801497300488839075089486066299389934424969731881967025837898684081312400984606094715957765304547941441716728595965792778257791645027059705982796886307785418275616831873616091023982350736019509987337690338146466901941570918932610362956254276109614968320235551583048978395127558804249772883207741969233092674800233722736780806831738295649915741356771526005005875367705616177909081736287733352040867086870513656151650716251461001854823532814299030372718109863185410485612843079914863000580306141803160452488155823528295413423934457064071106314054813274272849571132742330693623620678101033937103040937627308170246788448420970633627350037000168443374533989510522612222908289780136902978271458970261805796094354092422979376230521249691647957414473964374616590980222029785268145607731563020388282736241670802114104805736896041602563274488064681596437903823595354222075524196006917626466145235585915890321673506756851212097611172635567414468679740408996247186315907471893758992084486832429664273925206557230748897574530640055793691895911273303881100991162464750291541610129144006550800478447759871532643193870077455761184086286919068936023215030830301807871553109871287581852768421103609522544668196739853816753090465388798140865965333240803436941371132262024938229966561757708385833579685483457800624360270669149677100019190520662326668216258807071620428090988305508452694397831096322349141996607917539907814375469622504567839613902541940985605331924893822345767673957143347499986137318863942466292926226869005211962653969286308827354469418442960398051065829071858791263049972567542314431040231661296758097020442163095878155251833524254258989283824316772027109151413960936694629189457017514388234594881423823838985573472284666539624054167056319425576423342220764981804020050857747854091297459913687742975518414040164311967132286690583030239418611177311472649959752565930121423873877349825894887985629868273635712326251296980705590227142283660525866091873217252717817712746524188845408474654376636446454258310158238425120883740877879450659265950021074905722169147912421322684336407806383949120224623923678716581105462738038567556223683039571099914820880808911532062036597525266656775511700408912284909851424259813907984323071205044620858292769738225049598755360481954610777727698917504571454467270228020626692751064833854273769750865989027669999303248858171700568066552044432588947237916994949860166347327705010217097369354852698711407184761730018527956427689169497206716761046570485260159152078280534290066933995123897349065008847335339611867833285812149382262968630327102055333155900071328033375765736641550321106603430581640096605261781082641432088121992371538264311372497462083992109331857209465878158333064388063648340674129779460728122597135854286899077420922849799959534346293663080450913911245124049902874358750959355674328718364210240532211365582885007121826601386440327788826388229875858432113750158884381693915305360544803714044903047033425528729796162992833818195148775599906735937185994190507006924009052254852175703622786765078318046786156157318164496539015450889447970895488077322704292412280777624136161279373099011392210888982403754250652759251196127098500781847895954934666365438214910173570196166002006479689517294693244547035852526546318060588943260572308686231650156063016621309818737518236840424844536314456545101975820568753609091125715804350381674226165056253550104192377732754010314148475041625491978174562602743356133536860061519623575280374821877886169336508028773126409269844894718057719456199808737906071368062244430684904669684564327690750465073596103117184254574643215935994930160726577998829823397842367315138596441663084766244332516865508374877956312279031978748305916222458542448873185650698044957213723943005473179173457299097042584579169002949052883126781701062496659082256284074272130650534271785234664819031098734378125593734628097573248549086807928680119650620796979223813435771870371959957684820005670019579978590089732083148207754412441149783484893335070580724752600075902444771495969431596455915807522496339125388284982176961717500505251540654146262013522861818273799811086017979683560179512016802806562401568743708668638236174789121661814255039918607514056617270320174019997869600380787764098878598638147852796571269764958605432973045543014356201391795153951031182418937844270627183223654311512334411835666187414442983681057588241211837305791924854442078501780192949795583416261802733282636064567657743292702569614348889359913548936241831020692017804231665530565434768747944879143756937494810896469630730638671084919161881818246888342175963974622729120634003235996574506061449112755368314275351199798015163417454462792265609382064114796082336099158540677954166056021941024305949783461071279199627819595873946151312166308710438590455499443279703288354164415580268311923017386990782488698855556925292915623268152807958843462630707201135782351678678190180594572266213588530526152024594667146531807021382924909398348492222192119266886064215513226842747453615535627583687517665350035748178484277500068104768388181619948619592660379407948090576705966231960422804337027088186039009697244104099884638228365706057450230165799439313092591759433814685805211190291628907555294645177399857522765814868547897389553086355204511629957972333556663342407112696071037264422188323681315121955431228158798241985882497567602613427241045055143987480104093158223738491887711741383707481406879869209009585232375508401086281975787942972828518175503237339697004048674325294689297943411382030042375316720383559005993080556990842141958899536465909327388743769894748847022241242913370552292323868606532329714922874760571566323342507345163324092645593382617355605635614567836534658074510511740746691649223181534158527703942017113373568667408339395998612305418069965436036171136390608219733466384698872869272923390131433037229053101159928772540534203577710424856279896801847239365460018261055684839513837234876099208688403681984290599534100448359520098837017537505592212418343573349027713382790215062508671303069726295761835829086701242032821088312764472090639708233257544269618457779588375496987366750161855921300443084455430674404598577037230841270940807945557082758374612678632559259925972365278069020740218648252692485215012747834008004524232366767668952624330673243346806957840024289473339271280828063798401242174689219026456088495331241208179676035094374155141387351686416877540635226475648439833696338004328096889108876448986690434450413303707904442490020074813568380392812818486362734269060076534736298391052053797522517986089855456287287254032336789458151001468084193556722053891273393481837829078929261859407594326599996492965479758945630209569582193008804295358224027483448621830220211578528865059952195492543660741950455885921621313751065070054875631812936633919179479822919464686181016600586787775100480471133763369154508700954156888142893675538681412481703058258421551917376274423793926953069126467879819943300068323041694833381374140824791916730360439058153332585463048013145270388357477089011416171540733339552996654027215208506190406790670186354110708183440819946358198525503611298417704482013169582330810407700444244251065651448969889762958828730450480701706060591160888898455662157281823023570532504950076113360404478321900757892324796632524797155652228399534897875347754211164259409099169688638855652876046094475248221892685349348650966763346450516280368766171876926972490829009699963647202782574887388222118086387142111440517195849827613409344280674413571034087753905804034478463927660938171882672144221801455672258263890535572901243482848352875195525223224885284756624326501172301102419478915352137565707167950422893869010728703412130802846322039804632054900625500555967696204502325524309762761428470783452192923170629807028289794081212772412471818290651115006633486417801169923396634833141114444223226505594997225347548647981078224837614198296598144362154291038063134723831032878048041350690527753064612038873700083177786538567185851025323573837469659574475211625143521101766665428709020589706545936117631782709204324027421069515322547318441721020433800721014414037807383080384300852297445145804695116940763150230823619486767944864961227715832713000375643572524360149547555011390131426221503948588222005170917179072734157005153806044265480431583605911206833690197151912404178061170232781063067408251601596340064374382023422144627909957265322439446370864328842577358530168713102554959312590685922899976414513850063171262112624715022522680780916979150446837260416049120701382039566201449083443618177778243212148407866296755516119578244998818775081848582224085848379832190461697919287347213825356460268203197906876702786466531713562141677545711027072753461828508601919436925361387427340074002831044952330655838866922083632655265928369032367541324983525696557691853782276461858760492940011640218096140995161742241629542042787875556074265632848865824931347830387166620665217492582223299279870385359961923328114026852603399801799586822329479796084613581816339242288685010841904011486833778103925504320190908430445741229054134618309956770568000141419326958892405976564382849042900785980530651574988091787614434957506158100560486733926343226335670257312364127746516217844535201806810311221736558259650332929745215703451973029469807475002553743750664995369024998949875133874185333250811339393859616079339878952245267722488990439403097139447413916946338037222525863015952773206438745312854587890139888823208077333507097082689738138020201323770580080713718752313295057638518810214527242332248537611272116671123985772708091588213253931984339992446150791681260570966918542943102619569616099524958341359096714672065989887719515364381483295753107337982707843502944250893748965786394551715636405360359808074954038187434668534122226103750629073621024992861552906901823652153130811745697244833592857565630808896671239574673761247327406253289003173784926850230043782268939802907785679851897450502317835601100080824623607157191493988213440989334541265273587277933869662055238650770074343114919302753984365366961632257053080034158347018959934892710397454151564490170310323554080477655284244213248103963183871308441363746922943012697917925288712591668234615916331519911417923201758942509249559421297761789787960763221251514368212910448208916699177227171847873458644747474242760908104957148980758841324065882694564945408329356064739597748154243104706580187123681426934825357285383452291290545925414847737850868651390961259627876653159655134971998427179865645156746285138427740188050999022139516865525448470803573139297732618876088102667776003132532481945338562762865349068891635287451470978726765487751409202878248194335806357274907612524098018692011593725510187359428228394575949122280868818378880607665305334289387149667443316693223760819047440066887487294578944853061334585921701838767962288357004522277422306453769787962978364564264096532687941828420737658864333832570818253133941338666610567801819025075957424108859068441561299749853757037198399815704622788393739760523546866671179503566915117951849035462481320892228844378156071767621692932889224883392316966108283955137784294434569074927133295500149156243984764057109506881840896990501815958398676907861480841305466254451251701125889157745094324521144113253654963538100823689899208067535982833887598218217112902256636964837840996552750167870449027006007307336850928493997417235280057847764752794072776515819825614106427735889558736527808569830963324049569795766072984456487182924076899862450377234084753500653029107950456091747140474402444272500373014545300345716643124248965113937832994400702864856377344909554142190795699573696610572272053687381126632147010892369906109410356675898577894246647975692216011362224407062591849357777397414423230414000011473691849999107883110430566352217943381940010734052964078103844954327728391785321179180262607742362901084719034045696045230126008382702907209664812280199006627357662348183967954267642970925577901628195901212547134736983974931003237941099453838215995010703051403638973115156566347079988340644069069805473313980025067669111049122601178360198265067151159956223057623471588727446950986006319622580538240894683788006141493804311456403395627077696394805835030634214244797296140138450052198000509492747193437486068324206238057307748022486237192660214162250707010847344160988227926213042063020697211292551175280360859065649728745569382034666098754208928357694582095069169688903128245834799971797114515633345731885478590626287488611973092005132773972342383899895032628511572632691371388782608011435357165037547669940450282554278090874431681664392605504228727693879005975457179432888502464075531111143027469857456411424306091271837510323977370005802212909017300496867630771144074034586149180101346498819781546411184625424047427236623278782949188115235422097426416877460520546867189912236585074815380207010714436588575256821855916924971913856061757322202983224357363102072485209270534169034185789974428026938246253194182802424408288645263229519198603117036924765987752428115048285922557175340223185518415771772574814234408927979515710208921737107298669746898513072408341712472757888474281889050751717085138251665384887200326479270904820558800546806182427420799711890357185183159921256216454010653710818614904273014721128703380914214627376882549361940837376321701535069193483423926006890091415751046155509983772153061909752342248327220733827349614937291408136007896770245586896942505873460218232387713906639674815618868558090995064506063718609587670308729232320757066810084278991410509730681165032158376789345135794513900811847627118857542364202218104637855292212803122692716981530801906276444154487434787461463969253886525056878759520240257522270286674860804495317968963926710949394340587495976877038046597873253781722941805266884270194559233158477490007866203849244199387381137987552408577043778525841012743682901609575695193406098874733328859207889152815424475252692547694858237443462547523124092816434756908733978291459099805207567858968204917727344831155401564467509779934842827935537589526193532987952791787918816867247923597559853892587327690515583205290075884688282635201744642683061050017446387757135987545361167468355455478801934153670733645105550479943595909233149932409482025125590886190871655044221986345188479776550513652259653071949650281709589404253760410776801397278454204541563372456040216353980218683647121920950722842005204870102994790333339804140355017652727586229248088365040046446776429241034593928462066792636654993899964027167752086393780158385089231180988767750866489885921526826051756698494497262410795855424198884070513603546610532214368486271564411990807019144473955341235707720592042159356417668269595641653043726225794914668519348749471360460214656624444559727431178711922353444140254151227505125543605847894084078800903164684829883476136475136321742879652789893276814159207886570629541605364800783315848569252084165465558454684096041708138428390689733698406764772180548566382600046641183883156607811791333494747712940529473863563582368861796020806368771085588744627662722554382361730162141731364632879087675129467053524695828862725787219839165347562085417358864962633730467429736992923509602040455243597188672608233065364360514251428309461503105711822307007018888757697690682107486053926550758166811061726497565553153099293353238538957228397881925023000813713936299778614506895625756321386982008762853987175904796259947651144971387729895812211378484000389147602393844418356309927044044467457143717340077936158436668281142424725495590363382354690610353669399524265463594870361300981572350547610848480476162927563485893840910553231664270080309452873526221528674549158720602007567728706442227870512848656543794431977121430968576337453495977093962241313395652153856135393684121682687851663235117853357050894844619773684297408235434807193775222977640514768901545964710861440407209983515287888674789801165009575364878261586069224810610067857918978154922363916652994491407522547672411299700732663998976937336035839203771515351344625597424288844086611475600353646542865352292067514297336482574363940043703227255033072069435356790763111504893744449322218240841429623794598059127913251479146062241181986420310408340260182571735809185276901618459340233413826896299350828631070226571749731075335090731209039253299209008718258763210658264445680696279753804043435126660778264705221135238750292487597762447425265937040851605323274518956190257430385358950689487343442550584757473569644052588654015117303908549616940072449105708315811264337998525820301630530063167366189454738041288861181581338379949742773155884588887912626944066004568317930788971353145533684516450488327648338557343410092803879048126561545798348389910470877967620220123501068759519482889390405576655419682671705551325105916171016164482617576019241616311388179207325435662328371566883218835540539103743345975193533532677510000715187714813952756506885426397370453474290793582722220789543808975926944970582396360399767891345943055828134657514713286925099974878207219815667317961397052132688522450822945051227808687940926301609151708086612603217019267457493064497271180528606793287681225834626727502266161451153234039455327692574448223067979475301012739714417037291434015212684357408042934947004643477022608999240483516677994426702104853008516087017466074148240045345970378103693792384960640202538554381226017683677008341722433060915548335644873388546096428892514743510939215864228579807674818606296478617709094682758806079253158232141973286702097425108360481323170173226204066454898601782058438088741479518776557195059559344038680795097459144136114583948179736407784881738577296179250785208854332853123541506684183185153868732719243390877445277799287303488457261085089044844240196809716603811877175936827298995940002553935454307792976722164678695643040010611843124933481773915906941370627680085285946152147387128515072478056419105440577788437961742455583540838542644123556933508298078523198638492974846408657029517207869927645669652999418792879581944711626486923719115434085498087737493507300899498621769731279756166760549648503993159294267314611321163073857936488668289537895366371208017137550024446387119270462749645792593134166971830241573040723779589529954976225119278872426177183144926886404196621794366881385686731900019946938211410976593543484533111752308943965618824308047329405051259970881362858953859370447750059581190932382768488199705398562283892162629421950621685598116190380857504981552284627737788619163289573935419400628507402517808988661413210351086018106345712512938370495857981808026104871015195050550801066482966934332494993715651057595915324675785057121106548934268440092771422048086675869250697145504796141423202459606541503053113298672640667074771550545655268538977280551165743738731210295950923764900439294024854148312241321941793034448965896915555448613691952800269632295893837030863102691053608121225887872944296301497665408651211406676295102537922232252068718255750796750944270537931775153996011494655718712726584801333979763833140828324698974355700977717315678853396797363249057514939304983121692535375787074488654465382336406575297797622235202242135681968678892672024999304921588722424221090512078799847734339982545627982405986473857378275930375492776123627868138177022489754840178266526925951934607300172887779944973846718296285775272357665574714966203420010407949718232519038833376751592680843171560808624418090632887093274866027992754928770101013666929401627409657710396993170005032259909150008947737845407425183118411821493947499489489113724662118052411978176999277617083165493654428099960010431130293708877388873127530565981833693149699464530961543319144572290225046330827102807607434846221688063418946714452691795030499731999500632529141984386802138626762733642463892384429879704022979071962451107415968542035428582832125280702729253693338572540308192914857347277838169330397733342999905388226577673215698490053211898166258067720653510533940024073003912668853776747022220853637688744527535739738325406649607137354773376417939959556581296575974145101121493382093032510343507658728436546051121693650448778836369597311231340525280957279025013169152455504406159980073690355709218780121568900306223554729769212312953696813458541723302824227925727817802166966386709170738079687114012729513775897312623280606716559978797797709345531452469787137319934497925477469669811955393731828379020193663883291532167903201923278324867689092159155138605551397326809726206491707336751594351394799467542161189694192330671025274439389777162204944575612678410977568377357288700051538725596958879391443985021846934793672925880661350680606588430732933587178496375764078434357330353191633203593143744862685397342526009807590857756107764273616049689552411488347968246291450572368336997313215695350304220818874419327598129449334562808563759259912593193677291507270295029550813698550530028132487849417264514100592712970219024006271958901556278716883987792627506672711308885637496228188610528077373307053138195191804383278184718417124808673495990389392332552721786747788062616540525274573989800083618593318796678822672431768714947240213735703704743399371364685944827121329944236210783688691093169840724417621795366598807909129756014589446229069848185929944402212942506469478782250194306140861972794551316713004276441641832412981053993676878329623619524645027974595347696331190947993277212573287537829255328227732211672537373205024388754648105162069987821905092253546813484230862597805482235991265475268904540579077582545482776916225514962100434669375807047452445407323110917644493432929597093626850239711473335293907249780863933096332261793997946341376399348647959816032737819234901372409079819271157713243618397296323669971416884694054133965601625350123124520428513831126242207519371988884000266547085142611783343186077567137839483229143433230971196839594732756729940320281313584022653477439600615003224306022585269209956519608532436145885314843892930710897590232917250273033486583054654606734674073019607657921911487057451035724924764713710891665004763665595736473954853954470166716003152441455913535677234796223937315182693272996298191417986376956809745961150340722168861911016059437368772849385959502184597417043835299606039651195067908208813648263335662107674059516762811407332750440882885073481696034956017355625764935398810345680332256790843026655545104961572048952571732120211973125195847087239613438214158449382817624713479019275873564918348412940571134359258412689139621879459965678147092434725663722679191436723998231232297637573477198833610248811410957551393728692169577368932945854723235205121342601164614672088277308157266249766760251626053440641346432476289102112741466877612294641095740119507030389271915153377120719453748536701286893676697517121151244405345169105221581537844743576037887085933298637987871763478819398994430042527155201857271048768433189717995991048550314778671758145377919916306015132432627668417111664357120145500898824082466077031254281019304586777810977385069519184909054290264936887946663308713109853974916245154727670590168389126175345205836861581227065761845332503023105058816779706347430115823663964773690717718281301962509998163659177667348725592822550539359029153275234561423547405611290957053109525526553271020945403296579529978734320897104709830966819870572699167029865238906622228985104786857059115400448004300295682278223391219350879382110612163191428417846013538075175302451373774649305929842174068441870292090035077725061871011238444584937709446187863991301416704696721861107777822477391612803832124597435898159572739959016262506066072236735650064292093299471122374516810661642002153795680398560919105584688245771487437220883225096336977904248918468200393766156749474863311895057160455493012322195434808269194064766034158213238165017377143727145502764786999963588137183898586617649115666873123078367137328240188851480745372488646659690571107699499895660258767782418853419713209785856673830751889014586010179897520587200506564776454199715660745266189391919383403520231258773671483736014418328244805833634344575221638678674292453526317845973011794366198287900308919312384038261874074410090578908228390809669315029477163766914306611614866392404359772204856520945165252024097805686377480227061488161027197724765397852064537408379625385296444732887432669091681566723770262516246180202670806932140980173959408431308783590809180879608377720739959606420552597119777934972646263831310425936376513065335003211870166311480954364690077723475167374464093554138727496548545535974243539516168710775134535052440633913589004627267577961242187515491323354570929829692162379412542723589879811952391143232090993382308368463335294401269369154354618173682149694912957533742694696888269367831212537986771616766634583030454198549184585220034218769789535770051643717200477152235398013033962893694117397709962033845731511182584209152779152875722020505340340326837832965426828499826978371060877675680218646759017515983755277224513673949198286926637328944675870850818975654827761627902328708221887877675820602755692468583386525821451538343609744605923447235258830671811488523365802585509799066665940395312729996174816616290236898875875854488291193318782346240174385963153294301896488420721836438020278297540509131798608461183770052173744377255214505058883084934867124545625006349164030155964558179674517631209994621636925398912567472084336290325676854035891898866651483638759899832449109927783170632918719932355568977416749226683142241577871171205385807948749240925369495515734930900077135276753673292742292929471645134077332223571058010015034113081092641712875715372062878504212815748583188174985024007112088216644209983826219247070250473283472278683981234364991870607660228540968994609578985375685053423294243444755566696818793759875684704640740640672080677567424624605529639239083308261606584296035309055795109062716690334806178249549844390008687703492946032141176549105295212055725733414681586787509308997543036846334472465698781870008681476749446673461356237361761503721852983757746827368950801771731291109990975452591287211337715738305735295915359095636721557752948509518093364134518814981098941542266884449387646412526928393006428424866537653834161389121622722328646135144630721568186756433602600937713151134082090025460056806643914006889206039689566767817617392054990988796951333414154108382382056136368525315019302699534690241981082943149666203728100644887735445733211321988643562608100707077882624301247042913809506692612202039382124548557003672822311825106863615533169540789531655091814540156108158100365634125339877472337517310038098584432531794422592975799322091405415548382067928345128583400495823804283579810865848283969088212503577045537054872240009223882008201662946554257553198432283825810651815685152793519532917822416870034967409383214857483034929330884496576099808511454625107178003323689327573115627162730420839617044644445547090475464990322436821794386850343435755129339438887169409254458382120964524485719925624730946966578288164874834241685488937196075461415381721717234865494471209435192752349414621096179226559480309498797415746618631589785016095924715501292476451109601974845548343093787887604341018574716106400493794957104034642021723731639521510805759267914217217512139321039748172047880700090285932395953872989523235173063835708593964692080406225815220576178970709776324854131045162321087474288914632527510242939945052741591771907089305518473138693821806607241693042543722435929691024447016867112854238175012065128118899040096923969212724713976147776584791885967617401835585790504485625650406608200209656142238258543671742508513622336990051257233314971340421382577815504843499576095204296032163927692439360409052044855279660235832092530953171761398275836286559015179381310114188489587361840789159335774987831803821969948897670411531005888040642178285398911133847387062156845353646303979413465398552857300861156249128339526269800732840036816971944841424384597632518553772372069335800465470959550211855073186763953746221744580692034604090651150713746503197899771700905805411282776029881273157172502361827519639241050596861390705281840050995625730814511504122026736447405742069606507975143398212643933196204608793462602055092280996110548818739496666713351165707306332958247702645828528584553208969606535135899896406307571718123969848324608040817400400733339290240014914933099259658215910220756562082844062752606134977349769914093078714453007135569505843449636471369840016266408070332769371346440405503470148602034162068028720589478274835063657961080490446227925045759135159629263542188186157762073684028089100417567265984439159614726362368484968929676949167563950274046642286164340958317518753170330587505657357433931746994246033860034010504911103725979371602938823333687925681865314849132727360631637240316820900515483886664378330348739723627491861154810902842129678912975732997610034785666670958321238876684095657722282333714732272201154208206999907499268051275731248944040544210001626096535978254422765622949893840309865112247871301691631463028197505224610454216240301678875586801251208750711595164943901468189843166635202536350100449071087361794999578156473903254593763883744212527940007900181087059912599666431693259630250350874950084197930185757705137986239685611199596384745911142631780600838667505774156788383440690121239522647341167269846874021982883620659943115796092795031130540838303726333033273916399110545177604207800275324599970703503272677900799105476147755327895681780092226255299916244240435441536888881579030440015561045508169468991827863463913161842979810111974843913996048912168150588209317520663966447760144598012819994819696674192679347856841855787687333550498794927560864107851629058431465756661927245211544555405603837143052517413805717946788052729570302737110521494272748022651648217902293625392638616201339701677738362726128078541357510181021612878026808082920399066548506518340779202843232581206538803388345486030352119626697033155430654274588998123604368317848115035817158539148922112722245305558910324284759203881381877395418861420542925454742536598061754403213307732462708738777257759252184527456667520316704435862353211315497526475043182323656974692724535114822679509482192952798597579750026196601197002177153683988199285533487791508294803705448988893807909280744455173667679995288640402296640280451542372974821253321000879275500918479314161849681399401082955532257173671293674055160131204699598303570922606213602573951147276042137217207505153121861928818813510057487523035679381068912472709590504096061734850579384917151538326913395244361740340857222745157737419707828516987734889317548716379318594088628599230160203144113361848865411890218644208933278655868203091484365861615994913116857413189265419951120220776439224594864371441868686837678093906351552714533064547579117969291733706137552798283066495640125114602805718312052990572705274732752851087196864010169536251188111069113791264415891471154169142708480588556529265029393446783294879488788687864832295275652044124130087426468468828664622024594301829552051701385954744109099060696561246634375114311550929148943704061730339212653053611871328491105248411527410513577152957471597008099703670134274949583183276760702916080880204658664345307986257384128074129833031643878330705163103044446299506644916711041855437802629168828917211769493851231902992327160159987366935427535352261402800035047177674238942390017196736813311908857844288443254495426350047694723848915375287867675229748958924137299782839994932225460822646510392250999841814732379422882564549447779318802201860402654524378254676277665441137386481787695273699434258405653376613841305807224199371019913689696906342223752216976182160396524744099910027549269481349895245369189309370036441133955261879436057017736033334187462474113734579895892708134275075350751702333006235628335369973534801991567888116632921665100162610287434615567240744020953010000148067352272713375357077856594972705696990798892511777059594808352247286939361050511254895642883043058544082868211887750554981101768779792246678777224475702027017407192742917090395711142382488132661402876108835186041565395752550074759908843605072614214491109501662691047219904451342802320933496538850166138997573150006196383669366593063126842276891849072491754627295360907422860823661179949153485706627740128746575194404905182165996129679967240887099773232743802938112404653759048124279406226180256925270829579555805912611788044587514839154204413978830755943352065255825053564288878839877577021549826726968852553807454466134230123629971684770972278487576421525319490240714704708608641454249080819620739638482254150578888401103801588660000361385802835648370345572948057627737610407559098828989133121723966553152965902140563903609488484443791843279930983497240271661113916792400291585312317063840338221657000721310811830045505239107202487779111520986634315022203940870844883256650578597368498395861925970963915202123583635879000805732791292704504253769509256074001970038125683532243769761099180144331366403724542033642486394260258119524370658661436541473013559190444054837233626573674778905045151841384773179841653425162692574034367546017715768853093368174913353079194912913765381258201580621454647531292787956286418904254188211665203936038072748749758628938136265713823930734367264337298837968570461932503052184465148803407920833901654743389004452652423163465044423981872417163970869061363462043709623361071917538179094751513028322355362538236544978050412039894328894712085875618038314265849173300984665464147448531936266032874692226458466501663080932666792669128339198929292791290832650666137829317880479149015854087696473316895602965777867291674536987941084450458733218633416424551604601568318214545870707491407214013098994502020410113890993788526621261916316250103155171507295529067769249111689825151662393513614400411652494104247061436738525413226655954455486225404098552407307585975472124060300994728520166741095903117789129859458354323726997638344062715326151327907947677451300761151883404360047286375440005350106564143082961045019437761794198995864871238468231427944437385264782353456768345754589828265484037722122614725828577231234173271667850691610649290209292903208999390582661384916392030539159221159318713139880678435932988798615697665641120986628189155451890048531479020844159507448952403366988265912068565484279757745399118540132330458240925978519677717175824002759256701089397057118301494386998825946237927701501733644279232028864187671020127838273573416252709065066005508799221061017666120866106450027997619250615588519893772861018911385325409666014934904951696244984319791959182667755124599007218748064642332515311855977655930380129079598212493396059732509094558014765398450102883521755902345965316230441712650686636907277237536821825953087274061127722640952193113244478750323262449030945690183263925707200156039734733958153809221159314535371854263576492241392091839684893810314114104012452686043623748765625823478561446579728012950116267081259324418695706734228816620936859936073293768824684352771938934877722127946776089883972957543655853648996465666791183142120732662554479548270695094215825180167520237724043500837437198211539349337022485360244486406127984499835741236947808062215800709978204414373679906092567872629510040819325814645956048538648708480639191840735506178463334099887519184960242226463591017730884574790907760389541373732022450081751471265596543604786902320501366955424210735533221309486723902171728820910467587004844063753031078040573401716525642191761578408957701745441833605126436360724848907249498020590036823345994514829180042606511718514997832128740057307666384905517171446789427977140685604793996254675664971679119020585605160409970373688539989262902623072542539314913147046771472327562230806921075214110285944319682137632428946080669191785556977293760254381680138689159159245902110050100572151922041907692937585306864331282033069400837165121357338814664432590356772259124687045495507285584562935847051856247908524404710477953770173422658634619473165541360504083056123592870106001036489851377724820058921657446833426290220442764874852591037408424628681578247375434008055190574461682136265199850098195849984965605133906350587249291147419709615085322602175358261958075116200695184942778529074540366283751655402752149685324743628427778490108158648790443736021201707895646399572145757694382816373787660131650376238697037279822914293962210870383363798887705570171293808416812917452346893143890032608392232419666280069310120381729022508796546431231400632495824261468300425688103580319960918052130732575027753130758055850005571718698229338772365650982025739597467385469895269230942135432518534007097316236891810472922996957833169416104539675834981517665948660426525865320763559866658979914755134559006175036065086071691910703335829536375339857669106468905338165437794692989052863653156865141433853438672659378173666097734850884572673383553222196437555407953688871689262909219720333708041464945124963656753444433826954308159567093135910844101443009712890978662598731543471914519747968686407617693223531249849811151987858531127996972247222494590629189016090486894195941117062121762259370278366771170764443405326477725725823642920071283019823224004961313248209061343560210258390606113215848131550761838027052109141717709702899221702499524862343302760354379682650554191931117193963017613804595676001894852946167076076086521216233630938584709149761153704958223058698859338061775340339513086281200351981702270764828605959508368234406550109357726025190339655755593313215721485884282842497872916530857679517816413542753335980567494808756681904655954647179531043985367134091928069722170627645476652049746854574719959206323638277818819580028166349448198334432886072775213660622034026603796797725051971917433288092133905418351800732068214657155616695216389655577356277655746031456917340914727025329345748017553970458805436034191217282478124518702184495497204626244164113763818085069703502550790965365397191898538637311074081067410290130906705127777490564872395257154907788016435719576886381340608303908791329568677150219305138963129158650537007229392902996244125387116394315526821853414940426054499009392509201339356652636943293288797272336560633795675501884358864546683387069539585339074565781694005308579733511064282392989201286839966850345422732629788715896465673586697896462314512753352762037029672772108799218151549226636919846015736213185098200336115618058735317676072130836025892900933175442727439416011788894514398876044016714355568533969015886240962319479145183249445816669148008525949458181998501466228436441299688397818663889178369549494155772488177096555432085901619110811094707654810598936489806072335253942873006439029452801542947294523812580879896268090766465967841816903387791867791733948559058055992432024652022014581733471213600833758489461685833848532881073561923412770018927471070483196526194439706756346480403482365090677696272190501443265905733422158739282139715121916129301548137990748800453243869530318211491957693937822249329968049737135439483214390633435483843392465215787714525870213601433122642886178519628785522992025483374432531674842937537999452743271611976198272441345152257467799602545431827610377788312482253774590151454093249581880318016656175591682749959530843505218174939504209084334573904756981212655915673627850816361845646632131249913073663671475236604732387433247288116088194062391883418022289825175378643648710856943666230119239025497727020746888073296898670906256754919051215728826840687476887221217456904695841116331570708254885894434311007451556140927710952795982626285388916041745046064856732424493162407189413480126833437486431642547166482342927404381549104360167790735786583896965264736647908019113415088063757918792362453974375884137270695607953153237639331736404712016038035036307369049919807907687852796734388401014128543204773693500385884780041211750633545587378977000207309808629651803602515134746950516444474535044297402986987552166671966511869880954617330508343865431316819458148246966367618368126456759245557516916838117437113032120678153529685570416020824683810837210548546240171336502090352565282035681146004202625711728614211530317397949567843283967078431657304301338391583163853275643272967772038569777610792292307004015753572922674002236005493321924745445814053821289069362121598038420927288296535205851308648799151759575208480564990800081695937207471049030954782134904981100219815114737930176177912692301712872430382029206285802855353342653609051172750159835836749984643767799178922325154928821685466614075737277160811479896875512215424199366798233010471072043480697182495215328889165570283827208298899012856873603138366979719726607764052218138719030507537192629377762139697652334078419215406108719067407414758550450342851482555052833026462205638138040085049108883361031255394594508199740748664807375101339784387353496778800763093049103473302424566567819245767320313680674429562497768073645800266512246420353083685650917853037034917133903067324320828403634276597389099541162959328349138887924247329527865283790464315235418868999822084768944665978232540459452759502066652214545043074756364712982152329485553603942417133032301924687738351970831971812404996583586735569217201440960155063025427706144571361414207157595016341255123861541283274886939527474590528085039281406012344026944312818517304332900466971685020079578844096838501202537783658613346395060912636281122005024540273669584264488385262279301256689635257064891051385414468231605345362475408242075478463114206371621699760397955027895856718108686621454240320620288612803524164814511707925592074183579967622061098133601255101329751758013091741392547770494068736404375004952096109415815636884435563774411575403838849455225936217958250547703057066766227710727897350494302278792406057964168428574203975811066369952191163717341935315794764380622844625746235875221001596660452870207953877791433896572875803774780921702735344055539811756894003763514924574181064404540631180433974992103006409974130364015192880980806709985037227268318350834008318164821103660090852469669041180351412759147374327700158179887607151458439306386480929940726101242749133951864683422531062292207718225506976397300904167463858654871666572521382826110861620482348664573320743650821765771065954163531186350945048646925018255954477652690979038474601809780077919017975338133479825425088043430798327027013484864133179071001815782567639938078265239415854607198914001351696599922537159052563721385055961610385663399818658552618603980580874239474473823058349226350267313143168183296396220000272049647789893558124893070729645595132554183554674374827102415236780633899373605460621111268339334496221456191428080548693724460923375110530552019245537822626880910909704467324790061216702577782163311617941137204233726438901273752500443257727204905193545543446091054757539385143485170869179851914529178117870406914301013655025552361154949997126281420244281639993439537583162323702000338262086963367936895375617975559186980357240173552039028719925764293593270133683836116127613851699698248022691578655366379641997155199545986309911429225913965099121978538990626929131759305801606589783577834215456807485941676064762859421983140518476667799719374353779290651560129875486368266289978246625138751348598744034665724608922265703449330856950541102782110359049156086700536949472855414727396839081356644988142018422342487981546081550634228422377106937287255581447518671788110278179467732197706145941072359104191819461778026458112468060608980195346544533732378693719714168094993704908098590356950980430702335843838820397306484557049296308945399740403091776894649568467095451847381227309630528703687258154449557244249645571328996684109252658349470827298576259776300400190000726632130709756365827506268744459482174667380784881603036468257985254259768303435811067808379059543549941575424926922558093656890355298716063341064317231737288125602851268900787793217591090877585304493784153042355453114490656250152624505790318025472570232491477595759105814928546904213416266431300262209681292118771801947029926071878638670419422790411925046543110708943486552940553653844937299319566925012250118941567852407570459318614300060142815773229379610118197219060394500101141726685786499295982522406230259199607565305035355712811652297280308725368756271107253362435286295328497733554206529099577095563157899356996023821709949805548515692606335425713616968725103202266646541570020704651451401423246147244999198826096794942170446180362018959622157564580317090765492719982067205792769906422553950298472956565603379672809419106519105169568708141922448484246218323875033131263158996276070758586820087699901301711090693418274372098822836403418053588171601734229814781001344050097767032241747750511760627639019102056349162558227834500701509413391494591162324213076984007065444180416597001164426128087483344729346198496268891030334848514387052008870897577920556067796718951248773864406886001141540635153772122076176938288250854550374559605209577481047730201844289169861539130422703518392070358912892605001284540421940358562177186270227152910107023267109304288657475534049892252157772195899949900355936325174638445077658144613155500799424366861047267645853127145169032479052142387240900099170678183227152626737541124212525718906554759674041502524538797808106032532228294092078846809675401172356968042309811566732863316019685642978599843363142511888283742245338418458592160866160914224130946317224643022140444797757531422481267204807707496485475967619812055478545107612366935581138537685732190221864856903949868676953964304639558369436425658064807245063195694064633088096940119492036913369323962137538859038166801312305413547630325089942167300916245401913520958293468185890431617878312017083648003765944341422788627568655223604576953598764308396533767781679693216248023140050212145961843455430051686057776002299225197996058355553401296213908305475980989219148068806012569718449854928061351728616312147908924446983087599860718683569769221024917900982775890680392496648532140117043643028613689085574973710434260005019568962621575623801554481596710660808743149269958622679004661152927870616486796649439832761588993648278333987645809603307153821931242551026051588605707586801193991330443016549716146114006202524529596604127206181170441480966324427088655358653844967925375288203095501582784277036477361604642163429948787252408797680948366887049884592551696456267210618066748026293785127814193780180152744276022272717539035233785272310436458046802174294790334341114925648728698733278282606481308188075368097218687207016231533243450621203433748962862856107037387233378485905464931716656027521099813007807686625704157159037166204874860199246523885665528566994849813547932063531968775935522180093524944626655780036188530691845358094784797444670644443662474574394879868558264778824388518639434686871392362374505233175287933217083692150498909275561629434757195582985832311630776590838754329772465470602268740455619138429443446803436838069832785864262346278918683139157839157511869646371248273107979034822972556873747841882322025672469100917171617238669889362820771279132966831536299204851129855204179336436803114082375045646681654649793733300386134240741566826350156295525481303676407079488763266083365937731474509943127689933911490496032083314887468327644011451718191651372803225841280896092890418589326505419235197638409652549964739705188786030252643991052360040845039508166877330567458368729139849439118725262785460816248584561374987420570423867701142578329859294330830293208297488335965721569504457037723857118119232317422209877534953931977300746408503372133581909205152769740349388802369468694337442871467822570891207813932270371208137823302104391969041861540530886043873452171736399069916288657841140692482216798974562230505731945571026332220719903149919264685254739988121494923393418565231340646603398342556033128820751605997012594444600458277527371037051781577325257864641348840819975412654075808118641808815666463057757461876115668397133351466457302272231100651720686197601059125852676569776752478434509511693004213900984144479978564256723223417019619872204313627127956433768869807345088196145898711962702020371410204558430467674489248945193115023603875897826879549405306751049063963764775110407805549300817576212755035254605964294003164617021068189417039267902263748177144088390140970558789726626788339951258319546217909229413587492468989627444249915457276212571673948117117448748086722770146624377530061446364823412465898372511392042467922273133323977723345913409450339431398922025862897866070007721417080877254588105518138032943723318228050237159101747346031196259189949686515084405761540470915652543728006189517875958320721091843684554279241722047089022508208852818120179144121229358751600604944403837293837975604697739565542959912124164870541820445848689719155173423230757487629806369553463519716310175462689610366305636125872782067710641500622336172000278836931764847803686365431838437067115192681135880839048236335716651044853676184408426926225062466816804561414667400163892783075408942317577572916563856391995015248446021190457259943856807305879280456559633956404564808011702690922124995874859186922340321049723045488213543036124429395523796320650508109588258241508830348732096247438313437088595678924630423637766144275062498142512680295869300488556854807884990738889028519877030734484054318270409690907568056379467616923788181083806949850943514730507718115180625860706699825947716555690366197536130866283850920836525412969929430156327246352380412218425589907254394857414941062899294606856530766113622367510375439079949528742965398379820213237257218690415774353422424982634411415577182635542302694498899825660516438362240768542100277542279653035904939860385777435829014737867897866268799779916998049117376661939316179891012391283688266928067856860070833122835663341382785884662762271922421512657402476518146139749928211996596665142796343056881036607598820790089070932367550685472734553591901496017028414326349629073571482790645101839310186917669074875817257216890360023237663545949496232362830399807747215589220553841809339071428519868871591016825135520831409459053731682265123277588248890741051093821587155651750886742582105055802910257939921681813886022570805191640568506697870415616317551298162640674888686306466965864474950204046124422721904167448366125336999761827270852023239781118423073384815844488266000205177294636507550026687744920856391059476551351565262464068215897696341725413915537123556668694312110050123441397895803477515973752912943382258978646607516699286785529841154284403033487959372505923599174399514093832962214409205464279672919218603420928299030265957765773056286239734939793718371885481473989375603125293731725271597358246260420951737107738343862926116774376257633478033336512878975878822909482659775600612755027356218866864443543876185330643713562431392760220872576936617764569004832436659433615124986692914917978528988263797829791534699280412223598518827852063314697062781916696097043786355850308805272670985297374957820849537687093143463937413431572621156552926912890654173463048763905521560971577459244422155569020168262383190471723018137569349903225875506604366333992253608279192768937942769441065223983335740450568723445159310287176979956498483581761432427737508250752172573804747421364348765302157676216991902933394375409573007467188516911218117108447658893389880243905458533824102273761185957020052474044411210311087613434987509873025968337142230581695531156581547369028134166067135166934831998758920461052500002210498808399768947964089182264886110918796139917507426130685666384327609465674836865677665438401104857829213795330290031686968298551650037074480865865322283816632048701181179475034598018004313643056862445384089053218183223926533956137929555902855268945350839421008416688724273007132977786631311093700263210014024751731336424016068109188040525391277456930432529697820965978116351263928394315776889783073792942732644606744667065059133730690296601051165628540405228359030447964778437645875268857725747201880549539750872905233395460585276030760870499492049383253096257680329629395827024547209116962332909765892182366139392143046853073724808922580775641633012000426884419066521495434800750843048654495995771333468841559585777490862447668619339831328228077426927724910043657001240466713297638127847996211270382844761962560386973826253114661515650039398174584217049735592535693041476795981151445391686126416740109343381582274027176282193253291853044864995173864391950971420736050591579966160068604966630902494124545739654132514302366958975791529394991630021238778245573868126308584957158108740147755218238450624461135895886008599750118383644777997826895471862736701023563096288333180621062718846025319476517050961658794072675686736840211482550385940349825404572655247430912144898628416304791188802621989731752192100490435544428749820560987183662589900552108002522600656773316850930339758636231652625006290525590347049473815467533947073080545241578179843122989339674323116049646219963505266486250397694536154779449509783536098896385473462246752440936317199724263926779184204812059036842117857820012788590261077114473425635803076032715242801239552383515712363454418173529875499949313107849587557710555394597046957928297127152496816225225895380623069462731196256521762563226339769934558765760040436958735093344136221460389309383737333783356556024435215958047816750331519358516648670137339557470202019236499757477601671758095628986546531514082953017733296766712791550732946605297497566682264104442478956601061637608631130125694095714809819970717676846493405078177921180585143846948890463608869191532930623403369534099041358842642930253461078856235321815449551043600241202831602344933648037778995456832916785971244748002926390178750175433563822853572329845915497418798043009192886114993337294443381416947221237568267652239185188320609523846927337717845273419845005683288404532559907920733679880222020498533259714507096172224799560529614759733370936511842572089290741347429308400722786244784913778581376178483075345465649125145053164352247045523798365742106256255374991508262619308967127227645693680179766761863333253828237784040109606773069074073966028516012860255392083493221945230477305355815809681824151564905780615479414978326810872346922923174885511271571530891487964640454435865338562126266929094489107295222073801797202398364332515181399765954844623281450259239429561024154392163030754043553508566050580571712309590704541640501121419845686075102225520048772186336499833751775134076488972265989194778692902239562565612927404438630464229683100301587922858564327865641465780973857923381758972775051287800555472525439306777353275979345071162924925410286237373425619853404659723116286543755220056679769741237144987555780677108900170716153805379145491087994526364267482521647855800991004169669577399506461752965945529047271026279374702111526459438897205207737440636199075049525553892879136207655625644258883570866509325859330287510357562619595425904198456355894480443273040614555313342943730437272187729140385049511320381642032217805964360574539944780725367852775058258996061088376179277457832919291274537061071153434446145750147839992473066810009392852803693223907663251335927376439880414512720888102053187926773080731279166722666029464418012210907539746056506760826844675145088732276640317061024644590582088735512301005091291316127057550126731470402309468802495851793492633699406943426983259053402244814011711804949065992069810747437046098281802526617364043277026291518609458359780872164501579260444850629238270186158244986174139987620359336989926638508720998141206583020897828879594167196981190478949584043748696311441545586877964514467768162572764089852160764268525533935291115453870258692780430399184868811456214536097740197641695505383706290201142485015243700248207157267012867300986693507493833447121904016433869904112325587043275751976814108945372823964062004686988314714514725729917784163631456672112252520901878017165026986359840467810140018877016792244099655870369965571478100823233626644827086335317854251540477795447148514372549477916371866860972586796455907526031609623212216637600762862260759568935300197565057880428040697280066386739025820499664031108774903747843342059138812797031313997669358516691417623437200307810425822634154406487181476398282078875310529004001928089263595060268997196529012351401827001777464159721816262678308935475153249728873007351502678313542889068247388176903554924693547587155683861012020899029986543555687041732623140712293297853391988337700004679249976873110468557978613604624571889370752846748448820675820821797812216731140956596115837824386185130757689565711061424061884242032361367520188153690979775064648426041011978306158931665470200545347493155319768242824596099068861997365003891746320432119750931983484127216795878453881734659773870308305737482514503679235486964045860916539918640249891565740965827285297766114793063239774954207382638463954578278408542294918457081516539185319452635898755248008774786192125780509400516148175723793700901007487248667977717831286602406610222774945498514996255279904123887305529582817260010293408763997029364443143058538622741156709953113435618514008244089730115018634078736518956184258185538938909597897245797419724953748021752352895963412653375700351076599340967711765762612516011997105428941375917180154327998437474253033358389656046434614919643414648570126338472621421802643707203325048888018685810639794603880578172725525882266750205545016063070401976775234495158936003603022405753546758058233999583296549930390353712399076673237264722993010285933643033171528366996045140909089756308583388688817416870549158071095041457875128671884817051912637895617983171155956095604482660996085355859081349099206293189393741444186129676622173601379781386918002238923765481006102236861735092544606150133889769145563641817766225323262188216131031547247578385535510084642996213868297091904523341363761376668952944510933712532427206801438168316665638953351422156878155970547305418704421147980403236010562626936247909445194961988266516692727089752550186785322347479586105943162563525409700689775325571458987095289710318161099777497208713350536577375489834061166659673531178103467837411562629585048224770899696995215443732917978015221040734103231312212348134288788179555774236265803607714562315227582684757586030148169605660370416717629843312107058208685229165357487121625768048245365227952910901331316673067395295767681067144384659286961356870837874090766526715861372020897773203697752918679164123069461760472325315196782613579223708845940624352072666777246887371687484336504526133495074712615111774094268821216316587716894471750039654731226090117032333802909541716953814254501544258915150119982925660410048167665057265512410865398177146195912214963596884886232757034659290062934784373013840186259576770092451078470387065649351640189835650589850484812859907396260122841218441482750873880288941892882766401533096774710373446907813456061785284918240191625821827701144441673058688239821110270188206983548455797960275496614210212058087237903915553408236997915495547885458689647146781690528464242902296869702097518867893054899203791498090023446167463237108838972524655969703352880253824158860978797965867706133209355477351571519961476961975708782033866937109477002359870245857898726055875612879807634169100661272253325258284190995460207774972057414836035827243908118966883747879340386675844648795077229701461744862102673302854572233027156412912940687233765763057411118311402607593667780422356721736727722196168990788362504300357728193130888574605705403768281682784810814427983928474308652257170449968270886435466379356452250231699135474018434136984201003671781463568899799406304719878418320851596311880284315100282671962416612530704045242497516156185378665033156809875515376074326658639957437045484667277268585556527602624674066801356576217070526391726303747513902758516091627168565405712615445876211715005782131314507343323556021537392295350006127751714594231985034865394641091449185575632337176897413526453943500972034117330460504623619719587274885140083347878842320261765604334365621808695274114169529644575337288072512171626953277077216685434348836140538205867592855631871252078538612834537201173407044363236916705386582825531286813899267863513596930783566576112826067375907482045019461943257096690757514523636166085094339763820394221107831375292102497448224275116075342307632841737336704318846922088527398952738107803846898895604888351192326111052473133632145088675080273065609304152120869813741481117019611043054544331876155080281589160548394022027396570946434831064389455058927183442492139731258517984766659175229840739742577456706168327204412653132619780038855376954597083900262593379879875950951885580538719447810541717162473782548205797405238672775743454985557629764527056001234410042805176726072671777238199933629532037766862486236909885942724468232497552330655917352144074821186245279040732212284109330045691347157531522259456964842357020906268144955999993380696296298925178200563219999965047853220336226877787742137886088433291833723522075385711814730128699085071240432316157870971970447040527697017004820297588120107678598102779489129498973177549834034985723457200233891008958530598727702213046002421477805183947077739827659015408243698136374678611574087559830039994635908041114585000643941597167133129195261593427573931353403269032422133197653804448293684439252983351611652922525243932933126872601929292593821659456336173368284297078647461055515886545763186502247923610137263006041687813266770005514922707468102145736327616265560171437407136699696229127650038259793589521355847843416336506222907895132694544707546149422000279216561655953585972574912465791750713011143380711792264407541546900183597124131683563253683505970307327857399917650120119054630869942094482861303269491823622880529471776071222214690696076040761254006311568753990696479332604701579480504430189425477627762664286071896805326575635392087231503935191534302888013968241056610236364005534877011673649125127277006865285089116038168833454993801500309996686084726674918512524487398212534058983360319604100437660938776345925128348991682126820011760035813926076452891734318694429714401623295220836954266988303599485626702668537031903822915938481160639719377815726547297244991893538071142071634881435620147897314227987745093010186189040666420471547558297664197441771976111571177302377342341364017531916616488585355933410369146554669324649366097135331707609789927206702280369226801534611838777360927600413946756678001283982793605614449915607275539212639826482055618791480556961939984362509821981265910659733696464209324062628734855952667741748367245410260493076232054472674660763032887737081641459114088428036916977752195348226495404275347900996043959354763548413114272615435321508150093389045488814167922457338386357518521475673698340927758023630703202391772553452201668786500774016920327618841472750711599429209707277720636357822955669741588147766458567473608430063725100968937797479867362458285276919767153195020599255301707385088822216228549728782197276278964248705787798128995706349514498252764817500032226285342944883034066319568366013754125287431760356764316458886034965190004631925962534104028205533289699094293758062967937030273312295349797870717494768502635982307539086530880774613223860860304737406102604831461365766741331792974790373459797994818091254813970118154032435051209733757220928923174693720669443047511944671774457008587640730439052938173169727456208097582756363154256824820523066707239184814014623578790790531054358834368997561721560457899580703394098001608902104009422178957927344735842571418843284207974307791017826989981887425287562420995497049614078727934476941172831106468489980566943293892373862768381828925173678710186056849941217766855148184198087082304601333418598892022918346000260943777106778787166803555368614540027018544733883221031466764204206642782441052177368405012185237277626099875812068228238933805194145245605922323415928630735751317292692829767790431676759659169438397689543821760470462914083856328150895473595072689579248951417940542414622691379137105073885893551016488123993598082371305254672719944489839993923647873836513343244542277489980044019869045717396700967408745239379002140138562608644844169749899534580909940389463308662485227361993886190400878914926648076172477126265785952038826361438977759285638934863203778583659984560107293855803475727170697444404112160166489755526472737763813342801344432570393424226606295184051934452376031543239144944986269261731925735880000017165498771340473346293873584153105820891455855766289894595913192817917639943973345845856676318383430757086544866307679286025553874579072863398715609827908662420089945776183134677087574925599970306339757517327371314750172453927832317054668064498759565777944919464968960820587150010662918376073549815316850936244340579152363877763897815947536758148238345208651697686172635371081106007980864894859683035832415326552458346172331901665470294716534199556173058027819625805085117811545580185482316744357833924728108656736468331102214953896442440574154284088279085923723826947559220101321542659090306353507631791717914135414782655197609830936300650919667100426820474213887781025320554487829248187060192290775553424768180995445005184870751664733064262239789340162925419906512313799924784189093114151325849688822809166992710135707942257584664994403752740906381008729316599985136156542947023623435880531752880623536396913539531185769298492002560360651742349869544499509626585780005908182548709426484906554057162218941142794960728288051743310380568938123881786954878989749358551293521633693054973442503705387421307577308293239373351721443328876302543463734092057300265739538668796308584525169068573554145847815209475549461691277921847735503960511672804789855107598409555712611676798124667949398911083085408865538436961527233626887486433223528908378575883260280278301788866338848966672985047017430853943727831623777103761409546366672436241649793772266647501909384831516670444613764252639669416620840181866619971656425341187359458486131607998035200459454851037828345770117427236164938131487251806589741955591630917741760245027090344633289691064406641060177332726380970238603752706919148658896617130536033966546426359672642493606741687310281015453053321859598334250142113502156548348015651712832101813737290827199487332500642930038179808565708020999731437808918113312588536549635397728005434463535152654970536672338527282364974424545919396524771251701533289240160298657655693692582190631421179806866083483150941592736591761990294833378317217924154721669304602270763693659191794499190522226061161412090338928627411372171685496929228395558613574543221601035113054163998490350491542780413076981153500643780062984577519281295513296652789844488136201430177234966803903717131057981599018118697504603827846951427236670327343208546445801933613045673864835741142092482897627207155326174024019825970906758956501928641823050335524198996455612997835313852334164491683197431709361408955746437209456860102414189057700132510844935758000604175918147468116886448288317352229022517095827765311819135415419003633312966809662322030059013607783799862213926854072103764487483830751600605513667606784471247486965686490021871435209307388614326524226421636352058613585870708896291609719349487825874780634686166549786100645235190267797751457208527035369219506558692556345352342701958478306977883248891002105588803580967622800248847928517035829959925794970772001679080801413648352979404081022060315834131050726033038266596369997978535679532794217914259446630588131379336587868322975497918294589445093757665541316459969896391737410084841145676610902459046735250963994957679334117774840070887352137400679043751224175258909708680956502252857276707545422473880509538872619182889520450561969268278071118831434981440654600161053736752217802037712225859803954761581678491766745869535405983729288778862626579053141324298127009864635169402870196033171642727100004973140952093320270859709032114532582046996447113738310984298020880604639430837976188310462335731987650156016580566936511365547274848310976952876872244635824903905586005648867200112437649182152166122440642786492678149258640474366698789219261155412761739113655648219689329999677394580163491904027484506292016217774080397051567578544467169802742905361226362173262264608080570371422241925493953856661318516430394723112127723449588422700301928730922866618636960021584488045505604111013121363163911953556226046175040386268526101380393380550424681091359959079595091627179130702849374249838866246734801435407206589666540633570183474091403546839399286757400691194449562812136311113374864506245301739950616886035466083486046304080890553112015485358020356514937201729622252024692226768562337833697714461264136206772333653411031810944982746351199638364681339742760192379084083907816924434874242813482441612393570976397334697784275275122279284805526939359657604750566358993559880905121708708324427098227758794635198487607842357574234628032933278426750355669458714728121294192369535927021383100949820691475275207631588158691884544070499216323366571792829202260893692305849989482454735085859874159230649181991073872630183025841286001751758859099781139996691491032989733845818579429579837201224078401224256810288022821919573933442731176744568299156093880401216750681726336803810816759234156571375647163867316308188537237073166158031182258659108018334918543885585953939905369547041433018992894196633325619663908837998604552726478843788440477755575416453451154435861071806983707565624201246688154704101920978192268625926603755277379874032707309689861635551751300520026963143499488981197081659248105555047108618179980848516491494608510755348225560446117974396357567024500682408135233784753453259192010826575134347597280989110596810847905187854470461640928389273499394841210212691731296200293544630010267055142553585757209136385036837667925033412222849301918473007870417179198705688180550075106427798743091524261233380086482839796368229912223698406226490742574042839628425002318385600432243897921764064194395299532948625241635202798274692168770679919800196218500496261681659012419942851519829012812193876512185572087314931547953821772591040634912447853210181831466956839441171708745016994483113029051171996156378912708052181764285655773799405561068706397544806100577383175256062376866892475879584549720868647465700397666862649562603017929012062164306962363379073215592523848257684576264373594953961050808437082848668929081885036381071478101333018126055351776973813273409338842986862532819401959004559269920775862102329281012795770316138031556495497872973965493092816435198488719632885241308681138793639602128532842321083217737629377793226765103209773354174147748024223569972336314065063244822728580726052198182417307112075555148394141178053384789717299975747045050959787763858775849646801626887701483256421756488986200153544644145524059739561331940638156515016250006475046424741294491838144326716312748825539447530872704381714296300019172398690755530652691980644448273286513557290654311361259166085686327985222925111564452140712801157697230801453964484114798300074945432087070875176448388295247253702786217543183029514509188455013193831095970841385674776178748849890042482999689801075361301290232335476773929198607188463106383679630220889677858902558168255164115686841824407662922174787446710489892442118278827147432582278252443554003638916149832593032106878250577543817809926336796175932555507234689609530391022175529829225817338733627629895127287436896791900324536061729230660518042525907330836002322226939809458906003122016273987863494946156522335331182582330736337891457543747378977410222838158653241988236161206722917626318608051516189990381895207218169714398026523805773976358673361477504689284090936421662198518833671910707944138602365903835485802074224245522494103349899234407353703814595895155727883344400512309783586254038859645139591295441759085135322327768625936037622945223359322200747282826590500215450746432038029572139816814261403994519116566097134435494923474801800655895894251246067964460857217172833195375832054731526298560145806524361724262417149634283241083956598553474249046810722677880805092187032021199231480320873889594312879313525526593027649128386225901277157351401770481374896626875371153937946057588117656162471084733735177248147935309747488846562467715152966270654151191736807442945515470342453777420606621133867525479591022887214666223651934836341787409961237025546695226622779159409109172085919940962072905714447147033970430359805183494548632138354846985839298675101073394672346006454771301417103756840964916740755258994132327367629412704453015637411269769164171681888680147631235979837683468221812971851519792594747090838173189615115651735640996502203512964695506975413383533919424443538049555358440904155443971227840258818932989207315263027944297262571313341993714631595129115671157273149504328110381752386590911549372451800383625045494586585868763285438602671812742931862024629957804548569666328948557661206247896481426031025142436292591210484181120212817520848744000021161872769379596334541219645398188419984035308000948073548927027673762941000869452535107689698493200136320594003382386782725500342258595692012926476594473451600641048339066217245687484526358710246922027907159616998586068694177288936634611006288879512610483469062939760629600103340969112605623259041449575504843803623756715460948186207477844256853304669623850333002748589747068793516905830774621601048270033602858448109402572770335134348877787370406164049049962167696051899709299591684026956050379044622457953231197738839592986650066158745157391403021790545725089677338276660026158849320462645647342209999152695139370439295822908920957962678766707161667642141950976402938573669200199793272704640695528631291332097781012444154396962218308805793899765762550873212692164520616030526918748407379769774502195376065643193336114705203036014116453610050503579458715761462435148190772369298377728444980485708933634881895842620506825226319324128645475644710485363935034322059071335184472772196614568116743032354976061501470284092585440559504722235993555684590012476031802184692723016349631681864980850734387048884033747262349776905376732677921265980816345925453836487968332818499078232471481011891856604985695109659598989632433626031315394961524418807163380644522225488748096478368515691298729029613382575646530106203976099938348705077120764836917143850121960130011344665405244906975039746481474744324314418592306187027425128627561031495202262453993981346350762475224091803206832617167506827798388106369673730917479271842231107529847440333749656779852930842062886166419367031749169957549521518199219917714009872865982422105376525488157298134520527680219503069048755110307095519405706492858817715346798051236336908737312450222832343359678259917593695419079053202188328774420500902297688047072675299452417205696091557186268909673848230730333808785420532790295784643897303783169229807422917115359049936575168946856621019473798040132351964401570249069007067674963950813608882584688306076437254720940747788595138439073138990253585000293156205404667981864505762617794319445428195272743329091991681307176790449593609395397963379447256700478997366166475775956758945315718083193158005255800129415768345973006867238755120329900129289341570716914199111070228471376067690878128469751130867919066423854239533722300017853093102978301782828918260036563352592630335537431699465042951280917532009842730142602594001669606830225653829114077930634658700979430854458048234091134098079107477005424071807103301352110009125338295303772697558060744833633451925896831144587292932482377312958755332464785345147129221541598188611791670860316518995746603227685400663306513368754972909547684958553355799480282342707121974207282682076995827865249927554168226835783596475794899831593738430330235740847153031428383984905217963520834862152247922029502282455318237610713201467288422962097495705223931207056950754492616489511882193824754414862536304471883670745327392050944549030751193362762453584303182269574631678012520677499890743926365016094212561231287708991957996907728383575953208865805685958449777209604685757755875685284579456203329914487288058285612253689394477102839362817668733859471001056676961279537290847105728778078125028584325364328252980984426503837905995289653996478680790940393040477592742857844466954172752602438710094546348243120450459280786660116611179520238097976757438551149494250326397356994097681791951922041044154534901445800734478378995662934617107730658983393853920166985308218992392904949911523143944123856484750388582315436680799782864283569236605059770479293142726158717453114411865639446065149217126583313620494919373100632464309284655535007767457764604510635520638571100623147855597508123115030942554639886533291451819471606476008261572654078286222272819129156645891885547854756066184179492024878029213231008866773281585916292418923626090920556919712382993602491851069426398163729859467085743659593825105435669865393207563353779826822119038895577041327602693054780589779988580819322619785870231531457212526987160106541897517836692833443603970583437232541480377789773759897823750092252048575981516277468096770869484811333567969497371844321110066262402234230266488621319180344390170315109882909398870624920434710676867698454037658449367120975294973188617840022235033531945803765863800982685975478369726605749263834598899607042226476178962103010014743097197744888273129437342547052018102828595944070546939262090193549409755893765764595029480896700192168046434530556207565744313435545041958818476664108227828056908446357623929662523463420428463409934056842355382383121036398465817359582530953083425563524374839356855815624239060395193885639919962154421873731965238455563851618181733062214653896047506593840822595712196483620261941744084714503458678911991810325899725691164371442856343640745223522175078596398694513999733332347970121988088463560674582261748892417213083701763285397417373720175102815436271667351543941425273207506653168836017565553159040884723657396609116037869479667120976045331359584018169934473578448976650374922959885439501421052093979534473310866527846461823109689704012847155066866653398541752980158012059713389935829688016067366836101454072464817704163278916529352626923663229493805816060534420614399217547091037160185992783972737384986003442113606110212971034934593864260584443991460590681722132605473287680328680302973478991860660325998119187744699838697869471065600907793954365571277667037524083443439058476994091075803258266476859070406059732764717027277290349179586258778600832814597789888061166025872130592556255661976317592801223840277444211638677578112741775013250006069844596259817648844345174141746430849695977280165474244477240761060607271461819576198069933246600390151479122002963795645249182065925930643014427793690736274228361293940282838674825558532052183732072349621785341358539683491440186604975788579198726894404786108449618844259885880770461132570346192156885554102203455416983520043238840505346964141978531215220647867946528202278515756034988490091816323475181665075116389359667081328549512381166972206869624392063242684942838679381196634960131831409820029540598609958848270303479843056620782249537937852028561749421821714225940833367122164032220817962465430264611395318976775748522791934661889646608605655992438918535817060313473033156523904021896449780047314084903960197127620921974850365807957417035548318132227168867817495601460189219620033343832872987019002250667218438305687188234968441316071674914077251250249638081019188117548203246552253573920093966830063775968923955088099838736614229060093752787356718020334538092188520900658615994669793620253441273065599312913775911457169338566648782916694782277817788554613778950554099985165628958492442675757452028476274709124628442193658984837334882192200250671909697299429580083406213135008110567639125372763912712041898689502611392511304203573034620556846451127808112313755521260582979206302486130584065316688258202570163621170227249407131300756248935727765275652442544210165500079334762095436295817272369576309228174925980233168154540151239350404699289283500681683549256350882813839468454487561310064168576033369568317010303709788569380871462503811205107446754216866072286777137693415898599691614000449729444700666245685019664966260893221465760486221547579042332727148753675837995139102918629839442406134870758822113188789049322089492045312902388112693212414012304647606293671702146157476434452060510539625986622728034803730079958935987726479491875861891891628267771477378078021535679751372255739749498357625078543101972546790821695215807617582046934603281616696797804902892242300618993177517160002891785410830763582637099398840408483311997584411384984302545926270315181749028578790463720893780733267701844546389753708883195016018686103880352253599402605454195597691358116196445393274258941507433631989317651496910146106115628458380537016087603552839190665130739035413166899214318377821585257179985122215519680595540272641172913585333204591678706867390257730240809576295449028362667040444538541096012118423271256283293143493529679467546238536076263461921499200863168854014986822191576311102407953262727610373612394691728040874535340139277601802454617369009143515580882647337249842154016383364552246945033216156364462753217801637082964935816757061652894087665883763341139741246756710270959785823059105494096898425083335442071066311038011990182697426971401395924362344131131823881415702366335112720298018747081304900554439985428451448552375141816511535004655550808978508626512267610537512769043436814265663144045297888291361936519662936451412157349721851421102284798488126277582805278349634578553994519037533030094581056276867656653332037412409952624559830360052207334262197263391040382030311807453568117339046622427496828456339565070155979621077144328613825148962054472367170396731252248174638368782561059011653723956799502950943212328872481298162745167194533567316561629017917755542236338394875894015307554441166312363973420433947094590590467452490522414125804158179140743177145821149728464151820068078132905959595898025066852359544152410632490955519032542364491507013955453803099674807125923857885743908856010283749725563623283060510727662559113255933485523855696071676397144305082204326509386338207601575154970276788826046809726010753145627670133045876671723449306937430191341423410853092743603399775074648667002177893439725747776481562869958891646107322070755615862076487883350778741038141029567007034639243819908350702387691675948045646292477330955257860059300946255615517394508682500582551211653770223604344220868318365915733808783543209431523126175636981229033971635469854766751986210355765408321926124919198870007065845061205788721563963202009317878833029276956802514659503979531984157497052469520556638806062037627119325813013265444804278052781951642241018895750842101225490540765638478545414769705839764392240964206142897847503649884081272701871747063741906359485309093524522998756401498001215397972846061408881429303501843018967480214273464500608758145877364306644041937530445958196656850284397055578766537046419857188114130442925009835108212099277297163856437250561851818070509554978093119679100955812013106820048834786464249905684496564896784329636817485962662215997953207652639800217290205360128488980455338652757453827423371997796009064311257956014935442031965183724841210481815546639290144897042027433316249699603269247918204961245509298460885949548624194918813941496456917186417786573438585798744499024922956053677272098515370068624089942594655322558956079509007327385621786659264844357670535014935321629563233351920568929246471797245655588532406991797254718630801658785031565275018284753079869853910446490156745635088846066747871715608117868709873158684615653420251834311598348504430002272242457063211037104815445198626648992905492554526191396413197324473659904772097626897811232939615841489174278932735876071644359667001353740985351442850250168228927574130220010720988731740799435286426513417284960533940336142915504530112999329592302993503453743812392607979922519162692357289371058810446125514926245465852933517738942997859588241500573666204427314061171133098285511632314060435277615542660893540089065405183750823536882172927851388719474747716956255503522837218735940832229362661020234555559937276059109477955300040221953862723729957973342160786363380506990503449290032915750637631127860492561072896340525713340601860993159101530102895627837594520752554182537960490048128723893269573545118035614569706304785604437678966832830013318289259069239461674649574319403670175563333809870650841389302813606684759702194085292004769033069624970326830936733033282222593166084584627327558474266400108497801073035073824777574286575812567014839275251978854591011047552062219131545840345478060730596865538321258980733071666251762705143552051955340051686963090511855031615466120478217065967970153655369111144582135389566733711440540078431071886011269610085722898063933557942446387238721701865094020071605029336362655048236796477457007206281871322195452752506157154653894228938929111085448220705467757912820909270012754222759357950102865410520654837663919738892426848939825167326859420026976474592571860613185067736181837667052675950623212287818893985357731605339792826283609649794526721598791452413459362000981116853085998207428875229245071796857905763157896909607613560436846964452694005984630587880805282971046091942172003799657645965869133960129019336244201884292519861218387515309575430825554413940023703451058375785911311901344816576037885444275588089476929873795141467056766715770380461388673998430948964439306567669434171808966806764744971352308212952727580122515586873360154695747560832337848700998029711443800527716341001492972110087321477538477761228221358370328165161283968826780629624546512511337313054576992953804402491253393001955101977751091916095731979060278346069659900794671911508354176562404045424753705433746895216638067151514673210906620946647505553179272980362993793945094836786797831010288055508300550821227951877058025915368085525180256442984568776222206157912865079381571613211651119921697795581936226268878611633562978982310815197061952148625530931646861654798257530200115675545113224078862831697467761995508125028297247165460531917193678066200787251022486193836054293120859847917279987663209797241966632759497142257986290478395271927917157190168477158800689360052638143586699033572250811896596613806210912722990309884045734184452961760113767740693194357574131677335461727986728495886580106977149514386502669526555958912607450432177641172157097840158925753203377857912577788278825137966372969780425294038662803224617315330447530865003169303228373721741757156444667683436024839207150277063110002162243688332596812116137867893604287284006501490820283803062132997962123264412814341809522067371097151740392195980301003531054579724474655889528691066591809815195359170478023023821218787583783560332101760427690125108882800892361349104153810147506907131018266511401171210479861480332743372832211007494469239396967377295553350304504723286881184389760097646641206390072047728335903514077757440670905628491016301793102514292535184458538440043962915829879118491774252764254295881694448719596648381045269718791205332045373407161191586770659282114987605368297727691584783463683881757591177954525960510026543080241350353922619696218525067255544614609991262515010580473612093916359429156984150340116534856687029376812397346695124973609030085449453294256081109567652860917251103643929477709686464972877600617894330833256458599365740979800014424075082461253239851118964885768843217407854986190531895332796900911842140652994168146094743966914900379669121977546265193910256428329816827181796223115639883143045431916498521268894748829547278694356803552673428487457949692302887427718228741151322676710175911364323798268188412004428024708639972847991562558903354037763436293281592287789843082270659318386240697089789071020159931116970571757672235903670356339006494305100177951295787571356964686419843966227120685049076939549845775669395188404569839592002487152853382813014102588588214933349614939784275333150173850450283238343909644775333213868749154679641052952644489234199011487445866156472510232871989261783135950762361027363830624971756635441317195051470323873831813542671358669824817878577740928777463725813866524935644297590273337672749826833373642145078045506646572342464675849715568443872972390152950625783105991638665599916276516660532928990819451262797670829321608431317289202901843047766471519980875476711337632162971237081352809312760242865047461060746342324211224255127915958720157995194128440495114271378975694470993901361028121674990699438486310452448489890178144353355981715821026092445586013500839490331280445292823522789564980206739853317695371783346182446120935392907866395442861941761960033495574879098340567386575286922860890889678407635848695888209931325529027580207759271543090060594910384727063112494888629721293855819700451663720877267883871287214051453641631445422079996209434325575213520383650597219217122336508196565141313812310889881042761508002838262914208893365497241457936454960070184101385791312869386130169885327507795587761937840691917226480606052078709412856513263438653688953725813241305114462872386752734242068793911178713882448387390204071313674259572993073667580328544852870955584670658818645736709762931069315400448450544235755814155430261601062833893399120921646684050219496969718775919815338245855183065921334613667046101710976491914439906374473479693376318529164353923543859969052532249984337319717796133867365111214519972486398582924348129198255675893627841582135944369354976380112302888726587423205167498897117819545298978456065530734503406939721840985525011667402943210999783150772190158101639254293838992238239142318014924084263349387532611733927807531420732523804543678875951031122222638875429021511823599996852991472046823755418631098728022765088273643861676664515410549135002266452071158908803048705469687448538265732295791028140248332566117374182667669944594163527238896461020008172912323758922894071923164029847361117556556343390418418606784502598513721547945589464151673986076419402363971922069340363831744322656433904644271964334106758915101707186652912358319208907084173946101457179722336717777087976268334701366885424609849389121031279738376413889746007313617853904278836680265177321235974628912470357743692288037291657534193091733429767256424418858734191802817102852403026580764085104591500994412227540078744374275249831085635294579626425114741335615915580053464894779818933498290246582521272263115022248390864968152387469809131011810030882529963850119178931727811975841787326434521983942953386382559343027827542781221103693894228391598563130057150560632507388783245342774030020825665848368381474170862337554007715483314969908432227868121751532894277855436327932683240665735196251795423390027070721526286773504129063641959151331020936634925185806837019855894112616726262961865310108972161986180052071203835354879761975221577210235831933636005834303637077141707276777975040711724917637373938014290317387834239291933030247001722445708377662649240874257082495751895778097591956225043486278764828677300886332388310782310877620029106976525997078407654494777629129106829554760874362645297496759710558581386743528465225627897119562943225526298660734916705574474631607064992485856529743019943216464816419817964063667640846830557249752043252936293649680321785709385068111917050088667207069408022513520124904960999982778937104286927189864712315172793130508015746004229919546871356166843007620761126560276368764082555261134630324065398824712435907232791361919722748886986713071261788406706049668065171601121433829496516993478175602751094041660508011291170423290511939922215232658647458309442382096152909286724811216222638520015984973071997317868416941324808205364881181303651999061389175919090929627374924398562019557827663921821803563329519913654530857119479813126546534622261225761113225159113234358199267662251232305651754951779475035487664689639859817424409725294812290209683647494351707561968192786328997462780234981756349122633701823759141044167236034574336489031888802274258004842837738988929167900791127064639133666402930038808810595608265799790653898684455373406356553916128823629244322641894411130686638704560895273628784055982416942200069048840838973074847000690932760700202576444327947292224794190935569332703507601738213830003245060689142531620762176195789592593790094012512834151824000192864759940915160798009667918755494699432852801707773429647287708373318823782783083341538906263213623057836300137248773298158266737621797559857575625237558388157782632090686778700362625671465619414701212713345413014642554266917431650306303901779490547359396588765229289041761651543308079647850189101069538228328281028782545107015471162265583300589212042040053717590090257999590658591139949004537420566165593428958609336224643439672661658671964328964177559626861243930443825485283233362722548418112341313007068105826380500119449651420266515917148582138633233270674811554418592160311857757199219607165698224514327101133538030848188517048223153305299845221892348617247039386331429331726884832888996839469246460834183644889782187387113295003867362060649208947994064016235339179615213385640219837581694611162028086260856941203039842558125013164752278603102986631222867061509831401116243325709474734528005574420751310967367954260132193728057798875279241955444790175048164615703615722074225232581030923108515633232412807992887614317803453284794843536436457077127288930075453408556572058231583969060365948374142001425855800439919909466105810825078188503226188839234999734135569624521377669590369762300429324938862438392650695139894601076851695798293381216462453800126621082741533472235054344629403775644956294091947022683826817921645110271673746805715040197873967556925594029225605284976683759456802706435896382210352233236776184056428081086179705718276973144295119692278246694975612984526265656913425148692238457487247349129770309133695708270216330453697253549453700559072524225858227484094573492996013535767837231492582634742865250460896640046444588849476662604483025238736638797831882668254218104424845137638438097800426220278388248097436445147745353071831552855425832924304089064749402632453704309197990683838440550491558746722305365186341850318028102866277776921182863358709205388773019100324254294528451561816297576346990032945954557493963077933596389580322530344924987468509714268550760092959744961776647435374838653809256609962616341858464303270670661204036854410614308273037753446456637923032375668702478054647505763215777496572012744858404872599784214274683175993950208873913276504780189304740852219665870471988154331752239166706495336547469167691658617235570192703789952369592488870175101586370919086012027904274338459070593537090125661957138538461119203064667921521960280777383734180135172037097480032019423181268265287696452276603631082952888075214410800343293042565082368154988848557732353115177506743274896627641442441685558115465845295572725698192092499845720056284507896230248385933848548948412590170106119392146830317440335570058313713233583281060845162360340640698699203569242233859961579456156948025587331358730373676701331563264842749505700933259759205463074254262512904853464041455287842126588661745914517268375127108504494976173445958998437137504838850015289459116447207814036827346605313764003183826442474067830454373737375942027236933674160189273070200103652103518525657044066743052640466253029221899894659889074074017010371857633431695441383800429540925685628935306820574238721484408332931810149254022611865135330095337803677368518407312295403673331561851694186989121459411820399294695350788582886855772684755736611791302685032080308435835246775941292454274960225263214950187005644611786431365725202746593698170077072602513235734758762040102601942118959928913769783608729024441512563792094269440991757950671748434820988009276029898848742951525342306181329098633303108705055418658242923726249444796470568399853623451914010370161870077138051272194482003304467859674150231524710685840231767572350216194544139934297076791143122754692254272396582291735922087250001398080379591508834634159241152688720699566881329908423049919841293992882970333988118833150801168052442082525549182545972696606189357732197628019586681889822870227850986476503743046933113618285924127681548192797382790297589949753233771311470478638989302890891964369733794071157511906444512945259994784152420112549602118273609618714648830495980213774062687799424484173343469727697596250190050172214062247752604295411622505848959658781664848696554636605400473818716688953513263078790781930194332280507865649682993586961757422181658603644195538121653297346367024232722405994023397117129320751457569620518481295896504568011856809493045396170449583634497985465606883888931435698835138389513723432615322414836875971829954237987881460821045250091921597982277629873635165254591122024484133883302515649244824651207367006843400944745484673855610569283486630196916766263086223930592167375127546912993797616873006865949097315663316417051285041052877569101413864024519702557033964386723620252742913805565038163682516474258625092543382753061970715614222921538118026514707034420104585666822575686150817098876167300880244818859553048034603586412791926849948063344063019456709295372140658424926230734994761575598430590246631611717275739720641513539806249264630391279574801615845784747394266828405722164671047147418161640384822634479700079725230401597991265543100601135479673394078244232378990340432899629519020536645802985891343220082033133005944936137154283051248645872944221202847616120492560988769235089706338788870584388229537815743503203667755613808359137904671019630429916899166592416120239225566204944780677731386982337318783856968973215742472714541277069507405963820314386593065980399978607331551731882726245578154458987476563712659294282595623241732944492053478831628558460879437930548152323693547140749664618523954961111610044131756099927530792947102184906499922206587968536489696544996408649904827418019111895155951799848626633623691638123441282812020524114728241597395761381168002989930152372255410767399880563761845162798627571036755222111204917916201661746948780474576097754711668496316306626624531907003079635900699477704407523343448033933343924827519557477095294416546254002355466391342043381745455858030520365557697211132365795226520371776481145233740234362001768270127536437020013774792873681689332462274983760045576716613179476890694274378914985953586085488739147730543378657847293472210975509681245977048781463068451762471518061293551825864603993082209928254809458371231611616429883674744507272686287092002426810965317136638597446835787384067540363576468240591525277492910141133161757460766136824374689354236266339093418587216860022034622238283731890938880918533112408150255979846641202921919622460094413333799099949657636660496010188627578685069752429595682706595469791462820487738385313151331576334934417662351886505476745366888206824988755768729407899189654943444842182147413281432926214268406795269101256074487255523312969381042193909815939805902321790086097493013170732958807167557479192578282870253987362584969726630409026765016777229871331407680083739877815859613673442945043199757403602819038924472722875543897453997364780407843223963141981412956788839990164679713645798771525282937145006242649180555534862983111283038072300748727075327960718850595318524440344670379903724633770367361816902086438906469746974177705109686338616274807949114821084610643515169482755724937033621319125054151315164593286065980891906804268116728219316265758906275664760106207767095446082645484946839439119852529375722423267257275944418622616296189052212368260969071493020161841066425484952152731079023054790828027118560006044822864608137793062658749512728459837783086228485339785410820060466581320612463556348024696949278705889909917721634417750383556232881799938922782919381544671426678745345569426795943053254437704541927350217089783106605288442460415260422022449626187422916341040834160805445069237939002483302625284211960072381601442275101483511599569300857086205222319463306589320095020403396879154120504837104920130837021969789633828267666782545692539213365378339671999235087514558566973312342136285694810432076112798275505011221789478175977151494263191203611435176019637827902666743708003919728619742800030727154891046536450649281356758135253175897623240148870593281176066273853358177530128084448543901497509140284288321147973239612378072122777039853550902427686432384391759275907365008476515898827257127122251862626301124916547320739757378069336830489815039871615442931759079130614825973787406800170611775754518685291222955273242316176811926356774290008500412947510956718573431628497394498590535456007847762416136577707071826139394079899614716768959073623472635358431728513661658107724974562292328129029330290238528970315665538417383329779066971248734643423585851917120256088276180199529090516420881313633769443571828980768970536138170959343604315716216992217634181839453851974669046356335241916662380258418579823078365455814148134743575319117062826119079298656018060260622153556725204147907712162504016007045512493481905107421627244915302893040780414919527410517227106889056792819344582304371181452816277081591214192200859688026579213819044377522313587076556647377494072257581559631570011347012731411343746294012236503642202387598469005401221586345148942832285774833136293739879848137494737728914645148125056559210274470167702824063044513561940893896964087130623278647566892715735387101844495115204971121598460515143131069067600610820528615669680189075342782741529075239007931034637080016099166090634397872418681790987184915529945969650408182125708929513322228083610301445031541857418427843006878062113156502750700710088716812713986557200283693602867314175169954688696163278512479560520211018304070329894069082358981469464709451519499148781269482552699259627073940977374226516213402952600900208344017790377121211923217967229450136238226811498691186979114199487990820009546061116653568588475978739124846680265701707511154912693514156014573903587024611448540652326221164198459131265754940068222383114549342033845898000117550776226550230822870957102084111912409706492372395186797852422326939863515384592877301781472105947427286028562385966274924576137455064550391426286651497530617589641643848462473715748079862150437415048464683541204734072853701670745930636679072918346468093174572369454745226961188286242016036177175306685139155713793202928479541120324024677098611116115478559875248028560383639931138767277210337009703240495007237089337948209489317404522287193163919806768364135557711921120087528128713630031554633971144717815207853932465918899251566475767142263151754545932297988579062774677818790339109245459023360840177648881306054826326608543943954094874903774634952122693149092875014809374671782804944637655156274561241776234236732533051765898246712190769187266240897050488696322878982643650350937790349992072055875971155397460627746105434081984690471330845310609662490299937952960434309452339338688608569461074913750748617005100066600839699640100393942056520621727898889559806629261964787491864614777083770530355910800844379788172974814284552321564083169531157514382180541066693892376720276977232584892678883555117116780930076760930263335972504929437697676742267364504816435420286087763968342693712056518761564424149395269666345993533491622582935034176859380702626181613367861156191941057808382568405960535573591234510534275723091038448830747101735786290392598105290065134860542141432682874140503923887107262847649704688752727880721951713728034102566117817501396505955387678475900131646148269755473493399245362474773336002988763402053237682244501675733905208431374904117381244122598891925562135524484141600875467414739704619817990608704951229543062811215341604756000763367443619360102560267650869010133654792688742872918912396636247245406594506664714390055525626218705936178520611887351618409670938751375049619995962116224771879664824244113704654082530176971212512837376598412993895235703971612400566864861957569758133430884632644732768741374586841151494579983074993427055740566754206129373507014812487146974709000537540093995947810134612777853911444547904348472887047417479988989069445674670339122677316692654677538602454450130571056279377460628319479515164902516161090938555552263761056088702860923504566085520741872813389815068181206424116649106404884311733946571067292733088118470232545588054124590317953591486071637184060022425131627206478592185131046218015727477370354424370135530249924603844783401087380418059872251338330498439610977557630554816837229887695393649697461216733669634214089570973686028514351135372093294705075919298133620396762462154727856930559583062137205591966205200392679994412251506424748346300704509114321543951085952548680819892658789113764817873954369867440202433101598768350799098189037146264970998563831868687074518763297052244499550832366939899474322010000607448771611741434814511474778757779782519245915694611057479669895871467894952882743377942628581085106318454897637917570900078025770712415593164399213511562296657778597229376563414591785291337808280056309352237947693850885275692801205262412995559834202578642951971854027884996654561459816295185366404588494121664840396234724079432020965720907785524136443776042854310792528516478349718997739718923246618143392854038708146622743264115316493614206357077638122931979906970583452403797418971069891061479081533685861560732647229282763638143965510050296818807000092547861436381496891745915300652150461020245964071063522763451013474283914978782770961931191182907417650751492965846277234290945657167518598903042188971645316294639156817699391442031907761060897492981216446633773227706564925006311669228792357913593189562021302517172794459464616841509595527372616472007744606096387577476197997328859233923387713880623252986372019669906279506389579298712762360580485081267571749567712604095955075965555200939718279470068759308512036150341052462462520839157648361135062248566457750272247956659789497976453388657444618128392815763801973320817641643146297079131127565282162706665937343858085484254178940722208923730003901330912902200873048295789480650535337672458044342567047577480710563575738352719829492435355824783263737126837016096827764943367181139819099261245052027192049898822511445108537161385302530460901787492505356374564488547573311441876404959142389877683394758549737624412335627251567332342894251196486845270319849897021141999403908056242426628765151236524463345371526657886792111355264934274955785891540524642337147476721594576175644296324546789013962565997423910162950099216007507122301666503332248029859109271360056722424632547156593690411140344429635718217144199478948733078795372546562617392983108149719680302080622209508219071152990912093439731217657590727537701094125098183164978808812324787606401511947754714173008490899427303388089624952939879088968324808371852332355888256716664166797929592960285061072539483268515553026936145459100459100483096047658593412446162850420477818828256279833492212617053035176536673807502076102055905032199790086777913581072360793293360393248007781628530811573408854381991938216991195597887709122169171982698953932155220902756820747188705598787761846559611050915455215840137040773984963821230001951753810863628510893443324775177160705695666598753998770029023034965986471725794168968076366627584310421560947291727270197019519278810703620305683276875600773746226897382297115913146218729355106783766346498386018392160795775332663517526548852442743218529952334430595335802838693864256402413640083583215312476028380534234912436612761812194281010710275869780857191937657256159795788297410490775139388082337984209594323439868720079275781313136412421243817442846632759910162150373575015048004583824181672893332018759852398394153969417968445680792169384844465010604637180088415851354173579474916352686222259417658489939790653976576841184807315238508487765222129933046419185173860952873261807482241614601771316896575268899609723732168627671142943668594585128634900081949593680117297718751136602589983610585809365501919136165933641821622605823566509168490647624269634799966769662317800000010775464149188000065305013271312347043636072128385584285927753732057699255320834147194584365990400872794100018226052140528685530388482867722384525063213009793239502744977229314789716178216106166347513521778134695374675782306669408857700810052211088885111912755043074421925206205189164105013405169897711500751333186088840137476587485876693650140409220919621424139393080659405043195290145777339999363785031400159465344572833191889274715520007707578444463069253233445561979403708564597431151511211051527606365119244779306773002997071868258882015557931277737857885904884687179110540413390710803009019404588468983793204433576570728079220486421486419188767498680573540691518372266522424107260378497242613854736529717807301748896616065556006685368202894358889092630407146215792620111066454046543160344548027813889578500265346439557648173615166710320405811034588303169189454237194093712528671259104333565166541792046732839646102925647690461030403029750681309566922173095534019624362870968188605235814347307771463850028046572304586651623822152738316457384297339893171051255679463398910315470149063269074043490838742301581221880583728421686707301638359538444530069346670146176431500145735954641786340562335521977170043699770585072719264551014922081329966666116811310818178167671788064504778057717627453197954055400473508413843690747790751612322108226873987858818669706168420170659225334098936678392146512325511299536024599572001414185488004866000024131681951735160238031359614074928004748057080217712123227577087494533456816402304224434103536941698377030027731004188828205844995090705324335582795588298858502857249727099562372518626685252707485464669653554316286212677923844893984241598464437898029976406954189948787459971226637546898207125242010985244678520616137056173357777580062589843380155028960570930496499239492325661851563457970668008087354508739362250535066041488266997072777612543346747278179367852805786170443453646287979411213003774170352965320573101280054737780705480964651233890090196331728897895569649813208745391332656278369410809659269276122536977414611692310925160592721617371034487022362721270766837185611932897626240137602423154258045711898401069937854002515014372441111730465638499677359189589081773700194763875356252459471967377510267643023028138854705920105406732728947950820683592868535527412395828765772076499405256222797879915032707429971024779912181223277033077472018894397772022054618420997732594348645012253548044229520685372143208637023162398227405202894874829826490839212875713112285333846822699549022029485093365956275187282070880705454547119403132753157071948045794323558219174801577514051118723702655628551550422995825510893203418513262777775063020909786304295031772864902702384079313656815879615079916070529813377714397693546097173068917581437817008673570017926917250015248350103158651975036520637313409246929088635682030717678739529316585496815908888605255740903357448413800984292690770137613725482871216263902361117853975355769905245713909795875344425264126434568123580452569469087901282540298437730387393535266722043079298714040930878063334906796724422288461624067570470446267464421598567508634140509836546126531138572358364823757900760815264272805225837050212727700153875226654831468251621944828775779791765670357152620687785251385860178108039202284572236383504177326680978110007456496093510728728089064800991721732953453674591285061454498133254733059721066878340600915214967908909114866122162503194249342504264465627247354876094700244287895945159254051424596155178923238012881263546275744673491063783858529848891401449190020808657833144541065641553211076687081216963962497594596303696262645289107829676580300372248659714294349578388677509531954129351582500157198684229048149761304076435774628271510479725811101853337574606314302656605355274526120130121215481592101856071040032760383926939102289749781855005890656531604917257863966702484599229520935961711394725457367240213602072091529883147493838309063447211076065128125754296323588989392977466069335645528291316087245635685894846566975331747598153383281717323980217576408099875442190440772181965228251101006944284470195783327216951513909089523027968129950873696331835164470397144517262820904408703100418591579450987893312606461889243336029038695685340731974737121168788088659864655895557673159440390565483286678257697210592216544844793911769089698426254172453297204604672957243879054367366695248278901540785964766049438462503195667741030214726481509692006932311123636984104858131587838634289386548017822069176116487699623845169192461658661786897509163387687834673476418541751014533148776427240665613020154933706962286984557888494107359282538442503800591966263167291006412120709647139606304241891198350822396487870179495534883387814374638477574833185553860164589581184220927724330513304183291977900605984331304607203080293491947939624286380041003622859128020439427581943157382226535787419207757147793614863557599732980136341550925910935695539689057239010656646942717126329742881801531007053804947382521083755773015309080597220230595036630556118508307984874892708683281460866433155119382585259836515008483565354304625694211209688521992019410080640109995843444502539968747212731776438105983958212144366561139488405011360986654047371940223852987120184504848868593476310856789153178981767383099879681274632910533732323058675779697352952655678522146641406045708664322842915652211119365345323273655814243830728149042504694879461486006151762886430742557710466962324043079228136201182165229186429983598678866196461284431076536480500832075581452161412211600466622202804171553672744312374300944415405335000917510035777961957335377483733060115033760012990753444214107249806859401881005169970915134968285282239585743184856326384845622040992818420878422663215964297901861060265640549939690481523308306880959312084890712456844899617252652422247509465566277146585830856475946707873018479623039730497354967981285320238237248921343185236706676553026760164401885287399623591032130928504809274284374203530280066102261249576603344309598116204913898463699084740589446159505513706637272703737834121742542615393090431641612252612921700249649051508469972863323379937442630089365927917246654952459666161478692776481950707641536248611241214930321817282207337724030150282894675946614620930463294737441457371304819173453247953960215277858931476887154352915930104137538089679511769256134447147244611130612902453954531698094805064555606821428721936504675314394743865805507517204224569360152111306334657785424084401856305294233402627827714221942417629022424223450883670709773714063234312959408009396080340726015330884127959648049902118148594808911061333151119335905388652555048088774256769508780942056898222889790245888031123155057143810661793764185822086264833409437989567418870855550006582662456739662306655398751214790810588660968105661578706777693655850368496404919106587660228322274121336519401129016057130698898978783069797850898308453870611987258695206015444385249046705293339278657108755231100497361979150732075313258515794536439144343736981662082414176424713393643613056854037603320183926054694910116294043622503451811533346281357940703571657022343134285489344895416246732175672144746800135243190062549954122188389037174750242186728330086532143503404894952220184948354324012496451717301795391868563438053847007723775946909890509477779688205186856288529255457834824811405211574293894689343849509101618655397227697415659876732155190800202457304029629423899093107562606112238795767557154988966675801475250400876236110332189345925490523778484176639655124910698131687584475588413580519620697252686497019757042026576883259832204820412548903271009693003432910609612564872472192426704294817584034441717209346581564924676411651571981485951902955842087186225456971636757312346682623912949274330657060885245492793966175965785481571534854290249043485563760798263819485290935555840732202145103688484328058558016230141522189439219903603090707462140552066086435729968386535432418956956921566952308091084362154069056424827372636730097435492267800078060414134869814914478686294292406782580145876261029911689485381423985239745550193757337434137682743375121139646765330470390439743687711936630361604258776882691053714470431239271537842115796464518981337873830471727303917230188145794216711007433408248133707672083559266384543405578164331039095771348287862520843147762263025899449854607452674858583253019169155433573365736267950770477990120805760571918630073496378799192739635375736978415806266060586981575876778308803226796026150934298503020362219553760540705668602067204275132747305681349466139022258676059315894756511284043248783198848908922288713982611466717847388994552665077653531892027969703449251852852341348266721351016813250108757757682699149272650567043878621491111643514518595392871921298410779188140758079831118835744394843660945081328477092802415463735475031043172142537209634283817781938486781540834102940153286738612572319143739849245216242326853234786320642658066607190102695249796103802719264745857948479893308828839812746237047388496521820208730178395820292314655064586071597510804810386145307874533943552827991009080601676882912568851539005154681241687602661409208625705075312508424754434197696552571575578209791459487352085293379087917398394067131697801939767307478941265363774407993291902353845293209394980214577581384897226059383883909633526941186175001637671284492392793665851451250523239580270089937344475306050774967092129479580853269776784784397310748596334264256256637151141277756582934320122049510108452907383528798659541361770070422547355471654175168267067882248868216257377705752521968890859502802961678879127230446740981861506500227387718630367148690844036591798166297520014362004599046278053658930374579617791230784294294581224652304142800811730229797442638382400557246451042185240712470486825276497490440918134606298266338621475169688662751335337050990875504473784495562358732850346017485985174229546057356577860420010230317815794218820415583857238256207404247831500182781898124401145850004342577505937470951205167312735272275137299832223410422095844535749075925225884034032515365535373794663402899787787689053216948217119959808503362403558889671912233705011375705793542411457903887249436173733038599618125281622833576302642005994467609609865320150765632439852218481870524992695725391763447228071604928014619300615274276439355704278379749725207140401134392049589915691335856763608148553378666869101341582835632006371828529964879742835778189313019526885111458759401212805278948560575685597793838117600568043763669921103679205035243197773325118958893957953508190348804325500239950089248944995026337214178413990876219118437438241254476315145454388610771710537860130564643499647363633984122576365662829637055139877033134351791793094923326241127243448406382117817048544416490402875666359230905561667518024252977656043194668639873063247640325147961797140935806794164122450842856942164348990020702748004517947851065722485184830419146952987426005898465832149345373641249859213887337592100397253250342921158707249999144802467329823912779314623439886923314465159326546219246192211634381860456083344123609648519516677467912091441304158830798551243885487172123158449229224831398484076370175383734642277403607166580362658472538515270302795834942366204488301433697740887252468647874814895140141582468460943778922367100285842884323115825786717313290711449158408194420211503951449769421934521404472621639361043626584366301166766513622970807461632366506891261365509161746126949239829306317476288272526072771987555667125777796285832258045505930346395840735979975925674647117770808298836448049747825389309066402715997944078224089361962722326482754939178273176938062154937488275115904806891801991866865908123321468603834015654571020162304030647237989642826203989953436457063197333231402616456755621085450655410154859034612800321986635630585690324713772062314756091044418768580712451564503982275508197062292958693817541104792161422033377190975464837163656128834143743974001003805583298011875012663615296956285655924606771431109833418990662835997341947272704050612474563637207446612307046792400191469853697772065676684233490814291146371244304233694636312681855375075180602320966504297864250129027368791755502519927531138042066595604089821486870211141780344908578310182370833711482781813089027612613160883310894234546200237268202419679812187572006077475565230465609941126748756232946677589800539834804229536528687833471905366984547001277603639355435391078373582674396961225385473305056700289900454904652921171876421094173020039478580997617092433646278517210709138013519191379600894625235921283772796041777129500525044100715872491664732797979984365439671512728898179563444349693350127060950434963330159530135294359439464942239377222136495580831274204435031382532208807228112125436403496492050527397413696782195336218977506410065996419783227816037136989969822675384037142169998753325695364499776483701936495815478524133189305096591529405839387222721307613787624657900466906417389312343681648270163792193323706599191845985505711987210199686996370108539687541985948860125934726248380682989147763456216208028733678762350474903716952846914240405183465520209513155796862634367858507393405846491106031115498761659560712333330992710568697436361222103982318687074723022830966866626916310124035470383438102125407629506990703701960218588500156563224016303324014890439771036649034041882064076246325699114991484540236295325212492951486862880321199524891816737030038485192700486385984714782892859263365282707124939648293055055457673146036668494847759616318611147626102244233309294720443643612316521698246830129608541142028957618978810676582909737101117247428038082473566976726190028401809769996275562966167517096320079627763764218653985998221135718003008887251138940644852972130474802878167278064644027953772794101141885456114728848204900632959343042157235251020581076724327603913370584898503658735319139616998530716399403260240986450626608696656281493338019140589789277971415487804229917392825376218139289509091929258201166989505539341115630848012887511071362651058222507412559556706384354044464390785981206317267286673676382852737840063580741926736279678267651896730902849244245481515373394420309420433961989044309745047923540090767850437089548070750811295985355204674455041541830085989963188653934273716230629330259774424243577924350721418518693796164543457656184040669933834547668413613534164972050523894110893168442715894214550347210333481278115547969292482810811738800337655264893001860236997525940872191394736273568824151301009887892926206338532167831482042353019623951811450390697561701138516265169804441385056377023782156599545474648815099489557801351807745809253720612515146770240022775636184753475780721282942188667101798164142078452660043535536407839891475009234622997228887065143493482816911474728409930452262668439588433652214902131242879046251544712091395072526287214266057256757777150886059129647483572138365771995025890341422317888637065224905407881886689669953819494891712613019907715515252203667614889878605112664281889847638240403270230507474209743060522651674878412962073019859957819144824855824563893289946011704421736843571264867828484745542983142338774561292591610367162851952756681620957047092276421764455580896251354359918136288381144545285355811147588931036956621095727829861310404614269520018498949004988409402634865775579609272261137290856663095219481762504981548887724387434330955391183720415602369730088923752999740613700724378857640762729199833810483506189939485563651675331974751491447878661315970195470593221845124168745375122031888272157012985497373912207005161391464372514073262711532897983109089405806920707605882772335564156023400798092548441851851283248995900659795698765149680238463218280294224238887330471904726430946070485970186249777269766669722972964924921641783114134569898533661281566765117606327708839416308713719112821652271000509166175606785173497019783516871347036598233128676803492979256349232084925772418650317862857526329291740230354161784583166812112003651439825052988743496505186265767708719624296361591139757052337603080588226914663863524210836854011646825742364965763124502618881872116533927371950381161416651761174896644172712143659187251389398123839777473185025385715067545359976852284010734003892545039709788234189998938790184987912873871734452787275525752811591743470939829687422217630713478597527899044570430383813104324474478019219092931762217828332438913589152727056046177931822339290285022185092893107424261316189530019188309801289347439769218829536215188118071052760686847757463997375446627174191684919804601707599870564337675199185960476180776322718640756170425997814251036273912041425502328282911450986936547690096511734789064722809078877991024147438866899213061704180360500873363707307735718947763488848341814239955969705372730195069134587064126367334746651539259206715426065436190633475645491016793035476692366551304704143879230026061889442936585192996954723208579448437416289004676590866946466020595087471343329541879437513129273636066898122876085090693134846531370198256144462720693654948267874643296032345024594298193425739483392736578356964758949299945862317143653946365977683395947780241508946486731645091638748844756088733148250050436819433371510541402710916402099011568421082086010952512011862556508831130357025710815438820930136337988396012288723066368244223854656120490953493834937312264442722853833779255312436754826102247371947543067588044927409046475472251651691532942968594321242437542901006826770737230286881866946358676449919137929602982765637717114757225251754582933810999216423341021273688344034986666141821195243591140827371116972255109752008483920190030569013656815874344635800781756826801068301955742452578290200836666817502676306481448537145775347053418770217594883172968826317110614490069402366754801237335927667357383731506353903351935178044703158116259682858384284271405159592574545197784375788074521608648834822310194187064804145717850967024180203561702157536376570923596056770115915443410351961602317997022832192551415736085941394658022623883333195852898833382106075814241836295869281361499542389395360911974161149558142072992328714852786234627491049896473196085582174362087472466714283256542809147713182433589634952235142180080147611252462921563594044437410371519307286667421644727203215816467132642942266501635909435173966117303633906215465764145884279648378219418371933296023016100826279757175654571158595464365158840474022023494973040547589718152845517573355328601971578931042243366039155174113113624168580654688119548071337033464091105551728555877714451136793362814619968118923911894730035413083549295244197963483871421314524050403304478500733053629879083479134961726845311721508444598105053455784430977229291972458920672732655681571633138280841301582313045312121976276990555511469451380299259317709883667750859782682199658354722879801447326750708751561622119723368271284027993933154641300965983559683612699548436906785916394271050809075063234336207661585732237224243298168704255901289858318471633430996129200867035058768626318937314899091729530334887124312211841903466008342825232066236435891181147727502687077272819758065675356794080328089751416695038334932774133882733833302968607308744528241898889279697200625614372003390962422669087461527972337301317561499975082142759757641177712865545572955169760253113618506060942680188828078097310218540095601176441475274823419927379300570610176769239722075412847908049302711092902105123218994541284349638436947513428533800960084028933511548450264629952109474420982750652567769155440296760311277222258966127737896155390910826228632298449803951752412664983852841220940567562863608857152474557005906032525725896627972945839379767222486185273569193355437854557935521773756150359116148879950796263686639049579986672599126778081470180635660127166232772458920379530511183828388280359320912701555552558361991983327432384497697087894442295693504855985784654810127067760297019464268105590234388061462582899520373568308574540421590333519581713532157845868280478515359962173772199766386495077010371418375378954453130277542919954394792469401394510988929892402318192375186474574557527812738601530079101147909933753694848649279124869052436832452284144592500226112843582595560661904151216874965161913502698304829174080760505532580648260747984592116817995640151933911522934622182631081357009415478030929089307003679582302497156331713287707376200041790462778411801116105280279043219509236462614579569113772725644994042136619171883732979811172109256467962124274533456724074081363349130646799713606817719281721898353782899114143142686046297821394699038038873384347327724147591718825045197889602937074950160759278720034227657458891009757039354871341331503812171682210389349413534280253837272211906624174017249992849133286088341589618316450182247918317499524765743792170174879529062059373303304377957661436143309565772119945074082275439705653698353372910153790833069095147010738945739069594257780697840655659621069300466330307486863978543533224636846821916916757875469510733873683227832781070074217910730835913997171104709167950473399897828067527099888056003202793080825293113222207238913368211846410364000373967264691998082721228625952538847079447220440371592148328470569363091863160160439351945568031423301142153934558480742282574220228321362302427342195908041658767231537129772826240414618352303635467310022875478593927074049707590225819511139363553357750056084891627688290943567622188222037927248552786705141879258981744936466243619724027667307627319584697176686724855901437950919233291345820795442755912067824807382115717079587835226505685016583551095085073514004929941187851837838158164872540090184585283789415160485906404499488695869760164998811834283429368357911357075673185619176679421039498623124157036774204711004246609920975161819945507429984950913071844508933170907073969052869218416577419575808024078335012518925133503697456619216112819684855600721731530624826228201434323437370778414404339013837936832059316076273037982856762044126168829985545923684423852496069156520951201882982495767356582350511814680700888926919734168044179945392480867168013647797231222770334192518941150561839993402473862118148523589403383714442667070167178038145605366166087442327090790080593472490833140126409609700146862026522048344637220583316725326473243271579574592078416758455187066646025106445607138483919243201054444499981401915798799642693268418614049272747094115604035669857642388573416397441441185486471701267818475002731757334508982225935624817836969278557670690928343873080275798306812889126402458785012211603689935930383850213093357675894573889929940356040968240907779819730253614820863911896138449598591025333156132613212824119427465965031408253650090857680679256518220567007758105530559130415584703045097035890051080057112474006067529697981242577882989375725558362410553085551168689451830153830029150349052196838225296591045151438982604329746466353191304995277226101326860795497553061664782625286715616913258802191033077592444742972088526699778253593805820347220529800603327815067448506524670062325903354242567318041321472144744060594015259006332498654347000242827581057604473055463417418780689485623874922401447966394006548914661129406755612135427463060369460489316556950582643579593276336192722394793122466231362111552358118316468131569294736879709826703031601680949487391734385749082271824453891495454850178521028779041414120896836825508199928635888945553516651635976068681522613898656416844929682758556678511604100203485468244871312178862174833163017548793700410447347459326099500804950546483409351287036202046929471974603311551097910091924871962891535000846185628372704451962415345694257139547108917855148511253374015871441202131945560316359756711394993748029507253498957578886661173905425784380161139235619996559354116256500046744330038382741712150021208561053047001154669312960935189777141313860283182027994659403974608964598851707489285151889939118221725625855416192495018616192429976314305910901805666171455552557442956763777216979937870633877354004398999392405968335494890104167771459881561159093006241706817659290193338124590069699810381053520220305029133219051149265323975557080510901181664034847088617577876645964007076934499087791844415016705149746533858938926845133689311717691551481137445029293879234197324382650326407666520066931811831961656559249895010983081225291433115127761971896737271647701869869166362409193085926739794122749064496204153889794313799958915345895299128790767447336405874748117588429919595245600583617709996923507549447824822982171212527154633345320229697677347748009668566205956839310659517604887148517770623395113325180700891457467905653448569776406793527910287736788804469981179456532562820782064496665518266200140813169941141054634842982695625811941999453172554446103818474510361698815334358292325856533727268277736036665625497126697734716395922856428933831244156536863912567597179332415606607166928446897516462718361195148439460561996445347356009645195141894248300227059062095337314399881690181673940944482928368411732792826654689109086147431610852536371944738555986009507227922237700164690619545409902122061969847448420509866072496455395412615071108823457598221410882957467565406438367766557597863460878126304232943167560386789624060144730894276449533886022206505199796718551410942341371680776226746051891326303815395467026310371896728021359425530929316618470241488639183776951683351329181435904038078351257102560122112342828193524358542610792367737268009101686080016597028437651844092908001931965344549021577046335797365330132197411152657455943832488087084353460529357789766001676337255114721329412460479866920586533153786785442635825272549891981697662891166707217758228620096168532016186490994467076163581573718061406066657315693203536795717279287574618925701898153629987255965890213310156980371333942523820984279766080003144530964437798005443242789325292223655436214293431768476849234975563628806441140573823701152714559131303726454537407315630794510212454744603581380853211954300416882098823659958990898162896616768357337598924236504528195626343835240719184908961241397420277202385142685321593142500629567968409936249753801048790447654121409053291958789774679629016634907362869698888996203983270469642453719978581308548493339053742222163652829816897812853914696893798754237472171392944397312443414674211265088732887295328546521900472877590580559464566493734520776013369944289248363811838083890983585355592551079854678269445136280101390270570474122479095010266994952518336626419848886205842999841936581275985912464424050309474767889068442191166856448871007437328734723370466217154654795213009587826083950069940558036229378130033333096656046651815887514701944019787091313882540507937534472445220470357769059716039397437258586719040591754368686179488555209636262008380163382814277343460551975912078345723864319731954291282902191510996470088679730323829783766314771114754265250392583139685600967177548461701681092555128396095214181250607485003670270714716311362223389061060020463483722274153353735744843766649454867681395238698263504912457124707755279812816298644316129257939356935012917658435720278711930617393827331058035140142421603337433711704632673810384517364493642599287797927884192596239959659023656780200749822109073790947884601453993269154900191689685622854784962988765046555208424961313832707628699929366091969771933319159551281184813834823931343957056657967469648694528310054098689351897589169621155655923628714752392508116619835413395045520463814783907283815756987965744171886954849394728411466697342072608789343905053022859116211121067159752264580594334608104366171099474319533311716998301823218712556794626681377673514018256947472836721490300332575552623695155072628114866760263000314244195432463810382778241516714993751693474140586151358091327872146228009782482605241364562859157807312814730598766898214621696293232751386325862199747330900867329527778553890051249140426683402067679013306266326484464191937011878179222866680750410286313765333173386258393894637306545324762786239321620029170063621689672526528063797906703962623331866282029033349032861484984795981855177539825927771883396928923746620653485830892709926762121956053490827347308819660342927219689356491276781701683548275935233409795680192688869840478811383664625667679039259753059388361923666168948392868237940716324983286641223943442509825845976231775028388166750857195046547959967615448314106011951584557532148377076262470086039298661531574572521562854993071310645480392465932403358172714558750886930719660994685509026567726979029587197868722850535996712562098911117886720417537192720977516629924142062623300820149845463149496614957300419000347359423608704282110108924245082228624103206797594200055189078227037903547486582788218544505186379177409132279499184176971775742977165492642831099872242420058808882307746160377129490405623942704690729821858284113965962233643483722129509764160581163102522496779224565707798807151847800540908261590517750029379815700956146313816610305732558235632885040869265683103062853217717999165023330153771359503830124875410061590452362694984140129606257687907594955036239366264005171899825301027842947706385005612481467107933324139546653306550070493919417030777696969237012838177353759897777829048208772383419511794980217392081851339987145577610495607121119174121229655957110365284865764335257876062481381979781338032495577924026062826442185740085417475310834697228330005961208761054194218338834729019676166294195789704591324262353913952770455278421777166374841292835947526523866942500781388117919232660074132934879391250172078936993351738361242962475318673715301176787355204252727524401350282610099934403084683518370017344827204814111944273272615588268646011708679316659488664582249092138812302738421729351766771969170204729427040394578624465902419195298352688812368689212470642827132514418195121204032299536718074255064703192744046939338746182519105052170361314877313039866606272212319982903852398784259456756124156372239029993705576927074366859830645941540479560106644687361974513060663539052726922819040527259291621753539096395011167635053539142681226063421345901783762799152692236286080250169138229658796633269270317703737638823394603202718738216665322631422235692165482040491300747625004266715850717597340123088433258712205893960911871838652375563219876848295090813816063611716098792284872467709818595235372424155000457188595163710304090736006805624252613012598852352200889479238102742017544045142940821299501573458890245971318662684445724681159252929670689685974427817282290167519158871955687638853236542119753009110998163847514881642494001152351605316136722850003627763401344374732064160167661866616426401105366623892136607889352209601864995828282791033516059637564451994824191994607940756316911523648367987147842972293453882234372338861394332177260033838967124621738333848028767370448349418577376040837368140799929497278223012816598551963579702220188113697619937955642705668758528693019377487465817914098480580104678890493420703548213950933557605783276335425505309069975949315819413409258950080483466911136777644465974645153259273745325784676437407733883747066387731623272318208813806220247708640277315282811418618477025979733713784929759875792987320546335996048075598724074602812522468743282823855059134273896521296093232447353499810065629040825982171073345509480904499733343414715778605173274461224976173354628449695393471592486454102171559806787014953970913440524816200718774513826176150500203509759316278650199231015258148096992363912075572165308149890865718595637855272702938516064298671181360441829940819422291149530991271604800566460221263854408224794187555901318286375047746000895361718090796890410686915708936831064312506399656282443554561445535955454849791815244247695953636551251367939320692937614015045236084676826325271444124965028687431861545164709998721240230994477662709199352101424131505257588003412066552952765555376715877164876279143768750985925187438222976375288795358346306746010470180639335901015516559163084504806496575260608541379468655055885845226710781648766833433966706594867720701441477413310756471749756971005256205260064996332367030105840396225194715642946855657225929334250419119812154613690015566946433940048932119141855472937773013162414185967488582935045356266967902630675163164886357742854422602031690072655063242544214696351016735736574198079256028253806642547457291425716345731874088771046554745966474639931817703496906375435316122216779976198799004292186538077793795776127389913785744293580318361105765793632439582021411630567559416864838158203029154879389310652641086613988360623249365925996941765976091071852050316024645251732329550255378407107090755916864533541380791062466794710187025379602236718665415117075432213127282168331749494135890513150425527115077761804922806073007207863407185602058547305729100923138574239624552069956654138831488440072555607421208725254686114137548452272406109810583549151877272388363531695217220227451422773470406662129269384950572723716643661950284184672320052326041669420692304969490846958458158986957700209143148955830497896279939279169050117787349093693710157257913723870957196706566958058606013935087516028685162864015530785251651069540285630752040777650516050168452766699774133922310089279291778375014344970658941191287759327330173882442182728786742833890644853930485303951119250321969665525489482264763211473267409013623719640557932397156845631448863914200805337060845174339996263805251457697876454431205629870592114369285375782352235411009741478000939061911502289561136508982155823482411851295143677266951864869083834142748642625520117318918045711639053529680733793081308141756233632368954552064256903408191025773401051961637935173418301248118447095304215058819110443964088587158588914640113178240823773885730191827499774994035429449891154784524805208874334422169709492656308504322187775471488089772263047145648116086709469708039455886530173612354598971911730204630935032259998779087598455137273341281439413496691872817931868633071100429888396917663994870443732559499293972200229132357664783186629898695609233822890321779506246760511896512952492939558481537561300769422485550891921495134125835924760422527760639843296486040327614669930848172834290651571244304680002461674231202380275756610726162816335538675850596987878353220152099019482920778818748107552510345241031087752589171105842783357862510968160858884906250752028524565259896105251128123522565410606766424407530634081570312040998621605535468788849656776803589368107969343182900595077128107940616045642871184102703019935540486108584426817362199975323654293385831816585711308330595081809443835208477925981355227918352821592133331352476383735925390770343714546946088438068747963394815899253996070074430804498348162528014106365513871277243822593232607190310066536410515797797115152953935197891448559888711548623934462288089456993715612354415938038538941888381130932339365398267489591163385407931627512520682029934076996638385746213613173370561290774687020190827395868263565873483452968734386893452593547277239539041556587734123726105006021482995065642528500235158379720025081628926968306891252875019983022411121441565680033339454190289312393879434740729163982570547807491295695519017849810062859205508849449672420541978448259418048520847355842394656333776103046270076818302329174029512962340430166138479288032034915455071982363784685786755925622713704792721677789994553784290990507245371858543613057231791172265055850901917703220983305478780268138728892292414034773430495874400543807706789980058053430611673912158499775200300818088686805243604580867999366603856121929628358669306974060419397397465373468378703854591412037112556207457910395383213288115170150632058238380402235116314402378019709735117742085561464124583075090279448311536531589693894154743789855077867641983818048607584713245371973657778084495157561370484691147354571794004746033619897425131858160897907163529032843181061128764066292412343750978533436965427196622839534833387377469746033511855448874496002008269721382063391587452179190790205008541904168369531557020687959266980069402563406099579214808424256991433451882240690516356238839235675943727877421161930689909436081330827169737279738990386306571902397223214394695349010970267222467013660751244234551498853657389208037495971344953424956314156297674313895051388272716841572697287145505316605696768962850462277256328516195399569655199852066224580744708950022516650804616730750322238838117329806455053250646476076210854342799630552430633027376403392494514682678026374607351371926351524064197505547025624091225428572296879512235092481377862430680598830765681720060468082039686882231275630288719700008101267609241138992163850339925099100288978299749554292038822950697003113860494297554266615865327065384264721432645265767884305943263210085807966156785042482385401223157289771307527534167027841959925089502125085245389598792949186842108829811730584383094592587990837427578808273070234269113861260562085446710805754145137234151178661521249870989494873486763443719770932629720124776264343771715805509230007884336462667153987649463603086904468505775182354315769636862641914969732499059151779861619624999181322475987681026753755504173421746705394579009122571598353024411871532752235354100574577779320071736917798262644978476300438111254977255556261478789903074708680774434361200578845138111572135307830899563264804176975409751310718811497355998098919278598955804689955283413774530382892200970106636814363963905313795881041410237215756991021590736735313240772223115869660340982443855807354474403557085974809532411330889397582013743640148943228007191542710933003089034442191173455858398282013956882901721400120594070192833785554967429230854418337880439316592187451329841726922052791142812665261802594426398995297608219344665637123097553412588739969042909146545899536102598720744346992310841932431268565348312736870489859768566505810331905665963721096601939249208373908187569985595335918129827957748938216374139884741118575349096302074479228734946960994520750277323227059277823854202357890340507647481111975359829096557063013028329592908992183012777779674008535159656386207068682361632333947138554991156607148656965571327916424117667722694601615871715709811672798502156396866111250782930543135930623249946128124001704098568646325839813380379681808618249688925841227453370788020985747194011170254582021167571617082156540183711036411194776821508468473031002839544690234286133072651562149904242083093792158371877753349675052132503387188245747075078257774065414824757020908081807069216259206391854313209143086335638790150155548864999562796528427379650857705395415784599479276534947253111975833720132506591756891366301989415445541042202740945410957438375968516557952918917164836651463988382760488828698455345465348148448158789834102810919746347634947929781077336430481178065634166296623227594476697836627341000167061337135645060354071235284755521862064320331717260848774752865684981914506336706421393558249085749002737446101201973529978082439203031947248348443559165295412043959689876764679336266339295330071607933541838534887375856435126898671524680588869391061980114438840358744822379623466874368742088020906956074868025333734297195781549372080226396998229995057824210600290597876501721349221615141897483265284473254511511590640607470635357408971519118695533032972275308550978698749020394746825811631915980850111469922319125994774625661063718387687255376895919258014021118089074088370815332164926877098503626512035622118180225393200664569555719978073299207954450941497403072737953405408881627678282801599316844542028274969615095199272391021371253115812008584748697945556267360288769104313493624402035363771902269093728547979302888605070733941708408575441643200761180172638864834517110427675735996546981214006866823001910705387426525109239162384736485389912802881225877359032837501504620900373535960656025070943689576576676528189633422004068446273566481302335797846737590306739267821443617700482685666885659821966954062915498471129995994350159029231815056745482421499127364461694042827476717747705808108674407759706453057387485193949629588325208678321353572460405834695921636002232259779247048305109286309885205344524131420923361921700737667748737002024366078172930304230162017508757337772040764907215314659165461213935871678089149912441384217615866091785286809155580737556952614261954200527501201185110365963547550393774189310455240083417479740643666333234068255371653640933464315371116067954476167614947190220574500596628027765139872776725739361106720182638550881336968971818074610675623677311462779437718331377375376454206049899540710316556071013590262744093702735882649866288276514178640695041318744395294104164993900780238296235467280897247651293405432577668970248363325466341999761247399032759944198952330203897485115738718655489088573426335430303913157346973923197337244627116395944824490265313937359265719405309082463779578507162155746378150145446525955835404185059303514769346166806375778589398089849584275487722038096782153096858187594934499234441999244248805812291814100298328015231743691650814821197380951574941200299959602602185295473072277858898330104849115804238579856422142395007152996901147779051894385385357503958868827781331639798885820685989376052608451545118762253753173730779896609708443594881778778911220820083826611149350091851761071152145205220749082511389043369145568722319478234671743728882811229662426982394580498230349307529301374017266688438623468544603385884491782985645179801169405671059872117982228583252094127913170376713863881490665279066480617262913716321796121305237755667634579554153147493708798254555866890712376297755352528603396763346397781817913479011646642497600173152630921776962387121393995320201113462653681017231624173025073212133506844105714060378749124671605521870301209185720382644937457475460994370850734666667566539426713488104310308704210594233996965123656675443660680704825658957473670225262737153326558638225461812565916514641272157365892109392893181101834088539635165730255781826100094991794630633784317962340891340839825240248861293553373940729133427874031285315999176661630302669012402124027615973383176064719124164204782863426077429538182951594655502421068586300449790411442717899945217944886139679003686732713635279127642354643221457642987309666363476321899474840666143616377894488619785876785034655529527228536993006977090811543204174830960604152816956680419184441536954027348195872036723191111759317926922926707841499598153083462755588843146255634360129820973106116029923309326934503102867713319111459239787849605365697517457043663445976940140450803454801154017438886366391285887596336142785293115525120581596127181410708649385304099530335551253704053814523856310965218149937033016019558918157659821021153685346753051251568455806887759449022757064135700033693707883376528983030083983203884872840905045718966749452551916771011043738583213160901512256810267098473320052993967438624192810106624741866456154302108211611925657227401435622520105205082380597224551915266650280490209463574267052863054599329743805052910560758970507417871552177746850020538786714429038934759228965691481958309681564507913927809281444421797620304694090846046531281575811357639110730617386620625057086276071364724600221130452041094930826713677537437891024921987181782298973956382184644845870564440431607268057168307791835353122491544956050524543842054462800317055146552897174454758275744325006414280800618153262852851706519236297987282905522469533649041319799910587006070102520001903396839664256937303262611356110666340448786881441532563972228826715214455014407357929109465334021663023810056034698763728675669943250505726463100238036537006463963272928275428292003206011108338495057101929684469936201564903715446407777383261164709634772745615008907065286985653845751496983281359703602059923624010797350436723835507403885230895428301083329257782539490072251080805089494160156126360311435838109385466549400948462905339129872237957069257900832968745855286035507268903353801582147791924816943270294327386683249589360133458928150483227873622854635142883773549233991372606326662580144355818554884634601757235668023531053531525492818167931906150657371398660918251643867447499149353306054927332917284226801953782430735437954525789106878378748246968239360923902759405638560776913652619351082936884635825941878832203335223469137886697919159644438393226159170757085768366110925225691182060751861831343946474982087344157235139798787892852436725925941096584723269338771669575940362578071020339853545519129442684316519720693982626247083010644759262749941832414632226228446270115954190714962773295499706863673177995189466980894109377007686943359755393328796818646891041508178385930047796030991879196953910273134000254738919947020723287175608138009798401369087475610704099496425386588619306012008437169808854004636000898815833155865145682348880551895331234267176635716761458129063378535902092523291655186331981689571228249920459483555631118427394690116408691872439697572793579264058436612366003467209050084368433623566015937269240472230785695674682795778603207308452448398082962436868838317544482568529553069894554024137145981108787998559071923605340298520766568357212375889196009967088550947695265974138045959144771336566427542717652240239404639758114316338100132207551616467010806101177974839848126487447482731153961374446924110389778281109692320794932162609073770092777507342803990469716307046697298590582509594860706199460868557613083747852556895283903323753033225290131642992906695249526795306386776359106748594346156645090749342226211191979178887515072286124784333219707836440486193189048596948645274074195893989242774310065120554068213665683462662663844797530983990171325369487275515514568829164573934430490595811223369512960296280476680857091279360139035007161142225233754990549056789428505325369619699495871264056103204051038078777346807027064151164561031194382170853934175668937349244562136597243551631565863407145703735564889221314706735258946360280093132136418959469842154989818872713579022170061032758981970788944154182068781741782190384877175703387728610209385003230988613393428467612993839308029420708527675127226269670456634540548743581693525403804473355797882420607201860796323850810493753977042057919849634955954648479048829401682210239104757914518950670403447609698101001912651032185357801045709834658610761196072546387446998338579062689408326683077742527349968727087052911855467449213791250167428045628585937379304877643000411532325561188408682210288197973829428140938343263492560465161234722778390680577716972771571421394435695038869663515416505457377835311886627965106580616783308603122168270579798622028936632195401577097821101099847182015732408422289277732401565867642695351576913919891093763722185472483838313573586514209821728633405138873620490980261027929494445613995760415777414306092327084102950188854166003696591883645295301887064126713370325511402520480852337469165377971167557675743358535560466279173138327458441848618275580073178400456867871029722032712715366931603115783185452390861836150538813737177644460637522430483806158895862674081643261040224620699569669692976774792830854915446491132493707182973034549165083172815005272837112243763765830881999243593483445107048733761011996956073235820157298843637787627286678243098413489486601402114258223157842431883760562416037544828595769372658092300241482950576136464236269379636024230297710717177021516618847589150643167768414143961184512713490468797124639571104399359520757998599843168714954028024717349811013264056942714277596658466816763358275922344110735911563857580525539705427536483900671478267627468318094586752214736099198906622019044804353739208232651466220237945864054744687937451328389071744129528321511458327915333439045363550576190882040324245987266985174965698548905695372862775960139091083617383733479205129630127965841762134044414616871004134042753967537295292933857212230452413693655627608687976524759767838519224544250811393605992849564579499844335204732579581168939008392290040383777007864381684547948946324975725474969147947935384321096362537801846552041235626792478398004103500128236862923004858702410483199588478733286933889429399715098471344839136053108186114877622771969373332289594129773068180452023435231017972982607432897514077011254638951971794896049414084024734367582823804272560126847820409065473617813718732778635784297495939049453711600786664119300082753141857850511195155194782492645119494225772610259736247218494944197261942153432158765017359178358625409133996655230378137615009498879179409925058548207116937133428881019807884282180198506071365809119063908947966718634654531597397676757742997102666128332709776633239601387109749396581995182126225645624207051420680131711664021090829353414537635540646306452577148373843295682747498684263277150965430338121897357971387703269287577740412536061133849675296585408095891695675504397933038804303532720919607691370531550981494048509144808645607754600398450293463656330467787198611613043426045665196180779063772661501913859139079211456478075757577585498732554031881920285775041677313401036753317103203483513076872199298020849392992525390086015265010584521840034572000992606456133194063863161801927333123939937221231214131286356969608755569803088343214228127606191188473566895140863569481064820772401639217673046811779634053149958128965946333841306239637530599254771964576301705158797345510768609519252481779120194051613818621143096830361387231128774385733826832297618985874827986820772886454844351786279926272407250270988129109593593454539772943804292985775875382162693923143670541728533928474921882299619115634570205202814048532214643431238040779359037914058813438396333560839132606360365286945025776255131941602889380586614677509888445967792892776809129631933465848819334814138766466621165703522168661817426179420108820080399825687399186982800414072436736273026670350086860407415647855683892728417453774183044468929294657972882287982193225461921348843659379045120257508761470985586665886655235226042995045684726996368302468052211297504809578124437677024463480453557445075304388387718406693649449338186430010309557766942488161235751671883363803500673494667289087767833721960553719014298266289017560832326902393322569883278216648840662020733977798918961675294808555878557593290647727205270037740317318321087593339468308228787862117586900205509602576495668341771920201271624246060635919107926891152553293377989539685328635516467597405193749616813842503879368875559477927221973856033782582335561196643104471187225499500566391067372931818178511657730912555541074316191465047819517624704971995902584726560419789789166700847965002918746262791533749847877073236794422838575352263666869224705192211182024113414432401971089217022837282004075926325294992264066874696429194900758297631518632101975398510011979403541744168959972628951642569919163804362466378441644924336380214401935208285913464707972196339043877344824674953763011148684197753922656604181853629039523437013527518294208287736411126206046823961402494488272494031481073581469882525660841905327196377920689623482881457121065512510076331192926750372500373895436342400184852935984262374737627999929300514589897548156354451123559334324162469281050225411354253459213643256149366887295894871222249136310708270829907751696856487159176074805999992450663319932463662491371927724048834221405810036752546336181172722801671949651075652019141026407008602714809811858584212308369778106103416969783112354284046449535723763884573031934670041087709859445220887069942810000398574570149155187903479899899317956108595680384472915548175657210505036962521556340724520125900406230530543042120100375624176733841563446572985586829207835657885658858038380392539286827507891413168225838926292952916556871730362954527142905060414008498269783427103701436762331245182870675990349780837538225802197546623186293450470438428743213189116899497812865604809744546828959656858945008105735430479476106565520148510731585474843223957063913018165048814215616214083692416597506567072065698771289983126598638422691352667376664626635639672359144260482376109223461204475644525826373871834867379437329382424243240576283616169638075594669673754593199531767171070803004065928281572042794753803164827719350059383816797395784609910397644993668058691009440726207441691210600222590031320299766577243222938894415040316085660044259931430998985414068882961414205668460263046624926317847600806052626425610675298780717563773629468556096080202004651600859755942239199637343737743751043334728223955019192096256508814566715617772697406683705764221757566528708238177351161973261026812526499345677828550009861548931182038563890726913531166589093318754551856852438063314061319339740832595488298429944192345806695371351825171466779695375793055456249289453933247589080220621886697605770936553304364537138835488184896209723149671675198316456583150628604818464603145321011934083875545614840099098664032907970190307966294690896734425926187778661489969863127243274333610635844511184114464697822015783490075074745985016439025457123033923091756408961528128134652559348907529786182591480904395138697547459730279660239590655609457592195237935576632765267554942764442756992205357890711913730692485540418980879539819738982239347380980712953882546210103509336574638195306079935662061925431924275145452153407547508092419119702721239768670397813632317811029160449981732152980311500193614365988124566614971687091500873146049621176439835247799293056546737039162080163134675717032423009682732622745445006754206816095805994153765842144765052468755040884310755643445360327811749477784293717415309321265576108774863010754504783753179930537487142777632750194775123198473884454723344588985072882802956478047774000872464240232598325076075964575037002846075121139378331484225763911593561643503971940014778323714803591544280203141282667013954621648603984054110059683510261607398820828392150897080817561301918620215727641723806227622382760809709759401592426972746869749695160213363311040965642407561157219427563913347830088300898084629776200261201992947009134504856755971221846564708785456777231112256209179734924761898165039708176873642229916435605403102294009049693712346924484923543176918863206746661312187037080286827113046649640341897291188229582087126327105788374205046489610123381438738531003317907245121511068182513289897066367989262386963794188419301521408242419315102068888155365912416982624410288688310358573830718169865496968267316595772641066498011069124233586743214885066871372987003559565220584783636569054997088766792300005550108946457622421691475455759784304886237523366367393040760067779400619396032299137308465855399245003207344188541327509340277692035600591542698712706030363936720182983810048440440970299108541225257135462594811021257990501012772520408400882532240968626892247956956930881872332011880035379621378067550003252344985265690911198080016402161804118735347048108364770166283244418638463205589117769083499731287063366430968247457456926199236679523860190714986373675549287521797658260843602954191647194965033964888271673874131128449776957044736536175324800770125110692660643834950802456863818991393381711124036181006653530442697287566089992300354524712294424226189940005238522166852612759253817509629868105570117736679202820204955729685405544147122099208067845644755638617179477405958486916168765450563200224374980354331678564927383266827113128655124557365953089195442939641873200814328136267470405622792573014810396292654183624979819093521271971234409820349716457610438829661102358747628446421320060446181885479261234273904933265058884343044341301228297325483568794524851248957874461886754737641281289061549906921680275969610235911685526999235417728367654137973733025807628912656792530826669250898951952107986623749067386448275744148510487204778907474909366619223488137854405698461819638329278869016184671065057899984354434287551232753033720839999617544367054159045688109407953038844463570411934250650507623107144822518112168952856102351914618852617288869173055840799731726221566724976603228047010033289171509436610034354273945055013066248839037736465404407218582806710651218668467366961140651762355056183910961789022932931385516920647941124528487394417009284525299584867678605714504014545052106238787316534298331699183511808668932257780473992320297526663067641698429120495701232722038653551303594860168716238436454528665729763057957236288363495058538169387314141722050117146175483096377640563147750229105380150229595663210944684361972911985634201976957981675916263188120234220918870848721600695597259670252147195702851119451171724174697028974286783930074733624164992222368192385867708745163965142856062856537074350265474035232414209691794821179766065912504183185203396368552848335587622908562747483756829050541379715246509262168453946496011868909492086152953271290385146313948927006900315285837959985787154116301781616447943030004234728180256281210822303240395319474543586715692970908119048698606869947295056291564006820184120646021507970148335885283034202791338072393171050317659374396883837131345965631477104586617703608940171198880288483745554228465414089315877756055031427744476485121452410762169146308870111738873108171038812761248950792788759409909965711266765297408559111306304874308565758664997898632876603337430227242577917922693075612413507658978553960792672514378276682167896087728405923685662508880905508852057327242902930829290364679322864661835706776651592473791062047479015534948456268302444317864276269008583742913288833219027056069148047081336193044238796305317909974764243490617339201523066430726352476197329685139949711474913997879515271667241940550049696740469453570761676393362356731765335220268317976619711180460052735452973116357076142091545200897168018122755066630601962149050594928686813150680423828925607659722539048300000776311795968268455751175928821554990674616629746886210795166017877223304069524498626603303393892027990736679875127061331837662165054844287110416620795382478576312278276780690950540686146137129001515450713708374112498646396799984680071063364929184534156369522579498012556889767855291372443039279312194223795823024925800892697723117338504648190924444219558217704021697481896709293990820796934248051925160983930682232339554710468620631422048732252592472574108649788553475016225909296544861994888427820658856487632491925502551823043840835986744106024464176525265290804825095346469951842752901648697660963068598595260679332205342891468792793784483096799186825307318626197438426204565330422264961141420112304927249651391954250754713796451897463850023232942879036460361454347783677620105677410092407019397075500096747197110118830932791132369998795661735555087596856213360774462291197349797536639655364787392555007255981932939680165812144433002250209368745795343444173901321782470658076236875296727823071948766855718078881846278867184884964165472696070745345614012259293564531264081251318292410436856546720626262709727361460368145256911971946210730426444618062845916665361423049574841599916626623107031953240622129923468215877868185627390222998028392313537269762424590596434584134552781189878643407961059176918909197456477167192833284967125762097072129755257738080343614404749840262699576688026689935575493228815427668412679749998505298053864879792172449634702261234023073727369908847443640060449801835002467641835853980382738488223829330424311625128030463452796906889443666440662335189729415336209647134779392019614424813045212772877915716565769079518854635113309892300179602361390024939591912746456791855684461948205600927081878159202699627225753043977484639313594731588997781001359759757165092807520990451922415451395741856390482466296156916765883510671281422085519861169172301581068267737871945726700893675887383038000201395324637654775149100990591812132031735473652788601668200003223436799375010415742612539287002450371530002462949655590832060085432279009840395947159973644915848343085975430998531200735255322135308531433349016281226051384901357506343385962137879027905463557688320669394575537629275414824130451000848799180511024554220747758536724020853159356717718951666447377304121418525770735196531670055894650056616974025950918435068324149231073994151803074094938245437221299211972241295124190985100734613879665278712984430800964523491778674579060110198949476582365663401983843404318070265631458675460307062145035897044845279919847182845977751441423023873217113461129360557124553230900959574131334453126484159801728392002823546618264535680508757218985084678836722257222053513715988616792998229531199627223088799600430219361360297711944399601547452441446613668155041656819251884527951662545638672877210757448123994757735172933564241230894494231484564040513461952924399440029760769063337975913282153158973020619687737916650656735140914922295909607239840244458296188564065165069009392265699138688095088824624863261072481152678358706818138316202330071720345078659933253478685692636005467434703446531135532077399188264809890282995025134540714247285059562216128384952859366665162024331228639547535300044479366131180508513576523688650943728847607228802921586392248471758398073737886530504965884176376468697546901350156873561425997861740895271572373769049864329798080108135601410478190009267838337679478246017030808528984997231498627218419755009306210743241834038668409787077314233675021497820923645360523896980695038746362651951967811303839959991609079720020884796169992876525878543803548579997209168904398389892104599961202973242337223361864413074164737345241171209257123369704467397809312931687672279926533433749313310198996742064677178282345538675497942088985688291166889003729196458426786081186531093445897474487571232701487286637136040719509038980966591318428761470786114873375431780874766778744079568787926502937222725902004208922744387611329501322338411050360886438374427554303483554688312414744843506349720221706547580629546660235637325662132604976799888756797166888670153036874937124132976963193207586494743632995020881840060343953773838864004761990258254175657843333647705623292750025874884448338657540565120302222679907839840624860950427248551366680218601722143052386342026116320722829665735532976599805302538079205869081948498439264853286251749605707299689230994270874138960259486982869146437412164932406060238483166677367202173034268437662771721931218069772275809197109633887564564405434152635875338398979173333529445350265608933232264169966834713715771470711490942537211465874960823513785243762928971330777856609764249212807160177182501424166171230085230159857854227781982426699522125050756886774689329380788539748057100842419682442307615529845159999618890438001171616508063843673928534627495377819002309634951245603089063840140180738032768345023785758532578724587614801766357211969261322216973658757075413687113309063077625568443404026600880161417795082363948273844498309886007323413980720848522197806243292694288223518186262994201749176844498837166563464005601436239582527399559239442898500107755121468995139697297716128172007973988686350879385029715920249014440448023069859173088802964855979382953233894729064944786159809857611524756275997580490765316881933903986064842727799482630779590902092649734341324672798206993881621533934312983464015535227670419227903762475120644941745509539937342668859697245794132737582089414883114191767749224055669257408940301462376850012525776779484548714056588697847233193255973774045188378648458488899127643716557420405247206966248083495081489013996944907112542551866202705489297679623265507614450437141076801746025291202784901844336638781472151340165934112050269834382915731166372557864588509859698299310254488100703564453034027520420877323722377881421771114969942518649484771067769480096192242789504458502519460179503543853379454272191926805725030168214718061316964829245314522395541420690108459971655403067423046676036022194789563809833769185485986753840458117012598648213371179468002560694801362204762757828142852123879363900985736798678378198942671268981862121985859505663531281701244092123777526593005490716189140214466449315562101099686848452720931448053227704584890856800480697156899565147117544669174620959337523285031435466580230704530930352393878021567478638325182053788100860637877668592762501285393035098317305524690354817340767179084016875802586468811024226164217609781244813788812011850948877797000829844939659863529894227398224038576200108564005708073737475626578900845847379504724259626575864913529374510561756057861196324762246082518409968558478647314733577451444773038848756955549952503003299602423254641736904122432563165508333802938674648185208697325318417129675467807903662150545287391045447616427899659935914610732828181923726283523657752949012571719517766153503412593759366617634722356890554528757490971521005449048809203384866546061200539411970691102953247750898488832767479294842349679007231640176651545090195042451829747978284232463714364547447855680112264893008519447751492249565762422759173596974648792178501234884506935115337547319268811168478379067168046308969639411712013504011188084986626211232163529872020263557455558529724888212171608098143653003872480805501275838213237846216309866153140935100017406452107989353918231084315831609738192651642830188083747089275961280177872380241420534694449937572902973067269184670753309170612556580327227928090252788557437570849964277879554724591932692858227572694912658607043944589102327514693783423188053325842164442161109649554174373270985001089416396784817518444387654982239786257920750252038638639860543817212551608085387265037597140789791738361199889199878504206882646232849291275978237450931781277595448929434423882556540959253297517729212928581328835813957547104437115341297216490764288166064970605188062108204555578643165271111538427081513989440005758953885597602822169402954969506557797867858842943592823015685775169685756620735042624094770787545942608587828264166583486671024955281448523156191525348947207905190785259190577506809664025973706902420883439829218212805382001560106631453005925346132307369908394758448868535838942790400068672140474669378899466941415676735336542109327084286266876955375400196097930659742750365948217871006885232113313264089657176797126370505431344126608330623993144107345734678594808315826414906188250106344705951224215165635487109581228276402546322907643190878584251738989915487535613150234861692655260446603709174816940107461816784708108892140100253525616662329906234592312688955369454307521144529940681040563189811094309205480221877261976218884791410188779099970519282892813494680794146885290237613276907097191978479326610794567146640775052000166850248742305609833437551649644913982255839821315570575826290679831096047693164983434556011450128179369876564921852616896190584967582709577151410765192055723827703176400753615021258016662740221494872525633551181526274582685748200414605631517453581866553577412146514520714402616475494563362859422918276216301093184589025866314710589637225767499869387390098784167278922092494774500912614595555371211847806836294952384585954696434159520311327993043552726846815977676036909290427414585602056532891171641166028227650185444292525940485996026751581969516128737851693865423170042297837812643390031775057431394304781721638835585324645025687448929838571269099821619167742942140649679175065378905462532702773476296150587885275336483443683659876318479536416786882081826581873290195947257249229470069567963635979521426353801729860860455330451657114100654679666243998600785306894404515848809755091865925962086392597242714169048990844090375939133785930423723658755142306474827424986947218484704030317814521455467505378503546190071524283783936979136050696206817494449024760969298471624376691601856164925089935063509833030293026905815684409532012278552971578556438493098254471641339631643228892990590032401478394626293253827536288517960803313209517774346096827310970865363073785483653966254950644001762476055955854813090735574941888490217248509707325833745307156722197222016333934249771841018846310238480633171018763937204221719681913461610492804869443911532661513160973180194914674081757632402160600060100603677937822091001895484542209333007291437811658623670699261475482294702396775712136482625520102443908915857305942455000588896225092127027500212532626630523524690117027390809345965432927314877779370031507180355029552795223750763728883848141337890543908655651061614152961857086809100606484923362963209527665847025055896589296630124868361891586422842745363436626041292229185915669816173030715831551194505972700933480098323668318614534889731458580661174122678326609149677169851368859671655431027441450303675861268704237125480067173033447359970511224919568276910564766899370267325488689503294518366938462579889491048036052718306993871468882391352705073219762999560120799704880263986450282797207121618436171415415860870634155675274759389921252420164649609486100075994950811373403803564332389699308779644367065458031070877700517149206029615935573717923218917518317535458686150842920704906254117987096787115319920030762929664161620494269623504562511490241540983565636385137754180048267057429241406304778658143738234664986239670063867819539670501568088493124087372733861251588601530600941702419279848197753147038019672618680492787396235382301042199057457542899194764734431545338334240232002612450782663648965379608690630963309377943606950659031380573299046306790925521972758798635316119146350107262219738153289739048086868717320405362834193239392894784358308420220407635089836243793486010954680827596796003734158292283400264850459389404793466689544785408764862833650159088562484104425926134455947437276784376250294928315900895377792664836792242896371774764468643070619503705284566070957460563875938184481079762663363088360624331887407006581754104997065732012159265000532422554357446015578070936582566634165575801846439222220874149190144630323562352508649259129065742689205340871934809992003642998601840149005228860397215058920013072068670728753841340027116388396545176367088369509337232790469321421626393566860446190310354192197428811946334123805419260105054299752537513028267618696857430250626181954861620522244676326377094866488653941941917283790761211604926394606333208244313265305266430304059782780463402684919688407725242437718160486734933953518479854083110886990098777557405152078401592495716545320687309714643511340797204132477186912506764592800317657159288876689708285687044300136026486434961270872384698424775187887274414841683763841785583947399577213138340851992407138682258505408631785842718950914370711372068936958783317513435877385468483000347597565637563679578379243997917085333015584039322489917504766104618845714227854037599075636702462294715539540139589250310731860707177927332307967300682705033528652021718851624703879877075889466629968365312822115967801101096779614908477730720841078655113723965166005016336171824503586787950613717910099007911793454043171265836146857877632333614766914549427142748696422106506378745481847055097608000079180305167828656106964784053088009305726722047877530719536826996856121011703739764310196245834309540087176147259274885013523610175315786067782331687231514468932503329224420072641189379143119842079742094867582995807705240031230577975390213322743322325207919877599941995860165854180212324180721616000583028730133995263494504745788321622977891458277046541292051935595100579763628903117629930725991372970796673386655702005951625552816519330424647701686165930893050424363731469951433149260497940583878301466443228614854041290642131920885332040713094819034322314023418243851464593748727729142561198041458366090617981801793858588943561079102809585373873034678934850362326631613801317002912420944284507637410545366515498086119457202090610511240116692759667872655965567085631215366389076187196416771097821844358329211818664160987206478238574779824632628432041463180276900561338252330902716175962457044437460882141372506752142150764756570580965145046445797142114815508708439434567292985070524538305759217982875804515335398439034294825655023296020706119978147649662352554743514183566284948129503002493801056167253246528737885578861508779703095091826590003607398150302270079103632572443865725129906051444226697608021636086460067042788415691678454681956678070671040433170920860864856314631939720952653960939079581622026632127629970102959752306816508702831696670269733339113158091001403752481475360490623341757626293111112582409151526013274912885013987683165163767445918689015626937650168914384428020788762909493226084857499322259302528006761440290010301609492189063223816183385531696851700029529392208834229360423047305038064816255878235103818292252325239558795201609982140833452845274864132703963968262879121819672263715208638515508064923413344414866040153307390081815914036070347080688881531825531681347774036126324003546533175587448243896726302724444227119970397656181934071164323308053779862892666430460304944005563410347006574280461157153591662355322109716642361221182056329032984295329010970976382997400192663299006907932775162916646526267106805128289175911962424420161671811872622412346765929718250816231595861710905524855798203089191408050707528760788502879767767065446910951022991123484268876158772964430556468209193620873507897316401882902946297761445657430670876715064436621098229673907377575198320347312183420918244709196980486792336800286541715118059568478515653287515714062913054791758394215035361614938604887230770763676644393410908342317666930912453707374791921319428635272891148306164786411261239664338810568016503932163936493523070743752037373360839198555493804131579257464977637682452932898559691624324299757704733156947566078096621640771800305706454958929193080740961974021028675675289255537668965637689607914356664027557885145115609562710063161165598169234163335350037295916501544563426640881054025443726498454357014206372321294186373364787558891577079029967803240675453461132087924621848975105026015562836705585736928530418247097048405224343409031702585870621347231625463601092644477939188439401915278247795349364088968529743058046619899452882622380780894164570258287675124385124161509319867962830564865152339989070583600276306625168922262072190881221056044133385372790463361021125457321338438138180544427590810513051402804914488492646244374983757331828793431768518503148465401976820506039327098420482128405511530236887685204730254051511404895084696347231978891625531946957793976233407495169121729480759308969865506098571312542572905173922561669633012106415828688055005570235647995871354553356749834648153714255543843207431674352784373412398429978965786610127081384163475825047399714448328116826266230437343494206842036317065883548888219371947915793320649896266172053168839868904289447152782038333262311017799157631589068610488589115868293907241314324122942325232846131148750798219376921761051531318409229147914585552372045721673293234753847312951812546642717075341000591766539536592464913873157945496641591645427580588334197414870689731812183335837623777633971971786972217041656796760632510379242227336845786195077077773770838870722666389840893666295483580744042739196958641923311015527422249538373844386790079961942243828128906490540581245006033589549049788576327836754658034510593830019638020921432389493627024664615804493581162779102318161988434762149551991489708436353649197841032411631597166733908818081151176162714417051841789342220073700615758012732381439770429237008050822761569558380204685164731539412642980221020317419829647550710082313793762286679768608351957948792869984606719221238344709171606014950098673288350534796826570449223399211249997727257396723634753593400256595252509422009400336676755446886577179815058934767641598652098008966221718629468219011604911619874930208053106169662609699750414611655457990785804881816476822283346112847506574357397988882503066612704330208574470556661193853076107399740032548005186633654156907896115419351783752979588492621870127058133676286323689135581430125855760816704159200740048834277530075177215128698890353097144780094612546425602533220956892068264020444552152183695732241301959213344647417778200817739653480459575228424683668130631994707711332301719970786462499856022328937731762905704580540251376696765005999524214701819391321392177608335123855767364363909345096302546927904553180706022526821316798416720630015986090893145849987140211140571281999077278191378215228630918478763380265171811757775113208832574857126115664715290185826759435849452026706414123919529520572845458321671876556410527125863939858903247550234333083434383533894556239803114869105270326394639216735735934890491460540607685782528788368655420215847012995488575505587085143619560078389003138053195385999094214238024298430488728054292809110754904300533729465160968591152752220355903640269479552974404651788068996458378088445773196853826377407371104891754378392726105468353350987275276114954810576386301579554425009013659183036547584753322348484878292916260807322603609668885749136321113197908517910090054368841606125788654122621543266070043599797759996211873614511652388519383978704332534491275833547946986337566438692602595659128170978294812327106806711643561348071080805333022774609430884010869028567203672204774083504790555697098312644381661545817710714258598551484556459245680904751921111510793052336815919348888440782940451511157776014900077184961025830735891585888579867139714945363786401399842175771309359822644446190294188250111357191428535453098421881794106099169372068748176588297983923553460073359636230789678727777614228484500643260788583364443510310629616729094704965345585966968914456749525051024565730922699025327579966898108204375837633253786512895457181151154134474768811486207742626882669190010902876885724770800277383692459910640759104352774176761464785464373072136270932929681714065881736946684544286474852492051844526494601693364286819984010849312330864683027939472917284138474462806254666267726184910846131341612002861662367505577856182015443499503898294976467468094968430750448604462649395295858298836886350193493411702545826842458679915823260830757994457184562148986244721086554137174349548558327248759924705958323810349259437359445307192538109232088602545910053377410648161200580766934452562056510447039807200673893328474674827430085109812777147373423252438628547132230710523410887156764486210685695307680036425919385635633439059203546914101677170471701316589582620814188249564974617430880740910181631424980205914461117724860643840006794745742852403209989723553900809649971214054109016987363311370813899575741783863332989887789719746496752681079926139222081297503716690671008445836605982869895573242830046130321013378240256336457702555482216267772375978109466421986711079939922470923133137030144109097294098591454818243671880897895044958240973810989962164798999133777362339376491077457751475674080144379991973117343296918588484241096410034841148946952998458792856162060408706285510042472835812945412365527641630437106943975381410238636466080889342737149808379407849171255619760080062734003875624572563324545212387507455705612611533711771954668073353690478461287243267296210367325148635801043491200779218220127500016790073060948052311288944039468073276724721961126150218043412828052720578856317253916594850920061003595677148777708200320359046606663468166150041025007383853374672475227095492858961652340733622666048368009554649883233885433516659396172537492863916027986488284685414815022790674063735067983882564843312410662683743487178108286037568209032442565639918602147838114788132743958895977714489347532483450330270796053240807354654375781074189614331852475507933214509521395933927669051898996655457808912065998998362974712705022228927970225283230608474784558557407859253661724083874180371463531344001404943746684438936543844582496775681727606504930903047379622285077154171239455053167600830750609911807055198707943570047985357750669601379357715555786479746273971588831690953684733232760636202533549359864860217141084341977898090239945354600648390197508308311061125600156680245802999291791337502070136190289619459233257018385603728340788972596837671226256936368552642327973044882830400343046170001564472093848036896663755439326301279150077992514651659416935845921967896612887058824242277610425268668471732015538808871841997596727082469665141417663639351825209597632999472007471617172655781810233518849666483796081190232633082746243315753594292167434754319989776633587693428228777175721016256604955671921454966946675301601530481096101099488518450944976477965796248416635521389745293630247787396554820272565929262167514554567171662244231595469471670350654446002177896294583168914346828619065536583478614807096529278535425215175476097187025624176412834530946411722816370405647110605295821396078227806845486221282126727025070431034073619835894939301247081963066274494902208339275091780595484847342223646084539193464672042215919369133422073333333512907118340469599240933361344451889766035484344507000445031711733044818106587153492097529943836126902260199275293317060925353454334538548794018580480693805213829901100669487649456507541767843259625180994290523453954225307265253256840474902326355016303054138144941523480335142815423596372629017058894883050374385777579747528476285558517762979112371986584456067282649605564252446554462216675249184525724809313086770653675666194659037998865785911287240167902730023876046427421857369044775622648779350612963292992018735052264668069296143004445264703646938222861614215477332407125478372456603194872429868552060317397169697906454500481159967991455787276380633842158279841159511781802707513087245775260065447223597951675853590521657890754727007170760200012031494712398437916879998726933052663716100989698110205906237454170439962463456613247165925826089209443706991855900274075660115442012439252531228869580280902890215131792356166685189314621410535361592258764955088051837505493308410524168101247553957111607308787608780335517532898528438952220290409853951818088858122439641032997042961587860442618172508790262579691258141857229334701198726822910057818994004765286892540272248419734171963602181754708052176709473962197789261096228596887228947610274652507395494772841743320279006580995607136277718090036741639235092905748632876521547143559680776021092013710708800944573258071291970002848621626642297282200484512580703576936086726395263260908099853826184193741665316092007596418583101888833417723244357839416140364517253209380510196506179844181281563188834451615546805775068652329455396886268160283964312894953216561840163565768672410390581606834381904729800461272308090149022604226624643612997252608189197502857398807348468917202829846348251116904726919852097082223342069363905629996347714649163537277441177467773727688970789958073557618879796627029339319604445204961260851865545583426334543383863401488251238302208106087987421494189103713070642971847923834981993249599902189131972751504389892171239157523595162074820062885194749468552094388160755904327701855513624263206251987745725341834725917536938452833638922836855859598294453099849452598508317109932862118255143764340720650172297617309697628328101340929233881846729681449050986397167320366469328282165567858978998940581720677687677652205574050756324904968509633176872479348886985301370430815517311237536916383166882370361936721097884736934037554803895033881141880483035976921864981206745870274010320305363688460745980535190646939750441942149491711083223792759637273884816368678363671694362766021404745433002199200949435200682546866186116270037167080885730245052961338115243555987832160027463142533416159449319241300675324256241692955900927674599488449340243791798375261488568772524515670825091307035159894573482381449391925745953034892282441809938468766427708893276999525653305018472135023835810667373344924395835863320214815619388167432356331233601391235477842988915130099866708345150998094913764391623263814764691600962913900136924829973001521879715179257235264943465164018778702683200433541751547692185738679948738779722240298601655011360064966534036136987797252076493935911031835644746203983597005647045394138911564285878313844986830458971566726184307354955826009911844809587394764097893146435000987715750158749258228588985549869899642869233868998078679475977846244874373028954376021018222204507683506777979667620601358636713553982517540856044681755629288863290671575393555340618917029914536792298464627379831602705101095482076436205604215598344781286505362423659781131066482249960134529462019008133597546367143394673629536755217519013823461319208001527454659450522122580162205411862312845380882879530672588772556431035739847638662943228901312666051946210735739885560574248180467195737444866784586487226823234826766111055764233595305920558261852383705420308790738742113794168905834081431544450082289014904426303606042228683356733459173119745113969691264887970153514429440363133799226285086251958055344074433237865956699311851628261001923115903281440276313332797496425743669831008224846321523495812430321332028023495264747239581833458876236707169743362541968519504872540126756911249396000219735589035930688594446532748072846997677647761024428051062969596048289169156209383479998355752802148088572635206452989106825148261353164551705674360506395964776316754313397125245396010747199446424128997311052747248977816662363264234728853338482082797059474530804226310702919693752771206356153472444673942654707631318911861791974256697706340832817965053165892979130037550300582923962746421583659622428711082478048632021959652551696863530864785340859662189572071081171171419865430061463866485303763493786099241881264360492494073325165547485765817024412813347625926809943492635488272260795497571420994491363694588071145095933393416906438017888812782145570886965784613566392710996188836471104168398867474402665009066741528863081069819294197820586347817051131306787601927520337572479327028082886528526420619137239219742851415663733355496940052603466110416951658663554892148746783409561565742593725286237833655753339625141214943807787990443479593597087198291949441266076221745646195219933516194566703946339860765265741487552444225356709856515834804533508626320984534308268842318268778383577900494063538448390507173531633236779909452129896820049830332398642806493194618827190797075572672911280001073170044479810949674491812541754516070814105214233810139469716426447126155606926288554780887281833383082168398777834434223236164869207276266237934678515590537826981567283826097585334360087005603496068131224483195179781093316636707626571813176794292116143165482492849754464470898004940887814396452123520318592749401210686542212023980365774558874463163159286791505157558582222166022144265314160559383306198952982354476221633042955249289647512073006663619856278346528408967853312990686071941826863703508133358630716858728000465752247023504222256585632908156787119458956083552349846127361123468888343776924598521697874737046651156759183851905758024623039158477417515082391409333724089432824061594084207237301582986041067431752899534885992214698231705278400687425354487440365269762380763166966630747154881021407235757397653527566028757557151216157093109158984407052396861599857841215236871005440973412588478023138821158718595512298586879528641779316161731658274898251858106492971727803251939874154491831509389686937878937535001895956773035135846049229608610135533618634801293209437291379529814026409338863364061405431269903088759355564563247162475460105568086373064221852705963142504438639437188528272568038870646482051285286093025865404376115214723382212373608241268824429553626053558677252644009534793048981831510147345399941973593336383430927405418425939551620638286085018076000766940898857937889437193293147443559524863616182230151081351416731583645917789697616675968587608150408415469805098950970229944610665211239934213725583508121152575327359906730321254089349120626059466630748678165797156219155286694141060675175815143155398863970727829795169147522687979317008370984535615493502235603592223039713453949648513989044337246405340473720400668190156930476047456267518739331494863555042067143487969210098937994181498637559385050401376226884520893880732886788926014609127216387451546560273545226937646758849750479115580715612891098003357734297840765593333318202634970331741038588562391736138437357573761885054897531441766376228501100400942880560764780342685011625287481652190963583563243196217717101875856434088231312683538472996390609673878063903638582974537872549418695931512053802330396691315539724321036268021385962539124984877346804630889906506797330680950219693339714819642490356392247862044387414461309838139551950566493852117791769398118075387354079485609285513790042963150669842169089540598112992313989394700665656285219884193458484350959108275523653032811834937405228855156963778679582229904204299701621227391706443108451786994823810754421281261672683578311707461125040153412206202216598013676619727022876371737159796306939374101558268259078192791464048762125435679583354309435198039081912934194217219948510121397466677121254155904340753839682804015867608967941897734978130278951448303265775262398821879630319590865033771207449750952724950079352064634998602245859969893421417882099925051369873466887148258712897561703560687151986973607652413879053553992460197843736936875033062312051679593441366601656955607960267110471613765945068133991801520623415712902235286558844268953544004846885850125033567187663769443515950143264511291289187490526972072717051705915694734038690916507256786028210894073825532388592570157083950480519518502796265726471351739372110100709486479893292772413256541617358498497786244473090633045580822046738751120255665871809740931725049774471718794219295662158667103542489654810397542643078965896408883252222857337672078789014712223011208558048270585647038536796935381719478934783613391221114208746613031110375513534566936444456391029227600998209745938631311907011195909709824046550440383604523414493970556951180515794443984925560868596266962998476775110709584388280867937624878416517624618955731667820500571779185125264909760615789459200830336722304459807377046493958626663056315351425263222968708051614723252751941901512159079119696324436814252001875415804772184824440193184586803978767339861162960129416296245671462215063672114621165907020917997657593511520205096546243156047269095844142678163991017617166712636338772712749173854937299798523770844088263704564585335424232868895150550031125895840844307306633919376667800963199053292178533858747895920319476507060188409969487345847064720944219856853496833548893465766492360773904921503351199863610199996562872846860319015807123932319348123350061761370303408364447609474175512521868158681167843238352862704553077375465367020876699819925908273021061419654604197567674229805524738270038785336830825792603938187400368545841343814916483017576567703781278290021365459531993304338949602713467383035005485649895189132084121049049035540815201355915731381629599387819167704029171746340862766023837381015543253266592347516976406223852405326119375784392944131720091542825557803166106190458764269212472085568374152931844396151958990932364621416298854886356354160642427473379058563026670209008106032889352051395310709357508728756531809829393409536063158559519061433672670883794038056048683648458632349305126439335827842741056687630620128093339575021142879253359959757499580370931620065944854816307371384192144603811305392916339372578061884955067484859300724936007501410421118278593201919936137253435650296855161381209347155222529996527736407683530392097117984600177609738792159426485192929980355649612596682181899132042605602373388814086975492191272985742953451168497490413145888111905193765933431413016594318394144461906110508635989273252443345740689792463029609937656849713085712811574954722821582175782424837503164913444375009175972110567072062931479845938961362873612286514921075142559584059770350417195378539074614189333260416237565454784456100745571511192459965507740147004314640837783711414081903805954638253549675585025953558842476186955373468327992373802571029136113069836864245635469000405203214165643873525257002083050179965575903637371472384043301880174974809332417656038162524844168811337146806425432208567809385896907499665235216296621829584181971295675410287037172111727193849890305045466869350698709668566577973266911158071909180027861563225836787677249674676300436146917357080020676394252588570270739182651994966355610626952212561769889005393164353720341121561238186702941720143372872907160666245554357332991871730755418248204456531346560690308124108373563753766243382573371808792528567889709552239261036804437470505100824788991336137897642663585796616120676494119395013628962837170357202537988108436417479229204472416880847388397988426041369900148546296341604412167660473981706961062493103688062786680453010135194380316340457405051901071282369360441553717081889243924563261911193787878503590888575157101637061557754942223352589230356134696649360345326377765722020390690070662861703853180359885334350020114671695609932981568924783452027638062381222584599253966143182343723570568691565192598697117365001719602699636253414047692063287903394261993062310557729155262349628787943213804422476995600161521934198788328286867288556242061913198020440198332483476008408161536898341022067122789074616495026704110495832504027941251747086764930484231850905854633367395000058415723275907789760668816196873930094802465253980708146480484575003361654765761907988696785673481751210669761425051147284608751357303658277393803542219301815189707931881422111517707207953437889974799981315871009426815193942100317550904841172907026980393723858596685652537517531986726778831631345775531602007108552724983795618037049187792588486657268187877569219593089191249807527151963646885452711958687990926563490621304073150965233968733823575401701931597378664108297877160853672801998321640670397581739821903507499826505517196756444472759260971749926792549102393752945097456400476277204220217129274081807655938810473571707739133803372844777812333659033033457266655055373876742870585709575500800293215381267514082923312977092411113636275556558424654600497854731267231605985898006641858962644497449682185446377144192283599592523390809804203423208572369072637702409489323533731188428833122731466086436231793701535311710178264317273700651776256021984807931398328513018347776306167003662992711239788493354311423102971146435810422897297248787672155877273481785272134831435999099854112091453563428340721995786757391045544952271380742082815623186928473176950291061710694207677163679598983167875152291284748966589506012765662656957432868805246000943739126063566399023867908478408754161523495056397903755879585906910333075439498578756411547250931182375754058489267048935663189566740982131247301170293209822221625704481835914159820237630420831203408837628244800412589728636419724091249840686229583792797641961191166144961589724845351987258787433798925520932569057244697077065604683324705554717325669236433079967553846313627792335897684382760606319047295112331064434886408328050606890975783428004070026659348786176205626452815588092440972936560089210177810527154399959912675312294379953453591823776311572064580854321110337213092549526448179081072424203309416962514653681941367923744580144296332152196079077311935230803281031182491452641713085305092645559035638058636796923368384987625940477610406498500612039457193004784038880799926636394879607693601559586695741002944386958987604210429284574895400447681530930180413784117644337638273825933511359192925769926748257641181591685547357177185635422110352254401372724894955316186880819170259330546691818459422919834279375747156041073999121382495505354131528030977004270976752142046828747232510008465642793731126456087780346664113195306164723746418070148683964094870177781841446121892951642061546005233055891383586856589707471347662635354362832645606728458934660630513228133948119122110478070426017156291524379928789450275442734997704632993245061839690521085366081340466810849146287979562125028875934811036071962605693950665494277993832186026846922699127346118425482820551806772944972738199250767112486317549416885283691076599574778160025039305595419731354845733837471630756711986796436886533503041944775693754911046055600963662433734780963590803453358093310935915226772553941965282047401499553823155945442576475521245541206365534646934369927906181119334913602104567605439442353916815195603787721300482895548466434552153593883281894916519516641993621356214802792478851179006058139529825015600489546383577408755028709913176383535468285953991008566353829846570770128446068295092647964023053007211609183866257305788733788920054916594374143436169772632948608583313745694638672874488704820318035791854463027883572830344931828938358907349791855317486040625829029292512295370925158151081346291153451679662866053723723999962007124139705354582228822473965966543308438650066333524450011958066034444698277093399828488940483645523174723825565747322759110932686675368326739856983497965469638158099992427926319366640573804654635121400847784222434868149631441445123264299456474434278819973864301412955735476399586027971670530176814409884983215456616264535776316925705344440293479289657279441836202417693683671137889685148179622884257492700091119528494262975054233309762671657222578092329121783185774896778766235428837326974737461282474963442339310673666949970688538474388604721131977484984364616959451749989597724678568014505783272256595084122534783244380625928178865175688046230007318984707865336690196213788915220827255785350568675644158955745541663844029690110155030066969670041207618014626748057228878896920528530281420351198364758575744307940234923980361629827164346129235843163936213178659056106864003609869577553859499472820339811517006406337385716542618684333040227238176791693329756530503098541084658366214266989225251163953133527098163781763180076490431077019167912394544246801117961223568507280068866008487327794470745864364911061575937989397727234352387770752439674815075545386120559099671624604930558620420481944434147736256743219664330133779247922388535484097141969997844911043656231415157623503999402468854315955347512372794052423867773980816127821079410788952703394718602569498012100543127918869428488241248528351865920539238178508255910959700873925695769899569130615416255752836780817738434826307801162257479251850706255732296375817601418336393790633428382170414529890827032597168346195116269927406158465611534484635985339690331945376216836703376115251517316410265301928716001112603529785402741822194517397563786661502133481246824445374923284120732924533934403450274825359271104783657730597810150821606515322302427173303240759865517031279423927316923413316063712993560667783639089352258319976790935713438146340317118759145639530883261476766439041843496210591027835902353183398822968531193675076063103483114907738679393285412398884883215706495658833145483836522110300501418906052352164662561695921692284855158413175952893951270786638150134837123650016691348373012143858696267317079128243305867061199702780441814957854461451815841823367977585659370898771343216900858534443136048187861528108522787292024262347468478930991509407214975711477073044474255394663629494706849640090097451188062453528465999748660036957173536341570832854793493948063745080752690203527329524941490068931221162144370396384068067132612761663180702780747217585922854359044542400621820141686741483942880141798051122291379265251552811727036808558028498921781865232571227080678556210497878485620615664971881993359907029061773843804119076626304657156864906643775812784754787740184999488921569798454684395940977718158754726054753765698186944773562095140455506578562001971354192343746811026347345197956229247345471634136362232735076724643994009991555073080591459855633445328225393081957838623327987327856443283678021305057555634759028956729158100838507473526626131390211933926795789200256055802949591511352796614336192710938119068925894120194520270473416121389631178873823736550415614093889437992218539337160061680942033987874797787559200382317960074181600793067159053476160182447196462845994784992252335106645713427438636248251024613275316015352663397127792726129759924557790131408280043368951226412547275352125003067107809589139608799443961989386938474626513813713623305417638553580392533275130730229182969685686465228048569717441119097318565232867553371500067483875561825969278481581825653253534512996470725011031524736738296874751929857517886122797231612780416428971540944298835285786225042554110807722833996761309945029535084154521670129735768200209588142762378838049431258208005411862144590729600021609797459117666362749437669279657165671826955038955370089262322528299792062397011267501676494416024633915443416162107065592708696460546658771917927190206410201633056999940609335514448035226474860654884539029544981385778517174279270649956791851831699041378297176662479242603092268944687495141814514158913853925422640157532729231451332696164921407825793098041181916500810751787845355852988001513574681280926368503877863633138773645084494333684826370647316262495196924508344967828639510396963015451441349659653844899774694247154875708583353801626611133430124923294153612275571965131401180683772255491057662584072046154707230005085277722053719825986093061268285606350052690991185490607381946359259200685042392389632433794698440809283537524538084030515278639963670413723903810889208553856439940136493464083113434713588230256170937400152249269474465028205876420952228478523811061792885977052725098441920469767845936737893726387449012580720591095903406744514658312325875573245075442596575446881063133603498040022130474548860073207063071621155926100220822981936648125120027085649213527911697167654265757664539825835290417810847702438866105669848918339236755875830101795393234713779670905995500059055834636716228994366668786974930897251733165663068558088400689166736352239078043314104938615816048915981335607151850725707340527219407084760879863783098523663135741012979872062430414170735487734500927978064277892089647449974545805968412295000113848681008263992911258772041052332087348887539517048094895750518531263408104477278272585243794468767715468884418425111164043027312610614870891919022916304792733350324511548248749008420222008917336313180001863751312553429315831093678688624191428131030612250579230005431269968904591087461699441265644581350861735303186570342091591926478924869601921688460204103394649836360859750954478801681896072731706468790213363282564768106324743021430947472124814309597841293193863090207014520602333613091735925045724348232127385069722472125364292708041830226573747763647477530217589118339212644467245949598418499120011142848559428336852655873264231700186947457208280250649924441269022718290001050025462160576167307755949418127714000283148517038700303262345407734933541620493471955492918402909656619343048296500413420811484359199175117190042840562271996565931524291075480218392103487885129675699569069814080323522503192575864794309049733587263797793611466225011954899570015396647056554565195787678857824890099949259150401852025544749260693051160586503469519160675462482997932771250710623787020484520649578570461333392297335969167076528731350964405882697561074775418705845068199249622440079041643154138745877110796462178348099805952465348945620696466792410480622498036010620695494918571388307135034521070221791237439995311755595141033306174282438838466354231129064064276432788297707797020947120635155134941543450345003351169581331538356083552380668395535725393865517936304990626640603926678510367394543463709980884193661199440465553485114188906869754385559481174019364304732256154237365591113019190727244448752711649729099022151576849076004306607230436989825825969501851596475830017599610459796365736946556440651076147251948989745620415730553935699713802136558889571421202432656109206868332192047595268946387011332696688754417221055193715384994113481387440430425777877115699286512379914496146292411000563166767089483270560943278846687069466687410097033085541446496332532253534029110282768490807184409924104970058651087559945240300094992669352702269304532922552152874722101643619588018555557378522793540370112804215396412759310203907926521878596871506494017727271169755613952458485365231717240604852811573291055664675782542814557294893732486482369813458092700058359915194384490161934299516234030690656825623840970260664251149512306510009364036892467884829261234312987378633928238748647820292262060981666019342900833910122941271012744583107079355415994482261671658999794489675532215310264275883481079366962965189309161229616033821334052416789686937474902305714979955765287738819486311013524852685000617764084727172018074965936746813212690341763749915743872734221841741054887231138049569518140168377416969204090281978487830966612535107382996464426293689793028010051116086377377079598654386104581685583680713942608007478093804284628774128850643347995324387535434600717779466643246970057006716917626564217998667583099298768533138032100229053026330387020481794321661417511717823792623275630287811346850601549794318498005697176419182082552099178712084586443003984827071689743534759345204737444838328458382757804852770359690140811560586759345749613573355407314528818072711467751599557704380977557717537400729372167034684418235282028557700824872729942322997973044293904999791242858240126340538884252444148406582020734512858334245944127556664986907083020606960594548202762490456715933064216920123367509579351483792928623449531490997342980933623316891021291832347058728208959275538628960084885762527112150766206342622383294446597561675923048642323961766745054257715352197137677523435231970472105593063027769310550764870647525148867271147021075073982279818735195363314371179087986019546486482500166112186498209601716883715143636190246202340177168071092704290082643221735858285768375145731427290619754675632070027282864796852789735886870935397796624872078482301521535282445804213224894106948490010869001611443847405067692459336342579599479144280436412455059766410991216205815972266688174753296977995466664128310804317488574836999430661238338695488917499788575900798418948081104869894564570780308291849873160199133182344648466314561093510577970940536683024434940026942948241404540857982552422007234579420934039408413402229398396465701605733517187765758622928657715373749383847303742444402180502535706597926568941977789365357691748885550468436239783998340312863566240094175264496882044022403880356652938201221969289972778684408919029377567748584871001190756479013198179780402573514589573249574937595166736754842915189780071362093223421237713793380942262716139312705989897564095363593567487633905479705728325735320425536812037591321704160518563303604094881248415902378871434502955886895099953112339180591355828326991310408130936966575573984123354864659701697344819304222116975134661752548899857840335200806422968392896309221983625293604397575268966904914791537234305852964349694293727551110317231626854636627972619305764338222077039913648934369080848108928773620711520784776793182432305351387107740487403483140040755477358651796918687105118493139781184179657816167145751631625049111072056305644596375795215990818447748193714507869619385197599665143874876358738830093947480871471713524940455945006316298515244357288422040096041002248364052837970595679593593979326325928160710874775916348303484636811362893425688710978385335068277945165436362383528892228659068272935688043967198696735236328732352708750359023177701917672603032544165830909584904488965958946920293234047851323225838663313400837956403358309998309810721236809865945128293219299172860062896465766253223996208680058741235187777058839799070127137631824226366048330315899519971531569688342797102078907715139172286672064225821306592621566234505881183256237729470747648454226321758844111665411836147322975342266524515345607105038792640215883426478089691368853772674343208953372509920902618181473503075020670025055992946083126070325417769757344193096595102115972517808351832705016704699474920198434979195228290422120003145024421706354012206500645286142858561861447918199895392689376915505483085999516931009651362982508292324588585783373330700405731336524068354345532089531461260018002020738471678434887872110861191132893810764645174485809332078303584453626264514613887125662090890112023686796853282794439036990160688271088205675069924676947632036491001476927235085287268759891417834588450924010526530607930476510431085702188166807963705068670848604235696563309089675891733294511521883114384158523352199114239432476230807652593193697469007577497425172683702091914199228354777930467776891305961417899684931550105136273909690174335682341792660433875240561266374721339073585265154696766883273653200474826509241405428274948077250069153656147932767859893500103604811816126122868658493558995525498736798636525106572848767774539798920045025480078671402428477085008084746943840991379622109364751412186972195613880366626833243613956901742626513860806790400692039281488803839997084711639431823346033451018387707955143071537306576999087716002444080592098997269942282381031307151515267240919715279153661458806120204997120144920056903528106890222391869870866325082548332031275160337781360852002662048307444095912339780617383760627182006311637023610154361737554766498864557866806781874781356440670032055841890226370578226329854007713422119051187875458295670721463982804943788814764216454699447837444128398602173176218519977222973599553022583294710301225052367409909693358560126084510935904657850216607508435647157034701243692786088449272216020617028425869567283450678989951425533630167871300763863613962975792035834111552827392657311802477130918103944093705026349733354432258122131777920460683380990205434060073496359277703075684980970025690785808134665453783382437434485744202186355845304759800434398250644200042789208478647805064266580933104619485970654579842988426362993096542508997362547999954366504749125139913156528497100136533555120565009827308998112654986389237487444093109068303266788818712804252443292540152645480071629639400999065277194843829974956803663524698120182330277518620505151502848403339247988741322558701601293777156054001203754362981520676393175550480084435564477661136316045207018702334524150810856181591751665626879799309441394121855459052990818336749426102601367444677166522630041825215562764245830281890428564031719308842531160151778576237648802454468843392859586918310530564560647215353450337360092338097098799507767728490255129854840877004117861923886154073811814890526720231397650096459931830740862279705162305027476665089322539106838191136847067864813312334829475006095383758011150920415771800636748759734663570754718803480324445994698937754745952036316768871136039122654045313064723335857796375820518684443025873507154382175067762248615577660943926473982053275968907198450050619874497111281749923535886962213421203725665179430490252785780441320661451448678647500069089062538474892986125422166098100640334684367410790362950109672410612291149917762042259550026851868834661706598780497763340255666951525809893557066029615850406523267206021376743119043691222080130497909546075550982962585526978633678313401278236278515169576977590274378471822753604942778964852235804847754485120980789449731014849880028878255968840206364547182751083083126162506930248263067123639405066684900384134686507933898456198258457000069438570650852329048125353791556519336548527276576742067909561969352361055973988472865552414524525332210249716598191226306312739367533744636851156553326991028797454009472099157046881250982719825938194365313139005713400111489098768940167027592954714881927934516479052940553425340022765238727514450864946404196475820600816472553617780045955479998644228408281069263551273653157863115776078705048147314777753545814188781618098877424421178322340616019295335010845712363043301906891840178313189135840464137488090684556527449478044639971543812867529323381323944607457357804280535834328122127458366350663865204034326493542146008851139219899160531318892442337191803367741246499297887158651633673029997585156796777482082205785606717971568334820692140567202188814969744489037502485048921125027560067562652397153469551427967060947760309580467872201069016811087690986259850323089424963945439507674351198344508398011733286461824142943980472211861293505503139999778030964872906449824876895747486543942788347013682113267122184524893238072111651835720951940239234502255239441168210935675429221119519266868761718739382761617330599570041183487260938690660681386969406807694398656479888568421430521449568973885062130294633669364292530543714369694392007598953342317529303664065943033125556571428457708875835049583412557055850143726332731311788598291380920694336647606226497643994670126593774758153749827624244455252633858633136190472120302354088344181055160802189704772613407321000663467271264005997341960026540853411480887600088258009213066224442213970922854375653427975493173368985902375029282102502979540094174241542196351288997656015511273824806990534819319789402849530329488660103167218229762350062922714004818015172718727396221428860396286044122090649529914055055176543850739030005349768448339456571166731067784673138635838544574488905555680771084504775298584394374983292057984899987005000599792467588597535242532350528044130656474860460192548527501357711522004743672911798513055985414857200905614038479048897059122260480418776308139578357610501648585538940208396335976018588774899459180833517480434710283221378825440401231250220604066616211097907242572574955661538966863180503469519335468033975310041673235974444219222244284839047741611496126193167952215156034333675950772299547634037800523057033278592486090742579359658416752063865633762071952557126208613771746252960563310419680755846933945650587753800936228525134337517125126492766324730448133113096001198739057868371900639169949537937461561775692686396126851170188537554125241074574492924090512838574131221688848319050416155773185803191413008039627512255579916012027248472378471128637667207263853055961265698930123166954059414883484382348397746510658403234860897901510637611573517053421462745584519438179321255879222546528307334302050642200499245795121686292063692223970184930314931330443090501601130100443279142966051525470558589878220147017021998414529773382746783786110521697775160150129785018184541619023797416071387612363854774002282711305594368073278021685522263565591898878580753325024503069708061698544119418474437529556711286095138072078535206343016842229584154023940467331624062945952765537816792337697114824689459869501124743643836708266158508903048248858011412529037052140755031347303078360102919160439218326375039783265775368923925241232776609060242573388421311270935986689049215693420423651702874149515761205356713391283566906493097490450501693647183704983151821470598931977582250198566017565763715617048847771786017466771914940981726358256268664748378738228566260210659018801275526106946405281412206505392022926857947143939938220737625023006765749037712851076386081323216918399809867975161450778347332962129711859282869372238078163847216604403980690934429445698934478988205372247117550862309117033887835563175221785083527985388404502640068649143775084158353812742779837421611959187898738430315171343054237989280178613645926180340341578506531648758813026795678859473725166392338478188928691009045957205832556737028649627711185817929939080257094985933939345022156433185679807557208870088995260350202379731737768016629297081915691264730778046894456046275673362056357152754660610877092933108129522522917186905789571970847867104946679401591301336378670015717501601713989291941558586927689755981991379993103775594533986814267936421570203502079995540394758032693139329737631654460167265933061561592929635203253810158922248293928552918440060571742547120236470353861546256046638722880243771709000951287715888935184599235988677635885936306426582218113209718748346813086741664510615286946904002114726139132850075612332207072458280023774941825417474848266623782869140379008998859204168399362052211082288690770158191517227540022640499912477929046390326339571549390598792012169321637070975884800928851149709954261035726241353765115735674100332536646710014074978852920287662388865140377353034857932511609675148056821173569740482736051265433043488752314313462214453960559526225432923468808409198321760182474651963003924029696760832186511505744363949365413598444098722701915314224322302664483347916212591616598912093849720769028361408933917253974887853848052276962420840256201077763306808846001797259318980000579641159381248986628788322431696634154340096764064959621408733792950349762523338999104654820224126763025403465290469947344112651284279202662963219043045238293081493426380182956061876034805766601259199111268499103357000375856702590898288938003947573955927692722716090603015177372632809304278622870538236525429606682791950652304853198571232701832526840621125583961475656458153060985550975779857326089500951293158988474152693010785688720858968862338277877631292270868348201537396556361869818192363457429713088901645225759751075550753166995864355287552237646354534855763403714074862023524230239848565532751321426190368664293027678570828113272942931995893355205362335074526181468704491836260863165969819509240600542559847847980888006467977632406056139680756218320614645924337466777008959063393467272158952715476155830539451255866774947173607101088583666961502280810645515353016893203923321897398008553494028432305456196691651859404945276860938850687516016732620124091979064397546632400540659517537979642645016826880236587744724440151686716239266110048939912752122110591232376547101194298083084807202841664351830285072765281957870468945655249851347201820066333519586508424301730541245010550536503852022178499886250058482223847580138985424901039721012638590755529445100083663585666516672793008102774973662594716416202157592549285706208886254253553982492396846177099588118856569740975269658183176293230657134967980976028231620665679916379916570555832898801244734829116206718206537925506092748868650288907797061194558534486927461933300746909770459998942961690991695206085664049199325638594095474884553012366923831778762235754196490264724576222757000490292808801701793688580470390126771119613554828850867161426904327180083501767342197402225113085256583370948277112703363371072135192801407097864723218293263366061972540961792620310443910512635062958521337172329081190296253031558186314669148295105222632386895041706927210663084523168729947959164507683456937019447727000676890718178956228441121893009685325836015685180691889242943104327134176336393871337373014184068842580310624202150757816321140581152874334316267825603483582700129414094074261866113956241201894016045015445402127055830398843769660046989236984358535921125670697325128388919429655210740894797386884056890741054858554190360174498226148109611565665467220540631039865150468212324185501461885724311605293327580552612046905311873708328641377213855745495114775131966018181928548246045111557312131354777310401815643439482355613854404150499780951982909456413114880498223790997484457164694006630216069758262794415518997640992786658526293658836934206298396260151281238133427762192938022747735847900821732613437813080705271676394481499281357080383077519287550828838275685996572789546743801467350297520829330400830938408795000216327861477699856811335604544074654064799599571067409181156754763903848623665465371844526633687899304779622037903649127678475070128608212499229756474644729067697214628072426135104505295593474112720316714894620493641879373197636082301414850350318642252972209543150076532664810752845877136081808425854990977225512014676362477877994080081784688712028123365753280100245003580538813413980817222642438736628290613950999445726383554881102969861356902652252246251660262343572598010720773062197162436813524150691067713355208622584900382846341357186801107659277024197175546063854313471586872455838248582195458740918234933982602202078121679834480373042962190966913919379956918154963703927038486764529394047575150566875222563816700787553421162155818483826596099830862993512712786395000140209754292702819628826722984724187554996714518833474985962658294939530971021951877740399767999242619951358319765023062949406330946936757094584923630923644700401869591899218411078709385196030863573958550252736533763301592205762208623518457365849446691485112969140788019307828326951825238259729837054042413961617660478869441777812059259282351759613196812277174003548707350915344526410184599778231006336154466664404914656920106286361275194279940674503310155538082441012011817645745923214387836543349660402612237580512672638017883724986649768536107672909108371306775758869306039323027763455847300185486969520270206479774001791111835454813598789412527388749298322025952106736803937251195064624295404378111865671738729328914555068232038476511303866408434009630337635809924160810412348132029917374890717918750934212007153765820805721329336283037942020123594083910448688200316323335125186391899394466076726006839047830994661881231769969891322568656127014693102614439863156840175348204209920680177128858000571548461362764327689586765236166399325636523508530136529134207310532513829031964346749464833559592236051944996357076420522280636630444930299376753057441191795068433480991974702289292586135699669347370958970298907999500357983381751101271240757848138377907757172095574914636408943706155049739381777594095280451386082573797067101238589335793636396894882057210474942473791554334303720924281809978503163143933283852383076424469178755972458241293068414049643381039378293290480322219033765099937241812899138904718888205759235023541615740741073940835045761556751838085447018743348799821366954283308983640068232023538022737862007211860055431798325709643687314503909405009763739862904505008411140032473773061818015535431392676004580506295681000320893574846561887762058470308003612327118541471780468035394256030269074952168428585236068313569174318878016872827018177291628136306983254700391292710541987054557777545288625618612493283022484539258635680552158290720729431106670282482425737198675929232686322182746996027331358642924122017391780974534666136156501177006451013878113016660103725557061490151514802671033562010917433834237951554765815978629076826317214907970347042009503939039262346243572209904187658192081721028558574693961116744476591925516985968340569393631110533344010108838785647028379942994603247278081870982507803280719867209484429821528576674634940975335903174636133217760296583376309123162614029000305718778653846511050927978899888299793405114683077829639668483039688603963274564724238486004861516720327128177129789102328706797194070353494131672942247742041038125770850743246951130550421346868098555633035536304319955305890928096178883763841383822287161353441678654670939337317019149615252820772031445826520227992181176713371004831625989159553963652843779652018613014231447952909248534489077656118747822172524012294334863807980887615134770106647106417162837489789013176339450285330675677240293911852594298440167519296288842838073270920940901670596512760566808320352734608588136326999245460762153859118883932235453901923261664514329750151855257166843954663900859203847550795337173261624143610903978209955668007961518607427602788470238499398022343427990419754971149032187167335159376151870408490009152547827964453080965016129051978096243096712403245267793278881202667792002581662743466121082823560375815458500246557029609173502271121493680607561116643226287738467718560356522675739940285223080209560698902762484435751646928994806051398775575626746262989737589987012050389917996061346412356213326465759535779240315163540731996215771361186345688463714566438831416063300558666980011300991823703277542190701493353355061235383413192469005884766802626927956297816742828443694838011469709485908374773731891697419361632573971392104818443472189264156199988142636519594455166907318508228034510169825642215808310722538033885827580186127497872849874096319195539294580751120202300054106806684493395100314425823823193671910599388136611954827086341106194866796152672974764956171138009569078905480211479867933354731657548378715537166013555724785173751756090676450661481828960730899744135179955869480310237632026308326268692461419558763250219647151801362951847608078573994976956555987360618358552576481804571397533097976310653953747620446130130495318144666629800493497431898492095758040278172907183921325896769046621215918956816693106602619519007342687594264407562535242129645632986421813827217097660027987291058001163299766180775294338766187202265602105567387613826594028115223869466385495228793765577659083784324126734223745869613458848032397421922462801734990089152318677124073632340692663480700866132472999614177812565301649537521279801872709124406848620406818948163456253426248130624150488927171670725400654716294756857666030790139532604723799656165697625931965960522083854336317529402291024376115204024526549476729641418349701760919601033130178578190199923230456740388837897422396850516491024061168402750099210067310336207851348511872300412409290074336426396216280999163325254876342159932485097405722843181316776033365364592104758549314458309103843404475520949489913290293333676792833719931692888828338561512335372446496160136014339710736049597115200214727505164497568172543422856722681077272809671804830708478282865109460893123565563504974578592069597908578815764543289952572400869924162342346184099519381597241957284432912195024279413493761519999159116961834383569697860840114427932408877244772581477274194421502798495340694054595183738733831583398184258582248132428195998992465414650634258591437216334695911007574706448200842559033307387266979585373386628766866862223435112295316173046075263712073486113011756337402850852930204836219432356659537745390090820938212003684563616897226715150148183828913570905763715048281773618546555295480036771836832137991722811884672944084611257309255120685094467649380942842285921557326968746018755546386887058107293316783548653896486466273006414560174076879377694638105966380234578360940685040503284080492505498706446571195648717355646324746037968493380075458973365236576405642981007084257927353595437851099344867210433760230243087682629318706140068087647368987273008300291478977879709117837193042377298826758667222670162045419447041136167794520087346116456777042881202881348054569084249722921603824255640467946765672175307717808436701612480689276837974787686329033665764990677877781770186874392707167583726454364047557106627611651410127712160982680915334381930185934002681852418881734609251350394424558222891770286757149462330275199207429696735243671295820424245105079791247806679210274232112626616360848908587405157444762014628488730941902564005045595464933747073398528092012593216149859342350423088414542144542240967020557036699771222475754452804314797240757473654945847874126120628256530485676994916383438548241172593347972222603106630584746291403918961300708851701795974051653040668397392928351325734562894573663117967720624081769257554650398355313661520274791928507126301039473291644107540837174341364120097144282449302003916636666270476929990139867180112159386859126420584746437434840122536653772882213122943797898616989268580864689851792885852824784385122222627236841323622931668538598736256002678959535348148656039954536180697725565918883385278306861771443594644863084885650484511431207474225572724411156473134057665504318377620076179625187603935593148495758356858143839158081446602371827680269954819359500521114875058322874578268118779762220736670887462386720363135912108426846721520708560721027051720405804699674166475456539072944721952698798610147988244081240487636987891771355612370074162159326034343201814200194371075541642912352172524095416150395099209815317095904772985758303749313460305370378364296560066765567721903233969897287476047063921404087599342282756210039375119682590513454556971068347266541559663019963844759206300367823273581091309761760006529643132812137453821739987304438203232592957661422094897374865912795521320843042531731129469606060907891091926819319308082998136301288748762628721177033740958176767003454187871659602593675825715521273720715824503540598377852707180594216414071119387350918235453537379346847313647549800813915859774978113395076307593865229762453155031163452064698529196044577961891273109110553282208378516222589575950194035507013980901612326529656782090491105574227325172295337978558102854814655261905347166580551760380333159538387829521165445892217462752193999278448784774952774420840342448438374572795669091293444109437457519444855271173769882843517357917496746070297314049752610991397872057149521489003090728931362481274410228308303451327725184174762911106630915325331567634486041350642531628695352889031047232563841261436938472642029824555040536469951105051680213029332497312799289790392115887912380253460775710170515167043840052939182363420899715673442517406789806060188570230075414739213424799473646860496504439879477870222152953819934322324795329967796524765903236153152858424809394988191746696344132826971639621195302548906065999820214695421080196665621948995998964960144166081297876946467233207180024433033883529325714609090974195776171544987894234163442826233250802114788073195396615559433938396916333342424961897341789722511223394683653750791833830294918160555740742627367813716390223788095945549534970374381164115462164616891957879289580935565483270843960692220512924027670774761960932261791253694932845214848421643274990236666903575054173430733400033711401935077177212206349482664301886671938924291153614078213913970140681145771885321428802299049700340127764872951405998894652603096522608624471644014619814441037906449302227743997400623831820501627122965469255384214825324638280301262895875510141138956951787281487104985417805318274534967439563401679235455724267428825272936803187598687363931422247800918827078967550662248364251699319945331819639307105990985960682051333499729019869463292745871281190884812776621401226895190243570298648253543561198680709651167978798593250146808473205426952617294977828178967210745956080005950969029302956696358125891847273402272856939693889245033728848367787452654400461672004605554322624465916740815125492714262327757969673849753238062291573421891514004046866087909903914416277386201461415261130174526813852567460469667383190528541265115727554575141009439809912764962149331378663338198626318249332128005178630600653571538819947142027204129064264184329996419405938941447183315153692687282922692208366068661356451828115322122593827739609928718855061136299509510353939351153319695155560512120018480299178678480911557668214511735598667103677138473352069866006905315954025981091647034086865696233106699330062116171677163920953672447626221051434551479002439605889779241068752680164450525174459761632460864124419182871557521212524579776435933343569614667020388256066899546907233453218623910221094048261757729470688275113543313654369966153236492010318035215699087306397998862858620930999170175751470069624962645387838283670228374560944180762852124658364476999115931278910286370774092970641290770872342419682332702407479562815267279893524590888096109806790414591889628535861788384231459714029234817570809087572395173707529527345203723908646313952366761315918248122795912366458293756113699944542414121341554076929629864116542167102731833838831840012698816427193851796459255319178642180058305968010882438023355551247947256635216316741688694676032645468118790888775158919928081677359552329986736436194518611469193477229635686823149161122360566438069466327607022305730376978989209088810127180611693863359139938324401069518784675793959751094386609919260796116454242562889918999832449658112873785347118549716564629470798828775869240478044389829580148588447870095479994700468793510994609875421333054112137614669778098584507657714023214994817600188325033644608789748437784889053634300887084912820874441218692924352816123493062402031010637431884654623431436014226439966088521808989311218249842783660858251454692444493662552701604435840912968667908479158461157343975331325764603739360669965365832592859137308419207882729003510110758773840446043452763535235427759126277785529683852301828827296263345049198169917848796211761476194385150892079001353353999612820006381521379073432970720168341550584960385552843467800324485810186359792760955194899082912084140560516023705049353265542348705958716927186670766426318828828489298512824089187989713707559642702697965558414513006285150822587239575694303863598462331509990919815196199789428169861322887412661812944812002546883423808287760281037273933749678990274334669920040721869174517977713128862892138523059680697473111816213332212488665247341063745466513276781578912409064678046986046312772170651130342067376982471045210981194370481380720508254848936405228271462399925402581731718795729067823378595210398171388595472947716924072421282275986687128457127061587382649061166008824110880758087392814642658756949898312335089632811125811224572511484911234402142648375037259009715147668408331973075315763787345153173706873405220187380329899241736727564391120155730245989361409941614799494164105291770294885638430638203725849635429960593508318777959346015852213628670732981756706439060479761802436293686697266482384812999138367664239149095141057329755309202286418470590102421431958430856123835254222456638754107949773025242616920337960719413967440849931974813518511034446032061479852640112984586868570669303618268997222812193786043933905727912479292403700664418033306681715499297117287141718644234329859084763908660626719761300863279521343950854250234883054254369662233508486634024905251136394889892203013319172015557633179442753965098251790077638335645371458133627662377336195304303045812705327409360025751380751648503488754881349314223107065498298474730019467346411237995306388887038583078087339151500745286569597459039022244539953989600616024221053156655719209499938887590933553847196224476757718251180554410117736029938251968672210796293218232815918014329557547645107159277267078862684589579717187016146042915332708938190389935720265449307952362718134744190715139867517976586802854095913463289123254915804538989148376364170877543056973623548907599403875753179793119317094152268560797660430670631864699302003070322882403488641958717553225411994333564213570689407196967976989197610547017324865136936189058028052214858824118396335660934620737308477742807650133813750046386277332439168185899741176848958835915429435828821152370452756542520912110686127833381555017592788711303672853158623374490764632221634629379415389495527241731107676850890775035004634868581542310502593478607069455401084956895342225801611336718173963732903876919770836329921525472661144128691298679475405307285499915379561579213455102420290281266178334175350417649528034028133849774731116833397661254922467897507423528534206524762104748483010700049205203445859518314689881463120645279227374489056739728118406297674919220410456595845063101149979715844099219959710990806349566741472385698062335967561230037038060148693301405475858713205883595418047058012352171386070940655834719296034550877167485602304732674319174940743907970117071493888192429279554355977099999506979961676395463579244178787130529895295878831063095029794510870159885438678777648532379639860303476252987477150995959517799171945418319071111037614879606343661646727505612136194279712095290321253492408716832053065716120444751693305696455543076764952602028665142176486434191443441124210604178012706161747333158558921309924592349908322595868010707536484006551960008017145546093973079261963655936462959595996030831444769280148082856728403890965107637438657213519360832273154712601461985460985442048409414621911736618576071822366631136262106938824740317254621011563656873158905177975065459679768688351603074516430872742437176548660754598868544789297241788398574181855624216911546616847486314280505496116262540747800123845875448207117453448848599519100255562529425367827479883200452699843108298527121011067086663567815152090543333197523517114713211936234970329186720727542345985681354557506856970336536747007121814075280503105515274280634298990289804304539356117730166404669396260689452518447798779094927785722020276277901473480804341473914174898556559263095895536547984556308657200011740621540999568433679522896971105674854657778407128423580910135492786273474338477897283156768570324694461517177268317330639551050708762744518866900038844024107051748296718280944160475281147607710618135322828064024407945264739279178681879577726937726444322603952832178000417414713113073599064248562251064566249120220321660602658862150594267090835424085091699695353506729621566635708903573740912025170847052510621944903004572504759898817947230551486892415414999998560955379839068275255230517621443855867360136530305146861452737197341995785202163261322324901762782969295226080800789801143870336055532177785251087063400006565797990586858055292613730640590484227075671089935029045671281286661080452930657329341468695065047676495509266377228384233951120600802191301150542924251973780225938750874128695918070481563854773468457159706248136873037166451527414186989694122523529304992702483082589174306314733366765570536576041222882993382281797668259155782872933958389233382133257397175234354880212003925116930996630691065038791041488486603162997724374422602246388944739671874690908164855230857591761515389988722882616613927558801438615997315486229079122504353799764124421871637066174540582235092499544470101647995714368972943127508237780747547593166598669613205110313034513158355068627897042344384369759703298595148278787987830486716011896051630512895382277756189247169805276979950584240836453756660084010647048931866858382533337130214601446025225820014252289500428718799312659820004070932237755506051995749286197628639797455823059852679322850645524470026260232323351255724441063691169160124468608841580972649371967449033815800537776122963772092238883010447658047108767749210279797424032409331194070176884986939524360571513771708486217382154628391068985815982310524250578056158410485655134985962612094630564408514971384811636746414856947041104043309197785854939784608318665193829362187052338549513968733681542878523899646296770903684427360249158504916551137689952776634013710807082952408906843049423898366335166507977401395869551436067293895099937368828424566283291696051121732210001159754210516638523018488814572272955340643588156636137208995940607351439012832071625764746716084354625672915573565328579621508007903595889998464027785767929616328424528992658365826933215326310674202597212580218282344638765531919342013216469027365496931383492007744307106473667113295241999089791596462811526930773741875641463353629441382884119596219233399472639666412212819933808151895616858254793451510473269023541946062636262451511830897680753827433672141984030537811187313474103782744234215058036092773902615375440684054206678624982934799956125963578409547425873762631097671611910343883448597375657626706868912746907252787870166129408306190607803927150777296497331394532067464754845985460035509342084250835418235674519427754177386983392948314363791769019494856167440256510298938453108490252869704534549939674660125894001919612421708308357047952749742217133614019341858369443687565321235221709040504119777417197071679229424139702080702377239635728154236777370220534446440281842208805628256460671546946854731812970515642611810641006779087490559299500555266336173688989396894981658525457864792603947790553907203270019838523795965134541658221514326036127565174737999790464517679240201538741271053290241030008863335540496222034036907763240920339910626706877587572414892137168463710011379530527664358155226633773148754585134809793805662709791507448046274378405805860760923457689241889005494923033734956434592084677816397530840071624811943960593295153298738832648108089066277409720339808096386197734799017653784664742769489202035430224405096211922838543880970596276728231130463401311526708797450649419892124174888817585916528148889399145771089059875084746972624617006076621262743499725947924149953320802550635437573323345810684843420626317220576351168959951218869092686523196850286490754647774556544138070654003324141701070214917214405294053114841538881868668966630537318041528064601939914380782758287556269244384939106888326287815235149312808108501443654210484317989584394139691138442459895912155254658884535692695485719154564126109100429447406378037897569647754054357288927200962635604837078480177769298152862410294379012314673543560646092032343656638998708276683902132020596505480467580942084945556369035098973753866285031795382217086495821905536156620041760319941925259575559031089497359156285157667584433347490478171907424459020830953512921017002300815719507377763975206526422689309689394547465599664982103135273098334212455169653600255961009354404090935662182301142102646473940269189087702494792271459312950976580321922671066294274415101157936288219988125516868921728800772889589216326769841467516808163565305662768839684426430466809496761817145627953786744292833562028070444725193998025372634124223836731056527527150695803654321781701961153960061271852521180445942910978721414769292856099092608676314636344610394065947987599021778985078361092047793945802976560945696207080833930536310814062424884496614553001183178103959879838067363892010362395514398532874690092299913407578158936431540686740825467546509852462569840066017649633900522688174306246165234257033755971611854336262197486158109775403261444885862299360639105071174107463658897728857470546930172565455410302109062704257535707030245851402084388944339508269057727841992970325727714163465033373090619852206518618212674025730741934854647631899702555128930772873633357569443888844248648451319435621670429400269297770383272496883477563952126131011556935594827817937807832473154025762246622941754865862152297774556603658110346616179320092246397713436397963052675788458392056065522177145785734057321710572000066240839033982069768317417604820006748793824399190603961117680272293188050271706386423189015629172085865185136782296536627809622718699486934749858601192279318083693283762056102122270634143597131252535514486144853011443682877287123560033395921193651222176384671583082196004475444199516705326439575831070061744197549780086603281306789307678087525751012634089813388088259550081891526472815667002301170382041198511804924233507666970948201952320619506638960708049565946610782962840589321296557069157115909739733482087252336062321410895036543516509521594422049270505224536307461669728100510361289246785743529252953928739522660108255750973849062234777858267634022003983861970515878975709493325930016108642229193727684074335599784290857667738230009479161249104050685083481462014615932192470280502952235338224659576387047939255505360284897717117589791486875830053367664587110094811556348076420620326717053473189704398516391271143487694460833255944540360202619935093092754126501318384082452935895065176048100393806018704410405912849965562189414818358916303000626031334645802686488332633474672552955679967266225609759471609339143153252462024604404773990313411863543873436870823807035326717242251788499041927590515138901758671292435828279452646132277522052159724561524709172735438889406007838008765659347951171184106663741128847670656181747132966308503517406763361052188993865675977070267434088750290708791164213315881718872948808063951433123292876792477329344088406296695415697573150413013445866836638513206291638487851877583257307662357334764607069976637708944475221555300690092984794273469573549963627526787485683978675894085092960569780627639338969008254229708396597258832584715818195309916992886741432220871236701093759988101619591239611426320959886300500338545058643476901544318394316346346816393566006725136014622758037518662232597213384586445027103276239308076015662002801982352623875901044758113983393389852088839998086227152386024363324578282152345647493954444245648608544023083420157079516506288087879949839469823596051744926790984206226881733939053993679731448943123564705976893696602628518014987744047087481806101550644537678692676748963502161186758481567531130359674000793822458428945560358550708201346541542758028532169739722388274960544537927906875942575863891916296368955195676245659633601023277064585516854933165061039796031869564242064315406961294857079722951738743818298015198855050496482590542395409400473834357627870683019588761210316634419547557161162439447634939298031687948189949944500376810790211907800603225583803351850333317608714621208170501119376567153553589019008048426793456035173663673227725932178164278206076962252018021477339059892447180981285544866346862515564794079919923386759789778916875347449085719661720362942189111813421430556937268647958976499354829790828479678531938581711659492047891231668228162007913163937142442303892580597756608621764513623717038421008753231750629205245713880098681983981311621327714681253195990976934370226805165239679006119445648438890279019215030911708107356497541189709514837310782967296300327898375773708007612382253445072080123532006295890466048763300636877796996439280936637879301991661594071989160493917795896363496549907521695218802582965637315873759157486716461334343242755999645067823425874888172353064634420224417987206401949685233941244297808009514811652257935914955785001323472857235654059010474206786740901674061343155997062142231418753778553166360435842826636876891663808156369607377539039035022744224977591176786335301040012103995566510218304362939202620368816661274168639198393580277752579761195119126427205258033998492043039131205487240637236913219545100043258238948910395817916483061248674256815607447661844222297249786467262231446415780342390994006939670217472740385805600804564554532397549785864225839962549921024783474124445014620896399840289526839834019454914928172534075142882010303162450927087800916741356319463728760860945523947911321855837284013914951933454641437942231199984209981669036757091852988539967458513761395292230984508668585126551399407012979761321721202892123845051436269086028634518639073199611876754691677256397701883305645918499055846786554329435610011921279445346514225021613054671789417759113902932807459361290950007972023606460293960270018349793416787513979233332075504948396458486958716567741952640748137330726962971535632824259755589344786868951763339708470866335389009113307195381949326356789210221804756722556895314275014060010155231794442624863155291746220919524508972348181720730847836785442568436493589705962100152563692663297057737569819674652172915958675444358431767792667567257734748928092858489121270392638883792420993011439666647413758513490340311329571568078943872001694639900543582987465838840098578088439400388907285441537991340183260489233843431949974229597228209304987247193431849832733028732476693833146406669569739734631962361258820768269362570618193786740870512183722919509590036616068347664499895840785476085213042617961912053054917427256070403897777363404447139036793781042024817433123034657363271354121170328789944351335558216197095846317463308928937905083049175082084565372125615232723801960146725962181908143282545120771062113080965155327240447760212325826327982073023486317463916838048005467171469455504578016484125726114008071639523284712577593865369380920869158639062937299622824255158493821441867636577151439662876319560487244305262113890412838313307420223772126640195233994849009458045589188861175231886720639379566916222043151585635671385979137099216168390749170667820179969093458840599186291000594808486567946370470791649732318990589028457330337406615135153112836955278008846840140056150204144487694134710041058229236994794737558412175965462749881373187716461100491173362776623445519090874532483450176427225109168643057996116427592569393240749801367890948940638557968673324763815797499163338247750141789552379647894118591190093013456882397005841915886732803770135060478611831503786406558016101160431960176619891244615473593982380833266441847796595635224119029583176826113875719986886987841361748773267617638778676063854973329558266898571509019276995696182246171207215682715945581536237478673378882761734502983696563936800066032767104060343441634617964606983160424691023493840557120403490313498922458136996264966251740309157829300255650570161994740034815449094355726635863516337032284316177708657649599864027220390269266580444647899906018476510413093661847506317887183868390583573735375160147907207835503474637554053674976087400005774112319451977315512722728317117992678170645913077341569624553848776376108328915652514476060290906619548785580389861912176563277134330545361498949242356580196476205591968658450484510425657269753424715224198008495716248594016572397166811260794120981374953664607675558793733836432129374203743909333601959050682034393634531018408009187499731791054713407075818436813487774028611255642879258488756967257426382224010051154529900727755621191851653106444849011152494788138707773962911790543471230754482279362060263021965720865721426833522236491023884313226540593277259118321224429415941032788117200562737013486131181110842022171545955377460246575017537995245637666427094928182337818596321110894357340463685967914204043283800814801766877701373233935116321115889358794460562037623667772330730523518210081814477337357684191638801392450481758493811417183158120053663298635985105881000917155219880589816864860492124074009257435929388454823323658789902025999102827410490694176867276959038372360012220258754275586538395843246656015679465457071107122747316640740670760855212575925996416218732058671683007059286193611205147757335510977142834380480098226665833948124017327891373542288549426593289710063177744368577936712688252133253774873192391984792310436039570772649511883275017476433910036294275512363783208358024095667210108729380327015785074956699008328160466418187426883372634614949807234992786707150481671445652378726999648212120404005338548817836291815999863584324683070259510887611211617575880836058964681887181312161631077158137223633814706604336714957431158721754578384271034530574001600949873697849581537143025234843470368237147824227693019691952067603236996206748837061214263148853584705715246775030448797647920863456167096762698041539614768590176361915607993875859016649473560223304944466319084457508013310848908294352588481475067282338051326018014539556460309686156211130869105707331386285656847968385501178971591844918289291735737243536796686186691435471344861731560737432989318691184323976823883200302523144818410455149372719350789389474494519326028181150987760604527579929258941622337732811494151679878880349560803331803286803066039007830024027000128500300808807741147135770304564414406743682192555417220372216103044697393258440840455383131831594946819032825197309987065452281048519670105013552857756410012229701143801629472376257243436284563607551619405690058511513667343894645343901883175787437049770308623926190582179907564134263706539114592750225128095466728930767070972467356471084426827712832632691074679740115963344767739700111889506621094499994857126297593730383742506395649207694443633618954275162926579833534386949891655931365445465250387947675106889795024316223460923980787920360768730018011694453770250548129242726158914072889979275769152651990806524516374980803767510122018131043403441914134828148144358080571550020907075605493349112438491259512564769368709534019090255949165788742140627996561691674605261471284289646619272009269026961529224443036444470302534081027317582680260189533653448573889322745214454548858267621591395940054313705322075604788455408650080368290217847917840017303264075447340355843666665934516237602493892688121300944046990490037640904350087848382604229553100400693605624106593823894351222606668147389310708520985764394233226390775561599798094679091608660451079338806632162682848462561261954857011843846906998512542615211069572520784932056276477983640625070124259624152179637191561520529260801881855701265600157634763917017027623264104141411077860646326501361186523826850047718739280007950172763610722473649225011757450520937601188751372532986817556751884838478363089909912931577597914095480920591899375549549173265012779460398970519244502195418736168289533301853236007144558220940180186710735260210352901183921142146060160714561550997860600474660054141569955048742773595703861396049020975472519224206290257048437268216311075148532416203366539972985406945199792502248327529885704502623148266992679589603313583113049038037078366445503009811722910828445127230605038061647253528558270565747149812736337816461525706370465087825353770206616561358061855624307345046770828852143938634206489846002218754899405290486727991829698526715782466559677037040776250485347497547725453882842158138049036899002375987773484861706311454353588962752519355825987515548704513961549564837920527384858452812708717857655831457100298943129711121801739793222374108758729039925163443416677902957923581259813757434217443586273962401289879423590730727882751597176656219701693144161948809365184464762117110245128978820868761821055627368289445527256762172074235651469236338351870494911038011808445618733400879439597126386340829600005004136397018632512869594755950037833765872235328477965508446971091103647319754066272807847347894228312530927090416720370676250702757351317939449128589922072407796396560965851502784278883453708311725871787297423371854709046878427660195931295449598977908843174846204710926157770133067389036350264598808616050058827554419174279156989805559797357398914831866725991599205943661933578467939494909856543895335266224386693633575583729537315545460181167856876820100215272668878391230682057076109804200418752457433012622873250963513677415067594331407677180552419783758442987432848832582856699746780407116491762865752543652965722070819904582202072544212283856290237580949132774932012204517041330687073830329913738353040918845851553973473188336967470068286223179725344026832253198064464585923078740104234327836694808170605442591280361388021688243681355250543477203781625895457881205921187309473409055411348569799950498024289095743799273070323444105159260884254247635000036180857731136929887922183453975300225340533783048716968179985186974322493381445924788806440889873209672510563091914942028906690435447868410448571609021927489748206830687705064395183320789452949459413887373697566312244219574636809971863375144018516892505516745670583159044398861189655672336672998188171072334338109575503184597667276792083734052998794288418623548709594213741345628399963536981094734316702271305727192237650781154369966114252814723040686895887695399222142907257547135586162064737249748759602873822663339932975241510261936668612498245829198524633191961060582052632551361802163081918134737286729441976263270679708881025697647050305584451172364744677420428667200220782652660211551015963031809371725518539645722413230353590358109400474473125265119326956678840018160743222641544737785446590425924714930999149577317399345787108588061083260015373221004797372164664649720295635041339370386387263088042719524463879380234477816555116257240995499087993445332275690922310753331621906358829366045637445069618558527321067955516790732044971403824368135550659350318131183072830777594229312877753651781907839462561909058560789256380961385435256653677720563558963038704179871287853762733701929148099949303197808057552618674142597146073035437287923770687384501210954903256566068043715806511514593646039131374689190707903574132642157777913911167801242847009110213059337848885979355563181179982180328960059002938899721307227795550036575177730316805502121372247717813239332761423839727156097437420469987597276381470579584651658870044149769604157278791390927017763757431037312294378904681897308343952436195004869181916420814323751774577154989496525766105896335367105186553819873781190517473103205317314435012572404551731849178344105939288021721483940724480329516561416650459305785505272395116278971940443201083561550057635625491591014051423599267106973825383773745884444971843566144394475257236986993932948639432070606369845118232690607872539766233919177035828125468786495215675952859849248131282981233597699903630094713847456093482239208899221119026231337430205145675744425666818523705027116922227364483669282186384072393467427628233415793980407926633774289636043621091189085120844564691487092562475641970329467063453604682184462993948018027561650386635206679587468700375687804836574521553481888212989061188165544194566090306170664362711225042117334388473934363290250457701116218276613678247206898879027316036839096876800553942491583807913471396724318675426200977328291983044570396354439964562535309969089016494301722260992058071346330181417028375956904916331828862306566316641720809231780721476882379700067390841466822868367323043122143451272383391224968748795025134179750095015033373322792625461651447964984178310663301962304816818005347938095891471673285960282956474538631106152170840697924260993193193343742565026273090438337888617523410481604453097823179332774057494614031923825158146407126607203104995902659416786205681095736190892163633540972461293413706234035191416173910127504406708986234049196028559178601591589266891596294952235060358930941720878073562015944857592191001658623533968318247050696843269336717544691151478680232591871482734326748554646565433805708541208184654866137078387674155300006426256868005951250747538079323279460542468496048357868576718856661205137799968237634390662412974748809002634016828190819372353113546046319118378508994183438597628042192017039988374306724138071924930395543065988302330213153217266354665838630079987521114025460120752747660593930348858149907378719604544571420200746018896701501394504681286304601867396647086293802102132709675130235090445868114056322454936264938602991221806372233207537096412765810798487559486467575826242574681865101254632963709511046506907352958064520317117398127141049231067252112245783750008196766213938044117379256186693349124181017849218202294928986377581451042881592792485992342699046381165632189313699499747746994412349945651427307027033815801972907881557873226368736461425651058401216103284942971511099965826341491626345388325425093022854370814214291615501398281028084511551927996338153987637891012937575187132307112346500984942251359911519493272119656630366862815501794761011050232957655690202483003694627448723569188480774524456221107689089379880664266849290776832957072903079677312427406186528712426912119340057029446964730294507604139746217166486392837702545033942139641213261205246677187145133423715514409433374572363904125099251991470595140412185732982508110823210646725435886268827948652940241142526901531098061562503977743190893711914326829436021190845783756397267635345394739745814649795204040702176681636085655917945660012247232565214411281404846981334605369596930973332177393716912783760781762535239001659852921090676559701400088980285413456565811947815453997807300153828261016642500548018755195714918687541568368966698984263633567381684349125828434035010467168667606096349775607251291302751777771346103301611527691655618237295998074435359724293331313962611070070977170617561761561126081130160011741254219762296448875842707689262185097976525611867915838922895349604389018816182317040434755376867886799793292997359921736224161734443134700799942783816532393130169578460781217098596713290549653917199572703926216529081743350199997934735961292999169368068900552389449532421337616548888679802628098673753847054732761249023742204031884179129091428648237422270341389104496560892996073386461609926931200224620928744379331743650098483866241096562678186097727351040508680681410702950386672589684682313393213151380985233030533165616627138703443764571018835409355464319704880883100756760408966259716740866877531314089484386777445819936935286746366450236523338628772980601453587435885447917802763410722746666288172045598746712696070435045363302815141287646239345122191551942521282025086970419008002802772789040794704265406705702430606608984334875782172419918127273908975653389257697717597237034343081581379705626092311635274076230340905661833138932792070497165810289413833985930459546659335181850600158590167385841082417230311397837129787071318284144528829602955747778770273710005110267558040044178870869615203897242549872368434049088647007398358999200516513603896238865879837773394270012388373357977706541687703081658559256552255240865186443859477915580956079332393667957966552119319221834199174723809207544587383888227102647861211843850327887675309868766108243867863197901895473214886871920651267049004736225199569034906210699288004750367555613998501213350417689575877062526432578450413261567657409225496749792681042710658902054725849883466831284526028171732051955571193157339703241525449789333946238097715432533023630595269394650044845514196232194176744234159823393097907677789016047628556087748784377599666585266711635243207070682354739777059105038893080891591062427299823045090665926826364217777453317889001553586965698071315941461385277415975017600997515810941641134750854462429573323255145934062066623000232542182605769509001609521638378571961406621691036009357472877901556866114190150091875070649190929988531803707745942581318702782783464394169862005702651904068033317552459222774345124920645903955620410774200773777186890209594600260615490240590990534323219748528893374693759333346584642707318847768064687244474945459084067372474130908380195496938229967469289280635058205054634205337320214047108210000196864128082156910259903490151014072147298983615262956869320958230144204430383742025065012388725372725187507846742689824251828826627520615538297370746845085005760571746750370564043029317957120439786368060034485734482629565994050120864241448661984421850181617483977226009288855902390589457049270128470970048230160947214651035134016339006350515202997531833179351113577475784318619734524766911458242847234919345975157670676470781167772084770827418410402524433866997038580066875433797161779995650597275502045585504162303731074317289007987309672774947580769414561434068651171953146627102958912877227696577822391409743148515355203092204076418835435584879162935473825514142547012623358890194002985189179056557048362719232437143614009474644644632455297290347944423593675533830121754637317439805871321103858022007189289169979406186518894856463940957590749786055061060852873904324812489553817817996906537200492250272709898802144976493967547941558305417162886391000134540862491239964496271634021526667443070284471233977730544136847664655855218395296094483926346740175983669727296236027153055989991275407426382538818548445372623148861103732397711628360636102176402465978425675631998256264423031300572086918463337641403920566691358514268324645683137943199932833409073562945109918069752540695343909232569329188550988292959295570082972265556428965239370641220955279037954772480756698456246202393953774710826641814021188058732709320571170200975696735233849205778618023745408896751590457894826719861203341674397763272622177090833265612356666713503539822313447500115296176537103075194602433290552809200423207566138337714220421633107222304788449182625687963915356571490143805892399224373639055399684248818461450549521152753561245680732252847232335236467073015646954792847217154421803204792267594261987304613630646676339778383528176456949240513658074690695874249935808116662342316391176486019247164023893454446000798849353363225068769832022052613624072305236506724408523817546312951325630146854790385470922820345637070109799893478122761600561317921663951224107570247886742353230235938099787382054967943229617895414077042385279370563537494621661870584675572092346852598263343153728961402393076092094027456864249250112056408769195919788202108348760382040820711568401532712461445923344979132623178844120489120485342212871055317403571263710634259501283459306182401045330187542654784438515238285005174661154700721052572298470872187785183214493394564345979522080609036493250376406296762310048017033104677518019795567508540319025047608385674119227657262286077093245815836354902311678825875185479420846167838179860400676501725032700980793753456659403736468128969327569598781081915529076036544961004000847744565252973524404584521789545222895628135378137408844941936947377584465750819830964275672112152625951678854736702316745358620452308478964601978604001958562329667871503715154753054433779387599749958114698042320850382761438783488812914016739061753934581607764707484436720211810077856596428466787191296775814692148915520860419968189393172465048068909982843973562436306766127666431937716683851326009779907529787337544662600179275547242187956227476579354899416074907441440934485562264804246668356670808530776317116047488189350904214121888748048298406301374610432981998654812684680831499340801472088666791619957859147331756098973449820888211932836884570166917567322232525864469236138993635941819380844431840834751300584087166199461036569453668336724085133629671103717528212653954031631816631995355702832982987375131675162094241792241614240194969649735021276481306151326099234760664042673120096974893888284503203611232374059654568782953153787965596501583506009619463315961672653038147792964127492444435578432755766400332355197362317885552711305801386332433792779532249178994034832657966037941435530604595525449883377082250518590421268177338722519784779864763244732310224110622633521462053506586118873423581359312601134625538577083697064506973204839534435223553559737945630373511720752908096031926103958614138932742480810120741443855880184881297896328779870493724984716981574843683731795981230835326236979143631812312595526917570470074532591758870152879446271109440674169735801717015327748312968628407580246590281895607703529979059668745253622004419199749967802566745864346352087627512176642968553512037687486969742888449903849871139733953869777257550396038213278202012094181937371468848783407977207143740757969183470560618872163380801878897328988658340176933050183997475426911828099747324990656625810055568313473685871169812156577389667521090082544658435419960178715254927835362846540385954208239496468547912825995394407350534979994454110229511707017439290211461112163256937991617335389502166995535573614760597557935066476314431495335528996018918951258784616238214044265174908936831755026988565484752294988626996033619978020446133231694371826502571980219548058074599711788986929531530910381432061271770914244997349418396638952490104323824638300087436309401040641636228733664076418724858781769684209397111368682074249119162116685863870530132100164947625285339569276835531183089499657848752286094960582119726484913977266857672662466349109027083017767395140604210680708656239145628250722746130353787102806339134048866324464540309577203452059486689346645317327758490986817146399094351883965808516899509505034862824206130968204081086484956711078605102766479214319376789040554257384064720519237391062422553264732552570854592258253580402194528057692484151188685662614898353058593582379697548588338630615407179729132528346094934217631239402252885493477037975644164309948170816147619286564168604130999939780246595372530899696467990729746540371456308850334714342989429720603330191281563077914712373923985811091847287403550653102358732039276952029808977937524766732304132548379245246888427998037359565389860923834132217698178579378650628221694661103406290230463117399129440153494426599028917084560674049612325380882724528160059887021607639940561759526923858268526541005137611230539604229804958865892605858393551563313687741880163399269822696684090480640593045427690302926154537077833253392486541297464283069089385319258779621463731348457714396446031418419044289100937051527484979893458226414340051715564829826338217376439936758267933195606831755105352717979834105374872039406612099294165502523762684233212810932803312591722245965974068214923077105695907031604347889137896868159605810598793953668881583590969970227576122360037693881898040798860278984717242655925547190358540295453996022662690368890253524631982189956123516454918263911381666509837662874153560039083473729427903544483832033067031825316871874525809903966268556948519154863716597376606880629916114627007242728410007036933896680007635136333953109137861386531913507884994347719368534143809615008252224439542314421535538999531784033303091182451052606348300677088857035268919747550652101436021848451311780637663204888845061485740089949715932129435491956065579516030887704238502658542780653026845656502150157635480130233743130033946016596407284619210531897205132735182002626994175767404889592761602275397236640017035910459414662258124022145188976732115198643957850826418042740915927482126302177547247430168641808902183633619377867931968654475857688765521756447174730895436278673482505328342500519354935348862552017653492518308699740473015621200872972061677887003852050069044069319779654730525032657546464921479243664528972735901936282343311907575228187691878578425295586191141107966408718616067622020685300215541578289304461741926144748154987496907949483587348500295658593549507945611791091409558375531993969334636349620557455222071178037846649580356325680437511476743507007327663026978429080584012624812404556021629627902360769092889556759005921762767032108002840949196760654936975860292171187169284336815488586356948893884171417259609661433525827349389988213790662450548115935592097316743935642834378273935376454637064935320779520449916674364007277981709415421940307350623044817567390996593250796825657245628020133792260439272811012405714489187052062607361255169871428484237401761031845833151540490622907993268624138789003659673996651572914043283185579917400339047349665924991943572037410071867195847137648170960150070588673670725529570459969672024343897900981602103982173437221978445212448825671199576282131878001975789907386206826398491444417226548994765368500190953704888048541723841353986197397975501180313360952544520311551058284534093111790323252561513280114672543404125972386405997223107643936927919401315302676805185331002874145417900107548001196562149962957907298939851897097628575371275853890296142572380019860424150821132236335670911110558467646255777628155011351950067322219641802623299814684695931006983484182472461004986739908734125737045178935460364037744802139068579157547149694188901255166699023319376423100082705856995206152590804982229659111617348287239966006429264226690652586525844607655187514108203389334802168477567089139985994831832501806823493759041152772790004683998483558218901393911472868622883640211796900484856896008161829212061433726196709826106603322638844202246663719678767206729161232916001586241757963995727944210446140609553151105140615119356955601364798799287795883538979461661379304225234610028287679197681099869630532073374712377043262231912560661530017800596474560035573647340572664283887964947436085509994459444292431564299984181512731133389345662965588243429305786080910119786266967249146894473788057878185524604825980760087702142543136616952036869828792074939549804124601166841293414238040756566586272266631904322648732641602398141399614831144439125911934387837027483492884194457132161988750190179384495256724330853600031576432403235428307816191836187846784608507506239455571842285039327217601720188420887609262028979222715489886937455549087349189018455696365093180900578449947151827817472802531130735757000077896414394995131637508806617427277716708424952895249959795211432331252770245674130549760529993374473900867153659724646993086423545884727756025425717599620265217626295422988066494844760570125957933252716286632943902828059400853626051208258177395034086486618162742679356915159651394241472446740021728341224534435075905513576666684945255006280249498371178507375296069520631671783817139854266685313153045917800810938778574020950963659104311946076831292893610980150845914623501381971881609263206152407010071238782822104600043511944035018350529283878889197528978569734652714084934140585300356825200222498173841772291927766225035575431927208406249955469214283112661122635484141587291805177674464136966662023066068463772039882422547651969903995209871733320546009432007734239526027016647154237208603271110824814723769055115670243634931123707491652931111966848199098643899316559563912847571367149641008738150409976843450925578884602808124514445570073428789617151513536844868043857961024555545541038652599790639079147441491191011874878009164211031323774423570356716636476228502610338188045142250453585502572517497670049841842931198053467547268334898920824182618021727249055877312833424124559257898494160324716766125624856983850641473183266140421520515620008246647183380379663951048909260198781348613380460918965138338273317977762253143550667884371413971714750829370315892910558766267728235890849348133830926659623562734825217183332614371860577785862007631592240016107621751384453882289280819088624766433221745838743460858149286802993389349845295932046794282499569361846765103123738761294143824044466109770269376513181447191982722327439454180197394734766041967789211044537487305376628382804404912591840313226350904475103587887167513417076880019693290764469553856457571194862601219952288784878458746167284506071880794948158741869544482441039029738236545594347905380833035112659563729575717388763843768635481425739106748719619918895911919830101874715468613749009803267601711131991549889451017206233894253735478056372711676068556675712354737549855229334578456689282852448665055675708337432205356227102411695059387960857943516522926012432871856217529054394569245077492946383213579623786800647026180299117196810950392620437181370678101767495516875415367762964055402549409965809000829274259262372828660475148239691771742671803728239978062341208047686431515104168177058430962071879679368409096647945809070127429865344438493296042715870285173240316636526665268916054523698996618454184481908863202073743063244030714780338416770807722921992286396675533038590018053866356589051874596220855226903603073893309987421336953602885332605745120114492525701600687635975894741479078659860234629622181963481986455736213836374460553139533121538849905866372959033532151482068829366400506782118234495099172038317791135592576435542926698598553712685302768508281260401385581815190120791211546637905441960501279647030517280641392133335357234786715290012650916896861881778798893666238648656798756903695744230310258284846026732592421129560675943255813393942101658650605718891087581279600554853443211746175615345437831344609473435693326712724669277908760365385728926761817555751499086378753090160912104141801916833556760128640721614569448810057354343841721436814031301573936070564179194328052859003419819319342009284411687396805769489096213657608886629342559648386448279942927317255575112770886989029495536807667450491546112910072057700855193488517953312595745286648285694873990208581837818561140675474833610942433605496126042079885231875814823695526673121423141854241117949368768630508955730548682385615961914463331122231458308187829356262572170256848619705291543348149528378553987474196969875584361345398059561195432938910905238943190945186355685070602418024762889981834569549728799588801448564855147377424376500799094963628031052095655124029314245199271970890385874717643046723373910210995144633164264074342712522459180160401688541433131729181807054823365784957181450481527437341859917850605169714865804403517765106380427254182881876321971769997948886057107727210458623456775519762980140047175388050665928768521817030095434004386059009424791898017182159811695663175538773618782090674560381585217983816248386011885774151200524454125598188370286032004409682551088076207566702987871365536428974821457022461590516922473586653988633918330406123628945637304109872900714691547952763865398786640803011985397724979412384386192275768998439281358112895975606055232145158323198718712051659604564362124420355602941941009071067382164607209525862008962286189521356842574401389479977385435094905039099102949437514452183540248719846485328173345125484385029732260715310030479566023093418371491254991351227955437290971621332312825411249491748915285781606399427688836262331452233555783970117609258085450064331619794897305811113051584890673556393010565337446585903802949823594030929881031004422076915773504783727551097154115532157897596741059215154719872746158796635680656424398409343818178641530741047618989012557181613690110457925185727386232683324023817302995755975754574330586505638864371364361853401484827750222634455957702558319291757206211283102271336741780718367124091461973237585673913950227745746319388723857169743905530263712155471605718424232555946846446109484229717064071307863421265562401456639899347306679523715017486589226952912785937512096453365845590618318352859536745711869472964414704505107159666747654806709047916016547268214282219087244799105870961627934704028900571065124426098896491639127726187545141174204753793149919271735092526503973991802958077464612456966802933413303863389371186129986156869650825469914703443346431578008930003426417463602489226616059984670676115802692752120729889641485345490202843767073616896012444564567207930562842943466132184137148321661138430733738069346118942270606923597208839633844464222475247129933730211721094836309376500726227919569914401929073986260135186609446816585148087036931949002791803080680394473170192486316625207175645354945838548132870634176209371465934678133922678550235280095818035015838521752903683081501049357979304491949832099377820223135882192067354823853481792442689419556775675208288969680877440625097041899382637700413924838154808445947999105130131148477334241408569159437840216756365559328942929763138984756577712604243346231814930205143183292493182982263159652269000021253525933753921106653071824986056018544124987086916992125580360689299720432258479899690544506874309751566711126060493197749450143543891596682738567270450006367737569357870869112509649283497732089992498986968634857047740948343212366424268928703123139972937055570529858602656559097320168140499209817559882081413395289012554653873082984844765450360753967081942843507038526287136280057332443818398491832624572874536515611958229625222294926894572028031350763176341657315398863945826147460238202391757292181781713548070703746294873054558234436731642931332184431941366738523666206249846126758983696681853773950257436545592754102620607544958050645081583320424194309860652102007857448313792663827034547746025419354505250877045896742423038074790321437391348181313552750981503936657563251114450998919620747368392896564811275937623427865038174622207206203587062843386763052029009408465670670716632164504099331908729309348261144060253415444396936142054824572991107963925389967975025824145241943676073233242773677448745751192265611272512865018795789047893688211973114065115597477677252760831842474070794159007165696520589740590099538750224790765246616271547051344126677933253624183353426343309235590329719844014712991081938770863789780526791752406820053590728876863750615378297317596316985120973281313753658876696062445290078067455287964833919712773655420051334748297217919331120934928608603284454612582018917470262629399106175102843098191564088761438699904782683872246136707650039609721956442236742479664359374490548208906075115994536694139126502689091241892944268559745487136409159120436247468066536174718552484337336898606598415585181647432358229173333669299367166977646936904081759315719647712865645056413425199378609386843741583857895561274946385794718146746483033966832997867162814174564861557832902943338908259023427525010247199785600835113039114538356890710486155990616055182311786040726393697284235875909383686083778412362284407102264579761964239083860330757040487644199134202006225957843349665699688898849517125364172896380777332915007149432465393421443079349762569553413983914345110223046789354939784937753041619409877670629276115219759282053462563254582011334979970104885213998935156088017313670480127956851002108321737862631991602410260621050312248657933226536828096314590494467166975390963540968667814290425390525950158638846319982715159917274611201219304703640753150510796309540335396293570849661504595091004659796833316304903619494330302524256380989619037602172110138802914084188638175564800956065436755025464137974994658451129332311709869446367561749865205458456029044231452901672159636805788661551119730839087875913798522534247481218835178681492018986383409319300386576210891526369189735812875350551929428789121284462411239709526805028228785450987165731265031332573773440080306968445755970976637008432217098617268981462773299300232175977070038101357885902103953491521524907382947832894584105405320191030379940120765928034697830953264697932947124946784797818790819865520986676483732186854306004863742878794073132473634747908941933145884979187388060595213461881139402095280166273206032574021620708685172306740188258207080056783994172527084439762868083550945848023817969293926982631773552255078350139437538841246929505466588056838802462099914422719966637139442121666805118912386854644604510921551469380344665942413042813441740262129903381341185237084737989995879493863616239921027001664358185704383297477518875420952742638722928377409902147488487412087515625836605830910286454816987164634516756860535058360771015290006761346545032116115623903488326228465716845834323103900605189113140821318623707706060682630050514560719627040793207156181605935272584388139103605799521108845516472882487757206172336721984899273463743962330508900498426714684977883508046117199383982250165455169318996843403630862982519938857920220405787288141205853345376359488879519869370712565870891516082439567961293255921623021808847696071339564214142232728549202032306613471743487638942372526846056257679991456559945741265030900876737788876748524008130591199058899800328785545782864041831302398781214946271507830470673603224178835020813343603040019467645148686796965993308269508255940590228256960281688274815971431597141016060022037549047798520157564806427149791005445012930723065314005699659255916155567475070415795652850368711353815000706926190626227485817680174629473250216149601008875015002949597845454317000087191582380187981341458611039632675944155383526215500494459322315194519383967443980627034785075556054405687152155612652974076051227867699123761256158026507036899759646036379526018838924201177403828972058807200352839668509180541122026165113957947446668940232634135098654714269506421816991529091763608007395306268998379299004063685374696215511180831780843258142541472900015778001408751718147671229490830309592805727409044283583559355344175807979410970438809339062178702058872499822747589569024612340957467325714248571461155657017666144477272775335562494400383781576941181322635907871749365603321390994250666211602175111533932570516003677279802413763217091508729494123032934013219538197859776396274310858232212301564199201290227993080280080836711670529583895390399659572376301052604795678708421318356775057969336069081118444725877611183755149989368646050000521061938493330669997722795260313055276341125476476810115269938281627281256081647567025260247885123525694789333391731857777564171823190504856480052824473402137510294420412803466319690337618826553348105561163785431984853154990159828599238514482097568723808711856589559720022528440479948897810150410667899503218367336701048007470582633770160824207586627876815070972290023066195207522596595102993015411632714349276586417308591297617485917836176617409880670584322057128156834396407613156044157053888523562696658287012703160039723809966928383080518272919442316280267047306665685372952097558002836740726656243197361484684889339768362949259343754613498280850738293193865841668992246568898378916972564502483239403494496254800855211008805230481938472208184760167979706142148339985465362320119484876189563373332675120356556964615069258786029229095496048895939881082389115331458478871640204120251842018183423812450714363949013485320930698941815352098562318928103459058266359319799840657361555859389030742476746814935364492759059559518999104456792016524660315425733306931217702825176967081150493090290370469150216228521711452162041215516433394670784113934343754070940531654937346622480226563776904767211185610930976161582614756520037507904602960492548828672770922596178205194888184159148565100456201109462000677875922521062240053476046836307285738925664744530373349052629277191201614665083775564409079981325422088961604480658770346608484664736968215115918200398943924043613552680056747191421029465349544588662472791549416979321699672101356441834442977913990461667700324999749621962315593966796132804744555328207921738875248698447259291218964521779542897663451306095471520841786319747323709967624078063871904554217689380329854286183418064647690144429898754120938648458516665240419713540179179291312339284849767597546923902193826024960058857827501905041551099290299997534666760697410442285970468025021335758706925227260272608993899236594199047754380116274561559659721319040285512939607482822650485781152771819976527895015345237938064439656099946825864962936692364908645147602896679042334030592930385268919462530839474659527871313859631367162361468338329906720948679956754163980324033212395310618309643298421686893796380330990973690349678936725705946884558214965810067413332274943918589040775742967866877690588955371587442211913233781053520335488822787288852016911405145409336129160981301719633624546966285509085324333293946694993178851293437439559753863802892579030341121447202406828096556823751877713555131920023405003718603411486723508721347082699620067257626692558954065497615510555812359184559253004368136509432102479889132452781740197651315645529195430330816659091213905059483315528249224336963762492945678039150292257417099216512252669447716948693604507078756592427693908716575054987720203427826495401873967420774285146851768124216925921988538591204571166181271823951639938455632243700151457851980440603786005609247506550153908125907174203213256630413548327336925586768777429995425763001218391307170004653569182944293867450351424510713103802889129195001523532518354583974863253782407885575810084309408808540513100046336597198275322636464536254166619771992223787263996082621505729755487478606241473212015907205147595342808226125507031851919961526612859778914359072293643521173130660162670216313384302083430234944786182112830916833954571696679308022256850319153625875966622988437774917022576510304651017155049918061077959222114132092685958802525575281839559463098073165924600964255743472417506266160423089732250552831208761748621643656052674701414037839634949087351779828022127021044542514291049322136276106080384429218159667031288012704411256723895593274569986078821946349871337795898431555222510065599178700826419799711131994107629195255750851806376651394973085187723789936116455078428780254851372356866462619754524331548407154737278572006087165785102210716489950208596257045429541760546047834141795047146613536790395576703870249915668493210850376389440501333952446504965937935701024882827969579387933347790260133755621705593397750140377502437589534682166315869986142834398438596943314563597694022750202028154182829264911262759873024791164238551747669433745327620717691436052994172626871271336790792133956603031037298473606887197968347547466616451722138918776162083134113713836865954682708599454535632098886747127140925414565602954925991176726578443496667938497724371594376144347598026573160243943875902478466683585647900407970771251406401128370463846101944224637911930680160020988609328869149009534045755721362130024582792562925382488122059589979713729401582541353259134498871479229173569536032091438760220441935059367333132745762315141239658864346406663120783408938105189297673780011710634610803158897389910820615309564283488671056804362398553339544699073050469065937952021569373832649337048437133538764297173890520175778355267019130427508355984431602327405216367272584529962957036770423106801003659825958043003031509102552003364064332077039392963161516406448177136212062695483924442712817516292137147149331377466583599341274836350867983927749167007169541516137996359887398467498779334579628098630424989701918224833704922000093920392912048644349103106254994146338460501256172704467244425761086261747595908943752376157270954345692766869867853994249997833628646738059380573131080030171655861176457275345742788004574699085052970639590149000596339185642180875939490985554535145586288939112278998001329864836799448619520569081575390461238950361650607896556909523324556102722774456270666728213730274620138225473930392145231184953289406355397960392923407450945076312524981577198831627485257220681040420658569011779615428127070648237730017346075025625587391027786103724948392601963270816526534359794940471602610246549050750686858175813601789989866415310103480881865132152657799573284279618842860040088257455480468099260250414011690739819035788486133342079808289385547428136821018636266007903803666545614990689353001469875654268781918206071633819871290161844843942416177991439837553574668631524373020119703697182523464781046282022825594295818698865608358540098013239972982852348097524017815548490761014289492287852796269442009461231183317147708160464461983926406608607258254944576388314149077653102639449325531352800779347210817219430479177169879333014299919294789201642048582256006536746826232779118611362882007032626415128703265395073022885210748430851335478673051752816207812924136918372447261526916901471993853048747819388873845696637743055424220746447853477146152964503951062044780695767017300653129842971361001826161584526890872620989019935324696016666771280802076118042214384438195937862477070960723305835602429404762221781544989699752174516408614022347863875236105294237906530411519156236279043440062372620157753650084643385503717407411934742287791649150258731183845829249601752663960214177327537967354819560708922959848767785369237375749827238560413687900542715401866283271507855199606583831881939647042257197456404378049116748656166659793877091034329357171256408761968265148988230247019853795491288187188201054747089844853714080864430637822471009484628908082506097907231352441845395007047113425427681108814675456739277098034003038199767710189560097734097305606838433884499056177318740857711930063918656273460233780497931881385062170658470201623504690890403861992672647144630627962484017208520613130989979024689803727874847495883674898009808373376367618710651237775043843004208377975237286340771105043295687897834512111677095393054833364316717581840800833688213987458327066570553419684255032405326472909128011966710843604965741453331462789136873925746672740183442303031092339647149367400079220891730586021408183992758632324325668997446116359077752617723418897325401705766767117654814960366416955558298078772536130932611643393579922830789512126258547330348397191321654350502506427741753241210899071132649007025482921876687258634858692960059855248521406538080210893477950658538846865642993170688999702603972916981824128290681595492300334780141128532721398004704973638802745565402862319512717034926238345057639526724948191016985898259661311622569377809180301798245329774312102129076025563892276844495731609811732849024087070735131608870557329432706591619435812970393578096812860417467249453922274200868077394999024686786878737144624789261597465476087030822079647999783699241318737183524352968042845223636557073914853629133737972356016900232527816563995577871730897374982138532491611449513705051271021041851525726435212907652421128789231243117875211777913536134136310902587090048832585367237692170394136936640906866591494879208023738137766349704947699299580290404630504671174590597673240481273708313945737458226417066517563956036817380467256775576325001507066782496455526121512104648464851430088226678417102815602915840951906040236406103936303135227229980290711258290801663218802191327216922507787337146616249682215953557512540250656309197848728355471711116991726864259065583703125961107178835724015806701850708550857563591319819386984669914263377008643192831802676434347355698962850558991618061419752126981582875467456321164095678266879677957801118965021592457686287029925748650019432991848009507038474763503891069317469609823466827337311697081466840442022981455513195623496835171912417376948449919222479834742298709978606497275037005288521794267320270272124633163332093321530160376743103633394799912169010756121478700465758419233846547378495343869200500591844134032200507208194067091035052885157173455335679737345684053778161036716671335065657645222756271099872388735679050840769660913494164002827255863372349133263572742420836898122376786984189266255751929874922625601987761441959572276097758127269118675310012497570398871238785878722750309449050832043829103789494814029815050681237155725975496001527172122092652623421119951817544568212511720007575603085359187643973967132720262223143890016146399165944757885829308184567033059616242903372722279508720419621468466699185480546497731219756735669046362717371292799106152336092997684984771132942256592710567683818020255702893724286942109408643802573335882050308089590857974542015176122964628801986467037758049129457890597722834976774788218004664220703793018945940001867004427740152759887023475656360332577163253728514336597308242671370427014673069890443830415051385275072763620723945799089386804719206881216693142407835229504755782730671353899863478693886837521512841156801662152189790601385061131150848366797535655054235342490376332807344175946763760360285503238557444505861728184698474799306292163137450919345368802730836656337853295664911836944668328231566275808596987434908932115158470529168058885954016130144012477703112784162696278521195219595486450085123540363854678006759157335925778679076351814239316410746425710303341851259047895328555142673370346891439292260270542384067837795260100802582367423688004345615160100076447597470870502332991992115124857741401301201170096801085191155941862680758330909872767076061417875997555296994190707479118553528706506750663575430956311238435446514863181341193828280384524138724443268378007587176028687051887573805962164241156585773974258329609160266737113354611822212656907307661464884893689471804604178749484495618389455628209536749447929861554984098589560117833107381357850499484819375818299859787758772908001214814595917762698366874057157481308213294667648856448930385513991514116053032580179582583238456316602604607490155779188263461473656134671258413882995074781563743634083999095102738436853632962864799151733675072145473304967962144250322858750342307862038539145597266193869179316889247760356244407603086770505681849247220764570198222072820543310415685629177643375895218123193790035538246239745735645260766709967331979791378787908797628046060760675120773130547298401273766933197600479725065901289950999359523691084684616883431109833276179281740936357227906304996648307686720888460675801982995577041712444657495989033844161473522517256645092257956492632177421236324591199870192472166995024772787043108151837428892185228301936065356186230353341714101595777073966741565385375266567313033889612829601087814144899004256488802033198790602538816282403344617898986803265471186156219478286349709298732088266732375625089202279084001979112443890671990419343453464060789107919843886525747185047935286718833511851617444703124463932460010710459623045572481979858320535751934536605122188209806317337201943456346317152761678761441922443309228683209935880618814129042177546613783000452774436383567728189660157505519996556781362036569205494628960082746855976819725347109151240726483818881939771521465515438014018970946148375147575248844909971930842278512155899640547842570686202093638618617209964948319959408345767728339286804326998841366579664251852747176292230411065212703851150416633648580860092546414522080300262454692030296371534059982783971407559609868581651556068010237915027649521719116376395097158570160877955840698642330175658116652164734669078732956571456359689339383494767450139578091234931181769170226237276968093007815851927700451101007617503773882331612869001754759330737546751964908087735551892993398471100316496191804792447689933154601413681151117346333479078696288304399360812863553298678141234337999905539268653449213096006997785635989991767684767133611966472472394459290842675729778061092290838299935335209900808451754291236285623796925162679651101528728204243013337314845345526661483337933121485110139663356813654118186350306611736931971609157899830991703918255131340915790128028414769572500339965708277916097465992651394434789578960619320308128764193472860119117281458125396575152919050952283523926955797489770717771490138913279439259028984815362872383334705180558510069581794698102133829263366934934219927526878889079774014696933501265616480035543153881969238081120159999804930274897454621707246669591722247356861308926254442366739449481929338630354337186489048562680694294450493574009851906912153182047290390373630871163872514698727850640029616123028729798899500241039831148475709706923418854354043485385385681613945779982246061761019037333524749392452267637993678020876920140340937833072726113332267285194889026405951808021243363629044010023605097768977213305244906661426552687318356807572342263398617215938574865277209323630314507294101493102064224016549671776520220944934851658172493167065888562687858988843288336339493381708136421400480738287724410540520984245692894790321761654259658273553334396419558554509666903688870574710593039805669123162735183981238060698892480549467713357103390370440776507774750125926207224103733507789189175407652563823751024753583370178395792056084167560746680038072492298449421495077802575303082173189476243208497328876043833306808824168462428987679401043098729289477305452835397608952766015067440764043632164115993455399182590995347513600283322499919319112629361875875256453479556306633908098563250262453014265579394798147072369058020327098423560805629652987387640154614184406952845452152758132243220002097291002912568080686736010705294712541997452505992856104672850338804549327336966267115690202401974994630102198129288100018946939449153448463471893871765274796597060128241741975099297049655419194397625513309575836401966407532989517376665331128356847571552932629091788188104824806951481289491679736858825743216750067430703580255858456975791011706011477143888011643521891446178375343753869576131171792130580562904692309433451793849684024948927723779308893491790533631439275513408851041007213436567814756768608322267420777346564291462835557804599854228297321716472342705998921329498641505684012562338970967784090387172535803145205244580893767313577770796229946065904249168475101338893207985057589456003853574781112588872447270368905367313537099733687353216076393036840665287242463739713391666070704362159686475043272376494548611208409349392269658652417355267039120344788024021520590735428074671424323895344828794082013165215068888688045318373295178124790666438198000028740032256647853023542433618789354547753267566655196751223583899076825882030413162613019291339957960999557820557012438835333004788071056692261648860371175170532681262756832821409594483663482065412875108345892549381015976754235205256005670425462536187100767924953560891486750476524844192491369297311810611620534025086190671493928741265722862150288495309910730095412236358852089150661666065306918643788476466030007901020096642930049345724449542904778214099598418622153604934377696740844870800229421650430204383586251302263389892899649851989405341111397172866926008196267923498795644737318077648549017344124608997462246062515305935857697835411077557395027535385112930774441236071138561697035715560117697344905900720060608188956352670529001471386701381654953731385089537141171820334964237639868055439033974693667020292603381178305463644333757597248682210684847273881356944030077440865790365168389136991469598017263682602196705004713701168859097894616558426147800049368115455114782655660880081340232584433513013028211073777296406719024537762958339658869900626191609393330445160287232006676525872450771672536648605398537924348779652744974816311665404212236852151810814461850964140715940068915635678877204409670015409150261111287393731482403809539631129990620000202014245590599587876695479094499138264791798043995606331263206136563426957074168304610850268150655790085091089648032738255206138098866187833603769081566538759957104929000496489672405152203771663022793283117409232808572060060452004573551262542722486931763565121287166061799296856017847603737972309563073241567517097619629728954784720662104778230834468359304050644844290098224679136350016213054602480198241190106133184965324604202981490505320176611523064684765341512393757033330335383612591188435080977734996525365721460320613235866759098510722524715944987890980435377325102865944178642657932662189965981735691484485069472164285902719450213178523180465892620078163469028492453300985351642298038277197675516505946614652053919250834028712530230542300148093938923139725454622617382210011282903003939238800865550443498893529006616600271397520968788779245517748983559186251725368779317234100273157298026275152166625105078391846413041804541951231598920955834312454629828231791425254713271610354920920958616591671722247154902511668928974949822051578955597911076617986213080727663629127030014060288401938110219181274669295273633795332459658877365739558699504161376425819925006359737378124031305668058606044464764337491410708840510770996215610349704183198117922948307592233952667629414353210133001878730088782314568311550034869690365164794576414003016527390776426732634195205826700548329527599149923663273740118519705084737788091530216750048362100236767166580163795429459733624671150302726180467215281062476086629466390755610383252746129717193352813138771551853209753850200035379888619458725315648417220618033705479324746597305550099106951218338603206131872934629912398130348302031484476968511069017010039398060013438265249413552082352179602914503504018341744215804056962408656915704351083130994943292104108403328637783463479687730328125431883510530943030166723515780147490784955759176106730638400238189741445180967254137228428316669355784747097466591574220859611693868089876923524713957384796517120747034485193503496582825172071460848825194490176244005982722576334171226423260667994015525601011158041485987922884236319689655370395478391152950697123808216232090845697092525964207365068438959580036525479198917622875773634307887927225109142216342411394010963125269366363050897389093918492044180865143789756654581071693504802123354656717726050479084722214971874333016492683100312126268239669880642984688656097358120436872854184043863221208309944593902918423127776943680428941812054973966557639091961277187548470477287771533483290567700677807794897057677304642492558220137859503629608307482266059124571734455584775285894783420556193203376093937000232885755301419487312711080558322444292001602485999018854968560581965372500883364352842597291120838397191104802800229756001710925856625949157547313567763889137925536800814788640175563228120335578847478778875240446494636691922401203141997849544991571871119337082729690259206258662184548230420445102339487360113659658540185784230584884426010728576725599841750657736290260937717305042918511888219379457393218935017477069406069604530124297536239134279747441251146913840790540387356855031952613894985819887067615681852767480578202873435043034584009040007286196410440202450603586400902949878518645036986520238554309024407205018865260281533576734676004347584318279376779826918626112840814527442060575991794529399059886994666731667898944957512813916925925011862010959491680454861883981614537275007379094626468129526083515797109942387451285361575053118805011423859834621527715584649306677060118307029902031638741052831494583340892628244163647510078501660645210283595166181365185844967431191358970220302349519268364674639039470991938413160463757627378183640602473996217581292497294920541555788648133280594657602764175560775064481697683941071546606813750485072513727310330651647497328292099607078938563706858801974668262595312969172788783680168845127814892220264039750530221329089824935306129804127412115131462660445976647907096096349485919005850452369000900639369906727893598076748103268652078319498733709887580095503317044168668191877061573898652481657791222621377813476904809809591765389209251619011498096395214174041921090233470990735662040507356933202428518621269680452940566665814523746769100868782256218924096519337626505502066280029491234491450477608861609435299419927079995785294967167576570307723630895034511435596917153737269292457823789653142317125343429244481869006856042308157573285576635309952278640316955158885215576735725809213652842546377205240753139017262310261196837027838629905046145824995366626283142918408720280383918128034996043426718202506439797720788676003523670614909560138133558311639523400662654440155514457215179891755461122141075325500520854411816654895605003877572790452161800586359385113903932545721147858048222775988478083791374861138757886501274647731295645198259065858865890613425951025590709479631826685232236662866129955952065239771077367345675870857570326741121232602342099104699684277842726983078670856495438245044415058941663423334386699202451510943201221950437358788336625764112349315643904625863733778108458277906544470285836121403110819070392888589501541607966227156926153117282035358128151938693749793662459168275585196946819077516131205839109168399369367242958713242868910580438666181941189634695125990346460447616866981157276715268698584666936311015916180025969886531461186151982165102789343075150279097751187707253861432930755037034641663275551454694980402426945673391414814801263175941934205104830721705246247153460793967633351716800580634078142982643493118713179800461108212379581162093615811816460852056467541931462658035185397211327147297838140395379803093607488977800985934528713671786076266533808204429423688799342755452663849608799668107274880592112695730373175031343817227154996473907363473514405000346105278856408174047317181749401553629543608678284643553469293969981628339282713665357581395109211108993739703399712704061702202311565530032519814052582640235098715334603018883103850925860948673384327364966866665021589416540489766992534756466836942262298042728335070915508825449654395415466431490626466308562135363555694220970182425854497370470368316772615874960565667256943949966570841668782222054060343642827125031603736921654246277598467731581651382721345075182137370210750691356995955664563450372244971612590349148988596225874018622319009581559958734411108021989622241128740545695903515211393152088093484536463523143665192682657883700824104349206893082779799255958868301722742839798505414991266017038609350157315265893684816345215860892974502716431634445447749296435962822309021241826295996100246567074968967532944331872721282128073474728705102414775490563180045960245677485164582829461817368954494198581362684384060067176358046126161694734392090829941134799392119826953379580741258608041258857060903168874752776066405304080967824631622855513913304868828044137377963391066353702543454758943212783314280771407336779199292810401151346105225508288004125811581188153134510811743285621878407028532275709578642921800402415691795488900004049003372401198928846070721619556913174619046285528364676400101662468208737241825792809968132839015102340176878931298078733210628980869050290948312330321901400148492577269595364465774313135132017789424048857407327705298737186357252463478231214999848359504037825918500504603737984033964275981842532580668366886589344727334465981728872474446668823738716861034128978966066081046619337528120484077758997624270161082149032105908963851680613031526145922299001434335355905463667817186472145592201732895043774545964375770033967052292536317426260178191358456632246761002747102775544774182097871545638802489153610508135393603434950923497511115898960173438658989400337663944515980025209905495295267114123419046997405858217863501470885582020892133209039534669946195936313785641063945922113330463081469181825626881875786351223432338598810308243936676910036562688959272131794053954251635681365759403455967824682396593116306053617951019641470526697675683706824957998447426417905047722231760344420548580725179107903982573681041076714672732843548553781731970529824732207022583689662382704414541527791436933564300475287311145846096513791164522904478681727473826130995285470848595139276916711017115668950304933103324510593426231927242913006432912379508939822464172306528712490924152308146455821453876237457346961002474534802352806643045262808772367301164796485155659163876315553384473140460447603015423141681275413299222587826210800561794418819589451006398862191624640685135085675726521080350111786509436056486933884739621542394824164627023992966715929013972288320670125995072078321198788757910291477234946184990090241109995827706464459753379417539374265424631249140016765381766718572280788807036767399184607753673364307307745744569380810926741633466050972842533825881740345848991159364395498364681997830065176592285075653336232227317644796947959373018015277356400812099163683868705869708731573558768310932073150622029987887678666778614884089690383238558162199608650877611276354979625416758768437012435076631381467571745152287861817993105310104029458028584387072082561704976602281511548443301705008507290211772574165895117300405474960995203188767745193497090389943211936343732831173933696695777632960541525042365113321229029136050168448301885143105595003731509097542721553665602380354990460867120672516941301742465169899204399634258145161674407619633883416111633299686564850281152457558049581194524805733191056364250868011333314820563969788187053524600535933078220835492758988223263971754108287720630326702527994846359049295625230872831746001841797885482737089912514731937321629167122272745662731938438444985522408419985172947342470621309666363719317038952030312354487664072560636266244517266801885495797079512397277274858831952913463251911106875796918721975181162312482090108627360448969737417048156240119469053913266668404322790730173053644629252510009830205934081604953948145816438844437925551518081149992314975088397983720581693157749899238425728115460216689339681334070579211750286459786021139803755621109427032125839951850802790774620111033001375590690695340960806614786916447336749643155889996671081734123709841546556600419329966641357954425773434932651726607760947806485805270620561997722345682007258997962747235237591750280222763625753393449550335635008549707689365566025060146973678152977844177036780263088643888139724503880166864458787512425274052026514471913905530934660432781429336535765485710309812149176482092528972982904864971629437792750159163194851109203577392582088372463434316390040782642980816723821236265943101924470344860584754535683314893597901469422545301258386282579128933830251435235718939371890371715656249269432590011226111736803970071598936959260536895443033640648328428986987250090230734622530364579108199329908780628272577545997006299013526093709698592744217244570867185257592528920326250366573702537733561750684509674669826086261210663742104239769266732292279750657096270869402276758968648574530693892256404432165015371965329255458734030603162483353598893414058507975862589550203396574764204108695772138155598465291242656553641710076458057618228436797337175879245067424540671151445477385049911706221123592026951618190346789522089192421370167687972054121474209459734839036234213635259184975304634069626598561742683588092495462281779582473821560335512451125595987112539545513427919072155168719900709573372729771945533553153862580231358233093933189511149841191827013058866119523492568292103972805816858397847084790203081001282095017595137803628739750574856577336384082943882974258554900670724164169668028101266441650749365550411183911503471674098616600160321281615201539266622874358173321695615102651552794777089442243211523340523078551055854730723230538371155845619438024596156560729283764525762286044872033026438990372795133947598837810167001088925612251061824450388106326088449132631735034871586725693687264148813029665969369436688081543830329102744428083163613855455963139171723134105635814088140975464771099398243999851347894803814605228906096908227411080178559644734905549590262634263163821965835234948165478073855109027281731530224535601416455134673559703773499752468284390222311652294169681896206440235531099790394501367206977395841767213876062605835266994703057874513665520317358023751376659401582513929776115753651097870240475076617667426624365939538493985608619741740774610468626295335689610406856937039210119998017295063816274981202164199316779141450197248883124504238271715518160743481565741240532005725149288624257214636952589449963105807518478765267811780278835834686429415876656141172180746665610507188862683286373563183028820360837794343950026011316355155918724433590549831390114625266971284677003642578705872991903345948271804846641625294253521755220995943494575269274859922979780558385785979547061362549392692325458466820540459670255854389040303732607171135246076361151686633925724989625865025513380422535410689544507136711936917440968712595776213672903984204336663767364200902266280401057356946435835655933285846569440730145247181406636785526419942165990887867806703901452125645191663378593889577924139974759680581078641507817600603734019853022006890180692608249289990382688548629483668628058711973771081260883449223190507203058977921272962899237351275433223592062579073405997871331445091674098445250621646396287516673556790887469822527053224372672239468807776374913801662132596790645859029399062806009028765826438939468275574923074209694349550069122249487733220539589532513646178438033413314966955732274560596832457198314214840774049204127627077963946105969476113620405870018253116203414928751215987316135739532997091395034968397157334124317152885708882865648430513577320547169053303610610538873463881852409287489795778962947869095829634831025458882764392572287061347111061378088980612234387817348646844413895878151755933621538942679488878936066618804830622474284284511742430811096522426225662780046454860202417977202833952962179526304275651130789105545128144504698333398872824144348945207455783849654038861558451031813562662203749157023069360392726270018751465704727943039751887723609961596950815985232762086462278771280642937027353867430652869158371001313259823779647053152779562898589994672233831541822000461196690917935347563196435527017009509119242644842976407425794945177269596969057096500279437066052966068783675752662494967343905319107684054778684805502338090080091414246562126493604232840746907205050570081417122182654487395754231085563001695552693271349726616405596179701818548957287871464460181713477702830196872130451758262997928729769263133598067831264138516150347382904219321917468864570308190438569653170129305965149448116728598737897959362872365773814016088028270793674034992456337981681293273659560385377297167024523078019476221833314523089070781194834982634693680796884926776055759122862909618554446857808699057634244241398747712332222554609433007337158688052821392334724604762317330889389550521965884219270543434113208145669932433618289068793336059004600959916645517033804449997932821592801696687275899973847652432183066346562476660811809803029172818261748624627583552453705077699555963991993064477962535429037266206830938710023881654250186911225608384932894683007137968307754958472720693782615205905963045314900991690435951090921427700905961691847045956892629477239111248228757427635465126426763310752943122021523213578689729056723890263205725204435938049443732492239930719965888259124401413225015477288767557928031490597225845367379911776400701178286387593889624016150765607278918510051768173054068208572478871286959411199457455566047239461861562074361764779037052469793539831565226642615629540386297491264266963094704158746042011000566614550025981465408171416889881888850562510346641665116886488407102859870022101297731387603273649379900868858465551515910577863691751982210665071070495159075474556994583115918830858066713828382232480270591252085976910996375538867321785324673763702497801706343876489126893985051690379010865574184769821920817030690762069779766680054950228760367417798312191293777017869627077012226179660525257865992049710681296260584842002830845763654043082542633798358276547881630903529193927872899210927317796650703405824834477259448879792671348373184619651748019103877471149608801914834627397417751165077530446616502099002758122051341932843050659698617249056584378552426514925092460662636999737568509765055629894981085859386877845143769057840535334452038661947714688429188639138657242104108004331529193764388198766043213978854847592948528129542995441281260492086885110337484433524231737742687921453245644985133887603503749749020818670786838905933603855370123154793213204694971020792377870624166166409302287108762218344984110942864950546270457827918678812245452943310111135758270254023361327832070619684698033670617524893530534217021486161434211651579654003381178104535870150063751473815637201740656274770179024692137254584881522516330570664942507431101209019300480895620090963646462544091864845755802736584643548055827557113988599161873393646895153928078034478492134337929034151228993540854913577331452020743938632719714659534541264308919195729091050496239210656982419302358317894302979515934954448798169989935568814830820859912579543314165243886270549208825492286498256264187132416027452033986410590112863692614044674010213145111609449206774660186112173505069746856212142744663169349889865769584448256931519841168811571497644084974525769880676501989902260049133013008628806591225845640294863602489200126621657149173637320000441698974543391322419892855504151121100093643110016185617046040815068345979535068739201019324688167915502803526641724860039779821053653249402375748244617457926140911883527249942765030368000159053385974227110967156310290103984959237069646250123603388048264643580926012814848823846532718926597356027726164181469149720000961848304451015960896799395663077029185446780099815643078348285095612194649150481416468101395283863939978936858441710075004096499584752726944214628257737302986061788465261156020468036885133402256754148192580402609825746165738267018659045820493433160817243326350919197808096225046907389459649703600095863256299509647979372942333381585065437940677964824694621574685192092905195861426286678965483970545909874737914670148110867426930721814177695504287512476206739416584995479250401248733654662629003989675007959528624451516019307269678313355405771902730965330413913983551869482000750998155420204083877628837295904472338466076292664669918424466720167729286633462617211959496718981062473888519555691573791773675075754300104056422567126145496012328897205494239640668553688975672126709470052552437183808808432401813540404977727791633200631003856057941008705023555751805568955795974659738127340767650579933191871196761584694374855110551273035900299814819704502805925979265443886119719639290515752173097030511570026756471555674323556325505589634169077079162117440140610622120439324358194718931808118881630373408589709415662516087173483759349658806386618072474340313352243993239272320579280587065376247324417177834537239262470413852112120273347566164053048928004064767606146897474155114526632128688373323296192504203960091651838342730892573637066172895832594641751317472544573006891077588005767656910434569222725822652678746815801597005728456159888814689510157451488759281474321571568587695613985255069322956971526691136514366712934664420616031384666282962777178213977400971231319231447620676879321818363906773199785499231943260665160883040849673141380207646766893000548246521518047662210136090578704670736246932058180386346505611506609973283831902602527369360263869960754885614556287731009233488155908041777924800537508167440988682990220086154001715630615521984990209755624978709281810819733381988225321912112155651042254605009647986749754789683593958087401453486450390638436396758429608276137309612310129718563098287657354589366762929684685702464022992582296578392048655480378255251010824078869972968850058035239746695911877800813095207937019338787236809229394877003669401752156857126355002957572044649944113387800117521100372426935315699291264197478940476253237935433620796756315493102236668797875933660688251468634436738380407597408277005766432378717137726515593523761364179542384411553621452854213037760046216451680481318216363446255377404233606444575476737131539131811287548773901842554383414790513226127679861137348053032717907050119188118551693979453465343921112974270337708992786624688045245363361908942972046444709299806890842570652130670245214369411283790504696230283363983027319605095620112700263321608145956006772983945721820488556837279131327955244349476509695623073175724051351533951377649112648279045808372261786957811531089363104581965339102928812964868666552795250416283301641154025732062736708835735006874709379286494237633996666485186802229056109886421399731585734116353026102754386958341676263457545065353955698233077091025950481265901530428374213849883185321285279207400457820640061375654703063608813395492477706985143972464798273658547526010193643743540744002800406630525180661528612685160930648932995979235645932004166922000373131966577325750650818312002448302589921567000469676789484622475988250372367460466615230944124068712725771651641743324410246965866580192963429062412289682513370846058251044198281246125728787902659097959210610149317524364048779916772812974571560513002610306427433427837326506006244168552683408996270629339047929498233649060223467841124172076435414904100779725751992875609429343839659714867542069229630277450629086988164864858131362903618209341045745361942917758750280410862389638795376785985955188545117654356044619840174793950140024672524859994167320330898470277392713515353573551285286686829042368502962223811435244195405973276965439895784626101263365035218679333910109005993684786275422682736348959903503165298974263552491963844938150071863081085379896717422201635505242201681445450484787022805541260744558042955202908787134247814731219791225843008357257543700730545984223667149248475291479229594935665966087093757364183318952723138068408113259929318402385726732366222505772542921422741271606002161394074108488646534528353109334184825715607484605262792720726711126578139683446160423040386361617361735025556834017255509048304016316348107366891448933647314435648403101631885278868912957803074914336808199509571301557556539366373250837854278067250599680253139406441220754192359129903978124782152423862490822337210571044072555990373120074060965896406088139984604652351509331485512075302264025424579246674894188220273419379750640619316880391280844199277330655597982259942344726501365279805131791278349994242141133361705358887908133252322287099897248557498725962366660673839939034414783114494932693043241710143600810802829041795028729989051096489921718453378013936088012141239949514657016070312450473459915465275521976074863980676057569141033157357872741440335296815405917629136490923868094335478792587406297271308698820506729124229257762978146716366185538673602020854123903641043232354940396828160729545933100144929136514962587810364581026700795063264242874801734737980589487163721780716175763504996079492250666352853848773270023036632306118376203416613517408036198761676205682794795906641044877736477041845960694655611877348656347538807115858775219409856749294895825145896248092445708668593681205187003726512252125748451343876465683213438531299918804542551516337455642715302414920094679907366820900455184300794052372330844212936378041873533043879948992467716872274777413449321286291977167781641474430562774646005406523239522049997205231607785806155803254048590102940143291693587989812743856336101595364754790704386156476138523461832759859121392457003057426510030985344833762871700556335334734802756399245209431284046655209619352848884967918383233401925971513013083111742859924649758594789909127264297282455399142769679947635881142429792542781304556737076749691579801277984159450417974089315628449719631779646416104043464795972655853453647738690171045990330242169825074860861278736642865876520221042896452216518502493682003383957112717882740599193109570924745400701563217266050022185328654586865144789700320003408019462052618679195066204412487977485442117748627679296267764986954729394535170887176436759993407915820741343556282900785028594145493032096652026653837718115230834292881508416669087041651961642255831441341832262744754141136648700636309593391099181391454988426012513344458044520533273370322332787412293783935064166033308644937376206319588974376333589879627094848409505255044135088845935319561015109956726545685846614541364852960991408268738511915359501178981292488779763139537081612600205496862247433085013039093963038476445434105952007622117060986165579611829485901145976673581803762322547101447195727312975645703999480712681321234621130167389681175595808718297905876969654977825593329802451001192910190659087550260192372326490677694746051086633189977521531344191483252411332423433067584892049514893712871873131069513388340981270451964292493336453156937979114832394532339638518189337907724291387292625190520300130114875287198654752703228758404963356730338629090502438073420346633558166236928133912775620620284717071858385241826659650337107845733463066498221392153341788764502569034405171966229717104580341628563993950116354775485263111841869100680006222706215040269168649432083545314470202249978224228787612634168688035209366380519415520064442519061709317324300475900804234102892676852962222005954731741596748724126286414625255196915824306823432449310299576682722002446151850269445563859360755699920748805993591587509983643729534619331309255662931401773000313125310938687239586645847293401763573371359956811181875741098869427993589725080212395341737924918294495694717055127450567989748598090244654239960152896857494296041513674241518532486612161834014094393703016317066732656743948014813310936895743884756265957167587276052084162341850146240811102874812449505100004503885630997595728999875132015795460545484421167767208282934108528673913253520931504567350015205666112935617763301176009818572015303673846802244542886132881107839123971991383148598197040460613488871433149622264452385516198678632087138929103652532529469004014260592650124036723713912063028784041465881043042440666968020459697920243073151125520168956401989819296750601344379783879557300139800292098087104477459179755432625274358034341591593942728108203060485736677926229076985009176750945818715659047594772187906462856653820665155241982049341917786986526073511722807933893187040787287728132445833796267128400254398048513226404417108909018607903559603050577061544426900341427914767961413460647928294627712981584699914955584912980256495279808183717528396088107723428897382190053103209199942171851814331458760907146920890711575682775067448173937181299649461839169948035738451777906225339089703289674072579941692306495316348989704821332218086135183210017827464061515223336022196529948886516794143399782492922745573139933138179475862537312015899233517907799387679484205531498308859136080453743761399646307328464790201237549603895626004234147659704493316273542033714698853255330480776161807960703019281479774121418961685398702438073153746096883603674143459891225837299616200744273610940535288852327584219051210545241463562035639627937086280707494450790061917377945902091409722732856729333356270223381880170970922734417190543402518651771946482868138440292143814626315615210177372532363476437284591768887033049470538486213256913896414763973858707273841318980924856623589773649526103481312720304756038375335453021334228364395193065878867411677423969586205663281997019546998492795190973323469670196756014159533559086250912232792031424972077125694983256657524068694211374610550196698248873569117805981226489567533655954527531336504400209450940157821081553866571851101208515844050120736972308495242354704845211045017749437532936783902107667830377266312550112088840648237834374757401891533080729966934830127237424892978011739279745917358743372614413432229241238202730969508411475221495425436669536197423901021413530528354145149667806472421437673013550992679861678289842108543188717517813698208695491675539721894998793446647341083888574205479231707104718552352315874988506740960153904066410360322236920948202671475034782896955481838924921989559552350292084140251582973531119633504529544335093526289103614026396131810379376869806359141965984815294457641556319558416533927086962979761737174598691270659608679714716718518748390909902451035531951598167544463664733367130667332583473135971360354367185862902184856278702898382910162674056276617902465038929147527085141059926449745355004773921281073514309457093429226928031671450831757073084415594400435071262037183971845857505574188948209958481537740760887420055951525075581522168350358034370358947042410802239862073137885521467609116634764702057257334001525477907148956733541492277824427818574517821507182196815913213918512016702740539693424546236029474778296099646203490419754543213457905111826027894200048641821201514701970843583324354799598647479184880081226759922482060288379590331807866526880367784061467589246244494658285611535861379107752573496461891092259341164154844509160523997792403252219450694246822320996683430724139626093133103826274113253332133160310981560896057114951645200641866015301175993428477942057464317963020911830232589980414973742032474397009953234874668808747465365347855039086416192583686132249295104850037396640860563070044174115955166447147816342596685079499318505353952201282360368929212140467290919544707158357170386494300338039256748723485089815025971952193215720162901742309048316153685931438336098296029076262113264886121259448884909544118918898530977060514306495064265267423390849903245232810214418105343471918234194284096330393333414415990530526416526903525585196309276759862891842167935183362953042620003559257672084359918516065930019653497333024504233724625632208411642108761451238600929403390110999121617388275842912269835701941230552605800145847100893036162651757714483071651156665258663658200063469463895129450339781933428929375914444609999013383988279403462673081134262165146476171902496448647450257920081727822529004054369069432260411404317622800029145813460527683103003741672537489133614216223721987262083591653209976126335800916183679260890161532943979423660174370644025034255106086000509967974327402557904651420169411921732801835839246791655188347152750159927545527318270838481203098585337040647557210018856497296191075200745157204595279957165954761231343460571136849082637882573610150829405808251711153315519150488403403041450463108728807966584423123305241083587177603457311392425823883407373410803311432025023017685086854057961453503582827670614400364336982778496656521666309990287634031492622816518242018473144087146033825522354456380951459617271630375504458964907462594778717918057179807183141771714331316242780162466418037717000008329324046188420627845108750278833428632310703043995337830229674788050889550970554363205844434271693448669863523667110518965981713558423238228758445677404637351562573912620430871722420066042150901569968734151518108092989021606088850190525421723130776537190093496542888637632704958989484943286074195996912788058238841422226738353145881725158926390839933996624290102136622696994962269245760194688567736549558718749583096737962159260588267175302965370663964324456268588562162201687719435396491861662108845842944125029393028998409598881165176382543032165011117642347544622815035212043418853151809870521955221933305474779315462569642729503179088906163162588551560819562701494985261822010501229556208089710334263271378776947287775099235851517040446468873911191345168877395202276342457995393460862854772255728588383049781841122450916344624752532050646712506514928457774827434173675081285205972943722876523570614510862726562819347001718994775668296936633565437468026589232442360295860890927171284818524225905806129330568171424304411764172830297275006141858176704811803888795531729747266189618486462642932942032135580531832878490933073632898933389991593518906986041959561767086079262986211995577713122076170529248723016831645822588704029950918122787299830316682697044255536391579268780817772043877883645918950645470895106158181109902760352713176879421364585778782927419690969270950953681831810418687032046644393175653134540723210405576866399888887998055835326499627080182802020394602538381421807549426376915448847179645809264854751172608735302694112050497927491524307665076422593912051184035606825895987133282249095038314453474791967196352452841982625525116012999806532085401157871201368408586502858847197083668652617059461433126286075778514289599296606090779770585554877750690905529487550532832817563258922182207054705992065987934712864399458666513943223857795335335392485720928978897892376220724739682980713957878479586732312107065681600111488046883348974916466214132994275216454288224604547700574831739789742916151628611025733742353446353714818678213008277247177240455028881020986710428259322716033582172802728561183675097798515258161236276391754821823783534719503226158918062080003100129717640506768538000297329031417663065080207907567659393917260337342383649212249968192732052061695024491343120019782242605291166209554237044867305577113637429821754040976825513671127840789793256841267194478950195350574545975016386636105762561591526320916613641706529666621929625315200611778891638420386809796042374341205810818044838250460423666496321538761909498292770812192377833655636366873347409389872801928001482902946727046779733898006105338899732457695577724948658179285402433234023425683239853073647955327336973059771270429794383193115200757211633436211985122111567204345725520890123943415445623839439792386845014580124272961368695006314377365616514493718110990345936919345552112828036387784806701707468401440195864757447544830393161074919214512737141257178990004834973366060344033895246620485307788383229548005947835710380570407241709301086839652449225120736382643463456649617662675065970534621212384420092305323510845263448131389788457378320935108413120730536923188487080164717826762946556951284517123601734620161318606346299155196286679941069905622896960687759803413532187051994699951684905011515183270413361706860886768171731953523838413496549562224195641407137290941904658371111942586339709230603042787298014158519911503714164060604266678683129020902499058714548321932597305765627012531776660247922679133212507447515639210153088701855563809047871374511307093082850178967860997072212827881964369405635711106512532517966236665036083160676878187998761264221258975977205685566018535573172583581721567686638742154939379062932599243059938486422351446751679267010482815296699973491969214625075563959053171638470600246157961239881607626034918509286038651923165310261955397918067250786136768857937978532654448525120518561329983555513061668035346081895486481170720409195513723084230230069095727975422250418182781504207100354267299112512334175352816359888060803322833444549807963981746333693637093589352945160141472324305408654206896058819008502345150246087211138170342651466563502600024075505433230645879546138791933192643613539010589144675988760018746180549255212847165311325282507174850249643469538853612818707894306215030971029609414564603348455878988856023290015921150303002815524541245792960334788443282605336482754695910108119330572764788035845245171889883655220128104788477611027116050584828445326191353759084109016868040676733673159920329055379529437200646601234090814302762967997830755385110274253660983523622513615465420155330050031516418084935069208310324747001477858740876018334843651561372345655119542088314297711946597664793647316064282175786012200536927589806142086445349424751927762033573126534766364296369015010813664717641153312398575364089496987810081601600094464791227771917895737685627988328991301284647934626305754234165568675009325354042089315018239817897823933955035970668205025083920341740649012852172204513045400276856503201341064629194737422660313563917555284756272333015658205789852790786993585393750074268206678724778098889302384311554683007444870546560978643845693609969249101573398270223355832165423038401416045064001187647364458528989255618558993330936435451052333534695566270456765905656335194797014015202113662745869962112689619687796176917870119219682576869776336102249096410437775808342491523288216675462354540917031399181236064278140436707579330676158676755642100995100274416169997902836248849129021447603558606763991792635891908304015009545600007930653919444780369154582871893500740014114126949605732850123067830723077872564794364493150165932179326143344287201440758216366367432868489529243688330643644496274217482667401166036180368332878599628840705565923218842219260650340337505243836174774674303565966809459966144701787822532671712062870783573390790898651097141794448164544032634039948879684797135236533770797606267159973162335431963050048425413550065712685328746471371293411512451233973955352858223255048884316339350057347100977500185770261046371967832701614893805354999101412775499562666677465689217860685061988138014854328628065965858540637730214703347283898295806244706973909654959423721852175020914097645951434547453258894874143042985034878819201347879974468389590849395198465948080871760390885247889623089056483033580669171630812432342787065162130136715887363109697235629507986098023640712346651691058978120793178815000954268324661755069864348880276905038217923002414150449512729051414312860713531560657672315287458583126955341171488008782031437571057983569692344333929354132574733737450540230716486792498981798544991582634077417416333951859680094030256919020485662587465580211991105324671023666090830076194809892456817527122593568694129291909024654925398153523788706453140929951936109047588552054469511203868012456664428959757423156816039371441756463885357810827025193891255538963221048366398455648176855920244040235419708486815813695555400055649535742001841836564481091876042929797846524582523015725501043457264473139104838534286537577640913988419455582708244233924969450431135278609359057209299840983898961521418874921170105596223245935089981141989071964202951084181789013074869662213768657212013655394169469028828739704381365770907231748995849675830452362365343830836802054884197211406074900554689051937456773815269106036201949224954388003926184932228413896614181049482373928859323447956290261634288694311187221259810251054248897929351155602424070411503985123035326325059432555661514346311071473627386032878307431555263645852087455864221707573945183442219058265418416819553678643754581529414320991054756047974941554301865273612014821408947317695547736964155613085765943073065032594491816433388090686363681970535796504126247655351562638979773959856914954182688933288202766529880252045869937931592182922791184169018725292508539155271321401325469326603951568939375283464769824883463024069605405917628092127519444409845143869710506038685472331945395436084161475375898081729809739961314607837679056794323926590924261638657434146306047377849769052545434028902812901535569083328705589374494454911178424916321607691357410222594927577552797059452277169764987217614722774228762863427768721764733095066306664608616554279763211899795464558460627933526774626817972576045799841004488905723370574115500241884548097496203832952586521523839781925493922257200213812537388644160168319328519052767774993100986274442781861154928155430137051685119800586069598024124210688676886070727533139539879701972228822041180481386736914606572544708444407698569602907486556937803018337495499355266383733931321307121710976509046772592761293245667075282780097476704587913622543661962012615238890025024925195293828812646327288288836666252833815604837617436109342801913948219487426750527214006107231745354093173536418969254078731107594209632022365432347018344564422387279830088730599063255051398452610495118869836680378448834790000016728677978053577124673698877423394819692642583595472688860818528986752820721822936410667065330523596960061490305982242021905033133468503161743850198538214595243520345831314952082543310555165341919613169439023912830652630647901118539327223811287475954443938284951709419533066139531110910181509960642006727748670197310438782362586307417730983704273969308662122588319553008554268572826282644852620855922938047902055076147528352210073618576614725268033246774301059550630330001198857213008472204913221294621871334936811753776877694081587427019255459662808153493017942058818756000042936759900670766198562781569494297454825928718308753219088362792034568557631165895569436387545608629477826613394839611875215046140668406583368907803133702924536904054178557351900227434579053092049192146139840105355466246378501795633552194258938226580359528600557100164060390814012952207106325786140649518604070448122502571034054396874441856998667904667614685633196700216322945934320061563519102194255072508399036228790759466511386777382217623038066245674855071911097891920972717446693069234393974443565373386305890052367220551676564174590897063622484592657898766585026418026252494759058425939137315274508530704002882440928766324971315139284609798822245913862696833436637052099304778039479782321509768184960430762511215990991586007351169012359520077288671148559742146331952765404405602123199689506070878630681740657022433678159419236945897318259294957008327939718948395886571256205114884473737615872440122639644869583537343091002008586335654546434381113725035091284811610615694283744890730841619680796105312866511022827438748039578404434824656115647575307284284667171013247046154424173119704945682313968063947236979128763375390948144842536586372594286816636201740702710404425045360461415994904706944394002154735107494056210669166119856229457553778136241406924903688289812413289118218963323749471693336053822189777627877294685855720409336686108572377474954768541555198793868445970163670854052704704602992154968394951792304206035598223333222786200115094305916973795019595451477246237912944794229114206997950801362870104722030990578692080679997705467426488839348017527089918471042727779801786755348438176752004231016382106671375903215707902045827185388633196537991726400734482592892132823191589838756742870199512609434904412404413912891940619677629631750162284055867068841684624621505870642765524500162889627294151364865886622311334092090141554194690776402628294906550432713654265178270625329520767577176330167854432911610600827408562423920176089725202889393191886718726101034738631777833086646879925295538047698439834754420085041205884107193114342372565200442172361962700454904969040275978245288336258409226378192111066426521504353512962003522230590155450308156796108909056925096092928814113180572751563463470544425752995105453260017979559191728822727354415879536186474857654211471954678650269946260698076992590077550891272560509902039094360305730883169064443436884865159765639510776789026213896706603580178602267784798065434873683281812970385396926491250866175049675543356029063102214028567622092524803405504217263951759451487753383323592358046820131846182046677541046333799216157891191798843467980131185887357062831623693213634243335778013408135438288843586978826143169219844300558698828810627400068427599566154096441113750886490978304832715061895768035282326431393670509070891280551516410613522395959357294401605030802633612587445102302172130257059156416503157631757709222493968775194402904335266624148577157462237300179304517916555220160213204048480141070973072028848871159401889723444486396292491308318589120990696893462006760870124195980390750036609488057709827349004248513782972138830537142763731352203412018579665560631732686291865371957944835599683704027216823648338997985645369823588093634615983793019307965690456300045334842224003390267127111096401621489592224040027322360186720242911163262657070602299425438100056620347920633832083530230778432736739904238356406339026265241770149634218637390746856139079236205055255245858032255855524468413281283360612354806611612785046942410754688546523546373899671469805573077024617782340822592147033940749070149670071593311819321013144115429533197565461643213034406148560310755591722291459216434152012786519754435162320927676952120517115873669793168935246823957301808400154245822277768848941010308548175816908363031959659712677473038815654295530388661451626971310254833705890497903314259775265670108448731200909902402014828092488753998681746982692578010430038937064976145033191339395138643860776973790183329809519718175549890260571218846880615478263720384308996802158954174435228161088207356494623379053075740616791286384134959230321275429470209855066048935470213928550834491771645386768090657646423187969572664930473001547264932327299142596347557875663668396214221340121022949863232940803247711646896979169739347437300884834182250775171320673520398285408751633343113332156109200756120228192248294076215857875897408733954344315904131025170961214993085018453983846334157400244480397196494834355590328921992704650565302898013486762525800727056334691853297057910618313488539793919004459038936572304999970962584723536906648760276432919822121274389089234698514173381759370822591015518831119420709629619048703313166814424422766159415196040666270524126726289927154320000297155796246895147269379367943329118631775813977866500556839747696837183451701928197167033394523483641664398112248821283092504535771014783793809753516817612367687794051014195679796946199411495829429555010106729698543602828233853427023910970047486623672239753564584283559754457744703811589488130509148537791905120631027654047481579378938281790899183913135043362891710490010946854611222260331177253531178115446118121262879136804653179082781842013517838820161074835995487237980307669924309902497540070643743256339640086128112093759655051104632635424976541843994138283200505267584890461292294012523132919361187023053438560453223296767883825524961891929690755918486231849190058540680780073986511419394236747696752089202906958941538651688036655817337380074799304864805985997971689779589660779353858060840917701185910908792470144955699986868414076000312185561246452569898469780192174630187954607610673994374766907812065787881033945954255647994328841481531579143916605450960291813143097002793889266938996736375810690989831146341189127272068227298859143758059564912296971003477075994946189556824902060192746473396096246961454257807961997014872565600185148241988006310962956031239257066438203353362890837762293785865200549360380610642198047061122257521722890194588778071772363130632121939767272940325965113730886687184289035807872478040827513797165027802517293014661935313079245267685299756339956207119472714109913554913191021033766163111721570994620690450314684137157275012764367458271397822255908455702876070231103981120706379594819209495954887947530679727266659731084843352172998955203865433541250262770790629533176651261976648922438192890049177709140986284575193577418047614975666516385243184180122584054034121229959633882308088932348582439450084188515411017378424416891661469646187741573651433721224237251926373585464871382166063310227768331873877999132541360796524731848299837360140863576203294539759427680351097238312370905488026780722489288258914111625604022110691217988450964827959768841377349747020668267729189988788470976898850719606834735558304365290966759542911155060035561057666676951121384036023955713424615208375474959011245968660210646234797728553712689329630762229941840116214522319631068597965518676035097795403539323500450544233377722917635006264098770348944795656900168565185709263684191304009837634775121169468080098287851620652886442632548484610746956193809849102011059618842191329785075776789591590833016444862715913520509938606035601227782472686804875046594720325697314824747524394876862945687725094236349054541212402866329295448860093943492578230073193895287301065061916509947043105934670719479504832581422526150863340647787178545637006796297134812739620615380220845271840635437494471889964588146071911397730492112746920250048107582235911055987130686031850127195168772429020040374166998731971182061099810287224586749375753812144859039745918429357212448400880641891112762975464825977029750350163317832768222476185388452815411335316434456853056422278926222628891061942883974843709143141023556848304835449506269515556869826920758420934701382481621875567348571193792401608827332651871427719242028313159864119131629198561549918194758289730283907529804183715842199596273920051693994184088618746876962282336333129576527835432465271293663367346929276115729051929540214926136233952211224837266172899826343753958001456217601561636416842067351521430716970805086686991303402532350944638662514389607299152129150139143616122554785178197275324393734555591310965831430628757163003906549963009224804527977594884359503138506587446977945481276949538646465676071388520890431465339787668617975504819199905583893638471036249764302747156449716967207280268885142754012635989290761117992842337766151011828839467503102242307964090773499978989941989905700676469966515287206577061797262873065528290000403231825917057758089317279831284292036329440458287978129917770059510329516093394478845378041870501181629836539663243213329721664956832116227279072792267709796687983880384065606946731656655506599161990077274051344864215323507287450550956004904277994130879621983842684551924510110682202467166224414957312853257631605015767310109442919539038651692175760880003033465946492910683898426574166728419195341578723133304119671035119917058137567811031022368793252632938358162787364061694129868774883018060364250764888248978210162786956137186164680968478843532768561266546052049481285006817640466511094582651757393417067110547633163709589286578267798298718858832695812450695792156635469714214056632858128085645222997662798208471222814641760263136571975019253809520574653677090548651523422277426728152357421014008137970168486879638906433401150494765346661926730092151816235117764600802387833273391233926110379074287967161071487090520384130871752875160535767811876179995162366715051321723495958895735077218208083967851208871411105153485410750944862261240916836663224009281367015473617056354762312383994326600900226835382749876986780196871671926586174212719268285741113945431540713877271235839428782848263105702079753367978213277704758567584138232081665436091970948719706417739208690926683853570577971776065686812372213921415376040187660489560581360268936232015169194045621039666848222869238770566999029893691988193642792955077768573571593618687177277362534800966586354355677020418204170457509244463980864650830117080844868619253950555091114971381023537031546482893891433402352211810422232613303141471111216284175430433555985178232326439795835629141788997856170489474794281886117093197318708916669740294472162776035439847219504128457759221498684267470800482119460017878726440638061909348675650961574919254506660943251777257502907314439390308412940072993212519263522002077875903901999827200676515055802120870196591996199382134516874248647669282410822131301249154007435220085820384953137560167091685730733094535519382058595527562711882628272106684060950767155794269096204028388857175148263816444430480822282821754714243633532953826364580336923697499734160033151018637471723445920361442866140145194718690753125945655044657309918468758773672705486234826733819666172829589747007874843788056051682776001582665747188192246186471764123124439889217732230326113369177873381097936159217920931376184238662725564472033088059034721783032228483549991514170627433636148197894253287251560300746265522533617718378966442857217005874118095819313182651210434293391581423162898682905474233124125048564979705524711302751007836383273816568889092153032394899703227804673788354369783523799671370707962384794961644483475900718900108990692801456347213374072526792452415679535143820722530688209032352119431025310950914415905667503060951885597572988025790661203054436022948851641929259537886711226997326622491450332249666606316402162491719514853894243541163788514411246810209781645723657638044073808381250595875374826107045404661370960896334999650486271223515523766656054562066503703355692162381660946730491099566443366785868706955613100898708484684767514859941328316964998557885690623643243805410961142655231765866538224421371442109530442999074140995856122138543764566196014852433839946722311204320607611654422022481569268119087569707880980325448653637192954767350127554264728278179072821018477899347689079835978456602972476120134014558500033790292757913716127630202264292323058931470586203022992244913403622838670569374468416582491172428407743193849501464390099243634577852575482087170862839547090036003170192002023389563556008087213009819854369896528004945644337773081086147551401838185939443113894376836052522978667128583450984249079611503312922591598392478721898752954379868801991485520361587774619842215849480053487487761047054087235829737108627977347812948315049795764508522860267959711470866671596541085551251366489644684927646827045524264760827542357818003901301637349440183829090512474863843217823829138480583203668578255362686935966651675223203703085943948708818529744089192236652856004684151438957097403574651689245458746974005196372986808747792949298410988302862923140306955843445351417951573051468483835198120543228623371185109546090004943986468970093682490301640832495232639749389448843924388779057989788480119830901920650358401464638919984923611000310122168467677761535890325315106920892282802333904235420090049354391677136904160859797243079837707450118868611517701310741101921304385860189617468784320772574782196147159734161956654273604874648730710951615557412648416568693389416946754632485274790552625048570219430460432980237510570975785027876980822483757007923427457038514936454971328405963596650191079145573132828292421915194685992216507293612911804222552568033080954601898461532843154434980760570128556611521669455409167160100249598499303401750592662153529145753995464232138931659475459907971105705936147685152220110524104654302963279685430977170807757410512110406398569740297693663126717144851687589944544215526506888826121177336662953001003295764736911398962532739174666669396422229744119278569804132271568910351337463346421194549896819878601036155779632825357137870286270528253404531701343506455365716895360815233581773002423107006289331141738346930325858205508726649124237391053130722811232618512242061599431390915665959511278413641430127196111687970470793494960291379811105968518678891290609838394183268064221353171128743336971722537936031070362607492081835318465364331044985244740091607706284827770148598845997801885477921500264412301871388259664554981167802930767533460445478154710115890221505315789591427747180185459966429588265449183126746139253085607948702044352685820498998884151609952009763685603735875523914380808516583593749531613660156858311846393503974241918706826577308438331499461115802515435048030581117694545196177008862930808899183280918831160489289771539761207367806044787258083449176777529990750626304216380943185262461553455508939519478208697784967715931966073025636958365006661502587843102327284956546573421328392443943471986757327486353379245598877489104263840876013457258051477328391449539977340939151959800730951187465381507862892937786988218582442666218454935297351843359944136779741020143119672905964082192621730680042595717099383704990288622213148477214283713860695604599320347023029115829917507963041563951237358052543709990906714424007323731894155722965895467433223986814788855448368952739013228151924472625089716299670381370170143544214315425720268736226191495015880861241046601321138702720899862541481244603716979459742969262369802499151125109594725502977039860170560465468293877140222885428940121139150752750306045062948420653662590342778331830036629296079690201765306529997169926431872259064444602739188745740944378314104520857971248797922663373189167942038576325817669283938160556864619385426588165933307384189346676104553725233533603116120644892362358507155787365867322550333971384927020670470188941964608478335306185274750860780233035450611365033485024331584456899531056130461002770125596120023360157144807840557195972498707853202757199743705794803160496157252709884414884749488819374046966157332161147618586942366298529645943518593154217207169062079055787248682597673429063429925831434973484584361064908381891529894562181064366091785692624871223874982314269149110584795228378219919095024911551967602288346161836975789149083273866412900090010704869623158933894167418621166412950403509728043645948346117481372866011265501251395913267794475172659261358900339081649792655327311866314707990514712040597796385710300775582536371698475565918948382085883609171515784195549318675386998657413593818620291720086788722982439563649178451962636941288436897412184146675831652257690502731346267644043719728282216069499690827950482820466031369582600260301997285788681791453473821409543260896377921025144135444539188633749710283844842674991769471805980593480574371534627404484034034093916026121214627132883130900388711769304232824469665746645333465865685284813572506757320906929119169469070170143855386598974139625800328581364149600223055826863662845365255597789767848907638301167769808568735086716293724609403287687485800034558847667615563406729897876954185847874336675227342822007732982947722282848057373284850514507437416775483151052675351503059573327618724428322611387492313854143248664669045876040987486612779174158130516195229688391721472095364371283817578786425721338058588421320265986245524401260623597458120769336123714482883326574151041174043116647480269078074586829813268795961009273910853956307036432840256672970704574763792045321555540027228858074318369308814799831868452132009365418116901031890427491981956151057298162327648488380383873045528337367398248613479320250414080646515362243354933920670693717531484688423286099881236743564296009656809142443124261150900297212584877718903997938065115158452053055398103507955411673414307720574380058691802803218050393569144111215687876391544763632758011110846328859471251890285118984533877966176951767419641203620325581077210769524186780615889046989867681603850309287406322649972031688153776182165421303833015879252050798060163617425521448859087577970898758211875133602320670686903334647099444966361022306546196509092848795744007196173011886611770657692957624967782168470463949886892039230870618825713010010746931958770751697792012787787502941934781715866104669434748811759997099029863197336029652189533796800273625617506929081051838865538166313170069717869355026659349089707588544955766238921551830388787085470299061653669829979526164210195251810493518505420329684407360545869695839682112472498141959124849143899557987238874610880083013520816659235067275635478310123426055802591720185084845406276172489274919066393732363847496504389462006873887052352543374327423998326784431483277431066640322893612752513155880991736622173178082547362692403078360414803867879972294391440051107468675582105910635845443294818977265107631938373567905084466913174638853787329285166273699216801402267161713424837572702816585606339933660841678407606795916921042199513821337026216349040233552238595563785231862861517457468857798335892564839131945737964432997557982971514451952029356534303513887912907370049441591875922850039281406722090148146253335164094057626407122755678990755444568860135301872254656145473229515532137956020488566338136905151977728855301199163246843883894014664789710858689449248090965669770642569648830658829972434253481961708377021700480612067931651192846067333041197784957930560727249061379787998353816754711225854787486195759935599514678978902533281492722364817488283524686018499888903564523329847022925991354264277470160703992148311820467261403170331168278547475254096081464347284171637780196368608207060112985370952159535966535283413500653095600691024026366830849405547221027608670619455611724086675014967958005533464992407205174574170490129257598532105384987405064502529299277784754231172740026485388535491863786189200158328110504588414143301157603586561402303978871014028053060996624441517810517661333864304905175155325929265492499513918836959348209149338773074996368021857231456610891842201288938672912903623894833500114467906683801150160015061515752708902905261705173767077134876579628545662122388448478235135430434564963747561401206351000476627451651505708785877787196694149488692502011313126603476715652207248884044271351362814762690035548058321805276826912789920819824534237257085006883451247862962850706569416707746822073628878068452176443527053315838793821971174802302246223743091532547443556874826234885144040007403106954629805775378555103448044357507562436559228038419574767859431145451575978729405091042377169570526122494063588141255311971597999201836649985800646786884232140935535801287520861477057185027222181000265987989342889778668578296479249498252321094024821793535253505705452756747788303858393593144519700864040300563630510819020182179741569587688641803529133965847381226123726434040753559916026579835599255307514192912006142780033085282199671813823308008598564682894847424385874722674715243427208104136982886568050580269122378769830533993428188796572737133706644909616231817610580167291021293279951219829066476126847103515435867639009458048437605277873045842143816504263246618361116255855970465523146672256440871149177082219824173975398500230964102084288700171536973778487095272267606642127354802531145275610972866011046657057923539073775291443044700974237317105412263353174400862277830701541499881637688749326851837515800630656224713266622256127040543328939122267764750647725633082493026747998821826899419233084448856621289955254161131047893598063229351381698908404823114811624168457127643070096595425909419594394880841252352189613380614761389077413758306760820879920629178969008633381444336034983104249611728314054552907961349323137305324657315604552544559697717278927106285487484510809967629021899533865151823211775584282007397251128711183300035695912998940802327670219342484956300671081200999129474123177203294245182903028995742862099378138625513172515944767725856448549432809337581695585243787954168900333721071553110783556974751145416490183538131077293331532535451296745403737474073319667432294148122011398054689208840375633212017156221029500708936879874499221887941631876806396327474740242398834741901706431580431415811012150211628812705080364609311545539861697890886613934670060892909102063270681650852758542198886592920563753877820632443635291499482424051461434149383503144081845710177376339271663773044080696361812793443189725155157437853070419253239649394666618900843680124509764989231414753556706279605391199381953122162631611495516387923377250464518780970363436499742090433670749462284883519171710352356405742563124247357145202601665360666295469125082438381028347904242121067504783729704825145279412381320405481477112178792412127087843753893529681223303787917999820326776735628261240578162595189121988267254384910258754972023539446269794389548794542737851493983708151359549119234038887808927853290730990567778108738915153387324115187424617627016639788600944070140463762052911587886079970460138667108507311661752319654691814810724237529688538268843341011771134656998843363830064784237010999203777734377505261608440561665920655466447675324388853044106820592923396405541456457420198006279995943870226885750026822552220422376028443184195276961682066025038706131138280504483605071472195695393298910892477396949257443037287066597908865202307973734199669610063181646408064705264592589943727594559290288410962409988848804520840083009521310552373095607448432100235283606164888406379343482733648058878251613987368183993634206237522886344367889066779632625907044024753224099588622616936441949138964133781635830370646978924412143427654271926876792261531484943182768245911533898633147859631081736683315544773982619642984049483826445574615477378578541929903151203681976395751195327430260070205184574622296277520734264348597676688887850173589160122512921602487731850445160998524589509528054008288629593258635435434976412100010278902186837141523969171482641172684837342659523806150228054640758207190279540792381786312336541558514672130352892947249673547796439218518907638943870921160546640424768487532772185226637600822591071303046698476763287670344557877580238518884939104661869146598860575346168552847134789743073237296095613861100254279352205161043137556658299439967823132673170457321537640585532945463625196972651028038079109383168726764260681429853685043685643722122111870551351911823876547161021262375372042120490310949937882020061905992816804196085419629433444848464529219631592557399712880514073864255731512667133499796130967859126085371369615335045726407262238913108050973872523057838998933109010551508290379456961695178657726149956179009860303275261179647927766035764035373990361259002474756492718661400407835669232309823769822682642423079430121842716246761895461599640924146654263744977537465077566026290445573960123085432061992024081361474936045761364888746902830577212564003915037482844621750276973851831221438288250924439518706274108589606131919754309405662095350424896523419086390608511514870115294919809162981838423668275492748686381883573019455270161159362844236422587428606638426790271573626984252855260170058683876950469017027415687371884453293355824306261096373461793439187673697912900135391922014649990316977946252045732297155048117312567527412506983260318585875176264410055279238496892125242328435697216647449402534836770166768151551661380185347336573699961367419758265822595444100212752399323535885867866073805769796024598981637913995026036992893913373658262526083764903882969740973043240439085084676514163586260471227362362408246400041046321555301751961473290636815077487428463233925178101955167061059857812421442416998486869125461073980949314502772792854248555264454377627569498028946775308236092262759535775788523762181217296218215067372778721276931970598030335900007990382598858374494193467759066226115893416605273020124984134667632797707190787799324994605232693767364132165418304933533839895662906018881765698111341926264215678458006003333612529783977312507926543891963780255737077578586319913255709877022199944765169885390534202341242811458931534770838291179360308384597037730562876631942116574368294315040103718731569312320552726318027480526974306219036187891057169027651335976283306713044809030631632373731470178350443691678219297874735742986517304055075411507384106007531723551008748916684222402321371877554075450212663008217828570294071732704521189463173362114949442878636492842369485996007040508069287521327887679250385788615422789906696633761734127294233398840895174085437805750507431028085110874286140090080800639187650475456507339399053134141016900865720771539625135847664243410232952304461772980944716248465361545391122461816333485788828628307682405402046192713872748369603554526873971600181688198546590766995159393999465676174977791791189743710755675972355971970775784734579871276026169692871392819936819602697354084900596504615288024728618418886750523761048642517124662825099266350827649606217587196478285529718424192188169949585414717003896809866523477739649512529129883502103256703376310295422008787237746066856429674108371746266674999134918497348791142460155638249010907045894548529858123919599967963816483002382077311968229726245309195273095899830524619681911496983052722314714625035169754229884330009546398074785400705463386722242923983017063064674685815339162355971781852775355664723982950842653719811168351546639006398939640571479194385970585560220116232867327174838689638442059452381007471494096847128679049163600420750939588456043321612439907770507291685931125384034648070086818969028817482486922028592760448160056185878539302669350389898985413299346841784465291286391483222838895718854589148969513609992996832760830979678126344635387375085397926919965653947862424492247472922013295018377180628136042610745097826957497239373338108686709040966623201011241954437549751834830071169234766591403558198302043808091955269941868995531803696703362714505823670020519075256252202736062226519318914580163231500775442073243323784509913821667391129940284221130937699018816047029003886750395521772504692976494203087519316588416074946048650239895749161926910413700356832958109269629161754883554277363360305950335820099206727940020123018374465831182272993209573440031087755890901877824263177831654632294559037156901852692748339170257969150327704602918880579880080513977922026748323390795062462093941021862864947323812682492742161605194527755452172712250715114290297788926879252659691728606671112313358076896322338262890950492678621680947088316359137389542021263040166510019056371930638093285321066617201846174795891375826981846895403189482708035534510266563772470484672760524964183077275193380082075867262554192711247291663406698999015478462087197394355514788102284544704103120049189557282715408248526269851935807876015644551240453720581656946289595334918529605957840167228761133540629717987082172063120164349330215746113344242587025174079957665639698635124016701180002933659143352426244469614635498412711606166744523092341211324627217481578171535760257450046396756178229393600553393299913983429284450649703465817625572672544012848958727985647346641564577780236284270129100097207459515470105204259972841800571131745544057925385902015971007987724693475030012851291809444165686553103531592193262285517440183607180581584818411625591979500460171717229900871380828369610911992052970285074160726464302622788206826327787844414731392754263935422173783189793600623156986766084164046233746607891339588530237957698040279187169086042574219900217615299765652897966519231770201549682657144681865766162349610753549993593714366908461031168449353321801098339461001833746150655842505112565775370003794145708960100444814700282936090232285701550428395536583218228012845613033010401632658034487846103647566498847099700553688485804421878637261037149971333030932035405479789371936192977839107915337134925028030261131694337019584826042150669388024411412086696532006630412955181215582189070922032888287913782572905888562341534140100555669702207196990167093423298914482591623009400751190226428886237881376834530053552675136612442039974649946799207314000796283299163742555617970534456356469904481110207785656603430258013163472445652653938964038362653785974805471403113162636713019807537801192127515275188908063093280279891761045522880803148769574117887694729604505905540391051596749458059047745577621557298204569848968436084776518837330158142784259407304499569229627496167148025152353062005596916413320892613358557117494011444117148674584246275802113392885480641122970780255420800033048254546243552784165946229645659349641553644043364227087261160616191440654104192285416063451168516887152377140516519477252321799603785604124263563794484382528147384537766286278419494096102051501365975812246453184240907285905908331641950922144033405607212721395564951249122674407966286880731181937152610874928977765570779332958613586468047974689482945760838452788002471826122883203513157306670202489487834457123111316747071096851156113684386318661378981996208292745559718755212024369387950405895581243611000166008345035957516399274920889275788559204824336713746559630956268536939423931578066254549144167971693525416251031825177357597230850709345929307870165977662135824445397650738743729513283681347871058265205172930054009013159757401447288639935443416431288567198630931318173396024506754224763132550248777186651054887531108810680362987382399677307981656394138492056457522807414442808144501271470153844152574064453919973429142813506451959677076833765262334426900416719159653614021545937701693517665303798413531450604027776388179808470318430219552250481484971751775364000688834728921728897521715114404669810694327503868527487211553947976556469524338682475371105712895842331633876078903784536721040707144063215633264342445424923249945286623412200040718730938959049268127899931243483092875711653147888590565672549097581113018904748139258181476811599440061106127047454708792340696631755736079388599682575872914975888190806079011008392183308766444426085946016179179576928715022893266313527968041593146203677208840315094577196936053813710009900762432556683857308690861772604267125820571561033097969591956422963630336410379787136718876173418779520872562391259233585812423165609366675832183064188119007438761076232307239756237588777658270959144688564365338506880368737146231747505802807439799934569225590224260114778682710670150390123451855065205268589095828364492143201303965841186201615657183957200063430466811387155425136095037959124762194328466921009842770162765775639555303355655066900793727313040443409249593338732306444316452961344668246447105088872246903782637529768333874517395242619276345428667533555289304414804643473885670124941135097469075407927881323168753666483337472668250573696328000436750395906887138755200960696170906760241344620523521162621479540028930358762734983002565368391582492920156989028918735681799981943224783407005099492494094666015894197180892634406387983325435090542214905028217243795417800616757273195185730130869834258550590130918413942525940807231847334027476734921322949783130334349740868770696215831092902739077060097622347090351862301721428228215249488568271986074271746520094539091527674006200500934304433879874213302920511667292807449986217220660613800565284560312743064419392922760794131257257504396856251051497050651125495633078983505435049188835526145668582365670201070642274972045045554497506065670686348686628750040191741846782129573074183995377779788625191348538302015149622141535783620883676428025570573365275420331538695244815390822826965930618613260667948194329015068793718697211046330153765371941660055112242275098105125627206534347770896214637281842097777083984991222068663018133521610003285393515700843334703692620534072827381764399664711171147167178280445921038588844432417765513670347302409362560928437251144321584738321329088855555079330661644638812212586932584135531892235594445623420181694813056952019180865358870970504630819619817275680118032214100540637640613481118622583185379929110379204234774365125773120508864053746104148516404774977932897805857647699097404338880768184997471664501566896707833416326095627391131962188947775202692982236999500262408525361309851538559112011684508906572284490954730477436510612439296560320611485718303244678349550926011304171050583819231152070277573559215541519340932693872315578234869427021036702405832802779334339619196296118617137269332852281936585099533126315315379058336893945925143516650339417723580093563194839720613402206421671349507297332600230862811240841473287014800360089488730237919359617535931332398139783602877436225072084423436598039710956131628853310894640083121882285945683437659281780761930096390820249293275408600591367403929946663074896461191460085530854602115989670019443137532981355699023609405156318644264520727551055296073492122698138605485489529668171318482358501447425368302236140148663124151968927799705536720129347526754163429900354512023069195699621342652651221261518770399250399849811540342557802064260008916469004828468213148287082273855553980086291283774464913880212848170256186466524914622377207478846263238942553881332125432864023257889585282238597272825010567133668373593144528785235851272877311386422055574755041889761997521753148938728778375152776125012262691982894657657085928485827507255113716048011374689987819506802774191726900974566607492726735093474825595336493752208050678281444488584991793627622621052955390410538907869297058892029255863568148159563343034712827741246044502657559849346231724595282132333975102024128380231845008460579637637182381549005286071738052557840493787559162402929048745661021140595039157601701247370557455541729337807987793022270022806979733518836156280279879890550339304503601615668769428466938293767813558418739836488674274170973810301768723309611530500066258190877625446966292018051472959276106375049662622406637641248757060146633338117028544166521943557205574823325520345614809710652590794786715640784893192353695138020141978491239351510352957244876429610085230335736322739088521731545465856433928393221471424134618219666634899840929205815796621061934266143844465764621967395873618400144471442209665684961078973371417221100495380885855114170613203168308692069352746428540703825980405638105997531513329117586065007246624583069217593799464869269113662558200889354106359921495091891039450104577665747776360144040894632115162246556774034398313766137980400955015919578707679477331024384150540696537571690126715010369567910610062362027417949807617586904792754450697268727823059816350039758045429264908938408806072873343688497026734782229738830336486504757988796931024966077601031138291131511403018586604312278749074299042301837694152122539487156858104811303041776400512720751950893605548939610956140438269628896987922294783911588871774114801567639179231963232528880039642663828126851292038579238190839576795339178814266456687861197793224161556075169605705496633615525646808626687830703774125932187581452920814516548963272431566539039079961052725899081708383945057090390006439494006269183651806746003612958250229908609061674468421158510676881660731008547667934132289755875118184509202859126863200899122399045691450996827783240090261663173910228946107445056242354580847372298975312857127719282272271927317978936084984688940451029259035283432861192392016865333528670521230939098741125263106186866705205213109070008956423642393702647226410387488501953107920613625476092454719002826100453763335578684624115826205967202079361829416999169091677334780245305915335013315544980650409237519452323060441037850043060591540208760154997648701569732939337998712180653719575771733259544716000706681237970050316982894219601775350927936035564728693856622003207522116818852168920602656187680356406348091352905266532827056041751988992708417217626710745573580980651736205010309512942741560869164160168143494385789387910274166987228215120931746537399440577530950025554784484121640532141799622143458549410931320526307672324904543951726522001671097813239015183314291842459609124362677036988901126020300746876993799644857876669404451880871027811339871185044502782252041115772237827188227027320394382206695367350590495389926796788327276095103073323512766109156954483206905511262884149478961150504059897147100379151950443631414229074407098012272756463687752144265345046470554038943033723886505741580164971580859024856702883469904127365621287344901226500055285593942554679880278846120403068259198638628212093915844051190472389143403219405647390934188599122705792102445299478901267040293557617524937815353563996077864332456042718746758527283205192074577280636817761337273139960696562538139141823978646620664705677871674096102115413395545852743631843385432231147118449333014815191868701936487506612424315154162083305778172821096486016176364353847954508728485972333422142564590446146130261961779682243235670253409983873068905589665172331730331750608689918490845248530562705354175161588242742724017717383617661006887931752764471235049047453931472269398365042374341588384043203236066260629154025777630648057226219722763142259988073967084521593560415847630005256459866244483384918465725601274684468245026849003970494340201996307600317972712185232817110654044901990272546138850601057060481924489992871159900017816880553552010858533336411322459399990636669197918680865789267901568126153381522232662392859274354868420496271262011664837917098067996948103709895021535944262855699109016290015757546324781399015798082244159043998340539344702520657524324539457751231768579184989156797928716030735653466270650901723512287925303929702998506408115520366589654371415410662064872545764251177521422793044833074304207288273701557220196709156939191758200359441869763390498887008849276535804095843287303299909335550181613695667883587836361486566695863160804710458353070460833001977005662758498957444951346630680903942456694974974817083842470810369398706526843423875699150723909359006326269265503337279126866333696868019306633242601252228730450983576489545655983121253542167082968917563213888447327896972528469727722156841649248301680472145021687690115571233631337053286162412735999291229395364430707249995448301984910801756827852272737148189067745270609989855196489949387484609041899777490168846608599392509829988758228826937213053513506471758072165256390463578480319039502942450005233961442703739576760282626535694221791058109226190266801729274511134314594411868390546429085350548105798212829616924853953001171004514163989819829086122048610035444146306216137476818596464475722218203938521290100339351962381069242403631525586999084212795342201300022748543567953635427453712846859861012888285636915863240544832096959153532338473501421336241131488176222648714713903436201960242573303035584820203011054929216027379642449889114171978721545944538794781026023267069766586227843676574288742494969089606467584328246409865772298153316265310899452875065450096717958537712792837464464672619315224047461393525334411139346166778265726522395460967130872217220933295210530119238843347990011002203652844871926157267866560804313309244679965844054934617989368193253701940251057169827313825309848119102587315012049453885785349674448072766762100978177664292160782043544621741844453371031660842479748700654017101392694137895105499313252775379658203622724896120180794932472544278411741089616276304120836574656388520392966862627232333880105067867879870233894061313335890460119077680335369844959532139598595638326829163671475063823934174008142072762858247540730746573653582129928243074922751028974855819453565702691388968854883538018213510983294692923263641909061651959464308142320071762631161196512524426518747994589612506773998403501063914643999784885626150794318602649082666638909924515904374501043520759773960224866972488151336221412674416685933437748820407918533661656562669607040969822172953255792003263630133230082638891254950382984343598009941671945861397083057720720588164950096059167883894091641874600517362880805051737321278990083053104474854955125798372726822952146453645282779822383651703403555166796613754485814554255889029240205863075578552080893053163005840457073568036653062847489733317709892094538877313859985444498491698597664741187674895830977997355440914060266138037619147908352577341224934301180725988602412576742488746324956192465581725243687241454493837839090695036565645515566363332963364136380309289418282598471781184213685637372290758671207851288750049716608224530654854543090351630964388617814559944006915551477904002156528444035238428670799522715102035498233652289363204624266182530376868449986015164887771838161047336210599143288646626907237684455343829585190278436185859553210213000352592705285142925950892304529086426102601279320625225780071435083208838797875904551963494720873434821821263357030668476135628361634083701289666259009456529180643790011208502367589684581228894340478230263809319423778439002802904755312074739567734455465686166111974114139111254919608353179058543354735744563147296479457563332330690213683059144970144423020990364020793015335518853793573964866572989080094142229140899319578441203908106427145498964818529935031005144111657016199617764263755337934673935142066598009842444616263662917939688293608013634038506953397954290628468837251515425526420539038674177099835076164426302831173457684381253451269271997471799289251663507396988397886096811276291368761001221651730126432877419735206714969653130455700957120628043932663944201827401833018730214899210101648091984844332013975431693684577127786796486883148241053501145521388784263823873632299979208147150386846945766414280399396788959653278049510780462228413954944182634311617560034857031037456041814721684654169804141412215507509963260070495901146232772313384281929652027473102226734390150264526803621145947507029406087965648186945115972601358246351743542333239382751749845105585843863876197733928891294894944855922240265307839304660000405058269463445825205094727721226124101928765362684931886654589680583937486834343869945575063521362681547297625434275982665396191414462515931049190049704706504933912861773617357960933753091669009738858540272716279001376342199657964984275878706049943959688874499043503633858042174080979747107267547318193552088327072730418215393390883218095828151521227570572481072981838519258048878722448221621972531252102140440787363411852974114759728031662273597315394451095949402229966931519849749910926239446148692016401992682148481458343944023340170009300101700089922583175486943817501540269201782666716163219033141248748688369600959593032420982968004918285401325535879588887600081148618600986478479821681276071598373979766356543120641497875995722925514881890230635181341229200559239690537066740790930714029082471356157480859831062407781701792315640752141053471249695728533037931876592503259582821379479197252700096422595629123244432396397737778023387114790028018517269596461397356119186016674412641068080733521432728768055131433959222873789427707689832840898559827194102749321326966885159751191810441461922397324321771206378952846136865445869835113163970934627412939140092046742806911613429416141730697622394436189794990128778904979437260752824400296721885286978653618780388619691049381363815834690341452652222957735810240602657457957489500161530629873253808760947570600158679099485616038833643346219910733809647448932828521732873267915029310206756794055576323739747060104757835116423243956500246063826436197245739695543529688486715272989899500040822550637370461992536767818377281007675102202997415286878977888198816104438932352961358127789161095537386969446041004673820819269640096848107074688838458808283277074437696653019822903097768860027295785743610984951759878483629398942522306650683897917831862901569313417938788406255190308081193894412979993415821936685464837697795219482281671428295737664340006068100458848678076242923382978540375237399103009844286175634935154630317481721713391493492697354239747040662202258111285166597815129150614575356310529055909823428734874998506406502224305500948343670233190632885141926141879612909900779753510485997408661457472830921787180278400930637046540472849405754745282678434058210757807225761373234756672581540970436994818264329112557748292053805335325321775194801621848542755716265012891133891972219005967663071657730346210836793925677217147984178768574189199603611438120643961344546000675631698764234986028736134870322993040386854020063097741804694022766093937517887624229961145721436208714315595054065093856904836358070160496550161543013397273049183693921055687800685349152980610976114288248815549769030116839893106804294050943083943075034487368681776848228617423855624101206585060270064766514105034820665098152012674805182005338302793256571075886831417896876687721018663198681564217704345184327410567594350698501916830302876573617862685005975676362966268601596619135118004740128857197391484468227775385379520211820880336745253384150042708306391212392220872418538525962903155163141478119922121200809834257851978392438246812988018263857175871799347577975559711275326987623303268370470649326173134679603749687691270525065480925575776870127376775302878979379737726568300661122468041643479205467243391560536727051742161233618826949187179429455383208503644178970851071695330703062730898211275684095688327987765440084969035407366620589273895367819308442435825724304722524417687571581901085210894884137797755045252535770975272335214537966168136349524709827567495659402268230099622672566393907392051116952432287684376739291414573840512124890533063382520333422744656695403243360752989251841271283815157992556065151036380982912516770671635318934406272263904001245007830638849733294569211706056499196598396254813916580027912299784718120189484177027321441313283963578299473543784317709313875019139109230067884044936953949680049730871477544714199287304184057335672690458795932662058709996620999250234949391718483378815993897308452851382584246378344062450412161897414065065456157604920366133364321819365662192768177453297786251702629531510574108713755341743949132515757598972995593265580087378781247636916297781593012594984929673250339932111204795008725297884778432950179791236783857715686446620885755971055142898633953622746182114931116257664391035120743799743238913421272502080741481353689850985028911675278584546931882271755640793777916151984940928074555846035589244727582394704829072011734253711977832074867966227976037866133395522067518636371355215778897375958027666641820909820319170893919902575012568491129134412770852677577208996003060305775465926037953088087637728791731026504505303478591097171307379965530929445082380781214119671111755103656480943475771147355521713500044377504385044603558259286799033551983692857536610932617982114527098259005405499127148856858718722156905539301654249893633582183507183618278498089232729660897239999536653171117127492065580379547042720749226595688122277354973682041981990935119027328218150550675739448524941519116832245044397574830356910937719493086106126437082646946068801910705599349348582574949700713291753080000345295458445450909645182253237241330646405212913394888194270538907580136690269290319709813524360776465985335823116450669419874777462310302369823363432426397449047858867915537936738358515798935349989002905754175729460414385917973804670647545013523554179565828249241163972912500327351293111634916661300857347295520335169947473444321922951471075250230376949616494458120164149858704229585855499317707302636869945200295089331892259627356441292400410878316096352345955376852800391148979180343011683233871044309851973654094744218279194978782102761275281720136385554733097580786397178265684368593014428321814261671305828029808302085564746583841946930930291897370935347124417218806608108077523692948925104559617498314423605792527473931743253603513038983731796907477922317657212910245332052319692790644970762190521819674532055848979712421362249389881046222039932328760029708032425379349128601378683529628620813823617853297741648633814691505022791147287703771037580150397448737846078070760004357741570851661595889155557947830728799709971069552838762150239506308301903481752475301397843296889682193229057203075732107442219724971896496903761762084708480854601921936714109843914153520584663159405640575497985899256279084315012624825879007001812998893854442382281747677718145348575859196586982318827444287161797071281081773512363888874125393625558872872663961689166736790338642686122712680550693769847640746828221546278284035762143825742865978543167824991797615897291986364502842063223055247109001714292532825978922455834716828129582893334853093968347783664655503140074884701520273515477798764180713466787887919903662586893022189390701723935025728208075913967113707976335533496554403731448422814242850169196500814275722142346748958690465335840477611146360396830308923125932040026843562050600474928694114374172138672458239093794472223374910684174638573489848696180202115027293818942586389543864915257591094045161771350821598922160372495951509154732768613855733547564899204163041526486223922145278569945179890248966070451659657004772320377420329309766648361486986649651615502827857444140991191446582484064734368683784945381541111847562904413427204337858394067269525805427791580213709946812607353731147377796755944194030221097106566261510706776973637400729939345624429697375106047897106456776840736495134361942712441272573817753813442305802341326645388605402489160195205267933277487207030833745974679709888660236409747029934344843460799149188703330990054313742733282230034070455322748905503198443256654910202585103887913056324583637273671297292174133954572499185069078392479878435253418430881506405111261792349551689270289483039977815177904121805766467763115679343903557294062104753813714797785100636334259051579019848516871943743977169171567826765315623588883432114226778396423866876052268230309432934479354293426617893913266773933604681867418939458833405625531370084738914051371764821349783129810997544543447151923555116451397249256739028792336156916702400145658022990057293020105760538214686052987471416593415610044872870892749012060071714040547049760000849130621840183825435387714968280128262759735588825063323229784645334039744932040589078521555453753875201111357556623412972132656513738261737265366061952730583152304155777265892991341811574402322553024895342648473966426319150949280864425679203023193693536730147564462409006820418247170029547505607618086688968440054335024533122486614822173830051806691757673676300293855214263605328473840532082829235129939949636767170037122052452319046771733770328166474458223118601977113343527580469139088730079737913292357197205077568755006828808142553141001027902750341427757801043212951430174163919657846553160485733006302136823773111196665364395697283829105867122382984449710234858012300701363708716892161001867271525691742664787331591471999378216419188772944202423103877660477041101532561284047477941810268789352313179210400238549741580089579087915721466232129355268461813384645510483900579134213531154029722358382146888631427727351213359336191219947440504504021462558682533816512535915189122752666224992022637643437410353949350263176948390179159197772027774728063429442864054433309540214221822204679060966391733665105313375394309957450262503923783116753025263083479127390721614115929946974078247725234116617076088859850865157750767426662453463424162133085650995439594415784238926701870758005682705386851437374780568901267175986218164547487557428196557421369398147102353099016641385154006837890463748870646207984740355767417945205792490519146870109652904585340121161481102947848990431778203061837817382641846564313846407721189217999735292024018146440466229580590113722952799247988184204445548416856937237645336890477913212154178971046119952023335265517494838045975944861750512612855815570727975474297265252717620665967359565624060217407476945749745581453511854784720344787876151052597362999827065410790136024185689704026286203092542540710889058969978552203537545692112125482125510092526881205353338558929573576425608234505596604622482449734181811291267008279365082686886416068373741636343633942342674052095895563347099120676601413372430006063449321456839245027193236884393480697814673066967707909771041232319071988616579454613862475067654716081500412912511961706974112826174655365171050189487716466713944502463445888636161735484522180427621934636219956334927190945830703747019826862690301820141525574349604514306256369852868849977112792724533467524692099065947152197076777967339047807272459117901082366130271819881947918633314288940493765159211354706392126254932739747366732319543728106291404852921979247958536430633550551444856306659814489570424434828175012739903361337457020947604441626918372379414683850455524086972056328948716604541666715564129446132661792255960449040439729305258308071723970978738386140787230698456607652090689149751574209001303019760319038449563609515052857330472263044783638777356530600267420590841108638270239938989926938800910049218087313090338685195556632357748196074178504112537799797958903894280022595759393071553332023901123029901338864863824306930488454780441879818291388340653434285136815031461103496926345995714876685960694113346355386988665590805042985760465952447875803444574828768350049321625952081693006952443258215138229665545407722152091016101975714662749837633565218474238885135167189363248583075228223257641645343929718987488834620426299442261472268158557060257534784571935916969172766233044745442352844422672955396766986484404672621885930845745659805887898173903768668687055061055493170631351625405751498134304235978405753601849863032866443679690562288147613025079383053378822433207804759016997801263868989912970768143042041899685611068127125077861812946140539548711225964160255852061245062195075918918478300643083702905457402427003189329450508301414687059910870430411900612514780470062123016563965309142982835509120946672669564602470887985956245054343088753908513322600559583199321757397381305310433803440289099106542126823796079703781355137400228393954816956478061985162005402328910004545646616841435022305178173158795887352966922698426265624510907789414465328429033241428044723207440147839352260768266256199250456720642886242857714472120059032580340016291183340210457602049947176311779497428260979212671888539196623236923632448222102612466486070141429614497873251651337617939708620068969597102735032137112510745738878148488087153925415011707918804072703603142772984788349063741609153372332274617053629278544065436994987854592748959939391390148276678304865074226545021171714561439592066831749451573413291429179190483352510747756611048411833038451055909977500374020913435678135820012583668579643404872543867656463408956043718960417208898673140723763013018043960565623636280149749294807728365322551195431317832844783840486861490012116705853398364968723743528810267926324547324501563697762582253629047795481804946578306797005308965634668504072082593086240282721142156454366031491124086708674530808527981015069544859995015057434692764185311090839130043249053924697188251002453392934295014551987732426193984122845156660966271000059652198677490662837338815662672062629279085940216810653531013533272955289678482967644028588882767851134546386481833434013105985097280080306756463003188029495621695065928653413537047100974608921488031333625543257404369990663047988833391712699720484401090465737314534317474602466701924438078429188155295399838685066354972807730139581350844966652173655178536262421082748434029798932964165088838775073402551683651543527016426213120648624502177927251383729260976902117862798405171370781598690555850697603404671737102058756863082222251393384158422103693397179594594895399044182162663253938912908523939689561941906230283935473483576857708342226518474210639254788206918082946528081623432048765137904069683749719346812884914272325306582486338967897002773803963774904855120952381084613876953008750749244337547788347263833934810495966595082772718976029247690029791638553873909842392714357905107481896356008490974913615576556336701627235973076979025526839379978283392047990858063130480586011364690741650749755351973259786914822471797995265979406884208931250182788151769363153483676062398202912786153837448658325026254983898066898727076180928544095277439646126100492104181550104475111101120429656789165222601419185079530196705963028259403688524538511142107703653431622487801040820534659263250261163879232374237325504726293047035765510452555640339141663738965175166515750777450202628376943561876617833163294176903223947255177827829657843677963074398180184667006691757039357118832205780194928401923617388855860939851151734050600175489793344723491397707261896287087177095048959634778484284013621350213851950786586893600395600113689330733511096820641083819816055781312740637343905975417940356447026153308761937869629948716568004771085846402834699468071764848678910874155164237214171787778410472349761384738047491578603067461555682011285223286789689852261861038103689566906402369749467888891154644853923018153925659936744665341140252703159258083748304545838737398030596205806047644950579434331845729687184817251406654073773298088486177255255078542127764806206335579829636826535243941997514782150955253757795341345859405236344229731556209533511343519860187898904806430590124537926150777041001492314379691617861204100335659467979814562586647391534513617774862480741809196998813032877554732320030422288840977318572779285743456701576581211303025812615570395088463543834114355689759937068962318949626803312295612464070517448855638142077895535168395352994153355515677857393223690835993823520911987546146267729265433530259907333967413283163158437549451045764561089661048277093615002040313095005031380250145079469628371184839894338874038906335274252919937085046420916970413682315301747294567243675169479047775017746958376691710573239534949617788013731409022050117625373221922301209271772544184582943708765465405434708196022268672794777338540306754873188096922043553034817143330838402896605577395571323417884040527553874643940046576845236647515524633512387321472293840614772998478176547985642618593771967286245740090028350471338789081176588229650712237376743639759684359568518427012029618247125860312470434740272889864616775097110537501332885947839925958770123785351132300133085986355734068204980805392238579669866745633176951451297637559062419456522303813351809986615376994546080054867783966548641470427338798171610165050748768102299651889976887998658982103055793732978250148792341756159754598064623406051734716819730993608242575228695621335146858510636771098107108450649087310509232416456122115649844878295320383224773882961479110048252353885299744689698707915441959579831358180428223371132940377773125196085216422107178762025086107054454092438505769871312212977107798867871395421495201680666308082890204521393001993820579520871780512654032374781115482052390027989241264524985815398757258153912718363110143030558920646337827990713968834168306335029352795376946997635381345607712665124626226555936296635291140528588824534977062899223924853849481174441538980863659235472564286233914083789200783662222540145086863156396016549952956302088802449570166271750388007630939017639811893545656056018707857579433981006191211207646193967529650868299763551684904938291369931173252155989821016892358801320931037455055988400019444040334358646356150834573370833465825566397175139153616195305344333541880326715319637967351151669746422209543712754522503643635424128782304881626982520930558057498006189275130683133075965202023676161519716608232666780030813137904742764595723340962368869262615784026597038660251842870745130800780693686853510907977798439270242485869006299821602477798764995830604596017646696335846014243523490222402189635537120179257036558244502920679050710475219701703181194221692366213052714591010289905465511706474798091224275388835982792488907254896452114444156068569357610494202530084961561936934943580926372161745658685102164309512577636344733103682778062851823358677113299488600464569113544485632720172415527780932383397948584759075232726773681811027178088627315795790449875458409151012408845277673348135160461734483037821317409971627108520155371710624652299082435183066287533230043342221771858016339128999254918228431551300381962210138067266389069169528882487421443666451927172741061062236012110136768776908713489918821169290154164750734927217792102025801451756349309173828564647412452976815083241089425319040843616725240692512326310666252392573319909905557076608034051693550747114933507209994531680179706107352661110464422576059062833739958763120772865256683817435947917525028010894270759274424534725244038802385045723566794936206824327491502312003218803708320305196674030949393574781089761756136367074060005376347549424564609469166466653864791115298851013609619283356978558998794549809225197379392725995393660267005023190255802168405954793161919953328148953888845028555788146404084996891675824312893330988049080809704235756959005655264211677029489601328241599357354322649535943334176332656497289569750072801031421002681709152184681031907717465931469915388405815467208799746788891456589759251552420464207618361596785437590656071295431185316032412472122907902549613401338176066878771206694874482783025425778993009202972826854879809414881166519315056217158549678222208833065707928195742977626516651366596069354075945599061896984461808940049681057721872386145426856750188701787114802611942442094365595697656677845410399498993649360719496399662564298421970773738979446477720512481091480536486833911421035670887961597990301665449472993111001741145081677118178769269661087861124568688968031250482782266977480220495225908224865833443777412677445089764218326203310873122644778266377435526804860305749297813743558498026443950621500953941314598418515485281574244436246280952873137689613364606645133734438026168213627103221041402724425249650609914786180226905856685713067303600520123579553680354864327161730047767742200556507154259375833589109609079060842982394812495248393843525267369092437106957174819737359031264404948738079579737032088788710027788357071230707269992353401258491207621498266669740791998575288268749249290136885785240678982850308607662730741647436817961020033315533988706744130937663587172307945668007950655341819637397144324933898504043001001190246938006377668062336554884947278998563266248849956640568546057971659655138041619835210620153280976698725307933952432030959860925122893766222891573456269757658657163254332698191075280478458090411468653200487630978585798709914402420236011673918789369197393460577213952327060483533220065406435100176230209277031624731701409911710294981368108890790108862950076859258462380207160912318155871135361471066146672411859423307077469969624804243041972926845652114341114002017014578740431989469437349554435559985000681188588796046526979587464401876285204516530721610333281033716295486463802477407325110205563553741882115039386099720005254612945599901405865959942519623125494300029735987111819006399912340544662853065659242435449794380126181468557060625249858618605538688485050478191581969699581620857099552597972444070494442378580137550983304446618135552239356549036810796058238353720798194731036031497214257885245683769370157663425677910899839245266649382364622948329917932759670912343903724450864134428615712288089185391937744448001879917286861071611471615735698186560851655971838326437217546864388397204991182852073336725051509867368047610997051751584736670647109245711667848611940795094544861018265674553231897578986259619345986504206430315223185460442690012526033585080329927874142930033346598762782744195134944199989844396436425084671871609986407180049152987313627498685863603021629757935185403188116939258501030274378440312052120361441257033061051888416629608320315445843268929469487536728385277388528599938847061348612452432043960812631932624102146495432058395906032165561127661335961293483256446727224907321876335525938206141543601447607021465530024176185722992026007123160477817956414514420017030650650637764061114419594169514829105649849979418170842421616067152992969023477803643771509442083078905352283548849659639161667729495352792629173988830983036638279452052397336462308472328678606560596826721929133564065626003730173870840511684331008532648563697607077186398370423229997079065076708609781348863110158763400840078830290608280480419353862649646545513253945962825367406114944371303397861961876917342851815578018534959144063978368739947878540736988091114410008096109935105107809586166579725839445456139667026189978253918301241318986652884651206258756271727416547641879973051960741762418585821480322857493296621102761169475750449597287271415363760468917934149803906854557281683520123516899197629436069690516047324210024376062611361254147854968997060646706719232028639906760781788410122397072995280029775295713713868111229186188260198083621649890330831536118413705930243351238710772474598894365967354191852804345796761834640840561582748715778874955094877756955573328328063062771767132835695809032165504779263395329574121335882196236854791220684454796218175579502391862018890403284518843307795827207217353168508977490025341086916643868754453960730386978440574681135669951735101823139912014706606550571628176216095238775056936380229888854416714044718940230415184497361006535919537816758673238282821694606169462061979589500657782943957869988347033439305990951928907900177070347682290192356686066292062038244422886236225389996662623492481095464481968125014375446533618159877270011097979473174633424138520819909999309705938530327302315977566227833451304321883791515704352503685091355073042174390090193775988626999011188128263339989314080497806349448225584798683402589419791537904492383138084880164630575490109277328060187576780163807120744791109460732027511714000310166043995283209575008959330778516468268931887406383397952365066026432622824726354113991903766567738787897141223894889805592452990586414229754811959791960204150940834808496933413995216218186442772271284305098536078577583983469338001054456892460958433335527439718570827709311418053645869356034961524951140846085842855912514775989418847388641099842807505644710579925515915323578677082151549953000529373254105880343062539469687861763214132554368727708615692275064288071467811342877244236148382289649157409979357220117645609302902800339791755173676093370175271577434831238882667846816570473303538603689930796424067488236059325981487960788946624419169126560164216570339575441777635248473385443762493890268460397362213687227248387783045604813153134353684697018843748698380907957233384241311076081558505410365600045453640854172839763884225181880869048464697104443472390132313174735243411760478699554279279833831093507643998060218441152992116505290046154693777841941466745850159609331076612414862006734971332457832531473051394231445758270864862864698354923010522660909347336549497329779355802860985846467085491049461461664579894250566589096397350742322808802349276926462696574344459651416433269159038093337821953683543693013082124052063469699095661530511679710620060824824306962514459453097135682197865863059473483655559955307961691858160913990610051514226529939565020604420732684144420333351928218567742561759019717794298720371178602691635441568545572529264534068590159247016851491954175005169159295862570388395000773714049575290637166802521724458819101078131614500904262149606619508214063377944809769059961181658778447301748906035204910821170214352347641211284515882846954899564058551501440343948919221248932117574020800542100580300517004972422494307219088567534325480648725140930517883132585082034049957234795868539703727056559659736851936244878374280056467290866953535147826557604578679229596800266038479694417964915862844662493437131531803058846902579664568818218251591973635493783831867444733791598076149721211077880322198540129738387850135185573328012723328235615844067953985309764276688804582542435866408819579447061203044649615371280929364675859147898585942291039193860892083162366318748385545331222354367678344231170348792611916402567967693475714584029474274693469176189547073861368715568522606886787485283786776227970053540655238951437947740381627251445708436080094970817911422037919611012446443849284139551201874466781049788758188493158505322031461654984595279298715934701854094381130826631874666094596034277561305472848716538667768213328562919899936667626877472414233221081088537574248387478845067766791893645460237721855000653245327504205474951950855452981769574050942178553902321090195638074408696151453468441686201008181838923467067837178341137661089247463286347406852492927244387245968624094948020780376644194151418289113974225649951103582135094438326772177145157448465468212791626234872392285536741059122808208480884861215168429796262355115253291176940404941786892382800750565996845073652832885792831244700830514433686370828604980635766569315759038138055160432886127608598628613633299565176102450569930338927060275825772215129992073552659279959292834507351843310624564466707329676310183576982218158567056807100839898063661306984671154299175612914190315699495730516358478780646584473254925165925793028198860667432236144977529295139286282202600534888464648115428007893107115669748593704092427175126975596974035707999712753166644314967032961120029271085090131427354500921186816774881223772553939334001298971392326764740870360544296462612443261822076655693146688448771134062855865869635816103753189605682955012451274991815143986478147766414898623665350985345399064614649942491526959176904628729895449537140947905606793954452020463022263081019250327031456823302323041969175627879599372155130324018956160111743180709506886877363436215998355219928085532698001569095026700200686671238434424062020085237245502821875300171324621099663518171248317867084252367566025302038321223944714772034722011533424741027635335771939985576635564752013886949426552737933330394788198906018382341306861666591660815452079497769844497727342486326907424348388463748660571878876317902504444649354782452873867727505945408780569572406788894505712082742181953045318970677139257463795228029159871643238554306623435861354365962653504606838521838700024985346401297833061981381632076123794214405602773520428108306040024056827407655440234139735241726692575265578089061348226410260410182869319689133220537608474038002739608249506083545818416641536805272703293194475991156179607717879917235372702755355294543190957267982722632576521792018229495618130968943256086233148195586795876016493472952570809578956951825451152666871105323824422377955830983021119448245580001967889705292649068686727264992145808330402600537167066412864462282212881749255358966699134136510548799038033101754133200069713285130519190276617880871516735774694109161503054608499760266953491231028161943947409159361944965087003790795827049712744786299625020739195347189460892055781812487353312844369885439524151873959892461840365564566575704608097141866806095073928447676550832226472210052938450429145485430938021811321682355186168102916221930757710739904393825144977123973278398381662347715820277675332471555000282567820654874014749093934427966958438635610090268128937522244205491372310065948320778040794277550698186019930933458272547002929568654491926539487259795303135636012211832183490836402082355480251242712105842073553773808901036117663277994806344866163858133820123599049085734145772850573011143037946543928139567167167997484587713459669992547301858843986501725852857469987781319835183272870664584640074863168428652135530384001575660845905766222984584793829562798076449908995797207495920715237901108777010341310100163152530086610140070563249844570239135873793961232650041489816369250347426744062070665271481991685181113022533506262197491369905923601373007279490089375278775577689775749481850659974906804237234053750934890835416584141787005954073076189491512115476374824053652611222192045815860692456236074788821393938542909387890333618121336773782259033355655288875632745809641830873909832106157908081586111857396275805836409375741302224947973542238221767819068808791820126850873959673574151406398273945857040023346064891289148431516251253193897514842544582574138793195480092329909578296969841934338909935231950866249872787913338315357960320110719450334299396872771549092612367279965154373558007751886344742684718922915554502047148484957765348326379198588696184873378562317105529073015293178239818266712424121828914528968054700276967892503782137605702036001137701463649281387419507763932506917137389531012927522184290691041704737274235598938457670849302775995944380722444606018179112427182772341418614790353473478742817346164861577192541319908309584956955525783362036153911426737831863295753163520383219045895278718041080123352325590180308186737376890407983654738186221549625074962905771124460636714577814301342761187661762270533577325372088852288180235167610709893913779006432833156986865053238597727698201569352130444400864601856582987752044984029788006374278790810656334045395670091821510816580123405240429584137623775571111121296644069148504354364275144183985577432268745746469279020342673885411249881410983906064018652294619446831778314021697978630847269851317013480944133424138511308657952487226080413763097939350340796516861628754344840781740481767835893469120057722421471059360904972456897151480887424308948559121195697975456213852657910359411393296730475957648472164668150595283270151919464546620171997867540437463320722470681768604760332582803995920821555720828804500870240457358723472063968272557270948444719025368447631077473794390579585094582767321797528144741945459407266954373424747765968987825023724750840702972024432861809645415808856094656251463432603794350761192810140888142116526220708756398102897287874729717992790037452041151712886028043824852598950948336782912170344705241028505200398872745341414637343220132618699966964869124466967832197079888686721817477526883993215963546901486552954879641950020604481975011604462100524166792517455185334787175690173235740523779056353924000702324187872813440913022529392509020751420985362282010833088996527059049694849790772291805507614446867124377985625410968523099809207090501104899094825717877362058261194265846409983959032155821465311758294580658048885826139050926163663700583787043877141089897260406381114432106549704873766317712975306072916863758026087723954303423019527230395814813557780772915188789229824584874939835765830060775610604474693311162857516677554089231744165150485043185728988399049694452932642311301471989982576849898442787015454734585086721845998529504320721142212409407936935350310211006778999521206967961108518904001622623923790633462176113165963701657298200062467845139097838526535336223780468895875020549662246882153024068991134229037718151514088431952814369431586905579531797236472580200157597808967160339449850141847758732507063330931724063403438417948077243110926846262579178511131455686165916503502655587786132902223701689294937533594135844579729805437978629454779831620639091827253872409759350017136287679212524170862316342652757875703888369409880725224112170196340384902863593801416564903895244261595403575572601704568474676037036759409690966308127923895208840421982515075018562710748252543547506312482814695448092549846241981013939348796404703161158772170840021670896254734582891668611343772439769663596604170060298348633417879128908348359705034248107537983822999953783434039343767284581006938521313612343993341308517094844907446094345832282836532835384280422976939984637242428256533260677089778187337770521580288275401043366682197478222065684185018916447494219707217249176179730437431125424333159327008664210903139779979512554170035426438252902054284517602915436226289975302448647821795926898210119649316064725721388441135645506107894984730704741036895036555747686679468582211093068527772823046190021293834458904295176150387956959742132548921459954170428284019157119940992294726050631959338589111022018096874293525949770886288977756974455740860698793146657774287103775081479070411155241511136415173780104869997139448023320351002779393859048995018716012566958277858530091235713740736347533832358799751072750589727283901376356845963304555483577531383010584039812365062133086436437987844149203752990398925378365085642836659223539848035764738106165729737521743164531399660169332919175949415647777687140682867848461018009796744159426704961590350446062053420615551054614700869728012195750593167985422540111024334621348977575833118080607827369010729957340706312195444826791160566418433112488735663142292504445369862010170476421611020592657129358337401783347567900038697238936500075992148018530094425213195475956509468938953811939301008310473008834416740455841100308929212511440986651582234532119926746319844369596000638816824167468392825617992711140511539407691562946297556896743215979129650335017346897742373686493108685777149994522250662365686482956993584564428719565786165180078280440880665706490407171776632461117186131863272679053939838939225942171829476958241016780450919305427098911558809199736978579431231299326256934707047207432693007355737652852457133769787872198337352053172802287049422278459470622495740857543469294515588301130634919252600490777268608011542552171543211246951259196566567789379018796198760659942424291077207863548085859985725230253013210605847360556499231924117558557722356520511173688165414246762775375424997560626988310018063099548541898542230675951965283354108640633901030821534349498871857491505189259184005730581484327236909017552879570926762378542904927107932846519378396678352166657855041616854020683105160007094258971691112749939561773108098924086750190111815110413743802566533390305620298384164705091430087519698478426313293962028795988575071237787250187654667785980031546211356227402341313037399786837435671310147764300098310400402593485257095203822671285295291030325210624817491892333779387893921878432839157339419276158540366567081590037032318112923372194670898292527344612533960088024364789455550258673181606895606789953914536412018347757309855918854915120583831302809284742313773873197678238885864417142807307974260851224335948497972902337812834981897498054716763943387604140235709073654199069811707617182446821374689554551942614770072765248525681566497179322910492925082007696235445860778454354248843528559217757763584126020156966517362939419157215387001807524070883317485201137068842520101306837302444373225109504753826541215952425219761897096516575439546322855876124511782441839964835749428493606655394268427048874126547687157202178406096055780724474849890954174126070706529944638585642798327333884337722044024247222852632665288150523153187138449179834602929521438969696535064996541214673672909738685650550686722988778180727983797939606353195807033401883885109557183379262780969007282073736202291665983141353747427147719398709468066873254567801633779083391600883598347747979869992899712672724937584423932192736504727507335550852203569682427646330100927623769409718794536913369865712084973320501196177217223184953515272027954884142921928827330402426500002771110191197927459864994524746241193154681821426168459000633111843729595057442585333960408615234189821936257738112579173206394641558332995129499012198357421425867695453294287090526386010707578878782477329880070030656419011373444467001438774869013512628095662782455334943429264906320411291859794433287149502116712511329223767395646235947709660062909077848482204837277750058906711913639768691978482469373768316189949716038947314548861548854757407216378261767649252957493630147449864233353567714214087014114166106227988479306676318697663476950444864452202147721298472132851845768837764931633023639573503522245261870421275791765208562941115688173418050970635481754789484621110587550754536243038208798659046301457062043186046026906795558542180292421408797046137252613125782418540449138970404328939344391042586478519570099999806378609257282195284044837073518778234937166088783630145745849123437929759775570138118081804393559677026052500104890055088703469849485236243965520060745798996340296738246021896913492913246753116361607321748323702099192524479982355414400069673621385534156630667568164605030914755432099077728401023312727536228295519592323986504911816081765946009024634540102587281829685936796512792921592303535759266607513821993480284383192511455907401460162032108752228919167499494055607475216099592890609514232753906126381637459838909953698129867581880661555189822986871198892502829400972412824445607282150523370573568089846672984949039107825961556446778986370901081018607787170796218292032472128350823162257534044195407001198655037259415378249274238189181820172784482551194297363334515761902780764983581758528667773142731277131204093783167667890809314945217428770705060160778229642512591200509883619510956002031229069171344546834312907666551903667236373076723900392122517267837522457382530826613566581123358917201646397231734962349374187264019262733843719820921124001660806152036804339968724120969171568049984876914528846563873419386731412586023889592442555322522381739479539817356969884755001398748962138889468759449498479373038296012687782795520850974826112800635791633775480000781677546207459196706223403461021227881760334164464620236768664582136709829178286080029645368016836049331742032089069478106677667245006427781173200698904552005346787152085999239034387516239606319385468309820673189162805102477392154944258718290616573007215609890934232045999980416212137617642270897305256767444511935490534085260480211471287944641207229270637743768137980162391282560214766797496452512500412052531523315226354103453597197033523916295560431606890510187373510344621101005084067945809892710370801908844016072116775004999245863821424687418922415395794261761551801745763090673225873863806502904472170949592360765639086319156469989249583868217989173541908342271742692659713120470983525979855737679394494518678500780406968197861253036192661788638652731809845233344235764929531800770373352668049585760807083106836843196256106833342559197945584407526111077087452372642827190693759717968102434498424963789715124397960233308866426631639072097987455528172515844283239596442154033088085219184992697966206936046028778453352349908746085239715537134677353933670088769777595010859403812051476159474364229824289808564646366719796251791010675636813961216943983258955967129580724338213141391140034673870653253420634849621980300275222451853734844420857139876607642283330589559265038857729508788970118607572785289481769665706222822843909236278810113531872514736491132160008950796409397128638993451519126796242074381661035610387173199308919522488225821067750502832850601448238948884395407257135665080688648472215970335036666296386548136442444148111003987307225759703238628550069497894851217697635479314742765664221905102732388822452774999987379583399671819378555326253577191786857068425817122129989320387596724100128466880774536028743014694873711554090424296891176879240545109148602968777974636726065798783428992704336964839645544687355377301911673962046431428255818842722126972166950359278176186926271914538315908454533992729500717820757384041610067368565751950556447315868555367127715270971941122623736085584920580977059121534022253424249071279636095681131635143256022281916150027264374556920823407212622701342632975828982897207146366036101517843884861047864164599848527502379604234709870709627378181272861387033216210492435946602788247608467086128800778567882067877764526176711132073489680566596547819605517470868242469162262993593530153446550501462097204800065373191665042445801053019572039731102134177180562598797365811945863633602751829380507229220681704708148172199397834192494205234708533297907440111611568510426919132196813751887724940614755434331175914804314554498490891449968815447159666963155082915719193074950915708843560971632477027751933745272899481929774421790598008310323576056247334120391017213270420478641828581415462419595682117764535745603208760672880641572269361126792210652517572925163875982268360125449152860024009107962167112051096919738551614845030694606545588720517104818602878111889202056674611675161543230704560443950253656012115871583537163790039638182265308749271142406680020779998577166030459970710430649149685501556218088040475609570446728718653210170304310174731035091617512888960073156957514216167738353726565517277869417357225082622643277064621889707532228401229973316607491775148575639802970899380079985923596077118858536627586211871921403472260405865608383052251234210257580879394566551295478325059080308379864542692307400116406398816373754080791015116229995328535108690138416934292564803618945363669527198737602392333490858088950389461254581539951031080935139051961532472474243926020378991960297046356147724463746183721165774993993204810115633495274523003051482893469536711597578147031607488269758523952196474517494850628645431345254512142372742125423683088935614805909469020661430830937347401789668307419248444829661373078308135454567645189932134974911664972650028246304791741745018581843628948262747410033564094751211369407331862531268790264611248071411534466637589999586524690217760113576085641242969392222897584310924644222609136731940862631214450521143379569853866059199269392383671837770284587824578979872153576507142487136525696695449236148677982491315470238021814138728959959213031049060532545287489995890238345863502582240455364183931792945044466837006610355621075992363910279242961559770200621602613725843738333036730551883469533287525225775833029666079828331358385341314149151832528684855666807024838088518656481490829280461823417162581107187891465547846993372647514139913065278812682235657775231678945572922612234568282667562183488004428728165223258524386371220469502399986180474340846428209346413595284399755853729556608710592239857923783104288874953426267441512914613095126164886184275187967739025788908475481330101426932157802805031345612538750665772191417448319539945519512283483567498615038480453914802891016747659173519760065945411585677127478585317001505514093228229163428084376701233520108526038395717372927409191898821444327144624373022925424428054892687455676563324259089626342864429018868882403117404102611193759998304874746053202676726533745932626632683875341620881730045580227174790506748748724473506222825717530024513941921063494058322384783367179127308588777420307046214969186697798221799945465638014013591614531534056047439294978213180503078436894644122797239547339046765880193020899469160495758854586590570718472657528356244552917484136155612822039307213527312316119607828857383795903557450718283741844057016653391161521742170889008767092115289552976476643248645528534778150083605143926351675424589333822250966550553883977590659064039103345814592989106203333884504589563541527591223097215030045917201023740527979983634002006156468991748259967201355999427853199649701064704043051331487987560163134233997978895315466547792479879106740174188608643176629796764975560592939884576822174665498269733088699248373686180784780960081723919231811315521137164745269305474600039930539314157028910433223262391203044249418225725339929737466920095063452239082850579292203062912603268290087700444836794592913014439392408272482900641252798212045398724772474307868191323487641201138161346426685566050450076962391530650937472194408548066516069170590708602235152859861287370043444151926854879546461442516849141650673953546842040075848698528485752400221242488210088616771378287106557061827137963893487901319184373042234657209417656062284270881364024440221174028864232944122567059899425698868711748274477002541485275412572382268035490631982845349187193887221412887745225586792563996327824664473735598706420006862671520401495148662716100005826852702881985298251709553637210391354007121461247753873358499390391712644075918379567698813740942944702563703329880986712174196436880326462132734000953354178790127939097886532077676848785605636896176813458528643932158731517535360378884676270076356180704948167546403284819632169368325502829271289982693148302477649728658967145093192118712447872656471764189378360632121170282398782731900034063569497306477401966046021958115441438716316635640214934670961482552485900086025751421902350056356532949402883060565105353398891053493397782998908809937988644546142246917626099728437576568190460407190226264423878814892820202984832807673974357381562576095795084430114165389205576970865216926442310237149090730073389368947405389285044719075378454172037493135127157938575431880713732559228171628823633853244104036906162280651386328152261333562389916796371882859532937567951921140020929416434730935727244916364867669380529075260558174911017267879504433159208792591717152876954119550950086660114668203755599633820260071883024189878008490482038607285306200217415874625363878625387687147105051824435108827686217627339690214853624990327498685511942388982391212610540969309859599035263091940196930389456194865529072208635022835368971453349162634035300491812542255599112310791411146189334596763168940036762012439319583432124243833457194782734514629113531911466353483076333647991166065647006390676073175817133584420317357938504312704269124304064523441314369903102605666935599127725791565517561652310714344683564802541427379104981603662695478477677810541027171071213548292121554746615383906750761688743981210265877727033577584648105614089766722515184646880545105472355390172591662824432806442981754981541581969566765226994157770047545695516392077359006117843238878384612268702394192161103943495816673592548958052465630346170488532723337553674308823792613462962701217169796334493839906605666053042755503729424215317705257033319223722568919839453281202602034766588754997385252079137444491138992192159148519201018673296366835403964407137371334921836621810980312320661342064658154214936253123361302345294590190057361501629600778690104068741626763297770577091383494823755718234339550799938415543156233578285561377313460093589252014637389359186983241920061923144850189541895027651951697468569531436747686789525067241276960654866829848165159289880469245566955628147391868109872238873041322799896848725576892027674573515181172923247744892416895534355620614223669952534681374998455025159439289395477519937303555112734376665825376456187633661934488439417672084307176665511428173182010556666575277862774342810456015165166304615501736797865998739152190822809237497568536511893448125086462494401039225103956279389890828741282547898476422344890107079099135718139392513090454000164582901677419200289731452195769992727189925657266789524089838070394660415523040727763159209674924313087053575680547672585966255721004519597547311210121151433487873028959754376696413762257289054122971897349500008457232775563564577771615829516430108235007188305923742297166727560641595658695464176148273718650696846250282881150341585715722981748060094842098503080581297095638578161003506430648477292152310843681882152205689358825522651503994515630394604143650972893024508650536872338589688141062286662779523774932183785966241368394860180957207700494531020260813612564690882123430135979283646348828979531572671720069416369512761463069544374913316577146880270257202357825166519157254253258872720133009997826116114853775657058999876580370395084698287799961132594730521875117204311610682202675950063723898023483615674871456136267538870489576575268063572973603708386975409451414282836206170275361778412670073486697483356972745410892243423045057163248304408739431863878679861234417174165114958083087515545774323785741485884722849447961178017773127555039420119918236171488017389655977333492184051871593081380779364388847462786293174983154847749892836248467831209303657653510770555332956975740280978024412492475214752093436628228880913279945945136668134062868156155024454619035289111271205222099062787270124665462091896820370234116834134058570757654099052598372423684476646055205162785538038840431089331009710740596179874507904324295957724193048069305918661590243062630286393489098217283123915981164246368684705869346119287139093809682672784368019077330692974060707224429059540711940279568320980270282972651915461174574260601211937866269528501205420830661990536191551535151224542981065144695543161980085718544012754839148772224593046257747522246434229167225885865383274048431192445447350058260986821787037133203182540925058449918934023973001638175375183160321757506512922382058674807457075510285312959000625427107859349708523352020036377551004023969733770095189986957921439909115612595270163264826647571769136720793446384723735992397161573547598735053973217820028658642671413055553295916088293081227741683583781385764858057045388957713226272657829944852726397678580288745776733492631361549085599206314654425367106031948604194915787387826025957704996895177174472128038315814966244729337037508876876495384558839108153148722464088545977468222468969095604743556938770503487889498115357247152184525072720572631901904199351476674998483312999506735738259383364856570218627518765373864808231387077722508689568319646273325219737086491939492408071978456173050821251106496843822547381339886697924121771191197594684422031015639675771500222445713012688626533553336488850466858685928485308832667028826240925802627323004844885659404485806244639038773168404923253581024044124907886652650078211056160207923402752180729311299001209228605222152414080283924109546434161012880162223121023138306687522236372191729565635875941535540130842131416709398493073597825840926425563816260109400330851174238170054005222782441120593626364542830379501637270087302525051955651400870760686000224586390285048789710564830626636670878041819014237433933587669988051639374287524607670358786056794257771294178429968430953636943852417762827334466706471510878952546272317783256323398181543226941299420376220066698601085221707602799778439472856472953427280949320824509546825173279133612677641005321262028011100952638001674895678643690987494417894249479838945321383978612186213441039384563025847510734517865482939658933865569875434837391637837398602594960534471224791009340208726044849962576095421120734360276363526327570550682591834178077270492704055472016337068644856245237696595697746649361105794543240631691468410204583097173779244695194005659171546865767412060271381032096596917032196039239934457944627314979815516877824773812163174476269362306960938306777657264645198699754553066122575452257279196070269545243576270545681676259673416611807273473543894906866418253536353399349223573446460149320988550334388149196484135131992778766825508371107448392397625561813718742409292247364303909470387163937995118821695305454062552473314955410151148792401976750129281831329069745314698766766194139742786108519619757031449571168913953506624387307275961097043022128530402567322657176920869389878496918266511044567915325546815621435979043584076071878207995450151905441786729934873892192774233937710840327726653046452294335283789779298885265640278054285094695704050277012755191311948484981671888928044891707620813338766515669187480807019262351364385198801779349770861062618794441026833294740531643774740522183179664688810041668321494310693389592831931801876051924643158772786297933258279504270388221994545180215838601944705007110842667163881156721332542659541377041232023597395938718447517940802328115065583847299332994456494663807072281185067793061901220873355090245699561456761448284764346362190138129483352543670608280639241479454842107299936602552089882277874152437313138134330251475822676450308848359774154000222203948088810398612981541933579736593794677491862670401376483695941719200705672047182469896845445057523043951288807921466361262424857870791901773895714790938795607379664055661628445106415534756435893329990262226616112362177740692050219876107862585584913800747189130402335512830340212097044675943456735150680192752148718985381393750779058060067913715965700835377432262580855784841095329999117787158365199673305891732892703721622066465552790990617556079939872724542515814967563129846978303798102268060816979917705274158628769297452826159412055908089063332277860207056316913734238863527685798625851501048853143240777649005667860167474005800380239374773589078896117586631264885104056474417137605709607102855682370559763050646360563317465470112801863844235821006137323908583775701031603616342670252447585512939432299782912099805961872532096346061549924065132284663177008859891253151125212075323744452717520299335440182902580861877271872479992482086527539843020217405919550539476082509712261133660552713531787474323468652153563409855040348067387071757796596900139885054102468863370345279816460455582452726928657595564609401269084356725580070836517802939360951865482095011050472753875960241869348709713154316113415131906282455435709169566884531959082890295621605319934547022136911161303058057285484132950034398560031398372163080325684006456186350645347063125080927302307651445459505388734142798961475822582778359908265065671415412735257999375455638356841328108767081532445552270410606088272727911729138172735782222318846164798617851676043066613320910438995786871029229931539080020957630996774314581085076489564916615159456812154545145992949177069755253444801286809879298228169656631365228759150437121655169724858225810793630274334225755403105185894775805988734331747544905804462936834030865641238804968118378877332289422183693465656775681420316747004781379601800833831897553855863074383843244604773432085320342983620410967525203402295645124637189979332041657568330510275849149848764032917125283170990152459634112684318324430489731090463821155083715398754885410801449599983845845513395347241288819464021317498854900361722620552848451567829818564579094070063319612146825834447281668749218373994283622696266019384709513624239307877806793692421195325175921121079960584220593831494381225910179683222732176346838063473691256770799743321554223420971938275486254319943297402588250558930263856131169597273148399374365589233690161175463649589684043155374857918028358523767166604155989117932611141480568762026987539961125472222737702378091472294738419976454170264208784561590819434324329214053735516256737929937580399939549138645785099006075680761225144826867159950434146265001136777802754631684045379456554945765794532376442206025468848049668451202683782239941863484286955713631493401408452086456753758306496291552789632208836258181382164633591348808949835072866045094774804187576871679578245861017167890653928529744253386794809545743201699882165881538727013385009175100176287890584879143781705438975788478842373907100687055129582245304819128208633354969226757348472961418704218933844549273311610364650731317515240467184692179021834603685487049105110792461665574137875497277784027240949196184602235335959368950129703962834907557029566548866013480774091009586861538475584689403368410949038886866121940125143369220620444402129506188895686844503076797439342570892345816832372743527047621099055459293188405311201281224815938732891412877883598254583319118177131532415513908653664609574969553290644814876871700594272169735693646963150908373667019757525102901439579969411717280972497718983716862143004855605828762004714205992749410889895729513462074834997938803821415706135791019117682668060247029283635809646378354607829230541295014943747160017490577242689573596046361973595629468791192170419988273985311816827030589579074742144195164416586928025344599598738221478079094672135950164077143303727621263314517228841837637107307936659646016223109308542805702691289254022575146573961374926563098477024074441439933255387532622129040896704826101436767530517466424338431760208869614213436835272560073892153239475106099848152863351026458444357959968033840640070475125179538341878453554521219727028578804582350194248869414593287085860855640209612084783765899140787897814889142893732116214077328114547681187045691849408670714010321340862545799949283315487265315248881930455936339816875029364939309676325630425486886633235865197883060148211250408603767968769989587232234897647615709146410686786658508461297237695091610032001382137164363845697538587490871419663005532212238313824019882315317564344237994659934585271411419864694908749280866284656618747697308514305969076496340278203627853639004875899148160300012611129938101812413861197580187160362232391607637332276581139271633006251859121161069503900146259772100016453821985503310653797476436565348878809223529060658870786911514134286480809348916764794860688651849308503562294288171607298672685134854556606686191796245727682034292184952445108412314955905147213517938182224490181231188243130392645499766762138036447421847591251475647361738308505026936742292519284956298494791400149940824574950889083692551477166131754841408994401389207188691134785119926536208345954420658474654157953288450573236406814213686903714201936475740902876060921096554694208775358838356626623149314799286429061270298342772821318107681362683580607079026486654368869494554306369915680128250662587407925789351738111070440615240043211354029218333479756931849720996896016654256744660456919319278371165124509541811063505412552582599337901374273704359518571097956901122046738354530108797124994558128589952208183852571760836234630044108792037756120284698141115762512677290911044265079925758886176532370082153748385376056202706046305010539612346645745771328298438647856411610852672044391488756690373642938971764141255818488786183991080975663404693032626073119010659925492733436234233577629163514539356221844096026204861278779901645986940154599274939817555098666104443841103311816598041919222409333035719542951219550985065111391262958134202156338979517042636088743962398546033479172975136384823854941309885817208870885685162195616347322046150553839672025455194243850924023503317784980239624244963141683761924583002764072966413149167293087310075636893950715349319539831759121980504379070612212930148152209742025140055884233588057529641684875711328638137434820047623237173958877439565337235638068600958438922966627060602230154585375133095900179757657959069270335669393923331826048236743219690060074249572897176353236534328265283514781951765540351348129125093106094642323934211102716263587806839621106662836567302255088813011170133750132256865139119456490755297490738542085165581375772318219997409225870058923834625964467515702485150237109824308412924027726968222231391234444536664542467762889648648129254589278135580875888637289093275078817541491155256235486650331342504620893316184278547059778951042667295241648360610672362646435868379159105651789231521797752930918278766323621196448610954797408290505138581188102538458516619183479409117977127178875593169146737087178641540391062266340457947946332053999689046972890260956354248611097128169842659450833983131519725991635216272210247366992091266890314272214452592255188297278127957963685622238666500438370261235905556028786599442721956499556653199202093435304416820888940678219407576043722140777600164251338004858675243888744516336848861790658438772243407698157455649185777084831168434151754237663005973686862366656381280588778876535916678507236615147790897541133804352472239905839611609154850023321743382646547989881136216675364111870523018746910905652295459604645159459968847930596381815451334533500949768907147121814616894811764421587221902313394066627330964173773590343081377488281977156190114996667063551992556870066835035993761696790894677630390372211061240054865676178280753172650483289132074599449718497403779760650764311393550183916595501715954377243230601342675777334573393197106148906860102277124176433888486909805455602616085588621904216163458222511952439749270188163320869522849563898080586881844614125332910869157411604562208552581303660875761191662529892604588650148963152859075918256116679268114503566332983769754309040434181499153213450746448916131042501811911100896653334219272912948899973760829364060718364883109886196198226724779326014069351818291715521784915371311948526714900799485726788261830683575864938757726903670179872005462069550662524178453393174818474123181879300375347730263998951067712018203373903397849642220250604070344737939605705584975397804718921793867606363257718805959600590209534828402133616002046297379674607490910967998296767631479604071074346274614717134418415928696805902687195387995407561130837731777863810376001597877068694639176172067275026126133665734915597128417194406610736938425559396954347197555525272431581046978842712851253618627600990825715205709093806876147121788496632848678475467019756544300445146492929515212388214865298302639854727112005417747020885266169664889672160236904074478703953977069449612073175275482649327356768808021988383625903791321004738495150901033436977490627122191146044309242619421639134291462292195995648852836660619690550017189544568796776738210851349517166957867235982543569535130904466368626389967618186284157187761568590898017775025268348336222809921069837364389271765655504528590414260799014376195246562496444010237427978116464936226589307351491325322698272007982590236709316863170557625058497310662174196489658244029923243399886793749847493262215975445471675990740175804892266254305145689440295326251455072533297298218173437100766876230717821822427967453468507172813821055329024661023811946044756517037990735219319836984083132388047947294240384142799030831185097089610234520179081027743574080133078607979977847372272346530930393515474704578779589419914126471506407535745721685781005845657885995183614401514306340463569008798850538861750745578927155201198175274844941111613357737620383388030716183737934826362514628886131559561009026190172321077488221018715410904735018294710642428789507212124228245641992019972402019474508212077719862623774281176733202641856365057372128300761545656852378592393121059418666041829283764856310131504477778392878641703612564562174751275730313279422024995349396051829509426367171505345310303186812844201550604001601945521627290828861284927320655668940009812007465729288154342478579115014972688225409705463620023802243488051751166318004168995074456589144030276169624143196160873567222800503800819176106463525597718462996960462106569768093239519720087738494802500719361827469519963519951564802846777075778700262483872663623450008983495840536667345799990038694447838958027795206979063574682266868458196465575245945748921782091643016113488450799087324200638608328572617689672949678203697725231875226898655111082640649264424719731802958902843666595721813052899113270069474336920085914490219712889938952605777358229732817034279241397372755681692269327283495133376246719287293813265454495338986865378194737341729913224835444988311360354896736206636129651851945045388412646498556858116684739802400523297160032828578279896993232268318075737767550107856715620113137297297988376252201065186983500675044113425237686544644509752295657615753981994166253556111313526642791901954638375197037210529580807734738462934579467752321795106383289181012913199935076418326770350361974282681327714616354813547370871180535175582138515814256828466702326006063780543311772117498057173392279226011648757671946067486273535069777273702544957852466269280934103452607922417848326528685620043420087232191920449414923660629442023188570961150426598073748987426858973141201984934992445570462679236482852852381281785146056713313961949777785304662069815072507726858504148498985650554062750662268383662984216439699693787158697633340891890098710593422167494960847424510182386880977749812264582520897673219025867808950911228901939294825249410701001484211105265299682143421335345329739744149394898408698744669673496940746315332650310258639310238861682626236478420255323510247457890730596070102548139739135683579845947556301714445222585445135054459616491535289324033836357613016578986941846626489640344978054980333161571059775609853665554761529650198664872055287288958617843670522026622598387457238346425508492316152491318435638478131127801322928246708180948477650279331623710366576825137436508877438358053835923065407662483259414991012678985584420669954571499869095869028592244767390099440778549481342060861966212123135392793136524451914007151954533038587579626651389725802843220234886453440603421616152446428662995893941080305988449693297977002341859188729029358680837153022115603153712023719491523969874912074879252394211751921558444835409362841736261889169721758651414675247254077598169339187678557620073717213755333522176061828696040137513132808668803601386879149939233315199526075343964225141308921773731153139143034458792807658510597782260385922058129283747440525577369838615813467851053262724012580902637088771285430319595018681246564015713253748380328109275147619482274616635653367984385056077004543995869265991638327076244481225888941576304647527172041361149705970585209354014324116971622716235307310205128006151339076900639141115916885089091493407404719002630825816437827015165933362288657759976517534706405840092267218116580030076552238060484327380676792488761579927043122637056243115170597686186832540841516097061251452412530337766478579465144618855525283610879126302430298122321384873445742260767743522607118767255932688173057865192521509316007718955304663035552913815759559774302717653047281433059493239449469682114710376958609098354337874977016334155706429592326674102013687525669532913737420935364120702410035409302206723350261907098293283208895453922395633749846183749808551701866482525656348444993515015110136524630026890074794407665359321564494944117697150892914995714371076720822258806898576344661140385124585747368323785025750162239494111086750565985012788240361019037296716867073664644908040642484004084283186545112206553301004468922389059306837771265436221398765545017868810015154027668396620254450962974065463504007752011091108705972879569642062226206421789581347172068413162644537320084243652456402173642365374036743967507880498693026164451576885266505499984125954457702259508955607943944701420474492885629014999593930383792838262900278690105756161221152602709798751673523765991569084281446670763971039081235351670296516458102119491847914399345449975168264159846709255641111113130223398558237258755640401124768309923665560505078410113710576653072684385579870168745580839002762672092877615751623470479030261060046832809699132787115185915925461483507345951748993077622397147558076796335895989615027486996294398578020442924550095465985378565599612471650891791659356027056003503421401095005559674294416946541448813580891409692235999852503929681297466686422331360032105208198410417576103358816175804242242881382040004342700564678110467976681490756788833424002410597383192496896599917662078658395720647777984049853287938380635992654419773265626202986352342809801438105053882253095772905727794903322539086734254439349737614769481715204275421483373687250889844873211054797471938639096336706168286376409987161069744930497252659321867126078091948132058375939895618197766072380981648478266174861405256298542179797779623181149523933214064488486346508453446554982613936494111150460003298997049937513350333247104446278749678481880083247209883414299775333367568397308602178881721872843420849168504648791616028667201786456980599976353817644053828270374941274138584651525930450477910032955951331889264031031367041425100560437702150032847983994350262362478625968576729324602448939164478219918367497222656183209011955500539612005618654043166276874986838188066829647042077809590408497512285726385801145038359772620008527649774821823427133024485681486324965371819555863047926013981388574474644721915432414895764725895945820237043970465287417154483550049027662486786367966618894408220607596846499851347802913829713761917997449423389821909322031638095357933323543527463195288631974868460426986620939071604490924616640539834926160567977621759838195554409307411080664254236803809221187566400048669314510757969112272408044176520040508426681722257784533285037042505289740362109131277203363022724290618367485865221321719699056680132299321418933888682154314191347110508065637885228718559423129039168014339584096746783710760748782593786487871452469017709770679184763020256621792532339099806443556412524590690199874606526169362103162712547708944678056129728951116668697982452910592868548129630706657665661263557516385216249885924533224171919253794733300982975374108776012945166406947963794630631365708703905518687827041582970182520218974805596059595431813701690493062703679569910432665823192157222753033942467091164927941314112232779597607736798922730110842071281135046274507947771418093064512454626041460842869939754580211241394551586130093219279229662259580444404373351882952494771939661412303334819926491726624304423089540717534594696348131220301664039236798126772630668864249054285893582737457665815443196587949610203329587722529273525091482380133871632091391525467243704341613712933625212149329382544482127376958770408288667982422744255392935181971440218895721041713561860994430109934669708752674269811537578839417243997437069768381999594004705314325837237429317088489874395092250311495791403315626512348884414669001886669483487103629116862457195865041806792032870073846018906342696604445597586007436986898026516099901573317241288256372258686632363629851427165399357713497977586402152520095530971961431638698610488926111699800409794512868441994707128598040710431529321951458779687363092322602620161519735959530752033428510015720853177526239304481547967979812995163952846301839677377138705461130247675805116383433994124451778658352442481638845324646990446870120241950991427705088490559499246682118333256128470237749266599922469805910083768911745971232012333098863979252699907519782640820358558124649584083333847713362337017484002321756563708954972917705150888977311465927899819181056901301383575797867868201680409023384720286978092106115433681790884036697889477035369877345853656493568965525997524318269932729009677936280009437140066352690757050907856153569179765244767475557761319019306396277726145933939098429283495538676683997364464463335543556659472613984941436146740014049170684932044555763787080754029763137784270896488380327437297778748021489107427305895715600066861010434186388783164695107200244303009965463266162924225895026392450831040964532003806806278726508553629564691776145936442486082925912994531517706301476890971662813769369832806113288745751566764824233986797444648501765205754791995503718836399810048004499043359301150449684392760556856742832835096418218124299187160536603330937503962286770114385564112037265380553607412993456121774745081521625427038713369962866587664458346563304343687340569186562941089123997089171887496403254288252161719003666673973211970573122955248232471829114879615495901854982077755606057961776696256126839865818371507760811019591261573304631973735065358792579705793234570324500964829974180148374178733011479931170889061623896723538772200112365649927190959682700009091553751864342814729250577388590740795720441149689546364969732196192584773353356439422673430979221214913306317487121960387140166475588362564202451976709268194659915021137153411316517909619207969807211152980937107564126512301371555800201197999173806946189801505228881358173745586706099775792706953848434054271512404554681836023247379034760218582691074417271749921752522388183788845432973504576025252929196216498136512419158052253298351915410542061229941555068292420647412209082041995374207963489815710263685213064462856836032906458764089191942877532822949708746651667185803689248362296641292715058553985731703789615719285601367171134403689964719596217010613392573978152802460239731586101070692528529304077140790692388684899464655242541037669968296264971358547051698013536052538226272375543977967203625091079919777231275107731543974092720402858535893228803528337153488440219540788447906419700547498493556683946735614338002056472402989318294925975369596667691459044055594990799894872689587874457455568396779511788693359068854158271901232851201832287439239997354124159137990101448841348189664846383465917649149801809087021121648407901883530277313020504755722775731607940115057551401551514317837599937612892461590556941476151325327412252111747411521359325529738675810165350895605689930015104814332433800434365762450735744046679797900184033513538462265934382858773776970242570005902550990279687458744929525948476239752803803275906982207050722002933777402971915908024586196359022096330480878999321892278020835112334294294514125576003036508497042825132675287190003141299108362043930350586051494607702479399096694063243362386471462349739067817867423853856237656812721564367246722934844155230765562242288756482929261905640784044054489746818273603388411906654922595373726991117418873059220884786570272922203246644261538534100240100823236029007319828255922526422642349917686774475015267436951608213724360336527666689161543180010561643261000501781075017276871908274662966901323802563024583226678552825734057415975102786495150497634549046204794067648179733855490421628248061481914435934966620182431047073821355389707294650457450711232650358415854668907469916912670627470392925349516814658996979822901797576568417418254340155122968286842870660404802915336998428641828097807479048352821722804804926307043428669715065976491369900708944455174992787520794630696657976430520812305714530903874008387405752684284206001622538196986500961417521766053366943700356142315147742779939212212265096550679478193062138961262604304079347217501586107266809145077988639769139344657938975053805534478693547171361426337504620524078410290292604068564780486989133028487865471762200597640613129670246900877274582792832358780318262828728669426922142051408680892823620488008540090686563966999460166963110374669271741459100660855799848597428357766733770629515835673451053460778299687482911048248272242938643630413803260444199781338241748512120930959099313355259718688576196122151685245470465173615777529710999422034027541462973499822799289417165725294774943896922366202131215413159395923995841615321398624858690087138311286681777571625540376515102750297406698643909640726104906485804406023716374765956662864520497430825541886403034795315792772089755253110934332183414159838985268041971147041648324168757792737333372318129555806076089702564995882921374320224042004984249966395409687624645825991967666236429035432064943492828571710258956803194613020686900917058979210081746969457180824026741129444318549934169332722273688267175728978845901501481909133020515638813014205305344127125654449215225735070195104941749221287978446494169423391725828923691424003712430259323826573870166034125147962591497086017550513344304250939932557536767446377221405196781724840053517717950546431160003813498573577603581433285198745649149338471828534221015110025828430810356215111677414051589951935038926435546046411787521415406237206977677485734656965084642815576922858964075016211898194394248984839590834879507058397605434188683988845948992754904399994955630995791976387452463135682140704407250072861397689823723525532361264370577706553992872821176018724918407262148898481371271583564687019015321835091291474019158694401029549065840701304195429875751038912644355661859180338432805887781595725228798207726210606800670315370176930513267552537640540470189855216815080026580070576886350428469783469965083873875626214361971870887097856665312053063311905262455138216678170528221807537330208247308676912447181156020267225035456109205548681826071902102752754036114401983152036122251174271639823200192221648249906683118603407286901928784825443928165227049794044177405722256170708634734799983947846436004820064475039613865604625943331092080788049389321147167261765983169028749717435804781875009827240197941748004314880332649237414802244466978349499076926971504727506460870981148972140625020262089237365531070695527908052674629843605311867641736943764457443066146870826909886754268914509402990932351752963418669025833289281304797319255817615669482295026049920802498967051400785268364815144991228808076116397797034590316094569170498967409665582027921799707345778160409659033523979308049073875491090748907432970909228171755846448395627611592381717675526048439314395112140775272399222702239089654952386219646982658499102000939427756767291606156868925220496630452401431327902874964833194661326353990242845032526906404844037943778267043155443076524050414621338607222733745345258377032288811907973528754480477826027169568283317263582050815345032183658301792558341962563037336134896793178679179033114260297743662819802757289756094983459352384273351405536924226740093810557684881374140473538345790517561527298561070564929618586063033382299443915814107749394645476893664400032200204699528171288474400661162071458028765013822934950665957575872134286115413311078243854792406597704429521337367028008813528159503794427016191691364121484272716845778011928406707230074333395655985854618280285670385363772953034457254361647004740184432947592676861866055420779582785091332993158721193647020136679535319875897370329723630314105044446390273273133813781602158909587551226069352645802271805264101046984526762474252128757899803825349347244957072602222121003329937828563838749601845104093331228761951714334017777481972581499582469196185170975558113577608555638122925313345866834041791262261171526644845077015593508738442324066175819583188525919640571643549219151498728935987373193871422756999774905966934377428475194936800806860819987651033232711406435585935664417622117794863012197589183166530765617117695656181777779170462471266550811581365250753781168107548774004937602403213963615837659978156861943422904953646641421317404102137695365959222696812831794145962454608395157307030237934310681938606499932052534156737225825209146324892097905637171893310370206852778421140642976468553088753911046466395593198897628957774017074794082889577954707505272148002894151201145894344164548419997673498837667244206337361729376443297908878064663118765861265299579534547006555402997317077280842840332887787564462785390307605261917984321559941571531234178492975755470608198965158114528464800213725368104646222053734363590269394248061679010282983727212559285137206610308409873982684325894374570181298278799267815087350371145226630006989179885588089559179311157828715014183893785829055952725856965980891907185232662888021967067018505575904453631060554598430433112644887099946320225027655297732199637562877262380232584314694669800160109297823733498747375187703728014182516437996461889055625733662474224665756431365617423456061961984585063786254861822922105788558809561604394241033960761249456844081422951140859445570450326974428220566921358944261200760713370604457264070373208631658019298950930040606132693411679533402378447657347307886452320843262717098327201291923290570830003690039307352807055259375445695980337295101095789069835207276363798157469139372292779653779322578207307076915333000283930555462047552909165852955526340559311132967686287297526075890264535150334486044430352572322548913516195169203674354199427039105397313032444082203578515973540452245539765003134188762723957612378961098427514557806343054166512120425583813908517971512641926954048654338270659801362592619119201796447466366723897568770043846234923875760899334455051141184789683368113105775905719926692889634230024069193144596192660340665419569284391749379581034093430722370246276826142838799235926806169066073417608472356109634547386786524952957186706922997768249539584239200521183347998012679229456653221514343604050884666720680393455963177487241891821693688771736366968003691886237113670214128130801643510661838838115472435935077945744596442993166786520599736571907087357550998011258234535598555065729401379391102536046319799638803287458877590040747010418854581537886659631430718296702715684555941300950310427156259360643966843321268856635237901632470947664328674783292672551998505745283020977941239920505068470164702634068332990054361160587949321384878613337721768589379159112775061892177449087652504749680390246097853228012529563364853746012480199189770096660904261640158832841488027681283774749802275409486516564689068211035731167745759089365428670100328900352876280299036212853993297297442081890393260871062719462499035921525414240479481606219750285047247581523995461973770514261334575568514826842950477330682391102451316093844083756434139425555914124738006091711079819669100334016754475437231151626714678450545288045454106135023914977220226134455343427894936542119350268278924365066691923901786309686920268482452386534096234665220719937047728977232455197849186836752356089455671174850231525733234596080097527316660622922392461567621360976143052847849111268271549103033277837998086939833412317793613801607888747479384332457900915928468758977406569605877966054110625520469143221101135188734912884605713828436837957540850737521323920321256661343252865574237043142973379801397853727212929556168811321691865385749854127653786696991292206687683922520402503557717616073887476554666679842666732883949766975619806805066885205987058325632884347912031677178162982961982700941906691894254195365786882476802833335837085435887543219122310404647468612867163761476338317058805684070497140688780806260913909143734303310858379006936293951097468993549085381173676795684909959043716833739487363183907872444163459988829016733378003567718948230061465481685694440927621204039880048354396312593201520324938594348469394784272808642939272838858002238775956907711821357758817760776349636967288618975837433262076562459257690818393232401637982177001092237409886633954364483905390121354055190405732202643685221419218249959529118346307505016602925753282773140573483518424165322853490794229614387570185824932428111364971399950409498843965450056543834452719710074038863182789423292427266811913342340666109515249323691606950232329314420180922540476009942776543210537436306640472607118673681349774972530754931006612560048860828268378869830545201450033242076522600048338506600952595030570134954067993457707145201749974753502470860913337528374205297922113498691533808027956314882667596508734462639097458821842900319495127681435296670250056842346450628582418079049338116699513073754065533487130850916091863689562983519025835257608294447817720926330933151985647875821601211996279332590215868592219564788598095087871539399272020593092580742364716312676427172569066006586618406294403228451237556342378261141623349981705033135053993192290519010094324651888896141320955689227894450424754346447686064858818168932656195103957706789224251845766761367944204829172186859141789169905634078739392026469469997853532265639297490702285318257053895661434442112714084965504218190727305456538872036295877767577314348256516559533954635211851274862262329703257200887223302766208598391445041264066017423646121696225067871370155204553628535257673439554836866049164992174356512410422139295515334603883744771131767096833213408894852207177775645864432170426437791020124460389606646132195345839424336988110548704005948104940047237629784310852941320287679386287040863922410598900928268532348614892910537103584533339607227706754014527734150643229587534345551588210928916335351775780965553352515292637269474318175294014246669746993477182661513083041724120246834938577790250459547429592011506096342016284442760993741525116343408123870210899966812488682187350247472903993335911308841648990522046267756258897561798630965250101920403522974500232199166020248110656091107020878721446015949872681972113184711286707815130532641858809432077935187186946827642228963702188711987658058689612613723766625601167273345474777088840192952621174147115893739729448098872959398506699050840020371618443263765365032204090883428951447706339147495297565662676049530795950278811985646144679076836069731553863430211114727189327403073532518204892188417687467064710740142831023517979168181871552138392739701158698692438490314465402138662415831833436264617434105893295808614885209398787431362436608714243082364093361497026543945341015894953368836190132658304952945452975648513658982530937299733610779212523967461677400461635804881292432788425455008582611227777505573101730847512772354705365031701581270326661222030666847701998996810245775626042145856879280874224007297047230208204355252534524644903450762026572488183079368179006093748084299970990284712939269411651420813137652154879816587700169860795295080813299636320104313740280154589736886728506327698562416283548161074915170358047313897358202025462670276365758066250442962366955474390738779180543153928167513195905055061745070834070760936477928733661777557534145720357254422429029969857939317863046483110087888005317637730306158099868400465879589979459504936202814897635589387307579883094622458080547277488961596081045705433912484301931553513140951325174936672737017072527276695419327570620659110887057804121845245231597823953447864734491930486677148587570463712165816002763811716467850178286149464250153468310160622819033524159687988959691922744725008672942080549722041368840955607094536320871418736464140820271302256639490202876393100099495429973693438733196698014538835631316611227338512319696179694358163286169949178511339452518175034860630946078608882176106490130023381688101640965385086720355534331626690790961558648158319645227691912943442240535435352016929862890012180394975774021427679159681333402638960855406302395784378257185374288480603057671002295206141601450694305944762925748592875553389235817046026837260465779554179467560640335059073149953190203671165716963923598750076867890998302314085361504031899401575454415345771274856640923818971726209357058268972977866447112824788076349251357094400567286333561325246730809021576777466897655224891401459368368416451661862493816163069613114059391629672742254372129460858701535856845250164871554341540672478611642087651892577762968847517480234288766521351340186066802102491338441258863247522930925914805047485686067930567781790563966595942617060176090497906401347916744784375230169737668578293469355992690991849978066630311761288276887145403605108604001866805594451927890568901582342729476270972017078656032966088551777104384371858539161395121325252687213519089477511061891376039324354950859043198928595639834115989962995995303549796257329750578049552843425386311697132661298674861340996006237450849110738685318668262555716204752961051978696410522643022217962708601950263329659291251597686471588097880637444959674657251573554429777307119765005294707795342405570029953794134617830581151753817904217662955903888119384888439881840341205445371558826229644726443911983424071827556447457295861034944505575443358013831664027895877121715134259218437124595371279503987418367984501537212618442417934820855776720780560947445686737132686169027729192881724766524147114631845871514365929266701788506061893986940131538167639338837587701486018754137356540173418879212978912518184030130729594588632785217169153535319258381404991473821740910196003445873989823689934885746434316467523009666874151812069809212519034040843544683808060643847267159788578224564365170831541024978205656804585436919050736808099557719035551712507575290745250513196954283865441992003953313494486813348595344136062694501524364046716939145698209611850650332147526914009999417195878215861028201691815301539305139728644966934089390898649785536585599158725106158063091950734781796833999701543365576416026845522464415324922421463938608481082606605189327532723740538489152560491941517092046321867899420496305617354419532099263826461190232877162580841406659506543567854140527131146855896251945574655418915748409625479766839547731672746167206967726965803774726414073192922730398507253899632408785850706466452483751314917499914198459067759521097502115687498945707033678102146384819468207009697440535992475248094649715012953093177122719367788824187164492791620510026986348060719557866526552037499707935480357057156234631220490953841768997943551811197118969289040683008759371483980484565895206538009735920724202358838592386843692960864466673990929162188780357434165107292358676170902732394085819742555609899604739210594141006076270095153425032575240232506716570270475424058496367498789560841576193364921505190209668499496406452535177383891718130889605144034830412397556174099721506627377771415390347745044488665308201472472970699677623559242496506189782908155914049791991998653160595417154022013015836943027763727786912995806700203672551820788538837960759218045974503262727232730777811997891899224009787309602185199791091203180320069839049688985158487235792048571474656041214511262177580536634810577487017185565217675559908411059719879758191584843810278213318402811665962604031232835527022790115087047654612929515273393075956023889180761889711302942666924365265023230941358696118353033291168361892070070707531727434003103339106845202105251201225464218693460828028855514169717139525270284025739737742134270741855287720836969026120663459501128203164909437813210858059570190375435287461150935916354665023519371737354255386882521636799632469953813388186381413530797360105358005257481618339664438142901295169599009920009880285704354510851518978261787144381241512077977683233517235730774571170122811576262235380896289186919364194767206607133335378644070491030562151288156074079040945226673218162083924003431140024028743314653580371510653098464253311479921956776382102640202646962529685585862909224357510734691518682909287930552976853113543465397011759098316718027416792818960823124257553934689381158645357837697960562541268527585003421113639349917116466694978285703979285689430432441938935719591127084006829273404873489677664012071729259501619970595089289372618746327531490116181637536536869901512451300133919637485772784741728355576756550826810821213228702377205507094865840118639891190322146117363226934594927549060440351900037179488174315515023000485203935315714780193017864100087068565194222431237609878121740873405329056687823589200846240148093704712485625674779067455404663032996146953480863950212468286615986097904038556764861060349079528411053453986338353433585617601884507058621508995769429256338015865993934103490869927447001831850887319038627227982641076814637606418680132282179372713285659331853327937411050047026775804444952162061266358521118214473928410880561657354647590590922999785349767484795842353555186875879084351726462323266480250359870219291032156925409108805354332538278018131004306936531088490471411694770051823595492306744850634994530840635486465498920953252192624383528205330895718122001461796508437733445487952122268803829684204325071321575446132506468487276463831973341320900247903431766199249136582403789174459593984243541763081595201082947781998271371795966332267543311412022172769489799837864603746013836782169604897097039554602344924682099568481668264986900391064668870956294887601413923975477436499241010237349816460453453960334745482660540617219895000514661739498170122573409924126192399197896166442821446708188269662934781841048468458144863578123719675665225731824791877917419911471581345105093011777810900709483410100375611104802332865418177271314844322171682691776919011682615816634107914905872602038396691831184459190779575399092859517781858982323393164471933995606556035919605978318069157182641207314475207867821986272529831032754453268410730329155513827943463579960314027207635136066261328184227470558368320844294871496251088370806546580297474602163650174070113951012637852891587536040660147033335649827765054555761971282540195339908347284994507442194124285040307501436825259886697724208006169584817884992279977157831780938160449634447248743521338765525936540501742446471413935031864281416835404348635051292359896864518877470653934641920063282353762960664916627642327825760029205285311874890445811311450354084176995645098756173389322207165999332831798342458190215842164001409957103314917429304045368891544995430156645220735144131088741326000485784752927571595301079933971888871282654332729163237199334457397934758988633606649289333993006053575201724565035352699802265175857875011611802121955873668292127070845690485767174992417114786254377553860520467160208654747777739072315909531342657512891418004659835920462136692576132272704278636808117871155234093567416542440495417097076101275329355781114614660111724542570362494780078167149836151882609222729347666386758680819762237880075164452120625145615549470911813854873595723297856587516621198106152508317826688537896803402949193479862251054891129247834734018541805244038136633847087707174256723267980518129754204100946142928488650895526884952787021596079160720396606472360716656301212258862132745035865116134964874843203433717997166061242206071734130679724994593716054947709730783637413127726216078159768967921789992372339225280044754895213692196052562321704318129816439832066916291384475421730052283906014169504477486333481863317264644533527459189881807569205073985310511749561313350474723953999607457972181770486131937006069849697880265281531972984326503549076627941672078189788238204863190645412311341298142302501120964657219886879256537472312255420895471073719163792009951313289514511390572350602144705933352412680675857784575621587377978548164039854678413561977065679950298740202236733071110845616501482006340850255649164675302218305938493748469139078635984911583373928823119004839344133076311999585975131760594448802693907822920125603073296168153550566462329128012548578902083569580021116357137181553301686051929495441804239529759223091732720629548588897228548760978504053821329338075922889262311212315767042319209462678475600716350065242661822332799746115022211706959002115367789353188038423581779504107800585665047411374164440814336575844915248741753019292124420457272650634243825804707446251707384796305927267245386498484118604911470613172954088436805922267686156361823590468685953374636635922040555373452202531601400437665650505649581907382230352808291888574864373374126565902100615911887617509051344856146645322118470432439227289751112556780540221563791596381521888411225380074775446821510211968815073229500572572775229445857320099671374929723200709717343004987651750140823830001590461105884282630850096776731367977348397653132344840496800377233502924288655831390149358283739332610307349777945429229550726529475543451523554374067083578723937701889478330345061827966102502315645453889506810668235560666047783303750535145212712436492079589252160849655343706731526406131995992616043823305258979731220742962403622698792457792108416253564211836344238268132456014752162523449474494136721833068813020944126721767487264376681189656139167045974096042246891316111297172364660618689459099270241129959866569011576294637745088415834636493619552133426685387078304769094275941144004519642778928963836690371884869815386870298094634420583906489104684150273767955230963383469392582442403160358255590525460995077839383576046452876656121688291336979040018613230555317727093520713378271990141179456650663305955884893714630713923722338258558829748253122987686301210104082969948889503643668787371308313959358935050781637182286966818896673588206152311845538973916979787225658214266739905860565080540194649081246548013424863602671748548903027024701981685366248429588711281661059387066940242120521894418224696806897872435208471319708459457546120214446839710808254375227323125419815604273192824381233800438079744093330744960021155260001180652983195057733491657776042986576191032631853775699568028191604309508143382735302703356895330035112032584413334387769620201766193216344518135331325405849549149710182151002313069740938326309629132413790526830879070114627611072566436697645106828446281342285589067017236070459754874507149989137979692897914958311137580537903191313290609253408154477534238372387215857798729260209207057620146962981107336111778157809085184066486901422863592053575685183851168146289686997383653726906556625965113767001672583506460174909674830167646458073479599207586578322662371606306219402175518563574962575327948386607415767013651851506601786091759781847929207007049189472847160545807266966400761207166070413121047130281800109395193563047921998742711645252727714775132971027639361565180779779077864775013783875633875249035300454575595679490234943625666768729043541754005338902048281861181427945332322268900462913736637375629158324806816659044437893067545717036806330142854642378637481965308469257473408271246709286534008337427450666494724193761573298063985883955661198851358672631109929467096382190457838869762163689600543440187073674363769476182764328589872624876384484062433505638457437168409600188912865477483868103836970852892631640946492727761957536324094193473603902988139891118529316998816700198470043698014104697762625029760554463042083932898909266528093085567719456143962542601185506518050153591941507608434133493640851202621482915830661521653756593036473508788303406656230663133414592251814346101544151678203115255011319747104552550821302012719042367682647868583513030539762214060311166926844647185179284751866977733758382134025623582559156517675338580170331613196551487037010152151643141991236349143360099550161872753807228058584537758665439179084263292768786275315970091551330659896707161820551886138150251206112572159089921149789144981678188069292317764964366981434551363078578114020587775934240565046890681852414390234555246747201342733875344576784308625621417344249315631402319757340278120667674323035779693343164418342517071090521285051387777721739420493042714395745298861199205482649515774494347807765262618226458902521772770893831207495533243966503171891134537964948635483320710816950692103316717408849992349132469521709444283464854293916118160484183503906157785984960322426584398997441911272068616000674198104738621883320810257924010254161598567960662813257635671152826519769729104337071694625517860990826196313369928271972837558273074931201387485240102587616527157771970059572753341191378160364973495362915948725575562548302459796639318330808516759267620188541029986599236272644302077344594497367420595858911468554384304474754439027860456228144624627776058254767764414820525133092929910840120317287279799139774833247126696338968818053040374177291220248852464570173386554062837626380654011213040897955719923806738436111296809220072912598744664045871750227904756596217115831446556263348432065840390616201209548309220323564725211085362940003592138474110433609552170165702778183777566298771157283274000065810813431828614207816294282371033652800676146428131740622853829082791765397630671593537786444992730265753401275759024576141898018062498368781936396738665593577234386271319483858585821486501133664811703436681953162667069495475191481572180854640636828648817549668611227335457605560902842926906394309070042951936422352607482511022134750731748314850882734243850478398825766257141976768756708549368675013683285643569289562539720094911358752469071299922124823694728886686136600295156412012957642474574048844189154327431238587290264760533814064055740214334720363479375773919127005428012710850693189215693019998656458599752642815143325894938357547933369840982378673494175457865801239056563437141264976499316586301651700564616165593992160355323863270214757595217019713571566604708639153489230163018823212201220857768361100481403121881748140992541755724643849491718409300196895918700063235467211607185867627781594932616531998423104263577205298368396164729235661237907214982497343192470012556841873402372880836983750666794068934636539680723262990363123635360378500379555121793710635846136356116418046273565299848918327187037411918915531632847374819344665222773126488191689591806471399897306775353452657078538784245976805954418500367894918713218393368957009089306557682561962087651636571375424645355282315340640108502723658334623194999769863076692872339535763542525475941461269863427578043568016983220463734900035803603258892174154857172302139540468091735165408342715846256757822063846554017661296657015713883256149260523363194651950080218054822720107892735300695096169285592873345447303276501713693854065330910169420543976211434808918060711904921174262363722469937029173392925289676069750712586893476967359050536465118114561694590085899564319029864993321217716041295869893562391077840321558748750345674623905271086391152670510643677477517344039371780904147844723940783996010733268453880235999888665593730034294625557833449889137244596069194062871315924466991570311984542078125781839494131219934253567126619050679431193738629121995846476090302920355099302977239021750884454255715737110573328807098293051608142414634140726265900176356970849236210115238893791220700623026107323276248816209282181487396706565593176976136030153267424854778364011789585040667873731638224847974037097699369959213696488107654818642913750526879856889672269359318241364631794944029964015068058806055421260396235649671929706674700064933177147017659317119736928293344768842635563442976523422985819684753374699330458889380963526660569958828508841018450971471506857503244195985544599347007339081984775767280420252822500328117010097415539679594582024383394182296377880790088351946415662197970010914087854263543590552676776947446444073826860033208231996251414786897119342545389300427974156093784595248543631821561990604542854035037915809350664658172825278640273135439041823722229915345429858718956367047882828009781297788931513201715892746957845088277935246057195948039869234113879939929405586228348872761112221928985736215425918965232186162975992680351595299739179842665750397143634039569777745648110088923063924926492427170484688200951254791260581105181629787347785690384232786630708993869322405176745903358644976098329238548408632936500225095018311384436452310388919906772637613278039519728137218608888624026381071794325617862736684472392818718556265775396591785776748488678100882032223572506273702640214791086305978115673148146001616702386847148455453970880304832149792225556713960061266881809015829282053341887913914745310284803906754595466074366729750183467758396661987731426836650559590416998218176614952791514130575600715346294146119382276753813555663540167064725720321677694424662358151655509755620151116419849132907377740305274571031768640795153270568409464114531952956066979065992691112682241389362864592869570460557506977579588345748423455365353224701701738231130509071695492759137299161996782190908209134087748375376425874452471067730152741060221887088656003044642404182360029816486546559866527656034089657817679422122890561290310099640636940025369223881259272096760277927259147154377004894051990091042689863675304287730496696219477933341011136792380373168716658759017293822111988071216538093257793679572903166979873018695485899078927237285437641008437027559113678880821253942349127045986517632671790727958794562498960509239494324616811513996625794759856197666711079196802834699718361057196745628794118488865556295926047907172859605832931946083012902362118603024864210163554588324836699398434251741122724282627832127570762114100445689501826816550208538475066284536831952544535064163985299641896803899258989121984457625052756877965460573214925677828027751582792237460037069469866222879917016580181011771030558712744483533813281006108104985492503987184218583443079978239684004735729411888740299445959198103736258818967106910714619091868724455601781992103719615261097792393996603229160675268550848261457707362039205760828667256059384548641470736020048861385231228971023123406128580937728420634578447304607923982710869593645925367244060203195071463017460374376049372118000819959616743359496934246608759641444847139651728971336555354873126965840345828072753013631442517737922790581944706577342414791679189113210755052587796711790459202393627871008979716597212648158149428874830835225381758105643814846099397052292937772488686809072600987084117844564308705217245008018789172642513139304478507180805240997824128195590987153247119143397214864694486288939759155567055507337147442713008406140447811251220453104380815349728433439679248412992357540145500086093580273729932620566556163016816635916922670784479109051141177154572740598294325977608710012476981456945470316260206846694843614088159908369004817884712889193580864793115272351028536088591094158069447448950625201887057361317519773378016734921167838656049516386474253900211689694811030204372640930797926921265515712081608985922012665524939212127779194768718965357446442986183364373553170527308407889224937536538830103220821727403697600460082228109378101203170588160537331063584343309519847908424620537813150197053038997220069289409896616464616636408873332962802871363721062578655107440327503690912862970069938722438991052517472894603609483547513083881610093882646599451738800742831847868929963140285089581948753078627160378671699963184002864386840832918099597725508901278562446959501230126649445385507943200197748621752271321372986988574751549758937418350504273744183732355370846107495470926327887711791689105980178256061337700482729799986606023314328034531236392854648583652849840384645325607428902380717834543757233013103384128028416531917522324908360345315067109724223986813409420797300458938210430078398914331915262309530018568659073386307733952006797125223084271749381889389617118995895150115280155324257958646430939008528820023150229714469045962421448019063087894052452367831259396058251412705851791808727468802168360600337208357710697975270120931165039409802738001568843034461943538008085113438033938300981777515155802316938230233359610150602987778923555153964415036745438902623436893384684714756278366013020206933961897135793710219034551705618635522513409188362937430276644615697869555864498825472450662721076142392298617749452031004759088860285758974739100945244166893900704616157475482167213466391047064514663467109507040779606814156282139300354166155039420846284604920322922741552920071113871666235311160464200183442621157298288498539014116115359516260295731977960392499830057303061887995071232759051929201947262498239040908078502886786021556736989955239861694309073708966475351490138466486107182158804296198551877814975113797067181711149557908336674584173721674504079030266055623114445621085548569465229973110156075000881957283200998962328133543964799651298004941251126594510056382873320185996727233583285225795945106781267667838345192672502067250243606467463796042526476488419505101153821881643241694335314220866596503558077968606699863226795099009475142247647823251503585859563362645028772224635405307812044614980752854673860406890956913194266285476892276943436416835018726029967114274761770696856561752174891812934941298174097478072521437886394868141681167877775784991860302301673336327916784391684261685816809015941410205471437769679115018072168351172444003065038662479253739420406471892421187833290429441041132398783915541552650725153108881452037515434293003635377001040339896173913721954238279152528556752890692701183692647133873588849063635036868407969720991695647346972063696259491863115284608794592619784102743319956565098356360682270058887878341574359154188055093265898158479431020323465829020499457880698671217423521678892899670278824358085227128615127684444865676126245690022590050349814555096601665462337786696639308237216953158183599381367474302136461635463183550191759278608355600017845488845873373374791092652735364678852466616998223207724685214316707727503083239639385422208644526115617417718301187387409086672023511528906375794453973684111906518810130420093690094941920556241110678357274738147807368433007869239340970176575779377848710010421756483430654159261583051008842819698391408640977620630444135356568036793408036271419306304414149955084948152732717659759604241443789680211458603164366522996258345519483098228353746661696273424939576770517512389590023603315546797938894326368816540822325390704416065721068893075880187693615377840995443558177352388188036952665286737844134772174718395739033551713444705045162117729039739974111965264089466072902164009296687888625759825624172373150236180297580236716296437794670958904384251507657844271761556004077747449126895547011309369763783553816933806696601847353667930934593919643232251425255396806885423218604155041478868779100173984685063768885258276506469323646122908236401951901170918926187827758953943790860599433669590605742356028277564154818357239176626945056094666506289143821839508256471906828053355803055945240901392586336919770388076037130440190544749306243228287954760816716769602428801948425418164773764260798259451063189961332923524609853823563089796957089179221624631037331061295530729236949167791720205168308251633752853426922969302902693388785881965705811133873180642653884488780785142522121438828574600439762453624284577719432371778956319756954188060827972252744418709150803593699553810086575212053428242075623568605287760891884006887705569958980170896333863759038053027280950178408363524909773841518112043343084535138784900395296208475029013411723904911041861275583854580021426256970148128544531022058868160777628131015396180079621831547883888736293176847555802493926341651138337045752037195948580686375713014637896651486462150272174455881933411681491895668015005431504562448854357986964004203436135551511898029971934004152430632434154890479872249373705489138066028022125488272816207381794628491365660863909252291981417506220673673007467351728543159510188759262351085365053060421393465899616841199874714153863245645153103079027878535266555945663981598993346077016785603768681382839098607822975723088792816512635588315245803376554436816646623553831973216141660720123488537104007434379619953074816679153332507610645979660982297948660573003266823243706508472470039018558436617415838663338831076451456455212471329082981162528268193823841278484554387784403617478586640320024054422617862545232876603742985473755555249347647648570955658299665067104541621197761527835412466515322972255934687795257806282892990385781757281647287192003971044342575267384519707126906816266582575830805128410972059046051410276061454999124860313849044480360739253518478058980192943702487116477837782359520649923935026545980120983872512361973546706172366613985231734832388067491265842494480553848730236288996183627061702043804161689821844876940152108413096853839900382049704932287253649472842818827791518740635753273465621010947280007034836653651457350203344375747957332241431317962931093596153624460190016206021634004985292848094965556561808915993183422789906453739636584493645195728259255819872346058578684357163329978708480176396314774614128767327416684363535353234981049665763413221266782703614282386388289629054015513043521726257440357817567047328697359307315972964405070099179806108915584544511592241481710831670636205577753290320484049642071785435321015004742310886281467428767058506857173178624971252639467027234955094468090046687734485081571499579434563788508117726336380579337526607956479049723303916606686865132865547700022245164775069301957642619920478385232976134606636764872355701234753793813372323632761665016156367090256515739947256322715404671591841111168743065135870251687933098830712984582911587362404013628582161510481185278410004331283751261532988280375262014896183326210208752870386585965015295560821717155414423308364000412161333044533800960471555407469764667126044764314242549707497189184551996335229118928541215046360466464150024030629633878816406226689015783690306666719505823469853236911433573159268720763439090773027466572175544514859586523128536271403639059819830567723264656591413315823142547717252464424054953077634500342384249179889199518627656528874969519303139998304836403055339616731463826438975165582819380594818176299772462072667545034477693032977276748454442758241152810626142826405576503215151912284002658063957278006632937606076830800632168684853454140543365433365094879556496650339675466011820198706758399147060545230648861222781699545427300119037026003373980535148452014846218682342160193319276801033866806724169973494392258103592652600027891864800984065376820259880522603997244476839691225267981312734978723032910617870278251408079474274720944684073019543975117139429809906554160726439745385438298291761644724040734817034654631787107088963411928868135484733852458496870684339157051521164814183720947530218490623905767662461559450480220640849522862534123825699744045908042483492239217178651950609014015906978841278427913464034903821982016773516684050115170331788689657998003199264625935966297185017601885189484969481012428614855192621409898889226751034216637063261757288704410446869798863139841880577532282366533701606552133512419720836968868170585056730113054888060757773651750488174608532893399011675719824536280809872175986260763624789313935880038762572324775872475932530181227960484135688973579051035116916468402274822937204448061199842857774427624403920037077526339395540112422267757025848898766508428091692575638686039794380839327297748927976329923255534928124742621572845325727601302433698218246195153932012478883339751079893603727540380670852250317482860710222294880811250795865785451355281372094268361187620493091009181233696070392934775872397523484913463917683644239897288000717034171784006220049259446778603267877405534495803220083858728824964085491082118557368907289148087990939857470413402082538188649919970956433797226828024358277299679329267329018763248227849227373520262688795866620222774139979120635082694364051605359054783761601358001573114453311144916924876638038602300550547334115216401387967968802453658693673239588106776102271247843410055355266597396443012698162729989396091055354925273773199500483294727629090258274895920171211065988044007953337255452312237096351303544588359145420002221531928300327831481427197569865417138109198609723117023014140855353068609010341342156074813899182085303675671466464051040232616781724638730436906756375700254382692045150292272580133500090102065850825750746436450496799574983838399056405346976226292578142400695538835925250437901929073450045811197243317945215707797140655295785560279319725915767115208970422142651557370970298180121621737943958304989773650758141626971904782629589841138851940202853616859282813554619068800044047455877423998243100405464792637081414053915667895315674883909885353141685670616296621551537118014424812173993159618600543707631033644319834171498549462890711574943301324915743234381926768395488108436321985554459808699697949412751739545384615066677934978532541301459455662737817212730455379828389685900217025499867125291185602382136383122833016222964861687005252131739008641054492482752627971133576236468784849284485540283456387344541099386528890903750603472561785038826996552455019774117917604908231701795238780234608107195331212420006382298811146346655308081374352450174683065996788840504625530969652386878298773045229276083162333519777963100010114091524350755281542257959741482400988993502346168174955211858895422621910936822681432375951111649362776511858899655867797473016094194843771498969467676197456957687224856838842560170443168147755953912758699195402186616834324771211289250726804536952355210396313810708964682792809218618075465087743941329404944211476169375099331938526276350823505598655053067705847128378925833219825453655827122416103255045815877770604640717567313733403727976771779869186212033677142569184019727575004410535071729937924325445658938095129207614918676865231937509093309048397943608177910362047733219419725640815360852443539426861416359445941528886286281956607080301641195366369570812794732948368953642990774576671336957797204823027015755025120421450683447701758660212983891326172032853511876491674659622486588800072081198484122291504690136850598097897648984963219732469807971916792065929355592710447465201468287162977479681092987541972138428130634603984512218608975987951471150539531570973430953082935318739376812761724203699920829851593788252390340085505141093274857426243857893964697876212400414420669160489609574402087893575642469362067661684576413020877253729145861868970379983183509392216990514294540053930205982070082181386189649926612281503570023109832337361906400117211212267650702333023244853095765110517263352652544800768507694819801701594636993677198545287853351550385483458407322586430588560958945204911817781142088223385112695640693448845942020371299286320368793646919687894561224405350335106854703425409374138327906985734292958634569030823647784785684417911577343169610526963713270277194904286314369027874926304531042607997890687486913912158647186434735890655370783530405102875941527225935635796784148399697936649246772417640102698870902962725849462568334915386987402475595862427541479134762045417560481904271760208203888754770764416041425444733226893717745070649095753154741636596598009114046205485321964479938552743280519407365656514235254027093985790595357361255913675658938433149132915411784493443662411530200249959669621755437361501294077229439052715804918917581524718013066831861618261373626812598817539757737769666939416938574752542674186520296122902289761135268823853462107618235998697826870718229346836760179395187624563649355008954162428616561090243538873788936877126774180922538437266022959625142181347853514457154238879063179866684224252258906164373588632888184207298662764820942284164227828963835219409791598439708369000484914412335792603186899643355520160334371469779006592065525882623026666321746178890387913200322647449726605932574644804655722144933407702671024721602799789202870008204290557753950311929735958529538296689120171708976168669428796023781267840756812187972228567039955564292644413224596382937556468321734927102626437011045746517422741734860765250790784444753856143783067781585680496172162854885109306617536050591500897430730589414796983646338744606257598895271436913466789771185083821864880613281544420211071912724055744196001905348214633743564245839056443087531926766714017204192811578366158102869212670324526575162950716972002072226409897974817564216377505736606939383712014741550765549840991127304884227943859726093842803060555070397591176190771014039117788935731060409171856442871970289679499637398087380301114585374461526746261552655270190188378225584221904956718099160860564240809815065061841565936281805431425064348098401587431225486191897486417712431927559514565891099588820171807240619416142683340910471124704302613174959229440878002298890578008209386357698494553459295440505335801978179443975672813868970168776425654846068030767099470926539629412207924239424588545188816328867986207013660889522181452235671283371613178812088130549450664520528968875026705404156001709592290211868446062596934408058404854408171895954636657906620914273335054324478545848750636348063801576204749009548310315433628861913361438403604814679721967272171450052451783829822302009679457894369760645718527815304916633116746298449727550224318620895400178469499462537592679386977421385280374479393224511295780022188067301630412122847725280775965791542212935287860970470670654352178633586930033912319103132043212125277429862787800777569246177738488656752913042479400187613345542971942911094986404466056823113502513627422311497102566553233533648378299242374687046360848986792923521324859030156370369721972645352965280370828109443397501615156695779472902869264569693914036131189553503048401067575681996038761997608427916314980426537421387118043639110779628583129045678826862318199091891439806304097303169858538121883750353744471660651275954444647247960887358939416548791704209079597365068369826180654699249493940757125329927967875472158110331822570979952666640147552802619733382409413901369685907791811323577928103230081855806564566851689181939301818349809945988325831296225968509322617246038178217628658642012305586915625824606912009507970235491981886320415322087572124495290110086394183381916919306599144381023106136194796468267565885365917573442900755144263839195338046795639851402373893839767336033073890882935265643712722384818518193638082202025119496283098751311655727055957509835750708854938859751775214895275168441373377635294046543665657373545804812334289744097273651026784807517740078098504227007512521418631719767839226511401563174150535870943015926959681839410152080435154463673400784735486121785226031805882581681926364734538590192038115149167836514263863153900870290538531312752148078480925235901527696314866371733572490060356760641832616315132674404310205640426065398906928578461383878514429749080509548961868415257591482425158044508568500323447889991889042428304645742839807449965417428067511131803225137086600519641388729744450821614622124236144400721461158930698547988699965478411907334528995234215716533180171663473687059384375084437013596313874205565563043910869773024705273739370976461451136125825104068534105923144713166942318664872236274034691313264856086602281211664825384585292828403893372787071936047462288863584918134217556801931231772193287030681867812892761595454681341590657582714544664908104342570539554631910985430210238356948699780364669091677010530292641217957987429430074762672141311663528269802424434727954095587552164735292539549278208468298672805040384400782847199487939662458659659655990857939425640369249948852932315145507907204665246142388545043748387394074778750240071577880296442857867825677350436604240740960097565152740334562283296327612554801854005732431184907222594866406320942701655733627847557715028770101072120750071616619793242504773198433545285535910627312760445968858517154102269771321354444291822701993035935288981306556769655868685755652093346853366059068514898290254377939406592915239317653779490545769642790848339012905134228871283343765974324313812222597301715476499446788407199398997023076080303786393671622819911680469787795004896403438631660265714456826174240449933788444262183743489470762782982893511208246689085681778348309445587033313229352812437727701743237084282863300324931959515917606957332744482255058005084207184202174568276484488047869519797738430244575952775734279591912552160285516107104467671235466838113753179550997658299731588686195488471558852482512805992749617637304120408464820469033146005929331808306001635333326254540422215213571649035880300986422770822516438841628391852413636432826516062188596446684138204449943037551256238271557748095371000743284593584854362820189025511269005146648341784338424689920003438187255294001203542618151951658948757550139361902718249712972011601737050438827352583054075627358114952054879063077337929552707669287869117236680531080769383763746546607526110118069208025657046282346595485031629017087856342060450169102799877270305010118992168612500031710585674257768578680104549224278485047283467132104271355210189831419943370191232172232890098931372820425950562708331909293999716010255092799588100946369754715536427719077679537309730936357730773903146633514193157586841269254604475737215227037878905649292949763330842058932821694983418968970568157653703440507535242385333549593500600735595297897319630248428015646788063686528926603036355924941613876491572140442735643620123791335033098408186269835075661651328268175970809308852228704961130043420367861026261382083631579135536637287085403640801738480472825303846830690198522768786923456565564528022014216987808832305604666595427886128058824540893010626328544892643091012403715307070540878164458540816348346078065717931501958208743158947531594618469294737314799232592502460640031056936028443990427708265178296782117236077697729492521432859555659056594896020915274119870053913523581265260139646749946352574431974116311167418352751857615334328199747310189096165457827816332550481626394195585520793914657946607433488502874750874616516304135428112156342456154954519808961706589150301004195231399796145385108773022527356388799167255909540728312414567709603882020580398594780480917367540168643307639492508833401605213818838896826230070780080316401102313176591821785295350140283362828613566435437544624557906178727156610348058117269559109109180197791836771208100084737526415376880625002215815000035477338065945352402889117674539258861312266701180756105968253523317427899490553924611602534094600022340059573252388724146009345881733852915379367111586995073117215668569780965033593558336840054175949055433044082311566442260850832340995047184558872327912308967748698592850189894219692672110945354850980064475604076508025920425547295721586898068343373720051729725498306472128270619492222486079602387768849063057811693699829868172940560265144490649991782436943278249643143619764150843068945496987476943900605696158843042253575512884700074773126091944780194877357716044604325844868812854608325671383895308158191292288755698016591868281117115418770482367420707911735000224593121149555816328191448275878628779122544096494230583031374902779578883509079707088709664773411834964392676395522801195317680504978989223962969290519300130760184377832704677631244925859975297815411979864929433806995797533204228572812032395187200295805999990345185650326199851333432213552528845692808691251295479538167159914526948403581594418589285338268554448753086364019599674832598539510213102633704483537877298212953513477606633306263127792452813488353233387438901166632037928496450066849655857608719323863281480485937862045757632515992214544409859743254898877485248753632787416356801969284120250186275371201035342235161971992485925474109805470785177072117257432540756795581100939004206220653463593623051444942743747226283450965015051404701809666051079330322125952178146848653807357941305071756504077329731762904549868512868600945355185178377730818086005909679025780239219348298852061840708320551290918785913724058354638260279034714917892439788803976860189135762837771575793894078526469311365966347479120974941944391443138074600053013160857419566706906610541689659784810952168615546696365523077891003943017535142080832951639084116507290985497378832304256894280548932617135466825568075631283036581775476879030523320097542755871917377250704410891531226263662265200766050944663728128581662234346058136053118523270518856769242724009360134532027357157033312121599059600142153192597325117741468637565930116162466416878263162965961042471099834681735913668328184822957068378250312186001298611260722004503460987566704238754955587779430811561890601600782900663772101300461082924444235599973861673324702211424320386069301012443929136066369593709279290451877365196265486789817319231699387669817246366234748956044062623378930716816558989223580491618723555465754548438807615576069334949838974490627169818407203804948559914374131609957928723917961688727779327737727815111722674616430240645334507643919729040352817039409232137245760719079390966953768360303207543902947930731868750434768278911301299124171584926665992969408995437909690954852198430570045926975845225969973860356508054261738285330804213284779200384967533692837742529619927897746549089703925427050566982925230928763977078330389403041577700309998203673008427380496345062340893414304991365874567500630015487684515753966985721093945537401167086163819578556619153442935393783748928039386312057818904893058373733732496204917400843505037645106475621802935640719496189292602803574315065413109199851029209988399270919140723477808572225452701080992790991977672037035838496272547767528111657311451529495626647627106395513527074958688529528811555343592828396390045318207088155802439685857450585758644306436564767189572097850945832029235708303320812687061206597385365991281827196004458708969127907504570091599209943576789382575003432928627366066345444140916051436320907679793091567769951879951799801615758693267064616936874416595178685531136324501312741542458312235848286657711500847485925564281995242718637602888915565592905502938420762865792204950949474997750810052167349597207632352157882547482281436574732778677175002531748653296607514726800567495650180335841521993805806567805779344204905132300358346277238187377374171404094970127527378543790261837307071037869392808023118799348639884387395834800783142854443395365134846417248379248859378874016325142122608781238509232383709937825676171165928146410726948579970628233989535734565731237814898077696052146072094948517875170334184774173897110240730633421777051837284494588220714693541645841202725716326138982911251346976962323722064146046251279582057409809657318365573516927118654711316794089620499194064600989265444586937124579960538641114856422504667110656861861581150374897711293898999311832919452950849105261197581616147711472715387400355948448142321492471808099460347510975795777854725414556522270192171041101677927739173066639484393651989074864783377177805649681213737250334153303435245912456365470282605259921943996701611566226806576806785355161052642779413548109652877634187612987299843962971227141513341865091801334036037056079753495027972370590074642363316245762258461659962388774619569809254643186916848574815009875138686649817637439848448174985070088662993568731089579746948431627426400414844587317455694074194717583365458372682436239282463983096757425245863914012596224828458805967791428480534107683928626912720445768809036928155470048130597838098140070790675319064188193922695410099728446358244369145923053965718173330181945525045537349034101866579662930713748196786096638718771481987005683116266774041246766654865089106905919810666280440958590287529321744057611860894473961296441508821447298593622087026453189309290627958865753157262224833591804870533473228817363730402380159429960428072654531733157062207600856082356917487101531659817757673125803411782709187381952298371359655010030487761710770862735271925583777477117803323209971908127273651752285788386783091870764882463006114708086218733469588501863218798370475988035931821333761024437159186964391483653723369109616001366176031799510159179749300418341550571566574661501616215158139778641983654981712301962113805041812964617899175333803479563351393266072349463642819878198868755107542536488480743748097732784142656062920347013263142650679614521509938098801352448716842973664413886982783061857103232896187255866520670671893256128069872022980687925143444751613866060658368414107037475127507390988647788133217157600125093139935729194810504619274728196095525547903436438178617918702054041416629261522194601331426615570519331545584765778188047037985515441179588996656291893236496136122146572597040114526881266667904070711880321225774493268265041198182684637095841773622176105748711400249731318509726237346264700491920533573558150042863736847862962174239257503760668161476553425890151619936390983277291419915641308289293594776662373613266653736513684956230413961366008121959435133793728970302333775287435769886956358578001680645167623292016595098059147765787119173549127772097045355744855625571320016105714157701077168897359347684781125548568095438742130291205210711730704594409009793122395861908615370790542374068484407308684212891192081689030723030725258293623860335957263805609026154850668390882657648444781965923221146287817945018868725300305206851112117499233137675199715221331388644071667817900482810113571786980031488493565277413464925235169588016541756716747554449172489334728607751269101111917353604796543912058947009595493730132608563678673653844136385559784788490992901775764902223916523440511531665434659620351433520045918091061235123195262020848635964513019560669974100149496122489263506838741583944547483965445669165269467656563280515183635640630594218373243185676676387214391127820573586547620910427044496919774869067034029635833544891584428187249728188110779787682784546001425740568458255294967333386164476432923332047744733130464921724324524531151241475020811242231123723803817440988381156777923859175286302150084664583736318208791643259795031483542239277100547914056556929487748726790018394000143645918011049577091032594532051517720511663161856452192221587395293271280876094836571077961090164683420312788528984984094311868555144824588857728303235596774935386343790564987196340020325155197325611714062505783671302801406231940298681754477257959042098118191410615941074486807834956365842024691503515074669255207037307774466515677974349651605691976638629859427692706847348146697930157414218628775042514087303473309036370815534905350318954143458029010782888964346369486765351496156382082377903103243862862183000683000342962545286677453488969670109203574824896435507368631688310968157291142693145533933049908271729683202961716614766514101672561285164562530509609795322411708849777323736355875805960672565172353027115219424812119722065038765980755979869700356634965497371161575755490249361643569980131905027078020576917588845778628875467205188010213276619471448526346108841221463948248348471913442979077784533737751580178205536125222828936008312551441759890348333638579438230494443838534505626857523584861258446593963906929501360474644736425255023715871002130362441153921848136373301263177841431386556855392142565925408248853422100227207228144274670426558165865220263078250646118046924621465398785580661785582140076806922839678507326340610796405888023551570204822081894537414476964154446473401904785474641878168691645817786842174720465890319370969738677487404867787650253476742475747649771512091343980196157079271997161778927219673188879541734689283096039870177145317681539894276189208044400443594193801222510545453690921248725229033095572327532290717087561777115193213506496950515353915870939207306293471764603621141895008763369247740758198208871717288553107357210519307606090011674346262897736180233229441251077494097539780650355163426506189569912276901675023331139901928521206421945286154026242688247823652548654865868105849021173293835618237145401442732542463022976471722715658987487868071785956440330661172824498739894917483028534737362039719339400263266064582338786369398910140750287887225401537354601544175353696301075688129526907658280166943779623318113097014214106038147657993438421761427099523085297349502064891426477565851213212003127819243422696282308551192373996164331472622230354761711435216993994665336501016066195336753476508402317718137715159769925417504091857634151861141269638468681302863489193375170236927366985200740133102169734928980727516186836400914429655049316204538204984746715476027770895972248806313546252087978973149108511212608019604340047102699341548245688485321133247117440104247358016922110469931194061064248087834090915721017860658821242735007113431874995036749986329971883449853511159626759191503155931892318663344590831448064868311537104382103494511071564663147936277707887788368371769955333550205957308952243962498285123216128039955521399564679426524325718431687305240391857672359253332233730146257225354803518200468484239874269202043802395251853939220752780994035587023986051618778464128804721156976533507182558124534083496624208170990257046485391023432666733328923079670493148234026700030875077280407503591186474722500453838825762223067310205956486633858782528247019978452492655583991731728135751951019147973971210796789322466040931306712840991468568593924817202914973403184975845530838032807070805734648726641427420442958591941452089091508046888289737654955053316954835447797666590087105954037386759424864967417989717684467440495621801538305739180109234850450327962965345438935210002074901486760373306056673460277930291967877260049799067719480689169284275539912488829891304768482802254531430838517695355132758058234546730769384159198600008758825936194838337729809895800224608542708056006475787501163404260795629366240408756744023136122940644013417909885357200117114949965787323185690503016457261903912454391505853901528799866592481941394603038200928166850829346366023370191105870565595916539742853788643680183523806274147673782504159507325176467634126895606423990230503724734141685102567447281192334371900394072589410965285087330247387289474510312562582819960273189465395634256451442465791551923476815145809287672472215953723960789655825739559464978882476045154202996696146858446738745690878888012239929489109300878815040066557581145660971859383049328421477287415810700498540180268592925075339521198435566261229468068109787943891058878518828003882766049265525705452771229424045828638177130514828102545551765226022798937829530476046455013598258776605183104234921460862104480628613283797371994450299763409759685939489073567135474090855910852935536625726729227184713631589032601595144511087252616215217343212122388293762757822682716970244243232761654356201372263466050185834425870962581144843051192907511563244001425381617853234404689893239868190995149142629300335568252062726076599935271435271586274565707017359483849372387869223205215973426117680110859993656708156229326683930743186323947924961159444378757783571571016822203795386123527090592035783320240463954619778467502625197986630038040161499561047563329518174199979638427446618030582798418607366460051122228437464202454000125724392959623859831681908987381244863943642144186472312567997708836152658762516170893788085802839309080812258093896816728827174487811779445510849370786805523001845939634208026159833398331358903663534103215807376078137919478425249269172769514522978422279185135281762968175070670007057850819153784828233746954389707257676215127929441182268923738558042593991409009357805782120938409661726069866811616668976587498208284997112113798052163009149421159377874616974136877903011073238534825009189047321506622340748097607576191427182521010347048062872331274662741284198324861033625743758143756441352459080797223763995213507953701621075745053596854138473337295588309645820097605646730552111775521554739308891662763115421069197145332763818575997748032619349072080865363642712042723568413377651861603274943297035554543562456866076039005450187268687746681363964149433220443995966033391388809045677207789081728010466667768058969106208209739190194115957764200413791481515963887513428302782824887143625544676761439138337448678867833381095017926290320005989277059258365765125930773954117485789324390240129973905397035078193768532637749187947879715423651260481486240369933334109307297991307674622895830891222962614179109939662407981484431112293830576277799704730737188914077495487705851813109327096942218450854723045475217980040644867481593352669956794187097052658375925606152189030350492056207156725278428421409129780784055927682836709409275985118990574551725977176541837484945259378213066723084920122368822167007886201145818591003152494737837636301203821194189491449331651274615674862448632969178866915028129382300434719854611983652089548882650439917703298605955958367728536091127329440609057698529934065528980858285761841711972045689147101624389175876087439882652700957798945050263030604608841472644198766309965364125871682683224398304949780333914966669562083372160924386469850871506531178001584811303578331359015809990798393758528071660475608935533319538008528513879406757669437457106919836046748530198274867959525907693639298722827811504184659778566679602860901167513473957694326236408936109087266516177560113427355888368594607964073941057114730466455458152073101325300972761678799459851852645695023918077388388374086607792446841941252353857717897469159328143269911591709241774564955003298335295572035404478491513807089700250568231767725434430195926839277143152100037046784122993198446692016739566623254333714080486692924143479182880786324168530923112685231121923760067814951804700111278209805526981080726008059268148036915774566824013012271849946955727751926924433803213204185498169168073514337602287795777646532572908377784897702315974963318925939585161851571646570901034159959122376489252103394847783918019266429679752356763960136518260058780744158681718346774244216303704384385265880659322985272376520342400356892672828483495608743445695843057291659589489358898337029752505480613875965101920195477197483205682987747630986958575295516141349907241272431089933297389283010466835128913080888869459603324025425682798301757335440700116182090842847698549248628922590317030590742995099699995212506489567624126254152959862389688812313821615742756499182377197126418322604761061311099267350042696089566756037417405815288746300998681556787127779073155155110048992540106429582297216282774474670581152373128964074424325714708750633261799453248659102303418199322598684349236273846412031473262389646324500298859792633651741946591524387900799753643343475247902252784917382024927505381776816656646830111616385325740961171577553005968406447574695132869383413298182248940706442553839845916457402261261747637803306432890344091209434538727512543131764328102904334662776148083314385073331200719672209536806951110382560599046537273467656442026670014104235784527325252372998170886268550756035867070621908655226211209431504039959327956904716502956702697496058332555464970899574712910969623249885651560375238032927118582501019119528977829384632135629152362182672303480147346315576618745141685621166976539276445879639182772028896808066393179634921269986418995069959528317908635710177102146840767975562207328923222032057977185561681632711625315032697537181310732674248614561861969102368071811369146154590258046210102893492463733541419143039786124103398813799488425772622375339147064446364001106635033838510104370428955138104144325796722450687559836560797430813628670704095310996941868507071219397352653696496423631463822423547446561515515458982111798236083521141048699753368581082629587109027654307543440199573142173317919189585619260954853940013679607645395760143126806983504690324277611649783627118099769480830349771513829627492467111066759200900947478971788791001496145841139226733674090694152140800542680386942602678928996296191336952547206680301662844088744631686392041621603659166013115609975994738630339831729265600569916901750397650547511340236327858260319218192436988320188650559143807392732039527034045003087219465206479246595044302089908041856333946792751614324779041314119255427359860834592962419348572678870661613709214775535452464396635319086638931942153451706257165532330882591774758156695576025326149517078947170814834576654042095181624681243956938684204966072179041247899462543405866961885883722160927477287367873667474420373704134872774519842461632379385520548393607027870455938432171581954917418921190310412625995312773684101399853927961259498979161498597369579058074663361527542593913308070616391527938428890596972160053470742121076233482925488106068080387723234371436611083080941120855232408968108959171308449886409922711978401135250668948097795525488769072015631273306799281648658241705742970452721691126408835185984807746863915280594441092807551804797797734897011685512733097147987580228883989058479422431264524663191280604907724947769666410919472331510818186581981772358566950206335656726002740911565080988232724214097735679986404290878075380998352137379145550838063630355698372832735451307028963076829775242434260112682666640497415130022796205101441234142208795475701158746233532895389153015657419582823922059448010102004097256289735361628442400725922858381774047706941514475304585960035219729068286399507543382410138116948528006720907978210376318920602974232343663136753465721222868943930835510782525446236644737513427207996103900038522065050192164119511379314360173400855193742390936342601899914698192931300782137191915651699234452611250974545365026544139767368208093848610662009992478206878197637406671151180755135183893106515750971113214576658361951379316967290710171037091128323674415144000284132775015442776431669520522647850034141740195491932290890091843561901862291724527909083012819937462770100538228685548342790427567066051851110869420827040259598803299376935130650464310401148544442932569938197917386648114300904076627549882341523816767719766068038299484600570804998885317337823911484865713189090198853123487537111335024865335636077911005359240903957494586960033289438105853192429598800384898414325488075595504876638331296202173275175109864552589941696357350072142125170391745958917379638053182890486344472815897055792691997853040290304926435862337761495508672813613265638930713027861386192259302624334804504814162474813634103740355035629503156796194861036007375612511472579539163962233396605192240394614618124743405962878992142633600572695166157455005980801934371733858026847011962993808691323484101550815199817156961269972616730893540830928477354425451171980506565075010300681759180798668171384269991105526040705108640527063823133588145919547756086885605068969980802279270869739601928276626946168891329578133164910616942016296413870406438464303362206063194020811047268589546114828016831374407454632318270959122999219349334307159752635225821801733357129444302108521378196215916157126763152156499007917695423568479148261641334658946388382058743086472013027511446479249481766371790577902196801163408632214368755939355193694856783323122445291976296332846541163992152947133469879587971483328861207057446890449542315248089096778602340028002608160930575021047810407878281173207109560941881769948466532799345367444259408215067771132756306880614441245640810356354473382066305474678565532118354648158223495196391677675890898771278359506303438109810694774741074181372125241765590331383042728707380316506598677254403728462298133660044815530978013508180904144772296729385353713596103403832476100176519164083933742889450753575245701872332794033795366849694096716464514277211340608355517113938357764840967599687130121036677192322000100916826592829400617474983366442885320647590617184805245059211054142081907307563045532888244213255976269026813545804165541845352506802551262816888148978191357501948051935832981802534018909920663512820136245266640834390344832363509129813456252238596265590959742057762168770063316128038243598440908321612130501184082651579446636485062426048494462159839019626742933789937729456272598227293009741865975326811203472958709612138666770852169939625058320323827590251954361243054563248375645781642846974883151903589246112695840197746444456724807538814409857350769708512334708517315975570561264571040652833649256636875351660635354116642746466537748670731085055692075398351119664157539588327901315600449111404222797841860897846979331594941039971256471494167813151507927990061158361690764884620176055967055073844711338622071696396939207960558489624084505972488682132418187862625678225694861646898617868686282148187600493865564602735573139054093675871020883138496262964593929756389064152950896256524618116659342371279784706603567210464533739393098629501186228664153381488265756456562575511394584534015162327504702859185400836795708979128899096251031730927440608586145928255462068667371649395639003838672024697160578663131475957309268422342384080719708538847574274382900368052293714812668320112225903718106503890798945409669995747888191125018518861899837030246019380793655687154939888445477289536906382641210551630972736448673452884265817063330044102187623421091922940366669725205294486771684013177351644257218891317766975824081417795620624404599885648538395095005583785699160078290573137617707371316776008463693875140324988173762270815113778512108969279105515303643453637698023634458575876303119531936190843096063875806922763028222918419080481262187343410644294660154831995097581322110200505797725104520630491919142725775432023469669374220319016698688750638414853352006081210261843216445361259359480405393129736401165739657311541560315841441677692472869284641702873034761501438390542296086785422732291230529686409786883712568140663901497635930084171911581077908562485264807863890797555436291440348066795048907516933540468574707045971999540700838748819667819184929298835101123161919646262199428647008476827534340769015422931310703182410597154622261838172456676641953969086101542713532242691240580384611039973431370240271393724534208490706835261848161383624333203270249294892734042019872989114342986751490729468772762168104086214738284497750808058766578451484222106707939669551241292771639387937212071907428405285511445494225638862534974449542624315192641407305708172909784362547436664330147501743924140144038407080737916850984366568958840015690353236431528424097592362039165881054146887930661904514936374098683914832500254245992924922255007408940788215220777967303958580232032350420670455619009602557511523910297563074643237371159108276887429831937551180713091047748442577488137439541332641669626383452451720044338966075903442683087334449873150985243977261660766868057432515853354108436873697649457819653244884321899020656110906295532410533212103565545452854885908627050835787830998038109337902196606450886101946300663350826842014425814143583184328667278952071161195871207777022745822765775233526367579414915214759477416492258262055445351879318776825175285714996048908849779961629132492214600314822599597209311928309754443832599695928307160658567358962173576981772859382871617492517889577474637305410390724548803574744022803931984484456059808213612869963339473815201221898970079018994403043951467119663078481421866326411881904043732119488609305013437123684516537138996642549388096118074834218502600813500226689916194966569266486120751982303183230095848282113790416354823815113809080335163385614057303713939613006969535211127682051769940575693120995608064422997455062907996274988126522134141321801400524775292251412995373637322535994176038552629217537116066227810149245781030008124120708929204808922140603024018193022045247877030068799270001625060910046168958166402916731981461417700269558958186774240910639246036134054301693094063520897808306883581727480795579334132220494373312394118502153756630247979152585304638430072181061650290067800319171568048950259956739707459129930363345763241004621819318307033440118105399934120708489708284354722304248049376997917139901873649689509042199992811624024570058091210112682711818984529043059674594041856948851990226839438186972215694720187884952008434620320025079658020350971741440343703142164434274709854974609900904593912400974780876614125197368493520891995271267944883413839993320595232762015377625307678652090107553147544587322062683281808617730305380131603790070009669014513974906199000291993646646266881809566070521321716859498159051157122411527860121488654571209093289903735834293616763081016977824610700861600664999189484704775281079700170790807245832624513190189875729597960381723145417492072824857534647065867268280396792523193846319068277288433358520667329276531204040374759069740454936436808331788804834148575874180312891599439920795283076984771254178143478252716528704300361499312550953030255138709843241917287150828226016286218266509457282716544520998544127384008749747183809898593619857994038577908109833128344516703881432449617095628708158194716748499254946633380545917357680145032230933609699960335728984877506418940876854126798928204861888337868480198790650376534835268258725550849818417818074944832076785881643684828231983949509660377597059765966286318134158950820097202101450550785216571627867006852965453126884708533905355318577117024746316671050633948311811979012844593989107024208033569328476284008273328078016443215856689553448080336846226309617753612337146553438988800498621493028878714689702930979402853783660376063075250414099990236399820270311958358666908406366202983028911793562912707446277902551570008665973970487074594098865840968003330896912634542134936913354695316503442639857469397156367910487323325964544486450572418262556379357785844765652348344775864229125775472401989296216008871039842918456959556739743689856660295387341497773613289519254535589675303681078119530813576297496922986048177247370106035188965986935761542556842539077533100471268384725807509619933167221801465401388454240166651508709127711725607642146918494081421796563657131871440612132320761251303873081937643933796832375097084872023497293951681550758861344369187014344772082399976338016110259912179420115190589937792412989429000056330051994274887314555384764988201631209039851197249631187374032238050872686263132295248836586972201758275456365861625515670483503841075962977614072998239098500025672238601042799682695173570410654828916673769851506138203968458699123986331289844973311315051696606330306261507323940796323757850106923313950856604075711002182268832122703923417379612699650009236679007212034439669275306593245691294499155568680863305281636849304611192722143742321016255439493129790034953894459955708301301845350453302184652652487770004916639382450842838453364418751757171816284354649799526566962979718262866597087490111539387237340122959341544519837892323503131686559445949933872392276343623533166468217140302115409371700361082389168699395218547076270030800057078756035845571645908422967902973762417891995642133796503855114827298951211767081425374974241185391350376092642624912029824221176514213482355829848198159905460199757023716384745471796925646774679869068016456441732120564261563029859844566748965932837904166823985313256126991020152015505288810467677713020274749945326901324189157147840212697112750064172511934658643339812937380289651625352684948665810497180182916140322205893096448990201653131239622979188040727384094865963015797460107924042039220083803831288805212497880853413343429210397285978732592776554528931553948516570583107831013721829809167130899229489946701886908533920601773323615655540792973690790670997014417399277536843302067548232619445829053009187724059744583276552520343462640008293208106990187928285999830853978419548799090298002384996037764354928383959091306647389526315059532280211147512598066961885357719818254014745006731982049052656382951846965634461030083527052274529492247555813852916194526676254008140253730525059047686367874412255933457366690255493941425756071939084458172272886899171037018122205174573977777172753622193547199941853902119461207600756006772199318367019768699586626015770507579515216676496651665560281931734991872854435146782082469752191956234665136845172522755756525204053994771250748009965751077649170244693778960004517404767542893310677054438320062102867135968657223340249537373215871659628907501435396138500295797989195192297754457190375287432283624317482212335041758750684274871856623833137266997735505756226549454953999254233160363620302579593348190438287351322236395525025821871759312292871007714205841441084700603987826969477478593555064285595932083053287095209802697737463503944574860921932831711096891554051275479618572863802204124137688403227484640538798570627662666957568292093607125700654772529039317139440742480196887345868378482441686478760624967508878818597664880762045694636662487057916270365973169591739128337370433610129245101051744786528726885364291956157681973148238225479578231019581945379269510637307391870017822077107199235902679983891451061834122833360693838972189769300777555499299062226608477671381093830585144567440510134445413272163873577456168818731107462665436389442748073717378643353292784784304288966253948639847454261093849161983125441613388116600646288310696098199648966876409735541833671134722723417000591104185608011929965168526940371816849701961036495156162581813924382400918121975773837072445351172719048528836739961618639513241988500705321320986685718214776689965070413994484834073460110406751418452738991595444529320008014594105633944822420476601887293703684804154414420359114406535866769856798729764610691055670348692537716714769686137195514175873687432979381999081929432899117307795427356171188546016364261052604793205252938429222437251843730718239618726336678640737089160952899175615536946373173301394125988103533346727240379777446326582405952976574473193907593676903037702098843870550687800143417728006990028404002026208251734428640482773371305226589408677318775431146366155926960573988625312351316254348158963446472981980172316818687664820298355787693542944507616557787998244027736001788610519501142753265940259288405174826675474377868393379117902659340166966600911668121691040709902091835120389104312291504709100465514605656353642678912254464977719758692829822332938783928502826065859452673871683519105637412490422096911487252058862493484564257033953329371866761923016592166684265580616485043669315810251529527748908636695752826552885538056107473614392784926671386646556798387358364943289279958795105311552266723136209523334604675626586156821370289854924417732465031520346522275091479778188894362670193348557243462045370015998473939195973304471142645733390161605990758484986103319822209204060973362872895726298307005193972834786233980454031303102410817437253227975973475136878303908915166170090588312446829290461365768512229588361469454117933298042970916400133659145985360055669714472455951611758160658822872834565648859208535611682218598595547714755964426098236529837658539406066304763568031920493193420031233920276469367133719941940095942761434116640533512976481536135549933185602336517622956744403375077387778027160750124305717348264049511638478105053276881482821539677075062913053453189800447734243558678553988356183759659194289493037334250432693482736541736041382205520381530074220449267040722071505187014708676510531964552911783895934817210728589183429337379200385418504340138248418344000694434727410848332175184221520422489744865445889170187228290658591950789969765074343377632616604463577726195267500626654879026213192875356861002898088903316091766283760353742077966590876540994663352277549909485476446315951583011840863590459469753216296822118057703114452124683114782348835423762922148669008450237161153138723286938534816876561182104812625689316185493183678254026317025386074708282094395715194260414985159421882576012179242206161065006460079500656209728076448488675349073461635581333271379401008121958080653640484509044849959332039669292125042851169891977892158794979628081276098122255311513992545566733458120944877410868417934575949225305102170223120975274378427787179045469954971157187824114731255274163829666599372802824757617481371569677520599817210345913695225909370293038721598325839278620592282785143707769983080319012769184895637821913184562432345898170007867866983111365854337043443136072286972644252753329897280319608151336495898939776578349167190100206895563865699844495331902839176414789812380742585239838065249242292994237041045902649623604104113705100053033664663803192804864896141649351231588479546140231941972646237345917489357260071774116679566787117989260405072539257082833774606527407644728176072348862249337898051555711365902116521472362672899636242521672330970011325556755745319789987937316888636519812598808053886326145707656087479118119626395421941868109348394203250083287004125502433206671494550176362603694255303524717302163360915990308688318193624228827529176753850747508878344966882495863013072661355020542093807845967888096019596582058762484207492596361554891277018691426146706899080450450489032334573215387964420553720957241977045870448406640100640062582664675419991515181371952575891654087080913871709836939018425535233221935767440699381326126765374232626702814408765316832395705251211946374948909007120887841184694973561972880491349908827848680558706009634021006585175026408223105797080758153405665896632395982119300759293734125776677613493831926557200227339487271159326177227406823202081678265602576712589346763702282581427224094156465119197542761064104644077447279720180773857917816921467412653854681670838038736274150748159401370606097353344726521838092964508273314464751677810934900827108191362099247072432835288846094968327256686256215487946860504900378680749272171979184930784640784081108299564213885401713201730175947186466113928069799643887077645516650956472353430971971751726273526302514929323033207761716263073357190278194000041096215132628276062451874574307557569007885247053222582880946880503788043100672906955796224397721168138522743487848193446969782447380346196466750152354807413903023684442965480260060424573399225224615785494529957611639090715068372441329934824842635934542204571866003005767697644290192397460440411982563462937295741669911531953049667131208610595331954360320420602321156965243970066916006429530492764325946144384233216064892113970679122343665649733485732688023844433668934231702322735328044369165164588677832961774502772505290448382131916038735941621786950450195729864829003141969585146042848094417837612652444398614837706302162505972478788159968504971381502834471124729678995546837886735463539255783352813604643615943878179107694945811414493159108442647337268470124853108494996078548435603943692013286692683638708114381308699246849343266842892066358325380818533045977656703323722947472297331361863249572653903113451968461589001092065549259710411659467088829545747728231279020123869098018459423237149719478385685814350715545149099899135587114818453054093180433200332754627966812510940191545518057242797972777291092165826755217953391066566701615808110741411697196950548860294902344747911878399984382918516764931545771606340011858070788646635579121077952863686244042041844595135309443311059149930491561805952089969653610271956211134928866259127108140115764048385323622636002915530736302912111429808936200355704538958811492338269767111914314675122253928604279923843397994691296013487309688446678574739397477480007827463142884808918466219962353308281968591934643946840251577733855533440842024747627278627361125085269318233999658303195887976027494442119555437031806678873050889821561514295663447412756437365939907238358492318177746820591625342329905585482334475011357522152899446881148772534062563088612184457440462674735993346261209037041829598109762606631246581330147285020229551493848887169282944835671200144295522105941278363069860320097656616057798551975719102545238750484396827490851278182429279252175241739906916765689900666833843627294600493173100379817096695224478791720984357620704318419543233053516885205739255550466384130454826471707971882261716036095629072674473865657855041648587914561661992574374719632981374713513387856158674431980087379561254569892727346334408304614603113306999992991014238536612863124666232838509006417163278658309104567573149832526167022646291331771524607860461279558717083677528069719842995636654655329292208024569958760158813807860081537310993304782852237241257816760385323007688162085563927387533475461039236369312126393324712853804295820051003800374085163368559231685440262307223185438034628764684027962374755400167286464663665976767005557243117141295947762448486121935734084820372426279026167001745317146290205906680421689870033446926143463143795364740182914230475748876831833129985036575613563316961290948363408450441615102377236819232396131312971785856653736106014086679221520626582355776667438877044723946661725528380860381980374980275708039375113144740486744018347596584249132769533814163499270964340864724846100248646510702653622206710268760727732812658720250359464965969654110728345559127257573536358736123291503997335621187496802306720585757786568136451971720769964090657483902010667597820504309404764108390796243950311956033699820830466147749766428200172153407228882327182860851391756006117242006541324346652600804013992329047317735611390743751598111333496168546207992974255192947129684162465167553957711526556502242014115365785797166917709253565162805036892955213224655103345449572110355160566901255093508413766942169343099748158707508273262696569026531151081185086795125702325431467302722888860607083024416515430734819877937431349296077812614257615124760966138760472637760576322065987809156211102910470148386991917924394264459588870100702360569315403093504671129481838162917050416012722446039879014866031937818488728506257446831752613427592896582255944157430206669740340486335174606672714523080715697811475007242473014231734135892850118919564385462618705543615500058535830037765306038539750072673400716037926694657733421716377206274984681180551034485058967831267782788988922448476835867687876690721224223674183710459543149717798352894967546929943849242853834590348453488597172072431884417200916050537450810419263069853112786279365863405036808441636761545944388202315154701295533801721950381969525777393585328195955891206271882796646072092806477757565658436039861750488497896197194738782275915558555088159636296796262429568967351688674042207001427391077541443526578549152722741275067229552522302386343732045912552255116031748293464447302182828207347051943110922788119000324673134932958665612750071024750867228769297912508677916451806111563725865354186268938815811242130418629818097814564762099699164621048720815342074109081377713241984341770271154400611250225527839213319601493737013440082398332898934546795375960193255401702165037432943756118301116002879740844713705303241853829976346543079815937879725411843349065238070531113815625394417193976319981328693134846277586144448302908667264070495649558654531739748527932292551338858668383006932656359029739282488309633003872829212524906605453996370230900200310344975059170627803313278386485161127827617825117470530396025707805104739163598411746288948365734196963185013343869146957440384647042780119980807221755111860293949888159835793952234439788881332010174094305439728930293689258904069442513309803943859147189083612795576634516735553380543023678410280954505241900641424892413827342907606592879099305095292709515595615758355346923179459002723873799253120624426869857987785121204046689761015167108181280250008295770991876325238124739726605202128376089998173873616529819948847239979076294054708368949024027780391647105036435416235840922947783642490935368772925220554482237223699532421269054135094327652293000789328803364645501984466858475878109730512591759101846943581310369607853315176357252811009527683440724196283147261834424963678757305004689012380534439952884267384439919766742656190084371783000837751072090471526159536692041943501464034447131767617528770479678715743450989416380239427627457282019342695221031041260065537275956866749219251524583420353265279673621275805309569620396260058511972042861155085980143569956835993100461946302350722727282186049433877747730875729800825316392301400230308923343985377309870708807040029762425713506283521510100951455990753816484742989380949099813577923222822651912140728077127287052351019700466082518710098438427915658845737450773636800205680407205452412065547924384287278079868247182342211626274188356490927863072693956142647439547904474338180692007983253211904575964044045092339872776382798862466172594244774644674321856820213283488995413308002579792203274709730346844834754687521233673055539295763655970853230887700427494506854174608268504365809167599055670493842806458834916611692847307913833490594616647491138638160963352162073989761263904477712376986760579379215265538905033920776653529662715134708138683195686912946371076039183274421184274858464209908642371761573104578736882157344151464657217229345547859628502287313823324516628056610127592696221076646512628439979817541665557568548695061649874697254735679442400808491820758301557210534129123342508096589226166539023477937882235853561874825569936556318189326331594513660799090249955397722933971610229059398578152608313440706586228001860001634013899061917799750339434734386236868730757739511451669285439779589761763996951726564622405296230659016718693275905133719537358763515943217786601708494530296888983070979104657007846191204118342142812561014145781406323394453230693911813842393806797999780452084193873810185971334102260098349976215698047167320899277338800111805568180963120951208393619697853786284697278980759838915037309787054787554147795032315892375213755098660888666724879252077669745703117005071489959030554317944976843506602956241936585929105229275844068337428003777428986544306004489354666903216714258878897656457469531620801829946233618089544598519345326567467818750197043146923600377752709111557348573725171612546172760482064493124337958844718784219281054841535667777280147998027313828779476939503279557959599897756362394514442750717056409865648286995837156329983813915269887088939037990187659264994702378872575819202555498493502039879474640345329669842417207463237687589155225409575687591904144311135722995594769523690185361763799824147631040670854874994325123282101839298719457640996059836951120496752783624612614713988545013845977774854241638273643391774762882730105211133639593554257827448568208692574647907151752756219890077493290095104899826253718231753695645835012794728090837913078438914376581911566040611327529978822788150494233481146601050365448515655059237938035050272169318428214174657704452109112321683349720350647772792717323832121290332637884739237058839785599697255290656279806335237615426084505568570904086246769001002127547932112615273164801822890463182422398378662202510955582817876986178957948175102064710186661176246596276426766703038975232558309872043519989730272415059618559536097344152470997715685222713353267075493898148406515153850801362484924575973262729356500153047900691245615842860586103520918706026814810468624913188733763347980994918465433154454757636327272826535038975644076234065712837616189664375555486604046056194565439619902900854940511793376096025001351694679450663992429762052713122730678832560445414217201866416930985303407266730269846911224390115744664571148073704683834317924726751772010561329038240082731190117652451068050241257962334491994588913909819733240063426273223608783624261951469246283099280344210721902366724439543120653670122018018059518532453958343116163107179488354458118654849059328657682888884354505553633148661638948129576170718939655691533526098741561084811252935364580594417387718786568092534517335218617934004100707331579106095997660400248204186500822144322553595141888523169517912080916425443410627077340907436519919736534914978220934525450796450640186396521516698373705742810639494237794592256111963557031095698771977841097046185584378771317081736110507621221196072005131288880002527075224100040640885372805919788473997859364226397944221855292969343303259745605124916188007933585125376711103050121838128138387481400838768447777823882142610707855927556577558312231442121180462528367267411181239852955066692495335757270580024243319568632669989334643840272990130769398066946677746352102675486263701477465983310796127013358736690592725179188129659534237134419077051762479837954767659641052379681999308266710779375931288695219078262556189795768703666351421561514005054006225908046206061397203425212107237839729155448421191243439208596079210199411019179654825842829281988677305521171702100592944376260227127405364515705050425327474488674447661865986568147017202108806201033319315968868722816052433306104232652363988343483124551461195535307049228813668822065280855720846591267630264735028720253414457244780890100103111390154473377888396071144562548040570652413115500739376356765275753754789823482276927907119329677281853826311733788864649044455805148896597116920090833757731886087585293067558455097160446757605118819893498087931380111681019647487088457256672319682682160300401543683254238974346391450935876439719281161990260213425246649893089779879797042954119747690778873719447741776647492714445409975798749264656002433290236958167384790824720698952000700345313404862945338370117250051895332331254094613621925289501209899712706483972875426891098755692740800310580790884700531796324870134020120315346662323367525501327392443887935628965128825648553770226024612567341478535817702778557278318712985538230306047078465050872215160924429877389464667873501008866885375676135818283329492179237500886664001391409819991230881771453243208388284632501455665743799397806830509784504436965448940553715746008177970145403705664425172467497054790100633385427572637617865295953185552162849337177639253802209738070543103075276749410609468565155040996448691752974184848785959772994547032252210680866977863732334331533743997056414113865140460616497766657742239939419777219989059122942482015597447106047955619660483988296899680670965936524843283156465588439266422398057143745943402515835091101029154210628282188488739363832305428465094157262230581547917064528489991277519808423133673369512191671861863926869303316438248604287255727348460419705114322312994854843748764807868078199355368119948984204272685160889298428417227332566341916105801938155326031116473958006468374875530518776187592341063857830471827372066277342492349727295657545098097668551939592182305921719031131130809817209438345218710067445709959014338584616666767118162173276874090500441448277604770848305163810272105712780939804455407958786677905926517967311732352733876281542862046312474713392640191659854782747835666609302654075304872418233537657178719794598467069599269418469166388202063663249693477142981052245056945276070905690600682413876144351403035750904989080100308843677039545376716224374672226378610565659369938695700436917489220954215401448323288581233636093565166405360802551969658679511548412269675189308204287175984997146606361254283044699882986953117583444756662578291622708515083474488080020711179602117213481182498105474912560272997517169260194892266028587418338704794603914018902451178023495728320483170480255114196795360027783618867634877106214126119170018074957263837878821818324437552654667781105808083816944909055340829674964653989457129544273391726690171286705944283371659264652575560089170657017710878042479480794725961920616300175060236832111721116201403611027989545775312524405032344831110989989407701933236464023964825074351067095405853318557750483746782886114797322158005946263370301563407013184976296300347111025038978181932813924425488875302564175039690740028690534981409888147111583214586642992965332331471147818074659183654992880101182160744802992389455159445870309536054381416677744685181599194597681204320214759062634104420836508522114593813761009208447405737496406942316620144669408845213723273923401242507065659686973505402963163186702260410409395571694392472028137899409450868775712454959493956137587600061865348456858658639801847576564515545303606918440586042614338728932779834768223241870889120569458157843413333908531188201414168742823546082690113468238084702999215159521306711690254624434452869858219051730971211564537701053852425103979534459349286779990870826778416844975949419089766940214509913765151528253291359362209286562998345121336673901507382377250011163797515268066130366331311827507572647034410879547654642464192855416519150195508895838224045148559805258060496246103375851903625627855799328638767199343709134184940112941213282177596747525602137526446675252179886740249118648015664016637139886869079130112337759470856522380501488723908007126321433083293356895421862907601094649143114752717398498336267039055590266461387712992406078328519406617844622292866686670112703884382629684477330127642705035208074315051971088080178684505409739539441804562721653603673219748965492827000147240189963063615716935124200650381161497361744254655461027623117010352605370761861513438978114392145667074261255524914789091809030414122607456813913710624208252457974375723911277759590234081900708932123906133725946788895894676446605321302122865718389081276281100266133774898661680137872899615594745193648797224898762176189680443765155012553521408860340193326475711555243453395106367994659666184231816232222336224480493253915888082072416812547402431703016189918657083368109476760678651714605031547641764394645226505313244618644770240178980952337418234538303502253435852313985778519518997461700625844320395513612835547220100821163923358599142408909474214372757777418178553781243523589462431627957938330782533518221833470855594655067050754654364145041796829205897267458830932462475129789340655330897209343000619534976227390861040899353792186265289343879451244731298548255246407555181347580971522002550101463174866232560717927385649905022655971446320473651752292186672183597985400688032163118845209157628352881859680646374941214538153059944725826526399236705452331334819382872729552472646834792000369882630631087925202339791789813179614378772980292654455594560487292044386293756204710290705117900279091581408999720753306885535849167727830264381038565303446712118395849831751096220761317050250164393487865284261083968604123584099023890883060109446453303585861440215723855181550948409084207571982858128308617633064756047330857601940457976016342756381130635688156902929091346988820077597681538440326036010406658092913455767024635228614459840264476716128743959130251543372254729080659609085961915074931264063559744454728676335295288540423865045506830425360675428608048094119971337557647283494152828594390783694754106997988228890383699993324891311878423698314213319100635912874914335480270044021492269585169111471433197889839288257178501791136660681103542451747424089692952429154531868441032633053813488521970894605391006930198362549733076654418788166315225282340560708896813928041509678977972768542620289814731857465160390438413378483315039403562213998319704116604897301610565981173160668039599921978453059442416192109749818534564424152516828051114117687143722585245228399576910409680463653721595774008228301437466697005158076573246161199936358623382814103347619851179822280605673184493407332635230766162323579443070534871061437452387913154328989764466477094493122844411629548881515055929561980600053779565503225279582830093786839569730393152976488647254042152565458811170260916915888091616679011909297160776371039804322051770415799898830319891877989508914741024579119013459967346503642330014601513918853496698888888486737183578294631065130117709713390127032106852858348755075766720425498329772969880036312303011771146129159861391778372141114630430677045572888270127908395836039942520802845124946883597629927258710825377023827100531653234239261671110032397586838186845653864477795010819329387339616561193991911866546690638792429092258405740330122259486177471276516818337050619416817026212694178059149646025464986014283968678956800331889624121070539994827547528071421489785835302913960778867218365690357553335333745928441255500981121938187253766386175706558925487241915686464588937075817485943905982183641562504238763714848238534609993787288233782234416636246495229626797187496821757002471150084327394679794054746472371917228345759538577863948543785353677199596065859898174389799528628331977585857559187788095972724476075954584829278908472073442784234611278005471166490742451599682356370503593031835524313278692446609331965837721095122592409363524187449908079794082019918866141493463410367352164251343681894023373324562888010571566567572722238838054934219011236464703230557295018633345011250188777649773578798473830841791148281058363683817103305504605887936058033550125255797482691785596044994826144417243701283996358547949392605376524586218039917066289927759004101472431819460717419618644574912096485278963577085612741415465263013003673105745134149874234729009124788877715438120280317298446215475157315087530095013460943722392582920851604740509675878480073978549956796633679349713311884233882339272563671668568548547787126479875904824161906535486326815110057381264043167395009590271125089636586476244445107482712198017362919354204450461077697496629815006780057237451933991859248403697166538898202080232484486512803004685238291440841482447705712753198357640073120866261547738485773076513501852291337019894248907485187861342025111262423492879536112001682262482536841107300203873391480897955857243321638700409676619434317465669040212834553984554586673300076768299947586875638332611839008641521511889400256749454035455185800766033299438612213237851090543482229367942964138335527989529349630860095849952488744481847063811775452745330053034475440403733953811734232651037894068835692354885942917598004803607007582271988629775020428733358371464332611967311550507939200234734768592065645286988637536772103938459278079365115324556672386380284949321508086735770830271620447342816322455238077567071420462939171478285743733012789810923888930814736747523898585869077628574982076064338852316098595897317360430265342435309661552145019552679077550528868621720174985632839513886080871375787505763645425047761162609271733817788760903059522831461042980371000344147233538175056826135020934859144194333693683415016959984929644287433265234663429049658471494618110079782763847069056510168366334994420293759810827995424650080492023801618747845425371762588663799792319851518076185906494152852955582999953973742861806689765348022700475885976999254412977184732578689490493800104166406260554418118817979453248360555894248067176959025307411633564337294826365898730237666609143773009529261638340577609751595008060045083937363174411954116261438685459955543294360322182146918649022855572399794905765794625666786308338912146762101698929349187679174253965031957766044535690972655885008500273660345115944287771080931052011705631322312822279817641863487745281320031011252183091450564755448457651162495717980928020482590007902017761421988219181913124128574513296528461398408877567017408868523967286644357184760251775608294150646009314358524772087487504518033955746257936240792904096121891492748454088854764725375586613706190080676620398804638305820916345052492042437533962305339403259505151655627166411026258970059725568795245124689017150381166783881192034873692804617480504575666200363655773388983142858855467556343920394362920253377820051573536431137860281668298778044192416199023671009675202587490374476433350503066272874267262202119514038223267844141283665593772521104512308649097542307357992687038852935823157213811562726697567826332845180081554579121885442094187074538068753141956260191196863968904622295339039603247545599034760656756832353124701682155494189399917821828077599174426174887665892006939158585450685714591525787376849700355194336604777100867137246411800469213280163586279858968132673605670726776400445577705822119432674336035363598581090840862002554611191355629041459545192130865508192091247918297144455949087887536839240977943070598208324434121000451451765404483233253651397811833375737134411389411447151106327912952108807017112027626501856132486888394624079790911774592648633992066558163651751758524188035697226631898973069420100817920639633231249046921015166762517360812037042632498000118563111958268313434395527853571332039610227071782337154056026456632301480593429398276203257774200691476353471800368605914991669946546301974071744250610018131649042866375764007721243089343682198294339620369162241408659757989435448179466888682762851568464367001313126889804891308130693313605815418539237421024644270632293976430497655558252406275390844634099594671085492811031952183364424490376124453920452629958532921816931190438043650768107249302134486016211691674453545963681156575637760534721880248567041837927886393298821031962608351551600319520265176952030703239308769597202959599731379357065486445170935296663111684516975384196593984832181708467622423145075113708888757777854831777395325488841086166403679873669075055807415140532606000428951209271246845105046139280210487894562255515926420485077808496023632753114628648808172589706413705795905751567843580283803335220464422691468722863271364077646031846286448024142145004474107879645521624090613746461679696349433854287500560650807000003146844679259138644386145859736476025640381789358899027697983049121315168272287081626954072031203894130240909774079178094026191190179218590057065822409844419038413631577503254499482247380441703621408470644305101056637716459578943641474747944429565110495746072827545862425655485957791638828072917892402131179647139946733013138906532780401022003898043134762323468482394269794829255475417177950453639733320701342931758300988622106226534227955353971696576831234434382834836573125581373536196340679700390883244896431179124017488567135663238635014764790374010954066047118901997534604170016959759228948127454078863173743283942591295367842951797926330820472862683004851150956264269455012658606575628438679060864687822922806620052927169080362252688527841384930719189604411812420887109628628232363065276541847941241488995931748946020608798230364241828690889307229081868222038372279842989705455062780370416035677894162641184489622740118032525854828020355656172685848426845372134134835292984861195119205626026476574142678561639671811274455035516446425196184703288157430609189593048368845695368242877097304272637434905039911725527334611568300064726183798899807194980500451946722864386420401806449184897211363289182609376020019859428722550774074526281922287429580250456432228491264397753420851746058639819712472184871893671703944636321609162179477182799416754628111786665471990513674283519043803376561386617060267180309457838036728483728407720853596444218755382293748254542324223512711112702662285475546524377762676495018868510762147692902812312970791458708787008041120448308122988869499538466624220636363782667559511140377629020532624171339518274302241761702685879366578034496909163104489045304589749232293878447464816767622769927664655201909457127366145875146245728712343830339375386785720617054543547843459669971467598456535513283314473040942186021197269589693555666446508087637510920282847699299108902909767684240382729540025962409075109304553620086109134764136801984671668903794081391910747559448347221010071472376993186990811207392325287336724546442683918199047058951141068979828378245231462241427350379741938084873210186664332904178177065664381884519831172911519647595919376785577124033773049926994136150939632550470263941038537340066391636473933353153484977721087572239014842754580151936701706156277779447578882603695688222342888722898427264648518195307793689438012351780326141023085308763330847150374907847217381850827035517401974222144785914063814676265566958027653233319451678886433922878786465204007874524964704127042505865958007171407607947561226063006919194181581949914831053496542917175424544350120051358918449498108607591363417358585763230198394930934982909754257126086729317858796263935357338601516165830443582206390693805678130780554007846514963661622514600938319279111744418801480023531884240216466801463005720464335811982922471451981542431827484147406240753815134620446797495120270668593817105503205834943136489723816914205174255419863561737564637897134265181079252402773168463508769011670283123895615561003230418803879775827550245181261423080896160873286136279515666535732648412698441170734680093827691637264407442395588847850289914691252902633068750178569469202701444980712665041046306064828842615524054687637451332525499357152007836859528649197776357956519484692526166421936775832105082304962128646176589111252908558611587293967503919530851512050911445778672009590598351232565029877864983641076140574366871394938138138961037292253118885727620509162507028977793853421398375752932616868674500326265526930078409774255188922361196282356482235439649435166083468494793748272433081546254417152761432454312555071896075359879378489143384939791611347543606783288989743419173785181282404320980487004147821044465989881148388114954397847910454173395322628412827444196635952338363991477180053292899241096421186531938352886293526153316903711784062480180264758530398419590204685113671294033242771772236218088645784001657548365426465656123925359301420607770321198339937439081253853984834023206574604325869431952683959333816044772824249403020241552322858362368517362071533101437001114031904932358662167932128039849681358908134095412111045022515815791608189731285632768356508988349123373485323703833178421451482279707030295295598606046139240717800474983462773999395804992067505979213459828680990472251102030641546854431297179734217648947896943850336826436773563659791662073605116272633188097697926837995137892855528174809798120500542689040696913675120312808591252834669537860354167675081128171233224254986084985803293074436241263319540040624657151927193604938875628113717412133277489415637220493081482909611105853086025655531534902219326709088604213326650672810656231362167180929096429539528460698456991104905673564482670509368620759972532322744050129272907996901513714028245857746605315740198980158181877769861389855124970504492287555044676589538897866383839911178933728962253540408868589365206359937877099412248680902950979026313414022712141298340464991333768052929864233765353639946148828500325162996461320053701571499449058422985136540660703459967353045942731154237294828636724280635000810831965044213324828864460554231465317883243499857092984110360180420205561449027082604161281511098251624846948306620175523132433955851805044466068135194584108783440272780450457231933281067530811748262488733030639383570915163575481889941856723977132141557997944224358755847468563469459134178147000854556549721204387103966921319352372766656294952697365490869540837076855461011935732315809244081177029000216545792279442197428168590427850818048724671902198711455596869993324302382856895593270609949249398486136816019546851362198006205437589361929095709150826945699805173964273804288516439020537404434426990262601672584203575162673606740117252586337468841786486678379270098039900132521096965242985061289157431887010261097867042163880646317934574093573956845963950159976526265883052082813518334193044005262081818601664667089278932929080080926459066716592486457771185532457429315012069194300014124631640407102934225057955200575583835765898055048882152008990269836251253059708202613077059876387939721466383052794116384793902400882689742965457223015584942204670318088058126336878999048906299870999948200777053266559918475164342309363595977005635565432851026242122599931877941384175514759610751081496313252600015311899465066006031079654972730652789212545844379123137235140866667580752799601376477679043640718898382919922303511706436129556132524204302196007428940176697535486272476079222885598660770817393136463038673424487671427084894720481297543627797331819739327995816815836554403753881752324822486519114567417655178250541742766327688271801052338002924462804871293821870870699337394504428219293776061809511407743123281480922789381362621431229253896741763197513589789278038409673337827833470786210030874302180245351318210458566325194844698876028131467011500865653355777841444021716070324264856426125936210757279025705033801395002656026464638215066094753260470988656504914357782819208998062698759532539675218483176750718659715050500173978770053562665606585649504614357771091118279769461394753439949637293539394885627200962729751175769294878176168794663234754160526122344249552581756530646712633430109151785168885218191525981769558695425143634436971532786915003512094972650696743068537783383121043172932012573932163677088087733531557710514401143938927309132271297628186324115303833865345234731554354157515388838623470957134158998211242779805268893026436430541430038185020035869369984100212891536841602922604295116997100853236664763589935987411058137589773891461730617189532100102175706160238279207357968267772054449069724547691172499057802831847275320100168684182104362145009501419250804551610807288150313453000033152439418088563117910799641529790745650479256793798876725198793201409044233785083727941298916460694298879033509640130711012925833872936363209611129974372284907481664960265143061770642486389557584042797274502370539624833464551403410799611133660993553070175853267514804146705886292852541904252480864472624993539239512462333311082555209181335231035349702204598488450516425744065108175653941663173393679562463439153033507004140486574046893575784823660283526589145669441023218295828290514544366688018338818041731367306059464527685453024127753977703287870913208791017636954146876353746429822504655133695995590518111398894649842718700676463912184391368874433123140065883056768410873090321348968949084323859496765125701388988647808871797789276175991744519050309821093078227131287384933603812533704602267051404909196022065813479741565191902535252994921340578760238728380986658027914507636138967239768069602673506409649083910571333264842434510721037590330147614553114029140449077745836186180370414821265728509777836755018377581041303645650731376076832463066015452890365466276704496360597277792941523781301032062385683348659254025846303662643845875376096187263195409971601950012330643000580521830112097583977999530089483955261652785904482097233079854050475111653082473038246585395265041444060929878478482628136660588481497829561836387143836912708498437805049232293736046482037694798081825558071399970478855909815556512376322848800463050061839738318768062609486376164215453176801357043323212351205339401038997785366693650522869097488391370076278387641939458398066422175452710315221948677747922206031428635897771162605125055134155020995041235161583693168392801091282829511508190542445095114564147138221432262746141761612259954301712284601543138251714369441852137924040775546303662831149044918500357589480220617033449442572967616876719488775226389197716454297701856541719325163699921885168752516746052926726067476942601546503235929447311376350993278138232784958912168733608459358722656032375042822913889223784151490535018601490501390285763113431835960279987244154942061755035863997086153905114907022243539654955860653750283142821926292702245962884541649865648718707331292176953889923507234959645278015066804667615926089740880736087175435351566564886120305500130613642026070470666804621469577619037896035984178066575846632523826606318030334224824483642384369961046271195800135407479226052403319323632065281585045056011253400119081540397658141972665553449331370266999108189707516149827751977848390227402148040610412394863174480854715772555865352014418546696403245456846375169753149366352618525099590756896371953334141814503635756322978060412641345661158767692996272796823710786601625074881967234765814873017047195423159108886665265611988533066040505650950237092799133930887001515588398154004010342540154206711931957707144754116659472059260462178167568046483823960041987681653911958999517543081933679312573131810755212657715667391185690856034094977433254240059827472635835357507720042089443481541744585011378503480474568781531054758370018800205408314629750268715416425179838414146886981139917952103350036359880789583168025141428122949980124304839275255936979959181430664552467040496966972739974832961591014018190527997954366355540677349173937970598498969775161246980623974880657764771387000610628621990289422028616398926065446709715702504366229291117897058929003240149956098610459277684852752142400730120978252859991555377472059236232653970373250771775310677272108328221442745237242963450522068086089855737426473261008806327660514550737764518206820230358023552986907460501354086413225793608518695122224277494589842001568147349837168123457874063508893659083796266532313339803721098431480937958882605869395460399498365626657678576865974502109248943626981129559542290086283649473849823489353539692209595604539326696560939291801759057690867599184398951657234155383249825127035060924089883569338032507945016502586029561140637187065248714304038480033485026584521597170179823007284589175380432979367095612520772109218698474284673996540538162460615126275984264072402332682351462848246982135054143668471804362907989617180844017181425371345075800065415801579448899310426787733307005305367499828381784570826750858849751559004167414339090174354798742781317562993145778086936823718556439111304493408789141425952736262328123925238175326792013633665075276769202968126134346088508177080707961397191861554691612149902450446170649515128218320482453402827379880110404712465062186980001284531941453192501065864263523606935809839130483308631833793939110238334376507992417682773891614819270316367405500426825328213038034074016979588873779089161234470554938158490689229117191626641348725880532305962294337462384854623198000432707073054247295766627358974011813686530112779740395647973677526530178264391971451695510543714619134258100656891765133047204693347478730338638141958862906022544569914390093896175757720388064216571244215944928368007742311394060525025474333803503134884436014183473259294118091371012045819675223571366483928810151212189642304157427917015759232054875172304626185778619184257704484076139975730387297789833061789961368760083329331066430158344824935945683419694098435515740540419964731798165679293451457816202390564927022654953662311853252727215149403576946256812426527345894246341817407926321696926888587244690610250663690548180660123473374575529612384138264601992370937225923261422820708011104311891059984489767630906446562676550941942581509351367543104744553086123187811855552710803887000073945964251660534117685638436593611168138626868288218373921180039333153220385592776012926718009889812283291269884738972028902629321365942103727198592780061076026416848586880313056947520338031490721413264813838002019670065435278768313034015130657537973367273741804407530759577087187714946703621670569969778747474912727347621500029315844491220214509465843452095834168695029148872904964538909636757942984389564751417486972518545125458550698022067571700237203371816667230120532221199572056950733779931262409966921639417794926578118390727309907354582634655989144592315581988317241545232224676005728355405198255469569039046999987658869089780201791917890515940011429727640600065909507676096357484334073315463223737379601075980459575477761252457282843984673233243775437410824261076614526586054921438768935823734616494964356415320737307723967671266956208856343064568706996736476475119620119855657827450184806609271706321308162560684643351326819198678811374813530348772118492595559299512286771177337578627540430313628034597958673833293421683629015792043417139619419176464835418202333472082096734703703595199165812859036069718985689776028114749260803376583729468367407957780806880863942871676098574425846443454780382936123393578921296563526187249782390864858130092618067246992607024300849214799919784149555752951852097934594895116237930913034411055734011671925253908901396501644482910525960402317220328066254562874007042727983196052567533386904758260371371724884075894449712829634713676694866186537239317846661717163093103382338171990427270147847032581415716218200666328594648501976536299075903526171063338521185134037579792812059372824547878186480059100648947658564348570694424173612303117126733487132784272364296518876413463744350518079232896034762804293320248623709559254686863490318350297645103003561252551214893603078605667538969653138528385791872482245483927818440272311733482053362879182193302941844986965032604401714764852179200863769763676546809979812792775306165227494955766496338241051070064357940836398948518290641012153766169554737565789916976585088466638411441221166824194063828729561852760845614667463783013552928873535775573753328176374650343342064067916374345251962317325627928327102897373179883534699358407687258280050721274081858220696631347714461546264568242012391164510025666682151931604679295381746770091585895617830423785628042510886009904894386491603404602052542635545393583489580571664631022339124425987509294032586922010008380752487833394077807691108290442270062025443132587743020463920186352147170268847299366698272088927253571869383184939395480399129473994004541771762008218210232884511074778787846318014370743454338109035636777432622344144119210238188059073235933853002228035051364724848151456032435680429365307549807070339516645098274218482694593630859027992796038159691335906041067743354619337056887770393304703419693159937158743158161954701334373001644904332391534312614118825653617614455120055584300475250905860425273330127620993945338984179427968666045770247198690223511138139641380641634647073991382673332583934387523134002681229366037531967674830680028471812856853754654799699362702288782926858673985117817197471131701919372412993507414562075654612114706149324210465697352593752857355194490883776069613175995263565250767287154407298028118696177233050911939767087164403929473973629908136738683110554464154677280596185348683352758240977218964200626216114773368947094094687284374097980426506037746854585213561358226238103675155800026554213583594466580837727193661389857890269294419356189106838235321151191627300254013096701961881470180796506173614592569521693493904736828976336290288045886209585118001210497902330129674495363491690711155168661312437346810711774884294602688239162544684455494183437876853904311849730281136696763430701195865940880268993451703038319558439764154769449472582826274069992765505132304042339714259390095338561590396565724537674804193325678914030470448571418689257012447776910868379369562143092163882109144587626302463320065055161453227139480610124822571858738911446511677875775200813019630111781457723229673163919151891882951962019434233188921845903843291321690564421841666101296983243228992529957101448522377322135090503467438086793288411966029323624153501891887509943235255632942231088838206816917480980852241108232791192679305903153733818068240931984376024216670526272710574671931790131746499320217585177476114995949952607984232921200672870620149604983326903678328627981275120637275714851176743892526022869166210722322119880257905374768001839221264993450174281155306926448514046084254564188915998695392571412827383626376721391455578769549448427245921425451335734915768540516354639671412968336040969686681154844734448259795543326258639368876059412234318098140856500610266935350636925683604776426270892648261246045326576986366831873419457432921511179312632726180385560479327925963047692506230989908248062930224720223646756490059244445443975535537290614631102536417409981168309497741928853019908116406499507149405649677793463222201209114059314575745244434778562189666693442291418908713525778450721338789191509505964682056154074319285700644231399389244222745285805923394270250019283991109797547677544685529273662882451572054581255269866784968532054510940735734413619856488771391009111580284350902902589914931514695697061659933919625889467845087929433093744262735515248836334982022691130286714960288570686442289228134172888209187562557939117504576935827885167100421048923776136555631029569298763770937279687601847743422347759276504311338741693966144140941501289321800542815255688253003711651034501982571177098479539880607086090336417328347604110556581204995125551714644253754422532911048359505186572602890758935819912639257213544549457799852828811982706440135982947320986078072654826313776027297326790474393341278561687306563991979509940082315696215871668081964087409992446132685265150800234861827197873228469044356548393225228492048835488655121899201888200144038638294629374524066673112423556214532892178414988613281332085846055568818493375650264019864803825398115326798709275302473058849705377979353160609706091810637444326656402161631051613845298005995145154168970195450703529034345624566977745991534140212026326230318821821816099717885295062062147864285955741765458054416552841766281256428537694706548365119271377589601677798261363268230442787615913617268649111741182628937358611351391624031450990537325759055285156800408374567469156080296913787366038114578647575133235266277900416849695010769426676798515878187549602922541472479306039888800172412672207378127371007127813163845362221575439354440496708415467302630608302290474290626389226655029786410607853948496648514003039056904263784228782055127006640001223412471840337817710649701087624061211373344359901762549139216526207528602576109554959152500576088475734788223019009577462445027296345766745485419527741472906158464633660106949355815808353454919115211314455506257244216483643328419858317543709451885617666538275003093792456420845301512154958392365535810268784147347540433243532605982720363889672642479624444463184955334603888333751375228733833411919663468881402167583873543743740477839145768151829021571361051138427193178132571516871778148312729401913251940795903753006336992224372306861815482636159185498664836647328198943325263249793764458668188246707203249603306770318679877148986641847303844927881659040796468753612513997655771130085054950020057129780826790242159343141721987735549786946822020358092909037026292802839711494688385078870960343603283147749193533796507644896961571816570298699009927120281112308386165232341263478742156254372916512623403454886628835590152250906775329441569921897187489655178377322172804166974910304366495811239975569701312861986814863242648549219073927122997345931053074585545652119683069092906069412313297812036995272403843879278048373967259621760120455875323861594993729169970545200306459524715973514245536134151602008749849277562844991674384424632766836793940773997962728728189544016591703331273573298068744032899690281503504045859104849515768537474707814327198868044191585412046851504444842144512928099707917994288945652752282371349752208676122552597104899090997026481695195164377072354634994971891605903562681184765998307036367669175256113281272512625950388354342596548448439940877298468323072946964951165046019945004269335071829846312187926744401695780768094779219594378575597184223059332400977633972939629800797904151058379288271077702943261597598134046103706767493119803791744752259634309167000859507626999896961424368922318420161658944801009295933079198596342920816526781877820624296048278883779959276249488087256221131020330470895501892442851123122754532717979315511765332427288716109018265109922930167778570726470175095782062156403315032269352895581621752537759052997454744839320643349977245930657650006623629748509479008727995253265982294098770703022327358510507631061468795939992213127881301000595329957672605072101241230338023813153209633781740707229185404707587736034473619632030016329472969540450462141544677569322742478953937398709143872945729807205591315757259422887468428724228364165146552443080875630739785511930717631371480154017262801993519023983400906532855416987003447372524472023636782950268967132659800407096450465068031992302006817062111540109486660962464003631154843156488796713296874164031490092374641886741382821233320863931186424392563888058024730129098022961601965175212704947769949190892015053366526501602671401134989741241922178346086129386968029329670691905657500354524213615212696924176905041088042332674635454537120640108183563154553715653775128808982213772570977882182030090711544389288391869152429315865752217338603369028244557713476232456918913396324024852533454842792742976955281254717932977746384329153014364711869346032166605403484716887520035576847493321061775365143525486560263593830254785307907105524621700878635621400562130466951399027590080218817797293598681953592216474772288480887058688049349088496758587676428074053388374805992000207039076071582803798974627738296484963008909885432754478574334124314075260022514255165400549917450778324777593865428064406707529547688356882115093105708255413098661521739854575511823919880597236944051497345819486695439978637372984810172581056205590578558628848119901471600403713041756213632927151302686952224190024060260065003884677263888415864903696346897002570111320478093463956455835216356568076903871452116693815118663041887006442052474692017625587063919292188250922526823121347942892959654000082127118193673025187740226120454946556199007510799526289428372414867838475299718370044791403875992543434149323237861502081374632980218164690375556992919842403890767669929098244672102497007644808162955560523513957307874401224219833955137802846417098755492897848145528345520666158447307403120421096990161155712226924422619365498779680863690562133625522864561366581688325383421405570389164432202104440420239530146960838881083435631762888482357173190798774032707512329200298831637653165444795814715931602641429351180003910947870328115043554508972267158881962771307331848967075179995017849281522935996531640155935955968878813079380526418474072785706003406414822117155998875786049328443206806254262585720535869194529615636885949459791556561812463839317762619221067121442698933001161885715031940033771672075048489637719146181014724598929120708451651679664624850137750545310262344599113649602499009853033147340201175324942197278284145236522279601367523887594475823125334889095448702619385071132819027134969408408446622394499585909159443186729103235294507685570402204429567870223998070166430216317761431404259167148953737952654890007464347154345639710730606429664873305917237957148243849395758327963298249684787349664895680307490987955258897753704832560798553505378262521510503994771674343146883431212969381874034867618610628363837141042667672495006017290522732534324965810586103373419723290840432103216692647301624995814498550437922662030144432470615179157202500140150940100675639619137020684237322954166300308112960009543611230656207221344085852644611176950060626985886496091919521373215466929077195008283605917956824357378466804573204736256483537450473164854660560055252333719474326147834662774117048533126147923457062909117819939912110089358109008538118663253612620057337305857214476248251022833041000660492289040680983206446559289069607832690242510398751666451594006809224241995240725389098026056264722368252567716706540573808657020539214464323078786732893141889587468143904632463484035015314638887413870189146156052495341694054930964530957812809082978379773469517345169281255812331119254030153324409199359349996783338074619728902602910419553071244750331846245240678369873906345830221832441712018710615754113366456391012144186921017257161075696014384933725671070126512228207040344787268582128079315622218117512289355615370003815657471701910238103272478087363536234636229156862466440433982527930432858752889762854998050304383816961012084676550892030222431881971673146626642011939189693108611143515532530633027721669955753657298361181191721130571537756762904820586569450635052456340671031778873999947003939623685156338234453061833498235994938423391657656480766742884329194785076336506040078154406611322256633166070244879283341198642196905401944086420553517054271965756092574122397109792702858047191284689067078865646334101796205044507187290443281276868173609547336956436487781955216296832465687288446421120853774196875453164450527004670355496325164797421336837240659738985286779694997794222333048683279964488004511237066075272965483866049582503370681247921966493883441196555196499107274548003750655550983378883169310273372528421414439605004008047163036569663436088743284358743444187085214484409099901392752379198719085930222336238584346657700863641764464401984312756656435091526410077582914416860547862108697038790536028958180689476749094443189789471228188603461341179051440835305127756000077797037541162824784526096379352632930561187459202314802896732256043736565267903687466268773066389254916141979569112955523324998167778534829388564139067870654431795242874802251977957092371666278786835496313218152526111502204777762323639718957221626371426157664339580804378132813280421237767655667206629013212146719750938444119738859621384939390667565795669800176109006277963920828419917977449970977522609629447386924156952304511115553827604392458690313714664524851645048924962051374448678929648610033138839446622255511161670758590517228991723242031086212239330076759797286002823901616364248249189584492767859514857761854550692989637005046975006336455495189992351004916914180057869568989749774382321857042656174477650890423894725083795836769961290074273823851822839075119584390442287558010034003352105417222703929268915694314679738665768396849693056128047815591127185365183093535048916522911763490088930819826037316586916491760365108831462748852407151815065694832685095868497376571893378809824988583273212677062484460273779849232978803050719913333101175015859842237889083588139838447228148952539224061884392378048864365147728740150168030275088641387754835292731013026882953029346342847860863577586191973234664051168001761553037718129398597886830593527225048774908875721764653896922630747011836435251455539504829502366500845140538784336582671946407170745908891665235636029421228154463796875068800580021707400091961013939017496274935137608343083752121369620083536037194170934457741941742880313510047681562703420532894056874096420826382444414022430600480217210911941994179730685521654242068236354259212333947153513989644455028462060153269017842543820038764514314482058371202281968307350103400748045766750964668638537045767608718076405205931249483358290973801934506248759733346293580846274800577408534261816263483874854982031867393491319415357917433570807378802459406172526053951546364398083682206422782442246293168626398377919989055904087895098841145693159821988297111976925136817784311066611664498517772844563596231938547951993799680609965517710261425782764328687690413119999469057797228713407536466974800374878654604611164080748002206925134430992239785437163038084060275973203276860057630696886921254209399062265542952704589751491021174245940265827189214750965612472319011894270187603840933538049019768494824461937130075063545814375997594502749340423061985558834112745831352893161843232458002998172058541921584155251974652849018650236438784197700510261536734581759270356272957921424181445296366199175420278380086319367732562611683957153723638147384899007837981270546636780980015420582600612898351347893444103324308936110023135863311020791888545559314335907341119518486535626365468505900078804560082361424240896499655574038823104686988518993709661532228060613534461589515659183835251718302737754573809066636453148461856528254955810231738780429206748615862422829178775927860666020633849451360320643571483602647236645181362028013433785074550812622948952354965074238516444952732887618893131190751729482471942668356803636529718842557674275350685488948128869187533290349482261126774500945892393901382864251952430342674699345241893160978218855622744921361476144453492491299093516169021116170049186766452104139168602784771948270389236267054710055902167857469394894434200900189510218125390391137342453389564821710730553919698811039681542007746150519912536635571854909990887574774143427845140051271425600170454309735780708058663851406054212579036539273626509591687003182108187654598982657100554442086613536999106918109363563341718124132615436198778277146380576941036733995222173611338657310734380214561087588858884275687848918689626252922558307930580648451281808717994871597179623988350303981948140796970728471931666976144298699875078232750232655684631143897303142963896100093514806110168509897694374212477587855722643220235380426090711357757963910278647994572933965212753649721676590460168959540180640027267449272911239192296789782805903399193761939935761451447299104843504250824599182035389872564604214389409009617808592960214148590062449503743241506878379566706753322246609691916465808524905851484504543465246427902098513410566612461820977419839545279854251474388632644272886565603702942857089845751916062130277290789991975604618469961042571822129567904111497330658617954764439268143461215064347458478413302302242360324652242405916215012411022225832124426528707778884242046677064535584892484602732386933147310685549258749052618258267735727718706439785496735510803218884571023016354929147653185348317270477211850639994140630933564243315562839116598980200761452713510058680133688338731213265445589809599956871257924916373267684211723101167637963925678970777699657772867557330910178257275319069671399799099197151467958390680543897854927735755206764770097997515574461414409547162145970568108600736449888353836799951917686014044830559194249297888387215970231146614202087442461463956978024326963735246078598209675016124593853230640808403317185853114318653389313036639538217193881750767678550588008875660454860605536356795646461032751801655447572621809374293774409289874207949274529995991027475962945528658500764608921062996442752423774207027754782282496602941252650383490044582723026765353957246583112056784646706378413068476689033513852692464388144485286745851706130481343017204108340204976638884601732455804883814009244167248436972466820729117559485507647754045975024172906597524040726608197551812430637712376306985589943529697396308473733804463836201358051886322157299530745843950656915781817509675890215320629476467316469156057986626440552512549189751777784317630908228547598240160214449461248429061098604748487702103207994343725608784508797281665983839156581496389817558981222387120386148416813427708148330740541921354628173358349640536922887864300675730499690598571424964436918326092966120772595343596356211838513545253897961061095471743828643042905299671935886293102270647403833415310049509606174433699937073484926268437474255593458993094032568922699809651411222514331044185555834217128963491513730373907424915643155008115557464535067236178967939511945750807500938947580490495128158206749422795100993242040908871379188360961535137110170496356746491704840633000089329575306840642380051904329105764418208144832288309077711167615357589718257951263204660096197949656435947280011293592299323903099973509405926565984179944993508685899469607493014026132054875686892566919234884235171966347228757660724604412110006699460060048680010833012713870145579694102416065876006274765727974406368945622898060017810727155876276034113240983145480503806122238968195269752809897390177329052867884509462090410905702876968664027897448921529036108350485341868172960719545783595222906561766620837290552843661652215515834715493468711279221585798406641870020746375245314307312230031491088782278691003834950601537042194937781204028797139594076298555790139470542989683498617615578705462686742321518560360279572895598110456488775770782422084204379902635637335915866341772624913131218905055061240482476141033493952050151706307438827099471614470662640480336349258017660082758133202936623489383491736566190536553627899760451219939839833951575385512841783988489100417079033542804838079822821957759502878625411949120157073496599581919772043936001082146873277370794219551798660739367311706516465834982413839750316134601383918677106603042904206684935372437083858169502087317138351137044788183962974256826268692140008632556158019432410488540484818522608390530584509076735470273194633521250599575635201044654126040744984665724129637843570058265166485146065967443442096074133338583462660118915195119446960380606373371476687789103300607852606566016286203607384632515817603479461146112775722325664399865444684813968966766395147834977472485347123115795357313309972321330541016089310589979467388120979431795282287755015522256275527357780806843984113472934715255527915265869711876572664505454204424949110401587251832234322940150915322821070955876190141737960076847524597131390546992630718842316734379269450988737276470919076099035670993751521971939907587566287258835961718961580444718964599957700350388162745743069221465010805525515640688497923980684017167584431607527460774094573498178385058339037463747412847698228814014042184169962185294438632917199036590921602954987874071532384233401829994911900735632673383945022974031397055723208231838154158994272233013999890950954336914022823813900642529082941177472758306111807777697856525405293670990003675250333240319773707194889618127963963731590216507779696507983261578155211432688187381481526972368795659341061711143323699731483693279700682685692163938957976260286853277919872583350656839855667550352406075615404078567431346210470968447337099077458836153203991492387635351222974894126213636659596971969605904521443322136314366050018358671795106608812096507613629720220597424383561857136340498123570672561234403736839033800358691449658291756807510316613198857555088721923190620239988439336430148845206759994215739936633503888292870541376698441481787598453634933018483906141046904393967177165720556783303892667258574237919176169234998763002415272603700550689163402071853106776629494516824612210347676363445120910172601549517983090635689148497493559075775530196133571283675180517844049343206565115529278413288393353738925598573325662411764589886302830386732027412520685668156720105743619416160542483741943747615801040925289751543912214974653175960783208742294630082850028831801636564955199839816494022504733027661991701776311244635651164842013231891300464486291715484427948071261128230990272731819946809683212184660773081303433394918777658679107713485146197052976766088445968068583982726546914049040044318809273804408651741059899391414655684078909388757288662749873005668779764906973539170520178300221887260079990140699067998124278272922867130903003030849536158926216981136089094370039584185617550695547641643960344001554537333564316516750972701817075936872897271890849340340973151986827514514440479419247185963002263663130677437234175758021733849490837877236358089679831043342369583131942022578207872479298310505882967997700588075407523675119736250411597829518879644229455852651468948471518841899883442307883799176754595599347628148027925980182920926182497720958218008641180102362397168681434106527124208645828105850027861053301116882155335995363198260497383474314818249064756589920235488309244499041395241555752448390849284893309124390605347533023558032785407534343442056104989552738341405032849509175240574060976163665767946637278263868572724524568716265108950028152634279597549123896834568215147895739500869903575325118463478590953757400523742760246774831269024342215045409491895425842904690348451942210703023017463330043698650771621864314085413468958791254970516296827064608531964858085303372002882902061660693035635571129815789933333513244326138306057109295671750833304789946988657365635456155200009250221252548493485783938476579904953024059561961749267289546239871092443546086584144623653451959518598862634666379858920190005784864940302311735711669664833239503090447061948851791218642137136129968604901654520266898475139478809384163060633561201227407386745985714212104327943963659392458168093872601059302086461846170991661726814300532432473854581784243153743653809961992054443871663549329736976546529959026143984852519697022269362342437918579420326742726860027829356597934999848246042377023833824840765994841527651096007854722975544880312387376184975777899466500988994627059879763007821494026330874024635508943088557405586161120719894688028756493068770179451703674144509899228535773527486678377862358785301019809936403816756832838799504550936540793533677815364915916620107781868142084149978887366989994908198929390850232790979373858705546266911063015341456021019860824027508285128937568684808096898613097728570981830426825865399425217193739301760901232985529462328626934150325771200148927173923753598365051146443270634297137089188181723355715054511952843857925156858848729597853227604986144825250278764617985913506066638867717871557952283175450103422637052150112139432843302386035867240045742831580842571732641590326689538350378822905824860566154157171058188574326656539385549781910679415421159798680634482318820633545091171489101764934504574686323807909340521615034548656976840158736065919476636856451714884072557040618642232797799072825302048669629531506023622271975758632982251333695237732866173404596241607778391655260510576804269720740143044947722757798880323953147662459392273838620785355452536957307271978322896228890544763183893393743170275780365255062794777305769322540045625115008642554080309452861664419638573567722825280153479427532346064880918229661872896639155305045906947674721242787100769486428898934843939808539757062589213045690896538577653058971382370334863874183850285177412791429491248171327401257529559998943823496976232816056114665253751884683536074578807627470601743684207658442340411316318481955531983609292605062898964997825686131812518831825290377043438980062525113520765216012098644814558213781844788249109640757290849645530863014274630819075915281192593383339338176575016941150475695436544586692039071459415386723452925384462395562985565705904828246788601440289587352907143718002311701523123900768813730197031858932577421013263193421482258724964753182179980102128758820121120580331682445584859229662862015236183816574578067413992236840661172356980402224191086093721408370794892095494367762779681197236492214370357810129060245702850891828610294460422180515230551953614047919285670888359508936110702246031229419414028724368575157027486752587428104162204439974376860137655443088843270435311533468262407328571760446403056351646262776972780328693321428378195467616046612986278067485709147512578589427639860141448709804326783100403549510576358097111789442313407670398593951302748503345257656905752800479831406912278456271024987426239189888577888314554852097401647962006341171819924014695776198712326237272925366421746274383272725450612518594360756993746007114900123465348463705706853937513658955195598099741201031645044291883742339880433993493452927563399973751808640356700151077168523402571585527051239706166180005605376335844677970926966364528505724415918339613371010651357874141579038005611747328705021683054636601851948821718176604765117208290306169420897663795870617842434456824108205612570413129295136666983207273092253972715582798762279490006932345561087420139975985683436345536054368789087230357318168185365972765422918890160521292208172207672511362529998313057200951642651417452163663999834460249796810278544741347995807397159136177008118789435038127137975386522950998521293262588833383562084199947833120853058134183720731613573818316289241574210464799923046515181867142028658560415208895096054206240526908748494692586494221146581179011345874565169053381949071038391549756757449812107269497511877688927682794312652474211650578033008762764997805352649693292707063987974314807182739236247099136437382967392474112876991260962232136960011705296486794150798728152068421963680726316803072499615925813534757893528537209324892767756871211781485346219016372883175110811797229860231059033162552969478333129894807725314834189900667264643086825406282112055778895962551346384580270183773606359270753282571295133209331195353147703424840619811139582592011752662582333252618092579552930927050617704423299689093597109054919889961346020519650829718010312062452272489430695863652393883465249031536106804335914254681558759453171082554557238883032902595370472936141352154232784113524127599006058431242791943000987952102353662972864887618327105419941353082929333989663038071161590703395800709331786005119944074849390311341870913237067557503133956392584806449583188730939496093708805134763070522975460661999778525973238718791787035123630262744879305044780314827661815707069996685766269280905745061747998229798224045065464243535264065546286277928752573633865892448520353945081122512449244813608343767695728473042161496927183731849356393277964347198791778371097206230272511755672116241046777658735983772996954977803145520321327373602694446490710474235063896198196772855383638138513720347748331543837015081859314746862247172067017863844456871542376661208670397912425451646071922879928933443111526145040582684756618485214422370216280883742916451207797597668242045863336364453536597349035581728356888882842356246689347461576153602354551343987220051234871323800993339896315822569470627147787687404508297320221639935773761898947764055588296944507414709156606069582214676275162106088002891750733276195631161980965819025389140459510136132709775233284274442064307752998522217735455182375464235842713183207483668462162166138857662466258033431808092130109528539084418607573654312104628084824292563374461817189176033467987177482211925674806413565634753335559644026138739122212533544419045618916594287267955366142144168146821175106087281526584550800957276231987744761615816467003296403339013176771627877981086580138450948254355676725101800297616963959176271967531208010162224090468709495877512982564789801324590871170032529087373998990301782585246428001605076143420218695426316499403685281746260075954357850861522057608241956525485026489566509580313715137788494761932301729402905216087879335678674817275315337963215230250963901320182053588877486435074392064628647133082988425291797239407177721050464828355382108827670556672663293548077336449044753486880937980371592782684641217048212635642755202225537107099896740956774746237455690514170165954368051566591074733619000529210634798436483504476136134455863516020337531740458901997998123506447782024208395864086218187443843568202935859411304253101332117836389960874244193810971697553148139435609964139627137305045829108280473633274483511877652958526606257586566179292457714600197438044259517682579550044127869200692054827863328524462319246525635165689915595777847321937349823995373120859902840789999174159287494630544344271957591044499773916917266727225331605880949731781859467882657925384825762850790801949792138588551556210839519413498356371523448274309728727323660212654633451281067617050682156879737093993164842762573693956673810445232673434757824477425576281554127061682670008373218701094841437363620286346646333546523964312774036226114300921897105609181232097760652915819725866538184144879692480343921131954244236923035817066489433966217713708583030756503414463138907927459510872048343998666657068996802665405948151053675410081603242349232164615651269655304130736504511798718725582461131250417452593222137327993901077084632093975699999453450565731952650483522981118153177425731827805480408057009570959765493063028561133395820292620477459495867970741217158024977979094287614724888958619862395382967173518360069906750189006676203116637335386023933208379901033148330347540999160045154842065944931226570237229263491926247489901635146667230015523799155162369950467669109963868215133553865234759397651762404766559559711679714072902091825758943845317196689768977538256406123803092105095122988098931205641526175452863086545910577538081992769751799443977842707489284964964482752758289504202410089327351253496533923465369884110865396707012289225013284853442512289167286875806254373565069020744366033669474292267826372893507447515383381620181385138783978460699608491473571350495022246439243443464905059418537425720824457592656816390528799342586568752603349771014937383464765406418556512141870039035459311184854164060566714795266964030374682000982773917702945825021021455918147917248083716974253574858460429538825789721631322676280775223244048998368853504166805833714570424808354524395876971627109831070628066942578946088419419634661300687707703160324514781640995989028088625298521761609900509123837408793046378848023362088183691683545405790353994936371779082142749598616308150838303944422847912726384392423512726457365190577305697330331119709596555828241243624308193250010182424111731681313315446532803699001335677149138607126462696667954907333045513320097926011187285465588530737583410683577196958432313611466883146571856325322276366448578022199333050676867015767901269366433733452619236142892650869469002519838674291859982452567435209165092697907937927582299840796490841980335012670167385784962083876254495614152116916962136245252074144399003889608601153000643245889804015257238634412379730147613861826592828578826150403051910513120927660670021926467919853074601509239573618468775413684733759257936947058567701993762018832042274625793263382643937556331852609824866516542962272298382875894380899180164270702600233896296186094862901865404982858020072788613624353881331282492113161726232465739958533507437399582211061294338125001666826981639727050658173500432339406706529487479723937273153522807214345117799975143509976891604735909184425240199559137233447631900403514585721233881636185720750646817446483297166148971104635165969096510629978292499516550931714561223945099166627168120999203925856496852970691666412046976825450149502998180685979629486978754055687940096545130272134985365515285955323683572731989754946804284253316937525769856148432603759759011770221023624419276819068050793743691879702709783877013737085218420820747121629094282088800504786924269319104005883138293280949374419032518836931321241328507580710191129374294777753971152861391137079406923351472773932137015210402028365136522911105824926821264689656413178080154082176207307854754180062867137459925989595146532808352277404952513916591968636918126804097302777062566643460170643639459078539836800124745365370522904108124352143308961591063439195279483744624435686749613599998299910331148721798262125762783686626539511597609548785349657111229087929696920774731108539356428809080287764041513490077810402495360994600743489766099605581405851523427698431927737095640891765511234130684407645064285382914601882823769563645736995246239790014102944892768302582142955440643907339325233313720494754312766982035321708988758651172843041254824873942703732290608533612711810852541645764075179428552504884615896107070667060994482568197411977176884901093249006558132920927814366298938746995913245913289153478509680673446616880499206567480874843199586116781974933201337509511730472739544856520135386538418766039872469362132080508623913748077653030874536741957816797468154189738063443866879386569630837243854493538733464712211905845895566186718373080544203702485069823550910649957641876544818966157000847499667447291823193566869594999502337466201257667941969738510762272080150720313166395132301316702015801455454250556792282741587796422056051695055278269754128621270914306433323873367388203374821308009379770929098258226812594836624510972728929101732476024186314023528426759329485245766118307648829826051954079809689448641113405266209029371270723934432352953036093658861488658781449035974519051348655854965244318592373218030008595122080739081770190415541689103118256530654086962560178119910991786620103102760536302308143765877083250818030497960361562680507696901185284151308730832472712509795224747816415362231340739463094766481742776134694471765754406630601982388723971799503496900331786540601500920796379206421448779253929105700436308778826655727209494347508425377920711053502198372450479452117810212345662387137418865956125610106008288914748903199653566083788484953658606276610782452056200301704861580990325853264280532394726128955082504590095032617250863725765850997397031946826143591496798925229042866158146060875137351784697093567413522315507925206002809817983714398140327083348144357891261953233849626780961112400232906045820930961980582475008691818694218239152787582724810233927545083627170494976133979568806136976779276198651444269161962778549093832620281646436360649076023683312039747031102286571078548306041185737367444200649213573211100936768277428185983474960816848348930049501905291118521974301305264105827937740926176136235380521667962926094763144116303825151287122390674692059653571853522782690152252879414987487822813882232732952270889477641672615160546715502795493199256853129720270522623107571438600185418909093036670754699580595692392013191368478981802890639330850629172641459890560365163170862416616107398452286379127481808421964455478926622302342366063441290777658281994979550614225917359973261216987091546766606901775355090534860248029030528267603919607574423844149850638023000631208035450655396389691126542378446605726785582156307521865523456700064359594702498194110134371725204973281872795397097918662390507450542934962947800087866193553052687709292466648882340500847556545936762261425828750023307620745745859257381174782494207411655436785920490470021150930630902950349714629642776735920030785972118205704303650702523058068108668506392743101397178312396778576996176206938458147538257599983386324213394057371061184170761935923015958328468551281723856932091662348859411781172561576023051061700888912758460206960874802896420384325081775158085045183601853328739195165392913751600205960513933450795989093390679052516934244822661062396676590458781559360551907608986978718434490179731483603699210607852758991316061943231857877119751569726645920339028722929353536849448278298015020449127156605959003370125858933390857076574220422069206573260208735868993662332653912892574321417159082874769325980949869832130077255056649716985010885667365608415850601900189609231861045831310879900782918274908449425889768169804401519009563171286769508583027170462089034393231834234768835823943633825603364884859969760650604015154811808749431261502012161254425873857239838768166569370722388042446492132563461939070575612279583837467864336400722190465930521160728303371650093761175104451181574554504091839008935053181389911753990854760699174304754989817731108763823152011682255564148730309685895066634613675104706239510742459297360337101489338737745688410713643374493882623898062463139900212214832929665733214827230933309893881538108009801559307121497331414908647435410060917944703525025042007754732952472452374206599481766537064550279958137368008215267837619778879391771306840173143302759152492594126619523199458740128860368158126825963316362097958892151923904079378927130192750814666616037892871270545657854727287342286308156576029996708182875156840312308520429472856579582560137092917915338158518126096337103304220087752692350466216824813077177486147883995159894231061739532579008516015874405698989059706157634354501505907074703340225436730920547567226128644256542264818623257320828477240447343400030357424236302756920239935626948053315617273700065556519897926505671265856589376163252210110000982864075427970308686379861857701836471476101261562007264939892929765655455209460236724989069681994211279023789271677546134876662384894968753881513362875664781012824461281251289520031049580219384310210432924315716902297153012643803665656560202447480599125994218546096227121937904779533037242657562774384123691846827833518483539007858351033818971874371545851582311152757798429456141842976548562090739245246444762904025477932396419369009669871203429883421030698018039560850840851557567978268871401179679686954858743694444547355652323085646885545304706674238687144960229997816803767206524817285866678330651910318581574506917341867662070764180198392388694589700801961004053047224435946511805853425261002025787845303440234806002238445191958194707327834499324642272166903112325699740563924377650517505519194877395291603861642515021783818771117625220491750909038458232562777518649564827503037156361828605838988016839297357630169379538535556689176425639015841322020473618814751361214345855066192986202955062092509037449807405979302507768342573091409374200317145479768669583256805872224133382714695177973345341374356069739746356490659094760040975883337317078846776233113717078806256217715143395552297124120453891286997090297599384040833550784083625766095010835526723915852068956954445791678230444780872516001834586239646338330854573354234347551913181310154842839430382454107857734348114689083084261586480460531882269249348785511995721411450118868501624064049598045578882497588717778173375127683706112815784478791806650034519240015831810165057539522695238570912050024663354534275243679986111895017382287412392878322708459617482165292261631918395054133624535898052624684669378889324589903740924615709033838330846897271521184395428907456835981475850792857686285836951867114586574153682411687633673008882293052747041928651402298556936730350492988791243592380027384579059423479149635011243647067772237103323987197600221795349925995007634711782367509197221954522175671672374907861404052507075937834871057996916572232523190783595862771037173642832081691494984358695437048023759039859754987048613959893975488653429839877250204481644475228017621979517687525788380694143195507337642348616218820345260850237121401984098303130545289803626948608093743605934873391104175894134081290450642625760960371194813131354089084423434032138342712822378983683122966233180613655915822154561457281925482670555251045978552904607701284918481525174662764648203552291680824915417562362940260686979072174793810563520042148212172079121354300202770115963767092078624844448130299121549866252363495627088045548172741587472229065393661840501393936031289686559861466922746651221136365225138790503249228092673518604008403960279630827534630922002530309308395556882623484102221389559261085188408034454670104549069642051506661018135440775912471926564895924330357428635585649080812982035267606544108921087743957736080271269947111485643707911193686545074416226800387520810109342877415570424214311373082949264548218041917635331693187240987653907791890068435614835307668563935879907779086525768832724351532107525359789046246925845910958330220819295363858139144972838356321503039216438144710210238306646277500491334005151431928561002552080396930311112494590268669537366894937414129246616367991325979196486501551860994470913997065290281927226183685167056221547831619916228375084150270970116222289950086575744709240053021655839304901421150240977959803384359025338591100439951770355311090736885439269118125238118730335482563961587727014350702266076494817448123379361395115643884941238019462396872047085080098464898608574033607063932313545211707740269127837746994826533427692419745853963470273764367261534394270496901406575035821456790766737103929662395621059573373345755343093153446999596644303406639527723082607467633324174048679966339776605242394221185580036558719135220178560551979479497138144582749278130676937482303537017467070537364901738924743415698780308587851000459818416040772389626055181889182151180330164786943166138311065427164495608927086775876104503372201127645864044171338620746109360795512352731298676474827543228819012883794515043526028548375696881353664327614309651718912169642269117767285540656641156309341838505019185512930147202244726324496780790714303655592301404557631869383352413491398267555455846132273970942099056988227654230364100979742720850261163639580184788225976036170143270032803251585528575089359453916035890819223459806763462571088331006379625576313294340556346902762639238299542571780203137614176647586767022474519998915074331744500374873680594646591198881249797386057365880544430999424181879664661871477156903639387169004177963802250794051294511324287136262912976244023260435947161230450066802572792721891679190797167682209229382778995041386034352671720847204492318885476720408162296263239074741506503714221811174769833895466725436285229633095572997987461002787556756811803068847855522361257842075424923955520998139939318825265436365143065999810851515143206562757094150837171140534121114137577286704855891120520014328597821339095889856505187659070921136237654851590738915045443954410225836054832404699005841770688554264137635529533198642037814001375599225135162392604318304066281506849914683392888227933834886959681398081018142522727164447151942942030592100019221726329386443152008462258407131845465619836083960951023964652401399004538070262741755541960662576177445863277323071047852277768544433019159016936201438158667008169211276082888354347249623150249276762299475722628336511482989150459447380138321075359950302975184580593270047394543627587146327549521990739367358470987591479901795682302431657146508473146860861119492560269372388618821502754475971514536307447966018365759390376845197645438515813473297723760257263482955110366206455902291897686844016750069775283547652906107016627913230093179633633911685845003636300177266704926229760637414292208612264702630810185513686602845168539894395050493287800980374710331601378149546796944459575950376695970649492608710190446726166785765812616072671883018523520908652306906524819624798290458544630014484747987610923872414771472994067868301501596209432918979430730474186508835182607253574166534547296472614683166291088173883310837641267513299566417215522029533842628990371725118385332397453682725109149753556638712048216251519221249950732763236652979420492866302812390840777462097279047206057793645489571152456029885382059197455595819039968364260718269172703180326223068428114811192872955245897642662324553008500956895593515092999203473217902537616803380443817110767505904500647742738975916688937785264225726843664419595804140180948409943046336814758895120037493152264718926159105902280551307662588890937504504541442102869241164011058689622831165178221995331223946687580189033979188527610540564250831929230260168797005133929282580616542191922457482068340618770190227851778769182531815061881195704947990524297990154008550239314882691929142932305180628320654563587534689525222858105954752725414237499521040510678182904860580531158929462986140718771044074973285576595354452134872585211753967559502223001148142390711931277515477338649982652806894328428662044680239951650329448137568673606889385034233917353910805525442266126953680957983701150102291982652540703202076056704164533048431102496691879828092158202197581868197235870363854708768572242178040121252976259464833160447261181141489100541261323815676435799064249702686410425503761165635654610239452011917250834713129545478473940161826530384988945534601399686521554955903556420602105108458814469464976851685561538580476469302074040661314211342957538386898017440857745900600665508028579150684440851846976520560744572343152096003557817419661530993249324897152298547236078173741018276279588324887032125614853863076188771222215928906461766767252901135828484076739495924529098471993424607616636229331045816857422300804076252387704532401333288725142852141907116687967048505882604567092457218400863050975435382203454842745109156454438437512360453120558801415307773866296280877971427760497787443953395833208636453587869532597948810381725481209994603183236736579125782545583464631482347187174113371589239864899673668060039168049423470897899750129978730419471911672839671654999307152902736719051660232994699178040825762636696851978003990050997842072021380524774687650086174214814750126319121951540018411057620700008159503587389053196036390260950418504225880014248362739875364581185694544307824813351724998601690158550182054893673759969053556454575919870086033955434841748105242108146658846460735252768778202048274510012484755762868545366302820054252454202471204471956810874781409920269307186381017453541082329907882973965366042024972255824085902503556677044351339771766865988682921954151421490998326689646623415383553250094668536140833972273014502969793573068203411699354856544458271028359723002011114471098348179288117294807074665937051827891886678917048155465842976939812617483446637418311784372746040897853980723109483894852041969390936690958975595187491418890095971468058762424460618432046277789637841245176951643641195517060632206798045059640228225070986105912568152647224670922488277471931529750980699097580346087391809383007048385398579613176574464175710352535128517548257103764793850898895985860888283012838652815437695358768570967411445439706164578812131563129734085681288442888360240993414084613728089108365716637338139093544185548206384976494773247157998076092950126207231800139044669758896690523938048111479011689851205681895455740509537738186029398441785773947356411176217520677618392350217633775726354485418181560749741074240385237753822700607674752717951018249894241278677983353075252897756810378892316932743042361001513881385955768716584131978097704462360277493509884245078843162841889228886143862252624706770879944745045208447613687614030220021435080937401838507452378295338660190897133134562308964392763242587080336183234839026712264181408002730221945432477337596767911771377228841885336863207485888058876284610408637906204228565455466447823625076077996623176898824002407019252306228315657213191484234837647247743051728115294298617345358199729979552934988316561814068272870031811328521448437555530789301728563781122381792272100057242596509654491683375990042291615579385319626533630890089947122345988819643767357493792568785131686044330571604908029266441218081787821832686583183740564258365874244085360364094960689654048557970230869001242992973545517299726897730044442313722444946475100926082084130651887942458827821709518499246103003902351929889117318844310113756795130935061445085267324254588414927723008168989105730624873401856017555486787694620354704782477047308409810792727074329741591078478207936408914096666881536443872402050419161022531040926202322205661876031228113932497375846307828810719945319797082048328631957682508422359594502934947274824546151107709003266065273995599942290180860799053635811717142764378131740085566653027571144078518476385775961979168304684095062565885813841582890206493856223461766029515277400722565564136855413075375573152877757053797669952022927314409254524913887678101137176096130186232313154258319621317580720744416627370231730134071031364672532702293125927757078644457037667752143206278570930746706012551995319672106637710105178182636900508071285598893094846120263701445242822560453570925761926146444217494148919693351124478120653935032134997802609229959072908527025745323507419973440931106338364746322340042593346336853084332737878777740503376308757637685475578819516475734730229646169905958185756435098503919566470242009875246668483300063351707108375638820314843402607012558644313748755360505668976004176746535251824754013582192314012742716969367051584099019748084247805508301234853487381549049395134281042879742327954733111632086812456584413794657277987046062944517579765738854502675035764196366656379420914887993939479066230624141074280186862599885644239872497209639086724494290892534309663458367838708623801078031205352130098609974810791605568233735951312612531890325137166966738053766043834597411255006620530559951142866933300870492645625534612032116399941438089971114419803401274450692193132944481380576143527404197283693861692885548698115702861828109068239553951918797555950567933871391799968814275535802985987182407972406960467104497307505924871349486278146482169775539323474209334532574235136973172159206573318831046039473667464684267478024045852357622440146860375021570261679711967233171921939729635073328170483833516599398255847864075970197489841486869488697911851528577625503984749814288606933718577688651709975077835774817037087591167434164544535912636340026190343658846906197489130735838045233459147833465842317641461245887305713621162191361547930677543597575515573413252231941057021739287008555239587632692847224151770435219202136062779364996143409676556751285659378877484065551137664353313976480279611449865955469529934784932324344669706503245123093966844193049490001408150501721991705677679836280996444980181975049648836499687353303515894846564558229285856569613148744696663706340476665496421130544549941558708264863737392395810318177934059968418414733349063217683012615105851183523954225186265563767625898391112236195595017097300942113867791400872776278372378285264630656879997878754807637075904377381732130109498681332408758458324689014151465111204836311439295943327119027501948308012717025898344385843711465583511244694157540136228791173608037021189750889279891790649091098836015065556613337689892461653658337143227313708116641799643038720997284629385198650817034073200269622071749238566044203793033398800662357052598246372146666913925509954127737255423521697072890904033300804906778223581647828935383803967760066672338382911379420827060671745159019012832913219205639597378535519831989322081176775849806383156229619116063599729806890581449802610108347083134833678007181535938850362224345870048590677959661338071427663324734061787604991345564100694473648440685597719608284576380543115466858720216776917707380911795021337155335684779583464023213199364480424204828393704634695600716784400786536230555433036305313773042591492823849272254211291299912832985760018691692529212076870911156542162915047951537868507743058758769824534321250318314376030348726652491420306448123808576524717400760587067566052185994310702254722071221373119698715223217892420039941646716140172972958262048348381635898382508384735440390635101391611915602319894870085509681782929368922022529374319446300079782134828072157287744268143343849911784678581459967061514759505359118355941590769865779014941445479615221699120482847155083555058797041423319572884318501526208827110715963767721917197218157668629319376671302527337387412954781003549118066243238472535566110806551818782415896892527592812569089169239541091726743285012594390773223532517104836600415833779290430668009347574530363840991671595756516008393022375803104803889549825375867011254320721424499007460510515157369697554612016077935166980135542580882709032575086238736640429694882338824878712756830187621971630652301157839058956001828439915135545545000808551272496305511446923831421674400989724069788108055828640287457710576353091946683808424758511935211179784241449465998237683343948100125362108385994007047218156915912143112331892375614593313510431018426346049482910236488006681369507095939759396753485030785258960901722121144676893846194144278302676762781569617380911518228235763134578924026189492215997100965863479839825665098921709367607050630355143091405809426973438334706602285513625953493561464974774151848260287830566633339778996194545326321006040699078785957659289445409816833239655640759733561078063035851546520502000924366750896234324547162282451702856558889182090736708124619996989815866944065396547924254560907608526366747121189628040125985992290495780792333862459606003858269060588558875840443660493678827501230222339683022598604651936037383450186240350461259659125719929505618951849565890366158409046776016152567416268005447695803203632039035459542498845876591236297774639790283784109962034309271188212774551051176836037110752386308528562164678312072085214446564862594281977790623769334768034023670437865646993506460070457436721577453990555351663480089655734316692333922349558859760348524060887653080946301037540106306960498848179803396241576826224534900357522635453902867285006932485257225197274759864985029429456926810419129346495154400295076750312822548729461226773555516808292049724110169144509146766828532541704938296105351112328210622119763745768839550639959927374430435470737213887695836262079063863391159783296109672833405454811901723925564434722448373602377845805750887334288397463352246091686264339531746883118121467459236713417936080723460058580165440763738234456673452938637685812045574949859613823299974552954609450707651387374884529782866969338026705030517364698796101816471726672130110386343896731320544305995557463292256249135040826180081782755929059607646529687447666530599289254576359826744861325771253515586024150752889514958965239004250901916413238681021955949170188942725798643224431589817183414988609832402442287800392406215699200964310995725997254798478247592275805947288965932862404252698530509966598261842480030905958259110234788193974292214685511119940635011061642563187612383361411091602918556765744924054201196315125592450583899763875985927518632749836779980043857344417981853256449907017599248340549206621897279651444043674557948882266861035414481615134997631355691482136238008503698726951875759985659858984485817158427976899050691954944689942829399308015448956596915997839295485929475301344558866911964157198507855552198324899855210856159945191580680548117019345987647292451997003587290195171618024153600670545233314838524091896703167111067646417459588949171554821577866200114360848521688273913747438320035335705140787451027520376974056873529015691797007806455718323242160113352884172665201823132442241526879118522469942433524978912791652475295031929859816750568580855404002182014862283714035395033189740029096187047472817076583206047874888338887242528303339779212066397117156963231857031033062434025064907550281993251776521991713839664439111924374786253522922527434349042822631866225760562520542080353255844303344785496249535066687310454535283148234136132392947864562895495184439586202758553459551022074588489805208818846771802167520558783099908644799188401810098108684705269950074024534730397201068763342879284126872991552379389238249067988819271969864680238844812941731268464796634281497475809198182794348570724947654993803770984513339834720576315897306760762738684538596105029859977520879244313855854944320966788867889262588701069790677354482551976357433269934511529858811119767088832121440186450164509113224829253308091644923043654832328647226379547398425926349056629032902984438335332813051493374333364012469599104907981375694023451835847690300885206389261501214473910621629925954006678454428478065512188902663966524854468035265792442811984963338402385608368959577736460778857816734660717627735462547979960467501288942966135114762102206663570541203056961779219544123384290609465573321248397045028389766663353289086139853618798735537006992661564167411755628749078142022612824702424287935749040039226494915414894150718233589560024938326571031650332837901786449370774492276531008559757128169481279938647679233459993008407912034176451090265936893474764435329858138720256810436857806116804425037826751038911912336302639646656220587312495159176360594870806264563988239186135529869504643172250896451435726756086422268491463566997421920790334600521360133603662721075906977819046717080466641903142735901820462364269518729976859831392218851526006486991026175464168584676523206991584527741349922653930775040631776310937238516943034769393181951684557060680717014230649609932034905988504274198487058578728015665543252816814442062516931825390914360248575719125782313689539229217686925992538671319135219055810427269096246895656688388161837358573540681541369509035342559229172871898275448118941436360299749764448882396215936480478529767816600698606467068993225545607715335488504783913886028460318403148310557735115030658163164761449370827483622080085464206242285783919528307631333071407625533833772300930046749097092563983725300795560770820985121056097961934407999867370123589901865867829555317737123510340527514422864250545397067566928410068777493366925320801615971116368973754848845932842353350673065595340823305816680934554418098273429953277188101641073186254484140409731980101224528317791928802187371448717476503251753536068413740878215832310926719738033414906149188264374930458804218688603589700657421537356228217331525783636130156029120412765905286073257874545373432006458317196901723420856915576993243999554770894802529030973812254987348568106735192905954946104385139452484456932038313242105094795457105645846440545858332901860412848741281549848032499564909205553469207989851112703632353790401681120766806908803503706260345695473540702090645639687514741020006392723391584921982761984326635309227148027771564668098560926391107379255306701461257506513958761697421221697035231400842495902223341153285103291086946639442455230287543083383295740313505204380511064795132915403677415776264559489779920117610791534636953254281305033298232550439804961992098139778358857842830021796868043899129185295837278924752675062436916214910332928862770922951965459764041432776348043147003001281209512409537479295000091774977833567188749250944707675183882432263696691042581562766369174474352915633963275040374279113555800493082960671157150577158841764888375646664352408685959145051551090886905007662105356132825785507776164849625713636978624552872860419791825807289453028778281567223941191783456983021139779370809585019459796774427138932324168780241233035019568576089131476882652812622110312234516823545854088691109849748845729592743352711532732263646956443001840360927072598578965494391180861594047124182641773396294888799680685134065767486216426625107087025762838252543741904256826248104002696122554139489503427284706414835532705695986557265285841713590318379651379655835848558622885254945418040602185256472100135412831980338949852002747238768630657129317867082649689836533903276624614009605038879942686880791578963020224903409486315810416409407424293667955188840124164802951062258461378021481672883823374663803499497996772875652457963347671749264645094859587216152643994627445279948082988187778658790293028868615819420855889408716082953011342397285272149620089331343416191549119467594184285307100897323789928478281165138558170349092230228568458577873220962760867256813586449877287452516777505002336085738752644587697238769272802830680262203310664230461427137436532911466823615883935292740380674037421188085618452906837942024270344005045298305115981499563191646407979930830670982955481610872164968271909043562482777381493133873504528195392456741702453830770739325284425413268699497440248364853546861131582978192997631857842127345403814834534816624870533014253414610654270788847667535966595406933954328584059097905360586970610043286657715550435873489092504242653932729512191241642061866011493837371991756665505832162051921380231746653492717143619295679349103653687242456385233383769812429434000442791622925371929882275971038157388061704124053295853697412816872309916953240540231100111458170340660865815311394468354446891850447997621486099895364933617258143959574379042953289953754462683589716881371327625007413789752192913881911593418382884314566382981991274493715945549575471153919810399912507118177798217511032991798953014619670838125159857066364619120697423371105810278044311343996828041640256898574796260018698033366804716772051529342668728111009859247016181973362415192857778218558631981114341775541900765653433504572193510908000238035887945419738865257545236978341269404480896306655183520755903631406049573029910979969754749712065549777760564046078835352634120566191245240875418342622563957699247256149213083642863474685654433603958412196445725112344811677561274233288363558884981242162464921542259497401828645863969931366132074511113883131648972961355188330372620155481492952405609951661613191081039452202004308107950383024646043224496415850014075318779596824185790687309151324930184538018914955240543394002983088704294953149419429171610338975485838959359681458629368683096295988262956772095559027704006871970612812215086886934889248296296015667569724556293130628105941772659111729394597406819202527039220010854323035375697586373476334742011595498098319305436684039092761479718128508801473128106714982327800265720329804556266196644503619710775370352511392412480409948682783074229792398508164269496865150175718624341799801565412724570915170068962585329719950681253251489256543637443668969929437176394413076708556614766446510738659466164229387526823726709273236396661156201210646438951608669764738854374917839122735079938182587274493994829376391920766375074923093478222144000204397395702683403165223954489213609095574441076335925483449223413216970593122757113689141684866157002183278995700846844503536492420849893232301600032091345141386269493817759161096265882718263758959909799858787236144350480541835482752934529817460183602146261042699221978051340325125750712795721976725562367679362897629151791677351182431923215608967870270750167502002405102877083174076840497432091865982162224286745244622751530791097514579138631063803717854247519587196767300456345078742655747228627146703264030284231985138943712040708444524578190513165540785864414385186054207810465464550614722624239287035634800830151181921787494123346580925257088441464929645755765361316334383413693438133856356644359026387975116669008056445939224363010877775024559570377711132392096606239083138816277969661089184979143716645905612082291180820112280271196583283921681321015411757862306740739096490369552332139442051137932032492739096922271072776441060839584964799058239059678830757538505084982304128561110247815103865489794941379469857331293537433891183195702556358147375556993954984603020733176003539933224908509134838627371429360933249081148130192383877149838439930229494702814871026019502431066346237600187091877194508534110654419184369068378081238880278817408142769201384954957387205726487707544897185392194501821617881960727008078020661640362343189051384208188394668191989196540440077858664846183761496807892448621672849473448039438344080508647493604550313308303950411638197027329019758736009953801896988548118191832051510133008238506455637337374348708385343249511071410753881424536705778042729740517005934680481228043400811739435724222689510975280806675769516708820746832655375374835357585822336899554918506659239415227144828357463280651979246205264556191167585618291574533262684070812797943561010283186183031763485988130531523859290854436116203236729502669043887909237208224170595333643303697583771856041530074689092104008811308410773026499383443251801298208962591425882084233231496915321860383757534598003755757815873436403730849346418232482986854760406334225052649088640210345490313886154044115431823483071627120338868649171654625688839870532275401786808915326442863118161516819629228906000703666895824943151387464673478736001970839118452025364795368056618603030262287178975348470415461789454632485271927400564673157852093235080557963587756857598698807857255386115787452208933696315896511714209138833849087753719435121124738122170520641045121506583485649429508700979695599905327396566774453846189700515459747328010178507378611093882400959615820193396251332735226956134363201645772223601967286320819892089573763207337979045686537724349954107500992035850077849782102399779906895010097121264884845437884545762925913302976177571621982960831244583719340471755451188102559025058293071761302032121712401249964217235478425415000671324705724591438819432139668811440461230116173244523151871062703338743010048560388248480658294259446830968338544409262283598748100276707480881035968097497886842282911020248611631538740234696697994401735507000211371057358508058264095574424410267380760874731209349926809889129536650740898130309022375164877387877397097009933058599348150397391918895734194720678781954676790671047813302865967133294115584979399036715359798504225675689984755854802498120392580816028442048386355021276700270800924724967783993097456677836193354820078337654110080725675627485754273062084346331925442338156200078672347156471481885078386850749351995221830507715339735186684324922497879761404023783723176704887989319723996143957074835840401382557031188081452610502116026288170257481104657368484708600093279013064827317857672106209935022293183324834974408628936212862629460487949113610682321679245421691875895529690898101476574592110043430434266862442990392132811817763701235001686341679418771317749621852978675733547162860013646477585532716089126531004333337189025054306221057782779741405593928804602012109059966422213508293494326284715462985757337041406865495339862620453250719336620852227427670242716789752301598472158850236427104245690249234463007765054758069902906198040541097320376505989429910899288308608490961142711994474458495406333341438669793616376197776803279974303398142928224847281379411653814378456550922307208994278553203158575107428667521475513981874860875477488197703026175065540677975433503378196253924539791324387541321135741779942235481024015535875411136230062688952360284394737000651411492562969042588471107585575044041406756149191462745539658283243354820312449932153856948153685895107245233802160583875910386686473671027874169090868942986158397088774879581645815059359587440312711981242134565790393860030355818314579145582710161008738628713049731037161481330922462600980135682726583258502766887576741562364398825862240915630175788980602684019939675907037362948855573916717288928046658658779395993779975246672818861913163840011617919304676568092046183946875079803876781521962564337502704283449796421818172000569373659543865253251909416601894846202453200357203305644238124682815126595660111187942961672507500203765803708414139018975312146696521969497172076364285351122513906762172826785078257892474700018840263349767247189022673189753614638349473266033793357800837266031078894057734957218266897377095617444621044119176006286050429171963705849939488419016863690188790724990984566216355545807152386918596446900219131857691766636078193053930110536934298204725116121357755728232824616373843630647884023125649996249985490464617009012838446027585648895854839312432966527821151905127558916803613476416721111427438915169200791943210822625216061813078395216237741303543726234099730569934356567924472657077126101823861882443192115454916137513099250626373342079767572602414282588230506537312821571534332445565802125995953594444364692006518942987057628719372391795778558819249304530049759160045707129549674732618811818527118614367872649225165209085924789552315206750241124451172834968755846189215325771273641928554863563376353141499054405286391717133446683664814738035952414667078670008362517093361653779092048195535141850807035658738839890995839186223898495815187689015812755680597721806706371176039808589117577517611940693849728167759756993295875748367345324680311106511479750768049251339150257562398848699317595840653830567655006138690767705207559181333243630748353071961402773015442387018765175289804903884368914823669331361338086136054983028421664465012002768120350773137757821100758421825679913446452584799487675794031278495676480363881323317156076367112868337754810207816502570557682289900924535507012773311737247368253505485370873419659709927843264223888345944778438889498177703422017305726161585004235054150240788260680028585817896162874654051549950043536513019355171762938707890631687583187715204665475797483110354903631383634061210798775969278185155661520148541920178754801797123032366201325713028993108538948805607242002311831151559009602374918004459765896826853598470272919236644499348208714259052275326336382067976975356349852511116500179012298610149521029899261266022345118346593481838443767478954035491615387028392213376196992337814946403605490218745390197956256247482523255310861523023645308627198161532849922630064533012684455478110142794942460620231335825399164189991633004055243943811071160705826649744932351656669735311044900899771898870589034868559819061146571240219491592661535951736765553750233637514456734545879771719416035774596432457339391331297511041484459219417853311628943054338162537670550753815234422942516622221350456420003708574828821152282316371944496228614892249574682906548667750119903904070862606089068945914276835762005467238055815864218379544524951053107332493579961299708003887293767401969976285311618974776526320831717738113476231753745648649502760186110492229980347505494918059542350494643248170706142389342279422434414043545151306969179647942673202369629128194978478338048820095573731886470295209472893031401784864114866361266054910345928516562642290141455856771151466835528298362639076209444893725163445590322524458038429132591031812041639418756790103792586412376000600351431053068252800381119076671548167135654487342607288132691488072829491523184406237712396238813271293983124420555500414013819678269793269477978427148880415762997313425201840781965702878769119242867492755389923901531848421747595516849657112681326426231608281271360254065266580225608728994345892871201091583995244496855462732167753054851406852268137406406590189136184008708752221352777379330063265189291611115059579315524066752503772609728949912041118052550167892010991135502578163404137768755366109923712365653231288269711953973402362188383697483138901606661690358245061512460840078633804870624113810968336108912187450463988146941745805054964588816448756030463679912354695946762468511963678089691305549007539593609027015015532576233480956734368127120460069958724160431491511974224837993736793004159051215059884528516939498987051250441204425745353252258817292231824221268188789504871045196467537388733909562477183726665933038999490715945447463572488848037152425289983505384872879919772428235617692976499534718214172128199403068057709587410836548387035815353602339494763827741781187378553985979251824371632862519886425104697932500198067974955678859710268503273362353179281768199259812601211448323995985455024568599698568424977620048558297556215267653643508105509076299820604393051703845030268139104030603159815537675238712444742615517861690362720164614554020542164851569354897361167744504032300490786423990131622577262971840771812986930654381254465649442969409920002411887996819063527894302148111814555544964775155457911475692028398119538708226032978002823725164690330506471502922511341007040921698445835609872597386490714154230929430126438049269885913477058954492716120556362365359145406001677350631570202796504106318563379731720751724169322400715667647308265595056572046326870281820330142098105256599010137174739384014056994476274311695297091580004925774399481955439812235531442016833845074309223447953723697649131369841911143202679457041627498234675622124569707691332096039110393003662247834161249820131417629884349412250372643170282252167238626400857714620803482625332021761777788407511048041837586793561172610498474544430797255371151489380384820007495368289550722792400650100186358790899460011197766756800720702609118612711221724421166748113455645264694738842396809187076025320840989372402973270038964958597918806713738135568725909986417353917393337425263360930952625153547019394170560439070684275493587759182508262044704284162537161540769347609757442390527093123711362448634744947876437907948188858618351978985983462898592780378981054221077299654436772732729783519164211663937446675911897421779362209027249658037362705924235997165886242087113907165344799077648049167725098103269894195835259704037584273359399168309652750984584948402541754137195017245563355556495183061952659638368247853781116121289104168379047178472240396053488090197194242271934762402521574688052704541180649871069938274598337322473842055337336017281004654933567849852434862094420206115266146825867042563848878042684946635450002989062798452103570183630397532440917579941955272766592749363481413951768030071117895633451724061234102632808773890609782867898393523135396702260684922435824528040930720335082102066199300579679183350438374256342474267042283741702385312505669317264271290470301654436897855917247050982765348166062348107030622747234935218309364570729120823222023101066050022296198814550566415290522714002154315594164343800582863730159892132090002288524410239039270060808074754182787375877348433662689418147136313581508783264559245418286118131517549164607033348616222478859968150138454717591552506907929366092636187058781372624950956425166241495102574874852140174159252527033352586557249041457044775216638729367636593435368909568942339497497191924870806649278531969103284579539721880992251737528480016836109629956407299524873810901823246451801215929542653339562682828282118298474624987753087232688703415163059582046972516114927349079391166035290236225096440500023897146766241222796725340901684648976887738564718892181795586091684370224818547835270535793363942284203212321518548514387520648353656150023938688666684556636571513177354071716786457796694829961494428047858155902448926812831182446746611689860302628387009755909183163917923989292503615992150341961109200237998736731109568206858547701631277655498842283369383710290384666741992691665072607836690014372968988384092087684969430291818008546702853497681325956615317684848894463060672153287436925670890433041724902265108348144151732897032802077156565301443897819919227398757968871136942915430234444638328907484251669213050311751095597213460753471365801511548204328477545137515075354124198809019683864260932658816118204920232810878267527888162597438746720826599608242015660364062623066719565591651266979426723151026125915150494347379151832962906353364797098957873098858229287074976734059630385202021378213326291801271969760751331065124527735647130613585843737417871381204858066326888887342908908561342073181002719306403749983548356242849304243058115285687803996910329290090044298169549839451839013329304392442170773287938979564266649227359270500031741075008404997619416789292106404077331559766585072350005120215112393261649600052727845101967192180300160223078738136094490719619032579547175393109863356875398205348279768529535166582132529357887610567894739763410627974062582017479829982616586423128488917051069448390430846600458461862034538346335758626938178676858722510723258761751694028832094024476052565318693369404116357961003394768438754348862641401923780317407607153934326279186436113504260101415995784346964098745224030472079833802063629011073087348569166685500169003593257900172775941403027502583138311500387907052976138629766524019562868303671609295422812529478597206286522049069532808053453965171136520674840602566152066909232901250777276162963353856592941141041246410241418673337572740144513638172595231039674765541763824830827499073396926980314417245933935966417631891833381960713294073353588284396111969692250551570640950735378894954836650154935028372530310509783489150679951361515038185144738163275786698531177621171247592091668390878439131469611498636268044268171667817307345708821576192945852787637987813178473058823781646798563716438921219993777182713468421368057376895876522507827123673152973556019255629459430648850861206040579215210413103388620118366617369115427369547564786496630192873340451262973815995727468974082929891476253761450597379786074806253644924888974791666897983510580613013751883055223886601183240879982957123458343127667896231049845550667191268521371525346758369348482353451910583398030763934565190616558102363187513428863425939470755212414779781224265428738151887715725012852965001793174157805141745615659972023149201476034141304035586361076007811731570429434962688377809639253949918156971877449372116747639261524531589439426861410578176582174551950906873519621019141772386435227999103091801520762701845196565121547144001301552717651297845586890739162083654093030651966317524662698437172245213247471550573088649764029500233057646449772034437712546314460483315821190743724796847498296529955676385097564009390386648150498669558492137661784473657281888932937721353628148431564145528287506471761870945268760876482832401366231032080701222116596244553601312099678608425529968181387299462262206320654861516814179983923767222901299223350993946288395925472687024550678596008422534026525328398782002235937552901256291598703540992628057573221380622937484326270481458474097347631355950882626775739235488104615997099150265071758427989838222589937001570496684129453033546452924724959953143137636210393589285479745318606869569817781470245053665534312859508411329219361025083826019421005390533685993088496728805648788270631284153943992590560428926482856570956101669391640990029858861980616814261755402577606332471631121442045315559621886021648596068018509558431494222902041720676216825665475368620651595756859327132036091644850496222856856348875224146235103794525989763925323850749098931774930316541815275704143707319725112953860736362750038616821424473647964827553788279011438886745771587405112300917231294687920271517564576737665999124638106744169815589735238707635820073867482155123411882621054424889849879932715221011006006516428645367566444938071279160018329005679271516193942265009031166606573626366666462331971693437374297340929456558600063843140487180597601587516732487046818378419856541041551209732341682318545096928774329864296578410586126510903283923378017264545831928530150015442593682626865557578711576968217585525796377257802269618678171636962131273726104774249813418482036850203624668147263175507575004434525938683266084112645657230132329297650130165181552130565322678590773912219376891445549687548612982653457197799016799167451402881454937578203457423418563835952292143483576823479013488718472024054510940644642511830570747828484572297610698486414589268375287833177887712564666959600253545050098568884088563945590216005184612090744766332490869374808395286760873974344390771815127093203919400399427469190529375372372741082102105766848509287555222802740320809517252237018927202824246897376683160985703901693963213859591235598818811851566022750882770253070951080471040726106313694010819049889459056704928482163202062501992873955694535994477612150258945566077536353408362724101632804470783989252865647062864591312285643038520260434908995198555072529099688830059065464191199214876384831771830042070821482103398406429985973244268931811268147483258370350895176675605938422369521082538563092324377666224429346538892218087153804837134405294273049649674314267713998391882030052499125605171128587552665351774826799301679679229623221775389288853430916772631594346602969250540026545516105369761476561420115941804761879634776170105102996597973201225443617041749902925256317524606298296702701364679254586761959026756106138943151673094357025680534181571453021655152052836912022354216322362967681967719628229784235500270796261158804494620309143434235018131676803541215436128903752634388506515978263387020681665812033507340534528223764910833735511051607816936272931755673485412219581233478242287638549062730554899219283229078176636854751528191169403494296936052434969580094197773603588039669199755794006615588569125131558712932068659134329678792580805382139335934559720760547350588676735228737546507818975999103709302787177232350631358183718262781141740461771127670570139183678050071742981766318549351121178293723107121346700588085255335233794012727457114260136976371975257587680507229558778654236875692472305340358164495311342965302454761605562439543707207512527342126997222779245404262637483229321814133275628812379456021469175827426276011625867623652038438235201374402406402653530722462515979991013430418701564724104364263588889979711840109987180525274919332587214072025464705420972898203596596719732413144066297215254834437191390436324700822913404392029363234050029685336532362501692370091024704895101889630842364470320849301411211098903959706397418868684794033906627250944872421085593488744849827133592686342964996842488810050055153601239905633480676225472764383405707362187985365883969360475666649782367662182822363132259480881678193998058275671224892111991939525188497729654776230943370250434700889325893432729249996892648972133847853619663742094718548954611295155091401310365387341782658298502000245783215639889003976603196829136036706105412478999963975687493063860208408255811780737552958443434765012270923878034629212245046372106077229071874842056449304467974964211003260089566622013157484001270095188089370392194110445103125724008019800339322587407973201702305218760423276922908235375559019675190403782673102363467622357309030373331856236545377900473391461486587625704090197383223211103144736175391952365342741569134605918046234273277139296592237074761356140650061023497220017221424741854682365974642254955216050031830167677386749345243860616337268127508667228472935643306784136430171231842021409956854420936322739560506423287279741409807545978827166998988469419296981832530337957822256837034946401503449319945458378448064044046296013768404567783157088292100324617105817597244406487284472645639169713930748866894804701002356555442831133482373271904729397960534770606986089587145687647977822324619110770037099044477825103024172076475837775893081794339665195101168886137632858314212633149093208143832364512903534941369476995844201920333095763245581982808279499883844185768262084242400253081918354057768391764139387440729981443853061629799773059938951331656999776376698545918892384352963208700512625704717133923526164178911695454323580238126534547481935057730652791124309635125513066935905508658527841468914605988132839381737785722436703050898988296070457035045666839025453267118490629064238806980913551174333288985621741734479969868397331168527382345389726467657794979540561167322112156509784895070925057159221554171014832950917441753758711796091828222436427453515945087192686569750037480246209600066488346862394066632743892790549308256630545465452876488927497069227906178677642880118117508507069620184214504062835912134870737094341948204546517094740380069575524861418302716264224197264393739321094386323377460227189286715870196215819707477515450579051397821101346011938306606401871793504120657955552171787282442198385839439847839070591996578260294507847652001739255363901237794113659881984313510366129157431313610421598703164254180380204523019853976702654204092885181802332396792718199048842694457412313105635499487315282164363994254040949465711407926330400105972850789548842837748577574780722576011171264450014881456418393275015996702639676976617118562847430990146058369301334064453156356799448599845275526445586416475183615525226526565087491464338777729610631182369579302349335622842999892511294353594309104514273119007702417057527411153365393877254196653080959095783721448446150092796942152125915136349340218792319964748761487888799701575294661036968598906550894743582550902785221119373556220693223136726610158735672255588198227158735952427316353568937856271626364202488552637190775021919884145998516066385278401582886764000714886831947023914954216814037486151036343785353826170488898698634051196636413438950496209154984936553360030300589516848011543977792571755820910545573177797692517564604800625552497021430570824953793729419518198927935292647082651315415634786672261641693736049074876566766301457003762590473860767671384774902634020240921351428049608930471566457516448802031877254936084096093246964935204858488672233219850108195878775117783753859204695109051254933506545282454897785927746580265285269558432259025134576299889048192870011866567452537452280496063783716299447592687120671328824557059166668530483098451323431508291169986079264318075428943986169737108738677693487121193745265822742405882198220753007747687380207283788149320910055595875259734223514812804818490957131143214333107492055505597275924368227383699567906928989076992988263581547073574208363661710401672596696680776163667477544830528566873848966841005364236688858824860108600688114204021201923311699527746556712919682895372577813404798718664996270742372807034858722271854049162953897111716333711085489036972189306623638558570013368483594460091626726299137716639392989196226201498092056062888070607952261882792407012637189211744301536315819564975392870755224354666991411732815674993820868847321446542294809764331343545465506906478397849847425919554658859866524853347506159910222500199536259597477808490001501666719556300758937005099355135914571584651540538862425283565738188795929104340926471708806801478379080585281882685718861241955993768314172022684952261544214881825230185535884243023215952712477569114211225012429967836023332853248766917985882582678646929336495114566473502936659763056732809401874287653075877990116964730988478868823753618611557132684129029839964584875095149250669050237886038369692461791157874074492617548859521329464428576323308672892726704354729567169074044877057461726152358386714057811764146341997216699748136058794128349828236800049915133235132446096558237376758901057622684738914439083001504097336928446304143115987770109388624440413933078614767646314030278047598322447154105338309179758867533187638676244432784344974937326246838052509937441872967658138849337349465658347072737127745749473233152805075003713301043583488713948383697053061143024722687560195340777066761893135169454794827221475527575750667803166962626320210364637847026609453867104027383980384044652635389964636931443531640520636059722758211919507338703904510371029028366547857761956845725818114006181379752497219672855778255943036820582510507180481400696913423652001244976363364392788365218065924748017457595571760750367096400503617932871786198250995333462542841304989281172073700868629283954570935202756448775765431438259533021685872638191398184861570200374424254781603291538230680238891551107983822443295776194696915135606720874797124810799399865730689513427946407956139079629522800651346603190225516741921604106969218464880562248868657130777601501380492898852891247361400859940779140327008745818920374714554387607762590198897687674568487917765119976390917739302581616480202710107423681093775980667195644992070786284465005071381293584630301290828682683433111688028426672745980286959437412746793641152086500861609940614767756791010542568728555899601152048931014275107249051285902721806559933544275796716090706997991283705482800510981629931731431123270672453881510333728993369113097625363805766793394263789336501200002109060220774695268045969429765171651174463454848786329470351335727409337068104432234748864117073276534175665040044804838036903317248092973676627158349725326191303587959793927374869503220339197835536741983164855309792867821442145764551955579508310395463815360300362068318111106578927695484329623937532551711293544782287222684329113961964497448740606691073204844578271962443284183805126299416244307257708221802286822755277069371090745779263583582559377687955729097709664556675980572625621889185079590206184164664382429601007027676882198396169431464426816963997799950823155831872399843397032126819502913403968266394408276966349807250083213780420413509998176018180231154083632468529101127966295352763707219174700017230237206117877201639501294227601678963595143421082904724674642912380597445286762407473259795777478500767898778581419205796364988346145202707176265101828783097456698960312507991293574449991858988456210109108403375091982778523922548735333855736942868502844704842087958626362523239349958987753151617705340180544579398791130134862376450090049279405404986556820915286403675060350426521043360731831058676546128381726896384820421771073060101169194557902188243886577432850670341952660771698103736069630045207807920921235671274263899673326218173471223684721437040508921331476341301561534627694056499402367369078859089128184797379841020997568008179329911272635485202503864524602971292289915390824474457218687730552744251482610383654783877270229066235044853403124234669090785826515492320862336485579991966338430044527446352791801737477752834171942589004033162123988255799359901389214419968231782040188331880915377238010024480662432100116222340912810930819307185528991510966639116321550246355867516759050238159815172958617088726224103030597587010142996202179815825887798118734259324769361468629750258224808308821312490900967669037079028387355572545445044803956386713626835741575843434287113359758839822875845079241469094472456232147747771548972270479556863949604409593059931985303347160620192602043039750731999362350952355412508133430428975358660384664282932515465281853430658976421061294722824456228129923422356042458908409756336435624391477475065998571823919177734261901036630497364166303117933377139434629985271665382194105247529872468378479134384300488605706208695494093176808066502520678696794505880792786079435587019747500636135322122232913554530910070662048488846592225175382901007792572166984699562242850366678225515471960661020470531309074042761371814829419668855394067809360914119935851017544925834044062850397025620776043018342802630975165952355084534433999664214180199410969129879294529175851951310050675926760846615798282906204700048183407948775355031972542840653502119436421643655735291612744451354224204171166324738942258027696941609409450526041308263190606348460830546142865337443785240912060462587726069677105179647670007741460922836641305179460525045777301771508731507331084963644717493783881798863675006913872630458093517698538659834311146705409402037882616118038639029436676127090816208577556713360828885860738326968894176921218669152549611188440021843332874273093179998978004896276504922266084768811777935762986324107359175037625138130835779530189105961219096369785164722146623132319177414553469993088695931810603882987819159854699209986041017434811200788884479648512306114475498673586892350197847391853929736421331528721442557369869805496152578837225548287470575390008937435635154730004904247624528898490850514900080572295457385792234717423683542980799951357834863011370464672757360927027791114308391684960765502501766214541324642678128431679948151622297712219426103678955389893197132418646277150996380152986345677321082242915067380153557960156177864185113616162566672551147411774145570643070437386714499727251233343690917916418520417869419349922483140867030119646670897753753462068586769639917465621898961769177379432252359493380229769643351372816207750501597107683814265987744371397938492347271957644043326770204020848964779337744415823860576260033257399198876041500745190276294640964965534194973826710258140969175994913215413220425119958359913316259537837586033001173823263589225689993976363085684494734410861746709407133784124166975647881261976239832287833266537833556929569948964925694676458717584649990696518765043313758711182244934416242863825379112799323548043261362370367278393016963394128824356135285295058938956341964596157648026513336040301224457239419170403935786961145833901233312364621520985581710623087204487043772670849825119158316601074457025293496314864836958974311837482617660467420900568950173345355690559390752714383395280097746126620968056127302693885067232803997972729413077144205603377559516429592733703119648263462016890233592227474355691357639771932116447281006700578057648880213505978160768322909182891665236242239714500225747959507896474275266860535135133549653047486021770878515900766612861335306885073822151659415753473825664931031384381018625980826570714117471546621150041449795298995073408049296125363946468809026411721675593076658241383312541863575211287005061609634166262531307904554871056116902329865267902349869372467386523605604069549281500759510254066988819959273914614827502646226851458821385629737507779361271357744368665667042362467424680787926734780053839090811969420185022359142906141828967063744279699143025602212247318867889394778939855112317974377679313975166400233270186458140601214428802698565572568051833385819964437987265762418585913830919294483673014957634097006083433068905747976743823680554091882020518670449712486315567854853847036720577475381298341036273909356594690090146160726532274498122498788970225462198070860098339515027353930713253302911667119056253988449310854760752693479891895599122242261804835430008152145348817551638642594714145409334565355039148882043034460900545297036823523260762194286950042800979805643665098791985573940604353786597234828983499227042252308416057966885349171565255080551053060140921832058868785791410102193800580085144342112064101811924925129473767291612782936813498103952727523794599637882109506615610780072427883249308541044870641358161478156404241790460798615935099426440556848044325488114677034268681920476695880797907712907076125486520252987703270111806554853813044307482742217691376235058021002255299229823631081010864254821087795798828643606774196944750970915929272165332752619268553819094673926708136098413233574641095539204913872343087875883952441675185367413148047023708134673098452739494868096968065652237855345842617143942477952063382790150393453942541041016580776365440148080969856227174016322339572197633674022647022601649105252818018696096825598704639988940709363025144929798626470428980055542876247545951294496462608543801728120453979148824758020328640105534707691136746885133445674141836372558679224568200568740779327063005394385054025857294284971190632948523220759382858783214762663930469705596120013199894591643703435126505687864214679248945850771004871600589619354094862038756934603511982514386104285454582986063124163041503659610109682120509140012933909154088156988325933378653809632430806632901329281108230836635345213759939262505403244386858331762025901374339177047111157118741074815031162662628765877268510500447632558505192077003542177418570977339195292896787827390726360264554188390678517185525288794335093919674851853579062178255446201912049254775696025927757806122865236264519159876960019920935904758514283872024058407491212849460412258210589272992922547349212774749986455994378938026666242238899981017352646876632066173510246424419334584952558588516362207000300587770630162254732154533043275823729648212076985572344504027525788182123491639599846113270815390229879277941813417692916213269618265303533698965042234285119579965341124666451380455152073966801642432809134086236025561750909557247776707295037155663143369048883612778652665946134689534286976249631314086098071584549747567434484506506565616630394314103849549471007125571776885367264286311534909514939433725160368261560225359927028929042025751886131488776653445041163343789001247903840855867475433343521674181118721809399580784130019463550383201526150588065343421563001547644216893641808677585642213520843309015881865111894150761907773680723175580493581568497001684357367123389449792599842617183068862576399451930537097246942646551305294076326056688182103311185632409500498478792115417203635389671832046266800394265638568791903876993187340617518598007095897534878008943624888963187774713984302170484171498834648468679355579701237849249689469665811656630396869911016804736491643135278198148492443386593796959716306467214141494500712228251467907943330652420410191644944659725690062101118246950612106714694996216926607228335189812378223848723394260151737715718363345073799167571525687804663041197041399052971642856355513679720536584694331299212306021558455376402796130469722252515684392474093103166816608642779056897802823484266562623745314964245582700444384877274614380552615460578457203812056035646581785796585418684190692561019082813969863321420374433227496048527566384444406862349050191228220241734478758222313351338582960711890098146791693908994338872749060533264777274628077639467128820876519559431692844546427555565547247121824795957964001996060676156614010836732663636036733865476849372823072423143628278856209520401830640695216426973867757882945981911289661975386199353544190732279231366675899314998758959500040584872907103993720932872373775119210776544201711506991814115741112597957111563032665479758426910555631629175451123925703392759185170491232203680820501473048589353935148883571087553106889558562100271687222392119676980201820258941300428827766626822199715280502259635964583808878204606238617634226802847672301415928824259923769387952252438657208948733579903009604601710468686803917920204471503242714664358708243236208236009392744778408926422960803539680568243559958950481675806639625633606028369978612579288077714115116309732114057452747949266058264834001996469717465139795028742044867973731345657065682371513561573330407223764373747939450240425868943769506419358717157890505489269843675699559333995778299365165652680537003928269018687627642608092806223632768721225753771232188024591316307288790988706291272070416619985228198502005108092696174027367798009805612842976929862516172300092874196850212540827595547876773181251717219465674057289014244236311101508058291671825108171405757916093670845616070915798793095710628334129085792194962777635085662296682477592047471752455093550430341963532111088081238086876970151202285993146715029240780041173459542135026382496401331604916657219412591395031733022799048077881508001671032164430778130887126703150464708215963299307911432526193501933832062485536367856760218593318913532879319190085386723019699365768819955519732830329118569303517190873922965924197872164305510403664163567466813211151969614199100661499961872106425660800420619433551533814716768254098699408434698930616656865395842844873836631825795291524530950630844921525526171950775239997669633564926845214696933471650548769259438910220018656663817109893357233588658986951420620104372274289657802845850781460377678432889999547636120356590169374698214851104593257254114033511091008406102943131936664338987614324353583576556688050752512419996118254991590196703891146931078416499774060270593304373911848541496281573753755657455713118286203591985529832618559851254491064278487485280036974768650683789054735022477216323611693726325290434612397369109708616346968864953356932843263791086289359387287408981907838145048638656095057340033191170955952252378959288010231274621558186166229075929875831873273983985046131580951335220334263762075773780206634005214151925496980108320994990267055807160317677360880669880284653235611973740445672180144035191493120473412717151592790062691455938060600832396387053955941931818071523288671257166802244659881176257971768816925935225638631505651112889221174268272945036267764535157060056953136848710273500259589386466263014277860942265648098162022449185224080531294751340571798535397771859973751056787086471198807398932541096110494257532549757634930491767738569431014641667378243152811981978929362500755568109208841170153646482480522757352359554126242278583896977098692040353031899083886432716664451726432068662151754853276644360562174481033451268752691272567861554925794370859979087645753823107765752519076495859310820012316548702599593375241709088734578054591800541034538097826096060018267484046697902100203504798953963928646469143359852808356503022236176681864842235189498544634731079889910442443147384912986569657102605443724469552295734725055850799957233954683612396066409241493743046263438555955742129961846047941889860105837454301822519101599632070468750549503191507414121414565699692934329148992403004895695486681894100026946631966138466322556764702194760662868671753741018845798525230962973326597579811789913797922460851726993102536897550548883195231567178907705531839975376515994224999029738696449569431241749764431345667604466124097482756034774207385667155488922891691757259438654587866285365931511969783726476657749194587918399893887323546809646679401707185780301031378328290785821277658044221108516983053336868848845568331553237429045524929268456101667927265872525819279320661221260186004723645400326320831128206273597197606786080903278960380492664185439005958794978959599885960553541459108837999113673708466754876042142602068325490527997997908814665326534252534532070156942315504379067030596817665459531561989985169161816514016764586746482579643615541728796997285038422218147135004988904270049288270158053317837764612476313095131394513059631036146388339225510431325042071733884150211108659059593189766147355624428586080124488051012494030176448540236183881590748286941671725621549071350214874507311184134937778227675609827389926026432901055990783256707974947139206631416307006704110860898575959866063197312478864146592574774808154167811020078450466509422759766147284781645767451914996736307481786484602264815064522009110877550425940305978875269023273196414078843704608998710451036979086030401360924264819613497837605230009872610448267492883035699479894492848132256849208231188781848765851776156412896062879957540359765955239453250717232278563558627094095983402371439837579620875567099586537548078844140983598392788113583755995014629467735950128141669234878577070862689628723653899152546325777983925427554080248714620545915560335568794441869059073035010421940387313457586011894829587130884639497348955442439727678983216189163954325413762063106296952309094460815210267373856619605931391192974904114454735985503157788513844133431996421854048239675640530521402107329047679594626853044308837698191168740975984903478465813202855668705243554218036882469408543813015038657364498477788902324731981812189517712047235621848792099770810357092411541837730800823323764173742716229328590923293849638699997658116476888922316863499037849061867072840984121194595824422283046872435571885749808535062119828825516491224973864400719785306296329383419240273229501987974322398795439037845832489228178269641054453101098945216044935777731778314112146910463675937048242368016054284955471929024438536752576121087951922106009617658488432121472558886365306637124283048011518850958962956148562755184575423604588094918220263546902756044696591569136688570322367021216407251954133316233445052902740881325811244399904124826023532543368356578377548430755768525576883319925209455116316543065742023802732129765446878665715425554632947951405021692174090733916249163252533380996315661969975328678301551019229576017887388718177965905791964452905337281290654575928894995742253907431631666131775726874908533667441179688914188081349859613080569301869106647335931174156795599297448082006750922846664688252506648998446169941007398936610108331779586833989317812632249944165598513238922079991729574919662541886606709136461806205450921096101953783079008795992703270278099511238919110954576536843278825470615751006625762754741830604865047162672827427432193395508902854065396359526506941338249773047987243880637935716040178820425703009570222253498977359749132625289440514874839652266805033461705301246165596265296598682850360390960225301782439767530256128060929207908742419269449888148838001202531564368532164764088375574364254135766232978305288212507162629165409775733722736739541811244022320983598097825930230256137037762787509935302979574212042730688889379685399668262275438858568712483329377133846265277576819794100211859203001047310200314732435610119225999355661030283761796396030209027108720599439524550626968913901911013474475244689302487609176746664071548361529321752225534721074669557953376944745393750484752365625351147322858417179753905780112253788434153262644052291795905374132200160185891141553461932776458665356959707654750368786142063041433534439887049161080690706057042346174423986077941505386426169592669067919886427176758280958178281509186154485733150756546146577251174654938135076751611047206601465524973350350035663789025262885204369343488162236811268733162937100966347936075830242453834046179326832382035079020506100801243110547477377941415636591349984627400548844474148625854456864015300307648577207018876157558554570890264694166033247178564126514228004360079775030382043685469213023614374783720929525169165053521226858714442606844710852724606653187585864801776524882546765723617203470850531175262585180141763499187300520717530007160757321798467385925583368102430826767338989899115382447794451301197287135518696850763378210663517352897264594423117566135889953409710182688975133810015703368264661430219199681291149376200413391621442749929085211619280471527958680747235878200003383553059376226227537500241154589175983384625728302374048865183657339218870424483042533945173806405995992209390793056287778302153972460378096544769821809536758238447885849721716247536230142981658553999362839473664591241519573560307888436515325611120115272027234332060033786016589186371318949886096064967000284322522835158235610179754884977186962328087615043894204685157565574913848940071145664172658092059798587368692833435669753878224731964406283519474519909378721510020155331812492221870516433644427614245816873918245025980486017351424566621782735499186823665176011195126574126700913208047986261556560482728087411910126764636310129272672983494007700800136610503682621644962401013593638457636109216049734289993392027624709447579548019959993711569559553272748882424563870159937972714436592859003445287225109208152258764913808457407408863545810218886036254407158559963988978264132138906517130485839494730823515639141626036366108936847267872880025350878931983463353837015289899760357092118983537577499778266933573071374044021461691428902735564320757180040639647680008998236363009015338926581742669723185233020712860250791565653255650708162909568536393855279349982734305109922666582164916250371259820881367293654083959253097338592884738690871898636866483082248848633838205483205739267257901666898156461173390200502398967502399117858062409780093158349017465114018343043585818453898323176292521679640130636552593191534803226258530728268177469353055134742597674373149096800340580567884921340301912563560704357718754728302198896278384406267885902745214295848872814245212406145357395633172006333065585742538500833828429452987486936733566199842567640358781526817819902479966882921020882424925728833121806201824068015064539895438361306027212564858749650463560540460318947259557392909521551671018534428127638411215959130521098924047102733515900469187676949433023561189418989345911430711694585769502752977173242853203604852880070844698189075888431580435732319544689840503821852823755388797908313431127148210344243517020500318031799573161613774765402759121204629805960141364042724688439481787232695738661498578663626177837151066097524595672302784783235184508171596136161876919852378174604465535257261850643135563317752165442598485791520286616972228694650130458617426026762717918673951274957910317873599469680119638647548348674032136484513506745414023894246822255294686173494928662185088958960837032981933685195881045800663445308003886720946584665091293996539976275502765344329450135424706781391393595577583078616304817524850840450488417960757990508839467948915579136248778018269416172725698362343713665465835244593241241797565598346410507150302140475202915412954043395837725900915369090683303749673475242472732666757826268602672878078942626546837409092940250373896234749194203203545872244189036508105292121589016666541659145908720279497748308871217064856205428361704104893279619010103791931639685478642823635914560378091611049761144161405390919291450192400814953271784892932242760342282473073090636409595875560757958570529311095030079873277720960093820415985656536795653442817859568075130546794965276528402669115210993612130875631619338142065297604673532786749426702324735689908276444952003401048625416933676011592678348831087492607474147716146954882026567712389638485355672162223425103235175715809000227804879564487168481784542698312324210160251255296895505970610176849144986929290146699081973648338453183610360516985863518120381934088051278229099096565086752764957404743646560677764351092937368672892071492928818887749236737451789433258299917552620538741570337123855123192772779790284426057535906610932492425078429350139412292452713726038691461531301119486103497610797620311954388762833062196381398903603306356457932623297378000061325901787823714009187847259148905935377241362864741641525803926109285295911050595629057791328679325600325435901451786965344255503678548387147166357722057421389927897942388564222384692267769548657488644184106552850359715346043989768377417614418727632212876315686106609653848253520556745365343146227936403688551052534222580683805555077947238420807765108342945947833848372611997399633947593048831685798446358301878224657514791158613090364730494112282134691307290308236502916855846870843730569999217157027473194662673643207232089563959672690501773709344376745995118909692633906806423528250995552921301548811455315581612499836117622245921708371741320617477232555408392269854846206425675598469227340187968434999955213641589429339813792465984646939544721469502516868157282395202568253376101390741422363098600590381663288447823578774052833236535737985326313686917664053894231274326994307759576955760650834338404254165980427488970753087497988156070120352716362823128861167102146355996867693650868627881995547991253171949897129498172325184485202962539242654695203981134563784797719910401250986018216765673251900881419974422844782901481131140690522232508547254925947049234148825482848285916275816279047685709526532126444994320745178484293312322857781112675105428902088912190665332563696396511658654585731038184881790185799080506973814309928629542098454157954821022396937967791055969058278958484849279328076949995042115106650742394481244664204259893339451955044498764349814406115596885094941879369876162830030743495893112642717499402044084401352645017466803809423092542775979962163918416431954616972370059161729104188157011220343367866412507864069195881916241238034117757190048830360342535529383494293442661079106143135266745884322458758371453104771959610978390477572672381630629532234947426424644844452084834129454163885175866509654622939612278284510145773777893424414951651978097456901682939378506975142225833893208767531567859298014029628741750573518978892398239744193578927539479534203216479285741038496651777476592001064618960270941032760400883768399540517335617354251621045094696057476701930067196023655184074256038742599621440476957163445001095179974217677944782440789271629062746116719431882890937401307082435069630322817664948720708166092973580475526213638382844715960346384898068500327962057046216565836507136008206268408090287391278084303640965106678525611879571216772479252971151202568229353842029912745391722170322349425762083941600687379054121276005487578596090724671046750903459647116683249004021833208460280331394300756080362187929232017750819598823035874306291548881009107130017477864821318594781824286901231057787700016281276256544447149307450331675333010765704455962401661764664968717453436285905067122002725733667884178612595328183242027401808259097051977545331576718078710187068448884733645669578322313995320693946760129274317470689973062567357324165692144352329015468954275716251528107861162013667933300846871088084944783301334650416811300228906386664132483175228895780948773737147266874519723734076349314960567551699657079770702269381548665800529754002861497646798315343159624044429247034613614712661680756835690595989269890036768771898837531227504277750943431563710339909046103729179930901232247799498307723674293286866406093158713273797861717657997248329927830295460610709411306874606318419952604293882528035841966284992079330963690387850818722030208377864764742518871236961726390023481139140823845757309251716004121885234015127099736430207463472302901297809213573222138989520213223502039675053656759265410840030498234495783348332421988295302679427497078673736797358175559103266297916278795777719823418407549767584952905101876828365669068483706566371806925296387174230812385429764290252399324681013028857828962199089665924147577057677063534337554190553203062211171855463208827762756482456089746781761204469250683206405284101585614026658555625097570458689528896618087052117701684242390134827620415299198185275453130437754774655833518077012282326715226776924593167367973734619285622554451296397059546816797986342916720294298784391231482257532706185048252301540005368469243159456817799575375340097918524450920075448663362116881786833745459580620387575865462258655883110619166301974326719464858411715284787043353433121100616779337089950091464335631323880644423505310825505884955415672643104797762520848119580217192901391975606858774550517970223415393123307780079841649918100191410236953040837922038261604100884903805362518321095836977088821769864240504475533191088461966616038103872232353006280034034380611658628297381610740575393338313039675916729105256958373008803347771294526329958666399012198001818517019450930940721341800220478666331587312831989249730266875194770257808793932453747963138439445403200692147264909149040589541166068159473918820163072306978086929873410448664014800121164024874464254825094972475713770628904527752147189976539642419231199233841225202909589801564959686340048711328536198471879490203051855232100383706356351744636314150000974070355285512834353974971003199013199992144499932071745446470796209464870904967315538365180985839808320911490831024097213285665063676638899539201560675709963586794122590406075806616634261151624294818138798006259365092397647550362147938699223975549676668225125943015153999678441560996501869427128292436560009351688041296850636592846657272284630308808333963840728150110269690541771449119118600499993161616293260935868108888761080164056256397917538754804460078527801882612590405543164059026473331619129677616056650620146301453437221373641564437990174849302502066847119652715713336450125482110678918985513609472848294833756872124025648472474456259887871808963557069707411671681696128872509884636937355422678925394900728623587011001902835103081364893786584204336628381073914279093109199962387589866244634365183549220822119957820059813479812935135680422675750054429543483858818541117681062142745914123561790598638085805495393100843092900689564405201500972741430143815978274856676966490522409443463586675340568755138417623245220266351599511997332198119896408415099144922004049761452771616467115801848892160813794972615510142542540339207214059078690354845919126137579063470078808137329983655100417638096318374284646750770059762229159919197413338451123138761731227398974882919473181738900715389526136944925847150418320280144496957482279994425497685046287304601981481207150792835807868019799599954393036056628572020579073097809133862851673645023974186008171886241602203692165678650866362657574527163170031891259779735603921835593707535246175332164253775480229415340965865603261109541703198001058505431204273487665087285611060494763348671862758465785645105599646939111991857355841480069391999094194714871012362071766319216168102287102610186962371620361023558089676673866735131316965679869372188841359028387065905657732420441964541960617519676560985314896307666444928580238925761737403412450999250830190600929236323969301453529606274438978583918599461254970764157620672723626754431902838627303341218294879795522201773649663816950535917358484422056930804196012711368068727691846021864454527318185359868760146740797474314852041114700266171339146665130085037244168551238725282269819270002154724018913545625730109608943424266351983024168474017268894163127524799544900153225211336481908646432746714432300058597024390322653130071261507400394788357083451460672709806458935821017107899480576176993013175247167225483778372672030301190952607418671261705382108511473591882096967047553342574696608483254076005353747742231117378838753497436880240578028440877709698931316050711200245014793836312760720285377186421719847519330266648363640980214475239935747351978814734203657758083029688911724774119296073403418308138381395312592406228456351204924438753059852234593930665532405100419050714632530632893248228432922131006102266465271952313896306785355894371094920418735924504291763380751142778931020793098375861077744926807774848376972678440451002800119186962909984526112400088255757027011435780714868228923015394838266051673426785627132741515163635989138602600512106186789633212619971798749941051951248086215317073573923290959914051186356594858530827242691435921183503150489497086271913985465521084739601625479596149078751568972605663227499278260306675254737613495839254047937340664918434599760587317388317337887509002905245478283958637005321518676221365275311559931279519429950429479396597034213960343519245915571182310817353365279544336581441503255303027612285431878696385143557775641982317484342128742981413598689079960047347626179917450972586436496276396391860825466404175269828503164995977859099444985912471599854259488928882297767684502210781386595555392660261966655402327828223655096750610077541070407014172407425832954952314066636168117627136268943442823571349817190059598327138361889422879676441307697988587473484715195566738700920194538099573306733568610782692249010551622192311309710393838849248781096146367147621808629924398889653959318360780773447014013981097206617255001329509452529836490870351353645209007092611244904591169610519115964796740646683697381266361292642134170007682635426126653417038212984693350868238908090620296280668617505899484864381164137803884040796295450346088171096986529367891688498096566671812771391559345409123402083774345502673586642438478485368119746074074529820496566449327687750572968599052800745423216820794552919949107946991162760227511619635956607594974550975746444202759815622422920501366186431348070254866813258639115442724148870990808438880307304394446454721806744823344923315710486117380017800248527145613806878656118000790336031001223883121579828773369396778623393585846813494498347255348460154995156475170437526684440842050802423848796379193099785503670726343215742594626055309336931230922745127185137127614339085242720457604036360962671538900054993558796696390078433988426519399007041358757011681633666878632189435288363208040886842436285089195405176979560551997803983223036819796541056464040099439132721323517274441847717940365301054103018128845033020125980775361951314030845855459381389206947114084582327810640127201733330063084253633700313790920227086942666775770617174989445603676767311696219750265425675523491393110938945916363707754967912769958551029099847027792542997724559009844523249998489067832062039896743630418937004938210435137450093791793610780426171002141134518761192305493836630416950421132405201035906788067651848082549295262610269471437181016075985219205001669077354268154329195019583299361348643242952731415140875261814753173349547593325850791787864754816113959161465400849392968247572050334763799479827438778647876478979286715304993302399518791947958181767519992957175276581440527085194972752770847629623199644737155301357610730070384930349451547875411723423413272402997074650186683173424937971032196136644285223581549858512070161576822127349700455289215087225860834535937460197930456776760251633161847891788778764779248836334167366061032597530435042862968443353813443849937541795571469738985506618369862445977458879249067293320179334235221719836575420877946159929611749999002795237560176667943406554006451719945120835948226374901968176601352653054586418181906306525553966239712771938565762269071143566606047890889175075290848055022510968846004136282460872766181049457279711484799065489480078715485035138370699301045102251678159903707835653547589849292130016567641914321035305148261739845542529609173285254471785914445758248561190338572554965619357712256397198349447192355512744090529354325554873824755845737601373847179227086589944628460718954360108036242009350954765029461840629443152238107265604111432229403876715580384643142453405320280991600000756739868787644252660997275646448400807675662967146584063317681149668833819238057811277162727416069113102300290850085739951289543482452436623663836794126226516756387317315499614199066388350561417780340343574087887896561574577697327570685999184067388333589394696125037379160934625032837887727916987271947769930836502015526907193721837738969325347435218610186341146731605102199624873361882445204535536845079616876618326744784881415109885962454111261591093823555663690537350439049502355546845864911023945004458448236565882918485128325801991211159392610865716491635260859386992355844715609910827204875702538762199692901464446228245761765211382152936259215338012987959296592618447872923866820920972969511396198634116666787318451344888629642896245787873863622455129196466420480163109358749930274746361615393302603467766360125771758099098525861363794516009803865914063018507733351158431426149171649923193137196562173714314153120422682634447677393591453174473673901296401991278083136675650605208377971515218655946846574201191619068303220137730645438019688802637380794551766409883440447745247439498705310233738416880050499395195036254852554205518829326637641369964472867272140416194105879127345754320209630266394452304939303800929289367297690563489732177971865629281499656804624255198500061280651376563045347323716666800843737110495427338105712028496230552152436129812569000264874232643710041797371390412016364876088016619069415283794782343072551333292136472891958016579740485929941692216370380314028126167909988068402057122085915529416728047403387944599003340260924933055503153900268902543532856843418326643865175913017546201643946636891499353984643829041480145299954317237813767785070433749020248284671902379710597614735375683948499044655706853202908310415452953141930887873491111265606183621481351110622012437633397661956755832894194010719403685497131005241147906668701971570594005625975875375126682996443211441911754608164118768818568450127196604887306486432090626882816978085456762688581860163696387468151758634451150847739263692416675476317462418522749216537567570054205552317701852983255339039786592434133456834369732899280487943707336105219175321110959378163698976857609330282199714188278838371526358852189402896587311229711155422189716356129421707077182554188577877737909658707794000192300280971735263596353223623790250737469516766091609532859649600611311369660299647775623601360454933681539584875435003512983481565464997021411181578393775251434870339643864151603451883329850554222874782872540580908113744422920512707093860368031109850885578711229591760179011090000542307922013023433735992227616498577974341947888228041712659869543575566119034560501996026895810016048948904432827013389797589818351620327015047748818132468049531051914783382661264471681882634811953172268414153728006513480154616641995245817419016153475236716708797846985924915308221762090374643026850999129667262770370048677691041375567058612654337404050541490079770558108232627144467089662591210264294294667631319306327778408812234780436328225279387825536611272988825331912712183799851195267533193892366304360823711031159642255485744267369305353769266291326296333000368601539299478154765188747527127318353675491367674518609610084101592734873474902873133011553314874243085207221207948560730068825404895633917189634128298216361214620488843645291260968542064416478260313341872341109474951668243047797777812968184177676501780671193413824777720760637010681106587003777497944856512225250529751983514813333216543363666458225247835658186982825250367946659242297851697815980336022238527133361061179992806760602750819128429927354551095964580787034672462025269890707981561795778971162349375760601363050442913255772267839602683297769550143161340510778374404834429446945113051776648663100653677373066767094580910827019419870082343125786302067053080301254414820415854712616185666590306062013293795422831169657654823385966730559513276190982055404269884008861688690831617312545870810641235692342915559432737242845405113811926652928330550189819520392610447841317187664792623375889870697964968020250203911879971962254810510987132998767228875835950377127738594025224449462339301438754365667123837817617269704279571419620782839090899212416578327820727050643105642470346824130818085596869456276636685923086461575520745392406284290540387495692001226305127819546242410882439710676910436793144202172623099797155987754299627548684085606261189270305925628833310941573634476252240126597984802369675986112760970770649051538688152674061469455047738169247937945374561105477777644378188774087918936688218058611696903157411769795408993223414095778306150508699528549449676222509353944095270054379620737500724676952137844627678732936527429801858831512448854715664050761633320913734596270905720994698126354666814074777148818834701655375363151954089777842181011466839950188953191972948909584903774663689439311491279501283240735893940361717269356674255909890903387954605971448945170465897719613245398965531943892908290656877797719159402007439691051715090908501642427573813862376480039036028207568272856156556999033061057415583369539608358983650142690232413739638197115100878537086731514573219015211490661491921316911755394671101708825179959434961353061189154196169576749610522276988521380032241944988233743984359853981828761379145362940260751298924234987003263520518154473992725561298512971466933488186759963515786245245743925071221892075093578032735350604117074099772574542795674465942025696554013260804205423999286175954891771045880514226850697168938423611030387326524859981300360163695601461514659297103177224776052402192501056488745441239427621753969209851230150692788283866188685582042445752146569703863116144027837771059619375712902643420305201785516826949781684243140748172688510938563547641784339583095398641728763293034920890050464909788139494570563624718860607221713764741407147231680261624471115065098148861868149217895386631047451674002145407447166037638121447509566852992611168546914520964927121015133223023064223985472272318708531683135628830417057892655741268268281871627666221517787079975488555177851784181780108467788570954660384023327849940781485097489585987280777002553956415470654860365443340985632270041457916515555095098788498901292796399135533189439319539499786786894036944544454946501098312092305512014771305682465137547758354009288432415176081310326993571163123294541125688190488377623887941736744147489033366767264475356911688278395359116318667982542238217184535127463941419214153422120775293019609775706836332942990987992892926823519336321718883788972404275746820087269102398033909571924571753591227413411549991799567657736230438365574192948173286371456555550661824894827870306329679798758737904861621040334853324520561374641350364185559254898243249071492362179262278546187047143223999702233626014334434003046391532145998219987881779276089579644646170108932527311821505946177431945013907230231984037388384681724407154166629659767853565418689600619555299492747371785059506590336539422419883164283550646433984220008885009672635274619727880401497159935581882207988996418490313135391450628642991567658883666745208197309402628913936677287750552827699374780333549768694566766718541939881874351151774758879879920631628746791147183390320140209323087747353543261424500314946446075924412605005281597927684020707852740730486421402040179475781716110663444373249238834929379267399637306426777581395886670036805258612596084998313612863559562512923180952637727973692184805616817876031228146598283686371225730406355899249497201066117979686039122203014717235654257575361794546809970242427417944594617342796857101314397983486897880076620724720813038444818278693693347391177777708954633042848898409498480947197996265427656731538755294536107853523482147643199725314125059825101601380037349275461273857816121132221622353157272731884230376654774139186484771904671292135538044522179653104800542050530748937943577290651057070760708893058367712007550490757805621890383794559773323951508719672244741050888658081476429713913488526100399599403539974831487342862348824244550067096246089160363611009463851589218287487833788747339360135625910595058133076880419133577217089461002747855185020138972729208921828730378394637571797468990268697143751569538426365991529229754695004157273590694276064696703399037525326166193326417341163815071777398112224369790942463430961928479821975822854440328898217072978336624312986106027066999223615486957214367547719276366025670539167119331959998631354194884349614297690463219488590951418556768615528504441343822505473704519972277626211280736201320224969201056452653625826161478023714490342019352965087813267559587692969454622792973714736070890136605691680364706906079641027815413396430058276141771768308615537905605951334948857855412431709919992301890659831214221902649404151707935925014502014832018636933461826043686147408158811378541119039247944263070628356178723367115483468878046425419265509609259302142467864474562271695320039124419893447108569073041115431400486981166604614114308301787037276869099386136375400151788520240656313072696233098732503134790804252606393076051175019468118881679565259404940053309447466731319177626243433249234128320903692744361142833103278083254808146669416493917704144323930186472831879982198480695475155508768772150414554779958812134586062090902557268085843355779501909486218672208006126661348860417067367363857877104460522488356581189177427261216615517403971864675637552173272211169660365684548549569652717320478937286005617145024861888716549999003930411673954926276248097403472033969977554941729223704000654924498134875729342658028516829975979369316042372310828069820261031880399406989137290474706621410009693985710605351434922570720144259750917649238951601589455480443772506335167180910192767333368263809880158840074409084237033856251505262102030970553808626050332180919627337371837520291498222560019289883248562996751146272094122067255542814666807802804063231186392419223651632178498095890466126579234864715706982135955029810440159783700006901867959073085186390057930121392320255049185141352864584042152794702414136254440958655770873189310025670668159077823118999272494705272697713109448653801345247543975254132835890891474125406949879150473769608924626526208988032153671513545774483432837024527515663127924888657898537788198318672956059054546894588404305933503366216692515119218475846138442469449588579330940513734237101028214573144461887064806704890333546837418438643074745195548710154113982298879378129435398390211921064242544271989703634208334114569595759529103169578589838909613986521819271839125685049772728955584622036371148964920255101494767094911937731649213307292530385339210240537766779934115412304291534264971301511501683007328730550197578166017628185443575625009954465037212326060122669684429636411029778661275741669442224055799912966668692994529779573400130043721651687578179634719181448968438797535079401595178431034230005147484443489403509602913105085107066065756112970845656794790797060330579886770272802971374978113311174681994092186648086954374991229197511874964759200015680710431158406142017635221936420494168530518980000752194004602677860532822635961760789254111268022995849298747232201436018856930687273035159891359960318142680581162359666234772192917157713488781851944606068043911108251259106462560270331744353631617417292051381655568189892206407776690546457278775774168254593870484589449412166034111732024000000471714365574876913498180047723058884403713336990001126122415355138224616979219486318764191310341977899127026123074511576618451418443139290804407516798956325818610425668727799568507411165984605285042168880060457052472415754082010890461898942394929202704371933060428791111102718208478832977701266320430173904550943393512528289063708907591722722767110800398797639812829365066034409770247646812560122041508524587991132840933037385468985219436228111603085812541725527722024137696577402329401016119784542782249574511825536085062207494222230404898191616410604958391478536503863965909754574155416084787107226542130558387355087083682624623324813588607450497617655598637696583787743348314403829609162827651672093096168174814064259955879336550823073871501856863155729409600870470283463534772047981947550769812705628998672706328512914730800291347988556296393758543600222787522038957723034776938286771467551108598066248621702560566888008827507385140169671109910772970925158355706555219344414009403034904191508221563802698424636900391056679943253734109579773071837147595208395153030315255735886997177388368131293116393658237171289395188103553403807701481563981667884498362553610919975369829009736227247490592598075834788173323734370911504333569983074993782042326324671740291575889595321475959161541050457461810236944135856360844375032729822481086992369287103551559244828397756555579806118736619824862397459089725458048940138064635218300465904381702905392272149372844916353715475296114551043167972231202086346579917025749574947069493219322920305697092610414530987032137018994979920925126137006678445225175073622244494281730418749861229604579247380752053868830763571313157022989919983442472692944598891684118107151402314674898701075077742366297347621158209184302543142589929254056111378670781966192428585776537785544655033608439648211667002370386442454648394532993487913823999678054582737399103007218765852632417389680218767113456826267915537480465872688911743371353823497757681940287293393872422919571618727455821663507177060523532655008113381218800307424660451661893932097041281467533218285463179029722310053316133440283989993326101757019694658631480777637922419117299379029945950125574576675909566972821302061609606769759372078959870203798625993299474608366233861825260323499353369066165620907909010047892983621304465284800412301187384331836640638032511171787822018573715526448429492553260623466483769591697153795600084496762617726191944142781683634166194327707540762430676707610608531436585916202743646899707051289786089357780791660482669261040635113723580284798681368869364707967024080622313307242584566627238018444040485515473393775778955443586626176054456914218130716758463889174789694798418292916855771700988548757185450918166455462465387895413817915447402821730056925178759876519614128194762500769287343905178389682648639795473641152784534657971500791443650231904852918552323668041678363071380056743498228285740702523602037658034441630828300714222605355647671995983240430855421408212253423703959216774889868521485741400175085350578724625339509631285850163978488314094466453326260791594628850279360277293319911075626723535495949884111530108408807789821483828452999744649285116516601625881088625438249697025457000683984378527253867072445321774188531603137272830480537449793659502159126183191472535803988473367200400472444149797409940630535773485896247236973273721545788328480490057231008688317543091049043202045402369109016720627640292609587193866613523724312042822446155314529352213344465549857604933309768561375777262797842843035971701820347534407121220261559546318626630365763642228023360062674183428587958903541703866593181789539581467171623071673268502341657079824800017502528774194922398201656214483178810744084648716935469292044975534087700250029786816931861976279350584947131816180108244714335133783609534674823217938004134934286004459789375563061609956744191546976005248970875613317535386630773836197494249017909434160870130932668711191691766011185632734564227974888671740031124700132830390725736941958474949313341453259816309657669078131609573573501178829006335120544165552958842249620850947698982875483421955029301667487470420932150413136430133364992972760295593601466422945297804701044791732064587771485042436664503859781491813421362208543753937216407729313692470630022176350722005887120827773073312593844573174420907416387677758814969522236923964079573226101261679093463957822536732099746912436971886216862251933687791415082943797996594074679471806451750743208440801526204030722910712928392172558875752013900635469133932924965802842424295308646801008911926871220656589127861342950534799035930749178514831069055972786331105764186012819979987818404528916221371237539947171952526177509463589213500371884149232652593390983561778766541719955432612086976473324730242380803242197657376896516868686973709528531939171482799318941201121850851504091760813179685236545958990745524555913155939856023106338515832828489932525372374528662710166242165169318065713715713362124598692007502551088890283097693049910407055220024992740720333553389363402048790944880211832917111745054517559959111141157369084511305970182758686580441944263693149435641518063258844477864862510252318296495215739176146461952738259265671062327482935696329432759251694085762945069418858201752441444721627052206968005586945339774700992873257050739741479551710068892466475145820726569848822125127434905973156023338682538001090439410964397592572921848935552334700436749548633109717197315344751068567985078058978359306050245918457248621903017678836111123826773207703170682426591193336170351960845553809485583668381410243370570089751506026044045605079710058142355027078152586492846104594805430567815238182880802708960526886830145549212916402404973795024179598644512358103568264373801191656054639878511060205957386828447043759507111268032908786884982273026097202439140051492201645265770668645328636581861635542897155868829618585098035284336191514459145497835992896507836452264262567097382435747737016486879226251479477476241849292373469311620272822927350752334187399587005322139626456784248603449314087209495231618639204126424050948422293287147216467786787585769403037606099939303557660620771750380691327968208256769489337267128251190302192192517192805089004345002476256327183834383609229975722845834758844010031445906568689998459484291332714752352959483142557685245351233100395692718487574133403698030632207779710384887157773081273684502125801486391728526174072754839232832514950920449100601419518865981825001740284736305485966324385411040618683009725962827169412539251671148268000595462881473732524144475453112014925213477909201191985750454098229541198260832473432130530826016069618010093510212054951295730843802833502060314725093679388278503674576675702351378394551208677739258971381714160978205426659221965207280735818419302407379811258374658405601792910521782312310718542187577981332635335826598057178515059308807345253649992932749302483411008738812141195239134312161499416923295412767276886510955954259886587140778743957145055857920213452334312975455152046477022174442270560840128078234739886209018616877530541400447579243374529126042045028210263856164921573055904026266014175342706856296182323756424725655664555611900348622470127373419494374819618884164228015415398735111274617721515515767379707044500609830634202735453475440007137759764572262414888051421650774641593257972386795330244093943112052485391139567308145079447673259140613371612844680171349553672543700310117058588538217520338371967036696375043267585453044346350110363339432965158433234386834485954906771402993681289715124451833119393664031755121337570683491461834172601368212008178855672241521591142800242496756387048999101618697228686661786598809916889951903206059072423706429425901057114887704396201281614549953072899468298003602144178639471066301406483292214570254783998133447756178003500491253238619516994889298165994766241161508192859734220167184227917616573180840260251777901045303148153598918591718424405910959280769702955134410602784281474696887480960056995759226797525378625036371421548792891660602042047975119057247064247000989253440783264990917432165463816590881455662665136460957256189406216557962152482691544295874961830000328296557142418244970773772407173450519506482582671725931220880425805580997987809968657951785086283388797229150244508669384408913777506424093368218907250860869863883252325279522372103166040845445618833411746516728400101261153587346532737137707749968886844182060720944465349315544478503258891890353669475452926858850027390789472245849169910805601320230645184512131329773766182457654455068484977547834044927364684386993357627861450772531970353145260808961928370018392237086869640614888085418202829828797067218070285990706830493193435350392854090605988562614363433510652944414445851120138489130093615613476510956256836795561994291694962669368813764057766097619785117415654888741493532421001534749372710714910643969672621119767593593060283544297195669493671882283132298846249997555284827176775135826736208109974877053118704361944789939282690654349966939965568562821719949238998468568883857377828837489125155956962005752226787287666686128226818275614486454242806317779647134266101370225797497694066399487040108765711610243638915321455098467494100107061651133654674010427732853300678919380153941532685552324329737093260262598066859524924768545262575399553378429674426191531674791769524416545780096721779928289372114782103652773697086217755381871227054963043634421579546969349174329319512500649759899460949660355271364069622558338681563222452233407175246647446448104885874258674082426375077714157322474491992313779698624997971361923433866205282219719022619709915129682662160867494570903673695714201226872032712020121893388691220122404300082223875030658306773897900348075091313110639475748048914595149921436682997641054954035976114940314914178613504671910719584961459017833552224262020642168663339517573730478307837106266261755229894162430849728552285234836744084437463298963261322357357395173320646410436248892425458316472956910475718575237829542838110416569139119009544035681805711476825927668667705712894000802093282002501951617804143225873705811306176808205172870551416586603405790448811562869790021826956245484745012637485249490787357513168980699401462554816384714222162640847322303977140316543450297974918564733695235864698657432789810726572475514897259710707068493620464458991201688909727464901934050751139008725972514858874352722349582981678855367654106456185593016047620519202303874041775455666234255658100149885818626626047988479358249960378986180958293011402496410191632010577149132498964531650931046308428716021927736276406048031216178665453112535434056071505706752967559953482395642625544834697747843759743012285973106727462308486853612914761785174057440721746338700048198221445812837056402859158653115457549889251699592384803859992115061803377918497832931413079916348794860044385160575731722106081739094999537802164483015210251319515656243207672089593820389048808175880859665526246475473186288655016967074111778554690300985897269590561629296556135587778440202350484203694047418182818830535829670723148321786925435949600741027160915167306098928629893147385818986274232279133046308671260486808112716283743875507291361918571307937352617199158844181818970492667358528408778330272497189196374505634441092309195215267460325661377222121132571166552705703251082869140589360389041249520708960437711223400795844978395350126422711075419860381188868313110130077425890145430351016918586421955938576871368103357829555847597542134799235809461412198095158466838329949602235779336789352641249772736418680541645566264522105890305399818716316759816078359470019143713924877543051159703886710635563200519340442595121327627046648446427450622241565597016156723661969327281713500307042401539113737926332116405527649907176428792536217797853216901839109418807495336232816530929287879276673543789429609618352092767989964477931448087971769847139675548101823191398267682586192401601108930000040355727168301730361687000311802068457254700421770203574498487287878018285176246436068756670461576239586709837862381744627434007282542734108556697374611684058414826300620511337988288284275549724852667280778384139660111945999548023481927148210692755789366596868660100392362741870473763698051465348014997330534926328196812163088702463682352845501824992559535557901305122431362565267933377334724010563037507045539852756317220007588909197436429601241445375912821881871430163271260839434787295841271912422125339572207081133303224174723201238748638056961481452222463824143182980096280203587764129813302000815620872431984393478312103519271677294747582180527313409857356325525976801741402062231491663610959369713479054832817312275971162026376189428456164087568378133500054352211095445267420216894213436794728805100696526839960102396862347125498064236363853377500943416416074088703120776543488198400360629633368987531237074758889546727134204537141350916182338513471129502850493574499028308134599776667318142918871754326498431897731720711307348226797411385826156936992957874783610902456655965644809201590607322201915129297362139930907741517728065696052935308477906336054197676984585033337250832611251689353047812121523054305186807322711929629833902186870957025716973953633022831118073788864257065168513727017832053097542954174507142001714989933988907200384482744759764070395155462778027060241189445676681251821165552610239335419243158903863166099598580255843635991175442450480179338341010861024459702554394063256525788050514236996134272671000424454249251735707198785081663893742022687667203438532471184526331250958840793130213295324067186644987591659669483470172744063411769715768193113114321780637823059005298076907824231681473101471773099924312764413791358940650923853321904466727208370964238606374149395037460071324130997702867009080493221432588318468870294416764141819911792252890414721937847083503755037594775153081350673791904256778897962273082601325256446836730633608033686105698598527303998721773026840116976071413024185871008321018566084326186242734522947861894141254229273561845010044125531798324012305216902856051669474755850607099506679980308036028632905530837868417066645086959276455868366683029309848246086624152663415949801989371480376142158464598312675755175667046259969273386731195516310240778667233869870190483986603303434335341995636774917512315628707696264688968410501110464666018656354972500406368294958110407100511911591737670299139373213452717681689650336621893274737978898279400176267033676881321731084283466379479452523828873776562820612480341783985905171146764720711761785444645935879993556329667750503761929908065855963861043310863835627148101803321298052282752173979023859953667013868414270658742193923872621093353388735395816821759780771058321149864537273682170233871824602018327158749888509088666911587597067525661631071292745780080561300232049443118121500308813241009988443447601987828774246459598669527611911096726213329028958341872021540364255554266423884096890644402436916676681988313423602438509872575745729650813115387715898697109029014831433913290041256181455011902536577707741127056801108735356200116728745533281642619829742277479285493429630252310393201040504880016538436421961893877014632849243257540048997825701536993190429467352557636708642767498819523417478672703734525814949040893164478413083839763266543717732780786640601793140456206152832092447691851973348963327444806242986139655611499894395116188640143384167021718049908894234998193759889488210103416129371701486900730983325502600711028098378086828111927135818608476704891035353595325758664454438691098718954491786792329195693565661497421551979182391342893461739608789567341695775886296554755436267835460029652494467671805376813484409800975849314398261991293302022113932878261721083090704116536082724875377816354810483090530454322741168011303127936171763188022922716843369254983712360567394730111031661810478729545766345203858117338542885100198719756118140464318543439612370118829517094376108232749581492807701475330896872202829825722140845979863952481650027519103403847904447303560780491425533917355800551321165445006076951443210891107421697767952917496112589150272135341039085849658707151470555594062256081292192729444651082300658650054149127811829296474543114171253849374182967596387545231794192286470892327154423078170581937575418329783189040663054883320848116457788375672577130893365652875001995321927789485009861083072688613164859837472992140570021078111741786571958647752424678690031854583662087423799502011510396322824660520436124919952254128672415867232793678551633822057044768319060998702073509773502030182141572303456488031229082324417770017465315170086516773924335993202548596258471430477854048380854530944429294392077931688061324047880801434158437350871704471293072001396385731974461506050224088019149600617153281936488387325178640895246738101488137310462058041802736610769640174980918839191427030005721611508907230655805910658926879942644341372593732631283128932456927830565439635131924747291535042613594857344524147154320996726722087112328994521491831708589160432311778117530069841676533789445954908307978275754096688336971519526766497185686440211636860134513385185726400244483084309935747523219223592041470801726290550183579690277196908934996191919062973547000505156689208688334666783366162184826570376629701537909987777874709481631397127773165364339824676520971999451002924578609544773411339436820313138064840814832683418912646309014342316896638017739057974999320327688017199838342277247179630790840019849754527246361955999303716920486126949322668642800321554398745101945610156124122074572225787549805783430452187808786656862254391881753349198439862687098571249718756884023588700236756919791842613561189437420848507033136375549130305394427526630887597248041286788033280208855933204816810735317071502432404650661043599144228557488156992438077824030398756562097424755525959023006893255098475008194408871137698465412811582769263280528771000656637349190954102335817634344233865040675693257168434524711527078410597101028301253408206689743664946329066198461611041937960342401615555506936661280259597601174332474234935054163095519159066220270601918389081216265894734011580029437915097839536790387499700235157457635583067928070655011584386068030048184719444529965273674130203566185636266391370161173707984009558653610194721446291242211544773632081047634663014150947641982867184630193635719292743721345881801537000420441924272621197427617101257670801073128119535020914073827855205239466023354039456873422940283574505801338716201373636773452175948479196880520419546384990188484588043584427095976893251172584978284490631186100310312288896318604940441142895676604394215516549861622797317036390642863350151566599856926645431579658700646641650065527654079985611086447009311954159209312271221737434456992907453451090687740527349083763804357746574927430836536421411644337132467974636002419044965594637081477800159803326752768259350647322571069450055202014091176369087840920407525877292925683997892085215901485034237786591981100245332369978434982384786999577928178752944809997149707356386029725749200889649609285811206940257407765542760122624041259658778872597248318631383143776627395824248180448587118960944483419432071114172921941853813267798906751498897995275360009127553366093190260737094230631127841846895053998389888404453541093798636130415894988957931363620954148446255567426608449648242465951338117310281568357183260051335091891241807288222760606624804295989113286883782467153383929101515106573359572369793913157399334580960955627588535639370130963984949305493202482879111830290276161945335605364246403661480183420217319224755948776617264697844388442546578301821333405116601529311288820217861699310322902589229177513177787105090545664809102246832000164015424919628385697586436675366388397607414361171622161929979178271342951560856164702337432361908543326537824420313258744294126822126225779474334332319148266454989157340421202351466090708569636342551261031416594943803979540920562117639907535050647262697568126081041001959445201028885405818505703061764527465166120836594504621828525264376169400866035074988945289825666855151997354695399214419527875323454036651256686926017744706005726954468935127063841192625355775013212732295319105850609086549910438202256906876574056987826041535861186963978221526502439829145409187481365635623416513547423831417800296158182941386297428759212492683066723551532266711301115293125114775458825740611652018134624499729034103237370546033952021068196470355483550371712587721504766435919883216931426320716470435773676149327718679291903767522193207431078494868929153266375106073312340544765933495885472205547992247213064796734380298567260454075665987896361152523375156309032601896276137660661560866776669405501065927973684218621511245701479896662297432711211167623374825619048009455516433560890518175971524099686408685135339286114136608078108859774730506538443149982006463925127915336432048967507572157050979235953427613749044484424001944409943913036341452464082869253896269788639946046524477825902172564665188958510453530829829325868540045260428490601551847093884331254825689118491792387666702647172310859571812745487668478296581839306044742468373234302069779288155575828831183606818674745628252648331867393636567178549617690698640221173139356516751346613754254909885921678780845835949787226852348904889726724487073523362690810549560771921516176320729288288513556695897211740775264390940823534922669267276228328789440816898016116644946749763303707333574638852816547247938528033629952111967798558032072893983514992564484696411899126073795311694066867466287985373514988621509819696857463122043582418930810366327430598795494960193818148422728223444397357858899108023087237133749680811934676678218830523546490628962319010663046205817948453544822414770888117444345517289441434669640765900092197413177262334906662649646900415614957480889382232685606701994084860355121775466682477475894238336110918149126554476063050287496308878014374027409279044989550890384761580323411867745217306215501275849674041184470866477157484138250369856651896285813668991625161051334285755623264249801399098758274627449527654501011382177997088392811165773444010340965539576003130291912035874953233427782737062151781198685035263545337310397905215742782423255823214048153116953469082681134435516390654081110470332683102803197080849550910619752931403677575145426535489668547756147816031758271501875716200022375300500375482704067893656592781318439890806151872349229817592568170258320736688988106539682741846005194416900421240971798835255952372088032051182161376713319086238184147820570113790087694170438121591891007822347629991065966933577740415794044772964832350136071095433738904079382369324112347101865470948402226883069703958988139408802818814686581668701694258456372571159819465020489498177851645173599991332902176192322430796989790765793353672166788341124541636672456470118917799499877031584942931936627253350917021889733871703227911090092754602697455653799528323278725724224077681798751860006594482203614823065507874743041426441015116435268280088035914802906095863253214232314834001895633751684412964127433826803465254520000008604508649508004413571491552780418392774166310799695815184956826621415945500418321209389419650018288275911284019578114011627155501523660342250278308699024318925454972976655206133460016483028995343888914261688020078029373207504421469370269651056439032820713949831987129505627216412566902695611502266814678362532210711938379285273408195105168006581978544883838049648393656366884042687611528214699074813410302986250747752831339842321329004304304187199380245118197752607785803592914319393741954784291726625734112628515031720393703394655486924253014820160774265555680668889467181027156521917606557856095438538277910066274285231131100584697055163856801608212450153721046175884625565006080247923204856704844854003785346947470060249745193841412303781584802378880515904385297378218746173875843783068255140403585967590345811674744269764911171575029238865957622731236060324228516066710792744460758195464682507959657525816466535943379247693018975882544176462373645357034562603864776619530725651053076702232680030975112684170964158970935350668238893318456049229880126078223375295329224247974248883045178753822028269061885243440684861165008709224704854386403118560797521768552062600283736427192872119051408667320056568178754492940556249603522574750264979523279561933508600442288998270805606457705066093086233964945554825620911174288448387349526441533762121916987965578709280543253454771574488541575913059010944231120112934009770058368172465323939330757835146004921248011650866538014560927572088448433444093170479987957542811515487194941911050515343389493694447332264032547044816059001932702325682192834069089159563535251446247307340133076740658177168370198600347571880544841439104448842138730821523089786699638062078438235013765355738242472233813166356733427763564628109363048370016218574873659130666531477586939553694424475106268481149349264844436668155714917898430054794405756969582946088498907397645760359575594131501426472270762476912181007465265722068006524270279895774276113103714543732827000817698114070583133158863963072054207908546483721578604355773845406036514665702096974379179775481000820968962185194507429487844210493929715586294079345250782865098624756635622569863696759425268648262644918286242650902505613459008339637499668528570004916864754284994815225250786856027707187295103805797071855139524997973939751214093921106927386705243427004332258918110427996680452531790557495619178285856623971301558255642876728859180733762166211983445782627075204774476585923625481928384044800628410718746689713903851285412731976989556050687834661281596030450170491554119468979252602386059840321228416312978482490045845714912617639594415428151861062485710667183499493281590663736136581886411941976695358122752549783306508266916779469757242978299990158505355251589813495245369582928384739332376029238528462858217769657049633643599033516692028359274367474124608935225187288313511345211660396506296501165856871400665095793135415276137039461667422081555269018240824101159903940603613470650043046470054194619758503044591486937736669511623457197434130291570290712043555619534962045998125436853033362047097041844307632092874838299450353213643018712247432796977799035444134557710479532660454141377804861632662825754663328283619970688006798774352006642809626792594881430674654997928882511957853057506821159669930226930686672736241177903456770465368335126126099287371594106418421075959391085860295178349574210580496217991572739289089284821715449026817169184659445839912211011139860949008872619798786017424791818509910705904954253095735052295100621071018954382289889214395384379689540452138779457829261391410176974589466833314023998203379041669177720355858168454544342524254391849152955694788488486990107187448265161671075704838537954609163383751124817950297014387708637086935176743193253170350752441439758063010907354644644361104497667220991423247435772678993800594080021128941065872763615260262495502224309796578284567242753450280468211266580194389746904921913426952245913947081041389119821718529440339082106114083206800976673298389835251320473604194108468754304954036054214218755484608704921326754902736902619576482715012194253192472290563835750121171517209138166910854106424508954740862301467824672324001606874258512627991404521223024818797367474837254116247640410676150331526510409406752671947271627984213748234472057129087590369148673920209844820200744503977574703600705277914644104777987157878283734732429260559243240846505148152685602715998267042961125223195737086768854644728024591053224768408739222890400269150324929207709082662976040225047475295074042933387477977207218612246448645190862889085039179440491210614075987820562572506428120060933828332689727774436555172874220703826549390684199247522318683845320449190069289656101489270620301310191033056623394060663080093393619970177875734584459397988157902520500021018659972408231617172089349698226551453935920035565229215259456427861118853172278436004185083220587652848708240709215291735267532333390737113093964546110704423155541941904534470140981573164879872232224219010323362022771850792850396438980411837857791057801489934573479784204563430084308322418973722297504620606788403781477924479551047786970495471396434855813393924056152139134950279469458608857682892740018664021410696091618744634892920845744142513252318971539373783432422271347646974817375408124689017906953096399086633296551567164349076855832040594919101461383750553879806215154243827893956898212264787356161027505656973742071709060550343284035958802226117072872717190304073143565649872130011040527107803853890634234559481919594940731908750388615196909218656152806802952823169637088876565627906570911889320975561485939129572907634053138175544155014778269184254311509346873959768234374387893878507046172911387527049733265194978439209168908890985179991752855977981624306249747867579470148216182591242947996214613786263364157404260603727763476202479437433980860772770176273007323758886837469303967134074749140284717890618604478738236125863807778374994625839807086224959955463301088895089160132734930832371216197736416672529589217041107535987689096816218490009917258753814340464197947748420073117019017246993186118931839283065020515701694546222387207485936522916712317406333379722002505293965677908288731597293515019814126901418517701794091156091738111977546814648148498596162240737370363880016479545090323080116100050562179339751849514068231527352680781352630835096719037118139035931031218025549289827848068491854027733418937750683121884467995276716460899740625185905792271787522977571669502782621687621971721758913309814378330176968600253933466865782690553606136483118766747149020972806228288565956183288176825522938136000529492600094355856306463119202339016981717346032546777454222876071825592748837918197720702718886160763637905014885225212884976089701024663489622356459676583173301692772328506569701963859836957529645878272560447623880074162177515448792437900934242403770267421958494003412997423098913881480686700519653096521586576961084582604372481524781523071692830592948939696042302302607155987925583295584168165870710698604916472947446700064101850144852061370538434570038291460066510943159082590712215942566473172905932790233427602133681935754129547038934867010138743437163190612620094374536897330089883185461069034163308026128894450527541597266022845610332340664367995972502296800892360722009274219336754776036639758147785715008733614521765370731844670155549449402919688935599674434047635878736664705970696041752034630026974228626130234230402058092186404215068449348203516252189490854721690090309204646040681464603234834854097231964412789810180787147654461846080628614290743058292452398646767230917918327183059294437359580588574869162823379878609800294385612192575792433435796092167474903062123784611865762068818396739029065176786280720444370741658642521537170437859781624526541105340134011562142576034734324926894501818091865254296561340302246454679773140272681314221141022077449469794390885720696830452858844845489072507455908475547474703022023074598602016086635884157086213639069707446376572136001681099297056650473351949597498121390947829582147168767210846443788678159315054107218368309271661071076531394669064411406474067774690091869788533340499411369354741705688123792803785575788855197295128841118794903831585805555389023918334648263793333344207936271601848305029099426134804408349023879790174767552492035458467204708901261818303607618368711051747771967643491468721435565355651375817051721791073225450601009525186284235642240766011286540046479305089252274892295167610170032626307545527416976466960553557772115135717310327741254900719612612753106707760665853953898710435800578491192747809453536568524742182917202900796108387581968673572998547637084442049741393477470055158762613581001810159422759136562757013763568856438298988877190365081339638550937558782288150126694052588033058229816884392906681932154262988894530689329648258253144844838237224890965590483365080026991772826833077567048831715802196468439391083416572432498304283493318536128534669293233005795321372483301274525137218100243316948722335790613330385907281640555698419668350308982284008674088991224308280590483090765867623307767298951947790406442211158425498640469376402202850403857196609216292672448879135186206845507503443205385714223074341325929629622059713272381242585287484059488295447271349522284917674653531766807504149058943679827131991344282371444387061595068815253479046166904429199813049246915158762284276350791126721815917406665741427983018538731952962885045974031957300036247644554033469959198585874366502621976914546283839027038989376844560540784758423637758123338174097639809352385527515767377569256154544473026192948998513979728335856317379690639477970373129374507620373410774096653198145674755692230445351746942157428743909526943813277356935058209471943577382156717979295192076365558627868036186400172732950294190284318742556953204252526329126943263011896702522546289297115658006354269707391134068424801746613264353670667943534252795100145861478530823529053081755815939390860507589407461547047376945578121197557929251864083783280490622257526134913800220288696805717201544513095671877768019048165560562283972908855663478100488083770735070339163545026919056150260293690887497736278608832712781585702078186728164961114144884648348649533060411621034317644562538882022146005934479107777612760880679008075918303969045501101513866909811305517072520697294578066100297887424075657360934392446195146625529275959373184442561890849004459031475169751731819785066653079130074489037346414908742363131763679052295489258846181486335788142838939318183524720075699506658369131203611649287837588598844326617953269766957334612226133236675931409003415040212496426943475030338410008306539851478341991183978978328732091109413261658892881023301237127542709342945323154108651334741488188294508871515864188292900812251910205472772999914336485200751419774758175964211086405821341590739139655174777393374084526614895956014991252409616397738856805732304297778221747403485858119690160676841652072393986724621513538146939354051564645230638950046977583498767589240091339621739637558557412161444627861109685757240457619448633563187914534304600246297078530107892755111220157007279787526758013848526460677714584262717849070118056525556257701346935633207093146879444867199592115416876938200499955976805518328873427731103932278002458824045042909275668602924368282412835497509337196328659860301345931681120982756708380550929222756618002320376534672421345703784712539641462205320735429769667167784499952157872385550659158900536363214524976519094267226434536739602249616334114697603568514215828741594269095357942295062868350911442679439953110996502985323351788789211962721008653236673584402008585463879139797283841958838205364285574849428193576761757819472726679797847284733725933510957039210210974368359916168536518481267339959392704496645815864442020405942522798884227487159190035088638866137747821837468635423059191048443873887539125851651902615683911641538902707883024048893604757381823873133378794109423307100789153541687819888692931226607596888142818309256423700981255884645264123272360077122914170091779728502019510889551980788217215519484176453168989651083075478701445798062550496975381990698889470340456018687008253332509411674108787288109711480992178890396170987927502120925947954610087142601895821497665233081532054905313417562071643895981943672885158137153109706727936124893447127074915911044925375306109088043973581517224311668760491737764246937046469619767670019993247061758410095562826622380978914085083351962267285671361574279627779056446264969271740619717747742036005883730163549840818845035736419962903382683509913610057627038446500136039314998173414675359763058785787365748712129687340039198536873376035541612407771753840018901857616193773452804694943256772807152435976918875729252690681107614220320156819717057490629669841323709314946576036994654674582576288606576335372016051179670677984007101947353988307818732562925527571112626408699835028518660022128277888543568431397751666018807042981143064313759391862080690213103468216569264883945568001371603969561629196673665106526762575660397238803168351500824370377697100104632961331258541315769877337277765562118918326766907542752190149532504756090199113035636957188160536422082278711002661405221150962370574179893141726386146763483874988258335603758129225388225892545902027120169851466765916122817021310308027567659953128166306898252401371220108679284207577414546366812546331657120484163114100456670636448513679585368090753071188203407621006216195926544456436490861300909716637530255665745664046819360604872181353988821682228059072947445807088213283567958004922498254453531279181573929828190937640170131574043676798039875701933795408025246146692043565930471487482676058605735556908716001265794337531048198889451997547304924308417376101409380030047730229306437052500182144886619500667857907827724242287599576341500592882436149419243788486886526228249994976379466924600811788842029938709093425102911475460521459794783530111342903493299425534438355027866610656191731586365513442958560981095648730134723263943355631632804176244435274391361259158601832446922827889166057715135551264206746254857453238537157544363932268515142574111604514745947770211836975462737535723795556308323811737078133862602606405053611235412668938419580692757807474562234119948501103783501398062027309701632202173510608890288220165739170912689306613244617163660176810876089925563230069544651806008643103033129510794265554434736770919086420236753811835000481678714749133639531339152506131370159976253321922691536332499563669960275783521493020760507312320925207242025239571933687767279162397070767962108256299724834092224944325608826879008869082763846387487595847186190223077724873602481739544356563984159934688600087890468534001724864609047010091175197088495389328689756726776146671227630549105569262950032442576336052687480629537487472043474722941484763119924651728979288663857499745040737063104229061280905578665282382110426151042776624406006939627599905556614379510848628505412894137637304424301975251120816075602194055807618964147692528902600236667222226337651602839788851801444311505740293552184089464734672149919523686102742516125803368454270970821419101177179147135343256108445710219772674879926777467802745999633736381584207066281741763584744102706536203296565173254168769645083301356867698351612928546252586107187117623164212160762599889131444327001850685001741324241050550884410485989795037496724945547326743244380742828588944240846265815452055547300348806376644253523749400734238080407972500308011340714800724230627104092960793447857722026138857496037825289635995382818747888866348669010151363762725257762776648808711301605644548143107706157136706659300808036309049790227635919694944670117246690139288020481009182625650022250440074718490515960741484010599828007772566989970024193361034772076088966325948208705154696438897720822449860554173590612218570698447885683287141081336267997369442469431533185996385674848628510689213225741157209090445925964331825508981227495186334486936585291486223016278966274663246880099948193938843066527053262085603442646466968645179702772861957662690475863602368172166663413625720257580948468390120998772204591566702620358679681937853765172041423968103668955733891878258994590411545662285980464315965368821697097043939650859195510519088208008252671415418065110680994761665770688607484880787166714205010687733515852861991686676581899298772048065769681500864124466849147481454896571519674397414641730155367161646412608514538754604825580048806327231179302363345459487496446810722473786272023365937850303231488476510050539299001050032912061492747222806205740358745509329446986853527863837466754627220467452258450162377020281203282920455428862447210725773167294922718775356577787347643249281332898847657518938737423751680545902306338706084207168785858934410850793132566543564167016794006319946677909761789268390726160676371580807404207702270136170358328010776480704699378404677107335730285714707907513150099071902170008099065177222033502200781264217246547725908599450347741489271277002644616213007806972802405375612415359789276832696595908737337229358496594447766741525667027495560876009863314228930017281659194924185281340454828028546981146017160195050318365603280805475756369901035258209345036453205924494672002545572396523604576002099257484461999629877968342598652076246792822105607573954254947303947785632165327529397231819102572719928486802484561850804585902113607804524570761435793969194550886705104036176737818185862909906794662677658464281699191225231065560055515445970196466848699277928667240297579078013793905557248088434848646446403242352833472930728910154306248035077148406891530848014113715294729720804333349050895609154990458051565993220320708382020144229678121521452429316387632654411154323816618541892566947259298618850304102274166682221407262165608834619448761136060288163513034435013710935208913236470196867247023580924470062374947681560359897956236874754266322834902991981874247234188372013161455172766130770123389957571076099776514291477336188543853547601756366110231228002628960961434176022167221697100456859120535581637668176531716745748710537892251195871531648536576986046822719236741891540783415764208222655068708698279761492697939730320643788629157084542561465882012140673322559543046748983557848423149075907813793448370507233178312144932859476547339165367241278486486808587957121970127391209224263694828354320515674708725715464259192989830827127726292028638151053836987068987264229366012783888700681995632749531419876654321089600325610430757200829334994261206891980217307068171037518201487508222909752355458526501423895020848405468906721808895592165849854375605316440985651924623764206454837049261815713497870849747364458872297821554071612099451816186711307394044964111544827843085062440702449393469546806228355319563173932687351322275359673673755721163959678667055286123606065089386585123135543959439959619033383306764818639809669733039479871206162255231807014788647953625619311551152531002725450163173707268405758401936182093531945564722260677142034045164980139658634279518720769938527509145149768355711863279590321095147628320162064037616928686447082731124984600112983604141985779130166974735705149369891786892830277039721364404285838513157754045160490408899840037551252959517546271903415918819035494831557365320910667681902185250231071559645715299757455846062484524893259181166603327558398051357035000086911283216979891838637987348100164465817594737430759550276448224458687419052519589576961798955478365131820705762552531457602622133614324617175507140473967091711726484472767822294177170345292923713793803610582228290772360152727778317338327439464305814291598910975786246753997332782102039396826254391232317141949154083973167949159570180764207718559535030131399471235469706346655748774016552548470237814113455976787353697688872575615666158688391872308176193614264233055873536069632486090954327905447884766734259602194475988719531408527108190463747701903812719784847243389354016848141988277650006873223610512017177221395355144032177572218509408958986668176150383175435567152428252219950877436571382229311193478851068312372971149088813937270006573588051060842036541891086862007209804542279026505193176738351532313997712688740784554578153258886120356731577510856811848727056958710411003234561018512980806382210227912012449809075811251946579144886839559370675620659441790157395677841564808312358166431658260147452822620567675038262519586806781736741549191667238135298357349687185356402960068782381925077944930563223825887643647439218947166770388481191392975332817019167782812929016520031411557054111824336535095238814350020289427830568123750234602424260812429693450295918763232855652513049410027316000487348146740735418311145558655244988373488896693164128818822107299659437361665545450808364173493869027736903429821431750904234907577390587372575309135940814412328105185771182865857972620676466485320267860015014102881195278834626622922378529900111491340794486273978284228119645352534583909382824237338299879133171442463937012764796929689049933366129291987585716783855714506021829704451550209871402737854222843957820351769595734314775997458483357983580567366658943715104144962403399600490400736166706467202928223270268919897958739793421857863675150798104895249005859255798518861644264223411162999263175746838912525821692545125379714287504660713872025942942302001037567900900035761464917783990235490245330377739313041714595272860940657940211735417434958641999723791589351464312442783504226865101392674913323011875462721494509842793623172768803248175470567385183821610745505842099828149099034014356328183753143564204043253116030971694182005261884075016680793887165569870618730341157315907304384793028153016830829446338823234962822914123871698366721427845124606663210027065048763552423599476008080396942895172170279224517219657526865376242375092012500272569197023256979982371949450986412936421392605650043044909758003257244544146683686117118704119299757024576160355428645879548127834985527104831739416566234631430624913519563013418058582205762581415545648833222829929686335321965920727267825923729213550385193516823240435312634453024166266811746945945861179088283833895234918811884917107202663928245741680151107545050930975958150034644692043717567283706589745434139261117620312086967431122069214219788951239245388542129639902033632726011209295323618696095995734638239645335850632953592430299693505260429356508622916897040371758294830588842295088728463474178558800688478212199605440522560294796424640917214823408191331497144113264494893657351700081350035602721017192744925229997522926277721201941176605787549662714306490266232770574591035468410897536556495662281658902592695025857731679937184546310592380716234989480156448458032885916728858800325795359496761075174002617337253530314865732943656617408547431992271444974821099343157123885049630897488937752073013342744179541978634073859394775577497697850914228900188198014820562748946553041993396145817042684250420366013000074095610318530653613941971881292520549833686950751937289736500176070950831131339957480430166615947965710535176878244697865894527998685896342099162965436360925634520992778851318945344630302399174656047517467946650617914621312550122434155503848424312488588808188867922604462057332679304191899488785349973674402141907711387623904054560191140064520752567145355063582842464125100327020579948532509966548457683334640233749269813951508436071024925879020261336619204459375966369535752416484709093326488229277610017645275739594662419161370262543798559842411628191239467668914922837460781357464038082203310731192442864316598974484303387847522196883960931113377225559238752154926660680931974245688766208331278204261778269365841263256869082821425026553578817073888499131979408170761750867409580973584492534612239634871324323797224188610464695832780391417680500638483298341009354659337377439885007689953310616231683487069803771977086072435345466995613126194513007912874615767568545146154529848552735263381095804825870577455318653609651984504213716179861442006184010706352821360761918735221017817682793580157566751306143706179730517571060076429700843168047340836153055238047585305164753138939865992371041598560802742115154047593264784669648388738675454424475799257345733661370222536339501669738252169802603587272157720623108670564326709590543571054454237737683504408058143230842900611666191730867306695953221455992609337779829209722359592132236936438274707926145068411961290352754270902684512708062474500659605836595819265485773678309623647967081788733993759762003423950679875734369946644086433307824050794037393725178799136599288450948013247760372420350260187363653009267232587645537506844045837769111370289023295174786495190030454612270211765168021037484832480522477663470478214957212304591806535979829791994282711769268017380013975923364491725479166837892000812747653353760060222059046213644696585915120413245886192623210974152650508014477138401838753324602661004017220360887061156809881190797561096787407666410766404325816003760287502029770488878750310190336325959955612940155648553082372528008702839637526262796607289310802361406332374819643455571708267056363903193630567168025279947457596855786440346704665055477948829804836587540679957604633748020069557790184807167616333025684872344365532432850250293019382039820202930440321852963289821501539266415294556443101139234526984201988914583319720847223284759325314717151341797009232503807515557367621899401043779010406595907711806853207171680128974825412121852471087191319527709193883067119036507438693330174453595901186080375866063451036556142909571915911936586753322049035137676446566050536358830500853477761518996126926005000318132863013864838283459468824747013283777163284264436004149734558903190545499888997445266955221168607156700571594162180975549015340464162331202326854931180318311364122849125679721711971440620283532896669523996442337542818572999541115001288313034391837577970243776435884639677020682842147549732372214756457093046386908822666067842655092141131963650444352597737830386144201639463367808694167023689517446938221048931449538142475538664041282259297560266554214572129507253423221911389322565216465664538442153591465739710785323620056569445960473852055540378260291550829950536397754508532402795658670044986408408743421237331753539657274397805040248215489009279594005695211852139194421571351325120519187617413240959032044533948597214083200526041953908330336154219518986775650206926812903486158018214793239973909484729039475355801883407695008154743336518094974156959750387488259492904132319071569899645894026181019394751824199837826878205787245195068842093907307997466830462237462075174215504303950657156536225055357541567239110616013274768277293901619508305153276046419185037218473171593464649137515154610734926096615327163236409712593062777395229136646706879578060526687235602744959019700838567532097092027677883400768107622662562608276968160061352587574333879451897641859602531856205004627519413892225820522375356757092474731606770655405076760086420426652490102892262181574244271991579429550024415790647921370924206566093594429990859817150007071020994786918510445340704443370760797820576993689168502522610254122873439805079409657845129307934909758360027585008456244688329579398959817546238296870298539083804114588206757022155110250896521809896080290519032199087859939719011698985020105463822248894774155487759273057033819436277775813439082150014189728165505119037354729452112008307345071375183851785144441009489843034350852575815378429163834355630097400407761023419723104523485900116730058188200872791200214024378972432830546265669745626163992029163225129411805538675714396395995464266182278140198831440639470215450559159619570192625592517256856467110902981013365876975425846845698657891706342283140471205987131491100849038007244149710964991944086492259442883037289397284931107906893914561197100161828193617057762401816850485182857853622367607845729366090512479557614454149034383191316518713249030620268027926734529007518192768812636716478506012978440718319845000603187176563217312467015900182046158370040166186668318864699446482491597831437000578947955171417962607040968380136182682010121274819290790977087946875423025731535984200111655564689988150271588208541047888808143943520172240842921276249746960814089800020307156265386982853539105019876688566192702695289320667914087127740651327934109719836835338737080396554990756422507641867310024766092814817199122751376280372137025853656575070980111674898001692722188252199556523774439238481658664327731010211682683973327647617137739891303051119575508630714450290596970485570367183842198111150224058054569702729842244969445666205499518034511903140887756967494749516811170365643734992368130765685094631346742384942542729272614924008348064136682425371271818035606127544627284771632275077752592372854940639493991607904937923398002080039560762194498893605042546303302823412936897872663582769003714437306819006113658324255354074507913552420237268791656295106532283335040797883843131404141121329886337933063704896446294850690231324904378147568575022435161177384964930917335512420594589982231012487815731317490390281372715907350048756470759400005444647511662977615898751141289033869089142456070659540262038659210342317965368083660052081251598802924508615136436953081453569354704670839877630654151674259029887665543732938189569845405643635074150111232305213896135800941945051066429480768235019726669748197371747851376201612163621551623307548104626112733416214574886019798585618264792177171949185502788841129226695337339461382126290949463211234044361604408924632551716683039930891248460844784758076506560515574603872298658235585163859422708270012697592143335026185856703567217020381562810672657560433636616675397436588135378764598006387358551320277110944784207861696609438006176105111808057732889104830786454802287884633890923562016567312207744920018485006020069100800371489540098858171031146518671826963207979775914228041427539242897803485084224721416613515560533757419779654760909159237279495326267964932340981644535261816515094229667478378738285755619178554239537846320024406783605928454067044289867555766802943989596991279189551565959718738155189193100294110846017535410335155361347805101675328331185440363109446628937146213069146689995595077648379856135741784243700055379642022908168178166838497444821987131633325095830243588916888696270545386080561080346899121974915535684943699748567104162817798959249154838864252898663036717868636157268005003534306419128686160275738474938506357365775060488179309301015860560058136934384905397199359552358414732358348067389351248469294105552445305070248160714759826964318864763071369308482359186360680369703636950521375311501782960308561807152934221016280043580952097768139345116295721356225409952099891101993942120587356629443533603374047041000954272426259059549889259066325543960662274304517241132731441430965320894139714946475332466509377769309855082453524603715532446096346914841325615296562719352403742491357442550286787469534866633438422913309993928782544478083202307109966945493244152167693559307936563798786728491721230026237659476418182333818577828109324020713643844361482796280291416349988431914055997679191597355827778570130446830738309290300455057781999672100212217863818262328373705234043035546581406572306578394547398776539921070193690602298620413015255675754875311275852831794910373429366473403962234798368515724535357788099143512294159451776751943080386500337312619213597319816819093275921531649703425982887238878794645547495647504918462572582479750652599025208574398506430029171808669032576387033976817574562966160479126771463544363343908907542074694844552046868761172953967044798058337032263224131264243167384049274183201375380546404545782545404888102750926005771584895051725925095879549031291044898989062518085332268556067646767371483849997717455839535086958404515819660819245289583500526393705966391579513850087729388884632331151955903790025623951362854151166340110073914297438785052435891348431427929422952023673589658868562920033619219244643694875409087212559670564282378911405194207363434992294403385333764872531049603503375926132657705608480680802666610032535974551773050521010580786171168180955232266431057453380381146145173275760292230097567446145347676415340216900317129497939484483934271836160378233614275232756598692947020021340074136593584283497642265963339439305213511722526455142067460330101505010946430780674533500770186539326290655156143571651765434405661687426397857373132500057460269341357814993946748871470771122095342949630099012596137047265031778390479541021512211085381255721347156674406523091214130566635975403425482128053056890977069882065449767551120813647718759651786062583850732464699567306536251898029899365938445404067281861422949230830266944960658009192150882048032652506308779003600110784320999878411385182313572405987279647285057982100165274536214089452879572365463030382848744418683734033406596800606017265792293242663956078187545915513967426465837403533746647873122450844467002820082933480888670816802586791417941381376211092185076751208342006873420868039206016043101450864735958350070764269767324244162106004121112469690021306912474643664510732555251443113287532462972459258983441674965018527775742634641570193404361132402387685194445631987937479564593732493908435001547875847460858416297631659196066109384265744395751780579589626508087865197421306744448679122740721677068100260114155726122728914131934364471096541143057486488042543155393139951354452118335462123380099390076710664939277660547918503875757085856188878732950075084441992616792975549714923940775046534668919976615027580718942156948526467093978565752279114260383542912504204719066098685905464545484623313499858319648897070419160924706988112179042264054162922126315295212630915147920760809378187325738672407817013412677773701377540597520802410424060076664120841345487171916800293113834146907627069655577017033283362149764446463660495306986743737578521517449111699776871065402528579922546940661646340221509730778326691488627838780855434874963044818596354713099602263645714643695842804658227394823068519950005545370666413429718252982824336329165590480683796496723343065803234980372025677329309646938612589835458118795180814515692327516697406034381476723853647736900096544042828496701055420104401890697577099911963281065912605255826286492350167812474336030789791615316818038349780199990758528974511701634983199114042172472176910224137895675883405085354988943397774849642227930804065119834126143687266258844377283813744599653311883247822065910577119908778596099774441759196014348226712577956345671049992182940207866573554941194908717190090308914002474469170620415883502547743853386016702293184359243428763282458625693958752838883403644568656456141606546929936560307667374685512352710887594502590449805883136309837777856283463189088461193128327644824529733977178449310984256933903066935027839057285599974428519109730293317467293653202615149093173008305829298075543089099796343957572246528538134203844981596383868247405365352086481265684937472139438204161012325817760338324017543964855777224124237788217667119327061765536171781167416405183120554543288013710454625406382687338744286753320346295097593945153881884504518382507533027572467981433726698835630467387396454793481713582193774739914036635622994644437065217048915232887372193442112342772155453817093063272712441989896332491572671250044539989727187859681888919835228135480430232043350056486338999073923314644840134147336548172389975425434112403779786980051716203953545049365028211023999485841179950803552711166708643158477439037553432640622004524359025426307504364022697823092071298858546682977906182253960029760173380258421403276150359968575372251814119928354300236452107036757149444674002663386631946978579965777649793630190027500265897238294842742215289250179269274685330337562880920503083306154063040799450898872732395802306463273135228754313009049473901678440200459581731154092722757957732504261511034082198072526939378567048804572432119225540361433549469596363072389716022675597280070267168421253443614724241943054665382168191561035464750838775434153046250917061969229178254805657033149849101753496576496000901410347158394904220652579145145378098559456769590962771818641766766606371327328025111501240587022356873687498055814214658562620105805743417710927666984752932624879652562919981673731650796059355619761157883340058497263977295782695627148530736380796020770551944607327970067268388081038990214278014110372774767239681730178533664513135908202973717995175168289693231094062088680800813842206114570042647483813751681351236737910266758139587098461806729273677970028666311723941262497149113523892217349142263965672968327979382155116316887635978611838199040348138627594564712777205000086881255172827212248162694259963557502393461668708255961172073100418179188032163279744494078749949258553744839912313067118987719203242455865887630829122535490009405863725834907402942897412863239189233529813035968788957287523369376741859617637798927526668985328091668399927206463425247222957302110341101103572220324182030362725894377369925343721292191985229767702370576248654494593940149040012908564734999615299581830110187179160002560674442631772932483217615781349285638380694032543881313585246843265768176678222834490712636208306787065125951825962732557412306590492626605369336120435803453145804496567060306388433271064792850105859876334065123911192187864469062155013117210181817775350747920094434514941533589925359891477274743439695064149939732434465650326591480577820902939901718966703044015564116616809660992540609700999787468260163286832969505570442279029930572961603305586857554427038662575443431851079404470312336007861115550922357825768383306800214247463884206873929011233121996315308606262465141536316286651201913663337791260080774720023831814556730682436584036678645684326209604554478544386984604685183652475401869290603810757132598085181550740418052907650222897275177396777979754952308256591598527910784988925255929407262882635112784020296923622077738517598649517214511952467107467843534451825931241396142970706572456942575888421116277920214404876418793718477296533435190087043324763489740717387544419113142869186026022448430790338376078604008559968969361744127055690581464754717675450427709187463191978285670626185828066010685912026986991268356572881022445872202781377658021427115130977468974528928248474641718258175216918757986728179374149563070937497785574072818500119799293346346967911671583943504163327454188977566667766650025553506357080920332837062203618257795737325746419003872588664843126347849899337627851778193873361112341372987997006955259697968412584992846065594135351613075869315578456134689661670970114846845666535531513801176822686610490473024354159457614450921216251698108640726335740618012627295143643020483032644852157795067561833175511767995811173565833684030682966774236269190721710278135450288866703612958035737121053009224479468981469842726986482627793714788722847508845672921127900471383925896494113410726226742408051534341837036334627772394149979007950072998888021737750504767846690079130811394936502778829684722016312962102196439704981237164285883010455485599887879669424615936354600379280820901570406632017955972790077006079794679131496063549259972402260162175843911771508788142991591392681104315324269108184931893416667900245142656269261239012527253378280841207260700076280801959704286499370159599286119856820851617899411797670780175158867056099229225507612512929092686220866680408327717088052952600361102978830520661702380938716274915363980752358575524751597353903335842790121437525435416699959147560799138413676802150539557864209400868200610229365480276911221085885297754892673187097612291032551335860527018273875312641288939663911597671407644482741301590924984420856553346884863710073859595509022120064702115704960306028535853596235482649872442984648927819932623810923248926801790887470903746928085600516344756725652954556831267761833653161102732865295893811605543380529352914731771814663953452068998188226065344809521376945162130624737410080802915828647751884555883582543669475201776990488064127000882619495027368685119810205004156321566670047643294712854435972134873387645139932106718013996985937256534189991056218503986474831648353655311445728445979226507710288910822439793569151515164233946400203607944854916090828017480892829609150852876985586220977528524142041447565590203054129227243734098103767454824150421662602054167516712150113026658336595274337449721746306829998566846771180584851243859230042637013589838092215551291034832842872732213182129531073389339728255735324699369086033798238214453645788006923277751751941200289850524255540753915226876045273556215661131010900279827548543100587136903641609244847295939498771447703924464712479064943213123160314461746981514802003091651720787650708272429873631112810483387319558384522452373458610155067589629775839121343164072573178956829150492096967367960644915790569251171385077068793503652950979711896485125039504369968623277478976072011971174443436263827459405245087133517042166991204457868500442138280323662280485079117793049580084174526417476375406635712360556369171406974543438149140926483565180617582105044136210698708128582523187819720192363826961462074373694133944005177634905571144686484337758950968281687278575306059403548858022969913289412771849286781497943654423184144916750784801457730917682165827134138312898389103821478719396814622668008676901242969360039825885871653553575086652255352126246670769145821400936320627201881658799733684939378847148916836959510116843241436912637050710153445670738419050145346252637551900610753003209733990557791613844932920898571561838808367333408419838439755538534446792697992826026032640833034903778928353831184617557621501363805726495864905782749752892971267196873572530612034094746652923608873896292518184757502819276219093954334300420505246115836820128357721996794809639143253937289105555366277606941263717680482605053144141075869466923282724684107332533889682635322946647570532510966619337651901026008225016195014121919867927576839982069173837119439364589614601201574228065683330931702104702605813543008821181652964278921517636595124952231663995228541846483581579565401255462036409627272890698888457014029978567891524076775867192444552276149293514763712548954068387521179168625701485864686495003525261905070240490722770553040808480919190554304032876925136209095590390049180768467886196827126208437137342556139900109303838022161080592828969009721158173289951563994507362635415287864467301952625991580053685784908470096542915940924103049593688373666845172219945957457635073567139440006009606049493158287766020211300902548025710896562438593529689429605295032296007489104157294366196376482036505701504926040612434394927741922195708280910365553465236548897499243092735782330021509278524467694288747430474576427759507585044904737730868017422710694799485566731436763392277498203208349806959011433404238013819552492737382275185825978133540280987054842484754624108220819346048278731859878720393474769455438884095876434770310606829948302300657361571155123126193996252303001129036252896650877845239505289527939795853095433871084428809118080617469529794437867884191963319357057666140248990200944130194068472106890080320514907244541573988872872842637406500319217600937977335343767431360935537443100796055574405357650021759484496003305950495707743406820396894321980282393665336249507123506958365431050593127144471910416622435724302269734149074936605662287948029002857804230194003690242990582933836697020595116130929115032749303552991769846830646458525705898860785918772313855875285757784315137026185908555520887916338416942160721179284225724822238356567517718132162500844802594865728952932276211778252808927252547142158531828682159015359729967444892903553298318554891449566637816190217159928559578901894700208023119037700297218549223770824210703833458902833015754119158013956458521960815258136637170491764269536274863051745988529930711180838982460799975249166960938882590239184720134314654474403674421015144798102932104852310512050515909200143430524904805125419524116607534780705626827903109136077008407725958585303952615173240547385080255190643813650601116568101292400513580344296003286891053661788011619490414206678584946820860500158828111038618179662932636338760299308126769018687103349309354984906213535713671113216676842539059468794122857283480958871507979668542464425667626572888783991728876520466974838353713878679381941208428997744492347152752505301046477261169616662943141922552628474290802368973758884250395333510596762625596384299469590899294685462013712040649034586921515797922980491956472091225587742789127566539053866170733623802512007537744948042754727871006203130627004576041859126344245457189389064241441757547793584287896093603699424560059473641032067624399389201099915428896412457764427244738810292224605875021080112584279888790448847797961468525718235400273775656345905967997415696866002212455123243068576837134097099919672141909952205229546579275178595940169324849028349802649393032549279302144679125881836305745772279790098848254040418813199279294363019673251006825020343236533040798195431609776855145222286988094403404878039523535730825019231575806464633275622304383520784668115035261575934365036731868380626097912608590753687961949496428607748585233708475933786386534622114971324887937445317230895672883069962015977141179136576879126546028707801193326470219647880054941436471285060411775971576034950816968773358595603621305897554963891619809776139443775277042922977193953644039604196872305107199360714552685463223064304591150803894079524014437210929679722692006317180901714126630813879154256156775318063038067289256853923852606404055195204288159767983232018627672980486960974886041838782519927952950828740178015357029384026819449882396134596874358358451589707322303904180661069381121004087691732167265393840082880486208852329170752388333793077743585641487494390928102722238204467557476077255528829031027268434909505640399540619027797887792212251990021211875487097444577152568467339259981249810860009279821657133709909735579230917914495886413623696098341677286668731411915270047329250230626872375678561878812880580799175011876727020860890038319960295161589517832199366224980271821218113433936478131584555649810278763504680855348910674796541699780656441463965774250761671586048842309075424333502316922382715040896392247912743575954666901167271297731252308848952723991218030635179023451543772873554075055054573111730355868847165326697891485174618846423540431066848530701770567317167325270113035238242057670828142529604142818066694240479985701496210882839813850977992193696726310876333671707295335029281077736019498374153492971204057052978845587556232514979494124968194813442172948281797984006972784862279409658179749163838755837709971100384561034951276357185944873874364542285258355549427229804467514849650948447900745573360535913376615291395219736983505726744080186380647459962323014091503212198680179340779012603694194913724049206292325242559969386780772607735975010412424550799272426591942145053938889105241424679073599615632493673276479231351609701710790190462255386129234020475157083961694554762775586765825059171515157437352010440303016657879482906566460471279615860575372315570184754949960480356837505944749727105038430068565516995022632051598057370194566499282783675131372769881243872371525134335607069461522166687057937977513273871163784607552817943689100212956656782155277435535644477936100354554559205558499099552904736199161935495001538847139282826016316522809114890555769508653290742179390172125169275207072059854086781574726629035388273430476431513744808969594170894758196911898420051148038151761024239018272027967601825568859929413576649313606662835435076880912332882835154632284634782995246479813085013233520009439331842975422524094704587968825973499762096908182468686188323368160666314650318116889794038721027904560591043429486938535773008889075464399367546230533666593298285899275671661854590393935525051429148830641141680838000925057857738127009842672103502899856123445790694756890787028442193882903335097430302115638513637470246139246498547965752920819408525489575132332196616374931589960273586358672824871825436433477711721022251249274305177206093314570347607185340522750729586054161897330140842391456763053453561761717502525103890724002448017547246876801460241712711744134129006388434043422580914122474889593991133534479051871596895881139858931735529631763807846524263134905214169192722015581495399465169064478047232202995456341194568417936077153542087624080320130558920292094236982346426593167039328326960744642799716838076049288690411703462444800809273719251737086529815960287475793971555057675012217713472509950548508967879665769127683408378950926798478442426904908626607895928961820303680613810973361941205717758400777523497303477963191224521404598019320354637156930528547679533702286537834791403103050838339310247654766591734578516714511870837546335820600353144681532963478145702117829674030205652788413443650511551135545147243807348919413902402158935257210439834813342913825566915343113949949107730972379169328594894639934614425702841181170063503951841662228640003726630232211669601174067893610115494271343222574710133801481675956935883523145638647284323820513360074627083543588003892417103525721457106103550871389806705616841061676581296725418508320820227916963612328179419537228765445874522892617643317654528464524051945211482114600535335272214014317829871121359079588848230642484802750479433035639851136070085418635314858330464020975684203479971691909837498596738803516753160754329773841345022522658287682313476922765029664171267869231563214064628260328744980031767145151439967733310544464063840216322749994055224018837985764774841343525653375264410439726933142634813641662095779712259962859251864810200171374215845441396711495835004872905469159170124767360836179006678303644339110332417946213187539219641760153011834920330461554605346973951627171565151729233568828214452731230694295904843283880051855740622522922899989260104218438924224837155016247377551417023941482912386192017071032565929926641386559076924603245490295212929528245163738144474333440570128624015456665917295279668847684344582029795281998588561105477256273517155499630128574546691671030421865627232633126953590300525477264364050137522533149660666530608798658503963869096785650036829649195923298808552281780079934572849054174285836848395315260168626101048024906793413616065401894237438330900947224497451386158151373728855360997096808545712118086393163376090753333107026222960957241226157100930938570142868958199662570699957980313293003331344746149329034045477804807111699364865003854230890971120186654876443103350619256944930647575260096728660127054484928835235931882231267913510360460265395760025388770082776855157303233203792636956045203445325400898743178030135453674770273421329112752508465922967145338432218301726229780422694871100803558837875564407188917475334410208678856362639424157443949709945548548130386739413533487757852577517421606700938699735363885748093279059888665856949514698496187381081823833857602141686170502111651628802484037792061166266264326148123532362679453796030332522768424733742698152192980773240829379709420099230589445609773492594226103071532034033265739774416344461021737849918342410315198172973692166624008781301592843494999450055065671793566494399802841508832732426343310135514375573423757224006003542882717993949798556751633980329554444997050678398744299820309622276099083870399697455198639555537067136639801593938336062456253635537851867350190936266987316616931795663527762714119638996737242794212934952243002844390079410829331375307669862899007791821053648027201402343189060769614234282347035335070554111553749514740275800177163964624741600662785206048643310981452204146444277684112752377966681818413509892234043216882620715915454607492754135262818930001602722120753434884858862375626812507451013136646076090967878954471354599413092645322492609730317195647243473014065942934649663806421193074468846009089466255689774642476971179995782320294643998549015315491736340373171365388350931841027704672494520060929421911502247208423695920447814910212622598112127106611474928745146169485140100101615523830311168681183956960405927684410503117728579798599771216764799993122858520106709423328148812438425926815292513269776841291423560004178900017836142718995221662506825959649083615995650507460110210625513714775769093006992864412147580283564606255814191940708596954875835476002793964943142168820284837591769707818143448560574032135294494997235383834330872095625588728091800003521071308061212945301022580598879076739712071300854196712866844256142448067980110844151293123068126943977713343992496839393126264347278044360672445241870132068406748015234226204216217273131490392678723371731721352852226432006401914682417963405974707863734165281333946078668887487531769384884667930059919410674733336830641358967334894699076355832748803247576370252098770343305438174491310322290949772352345619894822005659420428041615111378054829845040633642087307485772999287299310375238343258758859280832888154157899674348154885933676134798600723766242518054325364037674124422963167967066725179131877732634228160404074105205726822721058876000963731117518013924952691802795126534922401592880748095903579760421725678054235184535803910055882339492480622995356030013689073056367758843043520684438552580517960011329687660696025861672900588649092458441658121997656347480408867930359813141214673073102030314425368020709040149856665995694105925933021593418900054825050331423805474892799290076087502264316677685563594734671836909284802781891934789006374360695144948506101400485040483215533993717028978868763587173055196981732301940090855861531651832814536587249882456070395011029599307069359079992866988091798707299301561834210966531298845717837558148331590544670548774097282598471981238488905753640097561284587974269869948051783587890098532582211419725958492181930175432498604234990856196098391102099409660765812568895094591280847208339201293091606123779348946295363867074262151716468534582774731119722505442995143027091615949470718077786125773378566605074211993334139534134095591790799589399779193221513348878416894540113890076520985088726041041328285176320207570613096571075579764350752990141808085145839061878008946971224695499612072796700799417249403348117972181271123096156377211542362638011605481449568038597314197768008129076028530984290684504200609128113417776974655359241453011953158139321576653513379177989422663495780871521093015019532722807725710282832003600852700729164142392618612104952240637211101957444389831323756680585110113974863696514382359125439446728884618430271826734850248494992667839041339442741965335416440127083414963212448231385542336294906317441906970039961421246951390904428205335388761522804134840230496114900735643618106925968569661174965881053624917696111168245889586481270393320403299909764306160078137488802002565484063271390871514472058588820842495302111631269684333412307762061835853418458904185215341716439511883184145371668502396493053683802594561597210561924108391734272235496581862485803857973639234817078372791187921575512509871079229163719250551429483124805253458442224793071167469851471270328430879799618579391699888322185891099091216301090342618647753355876053060809684382632039756634772856253402047876759338060587399504328829597166297349784614771014627187426260758265445699001456607459797815339068537634113393352431163462268460988191528904306420131395482108275048534333619672512386695842881979583472883300818098516864039492990866361046442821470328120822564007199236694126075130265531180655880522791167918991612107782066246717668915368739375858081606172749839347713872896682939428691360309427245411408303017271456854642459092609937819221240184445864860764834854326291030413492997629882124035743585258716283361566503755880942132338782461927369626736682431723035183007296666610557698604796243134981177850273061717016760934009274534815091504773541770645752015891644373780537822094576689568127954141023820352108645297618864776298376926835542622497463895251878795692011946784597730509080060445754376192100976140337604314262516340716677866125955501096046904030135304472646529570738698485923705850068700260798409939076014676627652887444389608195329755205499822495548375338383622269004282225055969687379259374137890083916210004173973783494704360712689504147656916203116538469076461856245869881798675051978190211195752711009301106094755880667032903759467556213286680473492118417248599615957121995660921087732376839663046481825782133716219505775866414119350028725222951855701757608596613736054655887613007638748929362221686988307199931459395730183059043647249618364210837620151913524458146694805069565080900271268501834476434675209903498197122278031552528052284402447252611760891701723026583201375781369391061064760730073631697615125583188864434475397231272746808803336864203955662522172945647052987631390111577005292279889405424887787156533252471429483833505057235302149912673191744917350345976859950732552160829948188574863277735345910357212399896239042641556118608347803211022515217353644467138595986231861116673268685438283427055758005949818979936923883488098225533169092963285342705250674090155933264605541972101694523795200419429459183858357198443900726230630017685199351776790259659200860540592454541954770848572484369135860423511283230355621321460740256581381691116078778655904474202446923755343638747096588314926361366014800676521640012730089674778302592174960502812842676801922976314160155693447544471917379106752702417233696509885897727220615527850583880236893844226228674009214425146158614843768185430075756577098901885423862232812705007702740787090959036236202227058185420532970796528261532574182314162285064425079582080665540224804717349561821503730076702742478693924972523995525357697420899099711799495990316762778264678721628591937296100423133663681321600475798113044560452858407998318650506346558719348583492900404996324490150195802778251816751622643342980191210056556769228407251514104165356880113327437040114250062861830258509998994268899931611303951701433449187681013222765629756733135050411346260195083096299868953175933613604899984152681117666666109753544421668522006637179611056457972799073759594200171084067336214630964285245480055732280001626526589311156691997283935524904397979802706845278879306722750344205143244729506126635683138750426811055782478289903291118192095769638974614604336911566003163022509000906997067873558250905627169555306584186769536339489296071615694114089561179440751326338494391271949760254047357006572431221589055695820692346937001595117689291215913426166500638220381661433994100422290194118739112446541267940873922341685724877472824760607734701231016306701335825054759339488266750345834248289505550604825172137865932836801467274963312531684800560910028973147968079265959872456547015969267694649743153401258694132279940137288369743037038566718194699414668579919624420348339059867604505438280369213672986290278040881998314166110612270887827935334189627892925469831093784227050716922412241095535381020404435936653516151776555059598735320344384865595377187097582412759440011045350427213626416439916577309399542783623374098378979911331383884525828265797172011227552808151827463126683351688540836403947064179733019385189498246673475478587841172748186516670500004377329824229012557076028765617569554646955805580493806052036405804837489847189473656794177093407449375766483474327342512724930489101446714398998695131558889839382595322223666715243548478313494298272573185722559367296120054548911174231076147907585158934442850339445590689593687866413486455535158245393146918362719327110113701491028850073127553900445644880568808951942358581878733036243508569844650859363814836126093737751416846557150564093595876686557603679059038001146121643958325023345172472186885448634133334694923375001495187985960221511481438795042615782365226623057241246129440051109129433640597462283028708703779303912952421668818092530047784703107271624302362510312658580399839311351510904471225565280440117828066951783641118092710878007607251355098688641491445986920454930031225078198278149140847352549822849431662464921101109557368905619340554815210070933219197345694313446499484774463365773516552851667856841959042296374281144952176543937505621334562331160907752931648412894796190108920054507914318608287015630292603349166689472938243207174681007629882387989797880400125077160426643398095649228429476683119768405270316987079780330103328033214091406004588036834476534414579075529317063921679540826992567380871077397571736591997213744652685897003067881830036994049052946646581504620124892985933814244544043837894583521761196542735184625660840203562163706754242354706703186347465746593315926611899009794059333336116851466157133971497780587767641749804161414349531491856064584061712049033301187632690055934548524964990146110099145607994527532604922585217894745195189137362274094301707862525280515407937433140330428014558054827683633132847175575774057955767387948263483155453126494936168421296982025269900061226405908974127112226344459956234266512470258445292794846702924513361800854286069752905007082440734600784840182739343804797506681963134778310056535803662949418938204994779894977910894828140641037712858555749860151021077627865225631293692057447036770863037389553461344241398548965727107985913208272141029645673752695037661394866861880366258207291780241955042595223951895586154275374164644469365069310518491495295348113296093590693514607875751278574787927691019173800732629157412987577920046541305574357594958151091460532037638894659939492581156753527755160273914212023015667598416289913468902400751889784002016344348177158052401253611074413339120631798291024892833221979744651346086361745638879068079177763670070204271520069449465843921998481794597511530775348117246827782317551169531059278385846370651388198521114141517220200552905049373988631252738664447765039455605333746571440270348031087049172903047205540397816766850002430209906130656097907898623531082390783586630976969934723586676094563880273887520276069491011136867342931941915950143607026282640261235655335644013460045119460936341162610958550243702620838288511467909177350596361319634513332876491530885859936610720058313760466852653871849685068668991997883143340158669973158853396326644740237983612034171161063763266538613670370973852915612778563175572730270818839256191693211113546837292281984079102438386273051693403805602561375650945469382220730558236177894797347194599194959426517841671230074126125070036324699004117451487430244299849115105679934843477415537203558552926096133337464148422500970406647610470820618649361408583745407516549042620300481512402494664798766074719299239303303337025874132795686976848288322176261261697702582667402689972329936783555147742328208913751025173078994752995144839678062779243370425481931604588539275297587969951245171388961847571770011797769162805327623074340279272635352833481245867751830572733654470605968627375569901207245481140248737371256502033174442039997035022846729670022684404779220540798607749935697523858522742759845680775617173763892760144698959113234375143162938750189690067051812851634619762693515241824237457634660534265492944320563159858821864167457878670703692233511293507228604575544177945243440514656778932034806671674389072249568299563365628637743760891438479490316430200360884533676851579657404954988424356659189992604016491551603072050431477088327482410443068189767474188587675877894719857775942480545379404745357371881235136948315404412279315410656600400419183513419027640944335826253064005795817187879932304038772856631836266355217383371384264792882792982056882789614127527547181321662545046361000459053407227932625105773349265521600106272219460786171036980151392110700914264117119321687240681637599306685045728420175525076806000138684018079498651852430875646988162740176994554077345780167962408486030536343806292161726118659303091740167010504220583740764512298591617787884453536605230151573947889378335269213425688998134617436524810592390626884321821182835331478904108384363192911803118052977197741909335264623753778840368378933701246918778110151264774922285442016070796954724009511387218493245018475452384682929196150990350754206958058882879813070616705294772351144872099856572766338778286557031729991218437315041346638823662881041215416166321038347137418203105612998999965476856093985378795133921068418832326522701073862762682051593142851006263724804303229568672391416084866706354841718676071953725806439810326902525314266421612788351664041067339150619564156898748491836255288687811571685666865878012771566119456877488165493547535074022173984435480785253263119696321285430323690177199362864086804383638111424901447401895169851546502256340026679091412415826228829167264931920616953851308680907369316081233176653219613479559092288580380997914339074584310630446376143021695985492121692773421562163763145872929670114752951941761445864847389834098350512959440006519653122720850981181323549563135038513822826758356572523788175154455725575436657583966028681054050560229930475213809678549105459028523038763817019386694812783207148692246052684760303557602765496900892242146442463827244552260836847958166149276570277035177083690716158006243475180833077857445029194496117874572046696066515292227768962781036266732882658855090550392694397324826955445381288922401260271166325408288731175000036196108062340663432755623635554716464017389613958439216222295794517480214490180472909375443413428155043654186497089983263959054727127973844974571521780084038671575526723472004886426600594374752208651877075368612126918582407473221576375646517076759414367065295192344016219894970544945929121819786798030217979343180351051438566154979898257591375899226608722401798328656057525227876254449623996448191054724460619177503057036923501702053496629643164066194542174018146553379738830135893770025808209892606941055585697708814615125141303956981925931267512400990743240889064954941268134359841600355765917971683285327352053992878169043364422324170864249914093714630674256539988056999079068065846421258402116940758300768830906849811127838403973941634071065725078598179641234105585614782716985297757437520909123793782868952815844505443126199119483051945395085506992843109411330796381334255028294598293177560523110468700973136332294998633014984437581687090151819099275773234475094116889277995452963033894936600326218622677625897546354725746286352737598330470976642855249419300132098091714704643671207739529468055621100221360357170214803062705798995564380140655222404530274539095106646801826218715238886631294927095804240193161064561593500718045893406742599554640571067504254409541727332779185123280006533559918255915419345797347668598557850894753940737462396500876756906742604844519366480777481862705293534621675266959716910518726148712567467943668669865556401988003417531239879914559454406034105989357656754680435022116260636417986658624094756049368574958732848335704117666676804737883054436463697195542603785022061657576433980050736771429778329743122596436784775748404016888477294089171152306024058670276071087305871723654679957870107856163744022978809722148220609978289888264132784985439955927192968992917466799385937138713809958714414096941478452528671347867061445244051696669165330652068552111326921752811703773127108809459178805821600725128698770902060568619441078053809010015455850965841760030673692449736224737380801876683688486526577631597612185437387988187925995241936973142440587691322754928869659618591899504527814502356339984671021970396285819560102982712983941774265318823488482799176436602525087708346808154294285095524756969844276404664634755788174547863804531918259884194457982453800076451472098603787152992972822265156271925432338571987217991106877857327295711889029228212099058757472416526210159991046876133665096242572845009035753001124625061976768175419509481407335137343075141854978856363727470462311003944850028296841605423796020521955928517886553296397588842022926518011623906169065470911194060957147151781192747393717865633162283275236837616459758119389219975307489373981345545312098051451879606286080767028059638875914638323788589930170291986984252045466123631445630519455410810026153553310133429086365723315502307075059296710329745663760837493870417585942217154292160315350571877663767572349793864147663682671201245273727963409257597861196249629876178421743301113285210056469462159680060535480322711892027248619460459093887843644726841037397326026364123475958343071960868704841572121260265755642731289740423172048957098527151158835546995951408850755393073785149731805761053907869988040278801989857806333736658023524382076263090315932760183621305797670148505545529088177151149924338361402232968700127225808570344340018439233062746017820659052357231088298814186875063728330893254724154268075012948922326565071558677220705343508028937061845261359903783594405989251018029672511787003807817007786090118773485133671437841503149825766547041608825441556757424945524155210303043991434399285834508136986204360363336749488367489525159138907727985914777901107724471191582179091148995156335530338236836506525272727437256662388105460924301694309985141294493967507725804439641624710973945122823976010985305735370192125023300727766205117913782524206272359635532320933746598620236610399712396349382272248165287765892693469564019054328285894304823163273615043047680359557700984761328847985599915836600072324227413724369562714453406236572578113681132365032558169434779050749547824456576164164171419018887756780697986074867307986366378715882425698333034793524736318765647052686118660894729821044229463096645308023598956601603937298397514516663348863686292369311644419186788065276223424032940271008015066071225916733940342343368694703482232530797216297966488540550741244689264401037555518488725968421724581814611360069962415820988259990345549512135273852264658958664511536376810715554043618953477593719483210448534521519491725564383135762625033958021443844674069247605036634333484667034686579601346417209586656322331317489983544545428362059240850001085278765902651494955027292968912442140561322740614768072539514780640249883365535304815252583141472926461886206415237667593800116432863153397490949995534108502422599293863866001320485064050267198302958688234916275795674546383057232048819678083030798547034883178436277648001351326626769701105300397579495905881475544780462855225626249439309343697777449279201508027212580190625743186079512767899385334857063073065832585629553139677155215735036035512407276315174551494091437158883687234469063895250743422302742977109060301002391975033247109617807425439279661192251793303988027054951297055577199848889386537180743167707222073041109589447804842075154028596444218017995008048586961445779038168889564015550616183346263885549932946523255294372160720532875964671547450406943386869711838596044381956998007995381348265935890817204570197144113421738905332710286672423050708441506110350194885700142554761501849199978293503093491257579496025586560052808438611311032156221799756035169229120912088897387141239089647230790524310379036876839947048245424565833541024335060015470370013183138040501420640251199088060679806065785660977396259020743740702238089225765186420505065372373294275093668711715626241475336922966415249430437129851101341913054639908996168340730170904616657309015544390944858763639806244481285234794160142142276312656812001897611825082306278157351336857704400377603252496083937143613955690430114811103126437865159713915004239489036196996771618759904016852765516209628939898304722031083662699108054175043854594674232266961960304370334002535972218450996822403549128222260182287664123877332697907179740537264824240539681828128542929738198184639289789438663199948735912388512668542834948050256338091230656608721052581059865018900748095414090057554910377438032975339889739211565988000405529448752129782981168395779050254812389715184031285655256915251881027022425094902945598691838418961204719025590874781247170404281072032344585689973946235823593850205424562318298657850593010404844045222232369928370127461564419800093353268731350343809061336660215155571893547771328271702498972676033243464051265902433967599522090154395424898441496966281954143940394981155290945636168466335877924441981862398612423052011839512214347302310849614220016178987985829605653156481509857625857154754461810658112131042538671695244656459128992963580227486232725667883155636825494820324259964831289138386874562873198541449999157907657172171171804539131653205162936993091631476427516552805608167160150578066999675396028553357173824130020119597687343851315811304050365649062604282608332386112658840313702253128761157427288440874009168376409065298999985368962825700217763918164810762972299453454861684952007265645610709791002604229156312172119021878361152506373329993758039843052502325353512158052252498139335050205638643994105565702212796922083834275097670903358093986933665482172332095821883218815916146009811027417492597080082277018601175246292093148879649168499514242601877634199486878595116504401919294234424863363835035466618732537752465050303931647331696355509088586022485414260700692577368776169087697211384199220463503001356144310692837281816730456744278867046035082612953352312808285742991797454074611389141595561816419162791178152445799908216952206713011295912777733517569004854467944222630389813396712834720151515001320801813904911578617346342547195460569139689269502058165105224912801188619173864474289225970540895778542145780064923326587063886198825467735674258937913231862081869655583072734751457934533302595803627419767278105793575127935423721029258425797682373886114446509957944646395546089718435906171799364312250652888732175104229916898307251830567819392761913176121889389194822611179220242276139022530219639399602650391731366981830133380503242535011339431702985699539681108796900386192909508720494795875661268826424801765799419014320685772605825690532476244904410395311490915407756107236453923251774359476001910261348769586547092706489522754835721388826066451039342269416582635414463550057993911772842911453229549294014969150880196211926508100966553229445689690351681263015356661615894193681688870355954747644735573148141320264737269819812745005306683735078815949792606857367578218217564974738118144389871111461325415042969612739923473932309449370435746280353828527662000681549465925631184483865602868555839963467083563935146066973683559561435257609551225589919333175289447610123436090055081696376342158654741137516443158888323301204690904542186133160984595915703289566060797608904520589009809325206336337013133719214999889673482256632254132767587845259463319574329273247125103482069102599671012727243394354890266863182690002688823537530047077772695913760298250948035375248396616607827383578955843874332420067023264104206933491624537074410345433082910123445875714315841819778815671895810665096388605187010727010018682057768734139628645125881597053137339242684663117469639240715551216993617629870860562822449292011476202674349593884842392610080161918829805680965546894793376361910444620863977236259430994686445018481442740745703544151529358249879860471113493670561795630954692858105105432564299232869126732749975724232104237552221540841151384060313371664718775376837458059917912285215155143870018644049894716139730592051621412976412527025042412331234033274036044266221857870180639597964615753834824024955045175742458112405435677883715055050442162176460877773412239101834054352032522334546709748862127939224832614583677105190465756437242112596371696347448140784142810979436695982811367300339851096439297619322044888303324890463959683098590480309366619681442024747452602340240159269397186360187310005329941108695814748472764158375507848680113277995529283166956682081837001386688676653804133696611462111888494131431032347200380525151871592643836959535621222243399362227350744657313593960388839005126040302511102503373584242751977874211794258703948579820896365613829213201487858979130641475057427789919450781453281784614742599501449196828243193464721237553894887516099298688414028700704719825567793299779719992357562280603488591523490004952394946345743299733996936661916487735534384418709108608819687648343577516466385257269781673559405479189399360464694226218771196852618432560895288743724318047220305263642883134631604747745407082242987217294194318465956903461239309660457306621231378128424018193818849239261906149087198112161999290702394294443609151153114003810230551555779643393113780372017578947157952398417917389395844573357754833122863540763407721112184755297711404588930882274933983933847494167475068112030992979673100752935316207889018791786602632731593066910488797996038432336033741888989846609771396575463149002268807171620161939033015654731785513890386976816019465957760067172918686172881520188961692340179698692897096749531770166599367821216472943403070877808447488937995427873444615880746571302979735470492664608145105374621436973078172061839302894466449932625218349275470986373088433308342030088737900658081668398660298153259117039429035658090739241433312344029825131978030264454023829315450959980746531318736249510575719332068893811359918018775283988514407032613477823612526213718674216848889632060516681225539899657292333566784665297304085837392724418565800689648254891542364445881621841247430019466783041274899038406844437935877837059225676696069556655260714080822865080388992274756532692070060323116413273669559164234354815097760594050819004347136357663437387041881467577441825786687591637781004884025769731364519490135248294007626342303324689632768809466319913697138401754432591446511647464332696161018978307284437949302609685157758789522112164389007903649725805937144559180330960164504836870154063253163276174548623492232719466944828560625458402313989971950527889483984113239033858398651396416187659025665976048194300594204486205057659487160977272476771966641521300334437196997217581815819513480734777185895166583188416563504034208387329903479390382110472014890552613434004629074233522477576403909679856206045980259686956690183888712051802076812854491112040619652051943246143692090277082960373927933208871099389622220323854500851733215026631106395140636870723773921096504134925604364770698922044830060977326527215424096863697490522844006002933510907156250584546965188833002769767340106400205058393870016816857821582168886781070198701382886964128001298428090761875899842378933446303196503053835341275167770741479905547043619401364765057200304463247558817615240824020858933166319652282589683339066104712258115880121176573092078583074849015135558418922824708507567511710476264479615555203145377217622428570141524475295160399208917988345695669037084135539871234979751306825391605717180372889372684010868359897369011238315490089134424212077966672831712784724642019707130638184521773264604647587532759264006448259882670013181976207919100051007294798264140608183597403323626587177478293162645233629184503781776618957558717494192943132923662534738110852789900895149076634999344347556989749114240263719486828155200958017742307322817157147316956947356884513292033823030262233553344041361645611210558625077613806178582422238187630390641925715425050498224223934326839445011839937189867083703278512690386888053747393999275658730513156623376131136017287906148914199435581031911828018425438268830483655079852107108749818988127307810386289343083863288139037109961965976003750867269063100650781277015033225165444658374477751982552934974010858728506015350468223771659854913610244386599911957775011868724773900683763406018360735444144553973405054907330690665756494176099497547437330922526421225590070704614401952958877526809145733620059474553205330863111362358496202098961928783152880929882376493323216657161316208940856407978760164584328161599901958118335469849218136351659425903323545127414962139809685987984430425833293120457275150995350403102651302678644580115634455667234405921942231788814741024351277627259498939969345274012618744677118990642860001418382267095556934298942223661892719785498892364078293151180383750803515687326603298067593982221395637540474230778458870370945307513913814879175230837941676207295090517251965986481672603143285357380407768150967229910079137062703644740505342167986421802234635623299845438308865819754664121051389150836391708987595102271628992724142740797940681431566724695921656708797080127552267509591569048429398768549275064762563105400921261785411379582911195387525674683123964023958651454784149703821653333793162126217654668475837762815753313106781283779647944248053481221256395678408772957889736608003043449706337781746513410465716371608323950761801714444613574892769792962824138082111402923127138624567464517307474787420249157395521336668955166522165584459355023158419827156269441438279977427079271631236654568715341938826507813382801272693981378859339696959971178457524092014802591685898334091675468944333739133007605655236092570084234693089714260254162118163526171759019246767451143343340300581039489380640433787683512680528312109511573827277164111195579276600140988393296726918810952635000401656151767457645551319892277068435990499007574827778599174150396531060022418182010184642024376830121463247512240881916522843138580864205443099376106557001509998800057374193154645823821904108713366258689967212067563924076553225168184926637306684598798715511438655828555053686685505764393564715131919317749311229597927309921975128835467078227896565345614113313328231499555958958658404360133763863308150066256366913286573929442314604685535396572282391333865756731696182624250199886902946478240746731147691463484024068651647028157054231396465214370509154430106356098540134044684424887609407353052690480102310185436072671312777908744031193440372969258250534538275826450797564516371972805752369133890608783160596389123063539773952694804756490442970252763498026327167006920212609081157229297213618707444977165201828464062750578348299057320962102625212272479438812932047410713700680043203851469002764793253416734949470377313939678387390332256986909099478737221407386128143047315355706433290847488499703910211170990604739414152722756488379534234844958288751116124521573303458357083697815772448778926133032248790356136585761243410013815135221917179293076996395442007218625268154439708360920242454687227116100289268653390232326535700432148739526491885781383322870950606756520679349076145901854691001222313413342190133703227597565718716101076142809752782579622579063696943782150460969528396950443236390774099774681191404633687035680472363399352863950153594912235956534955539633926542531053339155361292975844140254871294834320794008173005727320801982948704866628049900662037884935059481939551736865304112056473969104580965679537057210819443248725312273006528959133343043998077204335666050266384227588831024111922219007204433711490006332140167383960936361103044532944443646223191631322504268031902004703298547301284608265877786659696644261935239735609199032139472774356792000185044342784762028803763242483294496738126383860296122155865349452692975542330659109907651956164090404095095701451008648467088765187934560970071203177363111900034298515417142914861739439326843831927847697964397472859103137159523668984882753943883086615780520000270541516751779946967866417234588855254063231866001242723379429531711921745772567438781976828594586430849762665796708994819426780966477397888674386597276283526170089940279232112111214820054852439946149718829182729207909699919523898549657805082022998728432882227760850206574411617469061624414257022270178359133013091901687088008363638072388491616559921273570176743339972994933360225958604607768411777925905231464294385014697715536499322631805179332863120758071490817387095518266789244813537085954302903382096761214452867589418409644979108995444608122007462775358914692970226655431931115968724763151533324257480155247331194848495536814363165043815081877769102116860398876942015886028176328946924617632635551513513832868435417395503005264123742317717296866149107042008331520681486562949884803246253331616596130813451372270784203951169333867071305117419231347052318034460424683036635840084769350015507447203760309383234459230626581944773502223149940571495825684937718936319193836814666976946214216358074971458467993520668657670157411117543953620424056640356088844374712641302707747225877783822273482885263159978389336630903915640759353790186473790637822200991129782911211452220147996169341822004310690870910598471802759747449783439328310194079513551394667869076385520594556758966102098062638777176750615444111831597804431448385349591682237326053465476114626990814367432824299344404580863038014865177432380001393363822256098442857768076289905400458414981410940019013259766017924933036938427105944306411263617058792389430393065485463014661251289890699204631162841404352035049651090003247221049983551873647009946223822681491955270377532226760885787597063159690260078192064858537789075697685985511207730616597936314247612885019875895718843491580961088956303064963985653277701632374619900243706602372491496118894854327568333642357142676336537533031074658559578816371944361169517376464032865936620735998242757219948742543279032840845358640447276252883408128719149687797542465435723159234542378990424073718535249502594797150480199058959649783464244831759669183215409584041574871159627652328951065220945683526840474329362954638558990760170056805017075945880222657969943834956788029846885684609450156139331476468032448302846147875257826064231849240360418989779689419785073010495952380141170150282281020734062377480137619365878824808372531436456135111054290329114475146733378524158746225095922778271660880840507032135345001523120629028796131949302099645474748894486579735390912086033663290645014134899357043507673711052561345555358931563686956928995557303271501194567692088922401815063631833272276368713129865057060504835416949419734180096765436822670900649306543905194928209307853269264952048927122598128726472265364169688119211870403156024387971952135631494610210768834847280897342902621947503863802691001545774531734235069450766818129469266731247478098943711193152690785387168691951514481377533845360677539971718953868304254268083303738407025431982409456173329904734157851698778265902035386975613649767284629261345593149514231346947673289976837502283515795540085140341349948704002657611676527197114258869934033282432834959849103290336107068332410012883704504459904796936666526726804749856219668221577419863821057181688519129043550868596737499459151755426134081934227256213467047993698738337352723778907681605962087733863618091547842314534250434256038190265194153319761717144709441012501433982899574275101858285721822653207072447907125361872283061999322713846566306020712154640102123369756119623847172596083498346176509262723207177981786048844208115105672014885387057848292786039628403718512635365565630490853874347897842658783364931708800435532084421049928959914315556657602290256489218325264023854223393808460235410991839555830698126049379748716958795297304752892904004745923412203850857844281360330143937747595314274150307624670823946875638426731452254783419603773468456206083501223685336012761504269596492497286739469444729946789024497027825463202307290617231644248976627712112848968731473653756759895580319438128832645330918632965924117536158572945007081520963689239041655257137100487860884135110911548547054343526096000712801627902703244704158036893426016373031753651927210984724141491242264671241111566728446143619921919506874090244475104422340544179328767322538092900114874076506493948006903592863847446928627764194998455292755941614950584371024298315508841746145010428536886911785410524033186948976865408396098112320577913580492753370647705867761532126266564723051238976262361356385596306378382693738419159673074240054346394035769016029375451290644179573889552655792812983369395359129770304921157861054570905407762338355711416726421556586433056279171816175436198911201759658811488538831964880965624002971435654248114872532761699944771075074251629632705626524174803691383436804147387239073717412714227162235603875375274437598453116091308347698252821393284635686254400560869247166954525794150430292269347847756041185147477494047889917518751306094389221860776283670013626663858805747661472444197239543952350662654699000186018673640246438078400217127155237450803651685769842636464846292276289947510542264693650019320877779525192914891421722714957147541862489246114477958698119872928548723427197728684297073749276214940103361884244691682157073526039770666033886564897851294465662966042539108015509994500621162490327035637839309706830906803061776269724459466881864126861733340440679542482814419380870798347820304651736211729845047398152387638296962065454554350625031790751570839146116759588136186800077225851642293864738580405514891653595810262699677032430799779224659363875300001266788406417092654575486897774825435809431450708335725245149177928955791186857366382739841453587525205627810140912158548289713320966072285281137664297548596067739186629841064579427796336741905859744717494434910517150939396497318606106617230077945679677147665121778167191539138793395936724813322146317554248497400400553120281420103937776491617010094413642863135393330027111244032891753229999325522821257478739949964351421849082050917363705493136990016162917963936210161874444986124958722940632948606354139279972771979690934775463651655031519484784718370100632064520798377909121256128134633932190058013897196035844663715965090194201640631989664043725208333071347690411548969143992746792647923999830468034540411118970348820734804358735402009749190712166624266890644696468125310477513590866733019510587290871822116571666581022283867028693572198173324520184538154778863009218268055855165664293646761305551457764046780677225570119151097490256404255587293271647107969082637708314427330557818781636025834010622562420103906953483601266553556659429952085898864467434352075398345912461977851156299495740587597573784885230511971806765491470072898175183857801265408834499570666347242084918343306852311328449313573176676632075085940381973905685613126158855152708141315488360830761038307352181724001366288015228752322530607535358443177093701905077610926056498788397436315886236067403275830629406896977050747981404206414309824330127716233072640988192913987611361022026814510206328488330694920344015654380027763974618666490231835297515716518928535189591311824224241568813445613311124270189850155572683915047054922732496606822265748040590650641334559929613408757196822917092219712446656027562445046944891810268563725368244796150358004433734421773477855876013257086605491265081515178164174875463462148640033960646912019376431351486731670272731718042078435358063749684571040212804761876226336047847814436564960105665075047144277228922660133804848429224818273326272290576095993659704118385981417886645993688704008207951511787543597538634961322685235615011125704717759004876187091458515079581945931471617368280296860747140749342773614926967737902017272178556423886970257879694273303815152321069928576612664608949252454072297813903722923429338435945192353767732519765958952405283178043679299083281053567516731313581703919174495337056322984391145382829502646764170795186963361361658606959793418241932537518699602305620921531292333830658687089883808451070569338903072601373320070494879732179387981100090511726790667968903041163337747643801854257997862525966176629255757690454035285880866567202459625382289943831946228843103505666769494793964907663466975366703187166140148353247264366306140345498252892603716894344741932033364329245695987510015857618944817400136212717845110093350248315749221885190651780804596057199957959860673775150995620371116031144196877448495475745127497354360756177023841708023001033272800488935608354671478477985655426211680820545411974133299969412330494213494142299152157007499394974484885730176094275670220542964157245732332785518501720996726693377947210483017418397512269800769123528331285328108511224048831617015393365639437680580141200751632433609701181284260139922431015284622363434243944205570646457561747730136483033936624044482224602609999199690428386096653052757358888296622694638264025480716525945567268447155272410188600411914649943567436008403759098731568052531036498517859553724285318074915250187503193413846381932693004455946601660851062522956412143641143394955081434531639758464408385029003770966245064519022228954215898047408359430892424962800084324763426984499741110062261802581203855727731330593381322281839987149870825509389796094568870538452461049546520779778565543330144438112833583454372967935579292771819139531108163406071640875581042234509051073066863702296877398785056636267193653551416992959080218278078317962205245296831958409713735975200520896222773801734067927428935855839371376491234430792111113669974914430951933095179593341214033652156843458872197100847962883739451536276270800361817653804243482938539265601867794473885733947792795572234772642449280389792610704983342876920507816574501234511882118715623451040681938602332913767240350844274776639121641850368758587707086679916746170488551483675635556767205488907264564386228349450716701287039128440561756112751149101717725676515413347263186354028188877239257600534179656239266563236127001320189965515828887381504143936981384456359577147896827624368316801239494412695627681953585509449341008353354432398663941220209322385866922879947211795151756106830311726059258660642957577706892395959513091283783558440839677225167865783376703105386724724242859361844793550147277801302303922340534667748968667506024429818711632017496977439464475512231309797319958784401204509077356988586524041045390327253384958116863118260388111947986152692205434367931933627929010426687270637038591634459236522929785685025386263873883515205823069425125283759103116625687932720944605488983424617143969419564410380345639304358431206043988500977171375181830063228181582491458970237869597379327484144127703783234346050876775342246309597853415309184509318656636778781365436214853551809267435366348429559706157030606246026638449121797544723931854934090695234610517100626923357214427375374820019936801601295959922406176100272359560816209383226069672909886805415732494145650083320598766264989700770644580829731854124987303619882820764407694505119229183247061638595843337139045451258790623149863736678664810082394085280313024424513150407374066934266880921854630328598376613026404477055456257482022879140088688503720298329161439643821319467786567412014211498285184079803731064197125744742066057606127710307268856114146610677652465970482397579554778222376986767726019534546235163936013016220495873938098261184402542984585556266180590993436774565830909009812864011781911076712168872687980848218608952965097846009929227698687532692416940199252799969035968243494496143900045905654245294153644806098658931091212692130455796072217885694246943126720291004435668782147025864177245779882755111817800124163000613310205089475375433880809228939179506851381906383023816537857866446483450656148069428313996218612451641723419223828825274543289725210671799798240506927569471061869600911621230236350848400084150266696578842639165318512999290306175269527207133702247174201658712647004735005484053706415920100095570978880346186110451379601928032265567856755850834473231892770986584618129629194286469852607004907489904064756177990434457466978703702699454392225050709887018310709287187359897326323413869371085173998023529755988478854085980607991670612128863919244718680969216141873458473712757503669580769283507194390326970450610677717480293138062058916522348110859426500525596925670974996457784695218353354642349204858688877559058656083494880595727159666123906776573382538480882446611523118967133383589030596275029198057816316936215120588580220225808479379539564558555075171999572089259717824428884529397198972099354523745933797287070154135325403259373945976038761170867225642589453745692260564240677679106634643167681928425384850449428980533512316776267772653289330881312533787737021410120328884715764094686316308994696191378104889194294812445082623859546873665734532258427080387011997043687181566471626011890784257788734722148055674642893472401270971415720396864649159770016876499633823376060887482697870685904164361033703812638993093883745611751866540545695262711003892080090708909391960261609095391629103139011241450093506219904536903317791271843681135628180758610072079409409365732173195334693260502321528846074160875787737386894700258574335144213681656509022051476825366070510298019941143503653992284387085273146742354533258524444032509799093962847512000346752804205211528112975390363354229752754497325976406232007969735333907379174998543886950554680912081406863115293064915103200625663452490793605508591299591701545466637366462980853248171080867435749988258443403170657365200599195800631328409986217522914343494770505820760776710291419968539260057932011819871973802129942755685823858888290512914410187728496063427034393740073574703469401574861790554304113892446423681546354990150523204450730283150570586292827880288565595961631214297568780470888930710002867703096224119151592812942902950859492774966218139611078339121157234518580297357332616665064295304122224393930577217488466166596316529605304638635520897476500655607208199993162524746809471801340798036212311888869428819104518073878811374425886322955529456293757240444724062187271579593184042173437470852600667979974636733080859508385643091788306634154147819064797912318050351962116640127718428992670032163798109953794791075674760336702102469497984519828782510744784430958176089308697697555988287340247473437957321869777533463450749498519422246781526213373596013122270667589123687386568713039111286668280037007168364255933187828150990772112958503047077198957960659141998049435029754207398333866834037108538834732736368461988081904541531952876070096270936661152002307375772972611623074928322856811575892450588660247807628732771083149938461743474527885569215668378449254392524801600441958588947907130583155334993675053914051180116519305172122990792483440076282961724295637164051618563877142955702393697041077836305328126992730235632699725983984500833056876438257853989549203938916527936638585154979455493012256695069645475097206264500672285733880650009614236924909591022214699710083139835283463385744512291228795706386647216838474103629855714215276092555725919939558832740769719850567845424625823905236865231601690555314496541447224540774130634999598327094576863011493917229011726644789003591174443406814677354532086311181483461475230521443517985120255991041033134652361577738018448693852097299711560088973092021799899698806914241725208072977521220457311761407737561217553058437357682067838500611526891274830131333625519263394308624103176778588717547284786544667882695103317363398632476815759251803964263769991132943887665240139534266107301019010774524048585802146477421700249740047006927848546440790074469867734245531444408187904678460063348044663104281744051803910229495936058313984411971063041028218555289674247109645634792354043513209558231235276492329185138339389187396391636555060605195385001697416376768603691705243035955143554432980640059910171076149258079209465359093756026532811701744803885897486829995445722183646937550340808423611894874421395996238621747430978031974141494170706490589350176933573976124499489305224386422304123999252123706344934244740090845671035473204979329867163456661121060983619428446098600437313939772400673307062736419722666495040841849353240288623488975161486543139858217315933278650692460459307123336593160246043902080070682465510807310523331296007859071695484491423433345295379787385289008164463342297461660129261017302253168241762204168060559921948267810129053293374492602191921776720948143180714312543217333387406239560696357930893921941162099798641659561395533408927282199623859661698703368567941400791452528305796455006105490572437273086709325399274092156184199566632913344272860217810829823326886518938193204436160428878786616818423320896361586934400503552139169371277804161548462934170277402270577147823740645232611594164643212970204092903074602725392705933176656917875528634031233739425213692977370584129520380976033273173807032330443103875531517260508080771413832899197272858242453167377572894580940847319830926787188043045106547441964613386534779687616254183746584882182141996662314184458332850449159254878058978514019402276626676554463644353469813713653919504799981345732906606050015843537251187989892355051004146108961975523039365620046744377368024703745789487990795377978629674594258934202031744006188273979066297776636184453952029700683231177534410291551825754785421224962633822497212360900282299087697699746518886940038118925526563739639506686993207603074286247466681517038406210193650103223178980653637079859881717289951064482737888729049548514579197337254158506582462816620950631890739397162245563338310450495932603898716127295009732068304762733115855561741091188812218031371939954030707335523170461280295241457238733237067168173097134712282942060220679783861772834645920944774988509905726242777016635768033824489986126160294511685593610496606946947717062828867133020861525266112076543521345456345581053855527329681176717998335143796921369556021461405305584692195463382620446483886951814613819775681030727384029280000525330891660796567793504862585546637225333160025083394219499614096544906024330379213342428564848123140188980872101145886222760074208111519430016316678058262293170366374442668024983847590727934332310712701624524372611240226661332637107848278813736749191233883357165934711563075910690407089875821855565775657419096742038452100243916674780442589592644598047243141201542278719465057865717384419130169615187004645229088582780823599453796524826283528870966693846450798672061185607560453469728420611717193472097744201008718437849149929267313711028448313188165725677262384108322101302636276224098657585766378330812586698582235204185203049849719804999266184496883194004741495107086189620454924492682174164002053728454761281415243377730754512495541042248306684521591745005733936925326835689595038698280928370417261884105185847802546559762771412945494398174315869581893169097270377837461287405503696065949191456416318451181889006558183581064926082246544032594224191453456439605882637683953586826532489476626591691204256160128017558547162530159578905165719000786877897573271739145976813071728678148780959406261860338320670422047643699860223483196829984711860847134152053774013815560018286482387365683239692408599500729259573935158357801826229781253213586936724743615045179949476645277470485262414411054396958248426360581218050397278819069763737415277839552348007607539655213828669359204558962117884432621221919937070813498650796344308211981703881362907681220604679967146693799767428377702566032252011493056518839791772401232257206208933110618335130918595012695086853013518895698024607347054401585936311694937443094681232687588026132951799370091001903369962437633908722545739180366271812450983186202051096432349367311625630079172074114507648938762251103768787436288123520974540830526842939362408503793096950671189342567942820813045981635874982836280008559737712154042830424886699915359167796067917490168858657213488342613096121400139439692325917221330974640784139351083742670439737239980687926395781217065393941666865730916732737434686550352464310335625134202799494548577542661011948379063892493120282259170778819845262942864067242853400395419762198877366673726152387241007861823667510232767788436061951828658080130530645802307424566521855103693918938032821963848281680545637082718995978852548338273657793304536119970026479793897410871429097722579941511023683443164114935624392684092500643210294369605917014621146056804884349103949980027981425470516338259426160845829642184792699904770811425837484745776245084618168422038824059347528411918828577615931386625375358388668346248750845783641558684576933052867621757024393351815963364104446027825779858637963458869083603628020244915284986129438148038187957606256613088218977781861877433312260610904954574134490097601523039465649332584567421060588115651926948178489254295160715978380693316393720548328520156018017451725792156199928974828269975783088618184140178893870502383442326464208498730754970423538815085868376323167201675282049192954297897778733837742066970530542040002750572893893897306633117881383881617861561989535165969582868561819457097309590305386194783125457171112321102071882404216110178506783830752472063519179024400231570857245133099363443465997600014627597882437568533746172324667947817420904031778821764280088311384800005908074973212399264375027948498116512222323075157755543110992884056717098466938976685109472241091058990561944939819462924050276498820488381375550806320221128480168691034936315403565351272584386469287463769601580584067979867940005043797690934022150499784763800223134541536128132343296660585211013329360016995815215503153162042959188985860961173954073351376157554682405920579989098963468300362643294469698278662947130525509670095513520404192653182688273298323258746212353397104330528369651661584672266700174663029796558193151986762947821351211045924301302627629890910994541667469473693507622342608161324170058920528252952835865971621281102390989165919004042129200318282021694776661972388637223019931796656512739347661835292604092908620126209074722305189794543800827406911902123767815203480268749387030185508614047801018440910726470096521535017453431162197882493499106279677728793402787444281948758155428300099806329011267955371093672579233663325358042859546998160595716793633364017112529850731970450702628289502245847705080782610775821484284298524350911726194510191917627382336090518924025712016123743260511660298750230950814977317091278701139327437259665481515366347397505303791073583217235186573308316484852675079823001608514664765240259797876094010481767535511064290353141428081965693116150714077842434857834173729737524498833250679267989651082435533359897401336447856415196929693364845626808579779404394817046687671429080204087677214987865077421836863732932317014764908179176943559869167819505210520073603421612863383835817947320426033694813279683732280346121012895185843473178902385711663392786009477858344645784885669167229880591683544339258097954997964869437537306667570607397897917741446541453708666981957448976706762471929390976366091583755911283032199437661678589903021978330170535945876027200493191385756014019289774123192622198174036408738203065609731136749701363491475125557284447077425503248311324736348714085777904603379388391085341719785113859710284307466178611870310820647759565531642090226189441583642575538798584128631706221780349455829976620737379547754562053270215704992724465152285605767286171521435593525890051940242336641175837564277309024841465546262850918528129634666120931440566397135997930168749994939273422471504788285881593783932378367194093967149118555134454881323541572055083021955508830106496658459314518220653323035396910692846495245901554228896522234873357460806157075735380337330283262422192933232959185382198607554997909461150790012753699231027510169942244899846476770326918395013346610474403023122798645892476527751374816382633722451272478152014102121377447707146377420078082801188061334896880233172054333621523032288136279032244948578684040073495064517598089867295091135667685504336749842294933518996260330563719035987086517550598907498501879427621073078403448667686664304159906512706944829259730617864911958129521014069389770919535694320351033216940778375184253082776475556653857984679431030788361853323499476050473366192198022407328694305656019672595736700639804417332983852621920841208480474910164284623830841632156577196399548022769882404329177487154380990957695573032991852649668951786717733181264525472164583693011816135672297236137406874240031696606341430075112406830750250763420920072851348563825056559936757115433832199074625382908153211261078164222038826000234376768441907361192365352556627481698037711889047323794285384377307706436604812672592994765632765738430881599403988800743605855908608844682301790417955245492726288887294844323398326795982800228927493064719816290046409841747450010049120538191573511538684636390273049030463750522984486802220834828515768140486607668066331104208243542233524585389346625810278181134486725874338449008725130901260602328589147612939474303532350318402377355122187126401687709257000066534278445725302037541627497141699613494419376636220797183314068996198451816340040051651833603580330657308195085809823522126336644639200319958521266518020984394607484943960323866212528983805189839776271032625108105022794369050791780858602304261328741464361135705716424772199617614473644141167491889812379717085693526004593449877372736226811414218765865814651384557055975915301599083197114356792727365325066154524534831516215714133187126939350180841044346048450932907787960209988721467071113571623127188427988489721351125535293624297780550670250742081949797396033684745471300943793029095633908563942099436472561443210412154489849057201001938313483126225376688869946078150614248013914599258970341496306130297479930926214124576748238611519264618996385997982656949505643469528439813882087467837829103360001506767238829201113015906255292854248876726960727429008660027611770457610947610622600116561289872126390292525308769708449002646969886757479500864032172219663164237017142107243003426504903147008803623423811775562111575684285443619029347767922153197185759411529736138473240367346473679155080560276535950934855165883694135245846745335346373398536229693132415929973912191007727364942929217414322419940039709327308374384055794009277584125492069764606572740335299140479901138446585025993580520791810685536147515255215901928537984525912977237266498776934517745710737274489546796440737272125548925110058915855532188414203903913720941245027717456828990815700101138102461216079363405694465310737500867434739274850746648754915924372322938481230262084870315372024894093994928904023707070728626545707254873330434401261756711582282238092109961236052936992723917632663257473658493290509136305090728605646074600133216796645800035362092276593201565369844642454423362753960314015952724453543116501045212958304753217659967455289129768424655426567399874192552110435970189750102808406194589791854489874819216330910929202114021951543855139761308798961885299344136671985735348071494986499940768653564836682445909819879819719309224143499175752281405298417759049101529148187319060874911666350507038379146119776848204741314686379692037209490565442494748284283580723471994278857503052682107726283248586551477120010008751263993431923268212860865081080928272977382416848630773408988091624868570706274399435430505589824610487296990526154101620945126937392724312555844880094746238925656708698224304637455800198683155781550736231201987685161169525370839422861461321770028507581146193431383323727567321863093617931820333546995953046036288675302568408958037984949938865784776619123226764006674263965743747563885615194678641885384754579006926752982757855873977901528728887916608437804316516047653268971367524985565700790269763434522631760934909515311539941177483368941753705662557756717315867135139610439056783787620356781635137662455659655571514807526155654944715104076348120541955641180708021548316021511676943502029616325048742001308638944234546169955244791925052171219095303884407138706245484311082830661187260859892998509947347607766847105142683901409373789609683230082037359340650229889082903412447669419670856088646035952358367341543583319357944770131540905187246091584285635639579383356616332728385901557288218498532928131604490300389869932201950609611646848811624291230589008293670249573136671450879402470164997687455289893355691152652320908872062108368923786456004475425688613552171984668516478899738735817739430796807998406399560085174972126174454931978578738374285809854301849012749272149089236993377317406916290665778186872253701634404581261579663251553284969739455656858683312934756809660994937359852016137333616061791510883168509705430830725765088665829529315317391488747462381140295649764564126637233239678023954500927785527624706992194341451509704034057423135770575021083622257041369921433593951541014733367370703883081208954151346161791080914334098875347065036804054939452137072658069424151343149171052977639154504285970049480644770118286820865318217255288327096337297233358247438904607823407023677684001700359813315457376504276241103504164948774842548896341784823664867924899396413777456830814838852423251684632107322108820419763914679104530245348005847205011800800347202936176214487060651651858181758786362493301605585938958660886981150957124484047794053151263183998541652382367661701084129760899169675812854748901495324949656427476263401034961429650824131314963649321480890838100681920854467437864573092831985004316087509436269439871924976472303341690172272247463061426225840740249126218886781016403556226402764903707765487277789013190585368142818661083738116788714741404321943975920021072276999028371191411583511308711292506179685188330447199533605163674943187161397810451636425131554100326049409704932628868657055387843848332938792406518344332940763922943050879221726072719236935784084746822511025664140961000309490176947710996494889404812385152382152515560848737225482107645442881032663564913965948568079061137790322315823464231523979004862551418750210170521154039957159359799290207685169918426727260677651010953196827134919217993665998000824990629965992148062273474126886968061641980793137885630819624008765204840841844727115509107628251092931117739716989293282935702336604075126002676893287225128868969062644875831489314872243789025557894577011587635502962886105494464508451047454649774692890436352315158026102539763339519485287952515803525692232530089560417580391511185115094730674589608831315100428334100248271025013272922809493061263669475296626956004574851598382854340445172814924984741321556421527392377290474060821596691187534844574136239972805159391627711756876390897196582391026169755621521848957523666958271907215608286630959833711355670985904165634660028837577432253409474637155450097606003196188042915916196537903368100133604358539255142937156707357374868305817170027114509362353686046599666107916415520044004485845824967803403140058409087063680770382786924095539453760484706635348228640578945673626196746160421824326902319716696257801308668898818577416466329519145873935554371177105173626785658668878459535662773843795850763698233836609559556980639044429128527526156757467956710660275219545515001738195583647157293618064822028580607803027915892059759905314241596937651897100462500267342100222225870829989310132588256808281770350210390260340336215992772867515121267361815520519608413614703581451948031370432046167560632086139857835384465187771638321640002932816651132940322830751844965973635255892075907525489559950976861451555506786786087845488043098029359761011358376500882171023001160826098430175902567298742031523695887085078049782406421380169397883317981084107098773397649311465656243889417827243652107956420079462271177644246930965408011289870262520827244679057088390167580717808873590998301859451766793194081678426286081763267305709516869566208383459224290053993837719868359788427940788568168529448964521118749233427079759020339987003824432790190860996760673057613293306612571926908051989846434652006002441241013774736733796675162623492055465869912778601874261447873726359920746452338665519566946074294822659969493492517362838525378278779452781007953844931884341852521440248817527101763889875697461492085460571374688467458749672902054045427556174080961877497471781457200931867017916712007300483225028347598604407551306136830705220066098130912612414738662828594829943767863873717725147331284320615175282472443996179422280309363848633210958786959312815425274050486222669659822206671172442041814732093644913302965757670846890162479035664404598851494974432722298293745060373974561973071688558361666756235278166494199153694943577218887016035943797312256224675157675111781564237989912650679068445771321514975879607615612362138160628647006627784009732502836239667440158516673547615327615625333291949778786806974141542285773172208768609178754710953477213912309518963463764796914760918293809082516552762541679483129611547469019819639826294409018195477845059172074248129893843369616711285985814447213999672285544565888063183328223461020520697720574963809100441534000724283136690379664904136961914230736615048199564428907150660991404167887720416116819373399267981633264136203151375356194717941481799554724636093490285112123642268996993052850071151703486605608498491593766714289854760967051199565939474037006660175126909284047227567625409020717888382440742792623911217422505128917613268878844668929566646021613102178954845850979276326417973271224546804018908788610189384129899478312534817337192348123802573550633500297483805897262597101444044002398390266646513063178011250596698052043521647097315231901292074905680882451301076220649515796498760970990989437254155968207417580771451404174125452804592689275437607527907173822755825249132937208463517358326912570877025674518653485622065213086999770863127315444032131227353274475851888448446594008614087131953232861156818223569374104340412410119956179864593762376630390165254104734531982372400529602695048852582465467365276254829981636221889787284735097675195650570224518206414426364690481145596378285603585712370373540134484159799660296199277650836058241350580769708440053197180911127616062557576386453278159906114208870047833554317606414739303781905321006306563878409388452659351435595966239344111078273123859489442900135661491282080589868155337987072314628497029325645565889014094641211144932791689628029098671527600230847499285080298024713748382359341554361066525873588956839973895649418894743488972724632033206095013114974872237626024311797290406915527737982980581421468034558533591445975532706459582005588105632495896246394588270199677010236914901774924534823460840150011177106254237943929756545659076344464303134380361271712657414506496759474781719987607190017903130755365722347332718693852241076500951301290690595924135087337610768823545464389037073637966109546042809668493011327118722679975017264927895189203185139657327778465101284320540818962628703241844662371307846744974385197972215845225304064149253881377161904749985742246509983430831754040920056424848265788025934839526881292032233812337698816109223888300467824192004765680872308299383777648709829573277767159138456715147867429340630514675627476382571153935353392872512684403637128557372232052303546184523129233439488934707628016311705821725386783268274414732848921332077406080951600093633961709110326109213469056408489073972425250913011049743662876808064933351567471326483608998156719392951252180514404034057675033788549765571537433072278133883161181462828075371986654190409257717505459229173745057114224908130592948751101444157976754852178282729653177682029904205022411566830497714086432648427415439025059056618702802826077952401039406411698740884663949659920023879650541406219031009379089738197814149531866746544601649451420233497721373774960223362719654265611907265915264798903029885931931955142043161739344829893713750436753148679035798884288985986986788009622770457370617497625436964718760020333042498400122825117157758530880979979359349645251081259784894721292092855615273808303250550209725793080045490321167218410354559601141417266172292050416885139208604036531970959371643921931788877187771629578157133491457241288787834421944369367144591822325200619948721500512572642754135740474309345547516877339587596777208686403609466004940061886670268449905248367995653059485477578422356244805311215800485155830898008065553398828756625573557135492737373332898549986367405152104271377135066516144653288998253706894567691174108645432147506558661113490724526043074064680139323878939301813443599664301795720468322126765558370995637698683257528881565932247753410059996509576334711300508128112827792993949142375850622469741713993065873375255791242463377256003419987468220814149478645463736150269614113272076820469090143049342157274584914672887705137946251722191846184635476253262657275575217320632533830074041826094365620461376935145759310500519135513400071158602484633104503245380574948303017520229326099944841101793612299269693756157029221830549864195092302955881837603396666612827889221369593511637323109638163001688149673668701093401074691500164063122242920892149249080014001157973515908898212867157166264915137516903034979082293756524842665766604284683573425258148210832878003740948993958594600836349854367642130144180286385846215923462031128727241668206187958701923043046937495367774402572607108481092792908832604399105784387798004697185769910710688880970406089350326679629421851902323784759845332105402213684839191613298948686682536189140260846318546636052963482693050824666305595547670730014333699172753184549732384485893330485790246890032845269333857675570924010115634279908870320673898108415936730877885940897581517284331211564735438434287528168475194090851934829283457640070972956302952224506096189866922604016029905923143989178021848454669541181422240599329731165059797102336431879370600922818196678688658240473423326829372548078898782492862961230283984444605938527752954213134088880520324881021802488740971752910654135179804651159837763317636321155898381773686057403094448577596640026731459131761048913615478047013697414925084567706218785555869042070867277355433991440365550943592031934404024263420128584241936740989024959922095324509126244764515290860210222874826699684538353961787141897614280410201850001089833557477029965764149194823800794228547487990848275904363904905330906659001977329317939767811111353195420832733363545625141650303277248975982851348944281681986419234898240891793982335801123951523214508324244332799237060921732732454315459724958166695579675445166460675688184652935655445971539631818031882711284622125713906347240498600927320783775624594098540186531482025303302508720880151221783355612107516145244400694550135293058850483674175848480008648603104662512062507073367197263117472275123290819761045673649606099567139136405218699591845243567387452713925608527520706897189215844688709439284629270387617754096997423997460370371003534937077714157288418967469974175130823671644757218150163954575877782683817886705164860400779015558778441835139138560503396646009425737629283130142669010046907566128037384293597921155509301176068560014303652961872814280689158250557498848587596476478802333203329427701513573764540268638672001508921641163698019621646454603709072737720379464705217448817668321880859541994147697284890207842960048547952316777958310965359845249898388083252863544373065058087102906581438579722232855860851509759616500601744266033010814639681624714940881820701407343708719927005487629547409534807804027937196274079625721975191236867484274584310421562274037076937628712457872989574241567743694271377274826611613820128648586541262009261009380681252619479116869007095876181827689351672094713462638455736564772042581871433307301527281046483190985576270561842004809582994695055480659399071996796089512812773787051991716880619101847842091773470475822587763921950154879776195984770184414363307384189433076829170177063107659928922408200587479007844387839132557374566065421321754412596004539198594608065665998500920406463359657723268240864303450345833670548812323313804130723284681846091376689441744521321189429517811856069629832792928883013443535496971603626681707685602990797646741448872028456669823863269503255016541702203744839717917123869156710882179188324490322424224336193963407751247706441083548701582723738959475816218183234310573968893414975611278904906307453349711022372481673802667817181887580434380233228569549374913577410995398926777738753226245615170028135299424273500089273228030422033226129844943714040822452155523938620887816867688763152652977594896240066179736712331423341023119529733166498238017110429422910743069117114866070465938565224188101138275099224587984263188389338897004759661516894622920952061355417713193380219951427424078796801931110920379271262183854804023910278107142846749320634449368857779288931523992031026846612058749235769245493953551414598664803826311481826556973327973402695083542906142216872919581639597471806423545148059661500805361433976883309322746082665973759592444717776288926105510066685622487892341532431262409699143663021762710911826840638360994277978768888610293660948576905619182174754374997562523887532337074368600579867619738722524578772640009598464836668162055471485071561440153955042568330137962355762121611953635469099197357542865067375360212559563908283756316182307473499624786873793704822492689066808265413681129627515013570959149114353309997225571728264018390271699675379566966716948699105307281777804239499370728979013310541217707413011371049129492944261022644223875934507145445483468381133902908015392489318777593797536562999672767545397631707516364465179148921375797732812481497831845994900449284047334771308817442750820642846804687401387892410921027130110623439797074898213828266963068769357424314203029053683297964067979701934764728497061211480989894646257529598632607843138322733194293109725234980403613647345832986139352811760814484258998221138442588040677345717116138927344444646144960776605775255567944058553273878926562681822295863927297283588884570212318916675066925912554601448529143464021125531273125870209804823628585292037112355794819121034243290618337894973070120766272597273359779318823417550670338437769345944528753678863093058132215818757857335416700019295801517661686808447372555104164005614829202565305351033512886689063602206361679188239371771714152650762181227204901638586494010977969182643561970517759625526119589553972130294479272482825602287684781647354939086868438342304227839343646024750761039491326784962723140666941849294264660119292248979724640729059222705394281455584661128556504952929994744867664324850150597438524487238621102586456290247364987875482580482214385229597034840442404564909085251908631986861677998143236952474561932521849025254912187309279206269919270837323474544765989894407302303303366044677096975158634266874337244403796127023938751023400822195571162503202493642551157267850119166387816710307788792652359411493302603230855936821844410045609148570310779500191692818468741338336554481377914152764698165782530062689641741988180450515518922791855704937411488778955157427976337503351844856700270675276062518063939445443650824776019311549179366702512221366575747707328010920618683900368210199835136208985824639579927576118990930118614646320661698680528366244700100674685896168401246829178549886548702651294489509310769125428178603951380778648419717229024597705679075282750602776089514354324916225476364033481276692455903422914163177788466091226581408401158175568208732267191665545613865963611962731326110109009326821125567694426865939118592453810341748242286277341266171137680437718890533816814099416156726493631457120213203222953345431399592152803386530100314491909752726693412790002959976717791190777014559403262636141552928059679364860777006251636706982119966217976966980650962236904168185921833542169561734013315051947700794026859622118059877437729891319986430638950419711761898500195238404559699910626694957474766760094853172018224618630674505890826639156794419090919483864515036756838334940582041038869711937534910542953098024045454599225615541170817913411285667211621279238780019991335276752787843645650742490907217990438149541519531950448219534414785658959243705284137767526014507977478094326169429241521580709701689142952873479649617657321009437260612670279666719271605422621736906874485094754705177490868378576254111460614725824446902175435380849583320517199359905782140469494830444472414130589441133556361958537452878344386047038648249315153341933949457428958823146058456156757507239523483448803399759641918500571082943128534290619834049678703610161419823000996808467104762136665568093929975568049125266217929166197672967631683880072206410194015784585626680826613722756871459743335006339224428225053008854764572902217963587404782358437212108761216939991938580879812039413037826430714443213633241094812584234929590517730437845531914920009385167364643177281780556361359372287868964736394548985995017718272917169648710453542917528094107043144861354735077933212377897303567445654258156934113912746978781057280426041188650123337963333737042976842949799328206327071846969455378471951314254897173673738848314145996204594700676232784771120501753950357373708433789814534339909439237944742954630581460871937264413240554306162985970102619323890179228256256712724608825789354465454593356002989138402851286230535586610942396262683154853124187502547266171768712734233603760075159546529297509915311547404384177781170476064346299979350248509228345918139875197660367194955937022277536037813331269398497948218522337440783035347524241550732531882560328655648542901732354915451605486635517161259760886375342114608208058983766524647774711365039915292045497223237169371361425465822580379996184933449163120993808392827588506327155991351957141872119924637820630219516066376163903680989643371964245619411531316812121935475303013231479945145280720956673172180598192364566511116147543068468240382029489169554984739539507766096706654264145531012266854167352055587860154386339598346743331838123574032040036440262430788277841370232849462316093156725835780120271621702204677749215432570049843505642829091632781204006278359538069511146385356162686699042724852929420017071610587164935893348549581351452654675743744702267342885684867481466669995852558852408504250071478044871219519608767267502378298405198696693341933703800969516041209344922845290625460459166165464003665281418261549906297715359684147894860489484246443636284909656419087984781735465640759733348340836665308398971991497320296734293421726782830283499029399322238652329016009155700413502584557613024841869973092620716817359873688868073642899721106629627725149886090665238942055383305137115010878615276541408174219055162626781173779959905662321647031113279715846954228971222004024299586565437004420924454187224385063412067910861535441397175473910796305907701031273966098287664246488821479871917108744131083210854755017310329264743041374421948685888220739726162935631452624837900703479968749591151136154293211579335206667650021222316336588939924231740516603003484637015953483677335589631139745033678668545646521041364065297269601558470628942267187316813947395602490092968251984787860013586090529345195361852357075585865302042742487296173989937493597823492293748357058935604901213338961525673330141232995568505361941827424556822737633255580781758393214315725747116078311227951964624174761856059935529351722830911143621231800002766680613947303732746181807938913041957730318700889709280344848064301801371544237628677860210367744833343450327552212307281939088742142703175761502566597677933034214146554316951359315666410143751845846450026328852201339685823530698281524273993908104660177655353883037667110782160753630957221048716058654615706209900200793495671404620741841602687160890502896296480185414808810587185948193875049880854722650727168268787087296314797020216110975997808830303824624149405606316394916085636870701333317895197768402400209804543198975410623277144013625918815201701604943796206731054029643890828749814354097271827721232068844491806471914998167738920712753109388560070660166239704897807573589223183511439789841188885552654135215319322318210802512159943999173469642821668265405570794348801828901506175021467007080250200008089536858366966644424020843264025971982721704619445300884016889768628881900351226022026793923733550747023980410794173300700306126242724266962516789325754571424548717163052565647032894734788085859331349056111177802942926912824228172680996549694125500977912604737780162612782427831281985271257716966102545128397924045203969025199697402089807122192354153711980450939456599108852481122848730475137467647847324755784742854215393421124705240699409215188887818142570933256652588345508113937743489817161117109671039942688703480062620011448703046744606504792572491453726290050069565112592824321395446884020257144136492181609491399121080806755529575397535509740619357922418977906088688076390412263056565837060043217935506719920921753426115750172341572647032528338222742320676754357166158755641662548131306380380304309111361858759173805589284937966095615341717263347036927992242116857186040691883578327670216763184266164537938607284556341906842666024817469684940101827475656791378786811191290164743241133462787456654892966163240477367823268521537098427850910847872814094148163446813533655100682257671004242480815909435171387520385252977656036710059984125854583406933219109164515721097954340504466766580192075976483447576116374320907460959801303308362807192544656785393240221519376977250718544070378805433673115316145262587368516747474773543013038755454908920505379153553455706610083878817397250038367517609964792401180174392967132937211225943047988648065415473514714015774193062072112293728938025204079037336775290242745026073984009985228453324859835327389513215694247767856530272408773805332378911349162258675590713110823114684673944856452563894618734754711491941438431553985973533074991149984865334082323149377770941857021357928583601776949121080409668503475299691566505673581424784779801133595900802162089098329398348453323846660862951254069456105445515107090113517643225282644857267560927088893418166911199518768300837727039161822057568153330786202844589343470568993523452483990904241197343100758731685542156902348335609685758854646460117479707487710056403409160797475701146995755147821946148156753198249617948067064455057418935659831284939227058595391827355933397811339653953054857550795058511350297253470423604524884840659150872745122812280838614057532979490665904680889080145068742708046059639953718831672882733922875206643564406560896697066738548958955659216512429565812264640243795013022259094635740916286205236970592639739254030134637573873785050761239289994677715319317169062921632515412812732259332849025675065658528405264343852472375340223237802765493510360241116350386931128560295211074318476972279185013182657934130775950595165483105429068343696926096346545276351191331736813220559425701025058642213085010287006392546811818892156978734123196704592534888426583474993820116911215030782256958524525136433235487876256190606864567908990336275443240170702212983684319618157944452743618502908714496976844000543885230062593458337239548380663893336942194970668677216479043173111187604466415345969685824894791243674424776086367300855503283899237017287761464031351741473095260547414470836211400446217896111525197097270989330115374097716731545941427291964208348273395837794678919108903811061578125476790986907741512971054087843146383666027182007770889713114512323338707625109532817497304185745308707487173601924725140534107913475107012995916801213400056251652370584851534055480586771660685950762812803565214651727135652956583470836718939774648555344149495549865400351406647079646134118785637739296846186383138642088568126399478714982372700788007710666625796201941371233610054108797537969913442716464065685238136719929245953941938692580802205303748026230320031911904128567821245887895234630934142169840054016168739190637480191388397992407822424448894053177366706666944459943017418368734078078071603845228615033130666924956374544247100114601396514017466263144459787778063432706996282630551370122451668451147640498833107605344831872805560169835942775722688961902420533144621810315661480269693534764572936080897730891116265978243935944838591192733227627090600931214448033708114773093725302536683772042096862672311115254920167027225756458714522133150664269522215311535745727098627092401593264182236751288162680526236661213574299369229341328020924861686209097717123943583122172016486935129171846345654893567910281617438819979487923652385928497733508138042559958448002567287033388286510640078552364264588189016182528613288421668845483402907727110650473201103294525566902493901260090296116410719276548354533522991491659018726915718926265588115331228739698769815758284698292810695618924460437336257424150337328961951242931411550958874458398755008899812422885238483727382065800997972218423310650333500572816633160297310903569623572792436705844921927583833724009739589675704526767117832717521424737470568085906677026562063898491241296393778216895693477734398360376838109277502458301947715912012350308465372726334292483160269333509106728649886883876499403667254036164156718051175588301546427501212710978720339763533756021040888232477152332473664147086060155378982384992955677412179206022285523121408522175981888051167345301402768813825922703152450013142449148579821359776449772346664985108692568714194049720050298199980624979217361648853829043627385261083847335795496185491328560731211851442879136530028308322712491773914749503373079182775384709559359240900861707348571454602386679105353158304869662422216071827931601425857733117371761406215403057332670443240234126816364141522522050012687022611410275429086325839846003820815187650371735115239373337802811914806146802000282392672852372940345447175543804254337986469522016933466464407285902305388365189097406710233365954674303494071383142828254387443561622569240937894439074677938622770394045852921223064316178272946744194576865517016732878630757359073246088081085849751747658655850220407481021858012768732419914003876398598392058454522636554498078834034167284582145816350853723438144389199381331030993503316028249340518158737998076430688801819493173206048444826733854931307848953167635074807185916481039852788472869173515435309805011713344135430776074011071621597600693272717590743115914830228065056365625985341233468463993870338915858984567890312560337441300497655022130638022410810393492789996314599524332189238002685076530230700531692505192684892821401347738571029948372920103976242372709196021849924714132116606843920409890594419377010387491342618396374674014817702227697883882664050160414533659069589882897569386937334400496768340308246959535865696745560331463504168930591553767177428837012419937655578524644866237790347397553647077570725595636425204881186448238983664880581105071735951883776419904592291313067591419053655276441257257460707801405171429423761549488352488854487948659806048995604584775754812195621949570011093092662012778757163213961353465045441420582775366748367740969394931457269621013736317427694380832516064920385277449966496168860527402383462225885984535529064963084570657233430908113705948814429699892295974280882827441658131862413986218423436705289033254473667128410018046111624161343542142607894136952094784595059405247478854327892679426699000101055169908525469451219606371577214836215034045066238149646230997171469767623023557325522501740500906359858308578163691449498856841444206855687981635024230311612889527727275323896733651673296429049872200099438763946553645296147651314493276922148937159871632715721057171475358151002161058824221048353122837332697705102096569691005962645393921463231910169054199482051571015548153461136195714589392566987729262659308540239338510341693592114790908517433401147688662018046455951484552702671919356823539227847591467659970191968071904588319523812006494020926525554743229314518465026888050752092224977154994336222359077606879762850602614632275812005632423320970711477645491458572767990252994149002944314016825930507199293245553962438018879289542393367323068199259419357933867721009039874635064686958128435830873881987834846952553627992825219415766009109523584480186425457893054092232398795912187323900826238593084389661944908849869890136499367227722724275123790587539441597181650446006088094689407762730765323722415246059803591283471602717344057271139068976087841263751279922380912880911278692397355882979632902404132204616045469426865700892716957819384904179079181572313651644144983896520438234174204358428195484453799285255605743811399822345298242138536725576113545981130177452260304520479602147298069247547934296351067059837103919670477127478733158350272206027951468284208383319646066015738906801317691561191012722039029845618162240960380992072461907355271957142644149625405909928726215173540022178535116281451042342065369954112458289722591092151196915170763295989604035134896057174500961917147540905416669024814157664589786485927474595354039787361906610596126339030599572751525629463998829778533676253681201948048731849747209876899374586824552994144694447549525253756559422071981639040378856795337909097474230450031723418265816876975349161233200776932829973261848528355821912939485682933466131967123262007568984139713171425561639793985429574659551583536595875672713432844873840026516769940431607538851282481004824835907717360859130429467422883229511038409379724441264467559012701785602683115638809555005385574596267215648914030127699813320110745890092503590652820872289556749816935099917099700374726825811849403132639852891169219234554846927411325542101581995540958100558187008905259111419263765304301051697128946104583771993569838345996904537862990154831364143674158906841120100713880893560779273314589169251020210165517035073437286206422770703284738921685782897606918886583290053539482163325619428688452081867139452343685733048696459006927085870928687483107046463632925659044390387854525266702441003708062256068409916799309819272481395912634178378869289128063495142156280520755778695841524963823594450228038868564342380321308942473407913458159326936443257072263335899443073330641903472572960794164269994822240019299033040212967291285453161080879655473176669022566194932484765678103884479035930058940530079280696532908813988407891439619422914575521609418427406320261291831652628124193192517874266147105801046938947564873279484618900263108649759500505484973543768894765216329903597700590897243066427426367588755153893766316671829811256923092467791227956796467409640535374026695745660068221590247611110391301876526593638338690318441232743851503471103586278112522105620810878231111562649845203666056016459494223194815462420373680565427415041860451058707000842037988405387248508712890043273115279170322356476815553471983156550113825568958735046817225574477563634457147355778324861420157533520784434373288548261918991886805608401294837445967104358192390873015775506502594258001970655155806832986270035585894411097035070212592921388236618297723023450207235328659437960272706375967016827175650177002224626336301113310668607736158941427116639198469432201642252887601715678569168969803145639873705045659987829532799848473023939430548656390267431221043308624483287772334137720512096562849324043720086818569305575767159999606285070541540825966059735903890165505834976508085833865463430068684736631310227123712088493650377210809086823821108766581799768222432845935165593605148605326824727957518306824296109918656168041497207107124509649140349008027151398053594701247647486881762777537725245185734379016527675466321643324945053007251440826412526539160094781375499093470211817991456894584721093009196711688470557307942247667405867238864899395552538924891794535916325697729863684603100013534801081487656980641634184903764336729435935227712010308865454407930814952090500152853583785699728296664889133399371091332212947288379881194274017562436642798552562766096357908705226630287752355696079841789603349762426099342513498443535598051473863088859390437174135439777174532839321947245282270837926437005141833422887853864522956627294523692467457055528982034000355960573543269956313285406471229441857942008211439366232733626258006969551093969128877950501185281803603856036306866540034484244840852100945678128653785289079577397863120624586889756706124581993657652517496419430594467895358344941725726647984207338255391282563536034541961660056101349011351659155752478665066695980297965793902621063520062452624151940639751853316122506944762053408312983445093204367372570262130278911658526534194080976557488643474021802899586549359294542481862062055282877069520443940726435355762919121457184042291826293711525397262146326909444902967758092373558943396403064595892349383275573011427951128657997585892145378618271682454232765245335188727871475828511427348146073936249942652938186106801664145021582006007515104816831218277044695191353571380279897780996249327923070206394296388033062380207513350977557026250002288851499664700201703528674439348347980431700770363357420005236533665201734103897549168351005802644628420226486933478918460801811581568190389047307317631385894786665462140592245056972804749611244767329103096035683660356868997796961486038613186964036249333235668894906910613576251576614746764334477142828652038884301730154760683116919927889282991637484847464348521092437906663895893908414572371359876338373999839031842019585215954749444002273268890744365800227009881858686923114781489489567699386967816903041818892295537437409270182840622121458789806940235769026061175740507738156626157366686808031708410212729815085593963179908010768705236365873097023438505011665435503431413263632743930670140465674788587391639434276232677879738207947581518572790386808321951650283737147167079311526432402860404444421167267626261039805809626650785621868813668778409096446225580276168739965502212350819935647921137963942592278427195128687325639031026166253692699149651366368100628315868501772603710252302765976814231720616702792260085682773501530721671592302530565305350988237736962929650583212253509595944566376171763798226704154927200275247487523689137806609123077716822344547862874067814264222096563528543259501286201648695367221494984672334983567835158720067202936513817003040394145927266775396590172342139449011213955069157577488613700429053739235073143698420177341199175254874950872173147794001280939268222043067235841647630072155864558186764081236482888788740651816600317597613825152470226214227599595683451903970850827814955625702083612020484471703000229488196355784918011711243849416639829791105722399511973991311195670384171304977227591668709573772965173297349041112365008777593878289223566216935281793985977504511663773356656731723827643459837044363366107717975625827264829317043731847564879684754037264771666868760859043272984742078864351342460846134415582728963012991647779181370303253725988222114465308518727002315219643970084836323917921811121581701923547725787716325167268692501673818820687979139229473175816547088633792804417010132697609420916145407251112838938946536584628241740847384550695118923251419844059481258573621966154170907899208988966752248678319962660809513399810231475686609037916788425916664413717096547019275447048857962311559330915645942351102969828039386461393316163652285652834758418652756688782635449262011188062071297082904627764890416997323597756288279220239325711818460611017464749735332765437237030729211353222011771894104581496846122160299097788289302092957600292338169115363587550932395301111176726177119094895149365006650991111382841622659896019866004901479050103456300487636342636412239659562546847999647810915678486171106763717770300916825262326058341746000699836251836874743007410820266705016411463537512367863975135054750128338382954818518454497553917928468987411425899168790990351896795582511441482002591628722199439228558156362729958479656114567898263640403137907334737933873575058120411351178144757723011402955264753555007129237062553193511539200149619992590567663373626582539652046920264380494630406718027058469005095563905387701897392263589577353967822640495916492474827917079632511515716091627173862396268008361451158364543692174159157573612708471145475832905394918703160164787219521966565105107559969161313228779190148674020739367742943660563065980340049915590406124566880556845213648839710370469549397473831236360337819801121623514015170376646243808741559297919874494764302223810087812620000497643999118225344666801216074350003282547138785409728852377054872651754978521667750494213538739410352790201997504776175148131025328926471349234386080770717779179843389004571429941372384868802484475026539767766580458092494114057893598452468509429782078428794727972732512934858822768322153755246874642748101197993252377642862160622102301448660891042637714914043809520646174619866742312306832279259800203028660295016366766660048656600171022573752029306969163646608894117098479859479265104277681479703128998693347162216221588750131300474331905647466553186721943698198597834545536840338442162255236554525858929941527587380493047033154732718195762577923916036562846874222377821933420475800303884275973817872498061316419057382660386145287726336481698956671693894200133798223282082992924298343403908781037105225789718187562165759163812567611960332897743164121379292592734320276591063573981972522461852491888088554072153012358143004682871041834601808934140727276923642959028349938778541491207781649693553078936195338572012113585622906825811835373744517823817962962623303646657004396834742892288530112788195857935784555609698733529008964371250810719327917710189102898743577957213775561283433418111451715698726909805235671179676672109041686509227917254812860252169300335222872970552378317904333226816598050777908330713509109332508765722928994844624841920565207172419820792955194889916502353797164064788500178219373035897252804756199452858043168824579739858133895277858757334697942762275173087735255254206188557910038470716391785917860681892883384010299640869619605344584130232866920711467520941941202586333309887579142797885636509756307465156005397151903130587724445996821944678610754117499436971998409423299010914173928952828402178837161460625818205645986460838948625186066012218368360554348401349188467993867859204651100979960763283739506857959128913885152813074255764031074204516508443948018547708145678369974970418775456535623870558418160662555304328609540802387556053748825614408716857327632279720468243256515109381525100047255078830373172509022747393004736243393103626428496283103705170224032826504475463712938440374569762355035184832001542314208844133447210790399593263133767208667963251136111462793651142084153028387469698353217103813368223046196940224237052382588166143961851016848132547674919928778409125226184360218436578488951297339169084299928467230646048907489247016439317969524941181157046555727700360139758762895387264048913441605480516726943236684480490191267553649828457955472664104206389643747446033324536593130908614636455221097953585922310349765735628644444350341780253886540176629487880293738342319172392680612602328819242319129428606160687254608787843296421174188050702256110691927738949286738136723939317380560270303626061484241604811416498390145612337449851825665132748634801889475620619133652100974388513200460555526533899275903917577219295441321545963078790164989067918462200429400519621883473014509555142504585959800630887398113445453257417922090855473848214437864696601118117439842281604053624649958286248509571811346819620306363506539178994009533660910821291044097453743927764579485327886310718667626777758361032199446532361632063403541287472604765533043375068962525851478098332360053512736546054650666615486081641355405871183879260676400470762614581649294748783910888776105819578658607063755163031701057041075211859756650261630968977339245200668431013447990415127660728992197162255724603980356097947395476854105640146994815654298753473792150992177532368665649329666679136654610972897179508056029441799419475400268766329615798562449508971654041778817922495739569091817083738193912112304160488466859405988363007614354836406505243454564457027170438545598999579066812534709972639432770533314365425761155926780034309706342813184397794074009226205590398122092899388384687370832988212471966856497227574758424264072529781806699791259480584148992605715437967796535130040496165346432538318163235935413566047184596211219641737520139060877705065758272919577384902405945664194839148522660152134690950782634511008185449833171841981207597637918596428776669033722474612477974660508772622224006977004205654033463324684196890897881527639157869577679718971595135063505711218362147181439065927690029002486779100078926181611260199001641753964766854167197291973706190625683811963784699963514566286047135478224906787519692661365269388180191535962559259215047374376079410531495594888818271778536035006844076644134144255992614610465758165804554343214323731141943725093158663849984469790405924596603255119473310522643037338848491235528929118395335345053847325346256839919584275053629750651720634621249658298427038670880879208939747268381152089258035143319810899047113578083719280760586210657959850250227109584157399118419117348256340838771899706700894618724267559029837681215807938959668991281323856053242922113617686038464210315710604176751044120993204095462364346435381429275965883511075487082042512362406090649524184295285109088955869408871587797177883194486056578102531833956468260890067640269408490127195917553488519191471645330903056775604944615359312629705187454964167676537299500450662808001534679334919974186625301853621374447087783253019547631176952722563294164041298535462570682518847082138288035495324817331472715941966192095616292238671253983908978561872359095538323028944126713669691405639942087713038642442824911305006922753517660581184848787899752305423130967066129163796596880154621986919708008706687329166342445917131691083569045992709330896840951075590430969981307920263468018533636710725860120011884458452481044679293326836809030573433398996646621038258132128481896785244290665441776082947637508718876786989338297368788062273158342254715791110033582713860076922402052655768053599711038213392221824133586539989049270383318139492077521602746520269031185587713609218123290976264861014289131383087861904504067505673795619143447387621584677214353212999987854325368005764501161124602977625562491597130476293036665885268232735857940099759177203183857833380980644225608112419394468068048663628467544288380559078994940504002530982187424049919879463720756919553556785938895663624451723887467926909676631801544041797465044855927896076175964392452831002523343986284945885938125641391594780970180258201789778491460730625491917234956668596269459823518576769737742805761512545373202931264638473141257158571290892582721155529024557304816187795620143455379539830383914709467909227636968588116111259985284482484082348031379120885687142157164146759818646578853552025843460424840474588346385944165346457684661368951611571663088008185301541316876415352636222600834345221677855365899046660539184229856995721060801634320784395549118323971243207569085094599411750649175094044471153573180259676353736032079196076073487013494400226314302847292375657826177391407782201755025224851870068202786290176979029464270914250285253938812682206912011710431543820324120849920238231586245658945501850881617574697621622566148672880460097573258937554914825551609431956908994403392748536983636014230565536494006245699130038657846112269867003031343315962260486648160768258516922427940622762188585783756017337394070779194441483291953778917648742535846507061985031702517338527888049962023737695998230961982980121566924663637470861642779831165555322586708705864911975167049273023084946149046355911226139107627065380289503729884385801352680983761246735548311190077290048948037364531655586693830770478055956846251953524332341783956297150983489657127506008801200376534840236422163469186913118321429752542320657992528887790037851937508430420509057726518632840485816957914766550900654209556654958548588236704855584742354567755451502544648582447239005639711531759340768335123893698793316089368442741835113450858067328077948017554004203668773710600932520825988305645414287377801760723170929804063660739680262437056214011088754160371355902737459380955001872364679265203767669075347530810154678105688048526741381312707826607250859869092401308617351161577015969453802770396425017150061599392494437276940580521091750377686697522831293509092484841294460285753431363529910371674467923568323805485290579377663077574026196816841084197570935802867926628348962405258442204971144444255313019953383532928646966959083324988240644703788685600407423911803135579796476522517885294286778169782093589477286095679627605404652777971724414905619649987084497091997796460260130825772688851588138224892620175289361675382173936307744592006790357859950005769474607614480650558675449254843127847403074409175011922219315589342832137027269761340696523793970927074742909206402221827648580130418251098549495246523559043610382874128611697877929242207336026666325304522101356822452498313888964012043943241298806869486386838925682501540435461242611458040424122575123737402099641371512893016344898749080502905375183143581510005177682235967104889432945890080885072854921740989006603153037728263081943478928822566384978248774108931937428080204322260424051597136939403524302122970465405192493456092320015997190317879840352727879627574637429221222857946782478457437948997492138620802478916240304670634874467589644577101970918956028472252902639117422443206848336901711368355073549579604138449469891175244125670715898341196601993689214805534444443470399925327456137299730917022378739656228381829310873864992456330019044054456716795928018046132262960140469360049730080360503300650866563133949126968555035555286820655374506311819417478336692792725179696964735190751947390879923606332055917884745219014342274941947100519006506099710568258879925940120416918114950687209509502207814857351031009010811695934566273312616586387308935321016047868933231512103267322331831960370722593718661573193856584305589187270240275422275153122436028284895146510858132495168924380782467848684718575956183791281117634766974063742498268148073317087952708708520261444735955221437905227446914649230241841554565251017944997164368700740758824937478069317413509432013133290511476717622304830893135341869893331585190084777011279772639820220720464170611761863773795969130100793486132896930464316605564279295321709308849150977131120076106407052174088578471815758120356003029179658678736258376036163546429396113603238890265713468865421805747655444790670996738311773502152717663069898618685364175859542999595204803382711078481651375819716584730395415240797186640006752967283124576071753389710838980742536396911664629376289405721957561252030359883275895673871821755682197845547486575954817142540253197002582557196873808062302206022358846412947847704090922094350748049982747326111585282805569103874941099731656098139338595498344113446414663585250827776293716044297063988185745138130111402175437511436448751726795838440636553325296183425457395928160231433148335764481515220158407971575729136090972380223730088225783969721101986664155084168484900721503738997639868282661397586478128255941251144016793860094093037010898638745000381022363776844502257327156011367030067171827861778268250637454962697054852301954146110141625611872896780857388222190201762416305683857572329849464933874875320640276538777052294444295106487672564565795078520209334805293965685908305046857390349757973716320392045159173076146981505534999301055225277976873278023851513424950508357984357238357345371386130283265908363495861980859583216539515522973638612541367311992811886471800301652731492502000677075358608480509676839701618718242104243285853182872521674645332369240947648628586974561371920919615029699228556112178423745492648693778074529069680139460827774338295140289441185817188573930032936633469561013917157761652899544008894301470532577568364958716628987292482120114779997969209883127156577732001409081569952938188510495153389382225715027024514620513601760471612655133062114769339941541598037566947081550577683286548128423726456133632862060358961234099415481168273824518815973275266186389166901109796854298803792273912280179430361482891471263241937389163963496864414109217109485430015474583876399619056982256535197962631863898781864490754282570447998341241411625283556653026081859979154469389350444926966403446492810599873326505237797217173587417393666866389734411816625382841410881895564234271267032769263215765934890624865207995882264637322266750021401084829473486061526034738850631926232974756429750388927891742531731966851911325113179280665460058891552692392661160060584072021680062826122502032728934086045003731206745942927688101337062980670021859956705184722503018369523812778614389773386877218963753244786360350616267428140264792907607415539266040574273269987808473311880071628444339359432627824689115663530628879979979974764087511125975770379595996002156553907067564661789238308457299228673561105885763860619461119090682485548932397113907535872904679919956188333304139609393718610367197267876856758113175531480953812901776599558857617179706040986564335431476731383046377143458018410703777487957147640572793117160775974971020154351367753737025859978616462795102845952750316122481387991114448223234195152020853049469705831808839629792335084541841759110421362460113652812578647868986618012120236937558520642027727636792679587143012115535891637520391158362169102585257919740504562792141976385622775995327562588503768301545042806164284022916234736938734403925037859009931658171271429564628549619517662098925084038788921830743146541246105646753847620466594015499097889448355965340846076568404071426896697377643813028087604927809531518538106698402252461301857765849715727740261492807167686719359809853865249458921006921755949389522572662341885140340617124793494814217218809894301134843724321865965822496804233626828607707271601651550291152654447303378242936163994724514058523852594869881826936464407796834694442659932685034457782270489496667811167692804560951678392225344251093488770607389483245115855850922829715565845698755408451923848353581315216602385725181118010520697017182276797333443771079187495444548543929087195363337694433099396196618025550778810280578522591389420253032801855619435284758057209193676290948923935459162969882599177797893712352778803849378927467205612387838930899824944739170858898158406688656435234954109197339477150547783646867459891448261422691086394671485754362818667123832195468794553066934047874249962611340350177321037217168101897963650149108133145009774344130153437823478789516787461138575341640782447454462459509436514360148973422244479788160093198439415568578782888618871984381001964742316048838200097338944225452969480323279236542421795979366299188627805578252509710247588671390745555996116548917990190663051887424115052450721137684222190628885784602706237842140501002586616890442639182820066916835935267245228651189276277817420788993969395075542914331932355740599595067112938761116885487435492278922159238720393099826374204086263101523328934156553558054304220307892132470595840989018684881954463685305498285039566654461031769924127536934833004682521709202389801063462875158513949290831593804994988951352118033395089897672578046373064875803818636411244791886003230764006308394591113381134194506289815167799562682368612415551726889572144926994791030077996609479100949060576863431821359165006827012985158753653204429475984314373798714379910532804041895897150413643938973167528825571900619946861974500131295569230576637133648802463665422505024671267124763520399489819421889553578594910270666906890730966943771812137375834901850645119502743413332545857928743289726799280647049648918780918967341839586954086396818896546296533423925196699480746864862116479415239614533945735526509485977362805532204592311780655460818394540291389914450070863808176980054476068720632590511091000659705602888669186406682596260381427932045204840456013168038122520498674989959881298146330989926458264643964771962067412399292590006377642448222190842989073758062540914772831916786677293466899267171236821128507610234860777529415657661777768259003617026799417853986105622491812885456613505855229621759459715923545906494357570256762078069961366149495112284096802588111430448173819409570077304643967492294570383445585165945693073618697389257957985110732799842200936651638561816947464168185297235737185669212988417715221718395286712696895306143598466549588620143899458479397319087886926350514336505861260037952144230472662122037284353368910785732565467648687715290322642619305275717157378242860468885842348631773096152378923278751955364070903364776704033257379768293003572687441560489151773230812068481079732183012703832174709188453345117326388816368342779045309953070625679424540883242045044428845986424741786891503050288041182805844897088088302834323169050327457264470440053961274194988414942281462871562995985513465680542855027320561008527637350433543903219179868522867403116901145096595828702342133579634060355152067441703796959249361199274273995047253008162997490938608616752857891035586333868205595544263521150737770885302142658972090677406599093937340817046423914282725838601504269060941216221327544949919092396672197900379817330886333996043811840218833373984260542951805272794511991462670898191318890248843469292064275612543334742003684751901635263067463348340258951833764333093676551230057769199122213442245860368876332471541921904150025710477546058300179530866751696807763703579605090332991790785253765431410747376415713026218319437349638820171968431235144446308214388245198427077933453468930923785605691794865602475441655569458393921216313415651988762486163964254222560273124374605323063109486545204225582738741286272254904590483630964061120888334024986400973534686545288687921122654193729909477633845544217909714540753634585113122282454619056217423860705325373339736289063827122569395615358229078768271815503015964671657231709324169843320960443459881816749427451610255309378541624052384034629569261242601295277431610052749643709478349820687613037627771306436960866106248708728185191609077298325775036052996269845722602668282404246707573409887592123711786614425983117643831762634882511483804706787972914998399719644712403576321379992802543101069917931829212271142318882665880112710993968412434780476534876256820961196662482041609587218798233083403017095781220565144193432853192899593629506052698076912039975025652379158894096680789369833826548132267861955110955087398758005059690437702929238694421630765402215919322493839408441613076068103146453852074086531827404687488506759071877779158394941112849059997968985228618760568076948886368494460114261711607640175739712904031965460532163107838185871805646661098180851062498568194572318836546597931134692980625484487169575908851452142179819620086751985435211256527198704589886394881537509395961653383561341731806451799595489753533591438257302487727569495662722270400910388254588840463884396841829476931355199108035790653146741928860054920904601845797048519354032835543786023723115033936402920539811469429422642463076144981958501580019683016069875448168835870583977393132621488589256737806212383100037186271783549779570049631049449392351301846843056856333325633384670207491753587831798710625230240452526407212372389051901480172460081627839315252591212365009062467152813759130905841336908079050195524508837859827347880468896476550388465441719547377671959936294748110537523624382629859599871748734562908004478866032498261870300563818773328052896956551231117758236392891836131167742288633042204817174399088265101529286822500608271043656888332361565019423425566511845130319836596877566935154620635149735116646868592386024756401203920253294324203121049814052927632202190204851211921145797725123280057975055585813150917358145777350669421281041400157717773591928209410668990580685974651125926123160623376502986789761524969381326536188242869723219503318802406887518289885928538976878440950479985570432193415887198223799354758679430793826346647940703861220455351584651709757354178705163961947538705050274085971812277730610848276924063851352777915080546231583790395528273534260041883982183718900536091943785271922128912827830871699587247905866087380059001852066450644981218762605091507263385326297182609608824168877993676363040014285840940997480987203535933994068960006341402865545526712749033999532254792362098490955930413775659160282693741739095733744409629962927930315924373997707898593481832870595930881410135782008825141191192431162171518725681423137053220660955356117660977719421550840731271691401578394801720069917731800133752780960213602547230581274196095085259821756327670426988131251736752809292887551417153023249102986343208588949593835206357995507182724034017756385063748331530083639471328759430491325069804581018509855913401525218073178340067831215851589289370242504191600405501494711475361847883744606312684054981614183214433321620943137870910404069686441246012290731091513174034344511280715821324558359712943485957324555263393027114145327090334869932571868936450983075349139815875763556781809042404956113047175351383428535868948585455050434141828875873060258278131983836138303738679414827986244096509188365184069962224837419155742058175755826673618265782565570882515641320413943284784158283719925173583398505389823424386969557331773824007226136884493992476631298483870728578763837346278982441540016000313391671483548739505838024631989463636401261423622053214106165929211762706370967786014498661644017505291528117756191853607779588577574851528678383899509303065741797149458456868642105815113303851992994339442117638645007982904157580191858548763114811712588943435800213641858131998054590054284552281677422810114311400211279384676084207830284931762717368183530061061307439996032378425353327200116307621425405290609850024133700046357781319522009570615254956940702373284556383593418837550207034714190979750664414574058866967691444746561171178117910158819998210040695418921003407345338835771972475424570664502623228703724409746068573080796266889222774402185864830965016646213060647245789018479414973846019452679806981007775360534114319226561670686017751063358844515538363453249867216071487429721493329072748782305913119706724463440623799356135015691810052241508371108241675202466291970695286151901917650054079231516629993548140268158162455232623164308290316375433307544441792667173506831649681602959415175114430356096461194771445819584944174920098653378432923927470026289181854547117800668923695395553144588836859212670715189500144715510682418034602979606409033508587179269196653244875184841914830994410372690453040693440933672349789604105516204578115167181903069122330180572916112025170094078323025422155310829369067813327830968368018363122389444552497670637636229065028675913772883542688408272736862123100239387906500958651885525963311136198978864485995121062770757666547015463114875316166723716379334445630223539700115868183314283137027082926081540029199834790777351049900655389596108898627041709333557897090580793398963699626739138245923516513311243060037823176695694981549632754247648722568277208469604268716910308963514158261005628521564442975031079705187233504770021175655281041762472586908125432508678079394433110475918170347329075236519429042965309980739524824725760970067966528429967245496581569327875805535333015865168346310155506231916954528337953114423701004984133511388105216042304292490477357814561469011335846089116736644031174784869498795930955894456978460191743304118190999773906905774868571229463910018764363976442016706040562580294379350135012087350196511910063923924551663546379075207178879052806159062982742066470917201124115848746294094200989649955859830046795465515551849834217780877183893503688388009891878522753126948421929833323692864679987771989590918021047979933222266122364052999598442260329337490145344851087039351256726936762673151953005567784701478811323843342184923903052238539221201459320240529931441716067901866068481201051777992541827425400076621083351122186602974819953247865220039354831468245244261579637664819266323905290197041417338754558702065606854546849375003926325538202574839573525555629975986802309837741563764450046332401584243325661093092670623296214438249539978190051098080319386891063396748391560238655539799227705496954629512947250966428626959901978605219539581548254937641957518311424489831053575001528645847670723099299385885099958269429227293786946015859957914486891261211001494346473404162504769646708542108484330814690657877627750611270469506555669576478416427943617167477197572114093687030750298649570160808993774642335256491203003693800218289210280846282745886025617222646498244435378701347585001621352647391378933228158413089667860153317023188480872353267099231064091541588377963955032472268983385601926095663646439464244020241493280347575393889466052673921238595463521851259410828545537781492922463202469507369670320262287489428235792987869669824816723442788042651464547667079192131040044207646161036800795661941062691651236606932034961232573452334580789843593290436500534655619695686300066661562824388907855228514290643855797275485400819994248692989261653147274013449892821143458654898168684501421059633350888717664877117412272522464728709929466605360778126784018465930344519889368021724579772218735981569422650625982099502246119292314926189466097285141577878725847646591435592685527311948265154029934994881423175583824591495567646937212232388003550939643694225065650245143801531696321954077968964409007409844163021275349173144039462944137502832290847932478256604633586467269185897055878656150219212857465923870488448246514784206128851078138935429772008289409107740207505872255026720175825422660425280153262228998958039447795510807023305770717052003530871816889282552766844094995640263668829825010636300284475878524644747368428175361594846240019253762287745997814397720773476884392773979339139867979763099380672311157079318243634131066544641338064273981418687019228836241928331303363627071239768680827396218351598765801544981530750339823680225167227205517451940634844985848415455378254666016496483432048890224035191262027886959377870341100689392581583748994702667074042496798118685906866725746454683859827898925405219445575984981378187883855063921559893636349669816317847004164154405146550242187880573616007824275843503744813185222886929588988026584124512966373076426752751549934068509044514263177668506014322817741225212830297768884446858683305537322292871443966192480448240207819402303276505015711247259853983567151881033930972977976227023074682633243627934765026363553659140927520358735318308915991500504056518283210953253567422086147520119991553733632658323739210191349124205297826171480554193930627838502706408552639102002523456264468915391941695225947481938564156223367254976147638693529033953695117782849765460050890393537641579630836866711267410848184433751381451029324064812489915803885562876561834687544267530760745608402528647242561164556996458477004718263364901558873139836599196509263614033327875046899476388525282650880835209221947746338438307484867590099954490721353815093090158337003746974155123233892944458319374480352124124340962015415853405256011126219619157649819242282851030653419622328331794093435461786919941485253346978517630720418441661270017094913094938207395726305377644203159006290853089971561220453789287623024088700546394195444669726094965416163022273590596588029015103966781421482115838522130006419314631739765128599877592022087819093415127050127942388929279882602851424609102527788250216752986935955333015412096191898210752615098374335093231995934297125037289755435837070285420628518297780795573271625769735078752213916115199587932564853870784944165925951029174910413702604376169925406277170570896622918805837551289136588579148732926033288655871112378881435628086692778209808597997453044856303324456648299241133588776897739243481535965794112871070869999095345601365123102677171464973918333297348659798428278437137589074050992281903135608578643693288054122903394508164365359486157514910517041569927507287646213975397594108099350882874901337807911032801312206985186726981413206438191900646170150082314523806433005404518954035026289297614133002200233388649381042439723722084238106299166550636004584684280885353209236426192048566288125225885844259783362029763719640381522572369534074156889027168105127190266996872314713479194605288807650125561863444461007805201663951300906992820150099205751841465484156767310375945902836863479939407327583594580388459811418691466092036244784539130032167346510036332064398147522948315320694679604430089523264435248827911478865321911867541004814753806771693555487303413510080259973420462299127198311019864313846192611459879842154024673160272856313470729802667472380189860116818452783404969326242789535978333508918023475582111257508596097455884817153330614874908512527398329968917624699368172106543713542031468900000504947449640512373616433351545855736479326039299301054859332499316982375800191902471117321459841078135348633143095625246762599682992696292784756512196103524603417834844575044193959909588092321865450169357776655305194699150008017818746225917820552744942119187659977687636508489095794397137227005188290528069756397786248971740884179746563062693473094747005489513524392310172633388233680880014402334570408666907133239663240934864426587566129080160246476424698962138661701537431212546122269845121281864366564750505796230996812148301223091523260194804478488101462602554734252368449784845440700556474832181760974312133398623838114583999004695654161089814241940454892713511234597716700782205973510853893744959737312908468164348261686892889247237385005772935537711268504916868420824786333189660163858060202187877190620841728454439172701472798882280928267930640323022532581842955805075836085993407682656270692321685592764185583763089383138061856357627985939630488302094042474602975367387005385925442322683668100698142403424832038776004124391811565454657060842521551816543912610065412292527194518231891459552480680005756887131836779165324421969625432137869654255198507612077925737670863292057867016637360204842734578101410215074356693095322242428838370254752525844941955510474854078759797373180996823942686714753637647018650106431367693170119413502044296984820577807143613668027829380127161139108441344022216681079019021832145281595948320274618609962266362527952599176152924159579148062253636747975238056967914012769373542728539517037234824358415743365015201959121875816145145868787654219239381637065000454969125770110335022500726871578156042732971948717438366171745400539919457942221866136123169650877279272551004026257228757262293891345417202263101733851229105638097637087796041263618712807148156521954008700147607651816036532064470514575739912306547489382970291800887312463069895515139704067447023011826444534413194944488315166739603102170555067566175780776606335752388952618371694047433058044003391557425480861231012613863726721087010378903312406580808890262464591813723523281381453696933674926317440192944915286130057605324492407325542375585226576946470821049984323767080078548185774552405288401998354538037903242618279063751361781933270656322611517329008822458913697366289529770774524418091330692770390143449197880276904415249197128874432238538945539500887401681280869861855794948269204462944955170850981421980704537534352054484556482625278164186272615572422527841490569631503842083060016125133063236994225756683175224655632291971921712983652465335838386149003344329928270435905477074685825771025786851231340978743240257529855924770951228263718891056827988572101559165853254320027184477980397343484320322666561283542982885744619595401895587095537879162967441752403428777625176634249458113173715122335024505995518243519363148069316472459119390723907535483156051865928284779930453510602074504714560147191469090128475310126657706608112546572088086735924806064062941505272447168607554991475322686325578340405767683503266048752538541216735345261627551003006690319082535548843344151109022992023142781907087468622751037486729586735501641480495197918358749248250849642735640531085197471035029576658988966951794020934581324803082272034896259392589439001113360386311410703164355742713495942603437298573626213061096301985317419305087131402000667402843387200923671740506767463709530126475779427918190354276591571669481731592685795024110959478372050334521608546207872148466309663066852675684806851157050616741296649363005508556046739719601031105783002985031583569030701883957877543102707257979553989824154442805186511878026031521127830490217590940068854837405441191733615724326901394577767173202776283601380978981202520980879778853437174695716518499435206312453697164264500168467736139418331688060857661740129095573399210832882912909897279976150228450105947144066520405266516148576563250848066856347730753615736901886860645846328615332538330272873099267910618969896818050470508592163048748953631030612494213346017310502173113976296566520755541158429356162923877164791475396815387877390820824332461322238581144845159332651575191146368743814398634222702153742454306257518498831662304289200187182431848446338296480509150005305615019434697526731281504986776143050168547397376657864433734088733902462572748125183105735609303359080892130535534595443335157990493725779056323837024984740733167155974204231175086953572331882826573871630888338439220954830632242296357884866392237215471511165468293265773590388633840621399069323352413492955181002268159765915165277642586231259574896735649552365997662861157974711971260107219544222997401822481613708304872970545301205275159439377544026031524229764819792142335820591603824193920238662518236293115038538119657413249368895973691667663805159322541645827416416435971839691201311455097035853082278364610859242673376980406241921110394506766626324531056985927729843527560258990288039685358425353950567975443789208469752385201531450814157977771363085194209143673615788900661487900431892891207941815946846344347657035633012945372966854057540801108510506779199765464397567809292506763142265770522303884537712763285764700848810862474052898885919400941207433633289849484209937782083992303606588634468920938147581345437205441112213908398115788865735477503705871024792075393888225507288168721542396470124108066026475552104503049605787537619659197930365107786613784660717920358873630870980994940466210655803833679930836290207701900361086557380174168506892281859193155705884277892180548414447437115857615441068713724785047247045941561581274468542346084955945992263282477309669295335116920290079365897616858271401967231943155746519014999856067373198765514341359003370286886499754193590713236095054668957377290130505591332306710252834233086417728066616750667650705980042586128292282909401344281215488300707983565620576623472351498706343239060785909429974980253741954246394585700302648667043724516700873407485471389112003694120537862250500691239006740767809887030830181007798246351523383986530900659805341114192912088174870566635501801746393261141268965669012426777951728092009224787143152558097133000336563169529105385864962649887115294886087220912301935860600809747381118818594569715473801133481184586286723466450644813112436311322749547965619334397950539711568914511805357720869499891822257472018160234321709963226819201897731728787920527871983655596863840389466967611624203322858899493875514789101078019664640667603817089799394188661944339966882711246005966135882408209355143755913679921442113190007264713249897436521321049560109505379266771050620268371102329666671958288053892530946258851597931989555644405755950588347019206833359479437526570338560516200406100499744921616154862092773283821470805114230646354777820391140914879801306077925749277386586684492970646182650836306854835568058834441757553119250260872233971630375334165058683592373687678639081961276491266978097127529336937689393732509660034823002894137923137152019170662017915766445842108712514402652973486110563927564222651937278401846424758173186596602707114469025184688443911476205315684488837924240248835252045657249790990995523185055803998359569911362680454231759533499761209141345482745297883284025827372349283557064985881988499795939931206711666502383048594887103584522312713504553601446054251170824093900023064691681482893639748645674894614114140412470381170167967322425929827760302669603722792009865155180858463374378908355597853162502940363010164892167599454874357899992146360352835921960583981480431684289064792103557657117028673152433074882264629460118709878113815760580284659303597364310594733887101738783047849161408439606706099979989768940328028941313184880992856044903726799101577101079861834649886797875739555230733814015685698229983886490569890660763407427529480697516566657695634343413067351774720805237496233379825087817597985092887528934903940767752939380239132923910373855753549264546655975770230754677630705461709002062267386771524181089418978018420825849255962070533583481346067639021214547750842318983200559272621102995916683675436623035475595604550004811969009118991767533807106232845358883247855331279952474026308300602241924056665407308478320937901801490171709095215821580950067894965511563380417434225767946332052467141354372492535130093625697869138510093315542622669880395696367647330904397319564757394539814561645294616533658224296362624899367319406314804052653168059505161414755073940756857117184605063051738989438706504846951727598243334256936157818340179480848434166077326897604537695239620057221203855155164036660724369224617918777773644148919539964329947509891006154962887242069461370452518409931494069225078589282255837509649182734914487289937093274191385224752954346563123594560518349053031113537559588989114076745451387143906486832900605343842479823847375419708588379148527696356295148635392131955872382270310103231539275561227263958640316190308620088677720306293730146968964603259851879174804268196737233188541471493717300395436698292730104720456026331046386365722515281364803083198127869077342984871481638757095905152596747158634536942648886893869215490191639492945454068096653658315545559751160573221165432789133779148557021982635374261452496042501874855725389172033117764283170746570890431682719401497838371817086570152222780296789303296842895001676624308399440041542037208778601093672159679460768663316124200879185729524703405754959503986035393736663518512820034679312230117998891031681851467539025669496543409563569682073856712232503565051912895620406562575300323354086261385346090217664679187333054099874844335911266346578882497685843001347876799383446326535103032593451726625792574412906936578686728272658060614373003439642190959161608021594735709339243559913246817414743146273768161954915319783097072937898830561457500446536534882717990175979392562173125625457142341344526413747121061635414241339904837011720653805053292813247628458431200762067629963659495187620188634960727778979846944750234614025567784740485376965690099335581435574317784655036846484514962525736986050060608955668499422904455858081940750813032158353800804079830575903275272741799207355990204000085818455632506084626140593328451222166864831326994306261612742845139785928821798941270078377455828827913691686461512877013360891651160130225562872866947343225345540223038203264697601166429969155066256481557372843091998942268687495588935617156313598784519964236977430696727695943784974843372831092147262301898374355259468860527672796689987237296720575593729811636300809184032548267572285637959274477680800882042264422981086594366089992439670942643853369314234428524582643450429145083637467586783272929803254329833443713180784430830652106147072971520091169693182206877140504455458176928945942320440597218960723924858420996730247455742525461347961997745314963849514468758589538035769722679849086485793206483141401746345202444171012379361423323164118308059657070600687328624347289562974235743658393737096327487495778811857014883892133553453676582136110510806151371795262136282235791779538925799128662366621184492386369030424235460917548563819553208337424786053539898010113322393565809946168263962050268990339410011377871341561040527043862572118385956947102615994739357850987141656359920279934820141503578848317301588793419432126356134061829809721725852422016683745776407369524277184767616492981602418253534356436440321026467023734909801371481439386323550297470059126467844208126453568682696181753390016806683242177207122090611947440443864463490064424007822718048662437682550328271667368488075665575403441786577781010535034862542650498575358073056614101998614867099639468301081960354042228875970224718071071879082145580084775504303199392758171537888993949384849231290285212447809220923942152775415684427413831131089422667789878875370686220378239247414884282871444146479095051505354805652529277443426645321197635426286168712342918779557497691876226416340472363307670073839055998339349428576963885831989563501299360691987468424117612208628032755366906404540845110491286517411729486705408732588819147538070634795058415392069142539536890848870535151362538296079683670640447797533768008320168914752664673467948626586576136221260308973048849892644100727502069024230742361611452630815322938810598134409464793286453361255086543875326760355309803905494314046756538629939848748254327216385305275336147092581419627418729054905274028865824754407476799008905167472958755248184873864451796350661916016363372482733884280560443254348183100292575354325248897493105020293292478539053131427702254622101723350174265646652311527322136785041198463655935984221912682827239280152651606612711349561708145428068291890318645389742624533118988844880915756788230183743305942082339756733665570118130089570329289274551846187397966194550574947469935516018121243670680955888254733927953597875045654997270240856077847478238702317914917846975523007337072039803954233964771028785241269302495094007508829036258319612030851626365387082064081674125087710679880497782650358068547051489587300192969161101638966166800640001683966544420424849202203314172885902319223012919272494519351150119724262221369815731430015777148122532652653502399141370414519824091744067825740900749906528460807796811993307482355446213146367582833617577156699936401980933756501036881164246426609688174662982689247672261115490838242421753645811792850536789388319653767924934396733796436438664851129192923622157431129776064007599789290720068776530214284276639597937595338562444783324289583906083795741473809634487415117145887732881936527932532379528264040098823257720360406057647843098103506680224158907442834626082796714741854518013817917439046788259167883785874644235141291119653021541800174278556191750230690150569543127067566614362386853790288201789833598721160260975869728872001027111044212574799116677777710372432818838243097409881158228961167721247821158894656784555949941541847990586247658621381557717186938675972323831077424973742602902080717098474441554607972078424961389603185590362926623964653458524777581006355758975840383200786153953212789136296929664064770496254858579267771020147696308005583671532192437137663563440586100487967975072720355660579061690503014859805296958035513991535573415881025621001412089893313231725304004763115263640066534113213853045485434300043813714485533487006752652586900511121404568500246335309421433317606933752991068946927135409869679101839725950328181507949494731635387279563544148647320473267952214614250757154901776226785935737084980421579143345191215933260623515139898455221812067816967827492637591922485725630040693951591917984883770749693845880191963871014623636690065729277310718271218378217115198102242644988166149227938323526983643031665761330046751478456970593890410833888108345955938262627994520542061966082480911659191420281395622977754936523653991213113975273561638675157529489016891926961074448483991908751356195469809838659540283537818146636645592089032355810862465270859099398042758065537311100722046440267456384356526206893671342804020796131202960317919995547443109279861585826222335664897352804119742437526349789206574921763376671265747550151018447950658064205692481240885421927633561453217522278409532600995615164469219346656356231286003740119229293489459512763297741763786785073618833973215530634019115818742841213274890802587813923792311461790916576768149360010676233073629669200223693933202296274420419137509124197563718399444226322096765487801218808003385736449693949070223305800166618508829947026103702858495104719250275612534235654807551375647101542909125695390991670198528131084796856694157465650079163942770200094174416602889699052579869643110305255538403026686148960542216869665761134183192300788251204135348195202121925013409818626521100888888844492928335405667733286042835444114621114546891991483764120060124745493802289945908067868715711015436672919788800369714271135263291617919846264458846013943539738172475947368514872171007928584891628074611390677355239304559929048595687072035935652479096042209086540020953867948675405309713287708181998810573846372776980003249972073548357949915325276820802598019631560799738097058534300191125465376159922204353850502963165708669942973053941019684979101205035328562400728949323519948889866702448163069168351673025041688036360942155878809165936785447419710714003985317819644967261978994604229458373084028790898395659808694218900705226916773586409821273641225489887079487197821719956441695931698994652624227772086910551139819320656260865752069964578291893641987169498106979166301697527862912167734187490815107855201329164062562573189600014345774740147330207121950916369333507887102577401930346007524756383556616988099138985428193531306271315290938175732580900482834695825328922483217410320890583553870973660404750745912883267455512884329067352033031439908654389102387553985382811777043585712094627906089236928517854386316775815382677100389543668645445395931524862203650487089798086245987069095456705385136249685598251991016852451155058112921531246757257813401478270828112754092599544890194100470348425843864107407779333439304612087046978726159934867625855691481355810759523258284176417852994591212976781174020383755380739757967295549219425627555832158949886500412680714072639712235882482212543632680599511993233590632809238747533242303527018807273159910888225030648832479595593861084515534217308073498492331814172610129062750222768281773416584450715978978139321420811941831351177113532902528044690407185531053277028236617312341102740458737318311682064523953219153451111182818458207603940973984285520884371537536913370860097072783933624705943972939228246884617977503671336071226779118845930262548436733430489065627050842094716390834458537020945582906358865541464398068999385096018433979251217538132163310233163212302733310681674291597805664590702411530820687415837104330432197333618275232752772679802131971787956168977681927776744704608218295883231544153067887801994948591191010650469007545192317863208106561565157572614775501669476732993653310044997291601091797570796212014396771623783734227557117317012906257160121813564583958608745308883626922547595927170897173668625772783790790912186962956807382033084423891936098029053225188996684623501723612336565437920840305180464244300733507100860672348718874844811536415200550147000180675627413586599409341967520493259378961177450744728728776162349275746888460517098476828668654444671506455002212331051165146215054714390307444530086020045249457477650800588745165236195026797056129649221901768579054240297161161280801528280281553161443708730739016363343757659866660854739935415428348422641683111745100812264726469037159837826454863149823748196205551253297389204181811495685536663618851241457960272274757903762480095603445126308358182555591535931966166828499032968088561252462701223498549849064348391986739645324052810623022954531969855319349062547114316102331772056042601260652052024373792945595002847457100710013111878004678940197256859404830721923674551759754010815700751622964107857092578175734971758060640754459250283949849106895741966779989272988343152956232190199151143843168012719078647445534926991022753791680561436876121030287730874152431840160277789248085870274889104171697497939067339396653871091108649354375169054614900086700803000886854653862780502018610369447069225568299751390196087572246400778889978862697809115990514018949861267413276644018029512683072727692811129544613292022757811880048231735070574543380033018940953455579678545519979134208653300538365952797081742987056843387320239917469327377818943409362598208604393188464426240451667978428718230273265645165404876700319843163800683578983466550080247923313983446322107421764645965628938721458899816772175323617504621608889368489610085430903099727238139737229895117764412797775558433511592235577286979205167234889163138307194181746561540135873073200628838796525152300773513553053776312968722953182776709167337289182035060440995217440617320075784143683720619183048794638413225711273816719044943652916102846071039799003812894021496121574014877078514198274977558227006800458442320029492610100401003383969463787580999638715550629612552880564884446662471054277767570584555597088303851114179895057629440704476345868831613411579732428394404329996316166974174395280615887574821386390025444829372999934279810089467794817465321736649843782302720744796118648445314519499923918192741037496673333542465365914463099535553148027138878249068141005135278768838332651811072380469242586073660938351829705689695412145074992562543506909310332457399807611700423931683499381481398323287227041652963723716081740235490273877548320823436854127780706304013306353641834021226370290523776625756131629107747272751802290240693890108356844681065420450767849025935003041745057048948895257758476446796421279577655035788199657670259161600856705802559151146805246173102967686793775047992697544606082702914554435442781588481492198225602216193080263898713985920066843618667240908551562319189532409085584532730349032416714445796698828341782113720613367861529525635004586867958538099569616338828485319573552029448781776502840057118771788306826843838833379480164914605007258492325152417643105172651510841010063264147849882591596462634121815684958403711597468594911589694743836327232005493380825030683199750746128213651425636903270994281310309527381936239411356470562177708116625001641253270531706276542235279425785005306769997198235937408658556784053460136598531202673491964653950591559876997702810140686383594739756498240475451354734913872924642804063035906708848273332940538406657260638237880520880841460026796218745887854478650009548941929803427812667132873991679533071019987039189930266683174806686223606333240137380630865575550577515702676462489418126764157062448538798821055494892627380095505806333676914276569764855438581953832287522183797532238914597375074043978994613282094089898417074128216979687751444657479508754437020286239019253383043128201223643961348382183353887148018250405835382623475718092008958427045778783292230839521919030781352468281387194103268791123146154743077958756736788822501227630693219412221626515507647198738717566818293826265817093950500856258791624415617761362979796322960100264109933856157745148998520053989626847715403635786649658555875349680547906777294069224537874482800675976882593547413168028166552970505649449814591175948705469052352079626323009294786707821058837854352433803828150025432971266480944206525150831008835216234399601878229623523644266269406234791907381303632384425766914144077882091406822538536389681023103727153797068533611613944387692329259797280297068553238399587937861126019477757475853067325334988772125757471037582817297527396129508606445693027196582651338820407440264172520982444791774121249569537371347140507175878825976120973633481222770508677014697801424960081534033634357035553282246909508697125603490368803243299569898318039551424392821462037129942461625348434255218050144051765405302827009750802008020589112414684673018199462435032848140026017840787099900288244330634816808534501991650091134177801146933736806655142377186603458080596701879293660210240555940150310154040664148057743838791913941144662026250887031693434377242045776198315764378128324553428603702326464133372303964358272158943959142812211726121604159141832643164973623589734778706575578327469585463537513988379003300787682508980589565252046431530992484497046225776489507440308720370298208039098786488342374176588327766456463599528776423201073344741890161646773114688879777870522541104352340824718914292507703051871260648409089113945810936818736109146586543055058056037944932336207531527207092468490646292799972674652366883361982717796826701454807504271924329028290562275069748959594389473518307557659499836922893355797501481919828348761074993748164452713677140362202910101789106353515245753348492406164108320182840383596464964263693425262381555970644384111642751244101541006929694464802800952299657689929135357885020347495867704344723864470318796329322370711411027873428637934971083423758712375395403393668001934459304083780808587355189923956181012347912844936784469786603765350373982106162675304340165708734830918850584928028359207837830000198167056638571061295169669473847265630670462697098444086596463770533353267707492475315090086587726318808043074336902823689312305768691269007606171585488601210238795333028756499226625716954719012571291257947469570497642118815312435651325737559008959914353889790133872797564166847827026365840743712763291842856294062734694728268254566242367639583528297013646862762171430536601783635608221563650535813766671110230001579785541768547445158699332652643551367465839268278210750548465894733882457343267790346139123455575022337381540646214710675709665103501490250399115789623538798034001014871814407798646666172342999989767031666721065183910203676443683679381334633134539438412310551902255227274853148735495851273982152174966458603800206580703494871487105099008830795536617833695277028380154224119598459387726927595566732129930699964921175276303144107412211309483373372700323142245712719667483648315874934043864905524865428758560352035915671783219083151292208918559785438130064515518180020166547162284990331474699696568052418039273151905238180237590237403493414922399186269677683664799458808547833584848081981922711569300199165921813683494586862625528325425810893751131759558551928284811433750799311082021774362496774725124720359025334787868466553703334058449590702007037001204798686135025430226482104908895182164894445405984229496332878255514519043376251947186357452926935006579209156486201639517840155057443144573915656581710527092187524392535713485916157344215851764701015102841626145089769010427399866693368973708204117309202177554439101212980126534069779541513906887642892577942502027649619787928083450865024625872163750302503676288250911294224314259298091688927103547834820046061984162956312406488985896875219765215124470282439318540240872305689585881814880170265563744161379007703003090261857034497951109161066986414064491953612331877401765692033259763036240371538835450551499649792375515126758848216399508962248690999813050126846531983034444968699167867956510219153634662835907638838346614351567633053989815942781798233574717193836368875927490618799097004848513572457492125977734666292109967864477757632473998921240829537569350034422246955173287907505312183706564039871575420896922543870208910631078475101046256952240038813230181998934024242335050129541453771689804447421254477007824402571583501602314236287254205880661803666513830917221029749588834632389917944667228568069362589253879924724975459571623071306225050762280730878178465452442487325252485914064576925799316825256837186926935931479799948712656891665036019517374903590991440079787337972247877202564021237903564556732209773535132493888263139897276178571818447562127346687479969721772365865345877075474257945667178169383392555139429753873184321200198008277583380323376676751732285849215599532660204417826578949210411260691690650421417669668826633167746493241189788238150827070319438886176754318870349042141082476112956711596307444448977661026337655496694546273610007354008014042714694800981952186843477476453098478337876183806490505148929171751733104350895897859558729405489807320863257476503297009570878404442319558763404140497164946377126493287710655803016510085332293474271725801238011511473275325043858083598307669234076427974877743410163693210163163671690001640665428695429991400249453843053819163767203342366138104963630398771376296462857591065201587201587087431692056497075231855155286555693919897222174818992098229896011401199479707133967372566624710449595466759677822038239865876119783293568839447293874069097908547835233873381253654296811441594127757621863332374409559132615587762992894639753421978652359433946248079993039310463164585262149665862684859684320379451865423822714444102493769035209807810887055321185942143147574836326600579725409777243707622502680612133692318267107981658728949378580369872283174448320800503104646590568506059069146366322239644936241550973584176563178871566074010728100598976522466577128598585580053076794636327152646829332523996162271299775992525515494356609039389398520102798621854425651800056824255399754551579196832960750840551991894962536323690488242990148088547628648208591721530092890443428806583506980685133175052541766855239776362866756584381671971135184079566794489793529391016890713255465179685938904483625986931052450026605013674372072006070153693522076403178057474070478989603122037417228656154548380369285293458083703680065000648787139482466362158610382250872432904593622506917628858346783214581141977717363946623224727555082248339919407833471928541969589480842409945648738782267574283014502705658348947738521237411579942649893856451072289855485268176791637228085073979335019976853565665681267965806382837246143164250415674003990999207655046487037334465673518954686211631557719950318106638944309086047430182179646884013257136953885238304255213333514004365673566015902684805948478661934046203005587110877878100835065420681986604002122039490555067327519566868109424548058926661882562067145462519004861885855992202096544485937961761857249251195628703421041613243706219923259987054006842744390946308633137130619463807728293775131793874284721828690969985428981748312621113465890387864293072317462468207659142776609069755782155699755413627907172569709426226004214737606277809185590325090054576214526356586895416072001958853734691525556653971512665184366183032145438307044048784214726486025309078623674123317295163260331727239789947214369441094330737667647831500097397879805390419254307797785734153135826851690596818384879733841910234410298438110844793377584727419678794253715123208357221060156390865939894819816524516275708005686557390265974962790871272335652596860974951818171640917895816492503846071637432878728206773013876426339443279300951929620988582051485705433656014137706469313024430052211295595529337824934946342078243627643920405041475874732570565678024231626160476950620345842948741404390390603171959159645729695586067370502203432540711251860858289571500467119690612398946104863896806232076385776022256510380234297064316277111519350212182672954342684953014654325871977735088211405767594895831905814450656990416111591027182439624688728584448989029275728726743581084702453164744829966037762607251477461428003296445288791755507454655709343517371388809339068429787127360318916778169668751841063409518788697359259623996616462502710889064925041158188663630507971238216107381905262635989458759555554854798825520998120572178150133868564302422554202360387259333244069777035555059774511771487948895102654447541140072933830791666461911024823225102646254848936722349774409063437792193183880251884227967547412739105995296334739274298272365162577573203459128434349299368800689479758593633220219652314791484259916323017416221581580012744389009597963496382413356220657169019489146570168363003511137074781078911234842830625858920657092848252632885092613956723743997222465965560997963692310257890528495634874504917784873968485310265746521683041979722773304080790030212154626369492617500476909213192755438975464066519959590917154776859781529032149982160389651749505327003097343258036751168252279253104192220529342627688752784334674651920618337371756187780695585989983591671702120640710170460829526768678967442944150744592900572988297596789025535421384304648413957082892684622844692749768647938187163338663806763207702328458249051683003567290696833248564718243796375145879616735268914286502525662337273157294781069294382376837945403888524488307484418328803758333933542811752177575509620907426095583328574067338579274096364580189291488008174144000558234161719707647551895210474555738527105415210856865073632636951673023448591563429844845571979769974392438440567930804610095697632099571586974262533032989641160423839710404040767459648786665860352891788992093749480233551281070429533295288539399832652709688206091421448257372472469722638214434059516454795028012133697176164420105465900326982718033638911200631142069866968848824415341458672953362548964804785016175773838670998018780785605854720321586507996240119246227072571940761602085764607601937319703233000909272622054060967416744931841373210248557894356126053716146014473212725006101149160755479951350668894070453169349283085673190664797079062577783442010440774135285820837051102566786971214250455103491438870112656776413652209605986932344520550250788700125424598066791734269906575831300001655793853467963341082383537298543405662605836739946749521126736975248622871612306789355500270763638748626708843098390134076938302561385527458674403302207455236022971221451967743825654975236618361415083291932133173205870685902453666618134497504907534861131111298984490718066140485666542367811375377790515767149198938785609778637370191210033184410986698799360409451129000865391024826593488550933181030062023298171646947477873186825089151375018875752263327888200612099485734528994453037186946881270000823897507684799105509534084448565038083448655481224745071444124039499795602661484312673383337662619884334140760412389758251639079724153755762094193304108992520939258388960289247314535394735966627849603562669545258513698048734123704242492989997488962087319028431450514627228578570038247253295416176990300652759662709300703223303952559109474086644747337341443018170864455698614042462735478046022693437338043352980397979393343064439214862893872561001019077614990473226319401891436664709764974792499284209559701248498555186867085737716957066608286167699938510775159851563000365305232227650435182051575213770946648902428122846690112535841918057338194339983694407630616593061575922845839051921163043186097105992620765226720114459820418274745543247933317123293243769196559927880075459654740381267863986244061503188019265831835740213618728621164475406787861221837688411537124382068210379713527502751483327551736861253786503324338444433621785151589434773674173755469248950950828132989801990197243788716196472756290133808022957115660625088960888437846112878750756868042865774169314036429198377360374972792254549157639370360712184334643095896933308136256333492826108460980427556110104624372293166424077553238994958086773458119065434992043057153864924476163063494358445946370358789241788535970586846696152446645851463607683002476274893179422459046460288546396901750818672177860484583170677808519035919488073085068961839604577522297073270365375584307407351381676746238532491846736431582830035517252675112337201177700598816538555482879755693443907452230269736824914744062347722755419569152546888934306668196138554247752221098303786659314872539697307334469822845381581909988165089824599221286033162896032172486053721590601670457048555262007979365357579866061872908599858043932514893861053571518147929299401204617501302180407139331841288247075502818683063100720838761893957025377483145386319242293206163443022137309314695731440223682949541396479955177126495712928448900248369477816156843299509045504436623850622218464369275150960904655939700268488946027933050707119730333885777175467373845636963344094153612973522604233715397004827882236678471750323850833426487663164297242227244806318905852398668458916623588750557776624848488699265373638888615845812534638205992304786806334671734268143799345377817867368625269915177419386327266361070566331542125882568523252514751501494343173650342308779372594682984115873708705124946705791633488547558818212077776567647743256782291356901694688552146244664680228950098497831509435820353631747432780163122571425275504014547261786255900988011520409322137827548142052624078892946562837227280920564814115139098780078417727326214904374258114445885151463636448353397354407872280381571152625533800298393161882521877714355492111846283661368393610175619154648554232326734081144219497974591491575272100569261775148530010649777487240737525644691655808029155730388789829662524799112719927800537112678813937500048883452639995343355028430541018853304583814605442183513217027078158702979050535478718603837570669291372107013507779345245328213719128674531106538366611020436824291187413670701489250070881882827207174843621940445157521680116558408947735704104424193814618258184944049076456999559073106150731328569824911186400496794557921855010891578155604995253352229992350759682482215195526190290510064507812388333175121557151824002251821438329973168384359650569367890894235647116656380806204196218812564368044570152469712277036992316761438614693496562092327629228652349847128316308287676617561568498400485659010250811177268573951513089331041982890125596408655277030511420437786840058970491078011914212069851800257687227551211060292219688108194409870905763193322284472376544854780636963026160481998898310056645221742723610122044921664693783446685707908335955702841444786927647069618381809456607044500945021725506461063409505450148881190811003288772595692474221987960002629122972724152918520137347335077725278096608223326126184668881750421708452954259634342238613591146367873482403038362226372144745722317012441312552393591773417289147872717856160915216712185522313665367593080390949631156717605372786943280548630651039161479554956651603878742925210977121880214499808915634144590000536415679651366135581841120488832493672341322254481803896223699332686824724716453307505344452638145196778243186841177906438593459076943060934190184160972483583381539419887260145747510401648076828170832058203023322190301030708398019381418733865522145124489724417923295184850179264659595608964596217781212325696322250080755990909657566307779668236091295907023280401071513983108106314555697495976247187642892218392652430422008857109243679312476884699725461691419128543069413572433697405833562319661079177839912345199156520469403319117009256906503951748274689670848152135364179589579019124472429870117899132132695561245551626141187637704295188889600205068027870214773691353560960581257708571899596304267950866417886095492922527039810639005324974061108689453138459844439292201581846258339815367149767297679900416680887318115351421633768074394112800233313558636000146202333772650634335714803246782363377219090180025524897433874332107122915743697141941684495759957311337246875254317709543351406443307396666439189272602631160968589423303974287316732279409256354898084414326136199058771991115230170881006157366267610912641440431160742211096658274041906736445847507424175137862252455183500022604778626803464675336111206570779298572504580980177525439925935051187151146364697702652833772179091963041395639741834812460245368693370536774061960577499249822541221974820897513618306512250490605167566872575863635450663470456157812484678077383234424940695298573490087118112432903714538631349991380685942872699098446578882397711048350761368444919654007683118493925058715982258770881521195632793099235018049350577690600393385352421744057124639601296489608689770224583858055424667946951636640721471139951614413426240733992509626988063212701191813800332124029018065393240948260529981353630866863199629282590850226231487949607623152121746221857184989147298636768299034351997462254409968066316780279958270933001214364891510831012478274352024566084137147819095712887415657630284834345084774903659035991163170228035883309829573501283615616195483973883734007657784553384682241244214953162261373775253643559912369732257953481698746871832533432607859257510459121226896943499431142026088204527372821005089477489863661561464241773042265387051471607013482218600264234861188860627555770729901974518665733626234052156507385610285708738571805909187925393634427850372472463820732529399109347845450447608095135646301659027656477157253708886683228558887102260154465073043498670742483736890672322427239222019337226265378677799305211939406620837117672862092369580789144550022647383899871893383772110356013222468574228041776726109131741418999995503215302614246929958910400220152557206261835699564455692533490403323083164934578318789181872881162643020036942060988930787091950431904698588838870485099224391986190877890060651496019032880238310505460607875360385033867781947104665183257830264231731207780374386324669308822617349302916582820851566904563545158525072566778411886581339510775704020024155607991259072391183370990692804750001292191082324762299439245675227827387140558086516403380375222861165959161228801358741861266850685282730825306875979551519031833723642671605966740673791094816273435413448547059934594289934340014947944823453765000806026804848854524471974212605338261872077125978807287728064531683773328960797016111561599103377726954021057223107057952803530440479970831703423448003352466458498326861081087178655804604546667105949121751670005867516763117907370378289309240277991538719953550230454682360821790036224857478357250316896222638553071299462027753027832895761962513038812671706255292511046537887493945206249781981204543658686631765016080263386382292195702418837525001290697332217728899775622323715163793439659755646779818297892358121562173139543350352749817119182686680951872649378929648237125899354571022968469973358597593961740752798051618065644857493024116678293018319448164437850403306281848517351626329399303742082546489863033882078431839036577787140282518935365834519825478865202068663443218096612890973230584522629504490152314959546682692240089987508286367574427088168850353343390201147418047852138791418753366896230637933766998720882311099981234544587977209011711412921010403144275850447629610117008845214451005265785863051458012366151238467709551302883147045238466710498103238448076709465602727798246887462669586274291822191335281407335393189769480237417074675890089681988720551266536256095624303483788870338315009542060028308308239925101868635499278936662362127635531561117977327232789304493390659851419240945625418500584191046088362360583193395331375827194058247532307048076338222258909759275738502548704035480919804404108209318281920683245189539296524882996091339573813396024033117032056810725739861119202876598615797868998333516776497986069943606265455278163750067851113554487240931722197330724068022924528412155918266281778890538381948570239882999285452995958282648004906972993816622364038962064990021608725442809750843877402070427328328161454874261547769138017786835071207241248153223941646498430780436170095756033965372162737368295229552927547250526936975337884215447637576882514984461296796872621084972923605055944947400869687971018358794877804582412222962024098176712378334513314038328588719181064630946558485552682061291114885046079889448144538584780501780729994989199061546824368662042915940227506515364718866076733711771708347107946469052624498155770947315892393088105553325070437238486983027550026073034422974931953083087507757588594829576650044686419486415364334424143060748062922669870552342845359989056710699997295087672081130391850155446962068980228111581247712947545276750518268387853816739723406592907751111326668453283541220815193444772515313042994292569903414454412433363770519079669611744966166384670258531184908906354988007634353827982743838597361455158683138812175455158484822061816902615258718799916024390512686104908849482642497455245614479381726661679886668221050372372630268442100211161631422385554997998596894405311247987535080165413732906174538479938214641148649384250757978923902418531564845010621151199959544193198024885219177829825183848113260234943645644932896881171056809852753137709198163360975806743644485440882771791611843178217179269274874237593393780777165508615440638208670406880720723635073689255256748929435256394445088640343570101801231922727966784414680385830352396043932419161788243766916093411592737216151566970740961967035846157532995249799341534294198133822389444212594718108557457086219008350829089300746797080035967177053738590183666503130481992232757919270576757023306543018573783343718164654383804510730755393673530407757655521142479055913437603993075941836925804231584497610532549983780816587426115190324938364063740667933723203199735021757038695797336249907514014481281558238069117861621108652270025131422115313629971865563842979966350576139203281269476811120855469991562693072179793199211145183787757398002238447049559464622190196107711190294150958996035139165545458133731778545733034987357867961020052463307687710619716301809679388887402986320906050102675461127473098756047582967704115447473729219018952183242285511960494676340198051102002699797258300712553442542537643898919147403684169605976895889065104108544465372370577704227749070370326736961292107129472599598226230974212767231725479579672700659615946125957642675000023882356448016426606635773579888689320579354415063766947855286817952465982638852267220700381563396093245927629747160642136687051415485992956560146316526369991548818087972949727103705855566614929017895168173253007334162418770752674816844839479429447141680845652639958919683554246518738064660834025290346533752514729325362842017213327603625593614649259174433308660121226400737729931000951051238366549963981482568437563990168172578529758684823814228137107622194166528416807726754572856676462843020695039310229132954064937036248569978754463738788868849692196045408007953189892036937693100936210753568812377476702484175382312294309708693878259211047993002453122937142003432029540718794879207805115551584230095806152975703717742273144624596743307051388320041753867503196501884287976915290416014957832110703654189588089846024272427823504187712592326923238035445048446052756365294104526367786551001304782528584242722195398325083891550482278851834074031030169428307898268881356083411111776617532872344628653835217980382729202145006367673209902030546272115961771612293767804409982891727689013753997346911645838535314308714044760658080540626248028883582027792501859794834235621130451472691239735230586685768001395921235183175480278517080242611185096360778216061810997551724229353278114839802063373963234337665951976672917545836276947076082946861435226803726890244767993297696459680550441948105344479922613942938385000478378619760102060166846329597326795426717956275887260498902417845598567419373278630107524031062438252985838302377315407874639431989590531607458509062122190983307145837893422595113194413057001380087317732851874090505424284919019723035439303330037812210675035400826836216239741079666746585499762354271886120238180594334252825116697969219665881624817420606924782541495006565369511265221073371998979831479361965098947186285198434292611811725698033212900951722397535453916438439954107745854458772997842194208366578524556277542073791337358350640656987073170433819093982662210663798496265477978650488408004289040258147014634972476178927591226995725289171634170612842695549009492468568848077577322293635100295443486940089686108247234765328934725722433418048173620336743182286928991661493119036495063980471373823560588465777766459660473275924222318808833294623610129146375309055930930746667397390475384283532511544514290953669255735422149546237523806586658389780398549619397518729695890166870502612643155946328543565444833078777768632676965546762141970964986822679225078266031216317218424699337459299238628581697736251917922218426215129527235242187588784711204677111350787595910874583984171498694067436982217171130242801392411787668225416567304924923777792083829323842128593359281268223093877889138798282983697978576598761836733016332199789663150296221086833535764577822379597666170886445347974794123179668718148237693918972228880680344433433017803736441591815275050150113717109564263029451454769881533968931268293864199861756161853717566879080868713991538034275595013777708263646202091560537181382668309078123373589969461879215342915644012369303527994386268719272356781725508163335872657301268317656419207955593526193490009876098393923967246100781656668934644591402952483595838044504642281620790915930082224341231704977731698031608208774860287252370794194139616734332995474208224687530061249171396235870113924606392727245025792215529744960246075852814372360216297201384704512493108986911926862481091604618438927428826241768495207186978879258832841433736417388715004862066921681577581325100154678996238778172082051311286618300200169077930823955956016308263085136733897825768753201191856583764049029044132894338171040148979996140204324377291047643564826852237302098551753451332607227649658776335692948031887912379715177445712410463095252013877506164719656880413063981373103419220209384165229760612176173623422312818407335784788368676727961857397627051513736897730297115823986292495532197619626855294258250948100873076812736169006231894446181746658060517220220321897385576476342821730592158309906247881401078663762582278011368194746848437329563597264544771377024084782779163302039514835443321649340203783071269562585909347874710245121909861950877328464894088299726116373506355468077153319785891182313626714698097993254740271848401983642481502216616716516252575735832811233052815494293124740006402474100462678594652894504006512756857643014039591918833525177249787665175480069579704109256717253783589716694776385250764457204201708638436947439232406742803554326713860590985180039565279132762890924954400892410851050300107560424859161654517454278565680874201950358817501129563891876295027614883513492503878984463153167685613101763009945272224814336712020161981634472484862037816808680239121543369608681649744906993165412804571019171480255987097484366538178051947311085879110927561803136537376436082292999025725620126729043447707191389161080196174194805123623309882068409457290874711194946666663200850480409144418803166394911891132083069027450406891578700469201363775977519321962680034895986979028280493096663604597936708198014811882363155752316217776667907213667053076024007388645834892864811752063326219159737332229169726389721681560872917321871184144845226759449915089484318723445642601332379572767938519397722911566486232990224472290450921384815415083367131158844219600061869315143147915815296845439901000465729249172759093589106603821820359793801654101068318582646766063974295327591400322283330015738872895527148165468120614332155540322065345136893553894944353300739824120600874635042202208539082742587022989152136181724312231253400869855484449861876722506256629731792960450520458591362228303332099839492144262944667091684406407336277193712676743689918448186148315410089699207639119081660350006960848202387845902679721717059695231774219186718803825866310185362770505630782727737618014296728104761194098787828554979222565731818370902486948302353978295227111043892831461670429321298236964377227120295719915814814286610400925083281614030048480129903366154880798856898992409151389962403980060047885469409271382350398424909189654151919040454779655566885222747720948447978451885913633279233169300600735652556551879343222212440840906010338255983743180277814820008010542621979952420009543372462419623000822129450903517828659722895211699715102350870437300005059711795401366960078268204551347279339496833063618586223873884725472109627491891307857014241375784203004757269526503200760868992662922148276598183022874545878016769163480307547425570568759533994678844918843894179248847836479896755029735350196668889045244584132053057026949157961048449553924892507181967385541725358117449973361686822536612946230082663193220782493183321974015642035193406069916316604487341251785294615345278561688550848074859920392015915522967607879707950884308994278869633634568373972392747587931246283256224375126123114495900010101913264870332764514383557705059074935177582900657593007534355259683691047169070815400971358164164314641203157981418747299246849976348333629370437039333240393584716645639695502734242727329246108070990504027242183758028603834299096883555013659609148563812243426306551317847379426987363476152702452076433747099727685536758567378017230671917048602424096539928473259179214288617562124639390027684455909642306297677872192337598120296344862927405295516523591801140399775430875744210538926463921280206713394169203958284978972445011131941138698949853656332650781617024800475118053307442576694648259473120606885445185852412631721070931836105725791020401810882733538335883747039813080751629973865411034277314826865328047278668309379099726585074772122964399455066292723330876178006414948648589633942635554202030636541198802781902480530268325700309399633623268232780640999383223794783992108493071257057401359433113590066774703810958046226581269954913531947024657421802762996623169037721689964794225019646139700753386656962224683769006190000839553913335236800868137681399309669244105337248391098668025974620831145923577737724329182507326101551234583639173533899115327970658639426661982891533041978264361140802496530954851927471153231750492417218411456181749617957532003561694790917797004973329118129831350821926700347939292675442135228745276212542551204862383754824091040354947251775284751103961754026299740904747864706913895673528460509802042869628775251671145531951618119583569262813076984871235338604619891780819501963344150723647243096772993690941330948749827770439190862099664639474922830968947295245844704161401681125243837704039831880550683572518224405495254908385986411185888771108033562156693083308124101972246313121264794640364398922445341748663540329647734753827204498091128997639002323597820813164957963638911929926989069400212835378980627189608738278827229288447583455873222018002276003386214637661599148831828616971822199702599759917291716165634475601916367814788332283619631184310092212473136182940508092774391198660121074476241983157907763170757716075479775159643921840883271957166766557171998101407395272802708455990084009277624711353458244771676185662298105815185789702470625526707213961638909934940623441813511432003752142200444208168519070089290863037659394559195722545373241809527032062838827154781956636326524932271550042798894873281935602203992656009194266180388582002534694663423207388617795967252580990814362642290755670631338392722298762764385669095752303325598069707940007832789652408263680584393490541697652408014031231573869839702243358074220164950782147124379314023024676122639811052538758775638143954161924769905922333666254399591257999004356190282628681373299152700305278129252266862025018929666456552499132803844680734967889804893204851894074188827307902750896931680349512545389669934479532005643199278962441677756466128133370971499631649502122630043072015545466362190145911780231385558547238784830738780393340194619986633548062751641650214777647885623620611215977796930972960220216000304612880692669267989609936877932918237312048906016891496267555805006753027878180190733239289742146206784381277209638661392502631820478662390538135922561203034206995668053698283595251137338377951809202874287414385443523848394600519446164857489644878533564599556801270173309109455018444021017191367236950594602552687495405101440661434972068748060070239177526264186093949460517498202930166819575152633590407166782886305541995410789815425643161737817421140052177452423320991297294646447708435349171343500329701933044300866756159318076518566481707392925231584144540213794776672978786867918264352694930927477653189981253129831936666465696765435620055412324881670470237417394313620504147091995094565029620698526739041762996075816353590224663823228121769923985423860722843134090166263901452978767739071153422208998186289845541355212610677168281389864465707055470451455061437383231881999406365887873815023553925110549454418880487219241175552035539021856522201776312164536650439742939523564124240778547958702537347658189576491946425616900874105558376110652730482526884688915847390440384330564368721179693611689628556667090405513439174576524396408740538724262666482538719269208035479194406040113409415145881545914654652532253484666531800640637573788721710159202051324000555529358157341514320989577637565648285607293653456918206866510923008581111446056669430650736601248664117373653279011485434069880533824163552097398473814027753285152255616992919181407003871512637930443985737813375521592041799664964107976197352994354948555350042213729354843387037259542056349834173494808676141707100638898101152459171474897431131383451986179512877661802811765973291552771788458792671740913865880158238759542277763747379651380095631910800244129600730715266866063977970820691424484780413844757800354392147447511558464210309010123630671578336264727261906508103856564095058439646754143563189953866690665430825895550244179521770601376766939963226155477427321899308614289148575949246145412308155976590454517144341511560249629420546104485762011582534229384209215391743633569113728972004055009899719251178841352775876342806229243043799981577334559529496068017722777593075400892023440738717217873476384477124016808509587022615321879302550654664064215592862928343431998164389769962732524529119771154102234985683130188376710579821305175089265919555251540373576274831984644570907643434167740149921953920017217617489910598704362059136472617396379463093642152913367944524667309870852877645471214631854952196931436201856429714786218450281353061603432433105173530357693037248785254635060016700345468193127935833355314458790196213616194952535982802475657371440044031944739775917919827054731617346751460739602240602977684107501810251492203113719757045082586262955791866055143574005779397556693235739878687053568455642258665915754595484969860619626048085219800751075537359476949160631731162108287204877339542224164202657333037427178141861808949058725746867246701994784461706995535423235417605897637613791726092933686913785863228437305189008776468281595104120565333146680205301369634616186682662952558059527513027690123362750603034956906042164263348337299058178627681455070264664898341799033327411724725486616291780816560992018563673457389216371284373649694410804078546140280128117102773862005698984655719359732785004179570076674416968957878743728995262743088626104679666914974143376851574113575485287967758292777047341774799712471826611663298700817087729584160153242598198017831751817204785559593956223555743948488520551204962681415769171948653672625562200677343764280238067597564745275010054969908037911613727601354903393435678572882278707001501886443407269927240016890248491438656848133656014182115979525840404949182841866507420348780466572648266004573442689561923031963989437159104386106236694289883745509223511597009103078552921034512246149949805383747298133470344795773015439035838358488711815461349379850792696843982900491583490737043517212416679505982108971116305226380142540223586667217511480325001241839268113256119068123951469768745027040752787583499809451870034555071927686086849373902656480678522911862137622341941300876204432201711516269297996559867549067263369558941682754883372169917288333627410376140113482742660560890287084465315460067856653162130743119490803802472823627250342914811118482346212544144729422960208386026683382360735049459287425798291898936389915392613329608678265325531205815937508801058678041412541696471466851494078402793928667921354613122106189289693943982927372457747863449649019384741810289749786021639236945702597610833937443945108043552760752631109016334292366545226203006426597487759379285801372894049389505086762153504783158092692671695223056201164346711029927959592081725267742478352566219170352306215585006285244156021258677859982629242438285305994517003964268052049407451284411789882712809686209793398771162329396261165826787638026712250950129209614595105608624805212198209798620615403010680588109728468608905724504071713624276301751244356804534542377126955028392805710354224243624203393045119057333361972761725196046249470186704204729298079712025702481069230226494251209889683860320879024994170446065560578018099639442964034710128559912655268611026253013319859883217990458259423270059249111809847339330562063650483516854231023402391170623717949476340049295363118541614675989927218008500035408125250350229020627374736057656739207607985800401022235711964873760259489619167464197358786794374401011584969123388216891499260172501498926698975334061714599932951812166655835278380737339269034700568743986039986315289183740227698181413554021503028479168328229910924188753016444926334179971966720994978248342884984640589743128464195732130268663919060461812868072979529104909458006198183419252243884227316997073981967874797204810479892074979088112927851267041818120679494625729028027356116868042637197885053465361931613477847938747691900115082289578266007585756298137732666054363796231517690979596633113279004419347019274359198490153518987717087921791843894627918444914718297853767584622267610964257289862852849408305446104182339330609530383382918494291279828270131780992653189875892785327112251033345524292054644934925690772604113499833488254188263555745472332302219617553775714006787665710865901745725725737124607260457967501398755676914336454656899869194614215743044705278821558860713499677780411724850879762894463946613663097525884134581420580010913724965236602181485148720931136661590305822049947623779803790137418909982805042989262014318977751016843758109342588749159880578036455862763632588856876697940593533399599434902062611052805515738210400674583243209539309447038137971716655180934632482218099159921510446130098619322893034033418477165836489424424984411360523148069284978445927060389008129397161193626873982052517627725328810191620905726121709191190540842640352639910393827564290721122897701179801430072682378247494410200876945983195636019861306611244635232689843974247047659774689993130707051101540981032858917382099240737543414882770863502878012795487961700017011673602857175878858058706987262884704414339507152622844089510624699251829887812150933195197994523292193278516133891365009175704313107558433141778708110328310654661483458518457958542051020921938097163308342161646298759012553534704409246945012973737892307136253783475331473241768424903609864789673835799974640736871624728333548051878738101325148477604538560189844033083971516959455900073235157932925716074709073727672049854209263262072129858481543301525179648015062398560820083745879534679177728596123514935972459735996477015472211671463287402990283638213177389852007807751640123230948445852540725243601138657302646618715909656075173606877662401712104986973290656496820271571975472385048106105804680334426636035622274862960146964777731706417618222147084156858220410475624139553283129431510102314386650074217287656364507302984763098946424964397371700788264829978942933640799580757601369413724378171968034133038599293422577763515619728629620745214009972106565284577874663115272322435396764263339310299742969278244706079833438705892310079183256250753124893755427943349276007604424189637090671997477589531884595606766656389289993515216327951018172550118323651802625722646750136212075690393945644185942837087773169670317947819735923674920746950613788534230045266156740148831553983342101752043982532038552005120733238712953898220027573738830579272876841980703367720691727982729637233949798024756737427885902172948666294426849396158120611710663891969699354114267310930180722105887851949814492791414509379276206118014162364361548729431578515879635493133138738375907306474057500461246690761313567243306824691375244483346993613943405335857493818377477087163549850999742340539737191596995497238847861927898920400139260707029270589819247412888945802896967212417371029843422214864438760393875491801040340210458648259670001650374720984147671703095932449610326078691899064623808308809828897550375353865622815767074167667137906192670852536543438178865953741550045386309201697693253631113610225640744629575471201429615640425649446457277410080117560930846416406541354244617397829127342304377012655771856198744120173009616871810336622751966792281449840007932825099159745677396205665544661334549949404381530909136503691576883017639826241037788045762315032143721890679775661278580460984234409622204363576134531098842211367270699557981784745237428364646131772158193807449239788708800360960553238404056130202113123095442909288036660696972820318171188726049384714217242298604064295700621320676592030503822908088833786278022376492486046408814247729376430802402391153652319303008403204851387703590942128153259452715894588867881423778102070508411804392824628137189543935751759860577592068626814301437481714468446775780732095181261312856800435775259340030240336678007917325619597930454458324783701746726065531698938730977699142499282332234051512813697208229496232579648886541831339083426000975122819443005440277014825552895963368474179788453407784835852322575426960144004168981056688007431760512145612153075830997359931170920625619272879101979071404963298075323330893958675197854335180519113546596480569260749152302204066251733944024744239431617720607548581966530944377593927925377932611247279592299131508700311487133056292052306510898593693645823568142730630339819811425245210073689219933988960778860058216854436388329020040962824785894258096364314735941174465892538993723375117187936010089370072784990483709789536293496301020017729375995048366306511695502144795276117522302486160599809668264958594140486953357876520433046667095731794800638942589594883988057431848859187171170509075405264706475779559660298051391494715695887911824073458298608388027947768193579150121594049608139263140521606125384932841819798398401747635545236006681366041568567771042216547928645595823850794420811540005459035692887827530607666115496184648454872041317108821763464106564183964059836261938680904146906324301897611303963686171139606789756969071302351177115118869028484830205327724689662262094672202800352855811564120340280271150340531396764444903558931950915130326652800245051743452935765709450002252141191819657966690481742400251288351597874706941441096344163325095942168295063123842548236260960525541616387287801921438759165338808265477872692094055757449685557079001829958909225199821264569126985882144309354952058408560102511067655829403057870169992418438918929676707697882006106934193749634626586680328020565557406894606881087394746924587110789454935540112403142998520801179255345022511372289070523032723726528753212099686331392416383182001570918188511488206119257047768838509751193829193256996010330650843446971786922902375211733921403294252524073619537789311646717759530877947394395769450285675840828254998694905019235554201910927433959131005977939978919363116073506318077666273833229512819302855458270510778621900983835705297719890814881411098515009619443387997725737279302004314661698685335358291567714703241916763183518007194922213173375255217013881448034809923442057792907832805521341368028285092457182226174931945194950963265087932146454958211073368264554090590798893230093613662134636758485265721316929233341009117083139073482225906314516932905836450440542564601972215188876410545379817843594433393188077719936831840759889554676245084404275293881714663062217418500524191379720545654390043772520586966652095502469927045611653687911944398321658718488781693709836220862975236929300722033172663169032840359366402649035229825902296695286790801199922174266958422694787466969515084629251218815167922284099588454999309305545245423063216853862000279176619887177265801767154745818348966571794034069617745112461860278957290548256881001094464886060106063655278487998071510224385030545747377930535206345813779058316346136833399753877943341351679132867051639009574976419311721037106657866031005501956481078807506225924273525122369467647478329975549360529403236779815047230255475234774030394436949833621165859692044449439541602580387665015332703378496737737018397723229278164648975655575555449334575410560898812618899651067227138475347061598238580504876340211530611637026938588232092134376642969158470858812077759733165530892192891099023711907213740710963100726431542319479547182323539151072825939463742216212592043414727535690933218430776406810553569410462520898342122633065595052303440872291682766526063348185852847491161020062708808436087275672869264028304476413109208503828099740245512884432291509100821337797947615521107386769929560152125107815770351962193498005641548830989309292813838896738491672973577165576092067522945692311409750098740915127071336242885009272828487239998901095226463025062410498814383406490967982538373211222437797806610361296707238169288677941577242708388567569225749426161162547919576509494952397641870359247657390091708127402418887036208390998564678074937654516905116215767947568989573532630009716969359961299921622469408604380664975589115279549864207326617154404292394577843807909340495485619166294889608523682027980807805385533276663607086739265613933942610328198022112325605047410259350489441862450325104810011176676980264302881083018419887746031063542959484343699881479965104346423592173066337176586716554407906405938924489114247885202139225912631153921158993231833986992549682921192863532438723044250450177293405011654627423392925708325199504014302901589398081498398574921449359630855551778744428236667280900947904018483357106180282557716546267042757518838096047460023084647828366034043390715466666478987897133757697634564625240517111658930009524319884417361754085944906247254319454203019910510008806222367652026121190682375816510419411038515622403224451916176052618999324052495607943857282423091704148765794073444106385169190918098112093004393590067121248149059740680374955756703905920139554954894890705585520956143527551929126096112510637135686623586700422239071564785247202432484061378335203167884875884773902764120684567487401323038457836292850215299206074399170816182869101579770685011763505954384080061574836209726934378822288971345016618257301543307090810279927709219990086459016436674618477317405563442026105737553304987382942734854808400057716358004947974471699611500868912785499137124803879598584783572896840256369031590144394402131605021341306498670337653373434954020444777478398934866055934174592039617923675971569257383148487743836368341354569404472276159446822542252228524534314553088524347509788982582977531746529730519587541686100861927781194410070872800553746671009945327223518192620314685221369633749162010563718125013754847879077270073988158503554660365895651786878771494434592208154757185061758334622434040562330462071694568563990576209776885524669928207357259544227735896138798160818861956004213455929124750145549992300410325769479071836927585752320077280695760358963032654373751835830270830367446389969190200938622596022502196633947769897206824544205541537914186100970847709609407353542952759245185284256238187810506071855210960278139845625076391887133969199777773907143053387813046366974931951498766758086158736761241654785657229413975653931301598716986075672997533453798262272775521426829995365007246154679634448142317231305092884147174425066514504675561094362859939995164545649193794531153565721377880637379337116562401527674916893238192769684918088434070446790241620111216074514407329257449064381654018519553725410425511440532030120746703502716165254912156921162006138227031644125871882869111525328281001988665898009015647774674884595689165557711947209240678701008690150466579004415150325055795884227023995903377624368329672762449070208987943137307799471514672395857564403465106247931143635736030792227446899910901974631722076786488123023887328676768657876720301921080570229456100698449248909145354834574815254573805344597671250736294939785363793982692118196988734809942640913903522199090130831663118479575037607598134234488473563496084554701027469901679617740102511650444009202934713043700936745468541732950163346657568995273699246477683789120995486476005152633833921228205073172531623793230741905600846119800154491748159633854386327676363893241184883981187469647212964089102408937965999409328330744608791419245448989837187018722599803917158199976103564800172541569665775378152802776018799974852377514140828596368379173648063502979815790427188529003697809282655158396919040535497777467987595413212560396062456277432236419833586783242239459406469402864389497764383720355936268826911005386926323210926918561864040748968090113509290827998265969037319784485457573301639643108912507778529274285051157939370438950547293435096242469106998787709076631664681401674312102521189431650325367658275209705284723568599223099385313109911236248372965367204866024660891435018891349276939418949672004478188618134644922189181730032975571628470555849877088220168796056164005251636423740467432506491949136096808102086769873833468008682095990643307084490191285406651027630134305051372576527207159666829473079100840607226033632520701253231358713920463938375263154206068959423116532246687039833581436437186978111807182705656562325028212250464155627093113764082322412828191988091156024677076281187452632692566477760042176276137346934365420023359444968896294896334473083096256915985413512188282040010779309037591810501069783340160038866804421539679656472365532085239747089755838835596788923276111597969713043591600343213263822683806528644393213750102671420923195841288712781995536486860845760765729269421986710665898848104442302639374412140630211889947728689945681463410655017106866302472237350630549599334459394000469587239574392095294203327963234595065700848823864068493384572539209444333206839204875730028795003218734272848907185735603512688905215541470193944535797836343853037834886364823053576413390383108681786717051280043734521764744738395674319853931864967068031720497802668613818642729054789781256638859760452546480394503001151398601170770282422624523409094334531293269268578163641257308076409662376905932276794262530733940273713499076133372573560860753634484878175975162861703339882097793563726640702606565442816697836315050018277465577414906025149198462760331587093231967467499317766383405125859080771237237502575821052439112912806015586038559583218274566943756796912990510473735484964025348174184682259479162130809130888281512347041170469611089608162327520889668879572249934957183156743493053384587157192360691622658284617687157949862540378686251857203046308770140839650980469800139281060742995691320592470200940335238195101805157886101473368954639920728447251147882013859134523913561003960132422183545524267701659261421907232857959433435583702831485731665583342336602628903832501198672413323077133684347979156077645272204664169514244969924059499263823870974906012104803507828572741777252300963617669775479083908385830034790871768526697098371229307381153054634288599141992696712364465342206132940761684266603585482950817273384442737524430681545122002509925502803548886390752736062983032794378461619015637486035726314455725224518600135211230075959511627595528967395374863957170941248943369680812177583155568277589718125122504969288342163168497539528710709463998348021050756059494108680712389843281632009468086072678655996458492527465347966026006840987066654433470103055030347619927896765061691914524175820511481246538149695637944299758164437764889834964218354218391560964113983132807897744309017248935683098201019069164462913295278491158464787900452129474606984931450225733647724713167250096439370900282009336508008166935722498412606274351467604166837280154735398095951120548795110213270935961536087706156189912281365395898238689276960321184981064159524323228893141282454950657355268062812295188706489763633342400162646979672443437568185998318136078749586707718203348360550162991574687255229791798819201361377735915713501519165625729804101757889983528662529688159082126126325191138903804428015739113143391298025065075845701758305298669112262536889111868204044427867282305383373248590807217939658228809275795729834008035156900278384998030525255274024999151905185079169331260814425836956777260021517237277608365641001531729812035168878082359540997158756769254548035870894001783002320155206974741021481925933170115674365711368967481144188393232717206665897285473610727988010205413161550329030576028397540841677410360591144772040615121438376022136601128559047403228586221345103234173664833305616734912165802274168797804377391740440408063856543440184149405688162712296916296946953311839062994175436319807061446237338827663588810012306352211565548281476674282276915739468180994343885742171569349031457593268168101458691364575289192863184594215502477271553676920946801168935185149170871338031696308091983401244299054781002942488915626548714224988923272841593737359885881861071451624473813744608681466939006446332791370992486452114117613596633585797926970439869497033141923418453661391112413115138197116778637859236640607666189510347812120108105979743391097233555318929049683390095814283121885036164981832661042224892944025401813945244441043834625540216446108473142298580507985250883553512296564711735316897828322059918055710926642521931254386181249681244137782612773976394230564511725555038948882661539380253246351998122305347858231011190851029475466798101586450574258273202646091001547788882321186966959149617102734719937743278285576359236076880756670853409785730409369026400025648389691031733980769076025308443347816407718494915532359817051139684925761258597964412140109870201084970656344503860332454810527808323418385421558578505720417970299570440570520513211890071903036000620483338294385946803311735212792697454405568583285557801530344742797411611248756866178250870112631039804797755021573682817255824998063488555222488483479523863285707150699367719488069411881768661042874076516383478616891712269133746367294121338551128169774814090412117155976998231869471854770338757085285875824789858606643583293464888052833983687185837771528772122163257462823395068556178713051642182387480543981469587142726680474344219679716301524034804649664202329560988622672891505206410289775465693137457213718168170422879813767929309337432493278330215330873173775306782661263260321830614362835577097646599404814787438097752158982808323841690134883111495366308776725417832416491142130885187885797101022253524890189298566268569739323922333374258647111696010515130753815352332744531338344560026669875310953009690501154284653941559520265599423339758748653886439691599943683942226721078754431698553274205607638259806200092847473143928943896261489153041972034117035090616277015991736086631113481889477111203972648583691545055030589450886878200128239057112988152203237875502275009904662604525176186456137522092275666941800895968778209437651387689219933629737251172012937508292677636276742910031047610152252877010774495455515781142579838313314442524346762596747001158972075742973777349565039685306276100894500912128067601741831450134508195795629243601270564197204638411814041878610062525786394539603034473111190817823332424652000560099729155699449444094505909776675746094542941486756338732885208434043037409760668845185652624199008257701102405892493085532019279791838188129181948120645415552012179839545105611405578068380514726368932860342059671026192633528555975363247565931474691743500902720549954421117453425787781706809842879045788247901900816334016187794876284412877493536015998494101837531752280543906821253843109111562738201855472511052625961389835600520097768132563969624856402636696687404023235524656693920047452747071095929643798352057677083209628267635137721876801652159446071203303547425612518616688794020974357600041255019137190812718216327867295832941931151833557915699169350592210724675566584580013412433011560429520771701846220408834656740642213544108255116522055157115755941793430550579079876423489087634932443122509779897849075624167433943258345081835560922160826601775281710366864568397263064822962999083584896798321468017655516329880599870144071308260146462355306441170139955708038646458813599797590254463948308785590996690372778153872558239120724783562434628700403352313738871398280517532984131114535282709490205557435588655261140958006663910221016252636968127945226189999643390662748176458626013461575964789074664806621196302114127233016011930960125670463282925712217427435106244809165582437317470568344989919831161786200404563526035496083854482000667155579872204118156114172112716988705337395286347784033314265650509832298945064504538599321589159295148206128171672829604039056255092725734187036907901256911403769328602472736758699256993637861565141219856240607741151480177882012449553272131560877419791830958018184988523633665453771403553296903100771538285323892469621166321877726963501465050072445500491184395765175586665568725799013604237956212851610188065320686125997390737748651887508988794691777477729667117741209072897491389156090130012663946077275624575465825274892977823859101960626507579854477126950093204435908360975720100140218841819432551203601908665429249968387863284200688439379095423877616882689546667522111473923049492014862894471206802398345420058737559310434154980488582488474838518483819854199618996080566139603952441818209887770758379327092703615387691608090705537986258254672836619729874586342199844862049644218814855396693458885069391271255371625848921717304521516019217815644862283024475768592633826365533076558414661312965798555576017099639746161946807650985158018538797926546272774604942760317871840070443609892806779738366436974934257122997264061975556895916051680309029789760608095487627574486870435735804911771855982208994608247799751520443259172714542483245059481159816372604127637346481748400318430765266006251448992662591010220240238973162978619217960565573414370740732623678882772106958307757754910302923692628603604493803343642285054305835178547602333170502760318419803624053540995170656145280167431904050582240471150228644400681869098668100287383344289598772984148108897747523953575434844471983054501628378773489754812110344240167723367052793219538712681539738495977886736649049640080574766899707758984535202421733716708120387052149717702053341398646914689071652128923074336124295430654771147580425343726530591205795857639998459097275201652498370778563247974413779974411569420016407979885602567454071317670802459929495338025161133679275033809456318589929949417481347595620332067104768617989929080204006753215290027127044645796481737883484086903719301153570241687188664775928506651918177983735612654811778743499420246557598329358259894974963006671445343656403607600484863089620393434472491700673567775759502767994605393419411849207749500504731612278182343219206968185465447776909830582322443164018239013184832582752764091159301270544581673166257953217598576966288445791797412475298969768835659908645644288746424918115239963569733696227277224028573620224345355066477836622552750101022800146503276763356817171713447150874795678820566719927465035886297587869830260167453162789892592940404755154893264031573554929921519717781886358583152098848193780388919655337031582204457277111675106276709905598692263211378806128734142047474131956943100357033810316441041218062404948873468950933076407299607419976226921322096075607981243790644349054116646354599409174556734053906845295965678648084934686245773424506232862599447394722595285974421240728201562893694454197745619748089762244258151235711293056411889991607758328204725265239711409328598025852451606654598706032578325283492315883738997061776536866828129168962168262182523766562203713432388939927613745608158136931208193572988355830107455781841203508801965863397184159040774391617986897819498381531067550221839703109179849472942772540584598646050865269773666191778905314446901027232370393118487135681137348009971071671570226443616084561427206378545853443192518261145723053395642306511034716317172759670183082796805564105366975613707114208874157429957223219463174549263637729781989831190660529540336604537175299028157305417973448676554755735865956072099409712922561780787754901519740828738938744897486266766081175693519405939501161547274043494569185873407347930813738349729183998765138750361093060932232474581004711394157182094871080604491680003105152700643424898703654497377843547748347545802069760638923625877056695416852572821198070346154614319450414321261085130468419613415898813749233984079336856377861722668614672204022997081413533763445557099899577970286566417468863703576425990650623662751804918747547359011698620703576983008965392437857917351762152850386011983975368030571743652690096354022074938212820156352208183066177220536175015437903914388554787874128613094170856610078829798667111891239017833131555064009711469252472274573620910387906592316610860566554819760633239575040815703589059191032134013694464882953609715336150218271627620952343793287270108806295988556732967456906499758322573421395470712868043338916176088423117773895654259458328867923602058294994350237619729530829874748537476441327328186386982121215771769440786493335843990728236601520616875413035806244495800825304392104726861303046331011340046285694978906654130375122639021214014641799741837188901154706305383489816701940429722008871780292338421686334676234648972161609916873127707564757323070978107505227493458534087710496299797284440487873115083872685352466501777394527781445002228973832942182698408018041641081867741354044443728380481030840808626370313735809557274375359591753088442556279107966109402419633373312715556172945002757049047062528201430831847654753625663741720580564997406867966824235887177738936011786780002376429972211648203360802042696714455758968901661551591071704706706388942135999413106437901109383724939170374438183438471898597847772919634378298004314264085622538960080326993384344829467596004484066158978105661419016296580733779873611540570844261041053916888761632727277390770382590801473048155679197686081807475379536046117053355077602581151021544619082214488264515315693866571986301474752045788428556063100080388649169711672119036162458307553837509297676286113599930038408897615783888931087920543215527453135864972921311482971767558086638089061147847252675469024600472194018129235481024601674052739620908766404793672462843708680296760781606230751326772989137294381667271861297221560145175053791582198660458179884038665369082507405717498355119062566675465518680194395877554818403685241006726585689597547760428530156822249007202445318471068455895935643988311739291223577784573502842429736861332456445009423287518089011634151766372672762252699373004284277362437758169103861843268179920114220234301881876086611354973329257174740188101515529304048570391763422147220659826507437941522701675317580525847952856843911020796166112529423297985627060980732735172862637802611452473944953708764071824041902733692181253215736118702481311742522057406294466328529896529113344673788718147002201817030756739993661435347036495323197165537405814487670376876536309668323868401345071578751636301283912299722247315307958584751431408779360693807577300791416778856961724620109019646721226181703283854600182712939949740136303262664402515624649373971218059137873928475331014430080548810824427788479725314100881787202548526697422563049363893049120047639106096984985939936041799966033298157862892721614022720491486174027482151965706116150407816284177067744399049618741816300900370096991796974192217731884142683112406169755144491433493682454625381754133950948965469221189016283622658912832908097612460101837871191786269215036954771908524605385186814760581885998764431061863222426583299053312026925727697555699138264386004562893242102040929522410391283538098909267545317726512014329943479912516028896808526467952933805831065668861483590255860724057669460832584268154118071056509363967536547624249947051507028280769625037220312837186466730337454786739833339123731711870516136478519047568027182527743283766207714671335834974153237446662414461256717878912581473450179088303877403995433351806592482311650361600743347124403102818788798331361589336687632719156907522458680283225760004955207501211292479985684653859133882988762011560222897241974835314947242067508146899316858674712535353492399933053952918157387925577684909673174324465458663022213143214185948453274100358500374449517736067255602996173257136388822853353239353355129204857971426698639018906382735120497859689918881811701543579863922054670535570010043251737566486504198860066900785950697105998928771839362321266710465651885287365447936285720618295287656527795638398185147796738264674441740460199712725353910889164960161328267473383654985021901330434606694494704744254891929899023057748521236442286228458593730680258817739399818519154832722062954309675320137740123312458906765498156700996029020866230600031847227502750225656024240721069175211103097900588743249480805762184788895577683553825878160472987744737233019233698540517468183325102340896234463570968381468480997050889074599854487261170576315467449812790369720055536077510166029934478544618081224679889594013882144826217510576474155024225575989281644087322926989488612008402035454788684350216446203200158142060808479027600387585082645700515713357013297433263976370125895841493767992237956191860292431229816808996894881827522217364932511279153388723137069832703543249057413059204792279997784062730937048304953749535352172996040471554666532387758477099538957316418691030630935187389586903854596661134767482053428853932207866579672431731138718703153075868013065628999442382571368795559601124738171940836053256967317219796773556074158671590099679736859575181903298478579194124333462606422303975413737603374504290894928727981967182711089391727561892249763360006421073138969659592146204565706863496545109882551739232453652769293591479508776500851353511291430517675356905632874429767658216624479725227482415427948974541253568384650686985569376391061299592793690425160376601186967958398977181252923013550806364549167700328771081306975741815439900073715423271428990378844525989078156742893764975412215610125545183172944824555910908379977122402039103434616841382647519983315211202909370502333117213797395398489012131845735097259733308696546359805426471918677698658770164761060451894291352084359003961725424387056809988800320114523678610511034844030624871588778353988837768692611873236421190576109095175669433628873918525214539636816522221145703310952302417398982075198149582323411532476471380328872344149173857381092120636556684503382118279438692342021548982531785012224879896583236139967904985023862522221070288650204770004548982868175069235581584481358689550990361897413405368721575213599646584249206169541733445325710982559159904062481403090989251972834930093138340461061326379258138313471201907640947597615192109464249437013344025926183835576944917644358564312718416328505284726071773087307264277513081163074666929502420932596473627771993902936485692698572645112077887884246694960630327250806534231346200310812340652118310805041420578289542817965796642567557310041884533586621432537257565826010332904358567127608036293846467754266668087468091399605009978911990364871981387771023885082007175099878672098586022563120155612972413729391913187191341836488236828998360062011170393047935144033311818529559232036448428031021657337886925651510564231852125996852472928525228123193048625009702671547432499060394583496523627320123649089583728109522880919579447991067156738177021873960386863606633953407784996008114616859495509550243984702815481675039306632040063641091064275243971618822545208100433138405330561262210437296406711467790070019890062994758523745700405935036038567478379667830072801855084953266040440385194974868024351989946454066415741592791420481039583259709060134259169082577037090165039054633299256296362211140761129165276599703019570248354828636164303837826300937047056201447116912965329396405977071768746247122851908720147688602840712425370120736977206245252807693208288483190363578531391685272917443920594359707796518482158564940837248987564242668870195303301716786603117195186912424743361937066699198166436586745065578801494178476234950289601321398501753512428673862331556530428809648186843072371282205434538652614545599571637672953820664177273549108906951369146652611945897375400951905514803102370265509066027654066055637280029971438879511830317617076050033413035379872933680159698706259595052176877131361253801585910903883282425245683738492400273593076332452628249249882734675633381347075350256015202778741522081323257183889739434189853451242782912874049438757024565496263157618512261180747428969454509175280823008313935410854766370945242678728359887126715144203499011045686540460669954811506549833005738087163406333712339592016406541048221312923929058616365690172238395827405359305573999562880427849089175993406191546059613013753351950923455255322760843487416224258465977887314620740065665318980154453853195198208728060005289299141081366742754296707400214709098838711094085669727866631749232068512422209854139409902311296430456542741470034704098946913096756982838119049874532435662252170002829012116222499907528369574263876165850330948571243847197773377591230212650319116253757536403614814995041639965379806428608308474971959082122660430508672485711819486823244947558859885697879304405615548290772334489413613659402048556506904560214678632759120392821412275252070186499983818671490052844914191695867049877311934851484110985087987315561989836346587993343772103362200022122757742899929460764655337120146647559988471413898707862722420653353569780484872831685655414381076628334470014216847078959314133013626203884376759382339044966939766560361004417785281521921417543445036760176992903401751560870480886803071462015595675045904876977464419111740530564293760877412265198496662196749124876879788226557113456012606172126043322551767492727084558838842287283101904798539173849290472411930848868929962395962766708300647518133588677514103452889777728987559120783280500710015056123851355676084479837779047991754558191839198028077753487186885695484890091810500146080412510135440751993613669155424316000950424259856367883026939818632456038705096852892325550400028693744158451758986337657148363925712375903617338809189484059480768368199601898737631435193138166360794619320861110044965406199361604068607355344952853243256415241472129454053039204496952943290301686524214475255945492207313618568774486256385423851245386638063204089316031238899287607399307848917705392357183364312785925743379971710066657825669690518778194676494489750123887791959953719576903743461564841642015069885062397653977792296232579189863412207565446854348405085346267419554379603694970703621899310959142926426525652364292965321813923688843303480419912838624351517741584056266998510508045208866973002382647684977036174387514053945527266646364531394673731627622143353223605455452669051453307258513149253057983565130584461259771089467797440776336122501829917832556751631961346475250346565888879120858207217981687540727134168075973317284333874460931909341260855616397026703278934112773510439822224455219591766687468215806181388476050684551688631166808437040605474740923298616810305499837364552314036902583054345788517778703760531521013757356362333092708308928328816492584617518322908668872106987381543055463284800313527027800211243267466612556826386648293546747670121750795211677470781677326954760177360008052297075164720123621808320511018844028887837835311095098934793056128826191595055694240295852596626759077153410428453598716034998321329229293296039899895511533320379280071544199772535442726684460254686079809537698882354898003621628590552010444183242756944804270416801444917946449827543293483375923808986069357831791695916320047056526416113242525951170893346706746369618479992869977491741103110349655876587402213282045761748546549823454542730659665139534921083406395657650290460735200283014650328690846459433930366110021776099926737310015901320380197601054983930925714534171320098372438169202807316369984960796222069396218047251563161531718859350389748823186298303485805160854192863425924970261566784082011420589282904033105086531358128303148020950472547314979410871427583832685109164544798077069644791981380057434356525984031103981360952282304178863155476948836697020588748665107494906128430617439486907294894876546865683506003298909539464842538615224168967143077680734276275798261669985610046221568096700671992566826246268115907719955239727712154188191308475099747948463909544460006934263597694923628543297459549660992452176914725226549238844390657858825881644041589489644012879281497476345997143584558797435797750454540865720336081734393548874897260014302698388443710373143185402653850252607635228950525896675319596692925465380750191908923460527250666425782898464898663648422398978030889722956507076960761951176860129553480320803152244124885892212593611772662504624531442055488207411234183423203410700883992509744141338806063969276736989642662317827628851038264916281744289910529744808290497077329824815236824859007783986660676809782975461674893108722094250523933242023672041939033274799633325279998117130775235708314622697472965169688320048237739554881205514024407021246950213168942846340106392011110952955630819839471091570557701407284057482896667754775348798772320408568685579785816384552088595547641646734710694084822363226309077721716717366642797051260722742888854567936518271070291899780414510529851926227092883723304862515993541339102992587233382942322044783964790458397217063672172317490033033162800421571153524791183123900694602554683531231955097406495509966434811401939421796872431630551518840730991592147202370031963914498068988513979504638755162790262041923756924519072414183679174777918154776310674061276443976490285931575310600179431433055461385979206520090066467912802436572003334230727084967700958693206266890126121647048239200820695940681911873018371974839844018740033635655446800588420179945268585561612293975163078071491102558372289806843579715021916877645061401754201720802092744244864687446616247294482690839826238996327432134171178118850558880441364974895448133141474883656845204145837701471640221151040423450851627581695034011306573721670210773022598380583531471470831721226375538004123633930885945336746956090860453812948269594873327135649778920976198461464482227735066318960681337569473079077318219666638014505454895936600648361965305220096209706063945603393568130840831590372919827929394506261726583013942354960139768606622261181113793324531239049981562887895731102493679258783284392517075821614228777165443664164294976817187403074782281326977415599972721570571569242790447829343493159533736024892549455114941669633909582064136638138371487012080662324699265331149320062791539267532822167468218153783790252749402520072139923568125943248936756581127233906886073623830321424935816192437784773849382030473676803728444597650262386493239473750017547671055508974912379649885307001106180753081481659366372494453549441780539791585047536933552566624217260386355758798310616229244517015898567671198544075325759497908021387426901417597548574543265086013592783216347408584977658124810666135626729827804108122668151470279463926455144372460579437950269003332275305280213477590085106186166094217708901320847958611133376733807583722368518231719243575044259816601434337607328964046589792560676375716172453216770316748685827590739701759721327443708131251028572028652270217973347458653712184642467833150899963018512101606099992971209537111164239880541132196010201160139048825138480883195066434996705546752620989714770162936792602000544790288826652308122258025685134067512161939010346717196296092273355555158939958906726500287839459125462631040688032339970811732141528824715124569827914292797323210718749027501110541531212612505087944112299521960883108276270736326975400496687651847782989336762306756729255926180240309593963638929108787637939217508267933327195458257146682121559350088868700567839949885049694731668934432505561294878666866963054879031116529668924684280327093087170792263916401821704304747629530343840404011769341541785524475293458566840076608808214023437073792593758829103347943841687718724288893491558628242152244790497904800345979971284833171659618997584288623022418270910859842519445273519171480693711315515715965006801402263024333995567039452510716397539755614710818123182129491865140009319392846963214264280124854773035945705676487951805607470389630837125856119310891515217756515006585920149846290471498718906816743287929622004463152431466275250029569545554145230790276500743740612434619719106528717255504205583863207141709555460803443479500952223157728338967506001293450736876492423500732566189487172420339230641690924887047841906473083801029005747505970398656164363838400992230435969937732163544402612686681783688949662885269181163280077932317132706974711479871027761880397747123450977286349188327121339418777501885654121046102824241849668014462575119009846715008996912616460609817267261962146414658778398130999738801612004357193241920228211918660420582707576523786832851227787356528249203911087762565291515092744727225316025541257170364416893750604126717914450960934131414003972366221011250225067901488429465164560566191302116406104454057730384486301160695984283198619043025512334973092730806371385368574212772208437409809302954765892059792877014804255005509935436697081484296473100090157714651093664103442247787449845648296232300418613088406889232502654976604314834779256950912571094866912411319057894157862482454789442817689687587266559687730495491983494839712305411661186822512680339063210225715391241233342337614685842397219144343927023405551588633798374145088274487561390243790921580851087627575812856976258565699436109700168854719438640938322135958538496118748775286783667804701840310807751270598537844125667103437812723031000182860782128731017230716539720466307442912041905430787183517963942719941983659641667077847386824082036326197676321546611149431069513390758106427555568157297178955974775198142948875239131656680138706008588097142145487538631234636166538719783042770442985023371321783439327885632229287514706108432269045423093972475639716607152857959153593832931538225959378414276269259629788440673972029205104389812100531983907824119129747855676621386618353702101480785603521554510701503418153441927551424244201922663362743710840382822711254285539090464296687992717043919656735448161571456898067376259880876559142345315311905190621627256100815191638945277962523988057721975061277875164824449625815649984492396109533266686968951220746647046863284901600732673359944388545472114066049707273500725127693542788892719246522403436540426786221201345710257247044691986234124633063901835383278025341738012196690203412865470841388492930014329928905694000674505314951012094251052225563008069976050109917549322048973251044370435046643242919444388683988779080227958640845605523916391148305784852835267717049488510285079612682287420432013530069732133267307718885392158225325714333089074295432409899893720605266781213302728019970744035171810944563763275479934662216926347567457362655696072602680324522812836641391229068885221832264374239452740295198335616699279052203012605932923015771905937432441096815891354089212404060916304427337861704894125380451360611691484115266996414086181585015442360490688439102080048221933277651682087445578763039342959383760357291610728804140517109444390783928175080525394237363214798503660575081590701868854914542346145469846480480433830042815633248406944954918337335331061519572885857144677717498708128380271082145343617334915417929385107205214277743365409722521519383854457627038370605067589712875871266379061407096331576907236093963370901577684984719766626769708765728023632600522065751023013695355212787112963877687664000442004245076428866374911811090165938559029689927042843363933525848627862519767586397457261593430014933778898680307049666461561262635543520233032180937153755529902242634855006586460778023498771759691455474086547022551455123464755212205761978826149004521337503478536966463050534682707078498462649389591720113732209429533958058073768864296909021050799850030753668905986160727974811157433631551516471112433966977722606207197075309897412865621242625244568594701236117342080693423747891972918275081660947212719355625917430970531860944516516171868170525416931784870889358340895408161852374733209451272231101357746070599081537191222489396743347552807919465039546746756919178842080944353843672708632361713271582669079797483459798190947327414844479066780351449756283255723790947007537681701873018156364732875435269145124612709093696992989227453652127273944896050389160864013558889714983082124470672286361707673435446846657686134542118836153981657699200143828348214480185269735363064301543847579894892228830207042406583615939655503506166170487555770947825627176515586046324304257030585322880381412520604379715508789771227434874760758023910484698883154660265520155689850538901358205671156628723768865931100216170681440465645300650277616206461074284677278444298131494972361904430222790484497347133177745042853203762038467967701347654026453202365802485048342698166264015786918099713829628246422199915495055922562602471265602585873037302606206309869520424338284738640612354581370923882142210845664820496953369547824787865196629134985829205830780152716178637157341342815081385886489270049212751889648876619127650757254239994581445479701030922254153781347450195204819359021962354709290824678831656106320628521240996914458054597563714039062540760326372739668967461754804221319443965944590767449415170576410346311653815762453983628372275726990073165582285484855624262743896653199432982125173029226567754317348229655686358377690822840315693270147858125521189639011645447240850135391698864936685526839902061562327274094695904755041904320369913592624254523341260560349332840406187823901429832643088508799927135262504230919485973620037520965267635090543118770613575420712674067122831152839925012535141405472752148809597519393288523482783716710368420020606831477569872655300421031078983199023594104798877351011843667938645881193567024359798670379722922024481912251708956841637334858405847167742621531752209729574584850673210076128476198187816981710728921633697334695211849019765153061103144959938774901663850483275862018938579443919284989156374458931201400524645631764512694159416610863185843935443858229187693439173979249507038549325734226047451991346385026672255631803548234855315837007367618961703079921970464539973975143559410572884007028550035754979096575140479256084795136464360068659032724563310187389013476756092013573572130125692064755564272274641204183669802956684789389461286196842301012384152055509050721364915886954944461965242200526092778443277038521191914358682033694946340405263435823598049350052868177429290560316302152931147867747849546499015565415542677037838704941726052217947910208510310298126270424437462533843431472115243993671585297886748488578395893440070188080909433195725867945909643086627222179638237837003387154195024931646947279019958542227625473023684173366281952266697933460197951594934115543357976113594156970768462555988686577216495305892462290971624913247345229853830631160553468966161570462474668973060777680873629022940215275700249176133621189163304178254920526540260487980525168253265320038161853539450190495935532792351868664207858484340471228347611803162919211112379670577931364988020867998185739691114820643076848717706736027604602763607713903244183523857348108349340714507649488105643667660555170463872258390387452973254949871370604484978302771656850685901234945172947503893042370084512724594750045560784714452876914867568319429573373796337596952883442794898170086058462558037109161000968376679774098299674873224305032047293601283370727775773523120914722157036485401842665253848747923232586129464628865402440713509142027272679949319055835555980550748444063661077831239592301971314832754578655095971309895833988022102885330895189296622214310508434994042752858065379539612830566465094761795311713980811737690793096500464457875039034886988685908600310314195620087726769645111059940777951589751565244964100618228605246856233735083895049404006229779808465797010120512526835363172192190191422303375526249928006557377116778473165507936579410369524447718802129880233514927561177987464058055117296923114859214312950916467227257241565208528779273703759312737301199752349836132807652300592863341524786342564505300248462569367403525514863739071777507893768173181215063119740488687441867123193449726259404545730112536302581524559158998316663281079411795227882416197769026206440667249750753288151480939653348666844487512970849054533208846237362560203372718223304067001197891977686900489805113034947136242507472399753397228954465810380322279489364602058678154324777954509876668854618897720506405924368921348216254884444449884290897576834051343157923103193067343076483882389463817388210294180024510075336698145265796744140701864790338649649151232781220933978845854466047266065171445486708802876212133861404594875692909865378840533380267969196572630330831311924306137137101976388687365266443650887518850007792884117001288356079794851756340405713375735119140239364782322778828287527961286319438851997599077575152364420670955933028958811757161951566400448156635237529874818693004000379211709877184310993088566572543886986995716923376595813451427845354784613874528443993367497113868900142561667194330790746638448205700917997062140895446448698312064044173037783436661903192091433816332281773432310528160130342804726629159315631041790381714993286489086636241979490430035135090144683559098946708841910673235699483529683056712355285142264515128778315728546761422434845595967788348641623112362931141265834471202735351928737648156638627409205153957077845448189289853531793246155143008922765981081512683824310349417091440284179575579280689871225167139886986557195942771320723181680159747953386702599945274043402548564026271977318658069945780736068678041058157392045171278398070448796439800136929721515458773445070880819576710198565779844975728006818105505821512551568999319421689829053626261823748081829906548709994265590561482689719485961151736264638184785028189768644423236778331545940933512254981603070235237466465798861443019930163144359935809092303647853767446393068932580755345590266140715582621880237643517925977572388564468470853900616578863870902006424268838485768040285832075526359829992860740610185740794129786604214294069760065333976564592320776501988068471820263379433937869573966024320836101602673072010860173470679169602068567244361703012283000134022743900706936577147545379161879716336423231453262366221423796886598122939923550753562961689099375386287165044378008341448620855503301086028926715465489498342493856794025027604928811183370602663733309553984287895130239483770701435886394110392580846973320996461913555494027822597575003067555346809776378619269025042029918422478962702474263174265015006038167543561350072851255710218976398021589768232687921190967884965455217456957090437046986411962617584932837883255823510028183986253660447726399562401920569871976409209821410511680068545073809464851923100753706680116334687583905095238809614674494466698798924651550794885369287475120082664989343840481143088542651182883069172290626868024369132734974068235797084187262491139197122323624587984691333608343130408148236468435119094462083064404542953539331088498806065355814866404308575759907301408562910996681004973409234997021602133758799599187506700432917055042349698779657383458009800193047340463896169015570225534670993054361579093996857576997255760034168154047488615943227576893713078308143488868875114806582312467056081550591635824442222163790254831310442270682970056298888095712861629958403582823021595247407551749681653933532718324722683874471814948118284716521553526356631050283981488025736083308782454910017849555527875059715367507023677541290433144976759136595347011782607246806476553844184778460239025090453700300112740583782856913634034211574839427026281770163781826733102296784286723290100150737367926669480226796025745009036123870729457511511995698167600674125798099776353278609805702527755882334870304309176698494726099334380217743823558768804933760651689152017723115837073089256225485172850282536301350393550978956296805985956103777575850365101306164615131419390142848258786403372753413618599424686823722832747444537591976774827271631871961291395731655079537371598219448875063716822336978669431643747267591641694166293121320300112970583664325944955023239593151538203302533810915128747808366159928368100301991069683034588016399619260801151503118325894704851934750517024977069808105089410352173773418459573787438925633225118243551700049227192296641473075980413394905926573346756560897933298192498164820952315559884024069080031755466160739705937526448945730578685631056743133653221774396670048844800693423984948607936292923036418738595140189320972729100811661602304095612838298115319831453217687379622137404647252055261054284173894069194000290989665574344680900814977259363277183290949476645636055581073671650280479210413033339666766915997711674236685924589745070469891085116017405266192292913115835988391567334981797314258986996660612598300605450850762279659813591184771668590557079331215797072259953147350722610172487124144544828679714934023879113101192713418882485931420801061114670791629148799663680079483463804186767559655322935441472480760006982643850587885006446485181055347043283894287367503462592980265032869230464273045928039924417020852593987200052128396296017120280978126172919281597310823834912278155890804174908424767211198428460837212109897705249956983014694273582437112988839631123692829158573555192482454093397190228022278217456681374077321825094488059745841739526432493628268998008739040858460475508092839944412912091854702774304287762272650338439904978520588631281988668872623252052476857696024520468629616431846092088819211784767077384850043390432363587328649710864311541732272272015975209534024826931349115545640052484078195959734256211651660516849980325769545989190963700907459299056589206085066523411084265387771049434786037758760018335042143294982277143869284061708910560716799609723113364863022207316017540779379464802765298090502277947493775292949022247836107198715192391910090748612053552789251632761481501487522885564929084106046384432497467977283653620220362137138800743881682241506620333292126768665694612267506952537326887353622686974276866743079445143729164022802623232285069204223718179665089661703247712899557033725375830608321086066705019736815102595419217939033264597603028291491193953999567560107960702313660966063627664483620254109765105791572881576484345156409515279223633763970957263117260792985047177165598358047192042325234451147429877199593716274309032598928992175714381367067053740393356923612543897173827075854885700167973377127192354208769542575753912400664677096215113745166351420078206108908380652754023526519708480141486848362086040254677236685483487202461255948399325984630424301371025197566233620827875796110602837386257401486100847073372938116194083056715130431577166165523063644908776319117384769116150567272418068896203540116060595932070420738072972595571905365385079258831076631840242663778056728729050935791625796846710279014753132902737336461216981508430914610275612400210749973572542825394191084801329036706329852355461139232468300805298006165396247663377339922770450373852961328744832843226061800515159498576539190820841977686634206353240360067298446009605962738193265171205764347103199796718211534221556008049628332199315382457472138632363562061080477677280634974039125766668849883550277070997086884946953536719083991573117056699395155346451971092544980780042152733115168420258737883426421849600050631328903032734114800416121856391600441852198524700341256012637433833996954480364309055031395612360110879912214536961005978319471011644702068307597339000842250345802298444907006115723067364330282493803024376173035956738144657578072848791444155537398140568588143296996862298198920676125050927960053911311374458641865569103920136802568947991778130553330971724140498952993976171051968566604836641442153227772681776026499474777719477566038554199971421414908316146999222492297651787825973440017536805334549606357152907002389959489235135323155239763692897632538293528518638434576001411992634168132803379897727196748605325902023054775792070587928782732592326240110858154125756404838509162641679803973728342778073902623201380969174057113144222195225754756567811956529921822981653338613277873381717547953746417715329858350775509025591175756135732879332623337545785487892696527638752952572635564866551121433063323864694360443464244413123202010135154704232624322782419316736031241877061993553482417576655456626823505910032491331078093898828152196007173038487096762811935394403696751498016680621702187122728843174346659500521965049335244228465212920155986375190270363305030688244923387248903533351557570126318986924364761232752450911102049711721083829685127333536368254712996541329843708408141001655492439552014391593715756426495612105927528396545027980551626005453472075347322376037551538295178365495945811437702289600068793595236647837821084671154557995695643720234723819417475361800490923882506096859930626850267072042264542506606122429036991665168736432821535708778347130211646864429680840085058845621628990731897775133085614093223727208636152584733008362884470561533166252615816067947175463570400840412202828931940376743820985102496664398772959459975425938286803899239354886100671936519337645199006398459725374145156782560737233762168050903217649808958290576249328504131977109038145826466353783952406196974790904853548858497826424560189980570504053299343524427669387039243476408218763274828328299151621044746492423860664278348983057055496270519368106624024974180442533501508892091036350572018474527963788509054352300737334186873538997395155048713977993433465983191766382650226003379261501655611585752662193451981282083226823465089397599933947064854153923584340293886597636153586233511749228412548046898677641972942715624156138900498669005810517001481754675379047105645334878985053508524665856300344601161804947134246084558785802429412700484790430421955354662595169608852979557960303929163438251893606204619933840991136932145675228482329001555583676778192456514335364187232685016285409204918552764366448066821896748452161226232732181250948906883408598692819445763565473405321654491191668403954625687058715005805177585061552332637877341663428111086796142514200484740260247317516870615525120417995529135870240296460413247680750416574886222906357812070319375943880945404778551893495015833520665375237429913273322487257170581136025212863997464638530938520471114243037864313858891146676598720763176942395120913564998609255385453941846981336197538094115831809635757130344702949747088608040693139257361580950954363670545260335515968866734572785380413388139905129215968883195039804625196186563262136471040869168293549503563343094567184045097076795388606514806821240786104086359817051275822776265740754154272310463457895783805474835818276278126990873600717724435842472686650122903804374263994274338075199278371920799706153136941603317589764416151333448205307066046945971752770737518983129738111749402329671204826875141058513224971135035016198897735271164391294288691030951343309172323646947212604188566795983163815728930089858320257334934190696420992427172876224570665816981491248171225272347346185295751089076453478476709324362006849955433672638738360810472139906679445252670173583766775204436705078474640907139456011697682225568240531294503225254985015118963084212269968287580424103523081717554356886631454195204582860334684558763154835957474985327953329071440544915128346179067217370236636769011817588360053841114026191053552064502520095161492578554945030472869567084479310447959899653195958416536824553141904408687796964095364541218354693507167478751843853714177216178223250251567867309679531178726202553337644416376340641229568892841309137728860712236171700961556839418501900885055076295694770400519150135134141497281900425364037947652688469953208597279601954682281116960833138899610701123918283245929066010215850780989351435196892911296078750784696290479542732134940494214849513959878814488520370441996717008854115094179597808558560065822323020215700940487914963133669439399966189171966973680862518631057524018510005241002531469305280445080657595962547405258056529391491627278441979881032869309094369853889025417501706191246168394740805933993964327824693160113522079420194139042781387848460049084993509423780595540503476701831374305487551311742312491930635832169611041977556200849641074633489224713676896085460915369151215816372703756080047974041754849058788275023948481429173779723725621560166035374133213391938424415526491311921812064193915129494967253844823430232017132274284101733953652650421226167754951210879282049227667947042011662652270527754422502655575180620431592129975392393765753449356212446185469429823135106107719727127386305696499032484637455851655737078875879232644881069188758483122088082349271023282453373191363829570041622488820011675042339940717193822456208493919253397705546784062514741427910337115353019392561103658520431251192303794974999872985737043796891490771001180164968546612839780950933095098148109119909311992852368275166073265210142960996926754111332188681487495530170180417857604339409871575250245192968279613439318407374483612097022493369746356000764425879228174031067953458949352561151290549059577415956493369103375051972113711697042156467327563808247400121578240123433593982915149387395854717734233173950408311728440814955370176080345000304210456030360460090330590089464524776831501986780607796027090873449463794417560214281308070839160230953871022341623690952054565093565441969205432406275923346568853365169049530084541176020914093135117602272078495460819692936412578647518367071288202762092001710011881067009859241430922280881265265436968163838431275282103199673992162354604380971599826339756563979719868631544204154345881938053774966753452343594233937413941572375080328836949883179511960689382685099834903661917510557697886261427349564903294940167725941253007011459632122567585433974782687197792444667937892074690020386702782377221139573661998394676591762406500857759677775916515944578509625003548367051510148354904855841274788171683084314922535578180467590079661055705544811405328581296839987267000936028354850553707250456129095372095653317421353225253934056523561197709454163263414622509157970338987185621475447747830113495727907146900270328735036427479111438610313182120775187228300934383674758782981314249174356391366988624502624876458208890040873045064631310008380420419551099092032429007448906964802574076073319187329724049942031606557023119029724932880042457413477344276995671863885679822898849179517205574576274102771186651926046929045002833971759671820530893232168945697526591139523262299613634886242297751218582157971794942665686933597432066152249431105872866505977491334386382705447723365113201271629342399884977185960608464146332186783337851191724297163938233385897154714502581024535336196329043523398953590099963778600861377279847040751917150796380417393961275935000145564809447159042144702854680491424750578130425204770498393542197952889360670452786860942200701853614910688768022379757448236201850090017119918395792418790540557277481738078595785784609225998498052687937901619078641021401871953448370544856171191143967799595304553369250012654201099210418742875816180780303504490587617307527454167026003100106711833942435331831559316883523829139504041803607697139105178748701072182633127183627902746472718897080637564148559197377790520996765852030156263009549089792991313564426451874010182916584892080806880160384837202225429927386742422497497332771696716864935251130216257336907401688430851469345315940386213726962456978975898785374639508734044273954659166859663064407373935066412571633057101619595520321663882123887872709116728125330116033147506308005381212892436182704655279788428272782841646041134904707534362394031813413088698672496129006959825980922441720084797869244512994038110014832344678110676524670614222384303601437097246737312843537161586910208056398938452016331454022984278501014167439966390371917689853376169884116780815823893141369302212955472887640043079241523864921932967323348667647236053210586147115952553025903448396816397465212841986973002195870959802554270378740629057032465715537375255631736289296293827810391896291130666684818456776484631231589738788063147194993629857403212112009547648482359280509808433042512344789891369778675391263056077241347708985711678763569557437499020822346039451629467888160436046650350693418043453232309386577218470549866891392588749089845068475055606787228944011408382898336736697978961746700334429818486371633735619742255486687723389076844852905014044984909929875488387352051034265383430661850766929228776696149697429797815908838691051929497173141839016704418694851660375532462138830071161316783159253174641818548679170210139144943702698138751437817515779012122780409900023756088051181930211173407648729903314872174593790338052983895296504367162833373060810233915953413389433059969366223274099554079709611895435326078228923683106481614406792551692602669857847986977076077183209272853490193421452088666860700964354600057773536388598853824802637465147547525051794638176553761592101296480789220887616919870146097943506836042345108864153555871822982226057512991466607061993985883993894373009656415574542128976610073710916493123210488017326969447116825340503975484947417863290337295790550689285859629433477302012948533873838335740308753202956952012191127821153377465442855953056545886505989584444166154859821779986613708167993604769447111686075800963367698729044670795085208195776912131491552094563045790723314866122758545019973372942549827418808600967151015485138612677800472876698704809209562948959415433678305823216590977109987034767674011086738703648728462073274744476824778385851145562145779892211010362675306399613596188038647198543476212324292663483312068388321102570208455560591435144861104324519398357241646497117620470452501743191242347190154092195815841253623664576544443760058225981831761208741915860707643190856463746682686025998564517806800142169510004458503557630135507509260223260202871699899600171449277054150957409439475619060478352505169320392650924388811201954902792191730682863455368137306905211474668579087143429144035653715158070543549499623241828626847066837782112706659986278055798231395505854372679037923606747673719831402685242731906546921888197500535390715654450313473280962841514123366910557121227467582044978783949663115081351862253311227884182119275122724774683538433125089761725192919449987066275638951289441248397111566861631089976976602109375090549308429382366071646435024668733419272157049863397769635690065769870078109333397458803267208157601254848146578097485227980246407880122487688943909679016690180597004234252513506569465862546148054173923744909242199225644935970797901870780292304654790742576577185575132356405424459224613075271462816226681725074554590909711961447247028587286053619596984708704257457297902348947305970358406564251309191292289151147024418179968820200230053858374061894410675995492978788881445766942333595705222996946886151505161497249744592267820963882451455963012853737665603407337932318400494246914225054962796027631747116356580837246385739526994362898521425417476011487287404785388237074922122245219123615914791178199336350335882835462840383659941514776001989529450230002959714238802142082163612070272914190734008324183145589746792644680161206309323174323848761024075480489747163248928454091012774784703569181902118325863200009759080054774915547080699269809577097851363979832141523841569255963917622980978554893244069147937096755904280370127133658631064308867531140646449377785902047067524546686838349136131771096382045971505208129266521508536260521260920894038200083908043751169900200383946671399015127411366098121695847071403097956961545852761407690429913220158483631722984295661878310772883426936010544674210327637740357342471393412253948388559951537204985497586190374171181337706727975659969048364506426635573175503890028230230066789034671890808088896453976006729296963972743091103463752436809049992912251099118010129073186300193090652047428991083387825569134474007665728638595100835424068420335252010124950468812555124587585933524277388095979190569622080332597114140820806035762965499183466514843682357326971637077835993174290602721975565706453539953577871983299013390858757357921463376523173471204272669220365917021450618877822986722404106435074460681816765615656065683652490522093972003775461421209064508154046448592109256283780752524732907593300716796198981968600049140961592022571510386088516181253229030040504448072557082999584034392352851895430532124108668671116427147445055013689641750090662675925985733372082327821562049344154966216102693387214103009258439276137059999653336078528021782024655536587468931943797285812284139541547558800474691465089895247398167156590654793787768499468983592749807113828792993526072223560915735675100946471358374517714073792514616423328736072956190102355782178790537396462919371617421335644434634290417478440460534413292691078396443335430660637992885279812892896906164950189408641844384158130724264721440627701300840784567789994278138388212377092657517566444150959566203775270836752105043691233654162445508524296446157888348884532882376776928377340310110677747159671889950982498037415486422263216542061262946152561175718833069789568768909269243688974818178197486562074352675448652533043068449356283729701384907568966102533362856971601874754827106815143355981540968029525573273081947866973692706264732368922707576434824524503066904401984012075736375162012878349055702935961993110570114198251064710025769075442410283086863157872399449091380951599889328046920358814244119309099646558150034299029599977736009559477128302608693583024557353531710443871349319750805908525329876068412905813644005871472779101269629778666179413021343539275326504281619952305960454225499425212148335421816851157381212602518881557966473315005314533133089360601752654093485802984939054868633608947219272081048497030992979701996672890949406869736668755364973548858297604770890064905812510550086040536179846833996326927235731508567616249940534718386184864637906157748852070262769682588685079559581466902347414774641707410144148816860046990419392159018088750262768311091335634611691120046934533495309267404417379592899106959647988055501100775637453725990165077256582439096222909171734290751183738194995873169150087372627179210358461317971144898612976405353050386992529696529591819360722759548625640369458992443307938439891353988697502350680301865506396066826926876119198337173534110335984619417395742331245481908421819830868613393990289455281143768493087850557296142136220514706070598498596975941683384246753270085478006793536416022438127599993399929906506230128319036525583594967042247679914156503957613514368784581998353177652155199974055414780981977801027303467643700793783191791863629737714220762914381673258913445020697217622239404504092506718123877954315229856212494147144070026165169909023982193286898731999419877723840716278014402344323982317015603000431276981271555144320860300201975790818671339600446211621148965432364658091668759998578524792631654438048699567785781033993741815531287620676705877035581639737018705405380605540618456645786101993307448955388924522543283732023431849981628008694566412317137660462630236188068582545201995467689451134283348554689157661874518292972190691425318748110763106438180119204457013959357415378245493323613470056645957086489301173650294182725062149512232200004168249686680992810772952952349855862693087029075808882101087608155535508538475614053724500213498137712318306768700138114817483047488975243898068934627491814627110511904335358820222474184377311450374378788737374928460962968023874168873136254412669077437274681220664554539292350463430978518792694779765840538675277215773688041849809504366267731702375013127529811832550290469131738221558092437150208467297223424624781619971018540938387467687863293946031990753409008910931179495921152727636076735041120253827057066157773933130213302134181883319070222054010429164088404767080285667978454748146726341116000900816142781005283339614065729152962724958398758669957999032167588713753267515741036095198022041959124436873109970847886137015663664413481888287415449478235083833175738921185241695453282046948545524205849204241128552418799378783284357988774683604771041817559337519976889465039491629114335425481380599174047547269111625428493259201129220105851401597850877699546576464729973948631592295630480406175148403058862134442832470503499443446424100541363017637999737803076389512708480377704274446933685197474948713225102313404619182095799482364454238890884413827982789237656245526122570975193406718485750541894839335101571537415912923966581947349891696591580828635635780791209865685232210950817699604366660464336948974027309336980664794560372531899136443324299934096213274236443833928308910501954775804679867789779150862679295606001327431608952820128008744787384014410154904076496480104811517589219805470868717193632042860105117135251892452474680476026297049425065589095032460373302039076287045462711358535529074835424053676951895729902810215629114560811469360655663589661595074870479367901425133702429669231590476253706245131618110148110247195051142142753819215230713857004011783872094815115847998412337665580104557944936709822805097905199278364234845210147620938370614852889193762227820623293734527438194744519472601147211892985387138723400863628656178327825676134328680573683123701797545175462802053323221630950722814351471092646188188420917563831927911469371048669396230244691750868949308154666354854857210014207243006149899003984685977882279433403527240786165841414663891391614037884832101169884620201284031638523945654728107855083398554505068802745847949815354693135207604198568132538869655764113925448540098694908247445433891097004080545540164331036501306784762487114674648949953319815485266409534492012562206091826824527596702274709748116941693685234865739932246379386886097293151550226987845305600133602720293090883230350708993835369786273126437897201532343542574184647675022162872678822262397041655991541459655988161447927374495900160064699761318482192618232126035847326648118028840875604598817458604617370437044181673524506423238835487855382654343797748047053840858375523076757056122751899112549242466510394834946719560115619911759773080797353337129289060943985509129138406248820134607246209087544918720820902420679458897792733685227644144596423012098881285322309210097113636921576712593692739246856209457447029561267417266050298044236011843758144367725013539788944574306001966831304868663900931650319126868378291397847932116447866868982435588282977749245742304037166806943640618149842198206616878990936932761383745673490424634784051819162649734389645755369292930535266857703924672927026654534614399501868157695484946868746001890005203817325785585759000941218177806909806648095992291583878183362832244402293611376324033665803940832315252678547557279329078314323937786836208240156162562071955769507448963344507688644750832089046315522953778715088713334534002727831564173133237185103429093215215290300243801965667291910961771052216342152993839954626956790523657272532992109000045239560637779187489238246391030072080201509764842598349667169871108094233529532456795709956445283087044050749285658733691343587764526764171220167377635748435797670978488284488900732995723828957065612028200892605562867941358057936158857770775769298113147215416957351734671005735727427984551884017609370010913349916553115085505668663879319673278755793172838750588824761153980046484620379800479356207526356455848750858490376015595278053077928574948538021370983604850154062399973609761919957694432360831586543570568329054761762471289774358450215352201418238108996352613315901398351808658631172812989314284333156377513897044945012154703798714888205901830357141045097964887471212337988020690477154981584729915781420427565961306090082988634370376109266270393938323970419995832910923636689102750229092766340965617693186226064617147772499653474118706592553651329998779187577006085101756277731274567744165397034500427816791470444251818669441978554372100495026294663849994359596415315236908011824158394822928110218223116924624702722526679725715016575678839016159991596915887852375884621953018542970246397813762030295923629236198234229651320751674761708351559022093521958208299318402796875696083070583343137080948991849502032527440359399307681799016206591347750282773393175323495480121215687977407690980451048450662896838619352876201414301818843467327238332302541126330376182011170749562393912888977058887065655730414842280091142953170050161283633631523305567030790338573640996774280442972457552370151019434932501647375629690019667900823219376246569594741317913687702995646895598283972604965080311533291311732509202572544205752165559154781507797302821300017454997191706124534592519657183074206484646336495358873660671327409766508790046195456216979814499301212547834481026903120992730473248086013229420049242624693832778918463931546742958416723620937466891452839962745624227788545411914306686773674683984779047882988736323564564050192341814251357235643851083145675371080866696464322533429164930960753243111349597174110885042024317215714762338143923309434038978059410778669493241667343741483884726490468639204146120563820616028266961893365234468903074912819731199152380830391876285570874238382269137138802153775691780018313151352938771924161434567908209609064269443387089305898857271835680391330457679937721374021046824204538331682313103267517731181140160143841255509492588773513145283495594245755974725182281749409497349891474136399469325061686237983526784818243881233192820317421068783755278367302055684573282368269123392287847779512562686673644684943616994772636140846639068409311792404407563337508116815202870564801954667095119458561176707586376944698449705953987125140135263568015706216347797588233583765905838496035987211020781890753810346578660398650231975325416052099142987851605392090768003991302659695962547348891354987703482838991234559985302055539048281288384217281556769056931498338341324025025053255236730839036085963907421279205085972967667886378595988952689514385611005935141322810776761025175999001394307789022483947686179356060500751247696815958432309163544068599822569729846986638492030870136394284234286800744834569056597279319257340920983711812735771231287007446233396868426796429807817177887084562862309429781686935300673759481381215345796550580126818917541599629357222493863793250559163938720151037211980670672477470473968359443528365938212007764933526378840827412332335271595574928715597167569631414230702645548823375534823418068919290400198188978813938488373799938932898629367365855480716998606736611634110527955968091305226174117276958891552445880693463858975161754541467025519688694165681146322443943955614071294279614513039138295891893808977969618620668955554769615148337202159516917064532587776821475021875092386357629325761533495797469449517757137074646981002641605165841388888938959695199577879564855903811040459906723131147624295906695108476732233087555383065129891575720427442042464295715792064357707166784961967097136458402189221134914968013777983461034616043764324757508644482558481366842998817317486302581407198582010679647402478410834402450062652064328802304129502539453809958392728548973000032345010056938877010815245596026734210979962270988581976984219136606614755485342216794562879017689797512273993078976055898175991487038532029359165603708527396390806429867160566666894084330888478938451202943063408150913358706435716014969963406693974387005958321141184356516118214910846292031991125449371168520115344167419604917922273638292765748958725469855831219359142524061248421926451179603230749974296076157565228305596641175054428916677433868429315312236578576696465104669364005875320486300567332591726054406786267792619348555350704524568758885471520515803401291414744275679737050820313445506510872779547571680493876332870921429908585129299060923457122511641619501629400865141144291634360063123963170920997494373578883023690394605756595817785649343739263667263802098932436742004671195107451037802229642827031722160669109294143104406154459969146246334840982916425351535619160891930236578670479153690746306304676279919416452402645970344362789835868204994962978417409573290070981417094346074983494774716168211654795806203003401935235927268883748927051475705164981075529572470438084357527161447434089994629658188497256438965567802282455152913535910492415570623893497597095424280454910836605572291597737105669526553554256103872117413733795023658444051675423120344200715043212141691747525074023845741944911366180137519257911930908475521753770643474786635665677339151674095705984208944630951708506009436798475702129668748494350459205443164739657149491963273153551947968134925121402524908338564668650409354033566971721716624419819760884332200720159512630781086411556675633794607020785395554526641332543697675541678096933133486250024066157840628102006827772762729222431600415575557035314264089909144239047720414566731986580994557398952956935149962526709722000487758406679412029976547768082642089364764419582901279606837031827576502285393680300252236761666313280421221406785555428549269905768942683438735481589937968560212028108511004982155194547508515172331716234177697110773404961394587635838002977443614816670584030488806168690736346854515682141395438391189631364432401671936720346944856738804979685190734907313796804602261211898667312140421491438914942154472918026391261743685982534765417332932345393997846440259188458538570457040380335157273057973708729512988317125619448798576147814782360488436522985887610723287354173737239343454587217926725466284066831037026072288954936071150277296910494086476406928053637802568107350226029379900609109228452931114158536925025465675390007789350810331539517291550444598800330612476907320474988608510531452877370428124842032558077574478192588843686633111262013626986127868538145202193366517512353248561568074315234064354276224100472766652287589213484573265155212145909199583865348107881131374473442487909409936608574247223968960920234238171664995433671092575190819108785007018528910999202691191101823937670744835602811605418300929797083193094072425055617571063096294096934958604976580386745429325470608692743926312643228499956377871185800778897036881409837475490448459642565658548588228172139088956866852147048960361059514934000358230245877944423228943296063293958387808517090692896037759899024374680469271119995369087372886092605080839109615799844751029498981553720975889889482364679849377304654501640988863904733049544557553473434293769273675195170706940378932388053643533032284177703153754737214608029396234455526708860055404566695920127197018685367639162936195344629057808010027775519258254921795426410663855629718951807253129699616646635830202512847339229892580795633966743417575533834628856686549394017815185196159523744508539985795004082762381040617606055912731377773875046987446960770290703658688627524097114280971816489895498945831354723215335630223998275760519510724701168454212379869121354115993550463774422762065412311572439413925736054123278989257916414425824046770586091892884505555376649305485933496752343681496953831873094746936813698941205563399410638332542937395001204164478359761424087560676070591386395988435376156387827027093012372365912064782679244770202652252258704789673680096093223730005701769522744684560718061450296254316308407131743374327123891007336926261681465644913011904572433078140426896829193372767270504286348643047370447802014103500306598893105618816385727762540650386090789458093812319488296358746619354045704102866955278011511534987477994869032031050804733884620477572194722899616772700301429768422268729308656321637110872110408152720205259306581905482781758223385338740181467586641459350229761813891344146786734207309665157967068003565075933060997761158297551879486821070996084601028472485971888821074668156110417086853023628057987887546753851542230916969115414361666296089727253000511663854023814085559811354252474944757339513320508969358293141982574972072486808672858842633237850571128449613405700798219986465405514149403772392103635268048010469077735486222187628091456805256813380086544305458839085693324098240130379490313302437419257187469467273502068869368948454187526741473724431692325625412157132633658877154619526286274970873578319963337301819594175928716552075762513717296506635521902711104464657552568562855964783708645443298110708698361984425614841104817615948985154629212081552491444835088840833665059087156335063705945667699995387875705969683449600024887351084161648101432869421228326720424112420225989169189757627000649337884457329609566761028399843136012704042647501443329411305420401773937280870204449447775167766474283584057460588736027467701797954472852900490355129591508996378934312898128563372176943668062319427960604927786944193431211447766656039548378620691982938673018744491895847190749058954513705399597419740871205057916177384371799766763473210528079813365028737963948938854610094283754018696216332102291876744833990581172209795467568214288321847767712213602107060741126663841501340251089919908870231842251769837219012486416613806875090483981555661127641974666552729074202977233356972052656076771419491606100782682100197576564545926105582880059843276490790284557594446573219109480873705855090461305552976099440104523082395918436742766213268661426043305819214847200460482360320707566139423633635413934709124538186423888023469040185127913308659416491625792520938648228625643273219865938120269389649861798696133613383785530789087043288417400106465508421680854563550290393344322761487121351161156555432866342311711415541049682729178980925903621944939392692027059579807590883483548832444371900611153753520485840578593078495028490968241729796068562657958032993029362705394308279386279467903276908933065929767942093787488090424925859499843573746217473684850296184457513235951387485258286281219114023071670280421605454851522913684716939518569111894737102446154295197555746323643520697180693050751474324040556188639202937445386082933749730526433947026867144712725383857838272796639921407297035790206157632438671952558073043704002888800245757450754119950565727894816333199256600085850459479042798813258776046426141196022874520144217118754004185538007588760407212702865275269474752268753358508254176938475970234407191318304806449619718764994631683051998918692577530255499157471842063327013481929590136850119953572999764622759795542433406876747469642439955758230073180956358403570454907328149941549900264913661822007348010044986481295003023117029461437791949449349223314915225899172141669088570323214668490566130485542424294070992567086453853997686333824295643729756138020294557088727747979046668889480681558139198230112590971564987498155786272778553118525517520213989814312521223557584612971204667280989568187183375042632462792763182411655040288511909735841094950792246777050102338058800747703098593117876065922725286511304813466364746818008558179062620937309897957451365975397796202283539431996070722530899682114518855965842831332939973479760335533984037771477431625290468766345248564475287451450177684758336896197431259143130339003153740275774662721571562799426317536551085267464791695850916550850630299580658340296029799070559245748853789034539278991069300907353123978359836459682744413228027556616064926425356807349185409507570325739486889636023899321972126790553821616601745500988572207638631289861985281810093159766002419464430053024816319248726584502047032202154599474717432775522796954814165234337700522254913824002766026777235338026593912852398159810437352556158631665238466027792144522642966699050050998055444213401531681324065749499058288143051716581914491349734181234597175171140580120862755400001977699308754992053490694091182888735503917721296477040567393447200702332446053849431856309673099987388935805834767586648331586178347779014230565455150303135867942887821342796891399848171270462813653583607319854651290214967775242843666909909299567273852048071798084250956370814327875769165717152255773833839301308994027719460794133851424727182884815908552196367210841989194172001795930808720248440250962425298713168208815644712907911068987746347212234611482765579376067107901730951100534397425946845592283281879460103835890320890935098517079169249302978839037715344198178881577821506272249686370460791208094454587477665797397357770427731601537513099449694494304631829081595885517471025970855903982794881331013640813674618055265687636322303710339709590345970748112105973615685635253769781643388784768008952558590617408070755204902445922365254107721509553466506171470611541329219441808004163384403983449636785402395380609912637437566522193705351949373105576963988070617631271212414015852773329872696025283677543576216573966863229931348204211721109233851780769164896420455467557427059273089714404945480753352521730027573052989130331967880912378988613649424743749854515436207034165925733501312657146364863296947954115580195894677920544070677091604194625398182816360337669994347236268072472037205219730202689587219899477747270465346677045486916421652679648020896779556719004230200783904033277248369307490874617452922813742877620244642579188804025653415535046473016134053845480745291182309747322524004122270810753400846761069624978228873196557400632396863803998423980672837464369754519773622147432514474316609865127105059880099753439923920523891391931804165059468327761863420191549990430399937247643621801749560920419648617677369805624282905108637796706277168551730237140799179557319251216415709393432264501215452180906385055087558367077903472341225684783874797766676406549757190910202074131961743689861421624914007249671400818995630043160844940485178524421032273491631790468195583207445892819555875937582454551347817019162476348945199408167204366466303349955035756905509054694655961891877049037662456937266578866751877651925271935640512983178275959158693097556326628508684741863688470349385451382856565287001868166114037126404956485096157018176338170311462386807534754016066526962677891490500063635882907405550089145259252326162577711413760844793418972276743211353093058659087084030765461309930379725061264532127816932386041504069383104238028485538502809534885018216551330630496906312521922700924498924283143569712658497046832368290381081636339961952769769077066836872963254365497713008054723865371627055023293679322440419111758402222586295966247533438632583964557993157691444821703761070108346444640027865162334357578656998290403869769580524808623354721532238294813234050145341585926669679354320136367575750293888858414422855267947924955839505189879825324936285587279126195771643665301842804402475336397076081261957657120091773553336705389861141857949684367084174807841812443635275513637934044848534183704917371348040131098708465854713485391213601156650774685413127303262492189519334443069297955224382712378996523467741344487887350375231623412809083320317196922580517924191941729542750237999681841828594429047290664866161003128690323324147946834622785769059281452341262077635793893160409423263438127547000747374953815999649779238536055126927121184957958376667917704529713591097111994218934664663841173049305461831577622775173248011267462401380785047040212540737329341066409363580185084939914248706658467937381002535257449537466445158028854184145199110748494010706221885177022756708465178211847335325227387442783175916860297747213875471304885421825397998592305188770555724998990072606105591206131174540530703791517827838694351167405494211733447749536226858501746549771408552392818846597951090337648566117715985291888439692631968956118938287023833990708780520405352006687602194449125058421115785056902921939337045453017856364236978899980282615125384481633929346122880079238624422019698543864483579863763099034204458221346869655896101564350530920087045137537881435618641041163421351301181229497126120510774095021286765170652422870121907713486022690346359781164808834500146517033393011300982194732662157280658176404643451248077567491620486391938350856172007833429990348563029902144369495381369639777394353225766882258764146014874077895360276357786307387147620598717779782735541176304165170522772417446128601608172294455791080869326092218257329492606057724706694017341735315277232188462443363958351358933925679625865803902340727246996741217690975570056774333045560047595473481029197928806201355310639021969724606565502482587703213200595960119251250942108013931816788882221140099593310901427780582975472547084093410584740560340557703814383598467292524296440604353170066603278397357876073733142936472367314644677500237532876319541689591471605678748727982119738711573286473220177705741779141916791379814929076210861687657916291605817273713076805552748267114366398195035080982972840666049427322324737567001681647624512375524641288297640679564991734672838901882598523379015921538903524442441599980544454707478316343451991883434997529314936737379701829323045801219209372916734801019273823373432436646875586450554092303459998385705868353078955673783543481672732172968967270285511342472365886921354492114451315983654484697275721945249325090439062921139674894248684202206743962870882512790219132203335398349427859453610913280652948319658119427804528590003839498072575038231914110989245275785111300762590826155257108224770683294435024968399388431524153508246955506417470358122285229039045099819542909625837477182649644019866681694557738057546726456346380469833991040741273025165314087760480276436382861498909760720304138152265483140423802997366803147678258726751584915115965438121931136286538922458887523473100050167252134153775926590840657634195472551649269464676857017920029799744790885753777121035499594410913814700270984827809793352253127873623724974635389746266699538230445913173400111883892205426917263597363423490506754181085355301777990256894094606977490234801059948092089173251089255220532511158555797499078677752599151652011711317897211466997506690455574181221544383444791937781760673487407954868844277027812106741872574134705684770084985366354862666401188262374193713713080121087706559565877935586020166646495447304817148076713928248639597472394179195820897646105607441228833967737514077684347912205635804138339507928919945169630208391003285054098862913429757634214249928342314723011078345039011533885672248655571366838924911384070483642246976215494338018532428184459045284743184612433044985898468657757555842365140968044445770319800074702166530162813349921572108295077363969659104676722080674373400093544239507823383171609556792085677921236823158118331317391577435853611752486510073615958361513219664547750774607236986850505938853647613848998493819741035667257702763173597808815150488432104157803867205575026749814177202724633784834992457382162764896373140418729902415619488434604698693565554613426311495977023315831264600596195975500877150038086930861883592071942437302763472596311307611853853950791860081508728617194441317859005073181370806836930261158842556815386025171491892472844799628572070891998506630591312400431594656440105163222726908718794033377140070468365813093062029810497349694221425973607015863457108960016045577285104391038691708097520827207388220297613660205807171024650107637763495892763249426923212426377695494773439557516013377232768633005310273092878675470494355792334206952052009989185563280131577700014271172107239154168651161628778612190810526384256087110654889102222849645000945961642052719437948801954252558743440112932109497313879182829916802890589066431040958094109950054480111252907214457749317337472347907391702763366669576410577816738278681428566874168599942297404233739208307160821954856709267497124657402060485730305272039132119926401208365699346917434153374999275537618666841600809072308015964373050365966479875209707012653782891922986626319624987446533929775404564134179438359945201245909557303735027731146310293080803671903445787494866489861433707173217822083696048088186196454841080679332996284198609418400808432554206244695047309164608981693384633861798271216251693174939713343058124303152943182157020057775424913047221585717837188683070665383422794035997187949442351279283143496285711377267418107519508261137098328067000004572194564192184534661188634197838238613188686205272413014090042460308362343369118907253728211902271200762070242306194303120089921545113506532256425987328634221787128208870594270127637458101413741201589058227250549106652055027974385841363289063511477261317702610825435792173657974649194740727048029222498594964988867664731376179599024363745857833610949036825154151342383530195035674657019056886879791068178495284326060037963499799630368989120207251580975518178393891894674443083221172427593950898208964398832046549277262702168687987970122869739966692344599950263775767387723565601060155609670370477468848482644719067224774689165751245405185588997307951952080462520548101439295455663174644242101527991240121435696861768813436101772747588089469535205062983669596712345434783198885948319230086937234958442777828994125426108841187252549086861232489731870668917790606712257175320687471785946513126251365809094229677934071041944618391540337726696008320925689489290822177665937025983202453966333607159359821211803317461001806683165875413580941951845321183038103521068936311789854565745130824178978958472828515856897563647800344707528200384580729779233379363001989778108871521365554000859404624397562421302264989507523543385833103674543167237033662641940536643512117200143712583797080141305216098570279413670478127239518149384845073530711053974444151518983119862974706062784852044626166973455758028565839234163926688202312311914691864417717465526855691366336883234908096087264979211174222399689242239935174767322938937667576427265372416158544190744881111444681315929036148652664516697058140777679396669893494048054976259769785748311507761826622812705911090977497328791944731682091047791573421438749505168696336860679420771144830868901950789862713434098823772104213419029279962908558310088570984982195544215665892276970305672981922801866842845393628818949163261893268001164485368664362872424966543781389997749309390136234770554702762138058750464087560912316605774574415978678044286404583919714840122467397692379982733126799759004976311084519662047491197456599542205199730387084603590019146366645795443398552602360585309021193719960517865928814134861162527473518878951006509549758886397959309909147180705758516016545906346570387178396694473524716324552389242735262144183973648804733329899571803620482127280087643598941504470304695775307134007985610798712462438694519845384687283302979173236850404823082189430126577535043915462815607590409078947109291587273688624527868363039631195817965511304577912739808601492808691004482918511668781321919526335656186907940543411662251187071956239900105089446171723132592911002069091829207212074854701873288132774281459506584191096427305521678680855198831713956112886482973077545088364612795442473816278817467781493305480617980327902627145864925645752272250476981551430130610838223648748238407375956638036753888648727327055519306413178852147566855193626873735128398162748825758377116116440463354440110903312127245206130860135731658707110729774527073744020986693647258678023538139563086137332372039742184036588045196118516468198405661194656362211456592723034213611983052980743443379884789461366980624619985353002797316522249815657332593029698633116443630720411058283546199879805051691775251338030932479934543778870230713897321456909756298982089278858688559005945747499202414027334183106271455397887378804366672070466789086442390272460568250187947586055541090502257889738443937634318458259042757699996599595350857286961857146006975490459784277998561122415705403891363573253741008516685694974561901229765301840499215421577821246433047269042112631230056634681446175989285918155717037565677181273460245855475487885292015406139713006573991341911821839837748199204990099508316744281083566924680082528465621584986817105891474349019065933073754911640101382240496837491262861373275321865714268431748364389305045790695763106364999713658815079296193089256796861995773311125277974292783956275384616313299421452682700092838823203721402279158610017241912891319208485640499578695984669445697919910638406480463018473690037942549670138163302877051034522170412819538637988921007579434309676294610295006749600580704220733273008624234016425348852123069516261481394076966984211123756374709888712916617487686413639240810451974163054164257449445538183125608859932104010713732158247952732376396207784843893604803622439775579400937939262228112288139862082624962435332968045953052580864507543931413231874369781052589469511381425136266980471426931538709281496038481400937376201309084401136569836728623189956443714648612542692662841363695931548593670096167358188089212216445246044355918003423379141751527314402623679873354946920991445360873062727633096534652300581805971773595493143899473729562858397758581272592926892470830278558022006185628482528619326417305384246599613917876013011033736815584071264794829956280290451371800996656292691038828318123575471683832199217922846771725815307134855286407850016403766610495613908459502393849070218916892622813580862740969073998861071411852400192273664577334053071463437484216947167126396221061305299493446263767491280477145644979587562828083834046035380431049536338143473445900960655284741723299068562057079057194587022149815650822438808383301885577428119669135792017227191678265564229024663224843747109284487709900477885563493977292540059651684491372162467101074728733014736349016352057465002948391774981855533604488152132130242184055956645770370120067139992242047062134455845188512565077245165699243950176943795023679059469497619510762642722009602636152947794645223929566636821427676127441976620610723276518360544726883933787276730125488596576689762952991702991903878204993000130142721753618765133995813845886002497918273063865735601551103244419018053679480893249437815982224546896482438475486627407104635437856450642154122295892912695212650837646078572602489980626995412823857535013008113369166305450234104081993445069328853943116680941621800015519827275441686662211564374314055532805289317632925169425239506881714182397001895668242007352174051019939684195774906932343933630738886395659730402758689284443184862032029602159235739638087143687390715338834131964525732324454959655532963712159720971790133074675578968296867272372216897853779400272260419355561191122906703173783020958430999579441431062403362272182078493091834642272452900550795252520482238928872924408471394984315620783593636979355865483050630060883809548326808502641074244170308332822845741710037067721132414259699493274848644447616455625769013545515352526217347533825638073205329861247092017841174494648040409382783164102597708114807179698823575563640503797632925375132186768860793590575502515302143092707249020830314798697860585278241873178888714327497335254342659915378553400038314417800932532373151326846946097738034614376109219382599096746643204148519462972643581984173054390103778376831463559255924120000365282324561145460486096149393156172324077183488924291759849794597514635964400601356075158154914218474157651510764241866060075393069401478114326293764126684956779329602997637642946359379986020528963622985962825632956176912941095898262850414011730954252679327980565905090111410142257562430735626832378035733562263234216709897259426873585808933990164486697237090316070918083445762379075772717041133810301186766391654118234461411251942943297896139188254960435169373983219774223020819867061050611485876906845194578614855630410608384737455897578087818414017247739778798710122697353161203723515836629550567534874296151460942166838110565560499343306601034611671574035371210333239489115640380772071375013888322106145093027391859794054296912442531861013479891004056970433030633504772955567410713907696803716255863918196093072446082763587006366449713354196948003890792093505002615719222354201060547345107348306277580362907690611791408132596150941154812918984279430537386257180369490218231316446501725281659400000053916648021256561180816735967222083855826788557768740068911001408974144397892002569388069298133141452808078571244892061772245715402937404801082721777356628481468592183767418438098828664591546515093592754891043396676539737261244170646730684606504319658174844251993851946235846433054364385776496355783378891060662990577783281498222109656628012638693875680569543047009215277663750215094678397549154460159054534217561311453867784419152141528180621007538090174248189687327711484333679541157670896947003558415369393625196007344014689881618618401581084499527343871816664744711210757596856689855790714771645749805272301269348810994947094778166755785747631578144790674675520228445183779161467262816176839937563294452877154882969363880252130170650413628344372005483759084173990923462865696529094122561739667188200088529540477026123690517726276105249791132126897956872592881014719591687788951911414437964844405030741092449884128389717222617058339926861456332569110295869432838470718286948722125961456054441802454351144975220726531136384374416217291170160395119885860090133970393623540049003293118891409740209432082968542582138179439584886961877154354312452840679405522449777650614159384482125965639854567309406589329359766915828223653606888848645930034554082405030538689266178088418579693757939656368579909837251896165964220798774056989626766105688395208432656815948616069933585288974091236206605337458172127530879725132842125728575827400400239073492107952900689569658034012380098467986027163750716796619930040054145576798941545713784651409998744385984647378446380764722147985638593649473632750624603408602234260876701894598261995996529249071092939838722403721032903362936161813178166585818828470228926200772774922899943113469112814982110842715150919220825695324681605270173262154299338527524453063042816897797928336937921542353932227932630515558066940380664185309691914423243190109311097038153262641435192835674432408499127041578513976294928876577131387147703721085400755965358840993043655761870575138528403725402126474106642897973703426903330957962403224647746222549452848954955347749673144716502017143229278125947282268464709326176016104705093497589721006519023068672780512413868443444266201840997714122702567018268408267352076566304534501064052632991710000686117267639273584386641865894010424403512648973087575053892088281269550271381238641499527669126570329044454242032551822543204121581832952500614407587187712186599338812804453896829070037672133007628193756736247030558841553165866309352136094277787657428095031001776833429918315607454286698588091080615983763926411595863906736468066011761418209138593468370101765334905246947751043248471353705735931744558819810954496050649386815719900333468315771946845457961680163499163680503042123151280917067058627549210578787458134879009813058809745673848343061053139626912539716947635887554889657869827727759132001709335408718566736914268237611157077697060773559302690455223611493533157601393119146455142503759292011914991254381631281544764343516159277143820775806381024534316070625294829167635976097846435422105392655833073993140136581048275819792659278522343193284290664886567174686560623319311741360431123846326638175344336220506825213645003045408873330095563138616351519570970299438618697955298775941893116294871152324445985094964457574420768635092788889172685090877086779890513727996637126040938111141872358148316065512030968545430211501891586412292244747143772887608805535329652114070738933928042871148044944822032966778525248217962549597627743730751278371271645655379967107371110619744273537446794478004272002258263538904365834936148917111029485793709485304829101243433281660793130551260202374728477138727933848903544976013220936962777194926918058958880783640567297716774819567326042291231980010338103995373704375955554278295610011918995480819758753556038244558112358906772994108624014048567939583649522645788521286761469095223984645127397451901553905057198939919289286754335615447935031982793296090986641973276530445115877341947348164285430146604457417270592282285891132169971108615534895126648075555565783921697831266225511334713795530571926892886484683737207786513878013371969922317411262389913929787949668354997809686336019137240960350953203711804103051284918719899069094729901239120769989064889990225492920811837679881206632185346475267078886455209819926896032954577542429679420666862502747541004561328518208476067333834775419352208094993869073143974129472092408815176076614892030801648869706463048477886025355285097245039660941262911969634580551830519761820335113311327053253158376351782011733371053880242198473402954050692306974699880037102342345883578291621272914326429728936955705442650573557568204871586923350178147018009446890282679089150599025920692686089855604220902870161803462779080818592297971017288392763483483211436475611474779045874907081105283723554162895142382511612495437718524807414852480464176070859704125627318089667198384778834516849166467546735805668934268187605396974749733467361100380048649947627460182104424124811989132179652983799347803472912223371311196532126485243113334346173599163908460693307334421102332559158766028364854604782978715834784480813314872811090142015846142862619453497970455710329222382295467468936278380967292101911755223521323741828734372724770325928967803671002631509482553044340347239640302987317070595528550708588003437906240524574579282347511921958905420006021566928061082998664047652314702288259009760089703296681706138840531798543431153788260235356977678837489185215815632039696277609123492271876167581000273044662786461938352605613765607574978527112518410209117050249454085569747828921978330498905649578317592526872866168648868109315905153451504367811969864883897765060442961953024010538692239884537138457844095006430990955129150465156242230974639754862784031436375296928112948411885716562802169956435890852548327731155487355697383008161731642570584108507883459297631570935201674721527742315159430119551174463460468150359234528997713702025841717775335671753533797602475556580456585687923515109712933760343376385169780325827512770241296911998833820015982459333104729740586359600947764177668765415649092986424786502327620385907914533643884821656274235010621141434561739807211739992487174668219209564084287773884878475059225548362723822981264736151124602867423788232774861384956666542013296268972831941057437720911504294382152290337659876006919513968955707359417800919486799779715141332938784054354452540777724686094532704473733795085486926543942491926439112089887831069604197122060873101146892181142316586873173955557263730426354635869632596674891479677605522715114984825812266113101645700436577861212680563362505694529160052826383395248403476000602376512903868183388744922012098669586668249025013927770676983201032079796872108993021068192715181373063420638812212941244647572105864962807141388407020547201657818276820666925047368138706705616849828310139182137994364730603916286442635253811185190245451379661357871981880740369810746742516292760685469199407520743591261133812231817692096021078000355894566900257124237556075272956598186690923907183145295291657012265374727693621415383597568579296477452076389428250432547020570573284637326094791393754352564472863772067113105323284777420940175353262343372196165294816615940888076585192958487977950017099504148210647246636554083959789603842990909807964581774412171850435046487719314025752959786252169395473072381938934685460637524738605777920029803039779776450823248012457463459395294153826214951826376247091625733345213190028128648094999710757869666872750502850513181038884071981879709202102214367934173881092154897173709611911401628203615811430336576164962042055327494207379926436607272779553022723211682135025110895654380375400521281380192564740655485497040170661717570934910372016037896820738676048319161606385561198506220738169277199905003140713799348127886043839494617367412626190061926236269124815955953572215795063379765019620165567686497243664286419047019160726013348645773715934675776924763487681257491419137518912796417123064099816209342401269315434728966173904625361241193658271022392745110139366767261519098117148397485989694121166545246746976090804097967865120312982162087835423939637580371730881496832259242516071131874766730511105857636182822371893213640120761950607029132730959893476642817922743997855760137913444734124100080118064313153885010719417511659624557635954350497032181341238227736463933680362229187315175869563970728181727979679355299266492178563618568588759241492234682959794919976785693266459709866485468837560764882768697349432415906853916966266766366813458191234054483917083925791764988133387407986240992242997033431712320724250068215306593001667859423302413000216290626494261100268365873370338518251337134011684781237756060683522226827840828925848869307713656410369831066484419456308436527504821719233467037702131355199941009222375959370787025985843754159523474030211010150315009048505373247359894149168800868121290757203218730187922789256564851684553089121711839276450843142033787363496717950199772903231859486412826603415773263784352765206160923965036369937324921899450385979393361751559883639838446008773563063122420228242686443732520019659187414958982159388615885963177201822369121141781722769616014134578407607618957575330804469249551248916126614063670354740489891394888870644204699237083108751311039911317904234814760687888589397573232827134164469634079825277586651110704241228403418184149908216251221955696433026793245241293325875052919752553646242386140941002678952738302844165974928201411621585830557220515016811476694155677248117008580522956463888234338545433894463779096812604892373962741291951759851849748021073683981491136339900597128897158328695217886139324281590735281463579858928192936317396903118137760498292670875189076328472455457784081670305843342980127699910300177916551773139352637149765218429663558484585676677014741023152602834635892714363198234984456857287363334855214544391609147253729611828272321225473849860525944998236534422628751111730819123897450979260265149939733191568141572540251744962381450365467528647967074118706557474691457624657203545554812137069525792971811816753216251048989937970688246369539051698867520464997657324618173752659942877676181475156817890872791104266829696825577096116867638163511010868881797835461127827524177286490158404856020817052655254125151296304889467187000053802178619460248260946191482312316972820529271897587696485395679592882332554027215581280172271985601946932825609288806066376090181429004534803000904632168375695923592581239805609666345690822520972519831860450694937416319267908952315028016293369531565157247890999780574991724718624580617612567649482764136795309336761814355953664396301308641360168387118584462881662414720689212507978428157531108091072615531625372276142359026249919093372692043741156299978474193609412447874169561553391590086791040482932502631123474506980461952635566255819269324736118140828919675272230349084007994085355342454085581396205213978685259710356445924167312244778204340876197927285483493405152647789593368379605015339941927279016958689964348023677819013085466220006795726932773607996064341426090986377963150968748801509494060654494581696708960071943947562528300984781553103084435192129221953652534334356880874244011589339397773060490364733805615314263903185066195874288058292232338049458643584035412485185027825287646014096894273554961564547609684226117321685186565189051318660060439107914464177974438314415342877695370216503914290045590820001977110878163943503459572916074990846831391496219835212318954908206924561880744233844508394730568078477968147693636659635771210483315082114825124945665896228390175954681976773684090781369051717231872566491740653582220166336752718941045925967521197077928444714825339788170280161501796350961437959480507644525124914086702054595200309169857891131083330879494800296523841505116070479737846266482219210104635049982602669427479901843534829651301738909187754830749139365609231037230364406084580478627481454158098739637128589749580774818937960528684671188320647923993509661035617303004787531341557154841424039668643090076265073391706852751281928140032447870269618124531975608192233172273908755107598120289377691555660048591518543770563139431837338445213659930644918727750931387100610765610689229714539065538675556435576332308285057600134574894015735535223005274285143181984354517553846107879760902288431279658354460447770750899956306150019897347240414263322612783944053895774609990763231212570943225450802927090702858959823803797510422382117315237709341297007325743869029296629995139152463535105976177564257073688942115197393004920772066030368435779647842530366902116923393901877074673067466005543013582803748697071772798056131219234182941177524887805793364605721044304298573540829045799431832501913070974824117465982252185322380487715734473401807126315832863404765001729981064481411764419273978966900864480553199304485984486947183461386895281249972944783109660096448707926980989207037981885527601680447883492719732866613623928531530523949715157094838771013261559654622317350161302064054561506933830644336052054967464271873962371078154817886828508153862866063659484306905448429696616518597727268939702831337774975699520453084349431595642188208406285604331335925170950272537592532105877351630554068560252714274514248637760976010002128221456044646344804747417594301676119225715272612802705560763448898326928189709495048819701094399841132424386274734125144454013442093983099740306503893639615795803581273553987967733068154032117609365226989569406967672483095384594703912555286337139251172442068113964043500892374204874122412760823015998301338715434101437989829038675066874971326796189060206648982409090228756722770678277266215454721252128979674690369808322007380769881568660321612818006478673306928010512563803054143760796666023579350599341322633629236233995148256934664789659671859800163563074416514469824777668752562281531336999815291517066961210324878454361829757502648024097758090707994884508022997107059115280275530103637405348447801648512797458411144063518118162572168377562794599597798839913299814938795265292036306493074177194742378248837845187476184237093556478896133880417692909843762898173244531142551905714821884577239546678178818380775461837815992082790559277520453845231744277928758562536743380255479174106843386412428503650896156403963255611042383507974669089467670144536448245081528657909384598434047125410683455526672425551230529743875631567112466611424934783348191934609364928712311288250482713395695648348380658773197597897561773491679550748251466726281880373416666593814512038604917210834155765799685350044823060970942445021543506020775338221906793475521910378448814763324512086182962835258935222937272774128360266306437715446791471051255721430384991823197663914433809746635615484370432973708035806794297785144558855567828194090850173164468976142875245690100995012635600161895312688323249359555541186171564313080649799312055613771558781029688598340448535029287485580399934897523719679581619502064098090480296113555003628905083021745847836426397458513648657971032890324444215914802119020981973564709346217343124166669788403718613790217642226216143854817990427505369702116077500006091697999744777875635827735843933471014476576545548361740805423559659545091578244952975684724977042718683605754285986432917202802841526258534146575079506408889694843563325414630560423208080211668983941360042636780475731612125477894222317450699822659528375928315197552400215189593406676047373380649710231714293471968370869623961968006852945325755821511520952435827415462076793661474604342692095051078283408596180824257476232942271027139560157005131747506636720291455024736188060185401600331613147212743882533962628079827147084092263274703271821491295303271279933863345141419775029465959045380987644007125542704614887146907989327053903635915845098402623203973976981464743167964589881489930462666302730254701791164450461920093303704202689615398962274686054265083482203221244646150530677223698936221775412787723115065070965820352839065342006685269325612250555890171169937693207726101606700343506565604085530185467043599843071466449456587637209436013756619737249469652284856132317283828257383815343342767796533873468567332231013271014996154002988181804283219940546045844514375935413641160775166814629654824484109007302346557727275239526189943093216041124854279330054822028575568848942217248775342842970093606471045272719761560348269267963846100063972796137051801942086996512934420957421896208790162362768355610319949795013484356718086182080587951610284140854820955348893558805750567248953027356548298721627567473501976173393123446237172910668224719682604019736315721009879388936795967474452941064089007751180854838328950399685243821486819656619293569372025415333910134981842998942623819216325280450963945129134498030584757903291052470628338306412112880388879341163976549076047182153849816480899792636031967394855421465089372777867473007538777078440472510205102320433174728807487510545818699245698000865954861030601466989880160466069904142896123097738131195035619459945207133429768802730533862406500925759698463264393486925900326382690358980931391059449052258273626288072117675839097423963482244450556639794579237227480121213877077749838725945313115780310797075681384849431106874569816171585122625735218776921384634540052721010198402314392824994429505739798575406202629545343688662837908944663381148422249847597051856855652489075532758306592432269928904117065819550474463991062286877245162437169280246199779104354662789157747661955113415230198232425886497217811792606485560191791743850404882842930379877070921330342968582409184421670837654742240618050708593342299797408639299085737056941302820065588669633586136835250925836475191360790483881644897884478861388647299053023814212402989910925360740946423296409031804767066600350335011470058543335187533025991236857827507136908735936045283500570778315887115214066839383432439773844168475245377758732059494318289826575804171483019310084631701219113831571743063303214161694301306607012126430483109554088239763851960510240329794905856483525459125407234818180286666156741269055131147065640110979554015993770166877752702609148512947085799024301693289189462613074918550406804412439899403725490817356750238627305089953972805840079626291347444570587041103616313101775116953229389510466578683953520819044927950053626505494834136084737082662280456968400098456103509373541228265103136910846911740607283432640843006870832604625444698048016224318991814065502806787770406790564956581362259379760686274038844173393902733076670024654315944481650768967475684696017205756615788377621790652380136975898441734482718540134199529718390196291229724338454446115146515828337499905040596760655207506612296313370592432242472650079330562310841695684914719619511266078924194960406964145566801160482225013534329975851438557746508439099055281987529876174254338687085069425142029780751754775653954626511338734537806044148909367325060524469858971055786924146573575397619522080975206002538721391943455086767661508890065785166710543039074867205548339700209404592616672042628682119966074643287509310772736275533759659280830170136515485268139902738665014900727739430684196572762213954029839999632913304645248617903573115646550046267474878016279649273402579124049244121907847733862796209657409085627828648678280567035210559901544541655483792918718519442166385372175058664705620560997637746098062727979588999000075248826209330044199432612402341106619902030493065436136532199576471166583734954371345622620769329237686431059653640597399041347201516605951090545395346431403989380916243104555786453069025619747905946360130152921701251275873919189795055774828611533759813382646713336926867074777796423970175532096099639107484903122544286497921818693384483361064912316267836323692016687610352748265657093298251420620674532567577006655523927932125476317812830825621199933683596933758582035175105882840641262863964438505564027198006731594230026353167207780140124109844226023496389181413421456146700031654135620748720317330010688062691098560417791593954935746775452480655712475741030996739007620247509089569621822684045005808089035105934335687456667609833328109194883221746214200294725853848364646689102407004167259452221877381473020848040338626338013164569126958717915370906235849433965904765080575833938330300636783728429346871923649024136767852002928958521704800396768775252871525262727747220948743002732005405112042012637729635504570174854376208234945392092154582343824252418380412254291420261820915908420409147943840447970085463814144338891347374823981995008968086407614406036533486130486843443702931757427667390726038228016992004247751861943550805773464465744706323157420946808074996563738358962173462174704237253936567520374018514731702617096948767503982279141541745416467352577630616036562188535135389005194515344272278421197256670776796252990970039728914553320307825956866533743636690544315883923479110288247589283846529085538006484012527260556206842727047158574551711974891116357829915700555821315589381941131981012898031918210891454703858542660988833620310877403436966993104256050543998945886314184348194906869550796601444665320511746208255131565727232471343269358080899015435438978644775632575348339108698674209582626152037339047894837623383194601651879595262878641098756314141336256448435955148384187785265058860412445873172711833481711979957405271823659812180085489169179892112898073500372399176661464922279708179906525908978432323442554650494503425421233528138585024119688668096866322403160722370434228177116286045551900520987169332261317660792515747107533581380808161635176310076520212739245563681978597403985457153728308281552135043771527409328657308716572128757937026651907798472729274837069527358614815872046221371305920610551597042928312721065766854016887833634382756977623203339693252066586739002526375646147833687681789573327279787411979250763274096490296357316197175736989584497819323027708927956430511805639007366623580537857486207519369003013167985152025502619444094493011382150049247109377761773640545767321132633493059214226482309560796449726090328373770557351269644828982694146754347237276999608483798305073853708196315724974269635837326470910996515911166366974697953430339108607676357473810552981888734740540480004534188464982605053958208175509033086594399177059820421589977849161191397887621518519894867332216845669955572516858306250306242936959501422994706317285768355256805990594746742445060074562356581406596968204352732427841684987221670726922772511276410285406373747431493535989729680258414271773228373956899211268532378000151700704418825212632288897978312040148253346478884006212901522909755897849102056407532948731767123686744955281726155433121833907740780048872987004435776989540852601390082008234525463044958437212181359494258332292352758054075741909788389996362502061495973428649815952894146484666211034037163516329617219663072107000636015582260647276327516201350876303716407475694472089069217299664531476483186582318408012657466739016009548074874534786996049472668744276263656988330959575844053666894037917430459936747046032305149629703788172917256868021458645825620758813885144163204095018498898361673293522386395839212159804948267241115352229319960541663981788706434466142021203178193457034841974856227682655627925510757012831067184406003072300309462648207316149097957869209943515360770068589041668926198368150766382413386356680117505581810988481118725819347363017646885606422802657104640932080910243006839365340357959023413900202881188345709708675539955962350474851572746254672425624741907943137441598799561206862044130331562458024807482057735499226096242575568810158304398407340391566456872335015515218014912266649239859260350516019480341660801793755849551236745296180014958868318297822819636473018073577086556774136942614829377082095383848077203357615215697566063036823416167707551127813525344716060967160118866314173273841230559292078552713023904706929327156697747773988800662332547694141189199544524027807917502889550972043323701845961443948267799858337980971951851787047871461320062114667011986922791492342160493991443326488909572530214924526875271536164300128441571319569507329069040113507313605137005213287871540361841830098640030379725406294580568214567438106066027062892457027366768309943036288887343922306855914266688136802603977202016806677420928881218348475935132393315426307013707143134511326884488311538786949048548419364039028298766691828479338957185037210135440212601243857711767158000637332099478808722443155267000892352171405139597074580869377702718701568871808828685131871962007229081078427056994418443782703431954803453443400975727403895841302750931833098250713031838364823759704772796902528939936147860896956226889408971504693212345171262060419191980623891080655877443245399797721277720422373320406964396280282950205497063576841363413648676537667727784128516788346961526456526169397312587485197220913261409410485149974508879762738143504053044190585781739604889495312444435541667301403750895092172952665595557732684673005690696668507658296235224142787100831320576306662213939123387913348681624639038965621743548250400512745567517398142458824916694069012652813299419346036852795276859870629147775217462207367271945998306780849758372581497939342883454606766201995693334186277115119164878940065836398113047201958547518025568693529725562104884515137174622229332667109204035048680823459358869082128737484817087021915611879337125824827793873322820495398867447725054394471851951605021282987293594589302412126739889842090329461727555578681057494524947604595207737332599175178879393500480773620411290517014153899493162573834040146284134166521883479925273565225216386276096031914712620982621070655042459351995639929597065256787993537248726108598196096853590923540567309045592403575530386642960794417000095253509738071388283986183897193240093928824543023150378499417416957374414015716894056819240422058132894669164253680230385889867384620886241698515474963479897202406753914707539476151929734439729145567565875905024194410733156140327812157546039290502725239464968457657937452839721530891808996643000980868103595023875981115955371272198755019579641134443861933922598933590799834365980566800984524240443929983375670734173232663694402996048936909119819420878337990448297054990953424318516187682116845991364548608957185455937290253103495240940014585641976399738899136965632293026236586817708239945896608830243747968253986005217081814651228849461113303619388161629951973076812077149547697270212568601552751141341341224482367385292749926365201958548261211848028771418088455301811899203858488933669083026631587538118591713097580778297872798293331169837486293180126018939752715033193349604231279725193337567609461497965245394345247652504229133479441340160373691733466766516680398811017027828818546507418644974562108165837412106889650095684943705232687179730381119495487481904576536155077536330635297430927539407056523062095582685965275826498049679521116204294898224585817765682326184272787836468619335821883681663430970846505537510090580788563375081330629994757168545704302279771889958251071535008890806478693050967571331229519007204551978493146117134703836669688382808674119045171442973011500057501551789584327187676720146647223934303260056708969616258313524205113252730482525484619784597722333279572106733845179891327702701893740735278002306253458393676951188994457936722132816396317702608605378775775125629020295155459958099079959187852149250729903299207317045562037506195489760741958508771026346969226327475327773150606336517633288588588961488762913545055761065808954867391793238702551605188422361837543896854519857186650648502085177295516861874056574085200675530363671285301574880811419472979802832892991410306332824096359324846853618106721193604375964714835101654994772632370714639781452300870125976851908955708731251745267021613773887138641594584833450881896538678099826102807871750081107221971433867389346833430993883534583143048585353614069396835169700386097112329380988836844497045916101304495471426966748012825011714779481985482899648565379261614680394177543598217592041608776482850723689833699456223191518274610983461084356120112690804826212759918994105215671843333021847248359341970252455011790214578064831384657976918070189512880493555158017295397340891816716391420254952429491701972673897289090693581061957745691745919857356567051692671797037656278300121470647379294470226934492032361395278811764759441361674699779572906385711006987943497983091564609875202936269420683285696390800461542991383059581946039401941402795849080847388808828977584690288817906000063122001187530277293995536581247544527463051792486469948058393641073120728833762328611076083450728459246481359034148271690252093704271679384613603410827678315924917031277033317730568853768772150524142660145225407087963280927838383434109485234914834235168834699291971914173751248348053496411424391461263637551795849470271071571867116089714612460759173203206507391004589522516099519291277573280349242795553119385969551048745686565247270171393335233983158786287918513245912537543346596123866254093285725216129495604135072842915977115622055301862884803969236839039007121421373017243450682303766683105716483991308070345868144060350668004993170721390517603533938743687804985878942433844669473236857783899919632876422906089161894015316388106712970794078694133493030377930343838778020894312902505080887593935985183736211319679903508324099585398883842999405082911469911803410069577535509005322714291169387818810342141776902787992126256791851917403683677190219124788625459969282672297076953785034907617671424979932187312107879431692908606229226567343776296515670453671841118736653640062166702156162932642052231874670374143793359149118175230480391604856824518641184829598350929643041302784178005471918761216942402519996595174280073040203988981998301826402543010247913641168474681548694219783272334079144878668572887275619485272989373110730997173785662465884006395854303494287386642111355670943846292692792806387848085095097779563670696978842148141520686621471260991796728138261259998644722944927110639872959761265630413691970191946132766253399978046895139914001057331526792433313512617704478299139711174452528919936279044995851984545713514357746113116641342483595820491318319793075482681232732000385979052769158897096455955832521657814316026865916011687760062728417972190377361425496332503275350436395947811518880429914222195662260979270231142802812231558177429504998279020501020153473705174465788033116378365402782778618663800610585764536283901306234946173564193654841697245616472359259970567456938303496433348495116405978868335130417665259573016359400711086634207109942834808471751528602085323593642086026836559575552232656357784399658781075606342802519644300848802262914750857694546315158531490010915532444821998678675696563044923682044603614746006801172274852998237660792340173480397706516995565696762656804332037315330851510329920391478743121841931925439270047134823116212897011922974486706912716736622957635285575415873922680465808435553369246106246778274297061381205334462967763653330416211895579262542906925420774824777084336254389273131410356870161322754357496614474382394588357754452620827669122520861141890322993117560425504919599753213944088392289345168471975267003006893531850075535093220913271395164282536275896080777061928998223826422466483361227922858965277102707607709010280093532617404908231140380488329267033535213321187960827373765208241289824298531501664985234103942073695498762504734206422959586442302624866111859261401510182294484109492621424713635012330887815487649024130644098913725278248812040419260653669064702463182364104362685111994647382957073176986306722826908466034656521076539114385906350421688904779281755339026084682856871942896430783938622823231051415434698913352971683386112486551756654095688321854853772514835240338738211301371897409049630010394258932587424937047537292985953251690113749699881161559345895714444761936740940982292838076733577879904705807168876080042624951744521859646124543312266965372831405002134073912206360423924345994486654311835690012532361491308069648318161461728725229491357484445590009415165704825804468177401527333124188583117158884056228641540973153146628218340753337759394673654393400288388977073038770123133072379773322477717532306992510107326795063850978069626176189861614607064403924258325218791181160298065635731159982302799804456212546654206093850510278273598193178813043948489423598135934447658156376899508525239258088457937363242278157173977667693995140738179852525655088597798487414731699138648349194135653476889367592804549222383808718517445031134587877493820285658611718233388136322668124599422990018628381275034453075522949292579798778482872289571830336772469735308187771148498817823634878061541628309595637295766021299990196078169705466966133978686913829858211262235716222376374643205900553353259885948493221734980868867145427210653479848817358179138132824241612511508500847914057670179809500006174722095109862965005927895286617804464934237764648921266491387195362128762355999887891862175033662505971964180126867389279782815994108796128909392072201074659568656623546185389436523013667792783619889115848022897909285959337419174298805246099037524031657596112698446056526549558188169427148377193670913181283094709527187361614520712782146998259630964730054674529919070582191200590342139282821626574603482434865199304578890393502483260974425564850586222772193188338319498707220237374045818810961332512453268207786672864639384034706052755738661402311870045867648235703232062874060051309308890731216589532428957878116520172127587017963985238226743797427959462659406261929215422125382414990743153831388575466028370693445339982449083566976275787069991748955705175743725566325728110584138899987261880972190904815952812779438392517737905512401372758400703208760361668203852677411790105644118578510281213046814569243067324618049346844823874946677085025044621573228771824035759374110200012429070761217294275439416584699929006771170496893763422916211053266049011529622235194270452223780898567050008303303019728471014476909065572546766127870472890248258347167979370616636761477175442527901461421799972042549608360109658136961098052813912284158609915723805158101486871703816287579501804149946139195510246604347289638220976515032603008484012531963949951050868060985636867286555311599747297665673923256584884732544439056377038054595741493810157376429260379185047384434560011489544457317620509393524423644254496810186728401135022289748186694256947237604455474612729673392799647294642578082962278012491378557307427747562850986223829393697667390840286801729302924469945901371430553925124329385809445521478677478706353353569128434875382374474266522146832743184068362507350665897435651076589332638420015461665367350899325802973500823806715608471980448120865308565850594857835261069744173081754401935983587811446194285390941493233513978330795368902695682702725950789071051950100309072103381842607019500683551775441922652942131880005213311838908785427577600630605925818778061815065866921617050941217939909247705158891313139684656018356302483092053255825917580994104921411998538862197366062152657061271819363016995971714318828931640681145776813563747973350217304063662596166559312754865298547446139102213932505612192924228488268375451564766666290583901043081314163851141860408444249077702154500086529769060367237107226127277796331499211124490282570025706161830091325791398532959215191378457949480111572900192359732677074510921255231198807520028157865613225387957867937748802049880147496201592149740956935004699459143225888508112983513083647747484104915544349612776871900945493631132450819931381248319456240195288981170219730702608242932284585023151679328606498639347674884104121752845127232070577850824854371467712269032195464568656644894192349308212040733024354346083550500425343082700426188936843228013737442535528733494645536548457562896815379350063653558037975558690880550798040003435233312605453583383839819964135281013709485873062504233878825484910535689063039855843682461937798613801011792112997820546345345386568552952977540040129277231259400691023706936388123266616519654295138143843355442609798455756789641016619165251909277604864078133147940989039216595623371163313954057088774926416145325439978184743155751192166492209159849898896699961098926790489501470428887947247084578691675740920903112955173093211533941534794572479813906406883936988999969532573500464062677523774566063536215554121688918383466710588812052294901432157346498265684979269337463707602967140283614873666616517843780576660799412281884618692275695651332403923298287927271292864355582691896905172375830897705092222001990766913887160832760810852443793791005129300892492168460834054330375792158020191549970935517710840992398328049994329800307677311706670448376345533872349303760360081753145381127491643584175113394523394098770290037248122882682760541844463573244888433760596123174631075068539243648266743596738104014712390639004444644057520004004671396993628287213260346299716154974845133845602837730604269326717795763256260352678920977548258043457601464086382468102242911909154571841215184088028042082289653099760184350565399350456052886604388761219238738072988848086277496825222137158099345246812512047076154871226032520218104543795351789450470412112015327506240497865559917727432209714425947811130310011733583551814710014986434475490161750589110067601588978969734136127373037434715209754785864443905309296764015058965931518359694540056467770559671102030050833488636157046218599308399939768081304286150823839787781963084681511692697089905427489415972326058357612050266447575415026815271953911597219020138761008211670331975181142576584398189917425939648282867732580613206089363053040034432409386609889679023270651529561225063745789836167034658008244320534235703832478901952317907045669113475628727217119482501789941570280738012795712242680795301700417988713815243042332254120841652455121658681912750663847583563797227923807871190028870705264618877306099504636557902571071959234801509435462336443056958469838699505769226709908394394522695129329463393997870983645584205271683500580033436962631396485576785606914681489447612838144995448603509501606833955223440213901418573892545370749140328675333899879251457705031077856444583675757351534457241065918864299605643791347976745133355961950208989470820567555521404661245078117654345432675435954972223309948556810308076539214143692993791522990148129686522992544942194292309001191488329910376465275264130859402472219510195158053192322784621589406914415325220552441137043794979060041895211649421585690979411088286264219034084711670324529749136681049178683109885347855819357031225783868294720914576235883517840314365703340793645069755495675679262579495751860326737349164963522626191505121942433128084438009561582398629649030633499528803139206783960358938285813435756471427285143106225634419305237394300130940045437647066240699661851419204869389447078923702008856797238791421197954844371144196974821356867545216905082859249532759799712293418647452761341294388906219101723408308328637123091050431723504000659516227203998541402814620610969268907096342160847605678207166890606404360423971961502359008112749095181905958305914453922610272425550042139771349339838555997363902521999525042269364006526374542177205735022398000902530724795258428662250918773570720253901212162751446110554487571961036750769065785603161405461082600288434341081972540720566406760615724536367321518376388565020306912063990721122965823832031726863567535829833374069413739096303278732024075469084268294020984028285635358519464217168651308394151467583966090628408946683466699995853192398652100341202512565400700815098312460494453992023370888633473397462555626634793508970465499092972608791643995038932073288907814979556189333035968827970438287965078177062771203981270547910754586325741568251333255152763199418800133909254279371147925108465293332715481597743825856393025285774888792764345508317606541423795933750219870433040546659779386834441312631062924032054243090721061827632602540030266245361502157548811007279867584286227166470811237434727974532755990690060273250958055634043497203301712729749586318523871377486265695517850050770117377486213702699228931464024845167954324232477022891776073679129123158461017704362252884036593462186158376390814372847617633060808793496534449653911581294170870847951981266475206046254556491642714992285987463054741817092836212702274832738568303970667649713990752143178396787572393357396979916104314278204493351388713427148097780657651872094670463021944337884391324964084676638829965267124809926522388103529755141909322254502772938369778404558360805729466847097134762932648860688903343871206366926659072764677087417639315045750107719763964512969721541755280707531375337073312358769601757756822866781059155744816993627116737390838006554802263830578191632899517960744491873246902661869224700151622868747457824349486756145876412260374031731516136854020492590845666766577532575996722207019211386796185610602441178729248581337608518617465537727586563030635555003019429402055379268732945392496523991830455850429025094620685247776331217457596964833745706591774787937239486588645709410772068911620021239060526951404935346105795715451184644415989492870490945802679329445516407859608803044133063856211180511368620761382350800596104075301390237381764194261975872647962234511541724720160409700378800120531222626243918568305604645168405116042261956956915523861608226791728654358536038770274390134702926055111312859128148404426915620875455828004767895050432281775894903096659175558827032188014022786973310929064853780190991201461360216006658867285179619299114168787319901772503522393598567414219672337098942332628087469272983657983439218543734829122640280312840291984580463058147980867132136434996568625893388511802950701210564143663911745899134121082611006280212662802576240170496047788671745067660422914569409487580534304477349749086454801979578408977425342921660796222593106023102628312200082965183100979704681881583887026351670908703343794523940802589551865147735027316405891315169029446783567812641448266646706960225108664506954963003951684491285033539206562518567731611896919352648885482383413231466259192598813815799537930370523820509404410553619423420327367064645792344236516776482528697888927449801435535799554366475599107370302417210780662095294068170867192305474982726465643188806851415253219375369259832456074803362307941646830585906441636861644061014559046026416418930458222139514175131433380936662393178849682059425367612411486019045757476001687937375311633790424975572460975583191320181728567110790915489771212376526769116520535799456495241844738887829294186741994584207965324195302909109717979416273692296293485089537477776035893627046597186178127136473782045978500863363502962360715378625017122686874239084832660155161150187632663528962974679179129258020586184033415146804235960563869764651814446989760694721326070797046134719804409997475204110377329527048704789332829867501161495136958904073373062264949369583204775405137591739711100939192982409210571931246774164798834385222822896901472676461171017733025510908479569508090301139307840599762746692223797812041421005404959224377294544647611843546441153005231352469367730089098357023408746370650067703272951659966305683459913122995655858871114068636425280140739340417266110745510123547592816278172354063987489840743410765681492913019108182250042952028900418675407986123941010028355535339103917222257602649593089372691665776014258662000318325193125747917100478786343141667785967800067467045236289633258190494072613174721530315870637088913247320402094146541857887831397840331780976614878376200871701138708111166006581909444551518659244055580616531647978103904705780320028514632474159469442058528030330240675357764248197602713597290882794657688191534561648192931552176351218665413318128451069719254898227312884794593109181651831459685757968836656676891555894254296030226952567051859521015855923553047007704753018121147517535005522040580758567873706279153100595309716098166285893742962232241170761674235535368750349173998921748575203729703883421685714683584671966136511203081956076013808121052772758755793831150899842318581713554511134511535379075406255804078903575308417997185305971899903903244071888242575495316779243883088841275427392808619535483878412193558482024547478221694201208141910823394224005432283577820690929123069269859856186124814600123793991978300429311457118756281063403482953946662483049946671160180893148819244055558916610504860205896020472898045120267481221680517233240032556894439435069367860869485473016129975706627383125708649269020233835278264870826415719110909117995590764651556630506705317800398227558920327941836452560858018085307909511819176385988995856703720996766333629025182801355246074530371683513747596085972315772531430688887124452634605553310839222055898668955750167380416716057713688896207274827494092309845582768245490951356680074163243704270837500573874032757188802730214314225485018591350779534359965592504751637855566767658089915436256640478861734553817229899481770329271278468973280119844148374478673881352595498148114718179439334042839550312774986627694394588561724824300331591581540712935134059603628818546610949230037264260335590720594709689566705725338944072996012983722115010254496623092600121041918906487104425648624519701111333863598506239757447394274212089975477565280621397057971935041975521084939974682246190607974700562838384047786971088434442979088806096009332699434939087159901335848247914295069384066890359146262182778080903845213633563260437645373474323919194439093934508951347809507431119700220015832806418449168716677398346225920276642874620178572018237984977399928531697044788381655436360275534088377421353299666419022459133504944971681174730196553871961463976384467908132129980469767384294291022319671282285759424876625755520223254694931576056473929375432144729277524542427712963043438576787388792886343904877162630802097204331244141217106469023253550217172626246059448660271001292864606380931636709243925788849654776142009723899378816361924375157089145212134521329756301976329189296976076018395966766368495886243810182559630650061557088582898554771213061135497346705821723142557289195268722606920512531016286395937548968991921086206602802138854012681118453336172136050416039020873131814497628156807768974560670381241533088339808464849752253372650655512753693988840412887608702003358366131604262648756704413816303747998562645835162791796327208307662860918088135512297671036376944103837577560690532660819022763808641579827086587983531464513988527064997780809997062361852185599522033432028132314857736424608849055091703212382859205271614285288932363916519383430557514591113621631650031579888735767699921207323262766874335780776906961873943213644555691466179626635636399518909384630380332396264258151064726434615461128089175649482244780471599450692368823648591522298232679448305098471479416548889110846110937589948136823973272607902599009466926634366887141484377558641532885130200321387373484921131996558100053726917864636772430733837595157244496594943316486625084924850104121880799623505184175154169173667070422234601669704698281116406075396705258234567618290371527903989396516117976112592291288416700295305686250002439066725506017036148856014295638510294624907703790156829764543783189622566238915234734393869465538501112389809550905245981452588779254705091650728175759574982356558559928328633556054483756835381577297131803468039861189450566861264491751539653763998017516106343150850034433907273104449767297139195295741110144256813102315289779371915568355465515526214667870341281198220313904271633312715118415176007371199265366618560523747981323525027329332093031364376492618795266012313205520879794119440770642522722293412703517268523377956482843228332477882594873934713961786636086487870123033150998093282640682436986997130717349216515641282235825939196409285028488727135836808134965463774944810527015043256686232736809005192736474872122743061003954119829423820958307103525409358718529880460006275846508011279122441999003817222791202378748237321336566151745616463283438463368929263112806437270717720778592422410801029354587818276231259153665859580195612582974690199100184725533824740590910242397130212826167726011418268917538895223338148958090363984494265018286731259934923555236991679622587142363325062014833096288354355207571667906466589824701251946224851337068756998241989646436515620555014411792612710267733197655739387696530076562178913492208451618438188994452873845137286082684667613531947618952684982206765572183345097673006781174035509232500810602382336884018443327887219108300579366889308435238090290401687479087489983805437585045373622036455236378815331795553697427967385109153110692297748024936963489001605265325874452310730872448149087981311593273634909987140934615079356698322754895732392515759278808332894768404955981444966595320100778619140138952127050202003038177676697845287196353248612114204859184916179291606646079821504481173057358715985942352760199843178091484710555665874816961979830983103817372277439166396813618698505594568039516931843691091611103710351550296493706152656556394094330864240362407048922221246143853883034397047703900312070039070382904783301851167504517632399678031555439657575966104683871820920427833068549330834714474815071147499657759225434086338195020562113253573781885963087520616281654649366522414555479205086524059194484509362793459554424267660694239041234235202957427311947311826733326630929040074872629317033338209111895996166069591716322992095482341597012587802161242962033032244113294193760934429995604568999760189819039191325147090111570805906694209586337541539047599195155700148292751664330927852190343223181666866952170361618475720253232669934767271760253048944182857271109459718031629303164778387304517195677984951952940741076752632397895406092143412246056233310131281912218854234953432085411929376940478212675477374021637492024317072564105795815509797766652079462928123853930544679459346538760462505632349919013227679415572841948362961346770675996433594983781056093963118547210719099267113416104890456777258932287578961187580437170474638411607985690801220753456350771483380219916651885909180012831755660707785572090396502204527616307222839828589590064675468089353823624174463094779290670918117853296540596944242244115155124407114418272714964202233731595908474441034275338261124218309488460204586058758921722104632265879600746993667332077517750110417826624794255165380713508275888680580433429016229454862292856155199518968140910053263213004503327386467917563526800530457552816457213794025916004532998016314463547709907219553133110821412490467924039067219552430601310285055116478454481271542193391035111149446622865895990628000843201517093377337465525981671301873535096121609585789238437430304485481087695811725833493483576749140302142041587179419895055975582580955076172596544033761467511020134789454580538788118391185011871140498281902091338221129395497233779245960788678569782585654206218800302040045426722729240624680949863080900332857994956169298861674441538701725786809117491462664483046723452878719410040374562743454336400965962067504916365534483895073465543790788891666445849571899929888642209595760564952462474112511850246130745446431401162012736361268699172771956117991331842472105780512700912558683158240005961752861078269207241477592872136104578718615883822398377029489287045977461943309167563784424511263225563161988939989286781548885667851950543911356743689570018845565926418570579888306414866888378387568474913103752883188489057598426258240285937447550152498839045497739366529618745300791072558289464845636491906193462185552415907574991302279576942411130734441467276368187133223451863817257242492421795530060347112980352153953573085897240213279231104055414992628684037198157410895342925569403844114386173825751412417429372165529181124725354429582909723407502170984490391209091083679473507246503236200248130489906958816076090570091182099748784337664214946095376579512428042811834987607911323977803487191221358827413920861178840718443045300617178376965996183454230498968036364951331890130796762443133269481980407434458577557631332596244941385760590819961239976612463140169738468789062944201927642585352918009670965942352360835081287967600551198144839512966224891206808665816409581988465539068073927925009034079723795928847601279451147320808826090998337891609119969313310697428977832280408856709185105800099714596522794702489314959848208394366592803708414832921720487037824340047069644915813164715040279319624136276637089755888575970654892847711886388451317357212423324898351021546391527831108461529318316137302139954228728244251398745391182254028471454740725315970147778198513804361758384471862165244238908662029278461804370367496973757034460068454923723350046032665579712265170374429703642660496373761945229118352677153637803677864571148824374425041722967245786604363546888309858037573999420676389934347164343600937655443735297238494184507269245726277908346726028044932128104685524596520630361659553919760710930561534153025004339103436377866449562196468367738112892908282060330342231581577569102712824232068441841089091280218050081528403262740398065049842733028691609972501540747452123138988675202606724545046226638302548249600614113577845483401928603896405123235468732388912325002361483555712860202395415198478010381267117043679813073928846401825983833239053800491949075402072857877823732828364660039838193189362420890145610583548029952076881747719733713817226069209955275627885599681402951771415536768787272533302084659923610463318916693207830627438288235812956172581246238489022325386499896260241730582679707651332190686063543643522339095475539353201861486509490306587130560444910067587767467952120756063367311204080660753240083399513821856386201836132814511284506649470404624256924164445236413913860525520218042436841068275251599171613149406888102275851125980801713870511780232077035007361545111554018778597686045393070458420094399679418339708795362813567758251817015862419982207599499885639237662971967113940987120882211435890130390873157148976141331502060339481684369997867903939328423044308012634104983903525518164522535190068743761356674327454395675244137163842583836946316737724111741102041293855184017305900241142787327732389489374891517113800266061289691270024386628937833984899590842267981301034267961746974172546009701521124822810877313353897184283971141941926259556436934683271868843135653878293754259937796256756763648737496113396478436212530700972339706647275323560592510744316293608101746302924513621442743982243307881974720248561210697728812787929758775625979297063846772012051688525865320021660955386964782984405432102297760579216336936573315451404997769877842806167132215436462500528655677796162635425496834859585556978096473024036077096128658505479825161886578859581098233001734912156041054021006437625010529754020135161549986235736415310980901140072015327083117496743056167794325829029805988493406875771146256573183874617134835789718638753029555614117593762017413006150351443053979572693501334520465697618352717557284370150972751283310928583322914695027929788777242690491705132537849187544836288278946315033240593840087137644705688845453850487991539531338565468617920348092197042492770124263966232819710503242919318195581041149337088170606236880511835634070203460426165514104088616010235602847546467849219976859492438212287785951884631840640213439696052636604916136005863612396503758214592378921429021791318511184944875826073042217722098867710487426824930001768615178383863714577629116923666964621427761128726861911840659938425097529662776606334818618987208081456899341695440675221926233275001511620303924188648352060376262744436513832166292322144298896077872370372169184921513274048017100150325866703873942623375710215681043641776376026164345948196840049289128398072577084957330236741641107305422066743820505748700306000564648996140619525535531765109182277463820568777002229899608544185819019540163439167907623505032525325894431907691677454092617117363202904797330167115527985891815722092237544964782354591292912346425922582339255504412522256949598867128773205868284709693770874671035199496661366362049745171257291595317486934366737461391073374953630557761620915098121459613850534175132542323016804922012070101628166122971751080097631822082760076828438806962456730108450697173685898940201469518775584692592723358292045548665510282050781811071970699018376122614808894223631772585690973749980068331540214441116516828701134491901355772599574253828187383430976364311979560335117831966634863907081783448665331790761162530035938350995745084001755491325268737981729133381481327519276248869138246907056876929336363612814268275197302996895333842011480251892038085237297040602542780468191723264220888257273527978587174463534573592678867704493914829550390703560286574913931395693212160121242329962231360913368793601900460156286625119592383505541286521939341151343291887950917602262667079076403821777125885029567317473895277613784134510957182208254252810303750014351422174550352131657979163825726484491236902171459666545819672168140960689834911043133596292299914390266186461602398641966907137506694941933982953696684671359309662158507787096507407896768010029432751106123836287898231275296619530183191080974299339506824276803759406317256305480194677243615208386221713267934582374706516859558123112599792832238206715409937675443104139630295333043521181241203924110527306711379858583120813237645022791573607192369490291626607572286852880704444011639081028996197357567933825076631782396562762332978143433346486433606035140962710756221949808135048568565548708305578700075391169211594504190505145656095423493059569811815519154737816195104301880721882888149971641710400838837544347987228630320683487891833306850823829707205029829952031246486484631507997254994503912918980946324458251351233620813567199672157729313813840391178863851272675538135451962239837612869677499926705514800380694089397560363914381611001503567055990067495518561032835482513258340026935810190101175023919782901009874529314218885891834520983035577048638948017427848995339005106746574668833014051389980037657443521491693134570713062603988646004022231875406741697455742059175836857105938412908165515818527555429124543862655150496824420648987016011060101503396824756534544521106045683917859030430685012589064999987556793255225051475703226397481339443871474144430968917571878405761258468326538495703646013446616231621312831135913651682242178714185822428244319617178473320403636947917859880389628105254547778567243120389130751976569095060360751588546236068739103603832975161733038201156252830395414370685586340066530911004570338326694230424850076392969774241232145479177060571522130623252685991506655830755386171987441970405517222199510828466464029689427388968005710737503170671093537785654811292622805815263477801410392406675074262466346432833132711099192464490925398208858913415941346913417753278537663335483476262406088371152461413511493143817737725688252521501672911683962507046446018854336785249496277300844518057677483297520600627518258037843715392605917941403991989963427036378016930396343203099164414475806728755625813430265518972821869690052907029648803493593575894274715958415634363039020945567504638653482945667532423171499084626862451708532926376322291196766291575368886928479936475079542892466028762754567046529341551469022988544945834880472967045731485973118411887306281643117858979497033663547593719632377302945801880600970795814922805151568301014210308465880496996878366947254491953627719879653113151083301615430860246529359888250108736246633560423617603458070988066363264488768380428417398035408873262010784479283532461376451953054152744740885899170610849060829084895545703075623056350089582195763873844577121533313721063299970377525864333949252830669769312867038360734898904733637077858524633226710417451393879876287393676070225387528593626951143985152110789027305916528628074858251144025566520094828702793327172145847688960221136912179907984798653574093035245499684860985979451267378899216074262571252728584746986000633471010580432788372255630142339605725754522755726879317283915710567798644726241611643540956871322779412835417751160625793106904947128688423995566189070507660725603343827603012123528693107745567325886955069964576167467831045863962359616089568846595007779816411300066017368987785306545342183091262992539950767058265030834005955768469170181696499095245598459781312878103613869154423214727059978093239208639239311474720873514738920663311523179709194995843067762780842664447270118091783931660570428544244270439754427716517223208057403042649477403043081615434894061268556863354439595670427784325871330890610723180655909253474766375397179776487830817265005029021095864167698370821578693807561398363895797119915423929347180171527072724182286723708590364903746937757260894705256865783696627211684745891137384660064419080092801863846533834555807856741795766915459338388565933557206984738560383393500545592632265725985743627640599407969045824876085568370394853872166362220753694407441803326693239408507248694651751214844345608322652256357117133266029247574639095256904535041951151224576586460715374498712321064653140214687970624723149742618533335815691376697950012010344028130126770275342097292394527459058728288904492313541997805187774529396658264791575415672304283787528726848881587697234367178886838682333335195890891858640091580825014408328945500231752744876748007749103521177540790770242883342885150027689199578225511915043079107269960057268510822683429964251732056100971790805325971427662887231386294422846877874120048131077893554008218617949406562988639758390329118332485089709031351931144954293322190345229714085972947062234492885545747764983407297539357165584394500243194723369591918500393459782173864832109621695452719382268319769004685262644305741120664788279181728965728439039420184515621375436567838487210384809327085016980016567853029563380283105068321330894815976766616063765008114236782720215077995472169670301575615465200125193736989260816878223400237782206708700753808813433495660288099587851772108472766775385082357868604243045046640023810768224564309356732870811573012494480750988390719771660744832536067561676851543104440762945406010217878772444929330962711030974406897842040072992254542544822838367377489171281456681906267111159892740163755701351428550531052880461155950327359376434803123241534702939482885066616466612564758888613627238382457227498987239798962616054988688943939807119945467450794451536414279815234793823120150933730674098617431009754953600943582014985047345522512790729223570688197218912893028254819953749551223850682525897403388337390945099487434528393782743275875683763965973159433877551270352944550996625009085319340188664053934158039252794566703770220693467616262558316677235586181072007836049772935746236981687321455994525993700915230258498060470915317083998681390077867646544197759177628510634705225074819191505920040755384525417580659376017145780074199023305955626606433922008636032671176187875521008981433516162608294876285447780900753983167480241253735281491700255091478464380812248683304206191403493033394038192336268010536983627495043295214730092332279661440006352148557258534529176687014032559699290888703404409643984342149072812067742297544360383760719048525673461224539692881718683660570493470059632105182924892875987623640522461356858575888580763597573559868452466012696466737193033803265641785683177439657413134638346894892346822899709029352286402633279965550570427534221169543768237891254905184085178896081437944751416837088185360701414932130803740571497038963196886604602176022130062654941255007804809298513539665240547798359862255924789305203320844235200954742784301360563798575669237799023319495147197353087423953460524641589138906967626028040546265787548393689612506124644913377852826358969452095632455195886587820519831744182475698242877427773009279376069312754071341068362882601465783507373035387642360110889170495106187107878503824577737018112211229090617392584039145844279186777415641223514892709658724934951263859349897461386571440633350893350036242266119600067181302075195901748616835339581243160004551169032182709021105004535919856859522445054394890699548932211973519565869154905317715602411525134268408621140557894642278239123846987994686511873397640994055140285440326441830007147216223125552521999227948101934718940462517722314090564042958236894919469692050515367401655378637864303770955723340756202984064746698931179799292927514623195428437846847079217567480107184222085379165503936347197324689413580391445124440024837691763226040463091535775727241992522850846161592144406511487546409272885540426711785493579693718402972846492790642169722383818690277423927782068524836181666353394066028091507559186482070313074866420173288129597861482857393514936120166127391716474639075981521055554739047230962353797523458937182892883747520032351585554613300837927540080017088475808665789296890254350578315352596635655497429699890769871975608589130261610759748407477282503912361896487866037793640714949996695483370031276152841180035488497190540532892053969506768681435224607527695473999021942252100404352252139977558557293161260997613750342360176277693932069172750993941429209344291791492342669348382557765890852293378629722500547893154760033903141830117649740966292639576244739116586806248016055787890870620961327735093663397681434107644019027541446655709915520068288196159252884993351593103533838909830164504009036676527054064642056788899547037674901013529053960807761306486746965958125798096066173872057069243694629854651197224683055078621804851079149471350281064189368848319261451704969459055384325423164121570994709798578527456540538523166812952879301612228124049630130656126339135686085825206213673228235385907338693472166602461341891454808656726846679155128546303117635870748847629957984969618157771847643928858037544411464920465579580126293195296833187669346265847660594764885751234919938391063966948452279526873349500000291501845072406161938729101702416518510904226610742346978011233910025211041894384001672795804593915206914317749254280295139422248340491486685103016909087375583628219896817390197558233130164648211174054671388069817332231203475836844148689991770804174554807196927148585488898345260463605203332346440922471651711536708551353792025630779401237385770516223514570839995709642411173647312098876232118830259759980370035676218215513581600956727977101063971993159257297624309492163468555753686701011331680870480619419878643841577979360555368559595034211534781503317475377037846508709270105079601223363034917333099248711465229355668182196621068887771546412585865290340247630110279081620340130992646098840471640640722130808903483940341033842101001983014145548003759076478190225155293295796748241604643926230563275984791107443796028512632212050572583512617597265216166845758219217570043109151479272012255442740442575747229370286080205891375414954382294709988213177036057949991830461920181982311174920730299719192266992468161162237836038926864891871546545927612862371779178698879678227247293134149242128129354658176952832611671371250209947326750196758048779410333278719188607426009880109430107543704434606938998937922058891930964872173661514344823351928308529639980324317394551527005735195903262852488210543655132312886625191606681546536752382998974491211543031389915791627897659723786435774603717852537518190882904967530444852428910488931131692957902831447996762833599960692109503729887616587894993528700398662757383504452417117174391022288586932555651856573098397947757970474669970414040451851451713876700191751558150050259365699068406237544547131481228986126457968378978696506015452422637979882542726397298531393512749522969690506773305330492565014866506901697487683458258869809078931771733277079905873074454218562473744920278945850708470844973674198212787417531065512799945919198545211290071616534310371924309870613178148569681671073595969272115128219704787058311079560984815143228562099424448571930544879509408262837328458795261404187449631832591078784817425199651832810883752172190252398672338175398385106176496594875977342685493946136142788882219684118539631586960652790130991097965723612511715228622633869061992305236036469809589372498825818122218412366803982048233493893168765448603420216998403993725487984659924253329716265763738535467560944964911524207596980757523487647901049029824085010540015529048485283285539800953675530983017930183104689044923123874929982077220414286164292752312046831022991750105660333449191988392745762544543401682418266006926323087950810326982961904829856490586666080160453503773127660055490764972502222678185383333806215249130368173550437867441118087316616510044429734166516848789860447049320745855741091752994396263523824118081746331681466447650471852686203067136468475901503306125392104733449301782261161983775679561554854285247217493206387422183708121573016105784907553634920504533471762772725324295670818520501834749449244214383869704063745462110394276896060037974386498406694873829613146807754145600833969408085358580541213107909723045082838776357416800129935724821905995232519349156292521808910950168494420418922078141313279647243740835033610183988531086260561886406839782162755432944328510278769586052940854343186556068916118402654072661384988733227376833755169236480872923749397322694778762495978831587316660378620282334031388268145234330397626136038822937542288762756088237981220142907001622852529221825263017707336444690061387999739244060901433517087445301834565524880875002556451900794503904919778306925322414662917073931526278175849469994968882625550017232824981691291993381278177027635209577955161761103394185954538678399032973051092875084969279275330065809500531707616469855599966043106628720288563623402332579849004151396832752914225149603248034350255153787392806140155085987159587317527182458464493254186700341257915081540918842784170675785044767437015455144534345694620477120805076611238146495159664062185683556760436269342766562408038903374881051963349866232440459405062362161296853674150435187200626878709811723926051892948653797234615070121739981256237136260388279494981300232804417247738701263546213593313324305857023462040281413752342332159199644450568992472617175752381110302203971913799901318579610291254411009151885369646302198296486665384404323208193028153981754187213130878517341162149818882357422722793852749349397033797278705588760573685938461761833327629126675363659331825060136797067536433609100017531051432877551811067963104621185741473277632846017399500549073644938552256792225432556905105810940103119456289535632923813206112202476185201493600838037283544386658238854232603503591122161292752078878436041574147828573014359888371947872155353729463397507565980838743287438391499348477496030719707120545139585746780869887139410604067730287970874358119813495977434619580552618376130049108421094634022148298906742059411805380492074538745266331893151518254001858766271826924337183869891215700195393812752287397383983844884918937410164263878096925777943401236718665842728271891343215433658167465321811377039424726516280648640652830119273433382161357373339294741355826518583534244079663694081203376858675043634793898399683266860270265943598403120182379129106615469201622757116037915100387289783522325596492301277068862248103273178440553808195444605914860167590359355686571187767649146577271977142300729448026173487306135546762799281179142098768141470425448104586217638031540243357456746073089518209170463381676707441120685192958343387026667344417719701453331419553646004483754948649998051978814089691535697326814833432302860505887142072642383978395131512546646684136877954066464928004264820190854502502543179937097791380639787289110974760981043692448921582812860006841905990440020978693065473274456206903310999332953934132712949960533524118073056252619286316066162338459601370341910572654471597778553785961372699107380379261326659871236370998795537378724735775540079760069733639053347819989649739081758621513004895169958472692875527841709832568499724462496255635623453047500091854297991685839716533753305014014759694927305312702066525856095006639442805004456890220282559860833947215659033109986408148614775685760825884943321143696723877685501077537263256621577331282711908498864387125328715510859676605772312280171412432570816746269935160667867695301282228794142131801603703652052617053818418557275167557672028169298970359208879206505735690159903341902136766924057445621659136555550851453137050673865789499996696571035570568430273365660446610230488658314246792362073014337794197033593763961459405401878240672192633388166731654113229096071591282726993585791338605272880415192247603778668768080373547445046485824188751021511225820684947879239463959391756421022885703520955771086716268365794086131289537574084341673298055364038229483113892337470828080777698910576823649161071477075430740195554736118131131995186141762313888619813414258376275451862212902475691779794903380635610194310315314533422965811081525897440629080232902490175108129623037768213178909817855163841165614460007305720128109307763297469532701083125780276123167029691763476674438753558474498336481779519538009951550539867542931693250062850777240783852916021829200531242061541793048523920388843865504897415390999613447365043815410342205238768306965966619507059974976985402840797893621844489502763269235737993373885265907824255408003814573978001386115638043667493354053522692410327862178884706651743264391597310426134042523111683677672257972402851226434967437111154127466006712820192894143855112786827176390378644124264016077996951811312026248508566401220971165855140601633860787767143971987473546687248618780222994480464728121731312562264718188269784116013206662675990717629096639421199833639558572761490433262900275425086582446523222737211792634100379735585549508903716816560280071826684900595510326279507591554139055077665485284725826841003698797776009044682933176933482058003391288404626815338059694385343741719399308177142465940518795317561108682830673303600584174095704364541191027671617736255082046979552303040999425898970182605262592652099797159362425363930824007944654134232708440692105179161035115411610694227634047189397936255314898516221636898752846429820754178257600851712896267920573710219527602744440733862778738258963334092005519740297132993421568053624194129213016614093373547818598428744180920510954065437401134155230296801704877203061022019184830046647188573035510098840101148681602045226765833048756684760638434411368179661381884298644011820629019520953408481826544963093231857521288986709858958148231718976198171135185984548977255023696461145724151524129094571912675763338622507187073241125456184834193969169366197712980590436868086660559751303826677959666020557932592036359163711730123458146605229507914488351172138327593358115061155103238117082794874528574323378604742857624479492642531611771816594686514962168762604205712405659320433700747954146264920584112533442986152571989816018013330364638810657903747474056443023027211058016468525684280204238112076006234470747334626988063346687113389626875080014151274255007354754772757015509797186982896713229722606487834202972631521883672498009300096189531442388931891222357100672859193915303687540919557167127685815174619369663346397984706792776710212243042213349870198518614985590458784819763647065170870865266053794505780616070987846741593593129036846616245925758921374457351962121862544210250398890044684096068791152431147965860350258540709885303598314171925253296835697123590429516896527374540639393730745576486132117780351475842652535230259600041785323848677120293845268421466971079739712437356336974492907955280712571728313420725002749433065474092282264269756140368284137240695313122349912757654315669450149463805253722970323351860370481690165970870918696519559326407015405637523032530159610529540003136125594913181870730589749356563340783451987276639896168375764700317234929859705445733383952206397513723544162644242317770768579442345012009957419901523341994075791476726603602713770692788133176621225589758162306003666381511381972810885326292879066923524826297237854141598118046313234961458334632538197994527599657898297232596007426862328711765180230859191233418053121280610237374356010018885359398972211027837595132036639063567979660831598602862566324455036266334520873508323527571771809014948267269031357879636396225206893862066412992342083129730596434402272814702123257946329744443503426678222084305069875049306587808768627140122870251703369532546649300048359486945869498673465860955988232847511662108518001213551768837042022647369160123459335930702932419481536932593478165439196818188704189544545843644506661285627196220341505671200996829775485920982562694840114843982145647795757786593870897093961751320200955556476440746490211797785581093157858435641443591941546033884195562856640734655444369836926010613476294175193446111615726819047739726161322434023280083608646433663069229927207777046417556698949041272412245710382527625722872057950295298528479679045394799232891937433880854988031276978687481557122197630268425828908006028778933577022107407694508938051722727287197661557667925851791480890501649459559503050525609479259195106509515524424975093336570771463061488978491454440401838048816751665092791919090144308519659046964858387565253188208566350483100439715057595916506052612426394150806714159302252925447930445249237550819898390375749549996484541336212262857087858404948588888996749157159554698747887599309549260634093314972424359106600056538240364618281736625736322866891220824001016101109047783953393533446678570280061042213190177664986269947787655988352839487908568397917982018259484036066006070281886302299317128774998393164388747900551068362789452178357007496610487776353394290318041549835172401626213611740031265971517720251000266267262676420765572428591343042023278561177308441182185427052938342660611313356243369717762501221075496417319247432203491879546426825742559555373424436058271370239755941681463010350563805909240640643813757002566569183918578008145118556617680485178096736344585435116092390030352197539646089830201973532198391400911395984742823018198805799340356512030429257503585220942497368742998806185334390026090674145492506294379691892216528869016717447346127212613880805629511924877995866138832772752154891163506014797421522692853107333350400448236945558859562029051953444597283906099351955997273627999381598904545151571352175556526552811736536464792033391535522274441256831472231063061779663714286177766767302756399469254868516496002234207744619112390506424619976544003000525338348653476295017748189491078995746642260896296649860593780452506858916923255955100983283286348624775679990100460844516156058929254785496534841882798682794170462078541626540996444963562572493599283576622871345202603288110719948490694575086554468322063559476763383725055278423965091846548314842905025231432933103322529691938142905131247817139228597016350906409155203961059133673580391287717422134595395506404284912327151401782203911019597199097532883332784278941231370804161543565693398816077384102374525198225495257692372883560987418412910591542164258594439275541469126253629328891198687726968439542164783201762303898212026858883036543141241021643322445318985308212451148820552164288617548194740681507194019989628005958601886001087558477098133000082452934495630158892005247720310407466574217047347914565886140321427356273015262373457106495555823800619445573576246683859715272846928776795748618852438378937478360313039374023820632206480064480293426102221877472267765201285650363876787811300876425022936529937733622525561603503694786802669515958994672142284909493327183868003540039309151457292969814935266407156471122095463047645069669647986975143314028809183432373768765460243775612013955008420889978394152017874827787942216792635183347082011361524093762032274101116362533323258248005763456678479700026507891201572847915667525543533814567553600909354505901739902726848952854231373402205383226034849769125821797058874374165590054037536817563187085654090278492830715348474968726655119004483310174975411341217651600126377691005026858605417122941545760618224574568086054573293827047880542961854266191096439384534832589947121292697664095358129901358935272716909007084027315199370089538614334455501190577949498928519557240812519767941844666815429781701498636064354245216797504858838378276473174500114994900836949726149365648063182497824637468748843748213639001733219018361357065024560998015977608781272613736546708618359658325807957172664103895818476287515246418029742889486973022741282221450308025761229376738979151279276824933566873031534694590614159153615973260038609834816632076629529698639021144645177550247215326827451687945989358167418382581920661086395307851479330103042083416260488852542840230273290210502737786963487749231594570824608782142487326805114022908557255343452719906996280917343740005490003683454625415862130690663753756544152851870731760330885806930269001656611837289834134874166669235287565160539448611985125383061876063241824122872819799786638780789599039525402374524641799387382083780962912713809195744248046518119270898165514590259356366555577191000998112647040583441134891420227580289203478075248310707877867255497800758841865641218016779831638944280952668627769554980088694480977547442509067363606692349193060797153664380280334442791014650232417635335696748010853255729688022421476145794447602689057622454432797594810249675280678833695918051297258001973861112078722479607828270081412992016587754987383832617937665644036826423867854302150208146549077887450739319714054050860234912708801258730827589998460752007707422512271252958954323737844332445898485572970811229079795211227225948250190445153510030381381169094992135253563929835755495643506020316263119812212959739785615049966112606749474008771896866442780913330442427627023355458867771290886705304311352966618668551782674960379559223405124093426289100887807475951596868273178436907943723503218270980739205812748719734127610635473999339373236655407767154508205692048670038784476918180743315732709022620510560425480992143060325236659423246019861920616328965389464880899064406590720314297393157126464082879622691875630061559096766757233838288875206712709437927844078614398733225204234105202307289909758656481187030011443341229027126574037541195780113295184759092056385301802379667689975652797612717793232388758114152029673652910826245252312295124085185890622786854481008110633875374209484478384247300425008143410858090577968853519054061193961125499476017127305151828046089169354297118976008274334122019920505076970696757738113250574924873825351654535390759530699262135949371235284262315591793563105885148346157601047886265792442313998278316787733482837702521133529039449713065503123945369865539237454146363072764974964453352553833795484967930002531143221106355755053489376034955763797703416033964292443930584949819792819675431903642361845853421080137925174233484632698330855983707748951479229737760414607505972920456471420885325514107179411628130634365042335165393250748977995149565255732166578696398009942755278852058746793842920100619332380814442122117486400145298493651900341623717894913482840681042110252483002460556967567747495912963436394797407356833623514865740460346283298914598481632720799861051733541779344688614704279157461401843236837384644667718194631870086453135640012400955565359498689434812136078400130540714658565519416963926408558999105235192382636912673457372791273563265995663971954925176993347803394751659208558276014787846502684630096452950139703242244369714686735194021480683909088180415658537389324830906909896864480605987263529304243604316503875406178436550954188859710103360652839141737202819827980859219683752145468665447733217283966857837743427517586522623876579849360297417379292595524929381363030156639061601770353827560017691496454829453991164000322774207674193034438750102881241608904337775839208067601476106037135732950848841395953380416399378692533524353290489086366591787514077289363828281221039089335301804698688594289146604176615626664329957446662313395752491520096060912143313341062129923793864744967150212784463815911120563662807727345330559346529921377857664682535254133919378451657420963944070672293025044036856316556190461542679817299770867855896119811941592155473499650608977659921584482087622671322216907665462468296098348895806740966811465211384466875891060817386097626411016973906081009286151750714987999863652726103781553238417950052635346042731535835583420053567840295537090027740981087555541565870142227742771008354341575807574263941027335765348135048368181862045690565424815916130036738302315979503958738491235560248679971618038277915460044028901453533744622693593785766431593146193041503181897432614183423207490984972595336566232139745351313697796944816485925873919364670150047320602407573359383747542760514590625766663060486560359995943989354758607483539836547713290862062352187121669720963447992117638033332964743582298992666383567575836120721228842034458812208786257789794718644071127201908060065996013330404372352529462882915382073814262728729691134285795818896443730677053003914164408210777569260822220548963263429309616142817691528577827939649551489032429101051040930966542614017999257492474781366534424524654978395702720771403231757412164272283045112411524375833693340067075520883399436732598977690692621829122772854230481448378315573313617818679193385927959756240217899960229275075430296619135639578152290254386593711300379444457608135704963266953677807205716563872188604457054219076457428463925063253043436452791055847919396301860751237610177098036708585461384419731254819901443738335156505928909128336916109907116962661805585924367889327666842521132021623319624265898259619527333381186727220954092407223715055911582743771497231246357918548053261736651754817980412750893783065818623190463869158569631186681855911795399656611373733673101943376323730466453226552400636184776162263885093637114877050166333209527464158994417125502499022325656095157646230153229383556439587923194194176287808616352296134024525841526330807498678057173249306531017703497629730947417794462778199884744263926268241575964664995302272486377010292422524637176121996407566981888170171228937974604125086759298022522646551769939082081279010902856252319132743650180787350782452023416111126544697507759280698580776703853518057960109300784870733391152887821829650910853225413071075751972414361763756172466616372497833320783965435890360738094023244540036601521845043936074040284799768891630044039655979878601919180059647951917201390562163653047091010489646468053548582811857815650372441904616630649587367231832270929039935670127294878238954324018425295952616702711202469447460499654577327948605578193490439691611792300184522541723637124468374543693930527190099513523149527437382487247239790110891040571217819256867766460046376750211984502257826341099730173288418660203252075687120772397526075507687854637400293007228724681011108540269272612247481009660843797034121261643986475857109980534875549097707733027154714475159243682208700250801794318935221273592172082463698345763164395413537628442314981090282234781597795253914736469577375785983152429150765366608238809723752384823807750658763270459669093293507702637833676704068916911737463991559939464394305047509340937893461120801638944831537448760855553532897731792519126250511557063576184929999253626132767790962157732425617025478611957546404575349824364337582847198046880067616043989217339894466830270691083930221092511194944813672157732646872775941983182308799923126592877192040221194917766607763918446221459946186189653908671212703846077811395441184946924131616645942621535311075708628814630201415916780456768720409131335553902192404179273158517136824645668076826148207345535681864204840483725701330331897587284114274910211743657422481508074196601478798894145379914964648102921149489584591096279402591790638912272722650651046687144056196489896974571314222911103252562080983008947427473470589212670153775953810035765380707972997850412198548210547815609343804302701083749483851318863990445310909343946477303786809778474741063397598395440406232815899729314418676329854855763979167886174372954981536164941179556397104540074377743228597922891482987910039884392450388627054177278892159389878348080000325853296032996090162006071884628540532501722464860225525949244080626830951963607024163243778844554787244135886981772398819680233232286866107840687682258971413541115147089671774397776131198776784109543054262186943922712450937894518813457868677078155276663895741541844610135322238151994702023209649246401876345304554783069343801814088689356551855321117577548616931329946176631148063057146434126639132994765121006718999364914800163524408552096807058576696306071191849172168732373485264650842467815685664181940811364146817738129750553009926250668877402324134767177409219700910449345978676995474948337407968917041228175686017685415853145023829803182811627440095493178245403853918753478326900141698020699786944364424688048506350876832387688168393805068804733257241357003335482243797062885908894324471519056973957198254007296879970130499937265885216084966464110210161028448009914695687327587335281498883686023757441938516819692219114851054800969235235701044392464610647893342088293982378695196034925011632772813174624956643113458769176260737779165602254848468309398263701343915742183651190875808899310882520979098385348012839704208211395884339859346197988810104995475781472772058208239994766532041664344073830814552159701859541581133941349018204600677735316215731058265795705261589797589251803522833544871410873265381953812576550740794684311574285330581403023806026342695013117084316414781372209666436009349831937426337435441639738533560093692134702258079215099857958481959646826458340351275776480401483368488122490476266783766989528970007995493434245313090674798712318017440822959021028496845832144841239945209748717865469746998414459263923425761450107892682421444446139727823067296802213552521182342186431661730781708867420138033319387764329379850390603117980555073400636990743626670953345191610531216301171582336194582175001453075062905974079762120904265449690581221622802392790290473040135404344606015743890487289445643771129864420451385053407916568891627671721886857495540766303962392790184243675813738817528749046540538072467619103029404830880331435353531831751100221006924036294920405370426648990664783567619430876585703250964702633866133262479046906609171274366158968015099176710560615156688041624885477271927590537940078647137164053239753248824445951011813648200225197460466592542631835748629144542623760045151611052505053119102130435752462077374933702138133367176113870241931075278435477443835997691815040157352125960235489181379440675788265651531846144733688382831514171051143940512709498559275950451554674827248605938960868828977833597662997245875055267859534977389507249342187982016577556394894090859876603477687894399675648189274753242395770049326878167516630556773894190735429339335067766099575542232893624301018163443737926037411667849660318642717345084025031381248310778714593037842197050222044474115490405012367856210396976118677506440292086081499228567836134122535964945879206227328148447766073916171905743947215570853626718107589540299631835537672781959029116501557164785489459141013502147966876691443914225790914623444367190499947536524709969903781839454066282264608775729795042720929998168446869617649792826567719065758337278415662287045369228297500154468937803008835940110493613026445606307944165522053108662652020943238977579988380603487246155608526404776369409062606686590240599327529729405901764905446529092194373019105571978688087809799842926796119068405163362464359706235125202026876291523683958366810674763156214899309317774268404106395309470701126758466859273604929132344169429500871688618489659114743093706854090150985227863510588624027955833962903553339523944314683994962145748044960790777231792692986856348508400022935807230182636755308798048600382731623469483642278925302034159070687978358161208870112685854482850816506011425072281472313791560127007060389434483991319010230282076141819848910467199851716489700468522895398928970312520760408208323261078940574837108940207261848899122874647965981842038207145933763084930037558514075258658027309786322793049531383200599988877763386727570182859108041961501452507824582446650542621239258476760147604595642280044754183452552353442624755230301645485276515972955636886810912579843167407996038950491170049866014223245651997728234988928810404510129414486117555714948109697721175521457375239966514973793733769583555804279029133296372632928759997532631790134932405412787658052497348543636127846572554687818601705757402602838048268670146599383319116408329484564396627329581799063881798061765220169553065670618945150975452470684125182290937172982936595734960438505060139299699452184518994740899912765696931740819179900628933770168420464816491373010645242102953003320786729464158282585769850024665091055843273606373491455323961149313691647935596184783208887346950777922363242309587115486656429153767451125263151927352071652674041466918970739343426496288130889739327287230540160171082310017215015340987796257908877130674335974046932175695804223101962582530682490162545919361234220440137298796455964127949656219708423056890505099647825329781420697404785056069573740531162460136711842288568947613550811249387444775864857468877822931952680190291485435834574353384010630165067732110339356172721129124745440741634608577177863747410492262961109369488577964129795879320068496966770739414592612038234500494077268792486920219584469581627002704634096170797401928556623823171102099627196165723834768527559406098368571161447344578555759331229536649113815081678923959432648092377064214625247534249560895494009307596400470133015418123910477123529991941710332412492504126281499963287459457267180744623371812309346714531337181836105518459404456464295503676904683611178196109241331056245006200284650893373215224326768668643538099155244730271686951347158206932723954975053961527767471208714216143006952837658217540823825366197326622294257711084156772982751891497327175677905659296241205226194530477403841109688630460167446127104562249531921114631329408116885574856279052578545181114875790962010095588721948445024772246324622552902032757278932281638328849564273436536027046483138804871430092385262030388859737974855817250301341572387787810274278591763144951689931752379349054248371951078274922640994391102622778479272379129984226745830531473373101164927289527357614458803835391927278149328366343983168673302448865305125500256077964790888023197392294595198919688941001637287751001232220996848779766532091906477708626308734486328887709822255075034645788588265411004294107136416396007029143670539868100472472228108102739544858314687615752220081291283281735963290508060025350746973083253213905428424873085095351273392345741971082883731809025989875140759658008022840679961098535809486316046374720694528140092442439124645479104707982507713040468253942489306877143393142692132805362300218247869090104258173540233850263472870242921015961981734643902652447836264169767424883287388862682008078294131366800121846272007938004433839318682556827799655688659024278457153809229253274286723706644335996920569573148157166251930253199570950603574125324879356139530751921315971898657445071732089070838497512937561859432404261994161902603643294967017267284073717682390071764958786925847859660695242747497064276708369877419541272106380760786522076550069812501028693593296492481959996722868265363961390974950844072991128452238710611840417960247294941098502797536503156387779919506224922123198022011331627534255672247095802548481694146497329874348799123907370030202031237965987265714202296639408326754892000878243527080816829602741473080313845616233470225088806264190487304411887282627628728818693935196312675436823474215369374150805609443850939348328963838072182139838272791930365031532897404305157124092905758784566616071294212657864131443304752917678033481942577361593033814200228124184561994783564860144603235647036018062614586851402597074756894062000970524333893568550326826143206337621522490399842472921004437367298553194879060909795638681856789073700582008120606572118879413632022576500256545449326999777518095254954542614455060428480670410264154883858284864160089633734111673158244624359966699978441099942900599569117812111639138454197482135775859866641234959772447203682020025492214802884031603304224463047429707590911433869285881447785676544386037124447968202186085538732468754641165138756520780058687464719661255316065756370195407171311051983147955269040040894937379727181782203774973895480898670625016846503807322889935526952457002367524882027455967801047520849396908320617384013345585571820855082548174320941905076414873943598322252502686410248016323054378059190546638465013478079128544941418033269062417773677271154815508462386336505442649481770757682724288662797002969729898585353085420601761888244076924657672260469805011407050461549581562230043359553326183466401880681166967289141467334612312026326596125637206236508462404845685155720879957449366687472220900370067813105553014810434566275502553771478545079836483786435142757681579161717935893524876117763802096001427452052250470479574245355491901052106473561881793931292176266137160917790762251718859481387711221700130699626621579082052341005928151655208101704823441875920496669110317069106632944325120719502765125754214833289036794037707750319336506408312237827759067664981004414206807250826279816761364111147767368099273731288850624546307590069561695277785333634403411374889854972315733077083799320709500275766257634299870624692175140755309873050425029860733874860562793379240266463281203287240759785241665049594000955157150009465849696921537243197436509258622514044087781999975352903359143971292613944077332742351053229345030043033471506858250377215648792512398828574176964342733855108211849440287556097145229561998584127995130778291082774285128443468288842132036886355734445741998851236577767997401197374375852141717230520721389478940601658956719617640182153657600742017075993337036542660359141314137316266291378086095667057436124499600172842591690885599328112181674473261534964449246799945327908791462520071699545546027771543737126130351233895231872584538598251827120499301021721615170839721978416044302398746109559945486375775295932423195742366806592025893664598007777993206130155400734041575965380951650776696062699143796313648481422534092937432741193584581892526323720911076790023765943174777500648612931267975107095980153513939199983959415229399058904101608449876510774881228179086424842239550633291592994976804076915791456420329016914265776305404325670016320536357030994641454504230052069736990719816561557365779780616475552301423381357810156529205167752289883192529160183132913880450428699357863499076860948156774512245193350148723728436053562983370101894706536462981107710953782963095587961551377967809185183026684145274558562741795185309944201119951089984876695990934244482968616582262406734455837164943189468328929950476457467499259617089126648914214196051783750068077324530145543508004169242698800555532256785048334259477445911538618749094832632812809354120672890639079020565602243591392205428460489829145641551238183252122917398952314188722058527845549131398119938839756359713599428310753426775380154906494275679491640382741344866163749301703898980979345817413048594761799686478493985494464000614705998482657210635274105855019032133419374466162388538570248064055489207050197447219341377192061748173870083958547116978573033737523148487975800365101242542582033724261931013228520146469870660369485055292524990261464329056831265099414652307228525407906313730035836667443713395854253977575541638567854603968644113142469889203185175710238941564229328234457516523514344700681803737693900616346650030139265074385014399745419558016214631970357749766545893386947799769673705987010926883159839005899156309721691950132451482270278250618867537467246446187467090058079498998230418261158923094917262249849169718353043316092177343338935789805957783174513041810171446041739531944348470329918503368103710122652377353800140494847584953672700935112174796991842670809229934648919701091398914128078988300660019196051665099150054177893433410894866532627056995660417451697718228810028590273401225864393748778036801936775541284752035026091874096299328608515905949871753224888947307134964937024871131101991827219313664293627592218852594703885121758779901364123423493684316170978544960331598288331013300374224012517500087431524747649076766475712509716451559130948988916702148166328141574695941331288889234896580330046362759511269082711224273423862987579012951221614909531572570092815623683030559991120888717077227723196949744838581095764605928148311265293046174613948709979170383804078131727739448466501719043293908664852514289563949135121380764931811119116025590241930265955625552586891134108750370928753839424073840935232892131860617858983561328759905267021563796107551125202109851066080539700342472977437275135521418049487343179146892482626392995221102897346345517954496841655545521710800042273664764119096691358389743358032447978164164912939690889471803863253312013662233288843741419696666265427100697852418949695808203523414434020494007225784947425160896993816674032102567719193173922078628819050233612005163222317704118862125288196985733409684474879875742769634635903998056718203376318730477562541490558084274001210214202521173790018021388373810703402326527583833083280961223547175789388566825569998065818837951777007653485792542785495707487774234894962631395686360986699057558291455043560192129445647269613303117597008619604800377661782568936391497249695506956056184247893519395648986209302213502033322577334371034243836335609550457148448948533802252960999505898376134643080974703544190382779716876880774807128193989563082323947321027351554632977129824732306372272040342633217834151740612074775803948683821163254299922642403251609604335211654712064665788021699713712929363376747335080385543188886908261543401691255082896248539503484751284898462741596656903517911383940373489690042539707471063964107872147614074882267330523367789270666656372698482592207135629856802666379288733817004134972499424718793022210709732099467788454137298916922794790624086753466692506721863755775786398648437807678087168894827846844370220318522090531035892725731375331337743433435594971869823493564204779997185629488702271013045010675233765791287989499905159613531067620228456299657712039217388820152296937969527164417112182454598015048260424159428877033297623529508674028646179529284791224931356649919402706747582550880435248274937738445718605685913745544217628486812345405990102605778477870635576855688470736527903497855722342757260398574441784909047264773755433333714070679244807150203123850805634387094406648202539139146405674472899139513156764632704572407725761267754220837216211950111448261587281652164297722783665989126453332571433119268756599353583647124201673595362759815243549366539149080404596016532592083289353068440154191836307567946171429111518809960149292974587642413007033113288239430191239001841872723226455271911393175393329553520987318594902019779942847155780955999210267813261808789269150105040541464595564541886042255637156818613209767655676690839182715914395973068205222219661070965708725591710695606170185984974872156838408061347245210671099082656695283238756175447759289984493954152363239571916792812121174157322615352228794501870674318868790328526307026092084218739761910608850099035378563961442199468764235875432308528293934105903267783857670022894967572904902475949242949852362088652364190978330236786048777620687650728022700227460072208915746200907010685142052024221531539228706432853971783040914863143922904774863144583070145802187459204135400919440743217057913680275722974967078116358744371480657797359574393005667650445505499863258457639403745689208501389746579770491625822046888566980369961142006524005029679499482446361789223551767675405810167412146935232594969584479592881489707835956126031361449844923076747542540840917661784849981541315930483636492403027353094175503977927713301110659485596820324601046493960543117141369243395982496714496230168261997473571692329730578948137519428031737068611560051908006336555094301561168864423919940225989171429542867594325495146916618354900695757624929514500649334609254436656562317224848184175909849247880387168702674084094775304744782480088084823151222161159403167521987997824948448653167340179546011367366037429330176208818405363121015189073222227033581246575651043126044678381499749153986331036612386364420880738362954986141760555366931403549047275034740831676099909313649621384573825350663092101595424204013595160568975309614893201765851711031337805617970320378457146520749770890604569202636046031737571345729738016092954838340928599661516939386307068239667951736502099648804149053659726599114905854639261041702550203035086701288733652963448342056527493582005077725393367626764605967815916881530105728395744842844961782996303658358891824038708909299941939150370005903409420872287336951336456516027118891385023321819339429956056217680045834823563723746683813283934633126055046077725865170467138577570643100391196105667164974258206442658437956158870734446589612235762779989893265802331707330199366131421074161770702800641608430587787511420971286323005281860347344790923776512938599916591509947318210443068552384325312322107093938978287801350504509885048046730230693195451205217628871873298319096835022256187480256823021391826238408384763434172043745380233648121879461894460893398783639391713914010316858183107453152364287967396514207251842565909548400787789361822296206046255708431625193694170469687130552695624291760494010403405070386742752433451487085107970291845993169905746891833476681445725876185549236835281904370259950592835374608832683598969201273276129769859293768908145734942304847089834576827051625598074886535687600188474252863522661106146596473363742996058583148312535553151539732504197107238198626667272794835981834504527934786473507742590957268388159877638478970928699640279625105859519446901758939608366343114160305001293533254228323688295657257235681983581376735804143515498160075566154155048520317263550796317177368025541295614435106170567742228224235051020527343699875973105825218728222342863292070299887348400698269833417154100035037407176661974148437121419231414030342388367816258532332595640603203554220631213312805986474031691587428190249441625002180848567496206973413761527124683165293086043922977806229210845716582616847352005832416368598276341530012686866721007873152662799017867851083034485647362515016245727850653250718115559997602716628163135838405927325962678328007845086337996319692079960384081536963651299762891281970283905734749199941866841040136412749187558993815776751713668597932279319739232790362390671512688949486943358270170625526476579487780376053658555947845056887876159322127956360772288867025845824984696583862282927637316772818592482773574243376208090324681482296337368950556665710936039924570924823353878107838473489104680212767249198117572988618899317019478341049246195621488796413128899302345570272563058487383779970271286200706236274870808205031804748383092993985658399210979438501378041980719946959643147975762420170576484305666841125622719241001461345221549597247523626113157417007474909465519719492080089852016023276268960103816692503814249553806462624570635700948494709187250732989312313421240482164374470160844439823389960397711095592231589804164009159930522424291014656831575382162466846197936861972436309411614300585540472943647661530301520267125941334764088534109748706746072483028870946089815563292973458571778368187733873506653188466240052847488341123269525975737874848168207789079096952184041478158190600787054981760466793288020753583064048769003231054837822658221386416909807161573633081811037277286513610444223443789355323996853019815677016247899263964570612538670538476973825030264511514011074932271216174065900952829529279313417602006138832125875610516416135068483078587202051154154701582558731680590537592643673014278534437623089731468412724258254611591722240092779921983549524936289553954641002210889831976179778470009203733900462619773100297884935844012013682898035367679004593282104194068713842855259695873228822642570979458122902100854672204612045411821412542164077751528122832090981166075219773842840102850400094097297245292772773651856279147425041584347239888623755884580520929969572084623041949813726286496985142681303182815437010648054484616098285195576827228888111710571012837981398316774549295965026168490217794486041169596962966802046214555111246411343657875178403291275926159526383410792697702978938175432520296572310584341882863147897485867969503670259935462409997073837405848547594970054918490874210862779681714769594165680450220131829042478822132401082903470339751672299717443833354357456121661276969297886717632117201796990782716610852834339168160677481209625117012216539045595809929492727792760141236280059455361092397752382984761824626685910414092439166435042020479064807916573911473838600353547147855805564982412471138614989638897682823486808616033003716824922021883766184256480490454919649013513255767939462319074684234406357237881900467811266997971800052235100167612685480915140481799262925563276499176006778469650635497777354720463214341061364040052640993404329527994086346968244795655541791351022126333921906020003028118025027276469328381807871976204235026935351311030178257282405214128251183111378011092344202117888736641545207743186804070546673181513653603343848328223476971001188750743342032032738093325272896708056457569712133358074438695596269870458622545868373048396433566502247241593781573296891960401848378203497703487186442335799110347143315437206357799588813212877516739564315485014707809684618800693294481687400274579135562078671493841931078764718341691911353643994958511084123516714728442492409436099122748520795659500724032654971528689954258782357341471732944110140073254494412399518172429428854233304770185943580105643295018535098780536459951324746246194078276167824633150772356682726746930724202952501239557617363683925345070740826789650087248666576636040614342461317309375094923226815258805537026626140402074864825880058661316082718069239390045289388652865095827618638057851141015991144658898542746470897813924736180722048442489939838603240174526480505075596276391302314071474274688997433557361968041064090042363756797024524612846204608268727935091665903379192305616647172474278740636745384661360741663275956588301253964814001763528805079561577305454947802620813777140278325903369369641905592881731391628863220519054104483947985396483726021452512899769872622065563223355123521923330425372484730635366221247087713677230877853707613154371293387861574950758528284580848581344298791399423452785183514135223913143742996410173580745354596056508859852603613005610693245375295458376902408719882819880787443476360674619041637042355600868319380228585013276983502155750680355425864998831007539565867137222657427738756054956710017074737381371434527523264651134339678703020430603180678180726431752664081624387617448574024137792642748289653758357129754279815305863394043916082035035940052230422402112081971416638112694512563834028206698950089836395670521538617005299441574060492962728843601189644404312803056320114612798068929045014981456096935578793904718223608411570559214500355884900193755089312855324177491381492312513815937433919516897532857376719818917201213867850379973338462683153796227481970370152042971933435720746906058653590569346569731544976244922062779624622360963280799302919101338393816410882557995888008364470743841409157562764095800347895338833253491622684456302492516517669586468381488126949964613197019781147887368836237875234051485282374607260968204771889199009009288594142604128515887977240901054408933428293908533607558311015497423218219024707405747340590040185616814497070313871457569988878278439977611169592254960065559187256139263444783503591191489880830100844664841328432436977158179647996967157827219177524545270078168106756460862073495937235070499083102189647831507015057889183034116355557403767924799149098174226684950732658853613746769559570890935231973721752096882771988416474930797822545965519293091293168457661034347058749488284468217839749867881950437929336837260727321348681498621851597183824186636938992392624933988696381846881393251473224350572575885536108414485158219757296881913291613328292936197913980216916364628913533899992483409210286020019900545477460812865873773023656475832609312763157936327493238191580753299727688583857454741122286532869145005153133186227988937857123931193231222229762632942341485638718185539781424442143979071681305078742770385081470702149963855980263576738959863944839514987497445847330376165556339167362328018681430211205410303892380027044399330305393471701588680880433008882069165390978197298326740350702695487561383783937206764109789154200652327511177393396738655416685842516853134901536096840352036699759704142836769875740530573412366295726692835456928490360780999734631227679291492319974887290030513818186160897431514875474348289139430461832808717328612839593242921236297416364095844897258925223449978688416476621378281867566025103256699052197951456763962131526703389897390063504916640399054916539596552776072276959819437111304817271314865309639794458202103466586374359197901076708089163026316960807379465035975276158968006476214740891009285004361399893236925766734206628070746867830158106186833927011645848227511925041646194272824693822503342192035461787073584362885379754546261609053354702666035617761578925517534010004977016299649197513470869726585252034204512623102821567058588433394101483145151353156102145946041495415901167255807161094939459365231802914364348502470825683817308827628450455616365148624260029868815418134139699474413722296448186379599682761537368673023574790926317968118379135278313551072257328034803854488023364887317967803204357744739332730711376763560441675158525056688079232345694100489593050848368043784300425690780228836071415481948433860366333226866166106335987517120477506785157063302318426739575635146979561267113287758219278695285621941845758525344135406322929290973016747188408857579308772667135833176894011159736220668861851540968213939307749725230515007338626841270704245120974936949887251056735318788178426474561639528912622673188627008557310351230150315171585011428302997950793770353498394070714943161196629658036631216826268872362732541272522213406608245095751331781153942106562000515941759783650725448620501943467612570631116900724619480852417292233435220703879097196213846302136939119386425713013669068682980921488654690351540055010689389994155509145116873127503337154748365908092849770745518350366495851815226893167617422455967830680105068844174288733987175737404145985894256944014799433760436868746659975062861743497885207603650039778690150350150544733773693764636526013906503859466942553109759217682891631520241156457429266112562989221733352630437466287282550224563953174006433459543678695748705581063417532005840232970548140448095071455515855112589571941860158923886984797114149050671171068323195184726212625336632334926892696904259866694032205901613214867764384450884274511975382243267626081015610265437917630950373721459587255961437600433058846372801959650758719861678109712947518263938975939559678213437582255989806199570629460870783587261678228091189725412911686448947480251745160414609290091809451105786098870858656502977369960659915544612195342477486807800139376381579625589364277207308721639978490871746353212019013518825962870433063028346168507208618306999878759780027508158154414345791455691778115855673148804890399317359579086429263132345208624036725897177700939548521633977756810139300428626855988532233315732497909715914338146632084192991881257916974049115174897622615707314373543786105902568630918955592762780166473843858328585326867741249168859703871900533020254974422175722370174641607972465439027722748328806029381691461284458401983613986464184606744091988575255891958950920829794000440791975169198050831101309730943934452229480776247087689015346768767555256727011355087590112945153448977956525653912691879191338758388267743503162791312521990143541795227767787423292931178560426267578371864913847478737563781427477198193982442880533002147639411252229631563674483675784692796909598869409557308838219215628012088157033509181990752535415759667327505254187153523771058255905133305289536803124292331005504448054929513909142116309259230264013568912258556879478867712333056042619498481095297688329603648763366807595523301564212067363185180284982988565718993146444757017633876128095044246309996452521792334411461929299531876124555673445092320779250011426831337839050030692104715389858214673974227123378274322537741676102021732822297475348334498405917856968174511809599133537319769599696813730101098717175604455803916440057768508755958122991449377211843221130562557764481209518867616772336230792178698797149776417943452699069158001968265119638935575588942829111638173985265326144388289764488249417399331355795122691833745574926527321320376030405096777895408509764814300970813200597359691769300600188023325261379770814476645047766851981995870793750852765391821531467126566469324296840007717339566757083896912931875196920880945536366976019893967084753333020912009239598670841631002039514199213315737942089959553147682941499789982722281449477536575382767414797135764639067366711201261295334007199753279803361850984003599350698705175059207052772409684931278610164728955845550753697103825085784176009053355118508467685609168167371339163522635667602016271493019707313616003958161185115040055606157328201949388158485396321610949843803840957602224367126282183344973191860766712941435359463324248879107718741708525220749069680157610604784994348079382781433303266425838559910801576852361280860853346681518832833645609195326007847685456916219474863892186314782501380127301419611272760336753419443984970578746986596212990034915078000843708984132452423164457097696955606573900435385144493887634491878715725024630544212308698951146408008465253385927971772158830267635455320951908269791429131472569414227874551734655550125774108131636510724290326811810668707330207483407088173308553214811307985282125279137084672240247500042467568666598921074582179304576385467296004944472912299357196834728701733859633790188509993635444948676610948684420170352702575895859608106908147051199547038094573598532287736093833241646478299543890759933249270393457635257450550180163860906583582139836478786281317307323375591939387962950551081574014155408799855481047464763057820857773615402936090860912415859581704019266570553990803221107578853755031461374228551123372738972941881681833712841960638763190953477066115197480204209072217213159856132358663553105559733800805057491807142079645508753918168125545552227878608457338916036050168130528101617507745670269646193658434900703476418295636803936391581592298324721668156244991530899515559592465485247281457315547950566770907496110958197163779286017012244487109361382668294965463887051124901160515869380155632873352126354420097590844064363321600558698377581020385265095110599684577348724888847047803291425377073162146691162995784012071098885674049937589149568748518108127319374774886589099752776759578001334210456283489308203510530208595018691615369961475270053868478612278956764350953293974021158649893635584606997234167262708597410244012843192213666107881506900487523543974539303561608124150461414796503147577746744635904473798071594941438222548457634559624352575212750872317239814356449272067864219920273762390129598005731300223793233943794614256691426850562103975738749930554048578115068413263228168946585326397590450436199597768983172271600154048654539588497216954448678070537252791665507851063931309712611740348246837049281666861286089839757661002021422833711996893123583414608795712049792617088938596686923168032245733658373782790034806000635793628129141865036654193182312137204691091041987027876735941649161221431131951087325624341664703155213017933487076735916776085378120493359828645086839125352993031590348887809398909081529021885755768161731047487390475137179199145450307780605693647661932671415335754308845912702829730558939198804732133552508470356095986649747058268912306469841672542023673149581039189293599759745803803705904649303917360979849542050203109974131783932884248609844924395165824352384313774638877044336656041252215345388014568624902487470001753551141228379005508382704669726278469023926046189562056563570851399786790637178363647562151898043925368201974626453716171396280021267354788485911019052772243129439446012557234734124377359094571323097967666390150841376827895209853576032902487435009799273350535447194054351673673663557162925233233267499094701400794676477715185569750084686711697110234102036351894280106506908183296702665035392089274360683234944486198168184074712669619918921147750736061121604300039681053575433070689299645198819946098808607061962135358592311829551380208978679381208485120478483721220672487124433434704597423483358366657726159873115685160451653174095946731747591920744693104838371806401223126683555266092186851790239506395154046739223843450188480313728902335348275053082436788825596110482881550959360198643591755943392582628164569052651051114172492047568677649261991312769962329808546913581721549050624118534688794115234509865639431054133610948687447047544608885983637310889649308400833539833741911183477461842804215634115347854467440696099036309562846985189349779878913507027525772180104087315889884493902536048344791457633322482138526217379281555186677923477619397173923545960690662102417622467652049666861588640854847805627152526352621308088271167200157480998299834725814410125259741058887308754556661804732574235906042484497394939828013245947904452347727766611407426692354506272442230272904886394728126521905699806276869101737459818085952630925473680278407521478105964779923789726502799431291775744027945299956960533690932907392909678550241765326299504723271806166383358167170090921899633044822513601906905283713027942415297831421139680181641044349521304918694367493781572803596455032531499787073952573991654516690625947742203271889839072536794791116425778744331203997656023604545581341562644209597011052341454285282484000902847161261125570667580756545905039281845641609524220217883712317219450255422221603518279911240985023701841980868508551809037583506042608450450961815619891263904311149084238421393607351148070312962654009633241076531873060654099056806433329270645184626619813997818934842581497888131584418426122429587467670503743543571161655298151406246534252310994559192770454630669093555370185602562354085705284841323066201032891003535881122237871494098749612744405770605919049675663063197817603618814150277666532331503422560914991944279741826115912272651692177125485751259597019269031253758943446572877965352670990528417858579255325821463120371508101987145610690034797218080870974246806172775889068205460641985869304065876352457309776604887703170000566105867568799546088349166773880046086249473643352439067614564716681255213384668113888970107013961851291311865761579779893035453050910966509785240468431771147377332999945748298710953404251934020385698745808976238935862569610065805741478834093446415538545749609286972995689164035776440148746010314448148072099223101037538622355827740718254335326233947963209201800861385238897243792882101916871549027509461593315309796571606911508448784021126388320234995295411254307152109009744916922282383709158641154331005641526202133664520868534273973645483837256856585056320477897059349392613091904789016134715869419307764148433168159973455866441287217362422904772038168716648338318602597884566396220527215550618143311216675945049907246675876755140538516211536227837800953468204417674371757280621579148598886803137384433883145062061837388112723171135544259502820398363078976106191904932596789785581691576474416059892795906520554655736357815555288373303698705848149058434380894108158700126751840442079744824919945930479871392795647419374361208508724013003027022670486837258065449758416575003872512857948550910712568510712526765658435932511495702844115260995112046179378153234756560266828039825842713054311897672485982546084880292532511291685330569840081499778829760782662385957644223528374481539520253831781808925620584153982185962068281691021833462014721316866042258749997388048975538493080400551196338718329722737844786848882110152487915996661609787021330937048301054637040514485779811564457759361837340792335266559092875723360051223207409892822858862869009708420043505561057525439216194289131462362459968921030362415521527584577037342609828274003616181578799426013023832568602093173047853507206119842638179624820528462320599796074783959076661521101620886369362171125507725402901814797752326024171967880141966730263362044950903352228814721541240818736371244607741389071238320019263094253324830891754344432722406424243804339784384187722553791550966056015868388171601533222159852876408313635134276945317663799054850248953743094352573364954790668014788481395406348491608120961952721761774973181986921131973045411332996389169729785344283715947142116238174930466795896750957080996119353776079719217223736251284682036224791373142947248938958243904960271667521183747817486572162638904797846759102940468512061117081950196148432856737278523346515776690708221522476187965214219008234284078653342390919441578535085638518521659252108117030963083936780817701402098647302879059882915691070195714550090228404939292583937022764669522360481168017625661065087829092643478126204277912860708529864489841648142579560647999978010793703119382823437207511603079468672883276179012552352467887104082308560922858462417320606514380820780273656668799214753863630345334670883351094119190021210290030373242777541505427652207692190943925434048228190716782907421387689417876993510485398780610125683510174740496765289154907502789808583948335174952676820591976129871220300312250406257631503716362456936574820240613995220790143460469247330126749932156872495249160257795873949880248206447870825532773477433487681802959093044627576056837054380156808306489546990705807059658300200798165435352877524434289680892946567598059365631783539863966642750766356679159533409698367749240200760246639631108571901485853634029747990875701074328577665122142051807188181178377434244358490387371974961824276566850837186923694612773194672000009383555528634313452041546793461403832322118205246901480662856167113814923864857013372785809026104443015805649569969601502590938823412742547475767589733529932696110138858732334956630566112705582647121561869119048709939693262079001006615087870396191320362125898839275998596103975781436331591335653528367643855291744341749473703905942343343578884541036284520486031257415825822775130084688245700905714688305704010453077573561510438084824222167553116297165982883399179147813034306783631385839227773529884303363994962531550927651351374543851871110061923008411529174674060849186043588861735754067629239588223367039724777024426329913177999663493446206201160234326684841876898844612024147385397227642768570429109894478659046230824353510302333897775774409423883177283592659662445366581043883507268432637838024472308399511891294324018338951010518199271833104556059358924340207433675661373376874448644884760438397693760075998063585283566308622626682229884492903812507953665899523588329390583400796927278584473355568796634242687716402688873582949447441175010772225934980987923560185263439281582341679838813301038646096944760979544274717974431707807429831164766820627270906658356311617605491081731414970281907169621047443450150336896787158790964461072253961813469090621865260520560947538500597650817729680634679719057159169901126318403123747226328979751535367141174684177011819771610160269656651673584051211711417151550201192754427708541982852631705065308478229070955684320405340161299735757672722906997870966128443089972619812550320233554357095914182783934961322847657144874746940958232388732231843458180920711806732804472443182519934271622483658646199435056571639439604776523427295418970062820561150698771066016949214265973822919681492248297628549103068263115847436276758791769565462709911760566319829595984537066481751752644904188815942169673694557451652433564950043508694823547450590124386136175083376425909724031777480174796667308871356240623379398128171638599012587415080231552520058613467098351340104452114665371388998137989699267509863372173498539668441550891690524256962735931141119738462090819397705665339005191995067087882433937753990993797041424230107372338552733111924117383100795608180726955939816594614372963884958784630412595844663922178903397361349899235117724497029912655156813132343245606610595467563057031186147887056957556457388380432031516723636457562582434001830532049626102900038827548235516182940606514842311787810885356570331006410394227775699841921349082782005618101630759227087191946325245517090583647267068301136338635929678720728921468091633303077691634697481497131430039548930781235197944767112925919531638446232019003012524967541182436527620122252043422448047805564098480484807593246445952145853763083943088124680912746164668422505759997578994092623983291840409454126760263943675417583561652246559492361392709714431755405744947296492871663143546536456675159643340975589869842166564143487771749883544792837735917156671124710691159792166754601266839875601088934687381612440354413994940358236917710206987404628058743553676662376775066675447716524073398486149581655580873893323859229853728144252616951055024452265970238459608136210566076626849669185905875499773179580654727349081584890661718027803857953950670766464381989902481339288787675636710546527844258077172591824785243321536712570487491593618365591921097631152785053458650193082386994046806705995208249623178219515583912572340920285852994972512821859699374002611259447792410528456495729306934322601721231830324918581272980641458338777700319345032866020678932837736969816482213813923028405599473360684275958441401858333024999108046329831209496799616445973626884967576699278949377931996260423798041096723429113669651385457197245551363104490020453683052898313997834357096259770481295647845815037749816038346652263438466133803271793971661308717896166285370858885580099637764193172649738577325574259540972029766412594725850532028575693920955830908008558987178808821322168507622970674253845638881866408526650616202738448108071037158233103992206719592225857359621918860116594990356338040083354634761346639084184643882702089303647080699545967129239680482068570042026020219288864358264726872519606766039738156609059307122811123282330295717470579342349877577067569129083832248379482215939783500731295421396793696088092556643007591848091686782731894781680945786740225080760017523405300412853210366182208280222470202494707251504034821924131151110407695993120458059715672549843228073119804326502062423574759724813630665726615277825118908698359254791485163212739064166184112038708283615992269285312384254221275712263293527771590470589719169200291222167584382625322274013944033798183050746772969892713827896423711024037839086443417911883468239537720919546596847890206233287852170548346693667769844383873191473726166559237820393846280306152051105494542511956941735625104185948989846725472989199627064808753298757629516109920570769079576483074025601043726239936593728474195603305788190378900629615896402679324469656180895873305111410510761545223067807831726091663121146108228800853165864738509761970802880853493729986263352213548070948558901569398345178367019732882657689952207252470280434926972823672328621946704419053814650037386557189743337272290541122288643827840580540680027780110793224579853911418768608737111368271669926004507322299900944851116092035636652094577528213563085212941857954535487082728688229355272863974211247343554993894648351502897313459928101510726057798518925810900627087378788533915411767163017379881353497305115396749962000695125727162660194500525165504656840832856708673643793870896743140473360770505819576071649979533302592769364337423186057946152135105934661742170056484494069851635387143340252384141697066793042662567814497586225797633198321312223800464345453568991081883020987288839751490959268196334845653481857289814073181990484430949383807907877917177861745395255404052563791450323988808274427630967460812643645576069920257270024106306008679212375038373795552721356437900204554035985122112289136245577950577646599099018921010927383981219541923621847135892915111844827141041176516886298725690122061362216549004747992553544599278016564146055514315052309257746278326175835311377669365884471096992547758010702847189245176458884359369332937193568068122687540682448340167029581481082166977650737872383310545493473627104506116584811764584785025998262674539116092851205956631596273929711096920873617551505406189082420240060452927609310395160210521495948013360974376999314596274771825678232724008520828414960439981567013806954884619150364904126993737717475229282530530019968259944375464166943010444532351005747201071057903063322532631391476623764804352777885760929170464164370648431555888652283700208903679201287088336962767207826932081866756789257902270722592044010022711488505486661275764004600263378398280565754724963849791284840953757398493950008700647861636286575982313973845982845250119518714353712842868271099392142108268736934333907960331684034042275863172699367506531504192309826391031174964117812769835073654132490659215603364927391161390970920135130817758630543048623390221117474347652399501092110964842299404179371687584907279291561875859914575645550732479956866995433421682713100867835118160608087062658121835700864996298603672988660255579785743379256671933965351168154929535532300218315014180735210547947527188184842678377348651321420074986885331978348157741677216986741598228475493354397864793687580222228639174457648406082917789330546360225753648028611407212127864303772482550515115756313223927672992175115972223373922700047837374185959337492382612042940563527670131106023548238120113668076345214991328981873002648797162722871843102184681152862967307646578684065193938789452552212635022605786624219616462704428758354855575302759151133896891492066103616125325583635123784188726606075142285155117327063040419799186305760071576669109737124975205010375312549430291690576954794426890577648293868189112185762798153043719333492622287375643387881661965496034801766007279393599488400856006548315848467069340323654590101317834584837317884790876616149025172478734013181522136988355064668678718832630081570803123847120409783363329240772361304334962910769558084925495752241174028181967036912277978435295582341508483287320963093727498241643433736843000910786748397365178563576387049186411924569693897757430038168345430820375079229400771696493536901678206313979812683170175864736035471117079691509906742723926660126879928862007558320114541438123629020600866320497862927837344046525425520763343709037616494269740361485053247629988546918542787267992814898434775299755541953666520136827048689370575990437686098127244684697778597132174290172225823024678076621552637099437418017961121126527098045426251592704841906132519193036273887156519774696214524579018143054465746213718077547872355023397080936842303550240394437369020399667193485201011832763001171234021107647631321500461974683330795521158615911889731918408253129729790441621941155222743285909632209417574971497244526253190512200342804295963222411042694569832423247557653222075263879980843368459334998730665304040550133606790129464911475969409203200696478008349859229514515326763286977398883566234145802379859041886666477993833587631393354935569847421717157171461923601844189442617435738257929853199015454136979756580218329786781359568157095570398572343001482803611372003188283227309013890478728818247022385581903752668235340444235400868958972689269440302658863672933435696985797620921489730556324228568824925488660301667704413536320125298110549211337685869309690422078688870936202385230585570280493926174113959286671265681063623233514463253054127578337955009293024822267109108556726298022161703332505665846948195474389528593394576014158313517255489602709689519955959413445944297163351071813328047839360054003914333957976218908319213498096557751855144224250212717211583296015730880716600680981073736697017782000707166235538340119850428000032978645530469866511464646427055148825251977814942019630864477923765164104170651322647878427107188197954734952894244682059094743910447137363508034535764512824036664993942412011343948183297025444062744830787604144224610115485603524856990238347202009310261249708032422475303382721290123263888897818762277711938663505535168030716840782019084609846985528284896292641845479532791705986571859254498916328206728445255665738546309032366013453164586455168907139649185618590846837908811451007278642418896314616639984793235086077490883885986166754777774431669272413557310734541888167097641152544744959489803299706562740721230152014496279684005520967225828465311415976786396143132239049249715457893465468999533255004536982783217461557781189415134063170335620718392997910192519783115440624828592796470769570910419492981384241794650243362755125766090870202597461155740403121762110130776984783955513923420188454658560882909278362379773263170855278343435917574481289524593891990686312234687310719914133542468216848619384762559285397886067214407036098761967305475145360793584867452851405242753177398486745754006768451923164867011954641805158747456309244094281744016661623617223478730652793845411011968173302154361155984688203924845982188643724448780873345459003146718496393335931964089787228475042320837001107522086560120794528356838211909054460265554714262582986253537126855471412551876057019485884825394742261004152621185984156946414172613384332539997486977701227692551188398819799968757958952623320278834807407237668640893111264430430352136733962926327812393437508882672745286405321113227441722038094281014649256977575316994267537388963154474812752505108028481108641339216526393936988299123707355957434419798875582161268749531577620727517779444591608017477985650100507425352281855448605477672378822805123672789548891216977908440293076368515759976971490484039402552028210254527537110174230981435656080499077962232238173783099745732857696865236637323714778411867791642030361244235801273572149106615994350841546923580259041526050124368608677704362297764199246312079719339010247245049178958797210106152278554590950058355456636410974650335903047361376171383623879994158375343468075196926893501809079001384079105595000011930895790154835342758823649055785220839285402756647183423162877747792324806997581571298317461927948463684091463469295814340604362830170829360029509248406365042807687413637728554327166855434917311847866594276069676933573830617182039968455179935685927376788151943207252658182012964754892250497968929601439890246978441733100511408138167590836330017745155535767216760381916100814177777082060869944783422599598617871333352618621298935045729923918563960096137302823703767964591138145615124123451171493613971674608351266788228866111311310761347243628025577946879904035288017573421998751907114618500173307741737352867861770753487327529733261805534252048624817236451273972045073356018983086424735120877056554956951957656909985190355726239695184740597586805425820942935759231925953515395207904761137501153192779274129908623316366385795462190171305606067791590171149431197277847552049867711848834974054578010688715019188323306600510154697986332441627789758317287284270536111734551984346654237601745935899079727135130076718384628882629659775482626945929055405942980412813417985568634790516899924284837791929464797474801489865033973130698771136505879628844277675758851991814147434747749110572384064066609943003439257648979096646856369400918038416237669152428601410185315663461486112621112615855890211340607108951603229499036050056295555262120244331487390319036475804319934391851532096302609912768323350464412256351124191937483741633882404203071275747844099633162962394076448546486762003871850262342841969789122539860907705545577855146061095075721139154346250493495410646835426470905993160230040328773531306329212956244404656312260322744466468293977178497530602806002622298241172133194457523387107981356285565197752221043307003347188172303495999494575779269850635443092129211043556055795427360188434716136670151785553525534202273168527841454001581237248140370028595199983104586208376589981657739568084134582756502486701143111031532805483871025782300970162807444883705201107085941088281994817158355443982373730396286204981199466271669239996430386227396579498707166234743122580091210750478163313986211340776367609695842393693030895546621248559592517258130641299658293946531828226475992694197897264716190053160821240646173372143312963614232025843919358094330654279536255948277286953293074787731526718543973363786748656931035831867773540753931530667399705282948167255820609301923827616713869975373777412400852246271404106030209269721917988684527189922780028688012492010359984597095240482925492491807029450764397487902943813870039412552684940072125677013780363352516123878045714156808743978219545313368884530858368813333872987833491942295194839309529815665273222483046077999047576988822199980709424276358705543389346178252301565195442166084988406584311729809694761271524651797171638701769549892760273595505558194171453143565286988572886054803612205837751221192093959001700448464620417382406948820585688279462423137390266343139839913930793907527622736418670436191142284274109802302147951542620642555558876707151240309308962144041121878686796940643082122979318647694389932923136594291362807315611400674478038146155674156926802168974037871071563264759091968889323165866957132502755361083274290521789593993339977555810775566985488914523269913701732045593696995543343225370491500529695749665925786852385423395092135526287096954810430701308922345424873949284771893938314246747441589765395755962293727742129498990665785196975825590563088290472872849878364435619282406228736816340423809329946204945285697362016289671313864435325098250359737974186998748984416874191965062408972100742385085780420364589754757886649170283350946205688860809712881186625036711485482816790489857224617826883367424788905314206421061939517223435326186484821232847349169886509062967473939496028579300607185991803368840786876061233794738963703660238795290078962213671126774921745992478821876835803498307488539125163008128267536914249263758797035212821573013013028852982399131735126273832897262572545156592007337995574521507124502278989022940194529034958646548358997814057774016369886814061252646557921627490629600147364940288861443506742127801112537304393376273079309882563706359500462457190036568405085712537650133191989042141029710988869695322482252287468114809775573910645410607813261205894013000530878523498013459659495493197556841033111568586582265107806922122573975125877190544936937399135907537474165994038725669551793621697678209156764681491280461265213961587853594746056180143585847502218612647976199888772899746553974583130826817680557232883267574996221860729342060788816772190443014756057547969968108500600760828790509328664566875198706732109003203526991236281550278608759948921680152864302047326792733561739014561215239020882759784828657378213007412710414377707996797523435975268260018480951529642988149084672256380851513069614612849862107792000138828596370991006179477249440900167966016335489668385437179697395988303815650703579886328857421163619351356541065052461519445258034772485397877822165042657162889702842684547199963078279989113271275841316946158878309456134102653270669892568119805903697208645861342804412535692920279699739664367746936711587730440533441818542731736420409693738774602432006892036026648691155697882798747737580324012952764073272772060078102254197119353499796544174228733365291890988504067486589202442873536347567472870779579300019205573135238538548251631330338406804799140495763129892740552472913761814216967613947906102439631548051584934442814888872289217455576330137487367304743873176604467108016394121601249350170684646731415328313577933366149044406040394636475254780192022040038456564131857330766192719335148538005934170466478967185180239791650559075748090643562613925778773238059990729867302148296506163195699920927584955752229393645673002362671852112473361794602983800831956566428272647492032403630717967470443605185080745925611578061285354724246383937817071866019008461949592399769209989398005380668981816153242568359071805171045944104480150894299565923897317277133942906154141178516327619012899384954881315005158779163764886447127977706883131516295978275472008659455498021101786221881896136933947352890162204189664969661851083370828046698433597873752106736313344526453504749030731228665869915824974095309812553911655146885240421141440608736330057682538622758182579164255309439553299852979240303516302181723478678014944353888938855888737576140695638561578919034834940954165177421506092647902411778073336075838024885859956557296879834027567307083250195638452039029809510720689113829692652408686377956592085551370155848262890109574640986214675942516956222772279273117187747442253613638095714352630278501343738423754128288717600585329748343401930834181577817822193437281428946576830086366545904656547191585084507458108988914791755505247509280439893532911179712381154846069932000304027553161567193472695380368784944632962121437641063651247668044747653363707599331108993974857889783270034846663097043926245331821591792559194765670560310592074401455596185220620830370472089195018989653406949755527219013909596649473232021002078545057799374746310952650900760244988954138179876301020520675535469705599333474623846426009560569949532170124822129728251244206915430878422898575421772686339777060833933732374861667739631766704059294822633382634828556838254260700694942610299999853645552625174754415761512957749291831453253190834612858898541686517717887728208814536282051739547643625252087345033425236343200072408170035073562421034758539272967531265361344478457146645331042277922968057892858639854616446885563140200375330886471622713053320551165730941070218696250460283194435812265010388900488528154766541305185690866407222833218120017850776896069679118882675247307509677410905565187438290198978086622176949251731971454572611999938198991319606747178440258133211807381136788430766567279447524460743390257249670340890719448751522250784129585489920885791526166472149712990116263364873680337812368738395702379352708141784456152646385172602578468370563307328448563144855647423654715953898903996246563744103624934627491008940780565779560627114754871555879333753945444303806321194140650480337750559689634000059615535368475970256302080580374154576114298198159234914174252945705362687361142908997862702816699685042339589078584915427441921768368892657461887868658194828275081999338984621448998545687714433425754326577715161670628696857825149088070233726838184132644416085935916739147420655657252387265218541002846340578769864267542033551212562431759664641983589822409591002008279343208328266655467962401801210019100015821362467325640786815598269357627963086942159545435839456831319040311734810499207044645796057355841932575543097812787077255532710393939658627594443657503312606820794043533952760789705706365675190917070366595282113139178562779268336828212979490012826342350605460853513930188969354453558757143126521731004913177626280938005303030553751376934418502682108499369797968302046317714136768187223594783575534389819442899290146114200849935685157020301027007508613183785846020572280504225262461107565542806632644431460555939035006647810416908939474747676000306751775860688752292587046358029524825938602348728714497375856602801083623889777811332255111214446436395481366280803057464670710914430240612846867253730270332717649724959200337660342025544470314427933277173715290132046115856611742365002672002020012488604460001575183560702017463130637934048504949885180524070833729312391622265123111820059025164737186157545818631437789561035227100878187304861252051614253600622887578658275617817375303763471273009986898081236466685280920312426034164764454538576410472213305236624049565170776908427381538656494487362019071857781988215015624143204086824950691519908441318916319889775923712107802815928084061035022831243400810639341670523564489967896327467713824743070363726318955511137310448649569837023402196816247462568966013557321312737627057096337892392727987874695372296562405768566060695164959596396398505612935430010269243033972960540957915354413469678209190422895965055459606781097027708205181180555574903643086155149744700714798682517424566473813165807246020306483853049203046855056791513482200978702912233175638119415899566062476310687492747277704142492068767647767227262957114583410156082950950990377520736522251539739459631497202744409872604266946780620051532401806736428255261864992921260069699533044322278682327811027301294588278014168821494686554635793090337584686021014565299161957419638230132784891403908286887561059745042071289891775159596029231580936327814080248554209216418495659397113831145638108946153070545596233096133360786417052153021726332150130157483201602156383548642018790220810371424907101438922183536420452108440424211735612465631384996130047035840700919868364727214586775125033763672543519486040662124470277307624451775126715935402596330906129571244347719527545224714985421484997680803601139529936497657635261977130134391477707802405937584081502331526735024575151295310453134545320637581667607101046723662521159866938973313673258372371255190202309472023516760833784353358962208465119987465931800168533872039924277071083450345920513014623444552703257312718259908573195982825061848409552332918928501685125734828743877669020520218105604924363361591588740257754377699190258749512952734163998562709918639727828459121151342542751069505231787738235945610586620136923510185252869898850613705363957132648976793489563957007220689576361246056088930141941898703553719818766899621669343897757098177126211900487791201122472973138124937947375732455218758170192185217130540811481394810991556333938746637279764771193530105049222411682747103231341528639466584469358096624445577704741370769844498122870183446968775082087319740991669093991089008221597715289185544671670926401745028532391246193572063367974822426660278590146259356753296598930319306749768663656747906884983967290999442214979524686842993583695910883124609936633458884862105490236722540714092398934658302540087287389176288230361626192999559032968499054957402846141333517485803038447603210488357790609971269141231691734875026514159388007505626968609804827364991181025541858044042986055839975200048594443163658249639561287455417602779470202587594450125247993748867582778075954768434784145179208689600352934525842625523765802933732753732720665051672007758300969011484472560145087061100458564082082278679424569760393182584546176866975836560326789243961054935173353802013685128590861055988988087546452156039167174585143182138373867275828821595225347507288961120337118033599590880581201365881102839450862461866960367219116470795245186892905612273571529489318564163068754108663498501754587163179126747871464346287759453438615917248900258211724589033987609587969801771280217375854212734607780540743887857114761513583579893295771175253471854653498411409260468090021047030730798307320797078717107851690018162128057337114092922864683466694046349974901973028201886354879682498678148113044028848263012348290469183158002123249189330905819993869577937885161119255091537354967908406787860982524642520475455514937592677033982451374046532338007803295122112614914706794445874749127448734586212841216422207792107641244697263772050420548302226102147830613898382740222508607992760439643105357295816153786321329612998934369800571349923165191717832054734451607372037754124051852846235670414502210817105053419330640994873931960695760780280672378714314894938898023185874144868250266358682389963829988226314920973557559249659109856833508302330314634682895943820512778799354169233918970792109213030595587386785838203775807906351776026045304348037099351556732269015919254079963138152634306912563739653340617546347780682468322116515942968616439350293147394170451902774394927905143934073263928769504424908021227506349104404303655608634838088622970183206773231452079745376963015910779750891358823064720386786102778547259554865524866407534721148660873646133836539929099901209936098480440409268158058450972663074247557660499310100106328184958808941856817185654708571422110936735433017131660002822256970355391218445730727683615572377399036219869422201091769404146423152049125091851344618181187340209372951607781170319170758806565467534645736711339291773856689929131903075714522170331381265009176517245975659857248340890343911516434032033352015194950640081905520681517091843559417411965467597818921769423911088421132336684482331554309460885677060172683614251866645013883045980046088341784317746045339485260239060160091030187541317984605484617883887897603603048776183850276249405897232180430054444035190383609137101065590356865295660113851442150162991609845666315620422181659992709326747603088333013766517664013294751291341955534480588403399894697252577565580526914740082062571290270423130463654072033872409916907593191763288507852209960523034501025223407380937391969497424921349238798944308396131783854016999190693512190159023611573547200259584319499777658154155470194952726144762270197365071002711510422499093983838428637349936982681170616882153060513102373029536608796250352301015835447611906252860016187389812571810141961655960917444273443963144862226289499042583806995251287428259617966536081129394946007064993096883708092478136899240258156098052032561666715922027939259205226027755322896503314533234574942942412196670614288065769653661369031880993632542644607219276286040533873265401411087405970824434105009462440870431666119321690869561755015552685862817252993458917621798865492952282304167206030899743285266873875925641097396553325258362230891204232494482534077573313478658343624145929854109315857340059645387258517611313566990030806428416651828165156594533396525365710432843126400760108791931810800483848222734346028560258063618654145140611038249908447597566806366973102134765315625670713771546194563709562971075376288322268279491497912357896636907547373138836224226919845568580239703884938425470639203993495754796225307602337201089850715090982967275939064032272821200881740277500498305825801497089046314059525612186115807823043037164202392059301400224850872967364190838074772305473275946028590942386297715110786687233856103704783097854775417044680549348740954777786770036851581744601262004930806074680088193326378626562037225361548815054917589343508831771977256903234878126196223951095487172924647462057164770266903135256259311175681205826507742484894472918843549815402935270000247141778383122025759974785121292002671186763061991987999523645153855958748390710582689350450518678746567705664964539492108654339608114687266610282932410669985867153873554093385385832038296942560770284759147750081345103324089331357994022453649502367691608733119909883214787808639285851640969255187965657297291764987807540964882033886939433859094825724825467190318692651826793096821406451944181147060533118202724362945461688711464737280398623014349611478750471342466037377814861858663098580302425734082282563318323368237132651418762788995914899469224895960388625012258977831091893027896974839089390964651719533819769312874074285405859289617659056752254116397982100226881112723694032406056541496005545367892798431529440201237127502537295164267804784547661319234647795568094908675610533655723067632018250411971593844767078588099344106318802541506930409290122404780812415640772500774157804874804198970290902464035428630929352225935115096388219220382972312685483800816419348915863792848507141407559982890190677467933590059311126515838525706985259019683533860483489509254548625212835022147937829115769825541963197763390091393403106271828206675605862726698293231087170292722925807730083094368425841233281684580602361638625244904423939184118347633025634469384962206979772865553260701438550058682913389949803646494859825031535753417149178120173570060354007606027891150003400913712578461576119690495298753264440985325681382200794109849659422898978643792102408299353504921135677082545048713584815326184021208415725025661283836251024054357928924767896123217736764457832325414300083261476022956425228933591953299262227295610802779235447253084342344490486492173561307863075847100361960057929759845753321815977440047880662784126339578345440225610177758844652004314953222995291564202264745132399686154630904747628741140222092647795422417439686682692587338735027922198204673612098778791932153685798460109790167207347534075154588796316993503118574823865216673093203873345015505989923116452966364271230298808112965007426776228972341234989468945777748443114201409281815087279199220291718449258474506300809729668647136487977733110724698161378767951713436381570386900085010655785168576861953232121690994703705064772575551648751342081999733711949257474155695381840452306890508671394939508337513475308888013588065051665567806378663191682689426865740405185109482146902695860324153526212432099261463837487067386246259671957402218333502114773072689166456496878026540764838495246454808762643629730913280145310096699324958091882127998051375423614756788875359136114026308736317214973300248346586707399723347430159249193083215934181060063653638811752831099596039600878265456346796789877866766769875575435744905441147190364896311869707461362622540422334097510183470323017114746070375787728310588112014594613438226960231821700451777582385559896867227952310525208566677375481991740426871962997621916473270520744686352612387881660664141946800052513767270815905864689100758212455836740320980019764767271753834556137068499516075785320019764605630301635087740338247052571742917060231139449128763995681560512189846825994675476280500145323380670346401750514915014688500344678357390514464313156693387997463703007442903229543615761771367105460369669078054180844177373990566907422361838507559709214636602141330742622358782691100599957756693341913359607639247991024433394777601080403508768216138638650469379612424631967233293415952627565300025417415254809210499918968978607137707855907616880408422956156537413817019985794922551434857780217752503660391350597074672740995018701894084914258622660617009435525380153959482523414765858478020275112525873428696923885603286670657982835595207331846106816014023598288207551959207944126460685707565047581518344113974395014429662989922575536229755883352927150768789430226748864508519219724184621437395725034110054995066837013067581853680147930000018332332867766221486965397182220765325094106320421025575194137296125233634137040479860485387890098253206721929693753192092390882837225467092930802759436497841296087731462197015701548059357851164849547535331359127041400062261055200485574145373662017372712295602512710096611715742879878975424050366011310353757617654759142845465351289182462781018659800460607271013779970308870009254184561053566250572792701672955891245937667567514037582311903953626208012248977063226533892232158619108788523210423682211205484292176499383490035707512452909111600176817566127109494686330021007213248467886592907873017044512382935037023819340655665991951136959107797948932458100713291801078909536881015195013069148905963696685300759345120144606174121157585033386821093254315172913638548972604582327357813947404712037201213779101281254081478637029502389590770728358286642076346549625734166396717960141342812205113785668658836063764697474045921969003096740284352011463192534940436669331152612342881956375154256294151930714689287710886935623882601140262814769367927383703928912294082818301121070777357406521793748267752468252041253879894280928184666680548179262789129484036546393597968826187142305232977898902661235647714040627014674478708951045103226258067342745636786262797758258078713653454279664483681302305894641209031720764466583240201307457149829591824892498535174441182792620037517144609706941087608801627651310440189892914885909883754836367888503280959528055960584764083114222788531393758234848214168407487863667956976508099950088528261957362001229580488106154785091581354490892754288520720341961701354667160755967948766530889121641117586260183063460369044980813072451873886467744491472844421838209474184164892043047656249386866111450055794493223741188183538853319394173690762753644208705013171984592489735385477482394728433073141067087976397229422881902513219047442460344724453199241787721044952439818092796429167357805867682138652739016260274039354559925416668072430068166010951274485851482684490591312742037273072314415382096998108238616714753736074807526238466193246888400778882600241448241191637514737788362629118480772742946301381037425180032441884678665321372797096677374100267251683336833785201701169285844145994649051786517644429252925082309026025239853184370505471210983073112794232830514870259154881338534308343165519820698946390958906040537511299201396531017023008132232395224821968109542414594425927497104700722959139433847958100940246929027518410366864564747528033159477241457762640406473236210600960645252128193770393056883179306077677274597061112604506938533153000297740351374018017362222030898900849601354736630524988473698730875864445506475675161401681856490296825405007925678557426834291163845446219794462845524036608216624138764626676244989338518487789757953765245035232937427684913326497821686504612753074664655153660017157388745772690764840585688034734595505793508383828352424560538724464035927965379806458173027006852797676073312750391326499977317141264282888653154518751661685801696813259291627896166445581224643203120452601164334695492507158523519626264592989971437254290411271622811393081774979134682136524032737253751903100698263658055494744908214453280823676111206339465672444775073389092978247126791844078796595046216622811144169048086706705997710794987534222233021301003458860285129096619478703187546641391538212194193928988239826524604792187415954273158315642277040717890753514438999642880437796164870413902906668421618248404928717271879909214213464614486774941774721084840432174089671357781672741005829960925387054031846104647596426260277994454163144211793367602236074416806304186931070954547419522115071101074908001417077245859888044698361186764596718941620300717816794746252930748056917752695869048397275590535370739256369598940011700709015151152093325104833910409390115099423885538107822019841544687938618158954295407053904306945641082254056208287368471286020189536494968089356946989199397266957175267332429297691974953265965582841755969095381762554725194683765989483604835328427034877189158620080836872545381747028625468025209580156042702366663191891842631511619892592363242798135656608568720942633798365686890355196602325751933052781491773923331564740903000996577506160757869034277046705502242094247738961209001600043281818571777808875944749633110229416333593833727940459839906253596911495995921759492081294983104698746653382184434211690199943784485456470946212479622971033984315704894276929151748636614831209075502857135739138157487231171911638787543118757975529507882770225099211652546554309959819053856914985054102905111669694555825475101102027991848120855725143087753282250238602579058609634449745928723553178837898023201907917411862424962248422328613951035043536139737516346535492069583540453805648897114668169723672170004725868062891491628944190784655308118456654979866679528718942357528770077169907456970928489381993463854052555001333069273026897721325157091696908609703082065273606746003853500743346638992693268346576853085410152828297205160436144396699891101837338875208198883635275332870583840683515040479298853013333228718377354406329413629117403456077767621650080358340041901691158827151058798729592902639040783572226135683772453468535529008569266622618285852597596944328480000415372711674334016156407691847453744875498496307431435420589620600669619181650818326843407155037624723708569175777912014608857093473628684525624077171238642277384702002899235502127088338383024386584512344221331019431860281263807613644850801728656343016074230954584020898088443798761666460684041841642541129175059835240699710949069967119982415738206513111897688590868166770669433706360749933633370192348481746997112124234545074411155415667950325144524994664009860731066717437410086566152595629514522131533149989069724911596926586755784327881938887876479697223077467428698202395723995064286105524746955407877577866823426187547866414178276472301278205754679926075865407046504123412980358958998957186507478166625047872583032641424782813802596811646307944996437918389826304490500937535718925037291965232734169422555807399851289198304905506130967221901310798797989095860459230544914957941448376047048853419850050004726580610818402258140590118226403885525290377003046279092542670096764274798519587356062558739622866300817594128166809148112860434396450616696671131666432440112987361012746339775599158027132033244511734683330060512980014271966106136602902227921114494114343643511031233495383536828190838826127316760738279015449210307959057540400730151745355932382291115929492283407836300808354040263584267171459538259394510989664902269427651019548491124189573386377361848492938555895541983201546560980869575225833586594728327172728543798068590049217048125243401771587116827655893744048898853697996296959508217541053526679686290547110352367130861828462559939315996927036184397080605702322486315857121408470766163602240690296303216737076133561595076078504249475293123242808663869702685505740540729334280454383776437608705352728671547028722458338245095304854284383215050605775263043987114889066882949653348044133225645136584639014253331076941489435583450950445247136552709132673429578262321671383884135752038312586765952692214456151841031731745440863822545344259919861939907821480402557812149942571376712284545648108498818234551650239908992931516668675997802965527059215720579366325109707390301161174621855215865479232317655222477430079978892002365699542830735811873308763875671707371813494863945748717971271364587250995227943400742430681374566724335669949328524166009140581224870135055126180702070212579808361644606214932975927089595514433340339060139941265317686878936372009565389814117271132734646805122384677717898427329394036189011821055720654427860886965699560973659376618611244865074630735973346688220689514488626962496550773362646321987719833791291394234051695112185259229445994656208847317142257470396807233885353604863480358140628785235195803051141328404232236156838942730585871632244580987706673437563962486101986906679519093883456698978132071018316894421781359867864020136691134106297131830847508481594586915437796887721980013323009864886795504214760178601817402078822448002125485940330488699598179645218140015860277736925536672800923073148093435285790486904456184371701478776588841045008870074840103564936318172772327101554141234468532470674931217011501663686151304847103532572756287246228593110380211549560658378993273114391064015941855697758117829757983842725448559947773631486709228800652512449541033697013441045783772774884656802592342531300050101381357296900977495910661909026255351053226587940542606922901717382730436196056872315059737310851998377157457927437586233598569980510217938194108511855800577475879117079878647545339704893153239986869660684020250465315084115788657517100006733015400816610439749716549064707723153638175226834332494414209604801091756756984385099121225990116788273724318722607946137128552298098012240465497832364740794858226179768569712300694721915314002079038154159884206015395416330242247932612231721113084799916786634379439400101475616225437444351390117211105672671200234813305470683141680227326776041510678111649747447358152532023942201656081442882743095842431393692733098230640415632604641042254124898677442578516395214802919855887660525860088495052487551186461982610172656259257387502186536415653519942414590996767058124944488670906819493934362099402489399591511342985661252568787608067651618385857563735227171742566957055002785510507669446114793395129727760340535662114033284348421562777553640262458268787884398102992432930278788186457813844311987205516577434677192007288144559465624740558325816525857455947434810068468360826016764343705488556505588069174754485131236051953699322365761411243363010812067181571090126035376989524100446843058318966970378400140961288685536893418110016543059007595920228477113312503136627949574324673706293231246036771038255315116857400859964073430854132276465362296639726802942347908664892207546408602614476565661171497140635681368788804064222519167131371540890173576061535730660783164938126441578817403082687307756919481542551320003097387326059757648595537816399805039924930573589819219927935824456439330487340099681135764101139034214325348337380101885572682861427935483530978544843621065189011622185715440621518570032075737486830009984330365889540649757153309807783147571677565614627120433796802645511314795871800464878816778371764126710511990033304855759647562276481478265072408887126833614522146235370977484653696001774317824823965818111847400418171971240670811413264497315820474995439123251321509096330707744875943871877206745335180150735402888428579060083881101944151413756451671107790329347657510093347887662777059899940471171087536127575698553203791281056373623042466240277107512697610520789997840431085783426708962444965663015007176285888945065991851088788225264378901387640339112563074678762061584168597956189768685009968848783137760586834149014556732098508074430530369001148925673084126557083537994557632215475809515846409704068833299723849240889201660742640720038732305755597577771744623763523364167063354694312542493124512062781610503610806134415031808847020062914689466950560050547423286260884506629735332569928622312930058247921606725853863163548683892952035244060838606473741447489357084206609778630194863360215541066567792013691476942308870588292047436324995160497258138748847262937951272035077743816033870933470562923617280787381319586812434389257818527739135432248514566536290479921462444067863780624534602577341989931268778011358588163596008053513024337774835721117166689548038588360234403597280081997140551837688336099431034493806814568769995420368136376462186600702520105511387385705173982346229114286623902194916383162865221048102307492167656309759099349494103819718514606972609549241122197743005695189786897963076110422245900472308599092776780731124432853099881452821335187440694779703373927449806706947808576386416872127834830678498593059235147736412528863707684644990893498397855906936078558676967930480493386126395393271718956870524820391027719672124301962380300513446430563179958319092833232400580479898926473392416088380185548208095215419652009007168656275086785282205311032290139272997912091685463914381929813136250710899935683205354439527251322663106987153958746857305706120334742394387966569004004857707983517143921401480144812100561343163484632388319323425823100406506389181757230499421520205346727686945359588111056180124821866117310350444714703610649674575552909069160820290824764561290534852350326523806153235731136733815947678016880512716120509172197888454611656328017156312401700203071997816478768182666629108160497672701602549696747975062093899233632573252573105236018411207995498415863851738389678596738493091828884192932197680388399267836243400780056057085713665648569914534594563482937979641403210939630019412020347786928310304427376229100638653891489513823327988093948734373675792239182666898694627925758141876305900010720596410387944502091663166433291533835801273948327959467356642500991963580103919158260978375178816855362354777865145513454007494381932072669421871018349203015370841784306506148931568691265969847446339279269732222822461741460489462498260760721050901051454765695094635342445737989857846234038805075847286310888620153118393158526661239337807707642982993223506966567092388253940787829506261169233223532992211714814624079058906489038908565091229131507309657842425647429782457459473685577564232251537748206217359177853435916200613270085019573891311154085744124085019294491946859101322057236595059252514434284766029928115538318094433782662535981505811548781436280090756757653869422374927905163155597292458725613933127586259850844839645754796539304385750519720847553715790480955795538639739375418307723511758271683829093828000077817348651385544857606153965661299965640964897046105322703116472885186336611121570489915980816575717507345038027320639764261325358811063232691986846661554719426750911881157605169400614081427324583838451101215473505285696078268460422509247089761654007133793040097601689143876388975686770645502538749478537454910857116468071924584557926561026757431137276275559959094373601190033597137610240861982134443522132331942467436352312956320541638001006037286636227720643774930533160551422500119181922950829424057354038147897465913648710278377763280022520935945593937340346843168416031090750422757601622729758298960694723922847927546277030848575663903997010042658021500502462367674499477166096438310625682386581438597168315789330948035819132344032162482527483603825576084733547236064785529191505343249221490823023384738479103631281094841360562701356983298055936542505844414884166264068798675240568782021521039865010354554972192171320848504582004866980730829639132800283725628094745610457824052959342030830134066769719141363118182556194722414176982893129147288721293732802039145866686604107734105874524647146349591208974130848553698606695526431319963888729383296711933383099717469436401470608992640675736180203201495737765153775131115345597224301735315047495742648806775712742375300756435027928048746271872337734795084215561875319523542687916520644772021030675040734684825144133699424921276712199746410291560157332268160067092096508635947077791309269387783716453444483255149045938763795914160781473657315620843146785481165188780851978494528298527214793255270631337608323252206523505360971849956662465112194823481193484045823868097925195297032054506998469506666033068376203342742235772977512634144656312631052033253380938779421685897545456188093342248863312475299074482998702746218102764168961957250743902982712825773002656312149008314605233819757741997403561442544451753059779004883330167732585036234572943836727918139432679037335007783394152463626156340916397754145129509828118489640107805283821237144381695245266287831764880151538059653143575853780921153266869318854302646850202082167999900812006726018925515376139019304115714526434564305561710863148419493271002775591639491684395517763993335545726421843982422875866185445565132653577448084363110828565516685131036971010021536351329777935992314099461560648007338082917920338274815190194267588062174596585507810055305014625277390332196421623909677732440027091876784624225149048711484273309928376540437461702331943672439130160314724450457043362304621389449202677897307783418869275114567200886805162273237953725475492059720089459138739823245729214161140356319575034243344087856461616591246048507165722573883814400610656921422588789251442644748613837878741141903919794788071057826172089183640006345913047804057738034790540028141785984358775985954869961461312414399787131552649294234280186287229517328891816110871290925485751153326001790119344864840232076015111267114275762705593160002796410191255114351605566595617826112647024994918656207135486029516296880769251786419543166426756409311659274985065590889748076280172889127817014559519343797138499303916309530573312231725044099287384382779648199445881510683830786717117320951585338639199864629572140658573808324979297044338513630654576909978551458265833728659705534468820740117925401847097583987930504660929190226809110817159242379555852559212584750031975894312807745589958583096433640391149232311365277048565934870394160942610326885498473995527711077895610086250135864285643466361675666932148038663965152969503763926556678535032368996020562106168919339914175940662264740599210023646343558752964289604682685514871817058101031921999936415249408642647732919808883130655510444256609232115899932260404290339337173089518273447116340564822474911184356051809165323493940545208550003116379490110360118357071443315569204945217495031342692981879792339338372679056523530431251311692838369792871339000523823904699969324245108125976091119733230575816189647912766961276820713568561961406114560290688457708974163466221374645204109758998365002200233791592083867869479042692576379446086828290910820657531879768745944242978980975831406608132759535186608130179092028958699634018186710698191149948717067654754098885065406437601346120138518965926759573976753906979844317675234233577447420100572073947322833932364883700837113060164106241722806414789319382482146349518425877988985964102364535239821192591398960338092613424229032497463255517142221298177067656476868630316257433274257344930760540984777046966912930483473378957184217066025890725003756972719415245663183556707217586903003817160648886183758441724249968491030882406791659113536962536849722682503225771980697651068810487904339185973314264698370206245911724132374122238328847868624813953282363965120112142914644406373905253079512835585061184366328478612179688455802735392129857926832160773509429566530043323381641667915099721002871951256487127370110031544997075686552079885020631374135793503734585349162617434086157596637804530535602422161889647037149032326899796048400023293805217755741011144011052699592287866516704340130945574776635770247350644806135659282021201460842252640338589917067325122058342262834371941196021798576985451988306223772669488675785740992799023838237398951868079519988332093977091791260158915385115282323140241306702016583129218776262390311890412277711213631266108644442424569701009177810178158402899176513294925927092297518511115894270150352533716993418336006068487838410745186570295926159549950070526860814739106455439618195291256837092198734307542598146150483941326988385608955681230890514523161811930840290938538764180761522546261329223420795631125145422040230034478636560843646436020397126417515286594598245105075863896422530997390520794382777730281240728130339736019151066267870022202963460753636544800917150322139034083870765675411746810993564405913466934819484669640378646022495811447167650957003415073886828677239579443886630841220436681264896520084852881128965801865645529886319947478185740579449066069142936535171172983265747489069180008086392880820386832388485955903849775585561120160606961885144187514602327294203516383288708139758470801278219852890517888433510186630080829071899001165059819692402831766948165451202260077649732351192238624795616294819825667846158818249958788344097984071163960187130028955137419914672311471428166788486944281385853031557026933644794663762375517340427301135420776044946779225922874675967271293154926978733381036737081220360698400036154888353175602615315119914470055728084071903345228997371500557481272343871047786947281315502618712717210771988053846204766477507241520307950072562775469923459019734187995911361309166275172063351608662445906463705506290544168527132109188402838182438642974414133208896708894621192533567938654542985958018859424506622058455418129713078601774616284477166717255311102181012964388990391492813704467273612589795756871016986677332687026672382364262970384442967170006223290664795185014722441503821734362030793625600808455616176406355064917118384927199038694646399625888921896258665717911366466935415855640983337995856475762945980232486383816293640039623748818021388846610213125183892335733081729639566566056630170406688681074323300326426107591293832842349572854656833220970015335497244072874408881092422409012846723057177613333756313490799172966641141438008516862403717246485563538590054362462470737318485964329873435202194513774364422122229889937421801281858078353990452838493271821607755294459409494077759846587586600530677598236214370097495949032712735117215869428712678548319722754942347126146169117338181192311391553046961477503340681684477889024096533803373550873247684244127370325266221676970272251590815939957538206247997373851972088097360624557354762678788949300046175735269221753275417527209888591802978565369136723296263604756433522877918815098506408928614865600310890392359191400405075869889065488866098649030071014492707531553518500684746849244554403857173814541363723476982883073297571574359734251050340744775208467173871741784178443403858715695742526955769870085295838652836351842290641454203714400943148251721258388755290369906872933518467430236205487439396216573021000288008785062741175750575459554794102700115104651414166660148595128622829340670115079038843332407945160116170214576751773674420712475536096754025836511260674964729269217005615449706413520059856099692225564490660547567707788881725218730345945155571214470976907844085111333573409954354433260358585529207169923174052122968501798501653229279178499850652574895029005325744072898489994137387687320738934945128617341236887763824657987386195615202073801693910766322025998630664044226430830822612891967304761659518772132214453491291180332465145431046607897678450595660189647791524305612107040743919976733388895834661283283399424365241039886366448730082499816278775189143392796248973341785516619716805509136582717942280319142250382820054383979179618520030975962308818465083106481003534593464645086983106801634584370774250813508006083895645887888368850674037268964103488589190585629827423938994242365357236296954064868888714345994708596941888373784930667797857354120029341736424783857710570925335487054430159698071952759859085339218955448895313910800212694510966816883105300737175263093209355920176217401947277052353148051782355048641413523865853923242965838654660707236362429393175711315580592417071124684371931272979036761122153000752166199442258035276471740689196265411030026409853438466798736091463959336959873349575616727300542665587438787528103098055430073311491378780485092897178483953357583439269107085532328112031709208023818915840765836286106382622024510539351864392305590051460282414559705090920530216379956211609372465864952521088623964852241294898008658722621945748215910677834619171035379002430719544120299831154470028902166339265475289036452755303132148975301658992018707917649555613468554285518642296247927863807940156649743051459625955315739722699574550608103604660422288827931558154205991183627298085068063940996230399770828558266788750517525855028995394464454645804167651650205418371080743710515635269475214199706749045575392867720840140496714782825543184187691796828062036947177809885483204829093878711187540332701395534923249143476255825133565454660523558485250450076598493261029026030220818472994745288803278226030869867101718059159484513204132769474477045471531071954762581696457878326938875785496692898901220401355175308618428408557133132948509599807053348414169432957710202699955168335907521505093465895622409037713089674355741397511083112178670393030740888993686523265282401265532534344798001603396428797264947008171181691817468852589513464648091694132311632541093168060577174497895605361258981475095115761097287038664599608447698987174769941581992829344269999694209607723470033656422004765378037400549765292715878141222611497987805018454223068231622646206913143924990354203589624845359212111109627905975794130276860109061709902744440967797195087872369836396220896544124652244824850906054245134709750865138131083128930809360835153055186095891402315014948769862250334017988159617011380314275679822663137271852343831316166876531548402095453786915626021124542761468790907791713075425121243629481114683220152066921777847830707242001325495525773280396691735076946325294897447354956073170629084052470476352755537371153211175761865885073712044928803064901832387653675339766303050380345113859201622108816802548410309208656772502317326343236766237003238718719680447330134046639234159114054965690668440574871560827451126836526649752020484196275778660208494751652167735550814086916865940918517666795288297773814040051543403468675921413981028348356771874694497123717652616702011866257170323332373639347750073149635182050032582087702204666262677549420242801968493915973983865853098083088790299249606325170952050015060731030922421062333435320710188902687851113321478076040352531024885484483044086294928173272686688411563557652175010293777948816961356517554681395600865512515948673935422985740485940412988939210604108038897460284981311215192176234914620363180357894273174186151900635489167846464904822674950266411383316560364963531722033531933752925043244669654551836254828098687364204258051830251030124462199709767748408469404699780950365512606893194238938354294731658822270881886910073458846609188899633922663041039453751979022595846971590426173734765076834744449871121078680859432653013833524697739907265775900016260525465481998225249111868408125738218263120235787871848814995804025208646008432982197398698438856439951328750164025469365305656445002514617502318445275767479764200013809015225945444413078381278711477191180477210810734023054340960794113881087831695930783332443504104772338288623955894050209998138926639890083961821182664539145281187685109314267689219377815322677834338649894280413513189325945066781276798836428479897704612798188599950193188505739787197742014077217638838247553734304291356589727250345666267431994754547713408156488857985598196338722393512278891870114442941870755589133735837868261453730721813250692909645625424547559659906532748098776836844641403634508094124933692460357374601879792591039937723918514979840044506450406338992626825726661413180664140330554487385334193386269451386678610961827898333854787983296160659924422777080106561431242598431272547558184678011624506338009188163003012539139470785053137675543929380559367776490827553821421729540883458322496846439721338615904119682436648996491878534372226973002408453032402509581177089549668655756130889329937456663520054361424608309846852707169043496848187582471442683523336421463993858220964112896234144313073231460907726426731395219637724438177243280959670006682897227798462424615076288184344212729729785830057757731309997469770453535734392654783515172376775180105489493010229494576505005792698725892447823626954023044347927668689014516834921623735377499254139945391972415997535891018218297470852943654167540501258500833996951086083121995096782783239767603920145584681920996195849528755457797403173196439316746477661442409326466479021455631039005930702313525309774185583966891743099836364889677788579498558366781840821674822545528707675842270461745011281183315370533083169164290445296903953862413775737242965353988501403849399475335991078025645100295036705776347448689147841180161947698010804426926484190544146687801214640312500512555654720216624705314780930336977471712995770524754000985365811945243871719429773709882086944133134420010286286246243679492702039542910281692622000940743130017287876018462266570945310070248881371398845645858480131792256870732246761112065133102538132265765447126050598676865157564087545972876061916488707593455176839590149798485455828316194304571771226517342523548435618470268661219567607109481817405081479100907551546626329220085001549500018324677229330144154358654580014552006687575456686411085325388415767802497359275267930220386424439392485901248988356781842498755928799059013740599675870360676283619918893145019287082869481450918104240069251036006986195511286213597268220776753451331330917730641631636013124547454762672983741709835629307301005286764425588992047008262635996178143972126738072092548135404524335074212090916318971449873810734501679253149251907849415218421569100193325187020282948651946840494843909814078671328071618362087630593429442899035681427956621061697628769122707379691250758429769254417850285762396602839367254085364011871705476155312644531182580462505593756411376012618589053494302250342053767404512553373982138874538776318776287556922128739096412440627802299886673878950007951081371337957680091399684241795927293043529832087285711091886910437776745742192065842466175400128905880485925232919010778117731443511702927430650105157921326511865583115886560234300907154271508689352019277955080578799466893721064784448565834075444722310015783135259385253069678358121202009830964228404120249936566625865273155024196238693977141377966392112265990742255618407252632166114457860289061187630561193308386187667926626042672899025191112405486595776741709439381850136781929728724286520662860662352125208272920944539218960550279212498042561679530113590469894831151954972484893649960347923342141802159632012710705846022646050507148431741469319724141854657378567795836578134622284783378627524545591576451333538361522604167668680857134780723247895003610399412967352703059428679583256599789848607085400623741053495721520926134284297917751888310873670139065820546394674854708798214903930797896600865636841351675812872109689395717497717184682133832197995678193809092071623582086070041849460175846131270772803743849282331365714070989334064875852182421388780709879361921516502191752070593803687231430584027057014192978563493890710935292086724008723524226897943710240381214873172919387832012990270070030910925290155221555015237363482701976071958090522940045754738990407386849144045537579474612591763118136895951243039933335537271170025663755233830184616167536516034452543431666179288409514167713644556114727832285485635109801342673827263338406392987061281300563364511053287480269020798176951058808670401809604793985093949677045866200067004821552774371963166440057278350480956528598893022506237346637907852295636818509340252244830928390124410663706439211330393899857572007987173058755440617324322361835223901783640218838602254945361288122110770312180036368503824491079998926453631694437481932741783721475628601487337343084501047221886500983886346453250303742029288235868243280355142110962008811133379581080137783456887268655667483739023373942560605847164574750136380477892577734256467578184067528040944625235531396224145501475558174405723785240122996734506685618244240704023321479749863853108423690757025996856425663457727583947143652775806418232279558021332019375243109817934139564879646135194514086308959582314700522624487183151770093901155086897881548392653783187754945438565940163066644012703121594669095651134396307205441424157295384883851520930340963357828132432634126654540067081102431887066139774962824042451900215922062235569473219031976109112726707786476760375750046966800836793793415399625199206455915115892112413388712045060746926765156259455213861235559828888778514105387090176566593741362637480593928884255952462729800378839799012073396206141021014118928458031381245486138606998252882887558869777375823115228983738999795041362046631061022223390718694242903199602510235549037337730691404732757636009893055196192784521792746350219896100930111987654304182099768198731060313551051418601354262827082317006020177990633679159153652721938943510384086106820314912990594002873829882860240314085523541475166039291242028938128417260263095893323038719471606060182736607779114581502867673530986714152144087976808904509858688839063409492024138836961557860880356916532194287951348468098110451224497463303872618805264902524078302153808579630670222794242967828159121766833335664060362842826305147478745649955723748983404148732057616489712484331311623594570632830422783705983285119533214905134443801332711230107809571527736135871396438055051668729740483082014213661501230981058927411289317473843610540635828044805128321083382937479822702146015354564457499255640554615374715332518245698290368760127901278559839289327422613491405471000393379352037867304510232777676648586013119700154673685025254080596943673331205420456403353007154106742178282708617858301423752888751418714871135735555713771766969714663176571346009403285093736805281356123326833661006865171752694679564786806924907154082238891876109129365835967487053403945456695040203635350727169740336733697355892377093797884383290423812742926187279713964409997240951922377395699005493723757685889484402572758584815961088922311175585503044812953203552332941178763994427052501018066423401357259474255364107042464453308176523463020491603628490709992451871778930612746545371354897342312155959443887791987149601224352409770161694750904100880031341400775159723319963400559685210706684312123442283475608795577403441851521772621337915311871974280862014945120416780843509413994649808801248293300067950019100657242129431469923523459853051320481743054784976737885481067579247193798413472280547790855919637837554871063169369663873750594131760400380832661250301810460516272403676061926564075701238186557147902997608082701443514192562312376562163713757207829741132904952211473547208032998302182397837289468869674823194277933329659551597730027744396340014588934684847335973244553144312273858687058799458250756045278380446507272225289045449921167586043751946062242845302146455283208259625982482112388297880718680596993517144655527450944181942483751357933795124156242806624648903058931699979011704175856478025840965416672369062242819305435017089916872890622795168265117602028986608747588582952670942451283868905500559813650158307170763846918140076691603299717986779840791864324699833905983110268992440338543098072412167647178362035751495660053097717716404201616359323317184421140161427922554023227073381038050639239454863406391187404601963661854817482144505567594180384767111973868661333506552238135515750896361138021699967215265270659368697070385500432503635414097774257213536778394828427382704187129704014994887352293140904656822799482576403967728782436887867199397050193212148981657912612266856427532948287309568824125800810551286765479903823019925907061257641308306827320298482481251622455116490799144020813628649025214343262191161039781898116417380340654288637382642256648679236694138044777189632262230636863663346680635406220919864565887146894152634500061749571860565265429767562229691284413029315423286291565183266003537514994992589644200540557489485756096446262066146204434614495266195621195361747573205421920949063987965401857312627050978623912322119232721863548478022889452852370599062820059241433146362269528587168016928848610110917832160342409446538224088513528365716836605540553394034718358720528994570776002205979417774063674840821069448351306149293980249884596645061286525980908999528812176291380538493854680617286581474039253925100814625245328900569460670004275084841655874444352605989845395903364567935630054408565514408488757306004917560030984668863867532292442506459070316732664999079996010870240842460083431647095460948575165097663117992727849558853164539124325256518530306279341526898387610299859636297420003665262044659060481456482812733074840345400423762397366848464317938689223246177013006090186811880423992142405001917109052617903144300822608843593278133818628235128819991177465981103731899594001500993142677984901499274408604836753461621517994241130984679860922888446791783607589398864149348651144595279250204463220368548246409923210598341392783098263323845807010223537108888876302861965396855445278832278670716994458653712008793266051136391668359611229042765558370906181024378440379574256762587981411418441533979707756785446122948646816789901850192011498300481771343705339321616269849763850893134280161605985099802291369841297983580705164582615752112156340275455268888618284517694892411358260075103202470380633737423268399210163905603314096150970634721085073287457093323825484399829555677851564817253663539064398893798073196381088331260503567897745378852412681805598917774042541926155886494976508296726067866839906977615222921853830532897090805545964716166055946559136997106817426303958614558130742062508277005689660814298743842776307540641107968059112791141452640354950936621981197239330783986567544744419101561172595215406186546211975061421969670532626597420598906359847210513252150915688546485040513727444627345846214701806354197958424924468721794410747900286594571852267475002060749266061862189348224863494721327052643447830775384523864600266909653245854229747683838335763996939181135771913699495437488737991233032718537932919716840243563454392750046763223432292211142140167937834409321715000347941374812132138364967829046634671357380381606941267409343923502043205451632104732646839621058532030421760147019939985333867442202705250383535967147636756437413533386915407692688175641685891270026935242903519937146641176217711221374934965498485423642696635281939197601385089806809789414034687493796641652685302983114890061801050028731572758497345748665296387436929981476305407412939339788632061625874928914487374018487164146001433077026972858677811608073509425261464099712026949797649814544014623612749645475218774467805596783528761315434338853581010444585122954730691657394032764420765907570110963801252266867242298947452961434993365397559814253231656902451776123816017410656396967519422395139573120903876674675055305261470128688291776470511633337953215028384965850123563047658701916079046036186771640983211108832563716595957334747978819681599283150397813324604224052066789946656293951481109989072795883143122953081838017692050592198495563370119092367432242117783507994426807508372755953637059284866597508215495148390624164003330166499452691206780028832889773636735472595876661254028434683420317648136221628675573680331191203908766155239592311208741886949839169945680597082304763176009538744356239929298489540590485355516609038155274217677203132968663087667856761878135740940477506636761180885233814626422256211901499296509878145921548934736573914570430516725949507994876074628045468792990144712097055584362231605024138978597172753144912166228994888699868077192438174338822646398287204519352628448958357694347027617276350148502613856881086250998784182307588456344067702365161638692342537400933652152485673712963630333244500372411598262178725849914771993996143352815624876573877708697698412603387556583649847581471669269329628754151973298380367271381412874749387809203737124968916839675951462806067759622463995594592618075723502000375865507910013813120658055295978795527400113597265266522542797975592555993461129770223232999228792137637414602501785210268450636288524509886317952440199704030563732919628395710662151191795382365359402952276854326330831431751762807727798102858495099566792839537617018803500983468881692073836485557463655241414320279991628885948628978715494578366416102788495460509708659043546604057482378183546805331201803707633680634150416460642620822349823365276319871041768285899455368679263315761315458593919577203021737104917878205280074146364813520772666264057803598279103869276716869116448255819158144947173556720450402704986628668491912725037830260687136729399361305005623871057215678370150861037747027720366627945858844190479844860364018538445825530082970603951967406521337579581705449860358590554263466382227357375471672859931372126559032325526650195868171396716038851353425157524184116272888334821602102518288219833784069209621668215640947578757472465139114891514805097941979750763522157476314826995334185983490291942472612175361310825268047655073796750486409353734810150204783516178931343816751189657093749677746591636843617806622210184034457899168135629972491443013800269546482794595672722700509069847281161498671555125626956808452767510204493081539253578640138683033226558707582522724290340572609244728375274291549913691755487090181216902986961093619096082519795810431706212086262318421062143618266836756696737008384945651246002706446638538080331841461798092890065323447990550221204406786417757262988688828470024721002752936914778927681516778777696826577714619150890396637234371462156625451300376203928668784697202672063025421643673928109494557942179909698290434468679614697178119390036788665389854021605315578589030994150465449974463203397256501249757677645196199036400448981958710353635719995262905915943195390200247567436821584035537093856289002940080177773223553328507780890993980033124482870593686391666586618371023263674533132668924112970494122749705211072808603837651183690044541398535888077077742073899398955404766865108948331250207199187356800986588593674414460622765098375873778234592672232188947655563022651563231718803808221136501782569340124625842425045407892861337054659547235619641565030414410940917154379084397224939009373911354344180295333590630614438077057117372956816418857206111358392638709942486053428419484040774583090159068357583330744326127614575165142216107798201208063540620157925500230697729222153990715707689397895846864716828811607588322615177034307052321466426182101102269627734015179754387872056551375422250294065907044438388170932649998447460981974778890733752579570390158786176167983989239178711809067830478563227245143867890356495791899752189020918196105841222824179461444783912972396523691557968566443232608655848395657441724886108569582085573982051479501787335010585764716666182693896816686768870545202538126498650710797517393021129018352685711606234390899362064307097156003362223367915448604216760287508459907469928171254576783336739508762656997921719989568416791516012861675177244740447359514782242817524280174345367807263277776532607092268454713329206262413185067918772693008384082943913309782066552179882161753775328819602057120666979065495901297469579501023892697137957234217479596803967155540922391777998176855863938619421895485955320127760743990987895079589254269594499770011857823188092788615976527085708290047758682862426044117556761119488797316211207570684215864798719395125049633822718420323138104983280277477348157334973217804700977781670730976895530667413451905151361362676855628042359015976453381765000867645676138350143591805646278767623855645677814659124259367516670339486594346697113157005064642390938991058103695799342715934576370804277456192698890391485844785921440709906900655383524494637127232934809356287789927894725700767312478050085865327195615219759891435153390434587005872110503494005782279871403741447304779747795982313532604432740260289538580110760869685495554847337764380117208054930355054798201777898144943128747581221811191997610577714665708640853374263457045673830208852929519199531224732726012263765267349372716053479959705742938239422732541610345365796501642167260821256651933828457549871478489000523092441323636568958139391879604863354340051471457464813189592223616200018411236794189834188019738346502676582442949129190295954194589528127475441126784415371303354272694580735798936109331681885601645699477166113968577871535538085656494522261133909797287610260118279048421849325010254148789000794314653073245828327072303250958132518850874339534084160433362237087452917754750745029138083732755320343346617261122720633579106047224627434495959636409686618100193798056835538408106167203551912222556615211634905947435021206456821635610344376569316719883181620752419786652139500146745759734675174199316439472711379810421534711853674389228876290247583119658286836447397169754602019136171467832829380108009345544659012308007131779126364235037655656597543903045527926257258693975551806491692079938208277682105129233976493842721365020749210039715571529773593406661995084546473906972405157534472835270323732159309891431254660507373748393917209754046950717175589512801719163400009742064671052260692577803223919317294640647936348703967755197508221154881900398147911273444961969263836245873394132620336379854261280353784840896363819708337783169665352898896201645779599933333298288239434166219069076462856906176228724061676866671157448583878773935994137388989499618398604893707227395252876407920956630989488916793868434370809891944790527910640668953193700463594975591034544644610599073679555520857325905104915753958663662988508643677867223086950097321006139171319250330224837415768883443140669814779183586562687494757742883780988945600062221846216205133442372748772423149033930126648212412362132872508959672252696482268777218901836823557569626506069041141249910894776320376740385471729437639431751570167441791697792475741184392704125091662714983522857326028765508895185278813705379029080123353624390358383882235411680277385934733891159847197325033739617252149130201794263097760234296224005941595195166823663810416970923086737222343786735585638095115692952668563149355138570529126158954254068664192248590006361414151492185271082111186043095462253766349138515862525630192614616681438569309717423099019551441621586724096466835622987015903399383261924280482140884179994581511955502617452751482918430709050314653280347933677457532263557292426582954648097090744416368387151875332512651272587234552908932073903592909204223688881024087305253108107122729291338406213969438848508176230115941209574019464807458049249785891164347747601325353355900111990089016418725422125794268976085924803209265703811631318883239602277702914820063020354335318191710615824392615056512157779970192928578680385805696194081926277391369018556006588783473180164220768840795098488025299589229008089542529479115150136159679737792490137487948799682077455419297956246293639663469960798562734394639394958726136274342337912116398388134666766971434397031550586653450649640941281743966392063117651928794180786152642344375090494508845292683636945101996094931390760689742748374965078171738345235884942114833176002191679696710409658925251498967919777418146395760346246859926700912165954410854324713812264570372852455777945002577780686610708615222362606287777912630225219778506630076044235554531766550671619948861305069023124602963820488887033318570805604911023235214917944291439711237193346990074571406633732628243603559901658301658363789333175110655430264192126909597492694374125606030418829823259447020883494846525396664549625326033962751433453238717020422985475350427299994594070461733791134995523709226239711988676860447216088594079202629978161453829760278566813828744843789272384792154663476125960633025035170952707444045728004359621161080276621535410420265823580640235798694748040633826154117228742727478113793547702201248061301796643820609313178179616269791068200165775681397787875130793270725408420608512360595685840053937778301784624801287166949434961025590845678458478615537669415820803943531192926171062245198351179543942326288028003638028280164517928349782858752378224037177386110299484104576922925483750463604607653003293127013132713007072002865013472082116996917992578633092781225330769587986802131389487573551957047588888862773697475321826161211618438178384632953750061483618323971773772592354353311054408707240590689871892768922452218136570509660623979660530317784915725463117899517100639973711399674290346787957439309578595252540254373274475939594767593544759658836940028440681316523131351943909144779583411515738522212747918893938316541706738009558765671989437210466744811914675747628708637760095787924185641205622546905517944488665570878959102505528211676339852630421550758829317868858237116011764276612644258255496997976438537654237231986054448197695633433223789031058188447461211706659994161844285398861594270057703768517005872767043131567515152172265593742342319830017928680558884624790900049365107228613845497523707557605903152223004629556262633101051645368999070756942004457953758982705520887739375659881807132614545550825407819786381790435031196083082370682041310011069262086074628146814787315401361707772140394736225866508366561887653192362898448054134742917295887468095852666186559288601989602473784941114690713241296471725979368384558397683227382525984345808760333989687293895628599685806528071032333487871472293402712534413312737200281811086483790783659193635134894162967633353032580418883010126194068766225899464470766965344153824962894757121887040350337477532134579656137022563309931028602458775831739613046397977660881623547165902381256285569079041397338436905901277527066383169259550141977770913277436911679843355302760573411612817577045174612129627445246789241497172762491828874588256030553782925224328787041746813739002654997205619838867849932980862073429719686442618592744435285361434827990769915608678159415236678077611203416430198103191733588558666741859064552553875636883840232676551485494831024043393308892775914641815014109991207369942342851739354862748174679423420539005075087938452055771026824753243623574929720317277990567787462240095739698412244643748495541913471201205432145218207539072982399367691321430274600320331905262026222621424820276106066691579563900732144147727298495829861851372357941516075804029463138833243321026688355565162820595034154917399906015121144285184389636050348050916634274590392550387804221024703362182447528216565185843698369942460225590647708003790584835876542363326432798625920545365132329939117598215989403968834613000746839923296314357048504177512482464952062882613032894587128494773854642459640670190161475871843757846923126946568683734938359392249018241019204216226672755047870142767334361709876919938604950422196310217835013684017094798625154078791710919627298336808234886553691948958390880583463395237573038669634451393103853633256510296656558443574534444289579822010392455565549371264181002553861509460765535140010787541960612259197083250400873815912650448632245248275056157515034517552704962674002031059528440443015581863778448701363672686896517614844322418453710609184144366880625264578716998692470643574841083314098752480417702743429881475108831757054876702061004124075275865254566707312113255113378681023856166375615814254295917579928483538465000733239668738641637467564478718613944975314824955963296675588992085641690740088959892153614411145361993112862848891124848924556115011569541895671913371503876133618242466259100991378761136787872540898833065192759664786125354072648647454522059382986630739938167918770349270899757577434829974802117295524984771900612849855884325779725914542612846370012609046649367252768152492505461737183831921610772945366783038323454415111454556397615774767741601864852641787179218062626684138565637170631070444699861375556124957138807177330813398502730170870873088605812417163807433129355098836312435445161009768956769954684666098491218146872891819696906487711446575265575937454098863611072487971995333693795664614638317554318828238999465523504926623596378092266381891337182968252188181014369847178172007908567038598356052144861969129746977141362281017753321434789914761902755329801089266953707864126878099807165909404257933601943666962529242326605726500638184362572624112842832347015887359965201880113929963655029318505337644640947670301802815296831003480988517431221588415805964049463910304556816896492671173696876679136657751510875747316421333363809936515860327854803495182590320471862277637329010208170604365576861790435019584844749663492762312781738148136398528547743086196743728798862630040195405912905833847426694032988574151077001044654390549707095922069519182521293946614960290108081067709057097819989985448413975761884571899050365017284165948260811556210255900706389685658082115976975544297151908552617542190584996241300551366070992257771165558485835398745269949675788772151958614147320067106450804311168024618284728646612966110505664769561282775893758159676831664933251693030035470959564683322943244171388697056493962738178381554300491142470885722868364112644183752241069995419779432488085761771097117332056277261136472659696096275847473891524804476294153712439169182573323737027893328710334482166358800367171269742031006005565455374819609247398887031472885293450869796698301332467801388575984721362035775447378745663102164871003732045719373362779671389824118315842903105513194964573904522816731719947981656856616853668581411185747747204468199691702556622950164457764498417166347964779899696238021076630479618602841995575168680642606819321503485399364020872494603226295239866288677925491169889624318153485161724461832429479479040352993405709086179851218344408067162018544661760960941213265597166593073656765202980012805724404760711877833422412687101882491327699256571288825210975724347411189325402660536334616348169068273947618003663113668188133777045019565466616549669525213318493262237333689799462443431139497214300989755940231033355583420773547600910981360735020683241559319346236322307094276090449684546173308427154583974073224245572908756371286956948494000953856866268971355763474114677687771904629738965555407372749607546647643105897384404715447288564697942292179581774768635412807233868189019337770468838950891097207060499170949924970590754360304059308641121839699987094395995108308793450236919487639474005711023295163615104748381998104380923632906337481364352332506130018507986554306823951652289507652449775927425358912389073790939966985835974822310198969142175680377963712746426522380898052858188228866607662579106282747857427352921134694801018875659571498383807722788064573268410006437652519893622227234296683832440568606108533404784945794501066941244522739526651408891722987844391859882014164952192330038908391923113418744820845248853429375025117627798464507950483962254762877497702180797766096837966492553608743345129518846605799780023420050482820602448624485417036488661224964419558688170453186756310620705993824179483350548840719294918727852582730019215322539104230124319370533753179690156608156542808713554352527672740791578907115052253117780773602329931307124812807620873752022525036519979009552943004710848536711380023828441906664607129945307761154162351307354924440284911967899086652374478995995012962541200987312222213747082763329818135048362877364193790402903944335978517079628149465122809264079808253775107058213957206353656360233687943490753728386904848838131195360417367379571190023443062349972184642161653098121475907351512811587786419750025086231674082642375384768090846003564475092573153131641147317460719147910788836279962729281889610872209368322207487816139386395763019852214462563524229059832157193670060485924499259479724350410717916550732630146203211964414361324708494855850407259250805413577359351089171067369833729160101398584803346145808712137393330653105988149876051445670571522955603971479131314525711351186968041740502232021606300502120654669664820498658835433600205335086154696337351262935461540329815877666966924560683144975444248114805241216877517249930631864654536261960117770599342356459801213521909343538388289267191259634299332514032258562951221280885032786116857385036755731785013904950784683460915695070595024598771351482833250287510501580865423128216277340829185303550067606797726126846366535993372195098863100469552143177441781953951286027851973875013762024384360964797347926110159296335030933165859086787388257153685706194106645731108272826646682302328000719866782833630720859033319830865616793587767225236454583302702562975064844685448632882074169405953216240749428887131133061957327682841852176404844221754243920449682609519411312711324558392909292405318062792180329506054835904974488663245182732681526003734497922234515510660788823849486751196068050875997336113717950360265286202314797182242862944562214249426845827419214439797569350237284269488624838074599569123279741388143691537766225420520533044044294899664489167598393946806307185551804986932552172195933725811289346774230103912407031035031409860076789214743077819816054557394385699476858957026191230554152343072736954528699367356756256611523206816043114827647344645466427766645509918987236797723924345916581205859558459908436467124119937123974909167095457473175771900868605278187750917769092115976986540497806731759068378953920154321793468965159985059270464435973847270793559471160201838771874429806815342298474755958493036138299285393064141558455760328697051379461944751366203513018687695529002591309096242472333991700434869755400234237471053570859428306088561527414721248969624377147649076709214542452113461546389653891544980331767604489256699562056477802069507362538885677579730709536173882290666227026006239398629431063879919584436636322319081271779034891753805714891408743186990079123410937086076611882590115034969724727571360849962194890162794982717739135761465980114045618762072791887025314079878835682566165973982240640945081501867292414591375782811165927093543137496937954405098642329126229586931599014090353662469994930967194335406637275893668000210498024497410421290519909959770334723189181830469776197122959366206945107310858491225513354547695857379565758604497800513302627777840471302492962980205828121527132870053837071226311720694181620688644142357726462249668828224612432515777999049580515239633131270415931081687892639603257772445135787103327395635246519725226414580842433280654686347337333523732798884557561606974515974646397738565564031776867374965346148806922081166487261687914278535817313206668249081722324938177452814112841395979371139190892970196097215237744532276709604431178837224593400117703243186373771510307372517252572150079340341160105319520860637292785321515640324949121087290527352178903929535879124201626713561699213002129128597950601732111761333050275822421826565450888691231729759063577084443708835319213049710165718360276262244276714369860819516282262536108710983254427470495176334799804097119038013001258707467181564312666430265291765988231441632195682561201986528521306624081852363097373071782148496053859835518638025252203836903880840269650708955203834090644149833955806419228233529299720757406566859879610050898892840714174449749982749655482752381206832677567594993269630845947012810198771527477841136871369222968121370106231933495140171774205552062741594053001982905736731545802877478660265023361029149919147515510592116042946616588261933090453990119069635903616015245939652986940853759596201832030410087895358364243738968340940396185230923048058530567132297008512580496680286867190318617645975469455160122325624295404907280423153693398647811100609219000973658961514561084820936534976142493153039167340715415707887432688946529835868512959499419959760020071379411938836925105664702378007792863861592645147411310944874447743734125390232108223912603035568792826023844078620786940623132204477182370027297763258866294485116717031038981247965848812600367197234475022156172453106828205017308175884838961939470978561583860138982276269888107576552865941549018720748481673909765362937102620839254617457478581591733600508058513503778275817005245284735013700888088413882298868618277098058538839840457749715063264793295235041714245810281725913936326397475821872007973269125546401556108735865365185378950421787677057516694827933745339602684508394981742218078565846750809693922068044827036081245163958409382728456162207409299163266462208153602654890872852154684113501614656993530971262130319932215066627743842306306243977456157451025951065688473740238104019359502695322613449539690301486487828714589741681650469137347533727812620618200667515996436278362323234422117060294326863008458616965297199719322795232744373780089746269549001147728920494096702062001556683471481692215124901472982519793708488380450401217026332107377107151765496804386203685815312134579491783119577170981843211711802044469756950482642524674575343566876376436852767565351763658849648336107548249358683214626821933743696718398033858980252946831604962891296297526285327387381236425057535327863790352512601772957919203726328739500693517636959516966033199388660304249121357233924910494950629696199407437082466675560211059783914857321220480065505359721449503827369202116897213375935394175021806450093139074671980510984133674290484027707740378777015455259186500014891577347349860228431548546550222404151398070663571224345461307174886983086693088485695832948381292017233170542258142862322997860929949961597431913483010690399677632089355876808957277725311349133345361737925686921392336875128929753418121650812897802734340349389574344792691879396061044048264695750887952419592055722227082369165778167706244455422989179016029023222177044068494487417117974587971186957249033661518559043399985789637493337616968383979363924869381320619808380085648648525840303562784540122588873344534826720772070931740147725782541218265901242761933480440239122646805463924636194444559164996637990428739581908695079853603156691576909639406486279173267405462478868569986092851735136234677816347381110099266334144808603362448126715826114033961350984104665954276479747820382870031261776504612881713676149056019241819129809028079225560646143290954266269107259591060576339809225105418180457180400239724705912505072756727893257193038135073341449912153857779157875701520835741654201700960828284270813015825087456070565382447822074449818993699342885898554583787951151452251954479269398525701881619874899948186712860501705485007872814076583905550282211568310648836132586016434062516808728932299762063646457247042568570380959629415944325352814605448766585142897769877961817619665143706405246645959100666483907081710197803938188541170264915286904611128848453861602686766073245369787709351686361930381871850131929336256448745187984395680138989612927026742963054777539890063864605370078561288091425001147809210017383083700816947896665339363948127290728246470389676859082729910723349813726806283062938814243400173589017681193160036352602214261715470722944269971247820742386949048249216899655443451938734939046426009117564458120136578797119676575422874188224139337285952423640424701123714426208122771759585481794767053934467134200762711965970039107007193477659452008155458717897912704332682130898047466007770579267186550714220524118912685108907392657836655213036875755091602724858854426051976231179706220955201725313540092259510305151279151356558825663045533214593224480599586786458400061715422897554617626308674729312946153054401891470365883435568323762002510038525245915779878728569783526930076686963766393982976374794615850990962454318217400181989002269186519784169288731562008833870263839266248848721220087293381265290592262824670114655904175734138576719407041824275106236313786229572474123431982274194110675516510794963792965148059600059410299566725720178796030094077509167262329814924820375534176678625225845487872190137947640530138404590415475225948950107368392409304139866032975700805175971954967368693058939331952383613532069270996360027691421448136991514947032363644777558236733283660696372726551915466060404734847529837268123273599811467120605744038668896575382491689764813798865004522105388530946004558489447070984789199717532866960942590717969656316755294703754191695733359875277761749521028540709182413131965292944685461294524599971019457774738026168218060142721947070913982482980532598457435165572797036738197477725292044471340275415180167300897470014609729718347224546559636464066977748767880884241709602216065384215114274935194653120532975886298483085566611655401332362666999776089791390610362904251288192312438723335013030335216920229771794034519412008390696946573870016708395652250133436559722152729605610306833749513721574321035378425425199928674223351813652947618850028213025071817386296080838397668801318955507323350143674656160719332905817569762003830739024557192595790702605894869114653307223160359763517460148001006188465120809225002796074062397677862401146024563012995419559776796741567767081593300887585094422186208379438143683111853547041252324688805148665653859499121996154187096511009999301212988034824369454696205431956099032496934364693478882249297390956869148884061293225154671486303905424547160236204180767575843529408814901199916239261567017615509317142561806598798375899591838625047361581064542775284806126896069957329971297765133502165326292605797488077187546363119908323218287615132746585963513158289509838323865933025430753320075876967514220060501641574637311525966933574478632928845275551532590139957265094485962193385581717321691178559713058619979361872225876700339556719728366289828554817407018642237709893230769277843851682754798396158894288428661766662845861069998869842840132417352364529876375270728003378810251542198438744438626520886123988284806418942596291160676709667118054531290869554859859298413866558033733997410986819352945936477145209179517811243157180778349470006834453724454887790861347266815534601803428597827586829800387318632391071271151831332383293644320557708801182355057583205361581812878129712331476778685546584073756535586373635208255881917479855712384803609565312793829237266809282099198422270741301534441209284312518131199439479429853764247516578483599132245726990496490997818956111508026835144653066411265777673885638512135756991009570271294081382299975139796710064285707716339046350217502258093986159714767660600705983755762272053925763851153308211479921712468000199724270216269675622012986439531422845028852259656139214421313115449935356838356703116404598546441357923134431436902847700213263769570338285552078891916869629197888860383620191661832678411174206472816991835136367209517433216601874452046962226325899676558185676158103469497769042204146138893715318705201344413414547778217036500477681230981236116931852625565397251234166449955084863448220000989258242328795273087287411742079402602609366101904329931628145819813065134152963466413414970864929881543422952428637911390865033832211237365218954914261242162580717910879698522743110361148556048960419260052937613565361221278482543188658982715179856835836412988053352486465194376426720483775378904233684339522759866208081610194854873252447880592736163811354095251152084305256013408644278505883512720369738642488112795483249599150262210075514107032471590942281199597675115357303990948695853305517367241682995189619481098510765951429447593319284023953872767656177398349157030777612774434722288621639602904135702805922213126589627007730437551737477104272270636778179617366953037452982362536931553562438713381671007155618386742744690874401854304035131244510876791932884224831090743217758991747367976904828339341903833310390070867881464008181654522482729187881758807861004488870811169950436952916092239799312275409512656587047679274781235842016465688713135272050530043545196338362584707419186819874991268559613145328478467076918574990055138487932793449128413378788433834890727466174846768211312491223392411055614585396109290392353214111532552263988643253529759126389910099466430243345409245408346858974606393119607358860695566147304473246393827433160028643189277573572157929077439806250902594642590080895274120170608160118068015453050188931355932177495129160154530492270225312593125414384714675128351542863758399561759661441341279032929596115980991374638262231940484134449528492718009213942397618205288692961181221201980593824285973942730123251898949668354439359675740464962846585150173924182451270834044867602994012595581755520566245870450093443635967721399635417077151214460622006679589025751688182266496118888033347048439321128171864291921946100529846711524799499328142105696100202308839135568997642610920185411385687064034209109101810114946022251330570876028801491945301658632996503009842688269657175144119568765486864700167001994018727822850493891912020170493221478722726878222876342196004474326484086341603225252349674101939469271180958684376911789497241758291939784843939377077428262824969769391207877921328964761942985445579855234066305951324865377860783490769384173208147340970504855090840966045656561946490902355920984315744983758182839022805102916819466210269778110973051976605404564228711644705489419750579354923290374459862169591225058928874996417650517665329203180636380115755238318483995549693053426439918668565992824500397404606081051704098040478521567968784497348048678633908726795645319224545827456775563506295559876364889235767041989998392036994457744619423394103497817251099322612520549260894091095825943661695147155973206783572123118312147138112021273374990621926680436607115387388731548796678220180149906265138504609462565709170301552624011596777441023374497280961157064481703085796877813342024275161823801691328645564487171816643378507891781065928909579084358405782933073647239987824569629067378064366414071699955953698359392885517696296088124483717482834817053057380687606829254186486117669120251119069045081658288961318426024167552158743304532546249208242170695349057876903371245785887086215853808427639278147818937483686410696666848438812066479120184625339899395907737991829080132616331721593746389499809101085522157932570050330277683749304538525083554751210731257452792378822470748892876292917887653865029816217097318280294795783681366989078368317345770290896490144006614921790550289728409983838278411251488937562066510632274297221882957549379790736431581792869818828400709989299937696166728150189845657296166712666661634725883984449313392056867671333668029482574369182065349941070974728256135984286321000695387896162846778523419566511760249462417504537340569164011606681173689153146746048592821776388551527454557474097875967407390851978814826677160005204910959984874584902644795676960093489331691669535603073580857876192946948775354549073302921895960614798761574054134304006601341621427980486186006849377260540207099122023993545650223826707888682554003621018021174061381035126055373581147077315545335313390448356972995262868347395094378021116073234591617674831029202617295129603042493662711278059370547871810781466031906085098583709621632468909059986553605062241257874087077997321934832342401027860819992553435169864204860967950511433448757333300667034953385897044850811562721086585676556527028801375538761397649177358669653283136677326285564792864811137805164471370243186132977311596998311919628076656821454325083843395660659230163888924228009504853011976913264669599346264117367712563564898080440346079235866887192569093028136080795496920388890999074980659346220091379973713816352240061929049781667041550416139436099718639651160674814778693483757767180494294212700338902496638295264313876765448902837304979437661755846866554376537621958791928601224574007033532791019805404017407752689886032055848655981636796852629485046090778326863149019191360589557119487990163630233950558233303843665143911296156156276154515120590583876088673959632005101033831913924744620564855429084081174371493364074758452741886417039587561898652610503363593573583605243029730407565917581341392963260873856251657344190117865182360704810935969075368408134786197316400484688458857678381094940517722034418745108156806201640724583328240228878494561735522903140200936828635772529646217665783803841128448796184610936680048581858266544333419179814042366366964221567497150594328815715588575384126692742734604452472842422046212267296243120725021058764694895335443574316338919927686610128289883716763453616629884426813510570226315301133267259286050113036548558707758808994398416301857586759177114558573141999667020341634422905173529025152708355456106104582388263891671933039005350287280361741081820681527996485796525992367620033451574390741512500692043396509228881844655038410399700920734030745915217079768128487176566294696788362600985797949377573792323353596533965501569966605672138363968377985621449654427489678432338670353910251192116241056855300867380594746101474437187711385657817718155759103689645640576088453157678321782526744603464967825073354347415372363525004748622170460449330144291553971505590530699303876354959781992475310137981235298290026946372193036007516461722322038651066771376839654195892310861701029653648030940899990231003360359766459149345717730531594694288179927313955378681750542700570715809821376796162296695249623721044911253460544914121256391011000590352314325888915511945429305743763981830799689752856745452264775726846338095276622698832525817972372481170572039338982228330369899220597970872477329249441899186276212276824535315012362663321289079839540308128721884166409051415908678192615429324572705075837831483374743288212712302287233509742439149932030700979074267635925019368717549594002741902847154693366004718944497352986338332296368132407423290774663171145619725607870242188281082950399540599187099687148390046059459309370199448171782434318250535696774651671422064088171105928757107376640054045140584881850081850588995093513675066845376177959981135434334615419746434601308721635188822132375447241869888089059125643372545186256324388613112835962466573154654843448307290632162611563834204755504273550615721969438482627454908935216140311742474022808187197196407283199692649738463087952202916621970947096470045558034121170752731611433727888914339263841882529442603167710687022299250713129172670674799552396823498089724187153676318739853247637169382436405412478666161320202663976058368935441722257722066627678136641583368942873924892563723633335129401596042664803758927266428460054353377669303440312481231835162557039598592625471707760281616532231501153416288973765283410426074194671735776668767966736318217561057084774002369271654966146205366254894888150866148109345255883028081745624035579646311114109383305219993309865541170157552135573329183719923138678259980490003274346501109502875535546404206699960685616656032578330745726980046721416377311330957706759045603051284605349169504571142870931131303985788514171071267171953371316271001108966274667346805101253301780624621962806985097277551931011171439453661758774947415420258586075533737535796126384075855368303634276220495627596943621396635485571765385901107104378547324819980869623609052879928063522659537698135082033689657069624062789529724198765379475048077451230174619666355296129475433639037402923488114695657002731597029610119834169399158729615327004326726747044311965645517580927005183055407264274657643023534311166646652221214229827401811552236927284605929151224104601305636860953087087462418484287586395481297304537303001893106281499886082160087445814235681325982881413865277293999494235937446713649098908924959693420306295003223620706283359007171162105269463252165595534645917860598094260577165228910436735650346871428017804711538873399721097758204717575752804455997004313236671571956172477939971647391590680767183337194609544238661294722867260464395630606990086207181818075443008564534127809217381223921742467907216771440167968372944258205191182697000413022884219723972126569803616657256398683847797954028937112406192152383934195826786812323733920135404421688606266465267975921444560795091933373482368468537726063864429276947234720754255490793166029626352640724778815019517208004136380856685736480464104560177931676232722040428671561959539502992783617493854448392615521233403499035715338716684449800607218417722691621750296364182212029709745593418535819901094108580903985965037031945434144459829719201331218570791194880697606059803942814915888604691793613215720033270012783964484473590046649405844231710222041099245273757252559273659394629584569832815329774910090600524802228048864927309634004669349584218870031046898150022284825362799227374852367787481623461781980502556849342644335525584576224522407636770039143183108615324071286936146407218892367184469870252477737205606850581786072792420083050970857342208469990900449199797480620026649104016623031543155557612642383546833573295667470915622802622134161534023543716260258581383260220032073251021046905979933267369050454752602426999958093830657539116149860374151132935873763128864902713145160375328792095735364922654102317599450569609529675328646411422357424953548560933646421504703327566026009465738107843141293131439877227756758155297698901256382070700534062298555912672746534192179003079778049185452419028342276146993989470164446836524109754707159425655404693819442204859838852295209868547558272577281238882203136957863777151774562425285160249702580573763373627029890920568375669403879782247520546901945009362155816791598514057978335964292648963620573730361227024713943909490036966523558781861994754294729604898885928667842082985234204802144127154247056556032529425978613115147065414390516391323640046926525098242165767261854593598242802463964167318170748371430646843481832236445080934030473680290617571651524858670982100883090788781089781672822892602181238862564384256896863470949714247561620646500374269825049583705300282766621268540634442777651835293897295187005530096793706131194001327037084758415347539040585726099355487240041560715057286785659254717830925123424185321454921301591886561921413106439409654368259021609639877307541562355883717908965072791974058800822512732169999051120029199616854158887069367260160270317397400503902385856493438003274743936080840392403426925898185486737918596171401307776984713356487798575480709427290182323208470100395010329000448881020772337480091736773780350169343245374480167890184971667018385265802328689099622785788337643918978251465179510806433154570623554816929052633424634683839619222702376522987933378578511581217715563038880660680711290829600984391474159829492537477557380696155619417481043123115917576733010900556849042365859489020200951845525832102908976569231216407565238330936389313361221519992888370980801306848672770822548492133447824366495260777291596483326309686780153311668711189542676528450183254321311349040161558793316262296328252937413567713959144583482674982994245760706020802630461471248894219972661472009523928073644615753031884182173200499919302984468547820871670826431375738932579367031713844613890748842720999396998800843026642241954178429751306892999764590292670713482821170517892806142691738774544087620290276498079548087739646187993270906902375061470062852747224483130755804374960431652907969190596550079692094900597913297914464243594673299121215997382962020973948811431523833868662796756362500992082748005045168131858441873027416439938973859068119959247516047433266155787410966039366694740715915863390679377041103297917527715264502973277558210933280239532560160496650892211363334130513501069060112402969972722919591886002573849874541163917238197085973026980497162965091463851357014523814293409965047365497720979157435789691033411368952445302371581989166938226872548722840994458084070509852669523997517510309133432584855093607714224030679832644613135249442064506237434122927793205977635041626524947145095743220318654942104891253842612580207805095244352360055545604115915399014424537380837758110264232357179457358238646127035904556494162042940365241636382993289521628544701291614722069198424981419792495778420273529577042174756034171029253315928067618868974989620607961555748918426631309766074333582381159245479341116028999456647638421589974028153380405555618620704252943853727307320469353290363584955532497489709282790426804494009524122304298102914610101893510009439668859953352522755819300297753613561142553769143899256885640932679907564705208731561839564521176721848612034465821158983930518947885004032903405206149976007194195463804632445460066346275028122914155115611607386674080408061449050570923653275688111216223005921537833999723210465981175012049999065006660633041606569767964567482450660683779724420944559626048058330671186060250631368694018511269771324261786106154099202917856513753781178844673408644885051113118244223873742963439101845717677642619497326810807929616710630426917505887928489492847431959479578792905932332178524947931108183948467484432400491906708697055646760035745876024981683353396838049444930779210718808925438396033387058852957041821589357982000335445207737368830282518882578982464889561648148199562276195163021394741387273647910243497941212768911929212863834974812284132454777039450014882657611911797509470370048225144772556856818265635561919104344287653689537040970315587928387136545472380006970826950514272118188713115448506872388465430457503545788901933909865057917365186819455457815593613417198321379204181227176044186035426089799202689564324039202131783472792102845953368255977005128332294709327884926198786641564833175386535904191521324009393650718192654821469370747738186666387009681456957938966764100257896687841736221820784812370446386762002660533595635585977734527206102691071890767770508969701632088106126386211960301243675769242347297619492451630298139292177597741578091999019755713583274654871442356598280670263838857375397180840787623390614163354118662385637896150950207081727564786523458238361925539857818691306212095830027455382031524779241667669550660966719639281923544738634435267806887238310658770285904366193748129062762121875421708789052761664467905677346998342349255829646464059619765529721814764459734900272520061036995657908083371932199224563506635546615201363803359892191608509636683008801410803196676350810040986642254794872215882006212861075618697704263288391433344445143129206601550828912556930310751894959893559781169892448333454224469049247182478177424179493061008453937493134116341706126335431695082260673439962963425207899671653918515775717147438621193789828700352900880466637067548063513132724477560856248430412804897905161972240421746354050626796009056824956836799391774596866487470841326669781800693177209944586309181656113783566568727443629928638373531924829294434883738821550984106247523627551361990425981317603477818609661054703724659937484351890357855652771729037535927103514594386006430753016013365143959644633478829603886438380342221488708502367302641157370818662548384896702371966656765921806002658336571189031710415950603848354947739791860397381517319653964377824816079784846082499329232579371386662887388269506876769650829713851328943692890309842571789708732545248229555779836837926156070670869875524983595081269108158834596804669965066828051464708483254599626573236392596278470787878682583489280497559777009661654139437619926469929828648830649092311976947132261493407026123156585618382635000557866437904801112837862170255832293617130383613660319995515956940847235142699951059229338930228192219516616290726325992041905034884099479113200794739231766189626732552865729064132295078930581888379408758297650702023278559072938724112437768897392137393778027247258727976514896416814252802902622730469039281444262821517984023413583606818256656926313811835696004373772604752556416509250205811341024627605888555070401034100796523694887019218315823760031285326256536057078864117931672734872923108206646321977530607606852085551661667651459361014247271823879433533662270749253642741136008454253941686228417515562383035388350716201883812040761465540337836999376393614473773836037595190321331561360973095677338615514710104281155547886951741228794132092467403348606306905276554324355745498565977875514823635446589468676721863767362681523049755148401993015038633949745577091101420938612627794824581759787577474257303068818917953610377441571529262533288369055860126397711739491182323091322258328009495093486847354165292599318423385541494175101509354960990167118943116379486932070377780690512197880267442748652097617246049160946978621121029410774781404042181280152686160406943264646218835125197750568942485639640353641255183781346340754574471042486352558552184085906870417708042407963422993168724297946534952904923081066033542154088593141046453538547091263806499331720981887114277375497288633124121705522815276349114368647147701079037381966998489440511741017340448649253944983779423122175794978980714977050041171933258250177610402414488993674890840867686758409179223922137758927371340900951070807623056147987161613100577463292375882269210409069982371772164047308634061538171026249695538437727657922069867382228883549648540309054644597783208231265802391716260479331981293012617248037339331812416656624082089967051766768711291994805203195497547819147558550242971614356023281984616780253073954611582446820819261716456110482670570857646910372855288768037215549831562070394019572171308528511112583307328574844293749480300665352089460811613713178750844654127699626521634982188725606404286088075247792156043316682100964191220155748823263362684007696126530550369511290768578160125735584014791043407255549096412195690690552920515036246811350475710496101956423758271370920377946106024357695813853519530364839394463174527549182669933283788209426630464131279430966718361488209645050786594086266866138186930193129544510097448860739481311809174158178340336524702525157589207961123212419700335845371407688272629368255306139511663082961855096202078790025534956091631626951130289670378273494415918708760542871949573301331290910070159811169346944062238640964600283248828902516348654195375563532816634833159396578721245767102533741952281851224432501315175751888335678640258465353668053059177677492633125403853295484859036301693125397818400163112641076179758735262338549298234145275536883638756411571573967041314586099740514208935309979831056971493370518817339960789084267506706449091403546486306016982706651873221822355968822128948719795595610837829257047035681248497019016406586972005580785686509692250670613915119039484311173768388892035903455902652471623155970140955323461965537949369919664407367587326886499666915202518741482787710585126693123261069775870677240407014178784332073011323926335976456907695495810154613712035980518254606478066235917239894847561985244741528423854267442593344447632577821049265800667883920028962811784773853951133741933871417464599926361135426396061906329160110925793292119312409343351679615138025509338735573918986547365891073390601623815021452755327843960118661134917468413971893637366210154887876195549391757546989594012236267102315569418759731888691360249310237864220514583256585874023849891877180998750008204942292562225656704578897629198350265390644993304971154094043698708836193024367738975573254806332681755079475478611265297333313192098515373470044456177695202748487986703290739527612178933111859530718517965248045807946958677129767295303415166045636404391078057257901686993709250575797750565750640028441745803533382254880220867596073918814340029548794805174195766036118557946655513778362346258313639889729848103790456639155419075366815360635345397122970249635730944290372936316474754241532015021830654722996265687465423372371602952829888146845206631350580842084644452076632703234170567938142946046035925957854463385743148769830172286279407288854089517857755773037508019106208237687653743405703294107357914688395442202443188118404055823497344667069107260916169798773779891807265575271935045154283962789556941520851976563286352019519975316855504946829579632743666342430950714116859638573715204937836089002868774278521086291864724231936135760599720716991848209431378929526999038884995060227194162223295698261353574837560812873718596019501343216072553995886564487178630564813711338763674594296640485751616213792982440952781434947742084465457667104890454701962892938850813824245442414970601685106412082831417681978297734427187167869787343144312777873857761602956914538275229675567086556340722280967842844135403459930898634279550245432596461640487681555065732520883391289131900658704939273425221826094505327304125915683335152661901846231703391576095897382772959042300620308270468937857087024491731089916997218376612327826993857656411821983405071238035889063324515106436508619261009074307703456126704091696649950076309216259094121242522019484589395594229040778290313483316261788010198676182559766589646160227806938703355532254457043905869480886873943906975333747469035674337078867040564288974695425266054021210716470460179268057791067001188589595256262871173711700497040600996278758165889275722822399191896503412442599432789490876439027945876342053685998216835456067876685284563502798862965896705417336678964604348290317510459059958434714265773920125341968596296672641950406907811825800787971894065000407707680508268980147546910707650481127911103025055266966997062838029533930219852910243962144685391852243886697660605911494070783663871485611355176143608799571637768587345084506925986926298025376791766822232720095550984341347211325323346656458321098523490959085318748355388817505606141642729702564497668011865186860334622837625427655321023622120522415896981571789804890741962925507662879513682387724649439375249924574883263031908552283401680922503548681005629938073430101277670858595111779473228596914824199612960298256813871049705992906805331463122829252687082791422073336805182802109389514416379848660602243432626156205667297240731848853757508113594639644953540856925058156170135044335091931001163455002123404122268642480214955902589905319688730473630306625011769963438338837338442443388044850486740857042078967746948512296200437103262190275658444298013432426717885477495998282563429127932326063359618689027888149074463864294806479321984899981218787206072815683484378139745157967525910254050969050721800100831237764547724297177828121825536905580797296341809402329128557832750959748478913300594122692660888834924605479104177508587344807091760515387289935120277731982680513566631571291633893449426642362682183280791345689862050199027741685467862125929108082887434660164781589487136519686074978315918018352942219336427492850143070847729526773723062278300094735860689841451801234176203727015162559705892809575905243984333553995524760569165734901412917847987991891220441181989815555187921292800350466778378060218102862756000316563081824610308773025693623203382709233511825368233900095134149484658327867871477219283738919622242083376557994126021646242653018756156034411406694937501515798403601625389453719767624174417767577491963986431812206441507760475161902420516620373039050328841956911916522239565275526466033679388228725595771653344844834848605007275367109563783600171440075839866413825256655235937340722215831215463677563591470051849704316738912464868782659594335804461960900871136048324100388673755423360956166158828833214248587577126528481614864739398138866285838189585675284816300272776950744228618919492622599614052811507954455277551789935051903330213994755431830578456329381124311097590014335837278824954740000173583206990361925953917318723845685835221776903452633502496289774606838423313618192569176528241255360437441423414123078149999186219084476236166238231460616830193427397708784253010865733957532726677452047426774702739283328406924996855229015397746876826784438497207602440737791909279157521339797068140287622501888094935584837322251600883886810292976415836710199125781898158363963795671779404523230117864892582641252790770983209081089619334712030587428178162362720838224507273759966283997356516542407747257179981448847254182232778649705706580230438105708505751929157863996588771399731174753232817969710242636052051589928685463108157476306614481712479222988852959243427620073017609226520828799009995623433194554820598167642223239426546845414696710613327867211068003318452435198142191895459194100368929979601379822508186962061966227792028635695113080860993236238282425880150459515539123334151917675581953657945304696200248978128072416855092183616179108485535258264419609816512743852828316359816788780755442796394512849250229499947701512606598587461536960884796893922567372247714863337405268697824111743841075919181205291180395431593496636631672449787970407766435610108126928315373755789452308665551716101471013489892246370140906721421175671567037129372707483603070725993011194572872215193418624913178299128825857109990167941881166769608383601690004926627125836972242953115201340140070674222508844829451058423809367625718356787340663733702790277997356036879326947025526906010516448149796635157055714110730637434166234365406741463716982643808281893545251664382056776476470145591436613058889214223714482946907632112675294198456136421181165840207642884558617175055080503704816779458917795598494926721484510375535089272179855908401723238847715983339554278943317632116484799098308698382491276057851442291133837926910216146200104192945757509139248932423800918890324063123150952175152270493298412835199129057605113088058103497393633039867458400140026700220191446917363263868970378258386191822988814617298349831765004585899822289110893471052150559440893996864046827898953906158993847042936037742370181832098929848144761217880689753702773971841856550591130943854538548577732146664509404792829971949875905255344632703626915844464525707669556593881453625395708997416414094346603481585755701252058188030792362506272592100770802170444131651893310272964386691373736805997995897828810105399597766308637701422512288005694431735038886722215416162422663404751848529501887733366086222598476256147091125440460836085427679411947649501314697539066790614251108720643620211121492338474508418969820841379707650596015590890879468541547059969648546930071271295751532803721154482674528624613297074682258065399350232645220402782077350727459619048568954481842696730947344160113794016939562268593688019170626395863914665726382906681111417850153926807534088705291737447204656633679697700316648703430638792531951827584161094447568137090510580171010860416604325323679827515521062115093116604710198479415598225961814224648339249543679308473547236296663117562111594030817335557192682659028806130156648816593741047312519408858207976545307575366170722657246052526992871386659749595657498846933122244544434114153363156586173975268601861788632197251060891348817167257781322942415097372025580408138662331469237970429158227551434055940283010663268418803468307890294540194165839386455429896113721222390044636754427389919030317497217663010899111270062505283856095914861741775000918503910907208731342705745009097290697125361097700497850923307882221300412371208828146051793286587259513247441012197436550837217730853336982097311500399585287844614831122551750297908981422511504854127834504799705402475663513079528278224544103056373564496626145103399914802483139354736837667610594578241066492534915905058027984388199723104572286193255235682963341188601072182925926397521901435374075395723571928416285685922846183902286150631164893904794886384555710282254770653576436724693953345429657814086666508548601633913615572950183312553050192227626423429986340440112452140350790815865430805397525670116713467837762945538779180808568836688708656579060467126823406657971534834757035852685046965199222592790095210950853087168743045487270839719434368784244577457560092266396314362919471074036987970414168678792836295413722678004413659406771004761370669874868108644526684363647792110040428912368193706304799853732706324896920950634532779482187011250481642663802427874694130320862618394496583508126540467748551398839803134235664542646248125382364186655900432449449724488079695749540557446175847011059316369714701956345081855922023304822730893689177551826140314945529605881746022438591755405677126701919784916277302191183581971275967259635279900896045939031705943677031973389381050451769638526854714490825741064520415494234733123365121834071590542416718092909722317011445355972599861692659073967647418943414267440206923172189154019944868883842633332672031674819000226499832319449847717401338256654366198277930261155285902757702501095193976569861662498982604915028419895703730160310514558742438608649784476460505692046481877234437730135448687197574750811981024006707822146097035356247456096328013101297209717284111065909896168175062084277966775174256350785532360836929008824703469720847615425706426615139420407013194065687792228702783284368114199965981521795072572889360351285962853961646785466605090380844604418360653090188221078671745611219329511701151421872739093098601740697633102192597611563607685301886392992543533200165261654606342996258663408661564537191463518006268326034022359687067647708744545310972739927284416568031968828166367195569111615647391061035269480819641930032288140286137450283162806498893693431065114738424039016860558759250369088453160914685283862604299713820901875900996342318360815310428591322493861385714111763238627275470962465671007087899263626218075374311448947401736773841069145648688327141196022782663049481524369319623181469851917705013911136823808297748815877081301062627482323359788355869870875233635011107315920757749235075376706036561995546970745788351865151725216010768444736701588101745415219395866400681141316657434446816887519690188321540592195531053826062554008355019219323232030996435125331889717531526123502018522968009593230596628938564399541984751728602451974589456572677052417114976622737654202850667659784976865025239134635476480328988559758099314515814033889822997725508477817455507644808559388493152601274644219594255008024492012925135560161797191154756062132564517709883047738743895679307029031048267158541192879669921735089309433796379708120452088158429758191340569349366914682106621359996404031161113182271822304588164578824504809989169764615374356050703861505220196154928300141008653948273041929440413861593582140641169725510394990496588310398168747974561233598818701742227948543356858218962209863968130361587073029115240853416396622839283984724253485570977633637507371609116954527729860881438938495700702976290640704094066844812260484349371555280102761666113736123192371545507223943496574072737185870339905349355028072016897565038533409183347496600776102869970473208583715813345684815680694312949768056920105825849572223878879175634299533081433139621614589306627681671632155931412170385494652721282889503167544817804842999373472177124561825019950489194021734009313670470139415396543115569489676313657297909515787195811479839697957713875782625971990765598803083596902648777679087926168021625035685908762619102469363813529722352941373225547957613121495300220929359720614414654827156746878517052933247047029406071184302108198672955093506236387815117631535150217315298460247564818278548333567188241268462645825991861932128276532110876638461194926290293489960827804510674805495423815547538488934196940617993714709045950093409108085839312276983175749572825367847373480593244517856586163527883784206087467043601383736863628586857181006620176592912742461504788379441154839224785856095898022649767218695404006079826151349382517482924550259036234627048676704721157720130655227670573400742942280006571290097858189802486067177534891212893084949019388314192485890738237576413535660824682995264076543403561115797807711471953527170576655653593153645888321321250212475598170402775177863461114977385218900923597790385417803029790237591486899004682036523451635068288629278583400501003017521069322842795549254709388599614918729552754738594301008795223028314529733191479846226097942641469717117624507830083716579255935429756142484017953288943689226395535760966914426877570238448681312612851368749702993029336169440347132994130750665006724657880544515874434756508586537705585171045803508427128452526690703143471703448212338290678542042184564701248183652912461807661806772092956625843882926546763627111369569500506923672813777745967820383961330392871865529938155134334220159500183527002434835668350959485646118392470371421919644139821592428376696741182759354184225924646513495106903254954584755392292747371822355251062267167287098200431810116931819267355486189249206338857380706096934409850429430601649415500855389308394772503268768343371873976540562033469933828274585557763911230121785519083256280233918973827811485879883957990800388529701101307650606360554975051060754927836974819946759727835155377496324654228817777877319326282663936427648221283750303684511859758139256539922255937416050057339395498386762654895498116566635906890189162651453462572810135588489790056250978054537639658034881312865916413093444006566989262443991107214467799282603958785905216147872872078458336685807980149707443669657899410388277724689494942708418820472305391768307573980720936361297071047062100992265800911531915907802518153396526433039044515912800875832089543028351438245691402498282553334629084490077641294727354059930858699235736738143567819599135993301669842049301872132038178889739820117315918366038378272072697614971983063109483366865957252691157004272362211564386671717514317777333664021187479066531947281049352951594504115862372723715780088491357295573179631552380575444279563946037302389055997276738377512544338328177633454760159372332291417543924030198200219556145853886475701931239531691593086840330035797641207517480407304272817733738850848177216227726432898839939397933646607443994033089251948901628425718575418410382852621946212491902417835623066518288006395626299099799621520787781606332078192608106528541447305157323736758264175609260482563380849747945255312910171957511452931142254460588274091486157862851068629371994800797926322790686925222923641403033753324762879955587081118080963106970984216085165123067029399449490969595721831818939332101616205044801575933420848808243125249049893531032169759941881488487391180282738288114168149957973151514029678419003513809856516518239125092850711662543430259713718376731606956131517578338228048563011501356679803068995641094465241353223678176282912935452373868324067747354088127740262201319341826676425011117415689678658040426639922796057047985037657115150208945733696969852188332583398369857351544858718497675408066919342669226439678550541334149487679592976084181757631156572498077547699253739601469062090998041664641602642763564645596919534117118142294605428272236656698445367130308637872887832264772279187933176875996573296808222621826623835534752265453292527970734526864543124771758393931212935823359018437790830347484342300839036029194451770230312179236424531704295568015266984709207477176943651258011649322639659609332195353902473735456187521799236129817007537577564371301951514119144310946020562773107939760263332027697023662689174526460216456379984296652789340930109123781015138426956855402087670398339885603548667537415568826224717071214483514107634156215104087545370272031857593360527789507667343884444174622476942031440179256395012756377234973715309194936995450552589221979792129260975812290133151575893413022145860042580328224040585851086921886319274758374496458683392577770431751970951378980070194516700156660891269640408682325054588722339294172656691989536748079264398276335173863530157616011127704174559630047277136738081711707202137700372643076520528809484158224047986901054943594015064322746267391962427274973882545102614961942677776142335937132133554196937514065728383960697238079673513029512748656761479979618508600789940707357625537026500359550371510971003013756941834630261404384714126473369288201679683004289128354131915585982185604197401968067891691025943252760430640282917987469419514070898484859019573793168299746671379779973166047803176972914945133207212351610809506336029667974009622649508158947455199514182655907768846448517481719284784610858261690397484568408644633995211163297632949752517875545642108743919678456417356432523093031110231458620400791745883573818693320813769534682896007472589294640585773169383481267023590330745583759731650531492118860380093305450144889863649777960550789389756748005059878097923009909034610643654702093709436629554529965528719774285699367085311570208967304278216577002885970219221786220735706488626990639023117143660635957187438043006247137279503492464652965532569567233957821223793871615182705155179137555222437921029209747465901672126384108943989248699186526786091704213779855132846582080693122289547729134974405834400746229467441977047982396252739812072875069975057076300376255226198151224563920217554130040426908741258235733863842929348688296050247442195020257871331310212459616649124034251676866212922615276194239358456617411824029987179373508408927311432918385210552566365596868635418086107424783849326943499579687381118382305536718833164033212938481419418802320575531976408520842264310353713472116068419257321896644624841940122624757740962642269981720112169755686144717047283169465126658304490272744905840708598091509206627284547218949668369380432970043773844212665105991690121956519621374837897817862873452499279624930961249202920218066531936584293021775236661231531712897234099910226762629287552154373029956282474271498402894247704359642152281540715287688332008073906525474460786357171855996944404570442541539905031790388511795643965622283360460008393643348751662468141411677492869514896677135399796439912449762711052072561128312388482915506985094214282513710350120227262318795984859797647388418215955729183217266315328030472791669115320819933561599831804950231747982257527960643438413147185144774020778206882754954817502932195489731399654398607700515516971841874503623029553720002237514300447684319374782174059477056266614177266088781231020894748829633937458882391573622496911836563893029503711137221505781984318233218546720953403793489288881922635190605857070400934385986354823657251579587646408182415520309150734006481401153889567152428898979339262573844336579283537532565424207320900451047203235794152818796682896410699919632864961676530891659971520475832241181636381753742919927668834188232917845718716218533066029678584479969377638719671955038636893113490268899885199727941203829911902265457882088133669535355397567619943340282757774960341112585722072101932626926420581320594687652976243060288288703699030582985650515105593609701504181068761538736616645848392585475824452194343386612914776423042890224370445623408227883036419690696878548782525135015100737827906918881943846087364440336270958788120030227023468111348614462927282514039388372972656530653045351148470069474633985797568455049365231142599954445453316329845292764227800886327030241404090696364839544005473014562817956735942556427684977302439975963745179588004421340139205578821051033205007844983418181778118774264763193738107495869881328152579586625785059688577224691839438922366935875965413700132901152372941855520351932785039072310459762101479397121801870449299582050685007699443151261752543378040305295032404826116341338486317753364432202838064513375854499802848573115480780913701416499797191248402722402178267621787068984366846615965316415090448864977445044939516700971730929208365380923066528271624810692162476747967215327512432227958781201875852011482248557490929837497963702967334696983065766663646615115926325494662229995038979701445002046898454242003244122010288848722185374349168409003083296869713203533636607484503085108189982781274632744688289041456981250976255638232038519136913075033792071685619862190927043277561666915996969340993158350100759971786859903785184112139419727326627748997279962463440964061168470990193254435840537369853430570189444307493143997791896700072400268709561703045391897435032953825435205489052072977131968687221003064200309072430003208091659496201807264626119725517211398900948957397152364694149306099887176039143347610591401871248952120486361999258074258411330876100069227178575988320925009114346486641422245246717643186035694551093642963723350185614457038623694853813206571203117992794195594355385499962829907008111208494542002486258749353380012198839491418477450660785561605050297968317379047960099189236753446478695947421511735214465609953473321201299404356693995836580620919407682525421736567363959946315990076954131315384575363224538097781616261036598453130658030139759361694647199515169850636762528198527062398085798007794346280600702371274316151553099769824255686315178160914405376359673876942168742396175927820830012635177661417310715826794390512516250317840641627495493590664843703030394557655683475566684447646790803428946904522953383738339654376267450212881988737434711793833242603369142572832029252388597874411981171952242749445055823588551370889983615137631752808973476551522781995312255689596889695653603389747408392791171053956971282202608179809838545178311686185844403954312504465101653448656103066908489457054028467797927324094814452687524929395729637689594047658529783277669647818363457472415735473065315675139623161738276839791259783134671119541061810941324089930825504930955093256969573953576117614221874239031123038726443428120617234653708746789729602723898159046870350079132703148921361500334278948948959106631084593021168638657787035530883063209185731654632165812359046265724490481570702059737816891460671744803813192347533976212029439040298524117561674705623556959796172257429108633204837521929391831491027589056307805636450862617928520146882550627792791911695031540147543271236060473440302158313924503626906679884191570274867263442722352724308778459172486296538932512790907978039380436550094181071017474971668985226809929697994002453994777812198942171135672064966328352755844013591576368652487760100326291242646690618194741591193103635835621632948336624119533947478110315190113008274015119528986571649599379195272376274175639309414515491012031245040273127173210564161611078087826318011445257302825104791776287507161237923075407621842515241242890941934848994166803437469110958686114943582650067011322113952040802874611211089769215480290443768261423124914203900460906335027640981029910191516800626863167474959997626628979996130926848984192188523121414865019052417210985262559859668767735224823749057595662487132137895929331314501096230216137577529227365107349927720967778020164372278145585161539672073628464212132846224127209064023302677095805421063119224180229893962718715903265104268865463785821625530266033944677848568152677257118885312716773653634912873359286391002989145637374545853081202995066794211643394152363260127605595886741718508667311512622959311961640564130509817969568555517564945910736837201852466669810095234025092203728752990810168458873914079309751194869629594727249343174008980132967067946585581977918186925830322442263973262670478272633760080460222841046393662663387558875261286902436017148733941595970818651478091650525210629807823262007095706993765525946621665554304380984531091004591822350418587787488767548884628140439660427959075838592237381018428352422366808314204672282172955949015957568799509251401639684307321692082151880344743846676301706425663687264538976263854697605109821437274582628970896635009090025305885617600046630268857231198358857347482418132018674760437370184760381314671473514877671842213578464517020977289453331979231813706302616151479814115270909354515827359078173203426088309086000440097705160748231928864043388472266692735425113212384273406812244995991175294144170626193005734067394908764720599268327312104951166910258426450672224518166041324610808827069025641504889938405070894316421475236379238554822755723989648812698564045875929920135389795342232801136732099621282565464732441784558948744401880378898202743162610754772239682198842868617953704057756577730626711932563622881218508469010575327787131902003532857437948501069009135979794885079865244261769439916894976170015854385095569455598172525884250215863956970701211819794063856151444548080620608108694393107322211454669896914942600409975271734610823586205429764724855185801482313448632648992358785323101598391631681823691760248837002239340910860075870779629826241105793525865438072015712373541133280613876514117012602645267495665065593518168914235804386610220989772207279709849508017247341228439926211999181960105842961291537762953159007604573326314084472779012005715232554785269935147232850403338079872478469097655822509509752376515744223652433687246190740954334665298507606574173434726294710764694416911381804201925650545730751923613710474600302961020785265913896774945628578706625721219894720724889090373871284377861053849931458568290670639472662103489631526717266876686288660770694690556109577873056465307848437035961069242663835977776166759451161253082599694917414330547651730416089342974099830600842074663885635230131311252394505191246068841598339587998455235260579223064029726479038315172587280484390702920484687765437315761097112615151748520804210934244517559096863272624973828681225561326773559777826742855995183633565465384341303552677635878251234601742142223460717345214469099317693417152534384830204704500959001097478313298822843340320126931552276025879294213157319828817808341809917791213416542645481188018963114195938147509460276815834387230795626054253268380535566539774599797533274106279079273722634309393510544456153447585112058981931562749852899649801185327931621667615181082200632584378139042267473565753340769890191140503500030243765313758755281699503277430632768653113860694138454854743078849749319096311061149446337215552238471783004723596406364353338817952574249011742048273828284505064236200513725571873889528649501175557622578348438027583397538406917019111718136306933968380938015759556973044959242966932556005516738217132433964545074010122092119366774949804230910304114961967910189520592688783035431995681349466967569179731966966679484828639534664292088039469605664501697068796346384200020225894239197333548102189331639991553101462404801176132989274290676086696384892798691518295102853659369659490789065710766781416645486940370508499656469613346819851724696977797086985340508438852229405100355352913483908679672266027464336706701629825743759095323398016337430198708518221689743105271656979488422804141106108060717471754980803599398889792691522921459389427902300341312516224446064403630050548072818085401834829708802809278370515047773805419037595736782472058008580804360509852791547406352263136823929009623626669523654530582503477536413363610945491025077297260582846142740195192984967336852727411243153392999392204741533306676043488512294296425655040054661962474534555188036533260247942909504499672337657636916126474544492684603693715338546206716408900866819288573535264778521735239312678252224737486547319903894758336745466206172256746341242169615539732051759371099810408521130917760718739510449949386815404387968401860623135781217849240918442720049762498396032742236442678050831677559116325884099180771837849564159517238979653206653488807189543984586972027063835862239521709939887273152015484511071768034346203082544351594675021730564606768648007468784075011547305968006592554645335242299303811622489859741737146544993408721000271843500367166259261673110796571217389834430754453742013368246409327843292064443667329221317700585876878430165425342251865809531922511294045914925581968480399339333772223838201667402782726482333470292092729409927860537938697117980822246316381311225905403278716678242274164353073477109779182333628825197824808109669770398429210078220923145135647870599490518535137879549787695577893196048599600379876855423775815301042030091003712508930284927104702144131426081079437980861425930356136291512570489094059967383244861959896564977176094011112780120625325028024865374382506251088813103962009467330999012307128262071311467421836821785948307482206200729057465226369117122986014692576497142305658387743420256937890468404715558517259589122817570981341116263528290033999114217948992929209549037241038339533316467410145054853894716027616223153870007481192055808946949714664529286690104890394842501036053157314069072943063885982725744632183983608908463430118653495705035694530355164197891210578481508002597683389618283410409365245739583469244813592473550607763651787477255619927376322994947187511730859424128387414126770109547413004648846174674947159427733792480065953584765274713158396002070650062348923415694030054024713584211479246835086994674336110882340425237923698478265895415584445466390239009089322872605268555538209699541873689469972049443006994118338159523403120077597519349192168937391090908003287870826442423887761065032935997051433556956713032495998908366267350652611732603805337667074346755194468973771588584326209551463162083016412633014589795909328903661095906287476290467828973939264173987845065523801040984479463723936500291399717934846217575687956098278143180948271475667360424248392816243996243220838077076545962539472496234072375727827058390667776963003861271009055329102923365000750772468872702764894683461492799517718918203759412528073483758168069164001979526512121706999415397897916825858977890974020257171554385259890247524233090441606561894234922857861049370327543308933431984519834349955790531079061386746648557504097767955644244100180401245426725258862977121906950923652853676609226181311646488051915873697985354136669551976577577809155806324601918564571712507527766725012325155683302321951470263976036014145466156582907675453200726485886213112108157731366998784132922143909332600386458298259139701336981866249737548629399856573888798041892444056726600584810562245900666416213130022702988520712089098754283510080985250296390197718854983627195835564559462464129224496719498332539605127559210725984833536848595432091733756989477367930297492833689125581829968589574912624613499023898999868826057954497337374021657015043832204792478958696110744324991477731907840224526281543885997066244196429762738011987871819363126028846295347155884257575981623168086908513461576059993178098513330826095202623826938366095675174204966703337361743118857477991690516349234914524001036781596880195096752800167994715612582180698017387896824030740174433025426132998686552817986679934515857432140003161261072151761142264222080658430144914442456360165297791611412034561680287665326919436551628901831796973794354626841321521453445763308337245460539751930605205076241532463135166342626174578434497002079405226688387044010580987044363443930337769958393905347679332434614117743388298030774958233806841763788910894242018241063778270148333500551012912123945498421553894072249501656987158619297495465638843502601694775432362054461195248592068414973704807591189602011240754275854703074110210918622997821736492774112275810654158824418966585966107492406436026656985881633312988564339073215132909613078011161086125632516521746214270228159299250813153605573161307904386080267819027489492172275092236561009900061245340754141615138866102759751521367351158566172402767372835719034051015269368180348087846959594506174179618337258834736842684653670740347591811602954337116302214668204720470798327438270177295668222435564228117415353653142357780449989981904799934032097974369088641422822285837860727944780873578783034709321677043441125639351154072741764004641213046869388368145114397760238975261263102182415693959579548791776772656158536774882844864926008100564633460671083948013130994432594305244325518923527472283879087715675021018231893176965092167849463811351480536926312268043676749283065103449767806925281025449862793082132222335853066385748988096322935963083312367785211669224665914629175826603731006268776864856843584505632236719830254079982683309400699989316869669000905062827369239702724872719205359758293851960530665703344925923253780991575467952016936013569582900792379348994495111434631785864896115912531094033317441560619679692611752047587166253909036166989753628897877144069940293821624915516750718590850023452528434198870078899029635708376333071888766597770725796687528044507389122521020400748878707817004005572299410020154397482753466058094595871575052875493752923512800086111013265227720069582788649279313146580840680785290158904382875307167519916400013757106216251746506142573846997377995048443317026118348884182050124340259727672727973785853152673809138670836201016902290004803161323594136639617393359972962177832381233940336595573350736163402657283176062728401586120409471090296973928191706398729704193247461403880861499911523342268381836887041772819674135479376886073879080535903348977356472072618029473097213724357406558731435165054169376631617812517272369550613075416238398204336687375878323780986650732996402616102119572028178240106229628576488687580846404206927043287551321630237895155504900477792219399400475031862097807871908348509344042046969423065606927969818173191745215187723789592024373138084023050285802449603634796672364011578954165801035636888294346079534254890561863190081148515226698880110506192724715331962455088825667533893963383424490759262123311417438974773078485337416825328702587163911166966246620778378430034137979207631300129567140169818364817880677397459599994660378727444885955722166137786037783072121775732269400549040756805614023549130002960721904102240949850946446428029877700854013559341709453800256102128010215844669725593635765027109170700223487852352292265863520168391575035128286650472956729573492528355699660178782031817980810827675616661478208076568087407307747489482506418713520244433035408733477601756446024546734906161679126861487612746661867405306572810842365219698427058314648508496382106479055584503476412074814579235781399295172155698755174644391633437940327075241355909189250171784983949299913774195683902378833539942010845925725290745386228526965553126534030138737444982268059285660090580500079714403651592939624595218901182180750317937198114521656607723408359196859980700308595384259036171597947510164610357682944424126299921712229916297100458612238757816739259642967317612291678685603857136770603383684294435989596684197759874645858504371729536663529438362797957313269823000423917653283496570797966448717350110064387332211128005874281801115106312996264294098249169934303139690790950961879932928203413951904719402654706909371880959935459078868650875553248582132364769545954930868754682562985297098243355786042879800710170606987942615304422603463066052943331035398853356470319675332074311550500813196863061977511989388860085233843485686188343617420754456718185173347722818230653361666081590971299778969421717745887435292022758598515995141486021846735450082712623615248449117528757372625060789590842805690566549338444299905061744947120118134155373193725670059733935295344246859202658197342317259552458904071071873648585399369926268021449050213631231550061963939711076039007021779837761036634660922948021931037858825909886906013709174771820873041489961834438093862454680826916675093514697562709984699774376980122865688410675820121692513403177983126178853968620632373317094182307814343060736983675396028042896659476596675142809423885273882061514457889952840899753520251343564188330252394645578497002275850409587101583508620757777758160131199389776997186199385361158200131343075070151607879373811010682684459315053612336393853428579133318562062336281607100209020076358828471169600006680719786357726275600277268406221612207721465486039653353246824911823658846901081369102161529497338239852708318298215485406319057915304557017715089107482077573086766216227146422747958576689524186670025818690618319613962787769679860325774706931059866675906892185144855806401380587224919241499670716385746270041118426390888598553024460404049824283126936888889668644374344851331113333208774718121853031151171170856934039609146947265378310739837750044322353330550301851637519800571839638716449708650592199854771835763220145971599299532081527153070148071898033915562964421178478148878957393558466043241492393023152653375395647713396377467909012854315309586798443526695527591993468300389656662827849091675522343417494176910163188706650390035819907841397611054886312201485295811608694453861639700685075098973552963776117078787402571535327010943667583648137873623854928469527179708761267205192358113160430866690897481637314077004526503796858912158501524132485367286375584107783475059559005720681715430728056843904354813316759135512297568745332408099200879389134440640292921360680462864244804863420948065795553579114869510518812275363880309746111578547487871414778306781756250880247463052918642583955127344087122348793985429062516839332690914608895304928827497053733946832858634169225099466869155925872343291375405645086251034918793209658092648639446845428332868382930139126299683032507809850255328695810666085399830962727153369268283090342291950368258954955361643779804641531292542795709409461579349324319316203304384026960773610613085665382029451502007519332221982099340908267289393106483712775036492388137268166816460068769338924617337676780273217689868946637160672404047294543740391517082201281014976802650102887297808725759257283106556374462385187198039604271906472703200958646419202202972858483713239678392874662461163314542756791649762060586429668648743500338316091138686566799333218784832913183752237173662258823707377319226158549177020306703037240900648953313033829267943903406040874940244988833444361864222378668637142367993433001676950403696880338975997930153779166578964451804148490405301929897617176282862783895922577456678578936639064870482238376731112261352704540120011204963759259804933790831244475447011709208913699275154731885700314228092723011773530678088331857765568779101143994130300351138003591807561186915071232558244234665765831479175344115389858046848461023568868946711381821030507157210246052433346296453356121925160406490265174212358965805918921819506862322535006686578097932972078807132180878688681682121442716097286199678817156020503476401650035218531416101813072211359421972303344976718282888295201059951684551700629904218775324357814415841498043234229716460362886691038512824156111083329288555933837785270942361038624436600505435304098999754518196333255027849045520194883709861276613696629455234014627898952656880434413452524355113167526906423582338317754724695723214772988081775956360430350323554966611470690441201590992844006487723837273362312287247961473582515157418859995874513358932573938281429305325148728486263464483714071986777907573591483564663599112021229780640243749040280170479050686342049348989997687439130805402446025375631798287718291320693326085970419307796793745939971328311718546367305873100525019291928269419244476831660384006376537558959967512894271090553663466528092444813009283799404491225206791956729463509530749052524443397794342206964749890898884824968004549431318813340548574482096660498597674503816165223774954294536350998171773474233931947024287189363060663860238462829736443642393847992827422461479913249631920617120786201809460580700958424401046602715053518757959090432288375667651219263231369369390939358248889677973419982714784886722564383222939100045119197160276385512479811172041244110961896631836661517789948073297270018431687621682727925191969382912305333062618449250164084323389017816324653191411057296142045656117308279821560782534959658197022046203310025110432732138817498081569676226581794351191999217833860932669421845996184204696358656887045773527108817366309475584559433998697642463077164733237332012826158087662946586749309756533814744082696789986692994912607756276683634031222733883191483881249626379102791600792025501355065156478522425182488665558718142107151574320690331729949778945735531071883411977738700705646112192716195545864007753948747542440317378430137556660755660199793369402694913988833539461154859872455180669575146277042508061027413391468640915502557846249658675710577438295024165653015409535666366734043454715491628959842005315634906258063624491027353207994447780805084802418673512442226002356856610122702690606682289579464248073110115932458445379278371294326442108587198430399860002606960385682688996485820123943305565530149026098710411087255981410294852211675879759145211904204708004224380613984565553336693998331412167913906975987655569026164162087374736878861239882699336346645195274525889484456285303557937656812375497023858175433876019595231373929978673325371762525157142567781895447442412288175640367797954598888613542795894823189371137230561808272133268355576061843301439699820205909565219607739477165839623121148708067294312877222400114717326407817806479326189573308985956911498340303761375353313395102609985640738857886480932104941594524813720773877493541917292444434267501411607659531313747675570405622787399677172968440292491525625958758395355929952113138136861977746739956420979035238851503769772412098115223597278604093008408735409979168322523916053950470637117284756643178709191125533265588379942886079884308306672888245989482220280027501623978705300454531782457201443066401336132486862972507692890762501275692035146058739127740564000947830879286269248145519585701051883309529198114206387521536167348183685928938702812080913999186401401268286490582905494998572111251856490028674803474375224270951068042374738541649519511526251870058019819878999483998064987277544641313493230889193458340549753633616761919396600954329863110884769877879009199962059339680827940832062462562526432662827056721598984768599560927849745441048791402630355239426766152307139346725998725106461396024974304128243358395528491982737224055588285651537946494352997413182571600576853726499381884880309689792909552728721731540268987256332690319826206632882665239979506753889448006642459364952999180782687262789047718881906945128956002413725553171482123534623578821497963209137389575540597375269339452270547472627739186654248010151210805457034049807995622532399912548927495988722484614354713149713924249941067456787110870163829146308238309177139585171535527076983965881662396297198530107962492880173184181196954007456214056988786578242332604941343142105675964275208676278282759156631617499433069449782949345430445305065471280208742924722428111656070973663122307236334051978091519670087288595368859970252234351455386958625691958152243741249552777183938358700093255945854711015328469089239718069594932494099630136807753240289401130129543736713047906902571502850343490454886331529243000021597104915034183727892055461622223946654701376913814352129985558667945288918837357582969022492258540355879627377642418848904948040875199800369758659565892285373785552171399553463962768438475458714444223092197983471694630404655793169275725113778907630221896647289361898716749599050647094294701335003297576802155092928624994226585524085807902719581266761132365218912900833286897159910306483832834145816069999488589331758247142960103231888599551652915104971881669197404956454746210789401440154382207291848001939544068491978402770488585215984629366227196774899582976857501602265717271916418515567368780233103833359495367641004064364228821365644545113435439846462467222062102795374332986760586274132210745283066231720780702990075225652035824871159313222788960265355776581336705262767693615039182416031752170765691342305036897973868840054346677193058275225430766323297618007763048736008916123875435806947301471247167374561573914258007531273150905249731869201516417386996741652362849634535911967573521379276765174179317898702538355039664127740813142921788900517271433497390804785630549971529657401085866714915342320707549467853897647894815431064967220398889664735800588221923070829176380161348450491132576878241337490548956952673040089545027269942077181545236686796741434285933844148379113961726460096946202355419629810422562508803389100641881702896269429467973938819126084956326374004018508436385535864048998751041947252361860169895141729846946783181644365240253172335662341907990385530194671814043757346548295796624550863636606101912898121279077932231373513890980131478905582963925231210463997161995380315333961565555579379544250810407463797246759192603479782216806036430534981424584088685880525381938013368311635703064532789842306125724808942489351478804570991478345899983644124461349147481106790982168258564895756333803256835398989216649200655916455426857620107542327338604262458683652387624799393095675367122995769547065594113181460363212554184856794761507940858159484854932787968701308646610631136376169830371618712405974669116048011737266970149303445064891414357878679209935102173041365058153787904291920308073732346721563902327377371588924917426481120559486023046027426796750593996121748995528779767139951415647631839050040401062933150100937820817655323062783033861155563392416696252620806188754550793177561900430372948993637185223845144189575770750487867034051350880508622332076780972890877678096429882314965157699001557628305237262553982798806703296733097412045786531364079998067714210843898630888364806016813119788243145281092534674566900201880175720858767043500360267141191055478642535382325530675181247231225327924798176461662270543255750110656046087487682306315279115042279224673405593809675526115750603862240159523427591185448062831276672493147044490374319930645574825802508195303903014601692925413882051017807529595482959268011705995601000394602862739474635861466852807470999894683482231257006541203666394665123060653624672484647702315205577497255630758477652827510401171379668275163797357198006194671631908519319211493780221535830775823214415595635715440785223755675040043509296318243428312932093432271397178073373200377455555202162678985887826909448377681572146637875127899988961329491927480883855153369998512018715217773436346914890387253820499884882941469036645026077873544465777806621630058450078045442658357944261968310670320392800776828520105894174514515721377590614117901619289901824078012667409939343476018195721234049499144117348837666867224732414854692350228213403902030267904993259066722546683508607427975277077698033799375062815268095170964729695795807539664645979673145334157101996373919816362933412687562617986988298511749051504285134792873642400084641698563260328528326234509329590646001581120565851254512849826917008694917605214928930556386217297306374554571665659631205704693718404904326621912329233013744666801147580554584155285765974980874208291214232923632955900370462131267659655671973356553369385464890991571786626185540099048756979372580108458221002005211868287411869641032261339686099207513685206678816114271730028293616623338477131598326032951728974912778868085766555736158033803343950483928940834956383244432257945977672559650074711095350746376685097441773812387656401477490496294060229879120579309815075283724863979136048439205598216886463871628366210683276146284220731061569720361687533036823493583176993702452965212664624363935266152784989884951394426378783525131329826179266305567841831397413290879982388463549226453670837463192140580663883430992375666367444352926114342430938533578920595172151241772603930096905936455300927174231755173443880396730481059194384397036519664758269281317701266141406335643444134453519404539725011390942948403139360962751220233437859491235692327741295537814835420809409726234167844889303088686449695682297534327858789216085160531158856492204115692151985060410560621385245060398780328547027927717639285052727803247761218925400043428874565731259935756592528969911568847332837353661157857247058705435762052103454828773695057095396545991857553192373856167568883088634185231330526152144811571372378031804540061635503235316607398214484133239326081650124671791198588162144840688999234652627519984899669003223844234460274545359844355710262728417758530998790164461110185246742343779134033273914643976169355982987520428531096852080464119370938271658471702546026018511632462808443429067320407611335635407856764799907020529935842377213695440540114889553413813609786233263285011867627514449181002180585140184816270405384343382697984921395105126658340670899723368680681039471581734011039758525010649788823846962008040060662393588237717546588737698725201928676441373068112354384589165391418229208083856645211157215818952665077577113331798288436866443863520496712859300459302431783337760138607391859194710132728161946072759539736254097290903584594993553938747670194011732532887586317174401255434871562815253317303469180381384076469741392154396911308312765202876723698473016082499390046697284989296689890777977218836219806204395055737471900770948942972452855252270309478950901570248974114424597336091895904961586777972747635387038930596223054527117318667430617636299491999312426006100468240114691832304896424930501982369568028021707330952762328532205702888111060139061401420267043922621824067392001709546716179662131658103009759470815184548807536290725352665022293601659139472064991087129954683091921118372650224900838082294827273433608063632036725648384682722127578091105871848813094264216066682521859890938088867921279269056951028444378150524703371724584039718167216564891112909220050115091007686432759685117248854134121054866133425934802948860566140807606955768070675853750613761906924304880651235679938139178777750709216735273860695377745808482939563413436734675830288131463081458771179528167621666063703580131805710109727838546503491051616354956135485405093458978150208969346984438072875129227441650501930838174445266561275014936146121781808679215882911937044452801156652894132867689187774651444822886172226237093072780844741293506592637619436739189925489650640514003929347736395632310527168706903470122132403799353441551637121930407753404753560823698693146562204985877570853970061132117321124189559875224248139596643535105133746998521288356927214371413853900283922322498053248889080833283677115310598446754146951787388133290143053999563352369893443109621421081679722698203192505918552165232399825768919802227986441072453377332110419878923069223706089312605843638508738696045818520931858836657061782358237852167146465074201434981675351826231693905817718709803266423201959301341487094641298733555262217176073636553736016050293586837991776996686249210788411997288447872715479038337073266219931594248953078110740707506847667429652146974317057114346331723106088168278908656047897489074192682195951359328616578076848324684851348637869924026057535642679588377255583184690219741231807060314895063648981807967029572468633301554086598237003904378739706782644707949240042657713463543054393332545512205948563313395601326874953343807867896860841910229060793005369918471496905073257452868111543121519304840428976000322500145626156058751295754187772726670277594009575158183981876361572613518340712994704956820424838594295393889172475372440623117395298580036251490445363074802158855493472305417101169841577162193552120889985912652861893920658498998888068592789187940835199524910160359405315620131620151605782715618289724425086255772756987180361468450709701215596779619482052155145229080033765430661987418634357849158514641151616136411540398922494633600272043187688440720276937950279642445273090333543835129790307796433898332602241092814789006518687355546736496620301589564760920883145488397622682097075804258529791081283968714522303888488629147504302939577392916002301467233538595072615634792621944226065043662121107345054340599222504223308890554599067569706038922208077692661287147290570326241086971205018583621421386563676945292970173051218055974713631131934780828168558921706885137026203242510794155132306753922079691414480110298733791864840927453783683183544468099619340595631281401912490553092744406916452389958864713288754278245309605961019804129453066810145306797403216813456127569358326868049400746912162713919721410973332538734439864798091855554016304490157409261877293356805086045274239313778390481576083279718680021260558380860672338315931503228371818765894234320299601316413593330371728182171760807565790251089797645360081717280885908485359806448757044705787261652309557149671422686863063009753338633009056091270559175926463570803619622231330490283281274758083800909857285490390766392240666962956409387279869407331315240735004083653793899379684440636419758291336081184160222705412439363623506195354087851950624293081203743730498775112372841130162667462431310994327098683908711202026722934615487049329303058964293153683781870667750067342022023872477190655188405783236251812076994565501543387172179335886936463144007627993978364375418409297933743348012999189109854693188645692182504561923166437410749385402223898623907984850740632701909164888089643837889149654333786169634511530596704695808782347015177962258208077766420341520421035694374537512885344310360489768990597786065409589277923720174019169669281287332279658314627175314403329738430399626025726811780156643789534531992977477402712367457120398397666637925054964721496225405984756675143557356873957608710742129288519874567948494991231393719931126831051742583924599005955079112887854102587330964838209555533484589193357929076587438458752232364736370747707287940260513146402147312939846581581914983864375770126512715026710684521896764768658085390645179706986502243349584547320536689595642566238660080055885016861101454719380398467505829985273401259733312933562647095163799083555402920065092688455587706322542989273655272922568094505583303334656345084342857596402573320876931190594895651461931630719825742847120117826434837063463671115176816836859750057844755053198118670559314683623564725243373164891648998523061839063287146576113750351122061149971931718192211654609307439776812472080406016231731013949654681807380718378326385307445923258087263402210411548204976089824889973580009297866080989848368600474436372246432979492938337223562345682211003050491837070497256439388667777660875472631294587509205706624619576393768740996665479578172011136275517717083029074623204715648728826762031385409986238782964976994201998573972314973433969253290061115103135706744672129063909077853791883025062980663931851924876012230227972204618624115153341731439041184026084143153227707605866486922851405003934230229360136774106245734578522263337994119742601981393512657999454660783501866546183661642999577497600758276335882365897192075881803324288193498373649328268578489576060491825191888279975287030358882853729168213523424835472086037215719824425067995873947961788680600369075064261750154712403698778970529637797098041240551643899359117312340432784464858592278649012128522280357150002276022916407233854948883761118297873799301917725169319281264463321460817404000012771026033011595344099732087910086210302477141747722244113161879513837370638741502868123918269329254816908526821362767383256924419421834894241172656468901987428237736130809899655650932442982511547718102585460053959482598152106031176772246513580354546071273338012595221306374770342844701458802714038161606637797740410708812431101560727074848381822914815886042583730137569334632008312737356894452266538319529967596423688056678400007716905995872312760195316742377710260846120791102853914803589025800338782693864616573581450213745222288401031537544088147072235236819802039479695980970410425546869862590183891079032912021880197974415548953952754557620780351191675741110721961093146295348185669937020567808465129415544389283221983622953751440881942165503419048786998854426048946753711658732479054143904263862115938677286833448777051408709772955738951396127040773444730959577016462849781278128108510425087636883434902072618887567529346760547588757190644404560896584659982271173038695048326452015256452704792333892841701656511126615669026199781217300347617615150794811110061697248469755079575203792600818278802261850608380646972673502230898873575161196940814580211397938232412775376966657913011343409210336708535664260264056267102430823157960862735895872218995444203673687359344983876616053318880531645637035724346351374220565242579377687894618704835580529733904861962827987414561407159858455832585419368766355404872349593423983700140441923993863802212053053267937400732152808024755539195822021173274861572042066883573166515283013733818376226073304715816394535022307217629159534209165360917942693345193214941440964300076873541769888809392173639390474886124960832295757433590647834577165591389003589145134964151327943220801906492979844572990131852241231713197132990718202186145402861392161004919783776885267217461652510597346034277731488818093060195159027360010442365892995443272710267094924316909575015939684789138212872597851632829437912135080095905136684332910879584021872077355642236927052058186268465084085953922143456319483591078443521713906386249401198400564473508043482399751324219945469276135055715865380140845477880222451895607081143495606863045708352066611717973909788925591561882653912025037711039659885717672280155355290864210826911974362829204474363093503990998429698421077737332784309182391546626148999781331176569120738643568889112040091713330244412822832658497272556862078230133268218038654176587402249874396783202863338592177898825737562632461568447864067209339230394218706153460839244362272296328247151023637558044867203944331847062489107409980865059031688205064826463644752889562886722071228223141019349389955244633668075138703475660332306873495453191470597855809406746522531070108713994566672240277346720092559385137219308313927463293268061064981487739131610992352234212908865335641668318023017619031795742911746277772397151671482531741382473687304375580411925959286843313330973631035842544953862482574326834332868868113658639712058689541385250784252212400829006000381807492811485227582929967207501020011537415696401216905491432299380213331201610753535009862755715553559487669243433082743153873185129395406916231743747057016184466954443929725939311375342129189987073775914738875129477374419063609689920285816404489560745709976586974689257055254240369184101552933808227079818892390436151325793348818424637063616745303558202272950263685153662792137028492992192926639343940270356834745111649923103238301231841364594321633801800343275696928763382187564897294911760927158038994366862953488217391097122618365414636981666324513926197864006263955699513296636356958054817814448331398978646218711830618658070765794870134681378619641106019664444410248176160598733504642764927580206337569031808202790096791512261650842995480390841806028148016287312257683745284928459993250651797481734665037303370867704657925423198485013138804529270978149772648616711873397163064477372594626927691535035461844714597680574588461380273888665667911827878660157282378263042862332372719213358136002702920209269658093869092217474786770119544342379821897308906331700464735643953604761203845971362443221051412006517094485212800777203447568528458001128791259764547169303214452408980306490927288744866007237069818737694246483215493265366674323953760095009246479594641160436733131483678148733697585110919945824557830935946081872840019754885869788843630608870226166573691194627913252194905933293567899693637181618297363337966280656636572332992153029882074051295169282158572824991610294024807845732269052247106027411684987277334110709113042791060608298929969317355895086064901069501658569327602622327385897890437522371770992619886852259776813717206765570130642567983768334150726702209930877787429815215261217149804139816910187937759924282455944950068026672372561218926298172316786264169147702083194134250930782228723232940731442982372072048331232852730102433388582819777297629821164383574209330533797164219776626271046379977215041941157989079580719174869181023457653666973854557919039892955449006737077978817805475736783295401940750577676276697922359836499545414621115525547588329902964115809704001458436728428724391048001271312205641248385397797481622370208090010576000140673099230061310372494633372467901091185267693296125531750396834452249691520432549264997049457415038112676682064010270672846327226032533200831087208056015981048883412666720517820235682147031824813693289229434633964010415539222682043020294697801696827868266822020118220887888136608148484403637527547837185177141396178234435342467700356655919958999543110406093747322999826821178254174642985460287035804835397094930419009364757297076451298425245441715967000590830249586669174988747651061504454809966843857342608853047407943116901849806856329932199438462133151950186991610807102443798320444174611188664223815311810139629970401085810649957272246494358358343092223747613963722973593915281946242350904388504638812600820205214486573409923776991914034033345120790473496078854356737341764388847772202694445935253501714127958337311223682939600342571102535644341754128731798388422616861348178327612713276902890673335592515112117940485849476170437504410366494482237520477669580278256453656709994826606854594174662455294850213578871349102175720600554560262521225528305820792255049994543240785983033746254931028201945847249992373535535275305443733859849911821758087299794752059365458468371583126227635527290595946233672665824048984918607954724916687728720913664424158227915655559895156085268617997319458682520764558112865522763502209635322574634606269628933659387324104265863569850737894930642651936331023112908063093148214741269983653862276426845453796606976751993596603662478629177545123700528849478584652681670889335584024624987422894787554497874732884508551232102469379019620406139315543058848424562516595978463805933433958356307007861387015508434571512324881512680887052560447623921123382826186148804378621468707205539034193331884036146156474146538206190944879758264960681295548047669568502434395833971381881222555591393714384201973468255209989668251010233986815535039567536699881344055853941731205385164883259794884178143253639304965031140276708953681796420042860533940285783234415393389537277364603448754899130046653537543350668552246156437697279432525246909168662937720472009281098581083014707554583665105034803625418688048204070955429330291138402046804403856650028584011875515047788845736745431370899608872316414567400784173959822837624868761484054267646526463132801206642203761364704100094782841253932812285450234131916055111032668812263700923797512002863476780202638359222067193907645930796137176264790812577211494524732316630264885157738151067141912680874312148185451585907785793727552555554630213504871749264872107281295977786763855872362612581898285580031780486330181517807061647873400430598340540718059059383608642901980318988620558657658184808000362500484807008529478064634780861547587529967398116575603114892707838956577410254210780372832119995545665149402356388580096371435891281571823595089871843424610323178929900105969298887851014002133497623468002397199117632268349218974057226501314999781302990796437868292334495062643613090284900650429405892797347132451588839136650335881203712921769043995018296783874334379699034445094810992509628788159411048785077272761605663393659526014161586374960049155396132929074268436307000631924355828356521941278188759294214108246632461835152126676990146669564796794236883484469775648210480148326456589414556873081621726506719416742698030802823754168350332853727911712142290231359110119867741338183285247346787402402398730881437649344135572229934598094871832896466437834981895099872165337953397768169692728962170029627084513363060657323685446120231022065736306124082790528914636591033477197891988630917745698630407685538998430934987391014394753305847670062204912298798665110383325074687076033360441845034058157870915195853086097660818946393912825158909221022028492444630887717152492208527285554158209807819057963256883589163957179859073349243611320555991913340687596558856365135034646513121604202153913688647872541635709022697243938848697859019787134766248426815700231138622274538991124527320834558766650398734276789520421950221653281405028810535994350579589111049464809178589753610052343576712908169704000649467461569105830780466586956968710901195352232625680325394138337871932414682275246248114974008743152630560157507304718189527255290577388030049545549529814957967849728918062504962757741672069383441796010721295019049854933441568393036481375734376278576522498876457166340964424277934772429865186965915581478557014442776709626911038610082571553751724969608651988898444062025410920579597925129044511605908931144820869960635092987348661712774618495976134816425327181411652479291686172412956265730934939880878048376575963243374973425668599576900457705152283899985142836516332308607523476718287139250255746596587150250587844758009444885723759642197195034649973044804189946341773134545902492574440612743799683907587359738946205309410576616648417641380130013874712920942244446527627829623485409944937032558426473270281901151370380610993889200417741479054776486294612209293513325147254861308383683738813472015382205917590342748582891945426828000030772562928523295497950232922873588873383891528932655796404870568472556445643882777079739625227736270921017955383938127110024013095526753966869792911073457524685549389621404541598576515333780274220516817427878088136897699232313846771196754508473451143564700899979975547090251307364229757699000750207525743860764143944974057887135733592171368469780662604398238149273036097836268834937519405987430878405377875098641347025606528274270815667281449787714268339258211580087604154485928020148332088454478404032234611754494772431248309860701751054125099740264818859580632793631147993357431844348370431401769046504967517309658225271584419470981142641872091707712982710293854720916293209297105252645691419218598519784427242249894519239721052902657736771932537897996961384981494250750538451609992613100524763125004212332893861905705678535984775988882059975251776267306344767366915755406536353104587321572816581290403611075371778185601591186519320720137980817429811731364146950632410293132477979228056003192245205407239492863107349434485582012140756052079179580442488219817086432559326494363272604416686551281216990963538945709953228752463093654447645406267130708908880030634171058987987487164468384789340509186589241063390548664562993793237440380471402803207220278593317919377385356195743271493956359343769555497022045879151821595243639691997559699166754036946566998162550256109882355704072228951361377695492828348288690632607079355551717556597673584053877130550097836266813623172578169895002351632327181690483437486509077377527916632021816327009424645116998271614314518626694032326111853496230054800834566638037027852277264235790718681122616646730942393681748857716139386808279024561458818719683086668062985381341839790214558749946900895747173825901744389304900455281579860391183783430876534761263898352752220286271685119154397961058118847395687054106901615209097938805613146969180632624636047691273700771276078556351671206293915916935758883726306092958950339920235506855041631259757732947195003427597920718358368565109197154806839301115520355151052208066439791654923083565644255052035923010444493668763471834163179724452889613314186582663104017804568103919405477172023382869239214649874936217631066226745800444764553826309715343772112139428940732457239785355057120615984414227744427210433443378683377766937696799445685305233984258366026346421578504959762626636719138121993642714743956650896036731747990432538010067636251981998711788875241975191125058312847252519103679131194678461338889693543230110991681243957915463396742356635902601095802549361358313055173075051238530001443540416637393989014985619782835485402959848941169840627950535032758333731649050712977165368198308411440303509604269627944757423537441188527983514038586513296924533451739667909658357092977488425599524291972912331249926207361810409799096840539929839366652561377695250529495942239610487853738322954102006685179996357153190161431788820683790187627019215879108871521356717990748978530911107533163148586682219193444122096209163008910048654671755151970706461483839457527705922545550559608624567710071468465946902168896933700466703959241537733477029866752783647192637712483717823890141435140482337942934293893498089528164100917186952297074475562342990188841912993777817726110920099693333439395262341114806138194733124325485994081646819711925621289429226856678903694537584250001158929532492892649686088964474315837659341604436862394803503157807496788644225274048198692399427850998134175064446410897717486974466333242776519502839837217201886065986936639172550726118534462341972564211568021014358539083769635025824357351872548934749277419647816099425377280244051014741905091627553507683069999655563070031668551518635623208090755941114401441968877562744095092663444689907261214137428415257531452758668126674042789119651045905442812837317736927389559319860122162844342297751032428523145363745040371497831314661247975506383304957756770003992069871353480917638200396350405712774901948633718594055839568459776696776984077904947473818266965058658071214493315205605308024868219985346401190200619762562513998682461718321580097474156268280860884140300740378163843435807197901300407440952370202227020700375092012599980121284579280671419647117607144937551309245639469096860163683844003024079499396349529088441305762368756877835184957276824341347806762370521806790699236527069222079508666359989161694674706212160416156115160021043390231581399077985371817918971048368820713656170284890853853034496912686379108674682925175461874654858220105462494118381844312251273625243391710011915040990353885548927573877204095147573108782693124675690827445245019674501370522231853409254234457014453034189627156630674962286749033721437282285618844631787411385649430274735029554671116458369181522608565665363339046034424120113865634232094358988777315231397973471643488222344404876500771444431642164282035504385543351530713337611258010108883419111189669874217328105044028462621288746087333094330371384047998044735110363436494099805413813738150885445000878185309528703362774517693039744570356361418510264905734036847390587071544138335835022708314989821645930107041223588103801034267500545894338657604841706908893975864215559412473715599859140461419032690502701096970716029568264698690150593147682116190021471048080099690980053102348723653053215143493893605447675584492916108368353935182022685579912986035547465837577348596178168991847064655704039949111482302709190270834158413786384786478669001332575909291801421351418120079948319751594861532008625317883565892655073221884925403536811859291896436667329065699674233526174048086044642290964897360361791619001962646668760416147141102275090657692707490136826944329105644638527252965628008369476595687743474922632171734598308609977647746962923785402607399581659804063086790679443094493300505631008965014861319220949693250265616457845594830332239933985964526123464520586927802081339689217952805575905932434016118792217797633001722196102743712634717793445291104541574406186580846399075643609357497252624846529754061213157031716731313210780384866329344204940379006991078874903778295801384670108852211633133724968484548572163421456374547358667682747779486230862818662168082802815853388124371950381668682664027040373896490474512266245338678612280108747189443094139273853034539380134912370015999249109518058729653646498591999724631123527766619370815547217233351630018845976820317784850272918157274417838384984936619534882985281576610417271725514398323099838913615605489419232834195686315109632719264652451266170125756146307306492568779875511520202834256660976648942626526904590951030387199378062623474082459470592469234278416915252749126742691372578822572951441237685298832986323967286110535669073859556849970461682788760230880356593184372585063942406435149397910932338240563659234021314977517525377579422316391881364257090033239243774210961597496617710790589727640780255736675561296574338227018192335903971917785802072022273953340182566790139142724103733262731615151650407732356781898693925752348330597289695809630831295477681084748622789069448754355630011599082716838428523314634533569502304705793641823564521965788051255702177214554728665722802731354248995681054373619091634328856046201073415646290733894656466121641388580084505808474941485950420009647403735603454329689144608771924213223750647090043454411790095886404705996721573928099614343514422860622784904892894401183547121819351257653886121538664787098257333775952516788392132802665090312475106466924981569286479509420405206835035842099500177742480852718784118170736531487911158712618426801182508763601504031426977864412527073464412286524609543322262498619257843467012287377279368400870253830080087223131637260782287331111911200861639347647024772423158912273628569205648770214071515732075028718510173219049534220196839146491922137012332600580479289341600216182899226486406646051206781642690189020255580212381916290095933050182879302347301980746554043363632745429617372601363495596637308335597891093338953756975049230695435863625584290935995605006959332722688293704380694503374383873090063261839085148350506522495383756153411348882319378236913689287670734843359523343869023512990873039554107380041803555444582586234246044562042128085467904086282182437180297464900661937473184564108423779238120285006822776575282485604468167255773279622984392453891157992164768992293591638004005987974487717559135070908061630283187466075088830914301588575606549768059099171544646777995244347285172665396209052814404741751182287215935418203089090322017849537309243379619576977027117484879651640144257000483744464315799650451721930122310145439636912367424076973051548136396765950609799624455773421455881708847842570830565408494069717937418270016565964640580909999661793149332403047404601702115223907968017167199097654639410261507480927020189059675888183216456575948532613553022682438374400535646793049676913608969424396106321135457896196773321904727346768992883252952003037241746077575246715258193870180898926593844660932626254585126472472271217922839979132814702485579711934127311314336961751664848518055522594602420164346637892300787735894952864011416028672325987409898705966046386071690968304782690879454002446194211776175356397549615609473953997756834059727615562883935856672380095788534307830841051679559685423811854978359805311415790262421071098381433899407715986431082487347160431498007173550833731607118178565181627236352475933506500938899409522765904276424316502330267189313526038013424331968794567900047665323961223010994039388804899002385629670964354932629022552445298992490657538466900075814131258498151798100139465238292620774483353308726697852624585554660177164528300749268976174900918495717817169050881629701730743054473049492835163329680833843306714397231506020555011801581757356104287236113614082360217909173873293449213878565738371362338152125926916959189736856495443987115572786509810970213182252780261007711901377155281260621710864090128566544441332577915756548621862904286472182168590077379030307441619156038400762753231966501932957294777207626815088138791118065932014352092299738255180439559399874819677292148577031003465225993400028702425617487851283270715712812991251017994832895644032462455632511700249672354161717716416658553284651091598930913023574804898241183658343030328090004147421680934434162224437885068098438113325851118051589999412623165080420591799256403688349932180975421961368792460127880789063150538355644355687387085126505347177970927442489978313850504527350650819158432516379661190464213797958242825162877514402586905309508388233375804735193074144782969775943422444400084049996914568742252338514687069052102435323641362228442817865443333428233207138340699393197594732659958976527532198504851037500494098357187687400499638225626200977056788195411778987189328232931288252521159766549567193998015973529988445909673850383983559221913073658182857511192653497476382003704040623778339504939961809297863898329347088557531713493549238174724198610782215807517602638091531201532764286041223142570722562616346915145989991941478480917754072817097476550767635359341076867878816997338139801189084872060253312769970374004363974164768742377060400084085340465978847356600218919407836757121051992707070444154336714959070285368307630959427416005525154758927243466261441683771511085102363696845609231436582829621175800687264937907930856568881437351482867537507283990988983672611463500848117169812693963680673567312433217565902195103048711136847571870632545477850171448881661553128258406202758313572914343035361998416258214362695776452397949764505222086149156723653064805003423840460326207682960709952098353894757522262043169548597537413145519174870507345681498279024791262801928951791322417643212120884974910186552528308929137951082801496581838695939551335912356096690291948117207434762291538821025749453143606469244971423169373874673584020875657079851896593721375434206408069322969648740546285497207032266504557821125849752790552745529270346638063997036811902599846312793028677185667701620681540581795981871451279593820090694163683910573164973392731390108336439574070923695345772467003127659754831546026754940029271787555915031023552338896387449639155947992506474155122716839548586995847128941931929489380207779679394735750540035488973186022366557661137211517822525415960821994154894984683976464908184952544567597433250710618560621298499416574172297215820401435823341339367646992777600008674887244565212101402179093832022025606575600182452474619385443973326707770349759239880613522737720283604355404352281154104165424664653450002721365429976161173427038076588003767917833188169709631776255862384247575850714309290703732466984233061454184443933093204772805548708892312627553426606220855234542222695023064757559818861236753549752517715934202270030481347018654292532201237927410491875478365812952295934434929002184642458043888998637063451330373159627380621434429468647075567107231698376684509940575976177466735271106883374345476337079551582064980278663238473366749389401256245223940814021694555596499898675780262151789912172849423108815472897712122862801153731805718404277252193600476861017309647023166554134189917960927019627881435509711431563854135309494329795707381675589940490288209344130448858024669537475097880079953035373352775284396143448232837606939807216987745135215738960659994261797971553889158255841267227199525877624112414426583342969562032441842804265153445978630324287518465518991059750642696462371993197440026107832887623404486621335653116470962968458075224301847386927920402507316806233857181972272646563165100540134509282331652226506880601422512754322623564164493181873001432337984058788637723826417010356267405578440237493661787755408803938389973406433621982955522751234653504999111643565196620749034705193775424935015081064836848458723364390209462782647611966282970737856476973446772756092228603808704185132460426734751019862698472716959522949440615347586406507396330885360089620203238293098209126651202996276091747383027125189278495307751579150627631791888663999185000803482840784197360706245468537911010706612695216419549837600095397826959829836282209541680487572344499635259112677753968740190008438628890961541711511366062884379541195787680690929677613832389090503236746697148860943954416049971792313782409206885466332102668510970326209281445366644589491191968355232185519345481372784845377124320005352400009155553219215720973448917762284699022834499431005732130433650164573985727012230272171620759070372779061140156901246280285412728778663917207845226023693177352474261512558461015228567309799199010744674901091233153052076508037831520334917100079590141798410118178740719213809408654936596151836581728671344494785179442630865223230133703611218067889388322955862979426415496507156942611061623850859381603130951109796653313800559659771787316137452079980674430054758280734612406943626650669336616997253118243674171141086468569282281554477054152466796906457988598386579517681614902851949222675713321928670043446886205765593548065258722814399620587918338740492056211407089233267382421127607553883458885712545088936814441581227721203485860616330753108592252577790080453936489373170166760102575396747287227605883268306029359422229360537728266149441168727688449969531651274261300261632606499951498152742724050429935151656379259141718151000545731584622598860801044341791852551722769648202536421294948037914415226877146596010694179054723665997514766219212914250015363872673906254043701403207338738705676228280039701134181934998649314108871718214832209689154838482497802006131797700543872563190406621971406660464161827537175304222058534357941165742790310272228445398709748693181107803379516957191560454129634787669484331528367517283306890277661226746425394851501267104511243281122528210258063951611350447789484087150746950383080829714694938887341199074367990329175353913348969152014813732262470321802924599504663030104950219312766301869196417156806562626700239541819861333582994539564583274826041361375228917455471649192861606427529378317837482643238445437670255300912859963459129748019810307939164014245726188915892864130841821594179691630326858607873648872862249451644050669117146642059264429043181843514485737141148819913120207109089251266269802182648398227064712662677591636448824519218212919125468416168267486048341018313537241215312378301490588861624461832085093800293767239569798672204016555636724563186254979412749202953608081023462308145252584705638925436017863428847771963323729402837555171876902766372686470597579253166642675151888677768814583672498193695542864055394436365031194718771812830153239315792116199873292749530235026571284748906172311321614364923978118734354448167765748551128270015267697927248469158400541229767995104635668400468169744648813966266744183679201533668588185593955395640907530460921215643079182291925257815306235757363400061900953200115222809786419764761378242451377102574601482443448126261856859843718949504599071230235471305822765780104014157012015318866654141659987642999106011333293322581768034266446009211112720712562363229622052388283880663859439907251239638899083485517507812037327516887907570423894218163398627787237668533387917900776259883746256214520915737706644877023913909541375068475427422643651940218278966375434575997266908634158404003799774831216256378925622063105260899294470090012507776317251318027956258760869442958697883981491175718131793562316552122442529883781640610503731406043597931500694253824466261987402485317932608541419833627659735029782177933296784079944127177358021823474024586332065551362411157940443552513065212413985696880112712744627769639559855898270232543351710850157776878023492279149961663897459619093150630362368672974249259150544228676802706879129930547449058139260451879336191030947753423934774087573101698634785350415325282506041358232447478708484016999423776624550568158527639545380708385881095672561691891146014450948802955362487528049205718029757725871105436107005227421136904985975898631747722683288541403981359712157821102835289856227513940847375544041414142635774423631581402789101734693802032146588960945505326470021707338743985423417738178411227673789960679753359851382924185990056715042121711924416205658434188358535999145106680605661723980201432088229040835729867249594513377491114501061225580139973060636613429534401159751989480579455963233734848520138546199795582821949414412066410933404854371017928478103782371026153981795352141227834663712554092679220289292433174098313753865403949322053390946091133071134461153053483878833346564095562054770288675035925033524878786438608711726497602146431158956653137348676853163065298768044030877573206678104832125130832953483062231372190746445312665319635465922600348263650387085278619601853549827993887399774955232352856671381099405586525237800495703453935714699835821699388285405084976744448799097669808197068834473422657177938042769369949187870854962246689633550705355774890436734565234311317670314992874072630794255128422279489842081639203133017208290738581750349166838570759220337769973155396650411015693673674677351297582887268646977857373508266691227128111967997391582322907254687396770634284011210186407181769472962773969750844882533167223002912472995221874905450913877155414644267962061299891764625209114396440682307791700697507819194782070584305792472477104821910415567584248224211847128679252055821250727139523119492486828995915621851598506636091791768429702694568429231158003514799537338514821416466640359564519555354240662436098698064109208102439222875388345894275096975730549864172507891652802194467975883443084773337936555353991914500626282909344912374908396871586539268401307908231694107460055125546428062646139331654742450781161035317034374040406999883425680691181509637661776839194905676724255638869496403520347313342334523359898575722408878978265448713130082094422840290154007318284305473932526265374200065914242928445707517715641451318111144461530499397525136616297836822246227245393796352864218186907956318480784014034018551964076562225365568390326313786165228224184942542592762010792930980624660837214531076764942266738284712090525642362063642527303742001987653168144066542189306858127522943476947614141097825726569059357660584964537020713073692509652062166798718496402725089886388341722061413937384441362707596562014990824755400190892399293691001574013109508966833419820584049810098257497129667756197862453527106418381064287404602823810823427951283494738643983282608405122247758974173410412710548856442673306214476278912683716520592723898647224626179696812622310919892532345626513510586227300734960728847778416185650876685899970455151646539695346672938555173896439791515909594806293970129834504473303975083266347700263495825085702635618038399773205391675487351474900028623539971413143497766817001861585608235685061314516309735345855654294484234537113462347095221613645971753895546714199854304199041328885158821001240672917536639459883490624033090663980256065138748344835691390212146056784764390267463818383851779932362095751695862026323376640551531692623815233196383623254234509370251183084555130664020628536885409745918846999305518129778260016951392067626317387106042885274695930147314304023272379385931709475706371457521775625888851142339299148521547672241397395947519013700249503482718758294856658843177654690046332618364487636642467753792871828923458868879221232532425995477996073168200520505920591463105563801956400873484799005151855442572679636584446157642248742761800514225264962966548655832923951442648390519853550520220137313406125126167881860566693957230165130282138458638543525556731558969190834601120865297731500469984795162976282367167742830110349502013593313942299433115563217193339194954847093968223102848253630826972871135249303888444503410591279124891340944433582107380849194993731877274720617650208184038744341891447647123808245281516299512893148014926003070530195135524628692056897205528689468315630288824077677337294716743478121967440460168879947315433721613424003124496319868309455167278282139136094969725375797350859948929296789188365742918850094192279313740953880000384319331621236558323625364794609059983147798973267382947125244195981495412201095997468076522230130243978328666912175667937713586459633989227542104353548645337820006000023675120335995229203079251528103198763754765675289237560396643700590783151432948878556518396957980630269654259246897930372267535262541388042175983567702841392717366402955753193650296710014081966274616254798840849003681134798205811482257318245847530680261983438420260965113203924820341646133967115218854118253118843579552853301754207588802292679287123803920423423714069610257001141716062844757063283300396576220834772037860608014118100543872220439883861502817393484800083893322954170226843347635080525721182808016652329662909519877580294998217298044848732040226476618322990744005260678869555558717188382172351222905244315752795168823022521005943927765453517672435405358839264801379973785289682011654388727163028149759538085628927690477517060922765855013903656852346621318824931968902462770324190632778134967832197213985390193318189019774470517710784027397112280526002554165535541037009182075562527646345295658983706491554841358532002961039741406167725242415476960929506347163169182271331633307174129288461795343137771957306599072578173153879420681254990841693659091613282346812254757009069633691598550108071279955490301565059190998317230259198087578473817986546546878839514633223406110124613828154321899638710001239921812921884942054945832447777848104721370077219745218796044515808696427263762872962920983249801805786440218240303438440311543305399361077092223118306708534530489135506558721679630871961468192113290789069980045941848551095902901349944224072111433280630107063916936004783364122109246489791907574296575191097448858927911421613409175551295272716866505206964793177434393244888853549015387474101577235540201881385751564699675201580793083417923491120689048978971911269891356465646510876443281339746171319844314114207053847787078181086840361475940365045840301406854353657747861633826982974168723200260707451039716888761898919047779495928883879445982850180422037408353757495780883089346669350288683365654443244542781276715758333741644364601574654050966060380937132852727367961948779723918099130599034772862528240840580178783483204876473459612051578237570346873513031746992081453910243876711911795778813110185742867607570814475243959575436995091479274215693014449658862555727431918028031625642120780938440828792805316457212235691494099944982988974060339637843164754118390450952977183542505421949908270246595252523206135731055813652979209841047810481061215314752272058150366066708600436659348184255267491097529808029685543901153577574938700518332576154937193871584255433812565785955376999387178818983515035794196972837145400785418220482261417035738834689514880723223036611249605270146579220146434478483101957610533389481608404988011825326609244191607090506502480023997723494054584380202461311299831582381886120554446458610080844912945946635991444638415060135211188108601504330091970260580677212193124646976508153189270015493033674839507384433039798765685040765683207099784715719280967534614535551119026797883543973971867842595609145665488665604508310633759969839371070358215024440800296056111418619509055062510839500788670015131946519616897600789392550914969730027571035821149690255836923411446600576414821625862063322901301335028029580890635963805229156770544515497394984111198068329106201426163357397948016423940201011441171236445084602772323047955116726111877339457150717022909118917531662757051299887838096589570048462444020410755855273693443962565545959402292794684081282446813781546908816690770322768241359214721344533197738072482943422559850612631789686969626051165119153907441736325579003802366431284494406462866427549708281892183729893824218340261486618142162723592603079390016363385424969523357161096871360068184959771239837048756626185025159861492548960809427174168293281611409198178193444821130199104263903542620274838734848505191401348084031025138247715176569032843461621028129728816086690888735118618163738501752498407769535403404075296794603077846435993498121638993301902214243428849389555549592619907215423600700094150980540651529018627215619505134008581672605275912836515237744401950680085911378105986292737743134989916219178276228476827927688298808531339447114458968346880309148000518507152902875264162146019558575375372677152273544198797990518358529322896968351794761140605849587511677191803068611802852992548310132578758963343153767728979826873994027801589649765830057076064750428967059544669972758019811501748674126864873039303366920394819102063470336786985596922142993119896032480879546583454013568363438306844556661665312923136262647038063665210640214248966463465587257157181605683718961817366353521002078582920979397410068288374199329441629965941070708865168157124391178028033955002220763796926223171377031244636521308405069122610332969806324252303535088083614141578987527001915025520306449644953583203829555440108954173570770812554935581118952671426105086385685633072860501065063397046393122975398224509436964165075018149058500303765676992216698592332919127842895140376468522545710969365220703219070665171608570443485669978001070160551408580931179137044597865222476933445722858102688135160022242801933990414819444977504073112092644781725039941954320307753137542393100368441502445172480724354894549228423087398018786416310652465609172567689157544434847310825772192890783984687492417798975025252809467448367786494240952297182421386902915510060846852432329959883722865435452915729619099900091574351443392385133482096266608853239832165027423550137042509913553410917444898211239681517524205914377451903461353293925779134892483299311132218053297562550803420209986201911581433267491717088028900113082691352774967633939435897040238937962695700894538822832166823154512468744892672222954553203777171078539199264782080302843080291016745979366116552526019697641920986326294836596617633591444945151331443484568427181812161544545613047660577341619529901785555803463673175585348846661923146704801083541449230770865982112268890994629893749880921823784132749184230789592861644347990144139586208997857063522036499458561042137472832648957889248054047085770902519281380412346495348018752673580763177254563540772821708013339217161233775678206283239823447007661961887764972809680532398651090093923334654655783419872261448126812618055386737479556804844832312279588585193877510893994343097212245213943136841910855371288099512581469873221711531188387574187755334161946227550853506670250711723113307110698503518812868787122102740201466675187017993987671244130542626233343136163963757380310875887548541619935463986841510821680747083788183769031986579991146543997490515364730662809822044994856935391360512107790605363738435467330365508751655725148129396782521223088543924513803881467450901416307556036333509843340836306147440252811648634162069984092667600516600806867639361356178725853383142678381439820737823112191716131441743048169051444689707398160193520614257252766727393257724038085392253369388816436502313090769334484172560840284033854937765922008872493101237657802584130953125602660280445885136095298171713195214281997617890424664142714240219836158387021998611286832693979907153882675423143256217674826715863267304106173706079538355096795500754724384056900458594610547837920585722372073317155807858636463931204180393881520105269677308435197322813520933656141424551184295242033057840598599399736537615848418651848061116525668920385610096394668055094281409000511616345260947543664846533771870588653041232083009236363943118942164533851681050483793361521525443002047837468210543471456196929570376820866994669279063186026915825256440390490322485312122305747092012362268802898045901882248940645267182873099659000239527995964356889667506678388602753766261971792775571482448126045041623254454408228958070491603167176528719537602127990496205029633674381584780644585785965035155408554406200203372981109548058734230480615277569772637072264202148914813060653341839182227318196534524303129298277415469237585031734533225154574327813415920830952653077769277467724129749918345297380179315940848833561994550325092897753827677454098331915005400928417061992935613309939269807188401172908977635497647604733458960212007719738667916350175150261214884551910406866741039072088454775417461340412292148584085159149279906507626279159518804906047736025978910047321945728829041971725786632154570231346182499729330370743758819576369685784561963266373830507391540957180105682927831051346724885269168783591091159475352827486986580763727770464697994404464979454794700830327153011675007750124345347639186132577995020508861896265308988971943138992320924250501598919794864782299971150224596593345465743847083614304408255363824933465302509237843677194675902986120992979684493177534232172313420787730412226694223802397120795770176917190103134850163863635232437565378828409644702308306130000448671806929806323695504180956970773628942913978350393806975755718205506324833306681103733717372837827443199022601469506713500303292244972984082279756940201143633384818127300789383869272068664145063502170437248953158606467206550884356763984397412374662811231581688009024038584730908052425305600082338488186393213567237539719061147309030759227200735115317358258081799422469438626392963906678004253081465199768696792322220392456205367237143381568592625400085951078075793596358214269970330698391362964273624964153523370101764669270267693124821095465588550721262573679622951175808551675946905462710820420667683882512050756002402594687437645736894800722870783563938426753204648114628820989127884068287673701700042434848151345792310735285412410820254641823435751292459920258910302999433470922710684310223636193581326297815697700427075250339882949182306926064809445664060994233452120738506956085701985164169995608998959704063460594311559743137015320412177273605046892873579790115345147018605224653478198246517217643950199507299867711633026132368669508354142769055273717155149479902502117009876177687776810569518661987834553468344926165285865877134645311300118230178288610384590092173538479566820214280655794754734262618090827566350533913946901053373622641091097031784669038866648134022915486225718555537775994573664411765537510228966729416380114184612979313671687302552950806569871047543307056203090095979103656579538753394505941017207092923769074481422155197038278227642789493632760348933524630851407958121924263776000452972897000630961026341044309230094630516241052668880268617775401041122138085721266923375986665654307499573629805106494652171192272695554217202041677911338970911866439730638566506243969712463342658338542629043643578063329051053121159629139127370780237090053007986939694228345390081792370579461678550285202669280052673683612705015820064290247096885567304068606586174895696473262844826139583141987320008287887147711589950889998871340156043015417839950071816377745609310369664690051555140478375089895271454351864665750324152630288580977383210092502288303607986771496298796618247512099131085725667481528851550773979381053612578835989422549730045642662616536653599997238837563013849371021987684993359265892923701047143640857092133968215642334829093679006651600730306742862340637951753197923133291745091568413019612580689862011017237538887976577059321985658125694805101994028056699071953145584824140028408702249360821209775511909440263041795831200674425384174344774687746914518371920635101232140051459288554446538116798073330653881869561384220080271472851290787531470938384107345038198906261441251802759530770037938072809511973474557004913011210419002868770839966210927291145408134894600390717241284441015796520659077463588944384561542358319626712931317034843112531197637943057154537185637762627774081491404787713415366312051801446146769907573176343326958794822248143025736867347142791927396949580095379155431363826015368280734867373412494304278447759126577456935832304426421633859099214354542345889222852711277056516598665158161349737915423419496369342741320621461301989486981469038891387189354707053407902159949984932370518484180465511749055789233218575347789730099356149592449318044358005524066943891527423094623967174909053884200193332321743318765441011043091609009167786686197733020571412458887111133985804845471055910510183783754840106547366932042345966434206097705412018835754210516804125143269921284669682923683000334129006383024049478618624489822928973582444831558057730031889429619662201550333781949052524184000927867414092536047303376706019421530986125047573187910798727437641089538063659808272512019859163276168928077015212479438882064539728008726486719532395372820680431503314539189030400167500473764207546042673095429115705017708438943892205061958668853942906533587006234107772552004552240075984530802298745142574143938093929577623653023547139600172872620553295440851454281169154793856340193674381017343445352162959774698172485394247441235993283375943318651235020081285299547099657277033845183935745348276566743613735839287943461761430000890950354869390993436770682232676000351273265052749033319969434994555395410871100357340401035567200626015159219923598184822137604127040697297988670772374078755019753228713385978692234310190527803026779408129477488174866311607876996644048873350664935476017478844382911574010943598528935094825782312435895379167961234143584051894644460124332850106703933662844311815315068603743496992796137180115563722233118737972283693910445496565139663133875567085053135240547680837756685280876941053771865266510114886051972180201953261957394255467689238960539385275896744642529904967881957273529754738759271758014606966280476103875087965787807910557774612560215718675755909686161413975354624016142964656193174107196368119629933175800267033232586254456380955366467062914909523333318262413086092837171539611234684518720524621158387392967650146230466193378686673324970566010053737527708674061531429981980959143618758301147227452166069332551873591616662222235000306867781782770988663810959615240797928995201281397545811244900127504263211143345438931039540964354202073179210494568158112339210469588730201656068992236832950376021209597625936737862175509130173746253645283623568424599219418824928589780381706428285071811467005564076516732965655625366533261276721584675506898129424257895004455877280266047334417526745299765240894161725040877413107900975651057015730862241272476171319422729910068002095165146295708867620127351005066814745221769563189455269248152277940587725359803564439382218493620300084873651693032407226842559338789585902242384570655846493937130270978688335064267578253303644201696909741376130360157034003418057938883053240702142907761063067353201109504530795103627315670556473093176231409513464559032961305550168574705150596432312151229061976689805150614974911011644370618985223186865470097527676084408381487923899949642935648672749466113143402883088687949469326526714630378336956133528064098145494208441896668808562240239802483542858571802694995510629183253159738826606309220850636358980353237486984503596564987651030242159380495176680572443441621956460662603449975377782964305993219762668225885483879163633852214793028863347093400335567378730898894162257191924749587709821458372797589177161073641066042418058552264944691602351718687000897901285156706322096617498736530330075346207057515779762154249667716304289513399366919308805920985726462508090295589065952439311421746744271688059422145349441399225358130305760136168610777242592805677516156837122595339569984764442675784853415743564971432279999417752621935421035355653933134196582980001485868209811667228786554442612578327964042264240713076395963613648684508888633351383832658275857709820042334933335985688694211234453424953917309805379394690314901259274688815621676829750987354093742323456667344657620924745848802489056811508744027088419366720746859148026786529762435582062064754419835398566572594284882202279429816869657587272095814392838927347627752589257421746738271433542222639848625248336511127439867093485190475191776309430325916627492918719054324935935824335977261087990913652696471020663315247931853554312482234341223763965995825168620904124930002063989650107338250722510127362346643810004323393248828464235461339154685870920567463009806682285399110227578100428385013953922936420633735153625881068299574543761469568405485458611671308425098706261161288715801828744227826373824915171119599410862614362144188861262274874924288485962131161895836015471798923508356878315143980089558020769361980220415040493281561196706741048253601697165282462815900961864611557305146272633815630738394646395749991926749846561713205449059468632320849742774534559714476732729697429338337202101156029560290848764545503978036559282786158723225511858873736796931519134351997658133172775737118432422501096345146286078298451392618560273185892974862390133876025961792599091539154933893558832061468768292169816820271928496121695635856723267632672210535874078569980045372680914988379152451011678589393192836946393127651428451672512314132078626930125432722354520910271334940674273738723323634570820075599771357697075843579310050240755906750514612850117254824977380820695167046385880417893511979988079564717774597673041575731251085225296192994423836308127447287653253165546306802081279668919730986868514214636545750216515349075211902172604030917568202773944393450726905906184710925645804273831656091836069989566384696170783200282531766025815084044311199818709223159423187217400259044949201478699266321107984733114313128694619680759691611734915763367556628353202255687782471844928075937497908860444519615980550433731434359146925059649942889681884888696332821609066381335863197641129516632250644460870634302599621190728687824540543920887592682274809458374522058688564318269139872046562809908303489815939801878451989228883349773642427664524204038718254571538116175017553391981891749841706514876794752459471424029695673248025148570466033953046413146613775999401107826445207050999513364171057387143699980392917764087662214890230716569588125254875171874810139672847277515232575298081033805730570927559113456241040366209822974583777195245815889168707470333115428213943191730775738551703971044777994497196375462048941408305398059029815093570174328018785009870270846291038417969486989368509012972329794313285491195650671494388418204810642785450206989323123307817426339539684649430479835261218201169622560190621096064309454238029664501075513220229942440872003031332491742299254624802765851126706935402044284949821132121819911898800217905499744089158499632206293359573972034435709441580387176036344615248213489188222945468060427714019579804283105784009276246751539580762165742212987070737145648674406474625155405267406819779228683063706145492990433034807001439999650019794825715067087533706966402663915541224037575502867372194475596254533436265968393439714347651325506692021937419430907774045256821958169754716420909205913585223431966854118936649503876615215206558492693329046286392258090894239896180712306281769690715765607950592828659983662374229301987852844355886457656283898623815167606998240098884130448588655800913119543472588143220376123152832599791930318765145843397782441625533183299086695928305207473353730483902859227296876222125313004471439275679334126108587220556100256076113756441939462052557514617274014279433769605344376844624739611264758521655806121841075793401638525181112430006951423681520057950674438772993442597628653318131058972507366399442625551515422414390821570455904858129215119662673366811380318023933974045585868407687000371615006225360584756618341554331478646140729877231929772381346663661072658494588686055884175869976993680411800736404471736756746532345869828936887321055822970602782159695021303739718326049527935017588794768131543626604549436692227412759158342968467040199597898747875594251252567995080564424797173768253329769568268753497762541015762480974754353159510722476226009381603177575318623802570640575055979292901602533472144185990698484837664446092651153310450400949233761236193421087963907029836389273427355188099873325108890132630900177130892431072082853265901757866990937011365102009219179151305901958554988960863173204195991040503002137001440288613165840096331060538010461323930783750421347592830149128631042567565079189122719337161148999018318271255753001794158957541756597768481554223950579739437922391988809420681050275309140433128323833418775140834554797971236826249829362349117414918641911068368199967788127864235642275036838998806514748817045060437940818934008018351501531014942807037000569996906250672483310815812437250850841695513306581683312043073332510743515100153321551971413825036102544437948559950542937809144217771612833271588861594239345353885053066119957534482431722996186019900829880723860853028098258379284421762073471212801888596522383580560184500261983277588476698397068289796969349858008229428893832585620271469237253477485445023623365861765693991855217990686408881200422857642851667823810781375443959885775255661003035266329004780986095015925148952227324867400823438554983584372752674321682249033982131956052281037132326743050258084836895314201891668985490793457552758371697293138519747691209211965781841498144666745117457673516503123330476082114013429673053896991105286338604840473789897833358277381353200812330305598977442832663990270909084773163552162277831411833634910207734054998601336682194705905300935970350760837239896120663715060190809815663663519644184760071450078847403925075445282610365956524972191661511671174748634040508035919120603664021242829179181426904511072882380471133251429288950968108767903468393842797219783997542703254744500892791296931908627037109600393298615820821666560051660373122407670499937258797022402561472181008541244198591715474230509027636585111447461389759326845263208914422254027933547805952435935000616437614655638103128138367358758635351275347984987502642254092559690540016355181196420214671439201511341181450234733128049325641296259404547982512139983453085319700730981670848699312488376055714540113938998935021124826456542652050764342110168688220578622802820837878168737472507549873408146718867783503704470870715275664714365771003414587339093464076877381330304199278425811532259539990846582223690006464197243728484057065616089209753359915664813842283983275637307486633787008753973621914951133462266630718079856321625024307929046771395652274568505012680272967669685893230199841753610998452108781686700844315612337075677520738837411193450420149901342119779898029096625648852463247863517462077202463832522065971888695515145375337800457513565463558145891652567532767032355230829687059443462161525491813578358559407564055630935827201176014795615911663660336313231108365111908907646508797623208396033128974473455158450034957764187037072275080737574665897956689845907305347756404897316076320249946935007452401810291771753227947527888800080116951516915014479348883931206258014520214802524615085936266194005123338027606266204234546793644628005243236174843252288288303782773844955805658490918252666315257281794153018635886696873641236066596084826258093255255384691321088822966563105756315747462673747066416670766130276273555319054207751583963474688387341866679251696738530279958911948741394557447691823765441107797412974394298823289752127352448120174224367512146921223458586264057860915993344946993592579561617795467896720839845511148498786365772443797348755650432521028606321622124565953017733976497026910982784314715337177326580685064091117116038060220785247248199680526064180916587996410193140645667259975645688267584269508028852835243013388877208185221782390439794112374862343232752471643767896152033555800918693107006558935743245686473848075894084031818406393304867268255680423865828096418850576496850180084160353964973185624813932132512665481964393878222248918064979679960569701942811616028491829599543808724800323080114985712315002604864450900540773379658244489307328688146484686232401839511083322673592150939585733366541839758687649560015050656480740811539586890143110486221980418322783421637125883221257574195786989730159942575025580579714201024093482994800314686016561446736992868341222731173664139659992886485361233791229220544161345582750657906763141732400838507735089495103126829616324739327468181282317629535614090764406363558733205042117288647713531982888440677936527034283198900887518653584786711335499857705369717282833719990768704816893079060696867419065409121230642155692645289344188110591535221828200479439788322387943991630924426232676983228092716953831607656807245608791509968959481839831904330387769626319506790818001064765159928015575012837161516540382418508286660576316058290223674937719993928718358135852693181189061056969089879590724698401940274881632996615373664057192701920255006517671226757436413481041329816246862043710626519889364954940024865951769670337208394885080350465110957253971741751469256050333680533160234055557885801660603387781343596299638584550178169793948651691065016257439053195010760762202666808174128642020549766698921979396407480913898350272039109260939662575453437967854010827442939765663117340902623852979450557658256751395066230316183391194168405080593216885739753061975929843982294913817862907851227328846332584420522901584385315826439653020687576262204886601716713357711741602643718870147687519268104148568878838333234726257240789765280635685691058479258375426827271709314938132387789163425537948580043276010078009911208237965207329191597334922747004509799620286558833858772565494863183694528583059694569835691387051524923188348786048593793914737925089153726857742673021831042545268029428746908097212837443499937525344960685607233970005433164475499875459045354347218359495942061992666385667013635892304075920162365849614921000683036638672971386920560848947353738620252991644649850497203648101145938432714629140874474384342053045806534733726730654694635816366986717881393990562583230690184839565572903029483945169366426252131499869491000638009623359101746688481235003384026358189959700035103728100135282324400702091181025316038844078641698578263452011906450829904744281664268770850036895945843327799026613369458445206645696773506049248806277223311711431935391817144335796083327490279736007299494567875755340033022270517646913109860700170075385310790226636155584361988570633094169882130327339866808118088466594198880284957119415564648647344889495986170511658409934723888235964657022524014133647104487709739191113838192381258651033441508047196177938696480094579754263459581936089371711473093846466461813447707472177994045923443776552475996979798832673125919529209653416292275181898865471704634413947629586870386166702188587598995473129220418437065928292538277613346217171559559703412676347241228058725685193889031179622843716036768236680856732601006823887299008614734622076062914858850490480714205350036783842662791298525272773550926110308948173171615101309609123106414151891591391105489938433081707094350691231992510433513157142888262275444140476127982040788937091677347770688780183338858565398252488053813149312833999532066231721561024779970208579696581299258752041009238900516162980820483842154623750664553530612877788646434970522417473598090997763698749263891323609364080435788593841305041946253475633666564803789541332523001637988408010646239684465047818709336094097191244139324723343802775212813655823637116326232365759220014569485539619887686516385075614670940320868206977436101262035081174286594673777674487668012752063503316137549857243002979614169789206384294841835924600844563614913447821051660980363278506050783639838706978926209362462983320812303066187516582387815730488328318580550151776277940817344806955503175404327487151803938352730643494151472891810489334603988344780707073105863902669557556208146211741128266121686135764087636015430754555314087380643893091897381986131319244293055560866887307697633506436566401596227853343634542633785301741273009794434607019138719905085457782066828261547488101649421369183868896999764053802692745240487118429925658396327117019477042798539206455562451327088591471180436252464759792057438545742673355730115800707309008704204999093538544899390090256957456551190486458538733582332577927537865642223237418282337931099463439937980351960587560609020010780369185844448880273596139425775727877921047702627523558966461213693022672863136946306515952598618734215492787645049672854722303139189611456968078915004534861189355659527580503814315396489357044289870648186386070551322972639518046847620972265546286444882210923615165068364781128515090912342270819758312058604831254497482619643893040895854321539818233081516872252836497309715774661717211238630954981322381624377973715136244176872215216524236166101246291009424893468345969206580258514305808101992879299806600932575453215580587042219982789333103685665039112533360057248899305906130213668862642062361378686980174674404179652232349208576865614069998257543822432346118456995586960536418540177932331558422814293893226654834720171882008048703279294849575279875964511727804055856988214909436570118587203428568885450961584767274925944670324688761942108637904577945205068891590289909132430837086786566445974515066092425676555860100106957673284819157835697125430749433515107946666045768312514137338600270657644586539706354770539067880773063033005608212372862581825089279406231613530525786083926356968617747412035215906267029301230508337880920163880458383186533298330667693643785052668877484631242054132269904915384400710919114176168259802379469732395722424112721236118694917370521776598285237971998060619312603244967663152271028581063610292083149358694788933319197197680266444285936395209053648281435551537822153531533593411988195922202912620263297456027225780088172630721957462817587399402963654007500831884115333585219882702961475841688658131208045716918728948052123072655502993014420372876966469367497891341904119059911637489371750283111378620230283236903638699816142853858740404219482876611780659631749083388365158409950714325325408671037608751457701456557160283718697460192131194269649978953842846431277453502693036229603945099824871025986511557136682434003406958764508380782142421396777562881188192265114755970699144818660901418607392013210029687328014438852484572519151993863202802068587623239407978824907427970972819012408860071192676559877428831583231031029977286070937709401831446551772736404991590971215898881499197319423190301515349277641983418474695700518625611583918487559794593068842761164399422702672004935400872810231824373642615816871880942778527788326481651475733814637573857423586685022509642900726473351386105345469811540898004917145869859731660756292633595290564823381413183438073955916665617051043933424627058536987578570230086954362963027362485960474779247461234068339059370257081834023669262235140755432340052226188863898228923000236855344160045397747383439632394145961058829586800029368357383694739978203527217147898749199184987629281797423464804282895863076424434111692990086981238993515399818978871737453358087687953739308671575346214393343124533846262679646437704903192621307481852359808887353295809444929106934700009946431780067612045971727655923555548312364160179130007465255630328044182280523321962604256223316580922031138915908757694340309666519507810372296225495784198905999409501409461952100533049958948293743295737558974859527348331932648365402621771329045691749918608818202054314014855837392158303171817118473495044121303763986228787077772180857744886283942372565065811550312618426753025107997318102486682802391901308912835249424937718167120593929183300285041417475254951352447197640922302703784150291502889561831568934180464003968321888127427242767272408204569515484308117374052994252162535415445717700838881349055529746266495104135751325989039558455909014531557409104471600267033381209650833457683246616383610198067612363229812020396432960881699506855793215272640593867248548072204971328707638639643486898311623324729625532616504327441146374150350565327752836109668895337315124675174129947568005600824803393994268840023293612186170461541261170361362521462506729503088502744971424518918435487988336627612449026478555574431128812808805544879933714642279475695615048571652973148396565657385308050287302799678171688929065853741086681612863664439728919849854284761361769626423292140073570184917937935640725850445092557466098934381323523029066998666995813866804525171013910089089082946915054113106225011949930999762858676193118550613974665125342487539031330059214179752783741819981353461313479544718351445628410986800490980594603115027216179915287544891460751091329679018170000614388467628860582434144002770188243136084169283464908825514214508021119592261837453020318769688484998454035437097502496578190307534877463589243414400853153499079796423581969589238834713068522127734614554349736201598632248390785007732880492417971198844990214262126497638100246906179656954621670970855521013054088655908222221337856999097481268711107721404950585211450090723791098034645395201570480143898155171764498174988455091185417201191970657509843039655520230045797845738301291826326922004081590373385849854338093549627880170208286797286388967296471847966991600408886120190953950872571235251318638359993861747823007100393475622118934696999021762666355954604811153972599220780201468882395276506017328462302165328069074735525646205368473332330261305720786334786006266334687574182046630631733365966876060998585541513624185012559511787255068045754090103598193806492851824245494998841047269313926995292460999291701541772683908544969406185228813181669198035343668748160927309364937413767228356546228360300432820085855447735744495302291599469235206918334232725699526387378510410596846531286925521601576846707463184506974884088389798790730025983720575498499818448210781113402605736028869168869849172829098739617381147745730246139632129644855397949567735374146668079488086108806248629893750221040813714660479412860774396973147317149899679984800443003312334988012231215006903142517123330454043092613037886929574255584815733296612309459633003728745418111482129758336205227653389542244683377831777141841740750466796080021808296319517321137013296691666190694822246749792892706733676769991488565351073491450569245711656040077841226497006584734854481019709823421636536724864519577323711551468606890013031625892647085589093669099258331249554249953132797086564217382620182339860708365811105830311792613591793689269556861433515764821926445193297213287646395223150135866379505302930011653808982802127487011558849503916966359149235296166223505150357944399829137677195522073122031770546990889234697234247154474491191713107711211963616193954548179875494517070505319508654979989862779517557571918916996203927067621815238530777471291184294550084292302388182555176312390551441432953232392453628698355615520728922129764141450220640597731070397238085882052584056705499916797920656430991702052985734304088405246273214086102467550052184813522023147897924513417336165870390290687591506018124617111754896116835302794816099197945269769649301015693368813548563962678228545598818100849298927348040606787793098530426505578115086802976625580283884547832292316666860366443873442164158299589823280689871503175103116472544575302754732808450761606552105166839913583212617340958628622262684951383933185949297575590855683580435792793871687485323764315058211720019505630798683990880342324006562211332972936979851124003089758954020014476654135263045993338039447482864908869378253933153256241902200731373079365178603581569802943831692235279656710965271394507842548523996827609190801302358514693508954118753993259474691932960265409027112335825419137254391188966311030391487036747116025497641932554327326603931314165754804749406920287980440418246628922941128168622368907939793748443307918548115769420241716714499364451547413007435446860352486038258129676978324253777964347185164866887733076834497174572494265914229045132476265048960797720018917139575244304760853292634306953184244967740947377045334048275301558860839655212998045199610189105699953396011559367720501346960299116879940879574413650660144320461035709078193931335596263808056800738608711937606338688207678318544026843431849997169918917565847130386216652101002810584622289478397397425662197114958310387226287936786024242089449841410341775503260388618665784727444096222355650596299806272897018630134107031677376941859572670605367774161109967667702079646826064087941901414546656108660455981872354412288025776802869343749034157775690538134742739067188757595726593006113828486362108444599686277712050335749227859441812352061903446397442633051620057555345963754469720661310545289319924897939456485724028406085070488660777371910537972158714654482823789082050896212922415434928845936751744635276363636350647488168009404275033100820371310537360072030398025800354324563675054370008892291027932187584321788238545135609554554645486853271703943007467282144114590145026707252437467094875637972169182728196437051209757943458604584640309005655670211651138539752878173723935415889089948275466585239451500910451458366699827647535296179196075763649101440115797273348797740308605915560306260657803503009432129971388506038530522288593851408107785541593653666952515730306486931441435190139165398213995332682164035815307518813053286451874959874723942304675266623836465859979674585140914539929137778411259933878583380794160104584097599509482413905872811980529724929799503855349970409334290460417262242980473373527047004439375346155824245442513594897429816955868009329926030838252150139765644770645437155857138095363020372494221363818537613120166315153127873590746054277886752114391952760050313521546325454947632887379326007875631941918591034778324305746085995147518735940994255416453157448325559947802328033506349609234737950317097370817364242193044688810080658957432294347990764878385601008662504367054625318629455055235187966583665723095254779500877078968595684518424105211969258176362135115651603567177848053232062729880334207683403628395142643252523143329415805560018301660208094942091164813365055845644975298210095668603239658806840600724279040169049345452629183323757456455509847493472439606220045339134277090538854621050983359243842054171895176499138096792306602963753341026613581998813687482525011015249253053782597688013684743104999858685006089153171458265244667577839772557505267536489788032157208062419039252045705943669221742854454318201569597871047869169388497764485778977177771456060355005037639038568143548338551555189111954509705906176736082181288955252008612893255795023613223197562527018618580575267740325115688766800284499154911036981406569391998084017244544353295047436633618599084421156076262683302058356114303399222871512902355515772237496759896643674214264836891243940212202794733331916669515808918492705610684456700226007628235567892338826987291911140151153195949737284199324233275307159214024225681811179716934470315662243653078058800478799709585575867114875170494316345508476133606621873469228049963152198063243766048049276314694264710429987639124218657003341231683411820195975609979146955770040611912839341529712614231647382249691289009140330358471252540999909141092615354211105911815888359671365264442947850103822184287612234376652361698349329309233410031603483552127296311111997528726924980867895653929646291320675249182278181768876390133802565218825408726150362871923859489432167567209451291705148594331064210302090764849817331161695299772716234388957013282800643613113981600529270886972571225016025524189882038917254810675169419091587712651624424308356460977233545547392928341713930346870573237847154558002894342232408743020516163800568956879459818863645019807003640794882715923393774830571622923478258159094189495179413190265293967125590042246353203711256337901113052510179938497856536572657154411970161093974565193463946639454478045638796416076454098511914722754480339358313805621076134543283720731484033784329846909171178737889661568734992840441155102947080891251002675884824921550744054426183410398702002716192375959179310380837574337226401365818641739601641293433781850695627310499758444515055473202182956869896831771071688262316130704381750826585492212954282345654762682437023204714363720963438374798912270168622808879103806017781286453129501108504521030703632057256655585239084382119608402704587766629579563820356991453904999012644174979886938933042506783473061509491509713490613897138702259928719406641912980515694136967236960629586519958465012220194824323689564788868836244036802610652019457108555415957773622960344986951522018094314283342487683616139085721901940667019134271234060524231285491535527373596416784815671446623407589870428600302673390166775557075583835185425991918150089497110205695098679789802257092124422423679196646530400701044434661000284622324618731791361535626518051613048880639608908654671241099443168588364468186076101988744738142736346909055556772263568275432487181446051630386807206587222509002781194896708078904128550751723329841110824178155063864249567667872400878813855224455482617689398604433161086214868634228022372485890775921024335504387895018116974150402832393759766382808795490746424890216355618633535368415520408138175483816849652612439543512156175554524455099146388446511537305558015821577066515791931279430876893804726866767291652802421504738516168928881367013911334078302682451429125943382698758002511182854141265923858283595225290854245852764221353397219907309088565986201526817524719373273069312302092977602492139287117418342451833744876452968591960937450432472074746140218962607833748429803418181432590821397502134231789698276655070075464253029089783191353844961619023547748030727085831473879883230559795569939522394521628329405190779353150821926860196885836845690498138500420796108731235047792006617933244793094433377688572204926303218399703890588809608130228414923278105589144481047286184797733280834314598117639871658923153878901961380417618097420570031253493397169940858476709629228248045551137735789025352206739393688555580317070432737143071312827962727554588707116501451787277809811487062457784641613432111196643857943564077327976168805861648839925505810884758494839819778734254854900891221271498295920015424666013189439204432266017935840139410814825557498919916381436857433834325454314176935553468055695864241452020603802404511883591192628869813042699031786623437782159168921006476146162169649167553288870343195893201028443484880230702853638056424315525577078784030898075858284211252924143141765402922194429900288813965147436271250422769998046113403937218163484978995872122701885340973555615329712507416897877473699882595241608201184010904549808939521740762322600803150114461952228389585030305888595636733075976508043971567152182329615130373015275295527058578748977044085853609760590830465736830759398970756724103715094101067329374176450225584881465120772325982337409878319864318975352826466577759037212318338774054948617509216893273481482629298931495376172171433721029073410746333904053610929649648851696049429843104098367884951952184355688484910302602921489195325157521990130532278185148217691181644653130105108487076868034289211047956291404591184758390947788356393967114578628110514025451954717463876868192953096455918830187009365411599309059573940637103681714489403192690113501362209831227885899431989999496186289718784976931836697764788774318077110603956872291936298915297285015877671474841182644557777016037743946855847625662423390544079674085435596215602768490157986260237537396436619556389868678495004418877871683087196077853619270780537569138012937174003840648870189684885501771786943127052887942719539243930093541239982402551433115196742686047953415699111878529498461374604768728569674967297634800907291465206966778714291648276019089196196139051300491543322081235627869722893628118491248662071171679330120477586612387566668005627551361695665928519950068924063786221225998514814937832278388959773019727501701479390069446468315618286819504152133849206981656835854886810116013693636620589460388456785681089064727842358847114626754777092904314657764424908907545449154954825781179876831569899007460031963370521763916828411100621447760088434316450418072808022261476628970680139569544238770479862119529527114613033077606619285436512774488920853298531636442630075748829922929774339398308244898038104833632085351312438334390374812779554123287124587343879139283490087776717059294995281275032813498187269867779156289192330690385142523928221340161003322039725393784431549983536982965960402058409191545755142111287728463974911978174223020497970581285280966877971217950950372861573847903695965757874014739506451447492927699558783493566071952562786744124866221779501529279081001010516660271340060338812271625149774360997501049972452274260934310407586518435345495188958144179132891500386593519569406915633200657517873908206949220544152089436919915885242478877930681126644714726783244772857311728705433734061105083540247607630770791486398889515699602503022801185085254628061382952931969323957885004622910411853770933467592041004201899644334221809787305720738509857319869324820731412842792259617783251207457402976935306398447470686401197939255342787918273175964603075457606058784438090719425815755712984069773384241585797571457485535739797869454717462848983227332266041813375827342834503387832620748705598331436157129175372870766139564018624799738484076644104588431196900083768638702015595149789125482077039293388169348937967849258511761302510888469093585010860247261597639244134369083013537994453876139085179577260589466145550830290451485982324870680496865607042702540619630827830093582993168463944411566339743281351403962658490216869126497569513993201409712015847494903284607022831548088729492582219177931871804323822379807838610870968498900930770658071867686044315199557325238437374406889077869977699409471996194878100618293440933608292015733691070880307096559749805437501509003380584249254307092253430728937190426334906526589887915498826669343952817571336617080687213843080595272987959509805650466011493169180283908662018692797292615916259429576175836901461958443136510227950870985938494695287058244542653493216115978777247734801298569039066394774466574738179259711382539160406830012441102761013753647955715195668184342035573953609058061831143563391789133845728237462139408134085077086164591284687683871283625510715257812580866798156306296730944154015631754384061333131665327462654455796805938272881301563362815996047692929245247647161765885736902485071090337250836445853204765110696633269856955673097868749851009724284332523520913815871030979072568238237691864986030829786460486809403131771781732614580554232669310231451860572051971427632325292996299322102969955357062969492604324654098313374608954685199472442166063696691734900397870902842446460070271248821416051211502649739649541543131649284120495269780321480731832017452627845583746224942284794490362062402296994056337250453385216676753880335901151186567899173767242105282778489774296466286675995821505719252090960685107572560560390183515038378139075881768865365706758596743961808011226364632521387225290390158763532052922254042998970845272190435829590606378786607380888378203616516142289782329662682972120253519975053740852496027682496891614454191113917965455122516820105569443965967198881508634493674969472312334804210459366218623904713323868652762209866493990721967214143748885563241060368178331778128519009103074395186857836178637550286990756484445335111764390139140095881933786659511048756429114316425416337005255287080375805318790371655960825657769612966408776093177248538259189835151218252923470191850927952366118179512208296909369653043124574455781259357105306500818078716015390120485578337245425472710924850674601213190973154134798580841909327325954264975301876310278209036093776461315118863887418554436693972544682260157773936388334954923441134463260962992117170600235825088506539092780054432711063739538727307773484925815188770285556911204759966293054221957775921679952063264095935381833603498390541146890323607522352985435411533374793148399836160926167299057950496688707909366143833582889118923852617289720142007735494736182956630337332540348589342103018639762083140047895867913582489426612728375846556549984933778730535971114888595742793709344973353103495312767812639180648392853765626504457338581169260768719263876616184538419430743280586492661598914561998620127783607891083931070483179392027683121884203781255289049372600880575773673734102479814547840515084748263660681570400349234406149142793025454114652686992230876452921104351721613477081348745582720157879761143363988434893419595369814751087764715241111826292236456784844171788144251258127266814819366234774587290190808153506345682968634983764488316750705937729181344657860143211742398248720277896263836971328256963026347310668335179225631746963120533003118404498057856794274732468970016821103184114384465941928381993099531703825227125358443633319405432623217049345830205289801550647323660404542968593823124565685372587823444923555522707470914025716704265950302480171202648951445558026921800726477535422992680279029413516140386573039654583621712197695147022429843170761585700724593648079155646793086847544655139487139121619147272791390129438673426389488316240031031601580252433716294203765099185527549696921705684502978288661828626071257191060442185127168707584848861368837464584938824606126211127377924359024115285275052044460552946486493466946474278901532314490278439705357114542456138653729336742683518702533284213467168579431662563061050128229698662625613499984129492785084326653882384071669127508349800494921723906887276763290780290833191068141816701577133186339495352261329467836707221973980193965613077643210465320117424107211924136169726716407415729736291236501569258261418730546194735976856708318679887939428079361654798793650866438715998156453714636818631705973434114884331579848516602885505102583610934696612760624585618103009512965285741370980449488478571332199254055596544820109294351881383376578288016326278804365328895667955749721299403355763142809360444128409778083458352799130990243232433503176505028156449133177446950238175468029320391411927373260046175909209661807270039329009984103069939198353570965657596910460522939181263942932801823634024146457373870753522959970311228611202579269136230708661669046961019374559820969227954953129213307304711911073362304550735872585363426328834223775320906495997673594545163783518327714350450004407842863531762147348531382462095903778697097285102647357862832577129963315478965026136819747486979660219545162157637201091230028321785928050377171327236358584621934912039217115992074644732702198137498145318958507930775136228920351349076649824823385960859380604818670693996152887651896263448703086308547741246986241097442756761304168605227426727418721053272121284593900377904236481252039903038696271011174963776936618730816710418827814210893443706891527951369264937220059590309978557498929752622650317535293640926014571266945365133493980194146081061531023087530540817915444416904241740359908172726408654287204842982149601176264453546141318756849314474186669848388849554115878845630406321228874243051225705122768311315838311351555201998471224259852690454517578019078863223485942470061544464620470131074943733353443813889720414542552740449197231726632273537662263464829759472773338594720389013542073570753682556155464644555403790759099022153884271827605770069486961805439289532219961462107257172401880246422121049154159774306491338325309292497694500141737728769906175495529568016778305590049735246222811400122361107383570128812998269307810848315371082148760704032770069421707989716317750079203263383629194696905744961614294118765498881924972249401393750463470240512571156826267575378170883889907178750826940388930132047693677812493812856481796175135569466002485458640100775704398056456663522278751122496340926173228102605753348604367027406844400154750012463673701180024658956450121611874207045717782574793234964035182103379619506243866600254032301780333276634590671143605433133659579593099147902942423264907208037089515324182480046725249354859136890604370106295417625406288943518944635622674582781156991724036354889096549949899715335800273927387104019646446384162676135465411002316437106797520865578024942828243760212955035956579219453982991873771422239705397867105122769229643820840400013287204154869554605111442238472991291537491114091722108010401758771339873393817556478798468238441473197529488481279656859428341138763435568029457483579920530320393692435758946421677693530537336149273940748894366403697266281519968010340282023656217020451283633257750147120665827566569789637741439576408426048641003330108655557898553035687652829015508347303378057691510365461157761075912668981036021922569633496036678448519751632756569229819165131707875951144534034055833443503175346963781118569717797166779050385741954400054843873511146248404776658576546076751994328674077615281970132934833301133863555158619962366990940376215923274277061289149282698520675952494592322995542469444129627368014364409585637689637057635660513984969677593048456607227278524332616187426968019409946387425757740165951866029925227735947756092078398445924899056864021590536548989851729568734528815684323468634648631054799822213081901084833232212541679468106303926405497215177353796247127979303902580040445968115871979245641325280274399702642950420324050731627330208290103079005173486825347230653522826649472834974198575160214730995545283252151447486090652593912105207389115703671785178887849283164885586632313750978663053075612634555595507746914568918090479526554463759548560189618817052808563764310742636804354684256017812377877191239531397372270760137372847651807566584308399650359008921996732393287018558892803334279935635009471482439041353899185472025918112097915599620226191567157289202857832800636851720757537367960080774794384280096465315880741943225595854669501865331987579936792209756685917090713049460350656960653213126032419895788718827326258681372835251836435647484134559830860055702637192618508792211076628697803115835459828610938453224073807834457204502721797867335588895465947359750829876546229428807294334139321965055549971335452762686685009854514942685381867663520522230229807461569328163837402957239620076426368133939737450387742311998560217382301844258327357621879953489066445954319986145760722702666536453944539153023212715688101319543458521679838653108513604617589914949216115516907138218188466224334224407844201229579731884174368204545331911765795173197046960665436638389420849501373669077791137409263230996264425293187537292692338673453426546469851501621533130716158069012649729205159202258248761274777084814066289749720463130970397867249767095584311906041887769791459911744197918308870410701712609478261390163324339371163928726717920630371177837737499903324621639797736263218541570500414610966423084356712662291622178228339294776584898262963336336536250425402165362571470661347547995178475431336895361743176939712115080597249874850519137541753929703794618579269754203397199230224272822536770281261487219473052360305964220314822928025851006714416266867868201492029467742353633116959904206406586902596121713226420192047561566363211908246329667021360286763880361209026652222790007907710461377265514766242139759501968991607496398748827451184764634878029581697027935131394373741821119871907530389827342711351820227214280726389549580019302444334345824348686606390299514471226858853725977925577560416280337814088376049411420252788828593768633566012825223446944239412423740767142685970364385965233301824779288634246443440152681550578970098290358151600596108963931143758060951887914602726905896788158759319327313422536750646758763916070329439466304409543282424741272384671552859538358114922532572685071525718421304541468937205268945063623458449470545291267336653188026357240928628220648781435785782787478450181148979091092585974402625922112055736381792159084169329740111538941871145995653197692167801016646716982306467234873253938113069648882033020608695006434638931426429505020464252384878082391491711997554615574021602202855285904270836798301921109087436686404575649409976913084414022989010945017078321408177308182043440633750455210219636965766790466879794656218791202878467058520403815209973517914248126988536809740576859080387500149714821259044849838780422760093257348480961920473005590661554323233446411109001763624530404741277799020696714057985153213184251891518978641457920151448612343286238029105948213659015147812963161929886052127483475987118226615978422370579215462085273467001276386312230804335725824334663444531275348822380810026152082024290170645287043512712241086581138484055943760105419094782673747641184545711014751576978699039999763381432667718154782075837396564024201860549864860310252789680592711928051416620832858678046517521405394762698042376079138116524642062230413207936957060904538482711847370904771064489356248959124261650386104176941223496716980043067875046905982940928178738334125262340370299152126834019303473104978799473667104818012444585772466182041081362575288152347715979206074880480490352100436936376455209785566977940040108373077290397949406478756131563852185546809598099003338928169682215374091648956825654218555151292150164729653361976520400307183332457820314264431182186933698998112087811459056545637499328080383889720403287852274705747238196029572241695711936438603574493235995542439441929591123995254992939686101689438703440626790881694457666410243000703915623521764699078624310191125299773353889852789791572770484790797874801948701979406123826179337017211730546966072652840956850778483024255890392474822027214003239048382568571946989308164207760185463445050120174965100790559997338663480572205812803946657888264629182110641772291338893192766250695320497913041259475803196079907072583160800012121080555313222179685299336815652855870171017319271124445290435415356676537820481550179287192131758495442999612056324217315104050021276489804261124601426227696035599092742975144343386889765770721072518836604583829709336575293007371079701684996745921421958308048179718130052245833051387586206626893344842446747435012911957790864551073263926259478093736362049267724967439339612689673392344910310934874132152620332991767325760695275312370489026359663793563287154731414260120088615430503794483626671759998034745616512525090864574618479834699268982661005251206134365080278506895985408332692161700549971179730777137262397533462225190701953506597594776617248088520481566993213834684431623952872671186222854293768830119869946459275310658430724172942311879093352900304764994240258060671376956478578948341415263368593931162591235375624183879290445356335500301904381869741137407282336283182928009647635908910949062607211929314003242397186368454119906794689107522426667574429474607207655045739302431292139405754240743652632513774764387028400485273182073771007210295924504601425576396769387136256549060287763862714084943315126967207764790575357497047702029525280103371585660967270020551158938873379600816181253642837082218122399654429032339666888033710294924333910874514775751601120781411995549380965870247478659346854033771213426977569961758604409545501906390018797779570479940080918813374012397201217614783297428067787145999781716553808133139282243346788465452017542388562828307384002215786842099435374591159385292966501932252358969841745716295690871938965093359316228006277012841614480736681613016645995272884122505746219363227486945255565894147013721169595895999832372851642754996582209648248545104955639797106789706112775178861370354337608151608690491349438373613295905995666448574467904791143457735358158162176756484985813388038881636094937916575835154329364728763012879302067613284898914102899035984919364051486791588218883924238106124058660619056146544372481811411146828664346931397263452733621887462485378846123639607570792750941715126788919090441599853559186216453360930983357707811624684591711113605645400969612055052251058518479471502142079460075625831262932330574366167465108991499332998493149860959812645942002591079996574619967214224018260988393829430893310391288358420554594744734883665825382809117917478065248429881358609641595484469174734383242732864920963701932554633582603093201869372597696546219929494831440061047646311446494210183706368753115178969258159618800285888076651382977947954449334780899909176576392797593332065279472636982810375855177557923343179555675142705852257359285942524297366330543989480938250272754048715690759253607454478255383047307784160607131506884385726905187079522427014819590590011786465631106159259468173835302891760911274360620755361022045927632159650934885424093294844912748805257009882934261028863335380821893520869777531500884771228974075752814275580743137253578947539249267497712365914575809746460505318771886273967174693615255783906843618861970742082083108998547704360272432966069770853553827237081961189240416745002113591199614571817084355801627478963727750547763011091321741275168177701495561258329133903436482970356284641353398721674396256453837763619923095352303677296499104820922149979596315696579664187721945985497047501734976177352413734302120157167139109382052983494499952695785451803675934352635804731327620320228257937987652808871813667122890567499598960682421653104282809664369820759965361916357282739969705325140781704268060550675530285276822796607895902857785692621862345609282611963766420679767597540806878285668402340849273343437793518864179833308170786790720125810014155513316725732363248165907099500566410853514887906804705194359194184275141117601689928697895279967811200405720008450625864550105060680915368607760277185812279130297966304369958814757113582970636443199768495101656175659140014625098828796480498474900568771829230318787958702102588895926009504617403479165689731263816417526025530228262193370262132085506571764204593599855158845565034115871993929848002916654410669924840395496903719397600534238342750097323761918043081984776179773952458608209752163766163613578716977071529823511687414723740496921007971497690649876168861239054153801665606037269481723582570228525270094680491107767598374571426702914404217906666134370319551973595146440355652049164577638408497296323576933306536157827747234033011799170837853004622454991479978212448301036295195414053844102260458962030016894308694296978897610223665105144563247711706014248328449431766687698680973501207906923034202242221587542444075928548481676836262939181025978999514891792418154856013336646028940266734266310497937963087539491321650808605027980452864422580221203284321638679410574709676055826078050174689160519351552321963953276858260645910791895499030485673230422838746284478821613444019926639694582971771131783349937801282791248698064320989376830392274340730824557446733286594855459010881365842425123034770903449933131215183249134814157392963577363429094499621257023350346968569312465097430123317173836845392466281481135285582541632717525034077603212389929007337194783422390501984230207736949110356793698058556730325918450954868114891995098699549924525817731520912328213752485535900003828420897722436237897554940742283518063715444637398555980341610697631301589882218017273843347652828150343756850542568077267018173763596308178474053024177714192236566095326170854002752065028100514823184776515998085353252159502826939926967862925433986630694632881892303889000831355941995932772941499219363157416522307100376384700012326333406117079637990873277555637258145738188578237223873310961023539611846910328285028190459709753324953474297549896636936915959172204444834234393484069327447586689790390656293357474441726604717535774041275797978214008160511309374893360936715138112010652150924170047925580721060378109508965551363919373530032156384438950150571804221596525090124881329032780154184785599528633516272791723671211296240920119945772893478955569193145186914970423865126163911973477344889170217925553876163794176583524063490192873931452439676669288029427216025571373755530735393350326739409796280539694932109569372919053424810745608170572978567536080617144191864582981711938654812613158457429658015785155990671817700529423445146385009077501228199593630096357846288449665867568520168887385222988014576839284205719765774466664968288249653084615537324437789838004558198548921973950459688871099422160319476835003529662538123755923620581037828888536289206646046609547029520486362983823593880281491986013060438124239228483899054956038852613066191537965092465407698965152660960034192790896125056764792263452472859904036141231251029921753643224069455959088121930636835331320767547159837384031266750896310052002967616863337612267218848511807770517747280018194283352188073032582467595066826015184895133588090700640300169449229204957751336335459027435936450859927436048069234672122265451476023030763193145416388106925393392434116605168287963535900221468222287946781555949659829853985560957282495873386991486194811815529509237003031563753775326570248569462287852186806989657808368544628611556647876791578098154401984801376723839062719866901749568077149302171652990373788858288893449944179018843130040562378337657179358994446228367559825539216888945446311041473243281042772184916094632747133511197515520976722841708023330917459728894625056837565004981104480814173986154237432883359504217370862572500939811627937912981338666285167036505332065979158633465170397945296551663522994489617848744200055910619120357800053948918885605608875909049171662849882050631410693513545960985387854080509751389760500676871516894031605098986395524280277243860279166449286276988052676983273129603911578030402942778893796590830163464721470824855622918730580758087024847269856798103646411196281241125222544655772045112053443161041226152867982005653764414474071106608875641278722972823700941856561885257760806636819519883944117305449649053372148263378667355395741306384401797099828090019613380854086736359973301188791176159828444398160044200084825395262015040232724620228501078914517164136664555920344542423992426646928393386166344000414374163821266168032453274393191466402805044657879844031692990362953888385209809766570696683760155943266383898907216249604454806426918565614200111676048253057356990052240553087619032783920104289622359028174368510148887229387874349256883391478962570947588678640688954254186817178881108727163356068521291910433629148579365930258537320253015660101569915654077845906882676135442178400869490093547833852265341954759401331923053234512368954888774980209980278370052371007539198662968691922438001910793558385348801039069594772776990292709022647368362928848995285204780766482607661969671247270577494807546263509156095922239426066645320766929086205695042372467844165562686249902291205698043887775849078981329984149768107570609967174017295720703110122061116414305038355864608236417800963448424200126776990179684826734019132564195203560864575401383537963133753074128767965575654395626675972607856650812144454192223993290412042856177425397691186234839385970653477340120484877551928516766284601954644235002225631558941562739062326849262942949665102416790258619794690438892781180326541703662870168197921688364818378404310490740332374429841884884514883633393356969846703678222209611092820828803485940426968391507357649971907574863882542055136851388388311908187085745614193016027075077710462862521184725752961579849646602280112891891840526706742915736619127988210407192962230220042172814140310835643271106342445134133998228784771547241694439761063496903874941279987509777355251852313394925597157780236604439393016036640911772239907390162733926811337241295390119316533399286108885368369203540203128112351322378708529990465975456118445884913894381787038053795256318512299516270256863427107763736473456404907509006474537146662044336910687962936482937460460377332501227010911242189266324397311363623776986977975916847220538231333396740115472221323061058487828673824429668406342179225914623442850645457870902811108033094851005062319015721992686574943893587456195391726279827062021058426345156751617243263589491496345993916916576164729370432595194892500546210982861453264061768794744947436422133944254065557055076237098455048558801742014118080218818218258314667723734062701617766216356733520473158680767683241956443959035749511292604728795822616539499856107858640993308728195311513803330526212641225747492134091397407073576447725827441566385428524787747758167331242913898627146423256487530386317498594853638175510507314343895628593690978980310271022173896710835705386570189016713526362882871852859774378306769199729914717654976197419610432361543765740429325599852550793857503551215447734713811005245288303694393779505464601773595669956858269243799022160474653881727227909253929267554186833337618053124197265930829268604361482625136796263498210998221005866836962438826450566973438787835469149293206574297708071841006550640068856183300053361928062085492509127161886474227952751425025992064429084172770076181592180559583421869694243023612571041938087086864038457317452747633295105354691738120382016047872163192033366567988917133871343196428279103303597096099851968908908124867779474212524642972709606023028943563120977196399110940486368420664530950915110164273807965799914001951969630169790490268133453068106980758395070523243030207684668268818141023253410651150889435970097758735345676501446110063754997952672047598064749334508904658672012988700030021675999445869683994418005646289970324309322281679615598934634868075520162141071757234531744011054000728772355802359368176893160409435874279446334003499247835744840350381565963120273716638602338661857145334360964647255001634150247823311768170714776072512516095640951899057866127993967992523608636372687186578680118645982045744073733057286047366760811884228145995210073516249468702643621320020386859441694350556541550068706852556259345323599135744567314635796495917243782346828330305220589826954476077187893398458154850785781444915339958318412265161438456529289700704179307505932452260432340529398099648065163793058583030055308410588740423825073398995041473558987611365709702009877989747875414708072267393376809572652026824552249672047184472222612805725026893915191280969782792837298839345066054482616895945763090750268390868611449951333947091951668445715486285715927858660905394293483178847817183527408518668046374159221096314643369417314368528138905935534533286903741004053792893125486383262274813466258687772692568282831277024231163194236334121606394323279847748812406689763560755885314785103223051753990525200369445091617339318325582521327818742799949661217033892549010065643919575811428349594632616081947003434396966755465320568518064835535219849897491123605274869210670601071942410212559425540236199036042690927132205507939946751072414581947152832681899451524156236136724456476115246355340082734158775417946100498109082100781467894559439677014462702904784301002373356962068173916409841971294695264956023238596689551712279979625449855157318219458492730445726032522287206633967430722788303709244943667907012343888795199836548017806944989993055602834104484728445032751797418943393700391318251972828658282554791332847626454659933923690997397781073612783289628730027955817391575939756052521130727109086588558668496222973947272634109544742650450818083890578007519193260694518603163614831856796346494249627885487373228075974988242433175015343581393690718468028275125731999930976059616201687440231491468048317337802219729005520881351958327643574168011027386960450167116887553512262670188141511080016215629977158225680937853749482613660432644203889752951454212764229107806068405772621526753036780740675863970218840639569195145259525564396757737938225081581512861068944592217777776939428739848584021840655545606954784729122137989010084400810766255879860605748730313396139080661358888995858527446999887671943607361392524556461718447899777488537321875101560242530300341440220571310344758665593750543375299617949379704091024957521945739045435194989188837034817456637521998842025970417393910870631916291133565109300582520996813108999787478904780362371708832205736591847914349861889910210355042579304572211343165901996608822178346041338613731290486338034406781729927025754088703686614488390309899918943733453871589129485782154364718380354242421409847626157561499143226033222219683120511532419947774850738414741253054881822381053392346209620956983854242411949852081557070426182247137367854253531634352551403828758919981941660902929046706574380796040847810575425706069828178075853862712229198989509906757817997625716039526460917380174649451945417255303117108527651063761381115042944501750233680448773755709797517450061768085060281735008315566988690405994068476808402174291107196803057845207712745748313633712922944524263423122205197660361050695001150331131052461381912481088174309992709313926394767434958985751275612807168240699647181766999140901732372239441880666895318248674019443339777921820089722161433160971949859176814160785113760013625798372841433942079805088330378548576974411905741132136639985113791394856593808990756028477666036166315584118610536232104138184716438942181765308375481909322640480694636820037720498734479418348138134562211538813295153528262799505576962705304249358039976661104583600556590626892579377468076208121504624755518227851928435125221785276994385894287228641109348131998373070342932951085220795769502484813081150914348523750676823889850750865808487051608199210463726266494551568145654655365147869347852043892345823060187252170119141175780836186609828361044967608003746538473227370897679493526058885804746161585414032453020847644382784516275298373652609384689587156943650007466708001332695601576916200969560751894450303452097842929307838537305600471338272489937282261069639022862771168358067424149982704972268651547060924582855755883214515078628603943105161039639948953160907115344317727156706408866004265301921775378629399662554001311505325642455807351672890932953444736750801939598750092728456976426587289458645099702874524292559785696469220984509708118711124885554928211862326447408236876516370063679131818656895940046326856592359788493610110954855006729403649003264398668900796598997896055660913474198107887591900691484441248749817826125168350882467816553625326288905586009363676723524403496720903156670987654887472396068312307941209770532656362866218650889445407885063176389468086444582073171507905490158003890265100116542115910276115663168183520435780882225636429105169619170734641906095625535315854085556869011911518050046254379083128559066591977021123283176899731838724778651718396916093879302761546752664271698534191509801391666376599248055071962496362786568822414720296536189371378791831620493890853025321168601304528940688994311320275661734806203311299198704817552021601774665296770669942394240660675138410939996573684621658330674725216011119383446004851973457586895119653203500564016800693786022383926164133361079154956210803804516298695781028776746814023935414024961279418686147631766425189212954811282882232186517952004479637178391226687717802806003288426355943588831034920935576023940623806043649119184233430361483786604144790557892276209306517169344814817311680731080841157543697261622065395258310102900303718449736773630138159965714777477139181146260689271259751176849711243188716131459795394062373503186382039116341720461904314519596413308100237070731006350610495405405684294197108077861631510294937362096564331247144485681968325399110641410148036546971798587332288637267696459521444635179037902730776064006836996870152836749470764446079770258081590451176312436317962210738691221985473036976777071361092607141340974020167095068449765809105879450068080389419550413048861521454600345165703823759803749099323284231767826992182990478201156808237747411642405890669034574015603440617212153972351832571721474032017733899440030855316432418381081009376467076767151818537320419829956004297700745612207118511377754894503482305236631898373049398360891045528941367156896543137662453730514488435387011170648631380956691142742286305696674904010271514350726655579023563242776323738790080773821471453588500544691812479890603820432673094500022565780104767781698830769935206342075565883010154694529461962293294103829557183259861796978979463998751339063302252429207285527688959370088439729045703404410737647217300302279615772621723721708896885696479052012389618991150334471406699070970933366071149861194962119747185326149597927085773004641029367478876762232314664400307333062023821980945009278315364725145845042127810608552451354466601062905754519945374449883686993123859734121287770922345213770998271704248183480699971862183148767416705049671235617593143131222516285509645424715073773346090572310385051941451885327160456188077119482346534980896128290857265180605794286952830236122975132642626805426488926053661965277416500343220390519458652019895546264312980252281498684551724830510590296906799488156885029540890337195036393591968277076507501042829845764228277838094677990455534110502047138237323785108920931186619197948609887338242051857829454372054835471914707849876419353943986290167432353742215504057597282855102968403153879099523497058074638234675693749669368123636136999665433600105482391843446668909932108275341998545445332732420366109668426176752025024188998368990675361860359952775403826550601599973021843329185278110344274302224510276379211917315995136136816779067647449471419529009925768781919697526005107089471467084924202290838833336131407553587623058796004917395703186375545840293002007614427400162976578062353557077681504314235063641522332162509011716295815224731153858440120920408599600901674499874302161611279245991353287408426297063437952330937589833857918183832393482252979079304555227155905470038513135869288876774326360416496429704249541881072451690033831903277189308978303052152792208908349461395663758998979257470520403373801773805245090000598451228183519615504072769235960060566760291311887938804884723363989648978046409395148644203764452484188961867216672888464995259372162817565291534786107973278794937218966319243231794386235414614743621797893618033096303059500756057333066323033353850903794834406824262771886449443515511082227271718055152344698249438721224616817076172928618690777901540330133959742090743590590006167157565774101233105008440330185215446944739002241322188464109934463277388931580156283993855751116267657363923368413342024612029347356262096000493396187078493894906947789226347047731245487820269984023630972120058547386000654899000571201014812122807380686320492135619004876597399386220510577806064465499978780739644672136543307686851443608448387531958088637942869545175284759766335427200358375114222042933999772673066888409283204727796911964277786727756204099421300287768328440610289148697515294854067064208990506348666644198430769807631233499548817500356751963434164603594671114280348651565243092628058611781963534885784888122043643268361761624496193735977953434708421305095765006378409568900902303748060907489833881651615942833415153806455498273873981237390801326644943022445751416352355806142590641049436880193927874109088931488658236711894722803805148181205427326270707806116410543475659443022231740573016928348179448929746595495114160294340484357343712708478021270655647750999114919363479018788645992198500355900197527940160170324526357481673963883705972320911305450644912667940537531405713258578279919698602614823795783509244008437597445558991559971428758883486019320755284893823248488373798932624480388045054993014611318717286949166979735421453143967768446111808266789909850113270491848761792666863552199486890855090771435107960443539150027907339006505036110251897299918883463944113571809952045299705091473212860678681555266499078761441264242622783019466501515661164718298940377064839225718093844863172342607049853744219251274539839523832067531177434212485130409913923505879890480343377056917901027574308171122401794917792168387553016449179929411754295189869611917139251804721493143339564105642829284092761307185867231329635658145737800924615476548844369302140452096559064158658310814601428985765059703869859721484516269506190636286471522944832140186019471199401267835050448130168087027463886544516262176900323165184861683710815587693790250273566317075209584141122168755811887193015583276266956879487297765587253522898125087892073665690970888031882190818506580817462227191292836723263508293398750265984158270300451810114819215258425463583676505960339690795915170254301080946475102119934164836820520452391175856242820976152110910298273352333867763927377732922492904569339091590629747731632417173454303052282711845386873550504193322366236502195117626857408578800426372403349809933004127390953018976149285965194753416163893750971616283144744321016638713811336004020334730829600854729403754608162098252078731867164981716203051649621233752384490457038433870918882723320966296483099893388851958532484686142470204278070181331296274977935215688137196290987439365693202059469708523130443771339808607923477465399361194436500765246042527595030057964960556514150424494939096492934526182950336959718326394637074793754224683898046075608739161614124601057330744209550767726849613636229264116984185935213978390792532425717545727367674825883958381630482529947948705835281014071571069976878728538457559280263857348556841439670457738667108106890265743924806688677499717915880225523285161827799900505273339917137584695745831088856968626758617017511657618683554332952829266545409633598491988229225524721396466682270493704422114123514997814525466838618688510633718467850967537405179632380656798103596740906461675006803600433314951839421951776487163927613525995975387855026545408088604342719444542171565270760904838692150298519437052054478248331813703839401992535602541297916713923752546031484987754064313298969760070652853028108413764497265602526997293165741748044889023764895286224985806402382920520283827330292293657784428259761372047169346852292385734639789005490838694492426049465688467134337010639867746956496327958412453339856438247942578191412678188871963217989702694353368608457067173078728079582384409845748781195884799128140711325752514643589175566438661667834639881915892475764231930475234437588138609667310517326126796065770436871800285063759592997269253156754809293399774114607375154108260775735492710577427002784646148557721269600418401902732578311204185920312607428738104611130065927959252687287516227435588427407574077504940062309669715716501087375167216097472770207209944017378745295903316098882367693542040081257474528990925510643043149232951102518905833979861134764037443542361619018967376509913005831707897492475069919332728286298787476762293875271656679891472342230338779283280935928519518212663741540894950947350815644091388883308897978904240268102407961197347576873696821168765644993850613095075153052900794724662735847211646763015439750958518519635640886610231845552183425130634651053443674036747290303969540641524715848470531130798270577464779282045838105733507447591274549505831883422019738165387943972753415055013417048488906971293448191069395340785390544519917347495085129083872087333315577600945325528031256259983962245398265374911246548715133161128266266901918734205531886054682052661172430638068092024437372262462596541431344635312265509046628203995466803557231225106261184420257249153160196275606965204755508002951591593082776295859678783777354533818347385643306179245337440661144335859531008518627546431477862716804018222549781622705019548808981919644662375908072825909492638018391751158858739830459513179536847270549557141047335893256723712112545710458905208859147859670901515221818469456821913728001142494764254633276780144310501954602245118360964046457480971034594758217602982514392879352349927114009420677569057463476430576217079056405020302203069420938092745585667661789989878174788545169043405595364237255454953361146798217306529904618879576427353909898541158282569239767243385171152503120472935799406621428444243462228201224363310706852436821425439273302933306734078483877824731181534205257630919596396827115053537424834859991171591271614258536998373937559970021201912729044626893301429205641141401850562249755019159991685251957613439642190401472615840687946876311978865303576310274693922299896485858035065711111826280877223300078594069830432760168466931488443175789128561175557580596737159849310300488431179165355095946174952366718164836124169918858919193764065372111410210150094729108212657736292062019263555261224950140799222074117081888574678211120672911663455734269953995332770476255453594956319155140331390504240113990769780007486301539171562911222994504883633351088411647936351844183862578771474309105361479300299264008763298618811903964510900623773486238738588885255121985439244926059672593903722571967691566217587774367005520793173819042321131404208692932109673566603292060781143974463102333043204578790571250449673556023770189278775616410770460988212660565925049700906598900411327289746534305728154039493076398573984873071749532643147879636451447857031739973328134615872350166602959433805068542625279205277444916754180334577095960385659054668373503707435925686387085101648941931964796244824180559490591956855325513912725865262141755185048041842239629692291690316768636304614398939143830703489541834825000801793851532425223020796486531878469025815078905030516081236962797520807229673845155305995406823205674603399348689486600246508811682304168474378573078491577046150136870893804189316355727042620752190055576748619285356753312103115966308883401397417006553824322078648832061581079019699478397623032904485710883327269227406556323132516898385880910243733315536610910309877903261534048143475467540966439750710769156325187616563152190579134158556457723471304911802279548670474135381182752686778208564053717745855935784990959289876787813483946497360643776424759639385815279317409867855988447948664850378590387138834874943810471333553904376028219581136643848188289353132836980999697714157471313104905503569466920868487547002095795003918008053003171906398300470059944945038213474127380186242736392362511319771970780588745233731669788432920244643647797386058361712624570982137560249124743265034855426561009018491875346122749517078810035574673648196372295418464134905858547627008301760265364446048872746366475068509667265053090058601522280128580991706649993383100212535431058268401091207161841843957229906570243181754618853177515505564480586996722705885686517983784048803138574170768259265760633194703041798347118953427660995949801006958293029478751027998598927070143853981821322635839091858168966970331866993010896316825144701037029210018724751546995714669279431754266108850145313311474770076234024813489580320149934364748191088214172622302339922753406261263376266405198162842597691064948261982438537080649752691857642806514797076421831187558880166656444745298806675420283487498094586584726268210187693110833451416711167693348984148095250914469286257642641701589923007957434131440791999182397440421561500364646491474253910783394119318945907884200755770426588491781827845178688335773779162387371484945131250937220635034900454809299796564914915752610604310502959023006007527305921339050734907773560898093973895255354103626203683845752689004088512378245774913305209267072825679589219057633339641003153087334460461890976542599053324971813133608190034553421772792730746459477523971103104089310690744392817802467210262049736984192415178887011876173681755971498135058937870639110184501804174710512430121456951815996089571234902553452349848844725974505060806707579876640536325673755878058778305640497561862195896219589951117763212146084713431065013799306912273004848946561432235560649764790115352084992106146941399396514916413641026459580949578006139766227373020204213212689313885360615919650184664048844226906038220935754531748198119098019894587091300283095702150737450098691699002015833498903630833988867784003979782806603516663944762387464134353924423237926152761187676080354547316025607003573642236553879408196051391094620320788191893784086983928530969405212630664720977526572072041090568290580984693120479982573250772781571265080536547315509161320642221804298284641512531816194868532410049322998982345626275005323084473428705514862961002702726536797666665811183114643436257928329080754868753554163642990838984021678504207613516935726932175680193618503790760563166994838499384027342655311567104946728245225491470211185456352729198461361829511644448609937569556153716350845986465976739666316629730517774526720837520963720724843520114927964473408322564256993143832433366547624534151198660925447990607984270084237018790493545504079576169678364553635157093701116410880457236770916569871700743126658226454104239251654818425672279448612846652333185945917629862658176969249280366018344163483577178615589560869987518440185487474162885881220064651649111162770338053083685151003395066190083896018506583212163327292823169080435284781114429575459053674546106671458890997661406115636763742973208936214670655487273792074189252498868772857301067050154846738224046299258945880378349580091596852663406749934742465534129663590046622192642772665277657352867357250180529761034618424625152413573660623275715582182618803329464302409084547555115352226003101911551643748212902433735342682431376246264596426409959558328748121427025685625214181857977337276635759751048811660007452599718784303830369907018353063301610825908261732803508120219583557268438122784316029055841497359336166308820822946283631917838747303091562285885510357943461478246905418061678424116096489968822334025599699827260157447207651434466381046482641541851869287186593912968548575514620028395611996684595080727595376876682348191307775252579770189113210007695474418829616633561945809415163399740323141726616218838072610287875261375428504289642666803445743909123272315402591466223357691812719639796876930358975126229072016911589440956973234731240339219023079894508167730347471517770244088824500229615959818072709205150844212155419423664231587001319039395042352157798024613435971482694680543503025167215224219223254133902188047747275197847980798618084619243434498800071930193136753076792763132187498630110326599890067733447941457064014697047531764226461646296605405693236781519028694638225191685936999794775356131459904356798953297955483495843555283344101182509422548395039854436850719239994893547146853638509356693142014960459619289082415807828522063214455816126036230552130217247670738072214419144304339716101381607245136819060546855449737246776341782699622455409315272756662151319670342436409387997363636422877486888501291544763049467940818846259567046578803790041700991456103545137904231496746391261068696060882974949546207673035137365545030346404844915814000158196051041771702167807728907418160978016763504030579602629809436118960273652275723023305315817997767227689833673096639790084728338376200245615283152812259589814522489577370178711192337957665420753843545725492944141593654228779243232358640588423239873249757251473445907638802740297342411358465507362224936076544061025583266319856496266346162338967736057492632847631804364316888944569830799858774660162774916939730523365579362327810413861103363737779343939393181355912578296722112231484472167033185230115393930425473449154346241544532502770068705878522472575357624093897832387572711548961200164544608570303639455686005602515111565328206314431816618868955428927266872982560106016025226562870074718883338066273410371641167956528307313671121303648046204646396673932822643860904144780179608125235583010469210032491753311937212006728516086483833597455763579283969408370280582310374451260017987060249440786581270102706327517932198363498057423909668232392832721546722190438614958759231941789035151740367121288046165459326585846416758189461342843719970360296350513165845001124563927627091725128335684709859326510978195800957743445367161144265217577244441867236077300543955561498491799280567377913463742362882281827405420079044570741860622121327788475888999982863053713537537193627072296899278030595315037771968320341354104660904112695538930296950042647002215000948505300109658007234589753674607608014380110822287334647832503104061848640208978087890967883550065132511567934842707452007885250040281358482596718795282443370552691134819078432174134896970836986547908094857651772811451789669097380273159362982568963395798907678649705082396104252051230171439227293362352207216635540851830589352558500540008250013420815726861536074020941508504689463938296950316472226878300681836679859081676052600112920504233939879859989290106380777988624130735705975495854626828558597315420077042148338167482243134296712967559797204278917843910825372604168203555949667569921556033014035459970853590513285070119326486401595579260924347072183873627379422949718827964505437533109256912548452676080669915549846904304884182081246228616001046880865564448613715087434254579627117662711900699581849323988610540652913140726036894812209935248719792512114813900453329102306446532750577521984863258606503074945400539016232332811963443327468967680047808907431027623459632009973751324505919146543258441505496869704642020237853753876058620932935126738081457242112786699907108387040189248002525989368629787398005426921905002842371006758441334672029067039978766128799597997167613442064116468262604935849574688294185843928531544599214293780621657312751583146815207020140694506982984459514991268652788695332745186794376900696750608673307652645147746072811307567356478294436514185652937634663209653552319993692550073829307265200068298046605259088893734503253006327287472985823276687292851511766509634559488913262378988661164711466973635280994488478339776791767872156375861199275761671930326544605241646562328721916926087960209913876875065390148600420359602439318032219414296693737180683861420158950339908896574939566705003986450229237883703717416765726202882741827636607115272466458100368299282677846900205930329961427311565450145589132026979080603276276756056099141210366692633006882884401736309807746277452481659187985126293808571982984424411726208518274754744744610817097541597782894555942094954002742616572680556473136835038342715042159045011820373983561577447801153358027634779062416991596240774557559657227534814218668497027685474386338457537088929851284681721648632409010257331335810032365280687549701335270374712449094243192061053370550688265772158588200513249377803457402301677854383494841043191402364851904434428192712447123474852879054616063655807136912616637074331531494281859355717390084340777545838060415297052762606499348850891389413114681434050158257955185749477460697468764813889537957737180330435322539564151715637739887574203038586916128317875822564544668710725250588458210432017395125462591052853488372789846300351980731824751207755787609316655816000605424021126433122443050235209411134618161814293337172155628430239793140030004303293382634236885987414221794072590360855029091690828508632882486231677998523899689098606870417146871906616775343396297348924621669382940096484768299792074027163916320597112330261175375674876732223467719892408270765874048440841142070046719809453200907005854765720069027927803449403903321261677749407240654400777712957218467118070548381327790560965947557658574412871836435770605290615343950559914421576468643527816024120584643513784279093772272453804793746931232112184122288262708094368110496203184843315310067988379875669539561612338087481229011801508157053236752705374675951777171552950377433335587058075540109069783343597767222493447995735322638032757039982259473353275653182279029456192486746566093723233476826358829290294564680593674034193927300267516506088621945846592432682815758815589780124359480402680095722908681454124321253274777196468869880624351397469726787685198855067420900449797402875043541718442553743886782875144404069464514575957332965611047882253789527524577268075804886805952745803942360519575103192904543996887225447589998326090657880657922288085613468112378406407622396108223746842282657165446553588617121299283614441377925595915117374496620368271703975152376611646381561081378598042968236329420197633345254939939421312827484768673601941620772830412014967281326744181666122863613779103897774240531215420831918144589744412565266277559975308430537080598021701140987823735553374553590235444854886243230657891990323091326645903902507326721545973429934072870154356606124268703315437484666908964155847497977431269081966760689883386436581981675481328295955705689046145325000580147006382538821043545317457430962014430041658498627081878657205995177641041582017993871438495729750646295875815062204403320677934105702165447842256621209142801332828161403776109097410051524542871972396528538666583039390453611314996342768649663742872249633153167524587605073622571510254580723226787292533357999745803015047602168501427704606517414045424643607311174915333933891984172067819278430096404627766508105643702615958777377344109657448696860598614175890449205227521975838055996675965813629292683015290647919353652761294566398474760344984062317886514464346164620122402278798225561399626918874081575147552436337181387889681582141089296843312337620548740122996380361977863438597177561043814643356706488946677129979342345603515250791565774263786805275197349084089868809510682082351480705065376390598483815268887868326113048866769579732561232982594419374181449112205079677642046436816299236550298470631714014350423970730380944233126682523982115900946402858943360939033067234371420986181149251752563210583306921397374855580723617105164434636222944097425806622908530012139348368468918221977606711577363342723203543935147844707489596008217794090791207003442447399243494315803798246080558956384795193625425847301356015870654143657022549166139167452929039432580039163590675123688429058776925594033931043231855486737048395828072418186597701791605696736377261636445447198894243877959586122177445622580946583002941442691206155469303911735495100607867191478974786053328661719736954419350215122107638730864875607405054939960483144526765537772517342991184080300252968671377154081425291168211310700613289273453700586498619990623775741199994430315959325156108222569308457814997047511912512812840408507114121055916157360739418174364301150976240215737765619552658400031282743375230812190695461729856058761079282418655210307447049174392682004980786186197337328125813487391059094101550419073386163670919110270876598637554358224559226760743920795114540807808907162500279784554132272663384443017399842742519558762865276925284779340472128039459309364928891971657466285393361762537039780693979684395566358599938950095548769904154989507502953626055911868386058054113273989188462648082695750358140412687834710679272789311422262362736635888709218915814309993207666845450976116157070732191911187692573575803004701530410661990499182836979676701305263473397275385322753964434087843146577912411933631871600822811786587169883741224244053042410067388863452570467123606933490917025446909017300790909369638963771279452425690985032390403204623793889279198767578896267506353393020369661882795586358094316214494241095318479546144673063276103088298051349029205154196169406178986269719209618550785844213546645501239968375226180479351330979152247700562952194387720310079820702041331878659976438901035259464239516741814786984301157083707859577664947882609656719201814306884904029994778708272614242568345811490227575646338534517505003704310369358756752866553930451264720322155370880916334801608696453592267066796461517271036572870342386052099490960337587711667081520805129967756899209838547784605476950175152010941619518513258742687226792668913750658163245385317441192243070709655164264242327244171657622628196365083312055791267973210249634793369906666614705414461051447852293141757454827671583571802004092729395049948229157702654968908431805700561475588108612146677931489704747890985352450615410050164889961548540966227753354168076672820441212796679156594036608192837326468253872485043810288862357200952159232730517738811577798571671834633598157613143665454639589436888836545441316620605035411689285047428850843077634835571291226809834192103479546106476209165858333571922062809257132296794446263031474403505651104773863043324693362267526753960369884124302546018823670234039097443509955653090211993294809617019861174710543558483239467381896258732495576113119295589234812158879024668775019169994934501701826808797752766826063597513111617249974497431061356030281487962964112624783453789845190237202674114876694898491682361036709084584918395352591058500985057779827977882412352028394339574962536519800276994063347886030946351255523816337799008277272328356229324775687553508633775221074347375023632557778691235062688340267395029646342964840695845125328834723826764656203953314523243971668694519152933688715636949249112902215698451792450081894609529989174279147328063442803119413315415988261369525374564465457345568628176791920701239466277964422791749669275639468874133925544227314836421556486252938583997221112291501269653848931464292221120036534331438456082873423955592772166371857453622007771791270070813609517930608883214210916995542600312583389861191263130203113245099388933583693051877839445272769530520929636381056239120212469957086084598865974450858129546682708228956179774900428380171275972473330376250101314739785603819672481690282845428997273618582069445358523137942624405088403022545613296129532518612240873598999008230299342408832272782188730574635031642763003075601186035071895810570935068430890466193204557857667317235579719711830428185095193387604289415871744323209825767825520090486239968713797043643866688520110179836358743937552756745098758333901313129096347147034621578324610375538376091278754747241407738552210728669041917419813747376445686314760444605844581401573451722879935574569865262832759456820927057957124927703593991245545958267580192422926684472118095673969931503513643140435338807978551425026795576334534172314173561652913754309096948407115563172279825751110742352698573015828961303920491257223937845106618931235535332176911636776799949521971379465973493794915939948071339796463801949541328746041512971516713077151114887894457926231939236366555206523625868141673951305764038499105862968564214666552773552805390938182429873484528900593585086076276712465933626011971066772219989009297813080306880023993835979135554297711823994057357805026431034463319631161823744395501353593862103656981158576520879206744721622554625432447461406121394592204120009091673033018790269327159522113096323096864144887447095691946784829285775117078380623181865384578959675394706755698639170770692414043116707215977991365157355588902662589897485582979680368185256603482490953640999724419797155605258412602175069979864496668297698752833529606443670174942665858630754783423456578498821004075289218023092381418398501285415058326542173913775971795238955450459537213503518646396612873669038142531474609610866910143954169478650389580633553985339721048258907331686033043433812779747944045052836610388870278406051449992612459018430928109812586696375530481232844129541825932689069255854137464852549597475702920909426759496470587535623636277273934872731913003901670787345023804700852999790339010549627120201520589073867199906362121877047215824739545740906048508307860699660270148012500320347092135969542194827801803940643865476027936981162568127638644089124674887023634000989128249799291297781433864400421973795514067352766857648555163349600537555415879699705093798767436217085826143784296304042775367501811542502703125007735646766192072095176268232015814769536311572251800250277289018043290164235653949275755845286879378324227594572900694994366244638580441309108946290164621660963332881584136670657201160336258712373857438277218683979728791039835341700318128827543971501584956033214926765026777182594123490404205364916283231262603558510161303943205615905285817506798145247941431349561518071665740129616445137687844612303878659843959299220020441255847194591419970176944063212201587338440487911575675250832652673950984627267438313795684460614029989264052091511777880517768873196043207871639405247533928178227482413462208639932375263067756218184334238186347796449016801771049079781461156934388230241765476731356613785147489663975437671379946772509507164858672924926271223411354796480827447674514263548258026696531832568031242689151875655427346553057750306165241920996369530521772503650503425812644563776862919432721160878018609193461092496912586215323316538882593926244155785863604474795202541468657964502119328635617595565046452678497766055718197087279589517790344068094998006703821173380169261963050612546897332026366905842364961119647511357061944792170507946721254082451772314170642459553484310907433295030691142080877928769050990259120247827395042762925148775283274556726094925547468379389363593917608610616192813376034696123158380199298935587815493399734359328607036424549596704634027169471054643581754083365186831735192857479821984651457382023870137984966474693512147291130763204150140194919906576477093419925503450761128037344425409534591467257502237749911631965933734728635889497564063083224228335084647689730392400974424094994175066295879404243314766816147506468210343380981533057650343799983341019282058179689132683248568279819983493912639712820961879417133650313918840042678503994693411283876853397537375043846048052794228408926191052932927966091183891516828742617655983534814911318463271208553188954456675614246455909139113542534483768726281008414034207768234149975972471914418356302733491519858746982703063315709185281669056446654251294639354493984890471488198776552810871522830058526196840915200083138383698487979381145551928736067946293735657673275585723484535082312070735684819138682644990016126015766199621834628033742240277817452498761851691494524394859485494421733705871052197533150550012390537405479820233336012230840038379457710735991270151672792831466523208539057898861803974725480897350435756611120580072073976459126034490242759492321516812810040123803447356978036983013855164747237354135209904974601369484306257826852133093835973071296266523114550172385812692036813741570617715595206910908991366179549805760355090550443945637057838473709663097856281359639177599574189691329180988810854799591752252469182232803713000431431231968076816638142335344979399501348678284114734894492888235711203375542805595539266594919626377409338514765739800620807164687696563253925014728538095253302448879922522716560547637022248698357634182788241475719566342599185904692182998775810669535220968595056502797470821473825562637964387775112250085404684422243113792813491422702584198687609020164809485595107118842388073650328525368281604530666762503713112842124923481782486037550090268804031043627336755767475171859784388214482963703615626513332944748147935729983347687430337753864288220997654250415908700648951988109165976519131052207594643110629116434052521354355719809653539695319868969287412366193720908991436489842986217255506551582308602420050599536080881070075333123931221829249346904873609349885495431819605004687056781844210287846569127949628364048065636947383265945973456941093731241655653310826895320182226546175229405675796155832014088275839210859325844763421481748646380703595787972707570053426408463629337936282303398938247460479895405632279448462872502494889388637036491753885411979503071587879621866308830778346293278187722161679011003572614337502311971189191319470988665939727295888750862290998877450798113662438732483177227106058821156038226301973976267947206200452614921582782712268965001320561544306545888257108745279746942191696657428493922328776889684163096692612706335729211380289320653027964429288602010585836874262687253601308806183125047184918868033333217707492970003671281539466129868250464129258197843122512812684197761785273478403963952069334817862852129896379752214220400370805126613858676154150836551665883342790886533287489195885514886237364106350030379510646969550158638917769849290530029772540661986408532133918969374933920689659893404943149092597791874342969667660060020270722770082032000723205662911059963454063237852376882342322417843438676241094358159778122446023962246853952065099529614856384835035339559403430458067653078092632922227707283591732684647189922482468355832631408268254461423231070316647386071551300163135252660674374468790676678818372228894353083068295450925934033400954230536880048082453106559386884586552599899669427170239250605989629287931137761679051565055821845842450392507282778019825113730270064620851981464736544638540484252528021987986348173513421490543824786867636364922403509354972514824673618697257140589130222101630371179515283069351083404912927674785280248772291977534430761568096647084227292972227472359668184808321916949771072214964153729841054678687101434986406067848688919716176406406509326795750885341428410984320602583269831054263200228252753678712044415648891494410423053110517494515827998512366465494691456741146917153091289837475398382730502683913443160173880247044351949654043215634770130268734022548166560659110327081386355015800607131751196218188505726612537135495566907262012351816626294226139388240547884781830793793144316297938185073854491197030719926446838203745191851941903701664728707328833270080534407923868437217967172607655297325601912512181375872239514794541125509199160720898735381589087464565466254010481587363396105038423021329181126571638002485008709843202759463301271406734408142747022040078503408595689278040425665870411987700432152731546282469705594030516459141601494214949761273180774434897770887410969927997761690386530493228993288314280801083020942102325462238947477279083621644368910541105937987235848547334361959082688887958346691278271895466330082271953357644219937313813563744529761174132307139602552814481426631207845845798532311198965785125715880214037468478248817109788023492820604814493285805884416028275099770903284673270579064684302150675589683175941669127318180374040544362772947260206287958313724143369293700883967193542996607788525911594801756599197272435044689506981322361451719717985832207132265003191925661596083533613507511154558801086243962398442503524263691328613335495140698532230973644154413121281027251064708587584980695593896228198424360742892980100038000416358521454388278019826817528349369250961941424680894826673436463876969140896324106739164458491861265576780948320311599051425143562347168318762483664622430675302339369499034535999313711925105698971728353587096834523514672448679127545740001509208408902816642818860790996156972295328348040578997190785157610359622094021212760396956477089514211558649896826813992231758904666827773385583899599348252411994192366374372815060823111425173900002123972513413939115430694071451612760231657109227990133442839374224385989509312357000687163815285095722720263045019152399983073311733229790325222638606356290731588125662415363297583402623773950877175808260127540076202337546332208835635209612999753944837901852290161437811109562311213565766647866405431632307450369387177625846625422048402262653428248074267676732028454902778083237550023982885879576489096142011058613121210630008188310067362223781619907129810346728257908853832929861955587560723497448071416151071599194326312536152478834837698775601190183880818932503705632167502685277910060816851909937028240941748229017666954915418840789136330283735465039583373496285740719123073110324972305166031943221378309953683710429499008468662330549170763172448587512248547875551897848307734645605703696850201013901528152856663806405485138300728768399719547208729391354922107924463453213224690575450385458722132092912632878169254335871683797093890873860835439520588864813300638344949668260423966909368816901751537657970552888478555180708807040199729075536084705098561058555354337472134864519399029777780675742548460007681296204077039620345178984276696415924607765368141963520094411803692984698061156865100069784939076956268880400307873983287948608545169590445841951139366174684417633967920234074231257380303421007814566922321307871033296086390280960028661452475046430687450167813305231260977809390667736677562439812894989481628801960652084884477187426303135185120378764495254211274682977148515180396275099534974155074345283069247289853807663640538697036341373301631886556093170695318408111935870816967942462553887273960046979553121251459450578379193213620300489331756868539231895131648409825927668311060245324019860140166670979975367041834061642179190165263772464532176131195257058277745615040843240271416969785107059185710179945439598364136341398875375355298766769016677424526948741259214692405701147612119350155209276076935949478655718755082004561339105547597433360965917916365370133997365598632987144626297493514204599181876805948672627327168588360406096621097254636237563725879983754454191213124927496865562402355818521777961212739651838160209216775230176752210205731009445546378229098989760767300420591031397832542299593504449091612971381518002372718657675790026773189881234197186764948189865373072211415440682098104062160591211012980981998299595681357018794893669069361481125238720110824427227331643983719344740780128238197755649864392608482731259409291652672504355024463733598800956465928047116518874791419779157770014642685140776834757861576752882822150145683843278391663522923370041960163437506289113086368937974482973741326405419485269014167100833258248106685048629260613169195678000109115561126555064588560872030276514977410575284092350997712156866748581307832701485991665421021379076418628316275978783882677214443575341578068586847765262602065820335651087248789043756811231335015771403485876680583925826441559170861950286602095220662266326569000439230878450219755653019792572520151985795153889633759821246434948850529158175847541840474250083642028856633067631111042176426563582423316019458962796922637325530422970744568399705044803189929444462783135815509249587498616239412684426744174977743480668133419503311255732929929525617211630869278821166856518312954265839766608353266616395437763152272402351354253723570725579610438852301127276886693118348479170863301541049532452822534906971798476036853149181780218170168189128904070709811153789423364860669529242742348217813262613597883320817024637725752390714023335416038703327789964562024957426466209849482731738628140325265384663200446535186035695727262342427347703996399349112800988429740800232987751869681823581187478875163486924155016405876183302591605537782136642080385870730151540197801397548411569879188500632050510715323553449450078121428250170246762990007421631103193904303425650725900493586110510082858949246785158129004658400439995638979374324324742713973473111279796472307049489893331340059731576359493122292856493643900489370808255289963093745295645749854538489525045040351580784861234938351277487461262931526244680801898492997234501647080410861265717594668510630064331068076312688942262983390479394837717225934174228395221748478260787083457252843266025129956728398803495430617382525176493428874545454739996350432150081930272384062862292074683361527789420856768372454617968883318330374598680906127316725368377807589604266225813418329439867033730289830037433766625844214970694182407495512786982117497393904522330681803456614124310241436833771372117690839293606363377311837694837133283060122590584948653389571260269763408561461238740818797272293756784819946041615129317798423202168164092732744992565585466796550516939366375514843844030217669634752785386612450990448579376001198835077009745612991526516234827922142235123789035230659996875893781505414268678435734138330901062027519519200967276918498662524958924960160626439780780152212945827454161668278336281193977551466756360437589417874883589702217236798216488157007645003274319870258985408722849941394376708140378585552874315757926585763674161637468105236309378423796220934611884356737611805879783262295644375230971140316731816787445717587011655127042329947152465958763319799245502750803932212651363349500662266061361172743291491238807960766578844158487816336232233151053569345002274338205369879657174913059038579307907185168097891593975435724742271643516862659949075857116997940241241559629429120271359545702176156867022596106579707002025323012795355333348552261963572100796251479428649644175402936475965906436302087107417268011749894172729373437494023930561254881453371766478236598983016547125455047980774565389013309049765694960897362207856440703370895852556870775681399654321143543042219665558803797614878348527644573388024929384579598748973875361923056330672446220385926522373858161669022143282393980554641787516445667815133958857150090467010887978091472635423539734918710205367041817810574155874507636857584330697554197413033255229998237564794939560123374618618597556820648114548824524403862705930705231362943896522052530026124188041194459589738228807508258833477623826350067642688896774928539676589086827295096054353444781228420178903274612785854618307503074693544259377804930137376769531771118772616953251035221331277839515264210384533015589127427589469230778782619213329025853453064723061795271188041852318226279341623723113072933880190663941528610271920447412210797183132888070303387480287706064010088768427470684136189337867283983635445659701371357413943989958386274996137792300660337243281311607215977524067568473551342331195500705127186571207597327788106194525487870860619558753080645211656379475176349328734236105064517600789315557829379433957676628642724350605939343015367203454922714477679346924180322384136491618475750209419248500775315083640823913226628372027113048908099348242243911915642111670381052833256549215238167595588292449735834355839113098575744494147709808074602748511867207394909305595347154901761469519702592784636499025341873654568934733851799556894555375993857987166062429350835872784264509066221186240137383934461592391897743412739340509804002116533778955013012486556392850709715959562121498248641164417414328725743848402845207608810468367568463611173149329502288177332750274872337270655715607345557305979926285175072968580856235006970061796430161630463991853215178013514368476277480923131048052944946077817303588690491513519731643729330014249103297278505034611678822525191183209586808105627202498900594550340384693543077287933090248446167564860448497676062469629430318081138631794438142564791948245048011617769724104717842070996019885425455410101737879435279932596775148167978905120996562466019125778435999365870624593451129881319347494261251772703858979163037660469677220284465177642063182567624172773706941156574106143363443681107178735961718393683477303739943285738133976779131518054572024123706467539605416905841367623303459718762323815083335385901603476120870196014805712413871002209953079941042970832716757092907092093857473145617864480897847175546580062624916966695684763550535957380739093411082053046813215583117478701669130838539728614222585656581402553645072873686817329014980429905005763961266598609508758834752139151647788186150627734402718402229027698749886926425401438005097944183093822303754031786843907027276946647923723295480493039136749667675151973317230301077806115512915181858321943022973582733365830765392894824334282394403200784449428314945179198156829799261272872605596215191040854604783563019489330633841522694653626828990536207383330804668593739177989061857075080790822717061665400831325714048012556482944828902871433732452581285096949697797237482933865886008490281276983183828115981849848280025596617509139800882322943917748917185682934512377211171331926952556440582976355774443173013326509641099511086256501568392794250568161020657667701742398011889790255566967996413352931432399143610496451111954642118290185171999367792107767511313905764987788051356792627265242243537059250130945522877560063844551957491589726871021149275775258881818163436847804256232575300546575299404447046534980914678755920919030047341951464541353347948288837141541335498842309550529862451499762542390600029812591288738226695051651914464272860632903349068864115847432381632987413397689618788831706828560906481721318371341012364556349710242243511940352120627026972536265292593164007952588082573900196857944130299902720888973239730323967866454034654853606715551538249980383059737974637615257076843930181702500624355039891621680524321840209995734116383799072160122454484706580717825913450071211453076947177667710428830374095247537987926315522410635876443827943430635384330501186807454194275013710551227860896210399665135837995284976418938620595474337669144930151036143226043965221637357472566963294536084970456366676023450133013329559034240383211091292387940144620893228757375101847671512817433426013337274873103241679170381419504018876323588043127169212930198582544696312018736710125673201740837373632200359840938429931532888628556541854362355288049703565513717011847667187817645132814913240686035633983511054520790240292633735615483192983784666703711652997680595415943781338144731915504963899660126695911973640322340274888470875794841036284890953423955607358654368254318654925926181923201468844997367334193465533776604154816752972871334205704049229461145092429261086829494951938561769677618816526735861174403910574631585010142263232599538156137080183142469179427201353699761159062385213608250705940554047916881893887140546807071362983946481108289774338580307464941235101502904114494898174513355525749705360359083675615929943765386769210561520566061309494595900223736494887543750535253174550954691348895396114783441816338146793245790412002407457624958863789567155526789161675381244589550907623862634005694671433188633352407006742867561899797264052595662799279956428966110648251904762169058887762038606249770858321330150736709333025589729774467083311099012948825703289466532431671013122745751038044013748470310208499078482470747560760211351177414088587889527305078725833432253936464480752110787751697876739953824148172048970943691873163102305497777054244029096571764384715087073933638751278135097168443843196376242766644922240492693445892580367719260275398810489926828092202830436475854406383710622186057496782966418649843606984333370834112780849622984639210368437342791221082502615561728386824648717325759961058091629371119609524589782029023875020789759210570529735636947461842039547878628635776966590675162011157848355548572063822443500372958758034783511235845528564163636851955705836981223416893860776322640643181549069504727433947009595191550356225214471989171091016217839428677787048777789512964561639291891158740765969442548914343063540910336653045074840490067732106218553668392668953940728124321279315628922081422194489967511593087765917896504567683166400163999945520582549685334585441670113611876084919297741016397276829382092126720051684358657237470854190772340086176315940807499240580288346394364853803761363491044539800955375540231989430741417262486142804977435220048133862449169510182402665498490768969706544899058724358429702778053456510573235624504285057903727377879520227403427402779909522437708056620843554185438200575072371490141439216559976323433018118448899015924021359345182852792996834018705025760869503969146177510002221900976282740263697136108245667002279832001936730773796130587364295495400424700520395330895820926655511695611355500108009625067808836503240211762950958283221164724497720867918312142462892978841810876089701807159137555031898687364639475214863056925817081746717029507314894966445269599040010654270986168925923782887903126797142223553641766547362489570488677877726378205166324073932270464635280606922134099373141931258878735049793038012906798875984374661173803739511035931717077135217516148768473647360898494805321054082794506633902341390979085699924387310634325899517556122765280043309265015377569584908496483243036675395965397417965895009570145337889753873564009494802737136290353748792448909580789064855391837992186395578582084474823523660280434848801795838190286205705854545727871044337549500102524376236176761324074696091484212297299817956777070503162702244731188078140804620711344594161088505902922597846094963465673156030939725192018551338509005450623382105181541869950979608499707844598319111133506444830120101429923789021547155177121549097514318157827223970891661169358973668224728561515099567609052768654567557265287695444333902684569137374313621971264513224828252957325571625161745909646136816558197830915684116913915373278938359384374933173716576382589362157087986698390917894545783263835538786954718984486334746594932371740554733660356335769238302216369116353612226448739151871046528881047610924797942823894242879719280331230214236621801691226173662588082637557869308110602504416559042448144049515484704650736924725369783852131410356837844088618989531768919646949173180663268409714518615937720838684419109575441501006787176885968105776448795997207652176706869181446636594145438445885564910367619471423241865660937651863752951657997826999079041287126587457342460639266561467659103833358566770519634263428763401688240311304410268859909474750438193747924213211608455408648308520471648779041341182194947841372272085192412774807391349400423028657384558028078919873637245585415929802720951089096922055971225251888632567579703306956641360064762894321382198547127495615381600665933134113961301590451151538482097665556276762148634429173639504181238333457460626137885905022294369235324468784882288899818904102165960073971280274595756536052797195289386831213508771794450756051767791006795006723053419820806611042902870558229657944641022220607826961546314074714951264506770824110049957285500121100937484274173439084842522722989154282030880528613572113467046966246244968397380058623111201734116406710030035059377921999309497119061195156193115838803706226205499251289586322600012405601297886589689924034726886140458788551854284835637057361770796894861064656848453811335983027949494486861678615790572364074336969590665176314153441038627684520791320078378571839987402948327092551417443556077346553021096372680274406937921167753503180001521492575791498109232833204853099855709297764212248524828736269538970002807797649199718691608307715386400455844005881625811846675333848566744832263956614270702307941502643332530220539086477642082757663424449478112429705496136618936941440980342377973892672103270262053938012987585526639240320681044670320038439361455481063625363250558965736911600795957769690830544292731678348367352364450587693910598688210910437652436278243938254509141828506174356492342271890156756004703722274644984430096118266643697917747780622412910857546792414659785769555847381934106623270549724275471132752087307037339689006695949523990694487117572405090251785274091387965931662235830590662129124530277613649344097353374607522067414746792975228002306356737731845092968742524822677637403321601858226130039888270563875753605492156126654616435754289009327364149975861797035069838550443243113681667271722320701897435706853355069138610193982501557404216017292249261223621531806477597405312164861879604652820556271681310379412730741771069721594880742643895120663888557938572960050457111676093629545791133228238914341425489291672315518037748800282500620991793022814437160608909969305452517638858829151938419831105468633681274940655729593323636365975259711990274485573861764877310020735510859233429988396581765178177826522775026365876851922612724157505888037764361349820028000633518895164691642991459111068930262513476945953077418835090861769743866171019908269320638796676186734432662355860301139785959137285277241747222969630803402495291391469382105795122789264624802115229313037367965813431604800010552953175225163874992829363433700820764055405442079359427603309367104113239102275791545211740102268378773919993550226940067510168583840837820415305437154734732780242322780530350062356015945062290059041511832001809792898115862984254753143838628818110695746816586760835126860696737756835437481367153766913532128763413489613974254518440896294171475967281177791710652248423447301386396737478351872182092602326226895628301555185137289637072872496606072911680654351761164069684272707683554860025787400060473004666685314344199932383612989820614057675278174645282499932147923965284921192214204438955479024503422048606491234048324842608881516437961578154862783971092650434919689593497015887051555743840826010928168143023925856899423456979209978081186706080493124799225125112099061386330121306077634839612815870553139757576602642934168795574158774821504086349976513475781389146128471217716588793849634362575577817221938952612487754049589220764686898167309385828030062419164553398518436381720106861234071721368501621979840895074979426405514161866183980091840985953900618098227184954008973808652452206823303665193176595720981178232839186781557161908441429235210988894869700092562542511861469798016483534926541703671959828981961642330364130442894304311637669417999473679918334825739977194777985723153865870859331581657176937667089713266721622892777790745978381419715869100536489904984364002545763081779175803540787013963589672746500553505922275144994063948345677785340785204959027195054729398892343639924455567307613626016642407092588757820169665043143742830057276619051954606543569933858475864118303349116953072293840338213012785899702034556341829830415433164366240249151098486032618380129949876541502538491414246919333230123053692729948154266155546958909976787128746250822951408232472208622712813525088823446232477584711941295070682323291606129258381782709894170175542212918193309946518612719203435596050746529489748121006351299229897348241418108203255393581074566608751307808309415195562367535188534059893179473113456265978944082618363153139870388136354791905797549616251462031311787462740960934757971579749016544636320767619955230888350261945693793486205544949081269175442643713365993004722952058369643803400190696462065489102451319801765311296614583217088350674356653742121757741163764957808941648372101554544887829952065994112765480538463099997015629569686611523068202782842500718410338844917032014143831598681635450401553340396515894456742879493860432426087729763190456494746100583165577554357108729447279409929575208057697150647477434647516520671895336478882230642125729932511401887554659240462442855834033441909761975955905493841170951408549219911629129717302170853028074545227602802889503730096257735337139991232871731199283900555726696633657061256066061650790028086826709966958967743022213707020481253169881529513023594932564172160694681464491500793936766299980046947617143851790753522849889507633156703634096420623639155204808937083271216835968222274264712390613769711021160999794500273098055531632126680755641372000122911267799608006517883092336604908720127140273817770484172936511484993725607973482981671076806167482921145847667280127193214189021296571659856073573933310877375923784053572599117426016160946893549522480867213757932312011944730243733088371570450444818212663188197231075270820113117579184072122865565605871642653309211246645564026202186441949239048776027454452009146640260926063852614632731235652741245758892458110142391145568231440726576173886392284826129849803936970046268697036501456681013066789364611106984890923226827366272428373471239773443966183971905785343885777743435333238033113002103499705957503243780116071814618525885940882416478562219090217665304094447967154644513332918827644841394837664514768417585212325732673793934986175777724756849546904698253852476233986977463748331994670626705869705090337966906579155902602919621771107376287580850998298804315497603928025280700746834980441074530772013682796842348231470756565419572991399196859299026787530614083349717094541877921223432573041625264489483768645711267036029485832994513874149889132091400400732511673459951042715034603008562292545086405633007744436819210958537262158201717530986599705790960586435918834743400819128557223090487874044920395287249079733187170019559345680241723623175062320809714999815450980034203403795098141252207701958888086618166056496535153591313671056209983719166627539577165879915475529777891445276568578847260614589370312022598159766451682133925697390775388361725265034734895234060666104716975787479109533983039649987753595827742904459384138343339811869291610327512322333819969598341180181301023981159631135484613042404368426725255767787760042694622901444481922462360737952273872410227562468716975620872709335988483495941981104586456565314042937514257497546692816564398849314677770868518918679207131596174353804816984987848396679170917825647771823437345459891171700926434202391161914982517476572242097568771501541980177518142462813145844537026971392092620992212508866532260269438393932001827348023613729504580804427107355727733205217051332396457525341227178160424192636397504254582468862409886950112652081333562917221493818179226109372274183090302419558789434603817008788606212293203164997609451896865472837553775877478320235392914530730138844217133243971768743343576794349892783250361156591531193729371283212176014518327484104705481673004060954380641060260961748527403573455139511526201704303416372838497919501577670958913262686859666396245940633254527021035464615956724559403540734575107829112033944500251165143931631535071189817161884907801258237032667361533433293844061933743478060882041902458262033572254319474503663595469520695427269088848440918995022728425070035800889942711663182419810082643278176359460558099209057946165601244804348705040247673725783299460241023894309907519815334568797157088003670042260431129413999820359550454116540289558950225858510203690750229620201410334423728712429158353796861471571049072851086853295966947339736429126224925195129905882979819736720444447340613791925528009936952599565986408478998628048177766740439672267927382269244694484816293130299288280692348860773333846193765234595144848679545444569444284529220560949723510516444687365079368034744022911614698954927546036055591728437561422049991757193888640136522771762586418052979819385726034053244020275847975835518028531557835597126967304111440460662613347613005683463585651321569071395761955940130343339276344232294443697504609211932944793605590151403522040344280051421620182897224270767790238101917505281830890861262079258646046688435716733346154038819089589160741726087091787066782263773596247992295175642185583349728449369053002739403535572369637503215718975090929541184334323569493833859058004736045509413009227205973390939769592188418133861099005499649515571059822208475315162935047635862694109691095890342435839591516382590531800235961345692803139845846214932629691008362847090539894479122381649443807303731342192460751693300657203085479408635577887792988132569756966750182038504643610396646684484119141423153153464868671437978593516838097803409921667692783783221026453672275127965870623078366099284578307889865507067818888175131899497301933322500940327007524195574146152480979699176104490590899358640427962924275926647181360739888910950736172166321750504091451592658944263754611794518419864200956628415361579213555212740699665894229287219000822275026823631303555172885233736909440314975262549020656268734816679922893621740354960968874753956638799027293830175498880671854531009914516754883747231402470311129423209558220663841887195923697274046836716670066799507909850988509176012852745352848035204316222253345035651923983658780457711872506955239360902626851989364121889660046449280102945081454962126882443380380831029093592179615557048014383752587149051785398184995252239341596023279864594898340412678834108363045331380380532404966046637216596230866539959179074553228110740418722846666596593536091772617174703173100997938218050429018856007103012400313405860731192794375106571146681345444139674783758427732141259049684298653978968033252137312284941812767328152034803701280431717147900833008799479497161791529549426792598869942357753990243585760082084150668056449440327741531434612003306145714561855588358990021260250121034576525191255643074958999767890154023755495945037465668677995331129339744568127208721981447224167635636552511825613571894473811822125303432289345194185998780379104531230630178385352157680595722207669759438121009310764796881626812903908984106366564108415983338565167624970691927265357534646767482189485006114664411377667810238531322970656752980383323930558017537504943359157524096241375954555406793816669528439160420128476701953727689506837581951463345383918491955301904582776620134594831369032367599560319183045339982609283247027926356969421539078165846276783911302618764261765454130291085657704547536598805923135324581900767448394020095647500444832258703952902863377734353119500477287058175161671167711525948061815331545477728025035685036569477906674085479246136748263826705733821314934774492018647833742557875701118197730005029424684964693282116844461567567756105489580902273729449624900241505488370080030693008485029135655240026556773447983878557872345927779561710786055030445909218695975182093520634502896789050902080529923761182078254400947251318646963023372880288828444354684749696195677864776960966250854511295209466102100535324250338558275074433535838240711722944844317683431739818912090618276345467314856688599269701225668253578649012003293328508993095573479741492330890633514293464822039927249463243423609419877233160050510732914257332795417967165140747938349540886553096693615504088260356436235628025572765029172919605821395806584482344862323409000910272474770123844233885902846855501452247582125797029062213819449978699826971039557113064861424013088042485878583652777800710566708572123392971106873097410496730459285783436963356205542833848784195468627987190812646411101787884093654806406987260407750133597563368923935707860770305096922501905898995584498624021962029355971824487062577049284862570387021032044140721536447763408616455149657605252065036533646246800278986591308492445856834343686194992986821357770630537073726136032308114405734554355263180562237024317545831106194766962013576521331878590216944730420273171339824961545969477547957752767935910413446051532378845204310617932509880605674121167538053151235727638166110517807620076965169390358750588405159655135112711960660734733644481705869184490760298614442693371100169144287299123050515675333540260074351668760406359437790974541057361273565549131461295038059097336739024939411885862862024552306812033446328986608550556616485014053776174926086939531097395059287746642088678374710352341298414130382100291964999087454020529867114434841948576507041089229537209507529192249993661366858206345103080645623312340053619968841601595689011004385846724229690986373671443186000932668625200224735565902258170223095412234298235812954657326195730932167883919432073307488535583269037734350001377830028960839436970545512823509811435350489090007339779716273165314269769773337303135859296071807264397578848434844022920708540622899259651011561094557150732818245742245567810998492492852865644898277001726406336778720175873134924813394931508967316901217631289072710171441897081453044847361267086348591301496320807872461881417134914922316065786722889523299607856069012392155508132400491827362352519198062059707735505297274322883395715713625815064888415090434837181248589486998607168142355388230742620292526773284614497337455297268909880550216185352657987522112221712755128988046667077583976304124836787153043640515885161788102833002172612600809493077376777698415773797509475059436771817399298728681459179418835600267680813945063587759568314906066014980968540183147693977055435288475650076439098587707381737255756012313826505860553536448776633539137011032507568145879095946443327242273833138591328346796961053239950085782748605589487591215580158022062855608807722266878411742325185621540260217200862789362614530832961204140974423337988286227661924037002780236025744766213964391020143812051521949531929402858338002636413275515027221444175418993137847376334801309334372236124549532058470878771109917557176039648032294618327631457715395099432597504685063514986169314594471197954876398785086246494444741208216475190071128374450847847864217978376858474795240557062929967509912809653402419905531431488956973264042842722230318203219869473913093018002859289316480705400963256370497607752487224691747187285725039754609181270414589419281664708020886387115100477783328542509160002857052523945079950632207938165448064295769321521833951752890225450439205110779788619743179282358804997467860109459074588470647672062262681179602569917375440817283514658838858905349928193498827879467973399922290326688144838852240486981501806674917078253796244411872864339547366979276684911384887737087863468833455235770340130316329215947967515149315131189201593761056662938178944088255971311887141501993506770473380563668921642381517953380731388631486542511302565582799055189660692504224895009025411704989250301061047361005594824348224929092327896924559000574333874427644061831200852648671947670818782925760931449869791122390615825332780671857072727327226107793640680988286379313927596420784537544853299532819653488605457386351598302531638549003642476047961579716425293854907920933135385298080669362585115980850189350774997519069895212582288065562870451108121171785687529006454586828773347248027406527963565800431451091520312535594563618875447327473890979600914093308384381244947090357163946680793479447370596097582092693140363509709681422381615803515766887717282411321507089740916901448733496690969606114302332701474055072011956468416868419377968203218186992796997652148353803851493263918900631818661899040646132868605165472395969682460885548068818702432057230485692598307807723342384274541293004673671326038543036906539795088709169219467545530028309097240787849074312848725147573365031750210172529418817868210577590328776137246388507385188209767618906579356778027716419604652233838440020761096173098647827281061546182060433304301995699098153787741119255480208434137103699717782409829886296619748680080577751406760332929935334297604407641171612453254430122916709401378746990046959460850010453310443450342346459368567270993901487839691449365444025736184447627357209915948937852774862400260268457912478446038817649399274029286400127243973962962069346202592344627081978673721690968804029637479309896828598249690399816191266534240171009764810234828284919982369360879346578115775834958829198645639405790453037983276615035459376038673003775921322845509238220402069993529007488546784722516806430163359347642645691818210940952584874825712617157091542329531458937282652179533290203875725361622745054407376001017745580086309221930839777911235344339962913986896833747237982491861987981841252360164454758964416796536880671052863309031242454291222760225946783286382141655725825228321198822995429248258597685832847345436296709292326109291425740008560445181221599765343878185236275961299371765032802894598061443855060564867442066253728267898625835422514662972628870165742295503309158615306831381773665693341831974353790521652472396630345928004049849419148443560977327512202005728642325650321150962846353739751902897139785690651053200245004629390006728539996444475190060198333911496689555925531932919964050713284133501851175570838112596974609417190380848676341773845912177965745262673521624016927278072606326634494719158545583881501441644462887520158844635572240011859024592179752417531036238938010031694889079481110005054737477688901726271110358156028940114337509461645721008267851038135574206027268168812681556658921406888292150657760091846244087569134193642962948523545125025269481698003225411653923945082273643861663650110882303934259879056674607264442257945663702987320018791388991266550649207561191466485711017114154048384787746796859284642572026400418824696895926670591568389971438610624240632564588424771269636616204523834442500222724883402081024532478568181476822083327166827773626649888186088996348517247348506628578852443817119217243699829592204840061752608997239844389636624414175572322122226802888010912806536162943374379739728125651580694608570433241679662169997484067531388300975729977387138139876859598777196177178060866485567515277422238077263791274117960266400355165987931829636724747562287397714249478684861728106432994400248880753566191806308497462826148346869317143002700685625598922565492872628222789650400965213259900295746739439686750417878808994627980753613358234174546674583542561566000552208424695087189511149531072838655839095491275243214339081723805090362663588387564860318641590398964176838110155789567852721593721525295487783382018844679926803150755838159491500282111913159647194678727762681695608095656169234112546319605384302666068536965158743460859957985518221217175763645617737964494281743142821588414386534367496453543539705799308325758194093348997228172081363697341629032484569042014352155984204154506173593802546920117666483899622000961226426616921126224561741902086243934010298464529393838085005632194887576562005104971743439952599962090233784907763129374923052833488011592586126212725503056713392557461013341200767474772074430322411940897360066519337448551884429425108150509983918906518478375924432076335632876794864203306731561083929875737591751832389469073857541672756904956696306384481513943646155348215177876857108458755916678495264921511907827984357410029148990437959277514662181057720239878074846845546971541441234621120682908685840047565443189084956377267064704589885875496239853977370000577201167329673117629960321804975069897166608717734239571310056267685538808302065139412019646476763397515881622531262590353078689016711336849891722089816921200066976553617285866556972352001741003195199055515288870556544731382427040364426027095240164075442884507946868512147106344557049475983522465795633414845727006716379741511407017604800482229581364072894451179253841569809020091825108383837146489179675754983746960440176292618721860691192982934142036158530444154697178493167544476418181408110570545368372483462972167579632440876549884428482022472493570950051495475411853068394814666837106593258307231177791223331347547460502607460279629265248702363940212526549382707177374553923581702182095354556258399842981478351152331277080804724931327934702798314591242898515087206496583540937469630599775927586413215232375686737781174146801799805227755162732571664533485251211580645085451716139593944164278266058141588177001295409363073600232204572486914356408799228359040058385055922872648756451308965334627160002686326345796514383689280526164941209392946442811932339109922746912470901610549050363137016054631135074792039714338269591410225975084486959308772351147688277588671779130424577700417255335874061205998144213088934541481426053256071105553268839603851251955849635473262815245007400422325868077460217699449861049607757141511059946804414981074713301587972720389326151515400372075265703306478000136813741247100551954012859886632335756317728634403141438432740720178696456080557609461776230379911276103495388413264040510494957754032917978109005248764021636528425755240264364884860613700191211941910274362550151910084844129402046388288175490685720748278748288202506480255902549663638163626410625450552844435308029769565630872350729241984622541332172196078871534649063788275696259275621159965500384499053483883363258800890492955087443570130968058553446018380985450417848464614606195897848122856771808996379596488820638170660046389739750021828612151664130926413528322285008665331814454152758323872173369663887316515705716489787968795436540180730096783656648856889294153419835717044403802976892063536347449231852985142795960780481697640437477726714467848776564096557511859105064656095444906471498654064977536125321720491157187202666657325702244173739837264786499985504293660654457484196465253305352952299934608135285191506658473140583818262451061270118821825005755536975214350757161891117454746795566213038254563244810675761301768410935048855230997069495593065664736575839073032837204157525210474139392062539531622273947554336429222970585100288516187032775189355926386464304995020088568411121844805402344372583996492655170784645953336241361068195129208215727289910487849045048381842438309972414384159164070533673375965998536910845963618978857070557532335745298444753901172909858745960423738158067585859026857634988800111073856426491719838548708143045853770887919351258523329276171914776789497009757751603186011120634601523624378478101314848855696956265224720631254281502260898540363868994130867379492244342804395163573364308735421890117114469805741335888437907043865046051655458286301027281410828226812917569856601467955840938905699251424325499765123019386175254898855349162405704336200296800284180093037524723183529146332742027366014733224339939197618670750859124358860857315228739832382831706875195858542783335288983862803601076977176055064600794574287432234820095787989421483566570113777228364022095094422478752089766435808605914807921576495153086417698483784942753188153495351092565349199958833886942125604123232038601099335010264522872254100308401487364935046597075829798303974600518192606861648804037663232376155135666554149568691519441101070342978740103023889025119878394620282387156075927209544810711379845409575894377493805473769108495864480230981073423637387566410583097317835686054096805287644940593487640104520076396496141014339437170924716145815961177012229197677847352651596674457025145830136138729002689159442674610010817250382335445757984092434360486990766546804493382172700990390503539214379768811938396431521918430241095757432806729631415454471233194536490510675435770439798704076440707903772358037488589527367098391754618678506845260496883548463624160848748038755691950651283112011020433283299666020008169953098792950387465993768468225695937658209464189082017898687609117851448352584698000434858076195440351376504764046784194098799852109869212125676921919415017343276338122600827513607338467153072518827831242428885618608586588129760821265918891966284216902837957877407820724514703587968473504531320433574595485524447640820642442859660085944451973557279863530774345333550981960892556733364174341289297640184811768847858307201139057536432965832060285746288030353419272115176846397390672701066476520949303567218454346400665267152347002560008158959857863621838162561503662554938480099085150854586392903148138606733229104373743245454866020047225238707060707435986610144331463015731345332040655697893233305360066324414057079851232401601616361756224445473046689130796109761936203711979189431524411915445976839297128249128708698889170399462660265023605194282790910632038088682679423668939640864841956258553692601435172143385367505015365374093705083868577229607036505061934315617997594896788464526463462970312029117460076654371045079388043227279126882235432575209981752282948223550283731634659269803898844180957251871277350955686992041846104098872189784339245253948325744046827343410720699188281602500984531905704504649498131910350309070922960584432106588683776621327080065627277721605654675192415848345451451383063268081527461376857877839755979039802693254002082281758001797551007463105006299914556612382625273791721330809134016041684343614530090693237080977413133677873220343762658108499464438791221600001604584366339719345029349624800182047646652052602683375040736646263921662987753536156575825221883090198197954107681946647848923987190210717652676697587295091873085245534688838190159834562478787535641359598244683427919905748902407152863821536447396433150218650068069305495213807253846329740025376016449258257382513684450429365179866560506606655340786585702582222237125334488618579717849182445321340314460910133921761200934604093681468817879937431279371596412957652199231091543143638074424321389825051175436994975925754723848152876469820706611785362966882689586403138865010396054669941478150960203386672714644502117116965013066094979619607290897447095767121406273629277903797906884254965011843217598345102665655554861878733519663006947053514856403696593712678607805552345408422929708601375302145324484427194400070653447261646365716354025883111236301953926158503674968009565550395869320681459028420156202960763801197205263639633780232181502133483422551675254131342177079920377711687629573165536822327311245044427198271494523687709710083475010594744334913682867528348525045740940456625670063548504490664971964366868139111009490882561498426656471391759118385245305465867277984502316624845986010475591664695043501159873127403729678333977699211509613983960007132571527401258306771039687308426563916785448191613673906579309933174824521732685450618472401323368216500980643583975236160706459987578392171795097695082304691597545114913581155835603418104181862481070548167337718903187816225481752841118077611166774073251616117653469163258165382399314604702091866815464915098475408279991044036965286543401687005202387794491810869065114635711185901682916923590133881776759075193074569173288413696980938722416024899849303158523253733602188838145974252482326391309254900801456792019911668254093703168540377024245847391067557033161215043002159364480200244572650636933290257592573101501884530057378933071543372367969920443606688250962682845333532802542927939400602782651352534691371748431277799151329121037703725607393533880053884754551082885343667877261706087780064771239379169184870061364954958984237420795988213138806942455006806564351893068117117071229321049232705275305418330537088541978288962030582873592794509399831762748561784660886579515759540086326075366786276947255546861498250943189604161990802859648851357574162805155196267346190210933123440096426170880805083298299845541716455733268226634663076569790839607415561388804889643555120560156293814643079687757480194852492046779754975891992184184195839435875899726633696512020370893513381578568560668391617045975759416597633858464492127824854408841864605886346606485344438901443501731304449762868191839881093290118782235424609030197262952351172738341559866595422566557895098013025863969476697799029049564490366914626826764718751321960369654018737706388244199777670268324282020890340263625645463119494474476349755408652289963540437176313654179116809338033319131704979467769096042526573210248707835374346444063673029825036413046452706997170757901049458519254899984606366477323541800845215424547556102791863092763453833129183552715232518941535072667773309117635830132877063310351319679298097632430287626270304206754875191313777158077990470039579725829555822741849517754163097678929589609149259112683435880577356875510668739779524274490492856022923809153248728095344382624686332291207072817641601249486474360372478621722213188923645798102107555324332411557830999694899609798634089073460537830488214113662145442358400066574590044484649873295416666620615159028041165942002811501842356753943570749419722658756467092982131971276929474111834412940354381205840450869077842250763204473547534143880310063809707426485885630964093252785763540315345065797156482839866130800211155341040238519102249206264733853313229704163127327299702269243988695150383141617571418665328711977037394621496055234612050435714120262599129370374140652705859337181370967377657129123485056658905434775951124018908660045997961017726018923511805680474389202527728614603727718440977062558024328392782845729885995840465185761480237845352781872498234052183550947157768353451208412563143273730818464209035755195765121918574061116527164101546962719069261300152289512110072222010456992014225376816601795755966497513535573748012824891390936306925800336126825198678308078831373821488999262177774054085835956087178287667930136091111448057796815835352218862402218431297493265298254272193750038971542824754300713401202896805269933746834206415964018360494773519513197534004968764157097508298273708081307234111491947360949740697821964969996968709404066118144953956856290197308958605901702988837433146598669667531704174861657950949838262072098402380885321077875824313148013191946858886745962581971650194334815473382648295502206004015149191826311793256721980458496496503082189696046581111920747282704744739905427456436525750631958931717833774954570091901290852405544946406316410406760979336300550133034615407349367795111449368716481614144906109073476283385381345553541936951787381114232509518653238985535533058617821039137740521553631251345607641729345416989163669383965774766842810080921637583630057903805233862844116569086461176929243028733778010158101770187020939391917776918746415636924639304804306188972267253610917640199312550129999813255883226178112827360204053083002556937423186925371742854901449967920316553685601964735124236603289187922896382469750113229066111234354498398749625444084105253953455782196818514212822478908225918894601561231452886601089713569244882653479748145125011458047898941381677476451684480144337235369078591370927486089579259566063897238716151864861634266344866461926512737880965164016517930065389670017944379832326809001123417394332798765620146288275109660228564138342757018581065431173355488942753975207583151767688616360713310368554686273295785694819865984383226411399248820749226611177346707757754469771193351557998681901298119378107471398560597193881009950494399502951729653368884175260011338718472455693067880059455685173664151177224612232419916451981759414536514923134002423342535260195668521550480873318385812168414905277939458986959164985083387441497113501084017006032217004565805162817504039725588103041202798134686432929556681321176628604968822173799041625686980673436791487478741792523971434864531911321237223079837054632455038926782902075235595364786624447605486575730137115131013541398950091617571764371921066094988544562811485895542688812545300419397021047394327635076682538581092563380226180209227794410121668555948730421904781352837404492385922319008994753381692648611824365473456442953076784286110046698488757688116704566059404559993875975055953218500144089138064494369213688143472979829209467166252042791463203893562794152176719151919048423212421373370969105407123662244635168566918648734765255829099511704346140953612279965357190419860298930490903189773218492406915981578468815856017543117781388767470708067726574860830473034965337612981202312800828151094842487207526047566361118169360661229420655920619732323450271096864689639700991467995284537261308095607226254113673355594994146139182195087791440632655674242681845728568846637785907281514196377449955538594992699593894864897020825937176314669861522645069663852606557775432757972791252042599590044090405761551182996811329739490359909505379024793034951404274710969847070248292025275052146378711749865362086123415157185340932657353131679573691379528222777993884374150889840360363645554676377399016561480939549921155613018503414984737160292071791488831795963564631338122156272926451765062292587368222892128326097086374199373889757094747836851013488466611933722835327265756310346059476293769026187567884643648225158612191092073149175432862921241064435368873400915352035240647969917142660860358724767249705628970951397707341123694444684037897118318700505967156815416825126512008605841801215602285791742261491338440314815406677637880054539866746809665118948862852853688024327408223985019364836075562284500911184177610403993208899204870011052329009629594233630023553763723443352447003279249773640775216859106957074885739199327074494882082318436887260596108143651785198417928936663634658741018357204147327468413218503001191313091181816343272994877857118314335062448308830968712222862968801928233315738850808242444680399900542198632350534061429630318075742351706017532948028870499993340888856897422922952088188783942866837516681578805958310381865880904517334027540699787343781147226188216457395284545501392262654643985618053858952588147466580953550544816308942412156449782542455859756164547586510158399657326198288639989828922996787456256515667736030412731770463877752459467875131838591314425339444659393965388353077543034068794397528433475654985732750126072836401541458900510404235765745149063999613608578410266237427120402380628543357031089443866411579947739503595297182892417277372503389265576976858654398361039187786838348538132530296775160074480478774286337404254153150424894714982289067418938469413269784151547460822534182212496991283283917947440939314387825673708588821421816759681602721585272020588949160821916202215428069852387212688922333239306909427167240753359478463774877532813741240096693265777819677407536628649293039759136287526818930917616813237242386443071779566534569675646263414683960540223465539065815937989395843343478233849856547807613216510579104691265466284239766359501467126609542189149190874874465598715763616767655718432401446738651864179935945540584206662342712276134007792120450802363356769670518119094994118352803849241420346908767661457237991683940009938683055441646978750546545560200099169692925944733818024361050987090188495258593408877183109727103109301107457168076021923585188001728742810043663600999646438056762658417595262979458472797014845621571453389328659183529139189289803317910015986881051539961836905517341914507323371917287853622071645322586970618295692177350022531536255817331171043701939377234258696056234538049841777901532401384904945002669631997971913750256036481458779450783154930145513716778365162824084105337173716445091403045395493243806785416735143699639334059250430389607636956849785447772607332664565498705345010696606873328492331167139127617223374141431546970473544667444512545067154422106033374239397886532914124761792940728137590546986487881813793113173544553669460151623300884190416696665937290134423301480161707990347187863795618304332107589604912375625170836591316813641741199318795950875952479608262342668498285244544985069529372881780130359635606749411892065810241267824789001260068988134354095237756680059456989348947991901043661782823226131799207928405826704768625965847717569092952956358611129956653168363728472277201472004690547487484012761742621037770817487062542727460986071481637617931927924688193933128778626629097680837726186745124268792500297706396458796003428568541885566270428828518960169534347775509516113340569281584632716833883174540137818054806084028374611738694753444720615817329720039161027422890568025868078313286065420536162580027693902363883904089712607821848633826527348918312131976303130980075046036836290946301872484672674388269069091842673335553264824562911300205690538381351977513618437159540546166348498886938906753153516917155361755149112119802858707903207587510899991341704077285207743762276233872841398264463143570867612866368776242755322016688349660162163373741895459815549742515639893911134045081676960450230595084962108885925301544453338105006186846190264422540119896283239848785461697682924072078057231032931482688480003422209766590897865722609587132496713637050023903750289483824515668189488071101568860576591356892601381866344437229000273133815880872591107463753070398421391293429974808539479448380711668144532419719286369698323995752449268497088824214535715267451408754707310208622482922642291957614776385852511575277532763652225637190903541249861599085877835717694051904109325876311410992395544806870828792663122625110458377550122443907960458807372853937700323415523728212848757567517370317333010745442622090844811091740029245687314406828734502008171851679422931385113573939401125960566998123880864334413008534062453471307460078695095328703967938311158358363040468794317457690147390216815764481517469176080424057848884921135091202440613694707081818922523040493246982072054417991318746292780458903958865087568109031406681533675235956918071898924850482557830180817983340949413244554950235394759190803137286675627177144739871427321320078815302456704631537207340278530272606313621624192210054652502148273220778357151002499312423640482864069598368407542136364221021478264201859434787023137055636378234870192687155444645973610020557098543308837593081844485090903262284324316443104108214381005124058165644309558850538505745103341759347453626543632066398416980880561265214933774114022111178740023143139132381583085211495831195857944339140754577580342468063086149755878648097426332633570240742870077020487570008386398749903465892636081428512437989830349418931625795373622187925329758173281651664966685066851379402464234878333888695343455022989093593158711242848541407369208153861759882289059559917080989571357122486584620556741538598682826935425994792143236201109580977098155749684450038153206983221207187671886061262873795016853862158018074254757289830163870570242573290800906822040754987997794623395196269039704825257648810703567332445317206731297792407727974064036920918762084356792078208280547346384730568615861689493552689576433398363983837305949510407698264741331063189795186162549098735605861551777399627286075141647600929159039022404330767486917052421831627294283254534922770420274503981347974515253074163916692406036493620598250422154351396456129398510379459493324533965169094944330201333703155472092826563222768812482347235720691981866970550050491879234557736168847491445857521754188624158006276451675614633429216574539843282753675513407586244341848740749650033117503726780415524267354978077276141347533022596604086045129219689100982321362859177894456210088015141427529839517639341677534577855140101514669065497458906551262799101143271337792440548639731120173177939456496706981740669717007562959827436322734071345796177060304901162805440040174480725262954809682524069269229213054427407842971938008654512633005345365756876516828860657029708359622627289133656484752328928942098442440322969910415727674789897702500935582281860143400572592429505321478464562158086156435420819961142236560971961562979965150608171190814007052346633486803789716015079783092328305689853640335435350032160149990854153267529766844328856543259325440241967787732317954751394621879087538017393651701185214620543560458180219953210005057682355312024163654371409140737099103425584245281138344098592466557144574055601859691314707938357530011702450367558455038868631526910880444901118992994846390877153238112612064173090160041169446003338384604686070140678734655520449320372507499380945576574010062236108827721418506808678717303394265295480380451879803988919393098862737961962983390180289723560337834727579789271270341751360810345369931380768324082246260073606673356867299829329954006536080770336631388211346348005816123707422383662767193423733625326782045233461140179517754904962526932571325693774315061655574471591147920045260757358076853653898148849486430546790216343486019416929029924965949938971510614668355108948968533977749927136489866692507649799926007162647588158931218642696247690593894763401259426086684288486467418923431150891726826203273235447682814766370008447591611574000870732629829166224845904869708692749559024445448083514771008884532966390933343397177786526775560181774960080754794858589898027986366701102145617113112835250407292001411683361723377054526339147684734514083161870762990516801410525411052573838658956419314059690917459426286540193047297189604495460778582372153441700487324222802775799106810518534225710885567606509728332929727677655539801964062859908605453430429960589120633180405396607734935490444428678675302417245656837292689522461502697330883781112608271442421275589640132784200789796329154526540859923625583996013526539390737010358820247502118023133711242599865690422593374238622384250292377119892645868103616510697917337690278809669513752598324686894725108275797693133654371196914349151047662209157658243102873886384400198891711282534337247521808531604971015501816227703981466039249387354660466077484988975330820704767175621093294162093515479948945942537448501224173933602974957980690346034164161650623606070427264420008150218210522718309641163344425843679580632771619905648963694984308588919674261521659379151535015559777787486587095488258448009336328364301436953272207126402972006856561596825869120621007510854991031949738196259448133209669416799326568281450821446669317004324904411368807437031630395131169038873022020481890675074802393571009912239849803806024075613234095754602246595470780341566190251824048437068525051203997901394882844911175713642126594622147703837869523817558110237259629063632923085815778892187768218566603843650648129851765895803644225372454153431069153099802102045261416080457820279088220309620254138450006459003185324992022530808829056385671899065099916451378042906839661625633700456096422511127459604681819159358717118546005852093177894508451916044670998099583100022201266436061875127813936970935105411893676529237368640404794054175292371027377154298488674913879321406819827622368480754550690376118313495088296699440561839070952882468883959547547573920663595804610248946602703625212472256421034189580969475159793163548051974408495684109824617810450990597554075626945241246935051736696672571102895180948353092055816966117617015373921321499629686458673738598821366237985648447107499322035164016831274741308895105210878159056433689195175940505910791230401506714473448471730489571927839438455880176318244736869567243586716963003348263400438607332515252465557083881857471600507857719877020411647229325447191124504622096900873107020913732902046762746302720637861432727911288021146628245878070418687620910916087888310280046246357097339854948538042826614065735635456399896776755349850054980049789037713585877504010894444477317761909765970290135898253591610948822899224398494798408904612095206057431915165400401871601386409223124295540869457095346350256113351886067932220769473937274659070877275725670660402411503235954900236912032085927297459307754759476547703764608179083860530066120210976888109735935301784275202086468236068312663043088525817190505014193096941185490631860077722327601107469822611685632849244373750708763708072250367233620280244995741238178038192536169614027054600519755077475593376020280400391133844990617657326387646427581567659904896467590006361866402955435763040116180222152603936919621349832066685030966558335914728048220694667864139725618885774289266793684522710440313584817937403680810983952281047706581931398677227435741634423609297735357746762016527496053175932662198539462985302822900360775828757879688353504407146923087549662040272636379069432236962361052833781734156750650885179597591535649430409418104692749536502933155434300600260923024644680569855388370672978498710463594425609747146918502818157540836466329405167572222522834907748032765411837302550355625186722821896427573297515136598977554809957940720826927734854481212127403383035974331593073649357801090963395384868935694453539914966618547548018915219590083916336027621926938454385991786623356612865361621898297568041881291281060246459124466038148425422117299082648934931736070186752343921890171627384697725800683766578831572410401987252969981488951671988298848659416925832868070255124127892693798219952372173567231824014809545101385574666797381050355718839030658628136939422580321692266953891178376757024851915740943959067298125579397758659751288487803650416560052434523428948454889535568585474115627198695997851280191333702335003124195760763636174592562718930225416654406737116411097741232871900369624232413468343572400256929951059033933454140059961242155992172909363934979498178274067322082722523341483744296415080602181951979959686589393191846900225312951715582144704476766568911581610742796473899198495250055985807746712099882514774398576730562119216393077514421473698388297593314950581082243689728907556840131537253452477899244591541612928029226384716421754821881729175524117229851273382403878924789435950875088308981969846023477948307900135983393293721373250802379971234039833537846168676450533367601822809985678398225882243364031744988288069157233951976344348156231038011779873036250395491382024172192352928149904634302145232596842093999356954523309179086193702523919059411094528482105597931621796461755639697501427211085638865341804795549668904487826829969067465269320327768134589194553253562995084022725473132126534275124217056898977016786832876952951338338514252100519408103217525394863488598970613726508682058673615701840811992442975515436794827900910743436425033792010586108316180358964334917382303557265915308535602001408108721006133042093395145665673789369130915663427907723058459742328361789186942623828553595814567162293935500753439274058829929979525027696630357222812903245619967532197240590255316726076119345817462832460393134974265230410462539713629513136353905003315750303210947004244166287697303977074105072446906583144389012868044000579504639989992455942250738075834930057309523388289626317563827587260007670278878916042727779075711828671998612895732671829156433220508513528265711807917706446913482026667456065424087721384363121389750494992389410242456133506142753612725518880053418668241684780773357207626342729396196576842960805657571009767805049213400142137124464125943527654045370972435387331874014394822236651505028267572823211338427883215416622966511061834185034256769410446806683550900560144024944993990205076696408620253651515156089859379373928267442301701588076451422827838640540473443584730399743359501240865966792449449653551004303129647035373698950389018121292326012531689765364035549122134128186647582788692996984917186723414972162696616617667609634640087995749832367723685087702356267646127930858849203998231259455636922737597025925121016145401599526581967703567164939354642333837875919694658351688941451433752226944409132865599713196221206573739420204925395017696056925999337398413545378702935422858928071831923270217782586543228708988973220513086195630197955166508186680500940665088542188856573514289023466995770168714991111340314672920653551155163774961392673348902950449489306049530720115837422428222679205137832206679652448381142061992615401771335877731559632796614597851738232424719856921919761004166145766060384817020411664888351869037551728075479635536465600065053346601107398300155433027235508419295686470919048339482760318080793149907870741163517671235320643414154492173853797768526470263751366916226204597552544902926126131907390269643362515334771621493240136930652131708918574166268367143144669535151055607671064085709661452125437078022870281873526195636765542234715981265928777151771365217645311519613164642352958297088476252542071999132961513820826725664325392669882363546446292612996258741720657167354171368288040955048618579829769643706935662071302539675483288887663020603357539141394184098906590217644582105537928766229800918491613728702837977898329199279824927717810125413067657071193888019210119400495987163663469981613255985531438315676103560376582349114482350413958111875997286988205534766926481225442223771465296402849087021868873324869648229593528987890992987567377837061044370013057510667137662518025473548380638948760898247298336099322209949889564530267746255082640933586596127376683111621882201191297371263378985240324222936003208387488108010666695752719751387127706211302845125544383052408312506522257019082986857153620506825970077344668243633879655864441130015975560875407641577681272998722485020432742513194733211558509708445016261534090203929298335496320461007470178243470839526401832674772612016800673073247082248233173730277292635190746443011198810106988136245882095016987180739734886153496200625724475715904938702902341279072395402762183460730712287600625068685010392244528375864336448007111300769197346682089337288204565912827023724176317586112473581241856490809539740657333791659877122607066382811468810026778926003068998216970978971621145194345388213132819030501032407244119900498136710369326416964627486177974832574243674742463886226668926506744293007559070538887110804773811537457122563564588181126651798300152392320307124753530369102593409333372372166060227511087967990645868221404242892369943050241066328003529152151411496042242072355909208670174198284576332158779208529383680634628534375545813214592214597119852036257261308722724329371311691182331692832375507947170110339220240447499648285856598994657411849340242539030562436752456763920386642855504624272438868761266392654207598247168475582205991540816481870950920323833304006985025907782184415725254378829842813913992365511056675043684439093083856829613851701798357868687087328195195813374711803185097518122584307515884365774319840059464887931144016310359659871417330705692944302965362290611269044119516288123889881286007599683492622707816379195938319747340571485837197623545829316184701976117862085654239331639843836182147072248691227116250461813884161042262092548355149627336031246343354836028823633502448100588003133112525336218245907420282520603732226229463343667199523631870033984049839538984150715078546627808423516220559704467199439644596331948134674742727155554307049365659427928517187226068001320970649654344565944513557435104024041632211430851538550237518481093400670329840085547075145561989834477633438364099024044990560955260328642483316797328297646428150042835953561156555496338402419553949117649159312199799630004495564997724685580471862054793053258451607914171794947205512862935010998960307874824331644380460686598821079846418420116638642128472554799480544267913356945309388796154381597411903660136139448701239573410944273492669091425573203753305032874616552630975866468535721050861104853834274718736296283167214008273591895047534242097497785047209540256718273080627860129018337636982923745959907108772267521148254944734552632477419648124985460058824029861799251577786381901942689354863287605700529455360237351866866927791745980358735168901325029608490633334383762241351447954814057321446747726622774967860533460525643580293621205031306123527706196936752783216184860417114117233401692955014213725218376231704652874783035839703289462584734872912157599236609065023999517388197605139077492481511334534417931517082938343585639695687048634523753022006331084958427731811870776132998448738621482368514189018347457478506573626470647936315336031029784286272334656635108406672371296187213332581184097298253711827658119627364328034778178138994414894290015489564388019031815293210238552707963500661942816258604541932243324569935273502944308664425086461138942337186746738451360560970033306244302069099464349683578349000093169540809425224711288005219377218331171226421545522190155837599202677669175155570664982448754317348503481236552637639697944092419408535343789355321175691630193662204111818571964277854873581779284649077540505814141982341120909964674856229977388601742592867520170486518044073156423920111528481913473875558770655944788605908491592178591063441032680441493221207464345834489203634797705730403195065087512378350331267503202665070940984691199964988837398891662160315880142120539313367738103861711552615667508114937205746611590344490894970453881725742262187387188038951232736110549432828479363493598548946973789608441088231116413710671864892744065060463620727539550209630823510229526489126128964621447867299832504781152535725172757313313608200868243485964477793071840727731747662957263805569137424477000518177037942946255273824558348494050632296386430827517630088839648630874698752265485286647922875904039414761883473573588487515400126534153622122448302667860705474790577325089906673575593076632088813486638209552524979560474334025432361929234292802741821342054282979846948930679944234750923280308053701164853422916038613659687005541696573361274784950559840751624709576845815178042703630310875417791088960814758060083378314044718323133247382006459544340537609465402677232027449889201167241591000021419893286328364618395694387876367993990662070501266023095216516641730063853085967571109087628173657601513612237571212884894083942549705621516671043859690800694306821116646378674445083634429238044775758172421953432822706257622280072649546243460741868078771157043108058104033354650194391260249008762022816040370483562970666023213969936055160538172250534425276189140543714837822302428403088655932934062760363649295263726508020789812196732687853260130338241482351044883208461068968395447806466113666617195293672311949322520553294988111672475441175549825526303206608688774573283258868689931979560496084774231133284579529973473949608798487118235378460554817758977804678081503863730136458691477396588190465745243727934896169869080906864599314388097746406340996163920341500640028819969107638368063894103752874009948380514398942763671960602269069473480679544608264892343413910732015849930653246473647148106325816519944375517083692754450728176821585877666685609044986062182256629089811797021255159334009241746808852646864423157560229288281216364599149559730674755010140993363940159192400847927574330957720913476898433025643151724316958253247829656521586928433013142453864485018238605199337834633228498814240241989558731787439060457034062622246215405041589670823727363752546335510246997757772742723551823958268050114464723933465879529204384028644138989270296909915816639622153169099181994152670266870485388842273424188799456644116152908168356526815446055180094831334764342709762115681642359273631276517205271017640306017937542944903064193145781901060139137759808990724671920964645187459906619583436988142797193658270826929880514731766730044418146373081329886744556507176507579197811018165270133953342928754121600653106568476963138782404107958289798142157897807960196387518866291249609914041197983820727967156264252909528030110760343620532528459378787779866126929258888777990348843313122210030885245104934633233114260532707882518681733772730452062698933617089757784436350589926008483381170936635923334347930574216755472765752902771517144906181483140421975228088110693375034318258765673851428828019000913040341673082399954147439783282110598970954322863252418055803377631923760411586912365244416326456210347686364537387619472192993769933123446318230462035357515415355076600400779427745442343911898038652384205153036029080237074593520890567479385232899765305745111438634152801504780230403755151340742773768161880601969888035818760647086348840257452082345846067848218670094124006451616020413821698614772010443289545722193436490298038054839590874742233144091018049983356410761282991365988436080457285653644279413272378348801541861157583878004075118927775145265268110699646708018641590236628965826085253756397043553530366969881463066170506120655854808785908740753662535595750185302052389515992111596904507114964161200639758872346199482433885846912686584336542783028409848071366854482177347976856885659719200319986598185336974244364706880032680883846038024474162641630157470554837452969640245085421892470864212033953863401221112254403116768824009677216486279547913831034219627611580181923325453467157967775796643640559328909409840391118931594221394883506485194680335590566145505459452176566066023800133458944932102253652973609507803956521456623231859316473757342231777640045293367308787039060643710522498383945598146082600939608633314545017187782794286739037018092199402860241936060998848680945844763873425310244282983206698735724881352748966966256040582452383011777351790323315045882042398073425345030680360992411252672696734108500997206908650112681115685179434528500547787286406751611367758937931606934482651998797288741508984758525268139536357686791280536535846027437714234951885469401351881244683795188500104364257119762737205050720681732884367827311729845679867779514341492240632311434924158174244602367428330901260147667758837713461736520497482774820086464551660623465976371686015416310684467755545833836302098384692882078942675385415489790767710536105850809657691356696275158337287539145828157527144085253871256658414654930659118993813928348913094061265315041371220673855117183403102562763607412056200785655494044138217351768720845233787665148916309070104439370539724208187594013172022169435851636199714398725653058953007956370192049263829389494888855263793750117738061346669669720366172926013990629280339583789324640482439297886235137671438242359022561004811394401530677654093535218245870509475258374682555398783151150250340004695200128042943165804754718876824758382056298145792624065630843121807480774655254337989652205573615065593202613840273631786376537318595495582272014196196522596205243418579543415614421755818568058334974500391974593217248144586975404316337931705273581080781594804295442040187608139807919212466662392552278971540047872647781424100379692388296196129055245262521527744707576960735479413893133873227703904830076385774898766809337626163188196799314362550366088185420625067910210347048580906332454298854785309891200365705424289596107154791909186031600233930407920725671614805242309907504391655556045505694919824898144031215937042449243717938458810285514224500149836860013543310590694019975343833198177736507656434769542080261500986255723028027857921111362426050521985702331474720726581843461000473837518351946393984189420029840827213126446938408822890333643077048540136496900639800386436665293693911165151891959291155442400626054042566876400149097110409696316797767726385186080390248390764037154977467195989568047304337329322883065052231681734593984895365289163023424760529875973733091337622664881965802492755983253281010852991035701914921620512907051286928354302360933843259630305472725524170711709715779417299207007811520898620633727327931327461238655253785020912012781712542041471029911739237945284621543643114156122855901117343854464605367409823661518795259822664097816349655744789253721131545649829486856288300460511436728979664380573806786900789525369705908689970235121033962120001765050729204722094802919666944038391484933914511189429767251506589953981661298621302377824319610340179035626805771803726382168991400818737784254515794665275348064317642133548057306467152269546117760474483805529043445199198366903310117616664203402554380093083934204186753004392990045329692084965398401846005370594490450177908397701001672280031552209875921173690912063992713070445870182390258021321299580510531409901153836736488315080875595113949281437434408348495470753903834330140830309713353452035421170367548513094507279246721852821383098952828936798271975262222770316127731611775903805141686727571570321632799383357542645351390711223852755615034790692742460230215713435033726170332118485384771577821289752785861719977647944979232010435627069786860246602969437753449415439808040661912572137261786337720670621808542819934139546323960426979652744125394822519483525298844928822392561258001688936070202303622263844682554537047018310699340067231102007451653921025591181702689594949978303456656818036984394185286106697770127736777770334727484555562611136210606858345145250419864749675728068628635690857154359989719870620307436943481078572945806284018841739368433478240840781043722584192852582799381261359822162387464640622714925032719741896909384146271222293897734094438873692856353245687695067907058009369051929598249680282340469084255329280143094357110618192661413890178396462186006944310818851494622437348970076722023439752708341535989435690559172052407994915470738396829998379927692684140198891365913693373441435664689906026897925234820399681114593037324187818611771005101706699331928888569917720240451191496413185360338459796739818407942126456094605607874156972668036189287977828761476877186927503036760446535258428921340464470840761796298065527857768748974788514843076989201204756732720549236688460688984777569001489538301580649015587856811649902742416377485760250039380501026212340011939728713598660103191483806555442841103430908985491582151353666318813880631697715327665595445773456228364984903342141148674696754769347732053574784929711092742668303986401784639775945253932015854406956985375502486077223508468101426473984295406075431899097286054109348751686751464066591182171851495477044565097396465600689025165517561909219943216980197551794942124519078754674819470640548653834053215500727111267995569221203895985910050918350667716692339497816533565060540553419274899135693819667421252595572618736962925294792645465403860965768387639073746616910900623647824785001665659333372165996945215980610205569538332946897210228776552471548662825763285895557980534332814207045805385223581917582703042243263216361440949029337427505106364326312796879286927122579700230716695168678699740748833919534545354828238301019178140384283965985654909998298922786820453719853556496777588563275955142730160282604205500491504527014191272561104467760592706099494485410667729315050928271349922707125882733867079536870093243101522454648663687659035942267025145459643794821422636254404911047136967322861462120478441517059301820360335182733185445134336482743524608299694508629749242502382459653624825156238732397278498477296083591935417944355212390614509775013316866580466550404973590811256693711972846362193082131838647249425015165144936930897027775747887676645958995702357986605200579920546901462756660583530595107948015073833710964280639551988675295632721456256994883320162467032935287160179029049819564670936374088976941204072643300309548382408552851296393519640894137921568087134169611259896184389832576789511436421203279539341969233219645237192057094058003198636464313660598240698367193456761763877567858963245891708545057377506650038874608294097730764216213390094153673107700572130852097121826135993877946975030833055556829509492336027446466898217846365072588724750097789611708594778478413409766191048007359118452318978295770644747754811467906391268311703172067929749462307733095760191972905049619192992784161208711064984491243494952380157136003422589478010547458034273572501577242223429770599366003501603980794319201003179797505948804123450599596324832193488716548880456704558132351081621119117902116899483003051280660399565704785718173734677579193564313783647443934706455930364339471438949303321215838304330292489397428983203274107219942722394894013809610673291128730055752552618243895507876259078602825665458749592822544667190299094115478517172346861486247486309402191706733830881934045661175278848157898048752247197909893803647846768627306834081715816546674126702980802245395518976445678385519234349617490384605590123367251652529086137266730278994332662635663482280085166432313770932737905166801432532690214336563384380077953019240482595205204864173398754606143102595402022653400112168102107682322908546576413616867893908557139358357135822743235007401546870313231221646386346992562867549172311458108874495942419365561949628493934760021691772469535693044205498353329366608906141718290398968071621391000659750375148463054215060117652701145522938598148003493288344421043807097675616606070846214412737571258173819965168578881139655837544088823794690630283854492551763659607197850754243619769324188525178807459439590484712395541205416637520264720332924557349648012608004453518522527429967392438629506138102239099040524958175824107644112552685056478938512713220075272083433833406714621605733273355365904023372312223337968073845667588771974848701696747217995118635692274632322121055682793266539972057288503051200806612704149312880959239439613619196235436594315543672619779911519554584516325422316627090734346157497098004828662258870784428925112581864685606058950493700759638355179256569166812526056341623403441892169653905185930731757529004599583168757257608449751904396294743156103253923588848743810695273950230151500485667143389829175265859696460661303630083982530917353261160393613977603243985012061018119087182408352356664183163130534041217534117695192122888466735797849918550141821932312579317852728242902502268943935634858801291935094846363775678394425986775246650045355630826568890700922406431443979178598904921525694056827253286358966147523902090218630232910154712698320008867256981739845993811137529379890320622240580484699175590154231442197996121426855681061420896590330404454079538870139990906755680594096388493319293401834176927108317673793911662144223514038736513979113519731908625856579153897544840739326074410354259449432373752963863824391991159590242326954481297128149189963309583672420519537066302374253735473343844655666944099896545216248734180820477518928677336201545428468787649532051392280134741056770995100915038572130582505682643779738280654036635758280179725397157276853566724671107994894110156827381629874824668001456248067764726435555254202970375290719894602320693623684073980469384487077061062302960627741526136179647068032802746258003806506402323712692848600882114099761494104339505154937425376598491928414116762163789913300942646509571757436356454035700529881055789970280799193071774885420566185095551373814959681252022764270884111148695456958369375675513963754937560321937478647630059897809231558570506937343932784613261075511538054254085933494290287793974406540362373685541428485020605649778200142216682588542837764308535597256540330671239107431265695281708295498656484656899999968007894488593631127715871050582362109895182639615691225428671681115562036609537771733077887376924138709292247831373662454349153666711045093015326860950667877948884618757174854775458039085951954502923116721159417903856596570297057625049889648145543644031080577837961805530204979481551485695089209731439197790062445061218079281586184498880218860333686942936854645867595842240050631563640380042828623658752521013008198942416360855660793710491976515666252631904408350893965111807573899129730640823406784464293850118978154275092296435297971939234460973428122896510118833158880237917912423669232426015126570598865569400308423012930543652778098776469259841837543836023334268760714446814019583008885326772082204010990734784551856083265605903867366153143686052901084231830818125468276247390401774165207382971514676559601654952816288501129222288902685472685249348378806749316701305084335988954317517642045817711388900585466410038899307248829946404535083346738031879364317019475179052589323643936624748856981868034038836760615460430643163584520189599638759093306345751210423292105471479354246623329814650807318933300933343937676279191628110057171099620572118856760727907282116323213054796527717007329865849570899236242793227384161670107979436295898231158090270270801716745897895384615707502186616570579500577627012480333673936272321529732404628357719572395352926525673567217451820305859189663452899763193758475085066998978885129014661442492916966214630283752917437982079086676631396199382433344055024287908872825588759174130641445035479009832076693859885429517193607378409269484683577999213786899531457091521563127185121547975807334065201587316479863644183813924352992729047603250307251875315601435983541010932281506016151050866282235149167547203358718431835886679327489084872378273983727596795261710119130778497634756619032234888712163744060162761645905870738296124076936763802711096560012371637565639839626312899984139135276658071380881905633388845008905650405310827951067061170215703390549871637431023835577396408548556426531140783317361033578320500970059719561611780750568760600086962442207481426020193857510136854332227333498933319691503015728119700341874742289982899354058944489104392081667119104518623086607229730844012181026893434998647396209290417573179036974724491045132671899517667969259650649807076978760446679771117589506586309809390780635696229124619535207139008894573358632308822351382763700993383472775391012375147955681848820866358707944035396785803829693147910448158184302597146532175226784672422303536590684039517947469308371092648052429618665806345080120446073829240125555808016949789279862428379592984597002643101787002563741951768499755764306150118758211298321770198428322409190810045707477738259376559674726207171989369759015882209747924286577736334157962235671169329437375215745173455932607586316412704895050116901866552396464089820943349075649264534394405009807238457960571900698491088196554042129745441257964504724625867725522005920843552729471719511364616821722265775832614577000022128767626570535667842425349041325072772644439509911617941286935783400515813983656560127097771901436641797031975837643471773345383067920103441003685042074676852253150248668280426275333297027264575621940654754464776548834169309215492374647894376073847645689134593842641480949907940209715769306365721272735867207662309474191033104712932174043853675542251661694644486365952739239729617693319100744901745359880276025020429405393538120369818422884012102662263713576136188760607796626263390346808267120725950881549320880651133314638972258821036388155841990626185953843628313198302196862316072979919471490623469798204773464006110530552058047642710806892008016694216626317036478196336114078966419528535005070760192756827086520506866978917281456972644414760571028420936548760694689713922868869428602491954011578264033380961693464497120160827910601307380736050507871675787037614967631192354497913872298954145685863599258214143993275243500628971410531095376935747221956086933474078001697788063671060738408764443684706688840421290608910585402921099746687508493303905094326749535451435076788067733765066448590974183089423426170537806240129281364397409645664890174982297305957139302823741927645431624837140344831988854962644930063957269843500852932376800527588012508320364733052796232064087402283269382826567351535803633872716512309457908724449879063829160995665032747772950239157634761484348901721138889732507685741608571610988859479028060366131203807776162485037123517999440045744697789071287008626617219540688821669178641853757339384473594442248929064670777590983547234437659622140305250001024201090073801354950274841487345328071981147265899495550157330250860787822931870717455852801638533644474982804984702800888291095371338969241447706801466220987278905576285527758712678217977239817286679999677937298639128046507282839130818234645962696636782439986470064199773321297887079260971372469963937052009790603893645722474704494914654050251955158971443693350998178470838845408138062790543206860699364626734751515970857045215938521495667875031068057045362269113907085743257409201098563038807476722413981960933650271391548758331927914344462573275028521293796718722224343721167969928722545996566682920999088411193171892095458576108497221523947660261893009611234915872421486501547197281246452923842855609961048210706316987288778684920965446138118243607032663302915773437912007262940407956225050556292308526477660541404769574239779233262153226316414583192069255572381844073350776984629736412190069013182687071524300037879180817163131995644258793940449091164054214124186361368818134748488008294096342262479817040151101410273746960342628579913128509420115756064651061029866317188795924842830494565959006478260154150025350093250756517680493660041085367197915800366728465431633016731659715199513268728852919969686933424773643742859839273867305130951448515766912175896479580645243806587252652664391692069356212244757926552208228843431277099023934550291288504330779101364919978136070594265168646396686421120234223884010036146890283738315592551331213535312823756944621363297751649534460214317327992634721577953527775860464296804782361661154652184739580770600147069072594004686676681773624232146901420557547894840855353419172731887797370605286538010418642133687338154846239241331749759194337808742222672660782996710892150944750185561239372974119235580657698616499531836276824079926077999885371608383386125374435649493557026084991089481884010818466468115407363497164273759038259419007602302342628311199092394713799687845213532997061732168114365324434334762147948320845004027731963729190083530582871636625193454665872915479772509374950538088784612339701009220767460876664778690479723718792331037543978109071032320503718760439403109101374903580892577537913275733132073851319310474777709079978653072004283210502196616319512426439902795133939979679842208733284525700865302651873752380367299793742284095940513787024599477611919404137598604656454683964954273351080614599333374950564102494581882051863496454002712055915482234431609082044543279867516095625840844685232936945657514280253551932534277770212178121477072722158993166757392176273686710711965648757339183434639631170769758298841208867772358418283190701860364704777243805424063304063725627000587611110273694136890198917584989721890653333619005361551159614366089377098481752458027860910723103654424660813920758875007434745782832095690398051068279719676018823693056204398489634027787143396408547289347679919449786694553650265788771579404580921675322892413941230379412743230473703121691131962628484384521606278526067652303566214691693899025101078069929083898003312134168887768002626425702422574939667447888076991663765878736416008994755727635738097437386335325230377534535901971532756199404728055589655702169914718640962417074545072058406650184639971063721291974017154562929335562941693394173634043878997776374878992832897135217393886515983924676839970896496664282786904255187956413321664669577188766874026318669548935555037303152077234397783340067941478242923995663577787553704900596953706466842884804882646659756878504854160410528060286488726586052807856352632568111806898103932924751506339168680377104662332929343847638415434516977455938936879547695326380192634448416369219907624158266586264983284002561851741772085985387446167820348155907400469373581369776916997355274204869091997144704330797478582333210457556342119894681346964337634252395532027702679298230748863450967109595374911732242891914887288294319637234169591889138241423800431663579720649105038176536844997100420633226181794886871480907337968775631784091228678847499331440112237911904084705047779203562841134864382472542674948554822211115818727119988979722120254886188831909779278628436162263420980874744066274214177534211168774763530229964946599305194574587421989901425310062004491128108644118987112234331255798455021234461198733171108036572533396065746213993111191008250569382219809737066640427909509409835582614746214612102954556379091565992760622277403371145258042321700269046568783989584597408163424212502702783801892600798325503518685452323965317115197631100695168887146894051209647866320402636529571256473801053634875254617146879607804982182214215137650220097578435234566228924270971870181900566615402076379428644603716857323601631219826349658321055208391524763600771825412800297007406636425645104925295700146952179280193910261954846377717045982492213374091890238337964708993733459921509603887580955709833943839181127664394183019795296945225738301965706829115939270700738615326294057021314300880070837885503832971525673396216565536614487209061609205585883993717210972772337624227880316887807500705663784963438276303775757788894442836966545680196110924304101586194298544341469665697236070496026957288064110861736459911082297404394552169482666210391374607257321830732074474999241138796412084053166675081729484293740248041515570662939615145462999600217505216861790617353128175772459993011274574971430296328673057905048974152413796123439747217595769883933555966586624321484686744593955978991903567970801970107710591082140335721547105674282238308633994142001078193618792192129045299500107163960056343485084216735598677789726467113234668938757754320499420623867608862476421274189021932288093419961831239395285939194063086787125480001085971920147115102890982411904324701086256263639432218869021783567439116002534567590360686617453782065870067300163365241872480124609607629274061953050346361204558172592508529920628092276051680457544006999088803169300670618507183710713888514318603160808106807577017152588046685555942766655885666675040320364478009291634995227676383018597152220083933222741493782350983515063972003653307172767074331338490367006645622755621164785593734170974978732423444426748298278742681777766085424497636166787805835611427108435092463285662188747765706607954404450974178427015063628851349277921987695356745720302955247639349099222481583997199981546809113074639462864947169877597035523129313501382364293525992068218374232360213367350652550038665000821818762945712170011282097891084733151537579158090798244390808557269034400062467268590159511141545902253576916780500552133657245807357477674744727739605204892398070466020930590630443635247258838739150479872147292851464046213989773782913264922719729183119920511718028637995738334090295690936463355544071858199517594102257361899994418263662439520141785764781162058769450534283683984151284064912747848173359617461230984457676307016255075533594913423633970720367740633505707053200583302900726128358322399674577740716890453638314489670127432758213583593122617138902437001984938873556163417252962380014997697410584600880161882387085853227786193682893312010486165995054807680163132079038151992292737917741268366512600738960250642080492968393743572807859408598618649841111354516768074292334290433564725452848333266725621499539731331917900832289509082523360123940387630941331695877796759275699366765442550926936436481750878282196896949324416351484912505087858835933228381715342933621158956372457257614255392399058086174353030916434815432370189548321844708858489230934340469191837683246737910425498769794299737904806264581336598420200625474809557371481734391879728387530842897650301915147686863360540568537265326438033392767349535525803983752318054651699950445587279606836715842874423584481211632937582328954618421737809821847474072872867741472913450083073680590407434372461013559545751872023927454926680366682322796569303289459483261619136353439095463615955560203233102284978892346940962449930124510129185450812984204818211233892428729640195264413052977840524047081747916280534882795250405240356096510929189526812570789192665889845540687265825850390348907995861595890208781203058885406243061854336669838924964953896454462396088495384740931492852637016719977279226180946657983639183517165751216584102639242132420461172767377911535470601526218995809592153957658750068622579007195795118600157153213586957249325289972590116578847928228144836111395985773851682006963825903181691910012385143696018154441811587467965882174107168029220217185126162272629596029558967076690478376942857244003195373161303822724101938790077705930830927642459246723149149972498023696096919038426684519980260057826027441431027479685651767990182853724212434078447193727991412697451673317412371697316950190043899816474337874866744538559839549482564489296513333154416772205067770147988934532227940271175382639157017536924231452358112779767729758315931819637227336494529855098068537521120626359383768992089752672445835451106995743765118079360269028300410637690503633485417884850178114860466367295610831447165486342396332182785198379985462969979479204765985068553834923507237095621404503138353406624341874451175254175267599106058106404617997367533121599390521521423573548205398171442965894144492553725028987313542049083750733424529826517168776307783437259404962695702363936509273275282704276369014889554432609802828642017158251254126243643116306274706319640746575826282270001697460427884391678568596306629394845979072023285259060619829478459458232158358198710417080388760071178576400641863549437107335419135856189772614676016848308500399557462450014920897840449058246298255084236886273533461839211809477837447479752198364161359324234428730145394033016747828603067835984312448902596098890751774512906887472489623059865214507070822173055498195418346567720322442811799244141183606630894082886863187704719255610352651384314130450966497043702117201730774205432607690022681427682954294243357096406849627462154806270667091368218928416317902530971096687889424553256918615712232093434194157914699246841527238592285447822348455409435011032113928736443669786470927710981644036267528879258179433840759793056291549428247527987472431028794630669340842271737341169842157799067782269788835827784395039772893478373443415028799928153865528150677881330020087895183974003858635822416145252857475615564523611829009229651976646578377948765996536682882448943161958368076905135566788565998451483285889384740173266293134524267605989705652440099738906045342728837367813965822098438114983116226414556823303832479403471215699154023790650285954211009265791182307359663785491159294394948418772513965719380507326614427038798256504769837660988210708917137661138995927890804140394388023700865088240638335997721994309823912268752179349210487979249149852351467551818166338570820048068642405032089966620006007204054269563271295078044947656798036337241960863610561078218519079357234989495564876575945493054219413219993592900128776575233725297432450845830484708154994940032458445022036186317020848138592414449416608776181559373574588250245682490032672421131137697105889874949444473767125642181879319676475101540756461829399017718714865071165389771824238634063816367888991922703397667078395400581417536197739420274641202763973333294662087199047533087271665671843959636578436915392455512994754541509379449650317092507848838428729862632222031097161707736325691872321381805596883073864670835052789622445010548226475986890147650811339334855839921099869355642484871628839829711969220840974583403156621185633848383220328716355635625580500015730412963960702200632385226689486036649047258067418997882367586004252556844489631246599764896081741042633331991102101050084561596372185767172221144415107848582206180966452088642907329154156695551684617536479154569080085470951567940419650836637212688893091190541553005276235486893569074372541410183884594297126755643460086487886088872172602663105779303673365214238646118122467215081236202880703506959445788511000349825169624476362740679999910537765474827727266364018004380607486578906861834251229388347396559670149866587739458444864365751696980183775452892176980901708296402396623150200821361970477051639371563902974157603291939536076611804659681311009748587346838994201475191028981839034320023330263087375915391287884364839322574425983801797585124450846230694839098883089206572970940262983144627257908634721562213149640734652915422458355784769962524840467482029692776533131152146285618394651002948696555621096121735599274535460557831819125600812784686575247374533984991306336951980564499101089760437213510783256622452223778864740058603621584899405311818972733896612048633863924451434452018924274079982852429252169444754292194972035638299329187609580171394418430166796615248240558037091938352855549940147127189932402047843667197181977082713653984944978903672803402045025427058078729368100934352690335184482170240154119744398457689228994736581076582360290916783421394442881664815610844926852398764647831757986049061568507980381560976872385247738371274495409350911257209383721405595145188938456064855662171147861662596483242848450348739090751882964246169991814313497442310119332350657116592628649407567592089764863516222418861462453466331158561075205039025800222071130894783838267323724793244952229304908236033117756750886244532348523256192609625816588675045938272876084026172628785472938123355324246234119198581744066539615886141614482501950331607147418289378321894412419040378148246660090181337641062421379900480051094752933643234566466639028060690097501397741326051609997545539772794582170694635815117193279360857432555258323298008639774086979944479848389326002048189660259232227938668992059642532403656493766242711196957349996252478202455634381857544596456560706933140907747737635547315767261383028035970793812720615296348998691714275845892774736730724999825303908398956270488908884129835567621695296247982162020798814331062690554729269153066210336686989181599491095536523891899548639741696557261044466367192371729422338601278776772722580191611629899153420812325164680462028870273676959927595229263835984362989093226934481121346368596399420230288474268235296746572732145397936889155043102974900426014193144306088284547070893613724235281102792942967246565758290907549474373882549913763071210188402915358412318394624346290177297641810696711757241230501057424505229411865284157286533924706055509294008235094947328761175644386131940095305085832045171628515142372212773990790054761255798751359345597199367838591414507865313340010158766952077751325688950760155512495984026335345951184679997149395740749580738832956494485401467526026645543080233082909517680065200950842342526334621055732620655392340222960061898598794172635182307019943891153234704544892447254362653640898998480167710016128247314533059821275749827579892962133158088493972452518587511859272736456202079181900365214352031828600364653319372070302950254436349213375049282651363244177360900564744227632319833620872763698197291310930006394894485544616275287925375559054011902027996261478408024521712417544680607944211958699375229970102422462628348601945789928110607835296127513884526343325846695259492080103188730711533792399471839382472321732652455545804856233792588942344322531623348622990405846549684316408115624999994195090541788089351888797226015372989077136654174080072373386875611819398627784894524145026997938645956592296873038878471559806913935060158348637171413971148338115771127127669414356475374320231923389803287646313671739043872588343667841480884277039117788970067077100183505446905334288259140110473554160830083504379367511953114788693562182782729620866697983834135745707713779993012329365277898762630768144093452492279971504802324072840217744916367126629535220644936716513970426877843161556151199874593876610205092125064684603641840713562865994938186423554118349711513136381889401437198299885383731536839863902909448850051319831394726112021343706963667623707599648755737218196889098845894605287787384481758692267681681787971074209580440465542153060240112209751509423934658468687251487367336089588277327363582778524444923964021236364536639271860683492559873259886881342299598440270177407018935702113614417258328782888165856299029278539871689347705654804564225795431539202431896704362460475023360646015123284114638305321079478463963481381031160700980716950946545701276606983825769337919777966854155157609989521390138332383954355605762668022371213764281569135731347107495845275945443474374898470572340155937140574859788113004922700404020707042106682703423345520659629702113171943422841840842130148593645825573454566433227636049011626151856422276801601564756862815614393763500418115330586343895237412446350984160157449128339197034988461133087834191625749889154675863579263547943527347839008848393418288381303881466726370775026087766109350777895765925423856534043264614280372528604517604389007922189874452756635727773166037291193121074527597128520030217982906856122611577228625478078997722189577375606267235447746874284150077548277534268015805167491695098204190924071123996425882836384101477560091746216607941544471509780306073460260641511439832999425107548726657672517556448390294152670874233831024766717082143070214766412412507705617020409686807529605684808858109408590661659004993315098329106893411391502221492121366561547125739800407426002226925640186633579755416622858411712336704113357589597848173406987437073352404622156617589958583113875696734702554729620613001829699887864140383595957364755505647373905627215804208506079943290838338312940777494780783148803511357122174146065847915892702133928959284290833630297493066092071774228185512769280476830781247288753707827164639803134437636087622477788302448973725228682704176272958378204503625358501408839761228785735126323836601717990379327117064151804770235373334527522344411164304832121055462532723272060106261453877556803336976060956281149123725413431746143020560454657531819973624125477267639132647855354652356498976720410400130980999342725036876951126671911597489331888435113764052139433907990159448726660697912306208174439397483251676562134057412343688332856991891990984797632958464258971550450052808658192855283852121525829305289914115637683952980799431521291880684625069268750620177450942956954155463873712846741047090595203391183723947547440276726525233588969866307596910511689943475681080877813684806770936367883486091127636736633513110817466605233894385258211938759868547269650246088301643661077541324072900826727481666374362012675101719874136639366709822541209129266740161660684334345136461574457676757183754378194383508163239039164981182575327353324902399533870087867291356565895554352151690709734343284492951835050676569359947843714252237430105951563320224573927946530754309351956724771981848305372585830472420736922256775054515983201821607168801225018455181352155115328392672574859893920542005637361370127952507160541070930557641921319841110290887114773536621693772886907921112486011774493307099945598044022028565253418170161181713350462642315057768624563513509771794433759282371849440573464207945549220794598695652864929226004331898270420646411257295936518993474435297025853067000968436513814274535221570207845660806846235778698377788788933068473444871964679346644824401482867889500596516829084436585672167988885675582012950537449403912013834555781985647861684430080204239107451913214763542567112616672424377380496708215506222922714194841299214286075366270532006017399540766374789666794909477999504877202634792471419833785836633173147180708550529330892204992117545682745559475326384229411305737968408609510713198444726837657255037980331899964159666326059143087751507548984749138495287259071858417973467721311340563445410250504100002725818950843109109071420243561052339408270988755508375977639119635238537683674755610731811627915101067862249234530372229186787504286595518543077796641425201144107320999328583893742843636600438900537113012789849002822397616451954736389322904968053811032122549501095052917211403732439025243001224844969176035264135405243243056716064347446427235837793372928608525212441971526171408900560731139313615336234963032689772262862680170443682002785916933754239051765358896798195291369722620262526587195122709454954228382764925467858880043519825370546221368288774279461287184092352378141098045283729916758498302448503393750305765298294370588401319272949881984384299666684297961427573079182570514473133723546417709522337369199771871415080382406341172331057090223611678643462070031667745915123568349925975603311932726823631729317473942402763693396263339912049765644393937915552401205810873180747275185390842947578083508152014828817558759570945523513812837904927433535980593936399118705775343838630491885012344786545177073405461418288016431870148326819257478722290394273548897486036310576046870827724959510472217067453596815098815976696286712136219677216034604203501236519464033289067701585313185999182681077197855283243419452056430965892480792132270264193286573144381665910466228572496351592228664723951139088399618209593892661397810579291752661426951319780988706979263683705402979543970516202095957793130697418566491010136274782268973867268616923296626771644582022187003595648896663088711675864583645370540189343382808071343636988274710437825707525724728259387829966899295171883229062250535769982105405508573855270531167407893001115544109081506634513229465668644855959000565482323505380342118136466325414135703924591448230661811418028342408483882103004570210986166268311604835759427420877615998956090278019706950500274137581500067123515391094936012048701642044611727519957583196287817446013006526421685718726406207069536559216742386799288811386387980616712267337624452906019368696690309286174502329178637508550807903098851344670085068329685609196546870056942909721815037836192960866319189093068411203042494732522104289515145946751706923937211888359358957349259406061325759060376181876823956773487159479555152894012130480791609747763126594340029496536633402863223393999242252152999342376996133679702597986042852097956859944284016928714746584021571309987115688647718446750597561728204237256425065458749953861417139256985791996228360915002897206246714334181006893024637621573831159014145475005283087327221248833028345268480345286932973746967261164760643573011964404862552702473621249683266718556331691094952095920545210478407196025797558716285068006586832031056340524337362373230602616072765618768792020903770697794232769485439327428681994720276432120861841286071373595868158138179036780757188586153020690387522146797219924881769972324251321971445289059455043103131795867346041843976601511317091785949023192091071924624292646607843834297049346946423190639357938948571639113486534066120213256119987151834482272165428116017377844593098804429094601327748299622777371407791929006892519807991198354568147105986635860888405817212929526864111067655675773871188090688955484914849303498613593579455209414136289019818970917634537549466390862308704930418769925499179542392474472501521172006695724461187448288837538106034210811451499790504091802050544157915300252650601787010472617155203847591263435397582221554875071151975790090070176540836936618164027322808749564119213169425270182120705440800008261144781780281740901385976939137161532017824500263219843817491355248754441053690144969067412187473737203367101014344557976730739146214280957312866079471537385698434967020941495378972180995653937288631522724997815132806038378347004498883850956515853657116342925731625115189763038196259567295223172986726613311809099688260967918078962358991803035089091214412020181165283742285515248490059079279418430474245569111674689354299984710556980172264285829458453508849838856540240873469081082164307594192935080406842890384305690083127525339315760456588931854530335484931959740961108404217335210077919322026702077070636873951913731810284764074882009412797297648451386935243067883217683509914951217367350046827992358117951354555956303601844101121767242978784206080561229506898410338517976047754448760553714023605519695323106198719789206478516569978794081439290825320370371465601236309231973103679684574879439612314403758805480445547731420881610382236725352152803176107060187249863142156660647745111148730589795653104650526385796021567864168931187338912762034714242123153483184137279735154676172542197301041676403085094386199709465013011006145090887351900954186554271338348576176257754271524401017034195693161415460539071133966234085729002537915112576615747409992347257519904434646034597384325479025448244307485054452651211892396288748182231367584585342859237523049915820278745819121752040610876137805316956056108697487482855384134257077899739235166197411554921915998141978111425754222368690079366271455278478451004249695363133922363205445114977467671702803962453295315628114873982610988491309556068119869822109581351618789626548699766616543671633077715504617821754889012560722658621146366625464978281266024588945863341241192625752283364199961035345926259973077696822876988233093601887238546853177636054693201836986888547124815817340046420927584971109766792360920826263070835916096814716417972890571313430059436208095955106875912840878870090775196069467801530230594236122831288201853411906293779202799265941078436369205187314273242193716318483351295994825308477664193560721779307103649879111882867834455793584540957162081474874538637203545770492071953806480133753008775919267180799393090078133607529855290002744789739277032249218311542217752314691950310676787787530507266591604670986305701797051530941753636765958853568867333283786817289614807633562132993620998881587932165887483988730392918407372334705548211807894270423203052041827915793889456453256670344826142230911406793778874178415457867895130073145198803347580024724639659801339970001377187985451432185314197402462325696349183217947288490483821322884624830546012771293241060188669937981146395233540154547294183777187671057818693201525444712257515457219155992957175127025845847749913894242241188431958454059765814119377764934487859501489935908273126233441989529519720110772839492291138978180452592155091787903200306493408471080627627351846342092190543641616854618884067239241095173192673084290308079617023938406825766052374130592245809334905183935366770198430951373705622241730174646754882579289930622854864098123438109448213985319672832009558705863660193593874953230467908507780772372757555703204658374040940337120835760167049164948104286611984104046771404674446521323259168238767009520866604699934699386717377190289230133019981262145268818205282407723157763834321913946249649688659826576002834187776495657771741621364315369533990160783753610424852634404926946781769242760788925821414425746406940613286592129736664366129299258810217272058881665924355289022829383221350939536122645604522927597808017748823856930602237180298373794074499425582397667285517259283774312270540333018104249090518893194390051874946098695526501094324162624472647989734906969285924472931541858716606563427072428331023863122697195790475096598832649981910397662390737895417106404630210816493857886472520578986852409792922363130612171949441760972930605076889619772997938529483261155176939066433767508419916116381969070911815721405397194506009859666486160045472745674917068888161378476341474601257339913878147168760451126353686582899372410793865380262483141147128496882756661631700249057856241467470293191459663201371696405368853368693723870221702422302713093726245922721155136429711389314808419732323028893793931036982262283857611608160647804986752680554384758662198530117600780989426553254952965557471035179103457845504561687077631538928513561293774129987528488345362495334623270951485943445103008218164412337389879267122288048630042785084389968287660523147540605060450904994663135282255489863711775111975553948240659758511140513718889003911908053497865416834521971609649584227023537677873266664743991840926128022134241086394711683341463076372727010388611592722084015471720675152183488629596877139222657616134452809795292282273656660861983442573485167190822750185436434728524583733040160817337279688372948888511046751279305102962374869544914998208616386293428243176768594504424942850758245263608552057355572877947420162567497337187769277707090481091420171813189241374705041436306462088587685103520370512260538578134577560898473915929468592416048606984996732428540276209922876408117888922143216282035051673154789372760732525984256940427203150895540137359195184482168439010538195745403421159467289260997504907986224798052705022203399829094809921641664575209589171327544035569166298003709168300621242285978423639353357767520592629427356384420692813672636330131643330960545006786398024936427615903924815785273759509588393293430958176347113386966991345221629438096164771892747312675683825281023804205103948592842929427830706331199631521764514661191303313312365311930277997076296497854390420733933113546396254316753177120851166437897994023805323309078073362852007813556980354074430880931138089417987882302232191748489280394983657524895144999378573211615894886929810084338425694451649809827887858062978079322144436743100167097152170414605862345516755700926546832994931078458632894760198098147915239923159462300675828989231015130824322453406651913573813594004634676673958761337100595121663975252869780513361434260672023411526870073726782527341620356429811366330173988982870085956510154725354726672460278755980994607053829459909544953463816466036618592465284869861078330403294059188644882204748318988348082756254936199953528166272953529340808302314152270071640128627194082146920540375774382672096433777996933824323517249389860091615918348942732220485747609560956723333773162585330765134791760223993730953474352410049705816354211240714202581944689253869599796829047755642244111739553324744776595688398365008507876102353208203797085700952073265804162349647404822665845920610552549364357281087949504048205028307469474137894859111024318558789872731699573445278494034957567616185134940641291864328452818449414061657131698885822125191455662064982752600785692055688404949727111698065942389802601787817716084620716029046506884574037761680777546925280886630264680672927870368995528376140722023223497481480513990088671110580197956053486634649643807823618745860074547676932137781578450313572412998331098103121417166587565331806404621211151214740260829893668457649735038772127643487590855598075635913878481733405206246203911797105303997787272841350103803649884469489747314657121879044546915444355750569686830001892067766854733157848030231931034932644034333611603538590980650418727360334457021895339447687715741844664512069130840373581907439211113343574956077734791857143717467516679684600097935591816121889179138128781232323714702928689651826598897148884119399804533226684075345990599984417247088027936137079791277106015192530557711062473100898820943114888645608646389585955416088723300661046775150231923496621176464658514187705356884888506889076564617966561241903721528720504006368660556238948172384716700773959997243278045628965409108205314479714696016081621043952931919882532420152457229799788219640861675848817704136841098078135051028116888695826078017939094206099012234421751405126266004108570853144626690125646220798883076199678088715783711176168988028347442532713569817456673801945624456405000314514388843259932993685606329443994771699929199379786778816560286709886194070780233517108264360384105498676380416151366578184126513122010369730737555122581155999797179319769946490559547272829596781747243969794145857694219698589558767294199709199257700401372736190425481164184392962415163324345694806917638357698551289406577793170217800986476388860010542059547513453807006753329163372979912140560244842163796885394365717259960961048375352272097202955281488875472568396873073789368485328107293661518881234422260272896790621389227927528552206169285030958355922571495686612199120573310064018684940735384067853508858840991361875015208628832032333961527888929429818571628155403389963064350250105621031857046199400673573319028462641131443435795065211674300720567596665712501044881228917705140567084920492398126046615306985279683278398444527347089463238891673486782860298968564765824263746861828128282227976138184272955191710548779757178421039014736631888924359663121602122128655108188372016633462606735861420936498235691276484015388867475876591830780565196246611625865044703491168237043718986211994064872434704485985792310317784880581734349543940480435235576656873537831073323441751981113089220694398146640856704832252666694921778237253914265733196558188195783166264373481757308372315734630483140614020355914379921563389864759656596268437607113431827661639444059418866987225932868318983828429226275619427282927249203134633018427888139058510418066530658135723788771273515912000682126158261317485806421073939767608705985570055000530064427437666961933075483224331855053195729816715519669122953991363052751217566378988199979696271704652346659361742829025307416650355603659198628105043083394389807444558845818484180111625783177116149014130990557402415653762843810974473024979135575839923563149808566374447777937940005103711623065863127731438481876102957073240130117765109012323163136987969441203705109276141145376005596823659893043768042201284237165838151188269618004822931376152105058138981017563731310700138275039967672698529271044243436020810580365044027733619411892902655307467620220195362465518839622994315355734598278584357143252417897446929183939711407325609836988910636201444298925904589613503931813893479656052642084105515343003246242931543137579034230202651875878889152638154593967053829381054043010506042548239234976686414543461888484550824407231713715790279386988202819747357916861649224404612366211121803392401531889644377813216579046046364025135218610121626907249675374703248269396790592064068668888337453118591138796647685311273634049622827657884604148189497224224924206895129150217129005675292989563156027034039972317241165086821848920666201459068538930061629173283377037703995419088484046482875287071181271846702244319506681438666525271999796235651374459410925290102393132444078520911988227614507740532169477821409226073199857446001591578390525524162895350393197292526828565233143940239244468974635239951538218323232755198987474534430754901282713530241962172874764098175387036819104211656065805739706367764987436591456077032482707333593089317138308345920046884517092367201091037458781737601941550019044140716859871796998937349416039211783475044116106139874750483632915775267284871797480875224670647694168947519821315927577655266414534566111649886969117860406960664925005935520534518713344195438200729942443708667597413067206182076146712786246746998848212367009033926074629713044529607553855297135533028541853206695612329527944755720126277957493744950929101992998415487374587831920726070251229483667536665409803719689522304263482246578374063172942355370565024204900104846179516991973183350000891504875085028386369435473282960203458026330323530787447695047210665602260453226288036716915464601193918335971015405806429071955380650681212769620055932148808931518380659963338226919559696014179381694269621510033207105268492048731479884326501466136128496657260108801865477167440949847784685039758246130814394614408965993706362349903711622863424967833506027133573344410760406005475938482482635763096874260698064403576563010117597771820069574833520472126734914498900356215738790930065520992315483829877372961466562172483209820898671720692761298859045708570285536076574937488407108365847974392170194785154577073044118498116131930062160582505531094518824618383780039975548019768888276070099973064194149963781542922091883717368299208988147399032181377689552463992581029769502374442394249731969032322991238923790989243635390620821694594954692378310135568178877369046482455692434738157283048571009772888281415315739444899953470826625018805731435970974306854211532967888845184831214280534319565571431262777122575189435997990854480456862148005537470807835224826357516605218806153469884914729728233968475572297632087343282116658628268670169145893568687673774134226216297860493832315566962376683402104981254664561855991369602903231950842625785496437498697382503407265579234677119274076778824538374513384944106565711915565432802109688617490754570285618619511753551856325691947852301796288642193808889815485417261209439642178643328603265542730848498362008803921885284965318192045606849492008338796177049777307931854233083970384335674644491286906898272862455379265786545159446153274788392453984228124120328498177747823201518783842861400066454650627212393947784672560072300198071225197588343902255794994481288811231832610541419083289757854595073562158523184355338727516651187505807404992966660553097163373906974558489311848782059159523844338166401309243876660963809707484286059008096603427619307041446798275778096692523714797073269537069740778414728935435570450579360644934005312259054016786826389264812292541405462548932741204663570009813609357893756699773992024279748727707683721790355529002086529536070806659341499698590124983437091558843096780941142176425175093497827155623681766375069977492747084237659464438678893671451307828745978645555040475336900367814346045299706963825115709806798780940948220068378560472661457945581111753308833224352063185289294878697013153797119596436265409549267427104278821792593239834854730916978641667998678231469190370876225540224701017480285727322646582002941514576893915288567178598832936560315320177848663657208529122866068966629533031156414293257587138777434134369378983966133828101388960419592898053226748902207999227319792402116180979643953695622448755032127593363736892126804513425047267962543835150510754559632093633804161469046829702772958405692584057370190914078438315460778131901471180698710911436742385482540694713305047676642019439453533792905397976502706596488824220766156902473495672541474168682490883801078474950117582087325789109107300743083743238642381738219319962595434742255229227698760603980792066896263639288007238441363368503492814295467958511802440693935188236599954786100285874443791214523270858864127464677247699526379708833746922749317631375714880801117228180582067084039914975989895094782298582874505002548965015453599215185706113817626341613845791132320919392351578061452640709580388289956785319506835782833604021879209438762287005259798277646961257777467775796535810265134340229214353052433883478572262614820574966385634011153226973429751488632002893215067590204460602842028227034189441166502042695355977356791711330332935240157216090960211411427925686023724853756640172881694305173983302134916567829526162330432692393522622828861409706374659430024642745612972846690378802048837504491930482753201345019353438315381035863378367443660416488286818187582724354057883598836642010459427380879494763140516246379161922485424931290162715804108373918842531415951223266613492738466798392206957791450585201549667473578729624446848178112109514575337383087149845920031822186399057568595711643176767148548689732383820444697804461540697263233308436256859950591415707384432387522877578275183401484051716192471958602845530411975248671389049673427658024111523171903976159743873670611838551739389305202836680846012677338646321196881652432216572153131409620180715777632352168711038560621467771292016703528702286143683922339529331374259177890920163918493570436972813712074290164243472396529264276254822076527703386688839243983119972041314889645733689631027237019191637068816804725736773860263564033848885130382266580110654036666699175082580693338781365300662954508800975426181064429707133579573053930596504269407514496419163557956206683199775153044606983533566636060884687333214422346221819633392767270654372039736345681186056387263172751559087494707334450832432357176845811330348263783332797827799594507583651940907650670137274884839576964928046453106552833716323930276783672165472862879434459507861796712151129229056101506015354901699944754770495406249505248304880788844501355957449722712600359620789565931626914641478208054559583276061862944676813224085589344734320115866659366549360376952651403740541395426149024631867147207647918745546655326654194280561851683710260106318209778989932384414902543023563444109416979836124887527338644577848435493769832249878263141667335888123006492969284211321683133141244302498037156306473748732729337186011310715996441174146112342609199231365874654279773724584106073952334473729477896509538059344128325578265703489751217661151345830504109545693156709154807436955522177622885161938639454038195480937794013968632823240887959265477772934267182147802986804446329025420306708279554288694478579570729698108573021946265503501685467234897318847186750675413472056122891584787995679408004817159794850808964809061934377541875628963186887321506395155491593192461918692827222704600785123657697373801445289880252990004467539885007829762397384400218225620291063791469669950365355000292994295061443011228617666185981858707959153347515271026969375114532064754137922818951109065481174279962543453232620900935121865133806685720865917497975040040333462611554098323441460027654308322062772801327994736753851670194778135290629079904071609104074370121935404682307991799706423900757522130196130746958472319083328994661201909009096614030550083277398318841266662276500337565466769785615908211809216598633424788620498823552085482209115975975176008998726314826832176288418448118555511616957027333344477646873711888813174111504201307979303537983704133790966953334754503686090897468200004844445552052447818715373205166572005272630667491349716701021460551108887628247375479329723891941486092242922953321976781217910141445872554385441002663113357495249936675361921258312236197413533036426789295790158416275754317052000996665098913937954561507035626326850972479078416834534508039587053276610223139819974759776141130829928402249627219055790431286781888619961264191939266261696824731286082038785289773282017810133118820164191766082437460960961212216982365260831338047669220897001326876308473157649206518347446042432132226027320062189846947791616651824729377222391945285812757657778834638640445402020395653526406793337114013128708324811821248336020798086802830455698775007960349944694169777434030174560320619893590712218659431392609322183433216827155581274729354742385539074959565114573293508474643122347569560371417624795014750910716410771863063918613495369759125408770054552085947557412949595914021408408518830985996884857151920280146616696517943850640662767712589004766087585091314832541140822254884481357843699943742141427376997856338488497969951668225834172248512134403095542755503904707354126453488426541895446517040896781494968470681756164987594026550080560098159962648210144000058835794976932273608338974454019604119827073895351816388947451889983451508504282158704954782141308461878235820089892286931474646423744580113495862745078452250726263642389888259224790132596650468948231042846410425733578084915979109196620551200768679373865366019608235632072436786093955001885851198596076085111477357314385069215928198575507140603424053792476552401287492647731308285209960118245093347267876687652598107112952941370022444937001357180272729236503147337795088863882518194991700745590333461846296463663392922584002056727158276875126491333863081900278974479969555033957881036520698336235684139146762721618825845760261858340978790979366792017532118298732641220325812181710814597083123479550140031010428392142787161719624773817419093893810473445528286098271120876098511049655639395315432243155160123344127572503218679764528934036649268558881423892400611477964015704879812977390031623285554331551393183246691603885339383299058957820080372270328884917351319042658797387145864336072163108813984194834621924890107205667238604376116539959038175405701074374015665769652642545877597221377945978000653407416287226256779099805255555057218695172563467907998346171382699383489683291929901047536899331346837911789193290752055768443890273543087716551785004808413598892076606439162581164811178752227246768233887364777063367575561867119693763874642351748032960645538989740881733654886753169285166915580998790362942905599864020449111339124352803030762357267914005121058634614657722938799309649885645329301547138539972240902471620365975703454696401257974077600721644516329132899245721975369605732616177625128593043449810412891926467582693165929009702206440426740231770399174547330183689452415322728873747544562700294476812016409019930507086961084310724271246032673252718264249625518926684981327113229584503970460815447307142727775993254440839541857504503016474718689939321739984280941637622435063544046510790966079255401016372891074092674802134659593792060490294465881576304946136993786504603912545972551132305861648067084446509166038286941707269341671742558631673579106274167372312375690514019189222127085122349396824639850750271638755546932374020743347219072835080321859450126944539724796866888605533367729654834974065623601491609734274646802874201805490215891943694741758924784450256172495829466731804933396496201682759307053594856610982003052537076348533484614297482511337922080280467849386002542418590214734085040087746192108490577495741539871144835174883532777232164279467907977883492317202071397435590959414516629112511359148806403037485485927725267772530528986152212362203839687844384168048822243317823161388650428664240447813799589750406565147126910524530024442793160953343385488236667968832442762848460313604107832580060838102428163952449692933639181421188435712610634633068059560202161788666328128379109452611341646761550879570957515221986007569485103026990942516882368860870241834456106692002410070797395164143121991935954003115160872726081682838022058452671620355109447152154753424441870136931091956038078412938039509991821168931594278971930339580176443659303360566718981224456745104612303060739655623844494115743992493071601010633456907231260989718163639659533498261896895899945881614272618372619907102467437175388934396936976554672063130418040166323114213644829126992554155500659669649347410487006178869720259619990771662700084935211590114426789617869574846796924840235280698130602943029013966456567215192686219499260198674590153506436272036511564101948196111888433230610933245536032420129690029189403173572426844290420562657107626169894791401950753495849340362842338925617023530827693852765404357338853985501526334845047895580788932317508130951504867684675269783145742174331675960384327970642012539725977564848819251472459156982610236788055399098221426801611376220860215684926166471779349894672354210166912519196289919426042384893281258975077824455779818512290780729576527012855956569253184779747932771188455059568292387215513161988766106369924178968339762705580366003690188287110505973476020381887130855493694757504909551644001365383510389178399564667299654808841916014921481070281285501846705095829674537243262791429276566067586910978680435431346427349990354001116400395721174450971589483413790924238695930719191535208222085323900854657773178815340877573488878045420255979789254637016396388515142358638552236134770057784706099500034228349730615114464634679382919581760651720252882273474013868335573742648722226689757523475445208464524415165891459201935091545732476625924580935825286198343302226145655421157679462460315846250024425442322569798537509356243980483282404303600755128413049085495798242400770186830210129603813138492304099551110860912041549810913612322170357887589684672132578884065012010179448812013269106700394183087117773451943178567438754870010243799368224391374092117919202452521960163120150877090691426727492151226082820068470716249398796991542235485568236848733644580618145862630721501434327180834676548600247889757097159099093290576423215498332734522667496181732012322438799578161683137412758555332248728535177093790245433935115948588700914795204267818592305382762106335070530717172493774836677799136817677988408686613097285295789223599918507537527818325318575268692932052462633864182329445947264602972773788394337043489591712944067687194113293638127001923527656395646072344364976599588144344673319755415722953301170614104564544382350000571118175536661092631122789197993726577370645202653226230363504487666074453042040025128191397120919059660039188083930564071201310649608409892255204077925880813186120358085029247635150556476177322143477085513009417500362001028373349991214284168232218278121729759956805792867316516544485644359546766606775433274911953411582777338484496840869063993485135497452154278910954768890140124110232396629468687946332068573181597884103543651593571391090587249946120736674128748678118936057056276902203013866132066628569767175877068261887312825479721188496091517007248855011522779525426942389497165117938602003662376008689382514678908480821884554923828599645468469415664058363398372345569287073916758432250451172866675671967865036362008171003606349235920828120094959245887400087279688859357015164535309285923306077057416138451600238899185716064475012286011351088782907918427493409503324458649893068622753278514315015410208233368761960255364922641248116405834737694124032729220444711791451658339571802612437685392495105309955329048002110753852259785351200496840831392043814527715356212954071748518037057765561135333553184033480605632944875261365772163842751573576284916147916553222256576287108726760857917249239647742428470074168736460418187659217625135822586264873544333125064721146687684944392251492067809989332806957273507593939356244439199908530633357898897871348807561118558384183022598615923443752361408436762421026870023732252917688540193051738030903913197918622468034360643604608507135663155056872851731592479398270680570621280576147415173278898806053882190122227337138406201657560705792397302945577387171211778438203316585704709826909332468734998140030390632750457712333497656120156374534067727728784238598111973075620489815119493889822484470162842205280096334298817022686349059531494087731084265377700981288212022892318693073129922114003795558139675471464489293505054256748121591706420270315159816078230679411256083910901110090809803021580133514805724583166543033170306976472400448573421474019503478531476819847116637799365813914449624582686618825506614837650601526356412318310072497709653279859712379518393521924916418287122344894317518773008683979129413386914610599569436990784477172222692757114731453086250399387595799883158966977426425199212283094800950103245752892497930475559834847199889787693980885180655620101427533298820198000857106776345096720927753221958291804734700462121920528900639181485510647724228938712325050742807739717288832088811474759807650522906801140202283724297984812616940865747626438926553715092233560199428213307957907755848765524019781768705770294863819871256534411364147061117984840218096293282590429289264757560816858591624982072770735703359872542808231721454377242745563896463000309208909413448495357563281292591927179505656577539623264507710439295515275193312697732212927032880726594456500422110241998250547974800526186479514904715843288496479720952455401361726634535545365384477321585697696866678544193985709266917641844095233569163081429266863180038872645132230191753288635519186685870771354290727414840156986478613324287651833796512465979698597434048101311070016199783805431202786558242827318328904495341983980850667220257150200479092150865701196638272303214399316920992576792203662543602273794864046862682317681333625517060978633015420638970354037579390012957520883866995094305048892726423883545875867027380955748509030474010803156150133691758660257332059701274123641868985521692805453129546344475872845877080134599851923462766785602525254944748453680840398499713314364768786535538331037769862891193010492223507357148091006876131386867881784195459140395967665788827557333731491659894891169549057425845541436505813022454112354151329840359720831020977225498419260063811292887844710419266692357870817725480073259754962939639414569320183050183214108908003434622327070797652864642896695850959144711407636794861746142733599186150008089575834779873126873879446323581154369147681980124051210839579309223102793918588098655786152188709460630673791621124667830957202266536091069592674395345851846882127351152427186395429414907505095264691578685492952034050361762286795237770275185215625246712639134643065767348529055276383729727786406920369279598972211491425432638955906801342498582075317626994785176328780579445422523213306965158425075080605088541205226204563729390945284707597297330808353442481165835780733022455195332670636806498996213078471816702457071311518073362245963429104967994651674846439170984263610636381214371412187652877337342447164043019282850259160157274461817428007476813621996085108957234282047025963774126693998724395391556384674831960611555044694597132037485858193170630970505648251890950464619789037942300432476676079484344185072586166210896926229058545109435543026410801484940748793233648349970708340725943621156258496101433553526334282828319669676266657031446837613299290476640427120822934178769039928025470715929033812375970382770024359984939511473817879380536797320101517540176562080174582899376695287938881693598782798497050037742088558673425125427441738617631729003347591874331383989436347254412617690795990306815618860651341650504552416767418617561428740804877888623364075091047154303224972357401584800224354266453342730067079032058164121729207757449992757441682805009165364373426250749671185672786432742998961926974359831175113475225098284070465188815622046954982359496269588781986569765003261269828326543238450305292778256468565062938327752502048344621167254537101241535648844615739464023491373150909060841209695318609974745896259143469243951420265871438551983065321127788507184634962437311666687593548717190768030533385309930002632390087803542659433147010654954176160298674727498293876445588410231316553972122793585974718960787503259981162603613613161528244172416510901146668777965565906950093774644162313349718711842920316206291822272148467002151860607116860318216453629649670643721415305915340095533993162601233538547673667409015567836397981911006693041889620760259934961549429948501419165810065621134303816252708082630208162484400055379595019624999186603837605807003634057817076485438234423787876850593309819903403882330277173828181784434880974388105251306742940847697564905295772057832193902415035361077960628425630029709814058461926571247309889829717520801198449225594170049967623002882560044915823170679701128367952915843631803752594234539792393134360226707878340969054928174732762396792602995024318881417936281078855316237456564093759697320579013926320275790683838646519490663411323979201625419781068514983785101403373981555436753218037373412754152745506913101895897752858610014074441421404900327870279093114093776149099841671484908602845585635171584659020869869172328319246772239123132821427688586435987183173399470780729215720110303667157849138117774165206279709034553161707853786690127517754230690771333415155314516551426928784089992413885098113374358566961694444142687483490731096555557364761044503853159285194644881683422456192981434890522635324218446984603861968414951092147979308791390268220176543496310385597411074305346533537144513505066110540465920937662804493554751729070366890265433975888290220457009487965955930539995301223423818362883986989676674751737849012635850755051405280024685848223179857556356628306839385701041961797910125981808526096196541846809312007317126890225880641522076718506491988352609120821898954959484006517940426505214722173028566302036134279868958330169525353909548536066939761066515142396938759941737923084165267977195662154361118455423002942692734111753316590668978880403334525238366463611922514515743996194454993292906525320373969263836771718516312310248964403662743568566163991792421402486631282693177181888582714728086166068126705651960108106732179098857452511172478668176488854956246082805860073913708670292366906116896246842107592582966704908835929356254496810761070075336206055885401754535435739176872573904149696330223599498099894887358454002074657982186237752137975289104397434808786549693550271880918132723342391178915517258670142904351646354479539380609528790564646816078595918728962218137263263165703926522873705576909574151673050404105363552986859171615778071688411366685796246353153758027335669576381324356838165318832311121206743033634725141273123194574303264761877497142107322008688737556877754854812360961077972756711623045416837913754454772078148128015102537406355083563514067654528055623462724654709736615921125262258985285355238618918732732393280052415768562829872995934411779722932318384743067110217003318745549403337307959743005325944236991006593398074143241528431336338232733163132320512231326008367427415265683514994599509504097766435994803489799654109823365094873196682619552336992243175500046103761679374300614050459686532147383919300186776565227349170640370448570189400969878828403423624662524201487848270999384718133780376613845610443242061589711314952693646931028632075183207986226286030379071685373932941882857285310756877077068307148220857241705231244087360254997344220825798606698524597578452220085179289147214466825652185213590684363438899815313031859963354059641815029256261118806172317760485474876037537437969726570865032820931883805362170219428017145724165418251071636559300806290914738754288778387726393199170106840403715024960675867115556405785879726927532615719316544042368369037839681114432097498864572598524839274791882563708649956323068362497956146579580127712544203556497773405318717788707669978192956127197864583211106037340152653530784963559887861421203147812566571257671848139335797301579301450375003604981076022728973031196087871241079731075818889555672642076454796856899188370533341407215375605480779623210542539757137336227084153717738900274959460432330882950604467142890101642803428806320670351084666059658043222899427077195619308257753047473638484008390631303465946990256128295088267340120498708134247005105496627170356715382440464673810937948705197271922016350677303496207385380233616714915868181318115485298364300630579492797438069865366120796850919021658299425886720473193712732335133431979566102955345524499701688331241193547551278918242982582614579173319796091464720292480879150349024253821322878073135401894621715700112619875638720005141694445623175219501032780892711078994166977066861342734817994378313772707941376706864183757647553316453810867163639721342459227668788361214724972333793155279335424752965166019028693601382080745421652997145317428294711910732353717357105351364387495618611941502238008367551174292449645334200511866058909766322834524173143312597437816022049000148041040237476737974376039269671305697943299088770087105233471662534907567198145531550491314245861023947846563806285768821276535470464932005640950862528580247760543806657935755453219721055651087106196347529394130486245064309382232237707627139002903899641658205518858494145453410677723613438500745237073575928736461393391863986461021194698260055419584324663083491499039944519122599402002275276762370074003429300666696738281002286284006929001373933908511108948384737159824155892120526239529792120868218798143104015498048291796588917907399249539551832583830132265634461298483568166531479114445489308228198901658885118548190821708235415437727727524064251041770811517745248133057698143082077733667444779285659546983253323670621211114637623733842100131007262372849107128733710024740558612772308362910604682985717648945685868352272623065848927379575522788315471274395149141797258061765139108215606328111312340249838482777698486567566896908247947578443283800862892647631460242740050954560914078300116061882646882910549627694698685259099956024451996646551729978799687474345472616800731311237404047162387225558256906310790280743810784463887256330079704125010403083065347084839683305530649438847254308890561970923591196263178496357281871149672092631673994883502216895859858337446986849700095601790374591297660250735523043031092303065305621958292649375917377533628900882950925866105944252621236829112228823763220744816496082378235244729841066106997813323037062114701705650547557365296966566742949866412865827475087132192921033312984790481034088294596034493520959719807329510554843849738411764169111506153367953705172026904995445832540372335149685041080215227249682341867509384692372156064794970752955068371586377453703501120353215926328197687651618078822316720864226927655131078761199104287563936762696533597761614759568122783751456564889464917986288952550150955710836813616576272810748255420091774573866874361154510003289694989301452277473717753251321014257213169335062767996933972426164937978162507949857021861458196702934681224996207130617835306554932673491886649060503810173728640064878037245245365912288715632161388612389390762221568376122027859125349885842399623783915954131191795603681319831918908482776373251444785239114655990048940083270594753131362248084233797975108489883603010180834233328540342751188395226346933206695078511882812082470905947033102152061418735445446584630299363200089760923331804065309865595836491774173891195139279148889430566815632507461346369240389670149200155637705790427213058766499737262285247320438837930205587258033793192128252566744434012835063329299274295624438241036739427443894003142707935625775655365660052924221715175565472081911828559528706526987652386531629096829491100607711302982908469905838746853784049822023259826141491809181382691033094658327740236129384156529277161558196404951533895790646149605490854674306782221836365525762196859751036090432730805035625080605148772857082120379266483595773081318966085062642230931304772214043390741929871579427831205126696248494062517144653916812564369469519632305382144795963500347886524495380285900381589094090230355983703460898849925844177454390231833656898642002108795725509542104014708298121808204732745259927969819945457524330841943373814293708708026014759355996712902496640983779089454082115106107548947280074751726788130732171489141399213810888974940863346260497050049642145224219472633645094555850586068872410239206238760239852539799953869911635367529698396244417384568497159143202488254666538803890807467825116495222057220908746607165686064608894947052293023178085412907922313742374440537181913788379294112885798964789733732711582939161379785363642362757520830235579743773811643026463013321184268612910243251610021574644274583483135403494858523859723950251254028883770450328247610570568869059059486397477891292224596620365423730457764992428745801702303759427800360049773380145179618061577805482597236117455852215537075001088408084744377042433389788628329195836411348782661369546750563465200751549524172776418926433523060405881761233599672158943979798474596420457071803382863689641207471867628645386993110046954934263905540144116388546626942936759626984739553725681486542902026125051016090103598320603213673128624850077961533617456752484306382448280947418521927959432961704429156543462714584599982626162234758804021863880144899255488228745434893362846800571697095441593251227294248259492717610373525767960018697958603019879086082162412095237810942616687713058659879313345965346929822006408314454551159137452939194761331956992828830017012349908827783302632423078658750773401470386928412038749598190667317627069352370343109032435793753685421739053012693221453472104048837590200133168629900015865922877438930857260771187214385790159878663871934762205129305684216454875513317160512028785178744918414034238279408975535310143360163336185176314250568506361747497821446091385336405679631772103542484647940397082315357309297450534918199776109918396227162080986512163274848816382481047500017480108138035950171820361379072182089195382745184553167646490702940410962295542260431739885457842649653096254447928113986268523370127126921373300944776003803735767053458003953886872046106721070786634378345791240918289124257251965910822706399649630913955090507011546606413922696192230674553648238355710174063575033902092603602385161205311239165593917563401055965217721288465364465284025323640730536929342206730455264850922116870923747649201972465198476482580588585558543473154457767119061166552770571272845162961888725851982830722298288455136635582390422758305323781044536605360863873513233279147401881871701283385047083596686487443385487807059257251979154446750962494688309041556134436792383165273618061052723270350740566356737011914876766237370508911617934730224858514085155983904448288179204704298638584534286357235900255351942706522126158575500176016096872162355654812398406557561273532244766052209516302935259293856614516189970115014520289201693306653637474682382057532020581355964654397861619555358085245870894471337687176927042340726606937460619023607875099593614010752676221179603488598046076825949056467575123937083879059615351708476370537552625449761187627321011571134843575515506864985125735165773025429057961470246053550928078189909466071230036661957801188095700624825541617295453410643554918825908336204255711535438165644954669135538759814090231308511815045651147394314391041938122509186669424855540571316786266418757217470847205124642967370984834912844953035978078486788235704605424211991420411307793090614865071472214061929453060336662038896076666438492983599606803763148031525197001801772203567868952634194919442904773549928884514995599471012600833663635796486734094726690961369772010757940054012245006981363231107460571000116259091541596847565612602545354537278028133552413737120565968998327786151713856767403370297796647933690342133799831798552143219285835079817964449741696419084100794857467423231019004155393327910455274186940887238739255107009462323615876846136728644434215492989527720985007582525801455834531377388619699493027097781754424362672107427157791624726528794813787976515439305844745709713796629060267811769098533455836839307762380635742428188526449793541345898772937340372101603549678509428946661706032739442892563873716227958512776361104120198366774131794297934326604119467256353785073357678454599824155889032902228337463956199731295361431243027920045882513872852700416392499914678521066056688799303126294753140586917412497587494655451822368535788951786869884817911270140225570664180322076014434987199142407324954409751908667783736328147389028396336215496525242139063178121829813487292321812975423911271077038490735365206051210899656688222216224186482612008110567889516344751365235702634147554777978564539154399928136713053220767836652111849051783160525789858534729388377022791504353801606214982202925744725999822379576114227471747094230186221302254900068125082476541081052218142897332892828970003809671764087534257848444617441255255815944101502632524060262309268977129199592874361371190311689990224986704077600108129574001625706581796009283021237689178882941269069934992819825960627566640810208671350410809838656698462504378324897423378088430470483281482590503306280499562806197995638548632436333799139878894937851475116255576779216859573533353785817715126924072110574378987897841135126002796556167975360094171592083119705556702997417269497860268938579660385141838795004835199605766999257271748080920784964563592259483375407402956413482154914571197633760596401049371001632184700034319871897504609929710848447309690383060819850641310703915083291283748597720913365144873368674403157976811725046742455818673568536731584951843181748406496870567096537610087029388676621795644501848068093953588981180919547166239808971853186594417892521590743953034870505125261335326262825288244368875235865554614849105078658246800134564123129965777211716658639637351053823604176964048168410801677145981179184599420215445335140470909218030636259851437759116083388748382004531547105219915912978399599997345644278723016498381217936893411009338084704480923670211858485418575565935173899331343489833562699863788853606598001745889968550286133494670225666333624610750527989400853059590852455855169939983260668526131340352019066722526180559909203277012021231692251142768693951885501099578258909066719224681331738197726670127683039308512096750585239662514101422609499712221119991230740350558038628707373415458344035906496390370871529668509162491739472333123917153606962573161695219683761524979997027636148823032433475802247480356783590533281150376339638490057877235079622992952819448318581779364889894074429908898936677852385090495275969105804954345884212349951662298277337805351784583422367699856160562105281534415818098886979429508103026901926919310261237138976800846434316716372790861267432509209279046863702642751857825623493161424029166955722611735016625684668753418423088138860012248391170928032119237656947555291817577924772955651323515822398458100417137794318762742068109867102879866414844717595520085610340478157358292305945069857734549393180768734387867502786823944580460931651643767446241134908172284816384527553068752533899756744584242298942812991148513118815167323791527177339638104749906092600984020892256060852066051957579835704077841795326297949978755042264424540214950632131081317058707523375483968092542598288668939607991506007536539143785248115098974946383678220042717643455060495108016422574908853447260621080257162413360794621354050861450542115157875458035317308119494717301377071712516912892051139899944407974199268198571260379525480676428833845903177856540521882947847805832373404105444029682191995689705674129109575732243767045061337664767060830228646694386579289899492274302007111381432070979583642559350922645135204343151649927706340142273700065047235722793558784983882691689364292340117392728573417872187122496967517102396128100864159906224520750336052500002330970242971980484317885673429512454070494692327216450790756816397914399837789233248854668797796453488226532990944308511674163408471680298250807254166029614003790054595104198973651073401276373374923185862720092960636532799599228765588772814012419001820370495005804664495190082266423694787748850557432020185724219871037484737673182033884415825317657741806628122697002698556599491032777910888937709531055743672889436807240538187012692012000629015254207458657148120874364151663369650578319954630586026247761641831620381271584866316218915913316402518919563769767102050362944125879129600087868713991549003615147578369234690393814795275903699560281281930491541720513341519137109842297940563111260550755313283372888704639028340550595318663572740423274103459224265406698492271773755989987781518148933405609360590062223414218356924631317461187604573503874106070371073237635796261605236618003640280158609517908155622789138511000939553864774108040166083521457126674583344460600250496120567055280694622234118197305454134222883443308009178357711695177230776973324035516562543214262827917127561269300510984035637801325733701930840574472064857513132096994623973827023155023307000573345415746274212866450545888554169305931465153426921653563138631216019321975962007790210392272503034237851836790926791077144232862377586468925209100809282999407191660321986516277608641900719542507446918092908486718320376766808585898973872230471506438266297247392459003579709549510413605982654842280658116598482169821213120037480719852459906585972813585662655474841948275099238353288961231311318476422331336812138244541310955110858777232518907670584008587567190027188250733079723549817629909264744341308821866588448515278756398479629162889611705389043747134087128273961127709703629820482533449323141072203951327265614293629899491433183658258267999303428035947400673298146455683105838635458839600410619065945855667663866680727061794315756349134266987475709678066032780341765562339186597351669489020077897297180879217394442589800719998082943017635015125883738832320564045091079931180710578146686736274940607047710456047909138749378651037397799641962774998487951588594944054160367862685752372261749394105962018786341060152991979518746646391195815837358511188782826403887346636082419807082256977505063138267607674236727029734085007701974113434350810410601789696877936305348874271185844880213235142657654953306506175932037896307947585431552587594476690923970769505302232872380335632010048083968544352661421892659076788787225843659413919962167872983923543917729218140749893242334056644908797342977249891365242782140407887384817407870175179930095780415318388956358917484245032384947698747307073956910201199111091535442831399987324499802334836221724925336886854468215908589061469045150773036772933585755579774705791165744123880421086809570706506766722528794492061498650775315992558774594505031153337356436201688367258212706088396106018293967704506137288307261279454561155087178701945137463683112375452534774206794939435956223661724664845281571786632950313980120367743931551784147869260725242607588987606927481296305892864994759107077564684232085325695079443265581771351947673832161291497162907579894067287303831789102008859411999983446585737241198359353962405523796490695611766107783645436462649217327246648686078817636826499315860786788712146662525631786580813633469865200113761484007205151893411341164781750197966155679632315707931808975568973488373496615316910378849289424829664863328450009445712058049144645329263078613044782713933860406534229815862032156383064515534725621872511303225264848559938689617590674550201934695434943991017686462912993056224857010540141220729860449571995498500851050908057045640378108058050711511455895023753958402387762849453567582856309695279446654776167717294351558032237931205364204746093824347366269087036263131144251224638278167043566203895449828622791539074513586986502907140028936705940797124924087902293462868763917471527206757611078948790338593118306633171724030815342478187294472309418691144986798541695790873759572416884061310663385652703791586485483734540060353139528628570690844901715123112485068681805899386274819272196646207468100784280747656307597107990737432004026055674933914742062059208774036474470093088914739233228783752455195634700908321229874725001850516257812159538808490049318315693680800446936499735787244843921604990850163523103525374641634415314808743755699750954358058357581455693564780504804505373737884164157029629050448660625875646169061268369673630871801195710724769134363058194668681668491794670602892554523957384321583811494254815868198833344076025669671407470369459586477592360796230576378256211196852466015906353369280016340806754886433746306420520169611797357281088558994627854679276573591713240946315324974096321325875307278480168010951206972404226969986156826939186388016165070111286943527038123024342305542961566529674783184248513658499155494578517676357442248789747096305332630535825900818265222136079381081840669409880581259247180950227016073508116235729138283613621689578377029719413562520421959207686095599979670296098591943538245330066326580098686259348262359517093115291025842255134225389582335618291075559828080615709813039348318130227390906578520229187616827552717206318543352544938849158633790440094596010061645750275784201193151761036983807269288119783907391452099312908850687795888703885569714900404289570785633533454581821145258122051926466950676651286437239336141399940742442364409527271586835794636810714341753276582086515800931902632670492940153622362120070207866666638595245472472063870823795281108243597704932340971764737927634447545267301027592073833813750421963612559135757726104278708962041965756949674466228036346249504425918927188525171723850124835292243539875257393892358251733382996415230501573504984595848937464859018165607859929827778745840193031118825343773362480193525567144327867722540509975395342966543925256334213738863985188281533848317323620765256953577399355995048586707967531759483014281251379904862044795886741381635548745572229149260838529442260957854527110173634049808990448297187237438680049323130801295078844145470948515968341894912553069913442390677535383714111902653004246642134807052877854608483416047055085961450247741553727890112083867890827006293371406214873146510292204087615109913666174814651175785894945301539837629290524432661076503505615239316358962401426053475251087331387581786750902357615217119984684941793409003294905899463477987975281548277254229189917852193404036565132584675354308219560583411275906037635144733005808350697751943494578332169334028525675533290492995863666544680244052538194604742977074648390858260334959457027058676974261503639399627406117222397032758817299413930932857010582723198945594035580228594327428643754709924876384180375367343569434663243502706850288029125580803977688296569363798743934896379344701432714010549409799735947208557113650971727140333558310726619320208130098830484035578573855809909871353421207090193068861211639788826181662963102042805243728989338714821413239983467582728723763370920163514754679479010026217635293505041688090647444401026472315047683751289839857481930611945207817057057619824497045739040359626813148301147626829519910813037277374608271199873128901877701341983916296680144632236902781912641752089162342672965310539593319959402367858722871420812431870981527467139485018817459869764860870169933988555751124430073972499533141895859286650569645579668792798291579076227978848341282276696022044197298975833568493417600167469210083837113650454646667775761002342392273416376771215212433140105715785860917723545693644312396232378797805699662843342119753848717526987534455903668479821024460109770838606456634010809473305212017875021279377630226317138489106820570068080464278640743066366576192399954977433295299515109520362470217556618129056756559592322591446516457570849095227286591835795249301127957549196318449826513555870040238829728774874090803470238246315866867944253061262710416023398329517093388595661439207383559400092922315710844563501827607937337419879438702956108647509668722065126327769505759136229358965733431663021100963514690112575193331613100056365469023647468649834391138481635034572207871513728864944509132668167825714580153022781816077746221232127805440731474833195789865200865385721898207499762818508618500800615249963518141492832170486039596457428752680651262617084001144337759878094374830859225284146671344850343359454657867990464051181786125092085474501849952005562209670169633452322219324379377322962054009261031439343410065356288505176508110253419961845308619096305684101926957631020410449786815042059270804969389570253871732470186340660425117065866283144785838140267191528558982782966415692336708293884064591991285135958454639691074278855992875079694536463933470917758330046985171299881550575230966074185280274278434995232213963849099828429301295685726287486430197759769747818733776296234224583136711495951969886377128026681447562995437582083565875057842188682331378859890806944556668044399932804523668597996190696294805033339107931797757471787682763856323544462061718254777325842474077771960333876763833084690122818595665263731042291296629250990324542523791218334371097924770263359202609843224535821842711408744969977990333639038205880231771613651147344592715994616838755513895163699611846589757065697291565805920497217635419052918862630672326196846252075451829924070974486250776294868161597757328483911334815013143958292178124160759510684906026272784958474883701054779904309066693452917922546782459155275253974736669334199262530687266648631809689142832115548599265669433982274594594928066413905992552573738314966284034307577661975180791586707515211878049443070966518973936419752897213301843329627883537712701248776219674007908495511674540824575192370152063663011286425949753461342062163883200927979412252595194913984329982339594571653475109807461546324367349556428683302481767754554686162367396216368954394024169436473288429445672072821635946421525468727206523395790714340221507679193164949954481920563571258079952562382312293049219489998756978387257502222766080305869675873951122570941165830417721829272926403491364890575535146198879066487495533454799498774037394775391936356107038447494493526403515509380891389125787456082201121070729833735550670386440250694702871078632030151308459249922084668055489919169047532462420521003988995913734594260165190066042742875247833951000917770183904742527545243969836441391459479510992561463873818932478792200663795971817075181798761816628650950606540513300005965387004922164400311131629603068254221104461233644881927465614830872137984301842112380813704944296950612459924911708856453484138427924126515192120172091012758340849672122945131033074032307785624679224592457837329654216331323485946360054545775777245560871099077074120947569893034090010876111141889457097260357385981978260563143830978686602504786698034162417605755192614830487529563241082644379046861924667988942837206881494258183032600000560303008441357224392007047469410172559554501587195414792397713550887379155309536001667084859922807235386723523304944788589517610842709648055410803917589067298837483129939618502995495693978414909954517334910496364877841734366378210504489998094533233522502003491339025293813550463552280221052989213995013204681987012733726693746377451268538073326379479826291011917828876304089041567157723226192037166026318400953310249506431959902940187043572559110822923332749238570257436893398608615205163339548797349473873263060615982988033498549683066985340126610954688117954394147915969801252226365657146361793246238737934377625694962078451785525954357379257842587082942402204234986523135511249885284194055709407183674177026790882639638056290383599316151289179303525257652699171466200341812416166050635655801772095833645329537499619840659265754377263603600719855572875234888240597248131928616927763430035760743820388624960592873241575216420361646127750574372652164474847299019979220139562853270801058917096828975634740743141698571932911693898858070145398199934634303875734585225547657913473162843436502891391101539813004349147448373285243156868331371393393159012993901213683205452189843641438713308262803931325090282368196377487756294167780955223387043772667599675640387564017624953163392439276711927304088561606533844377931709596098365962501986313287782881169733965302128261731170843039557072392735465591744622257495828931697061900672614619998792558983120247797887210465869275179472112927860347217889949337903548415712425305200797804373703351572763310038013515091552293824800235815742425979683609767625655495044701607696073628065823546081505461170609137971909028574150757729930143668950356703311623602618677359763818797841981362387943505904090896961854994462358095925710098702988089219502445457297102307589253173662713270883443107288324537535690742884066183019274427897990134295975010220253019442747433076709830614983458627302985119794664586262807882320423626271548522599197611563954921835289986570928398515433226488955839003570122976490020639594700371267355064130737335771921681493566475851883385118019825076556758754221987252255037900955521101775827385048489106424911125130015834581722431085384018748780247775064370133772353315180741520493196867760287199169086176272391489266933599282033742973346318449510431706448077116957757614869016404707875017693942059833311175930203200939386298151369587377751010493445198090838618542099797675994089904156659713157964120178512821716975407251749698613856414881055709404237712570972985504386566057274410519358847858738102610186832921750284699251501707153674757554573554191094509053988851294858592105279683224292518675342693180626920200694684432221588838596781029895640005464609193994351823688042877874245082210905362389859266734781677359084884500087069134799209208487097871272911804839202616493815669861336296609845030254901566864146440555273513107035043872977559265048760677936180539627639761662511807495970965318466570438071559485115577618345618136162026491833567367627402359972378637394357719136022316341535690946816037645723795412520817083450422586472518641580371396262280869994947656667804380445042150814147009162610778349956183896762914899416611379457781283085976631540899152556197328913994464322860554350510296368227351761563165559771208418203058685519212147911576356464856466528623990936593207759969806910411744790115679571459970158240838017874350903107228517757346083825436989411912382135566423977959990022810693887360657559174423639963740990911557331861474314049995136756903425288744351626753472176169706302655761369529098599247227690818105982481272456751404057829751587667041297047235882154311415884682697367934606190232792009583826901865333446681850498257534272325222938089260238924762950007225869654459942101518537611461324796279935233293897699670856234000112973928740207852809439997555613186138667651099449504437989328862932118711266444988316375289976863133217239163593755431579684232251715489445916036403595832041936369264440066507773699128425297676670713906804996066117959245654943762389623584237981418159403810054846742916087708918863389116763279743317253973973297117949932626613374738246824987181586154089756689652508898678007766094473150590878918798408614954256403428366994174934566946812782421920436698622091303837592822619363223172497552846926432721636953561716508755312124625715421151872647846408864340607214384781230197500318772937561984820814476368176505408295141826055680152309531786009537299190768384757247381160664948300508760500145151968347503632663790030536667659196479600527958346097835020260068012982328590670971816074510921276444173754740901245614948923259287176046773900018824905550535303747007662365521346099405575029955727331635329155068347072303995453971168449089452074248264394075633717528509259665884480879803152429905326066033876638862929213572284165531192520153016735772416788606061424048434129977397920109654108273131580114573244733676667306531920723320191422385645452683321274854967759789612012887663683867701752869002619287441330246302482441628962492116289964309219020703291311042598826022145834248338900116706053921491851392199571551169886855310168801032362187492834499299039402832187800762869277749324957298101064009589276996317996490473413406767671441997781720788905372417143285548947301187665753557863414232815893066323554515566702442100076531354947602889010901254142743155149145800471651457908638321125680163846126868463895410630023524303758577445377936598611714532080379212219664559095853178434293347428831764604502747543246435318004374480903198305768957221699500946365691641170636365270002281347628940595499579237276083705618799507257230276398723958751937059575923839401657671703380376935510328954057429520720006222851334150606076188191072115475539335273999541282477878835613226592257361579747748663757043176498741149525717719416124733560038978678864630948193113678048032959141053312743844940655266145661553940483506537852489034648419046171613126434750308171113399854030156700919159880072612425180495011136511430906239386174974328190007237590536672880419222775473161070499218154108919059920279483077213206029212922419047284349399072584191479616380792293784423532071241481733543931026622308402658179818391912363109259302139848797682476022576868751176298212856065339007250163765845615443545520389287544179935383567626979982728701032944180580592918686859348452431117828497935879101019876178132605694047152731639445712905783538491077189996930224214625030105536685662744315123317298683459045909933635764268564443573842830011586230811830890234648187275540399879202022534047349743685154093394277242185647403948696551598423143751948625205470071067784700927662177434204031838480160523233920686023303963082660280716473557805003876998503556222846824100422168551819672714289620731287953416918527371891246107388871094147922342678678550514342031196965079451718118978584876014245935180058831339356141668806130142272950317972890081364636935292489836360694738880592760161600378365662794018851711770942048007246855425141361212142542103137017829609811406597776498427052040109379659843986170527587604978652813314790718950802993883224553167231884327760524410447091520457364854117546488221361211391490501142489243633644596251411609373915679975480891067162194291769383227755280486421593541085311400059879160777554422992821321481589173065583087620886232612356970635493743465186742364966654795127635882738848912379691849274805449770454773009022242690360773427356964608345125900225956287496911539428952919346352313487266317787742553066628294237544728184886958533225708376997637796595256239906836633020981283417807714587590180851696111709287652697651273101163422776497359785456611319034821464305233380106894379097845099660724968679761117544223983601584559496064871338713121295983174252196723993944542537067567087978454819179367516006833158744808487974357337486071566603845340189926840070393462243008262464838229828622085936064520177615788692235239521055340619354513807397938798683258637354407922329578928617018303699823229005563982564314639659550889132850049115687196236791704264137203288142782000513099605886411632211094376625395640451643659755109906787133442479657227276693337198043607076288488186037741425043452068728591069705820779316995938556455929671891444128971723417955396235181609729081954495448394460568361323908820714887031528424470432110476612601738824093198550925259843713047202127007548267576614256824291598029231845120211354180551355065544564852807865321035480381328389023862664919537189113731638517108742919824143921527409839239527500984191145002437035566983796904122535547823448956278300722054865846303902400593185592845405314072762301329376522097169513252815878996917797037493190865893257934494577165318704154878936194062101665439391631791212531693289043306383950344180727299367969580615927294944411488870981816421166131308019833517092979900881799050435970962487610006321089502469206347957987538469976669986090388717853022016750072306044860116876031585254826040728379414196325110346837387011861892301522845203070130455161721975884683597524484076953551821461627180649610590370069564010424876788727031001071955907642944583032723421797211010274828607717681488696500800081587805776571915145381602603386490937874603638746697282750884583865053754682781503267625263885792947810823641293283880213365347227291098951805792617193340160240707464033977610127977870107622380910074440521846627205443968423741433367797976321498301996291491555786670989676854290800240020143980908630333259847403337607296564862726673370807475566797979344639252647134318502430897640666975728281345633898975985607515816196968670785498308623130324064181443535319642379452513171160763285297610109170132196606586394220580365081920599312033782510844542479393037835449954193592663702681920302659739712528617613830220369263532777008359556412474634628029323603654728582893930003020825457179606887555455751427403538089528437432868919245757248543420685571173507121900204813885107797716207500973703798117594096099277109859764016052950072376252462843886115480579540406224272873505120763074981453427110357191383431231814917788048797666727274894798344501238476358667095712057569840860531008710036360098686087456744604521196823787943016202001103801557373270285471160768963672783356088653103336061138621440756342777822912820460398958701548294520916735074069694975296233536943450427061063045204587007988857922455945645633099570398786507956813541735320299213639375364439466318019150259758133602513213321593019315588260873848505369818335917115872981379579737783424912190638636451459564225470880263023430221814785712752678826016691329484874190310426065249643363544994964292463058592338582858637634682367873484134179476678882505538121100334920807121066844927336005615733555492596850829699011068294157203425457416220228301080630113881015264716989328186774447430635696144525386323177229097981717412520134100601367955059915896336377420313347013580860984742051562120728394809364955567767483371562923154063759532250527411535790335142658034405373152171178670229946564891660747975012971690187661311470559680172025086082980965360598131961226479310509788313101073324532184173443281020278375083395458522630873489567016515532859680249082997500879198883829119183658648712276525515904799791006526848326919558387707675497007743782595678638413671082869187640740183685646281363922531350196927143309276537226855169892087928971772483284091617203107068614643925018938827178029540025561178053467467598763373156785807211862661176719070131065293016689879522578154940844884312634048233540348459174985472233283623162689839309355988356795599613424221905702429909811661482098051557499324814940830345473727986327890557398257626052589364257492947111693463636609538742022002643161770776875835374166572834009595503379129539968397406016329642144148483804240483857898555846466859718932926544474484263236053106847088301840838572762048487808593837654731736391981514932207537963036539533331310420018027785233868643437652162286109734762462619447079874694569420784272117900053926048162189763216602414822831058002421665018729541135481213208377041894552336423554719538242233207413338687741912640087087114931896699523642724497981270937467726999978567243392784197176928518842236975447098698936773078242710740323333225526825288978776646401916942859849664159034579516564807486861510253655743399525149507476845959251064863477190942805785817452206027002795460988087942421549018567764600534757740532066377770533841057548994838371507639976750636453500346245436186338650106789502700012615860298922565174824090507748405579256451610566976246235325467235673483518867546263696648563942441363531862507954365486589234002158158951686771210507330300162694165407978941462040304364808617839927910088491529521814687190712556419963593272389180857127339845404469485019196532638292734682677491451957781649279551994071361279085727231347065064761726033446139564801124516809749994630453179000917169453257585697007923366783002308384572414973233718865263752911722772998799153644882461539264487506273744068436954561904300551295034070630249064577141414410505266375780407564637988223156488406883095289391173452242091593092429709659874522272063780595307964924921769554142547374410916707626350849277807274798718657593311565331670897713179480537567470638930140136724172383866423212324180122157154301517692769023353209090098246783077394059308971645349279393393278210238107106166986322264093752550462171864438618886092096940853852825736669447760152812278657361393751627796432647267810883102787927221556012204492233341912774481252378935456699668801287902209703538176658376808359412942598410186710587371854571432655152838494828284344124586590164071138950908775557118710971043257939438291239002258546317839581925156137993070425937442096017845473033972672429219182009469087780938015125845684110748625875703817651654317212012995466647420519779139219709478691248039753306795750668508339875902074711962396273182710950871639053292696492170648755325962338303628541142577550000303018545680185105230853597083984182209204344556718966062793064574642294972713386065608177061412743070767377946407459208929367587262451054200830317342715776635989784332800028430822946696553101823516345953546311457864741198025860229071189424404812943606135483994635286011576660143980365864207697682233454552176728079204799770116797827946011728615935638922287560693073938134319750574718269322458956189991130152823996793031376448782455123294105782961370049005155610525486469827085637085077622893144781072153452660409826726730769849025535594590254864475633415405710408429783925854019315463034562592546265971849704487608229661983547434045293436273073629750334041628057402774314054500392312988318512895384884766556238812674547144751861202111519763543922180621779504279263307982413734666136161381796935219967310763900297306770142093654372123045748262006253725193984318577508052542986241905181076025380670985138139481078941799230705255987701281514067636536145922467353102643512802726529506456550153156828598258955749622365424475800599446523540178854408976636128653944927297292789051411229943258282784870745518162276153860437226489549477719051861826556609212940319113958202982379709735333907238608582205193150771091477930478657484796609014322041272213907187411426990953985303203751504301096405810329381301412289069333523890322515974242870141544258050238175250272773999274323807213062324133059391258866950032428569166208161916410241791463906938473077262226777528551788395974136393825790982178132162740453954385763330758402158191532387867361911460023808460921071942335364393392287507194973708393240472051613143615060568753079604235013904217485717085013758907530822968170842126992631447224704223776549730050969345219323113204661873868547810705536617047845657057578890077813587743477315299038555105399051369815661372966835799445604261887592999291308921034035146252207344678723894683413770490659541976586390187195264793441042581724627547565975178661319560861956359238617390157050977857021870390860419959970005056782979623224103528504821651649365111313965210296680448532483303826295015171761600966193021289243079538869117285696621865771004693668587423078132511477642048652895127395644698433815976442134381458325466341044068193321766468602503232178939008350091180000402741246813047154498765972312236995779366263995968131780192459436221822179766781571915058525247344288349236256216396639431422551424965495894258974717919241406080562249219083325375088995961019850113759915297770547506851770153057438683301401306942953618876868986040432555497645906576556151859333299817727766737974286852750400490404079372756273920005892450096556826644600052916165513422435367633475493922396557655948089757513907624769440872918304135728116885035377773833177443642270610628010283281670701533944063614658022414412192680355960724985185161732868519411627819406996705342438073832278909897264797795223431619859197386632258892407463433773179717456683317116836608927556935134182462884358763703722633536735979778492953756169104077138551659273801984978451088604638587055909772384624600646384295316241249913480021366561468183640227344829528258026501993506393080384296367009938490181224903006349754447245285399028792023689966943471334740655883764809168585883511086998767336621702984854688381991161830899053638635334774052802891320967029731291679247509542120986017618917393495958754916168670052114037213519938232173140389090734260501278489320330404254824894569469029504022381153311125884842708262593462997736550231596483948904706461497532914640300750049614924062103597618538458975381913289971642302583166023493447018208920549991400101348141256847914983670107762049189142015798090060886282959716089804850145560430657212477395328982597073482875040064594090344876825516618326617057575950976086973393688542720373654631871193296140472097276524112609416741239438655055571140665963415327077501501794267763563996626005093654889292604662578876597160656670208136461320092806449483005482685190015905689510154002370808457096958678641527818417220970426117674110462483174912856825102421060873521119136959913995544460685456619711903818339775965893393509296042448045172035952585759015045102810853685569306845036007706975359425484451740782025169984504807995601477105757946538129818692922192599553335835829925455113604629815174960457430837851181675052387352959687778954259716509249036920535445266333633166100993732406299677663348939345623951411490630265212559610604807120084416731577062474828140299889889370717620175220609421169772927664615837614400905199631103962374013537177666041178769920145079441636662879232760675276860274359933414919994557532964168381017871359625696207552762921358726946670077386074235920071403280627621792577653348100597475293730580198710022990259140062424371750404579028958110478523784027422245459189988400322431889218167900607394170340599714858097228787113684715918027252604432655059551929964793151583741219903368001170763763300544037599083187876307644629901929033642344372072830815683646001112317885460111769969907131271561801381911111597856332215466616819309099276256717588917408715809851605486210957759826434516788995261937464796054197907780138837445220513453828543025256935043539793593405832527247405458761908722001839194111668621484769156791642966818407968285963140787268230587656884511639647723214129209759353160168861147948713463502560173778632419291594183686001001657846373601608997466533186721839099887061496149490768816258902151272361787459673597452811490885868594757532450748623324826255907414787004927517570498903287953235905365873468479507238517974039001719363538288299716412486702655745656588835963124112894453935661722998330197030023168949848883570327314680053668554112727181773968938215233803170492575707750863776930256586176062757985027360546103149327249096683595257493251459821807216915303932232614579784837421081608784653162985431931217726730200687487151564765853378299798069668838608028182085243087914565123768681169667752651073992641376569356702458961589218458895794395881829913581591579327862963133201210745631714375847268361781963474586531584949453089942224194386293826426028676412299129339709011972981047841990652132506981593442917669333860742677020252746030743443332977928024123186201572542170666462657578012875470278788486514712737869161368459181458363334250671321143638680650098431044026418918978807367524480652055317467715849458744980907565891508312898569797757334178143493803290195824438307828876215939892307895256084927273460022042624871976141736785709601281147103631696869613373016951391756205907618959472404560611990542416452716283019360086310442261829856576872479863760071938468986438412429103183367781583585463144924231137507368813095701995491527569333364648518091739416375533349777845828760492087393719558580455271554221315441204116359474596302250362824343546188617710379577174815899397649182745341484957556395535132124055641662605963886578727591567574318815626347993455726352975519565766780479088148724857888016058089604554007842791981787567837451952976677408743185233855225814614662763702150292500759488991612123827144990729049076721149945751721236618667320811730515365033930104780340533950320037389679585231240227303712623094874278244333986107248713992295789645679923338749716809932677260450052218805157277255914901665997438930082045121047801494846726865255786662679867010373088324678457995912009857140874076058984077168379734612406206603054646795354804753208917942685713493777391880732666597834476555309074094051271706749283427175750876803879856383269418621894466714794045367692765527960615354550784202268963728657798805225008251346182023486943688069862168251461637769455212747904415040991027848126954153065750813058133647518917504014377459479115515461566831465130320256760925876662649896951900480576155657327270827781008422684059803236081998144249922521539110412140562163458039754563665034168528595238066576939321902690083543832854946886809713900065423056436191112646148028462894125295334479123060446560475638621278827584261733967062056505108683135443208095251372802190238140398752008600285990116120138275886972967115538163326096420831997427866595054157383545157964310496431956588160103153970638876320848005529010251488699269166685593153713737938959384125889247689352836865537268804296145937039998147601767089969972541504376127435352920713921671104508359828930560769459642265644559146058477772091408521195088782186855682854742086078080203012915010759233307045862123885516701930018087091049084757069279800833306518084482580361496476679037714517010966661307209973637053368453568715329392340300669188731393987918121524609250294171418675157991196220332550986683259526785890238201432007228709123391807731356219303178056517654081391150865520295921094328316313965782310539045128593466851969415900645566930735173496468209160743674438310489894583327100537665036342553683173390142325901704807834490227099376409224865234774958228180621235688329906934395230065360576070301554464792744051516773923325353494208510251974963388058068296485310912883289980636018220331537066490836751477515371025912380468633105216125450052754033895884928807203471856485612450340211329873174967968599257678810555999054281546921500874768911253826257328193107047559721938780943483310385921578987431480227399221324753136468261401727412695326335899323781415953262083104874843176444703476812244265002436166038521105600573507118347753048490315894335964739355862377152362758914548189827943335536688369969548192832229894658182119373991959424777416657961705507953180122452916384209819903446079117448951833153009795051437817337754948473832097707518809354186870328647327286533632137742129356516600407092849778745908891337524253700378044846532754586975149449739362180760458087244870490356811942659431693647252067538844033172620045093842762505908291459658035207302541713638013369497040946753802961909531522022776020732571248418977152800854439620423197294274760325246682828606009609572300778038253639283441857430024395382050566347816907224540688535212032441506496632308961312048091914410672840842343772292564923981596393025263732522558986524587404659831803644987476156676322907883294398916557501834876932531922677578726989558884420202954587602464763809310764812690776629351875410456298679568226320098605517624884027798471994148374127965560340893458756466137462486460543808870729200707792991081458907142263642727773916880601043182643202115504412495258505075231863685512335281905967723169792180781578467697529528881342258111544911674203442815034824677493774727946020144725334347743326883214424210932155121445528878884443871812118155607806696728125297290643436549773767884561777438669921506844579325920945403418502525946712720822561040901052440843794935751837462379545442799326764034614595315832904516971661420180591976053062883144445014487994686105898035836263168020966733925087395642817465686230930294513115904087381844538434125582159343586582803516190184627398004391066025572337936006667402453032397463925182332193035832563665105751784882396912406272076786733803598694064546877163664191703221745282258526270834449618978468235909896806625523025463910996687660408525866081010293410955424133581315986493686224139624856570926863550425674222100832530389520841068634281225433078669533451398617162648600001552657877696263390729176180187766434702062103655076347931744498676881492657095969339983494451718743184152505647197490674431217499842302749763363020137595348061297136163526991496991574412616129134253107580608916013271518425542296608705918272767540755496024276861745065200362529578158233772064585249285075208774521942524726105246479270227985941732187337581460483153896482339716825183303178129021556116923584320923227652692241813699760162730274159807356664776759910547890440071856143309923698538431257510152686657604956808510180029665083667131047459762588823703701713190579475410397350930009870408895795743671883652577304092758143500784274702875018042517984767011146264307814758737763502219373958069614796833741182539718683843168459576059115451179980831140235086213393230307387112706286210126254249478592271155398303698245371200928797298243922050552276265559219500897481056969152045614682452267428358435600684417947476597375781098416243813497893450345351943700833990366878657203392796913031500597689418660549138529159543453734264935807677330089327321327429174192463819113031397846192405916973459044983322065123998259847369925007625024621324855306872352084496991496786092666768271219505593342433044125310108772789555191428741426450009879230657994526928053807716059388303889278696048861152607907159871560578398570476511650060910690941420094242784198540913082858651757737843666272365337064309752179325527375623377554068514880991254162779039443974706700231858490049958469598742376527993465713945926419425404551171328717407289347159325481396426019574203443028646253617224363896273486371279937945613317294224245408774789080399732783091741801896549209145972797373987846574435116111266442240329150185106253491863260111392108334426545990784633568972226664787537550979425305852621002519039231514237960169344345102346979984515082214898805338887325576717373439420424931882330710034760921089934636459364094909745615574435881315252942839472063236955707549687283873078598479039968799827827843726424647970306302310859288296823493624218553148796262460681991714173832648210014599008798359693860000727026755069937975344704198058168510185924698511835770050366724444941552662178701901966577956236690851149252369288337390605768330141018276580421648052883564068598655293731126263699408926195948740595861018395167779576660839299511063261693595311350012701634522937503631357117469649771085828709981352595675525301633400001190664703640935641561886192561637414169350063026077611767914034307649022637220237231444317820573388135263800330576343855099483319485802583081634931790017199049612115301361461584164337737021212889671978205817751485583276842803666742828665917906850291084058282189922364150059449825354199549004296136735629002171064791728580102367705206733020492885362757157488880350161510492163572137411402573107146488335633631509387650875055157240388345824818745317143026556520879959371839558257589393684376340273723028084446552610152732605036173280767315693319132301329486012711006969538052031174008218093297461268697481198545679789954267834245668129442311951254353529499732612179334233490389473394626657232201254364252477234845156818178799273848422911094315645594196737857215791638305793528708714349753670728450036930133505660258887461696997021896350692109167267999350805134116642963366771520702104171854292261861049180283194923121633876976586019193961710170738566674419872452889337610646740668826090242115746696513528651349609341935516810965599039363053717924949350544874242943143729058795988209569751286562936575384470269743087575246941693592601009527234099156989875557881159914654646340705366451372979781174334143728658413467336661242366577029144137129142773097115612843503445519941079327881496356995193718031775037722511466682260294532947890719650596172108782178887589380216637800620843003435921929862076595692968396815261993453005402428692398319511184027172632732066487533965665121580468356406338936546500049271377415095293478636785522649673001586839370819415624494558045514567169663996656697291030087630979257310361202895013886310250680696474492293059912713299527232110008270236593111957529037723192704555515083045224683752704726813811895177608306846667191075676536822482957007490016433397358084233123071279319277267232332760377897466096658340685792308849393660803594785500044182578944800229876028508924802083671366740436084250518255193420577221024877907277431733393802646983826156543492065438426512052818035023669925605211562240724182049672749072762594448253623598383809667442984413364522388262679745527318654953063758641548066362163214284731871891905435296916392755069941945851001142144328379793418165997597816638745754547534016427352232949702294169152265449306536672728482393060948542414913681810488077425572569511900641870343688604567386468148452544247785381935239383923597130021573514376883960046946291575564203433677579754934255955676238323785943636743337821692587628562605304099006231283866904393596425417564312773637327945057995669195953979452111269492093612100161886573997353406559358930847690070959478132262137670265433796644987641860651633806987903850522754697725025867892527093491864871966775812956936259423034637227482088253686943630507671015762135132505903733035622874906434235354202759489004977465614859612941620485640987359206740167707799617824202657243821159443820917254117604401544043219199922943103706600649078790928381111329588740387449823306076521531918829459817414153360071346255856027455201754443823506563870906620587503060384193640898411439499193170346902942024611358662115308021474351541324762772548189539873145312786401420804357261970469389872810986583652803769643151375610785881779078808886703708520328864270647305888243428350377414920158071655229359623147033639666391022531104664650669383532630356147063762197961889042613241712351668470620754625015060734448152929416423462012142319122421566696042747488290942568220586598796037422576352552951512176770715266480908094441314095766066805032506787900060735265302132325396087035958419017846255765926544580026999315446114446313994539494819438375694885748278071785363516682135916678491554973168011624546255988085412138931317354666099654956612887386276119986874248114295515163412058646663886440734240668207394800507310223880503527187340688955416282769025939910652699960168743190905776210403031741211976784097954882442199072094422743626337822891589993519049034140817269416254355113937242723333083492517347569136147248303956056018388439843037687162017887996603866778980759010674941640149924363170176314375805056022290780398521316378036899213476185865056303923833118940836731507044487056213118106808821140731248112089069002830895106640115025247141535624301101655377324958953929204499689988944386810666568834251866605353096768176213739968802800209656133985176076574072137983889202396921642213666755928281981897278389366631874025730694747143829399397553790104688240350628501916105115567348891442812952193642211433725378941074098578204447852102563915529679453109556108659694017119082208942257165799296565506111405986694413614080265781824572925720264612675394219254727706921602071220228838768443729782540187439321091002979743132416646953318591125243199001094726409342649032015022601658438916371807446237018571427209737353255764188851096837573550719495668539158931621692585429623017921079795549955584466246819127076771588258037748053162828908766001016709122472971121785521732669101436938157323892263542864021699137408762427662115504681533005420254668677416074974973469807007953494435715158150059056108417309683776350584212122184654125661424704729169684640666047922677501669169991716539853201082199612381307359158224345186191732776646542974982979617449477324615843379757061441627229491894299131199545958361727404249109270105056100128930424523054040631804449911295194830485288449810015096594959057368792080519444052584246829464930693301312339308087644760899936472735690201183641170467291060712913883730455420151011176831801601514921020957061905540006410316464596511827333046872508409971396911142031067068881359500104157321942529873734180453043490015312222556745788301037747773700526007878624696799760248033830157518188318664894779313111061106517964093041874793591838326849476763412524669820492732144138097325574933291457150013320597631283646417295998587406443658800462392479753660850634864971350663548497543711203724979651679919109664361787227255666908709740889000570223626154025167843264656293264106945034289024364536334969566111057161872266847143263828290740077175189707754620758327016173053598426712134961289900225130109684768946031204161942256191922085568674092440040707964748232562837071214314892104143832464854789638244130024156707765537775911265291826949209709758843339660374085456655761528448308466037793991360935158435375797102300944201870074846490873853268494820436758415530695270567255926959925852859621840385996367485320402652697939459484909323565437872040330636076762293159377054949321933023938074958403351288204195352433529765303469242618164645541123500275062068691185397550752823126108063088301503777003398145442940279406413792204905874489869827138041157863714566922635095424655667405158725601923907914402486909601894508873448096472883462318719018836189829579675085331522706704933592771039139584263765261572341912065706638711962425819179029068645666016525782252819505090589132755421942576309375248825441257459938513141887424356785522177339463104154629997397620965634270226128936258198835434670347066039572459983162651558089474407138735968156551457395125906012001409395107471071043122469023002275223794441299558147131769276919661915928898445651489975845050902644292721763818725704152541029896171641103192138908426966271084277861276791756694706928330934526748343090220450486191729545386441377050519159470669833750746540734464808904384138033395088663812503953453164223021551688624426391209801434685333010685091303008250657618772870553150239543615622665700073714269847035420683809273108317989498770770380821732709580788615058510084257398758771535186136061642480028879934595569004822974420530214335536890379488854581663639119129178946250397642731283645931227312958825985087735148198752187120164156633524629893793387645270205686114493357982174698742967588783325711519761474128092404971683300785388967809429391308789574266607894969766165803786404061134353525363409291166568316815976113440854860635329581909827961373729600591995097628447669738466404229070256926513509284003046002214469752557138804708083768568948199216048283804961455861239442291274853847711560858347842732991389261809947844971167537858687724219964435681208459088865262010141408096298638744804483484611192137318857299490484234425127153554583210417997608700060077596155313133141223450696238713723628081326456298835999432712254740663945322824827688452088828235910404621141771071718525390262280562517755963875613432970395664392319130801987369336850200645329748072411010864209529793529432837774728667651205712200500277540113231600934947637827537895888831769002341318389623169942589463911112549452815279452231648109360279020091067190267583829430636642928024928207228099723835821571226727380548605286956690897387342069106240160989821556141915041502221334266690230898949013732522323362214210973362938522892892168832862868212253067328380060918507062097332684968020803363978992308221660503776241291605642301928543418904532640301565976314571284999579281613271290276309741252953044499799697992652171738523222574715781030228266991279660194842538525712497955910950859757020045550238639056798855040664244388652256379064791200108654607148040557397081580356314968527544709126903256050521624643919346436646730243738434743998822952555832048962194133490362060774697250029676105574409816309220633648956486281103281567033372091748895345886222563982860713285226165982858556249495404335912255704428583767964818679986102144996323715824208036413529206378119008549975348287139344632060756492323463214209503624547018753798356407757197247476426291955362174725685038550116048488270248438970360277173723241068271849517032227833295450571068985163427995455970960102958675531374868198429101090409154262097225971631338524968671810887103661624916565747220845755946811161646992214324303459416370410702762023791868500551651348085427949154160683942084372503451652505071679088199005726989803861327756248923834180906389415202865843672784227924607511747061872139434438166725607796452081464053077206963008555214659157772565917701814952995367971237358006307750289295489246702286889389350088967022017393741141008526132508559193358361724682916068160936933841398042165582693938952686672798242519014371564119125589111435565181973719561913969794157387267864120094782343003613952498759748626598925988039328149103370358449259679342512372633317310837305505909735620134419534403678199318053368651756854432717112580666858822541285190348734844398179114393937043389247520947058098821115556335690255228950534574866681079099356615538818538867604879292442188667792096103009816605814872949225836713672362895962035880410192851767254615334642455311684635553346324665680093838033623668330729148440563612030669539061370621496581152458171317568785529495495581293764246159194860158897895880362377481155736199513744632542744806060918783841993751602608269097341813503008802410145138338003419748864554161203632718878713404981942344151686548639834389288171811489558956572922885031569813595309863308341215175387906580982315838271307151755265199169844244280709417285850883966267311437426911252121015157192075478232959828969021523414552512277825188327536866109949394319399269785998901073242992093859437575293158005756311011999313353391539307334394068842035392958492608184016003310079397588549516495499573169916459945007471693613926869314857841340029997577754831031044468115545506378359762111459158244100008024784534457628626118652447034131367823531389274629032895440337334035253243744337142968880228054367310351389301990829305329035827900743836339316707567737536261687229929437860206458519848922885114190904854639485712568537036589011979842677661288535187132455194102560766934317736823524901948131069339206544760581479836222862100797546508297418449014432808847514088599328405390298442975374789826779679212366570334908271439681547255011401266011216314594869428861798090787151540970978385010870198131728093311883767639343526903643217170345119189697347171045207060647042702284991906504817349153009664927515749351991947908532637509274043582146585188503236898028983730369870624897398743988342617653154470231921533585819393779460911405881712715220774411052021175832737729148933578461549485319379024777181683486225856686313233999690284692194669979411298931915376591941492095220437418659423240870355506877616206416742015024878865107516747849529651035686859267331935451859893781861586872244720836312270165810404266325818584998724821441566404158928381548090968424969226992789709949153170444856816574610455494567262177625074409539063197468766065400280270557781504508796702257727122679571927390615909209348847989833516174778390518453290095255623745982357689439911979137130831434718636362324360563707072307298917402469352463680638209977740682953458054173256190957063593414599382029583976702567555964631605136621120537414283373946635486773011228869032560287337170646456434497232196642106252786225919713156164854053251076629359775584199498792888587829649542647489537133499310892569085176677215122648771889163692899617465761756004544678855737662965961577111749672700400969115949940556147254211494746296780761553206560435269385257917893875724461737902084111819790795533111612190871103401288955525499934351131511998471027547585361869059646526766626275729296172068313577498572105833222289352493371606898379758859835230218459063768565231467801735031603424243726039348539011357339835032451126597607747474335011346420799476614712178274030675279691581383364728248194393780468854310778915550020158399066184139955653821234903276467160323979940812008562771040860772384443279668206912648191103997762469412750774803062954605040725013497306761320614091325360407711701122563994083995652679106636163327613676016898718967213195251722760029379158147431341666081513937516033762073618421583847374405336570132431903571959314739314292115607417230349611534444392940011816796340877200809887497716683576304429488866716003400379774047742774822946111957657892961950410783071554441588876064282194051783522403946055851208878887814667724361280710701847557941483194926628238719921680251477640545128288071439039552568874176956627188643159736796204948045520032933498762631440027984150377372756934157584823040645389754247731641736997414507356642597534846009356797162841987310742077900480501586259540276204438594100669609243965867761951877292635627619242800097283485746954954418244511532829233559529218618881806152316990606524201216469997552562614210678665530620786405448835782497046565582942386299719328943555622247517858291492568843483496269324452504740125343130383496860369770468250782599668745404517776493730095694579195882476336628724255459440855568482990410819177040413460485023357567468798593743645349168352660577392333741430697994728213688635989614871391233360576126330119334988691620916316413340665313391778539758057928275957407856049531112909446065668939288377349505477572965268722821134136127983824577056347652841310301643156796046086885899384770629645020109863080771591248293973324106594939823467645921134172655933598560813216635273355822482859710585148226682869456321019233718691791779496028262697061324159835752437199039976266527801988516916055196640441734319981326029025022962711903513893857241459872697114333177102227049056845022670253968788361941199459219107175942588189206361905862971550408245160630226096836057932600232996808428685312800884410421883819349062308519859260306616890169191593518555866389945173701875289145509960211829318841973678680973095582805466295777307583306681580157577256815600572873896436382702095619567888677672442447259931130064680448348847108292139227134487081169714183598028056077876975992691152608506187755641548932772842931438210251704510536554745204088447305830628946540597204037855538015652618823590483349742792719954785466115668722915434769369567203915994437565478478969450115932853763652311446260989799244222474646140123830072623858188165723355991844271934779851450551730524597355529088841717450528527916509498849542104128071961208913243228006275991377481491445125741890325249287731274731000554408840208334959742563352531304905562890341766916272520764345209523007914054240236390768342090153869020174808032466826039807630128965474082918689048678361519498737964931782133533309339729393172658477726171783978119433630860773250226389453108911926457795515459546437199123107111420012922736438416756618215511122524910776729792177004812775683123783217856736015681462063316670046964211493687222049442303884730583347737963767575495358861151236470814792830991472065834115803245802523577214385826248652970841445798129883689224046466733511447088782431015166413510004841144016367404064161283566925890673952366830305495564424479210263407749754182539226077556280022492219926264344758247297533002047097567982162879581233640863004321964460440113469682571717361006758706647115051164140196581489680671369659619413557245871407488567541152418892509592010840235636583739609364440224024470608874603883995023441361338429755027023369766007564015201513352367327013425473557446547847676732199210443679850468138282973619230619222016197245543902362559948030020144750712997837148259503839365044014539112776074239285931301312398103646888635840340762539614269308444163094581625789036734895144841765220047516579204604220014783528571560330609058930001361224348739120414910492872427469039720120433653155418105363383711464881971417718448112232346192379730645929867177319027076686518938817172026499958488378127107843591261387152249131614120194490940920815530163395717264089458790562292439226260516576888215912732549449082358033282791848338916396265818975632657702456416329698860917190638676414553586774982710304375187559167985201746773979815509818687157959566422123776614806118401404952545661485715470036623492165965195828757122901817210996520379442332664673985898970683563270106319557643669057688957054160573647703195663631608031183521736172952456186653375066999702523461770583646834285750751015887595407615831942307508937014759314271399473787456693807095666878877095476252392747719289439737617699614667701997750717890988658890651451099057995656132080415623910728784083211458086065168953222117875001583308693500452808094023068427580871313723672120572121920330769433634539077087715160072432554835966774509648368948971319366314216026183785687836091548987851837780094698464550683387390817339452955313420341792673935617282186109404347799508877926512992064936318233872786778028255079672112138028282135516017420783438448633440534468577280567392455027314572574474055108462085264652254118105756090578413410607488732370440526609393795734895715986048307176088656553291207267536965071230573839947150489179305114613395165921138112831820467096408037968519771911244447036431665025313499298077498962999323931016540495664551287540409386197141237285929311706581453924929165657632686290806412483968866806663378745782315521076441860787883629100577878194518066267554639624424407880614529720481337454838823397847776635712585420608718232105167523378609077523883641210197097161851379249861784654708329971672957234314127235336720303095270949323974196545307648150332089284128281418755211680870583805227107700321595610354293106612729795358138634929545277864021479669765410864064663122730289346335218115333696600025667526502631735989493921280034379800533738019648242036364608713661480468532605622153890424047347201981649419326250271478467371637027929651457703665856711020703622489649898292059193741634413915679433680384161849292083349261330892064422656711479606121967025511930394418540313446569238858963245599075940836806195825866116013741876392025166848063170389014478518876500914506119984754934339812817147272464348019146397451370321759409734647466895689004693539340249810972957752355815465284635119522959313309025171076466330775406473176738916386555428716338160718976437321439666824145503084099284377214655553265565532609489753010356384225963781481754835666255022145535962937299787610635756785459880189229776559799932599948573236744892288273782072848231669872143451086330074898337679138617424364500695455320456464401138227353089341524679319057230459813912733885848085955135474786127825504755258667408683218743955837544973847450714753137594336476071984233224963547246351728210270724566143203545942918342495412858968000134014083774652948568819855552633304317813356943305791182559966970601918003471986159319260670029341597556552158783300956885856638450827184320414119224208157359712512920874463930552345205438260720913716580819467455756100771852846904160239612127199659517748410059254209023202471705771444694849983314439863069261624065123845562991362115518303644249489783230525698625191107558373267742402744634446282434811004012289089794235632306265290758164154168648070460021052441239056546846641350303490093595635516752412110127836505136297357818448479566650816227677172618253805475683792598694090822822955736253768337260021873646827496544155488545464919205266192733333080221004465705251637164805398489112895268713152848363458728974045757485340660038492611806505544509071707581892228680593325558175614351142052565749534600336844591796607912023468465955811033168811964088420825154038355707728743301791835883686943782446017978985532165037346657329092848810049475547840437272008894086663843434934951758605021197300392801767292538689482101792006680170705527810328669237514381502794308777266396372035231002624972749938157712669112483398803229367881212776245267675648734700696040861680558979480883130248087809590486927587046668779735944432017748883502289716616519270204850895072814341068952452571414754116798658016326291710060790485304616363235942520596940340347143627369745555225806882128541107549188689636344123774108632061249441758342117450395255213241659473253592112023085736738787409263832891115819230708954931469000708428615806964118123684393025368184444409072928219412986786155992001562969330184069789022420259360351435318760161168944383563109704326085302084142546513647462294607049368058483948290063189222831598097556518345525877231361780253690368409918609089484847662445626614521848719259003369448424190328611740845037388808571481242927490455170192251176453634490617142002552024391925899986721032632544781988832984054154266764116965686854200953385532965686752603510720787667557044028423513528330847096251960650853862842672347295328319820816861295405114424988683989771325135851787711568646338665388006558560322500471360042144559407255490605788547365519793190495532731381995950201640454761674473758737886890562553366612574484982306310153460535923867387630157925699360294018624735946722843109500684030341909521155355749052864275209393423969487215700327702100321310977260728969209205003327420292585517849355163350632525680406195766022448565415920039592342354686443096809549136488788730148941549671538010833739914962938253419902400430594460553021207226896618914125249190052874867020272723538597570486599828897999411248365363179132742689541395068185083450178890729839409088986876800721194309390858366412999359409147070445344698311931875475065958875245249130553742055942108393731705082241301528759233708125971518193030622237889451126990447667987463609001750545446364540578981180700778267246914530770852009240443645690558726335898139897257111212987037563563107318963844485529868635705676352817365808390515988625879581203670604580216375024640177327234286604900055381941568843671643892782951272900876699606534479601635619131555958262206829615329946997941856267377100232097138560300175512201286599955710722947509258629034077967790287665080359723450297201805993175179172378900995009092025955831340629715848958598744767095089552948161592607472725959110466783571749656395332416622122790358396273399839582263535152467651035181121409265971030632896906258910943455664785547731292091572583837508279992315685307905148964085574222291747220371355433920158613767900310364018347231425687138138097695877197413751977737341862250857913217322898528627174637703823824419003015882275421509598949110183773947802867401576743373874270753209284813430408369569020634577872557377356217847139837184947224157494174359472184630185037269474951971943872087700061466843256509647114529511520644105185807600460181438108922932699016759243238505708288901100014226462707160650244099766956470380946463418292582742652561963123645432581073588322840570062449470112349003740636122371933518949219625051890104699688114750261805469864997279219536206907131928790358149108249915002142742705460627452292597189086457755306852565182278495601905430270780157996908593498284321765574158653639305787155997985618423349935156042391482657104139811108152857394460341532450610383323001375152398533984908147649448364500549438182082398028066690415326781706194850105494638254475568150819764718121044538192658553495717228514815545527362884507092572580111623731219760861735607216570272772173885495948827023595594984829942578381624842905860299361812074024460204432413763607657126099152838503489406852786828155877938806924196943642025925897091071778135590957231690166956039247227364665060130686795123244467873288636821666325996673812005043198686606473508243019713396735411552223420546982176783802319677723000050322890134343800093490148329792193882147873112152520062680709760918262789129147101606991842290788464986263259895316680823839219298434945597974604446300485521849871619426439411604492525190640329311250970267355537310004078384610365989389259887072504393856618520646802832622677671059018000593008703162926013374484323202296913809103640724946740039036186451924311552833679039272823648587254880717435606730320709149774994117822006196490949412910895618255786064453440777277956217608647237045202580295768050312685422683336471199766321714988585600453171100814354775526640377897242552506309393772063121609311638349670451895991383662136795599684740521852626803986784038504450840901396358511372644284025181325205646045405888702032991087569624769177204594780363880712135575353737015092809730085836782281503779138406410697053860848773410586975139818323180555559311033771891702318255717268336251597007126123421935514895606180142550592206912257052701304054579713899854739273052738126876250178011534279594020282389864799074869256818727640676097536287871889627174535244549263420346293968141228678471965107525510999989007181657556070348739093444247101792722660887842113876150996418808177330174656263361127340369308836709359444773413225323677119625698171872184076704912272019093497889470941184796571663819950994249080333809191300497825210401074991623509760873400292759642542085869707345733516863051872366829474721769949402247841131804031070785684962435348324164249995331413232655425963084628224077102601497489251127655636195225499784817200351284102293287490785457118010469804512782083539169431414463746209153519433801591934954091424684405148353531450776273269346409349469600337567512689014385406619241740191056284095227043809696227326315586858560579289521843407858901386642148117827338631084159388900069745420761603073734641270659975737774598738410674917136846540980611085914930969969299291493655412279077855903505839465143819773478900047083631985588889240731346060157471460783890809932554857280546554714847304472586918478473299697287743475079850148636792433877902422968406598506076485493232195365740159863252703441283891981907948728521351181754849962545987396177368712460530235835511819197087422767196723879407720283549185274412909540437564240833665150295152464527363756484226610054973033589633427326047480408216822309554217785701385673809002761307826542754136371853174974425551262787741858293141384974376786909684839988687898480032774549009483690214205273465228794218718813080634498253427198079181059131354063322319918087915114307830685722149966153134964855780424451747375172077411345916086763650654541345697821159422665174373042482059272572553855775326056664128189608856344858756722719771752607813172769757292791372684696080717636151312175000698420622800910921996709153763622721667038432153068259613442731007394594783892883075195881299037938861073227721039139869851151659067240463863096258879646190564873481157919691977916227854937726389783638866505706136002351731710459081933230298348337432353579726426551535607711149507168085047256482340950326446756509004736214524839509164731344454497334108494656047712930898952917503100368111365685613787414837910813175222123905119622540744859042089498481038420357110041149145404407476981613048774612303899139769398621464301004860683202997658639961494026581363890395558771485365683144137099302475517891749547147395671767433559384401219107277572039191903345414383524552114914374800157751566282557186860430232818092003625073919697142539662300286287212541130761952196771923675092659226665645215670648234875955546812317578241003980603776214960365801580765269336061916168187674721588650670116552064652060558955835398869727049186110209991731304633588025853978653612826216034091971797875389095679101866410893903762029316190289413807180253404888118402562610258223435659192991456543295406421146217130281506095226368957524022744320756962059135839528932937438455609680243713261920172788678111925610756346155184256318918851671873900071894785822025407644156494543713247226001089974962862695367726115339964159126726619994639441709467062878155041601401763161992070561834872949133751146088416251238649165801562914447905205948647908227822307167748174389312499353499264099836645844575675002055457692845854172595002881564658997549114397486526880841509909977560092850689760161467141659908791624322092966340847377124228507433720740852847868277681859132130178251389273862042848789624836711344177289265118912359339145977688497918744477847716856052082651937043045203761438400345571020819061943392922474617616156346361576601720236192384097766951087290477607980775350584054293878116814969561143065653044651273446584075268938224029395710245060612854901853757642770664138726369544937078327009527414395689261392290543114241579417341334790576214481506745634646357095266642322386616707230440968474761889866759631526030751951725315107716613895879824329119207013349679573522461803664244981009982228079686439747550316609015982368428259536942546219712864952052745238328756159283076254250482612766437673921518265985800410932974370656456001137097120283219173855959776571003357879034311436258155529697115190447098039500748287516916784176607642238969375305232144575676441974795578993065863476535067375711644221499448500430039367105987531393989742277327501014928756572074021971540809384201695296946490957498722448318152005954585685372637519485183576978209559133441747510659873568057580619073215876763525247090601052768186722849170231433278040650754116151219099003549358651008214597727852455461150537030763397710554987543471957933732762190134360195897747148887623884236960850401766336197252726108372502558546371087437822295980510994243446442917441289738142763671481450744042357291987604562287163122341365608178966927610307641840215918292088614119976324469455848909897361950852181678372046398228128724853151571823025243398707314514784114852683365926659729549429718439980489719189789335693435351463831243264509371670913369615398524127646739721291015539600342864857288258459998368128227097863037079638623115898935369265693342023618786564408874277293917209177597132294616872464940891337282123282158370625713271207054554469399588088806843875202107399024247388256064237157014389888594127685201038094969073817488242212566507691372784548975995725750615058304930117387554818297119942106859784663679126346849364214334866227591978351277804082237990733057698043637125774935186329221759843185851382505214859988892793082820190771659383599247185252254032780652400088758766322474911554790598571695419327156378343583215655740765829367650309108844195939659011660043673623961474982297112518242214596360904841612161043086743180761784826590496893182170216330803038230652438761579777098504768895173197470293752463117343690018973613175912086934053860776850627364591771558957642797197778913586171541118608274310158217976553897141977192294646569431654710871103910527767209872671535588080674793404128329584710499751741998539541005868877598637451873847696774757503464968932420481341735685708779714832973659785777862691971764770739440735011208508932866058509721306455639810876587558617362128189175017662783449593524975088412328718645378602895894151679155047136646847939463065557061958082202665828710318461847089909361995717347712631877206057271989806213469982122580321596317049059165569724730593615507714609814938263080433854505577557027205904811723142333345360894986932422121038871882707147399230837999592095389709317113838364017079088897146900727322276416306392781512678472180873659597539771933149751923306567724299250878842645671690000784857942831147073273171918082073843201972119023389840621342133981022026665602417829043891465112335884160630285581474040880170520442047467909274211086654295926179931552419961513685955853562637640410187849850268290439446276975339439811756949592298866597507870385139709143350344151371373683322085855059169315199575785010279139877934533488685455110597097238318825999373164892674762269590281968628981844613893873197481397120029222535939782251386154767534626603228643747655345112655835828774736424813585242450896073518912025310068383780872671297256912180730675103837254330324193820323349541873477725713182107621241145400136314319056647920117887032790042224463489097959115044804469536138214002932065803486804050201123260147203232013406107684195919008434297345870540614602277622152039465369795506581556273285563507009649990161643922969252758808614837704732606943191152967202791769694534060670111664169069291476586695109748260572045091202894028749946219622943421999810611426954948225755972980448316267856502010602280325250726097411681231641898436649122371074239188869084114734046658576799772944669050130103847412173704982900451780486474495462805253791237605463602861628561170340195911381587117676542273600329260729158008171773115383201638521824130669900113726476562277671014062490419704241489150976057878736657640768227927419854760618032190110026931605238460337484536316325807023248298263996922768136858834317643361249696159781742500147700846914459266472040550386197817244074119532852938251606332713867888407898201992843430315810953703355977818019346405805418668551707988573521423433317075317293043072562668030207292985840395951662111983915616289890077688827407726397236800324663252868087107024214173322185975444625151603792209870449653575346783213235969839869323610658203064740565519481153860459031177270281468931566403332245187947350126331171037144681346823090639528184345802610666567246556728851686352392550393012435972159445143714093468699736513275856963812378713124410271201950541663369512422649826961392003777797249937034037692181540932984452721426103054758372583553142252240512396844143579938213296108127971533790002207462284451263958934835154270085200038603547021697415444159522280425640668294433129938125574792276256488559417771196400732376207284636217260384548232008089080048137469999124180730184883879154902542434073647993038585873934462906926508052178892651728792736979441777922223066277666308802525409038507111829521498299617252755435678329562241958508407149764772157670377851986056629088157036518637884982061048963469694237274853901856145434167607129096806660321471853671282912160746720965665261413648968834981709274578476228357536078995933265070804072816960535888310337281502072727534166745795323918520380203476167857167862996307202131813742770674373815740718864587299252688653125345669940180912885089898664214908860117814205490210734106973405312488995322593683128257768519911371211103703844343023835701723690681147507257085110348377322718008698677216118558092583390576118240351540099148883414764123575179645943767554825469094570268251083485296462373377006195106825342827014857711013208198870828043183013202856668224150896912131606831961575806618943812022737973563136315853800684851071781544737851903793592177459393497127231380711228772075469392689748954374084239709370968701817926790742022169262380296518280101190838395423661805104006211562614050707975800297401763625612094065430957009442698134484131615719873868069540093446735692685704253294203797678057294646036162987377500938905119184027300875436561375123303515232629947192738988901570258555789387931122331730076974845669457407237543663332306634724702599506480222621378291228265014579712715875468928722493271420196121081162113692636479916610052882230901907914208457117148257120751612555624649440353414093793973360110619529964372388279492993263063063293619229778288211951072823179345489734104482161719611345820669449970069994522142150562883645133573972130785423853982912134010453454269021293597222398928359295037064310242665160037910792968175403315694382475759276779774518372186875373192059907862499839625788570226348939307824702733114740302994656146370032627807478716409739315338760698801537816565412356765799456866602380062136534792457662119027165492036350684991391173366984710197919189261114201929306485187294078340802619477433411097667884911654315101236987475792455561666599212232384979376222680618782021779346322544974908944605447480394202317668549131527058200636631002229032238763768676723756787638288840501539167439450885262967391267431742857823114400535870587971019891731615317843826282121694931764337647250469191411775923630672955571331625429580097748190093927672031647711847736502386579256312977988286283203857169172178242780864620940717705132200099300977369301738537750441371328067919660043456876729766877508112652651441333021849771263141591685555521274460771532713810247437241135064491750794556335725974866380064419187771307706224286037861952761314237990673617370995855154541374064073033474981489476920678813125314986975978776959752967959626143327121016370653719586491370258570501752375146297065306029390793948251759888119913426246316176113150254212877090506400925241164550837113114582803830408454615057955064911288472774898482514483376936175239104442705820831924079832640014409613696603283499414218995155623571856219548737366196275264671436578575997544791995516932423775649464280030680002762915840137264411795437151398385955117757109013317963361993094384165651026457425360340134539712030452201278128409755527723126766424633959598353555332770348691544580563079553440268561778037475927887450716510998320982982218603352569414047665673497621603658864423984316188684673951254129551977020157471876692943847914856456081804342124040939012027593005412906750824705252513294524792119202004147456021757203586092270170910561019147704763417136362889982891470232488710723774618133115989213698481913965255169712302232970588693079434708086601567089603971056924133869302667175399999748910062096986081775249219568092959459021664742966749900921723107764965175927705081804714877153258410755961146446670356425544745555621768818484644086806853492325291899393902762085820290983833304605173709522701123963818425168160183637580125024870609474265476279779828297017396082850019248724340116583335317288592709322319907375624482430996317979634952786756532040364228311041049957016718348798918287299947379561995203874691615810946859692791548951738032578439774091517982521739104580511836094836632075443179364539065528981464026495862182289974975286774106223179633790178887734010865772021232497471304682842254596139763954751264840374879180022144041953015028788026918983729438339144278881482482175081708816150503912068665367758937930528647937843065627962310525459311542553740606367266166450151968036717753298655945421510144583150682240412793696931793496795773933066677908672413905723504001083931983525140297716911712685156001990764415240633869872183308864640398955530314298135333544094953817062981953967418610438240879794098312846094509733556948664163642596624596493751697592906823473576205432413290858510119880549227149605977578795110711729880523068959434670106079175865855734923514048750329506562794667982330027357154028599572803763609406762447914476449238009999426853769841073873188465430807576050527855228426412764346686405834155422174944316028570784667449796018204620631901759413406420353285089584294316902041544429482406650714827220961309985691974283603841223198462818101851057780279299854181578699112677440690952583523334998373385301789407790711516768505455797514053174363620855771946004083712883709875645939628965749023948819580792301479383803703213323160205440832597697449442898915609651425960859360371847247769865210710108151169024517388148242441616764305122135553075699518747961641435621129644100382391303692983526168502321992793397280779609711154347894650008942397226052957769854749722248118584440862194627476389434503141759110258516537685491897794629115586914006006974785736071075251409723206584766405701767326297559016061869072096927751507872894061760697759448324308141487810894145160414874332489474618436196331275307150653945573148256585505424545814012462891134386226923407444380390105198232625497695649561152444674956112891937987588203072081165804734676967281597968673596664387141674149044953523923579845139067352567297273378993381410996995200144486878084178297433836331194143626805147006375012271738522000874020123543301136792346469655720016761354966947443757483556347223617795049137716503524917583168085741079153670809853686803591518009034010132024054658642845011518015128956089232147797524430971068567204416357975733678976862942046261609717563770423815935477039213377303640576721926403961025611042136546668910842409418502413566924954033066642639268707327735884204920782209886598385947207545446260030545334511972672389859729718104535745442809011556441476955958066788281078061220065618240137216141498185241123203923489971337557663246418756571661988762256170131199157386213709546660673209936340449969727299164358770781190600491818470172378058216277985896802864167659008961196046444086745395465412068256774988449914738674637773829895959862754965011835049181885408285687450968132359252917642335473985257514002569057556249266349141821534204217157925039849625889422005619232589806379472705009582097133449749028351290634819144925860307932075247346090642445150229715341025708912687183843315531954412444072153191133471541638855157177002644083023038109767400936058934049785977090662892307560047174959925617356985875170528568839168330015319407558575005720610928211122743482683657287636153932876440845258890439291695073364758762324440682060680780727620246814198592431199180685515183952394526590069262947585266188069111429708651525148586318509435265719787847909720760591665964454550435050536100758751903267031608953127040902035687706272760301822910833658213607403638475858012975398421390562005394978897626140289028229919696311876390340907299768794446498257792144984448359248240934968180593243116616001214356458869253096346219112834585009400695138798524545607385125151354338428354335591365925674480147426216271059468244919187696997627305081676985889397937406254489812414911896101121996631578643203272099275669703067336830022925686033509081489953929492298858314484355495476860094171018551239949541872170546127473208585834529753541867222090838250460057740689337097954199641083906773640618699137594768097782978915163442625567846797683638708977386290892238554197983803742953177973612911589063432277782793950810096961523127626021203143466305758369613986528873117652120816438333835867626248247141549848540940671172772103779517400990968743030044337215216725161472385885539316374922041398862801556849608566742857121200712417850734347453384201166241321573524457940579701032502112949523574134844988997131708588156508991479760699367030704614577598245173580080673503797507241819166993572294761505791314727621789507317980710144209178853044392229981771114430097498662624403984213760779423602752292333887109266702942081048915597244356416906759687212023790620871694211046881233723326120765958786155376663251540804432093766408142397210020138192581335836976615594402100584493236882303565726672185011348171639002949268323948261317281673305044170033735100645733800034532520727824732908852208999909453694172381970044503874666195125469201850187539639157975930526568695268586992295554161637387527378776969845441315491312615542409196115502095161646853305168684966267775534433086080846647509770063141599674054984165733415389131689921890971426598506863592439871595759000557687677975031590203000829062530307410428277417073668944440726119809575449440525043942548502404763224013415209494343425050104179480181873243905263834651993743918200140187557915790634846275626781203024307483435704460990376198306181475694170140793823027647823439026823850923958384766718529544950642642798885698021395485562220779770524473602695395470587455442386372768905250231639326123800884053764991775176363846884576367102202364641273418044200017549538207262189714045111847510793428929655801400480090659665562874665533096877236927783406173665434045822301184811327584855977981296534314599950027579869278707795813273946655539565114057125299369985893274995127421109371402335410302272088206594457265613140609163035696162123336401388049209486066032483494267132013490080405458058927679433410929119551094075293678804824469299057283966771500564512631967563908438141825369647455700997076512038171374914677335775297247701707159288076901090553447874292230825894911277474383417940198397685626048887203920556613372294973635741798150918165367797446124166739957846910315999616321341642310294023482381942213084035398783058694395160173907875351168726271541622301639611246779055387928825448952485680829224014221385777601904338894354695134006388456294275774925298165962928110078941059690242710525461658383176871763104903686404811001745751498995352755835616357236035301904234503796151812132093595274172320864376295241996574928738274987734304144599425143787775376474102786546740274449590081319068882204657368519988334112226459063448288902343088872101530491899643755671947146083444510895475954899497299013295960492895694360221207820188079254169423052378222740737015951057496321927242928840742390955360726394238632293150442254122193034871759923946650646295193391842639147371332363835805935515322498273456153672185224351044010001606882093503909594536613737323157851472233605098563345920708269703633961964873799164823478581240521467305728387156155995891012258699733411181073936921110166739643265124269282358029144519236403920372658475443551016791529526412522211483806224523784813687572899725034291663406679474254602161814993682025610051793409198783312903285910576326719118477677590241741783476125018127718473319938444850328156551356818448730721383451356247746751536238832412059134439861852099129785340943268409952822744094906945778246967388524549183385531416143716804620409517324434773961660540376810899809616495367476466058195625176559366755524138882883978584698389420389592509867588505666888784775579531371769171795249611646274743633028926138848456254457042670962058602888480940191238475380928676093189044268703910493428441673270790208581010874431030621145689273696168248570853350769014673775702808410140645518224868681287443730013504849911619881180601870100168352548337602739327767866738115737843703744846096241513669251578845906779151779772802146038450104237739269754741415177745795695637311471549241841161077965704396912228186017739533196260446774408722950290992675416736452125601272192122780059218677330275954051754396486152834656891507318951641034982846786886420768672355660422517551359815723157989885166730580076278801397127941543572772489435414013019244955272213517001104390290953532808851384570362005163511038950965999266905304985232750392983970175237266331526399941264537284592113478901418200490478642692582096192403973791108302829473573288939446183902746740055178853196134212682461182977624659731056461543182643426273593164918316053122560678398018371556705510394055701015205654100298615191247328146830883533038153370482753037521332225598489820550290911968528833817737800583146311006704443727435692859136714926165472714567492574648487341765944513677098272655640264602004334076835962836976285111543824621421187748381618188477509063750528729936863682740369455761112479802706455202684138136906177621668875403938176845776021058232089951563031885745173600707432678948341408098421806850137947331703437770776324718545753108478956393397938156115447712445746408530087946044250990488734202617420515976223804226930953049929630096359802610044757651653941552471870142595987599099130442658238641905584576434300403263168540708535814977800489336070156666737266074126579913047897525569010865214754295855161921363604398421643663731584480202015841243669399331160584284677333271219613152136347565080585682696904488938225514119854143508935412589782272083132552270159473139519631711313241654393084805511426249355339038479186494948347480265381457670287327888798622148824578938585160223383096095638226023606821455259798364792779208378076826936428142203389218317900299231072541502221515337999726172148394269819089449155825280228739565807658258355834426103805717585052770564741925063599785676179145161582365145878881184495704528143838928800762724597347214039491651839498977340594877991645554106204396960455006009684606065851844255085208155012968801277148565984273924172202092024069872289691411517286641282445975307833340749541796503534626697471933209304370678101894490692598342463851237308299628281384340971988417917362578660987220009749347224333582449402022538558732791382250330726300489838459865246540087350642595878433192057022939025317041536117238576245382286286778410945456044549817872454828875697233243951267226019762458619673901319401275934434018950431648752430093606483453661483386620991100658015486040989217847067957133482778560362745385744420634872448400632205413051083666623377905888334314582971612517090455356175095139175332589372134779209327206664995758593126151960047044104817758336836147044276863313062439868919640698420600210552111706903407599720125379890755743570324112660364942550647442446734469793312118401296751316227024511813184933819944210690828071398019435594041820179032180525042156323889778530389752650072497038046517699171136939377008917838432613506464819311276343489690630869878290140014541801977561043137631442579241423249430844002217872767230216736253752435574819845484106720617559279360391597874909859348433895020904209186591927160803902711204280708765653849774665544273511123038894288485841536240835545924607173880349481626654230393359100956813846462794301464318435319987446498350056978181641386638196238139621676390677194541256765649627629273673120766409970584387305863239240802152232410578158912331483600786903223678287534553962180488638119483670896558831766106907504168214060383385199077364394535385242114503279652553465656076568392852304838374737374453830436890713262593859859381555073397277816473485677279531768906490049424203151356566539294883705607172793985085317685702092096281444711830424036937542642832514387053674212316146236488683053256574014052482818299885248843460847676660506989649290051224360103537933744659467018834410258622361805641083452758035616665689585358022367287070094949793506915461723240949859561459633139563243226418208150911954385186677031524540274270207077981967709261575289645243013248005173230399639671776154292290715259137355922540357983243206284722057034234803796655776764565787530444076069317274126249873505143530538054444280649166956020523890410389068040650290563935629985591930635937061026526610175490843443686376089246789119595375944557362703432520132785791173359279173817323606169138935460047073101799173432486472729933836126795129250088887223678371212496162864642852273902090630782955693023451426737980605092254014321442377148489100551306733688095718246210911862254051966734112332366718873249496691185300721917270607725157386634484077540474039735022728589634131507644529573717525631607191769126690151654598662993477834267100633030418562894673065371875861878913546706295619395815532364705010109542310033941097375311847872823595579129289649533488249829035214605102630830409882268998254926081669815776288927226508405241404085121069380490247230800322642630933034716325876309371583280711006839310209745581295846611254639862534451947461781371275178273426311632826349453485661925245181157344140101400549978332194888641506846811486126407532061269084654113330924742937407902686183309299659516045363680644314719164989723646778771759888578639559791908693125790378739887378032266001129369439622243564257099948540351816240633039313580048572595064204562898201168011380715529102345026013062486097404640116824058564910886497281890592681132701770408620520443780603858754976805020450504917757176336900481041865635407463430167644900190164901529276746367633278147209688639307007601653730117869880092759729789618370636399494216772357040387037995007535666542302205546796840528131845636455448217306623355636457373913513787780372557423550549816741554955827686887356802673074454874361519421174268964193964138898489534356922864567229982997949917919394336364511738599854594916268619791399954896794174801847387105978243783000885168065773376723083820807168322315871411807110270008359214120801063295576245340519992615342054693204875580927795645578771946472082414395805275976726807959644865613918218179776887412136262357220594142632303429111816506484942813779641153918258689118029745738174929880862432898872748433724933394117223791758493826751013007791505262959680942728551895863131250729986557899760578904531992952938008849694804630840417227784236419487079014127529002230915797270816497340855793171184840154832990752740646095550538374972033700286150988116362520929996454925542160975591328337506067624817036430446444463137894972026619483507159184714195083662964317963680385416690437642786817307196059480552910627998572003026652839037579468559829806405107094844127757731272205093551905684557749984465950498999087091567491120845583268196885302421358804466687484169130939195654883721185790996571180971290249363516216972468714797380067637569765672094701484334660980579897643689083273441113193509357202538040148835488416103502652981291131426013937343613722656905901193355718706122471568646247333076001862153058979853093596493326364908294465039464709217706041455157210063279969182072474318953958093388363808322130302940068132021126739515751589110787489604593047820355077960739232586435057613816288022239072510536886180693622422182505121039879276819730240994930165315604552000738913352186734935774340068843321813646840952901772717467822301821963350814682431253629145953771321116133453841022570773825361634382698388856277400875742349503045621803280247189990700272708670593665862745233652975564039144953477618002465343668594848716805101642902511718401009168800080662944266476025298254190757150051604756111089540766624308287877805615458407913001228867881021952502157249561130238458299111255105543206545124426046300567816722772746784865562416127336097457663897558732213590510501483135297839559234500488177785112862453743921510115505410208234718352783299120125699474949050233505483348956592156779033856038438572277472777711846715385803535127322836268211847736003891190868846415712696331576849066036812582166348016658528687705933739300347619801320923942143009571667948445578215176613901167739182180694081956374715238841222313511095911906491049078613274309375981770948420227267723861823151540679904060319880172799134396050847764559796317277577668254747299643610713667192551781089974721931366604552398641503575865340514360066047429352959056646893926848584466618314533531990636773063972849151114657329875896443544483612888091976342388160683852140001849448900066548933316476484155237205375898865756110879420761636745047027418564731394100539964389323253788298667767195763042182695247653243209566171009065159470760453918323208423305220493458578162339419914867166318495556504872578071136260026704534867653037589191934502791271363225185245184193111994257862493084203026827335440388284537348131986632780244782284239126177561507047579703361408695500582545357927539650430974363341103430259335550998427024687783075530477827280953404732948562918197715574596898032249921017391389318567020080440681878464885900813120358134674012572092569354991654287944363685331388312620259301060725570239831926927393755570968452897887038358700112395615637925364062570442558313897484101805176340475136577546173245112020888991570113921351946473856004851827551409328992622685258801154617673532582577589172867664865067090759082614178435821482530070844794095543321007839285844486787100003954380578533584596534377514412478671728338106241002255652374254709652627034689509000854963450947214912227531981319812794812362462716323973113322823763729196567367365478401038451116489309550545125542257442511264829247535856995689584317496651546483053683319588237540110636356675235381636300701852495847452674270090240066665772771789226490492717773482854847500733192847170181688305960275752523608195592714740543550918801434247690821624044432516981951800111597195879676960943351586709734481655137658163640108484606821904688006779320889869646006347449224922562040867299138226472498337024834286814109949990910205891723997648846260486392352248828347725254570165381244657511480537686505457811049917214853900772123278582876262979161447429203882428303940427716786622486907965417810286699956256899317602464606919029365946201381894721383277770229325282426789906842666091434637722133262234453305718880163547461531833978815967599643296657245961866946356219413580633774733495338246308857343027907544587119458649074426824381311024974755127530776362906941471763454669445812885015358370283922170803521337445209132194794292876921885720882460830701940299060638135141108436704453112068414429444859263439027228540774547623621567446846713489426004834394116523040561987362426592392762235215609117156513683415360825204965100472977519446111450274444557268708911451893899720776235003821977091147578587005855692380859737079453266974628616149019291116787623737570312979858167868900421798589428314963642225336360314202388089978090235523109389844510061324919348502847013124490874147561895582422311790369018321966617645002792712810829177712569007062282999737127652366934814521545140099580176736774697050489299221791383136070612769844600323923898552881065086647556973345910275787948672023761126415460331340640535489145979743346973652228291537411173836192481365362304689557564563876969983582582269091617007128439362642374140977131642528988898742505566713488285529514659483591008385948179951589505500764218807138968943128289637983316360227521835050247442392252574934306278837072633796534015450716154082266032865994436423647479767654174782244730666624157251875703019208972739078146487778637256069554446869299353026004661216921159501285638994921377086844074966099716832498462567025242081986855171974204310222221901342354594912178317791486250034239532299661601182853080734445086524388483403051458888029314419402831494786189561426220481543806038557703539305976355825744334308168650252570931579877496752674598178106426873893896963909723545437246981421687299990626373727360544137529563255531074377046156548435267087426024330152922122339951221392188140482688898343620888979593900663348848283766914366110147879221147760417617065589843285673264118464377401291383328357587510737398817460766542394667246075189620346470251003043836653171658974332764097482518955053480407123713484649582111033408216411570559151880285623419627451028915057155531182995641763021904442313211321497111927183219800452067645943729535118117019509841328620235253938492110357192159642932222319786019685636492464640753845211900875206888559978848866232416274789656415971820986283676750872715843770156590697568549527695584134570454539133542361322018090227886169532100704345082373747562910745881898550076811306998333312754708403360652114612687737705189316906532649926904459265033017151770647163357499992791538029650024047945027734876956679670814192514602756446419152810587644255942269624737369765096128894069471589173528184182502662059677040194606208097770542903746870044106960116484891200599632528468987630396941946565545689346976160627452854052934944490194234213591732088775773910684166124858860096653480453410207891832386699799741839847651970040024730633490129900993373387284677557931688654171949653605731161799841367236389362478112819855620124314113269232777090127348757605270555943507378112173956691612762936826607085227231665874578983875841493627234798973487711596006992822877041469792561356090635178596244862719994737765476126458488751009184937303458297082361601173379588010887195098326067466927196938175077069344142759984629924570025176074329036325305396260115609716603487001836368715077785696204390541479527071261978809149013108717342811911337390344563913035826526248450886890593959746946569590294641680762577885018152553775812742851718842349743629780380701538715998580532370501825594690996235010732683893264887356849377307078961440116669288183322702933379525988134228224356594860818072399981853215324292964684502957040883325342916271067273737665526309763857524141742253807241392495188287784447402648951784580155787643545602017424553297465123917297594423475561724606299830327525991863486238698027545840300130412293549091129938853040436130252339587234295605447385208029148624492372553156868559031713946018397599301505965381181308393635913006888082463343327625166568663582648277685684808918416653998592985533614524315476344558273878017240696426655026065268074310247718423354534977662519555472255045140833920767364245512324772003841029536688446812310727984158652432863156721338402098456524758845975833519273506910770740270539802834172741847332023268827871633167738131435761197352315872600297550688361870017468374405687658796956548270753504109623386561449417343346330007023856111242295420148257172692967204228586478835622658055932959326272785845720149179938078851560907448435831637585526916661660222189814689135902794069056876593787632035639957948679240474134852114986015282397583673944491374334006152394916199119902681514871201988234410271827551475897467223239093168241224320716149321968093026879373503566756619408787704324836794742044197828885642207215614268569407608194169048245158272857671611040275500138985728202050458203479262052096478237916482622428036697349385307626061925903151904597085818289521687943786630382429104322989578239933448124077935157494475113672558308714188893100009210641095969231427374603920299675436926346049741744305030664492174031767273513160405754979156583420864748922086752834573720366485162122228307736135356048352824537629262462180893228723252304996220381973598405352850323315968762060458749159227681559415784996218689761189371286135956739832193980044738792788889380810796109190112263838302878324562072360924610675155014920350248473347471242139459285503618710879565279576722965091986574733624923979391052045892809910858457707953650542839987358317153067510606625551136619986587730874078920810530315954176156375471189942099652121803156567925700780732330179537434386694350074509797696098086498249618573407254014220137675213236489802856637497900827710259903010961995299923069820131008187403188712741027098939534718176203883038998010338840593043779750728815557968355021043358778241625069071562681378759698069655965548665702574341247976077000476676746756927703004566960019173453841809093410959305168112983540209609307301471143114310642304309667179784711995991397040857501777761592696159889780676874565384246338971543314034158050750669799355450673146780709136911821732095028190544794988736563344915393898726265928206432503222056730619630434705203469093730717870970342777703360658953964572067182117942571415161018863896533998763996780537552425040034167535331953482295864681031322678085688711446962594768326601129095807694120695428415803814031771509080359950838349258016632567208991061020025185534620385604651400847515796468696859092246418096334449294459217936936587311125696523822909741097848466581889322537712317466235873784885470006855769124770248090862004309298635261861068087394791582359906243162323641112593678037141535833037899802028127971324174833766515563258208254028174727052872219240981072724799808088133842928918025845259438788280657523191480251462248394038850705672770731552515964050531670234002013048123802947385056384395085666734898663945113997694761179680792859437824707590659501933151760179587655942041364207139945718765794298778593804427730113670150973439499677954287409485261353480704564462853969934726030944769958112932301230994233989308399495485464845078648087347939219562988161888602934722362273267754774360939816262838830205271546334893341209602667518148129592171785038370430976710501387880163121922037632043966275354726813708807431079854043452536387469926950425071199271507669497908018171125836036050736145234102769203119198881431769911854347614315624597311594290865045491188934430007948861882984981921602569656618580825489408655968346712170268062423812639473574068995174547037288372557411614496895286349685502818788634362261059831347429404759298949675418424843178519078427617635618760564184290696365603931528367906582030946620167215983035886791113045740839940641911782947445741208936245267045279282304313076235662194790343705102237867111089304598900375966350390282505223822810559929067423984982458261635944889417233923229943045668678795213011818247397921533270972721489853101971584444014415794460303225644774119498143822607572399276837700932084073073270303477181290340467958711327240073731079894842558364647244870198912602495258485777786335114038198509190582714950431836125823102742655987164847772095452229464825805919301838319822688760175345312192128111338534022032898501859194464450379234361927311335263032998232356831088210239782399412731466340169038496142248451958240981134735595743603750467215998898738773132284575726856985629191598677065303140354212050086356075931995716894228737695632886736189442948298604809100533975951726063077149942956795501906818511451042737422856542334666554041906860867557617044217820916104286442930428369560117346782342461581143688599334360235587120050568469059334387623166457428818127415559711338572230421360629133942606953196825804062630755934776311979721712295209182837576565769958808270536497388473948216903871282146841211376656502679739081512058905255823858715732111353566157887853435070650248914105187817370037857443174145676828364089399371001262999704032726239468954913086896633892751532634148811728463814557547830428155766250717977595115332128622998401515914510310086762129469747487989043743105978875757732499975939489005820107725583057335784027156717902809140436358189608791532182554128758771050649586148297531664146005504972136600045329043532459925701636654033568633819758797430396438351884385899252815218321563582569389318979885355471450842848351684058450590905440384457379435064051354093666242405452707854925739971142246161280571578411797804064902603561946762219039563059840196982763807932228573928214003877148569000585018685140668078196265191516515121535236893999199428318246774786292254910745305722589471360370194817885697329433304726238229899582433346116994090169836887371223464849287723765458331682818131584153484410274911436806123851823772998856622620627878271968808404280082907165210877613139730381232659884678594695147111335111652728502831066413859554905525259818424319051404218955308218535150789045035006591945194844054648456535773070948945430433580940799703982489183360454420884990529120152999295861270477271678199294791215478562131580422739832166011619897955286744630879637693045866304354973248380114271272206725574831687127952930975738459724580727319279630139237267579733088463674944862453391416950262919353774502357657381935309804632806562528355357501337220424476565998860948605601664085572672992796713242365458679458749408230084551416986172398994047313519639113520928009263234667108892350050994936741223861111561918654364557074367781733233088623474346785183356722420825657353082104360113428053808463636127185780495644486288017923811431954140678068014205445603828490795871803352673888020504214511150009398774212850969615013943079343471379919769722947931426257541624233186655943343509693678972371979751206321747057208727517433801891309289814716692133938881763185837635210415761438775353302508307970909836733267521898284481488238121377713447585279810015821925251914247853721994007163763334785173047404528601645899627928020425168596556615851609712804083600190852640677315758194094443133254105286830329995563605547147749124161863847281067570579321644774711627328341067728077367839982624753969912787365472647585533542918534033611779212172578993839766574215680689421179437782318747050606542713138829836803878032265636948591558533980426874415156529616825547018429530719347863258239855995964088434337746300306036003769368921211885111976204365696812314949897790379514287110198353436778476300833213530521314404193967877597969267538780275163666174647016099468843754752434035870781378381026680373295371998222001112241624667643790984034081818213263911928506606647096914446899101559603385369201693126868176771828554954673578871464262456559546525613098035837935855202771756028407012507263395140961516523270211937167484974597528073018697898816699103391630853781729667990810757225509083180715228502165735936509138674484090297796634248775920264595669788659219951743130106019903461648761913421583821115237623681614841564388781884146649447128827067357921581221147562490404316967932309001906304349608407069903235277980858464291902197640789519271720663070162324280261874164261874806577489967747420921179672825575533457825561819273306238713565164132137781621767738357891442315850031497684697907819998825449748227590083948789506405859406023452428297361241591564523210447432208267605074854126858428316790558764144259103092190400504091677385088178105267440460827321402008972519162462880352111620308575443007340599894779429649578482338229281027999865885997466883715571847476956796396706745307767715149882081132357490114097772261104639294163445687288399828705707013378608980205214793647086397073304879299719677165807901831690942708338016964195981500454785999524408769342780250071472136974157680237605916456627086186146307719500429175898507427033262219189306627731610997614944583134992896744354244160358539677886909614836721182192379055269957558275904316612587987549140585575853501327765262760141191615588660364725131599527904149224204733992590958307043056147065028414605690328826336008879179196347420263885567417026921276282005907939080696897073010800686501038607910988959334926858489551448996278617707518877741040495196445221302698588189410482236327445949691392244258686765947538327221146617136380735098149163040594498457642314919144129746267844994183230929113173325367819417689094725820697635784546795267446343010286113532101770733364743060032050891580069361645422225047872591508071194656767631550089486984094578413753776371955443602845982835275479934793062663496662631326619804574231977093349215705638125710799202633943967782584093539778206638242357641891208747841521796197771697790616924164309601265667746388016387793081127315421201052944414545668894158423981300311485259330159110090667147464577773452903836221538564744712789392646300792856311976023822944995542172861512781738380206129301781078494491262265433363468763511572015791577038384955902907156639119920252527614318966184861734593483639093849675025532380439021562555098553495322289620462075304507003346542039775388255875909198616624975896815008928653342366437338606507882712959270629273039173033881322233495538631634879033803212335795963928330315549836344921566702061544569241531884693227793560326678704752536891651526255585653732444059345222895305978357937533945835229238073497611321956193471249398303906141500153625718180515521182692862620817513790025163338658491422101853665486722179522700366826260550448498128611793372719416038892180514622857023771451742326486566659998232433749195087059809914948843844879370542203780550311761994764594214286075968565196952337145809016034309882804939728785055257328835681777152551821021028441653735435996282029866329651358318024268032204157468782718269304479528537065820485778832992606198134035870927329929702950167310948566864776837819940667099674571945627451007418222835125488322730392572894887778344707478978883529921741771870387367907103222597346132786755522767431263913360665811564171374995991316831092658935197442713287917703833864117992974601243169574903381449808517865924342860298404641443001494052338085867581376687348002545809778891681023519783222214930691489729149109077303243831521377963925273544724972446750318584895367763400782705609327595042517794605170345711446724865475609829860321983608594385969797522179914168156404454388552348439817063919225553816614929536709140356877037323897507196786027492543061225561021512506246300987212791229674708799403463946730074792717169186761183762450033741126558657478913422733003238520081316153239613924812999406925262320386975245707008274516161616149150999330495115306914133526162243432795279281068900171334939579288609146775597738611992535352765415424692821151537762663076403011874438739133782077309382121750818796544074520941154958182057526897225317451343003364701605581892013012287319290988020014738737190032638305235756834229417828030643066926565477644932945490373708138647153046849609159046740919390466633394077021934441868873415734774064373532173661442838861668748959661505562943216106458830456362172631235951269196282498169296304583984256268133111007217285823611138510582436347913596444246651630801630376921597693902910385813162675817452481678948156803640833314766509444461006593961123507666210217653976694604370911941856695369939458809664960306053432674141743375753950814928485341866627944908763882179431963805277861364709642796870794624494299499214216115412285045421615852271719448936847117773240865100014105965137439754960799948753735927731040041308604837321400638272821283763777430750678137463044198273744146830981261389949801563825730439985198159495357405419040227827778231546504600027660012393682208183878523833207718959333994760733708036993459412875306623027165407315645227496606442213686941466313798499849390345273699940814708685414379112978287887443560039267932066727382709501898651431052190535768986229472378561400639426201238996245403811104822901901144953160915588538775626447411817062061100813740923512333400537870767687798679146829897457827309849198636650694583584418032602463278927393800170593063975379477155924716401093703779428566232574662911611036329596084937077234792535762894755572554559971508739917152660452830830661760550898336864832127215568392227604015634622234332651669902119156855454413586774889033969921097495877953093497545539722291937987995291578804223275847887470085646955093139192583751098091182013542875657493842830068497894455441452843111440810830286444132516792146931019042024684607519624972772535330860445736408626065350361096382365571399936845084804579325886664990037450236743357625304785350611530206605390017222683616946782317877873221147450555715576576445202682585574575633357930090542310463465917383967028342711311085419338369072278481141222558419542009945006010606231375988499733947557723122331385302358308190126488289220618745585079815903450604900863578646344682970199114507313391380986087520101188239353686078980713174521045067822070135550150710814262431909319547420251783379480617571622270885922852506919022762223498740967757206113296621837447900948804708141812192652831361235466351195114616208154149675799321002825957947266803054104097603903089780630541140491987332782950109256958900944163781975894445261630820907672701003017094931272849249643289658162530681057727131466414861280325420110880845549665841076170865239016939272582787058828739741356220437180713177643882686735019173795927280364312007047164950860130416605308304166179358054742965850111385195584478075131289108265847373043855480097019730494451477880848651107661333983919763802471664384913378180452850983219080561374999019811294208985901018455685770292008546998370954421194106721778279251824746000963373617933762868894464354837342307889998034322957350114020580915586771982020043529302960893015374344112040157913482304254572227864509372612792905898199170309545740890244957835385790401450992757190066749769899231231486415779983931366584365992057838102084457246896504500929111003163839926430660990428107687594196936057336610117029539993049605063345954679765466615997940775736674516548236795282771401111873050977826078863712039313909593541458426073109521109291478541980950057506413371365883580551085349892396614668135560333161362003761113505528752192369805411023824101043934915122864730212407338060945997712071276522752927721700189618723527691175673673941592504304568600330671237475342361770840917662346187136485345996833469204086062062293602504386307829702651445231269158720458008758511481676497686161115618955814285483210763758681836846367671465315792593434008221068619654179013048461236106917828916159842613817170556014516188682691998274352156504960961945930960353265398390502934860777897459862619099770448805183876523810913836763689502928855288092936445460419634966585209609243172271365293218553146979765546378571513590631457846135218767773040518905826342618100427307441823375222631599780854213310051944733935088211792086404668603069344950720697425312996136881053528153407124976976025530808085352788186100962759098844087450062887526717512280273378934222873698161404530265704868746126341221320650554786748259584198776801035732954439799382252593201924582455702727616337221090478187969844819506721730587139244954349079106942862638573241747832156951717160525659828971463808848460400579112237272591990593554042685380372197136091826420198852790212733045246773628789708202310817943327856016470170078250172728180326460929845620294375690292864665040196940426430430287700016853870736193927580897383188781524552706186212497924369376679578007346478665824996858089135620246639214945945663933440291755370393122851051446934271996050715019024635355780944773868251102328630284892082258933426992952647158878963676222390111067058350560768219476172126635894491153010813429625313172252289067114020162733461054950392728170030341606492546417544622521333655953680911607475638492351774930546580711985547737215023164999912691023393008678346989080292762118381697587151332275298529824212974613020269523288723045702448366590897192366114612994968163658145008710177988901647831583933430797330436631314228646404235554130420281489354060228779085769574098399528493126520994808427157579273249259354360515196587258701268298477165280998888947507816491540605718791163318211141748973597106643428910264728966217083261368151011518272526522250589595300468850292631067426158538744343158620001819224415827154202395971801398933806868270131805651275611680166767962845675349051538461324387388714637128561544214678297934474322525864782085091153502601975546142247256937772106053066311149124975783479612213023595026095787989529436384155518935330111291283528154740023918940772488660968249070493683114352026369818441053569136599904773223937129977161625078229543102580385301588555346989926282342964380379068854158484624965156933202208461653822055981027990677586083077882075689423356497152739114976778745688421735237693957350673415992998042516538097384315982619348646747692369752958509731246338968401669547927853092463929090696060226565874871828433432301447850465716996942367940026941910514973425789436224589116204736285064252051398640997026821433615588727705859983624332233834738000391449833681199905362860141328175007539892211623195857486649305162511391422727045386994155903437569171359107538738862931214735757969959687203458883518430623779517341754701794862096832768865461158108939639745074532568188339787246153693854638438010560850608180936358211040859364889782929292665155033052250452232898319123441858185091760174954852207602794767647098080130783532691592943407915956941799177719664941551854782545233962368266474983465570226929767737109238136075668213698792534247091952773579212478231905272426441837679904309499039236740889396267875939847023722012938020791241456348045767169811477889017298934534347086576044524834360417644940571479897419984585196968546148849745509931785642408341209039445534217806132944249830904553677123673272731620470052318929238971604201951945852694754880851238380941679925523116998841514787846502458105794604328530838806248208341792095897046011119955575763464814429236227696585098000116251867795788103237021613466483555008696251957654891845312071517986775705096025709104947314981461923591310461357667821155755025133198647495866289742510356837338086061577657620527036656969857581142125500709808343063736760560426073664017485079078908132549706377385454696672006337731104193065755082188552233358844499098025319827715178295040077069195568568802594026962505787966518054739365778468838894030012320589861882897303885812718339016722538733777653143404642776724945067467281339778495777173513915566021927398337399699926857225852847114875167416443872937924171536646227512147752275721590455748321246139876708655093037718075429113931808413283151272428458018004433723849248473363881055489896860389456112881094655945954901801586106071656312999312887077942518961954890109794856140357164968527262469386691349129778559648941108833141127754767027456714254411055573740037622902575594417652389034938774844704798739285556969221089584144494905175446061630436282317264019003982169635007216184025473154325092807131272583365437269302304843712618615057610961707991986901780264776727218882764715673973886443009635855488073900310677570666707473665436607199737024584145601949507340740445991440232608934285916253452595367221263170668400868288488867328215931372842604011607798255623142092162568277776047591015418662847598446684680624284889409879400320146122403412865758087206559318934688659883825985679645027613377042418197793477474289285690742786376383745910662140447800432358093523907183752937602136070705526818045230726694617045068711486039362986343394452306338345111863937880492001618236478212133191175410944821862229181756951904055075744460738162791358349118791982802116118302961754072626933046237196895831628771026162210619314337710213207123378758073414626914490702311927558414019038844489079963857696149769753518409371095790794986071711373942360983374502325842941334187438881785184292424452450623941978275770781594862006725592426682092958846984414832897474013104488400934733639643570697257789817475460912071040295202257558776345439325228885643083318214676894841377791694861421198675727913043615684455651925318131262824348869877506493946674057142325878056041500983307032880857385691107654827290001926909388358786760164922768100331720742306305054132925577226090778315453786659055406643870157688242797970658146890166828392486029934231199026580667405357451100177340442406849525595207770449801314214885939078908388589342620497059977905298627210720838026744258540167265952879725196349123392310031563204051319285961312167204907052155110704244318558837888334728819455792008141262916400986899925041585173967785204208829050175914796724741237518816831351676446328619680751895318038514607430854719786397809849555170088449517124549036197339753105954944858701087529539949747605104712356213546267660079493365885773798623579154366279321892993272526644194482806752323469825856753579030743326133277217345963418397166654881883040130439928790761613891789589879140534920798996032856177544761394659963452209237029127957490607170235168069714632412966067522999781948078090827519752800012788565720394056310737763176491720023967942773487845614466823424916849264757940117536359063033111121297765751034195650945521048839048210649514252309227778891980934664314056691988905311122631906398255089984039445781429439807910955387887817627338784440099582056997652426515484669704340213234354096902954453195602045484769906978185537319566239529952533820456275332627451089657317066216203245010115196720771322337287017142802265566937939609123232116884056476383733232375436862008445948310058356594235378975296822108633451582033789336461927349694397565614606529283301692484632923061711907122914414689103100390237789403684057335971891920893267499350059963266333006141808257248297106561506252292421567930237778636439428863595557811977772378013211214021370973482017764839857038014773926590404202495238773407919099108445012945074850357423521962880835116839929993025004533420084760885526182083054377661494950966666237158285424743856212398282962363580362028447628681123128283929339762986370070526317379866652523762085706024076419216202988463842685314661390928876115816987221195961232291158439164306820131435738842595227415705071809012902220856838173737780171801167360706438781239649827687936143389961963418152175087236297203078601476626214002657587600535586762624985171763402591419573531800288581730949247261294860556115840467394839972585780243336227650331841554545765497412465837475358721340258902735763026022614418861674944418249210869251667377963761761275170965478473009868601726899447636367829265953630032678052927733627884176238475346614934631923081869333678493771811287231559133969427586763206527822678865995941874065540870070401876595155389542474004376795401696338165945931406493839777113222156906670281107990681746220385645746344315331506495857452691146687103742102974027561294421100557021143604063725119041492339303457057124026529331837112421233720281905172531313272232864845523541931909427065265329922662083352506978336087518263520828869594190172536861813514003108559664788519600326083024914915069234587071231684868109161613617511779170611871736526808382927328868276895173842710173992175273425835499197453936201058955613730121127742545286327554350843271838455495094270388877175947223881165483209096045759459742507458491839907405647975742173718691653734237431048839305636485955627524927658707079847426652118509168430147048307645675737333446366383780968326231606441367892868914722259250797467553342983771968737217593485601820818793522883859797614903535889848752031043152177750416122513550396419610794840523011174943889723048134679244061289115120344624632901972161174674742230599418508195562290986403260196142320780822163739745329511462495489866133084974213309242633317061199269810824903204273839153364356717319351300679464434884217958420321654035699084389843768986192010024295680608102086598223218121128083212783323134035700204024813859140184429923273195503537704831144153835694462959826736321268949829625056109414668350121336365483273734727700943047112140454476705900268108551642457165037629214431511219242676373443443050305780152695275449814750467425644656259193877872948808570800895951565575362610409209495477500641603108961592218526782979732234800434659164779819772900772444261007818383994528100897847537498847205221986205520320748499433767349773736264580194337686748097468555826456618498510520950247167032699349258432494102042178485029624789004353935117077538747212482826028394951519559375992002688000449369570957629511759574177840127028340282544437469622297465603715065437086796830926526381351627812378722548720535797119304492313780015460889276545385603830091466629295078178655991459533204812080857525328466311395410486985622640189913063079826361594460116617446788318012937343463818846445073119356017569830195505552218680465126542870051191614468281547155043452300658028821561345954746710858141455624711997398277499644644910149194259470024640925505459133315529870143591950477671044707742046393673191046751166790872650037006855219461734947176736474325994498868392144823511052957098739853463880446393054394063937598733316272448134267281150634482843806294358624510084687555344074196157658627322000464687041743385629366851788616407785608922265524103189996097026594703457211638392762622001951407033286714343259741908390446246909236585544108974592139154349270912091617003987534678184090988370527022939438494618685734546092080432087693992842594788181987840545633169491264821563724462461172296102330591197597486980391124192130867320405042142144468030892630679824771357919222770064543151228522071781207247071218135556145888085071196177609071291002275378235735614976652567392962253059914394712373879426757328517590238695199667070126490306716828331558871368778690377973120264777475113425376651025522431594467618966934249002674741736522041267898701804845538611864963421763008706592351750495933642065176523984184306985002346068184980865085688364361522627067521790386886073459071075633949725687559302512589019353416435598452766601100430358772647931612523152080063525599339329001581356577388257855869576202620332461383437904174064679452359784827964716409935767327265889438972968706819967711067959133491073680531234081087105028452126305535310499242788964882618429908057956943325808929395153418647825375600381088874531722641916146599588685424647573594579731618279254393612295755410752583444855999043927640123573681630283905975787789241940785659392441540951756797209039887723014827789719377249597415535267405581055234059861753866241826472415348610777351603107682966286908007551414683676955829824599929868460105151420388192417128771335846680663283775237235161882303010731863720715035186458016588245298475113001293351255044686903934731553524767172352179028308386058022805272701356916746787365591811025644006754819351228451394718440354723059124487003832777955800370859320231029940742238181372790841326730569091567049565402907625393998809115122619773757271360114141273293724147044059867725735515082913176753992363754688833749012263354011554212110899166550200062254896713642683284813122830861341665302923865792774622495137466259359474302455640816366770386156756775753706877979945554305899774496445909778645032894303791473958129648125140443490210025345647686702725041534628727889735451129696076904186675415450894181921566474670039494059442074508204093614735382161182431160399837174302876612717788134623987452292427808034802197231045977233889572673679728280777364952173062692423929335888703370162918451624718946564881980962747629270804185507519966524678880593245874063925935747135427498921253745266584767793327399039866419726950454490510273483663829731070618646752452285352324354370231346085049555780083280850667042731656630348452248554275272027579865256505115739344188621038009002374107115375198808659009009331681298552218120248786914454732487230272092885092395075462005144023603088349931977891454238910175168367683173376272470933991963662804785069529700555198957966832998256657422683412102040453774049910619953539315869808683409965861887147913709850371847478301398181479492526069322086106269572099951548509107344039752180658566281773647886698729280045586552447421134948783867155932447048376747669588073790125363718592959022858997936373234589327266099466375790980637399557849475900364135454826470107175822575554001831081136749766974490964637687016155206497461439400525987529679038076379232991921634968576144260998445308543727639157304782811604419832423075379787868029009281073548914449629033420506836539779896829660116968039418040982075056563600125800314461090686737394595914392241985602153910958785487519971517108826032759185055872019141824177917200302753474664166000512463037418439668521022245603373987260179043477320139688500694690973894495717954302886188547111178438622501914932378565675010826651538538809243405322091024425943319749412059457344326164709360134892329686245402179609359989829929015831688102436126043413173612574736323284176921386151392217253767041880381276653283067408702848812319205054020195599956007600763721860746262392530817077562636602132998716433718012607864129396264490261227284786278862624996635052079810917668194240499985192855547410017470604250972721235312304779722754841808652335806663548617831768309093230044253818391294811811818527540774066704082055431062417218423636624104865614739035031531254273073588960915053897242154725017115632390567154699337659865193396488260399983561853001987387311400920580465695987211702872727836276514922076992285920465587240059435594343040757240433104842334077140425082036650759332935573177292459892091299814882938749060105647290103964311793797210022817380654301006790323461673750361210059946627888795738031774657460231732216688082405857789624272841275933706391556761660062685600058149174300739210410975463510067650548291250188782845454844312997985037742218655552894950682397804288134801772904714422995824740696859354406252369733078729495741515211604313793405109346866753939466721118021142000562161609978285344770993279180279372480487551016528560131442500722369511269239775047793517356308854763351915688339971408534011380716084651498685577391262054050770536438600397309322660874069498101844032132206301979630885287626805859228623334401642054078607341231890739830682951391737726340020904685542463169684074109810314259753666038047562319965189309159736297143689600213320521567566905133386382393627124961850171744721145193275390140541803331919575182415057214351509688259218641313678298098273989845402798412220642911447569108931167533300403465740650159138666069674278265538202119207692537133819938847904804498791573646579630976918353007637914448933101490197853694499532405188593414489332055091683395190438189352868195382386176456252493450309319329647314282963620151309938116495257091420631779242001253584030570212819434491414069875944266345200543176851938147430841203984832997623280376433974253442007405401652812506360100518149444534192242688918130614156168215800829507250942206073240403433114262946707071780416612306049958237493572628195680025529112252033982907115064460444908241917133310505153608375636354291695191050301505647348053052753855851028531332736896457360120592701269525072005493860015918382752973009580040375626976380795896715136161347595060788921453113835259869840902422307026407940341513550534411337122651283746022136728952510017162681332113637957766940778922152650539923577956045253945576444719457453845413676244245628130877585878947770498197023231661037772814426662387104551732742886555189233125849646732823231620832932939997345154247017074288298508507282718084595217673462644493239187233531110406172980529789477019103841266326719423407422569764240594726872399659770413259863083366647176599647470474573663272017726982891775410732221887647309616369164943041618208368029488968786832148082441079929838874462690600765294660093019517127880700376067076020093778788279629866298622873162798874588104377374459533502108871058349841333424935143680929436497629760201346777277281031345815720728587283673216347650192073798958110463884273115116957103342382527122509800510668495927996337512919413074509732188795542611561360604246716604694834592741679930289743613800007607453535634619706687701659087495386145856321593407116644443987582857514651286553900890147509592181082740180824576399290557934295926535704606926282029789802855339411106231749568967188991856300510111588321386336307162925022608762391922363708955850889667274761694235364941397582914961266840686024439858332488759648143300627789733895300900622950852936420617273050715695770325184748024445842138600762725286497948067219082536649875029579186448341365526991568192255442130310553648846004002634481169176679583164946378711775204754353792986643332307229152391722420069839638096356985546858538296504685346747758891770055719021627629953797376287649369897691231400611694577380575280862670636160729837964796227885148446583802772772859017320524067821621104005735092487859198575148439826885239420954841626275885380309294767786528423379198322607554882760685017155208405663556238282427193342523736644455090206177852207343136365951765118587980691402499628785804624507859606798363717514022506432526197862168698572409750754530276202960267269693578099168037075321027975296022781717959501489921874243450296153908219025509524151504318475570853421201130589273535331202264020417372683884269735922452993677894502404868849490806167645549124877470904988001711879989203907403782723182008751311295765903153422436884691708625303599619821354082481937328845242863458774858367733477841228234649033209841591197075274537529638226441620591824961437852998404847285832371661189548610474316489664833380894404362831610826982047852498135425773339389351471993905860256106676229471731322926865862804710569852217720285608059302083249863564318085544102523653624953460856681015420463635953206315136040576983399679467727046024140559326323357430743231011826216359364401197149663686914613950762487860091886389959330843696091745771417341823700325989905918883042771380078300226236601882311513138198868305258771931853247482173665096905310718346625005547949849698594156288378222463531966695051685497657768521355955003667988838432190776177433966203122576338953203715269829483867130962111119072516968169874590050399158391614780728844607160294922699192357686882432739093153651540707923319936520630088426097559738978400129916875900924402754253576617488210627445077757328384311029261256759506505595506324558357494297191072126881710026788538508196905439415344813366280161759634501864242100786054173890191940405857730974187419482542817314735756962397903151533220528700471007633897870590821806165497640542809383162194831173950356640933874075142897429735419570258029203241152938213521596277180609074394361062324678369591164546553133673870736367178380944829851192432032875322860346471931435320270186307000766988369989909661114547563663385778216760205701079577399413031958131140537001584503152696853101348170832733650960950903004541693598249247457782730805193261307727168691990675894443613349945731597244438461258849534429898266628390047031232465311110076048758792519204337714772743199946983743422631222842188381947767199478669650245128341032881794046907032010044219720154329712381117657836463125781829618002578866933957637402111620922112651630165256169131554666423324506281042444226526226737769289966524728302958157725751330352700404941099333228014107701701120973556275520924526831178738385249331935712981969213607983350749756071323621430837954161722513197762915050877503208159310614086805841762400312031310351406121965138959635508073169702866264879698456498009214747696899484867739226371953684560696827534623934655984270203510379071030791138249048912428596083305514847543250089486208451600632688538260363987162953773661011084451693152953479961999132721531820575863721993844224353303738392439723018493586559437752197218204890078533393666506313096514625854829193424353816470574191843232015688124105425089477588986791642406882126640581002718911815358443525217645873798084261834749009017659690659840610308950123206942563281843898629357539260009380070685851170050904606666654696134894407747790757691858901292163752277941228115687347414424756592646624938835150264651692712769645246287177183046962780632883897294897508850932360309718853667533184095865495975589443961313901845547846237815109207704424498032002279882891436020498027197531383933494122698372279950884939993812995808354487943159095700436626111517181515560831735393137845960377612769312026872055791673225106444402348767632441683340744481989726655474918929624700743409568131713819720330664218794768362965297577021314362702496650064529054302968018038204098060659202110227666005474393102156809214212030228463377878104228006346150330109873941103829951126146210705394080505775796355620269278783155176494130764211959031162526807472538258878815721763226902498251673266795771983689566269280657915250681421945097119880067558292028896056048338758857412113060781084855192198333551525430322579483894672022642853766390627411967729459270631992509385853637165114529077789901498279825946596836805207146744011688248557270127823680693127199814659686777085917221949456877984111057634748098819580738899842083746889352497807396754015698913909919860569455865225790767362676337814809220218172904167994375809618078944919069760380133797145211948773770747264192276789010610733249679734674713037717508433759364887786815433696376718158988474188079534748622449425088676142052199528104906701051380870517465412329974899990802950447706806239070138603332476086469339785732260961816440293964651459583083006983085186529929651271367155850890733793307061103929408633039636228247498983423591799179294287100619623518581254083663674258633227842840460141110302779817932136537802928478066246149348415880244755577031184342741110443659855559371120510562862726097756673102718174946772106420391700084223679282629767650846383471321324071993287997103874970744364105335288860500567043925245752409965823455284027864009094022175364754923668348592899796282883948114601060305785067930124371947469570756239837962791575857269204011510004416638166254711072052115809225255412755273867959024596151755855935522051693303754016584077031353862762821128912209070189100893828018589051836540454443676137530773973169908938873538567775624020224045172281481371236454329742340490792091781730919021565164643867908324438866603909560570687916023329218127201203916161367920075875019971713334977675400812339700206407387420873196012148471196911524507402236982440447935537396156757427659314273471789768746226606206857117102330865314567573584838542421854353917039396971469719207299180978096198073540936048691326289731267324351114030971112919781357302120101014659712923251136775572411926797273877855619971098923897149273604891835303020676488330506479132943715624831959523520087324485869181131331935482020669850528322950840550942234303129069564201301054853873764547958838996064575686989564577440624672872921527529869044989204936857918508680483678637723571386505018094772718787728803380092508208725131475776699995352364637273016043105958365863549507879045591185533635152529833138307767993401862335778483659972469329272630797069746017945726851033778052941292171189456083867635440774130748811709797613649493325949316554654296936939570674694505843730744238386606027733342450762766683717409682465875456153113128197458182162334494726647431499560647982126932652209418675146632550490806108951034145067763842018505914305293229976800659289926735079732874627374725469399285749108354095966734617097688072607186015840641119091753983396118555159066804321850690233794554980129683501798702660013917159160918424802785231964810601338051318633804897066358505929849620698875230458863495203461242818005981157165869203622945039105212321017216071461450706592285323136030167796586055501243884476753646700470395060816859435741930590773173900085451078831875449729118704891451152022734409756685995097360907386777391617993338071725932821294250235669376759013427158943241950988066853481000926616458582500300422262520313921847744724776868039965834570256372724887119868228083535589014674221922400439690900430441081976264811604141345589005379658990239937604223461437588541833110986844371330680855822050453761222761162847894262294709717799250483892231559447959106656277717410325883863303035157612362203235381543501051863911415882774774321070710024372783481997324126982535212696147701069897873399092507526418222781650426830758902410490157113407077768117507213062378862624447073697891917494803637344430709240212114944101188035885363377865245081053838705230158236498247001203402689130930650564605719667911720139770256591976535882179608606566278045334882146272566734307508396182586053928099943245111445759781058918538132988973194068275123591763618807385354406458581694622620983047813527786860713169822435570254439269549037737410348885210209892730957260422931969353257311402815425645497044109296912005445481294294935500039434612599120953982015114640606772711105866864065094504575174210912852956057528009120272141381073599913213375916760853175569239559037313916316471175285758079285679744142642319740370701329286693150095238928643335859427255577594855271931515354607114891140181327404300705778515781156972917178121422714801809294420895934888294670023624599607963605713115413809421560348064011428779048345565863355205458434655604651180691077121242730525194964853884861753708660448201083416378179984738574187017840055356477621041927769630948388536279544153900664574841164945711290326821063665270463937056033722865779355667694660660564540919109310243085910975893048039578687653734487884277992330585119609310866322008266305597161763111208853188507999780326694649508951171581496988109490926589730962192102437240050306430635786180264517081259234888417248712575974194202899473794283238910778686447278459729569826602594541891488941345610354432332459443001844407965758456531243895695348594867746332814698699935576089656371559191460858204095971798590027141773945211541830443411037541996078762076150464585333545081366434609834047185611109492639825836666890406715043902018241697484481011859101086187441018924539791451523175777543012423565939073932609165887805587134610066906643723572471025988522750875277169490726791329603753413145433732461757393831927608157561577038169639583202844984337752228366114807649601452692766721754501080381393901279639727150937673360968147308605431572679250994397237174958080768595540739032388653555855808493464505448464447836700732290977622900907309848542941447425099778105102228665374576620982639958314594352672279479038038628311937219489284748219678362163045400568846143245010462280655095275200859335842044561279587588719058638162923434267423858942898286618385060472577591297308904065108514657519936132334517718099397731405187175895142935490281789410330846813776152460414913251366509798214648890836782165533495769998983036444274194486341759268591698320624500130426095528364666018022820594679453245292714306039417792773284981633205145512853463027468274831704370495044955468012388609598791517226159560857776850423115447872161743593491920823229576581023329484022297535726105653472325010904731686985358712488287357558147125123706139453719829709043831726365292033713344859613740568632347638334210523381346217049996547002361851330064643953745534541492961575544136753835353602483328439735707319082446205121592528751527307274014816918507645944035765761936187050672784951530881740095947434321819240985012479387837583485095596064712582044510945665942252544570630112213610365890530383873124417911298233357794901963811437031786645821656456051795741094793623126430727498581321960616898560748282794964223640949868009371001412708655388216043098622336646728658147663661452356596859050571701642493719668503901444696146172487775773869144722732486751726237312018597187888675633366452304576908458351893199152628295938012940648990423466028099749118988174358098702016283798264167739130877781643229228606734388550992757868807958273214034485542616043205228529900182458637700459505510366034823263557487523308479975192143275472141869575952230769973743102400194471260303598474048028332650023374027466093036918905559584031549055323416600663200348281575837735220778001201615707948488980669235216882537614106818810792554946054020194985927592341733272082923948517816858627892928793324984494740739478209849623952838353160472544844570441219099209579528601899009307689936212992846269220239065063355579737940264991788056254663502188937302362003986699219383450618867967113072958041599068426358939636261423326728417265385651776088531689800857701285475224423763523705356832179873207907632335083741987562264531073093250250225236937916585822737019970443445562323581209022688338867722517879309174894241218896268927054547122683811192077622501413387136480904018332109878200479566437385928454358223037934578859046612623970513917337454364804595577017747850213626573032499708068550569067985715442152832670040567052351791320784482640977251380402125140400729290229543241754469601327742071970918234299473298724222844203136979638464435420055888075515254927321599258752329348338704246152928861600362384624196707572613536078734569050359419526738649376083161211152636926544682075792553434164542125005119339653376007150802995299890664750349036635717348981208240182572398414680794644222351656292608693215579382513564387060123770722910954529944691124902024858360275100929789909814972593400867514881045627859958398300053133427420165063809926200762606215752434752293563946842745773882005217765924893519607085062418904989294885901842496256943414085534254891173429458270379657237813484165266385854355236166119501759251277457606424332470741709265895124910258692957320254232966563027327109063430878610325892225583082006095596898935433018720687014386649277815151133764911760038663089429004908769269104400276653956238385671768444969229501762221198865074461074671944279067642375962033706197517245950140842671289200728843893372220158318668401712798192632874946174496003169148253870323058483472096179047645717423747799734759404191578814668743470154516994015017199139721762928865353238434831694024978735810671173008441150817773320581172256472580294702677492873506401666616319157593315108297792980755063300561845890718867022778673376911480559527982291618576901172424820086449675572007820094349147033317446783401383649058498764355518706816130893544407188250815573876625526372247900187350919301754914809363021297221123516416089872788867134273956017209222687491748806480101453616907716636437854979600233528205720874934203691464130083528830393364065405114788401219260367031027258885924117226656460141737768394496102400415735155820907248678645208834311095168223768174421938592059008807465913770955284583517810414063034862597106851415548060419578088294739089330725006649086346094221321599136334660475971475921883863396260104045625711082391505356132440404838438208275397917739096480944561977072783799191843330662964038899951056959972491814533678250687256154792006730085099348825489587135560361012061050485737049152313175651241655508040942920125674689178057773955848633130015259294127559943556486313614820621562965102764710718296138569668120661557626428740767467436346168281520439118285740260173894158816679972611779817912622056171766105728604655128836052862631236719261277063668833542839650675872255692854603037197382164378430944880127529387019021793356378518118087990623404080824069175277569935067265404905892362555646955201914495692177491715899716469347348447595456940320558314991584202711375801858120485049254401328708122800068513682270274737708023142713841820980400101974219597942920311083645413734498154733474899002798098360033999729994899657735511823103902491875033640312106859305341463080797625032621348108639099907135560759958986932802343761432219444256810947102586235653184092953715981789588480239398967112706205530629791416503440209624413073247131432531199173904140871946375248690974713549382181632462320436566650755080616315720833616866416286081100890287700252525845786819813784739042047019789402875557360108531016453482019244636666825772727839385919929973301345273600800805716398559551692318999471755668281003126955547727941404368296795634844079441063380070239481786864715240605820437074777936084892958256806679271158809384137471707242169702657831524095442197592516011961102865981949151746466829982117973957443523296780111033074498675526174004405320947462826857577344909225221183209698731372746013799021887357136943726879163208764056959731944101120629023566706159196860536804770561074984147394526550973566268945799831919791956051144328740245423960698262471801898850220126278555216811405305833168602681780024996310245274267239063140881572032281511108298631808939813623418679128273654312515337466920322370457800439213326315891542190577112683239252032983785140004026896909602901152224360801220123984921570226103630382445696288851741498675835010712557075299387251965013213573711034608750127715721360991465061529146833122422112732819421471323792985753048995077931923704128037218032363955282741692768810358336152584238879065971475101422606485879028094955003580317641533522385287882067321938848480701981245646975360847608479181035833866258546142522929326064420948612646375258471005779396443539970269787481163242025642801303798202565048104812127239743631076236384261278866229008625314449042785718188224853109174581230445817854087668864368288167304722592115885990150501798376003342180980547713967667477175806863733463177269777925139026261700345834317276382891364244881730427275821830415731659720606462438339260879306878324777845431546638858072685305052395065811913626240062120209386577860925204495502647644723919023220727839864245112019712866751390130480347750385245525027749004634831581627905773177678861606057317460323367116089590443077642497216418912202633272775830270465366506219542976898243758835097773735525343822073136125324656818705126809906029595814267451552526070433454860756104106414063038672103177999850148439507106182403509977009652819905435730094097601104440453084058692712864478324769400996556475736062493684966448949832699578761897610865593237841603642221935383858907053090616291334095579465065066097957288418701173003471845034923558966573726002665408352594443142237747269735532573282770452968539409477301844156063960684303915965607595257933976898865319744510443294353815118320909434407636285154076142888669526278757192160008925193234556299192812629690769353145895343224542738077969780537357252724610507379983503642760839596003870262587581652073556997893137722439330963602425720968200088786108805818803192507162778397449220995015476079761967504928834516820320300393679946770801293586376354224060639706728934620515906770866044514319835543516966985319879714619118862840223609668099967720492368103402680845162540437930296512685732554658215822509257355775957206867267781345607995022196044694199062442168954355864967927722189209326895866861152234157004838646851542112038369743314532430728725596748965031813226146922952092357756559518138730754652182820192678130078541110866101372157736011679891843289317325980617023232252663286954031367488668157331145395623922576059798690992755946911426097742452746701211862320957306572991136602933462200715308632124740202157568222202164451100671800378333815624356107390658479438534620969567929829449267645094049045437026138736844824046071119647172347224175819810375585279643424660717384670411733379858971985995837810023080873735085711330292814588175853066926929574830769639186815266899991732909921341370591283563055050083876267506443318972586214150877826005211536170241200505665218252797857861397864294048233546320420933898237203125116386952573332980281728294362489982646975533268998809237115056575511330909414811940749139479178234243141701897594736558730842821665497653047499252056810010177863257490095374597358751211837272480579682382643002864637772352250384427743728234027659777534074772556078455178010095984752451296527680160492953101778148368710279319814543963564411138527716647631546040186121307772136380740274194232267792383143735287571861071078661288439551344856649014858807472218724153925630203422806342013683161572079987603202454707962957472932874413527620266756992319848929705786730761311719215144016763718579359454173459045804742223325785416201403508102439141208743896850805756139972947837746836685479870868586949940729626365253771683873956267447342762775338869827224014308127392293408468971691890488970027868536028020812404512045280284165117244663943490081193868117758282812339088880483356524337807362373816381931705922447262670789471832064065368158079204795271705934647551642307207747211402781319294576100953984795472067925926817496050114588839663697442813844095850976615203079227871231771418727623468353309987708759020757762229295019959993016969489964378393031429076137217562089584717968225354229071276725925962266986934600715513946185680675466584342081824788379489915618848236763783246234319237772169992080494314555484239026534472430754335318353193855434383180582369076306940737211880447668001648709590146935678377831935988411831327212023645091252414379650679194740098771689106980429139307718802995437233563086679175936687964584651083347257701377766003267939718095389894754452459821066951674106088399359297183162698370994668021710919314046612987008053429221372399422718172256518743222639874613210907349786631363155426033546601098440482309403611838928187049274520588803772397739860505432794408269254347874581402947610085901385629675444966267122151532768362079596136014836390460045947187645368121997956362619997225413647407246087475749721438707249378766344373674489129342666910007302233340198869408349327077979944214811547308182249377466717218402648948210618859309266068506795665021915832947612272882377334169792898143594282732134485592159522115381121452855108544563926657497391625682287034757704389282416787350055452614709827343300501831673200948202883173410291536173149178037239191960762860764759914301118102986433903787747075958157053831859305752152626669731865384735380394648292611793525477498554574687612523116697780839065721738732398696222833885005334704208868307123938691565883222649201426167648379071345207021178101201177210104977005957200943744295154274719081782684806884929588834760326891961270574934746205732635073888664510098362519519631030331895409360514748476254284134323454471375469976313295415695107095347313526414519433271590717650420493557592270266783513099773919814388665324884741749822172988080598102352785270571145573913556601160946933821373406413682203569157426529935160166296765305466270821981041454068353545446974982530006283223769223778073362723243528340359177455304541881984869013646359993732441338183236057531293566725358931704677899502585332410291149601605198095913551591733945396399074267840861530087763083233269421287979731386945675590791600762274562911937067045255122626557950113138858303606536570070214369483206911993753373524903956791956947579183709283749292491072298373180459344995771497080374437730422400873912117487003095191621221078302679763776936084762713036011393176710255922794859146781569467373767304307964844513836360248936065105564339114147509444299973918639424433518247948413922654251392611496677295255793014903931995470248427490886283205043688693294301587898029327327157875688563917991726179332005303159319694579372400005983132008587339641976718202561252460068192172136837050970066419384250610912025725312989024091301262713115633338050184066851223315377619802467688179310933261190981384308055296883158309903467484870632796447858962483320425519526857395671037187967099577185846195624091583037664984784019516853174142873283767937141483637151871868457432644194535152474894108821958503795187119935304854021076965175848111034696892045995999376064092871609988536555281954203398340836648397193252128387742539970045165040822914990063466241323204020310627943192018606514151903250702929017676767542792494252791719833280253617932558430634221857876793728974205291581151285442966924728558427774985060721855871201843362445972181320881205519404123285503655311427123473025054011614345120732065970660238994269194223265795481834163266664263309681104189875486779190861167454775539775397697826949902189063299244049513409346641191189388350242556180019973982300931263229380993450121309016778214113999199575842118753339801965135865844583520570807092308240610817516595986507883423838649464483154779990897775193024779770657420208481994061833991371386399088205344449140136602137049266758175528553318738215197926664477910498887332276387097713298166642922224470638490353332368812217290142222961596556511762587933165906991181199082140131082350611906848514224447644358257823650367332958861058524571438773232889969515808244333962621560767145081433556270973421057537052528500111952087617507448953261535031453379337129895774921261517616992756035359528195913474470237574542230146573643814843729871267573304761609793840765257890096221329630851108063067955254069188563667611157893614413911910462805169572906886000766456067830800088809900513746598746328347166029410572289760834267267549675700904999939081873256827677469891270793499431482388377378914683788391354423642180721939660099762729099813585547342238122785253799569676354299086932097617583300446751764046320800449278527524952192309526512769601213104898420318459836281060890797496332773386572413368244312252061949762770819867629967767586631801283759771736218336938750157937028413265780138991539098498297205972565265363889310515262261916953990658338115597125806176779558397377649162102125269530818161535765613573873305343620363823844678624789481851471638222354104577901210953873033976455459063407158297952143199313037633757278535692289418646521018668967049300689308228432776116090587354578037389450277791952480908815331624356085535958982816407360321420220056783589555995346535023509258418935195182527132897566404666839481840226440573024784402724024734540790288430811056255297642163112799553616362640719017834836560025094277949371522852000378032559005052834764592833556849101638535585888591367407510630509318831074281165360716738669545464430746576944898395962202476304935871293804561742484371097169278147048918835057584516160917639687935488126927967499510234201419648080917085745180035987161158758202015636224645613887856280505560241496362132758347115101389333072639382833409647179631634946426728290317335800422908563726178374550076608450600953577661609042732246996384167467585614634084957791449249984789376143648994446301726662019692897752608856917797020506593702307233455991597820643825186732184998181882559078207411723926150972705477794480737997117512775311159424466168588507669833605391296552004142474114670365634899884406085092842461206067858413234137732212440358507023612636049633041388295461142907180187676734148810327262078993654093040771188280640045696450918605285309260433782285776397617718480048470953410968981318432127885662091820638368027532772603253072301726943183121244118499871292271544814761986463668274114570721004013580291155889276143229379881558803653027260855590892749610415294758745802607012162959359366182529324680934850675249234819188152532875648717423111774368971776170336359157242906787181972969766297742982478555601227072413986988021899404979219330840730719349618081860581011398783349828092327870087450209991027720520825174642924550421416044331405832253608983761466921213922173329086244918498668801385841550552197605881801881703492283428921979115420374388469375138259873106369304976645186223281059631886310061059667497270930284071476620352959128583538377118994826754869494414357271595076889082160042919288546900050302479608317169288788268325605487124502877382297918654353075673921310972406109020281619707687158609406672254956801961125204669789405196857710512680608864934143085839238457248896464710837861835670721423129141579374019293982003652639013004573758102485664548358431458448348737382187553578767618699744481079417613937888779678445389554963063910842294959919753468540711900870101499802593973706820109644742349877491547248261583050038247703335960294426778022025695979953020069808135787189258228456501306139442220403290988543930058036424355234214177084135864379742480153219004503722550917824630418251216789949378951922812050569378611909240039470073218546982411489771055919758701368050579477253929806755920713188010357368985926522321249859894754204676092121197778899190789818252804354712261837642426260659641959182772835677116278104037709875863356979942038559840228539579814607347236618469883824352928518983649477823492954809448934702784711685249101189463051662176013919767980554390978426902851317255474218391775567324211932974035311775668898864252065293106743088882812009231572381425811130766003120868867819709065390234190989909621597151297482237843758905197981817896562882463941926314441887622682303559337644407745418554294328110375543576347839270005440253850740118776638058344079683226840564703678385223084714001150650616029199765591103040298518529330205555142435377358319862910164050965732151204011304305181741074035325622785688796523214653552474810109926996736394172351486553215409004017433794264274525319571532403464456659773713571842866639643318010503369288782723363538251809036803203267639631916452545794733790688546840130582738867517981150894992275461174552479605605843294090084694875177109200094934957281932783754566854578350480473527206390167622206651087124023023828458628202394066313106467705715640489691014284767457143082287512574453575292274588102384623369407475743765603095065231865643109768231970249890507108475418363971242126068420310982824573736514223702587224270667684333895634930771229212243416258615556751982750566267481789827197509123634905955095769289945771244220256409948830965654216443174375632895901009363755335103975900561125063548995187740369517705073051051993401072357187812875568846609993193922868239780675982545236531448676693627907675330089719305565246888028851380331020279570277881970933782498191799818490228489281653216850536675594434855007387938229683608755896711575719730974270871205353190253978613552866465683988287432616155408045720732853960672046880831464240494634568418839577746068277776016818804292057664009624384887249546850113476626721568704241116695560737559934017184913512658709110807939923240827617900794438131067318998503944563765686175044652220747822223138380473123022168783164028240213366782668912086318301256161599693622465135724271344695724978333061929790272111390499077236633872196946191143092871218462638898770098553703391176791525433111815890169463082403636286921786689165392066017296483568633067398777492110228806129562030685606169507107921789167860067152425558802126484900961754567519314116739415119035563603114421042505417862274329298235848111552089184103199584124613934830836430875198504343401138702892938473256676420502488007608480000801397925024818747916142865935736046040904139691745404813949837092475752791766911644055739992658867463678536957489375524541834312288443146614543872955537190062235361070905586493614323344426048224997195003811008304427311887647535246592485176992754750600008170914788724734917894906673598996570580835084469139725937363633532136905980435537412580231181582640044732431220674774797436415925647900414178602883595243643155109463914941216297997275771135101725832389524637733051518200375320217791313319707200554444401085923186354139972328586116767881848715503023071499824641852667495689557627262512989223581603396124781155788706487692119705544941431653307143016574731311932065510782912836560113748036017521084202999824298341912939638117798495218103763447018382213821819904788091692741082439562554643923326194317488781408836107375060613319730058926412348785766061864327740039271012212010984267747159552889081291328307969563999542464782754383947441137179892756592655677259544198945295697864659729856139115020921033111501642626749066518038082456458313891942702223831929373498401730929584999934371086517161046787408905075247168651794162720895149149361696525326536743850753134686039384666363170642379335522052354248263584707940024873207312035409995943115678013899843292231868075752107167305119202345518124262058037020717125043650031020702889990227666042577362027400827904627916729362794746992021128045169801178684155353764271285079073483952792180605540517634847028239050520604524325067859416844024184317280505073390240522721065935222231555882379242286292758777478260877572799606238672978241266718409940913687111237979639526543900528623948679103283624749861770518512008974479736967362924724312046334454289431512841006410880412256318292661753133012434186104581983070667122209912327452201793534626091633183203940588224469572781935623957200104412107103917704595067897785660202432624434902168794162109504406267816493437391223164049615850003766545140505943566920159145861001811564788109446268536638161650351624368478806674581999840022944827492450385111778434272224995344642969122663422956616250338516959158200331977890708895991658218264563545758208861912376655964232731770246235952943904988878760494681812100559606881774416181543974005136148232236072691076539096177775487259015356798469644918837148603771832608303834752838573931498558209038732316733987948600813829405224894597209532838222444974153105676614146771505550175293894779249748725503003377298477183555237527520155531511916366591126521472927748895554250281923283432529114593528659173182948951447122765578346252546526241948499141211022334097335252638902704376250272512235276441348313881290732917261504633169041468780606966904257863292049895976801371407987566498568460803133455789896024749721262576289664686009222570361346770329277663720210687204184794758207113647429164543419509009239634641673870913228249972523623527643884193567236493921456025520611084277928314210204872090608057074502901390483391786146497380387350541613705375992476116382930442166320078445096924010304178474029834714753943543810439789348708681318926571560273290696312594921320268876739295718936482283423387528674432809233747788516740479510474417478462251107034624085881824089262081405394233719782382826915079374671859620849173176637426395609319730804672864512494086019738576711124206799377383445428676150015183994662483627592508298413559499695580208179316180237429332947109204309532339940673098790321256379517110528341730903581515301537805747463188306163084465308056609345397775875295779803416424709291503975768883822981843284861448582699781242660258249160235105360242600124525571243214731371671051010309595128594308167475559624357551116371155076867402917584888233476639846371274426865062161514792678597189541943829989947465521500191651185916471623426292294735044768745393945156542442205446962507355505342041604124197936268294837157683078816305954800096376196124693128152297508092162873499630421620605474702334219462216306691529283651976856255403420547208038649301465166762645900520743006808786931692774329006270219200972749654512121035016526871323165132490012422307064628259712129237636297968024323413991065390616139825701199785479550390440476707197497939662869898605041880062477755826577110678683440493581288879452768461025930183648652019149652848528840190992565748136188355340550098033848206079900577569999673561298123576663582513273912630689655545579681890981377065387639542358837424735168812121927239253225687994994169393261078724030435487302749753189091801688897279171760256366779430316379471746184552066361948157742056425759806162726497091762027382166527435357435636168628912506205902049950454111390010700042509618517524569819561999996501647591172589056658800854414171472159570706486617321062555193545548445757700854737907328322917297937738336111381733477765698502361889583410007558281251062275378576749253037807916006332574714714172680201790491025590503417713924699923834299841298183942628929803123846589910597526543823747053270414992128976882121011199918250693310847716070213415238573490375084901338040273522773834254545626132826780452845327554786713234898919333731327212941435131797648886856537261204428771730538399905295139656474844179691383555775697790423506748268236924533185308451164010741486298938638084177845394908557070493205908573210868769654044641225515137611065799272222755162750037393974674214941933704447153822271809083591382182840988914762890611101496537960461563180335354827037604667210261544224914855335442401354028151688197205967030847020192420245286235420772696857454509115507559660290574844679624729163670718894366028871041963073931484689583328249018953073951721518907238263999319299701853584014481667072773407113088974703308603808319486311601796379455433189668139583553439062485063464364574768077101724770603218037628857814894750594825279304961060700485151357770680259471955522159642383333490769471387160400121430120345307040811470780579007447315025363238678918668108209010648177101040532202608957188538759656987409093702966589009338264508030064172014647844644947104091827117617835304952067692339888860815885695338593764126162401824649618071096071786758036594404178754944545049952490330746012384086331847299540398712874482363182385607695439420299120467244450581336804094497590947756925383632565902243906421279956529927509765239195549191848616030537759153314636867173525981147402499921175473715772071094760280790045521093641912422524648868948688182663767015276608522458649014936764509417973844175989814183340912080787361702798318710574386307617297891003375957068696347581798410223432096958287707508754227622991205645691288348163465736615417972869547536321272232408818377887466170999112379379481244128687965541107310291458511293139195870307893652869158236588823225835296251527672009793235573708267167928946384334817779969619059597215211634206811905384317073900354941517066013078413118999196511223026093257482898799801658993069404526001459467409800167978354353386694228309083954902299593240728189075303990482538991177689237879304689626756544208536659743803068207184782312719980533411898708510986456209357070686710955525378971984898050545335598860924076418039010299361686590375528462256662346266581221113224438932352729570290429223311069655861200939522332319379617791674228952888056049329429092567084671192610972480902596795873554727686488042722993403520039779096549603086639012763347873421312559712444294720956309822926311692441586175075410033263895556185218184673281518627102579773423247612430819999031061726326778931426316837654694625763074358760318352250216825084621730485642758265264199443747968534266106081027137426298662677159746389522208244943232025275513506590231943106885492267927859035383031343149333858547539046472075550931632878396091812843088869426557140666272372622846803492644832149083023983446221908414347808686576302716028744281719355299276595554255986646345392566186890545071995165993299521302105612714912057474575143386693250723822987344928634633462178031297773012908374563048850469458300475025504694085789095753957030210961501477309565552044643641593693279797620646240148401579744176847813481260171742677216839259973085179169690770236478219209068981144422919762453333023247230431930643567083762501330657493552641788949051642959841338342881902244689811037884565241758537848616668122090723635243007244618903690630707336378146798468439088377580411716195636746016582889664816562597164240129233742351535642231925147953566581847483163665327943987908583335370117753928593726140141076068628657427401955990732961459027995246727142604547919210432184731121713831026622226026968775554133889197098110105351836965048769112509492271177088678536276177395236534081531304367867484240227724693587107736269591543874974932573002194091672974068785008259498925923404782759818958893986844593535698890974686125551951047055728238922370104379430617569301905643946473103539531041517452775161822151681874888778614383251013019249381407168213918494914175813308305232877789509651888050031186855410641218009799079405190124416790986693874966330621246886938486481416767342160507720308819911567987112825375579661345878314238224392560702875055718012231738332050493486660291104343341589939412124845675970209799150908168671866175485947886732622423850115706655599859470777013094202023704134491259301717563567946882388884596278523710724020386359440522157152084281470241036179388071506101796412621475537976898863117464158079903666047585175618942802189754181473569111870580899103194229001584343912723404575119774182274717194658850960572253691336917539405503526785541808930110808980467739992432605084224012713481899598125137888029288214160503217644690947553520759852935033362915346965060097894664578925980750053044788255229296669226153444814292648906436352953013992952673090329411385063170195630868759039375497632109944699781577931093188136592388997269456358334906784849397618125135872501056156610780896225529783012809405432882917993084558699710642649255342403418032100691866322344549224075773275164310749531637588580607974965363159224888990419786500659686186933694699499078873602719075276839764540011051328966913997423142710464637885673660968044752161899994861924675867205189010494700410112414865693413843862793009160953774476168624738644454622401097322359625502392387831389296602413535504862134907758142484088125802730181769660511142239411442795614451251383205378039260465220449567154311772323413965927379865741345224973958559495513823521057579700813914418626442784016743972163423038717624139064113938947075320390155186413258523162110608423152247828063595925714839172571319544828582481240405976929110061939738881759770361514331791986774450240075435366044381165289962783908329461626367236017841452214415930160539170545811687568564999186414703512447346134829876047753685558143324356796003023612695174636715777787524948057297462991373933266340014727810734730236020037961437208314144876115513257297497272373909477906286865198567658408992806007583532183825629002339715327414200018136584966615121768802432085847559590292283826744419566107702195526568726560994815514630889749791203665356083396904273625963835205816276421216638788772922104760333402781246185936254145439981677411201313147242539126781077883008640655912554055161808394576161167723470027500091435376963664433082932560769724434146458105598340201709530395417191964374399962786805726100452680582320714509881748511386914260251293053769534952417008984903420012155981505016359415190697482405511636520753259263620729461323984629139140573798536107470340325733798912851065611364043327370375207407726989668231975411347471182931664430207267950295935974603446833488888666723623675533034002614435724440875804347552710382078267005196014314681075702727251902773718859050770531774667438942468710317520456529941718479570346823724061147797132014148249305310151935132789104833609139164704876646111826573587651039616004379870238356218613137045914345528660411117423033028351760666409237080944301395398519709038963064257041971483765770911104774627914946754350043820980856149705145543900491628505933086653297807431986643220980855359225321446323710491663146156077794933208477961365342722679421029395436312730611007976370501253994123932142322911396828219705907210873905559749183325815239984971766113944272083288358188663444723871709722082558384043858386904110083297358823759083637118244276081360886452028703547990089391523696240166965994955702121360702154728929239010921579372715187598669585696640093462581422197418004110160789607219271783771927058207399694841565047756672011045125264163935646631753222974821384833577262455639220338624460913423631360142823297920862411997326376135026108447721402407200589612301274485862346100152103218677291329181051327181974274108277413618796507190417585192206398116584189043455707899689503901467138846861062532556559992722917111041753420576905655276383643376201864084249263046017688371662930622041493744427446424898017169508253817471712524217465857817085499811320955091184055309925854600292419906112702772065542223707601972612024959063088481558139942601264645175997794324016559218432942522178389197153069000500027242958656505802696900210859237399791735242908541498044789599495311191581468073814536320960430267882146714150144898180189091508519786618326106363058312843595902645912934804723722863789680314947961864626402587249206115722079948197034894673692655306955435907467094498951668876442174844574823822682078928091202754215263746994121106650192987659601708757413060868623010248947482585953642083940080385144019299920781476292005828709151186280290053017339488299873568404417011136477356468217033240098059618960646292022472335458486410495857434154689451125698118961575716428488035351638663732649482396194605241675114227298312096920206178522731943753903397241329769547157621797794477469754676778708671379933976477946054975786804886260172474578636073137580396048791609336748579449387758927085360863843723654686661747866429256160401809290035140565359713860531171421938319219131355890495246477373226239466226459796540975941048296417314239716709710910045196913147118498000753315935722644086345118028920163701961575803570270480876328231722029551797446463633151379192640178830783379891931475136150572728136524695445248006675088654328954197550361263440143393282917489559633509248297768505168618230239163829799211593355208303377992503811015730237724436613270162754162351007099281315750759788237879498308667543503073981233430077701452819460943141092224620977650827695042097860422127772630654530168443868631898879654276885831088569699886639844862492679738846267343258251869149688813035882822725853454713832626837794747338799075491099338052497319087667542323990001339750780563552548698757917985665311905222072460039243536516096092788174699235988448715310563870440795108283028868154776347560149009253234105010649747677461437907864398211830947853228325783006741424766607278106502899824228718718784121546668061654517096305648448190902679187687085079717367423073679256732357014630148296332450373433900225775304662440615899917583413367885074405041152116405538627804114532609422003385697702837786898858881771463439128247049224301807235902280236274702901085839965694068530973108442256935766139308554241097299728555326978659547699040729860705824685380381673166111370297821766656727519392773841802895141530021783083585123743736065473604566996802095142876088171489529777674445495770994970966265304976771741688402421440793370950378893999116456572277087900829237687459987349451151099067932581127345017605326742956574052178827510495115447461161748663767453778156888821154624949314483801052195880502609678625819315802067350843153705733011322820524065193824925245549522744511611195408214490480015383312509452487194538247880098282609040765633442217833222615630753670007420306654129592637475228927575420855910208103733965954006299472032848697421361391004655137804565721686542966762605901106601471345401550760759686281474787821010963756113425433811460563414794749983081399900926058002351632490352845924037172304780717477571807392496303944041599310196486624936283831384340808227336232920093316313117605632691607652307821049399129427720886698141951941711204806157712193327592322402334330856347131633731925903357260673757262847398989963203716159749885085174891337458403966523343124993640067286432115127772723042602679130129983544048953475795539952356585734920832461967467927280904303561545278033241834947032662244435409812930445747645443267424212115664652750650249501884634679467831542948284572918898554807229379951660756160329118902439745742937018173123617220590563491722349882278473475234804217756911924236754363339144510033918672035887427936289679670055704087515076948210819387891232483232799306972989107508380596888884945376285396603431082976464755590802296829369109288982685076235660355959515535640269200073819143139089615662862561839035465745851967875687824573225039668981065139834782924008184659750228717157688336776361916406515678640362824947917691814557084486817462914778225957936546552415423708394367885215639788477109423232234252995858272003422398609000371484830740949804274951748180781804005575628413734555987679614662701885053420041647394270391455691256765752887080243810606224713056795633687662534027327421449048411953310969119135171550884323428006777444822261230142742505409398434884874773895562237455574132721986734736395954899995249196320298644199314173908138947289264357596775798827145283965774257666345078411401960908356945673198625921631956806716420207560183913072800924700906493815645032434793806405795392706280107178570035738159512911079177338679763927751860504155633761802185888575435795860942893446323296124066478916095337606295540503571412542703234140596296067130142105735674211810460900167964245428224236214834605831643518037155874701824810734933592954494182553099997167371536547438648887990874256502881359289886514384074823876394568094444402729978953743991852998340591649553056673807997287198185461107511076289494355925952237671876461209590096132807590375758516339539221880691723733930263590279811856697587413873328656518615513088737431998583347466945505024875954671965900380759964998760241206881038755683993745245585014607492960688078449172242697318159224777213831372220606606009034732031154772433208598042481891830925175472160945436398631321372964517713833038573821738213756836267284261927141792769541017846557185695422987818894106464519364755171816119159898497935839911788985655485314874904381606757735304191731373125038662698769475823904972906565648301231599660639838876973418561890998294164731672492302870395496152631683390385847682447073302889655578319825314412277684600726427852081398998153173889849248267411325308515636720774216298423171382970465573195389320422805218763668464779199618282798730230015022145568283572338794812183842581577428634157059025613191400932120429353524566654516470561880013788628867946764842927450829420015110763930758950124591466169620649610020918453173369661625168647194041602932803699109180144925422834767864135031949592713885269072430989342105050134976599478771185516544958093855816865957688808481538177446456531141536641845031064371549638063712810094352691627057796097471109377922740685518565801985126558284619764344298276817225627376736792870567688307829081771924224448124367803488394983129490116699972807320423664899521881080256625408395373844240255022192207914203613424475364357252214853305613025763895257749782244579161859791062218924710406830241168300331934139003621097999173445605827762345966229352444864990844400434517022838547157912863472840646857228219161070137230353718380134964326344198092337388166432963600007635244188821581872500465870150459002444943150618276991445455757825596751174846957430185698214285806974291316592648371492779348087623422807761222545846233723797373713935661050385059314309688247569583932593970638694739479347473524860809135467298152944021050498801433293165252107422277110105080591471603716456493888868985282974207669710277705326909115308659291270295019212168152120242384365611817990564651273932813240993563910893712207970789792606244773221362087284047129130615336154362512549637011134004782712457423345044876489764944373108431535669981622539181387017411972370461823634307956845738524608281603660571348000104021504995250458995189346000751551335065867506572951457185698362244240670108267711910821232683302261998937217017173019317078341679314799148687379412470831446425032474164306882808417417749585028220890981016914257525023987422690352526399643766157159273917241040552572736263953886851955897957789533962063227352048472663485854557610995494611438303541211693107527086818131443178994789471066135315753065448173293021004908629636424042036355155654067085145603834053542854814665431692280558697747516592634812348513910105785191417018197757524165658973919114461983426271692131783373285808191112247026492084338057947103085809873396004919817998443556769072696061379776503509571866166957399537291688895901209122152982976969587571016509875086981299439504075105114451771436619159855064071453088961738555408701048546750080666715166985689443702479608560902568811674120384250051759650099950722946728985060043584119334946748704665948982573655576696162599528128307338433682581306608467473973790019218081490290701923218324980139248429615331425892656692079719870426985069680763841244398351937067502566479163861644973083552191448703802178218063388092246163114239567083625279892127574808603558613270931787007059878759571571523485346216362213338328693077848808200460084536095884935996506966115555342195724044788527375961324337922896466589652669768716656250854836047233395598369615380409433491512353296769730327045055372356615986275976072499467198942509783643061796714755211696328380064733072401100778702883142245899432241645326241756509530039791488044477654470314279412219047905887888742523269319823093094921290731229744584829522407797846416993825635323325993097545850280125228493598472158084375718176338760114318312498738954637915909722490867420550815277768544191318051337196772989972773825794510627271407398330533123651704607911180323136219760287025076205650028547761985873616664951260325288628329994478603000849891978749330433977151600528779465147765416884235733052287963761091105709822546360212536683478382281681683997311282268959608568829963716001332053672729605719789989079670705986636087198090807242910511646844670878197376917548659271573953838891007498481642740182109663986306462223260583786743963845897935954825415634378004391169752579659330954348558930156851904683309914159702314294043421225183356547585157173626568797584367205396725234718326866769882449206735024183140125682227230622091484825770318175343054895760629448665024574590755675588430619098933844772161789142788234986838467763922861287241900275098402545484439759334832805758718974425985497115810753168420664116651363698841621479493935441897397693780276616377032377896092870439859605478138143777913832924928962243862470780885286003656310513738986825116763217256029246811788759367758183408759129328025377117004391154096725022677609225708899106129422439970227388782820267392592270663528074790423652476922053892271444893859594207636433479771053389228388418098621256921144352986429894876931726927595382152952784537252616769809229078771515846448382628976239604300028160941276556342308196571930748655478526373767356186703622101004360001271486118217856668837872159865077219553037349123747163670329899996794089055218769792462194618949572419471105763724018874754173768729517438398919364546698783764987035831496449818772247162997700139810757510860208014075174348882835683472280389526675093317737417878307144411069561140102154658686752596392985968843909675339114699626682672846660054781902537712502147410124320362180628828493955502383425303539052520636745326525848089734087301212216547982475454754931042683430789350310101222648741811112826592502007982725344613925701012121393382244888942791646379160221858896669105152804835254897337522287499448901413098537983524632982310210199234868283655168483913275197113171602302358353783214152383528632378871639705309157450234974208357095964097526370282857099042115720369831601886371520190059763857013956466544324307731160350549070707951919764493526018753774407556200687351726877904394677542535594741868064237395217173913505230726447683058262119176049757881139259286780869242261634747582402696254866596489077328401136048543378224275321689767771724089753569764559508666421647334355138295342108560327695831874447902229015992896139673516035744240684159464239823783554581891292025954460113083455539210763877370657614404379728877543714663261700386943529902316908403300648525204938163677293938595389947997877339388623437709488211393753178939245836177468839848296223401819498740579895781086606973329357534821213521872814006653019767967594381827522415892054284089259449000340961499870474193868615430309860361534387821280829913194395115792504447031772055596210399471252360477086749033244130999916488011581725438871410794599463112255850977330346942256346246033875321530533588455863380588530694582971763582081284139759152187628548955703609499933302546750045294872802713026157620867852705286785012013393246687198543584919205472271762713958361589704402337926224426408198175810556146808893240710287846949762917674229267874598320698917392558342756906106101390700934397000065229169805268500701990836422153412322495383431954743554033184202160783378053511111343267362965851073685323333557316590633292844682399068400570069576044497545164264662909962359066798351975957765730936096968517899969921103849651258749883340771706055910967144118140064301868742334266490149093092099336256096405162552666765550844356349059851125023425277860494139810274667331139827934329070685833610169103767729295599438599605830776407703063735643164433929911476411748215828428478960202053440541095444471757758400856999771044321763401313642700344979566398766463280533103707834977534081219870780570241060006213835590440686573362103434640607804928688377304180143252731074600156101614086131392184679838380495751925883628333215191487978548606053757184549513500732658337411064377032571266545501476046972600625906430949720302082881839698750934037212488080805718244841661545463613909614225570271850846345046052283978747912042001479098863008059146143716841010196986368186565367531921365565567601968431454261530759285686508076477457643333893492269116543415634385525992391504851072628950298898926956536042533230221977398890311842649206101581910261191191305239912009891616887423300460148831765451500891277936269597356946236511196990477989662522827809946040187662303065382637456176242182592074201062667382779603590089425159246958623514052713622564126568571766682311114583638920700056944960094026321099277129907261123780121443971734991080091455431479809948942440473369544046717718037512244645834753435432785684097188277137543581282665730301638464021025302954732758026693199604112207880844329913222943379483696942331765051429203924075905174955143213707122953203910443663677186657970119579474634699259167424242745669608978037555181047857097596873731614772406373592794612178173217231542289296267880873769799041682303027140485350657263520996211968187825907573255952072178206745954137620083837369784844103413888055389083230743825953084492474261185593745474000564796618866218595230465825516598207940178847782399538267228105099087194698153928082854319132858742009172690023520211917730475031110386127849426967769013724978746184847983930369260448919261505253019035361652073377165628315692044755255798324593876121463094480246001716344150664094067089016394819450386237028410838673922544693086067255788163935360812941708019157618297404748243931719248688603019140356486918145121992081808805296089538819012367470793498310644546069915455803876637162068610385644780733916806715693890069871328576634879054698631192850620468665820337443053512628953599016017645728497549217422076543416616671558303532982433155937781207937671759426491830745150509960345301123971399905292078717992842090666695402595390636727938405289962059477546801527280411915319685985616770906398701776145678699658933186726144515334535793249303896738926711898087815744016291233425643903897843719396285585674128125533326967208198129373894961804403227008804067414583233107650974863232961544775964925453959078646537824080304354917178666135395006317803456882325225623157764535309142395974368955857764425884031284683299313000522945466025163693716996127459244220905925350822933135088777379271589715175940027095647248164399308751552355729850443355493371084722628925325535969177623166466251018131442075700717010821271527716187317768046115224136794138835868879483231921051277925117713243747082126108516787349124949022846319845214043896883375869438165775611359271546323865397633778191034301670988097836019989682828095840292682998129504087989931370694490109377768644435823359558123567460898637945311918460805447037142967987550355798618850499362381279012480630834511275085163164253730060048843536246884477057482977455323770240912180212208081268449064719200862495308744274728126646235254352041608533551217218135700131180479393419302918800061712218900569429367568641006190149759778684609944913339516097437808544254998522717734707861653278646873736611780487221833874769909779569241803836428610600351944481267756612563389847032695120369244749432107826123583510577335455565056556952303850379291911197919929110183584108667371144495410065390562805543372585236775721025850287131165600628418561895801246201604308669606137128095625406686786015797589773034340104455633697803518741370460238343348260156130390433488011764632779811433626558698976858412294844925008614875719232541434350970326894942744918564699014268442894902290117077868600466724652660350556591048868091308855746234535889134659112190948784391626236663975570867878599896535589675229980080665427264778960526882411749252998665116063541841477917073597246018584189209821387393435355432260182079250363263023627867074126970506532747460893336833539424071060918420992886606699924981526026227225004795737664687450497678500805570109816606866952935922813216664265224423203895135175547430087662252575568305408045195468468302874665073362360793786028158361353879905692487574899248786669415750604261813196891737825103568485491436563083456831619282753024621073785782245453236790605610489732423175194495139349109947918506319197519590984613717072702418571293382694630776849505713896692035047840069322577764163735318554014954961866261705650381760886101297692911325267315859324505603640290124093195924018689468196028399669543210693322871159724740444005107206523676929287383160020732139793475644249858189224218879057999906022904937145976864553337849930565419161937877544192707773234446542498966739982058383033961142211696222580153272036503429138682851983053905363105841157269826819803400753465061644104475393404040243766332791902815861623778367815049462144953889387787371210030633266956943398817725932574062356634628013031372572626462183607455184988169332642648543529456368443169263374790426611265842405022226488182464514653507753096021805528581821665836343510160461627749487929043333446163044214871635431081519889177890543902615440461827910411425455513105117790223732932828647238708544775075647643270515155586896836538019353434796650345231027422101690831562665423604981144676707294501357498948138445666347920004717452887407395732612703264771214356101605350089235568195403512212933382081498747914792512280641743489554387043387828168181951444960261846351435960297888081852392451423361677547432863542548869323634908103482502217780542536668149558090925732538024859870655626125766767264000859145078764913557865084114546840540854785760912944091605140921202169410672500499593209448937807724906225968494922934687389714175504640868133070149993017244179050703293667895343895857563169669300218127593771070566006016173181841589781125112976784151472376800886210507601294487840428786426592279245139691314771187824284823242205524462990831099296864403746784199505970248715198176447365604487195856151893941728716534033288516022811148099323320042342929470942151893936246624113044596011989669484135900061121626480085904846243809382314112225126509626896244165507973303454327859560312915357402483134235340767398080043409687470166038675461302634639860186080184422036544766548547717604952020238862603970534044849419808264414621063383440148329015352430559775120583635328678695570294087076671155410825839295006679555663416786238949402091247833334647182624230314055895021447599425834820563411307766866639599109945277073864370693726451446147413782932909906127014585301644599531486921580158122619957947773912121631683154186882326751264522625589458931637276587191178836440022455426299753912230999220269184943680867763634351263145024335222532697402081003338378564671517833139421413483823692773058135136694144449770317444396732934790196159581457016837112353022120667659787023139235962122546370786697940912915059701870975190146011981614576381735414291460203348331831225435865285181129674446982085947363020560299522672094033549433394292477697533145033003409808722425388318572318192332295892787931746459614491475284473169984762983931876865447579955456251595740630461804002462420297112021627234223580667833437146580507419971638037757549547407784718650176806870227185352681716255438858720058864915122330804925601511764030407518112253189910667404269501555627837853643306282249887742919586261804524457967700967990598180771662645996661750844465312346186091066249445933082541258162546137075661133375584437842970195730986966661376812502320137958635425603554372340534017509922125686873565296944122610186891518775931290374064721637256255739541987884852869658734342947385066610302099993755490795247728007745043789552303787538729736542511988271378501372920749460244986459587019060380218341334347274440501403964183264032764296544851365106727188814375906789134733053931548555393554903698003367831667695283313357648267223368771450698534820853077559661570753826763560188356531594012960547433757069512901940607675059253453119636795329338693113326023851537203952375280683339421890460236799028832408878214222411199363699159208806787360635564448114623566424200445283615384622096395315115077276221392207849046748138388323236296230015242347931222095044051152378330828945897084551915393445935468304908911364756820925807540422438785051765348752317142850923031833224918278933781142938706135246996985782125634709224905682959719435521401317810919639665702038852388476241498249108329358361848726285024015677144484052339327497611161855609926434181487953457983640577196803109327846982665176198717030014873230887851684730138192070895665615800725718689691834125241173219447381195043642144111270436600352561532289728521836137019639933497263162675469440474941012217532706885378164923908775975378828968588059166368440927070732145970489098525496266609195451061066610035802087071908743173817524838006065804808047060326356337576386521599786915072931895897326130302339633740468745721458674462738523837543460914135795212520751994806376252106668784425936810414065459332754872153989936539731935118174455663488114639153265893015467762484846125823321896589643262842099912511530384969237463399116314773869298172923397946376523743454390583511612767389098237136193395196462986548152347846872992787258419290199047369061508189605239558204832783638572260918979715737578733324261692080895686109405665243012074983483401417189455417192900970003642691912722667965985683573530465780238690719204817260618196329727525942409372101130649918147948890821684905822684462373894961783497262736178278023628401675724254011288287171844630932806952162092624741179682842620999593496614871641513544137891481251345638464914146950646084183922151471249256283606804870530765989163802446281374922245622011473645641074047043390859636985948230938526731476501242949038615857767038704998382545429069346198388294245971425181490768617803771533570217103847522597832389164263088898024435013406803991663599939939650886297158700593042521242824244735538558144466430570595987805265948070456025419240598686996002700920590247010883234551642754294497993330680995563137344000206247403056594664261162729842328457213523848124024982000268659530935177564930493667490210433290673703921583115402164379723611741586489410897010170438640949901504428273534351917130518616998281557052927670696852494076400110439912016499523326555102157218733297996955637625234469179654862638626641574274280087303270871563998009709065461753042271122565488668745935877687078245759498146265968818446265850967416926792118185182659951668499434946688485437944558886988136110501013432404630392689509054432211615627785432703820103634377146273641508494837062655839716585410428629862498393470482046667543818318016961429282076227403220057268547799525479127986300985955011830623112925689749302449663051216035509462275459583730766908446570017856114925728535365256551003174660049591762965708863928530366524666464961409260545903604758676039080759642831566740469286276072518536233528710460832271482603908882104575859252906428056912177862034710084745588822111824576160626407116892048103023163797019443468416776164929271186642905334569922966509512414790994887966381097986766953801299141999065630839694370754739516872279503795227992441157386603515155571444330426229194937384294611718816687575218254610411115006779648606330385456779663971783451105204951772310055953779116221665362469028390957309171876435606603238572898894018120908060987360326097622625348008658873792117616410174612091674200584821925457021050824545243622934243741949358658585603483685914208595635804530876477641020944961544942268581313284099275059731654994281514333290829874089500482237171144531775834365238489970120219563654831934970059329697704145523847476443949417832285289802051822418537984415298482916288457525415563339009123611462202029950571985333594125725160265211753845972475703042843362512682425669129102501010706678241840000251020568288405380344672758339202814914198110573448441820581039390805436970982709283507559828619994365113475920618346107509722830964901002750373747959755670133670152142480736648874441508029674615369278709094961875630359924424530345879280119544821888046460423518260640726577417138883700942457772275876238636918747368777744769038393432089702968783380518968683578899038391014362703226227205969333829446422949949518537129995371478499513029424739569450673027226204131772234946596714599446013792797023503876242538445449197521189464905428260616100293211058864225799855791317894556886202734748495612864516466082200750932046462604803857941728577554071479704640574697355791649474184495659061357725255835717505789791014031125362149536693328729764224875409311287049883121461057546134140474078849018743409466054302251162425088099809538817240389342191717622641187037224936406522281240616472333095080738727133751104440669256261658715855498919406393765961488917792573385409752591047811832604034172792751748934554963762779898724779277677956865896831646035717553399063001252833539001160236788087528814048118305279626910362914990313312293309624725502442555502684886446005303600065061332528484627883316503511013843543782803045914546724560346973133563327808790166626677956722731277912849237151817225809291985096262007795889541130435731703314341206166910167291136636674996939885526962513359229036642942608655899989162661652485629694214923076281467690902602345472799693445210527005969100162249183210127211608922201918694774019987715955758769248652345056848250513721461366359201592299420897626918875039627899517866238258706583102226614270306052586558893136037341570870967631358763199285026456194662120027079636799751306060828874251254134516272874602083131034816972942909950457976685126360948667212238357784323266292878338526733663496002182987371705391865134374156489661350697258873106579395530249325961718842462415813068596695283421473104183933421694486117440705296665034071937611735925968603145814345572775494529287805844308975745204958523360750145821225815704628171923910651006984447649420202992365701365320386764826925215559128687845563966673584821414591507707122318568583219480353182033643506597252191856245623904539387993177084409678033390856490976926494085403859231481155210380147727861870491524563548346734466308270025004837814624456674910209384597324216510252563793063680060480242517056421726007417465792826205776928980581771330821823987255436228596746606058970136256917829822404634845910909872966146805113406930863124310504393145994060454262829597336772866895988448810264736923080464376673641711083904924303261438289308291116050993140460969408183474284968734658191660919117456747919899106933278749043276955595624777708994122720856591472504591144310940789462282286020580829776956901964381037325627228260741417407214704102007442522537439185504791153059895111856872786571547786989495998607759320609818326903230248536945668907747988385059020848605301222874630378930062830707040766080785698781254944688854276699264647844356864326315304800256323684881569858820742622107786173703329016041590704653562761385236433770844568856265300877667764873646083606601164183238665670181373025486305265987450573725524948016518643852419408180118844210100322543172714614361182316780371630862540682384463937577855437082442659324144635230194726412329387573883463904520669527337611684425447203813557087215190942726065242290400146730786376916040229617568188888092024128781717307375152808998401862015789060629400644696754459502610803873204330698921657616073884311086491544496910952354113007940358330557120427022517322837835845356540484327172891036302996150013832641254346916139049731830667637760062287727141233482078943101866246725047660074942432918086249812701154884867353515695616091937494289665440522320642637288603727589343826585591420442770019457502812393527493524615774701240220771858227363045165203246382078287792298613692450312232272185743892543359200019097429576214104765052899005302466137341658321981348117312728073334585099207664214868931044105472502265197559604355671011111440400542709924214226509540118674586172771075554229704515398471024241275329077707615504677159570072024047301218089346313499329691226148754911618204483747361785487330582012267404631493018580490201192626313592955306044055125649758694068640624759712749321563584218423980026882392015898792797636563399614462250878638572266268564288666830040183213184891117033053563576963309905705275128822052882932423334859657987500839294084226207094182842185879990925204581242756624334653405462849188273454387115320888752548085836612537465781462776572569700748927009363951047901218176147185241726641277763750443995059037108249366506911425984421959526861089584997280391875559552578780272257990487616149284527423635048142636069654099009109716778150420921915841244054265238141335703728493093102800727606141436331555259335795951425403578921304411379319184826772611344605522431585771496136817505616819862047775224096054457434044322430638524688748224589936913645383783540640766053154457527127119297766671112125969818097615572685492185544344626558951186580008710159116472507219820650007108639940019067468388577378485504135216034432986219883649065851886498756787308385071331002496385994001588008808434444174284127062986911823579202286078771515932170295349782677569192265586308889194993676048120730879589381583012499061749541155830985086573130479793256850583419619629296879769488657198446433473017720558590893675615268989661371682266084803452887482539361810731640751684225801686416943280564819451620974482473456719851333116494356705302887766018487361638043549199048450799232593893523614639627624465777338693595522905451137067164018400943073254217651727175321698545881196811493248238512728499286433741416415831800209064580552563691754143215250818049768845203286979692174816810256847698061022874645500015156159909660814137183336848287559994664713998885073224249340008722169824892618763292145065901353143156398409116187875706400349323528396797359867997905362135894659413788445672246279461444198038509767664860974447862041596302109797003501055324681333918656344571785456264810883731296849796056445224413041396225952365500157155236276124388462197489085606337594558317704310460631349257063010311114199192822974995561887833435834887538901067408306362697165103359773116818033012521219277069819776939018151703567273880102171553940191953246741626742603244294103078899038455115963852093708005758851360653335261580379874727758208893086291639521113032364486344940843135470910900898518687253081140814069209430902148954187577777830147687788997522330920360449475340452377440518361277458606132364535298306545453247640628128621934415143450859413207974931454079834062348474517390099736196861420739508504536997101220367831993779332402087927448992610161741301075134228525252523748554025729086463322485465968068655466772425372519710056815155708479812808341834462972883118582905273475985862646503856072175906888696141116935839122147586295065045314074802073683527233008949418223696975505593314261782245320476371533659186710538490882979412314031708867723280496184477143885436251876881479009338766960597226419560364185515543385181087326212077565549256204831145999768315411420264859366605414349247242692108638285022406657595920081875120222067654721076407503110289699109520493417467181318656545246335009719224197683185743955262575887710712316036658942974494145424920081912498099129788221636761089223786713272157237971106609522543120359438156507822065064616366474651720945395344279442347769327831633574610940822372939871483211455803184772799974025893276696836215448969841575377608487639134865598491436991531464181888269500909794816864493749455652330292217345879420037763484815751786095474685509100557893105408592829683420179190035142466242664354245279949679054269370436523942444941977752449004772272236082681216040480542340603934958739440946684072783705463759363575811587925036188437508831801889582408440129561611527481993301419805876296892136802195354496740220425973155333702165420499828771234973909820950838961426216463705241170686728795396137719271670692473168029963231727832186119601272422020022702531518498986702426175812190891477434443811264965268269373364395684784338031585638055084450559222021038125781497991081328862486428434446726470720192211697360401558922481004422103026076214354762451890147088724305027393749353142144801987833125810615604096122478666695626912153627851739474648113344300401952958625318622590441893500058192558907662427708869702820924719348536409806870815356077742769156054883932970601241280195599720551894532340661583242098417519322412265573881642981341883106855768020588773883977173838689483647351922354160351816678483412664853108498679665259007922015465398139174190631934719287624943784103838886136432236252104354081144113906178223878218381145484778504994885645051867773404017123303959095924367707977087527240717301282646086310564090028872293075300911205180518095662274410396928403105921156768298203015046912159565444691243918972044227570734848709804536374027083162869237859818921625825836568048157627429375023145830598600290171815554623878239069302391186601604494475759986902467747773265513905436899623784066426296668290753670669759976382712201800570023793742858623034909603840838183305860551009160756971692832144685035763224869762148368430396908436553572868104041560341587568742710073879870884872546726085965147761364096735960310954920226535849567250885030365802764087603386632902092191188465610347899876228622486089471627145134840691225708341677069742512394429723491387768895462089032785638017761536149751657759279414648532967511396445614915120852944123244966244129806053808288868821879103611112758421105737631806042407504693984814576530862378001328164257365091090690960080544909585417268579135619111396204087882279859865754742359814817202442871387027911278292705101583464463235448932214839429196010935308669865839686904633088988249299843473114646142764892445506947624844396377988681338125636247638665335174402117660125446701978819944511741824363369295061068588961391167965965308149237475739484146995104565477896481464942101941827010310717280686535188596659642769567710972882223551648199917782339425722157186760136307774716421257124192307084396152922945811037195291918131909395129381968771779738035779731676523020763283804433390868979560140135128798969300768870733540155799164419460951503498698730507126919819621725180980877010969613139117926639701478096073245811087467195078658403033578696239255134667807546867470203519278585062311255248663747894900131280155461286684413267791818938923349333431788839123419601323486646284015310734530788581449451351978718020885708557943856461561884322670015216832448085850513642934641828184259573369940620014616496666774239305132179346915551578475568550982589379828749037027711738019591379963414741364471489187049817582796971655688960942202658026277035618964690056295196877729348761885449127492022409474931166511794690022077232513729692818983028626714172086566880915252787307879928775425656416657044267429058006518688480782850206947197844842387034725243596468484084072599324519137163932788543373389639737231770519699532961850200289314474438423346422964718813026718986001981493691553380391570532261964780106164375759335953208684968379393339945483758137191882950728385171817447198747324885455743897735109334021622071367698404038386994203354514531210758944376166637024646575235375446083720871838971469774253930505452067425371146866300555496628976153364184850729114355836817059700536739086816009145852428767588293985170650625488377200476698930809346342606814385610230607917418778708425530854044354345674511490272240533819614594367149568476727188597437384582882637442460245870102113182860726541367649224397236039252522573425149624362232771291415395970596121965281393672069289487945589937744838599811833385401511960359776748945941414557307383047101216467421399262719362880892262357954102809419087851970179182719554982125269966348300307339189729065016025446944544263723733012480157702019733228121335244168357272309086796103900233155728266285993245667821425837535764162827233265702737374716768953682362222439740282350107548519232910847487887439256255478115470693677158376518108024673231477478015955535814976093376219672846635807841548724616867744258037701497645591344210126715203288605549043451874569586287337931160333826806079091981020954343135460869385248671145160872771785717850083644562202408201427190540461812219089110148387361975087732610250683488508517190671959273108562116168989929140757804160461344834034738512034444736344472532038054513733001993323779660942466083550212681185582950453945873563773574194927061203627718265075652936291435430765171023249427468608199915993790063452768895368956681755284407213925594722462663643413119944571385277165908247087531488729009545382644792888625944303060448345513257095486343668744884122511627231652775584525734848806526300940803622059607157371705156899056225370206047487178632564750356580794269896844802981135041549330325876289077708811783666269009731079014457512324001808905472014391204057275863229559653706313365150925004650546702642169741839370543110567444763955332204656923196757484042306722675311681621138808206053924720836316801006813811387075101467752236066878727610174736361914941512099982061170152669708399541476162669058662097531299154611257990518341713022655862301249437818169071434626510522046885499166670910226715289970367805922824954241686214484284337415193535145793374878823376787412586510190820832992297231145160936045752755473127511029319245666565297890072293574830010404257413201129382797335635038836448131516025606531656541903190705112517893109004563550112225893745423499143376239424971853131537628434161959360853275192255133315425304218296962793160010390341568927126725979419444891501529868539484274254088370787887705055262759464359410417381940379668241591302308186078036822342101988904597524470097284386112569842117504348590540756053138695693695294544197060386973616742744690600142935340490617182107762429244759029263577142134919033364688056217784590256111092067289362564515921663570208608799073009227731869410406708977615518141321200079611529000167425260338817730278639206260154801819190544225575564490683131483567882132875939390061016349533321266062818994382250017991796373370815428170340142886495782513801589291293492560654802663689822991825087568693500896024556032262258551281791150223172958586434704405692043991985483282148430091812232190628027463851102751556388823484983158823168584727215416865805331323609451928763015502874950974146923704400726397187283079505686883775751964830205501451875984384466158694939128314498668161869884201796678305482093320777783979736986414478251073764869550048734553659992887314930004563666777444067957093795610717826919987679925313633449444507627781593418602636645100944051244298529792652186178435134432991156193315460481882489521119999384310491150347580511425634265557684664216417190066320877474600340257366130614267280516239375800971070902090589308575739180321386436115724884286237392523926157506684703482119628574731128830115564714380590449473075389838140989915018722957367076327093352524103812901005173714547073826617056297539106812212336114031489062943553949058379014400469415115077731817114814917815119036288310157101111341339619731877346920466715814018790940650177000462770176401621876694128263363390916524747972220696859940131479241386049376086639121436231772903827063164904116218354453008412466582765451953523920399242341883556970506537904059012111412063175918185138471261602939192194877164877581014410319998814020639501314274094763866579277424361287953815281021339984523701465209978542977288268194148013006273387180322425842574115370349854807411999074361861388525409305520374759992154629081241251018031098461286561271086946822352268807499104265029210927756958895532894774293154217203959600324952374444212887065581092416136980034987080218493482514621789592114481808643829035907587907187297605823342396947711841529014119947051206027573811200048410585040408278418390715030340444605099180932728441747382159152780527176806367141436547211899628954437016327542472971264715283600716715321098803846750948042908782463407710879065278934214141010083394662539984701604672869849745138350279611816939431616234886790572537773075460946695914421629686559261365686512174909694403000828186047684537382342017372299738435806039075108478327386042952343589952217101716384068905184720386702433454269678747713163724988444446957662417364965976385540188384438201276973900356792482007366772630401283102732827878887884713832206612187416556704373175149533285142211030985141153544037272749064642392639418721710956460498575220892553163590820355018769224318016050246887178160034034045007640953593796404166589265146157579723498001794606947881331270680714670097475044681838037692935057573776325418425978259335878995114942313022146595041056071400392973242438103898095522828926662954732662333358145163535007150582149396895643614288538037525461702950359764048114399138119524956048608438202332424736062258497251552843478162726490195402353967820118585811694883999063457613991763945346933874168694180366683257797001637774070723900982786514238037757061225353708546276281899535599712294211530135015770447008812155296365276577476840044519340620127910479339678940447431942686777189774286366939505744708534217698132492950375687436686030363206909201780247727950682234533367859533492300992234132677586079328670710576665065729171489260385697160337232210711572897508342018708602952247942170008833252560797467051533130854790181983256810367383080096978434786604565249870413726991107110112453126555222454252148087010352895360358181989532041374738416053861945623092341287207993473965428369751077981642068384494281266681498531380333759560752067443031111327189470388520186955188560339440169077540441262710817221486277461813294071505786040494248776848361212434937302305371974215346533673091567722306408559496108487822739768708553442383307215691434541163899551861387129094313840232924075807213042451053816607657134759091571008911209373823003106691381500948638744857490519137326741999719796303347693284382260385250984394086860728891740263575205535148078826333133069996588438044196144449392279071975292893782430198465444227561696570373820416973124295492344585248307469201409373925672897988275122942581718017956583628040327901245852670261234365197289974982445620378942505735946248364047181202604684145717223771149648275607070598347991392700360696725508994775432796491166793317314671562097034022678470120804280188619229796614525549603571170162788411004368544370407316352319791235925772796997504007924045270994630118781145716303487285680195945564644192697180550805361129864696966857885101446640915948370700953842262193260886149233667067337176527713830287814916587954149582825211280493647667010328761829591603483329245763072399242564323792008155862060914470378096337052290222396135356567575754787958630518129654709980741410944346522420863730449640950896265553524001692414435058603281194368412152463167201671802273787446708549463058846349478444836458905166056013400746797508281537720813500665884322233609617579151876698513307842676906462818154687444409227983433758599688202390124882463317286518896525540062719765855606664616583773884811881307599966569340350264020666133881408881128677789836792057477089836647781210905914533890739071431938219270264573365338499602954538062424793194363852298148912286647878927195146413496946598579203224128337053926555497243981039792678618277886054284750594652270147137058745916358625105710469675358952933659464695327505860469018062431595217965133637276732684533736350634646816786455188005726906213779795167580373643625806429996691257970994011721128756828863502526650508646309650961962125287080966907716090962361773193784041140654655905389881676806291320102367279149072304220054358092040150863858273605818655821919331998417509114582042436462344412227974840112900563490643847675450372757169380486975168793120739617995312576203114626129517455726647239346459455416933748434180060107101194944393460464109283749374962121365787105333685084834957491710351426046908750546600560638288306860745423283357880830886395792684322279207630684244550641150212010199550281112417626996533405973100698410804306859241056959749288649132300199208643793066042665561522528860749476594367773361206992402975728101400157364126561483120955904894716957643186163396750874003210100660594593705538524991098581803973132197960463560648736998814393015285661363544649373097592607353546989447940914650285212700233461658444783657967261456985034700013100243469618454308582352312005054462055114593464869663708357705890738790756026294880521969885512428118597712885128333325989950177961084826800436306945183875096698891511777451154624126739203607924302123714107897055064902262477578545919074813917312739656965143398088675905135805124678287235716026631029097878011695142361011854654432747821375228589975850033807198856328431386737922225839286332337612896917544811483175392741622113986309886270405782619585960523845523428734492038556607440379124657348719226464861587223481041210297878985262683736829296630842534820241117716635686455596567103218934678878850316745758340257808690631247672574266554823288758484505100405513075547002972879515700399177809024349854284033299096430516279850205477031814504762182962804975176628396572440023077123903847238766741682381005266652873408862630539294595386561215369008855841557051377198856202103863628789836258200723461460940004800390733636334236771916792962504187767344904016828541076304395359667187488349513703729611953949346279324663845747580372487691416944593664626670604470723597519534945343378442985995104028537753901235844894603022734056206589224508640294098431027197889938721075999171945185507763729216560895104320839270940922399477551718997722066738908100701981303467962922865050136068521677285231344664890148586832438333438569704141321351924730103809912382823477504866551640054780480185062843806803929065860108786083447564460873717720724620333791691874206635736841793415403735682869100210303743944752809825025776579971343059220464164672510098704397808758401621115391167992705535264940281016032284226093411343954813084809562860323602631692385868986338944653431743943960834852713034296652191177041587651114415825085746068431303821027110822147924615683007241679722962154973609353393008426328636056718998567696582938671272553218731099529596215002577076770416296472644321921348812914253994473120604811704986589617864983063439047331630974554179039640148112823920577169717298162408554765969596413379042435634177041973374741869131082129027944487659806334756031664849642704493764630589172805044999406142686574905346811669041228438952189834688340790975287446216560596901580337704391377996351134364046297474475753352931615681321958848611169298739962969388429655717064201942911202234137712543335333204348417815933423901078825352986000027604214800904306794956381963688350932531794395626005119708754005841100336224503334757491658761458408843993808820714073340845810513093903025455246558902840684894602344777224389292603490157815338242819627783326099390933638909323509452474594466153890656283149214269437570339692342312160597344502104045290931797641315966770632260390224738852380593407581312089675523877935541335470697614253288021083956502739964383076280932643257392046910936694221169815040097839516628852300579565124087339809289286580427429045600241107523801713462590627230484672499665525446501903407832856501632609158044065451380624873894724315430161895745390918087827589375915820294173096438129245332168784098656847647499360681579185792742163285548248477583148345097905472237456794739609171702352632815803581394939516761546536611168413542440038873850847056071506434400227460641983772063237169015690727616392625029481133892941768913526930289471022310750532420011015255343252070325399817303012941010187876808312105325383706260853287208425194010782135480016555748644835221798293690522835607795159116237290023021763903486653007430099047736138745642465450972060469090155729796166118489975382754132368759838029513521114687217462843807445248636153174244272101356280100567116012221002480703619227463710383116218030865448033657711997330412780975811679221421952520619139452593982555412442938931080489524660360835373941074798404411311769636238371883117258995914508647990460914626914375181567763947740188301382899222248818856376161110364014591906981144572688958383031994725727012874490706756167270727380470912741759539657988077903119716849155009888546346467409227847867223814882541371576630451414243250243195487223739463917250999114195942228820275583697095248305396395815060763518898661601435698020305299805621601622474920989610706119673863620182616432392182211587158580318188665607417094473493512884809561734485656433735882558088450361842847985566126740656296237645335453957186977671773550870566336137203047201238421462884531864469537415426867824351304068682276837604035744665367819178900813863713445029856928301990490350851208775946141201899302200751821284954176718162794453367598326663187014156129308738868235547128555260639084750799733846524271561922597948165895782417411465394722786016504560338492844688585913266580527275419401810245274462299342014401948958903026166504993715392703861765795348712323462406486948530172824333023623143930763748221505362455003717206423238134921716357522565637014660708137059472814389459818396764306712445217434049394589402857082666785803673844709504045285770365220090518319875046327975783567381399557541862504994358556070662585123137632392732174864685314865735688822545913505329052362757576275512670204566760753248150471418732943180213985905594471580048591080854317399904711176191527244749276369029085090276150445957631498147664871513360312410883767764479907934750081915323076667081446479914713814416070792465216571277815876707587372067450128491968305805781618795771482696287562510522569250986672353837753385565814827541985128951896958689717798118162532390513745637977880089762918277690172126072128736404405786634576075187540368408459687400932273526314060380639096417831218951779561613346157344744214846640963797945516980333728246542272339968873961447676234848574883880772480174650516939558139818265945905253710137602212658094369492196311336894474837920869167565607744123758409018289718745657735177561959793334754685177227682009681420415430511659430616974241195941880396863949828892357240606601155016401404525947060433264444262731498554763730882083444090144540244515883052663328582900713841977395917846181782118367203512768524449591044372777187652426533751396099984767025928850793573891434315803190378140920344499625459745520522616793039135983128937598257696438086719928328186796396166599542663121054796425726644680607786288230544166040645300485016748481545883412233766299962938960688421345297611460409502059176067268124581516924163998717070081689545179999263484346901801130149512558605531869635815482363880348232125870263225275434043025284928097711200165449281535490724016884385231845432689593917790029155621302468410025111315896476555484011708656008849254636722097767000242209855469084995475695445610302424582569035866490319091600441315218790650057855483380445069124910391508351532476092580286394958776521243862410510803432111308132251821267224996026977125555839646566445424408425245547083684437558589455755657249815678928343292029009506899989566822848056694830314811280841315474699128313512279066727720205016914078691677553877771885802816527265156562325483121720192982825912065277641936577351138455887896538711854306796470742687408999704640219318566489899904801831470669425901874550152978114136775078008004058151549075894655650202689345070882140938758545582760601024723615756998364849318856330557792854255166740885538689269387824743722448379522101360202395533610464233507607271378216624270690228858965362165436564061323144238475157123448910233068704178496959689734994211451824534598014352082702440460625595394524700229506057383567938055429673500003130661778225409585801572301567004515720277962948510201235286009909007330880303296685375534412974415215864631048259440145014839226670996595348492503911036914322960988888907553702413517620146453266699674693210958485144060285700689088904776941656973478185192673119156594060220593937546213280437144004869576538081874380066477850278491797418160956882772666852393907293634853117131087015060692701680005288898734777394609752966428523777793675560953669192088943837880221132603983979698252455915387733869134031284901451086160874201058232655604115334798931638544952918714896292462585836219247889465538455012086893588901565358385085525877226142054349479142476437977731500660309937474171047021447225766231325015921100788407589981726823173298662227542970987709916578362056850089560412057555689666593824250968959741506517527496367736627184164587214301614117638382957466445880562180359232534210605277786272235376532494399412249384491551665954677006916578030896301542833987547278069966363550920070749314905124624224196422832055408340417826974921203586739514136528833857444075043011943197778839133873056959142711298069672278971551543599782747585565813594851951993791415211573966233095693511927810468562456414759008393853192553648943574175627502174585071385397590413785404960782233417520293913351928007051316210691977841212129650866538559551720142091168210895623223502463256005296127600730338044650431131308598884369266462129412106541618583940486805322537293923113219888546332469178157124839112398813962769200637214760415575002398582948919796683915245865473149641595803384165956642794251007173152391643391363613371414558009096258093410204093439514172066722512933561850094168134230434403435726884313390683200941581496014034290724108397384244878033448921175240331614072745781139077543168328715269523631212813900506351586666694776315723996857373785245781571491885124453793006051880638738553743328626036274082807181220785056705042099121539277500985064765566462531969298304128203967113430185398348117402357136204388723201959777080903147063167503292090696957485880265845988770246160538953777595602190618477939758457530591241971145723768101460275753198677023907227771043816870534860389310670033883057648252485914777295264972197034637982649166618951031780212393159387400737514190514608156257215463519609606459882698576609014945028348348380092364290037644916866938999405373681757116765467040124474668647713420186167589795146341063820214994316712032652767681450423318162402274917528311305571546577801156208825171851365289195426870806986290181549181931003316987399694812334405254154993011100400670859893170637511676898548016837913302657198088794666674747962754609907740384978362969840570077526591977519608560050855696205320357655008314973441503637067750690642418276194773984753429456283926864045721500869745400707838519731338404172533334113584416247469924676793218967400288135907757667527709511220222121517472001064620470591366157787301991051676319354853741872610257673724470015158984456481594275905498384611420024921509092272993841094662166036085602799193830414497600899175126096243849660754463285950120168335992311049119004662561000649224360236688103772840087426404329467340537551604528479835941191521749891021152035012159645688152102538017767224791406811741914441262948593691018104501506072695448949743186054787129304884458009442789097960570061035864608962614302819751080569759198820998488279834223119486898099238633399170749419470768748918364249572812689504561675907201835273161490823096704371410510660092408145226785478711016251779359904814180647368227137257426070687099898076997817486329143424170930756976337158707333088315416267724543941619925007109466733974646347676237493609576074764978050723304599046483746961352565332027884142111071860399716311209557423191255561789609499105443027019572532207039535797306596413065017346705341121028647737146064764408815149190821054510400617664682058709214941549786999908068239180443551390869037414117909521504322919552642963579203031290817767378750349926259792780084012955799873464672698737258859427391388602868235406373566140173546973773530186261907030791436739968683406829292749165944618655900611771665310451571680611389521631032159577684174208928354932757131477829925071410516967213433460553114079362962669283511578328760554793964712737655213392561064838527811729790158259035688995475182899796148870220888772848201437674632645548458639216790737432319604184812157707931087915347728993852170117368137504397943263765700744580231932520811688080047541705364461036844228892193756224168729872899940942779893651739979354402975752082961244627515847638989358306066491910627072035770509726457037625069877206134176587586202604202239654950004776025372327172444912123749252299029630333213067979166788736440021057148588349841620669299645242773199465984228341237217449468537272575323340972201918675122446904375046027192971807302451882745377489716070109938854407451579341616903949233854416726194265179022980139458561569244943931910724399905067900537508982101862297579336938805296410510699661789747359075772696696414074970192476354473436933535570946511167988634303293105910438577098251702335449861849397606963384299829105573235128474167996754604556126366841991229395043830060759391914349991556912643633557065386334342670457299982448969971726463774147466502544674015398039729789155627160329975363229737672584213531372438922839518620809807004944874858544976571693045600807890654153884095966304910301749751562352327569127676427251595919017770652247606917858280410263360595680356039266699889074707284733034795198230924832922803912316272625002517786800896602357431110338121408176113501927897126213746411592624954748795592214325411887133814728350009994801164983177699962831400085681738791558601822546609926559791616572985398425241633280665731809633473945982010274369850480155778290552695098839844301490333858175953895695693648299076552004325095612418118677914727973991633675238023445464499648742077453707147969437717855904162868975097421259791837084115990003425986526356386716722899271400677352582387485856141746804297657206636983846946265715545223897248005330175755333918983527327275966639318288394232639788103175648336937128538917850320312245702602304145776204483606110520947052618232672615074439963917704482198057542855073492902487399551943500665279798215567801741582422928771574317014994417927288067823647137174243124159592390461978322475623163225418406790934799590992959384992427474037821109015525473635063509597009036552387597070687034754918346483931967412980753764678222968198802344793014540827147382902602495393381395966153469299419059644522801588845992571956937931402567096851622481306645712773868666246006676094889662440288236324163117047437871529771061502392067351946316823786122966849935082405768967726093653134418592577846314381076686909537785228938989285045683690577521776258552763098059642733490297592092571923036253448883447444563650126845466713244929974214519460874622209741847323242084231035751307733892188453694543391048993976496588914133041039467806212524500913442077717251980971244892020362626616989165972243467634721969322116101263959886613911054281378844272175661484857132242091845463896276279574462106755891707976929316669888790972680120984089891008791802498668602553074419411195957525514131810411673395388254766682678613248257509004907423910181637561903297939120358025470698440688550866173344453740463847503729364432135413283214272733031299678650422966723603847690356824676235807587767883170444097240953229479201563708282582820200710800270988175653205934720246728402496015923936850134328519734175301783988027874725631541638330724748068967821273338765159811053413295695338819365518131142739129949237807299296057816771356588978955887489521962457963925274784801884485816328045623719346244505119811274470091156220504623091653472153869807737462719727567083927719398016833851930737312274577968646757104080207005209296188414080535147744152024448334966350740819774051063051424813125011075031445036332165256853500816624618261973378029751124174340682562581270956017097950062310123799178269353079532441861340262850312884255446455887767875916746160536294262874783062655889350740455023246575983574852434212211104039630472404053771061386570560323027084528114880499420889249809820909238456111325736785234357269329474056036824880392537345390960565117954630399970260746800663676846902520983092745200118022916286756121651556196232014845575070704071345477030986832087925758209229738427037595405810438770981478416275416380680987794824348763786719808424789795364339041535342702993807091689693273550702297850681851883001335742253407088668922826946790064519328175562967094201242053051386135247957965786500136662868050659744244345018899125930505914062103700598136895792077510108256792415738011126362034458909089183295746813197832056993552533056457168677482859329359432253627031739718781203795713112483959829945884466464480263941454729399687598577286835967508578015102902835046418987181842526887525578744551738827826527380736194374300069742313126977601173686635913306954136904657540185435003674106885555865982502300014680276994068627547356486015861088753418544475996967536485678483893482745582914266144600889838650592149673730994207534170118346260385455548139057522924862111506008232404772237203793264856754832081842307313815365025613034564881322458181455579241297711780089860185651379979687820621215307513979993889927959923506131811978715972076231204869376933155462199414020058512240203539486625595034468910445696090455956680819242281610514662862353181130289546697625417549091541481504159084597262693729908189304899083925171366440681083532140322708783131658455293986035597481656130321320641265271938688460614283227667029480627737878773611739689250597992159473349459461328117432416730151858849586899853418830923291774680856142204296065583432755855119998986226652950642650809140030289376283910944171950473315596981921155487551136094681436434551782804522712373981801388663813381346646062087086638072978900473130496160658707065734854825609489415132592033004873789117286743561632242123082177205553745938865817338441525640018303908626536465988839894922104293056250990480856318598571426740922742054194758510550695116172348417984252278105795615030682867560630476636545566743574405237694259734357768404454289583606975077263620724809132400021562216631162752268447151874028884235766061024969499831340162076243974880052481915387034425928506090046325280428845650759737331032751446021954819264382597276526747636991695029737365072512551175195929832908455146852261445015900485929312621170871246047505702608343343826232722798875343582247290418991914997530214726951315940263707932132559428434211898381205750122570446095490126441081144642839526375685323384673559095089574693705905353772293924351581913013442062010544248359061202762632440434247990858613562340507913524930283497298396569877457362470216737138610341769717901546765487873747410587001614507519858272106297423096035763626747398875443638270575590069417380013286440213553367421634182231477120181455666116951252279883506310220898814181134537082631369081555825195183252817712907333146126611177379538971079306100405124185530834945143649203696723592706439938177424122113415799116597087435424250427114489665795502798747557403127400656046512127277225361711326108594525966984819457813836683859727610796285680180297280335024009044807640928673186778441664643234734837482710193666746767814126347453805671125984275822965359690294040697844521986248256417324797505448378258508824850632130000963503222813910777601743419699190080353412344931670835430585593714741281989052942490921699723717990302528438652927186562796851944751429497529529826390862095701475823697007713591646536819291195295337098556835312861970391478633426716428404791977085185593535923984843522392018780603808592505253608495578001431217963359239838530098758080407715210313528500310522952020875309446166684091888561181096684457242330029595559431475554901622738534018731147675629142612321465766095566114587900965238857408802889013240318394742530313363830588864739250450392405424512321037786216533098660089101118298869081044748108247631952119027965905274689154602305164656402553934603855852721791841090672366987839644979353701446770800182572086925429898236720767068577239509207319900895017165871427732420731847618978950474726477594869666635121354427709752106802944018845057225568661636095242994737680286301162602877851813354977711432078653048538181291087412022927615394750473756433554878210236087969804561643986843381976142120680816147075636611143599446667042297032487215095010481530694900209674493137636885782674494345397402081848556847955263628964958336337088058824433380317672788113913987192014923980694582889769641752783677202814102448399216420511403209261648662823999737427779650709499031457420264093000411224943838904873596540165573660313889317588617073065325357143625621198774153671795026516609254910185386367520450842602171532987737151450907418804518532741286557652025774902507519941904083635860555764354900933503405435088940764979644943118845566753252146770391322272676604611159593656352269991610171951114882168239584810685621827587109794882970865315543367618686046420986934798039351935474837921355730559291894835180966426275519704742952660498537920165751126427236125951562798071114007326993431102520198234646003324023212694823016346866400076715907025808877333389851964573786557671202565632028168679978914203600424185988719662506194082647123089500363012346354451680819895458925622935958694104214660268978568430274328566254390408578294202763788183451997735173654950959602062121758142188656105183536038779026896493315609242888323943833146645433026695519734660290620698160298376614909056587328570833209087201077005702967817040595047829137959519154211955902053658272709409449421470067921252407636484516921678957179134040575339961947408729124556071744308150527826946718918499966588891842449502457107356287313469314940060176429548419067734592997367140422200535904036591775038904968325837616903427726882649609262156540258686232983498252061499462112396127871475339274887988479558539317849776432469704197241855676640162589594898771062695444420270108549397878065606050773025605438832335330689141952947077622150468868450295865787239099086037151013769805151913693552847523269444010006055114558054146616091859011144105061601303181650191531139875455033430162439971521656976915275346247240865241836974723916459511864219812704258782020389793836581667173346702084514387032628129288531343643797509306370767696077759064218835521668075600481831858320575967860288714359137826283194316253173815866420928088768551763269895405810949848631755274036958615777690150587618547090330508940397373399617406697588207471292035840240378597174425602171079732508939292275592512463082379242859778931607425374923528747867393534209158955578187034116874730027762995257496621281350686157979188559695865476313370488981060591805089883357842564402704133948731075814914083017335150908322019920704587389383573764547169487949813061354251717797207669914040999150398712475035851593485107662145541131431470103845475482521775394389031264202432808791744283094458734603786004969390644112513554039831787470030784023027394660959559615650694893068576116951858750974916017164105537667236909454629578584696316752695980715217971362621185241599946607155230365990581435045853778607107935547355019422007974124971494593139102820992122504969469314830366111439794672233803095564165103926028287241403031362141983067523454139903854708859064178555153145600807408574967022839392725750149324227072484341153782554122799283348064108647162865061766452522924955662405122882409380256625599691809606650406883771534476649275488473953328491525016819913560654709354027672256884523129684468184408171999637606798808672355435900622963965639818605863016212658227013811358607335764148981650968046597920664083382814364742630539431172584665544825289355917619243847968978970948935872518455797706258074665618528672016406255880817453016142147057229580515535972625081739216620563881424351462135284878205437468185777899197837366040620849959376450484745342882492843166193892994908954380724451920478004296521707155905550994303054125542966619080605215672162608429420682496996379976025113229218993603118150594193419701954824445138951588504223893294044795788777404298429713934863662582218596615907063403624335291982506866595057527753329864543348971011770639430989870130307445438079672449783170987411189028275579177716925177064272105147704514625891680343257631332661301527515178560964224462067405973483942788955995391869316451189149712881606836206748537688063612514848716272032830927891920411296517309127870007347822012746370225858297290190140051972966580094017142281116249866971190222032761602241514431032288831107011649755986661666436899299503726203109201374400595640096103326564747146253495787446576124625162232787164447866482602390829844431140844699989715840282376574924517367316774176229467685127380168877475312390521741335369688693859182806958428966760888598312434242994990488647828321377636880994349101828632929420023998865010111671201681656430314739244118309295011993785748752866979196657509586708931213486409561204564412153672974754548803755109426493092792527369356216742757113129102408165053025678423335778116852190777095779896710500926489432965329370489001409564219275339923401793361460977951494093450670355094350481768690886010860496520069745469762500628220248919599878142585071426272825567224110099014702507890444702558583716007721252844111106253898782733846304156512619457389535233654625488880656161961142194225266594723197228512555347653862335285064266296684992186142442844653071352684319742893169711333041526227835751833054738325378403850314413273544693984644589021697749232056076108100330248758683150290741918245843238847789348582450613714814891274456526481388052478188626774724318861467538346742312176419709901304225243679503801437256588384987731869095543261358359400157826460355417059916152011857039595737207751989205887455704211074358993898848617770816892490731229869140718762658805261642533115167033394306726055267157387265994255130763555238007288829585963018508891732067936539794661682621463986822736422189336551049964530734480007637599130993509466190401972944086263485251905866893000374588182674997678819040922491633770248513391839542630644387854173243197395966894479874603817198272971768815853483334630679029266351594958195856154402902063749055679292358590583829984829133242149785716876120490675720302652262144273325623518673523871448171998809455922183887494821227878496049467255417966248993008089037090361644403910848070245745594121045946810182993788639564645209141566263249252479545094398716383829791364267440159044745076054158700383664364379835540862607404557817915531411742073118518708272489676672013651336714967065016765625874824713979834729796717005325926990761383060120781182006710072629538008169810835551252622624731319702772110401377566430149284488424505670012627617862877519472625109758804813614919426247282457636961291182912205725596522689639568159812343948715959611391442662837196205216254702462574780848918594474995486823785362444026902038684170032537369161670199757083280853245149605681085804386941418989585022715669989901382225493799781667676727304946363660277743720021897639063817015732854736352420272942919919401390633280629564840696436935991914648809774319498802388885025206648625237698401697523624740673484299743083395809967953579869277970274045381666170688911286732305357378405312157967494672600932360409194584181521509076833703750461417111586379313572420077172973353288338477605276371824238723252465652758483340596227498325104088730977416516867110270669352785805741857520799871364482956606110967310330123943084022504531091559023850034533202372759935995504634977929079762799729248786631287899610524201738149526318151068397092976645746365280968990414226976391450843086932266003991452815416711321374488840828598060172417132426225819321382442369177869237028947302974146235553053702855387829347070662011910646094198157291887080199177351572889277945696615324402086728369075766802950148320149948055051180964587324840203440461863490258696239213940293223448519693172606513855777890404551187487710689802084308555942217989002599676318600705667152656750883401665199220860833759920084218955994617222751133400548435386696090285781109160178184563883880341352648066959602560726581396776701671102089939481352540292409075398331677211052972241571226113132213635241567858433416840214371505120222304888371585724301402650789169221816306436696599551180136623713024080290347310442736705289835842788418886150481325597652932394703819288800520020103694297244409337707621476101770367735887059534473100141578234229372448469938113000212891598131022961458581671048498662194590756480067164771895759617225915764750524795486141222245959408766531208958897991908750727410433864408056339731180031197205731615328547403770079597195121104847211106558387468985818022798258850862581086569550806919897712316338825485791142879412463105348472692581697957895645607368085516737865616017034763964898062929663119594840378769248696730283659875217829819260107335079813908260616295964549995223097339867051220980313597919080343966863652190699599972597321198568437706174960851525751714025174533802209503331726296420545750204713711460383853056188574146110989168361323851466118771628965510361849397973093067245652348932745173592509458057149128639903771469130081059042653419312077351742345158153774956890218594866998338363279576190588980070154928605997755817593386131773350516154259000242867420872466641172002194650312387584431528310623665565690652530268853141828050571723898963368014368342319987153127836505329249921907247065658833090120637314148014714037671241629016770514902606941553947722667845560840229096049970331055202253076600976683797422410862796536570131538314329872091410402710416066934171814549016387243819540365777543621915323193977997292022822978643800605043073900348267052363482172790141329248034356362436132462212344254440405747067122269118549733378939215890871116142301067543439092828202574498417616323891594152790066254158407805576828836965415981916903444990463932828685956984428331410073020243545306360111055165479929430898477441974938834664799717105013481778214954716472390219949375072914280590992330939652297971533678064072126288312171556368957198541528408554477438654654034427936426985608451900169752198845947155267467804859310557287174527561946215394403907056853460824085917286965392550479159462675468329432618190392766123956395974261599143126113232003330841222075895645309368888978554796467273162297256469981174707633517656381050909217824857991872741871766012596886800942676881122186932558193271578538859305056542361858885631920791824214956358321769134709886670189657208629670734940094986348789412311039486151403814633270695331876940957558381844016295721073723241271690025704303961385297082804994875354526301459218547347311013081210348522865203922139224108373331133517224354752015544373570236238684975161259802485782469112384735098007966134099704104747796008063846991539895205461464441154977819276927878717856402812311961801380466343645163876785188057283029513249357896601259582779903297923594652909879063798156045682293510721365214931627608978274081596494650425110885073792499966266873508655521158269377661656533063648698107248917872997015521924977254461470139566836656198681323884525564269032348001249259225881329344790074881955391621866380722519398607615008644705109649571388254420132159678211222115581127212863657250275176412303567218050686234634133216478600389639451239784407078547601837305331368959276499482979485407548067867069789452739901463836805300085635036371821363140289947012733393585635071800360037717678746344870032948285786954749811367544921993899340354434327499124326216878797257091856666938557974691800578416649623560307272445583209477994452999559030107919468586985040845881858650523154136477628492245306399174337318521875551650571196209722722403510082193643890584548022191180486327538986781586117613927769445736514593248686950186004139571999452122256094912076993171254147872186223848745383669180762742811703603537801397177720253860457902916971467992787716619475794140863576353448440982079757257011490646264568470455726392530795824063397351397297795722334002376668394596513676931519227683837557724126570596922867032154840088408924098383960601683939142930222990890529721455683425385121539036579766269213074876547110222323892008667327647486417047676139982598164516520139214709386023990095252604647784959512010901009203099608339915966914437060680876378181649459573526655883698098017857428381316608102452584484541338742321731007414900487739095631923491910545947559857554057576305553145716634749956985502619421913897383135107169869568668822199342914294483371828385580355282160785521512276723046507197468777651919874834133072807806729204177064449861786543021694064611092390154047554352748471768125427271526729186226425378746970830970361331857712069877632354238579474070914390378227596582890369941438933484980748309815647703165161444576256015615010070486793870824035742933880723110833362822359773938374642481544712581911874329080653263624180963985432032962200323752402269198071193619701668292640715447376978300384151068669880898386509838881209673143706807715054493876608648802492709542095455940843600569722223182545131109076611541015612720734324188166654198622313325137259304076969309778402697876958844646847448120408176150416426921896025720323452340733152474841997211746602825283821117970491431316723416456844401324825259402860048300735430678507417433948456373220689450675681314249282656369394927388715332385011601797175299022140169584012328949549371148414848343838645019750043631255368857479942818961093035925445218619466260862338823864341903488630127840749588459873640266983403685535624112593960258454074798811023926006090932504182669072067941628890149998371211737954038571504647738085605235730633893872414472873557158299372784803485419560966734194120324501831452209810563945070554744666790334249949679164542882152229513312902341147188939897139085674440109018246169247667587872791467531812031477155964475168131574822659692675822265727798979890249639744850152197960745658470061733971533202879168852347542439098498591751440132445424237386469883188898273446559950743569838349819274367762362386576791906894115951104916146423078592286335279529719715874858250233922814240754404517177400569005019226582190824394309165868545243911096059149669564666436556166583182159912508900731126851878893176703233307247085153467019217527533094044897617998903804402636610992263831297180757755028672840489630257184793555380815212314001557881652663573327108392966094581617571142441059771001686079908765060413264414345880697686219506774330004995315951886890121947497021698306977342654173411184748084343097628185380972110032114400391268572718103566022947417050343570170487437030537619018380865039035289911301868081725181895265306681620985639072186704997196299060619268471325449101573771409458228572560112879619109476137150410493129001722078897219860864854861895363924096824961747546870475883717367272599740590228341270721981487885327525551916343603508433598884885856540378368893569901069077718387738672725321512015994686670777084302502831130672676270269073251036278858573393469322676775248207624179349203484007391834689278444668583252717273219483700008864924131733073497694032568377876120033794865293636955168371515791852360340255138094096255766882941981309376485312748021685329981660636389084327928839844290926153847924706017083057497214344983176429795054049610972813052359537809644355663081616726186388619105901067769806875871217627945027535792112249246822153883670170893903146253364599765020510137682471017611014676460466478045876413143281583281313740166216558470217586994906186101520606851807073153861182755553265770262176237826157965462519319756312199956611473554905629467300180320255855953647096004419163908592124517036941891686066286980739477421148151208034506191064351418238283024649229889450354755027249313995874994362204439319608131534621025804960907866525476206603398177779138675804548109118883666965896346296778191202600865011442896726514149026692702623312438231808102322393237211607390699439971072321574232440877286051799264688051589469626018443964661332162382387661070131527654149261381640678599205210616079791159425668713480350095368173111443068068437114220589572831554501630510832442639114361978424185870535618998717188460270057660439453210360190958334930152933869105766200184251925205928780578684726551152542305013049358346330231478229437255359715903515774923211676094769723481859193157749209370106679282545528462691802285782875294037825234891538774644256062458738477078392802379760034658654932411402876066199921857099737504054658585689527960102500142364843896923586335443573834147845878112315482989047771694572971350156023530906552889102124884784932660786562627098195027955150569860601233137805703741184047271158965193675441494920301486250709600037892073468170277118269529753580989582696539337366861449866356401444330101156767415959383979538993209294934141608895680500030639553326662107455339960327687334724875144371737419357934775917629203170724567607637961860177766673013697775926228243752086254944338944135562856802482037532412263371084039783147137768088239925868762966485104457671719226907803682539303993794820118595330250261354602822569772418143849340719495379085151066502205407635900395734179486307475950685680774644747526315170294473020488463683864308972118204962003553968839807641151362544546035889704967821917537726920604690653260237293025315847548038984068740931949655005718995382653190872877413675653380426120082763913388096269093613477615066056513106185370090235998472971618971474771059834954142012013644063252058333855010392806839943705676532024581403244541930296879626109939031679816202099125079481184588096012700681481210042797306106440891049771216934820410946295526060560750250336453332252289785740382523091251467255949690447967301667150522459751507656512656303279299239095240825728762194468847014886819031693351025923972546309354681049171512486040450963148544615826146964921560827167486437486716817887359534567727485125507715202085136016570786681193227423273925496863609926272176966645509899125341842059147847398625157497342357039172199254141322668403138963916522297552118272888793991456906111258978332571584049640778913085785312775205932453925857124414594948461878750685121530739100067868896109546650202523144232584674058951718520002035793578601210117566656527480329613149845872436753915694341208429983637110185700873059882325566888514003437831164210080088943337426948561311044196579349457500372721774714811759143965487883561070292183446012995254633298776097600931938607820863848813009343936759284658373274714932559368914965046662924762327486537530747988681960514229349255444476966275477413336509316645523427420023975881793334147129740301118313924796010158720167997609017880204302978879887445370230237042793239679387251548665280528406011885089147742651886247288797506398154888641116652656954247519508223570095570382873471364760807303273939244271686200462151495661326464328948315179727401663439774085781872534289033223664676457728854258495512552767755882615297242550315968584046877978539362626780483959751088029475499238912257437772491773878731128102860986396139035582955410173021887194602346195913586824463261049395156806080636782147645072570677399726083569610333956077474659505658121942530443267204717154321355299379851932323815680839358105854779722454743853899345578593410469668235622368872138389052263394440687826150286476254149869624579758202181909252127157302738179832401306942975522910331480430241929337987270232979016969624528190855190600611846891210872880757686828865087375902297420922857692861418368505592089668930564792009302322018431233636916888187172776763036408383427743107050710040996962792669003902043140024594210611191717211671954421241639048970707722545104756782462249033582076306511543473599568386017935706597257739640038436097187611786967929105197608279228589456510948320985683817779880899886470830426698282460394825827363955304897131961801165297186326281854839088038801931763629246903457755603384816409457405810803719990924434107321149405185568467515005175286865156508289684325610237594794255090629088202738546535206855069720382816671958316255603170058500755625024664229940890451354780949780278450187847296978802540388446133929972835185837736498445171087274145637498468947978581055809249852050166380936532047462975280676246154808151068259763364391929292382837486035658711839364923389142132834259532524875353790434705152115237381084582640092788397780587836191912582258393295773115488490409481761858848511636030854489794487483700070411655783480694223418165819084398847905785915638637684391007740331538641370606909468025616555269241229840712477014990225848715046645545627270175990397393564468347441886263359005908844101311588455793600385753835791936611429276298023251587543467191616517544620883924257346303610740159377579647935875244027879545288126444518312752583278287331310975643123776212894472909612334831586288650187916937249549356747415900079433584329608916762791124733532695953725420270199867906940702430088638029495327261255108265198138736041437927975838679920721188924984983082440738522713537191430173526095299664449012676099484909844556254925598257988345253102852949920646088815749332770135200760958203106690741710478741433186258293386331821931438174994354399442536780831606222304696608709831576033438865821645547417720207147935231482032816832727457109252038109966496999465121068071827912155784503214273460408200936065216037907000072370920153151671272012728144998860999446497325432646181647810181551762028093708067608241240686750133064066492307021623046749007990270803256382752151150727080991635519833976267723626620095468140966332013143691969371816684506489285920964680835026311526712163051021529824304971722924622208978785201501463865537058338649331256340167886182694836212386361862308763192771415347999076125039737142647930634264220991500521758104519095114820994512666723151748599701479774514007704800924466743767213333294414500146006286563606815428077110375945638321190639003350356689637363893583183015872939062512038390383654193039215094294686455689538092545122266444933398243356624650888321331183778958655986301685639766693138948036062467995070483961186918009984615488599204829406230049001610856472382926139531469999389285656728185041917468856293331694556582847612030669946997266302031246644707490633306934069843786585775723049875450996581113257457114716326058396635323597749094939050438148890300454636524043280337706369897671855584510239443082955032019353516027118468812927223811820852626231904448010422113445922713215486975673969523185324281603479485579309746868264693489901483669052807694243075842037635731926938330893419020587777638695896528709978941592602938873099948087667605927892376961974312695544665189178587443979731767662402188408072729506901281462956414789221050219622253597842174394412561558158740250156004089948282629822539451298668780738785659867890417042962250603206479487755202692401400379201103802181026732282447923120130308316974221269578732357028541913828339236488177338986711265348847789891994211291693948060880866811543911443403724578320422760463657266469221708602980029730558898023929010740195349987156583685582361552869334552913703660777503998193355841400174482987411147336503011108937035827427358997925976350737925461147798368031230540888620518033380219682679873914655085294753187253791982647538333668254351050350661764683942193222281053843350053193427159438450127097133366501631865593064309768391188761366784903026342584969561600654339649547586746305272916973683722048593667320644906045218931370037537287225968275048552894314982130714168374237076328804259423107695979568871117933027955968891330899404313613443693416664088462519512462671414002792463043366990297765843684106007270092533580610554990975391061049977668154519275822944003889812536445826649958799251225777437972262802940425271100050340949218428447153655873074632487019531925949124359716739110755670256106349925131695723772297209012809196854191216154699566074945505831207399047068272025142630343180759312954757374045282421026669733684465490829078919698341834526052273988205786198154292524691577038539741492466356023586606269632972664572814336835757558485205580129812752081318532450161954746401972337250455962887839700800371692836579569535303091544458676833657426197253967837109709983391392672775748879273870024925325549437095000743952468201925128381445905805955324163865127951920504736108317149504262185360579042055247213987891884719895258496423500841257949312852326087484741735946016795575312513204321389675138638975564422028208907658650215479978527265452660039410787057087548284290395735048558703063289192964917820679323497453611812750934787331365421775411028223223030227905574810683748057613825591847819124184221560289553477004410354921615527396206834633906929716011028668922316732528126530645698709921946178544780423919497294296972875121142056547134371120750717308280120051615860031201361902354232854807938267044801901859814274310110651146918137610904378039021747508605146990380450986655193822450774843633140597402345329092428821519590057631297030787957311534268843212163365290006279438739171172995863165218144021656411473937016030775416058570335274637170604425227435265908582987380097584860690709576548049100765243453851333423113801439814421177038735947864042697764425236900335976925671016317076508917244660231368739394371065701987622422227913381570035179601090692973047930325771728305681015052050238941336758063622159970910786976783815471047371676225124461024738473104702109584249978104621468480832047091477573533592561748707507943271237537519376579918241498697459990214785262559680050681225128986789594457989193769529003010665643575244914295865618924549090395058519608904419538442237446079402952764360882632108126475576565012740277105450245713528381765864627925350903139369300851673701071265096705429030187012169274965320488549079039509151283251039381337685559693113732090822309604723422135204046944540776808034801033948400954180916888475251118679924017818990282958074012957732947268066649690491270602435945447824135909231088733283831169321209885915191196798159604741130979020302189579294707083734899237528475664617364674733449323578060076057433450994852567141258901162266808292305286443466492780567856415883600100692445052243191841064443349066038634404905789851099848605436122964876289600972025657742878649557155059673335126190070792315328600340053101610899832455695328027596836671510919677036051819720904979325185038558025645892931895316999646197306556235351461603859738099269630261840573490999215788020291972068650858226628276787382683699325056127899632868377751455776522258937509067639659930954329583163733559360267733456782229857344469508331740600065563882024994176080389660966011747988046804394709746912483214297005202159780661712584989639927244610199987342727959565335995630433156924708450191958637145941448496819104663305565119127675803382428086034584658777118150045915777713771925045743256739111546443007843214913978264720741769321396736650739788760658284689833679847740320766350808027363511110694983216927975572503769484617291937672469696133399496652768960757436229323818436895274379806594799278526818866394118072957575221153359428854137293565009479747702173127794036986799230399534151045633203579993981660252417895955502100997129691628405210104467816090551439344904626368332461446597915767177799184003358777401395316397102021602329893153941965145945442076097163943885059022206325570058546738045155095079871611457632878736032466324809426055972621153441218488040359271924603564324334462596141344974725094600552526387733447508144929935586454186322577795582319936694038688432333531886428787925297056122810668153647803681251606891621923504346963573815600984309505615444873313732033990301970204655683273661665277580954269064363979994172854319055288625177574259669707918014578308124637326399680867270102247014443179582941498327834847597974228565412702992443996434029985661185087647963067419878730628940913781506228687394948666989071636853774569642473192313098903730818091161677881019541773957018818397115908248495677417911143220538719143636542904437990550110647885948621510777575567415590998211008215200470245041644026952377658661436094155013704927848481674460246610216186539241336558913997667417309935486694145983402148213531663868554382648249520645121002955583591791403573143002779174586097540328875703700464323393030694629454228449778066612233196486740792700783477627671541778973821814661196048382581228071705660309658991496880797434992289265092106364826517771020748637197418892497278551969320581630128423058240087123687132068626677421190084467502012112735540841671021310072524333549149737246907471745815596340360985341711823603213884847313454917062408452957790001496718623083820023272771245481781237953132959719141233098877933237043799025574423976748486798363377927342757807344091405012007000334176909676057413644846762621563204926654325710611093643520088546900495927757017740360038748974517171484659268787858171814190363267127693833319185108803559893554753505829192755824515202460243112039305911209478038196257564200788350744783234368464497304796944467432847051630413760471423606823448109033732925625302998662776566441369155886199462465955605132829728126991442944068401281230612369017271033036768978210706453361786062918670401870846657566717078893957336093858225817043960310633978872568820156980025151761844725941981070744656562215634934174488723544883540935662557338126311371973918885613303969538417911458688210009603148772797872697878766120646649274791113275809394569513920004084191906782245917620275986513354665617180489981634771935356046330990119602424309351036393029417146953464574515401658112450237717498153499888498204528578633832405388483351701017199362676711122553650769001741307216930252914047542312298078827319032731494017093552604634637073148183608294424645058886830511714527008297552901398182108698678624642744492372699084594255947624502431950692980682265772615952791325519282143954706377207698722266556761447343038361484957087960474910178380945147924068192603168671923964063926649692945714477017083728665187113878543792790420497455074584203251183455424990739059624857911079094606226409400188972725958587684135506306082531173753527778442862800924583132883167765977375674325666170011368086673321181589167161556098013667487161562559331306128016418051974758469658639696064269011389831955021730635290994426185736824990857230197434759037191053406755250490106843038875996971211671985609405524156161200732705021612667464610415876973396518473722367582427771370111631920406220169652090330567430479809567991935359655599896233443301295679991220505322007111832491042106087797604586316758627930054080597595020265721877692743288412091324324180987302887836191828904536183179461987525558799636858702129693606061534291622227128124095919111397860284912783608075356136492458162284980594053168238501343313041805118583074946694264994760280093134040995932391303285134906073518972116580961755591636890893331363409563638753918770702129780278736643694983497571337106059942268608919480501322889855724592708867122636322026302360086128245641304372597111191198765474783261795112756074444573474310369384265618710029421410099507763086664924837705493591042727063681614589696984164827230862231766603425521884004791884985671334744059611422201425360318026055089329337174989534302196205209570256241863090348634783341390201286713963485204208274305230243527484082835869779671377532247810643230015886222848575442071385965097100624049678634300283420497251243226954698250167963019191437969312817675933483306857715517392626341318988052274863571997019013145391428599409949878418492718158285047179613238203582009603662920154887139458326375629891090273706140446422348677995633451901285760827609390407554365436691960740495761627341981528846547080967997560274692133986454006516880245545727084287822403356818017691789864045190025054067485752427121126525643255687749291286681394975622747593145610130577470443353145789230007805934997247154351469372298457120810765576766401811582162127226645905691727219344211341029970917122980718393667782950345920805533152669498916329480189752905571362666094623456143383098870085972776564261940165100773796029247686740573559065923670253305600422354660134187134446355797310129106983227293108093657080740281532528968120999659639119325757357942657671759457334356597339020488984271163612574147326332151839461151352044117063215700510156526964311897031571444941937418525625184038277220322044959255824082659870578776312349283884585352645547802112253515698428791173735041960008731263505568505279601433241887779987674686794193495510843294891127188411692956410234854766907901310520511188104821199160949605351337231332046405189154806697338435756844409074398903755751286900141693462676595333667743154046018521359583240415612960237032519094172894556155245946234849939843600275119293934969908603246233778015429044990080200066584587239073073984973975585633499983464296269513030534815363616912082690809355372234753821291388193908420041650106360497398365941503482973633268899726385121311031195084437200243535655387906736575030028978374178210936613098775130155845131212169305994027928903611937418116745185197514709055786235057364494668755986433842498542975740629528387529330168105400189645280338077668978923462336227216380621496918479040344190750582575643530975854387438634797556796945944555410405920377462628673201799403492969153160085202985762949111537393741520068567394052009890363985893886321656476713026736069362623326213271237532918378181128030540015969617213874360221541330666891821237906915174572414018285927112890584958405698374169816511869855991035064828790667014083064007224671898512264077032036637548998382982585521030259332062237731162554851600222931980147382485547511342875505128234781586049380478804518704509639145144908660850241726611366084152802060933018233516245853217006447244958703400129074227295797168710956642256876408599459145578597144020023076426545847946166106848988677573138348777981406914592855250099825060738785698410438412373182510832922304166738118341112477969982055994767032426339379542802708840404064886192007603330264733474531075533460702181009305998650693213192701475153904472006379008341229420298012245431676496942670946382411385305750775472665974283835909063287184161673107264734332171690184446329731279470191761613086633155000373199784347071789010064091931088742786691577563806953818526440437517862975928663338724993485239896019591512950570309817860122496760704096832990325640120819190640118806621209033080250733241742633343629374769356393619785767965473630342467383702604650455716012438031439317544248105131759843588886678525553224923051330586907884234941725937285100058059917947692013663491143003151723511835880868815778670949816936767980302744638274024736457114038513383489366929824991645870681190868890518108669386269315925140550721762786890480432544432846604761004119341420922786402068197345300790701161772917743264306484156017367466444498304783950510013633249968628914375053752643678265181137793392301174299492869587676007674823389008776309672649583058959509507407670085365066248245918528120382792470759333293836259363661752426321709123130746775427478653790916514932856452391643614722615849672868752103945315556801698678466593514331394492323129205216146398879119766942386250894429173383072169134918704701492735301920537033206256026298383882692380322312915245006325595254804129896691437897092607263134471069763284629636837182977299957974821118281502429749313000012850082514263851123516129133950520699458583669424968947459170258270121996102240496683764430872586994215459400443108445528688495654111132202988952974707242785812929648099564959988752779387448206072729740902814326495142167005593854720538355079508793395925692028990623929846752775985462949902991688678776667200718497129282253252455332818392921055292959784813502096368850008594638862404230278833564693998170320084490374537111825192326404348933083681401539093016126023447293797895535612125816488706819853031849822052562071070819232948252817177371737490493372254964791625189606185197798212412237840100058410799673238494275237572366646489651722362726344010729359867982305993208089240316344450910644079022202677188124377047470177106440304007723470088847509935355942998572908181274653105385363026187418681350394661398567321395423931554884121842347631503078417854218157244373533942579799553765046021776348880252907666889243815670359503090772230326357557660524324853663736736804350484737073985674099146733886752940471609715562850186693161021103293631191052910089192157938144340097821806518474816109877332417520232991374046112069677102475514279349926568768940662685306252697484091660492206475844916463225262103151729162283176531911226426774804327539484582465152633995876718742637351193300333660362838100277673615104547379963786616757198780323175948545398718106412250343839855042624651601156762748768796031570108944917229280010440035168957465123104978274086449162696784251657418995926570434589770693021789821474528316041915918719577308673131834325689378246994086253844362006728622441613143002435924375526143783463999516160628146411152688787114844117512126803441704610251711190998196678302118545546756250160966992392533499088986372180029157556736267980448645405551629099837905477057031406014430554605770736748183445719178884460447916662905604789076527528547527983388727971391208648792645643918499906860650554705314724114865709387650768864142295326524116724374200234879392191443393191198553732989663725321055859390043962706402436138366537045468115304653514620621258847871190703116664668749525238227314675294908147189744957884458804027346447139458083979337759335188988059893049121143843579445187897932302987148878216032718225039006885858452113578646981587861962682885979781300448852515008304914963763185846883534252838898990171859503985621800763806261731580537754069067835689747695684508523816723237336605794749929888710244225262744433291378999738705246597730993228872169355599201950283215137077249635215785665844423499550913654410766082942369686199582701353325439040384830979898656234706706515641662350751412120229552084516953725323983465691383813127889769013475728322552419925158495123332463647422670172214460084511645794371757853435036310983658173727267303276360010738338429693632341742189172555591581720369366566315296719793434379063998261888351554024895846904954887370670393899016902272376493746290865600085427883411597461804433257716846048053003726140685111518057775388854206722416278886668379209455471355612631163726352963971213926828566652571658319939704980148653778926728449037382629668450537919812505959860506120057673211131391572982227639611765154653604435561882805291102583717053533654891250839667612310467545621938758516035895825884057463131027321815607846701842707709446807316613687635390362500136106965054669612112914766887674570511641460140737201923162646519158689393762237803190918834732664548688218264972311433396852067264525880589096430703427259656818354859706859071006452350821265086261466609628552225303555887521050047292337163056794743228955588695039729401007929824221535007302722526748812748073340850859482556133678237612260428287867762493222723263027891312227298746801652190982057693418887425936955563836275050360289444317390026265732801579303019616781089007132723850950303717221270091332417029275308839068109681563364352295085660972548999101668153753843561309691175769730396674184137422840768261412448534783182348617166957263066940734181738826296511820694714426237751251435710903701042250802834284886136192888022669253215759883274509454349953092379974888065886803805730660137386561034676612882986630460838808783616165440047466959980218279643146990419380379153784675637114790264555136732686612832889697628138438055940039484880299402094036963479382890910748945317643016030059478456149608220633942821935697609926441204498813709692084094612564471187852540525829978882894768855411950831874737107742084600266971732680805840501206995696755402955274064000965446535293363026411254595252834218771999518516521836874508363471729605801419240200001723170396107520683065784743785424030788322164857555699711307000269272649025661320319037808856602249298601744155116180442495970709789001496559418182845869773266462123669093210207143229285518051979084378005703141901090936928990971942755470428485746826368400383525679812420292514058108629627589336722152198057865225642401141536429306002400125139621454165314800820959244942969729030585486474163263013700860328563596816103838227252452108233136538893491161294029193507322042032921669372261810239961797617434224418856992743597609971925002939882220455108063875211841946716367108155641020710609426808179541980363810419940596020284438694881988816922083633519578284509701857717307632059224026280764397491780141661367622361381811882746163449007425566219464945104369256492836357372782773542374099985544229497149395565790572232470310065403055121051377637438195218723846803526336287504966159062063925215916409794428041700102437458530005259836240600494665573446991636486626592626758300806461077752909312336614747560435363950181051409279125212553273924836481502353206573092859329420041581532278318436418221415867971058887435896837604819132852375884686917363909371279916391562685738146205572943010041306819024476263810587579428192862783976387460702793086657297805248314447103037270657041633611554174881375811763823969030419425942699654117240419494055475488105876389053872234883615654905240489666099049288456060663032399819757509426262017306129958888337565620618043413461164649158583291671022467794129392869145980264573465334463918235101227651314795847753248717509404293073443910157025238607109301020938262204125114630624851074820176421327501264272032599502995527308710160233989884051419683023326403184344536494562458614857893212199513649712504543760231075008071049243924528041373102789783683060083065795023622483629528909328197740135399909491966681281834100406051389796388200341511507787744782869154837136675857721429969612264264560059464978147656009367938449603889644434716893722107944873628149325226849367105049422215540402551710171752067176296526521138335734360000968281265255707761265107969576344562696195543028467929379385711004136662493764590906034376524378755092358780074668779902375938576046821420714319799684585200657600910325719602673352757727912672812827886585317865362937116707924147723712060287520939036274015956105942782478382612898829462197205933736694125214282173436044442029837831465361763027136178171998220570437739011629618487606954125345649442408116061634740066903731636319234609814801585363567715039789031820690709360078112660552195939299751525008947771653017361930576227689247734180341472362936303366622473896999657105117192662184068342973816864666619100432425841641156413668270718629598671598188179734947072691028550394923401619006297422390183239901368994290860154036685381514320841804842095840396978608829174788263090512012857507529124015118510277839872927021392884728734669863159168289658002613653299399123503912281492952237629614651457051712510410734499234901711114084842180275040018850706113364229235391187093806717850222693072870196005318599696668647986441066487280998040992209070408504265151109495780106491550651015805848751233743032227591089938529399086231259077885258083654274979360943304884377053593867321867217871254202741992289995454917958900222013853257944447092174406220375529975434425499033073560780729378400740795276130476471622031745069408693260829756697460808145325334932688918792805589624582010379400747401973120187470913320278527116630703712192166297687759711609540998721887252527357437920678407227232957581886235368102365464162554566110180164570346346573790122892416896680584697983560788506757731229246865376646689972295353107770761655850534687629568819972564041681999419664174070599287741847057234077442787008963566740278111590140084475605536027415014961931049156625253674620823015094138543566447360965368113067232458948130066926447613039881957642430995342491406737008715371223919435088214954179813822893373113689390524047376887923895709004124839416885039540080735612355455627859934315243804868430729490253481037652741177798571784773941357968737397010215983205117970662336385084702230989816347047550067200810316890479983049219939211143233840804224615128569742514691284461936249374767662083668937959577918220973107810282077689625086998277607295537781488690746094227527216737290472041039582579935554875487978732342964794264775709556329034873434657877787186409435460423133382379277360967275794898604591714060720220248270454263542109286598903373196668120986703394570505194918989344009230968823971142899395166702258239984315333680367605433709269280567383953178262295476657633611057819687245988433915304075962559039619178750969183363641211716479430883232510920658930469326495465602756976157741932121510476120728076813455115155515187736442687245756446166263257795538447718555635524960375905836130860414867823968782426584874377329978410481766200522222888503330181878502253256719755195625502761120163551422327034602664939605412341731486103209622132232768820379189735899271797106266722826228151162707153878275288172199648105061414766373730099324188512413336592909048881160623183645853010273488830556945157289205967665936320719087974696839890955968083169526101224066528594121227308501793435154202481342111426306592498154125355172245432390686682923811778829104293683647866749168070452467762815739160791137457153975145757875193274074266207438696470038425931602050455602244178227772505862958351631393351385204079264380684233226388775596158096119434129286526347038405732929843613060831425547285166028460302371360662000540177906008403097086659163487662841725388314171774171148713799079234143613882700827193763900342795993324637370531628957893810763253616292839800351318235370860471177877311692689058397226206537580484861389637905045996639611964154845913663133788199923075616053881439216729810897691073650933084241936954592026400243923959152494167676450759334125788035632436191465020925390878277486938505484917126485740930339101532667766255789836897302728181508487412801309996387576496415377463994976395167194731936566182351836124705916610816059941157653775928004987836039874462457010198650691527169360408467962365160438991067040971183674843689971010107683591923610491588857343593324273579900455007727435709182333581423504947416995555496045878499910960867846591977013356470373075919606536229366043897671483416716670158752950988607546274000656985797945190071691855921597161408530106055854208371465357816692051781728410795813743509368293640518870265340972994160966417963156553068217991674553487617246597718949297053495303687215465598582959257301772350135010979797617083663882026316628264613647863294790766335410851354342260173492228913211405432683643068588225894268537999674551564647652400962842697796625090832922751784799150795271813333302551456237671730375723696464095903951746625525791444936189280457440725772805744132552423991970154213503493336488194658942309737305717131918813558766988573140437493516453081129354950115628532984333274605009842305103333301339792899158363241811163794862992896309315986108927922826966810094943622364994241862378873932877713452538557405422242616020071936583658669818889245977476466594651850926537912270467784509558222929284677158160865464088732804266554020565508537871577802795380550251582636994049717333439142359382056853022524845983085956721394606444836827796954141786957415718602952549476215162649424802904675153402452523711747847187357016275775004681832566184711222462756987755965947067511292675025725621875441531126709952688301142409713178752675702656959767210615555064151833252181089204378438105139074907163949161406287887735491892557772519156983890149013542010700894721027883748921794898393414309844905809553446052455006184778357979669937936659687028940944515137147341294601620969975672484890130246387488700709670698236273465026080772714250992258908517201995798644375598956861332215625665548424316046024956858896121261487729392285433279727293298241626707337532990599721926574712436787420873403370246550311906481596646375340119732755920522962967012482905246258008146020576222647542966483029918128979383789551411796327606055600668634584006219064762345048737419513167701819739052486555004938128498741567506037792853718224691494872842549008265481247184536322706058733262151292688295522632908120341872242965772546454399353755519719135631092910850411234616346038331094634450526572242288742446291192277536743607724010624023462581593132087564231106798699387075209423237456594763698015049087716036917967013608643397067997827834733413525475121909704991528239572669894976211078866196535791839806980188229266838575237174563743808909435826937085591966360180294096199134773383650507681040158622489733337979958304056017215722987613202548402521719262568905818803977160169490293318642369812562041675859481853791124920328252834991988627890886434717687332568882079255104013083477502229921870908154681701076276708186172881650893693732864049231244157940638538017535511695235876609013870743183589481643836899295184933883939855824587379469717010105839315545679201550078858508217425334881776275348966676029233251594114391987768176061631513967006445460047039508037201047764554531765596129413010952741004744719858365682316104672054993172229402842725297392071061375115052641379041003968736589394117720843652318676255461356357575833751681762236226243942578287819558467416548356220403206981051052394577763170651355669540677584867599673257260171491494059213897304673372217777581741449680025892789412631352281701878437872834973013652078089534620646764543559188013656298058439878797258260136478161397367293767746544531238237755095818213894103298292137603516734909772530896436130499887655302394244306991484948466851444531715885378119948328446222916768750314064200962712292611598209563342833345154103461462901306329944906864639856732011841922436698053211519718081478255493616113512340490155098815532292552657352694665945650996951853396585113587435105598535485533537811359152107888734696872333867788586761327136601208708762495732628439992071180913488230739806931860280312106282785442616151439432261582056936343826753628026771065200949051320945874210566090523509962403431628787296117124400693039245608432693575738790001341269952396335527479906006440474610916095554971490715556195093196523618919603127504717036557345671740254688735758855030836549598966605709967857645824900855337939306279872996040185331400964723985614899224246415130865085612797025047440609135303862591525486216913079851819362844513223465111049454819854988363496200376413570133043876531692367507571216172776375531515627617331350369348179034405023465840280432234612204510860223900247192480476137455580822540848908226617783298826443516008287015897416526641001872242777616400997670853083400420819685825623277097816251982155502836633724656118147953833429755873976700783917890972357533736495539078417152387726689551991123362447980077002564848411786260121337888731764462495504843627443987317166657067682541411220155855019361422697425722250096273182580636662079627979617881041908324007509431846180219432138910426959087448837890812327024648481665160333440434154144930007993573109866611838118938040081475866187745238060437614572705915970326000582952698611593957652533719543250025151730483014966943839487913279853642610496527889488280607175255022682472261570753573021492274689900278072577565188095338311240016812048218302914244167269798260967415085893548243467095303538311658714660166127415847085187134041589672037815578500253439074568530726994395192276626048515573412300065618653626806404816686472729157830457842891332149286385948410203970738348565521968935578112066763879394202548591471792160986803069238433980341731908973473367498453246446135706181651370686120714616228700856716833131906570495531944897207366517624537581084734137866172794361431553977748576802059186502215655761309327539089510444846479727777621411339436938742639699600342950217196164150035992024673118910054934319453071270828151618487023158981767457498560023442135607000516347191797136767007137876199863083869032405222645081720137416862889343735516401668445287717756673072894702967552332030583588743063666393033924308562166150281047135093302430984909867268862074684961950730162042433092097029883533313805091520168985923720588630541317308627848352996842662448971832165584020229394074571921793645108032806292607599418797360599632534786156280138511012835504889156873636754169205014914209224639823752206141894600644771437186938423672369267852071170673659301258104193129532160000184870053423739836484573075578742977117453964997506687946098125614397742204480755985293314317779883564903904850761794736124538422812130850967673468794942042573651752655740846173578774956405897375785159763220722983912460392286045252213116739140719545931269472751788335867061560247067322153270330344874204156062024969749163102247663703803961384392909465773698108753594882982846668993701150830139113325075008544705244675689515093228436328824965769758197706693051085149497738611270793366636256645642744560375722680114730182620357908145665364671728526054258158845898530302555903272089276252443094756019693985100765855206554262221026593967730482916969485095205204573841647343818460281488467426258741169498777351399215112647458875721923495097499749430380322960460186483631431400228587863867824314160940346024296522999057444985252085909356253074559171345196403116089294110520330414681455372583677332368865099901541683117561279187371832680478022832292175882236985585208754074604068479446882639775871058190527284033986167982366425981905665741036119941775231734138624583240617602572836720829407650635206552449775114229595953872597104652704684799540630385007743203251536498786332678528355105498134236708226865992096683191103647318018999734278036415869999089696674886979094338437293610418465000292758710343127581148953345026686957307161442453188421166094791518220326856717628749030904592037034664213135020706874416825099661790971996365754365873593648356364533518902497665613750445649952514744110756709268846217134404664925636434180998835674864984153831817383176977938275351270962785303126701235878735824106874084390727450452375010731205731237745945501853242093317124684801490309611664682044779735649199951537966840661937885378859032987498543760547892157402201016464590834927762552082226377914468109779718996219432551056760771198860535728362408525447939988720509836265564720726646727086795218425621957387095712603358834184536454135759276104924982654812214946327721378021113227750525412105522196139909126401249518947045634418895846149811220198382480782158248930720350927750591912606617994073083636286674692889388607631075303967432676986560693582515362608694561609244286968112401884406941789620408762052376929050924838230822727244983165124515038082620631847720455975383249554906257838521860901545159832196011023693506065373701982658766405808194946604423359148322941230987404409545740513048423865558645998608119603185723323168113838026785569397649047659769965570015310376587670687523694144112890006269096232943114248186182708956575228483139230899201491650100871947377050259941074387200034053636788940809106634717562984379728900585828261842244473867916787430603045006111879537138096816726236266574513524100072729216676392312238049154062963397271832305687732848110879860669846204807183216635319734548888844730628429162134200300098716297417665384950054709525542904520409228210374341511906122357311899459677442380608550441260349404223636277494973128705014927443777071188779209536470714972713213000094062968142414130687896321627597977905513812070273372953764087815319219786522449452307320380469517188291761835589772520590822264950321988118355807189608973215784577700310474624479134148421209235958436392334438363476760865932342833296994943704732561843870977184323167636158465919321704292953085556070170517404282231740090431589336763743123338809161531549712207862604336390680704262212619849800854361901650619060114537493157786756111346909112690204685162851483998326651657836989643278947073364818941584627378167593292997772449345020357759426581738212840333017494240899934198711104806134016938745874458372651477272592511884424335537848730956373764176774128044125672233489801391994784417717971011825945418959869473334603734243311956711754043766623041352402922965537607281159894125430593049594797116760363112421540937654652067535317219096606780428053033777915460317344133578010148881846506333899398994998659648753196481680384282033731984579049078010163403272087096582051599212822041755122553251784687443034496371738948697557677660984204625284451217089564687084813314046086824264729741733788258499462730568449117272175153063980899542781938523433312900531861276410513467670970685736616451182926183379110231641325500889739537115399700924551043009866878773582874071332015264619269932333201889360700280862719938344971211267638873400593460147973361299482356958527910969736718032011574049776322354336433820030899511264581030640702109467985682594164411459216878243501355777640131662819075335725383449855663632509325647746781736154093578758119006034427109152358584861713387110191700953959953178750462554351376535885795745392465388319889832798965023105555752123584554008276430490560391068896212741618925607195689137392203496364835691228727477532554417569848860767292089120998836738219213877766171864684776380784409107383980830034906925462829830787911651833458619666786155117752820330481907030419468557921004457184133516569493856221971010169016848023633256539672360444731303135563624787611648861933818343775144574862541474999171546838326683820338232982441436970760844103941913552826006356361222417851340634022275777458463381334042099456813094315200143456523616681753651003669822041954541268512457798695582089791988835295164425882810926623829574598763353941867444039453684925257148311217356034538123469502414778582890746609888863271857555901637439406930322520970630289811984238056343370611538749136273452717958019790452905092661923528543428060614494033482664483506490812151305869413094436989126438874500578868521265055947621288749453015645976543338892311134613575327475495337801007752292788764337699493758704482692159152626222894659589625110372272375568702186478870362588878191831164570041067901347439303676021387149687312219972426859638983885255077026453511793141062607926916933161001137280181471502233580266778485799063668313145870124038951377746925937270922235601262946983941633099242430012844171557598475274839165770102017426266132957744941018449446608485998790474764828865186556269731083330369648783702055899911674249854208069358077628581508564521076161184809872851766189724362348033341793731076668665520741353812496288777037697817482911221085648553838789427973909720982174897819775092040075563543540790139408932689398514758430520433115187525270583629034306812465943354996606003170548860936411463464610726967858007251652743839663140817475191802846838618919666042447921796958645006472154915765709286772813410975385228455750501527931270432270325347506546175025936717672177135045549984864061961617460829267914037888701606839145269138316348854706312320119306565297745391182781497688026116488291194841884242267718280163649341164622992582081274798365801403992526867966176133469503657527065988577788543209054501330669717250223148351574053983422357567454611702048428462836366781612416070269687836764364416368880916224313079063176971416202678297044027018834317040146089069083632428453157225345046592706360136322466687601203113154259990841046015403672532089198648670968027770217319023622260514832480474083999761483718632462366158041666133083632649940753313738810343733559960710137217140713869910280416271909253224290818448227693935781754133649133907291828104315413502878852237298060951707565973436594702105936499053797730618154339065512493813336663255718588380738368097400646958119611729808513329658466825430367639802569171157550696153295352514138925058075551479010264445606767515861300987248380604845588523777408619752882941165014670680450639879525489028658887448167833961166007068352206743674500529098978910969850656859809069165644475951681189769002256891581606410444554938109971026476781524205508060128944176893297498126688866399740664485198953554144087429374005231518180862977169915353538917025630965605768829554540083172460574030385182347949201970484229065912016715477053036240538666312941877712789372672405606575657341732197140399570096086282568724732892430893155172609036520498847746808100458112783901856992429482642956250383938102450836216504730051751068260033409122032425275940538128841764694758795645352506287947504685264259283619821696670552743951956037175360801596237267403857833350373938427710762685426408823687270813495843302207625951640544623572107163186088930290778967067567641981180376294227648233332293845049125461760420031084250185276679931371719740749673012942142018973983767728677258399939150791512704906262422191286004297734678920467998010174252528154913456645694374296670944324098449855117591861055290194201190073397134270336361783476699048427665949361667803799840436850964223530839272343818623170051676881199940734942053181206771486142691944137379187696295391005382010383203993312220151557252476236525734432351709305600837736905100327416412136366689976003007846092350210392488006570961402047838789179446514272147841373749393911490327256488409832721562173771399216284643382947095341332019444698908621338064651998207948084344220433634832493355402241306567506230246800614608640123369474032897503827130290735746384120730455788227343513585989801270950284330123053053216509560840625870692413538008424595147160483633779738230431016042928467498189958531287461644910075554030095193801135776233659208158366379644293156091040172517012518101196238361471381266412469376432159199258145605251293720617834899724012562383390407897514704128503718853100704984566102828290001097213183872582917648899979939870551258361572524085602952937518856782652651174845169331226280295640823399578992134739241987865194364566183499278114390858809867154701129260064367829334851306128087720987439440205927758847942844531939540185151705231649114894414498601156466728595881912815160729920885913516765773981618243724558741980603597605498130814007500604626860973795044415478827157498747019221034716084683001334436822953367559345684110491524664688060677911647454961113103868008693120335383086659138766481596178398998007782974120168996771416909197027450021909646962951233117706453389347809648127067048829382114090777167438855578892432152391926902081750130002229533162931178384867103670144811352699539817138874209364168480758464603479264540919552258252280983054717767432312093957570635015708930748834183809224616861369080742859541192672085088872670808096753129863629962331527699052945393942199456917201490110671942759735342853114468449471916566905882774672809165186022809892943733795755194443178189786200450506580215809193941993622587813827017231663749276420829113949466257020658000406211884625216259088725269014953737264238524567723560936876131017372334325381016082797073386905048307356521662444323033431947450739492813490098773969495447693862997450486003347188494185170697544345063726852316259501871804191685914190541762513505176346823540774031866839602549918255277504671621427341585061516804631695216648956756369950547994581399162306625394764369260136761042611076732893741091586067736142862271670994576429474361970101820582689561760615027048401329287637134767886776834993281181524977453719708466686881361723805375583696935948302158202021355436686344676548301996905049493208521390132790140591237353712400138219349087092441239140168762336289886613540383712545833199164305144650544277246916236025826560844692360970052040338488425426922137402029101803094785163582891509162475440621343566730739565983923765738720177825218136900098228608334275643594806174710204156334572707679282423284189840262780977776156881241744137089650529185793673575657613496066601687617539527627202820178774529913697751536947087322364482467627826035049377798524180408068607803502502419208474417297095801490766332363598482049773851250961109650305685628622946166592496240881145719724047847024209565104670717455527931049836511936354304218271528338064567258424112834567578312924771428404520669432527504782166344183931369366420096661917341116977691472668413411831269822300555660341447567687554112441705258083015985016366550097355640668776149144082186382038183174862287065673507618670114508715134507355298365414467547900195257838201086112496955075293232419481482470040928009972567041928496235189667949143856049590155049353269209138992643285657169347711198214679099366130834210536933344283395921537500863940067183673267702766644977719534688471498258025036249403609840339490046211115034676985548845882375178343494261409482010298653691949383543872681794961612954020234568144801076932474900706260486643320103091720895167058925953578361775386743936901363724581579356525558051870320142082070590223689708667326708368099151648272274623546676569044522788333096595680745036006261550838548552176110470201321723600807127886357695252194437182721930717085038590408129264185487676680322632585713729934679121968374633450967566356012666607142761536191944645754394163725917286719922220245554108993710120205455773604758726595310401711528439569800679057187309730012736350700923629619374939203990183173433312850849506645197298793879102286667801082697508016976576613128475042028445273243047882772373004779586350467497844486579211148957027054350509020581807912296171929723369767788544148172194166298738228870508646242068229824492748795578477140486927761981340576772574007809268510772497895083416054312663278699895091318466950960733291888938311361851867331721871263236000874819945852300681656918240767834523062590804372904287178856231226170688065542561147983566015984773647959113902233763866624379077079380177480483034128799350888794950124505571856616719382634163117103374602897801098007078080840447656936268659166048884536903525808086605760473215719784383921572081168261230798797562310843758422460284890873312550164007330672572270818657457304377640652841547016673386356961986905950486908006598138548853614746494269700633715784995251926515161152351038662228068644315428516065937642757088343256076761398656028992326934267461704137807008562687077407554893174482705128542384650670462028003769462573582905930649128670970952129244625868659325009621929720712875652417848909156525483059862801284481876790616414134773606917433063552252144345486283737876319590540724129107142569344508733898546828346567134282151264075982505126246351413759892928452079837502773760976035738548480038343743611529628193035036139552568549641315793216356966673304553108925536451298921249068025673297688981136348898445380103548191050547073128986759048241150421704175982824517291072354802507626401092810823344680284713010918528703839503665683572996219602473585960547833557453220642343003653422991946584099670144264142008369065062255058180989858489373696094502368592693405461925459890191448714563134233509164619368647908245735872876472082451498156541377464644360785508401955210137791101618926122691263288426803464463718182051424749475727102222328244792874223093530086476862672712922539623767876394337231556985698700424848048470235508059135784368985931191469032866086010245678783532248444763179440029772485953333585781669320477000084922302285056819508879735538668544263683101599306384527630525377372529161791860786110734955796940163199070345904767438671881140217944665655935239847465294238654100615437138216442283282023948617458411128251780247734966960603417521132979097032890986499094606500282742215636017651806564389484409652116274464501917981545831673538589863039856139361152957451286560251786072123141737471511470150626072288519018125415255798800267431231061864775550400762544213540112651225117864462696345279474617217911401770749366713953936914562228778477856013049978777847872022555133361093601535362909337965956455749117549380392194768316804516125360143358428489185794574863923681429012385491626699176597321054664549290001686860487355857173815772512021696951684661453319574907392055999454216287135809520238078143575021272580008049922004317751414430247154786594891156798714908802876636400239523326349575177969526434684937319405976370748991696708195695531511520930626086189141077193481203450552493542958881447129905953986319938817650687771863460028656204610332266064225400660570212642536361338006289357761553555736754625946189603580952808982819789722725095426850887785402573929493352275454845048936879521468468280193868395225925120537611153880345270718663817122173143881692749488565814116313657693250122548015102667915254035204139432895982736818885334860238054858953122528787128732408590388029611590570937292560233499992661389178806876380212994767923776193232238336660750875937728882687879001181038642799514481461904601243456167963183178520159910304456018413022150389628389644410760677347195011304494922646966708992561326098317957832565973117146000959903417386939194630891019022341709483051678455817369112626649522477922693464194498198945632273170203468162106128191122242315257395885054981085328075470416322178907094373376830147235200982500951503500129348236913573462131908460943258411347474541194770810634545165273238944296503767346651542026341131199333326879917210681161140157536074066826378708914722076179458583115586892635990182539222893960265095451636454749604626511812932362553177636315920628340762715959533825840716881394071602877118471660094168509710610581907021694356408008007922671586738927119859315402397175768888558088618641169373998759517211687773496559298254665969905596205656303417202712317638584799632366424672526820489686615293923333615854579269367257640139409703128423642477461844812447688196465328242849675572639516676271622418688186701158972977675115501777003227666203328153547527457062064942913322998090573226900201302789140124929685573113125881529625832234748932142997579792636633932092275714198659083395767346904435608440077213127068600981744816191519693703910067905637708060728778596105260024658097800037655983271313034778214239325586438004122609407051878930879930909370285347650433601066517440669172709495757639333596708799998662160997439824189630697869656434349527115480503847910395910763303613081261118912301308829530935666892584728779579454545013395132525484384611217839010961430549357296310259603588714096242297241973897461074391208214446275361174537275361441279954979780576149155606542830933291845743982140618648272054658305549674491282378426950658377170284220402841723843279298452233211692131846511658574430931594180664329878099612479016308912922818945246731942378979493713113877762940311234985449767896606010527417568903562521349077041949440392894475252690687584179592422096061149989176448850079329343936309918162559758822970538028500809862961834265551281774077931847038455639112071979459489504172350938323351207486585424442111007778512710689215793569013741187815276771512349572659358206618387641890616538973238994352404971097586617384166497558605688969751802684500664450520082993295509587989361799723027629240201249785054111468797474691737374144414928748000043811529801825555691777148423137818709661114092897717614091724612876748056524115065765575769903597417760422106153895644853106275200599664098016741324145007485923762328164137963004859885275809086770267389674109847551534146115992153384628088419976087815035997183219266083970134914571788442953474250233758661172263727959746922805399149967774320303157080737731908938518321639595710504107899107299962266967637645262327965224682172184050490687008376759656728822508507780703334014012830411393964430172946240622713621461711927604873662943240209833087297560037588304985515818222686478134568819076831445142345651246500078307700819416932920597518877381891421547777847651747638501986624641613893073158499426745912382585061386697059732095123965018492461035255680293285337343713610508742654572807979543336375191803553117180840379068562325844868955782324745622201944571994692302438936931192146552358081092636801001542077289120413579653346850910760324930110853941716851267705849115978007665484856386118937152473267487420742460822214935679953138253208255052503440275970016119759867296797668127807905124660445998409489953253476172667510548875541272229077403916754819386046183726583697780372397207930332111381236436681410964915163948742938672586096310358884780952388121174184989270938448184155571368674939170840651158756069794413905528038818012072730059191469571524159348580545083773321668036974094166164575429372048226727520483973640040337395919447782554963598400828332414217761207341178063651037326853189441502678647400919686616220246735277835168481445022026136659270513231039562851141589321691439677321119917535737954690877310683167374912103788557863042205014931265044726934791091176466654492190622874770832981507978718249683946941127583083432704188585637948230165437318993877310871453609393821108954606093265497908724451278821123223812494682852868436868519101013216876067467244483202508631825002377403332269238526883255673986922174643178455861121041167125632420872296320975170454879095158785441114288662043059756199968229762470677165150923288443417656853307228379607561767792730698884214265272759440436573667859424742641010142295590412021184701858911837260295170017541230028608488196311487803975238140670142369308439181021605504467811800195819801782093325221671702313775739677213752051699786896034440356357416258725486646304322345532244787054285286269053123349497207436119942710631338470466934802275936532028963970034209403740585783226333612950056309048172810795891752878748427354150248904633447664764372981843383311197683012976736306810855168141796808747312012940357001375241041540932728777754974804153911339789333567313585550415945997348564103758619597225373942282181940114999290120057321009640782247952519057208470324839929873753388732330383543705191834118923079543322418827126189685664387798088451881992689222805824065194617752089268517272678111622381919281371863368863997353088735227568282318935289378423019202777235963062017840589427608144238141707134165466988876956486639425460290829077325932303508559432888790087519499926783526782771992391051191228714717703514154314067109646203946230947445033681521685004489732824718441459747275522660145824212850728479869121681284238865945194142456364144464495874776037410144111305516334682229365971583928421068304474180416022728671561124351883408088123403083082514265556590732386494878127610516484909212104381001854320098047391430093864774686756583318764632379090382383391164163512071568835029275851747678374251870510582062180733964315114167492942605794919925641410104930302225849127496344599860952377753824760242715535582233006249054609130397265044752491449150571494078929729978892033940690763610140331072938211084722622413860208104925070065940242408392034914108842119866837859243617219079961640204176861426153496438853424476478972186636916709222838139511915438736299215684728867981843396188031801085693463972027928396216604415489650867793151870736634623802415628020173858972349052307349789299226091930292415047584509776796169561492641140524630377752280596795726418741312091901022383333396770400148651382934019930067588738738200664193263566866299680231630585189623452650829733757469809941252138732817965444761015083689209711395026078386447631979315430881283126786694452803251711517171029872847770586877769498226070299088421416283816075409663505703370673198338555110132017807057094724221742441902817246522213921687441817276010729354573594975092519337359783853990935059066765164347164997881939917175171114707470070652662848909405014009812812444370637423601938110960090435376606847603908886280792742988377137609150917751592915197089625584516266946319124160075518201149327391780336586275304313734853620848328144374001407965822055250574129797443327927942364730312564119008263875717330796604055852247191383236198976454316531039853082791685633707461006722621048306190505773241318550733477253762680442665633118732132395581872510823537783519910142436768930051561920373031635640116219202058372451300045833892331092711221187145158647535852597407098979679918331756926025163607589510654343384718082959873835853099867182074121742839274014425533301871667204251558575247464468205957698684043976333304035529734478067790293179535700998864505760034531459669828189521508822723648748722380253373391111191082061262182720862829256030040571417465221168827850545473487781949210779286003142467626859792620812123250901963018941092165318378283941121415265663865855340529090990332779879714688686846620905195434914142713437794911486655034109724360912164246779198522355914700225266731625806863622002861945501471159392873727115776254893149274482361690758307071843807808280858804087777340194307137629812098659587313245361296476786907395946080005102394006365765432891713781300387209036974242068350753629909531844459696783392956254303579682040433640759593073139261563960753014486571006078265053586311396757673688776935392459793210194430125268185794777055945632377730995420478363056572718932382961391051406439775431991455693471376435063291646457478559743274690069404447009290005655060324041111071416862308816207747032801440879722949553429415668064411587640268819488079823746690467519393707403762831235953963383992032674748153385092374495456462257433743905771606569185378102586903083399539236946529919833956020350528037369305766691029190978565118178807867944285919776226676554175019455793430017898824361057437906692282398846301901716384586232753454261737124316114677313128755526821722268104483137929327165994504872176666637718827189773668073829876441274868054001106538798268449584663476397333760431085519611633388372363749018234771034184013981823342924672251783697052171998782442506751826013740254495299225999196825874921487722499871445800345361654941406389098639094108291162851283179403064762711777179666945816249441280590732208120537932347943643939605449224375570173017846793951919992289415518736266637487758313185978786490884838285662394532459045297596516715523428799524585250341898528562004637980056247457763701483685188459713099878485135010422650389005679542927516451069005205346313465263101912614295307367243630964341618049977764796637761726371635774402653693006903340058819695788848929688688145277325418888008470334051317550335310934936766445779762645988019796267810141731526906674407530665179378830965903831468925123283856649352203541665483916535710495147864721365784254227484459899805445732438102304612061481216456820609166494923226833403682516450176898462368454651433727124116902060764539835281748819510909911562744578291372038863172673785983230897799547807504436583896126706777540964914256058804806588521530841170255079403505917564314620020024971996728470283222980706970755929587386589922398564239636042800153409306485187926085303617470042017785962927484011846738849122933602628240696751422919042689074227670153765588047580077098736698926896400034137283339746451062674074197794431331815814117986228793669956119350802497065082467222518007597147832457404963240499020428743690905590864426597325679094289416078931794017614911114878798545899720290122501654150534706719921193638367187394176067285629694249907460822224602084583624592477968696087799050612661946275423215613053779782223909505559127236602777939281079768367240322133068265472091042265083488847061978718191705622989127217989870203032311409805211517192623096297275357691758325879024701455372812293450485366193562313276687990439908867620299217055676405321434331805924779384890464885142501442229878108008357337393442328772059003832842972519875003112081764789079108816091710476944703936044357808791380683956280973882409467666212093414486034354344459242290267518203398781933021202780929604333835752191561210517817321522745652249992515219392447515840142188436621839940941999153189941118025871282252797371046605436405516461928311101762141918088498551677054199512289145629664391386596664867331869213211401265599622499738662158087081513918885543620699804854281512472711635296224459797888854229721803969957178600437051837142482567547244430123171804450677426819995835753480497818056392495420695357698908591854901082140941655977933149116942560463047975079451075420413825368274988566264081510179379954933953896917647432339477730164725914478998556576149515366237713415828125325117548018198657658623205248767257784913220902774219149920843657761150499172640521406849837671138529996953226067519917753380917093568110659126019593874445876246171687389127954719347357879631956202318974242315756143129081137425467610552400342855740538972311496799282537158746679300686850589239576995757823846736611550650117371811234537405248755903195823295646700623749920586490209624228346134854199048871371150684416387489897785610581381433297828416352864969357794935934987693589151575498447347501858621462011209363479334079217090270587392170481049300454221484420196579263446969316003628590231852277627625004482466034361876319544870114386567630324017723872023005894762755529921513294666247309362327897125855093324967627365516983060401668609357769016393498510861137313159072848722201480576608738560611932458798714273114418383240282387908269828626422659826587372605751146687129387799766393115307630598836960165991079325345282765568526630044797647579790180589243248121616246800901607670158905856685080250562777974278052062044894229527155111377061079848810048591308650382972293420662529440092857706694249533828629058043007971807034059756650337897941650525171596310109966085652209726805790279236996678356465645388241663769256065225468527674973868228534219198578541774698870840107450179371042989867464766226764112878173962046529746437484760604622270178266304011804910673900176489644644958897116699898956739760804744921052913669350368550673103627406310934776902625699371561377713828240259943999511961926611981671352668603182976443289453551562094651612085908949023294809474246037266083576519110189471931383462380452298866341759708132941482295393705861272427159716127409026491542483751017859410802487429073433820470691035461561026905664763153779717642276709009781093947039640142247512981871648449795583574804049320827179530034159217738046271932120354609636183804762140136874191150225970242923654486065444265100521834761754103519349426073445454694208339861606033613274522124160427394952639288888886594903103523627190110164424954274697535771520651190055509721614561636911448661516783805973296804019935528041165934780049394685763839025699273892069356700736445632765946477134498429814766835813257343397613419060632189571132980638743701623977563970555656381664563377389972725562683257746110119238426942682416367040521674803144658952238448726175582622023511177339156743928419347128819147145954316567611380849388071440218503354151092011667902186144160754764142526546252956078027319066548170530466170109150807135563919210157036300902286065846221372090633448557682343017778560176360179446895882139802742869993058937610933257056895346074228111117135057511319393546617254455763597633010978820747304609746196036026841091503252456250786401557811978730498914617262755751398832547643637947432084302492369345613692885228069322156630524054385028024146416876898385796851245757075246737783285679029906270011322190315043707149285548209719570501788606970363857888298984011079434615785565087873824088940185466096764099118888300185690675813804452363371687396168434238085799153677112375943147648186842353097814451140803139942806085904549620087985142751744688736663724742318628900814749824499264139063554198158183407249443414582705893587829656645213023881211115848484908543410867766637757318400980087328273540443646186436381223893432513044926854210949029914502273631978365343728669588843246766665373423314795421466408569226989297593625866837983272177306501170734099251456508024614799410162592949316405198176800509254317377910956240846894059676179159079019368254156328531340508178287036282888702876184138815788504978385278020430333574113666378185432124475823274969555899639054069907536389386230803134712073624353533634961798122960605057039327275557115703833277387422425925572782732178322288839991733642198780213734144330659913944456724991465763818060513024459588087668218445895997236234610938652690146899177739059946380316347232896945672360655021430350947126376245317125763610797268403598554506471091916011840452529068695466364428507551311343363752170162402650652932954927206046942957460327799235728988671353430810504698156195724653845074862284879076859133487678090618483651144198671969793620589487289405172481583696532750038518241359794808385126353186729154288314350562861899785839542054477781541700506933054433303263994265316036638350329983315074386237428331526853521133461890613195536352181705094992294057540740697329878757230377490292553845747132947263883057327286549901212672494800784858739548893741830739319341082140853566132293022298494257031260002582970383845364964811773966088769005315629936012934397391057299141419941567897889433627311064481836085446273470177180801588443704216294571914859245848423656501049356196424980129306161718468512061457787004066985245252546477841671727563492447757611264754350542954354874967767180989833111288310704781603615264408666077759368643158673246582031513983529714535460601688064708369383372122891637171563419205555031018981982139406448704174479677807057065164732001834976410803631650273171317907676509396899099317507322434314135945817748626400599680986090961794751748107067053605276605811450042944732663797414344055865286906069043031127788287301525660876159729034417153488770434212581115959078944072956980974999068759761488452541256576480883792882799709113310002911472439681127503987683525395683933552222500460921714961897514406665637562377473865716528438724873360630437529641605571302157464633067078167985014084106186395784675468607107112560673370221936940535927896401257050421015470035796933793682387113189006296420894179653832378102883153109740121851945154113055385735803226445484689950988226050231397777165242299327829745033349392766396097491740246741229395841226821054426127336489028188076803875186065795285601376206868729153029732982428854131148710402221081786694886295960067833303313147964003920430613666623964477645003566495156082037730453679882188892464357757986961495257805184520006130829823824581606480977707428321841965864431497167868734050891255358427326310240484681482055391972255099542813152900568865454433832350086197128467256546207061112001845017169944172577403273405049565714625100310452504847422749705684351146834869550175865443942364116892774779018974854884837823202056364656399919762206950027255288781625641165306587970606306020479497256114288934983883110550643732379810676705048696629225547209809005445466919802023169045743697332537862546983504850537948306455766817846804929881070096899852297090006366346962872896908048220342171117887447280075257383127577096846087237297380423314508252616791534120117368219162291468340484923568284127906719270159374994788171144781166034886435289302349420101710983435295090674146914370532696766406294602957049077732596937137736465292790608591484977599432985842598056325605840434102369365515118892791250264707265456691718104825177824798499465629655826301134931162825768544770756171176144226681928945237134652927225860638840970375189609071941275274830174959405869836709444950493387521715327813257471046850319767104274301204034195284641177284772420449756904803477726113828103058599180129705090588815613509097390671917369163689400547310294896643338946112228156676353651285867250503219561751150273283442557121501490544216558937376516548751957774302779477406735399915841971858876046154775824186883987132303902294103470719362201566581560437546019550591351590764060894169496105981925815004907954021947817612389532894081213134671325166608096844179338528507155404523790924675276165900187308724993920401251515262544066307813936827133214177598377996239307963669932599842085651451450201315438855723478037495634225189285443957022337391138606621957135134936572048536568308767653542197823889554508778023666426507162986551943925333129773187999652746967123785769048671106433246511821617304032014618155120789836154277607497736804596440210285158307697613041234760270628268392103925211018952467091944789633375783111530107304344114151235538709026157465048056497438908831720033068090958944129516518605983689755471593320810544325578986160354227564470094252000281220127685309029932141676060444184082502835070060512773428353628878378065040818302062743857219210625736659644263019031760982427902312920479182282988254774564123501098328798758062850319589616294470181871131176424881341078780600445473953599349084080513946509325516922713349244117888601212973440730243610207071961101076662110865935706066243046297965923814546084435557096869119475504771419566948798340118501415490228411550720624630361243367321671913394095517000644123028964386347996350599068077778211802846941305618740919870010383103776630324228244472101635491060485756963257092266005731100513208370644259160430983317609632921754629264780273841279058090525179188407137444240078691905148538957212713487129248493316397125326055310347824743578188093258366498886812284448039596339776144911288010880930906583422803818948254540558797072387321164067143586536910380701373194242333435342710065804924049066270287516583646869433323794866789894074055710740689831282621461239437305462884394685753579348603735184851999746940572693868800177635430257489362146548614815920517055951554298106854206385932334965868590297489415778955496624043168470655877653747803684172985763054950332456165109051025318656839352605548615581998391039381212273453267037913922948870125061701987728046958087122118728704807006757733562763022226688054890477049635225573602515190955657465747268354814344366780301165242204866413756638090792281116509484045960779806669282487653875482394041052333660725083923515475296952088904715346731384134267645847247618860006363369548426944335745916104504360487175309306650818547637514216817833028092543603688324080456287799014006242176607534193659597128409969134131835589621561135132455859946365258086362719448942630169677888379461232591523761737498433702964184250680825695872193140761747393180063357034018865647227449114493839688430609269622161999399590843331742527451264050788663788430390038706730854700359948605397121846402043869322386888600484392294516841309524344879382526841244892206895859623599611777136150437170238299099925141039801354933520499263583624617893327286332292199727603100168336618323178454941705935539289047546563162263380412324407617515130083746303906858757718777863793971244280325102018878824486478724873682402796294952837586230584807726031406954081322176421933559464569357599736655716060344185342174007590450702684006992364032106263718646893470370028246783957026436713117653239549098981951112985876440185281966538863050478044591561256090349003887041332573506891886516279791453835890755009642624434359521062713661371520911437118692108820987938644167807061186147230538100675259899268782888686346490534046728891760091965959271342705399398775366036808795866261960522723931667494605279699786409635278793383010319701641292718700929426474144267869227486906739104658042493552655091098964813515795126400187930566289324472898947069856458090225164337541283219190761536097287607580421073323611983357380762235066324170847529142013543099865881971053031142838792609448525539788828143782133097865309455580502036762233159653902166213503328012977297363544693576778312237790834078238934343679989620423022766083821107438342471058338543171924015069356920251865790047148990614214190350900587730022114025207331680736669259049042923881309291006737632293361264678454863517126500715606519641134839924982213334572781213889191321746739253059477244813938952251408394960383826748502093604932509984695130322082690551306923073374543202027418737247733714748338656206696039967843270692899572442606263670198911581114549673180375620917414375769886310482644213667310297393818646487569290698548767568396259142888026893334852982800052820385812026588097986267469505620626924724799946617043457089896459221649979498120733073085395642558506910024217756120478307294711392033462779129441317254453737249717133688367035272801212834726726795889738934301715391241601988681527901992984984918691244334241704722657585351139708341386722624460665734821400533559355250615020021326453451848447952712984083130739557722357158273647110227384846042683590563494093139690817698122459216465975830762033908699474132618564168542991355132838981795899938897417427966101583429207426927413475346255102646560385515177107268529159764189089655726907610743348927394713510680248415681018295984470190390413812726605652475405398828591537775431148827608625857144149567823483217383517836667210004548795018092288596618691418369803790879581246469454589353624770734255595128592593494843804792945659032063878597977922085435970441499175856220990553085996634846238198645712191048393755690999367283187225871892868387470501676697337607289974668091170193644627654768200271149721491035802994644848162549544092536126619274887073997007945700865520855415328756089506697825224594477589240560441768953166299195602765572763743377620985273069581693812061839278974271838312792697749614278365551524446187520618857969530874709983721792250246030889557998780789953489370713832397543445816582368174441756006140001829659544489936527374665961207171490716733084339581502376857262652175745024760193955542812636688051756370779185634259243240919457051999131046041849186504605427016317799568682149667591685436958321929566464403536699165324603254538249784551284300949611533485885609119962052328687651056821930871079401781322630494191609121293126776864809037300449831101615376873412726348528222038266057285099066498710918019638794971974122881010482102872110371608597656984709547905849804178440710148212250412117401070289103170530683363488870544903872186184417888128353785369254582473932361390352285755232556821993876285599148376467715095700583383237657205755624580593381601097442835813835139171679908823065648305569341985561710144483977127885562006406491066178460922137448192161933688368332016722334598287473948983327502453005579534519482484041279012623219969373469309518566423151411991387816363502749181962591552917610626388943502544980899140664005680373812656705938873262157275287802075307510853077552280220330584264339507836070687327647350599861602447650747782900423786847925780589395655898743026576012786853757360546276392320633280101813177203126011626704977140166070154573382714667908019614350335846795887930013681190643220767195350929571299606326590331097411456730860916018757584182320206732022972865231819459867609137281540732440096771399389699807758581711375093989219419000367466154817735665409747351808350608024475910426789457083253772011533329496779465782585614474982152880403410589214654686815241002884771296032573234199983315380257572242538600733746307750546846907219444736926475289117218179142264580611515303157983024179434924149937439506069964498477232271694048201085542477282743195104836968304890564313920479224868588591469030288154310261026595089373341636849209237607314231908759578227509936854104581143969133637716842626968052229930800033580217852561539206105637527548803267672494388612602294226849701038488689691115811035395411483095046793550535706220040360692452829637748698678090260323215420340563896704999336972937594192266084731858964441250265728211857705246174300118097385605224207786116342000154071476620963158075965447541027929566742451178115809698682860379361392868875298600596823787118712565855174835552209959254077504480033523023511983956439711276834718815496123027531825937920563806301167720345160028709832548134358271683532212943646209830167096053992117413875740700845439662167487637206137491175525228821697767177927195470286948569101278123354884935845879110903849155956626777438569148891211995569514124281985673796227671100112775793904817457110406694718468063911778170156992337126187753534220506093903116426876116447042340463229437761701507409323161005088297686264658514708416915747058309997063083888686776632646699816401002302200828709394678492138207104818643425484178414698338737250847212573684386901407777401642235580064800498621749860270392393019440427052289374622687552116570982036672271888561844427714441210752077433206491539774719785202654470348610169216481475712978328361598859870816332299763575609825547298645088377341953555620469144749436773258587362461701187375945172328852753240937830266232356323554089776201352476645774881850047371939539055960522339276842276520413584086736882148737736238630739770946264323760601416315643992672177304966362101102500040562898274473314328692810515173062781164670834531290840961297748470280640937839108324264028033068119240660104794008866050832763486585676024679588392285074873865877813343771213469481358284564820040431667765584787721869935457544790296893228734100914812782634259862964217111882441139385266752283503342862305927504648646948376714489798290144603338188119989179488928488582499011065640712567050028032750420500190701448399226034829630045739218209758477243369969417229850704133008080086167569789816336385743236961530223500577513063524131971555567095462079846365754861582143903198544084046557132179119323794160762540845977212619916380211089367782582258267312786214482495618481714990248688316816355656263452071903536638676904806139704078779632446490159018161322031647579752329253473699186791906171653995166598911223939812091444792168054734600285334431690378854890037172786556602949054872486541808495146177392619785308980530088934263366872008972875893536812567504765431391982516063439639511635457282798330380045957761247408238739949358886020092882666720779496956224284712324047813126510627482203868065636814910626564690327904013675654732415511996823647752527005884745459624497995626246466163209564764398964347096696921027651865705792552732241003170469433140443362795560014032167178568771810957951687679558201815646412744201509602441587548216292593439916271087615678250491594020156250888261692268814844553323474079378034059576058701237684180289695528483656488267787586966113338752574436635875310133371020138895737694936261734719178968798045110047072179649303329333523523108098918219706506686265602692224956697075705812030904363395024496867166109297274252891935719456896832969180532690407161671016670133030707132294456395872426550595720105324288536785513893488266558154875108941931571992236779945464632031353044638717957277754572879973754826735981918018295680432902833577420528136465995720229574800313637678165292472583736903243938515677546442077431574785629049768316427727420635733035750849490577199429067035748766771755591560636181012386253046277398808293153044097344947011523774031573199241353327776502192960005462882094602185912777183568793675458044190841832231596883263527144541113430967031091817896391616104719814351278969206527971596087870652571975976883965644719802970188406868353094187799506327622415872876997069784535165940723492616604914696049139329138433156133959039893917134373025969258115598320283765167479529175569483641170774806201447137491028906513668862233074689737382661619671571288730778320592135459461530898819388688759165818658162915922344574737194610562099200704130639474939807451871366575784293349489585224299256476818829870592164006748932196927043124684371504014446603163738444672748887981079270794808122949229026745005557907559981206535268700024764972230258752472810869427257972664286495418180278260732645182292992941793740028878012263778923277465822397433882233065794468143365317198427574770684202828363676781570262388844811869800799007460217102486571754118249167753431648789974469012872156012180991479768916576249185474735978317071936741345207127565574487975219776435100960304007572244794248346279411050960536678018327586446635070148027062939374434606011877120753311979932542239911239096676923576075552566604860628864417593024393702960629001014786139624109713171833141014092757715646698469851756385628502245176536444698028352528413080354233870419382309917251409375229852517798999923888880466715370110987336150421972020362620968919876812698784065068761756120158811445016434044613884476839346377368248580240839066674345628813857873372321862899678091368599537011069070702641286561169027204678038122512999559955312303275974676606619376763638690223120779484311243977614795578978608547523497306932860095558376453661614828430181177529462072781742463201371396031753010858112645661513511804940036000690674150040975893285847789280438113467413710903523013678860413939234505592179824823350148188899420491848615895786557272767626458206641577411486549820615611583326114631877979787139888432452416468421738363515953049930655692029225778183093529202145702730481081514534247221966174019288173921649354438597617704260074731293725012199563149689714741149025243764635897079519284266730901044419244817517124821708526514228147446663897397876358020805016513583353544867007518175298284490964391022845367365644177881328538324894268284622916943363162906128346330905987574522417520590282539402406565630540271916664640640773821385256487848620213630443241459276671956694087604007416701931162963307613083817863174591614779493113294268544711766507861570490755370589647073983704792250792384056020660633822462669813436269746824017644226875055111888384861140551670497108572811641621855789740850791194666664539504474807170727603201498255100832633744290691898702870162928329369290513484559627554745045155738130385581708945371380637444774379185346356860779902070841998126318934008309189668763631991618727167434005553557862001568921126033757734461143890127062416029892141318625443053870276225319104800501346131348609886678588436901840255021610022473776420029612268122828299478291904105795097767242606492135897034828110772777669394338867518785429854161120596075763975181574542683372078529010965396766562629664031755945247238387537833141478836635870939220375151895283446345780664264434001190008899052542485223068188487335825763613579748172167834301937690732387004105174801477628460334481387443146810913693754623677331202190260365090282389574269918538948117246014099787767385114576777596653240191045717050423021953103733330526765375125654667954388993854387098724401214933348789481271705985926786441748291975599169432265140241077590110295836670360089116678942975891493827131004954746410467008251970715667383167939970448971936574898130752607305024106710149107415678003808006765504618265170695509601831709381123374114795701518152123985398339529931751441627643597451996239517704534664066929603989872109168756404768044158134509830459106164771569567121161143795757587267619449557151748200124092163067149707420046910999512657244202279350440843182964973514663499738553408519111709678445614365014361966783152827290489026111126693076237572001644243340270577157497162225815794284364337211698454980601817291511164480339212057373579233553958025150515284057414973143890959833135494059083536719798980180125458364873458904319650501597053287993668875172187960086726381567367550143739972429710536576977300857458377216831849937029794211775780246881496893401289605375448822045589787270860358068345474509915884490338092985712241355014205473398914987443497695631626281803514840331563188789387715552431383951633247529039965781970511137162572280288725578479136021685554299958838096143027997632297943126162233664143865391668276842468453506457997635977730456098350223363568637442143462330874033235301591022646981473898856822683112158990036891430594014319004507065832197562737073083746868631311870503391589828734695065769259215878599642889205513009874760956297002940547012341144581429789129932138413860842802383800593782552079800940940230149200021696750198494345039402305377361946956637630436938800990748669270108222060608139084938246396764961874760273020213261449839387105596055149434168659067907281987547737641555709132719012749753992039587852460674099673301608224401095519740223918820304877220908175733089481871168953841957085536075526381090116232254798094078338360680372121747738965271947904407381263099674695867086077860989555665178492460638788527065149146195720708507064911078159436553745745174068842615943143855917111302498182064990797237831774753730031942703974854597889516762649528339152000738496914489408049519360528519169073921174409478708904393009057538911739517712321845814015000549574413842611522709620959135286487974940629647204203798012408091521829248944341489084882675201799612173691042801251224150891002813938498364632420289492540218764187372904957439262986739152475923389826695060941829460793758481679244591419287565819923414287094590846639327863300179694458131373012149051741415895211119535635767131383661564527723465404630338270237982640102627014012301006990223208119609377679921590117616355838946981100217626417451066276510295714087916733836896376501072146017011647988270211380936805960202668967373462911374447196962744426166921366569840404750164764739907528474264927789026823513483578587151537386786575784455511902718763270739320798987723445110370260466455911339919238261616468244592921099081457143084046238127155128740821449275002743797676917061244724204888676359415309557040570400506181249405268840185363156001881380678749966714157714214746365678458278687716830025182517678263677699159876761241946146862755138582743176422912505794325190798358237722531456196167071797112020019011140565687628549120992478836367524586596618297892446433872152024133660002497046884364583485447331630998692072212007094984997460100522422990182454975660280873026406943375990373427566369326622732812502759541159344564028654334957964839196190494151239865730744564469888744085568891402693103744565579253479774541395792850255479560135794264101492872283643430979380836913401565458177777425721359252540096933419037294628637712360664567076284145519885093224081973884970098435855532859557547311959245133101464788334096112027978614327167824567402118008252160571942908306283241193071896108449096546658431468308614381087732171277120009396692538648355807953222713333669593000557921607276913204963118874410858588418910894728224876610103121668346971786942004811427841139784856578004132489341763313929738212797438766760979393646530014966663970238742064967047217551965274956525645838441153897866502303405314338845348106871339619955814433954289428570799755473590801179633835958894326386791157399104841932334686608360339892645407989473258924310371653724857900804992164909080788760748769235586027242311833595459548699586980007001362248389931826493204568068294273555095853306383282230161581692438962004182634241090025175939501264345749026470681317420244253169071419372868333115680899270368214989276730391901374422229572528199676330200059719043743169438564781242854276991468025553838349537515458605917931129649508837045405110325554895188083756315059289981630573125722833038577120127839005586708940785173589629048143814763552529491417372779149156369675403019653289202987241332333111648752989360851084979397345047412679076582677155754692756860571060886718065113016994396910868196524120550818206748494643914007341346848653503159128683210071374936639326902822076063842206275661040300123348282322459139312411030157190629692650822198833293733389491813449412946447412369089599996185662602777620829457836840475072673286942236015510385495828326954242642991469092421184761640697227674201901741619068306996372055714770529382819688719979105977925157831254119076571000032253334604430985440124134674641961481293302886051672993141748971802288315045498621494278384658133788052024979826024487847763860285084640309952375674733101148115084714627839747716168713967979115637752291019333287705106430934434983448431970461975110262247464780159291697710937159373133793823074385552528260325956061951726362223484209865958391552172662061935754732685921504045993237178373281189330572963283935688640722599452718237200612519437017800595988481394444301246929229570992623113273030602043657165586890790653628749382814825896402939828307887011010927606151136793336645450356401948623372011335745232503862059767477502095246647479200228059939932140161332025606067138322334940475893978095320275261180610943845419289599564353967724102130510823675284872340968247521545238595922969647289278951016453146930672613213127608152989548164647957118910733089710193065783516307245869906648251458036361837757351739378486972138182454831009767108782439136514515574987420768179892597846653926442353762571097412801713128178587810697024241574002750594336195787982170475295043883070827483776386379289049592512818829820377689107311346292808807994216526111001681122309602583174026498217586768662556695971431841248402320938526328614939896476996772429627945543280508152727571523742860973311566488349143778114383799235261898559882333754507428822443790793875877700005057298771453136872220869050772928790716813436620218787835928500929230835422356524668714467884313665302141863185989243017948036096761393197389116188702074825060644281621546359453476071736266378800848995162113760379258460985406017472627975062126407617015303699688759327794915220131425726638070631297648687199273615472952042594681808141720859384975064304571151765161178691435841156150026271349610589081288682917775091076537408842608970212447721643393857691408086572740490021638847970414641549506043224478469398036101877110584291214520619166204521622217000686592628258072831007328752394955997914576030755013789548077532275014604909637129427503966571435687036899243816548488123842491916021669181987099244830437739011527996581120365595563821469651000832183335110402371011524676063378141612015522813555719596748022373921522220155046173620199074813337276045919985174917204081051775605275386950760150183107376363274760310671174744764633546733804765211853325908917708255601932794031308929847780228663866248204514144051010876275977161457991011344120645205487774250739188988843840610722447892148654483268127815775774331903923340672510659879052517343557585593027547091321087281898198913669551597887493688499326716823525238927526538534731918483319156245700538229125147189012669391036687403321392000104198380528811302447696566697091106410639537735532577473514134611279397967946272056975617315649001976629778172607897759978819428098291204774456249534714308931169976054673189778625802894565490964609433658756952628748933516379644308261943334713613068339166627969479247206750957653940777172678414708581922774620383174509634371072659805017673425959107777067484797096863884608491930345865689731318858795318532797158787228959050638001400964534624735474346922669175882573739284481415539611707995171875978649906996835390377265761124608815804443713572551456769105632260589403436187976009991502165852625682669964061312200535947182647213673749116189908278759036984818693680542682516754877712509433351243553481971246022391018865936978702751350373939059946283618807860327536391989242527873337977308243495046622261881751493827421999002247154693108084948059645900874838537832472998030756139724352348844995988149173911315520704930600541028492476769591188967540776481603765725994121614602157176017373234104539266016955271242569717376710073416353894137218303442425145643539170097525864584773108202300364441730190094769483668739368476828243568564705627420161776665443126840237938791414892528962543612589106940187213822168999986800761629625979974969452676461013093435401759624840437240296375188662111860249871668538254980528515634569792799605583208709538982274065786382544150933540510660630044275236817254762173934168563503048540979037893265602635480607143946041853966188249772241615209163780682884668869084134475208859821747210705481911555338401250304350819658641731109815548719198560397533096074573532852637266440265666734072890433390002115776443316660629037802123040427963715021405573467404850475056204937572640256175640038722591885227282570305299361616703478231133464028813528340476546240961292613743922039473641692179235870825964056038898829247992673059546358500697892889781566714998446567985447137287206196073973522937790153475309994055562306192805794131218207495855694349368327253501439918008221201739829427401239598628707955963678252975755775495770677238549264731515182510494911552795657858054564288956329903047411924804933370664091397441644945980255760827259255660564331181448516734812568583076218236848713198373969747924089702799497921901284863104122603614446672782950036101197664715401482771979970474021416060881136137563324532755963371032978844263375427642944413746888758944937611085032470172367522300664352950816633145621810147746677472009613699238785145633483080283824615655510792667044207079003478315689267604065933181327243992905431977469708149042349958758644348024810601191117584420787026928201797133560406609721751208383841340305590396662318719290260266805410045781998030816407649146034657262154665834021668275242079472870858100614898422225146084819125711083310888877324337539582766793404575450923015323901752857560770012799925251099957149334409814421754275533349896244517184968992576725510004199815862467790834123510300464479600219040336524688796861205110398961353430812976119053413389684858223529915189552767297048266009716263290831394048545942319395287047505686105758742806993551716743901934888793751708127743594675272005275737141201771583417601718265937187047624312644755237434289371976762949485353792514545154676949621095188689624893184547758515514466959978417652313565484099848971281574919931968454762421595065982343866637825024307918608649345005890525944411916427043074035561986474990043561686276633145661975482334813523072454052667507675705501419954458734412561066653772385803730915544048595146215261367865502507459563143756584453798703853136271813078757347082096657374748778711946219429990175222286539186699274086379600071018552328120300297904789345077353901353304113151693843512601739419128421003398792487267843274923038167985042371947652473446127531188724707548969960535739464578063781734931925687899044709515745551580710889768667816552314664767849412912418394625041478908828206706408177452251255916105428726109162241390430898181396974563576826492449754568980653010973741344900395930853069950767939733710784854043609369752991053268762534130408083916597521200407097214881920450997618612860104288905128164505833616982534364064603732077833253575348922020206434290409289705522011213172922811143324687952902348046215178943404271740078290484598785319474824352120763041126494153931303350658498839868520263971185850306618129699773696191958509665468910008156408263383712694018243796119438392755183550316399869542110434557411930560957723528695157880419736754147440535302882537987478934697595885706581745843705937267247031502635582444510048512199805519940065811356563719441200900340677835454184482086198963282331152588005160202893208336546396440325233312946530222627146545799366631539201734833896927589682371329412410861488307072369375682863921305443510322624803729313481961087033675763208972969491704099544322874024364383815389601005150784907065113166768977992219223999916998529437603348908561485875136209623723676132500803989979779849388124825378327721846756883370333369481086595893094770566483039998023042498323021075440493981935727289391641325339825817020361824457026044833167719900797030645357969110299985088137591286347354211806610731688332297543399078799852521636007175906076610708404537191074974575921320156183916693629233143970152829391488508324116328407832463241899060914810651015624928864807588965076977139681113876460652947524306654435548568147248161966992323484676902347203220110732951976982227105362494408981237532184426551382971031007711483332635074195269588840501724232616056436501805514286050974103619072062872689207182525069664238559199422312439968474920867107960134035677855655959672069551141711488224930219585500914868814838337994433639993752168289332487040595236461886031208457749637136742944792495392990191088841286095665086364005687383284791941895390315511001804184304429252790585685188674556000801283725351095844595681994761223972470934006667103715958193485955276634270513468334584007219125249887559495185201090074749256681931913307549968663178612702991943154770512776190405893094910402818200795479352985539995858073200961603159857844936883323079294349532059407106299401379404326215152340868209289736217542025473876401323006195020811292559477620505341365581261595632957778700470623369024078894255447655119920426712985092383760855137631357652305538920820169188956938413855413237718579205056064285366537945760381369992521422843544539336063010125557890998939839711888046244587179589807458358306953818627849694751975549429755806166621306597552020903323581422161450212365641743730130541282952601433772755873172980792077972994767016098181802220771507604186969672619128120555858810396800178777081596516182513309689442995105253574445499793630976561199733138141907985373285498130265970254357234931494746099335343864382716655071089315426979477459935505225275093592217799653565810606315531948757069730023006572440331371251021013116640532659000093548757886655813593457722585287103094801268061704796574267061430889560027179747731518848805963295428784336857622204649285347771253941919808090266434261094957367707266828890998193185404175804697440997950707929390103012590748743854331891300326356286822594244607284587028981993762159078576626800024198972281039401570698288345477921177771381405095545318671101944051010405520268152639946910787028280186330867147342915820417713940433425362201119810824630805381836318017163646445800792593372486907861729322855497772203802296677319626222748647711493751188992147989810337788234702533526369036845557663962282065913040931046490461658297621074659118830170874347430702736769689929589117289458668403427446398590304804330950038506931339308976481258359560395057348131615990659659206783561274920600724991441438830431796257459614657032744064763958866490442827548476780821109337273425795949592695997590972007953072134666995479039926910481152032127440734284208607889990328931801124991567379078347559714249182759327308313120406520800755879033378807974001588860811897551369205228641130100691083245562849254112338279340947746649462982002020396950760081260437222418800363436531353425755562907010755733083124279543557951502901820499924792755085836123167565238575240568668799538810426825243331016133239854156989096279531619870892099429682845419228174694817357255923265686053032048729867592311371365103918763447049540321190776913004574979161895832211203278839585015830999503899904021126901295251205313230368083474640932798217753274883303827756801590576208694776634398467518758944550055401188054067570287969411676376172032386865788153949887119660797798877818477531987983884670581950029989337972607254296779676441428726040545156579850820639960637522357774267259863462939322038541849489680510980792189408182839441669299906606714885256873303455111549207106374095209764449466490416478963228253539124780631278530425025090784088430703637298009634575941394041542720223782297995187661778675244459837251881295405426625400156715488176855143749015033778478537204935243500541877177494771625202737778162902636527576928305656752985662646779287867691800107741064232083844233284130851071686080338239299727792537272969685144315898028130940507385712347432711664341146526112598639606808558633865803615463121880594249964917069502434680636080310080451527196918761644222611406228925439153831188877568499915498949862907448418045423173475180721831903792480969563149175917243398532262360345085751960846335554348394454288695619050262160238353512518082230440510054609842251842592389005394143505475013093119324329866585891440312980459360770474152381643906935579833980461582920313582441899902455291450096213877928693154562648538554138182253633177365514818055111056585516845440135612332429593054729680004524731630712970553391303616084374611700550399927497744011182837195967156961244698466132250494114766109691809413871984055735332941662264063786934447958570162535786949791913619271901570056405760115796606859695813125282607529489012730669086551284819133960413086272102567020403842385590591575402972672314947896320817584039788635590437861455776730441596880917815891654946560322059557359790830839167507681317565813183534397394587227020948175664629567997136709881958833750415689180365336425212331071883713876723032150877886018260818733705637742344446591580014776162746344132553475316924761551482736505991046770151522995530530571399436123346895685082261023398004894918630858432842231336784891669013590526587620428227112744793051583444407279499570533030439808623346533171040684136320441762129264024427264804738613763242241159193112513150112079548551946239509879586371013591451945037114159294374876652679905285790437036538360523913661197076293084627982305197913546490832732021510562245368314576945168113385373617782966853149916150622892298019342971993939004152678361869032366048588081875192471888211522304594498076125996714558706086039339068936097914812154327829271471134766627364535158990002022294830556498451937214289108367371513342923149569213194379060397285393240307606190674705378605231826156874216913117260336679068328362559727211590260636704756589444936156089514234062993947518580780604978625194164763920048304279538215926215546556461674045079245700267684443360008013956679889401049905255016249855609224165486760362344008843453790498879306761817066087450716293304397447318806684178672806789975353112479949102841166272605046247681111720725531353825821213675315067263771091596229899210978165829193017185095816015103869946481657162414488725247715891404084843508640498345674725038168916682256065005294547985865558696467812511894143975285716858148715945639731425055997718400677340513537584406825141003375316697796283607714187712766367587119237092355116251794246048545023040311433996594649798214903029639571371142327499290303146509561982559711856389997402101247623343912002897739837489528088180368935643458733784438150959316026405426257382142659030769177699760190500172854113948822980104118799961304258229777302444365315100200794798949248136091604550260688716022784728008691757597904831115753658613381380347999108711533743083504843512262295518545181802046289170150317721892854080887303636833143471425457793421682824292880593391276637441892931596426901984673246802589083009632185230012542749510100083558994874442115354062195192134460433408655713801922045332831960380001652912946776729110898883047473215613618118177130017059366123693317381975822102388766794842875737817212178855089682639374012767691045737409700199911931111689068272346840261654104005509513827462819406507814476170223814404721642772483683454718363079824299932171873125349936397077235960924152241747520124360074782236872490151770585817848654319500319095122969708068711731236902465146689561958767253467462658452043340315167872372488062784620646719761543680227411098645582560152678096856192569978655055139304898091318341622546975426697820679092717252338195179754266799950129922875729861469361888734792628018119671075753317591916662112904507117129488191798410006938121695250635336134280420467504484759435809464511422217149506166540754125656786899232638232772045698817926711100901903348907378590030127985223636078030535193758462586748052137141994779035502328313649679638357137622431494904619542320921513486095494526818804713646572436175443266643493418634623768585969624180497784780989397630366574930851351412148874606992288803646165861865088068161070192071351852755662141299937328668546076524444576298543071404851213869722587888716670803888477613343311546198874797094039250497733823967740413017710650856703445643501931085004542668602732117736964398809949759972317755359845828725632582478256001864788988158753328293080654713892570436216132964134048025781216668390539221438348833020352347116139941463321516056443235682504982893749768193567996321203674175016529636840508466146691434508440791980338783924395169403360445779848175768752790461525523283704543515787268334315845855131459530036047268378510029982120706575472870684575872231702609028797155047679251938324066333422000705769941968586804739097321327079330479328979095685001965556601434605043514403233590063720027300760734074866971581213505660680145304071236439970449247330481613968075006120797118575704662959796582010947006773055717847881449710824800025620365580803714970266145737049603066695933370264012597871246691499318351338514629879714512785685125815045471732746220247492661207244249699634942784925552475382710763435967860626714547623774883840278071256438440475743066429771619188975350433981148816821896423457083423013678140741834831987358640615550622267799335206289106703912911103425221006552209663363955400348866155831256410781188049738098136894919713793267546033350128696322271509650659811169513979521857940738544379239741652333018025350796407323397052036570918459913102942550712305542467497751351878102138495837650766092319314479988558529110732696759109277247714607137542392099997493929963560006944457926154649891287021080426665092340412632564832006284514858088070028855537401901802841983192456907162700195846071304438549495906767685021777339822664116582375464478795292782473746654382639156300165049288216836285461878501938235169866269935146852678462428719388089063255754423009436471615334544378670016578024824190141197680728958829290830640801854300512858158206184156777911659573570510656571067655572037449628703554743004630266274988103006315690470311951991424140090789380032490201003426784238513186094199851902239829336069289174595604283155072229159332890589348489990356625046688198227152172947411831659776200227297403124796271297184806735950419434556726236384375757027897031353332540214839144082420100292078442382579487197485226014157342242288608073868037010638914422759959788061926859381031495317167460725840618455698409648994745641018993939792189817436579637708080587441143231008611373740603508867276958518473859991789043262462294637971475731798973043451940858325127802176549723870473445994698720542975001216975174559588547143224087279647425134516529656576420100236928695515086343766228358264994720387828736964632979120442220680579010339217619268253461896754839545041159608044014865641516324597168670902097874328867184770810588050466363784969984567055533486627053501182582695497279127839941981131024439855501437131431346043029283938423915653723494170970315017904861699304207644424435164370799798949259640300048044660552951045549133140665435125404513053534839525939928491016028775590101366941397725722926099285308932334506378771764827407589663135242690656860951804671029135101748912828720745145873309292145532551966959236309664755673660810203167716692598896086224789362756422155104388636685380266572693019717766756454515802946659262234049762892461972535296450177593094218366240293000152191496361893375303119347192368495710610211359184449721656072122102743196752206220415941417117574152620149883090528149925273180253332381556642820760353889670802021498324787533528674613833791313946639631540346556531432717256128579481709077740065174219998972386857289443440856707169046113204264547667602136182822102365958554753610246843132417723500209214132306209509358390812312663394332180762810798799853800146850647874248434551025618040414103034220524648317163661403639923316974400286057244083086956404585193693697081931029261077378162049390392135493588441435299225554134139038493505068708182903359283411434145416609408501464338320373055693661027775201435861858618670396276749606585071850488457219390342315465430351178928086082247455696848131480608741003370396575815281927608661798969399428757714946841295495410441317377108009459790471678604553933183089205023087053222719972390069706436087320039100720181631212554038829213765134314005561163153398193109466516338636970991075523386120684145375279822829482218565756257218923296416854291323866342873671645734469858449108426674663202891397107183758090410043216418617332315893273344122728022155200877698229771622186218851502853059738000357854734524208384309885310250958312607598019909321565516308495631269094886354429243756140241768408858459999595884317972185709081491590013448948318103295871200975163655527275040310972905684241417475569358587158616186307815085414751623935849662470386015923546604568659069214853739165582414054545783470868568337062045719622736405211543477861788323133488438290369940782592575168925698606424295913002772119288958217726910301333107279744301207190456842925312271055791811768811127695526991000754632458223588000110181471646370625156400888627864145714849362681179460120245485764766770757374224892757164246042670741460022345836227585096224855033579163760464613137759289063783810160996793559219680260844920967539621511330420684764856457153836509176745276448762184728172685771953214108241297329749651431012178239685747615085025801955867368649628259595614390608696639794044620958159553653717451291490822399206821413480959377196636627518543629010596611352817026423990006707168813239455450883324344311598904710431923266937897107847001660139775954870636924107538712983587305832088162445272422314978069024350089910920560292893510817974294477813568589328943049105283777708343501649877474270749883702042230930993593706661809860115329347519893015047805614328035583718492336133225991220628723500187146188937684492390174023420004329116115216735671637617722720859589316191553887345675780671173555880475515885014681415355591553309005504763027309341701853725451495212867264243364928141519200005358455285791107081934869185706086805003373652650647948020426079201985828203889384858022806255294901986226008949014044111028649786737711872097422528548265527088910913654764270002313816402316837325017747091595463681059796183191354395002516090150480845990002532002618078437184434702713680702977317255439278291578225864939050821703775297708324276035295921452243859683329954716208613854648455184239798479198214433933264502402944102778597615933197740354136003403436431836171147494879263318438141765041304517102243121998198071953862592959405893576674120870936789891922689842298200096223824799116864875560290487912809778002670641869283708049586841818876765616480580009345103032276145272163817238725793042934693278007087225504034785751001198655333561844076503591947482828324650013507075888698865554516652343717333561650336300098532783084083762510747417027001444640936962424203646407762344348442088740238326967564774417048967661310742151671746736770905809380294937786657872203350693873946326386568479035197006545723576216048401999789160800789361198782435979579795253976344989504917707901151730918349685262441464442347667499075510829944877858600901931983286408572764864430436978492066954390758221952702374977321347355389599088624964210817941476714330483522831337722392607884305130224250902652968927209675252394066982920872651921542232822765704810678035899636084877857511732373485006328614536980304853357978093259234515309919836986603713428852070336710086909782092083824911973128822211813451644939581677883954403047055297284714928170148162434709987738755194720999701849752962067350423917448451579373570958324314893433593225593186498947674068861228202994007138160265576471701958423797582774289857558920900269064652356301912283122923145515813120557843510721351262973022317475475418944347769930567622808751764818534993330267860087998322913722723386444110529762520346406624584404259175893705727439086389081354607846101214189129744564241688345433369603253748245734862170165938414085834769581999261003417667709834866121892434131938538718210200738755287366401238442116682769496093032174505515768943110730960672997702369875822357610622351718316694350901100167982633230484659735899893524907421324631138144683914275481451128089396235519823659459769067841534733130096240198358758575195920357599341996082484808954802144615707078355726136403840340289584144797140193490294450549836163143515336796547086559204189415278835151886842422406982520445357494162550585158456491604049731783212246638795272574238469857254747581296843648435991087865273665575359359428617007899427744042947357720506765904937414278786471217688344912180185724108112398500794170230717952599495859802530889432390091559452663380040346882626373596084944711517858249173966379092881247699442120936472911249307087640853829751784221180095009969703295528883958264510561314049818678879819120425069384182563931010232755526497995155442137389310904584061091023861255408064360084350738980415566587509187536630245714623223774792372298981124405138638524625975759121510245915479465987163672764299210688142233239256253184975164753878431493303838145758128353137404431508822968061733665826603676296618225529937806168031446927418657413305369698591039900695158729799345410157468062229887171115484758190488088700992819299276187812735702894305622794289851759876493108273624888783366224209423473035037942792439247915405573289393897132030321165936055386492394340492888096793570931850181204430602567295989915081464299509691276160882936181440450848446629904059017282170819166078850390375363134683271639027840731502093052025229749774745120250399717371926199290692428026004745586438333964373919348421337744662493644448029416779033438649631654499189310023823624867623692196070612007520680138781769203369497018422357738484117347909501313795664492568503001647005581212799199883669778700686365973736507466254335288836085380887644378334705585544674427765591158167041314624521438772437099457295653381484542423644416471786882475856133407981409230893137960231624158858493115660734685019186143215655089010860992641850066970915548614877037034299479482758637122610410248887084897206079823336476735670212842782715444967082266919363692770074713235995080703912855581497835661743116725272503580751765771196675372791948132523251996011190362065090686768981095232469199025413104352842682183623622058486143929738193321886402294991028864832854839879664558900640376619427599288597534056687942999016774834506658351227388142299117821135943062258994388788770780063933140587553609410994643817215789772809310141154486748387094476931834509832019532938945866208898300287454782923037190833707385945620114582598990671170671752317752035666444917309513156950164436091730066533822324116363251826008643219811409786547066814485405310088037751857752165552389065863820927733995851893397040507087014931238399997018439382356003394952769217698053597091873989140413931901287296826095306919302988838344608283268366719045233792080213068924060942178708797698059612000582476232346136514583606726931786728887797838055418401560591334937454107006496566045357822630693293757972337041589083612919210701607852024380957142300321160554941465421764829012181723783937663339002547736234420803918980064045645107886007783389308757116570447570180901081850037031418577057932783981326191204510542685828551698404656714447789987009614163912568717774096275009272488044707318856172641837486470367463695540565242976912320844777712531107701861056106978028292894337858862023874860845019134309466958007194380330556105991978787956055376106133505718040863031916643855549955191409859104011273187025417091552529439055156743463660446989308607006455330037891793834689002941659963597886616973295313243525290516332658963105170840766961346093147364745319794576100788250581027170648222694601182492223315033651736941583588278330405430683594518003962186155435486457451519557477351218447543416384002211278943865078209834077501124719008075415967085929437399088082719692315827131379286789848200113487365669004472942369183071058389731518012334993878971331101849866516843776385856051707780312989406974908801943253330602244354386087953726008619976237592446377499025040553729518266469872767015154318768875439779142610598971985419298403687127695625869540709363108430622630143672112847706488239979786891835211579830519517602913417045481856197341328542265036327208681424837213456566852412636249514711001001105496124399707480847733706727613142284183481434944079122098113584782509440225996639494732057729744598594652884038857155511297418202134059811906062250915591201703350042808654925473459161100072967288039938493182796246694113830385132822990542109647490923485002587402182004276762791571095384987563185966059043710919621636487493760483689117562171362603922490658080187588409154289149944422154434003835245688878818812997661287559840419043275986567378414386747493073078461541141145126794747353351522531644751148007438862582604042979324934972709527168202587113232397666443849081180225367968664643389061971407768893351263798104632827152010158137275764248467042021676850629547857727880122645319779373628210891181628821680590643373713252686126464911995015244512971371316729912650649355040523025750751235309025780067761171839403023511109945278330613628529241691731239339120420782737092972162119072979421689531779939877767631039972094114902412110006566258452739659523149104747972279050140797192649446398635949518530807431443798575082392226868212388347616184126661645049225942815297559749957029289981793460330907574811000627031970590247717587285539162271662667252262232170052860284192709083610900206300142112022150111938577561255779610800845290232584703012091181227188416294596859266648424322833579684878734548077521788754097465725538240041076634503494325335524436274250784411136341489904237819599177978528548421139825441083991038173564360226352360547200783362377919581178406475453580219133522380447461182437807182462640802840853900755471212786679073498340896874284970812709399826483046807835898125753051158757492313312628077609168900900443065719274868245859133449226959446676029229289404363284025905530642134967262871464833914439983061039195301395775600026975665810103984951968384832552773673655860268479328581776437838594929724106965277081711941221743623284607961390342830214162090099436596017261665693015488812376967098410039647830541516602858067156244424244313817654525686466704468760990147467795170776777698434839007708736180544116006418080051619246231478914996028878944725698076109270435446734406753574577686833483561098900355389976400719604354987539690151050401771634621040963447083590418550197027597145231817298394373141257780248113096935016130111466385306137241968162625871683308086916288089575185820680877378508762182197525365270167488945378585503884903150239001307333482560506584682492162304483156371511979059902094138204666724909259509266400723570076099398334603137282390149912968361935731720087343886463330807975878032224854466793086056839949342263564230142272552150763795160159938318613738715801329027957436858628030725633577904639353580508357828862762662871631988118047875222889718242886079940962282172052446986309143799079225651368213923907728944772519351114822248091180852420594313704832850402083010605288787182772736772066502741639364730143172908545254511203253850538380446253795073974068264557867947106909657001350468835682980537672800608410902516986442029741895353031800921623047075846801824226813329997544304608631415808713229733743701261960097414746906499627639341809340305160000803754461419550859200360025015743019688039294808002197062447507120402432213362475176471712168814440930206468400142898065379686603896185431941332307677232053765635987516519945521285709860155758769595339983472511641844716012791762437657257815297728633692508064788233394840215597781433250389240378595232524729600821374122914709519640986597145201646703301293837980551546221247548438883938229144748917503785919798706397808054382577672093248660682966339346927582833940658849409501440072462136250953639943585869951957685499238778487949518603707257106695867079595777347885974994809151659087852575950740331573007796238863967668906231424010204490325266902451537066212693753073981662832983726180454699124249636923723935370671728579930365489121560669223680369507961664326612067102736633553602420016440940297779725052145060179280434705183612047254335252578399487779394985813203590069190480814352676713091751602193756970122151847430138786755555329885252117581654846796931716661477469126908308205593306386693558328975574389285739019578024591516123733500979443969927080947251127921558601833104887494915197874843895445119087203313776214607422003817112869768755924130157973905558575587874692157773085696048175853763204581911255477102027846844109364735476971548147087565646446815749870844293974085270909624306915545799664640784591865115387845574998887499352842000780214866357042806695513349545796457744155093304518668961626627608209878483501175225125297352853354467752028267662211729773697903149047441553593939354989539466990673598988536124806307468898608842281085678923414785162671009799407297534845410873853607008336897606157264120612891756253454872692339813037841135982634546175300876531206819499068184418070578460862331979156929275572154894413746854897756775378262110733098370932197621018994475360040452935633235674716754659836296112882727807282382002459802832779579864694945376148774683819329967100053937076312216683595309671546750086247689837218762315507709586942142727900396200447179395746202422685554517345215574968980837405561065274504699732033920391933029919684359885410921087226781180451320124391724418986336169581661443529069323683278645778308891877652445860849507450172754356314653119816499051770182408068543613220136422110320760910169022642227320546844152282865781981194937616502713881583707482220501715696635919798360406773201344109934199446140354267371312164843779826854814180555466658611576517479886841676689453827917648471625680995883802512886337443739010268758497950840246353784592595113291017959396420496569294152041903965533869050039706485806624644692583844520416212817350250268915339416048472048128179820219838760913750252829427709303283835300206331798720230550294588883510072157649742474133589250148671928442409114586196485077049740888594946612544198619557401413660445079773435473021379568171414286279301803211960512272564724841125435489135340163735037612177137132273208796517349364990616675147274146774888529843036566470470807387612413261795849617353452432767589008158437885479558376223186158503230170193342518994113353836445447584951896863669301922119085007921339717778493105703269671724923973606317238876635493736716432366267306137622861928797100592107007034758431013054469397818366370574032278930811887654314211905769492249691329832801878414863640984661262611643864292895736785601821237893302834840581971087153038510832895246567273450189855978319646603288825261198453262971552023024989642780903689230449447009570683436456356893329773543572847133066499133474889572735546395406565172779013160285508209752389187617217383606748670046358754636018807128395337351229898060501735020176098132977575148047457124155046398405516772132401944436731657150023957349653228322152443549274651477043039514769932040234427700532720948729618093957173873423537883461685348889081578406133723817241514415441244149520261090438872262572954102603151924578740169964686623815210956531934131073951843160722848570641679885484361800142654020635178801775814486805853737783496965774409218010740522933552709081265604931261471867998574026287845481057210210239489812050199535901945999600364169355684015979629566045616940894581899756727655481889051186929332501785744583858408700750983480273010401676128512756657301550991365328814527912239337560821361786551172881927965329441625404547108027829244286175896210913772202480198440299656328767779568443596073961358845274360868517867499589779379010484961590545072141534153833375497735872617141956599801442750743979722426268583261231121532545959586986329597253202076625471558305656416357013940391354078182601553385345362448819919201656244396012943161723997516787885646299662525684986981829733456269638006539386033013683674489921622441253925180915038250956618639188611081352822354218413216869107799823505886198353409934647932628544205139645385796240634647856542997147169270039552818140497343189295439669786557029928979581751132340681307555316567169623597609568477487641130182539713708438101853483240982590422883180160589597559171497985843952608729929426165547922058313585781644322927236457749877719935106259771289076576167125746545500602547368172531364676322854269245046851314237436074865434440087880764836129688437258617107438158411510157164427543683618377257782016666376516250199918448855271744055105610575197961285075426549321664032034194765043361547622071621731750922299339591502000346058755395308975403304102087999465557886289792418045217571736495787403641775966134447270942211872102934023335240359475332671064170212016765516674557389566292257532003141980190399616702803004131138038554338605293910330805448733206905805333259931133567615543277378870964946821454370780923371647993471462136329485371265512433425113380184332709927951601555210517286655536680809835038238963107774187561264037178500858693633241523026699821058543243687886656975974424032383954002433976450836638086199706957010065024899489642510619168531000808999291644986618983900513540264673933125988956894423823463573063384371960343713440254724998336762927542010625094670100361967319212600594907609477390440581995832841271005003998685599307136124689872106389582946137961806602560379413157647231186831693133589447980782584862053858722831456828725556872136275718269390440188856041051179218982039003817329676012902842015539846540613094197700171013971806251214645546820002258516428690238688646146455186668843151010313650071693199620596025603260685357847688985615038756758052734992769770311565230451046448963142813235571176258693630506038054222350698612107847457659027210013255419702502640645089672363767756066275263041368397156091678059282380779512422738835608041714841766853289867586413402911763592664351080313276272911121495518631038957545593368059063323405734057567950980785114027723787949640524935982368588735018782374797509271098634017744496885117766221842729469484403395522208236350216600353489698428631962945273805898251855267063492767264225812715913259894435467152154521335495970126525914440021443702038354632660305166095276948430118124984163871389193846527135025590987183382646751526645660488571249726298236823679192374838280174364028578167912872613596752491869796961570556780166508600671628196981612283877518368332173160449653823564039106944822776986578789759617569414220542114145639646791528968774752232223443297661178365571258628000984834702563870645590510091030941293173701956406450230007055518065229987173030909467860879536167845195274560533743206874696403645548366093438999479470733947671165090963796730252312493010130285050389129775132957560956326543822730167252687378111037406026056748815901699206040438568676217192306273865019271755795393325280444448411651001406721856324766967738858854212939424452714588787350699730798269735471422300005612062445288975801129113050270807974906360834688480734174699825162208886898609352841556524748729733803954274701568124544992272512262293251197649485375657032608556861265740653414897353057740934712439619506965276233765608750963203773437314328589373661525012598938796650500982326641112378470872375479778766547163201641887179229847435164061557559136698960470945150010758519606920319713579873067504222113396757132925358931652393290181079287078425933392431104343538587452159885855385883611195719503946589048420767647310796178647771606336856798472908066624475422703635868764212801939292158569600590422363936547641915436569749657868712024788705338627877620248678961277061816572493734658295926882097830774211668473005133776265776063066908664626600759411982677453446723612998123209945013404800276102647704013689997624047239226208836625547647377493476526281090032344224169000089207008709314062980358318265650876722122434131367035383680589713246268455669600637303439969685172692820292367481462433107343214305555342286581840702808565566137301452946268542848810140107314281455360396419542426215545042785184358687355243533531978017412924140231546788471666397603398924665935757036035673411007102212659627986009150613179025686352120920347376709905254533561244283847713208861425054750257427959562337630353886330163724729395207114338272222486494594458594609360164476797247889874195094645416556756870331232824427906027389100866604967417066448569287387128933108472424200946197876351930478988283635065824072335297477440486063122359526663728756045196278204918281277772337448207051044313711999842131663108139401379712559270436262701674799541835166052286645287788343646033548103147680203356294553755474573679686542595576534565894578251245290261520931953012011321618423764482721559590088574599551592288106571786367670086576860718179261473053456180122210962223441020334601601439304251921987681510925311994020409500766868786206470901449160675166299528336500432640325924753496539315798833644303482026965503785458612284339143362218990042484146629258439946262150247886331290208782088112444505453168626586523920436587412468106095785149282179489779031517974949515717502555091177051853600647865695151759288149724955826568522021047871525226119758459889598770891626579622486040109670976007041795378551845469182767217411381308879460901811047269834563706988685767911813329819447275563878093935163254094242499327005185492390311340571293705494657245193619303810181808237801346709944458338250883883682536313706223727006758651330551535382295593134352939252194830147404292562279609282691779094545648528478875073382569533637696282461342354661527345530050275599928669319323661603563647374299313006004292143941207932622005884945177947379223109392263321469132771146996234066851521655448870410752190202902742800864562997809815333308044513508543410129924847013253952339615705922285089689732951580758123707678187891530096614812557675344354469837615602826677967837918791717458447927826558179082975003956837389565183459641836885664589892651643214050135501995531209927388317330968771379432623487980136230910498400736992081649929907862735216732108452918380991991892443378757702134021302153672585298007076074637408166109474553182382575418212097862761438251404131672016710175029298419240400375076090447981261677735220891197103814493227390005514405361331773574363278879614895040940512572684065414614946765365812686974661748542344826773688935434941196665958721502490960172816485519624504387972858435571282728482681817284904545040860252111212684499766675683219912061345267539070650352870092833267912449538558328926495200350245527876499053671630090099196913756307063557947710958438218997258200270531521180699045048775071646190114542449616728000949231311852302103466408185751223960283432431510209863743092759103370004991165510394809318879700594835942771234503478829062890632728980272598247340840519468846004531581264183180072946581599547907655744069219567830722878150110977666810678586829708560631105428071342683994702337650591990505987605527979655155156553655432970922672288948903318568804251443462995465843550317796083999804357686783191501830179954897067554349774484130067979533542614178665746705189551465809499484772353842388776171626412493031604161349760881298190858483527752251573714895953503771276269888889305158851830612044821480866787952736147314461357818261133144003069821773278947197505869309996426932196022317212861338095244117586447743965131411684518983520979926640565593990373645618095111246583225649803186997263295404688145207137933666044835987276391701781996086161500727844779007528280796487744463388389796813381476241373706285795129144579857917873012104187207773013271429333985841931698383444449650368673101790085332979106144890766228488095877898834829570051570001066115317763324265998147683900376284840523198509360702308308201124425480567193860220981850233051235381235331552836820954457429497712856277555450051485110874508804085068910352948781636852378839540890403665737572360123322895566905164546087101594970430014667755795695766905935212606933131393703487496094973617051460819409788342633405472931867761658535197621322074603901870443699594184057986053459664226574582685794203461452896141701702347268961167312106871711950638433731842316844678671345697882596063905477715091333285880696132584994326071614135376833178854979492253632097225772840964765630397659586451963879900230296721973954831763587633777530275145424676249327603908372080262333741353911744012367866993586431735663731352932762609212043523978677267767158962347669062521774039670967668100202785194911383216312735879864293525553996048402906955140521291085099065935628833964426522444445216113384177251470473361405554288663876328478097732623944980519343025658577337511205479507921084643518294575945193100079516247516988677512740209159108082385677834794094842169470154503916603915838115497913617293530908831332665872501863215015170111001001665542851749006227223220624442051101519195644493369797918621935766233356540320860460565851684957407600150729281400879803565780983485963754841774707597831544783487686919137550454143010456324972842483309739387532094792908555926941629615901571011386206498423778802416707265918340769111174065311190411086663322086081118406830187424828612636216123365137403715821883750089480744055992462632056029392840210074988967563291963944073599740317826734248389092131249533473471334909224413026583857883626005583628013249437268427288789826446979041424930554614282161304543969181092813767004011335585909992847873469858345665065442951196503210186087508728854625779498200843862505029016044080565050764571251632255815316256802895335865113942133295329376288542985974500782161581914881270581132601202979056079505220299939022637886044548271404326709745160213770616826394467248931134378113791684284492078446529971961670894123120955165489913495441810903381847720158304211252089355326895420565951038235384734382408499484126169381176252380826089404420509663952432079743163186355495159429379743807339596198013761567967310110645177781071319259238731290352432599766153099629461863044265526091814396790260962088106502628692757106964672529367988097154168225493780867398905316849648390409367805717075112897284766370561783963818989360102170792572508569655875598453623403929699238845623050599194146510283199712143772922587826069211614187859848335630842680798637810946929851034066635758819844225624913201808733159363678443842042666432025638787650095602118786151011266296671125862964842740750893699137008309274335602856506111574570065592774661888585222791606949664597279924334334500708938594544771976333831337952055748611256076264479572127191594977226647150754984365091799970146719641933871188235903128821765821160753721223457645110733555485767522211707965608348689002205100679726802883785173371257313749104649811826508905700373489139609113288361905665895747821143941132295803784570700464942962547271378437227714137879854631806628614702918788089472610024076627581979457189818120679198998007070977393192309175689499704180017736883274285613056764391899094641837243535252271115716093642030046355109449662432782486412403505018905508103855085778289762704627758775208991753657966574528750853333588406604769023442119857097315724430168053235440187526167912078197461531089549346523734695723339227288992625696710845987906427737787634804370543811906140096078735746717512935943700509603728727367553223247150583521549365811552516584263297744068370161153861900427762044086706172150007382102319306034695432418200838787269329463245118335406427917556668540800744597315832039444244387774667092782782499501974898218764436589981037031319367081482535604129533511328648226070230551538738395984252415681134505443030150842890066927287388872134494643642883906170324998616629429085934381566030371831987139166345573381441342685307395152938996624226493633827362275193844713560604451921964114974874339577322588391409954639519368612478339849761015346994012863937128231975661652170014162447185010610530985472386006965278714759160282033034385830456920337501403764457699654867932732631411473370752935264847339905346222975361431065141895807091998265633479610056544860190012815260608424861804318320968066318106889784972560858387023818218686135521656884600812496227722243330836572916827698036764222111854586759484928041920621710269458999525536156003118069367510690763285414524535161236045064473286132838405197745216380606178670496268466537782922132522617748341955819041056822034499645989020403700022952991388204700305099414706401608666357564249266818938177272110156296969022743046119450676155616778693559185652498715972308752163450315038288589140376513121210109364183912060596014950439134895591179413542475471119350349631483677488579020422906263228654555414257764160353983702870770450006798299270094128423424074312588562623887481155347338637758573609476990584967469200983500899569378544474419917090477097979374324866936793997441569243694495472225419265840017395380908899532961724960866878975777037690311505924909661245586193213892717657302672894182798797599847629466541305432308899360324259435549715406655662274844542239233001240799827847959081385920119842408506176912988020238962368421194425891200947573164941497159677851283073145798963724784700314530335131903228014817688240231836409322641099328813389412831745433488028510113392850170806126623625041887151529884708264011012033224501640115706622376435117222930536013306100994442696060929363763830342079114344381899208255637760522226015813207620355185715099762835388725694034738059649251890999972370218183478551764788199330864210201490380836779907100921402264244798941917911121025537860540928458412061606070405337635171617572951224987182446707411606667369002297327744583504346560236598793942212865964970544605920952823805145971158539902161296567908210489506474921273910995544880037445786929889234346895805053338570069668298507396100683577155908635852011486590376632480941154888584744451946425465213426038089413757534148510231381371579354160491111577151037516571275388076202403692522822133181546136469820996915540459060547797185536704561255941925744129742978261153470829030980773387336226781109022646306096970178361795520256099728806170863010177836370602813791111505579009267544908207623581461071595417645617045900713703532810922251418348001867950031669388394191404439758631527018398438854646814106384306988659106316018265602070430869060007400803999995992642427835028619491117922314373643983193562300404004640497215162606081187067833711031271303041427059890525696187225148737521122661249869941937838955492896994413883402051596058536139658197824086475479143662705054248232926990420911407659778442476071785346976076552340179742998878420585108016299373158243555796667854236703176938857508996131179093335864653457070049470056029291312457211294930928589041237981841254494669792009871643769740931684163207296019424329733872116167040020099673695686652781441537346040867345774120808186995047294202592730517896025830471351358664796643378927957181773052694866848727228295892553302236487489396758988201055852847175105659870417730058261609735935809794532135558375331228611583214606585128282463615533909052630188121962062501449005309892151913822164653378481050346203970447527846369301606546401630900489385828131572663863583231055735098043556785084710743460121817890155338637970998840510321545114786118777628253532704893930828856022750645208682335367069553061636373543044115357629387195840429180904347137090207045168046647446925934824759023997096605722449686787629381137120139198510731226701422876121761366361841418817102501447324805835960013627366860449201884119909239422436731163511647803226033683074901024052330796715861293165224848113294100465782314533367486069490007250818083631149529022180669862216521387262819125244055226672411387620240026128554328014421663333969800315848202093122322609107556584034241348266410277755116522410514489439905262859964023051851780380444819603892607304713619226615937343029786380261368863737004607238880458422082337092063738579255636110434786685897100274997021711941153998894943682223361036331456447227529160950395190960762588143299962540367150987534905141142486475189962274164410149805876123410862889041742248034947051283476794423060405643881499045005838399596542304962946734851495685902950992246892295485372555805175219813242864349554375262412498298110261040098115799776920484925418516667993986262258080525156662694420355458324509203420411158304282202406421196045083299202794503578461464853880175749392113567296853356999921377173514834398815791062128812504690482274802123092575175961347697908236809019377896082132039585993398217887454815583980159140842889690859107088203181667254095688605434575258385516412180089222026886639260175461084639367429380271065352253165931076908733040680900462511010598628487291463134453073102540439700450895690830677298167506712226198713388757657103189582092737313239424309776449634809126237079404046778457505524717127226010489897429982293449392526213487818242373939600278492145196922159588953439305855477854599856046778647410497416292702446845700634929636508467540629571218939077073404369349672912862868183248213838241698879722821472679890346165344047477004149951437941012362555052501544416645775834221282244540328449126559089328427541347241321303462732447446092086199802425139936138572902135520573876885084857425838298725699978677388216069067876343734473898212217149950267298660388834140805895631278599767005938219776430686669756776040954920846282238320216862545660044325387746408257984704487770672379883045443215767329476621794075861699827265172414787323512532367508279858037260212339068817823294217479974135260742565635781238758723194731507264312115731444959016358877359123378315069816868260718985966675966308483240862874433095091750460169562503655096070976867383718266552589554157746691267268043623546053111305400231594851180115124483891599572410885555588468452907303236160664585672106103462221722874238059145127865190002199849080487448145631622443149849049639213385453807751961365892089196116086989405745004821243978426453428662449642102918892283882048500730045348687787092467679171322248326323475780783396006705621057254351094387125315087472613903394704329746746626437472950946689841337706452552367840013344982294810029875616815841382112149648253243376223846999676489280741924138719019322769638568169469540001761050293308289725948776860212762429329520374723417857962972228152615025427829803136948873586679283872089018716891393368536626888207981901492007438047443651776745229991100514815821948653816709671703469406086184899805101253243840124651552472423993303596239150764408162497126102580119393147076495956869236168922570741134668404191306480355518547739044747077919634895293538132298107056199469322055498713301609308786896727468582858235163761456702295407109988651190271967323304619878388424370496471818251573261306353882702998462756728836206082034239018804880730947272631821742035361074416183177724893274574537506866632691137708902042293421151849230454588266116601135803969825649967862139537372539665180808776101991625141507337889054116930321028279134232419904260247804583381720757765919300056720105030750931924127124151251104950371139427603048224973738101939606512292406571523061289732813848056127386857094293166182530909994687263082875042699135271741057960447882623022808388080851815465307646007519721222998689810150971214735533222368405946929712656603842327155356701799972574265784221828762468747489080128033991634428371341420402435154473988539733144400527465344334870285902027674627900107918598455293350592713822401917677192150324435167253598372568361112129371516466894497176926051518664588588269607575881821661639818132764724883527476071281567175060670425489318266082450500943399264440042781105064819828195230151249728489728040416321270942683591003543985312057996665912918922863256413761292096687628322853631420621610395906087730168973808664783941770142423546401170827350822473506323474414919169970601546652500480492225997884130063387351940215006292174138793215566554598503042245248297633774902581689564514849362656391874651467666812551203494553217648165860397195661634378409174579467597237446272039474943511270307254583514675330930302872233224759531759708088949536065796042779898526798791088918035034365494150650040107662044154579651377231368006197862516454701334620209038298014697274034537053871469339403629105076753552573425489091433638629252439786048531970043578724229996412302924659105551174034499582919184087552886145459232771435321287210884373443316043550704589443767018646156271210550838236326308555481398465082638429890730893395757069660437267547907525204300230475209448704922151940681759250028081039557720019510390567334384546450922511446786938364132442382042180505197480851515658161476631790631678996723481547002003913009549032331298440458766886356766569382879662815729052518014496444482843298781921003241407093407030962314331293862933500276177754499792273402415720755773704222725643538056042094955321654877067444130329344836159674032482013535319131618096671413187234127044337881632799288568534208128146502403848693509403605434299801746054784746377588090916307062794361046992783971135069681662830108361764001818715796936785746438334349930360694135328460464148024757385828617684405496957121388168220819431272288581080765558418834029063051651542519873397206444532364926592220424903614966469687016065146194280739390624315297049839511967718784235553120651582778230585800002243078156045998258741483090154253246816117247993900773241006987836241584261664167770765428254171328675886336152505264182000971071007135612657470254602738569587735706990497183183353127961951395448911350497298060604989271701203616623503528817266681456075379615259766364682950803843889799894629851867715963814063894850064876500399230289190987266563295697848117149456214845360302836725852958020182997252228000351915438883204459397034130227533790732993022680752582227347923372573795614012774174787401921502814442823929038915057264737129687588478811809152252712467762794653228042079479301801955916005541488454374632289437216051908440460388116287639730146499224469468814252649928298687432871304043185127116112190526704561888213016982245326549546869240771636317330380078897682458430079268283004734313121561688052614511775129497692679384824584610130476390507340618376335421304571157976555667763108737035139568033988394439681578163970395448773746374715676044971245227289454485733295737846129658599941754701074286574348492805715855953753896609290366986592781253244923091367419009642316283589233495444766517793766840287550306360452484382320511879259611235256227044441300486894088873278180136186004431536838297766606419186674396935728704801072418605608341083681010629469689611214503283423365345068755357422705003377337386640859853141337119093218897207021298978771375508202884389400094909551747044822743432855479998423467898680772890698937614505127586852008384927969047995691419250541836980418092396173088000771830707274760305197220587757552232112947561077685561561311215988914215850581037060121809487295949120724530845942156892701745985595238659276754882030806876148206365637495761093733413609207547234911768617944478980074115608547721445841534343674533266286105919381078348571753306824905013830134108514560172100223628814754730033007737864629334683625314453083316550869663996921645910488990138249063238504600484912747101685459921807919683445459352553801251428163213764800754158900984313252859323650100705302508104048707415242165733961936876329182950094638848971944163480545007273366254299238865810935147120306312926619807771960628127542841657211390640190992229288183123351596460310239608002956859679807065057342503555165387661781896825466282123814146560750877934835302877221317942790398289493718667762808442152804752218371193647779029012371467903135033067967187841558768987209891596704896742274160615476012253871414071499776222134999705169158802621642401960403945379384667684771379170838650995187887035455314256475827000554628927146181339463476948503378123868835520006204728151409935589517576978145041917668108567848964706453464043151468405297818280422272251092434564270571288321596628457662853125932149118341612055391237756731301815903072756706406370932771952912757142772107939818905168956089999119951171210649872294445027405477478932714636525119677154792343689794523647979303719806563002586363286199929644275702276907024801165191890590512210765986864624946853268437722884346452432844845799823992256563208836688292328470061711704970370370200702110471425646368290583399497073303298679166110861146095835974532504969161612727658253486321086006948691531890346734635883112843186270689044965443632646668819927202204016105079588512603637304500622499556106923648979367500950119440653589655698246659299591074063058020260868530225038531981740020408134397031779982430986620993864751323775628663188416620493990093803112949549340313118457392568270923213941957639284036149849184023742386186491252100395965294085982756614567843330173534679650612894661077895289585936266822725966340523707507006358450769959291823703557889042769832662448188913459097960167531170134677152854038876432406575735619648019259826730737543010630670438781016954167097460835501113821435418176602570077530390019195776886127859757539954255571526971388137910756336556571345417913617514313342887520096067427383299156410520132433504076001850474156156778824690390774602191572467274851022912945840531538646558538252118294182721518893251931449832332639384074762513946380380309423104017038453222003707717457565690833117705603597744005964329379697189441495868635073142030807518821197317868460183100769682946678937825296894982900838916633509752320581103788403500294007418605870932777204464856527411038975054160774352760406332704883368915826835868567294499467369663620430644644377373235342815273821828344368325216488996754116225450613515707206955368126929681504904791849697446164758076300624575027355097393016710412896351146165966910354972913557389686066730078755582050743601471437960765891736208166100838268681482502224886609340654921922129300527402332923606083625943625167058873303843731699512919206662828107183633698464686140009903666105178844163207525244179814029523458702790605230258396756268328215795674280976417445981981226009713853500204650916388471318182267094898139632760032531488479163871107639453666136429220127206572214450808288891094728730788267048595211366062656603025452593159502256398070175319565455036648796863216524535374322896082408979713660797443679820776844179479204447533601718688343026575032536477331091313272645487261651801888475170789122695100799609470388481992678428477130602902747207830669383494358150853334294423734164709166283555434551714762944489578893206473727690316988528373317192579967547252323404644654203334347738344331246457097559098092930893955095187151463881939731830553650585575528215594262281434310602319411104140697999397867798990986780969816330076428880297124314281245055193718281957099985675167367344004214310322575595144565495143059284175217577263080259912692348763897080082545929080587596117994109574465203217068562265665199932630627500373066873162781550100827592869035564904147425918601006490924864246672624480023189981065750983503989743665301057893404033664120386888894212137458867561693867204707937063895857145500209599441644750271976697351404515778512403084803111212411315159437768231773675233977460735815317909045028285833981755260553932202196819359074362065580757231836728087295816397057238786435604805827993304251810078157224157146256046271121599790608561589247851946524411750496851589225119020705839864394968943766677880223701809245715085011648925038988219056317052187926793337853383419898690151704792924913789263401357911662156146125747420888016082978319615939910633289618264725811631054386538823613489476830702409201944478301899564460299003018553216472839600959656591564158882528773922500993775633273928129343235368197770134701946245977579853508686829224785693891774658817600101048434937012896925654207687346391466999676286676089127987283150471219393465162645863526184955971366341896295912803618242888871815702246665458737886884166770178322565294056609785725772240537817605226333724118340649327281175090343931233992406376034473864928154916729726458079148343484056096041910382693078455876433566308906899218719310708338021528865970675533868585557303359811725070541567010711641324606141334098032524870107144274845824327099781427225240811816227819809541224623594126690974748608752074766003200734185847366656495816802467603239294849020729915066147106019002171968677476543235479542866332935983396794340238432404344232701480572396689279263772153108652964136053950369904197453722793950909623409649410041409508292324283388574711012932624868035614950524865056634296434557112731190699635817889404463872436907235223176839049195810751281673313457953251761110312927883804610611095367538517835555804869342574277528962046929800453151751980147958869287958707515533382835368171555839734062172113888594726898785292032417077574414902778137861353146521711024960603278564410264389954708817913283434364659285276104423346816075507667477869971880121989382918803169710004836485832148100450419917212917174639901456124925860597622219386895203164539349335894693842384543010115571128830236298018068330329248580590614254689819928535720856802114744122124786301351065225598878539733214842427578714109659754382004487183669207952726597485075121653714619133454504983198606731247052424782271848422001259225181508226177934304851619901032647277897456322203091200746919780253096801777417052441213763083251741761711802245298900289706306247037367907290619638058647682531077804377752003541622990307746093050377412356866214793577423394272531561824703402492315340853827580255789388291406103104771586722374421565296422580574555918453136114202667996143045108630928803140083880272322328568223404974769459650933589883789334030813917149718815664122932532308424977491617076580531149133417310781261299632738962847199969202199482330114261924802708292139696913404585760601238103709391309986573601282958389664566174219306593700069307516044025475202023728789894041442180554601291169859914837483040046942636080910024521785674331760087021052827735318045772858740318151058803019568017358281583058590280134598272314647561610010558892097453630196157698622147885383256591897495432120642642989812415174348486592228487605906591284997506425882903356108825489848128513115908136888867478670017173022784486085970835527883227267471288732431693249196313183534666519297012061347474453521887199050943886731819982690774850748924636153367087546102920317479584394983469585199671957368911918343720613076506100451920758676857565999171758081187018691112825463530618820515078222137681563621536304055691646505612975637201400178734635000391678043487548424833757390532078047148938956315610065542759175991463560292232836602222625404035559386536529830389241286888496471922101488133456748748962134115231217391374818648041131450320958657270516121695054683329025547523410249178278595009147453625528987858935750181561381425898193577213176689772983645363506023248258316513238227784910072816076650167604879250139154885859034523870185211508013858233649729736492651312233130367093010111425476865280207791720325694162672187935698033982317875541966078265755366685510739985232350436640725996583236001566947890129107889080686319906131576599704683858455381854795988338825171060765176605583487757177301476199409447246030642793841512074197523700337931792520728638869736307918468095024565844873494471821952269361551847808173574762651886961766141377238861349456753395094287234862709683935909591730486501791044464125996299413200306254579895601318197754869670662989867257687650997265207662311645147839722398475732391953731509561807055237796315501134562862931537351772630296206766663769962078352838015072770560582739539470643362377349198314209528135039740185165709787046446046023806892321751307655888993346682513868612104395810258482470377817377718750691524760349343954038833480544989150683189467579763491833215669055020813349171496189613921157562329426000087467240160519306301146419236462174593350442648735590349337861424688337751948566723906724023357470850424849890761628246105900907810048249533075924211775814352397532141074992146141063598158065842312744684394881466649526362584912408647966529819337075857530666093419198876323112075475070724816815350389327807482972481236350920991909139688242359692113199698172934615037359276833891228017149848122398546034599697780867556045126604782111746447803730697475294991100798099175894281122699215825891626769165774263001703932328176928055573250523885927834005695695681454441416399623823019717348030476328474652655488392830091847610805914239544960957659203013915983066026086347311443698720940636791016658819502773419079325608548320113271565444035613940764392276659965017652486114075158227644430937708048187894969492041854111931633367376361018174406031033450693850093879041569701853048754843703232804917332416026146853649548759651703105483949826280198610234417358813011852094131836753506284265979392449640651347201562150624496404715966384808877788264121644239743455369280354303876457893127856356846134859466164402186755701833600970785623696730645104236500397685216531374471771737165650220871320743277537796685416871414135595651661800027839936615653794578102019697988504063173340168668752347662839166476451973405643448202936070494460149732725846076023727924811162794523522623073298847277489851013126877654270786726481511127702026692424142361925174960125988444012177890149398695352815792995524104354609196943939263030166910636288683706885453379544577661199680646054416757991941850730881610030425832033407507738390747667553512997505706100408661163196408431192289181083093234490106619570075224281360151247748310760253812348712135047669924747089078898430973393505037891264035900276830590934823423852351398359609364306459304081707501245535583866153454653019628090676372175132220687168351453945441678738386478845449354061462898445527982824265532629005779567312911552718476297172935572459325117548734316624810775745762474956985209464402029492934493071446345883101752439530772641471526177791533086936562346694173032960149599244579837802500015773565270245828367979672787897919007888168121127682238754535095042787142484140274775389058284538201542094607462282710872776992766325665879068943343683381950926812636696026036078524890164232509950311543864380074610978490002194103979124389900670896051979672536375435405216777777869315067008809021505476748522495607984260996536375840416380194741366394215692289259233043782857154440047005905923105027475957899354096961473719116736812848223289647651396385972170476975782306090808506695801836444972925155462845227992375371004045448537564948274466466855495272874434125681707305905516431784850909473878628160113277825990293830367893379958580543924180735438617611672409970406028737309238436939934827615120182614356837435228068724751587055849020195813213858037490566436904017964505883711207608328157096077049110302887652600923997526335445389007208324375936227167787336503884642737276986490926288315592279353099886820110606621569921257717220787534157487253188034247745809341580707476549576379494655921894543118470651455357523991874559230215933066750966814190979714090838900917391688049112981621894294250635786869952756792831211556721408779805164643446537716547641919719747757777488541817421162550563986614654137264388145012675994558204745832791798842554141449286607830132877227603904877945462341186378238952834901888715141235538211648931757231491680770622351173860816334885335474676013759295446942168659781312393732149036832930758950341656363934681188201491737667756139026275172919070564483278629634587060468137883534449734611956019514768517857907221317169824479874490754142434806851278675618847516839364635229024015417240375388183420741088155491051730556855841127742081178268639673252466660993733383372699824188081419451693387850743740616092397344266767353174472831038115121462871280133347738660344763288043450262769866285276230441182635762248243784938995074471553893037574599819468094098638234822031239641598105131302323841604755380487050517456511748698874239300469070568536920247304166100742176171903123065274136218881149406411681506654642593838187324464223621498886672825891666360242620218524137642297871365535905960687892068074178087631155173752038733741288530689080578848140281140468038315966097648773045568453327516694838174970268160089956201935996984726614189967420639501387883728145929088002937187980580989192648238700335723681659004535667318873998428946161045901653986187019879595920145530312718466240721610245406315865560131425173043755337057203658491604806146038925026109274523468402567084741895586570969381425272517984390623272415539034658485101950134146049016232604997180395490876118993899864958375910818941346653233594638733002958001540064035945182238454896069192462348963578305171394991248254746554667328184435533340635151514573105152665817888957348369684034845363942925462278780300928759535966712170685984030845984762542115440262078055457266620348217471039430388911092365681860104597253820819717205185414259455235766951515818592334742969470981684330836503724982555820646777587856623465863194146379012153171941709879837303687027427294562187768418422277143566146310320383874241607503674471098049330130867609719237365365767900593181911182129789908020621028294103582881324381812915853167391761155310972070801051416873810801592884745072287964184541099766219118259575903268976651944791732117165350978706366997861752845509418547840287781523017956081965459202807485107832535744076039091358546832055905132157867737778680663621988778234215797363164449533079366693419105239311924655538718358666539285883788406453460721228481948731799279874759764520517062479610520044561801504261692486118058975919281602419552799457683599615396374419617190849381738084254286976788838478423693882013331963725159058255938441276212556421583414908633060287686588958182826356871729725819345378281009966090450498216455144062789415559321287166775121235376192027035584049028342829200401832625593265390052570277476914363912758745033416190567954859901213458166819444027342143328674031826373977853853670734922308493307363466589126412006831646358909132921344232288360640620277367425000196248625887490892368952970767315465054112742669422273760280980448564123359717284107193298365106809404639416640010172512129230776605951321274354903487020834642707464378757938941264903794596266159474114783435550267626584561482386531890979368195992410363433023959319755001885529130949511989587515870710028365751717638404000468464836599418456579664758580088279336893413482596451713000106182337977620302460229741581264678340558870932404556432180269149984902411050631102455919291881285001651760152147639848032095365090683239536188352657103100415328330569627315462218069322024894998165889051868724292238659863881076344837285977742088041141669442132508185576974831990942053306206512654013416197657325767819730671475905228389755391544662157237678216608841105497160468822636471969100166732447695718183353182765424452885251925419652142066828903659613546969885191635038130780643002283786290623547539816223846013730682311997447385275868524140220913623276271937785136901172495957229331012440580173997640071149729117286000436337991811665966974837793859756150713878182097947571201985098125638198046790202041812080484274824693359052435548398954622601062640789743719154439757985122776843055884400408260572187524402666629562175904058821343574375267486173484566045974512248672433082147505126276862046951225415521089855972525496012647839637449493203636011859327472142462232381636980069724910264209098552415632707207677991629729478431699202619830226387179309131763212992103863829307588696547800290634086876434380539631361324353197841911782555749349882134452218998654054754348430621309679689078045328143689625904458978728543754674272722899402202301899472464291469295847839512181882246630090922370818599707101710356054906921435593963377026406072643245750908482756840919732605392254599142737091689580613672215578909812042085976373553654416558910267737807217813458111778368844064617883311252415228551138697014577709590397722806489696742416623924576165120192507099057114927014153328494099189304346988490248783173109278429442651942631791218712390831306763621663545295665580973628934729967171276665375749067412190865988810729029269172013749702432441179371188388721211554984992451384327509775767597073423670054349015013029529518102829011363867659158373880115895669727922459520989372901852699744423677779195287261486594024368022356006863456548854902810771095652396326657996930506287197557762080285768375703069617810868822216098897277813897216947318391651138081756218594696563209236262346676916526517020938747523332043143056746739779443187885607533279419725402753630831969727287199856204728845417269498536121968998482640632074152748243523354884350621004821308510857008950582067150017014882301181396056876604024694382486329392212144740810296355084167424216189071242695765216171767373479489909688164800395109989658440129794881298359455972733394508830033142517049157217760703852172762863796500168444540738324457732867468201263591527727425568218761028598800687451588702012972705240784312450234155420695967857987990344715636719520142588377934695317032644487498749902049536897765262362228204166194481266944211805321613637638960794982924672236956481729882831810165666982765894787581503746527306546305078513107204850824250927417392363497271882313277083763548944593630347833255538996510143291976494906718311450697175252444113518283047454634662192881677344699356584210870864826730705290834854319227147796074207295995025788545184922666676126858110682206762919968765136170431295489875815006049137475331753539574020386687689714630933435462177707920663947563994091356923051395196316184656434957901938006818927191368796539458687674162597465381019675880434204578731789117403959882818043483478811797261532729051665581357649335454257361488024537791598847087374487601372283987490744352473626373248243649794219138988768018750794500948580153352715730478432808675000488084965586606342686278251889931383754039035601214148325967986446259548384459319976278475094749017069574984655497550004780661161350296394452541504005224110401521956559732137836903025668440576947607208484559317828818091320786370988161376820381387377481298682384481301158533960125690725208606912119770032429179155231585841538221144395539631977737338734809892410434896266437647704589166538300891685538870951811740176995194794429980070665807045397027196644918655428544650010212434028265011970389764437152956119786326198125749429397901315367493079693236655613822404166425953149301182842687559320920131355231975209408646000407196947028496591206245513751305090858036584220663477187214233443961766372585107888565522951326447933430769212693580603080585286441867328691380242745692223519652613719251223425112743167324790666741067225385806692127070784462666347582625486910961400675467861298125948485829187837291345498236513434538230203962154630541403868225320055542800840060083565958778717294689315239854922433097515386256409999449624073583844890957809902627768265053436466053363013489800116185862559021553162035345170708788456545361862493648589826243229498633327795366638846738294655928735615649795283231016353335193369100625926872887895047298296382804958992065025559123556782973719765642953905566860180633776547494381732480468956192564525582520036495645658416842423555887539292695535465691726424109460536411504512835870491707620199761331228160823860676315434844572871765368951092647093038195384224845701597007393135622894815141253353406036667815754339689725658201335141506590542225021163481431437574944290157075542556894099572883787528943492410363828540411135147873527174875021748573905618987358737345581590846159824310558912371341160886529993590461562933440230800564241946482746896957501308604318789019347756411732072947502767615946764386377289440061736199153935577854909609431868281715885642780773156664511578805194319734050906169246581262453573582839542028321783320779696617631776466547796487710048479746954614957669351663546771059855595254411111368970964182939279438176043893406323396317246074687513931814065697060607150900824885887755124681949631933081223176419661384409006691950715942916691543589459805640193170627904576091768342475193556565418693937792220279923755583134899389305577132208237593650325893077826428711502780613814199007058714516549258233065690645203079836032644746073733470998577414450779235783711805698430035240782396285571910614531084013201622091611301041150532433613108066235431061559875511679668751917357962308647548638689086496632095243172393160244690187818241954280082603387890405528772636333537827623813054298551112213014895516997131259414398515186198491610872903366837187375223107006833445472040426998427663159963000491169964587054347021399154854954191734248011762082183179910190944507107271819957376805063087162298274013288047207113508190627655426703245267804670625338697058360163416522766504251023791692299574724261079694900233411756292729772295024655586078653782796132740349149918534573136810994751191552566691841891470181425195649743770932146581279609570242255227136072893412194782138916123545958376983417775749236660999007723166178225581162546281143454824961421986986246411833270463305503322100600115858956909216866400482714371937423759677230199772959341082818371152903477591124866164789293543349096566914141519843211693057330703089416736632573924452957337359920808697278024496885611272107656571242309259856571234094789030237245569344749240511421574432584453541109479491967521164413663302114719493954019482600179034999116499409479504040599670065045975033029351954636102848421363988663115124718311733680274860766973431807688199666447617566198844847687957046045163743066778676450955217966099101035825256548317268759723198609270351062230210587169490758998113401610449283070649203711846235609174466034034738206637374392987940595111651238748539184523836831073565512724371619674968990495198987930812190732833458318391136500308041008445832151024400137044034649828710865541350969562728078087406194238217627217745756807187625318940948254466173168964797511917869047207214464905219683282435598253907391650656761950064076467611976440048248825131603885350068571559575472366940471229357761965639359715849785557933798010457685870106699112222204338121724249591575937156954161569986006696287510044253263225327697602638291306947519618400416573984902407803909470783380792019363337963903309184298446102722460929480323353499283109044744512844770835672679299636099415489524516986693714574443315590799181609420881639328238482733989529236801732207999075688365846334040899784246481162152251234128576570436140955566581250493782782606286129013615199273070769786197075684550426587362268919921061677126280438374262517228158649193050339644842498447711385552953307625718472659168620611646943770606564986846112727609266398614205583460810819890996434867311377460534976044969451975442213535686410819284633406921543354535031658686126359059110881590907261736324466848590289780737448897778023747552475734885863301325464367123963852575110662126670443046892213254865541789001789027169141006409289333899277810495538755117670877846933465893993279325254580141508233772389908795167483418833961025997708261460440293231908760011755408211951909808893190601539473671987337563610749171618062132565317195884371120325170963576803703038540880077682312783575635246706138036896728255322476560825119648476116371156478867862673211071727137308419288271617368241212728912688873098892293120389277095180798405199236263056202738469375080258367014702899385740957247129109537489515419948707956406724887696772920285862489347082374073963622966702966177822568246465808057047400594966692537854060986374745668212623146173911671831851448777727588440920092834293920391336206758797809800938107339712528612622859188912791944619677738769403793504283277202734354199242608855237926058549409840044718839450507235800104901847330058819921974547870803468381296190295042328163237950180651712689213801662554947313978069200807973266244656368837629783817396945689526017526831452312777757028957140197319549535263501498165522755362633551488918768502179756832324503772212426068395499029040003808075234509885651797373043551643455486083892243043530892280321283858914170597960968102450688046727468661336373605532267323821425540479248313389065016026122793217129197886730478564121199961985710172111715340918760776406329998701183757850324272063748070247957111831971403090734981485895617280450705402496555970242375248471917229984132478981140660078723273874773152373815115612439448444305724784816700165680187825048518926485794700114567294643863080336119816236966537276032143091914580665514598919792626791315754375847593889221778280247156068985658331944054610431077560260087083657575703962733387147108582768779685890937119976029618546482690115428216470866472820159684910853942519005035639063430020771597194942039329801266688090086787259652875446897930735108186709424854724072707288076084254690387507137134934669147384697458570547259245551293758239910714607210905513285089741653524822661711315042820693860877261424197396959366899037213796984080265326011461272847446274902180782195257217552831045719365636532315931290494875858153968013630786793368209047370134511198140696920020486493464731955180444252387735578277352336278481298100120070240911398850182440966288692609954731550870121840365120346581426421941365684506398133436651436496326066669503748919847020335508655556927778761274850770249932660193633033374755565839840183845276057156261316939690572409156704920369977501522313634435838951679700406433753641080294836488024095373517207795192565096000960051120935253530488580511005783407589770564667469841343038954463182039601778288603569963237817664924265651711018644119545272449667810485015511105202452843092637887923926650347596715237745841617955001857782030515069709583863436201993137311451668335554274301741873222883074291017657600892705419306385149923612611730013476995653310866364140019384550654828437743652091686828049318419877587325427492066504841996241377277937583155446211337130989014906172880853639177218103526423963091784431325416718997291390736551547177485752070038259499584053650388760162876067310553200642209274657620594846105193192820131754660499366480381543396219869294966111689255542238238939756623028616601094694819344971269903541736732269005486966417412470518319155428745699556409575739826470729728629209131795399234432979976818626677917972234892469072911405675996637453186894920070812504905241743196945839292218422673919345424090109629648992152456113482603245593475223638594167679671324350619745920953237776390480002699283529474476127046936449997404502749309403095558102561971042168072780836281021781373633372538181301146709140436476974631128783617571277219423798599111374764272238057097409828095566866468566388507993878475026221144456597503673815870828334050266168878424068784239465535238640870701710792127413640910038923613567614634802699013082162372933776948845981209701989618432122082368901537830194543480965548113474849887912133949588299792494007949023169372172966605333036982285367697102126610543438753224401650964509098452860150133845507605772017477481912019098513226958929518412753683236686003336986943450871051720587730562204175825078937625663884120386357034995197202318528761653493002293663742081361319135867831012535578062326058152599440038508377130188524243462809583975817748045769573065325002449769201355678810178216268904562500314181774054443773252821568077009661551203815161146748664020178561135753855947686833420515047734056201356407880552613968598422312708542196384415637701769372471744962685064288292456482511637930255450960738710178203331518152510955329119649891302562677754389481335165602149847592700036669511569873164308361585077963150801568578555241569494458623583823037625833045926822562385595981263207493439051204224479827459355651341635627021221191131904503390100197140520640062495267415145764829295603918210866375599947773274292218954149753151495370725475705448322727078364393298442403900736414074482165278714033907524489309635839427495394691817354072539561045504893101969772962919778221837434412861346476504610739928517698650722365775320093547628590485149432029953028707575168326987159240577203037997467180706477518969073340743505704309796550232114951781403223725720750929495147089651724473661373294933364930618038117795616648364646550743349139862443554877037931635084040501109694338122484306644092690136386126559503654088865137545734820461118583404230553812002694293477959242303455519667871814965679973060183899119039593266919356438790075016945441499537470706727966029672067737922855098401713741598427637082340604997307235863033168920822367175081459509942668250512138685369637922314201620319734197590652014097751581164431333948936099438477967540125745964983913363299725882639415127546797160871812207803271070345717117004946784137571980933801770978495241192712665985960661523297890329491548983290147902597005919883805153856319527664087710528128574247242375872988674797960191911203357731836897771097835706857103266499760162087624900027128955054309280156072908727627556190194538490778554426857144684953483891640473192283702367362700565223974788402132913528802305537444134686982616486214322317404298432502611306487797389298277562864984536674022131564494919339171773484120750681566679474348503609998837914831711675924950940607088883610718360824574994682204780173431965050722624249262665038235589662857172451774090251201507524274574799653911733328117501318116878626993373157717046073872936787774436234519897742760280802440248988742457708575835633640876288554330185593786692731774715469124251481580786966761414044722396559214943885188504121174972749133484878882660490917480036055815104392860076734064715427085715249924644583891117130251927219822642371025275564869891654121495522250292510298505606870959309855017941569162921275962522253062285387565258858870930150392343792598655254324628614167122397149583118139649513611392668697231519170799065156232863150020931681962295585682121038119719500213936566345834458259086768671956986825717590732284520402639374518341724650360064474238725891615025992921421262406925128342686542715675836094713122245229230748042771776256914185261738086883228792869918460391026482052509542063300213013072277986313011136520032906794608663569839709656521702965450485851546162457591411024958482497131680340692971766040207651337724222642786109908449985892098239631920692000940516586212524199558698540407331554814367292030817504486622041115805011330203351666713005849063135012737161943331365518369024774511987510820045901616134089749474456156650271852854508548248264187433712978844280641904753503519503201331102716507939049979896366807865085270345882745573892241241160169958564055537611423152508544463633068959633516184671031172314927780352450096346561220715182355447466939299840648927033650379961494212411026508182721446115305687159340195084109297602891204841161148465957461020128549557866447141108303577961933375084564072090228996710211157127156075331450152207242655438069185841450858249084602408802148523073520120791479442707036044054376861564293983811196625681054100039687940826557458680065256276745950166183633190922175745964367861937304411130601163017476584797986458111920791849094833374906465853831192232921837278057412238883639145455572681241686017892515453300461066952441223826801761445996322867272877900216562104913308399866317166494226917310932544626204090407367539487452201690421554177850377683947041583198179713646737586862789224296094734356207253691504931096836365868029912182756655166084300403787420904018298404471763817942205049668913626895890740366928123341456728796550493559115115990377353188522233607645670815914635183498808815542625733317579157749208315444523576210890252928649864543594503773139845004750876158940936362086683700806269099261568183286094255268127889281267445165479774817114199715628644907480682253806341620559886643976454784350767539403369672598761206087452408122334506865433870292134598319914464156640125312348981960620621108260191515731909734739506396734950789182693082575839190904816478075504023140805511799729096091779857665011744828865211793020091187904675050917071790429333685266921999807775472726034803659024338145184983912804739063196867392815815815699441314834901187607052122369875731105126038216856806654004874764818817999752146678464708011631271788346729169877080448148758048436515649719233642687131632247455710668275439389717749550713674412895447612674661834469704583542279923466170259554105684724340911160581465639431853000161914708523131493658571893096780214079648840269679428342741253708645233071551889292690128732107062347692338208200311748743896988544817879136452066449511823719675772961018114960168895743462939821992083981765893601913814604510651665610675494186788228869833191281443980553816703532592776361521754650578602873317355521962563865591618337280569557708837449347132886502060017170237711680773261803874889991234019634723555876276109433813270933041471312305976135017997855291109251745617234414205524212045040345797973062818593761912351870999347970983672767684437299364494918959942989326362162967480529411484454468346004122410091919100037526480756514429474220565349785691745505022018366801671176130674865080085462054458590285604673325181182490018761566076008733143592119932051808330767950604584885998333587562384359143929255236172687758824696706990708812337252611870166871960963721119093197867477113880568034234429142971149993233711242069027931999170920794977409734752180848254778576165461949919872048509888968407981694169509944124952459526568841010114631791234980309314072928712164301257618038587872113724768309863191109348597777126275947160084685445065068104537294848316733170594911516789805257852623476665753212642992245105576092149621807827310011375506208454726600230446983896056605686414292632189486642251845469557825607284964816587099017816156778323934289137274631819732999863845988516567582053883117543035956731988733050078132852956638090331109130462402008362549240961454472930239986360640584803338521858205182347697678005285040370441816976903893455244369768157890332524351081163820154393772503673382737520269688307975508961457762595056490404276643275576855696275785820670771563122986762236333849280237949918046646732915743874997400539193000027482252634256275933965719298694542936805026445431621924982454740042350239109574857085900064350611252534066870198697936650959277846996488923218259450597635126719562836329778324227044015240496991059227906057244577597104682312021908465263748518475224509845861506162933811894050176253703351904501570003017694014528459863525183678324814631773804834131761214651411951178908025295347999495665860394897635304428864715011784064420113028103071508070717408774872643902807619293212894819251043412610388990733896064868728306366543484037350032348286701593816067231574508600476621289358520618669361712949113673391758331806683903787464648039807557608794855480463334256337526581221536380620573196613356897490020678962507544059831878283293411288554374076123472096928832541434229656364745542233571882250813852617837445457603145580461247413732807204922910892546070653330867710569166123207512830888647836154541681730665753175465636445105793728962585411156496218911015120416638311515152649143574492498091005323548191485661452321875582221435562600467907973193306675373460146457685989149888439859404473040978843684042382799982244379141979638885985287946639047467763863609137638235772594950443465168484699745461330169296363822163810087424865098744784883654521137933279598906788231841273882569003680133894226975969820123731404177425795762669003790791930113086072554446298395576206029555882595639771400923543598299058115906941058438419085797382826556468356541468711833796016711763054033189188121902828805840449517660867916062926174275702611442934072461353184903556930084340378384120450335063615239741582279382299372865646930711319280550217052014000654953339291942082111169858755426734321079133099784683676331470508630123233047034200573618670388084551534659183774769732364973815692276662401121335812036216669488125237613029992575063667783191516915649088339401934472884249295377745621940655226505726625303729124375589752144863900224782902788829742418292736517749058113435307982639534785501833254349791920406890501088647813065293706447516898013693447139619529760393110931105418008759702519687985002825153665854404215514700714659847643406282549284586248403808940916943078883862665247121190952353320640765843618826979527568220709183156552658531546779205529084328924031683679344367489663219111256827192362535813663834393311097776662655794054575525044693401067946642457116312513148750688140917141843534981147088290667837664212402192400422158095049105550191297125983833692241770985426835379046398819573053335274520087162439182105774461518338060772265550508717118566528337218963314796033010004512856153142605141128984536805519168541290209120876644475684789818372375117098405871644789267138964811593326409698542154305438660418974061096498756638999805530878005843620805420397532963423829178266752295535348317264337920922276386332022608652924112671542265370479700945964229504081750004186854304200673524394456304731030043469114472849861113844113215218364754121121351492425547697186241156955852714984165996211124554574713286809664242481233374913937023347121710982352815684300650663918018628741068746224645179448416582921777761610044357963429330302207696875941782324613804156966346679630434494505826581072429490483668572577245604222365524754377547138930785839169232690577949639729234395180259310472547909533583874864451077365295978023696031691606554746871231379804447239086994367321911728115933366034205510084569999914426889390522634689698966704207667699635882691423273704513306258103833965777952072725316345913885456774935048581324561263474788011908764127979524917613571082679063679482323110883845758803322214632212256556952650451460434917253550124806507296159213689495691820836471469644321219617755920378103760920024693117773334537417528080863697330231438322098544103424356886786967134502691259938292435110040932066279311732521101594380083448468514825491960747341305865594333617038163838359776452360667395876429800719444213746026195499662654406026308297043826010572919400815271372472696807143516668436425476826687467595328289211525377954538355837852488901554082431593615885406006290602405009046107653894054544537209213601029777822326564131897190419384840029765157109979441578449576451840760782025555457590882596185764778115669136228941533561065793602024753401880559071396134044305726569720492889278277058408575528491085059013762574909158383358895599879790479794723230780167162926271893425510688115634147402630917852564283252436479648467245222495743701150117130950194172153875255688430439620642232702151780676190806969929799300144528297375868559316486249254561322774076169355558146731708103079979675826879596678979044560208085308499358547791445104842653427966666756663108789337743414418919214161896341914580139280096717587948850681145497312054947835602540284919692990029519927957467439911689238877280069066262131238439992397790857077499358032555920055650128411121021779102190250918939934916668592925897165129627829596808042049345245497142957017123881380040201357266000843673373197342085985808821427290971745544899697378643624552028094026516768042853305476410888834461614486199041670167021963566290077440963397532180989415589064538563494750818574176822354908908808742858779683996272064644354504852999083352903361821182551591930840634531589906949935966457950478103248990923144622646155943300603048558516255043422468498232972933657943559737560183315909916711096239179554926620073604957695862983131316189085606283049019318165868320804250937432061287878325513477380094846889693705064695795576192483407248653091655989618076655954590087557901106546162120763917676357849583492388231308605047792706553818965899657209632384325986502473510854819742249494950422667065686299603018576806648901002956721260225078477580239100663343370018884562857358862427259141863200866997657168634102735858533865170563061464271216358732263705044338826610581419204246714108416686836262429012528885413212158752863945773086914253132112966189246971808034824956421319139861552681099036729184654429985598748951387246418635609273923368904044996415026442175790680878941834710338200501731828257520303820780715799354374917865077502496792086444269918098684782043588694689037398227178697705255731167441398098475658147081822188618489276168755243390539731734685902041768568064083769578996372422631889296459941223352248749601379848495226015568604587769614772684005765350809245742533737311776070232252903853064480747604319856905889532615024642469120542583846025541912720166447865616154628793854506843923995859907597460839812500360349617303634079302272776698213065590475356933673392949474777419880138339423992815254701540646913859026335759609188413227653204184174941077692417643084074877245582269763402451747749828923801743679919265284032135934414031537343025973728625444189646472175592837390479989669524873613697340573212647444852533717471231003492089780457713458951551654428715301112782985954947368679957595835945583366017440571718033255051390465481005967999989572139681988382909565488543964668206022921821787039734154029799826442388549044703223569978934619546488499208988079694446351319007579557338625138864295339265449010142438070323081373941489626989667861699334935594399398361817150633797375292806921780853219845931917155951357036515731131111491720499945766907690722451828992478015797019363318745700758349519267862413177116783827508524104219162572325852547556761324273991126294155242344661771903707094000358701014343154277139597983852915374711746044965521795839405407675314773550967613129404918313431006408138219989753268618891772190231671146390486523304176221215074152553339649252276035323329656872028807173702197348293843491650413856653339525787031334216313769922617725506557174462281279230769178331181620394383769610312636211488643901187124028203489246140827687202512380286845064926014781737971821279591047265936259696973112529931727951896789231360033183127201299000657443915065693617369817029917476257686248550761585002412830092329691385413043239849628193775052522713829130420079407306800622191430252123788887990179583939600942653095852300148964140639729542176955217566015197351053783772103965160106888492432561104159747031912564453311256231898830102353212712564071038909302546650125935527481195671682019713111601707645973138992650706375871123156519979726809036930177949511970387195487799064989731013693810417495708175275293964296851152154679824251909537658764314877540587994384015430557716896191044837620265571402508422309274491943417373959187683408383758713753720172790563467374914536808053995550607084825116249928707658513777763597069775944607211074585033631688018556260342950486172947170357934081460998539060595863122909132578240643812786443748969002516971001225642360106567211675112243994628430918746001152730317397522069965145766920488662062516145433012166081319810917831832243478616524292137624891471485816115005539640987000212984556149102372850703093265622847666109754947009640382791223098155697807215407921623890771402544112648374151662634885822318513590081111197539037179464358936103701277416783308646580201306703141053780317666468853820196555577455878718610303913700841225959962376312085123378506396269275148559936381887956037883504194139570971912184682667367559337314517869642522955373121663380323232588838436011562038402287847869854592369239519040688981315432608247684309649969845300824931876555984303910035650022639663002306095162099302744700518548266725377892009764785550728328148725815111238901922756303494892332155555724810510836779165297844731789455000388194168700281732662544739562924782036553946964641608333219318765619778011887795056552945251913459718884570576723223179061704767456603116497486364283484251923682989142105384341035292336287469862168929993685063587145216539780414783460516930023470777670609186536363529363167587296964397654222421227783143755039617213894495817058023515127770704769416907856170866286512951926675512674418024409877183556137166925921170173642121243483123176252605235328231697103641866313808094752867348772085100668450622366416511758760376599968116417233608914366110786995203791191023746607075279384526039140199432270419692546112631049030370314984223106507550201096477159340106177331779454901817484746034477906711223462870303025921527950445705419142799349789798614692305385954669199349733882481444880287053377789172641312046831691119613295443802170033183793604567031367689431945569161684685058749717713932694178852820220533007123408910662710980610541533319387447790342910216037596113533136928929700715851784726723787067528229186115038967203128325534844484933268191590200683770434581757396608302704038821262844803491684261114775275386247338670339763780549981427002620191652727279425708151679447179398444607032000757558620362542375703777479097146526561989521006041145493072214567517766607646376096381371281556365977091037499107829497792130917709692516450963186937651371556759960945480840629067649488530330922356190047965139314506472289547835576006619762077567632018016052666405949598606134253020252970316525113850796981996153728145015214451047482892250758521018550273124504451537419965380032496985875234946089762175133790723012320580421003265008944231690100727547482504018908278097208434339729825616805136842751243590837236937798822477631842498203600305484244100908293963609291269192775729299897380508861146720952454971299286155550335614652432788347683979005943745165323874623853116534101587787405102451050681008499044148279495703250364601370170467835889749089302895218192307656195933598588135724188820340213054165967531227728931242568428761700022271314140973558058545932309050162769297656792973195801507691885389930345771314726055212082445696879875642692432393363953824472338277744013713755500145225554091942747177261460696163720713563203772949859615353175207157244770679774570629402355530706057605263283543688051803712435702669910934529198657949272305819894275962906969647682903276945833521944682077628666830525249783294454362641203686245807009602987668274459426528394219022833690004134694861642197268823822999401433132319340374191283539989442451118210718075645667407243995192943077269208604768697592454874511163228909020706515959666645298641158236164603990554781757571480290964414652235071754922578254378063455697369729710453386977435665635310822174939503803475972084981398768371881263586955674239125055480318003877582784387045308105239365875661929923182301865508886713270084068647196872260219286727720003457412530766854721658122666013765406465553099227394722978579997573804467911619641191577342286245918026655910511632795156326570351795523057995999571890715277780768022263273725903902807668973491537381840601092478234339307818289961134337898994572409076047121344240620066827127635330205121924835169119327823096400723663664510457959148202685667155624681161979063453254102669108725635043151772157124588710394606202768876663347662013642276412447339251172540197870787668121772499388479529415626833563217623473081638928358072559704149163871676248670560453172399982132434772130376871213536128344459020937955102196869798862961535686492353258947951428573632340532383776227132182420660550115815358946564262656662127485811643435706479424734169939303482651319707187479507005080142307179620408176720582774173115814436809412802836206113003054272097442754397701774507174631065788277876816129256795077719353710787818881738099352186622673523491752936155418560634495995973302959338199165617266857272187227650923881288415255142185985509062717422116483761572868646318527575554496198092218527535481593032399029468314380757775655933323109472004439735618723416301019677364569363705973673606844685021226620740230672700486190577959605196982635524753150186995608267959891169690583215030797429639121154231480805979815353835820958616027184851132582500068371989229550533461908400272676438113758146873533672027317835617546582872004355074249771067136732672058904179218145485861530209511666813970643260974133357808605893460742541625576014755997201921138996437080975005153620378837314164226781122445647787291398139848260375108961036123732375377313460968017434850419864509088682577610459302661344945875444447604344278603903449466083257032059031181110149346883192578314262437875990052670065865191815301001932967275324754479566976371277199984683152850379629890578419884534414350947411177558699313876726172542419096660402400172394852232396947865445018384956432729040051935790387724063864756909835144033092985980249001436860069237861442559599489328544374996116875596058242659406292506904619803288615273121017620192912532890676083886031089793452376225014184266441174287936816006453138709869750115706833340944631351914167267737722671832784757144559701791997920396741696506030152488663797574524312110150899899270455118806862401183396200948943297276235446083408891192936106985566060718255856530176903605874057856846099878037718779682130695305533801575830566631904760608759062872641604146582051894120308379503662267223499129818978952514329050856290284298390570343444424009457729381239867922123038309520802232031071271766107325264412289443987234843340964618342608532809683138364745652025128313977426840184877798625511201051134457344986306460690575097835578324788759347615480803599356718751965330676712295647421348450809869468337345683760537588828281961062678392862813345456123338272740652584820400945697714403075103831893485002643906409781628641716553997049618283275780723847450226768124046097995630841150486669407833550445217263103169624437295091361868859674677795901436424572705336800350934937294262029269043978219539689522744961280860720052330721670372898028448446995683160983905341559308199518119932993635310183919608645760136945492547592641158324773816003453370294071056888495429797049634710799056809651803603841171164524613337854966803306775503325982447483201253080426476519722683004506574358943028538878681923999645766284127641945986859193734624525076008276969728929219692222073030857768409560100812877020178336121046132518319339228639293771575813001334174289233840977742093843156167132874518240734992420575960676524440543227444645089155340398853435657429316311569820438557789126137832845289897779421797471359430785047139466775181377277257717642391625318420745493713554597289419310078873487836071267675815548914736857152222708043713766533403739738540614290837665935189540077763313279669540033490618963678335330419909468819037595560839932471438075877142185429002807428461964626963167332002276497529799711408422103878570407007302238509043178221334707379174030919908634757710813851046249465070892980761724903902865148854725958717885970339916865857632424216284547202253555707185576480520931956127646707442062791777586597955749725790196392824614978799733692694658540826323505736698623448511675700525537165215373736912669896291009757571737871333976586082078031094161918097834201228732367053493341340349565688217917318766019686911260625348680108184127168588827496079278041387932123626613355536979111792320844415358977845666936130848753341607112609346004641319819605063797335016621660379782013441675626230131807357895825443899578039391594042525246198705805842435818955680879821885950000802087881328762649851099985499592687498129015748852470450749428370781790508661912067921865315120888913583854783479424852292279954409976085485189651439773671725476596171031071787034204976339026646599596127451721926269218502055994992188280032978290304121445888500028344435678367238228847743836058629837204479421832812975351338947589658410489018163328021493116641881891849888967091186991692602918402808024830451627922410432657598613621711450673783711816793910111284371296722852807761436205640516365850041671305966373899945625938302851268226560546645276799626107087517679992732094840712835262321211823200681952165506491692793879814169923631267137448005034693483335423423234424114904692608063246213012127640337853365392891460913680514381114060391588893744363547831033296981123670361852829113852686665462371511860700287800889688015177009653241852741581451801357826214134845387111374335730368841298798779439762942191909996499767321096434095411480017775459963789308665926925627218117734657401812894555414275642272700385818156357709084452645482146400480022133927864098757700624666209083555175449200600489027060218150818443121547546211890677604573535971109405437517674451310097573238377670768648358656847534507054576727617724212977348847152387463492964164634767793472612007485234868349792887843402786612030191995947526450029001109807258418452608099977779380172120195707223161663015251501636067710550955907829044453120510317729020161600973829663161818836380339195548220403396900823076440010651618872436603935054409641886350646679077139743796868364553846663781571737972808601911773051374664865743236508221507171384396542656926654210022197392877441386090393857750396207833450451342910038101134059390478925264279915166318567038982167915471035473824173484382171326482629485684484286443114484865261843351920063062615433772223946307744554823394633407819800279185817154730810346931562309949480952249722517835581251798966373314602234094599901669844772626750533336866201249908533943160678280376990361904207719283597011889676305615403723661322923384403858847848012298601464481550566946543505529949734360512788296075871626072374964327383992859821159356550693516406634623181223772988220196509172761975801294400612306685755194076140448891627770636396354784230314788395310362417582430709621034903779395106297243786000579275526200572523055264471164047595319268472891276006668739513567906220072585093085036224565088187084434171274502530112255123038432157785234727117993116013700421932739152166004401105174287129334352079499460255654813273936842026574864445613065457616133017040823430738482351923292780296193855783174414753046916066719211487580663759868322967538074790615479292227138586691485623930107080959744578923942070013748192705371469365061265572087736275354486844644572115242859721614931481193843981128679386987263905764438600963015991729838002423266642574210962618866997670758129569236953433279304221786535718077002622186807027134718797459678874634841176694093457824459294098762048720746732819029777411149384066714896752476014010674150708969426102447517582704428283762661534438981472307766127732070102838183620702795293211808427756758917141615326809912950658126675335969995721856264259609277878200694806151443071587099833232316964704558229536415177771661368007089494105895075636295530307353330981651377292404713347330903353423731931105517136473498759871160672092805619318844737318051304129613273619550541798496000839612900295229015654580372807177600909944505683281656474353742933931857289361127163163582634555045618206282406357302330534916490585326827214281605389941267400647266071199324579646206339098851512061371208486158011472981511598892331772249575592937721536993878245025214965699429469537861095366680878906350848878163071679490863441087712618834590537749303362270206289665374200039122297743734539976221702804523761961019500041556200977170685075549642516057964943627321642226870427133579019336978511684737540620245171674596526050553605381053660625138328595856688046603250415735245150091532519121280127383774717354466480155424894928829199453619140087664282787569338472207655291807422167967511787503633296510540627188589531824423264686597442343119441264015257992336181222273602528287672784916933302364296559353336894822676469589874274173700111513530711835612338984019431792166663239887637928758909931078625258657254923617946044872051123130773951843242398719896965706265987708162148713916030725135308100669558889072047949004038989024525142413735695692736088562292006756646544152248918607329622565068919257712706560767980618863311909747447416133266540450951476874487071675355165409889113601694764404034795265184156941761971553964399100390427322185128334379849606051392087633056439332059617808784818791042419594818371880202840408853598988636869310914956240798779723996542239134650736194521323637202820842284955789249477190293247360565429526861750412780438972479932500098200437682763048228986340130117553815556622467292118309080069857720300132928004832537238879944997257700014488096767228245187889707704263624127137639934765759137315238938251677394302693735548566938062805059612084229978976391334227384041315174738192925199205721147058476038910763937542885737838481885031571789946180778261662761102214373697086962701695475462948338718267429230847289731673569380139951435263014036865575272055733278474291772595514449296657907782078767539776536718257027021819556042458633402653977649329008668233624019671587749058756206844244757043283036846259922882601658877115145499846959679656303425921054428835739122645620062085010387424588897614760894360269668871468715833893203479130987068719124338287223658769237724664830649938434287394119233485637150807631561706813259174289166565120415044559609461361813014577740088519092597524326415932627518840726408648171658273195475155038237243499824936616103054930686312428627131647703899846956818372494704934882525815096572606774191944514513306857367734793101527651916738708433809567713950616159645417846397743672364186875404370428328927016582150421845659792717222276292342078479033753619764251520271417786136846532665692064524109114885232741333348821290847920758325542465651624753205063815852261997593732452874594320529336472331293212070309619142946311303792768593463596114158796829865186135454603502595186673335706233495137003913880528172983489568711808034868099569873710608587587633125116623810885558916911985558522846609498856930902519301509168147301577685032701912986870232378530868519803386494035737621854471526693110530687517770598235285339885412828867218110374969084825330768958105863345360288345676894331259933791983126693718661022886835250336461092595129763320413611518577589434548651903133834318945059509001079034320260587571400495628324975343736567195133964858017433414370132351531333053088814449696275668249915237016427299237716283009093317581734673500112080156609019626189924624513918351658465136351436270940691232669131696736030030174038812526191330888816641135874417744925152582221199343763849534512815649182993079886855103858746109126116432677875402542831591193049297266021098531005442699280843182275210722541980684195009574629284873959846147366384505493012789167685710505777572828153448276399382261355993870515840302216772026797990897656384395163445170952572442081820421787108408331365064672560934042712911738374476183584558626235600771473117694328046139521199135679357106269547956046828779207260556592292105383062792244027213689622724321128870005886884501260910173599174168007737108538557630070119079262414843522239249960390564099135588285181929842430274389650909977577459485698771235526563094176168618588451607640846933676053667349588635347185129653298420655956945388093455945706122615578051612273892582348233613379911558864653388249879331846650493042557131915627140999816225513924184074275208056017275985278663171882567674697053159920002201483918490239533904236011509850282709507260786596491482865087350138701272209546396789308884331341134206927970689000602955747030966046305075139130544800868987795450533383839365809128332018235790476398706592061588712080690245350135786353837201315297086597120732199947508440634638227179088169262633577585570641494777508140374686534058016076904721434421076192600529400013825476564292017533208451603736830822739310034096367450601588872786786016411609222658723063115967700267687276546382737941194558702802630733759770017677241252820597555863293219335914801504293391202886568758222369305507979866558388153206328647151591174027055718630360454295045443309606372469700269169810478230543378320464265698638443708139142923410722249949096961738110575560817093257959520069995355327286754339469792881153116850002247596795179089847349080770894542517095224813565389781207918719918793613849342477010360639528208441480012366838961977479560676364151121594700219683873638739128292669742046309178297805792885179396962043202060988570201019787687205020503566768010904279583886309783012308117876522759202242926354793400818992886464128567136177198028480721323681467026818358350926640377618150996061627614200213829332745246144056350473408084983672405591321570464007467425921004126596960110323570028487710067854646407039463741175811948261592125803962368730875585464001818998078115576386044836105229096109734568079512861054795956829955844602607072077713655103933900847884806115894482476328849395358589567116395980641334224195698950944777841328323901615692988304263686515287683745567997182636679995289842264060250751288425143821091142643459339503470739970052723047855084306077910440671963926716384967917295690888236161709189695073696694798340239796587338198397492540729315305491684701214536952460482380529549494592768511369091098768498544964416892037904894399061940414980563623024949220853765518265510125428306743672185717044813813022043407066392873839836563673209676324998469018124021709641939784931142675625643691352279445731858580971714959474057289879172525423752154200747014281004885216364883851773949031547182605785465046477965214770429757435383053098501911324494118612476723300576692645917240336590837470731872341680157246933399232694638934507023620400153470623002133875444734852074949906116331610503568210537591334462756755083783020632421370617493804753218129088809447539194839113673739459070728201579959589991819364344347545691270726207467164806112235767678539194093382415386663783131483387890983683564316841375958992071472121242905257905898834127506136300287473093398897205962005314240764663295730836710053501110946913841793344999913676410494809791498220419489765029684519484906171939255580331990007954272379417459398636814989536927741313337342662703865656892152900072568692301136593116147238689091170721801382771536234107286057863641529488528329203786561201709511452407017221882203134873278615026045673498011097255916081766628747419103745124838579358828963857689301991404701012681012620305019514867499750799509010057255107928135169167329482089953491896399517814427365888128258071882420798821055603569008951124556136010654923862803014028229656129540285422055859710806298877714984085597367195470158089695463881741099797667313163683926611655906924304664983997478331120796130920173006012833425165842334116003601167827530507448462784318626891037776932088238041891012966717758230468630527857636632316072508044520143690177608901869651820038842725563077001974384061931020623521174367174378029322669442309480076854973177377812211556870026533768276808659623678787897657577302065429553748033381344086688882448443705895745696955364743924818941226823724652019531192855078840869955899287684834043389402428975898153489564230448206828686569986242776789463268557311520995009821274323496191566564276871445686115097138170660229271410228321585338453306559124350048526719029940199238371891205312575672679480514705691835889452766982917148118439048261735281999279102985613178354115396913386838706699860685172778225955009769545146334061839240047686863518520428607547613241470774223931148002497400246540564294447974343762966755318309343392528476276163523320609200214816524328670703969563882116613684030436099714529708428618142664233957506353417851482299586773460291816443343545331032435857242829412294576984106705186673640192300124985385999912369377210271380403869056208006751342460555918766397801284898088167584267318103891733857952826124559176496763027882527403737060689143072256619124896641015332215915532840880188612960716734086285409301078354838830096427489331239063503983675857829599524332687871630285769054733063959054005479607739240052559698913630369458383536425746686004710206111202470975960777010398838125000409302186170663153087631689612740199265722473061093687343552827237636670897705413103890717112988470602664373263663550769187461168988522707101813556348498627474562252213637132484806085990428947956155636639185414867314931342814675727377761107663253675265596957839427231059433526393564662225931306457611553298035969537187794203623849675677452800834520857802571542993579638850823826068823582379269559119096699988769169289769445389420390111627054202885225404450791912116144303235643558224803832097756274885582554892320660360119214913340033895105668541818746592261995460090713698662840372320702185336550919578472449972241799414080253748798031907433118794232824707164176575870538128111785149243122738069401210164555498170150414671499058187024571603833204578599395148658942517295243397262459926274122686143292755430082084273539136832102224142998959175030452974633506271398350224870538516638663390029440915882803329047092486198153677283616808747713059667058089077231559288608229369594373088592437946218740475424441816603824536229834621307113338152924400786914800130016227164240180099163457702893292191820869217330561903152706002678601646915726021077140338920268842215864956761344551306333079269990901609792906978051212424573468716659917198707804460617701599524992752061194953622031994232300875784131414450634502569672280890019911521020884495622580629422747772799611400238799404984656301572792665134418265023180696808743906072321944868120791939388074357675536838356108642269881279204472971989787352416496238376487516585372199435232320841240413011785026047291840061729108332920950772280846949805287806255050121434399650424612354492318826681137245354146869631310496526645175255947987637881609965707594544412021069497729308516404724011423287998657895261423278520045538778236471962110894926879476559942009077259351869827252545480074608314923348961184679802206353580272724327996635351671748183061053460427819881679335524484585848083530921519766350411197052832478144795748492319168927758784088823861507094451852949999837439344539054084222135104212812574336930338016846319783199196154038748113378972420346145780523967072910099063790246909212455975090500101809101901750376997924548993787291604245620413493410328439877953969259449450388653580179592474135405718145894821789405056000778109025033531253105198099098589313468705099402042854806495363226555728116226243969246262169359501453300292321182173353127893227329572026484964735688179974737326140063949203777039513195539633383577988260181367905821888135765864759778278626125895997099341527110170096716068674948254948548829726653067615711187953256864808658789813642900164514148034338305849633735909566442557155226331462476063629737503139471925537105728363304391436187107321695125281428871635981969544662344958741762667063525730009718137724746479421002864600544225703580388291491399295614986713699120136328716695093916400394554247728536095858442729254657054357338489655214319183489143841903063643678681445138972089645360522682669627222524744939513883878358525095185363605733020415837181286094381589120913789034584224236873481622999269967515215880821355080776949394552604341609044772284206568728790184207450565734676216077482336264284044285528353287054326667785339950102756797304320091206865841628755500518771947720259469171904232263588095403327305141153637887478376288624030436637028395073533413027250010865066162915671914251286756058573145827240138999120600141062571486283846651973464499521793738445712304885974086205998130164287222424310453327640546872910766200135722277363871272566141419695304016208893970365989349133426808263924117146452986098026427270182878053003285369171973791259969835757447813906234285500955571663864323781383108636488785435141302106506238786186186080205526243595585307304522500635036301171102483340974030625973959568403110057932036247702120604021165171790683357707657405096360016516788707982201925435950580609740641113032751356236517314532551245158389706626817912361203082967092056590510210695150080497580718291187075420530885659172124922566009564419338001887282210598316012825187066570724812288511560499651677066916405947587864914396915675537613806326788830495277588743517335184533684957212118931624895298673483248349991652239181098567620148640954669691329880291488116169234878263689134837061044129006374998289438210180482015962162824371695517902220514974737462524463133814622246820092195218995889925818226105105804948018712055848461412160231839516822397381631424729003478712993808282660118458409994858098141005597401730209033589820079969494153852168396140444600380750442337343765142314262204975402773317205691226507639547830597126922326231152228493823479010834221199275553712704828806401697050398837909597140529297384921966738359474716315896329490520352227095738276970860036003795911857929840793882354535741359672308260330996813538928063626647029426181968819094155886143986919422351655799257872039459345848186496701752371366110940073757127434828358630873185353872239943007373796753899616214536156762254681604807587561935570339571616198486888523489876183838824694246637514837091128162399372074534394906217461416490776504806484690999480071463246781924325591435752280398995437367826709302618475600335751651151968997103006527165500180515454085049811998905798937388383455257007910497279655549471540054102482172217899498021612722785242802593707903403271440344596150673925425028206517005565620804721972988157256646770398899543872292561919393539283047175843524390015470361053649170754521433636932803993354159345771507435110571420378296909644734400751631705412439977781881625948179758724927425119709146551929813656502947927402928637114183172753595821029605662459210724077469394934157940133625600181272846834692657285135424095134776527639387356218981751210842935336756365802955298820089716743875891237067616194499286587231684502543542943582069353612428781546336998220870259728353039431328552651775900352315308232391427502974520835493004337632157262747318307421133740695158805065860571250431555868094194200011938894928810307999842176340343123738718097286919814375805160866408476148640410062700747122812221436920776123365568605053615738007657351494974819058099641695049290162235386456955095710034114421172954947842888996749171481583150727258736189549184840654746706140921755016907479912221335938073810810739774947082332721097526398211209988667102291059693149023539442496489341507775656156657227256428878129191305756530347519440925334307031665478136981468753855583046763117596491166394765023500549358660163321085507824924300834564055679526646226046020450455998753330559831640624829647612069396632961612735751850192242811505833612375809604668982018577395555711900056590788161445454632057146312469319445508859802692489281990228835730160498542561478574266235114183820624841001196435273262180923352389476829449783319065705774952908835273771883752205713290869809539519789848396848367250781335991994645428417705782628957037654995953895960260261737852511372282201172433649889746975614496807977121469443131431561292830661007436748632428235770846772037628028310241332979512916799294939853583710223001761331021259767539619213921162789738658851025950659932583301566086935081452448005136623232089745052964283306322692502701243493392069156473836649993085436053235634152245956686391515947529704998783304471358030164090818234513687788687282931890362552221233135749285549803980292285103902956176556423447981053128596663509886580839489559806099869563539514830501968560878744289152763546562798218033421124345583503624773138657460864603477354756976015979045400626870885882636197618916629849134595879623618009137277097840485175396257262170322151971265889262503855433647365218131412609043080116655038686930742098066341671589502565268831346675106220410011534427903071011104802872948149152374463892590623864458567011896264048650651922856096034999857232447556947888733188906886248541038728108450860388496220519320885234231769497961735054837724047266338404440411739896434559766536433178900556556109027760537227432513002576761990943100147992053074610818999059848094055284249008676402297719195284910159258769599417451962172649582258083542382340120601824765615496072871120976602553589963227511208801280887059515820444416146311200497839606676213812268057813575957136900924453090237615072038319922645860227659036402151674503724775793827947611289866086151530757836675457613156952656359041240928589380251926773625965651917260880644388791944449136296252879998473603879836105448532717234856341033072062347750695213893615706782579220804326758688969157831813981216104315382537039701280444380651096482046395555104526203611484093801741128526700152067863125086216393418842645427719805356059075521102507663240709550578717492517450775451337066533024167182717979204770053479328370934076294294492110612508309060641981878646847265838904996971146951637911654918544661813225409840058994229539480959321846626661873161671780019861589737764951325106625501465625373500888856406165947190121825102694736254289749272561154953397112610526196600795736962727627308113444251182391416949830974986751325734986896919632339859435785041533239770608643296465798502873873817669862598596869339269429038996904967732187414398938501016574675282136678213114741061722512934568685580191755548367199286899394209815363365750337900772788630877209524635676876071624359709484998993815442705026766807824497399637733231740388613662054124508575797848812140852170215796429694501873444793491326439261917804293637457049358905479688377005084908337790264014039452761257502681841525738355544726123634672546342512819031619797328967153124474880141578419111082728332935810436173059959157268225720792723496755058277934760085668088247950765815717547273220511905408839299561959388922696904416822462704065334934029905999352524719474131963684318442529321834117651968119534529798401591147537336987908995092609477853545972118530573634242887387623820947403181417114877182951782043752930939616526832444898594478837674122993218748292470265696224748610118149312299154003101839153267015011401293840803550394533633063832869859539076814344469335824281362129126125708172954971856532381775406499845980231324530018048957885961228607754931007976858104386045666908172256790019320697966819359529215177438654474827118462284135534865909617529616916603544588908722020711416044312822840283597418714363457337915490595989859799212618362122665041018531029897921607927661585366691460360711296521174265901835257344320219769064646059076011143153811409297905898464210229619165314836561531009465797424783059303129710151061881176125032476430575683294369641147839199153074157192834759395310508924923017865892502839414016733471480680544798498931431763435748103401858664470584982763858725159562146891229424758779976323074516874416904346091764456961371508469946807894363528991525956093390445502981372854358491090953112796460363665537035289531891735111929881539597079137461004030582531493125031368423799367471587800255680651883069284494663231137835785546261027054540431872182223052405018014600244225107064801273954943481694601736277659589452377257556559460536373841656277448573443375170787919339656280167703934546249081375623162650925322076132752462433257709724178741527945343675628182261061098779666843281063790724465503127935291808667449258630274896332824467307476260110300037638353804546309578476265376115126589982490980031534603832261741024963378152994157939389438663087585935995355293778102953107224166853830565441805949470015005667632455478529635845432617010679846012830712042447846943545421876103916488428300857526903774117454472698290502223725219614312158385076473245489259489051808479441858380418618587585278730525913233899020337740521036357520282121109015635141926287576245161943293069129594440027197704956552682491406763859290445209333514034121845674357336730296422413930182050629025030991714998181789611064882677012348567283463023610848436176195193650089588579814994800024011067978360266111437896911166888460964359359818544628294794229147514591609592734591251260430662919408798188166463282090042739466873902351024616959107585525899653292717475793213348810768135069683775362800187091667372755752784959405553862434892649885442096189150996086074580575647002621348117239698459411979667835533103554544498438605425724345235862787633414768681394150466879995391749836609584307332823266542203419230100501795359966472636725537688233696939664957807808438219833429680177612467225912753026609891588585132872773457394219141310587697130847445840005225646790362300428621485208604450412761109860834617299902879185164003476390479283052455972469207256111741922222443337146343503533209251746336100608265398332944289138817367597099861497591398261522819206013177109189221539355650803415786786435750277498149753276510419312241040030028551526492998913044753713042690662633832565894062555836607924083992374134361999246686441007847264066079358787426140443404023752264406560202638530018826877047477310959356529249348751714936579918318265591085286797964833582378358216454116271373883714233506611569077733068095482695983860067578740412193766746726097635640635653329015119593016956166816188876946568683519930916540869713165443500206850403123331059074872338029580483921706527998180256305819017005585853931671212470575999130649876061151747421045600152740542419142178849415004995061426383436821127535439615056306517085457248995898803662191545806498793849426972951751783537298732831773099109702639381721577945613187804177978746759718856367368185021806827960568885948964187619612000787575046304034191531688410185182715464021945355895642478857595003524067996593991981984964412960653860787852582460501344010364530340542809073749804013680384145284839187223798633596929437416871506389183347928359428601386753132923943791505306616591764924833017724641672640508679830006292315272017563773894726176266484156665966911531376858631389753727040608887364074509077557706319523264118686721966577782588413204948644522264910699434270977609339465752084744563494233425487363304534872295667282109217372662147559676721589156964074776850818504714937590383734598080772819502830099600013546889868048518304857432205917970903349997771644863374854586616035245011945528359681598801008301436659366426597770396226645160944121287679478797026003403030094765686683892097520660144077163766717496179360352360015099541791988199766506817155118528394664083624615257971943148982871057292648121490870332160635533688332174426484757955367628052354303885381427908261156552191628812680602419190664159672298687105406450982403638736209533271333996135774188460128463809102838788870425231805669393805945306028308093321121543021220215220787104557348179328200460894699291956170083137644015073301844682514912969824472760239481623923587098437832673898509882973835165021459762770007334212361029855298904045070637546218278114905727872246874761942652376837433275803838274380345604172331169309967824811456178246128484626219521751343625360732352362477079082178745826131108682130661689358042449254963292287681896535370993965577311568322204992362725754359939884428118912688342706330489944226844822298297473406897834810641717542953640402005837286516291294186637360836853848950029931750599735402084678908144011886901485178946601014049442740056685211775688148621061835828440071399580660205961242401060469691927888371593604230822509177006343904239598472507280386321590173964162760686769584259236977387280016903124071656881256956681165829044124952703373204141890205240602265966411923969012863003581976480573859973459246495638450487390342212735217009054531834151236868156247033398245829128967274844465469826901327832227098112391890572706500862110835185577492655035803620348795332832057942444329916958250296496724290650483958964656808560336942753844377637630491360260165614694321262496457884696664277769099941148664137619865189877399277175446773192529327255344732239912461741787735818085847570007747014246459039748167933748396232645645052752695980819994534880971228251243414457048139704783413649622707841669773172819654276112274259352651003636556130650368126593137461744021588445211572791357197333460393262602443069768078071008911361197232857768064541350463387491925216572679834119277038647559042034777076494816508967130253803474772645642609654163600349445223857115901217852747832759962183229223053627507071820648050808560435716028942520425281649017617102066866775869720459107307982884444598066281788745784437525915315916952448160783725232474334462897301416188079565341945720034794770312508883406384303627702143353294317639600627516333033509456212774066420678815080905525973832160137013156559944305919710723751476641026525808421932397993529225217951638938767312217251524387628852808127824423237734425736055679064916190123484688733495943463668068670173976788304586540750436376303781622427827943603663590978545379291265828838439160465244191666073639522062961727265071033689870978486212686037315174342277677301419393029827759440235472121377173577020847186394506359775276174362966846710983960244902925152288284289245976287435016116598912071557700885396675365924829429576427430070584777687493150503794353130247891060007517805846042142939439085375069473377593352963367097002604685421462004703734940143488899583506407440073521724061547422201211585628625189564287663074951843739130488010782480911999459936384291978628426824937395071501710768251509053502579896211485424058611588104835357988908335012353249285026117805234263129920264824472886554722708003804934474914404825457510069199310519644643042966286841590636842674014400287148294728873344371867758906916019746651721672248536024527285383226320084306082072153107287422577825351929174583469070906645648029375116262683711677324296231374855913545958590274506757874519046462574627988851302589404591819654664896946606089331699670540303899531817951852140196990019564051719944039080396600794314447508892100088137012279080471565695271479904280738201411440152212513095554842731219815911680150270924496033491793275510704016362167371007327826386146966682572131895813274820565222062097785350530055653292886561511331664948211714266433975234910620482178545028560816379245419460806812753094920465116624057730798943266650363700906496093053093669986560295789060152984812869650849487791532966108731573613615918071825014674631230988111438869269713953254490697852976806268228119964875972899973686141071369610522253365632474144130298818580794473570681131912180030433926164683716522938782890499333956736385225994541158748862469182888907025545368297732406463840563020129064087749330842887311273574286471231165516165358141818180693062697054911739975345911945687053444484710294438757216996510110379178323220904755237265474885464855624283833880386221794056017680043997321530571142991004699051076127491998639683146356244301775234702732473209318935087103102444706276639247450663055459792487217507958226121321669568760963405104283745012832245625368699855631357519386502385079318894380218705121912692541137960225760637781376886150653096305480857947109656305903575940437365202584748408380172525468778108647098705494869629589356465770604255233611926948898570661161417604396875242448906395500142210305968017239188338866671764432222931186544942429869997098586187251144575396716327916098762171518558037033566790874972001329776187814742589941446163446762423767037771361252499357835336043836479582320172192389431195121278148731491470019020443089467131188824222719550556700910482468816398247659790578767320369600071742998893363655415299774177109586748647605218695539229165239200755915296392193096129467063664705668712328480113084393937653357153285219715499045058152288242965309375152241026431917638771597397977510066866867314883900872567469802909539442459159114941158515825361189787593422074491649529263457584484845409971004964508724206407645876268014712707256591492074530170520801899388925930427554695785305961462673412139591817266616649189602618079408988792835480821592788213666087011886350354744557635073537491712597734086670667801257499120671461371325156945053795632915236660978898036086191215581142844826394220832591360724770323863441940513995866267331611647508544880037122326047792603100098600798850911472137557779433568374960377369136450705284380878098031573045856473084389811177246938288952031491061871690012717931833289106694569331151491263058797085553560981493904070795464056661220264549426243228083550612377651563709507955811816706365580378327995540680055461506983506151387755489095425775998617477333353437801869014234250822033449029071753302055260893498246692562879724987962743008376991128982352471823882871904174285043091899748714086382918303141755557154370047023386849893002191533542066964111876645257235777034107885559303831573824466359752075170224670773318028740979828508451941972459816285206719408371811024191903961699699287344589690936682412492889519159988987180309235781116000313579406893934987712908422113072245807371303070326438083316736858883834160341714041592590717792395961961633540395378319406837685501722782590535473251697259864141167737642292556453742532388592835922322006738048781434107636466683041899053149773677732640385533489926238463793292295275346400784721321610523223111907898205959124977583685263091546836603912893342637814836322248071552685241362820028562234846787871300834583070800582676409975514367255773840939826650751651847020335949761625634138171346580651620849041048203951257499788774608553485741224468604451618214047082244165715796992106374343331929421084926531814444773921032774562874445880881400118540080135674774888489272153876061636541230122710662768005814512910558316198092739987192353750759738818835283747487371459149404255724915548069996961264182822089875003752651140505852243951187806570589638845610880795995100936125428861469273893613765679077213210812078305910570964298192982884002686548214584716838356338033707926458965152563951403013232971781153761684749628736465180736378544120411684631837919058969604604963906082128405190744985956995949547823274058161378207872423759102223609851496030155790399308693927207017282639286684546340832641364998577276196501130781451840519733911308685522704411596767721178063181802294716221426657000765197153492080851226107621697539576090031034704119618826025018255418905391637000489561930805143652889064431470685517914360672003821012000102921168875619303629913821532715627602466703059862408277442450908819644366622395962931702319561723557440026773141790786423145143651984524382840721438490314634393725018318275353023558901797670228624267793396066918659748545317904797163047637246830092103385394243508616667813674958650218957816548887952076523835074666002337029869445263423546811928749038707650413815286833738330635705572755667940778885194435450107956024901072400777641291894503524406597509099255466624495774846066653900802403671922184111272652089200007927868047188823103988081356445757453181447344209010764061925051193350086057435248185208949900986117840471406099394405116441996247003052199012354641055226379007815106426075838131971549383688969252749044154432216217626011867352448705532453894768232787184757623014561495990493519374999240501572666346428102732536300348667974030198318708414247136612922165797960858368960077858792845614892138555514705064119276584629589505571089317509864856476751972248545317392088419914837069515079759476655325544051790527809133910253642058813546755575841616457682606931819803420614178566121359093108544958421635706273725249541710413378825893319319209562566865902411523177095674723836742592985549871466431140433075793425593007971270154128134558862139182622522036102669358095054046765706844372819431148902841453082736361222728822221570948185012760388488321940536809863926482633737219803356885713845983646251068615060712499645150493825096854180494998088286059496555368446805616679636781307307572985777393872209951667030478078617997772691318714213339995702747143227530985981104876268761155025545648312644536191922271481642296928366860693294782589618400458053156560726040336784493685145815065466173005695645622252723132088014215031650148453850792857390975315754467016329337153431016067472065924143090686474287166745704198848719054074515331803774641915255929482004231367782042334508589110116780077115862175870193124575415490666661766770648286540642457014938939404745255607986265591420134638680804522808329721510685593097273817766362869322275919074114206680225812804485967980196636779411827242467097095185342999350705779922606909939870738941994910089474691455944824309134885206640235413173038184633555084177982310898718804532377204872114608167323619996213578341114410799909183104719247350479407533610598986259967942818051499882537590408346606042153432691010826317385026433598485543530232578146868006779006620828913077325201859784253758245965865190597541121740765286343036738481937477239612583754381802531973239916979807512328630310328710029725842084599987064495051204776833362810636237480275947922799603768051832736731473725284658509556820444507602959940383529888063097402031071653832424339838923874792487875595343368707520113512469209512189520421420526943750543500573526861145458504605506001768504428301881347155728206648224235778586417389614588412811093588511535388046298907336134964709976746581982510031125968151653383544962095175361977680888639107578067060818341143789683048969908816631182347718918497359387654228928561182969288996913096888012174302740714219218133908211196920470305548080960204908464176478387657855387254476344782808942653279327477161290892531404261523408287178245834140203181107021850421235465103955443292716926691833035766368642178071143898982239287839074634454280421254731167648155739840485323765990542855726432607116207417307470126817980404758880403893956421000820744339093468035270027173611497992122209817377293850901867824926676463866998637360105860189127294910258238206933692445598545471610236868886725741601576451385270861017455771067175109238445933348889587419609059626663960307535851250319600303291980105326929319519076952796814008644538322504926013317073526298848934897034149286178477040550904606786856243022070085808598588901398557518515855549326644090567880213396033537124038651028224091289266464933292648090007902060143556221929987663666452117200492542528118292798748398832067164158313297688149849990409141127585017325872536780954613626096043968062740580328099557380654291962659302864158762593411129654877594024127709224749063175892048920116282131107602801911814684120892706041960927962587240848376765232707223266832604174731418347273502468096363917354645173843120606115527770645175436016542772216330907383928915978389398250842759613701483506265218765495246943087452973553220622171390241742714924443167782081807086897814355128675462993713715109308140437136874834365146157219315836563614315119242289804049210366368746081799865155772951742252537036374754763700987137183839614896535136810483143663074347856332162436470722517622226942654660989752104229180447680813025810443571034498399180059981430259261601737528066717573209990943104769924143544709228381661001922075935061366949833653939836715082223020569497500521000413031721998618860513152845011039131772148840358480730528811034261220241383749811591357212406224323840377440362204150884155888904864362394990611528427060024867532529404163413480011497823447436846262902730256869764633753252054020055805035639939082960661161679271467022927572280060168384403914846509133155286908768213174363037857964142931010540127933252606938865787402677004476773031814580888551835678417590440975473421850899958190870346401190614953815866470739278383001358705611396538948289147808578303703574239981401644396321270267204945309255439684412650189093231105683438905752114341197287939252748274057677566854565359939899433382072937876182333110294961706538839453062778035235775929530873612670581131492480245555143851381251354380707872831312535605455471350909216519576493083646664530788990867724866158199238326992043680165332821081688845356383053004331944761907640097800179379307144221394417093182152727175772449773932548124144029641029540784742438239297187317636456282412100461572432204710866628807271905066069576498989579868185131168106874907017410798521318509945997975136079844518726678622478705109132367264401315563285408600327959367061431678360662511487962292162710387973063883912178738347891622659820645785390926042371453149732206759878871557673921432168485011445835197580616368914532758518178527113302571377616523176969904977144084653486993604384429008621798653010114460612610851569670239621179870909284521139587536463667930536662947737044177162210809376766004739070313245047275038435202658100538687802170023172924369491035044742557879603264906011587184588990407761779408577668916369314387475595813725963675593136203461364739827532869973087697308435336027395433120401864669883105706568015684199617546784350600112676305761343301354400127531171252050890531956245211095734081237974049138695277785775251020987358709363232020883873796901904680050702416586330007154727177883758359150752139199622483076478076332166902277176977820756408288362426004016488229854367068718784199974679815754209689414537654978664975825741019954563702167868794653678222346875660821474115384625078834827128578378898001678436125946049376466263099953771862133903425105399838655758135232703827445558387026071936808483985980192938396467964454237954237992788454317558916351291827068098564807157141189747401141199878789869841514321777784224573225908732726846394897952889996901464763453924472421972179850359941232854429083130895550042505566694274675612140188502602677175134975630540792134733682160865815619114648476107107058441964884852944016226453555695855287249294198023408284688826730722653660342366193279536909432818497984239048919056751840065296588035085779663316634662209029825044940195065238915709113996101745811887856060963779536576164603376827822834984382314592169931616067076843086833640988166840635802847421808666184406302104043858387747722992185238322071469763002091685540640848544448847817314162698826379197868077616649926683165215255274494210076425359665432985098200356863255549462825519176035611247691165465561714069195772785451968402489284291392106078612355054716844272588432911759741605138266894454835157907233339597434622200445053437099112708813585552240827421172487117086832053866047397561450721587396107929590584690671930913888471188960535530424313584947769275890120157151094134623884943735878454760631916869560341007592211043573180913044861677517580324535225589150162105205038293261348704307572765783542751213628661100660274946199792398725152121331277581423784063702589347353108031906883336999044332644882534865179120365158239909193285299101495118956576646750157051109455610254448215944910749254936052753040238704862330467570495227806287494918844316971407498020035167258639321390664958158894132366712661272970986900300221909577897668162717695599395273600310732386985825327797470273906395706030168474958650618155429733152007821235572431908393563798704878504240535687059118646262522517474791945981882636052855633375679413277463930829189756407373015274173350979812477916557881884186629617516626106123576007390516238540390457664144570726563250694703467072349521802296425152444334909124982217868927962419926005373165672650570206333971956268032226300436998439689128391352719811557789892599248589269983659693262516248941357810212588951529778081594231763165965852818009105952410493738907402802543609826443125545142002980818616799855115224457142622797366388650965827852044336862940594945898728763597048911427876194899492579265573781153234590911490447240402861893024561230136970660305650907803611140015093626365066513599075659740855572453292030308476930688547364325297331448867913659513403934727791539030103705450355532007823020686514075788910021788544086128599190878802011101381211264879081748011323027746255946547102208720193387117024383372984963020333268297129062692520314637103629672245855987695846764171230465891811000476860720253666719971168250335095975536177783682800046781921784557593114533395524969650317630732291700162879890413431588448963783843691161472161451226180782740684460028509684561709324032165742032435521426415207408202557582644738979845874071540768223144255160771262919197659984926739951963255918224728739265272325616140303434588294183924016274453724284179457032541009274920480874357648495245772829218340497595622609271462543999992796829170268863731904668403169575757283028362967686009579736383533044546696074725514127737412775840820194253376591029785113671722602668899155651424237387303412138908111252442000810232162693095409352525163754590590314385920853759326478284850413288735659596188020279665091287146051349192756944194358315802408868286957379848548483648946676863139859269666266846185982871343489875243824216465282304255387062644697224065237905898716022372955540693839326323015758190900726201139022815317542729481266086370754869158504751560229762207098322817200611658116020857534371774894142825208686179802893407653038612052826405529608760709595898197003659376337070474606094970892879482442266475308481842739924871778274641336419630256472575462555272295692681838075984773818278065248426106592728612919827975733840907812987975682941857484274372780190929788175737674513364247435511511663802622935571131990547055449378935973388704664157012756468719840567116942257487532916253468458455119614455193528764475339120984054579960664286386889458547649228077228330605711173831219772056653779476768427945297168836445934590832686259562665953025591302333060120551879673547943878301577548983256204871102177441298397301599977474601058263433998048843108981857012298102721019719453069910511671021000511551779386905741161233721965996826919815317521434357941972663809826148956430764497136289358497227417501797667662589922341535586574327643176241240577587485810989494691177695413400380200253847084256909334032486913334990642011151698315332716263863504490985324655345483287855009575483583655393836210313920447693165796405045923270021222420089695082026708566460363468039843859683681942662409827067080505939179963649396483402152005695732448176654205131736027466920081193800816056066060320173143315507287309255967038162859975929621169610774128974605734971461024146070819204390753239877803320651319835039872892026187702042563752747928976714556091262883549351443101205247736213219091447039157664277900792837852983517332924010430613081623757758918213944084324988645479197260009955955630501620590784254255145586873480145231023649726767290859824006290373825642352551557447160581940950764246858496300639343514114309187427432882282187175304667610471883469751029980562559068940356243968657134416619801805026884001162336151086839340775100266504828972402707967414836246716496352408434929541554751510150730036762902305723851086924248693686255648712789618588175203439149769916549879663970983539797449482571868174474449535132817561699856477807050337489342285226255415881784256295305279085381323996381742395754786765640521429622120514818125389564535083309263778616009456273076034034865557013648738010937080506789134506108410052606654759896454103859057205763236032073333478198858261475127837465919170479146317762213776538432675037560625760288859118290969326444725029605720597866421117080129818321966171754332223569627743525146587067745150142843658146807349598227432117599835258195135816706317353854579154291631519259239393873955210251366576180319222710323758133921828058340169418103831195329741542755473913971515664202589888463616760906026667861963502311551953988547667091635944687693663869813956491510282119026772760729669750469591073979263171760886336901333101040877852888273955717168758753843857720767444359969534586854345137234967980583342804181661107389837746504773519792999735005818873471755454822863704341708897748316208871216912391407080328256000356070817915872753519083643551367262212947808282568551242423219621827080290414945774492190424374996322635196648181152140485080268771849084419985561241985568102462398769923510502559748426379280081136279709109029750153480334284723485270455006728446092538286905638774343212268577909528136152068124075115444194996104506976962599890585855600975650256286474751291352940656543081133067849953397701168663027156785517469293398488660576947285005871565113931637493138463902929128129275748073239694394157748420170660656986846407927743968477777549606332379798861154192879349004430662618397117625745879718286689856156067135370429224626377160386214527071296193974167927244833050988268015536658736952518741488288495000407010825914838623430776173919903189273246624224701586495795059363390612952773263081879756841061994600685769421437100907925009353500905810727639893802088246825401496135935673873801406186409298669018025059577552577925869416494828922086424953674970908895736427196614105553591084279862411599064337208474351758462654427722715975736481966212521231310823916989816553193602786221978239738528104963068728597024050837079570218133690664974050975384027717070203697159251219805650424247947050383321196006127646921406673241225132620607540831187219493782552194687408666911565630389371053777107569988658123826709586734198319430826165104785589005762584812475064939775633832553687069835109264008222080653995497810487911915219075273610514284959088535822382878313553119794398575172833292684118129865205118065165074659302361216256233667275760475550767906061910407212569634464587976355544300957241748880213758588903257731584240234967022307517940980703387398189038365384071685507816209177295555512876549544815067327989321257756086428895010089707834680494410693727949290651659598407164529311353610124290972318478428584892086474191268498186397648571545157906361327123980829043283434591050708615167216604765620681113430731762098458876976832866510728473379079895974045161062668326835395687148774585747579712320789207022394377997461450253044485046162189709320183637174385325579724455022214981926087353050524289786822183843425196823565837596285299373755455249758491093852448644296227609517580216371513213316531119996254116996643569504754271727802348690102014057041477645568538345430181393400296161540043903299225551163939332185686519236980356634964167001217566072585755053804488513152202525936050246385945825014793525078335023508209775972930348381008578120519824999611047138023202029552879378307945049230056799070686531436802487381750703637483747594951812288790900948003977404908939609461307153526125111012565587601396369008806465372017888533260676008941269107403398698247628930330060592409198148061383501684028389278602384835688537281036677029069847229723295558735096875255861391320348498502436173109195217996327157212584593902060579891282535789984516266396601444055596837356040979451796091428702877282421648775516072843907067463397362883972122817550841669462252727669813229840599842681470359743586561362898151312703563568099598672428359643431339924034904931530208365508582676455519351380708090197579549554731283702382592624139979841971800287225799418739522912617964057670798533608865925775341871156823618324964178558573229358375247339517760642255733812596244615018553309669867456715763541881444328440718518734606371722573449557445576802015599441195535090042723337479130439083103098430678981459852623915863234671460867076177826042422573149251807245413506832146671805872636483550562686223495961380236542517854659948715161917515690305860501387583808539769556193253657706810517159723898456156252402810338010557225727214060427763025952164329721069610300846330119960412463275258360082940757666311219103499725385282093909868695072150882744656314516182332370612892291410660854945244179098822697677278889360012799586758191373067044799183982772277176219997811723620748976348615308987387963168866357740301270015511667770217764857488154324451352345778085505023294392630697738585382470343826301264607127760623393543999673168144463413103317535638688271515735105182916219279054071916225371022896731772574253035377583257268601805937527837618966866606315484757037508897357245038629882419876748726926321777069423717130865700984142032835044269782875687168691467017892832400228064963755608628964442584128397185025548376742137765306572035944890918961417333109883574980497645382012176233462222460406116547532270853462776229142077566094080695002705111787661475453665912719449636780733863301864367573285240398153303995213632463341329826491370927466922325359788248609958435550012648590447952808500869710276019125919884373783072053428588632733828092779954553038310476557693247964026285752033700157302168675491615400104072964528101738393857942334320292277625538963450811134126396668510007555760473636923620942177817469251373170284460388779708214945319566780396728781683415744373254624522187224606399573943925654549778620939098265659909282347739487040435424013722621892665115286817322514198042338964848540844586964772340574020577540717778108963254235995106618401920258081732189630176895119987347679984541940086788604047420105279665275310147426583213787442010465273050216171029234150283669848526390264454210534426071668975359152887892839871650705731681676246865936498305661382019071499112290047281607977181199443672150161179903883373742100284369761307532883256052727055334692179735634024963498978314124863503639334242289262355480354866801201243540265706920394058727453619849692044475777773726334131527612354361214156908923750342924918571555584176234602134356384341454165807120710141633399323084758909347099290182727030881173518933804692700694161492032843023266690060261319131408508788788218156786946331598919556507772476261340461804031337358160959067053718417104412988958144761659009380882321400352719008641838189934566156514943053127700093373950396703653621624980180369311466182586406985699348478388788057900912323081262627265746233490544963760819585961795982508773535051490166012774333134149899119919984048002888755564027082928384769464142378885525881776827668143007210323666282784878844290627009607424185433127485282836108888822908532549873992697324282723935001356274685969927606207696642971218184420059007126011632081961403416492797247484750105890981155976784618662696964573688027269090516213586440250977538080333861276639502281478753592205654696082916864195502717898008714364461752491040967890728717974757022583463658906050480365834342178751303346890619507419778740816846917067243848079020891111165192101172026894031285125150514135891940767164552189762248474780955939467341166129215603756669464699330304961727988036611305686426310361016055544848869579354302458995441029711008229477979241068494953909836509225106785405754692349287225183823937266661401988577931304023262054623691897361522008935306213649626029952444214273723202488197221002576288024562497797273205621467254132811759592643822384590856895031798867889092041882500888198014433512935279816290397137941192167816373794291356406136025225326058635464504848321582143756709385181607666384271391434300208422306053955161983685548805472569235125659526966113204348032349207202949160135534696529906637556013272554496972451308511694795574471868941307219752176856780970082715055077971622442205972961499260899602433063125631808132466521272405174264080853163698922683799424307501673990977316659968010482539888248484769122580365123262696195667527248527888023907654096088647644379647750593352792449507004228430137475648264588839125580608665145110309964619226423260241861877307374716842914216250926873840387303461581307453950286719747818737083302177383123798261398252696314922137455129462006465122049981251938762050323727036363701293551359395907368790041717845973277539096036131221229901864624022561837278714976248921282350992244559357049340329726864458834834313780694317432212112042782995851017823963273401849040845715586947441592440204992241745824569022938029107036562080700283774845785819025546808901563561815690506196046156185305768445135737486105514629136625804344648078523720470802912202385450507584213084914726182402103477777884836896263319431287530182036659345806511415498167814595335514358217318895613347903493120129351964663515925710846449259612213162370471295160229178533714360365821112258669063829919222457732478468715937156317016579070139166547264839207899336237262803358726839591028008445506635061026969177916159310536492399327435826481282728343932835134075484548096271359526011200503326259496529620118077230567532375495878681700731192868789724992156647058083612660179235796705669111107523613614173684308512020696675657180073487620209698808170706541137305506433336528722083392667665112290693812023910283301679182526427197611982619747154705467822954571886604212795614847261240683182306329491410098136112096389691638354734102155598595469343152432454900464242524785449297301140347591506106608103638524305418575127211316770773313729788097919071028864016602027038569436329170710023500895490057981219113264141322489770032470954011873783185246845843349209585318708368750485868288466451017869329547202670578620842087464144866079498530800644416217990623926620078290272049064104890581540193071070622831162275458666425681682777046881836091261757754805114463631742194996041515053258921440652102028924728435804510491532729582730358746489016711113909322225565377395085482108166908711566071432533809578073175001389188348729477060637468832074588783295455613673957039358797583075241981263848586527039266437959541911354372512093974452969938344181571858808687662829219147039865034229997148738858871998779475587328611030851116374824055982986015594904200301425305866827129664654795467489386504686693470600034711887533950567872880727590442767356901065779630881082740926876931246542183278096135018550730739553294344136867582740811298203983959656815411504726295450913925634594004049666654886262078853127459409180413451609298198370023984405500427016228118413558491901709553337834522527255207638803721192211098826322909846691488135813504867726836680432990168665824992597322291863564467965187406406482530024559308307131653437484597620457313154140959639796891999010143118159608686005700085760467142140645254624898412868128723593602253791274987617080422597328661229648625623481805007972531207537614592994600515387766502819744867763744810640724568536681772726299569603282379873029942301417591404593678718192437716411843712014747698307020699195271975969907394501956681867734273029750408376896078486604499430530660749306010134070323819582112868528190160147361504457514232407514427634671031656798506965197744671784444508714931963920424723134916715953576500235063120529564018402530991591925651159753321907874086839552327329812303983267669011009848821148276191127781701336749292441290619607604882468234295850940050229105872254068748660748213508225077507333544953994003762141132952197050287562288248640282982178908648909922473938182278527502261614333365442896605010589854681223193955791967621450566050963018033725351351324641169366952641951160614479056913882520404611837856179851250222442802525874383435801005026314208346412106985086106356685174720702302479021065593509107140717620654143918314969647256539214283523497787643133713932562534995810010620220147563201347613511398234668482537590718639661252384380739530303690214965222827680240228121171281331015558895508405340665195109057479019923959971966537537361027290795758835665694139811773226079546062804729464795743901695822245867600806146575892001257204776455859367647297059363688514748673826893847326499193373565815287362256377317657426473951655413370467541813890332989261599447364365810875309727059929167853832004085661843254247570509208905142004725774391291902415386347198982508942815534036991276795784850084074745868271664051766606642033831613271272001345140855367167480198222798722445582663443884643481600923104083013518412589421908833635365238724977586646297539841805428217993545844018448437243775973838010784684527349965296498848593790292820371252050531636311478199710890892015054086439880960887262288995298227642117976217786271757266940957242439602177811076843430571822169090439566416549942084528006728104675310480352702546868407498655086021905960542832579484220646275488600761792994161334079573184430315772387366488457434630235561771242616806727690642678295958327509282296705448018360996071399729048297005309520068781586612963884776366521170978766111022977595245279128519019191833095965997030847220495584193653393794670858037538698524676314335867562034706371088986111557470638813907234335751664200588242069011613730333497542834385925989579414643278159960880068296770194241737556301750004732656971002876091623637553757041696289087897104976556459253065503787257017323918353340837836213506604331757470994310907633500358844376909619758928937702064419760500288675294008290232181419010973594575990507932869675789930851249159632190601956863904414453355600592924885321931002787024422249807442820753116932571015827591179666902287018764962444203439011776197655030956031429267671106469893323249953955496373867312488926625890751352508625257933311424458573689495757104177156943806642431443854139961282636453954616431476834295454576205405812196818412287878098447904079662076515122042301523487016008670396812358344433501066044906255495548334123698452226243683204077109244888645794726952400969986454328952547978309240587801494028440103599438697818445881255164449241163933507611758430341931085703000216051735473415237523632518803058934118109716254677844766376028798215548234371756571188818902820439735665783096350929169852227718691079862423331018553999346314472765510327384634044991894546770730509194133337560625427309017647024430727525576951853001924725819679627364388161938132723321792425631646504928533764611854920072152143184122255668688755765808282019567203376936826725691488442705963744125703795880813970314300202371750970938735710323496528430383892624803925040566342189698527658073115940087452398612597208572716701411111033755639403610252794828795147862192284464050713139203039499232567491586542814686535918233140685580578404070981620353941418951318349267218789745288487776439444952906976971845648427221867025135526356889807645233508647175815998014217116974141529666248867017551106690454260582476524394978421443372256406382445792146413272996211632590559046702544743634905828771705913276545084519288365400811591939314853354433064085640491802034445531958471684435279207548581993578542038500694189085661892684800637658097932886924316580756567857536483588803915035064036872177556687320320508078343121458181975926332812712349504019439336976163281359325927248529980719151475887640975511490321782909544346320893757148568164076806119384169602313937108593957248795250739971252416996922475769629552655342365893857553451283570150963905239532217527705769889567949055015077188589545336682876639911298516937393433045048061201346584446435191128503764807887043292591718220350476323492583177838255026946380891290498166093251551101341286983078632335164286868744174758390856192860328052164135305810044132108292560914899287310630267538873809898583100576653054576273241862432033437389256956672857831090157686833033275565341970624050344171334183170250229332484005216229574562552194581060248477738746235712113912018754267631803167897430357602916878692565180846696765629915842080389265978521832452238343488719377811009244424875412669227062574862771411651351262021962470282115315547389480241344709165650811768090456725155516719126099527540333864743672499271870525996966941739587361797262314791925437503107350050267759054918405899796566342762308745279024800770985952382062196057745419154513488140733314755835573474406549306185798141168452394690195142690154134970743802598383660220458983098159186561280610552335366044243234422842545944187621886325183586049551179455075391966712367428455159084007492596150142043365426469050893092460796297497956186007025698354520907228470430305556379415401837034091020024192743731371996067473685981332958600316790193743096384951703855713457174566211384008084641033949447135773249008543222507953349050589777137007644296839804778372794253339529969625100362604797751448893030028577942056624259119153743361273494663571952921624875451409384066038278975556817232461531396090930175939388969843211709140789936762350908176002219849537953845644888364722707569530305538526556878474479997944014628695908206334449754745621069485380054831102100830152624362861661735362938195782653456212776171900106629747655039910853687545120999808722803649932697209900186451778107446236183634554038365127597198412725330348224012465013082791228839332099496939459105900835410513907779071832185929453626571064203683141507055729083640478247947878694983391649909232917420801848630099811182539884992074302190958176984994778221898445785082686734853070506211719792376256708830308623117042671085197682983889286177902180392110649233555767936666328693083824139075850807733315724998302216077116592363726885576787849349086780633872969507293943292211389882423783226507622641821676157270825309612044933242775979275687184053060739068512309040493871600551512912455570250668805535734898463905898441983166306049830338350750146219183108745639331542037381244700201576920254912188353595205695106499093284356128484522234553069723335660357722133028595742605116312887833869877043438805816741215411450857742839346792654502553081069974844974835068643671397221735119589990222248138435647235038710109221338311415175661257195545551000086930772441998499685320689587836120630532660719442545768161368948063668152226480938335450575604778319539505964932823852351574605023509003563405977651522580581731676495336402835349165584926681685584007027297154560626016234899065510055788950970702072676816161606527278616657619184727567152497180249146384487289785118434409435457180198681292622617406520893160895147459399955584322294663437581967518673034009824095980598732678692351136141923913662059728275676650668038512492068638722258513828816444818864114061563873752763423178790983866922046122512148000269933866376651859506791171356814946317543594543637472977783083511666751126012547411612919755746796389089588757145895776790016055751408129441695363742971244860002214894241487294083232231857725288491094535152098581229864048467776844085159038621880286371261109950275511967480431359932831131661370563416713417152475516124477768677139424606250964822709339099775942155295429566411460767482929295445316059918784366335286290740274821599607443783246801226842555326518505686207032733207588595563907104633954051059050074906603509176945867617911706084697790194588115441556183344991067700524680482457350536281447240921103168592549390980996384493516863694505165012924953439492598782690546816673196472001361351449220203017722944383768938730004421786726573119815214967325430579715861542652962708583261022299679038404576476396689502661972043216372759037005582156667765828132373034883025552582095645333855262354468145300144958322144545586161326284408745708064968716172115910793156828045472985800855880879324326185584367115513073097796710394786175219026095248524865003975978557873886237253292982590853886740608928859018597482741799445343101686375809911084200648745169661629282724239332844706962912485443481653844955848501233973944201341535020525199811266079846425915330557230585925930033690411645518604938565466019987053951209768219176071530125878038407625765188400421318367483268033004614507960187233707261924007473544565388772273079854054956445359918035801188097100712994783228211920167678782914155601741854903454638651732568380231829865190746556832446915561321086094322668899086629361304967766653497036586313643493733842098451279258847608747146444073035818247165292923226174415823513780588563140128160405523495281340788433209225910079501833494685972264250415453430694304670152852047934534980681304354341945186538185789591007432148231976845230229555458266530318160273746968974740261566926282971263274697154565028169187191793459817046157020964432930304597517593385932341042154929227390050043181980783905125637930026287343742623190230682899013195202631112199081679170643221927425144757334615706078756693190278832204226774168294008472970204869099733923136484517007323948453199718788491417396883279459111647387986339154606261502575894931205776924501116228356517029364635427167182640571625318751660807630109912099127276836556767631770903140358496761524936124895943577004855233546253303695138449488135132674222472141332811196728509480035983633039059344271955294970805503819953205775849238878484103539301208681492117094364994124181384231238241982345351634246875137306404206625865476603573257563075951534241306849780292115187902483910309970263286937663480906191210075780307339372374984086206213798651238471737901640204116155415202891126256447925116985513988113935733062665823816028392156962596125126951296010988991438095274317529051600733243955697153079580082678622724264687889011871200730928995513980309513837194971618514123754650326706864613866109059247479758253231870081917352686997211959718079771608203289258369955114495243151276318785635580158561535795549142355616818089003327956414936331925148970359207601458917898218045438003180023977681806745170529153243233914799793011572564037998305624022226170740313116527622176701197435885691130408985189713921133009318385334466975004229068448697506869329802297711364630759526766332885596156142945119993842471409445449231397609116670334587761853269494782186666849131983510386763039840431863938593093458485308415541810053448048001882610402248419606373532385548694544357927726402133804964104316294259681668828123749284851113933534688325831124798067323841663310536422508446296049151251152887633395147129569113355970335422896840100087103353800338621842372853228763320693051455975096507214739342953277368271030347494194420488587296972621552338113684117921542505705699897098594067785591683638897034434851144166435718858416244760554155030783838935800633228212031840198021132912557368011529252230532589487169735574025279930473745948616372968977756009306036972497794043516436528842225751831987246423161079892414563421552976899453676033385768294537029735274510881893043954218880392774970856270301314694220940227494362149953181468343770849671598385336972694160660485876842003880187799636043634259506431572623115933202622048934771044610307121055389975114878456572288858890186052014956110458151919602770118822163433079057003000511849659968735466401430098103321754568008368165836489242696883748054969794348733465238478151923277248679358624948677695376536451875908757108473318854294833766953676286470661116147580554340527362656533966981348512232355501736932620547954886434319630141142093672805074761235722621672152511313032612935005508677894167475728434990109356911736531062181772884293536220560133701622495069085873619377489765532377669515608507277544994336615822697124333088526656438609188890140673632115553758198729201813588518851175395702932655953172988900369530770454884572797559230751148214086916225643845587631068982872325894451144125168965702031888669419638527847003630368202544556343282996442588099507378149474353207701625238758694110925398804830424652466918440949607831627375777240436171510329218942890926881531169131897308665568624055212703427833692954120360422952688675674920668548384596197263871683262300752135616981765849426506202104717945067178723915751252223751490709251898431245520601086372365750319685445432488119320773689562944861142407366236167027731532336295229423556478090556805082767898574706102133171450596256284500053103285482302873681797506230568763433160440860997958365870932154840619610388658989198144325723850793559744443107621237542065696580092695139898769063782509546023204181712895825334395089288764733630861630363877681755932536018681658801236005191129154304432375856966389667603364511469037658999921356862206522857609668110576861187252310449700400724892881198728880203800794904491323747404818547746562711664915516979860779464367727752218821292576527324173545995516572625271722187297896260789798861010461835964585876380325812101563066042152032984015024572151218380809244724415173447656736783121087920648597141273557160812389147846760942821689461797964674209552367569689496036856576147141090727601583347150932514902885242497259070054268580814693718013001706070988054023191020784394596288673297572565708924444047852814509350200725423200498559451391326824176737132692633841163499828281065192584837824822984942595598370425750124268799335809492242799027194383261801974352639851283848299929949905967180798743123978477766672494143216249761915450038325056484772318837720548353431084708033006608239870409211391948993222634710944323253220193187894962383434595244010150538087903938793878015715906375733875741054763761102470891770234560917266224781174710830053186946862978545828903674692681716600160143009500082699673765631631128611431565371952281019703561747120188232519525345293373558964051187926257222882878262929447757202620459426953350549144055803717598928085955689871279936342928253520619150484012389090356816425034892694247507735784045518690575970399892324112403532274185450933006970347754840012851853171437746410994960585475837980169795302993232436329639064939393889324812830142487003791270826809894827155351663199543273124077836714143377085595424854911009086001147212336805551489729201822498550510075484425559177082138592213016843199113646964930064536205758634825489092497556254572488196255321201763664465374795242066152620923177351174761268319711199137718781479544255199511812791342355292488392319252328348516724337713640398363743979066567994567672689405500135403514282414561292542571123816492668327432257336193452775865414086446318165081498407627391761156532393171008636733436788244058447719633514974918506576768604502629784600325098451330351466155651847114229276527416122074784142741966949578005871444785706988185665430416955783800889044207912750970043895518963669838775035623735196737107748104169938974923824416232539253692106302654303799448168226797622155604891773132257090157535137971735891615320287888052255689716392035796558229630003103825665202227833986765844012513273096347007176638331981561669671512818097516881332491518525722268139837037613417139622199774984244953725328546931294337018427415361560071170607415356981526163658418087129863170093518052579469237865468334004452380748503256785391929642487155599860276661813442878604761841008602816455636333328293714577438065724100256469101458319853599198245821685328277327942965357341969677264791806764109745769771218036560006792115692888863387604197542021290173973311095075391025222613904474142356474200340618859048716411514459459808354407117342483709682356783082927236267274376028176153612964160725523340255763944831048170889478078212593571184217924167058571862686369582634309099286863222596676337347132431034213958624430928211824228104714734172744364306429336017634573988044042149659116871640656785883298626207011229267039398251492558829059045597676863707802185509269705995367411787952414012281521062382393918538996745662365224618518775798251251290771092075638666014237745237866044863725691717454436363579520763773775088862161297128336737562153104899041150125695554110677567106928271784860771624981582024050075086219704644088986984007173859338191692669449847411097334851427491560660484322896816529467656299825555561239309651302485321360689932087006287928107493966902405193691358267598899310824603409214091161909304404102979809654306829535859761575775872054425963943678233523732419675350506931029865331443765697472792114874307349689170095429611233612741146483465283900541745582278547133033002694453103230267241451015574055425157302407742366209035754468363680800159355486857717814493985149225534289669113277795794354662481913711771704891060318084438072197170401402276962246313701387946877243614152109869064574372185217243515437956778240477201778047088388336534833778162134049900205909314497241778468181070129006735184267376297597575620933399803370546551709981988789394449371730976340327042136967139620255279052919717056397722164415319112217025428723300773506324070016343745877366783570691146642191866591362001364330693725578271433788327796884387584524991631508234840223755645059705283903712510286065916127824223595019293367562852605608863290810497341061117060285933594445405413047536375256406761554430855285639780321696255523162607882478828911739676718752606687883461061761618425055038053796375641200717344731323337114172107482309700319183827158237789685046199148709204282751133254049783724011409924548204954655128520159245327066772665457296094287304353223679963187786507928937627069744726361492896008143757041243588268321055835126480616303599357271188468122809723126684362137948815450044050018520343185745350747609215859142856109609174343233923059329467492652659601419598502117873095747920530431934070365660445379531871223403568968674110638241648414100574411585571999890651078868154219244173224122049329005154797671400847216241640051485015689583605591274907809260161881121159090845270861397791287487972710805335479094823112653761364446119441889938503606513494597897294292224538271121033540249902156131797648090571094639721763629692245996256626769091429589405983640076449364825447765462682711864603010205858241707662949571926416901658061493251671204441427564280134335633248968006664709978092397129307272233589498064720409834025674300527699544290277253869703427209101711359102515446618843924481529826850110211336451464164495608257034055675493527307589333236114208581114481153912497229754327370667904152321913103346831418852376488377081428620509132491215091183364284748698996419865879645485993873502647351530545059885543731230583231964758612836092294186715701378718024861680353667834657036518850417052186051296933987004488904817470250285320744146213048125395737920095408516651866082806858641026195808649605937378361598930631604027009899068394227712392134401555153118377489085099952838627594406091047173444762156965206296255175168221819492408949428873041766303188212806233063043599139899687337453987821079232507177893557644618152730061813345295221927655800945924943912863731832219013293643494919749547069006659669367263133323425265594096666301168831252077900343924990495133891362901531308944736938977740800569078110191414809936342643581677916656137376636071772029025251026391447293734097590446141795310465705136852278288899419763962889124989245972874810830101133741596540780696852242735204683677083208595659141850815306877399436482597142532073221628199735579400414671226670625776016717900917677334237443250199793526539114903599752979690344409898522665204815638695307539386219339318216069713132438499872045453437977329489624590262773784290997381221830362194154422375118397897505249286874786278097200733136838459054942987496140033443221605492128181438905972339556212940766456345760205192668753192489720931987647812364013758856732288398574300250187969809579471348251674993569430345718515160664528032616964483024656646415341648547328330584742617378491100619974581081303093777851064854340131443759448023349810873290356478471600555250793716872715671055838706140966985854408822691771269083707686488809537470143241991411610835608537599437188800825316771822532712769173017160549888377195633123008655397403356957425455126523257902293618023590074907304801775913220016635765325584009548845947944543259708236488430452723275492228399248452520990596147558368921121413462222011865384090886377663505012525442571479895205856777160932631946979801778073185077640750964052412645302101312288960727183932366209217472187645007413889294751223081320875300955248802210494498977984664685702240280218050707476939524128025248009059744332261753462598619811855957816895459555346635563524810563311755385831552610464522165213537622183727852421942647814349051292229879600548054263883858939797892149173073865209209919360246375203741965518160838740919840527741740907739355828609163357062268848930631983819150653208997352029701484552400432448248056179352780806005181552133964410078403001001864823343569159966535776350773249595670083328280886386093808168844067955291765530401398198086179618807958035687560356304844410131286751656940857593616643140139161828650123714945066240767895973626234860353399404341753511174253737586790285188955635628881028309241568720899212131233542239508946357630424981105895076031462551249523106385886326318631270446384891240342588381692560202911842333978773104938011972045769821457479637055114002598083110202285714251508968342215745227561343257067074363340438529879114762716731861150175606560441897123646885983217094951662722239793851229477992213606693866903461518644983365881240360333133283792941479718999415998664513278677548592500103623292563010732554263598381073589733634917427740571191894983587869786486312507041263742494281109126427606555168579396109870480933646960099982092675012621405072423573482132339244182047968680806524871081174795454407722074667238290545683018255038474537307863861343080497621143544106178993695321590834031261993518859322730914563768359523960507910087431179589128606032161906359016709758010085812769796349402874057527418543533223580420915326690332377284702329417386365954422991239781061448162566731721299111648762485611309936076486244774021584870047111097940926584256002224061934173658571070616624672821411179653021154829343604087259626725483819309186453680194912782381889498703462054399876486673438812935801803497041302244978697066376574556718736257187287822264970734074088717172192476370738887452262792665980754540786132845191950535366214984523406833331590727614858794998046704354567961801811326691898655705581758480835468235499962380433733938174877843422367094543655067782935565519426833682520558534963028960799603960208080561255829643855085648670982739310862843476254666980466071702573614896129631179111919011363257922032931603964416566113649698370856938929905110552813656755440733228823693574702780199309672056278365089356757759428944084373988502205879306302892485761655260163279904594999859975148316529063363470766432833372862600712733414410738311429050440868302333133419244451256300744296987898499872978652012173489639667615605797013829832922958298670734290454939287713556863275180844091288210850379832921809082641150979929840182208905488112805386195085842520314805772384874504524565365633914139099885910352083592279478354475030591557162055480111215423559597750349548531569805592239655808895539401068627200180624652570005946885834063720126164750174074096283849898365965079767717878051476272736160884904501696935670036162893321460958803521382846604220356710989059439283167550657191477211334665262523716278553866864258337513604300996614552806775243449083099302446046763925664619087239802453549418243931073153035910457699330695803236920915793704450758215990269598594062464138806632593861373468393504916244717855645587879185009539980958468920095868692328123601506506085240501825090334758587515045107919113504005339939228648257705215294155250945471112043457573353115455285125187692805421471844117867583053347637120387859814704347391082134253790551332164925921005197066604388930904204299827489401411368927718208063635779248960977565794041627949435903407452042700782948259371102622396258783232101959792501047424831224229536959900550997579889610802443572558597393927535312918936436111211761570961071763538893758337061962935269393527553775648426424961743289419163653363649899360512454333470658007694052247744387181312443047919477929408006873788555871213520510727236349708733278996674862878505142206716525252144774752818834486995553192024777740265503668989913316247754093977959555805851295677176381692133218231288191490927985323279531143752803266823845917902402018280263094036800479419964155357571053570104702186861666292775628321759614629120636005760387920320094463051672719828389622010663738488159116378591477541327311787721120607703502909994246233142830015357745096255889449798628371834038735184162664728536429977119371975618860418169788244026242999399636124884016176920098263348567031691438857878394634331182925027322430537934841072889711953335051977984993380974284495606078434274871968151693588961515630998527015161287735426883121815680498098064023604784956827131826037407836368251840080934240799465522959020051106113062414088321463223246827687953908866414795113968187929235470649100331325249727459831937996255855329276657785720829999742795576334727078760012868149691021542752163261854451774456114413222544220296053001825620266275081275484812640627394469627394760582225286717948851756941665600102051507562135277136424157774236095212800251461631729956488033200142014376827743681561428012271939057397109434631932944609266766722312415750129902031755225060942563197219897868832472019857942233598980431036246346793801058924199655856457168764235642727830760756262968146355996933111616176798791863995070311462147574847172298623470751227183190492328851492230168291435166809239328676319804565411190805385388800880124192160195460834922980448460718227809505521012713804686683911758072956174949189398931770066769468935366861695615187766131973909107088509564987553662730577011993804006797785588716130257416272697650067583993862907341054743751615953027676129904850958160374736399547896322263090507383941638960800225543837078677748654767839857894118657808747081251337145700633216966556129742950765143894816286165087069658989888039683285876017089540090658824677246075100791200914507638816645928605874334635050937635968088647135868000176332039491039813336728353391848874620282783867207038898504657079177854779733802290536531290144958066380725455748545190500238252995621309360559922556716157012032651657987404425903935927267048435157785719626868203824284577918135326444432172341492133093841018390923711215896038452509063178773354614707242938430473321066162837222780270466991819499648325010022773021497247467359793165603782101019356561575726163812106175950497512860515006240094005591468473184173816237583742868953649746320177288786751401022215628471860360193002083926072158110681429507541010214753587700242996090801242135020437948580966345047037480919228678588707670356758016000700905698549452919477046319844379850904158930406031153872965752759518694756099263268024776177285819547983107116442096491769601900248119043579464148180693988789948348063527134013356719272230749891272503301289242690982165281955014494944143871648991429620029157650637309528307132619383371602896922417719173335808524430141460239456902855865158640289420799259199194702162768616315304994941679570044142957299496575343219527996075889376853121324520267861262845439497962761867731846776809261336169160527665121693973406464421620457640605819495896084177104565075740746981932784875765470182954225054691723406575562718311085113439189083892948850724859047799454083697012689648970578266281942902304093112061700131481725203496827188783623480378577830465326081496429047410384945498052670003837539051441244781005100106483825209194766434822529179967009731756505860325337793224326882863833082612189811277697574372667639195634850746742986859787243495022355166254120180752753816278823702806788133186327302459038909137990692084781214978827505173929787165466753269559485167393410667382364468060788824567139739846286997788912794933777348292216743003628652736468263858319802514778690602204474615070420604750174501670649781051912119505752755611597622320470456717433635353190107280605358783699073619023094124199136742062981117151116834483274065633600733321740467087548843798998455962092420145414828471174261289664782498096199703589682595377181203003018283501580083090219196470212293316814817109376326516124080314706334482117627300564900354414149198800182318588397761322721569870020710351588432283415755397180624223744531600324510479070210071547748991961883751145709028997187687574391229494833589965546252988093471956785209088804241892647030536422329914793760515548969872414798377835148679627078050040672252653400594180989012486075308244188429834500252835287714931703236063638786618204059155224325391554633036153991884159955896600137991006565857400914749575730651485710017022603141965067564231212378420214671047651884235816931025301501964605147148504728705724256064781112843511591031713213412719083398750291119540222803734675674981222851313880546635902836816741275773730336568645422508143216436426984852364561005176587371146231840202868879426204894129046417447240201604513827496367035651067483773933647205659596299575534954519669113180957241770499611184689057311941007652785743222336506858588802913777721476065134774311153909943221173804487997799816801246918393615264404933180328297673195621490899145232977268417355656123624362830356476736411824172990976121691838158998972756452110340651753627097912006056929442887911354131359640014975731721253875617223115404964619810620987068357166700869563705188463019984686858434256258116356130177348058629518029221551552641247617368139478043267746832632596529245530209684317967551221586227229700898910635588155249791012099863172124255210533000452028850762868448430903262206933433799223906667148938256684700652952903070076942931491026418459509089475179482573125602808757271305641346617950562448429852162290747537509899663106524831376183751136969941734314957473229646101286544193282239944674762174637534581180041168875102029504579490658879983930649270601862973595871985512156815294741005811394128715967160715225095304766224199098788191784189456394523964123901539492399848209222111331712324905743877408311219977960734590768336908534107860523133326199079256991939925800280406867065781574384643358741350621879090992239239212110510081554752903176920294380579594206003449420504820711826732110474677327082708845970854614739122560610801314729570728309888839877084066284328765127716337985589870681506698350743673619967367674873526587405673172027485769675030037970053777786337433392929223597754867479056401943740930281210961415132159377546071469445230006856167386066154129734476177721342102995300789033708292083183972259854792796447404506243297721276324512442177209166861062484357546183946363078112928940655028230635902411894113930747200406398619215973043756850681087289869357937838974876599022754397476764847048991580128963368458449292054570225149491129200295054105799149727978929253420838377798097877747201008429496341821654018980525012085849504980244298456096148204324703351296015293789989252489900391020547896862424164882094890981869455162673933167743867312141398779850092661693991104831110559584842045305577270035607810189531337609858930357549167959065896298398365987210185933569044484096858661224516098776714777595134269139409621360298327173764111385000250213715297622960264454717309836391846593686877962400269503167330397840806107311797179789235870917786916021591874594935589269062422971826322311948322746452405582548536010789346941410014363146313982811231360164249260764166030834280470066902526061182839274391227743913386225268762326736945457649003522860599615024280200801082617764878091577732578719634994799617514700652450332226913619554738920132067467004883645836157562096381303767109490329353331879550993395724641464670484643000926135335417999765595514578611741284168057528019341659568213360802434550830850390564463772616193561530453541456830819284536446796785290081158941284104247030158946679840643549947603173227450669263664841314290044648825264373468756770218605603725876780291959519552953625088748966034557793389791613819020541178067702569852483067641547449866256967810686009098102458603080908017546387926208006336702230970314870314543375232211443670582218908787051291847663089846949077528739973151651819915495137879628732187096151613550651540716773863967363793332401174527642330620851190687550833702352273145771514314324184704775414128258512955221027313769068901434194431760123389704827800524982251419935487315919384340516155053077810721472331472852876940437552659621582034508974128648971854956588824993381063312004791419397791293549029697570236143543406634843335291560517811747517753256523777061298590855787666305489568758819120339013785755593137735119825016944818717238245185808801205180994239097117070456977821041597701550730741327712002091593721648128755112379189101519385794074135892334063587775950294608972353407968333009569686514081926312238792069474109959819787224291420895420950413500668753307751228027673745568544272617236284772241302960512905444901292915422142009286776647432428754611686483375765698061930443108187343959499812331429534683014393997954488285600534756562453941115052094370203079721072857567326976808216188167154092594770424802264183433626855316412376805249060086389710683868671445986834974872931355680050157905449408570626051426929494773796648594669793080797505259256738916562942657911944099543852440731314506484561262900411835242418542282828658590711388224479804919053617027178796781845570532599761554266610669056793752332016908238040549967058235843906773089498203311538596594545493796404777894054217439234372193404107997312097722658663112454965982145891075804368529659133342541171075855816378037465893206515223135459692103156738844643151696810878634394609988947734120605284778502244656745062044334214706237887886855214670392616678188522326602430272364107243232996351264372161066828360574383578174011136444588839476980756418774027727199522403948316379854368524585875025142686874537524595557977755398780105934748280447863123175574651346507583738808493374944167014175399760317129821268498590029079127967649826397077951272101737565148339365297162246504938953074922038267764025188681503702667843109927386979667354709916158602588483569019887220693330269929255749054722467601210539844217885532873160313413627118689293876787202629621959664517943115757132281398969307360079520494236095595684964339441264403115235618705665302080299376638183741633270734424119778967903084307114660339823523731846558809017766965853948036982706016291928397076519162777964248549930484058743710971553599526916143285901441716501162611578924344494491196609452368000537902997638561136845718811202460094559245382233863215641510419439584858571531433966821194546357844335635767237197465086920771026392338852637199508291154977460578533882817307667328577388333805764264494174170443661286188122416087910160296071883219868534743073475876545828191461974984056224868006885531736463902403374090967623532094306654445614991581078122019829844668533615042128849113063785296119771663685622635323118510870273855906391952184601651136387318445501012937610605222015086204143517972930943900776491807407345355150455917433671201574524036512801746964237399222576880155031087997948162463256413991960057313281853604125514808082116306623174398810601040229485653370118351068090294544141263205559056525477404221540588430344408540324307153159708029828781978597938659303559635501994055329906698292648181041620753066616157024502592196079875789483575738977663515129450078897981690671905317901423822746327487555389033128384141071166343387580122367454907558686311960202783368747823916526310952200441348067302655839064378184743054414554761052813353895864540380577477508118487076418665437724323082529514175872355199186971342527206488127283929530600717130349024284078676697249298068776700675164125172617720761832804523693749900401013711292553359225591140969774912437033620613155522621005462275254489916366005835839720637023140578753070708799114624580492303885061097070548299879366166226383579860864419920871642496643184098932864627705949413200834050078618895890519225091759767835970129333352908873710516484517545764956091242167927106256757217109694063964888900381924723423865774524598262308226798447012802420565097425771580060484954178410495128205781288202165393127053580810487160893110446132474685594719452705201531751231698948827037402381098795331543593944072966224477101896958912045383195903886563413173310046438574120003448614186206756827029408924908623281620653043127531805869523387403742553591909733291649582462673292811741978365360955555920857331328744394268985910438824391634261180535754486103692662519850081064947149199851165202508646765955408179402308720519273118892972991831548489439131234133287960108250798120617492415570091470856967065727879712226249054131288470720453477481710352217783758296732969044333682627848061858725871601891548580247500484450281771174189301064420687551487495755059968627695835106800074839204211969247024524927303282374792594778543482364648043671433847836853064301777131888790262545988109141806549413665117528076289294908926235484127590770864310464610433126681803859500109409290679870998869034775116382072087620319443326176418534797906956968671088355828471394798855480140899537002141226268651202762592474163565519036813732747351982874570637135093239628537357809983686311972441672937634099863355427097611482829640963352200928851739751607246186433934193013451815540798612560481927452664369590280690769567749962644797884532365922980855952694957455053417699171811824098221556328113548950506768158255568085639136521158684326741657456460256278892966965782189997680806678722343682199833716240585707174463471208000299038816182947433330445275745511211945949520894151822076743441102001955229805522375306032718175457210783692455693881003144190760324025331589721005020451980892226894812763703743824257223993274381144773950851714568480297664573167486530102827508951937053668528059973815181334189926578713414193800099069534657308668166865933331919359665223386216855987938496563872992346620066259427620344293157989596235885309161560024896673142258535981677645220792698758546550568110114377376243383490609855881733442579725482797838495153074811382489951431439372490764513840045453781435074802750070815165547508334823068462494408742647863761574450396735381461469951551545311509542123879303329654335416653216408923231872872422002117506629890172959143351518694155109458892423696563027311823441081486486756846403528131363323425411786330695411275865177693228153435636786814579428790034970917136760486646859438558292910467844214832838617305458637597525970721039203845081003375770511799467008429948521747459763194820323555388046703849270278559708652748016301949641409310696171914444262880321117415693579656672363934628012306317983328616610861926504251952226459990329343177821175699721953591724793224664038951912008994433753405369050169499752608644659059062083610556126426783796003156679950399760189782074574485284722542123711131675426469311825621119226356097521262669892048961754910092372399697164052111128025561952322375598831055538213516710827004034767306988885748127759176958521341075892101959861401791843959688857414393915775563829051639537704131564119023428839929303067244884822292870403987234781413719875751244013274188237386422897974104543064369376423563578072864013249619572874201254181379144144862899481028122277232646705786217929449430418574461983385497696470969852803907957600030132752856190718389954007955781550328369928281958674102915622851383202885897211824214798538422342767360276573505053620823799925882157668428121350031053436817619968446479353056506777417712347964041100931419025224424823877420986752149194805657066948811050354673227706215246680295710805071904106614170318115426333286718899920736082557342715582609420270727746620380245885007247106055509979393080679449435891314204897864819361210120415295400301283789653084496723326640544399624195432708806297783164946819290240638972402694753039362337508021214220847068221582323741459859185415775953745703059505502952820641479734121611897253736676258393874541316989370258477065406536458842528224020174357286097618570532166377978933406897323657230515627590390089108665472310543432289717328068800915318591332979244059423893866819838764978268570618454796829353686180126763107807375748749907533882396110806495038225991404557361362773170732103677023509748508581197641100754473300241860182161720745816737166502251007127228326788660386332866336109114812562934619371853610294397721098248415498858647964182345450665962673402118105536488279106742941754457876100989971475211611011270127290319821906359755823502164322029276003201004786709849150182514258353960875909928035329660050894082353215493251481643353393139501996203529992927080666790914219775228700605620256110207993320182454168272605533064840236411369263463367720672031487753286169466497642613819550853383804319909099902236313443289434030026202932791011326313806700066213579933491842013449775380273301527906197873771609910708931485049920502485971007079043446329140731719189314273873347185593412514142281560317308405044129039904341436633332406771948552072679598205987348035807292125418562219641129689219420683433692313433586775223568551758334684302054049713078622323006481921506733196964739231771832746257823823992123337230505145215322408257328487821520516988587510454583278357505212429265468327916122919952565150432370894745231451670660328464134953014852180624716334945783356272220044666093072113554179522735782128007871546948003060823919967973908144188795405201518664171841498756147296532482155438432687927479852988366560466833085002021820031653379841229088880529204444673887424445867056972916805797100194198882424785459438305731835260403791286159187466056719192558859438466209832879219609528353327815710068389363905756557004804035860907265801392072335629958668480623449842488593886737416638722427281700882064894676825991581092053386915875690107786980913318535854740788302012695064461183935239792151351750799819258059176336915376496040536093397754781875749692455575224212966700009987124901486336490074896303566039359934040743315564085752479251550447451338755356926626681759046923894094118825871501409167086018272350525323828157399587133527898076068495142562061191391354166224423719717580452629137973947503664685838856081713086335919932287247969667119612523524461290077002726602658659577745330958654972102672605551048247329389338104229520177421712635807495734447165543047998762727105822683226246256477552853224589336900581462946193942887516561667019065338405792150201241219820431486543889375808822714330872210497808896799784587447149405955274079216918985004523692177417650384136257024037533518990754487047039459832140430483099699405517294493155700191992219525574666700076680452067759444765000419746497423018189336746031122753107982989273333293732686610184038944549450715484925826916067153508314259492832643950286542884596046722896174688916554273037549194184838804365042377785264071827321545897869632555018441014340160486686463734063391137911327982564836574721296521629022727097159712822967756223839355604369812127859599511594617240699042159436435651983135222974670374884420658421442511809946825057676793504123949780349852618011371449713374470927759325254651149892035668380140529729823835993057397231134375153823197522560688418282695528089605278469366707574243218625719505398960873490028466474330783517655969466187300836841148072243045705360030924342994038497274950128946134032873134062325087071825116612903340770463559096621882080468011876305365148533798428391194938571909456448456061286076719308901806671889063420557718280051273041879368038033803210608978386752602935470848838719682915789735265742467247545628044370512092133909988662667460990269619944314050338233860268920184646955321363271018272908124136374648625314507392504555816482685101833554208876583498155681757332293368983205515457440270315566017414578014948570398314665381683443486167931414494320150754912841284350896548391457067867026415689369679613119689653659554031912962141956787409928784021995134135163980064905736199442660352779182572504946173338876182238171830717417332784205849896105360662795183003723914065409278808568169755385027544230003087060317937254285330216115297886491583944661821317288776167636855630894156253333069369900559421539939946488238795644969531568449535979797834181772357598345519874594207732830741171304976836052952452558379090375147679208408312330882078119894973084559153972390950477554330722150940387734896418036296644798504885298524013851149043444046543034767132095688234326174951841878276040131376776525163703426712710905619075740674511542272614429549782530576622970939614317491141087914688492336844538891190200646626530453756906243718326051051897644101479536412184371359012375274206864296481205740166123414556330932025545966455395608510925031672387368574131471061746428799040555164249892616657099724880389981427636649859136081673547906729372496620288532996089939440701746161025361236270989565711469487102973570815831514831572300788009954728915582262462564018768701767852052716717320083460299726500061272764601048062453980334436539608786380183910498556383622348293678325399474020793322031432896695778307512730606399684680731333251049667826823131763650660642732147704406132004443293608918377441147418294281260988551331814705502313557531969979996417104100333848504092462117309166610622472007717897034797017556089003914868003125672379275864078055518203100914869979811796141251256836828213507949134993849269100497763584486155987487841035535464886564083640342105183748272522438647220437640726019620198061601164870096724594310258453293969827048594130368468518975879517407444215044787076672557277658517632829969183617475208855133244943123496658792673145113226572797506310221869786333483332623808729492728464698381413957784363009681710901214422532003773825820091314925542361431433247066458516850097280200353081085129475147295461884989383537297033755035316056759443178483301450415695533267348473381289895678143287414796587411966858904637888921851800540938089069231917967231666467850647822905054664744229654916441162148377788461947838316417354994482849748885005445295243256434594392710365576208462327648608680742195592951473768797846698982530780453976571033125943294750763004241187834412057098342261619597467013706607732672836748442649142192015357084821957619829829506008672171299389945392671117585552614064698162034889727495266888697333459190883504346204351454864524960252629003949468801349034971770883334733122138814370668317283543216030193676501339801180289583795395517248386420559452698390430564925005065094685922678004090473610146317924004010859663342322151318191793114739932838795803822883672385392447877042214487508719891051611338261578909601784311960285250006563219516323602939312388990777660056302585323820614623913135078379852710045355103172083268412312784299790152234824526026013945181065164565591988239673693225584314320176776339766823861204790362909821926537427354006175249520725435427189695084809259785849901396902255836937828774771144917190209331975129533633467806795894228097877658840071596832423406691291415166660831018366074340143600638001861073541914606730102887029879408423261286115026580583618540915821680642109813091482219871864518521573645884692895828474425912307790996433030673081981638440548503284611139033422704779395187947039184243260610018506018186872916490193602326882543134373705377679706527256312123221348661365689934516084980332993885919423031813606254984581065938495526472937488603248776435476758993337079721814936027429329596998948231348974311430985123313661069718063942576547232526982532903601993407873623301056873677984245602555899033215637177254574167599671985650760082621689288636331242330947226575858041830583901814600622429755102820735034657794017766795424323870968416983288630129212407126569171064540462404410895319895611322913882474260232744932872955853001086734892404099751485690001889856904966969553584440978138765232054399333398807719340955327047299271932025748154614003352966040656892643429697676028604498981675446140318003803446628285277339654017297884400690071018010468941176939123249748364873477578613689643678353864931866696168244723620192175663045433020617551497781925896228400690091357068784363953633393214091515893128693226335034429089644054911444313809148189294359577223911573774483027024110006841562644962978118852204825774312599250650167300542996399145141160326279378790893283644487946093405326333530153332190647736729161693759764167786469923495715102332704503350335023076643165487937608126526659569852473404035013038079971829835058105720002831402542505805720945194481006156422384774291440907645183209044832138411292032690650001600781959284490894947087498610978852981998179987714721632751460375840502452345224696080800376651196737252985443458892182161702077010515815474231032526207699715346353303590158188060660464657413507959947000403536347202037141514265273893401645254454417507233916325423321372768323272157911593609516013023183523383366761457410512875788114149711681459644057671994641373168460908346733155711725508680943560935367450712124605856805822589083532642353308926071488588233221665637034106233065515371332414239891677966345206572498568361574859473927094966763423587232533282813799077066443987803255160206965597776866430703357033893320095258150350816760084058571434773036851931514416349705809624184709525790416832841383804796030932926070613769058754962289681010763622219358228157937988281107305218602368548682229883638367840971132706001004742158519581491157417374107184881807403248182304395578990182596386890309359376795467390320837622067961144338077034615433519514362212194967730898031641893672236040961778228925323403663226288156328712513472236648294209584851179904331085993087076622060558233496917673810252934183787236450019277328958464775377010304352888867833966344759689739830937669212228994228867334688000079161295384507677851462390927084512512242754863351030564821738739889649515689730022404352123556415176621911031285738305760336269808364160865110746764043676118384205463463666643669942697205078120286772316558530555387309431577023506016117118252217427126687294124334618033332957248016459223306855484318338426115484212825449709500646887128645094876822414227039620344601719167284619037255213598997178842074347919205586798955768917012572996805187731342166943768362725254473490518683426980838215043177515949237593617907207734118033971094374857155244468642441370679895512013431455616315334722389504158175610096011747940241278294532874058622878422783054875665564079740286567126861949987410847991434263012204558437550674585392060671803968924797088509494555999063086469839773633832707193963387759605604703873242999956168832683471748857763186046622434344181706287708063068317354563643451602812644976598145733041254767809804649874334384829212921721528511570384642918235222439791778049005513155455798970661483293473681499267500975449489531969960403138352711870450856030516761709585526799356112970164435770392874691160311362997658590456324619108918052767209869130331209124390792184047432618697830506321876949968683393497508714936861230448404419907073014699487872056574817451910752206450879687422380975146331978836005624054007449696927134757132439861438046341818559558756621003976511842321041037879893642992145944595100995572308708366413957663406087800062699849544968699503654557197616858338401495545335277545956112662356871130871873404602175842518201926624717515247885968306346338534254899388407250453143146851045491419559219049968128690638225390917197731531178637044151590456918779420355776684766784802787798954379410903461319360137133070140535391623324446195014429500765574471260821128545122018192572650961915542851931442338185851089901394529330493476863833969714491281696792763364832771715750461759635607844910586540999870993809373534266012351884365255726713787487205171770968834960560750277385319354683284595622034226458960755503336546633894210807573918542619289770318118576393896855377002297471543351288248833621753318478638934286035667462516252028273711787656793833758606867756777726924555113418534142016677784813681428422416995163130433420340311416969843089699902381998860036404526499695977073380816476456159379103524937268837699210507674628337941012617219605698372822304656471700092892194868007265986150527551879207972331379112592248290413918835065387698726336408355046025514133682776996090083921238077891729036707530640490086351020615086952084844982297024994059783627754910264863850525509774346688791681412950769270759276300600351738986566609800858472351994532188869828806171581529749204035727149723731221269036690461693351771742643216934695409020181006899044247008805840334504983906974682753703112308827689212469610697927217110650444492712786133256299734607970389764653728226979852368168136993395832580064248884463569391196799968221086331824269411739978038066001217791359065048969677098818919332454966246604819448470011800046591704143189222762901416615040304837104043875830384047231893424472336685897030538967976592714962757749367016863019882517131684748547759899426063489020194779563073296859475329490002883765615974063776620849392251585200644920101842878263771247899614775122244208081674898030150290770997695851307692016191349283325366108034226254913714259672960150451769568027178150284460558049339458615239877821123104171636270595087521142797217583786246942419256922557043538657191796650564172857503767796892884981941745596032469690550032859670804293922870930211850802906459556494143699557466628655718184172228744135697304369042117413231430295096323550063960154045373941689476454823551227208457244658497298000382333710889329361686991487271873707335426427667512276590751918557531146301642489563719423840040970362061956550469779098813837210323502492995077142894393884373033201589450799762806650790648650430612925983681079106325955957763764790616548052671127031285388375109353226134017853093816929983577970708777649814808232532729810587050698957354736140756143956194260703718669158749884939912330818331953401293185232166160896242605518633237400337438396517718771789709700092807723453419325182271895795331347221512897597954065991142917749381564465262669647597651193401242060024533799496118857799446071372718858708532770857470442740837187518718880575238722940556796174802378028007996172211458374127504726886311879706305048469882177583236241377878004135514245150492880952721912222809975485773342220570447580085369275825123433948128065346663143329096335810210767113835439540280103017690299075293262939545165653400654514883075948609522166064534734636190721941263307123774129785089202189901353778521068092074254279415836733989624520749210314738301180906550504082997804612366922939430435969409363267439053466561593001031156334576745260513721311391634518456251418971802991781304738484528458546064885488950108882334870813930932385587372791263354891737717219383919232124179451294955481219568795583756683745497296885750839792061772593162259829069451610442155755040493134612687373058730671749413913348433870228037014503056389327522765541881896716463916781252029094563774112685974927371164667396288567473893831530501707902097373250081494264954096826299355521066398160527456840876409777143785381206832494787535916050722150303409700838936413115168085829126617942013212480874992344174149147703518624391207776743149430430144947672727013403341490673404822468854287375510206834272045620987380449382436647832469124099810316713625562316936855545178504947360203243750170561784254625793150926929324877376715884596867109167961195910138747147597088409634753715518991522841726153774059871171919264831278466433560131497670027588090114913377423730484499746655996844461725283567581558212231487712876993870283514568930885125129025825893761924606436217673227013873905851926998610278946685688518459230456337371283091288327393769394254023626035424198721759968638950998308855512896649093199594012636110724744769205873995396603155128078405648848151505969573303381682250660354827832428243328821507049077730926477843552121508365336054998023511852411920156440970670160712768953700802080034302830801680806813855386946282085328378229384213283218888082034412278348506866770862489705936973915018485008680854200944041931862540591193667859433908468256430730805423807751146023528636019133352802512207876972391156322020641100409834800139190283298330933723625723118168594761873660857128544985148069836323418910993085744803118400686134958751803138706514407159580228189052399735640972200887000717756789009811616004733419453772919423990191132691826475839284076703236995612048330216218857957998975125592269858124149527943396584694021769247250995288262495752434152011460849881525607217570165726740200607988835464286937319743553773022697122637362996421641026268186416758555934946386241033086449935058184523175898585675306167258324291133575995443691505784986078865030183587339948915344396875944903891836031432631038521293282172704448467808825688255235777089345411429688551035891672091762325481296021277361043948616414363714410109298788004268265155552561360062946521781350053011693462616736467443397753632963797237589005485804565897992841316349453478468394575273210495156457281653150745974759383907047709221234779862091710103815671461991541050244305034855007382264935919274117455290968311289412139835160752072931429577799884943937211859769160998076438861478780442078555758396638633672001970836501073431587528886175227479489094721736085414297671886766260560630251573064443456889188122165112483762884623926907155916031899637163638492754423530259423882824052340702547887006505107877589794017211199085153937956693289205493789050601833754497450065788270333539763611519629833672895116076471604392929462535481077155095831401347163683758538252793555123513979656276874649468403179369260612789352549716222248007882143983193125974541546569188203144331270618897454357780219022001084273628637504376261494199504517735317147691189632938706520768242756961056654372937326277900708514077496332719237666401642700990058939821641825866859028074031835928881398694959955242036842084569142059500148992576086336114927610135175165216981019744185550870534484619388837273613383895900309543507899724661311106699001953364472222726365109841183279208451515724792244544358892045286569954802458401964495971575371099798043756151635176855562035999339683324305100069850607215027783249995816293769711184269768164686401977496474711611579534960950280394778104568723390992143791633526622690416699304934546435015861798449995159831909899203734659961909635288825004677224742292225232235347770742299481776573235287197008964724142799101822503768797727247790478667361681422287084187553069816717224231319993183161804551903214562658261866241875479527668268356013643782655017769747059586231175147151391405496464229701894129367928664566500786142895162455583985788798314498831852144191290605173089495654117625442809980869364029912294124851730878881251694626737953410851775034705201884258510501808305108066058622846583743290078663632232901820192404236575194817111547243917974225581503008652722560770752670283527639563365865963717303283100723238726353588685697449155237752426249030051207716753102806350649395029710317597614375581132539822952909400002204011113084641923147298042398437956853002129746632436899236382252004235805759508761812566752552439650551766432847298526213272673475886256819577840315693848697049018587156194747894325524008753576077502684550567219824251646386015739650193599504055613238636291755768816039245254807957385574862090130855832492265676695616659081636211514642220045514230318308449267956203956901563171072591142346827359549905064548595797449273805540699780732056694996387302173717995899106037010640676801814599266433026989682209880636972560459728270756680924726863903007009439314604937541216194817709388915238841898051002843533928248539161750258088698443236174039430729064699497086547032616926365799023127959009913040798463363851730388114040275249508645518220127771335491801256919076123539646669242581249931361527570579319727723627168997023708252888769913232237747155380260758502542542709084412150773677210958691967776515153419997785277851235038995035319787814776434984838202065008509373386288213028581173192204473731584080778268854494028129111559822209883411943025208033324978043339335162342630359947997029261304123807878069344881801977445475610035756249625036497062505660048028864198861432881541242414803349581608333687565494136222514122902252851713187278695104611887033589023336833764014454310944260051320218085395573282840193009203990408189177502251828022975671535483654164836235226518121144901088980405807552668893934869608989123240739535299040861884954403568143782289616036938259894530978226604900360476911986476117613127611967245382245227921334437782163798404589177156531300486091631272418854409218725531732374514451539466345824945148298852253202279412921687877595012750437940227012667418005675197191330566112457783115627601207358357756442258955402104170213773478434404063610007999675434475540613946641627511310806883270507299567176295856057920553398726963908058098039825723450841527880534941066742730132071081930094135166285502213024115687138442176652611767067579626388549499592421098505395796511189688944024121888057423923508134228622379005226769185890709834596100104440558824455468869201582138885245640756961053814748260866134595194250973862094632435878539039147400840005558971604226314739391425916792528270354059256489700554609217730580997358059439577967189777034089861042583634908238407983240763187163634515847016897600379221702472276696786612424833371150071445964212431136702173311194231735053760266446591184673740338698247465012088725892280010884363636924521766933217313369192860088910101515469680565736269396972122795458369987466800586206173892431954521667355236694243018960331844380107532568930512214659629373453382224571350369384057810380078562303848520411341162142738161666599568612854803256411698162829495354744861781825962659713133812071885365647315794083968980126583941622852431543804938313447183287738422702158846917578830829289280704280904613056601438757584741882503287060051373287309796704289192322206883994804840400769966308283194889451034610177444411461138706045543474468396775094240840338498355427174433181785710955797660141081813159649105352144578913160042323060111557990781709799879868206463309990976636086560104850381464216824077340211590066230158299938832367646089267024614839439519333127775825411783450108016131884569356676047221348329217392819374274852176806418064977953112410036294701394312433989837759668689364120539998612700007312630022442596977043439607577194580208381403766163245425181863982134146549932122405078651739136880112711065006130052816447424259177868651512964059927642002360631245597473549932872595769690192076272775303141635057164389999708129308600335500571715111282195071037887466618921644419455741717354226001697376316848684503206033809944974682118506991376553889290092688217408445467522722598120266925260834659201688816106077142496309672241905692814045578933212695573208199594156774631096522761922909110557774454025546941939288045064160098991530775319697635493647559606841806660050103446031832224928643941641076443754673004582680776900823072183601831924756559261348302146735740780220003565935812991326789680892813737704209647388951773775176590068412589788877259974510167449566977310419749129992278769487540042313169002781132511942839446786325684410040114822866406895501794025721272914093351422726170570919191454203269789531776405440075617354513019274724528172121930510781537688964792326901323528707484428609507820663936985078058869640580100169435959446206602025785779767887151083327182550167760349734537219316359111935261391855430712404186148202985750182682915080119466034737961470750282248367954634370904752753669329785254530528268791812638790149964618703145326649414211548492355830965807587846143513439257455656225237548573347638677112919871542814957652157985844023631545128167857651715313952108732228974453706246185139864435268092264222393879125759091559844796867960473059464173194733517679292623403679206865830998627367959988065844747438041965033399821008390331864161851434093479813571773086991473894437676442545521559436707260821844378552914336569160892424433795894786931676362962148004443626615054019729693392338529957696973952487986167845394129467845224139919246977700392457793585576975043914570676886572271146135213026500209291262835787059811871237488029858424022121749688761794202777149822191599896449774183452584947334875277112315306351423609257904326466400084108218884655117005992699557644914187310513774196403761035087784997997241322668845735404267606613478605908931457041637815722727793513759384250543776295827553707792791369579606046211426281574332504571193158023473854264801508962401129295121343605232266636722844620774446891827320755734312185914376605786812265852225822481246672741821749983794341222427347972688643866755177921685393854766971560884307002276844131809019690297143624380444396848075370479010027356590457657734477903176067635131684830673188900969997903590904968590137790613141239010435661489161334368481922001880520576628799035636337599996955376572241650798990395828702119504222691841988686972430814200776322122901846166325154919745351893191366987603522116080519968683423299527941552378543525217445621262133797457325905143465637528735666128048954316210053982610480537143098245052304551264513606245328598169158696666107378692895890912663151485741561536684908869690036956772450372308999730551401089616664956014221444345699413206223938427198067851938086233394253520426352069104075223293280182739905151547574274303499447278847399578310816913101220449173706845411670151786042807275155490692913846091413032541999894584497311486569988793692900776752393129364836858088292570580246714692954782684950421684105968743029645142390886113176808403216052366709246470357108779084514687580634818752865466940501088065941731416602020580696453155898749991018470811484147603516217583771046421408469906272434791788449064449342968569265615744686570659936433669355632867774902292907922661494210565154596299067338941084149610485638391347956545368854033353518125992264566410478752473013988754165935877234623878551557125272778370536029428204634085070318301207042825476147833487418554325633923645579465235017047683865574872703988419672402193376442110309159241884763927045701041994543756070599907980676324872159862242988220935638095058982940404408911329530627731442168885208148070016453250673682307499123968479590507055913959917902944374517212711133424020004761404690733317646911342258532464401057243061118697258737191062002912226522253408967819704016255075582614144003266007744402706292396828418672061128010420947672222210637088857946697858934060476095233944713006610107487940321125193704776675756356363031448154754587170987999588659538724045151800640575248211659351284340608653096209004192191226279220681064498776692879960858514173276310654960277544814233475799664281637582682589168174806685388954947375596971055755404436810765052647240305544113025911797926182171711542678558358036484811060741029975122155770678277447628566202693951180853746003242138286923657365048312851871934351543771835477854162029891329403780705892758582376710180009614685815340066581792105881882452497939829635814395193024054586388816271802151338317694917397886092727456581551468248492440643120481251686429152209544955481928370683488742448826964439617225448664665550548044787584506395757605227453623430558433419722447812871678026026811802287289610040111731908660156339418565834814960339205204713865015038822853670746110716916278356822068730215388698586422330529061901100154599784273684156569083077030721412264614926841636322445087858903636836915442192711295009849360737302333752651316212375412123764725699567260081035416143711824629680072961091600449591487260862090764123530516387362318731515833727249591211284328966882846207409202464663804296155090225163210377319735363791303800089772899673890830666825231158718176004434890084358951780075565128115954597366094961266279143421586593567442254415389701670756253844507843059673920919688090839771866067825436181240283712455271084507071467525012365485195928127925904235137261044366827650505807005843369353103447111537242652269204787409683382697702673151792483401852207116062077020265459453870225295423494981086786593141247223447743382363753634444223398257204541380920160304589170428343263602316920117417667434668045082690985153277250787374030030578860370821110347817585312876706039036970276987557233942484054964452996935716139989763302298440260223124742199662965956897525990797832986122571011059674302062008970629355139447752275020080662090651881720115400821804258342179852132612375993580866677281806134145739948511481594650559468762497152155097998345040564285338280567311635112495783045364365851397916813348346066829963257583604983288297243210962954654717384633750564410851612507905998149771609615368446659604117895134930525738672498598829963923790024466598986146586291520927095118582037235645627758940319293289488299331523661652626560705541903517767903533585072618543288912950359164486862467032731569663460512556284296333312536984320353028383303498708360562697014220904232441368643863779580876598226411863989826959163793034589249131564341896742213576603924478801092595104907651287598396308179159005156623465990723925871672481386647860492592073701253661776708969961301590202123105175308021689368298834037841733684106639204745758380888544414371943792654633689960983909763034351118859842688117319987189786610394843008962351296574927971155121058256588299785734216937056465347188530368655446066920178844009769347130904217974926823184614052971442101260943936077756667385117121008040717329277619660868185248178169385188569005239475772525793288315883342392903157149489411007792435717009708097387866687756131751812244757736504742735900823414838041519238869746918664645723941467478445694151524390170053161304974187855275391146179598167759729636335083597807302867520430582488312197985727043618721164715927449209590142132126233408524940595400493028516316517363491501981957085449397107293426158825325634679981883711157613385751046469153894038869814692395425122139959152859480401315101414222532990631181365680613353371076591719988757041035714032822720237294362130076011710033882402249502197897748307700367950171817889212383672219435170989395386047013720664715016458013144640866200958674397780038739412693056250816664878088128286472355734933527197187074062658710406982221635821972505985131935017026928927250017435283595942729456353349301270178222264053726949487845323470288029052295543488837317537265887471558710468037729656203376910971909117621472143243505732934147094510847048703878113986150275199729140946447249376258018089380320307327570960961930540328779460281649188887276457234795663692796979695399959212648825677054138525949695986836166424180206364335004320023282994708636829862520751205767182412158624124628103517132420458661036621083263868447771280905398081650983416066613938991195833024669702843316577013408617201013968511525933123605813570277404064414781403605192946209274375784565604078750654034735379721736681229060144499969881564220191879845352698099203337906358851095077442926277856553019977995621579092511422069027234238917487210101520193441066375581116453040597314210341610907419684256038809303472559796240761364046130407664709848036729428852209583848760814835938833274683267156760676441848934936664392646842394473670313645480884263494497528204214028043471156332019001529377993767285991948745939348768288960220051607662692050969142875287361869949369348768617488785265416802457487003450867657823627255970329636420509834150217628567432077538928042675507493414287982151904353127080528441964230222209169581432033863347504343089598147966426481576968669609070499390354457437233579879240057159494200684968776706043679993188882520951961847595726635172628466737579295974400326569990241052371159669119428213304833008669912378468906492346736855517694844583515846207551193715709345426629440798675896832280123132277994585941129875239775685039906985554999167094222538586891074673254458304050272105724128035868826167938607638916991922889306046742234653434609793191523959335837899126829014402828269689034130611398147860422661898093406655644732479453929010593567827079469374762797801878487992003902658484815643081909920183274858769351722748324628359323400646831576678391000456627872335259963874436027820284008231912511126854363709009021809247355981775016728441360653679619803696526400534152721372807185049786103617022736087327397400556348177276206583221642770863670185850346649067819422605064465244369073242231409018636989625580334131837175006611244314494762667365101193960356906107622647434645192740656397242514864705530855313750738576224051733290702045052973555379500672427038521390451622174203129895744607555375316185888037664904064872318615047937574028866984384095200208006428474095344273817173052562777292041849011269118418026303131429681707719491167665993927659932550037111037944226263448987825996471669748744762738402982859322045310392616118493096314220797012098966508210742135639364348411168961334784236995468466983806346476582289424903109981505620452562738717898453163231023494540660403891809255245660346535619068910758625891057155280410367367072396521655303529324759977029987178699371124804424590992733465523991950923563224329680899604574281229244386807887353996891625181892775991185900081611506961146318145083686958980906711190137353774343416275163998966403286827548954235263111810035825315631975598978225697436475284943330899512209517577938168777623080255219465302419792650985178274327970440106251885895956067197593790608366085627600038703158544331279543921212592773325124515980089109136165004163832777740710331013279642930484100107093857366334733476274553907073984396233716051011087642008601769982414214380071539220517400433884197515197359220621403731577821214707188226971151102687851874347980478569549209301716543323869118145104858056190735479054946462273243773849878985490025469849801819622435839322384181848608385413749376808778567103094942371026072475339483136558229996870245721417451525552275100489898751161289181396780368064561143429149148186509933307874320545133829884293762338805448391317105229207619883259829636103336144592065998207869981720984704860320860933654867658452392960328095755227282796908246953841338089996128046279188311594866063596952198452578441210438218652242115790043379099729569377219929482346634828739878615741519651834038707333307841550367394155181151498716871834370989032391656898568461423472419789702909256476880195125497228592811909996949292094786509124519465140286249886549670610174904728782071755336886160949998251040710543356879691794943159874216793025206636359436690190674274711616593745150676801538380305226289187496026996648159729934772971681466759219826923645800087170953512518942520151141882564405625088586904023785314494315888093953420205766420463047356505052772628943010818175399847267236799450143858162722703469999738879361002776581923939606595401721489025316809329287209829334538614670144315974903950101599173880125663640785243682376261020984433041252172588483100637761304323468022202733856467539760617369127827839403925774128023053230897961896869651367431880343859562675343525327394290493989204150486144985437989469241804299233971139192947781583785480419352370510218575627886943467891520003351485468253481899668086599813138730288100135746294373749971441095971829342031756657379819756543183503368370468792747216040002725013887258779199694172250995934162675504946362283440186638668244544912178249791129218744806104210883238090369437179276663760261566117220927009736324269338919075656267625081880834912079645101905986131560453756554117962385366939900431417789370703634319411095088171375812103232742122196140179362260998030932537141258521394433233793437455523731424510752523679235535765832520583410696845147363291950279170462406275586972035628394004865463657332414466307855026400558375057847927407312295024549849827333774932584634273603101940880407244897841369694140063705314553739085832203695538552631651314798180724338580879212779389114234866444617572738342563365601392500258458598394135501631117877292982399228433085745195573717035030880469480470190916770291595441618095317705755444737784795436520363028512367288040394764020335336819109238370791082667157054674902560986708286572895837433100451842669733411797471172574862344095255995920702313649768298119189980724953592558660104075820489988287054415982679068140653551489113268334782750884274640091635443086726933155162257071436925621882338966924950400812230393107483631381701813451347708565543693876136707943879360158315188954941661211683737134757126226092543923957871790459463159664076757969965642289508394133913955579807510067097335284946680536907393476414569861050634079390599426459074569905125772957363080840517016951506496595084807249287911149773678129728469867276226533008372132748005493227880513556854721979933245170157620163611277243924489580065038898447649428011020564091436790573161854724648034302409896352588359141465749831822520727259608078382640504427152942042491381485824455268113684683599423182527655821053599079639884187222572277656025806036765634808663443097327087772078290383601456980673560073271592843302826512737475663347604892282937132955960406538510860672168440482910543693747885470893869449579107164056863574299219777742081955308906154215260870017469582963486890753628012009216588665654298632039537304654107015978966905251072221263778975650297303886187282145851833914427910685426067874216227825448254071197845455719344863861361840597920351145497397067600593490405455038841614147271939626301664219662444519938095471600577715380452608629067301876508021380314431368064747465228028737796193754818749167852852416272650751410619873397163202104034443948981294809466219760367672924856141633309220744236482484971508636929821411633022234768494429989731849031823778553073048949494610450061618029281304041886963538326948185862309849099164593540527005750455162812060376807797380662579688643886408986783162950597210548482684864718884858797275407136786608955612164968218007329781630979041411762699008892293404929927611164313386299121440146181518213426064248206520417311612731800467145739603587052407493495252938774961324827677197084835850965534440099487669479764303333454140155573782400096399461348162363246301452990952111190096091820988153052111279288681601231970461120847746979152072162313809629295682037812280574460072855198185449428312733187474156106486928578224900170261701393564137069337988641272681005102628105201057079134941929127400497910780049347424923669481970689103341889808883058861673144762783008242574767920604232499849686714471325661473179102961434669352768181468529510126745579730848141911323474645849833383907414891723094082487956374627456149073631248169980931541499923643065326345891512141796704649359851698479732435012201713849609398916917099868336151013253903983258264534710153887668744107474660593336390529361273179776872079503475528732380558584675495054748861607194540667423905617762486563992711365392132390178587219611610517589305702567474288970396930319539812306951199247335305955610648349486561400205933510601912576412546999599882944466604560770988117403831461466977991680021612824182943821406099628122003782000640560898117399849411994173278844861491614134349417671782528601145500657981706099848476611185604315135154188125187463995469148083732315914615042721293401766783776342216022763604319267387112108390784876493583409408541549129578787555019058678074828539143950635313967282431687817210281365274192206311661519919690402600638252592610857317785381354869846254980934967724106653802168277116535394178677732582977517720157267521673516914787019506806688897694169755061274773579656856018068230172084807106652045170393527962418628277054343039043247303105365499373910934011802567085320331666402140889856909918787822803706719892459558681762091020606589114347479083584271057532997672443937192583239656326786409412043462053537867548893870320612704864927518593952940276403189892515019818763204009452133930704685009440285820002773407503101034604163732727713765359894724844680001483079994900787526221142752056840485626473260049056155233204451270138280376702547663647174849625969143942383378601643410374254168287378816589369410500678030553586994848899604053969291643782985155629652197436489425728653188204123596750333324228324994422915884805535329352365857457219267368594402892774709074115892232199580257278937197718649728541902489924599706318751408581771140065814820301560158713447439903871700883126005316563350502866658037752022117092881743842580279580390635691679326877785946594987474535253047024970038643377632879542640326856322337214177241871120419899726068798580330432019774335292335331539490741543669560150174927273555465888073829286132501814092617728073385079952734833801903047647838154895050087534128691028695852789458776435310014099297834670242114850768211857212272447916228319710340804738151557319062428616355569126067880303693221637758998740993269935751149045864783588235649655265145094523708410795797966205796870127423701189631762969347274729852899564653959901139863323433682236677380465443383826804478082589576554697252902225845584776280874206788098792751610286957664600159294097879775091626674428894115878272292873746107531511827962480569685714527692847610812331216946633289467957248118045532632404288867813938630328842433019845274042906601660152988384203556036665280249979598954629422532490872602704480230882452549991723979412074304400192340259185322180003195958495501772226834286567755169800096368355694381430325311340144353581295693729031233251512032779347160754926207388718497555179823908247372439543709838626022244100705814221497972177168913451492794504633718132382929389031465804116467110132639563544756075138717696420346429859858678114644318690504689006818114085528807971513398506360995034987757861442344118448797900569902574970143199278679627949523662592467471419976007469147379705496087846929703084650265117689896152870688246662258977288970924545388569773011753022248513771315539586648821388338007915265927548672970495445198161967933716434497094106788557757373046677055069613998086632284443107301425901989950616281470590405468205988427006932049360884266130688981715319642889322061341224479793664716790754727511289611846935319665639892555203646101359375630906464166000698224707304243464291714814260650118464532932808765378547750475269355426517582430611504634686486746548851967721551426190028844782646137270195106791540778003527078905329203225536443325473022640609894334269669598374794806698302565894057632049319143486121484776610555921350638578062274000210176693093790017158205250093145984462024912598694160563591063039711322230053777444724759421249886233782719326105706362682517113755577252895206655816227026514859118613003909328145544995306494829004487055799563854669128712552739162389975054163199617888503407269205882984442420116375871729016568653183875590159048725360997217674830533497853919555212434089237410349405491711079924825209594535367989480687632471741027058654379253234186738158016545790729569028996282265431060523075194914268394121353806613024883888314051746066261687291415281679756201744974172733079321792062724905559543440580182727816615569253143358151991139603783416651402856101324450448855154361001005324332203937612187915253031398011219000598017741931259845710429634311131450711346139132484992279704579265305663190788597976357765688141447617036129322755819577861395332266343999965100227984774735833621261770144372565100067792731219313177729320405655244780765410987148439765063291786341378431450851066652269907845577529335637706697176978974632341995346778613087144598693325703975077027500982492180679138610553550387053921102276743653345324952407936488741831767230611199519257505491397136032210562711045715283222245692627121190859595031289311419319316576789981920637590121273036723250093929579541379264996692310186046136785915822535977997749228255925434697436158889310302873963696123838576112811875748445899255400078158870117454518888229663627265487814190186908056019476550716836867281872577384696963238922118733899910206875965083281012586025104172049116229910822365714851531263654204323646089180420935187616318310159558790564302240648764972141322548531876184659812316875802826976343132149202396491641107379643366048290522835101695938448628035589934370665212595344208217609350429821858439965701573848609272493923820748779259056199823659581077420358194153012463143102143019278125828627557854342967025671753225199805046751593158783401673232900173918622061304921502957366442942792697482743085348329480317884361467805887830981584848209300845911571551654788782052489850072200906870053903290674653289164656135737175970868763718032091585215460380542354446626779631608569796116839324413192191146544967433404938291690717812967304104376023827732654241935262474014377128639377560957259485353341914221732773683767748138518565822819199647066376521853057595974588490726860575608317574104877185499466380439197196061914983664951506019504017024939731013714370756876791092302880905991988550029842291496030960122154596259868560491452070400691040867312967539491596914616394059903798268734763440294782531218891678449668695359677641222511590955203999307465135659108067530233872774293170357026568424636245156028602940631214264456696893055633822004541435455331267232502174714355274332241890255727716932177183830140111988476512674696176139250662347049318083389886416334790851983166992094810412434178082091136260738106872853027607852539442487841316420494477623728574557333436381395732889114311043418357784846895707726122930157125157521495412753331904368083289196295542223122784814441719463621984700724954080514982915922493652579313932691030502856558082855800426871012887787757401430007581496493809021044144060997032394896924960754887796589501020169179426774580379193750279809048902865718556096884953461560626948821963272992296027753190457501327248693601521574654517434171967010358930826167255100860857524685526380243933643030634554420951750196449738891550296067014950652179613231311938219972764140443629853873336449655362752462048623373976310086366553851013543202053707370252607306760229869862486516951914630678687736987018352802127096778286016411765705657566590046671799670659758667727283530231789343893442162275383889692287350169400694538991356993428198162925571233912567833976188668704367568786259802086579914290638637686243238666802484180754914410732701750286361970214430625059120903278346397917248057060108783968021829721868444118593756861761007711686209690774840174391837253440418719561537057642797688965857607477984260566689126254210307485120773189705705915265428691879886363777385106630644790043891853392954681843147429180339146065140601773726730904531791915178099868895114476291475867130320920219160981893717013360225769050127408168315689768991934514852536379632196685732163348491931811392460221334295065668549342267167925784126711281391138866251797455585407928419114722151072241405751549356744899579333141786155311351061937806869444992303000404811121230666728307083662262537088251649914000061824048238957952293895495541635507007225125228873705810552008686071484722153998991529958851883863145761823142297986959168484953074502129092024678940144272625259961375541544177596386089025435081491579815019414605928241919898826958130055924028591538756037876463639916357455025044984236923791681165881666630458977805319865113316816564038758265505491166907074584430415646780451173374664441855301933860471478007689627290543782326624158662131911029526745676069665942108233277319285604989416519244511474843352058217111171869205003827447651605579844065049650258215314914058640663223000576731095132336473207567580430505060159451097812032324659564915124608630699663707477590785523754360737687746479998160084556512071775123492328608332921429797261429754593481178335911648137129519067172695149708316990721102871902390732798997989192446545227863015242647587698894320243481937002870270126920072738794546930234049736671021606928790301623168948374471212325622573505947841062242306763943474392184353000012445914491785148391873703110208102698889595179352665717499600997174956990113124650305149802033902876437350198761247682169624582288117761863301043143216895032039331689175919210638824470381751298285249651198785698094234403029050414956088278919196733899314060936552202642877437088712684147033869934786038951291992257913518672521442456220125688361257677637072432894867333010718139832229486019297358415619455803525473827690987871267707302799289045953538124735622202795167650443091651939172663288017056433614060734920192149420214730667991292114695055102512981477432003551276506751393544468987300837482744478121934189959257546438505485420752649105261480324553545448708542399054177741600458963690265645760755315785921725679987020791246761390824570143895398624616522706310893011848854709774411340450916851058921209464727398145520752796064772227361223240744127382667435822646367116611856425599297362784405066354445663419192872240039844565354013222876867446341876990796283286561792413760258100689100144161019756881016579226766328064406544075230865299775451732821315528877523628772727173468548577752801535594801867704896921243168544504597561419457837342851139407433686072400042450052367026584692672208452255569052111997961242793925540355583881092766141724642272894038724745998577102265423343367259216727946686323064449956381393670503070924932508431460146726501783626491389007692978827464948289786363928554805057198174207507308285909764193748566646567824289370007570156736430991203092769174142049339737431983229290958008169090326840903737794953616553829591658743422451770133580336385918506968761395204509834780830165561264255693229267040942299568825569034043852146084021538125871664412382109432507127718105892664098611195407562971946931631606738735403186738709496655225179187547441441278220227632623577978430543648699701444743015823576827253012737927866348012972594223761945785336265327195917239657583777894747943532395025173690195779636797333468635443750898078679260489517505716767878827827340631227567596284411153789997834651375901413125774880838960901890426380172230094688483538577679145878688519165087994389816565149616100744517435324512650677097215900309434260171832900219838622364706039501528110719478261755843474362622712256452197062090205346220564523815214242507254265722515905861020248919002820267603622746216985888819130648359940922188982103457340490864951840807267340688337804173444058796564210441694141760959093178584855686473746213040392525324184141893396539544011612691131225121619847429657184073937230831293047212761498713887863899509477348711705954382412940001903396296110458163301466050746208906409278998831166491245246176049884018662234138194441593908492284810172009076589496484236262013924074464338396883447786027723045000327919401347345007727606953135539479701758071505453809275393163848774708370524402125128040334913764300230998230618842212615065112679539914573903388143780181414083036387810535261177421333767290642032305472332327162226715246637549908350123939854473206081867681240245998616806934478790509406834491810054304953017271774656153078747469613044220006082614500961763007252333919545998687015746272270598496587987913996816207492142206278392739576725201223454099881410086829288301362417260235323951587199120336768266088759518182726574293119561437550231856874314195778756444038999876204695339459228807420340754417259124901874401585121887456523859848340739079129712194043184890455792399785065444852447863444254773203450188568012067206604943745107555739149096462971800550743499902866538018608975566617112703475509285002895864399055265539390995215149664835649343211508765100544808116716794173598605466600284844539629801555416763513434474565807409403608230927600169191990224671210724193435900315889717282857341209413178439873459688642660765816606216959402453372890419550304978200183817711126164762744150555514163821467283537308365615966864193477653433872177966785361529819519067192187066464752563836097263170588226806445400063891020220465230972227194452816180330455686371398499321220269630220311008437409842283860676131592415145884018162411917715396249714018769614611358713495779519599758485889544289423215372550666394890929214151547603214245969129999788616107799536366497877264391535123620503647536116933727181933850124346528935266753709882054181299863121259741198174484418407516165683521813031943006683547469034129402140582105842494505762064601303476931007325526180126059247311298901413989545570325739446862255712976881190444668040065028596534794765100833533169725126774266437125220838017578181917000986308648634563125316580395946394902190583701112203928656663116078365329432625383820649120265113993506784353274695649206857183494431545071084006907050646564101768794497532282942264744909107776098114212394036785673740258603493263429083948211809426719715742977153210918572677824898190760178065154596332480299945127487810695013923142364190230801946744864102053779226910425480048717390621663219914090632079572766788282514470967965915344617669372520365757630759381445245465057394408130491894842146617982989787052795238399229761618842433145120336038461468387659693657550080791328120892157730198928588999613007830505500353817546483783827802397460292394417188027125887146029819950982402224788795707185837363780955193491717819096905501141760689210493027423674524651978074327101810868028781188408198214174376294142122945232398506461158263259909611037885213987111834434503047853868644029085660266897798376503079778205267217757797582058817164970187767863892549931180337285826082236561683957276129066731052542626458141663772450734938835880446330495373383924614918870657446166745714905184333297317469921297569567428315396692569473497003932940798597358083032516308789582324178609292677386021191672926533054761810655969327179419969135623805902932066648013347604425508828168025357720109977621504446124659001119177570215806515533941127161348254466832392562015304069381739607214676005030893502590621117539914553260118257574374268693207669402603582525554149264465330103549423060269618574732466472530863709003271385914754497635248052401568320784814699658383764289544119089108380541099106198269758687066261746188400209380916649027536035882693452636397581156247039722521759176394880754846417017710326061001601107875940892635044827796852692325512331031101568424992076955051057094311301910223517573566711641030883334960327747251632032291596315676238487280711033068892797019150956614705720824615035845204782594311498393242415012210477173689099393880049361996412648042821921807390104541227413271793289402203589211957107842970333572159835124331378609103603622696721058791165034419313877981547828129622238700978069843696457101093680308571812877370422111734360021875239279293663339740634592006388905994917886452046271214164029712733909821539175254870962093265815040119471429820629374965298464630773167640520224451597052807989836356315871085192562720411110244773052086053618600950422189973642549849260485468748406443469248777328341684676393650438022265959925021131580549032725691014505635592661360783565731561865468607505592627927527890484366051559527442282120151584266170561291098947014825806944784163865631107336572093985937333871010071619718630054024809470554856825599817815864548957596452938982783892977753476717450450257878860250714756267804217804143592904556098758218915177971115866977268960627797482128715506519179847194053547919276324848883473375233232560556827292977358518980547135290768361626898862963299598574317251084154384694950475966011996457921356434613115558380193787767257504507848909064118545256721968186918490205902343454896840036756699319977417728670959212129371089947096311726069935712807420514593185796714763488382084796810901237470289677599623100883397591680511452017360524172390622052137351416812701578382208892340215911313183380017772386841019951797830392152762222523669078486414829680500289921725979649241843044605203517637043318667137613732826734687256001660561915301015382049779582226206487123393680261465153292815449836595520260629718964553965219808920885463257411741641840473701694110339830895270979433892112010202961148743034359397785946673557305632588190068869420598032206065188846813624076145455443336325503405951993007708897122478948653588269975560973715728074355397409105406965161039949672890149211032078698338969261681007866881976431699263085511765237296397772080781426088613677491311656035579326163942037557316035491516565011560490458216223728529963147326054732962510550159169241478194033182892844566629779729055931232809906432374742571057965144612320573882789227416437671232664804032847083421966477935324760674361671285784587580202477712520203792858640199935161262791076608389206137737003829908271265736442911618026109526171475531650212665225774639153747299940935259910507402878618629045595937532607473457084763955695651637121493116097446193805708042432380460423234405430626131905195472429653715273345057505605168404016372133781716568953697106171792228057056347303870471047797566736936426760793508051374179446223593056310691385842177216149677521974003847663746714776986770048308442090156049169448758254805922122144695964828544878123478034686311554898726828333219915561956273913729843341067295239376767372132454893968748240674675704671933792782042832663418534414984623834555279225695536463515874197052025816035428189088979020193156029289587535881024636163015414893293142371607028674150675380768921903350345165960812664663419059594755658793945961252559547491435269344642470772973752772518697422231013360596387273750476225551667423081374924085558483555881371286946215929529988852379225074777493196347605269857568158874533997309119663495078981556340010187672169366915175724009570174305624465141928464084276491773344314569287784977194621553914563560981303888977252416639350508219589558834212300843939274655996138636605739681142595939451307787671515674945864188315788941720781500254664623218307268422460127164801250674351152883391470663234651670132804269777312154983074788216067312562136536129618733015983011858452272707078723204460503164662522926973892296821713243860789802654287999792012374115199270444818658530317733958791135204833967312174112684135449404183458114127010235603591584300657147360774795031615808514146557318616830340612723165967362047240178292566988882103926595268823805366340652799226933737397412471574164971893922249967006340839372571294623418985600612271253613002639086156031051783580476117645613364002766699291560947868193017663006992411827203189867364702991642520704009770336269875586042330539123164544467251277238232738049648279691582404251108507978472766626430665869675617374661504888198024753864689519935972560190596887270890569051873645429509919406636772938011610578314893344669253610372854985488075798312175582350616572144481114486921300905595658702671385849561813081114235269735520767039287297312913372358683171986144232665568340894881775809940656702439947301330576563658420520456711976825434185228051836052364314292568885158647140315800845438902075016073130893465818816737671673203404600607978929458227739360549634064393298238004568918608287216317482565635728590586438913590136099602076362057117489960987859707257142537301389568087305471181749337837497722986117405035158021785084754106099510266863653056575214996045285661458924971050096576002141222980245258999077215980813815136071753462027241970852894636440578645222815379569200190125646371244155087923615368236498185295671183570501975892867174529854987902751728203098296777459415200707007682878811693681529637113026116489441376362196829894979531110370225475916105411734823448544643177895399083606141749416712483923282405835927904195714197776916611817342882038290191153479767011148940393312310830427629163114747813639253632649762458651064607013701479431665379923234726706257690346617424773534200491567617331018449143645777708759645174453230902796605779325192567850599636099424406289867170853133403893577540657357630898460338650229398822575034624729548615818768850122456740981075298655465322087287082730581092371999665013110117326226282949719802623116960686681767287490934727836431566848021876643534123762949669149592846542951778551364271140618142326597162295210350100876888007282972668220701812992255322908457183715930824750849466210514768292101772166745449935348979535266217776723363846036576213087900309484184762478077026233338872096835063807400409832365293801910827865122290814259042202314722211326489337682684107386904194235371595931107094495010179044329047622543456653967909518707692782905079196621189633292002477142640012851074509204817959882725351792824818121840498354933958259238532095749649175970096706127888372083623731881312349707878558286115998321046948182954845755118738401789719247688897722159264619083619540890260836044312342783111739712186767852673332340946446844828314336017112716156624640132066627898887880877618260227221314174826672504039275533057228337585981037883358612210876882089803010580795527812255971448116930436240078727369985253113572452448264071400725843457900493040859192292052437007973812764962911856319599232983977699673597425382056399859187650198824578716185208845555589379513467501004004916116776364025683218148084886891187142162320555244392963627909239959167811297544134773775491207030028677311059623297077187561192737511414659117072704555613520865840303500313870419492834636010506789441667273217739575815332148197871754652567586012946821361499931274341507977312592662041442249258925917856221677982234087121487030677582757245576865296065464606745706872616837825223478252652998671750073458252274735428802287724845471776603359221670828780397875353163412532805156981752797454459395510619481506421254959773001775923265016170287747892419854785442134355415187142523122972228325541221964893705956532355292665026358837752100943882229318227310022911097405399945049716897991129964879194829095352661168772416781203202459155475123795921980130576369052068736060684124800705116315956939448184419596339108471977950719182194589368634204116322714990631299315843967894659830273358083376607904404448551460104543874931970586427758267632678094676447362779304708889609406655374045337097150438126150614118520967468540898164832491084982082581007538362662930224397426870887016212144513555111363470139687067391257706323986212841127643922407982636866119601034552992276177474570629187252287842975806899177241390236159501062320584875264300952867923473053921360422143039520144211463913019467909453220586902152145453154305491819753482387232065686993093638743544579744298820462176871850649054346797066784837103241637578201847492759521253519828607757564536569359877155187129473912615926588094088233226323713414217886248769183753779538600290046486637470010381026460163225112586623114523772126587059341298888640057081557067597861867354119149651961197635228343458867740158396816640556929109383325322207936624105992279532501585891289161514348003311129640380056664330068264959931015584421890525150920630904385714547089292167405263958333204450791519300578156764605824099526546138879731419518155814964531493456312184328616623764345095066335713542724024461905032536393658246162589166387759098727231945661038266091594646007399509255317390148903711414702488651160187533864304596583044774134739361196090804824117096137412960007221292815622721732583756316986205074289302297688630736278566715591721400639543261067649031478295023512844184191909566978218759113148634615796477621432710596920226450442436468970433566512472005927145311972584746700455485581069071136127606735299110967465192166453862437483179467059215007440186104077854039922911254437931419029520641885621904652541128702911760285446317370523966669664456296757714696415390044125801935666916116413358895795981525783352316486156423564721332325427652771853090439565433208511353636826040447380581544889616213928191340935314111504441742581871190141556559504842823155884631360335398735167920537821949930436658793715403396103368173012441384144265899698041036935080171778961733557416633080119292289662270401910396767665741015641767055427192246080066064244678823513986306443701348859470833838114007838432190678936517986311022416190138620882699723836771981323349270644944415364213637909356625460744943826135418869355577856088621555891555023432673821417530035950706171340011877289053190649897481149822936460331320261112793847212221231517817461086998286265230386964293881522309463831606771480639924537618113177335881526348811140207845198426779447408409187723467292246199616421966033858009332380806972706058758299762464275514358566991032254796193542007435151975069619440147785348241463211665861176698860367369436385224521278567704186048104118256177487438423514209677796377827852308314296438869654102893839933174193890665338254283541523064535752648165059788836859253558964083269979872688771217725432953225711053922011161251196101208896504656616531832735139295916022136446834386056517614163640534454560038115384750153416671070669689568649247211707272325137708985740885011528920984779916908104015773497362036006318022796403109520694126442500483040982184845937469226224085441837732429747026800563512538642477072575803010182023127433770446973713183640376020259785698484747314562763642909732952182331967314454061605077551246919913997397933873208992441122300170755365093410164717665250896940919801433953780647795742676860983599014401914635596899176674745311343271196190724823303629165812091315310503545303638237207885456341865974055191221994650100541222962636059194570544914975966239792775276171951935988556658294631390985496396612924100249509061706008180576401670634657647574050855729512496441937122164003265409334751885553282552190468399099442486986641052770673463690079847181495311734044222143280117497643592358228641337001050279466910003664651334515030081393754834807048446793627691127014787027939809359643313810722019411275129764553467869268570857535264172486615812912014838549847081291630919310923997139679654297034139850805997824706344811402652868723017713036874414556640840098077259387928607121501856960633581458676867222125557653237374021357446402840788938665476528582708670799938227581772154772099880415233431798577979469156765950240981424604245433476515016927745998777268761978446593800546842572801567987256047585832123446943650414226599499509219101931452861234048141821364455479991030649813977030221195019301563457616433669944512739114577280990725931554125720738253449924813059024191670245015573317815682241365781218848206445965801687167505807764745644352299860570257351114340615953373751539112763572421236047509678998309932344242923855313551570025935074260355412861617523494295955110522248780447395352112535546130738069601307159106325970805520644051087615752806013317819992895859039630070666643155660249188675900232235449154820339227187061740027093809134852958569369530847633077663932210166932913526593397015029725841869263305943972458589441776521387156148562754593654493481076386315421415889439978238626972859246301357628318573196726774255472209737285752965307862719384090324406031198444257415157943002145816849982066808523911119861150995476174895684469962128911208726398043089923171576956894340411761875553296835270107186610325670792082821792027591002503914347572845178564275249480125123322081122734612681211376493249490858044862157126655576582090172761796444784914880651862917107808137846924319537861068508330655502867137240109765467234346956148154045880366890402701548917833790650440977535391510569716530687662582708190983345430605425053094831788279693036018921256025741143164151364611241243362096974974006333210752003031949476184140438412048391883607142913990360858224200975092690675062655577925524573014395655231090975698163974494589211314518979400268736017747607334292905675816430696496365764105968140858461200446425311824149248054915245314957490936547129699787872065377189746825735795601219625130398118167022726359979698360998716485059185779901104852220628778579754148067130024838271120208405052987417571411984853334050582596031101712367146138742907192545809723211077023371264473677369271174929881840845605511662971141119540212680112073465300201490124914650611576577452585632755257903428120000864319049161093633436878132506912954542434882963524088807596352207025770068199415464688067168601482537600508673167356420755285121197114414299171940682346854153192612673184626507088038365963903066984238884147010092161890101098198069211597830647773053671471811145211230050710247196691685181144836434769872052775574387001025036072878455752379388006705013267768360030179919519662438353381441542057986905784649601909802647682327190436797396135325118089903020636092777013613995110923994877989795209468778043209895192229589048600182035310737107030224050496705994063373207110712249509391815552232670700228309527373959642350972254750436324046274935916672364755140006679590219727613725888399423239742370109620483919098540330650485317212530957661610407111484475436156600579332093156691145205733599945307144385014150600266564962426129927510087820574150036743030100923864099192634707941336366468259773096544809587959609876735557845062312567258179172591916114359973812014993887980949059268226024530846959169903918527966510995446686146200097486122172819327873667964940188675162251460448607216538588861290286050892593203891775248150825042512145100878687841312097905394544075811838783051148087783176394566632132703062696786351902301313791581826185116385133094492634643547451821999254745565290401547566442260027918962696516413899981532321677551531024795783237276443039272277589102054197167466172670670463170337538377381509759849796634827496608911376601704454701396770545946527134087778265621680330110953393753285599839675158774890819980688356020097138978350270979810904552420279882154348232689954890529849233958480992207926661901396155864589762852666076163426957325385577686779409079035311837462891372025531724225836885394318922934344757797669806318505074991130927370883643626654934207677754122571452300351419846112693420109624977480018989030592701364774110306486603184178049600401941599124568716401232333877516500337856980538693262281842003262787974239588564450781766631950559808278022317533742117007190299146684150487436890574268875697038547189133332837605412747641069078931811909855339565791138950575730540622381347335376739880596206561523321882713802088891732026390147830422705516366619125840244183557840130421010329943891454978849847392077881351123914823418739550401523208752333011046226518855859468358721837064093274273654174816164369206334104940181317022469113800139495900214149075483854508086578896067433648322348155914259003692434601095353179789760757399833634240919360889812194606464201119704862858712394244322360443242242561778003258284773467806516591021080828014927249867988101340094297480593071153196620387596877925822008160458657655495301344046167333598630541375207027260406862606477329865288630403124175215835003200474038806111733548224219546025767449144145260670775476029634136774484773161923740303078154222712075826143230501591633480184335613046731855778871176725718594056621614826189908369922216154658666965775030342342621827056977319545093546132688587595148997323185313929869485978177381318064531403039907072380916173773911687946828289301930456041715636095845254200591045887089823954475414717940381024529513662172879297830361063508347258449426114493788576137548444699893651631470694478884791683393601698533296647445953039107812765850990777780554603717765116964318998010620087437257125421828564656681956995924646070075056275498967196690039166307006121479739303704076484370234460375863145153457374061693262529710377601270645564254894164225231021347176267213981853355104127548653401699730213151955236438036314503435521311177119504782815092012548439855253066479008367171918653671779977061557510647502985634116901687716802300009190777383243701274778408229332979003019716622818746729813866094373243017156400497299418531426909953982960860424611914647493809408778772300034493760066797489780558582834619069592818346531823722920831185130627120359896349151388184826954277558859119418051911355836604835434805218361650369850573264203830995085455684780240620541105511616422335146827665284008779054100089075259958075789852602356501365070683629108038189652288201809723857266578454787702581281821839212825985552795870713240477836538063482532737171838655117481227741097901483306049577606145866821479193909973075761603898857671055025661648995360675699331838518040833081639547248801433773962493755276144067090616936681909357652856621053778039307686541705216110395155476228359939944556374766068424899806518549085870710668346691152626696531949873823416142149521453258573377516228530167534936346455478714038938204652462389265789411206607039377836547824490162333564379625023479591136175492518909916543487751048108559743734122188988495117566891628112047669613037896755238182887083908870923611716340705656055971810576870384208695870263714821883629543638135663223748894148831446570956642384403865147026824384983053303150404500802549035919411012311665826209960517509991689440793909123589162720960720645252815714375165863890509971753700330027948994726899893514263803081641696123216945229062993731653222598591150133776968707137050925558041893264019938732431987351256374149311161797469824042617563299019419340004771309218117741981089646068401869469353886499966772686602883159043638576472763627419116747843819641045408052762670769274402462023182680951203758052508443551219259055502056420975376961634345327816990372977640135345733285520510372682557257158504394475877515845505715755123320994685037689497138007244382157381362238332527278469697084668664497569133803043308440505752714174974329554471072126600466946856043017237287836141000014680997054298810221383552095847800270184106963972487600018608560477854680479577988951667593348382214009708585558137251928866995773290068630729013134473726401857740244815784605876499956517164113943249607636573690932509326918680560168241881414956144671356588537666828905138662832578249704835612702910114154013867366178301457083866384188696391346306944026197754799438621932633965884463679854503918315494942578123453164189012406839448797641468327564721886329997893786566031000838260572466502095774146803975346157312579768089008356456127433979381194365520336641663848846566911019929914388895320882784350524649774273601828028220222914931989387458150501969444224973477428488329030630599521028741521724299600772199340454826832735761188914585703642115038348660062469109298431699992754605616433076260405333927129527089261054247393616869128180122757296437058670987904792479881962803653566940641238005993954894691745517193823875464390043939441068493126670053767195613752428230288311018919697523505023734208899564052221649995747065189633220697043420716146874863626467683559506429303249666305805890831553358369097300081815766982906920290931503053146445470056144395685199389251106604078604192132341046182480914916668141781293184670717401347326217906032871342105325455214986367457525559550975338323775094615294230381508302051483524151387429435378066176222780512216134971847525946629405868156364151988041798347295193026628615532630203760796997552786435418661547991436855754784386633395155551132587578917250703033034428813113916544298117305698376986302684645756569326483083579450949660309965071998600649540403197728638448234842662249290119478837185851576889398001102306484670344642701355684900996809048361601915728637769283963846240714682431054202926805747486207196198165705569164058441207750175858974325842378744341079505053874620102640475497490982882600940921904762860171914748500001573355201657597013722197075449985381458080277915485035041385859637804396351115410985714026174096067515758326068546393093512766132556548822499880576185852803497280758403285828377357595097781301124127854893021612550329712603499040229849582172048497875104833117595835598233457677301034926886519592054586696524047076857815962968168681628470048445636236634666132715587817931378695959770429075234441198311992257721862250972076003645965263880026574049170499945606879910942845788200138364411075371854846559357387447468254523074035536019680058146423674966028881880178002387339909733360043879669064572977207697133922087031784765478865726953387077882700315803445285423995437174191572971725231225941714414860731301736507980996490393815339483761340487697399371266065196010462104176525207324486541038781915221901302176169215786913306998280579417250164179497690424748730663697281772468104679929141372048521475930797818105874198447290077083733187648939207939253811098407097215636672344187013927067303040047017917012187089928787794835078248799363676485663029060457356365893802415456717043111450207978656106421390026038789758605337807736471649256208686935937342297499479705859521952751373161755991738912879592014767522669829976544161290572423022173317780090663114506494578042249851919072238226075290733269191870644419394110719378142456167105778395228765871748534139400130769285659047021170670378753486084098194041695597697875143984753318805082885914168276161351101882093001839654863667599042672672551949165280131926050435092156990487815687759849009168005644780804266836962252720519582476128298135481205482988099582837641638962657729753755600558790845010689121380424888818779577333716984390070092194439637526776057939948713753881259317763928161859844288375550196959095776247349864423095953924857965439640321779056612486312557588113235008220502010927931438245503182919474240952273129828302153697541125469764969417916166194643467637310210500633535405913701069499834990602128336117114878535487324413449032349371823699607523899904003795865407461759225853755631829103137371924570372582980048858697377817269482273692840767693962008154311219607024343842664266731494348523950377912645421023793795098252991622594779667683187115757882093725797500499331876941331290345399542426164696699029316864294446457061770405238519265190784882499595778622155838557444200294233125285854289892125423838119332863020192351622088444443898584103026751997337253198786627865693751988585909885631491832535893703117555932837102741029713975753088899689607401117917631937933386897915015738936529312417346451213758764169397658823576816584954655259835538577233626420831074809653270894860973131922007009637239073032415756505114781359571067671148336036474591151099507335556597085836836134843157611376817841021370026041306700141381226216570564149761663896174245939779665989776928147703481386417117452907480238600211322319208671279954194166519095926267151016106767879038931647582484136051095014949368860073527495920050701543763582802262158119121927588529751799690784207950044322982424811051722159377591979953469333521540920214985774348073890604696959241232968158206553090899926159509224565316243936769926628195393879937184141598430953327777528243725361621453092370015358717120646105644309393764743245802819968059605108764629591805207895354792496780535062721371031179367702076234885786489932575181972005218046564921551203808336344143297333278660895962963340790046762680103290365958213588936158110569608219532465156760921560534474115026166153924616995043511143705064297233651301973149851238909188030824592333146054617517101090161718917835973103164536583895078199561844774809952821165117522498488017510924266374388157889717270994031270807623019974747745468452046722197865936755087290722834088849744191921964690224960365349266292184717913365287776547233539580619294330322327898626283966807148550963850560991184299596625161976575312412073979808024179620313852196793845900316113490814102889544825136774337495352468679940240412440005973322047750272896162779259780197403117686622815551682020796768965554258407800159908301482530006992442552371058864978871542093999860758979210719529162244605083837346505159351052131908865178965336952510993344856487922868403740235795458490914170482572483896915006098614690813544320075063550746439672029274333932820566105035748881503331239791574181942802648655709147204289235276212480845188954025355551024226926533756755006613013667474440992692153454725284985766682269170200057559366159659105752792316962491802213779062356509100043091880793933612474058738541243241251179525861010231202711371066578711458192516833894050951476635559565946467255826750938854347023628382618772738725635354802810705252161483199963951123612547649189565729626375612582477246225164856441124759994992520613047868974436038549502403078074435622939312062470440094418175678568279359243906443231086494822881370175407082409440928397383767016547507206042891846161579503064971183716204148661043489557722318325039219174468671205707347619426594783254220313817381575154049444632053102375165822991079476745380090837325258901227462555489820803829580899463617617710996548738437578389684724686381477827482887758973377632082510498946431801093805354442727631673511273000385909590966503995888722385962154800452749116521125142984890557375960747069109698100958569438412688101830959948957886170969144397291115659442366945173849785046216818023150388990211725641582826402766150386934100762864614629773984974323880378116846397262624779384388834091933986812892476688640730866822486941840856947114653716573731755382256475390682732039010450516843073809493920149014834183453941666950936750390184065367813041108616018906478915948997151304449678621082176337308378079793027078251079433329572023113393796538402251843512201401057414852435908258954252088447556064074056397263047831560865912698370546116207296318011439720493948773228628904665301459499081287606064087069146827619395074901211564997556524216621788796485972140932249729946465008043101604009938134699113480528544756522260914660407881290112945373454261156712212663377216370839357235931601839964802590410692113230694293946164679969528932052696591893972597843267650283444470814259160296148809357303027558751767613242921525269142596140741917545540285072983062659591406042840210140488328202305323955218433938204689214621099965991007914394124292833157729960514709566803660410779386804555878166790341259585815733828020701666597713848029961252289337712272424534615507404500294724475042685445946542984594372134982532342314296352575362394976946490084072897665882464744577457830415868825722150388924036982014716199210947231167841326650778268229212674993267168719596851257175948949188092398424417280334549642512899563807138571134026683258977770482164384378500775953470835022669196357369505991406824905666055151529652871997807408320103030299726450498458516454164977897233865179653784992830989588735981602010259327678668046742992947401325116549295682562508172613029519145369101658644859290112616514838072275443164326218637359778758048506721179845635996171300960460676434364936057172635491241057873227991819824699448855584957804927973193269323841864084871051280549138801483693675784602230443439490576132846240022686524822803754096641659142178775740173833340910556546881950112164600852647044482937544122053177825358789221555253871454620953977334407235088443170286741759812627197735321896031944082166819704442421560952274374035547095860474224861462879201464592527064021960629141004134776950548080752372231016054978976018210070469252470758655690177821643467457066029903404556148509943285603521824981153820749267840477503278966249005865264445380048516842403122384116008499350375144315312975746100910817196772296535187761814605852371546897021771911306442617309637832903823892590501423408569775507411445607222083909357777282760699420983270653832172156869738015320905033937089927602692076992007612340858788333329488043251522897383050239801845703544784522367728601809008977526390416603837332446196659496382244349943109195695291236724182395121566277038864515156948994625128535926381084442448510741911720349442063556153606307075164196017762956063337299824793089209455056708238662038048646620045746362656506171980847424398354468282735500529900540538087080941904765567943741126579242390217190783986654694988361279309592675153510911820934854316304493395515831004668471227533379358398043685951001592489652842549705676095136858776285710036178521264540639050092418916139602133091020334223616865033520264937675795902361387398484113666139728257998247310520298475235020863855018776961186881894024648568268137477404529439926489241013377034910328663289980484550949257701332593890981572253612279890453665222870882276354218741189503693480796879435599610198159850417010200561557695743983530870379159389856762204338303367547589545510923166164332403417217901063154206037961127189704444455453976550638940997460081763753639654048696672617195833087655996994847778426871456052870326384701175313353084545038861746483403613673778624297251254219417435211554888291011773356336328776125232031162901669405900633495934827314382403155095984695742063583225265930427092738707520666678307904053025915206494018499527011807827250670146555319944802865671863193047022736053813856338924630940371402807147802311049754697525989166352934873264297248412713314441366983838215554596372420081663456801794026418534166814069588720635922888923337475091369810896850349548687282888739363758858943279716914801287658869965278873848996351235208697406770520826939233605911197579901528925816745178948098047602068436108100300916961131614857652723759141533668097095139019196143570114649202271074579074181414977162316161737122539152145333274764758153208072098887286501002035208142826290765146910465239462002897120392686663611029142168797776313875355470533289937094078189229570610590395368755808865373419448778945769533404395563130165569363630176204548352773981615842920640868221034729936952044292101060087032914530434732540064811771198379590169719937327674483196489268024935907754411643538952526763352431510332128216725778193444914544203456334161248665097079696002927344410824190216298430847194304569707278328823513719088355041852314358693101064980684795869501969472072583784202622565680425187277310932029619764203440258585228825233703618783284867052456814121414230178757846697825242225765455625918764777035547924758750902106834080776146721483433347100043878265000815801178009639222046924427035213818914103296398815806898430101975760393485287547608770150981913560276779495434190523879724171566131829138218866282220329899868268707789366648909254474760544702681806891577320859722574998166116001621431520793512623027549798106893265449008872190791765637378385693997201023666357027803090264061183365634946304002881059002760641288148670624658782591647644887532915364804026458462989050865099713313070075207493966433937859174733954376221876456088101726472223572224547269465833452973157124018637556214337087518737250445249855988518731472554765797927716870397636729278329235808971266143157807559344906234994545243895841234453229594889245987794990915799174357786976658573290783798284573466819356056958971458059734454931061728225067417902597175723908903001748717132679994835682053054756096213257968254557279629429493760283286617171831454990278463964827631692576724780735469352176101858072773816666984137824165855439020449664638927179645922391066658931421083926107008632489215902983683020826589838142377605192043526794526208366011418494063096370457566905910987148817161543795228583215098518789395121122324345946726782481969535350079209070576113988565515256548339858065367927976262681915156831272249076210316878009961492963525785629771725491881896109042094659012577126558025623872983371567387867301955426687211197605446284490747030399949267083151129155371210842384815493180338563796084833253001177675736577728229394574833311614114968347835779202881556881150872798471685523581296984957994803143451420735517645739929884502121393711260806572160810635585012281686081898374259539691655089532436660239347913011021055052458671612451582654584033645166728396260916666200648387640004840281001145557440837341725340852861148475890329064425365179475862481905252213303086033800300542511861211130762186208028704769641131853640033349121564158112422600072686792282821319293035773370124965836908378534420419378418221039132099753755298687511252016148722396506176316914728154928002125110973889264903280523443339243857869000718493018068310721655300376113644838698796469558686946184921372409347700937798596456918014474938493099947620395241344800823368591986741233368331069669962930693863053105474147462830244145178461689325941766576909982553900164590047618235774150841399212487907752095873252424153782246900966277197411169832382360873180676419084335063903985145791057935149301940501118223930282542295283336176916038513310927046827823542646464073841520830668547341822514011759752586612143798572479809708913245722162081485862442495619344790271045696168573900598028687712961263558658662644540050874519052786172019541501017876380992618525912944710854346237520875742474073909390692541214231537006481609696940861711021142884406891915932793690192311780372311246419670005035349856191467383816530267919498405547775195374168803763297904073585420720045760472616927961023446134394712390301663045225154548214825253484499177244351782615491798920437166161190549564113471778107132837609694640089284335121983015449901628563384964894845282093460028104566547095053733621124591352023839129987511496769144715883990833220986865268433026514015129560497728713072385931533855650108149185564895187679967894754699738730812955001998678107961273947518633993355085689071136176892395678528172884277736096348131427461177691961291870695651990556444064010432336882659839875960320786540319261575068386986984783069870335338487186718492075897299088767142824375516880472887250195274423187500197085373215487485097427108723080735744805541618520866627068509351580627502775466034764199880443948070386887155443882650678961590461910317944260093788570746039606708638798061978461367778160992339161279760343841955721025556958922742752579924788752545698264613611832009448045011613156791361078951746804421611272419871614399915552648737663734673082148360765842592680681825700597553686078115722782596502340954331441571527160807412013092524557584428640927495981851948851740314363694851876858021053775321890580621759640874591839690218453094844195683234375344416527877121768679643007696481311918152481764584713847039075658815951211326356081295915397791127240067273940523189134338529959075115211927365476864944015709929846208420770475792379208215458516288413271546509873810871229706310968627580114216511174457632540683895643071340074425180118149926943244352599226405529969671215044653633335753847708818891595268394486564363458422493695979372772480757436222043975601909898454429812628922552835135670634215804130418124940573172805984425618519118640228533159681147835453433900936131476579443174748952909702511161626752092061939913639118385994908832846841993190757154752238183062622745285300435235202453346746497779561134774786850539278324002685176852406022857142838525279479255521373806407497992242120178791621309573792969018244776117991665012711434074924020524313501904203711700329362733648508359932336844652974688182923164958668699085203768493827472162500060146763779439019779529672067363526601214170501473073226991742254478690965899943060289649759220732337099652214158868466334628602605916801614173230144984176545319977183630397029312884602535640805538821330266455816634343714374083136950050714666204419754412138962660270428765013361139591417669494061271670779244403334462733286393485825872183163337235464145780699740192115104445813132166200129276887042034444004937326971673566359162026487572889178918957135616498321939787607854695813953252776434165627374407145693066399270142613099244864319478190957754144709564392429898945635900241144698163112628157487655404111772104162718838148464435547981187573296843126405074185993940008789749342775987329511826324430209175212655590715106293492577091419341063422866931119559872790341622919757031836329966342769617054100728950056691988241845519027294185805274760532508085669661943371928799849965110574831752118873408229044882515810020331564190772123351585689415073845323250690065153024717126709109444397914475040906669137657266229318373342971161531101531921053501500133508398252093157312641875064716828135664972931774287106521403444824375097977234787123274817655502795550203818104976249259987557197425007519175700118690673917269928833190627301668977350312108575939666265717941137960240860174633719804652354471325563230560626131151734420887524932591228890381311488866879528111466366784806412412659857074346004933062338621643807529633663366418126665794019255947496388508165372801604307478678119684067705563121180394946119178470053209447220714380121112966062121800530336485900023262277507002129487906685667918802780934109763825389199011438070879971414553138779828666869478116622985553878687492740414422985704110783300130976707258337034256771215154315199999341289075843894168364567770703704205097469214310470732388605238652320709623163608015915681601654238186048623717441542278701085256487361608970979450126078725000157007166929272095688464431369453067429611181006029735514724760653766023297854284542913188406072267833061873787107592719130469920093546406137049612110026008362319067311637248014170106486830750548766867080719731849743728208396417703036541224007075415451683456223873709033438181860157060227778541146516638712218732535940687380613484974382301429947633733550453912857148432003716034848898553008370998049351854680382066324256475789438500836611458088693813134749476990093736153253041510636932540060520368608134552542096232991962663226183977336668161527074733800611514264323492121976671114329122043928822442513427102955878589339353511301946794523187583288789887478985659789579983520035181917797594260740156851328246650483995779395710527137265675050299720857648428334976828870720348607050476282937796642175547638012425463356522861232285252201369515762359219707182079473848618824785517057493104224812089141861012716761361295747529822023664347276261547175997382558671458357944238522384015976544800033267337077220549535582475373678273528522289138551788704886350694233121373361142164441302638344339675033637773446327456307589012850968015214755070654165344842951794543435257986658289013854674677286130994345980217817831383330150477236913459748697475765843554230480767297772165300062354097756515758900715739183566171888427949416551982342542906276386367509297998135585213613664066733178778047681770768673915785601683765652797362705943187406566385893310173894681373739076272056508572714622637264791561788961380136351793857840952810243252160850030191599055011885144576346346885473534172317170310266233979732095974503126545726767932151534208549013853063481176200557389237318762880878515171204381313194529310081794840103231957016344772834845879405626470320608045302465138239761509464407885497672566429763516286105735068897444818679482810501905775501240816853524156750515673504766760398866000319475435007121117926296918066210755894875286438028732319619599207473027321418058210365891666587220190787773853964719256715510392376872695299752986488831883018259297149866128565088104708884721057231791838407875777782551434314046987838089698171695225663682659186905867896743027093425800442143949740126754876816659170345604955229544288745799047872899941741819663400530972216935736634562438942211544635261842195279210719225185317484515649442337230426768726116554678586540844115457973763725479595804762474676085907058781391103029725153054581115123415223450124077988626646854153123540024045662077214446074257673723080643517758672291528808498140812410858531784695294726401436440026084776959489794981464377979343081958248387510063731541502588602606158631203416707109102348842199534226325740363125726833897358059670679808637685639327795859927336987155402460801181601135413039175309416945556235781455642765510616951473915904423914363449558601279681305051994080476314317016960586794301455281264568459872631579809278167481143092695580251575628529880625565212795633348659167177693491303072976279511718463953685506012652010513908191277246586228815891089971828604221291153334413439702610828551406530728303543789935116490460123068547884235893664937936321326862235825008719279711987292286430031369423884351065018486246887432073402028066085765876791430017826759132324377018977869232560793727317617279852604557753020655916357577040487032217168965227202507770057124096733704861260658598320793852933657829232077503816558279218301970785533507015316531740906724000672109034052014069714592981146708325240804709212377717065445873704765027581672623267557568519406380604898795831109051858699190735458947897611951693392336015207967943999085620465662385234315301737333519323041258765272077628074687057633557818145928934022798096248383511042888792206927186788275757261797009844801830533609490048119907067535827891166362778477556024441834898636447588757711728727047821886353037864786719374139079674220072521195615710351561599293855959651191904742292584354125296156736527932097592713801969381736328192470337365730157829044351147624911861816771099837381196892885126871839223717219257835550356621856168479730195955495044916560680690129554996206446510989027538199654719171690504742349112210740127632173836106235267301136506112105034476540771906787580711790805442636746508342292868763465416230479640547052928731607180721254557766153149047974013438696713721408598807138216186793812138013038710115445605610789199947789979779009800535305923399592009101835188493945609506302660222282476050349895854996131728525797162818940139966179120674882726914005834853657186491305432040558012636236422263631218825860196181204423872244478858339094378216438151322529392012539510874277271778057016693629125270865828995936684058868231162626629451782248181989619607592534569167404891606967282714884673753708974180260257418726732401834031365155767760664853859948931844909619966768045621281752205953127252418890312809529448479091948404258069835920602969127562845698734618638143697696263175803186435570382939128214408011328884414193039978552581294261509285251339845529532807755241017620130823299892896756569619245034958841488625410677465030387252963850142902898617451873623961297014536324963712926696128776019285180658905846626892126008020079321949554852911065071033773075883605139152276879095700094606080579960149519699127218213188328032210962494078718771042944117565064173967695118837689769944216720284565554360757420149817300613522094019820917776682384792869507190059610077888791663022606294537463003736393921807229558609025022592711694347969544130449572341480015967736319934769937603289695380371542431715499693278763884291809406799898161451197591033998686982029533868707040880055477373211200619468848143294573017434800822241035503581641569509317851178471095628199592133138113766229723311630617335174168215276397341991880744442621326462734659116743973613611103003633539740867441822711271015057508541185525333772904661375980777545295216677119645739472970188436068629493394369808845624416921342663560359629110111588511405108536682335587761895391037996253256215650306997229768284781563741991575941458717057405965495536803003725076460258298627553461891575054479442989962709198191874909964913856195576406978188799610471289005431068641290182661369397672229546775677035985629485521347559849841956512897370678907336522962123011071608358154390184290876166644959198200709621041656082790505968575714432618170539142693234004051565798350996004675262835182079532841297637466652698734802378635737902336081924858887039468281413844040338020342598297493700885419658585063869140516047040484352123447614994196989154580385851216196255154209523545286591280360210426692195898727458372201122518547135091767986559442435423366633218523747338696833732859189356736993069952771829641604904936206582379620886967670663772813541270284940021993294442900675691092971844307260989786295566782043711821624912097967943837515166221626277810703904575059385557956345468363860843847082830260969012412749430651236274913057417349768551818858419867830142546386898487351432611457158907959342694978538898660865364999128971859304157907753196387593106827122917188433767021429217157787461276061230897422289680166560032388117454285933034944755259543090569812072697763407172210033885150586026972472873959806656669251457412156945256585554573654012874348024851248197558768469275482582206095240187034864122813098635299442885660836032629710920295828432867637281373500666344992996449392187653605874959279814213024507097129369994170453935879499258903362764957200884969930572697479308433877715797471746353379251742232759280584464832567815991056283795127712371562699669717064936375751310053050845906608790623439244786882192625139272690994989525662243492907736036022942548070937320783298442649656424703456094086127895379534158457820833348017688024392426956570421064065363830955957132220281783992952848482802147328227990785151774856638794710440389213390807654870650138221719228043599526433120061919552134189537256673243587158614450113379187789246959908404864512902861805383483592196355304010821925938525740432394678976208930861246084103821509144465171524401528111367791587591424847385164723636789858414075100286636923083279094431141927466876086203679083494196062549539353332134113244525571783951853249462477675675696293135363234244748733527001409247497426049983757352020064492589582437411066499381754548628025419769430215709880958496458849987028648474612618132420349170708615573912360093831382697362737010848099885257770123315149818502629750428587847287920222703792096330680734939894529648226505780096964532273480395774259600831895820478501501992662346579293672015682613027172328542312914049007071445592450274330065320710420337747420293551293532714720004421861370262576010449697132539174041804799279560665934772935910897884241894575952226427952772890645181380197814006666104184495464093376078248611123063318563677108817757380365469094048444647695542490370290442189652068917655452359682760813809584342561539488465183782711222025481809110934487769009118043077170201324677620658549232996056132850209123710974325946801634371992751132037908914192950005394049479005666463652803010351483435855091866052339833320477939918134418805232072137757904632791663135271651104686112507216852255814873224759258786049851076855543378537975686345030473257468332191321312215249949414019369832517332621295351463879974893083179071809853952568720392693345277549237978967784265420875176841953198005358602415402039644722921392439323962723952836285853656984697395094292560720028410643906424396614839732490084926585662894908088476193675857498933652950197733509844597650565752595723172065981020627472170711504508893955095216993898712560437824451726818929504420433598051065956699256788252931262681975189496239951500816098175010182715478975995771226945729303214375028419313533623357174236458825604803817861018062112175987523699011553221549732839495365756157187008276220278536223764655541427694094377366144449228126644567719159019102187100206812471546055638972506738814014084617728764467548665534435694435188590288435910433898004138713645683958542452624164746170312837974574669724577005795492010975067104935663213099499364504911739711358297027475018559009247992684986501459106240714430731868933925341849705889745771119259274829311755079174368376798629615342892408104646046567086481807016905730141083587698293047759339188071674211186507647981976509615666503189288011818805068254080566950630089154284978009614632117509622120510607517922719855721906315337485724264753032909789987166801337030853558472298330233566201391608053756580055097261863405265805619504125659610941502840128034211714440542439453003479679489277236741884785575780246238874949428255747653084149194826054766901397399190231201476481307175129228824154849398330157194097106903758956342307182780737796330604849890396337858752036672478992543109031380074086287759234791448847832994317809942963917358132822590229244240944445607410105648921580851226429174757892859302951983299059003179259354789710206045331882797037084715073849007087234482750955941194243846741325597673191809679139481848878600548817762570996996428640249260602412519630300869963291847570113247235016191702901363561720063632361301879980681354913844361849283370890423151400450549834140731441457527598040914007928273833479039630527084758899465831596647797927003583199737982196600622432718918060881788915375349354397513455612479108349541338864053633562585901643280809077782668336775250766994994770801314131275105531053059718280066960809378501460603687247755319425988305188189748556722894262801726598152417630548001534758826423375289864708582149293492598511373507104613095722566199251448108293620573029365819683455161995801261011932075723211634050069630632242003345217263786658982460414323160445678390737243559773697054966169064526933810695186033274133577070201008838887934083387438420557680940331186897431999954035954231143276289761467851428622622875406623338331752331821894575910998377777312598141553312057968603524442793462002142802906832432809554794338262745947212177188196067409966341841921421270399907490867187889323798356139877496264578130833735679429114860173234718204266926271378131266860154982533826490872669248809150964940900545486516285369898930809029307183104581374645113896792018901778262429641677571287822477236441085976136476557594090701944091927580594389254531757066833821314870415132473451862079105595308673501632914844294571766642049064272198396520952362788833443535148472895368797099430637082998510509843136409733887793023126809891682469011345992800163389559282109679237873840775305102962118823346290523772510885933948658705679600102650745878640744616128137909272971316084328002025264771993402542090345653190000520694432643277183480621170937213268078033269635806764829970646691450184330518389782753176199473072562881450986080196847137648628585313686689974642048247228114690051996015452634021929768796569911890714786731547187318505734756439714761057802070839108327931464007743645301343042530607942876491499257417431416657484498927490723928817378594797757547847315486722883636555806946754375504040021648351749415270558388401948349298095157584532772234169153108681121180739038031535652665741397709304110600046527928444584993712140931906710391621075149040947781224390465502603416549339395899591456773077877780568519912915391332117054951523014004975418234008857853694492064089974216096547018747236964322678295707836605376897036270206063750449318536215424023548992929923467322958979211569509684981946066109905008152513994778900979560429135086343556542229942368290400017576603792031344170654286779180001073012716221614896434197293828831740288663547712026565826272587798677051836315691604941160292096459296998272262153349632868599069759827068980192167718535001533350224630041594849817073635452513144244977705179250089209815312829459359787653655872820885169953308608049195943136424470540786985609508413540668948619730642633287899179913547066312641120369476179793969163582601449860928514413654456147437833804621065690759521495863205345878805355603494566536642051541679495272879100645430324167635278096770912054397157826345047323576192112429440457578695671740350041285877019791842493104943043974990426543642634642720696662577984211749230279077819705131049510973604206738415043163412328274109319298922191068363845400198903373776411040341913625477732517910853605389276116978245217294340817530647125013823847679220551404751195531542919409545491002211229354317904300387843959670644405615392245086158259889398546965955486330564080682322472342028168320541070328000132958103354245688171471047418351775708799846737341572452986319287206100619565363823756892245394030725893917616784914013012479825423692647879884864335557715420258310951784958970698266349164630652297615063864589056193757330303386948095631622228915404475244286694047827163310194169973976029517477400563091835002242966727259017681348432762847070514441215355072021181942631769505428394704195143009428410323968546684604332500213153744324827214823550098482021600301845743138811478114593374386142195979927129689330987354059051590296042707788045765915558748629932828283315311096411509840185539846807404280837759833749141315639713332801280912025022357550831145231762225410193097381991921315373261833504692658195099240717522614193455335585136331747688882066635683169386188875533526838046628004918380150215219959637094653034655698184440452890846102423084319018300056630411592314569661764566772354416364091157202876227530193833849832546939205623942590240162240913488923061244570506971347431168106193746092933765145148966378168576010400227467210284907321898572231287418007138322764507136171203554399482799442020915350949379827267718078529045616282722568222818491060598260869919688984396738050597524097993166862731975289417891165712849961228349647697039228522672251581728047391166473728824363307009780599266160582016460569393369815364471319218896125852612728736171332084871696121072200894290545952870166537345022326303134842876861460907595593825164983589840476274836089548743684310587561991139173637591349558244215076159868831769208637841307251032971354447652054879547695000498772700557577416278856209728570818441213161769453763005325215443466771875891603055508173753259098827750920786610056915758439476553208409446241709092053497146751291520531125869154760629371756025082379892864332180856429500141711941013274875071979083544828157395107017689817136448677498132596447928764911781072302046417492189060055515892574172783795447890447472980919110230151739407129265376433186851392707305915153331081146742566586194591656351184772079235260204744688898275098552871051549312279837016606598850396204891429162985903551973708833697990758577665535984955796478696472420501454878299278284798825185480389758864257495288209067863223070582522300259972324732615060071383978221366167205587037516352709114268626296508087917698912835190843445158069077796325632940088437425556277681367656695068495422459821252630009059844199003094352113467706941722840810307198907369967043259230108407846892150532204396513438515541509275121745934679319464886436576622878970037081241786808997895657817027660813299018075833680174297845203913072130375702227758321684389995471207804232289335331583588883908023755137448628417549624753772305720572686791170255315846939604912506622391910766091049212174313596568853386592126744791990216890072732830986933274566422940402807011561884539400886267983855576836578661659571721459651799657973694520646860746796882513591710926437994860941415373086207853936366748694614560038725643956941484685500967691613484117714911000698418336633515474193863472577207273937215805141841640631890326317416806212850207152178592629875493219888739197214615624495905151800772537831679333620212301331858221112412170719045418692279638049897849923648791697982875243151760460282571221981611877393658089002458078249309880930989961234431661846259921540446994335722283727376809660401547976253387531478494900091949371682220747133827990785339207155090444972064055489625670216013401855577759197636990254716849544642970717629739001945418665046755849007666532061848455543239029446380274686805206629406663279519535679486074812185105842661663786322673048697783601564093970371115877131959163245253902561515962792699431730833331444876586375673206475084353558831550687141510650355155585907153878907110995450621314653926296546212812583561332553556409027350527693901709483843216079816568975165075260424944647437416561438665342924040908243733795902084210541467906669496365936339930036958077129214872843542352612763987356464384210159188976123084856099117890210908796997854008841034892669263811898693964923200864352766290351442372725832766623550882281830564204904656470216695635742338353914778805701080400389923047482475424196813201527940619312224953285453478610324928537064229700835377789821463219726043150154946984529697471212584611115432455701945241347778549031760097686039793893634408353539515910457307005009458538006921714299396242366248903891777187022986816991212800949180156598251862963150443542595831468331208963101551644545319404627502516207363313445975147233678450096527673656827384499670557942105320983720748571741742471036805690703092950049376109517323827000803945727639927679171854757348985347490635855472803543066649826369058107547600070308170448624641866665870109158535237480024421978020979732307672475446559994204392204943156338240618638977606522960798620065631258046600756549789371373088424871891215291952196062467818632864431888758737167708263244326398699440893850600985560886848811403809837342362498600412340960352834074034288664944135741687233618183795962723953388478610615757686170534093695973613886062903156347101924909636662855973902711343398665395604637184955024031744932745418328852559332235159153616537845248251939201682414766575709658379219206995082078146095077246286672355092016057064445372902903456244425892537910418949444274885344582976542523276135136069843901414330097721405921234863229013219899872070845789163562094879394574416106090690596930626932554413230255977296387425087475364741141532759364049090132591005361257811696072417758279570227852591195807261041308552280644640602077748936161722469090064335039522624328518321530343446057857080353256867091771063640530812414189851480117731630657910787497948423189898069525682543814409118631720458930975023376017859436399991981259958330837313248770282908893563855046532153776116386800816212333193477819682634103899571817915806064116039811314503105425419344194253503325032344864350761120203015885897498463847576009410387488297272121881594822247607945697310111344922350598882561116439667472678087501423206118167876522749803870028844519757966360273596851374727813290075973009464776247109557102342503609155840581476402361968294876279559861964618924663604387430528336587781030343629155619321276028508180274536380798733633417524435178821700237706566913516962214805270668504562557894764884428906368277091978694374459422252137405718490819929843153585634946619784253784985968958606397994970984570821195848100032188169874088400738373916459286551078631004634439935100600828968504576383457546335845656629361521095475631465944064750136072893936802684260286063115382191503852739255131581415060160065961803499614874239321541649761704685742064461594086548900146200986110275039890681646251490855356838255938659161348044146317457251501505022449277032509618838172357459799539691400983905697915920112003393825683767466598185441535451444650955484006782753648951671014430497608522897280120249416462379775136333886328097561323547580531536037533519805569234149440338775130760214870966891403768950909339157861535654990164034485096188360921612685683540205657018328737147489722821955964953843049746359196805904130180788691576472992204260460649940751365823976325944518313555607445445710221500306794420316352456543341710601005583744843230238317980247104874633735154449104114999901961965807095985370587407219112927378526091510229127176477573703606879876681288514893557266436720766154043557399761366664963533706052461745792053109158807806133886282660506537824753996672585842889390215632120856563826142662779429821318273099015060041138864450737652284219395580478336676220826081030733425205764902432670239783108806748016647589372464538126142610628216127176172211722020926777937556838468927436536043588534772745512237271013996241809495458809170825476282917585335615802307912597122444446126708534192417375307265038435748827626569760926990237072303633537224164773649631427576577593496829884042302246287530540729726435365407723030498084648883145435471855808459724644086563157976591931991585309924278685893453783828391565037041931876580552838498669353987280808616801386730883750486888019313528707008899423614098808112891527713526130405218622199909236795283114291958638858514996862834143038742009208559743366205292407946269313312205600876413282837970839027255298388151837216127382466823891274478716134225298195138760912617827972903655115403987763862567759381977853710485755742858566108453855820100379846132567741433889654523983685548799204915103261806979176294304223783810911316439102092345585659486147498642891327512936497164037297294139638618000316608067146560983951257324559595040875497661829349078833471813653017346904859351465261169803785856467282788609403796437308769363313331435146871756086348240813904905638314780720017437806077080305543141581080089922030925875150312863829243224548113376416298924715307640159660760884295281307717895579253985593446322848391847278011070500296919923315535913470715149199305985904670844850469736379073251287244617551541008617655190895860089549664212957500735982197973361602638002078329067656510886147913337409901482593641205041763207341429999196885175199219987101057079843027189458007895320057719422545547656844040965497784265316868568092845929495504144130117735149394899217960532528466258084119891237349100277969274683640169836033696121022975011997207124098111610047050687738506446264414508230197462902723194014506117705804249045739259057190244661459749795209477494276405171746106591944084174483669604438683808987803059811010955415435523789913151791534865466853236135933446767450996699494067817404233471614596200553786868433562724575518471949652982637800614962511248162876216432874807209418320240443842186887175312736730925722820853580913832252743374560190900649575502957459679130842982141066176182312920881345344183673141665666289301054983622371298928096938808717486116241589019928169317039827091409772758831055437462648594875694100482746285957380810532965103687163997999338223859851279073327744973299935187905942822137765548256285413502730258320033799082980696567519927973566184461389612138874553112198339443012718838900442699341672393378965701457533978310266887559197798709457910323912658756441122223972332092818374087715341631055425940688091480274339793293181399699032476943560688299072248013040910405626354652441759270072350244005975047786479488260260203802740042538885971885738749582165268655997694760569715431948778884904823329668206039568812738789152296422138095701706408823212388244058231779581635865920726924327747184881610553773143989792820972665185636661531176008500195973880421997710988722434952843875074211755333239820249480811868670085356475597603348130683828437106579369272530479754281789800035896812747916651184785316951293600420977596838909162787893799171378788503536805686297618945280078888199309541606859910756133524660833415189521528553347130766237750478802890780820202054534522063199175611609971969435325888893449295133068257784235330932273870151213686461473128586314245554936043544813353078945550025084195590887778143368809367877854825991402670213168079615428387703740095308341874777755415598796805134517696925092951770462832876225152526078674385449474307928746882966892755539311543899966491114546908263761880174336064678621721760212539988281545458095962947136536885049107202010948635371881492436990868453238078442006625451290903299712569769746200023110146432087295855214778054861299043946030771819455270358769547097510438118566349290943401052029805743790179460704067159709638259062865845592173655762999302456218311371624474121833938234142756285109445483788854215591915672020560608267442064338379768670992500900925902212945964072875896575410516824613444876904669059454715970215441951017907236639377217358802220793065971703040951322008043965245284913520258664957926321112576649311352820296175168411493307237922677321713025620835750742274953597761180842332283465293541296283815718080271032360224710265201522627054616894201773407782129379613763550780802022068290179401794698851444691889046982702323015791885053986895459836162735665110167730286710086116565710280497130941630991851740429697588000897448662880193886163706246300074848463042438959414233283759818937023658111635430800971455864468525404292767350499865937008813452292806014762394388170312787139758679287198626907131451176253052909131562440967392805297804067091012295502986370721088570182481506610812899744022736423162964648218030367927877728675546293884468897290704891319776641945999804616821744898010331895842282417730436502683292085804933448064251797939175272818125138234487767864793953644588186871018570022119592023002027132496220297786015520645307764764575718150682472197569688179894829540131161782028117615662466406198111781553346807126759719989515266117055823521590153549633101202901556273390505072052961500422127343077553206881615140211654737472957915887501404199319673285645933810255368572940490630211801895716044708062038873372284842339881050459863018156151153638446373462416333052750815500206869020188689101335590350394427303770320071685824245555380270962401533708834889541854677228389499598871444487487797501055346472123181178358686762198000066044241672416110249195419480247363240665074613423265603107592448576420862167524583450802223169577274996630092173372053054303344861168102905998415583784456846876666158022113377691829422975973676363273512019657149034588947320774131504947470967056886393882433955415011842439636730747405643155197879210867226638774973140270251043980853649417101776270693354125837299040486629632761476537980028976404523372606337861666223554839765145460302787672534694623300652137828047810108972707228545584789506868558307090567782567609340833838681929810920415487783547908963047133508870748257973479538799231012244300986828007392127368862417932689587472695694437955406291661611351293952478543850256822765403433958234736503500392273754469967387959013963598105449512143812391019485837327716986339888196639243483638103192894285575792948815444751301172847507383757651186243479355569727193624648340528719526378365386412595520226178603547768253870178173904182003234750922011883276405665629792823774488372785671566892708888765038951521703455547951178998423123291600508531054989480877660925388811994550860640221239964994410015730886921236352300509961770165846950476100321848154780764697477389631816511149291924477594169093247152920762967451369954799993507339043990828043530083970894219390515379211693767868595246812002132645617049443314969901804282917618329042141611255927963182331173076495802159615519745211562427124189000102143867076302801574907654183839098914098333135366302551743246935280868612039527168604505862419679739361120367851929410802123228067641582237021722655324683286548063098766448961980895912932469570980675549592822606092154033597376410382227335431493767025761313098000041514461912872584907724185588697938952712142782647586092545019901882065197479405959520326874719603670757289784541530162449577350884469786505078303184140669402982091873674207251000124771189814822077823028928217449819396461476808101135605922332452388036452804039623797600773420328509038891752209888418627366480038552846558402693898144388520361431782594275329689134362980703019703347148943044095691483924308234068917169978434805036116052418629292041055173256887888219790068118360945785997907747705433250348696723265099777481682742970590593490707615958101399208129731539615573338992838409167805779657439981914355464843721296118916887175724542084998383704151435880421982499846139809566670814779364837591099930572140457006849606377448504413205998533591825054520387229991688217935795629137439644743940303805062338076639895074311677145946084409008903699562072534742260782096055904802217532779131864573835170021882424630165206504349598120196077335985394226203341847280159679566979636243313732352022529101202460120569375420426990571580550516864963368509702301288128387881441612226962388677483823632840160529729023937152709202307139003718304918454141780493269568676854798834806865340710273121148279147936112698523583470130720950591401740218883370294514629380018780194487269463308658309336250806596694575664421743477504250456871520407028724083560381665019495523554741026371833474393492645539749142184780605506153541540997878324837154295350892915577652416372786135656716762720521696273285541954184930259808551658524880237058049961257473818321339376242830531929210236318927619412695651503544795579702827593712251724471913670691868701250227543622300214922762194125674665332294094151548230141326619409450232888926703556020308904952381400543076135600677433513301501981613024671854834455775071192940286894395620971783748589050635907550286976462114959963019697548224518308571434170693589678965139716372030781525926521694416666083548892006716026096659120373753567859614525972261276258347363141941578317589003997756850378700156091732724420585645408646142021296490566031564149531806642741739839353531581584523690770858106843083647054032208161406767048527270761927036613827914450807054555742520431679735080977822998129785075458843250827469074347874850005065376407466581713056341668068636775980516596430427009678861028696405924220221756248168309114237625433701488121498868791934199282783319188591396885538981701956201169265679650866816790388007031349098410832766948826516851016050791505672451766543602246905426863106757650323921962533304236521714935830385825329549680445110507214962725563093516201847495279590080843800845257700780642799664974404912136839557719839582479476614995067968059311221425528186231007303924129993547642752072918156801691866121034384726187236819151911832158508948641637368224621444185098962478776166659121371048027227324296845692978684385530232455028539999869318277448072487797567070784424421697995047722833339604372773734024957119245114600898060060059828219982809126226852974881509255756113573520637709496893200450535415770941499032172269640181302116368280941420123971762925789341837376982408658022027046810663325012061133522451928150818085618835467495585360198729004588520597754384226720054481873614200508934192560612170356289051607053522231913151910180508937601430945236515608708553668769470587761496892267116636884953081141648401764691753407780890036776352340210181594051799246215062064862491819190160881949354996942039188373455998595380754812716616008706146236881455396679202992091946224794728219481693289103564756643120788851513624042572327625683185484585486266712100080748295763448145617133590191820654435646783673913278631741601379052943858032176085107531759678903823210681065008047170569050531694079822268856034319899834085476804183428441109975876803413695904944654245049550341463202439659216668437924604592920909663219233147520889950640072194591721698763239388824212882871293259698485923456505009277692969963122654464737852043758757330197953274286002488790745394221466897897955404770407406739952964421567778959237641390256917836144759425175679504883487680873708934402932573607306697971522221135740132048986315970210385771668553928788040867723012337171844729635606627498430395420616428327120857155674295465091554938054733339631675778303234757788934752224046213074900453174374549119244452590469635949458817968391649686828420559259338846514600096099635714931139672144921727245167711229400861987368224009223907178027631946410696700739883122348219210404912710194120502543528624562760898516176071782018129689378947058758057077494715924764785915936417798467757383657696185290507000052574173997349439313006283376205427611454039683576315977183207754101552377532789310057985993088905128883865396587838805212858331638861920840994618597278156666705819745479012311212573840459805897845722758330938654459627906827846842877703425462261833744225603060003826846362999427561829874064395058555088326393978859193265174169700579621630500037959227882499013564820926591721178353854352414048860632001113884155878154870077426288262555590183382240200758824380644331990312330973581960933811503302440180933347647626676488368916895956360445910752244263787054380204769741709135138310751069594272455842581920562752416215151066170805927734617438283860129524924580081842234718840052240061503700515544320670118085265550067696678024613855669363459734560589062668393468458028523507821220221238081479960909219349461124011623181193855990744416802320483832028857156394789762909707855353021551480005774056029444240203621219557867372256941803925555954044418643265885238804842779695324157571390464906113929014797276951765593630891228420639267344239774522961135118488627021560080497295034729921347263704429900289478256153001467339360398384068283757225177017151017154119375754757954725429451256809427051647623102192903460590530913072931178030705899345751976668430959521960288806794308263654896895723487928193777322626663181204360125360985358465847028642907048969939343774174973826057035480242656246689497842188932989874394628454130672453717234448811757579282893119150226466567432927944436721155226240581568505762887678791618602848034357473948607395192620992740806681182917397496376286182085704824632780781025377919057138592008033022547478640112185920820288227578078765026756898391022577923627784779918365870358905597330943098610296657364431235077021580617679743202221169624024737894529929745033571118777869579420418475834569016085805265523208386858604576897203417697808975082610615961159959785614318940971454088849810524983773660131127934838940434704762878120535079915702796848939893797756103802914776675041499002927998951267057143430399396049647796836915023879915481251851546309216978986073306876065323597279216032715973668814920780829205749122346448533185186158099771479298774313697434538855343880781062732178481350185423458725922347059850639256959487517392770689778230483453395751593417060950263983702134859038675621448126658157584647228575044092171148199260226934469543464237168669088300637532002504408147259604191615250082505994225198727410841665995750217569247240350573113313725661321739020646552629391937788894124231498068085480554507394517054414248404775688193019650985388768896732353480542985275054133124797460002651456764735872851665167191210893772963838401179049628191451668214091606437632387820745704846267825769910098961084989256491913974510274828375769396215336957584046887773548523130904526033527959699611832793278783346931100753236842747539781680050101915865859239646870272374569940424185378530409352590131208472417718860897803377852011358969632845087142609218409690497058178837041129860745432685306312954869964684238165799979852613775551979703425493228435605101168867230196726659219844616492395423526254782792771885146569500412937735921548934458469008872822434963983076612672993411745690584021493367458157452090423571977233219221859040434246069862184869151803163365134774706945115993372535649796874447628105013152589313189358038352816145196609302462217875379914962889392641277094341498312648071507770255901735359942753437554185231024033414565925345094317309436255124810588526421773085094137735175658932363003998544488296736522287506232855235842291314851141506236795504568817466301075817936685933122819266051755113880229345536742791575998911899219242071453345955008819223213550478601358568982166107778978657768487928577789680828443775257999786738816647484934850527808954819037307763332719895796741980120977979034557864619927655996717566671318981208454113490273867008567544137747119716848497997587057904562545864616266871820205719324926307132352756959232984723654881109186475796982564961457903710055633371846114923053658507906067158087418929717640831614853761237013566935499779760319244452014104505485388217850820494532403197899662802953315368021555919954073700362454127059709606476297130463058908320232646975544696131485940253472022111736734236121203321083739084622387764936242906484205479266250042576838205864797314050891190274911564926608088849361449312977708266434852694878741832945634465945831094669311545302434365078578647159673015121374679322736235086815032135128792119365883899027428065476772643608181683654818694788780831887735762649160561706658411074101903682401145274215440026607030975899441877405648382247002368710451403485518059401421535787190434296051408041694253926122493932241846059104668874188959925953675133125560732015354419599468498892271039034166027165256616515051563775877766444442125657170815191960098907260162309387912035062414337136067668434369476612032657149338986674842215755504700643801191409333219050855116718393911218483479780536866057481715869568916914427288162555776573412037184662009473238131828320079520342764828246083869993021754608703975128431618160949815636972171126013396288580694475350883050681222592500304567031318074974827224210987390624491124972628500364816144768271590066806268644384477143120844681528216365158815377595198487991773710498745100962047380895257668554484168461216814065305233409577948604125697944822738697251320904903767414192001674367628752824676315465151433311724933780059622635788689706963925914817071911029344961546217726320472223915437730351744580371782602759149774411078596756651597662420724841657787264015879678802952389468818974859737888587915357229325993046790129554210112001205583669101600960812148414263851546658554423869383896320865584609362774899999965101673261680505983568907923706769036219940994746910572020822733120209483546314471513157659807503605537915696501628781701884839796791543943780923274878617008040725625863666638441185232864726607165033740348007443792246740355468266074971782631097441297997156913722469618524742098459484709388099804441089539180707199254953117682459395441596239409385947585569005533653803925154087334873330686186294160974998793429517518414515229505658895676457187730435036213201523515599180581208890284161329211560662601982885231652766166525755703664746942554788445418290274740992344154804109692487004957186906256238848784487174605201911817724581567663592575119730645820298857525382693502571939491868947669807038950160886911359923094228921829796047584540391250784562610319571395620671588951543977412359810100418202558691443042676641797414192746146596124249837998510255543282887359339530088670365861183724954778104861194092788350995507321894690830970911989861593507631195499684491687768785136193839653700231804237610926174487274737845677045794984928762308595698956170267016083259590165344405774547659503762363318068765212114542447586755048394837236455288654904179202669189052313878365479922485285291095930758651699716499206525097491894118185239022590508902343576773550021514897406479699062612285061069262816817074658063341482073431343843784318318356622832754451927589159253179575689002942139961794753610480802819790707646809388092777725835574387436653953619290621300092160078576914731242612416756078409206349411715168845638051002171341332809322200991418472398444209358755435340273327392832053191064693487903620228434890327955176615405813630628800034041124448327387034251771702291674153405373096783026731801012487430248891226943361097640585746374707320526741318570050571465892744014134843506965252028175668874914882511763169848621539397145226309695621819995355130213432164710651646199557156089604461699534901124025957310228405479803082396117554264121008157318298186273670187477200390170924322250916549385203303171718618499063368967974258073893318489872588394803158816645121008582073700629666962326247231867108880663667913719872229412053953193630185872580836034754018039940239629466005727871212335863571296008330412001377454044727091297886931816046380776335002929828650492362003887640131137451896444669635455011568107439196086732323401406184074240887763252245674162729686825298174955848714770433755898611410072955686343613052686705521350040553675889983757999582532353302151980158804994248095286975780929571917768878026000517722472708067518031398664305537951385477203894534626143446197246750137259949080709121853512358899122120073670554691938400271170474465965439592539320646653547694668525740625346013271906486344988159775065893006166257773877461289209552444603850038394082059811053635824403476407537047538522962160522278156230043661883659882084447683508238394258499545589870720550223921112102244881838006938385672621460642588008012847248455198520212865097779103382670773653824182155756507450026318163322366918630559454474753206221231860815428360535527355176066360276596226623965418947198912894754242961495954246452004931437887243684979732711786868187211776968952969947254639983982994790701647574459196494930183877481040502801383742867526254020732051647649965000830608959202351079107808364405449207041272794283214187607470719508541136020395933847204912508249930403290907349162934987313928091963508356579530281797891082054990019645621116274092071210164979439550950297255423680783215828794293087730201560728186853955186922247848566661897502904901395322615680633939354835313690190294964709457400366690474655614679318187062552755629935157901436523757354442451950221219722396616997283078690090191293263670537037914513435840603017844202310781871077936916910695386380370420091930676780123177581230623474851997699928178886813922733920099239039512357207904996465702881625843792616302851977374146438930014474914409922711900119021844007427902971271159537802067360880002601028452396283104943613406579752261307250399931595565170448346961527668986623024808168806911801601378581149438072346660958274254514594933473146735357176976437883852371726408837133264356618950897890053351007699911343944437461613699522805226851630191725329646120912721585709708680057074944039300830036734175798344672137958178556148172994566859158002787906940689889713109395208104614213436504914104160004395405533302307592540259757436600918752157323114730423261944411526472194382749842508510112144325272224683266643865764906266762066270305726630294622376010721911504886348766043048039007837811900243688016064483890723462975945130752748848842593086138393834752211130793536958040923743726248034571085144537150665106322841981911604143337008448308278199322630002265929499231945670192776511957646693443490633895488522378156720359979829587968093312106867108161279367940440962736310347865643805538920718511810383275840643872090850103744297203232644897295688497609478664504851513776767013113779614059457144805844751911947775141148073157933066779426226102671479481711627746107273554754673263321541385376255682298190966994296868652935403337121517131154156513936578271010427635755867340010628905343602480023428585525939786613781403474438669689897075062486489794779186703723943931358284397705534934072975339110102471977142918147443716761194129685501509248421338789493683599391945822056304994406766430243015321435743174524575291479484258891302776822868960331429142685200712677633941969145556114803297581447293129944275195170569751728800483642121253994105187966790779886750354098889700928967578096938446752675698176256056019440401490809180199187790380573674187403040263947102251693077053768350220308188934341194030309364783260900639043031974453170919190742813395166486521955713772075692807993739897531517606683132169750981192092998408806431099386967946706890779223644107645403518150014372843859845433100938483195675664017244505556999353500336146785131989097826887173148281828772012002069080036030919184502878763798858994837459879397109436382466357300447705759319537403034067485869969045861747486194581120072302505841153184305806511460251383023734925253602404013471237090499435752590385467791826236338217031277686241061271177192001720426089041273658472000789295550702594467996671422386812803926072370783668217282064974640191790416813295572019446344631768428239998087342432942364828805627350719690413456575280791140220152779191441311779774979795397631258128565954127448018465272979346398384582081586079123429208513796402434007652628067978805736755170960641419096889365497702369787199240568545964110138860263618242871475447881473291748739273948058175011025125299409414943870592197306950800422506164779461633959247467022570624160621183083397888038799698290168485574672629158701565949365419344756651945736057740651498293528234420265047926094624113246763893072856225074162937469279356696737980885600151849522933326330423401104594957342604179852162492481190342811844435667305717880466316438563681194229196501205577763902877964762209127139059192731936679546264937510565663285965737207677017097847190876533861537332340402881584249141708684454310687437879811031338492941953196666613893693624945077584510252391939185403205862744347045644182787907929453790724711605808145886995165367669624011545154883014908525800643830021687738038244539597587581276696248021044708688245271112835483869674022105644725984917431110982790727242299543955789618877511239899338916942738046946571072098942638044378100089106940199955828368456534239470418466636737405325558996118776915662601612892089430083578121413669654720922845746730955311177320026070328968229315635461475027305867999130881228495365589786135673990174227882457112503148716556417184934266505018636179800743255260094573036018884701794513239680048901208282538503887843757704125276896156732175010422103820618927691175929084786046624661580984734799571976522485207706835192828410099080985748102988412340289098287027040321784260286794793829471404511532597089788156333965014093620237199051929067391166330388585762332848123124985832933939452862014478511198654745153048496461783266254538399522666669135198203025420868180699475235728756010573534012586110672349172545356130941276356635086167157883193306906707359566645660586340143721598158289214941804530608399407250672523871943403577104394207923457928414463987543793923743012745717140882821106589097796912035820782552557277395615966831434598116318183579310294746551822538905681213701248207351901335511911457020257276543129351347061743287184101534566422911493424399557134300046103203353231187081438169761976978060976355282866840369014628598599698221678453782127222169393914351897979370770663294934990285633996304344383077505173981707645857981809770446097702186894388876368143203298601869182579700023558417812181376713284965713712486794132094543131208433464739296715749340999397326642979570639694728161619635815273272666164964873830988344121627160599210118702311653475406668805983508210565167734855445459869860451182400548762781881646445869641361959622908988741583692484580575988872800721402105774292641015524496873538259526920218731272825629570186716228873685485040338008966437490595210599328293299159941355931820148926846113364918529636760798840949062841460678278791541992235414972175797859264360159892504582778049611483736506084616363879832781081638294704973641758974372474305863001385244414208108182947503103562443286653394229515572305075635292784997326609095798132512330149552595702219035092488150643377228757043431977491943632556631788848258473427830209803396452286247989261717719732455816903012513140510417079845077041843410467919360657850971295171777968706386939197226689573081055372103222278475865008752247246328761032575838721165539281960889449614990171050246813715015138211015061064257381496150099955397450609388184419220723489887840461498203165344950022420362054079921961255570115377578177592312452376761599433900127255472444350799473566155136330501711305405752270190857636511273301830980875063090888986310849432066982305012767986972932780873904630697893263938124055998278850972036941087445204759854146695733226099727703302063242358989496285403668465972576143907134648241642464736518280710754108875195582071662313458988492403438846952544721328625393539910575102661131554861408947615000155570860726331348846806922110414798559483549491874358077889848582939892662272418961681017497474896562327711489014335264336701815837138036515315332496473651866627208192477286762406452058076494367528726433211116631064945285834351505105288375285437150107950895052534629043502323287151582620754689337279694966975930967973802913718017901678985409712356169575793093070219143696826658922611018407577217726067302491539243814143104655236939755986938150725287424513915326086401723259734129351393661104759961796648903135651990107773902302486042687728173465222296747460172863619994676301335534290169223595766109572696222031145781934632061775104318207550455440168912129486395513556090805720445240896714771996779459430421547500862269863355046052293924346084624906212712054688398861374414926824196399857995529354400733922628192125774751140901858559785075381194014509641348695389428701219755508451200754871419088076065859574679714121972247605759373746263543255016402592744691154743170736720496497726546600462622955591725641030160036322548658789050560306445994452991084527231942555619038131168528361616212101323327862056584640834475727815032723396182668213687567482439658396721662259655565134557771077346550435793737996799187575720796277674419096789606266082538951416710896889156176887165405343479989884135392127020768694118139938986490584943311542677186907041035058027244510400705089951968393113947381187172031681746267011422561927315289643093014276295201009862252361594045099476480433858600402397652525402322085289845917078293996245778628873396293047933748005914282708301648938462780398738376255451064009689473465376760069775433141278120849665241971536593065572048384882970405168066673290197246045906348524410750278809749354108605619137956662490363793149792785574669693103959002721841244051023643667256681884997691934141164558871185528566753884689834771407450418841094961717069292238085959180718166670673016474030631288795395997611660250716569068946213700914443774352819752894815345556467830533869573388787619324605443344168537906298394369033332205631785739245064702096936255828029338279682157331642369092973518090950947129139722174283072562615253353312388994911516295369415279751848345739456146587576592416610995629420948592754488334598275313129466042369654051836449421384242687659101473131954874858525002969954748708802429493926331114515798171598559050133459794841338382954960270215142628233827424859875899847689903811558149944803855021378144912897790114711657418636554950832130250131444179865848392080922784666298362095434833043404849711824331343730261753880166936460708728268888127447434713528195371028660768079709205365987284571905828003482255884173630704874947705860743948819529536716085811248645509090802447795973470267927945310958610660945488466514362341763277053937189642100126300004252326120751681917347926972199215387643829166675696592424279237561011851057203424757190731703454697971479684901032109209349594269769003278196157542503838255270450897496755044992557685767636720931331988378336898074318996284832053672638157748139647927294124060102141491083483823315504527257626033510901853416952880035058965595312211377673280783119290038020429790977971182692525045551348319837549591076310919585706650202935754523152183390083033475975832357423804434981808256318616334836170456147904467351535891724425336724208192729696800772603224319734270090930396928374646726119972757207635596582949470813541976000334681453698320035880710414825989026880365277912767519217201518015120551445541444191236458945778296605771028789540535304145568351798128202565376259442221764162542647101443443950701051040308845210145882414391004507957998029129202100735403744088022286823864556118585337708881013446391882897916418619111591296409719675688343889828916380362826037211097791159988715181454755537118057434461780379516181756453335968037249694756487552775521641146771939259344022331545636664025972860473037415360355272568591324385770936657771250876825713672136985771727250841843048214746686741609648331542615775673309279637763780082493105281877313529022900892346512487795441827704527390242940040189647303648790686188000101205509895409163252442084299074620320879599600610162575199457918252969699600108715141593333604018742640934604118925543352246567693378702995989096429385392459531720598809826449721326254678976179442038789293362556986362680491260467098796207516596069818408592117245270400778181018073411172346243529567834365467173502596197573768639244457767253076051043795371074777230949075848386045521116595187941171256141901446093600626985208759994667434712994636718842724588903748148126468702070847913706083840783701206382056659776867451397217658132069340516013357183567894311794741579559830207138223355794635862064093409856050213804953726202918985661257012277130418448086940726504302497518405796167561622135294231789424277336250665141175890497078858445440722551112624657316112769423568723069704224934823278362274078617821905083218085922568725866635439901740104002165692520272058775476912685087482585883295457083844227360107712285990835009089681663896516966915801129109018931492137985012381557567394510250035771294337594013596186875221907763107568410275486976340330661599741841695670528625576647119443641357262623224603039096928752370850501417715043658022014513109081782673020996909534282889383742017903514430785439472865161281604766696288368657029976760970187826808401045220678372781199980545262482009470981889834857560766583614553038522415872530964526363267446034401817135327596549707148909321640970311536217953881176724350187283955505455078060331414027854355973086663179185780670668076937963798551093487117613430479487011926702319074756052496809109687978351269705451268338973730981323140252944160980390613520154667769910644761669405547534257964242154343867257182055395701500985295015323331064752506718254294714784429186772968901963913572863302963133060560984862133232606188220019447412447827603600360997506658136915198801515372222478929039204725812624772506678073466398831693157240555909500211423797062454643441896412783649498364938797625685322548043535938831345384961874210602884604500583140920569865418684693010690595779875483823780103796604050670107243177793623133563123297161940823081916953718300353687152497282939280414173756256176845652131011055737751899304718552146834811142566036197495661068692737371896606586890514084364208185305313060200936682608351253245939988306425073008747999646111909829923993158357022810178993610262840107276098330708364265506858683946389445372878476897626124620730070365118379035500904800021282340352869649363850332761089742888406865438080964119442296983178012799722356438575833169154378124184478712842505174743882867490764035776274713872153752692568608296122129864706139216194308569572420286722533528582471991034728732646731326304495982540922136148730808072661650489980364976525391280977352205120712657199560052947143759741560521783965373157719171761557815940438734270752977451151117874940208675863669622277716946411360768861746035111241288053020915444124720122386632342926317055008310513296458206829515523999729861697927370841076424338019515054783535641638218512949036893095149459538795696324266594978393150354483099019499606207995612258333243099528777766980401184824719903558658959271583622601948344276366755211578891593365144131302341253167961263900360755043225900358164291279191179045980589552771095118945252795291167329605666791675559935124282780932547601966741528840451684003133889213185108128966775729697538409410695294328084695669775178867584157174268581377770404541815709377010697726648908004016921609361941352202377089119082706328895632119734197814056638640167486892237345139550502367135557165417767096523924303400372687666443825459012084903859869596797427607816092743089709502026876914421784717520261902389531659314709640130508727713463876267670651873435053767111362028542959063809640736585881196958246168987851566897928770583733045163159125813888377133762686331854032676033504422287696181964105910259397894002469332198919306927613299849831524538246183424415268239581721468567883428153525787455266680831868606403629884500550089889336422018443621025650424141127843801792920991118651943325160862895007294844099541539159808508376581922963934131221809512099000462341008620398529827374997825613590253541838559283729469755890652518493033973288686802620021048737782488661651723132328215413951913399521567109161939341607535845511911101945324229263317889892850882921243692207009589949414550656489909790572893308778842335333617825060851935052076355252072877883789228738817614117238515122115245100122296133736574100523224508864597321213156627035844482606998931627049439666446929747831496551351148082385492621003477483678722790596721861355480201652674855361509135392576034937421195687053490072263741742394523391010781421272829600732073115984910629607010147070559575196340592196212312873073312791626710937870608616962725374676214474787349989759158385600007314394601283460798051278982083778790816850044157525208684632817896491079476757807760399864097934602779170718317613118313560260695548441454385732526835299663819988577492054515683612273096736559933872898949710193125954475820609278931681417734413901255123065718264392599444669652193827773125460597227119998358371177042727855144135759555031098855759160402481743074248805726298330997995239181121996857724635975757680877203439745614189801474768961770026427548765228087715176932930781141895231519434354775178371655221131220439375133554229670538235939972368735641698293351524499410742441983339386023118774379156773468294523969085065213079878202243655614918264306769262077946558356352623433289136913824706428051664007786324750187814751757123407151068969149077956995420565598478511825179739830588884192333961813076442290234066847661651330427698649043161013781649034692098686778719139450717466436762460164073752328156697867971188371923092950183101750356734661148153215058547723096769031671505144476983758957669137667704154794617628514651058687623109793169602850866958122626148754701444938125573012508073130804930920802737754085566106857068262435736126222783190383265076428088444206519571269243424523067579386041549645910837049480240425431283521996901271032094983601897333425450222037585187150089981264584140782282216424039084558094785078963922360977781604285572152830589180059915849922131930162311845993639481553806672923702895137314813593403010999797616695069950828503556783499361408660577002547450074787194029372900208166061164090125754144015815535883157651580039366960170614931316028884772355463802382234092873303413747703282213427189146676039820442033498933223228817094842096343456804775168872812547740581488687076796208052623374995377745130438989613727099783282466057021995688535735691854228828557273900001350587187017105095960045454997982450895168246318580216926503640529944830355048782539211503678251997043219739533481544692202544515009219626502145296984117871043538523566890137335438387604849618770968977215392124598712342496912596739002381803520457333721308678424428268792872808515846780903761131908945274694300908776723213227968301816518648644840306955022813018230248675225238938195238622137521857745471716831924049812751618190840307482999331899328137654887239796828945071143363727684518631956224773537946706044734573305751600634531234981968489521008579954665376541280582349116710493489345908302697551784531270328160571567403538028881932432653308256309200099002061900756304407204361369701248867730989694715416801820537582113676380924174991402122782825268888273739318398095308222994539857620532244653946002591568508098221147938977315924575878965876502964757454455043249809062630097173040994235646323622400125353382053808575386336468735127864042051983392905826558191077052548651741465244639269195833511483237927985785628814050771143092303570788658166465638730851253034020844182552267882107619033102854413329095088966257536995045603939268743678685772534638559423303312001196669236495415469341536609695518018454748263730653622273050112629891720710844180280061158024172895511385840031429889772311687776757748850534214122414587067620741021057282073495682064009202653801235428262959558630693833960259684514549259023729205639013152945898504465129873059730137433015739897845101540572205228842497386681774568642256816495453893143741188853662482097397736667631903752694632773931098974438980970737830229819926726114644963048048471359605979344852568455293813086627070046398293272734935250638248565717552355675767812317509055462160054410056375285088082004719932307824535645745267069043215972437149489369611321777965164527754800084749935759579998581849546935896624971947806489538464241080451977682201245273816729347167053881163162713131019992107609323512419336566770706936899120005416426765728217966492617318786008878725610399654922520787725494259092636935554459733491340648084454157856953260330697581446516900484453959402924920709526347389910993270761056582556641114014400566342787105958041666743543518443668500865441232371027804321130280335843192896615080609262826711870162572577658103109813382348387681989412346094221382004506963089229937590551455608218041794585801281983959564762895839807401873323163898023247204141033810860483987623099960674587935136632337906134866455705860120957667264776826177285564966012788043294343732778777358369877220270755304809709137619766439787634888129727421120472153453063908975189760132508100767382670054151330626134105932338118354904327698740767081555192084835974214764805276768027066840463154042228569175939953376122101452045400698531081572177992397378000151906192279817323712561247499526810909875148735357727965508879773291045844280145804163307738450913468433243453519573977652190424688263718419187791766671321695373409937010095831257663981144495145604318966985380646032903402638499148123820104097007819330346707157431079878132686270272062558208705518552044934993780946613113290351243926499774025686311755993500514760107220552649522480199118613560743823006346154945962691907859976805801011379167711642595174994732952463684919265707256626764965487715956138502018867971080197993062575884107388219239765519620087702972069054773991901368507124890688872293217491320869450757908321134962087800062313433795815042734767321955724216293292463645918094040534899919840303103326782044258091034975369929693817573394840865438891602047986016552266161650650300043425827338584964827633524408324095848953153776547477613964688948080662755926318784162884447794872045728997484564264308131018600566835123677224040093462488384593154701255688608088970676883699462464549960565711813528862837076932220782749966622965376816324551400053615849529749470751490222595411612466144968651568152262404788103264882069251220624296455826082327278991317415475732813587162740656818551904838939741498024189225372753625997548069722768857168069182635265010305045626371687470308173190768830014797610566417586514187513203443791214168338851598302891574345330050816198414180170098599283041434557907140392394017347043521647060077037196965616939056123126387923132427823383605871036805473107466240363659528447630368471650245651502234269835589582676815976724028281705610221496709046621647723973970546668447798394581155610835969050134369217043056105361404947514519204608163763397249867150521456501784898405785580948681025784972875171099578188878783819223601192636336241227893675026648261893148740450435730317739647605900221647449730849089116479399905229082007566634928584147012990400246270091723116057513986280286810606346749487510563172038162640178536606733572699428276335241346402227287272809349848555887798074604937956968319067458381633441345588914153793918802689594674969879304763071378589041571638559007927510815106232731233667862276405394199752278771162128770378238406268685932750072266295785139165240612434779004276440929395148179894093674237041205037438574494459321286556906663337716910235564902862726006225868408454153565884959485709585746273668456958774381212582405955051556530178437988786844504327973786408297443603994463315382004198456977646132811571973316838028202975685663539704129923868439232777332461803334798655623599272812922728528471144231370346514764945334722569519922653548419645708351617721346422873233529420238612560061469460189738489045504044625608047041375849736223238137907050961133925314761596459610767261658049177263362223620361207505053114478303488818428628129947131703752020801911798517445759298871039649068199123159273299008378888585083660980577477901907144692659160093885237647771618132902900576297632215216701820653273171453941106466078460120626602779546472033835718623838238653259503201952011131712421144578492789380691446348448417604500588184409007150519497713881591866265184055174042576252972936163315064009454047567817586362504778397142597910946412235116452324347516209145436820337448945186366753938868227094078667154894231692186454403275630982326729825518969428979796156901116309112384052101662125618734828830924576212444450774796053478072123841925392502240257920848651538858428727734823952213388381570085254969112658967801304765556232608740804532229641970612480331973329934212220116029266436633611515620550810070470245198573731142987963706505738054321228553362723490911103829282643001043306004439663741396598938359461661480051688143556211726044310993102203367864617881849574360286449193522890263390540982904142765811989990432968374399526700135713869474310557137378623851004038600078086780369337968760011584712465957291201457877078373118439477233128429569289824821660074088380267181082485890317237341666871359701100050406865291250636154653051074954267827938752460873135704228065765343182953769785585376467444405205477326814353036637980517816373892471236211127238460761016321517593616466937008179355597275147549443982431752905088156744453978029959762035883348934904118337858456927705740488581789712652869458713975380456061958570235408015565489016333451035866929157454547867017194450708268320408778217499565776290261173054344037634496919283021031635100934482465688020251797169962988232688961140969456681449151298370845627621716780503415924564389619994593043184785785041464429414923004174361598750183225195231979576853231365037833191953121050064457226504080820738674766907061900191851023905377608818360553574210021161231103632915467863723389691163270716611693725796096209009282559499266755062281830926496208728764703598623913705771347662940698920623340544933155925931549356987349127441063919287987384003137964405988590752612813603507316006335320146248015162898407918462359091313649639879275141129461942317867087982360989473391424987066137973100824331961611777100645269448587848855661555061089438503637284115367652026049355231201728248710062648325400363066866550900380272729904397636494988919839190485579234096472512531589432449436558224135952225205592019059703058611556631542912280199178477219222875046423002210771927665058304046925039036132282992948909133797752661824622510661566789243115067299383430799350204431632072995124263378616895382269805575680302471098377644107929434608162875714978663440358607118753144683426437856687442960989235974379188337925857607508259504586452661943744010622635696876672014726024573320125955638755054260559698257906456527925888817499550337148730321369756108320808536408200991425247496822222637605829446529932326379406194372332155685922532567389993231325888218967491568460563698747889624060969234776238708450117145288972333997982653655216213832029367382801000528704714349470432100226138413776613372407948161427961501012270865126453326090720601849469055366444465193281225055778976792074269915414607640474362326483056013286774001850705092616795795166585817403477058536101890510041403680156428503163844021928065049493900589042023522201042889076456248385498619527483733169414653903521725635296035679132890774679097216690745080593684236024778314836634064555429085459491939845890796763113614267801450845277751335415097884281496389388320731283226291589446975233950874485196756101801716787905158398146570130063090188642728212245104012969317218216864606503085059535514773471908941213882927556847510214841738981254353267827442982600228460774220449821460829016256990488086309745587554060369492830315760777073813134084412702911487886632839996130078770254570250522121278755906876166940434249082465406886792449821024215504700689967415929432224583978305291744547784665661322776816196078105674032258501050437040046359636015744177092855768155735728829831389772287455252359976072970131764904191897857730431101046629915864550047047614855807206723488568001010100589748334539374226068918457407228042262206185700362336523856664085207899461832253665955314814954785547013661917151999337766828354854069735205293048151544080630028618845849484324124195964283546003837835891128941844416123726615358021032976625876294935236269868261795245478063605043809950683645965855509120261178781981924019631908821143200365133940800143186202644957116513167435601079748216670403917368902751742299611280287877627185953385756548701912465657012828451566387663418076203178766216307884062272353510605567648118843363782727301392882088218613840913727657840410458272648377207690174947989545884077553824674955735109864839676686641493647825637023107231376373350461962963049355246590983961018243282470036820600760449760526742137264644141135328325479467671999128484828731070081348145045363115207476863975356276814406800681616087487634477925687923868157013077347031929914848936959579742837498174592280199000383936756640036408614645791607469793842955857513490761755822898185576179418872237823844557328734743058483054864633023568916437534221195213010897476449515505854911345421003790461169357838068682757000504316637828928747901027636866065620412752078428260431091195679657122532063062627633700270438615338746697352346614386886410232467049054267119305650903358984907940932420220244035519811499556237271694830351471446812479733560754327439378464764069668914891207677915076634245716482318955828932698894306451583843231429078998718553938695700426011082765349236535583942506097399544587848060689742821457554535183332017068256060755377346040886863696364376717799827398605875945296279106298760217310319902115641172123017714391798775005714978712953037757907104779995695087478345542899856214935454584952984746150956252978427946241831452693669279642452707135143812831803812447468491113998717021050700964598662314349357387664179003039050448459436084482571397133968462217958588579617202163543472824102235687722907966273429827770900867887631842684897729717197148664408108213137418078966157522237702484135040642536218141587671735430429497247072589127319043280201319628486699772264551248428397311301882597558426840949334302551943303904741909522711182833894714046461030898565882279604946146734349720341640807361446411008623235611127930154933610256068452704059405012533871258818995273602763963995076382550768700469942482499548917917340577890216292931323651151608310340572747645883645333414659039494685297836853438561796692467803668534443332143546700199204242652643028668311948452195922720757153930152146850365823058727040389649842054013414006040801163078710705422694390399419915268537997791545046353501421520989228482683528004569430654933112514402977790041590337939189683577225461990723973826245801943060614747478469005731808146031700254391970732681233640401494257842708406980029018456158557814807916621989522214642510506724901272970300518377021132733673191290918269519319321330965785434037664864005853348266226302931910349050456996234591019495920782185097498101610226279810005083029221266893311760265844026380504872866851008007040852543064586678256158768353815661680012373859117299596891493047844947505333948142010012776222886835370731853189439046619971319771809733115552161755600940166483366774637254055609530161137771630578054925818565758662483398430989543521285178806120691396189797509498939532340902835507786000774075489833645870645642889780680188707688620415870233003501699266679362163593309202818621318191091312085996578491836352408380827356525685542694626708911887614774008557691657497609902611949167184317705276947739161984177995170535944421095962740372969975983285310820758035134002446452022103137403857372151949754962700501680849680039700848255260389511793022445424829944623243587537571828554712657909589224633775283335310186401863127341033656216962422900329495580261713327773110985819463308862933992113266807861841498703750896889369922973013739933538283814540394810557683363713484791363314357396324234780301173749214485814102957290664511122186639066688440219146838768159083990745854797351578885165450292323252290566457949849901186829622271683720623356924853867907011989237680701187910452654538912004006322259376938547222941525942815800582105840900183601785373787351269331349198410626088410054682046964562707870173782217025091177548075076263126526996680683385784596774074285792526103232003256774486287871841368735483240753395550344375586829902499030509527043086830312460872526249725156882096603898358722192150928105683946194278346756522836885625060123406890329616706540936146300930611817305900501657008780264888691604788902859340042339738825758330266405594163953161692303011599688001028551125965491267318819469540610105913875675568837666657710813928485320806380145466841195209688620695448410445560668720011048494343914894353188199656736885006531693390354783247036648717132981575107073840985922951974465603434044252588491095961846549047121386207603051570507625582774041170973074628424847458524567844369667342960475934745982288922066772717005291907872295624323373713029860142410961370855153342021680192746560465732087406669104217004083441383617192000710461655795340206739818485617992893677926588728413737697438061338294804371562683058798583078519264174279336335596832181492104893825579631977977381352985493825826026395815003471730399703618322424141061655857160626209149626222350368450643348061359569944146164271859164209300341243999971013766327358303839103696215328812426179702733191825061917623493700310750799292547403375752390520837918080791803904275915804585483049072842336539327184608584814120253043221669289764940153029358722917822427947409765053360000403629555030549301969218429046008294856411581374460452990580215705031242792576807745114489173406611220835966249445137392430313702009582443889261723703026436143093287942386748467453659485165502231920419801899889239716787199574357852439380065893564686534781561627081441612966151963042306038552587463839188532571707597525812615647548551397853384538161759407463189976876873658202678931726069522814071674890423749923900578329219153604192042842679013077779041408202737147157552395091082966081317692012989203861055047071066705327537660636910689966037028184441883909245353587103597450115827372033578760325552994355068529370784062390900936689013103987298662664728369164000509307585756890789868867764219476593054721389082832271915053654805243649807307589718383224478076353597898109562284282544136003444293244253879914797420767041061063915027117498013707972692212665579845329421582855029239794635199200752707042283339594015381055395004926535122496246167818493588318885136250688351423942735744904754339426255400008744481793838533790977866680699436500675251411711224497576112155242589814374558906026956060901267438981696490551537179137001287160358797601855919059003607353548256773391627168075684568107867222640487952272235763992594678222646055767871908696377144666098970414774174144398070683937876385004445468895717965278190655393171475101286819676505119565567235631807751980400111935787154038827930574386187738918545641718978859921634843087237296126118303288733155801057070478562708777107661005349335449801257336021292887024808140191861716476878380774203177026156934075845951602850744631343916962003501747387643668797758381137422799752343606995516391976436407463385804717219506155312975805449891750127899311638967345828766729478113092780989015849490843875080857062574127508931171733869078679149975013466154537996818313655777310337838645781552908497353023284744890962345419064129144051550510442618856471513185007330571961236943338730685931282638078111074771531342813831316387552299204749491496347312544282553434251306841927295240922160171639936486545380793595258885190356165016265675429493211928377902327793339539337612173624952710804453778332597279500184674972965516276414226205253597019413834376129302028339998552299605191201257704530157725504028230876246897281306622033493942931009174095859722917430767812536662785817003361610215607798391851903074519497083858745105581697859616452336879493537719071318995147823170559657851685539019330940539815888214581380116388106326437510139085170897948921729926946123643993804211363790142460208067998794793454692032399323852483050912703900341120009935682853221577354219934241877166473936898206454145108577792466691363753906449170499714907391962430448834750086021601692572469778107298505978502335648078140216274286970656560711170085991624360866621702830445547882418362511436374069275850510937057959006929718297301877620583499455010767607616305896520216619954382994441561090906331240215471283638727164626322780399241317966270504992937681853991863367218376449796382452884343191685862294616389484807999519078253366707305630641939748759526577622315705137778436501503814165799235693135658166007106613339167309631908266019101806259305874869746490677209303054330909758390539159378689146286306562607310299394031535588121995027493171849634692045389993141916502810495770987792154511369667038200951323034327676954098487982878764175423066370972798979145861023112481969673415719097315397387449809320296002055019501436638986031434412699026948845286531726826777863388580258409153028979147437863879948661396631605080522593553102474780461833475216264701364141316026306722695954908104638734495362902128895247117922976427603970447216149096933446929665800647729329402493953727988387988759389379972091523363596744395110282678087856916932730532025858919344351347110465861332303688794810274865826044149535435099608321996167516771611931402654333511541651020085168630760037350532119004569954381444874789238401370438761241782621658130217651588076866150966709398849829020609549017135005401866187066207108981992267907284210241642350685593811107441543229508159490538783835270552845626343912071612720959523446687236080365155993822591710986539687700996829816874497469928867597099209788897297473859082898367752902121519744781730063809481602764247938387718852252024246834507090173181123688514867704790874493571681960982000848552137640601181232739669609869996676460718964692493329012684436484926902602280048130289420652622750935369265981102110010557078949446223199441117096899612131491285290432194386303207441109701934970407320479739699866438958177550357037096749268915064567311511694836162039140893298275204202847419157209478150585091098190913165032458962029886729891900953451782823073037306131129583692663401570102321176119551575891033412583155858606326142477399209521887889061690150397684200727038712687180031696893964809908770031119157339727093426348500066635085035299545265031041988964173207837968490912474570218687365333749397752766119958404008197891509047933268518179029731013098891773980177395754110626076325704685492846434884017019818357398010311857295263468942198251409945175657601989349241762273581797514932141709854451935660766720122460167281529197651220846375827863186220153235285064106577532694199838231969854599470019551387462399046129693728159520701355829256098034776721208265012240557865150972144809328769523053222668664866089776256218991510399016772123155935456009484733062906758347704654168379275509663949358737315094660017613600547479406045410367397362688703443763492472774689989483667037632492935438765377843893676261457789514117454792569406038606846419157743108793320081179230666525485251215916374642928155940205324694856679973999086593690013338229983321934204954571931580352756145273322784292086876118647959233455785635049832665914009481893693178515981630849610242664167775944297792139022686135799005955210335395475075290341758584019163826158821167749409922034129791304675092724521015854880033944943400702573407934723800792554766408990444088642325818582250959868760161064458853509748862790895496884090462187240854278982435851209067999907051720160064095466875787110027927692837183674521927938758356504623871510985539962857027720430184186862056999141748623834417675425276144818481883443797211831498733186418942673427643851563124542987288390034179781117501672647622626935168993788266574311357898780239073462729860380468171680346621830296798661211223778732523065446792480484754467333581597659325730207161912330085844517150383444929914368368066716890088621384467432641733925987318246868108655115746067611497681470614349820476415899780745202493622445762373434689696666041701403387708623077101831142673582286423621450035015966322318679901114534414104075235155088176122230576520496608279656323827787055058185519334481631603880105253758551961823007718453912273202204258811911826021879441944714891298762951877460586316118521402936031058331013329381459868561194688777859747859472063489522981713944600503776018440427789736674644992171931486869568202923182701307811841199778033333901351585779494914436384270837511835185292448387529978736909090585921613197839161065711167971944232595069522633656989360014547420678165382118380888377575494543288563464750962891617232214151928158954133962253516886208124666108155462633906482750122463316287060149916287496585749072068848273626107351053333741684350640002619826562186805598093835979414571762287348074395807309282207963220856780306752860684413165590964351889002901699527276738923377490070633034593218667345309844877501379248218395654585266452190437902197133500473570918338252439004612449724924640473805307522299158788129183873456994302636785287175965997325833244657313734485977631158212431022389382411156274250164517269804613912049671435239022150604012284885229965210587739088423793213990604630179435384407934560609103454376989897341985451289094362222418490871466166268109136216731031253212350827674147417646088238432762582587900693088194544934845183652427993294792589488082710310214742939089231951097515262733312571785906432188127858052314139186900172819158392826807589853638656441171845935945108844729742085761259519656444105191774391377167060284865260562475294184750710310955687307153369347104060087265607286965105417801427762833620563314917985696381389779142831766243253947797104263091182623404864907588095504548006749083886100821937184373996461603410401294807947694874869969861889677172076940688404665771650651478881180859209823886301547085704625773670817135340611584696089598563260618574071692752095088896591064299384589608393524546490152928002807692597818911250524459649348911484093586730895037846284284727986974023728916746533296575167818763223327855218438056149016762629747021770719341470445278097367761179140608593998907033058040809712533608552048603808609564322488823673371259071793220084252253831320924354565759981633160103789815408239991778301628747306702179735293871215331832316083864494679334645302352339398968735727135080231612854741368240405230266901719901581599051001430887651074521783521484741736863328350455453385105072140050852333252658719051456790932738479462038051431811930829398960277999003131190144776346260673410694000078573475967672594921853963418880070532321645029961169695205611200083577439197963260400778348544845849795409715571426069128785620815720666232371042696927418868512770008286131079121154650799344378077016629660236288427224092163372041544907352093573746425932118618023897151520339828674389126550916884845024917437500670706601419631301185541250127065546580480112445487964803796372090571716675837935170007163530424136572872555847588549356862156373793715826548809521537251897677468941361482190894422465088081764348430011338516783178603170705508992931318174211483982762993446513205753700018133833946086833400667319595853079000463479804056773908592567652274014277411517598073739316753294934690134284703997352917992959745736761008826369284046423991485426164820750389535501889829346509388375035220319137431421741935219057007741900691068596224404449932529282001048470630317717784560795464677943384209237180720932491629747054742074261150131444284352359365985529207964532789860076602118975417469655047704557657983865666742525771140974318261112406274762388368101580196823273924729040031494689490258015998467568120662390650390998351554007935067152838311969254272634106907475147746875662663952163183914666560897597064905904778412674915735984825486131384648551246221940392790257473750079956293954973905172979669602796180615776058735754155992396711963309898267138136835735456595877633635566867833046397462194478858025071693794892508216726816942323438123874089315862302986192171836221516114838794252817136559309965085701979785690171597241403475319600542456314071587021331158313556743689856932840041228473123184941337141084566101654590822231237662630396682487811274896590562046734520520038334865127857945298454419246561011327837130562402322979176951950000298064025599543179106136188266906591271016764383195941452677134986930842863041032797840376642427346070627524544161416829346391299280647084814475028049223906035879492902125937990450569784165232190154557232660284695012940433915349190836543164032213597701162522977828649826041142396797277664293595245712090200870069750639122857282802898931654508236230747781770101071220797479533634395687050497488914881710361292243942526007582128118507960776190822830867375255179140561312396537306628355833210577983466002299939841310750276209731735155624177472304264050361742039637102856709903944612329887079035232985127721083138863732306706317173110639077332777458045030894054914905737508568726309326539603106716477293296214747355834759065532295401245209825400510124990961714010805571606097560176076685287215332686268924637394534735315189809101103985074709722488278145292657228276116892383961086290664030752565611400263571081377433606429679014550905251578701878704370823727283039870097062640693492368776655009112582865326547581928437326572778105454247377080731205214230333949820144009082110248217655063867338499389635398455557992614846233868054315730718321828969570064985101249353330320112697889010697664716317148746807866417742610837213284871696780698509439671624792563330701166325336504349052458567464407126247507685676553933812977803701254939369616771446800445361781841317377560191822359717199747977677314026579337005734643259095686694074256087058075288383845445886559024002169656082949285321858967905112699704243507991499248129485825948797331586989420079460543284876551302115658996742717574530404567971625109670879958390043988117872246475171563893905650293281258914296064167868539879132672509181263306064470318711889676815854308268964996361457495313460941349021829146534665176942831012934578701200551104536202367135446292421305541543983111619129295323075849344895426958562873594200620615081616101619672237856835348808117690057693634526339358571279269859655111362437964929504304139642672972008784631129962440247569244954276797254709442380542771445795831641591771973060757432747430345117960830948766332174498681950398202142175064929007981847623022086845036313603115412646872308041831959149261692647410371768387780302460767318250068304466677744347972978017110870177378013476622540423261600982805458757351018643244676474482655038344923113909804541122839602515880105343260785478831638898930041222425825541617691909095781630398011495222576393576902156679000518300712609385367301998544960665149124212484528683965526437664762672915454011373844006827153830594377596314158790925909199836703702087795562890226606371505816879059634681787124166271587632740543721211433869208985279658861434584204024592739332525458938940498909651687428592435774184064486804009417370396980444142233183953052001348014537494310522144171672683027641854835606763480237166018667433355571274153362939096989826234855106516101880178066468818584590070942963976811632581266728848712558093316021688255275418798463664535390815885675154206660073196350786784822423274573256886888283338074126206614624210324799563549585293203581474261626279696705088850952422269090290250442799338668196179887561038637726116113312680548787572884211158319388759315353968151510610488524141346387144609422918633213885147670272616451981725125271770538610217293590697911035571123180509236434337555216857557174791680413861187231384775252879984244759922285223605894258009705729012053119685848926939028749875390201036879091850204654507128319329084901716261576733270603435694076453645876820367213281315780446418266777609329441070478989939658565216732292527578061481056337578454403999851393093132349781525873264607003419997461851485618875054578889603650228868738305932526758795418661961025186427545960382189570116492104764696971882757113697641161125648064575162793799322464524622005786227221026160873527689826446655386458729297583396111314668542783448542915815571537845400956630927640680626079210360910083279086516894772500042422514410976295279284772813346383646360322952350330557425293703252235158894141968521359921426866349679655031376904045722586921651813990630325193036757405458636737707920704479192861666843060070079954228399784635385308499791510926371266005635252207201020084648750335874398759474603336463790267909257390331343330985352341886811970300316495672742801347999538368719718641093006189609606925381543293595498134010404221963682309706050416148810527531107707878922607879248024165176803030274146101688848267355827005270775892174231730928228351641128131085372243997401080825878368458350208139219476533508347282129836396476480499692440322417042416353518643725190647870126097786830031467202509239403140510602190566479923194159856892831378622350052935327572327459920775230645408397007044305199325235605609531641769206270662118606651784949094066356679498372895909481386609895958210732383318001851693804103183965609026998686746985298969273244968933474761838585429885363572818146280893773033148369296964832324332341584442125471967671668718662640000416248935608181379812753874308034244808305003030980865276517257961365594467888236006220757980425527344270669492720031111613315901378738745753623559169736998510873032728648480002677671975211222620596545657975190398186309227656529566191109915622999062173051084454865151324765436504274705402226092930043871112014782032877256200173166926029552434939284756807570839261162692296034231121810454500473765125419276392683867905786880843352134531764214334048540387885011724181501283104807796968736416747228373055944577264496214100864225399052980310432077794527925641461953650187496876622583677482339629466226699021490873208743299238306276912041315434171238692435644280592605281116016993498861521023456578682741422480910904786174056704952903395907267591818343273223738148122668561763990958758900383220555981365889244910172957960069256581559321165735730185603816977300367139693685044800895314464737200406205735673879932817777360236755535047205791951287104007428621821882923738890987283114601606875684099847665438906918840300573875563527343973286783335994416943908243293113073161613220906983048926972390660201632533945754021516873636032317791534242138714178157566404325157265273206223347500409866504638668367189011491661190147621495545150244481533035930985738602436654246489910086715139444806260804668876083413008142947090331892750301856163247119359831469921611496907200002446538225953668500102710269681193375851452949038313449480808754197231896871471563174485586825621694836340207636945265716588083638981455008171852859444545598115123665114815357795683103622062379227295860837578940887571563957075602021763821689694313035900390037643655147652952282872793845472305497125179011028981966882860123190619073418244171420065292003103870613669946424388280018977629582672715804596551708724873957300198228363378527470194852321221942442213920054995487930742838791168574873098163316455638817050615064303679871598565875913842300048183494827348459788744608208786150725279448162652074101774478805260567084364970040480188368502885975336442623074600876034607432290506002705605740562708681928500707963271924463546325976208959123860767550267233295068421837491484418396425931032693583159787921772368001719886678337926862399485087667267179593671542016824360284686606506691042261034193192908395707500683922538466585018806122448623711889772666098231585826690333648911957648131539984132856473014471291372720262227163291357951054918646584573573431897893870667515674134061512951009281985185938955511099506615677628829475240983577181669953196179374250591650438930209683237533696735933446780130939472637202240209583446903707794424922218732315044715741415547299555182332789097053001173952459475465936840417414517175588700843558112538579266707287773259734648641760393392928169447333902216646706308147001103910711154483950972291207398163950606738330617832259079685598431455602013694700233292258179463488476244321822580765847207087172368322118584087619907009194797430239824111032023951280837091729235799586278670038508050396060840711664385405048816541655224077296295353534355978396187370655289180281211852353330458208905617398941473785383071007336723315194854814018416289863995889217575810896036415293228645373585964589843461675149653280600785925036289670686296512936583946433914241669125589885827625324315454573317129184483319227411615323216197695778355105950612945821955833944124380355829070179836502003917423086747807435931347784114430813414334123824367577850329387288129121603248845093622139359923969173181448667983438028796472473200445291549710607378794703582756998752473495957941500171454206212773245537868493200392382974837532723342002809485639138726287569769485925768336970006922359451075172008083225528104126862844654850273706386603919803229459441810186270794938598765129003687577464189835315868098716735561825719658342177335874261793593449090639915268018679164173967760476154924903184270860286460024939171958436220054628733488999417533573106154902840956079094811881201707908236662619557612153832674835741914421560396983102162882153998685990453854568271767198593242020658400285790118740434220030666927782745869697585193393297151644737259560083859358477021487822872083307146294035312994611751405511618313714316361724498212032895152111650398254111514833450284326814463756760102641507339280118497739331464050573793150677341431657716060930532169001188723338623300852636150243985246709123737997704466540311219193320684432499561650733660848810880729273925518078921591628023620330799693692854216680382475646643085731083226762964312068352809001673435426609449560851089956101587034083354921401050355388611215907169941530509597836716029252968974759738461558051507315517882340245674014588077204587941095867394623294113519030704692921743666175861859130149911650450109643769018241375641586962952129788970201458382534985459453942210931689751465928563924658669651431293602801334029167409899182848830512693417305186623669471487276992140815197917948661579625714309661956393265874700032618016289903647878796444006097657244794806921800530421151527701902085662434402630086235494274159452910488129107767824078142671538491313140273654917463537035426752064606956382294162965348413183380051714092848570681171261180109659744094487778908020277976047242341095908989183470797402887914652325104410968983063183731995837409297330707746058193481032850066166047425916589823230157526179971621267890841538213047501855011550263667841676422746777955017981002926660308315155741779250410445677600596188839123707615955862508684212279283940851867504336698478768720503369758645107806131770399777682182473427328748313394276563649176098606920984767120847103704812988699868166827706701684719694800865542928454277258584727410567631308892716442775755896430214219442199519335565488834838028092075656027517570731461717001811756984658583040914024092300342914330161425539270529993571946467957032398590735517763823602657627507327751128564817550285386001487325639197942620392472397046057562841185840468076403018747022805481308524969487976195933872465416474461755903247959143450049411104691714740980257482861443040274788900059313175433653160779499243575685353588007539698234381685235209474511439633061019304913096574846385944404007068489520641714912784702974921580314782455986184395699305726456900940296577117576209968996811900717387741814509591404875286235104880482935903254030903725404389073205897917991883131906442231225042776125523800116504138007612289239873557283295792124218783136616063671026466182831396320488750784498612250096578161574522227760918148753878445386529748020358765197525919018337399568263276226844021706537535131956014400217609034336632791450578284203298222665597336252895290075862719973601747094590157634701266553783813261536221770920480107263357645995619676540006888109091848430064710965132254317222786000762921027300712538283433444830579015593233080664270726538644622919110501415290111479258692671087849033335897480974740210643121592360471122080459500080487195098598407274075003772147740610057407628095938795823235715686255732355286632786701859009723772966893557982955625312782879194946826307904545436482981309437228036748626984025543385795131222229581315344506109186896700243537517985599961042767964746349415876545871163357732399344117942048401589715048170008212035009732277815623391810802208033781328785625628269877477733297986011759072784692657805909084958434302888437068968819372946525081633950479811165437596277082117400247078220742952115162883376685580932240522789485156709780286936985197270592838111442692109739360492608321316425120116855218672061988280380315921132521824040774102639261506879997785293619873098116912349990832138170099364928555015239054593809617607013609913312019250479890649540634954527047008610354163785294536039082122288718003025875490271647696528766151706868654299938654236899744239505882422835040689005503939444395561681149884709036861454928878947364115667617497177116169163864680289067087837890410302848279529988459800691010198761594014300693320504964861618503467473959180015366447745604553178222105047482820631369723433560609361253001506929557851040091109716167120217147154246367592268212448682242075269142722393946684427940673062554636062272586272432445295587958086324562662179500492012543227932583621576998171698126741258658689643382144434067437691050742827926206886742528296226024794325805251370240846493748190711518115726443388208843135958245479997384115744871969871945478634285062368247301109765416823529492558212312217673877196760067096074577957314151187373717621389372788542587659565597665577110476956706335921783770584687012234008077646526310925517973847784962025994987354786830849293651613490521624154137375991053034264345812116094519346680325278068941740217300053273414163668181439808732593621689282661633716854192142498134942413902034000647976925561652168455520084400759162473314916627516168383747074188628181229145755368446583861047526440856150252026762192772034810044817253462202810178892832452323695954081842833329797531490045701490880552889367060729004141066342671182289313460222456110839192684557313642145191625886239842579185582828980709104193543802705062072337193429353708203248315578764619266951759729738517304595631975790753304795827808918696815249653480380683664730434638337018065518099078745788076208695780770092810497884556364729434874692084157306901455516408505092374768319556408495740550995382980483312895310938187896321114318076625528908304698530021833029430593250546909601078130576668870751854044884681399435245774703013211144410626583051901282468268909386481809334791800819960499590333467649857220210944986836632035547453198489024399181315034483435225838642419542382490862262783420128063083045491341827178235087649990307604931179745621527969058678892144700367214262656680228628204666116572121481563650765263458206629783728576887749695629049552919944783463049223270199162338481459460563550482076147731491393302238926702254053470536040990513122527382182827129340141681473726550892001890393880340569222665216093147165718225621657012391494988605630285760544125131625801503929817955251885399609832713902893157946360491694823888368965752275554408581679860096779894530010619518690688146000026100841154721816660514224836422374165508844252068163540140527434414759047817854902081698791258722669656780433632654438851566800712571156294723541268574189271711051848722566344058521002000334255815869681658540535536081732556332933591090510994148370665940152915319759155032863916037128645581246802807485481800567650956989923268622900334666263783094676817271522330743643029790262932655796169798920316519011208067359692802791140380335703147611193362073071254511781498505660326145854484439469979802540883251975144004789825437690632852732664320944001653174584457638372945450608894940109451055580767902017586994649204420487369357911799469054083990802952162433282292557942286523796121355492386626730342762862915963070323560167683961894922917657802328465409998668023113017420399561681211007109965490753881411594537539043448175730315691970183440871663704348363929995680047082234729519132801345357366396600140283195774593679123362580189928615678187207005194566131761664164517184539080612469985331847656413872726791255925765047729280124507396912437454936729374190827042208019739482649595982011581846944262129118420478634866408625725625707349976380602164084978723442348578850098672330540272658890217782744671573583694215290004528091473846244322061217605423375703873942916345499039626111929223602737392258133580628846289235527260215286655168083910241510949704691868373417344866065586582781762123808257969695746389609838666952099205861194513336947506809154129287686817111211113663733490864671649479165889798937471685343201787228547282855335932065375413068345129758850320368376857305166663614799346249042508763031730969718971715941562840011912501199111027636982072519993347407560867729768878055062617791205885988472269495697461793603219400598706952417285396562181602754638093522043809986827455526231786664848086641145651319838580462207814686579011820600956111280072006936780345215460865627868644758614112885285222014093967246427207706987557699603564572977139589331240241890456023662870495420293791274289583004529150028483986274541268115025556329648997268824060220179450813218564082608648015645400083223896124127242292841372459346875422463891329373923316300413435755873482659513936610240490374602960882054664721665362609674839023408647060619637196185819613592783278956847125102925911429878845528031937403527044162552558054982552770892777113768382615480981794119854014236370517442344452855529407134882833873041082937768829311092810503365679314222492149989919203479134232370477398528336659461802565210034821630175058383844653747927651664026320370797043468622285654743113811502874481871221158166766266777004709216471532023336246868817879199871317057926670705205411711358927527769113633409181217386184947765523683327867660127863341202493869113492615488907909571330598820804397448190833437150898008015483527041187185873907245428318080484076745736531164273953692491916631805505537266910108544414573482905967096886382101863025776392369335917822356196227435959101927213235566249607470965007872909040294801964423185217322068156226912150306541710403890204782998038043770867808093613257386679392269524072799565269572757300186241219864767192141134663545280951894974522260862392375405906023136649953314629337949228164201158103644494952448973619364580324632210137735494174211705555847400196999603419136029083707824814253912362670901795448961237990909484769487433947824158284442811150291279370403142298285701074939347363089209394499794254880970551299263841156247568602371423551566744383689588707002435738616360342279151131589890451297976624557537317589122221857006077591389631859609650026350763367758135489138892532694264214941130894397324390144811597847165707056961117211899101509245288932433031839710062337322004123055971619744931817607880690366024552520573661613155557844677630830156664770718653405843495239933565469049761333828879873468157811060773386438671196386326528946259030686335427631238501893697881269861183788025987634211742631206657066142940137560394647577036173869389745574252173555851782878695464671032997751511823984294009670315333460667675903340205908450158425782512534630954756991364768842149255853627809496573818015310965343359546752885028080367427871847462466980985209788273589895680626000718364700581573701355066576888532340671958742301583045201975035544976424790608936129013406789792685385722784790626375363022372535832994582139865167836367310828513256855467132705967831123307493020615966872122945831851771859679822234586389546539829355363082360129246213071432446186772556742790099937491701823968333064870918560927171065927511766247388974317482167619569802129122135402481747180865450916438020090110834402936048055001106217378437088887943433046523235424939977770253522124930253931321265084526881803064118577039248218631600959893523727176419691084036959671835066946364582317070297872055580474950455882585963671683254956987495785005744259124395127938022646597583018444480132838090160492691834767264444086216798379254490033452739214398635922016115041126328309622499911827520255669764268943561193676018598318933202139080168715499025886461083975391803720420889986024153677333250516338795191348159524526511607417434588841550258065173455874669880916040270951877302478868022523966076932016577643937570650149369841678449346777428281338458427954497071409859043193489962798699450844085950193722489720133500592298952638935076782998018857411571688841974455003466966911190003873236614017785249333962323206830514152275121583755819826785257721745442098435805843521798235502877568976542590853341922363087038925041558833910444693419471511461946338871802185379191801107741698529655745589316179375535689378624610877509734413019481683620640372453272576447113789762670934257423724220552015733310880488694760961567895257792257272027086200318567035520753018456470266976810208730845136345247998275934744528114907300656978350153354551807449406469809439086876949028900724437801073070827804126514314713077042162368032006794450658848859555212682944938684520664624487753974948548366933503831024298799746673890930051335547174042092934208912041590682993529399962855891372381951983828686717004355775218812796191918550857061058904959383726045290517526964339065018428769435346406748904499631650287903086474047676932950687626837535619710472127143765174866435774122066366290502566430997986987596590603094158544140764119567323172079248168785261771199391923785919367995238211478544980376798369299419127144862638155117136952166956220298490560187396024406900494906538738039205303780505331100003354732234953626713760381296831009123935209689059500779445230377764830865971321579562086815276903819494337959492467912081170198765423814615625264179712490937504862854007176834247107200606930194916590528416156318899130961191489318303839907046494213757081162708389110991285283389342816507321327125816314924748705240070851166446666282065948165067220747579294151323579923646953202979792683218894103276838170545811315175567370451916786634999115355002735765011896621737553162667743715347833425223768936803381788590551689418315141952623227792103803710187342942223463859026317773899872365222616091023034475914308721066423744650042679888331041152232111217544741289919909924366377824537862771008418442304155480188804680838001762924069350833037914657056719313356528813913148403986986193465555431866909865773239120479893034777391853632463370359804135432631318745404482928870345406738735690841701741147717043952698186836408618835169869881585322265880821957118068878778098108497245588095865593755379540575966258372030265375222413557644542256084404638373110869185058875652553139015302766393946093397980862980189068408811470352049782035736851454537017601247261723837851507924593117620354758207512627297457265831377963974265267981059592738637092564056995348371523943553447562179951471309043581495644207735868213842547903079492026725762100024811749140628152917173847859594549983826804933616619716959131295068812144146917952382361370451579756874818739289876131616538020344290563443211202100391955686736637396514546192788335897206049503501000010805779443596035288170322353146785445885267408245903010808542636000848896090268578080947377937598181901135701114528395949022592304893542356083263157375980930923910224189009583123895055588607718258860359648722352298137043137989273911350963591688882244008047633461443508116758028938762703931597574823915836538790531456063029365419737867168337829234897151612876571423795982309085417891643635961123839869863331382079569900204113637174865159482035366504597635113996718606613067383208566602686709548492085027301261561158921033094917867647806444642144922969379993338950169776838023319300620551516878579834563006832715552732834689694154767309531194299522786694844693304471407571080030494617693646315171190087958433005773264814682981845270557666190648023769822197274725748041564675200640604513292125752291701810102044127073020927768119332253959611485550684300575887192380940027534435282802594480625003336697022083821160449641967152339597018782704050961921461388978043086628920261728982205298598461299538981673364375058411288373845133001030633012400954038307119326332575787932224714240683327169789727711179773739166473570987498011849733646439229834839500381000770786793603929808773212797357125215320190032285482391992008765734068716471806789400966493819311371595642346069118608610696391083667226512240528722858344345226243756747934400471909865574698396126082170228177869183721229624834497924909061980496049340413502696214795800474724514920146357383859812237720793630121860218723161568089353279302593649432840592462072720081627960803452229026100798835814879842647112082770991048443566217178061415758361511833025087506118507054784203794044699307325890762365610867067981524792667713105284754847936002091043053483438766311376264983849651532918946343537804179730118759869552188153659979746100602058196478021339794114297572604045254843950521685039183432502436664155053981794009727168082728044338717066891409862577364380194845803887668910773238723929181833976739099442548972042310089988990117393270498070460018400577200039447954055776424711343000824859174798919275159195587816177946857133878575168403342665759973246857677310012188760265154644517026683318571391877691426968555010081899357573578044329347493604067080505678733070226681579345841955574012552373762597502735294739956855072716494232259644393058794906996567824685222857146334817515955633215096403676595752850114137941909442444035036327337887193458948235325197898650079272836400961882275545384117211937893167901964438638650134136380096702957365665136085185690159586506247314081684570058650573921163218010571489067040581554242162547855899139891335053433396299229068854839411837941773468075223767014558511316061353800599355243269921785103207844068724028409536597375305760626238921604214793814215628167102389802307299371665296177188977403104931873735198089778022177895847829822805976567133728667276911021001957052811997931712358088814761263306534281915969922144272800404998504634009076442703286116967983676125428417374382311716767289334222141773345643225316282684752302947257466888407482204637049207037042680096433532802869820076064816292730415476988262652606467154216576539491655468091897446922643143024251909958114102090112510074338646092983620687343388376385850691101347344917148110268983049637555692200466363100264992618591665108418802322169771518036206727461637031294016884358928464785558667670871958806158016453933519195915475295889784657740382424915919299814355574682966618798478320970283362373712753937425197071717042069116900117962127017718205466839229911966185002444310042459604463408724314440282295469447830213302531060321903575702576510970722168388508841976980625142403189014277669341127952477612489118046077363505356436604422497261830196505674530546075276937690908757663143319269526768207118889606766748806799006468042011901388743014297224282657212147989906003761503393837725580855806751365016080254133309040884892841016344893729774590757613274131535640563357500048280148282950778629024677124071064695872332515329338758081812603983436727804799845946491674661545590559978858936536698817738745159638057550959364506655338039583369887496110996448044439107991064512105826193666168070249704422743486656566343288858820358751694997669737347769032148283718988936258465705736550272107945123776264333544733635947874444026564631111852655108755108397753959271618882924768181967939786459119047189026358677251915407890714342701582434032515432107124324187712951859006637988816032144373107871648512647318450094666660085974411462583913774090423663655237549740058501517088124846762801560105992461032712495044857206410589527277785569372685643129897506527491388410833093198419095629315034755605401822201251048624231279009202989370209110675246780480702434037649283766652054169840423801034642097574013036355069603350557930448642780705353187012825789556541537495875257761408027802956739565044616273343110497845754294887253277727139488570853334535731927397294264451703448580339952181200554711771664326175970974652340696610008750202545100449401476590763706709944943899756577504198027759361934220949905349946697448049967402979256069207056050562565312898177055808650219384798486412156019847355184718188038140040133230244200597742676649047445726343251771283056369732532189351486699302330613840640793243788332337581993768699207005736904003693571292995180561882312415285649440593056447996109162038319328618831150463713895568713808732022100550954613163509342721627434276486910104559602076135011676515656404452907859717455024305096516267624160184005397017588060863608335317661041063574133244179157253762644754090749780346847940746819411494726355226031784347398769707698659975085079194378164128219241064593559817401889625770870836358817604553565968963959703187003276009742694646381960132848221633975088342369880086416433970480752510385062309480048877955266165598832548365598353021177140031380831449372666569884546984895737721749723432496184514906450129642048603236090307967917713435550989146373878633027840514051947346971847376160977419012846033247020850279772917483861552218093704016098282050114984796721007309179644981322306387062622801092971220597370045465030696722706032625056584405573841635517203724865263946739795542016019212652524772698142316405539736303240040458259439445552027815488114960982432503130440331555628152328768530366918175165668945559638303277883761362552271811883574452152821369661221374072424690924495360640874827203673637034887546410182522612984968352604920072740352803465716105014661285092736074901120669135124056870431149409427552638356039183073272731928112358517448933676584003957526527538991514890574095721315815433551383138935297427140240613770646659029193684221947745732072485900275397161527417560810623070627979605879503476430842860008068977531309716461615987470861478455740411851955583442211682663518117057056459313186663593573660955902419650864971336457319200842947057044961295650311192955436910605245538437773368841947259958717404145517910423153943121978091362412259928049150986100349559018466676846529970668614998164466178881573540757242081644291775139347464686995961786393832250634906552443871151131636104797235546272769447024769273725326719536398536272850697212764474912912602114300099336274401643028096222418321438553802462585337777984599747496309394875848287973894431923140717895873513709143889525490838111656857302279351203897573888730744118281193679153910975267203679655486440216931128921146034785815747155967868419706258308532259984806355742160726990295965347476029860681667877223292343524747309342674273691849161489607683559432381745194575295931355907833159313434295535028998012844737364730555745609694452496310111363938018654129500240389488809535938246820996755404179062927851239530064987851826033135307494117398687735254088986604695954427394763323861923829684227480928966421621642660219603689726910414852560526282667521599042949097811768821793355300724940799239890848249801899250797868132125255921040547312258264322275205075717580483664984835735130763552660527651960710409482786512026277373481445344633389363968614414189217891621864495672951757582193843715951037742004591134141166042401545107123593894088326803952517363763776716202424941956448246337442367686779449224462609537720593870880853980606704061938847962867454427085799618093918879910478023503952563015597899243527718497049666984577262389025802426100962744408040848533006938141649029681751668519549370585045039150963486510248457672515273905703411237762509955335514702967139939644402857703333495976751218900441798009989778737156857549486021594216953821206878027248141256826281857365344109449795051586066399711011950533674799436979325189596091748185458343466685076360727325848504603989610831141876696353835941119999148848896635914436685179392392427303290052795957228289865005608709265349757871940309314875321161533218868579820955471662874991821315525377194925059504058560827535224135069704946761663440748104717305364428849563334749683255382956481733048534361613265171360815282043644486248069478054948030356345686148475011216489390245343540005339185499264144188460888400734784182974271099257772225809969388269483906419297092902509443812872030594468271637706571600661007217476534169085126377989447182569376379197762464112335014483088037236049869809083693808352092193627678187839734320174842404039712082830033004132551457842551928473473367279376496292151627610699503327496089769754881934009179659338955488501523965131209399166014484496937581572281153921310112149076715227599581275118843572711742570656643185106959228253926484214383115414956977950379892914969031313340750766749414975617122373179604560972593154309917247369362289366236890717328685954078301821418276429457776654614751607764703801915836420727632325378987493574600843355643064616275031051982739589546684134760043743967092657690782039202698170868310861307102965583417105267647667050474160490215159588987922684973556560073185357807405133056365451102117361216796217132450489014272918433304567153787876525278463462501280577367645274618315270043892443918840891882062586710368938180610677875609324871471502641921013578208213220266895532892154372076484070382586644910563958732784769146876685228458634729934468746956440389043443199867814229161415533155014815994494715022171454240834547699786571839266075409088647327611072571380245908104192937130934810435261447314982911126172930036491606266615830294722494697214027330519658938563783812647359062482231980878448739547864448034920663526080110976144614966560505689447983334756551327955375337314135111670843400693244343217403885963615199341909121300614023801859143263552989562310718565590977641136914964999240252305467159317806483824336573043082550848259040363202496780280046490105874929816058522452623669653968654256575766517147881649142220188572610795753978465058408675557481007482905028748413822697992398643066210265954786365256284969586989791932986373504249669752610095313387950237208365822998571913286048263182802945207850249087284861419937119748946094020883126820564380423010429287147396149648760643082667357595816626090276705333258949600513470595354210658796753817707534842963497308183069609535042874963727430036812628390400396618370935065501156089683189492649175623988777546618996793724345444018080764558995209657047852064341284599776075686426532979533154043555249112824053765377320063121669869285952007229929803207574369492690236753561998871741363063020026450735389750427923853473269378662997643129544296547588047369603723412974781393334212660058426622852959854702378071174556443209889832487591742090747184623064638455744831854002255586725240626111678968209616581117191868433391957288686782787704911835467057049896750918540225470339333728205392470627841197743020418152604617704397757193449744763541080309596264538317826394361187788455044775133089166055385786075068539258422192829389722789460669130121995207155261549063258151336697217480253102813515039159897860974472515529376004335794237399875411250397348927311687236865816416782114013522676829307616873848202678141322315458175085505241428047153407281160112506972482059704988502725661700122877131836797734503083364095119325240433412144381776629221035857117780461683459105698359090260150809926817944264347450075667715471156221365205832174535916735074742054754955215507978264983803644152887857391757541456800522421809596628930246826462004734907275648183676001405423063365313701806038520401075809876568011610984113228967640147902913041020219852010385135630904359185527770694229054749974844747978904749394935175647896285467885916133953603151318424786550903496213680947283078509513671901215946500907947305015114398986622637270663479200248296345793134124705717977446784146249601439731356917561900665719497506111486801252740680122583277460998711361598840942607818686670865830746547849249789116295623042067320934766884987563014043097072201540576702195337229081607245520158090252508667685110277483095765007377266650134947380374385848926104147093647718153331105296419505488657591309019138380620227473172853437767287920859042864120643517371832950470727956377742040265882110160157159023245205838644086556450299595887580862249960806803774582021527404918213261271092712365861922775150309150168440383823146251813436237250083985632860141873890267148332297311297236473545334841343047645343135406726854682838997061910433941025569057851117663076308922724453372789136449641381053133569693511656395849763184471010353794558625758984970415467002026074011910137700957954631294169917303057531485692587328806085674923833660588897920145041024529366341120647895096837806222392931299326448917991394716425885504263663466679190443108695472772108875207796193998239465786205748756109316057315960612778067352072960778243008605511797804586301676187719273956445967447704726336058239434432602369668670337448743730377191355169411640152394259888804610503802610351081501243562032845785983884219611118616564157136201417547200133375317580605920082393187271929181062391034315199918196342901785876690157605568295753181891493038633751579533084709549606555858676653545385356986522465599599536061799645411425609645459977870866655811774854103522262532488938707028640500711939298668011270341309786657998936277508055792890559022957609609820875931568306719095801681453104443628062353369892796166183781101136938838614643200992489108440837361101223539781654543165811066376334894359533470920317630121521581742985101927866557026643326069330213811177413910981151117083934162259034187052332090754712741220699277470674955730162723936771110391169410773669884699853926431261376367148516688133925108589927081541090804947620032029502295682002690596269514214898591260080353973099914591570599992193158261272248458964955928489976639205324124378625357468827905348095849249415539508921791773713896250879876165956247959029098468458783621727906641501313369366158940727157614824770038809537203984183703405209552524964853017343656817166157063278304996414173463991051537421002732020865444019324159864856789377822320518274339159738801925787220534833521424252753641126676761648515542167106893680477552135192994871381739528692537544673155660345130506292678530205686451739680779582096333250589911625377305438610429091218664021539988291677625957241562756517486532492002433627559291066227667802315203110949037662493925910668406609442604069694355512798926388205278714481831860980225327824296093738177376861954426752464695785115039944860788809685624871603228311709637652795407649022239209123567880498721102999583316264644751941705540960018994523030342274182747697322285430096849014419135920446580954514135473189573816879188191076307939066256837984729442848377251526153900891391112369135477558283722659492454212097191733360290697043016537554221722561867629493734249956742146287043356494345054928588490335710624092228196696043310537071192522775226526407077289615058249618179336162681969475687312420044340155989428753823093151872760449858068164454283020909540764410536261327163521832442538163454871411396145371342477875781363961276706358116549254411414332787404739019735861457698068244263186131943630622634929791732818121767789567787500193758475389809704525280396675960091670948477353760524041900847919043457960649804059995558680596912995903899585393726732573187345955583311002325321680359277097655120890076802394180489409910574337132210722334690361149890602527635432334943688772228739880476214294880078980497985199721378160225507137677197889702918467075613198747384053395029476081462219820233894431149566932558268680803278176642221936223646819338958117909888695200896832278839324915934949216345702184498894611637688624868890851191165362638302418807293306650078532559615529282474487682090134484884478171963332974604007429159519525314068132407381277857585057264924364358228081047599406217617829663385643690673645665879911992325471845910201869175520095375059785874505953140639468888465193310857410236557534487554071191128997680480323027474590477311326682778894723548332606424479588889925965460626428001645748643387589730274624167949496814033299013305463505913014612926722123883546124374294075498005939671676056041159822409123050302057650314642792869912958858903927657817499143556110083363119914459259916048862559309259059801632744258882223159228373736374417353638988478102567321115683940398056427563928490169070744911254079590894542568886530431306200201317051089373758475824245549431027002335474539159630018521735870401112955327222254875606060750811986916245732821434007161916902401193282184854281089960193089833551830989460962455792130611420720770475099790340163657669377556091640753505422779279432387000605637438857233238255166566612214079252215715222742014045108862645732063964764795822185322102272974475927509538150190940660694505108901039977775095622002563262987477377821722102305288980384616170350798091491869798277399991143267211761934050322620493511096627236484179059762761845664540158944415735680667692617137458426296580771896137655718495764254761903038347975728261213400643154806071727320465402558147480827750144866330974394589088398821722661029440917675967350689236892771534624161927203562732272819531257168102325332650832946497163912482556329617228598469432144225814611699370511429601666486532941193859840759552841747846789553924084425662955915603358596768237370557784889869885084549059802113166081829262453685747657546559271053903148748042364901478556206659848419990039307407867845688604325200843658150305356609591107018739993154225422488158534904923227821553142348003727236356565380701193036760162099078948414906919994312385919730887550211731193626282530675673490449962720728577099223375768827590494132777341781431628233953225247761429184347797073497512548640218489995779295325064462113794082729575723333835511680852876577230514690481950775334053372893303794143025973052917209289361150456334858810878217136143220328480215992805813382304532726626571072144548230443680601961255482319036679473928545648371759563594358733185319042486777471290971046459809383864429566984849668417196878462344000255178012503447352160051223421732393561905391581511217010072077383501980071774861512248897980713564038835737045278395969664450425410661041940066873119869817682352215103204845074129594921179692542821797140173518830360271822423066257928417305620517642344534626822807661440787902257941434537023983269241151237894673286945066055107799498020126570589481154412813160071634865190537826475351826652223148416674167647623641362864988736601585407609914144479743532917587825955536319586258121628005231463096916841753028982908367411440652679262651479010064834345816950421417563840852579187744570610549090860110043896107900640622679279868009306324776168340803040086690703658007758841549054459588559451201949806878518655688055469508070184648291554655081695342068605486021712078985516036019994513961432407273995624477449315391900467070035866054789735353966469661443283463725111628860986556377539624561613521929639468165254012950358612097212874469203610569276948235049518397805342984649070163463521243732027742048131349492232035765029073406864526385531125921244698248594537505765910108422677095931024518669583789480228878197984006265578755923597354431286689880753496653440881158088081934162209013348698626026841819357534705851075440223966398215840704697800666678702273322826970630502594355901224488284957275192397876903664033637303180354610793369063471554745943927960416596548126185674894231393071856775932462541471433782455809709875126914885903058839452046185766682488971116059984855427791054620900917607007901950090941878840693460046108724909841852586874138074609843981019259563115183513422385131254720766793775686875869317289120727851278601292392770506680533641361048569766648414237507640809593746886401886392264301537816733562267599339218417926173044893443860615353340996377207242284517593549063440379134366506026104104170536888078124227387787051440988544514816641623936609550128682573862093953985576005541608109199100489945579483091741872541822620918372969743992522320501574427714115035404253568188365410183754186642765181796767996746840281012698788041471611559467258065265419733090020736818292521826529113934489977214374835929065253637220466568190093581863770505464205973355217986849998579234388964042112731947880500311239050459219345104736543294483481607186883466459453311598911462890771318903467648022263334764375911354233366582179063690126221551955508747356923291564517980277520165318677662197150441767664484782952979671274817565247041473253731582795565651308101578440898199104728841455812884813856852641488095468749989981706310064720494429686179179045330119690536050207111665610899387101458056858283531603354611505553803036030072099647452659977092910079959400421997982398823519303858882650043220958254232038974805908108984855947549357361901637167317027008849266293350965840469701807253044878685873443146079216438553829434289787894137774778341546973642064558687024083527635632291758674812934586797113983607465529216733005004297013131295627204728157816924775559992923348680756637949674365900471590356720664554753166584774147814980655700868125456113022288741414404130966987669187158356211646124305667012394394735883876057352702526353713308223170215225798935593808589849759760496860278995270706259430824414954582101017735297079730363213984720553119737873121919317875898876504017487087144780451203797294353581266642588336735777179212182453043691289858237689698108463596889523362406879908565329328058803051548976499550538049570552323043754586660703984365360114378886379378555657669523738424720722385609126224359528289636660309640963326362442836069919999272962566716966225287147436620293666645357340235742856968216076149119250186959610038101526087226435160100567411921883938729480132216512798658264643894392089152036086877247513707686953256139958590000956586393164301464564658719608257475807917642128909776021774162510243832756298548577502524878686811803702877674851571769428611361996162552054271229045085404810592556637977701345951999795310227568058783272109816981801050325455613856752485582527145763055615273107336798499508008985564307416937976743581652747413192023988363001613935338535135576294105896552856478277209246570971585403768118241246477844312889598273404649432831078304407908675781964950041453059863400276986166482868940367737786741940464101041244752938254582803634974549073166422212299649402187964004270171572853820680470635198410737176281846355497415790427616641466087278993190468845788764106320233863325108032776361802941461313149406966620069042090551693341599177045049409287271454510063242847372912561039745094034937207131976653938142438088857828338331707502847430351713586759266439921985575618612205488157712486464438354363196316115625883014769321556758877044487563240988706454093399792968351936650712545978842592048519104626457690941432176963154930153256054533464856639134240953979257795338046640400101754348991198196868831402520428334566088164939138429160975864054319569519146319762522984884847203779071200695085513750464510483639330448536300678832439672870345606858548903149365949888856926798494205261057686953204538930895755900502670574152235939776895869975285832808877946555386254771109823137967454870778883917072161499621874505972241819295508254643903628443081931850419451495536110691143988951038224811827026868537097692881113864762336852221440549768817967245819724856496328800945190560127584479909835092046909845046524750169011540036836219548772100451293973752467162248047681189451864598376854447470426855506529436916623505104504269499637473977808411214559134020475919074030562977746646630562791511168121290612281480597661656832414146381796261823721822724542740250469696288610759332775440591620835869656550940333247183054575191497858164176943420826252139263421939843414445201753583098598389957343490753966044906348129192651920250261340180345881044532100425152524191841126303792079554824974117483561588189963656601689384711321347046492705248620510258596611437678979176945961935301693881024756804744866112538809484124847868553229831715101925965738099661060432543307352346952444964615697135472827082819455780295183645548677681614510769767913577396417877706859150031555404552871110302352857353048399966643997803184183361207942125665755806745534295485425003757239065277785780610851118771882562773325483854409347194758694497884362345889619193929562564979549488184876729337728754356600133845468860782610394941546536123629178841139585474665414064323168721026698489615005653927201732314475440157641457774692793621111936137036691135684337576329107890964931902628944541419861857765005899803827743661877568810500130873521939605204654185928459516516978931311245352705480342191984923439142993532593896778139841446326269119633441574807562040861955642790890185662843856805202093432647485654936550764983991553686717720577001241979072830322208814860218877149131570931575957962754946563526479897634467043678023942565126693107119838543844387706074432557667190123556086915642625290006654529086532403419872627169724516835721636412214442245087237161184450233163302616846817468030765648138867234821739338776556329888544006857648313329797040906326937252216624198413814652153299255745414507807308548562720897061548885441185891529631367943982311756503557850331471807187956191063903092633664219869786399886691757931812666169747337968305592708109946320257835000178882337112357326066187479053345253553427610130835810174581803914465290032363547701759550394267473011363107223559907430475192566166551156959040839744492391852910782972773356305085907471003274759515164296120657748658553775771392255080819469741297111263143061873688249752160109131654700253042595178744150612866438228579176659578838583692223543810621650842166488001842300427442715942391484024092956504194879568576355361988508311636948903811941366746665818666296722225232476908772336106056822206015791520698763620444425801045948599076007096148448608155284205955505660840951862654723193504466938437954667340581302415219548558589984292192669168496469752882417968068187751554438822705262936628685146504435360084919346753002664970904039232450947229240090993279782950643874114084556039433559781815657864811349315591802843492150738439876670451861067258298881216840409962948221950292495115242496072038493269891074042414152422973940212351522912834866418534907618294524348975649533194282368685919537974288751609389885942718082665098588524542711111049974172006516777516819718401177002669973120316241291159483289204917362460746180751904440215501172452781936112276644518900864232668604824296113904671670619869721918427059936584524773157231257264914109828808621506778800298889375320125649868526412998185364698158910167111960430654198676458062231198399808960041176432993621204013051487742052313979329318675596556037076834078833851876507645050173395985364746086674214538704938914517103120820326420723551214694796090685669314879187714707921157022301108996363850780336783611462265088621973480792207616466804264216542988486864970037559938641411843081660353476119357873089485962480436776119183971495122900276006281722506189125233604696065320630445758307830818888637776757693934526360319936427973551035055594959061216905952150240196744235473814138459802865134473401317311253134172284272795033067885155350203995349873793830892282147062340983923247859631842105763381572785485325478928050486293111508690931105599513237529806387977649040944175068328314993565850458071834517119854452523392766469956538940734019639153596108201289929647166650230403805315158451967497090200887676600232682729473205070214210908852251415993834841894936396224463247277292253719552671015469899078119216731742068109409941179590709043215876373453153609443743250239910630387818827950800573943070166394704395242912604028448202500200110300578042431547344624276955803377768438217703188710006912163524919049394261092707191732526934343734900504613007817156022688786680846362582477534659451070383357425101186585656850446082053507776509083547235866458872606301403765349490308803327222365303312164346870632277714045550496690399590154366928567005786095053733312086344636037208227415531904669503273658272852907540118843023277637182186305903204638567857744650324145600029514767068347360490035362322947152809617149271424191596479381440683963043253018753935170116453009935238649020900272420127700575217000060403965944788264149753110766048352838277584356614769242237901164125266462702595417913476891632597272080106999766139795096859043153699683136976971776916991583148408050822801318587141069605564347007958527974400173664691986105819066300972458430273706273323978294712476312689786642536892241271553300347105450639416808960698761287496135856800057006155707244185307295436021327237837367086658859588169289795369997673422303748615400945322996042995445186107891831199511047081197619484294887079940944863153572569724784745564890665234849851095705522354269717940563080026316058420377505959789469912225198637821007838661566246999724749910291490036875381472712822257948446047842753154020681012620721085237586535260823838990149809355250663970334478738750439251237612716819371913119586496114829822734204210408762578694693323837584489618163278999118868621534497836923126993956783293305507876717181891787379402390953751892398800870302974682861707056489600009685905772729557517849936034742672105938129252420121462427263824258695513848490087384858154674744756090974308160972597398827306926380998847695215837037472551864176835036667303888496339127267672245375017051821403085220576302850265968364527077009772309351138683642583736074527461608467346604732602122570797054247557666412638876384490143450189715011593202829140145544983660874516934614370410456487322235117214416265376698798638405354912108947374518493831428575307027351133073603584481499500109320019812253131926631985425759937756279559672555387348345932436955217005384635623717602852106371336468826355654587554852089061357809338386377172667201658057896117976407121655596540938467515026798504375932111028716978451711718929262562180004137115944377581066450682297330432317660339587198214143912502091158136981033631140237682682701967225844825291027654943700903972855357188862583386402313422686424904501739810582664173491138797839436631345261141288330309953477555550036822170089088080633936964095495574537044347804747146851174496846856723290804401836962722596410109124006146275881809085277011584306728241980676542949345326789480842066059468833554578782506771041734392424906449689756712792761706249389812500370849245457230997824342916391429331018615486260073763678967083867680204222587644843456045108484763467389360012569798284288583623712845424775520228075036822905034437854182974315646049034196558692253303305381426934873008871095671746169413289977669685286057317485790362223248656339170061139827629294053035271282540492709706155015105633295244003131231821662521315729637039858825552326281060520727933809947960243449575917067944914344125179392915346194374306048318704384067199450471994086946637045433024613406192933557414674689574697463834689520487291340824941411512718431781901561793322112907658541781959602703447011993112479268734641661571287351979404737804357965888053953785834777762065895190148731502496864032586541570629327488163979855593582026966884162336622610945466252565918516157404232883716714032366834450193707778168464891568238546922659931393376137630233765583917861831278924753172813752760449777041251387226116700844880423098569257944305468593601077451610035193617739570907668072016590415689490253551173541366289011045013985502871620820783288662137985993659420516722044692483612484875994320216613907624691821023026982267605469558644279766079002890503383725902846093244099150544951085671100960860433515346104957471180201075306943798404074553040016869784050930640386213022181548841841040567591096635719783899953424054172393169163380587245953749861017856479857199462181330217952657092589960514830296732303134206253433010225009007017420255835265138394346930258255182274174901916854987261813576697545286047759866288207217858421843523063996127894462813064021187332972333290399160822528956734452790203625924155555224487516608440952904914931510879964627981823166034669760593970891917112532354135685867794676565699630889395047688790692541840187485757292418481017854415724386337127152721759076472922968041857489719265297272278999749797751562477878759284029680141706114868660361642922213311019612184988676241219312097184153311188804095065811375681802917651282903432334652243817044686372417730545544520692910453655760250090221939139157136046043137059805261254401265697344491711087968002341363427007622179481532402461748618767437399067453986096967362553453744713615422929721634787037746409476275239405461875763307000419911368045139669630682968215147958215464192011394486183972039898169355397401670562636973995919274461791968499631784502635702525521135611554888981104082214645407506726783205502598854778353556468344775390624362352630224442537167988669589080624144221114348440142636005872632006558518935170817371836937315384472765840262118850290600399691731709737728046157722734505999153095400506393012028091036717852590091909967348046580475374217065948622829064491353303020598466922125067220102931894665762412250115863906771744746587314840600699376727203863490997892687706949627370999744872697829261990346883884175448281596823602825802346532233751413397742769601272408225290053150420195089669367312678903372349125600538947204971315193174400210676617187273530575715686099223760252531714120949093193882456842769116342854630486617976945169310216155587741168933020655028400068085132054038362759245187769064561581989114836347360355504559331984195778282971588140690420882197592975203152379503958863263342109698381400094817630004645565700439486274432892525383056473343484123007740350237667854087748862477419683168753775255104257508576517783081827281992846884958860175733472072576562422087431789806591452412470934614332014083981282942296676361328979570174553383832803126192888436903037749329790572260680498984913334318819246922174107949724603055111800641249311320017657623090497682562331323623485354118879817804993702490138247114392941162979382928248257717301843765662131117270225360777330258640672663924164939995514125435192735970748054218334359195470452269338970173886724734704876931091432991546329321609030725864887075196610543883654125302689732123388947201026786208820998343332468913308182421819882324565042776176392835387768291698245208252115610513269656084706965358252293340190357675987036756135237411004941881087260910533741677866025137315798175567228603281758130639088952359629145555288224190767307306541142766192657583684899981193144326786087113556715683127817220997948978042089906515802407459359956265892778974405208703707724185925141073898550379831990067869135996479748659668206097712266593674064579088295963062044884053245324047050332482136863517906454255694697990711390510398965273830643344208159673282090119072100601227848508445653375286625709520068059382138654615871644333255916120882392576603625588980398078472177673973181691741635487657742813536755790657183302314168736951059202430909441913877976041545126502456234135724125594513289718505842512657537163797090890335708395300401222097323349115974422066996877768733642700611606380925102088584885167845107947869627878345555423129938281274484596843700281765156589178633375866564487160179562470687800411479780965940655333994073108186882240566244058384103065328908693778937296183715230116358305140226587652800635741068638117015726940113964296583377318122442280091471610743994317423025663615227159454152648216572877644514672147389664380145343281674146483789144178065516263877008360156844365657594519588805751660768873625259223633770133651777774327029956401317407318223416316433184548381417144373982786906150663451075951068747028594401215846304834065629068250305871323767104611948105844430754333497688554864502681671280937046668732896723447932042405924207818378090969316946815145968688011271411127209192743641302242260534680964591494802105720582237624122692813316464094894604437345594937580872484704176375608263821744916874632880323296581588783170255076460299728229038780281238889550611835671005257857106142202513595874887961179711866642498862161184451306632785330632460471696505651727511668009430558787149715866107543658605752977173658063751709686631968766573607307680989197674763237773840897354395113552857718354863761029755291173877582835116773335259870906942995313656762282666668976918870925720828912155594487742172846882843292258332520042166869930154817512573004362387342567456096475225425910377074958669593082104397573651259227665764119582207344925745688283213656161511432652480877489399878654803795226277447987046262680152405782010502747982363500692232258915807981693744559753457318356346746451784056319568492020891844735476633253718956992693237232494575067932087745470971106279199819838727971483149477821688071087196836802300300684517113539472916412067233260155486679093915680478237961569487924126588234669982794524917767323669302035257533729276587416423058506830769530559988277397688865657893507749026457408065336007065326133488555183526099877130658378385751281642222964606306289977530732684312675060800897508271274230672411474995747834570973429806769457297913973443457067861423132375067827739248306134350202245866172290312043916752667929541121411638849213855438236040978868929631526179196444668622924979036403587356554185107089474453406696719172498203626033207040552383390790796379415800512532688224674900717069276986697675878019386904642706152909313017107001231074422816126735878610641604016071386341643640777643095043318786778157123428811471899884179597424441591854958995269391997171700813950339385351421012352419795006109462234670924818091588197056419645194326961269007029241822761225707908371004298100672823042526442324516918554056903378887382337680448784190626586803182411766929137178054677404541189039011968568440759730430359378463013123863745194032062007183377311917439975034604689299983554380475717552987565491151375201726276422678087209824158488211214631565075007931636087920976110458008614284723857138850982177509642671485989669732916793391122763611911184114137118183735870617587948168914705244384574580696335838449194326044374498110970281419481929085091657643203307491902502249039317523084474071559268514255492537351782470188454231098977898213307013163885939441606466587797272872642931169885998638604106211383950707298919662645833964614727675628923417564118674874614549623077980351102993630406518189904470204481073713995192256988762804206886668445922329262713635536431664982492874001217146254439533113160137170122849970395064580035917991800342278120993425798416188046608052391970058259268929437022864800654236872528373782959966534855312250573889737756922720354238014951978541822682531972560169263599654615193282021969579133743428790557002273050470470922183349592572743061176620850571893757344413748524039708118826106537135687897435199562270238593047052376122602040953843380858730027036995791079629423385379712372546995432871804958940173977305173559758673294510773306508250392661202751018150675786911218891833917692888300523136651065396520350829560903478216012124969586799972420273220639808707167890421699273920616181813332305420335550419796268412416179337493318248118139897802219278911543446742458765036652073318727933882872243028819992608160640935731227023214059584484643309688666115980178706240244038764573880782999642255386414350314203306425487863289290476517494147642254315656094659385822374505761506122512964896166169984947336689790940928565925790655634956064782185166951071781245947175050149962771717753305125470845044164350485246006113520986736323015699172607640913520030905781350179473020611274481348227246116060038295678503232478278571865395086973579697753633307036160889482728289453089502101896773942497046977586653397836826151777999548947208997867584608844610918899387620402014540078822039050269967000494131165254640208352790577038971922313258509232669748953627410580127045474683465841137400092074963463080290205699963364814131112848046680465888108437368895230094729869572721073193400567207179867655964208005702663759697796293570972219243032304004125355237900637965458050190768046241584742857009697110685139289349135307293388749352608987505720209798827336866102615288167868000019651353463573528516306293695525908450072790675459641088701881324270671466307269603451112741301208511311316866186259472037590191380752499856967775056362855006536069848416072549513927001292651797801575834400455028829118835313930227729812265566200262512083062629227283460360142661348519399313386413085994619934085044366416374762066770674847450156737601784726906499832568248124027752634469954848648584232272284116934801674195425140159810344692873389551874435688267464962561887439812124765328362728190398500908067035942448117472233739312330504808176782515135275333652626918368430307449194052414461964981886540684233839280428683757391580350239397968418336732358438446962171514208887287329333201693264865379038927790004417800379950790582112887322445956238437562636946471723579656598487053163235306956257302375384128712721002045979395820043812226383241707454812250085954716052769527076620986179197425831244851394588531033212362002508937633545565137140804437574104042508110383480638852269093716775214527267293685206906611809335549430891679274395921102259249768433556375653360243974192756884664449307635393936744788609552522964585333433264355537398635817315216142622217082154083123049756028271090352411746659148062332945009629904554113750457443060597650641068455608482342724201497930097532808032738626241224008521235539573009814992358785623121249586492045750594041230371364710622085430281412190249492902746634327351630546371121537873485532402500629222756340475099234025272464204944004738831391895020337313146131045740045267840681798956003397183763459529057536910814027015379343983067188184642714277372675195765850122452183161143329887525160974377812854836649809670411586420622265033630090368727279991688098211353338961457159214763302935615136073747230863404572390495454546469770553450165826024039714593381797818361509064463374110373497476157997867316535938283964513723797467572482835622989725644016433227371904559411523677284058689505401220220913666142557266729141979114897604915476097657060352160576219521797039013855850726835377140077585568314387917603040563303712689653261064969824236134913050662558856842723803296284773906649452789146220178521537234024596825982709668121603898200140863136253742148129011504005582116140810143962060869989642828263154091814279809703120323634476465908334776797862645995428790553867025416664707567102077198222645691106625448496644414114454785849341076580238793129039676497440036070073096033246866174701728498786755451751611964560641251883741485535150551780295093557984639530118256734958272330199104338646268805224167071665911102641489040922200595650371169359589690659505666267124697506228281146489726792376764871653451283980292683543007355878474701083771097225714547290393211224430435668517516950967333677497208093710173920487393377145019817087580168099025693716141669638131262865119810794751309633162480828256217981370833776035144821356070349756558393046470184969027900156042125293804690454605402670712880754228430154531388722489390156956019678352289393446434504387552662506010698316464340822316175151714864147603319446641449616080962925624750067436453373988221239095033313228278605785530755374649875619800184514836522081555767521161407718255672718471631668666318737205695764808369113424715778719438526416699647345393545876431026012621966606302058339944309268875913205032007660528577621003736788710981247962998034473015209764974935478624626144751112524183213773791031463783815972545151140042314205789260598936410475668749424064532494252433084124762824021086899868292356818078242124789681118446891571296073528769693135926382494334751721980760903524976105599658951727860384520437009210335197034437736098380858320538879430459996601805404033091530820311536334144393215580028060028065172875582801921073703596294694223211606002304358905538585489544215882838351182276185743148511209901415470872639936714320017677946694112478452087551452765419187743469821210438616672671520272379733813857510064489697910616126993692500058790554468638670357779418742960534495724808435368748804016085589999069448298497729508618278531923899371853451887266006923393219687782622502820183502635137777128518465226502754662008071715274482346668514859196166197952665643137433448711951335608853399116021563480887508591563984691262851494184953684622969295996597385230657434485158281825045839677062869150669226204956033901430316521395294269220525467011303376519992273452321362633185988103400939234645764793073471810920480213762669118991071969181435127792623566782806512607330492665701808052601749901110838493710023247413184430917160037097542952517219811972415894201234627737085072608897474024085594321447071020484123797310495864155883893558794993339204115694077349966658418502980228692085533914628573304125057315514690819245242957441382650853158661026032418848081713728191023594254911798175896871145756865989230096139447248964849970923031874474124347367828186915923713357410371667864543662557191904791529190554076291305655223379802386032425393486948814806428186076166241069797713494875449350095099527826308405617218451695482183354949572306736253985570891851025601419075029850507698962920195689470823191204069467855233616320731169031823441487657898588391734144183134967121244146671744277028857688286921517701996280932567307973553231918993456399204792219239123376954825250585287330382510735252761697470320774949714712572786475453894806536504902167724939717280405356111539038841025771116396415016782004610087535475589949852324515327189129607318580327136291494346826003055712771913045039831483436183196473148740286304380791327343411905311252742514732360338876596910800575918956843440900895740550853385162244314458472047051108964753427433894979963473298014284241084130858297574857134769638801487478464447672453485490024638970539601979695016367669911940990451018323211616546884787406655456828787694724071891535866581423054707916546855322103648518261590519088969692128436468850917692563981846607845012841454540285557924593850700100803027334691560436452883627824202114659511810713078011463649868464022175037978041434744137231664472976332837710439826548018751905819673637495725458275572664675608504960840516434256941737983172387457799521509951039240031417262751921639670283603248649574277105697183664859513160926321404428721397284242138027999020345167963715950796536652280024289623544349474596986168112074531416157614615161000054803171694989906574732740897156179059648574834922325885264968502547297702659799059743208451315783104999884828536065116957211947175206108429678672333340820205916396574692166665288309597400822174175718504925602745130440468915788562319233034816952792457272243932160976363000811813493085196695916864993296700357518747268334342274593362808618838581984863550899785813052131373230692655306496425084596823854313877322741151573448432220517987888244671659207630840530959003186818295936566101687589356288493090715588513786630184364728159778393014752771283417244283056876502549645016684037711600784023834324475830133693243009443479634609554152055708622096288444615353725419614164488767778117757294874289604372164845372096981139610580717925533228718666882235230798458989637875741125121941668402871188285082677645470777242735345241883877570552369589001087690574230868347768181149592798526182292237248240780778091476455538717728198500791462466752810276740218559624452890707939801518675550339448150342561082007828887933401871566807825899766578451274728494128148234679145713880150752367174590297638220274189266056612706208324642217961812105110134982365962305703432388398583372249418807327873032614408258581441903756477717381503650768679381371570040135777810111865116396513858240137212140163185268302129017006470390847549774810306544076760011961269781407342111711849671802615616777369839025517587457106252565339663693714462885346968296340113305668126099598872940710110115073118767040172559395879398011712667971727018432582074291394103368203673111748286338229005202988306510319995688758020945926118169521764833162428932934017313770833526946496268496184458476625427456408327715312821382715507472446555309649774111400025160722718885565108042866700896012376484406964136051229368131276010123579136594868733452400943613514821186480482216830073968826589301965147984531378928394273660005902170877626606349172991767221005782758024032715113406293800524383523044171183362930871381770352556725936874740190157732779068600209898308351569264114934522809342759865444928175840751622207716145013332814980757677068364115709472705375129683797310854967878162680812988183056632298604154023133410603041403091873785082760714584938433161755409694931435533074783722860684898980902387799779646026940552154497172694923669345226923117196772012003494758597745653157311495192987814291747360539301746006842677807143383553422553490613958152722989942647546590396694615327162953693209702938016715117343713031446474048085241575949156060164585345272315593454408915409592246707290617570155459938330499346637819770814740581486203214519417087513813781146229821182181362486363066954847836303014555238919635298548480994738703110344769125780648467919465967795678449449526105123223523395306303008108138764227503547895065328906806539596754395155126168201845994453236703019621994612590155839323796276967826111091612390445849763081050373310155470322905017375175048948593782285722134648789089946389382847158929669832286179258938585719870250229894600905177755838324734848472901883055553579237192335312849572975961257511408688925347856597093286854760545512965432554100874058996374335852779537377588629059796793399563716425489206728379221639068325596175486553918454515479852486556449247914553696090747184621340482315513329405759859696340288649868439469691485746747395903898140306233384195380341335179566172715915979524637186694214268103734108241113294566816723222214665507353025551563412743894222560839971712143573078141276537075414598681065648159004483675284689497361491941802082811542719267617099707829107010462222733726136647137391327166113481480557364907944652220938501662729660849812418501510253335217440140726083143587236278314262408887691541858347290860143925170478410990954917128754014851756913153093738130580841632303859017009525040276026288271262220607838022606952650373740552495818544318723411195758761727522497920486997745680022282964277792359234423078396247329609294436914066896619769044141859659183935172376708454767657260480512393140158094237245055070690181220953566701352531790004530523901622361562339716074009148037090375121832738006773367166922303096631086911947144989073852440974597437231310145833654143432464588709596463679208834629633111201127620689372314450533441308386146890163201845073552377147069111573181376386517473677750170329282428158280648389029054358607668290344736233716288455957672069239620516807673012863074458666769707268178986737029988212268788419651019948913286220441876794127712888048272866863782290407358118748097625328101422555498335632267451013603390408517383578624682357213678918651818534425129406706939162413911530608028711202591826775688325087291797523363328117057876595921186582833574950459313891813521248042806472232121785984871655174616927342220865787749756997931593097980657906226230067433908927605636537337007334879386120311791004921096565859618344237166148306089846281982248935498854849744034715576894970233300791059253684706714852850970572114828185389363657978235519270324928841372109287925062164500552691724119917649944195256919876691782596043560492532473093706678732583093372921011914269738216208408013197635361111555171160631202981479269708529152715041191499636104832513450116997146599736375549132363867353160460759022439966487811905232965134372549308931150726703552052660089126290708022288709403211748560000066344670409021042932213474850330951109357960894534865307057617130305906935351731781644918912820890188727614042022444336972478618019341127195260568022367619245807738648905069423991197584456297770009141758306306926890665302718156559369552902437047131074579809505228480806786237655693787844119201735616973540786424292230308423288631440424709177965549451673632713296309871827326243937758518946507775936863612908976698421217988439896715941010628354771425199051068165770097339261663753990071540756459241464078344190440427003864212758800849758292995023087859362808611728915262709439753102892171741281156299014241168513259479978684073678798527817175675277112974075958845649526210910309349450755539578093572647087980278437089874095925411235885465243801041142972501584378054477308324816128033882577580020942019282495375618407236587165294609574244206055795372620844248134098623456354113208606483484124506566471833593013613003962806933612324635910758167343741955034275455222329339308037149172513683716776721854723580249555478865631363662286942887744509770983489741588447180838648496015353810876496913555122462837409803654265926670332105709220302032672689773558330072010212408957380552646001750335224353765961072632894108965871354753311597098284291113412419631664644718621916907442991914871399890731224806971009264843505086551602170102390376715925811791073410813071126694645670478797047567230475664007067158441718775798771645532958059395861429802581553007875444989488962174091478920779241826881666880273725315725286537917609027372156677937008190445965816010252433072092297962529039410593622795891836818824412463463408563743909020429526025240695231455199809137243013880352450889730963014685240908941065218363185316326609890235613456977217069039292378513621000300520926722659663002328303809987245715312059419048898953940378211284891051801687738647373245962709021759006010401684603050850333091072743556240190705267044531702726972196158158838069932188521753332161847059600732648747824819242633582863662879339635381113497036570497109223558971824655422998803376240547775024502765436986479043635288797566680850279810722602594078646707724099054389087483834537653682503221985265248206873664443794368886868677132674601738643681837224093554449436357419286327512379435840916477963041704482564404284000485924361684433321401686142648924714900893067627413444497552697272118032573186343929969965027658958345982978846500111951194232603997312308960912570030776953027171050118717253094536164542820207981584882840666526983892342460330399717550419645926703862740880716956611202296957294714310047735640932007304896899600352660979674083258256737365059334976873426622188601152834985149538991776614212477974242254623566118524812790798077109153609416426510962662498011854510254086529622240674817009075719486837263900347721585048190587284220701310910250748302834985007299038127625940038298836422590254494801033867622267861790755473681634114648927760895912095424094721226954077882610945750842117912667932021070161968743759977081287503622362510526287680368261045743814848721963944385696586211715963748744980618036490837718893044877885789080646350306898444461821209362097148649850686205053299378268531377070625975784370908987294929752449594991588014070768467624054396780563877045111853179431578542371046703599533842671806607043425217975359699558136422104521510796080753331798616401964758738930228256666605209811271351198498355910808983386214836087615440001973926225800719367622923940143526385208756706379322000907616994979548174082715016035544713538092666633566696155832365006325050565866661222986957730616926774271904987082923189381048157334347364002369289116332739567956329285937672900839652861934544253724273233932404703872511417114954784420428259947201709402090402922471256783212277136163861737685733322024327065858723144393776980103967371008491219377100238918105882345720666693511542818115795987657370300322695034810873644584467787851942663568533832316019869401356221287140098404451671967586345691906542664923729852212384667780923854270055651797453827785755150219246906925834366979532442544278512543178354820977346245743943519013298992399636382985793994364505062761511363908797800974717496041307286798882441810894624242879685825278664543478489309618148059551026649911777513092684065448548998958892895592613944164485435157710445074859380543725937764089224509156022938603982933057658586873623092804775665691686124265709354453111633548648451119700430614592936762286528063792794202382779269733393139507380758093516274574978096196749160630495241433739411624915625027235404229930406699014621487470200195146685882518415561708048679286654369740472174742693337179414303996114146431686263564405837297122056735408407556034285390694897577130140628602665689235725410407262117646358803147609270402977342881841651101339988538540861060273793968960544957934440221810089587076661074315052766461254760386751990717202482171554362054445009130615365805685498557806723258776714494786205577520904033027455894506844208953934575938814632733895736188981233828992382997131518188302463042881212020611721010714134663897929285082650745424057651469233508651636704379918865949639322858383545891936777216396779269486678389720391641552369914404976676189251558945355087526700650346062489795390692173733927348716114142966985880315750336883320898632400510334236925217187537238766162978863846166501854906392242478909964590562278541279792100561624603330484174994569448371955670538247177329489859520497997896547870597800599498195453586108058696587754715077263624470544783080165524729604197545545695145311112539677218471688709342138143048756919952505398100199012669633119630675898294872747903143428475315681199635584939091469682749509501434626079871744070031310982306941651262391169777030926986984077370021700455898187872054039892586080187377032646886968820771672543936363882830258325738923486404900970528095815228953249867752968945243105542681843176939748147849679582540591616113122945581119799039072364320909841901977717543906937682736254115427830978535701384992987772097589566265805193753547825683203328347258287950155452159377048363314840420349302907173405785302704848317539046647280130937974115613560709850567618855887982493208943095506597997587087325928036466065307308478876782186004674198402151766847397382136261848388668463272449720984260026619452830929086705477767164764586272068657945463169277865306613993279956284326690271853736014691556823534492144933656868105738833906104169447543127069857978435458496158067425418285494869041288019672713242227381461195706904801800393910057192341902080588803959084667148115193321898383899257048705902601910046427453586893179254743925141402899397470584769650460981540870323595782242403655204312426867827519271317381308370240432098573766673148783317928134310128196683470125317520900943540560387971086272576269909268435857136309630770307782819815284684033682088220690122335153579715908233179821826418708671838886038097904640675882513086974059455234269963021729948374954532172791187351469181298669956371621834900615331505308137154262095047649108679069147323175138046167595748781516152644873937870114958604604005417132055543289405788358182308239428486317698163389838114363489516962053630668732523929473342786848469781257869490225618501604041232249795077886153494611153550960559589351020859475995913466600576667812965936850703992619273627014591481942552902490895577105727262647264487660630081709329568864483738418225131212455895319874083883712028099545940102685003727806245472539574370668451794869148204870737632715059062215725233737751585277694188900637383993813350948665837088498529114069809294179933579496620039861978211069946024450013230112641547996991490623582527165357049911079775027099925447277809072463570383921060933602895679670104016249061964167161349100462259731187577953601887846066964304974457865631701359278452364389918059220174949751206581440799707909388998733305670442534468917512362742315855379486977327864108888417442083597282526889914908991684607795930675304710166824990336996685923758310649923852397847791778607942299050392736259101404654400170321806765293130660750773736663757198901134763032539125263834828751246304584233901073119074452389822232240970144647060778197276228044740562711132411294563038593321505612080592369647100938446827634011614975466958550989034049369611548966672814873762435603249952063232323611580970774105143359748681800334882396636530145785164387030274898618027962030637204047095415684687271457822910852687523226812442373601180630746257995663213553576418044368244517503351694531887709184979085585545610084985296406085804103582566133607334046807734641218272421100840415039780469978516560051089518122381257325942676910002272833486048869041421211035650454107719265339163153415975144884932483140983078755952744661902062709961366087479840385541750039837577427982256896825555909116068750136693685332110201400331558770918459121630437093252894952291089823552569896489825982938998972704836080481552845724100581368807267176954184090629906975446335576929323248906806458570832589680272324984429042597851633203362554014570789583520470994619559401618828940896275092373000843994823950663189979293408017403245198596233021195279962986764687566209058193689284973844273435331766284221720041468922934904553142883808526625295175439503017953358248210488924662936055539813920632536724739396513754756381481014491432126175048691954081541152993669507882849903617383898274381373777688307723234335960938596231471149967299112361996627403319506939795049030132560502732432171499860809816158749422052446659200780670691386007982357673186226215926133791729143591660276179815564992948723293078105212358228358213464859264622852492250403919438025934083022078648380241642296172057104424823054475480825197883845131657705838162637178590126398427387043094962394948336093500282037017676897437889818938521284294634588221489020253405170477646489854053615359062928497686915518935101346135052298156886716696803401674302456997645427614234070336017933624928061530638900788871801448518961216005558783043016867953316899395638640854957815980215840627581350663925458803611096120403183955017585367492174652200377097051163649506798207991442914523581479235676211973215870309233022716913002779782505212740214714542027683724273484825684411471098075233119130809038458295206808569175213965325256867958856807004614348935193762988041404189185802992697656696304047995805586187976297939649361182299734819426225549216750856764750168724552745465328845874015668050864124260750725859016729150534717003545830494609374208409009360467652269725000786134899667868195734360312994952747891516652864302298677602678197582562378979301408461584682240003617070886891165522845890286147490134973917891738217349636232239322070221404370344807142567729872166682994412596004783772201879373325231186417114488492372685514652842529914719367381865378829870495301761420529045974827727338909040551265833960932032523124268125318800318517117552392600313674321661564031307507070701892397936158492454371575519182768587447869605618599603932555527343573929469933149771644348638631127269048941159660205071381578799356205572851472524499616866449861912363431475980617716841057261244692928830819163670903574822295237312912449909150004738950479990909347777355312970106856889193841941970691098494382018472599991311666512382342663097489875514784811584648183715211421572193455525634149517585083109121710540646663857538700397277586686984207495306216364361441882404302374083394945413637738697027672668740042106638175330792611213237569711270287872824820967057685783998155334473631267450748100193727990942236915289303221521909198103564017735333379623165328665607817205059070901511158270098804116902480893632360097224246124249972488738256072962683436510415140216706140914447429935101043463815499709289997074452049915489008553873048575312777469348909219411996372080717802789127741672374385023203848313364885459038828311486016405795303739628887273694883611717115173439709244040743704898874566827172087592731821321998952071186632675975051658435927868971710149397971801937101128250375250765380989853334966882525611637159920794318456029073676804259130031392979195329888266243078487240873220860397567716088267004415925248928211605245581464044935463616832161960050488095472890826869219032200589057074105840116530126199138492419195598448095195098694077607602615203599246242277014969612416745827551614118238944431960439268253338819068384937288152103392161925877279553702245204916612474769007196229086204199839181394159568020439031549493365458133523579710135261636912089093539464864733952775628591067550801896364709153214501198138517647429194843103114531756235081717859367786531169945138539180892087226727739552511498744258281286261718949261877925712428355346450358226449970224221966350852529212221584280266827845201285973143445431198376525689103380055457709372698303904977009735063734986352176962474546897302804998540019615439579854814571995734203621606682585082306067154075665140646378101838864980835989337401532465861905262805983117807157029124626012041997835025832355841253588933446810131516317339750080936748227562271584526472870277418721445838168557054301757663574513224558958414685705570517338453288455150291816170520083903907417240118734810498861959985904132784212894193160108157943452044156130733120044674371951127896220979432920580653856584268968679195068610371174882933311311802507714247074078234889107425636230448521978791726989358795060244421279394024486805381556480052831478784453339037384166868447240123993693888369027570616568602096757258987542732859441407972547421448896960474744613496133693732185135927085523429007491361306896183211013287318547450864195185800769674650583620052772642133174055599597907154150926906481556975972317003667530416323206344441327636966890812661857556287449170315280865998809506114270865307629536562848178983816123527920406803817823701375546307724864201512330339015944146088180408517742037720409977442029638408132515429428000187966962015318090057766317979288180832145459452754447513002425877992981158596201359847127943374313580877963582518226128020259922380899571710295854473407979710135980228888239866746876390396781181849853038581605062417536406116762583278966274551501120949992445762326385403781100889023028911552674734627673107580640517574439814993762159328476194823237320833146738160235006837210382814282680063405266220547584001063965431252309327936417684733731103732450819989527545388379283436098972886835328095823098967157589958629429215378027683680538363406336683684668418903920431449461394595136277033647995439165743023568877833825517017918099493818324254442157366831419923971529637752071623995167627409763716185115182391874068277853152891783420991311530474593747087600302917850110679897583259134831099524191929324884635820111637205404900160786465898309148964180115662609397872343632885684562031632152354601868686364656197040851916858662742313638964398509429428072841570567148214774978165478130608587430759362829116288132296054816116661805450067985144626458792934312051649007574431459393710317727962951015069112270679726160061865378564610561713815110394694476090172119914689726568567080351672118265464378788978515666800873152799619892143218609973936898810143368464501995461853559819360178111331130468490811741147968950036928342349789535542534837152331111330699459399459720261314082077850244515439005656380681128672503403093680027748382460053246668623370782051725298295206075228061334163153044735360153329133653470075779383616375291680656974763722238084082578875453890854398455190293360131214074743255062025847972067862399005873444815698205192524924490066762325459300731029085208289388579351692807913317823840952791374717661919866003848558236158752590055838418244809893975913771255576537838525871694578814821833014514397633598418486073737668824054779368365016569190755827603285538533477703349252979326535719090422051966507136810913033926143340545191399359104309935219565633767687766670436305937854077527304618580522581375525654640799284743226586557328218596247865054990320927980501426247653555436249860925288192418644629960693329659627610700291172789576235980937224544401072971528628061597697091635482285539199552306198587015595862226388801505839706031722161066463937004878244951320227399132323054209802672020750755960297357587025864446193473301408148685440984091415405835182123556271157802956386224123698946777902446245226085417103033928716057157131035565523213788104893108858037301122040182657579977409331011001767410133596279658883707518361952556452063238087974658390967809492445590701811546433616213866786831073608276825490907539705758956632386161546246569635369511433945074873903813350852694304750739491961381093331193995827357119533590483326958755289087176182261013380637293814285787757730264316422961033991139766039579428613427722570033198139839352923260816166133006549326910125061444248562839707708373437989317873435825306651672448468502453585108882502399194176634142584824776516979197909452716455135977192929867041450225341389647999670460063925259214104322371523289019821920914426748545673650312969359986616971866665476113712966265228260996901704883367869942926663431202497101110254374043118790482053018080379424070745463454543293961484909585223528686216858140374579931704395007989562529209803326420709872869747010894157885515818657611574971186212211708937369239020123375921015637817826845093940186652373673465053336884359548797198026921949072835496718011919537709288743971245178504975833816526471028244608371374259798038981840563256354411824871142393634690873162280763713591744547830675940445971940946422665886920527684138467762807057643367815742310956409734352811058180755416248244565364738312034167414175942271865830381196627339161238978891865100355545772755349813370556299770408671666226628609956702537262844759340127382647790216519454825749196724642855264289280972706025518004995186279643403986708567733781944911653631932634786229155534858046587033644099528278699095403495643418176105494187303040170040265151108393563776698096567084700203274427355530917987373040938657530781180751288747990052660929144721867538983344181247883933202652770574845080496786918384193460009801132517120987393358748475223305260427236757794539513542247429985274791165071618012815410094356490359840280821834676298436225839219620985527943361315447352926176714609893762875296609213363030519164591249361149582302281825260765667182144418613356062327078295677705539683694332930933888694168530556778983471041192630364856207588834260505901890616571269825345123192146660416041892530811776330107356322316354672110467147505094550790688885386479862223227307482578984201678333608324498536134890605659201983940628346706134673305253842737560675091139616250180525913662476652166175378571244553553877448969178458251575594073767206170335559591920749216026796092685166928038501279835475163399751850216870361679543204883976821680040754243188748888492952365336004847730320188081451777028416305339727644167357264560082014288731230451365502479745306742486355472714861654929376939948636702496046029381295863611734404263118504346961007268204695822303100133311322106800065930667026457177322036532552051184083230367576074787913787338859759772147791021987959328916401444629759552207176408336364376058432526946226230963617546407004433371893736842749504132081136736066020851588942140986908812212242361943844880756290673796918527973706560908640371092586880913196584082298438568352694243906354816802655611849363122683344790574900898458386852765953305603856195943584045744771317141602383321771276641059750081597079873596246388838628793956037739149710604706452100656250079681956843226879822546017622177749790943527558790748788835832091244975107196299012811956676622440325120782846931176873207865215326667030399726570619393843610160550711580173224802932437489098353102941918972225571549741995745965406545860393792749269492820534996247873941907198934094828065243054944850801118180881261227080392111808695512732067517286422601421087537614240241699710623089993215325473761121799432687465214433226076507430732996651063141447085612890799094630276108546983215097684949010972928152307036752593365393455781694252027173142923634065062025598726552880103486640466108285594791335347552343715957798933489117199631132283425501223361305263626633310102377658047576820887253007721651976386299976143403911353148462102402287119037824303357923834613088950657996567970578845063665942450166451950893906091294650199883458861567397178974673542767029268108379355845529786427452498022918284204660543989005025049176034140799428688484521304568823403285158440576540562140399224344295404338356891754458667747060384712564521761105797598623058779389013212523882180298238207947699242704631977167044212587139471667935677789527004642408821642512418544763383547566851314273698407483559242239148088092182032936614585565130938945214692071563154357908435158923706412582217490915999284006576015415242256252525786441487341830571870444807212718696091743051984801814862654225037864077054858831323798029892385187781155722595014662361246679565072208056171839061685221254382736974135356475428834711025669852163699985704306654894295875983585059363519630320478166064346827209561261945145932207570681686440591111235703794039852211380923830836915268497043779332314675222501213498227013277224281709958268174262480713096647948480672869727730746264659858445519289619275826254116007876097340992194373753239792502260948029172312847534738343832200403309473220736832015157764075732424008066322179686783201334730115591654923503482547477155548626377803337978949788121750012381575296269071801196967235839354953843923825053108592276611934376294779588593421863117301774276862540378814999318281775738204607505507543977938097011456958865281817705961009692387370683905353051769438869367950860896902573480544281222855291084528538333309250524223324117390180166962112328816595170275938173360615642738065294339166186837319511036776671560608420842732895946045117579429492184088062388829674098190674677319906391713513602141197053226390140434258418185385683797966761365702784906818184657406562569005810659315433188485690643656221062295062412439491101873617016465094203340931202324612405616510661240993638884476242406574146374047850365850550705104474392822112734919415033731175790444251963060429711901186389241435877193496409459475000883902706360822075031746371305463477526467775210297640078534509353403254636852167787255355612434700021946669658973994603011292301505458860203277157776354579072671192373442333212632636990992316472006510152511585762850868987499996938345724410053239574418618364779280690703538436176655887008508720442256967212507781045302989315519439399060471261783669770379986551695726516869536924890363128414371065559766331325518716501533671986086166413527897958381388466460503561498689780631265421985463287082359543252830604073265936887178084763291423596104586113332964740875162025079657103736494032817886536341892131799281978328123951528316975302288626237701286417013902618887243124378753717443495792916431371756183808425414791716287537870771424405960462463772358372598035472345599807275858598246590581746819646116814648313325541199399351937266692352742335320031741877985991188146227589498376011594949735269386510090361404415220560430148889875703801826898495038359815357171699619033950879743633822559551254256647871802065285281209949327418698283891443477285618748627044241223755105427704839345446915963536452437155676017472959825631673921894519554500680859240428422979248249733356223218179585823960150260456021546229704293310058903876311933085189224016238720182518993798430833671090773584262526931376883006576517083077630395233600908479833905177152701326997477422142733009540110351491130535587782450470635057000460305121428921496669035563110924560458113334855664549437173079168141376865924537007803755676664285561106942195791502210194133156729164254440691392083320030624982045673166464354762160546329070866279114820246551387210873679852187432187922738849759031815368702528044361404091334388403542651026035993756372124132702265273631111366097824849589964144739395370656695081935790952862711749662589401912664396342602424662827446163795045567706158130636773417577005856224653163398100953501812138098226472570440337243366178550807694443298715208221943464263171172342963061897191499747157708217822579230195002581121136131315407969642609507585792779834093561447445031418207392238945498704021690024321149868140544953877248433832752038449266786942614083357448355454304486883917227978919860795246273779612786343700698024637389568523630235895685205540678336461205094863132326142931709330470047619950622585268946893018605328700592954489835265449666394172975597279869998731471510091111220458983854724975308905100178048629724561978972494276883804935555532948513209051778124813675050184544533321123783674776516841714146719898606356118134684688910970158757103589288510251376806663020912807154686315470080692444717996349085366178594004262015414739877826794926734833325366339941294978468492064239807232713743094485470570442830050837660980495169511982842407163379857611384488119260399412015623814817360754641780722535124679155986270947244017222786281699463238879768622500387259105532428070576583230473949760338951309750882438335936035119051573408460855886998739081078656751266019423945298635632652635673877694275959275820315768627180286241834721506959878973077605347138562502066320861685310636912428759943927376670783660117482664678359494617682591222825689291636287740950647544171611741162658610293380370066014612002859873888484708983029052760241640410108757242405395954015672906905587898430881914381662052185954432644064000082780233772677185729267296006617576327957305088224275466140500162042283638992327270684620462051126787459624138554819379873362602549295125065804181770125188330154205344270301669313293678949334142080221080092293351801173261398496985887617876251055991753985678722878960408710581011086377355128220196999081488753638300197089502232487884660480567972334693180293238245430630041809172967830541531555671640708001875279308736170647685571316226081787196465501093706662905106271370088729047495950188609474102450121276764035388595780034714044466598805782861015588385573389612691494626638919448149454482724223657421737863411011996623161837966312316838083003357998734755369066108152956891870876687153798124100710897990406524666595791482968797322504935848615433710057742334741530259181632868129185856861393512277565375065133957574762572590082118902392441531010072477131653963112532232947861706559612625412788984593057426962659868157783020694927420801324987193368603954254765307710368799545657440495017854142417103184081416195870798009057416043868071584666184502730705206653304841529631483797355804151362115366512097626151838268938558010366457253245316406515614770523429853850104660692434940451216162595643083434986949398458605824005473538196911723916121461912839110908583995247838570426854380241406622585566909715081232974685271195575341251188652260925922223306334173926733007419668341811270000506070984670828962649988043141521700364764543762347882337475513894542684202822801813253139123081855372652151803524761221421833807147964156660743210452140340640427131812811408935702687497136946376838905010840384732683283840378719516775766366507112342167740915002819022491762382306321485602395162508901852672961244838182293960814079549371256737525052884660716223394459646317217364145646530258098640030990999386973831561853108930743352054428771204368564097851055726855762196165257869542833315332575525542841444857107909776672625710381193030989765197927146083667905873662523410582680194710674171699265295127076571983272834311817061604079015363786442055018125537503529463546601722931644747020913964153425656348325517269533108951376940742995120014539427203585219821834529683665501540453362197413263875250081146440002482441524682326243503065693871358426102599546172552634219549973582638789181269605590073785516072082335690555765584025296296686563593838108824823847530414381139176356230325906042291267233976709659162847404767706673392330389907999642085336239365748468038354336256385456808298478883761071708933935321327476192349060496357829871334320671351915527542662437973998371954808760606350875389071974712599849191212275372737000136794749295247895136435655132635190698298302799206954290047229432872355733617886752961885774776835750246691516112416113781976779144635368147138293935633885314748014530329274124555074807401278479150827508445162319429768168012257558667452869590858356636758968961701104063462257755510781858951997632365879437114842981698159313578187349541544569854859998786186501292276972551549516918344784856318791770405990901713031051551449199551098343641805750050132794309320742192019161898316684798283915905074303199067602607582227574117599435543739875636579155845634286721378837365884518153907284781404018244884468926715792356421567199263599599378493084297526230753412911617497865888082349057038888510920692857550150365620160278944071306466402289471053628627834450779223234129447087329166564551126240523484097811826875679442843908315777966246969606521780305791620796127305770950919223034022053660727897601580102362733846505688717429904022029256609309304915018814858925172794690667179005547245974843775468905927011891908372810184480574698378346879184663321602922164833997362460316153349895333077218713259367572872788860171279686566642063661231804044652007684436814798295937576590485182543153164204040458910336136131999112167166506366213453433098195371830518393218250275923659157401155997441243317842288549557738733413924572397923765826561396656435264619800896504744467487936033749660810937175328262771737333957614492535028130166986859909176888346402613853267212554011451533492601583596366444792110305207115978514185014068510618202791354016795140623705662411286976727946591707007627986573849252488814248441088483750612020037548599689024902846040156920226712441997960141326518284143549744921359155362601910533878765034303812588817404601407234655894205212382019556213195067501521867139381496688458684011627194849031518206196321313334936061389898121365292180945935092504931118127677705663426409890092196607824030904363805501832456300887684137252685088815358637040021980048206127677503975393535482289510198535192295418873681929186338034660601871360297823070360299929841862688955831540067221060107727565866309288759341098707469335551734809013672051633795018159544177370690846299925031870156504486235517052925737280318225054622955846341105382114161015994180942391193855820028180917460833987177194393541522889798146331719950091680664606468072351603607488803908427476432998213217054933365726310038538329909716393579950509236727784121543130629604944799595110837111521437779592698651181033886257336313076268142804024435812998655861806331125056977536927823561495151235961071568493762011975328677337217876221585539581654714096383608970132568919351582742347877799646588876487052921677719469432289806711001175248113927111661912959435837758006000366558195834088739257922052973725753456936582763840550563919968918882995795151125586664388277444202712532326747787109053207036379745710795064172854263994564234160795425152223129607465989036951658497300700428148550632172852327627053022370619623572821451210072176395641015853898879669529583179644562010632588901079638273502136980102033286558171902141758951906867684654574729321536423232180251806444324349008028110639396184380452340301392736726893811797282331151228681205658989276413071760587509665568166866173239489803780752175204851099146752247241941553792290868883466660931106609056696885290005443826008367519620735646582887133021936063738428704665883540891574400181927579546200632624789465004322594528493340492511568979575455389410749760682615770075723272288613405103588075558168937874840665059336377860577362367323484343517724197169728514861273328920564433331019545168226176578080282555731545922354056924661187142675835807325218111133096298706745660542776861483059122693150388013266744294160694173125808971578101103790585644399105912832525237863146216751408430321620897504122860453923688956671365205746627987111336421461829146611913257085796629481150811161716771505005241531172422496662207000088047829008240843545255792309748892299597754059231792842980799578908618732160240981249452415231334580093622295375600620614793636626398155467337143118708555142333914965912129455619895093884196625094283233539783520183643153048176778016523391851708018609963514164582779377925894357131029945026093354936371408134168480404372814307808283735568822395439022850705104145105988296844305512241126238758651177066448638860362052289779963641180560238273497139641499965007409837458895314157720529124384956592848169553458768725997180694781675784225216482078420386910466723818295846444473098302343196562758546508124640565566132578113398051719907204808790479113680084524330394130539633657592896554686158510798744839866564268505972351037335353317346724999386332225821491734535189274299009926376302058668195285010058615918571655742072145333247747054747221746296930331981951901370220980078679889126951881388720887921409450114203570097799794497375084175609434803776273458124489552233853429790731194153474800595207931768321182091457829755021306764039257911587652175704266092551266877126486324243419815740255003973724825824381255005871393599644210712855141303627065193988526001563660734410894759304101308313810043103559905878669188840182244963038332396864748387222314695693828249570802764646373551397653967475017056457950443924061951528261905507503185013842952036015410027418829641850776365441048566275829725239606227845544647878898319119274681591588554161527825773952373093131724459769548307294305259104691603019737480722479354125855161872539199361321551609791343234724507015005943848314283582836935393145099913101326189630667495648340325288037613171863398194769841133821277211890245088660377865791884302382201296316460245283197663763439960827490017691046519165168108268995254235838458699309832275864459727583440858699826034916902559495459268165409129046359190834859926302018387980713864887754170529638245062400730951110100261850166881459523365633293624951390516358545542323210254505213385261046936711222123569912207071969112950568384791171542239073371827433765297570389910088270896615613300906537237654132178531222566768725213384289920155383350453843181656676391767801568427825516666928135069897480267897231594825103600834132177541314046955668972017677159822894493454223168798329135879336630885323435580857721078541124385362570114956039559061929785258725016691292474791776830029312526550439631281561555215131514807008863222645287450305830224544641193644850040440605253851452265431016679870406527746687501252615914227753631915960408379858789607552573877891230273714530487659025685058216737166364540985736926525323307124377522005849100335887984615251180243835796571359471867661436659267751565029659368938789093025431672308085028593041715854925212411220195852369979020743757343369283060181315365911997840472042473361461093391630927731703843572602275016031596185595015475999980682175809254029484986871819592521536187124907813707888290880914763677329773179486402433673012693595319218392775755306158120726749925825699243884167258941436673953710404639846174470239323869364601427633604646120842639233715050893670367277519842733774668016915708310512214586706225515222259109403961694685370194524809051099204863265342588650327220954507448000222304335020045738455918111154745168117893367167885299329257721903649380496471125117158408187310744519351324269242393605068676341706451721598858823826366813476121284245149677069610780769657837803198544382773675777710043724380497018832730222610400509525623463053760206180945571245644636701274871142806713208883762706549994708556191478769156305273118948885055494452119437420023957478399386856269636532892954439294433065562161337649552686395342915414380761373119561529003342463661351566799880595254394511970013493559203597682330732225247882705826724647437140508195952653973709743975020670804209290527091192480085667698230304070905010727801442685343015354145831450641748118523314683586089535355443012988230383002223380937261729224023742829628060994320758955719108292392827040238808486431936438833377657560119010828785232768291518629607471250801440639997694859638007763758210139479193746347087921984108181131607296188770520689989016830580890551300655384807915837119247533788871299168447759983883683586357188051967395060061843155527837754309879200410163389215492839327473149785363544047976974499244021885464724347041629455954705708336354120904718900625059604719161861115004256179827233629725534225441902523155363266017632485878952670858538959289593914650970891453278392266987224548294094214924629445511514734720856259700331777621107080410025578935899922797824171682338795200757398478264859618298140153284998009060974807829769003651163287974515911999793698522734833502646942780364305525488385239677876379876352079543755070051994538025912775496904895180225545742768606339612698530020523917143622673438711713635075954357153425334396917916899695370374173396370657968989313378035005749904705806103391126353584041792215903485666374833975468735569829695638363607063962866045047586156422448038400162365698019232627356146158083717707913279677027473353792406664171751947995858725145003764144422628741502601101634597961264476623685867881991738777549061660201220245891091544524243376995359722669284440681687629056454641898993532962080160463114412854608982700731550598338072491504454921818598260762482760770999454860098086694451756477852422835176704996802743635034477100234552288438259011656808811229050772172229788583068891118528871226192803452904347295069383240001602772992399003040837899652450058177208563004687944440006778122075155720853744594379516813602157971178065664999028963719943664865504568940303085608576693380771602598819933335187021493686039295182255539895747202564361782109529201144775608628068276811399283052214693573172022789811659859282761193473738233412567485317337098566017180320999087368954128299182272311640299414301452427900375223082921729649973585310291721192359418632143526340310823994676798469308914351723096186258519090572729314761701256813374281392555907082494526166493957659391131974023475154724805889922543852417313100537011118762509082961866101238906065105313985172488983750842592490285856450146613341402880710859854890619187705848476059981223424991376243131924708834671212659094937210737738786746109639512762387277863959918378172531836391568464064704152924764127611813478546666330921250166676270759834873120671295863915314201839278146492298394790460134133912147038763712529485767274803586277309948020033871503367463136090604040540433112226049987654328985208958535407514013343725361475337950915952522300087065084195792809563091611414209075469932526374669057256070144848356304598420772163800666623114263339664544256029268982505497059025774368123259283700342610264796777467621900638692251640381463511841264105669358211998620034882507962334443164600449343914722267273920329510833257943754477249608407567832910721206519987205632719040645734608296674757729257689699612577619463803653730523534449790046568873461985672562166415330891002480120347450662121832522259757824308509166132117143985364730431993823329307535307607161590015962785276676141005261627977297332135671389428148205768281096617861392782561027449081837706090937798092200688575649737259948567837461278498669795493982100746662864487020472968703961893082471621846851902124989050242541868698803495248209983604476157307382502417240343934230059235393280819639562012936857137941704854340457765819188863343087411043995242462924123836150442192503472563449190321810002084419362498163317282333173225568550278585166439718922576655856811292716340222914367477992383794043355733636530956937383481012894179070318108719878889897094922985893764707746481357850033853370860134572406222024380444593652681013896078958249143081708152414195670553858767911785493903083203765036035333241630175650233890880496381234304764873197086988794816513140954486529351270427011586059421328973109979935431179772477147871875140621466005535295226046763345104985850488116271807551898276748235871969531345144824839927918301692536880917763442483063740823745984045692781710787441440046220974354143511762649259192523109802647785924393985348780388071886621058237378010240034391372905906460007255373810285704866698629892673407355826974100624871839529987190512893659401540271836673013157340924471204017915171225983373515897381328825774648950599654081583607676756809169518507309895034490496728765237228381593917657063797011821712005727840310863424662427371891953261491076126988968746312049625300038984379721010720327944648895578993410491266441540612462957074164316383092908695900562355125576173613612036086252091084043865236999377016248319066051415736121012388709475127974880021991074370986439611301845738309986877078815106754629323647962301246118809852481485518876558157581664566350936302854969035426578803738560875239773442135853476071597083702271665715913500704586196574486367927726995288571135613721558347739323616404821697823722788533723028836168277750280797004444025720927532305196936788260438451753600138684247571645875067092668389512792735803149694035436167377921899155613777278523263455004500622689064127239173313236475499160747358598540162794244844551991560377241449895474607610908851064892139670811516071873182573832784852475175686919732979967555325058908671075202436081435011666908838268316934993432691306533431179667653224424687216856274345158037453858930926283737608486401872678324078780698339570215474067487851763822273400511076394860407888647776618760988127285947627743846158161455744459237240754956155335341146866549322757399386454403995771106806094462954027576859987772685059300861357062246111165514173733584307224782073460583906697660669654517516266957454969439405247326959210756411773640899178983621593150516761281883694578093417468327622849602614107975596762775178025952539475764520098429684140401912205973889930031270043061460205123273684088774919590444880390251007863426004783492502706472610868961355205492781226779185627533359515306092434924826430303664329476555054308613565318849855040508993034101011966298115988212232104593465171487678215617960340576212568197383073851037727853294271775267480914928150888212070887948211770035020220909690907239559889858418926425791844204854700078099108523830942770339302709126277408926704879920842702463190099401964276442839266763561330264074839773496032827410448434646764461049535059844931111814823112428413998985718621990843629765680061175627048460202353719652167336669941200408840869181512433018530094661541526344839199225207423574657995246835380507112747306280996056468095913005758407613041148628308142745607203031953160920544925462719101219269181211083755748352913925362494265278908210160930396394280742654599583691689281393342300236376907352728549721330402328667680578538355783870852298273386070535373501910390570459563044693956544074792291791579412807418321569981590872864969773962639748755586498302500130924162586135753839389716183793041123093879633297071370246549413070621233967616160094611646680492995532063471160426192545343338237800481863348005325276278612514787293246809760375492855044173800764983129624162115157707794672522001647836504368966403528227791090860233326735676719311938049362518194818971356151400348094819112901144804676004076457214310668640884741736490957515139122256019806740543234103559305812600191505404904330264184788547452251383405102776337376093656359973259450254956923217799623522841407918425745639523471913561317669619023228787538174184863673222475428196431017379526939196128333035469655964736102206446596983533582869717129833325052460798466374064184582334390205914762777595015833853483800645689742755251157035153152772457874123790870378337379754273482195513964427779233311799515784008298679942496552288584656813993028737985588243205336796016156943142679590099441949000642592095889586905204114637226713121869178330119109205876159927838123943035218821150291228742396402477246689500994938694551743542266016993414827092381391956582680258891962597242184254447967036568508519369130733103920314316543054231280708502907779495194114067219770898981131040458014255262911255847092001984442014731611319105956259737859155818465026257543205376826467933506609365844300983604451286096881464562089703556754353670541192124953919208847074031615007417380833054358430735943715752835125382051688368322405778964957330882114673543334375866634510006191370243485888628070155713858250732858418224568413709787293154441840965267769463269598593733996771455666920981618357464503792387086130908649558863291337759055462769802784582486800181013486416816520118326468673667225579205343155430423290118943886527661208037169336440113643892584270840006771914257889996245489493212857099308522004302432118475183855361762088339029048459356147204225341194719494518962836476231231100762350839713672339416600797691972170172994587344538716735464962872794585577400087360775561889144155279987278667447260695424326629180304884870968898216234933811853037956610741989211436004660698630311930597028187981478750416024829154331398591614135506967140734079356324611060404406653337529590465681478004985014914120130013144899753059120681110348084062930150285780312456496643041734499658005439083343885835305265155595781532906318297118839702587811281055997322926229134698069037166700638228838340226647384863254624407907343899065550984450327084187393187035709166815921699976930344890068532175634426969411226204284557122330840231023913274194514735422045462628935765870243561636599089216106257899904873081203797592152202335284238256710628648790202892200733490467013498132992048554947584192374096986062943958357378154409283133352553781832166562197363935653415533510875861815871650077427504192601966823701196974609617154310854439772887838023591767912092487588373589025573256338983862311045485685683355052177427687040833249839915464258171656255850933370754485681480110072548924759585098795350373366556893960485917220432987030719258488474472185121170254488940927432262654987288102600916767086671989831878514596342259299771939066460896096650774400545265980186047173341325119261119345238638102367287970088869322140854640632840832989982659314921287451914072533701605055568030562456032647648295823947150802555185529002098101092944460428415201297919693538618991172016295541327699150961888633464598951700653129804196725431235828856089536905052164552598800099028799856859085325357038428883233899883343215070991723083031441467061721270206900844388870578110506916162465759968328511051558567715063035216478614558210656978832236896355194507482549940809077746347489199474372271642641367318663669011092449249570185566975637470905322965402492885793504797288888895293322916219583222643137467620985311679760733129590395766120259234883622888551794172127702747786487539223835779634065346551870706338463538651906618273268996849472563148088873401102149798300577987302342344469915591200053304781111588737044327073404914963327579501418147891196773906428172836181275730211910389790497057823379933035802450309008615072381671263314094329877567016179357449586519669635442488044555106446882395493650082094496051462310368388714285131540215912531594246226746822061277063018787464682517427987732525545658256471393838155712112170078559918143845545863048746144678299370920695557575370332079232104519290919458164267724298684139641167453122165107599527408910739694838613616742143633070929429059022651589903682824338128964536974512246419452243978565188687661869514846373491188076440399142109550340623382846590138485263184690830284071520207074071743236148485472284154146551381657269023272448917773246258314121849121700419518469702138147573249007688168262842187650029944176647208144291045752311745334874428628148767233806484800783867173498850775917531522793124007403494912913523313106015985466637572596800030103313741427312662908437937204222977880473598604447024064913589571228914564166314802326215411380448909507074910442963493222864715815033306341328277448112293097168379652033099645463671329001120801250655664456641981309090883999060192389986038462903772642926267019050983749038037667145289998257937250618017455416774481793642384626774540639741267631708356075844819085098843280691990160214481826741052636133668975621457835193036992123963536790487653363953658068450848641993645919457409686830990643284247191565697946183937926169158857798923573089124269026218591963933800014543759552022871367504834131692508749725397996438489239570711305116489872808752393817403510082646426570589342593388800916545629825474886305207027282401502279603948478065161828195411237569859092895794681667107590748288113801148792632962603824300600654899812546761380745875692161304513490025673629590241155653650611726907345063922732743597526889966907629673868007144044884715609515228809426338761980436804219581605002126082304439084198728035401453084659641671926726324986814236407691516102455657747121280460265362307333621571176233356876928213143149860558833617044812319113676313205189555033346988728986972374719640886833112305747233685179129753554859047532282695200462935373366024941696168936756469794645310244255212102951274495077186991174092375135411549311171345345242854905932215484933190101635287983779518858550585462584444526329067842802022015759348733043612347429631246608587556941756682991604739281131543817695985386114956654757520015606081988563062052015221617978972119386900852194698810250099465499086764113252215537499056060383870402775100961384274177458162750295580052841843296345206208953324224209229321574821740841606783144512411237651735946663408634707366795050394006359718202538454987621255922429886910951623649021720763636803620016061562372767917942940221312360177467921486540153486684981070821891422589511407371548718701484903290900376344453863363813092927034730918225513798737644182863616570949938935489233607189757386070586776142215327341389236576911733163748223308700808823123921869775712485535036651321969892054299121544035152273713656784609486006261213339481234749214080171191912071498715646235410962881469606772532321850408003427298220680275365972384305703021886167183194120260352059679102744879704722952962858075842947344168905749415607940285082823534150429140080305132313301222515472293729230703599160998819175424197920126035673251303413981228810304487534305975365636640072382597871811638153652416712515948554243377258451143754317744764082215003841539959743576229341415969791628636908407926311926203468574933026512180992075541954777307635352921692508709810172258284186369262869108887862797261909504640408388321947859156627658751217727905342295765150103698608829674198504785739242781312360585563548085038299087021694266472480749287035019724167328453937233178967262473886200834028531776848732659146832125308657732721959132382844788971339137142729855488568615316911068072468248063074890062468859089626476342850729248279859229525958858656917109348911245755454147996046737035659598908461111352037143601875136890414257971940058433612728555324367413216126452967859459496947644459844665987737838966999858836822622751142992927133511352098561874722248932224411260078111665130070012042766454120332708867538208663410151654682144661225874602603834390141122209490589212970628471260930097332326958802111459291914005507154119875800799005024470975668607989110928001767541291508686123493607896311018847427437952182331251464835345952711978970165010533896392089919580095549559371235850409315930933105299649315676770817586224891284606325174442614233746554658383725062674452426635453341600987508070032569040200602304599940567561657387967967444721380769510585048913658369345180912893841700387320306330548659659308261227679687723360995170277406762202591235876535476014531645461322989625944788336395075212690099140747157426660749736762075445344600253263055469695715523552059747596831028347779146268526258395684894952434816162952326303522618669185623674206313751714097582946360106520740420555630333754702963845225689006666515299633616566616995152205648295730807219191198987433816479148725571594955144614220781752845278642394724963351681592877211952934400175439547113323418499865078606015737593232022291563865454385331968843208208960758927635319040634194209334699670060789620819967042384041113509542658141049997889028521469137266344288503669028197592683396691422282743210962952214137737952015400166016774103488465132235276471696311357458131853357847806050172845762197574460956103986371735836867972344989013994602387058383323910291103254519522180956369631330133475563084515007360968303831451189809757693345113862377838989647452411130977576017282592335275131617981113986907156252059922113837191814652653119815050725245536532485326486942758061124949844664959127312333178920729846549586947636414241393936733236816690144637748922258031388026537156212644768778316923894571236018818019790729658148820419442615198905979906762668770595530784642895932710255674541632693291383739151046754621126598126251532768362768525895984645703185194434852744744390433089801900526242554272745588537702030266561066617542506226922565230056071272765214069270749368242298891398652480608127894566741069638485542396246437585288626835991897882360522087921318550587530304219908857350150427518427728862337129961233315354602339342066535753666406102019995370001718316977257900163773492565292220324373567787233619836256689296924097092403257295726087575518475581458501704517700931663006822111296229105105803569125470931122350590056916551123751652999863189578066868558477661736796468572892447102887597883490801786554712703732724085238291569581736109270513800316844103210314558512821811418143152474873226223109698191093813118043839413268051361815959860688964012283861460435848644287899957048181575762730718049074278594986876622552077239803285427999774742370777300275963290700883600734182645681303927686015426856536121962626739240864175419984608346772169545841232316952796753696432628328075231745288177733823549909110223702250528972427493272297691199960823746871958591617728704065267838347061924645917886986708818333285533072389733706919740760935532103231203342528095554249921524731840713117064186226856512352742107791126562768814076560792277165983784455687091413542697600724379720999593274856355658557852945582694274062176686011180040684378003454723625824844256614542934036034117775541251311694211127902140958727989171321202214038815236997714249779214616239829812375816044115090905165848627561390617595449520729560136899400335189739048365497728730200407259414050316465784168710510090761561179171687582111640742131208196262425333146324086985693986017982736437301441299038913791303385302121698874891676143542746698618910075689674263344269285705210139782158631885227678086455985686473180257252670221234097392278487074327308351219509489799243080690616481367290906785472222483805448836575972556824766817919901342983046972481798463424926121605713676929850007266458424152480191720283327785990808982175656459332393406463989672657604950550213329155845163278497245731992496557533931666181986355151592656359041370329492773639907285490539932660484482318121744676567210351687427748865493128722891377635283906458665193611184311386670236443235573020313012277069522467739017017331237531061111832211192465391602072151643209995043022136893033342292816949313815434291710045918488449398403989399337473087970195301471495295462247219215123499903195564919804769189470833852005511647773276519955004376498080143122421350068523895326254881670470471398770068189928118086615072797032566692593542169969829450435272414146346873174526440103361159531584967477148198589880736676938656259634623004668518114148745107988707228874208798879861658518679732793301103003025877795587231269648623609429221369503232636850151725046683489262626501557310065932540430553479091463152455512176179622023737722914726117184462326280574733692178940059913666294617077852467732877131862682613218078944999199985640432827034118889811666029649654314640070529009059513117557781629747038194527431757252136116447814644531579372917709236184229505538764094474448621001719087641078042142068987454669866320966617683010335011894456017564750041535993212716971912124959633844595895629620172245956783959538172815386997280514092729042981528085721827637471426640119526746473971008186846175100785235922619487537005058775516336048767846588379850581704778283880557925014623230588767416626083556176072922306494636172489496835856191221917049319203743399724170642315592359111912025866357003540173418861117884060765846410990076474002350979852425767190314160802503696783336928333202419581573044621547114470731539291039962679718035954677950063375682112931107850040659443535109704621199681019634172145179261528311135509096413612753294887361738646379006208789179479263279623212722741274087655463086018186522408557918808706385951732312130678633666299204501934470289587594871132498268357653526233693864451282243754371733354428993395180229968004396539499070103162679374375411773526379700679778665835574249761195095648040370461701162407283612792300387518117416018050449182225766765199659693474095710741314542190621298491209474628864270190959633194403679539042855047951882031153685841469474018966556460464013194080005591798116047520241204749634558811085396986592966667550019523609841176422823310357276973083219374428459290745531012703055455167978486866570503159241786906445961797054180763662875428676526029345420056100875274783874494196665320135811430579368905450184067935638024825416101050574458571120112353529489046997630163605615319100510157528832496313554322287329778339827690578857581144685192427332586743108681746370966275795692713293301900856492851482466161721481078404575666034081439974405161334381650814579739725206931873901060571724104906829387895945483548590045910213461997612034643398805710961211312988278796087810853956721904439120716715759255381063195425810749423521053867934464039140926763137343596790713699764811963065612339913765932472375590944833482746549703490831779728796589035633001138612927844611156090260939761957957129763019181237616937327849922521968536255105171758301102853465791914500101027003878039710513123749215192315759438110785191687146970141430890952552545106621941811668340551410911107460967381597523414331597236842802923810748383559975718950887436826384453537278400425879073173783520041060098422177547340576025259763778710603288555291908981131397009875771747270959949295717327880939264836487647984647022220014704624795147801564923116367097458831582075564552364201687245046788821850460728536060000965523572997531391640704904929810578116195045324006066625943995487870958576836343138228849178786812856331412705458717674922666455457803696462886507516864265145687628583147523611999434314761230969233977115434745591936878325493148327612255200125396502414390428672439045392238716756485594969917020594917075034791933981213801668500022509132187591175815899481593671319590258550250691296483723401072672261707637820822022022846474566917995899527513394018783964088369367811414261567718799793477110217941785933436557127269913172129315694925113964794115544838623293336611119230794219242561075456831800146612677372451481393672139224038629556667777347863501515769191369768497206748722271832272891958865131958158476578503850413504195813818078576732816551426554621923973586256614793308574541429000246048051056010239275708418226642482374029639285751941975096240091936855367358839175196811418350842223065962515388489471377780491462515072717858271884620075277082600365138464409307488083087531521448278586763163409981455859415969156260203116441950796002537931417803792699721156737907090097091314717813569337613190077371216712773880337975989666266767584257117844341889178720024304681144231837969098075184964300990014744195080711353606266296306805590196655681965184259167287395183121639955900989987362855411862802030996275272932644208141568891736448747468262899458113179795135097425690253234080072987603170260943285739278093119809049722850330838103103688740282103263339600030640164441103672168298186570096523376549303241397970547355194263469345990427781522828373462597031427904044239890428128036882853001234557120322005256255978620617352542469908708316251599991418571679816173932659209581150318972882562092904944432313996305123156279288753370023350678694580498062817058404832383060271818463364332681517771759819133488958664467406584660501721795374864999327356095958417672739688258617625551629050032262293838057839312760808788568414138569070382284643344481976990555500066680435639504875606975043838567295472511222786664687014557199875810322344922737854684523481842156439535905179163088638268676357039996913571509215715344715027687902475527020813391769877747729656047996340226511634233213856548976512574912711011868738766162541236902693817838878473746405963677100340175428771309860980454758651661648598995678621101910832643411148476821617120349179365738979818398632212491973700866783472651543795853269221649876216925238060248800268008689906654513019590795343840278803261788407382788187699553732219010462010805716861325985561432001695407263608818269753420110948264421529610519672099415383342419663478141093786611811584299193626240305278104177384458950274978113449672714415451212627804952778118791018233596535471436483784272808365530205981835414893197142464053035905254744089589203840022138415193422114040246212519164357251211649140357654105684592997610403287766692964759737503709679700254826525476537236807047162110096167185299047741002197763098494561374716938241481716692923347676186769422098293180438712210510284288229685233856847617078576082208310929836471488903367294163562293745826263494711137064175644824802032379651715148645532811899908014009130075554903323233633219414726859475322113880453908690938752597346107858812558265592453330624874323019635709276837479069368473676635186097931525811283120304307219215207346528257457565978017492979615278334162752873007182168228578200468674917725116409530730930201983791160975214443282516659411720881837883492275482211896606185528594292514166431272788373155633060208397692089575141414563297097492737256254358106108371742428140934398123470288599733088587474417991465244214446241141142348404814536765521483743810762028894875572121741765132970549180996348250679829807209307381506929736038453570577594588669558436774212967674576317332549903038950274719503713917261662316357413318863359803830861788643993811484690004293863782409978948055828131823641469734745059762136614981425695262620345004194607642314686608058254963374024453184289283107399514100260954769620276494909190305617196796146770045994885751661739980969656733536483046149952413450807676660489030152103002221123689021314986810719100028625579487658225568465370596615288539466676119601412516012102535876871123632554783596395937539339025045069640932431297200990583613785308828505790605297758865271684354156932494506681341090339031154252859084019708335577247957106310098287953603778981856654520277299099969253953152192252669104666994053141068450213155117047444909753377458521773972638623595158762974587584389957994972770814039522837097054379800771464885361290630845642865898475703759184582562421419607004908387464214992755125012261977142613611151499322554150721955559317051046518081920937295208969438610310038497735732101732856591496707005149179564154446983504478037703246962029846490628617797994749522067606757941414059666073006305738063865727931745594758643405291041766194061712727481551750838183251329271195762493250558157970536321505493954015662296595380092737076082869336189105597120499981475156514421178500760053442298971367218137644114574564807127270901309009274612436105122661503058560190136655038792564692861744201370297168046787755182111557741875985329340543893247792810167403287609466199071848748929925922420281575868365423024516296488867753418556130079858596714458512378612662759877134261622365310688247015757982194573408117912198452766960611926925160643270145605794540250503878075552560969892612038037920945623903016894602073136868684043336018660629694563399910456095608072201615108121609780136117083307152848033649991313452079965715116328731178758920088375280594529378532539831875655629460130801321422567104242008513419769781742555042799951749823661757684691807810275511204372546510279898281991153995210656947661368293889947124702900245978810221907326499141915560026373248491016632918890605787240648072857274137217338811214654266508266380258579028573304442641280162453225913463244112035403980448337095662951326076303166620518597463114393598394859356245367255465763742242250805341694197328075389572130211944949268938026318093369835527343535956334765712482894905350200041071661595943374791894626406446929442512645492814876781907511212572646105334528688376769254362616483423058894387068788247800898085305829777998465883069679214788181117135627841851149770741938996520517515067780172072553860617207664651971264434986021217710796812112591570619694485365028558248390050041836791702661411654832601547786627418790910049989147913456655361761291548470261463868961497289842374160279902853285974665837062792262107773676849183759102660336615901851139616463749379461415528248269278348253352957445968564876967906849029351710542026696641183184625040339619602455689350028574765114242015234550054741391710781191299014768636774814248451407279602180252225267764912259182280717507952750151703910202323164319561682642241921221340383744618528242122133800599637848653005066787256836120664029092822660027485897898446638094925429027008568075318891224175218059800654317405116657053008177615583428358113823477872176607447971758679123972877873617675383967422458194568247929474709690762250679612451666143906223672124388765725715598118972030883069380830707970031540158520515878323559693071657859416789983737323420694442264353472707068636032032091758685773255675713153944927086691790275574274235958652739668141655995306138005887515400650667904509893710710403507738157276794602308589717360237560265030266329476163985129616214288284632789811745873095505689332254067614411475952008445618791368126697951534978464715916176716082315006117563623362142306821620111413476886495992376436789714252221995776385409318901189493886365771858377840588638712367794882254828339700838486086241070047956989706593100877865554145485843529280528749969286731204931389314776524523452357091134719683409174152933723070104267906806892714269428654942570516451988287169533374919062776765122266300573978250559477396648039581671336348174980504635386110369434416439845450139691229858414557106578050027123634235588021820568595917090525168545251792893244238737761392937685846255044072123068510912836595159527412943095838777894038704966800520553689646067413803961401953945297687410385977650709841141627803159781902619228000191057872109078027634623300628161357054374186117197393555027662419471255961449950161687261215091070759097836257362034444574929866943712881689542601808750783275165637570068433829701273611677343040385407708018336056382823227969310476489166091159893894581553348800184823121378228447035971914156680968277944591511295000858038343491927380581588158067409803147933401529596972889928874452933516620050130564812523481208789411845078298074605028496636480504048296970386160083696382018118622508982529868881096845468264429517444756187662053914297795995898081707757346890197596094190971283664011457051139973969621542287771749058114548682203594245818667006089905701051343484465606595465080269853712987839897797929415661303554118257696102040373492544318994486895078867646467634623001754749401448596240293190218462909219682635971427797257134966362919667905358216386088781513442536613951229557257822562415382250674261379894910143009259281311274458417630213568432749893512823686132347597317586443277626745966457720305461025721403151766546984213497272812829670559147030418821715219023129403088984722887037872931372834216568472429489248128944825969273886622552159108012260253344514863786527340541962399313629562361811635536172892959253511484226898209133555018818438794954322397038215180064941750549306179814805960892649697603877254856499588100880400843501407278868894618320494872060257619810622695362355283925465896834856080645814282580935948980010244848821895900195974494332369246571870949870039196062010954787286618581310648335551732104552398913390457425438506748719147056157498391009442063679544601520061557351411786050409321992105969575608150839527946639555294081447327718297657101949475955288720099887688144843078300590306950084860472371076887109777361720858029560759685843190114922449953846271890879602957289655474813007086191868501029675790400524892194561129056052739555645185500022852652197127571358575277451607105290495809272557331899502620341998312519481209731310184294727579597048377865762928925086146736386528613886008167670234357625084182311718773107720970037745591641272147593864972232804987357957444030850311050757851390038404893064347910669159516130735403569742384821492826802913785850930304177849244843355014291869391788512919733247512246834105415618616663176494092011884841891997238043067788193263747566316970243368973953836669463970394908151066006754648166475696307699522891907917993115628309994022324427204624782076086270532246742562660547115644617221991555694645881258669709011189477736061030288369560723482004379869790035055824647910124058946028769261622759689716276313035467036752006897341441399238709434961249717090930930372202322370650601414536990888091998442577025870024427561744940464807201936047635234773472025956715418851756718696200409423539129875127951254816042184129760297496843886348350638984030304672747011916840514227029502378568247407680376048419175885903990201669721300461446815429868350479754508333656575696206326131763090347937849060808357400700053722358649624525371404994700915453217465864120938706537111969340686093735911813265865596431528236096385935933879870441586814815809314526341508032558103702336050228418642081957552458035759599399421874653455875360345027983227618189167186397815174265669673921295411222784867653677247447948504192822198251139784931634757143486515907363876682692275069416002757751073129679589162534211845099569634448071498628639316977270874967912483706899620458034462069554372019684004400074185601765904090781809182987090740577889643597697355632895379743330661159790203315009458732933455304332720535808523122963473439092266368731970156682286315358036098252399384274120139098397573294025309565774063583945539353034428039595001661596634655576747876628096973415955847302060477361848325238422600551887628281749875171231828796676153519962319875898072754849934876957922543704309867557665211092751086108735574227914963813037852028414129538421765610397888037967097932615893574683059651044393891414409634586748421050533761781275958135498994531482415401398383122399079178688814525540514911931421009604139180922402090753679203841761423605483339049621054085438951748468216056792434518427612688845696443066534824996726239113956936123841431480129951556906002809090005667876725342523468941635395628201121522459994141634013127314497871406816323206278363106218748284777622520569521609973861299869102661141333411389635467854533434971916953740777354172710926354563295350061688166313838145500002538671841627347185250379525340323180718281067990862626812052585986682909811921386665761984814041685871502785805932967706771577932854155059522315369110368974181898744488379358351340643986521018432072376259953189536118171558967486893464947044162734154231171843170366904201631392701324216466596835221415094944403994272843976133558156953257011171594649765982652809112866006602094193177038866421162976541132135534545410863036301684141815871637444854850266717325576562881291047762335308719690357968794902537549843617018695262667313205126854520743035725046655212669119017728588015322295929278799782050498479496413755197323036626000279000473290084851534573607113152375606933813345453489844812617443028230776513934574213216503574092050189566767579545935534105881213299587774515251960097458698938882071546089428683544713747743853850248238612900164789216839321210224054424092501388675546947486904708323366211675742257548406551629913767758338597721764280891702458325486292318631843732417900817243790831085795899121597446333802929990038838690499219745551904494571435829942144246046776487608165971756828976132772138932208544411120965287657118715299732365271108443686786684656810245984763080787406948686089791065943838613845001309497138801525306850184762994781849965294697424255713445040255720756310290861749256668143865231797396817512822619638615688677483298642884742401494628092897700813710334643909974391587838642691677435897628536881429037407205856635686558690567396835424199316044877566526654597635894726974710740647993606177847990177252013534722108302255546629210388241739929353280984699723419184680861677569791446291651664921933872290218962741167757032294285939222278650479840679548419945501816299714365790947691258032631846668217176812993651355948787171845633877328336534072574769815151080378523401475146944196599213991110957769076715332031971995721494513890567221825561630203281597747265093418296395379842015982624978085841378885972143899692215513090950673661834571568508822103188101502401570413042907009551373107224610228051078946870500426562210120029037573540450992337362854167711631644236507393943892122333160809130071950762691911305103637240111541101275179939843543707202591355474675540874085153018283134523889308470944476414988078832838758249928855998867802285419493284093764149369940101325340873039221179910126464550218766941989956391501907026547397637039956053354087653036506205078683066252941527024332665546568245373163316977066503254282537513657446810238425656417912492775804435954602555629940921332693885707923887418228978238717728606138106961303546105002854090668642966374389405968006522812477524389919690597239907608047624256491679674998548674653489488369989192603137984470149036139579323477420159473788801635718737382428466003646136790724333656516232442367299628493522034772830325078676809556881303015659989598980928274892878069777087858463874324946884016730946740868753699855873687162601916699030746931702585264843285191188560091932583628124698801304480407397875464004997234325307763110549502419430035496618055331449046836963774872208470614498899766147853872178132053028516761801974218633985220314460551301785252556441775817613666535249964872888023312309321367598254756352200123290559462175609511389367026710396977762916187933357910326945467660424630886331735653992205896271251271342221628874296354306170991135616392531115961977415315061601087677782972316848338507918541630148965828517304887089187782511696983615820694147968900512534508628201570023381043365878896828684989146454193398183610794118002937826562872453769730521234935171710120488728580642685395932196207385376603812278443886416650742225165628332585711713552768190560271131299703345132460768381755837753218305319389700648211314536176116729043713897514096307599583022384457696091052418831452620900068488071789778853137724590881006075085855293587763723192420507173233741455541840505064799921033464869883286316079411739579753964356542942821265406634561904929376677354884134148072288282950821306433224289545595957534893136196622365969008480313007346090372687278014379197193144016793432242770051475183564714789240224809354566316766651667626621165448938388568229475223876153735881087597549194815382167442038201493846503978228771731247592940078673764340911079734759760993140228638744922833115834359110906993984986234018681851254605143481244721024665288835516064327916594568780919627252919136926093200850595157359284588800917915577730073960247800802533907311021371400641739015051847850717247781679837589473656677177649328269268210686562349132417242941278239676392988431516079287907730524271249016655808330271980650494968163389964550483947897778428588265679599292042570701438914439326305185863652997156387745991871165835871283669383941856841453159492968481699828875400144247860851204976228242122355127653729922300398048168431307326974460203956895147113779641844402750069601799538080035629488379495497503893270567337716113517996728094421348480093764249846603814180198099694785705960058753336559659349973444611210577338636162016595013381966936964171947929156977609184218076545351848697591366952532659823832328880786718375137989345322939963118538630484160644421874125064682821526194758138568398073587062098783165198316482671369306051816913547727909634153633792497405605212918165597149364475276210375555919238976442522869381446705423241563175815860250749581152242798913660386032255835064247985321636468873813520026987970689232591010195904322173887573307354057153665800353601623852361893645378863756070288962649451276409107937077734528026171428613259608457208587787115247439685501073849959392597970656953692662456506411978277434680240407332456435337742056036576330988578381856753926445576674565877769982428120517993066108847088353030455798170053919065970380344634169884743699474119218609674730598515652114870898735356083552772637211727134396848697122359832551847497781574595234818955555374460294765138175948477576175929197099039357625782340999366313707265597153134107115471366100037967121103539823926482073706395934270777658543920918873759429447689083986424450248639407678978955929970510552148237359413572465623458607757383017931142791138323093131255964931253070768463459865057337333197100366558073391013013447015799515256016484633043223617414112340490546244311149536992438018103609711034557577757081143435765547483404050947376605141260845895529085218142777123152768021550823105768832912331498221048236622201225996189166995811010762935775428266673895878498930641561097975486022608023737683517629572798445911962925185165332743241535189710737666523709068611768836174421500128366113780821677640971233396371493911465020659550341301944938295122372918154388664879754904776196371241525977013218040244270711709072169480508487703960717335690157541249274246606614159828227890474552199664059311567726024474520870154801430521780681234998649410441139746368226079431150355578381235546216111288012501605705975979926453347006249487467689336944070541910591644383826876073236975517000511288822397618993012383148329159906155054553145925019987532565947318749976230440912321578791508140710906234565279788332891982696265838824062841039186538350056714805673396788016788256713366944892510032123426694230159380927035499793165674206687356185837877821002876323820426233324409992476878290056610940449148611440820593224305443728056566652525527125831395479240265808100382639084221223201376731592557939951440334163518420649431709895049523088832830166972873003502975349904542315677002982945927308435577347489348602891316140325024842851505183605953590058085288713485250724362645469725269717840991554048800693050429730504337799285300974678109132742732898181374533466745545283716030381834088433439097645153683679187426706565928665413522186115369582296662882308574775524228907611853442402870285015334976050261878663277645234563131251917265426633620964139003598649716372021288562545418344866334030706800383983829469009165195364189671376973212323198991017969442519050325192737165011302472904766785663096708023787509493780931301843647408579219795533040622625332025010608106849809099480476962438651095609064731699138509359337243241462834048452116978274889367364736589489037032576563161772148315926338864717760705950217613952548424870862657523833483653433840055268007310555312456074477320130337067642421967379219813714800422250600060063958069427448353406683111480930644452476270588136420879770593261428111886526480680427741806813461665253801886269123290140253945885214413998973576378641791180142912263091092067222526565594476564131182160067839969338621370055385174305535587822295202874091580708772139543799222641021362420367930323078861037245824792246844084297261290557280553622579446476630199045830679196401231405330061647911148592065219939203546505798604854945529851694467078504695952761171201138259955735230587920474170015883554363437250964151818762593803558416363298559469769334002546881978727216237369930866129375886746813099721325168026352405951049651843355036781853464398559326210288886265197234095227391732886112335571015419928921245724416383605465053682942217256591488637377376287374855936305213707849796812179363162115695129878394420649809533034449455961877204083150969971694350683379765627043710380039630141536163037509357506552798052870482760758446945862410423802993792733877070190461810052540938076032382438563055501008110735377971350715743792895486530324148923563245043514403212785651378494863659790019202711405313752183612580043617958352227915497060252814588134335751654734740392596273347216191666354756305864740830863032061889432227185437410754350558965362082218191516817323271568851345156273136005332749329048684807321903162549883030862154692109440982362392181989312219983737680107431264960922266448040501842590501520740441963483057619154508671216456733706822344727216118107880787385705594183867420474975767529594565275505914295577070163564169881912018174045011342792379511319925993877061045166293579745403521528631883220183660105584260548855144035883447803325272622913623849865525446097392116483763613790701340778378857059926129420625451404720700462293307480964704321258436583008534932257382014989310451377708728472620418425349893334967120575514478324029902138060874476928350195963456070872334870344712387920788585711547971484590622567624338507307049693013495227340406551390502077313407618943298084458962177063801458078996749834423257395703654646871124710652073364950486927586646452383815513480571133514215073590395687003288445569743510447495150484578071599680577834624092802261586801217592396739985911730378679267840062976231477327835114487923544612892308259421945861611591038431768286544120525829813000283340337134844903732211865981118568543862247411150839171693549998070081129840692535869029956540302340148299084369409226162978506531253082315007370745718420831248835778906629239785946223171295303729023028728503218506781102005858580489061531848474393617388949616866464221856722011219327472757768661223511751259213344008185966525888879778887593000267682746997958996505855134089736666775701537134653651412616860247749551301779603077624328392040851880879309084428523057373192978523754789032093340322401467039624961236240519316566095391108416354332887307739311495894557140526898511053830958331395447406107666673332935269690690148716443476926917206426755617521693174588260067177617969732657583201827451435667926872917665101838747490870387386181835229311498406224796058654829029413550157045958467981250736398523471438638092750049998294711091916813077023941704870380937516742328703786970004779554411960715540428831048225015799562007967250082200626404685518473293312536081485540621868352777968156658480548754811567655571669978940059281379423870994729291605900433384671161895845085693222419138998146844957434455490621832851853098036386226524845964237502177079515330339435356968134159431101004705098037504907284009175618183692330064077622776048264708055419686160161480715648678350398598673442653671136773505319020142116625867711238869983284767573907916471286504953886328309183333388569040538830008940070137003624249039855559426514742015856421136238024831174630741975478284048186944842174203219956306291928372050532835277813231346258171210068200841926506645343798941842686015746248214817384067124466378357907164473149136039256448229049846368520143237907909486054710544165293392345203415203378748084932276756002669740429743667431128694329194730734136019310978158214437209098196532106502563127530862672241990534513744921716869178747984374550386939182509590202075062393579466769429958228879250738061298527727943161780683849386042836311957973219617160090391377536757206766024002077388344299622650485071903747737916608980166941811847474057007194066206695679697320398540955078136117695282919722113609313783813085163830183072765342976812662809135551012901048483310667434621125508819534615340189058995331806034571458549078243964317592779904568336089198295261191006267194671508161986715761646643488477147921592591715390140595090781796912096606965240831056453655876015868895555452249746982432201234881935755674661552188941524447433571999252531159327252792895769855773926026645354190587506668692106952760835197603072208051195591079700131180396876101204437329712443029411629311387466695057293538222267136933940827815957454786099263549387362849084502524253294486049772255107523284856298221372944893857484812391410640210709140015527549468681389543587292017456969349961451221198329854116547971499551735766646967495232481963011539630097563201278275828342151583145503992906724105483148961628840985682786066852238866738517917442215685332633724662801302602864418023965384090911073758925594508327235798299195984373840416894804685532234010278177178157711435937118808324930423683600786834854374364725236577657440583767203940289263315866835802139289888308488694909551604766653852346512209121043469670998600832191744646844305849284052464984179732016946363708398301704113168013167333456449830771560235148800959236540247669750510157008972617663893597183976647809697191093241169827876333528980678941280063194009177359472410812261953731002175424704359329505442676713653681059007879510642152957173484025615565638511866961245760339500087107949780065213807872793231695336473608319384500445310087075641571330698834770624623423273081515641357674404043468305566006655122877768415826758453297377941766372653813291478078566192974688550556386554189262240706476948328520444862059832805719612179911409693660577549294896813832460607308091352364734684964821911197497021029416524512661885869484000531699610884657119727418952261663450310402289551605997019964153793323831205012788354807747773388064201183500173089285141386587539319566927563044889642108152213679626936346613002775709761889597871017151995427647325991342938898501477128262133723286480850125005689222027561601819425460410945736848217877671100233570177820116238816180126382170105429877059045040307167502273508055847884962958431224324201808956058511039767611466667300422997858859174352216451361750858764180571458120267150597733087930932404334354895640171051108906764153974921526724179223563334617349013583849304137128836971588413003298745561640589517901886459709597968587658988359737315972408885702326818099171096573373602086087366127897327952043402324459670434508858438102894126498414472136826675943118536201430184971867370721555081437132087788609324802820665847171113840895824833032359906718910429806034527449590225672891366512423400025657275907809944156682715623208626904283073690646743920378283694065721193793420450992711311066772924490996453033150535442600901471664828872126929289449615134849534829272687998033158062856992322674112696518347356292400305264814994507834476273980793681094412656494157240918749446034957929922444080193167985104005531824528587958726797391641748729365784654445057523380473976083654618415652232160683285876446003685909300775606109006162283720943708555742356164125591115698740845906169850052452499471240764366253124114348648701278049763403752291033632614933810772537431679799844855007019713400180305115215969627272204144566302552867021928767356325923772813850116857922089262016970548615244926595916667792895603375654300319750540089121152770847519316256177273088282877995422554116689730167539388540847504673422317435056340679318677990740917782040106155295112206801130309817039941569060324117561007828169037369535159502678707727097395898396245847532330324965376389617830800998882819356428734447402914339058818660568279115457260523232918581623457727913174246896097746640729530907987458174605960888274466896300026690533764060291462305481573148768055434797028813939149831802589023587611680772134480380651553961915026639713069692518097471874474787304551271158907338189538820359099501024050003482450921733796889497488224311289137542305581086734994075449472588466029563833490789271922217215035085167732061096666935144603880243392405609617406454053251906444369752837362383254653583175160937623993567550062965159440706613836562848529955729925165275258249551801033015342678244877631196996039751332691369356515949870030134672274599040249585017232141821668455819995552418377331807730087569449439731435852550969801925519765761567606852398469355437049279371803331271602848246292578748140098179426436860302243915063601558827416228240781965680815743440184286277741093099040905999546316865577195658246829458517618648135658161594695661824551827161041128178959187854424714462651726665162342131224177354787746647733788322926905768641593599049996160874498560211670790206744155867089892136171535515995099781915748760608178640555929569295789273681913596705553487152330192810694525722825894742072844690253615847070481338504093340463912079495707682006950724772921261005813113083180535089746194228601680841259694594961393625946591089166916294846931771917693132197267283672399605876535818201351005274335467009076041813083848989866105329782756746523385202183344511959950020719854182436162511175275937497174306835801619625510201117088939389983854361574481670597973940880317753661139373128714063210467575918926391602859590501626368546362031981578785761558093490490715567662398402668110821317280773282808482567092162531655154110088050541266539003045061286469312094340142695871372126208091695785271371420849419499055594604659122974440292749648116974365661122664465402676428235291998060015994281282552746078653117548562717688275992564647901834839779593607186342813844014222423978349045306273209904159110821646621100900356797559895533768515039868192677766177594235175563852072465198751640012603394243477229964879154833569852448892869066689090932766117843639653178362332926112612761371374428657226188244578784377984601872558154125033585355623278030908192282721701229892606007440575439399765483311925994881259466460940886517592334396233415640921509927574112320826644970672340258242674255534663344519537193210341064262927670562809136681569129828369118777564545827690373691344732819390071497579060191257159602878649233957898275422422442918872969582149514479285451715493297636457072425931877941296889786458537047397353485602232466571952747024348745896820979695115728933025060423191149444241085216193924620480744748612417372948296048395162694316481184204440310221944060610565696542107430349212064833949872980459252740911455301774538741624353808729993150277511013021418934894631261944433913924866904879239788327479517708979659068127274037761691670066960833929086861310216540128922065179248053739515379901736176032419279513581742957553740321310889603021446633418443593235522453194250304053866913322799856644301304213114186039332563921973881354541162548697015021574699399512922325032288440175358739457036804691510796192724129669954979201030278506184510407578811487142352436803075916725936336526891511387726932606664982523080470422936896065500895297800220948093860530733216054013235169544316050310210216743392868633949533460500689488076666457651210408088946086716823529335184720068228069347726951433807523636451703981921358817261382930530733290726871059011041991488614616222655675299479516312840296799894750617327594010916868483171742973419971803360396016087341739326904424649985243813578463209084648152569475217414688404213153327905928452834895539675625265772472284217731199801531046302288198641283790433049231481459909487465668824470239969755054740548523813609885146690179624500823365588185885989058555336629664916373315684110737035253453620904169070534625280330656638610481399425930985849740727278478331533878045148487523091787837745721559422483664823299553469606161432884056743465866218404308206559971609478387983669175289571832660378393310920192184765863840324704098593975536320556891198851316503350202265411443620207252061008735795815613804689885369996866324114516725815482726812083863743626924167198630157965067824668744294193120633200002338258630381675276117916328479164513074770192291692046357058242451545726412890522276617030096824091785048621119779022469719778179855521465489846218603871127457293498914590731257419174020762455713943465613776005165131685245861964517908903868150771809781046879653583945752358601380185898033498800804457009560580341927246703985096860332409484060422829685135249416665588736704543683084605134567227538130179521507735358820358734112771978390170520288892621763487570431044100846292469257051453389951055962989349207908271997494877304919488588783192641771385292466590774268055581330274797158585353646903360733024962017091943837090546224177761357058630947815165905870518964684171819217257982761203210609894024862758044220277054322873912161247005650522150470430852938880673891519823013182827926916587003990525427264688381725563067451167164665993536282114076377624772750556241632457420868873817956981994737938973750641709039505106809621988954582388668988774597767271645144420346625084279116629518764825441472656275051663582585067216100168933867348283428862080161277000710523621243014245594919447245485110794724049446617951211814079234929411426427087291857113893414783933341650123041514306768316734955262910103073335056990675846380794197187934405562338947559848338943041081689146383137517164095094534380841924864275829445595290956197620767031662109172062574484934992893064165415968712499561928845095089565691921591420171801380461458543819448328983578275859748401231796010121759566721070501583760453042678323958253779753964459524955126103820149327535202770285248322559726156109095824868861305823708378191248941755959133900470798827085091972726713416068086111240245066063807063422392758229132453335269259111733374841802058887718693244884052204952159894254465510363990772253426826747169519175321644655066151985588663497745071097184581040193074652171080820706676843917991436061320917139417450938679067558248833926105675811562265202815022808331581455511761192599976533508656255891292139918172887713381414590484640947798536657247314587618374596351325058871334416631545631192654690302752735282024185008354737196431491896761281181489687640460065651678960552518531519162014436743725741956744825866983627136690946155028353927160540172588485508955116187551387260591747662726533038016915704577774664159374062724479634364449560593305461487032251936350731848169887566748554125658056428618825689497694183499612459340549003524268283179278597675765149510363829775112034178078402470238335280894883364540910479170216867243529746759810234416265909080561826520095402051906806001503258007455927533125514804626521441472005920855211910456549310208241532405490694639487850671958320936045205129748660684406682601869900830257611122248484340459577322785132697493006855602557147802842336349912307731841034750748823706151694537396037497026926528202858538699567125019647786345072781681108240295814188061973404596249438542282697440100148009861407069701395880433490205420352062859669922183082649739099950840616911913269515089727656942875393444825089585828481133013359444700075792479392259755992337895955241781495435197568991923126951951626910178260360470544206864711991887797804266455697560342974843609727802079787940599123016843945123334987374404247796250687539234452202027868266086408557866695018002360384482296377640692633771175542106270418912494454768511251278418614406081893126223903879462040448603696276420322315241286867923266949860483046647281923124974981112227673611770751184282318084075494553147291553510193025114706525128830004409976053300087281719445411521573687706745590946490697461240537300434179693333031711249007000658924130831706798526864762732064149243094429707004988055720971222527283072278319696606481945471943001607769364375157730224607398757037084613728962082230088551882631325126697656902946206640831395038321478587190864109987843534561103572389681188187801694786005326399394435457340515391914092268602488245813808619783730525305554319131407440208331878183222984993512186697459271989143137021974452553862953039835420795458704227268686271840702564304178869008080314917481628276624151026339079268955455164816893844822585415624104291909174486533641047655610554954308692065694843892298493713327481971116806214033868498436963829219630021792271184669470823850838699432168696447328703147334495891133846008189515490144964050735138830775205618893420890603240680011665910043432144671870496787598837009983071202009695890021637752200230662825262274083662485055768342701905780351471718705015888434421442891999451479042804529470797872629138551642098094239224463093940065219411336412858702099891872422892984594260784905359843777233544761297164474355343353680038280146476196281947923808175449010594098236396851064148611152013454989500446452838696349529654346838343047708096873666215895683283628031367314517598972642396728536492280306949602672952465263165767651282028461652724083493501768848072169614025643497192184032275357160521540749674185260830426187492037849157094014415729172626780983596163990010279783255705087144912352281478310411335520527108211537287110280666374412752677259144151626901322503639955298497685048439216967058828585226009815970550115728416085217533182599785925820027975836864292590294750248298398084583993557506614333087498689936683398041733938862385258020018628532439295982490089264591250533784152121639133726638604672189861352251583368660731281182884073725561660342220589720851780247307372660834386913706392177048749446509857931395769157559437669406656692397101951853505811330609106929975966969518565611933242052142753613927879318500729433335633546093352331888651923293384355571060464487522000581345954805799947893049431343542095202935740257310971705257436753431527461352341822578784620753463073341745377971914920152943740799006090596282747922255928550840112648373520644183742371184617997470764351502161131022737008487524712183440289741008113965090493528792783402690893414014554178356593823937236522805371544516827112117063709627520996198406631992913766628900363865934273668805535068814339686982166766269709038437008365330200056900962308720082067375974674364538586725519124683635490426151577762667351494002779228904860294848585592112401632767387135523623454480736639542978911558658698651064964215565371255399640353253686609051347500491463999095002491275998116694561676024869884463742265386909718902717728023489241784108448093551985323347586399631480851038170170566500735926636664991260722831410292811546013963789029077140625170420910337750710785371580308448225312499001086576323170833237906816813510063530797207181642924594752342853587832148912838431990566125293617463968312330581407987406699563646473424815023305339468923108639747667525654241054657680910364285441904650782186939594733054998213507828848145888275145712637887343938231933117500794125244188725127587061243736259282656516255745351684886220411119622516153363603943925452382504436081126009869211302734789965464487371687523637437382220394456319482516259736942863891487894150533758912810823027919212108869069760313632553742367941985047506201394279929650526991619337970096070769719517677164771315223182766346115378020633881691606159184181253673052885888158420623466522954952217035039661984162860026352785219334468270301598571329528132056767539227011743519049812771240062792709040056376308858150594960483168948276690969600377048418583036988863525784607459724037458639063940822007246154745962725765704926351581233796656014271565729202504182271526968388994728540481276194684153639031274797124087709320127583729233647068164835600812039279009528255259176510111404133326644971807573424356567194327211067626631209151433012003457391760849942540099692769324326634795682719366855311421747486170240544339913250889056231478246024776839246109214689145597046945957829495521845435107444688720853220357136116184544249896276323204343862763188345832060277782306972460703970796245580785574855548244370970481118061522536504775938461592414491897249024075844191355159098421190684804686397996994501881475274729028358783931746568238334124521323684005487036918714494079639279884935527106922254458155899825570736118673274427656813576945605071595914131939735173808311353945518877646965884289250704323271525315844760493045945079664500336482053109437694915894094951438821957896587191573870260799054256378199028095537209758611736305702441997971411526169583083347623176321496955248437238405927461686591271947258876647947370637574156015027224403446083832421291898636549090791093407663710868123447440748638252280600902893746913138900579736145076328072583012205946421817504377728567788303134719664833403041657899667411963571806964917873875753171689194998895966006538726599736046585783553331545680486523366200101805171912016109353058118764386770568889151893179727488124906214794264458559971700507365825372296099820018452855882798285204328321860299810224264759579980039730245748321811728744571834748848314662314926067577256716689485047682818861123397887520998946709052299217695749750950494708600084986648001318669635481818948476066214677167326684819683925767132128880145543873864847958982604136703437681174928265869405347762294252425514074348782031927211882339815811780330774973548572876160606895148587027025103522549257589336219014506218337688416994650111415988265941920492584442687648455702293088463137308530472448008520963468759238064349398476267949122578964760618661643433197666948032039728363734284489428522863322612698557023480298567588397731970528899054532209473141028003908980964710571851807983310047275135928090951896702008916162442910923944620016103866132198020490320637817199136373682286415363912844366307162242175753495353517841534702863670842815272016985079800726554039176173762234442028068592049181845383518124017092767769555995051496019122245162264478591048080575219376295470483043068138704989071730206907683224203617803352618222618800862629870539682501023312798288759647281019725047594272132406035077969833699499697069957527233333321726292957114891958645320275231851131893582861128489109782686042803440927299990336133148811865469204951431701772492415567327773111974916674005806036326297434346881443020114349990140930296983050112849856116700049225705557854577754124827487177943339458981636648225125815491772178850163323713070465884257873153119404116687333852924221730542728264290359975853441483139698724953936254309992323030577440367820515131787383670467118441274752346914047070605414804782264736057617023871927282457768754897947999423826387087762252806522424349962589871054878117435996169415536181254375329409891630010794148317204436912605915543299016552088756853020863065879152301430989307446563874084839545190416973609175345713759143270193949553844705899716537346890427155597417919988325417605627841918208926868306006138448386686275054857845874572223370150505907980623316517616154647562944645357929536445260329994317335511614510080678049031211085011355989030120419693210113863969265268680369897934233537512506512172294093056629017626173389879374552234747595626109624460242954369832649357728543283993187504138824661262720810474765346483220713470578081661342276964473420756435375730813873473218089594937206974782355850325741358902524258353820888471018387986652190621044722393013235540114803093333634815306469205265551497489534683903006460511995512503993339689826876141024876178924344923690778246298156184822822024603295364931848098112194764166376424769429791795203199559509542885837191251988000698261290060004681772221640783982050004492515998002348497049352826158049172763611177987116806247096429024351570527702672520654350102582941700728688763472188407907711297860794952020053932652791414460405958069708844344995987122675470945681773041158199130239474475427958696851556038769428530792928971829529010453302583658879986550260913235836598891079056196355375115843751494148126847276611341531592058047737805146385240004391182726085926615240531737852645956378329701817939269328806719868609561733723843526202982390635632669109261021248154721341471221967743168553442285437813162730715892288597522078073647575329902488691301310243194470071166963688550928412197725441525647913729067190363348583770967876896148214692286902817227565616452717358843745038042260541727119776931938154132626517512519726616327583545214236644934930132161033175434528183349693133584846572311283974627117123380668192482405378256454095874786425308861405993788412418797598054464430823794113775837207433883867202249492842628755044638158950198477773117318990336275948575315018711781645957180812445977435688186754700682426795455489180918170640803326097316220052645565652115717867218777490585040976540418681971470609479504548917375361228515748676460282160598024228400466403296383238815804543079750303204100188751184255002217702267972038192425337257207585549836097828755187413409379882962863631503402297249638380301590642216727021633078297658175895492554215630531340666143443972409421692854429661074879698471731175147973914245860317024807917979420640150584714739407348009246690078201065436219529959212965848159701748792603647457830238805049405177932504557878300708669552565950466666451361622841766637626714496843050965781237616261893050674539342489748842310422717703478836280843667095621166544218099436824589856337031834578262972995734927668595671882982716682551152116881923315573083356423543240087276739564608496412575594333250920415867858162424497991977421402530694503246202197567115060865108279929282174093445772915712648831441263013676806456441202978706627160079777071231070462459697798673570968083572460776398226490624551976733991218321427360277085399420575624230258242219644354610304541280893931623396320773639636764796407338039992821352343522656998975225659037811220133315926666033670139011982412762756583948983046474779995844477740801445547167918989263017272064655990706362040241913075420759432178446841879966223364836099083840528949838418211496820925204999568969001661552903356025692093477527982899706313100057348718928226946042230212910572135771779719859090248059458177401922049534660966218495501267886025850376727011418177702527680534683337531767221627020890805432655228184165491720570388971279013342676839960399392663693011886908762679086538821514400332486596773736237695945207497036355495327608135191540284236241118878359143325620478084896547685014065934628586008458955990459900186066965284293003655431787861887671270966224474887298889260516114462191876628836904729173988072365693953649763658947734048917333177950276468835431090605747279586815520313480920747296906135014097545984559554546934540021663540266412588267613848950849994438908260061498747192901277581621106318761653211951652161737733748385393586201467609068272467145521841336997901267589146928650781365728323915879078779107864520052176352800171607624376636109109133860342100020833218303324549530548341727778324574278716539157860640628676675390681024507825913802662953591155615495151522843660782098720832064567507939136154544317213156749475129515979881348793697558855161116135405688832071511829384403315422725544773336288654926277401294603856376001876333743878198179070127408661752702594707217427884978347506785350852172663107420369542235237818007843017298470533389216778021639194445326842255971307137501519146364097156007146192281206443509309368626737597450347058703079720662813958070897817081475634050456483293384893308621275056191130603684854843735825387584944434183389391361500114869528820696387326203934037746040677995513216486762716352058206363704449248409788041498060143730781617035126761821022797071457694537190211604739300628011461738683981223017888284777389228328519506838726336549313221877251141866777134482665274538337815948970269357959914826811992962505268899763144659328617819457953481404393359666540994375043511756934684712139935998693229654976999363307865169858254677579921340628181673030163802379736482255289652062222966353528482991633900942442811382469823809852579855018657827891226399381248206209261860528495222678139716147978867847154860848136247483656190376569353182587349784823991798485219998709695101646993676926487296977855988425266929001210171530003172076224510722903440652539867310471678616528793099188049642087194345909527452549486259627498864586385564164759550537841061109120714514376588959824107566072884456789585849725689833244131576343387159944088323705049609982024602016844800615930377081238921636163752069340202423738739929493512962657100736605215136066232717341459009075157923659373678656471973298930818109162048240855011575671806813876917608026370018924654193667984544452527943633477243905708490320222778294441359673341603237030196743841998449960738044396715154516785869425376912388242813649716458669186366283538986324748165248629274377786352339537546205956380467106586176856297465288723107174323531944296707872848892195048625771567648219264962021435186625258249212544423012995464849212716578430964129663685530781544604416434508809768484916971269814157921273619551790181191944280700873811645497673855989537504419864002585433951322580832810154753454681474677144219635284303851054902325960249134800440953410194374519572199934887071250481290588547426386303659981903339660785345702606729333398494595389387469873490205440039860098361899183637621395925374589340507146007456533659215321810671155647660017993452442933344091493501620703576288448947824210790528402558232037979296116755762348072064376653000273537897312493453252878282114279309276854547969282484228755366001130139879392025808959296707624061073897868687967114991178375110869350135606418856622795868901102953683025259506642764703616004004220989850742228522891266992029418092343414995114200715328685533272803801148772307757019628842887080265314870491186047882058602167902284993610283468910424180364716819454088324549740849450061590448621841470412494983148729957333738713192532990909308734087104896174663703585146574517233428373403226664132461300667249413669850117622626025238695463494672087170085495120654301208445384919280446019294058674918805803008873557946540328047751324299930781907429774702024269087534036969538312335870740394000787330101570332323197806439025194811305632865666025423187172048653474710973446113133535031517586280388217361594264215503382303885678304957778048479064825916805571326120941270718870819048247873328594000853151941723802249784017520808934079721928081874673165386349691925787501167258502844805304706462696510505055919773145779961162041009018794651700305112503382732313343348993131903889403861443355082190569299096811158078813521304130924151887906703584089584436509079556784079659850912638252237066571800191305744506054444562682889871947467021737412888286768804247130104796881644420162899423406512770989107415633529100598652127549570223984589032962342135685381633430558206043699228772740374017423386556213926683916072521529444003018860313223509710812055722965738650907566039924320736855227243262100996563325609430493795200359316315849396415176345738985147072357326371593163555029725743636068808778021419066016161664613320094140711128005523418270725063774360852705967439567126596338518695017594981028214769393570549677494983138787635532840777360494471911727602365674173323591897910047087044232557815286306100536288229004564369208330291045844771267850154890591177125364339543926968524964334367914994854930838153763200760093180362379367710456524765371471174477506386137817356127008615839365862380502062513902407110591851498193488474042635081388976221690957114197111093425956398400531773730360684449473482836237980325701477013581104725964867388725296378341787824783284972592890308378640816353508640998359469834734911057349810562601541653410304947994303880981511061258961671966814093612022671603876352742209734952048073264918714565319620661923567281398043445806086865806619367461902056048133990344002565533117717168954928815358228270942546089313027831007677702686845527736204026679758351783632443426672301971546264382662044884081579885524014177558398361620220912484737407354445710138162811615938770294968101752053924921806741307502369198095573372337658562403206237560672929680909656302022091772229467926512933419782679641271377618498880921151811450605001568249035508431294781915740673842775461841320084889171735609202726416128987767494428320155854856923511825238978201672088366592895502018529451187996877555861418295828808597709413713230572053877753745429988359837488425444887805516704222905280480351391553131198308902785709268014085134479760158684428958236471284851191917710046492292469864259398973192215681908044574296084262843434292325570195724179761581648100991928879440915633864098782814678230371829457818188723413019176809659497161611095351647220350143570119526393089482624107699065147374666149118387289208696293744838857396777688946505138614718211028435393593028822976318240646204054463039208332321676409547588957197476643504742810893814437220704160811476998853221197222284996074024712623580715359350614658452105950794514187327148995304320028424292765933529558367163137073192700004108141730502223981153154630808061259998689621404394142620644769260319410264217596620296760323432356200467705835275230375315748922539614615832610935345265673582423162774348248288772325720473651432239705180369242788506049590088303079217414664508880168333296041911082367158320065927497709347084403624444016708656275643555727311145690047041858379404607318913922139172544191846911429075154934967875867323984841959581493853129175565102485206512414845754215986071382245035342556512790939282027036696090848730340749726267114125910357145644440394329691854676727275398157078567891379662920206251543160642478192235303510244664377636514040261944543590306153591633826604231953951238956869035201997010828011761732837830898747413752599503183942003598957753413886313647069186467237232588180968712090500742931897400617012517790116168573420911651007944658768969837626213750618229961227039467869081299090262120116299295133952482238863572095623249978706568552672000262866101016514170403677919630619053347269515936363360186430824890613016516229675958292038592671826892636557247265517441372058775106908530279747904581373103226360065638735200268672874462144713682719608541613992959640084569015762100112042280182565943629854729143686718212700392982852391012158259200052415785279877849165331409009237783152408238758109639297866412381187790891505412313803661370827409154638652787660119571215990102731148447065592329427657654382850494016121371407272715726052720060136678207919298529217450210041097600307157029926147122578407387973228253514984235862186076794614730084385376461838394838967451265113878091721067474057897083115880278220652476939262641182979945157822403715110337028763029621162518598492619257613014547963151465952530988192468856021624725014797135707891644677663968953140565287899523972930484060537786329848073082886947178915509679726475887913691332681360692712050096311724739185004682926039023928581878547450631638498851658370322183970184089544832938156846844504260461142295139247692415171455016641277811217154051266505541311148936379307622107208956243460300498908793715496429726286403847524519272269645911619054057098715412327345367347894814344228423709720188884041963249094366663099563709802845411139097139376099779050685426960623690041150117534309358833869282457293747238502540200100567386548464231521180034998415994783921970064668362821286027023207544182502955703805592576458560194442150374614658547366123339978308962681739586157721633671212637823587493176852830348908174557982502002947334352572144455657737723608252597488753250173604526124852843025742012193674787638796065451165387484867339722989121449854886052190806067422795131492155547932214408325827026525679143395410450266956085972786777151908666332633677666235705204497893837768393656860387035358520896999048645110609021109262602893903839247025589081912233875639083274258102246488317174424806126570226404942970774052311433209930477973170590711631673094291001927979084415322219122985937372778698964579406126165328563102960374206369432030273688645386631911595968964802803225727355293987891369254379636867841112276397946273404874186979897818099635118137377243633792706890102619695922160149075806668784342540100689041088717024720066845544180099285601894012412474393195275848919674211631364777004430428097583502904616131838037409371653009607040903988255451595407872296063874033154960265070162694194646068719492724002837645424689042473613957522798233972996954283133723867257143269349655270805798895300420160375757668855808770662599163274934369735863645075457487109565321772579736525214991665158135520909613245114977170913150596743195418911378303423543271065500980334223054263609506489742435999761461280837279367480360298101212865610581755696226473095242168215571192860319412859020500975762336380640968144735279621067119977179137404882853421976367514608263212688017129343143046690924278851010467068755836629148305600375384758212827431120029840224498007154770675546900478163359171770900311932691407588763028440488624558064743383051139023099486868175106823050629751288506764590371019267837945310538673272790973610330721819320453661254401118587743763362241093943899990689210249548708144001280718913845190367122237008653434012383927204564347076429911876557845292324363015133889672491110842388149199536592908738167957283750154654131734913189605613270107046110287788192674170849369382713928698798375560966264981662268415760412584720016324956045572537429279338482960039700919628438756430162371922363435124244816687529592252003223600281563152716670755058053192682722749879490926771199000189017407692222747235277809339908408266276014640846791974335005410841454873963531274288582217619612421717258353780496362397932884313982621304229571878462302584881765016802348583584584090771181751774425951989617165473231246062216100354060574430128075914499895274291491581593375963625950749443950689429666231807715514477942166023410666775041843892446351682703725171017273683572821715725706148830776883219198078469519833639311057226248778161637858782013340698171109493013595113305327215364048166944509076858671248573667945878747150479262955734220940776849786093058261442279305257578105018726983400221318528118192447736266250249834522531845621332688293196354188761391642226767833126340802300472849926277529451850576578190032684444690868666066173988009815441758709104080341110401016165047800432698076662100588536581384161889768429119876802925928159695600341886911796000010214025614224725017714099412379213615503844011540874467740429612603042248220746161590736883436786612798402282639758884712336363031291441348301054733764006770485460646274751926365424146639049851513228512275969518460158056076746148380682470604854445967660880852676642577190421579422354231611825313114323368504668247193959138866296052786854406155508437605840711048968056083232593146084487597039479120962842292058326632310058797991200298348966466256105973534263747765001597606439490631184432177392895381152722860112032124380258462139262177547198008207722939866178365224233478257103149166842235036796490009083565923134196686274407317914643486168122118096381091007074224081154517550187942299510854796034747094319531145333692429157131546690996482455122988324185333083382168242138037754332270013875178347338419395966959645447522550786970867499471529469764337745756628090920025617726466986171508741532305574528737948373216368984341161172775833175175382355397613758943428985248372255235365796492926573489097780667143392125234803051979488212466651486414933423051103025641080831480988870450925112333598605827064109313124732511802491888244611465767735965679415854024671645314950848567835268671862551927157039188386085810612719590669762576038505370816788695439009443440156653194198553348658151305268774534165998580022189088996303197236630273238541639193572133062431570632365569553124740046048743710616141181529566823023682587047345613577831187861934063137508481562996116948085951412597316632772836563210922852012382374687078054884808738965820313491786162364470760455833081837242420554858817322126644649092688580027401101461909096058129124460883676462977696390865229763031227909306144194531951234266983163841073749756591398487192550939998466800831235070753360493335093058024275607779297731394380247493640697331376884119019075446934183543433053445287016763615688633878828355481301199422191361841817360218682277327608562077687435219948767045073890175683176768296364313241334327446057544696528026911943177792720104712315385337642501249402365611117474747553524602346068390525622212057138853087973334212157930170623080828623306625911267179229743593660440215670141427157103620763416971447663355240325229850785386936543695296348600826509251732078245257904614340814222212796849386085035819435084921332351018870840712042418958232707907804971681401736128986064474693311125945603819981443395606494278409861705157229479215812194945498617513434188547622391586454561968015005837452730962055061135988737449733078659690439279172757201131664833732090276247384285617248611036150915531610452405506868015831593489868491793771097239629235374647670251868531527510946290690454095513139971877197539972618393534173318329898327104293531277461938751568867870298123214042531835714059046010085453620528956621220876471483785650026438031766354906260752992281136122130003689033866147955018946322138018530601034981531754236553598809878883046635280751105586027197936346768450061899281091476200611842380528960623434552359210476142969357147539812690891900182002237780642479699050942323945209112493617683201194413751674639968663138387032257096625753956676131594729273262144698441344890464309487882342914866315525881105809922513832554703175561004382999257351375793674115763298262028006659996859327673936781916927523088089802212006382629081162085057244421454171166215881538511060274359761050125703490220665731349376404906325989913025477357412459282616888080664891597042778020401578878656489405748456214687810824541797687269629847699335406289639972492798864105220701992303261214746156215127078785865820669623311044883305176966530784989935763618091818032203011117500536129368760735550528570307285197559657802648626853698145414170332812349980806825515344630720301541011156263926173203639697912477360176818897983907487592707599707978043101439416821906284676448012148494366043191509750196359828673827347427187381952380175131714375049607628564350819252371938796429936727385154529966981481062183864931483155684518083515459248342408726776698336348193166093881009022141363558076005040458742987257438477673174293082959523130978947915619982311270513358953244336888567338871092347780148350039156777890515700825585735799559386748521250451973452698206112848830138389579343256068387017529349793981363333697907457617118424366032565175642245364138858884297700525596036643001312420398340264093722918489275184962556204955288408507924851331026923039528584483252164228446039011220208061818180168641256512987208086053760790795269780107546629225473335543133218787342901228754325416180702171780607163476019785463925004342233223705517021861377486383994895008687470507113719480846154803581438966472817564910155718218045020469977759400664011170742838241108653504176129805527366624425425909818332662028930232591122506155448047508539082512354095801020777825366428137906733083319119633500840987215279666356976758832258571402864605035726514450450703952478527404342865347880002455600001823588174329275319600501404578015287617121319725751394091144358081042009795212440234316878872311088528816585103584152007368629535767479552141167324143806738508442919665092394755007347247368634019226379703214278799057811942794327310000140521205281420692829761360154037530627005911755012787292885061538841910350627080123828037462179780997028672613965118020333578574693260006006733988539585859648379100844814046751635020653716931197304647410262956432272205145513287159581089587003104126204645964863984632292619751196216720439979706709627604257889305200060839111004480424671941941382441990829562343157865453787999748218507522368152346535122192532768714141006554145249857913974564773845093779085111319938090735763837919447821657145703685848683131639086719289735009354207703002495553302816193548836618999257292030765131792157236312216709246186742257324914753360022666125754789511452407417369529815630564829720723829654693730894016251500465305621188106519709437485314089489240225255680200953379071316254562215847477242721368865204378838674529947099212795915490736713079264616638164031471326967584528586621928679297136744170369115228110872783199861626704339208183462046301070861704329200436804056282139021279775662301986495048372237107415335540634330541967059204606257381159913374986880026746480826250990456697422224459543961982860168946162094716453938044999733616756005007180848507722459117375851662208257657153435259902368291339959628793168454137918505386587272395847580181375657734905551418900970012341616561347470178684095186895230085988998992180806531792756581919120892159587397566592792539889116233380598068674352525881102128061354515525362790485685787950138387178499055087666653404986156358432802786752442148057421799548278819228346640783837605032420938164507467981433166691387706458414073118642969722145307397374882812766879114351022334736436227610271417046039252971082594117267192594383972666620719283324560261454763037204758190835494118599936000407950431319054509721508367320915287236986376616441043555155978195781598576964114721247490558671157102386723028044092075470784697882004016176023453584852571082092576014157816931722117760681590590801859238258832606368264496209191962862569785737874401169322697256273987304719873847469272608813933211509180098467905702628556661532291878727564114574644984712176515576153550188988671801144800699236867060938004370966733296724382762850751955763507463356028594484817430006690431491490238194644079741208002529766277358291268245568801513065655715913103952027110054428283049956184868769300006023301825211278410220210245890952973055024050222378469857414509557451589925938169033530648443906671867412678391762638879894126461189877230355915289447573728445541619598373842942555233074975319164744296113350965940853265959993355363028426177103854326065304367285609530456000721705836709445943632804862982209854859592803524253437709436085367385239431895692643005768018665502764382910076337652091887370297583783608793840492241398684746901344335284519689062505696295701455188339317545311840493196142327238193988972110424607237159698071648727002805004646080814180349869373934459723168887787124850771679811677126576107458829167230959515373783691862984283326884330753136971728640629857928920491273946911495272872698664510447843610598513884975050510767009300311861771751920223847067570514201442218954237954050030678100256715152694692166939228110687556932281021062871987666720799318305201274210329839159147854936033197691197432384853251432626253063410907109295984902936481084203021174121860296872228977490094622538924753129182692478677909443938052102227103333850353852059043423812453126964173810530994537844964335210448625060099978646087063848572381499905948235685378925486448792207294732482046911581893648978950508173719225098765605075660422883476242854306263308391400856285352675031244729082764929458141019361104955300465772477923326715071241902005214142932604362553762655471591969269449134280651961260329049898309376338882204698899399648979140596374351009464503595149060130767284195027466806444055421790579707067549889918642667239460588718698193725773418138993886438479249338874879081058642537909056390083265570676746229944889792445237459746000143769939780839119857229756564683930513627651703143621697222919042239808630343852580776065764999553983764845725734893280257966138260174972554949269000464731793334625040507160626124026169425400614557815907436671330441261028911757765165398061720160917782495970842560351648341079720859099554406518703586236000037559718809575734840435982285437515008112723397757342553838204047882613208565411544505006062426661596069708253045408244671441478511157292023586300904784761253839814590715749284125358505192905138912763098144484621133779312151423458353063370117549289290813781146493017245702646754195833798150547286251208512664406244342622184205268175066530614048131322256286856579948065553380176499968191651510273625256652574477086672730406983662376046710039985552555571734076029075088750690684580030184511121875554078382568825120653406436823122055158856950292576144144820409880861269323844431536401433104536162308199192512746578685803759596500586261412563544042850481175905891818895621959348694816507845595115590621539527634034819691084910841396214274431837511541461162200406202673651719097436178218760369323492045232463241978032953595133658650759167623211582390321232437803427065969724941961097189954697693021796610782707476088177021578067801518555250195931556360217145281531793047383687160888781943847957041565268733386939979401281487098750705082373644403338149411242933584738940784168639013021691581578757004911551411952190590160225642473043124587804556011749809816988953944050880625416504218123773005347068099588611437527788546249776545705946787653143403461182195085768815774605205448781892473601993620453568319017684863770252557347493595621007773408271972568096038290400736339011155756932794382898170324375141343641215019716484836659546483286169984566438241153878836648703443858421870764534959492254893228334902394726255486549712922307698813450368006814374942926699702127863881181009589782136264386416823193440476861645448603002669478461718936076338719245670243410961172359046290812452409709507435186141011536728387833540580343202372235664777300812371766933123626660355279640139850565172455304427881662983741844652980986587464057629186998154609983045528015738513962398854252238504060241055167539022009968023799283718756827172513250344845706854609211653230520500832976019475287499423303400543877401538765542271034272438931923902018446210016016432461040716829525196358658867400547988202418470095767416790996844257018048592079867695071741408419765946405120490686182626528026512604195013756539900182855921629044848773380776563489767319496451690124538411886835728780372992780979813772551982023920203711134825018489622578368989467514860602714341229352554753901364819422652577687610974152015240020469113192581830003772648844226581218365494973457860254738912024729757343011042203461211991654831995432836906744395369184720344073236167560934458757273903959444762930139364709484184749002484542658068105426471448552540738959448519430619668241066860952418991546561893816631248175494780426124351577450526308838108758299623100956191556802464746204880318735275470232139628795310200702343143192388799098410926137589784407354532362367677124168255981517344491154681419646172731356621524213424391901835207095150279834800981190664722980696686742587789911726473872387889321517289339024944622014213523322161626771307182933050521512096834878095161562247813859316312513874926570433044319459883097652951073660533331430497065086377941714842094201891502903892404882431534660974939680550023781352424203034142927905021035138271036543508921338954623118480156753012876910660431626965883697656567691675618300126296546931572499431055057303242399098156068875726991658265652254106965296297996984885246621732381694741590079243272368329933219305326243390539694148366470762371444810839066513308963671638727347077530630110649642264651690879703014815774263755454466441911411849852523914939616797700341422358941594486065969886581939219197114477840208062374256628629485351970493240856511921879203931853574078260298502572247847954158457997822284983060226412911151476418589854477421060771546489935390690440490145396444880161547752858816361717006851600036622213252843608204447295690823943289396002513163645967082438009979961499492679588796479989065244523407034839446771984225885887298053888047160950665005864354114908920643921852010550257722829630168762805307911755597367220130571039277058742454061338460005100412800762035159361002350483669945907916460834622591586071168203300913283560056590106136411549820969785566214733394560283333527650567894382174340063489054560670706974725602988376940083100830965386533259326451390900778375363682257718458069022926306253232840988352912518935337273135035305944867877586835019602203356226886110541708343195569603831832496374776851999263326749394022643904351859645330928480897336073273317907427703489831955460227544721542321095460113653982451197051741707723633402256129300555695723753188687048911639255906991447743158942558227575244634184766707029018744942883396497980432321482982442084302202686729118869414546487608966038655391874291043595573117881954528519780855472523454558635297016316095494577606529410986621365948393343627821065153492622584232223498142917352683065292451982832923688342926050327603613937510018315435390659850249813203638124708006226648213244494579032109013860317735481797786774066108435964230148806540659662659409276955137817350830831904612261239966180926914560897189000090479109734524076926118711844231988203418453380475878199051350660257198261416511224874241808940944958799360053192388581014089692978348092882913807272972123197138613822460315821329920026753620075022581147480514643538442921241348875912724498258832684208315202295464726018947733370047335585677843534825100754533334933648120773965343275014674126118695637735568180736674130819119114494537280520411759774421725376083576176961547551081010394586486802692169113697134528010878436859560491652431173720218442079391867823640617877224174522110255201773857899602310306585569886046571695469299759716774060315010567091145094853968618390309030063362643254557047255211466709890038236064339389360385627414908211180962040583649354430099357166145235658662750204063401018937288566335361714801191470581652607752987275326785528785040760894329628638556456226189120980043998566974776713460857576237492174959885318767266575517279750870475538595777476190643143601314152837315563810949249641168668997187493516360414565525642085875696936274100779300773873360306450927084148220006387402379794626281447389202612337559482430544829576756804114970837440625451829003899861463474820068289282096860547536513187708952480028727656721382773825719425240251362614001644913010385223755374377529723262503608778204518929209560541812243718821653905990512356409812626286483598379313441557193396717690163277987629240525281772920499994240535464460219079014950195999396528162857193896012619207322715555273805588444243953281836901501290637416880823955198021920632105117736119553986466027081184841346051189252402719366065671011491184856094505096184251052368789415251091922197892443022223059295434890408974933675354327110562182780912383630415189001640678297739939574370936710621451590127041678269594545763710592972889300443671342933361922022775043307650536075738491520027731401626123055202272652541335762530470554628509378612968167261607305620696613060505055182045554499203085553328535959849862669471761701944220440836485675056399963524398265867927046448498505158141790962609181316632513652959234192926221624740003177958370112174689702172993287198095310597209603167502127230268202504267163448389219734999098494310959960199760926187744631943104873806087900509077815432580130389063482515970630753504140800918629813194964424110645551936060198831148613045449612677617424715513115313116341995544838901260586407835257680341880937293465972466136244653257756016613424966320776833697395018332087831828657116026689452705133500580646560709824321779227174931052250194925310595923876952968101020801575913935698564213477604294462990538631067449851339789314982882802963867248815696848243774152462758178548452095718451875246175522125545969336797421428207057449811514489139405597928863068930403336851832697400994981493143861213452793527267658096408343610104133624284360730943956829833990502618249041379283128696921036416872221811942357228300041221759116214176693689729942318078934760316611081787088691932688300571203967716867954906703888818876948979309111079132318512251097900831866497592440669500345874081691632164293344242593050081595999164097813118453715813970161186547105267831704586557735087989068455407165680151138955038519617057040465517318948086512063927159399917412764772757717348427396514746917140388070326628727669126236894384135418384437141432987786527989153859008292884316511344346530716959412837089524850009475049271661191298164518119312895994580974275487264448271125001465940926623926843448527867787819001907263468984579430769811466692328443256986095092562880847964867782830740237558520309003575895598094247053239573537197595632463789719481017560579071998172860851012614216269628782331334969494912092323375092379577034906271314857243756001221906753863492978475818509981748569969730530970337996504934482367325625406983534561563294582726636930416039295974867561436294168011614945843330828076151530514330930469293851774814156071788695709765688603610550077595567863283840214831992638751461087298973341246175385622171455755622384551658233230659698746851684247125272162784044734143464074776005327405208751028896786229861928343628524119742810640929483567739487564391167216861171851509913778440561764460132935814855013720791593851251105614276576041193286841516248731585242723644078432616489100782775070836943391524665657136841074586632690537323338715147691012187978083029940554423956375239589910137131477302305942884194335575371114779251934327239448123501747700944883144149798535745715366240292070269073362573136383576059236796461787208452971439750738215730872184478039424754679285981664083120813570579619792755786713921886180928571638795819841886047070217388637514505320367347831928484223335604166772847065945123206536708845501750879215517673552620895621799388276488595991466220873142696825230215547604779900734821586928818009431331921737105067772381166476931331894407233345110770408277295300727239794572800518697185124688656034664095441232542735771623505628548035522083344873727123966105256768065683108696342148708561782957442886271155900818211804364294814542572147720805141887230524809585476574198531295533344451269988626283996816903506993003904103344079035751403143211104272283631308804898127733765121086705014275504813074212051247822038868579258068275823523362342259921924298963799396613383057095196213690936499235085090290700510626070055726065256317433111364111725274357306043712473644147118078456091816719633755222108151131028493524992998993147408655680325173744239191962527525906240212234803799421764618547835796898725559254790458734400161009041757263669394344913845829411162060461537551541861241254238028777594763829478635720434335938915712787343879229000844918458470176884302842552007998166253671603789137049073808657516294399051806507012395374813828989016589196670443078045897603930042260247183008753768927632313514036862121367534119818421951842584312324482689544182644502729370767611054735190642173328042374955396466306571252901174598431874312274110994728653115692700923764525756261413017280512894785647780302393105289600250115104759473335748157010531276845071425934681873787966113420705969894735019142649093720309400922283568129271628915461077921577055595799019131974417559974076609404206862594016761570177974650766698836094772036963030637806564873139057811679614580864172985597569792057973967488719785039945453327938710368247232636841893080449631391515382382193081088939419594338563037939128668015581246517560302735821107474952782559617637032131554707517791886800651039054543521055695885212458869134871338554593772324583742502538759629058901517986058850838478143860428507455481163283639093494013586838527268635059470081503796545327092223011473549845586312217309435354144986355474368946749679589550809984716488427377224749882770365357771247679815506576566122684809889086715620167147697811051820900178886950922620077094889946930051855556749458782581278013138667151593316891837830011488426108235278179331013238425133295877858965365721465934264948844294050886092573184788554480780194060127728531873048967044230145201894793538688010030703528332169924032511848550976408219648908059550569555251568469989059286157611464601384233062906299397032842482159027454433804928321918099199825638780973698748921319574593071436396119484062987761731371325588110325317777665605935995362586946658678747999870422605108749149818564551545847569970895378172336697891881565082228924378511109815336985105374291314384412761693672498890060650274688413708351338878129187534030845527310049335128351516304824511628242839419797335304479601737545608367394054479161372315689879614996077036300368914143550733897546927745376308329467732424672138593259993224801340956672437818875494440233011809208222058292227289295982677548463248804202656830517523241749977227383439213592927707843605351880744450627291300118733656823238020458474992796644838385316253598680905147982641502377781895286840650087088472035015166096723815032968163942220912957245595882740199334851640865664528019435451455085426082465218625394831563425664568364850712444976662369675741258098997828309959926291872485713359590628342962343720163419718750667083804024046144761526954505422125136647371503000363491153595128420342783568749979115550638060844327379543341742786221603524711388435489619639510927250902495528401326909835638615836025627367233090696002175358919280100000508903767189751998857674713062318899697597910134494574313542864317008822700789992972110142114029056030322373445472408086411014762519957664366085444385630521554301088704980560877970761105727366333067711318929479705734099131710089996511551522536175309136307609932065799741877337803540331492400232678413509686132948347303331646288654220154275242635486848389677994934699697092914945345706415863413036278628880881524368625354802842214553299361752318676774135031252261993809284703386629847313745162925077047669585787854068933451902923020670203820376537765229662209876658073408192935697085365456020957814773054732344810372193356011213434064760834887736540932995437986303785177644333836560712923652397873082210377751030646229482671495531518056302712874622046673485221976805639886149609715440065772273861067103047388752423804944754559209521770579105922800172509608298027422828637324226019852000775942677382287504832968275704118959842454657078479040211744346693148114953117779372456659369283205638345671039330281194821366514091722225401250205010699226700107002138935301681872687845638467064320124397617403993481194164005292930199930849792515679938998003513529546703247505944888041456519868228976173231467760689522913848136750405591539163194838318748581522595381321650959694003201827038387983854890625862255659482290104749184145514398950122029824705638202493442987846781339865185029153636322908323935890744215735899366328238338878802728513326113328217184944006717630234069149011812924668489382054951282335328057286026608947499568300912489129605058683700244673417575796414810856832706322677151383346604009543567311774255815007010296351335182335057664817288518523928130188757690091316838656797160995047244477378431824774495766704100293940757141835313743590288247174933936513616012334315064994854934433389110222366471538928780770826256114970702202866451694750339960698380479317786358884353075906869478025913692474045478860429888401623284852025980092727922321642257780742572198248645279263170551499009639310285807450205793665682452457150253734637815466074408654792229582753219943608391454408353999633725258942172348938261862781371360921239088691918771520643645359737890349725043962730329103401499548435079515968038280125846825573763706130248051360526159202312915407085669136842169272772757975791527320473175478321444588816813414667826790750268600562947210109929090139636860479931843210644056451983241498447097423199918486966023135220000808812577075876176473165748579016319178154107694496912660130121719934097888135268789573208511454266678977185124675758939197494301986940209577820240808231156121785081016247497671811383482775462637753506448455977572992659711609830720348266635477519943458130790581472209986191662469582806305640774453994640712122573998469190577928972899030593458199337928584545567478083634159996232968394658451012336459674316793046389512121808686781300003693991017442436351474513639588927110162377060824155878943224593093817646692909527861294854102198291796001931542775548671811217573077410787413069705175612077099732103274718487053674189315627947100643968318110616657211818290335853008861570717394219596248678404843623185851537606371980469124343357991194839746045066978684375423801407393295226216132121178720579533526650900503555610100191343150121427938394300281472583201540056839463446869444283825310280499110112905312392211739956523149179485254288361483561968812330084756246185402848131591129266000161863491609136236510771854625276153543753920926373617093744443990560251909221154388378602316189512184950874224850584959143127897223100108999368917237862888325895370447569694747871961807365332496618360377259416439983259493400652006496614511325652995880346893167495740186051050279495065495605322403441272283891765923607058823479546114309619625391898944048153325787970036577959242648515248522312075267897898523457575517508315892543554592699812554223326788281979637476395452597772652267879019546541804588054979438098196763417222815512245546598259915128759838584144564635628230486308874950511357675266908480030880628734184819401748102797241877468183756693910235771876784580207778193992645160226467889309606807039957007340017575028783209579678860273888960014690098210097939594691212253977448805526386674219870405385387874959668412102225337984787565920786753059054144224543266097599623333051931611159125628232369821312364914755064254128785476379564128068102693695585352788385160983316878984032311695189947602715557458654409601634666691639657478910322960135015865273507545204239576374880305786920006333509221936717719147688599917221395079382165258154808193837599179761908932406755794258155178014225564378502572426297788403589811908514959592631427083775893305244314087238342511012543988823553366752680165121249485882753222861401636721638484213119296829547434319912600201740159760277394489131403205926805329359160474111218468934581044232944850599819845943579387901173375531523854391016209554546441438582883736696293642438217430713923006490789156972619962480541546429237804061975924322418931045972085830574027287857203267467092584831366570918239912386762985809149753171191416249481504479485337006240481481636482765778735804385700174225476085180564679294536142674714825606866892196678298714127797987020473261289476500637311406394159702860858107660252124989709068903346243869539349068064904257988731230529599633870911192860844979873403566821061216049812852404345408168316430142874728270506841510521207755292561726967935784108149866439748697492251631759620600772253943127526864837839280992300031521731548393973134142208585488858390408897766277149792071677807443911014613465897359208354805497407929748974197998759547296153733851685076029025826581439470768653504101714640435593091745617746520679528821784805035920336325181065832689385477059309027806402238743591439654829298818762799543726588368360337002261176743182706991656774387082063966894511298775387072005963752215941489350090297806432027381643397183136307820472156923090141969016363337927883890033948078431236081213134609372403886646840828075060406279487404252549113228152366760558316009053007861749762787779094385653682596215109674219795361410036235479422783250189219329230348062012829526452162050854435093517971141128435805083879046029090715221114909186316435922993227198832209248735697249262062937155415630574267747557949368867381573248197959456969291327454216025481418409963904503065187228418336960013379357099056460908524257702687233836179982302634170763376263045611565889327493515345928387138066266661354275691807335611065469093623549099598472720996575753764246705531059657867202924009549492440522297968163051956995277480063350804424476795836952242887129373659855132787681171099477912600826044611270329145525691190038227110981204769500027183907390840560218189383992867773595843458115191289249496968844417935189486046800269646376000516804485082137890805126510255588618143757692247632655064844086427625880277106551462911532515409717649587417881286271138326216294094897311827906697408924167121965533814767276179825529747232852932534672224820355013263125942010799279835458311278579704983152300264028002968551119988710470466019199519292395422660966247493141134119916215908322378928243876528060666744673437554611647628431780557078385179345661159833051673051540039729428476834633028190415031898560445024291357031068779028992615458650901159015315060079337769964091112007742036611389303025991333401254242593793102660680631566427820977362129979204883778061873126083972848222785010818751733632347848057157047037808927619060710643798141987727023440904430115542145839318642725255002758300020816948851987465509721594866693291754244300317291338600704805991652427560159302095080154068353391758986231099762200886937660139051261158765908964069642050912219100090730839416496900407057921442092655686844597372110256772458210759439031627006459884035595712261791973495846006100637699550238713808526403302833875361645412037718513723703907044258507741648007115634184877024551068378134107740769124283721420198047004239495596935877819752556557125874376454289946337127321351217690324623191846901604880221819686688199190493972280101510812068387006720565086122585802382512451742748599091344869001706645266265399634855571589225317694948394935527356311266448590180346844278766396635388597030400667525123019840148632065620020731616032340705729619755682001198163476906231792693362101981137999524682193933030193906710540513719497413600822549517384838324270825101837516453937501478980286521020009900061972421388401594747207795265958592231694993311146018194752630815640131299333622404448196394060125592875920647021088502430301915762757342587093754710576750044704902281617088038179264028039086016697319345357733094371181375740722932164960245579102620653469954403746832504391225843410171115240263372939498093973304815414512906958271257057285173146431241464834552480179989684142664909512007539605363631970575370439649874879932316162980582303994184590902813254118144306671096383579232950075067806033221468442970987291737907292077420197010931120509709023453878748445215929443724534258813178534824250920324628331294712211313138300142366511337461810212543741683748848595235750277370239142818071107548988427626503038359183033472198661448648237468956160057744660942368057728715076092436461558153825834520727929134727660948604633821658084890075376565345364058221617797538993020949250936300000054493163743741203880696854312951039696901107202038931841533656095101581026440565080373271455640430435350516661405454560231834926273922718821990773356402404480542824151813606700677822472056275968232458984056860997152891594430094648671492142954027562871003620322573125676343139654876244783950162140416157861721122690111748515526057886822213394445344147348966286174976433465956105755886533427379632350669765011085425876517343219230097427853205527266941513898323816978308851454124325327752478059432225190007304833508829903825607345574440699705399384696203485751125384467482498781154416717080320510945454884813311974933365142718055160355958552596127917966332722183158665569564004164870378938391994726852289626275178625611929637540568271127667018942356749858252734920931618480032048886695656043713651391392005389236432285677942663332945916304862596240537754171061100876993862314570115920561141956645209224154707777418864676636663298689884718298791550967228190989931912255119591561234140228705378071944710472367393256930255369945186288117391783440332581529193772341577381417886560813999224545440479617535549915974481882460149110611896359741499954264261635012729007513700324606769132151615005424696760001988951526779887417628749697056341029757057726982196055293615164419287283676019156823154533045431148670268606444195395323392916506625741974515843701826681605117734431036785075951648427338292545044961649848579213812484523409678000624853617743100058290693449415876971680944286717261190727978881009528952395292524436231625307423164758287648211214492960093586882903144085286229206419865473634212393084695201941821950248532037335611845546961624679630112897799231181681657019380207541792656421803572255609684905963978881174573483235022353537734789128589762912258040826373865449366451080942926827285464301579418442624784006544989444035008765068558503926802677524472594777127520535962262126341516294617248818592543852360246921186268992281264570552438673942033165182615891183907943984663183537618065097190978064381440836171798368020706018297663313237049861450787508854007337402892118731859536424678067693496433544396386745525907647178910000754577689295118965383074053383518781705829163311809290675996312915010895473012460886094906462630937897487827159498560969988116105491068774847946080243031253385594087867441249635131158434843697964107007532744003743873042823417883027247129493405466911040146996491877549355379357125675456821333488016392461404823050776629666162863023364486537734832219134445378179900930998186923557723634067816469911303079844694290522686654460278441345593801176695142310966755316876793330530175270474514048665159911285173894118977884247388446938871012284047678694581698419863645240717378994487999453650066558923509313105182350068754759242771827627392428382147048649650850890648065349674272501798492065855411410189313714172038363457893113747481830011728996356291999665270576018878563472865462735129407257213057851035232135721796936675683770414646762907120244211050174707907015265851322637391606061016974417717125073316922729842930499685425855912806817571674270123369305442078303070694373921126745840555468096724648184926225099262624750880178672444290972362775105004549451177499623858289387552583947248012659951914469256534900546931716369366911558115206899570760944097592551268233853936969846483236992451972188149143364317070901604252015406271363300141695116716445132064810203902686731153803280741510878754381438533861293422784277511323359944830725779085671395596658497362089789148134917316076018545484436117427150003047805088135377084280143665613694068227578369949845299209596800502398040642737709889213535088223752722073011869324482326815381112603435689890583430105461546589509062664311529755791496068782843129936977801806822945523672992356244035575776008673874664439288190785666695322691763362223307757886547996839977101687534465227133820974021238436021927439471111529229557455877662413274048968225741097075010259664789276385790414515615281510073759086324385354595597286507512399438383160378177974448850605469947312927225071787651939467255228164750701491777953914469681430040641296041452185105869113269711302332246875817930347036441123360718425524836164267827648367588209417470181554080372078522064148667909114965016561876693651815058742452396982780253708348694022927454877708305376474249735503336437302804859188216812576525096342357809328662256975045135390171072997726356275801135799761669258673850588942967863536753349399749667198083949533267776022789065935698761102195066156697448073276335947382065669975677100035769388660908897432105781555680848214275304872222641987715604195154681321953939548427403932007226394275085219424292435055571841282381688689733827948056464647183103750629896327901194638225889004107238827726122275160769440462163007418331538040117979850340108716628068809410857897443766886168810065154501638246903005734561417767251983255542268679503073606614372043836667675358758238533566292243576811506324776771496759681627660585693979402075143454859736388104096283115894063492987604893451323925100989554918427170139752210419817283473141876557793096835567667580737844288099927906533249405876971756957010072268846898560496592819434413898178160547354635772839277297541340382700771143981886383881001297010057118296568447284425855679483215306754915948505467382031583998307418841434568641924871423906147579385185461352471426147033777327151036118217512952519770423356578650181623815276900507224344186511550973457723957796062444487398395708764951212098687951524941017971264955628728748469668485829875193857299257221812653645766412299203675466912157360651570461572840700045260746309979865991278621940708778047280564332034925746703388105331225847704874122598397176375994607410988058078875581091084278082560824320829128214243714039787770403528125748337677572027837181328205468454356291971167874398445253281120849385018557241688203139197585179534649411084341642524286941116042187484396078199295060558642143632460845568794695284877153986543928430942516221617316858524661321271080707261808743559192306040017772037113507202267728402545200460462180629933064073687548791034700061331608357365889452236580138479979456054478626138760412865116281497190333933530045448455088336733971665422650947214380073934577600969302106238019773743247160792784992414175995711549754745990397163297032704545674943560650884797692271727143468097652705530562210938392273901324109589996204694709747272142888567351154501286888368778766932970203934811234550858455502088397529321473872222976313130774334841298005054172491471173905689095422229185376332189466001227128537051075740281020262793811943605283606389224426157346057398026553006733926746231816709405594985679897824216056926062697995798957346392229164502625097497513298290972356895479148195417782786232812601032221101341144329918725919175810757239832682043578672138542911731712397025317936762859773800442683540055420786692240799791619607904402457524210590034770985748314532531278798373950418806317909791608491374042332039844493002701719775110132199898286001387446513217125907402876211697680703868975800286500356079161366900696948343329505792319266949391024664488323202268683602824780806869041861659789464282143784852389424757990299112566920175462046040435322693181007640963802025649389247739035465370096402634866245899730912182792851962364791418095067490121266080950367983695369259098209088165844403721534591938011268276417798366668774459157062698104966880643319387728099983130890236244167058736881414615392565054237843944404012661878278161426030045736648249051827255496388500210346208564543972509485544729026857005871959698742298657304549177216413539725289870879658587961075138524040556353857374882814048485962584644254727501077965533305939963319036551340014691686794302521991471848084231271878006809494771723799962980199768278796051421903088912765112007417083357819839910048645680121406630746185041161117140561953466898507900643906627505175935732773018937950166793438775772922810903734172420704752609539918824368209369687631676187079957668935453180847763384037891259339841734073840086480280542207314543784388195589754354979220627362777490748246627416232800872892892782674590238415705686043901548372622287971823424869218382429983726223095117284639336050345000033783500419754742410673414640827943571920525899752401819460310612016879648921434658685303438851074085739435666041784603628136404215805996863061099584673970068954710404170861309226658894771065697678991374879773292359969065297307876506495022578242280105351283257361125230365983010086959134383190631693997893403702430939738149377046191625816277184892251570676988145798752055102304427344415729586137833184496417099190020108765306528395629543848695020530094335253821490300278259947400899559238369879947718589470377611655304646920673151271521232052808595985193199841742540468871982804000616902522104366780600152097514611242819633882607331496218960436332904082610952078764073444983783755829485737653427348197262442563859621796980304639771417102281770662077066860016672092769416921519866076181648822974015946517131302779300611243754505723380355809169145901395778752791024528079956622552655510068130944948875855017826049942205820920742501638002148279973519946100974445430669261178969781873124043398064948237445315308469104559268028268569385436288810763554904119202247945923725020842454256003265217518937540985276503076606820320971920133067943799579013524179162179536282120252705179757969759807924307178701190941156748762922761675431551185821493677466460107825832142472698460120304243797364575890850855078724703461213400517532311385241904332335186018742265411910643109489336090017449201349778651474812925944591413147547418860215638049841319564133234853211109114991781744736517752046894682851931197389572294366187199671234972661477457371206746099549843272297835293745257665974767542609491885202837107860491112591885403292636005485159381819189552373987693447025922110459019186449331338086357621181120592828751061432139299067987150561406135046559644969377350896664008652523079947621167993261802548001170470597873564227437969179513867097178249749305809678182463314301878456839438452712989426782091788966697658885928577802418136637040380517795483318614367303810878095888554273646017698926081715171753331456542156424213025893801196379200120773860779074501977745064913348461181794829071273323221870470720652993088851329234433606393036784682548008354776153464005582799644063370081415110345944210870177503509485663452509035343057770759534915630885710543687828790380209893002960113685297704556301230439225104013412413328606735081752940297812441912587247361279582431878877685649458858976315615255341929469801637586735336521088864737588902374808584530471181557611096042524643931165946981210578252323624702298102941338006229261664607779716952076388677923806997420929782504046210946642522175418034361548628063568032851718310522198008600486688644147744438608635173319200330927941454809156105440126278294852243052110487604861082836085422366791116157463530891256780076967869131352329848591904307745022490923871151718532585393287736581779166519397105641196693414341980013067611177732431709942422317739443670802642640201862167669409213641524526666507908015573203071183888686801075003879455555888874553200339385707105469910358239270934985161035404266532045768113869680657372899338028988448844645176277310933029119924464666549745935797071214363819389828180683977909084173725933052152137571116415243852316710337451865616283867431471312330449809672021869491789950558482069553684381452654126071349836395881216766756142734196382756051545070965261675536611993812940615903855740542548360109382962368712160347806719981481580076778999295885594059789264369862826892025928797201169943891102074128765301266953724055520452157696775165729126778888755479594342149277587661490179162610207633799657514691085308486102042969428655707628233315824513768821718288892390199064223302526759924658582329048311664558740783374112796510935930911853599167300534825057215407072586307940254261848557220445134907465599579934118051871696669254489130300905903230140578738572692663937239234734279636055564288737623695885410331062556270011701459203643179435282250958546216341294914008403798594662494764194250105669598843327524893970336912563287149307796548860096431329610927704227758994437572070696349412110350215790042903900234061389332109688417325847875749945929770295361135787813093936593409192241719272323670549111972317599423803915870547710596052277911244019678131577710743536094861211785142478658820333265508200386461391644588321661962328363725399327477381421510560400444024207903925321070417085397969667530749716662711940509986536432528227304120497596833642596190525357447971272857301095157518536854392556416792246219240293718096894203749533747741847456827422971395687572067780033888880499745248889493910001242899319068452522698486213254133536932335899083947364321122776374725942429270853758349946535863030127850443987520713118786741417014979561862793379519015694274049753519686741128170308634513767094811100189692757847715307515673139849613007274641675922036793632393073233319600980788633529563504420629580785739933733833807844533574264095722032943587712125428343905433955468369064670801709590986470203883590029507345715001284750337254886068703921587830492517780883295276070363843491443491013684066696094387847099829243872866131065594782963223053381989391212931312704893884379986460085844621859081830576315289924424364099763992621222820877774739885087410046800300994892513247221767662943932673888520452209975630019564617087090301266362950343084391786391755628443117674026934091196596003357470598655638133223112436160946461335490985222569573235002196395199353155564277262577923400657701501196341416454251662667163198778836981813314909332597171132976566639249235482078696396038767288251531864319768804789423719907598981835859490149847790697035424164276723865686943669921091886930445082198278019407907414189466203073200844563156292406635718585262028855867080584536823645854785812951734404423699829139331825896435135516318280839000475505235971954716141855440737279397640595786045611839749799597463841300097707948631621939361005616911068104122026824277858737189254492151449578173008871140786428157815931354656524700051094629149512016121157653679241843949278645025056681539834443233026736103180562570753111655598012299437763723481583897229105135003807288708813585259476286868871676827931090865687183356603238518175349225628619098257698759594732785416857576754537089568728162731409776968664098271072595546045032239915440573751550035115954080543164794342369686907919830052599460923490507547767333333932279288054402575085222644334981723319584093697628599953265151573100483034292281820988659078974395151722222524692520736877002006461585755341760157004649520357234555695594260119437096542721944283124608232525101187434281052393489082746470735779605522789200221500375732999127155707270638616597112476450572264161392885191202736333680627069086425998401408655311218521240141031181976731009998130526279859816161235828799169160653474288455325924871917596007208324234559555154444643933031742437358353120554927530259524708956210983474948806214853113169942505846090565737209109813985031980684377776686726256034728871907810111084753406851195364856710037275059547506953461448229251605232065875799425323506905391173879129611074374847194702349242121219986677218553090822093450055835446108531430480718691150350786814403759181013883120429497063371363923288639529324747346186777579997893858639135695098372380428299805006895974226120425572875455672124819711643076151896063515991925729575889636351385290986139557417861943288788437838221622721293057703682601660665536215468965558243016151993934845813006439524116662074617158480925475248022564598931268951416499915238987023262823911190529004767015749711562622892831038008435371288857513629675417192384572132133526781127428727043985941134088767483389684934077097186495596257149946557009629374633012271549351541717451799611948413355679711331910874398158412758778429222629458744101969693791566292550427598766727453142170104106629793535788662699121760081436596745045329030309059504644483476173306539757105207496731780583736933940256388064346335009182479230312475933355100744218239688591840503852639792309361678293294430361094007998036441308474981592055558880917537109970113466171134744370032122770497961418215766424605206648090797767719672035377923285067187308674185924444714817213597110122139261993565103356182289684491344769607228550729637907456751432217354014312722957414640847289517184844297200503485841442605691778618872388484685755156246397729486201066848613923795591987444117447754961484432050354333336038612074825274019474741119473412925133115920621440231099941286567250805292202167881875471673091424469975231771837643541696819334127697823386138534079850791191742321676254378751043715134006893547967937908569049983527836737298084076522463225727287610299092234289723567240208740822451295911166224569242663392649292449033280689864329398180957999682741492467826705558972103664753233845923068436142703854424714823230913442741357719435603376452805278872088830387944366694567136428573059134377914188535975041646679726785592346987132910944197814387347537479968245235188401115638669657184239145455010963407309411039974332539281433968923879953553168274391912823820536707478146432339117832891451549688990457437867699899874745326822752276673600061814454431112244185430727768646086189231978618398408126832643306240428536112715618300496875156064628243899195150541161720495638455833366270977380681914973579584029420400358397708756315771549642576946710856795798018580983201439610365945781635805529673166471903464976365385538138040142856395510654606593382707975856309092125811504777522971985044240242341255851748630961602430922693217580337333356707320765509404355588826891957906340443155592891084302555075784915420294447115347283984432062595396839305006835132894831106356498594586017291473400294640146701323868998293183725918486716905007440121116091071618013195181822654625028310586245328468822186906722103125322998318813865489890166244381964118699150717228754632855084981751012662501332768551745614032599451935125087309692076736796346350227894569529815318777677648660954767224374110800560732384560911476564761472077073261556248111209727187035226692026813148467909773409495401368261808165350999556508446029808607723811452073095227348820775580314715734621656241420857351513740082677060949047151149194819004615591129490813420222815246203959319121493755746549162072517886431522305883849075463323483099839483729217780081058022146249933078175143569197437636168554835147717357701971688637126262057553395372903978825853094295470182714156725377971915006469973638817707446568295772014632218797637244207870463714702890277244846831866260538129337217333224645114163147804650484447615790295753434217554835192691204268040839614215523245686533317593835450327974087626722191824394649406291724416039599978095159845153761292945571274540886585251851375249241749060009607731102074917045742245269770954887137787878735695586411080514446582467286580447197700657830770905152129877762540159126294690153891483861935201481607614699685954252943863145666084173275202418921229825938648672183583731428528566971533166485380494157357248842392883091776618668669502088286394836077205869305713625271633975549717222884794375676314108958740709588766471185221476423211009012467609493265458315718461287116810048305063725913055481548634111195838366227595365046861448714965500307291770027927891967117530029685991541802552581476592928456141423398109596072778669035052372670397906617218540393048837438854292880071144358378082494567568415256380530196325065961191149329445421601696249126485864608197130559750443394627686181354456304457004281560480557876100827081062526751684340649281491004857324122916022596738728455189815069423670127945334799044821803036555462652392692533859036616694199298192988638611899068079671392427228246147694714357990408848556781832062574078592791971733231708368750972274844969601911454971325399116441525584713571819370440962862859607463708794124529891729498508947907235983914628344068776550888566478080657567569054959466124513097725814267143797768735449468974993476224204564638209007985507840114016670473773849955375177370256389681614337458460836701400986773742630958876190287105016697842877315691444226255436725665243433203286567608954615941755618799321159587402972896340422466896114553227473949595989553489939091770929923782034936466328543053094126708022022423938544665565972060805995133998524771297869922633291203387606065760078478143429441517779332551126925080534332702586986063945524228581052702080032664236512750064561784159212696565093001870693915115840669659671610347002810977209010803333432474491975002700310269409114998280603188894216160475202904355443016091662677169043808966215663786823540145304216997136925634432968343792816246776951621051670660909378493533745260525309040230668215078238805939969762132473032098729643901836394736507753875646237220199962783624311660250259126570779013704365013184779285045355630398688684993354287301669652210755971353725676557393203080289724766231112282193303795497295918960466306167114851070171919802142921054651495627379891623396391300637128877844323877989633932638212030310115785695016287265215086754050310250374862505817715624677534340051792585399558819343754513585149875877095083453959255669406819143738361600053121111951723223629922898491180369252657678687951523051352480794215648399498880799460675445316716101283423864992879585237956457412425060656523415977132657883541218679322895042145708444179236334228690955410354086006978908701785706154815839804323113045568244455145817716480926924380104859947617559789797674002676004626461147312628669956595089273602499907613537762035755245500580195289329434612154752822536000033450467827717112821881673135795802571149924356829985739772909661468083312615295581823188026356546979766497074909273281968086310626620075859545387554231429434497931607842921389806478318076564747656864139125753232402243365013478062826830121120341512391464907409409730355151767924353893572389362705875954390164300940957500969500458262214753641421257800513165583521216812321933300908037955775665817120100094197617656795944181951092791986413591700737877952125932774929256370176224893529481663837415873046683117639715256264066202170245488982942083957132125778064389614986928505429326268279963159260771643641954004066826300773239646346533443565412869281812866716033312550851745648587386110844150365578646023755835098679404072249848055720428113102922557074410100861829369337175505072818573385659513351682698842607833859590606772369813909255281867945978740548637475396714965771553793512913987385023269630663295473839989036077191638293027974000900956455670362687933118356668210310296339735601010899984144431381548190021874812081009941080728468573007628927629286266677969331705907489562667835687067423103574796928137922743752198245589876046706576856040254884921687037886098453180308600666698954921714384715826208183837835274235405410262133803559447470259832594358991196971741380357192220295850174504807697890721286667164749182808226680382178545358615028762816696369206574213282811594839441301386551129394655517303709064477542495927258847218112873154994574724406252772406302008485384785956104071243699862298107144906601238587471434512545669184364895638326430313754519698680708073842642890110996510725150849588931569255419006704175548656831758676417715413611089265424656723594127608159790272166414795990495054135700583362737721289426806517280567745299982780861592426970184731660111150325717874990791534105066943304508734842362978576313944324679008536513533810334449326063613405974554060888042808134749930387337158743886155825101530937811441741246543847592757318553719996586240563619793966752367662818756133971683814808999884616289164662389513278829137392908996297558222593650369338048697695220634943559839319153124260603470435745735086623177210742659052123273923306917865842092440106680895823187034309117957502966234934317999106585392872674960001093788930130080618699154679870605813258296661144417146287991035469649198024290615255166471803361263553749956896261294210431969346258035673470870639277856936774846428327942136923799568131345575192569056663517440577492577617071192923837310885387388347705494947337004850114283922695976183237547715738806279000792117443962223239485827602929310816266970132303585868056957694068387494095297468352214116700494744968483502377721314691331583905370016466686425051726614733920794574810791999943132072938544916398118969330986784628365196498904236930678186306865493210883209398042044595314143385201962927139346603314693065883156981097819792560595364211506180980957882056070027961924241076193575782471232421036795881139129961348690348535694668750327495732354505124596652043617742637360088900285871422420075726168119830551409472305717281890867169506149629688588091328714171403416036328600040541230436454355711104879938397484240794723657796670992041574217240651605266915473513905622004301850307462904329440002734245853941391672814941960326283270368237410489279432546685252269067588385206615052684720413009841284253832394721235168916253632945968166392560239702178558070770152426028062774648748202092426734736277542754187518894650189925729774158684174499981668994170565088838530034054439892168514683827246256252062406817687741628968219743259391580192168279607345227787273860951633339214669370722885707880113117855279528650387123657164363711758288887902142179332713541048184470086386981383972258682011354783179897582314602199656755689308279605326866346994899966828428562854650747100257876095692060769043819054325544776546259630810904047473875601071516002211405992687592276643153115289996721412528659468386499623700008269609098389271096927198889748216721853343889857628265262593088174228543823089277897602280777646474486087517361004765420822162669758719299310413280253899873413453067046557985057948406227502191141031383288208511206304340754028274607013904840684785487029517224651230104087241565972280830694678167491881368383967366292321202479722288572915764336126371552135686806806889205584323888426400081037805316523743680650057488327516916371246371764370517671647762488702314193975931142524569889863078288606609822250472492260995961798682668086300580331032243513898287573653843747070556656318583583101714275246482324544430409237495363932221593049158083407318318950974637439909984874557692959779611260468255553462899421846726208398014824110188689877791326018896860060496387333473140047900699573575983475891616134648141280175670407570439435201816873402607443146359643222697141644985460797358112797883807159676160542555891069120471767423388809240130610205239785181750125375264961176174210652181508350838776180248420114343546976916029807538340599423126617820818465317811526278980947599140150341388771449846692153383602538157263054495990169781750988923130631716874952335950776966163660001373493874878154300590171772611425013143417080958627399498867801006987794786327409162517744350572260841994419070100431705631877368661103339664774841484292854532298551035635092133894621270211301730652747799438557358382847425697989530826999895268085771071925712704203970762012355486133434194122621476530459479623962399593145216519162041947390009393657882481377168741468945267242146946546962183350856799569553661590436424222802220575463686754550510907585648523815407603858874691145033061682570567629140965995139503914933688112095145976213861626868244558775057682742647955631780277851500707765487306434414940462604884145520573410694893543367336581945929816856749491664372750623274988281620511535397469206337963195659222710003047904090563967411207787785101788773353084637139008005191162695722654847208283193209367080295973923902151956915874371794197779600316595383035581703021984932215308586305499784600148428028144921951569762611195978304010014442648890104181943565039386090604844420275606793257194852112309690202578323778313644800655765640992728834114271619402364517425104123657877327572761690210841922624549413376005063047659987235969792062161736717365276187678293440072662288185602596811746816432643880650833885195667590346974164404036454488307300829279676455352621890346719973183899021513179558316155898278009261227922179670364999362262802140901628118529990160814255563023468315286194108902936993883943561657515479042533880297168215545491224487359179145930549071187522906355065467575234334718750754324221554415529581131858651046870866586895922811778212687408377033016711710492844948701219208105883097435770587018363187981416262585493479138715303767121941790940762480340627831934821641840984716459262958675210975597237522721111051107564864018328647545674777661978112268721578472969901386930295843433107069723864599508014859266588781184279439582446244822184468072927722783019407437390595989450711926194593630903132008868110032935124314500872895953186651067637334948252033653221046318518555058423249937666379732730537544100036568952861570172625059604841823619812812265368363057193752534325674433427936470651066020792909213885906361031814029839566145694102010635343922360982440928068532186960450161066222928542222000623765326986397230286403532457389948084265190350896565187795236858656555617903754664590551079097344245366313590853793813630330303418440959958621167058554773976133010278352930766246939244338715012974882754477520902795367646583263793572209273889009561140463956404257565985978162048606944431219276092221545811760957498847721631406080118232944695910005285499388043466578982848608706493238466901499985444203815691635926919860657794535147422206239224827376977299295531084986353458207324727576531894103633753100431422802904788418316485917097248713996876368012044241494130241665584193940222263773750944506372812119165654838998141306488659064599773322925287428375254241347109544279843601050203161521503056678249886982115511478908674711956402798648213998130095197032968906590921607843383350583565427963822834980388176106535492466858154562453260941635099955276575378982386603185151861256209202721963425011378919121398009537426095093111963796999976661711821583890894201954606736380529684913727248608459393357898964463043465407398224169060689808040462837290791975857487767441070442919832086677382415531415227206444386153641637976459355639021572960574045379334928328161155681024729195465134604808578235992985306964058295470177993162984832573354324447773737222323991169184559923019257801826234186198959408801409473882538148894291932966467814517466211607772505383700020616912241148969963867010741316873015032769000311794560139696381489945930177304225735485238401711660046685227655233017911144296186108672863256132301197553057200980143258307215466164762105225505374122976916447711248277026932035721011681811980429211376666289465594497901970509071571160844168336148662178433357981645467623377364583393933460692013533913310128313416740677963078755698039564684616985055073665504165844604365983005107880509157751761883841822055860752533406364004044750190775738658133649678547668673559860406284406603656852522526510221327862508986260978749957604607521608975218727163240220455657107514355142313847301052406528027306567292505920556105026482633357436781039892597185367651351467016418417068871314936985842662616384560783794136219577219362698701013151932236581481266832285475534970849996526779361628602692706724191273080664340440173369711352212576491143226069917006086626251300514996844278743912822828047998412288401587203137916621411619988678181929593799537400582722590512189580744371560124811627262680234842520470320101452869763228246243354114243321431864149124506922229998341433224850882413485203176982700241553462921788788688113003196084726758790956767530545484331214276252343777850751168367786816198713230104802330661697168647952594920883019037359471402858848584148700574079642500566706512951266359817667539773984561622105359678085953652604028987962818132881842640574974615194884555127557467006194770919911895059392986845463943353942882022720672405437485811591401697257195460049125686373676040594571868345919971220900447307650236536144546960297383218327848049532241302930823565493211968586489451468285273088287737354127305447331454714358999608306335616890133793227568974438667592527916049981689754029466914556147220370271078959415790591377375059098017917925105170748708578870091666257578366464277458124796409044609196598605437433795704534337659628958869570071231175947370761825374288737409965140651711246117800902509296373325730929001371354505377350957240389308154376306407745572239605471803918140260496475457392392528517078501110032780170441943772019071599284234351696078548134859768435447088747089444752491156395889480670574715780416613259673930715695363619223634518324820139824732910717222782473687856076160190792275956302315724469381148144128885424936995400741726428991251804769262552406484678289913969819709445276989439100472171164605083585227301577887593291213952158697622192463262314237759690694908038766515699080933168621042127711536500918681289486441357769988541835620382821492105508122320646773031515882085405644540639723688004436808744030124209301929241753619925258344421084827570376159172596338394007806046842053715485154583877241865193661786512011182509449833347515206466636551953957567653036436244344896863875239790889916281578386205459441296952054175147493500289673201886833347930788011162745231336433606605044025915881471482495383615040051494825041854663032165766514832421657275799747669044452973110670610595153104754402251127599714205057472577034164593247776750135253439050209559655247732420470915023322132426346400448597209543855072058842511453921845041032992360617143823018408772668815025033807308597827837801923342863028607440150681177401483272632119875002427965437819069458331012191341607805040548458154632689202383805483449602669813166689343647361739949436962516578688067714466202619652363475424251138819841354364671458613109147906906068273647478689475476435675612796409250003178976136271127881577395882085902471896220234717702822109380777601299897767994051603668227184431860861972365132193887327042663488418823763803878625943873043443481056854823353323468636249658075953676334513636464452627845755426395007718193977147307932983486637553015646746769753404384627895261828402883798885207782833911838264434620336561037708433654021913153070277376499460290607099933247369233180147066959349928822196871691725520142589952336277794885077907651597487319698799684011963803101708358430207994250067227195367699816726250663226988812124290260681559116126275624098155142899532560171972306422010264840665067114096577509931563319113511254150819224464639050070040504701767592066350615061755661737489575877159984606143547881119599669982134165118482223031875567714221012562676757750379419830064455841232017058472749613246653400223194650795141843006948665950977430528834340092874477411722774137897280671893714002077594808831106874967774138701371179106614747137982986489712625641225634168797835648531050366619690381118808565675956647148396337312463331439088294424579368237489723003012887246132843359091247572100307096867012868219490849480206574008515732682741032848330992798248318282846579506224214263647771002954101722255078690732130427854608729085131115346123580436942501126414680244816074388770466366248232728868625143504452256934095119168994586441241618155233079050885278997036003169552435275918822925926395489138532601390605525025497745597267713435210519758183989469818284036736313557338360360312102544065397927149902643553124440554740185539022269037945681839371711655069705816919883782955416077901943440402868597096881380270422638943509876230983402817827124525222127987221010665652076843125248333392677431086123425596385460166176897289765463347218790954090065378517243834068141635034573292970392419116281309408811016612772296163033973068398125785402120812645065842169459045426778040718955310170236350136667300342025313410765190830787950979768697983210565863110758666849855902182052922666168999411699380670936204090795818458544775284144679844537419817045999454836566816247156775336360429934960430279131557361950719316080091489514243436313986289537607217561509159659887458607362715550542505417087811925895635750600659092631525234911392154676150244767040016275557543481302367359397360041879494230562964323175596866610759828769879810776481126803077972569539174629001263131739399777988657357457949592807522155853393598156516307465205768942977930585661584970586976437501359942684776108515079748837737761989494118794422872440598683445482174959116340448114767963401023089231416015500136372978387778598200334878580766168253740748775265445286551202481363757176739038629341435036427049521554429321062623810303822075917311135110758171143755655969553494797047481214698710553492669378986969386454738022473890809637783542612097810110198341083006080225528366318642429693269500251174742590099588566519811176897962402631152240762220871562822323970033717308985302482310650025380159601993881116463230667834724734613210044728718577489935837936760657575536695795770664305427500420500630270311166844293841141698008434076938697521775394411539536345923914204607892763700285857609300007094264942142159545938669975896298827846707965783712665685486483122800583769218315008389149359456215922599622191225783862726433059421878208028674962167440583548074576212828767524330478715461735323778891221430168307459430998555164054336677569717654150230736730475624443968733005626057782842132770521588807326430869127192105631483894420939947862936576662074868435544250034560030541133647767812676607611592702614119796780498868244696634689069154708235149582683647894887609042310341377510849781923341590099633598149139055667948903252588401748560300697341354785132468590120487251890432537552390866007137086863506049234035412523033396049795258621009063431235418877415551584081044110359963854319045688190046975125960573004837771432688433977189961118414742279311409376853372605226419340271769534416044613440696313415919127783072962250449625725788357831057474238298976805960576221242940529895201123040832084198424943245304734603141291455435115985172966832375715600872301830101070089001631998592709781847665549599557148453953967751316327944954285949595525275309499322482926099850183268510718979389386889775806093013011720425862565796507166937309192519868822890155979837083913594994652738921340051396079865051068351697627694699313749807701854450453907954649075253365218772310148743143788717323541030147511837408574268671351121660947711521835150962094148753068359391997473153563285351792061105555278657929689725131709922318907612371521135021370953853301670731344340959076424990372979655422958288080258223055803289413986188260537705030072880580596795189297298656037700773992304478291124508621177680454514763233078102222943864180396379874574789779480893963919794411869980736901345723570943650851266307656347319364553554065613828341984424389709029550127177743921713746363298627143626393169799954174615069639345601842406597351958724413268639411097302046848887678949562489340963214677527552646581490309186573001155062009501807488440881852878886916117638159409552110697830003697989156797613582876962000530079054160417574435054099853121729903092465901945662517096400892617469632318071261075803546125110989827872243846247593397960415194355651804045336024088356662058103954184765192661768464253698305346643566507670387487136276549581912212467708523421166453468300151942540941170923657077478812586039803643749564598167620261502168132866350438044008347825485745111082241832491522155424669443648043628026265642534350283211554189588562316560207405658110123639758146961765264197015124658930956670309269710503988225385716909274195070220621196724582077412206339804085648682276784818007712051680818126143513272308469904952503836284018054001306076389771583935023251454821615099294316894621695180460203039455744438732896488173654152553762640822782233326732715253511530689095482346656295089157678976867281915441394156015061753370082491699783492884981430350259748564848575507264613213945484276230892027527750861951735178540826602760894746397509535064841535759969302233983957046716339200078598396994315646198518202493851027935360461149795134147849635014392954870849373695659946817080064525266450024245969251372913981814729607736913940045370069892385587314947999075434753102332793874400919871042952552905461173107246102337950401042420715729517526054392157004854650043299993443867880183292991241924241916593270543952565258723401772502092213365405118593151899009861440300646144206227128273685088845222632394193410243783475454876495066360505395980821107569865907911351617529690591620079830880290790993271323804452638855140309746317103658547680706971906350630474768287576548010680006929878915956544645792625325444375408233379146661597532306693545752098071277238378886461244260209216514370927207052589439628521406730319438233931375497950666070952880920305159618593648146732721882146300355090042146760846575474117995549702628967403072820879569373373636554993075978568145443507137116760766336638313504333673757003378346704948894939725273567516213682155700587260974381183303382702352672513384765567908474462395093215244714458625311110781004970374969963634699238700998738206095067653705699184617702059544959016827442875398093824977017531748792379022603257485318719636455544610987429559590834242922144970119433794030322306649056076474837142672880964733162586975993398308693337805135925281463668309467952788328167539462474979541865026129990148657117639630747164288791729323184779721238261987194990042084511373187338773215214512546255161008321411121888833404147316676455131027850624288242236110179960782833447339618272276577350080964129156398860351216257055694869976213272364019657088284728970917290975166691290013962893160150627875760257611252421513506690778390493285762344301542026115908244397283011078266182267543697203757860776006633100474370976795385275186672824234973200032776150834766234594325684112578396464190525502803915667241554269670584258190787371090142905178833898285459367453747775854209427924294153104338010574505665051715676450880867551191982557692480182133755923543395797330039573702774923000767709140042206547352321018024136850009605128593514636074276232565222764056901974975933873523567979875652711181936373345287743577639623383840252331884416024963023229504638958887392724967071694564731742906925387755138814000981466458152782403729471789094523106540123155950562902444883345793018492835804112202419505028487749594093130824913561966965776888671421764825728406400785174656814691774399848819157097466412101021782147742941076929267993998618784530650605642913707057702217718941757136871585433387424989845763003328109479509433819367760166379103396531924067442796450524278120260721680795557554536390574809034632727881801182934075245323552341015338050870812056169829805829580499058457284263552701993246637815847497888269009113236134186102021543000208297763543869979944571508170782002720965658671127193779188206212134806311683719192421452052630641973520777002787826409878440791063468539427135053954784606444330785791116177150988820097936118951407341401679658300598463007687911771684617012654387186129849475894592657312411348293898076136547240744825754687782540667847582119713362211831462852072033187715199288518329659083280204730898558748579758142672307692554117914031593500268267660765433323729615337359789428676166827823563811442557319761206375864265856890660956756634783580546027047305318592526579436646888848533015238634808194388407522405386018008623504380509187675805880646384784326635948938601885113045061501062934003386025150367447607941038442696045036336271261001491406295955095777142901558354373587269102451577564002911292657129509434038050743831014111746539171121591076956502322957779034812163653325635515753906405452613910513906246077689547654489757136789444227561069111614261141133445326902777864746170610076657880024450923682919454551459895248412048723687974647830001950016763695147090151205197647046990538473553247619296043071193127519247160501423708487891486790788418534982221268390316428132521640065788350415949765797615299468950650643156863178530992004077237179505866590732257076832903803718836486972173504514504663768041131969730552943536607911543349240848097270381459604082058559241642379480325186798331582296800456060946126379776294986551432175647705293532728130440009484961484657304429939141674047148686664551476731541802050367860321563785704845321393889112345321457887993903186573488810453089423921117547819890885707426774171155974255779674130537338601398801585735885349109699414779410863353042871277602297737148693120991130903094121705407143043817369246502066151529569906840026776496538500260606813342870103731751416394330167025700772390833079935421921328400305287314495701479303577787531554076516547734603283893917848648077806992607061802379635198375504537331931987412575520806861008967141593691596969866767558641873301312476970241411918067537894593047316282367509396531071990067645180235699479222907623095961862176512117857777709562931234262563412983132964856297141643078937247896923601322243800720252388324076713729727224391868033977003009000808336647940078677493048564133778495500618878341766337700575892790662286648951932526857469635276219308043669656497679642189617833868812050325006476156789381936207141291355174602375730824301771881437567859754887084847711121084602779429350231364195877538103434270036330430773861399770269587645844124054037133391159748299964491945558195835471145054514910830302754802069147913725023696057505071855262348379171392572208572240575755003785617637464220637503010769628168075781704043349541190049895390491378476844064029970149023901529285765575359635886300407243010670613419938546465057293750007211751488150872593887719792049104617046496508829664134191435614565467320649279323132054944974356394474085502477005216816849177966252798788563980766335144204087286540639645271314657661398922330086123377845272724340542117975959725014800131187429014374299966478240305396084530055562576118677989708770956224465861971874065244274260526186170868843373737743869607097346713018847733778539910726916113210498688225185734433395044912845582676561682515984397540738311014640679057822309954420959690894770047486230320400412079983561450536000666377384808802244079090287470780769200675141850217257567230850064235693795844524645091836942981104174683589479488599169306485077698377658516212615014396881520016964420479152137367996035636166047208884667821296409642663914826235855301257552709292082281307594271644719342209303085867768949851929827464121721594746903564752860691857929648702163555964676556420738131744868721864443109009386538235663599406891695635541034434954540445554766871119530169553023895198705347702068914586944186195471837605292312966545096628560431405783346725093958490645636608816698737435366820570040216710850055594333887262324344220546924361595629053971278231224681403998381216163816795206997990419131914294610425429200325810976637241218990801356560394493473380772439792555610169633116779120993807763466672958028373170734560779652943485875850615336491109291759695237273560129695058458578889377436552383475116192985418281933670962413956743151525217324850137706939056018043776181050141080282040718289052610750039353029681137097081441128370534358354600869982755404469018668963209081686841635561188873069541542000377724612503787590089331746351865624496517121623092135143691664704917409272178715904836387436423140454420895198717693677446323531677631833469671295308032485931547241191118915453358680811364719078509263115624202182642244118966930786834861109049352264851508606335018530122435276297456900639644193507010157366674840218852464967285896198126829132508136671022127759732416571344726587991143216471652978852940930099843207982059523320669805519774838411547090428495838912434857083176893729205862280353516861398302322633264663337805765053403497610889420540220370648233101236675272056847136514753357987533855255504773179722235817050164983978848097845493504120643491826752135639219506768506758269856680382496699885218840560428085564088549558427928346717972124817443776552382845265685791003779384925032952039358636521926169171553572098358553711605302401753775646818913904060501157907306597360968291663328000171472836603827306907672707149096741665156832044144215314964991567973446376228194767526200289297905632304800652638813995740312770634397197767301802634972281521294645264244768355126478434933970423552469824422238972400382689714828927786977293813117808974046818096880302714890554728928476008170330326990177267002275351206119552022642312794873883286655349896446043790785199315165950225593139931003902816746685950317355121951243766638158221143404693370841505710139663545334873358916599078355339935041992820722930895724727253214701615986161235507209614982342276811980488187042430563947333417495299335914646350578685755426287225521651971199009417827818699222854686731260542357175423946213914393547170138520736368094602899230295683804854691577401572560051428526420557425265209578055975683254543778806635382559220618823428175385577390285259269194571018915211943986116296938972849976854666682220454906285731329722692263449129740902467183734826678509812152618621848645908882488794181422094284190070310130464184086370554716529682915547274917509978366597790736765325340233776151144298066153717955561782995560658607186391683555881339787713555001261993143200282002839643417847423148636335874697349595921074112723296077228559669004205611752735452114728728343267449709936801203438297272226649570632298231098172645869251553598970196171855129668643329318938866892267659275250433341694099638829852225379806618589811343682753288528151859220026721523346903981036139903737627948573332284915520319148027604917582041218149603735516945903635150985496285591053794860489026181181489322433185159717817034279755908365457914813424151866719235690413018743528905092301826928226408927131389578743629585420272120474968485020642062270286269679659065124177034853586999758516182072547106682885245533509297812971585598104474373328689075161171513112430862868709568246475990552241631884373188875355944917429999051402591059663682335969298370103135459629314665679322334346518626946167474242932909943986345011200879884006467927270166423507853545766196409859930629845778646210049987867457905098162808423317925945387655347393819101504035314053440926315078023131744958317554923621672147072433556441923110062365417498023880487515600507368039084465307466867454783243336052261599654846839081425429785528539258200185656917350040093142015675062987011917312788571003923272525902497445860258693085419418196226495817584638618441635048237100774377583342495361127230262539230746386264215965712480611582970481087092450258084814151653552372423308684008968076924794258647175426555518224769206592928640036632694290668073276367753410469601201725249779328564584736891096992313378600804754917028076210893554772370500433458697005098883705478783050906704862716802953928090302127689565252332700551265574671368866313125261676707467743612077687940922144441382554498978529426374038291380347469865309556611492829565001841031448477077538924226075146676636957069878640028436491839264141772383361780165717026721924881405011856279429488645046140753444633252902360732663311480530108303879719517117804834404007483967095918862860240237634821610299075863122522069554998697369360054773384009124102950081157508875252880641188871053732022212501594312229712817547815814204559702127300404870560326329701754426181831371207251742435010066674004119707233694074371029759396027846809075272069088941658534578390608087771404875654652245491832489343714212381054986559455543761096882341588142205007519575282483034747740879068110169847905071344582975576928887534767144859885355707506142860371944773791251958315438504739839493317520722179708051653517197574399387617825667711299040199915276568152535437375167668061456559093076041286312645168958420872581274005909764741283015197327224403037274843885339208376080147432770392621773765734071496260810831412774215172520334219774358966136615295287958745149286988315681950388240561660453653438649553534175798470092032799929347174181181603613393680337498815720043472667644976531371683165700768335914096661455595730162175634419505845711412628995634153550901305608403327964185243741018927842018340534305436149743617253027558803176672541191538559129698788450472945550212413945825162874895266840007654175020210482497533303826924195447820029637419971362515538189205280212500312929839759655763235251121692860723650374110467550072590073341708135558965562794270157682438147844951109632469713749369224701378749433365699305067657780560161298781228475066783725634814409543231609410617341398103986657501916519612632047217202429787545300922788333343432467358735375108351752096522669541938791574316816308654150202572567948037708983253903969137236779321721109536868860447989661564630384879475469664947973871233041348101532801392414244888182209325111735880698206942201392621149441450472742792698728181654839010620935169847918845664934126697595377699377274963765897146168508235567575061574423425814524175871336881385165921730218643785574462839805313580911642569281239685140933486123925612159459049107698200419562976673961737265695749783806253203564759725712599956820193974325836812709146630722977059252790325012960924574574827776321096765679913056305493065414245660552146090334081754177250598532472552424628062039349277929112847128275944318330554241400509492589042318507217273834682035811737623859878423979523342070210415464994522095037113635639980957611972828925090646605194088745649324498061801862496216260462667830429286184474357772298890858088408010926344532968599781143371881258480088446565755293591857567627266359019352045034178520496911490465203909628511367629049638273123498310311277196468696745484048332604128876696823155419248685153614495393859262422538269287435872868693870357248794447952315462255709666808489764796877482553158210168660976547032357905902457153260310159983922202281067445926020080652734138371587026574311242856199642845087973041768903258635055360740937897982714732717974977381776718980131284868116195226385481630331618596702492828734911344730977664307913233560898839090536732888901112051785972187037884897268538721727297975194305688737875872665248950511998686120298709434195603307688061668478765969299667107492582733681945352693854982220053146434132835576369949961805464634465511221841882237974160611692934849945195249342505868487721067585053297718579827759272419944490370694839318200673552190742323563577548371198189295592166251889979150398749397061559110654964577268784421746616375209081479357516408508881717974095792102301885915701766957520695543294864654061604923688299357267246787002937038426386212266467033815548327120065718754891517370294625925623627803946878924823610770194468393805360196529995828950399731475468168782732575534412817804213147960997363993542027130570723648782756567181796056229721336357685146837173771777417887801513238421329126731362679075064055060135307963911821020800718307278723369565741731601219788186519940574211477922527301717807262153393539361264424974293835231576153128843354367994297379671059315773577266872624880081442367407927437796334409403089787003220331614624622987806252233997207574441901355146291463704891739266540261024633400276676056949529901241033953136643732642134449592408506084068766936987972033324623649001270432044459227917854931483730249363056748071833235943545508116727519246819306437604329263924543652903130619022634044151407036000758158907452546895938057308905692902227250386074456309631993246669790803763826728220186985557717764762986344365167645974241023185123458860785143686611990265863486931486100309502701067561198303084244314941082838057744858310680139070417620210200017444218617555507778844846716050110266599620263094713056427396282472641495894332815580616013413711859994419997822356296902955255413647582602195537649525824577253820518825122419760013887444606214977076824811437259642648257814093291269112229721775724038583327591626343775687440950770166263682654739505857598281801383339448889749852734392001832228574341221568879292802490776884778895363129803873821171627506958617039479216246653626296317827480223612251952004333095787589126332462182962339414959239269066263342135133834371222111751880491311935256378996268883413304990475483519422323092024294159092814224220160596577465936634330062212860820798538848029393926491995646740453138654886842623910909157590232467726649871391260931500808888923553328421858394367419687172488227087150777215166845813706796455882096555577322187805798354956899212424982608163589568444668833251278317515143554931119129380365053889876003788825963418026631146995113184488801451043397488656665408467214436287421063583478531956252464955508452698738192379984333957672808579560257876904372760073971215995083905139843759650365082494147168043342065118760101781140198200191021249571526748215157766089611612908834550324286285653536209758467099479147208514451575601692505183117294466732931188115947508211067594526262923435082811748456308982018854970561929942978936199111054352105853845467703238359916991756432644950570942765497192410123691426248502252426618311291816933009969167486378181044972898423524093551976631508391119205357165794878569190621925556613331616348815715587602961042043185312126599725150529083990962376945011216872453859948240084577663166492062069667177813333137317968895676497366139052652782057691138092150811651269513453827305868431649538449415312756006107838721898421729766831256364289712901150444231768666492210841531637757893705007601836140332618633212263322151478145427980494399726698915830456234248542561312571925121230242905941920864403770181042804429558529639854409679003664255485127430274972853255547843215806372421870358876543462322724348978085762383162564846328284736501849616880370313414588053071707041249430204164989582521403631917681910222555053044454443543299033837801005858027095017399092910142043904391204814553290252779534341955390727373578913660413857973288271628009609073088485391194661375196577943921930381541762481745985384879518489711498568455568646605161093543291163742143994688153432742706818163141366475842058904437376787021337911023955057713532018823418646437834228625871053680662037872097733131646451812682592939421944174820710973952642251972857087727157431259070432999522149938084599806252137995417652349837676059613987024580203779244182055609532772538654455625129163443945004894725133283385219872285894018001900124668604159005880693224483259217188304784723743092939289183024912165571224042173936762872905945499244040980168456755960678691659923094121058034576669980875480002424862584943129140218102951091847595885902021690774026656476952341481237218472169959508407239870912552166291628619538201360165673400523657871083892725047847449836946130440452690811062359633844339620005249484977370024564431071962106066884031388818072173900037781237602753222413090601664382057946045405292676085736377503040954829059220659731984601836223798005677817279179640540549770566148662942447707838747874698960064900993184155727684152548851982066362893932622425966625190667356825078872217752197872268991188727709386266205981378487904864092864925405321812120275838598138019812361043391874417442440144038543710480373727157838030267781102585202351315169377289690311201288882862449514208323925214529617024292389752719466032040173999701019620844406165868315112379536503220974347498674962707256092939732304281466282107723596308929281368314920993415955666120888858366331869358716921125351466232251465053562935369508206224652643619663589300159576155088915093295615496687053065459599012367547975612212709499390733816626625376033264365297230470371300182945933024256560794636220247498192101011547664632376260744912644595104143881787352323149799165705606942732867497194687415269571853781975714710694631998369110991854625977838364418630971092845897006076101342612847101658706065010462576564707199580731150646720659036400552827028586333683206108383846384572519958090785253127681712973052954836082259014835329636646540186724448763553444550908909528960546439052130067323137562029038410425053413382941599865428983902384072256327449547427954613850846327274437851943883524548668811554625944023911931976706812831510361184705753720126677791936188331412528325470326394734829148567537477908938971767847863914294340707660866719402279373740587650007648161422900338242690568003914055495493291289532243589676393204684499812486006066398305143575763628686339859491714516674530781611492837733011136236073109379637568419012574530351782319114067741626794606572573014048183802620126742562275557015871236489566746152669638629535168256227317124741716350686432108830374530717861861746440867468663176134175975870207244424248572062226036600671487565195071422868956003153554604983646376594672973627810744574731801573016754435747617482525270937057624782234359714406257392974824433990546432376702022718029051723731720540867409000520373516131663788657778080400621405642564844070685643191940811907636329304661578632415174824079507746722182154513161973945290998208568649679973482085580631519805587373422594424435353680703978535385474102903855809278712986145843433148689172894844604649823582660866963387142744783464330305127644627582320498271347909090458564232180732432456668751279853383701234321492305452696329172760195595458202483981210618668705657136469672979792730682564451668404640271470643533726894778808988372879104769526435417690716000189583020761637244792752100728362723474118195496752941355230249664589680874807968954060406575533544787475776867699434558445406994065956770968270797675665416854594487268002644133735395118973934857247984204685290795333389637006147021872442816999080076457827302118503137930629933610708689105206222066836347525525348456156387469706154736363632431064441593145323053890907005133354399976021468512874453673110645443107849899717615662284053252519449091436514132323633411563298398423343830460239242524195092236193417144762265225111570627154009190064112547522355864160161018152677754329977645840837574754176169600809443069584519681094453709605884656776906587819660544835368101351324452056943262935445161660882660838396291162840186902663425978514272490744849986726877809683697163991943784003220417688467149427291496950612510176359924987650240172870988285556515355833174699855169492361502905405920916039903747220562671313042434342257236880995696218061401479173436928538964392364420993353800039014743173175798748222472979848628059025187903785302843273685616530845771422430266321266004436106603872887311593447046682896923494643412669415051272154176347281083123990220965417593153678178967425397317670749087195186096091762959797802956275804145354700379391025073700457743425646726482382395872352566572108935086100996380022497961193386277682799442262135441548939553543849400854336329273151894574695891219878077470352842794473195403100436430971696119326562741888348575700226629421594853303008772165150624658039511564579132731701386531739534663858716279399200050725135334241978334247142698333905015416722993468518510835449285355813040064592195089048536668763707049533674134023790773636518737408213776812468830637750895503674821749266244958120426985114751506746863036711217398061116725233257292674461666502742526495026764364836921674203159325295866707271771393475013952728843886408369164704676119798675275233736689444168394262321072148666595268311647742191703470591423768993677913989314768737025168011013461617019751695614345621480926471224643971804340404715248361481523738900472994360389013747778049813251400276173549698895885506339296083074675199734331137962814184204457723985062739591047894316486925373682777170673554580065907771486673103804251110531084737845405227892204762147038536059284432237420681639840185713021364377657274568514894839432948272494453049947081859039678043775464619924004628392704494568130698718943642248449598623260095193895488476195992129583697298513743133116725466353752888868240840907389210442755709611020633358022453157939987574732327789768532984440594768720538099228534838329036960271126182208608178991810006861167204595211589715194840970678767435456007137826054083193785519208008107570144461209926411283344754913392783997346341805224334016472780438757083605563980575433583713742781893373914962749558499607831308865862467710323180894324090666198742307340582757375278381368719260390874735139523246897170093234045027260494550859440803859621375858145322605728931670260124469490835342123988039084483531433971806870987700585544907712806041104310197501702586295061978347642825158221652597425994390993117034768348306179095818685946890383758588209955478608143538971947273841957439237149347067290776929007002071406826264082424334675260546636954008947863202208939442730448112716462562900101095665918759136445729987072904237065143063505320701360646600167752029924128904471718712333421290982354402737002003741900380932070192786470144221141914097405275088063881249012253675820900362765148519751636564730425742722374317233595358796327499569922943422196163735231899408387239507611559437510665670695864463920203990007101106261930480424039654128470680735008407329583016617072516623647370411289995950568466827655691317180469355054465229925893110232992167196062585457102234462510991124019322326236754759282180286437557995292149186461159435210902834042995225494423735235382766890660869796130825592004126763611449426260541649776651627547325150598246838789740600461866991817810696702769994689252059240240571548644438215487323065051347554833587671298624354875591227389748793800891628114644463602392929215539802290418911412702485811468448871591498231272063781633362373332292720342255822000071183660526034047349365200500290670075735200180437048824160676374742190610011365551562120247448151086476339735390980605609263719143144895679686064895188417388371657583042171468445394972773406152666705967756836935516473259412498579887084105194901481195179031793147101227085266028800752417095853728201201391272745953694236915551998629788179015789381997800473560543996638236576169784722826881046831489002328666061482398804257333329730218059193964746996482674972708870612158162898212014812335064633555415705701372772674584798300868005158581212694236903675007550899731519893311039973331412166566024366988865260073916377423611534356041132960554275710544741233160455345718563166031362833111386837646158910065053225847316762933531123800774080234872824710913612722495847889287106151131185375939364046325769431627921907347436658393897691929845608489103606305579088484419078512523149502149736922754278273340071174801411790775121986988597133774473795564131804509788131197087710982645276642488626913463576070692434306121267147792952658795779424254054306846762413058909490582345118399148510775713549411043893155515162031523303383371261001029004826303628552578998285274172103663941857351606623936816331011867612390915630437060681692762873864489692001140124175805478537772797830881015285418042086935763585136789468817111561498983813439157518464703414348655427040117025841329666458102108322325140923047802777935944263896147799984016818240426689321663708584532283199055513159657746697636824451484702826772764450937259596590044219899354801229979353946566827447083680300848184032630013087134813574944055095548416838290413002041804804835760455692543762529059039416917887138882271724350323108346898289774331782815824614634712076280469226432674570808663091157607708984884536558036705772532739898240328402254047806439364590900243474327078260729357318658529630055693991226662791749996044468883195078402901999970527274417552429664642294972385456551186609607327728622294076289441124659035997527422499681757727646409473216421970739938208609769087923796630320459371667651779336575816416799505702340092295839519254120875404961072780291042747743873729908515884217193263132502832153311628628552399915394752902739284788882630965396714426262809911168508710974124884093806318370491055382827321551879257667640417888856855205391712444045209952701814287898234529229374297626966559934363917285625682855168140247481463404539088195064937210847112220794886667012728089357238901431620036876574928341740377485414883078813935255149948229073512594014154589344148004598077684342107300933318107575850490946896213187353554588478424425379502176334230816749445347457620282342702481871858356095374130834474469874688455006686074027834202027979261238025197590103047480199466841452557349101597782867867383619323830588787909771653540530011249111393982133850904337825962835429228198116752761700237025398319433187458745574392481649052893122538614026160591227087356231781202693524791433598686396297692023598573913755418253009491483601461054283115269289894364011403419126281182042381750091387950291213321012367045506525713085996293533865992582368454839301362501978130699527803148991536269391226905678686843180728062961560812018471948541492221566085199256427161941550849991473930917499500717246234394399238296133380807700985685454769071113255508512846189508130446104479719083624763150317643122073379081863918198391603686597287695280237955950665789757734953765642618489802063509646627310916056149185602610552345861964030682597521120328734689643065504612492276323786088529425943653103737566490661834361661215102933312167685787713478608600485675626992111783407978501950549844801228222660099870399078859513019432411208255586628076760265155943164477862692384840484162655952453924754241427503337198252595925961957623920328800760160540332476782866408138027396358562587837520012186495019405419953326569128736603220725697731490522668022322019152884289485773051671034490650351154032733186087434895786736888010265741903905628368704342483847819444621977461853712677285179767034255178243377080697125208002677466970359068477349432019928495539659107020962959870782568542521806948887529172714633957815116384895054735695554589012069920636886739785431277016339286308989749095758145334684695851398446845156757320487044450534367064929626951824614081235340177935680875394612746314669049158045843641449957881869981763341702111144902443595736269103963376942614769894092508220797998510640324321270560312916155634385329873220724841527757431952977329419718959073587869515165774345445471293289314862113738878193064750712883933222056889773809016816026746233312692536449806516611742656591253186082988342818649682282452517888174217396737616399070352201319549572416678326908422180130536744728134884828813535075722715685339886574182282046621871285165140922926730511512888482797203931204892649681511956209792505294437328489401567854298557530137716851440861427346319905158765420773727721270300770639735013525749431369623967355373047814833261206481801285213111455590973220893285780930925232544890508475640328636074130537770365942626500644154156953013663571258163261053034196757800661915576512032664866591536862438873977119641636856889287092891861280342745722256540419307343087081351830262892838651150162433612252862639668468462838406095571292916000142279823116468146140565648211552806789130676061641800113857997409640307789267748906448691106278185510782123675690141177614700379236422653510445365941073981997520977498933921898273755481319733799444503997857850544345612024862557957765667228214652767761243003714466840207710151704712046343619292098760816117266737528987779863677475895578930421930359892532512346184985610438124945412180222465252584310380738000095143523197109353641656818530547788847351276204010903372825522874259886907555253862732647211553086263582342425765829541548381592110268756467447976415577367248582977472109763449412008211125018120046682532834665716485729451110261351012706946188914765606131588028024165319893951047552319261840155178551179580248132198522072047751612161764814315479912026089513075884617073466395055271987355387956679479282965783997962927029818767238852789279218820723226727918051624216072151659852018242969060067718768169327176384120522912790518869660285082948975915757016797095222924757432808754735326355310630951732431674060055463035681385643735867062168653317611814419262723738581110149028591522785536341178372168770996678680537681068749898432476508500175182197014217991956277136838800852783184508976509423124872471571984223793807796969063153106256428302067361935279539505174417021130296967711929822302812500620085683564899547169052186063332333390630945048077799621200756735206045011734455101715982754688650338381175447977027555812850896337550787298490604331559855568054303777771716673020279501677713123789893781544342743820760035629873482807530453147258934270393697812933883726462168357090616193663190623065125691276993532059639522757097917290586328748677146562469742119106836139823987738572558070501305550378188498880591669773885530743359659242708216157073057980678117542120732936742513309697434342164914436656650284664617502321155094005893026833151859710479290020769699472729952669441021103127243961481183561420247868488434936945344504580492123130620144826339284019670047583149944752051257060139921352493259110564942841618620460549541662546740282059800929431123077691500513991602080333755800797560650277529303707014932436074069663125967839316532321635114584590805346954459565177964407837363983186611868350243938876975875549757674501245478047225569917459814270092221780244528890182432021847470366845425513114286813241322871089384313405693822267681709335154973575468898038731559267316900320824234189872083586311629480124768197144390386103724095597034864616059486598843602971964101672299935203780346168627941935267778917642170372351361454294228034594225360003983656688540443225940933994590606311387811612448001366354535037110063824509100911209159764608143157864193230450972531686019467810513123126506323575259253962375874336012316462927764415430058682559045402434785069596634432508547096278163982867965501843746283247881389467643388325007891502738348866665518538205712694833164784198720534357178054521398650132246326498121974002318207232416633701298532884035610402566584689310048911473413956352307799239345496444834408183711925467089000088771405440618973314584318120268032068698886913945411860240132050579026108141269932782120314449105717208801457021130516407098921458031290877652973970301902155730255675138090031332480684440995845864616703586990396864474315211840040814375427803680946240910785247458130848447588102896878512544662028610835418498333249527823900745451872519458748122449120361829094734259057214352709596519945976838317571358001614974041176592883616704229977163338636175597295460874459741704444410913440054614597750537288287507430068547915048177860046065828734207963886651476322364760583414963612133709266777549767792405900905458494036286748747817776741185308898802829745273018205556331822619399769881618576119574469286178452630908659732727389306951996512584486768929294138884967433321519376280027722108125795848514219828166497673056222967012026203839095775559874133038793744725453848535934862036994861999528868942519120860899811294616260369351843668686173431614873809653095718893797202133480263214690479481191638339121242843698681752377072265492074892733639706631045191479714383836897045024503054368728788295768798516172221864193211230501895120087419793494015969023361746833977061536843662692321606426287049914588857284238915854270561871752048664883592272546702502818985610029643745317193313955176543686444274045013107101624385016407381493829229653174070148944840154107002331148818166466264428770071770029613891757604076211615376653999650795119138115500857207071124123809155852977770008940843219122992599855765961441823137922278094249619922798384492536503889764336049390040452225357995087456881514606514129448469631965379334446518832779748028456451178476698318559215090386767452893154344327589374740615335482529558786428968757529369884148118860533848627684921547788849761444745023453030535109487513787578363856289359962333643643654525069239536101887738208762109143532180733152638386921743095483128279735270088617418327790257241311000295300311172204665310798514731929388634376927126248203206994788349646187500888935215837268212685417984392203069561191837043023462662444352337768877697635485454319793532981933378457801163277604664633842475920510924266601542296767774419348624728314084388421907690355209141536866189554992545764346151851473117483340409336537544117775228771290023570071877182527509960697782088388940031467515874467388019080851390001583200704403874850280007792796335368347346910875450028955595289493037041170475458233032628341735793456486698367277518746724931707776857761332857014797279007267006496282103784699579549027373587486511719190625601808113275239801679623467898101798629720708030596306908993847215855637816635622204726478502678517976079243677140413992514099963095504003406375768445745622352874291528800139717061040221103990461483962067358765682136096532215832728346499861385862798488312194218109026534436350673522078167959286077746174950836345839231503857738196115517257752956259705576820317314085013429210332200244804214562021490455245843190632528235033889675062856243897510522465119608008945462625902327689628914914656340147774459426902638663207717154349744578114659845311629160504901711219638016165252797012450569445373698307895526940506177573402101181369729736386007556666409408530482125018262390794412745718626914034769994269587815288944488293038019336902196866158393186049486433421381183185689321948460344179784052461634761109290696047658029786168172739859386883226739722937515235918032781786962834271365387885815142217850788635628479338764754837372282013546877826867796447451725752269420735363181891331534826316894445799923020337720305546489506674074955385461528252028743195179726482836565040452947947172174635797316752090834977372914494710338628452673194280557182444499165492586819434199021615953964396031187500211632871587014295776486125597700955755452796372839871427695026945786505894894337702922744010420293100438444543039393936217041777346377650811661641237674543875677787303427731964035317371965412871736471419219637687298006512798892159836059474585589702683815281423305793933671937741760897207985991292542722388448091971967942047926348872031398740100579068169383402054043690808406724755092417943959831117443553298929975991625113333025010290456159259580184719352282004180311234613549568243088987030299534427096877965844401799555109438280000046013445890303798487843896095833369556913071592482739674381258533746549447806983765534102075587129579863736739020254624357753669151397814977426953140516311703139845645575396793034018273621735135897838130889225607538953179616555040792618266053351495945499756352053975223450933338274751987059576865919770309484063064632873073434608878019487581937868184815524344516309783948099279196136217073635638352289568047875969195527527442530689734753582259690993451475013728013704708112749501910124522200478294797692572851213356648375427291562566126030357046762496286957472075025078570799957096475590274646868197244411453637159366261921250760541589499093917780727677358176090017771117981260326607388292768026822434053414294287933610823782493108323029900829862357278597161383546818355951110694064125455171012838350303364373787989076302174695646146519745320440729875808231548754519825968147844619827558463542339731798425718532588812704301219455365200847605819999035036859050103246794617687955213936706053022309799564521269211585588362015256672664175446403736592739571670665370444055449166303979412162321877803690037853614418498296254240136808018110303199717164947030650996871265133894171736134194989335157910437619899579700306614886027802058293811535962419277807770566104440599869402841735043810943156888174390891037789085212537910651616372739743929665810280577965370231836166634062824523689319997629456371961924070949698906555604850446903127707470894293416947449482314135927777847121591014486326202708654585220509226281473533648192112454826095293711119910126415772307317214994026333097725469734218328663127033806609972565088342742259205675969639816663099524592480707195577351542157610344216944281753467837761303159340752085428852667712099800953661227464254326644877665133230956200289926628050337455423013170474807869982204329156239537286181755099013387318894920658024436815602978028842351638182478683066024968346331712275671770296402229260718741533869082514979435509289699270263745793873019775005108015420347882278291194419348167374054657174050651081899491090897046254586795587787674556057823911796556148050600224007033954218225099190313487766970769942469119199843320526346005623119525840415481060158495469405458136786207557481612708024401464528175379606607261572908850963729990699153329376330182346061215772642787070216446576542443276287051429643123688938714205220621116897835884944573900202115222158389482150231937607791744041056261913539647268305875043842399001406022811941165631514419741543112830127229712637644018075327278414995420353224824969946823688332532620919490998976545003845719825958633202805177073047344122263997981689832758658911055366618811029140916256057827936027140416130118244491454359959025153210665796598681813529047644707034819768822410206431039689418664753018269250162687749223824159022153613815011155945908197683064978630412013343125258600465868311049461902248097595955710603294442136731113446606816254311695166649248808610222556153648512500165022718425187970980565836636627729014387690786391685143780874435572522926020432739392830375701848952569329275324854002307926983703092954314668987617419813275145524555505718575438389721221345922401188982646022682223376650533413981428127994027737614141789013900861082710702263750866608538085137667739864735604605178435348505662729997422391857846112464015743758194603078285702294203112101520380869634278760500965976516867672070363145689517059534692342213349719088050182937374206996947707241936579746135803763400868285530428304775202927380750181126769724133339274530447707360567052011472961525107874538025463886784127079107005214714821679180158015700906799739785771344021422071981972697002257455997605184862036708228710642040501629919688544215013054842540090403235881333114886090935302381602919254690955789700623716928863204942457739963040394837428513223542513908720424591774020330657162354606495042894628858607807859441584545810218099655674845248931568046493978038125217988254792307703261723981769976525656984700805280212061974227058819822993189405199389071844447299400069024547823495908774654120577865503499506392149897096419284517352275049940603854532693307892780337744070624656305141772573760024282012439461865421936051433909323843363231155949868228048581679903325470487953364984351040007106719320583883909857373607942060993227056827423484783029266479602630064801193088978149902970298375273561425166860620609882054148735985751056813888504073472583857153094478028596773221310873675344645525913560058744388502620461817379166680556407087482701151398670951725672285989230805227900813945396735152529339588846482679750983774097851020256834838586583382759263795783534119882139004580232461166770242083820652897515933108408768858083925420717811900301008417573007515712935698231526185704275528370887587463284040300568116461305784457552346322300062606421813951065184629151721455969395473428659455904542376200539100777985283058670890476307572171567177589755777092633797209642876508966138981759308415971286351241634853798027764667298045241638027723136770411917876487278004969578392167299199237117333154825117857145661067314885437052027646209198517520870204460470679075658314907174325048192009927816822129486464655864901275417225726198803547530183804661539898833625082619561580042666373930907719748598854345691613535331358755475961221603643129624581245516251457989840904622874680560774765974465181888941554274249524133787116076996436198612813218494854458185730297411372259186792109553945688555329482649127607636456711036268935761434717086517956918278605340405456544997727046408029818162497340383225891104582934784159496496897313776371795597732881473753355945183683324630990276438120794752141922822472016581778735837815882145788603061048751445548082190378110906063479776782428124355710569607804144136524585190453352871128433165605081997442082005455260782298841514669927666320101380919778563962411100703513495975770706189004920323415696426628752916224569414297574238675732026252292728238976603893669956847778521864744131149511424430165594404681683726222938720984582864624808068628653837489925916589100975050980381049416374391685596615098926826276884642720400763148336047555199236526724102419472634789973096806151654330868267118565736747219249686036069490104655986628452826428031906820389321444984925309016441669003806331487600194892273239642870043945511663593619254466926339868888427052596546469983986546031552070250420077644734846396738924330874416779515385903021388773037166998086461609339167143664255943538999647136313794961205573381871052800180314302662022549407173520904093243035073927405692673496250207438261327506681438572112158537420257312341872952545313972995474129653256134094205466098164642802973317649513048116649454396739627823449604071576719716978337713572072528784365171825308775882974134484104655964563145955986477323177578954598933259982956535212675327356315994705231837102717587277532066453931417944861194812353694750152209777173087791340338009700843593173614322272337666077202138072311352004969682334750506619802183748281021769219234649900677617455430269656673588585363429040353163099178789080829371396173696701389622421129522695792782718349342713195529442065186426342098294114459138280412495550626697741970410067046470431133125204301246118754866518558188503193577582752059367730412080364054585894051288275958143692107312908922350505012969401416273319683131400371986569007339647294451454289794641708556902670874023857887721397431830934513624433384303360967479719029772904513305426507452123670288470804367943397538905963700749557324174762175516935686918875353041964212687801623744625087661005656014372074204310959590121841058055254667711696219825174128510517111201541553289742375158633561730338802768322371527810614251516447925667352586529257412335316644696827423223347610659480544240309715887650728459084776227896912180480067101945887076751190108355178661193934773375432860566457773567148363798105438970346832603070923854764239641192346767993641490730540309933571239356913283131837612210319437902096679296026992565705667266504797000216354631057282876928998591264425828727503180457048360399587086726443045355700591653257536367370819869227743552047921070494444414875923601382775221979902516602492323254613032113430592229633295101462014206659205963049587798513723877861307148643506262547325707953049980803229253006392197750136712657149817194822394263950127043385766092909112876861450157961470908337093081867074499597253425328484126804446676348784952420304857923421469725041806562052329068801631692386496593931459986121603801294570808048170609768635085903271506072083608900708945868428216591371991963232073995453277548824999438041920243954993218262145451150985271558094289440733958566164846294515051632708812574656484575087930548043834104982764301956661688225858254645722175872186515749081531634740502687570452094946713867075232205518267739535790181045892372824118360230659654820690182916480784788771541932552719351357335374750203806030260007131278235028393671405327332847272168246267813529727787156903028613584914997640696984767930939947197282729340860714333573384466711018589291398119335848930100161293018472970368307294008057146065149737358194663800079025663835532460758757460881537558320372596711951333383407825868511716742771571235329478291612918494855279446042464124923590318479245234890252470209808056689551965922125816682503262303374813858109532921284212209389940328911342630211895792963379754806041481864240253167902683688831858864846252426902927273335160675853480794828082197999343912603484165941183990339066053750430215813443502454077355977018254294866732839790949353573683463770865400391561578096061900842795914689978442022427256282172260481336920610617036416221050660106828987218994190407924378134330920405892442563099300171782889242358606712033623608331530359136296371937420335108659989971323300108226490396414587203214420089117298732921497965325775781050566919729702226894618450143879944439343282275375225066485682279663099628586263905244417884657265872045392799094186117267980430886536334272259821859149057080620825392119661215204269029955644538608458784392599300952249016938490786663837752502388592602568369433136497199208307596408709161958808333875157899472896330494476647069128273717645677146234514494494850409647350491575517207204856320047828627573824113411977256179320633064952865135552465366861792237848540815816002868132554154941727151959188980435972545937091120318481145358362112764997637191034763946431347654929245612040278503897660667981531905611197072181843495006690907362935953698725438994131144972161180297352988259159071433224180451009671940060149239396302698420357966694969529134707426019390109931809817627743121391314709682661391944086281435866019322896321351997280591263267143138307525288091176746682631474922518775269311468199985310579006303957030385607349675821573986297191736721603640525089920684823117714755813404036828007007061229445204674841314766173789953919915450140478390408789514394659750695788387032692611998523156592411848375198533549121356271382830315587079747937574536648670604888601377725827910635674481730487114732588231144862273047829362336510786673292241717207568248140215362437018714378979696125451338080177023543729325122120520766716515998201232054381570204851111147711124606579444981006533155906982003563635131282634724023357254015988247154460668960335682011548990654692720542986046125626653988919966091077799413378731104525908542929601439888921175792209144647741179117550416544441175448821206248866099790164270664924072001718333045006020833649758629260635413608313495162229140296412352059256646100219816261752677696681910263102245856003585281450856257137955891522676931722061123324540212783558603755261517214317538404652391836357116652637885965463255634054187949103006638615068694723328486033201641486240773278260273108680223521468011180956710381646563998836701690122689510266718942346823140221452784872388185253876178198247008913972624883583205027248853709626029232158048985984885947477344570047584882319959118789593732643321640258557938206524409206892155571611246897130923296351859285079477527455527093780428897203352031338110467120116763271904611028602635443592405188320444170781561960515805883078926645753088379378599224984938701080264788204476552406919411967808573164319957692002430271913591906147117397346177232959371070330862841528235480738528084104094386730231836341164177394029140093925791487804252246619944992920449634309798670571598319871980899221755061912850248809254721476564808407209563121699782272523008490523126313445707539653869912257478351318169059600415098984843925153892825248171695349552442052585537310082786326754548597085792583136785285537793770387218224182500446624294573435956151761321655818727702358846000861527736697303664280096223882136290316354062943944367243571801529896818889082604783740380417992864643918019939478567183322613365197240351048224173381938344894683151707064919168432778695348819847409647560680614142284578354255598732316522825477391178207594840132992248015338536923758949258031980815452299661977941660859261958314824793327345514875373930744850942236527890065399164365067645976874992778954038844654123887210602504243076307107734238478590665897354670778124299957144950109738226144877120316076250916699420134368707190180445289643943605929051383264267575555158731823126087577914047260411938262702702646852146288562224796395770257769131435450730404456568398581746788009506277093220219398297134085514724021755775162888572868715525041346585493228516352085412585606953621927056225177449914994433505755078540852314583748319027808651704365494961163434741485161416179022635530745975471554840722582602396324315149282469653776181636881536623525207510394410577395233288031718524246666983143898912360638035211071178512112991962326471885750748607018515734743736529202651448357998165520786508339941590176911096656716430345543404068280590646460738654252707790455204912320591720827508241241468858047238811648445961651454779747823334759746897862751371357762824065015228403796614479789907951523777126234357974696942450832368422115436808790851448499732448653660253315508974463799717833303554705432431801483328244337531847361099622578726476797250978159003473497517932790323784853173948285375969555354080912724830479305593574028306110115187296427194195183990244054007340846661939075471695089426918376623799230938512643194428712224348670455738542530233343924778285523967020732796032938134491557059687134817064313682764216860227498731971252525620153316438339438406717045193038359847325938448079097459207504172432929792623268348906796596161692476133884707716670669124708962969640185512915021385724466261715426173192708570718675477491420362888320558066308399988460605254978678954279008930483166937147835625929638933754374158617632452795537681089581108936172410280185112648026539501590798271388360205495620621859281964383528254467322437858431053982284614347034098410363828937741731345264577412124350685768700075777562188089482377807935094831768094972327600808156419395042433760553634611318330035990958114587260525051681508251250336713999995629494887711108824802257578370549514560538975911258841066204891272716466572216354319688995986489991573367839674072660946816095173014106283018491891366021386666339540320676367700208645557431100415324324391232902801442886888382347066829377752428305585738988243772765014348086218593494305319632955624619862509398564303263310698757748841341494352202656697528608828809268822155517984497454573857923116373137077887314529952596565633519307745418710644988261970992565107339433126057702787299038741655451191568377062026775842462864733145677903186366936673766211762119092784338789473392712813724739487660658841723636067235827842968563050487878888131222187671094784021498213389544164203003481144665875584524380858588097324110529056567422811988244638763578891896348079176119556377846332399455718201389727093416204808303354283938705306753905771180699569499943705452948106595446159077181078970685440656898379420113720550577884482300543596037827802475887221112097214300791400804974511194148095112642660250745968453444703050559339540183425297550533348890905835811601042100694486468534950235216687682779761772849455964309990179521328858291748681253804219804115732732097393592391134395464297599628750385287321781209011662801287513890053660738239035670151646053534121692486990547921781525596264793938740131064948732433670363266995699238059647598505607637824479939215616570188974938305443074142596445682377233948085899407854031013796994848868200283816971548627269746104596585361134055983683155986883299441532552446765977752060235761080351652222788902392181768727422139276605243490475491232826618899825502249496938726734439968657908413940800334782132862370510328094741180362781594771193593694641839289527836720966123730935063913989607305871680379281126345139849339376052653569817720080707116253374090550714181721582073991386019839386998015097660504753434230231317080114414215746271789351590900867713943385641902834886053549130611793115256241652495202294014651329795679218299521901633256266083242933236871595846077215217438136712777398276782739595974976026375483062189599175626023731960191217979639084218104405024397504067289843601868779803177311235018278401070406771554020785417999400317556908109658561881516866247056662156427213026496298604172369593142035189129804858591045266778163830635745459427212147700713875680290488538391809295967464456522206051707267051803037711193474385347455638020424041671410383242543931870518816086719179975078733339551603784905013717072857642543740792242586259798960920784802669372071891625600945100150756606874596321148582322077022565439492459064197373938488027716232046546817816544636085112401636759751202257779944758790189897477884880955223377882649980952218136548706793948780028188032832746200279875886682241809692892612027821116926808524345680911178246420491529586892861555070854956350972617668667745791366542287639640220935035283983606385163217038709625389287027313321194453987130711931291527333413649476149585866068730796054825167275178355604767102085336949691543176144484314775151113970139068299008897221070887446354048409519325245646262065880153862071589088758741374983228266470975377865163130691706081803266362876141625243725887934922876269286927596783008688782046305625887808866219711333108051676540594430030878716120190919490514078231820462792851422857130545143715592274508478486320727109095331246453374546753009298301047195652014568914617397777429335407491270126754915337683345311338304967962521949406415519169922454847856544342543524937925701437495987376213600197151885367211036311909157388058081965307858757414612784812587547424027366576392285014438158191726161558808284460858954895691454561844338216104016542366519177758024825521721345365554813801498931425387237137694035852322094002654346741948274870638269905871207117078813724254344300226351661781567189882801366907808660409276597352142437058622118858055831445555817411103162723212090160737521442145127538203689786082573474410960796643692948505977472951911585051800157889794939552925825962462002714779671049533350393394791162947928828672555331237952047463444976306164286059131662967014825905200282395995824354995380302114184035233202730611596574015580607762891144661144759821150414409895264609214103240882102286742584623037626045383531931237976992414312234547100926383601893739088365831423209058440334360619875920259142666310655018141204786284571886198186991372109257435782427389503589762192520909629962269593979648924950339717641799305356927057650979506105695508139902882336256008489637117894996029846831704942536109947051160524078597293716719718986464242305304032864568778649782448431184960953648694851805621116348328667753926790321856694121569117198006661327508225968591635095151117465783792709318306914540905048104708505032955953491626767407400584478059740706294648859751090607620459012087218730673084007762642630968416602075600942947562574750549131503527795766059728126048681199058636745842462821340549786172488115446505802584132772290184322922092614742482750669708170267422428892284398495755922735288828618522222559535562352186217110556011484090109266193129891865808574188332168416369130550795330322030813248411242318067504133785175088853092250807562652229007828785136513380484069236018168300231284154046951926654378604278727041752883315405193592606314416536823111442958852129310028775414861747311171321336576304018900982880638161959101105925067558187061438695469961931794156387617859787320984106921741198722957749616370283817656982813858159483298644741455307996869769816285589933010032332625194461535518607931902199138362770547754699845647512647469911948101444939717426410994974346373021699719199720310826540282245108682501128434870843861990025241132029476045888394325304782566478532360204812392459131482154564977623372029402711914728985635681075181438745465724017701365280118473597389699697686528152491388275808467577110218567846800049167959952570406375639110217065811273646923307423149404391590389718742364185080724395139945666527799649784878672563396375308763756972366771171623515105204803373825723979034576850400751242636072886312894439622665771617652150007125626333551083911374953283362225089291242385243486395544104601831077781744675440763820018672628166853737187210810888677933044570992986723262824215072208207198291950523042004038331771987553164062881630156655074210567838496886840476513028374046566042769020613276222025733084738909897373240707830391464262168868884056489391722319251361100474755153696549806129431602773326019324887395812474126604277494088969510481743825987575914116027547475377756806514288124550202991518719192987144496311716278957255757251246561287911558228327238062381996178555752955234413076161185948342727690986741346862506461614675442945820773923005124675710473913985862846771848685400658201936307138918206313677185827516174901620068030028563989437032544231751808646349740751923147982487685925801004387091272718699918610952635180693157594831407571432527610385147199433023429459388573027248441516857639081800414282479097484454976665318355515040847462725375216701754874665089212279068352517632097120651771619489080059007966926995279102385780755037788116553928670783469852917017844884975223818778205963476129308613543704517898903288985453535389588674114647502346021055815297089465577816282785477025190965521690616415710999946129726134984617528235914856760263297323599532227041490768701592638707371846865080005098112281513615414830299514411644382782275316672362340581196492951919868803483923143950652377285556633806581359690287120839971043861316957125234435089977386945388793415619195518561258179219537818047485041893042635346495223099172351235225949462640619197061598086503658744919036380300294046073425230535973018035741307870261526914008211096366939367238051284592802537333333159710391004343372468441766429618407428685523436158515563111094155992878400221379958446213942228744054223845735283513751080319801279562083432743496401213579585568753544638502841396028356938764795469970342842576720912093952278393412414347289661727173552992279131545594845619434320682938451399994998081336332235560436076134171626812316702374973098252531462771236611895482032676623459375085826026413320228573418358390722873158706192836072919285644731701348628873428384973693421754171964861089014349561085160417583747723079747842748668832792837926987784958384337877193558484775459986166137443022275189124698015579984669555675839674842160106337681009140045164898363384455925865060517549627040781777324015382826870220475337172443253151611511387721784918999339805568912359989362394732601789320142020097289918411295907166241834473324810617258964673791597809621984895297063653992031608406591406582312477724036004270404643530254955996442921990365913560190062077209861133636301859377399360741453362312308527175396597200437472062461214902729087355275670267557275705162902618597320255587215087681913707196684159522850818030544803756756104226309608836296158486177195455810497141262703425994922464467669318006564476916554332945140147015302356496271965219268201609190965406025826298891069388978692833405993497600806086445488175678512191019337167769685427674044033556040126605099759089502931651598228916114836407021309362423397080753816587766210478150725959930370421425041154467499538775706121978888041121129390381689804621235584228941484583505959985544454206233933408669393482871600915814822870178552264942148750855774887170886078965889791937250797033485015048464560020130159486585084036443517660133857318906804115500013125512593335252877877180461758739217431195619105439720814298606855271904379383646167744809616019396253624300282801916575187170394926615133012171388135091372644937104135088009527258816977698391626082560706928318590924422884547511694163260464671555826582365083094741297239509763504243834699124649068639020870856328802202811567476066622964818085786580111911235762988395232233343208631299523483799498590140671480122903603446324717473738068824853610149298676543612995473085502271393967509826729391740139113831027805032585294504048678914069816469501860756206868893726245602316729354535953918082159990216358260241518949883814957627587045240534930763534119569353242272188484133013656967502088623059485504491557493952969541896461027687107358838907009889402551949650445987876967367289432063482220144111335104024560071011715488689238981935574331283169299302536305939221204647122775165349374517898773788198838640861963252989852621897623084416034740070990981657869263823107457469946889346995229590030432494651481313358686151118391789818989586728990251303472142270240645725600222539436042289259450428081625124554532453348400564297394559085397831598985908669781157630227575758166403049322759742972996253517138230347365037351574769208145690276722886707771516309270797806306818112156686327529807128456168634967048056252904933251855418193312377765650982573705786543111519334886930876131040704283319171662593936115793413504854694326987688471499870302228635244829838274971503616363503074552101387220960626763928649881612900447296711199489332938201021742353643389052271107890929689976760665825347032397727710508020889131118885371123527184075162297852555529066181541484932086669165083297845180173173808703827440849382680788055979347271291309699117299391114060777668821581160220929099173829974364397300858695446428071647764511747077979112312324427609992130079003171832053581475523004179874223104041959283443959490646871189463877552316779879743878150413016252994094002920147467992673026058876158012176505607822793703656021952331673272177295209878083951432048319046335108566682760487191782434041899748366824454791924522250920055541003750496296520875828010249260598356736519145386016999473799068565756109782120299420668283118990391075796495433100445779048896462870145314409134645080047720966850053226951197288397932301702618061716265739955891521148881641178011659654171529473732065657188048874426101008572734217092168438783226141770989677959689492746451257885793724674579022025634290160795825088068431453841269969427286692441293013387339141285620883645589371561633438604943630530392950905914630288268305035778959476567565874650028725201092363440212675072041797203042587737153376688669074976145541916017865393951825231977542883559633909960567118008231401953579127743933390538556756172617523398762827172249082656497275257203165538732117694620635602873703531810301343967223066568043064793911524932105605278101979592826427365655303405484587741782665258824666867660088586900550998486809453826291908349168484254268397878240828213126554337513878761180113771398109431286223346063072205952455957062438434685782557872264302806613506207061576377580900557949795438748337116200580139894699716944163021940578273337822783738503380911669229318934899595699526486823609463643822487902645304371129443867672819979635998065111898933911239433472046878348322905507429352912316669521152834080401763378591863240384305771097707243541452159696623491417544329760268210753283308301578484267450313343767717924594303244925342720555656669430392276899803082143844074651737262168140968086604951094204228398555363988371181576376488331955476412302111839415861730713136730987150938402398834710080891700122840747128416818169242870661746264144499961388640425965058883698565515242472591912690446139277565694689248346116223552909181046447431747045802278188901033813185565564379002761076897480479257922097929717671988887482561859528104206536279041880288001318488276938406023448280785061567130336798077856453329788022424087881498366708280373495230349039896630162987443300043492698051274540153660948428867909947046129652806167108621238341448630846749355019381934287873648678503596951303717818655329206489928298087528521166277053214004189632188528725278396213576787455096939866002413621455323348243056020382957777176403788241391802563518657320582041776022036672076449672931536019703693189320314795790926793849924862464952640674780529905117011688868477180041033807552576093573247208671877402253734756662552342954196114575745435614054489020161177391638657430973521941768453096072682808646596299942107300935205427286598604997563802883272399216720079372484702219207406978890524503046100222635230524034428919561439160037476280739097051969606218006493359107878146287546708278039505050965217024799669047875005957878217058730718788500972214074572688875487322792012064032608700705773586982286008181153030194781332240403246089857842782659590602234415685400095327953569812585404581563771461636674171643073048487675605848914514493767727601010560062797656097681611681063971731170067379222081744015174006191439436429537747358370513277392514704170171405586239296853191549949779907602586127939244914515315436399269261996343987282186187189320324782439215535118612410899609221074978362849306505563983871915258730069353542045960823907260677995580212033716909905808286366936563703981061682712097944372209225652321277287211531763178534000603804927327393243474043543228314574094249315394181357866357473527378052576529971415049927733445572377525167092908821673760895742673552880198573176790746656565395988868181897699968708480968672883622895578052014750195582753800638617818051359743554969991014768752645433457894549060761523320909338356929095732309475081928528977084177736359881974291448181734148270789906464690079028280143270308729284368520821881770850452109742727007767293724961734309737582581648809709206991564843885386698422528027874706784878473923632594106131620844763991478045017903931185040522877133071045476278574191708554571598076652785293353793873364506703966156032075404611105899297819137009668534541613353227493769040463313624724316782753394528441621352685937818236719152086179782750250581663829976200194317729206132494927237331295034931515278292746676849084378755626416203205657049956915684613882701654909237896147550106451421965343022995609332274200032339478428385329484133135363180066911839107323039088395276695926651187126977894855029014270704710677349486787316881748800460536533126464533392101919280763698733697574969443472188845745015448895633860983020123994453358815080353176763334825262041956938193036589702600650799917381778526373382789645445809249091740696287566296690682316350384315014892790232237405025480188347113415615473641462242029396850241447883943097275409743852717185690557043682756883217321016465024249733222362612811132044765602510491848303119843711323063619015344259950413863333223171504315642650676700117873440198297464690370243240705409104634659803354811870641695664630418957446399727431363615232738279888149097397461214033414231254447052613530518269881810303878158319844453795589200883359387612048194183205958617134044273226450970368114915945596766869735802846714702053744404652698062780044281925826246678795163184450155401060782474481664075517056007244390258459257038052004320103479606800191767702709752808080769406285057504124538768337624062675331503648949262155966124876009481893696116354077875484216168997408971252951353368176602283533137944013663188099922175072403449400809591105533222884033398343162727948011255689260543732278705096981613441129267461422324304545039206106313711388446419871321819154222452769413957773518868545624457773016015725148681190508354391086758695522060279086621676408678925753491977037756035205003257749140408201917468447647905818131033287870308774471109327841820577153089035524739352350360056813351022904115307724447699497246360641466936319873630607297349034928527394313686329231937055720799022921772386610329147268197774954815293534442427696301566710014662975836948796403414882165935292009526679145149330380184357812315383567024366017386671466004689422421307348060571701027806167202340484453242013461499074615308274284448386126786629502730870862078990799311063228504010126876380672566642635651750171207062708257704682329675584927576284949850477236529097414267541494615777125010378602129883159629474320547515649672997551819716706762685640718131483131753952458337854953244297112748366374347978942335656406776831811703356329342719362402758013850399839249838972745714043872094598467775314227220847610132115486928971601254659671776140561276819306349502109166354428362267558270810272242103779168731182647345837986472944690727975913543083390068928588305928719788678167756649494912333219578102908454460672529261214502947356222340517655442146343332952417029653123682424613125070315393845007284982735152013337753282662016272331090237725492549443927147313366504694263650564489083575034308035247716610054800565140444735990140482413502345220945560325307754775315011371967614129164340857794091141861412529940997130979107986303947124448144320401812946152132767970792075333665249276008731804780047908715800298782055934409197176893386883096882307951119285785666265055495425494297454992321538093616913186773704033782511131547490015870722496237287324263711291021547802263524716315180625419614774605831466545043588837842726934616602986498904168307714758316690418122927213348286021828017344474662847173906718981146253244976415946450707274262722290224415722211876660547974897830887852394345816921983952543794180838765112148263785981157529376758781088076912024878082780433205236043015281211884252897763147095648342299628569621983657466481777403983534805714511567920552974253625943374005984339016227721294998679128705189530128318922457148934018094146178589141873773571825601979859843490070973884433199110562424909358635312292085841677176436514266472217716690919278100055611463927636279091005656097746791671727565562320507942981237396572130317322839337957801385157220618392350328012081219360663466439915343877764305271914496975036524318876912928919100986909532000695098830372954493734797813263739610939464848472860407845276721504106490589671627803567971988155451326289846474920825637199876624764950256232790099003253048534149394320599339961918629909188135020804062764984044423349614932524897164315874366776036898776391989827524379156891639845777642034208258912627885670116671157226450699178148089896973733698519288637498361048529943454884159562619760870861483577979294219571964344756316176866641364019121372781991432148610492830965499640344648243581456661687563343996575196397269037707995233888162691679026191068886144874211676908491051402352009985550043599435438071584619830266047941536789269810528766558879249902546806472125738273925101469082368409432488181770211106101968767367810971339224123095940723434170916338827521620882646586456768247779785604854645763473966614696300021913175544175200590776713130948196262582378260044263025874229692181078678628868962089478998122685757028745495798943315232676103610400979319366211632391844034710961695942521923929600685909609990439215868713418805174122984820619678619760284582467457999886904396138127453972792460508868125266732999935387700826686319994790706382082798146091403890914553420190652112728455093797382517814599405456080030898424663828773818489685774933884280096940385812127078386218218886974094253727506280611804567414853783860900273842551539457955411272855112756410138790927891573747872498607709805230342127185771735225594464584693273523886051403884085310061670331763184774359908070041566298027755887799316489851097876708392169714305487024260758936669647210845878386622264441469881449613041498656161011893802886294727235273579958907173132653619126130213939476657334238979583161627423415168891379536792163557876219651505840386378487486131375104496710502635454286530116312335538192450498678238437006042784746378095347519950779183595453331979966012715007546222610480429919796479649673732789716297509316110652996873753903596837191024019404950591988970045236575424831955227318145419280245140780794278112289627524935131028867707713007673925506903120512993468715062509084314480587070512048810867276624067875407423928147672329887472099618409074361776850911147141952457281333503240265798191888761471225152216099352099676449106747767609306874873522526999459743753874426523112395360973354698235973888719512609995279952855907455874623328811132809932901057578066720585061946095734255955619228440090737163601556949031057891538472775204700216304775626247528981852660019747023605336635260314024829845824378446512561455986689932349993620468329896720875451124667700817535226281381125780378099902893599282752837005912155610206780135039534178465148220446132696981681639715490878726242180578654283260662282317311789266645210762988883416418145105918531824088102079253045785730805355182869971888905222149315447956518772860097160556181054449467518145265951599688677900548341547115257779482706090330152711281622926881029422536977050169371763748857861605580057487049170593957052248904965147508714943666108541281796883667147029052637558412810116492284042946233136077024374893894515454445793078352849231640421969063123927591173936325079650922661986366274797037908536680354777817803164177012573561210590747375174683309992974539037506194989267416509819341356439953893304837366397579939098049950975645296575539938589080343859144612650346833471384822149937737676533778474700480372053414799271473486675417135975273605385477373883420148970561546173019570370382320409818954972542558022520687605680621163903864042143203125146835833848549314903028526243791276289765253309334897942378403045088622112523457758649466167878418655666980802998931592368602254128249292269580096809390805145144292929979708915613209839212542217505872783636187794607363729332342367166274789033637808176947503982595690796932436294223554620609165416409171259113717539251148652552976438720279608094234643391943060265904905353345878876059613144150584228261070479726498586897014115345631197076944585481928731165196298708542902324562219965991498700511126267449317129800475479703995432540194811344515738583846827835716918694156883947382574743121430107900672932558688056637428941087647952012556926714254278106158965179886145465489205043193852787441972846794171941304235818283461645942749542099034084620959834737221211016647646891742807942706108001737479095327027927937180562170313313886318574386854524877429923266379715749300385829459827787218122298933053387569990529073105504632463198470290707106554919537296612249450051100879769315015809545236711434689942583039824316053797323332326790516374990897285366816872246375158602087948714087006586821522106763336138010250209586916053055858835414458295388489541800874892664053845352791772120389333316081765964782808056524034318174923378416322269612365836117722932543643018799482753261975925650050362024932199928499341655266333260449050064671854794733887503141308980814934016533578972585104970538817562127794577947901743499776016654877772161375983659815891272610769826695117472811371927267853820053837416002809261770542960791928075328386537761896933947397375424734607577250034356767672515973360370264191817117680017427580079460069565312517727484999695567505835822040584974672617063424134231339329713717018677784481449276232550518966358298122302415776358288469555792279998459479002076138929256649540156883954230287565959194103760868536722989230568709385017578072735742162586361954412859724402027018452857516609145332072187545196891723441817509027777956895604471651961440309355865540088341289999545129315611206738246076510733930762078495038952541633078150111801597223221406331736175578307454221203333378756470072393968472707603713804924511357097886857929187509938909349758026331176027360013626582845039606957119103956234793407297690431913336229353570603310759585176290952351519178447041485705935117842105480859260733315799609337389992726680319788125110809164025141289463436017017445843543938453209689114774664778641534057468183896017848435115287764798802646523780562906460938457624209873634610584335022328609286566378514729167615407191782535555443871434319318373879224048886725198029985167792841923335334691588686260155331546995079708420707902907443592784351499365700555246622587860183058626993724059438039223584550852178183700049447494081167632189565969582769226985642480179896387184235482712050657976992813709475981576631520104209041391264995545245092107855910816137163563742429506048729530110857967373354384762689065688570818472659808166687222063827440025887107935918056570102651058388303662216363469786140847841790950868800946399389555659519711764709639896008637388217111620530952627633568404167943553653454953520505680298110818354300578215848292304264321557786125570296133134812623942531922481302547605318103637063364352428773901376385895564408870431551205678155606518928665749406029489167538799914388019600713311307539579405453972763669872633895808455952003013254308481700038245773958816936097189974548351960106415575476625466810644821627101816492856257083877671410313964008949351798784985755170404506222401088811535660240020083698702577279956380873500828476746771678249127884797884663674176984257039803898747438994358471511418560472049207412771849042633893857813122708740658333699812154513312045007995018342044744922850411135121933400038424092412240530881901344471181977451237787010450009404974593925101526734860988285275283637859920466271848813997012458852411688749043341754118253139674997792193674716684592435498791433329496770409624668115320034948209297043549023884784072771933774832422428738378478663821958750367865733661146105622691947340928136930651421568483912850458791493207559702216409163220576606609475980471746476791216613562274739662666049087028238758076364805499774372444448040074024957073152874330892500786918795994403486110301060393035896981125760881122329775672875840262794078693783149676464747628644044901909723557994876070919103705453957034312990128414021615711290454561270506858270298046359456929442941331979015618099132420732825420294677301684100768709404458605760052861021107330951460007892586359126309828573813655493314241922996732549302197420192294192167643325614061478713224129030984579421796425781000692313384695533534904922411279322723315638119889807858584959227763613935345435508429035165678753688592321182595511407149614516962061449462954911662843731271108548944781493054395940459404433323651677537920615138557476261016739702313310904412775017969873652642071903487310760611517500413701169882885550644838427536826241886087688784537562544865113475030552794462905370661939889396684466823286137800954104651489112551193444212653503033604802923839540781525339731378460609909896365449523610351740073781489219734210509129787194339583131664419283361026742159282425788527228019029513038305790592933532989560695537932038456967537515581393515688653218561967827915493058605413432836265455582483768848924933527036790993921870272595920736712201687529865366163310494280692617816602877292842318899907439839146899683249251400831710553268383896318686089665657781263973031069666468331615756363898893498163604108713743146936476444584088432933633149775271410508127032169135483961491078438638815192395455575090644456390211081642497493397751997584955950253724760282582950190048409675466555886354305805736748549211887447950716029319829755924882198484994141135284397002285442597618796292697138908894558215758464597489249977309817479772023135670210131778889106498094345029822531635120808627804581304629646355962814022112358474841624918342199068661848586367829662468057994449694781462715234323366567700283758214982420487216293368029675133159513748536382561095832837976758032453641683521657468077702086561352850769938371986220780564221512125124190559927433384766268300595933220062598710767614471473937649035656190729419908414206589732481970359087004291284753350590645124150601954537987864277910881118765637065774102283905772031539637238764379426524529446302114007608276339547980737813404895434050742743255080313795900775658764987589883563084676117846332177221184271223721534746027785768368364391725293357070058484734443199781536127476669258550503482003958445011534122687746761733103472081870307653668132399588394019564875585953386079842137134595768667885212715424810129822391663779176797302451023702239376305216705152136294924854818246028472775585427985289443408169445133802875555134916561075220510851159803013249786285403409496394848978815899542885122394766504083041829200852504568154965356958570215916528720985684946417667906212915753603044519687484359934636615643953992848912317021612635876108160541528441806182323210126558494302175566607238296086185164953164226960505932476489621383339949403290993998619605880634344571805764359956623977434583813762930544108945153211315423056982750285516119882419123048698871154672122745757937160871927679522937342226365808887234044219046905257360212964671796624840895801424053497887416299834389609453937481195558725338028738690819663882720489765684140483994475945392425843432184003004882829906227539392078473165752482437140664754014317154091136038664033457346032206346610288440289964597217504243569802024569885603295157140293600510392206521333538363018046755479623054299416212174759120440304463859879855898979825262041351884633028469458095446514361516657726224297366911832759453366095039010055707532021782572341103614318495693002780364613952415981117757154057588900300871431473940746057890450491984374600630689828347910627939026365793941596240929981977909501751350177321586321692980841099229022507849346212177765759876603767602557933024993449852643331732054497404846301102276612976935178203852998576247433567083137712737788217079564719831361464793958576244741982343530720848789522445136000334807951543360910372683385850037316355430649612426432812939546745861077824180811728444976983408889014241293959378578700819938526095966763645987378319214568367421344647568489533064578611824187259252883638046465151031515363244910060324344030141303639686945519155784056751988990734405906521663120943356455010603478644186491499097652274105541109043610614972226551391816241280886117297228149407637872230019559043079845296422974429807182955748816241015054233968901873001093525815437760185682889601219644333923985347409740929002152269489052742764657440884888055807172508628082028734951435128035277361078648749586758899189699308065146410528083083327752897673670963321107090613424316698396325914297671515848975905691848541512324679720345743506749753281493922965537185414892979813707830177984559576728077951278897493300568225703791070216531545660878411002598031923151434101933917945649702571136550833870777717367426536838926116827325966963445543201645895829519809015229538884754274720197674096190027939494355846128736539658570817392893916113817659400405928331561223516972318641828088014906676870649370831074735450325853643356067033843673000414043044822921297269828752683912637741618956152928629794811516535128010415910336036578563332358882737351584481185483443403611219060233840713765295652054110129314494846247057478576785938474285171214120507393238904360390073321075940725707595856399945272560358421336296892761214895499333399251792023143798662516501841068732435137164181000302255346220490670152646217095823653305584108594314594628335551911628546825878641518432691053660684276595665116408070405052374571023182992279234456976538592092515253418931868604679326354344731698173948477537845543283039788764818762689045206138786818520347461600014864784762106721173078643262704899841823018999251277501060682203145102119569575308519046727210789227833362915178453605637725245212293411565816960043476399126167208570619968491820770116365444948075293934280449534713799114000243180573857944286656889962701761722102893519174104614081320351251226685637552776251258106517474655032603226896893996011481805263007093494007806862856030457056249757384557224478848416184531348440168438182163591332715343321661231488098103017339233034326807851302634520182887251679637560668385243168941200484331490588688447698773456971020672069860047031716915659595672120496642584911883982104542153249471301338808911203077022294523720081782967352034335080167359430339320656801927511568070288802277952468075834174402551135027286266268695942748636584782966048447919054595486519279699764265308453256220817588006668097843278718366098657373879880794474575855774974641548770243987641798258866073406634459366606791782837242357647254729964924407542702387619967152707153867575819250405884740865273060154003787496672142274821601784803211157527230225525634712115075941852735071337148099283583015321994247098513656772835983103469851773041565850399967193015477431760770486474857125659028253442734928083858680969605025605366254051473291349417908655770555821704360302799207268182425637896091899829408455739568126154238560580253277423790688986704128546143690709061796480452115033773823382751451217288705790618842844414975081676351845485457295989072431600437379681844485002691627864415584115833320992433168630644244986722403964339025718953369130754291224390832761107554027414475970562870671312087921292784530824226170453205499864396478301895591711333767282969597362682993778238318812607289279289546653205114221252225259752561582165448886359887911243284136784298056952273770164209518325468307517060305229171404659360290364280736133857646018923939500211807746887962590990718811926667393533179101780269118512373343915741044964215148650947656790661213679152160916256266743777337018915892531751501756517321801385380597251833445506976469155525241622908252303298008259257584595573252769758036461527141705153403870023293749243061240693488912824451142560059392667630859489313579644775233822614018284762893193211382113328295116196541282284664360587823895261074177012238562028241238732292706053515235641818919037100676971867383617475259260547641462173444121002267725823175560179600895978537584752059483647955714987864382858644699309206806093499093825228826989383235520077483417901720904823676663805501158396523979180116414458126420533297138894224418669353405903746798449997241623880395124675070084750650527873039684517102644535660560284070566270069296681572238928514932606612488022079632864814779645811123195710417491567161605012606346405479101069712294238376603483483119177811479975759621595527425818094910828674287929634664322666093773740147279607017591665317847359934647007809827173896708275939366619133202954655587004202340560142679333355636301607726361854163609394001162245558637134958214323824642852267556355128160632971854665575868705966630684703341225768585784365827167737906708260956673138625052997191329838079957663428295254976207096519295655168065257910696719849560220094611631024798790929810728907669256563898188124677639032784042699688295965796730141164084713823426961113022176864228373609624790395983610820471047168395399596529793721920501209235195606175428925665591773720421718242572094480631031095303850897740459117666469645131036219990950594758974858200913844098135682150042550379859276409174693448978962226935939580353364361196860146539970706322676818413856539611717486075549666496259261199723055509807854973613015630172901822307725532267283197431623546926090174521081153541104798336934254470059061813847116506625907377279162500629398811426434775462834773306110683753141430207374128209547988292552056260131774893639651157585907400103750457209823480111278849965030007005010250898703495733815353562166807685109585753494068210990143384548937767950440265968245275432482318888397777518233924034184620260205395263238166802001558553152150843929431510597407037296089681961793084859331159420617899853891973724820697862873843327911264550255557534116526593640009807628387232084346353971710236385845274238031400235570903673589833681262280730028580978682274041406025714084874880283727789444644360778342426603131854990736429839760390863872226930951059085276281704922888948805518222762049471648207177086436840349598198388465856786260022530917147657171954025722839435578007488783293201685887774403526896745539044210248529555247233293463965898987841343406337528915649322636274672561218540920437157780815269675042394942164779424366769790186921240763429611233996480412071617443214005835697166883171945107723454314665221116689176429402925793105913323528421188461057735063244924504227194972752082138551262115180392983943774592162795687929523378148751773446098819854569686281590942454870551428159086997422820193050237966689651113822822307625612119926107512146433050399568645372811489519745149320413739610829327019765740687684648438801829834596436748358452059647752524878822838156041951812054891339118923148274655712366740832575648410006396283233574379282166673699131529915887177719317472563065064058745941692438143300891354669070978362439700221834850317051453405592859782423176277072974601209357879629754596810334303648109532524441801901361424693816206814204517638002420159416126546001962857588039619845616169495379162394135412035673627574110376964689904786667344208972563281152738756965548181283402570748385036667771647232342157123494178347528429030983968018600846961336679549431365610531012767255451589643469473133375047169446189030359877535508233974778483154941234657427148573568175233006391464617038868265502037130795394032667039071874576346249036387164318695368389108402912240026618406186461105236747179930098914557439991864561599148243859237809982914548326325623436217537825146804273266393132061250452776930511722173839089819381407635656388285650093475245693373946873089952781027805189301734285158705085032914979506017140208445919786538159743213017942339748993466343653983138088123970909942920720509131014976880536569911816449225080036629140594163547796333237925710473246516491188136020982205878811850960445367435507291660072418524923939088332055050029388495298204478101947247744666251725417960576381130132043217972148632688832194347054041908120294843635385349829412430750004440128563025772633149605264346374972257832314451721050777079753803239901986060560432983788955670980043580363022510902972783325799536310845927689444087094191808534415190203391755842785108920349426214506434683703296657188960796224341104170042580983412730489073734236146449179513953885724070968356670566954245148654997838882740950034974500522757207283077092967347434178194813950660835463123261511577851739460529346377962591472311518917530115445792979885664361159317465784940813671742727558820476949702355575174231107479519730337265584175616786494313376876409678876877258383468777268352037765353434190366230568739875830052755594569045371465506512732578825269184244131245401163565806656896184048871811859624762391940745572957071812449124874091814701966786902452917787205454247998999728198133430089021888882303605404364981592293575757481774105355594301324156146867676656277535267706308059826844899766511007839756885102728648381323405491879474382347917545777879212340308645907797148061223612776862676623403061713488243967837084294730379269965341072391376218410109893080541642474596751952121802638851817218096025964221544340891935839381720570216069518407155751019292778808860540425445053166021566140601047290152480778880258123544083127370633351816203969948907053161914423839452237187179207524428358481715553792438576829110095195894139424056705207303972010316992940870440599704435249911940227694613525005044125382430344744789112466901488366829956903862565816663225386686452014537037330561031667527067721962401413404857670994123251194540000543755596159013260104914950071137276206039109056946405060090016399129648549915271260920107108314086980535472714232594821638494002237508968299710040033979520667395157461842139605382869330714137158604846624046956950078499650633369190482481572817531530896894369957191653786475742817393526390311895489657107780113630767882182461341498181466676158626674668170935735601881463754976151078318899584404323737712622187578590963131090229346502863371039658818613465657870426078583322665524325776028972871783377042870205670982022477410023055157178258641194989121542377668262242365308275298543852009146420781518087063672510133868606731172621076292433301548015414865239179937531607256602547447160991150723600157212772261328817145452183650673100678399996749868484343338371581525816686064705287165737927396984549840008079533028306015162311614276198671179659706432768644071248685051575348818916687797550572091348087291857404825847036883190281241314737653337878945826777496893517975854874768349739965463328493907356491425172105627443761017811353015484433508057140441427730363130963589641409236514522440046952408168591080493156365068768731407382237522023900483602925169931702160656013772288582841372958977978558064453475227070460093538758641436654058547380136537534270681609270714803381085505816275883058747942829984435157719112168427914987678817323442020698331984185587390689828363231944785571981658873967817502005678680835797298758285532989956811321822917660949828145621482491255911483994757215571378210600073305256195054804156472591314308377564464005811894313325575541628772627311169755622800164369102877437794905953949124729504009450818074738474788146676465837894237379908193883688690344171131119844399276998804939745447612142186981499136022359268140825890431972343614178120514090442944938892464103522526822343118150753472288402588417013169575095559113667052732502068941486668856130697657394907974752059452092244813582933683253779619631468547939883282914160807500638674021939443199186580082981791193714231497533805522012194288387976908096834069941201749079715289420516255620332808050465155382924144591050879932178084821839167200649284229616338512322722426856405280488508619717130078598234646883137137671521078277525723906447987580549912604810747240988355639828495430428386184723398727453046244281716921754371463057916563171684874517964926945612492233632730331270517840423625976343052144282089751525685335532357626569591185304588624131936883825066740634114046828304976085423535715298885549717882090869725167709681469207613970815651020927416658043911222485015398962569602252832955878173912583852999183300469897206403967839767393696487088605492006992561373758098619898979955837505323304488428864510854057280083155215742916929684669753352348230262749985372918267498138864906512233091323311594488611647887335166821191975875043579451339858150227666410352852155195331319917692173594302616448668431660290191317540296485004757923910314085469431102710833006319796439737988397350438585984702754000912678681391750116200493641626277702080765493047995780182477733636896634746496742601979692084063523314792345759661003842058737926815684290441291317962958575846488990610048445532342076924092590401331785796725338802514726272285621741483174844923112871261187854918700033907710574831283732574774877727257466655466569114427746321766159415969912895776002683829573971395668149769224785747615868772716632807867881916787373708427322138741669979286020823495074583320110240457366090431251882764308646557684928553138560722960483166519191728555390351905252223720880915225606111974407683609102296095093670245091584454958605528504412150053972203255144029724585502728007101840555857713588912837799960761546256262983455000925993733686115511017746873643328227139419587784235683893053891798293022318721750350273246166808947469510173088988423974595655519219598515316162815920912439870781218741780184892853890341418139529327404884319331282410014993583196026120181863980048613303016554064237538339338437145133578673265747403934619790960169341312209820075748103877944244280230264031160182312953890711691416316466927719779991241628482279789201348753294540672439033912893828254799103380166217968210972714616391508248146282917253130251995801598512341465667041441190340876493922973421023546571816375380991378907342694444136789536321419986522624248624941736065250177838885065408555224186455485300754499974822754462612519459186418823198156303997392420281809635433853960342116774932088216863141996814557091413940454298418613310346864908707721203195037590464013978148464489356318322243729572863066275503622391123868490736214380232400534604175947720349215792977029852585276752322708308802496133381899180527870043249986671707789612450692167016553328516213470686836139581908847517092808873796507740879853952484229270327589422194485080193898474706539962723822904085779565852130459428285026658915427144847496054829291950124763470067014504214438364129360636083432553007275872213511739020514696540949900349810541481388853740149735063931723351731528774694539045553505917542929780331621752412233329439088374972232633012729062555533623648699050695346677383682087043130074202246833563549298463084244954019838316875728358279839350017688410211458684788233269523690157845897242385022187445509915309814761475533943113300264848497583361214498278396577980166832366358540144082715932547123969160918780529783864772305849910326592493547676741822497575159780293808576195642711859728879803500299585259273390692194640779131115885430230386499756735940284079899230982125281971359232086223253350812477061457544237735102241932942349436774618540585074609624477332287914367147238606767191557048638064888128707105364110345802317951303926133982247197563895592925036426672603769602711838379275912173499073080502924840086904754062676249158327910764501864189129328082499094796281813515004229468686900763362715623887976593885540823280489690778611292303813402770429872067080466285927765506587947535076867948914968276019780504203109128950676576531079288807095639267270686003309035348041856711992013132246288565729866274660355029695196705234890505743293357814263038888812672481952947296986139282223813027469668392217949812901161690896813428826454892044515580826101481104973716253717017503110666813489152943748819213519927534352181985987209875411676809561902796280000766750987432709312758274383989392798143137103891863976792004089851522832371187859726771540712534518506673288383206776624412312273926558674199946273718846142713927838868888691489305549912731429256973257296934678343147827468335742798571591742417953310150120664342426755614795919777346326500423348023178758609846500997098816449462594635322942054713232975603061250284111270472856072385471015558833366551155084293251009659041308461171163911092921797801032406617993672106294996215216166601315387386347541826955824183849642153058527035035303434733844365982023900504050687306775560293561971378938324708040377960941664659709419790824137477248043330536432504732232575203924363693819790081926948451609571342137816705763955594523376892655577533754754056089237288546351636258727584489355613360144645655010375211673425490008135991250620414094038416952522308248605675014460837430016538832942521705106520122827807466504641089638051434076523011422467818882723360422611559232365972815887620204604372257294200765398903827620313276123667464152148927424099257463989359374077051792364421247735391549191890331283877819874850550818414727044859919017564972587767709661807720771434163391235211614585684267770350006844782236686384176687454532818650724806647530592061659090221281742328285765379585485298958959240026078763625440237861787352683201264908985971963911062089783594401477242519459336911903524883582786037339217050475163751534470926489751023910936205162128402104647745026583659390649969195307740778558731051763785525376569900427643598799226331404074433875915257808962644282023119408282796284699784207482944117660396489651238126751758156696346476637960847011611046984197529338494644764004941053209468876084529326779864241025644143698479629534090685866662120758742985666609868561827101844027714069718856164310077212788833645935276212297210473032902230312998922003689046842274644955408120343838087707359952549476973713084450475717129021011731035235558870015636219901441264273841582786988868006262194647956171089921211772102573496751065981213591551039745272041119851077584131050047480271591377151166604010784714000013407632517278954302940868942166418781694350895752036693481752293723984752594594785712892073917342884204830675534840862690084458289942498031057490491291585681065831340095755566111982991520623069626928253215626315870590690584439682418580286787484636158865155295466649351582312913853360772334311337737815160714422380280334053023599305228560611470009481646703528967597247798378472771262778124559330631494837868329736784256248030294503323958899744527901376411449038749131801293495652906138669923815886421456261765504773854652491349480665323845449237660735753987383303148103954913582677788194685228362006870934325955872385424294339145536985606194142505616764750828838815204147614704214178968147648303239558960821805827386661744197970758462674389811816862950306060959706836396643225922379422095867459934283566591135768040532103452715857595511493284866560292365903244136310723569451316370131491343764598827380505852601904873509394692256236394303585486213713182766840855402205559500859585945635497613670483001494489970180078300673992481674807935560366463283107150366439126205357855938971829853922598344908932340456824491643664338257922392958807938280496761269076349089782236933291744265986656653260448513591542581733688979537633393672186133493548948859097409908493556928498922912886536623638388515550938586628589723808730124913392050915245306623802514393494186742935022570125450430219264954098514643341669019657121588251749581097737257058826954335501372270076078067053373780938038423216876842563470191227870763445406217179739412656147638472027274604012662578122172787343144789807187831901165225115339706078057115678471007211841541562495255959681141099533879669060339686183743698356571128925745641066087336244607984173090341457585811079523868712517072546484329260399599262990643548996464363316260546761843222967581497102560896219844261124113330818816755053485971318580686196325212804040217527313446686867239208049212073042936301872402332863384948615893174443842880648382668821440671001545610584826189169420191110616894202519447357618996406577464134190369527849487017615547164361776847366611795392350244532603154236568324746414821503097290572697968382625060881535790634095516568131062303634337938558318977063635531825448793116559312188517630144062196102241412353750083687796308800550770339964833503669365725673977160677258391434727149500685641705981338574079163187246267903848529107453770090010189672606114045205665528293528552544935909727282527897019342969724941128212334780689909663911634945018331879243658523350961431569755404198870227639727110536112383385829407941324763106480086160270487568586591057518375173832081076379625493045870061150651051284337050590921371275046025391755580827465717940120204828940020736617092302749797140526272183964984279966591267121953499195216174158689975946857494784828153835283433702888532566490308277946906384546269897129163927701311465803119932971889559714869616808493412533918706448695583099051283634731538645154670918268502252723184731726881700460836156488289149969605381917570670548701568942147350192355315461816733135250306200576167606494952161777042366699282286198078119899876763045832711692047425820018034296902064078151974346664681853338234061014416402805453080577479930309981855699838286180527391620514735791666396138288204986858344939159656804988518173660483755808702389228971580815888827845785356547806544184207105574110479542268313711600439392986293678354920276483579997073530622516283175806311169615126367570789261823914189492100299323738547710501129734618371874078580850835982861102547785098864174796882919030994570026982468258209807687513548242675605211201843388153717017696554136131242480245363990632078867190522163161099991732823341108443404156205105150107906541684708376608025656116903303936259292092767256919613623621781905214376129062378978921945046914473282356744624343100909650851853612909505479851616166748773605512268663837675732074362601602121619609183690546984852759271499558233073220811490906310642746667647808546626782260755041021760376980432659128251897761258459784415513636532245367466732911906688571189344321783055687744427734934947440271023225165544233427348670859678551513640919029246863556727089852180862926742093209651866365272148736225858820066023289917662539307686904553589332049618764747669405609934218820485011826354492767679367452818409333699447993827484603414616650667332322937843940138945095695576050926692376236376658824439685154295622016331124978507151768424562731760352783787361326684440102859677621910371719672451112987765780337811512806123782319935050600017102943924682342890895378919077044765841812263800641780801838894559576551685636261838444379605599200154515208673004148391814424142825900363775903160610094643961226405002498701572697478385974602511869114071418278497361088676114438493519935934117900269445021451787478969619452958170033349661525060417223098934026873864012703205395039241440993829618905446711531124380529621308843508350365462138447754956497652248812676734799877743602493089626047684145768442018880603641739569107368972208615249302839668846898597469705679726367622916040679261494624063327796972743273675841757678127641023468988522174214187580615609525728046693236888647997368853799381687762208368507639146398470961411764434370254891229440136073239474410380836871322458095914755353066811502230672157844882428521154490217418394165372734758935190982013808633257969124091886574469645617756442777414047754491728956185698254777283911558949668115408088843749388085255414829991336425320524257461439983320685276399508509495042351245107263589013676404145985153641783577995115245371918942338330815723286127374417106367446558509744553722981149119231014072400867183056781511322003864457572147917478484049614744507237597113300144338742383176522644753942478761911788891828620083388972917540298471644145367806701659968379235681958858090324477520804379790367060370919532683333824465333332473394219870812142551727280282677716373537389017443399172853794253400433984427847463224688118676481477893292988521079832830312848795233846585925436881868104113245235257055507060177427544869405284587029549664923312950239919164955620926737839429484563132028938804746558997994127609966086286735970948127034300797261251888700071046027529034649342993652069758047536715720005479043560036384779561243849207755665893845321539187447950423882177651276313710432472223804151777208870601013234553967838306109880954025722583279520266639502827465906076336160516467649132182312516802854114625856692941879680967905541471766525617485081382882236457834306664603044210446139613640686062962505539455472795572231923089656209037071167679905338095635683845899967053894992915541021319889880334288167899381728924454085353029444789269003908140896796572030329954444538698184522706482616567843989784144406206244633702786857209563559237319702389740334772934443401855051759562994124147758153463577984334724571118968730610637930597565153574342120500629977163154787383277845267472224105612923592699286892484277571019286401381442226616518612713008035211143455747035221077540080198305465297419676989263931239730422125553882708294099180057789513622227594667811123474150287640435736610305251155329368740471246120155933993102227272767280975309928045944795771571543298166774940812169210283422373821476082848704774208376692611223410855747894883359808102613090638551975804390714099184409938990596471156806138723439946874444155261280640281653719613446326259569083912094027658098658410372390010163898270087930165739168656660188849970753615351467971754783161718071456246481936213548943846178829883945386769864763382912131204913955516479397415045486697724175497482104794281472060783947717326361802213849765463957767927326807091925591636789195996711823160551843403142004579448191010571417321873903761821786320504086122777105404370682791044333376980396436684350573745153630800149220186808323723407631653145559139657694499132496816468434487474434410209724867985992236408752434169866807494841155212164389655962327546036480317631411229388291760749694270325780411026340980424194513159844110049249805141240001370229467377906665315295223787569294537302576358883068880054575103585738521123388159835922324973888215182194528367159867143656141929534575354584026993250362599371553906172147777145465759454699129525987007910642203387131123725947654597850509587131400028247537147102905407710021515975026308655498541673772621405800906033821496691810206937795108248287362871811912131390373347277126355609819015102469214818437112294528940419706503795326632308789035493897615861685196694459805357895403518707060368183692998282796335728376358491407565969055041080625803853668116746514409534369506116842340320669469775565261030334112298164827287474610014528066593671421067113134095402169377200039789965189514562634379401020176936103168807557997798959616561949013733738532599129298675576722504644995376756199255001604005237613775388074181466460161053871195218113158164214075639145824694792722896449189027833017942942696074610237709712744330288805179471808492181903642777646042791560773618905510891695793927400369063735857328547692521256892320059743389742905777325663541115026623329623094813447531067910882301501852294285784780516757240680980008702094722004251272470809999705517340158998714917830256665731081368542906190983399321272067516671637357316163110448113965388290102999849391239716167311198113442438241075818122286957470865198648654139963304887454662353999231399103082727934878768464756278223361967511501952658730411045949929103116494204562999076306591966832468042557831430017840419584590988690670961564091364268497920780506715606009518945325309919912359744948069003690542561136264131779911725743474453957074132936959294025444805418974164764818799149018452579794064081175339943917316341884456101847127856323565366152808762775632941208313049868102334439686242610382640403205896956367248990004130106024384678827778689747775359220698493824669289094832039337977176762592585427929407180032653681613031536267539540094300593416600244808506044445717712690365850641551119786937888920121392546399417784894379171252611057189202872463371338715477105956592259322323581460934602130242028062665505759962676890972208229996151697650887488623472518545073353141159720425850790687546619911924736295376671816304311108619554064109431505854330049688936452994818746628420152340965583360654913326654426831074023087138006449854962635193796825342503720670153523065003493089064745345679290221103479790553645780802611922967492750966194602749141754768834676002343407615044922621757999885638849216188413444265902278713790753372311206360338096433001947742040815799547296373361576895281766716302888980868541290427574348604999324652694725490585790535255471109033495444824186801487322562173865278898630999289897863085042717203559666295496504681626475099076744020843267596280791882650132286911939398692841759726685948715644014648391648473002570716845642377051049961899743707312470749596081710454302457111821483713905731603297840573693758242572763556997753407768014491359688141055417911817352572683381329317925987449571275900096412803092361283802846381284406441708835746367438759529832639407575400121580307304266832045652174627044528417013743119791835472917108038269937465505048661833100182432050254752000284354551920095815506647839865286099815350132871337881849249523714173274686084882426851200803306601385071649240493834465380969650662509117263042386002034645900873615031112289366999614290834892374029555415325694909552538923236277741783459421458478635551382759599559280248776944766297199537669334250131475743450862666949227249696815617209837117155978491771964942641162937954239812347976149281096697817287197923788821102087812772566047914309761827284363916240764592447749814961282544178766799818944508274851362948983194598290695249746824864059019325024205554142499812678779461093077772531597953618401519979680044831036607050031945423775553807689652640768181363365968025982530694866529710256248177637929452516477811686443127648960433906277676833464336826432331723716943597580779052383248365259604652113300299047753562785159567229350840714501200835138105030216614774579671047247817914820460586087152765432477651987616029771180667082371373975381156574202770384301577177441451110752110461920005028112965227807355289771429624243986138945140097680000006034874154826894568501652783750884457041797636831287774749768716754749897650133049954463718433357966329801528296381026794913878338043141562637036549101106243442027633212889302764746953875088325352960618160891634930614594426811993150849363879147461448487011486785024383351656498575356372073857163238138983635015027650879558246600692406101241452536523674198149355594157830484608867009066509634088877052952766241458217225359219095034563542712990774133666348151769061276816167111771333740330454266032783281803923535717272098649274461379507576131272758348454388355300216637315240531672897309768822926833918581419891317947952058810581169498874468884972994057580002534976610665028330804186103098980944085372210539938994860473098525262117370218744013992896528132707850408862596204952329219142736827858128839407876032871630955797381551192514441306738164544370776869632914492780955243814002583240114583248462420159997481965264346822062493987711637134873069025460280687295350459863730375028921232250653005811034774976343281965676016613915365453578804900592196709177279097140330211226010599555244367269695029722843544336258399973721469496803423060559238642138933209747094787419829673326899521966485955024476914694945859134790580783448595273754321588024090661501233788259897026653214191474068743504088838665983022024530558083114519987959124591272489904821016308999365048600752313943787448058230016012575475366170857930658957115217056152510716880126007232564060538915154488007544969663926922366067050463945758889883258366246196172877737813054069519253865474049658300907285764405795161835500828349008990825047306921893104028443629155497525791528194809859641049078605307408570611884784098665703078164105663596045226649401961292504084608813030625924070751931505555192222112364443709768886891979590277493131860257097682593521253718577311950004156620790057607657459723017325402158378940235906416230708825866545468391354872550640658019568691858897373020638883699997307238029602370348367552463331053909072514533816753460754212840844458342650652257090259092245311441799842933275332476169887465258451153979148878382906844984728968228161281974698664174593355931654778617219052490047052350042965436701920314515602041382829921999259070290785980400599655557140636846171598991710032522646992550661077015324104622927775511309616634939624148361612352256756253898437104935620967983110824009091625524402130127842605620967457830555227875125288058895048089758447083982747706373713483756886349583689909002083609251028544778960361666774577896803456795405345904182207541864573362218591967340530755745488196333353327620287168198797293109001102180986488678576849987410537638390879664785122473185333356906677537698183698184760074506646047474540351751789349347449030075829131177049406213557362993574471852341660724233916626187542748688162827398523887614281564681132229909368556157824660340038730621087553197851695513615951600345576308556352291537962837505088036799267735593862927515693940834985790117872030409121245324251410859211269034059956526168090340761310563367089951869898730328388378598681737663121330683747927721760522228555489859723253154139032313027831737855809764331995951804205112667326529165199595172636353027566924719176712580022909831004205972162804012262844773878227461034895364276796097414381627024925181863971476043780753541380650797749938395329806362187627102228220725904357625522153355832460845942970657357237562710427134179950758823727074403620665002128378272034533867770017946297007887041129953335698019434076442828339203382330694448526333215777546406350256194746050907937100404318584707494424491331280283117159042143644715383214034809699765257712094833426444598357551930016543160907770482178493732438579099779346631838917870422400269942137521946848182419505147905457117889997022829427273777505717613318096640245492813436150700296153142808928198180207578115827540999671040590481938814660881780605067382411659550721457739319210117087666423036027542218341413684063684815749017199228610327877246534307100117891119644304078961769150062994553546395637761796739227688311736546872811819551284715508118698360752452529154494898161701733767575455332747757222765878586255671613564904648730788230473037276007266333718279784710367363990007653384407901509858402619220213116152442654422710849189014478488377408125717672210601975069683605998479426948996001158239391535204797829521883881450448704909542285124920630050519818026533097013356461580467471028383670982977662194221489244057558997493482941260530574874173026314632302965775996639341450161892703723782812514947960724640835269162531805574094571066391626869548816093051522835200880701278386418090025104464394622024887734932323564087028553548416868634475813441667974393847113645817828978219713718030559321486006943831232663083832420795015786473675394120609543788914207572713986576918461814422638164674890533203782692152764121842993627161316775532683291390113051291384972710780221829642455263720917082322064430648447469718526329498207845711773292167847469795177444431396434947321838097771750153048182029952432458920873846948827619878297510707548847120999290785595348012975679715204538737071855486909493622560199924678992379914075716180795935826095704689678134833650637208770780804914642261661548028059434435247470300301912764279495465422607195756215479588465757428125470698358760351839345145011541240901317195738005219594918035157559188708549800182047614037024109892585238932199007478525849445720323067291249743702364731621581229197526359188247082581591983322055267076659325706937415441790362191596906485283798538092557368086028021168727598421947883697098991992154382884411308703452621369543695480544498153767922574455537458339179020140961157855112894219315280211093758833107472196981508484956158059148559905881812335483437313749386940404361785096616231213635558276805375305461603707922648586440226024574120388329945964298980585335775714321497938439311759461668792448888369209000999654415648207531531248537422214652977105134163840334949874536795579803167634025039151795856475794141183906224584201339207787578987810853340233535754764761417010524505884351943224873598736291925977201911734144899959033101757279306016004718307483359663215647227654108355339723910419501336120673459176760754232934330538562612932394523604951837321477202870046761181994398959429100670482603996772591045035238222619887584724798476485161354590659734796591466448911921837492960823039782121069459582770127814555285412071843742890441041302721518937976454705265011646687021746737085803985342313789682842289488420427593211972729236298783363296200290152268299437236614556435799969164689307105289681581684568740458236081734393589836140958705427882090252594229486459647538659256376281935331249136628154285738628063680619840565622993822042818825336306278984611432996101192775493659678878042734048679352134102024144972501397296652303312593206518297440289833132724342055591488244481010469253188942289576684280583641772022647388626752879197864524193871690119615400221937463597016653624282670723186725092056793237751700614243578120430306968380584859277899457840137895982008967182732890894585715552547035084527243328140446895784864424033744007389802202415298212044503317623638295425665631159076620657153215774222450487754683139267955587611860778866555994387672741154960431834872141785478001049445409064431227580404844013653289025485429036896183206749589629002003931998056174235482227287298756650842173669059238846148879077874359769233379500136689990704831158042748509762323004589388414357038069639065390495929117333977961339324947172346856330515262520277585426856548557148615398316493031813673478705856171530433790343513459948101331599947799527283624580746114652205401721672528329963779668279271123332498357660246478450293407943690152746515171925766236069292509122530671137862528361892865035720913537357229583041805518430711124580939295913430747735220162404541141889287930144233681618958049464605563184047571735437765174068925093294066973573366019934208151883964066699049669506096006419338391728147331145950710185487118534273057288687629009822376947562591962754746973647761700046784233128051087093159489044172924191480432103692461854567019874642089432891149493239422220771787110354287142955687063801299200385782057678972062175162425343394587761130630183500303692612292065934081656595113991271889717885494332294627184900225198782392476059828136516676987980044131726838405138887122687849424167366869917483240529478696578171214663597605303461044740742036036826116244792904962299795421769837715760865706720876299868299448061666222407819243990942845707612376176953278670677871340658628922234947516946196732361383296420442306923594714444367308873884874669705538424559331941540628988372594367777701481550889611838343197145208512010211139143421915853928887957122002277896896269800100286297053273603351036320508497424350477918668100810953473318629923989896418729187834777026118173989558806016306719099609323750541464490733464463513820663850612663582788507892491773442634861617996301802624708755387343930237509336186981515047449658564132110343467413744057428401158032284291325527858354258001842896981542590911084257123289983353804238282644652471513821204535987757105332704232803783556052516309847295365545195431879456238870248834514395275833968430420975171488099065721116388215091081796997781993691596532013976690010760768496778309595001524389835471414913144853759813153331352681094935175798340307178614690223630676525846676364685145187316236879170388620358052541896628835670744067969680039240333900113992070568535771107317699679134185449508278898279964395893676138889362488931071912270383485589900104325778686417409383179994483572755941138818106952454621684777805936649135002664460805726066218960739258195938667380851864795355774228013629787683379458235356879488010465358550529911875022695214420400235776609714969359947681588506352199355243407716401000404129583552603113441792294553366498784837214475722742329557255874022217533463798417632962791312284072927182343342518823985312152529312284388143947716956856113422340391304986748188606685097065245654728436179567677145823102593584454145219035159044534742110904805881313997323085944293222718330738421459415577511151989943568157538214864789812979420343086022529825830939306408158705830970732955738856564119343875659739048087563040857495162138417658381984106174544223011127408642121297934306016537307111287839118644505311502167339311894232702651976886588811121453369457043922246845236766191248465743424495927962390511594503713950277667812035675715518985982612791613529171675850742925214686543477872517717489677442406010747367693533726245031947581644916655971162142766215477324609170113536079072808316000465186953062343266656068024068470092649043314327471494192952373718476547967997250260017744642424738868757222768564793049434510430536908782273827472561077452403092589463807532987541117270912553547451697277551282602145820104728151678848112471640842169850163624912472572436216168207673127134879938686321821462932253850274713164719206066945618608637433154551191953718952781890222991564605552270932887897230949917449690770388435218365409670986746362571840606203269503608992952860925915731421428983927697010028518709364438406138538301507304336235589272655261011370734522976714787424244851571387055792917859316562210224346100848546850808556784812322322007394922525065398061660038342658411254026740600481576859378132219184166592811302312688936473088241456727832514311163746369423842437069585576640290808188398585830300615871167610869894449459685356878208783614529670957648627664771537552738057459602808275175285413937733817032233051397443158979882833329434825281786311019005358976892748749031277688205063415559314112368238429457421610009787575028427959639075803955572187236757158354943752016415534440972833275632153204476368793647813431992813283931021172065695635490305533272748892317198242424546625683690935823277237703454088299166984487653687953763140750591342755800831991441646851775416922915214794791997140301882018607998066941942206246701362093861597051107971166995014799368483282126021263332071908121576603269606695675689746717673800517948591424657443850902800045490607632365674891734715569796354214320653418322555629393792792740082691356623769575988538460862796277240201928485826448525379273238681800139233967342250090028081579388109284618348273867222663627376664548268954956462524647840979697624576127141783619359398902835906307078224689973771913969493303917025806402135253947635973275886679924372485765186949092730762461449161303008976117615533528071353119833172895206770106040197114900296028942775910223957364831656700224499077763408241236486468556423448466566696025136729967187296331069915547518093197208103249815883911261730472536799677110502699109333071529209949918435884022123899653176492799603083691427270960736193441593313185218335556746227990029953135483939835155906301621694185666658942510122642656172630385831830445930249542030842172170322999707620938283688723500087436319746892881876558621308019411284373318119724644064072116949243638592488882699808285779284578894529151119226591661519723686846662513582736597415837731899735847266777662590192287608065793148607129244757761292551624120655741672832882484157017723087431515389532083734110875520649630498798402518806343784236723138872816309342311010623528688982107497788313091893030144447864396445937513549164529056034431919239106330685191665974097968187692496414143871935052247415560253633288021725483271443462162423756154465069577633237935570783949164416214409926238972357292172979344312204901498264098918431306393373351570626717608741509406141384263385030933615643012627223904623584363931587157335328964924996067977575793573773280528313512069211409936983240986295038918962886133592446079178733545695630348729374340425313212078031526880190628843945464872935443677204331189184407514135966334739885738960194656106687162055631670107979597686530848988187363904690057974973640959847452009030669774486046789450230817202543917475056948324184418647791202727233053423444691981304702016123137843567190610506594122333929879320687551236169756559275916050352151980454820624906460350363310054648238434650887933423268352875640175197541033050363639059323084399931523885919379986831806363786469761429916351762983328061245747233818006594445979076766793995591835074026264641355097284142435090877141213777167628686305347595777858414721973187164052526825477608081867847375031811503578825254287828247834335321989303630963344357084819617978370264686099728841633417023465835759541186090382799107878716292208570280473798810182550761556641825960566173913046381798487805040010495110992608892265347410935656013456919748354858364193780243302008707739692824808552583177433524458162602457877630396520908829062958595938452737122114017308235448233000671317103612092491574961644216028010403435180945063846495368328127036619814498135702481309854210051716939586587226018336191059166204392906543531651416347155354387608878636588125615256860545661345868462380070210730505497195765648273795508907309007043126250831867689689184631188837493919867180897903667328020994992588451179348409474085072606073237152946530386142477375939020644778630875980045642733401836328532077360625186397945444292530791971161727304788374117592139411336572622120820899189034270637319861918551158835291556846391841236037009153149250653917729967953574174264695474188678455365951953321212932299714021351912419943070922860401968928546140976936485942159285613241038856979752971172052230047358907686245784566983888122878971543504626824978397602042010391440958783923073353182278449440440554427308204136727276634902957350226853853337192690692814007665274879826268004123495229807710345195682629217169393194882581794611496516453166517817977021656720356178135414571332900644052617357285371461348649819993584280559229759862913049583024291480888354221858465927880102411365291488204232674608354004876615496326747368614287645891949964286564256332897637196771010315853651612601041383228691971603376266439391254777336966568037421531536179147825615957455644730108102121112975283852179341736984993312391123727665470674485743696444613583154843386040359874619024365369429253066738079594721147711855534314188734784575835622792119194750385113580143327363316296285419886763341619158564346891445481942673875458054619421343341257952064567777002277508390679345170390641437605331550607734464910473662627208142523196805803524094902195126282304752091383928645758386308162849163155763768711808288385916419222402958048388668746378993535040750032704623349590034455917978526819539525584241439497543354085061700867567356050139575844903554949341653708102876197355936241047472003874223607275349145211877824029774746407866393699646177198150549875266272416037251808868677640652493208500411738077454442555004160987568027231627179433983846813409807811747919041603652526885379042814107240484152509793120758437014760937965066669679810197481645342954599773045399036753874095671433680591205526916298934527930047531713255608795049236165835873637026969558353893040217853731874170619374250513905988298487671650327280895491691460564360546807538048756215121903463988148900780479673459295169293397071861280354671846369549618261736619834392889337692204910670067164989830742062068290122304851748877265420924496546142756698999009982037990506682523453097025656520018442066217245814563686042563074758476633301876921246870178357170104147150957370406176512711838728392980808724377618711870853721256803569369668623155609325703959927790278393447472324171004416829708151296032851431138839835313853909332155368464652906412058088860280300144657993458452805880501297447960490874170701929613222395166651655745497087830817051762048128342070459860938522788326511861938698724767270469308310024014366153067978824169706222794291867032466905939497505286496438653729842771622261999587061518197625781674586039169284699584286922799135282513526941113614405815995128580336845200846720910311614564032045800974709449107880298432020380480316480796487396424723061320406665684272856304393669264997904525456829401479200239683305929146346728640912240200641558303894573334531278570255401788243070227802533511302683401784747889664109494570133804125261735234540271339485423585517416327320946355441325359384505712007660489088635385994582735524514410343955328040347194729243401821221958042742658377799570163229500030788636665993464433296400738766383848657001611370398169193190045126089258932391226613595816061352412775408661469195595488314985601076500054340244223183483348857123753390099819528890957732487011260093861387011060793048297436150787607990407754353643832161322104688813566839229558078594764682475074950228863547065851538659237612551157866645356483821982187334289397385906270299263385866260363115964601862144338472845020901894478061320718405383059371467323937921315148525039768201800379307199395365653086554090000576879005129855531586566591739181735443362859405832159991417435940266067148361965406074369320037710359010583998012025995059754554371224908368874574699464368073557724275289984696089501493854886755693604312479412746327053886343324791351696959563861081164682417991566804630589506066427631634870881237722205781055641511744486351718915022136438573400003837218135906923844445308253592922662073227407816038150439300176313979849269250901183718666627727776383565922725572795103953896041111211778589734856735819767050578267680019614074152519204948438008299879198179129939824234224926401348673230640126134616420070645008537974054363964080065800602049883652615472644086925740134588307823494012638793714461241416689840474560297051700858197393617528986553664564570976318920517931359686096557989051186510294539679727009437844796268385286336014004353130662649807561589378953022966488739295630748373354649844846233257605182460219003517589881565140899466091512163425916852486243586903743161914197915211372129031356815593059259390456354538623730628555236370415896170010294610534261706142945267700911351504807148002966235244325422420027153792611034763465706752887238164259301042663233737379046038749716612208661890320984090240814148413401272196367581649945173017789336728569499073060486372562704073091711178685920415968395842820226919235231640329002090712700031732057884666764782106409913429907354154306268543945726750556170347293051089208447929766342023205722336354814987037317952814270435124806477711936855773841801532539511805835568668743744900584738434029686980645383051005423423144388563754257800766355149417683626868790149675335192748483760374547045639704795477346047037751771618480381272040057927518812040398409600389959889729454443152396702450493223088991184072296184572807854491165367103172464541832905048183698720838423299267819673089897188655726718797032446441988472115797575316409071332425914978652169522835463059483951208211646658296656798570963298813056226149724911661781843337357467678775951154376486197670575058126213361975333237524296793210353013804880474348699567988332173981873584979718850951215059583357464943516474464610021394044564777313641454310913705044447893791180229701414640668873640262815497240859907622755974569687297005562775781256310868928683242145980327059805857407511797330223172738217524057095099454480757986959209240851575134115779671641528023432357227585274720277690824208927247438327263159688731630571128843828854569579647464973438489626456302649910217838123634048246770476742975070510351083704170255358579712494194195404937800236906876366080130904200859080109564407031718245032937029664249237026322286337161931497583500855213476984042108240329080063152250501559676948180404363291722721703695627938393381239437862257595044428856491659242510591456099377504408742853892962259467591031230272511592219137438383162534059167155632929812067341406399824970321750533351775864739522404797894265125301505182832933253762868910458518000853321143267369312361176155049230024221349704912180710413483719061492411921912651168069406704690819846495513925043744955163723096430562707680417612477629554992583095692781274629784388353988527328399219494520822945048410060283048452150675211002075791066355158909473104450707578532804945620843812510306345430722408592604354846254798301671909424633635154235234333009919449884753092923115501755245035354948461953061310211618409430677808016410294712210180761841864941058336809791867079369216377867445269752552008047711132052181696030966870136074214315915234872862574221173536758114132966195643945574789068021298506983022087518522418110639993183693035099765805925202298620250632611630258497530709263405682592267970127387154850776025780470579694956291870950195927131990001853089149556602251443140442403367778195664465805414266600468414711903456468947276912846404042480792696458529313265833850624036374827188708697262942043313159978668931897930737690009585087928422175076469336661398738003682569942194958047991773346010421591984003333612349909782630694188461374608625108847594029106029397550022644699150822970609533530441395561297923199601734541506385675125483785201068673864307075272928971750974524436517533721075717040925746745514511282341367736086095685952642307242782263723356817101496060668529658188413108877270564876747177421022848723765950313733100549706476254906321770131288245115097760298991068231644132054458047922406657501106631785081853872459111687311482608325716918058302876842345572113281664889250487421753509976214644556172234934753755536684306462763108164955907054934376746631715684421590703387002490206750542971010896904017476859121734595984293592972274717279607575673261041184541742023531129814581083226563649612890231236780503384534568371167163371303619983938821133199694796571070566141844448397668174961076784534774829314919026973711348269132302646575594038562239379548411089312679025829966263794669332813126808349673955438411595207713406632975871005979109684453963256651019402771409040865463503297465922093184052293984539919422020766426037104082933107008533183594501666327046995337486192160924258127714024710771558863857759447681797584140214763649552115237044916018715378665473606114882045729493455435527014124916161490846427960775426506228608633159465367225754482341644029775843001713719999556747035418343099274486517574221704658982138542286737701974932450156121830301542101895640281449771402283649705148632127702946108098728337259577216528004542842183391044522879052061575477228551571967995510282516444613064545525367594668957275297297138064013882658874374900306733102417739718955740066978646379931154010808416241614370182731238464029483335974301991704298292337040150270252960474649900602790727123884662185710700994134865912897675422474829896581643000357066479616032738489645425228804807499413662441244097964280127608805197711646447674582848336331892088712679044162294516807503307862713371431756520759286325350114059144709892439805351650737187912613722730729715245999780729575810439218274675972825700870434680019995625888803218424849662866584679476720703794973064184475007600768268024325374754159310406374967679659597834408392112094451249455646033954289983950500610330423169144492867958307410958492319239840763429644247435288808558904316434684276263868438280449009810552824974001598386590087294368091804216277207009647787647867861838439133761074185310284070034284491285140945724179648984421929882432593534812201610554614226616064300235887160918889760891211550498866581701768554604475137166718700110964999463336788925559294294115737656639337761274830014344244542652866677322280684776192044445343594254363222772029637110322384473836079837343709542935596873578640241608820837096181009726761119523979348366614042710077791122882908359433194900684296343194025223521139563408954187354936209896710542394371779602789401659737865206942245733505964461645741470731314034937500014789640232918441790107500627235666235005758963909875159364371763094226683191542705755142700758626718519778165871471970281299159701167553843798279085541397860406312396187288497697458285616824358918308618034040819502779160520567479658488330190637237907388717840220954208775935633368002054563142608194350914445336620044367274514891653140844366494715602946916524367343826140459519392229810563755318872739281917059313360286147177997711612700049610493651137465504189859822956081319713267234204400857569825154603402063324739023222501319700519582908085693728623164308509810548229041177607140426103723553151641930479863939138790026903489095273793613201017289779006985871039249720268861028324186562257377053223255265712125801413950097972891307178732321131437828036534696786567171783847754292061783582164913602780859998469674921826780750047176124700637862240357445931952089856522590482278249532936000685163128434409629870701714158356364627964544009456373952834639369076969405292686970725859730065399840374269857742259378367880802937381108207534782110610832027184585299758539672572082696585988505768819096868874956462675720046316405863319340470029520600600075441356006753474308181600081921482446121456774521943158794226403028035070810294689032678239957086736247224548183040269292263314838922059805453583016641925467647002559175357569988889206326380036983076182252195051350385849922773573193799137910993004152347622590473011032413658964497960312212044198755465483306360231834569058382821395436257518075113798272085045653446747448490144427101645831062784124259297913514469476942176551950210098243996204477375969147293401067367944808911757252039110650531842378971227604124707306323868608488944398604525559308079301323218222341223918804496194074573327665819209133374098305368383854756108118767087769298846360365556448855193078752775024890707572957522270834320580462565110434111304768972769247714997901869600696871889164163580262944161077240966960463721410428402793307604255467289476487740439823317869736837612803902406742498658627602975113948295079390841036545058086198642736622055553482958520876038002344012203401891066003484614506568850993221481205716725563296795309461479841800312151069153990210520155794221273619613478604424563180564072590071278234895996068947579372304889450067058738426302917596608183235967123569337878584229287704433099354903965252606987723465745952776998584407806465117377242062555293315980937600024772705706081468738788365409816736082817458975293415358360037389415878811176096018124278233775177407917728024708700447221638883691607422276949282217892887921055974543689267972548046436714788695626774476393017341179941784949267387590323930917723640400081708762992893817289272568121848314954719497811194018085467605121773644381215394088680242905524834446330268732208673637292412467922588544538730987024322634095396095846537256865997825140248908301519207645875320542706837567455744053477886263369527683073468997190578455684429796842680510772508124421893027946904324061053461665710263822981360965718105643018199543099834898351168062537247502737950585832937240929599177186841755112873971950682214775221960192601633286700350445667320508119858437534547686962403674656548148529393186854498935108114292465155227198040283854933163307381211035801633809120914199696048925130746107648807540469434399489132728934144305781477884323461613260565160902846153092072086704552245994253181069644646940316008122243693468536224757170932910345966352891048449284010419853658147120801774727665925281305545036018697324848657961206781548687018273021996435811184252902506440639290840667762467959198059613482262249378321312298570923366605823351981975380714006907647503606379369117681778237740034509417679084286452221083906131749937822791156783669681679893335005415909411583557452799829022304787787395651578685589048993434690604931016908335467031835109060363485368787007432035587299456536670140887830245234507603405210759584501959606594318722041178062235303391941676915106734185845627367138178961044938274583589917524469534896689716657159467105560625312691679882341187807041079791458873092539479115889935891211530408213215825678009907519344642483915995870729990432340541550496462383141989413868885839851118659500487720163910864293499843008584923104435398051560326745701778402142270824262184660737686402313150509419333840076499890928082175356021125447447227548068259377189726879328905734116506038753368701922235882353160315568047437556999722906431537339340014986485833770976339571968098695605850224141554462352022661117671467974104699439025629332680512244217840429366369141561647934026954695109089188902982277478359366624794358145014071775172491021225643419248991286262982066055837207314282481628898545681327101820755030473977760532974168716178874066909095241651128032670741753268729421955202094644693814946660579851859064632217308584804454082758635749261218809233697628570521098793217365774386207460023161155814911634883369258200181319116699438615072865846477819984403038646923378745920486605027719282062893103838255642924084716724964923282472214146911277969849999265630830295380163300769503084750731810785199154462935814100170825911578907092798012257193460033745088580512242091449056568691817400766984514345039663609769203488234317673271996877109464481828721509226173581468901641545602282565053322462496289807671468575487490086164902553805411148752686445971280878807451816736156615791561025924524502102030645596375573794295173253403015945040479635345937190197717924269321235371830362191817392859053649290422399892569448925756193618816700185660910920237664939480637732302759618631493705807392590253351504906555434156409579285152198694126318227396373997647138400075077669848587195307306145535717399551569780514262567328562806376777782005592571076760313952853800718038455580020782777739693681944946583900343440173347050246562483507586845093088093055497369850491450031126288230073984206341526966846952787165017223525460831694742783674727215597812162208214041265168769594477354276237249784443810900728918492784166185801421881208433480333216010840133838558360583643046402364380529559003124133839762154319645024663971390042635451830003646519201331710952696621564710392239317463113124196178663705807224431698923050590637244823081096901006382717981247863737997267417096892947005445658406166145780510977223684636467078936947955994723152751492217852909786421011174544092800154087900306268289534294318166130154043788659676677541011180457853597982055227694977282900009487757313527718875949229150603531950494822046532954657940799182050091075523559887100388883626170237614653620801407541690933536502542721885639264830064897127724037067961490772876224889025577415280147951428988509833994714834911364495112286131454459877101545294173961828996278857203535625900793652061554356074348796900133126385496056942326814194317269797884183110039797875427552896165467041123097435631655324234418977246361729353198872482848066003048399801648630292805814476610861637660152397978335608126032556494367900344151235371343909270025384651912116867734300866788661106288645862982471097938211066424452955842445008978973530620292470009094710086781826687804337762938031200216643564834852407870930485864024540097255607761221495313398795633933845579101910198633011589022969826809316424045334660583599052459881170573866334225425561379412209861408771506266598767659470211122911858426220712185263922328174802072530623841260430639969023382163744188754272586031655199619376227301034564137591128703085157955516762421223079187631614104681337652942726240320488286740643705068859974238661038901580449821782407207947822817097405295771737234445920958321142578641046124672215046888874451175213112222551568214493269294392528429026303323955820418065175663552981110016852214034053941661153002753501871727824011711374586422205111221819107902580449844784106669298532335964823331002010802547660225409846322317192269253988102580339869385405099440004582860469120364975830566824878453405842725595870497206883855846014063013508767959187482268811709062817231835726449336873109480615260974858062614036872837631603638129051571714941339181774736653625367171608459040608556198873245789383991877450326337406805951850963284112514701007459410943810953143163557173924053947284710822074238508029050917039824551429143493504706976715145756791100207271424977991738379965628422085962003947056760720885626742812306682062698667593167437867172697671516602124941265367557048448162208318237219943180724399034669659667840886422185048949763829694482249082510599439795272540982807027898499701094186039365038583077533190312157571699914934633366884639339429957556092803735681454242032261008997794739256482349223434747235446644728253693398362894602457533714955253875363579352448190083531486316650555034815647807119813820978099103142093527538036152096732835279432071441340132267766996879259972238678158447539183815828352314494204484428192757965602055187371860934565884741055239901030582781419709506868564292346486268185581899832291929776722022318552172404107198922581142974067290708531784305782621113788874794837041178498087924633824816782952090749699877473901559310785222443898520546026753328871236485656589817451102857341496823939555460164461458820662588462748641448314698132127567941501116894118867306617229674371370819243777205156754438480176461686336358729967100060205824400278729433340479599175547583184070654552119810312789405026473715044154144005721174734909729564492077160919638322592171850700110778192178228506644648954039973352301321510068265525250345848869980983069312916855127701772155427075898657160620085627300540824008610846229955763765160777000783582428234360367236858447771615017628823809198668348613718268067592235398771295446027503818880043846646006602972171164536281955515971745252715375453106841574682960903369791308114465493215842591202536319121368559260088257769730851908989891958626690908923476336150754397184852555401938819084876566093619665171918180301800192390037476924538805437031090641712102675545839985754027053191009083979428466756211223684374172993997059040999872026255653899015853767589545756529790084679367392758568312524191431921794530784676305653027001846853349529529114764154309381665926481466502580970680414781159529511103506494920880298555853002235288794342008703684342696008428390329854901455028250125679141158267137250819901747889134073109067429460670826177963338384364184471290412662753776211790178270657059594477953797531300537158514913788491715200356591195697412509989722805755551946538500468613441503645907416349310745187214863934723979878516046186747694426717770508874281029909797072273086639932399472749211799887545590796869017492533625244813296791527965403818360748626783471058330233768751753317705957995933443131836887726497188192106462075998472761103797716343793574015552579957681068590442159053399425454281820355301749463161003476640167059473369256939751303148016372948957724488876083336133768902462522669630834080575378886382044826274214728951675234072504735239348420695724707017607938094015069717995993035320032908119506201546786108769900368347303934925038683868570045989580322856980828189653475964914891949324951458392741225769394828912242092231517231029041447601832587707129267258533165893571447260095111939459429683526257641388632065892957828048247875363964491907885950638326389816247897276781176019545341416919694100483290397207113596352206994516681846047245585538472096991699043894654620033930412232097385135330913888515057093319364215798297849474546364441029917835935055515317536741362054375013587623334665049982562247963053704883288451357122300424468878271846127417004078779643842208647941402566977169375665613396322326871935733771952708588992284272676235101762618764058503941114259341914300660084235989923309381328555857657122242462688706968115023150826143228782688514768331515036830442126828468481713401574904038887080478309380008168707825846579396775106248039488934357392669502110094147618332820378320592744975928532268369077001537200849510994323757409560892303968067210548290212165617141765360591120119171388321730650512271574047117020813471253463664704892750773916971439829183686334705950902140616913682982489079676664593744018613756960035184922201637415462741010602310992455557943555785847650869663760653717749072911003904222961235003344319971594275455495517330659238971529583794641071822630681812609585068931594264250627520276868850007152226726929257761669150913461754078454233734807755102866434014714016975164424036953089625298288336748201728054802264303696798025119764063950651496232539978168393628842214940498625187255636370149050680339108396664792404559208691967102828700070681197734584647096522332467234309591968051930748322818038514490481744630175448295668119925559827320902800450532898278249893169959898845896105538114833150341926337028398085337953546478535193736887802140751372360272010970610291149084998920461417447956972553832621162553768887697092893410980926368057475933222295100272842258421805099368161751170608681282090950786187242296431341526211045071245414985873366340237470752284532924380565532023945281600956089568350567180306164517325729842503283380291449056674652214371939947452599387842158585184781685474467998364497481649808631363794107212367274193834815437908622937629834623448998012431236270143891383614207723894968647888338230243590178493936408244596330208921255482409028719795259187223923703755837956223077297648675922925041147654955886607090373755705580461000974688834909781592576288709840862982827286147742873068561846926199864992788601364828699906176136088039658040628811689975862899647627373945072067731650177160247270000589110674838080549825920685515120374400423654641787234752054267685507429076313598532137483832620814464322952928938446680644214634206941136273285166910548906699531354064711565784768690751924550337673266582040854845533464598073131444699113292332945022659357597812950360843491793186003380635232921685495966318199598133190721012703669572536169809044296955428710860205185390657210035954331584627858644900074705464876344409611049315237946892411193743332680684275927737669432149465787226617604477982582658802638140980359635616870257546703306481477993045375600119747422776105648722161790059072504305792023424601905093664761905068340746248538027701776216557299381122930507661753023869321169935408922631451565053698565439257941130750461799270639586680916256533254417189216031479321737466773086129853350195399741442080839375568006060859252624039141640350123141830682208233010292515283749590656808891634913565736403889169230776242202242924560734099394569778690963419074919955922605815342348289779814725665079401780888581200862311568830461911023194039415444482710077551654334334864306836642006822072194760274066932180288785352002812267029608777386802039315805406483146969912516223694465584497255328707838588983197473958145938062386713525663471872413194517413879210335765026966170098665424438625088492727018638958402843356131686205382491428960895502882367352634680118730006450392029242677317307444920289913775325693708718695673183780588362881570034709966415850643221953345406554054730500732584948622359602598565930852565895015361386336610289840002371907542575880954462987901627802781357398758703752542900415534825729243854142534645319050568798704238888987946597899757773105114422814293297879585023886024695211384096339783029275786086888955936626585510952670020023846655459881407543897818255928964754247053844300859646348020283054679966025743666596692821861235768266562454585475811534358312644324013384372606012924398619876592892332633716529374096994711487186736417905795829073576953486193267846251873021842633735369860654894840484552325158006192681699390735692755271302877112127508492155596471098452565838236894380833041161995676714605996825791188811925896883846228089155883145361461682303143960955721405949489511582937847845391021610712612524475239870509016052001363897073808416104028891126867753312243868959489756526924325626909141114647018977787039419159073427334237685711928913067088606551297257915192762182823218638849514866099194896013363388876416367622389665237205694719593227239553809326050556635517836019318268563587414610728997613231354328471415338688849382568949896642409172325970118008645666102143857635081198995034546046176573877701864470100525315443638443272603508079672816360537354627848797036249659476114551108456329268972920362358307642311838674136877832479058127382215396007567623320251262974426777367666150648098885514612555852918482246187101624366066748542663065071053660575246217896641823010505630912206850160812314366761179769676397615231856047712343052720674875247633302336596707240747096369996534135727588172157852231377800888711659587457803803229907482573938670950830569314972080033615145162045449244673914365366180050997441199716265075170090441105073668567552202774142486208530545796165775523721304241258494160511995152626532912189871406181481514510779834531208608771618603846545833914651985825442136440408288178297916749760023749600058017919765798561177057998820963507651066691513394231686559427359118936283137410293972417899735018765755381171985467489350401775243458555680648109777328216019228995357813911532187421614145263984806133522982943855252752560843546707815608799424679811452403715751138903703573099145360524944895445265165159288005500474101483430596686676404929002851370023401933273151025698432727516613220315842673091810336121593776662268163240982514444441971201344361564294585422736746558017165594967053988382002223443856447400389265326190996481126161031349577077035764480581196595594731348172538737215216865545089484744434148109390214162462079770879883107093982446336607648700916225287762547915589170372396462389141686806742090385272661629693406234380976963858126440100147721783921112192142096271013465133585200966379867414533578158830362408145706376792597092898022729955529108372646509869839678796149337752626415427078771736013947208894042282230424723873420603552453276397233842151769160130780291642419976691706685884386824394976408962384180972388999995155934695927757642497248352783878901888281820586399355085956144035495218641032945767730445986804509239553948286076339734091393708323503278893647017851153083282316526219702328188871178263175953455780433284133316648882364294300004159402379741091408197063100539622498972607453000247713500655945908743810064720344527150238032513894517328060572876069453841099696910303064837152384593793253327738335566351192097208249995502877018602095074994328939658408447077428286509708600224597967025324058614680101174772795352148312576966946277647964960408104308710080116990944736231739662935223254068372218018564816120685032423066464596636704597572375213524776015102894991622725160677894838576855721017292733771472399856327406793769034010763016488349926188799142712351256050563578796212590819059869887975625571520249364713153699749930427218917860752647668360759752692376103997893296857823790444258802694433498019075404043234541945450053749460041447704385068171208003877305687936949175123228848706206834953800437139857193508589128511290770223944980925865902492851319589409194748872498362718538850702630932509926394673267317330395433049056878424816059130944803334185738609923968839466626502374085102942928216675478909104615692786841849920978701042284833853884285152744086772687368844090514914400341021927511125462251583374920955577355709721139634631795021887850162281551605225559852228334766350182227170915097221958616499269992471867760024109208358852690560957476150437152064032867708077833971688507195008577122031397844077152945057302376952770443192732375880698228438469092695748412019842130647348493811353917807576936102623476075881236404231417211163117215803879895691225639585900467196928036786776609499646035073565976886246145427750749595215341481841316438228237646937658593841011058341535693183321523697515353487729730578388107505899453631190474055218157469936906294066662468826712861711072621661105482234725449239057582280639390809009691716510379966301204199931177795736752737005493998989224531794459002576277148310809758246777459084805099571508268354691123903791633404728629900877587198590082874497805922082798606715126647628072569727321832022517557241909297680256350396440573641390843688308545577128175534498905049288270799214566728607310844571930098611498531912044104890698217605610775663314281044966008285430160409249449740250404870194216217917291768632364630657666564321898913420598469963412040743084946438601582060736296995232282714914000271686341223533796830454077703597157206726068044540030585391040766365174361511714706634873603430420489194943520034802488654455022608586755331488500192247654283655801933654914214585145424946160982750976330608050033647066906473921124745251115939656549756424634152206798963413742201635894868750676307506570773396283081257542720332151719357119190100825934954594005478572396488197857877691715465915538994827387115010612031847811583669593514168322817822175712831822395912166774984932502926609433889386326109746873134390990354865246884850405490135814824212657587989159973930835826585220949563927479279900533272393976535455090667448638773835370561694575399706777656097416791598398961808625218196610756678922830642991236530509623354078855173055373757928248185871301824957921012851323662300446641760741477424904241312366177770700556884995214960690725457969171063382851787532534818650468093773671300784285809521842854755616690025799141370594644538098485658576308299538865794272725364135784368070998113456110917645888967184844190807562756914714731939074035714809546146981875576325690404681319176581861574085789882420108847651067138645984683163458979680089509116165622299720478206175360094032706460123879260064147180172707937525779965182020232904436546676645675835159121525837702389026575802468928620765656427943027956963114971336882005171499791364579054218203529796570228382926524081839156725018852472867464372815982900018057516033773190527081588738190351943545079241787347984571668801682325454645996165825872460323227336352076855192553444160602406585457951608458567345714011572243461142445790958213562655710292049028250698822227830522464386644087466929098585250806729177145800505552934488826015117801479309991252118516697011179053290235706899014129103707641066376744586080963284541874033593100414700378881525632787115717495716282918888064324730626420420193320343531130866384920135584290786015054794029359425159319189957778677421448826223654099134335627542164202077284864917920631608439338587468716877978791625998137153821918824338401160149850377057165482661858320529295497947856151442330881737420167358912305322197694639536684089790017737080791062050138355006118798048483679045502451864300196526105100193829489293527953137698570173560440637856286064046184543007587127056455341558924888926720352613366300748940455934009217394386932533180350735292700506971998405460731389657211424940628210521005329604385414917347023743898222223404959693181802630865487079227305262897675128644286181507345276568418835671709168442481515941809454925702103789287518397344049839464410785998050408282475464271517420265263642244833468610668636853760749059170497341704688611882189835558525553149752288144103894252853835965429637930706583592986764962529259293659199178643450334150342424567668794828307830498185812531824557830223119657678802500095257843102491884427549308839811893251491121617511771901725157663818757774880819481245943159969931576701879875124335087914854042062993341096483190302328051120420095371702372723780564445925964866511470546794392140971870029550673348074371662892868090159692280383207155029326337720882625571721466256148656273726968156327926182564698966354177557039944945372795504078967228323186480765742138646570375229170903647237163865416774959910035836674361200689823133092549510273882153594251074563078450480704071102073267167378661396880866727442825660904598431556539823041482645170651036974539574381848372481079631600291021275899050267038511556343215006708976074642020566767523884433074935200510608782940243630886422114917124890454204958484511472478197898845467727054146510001944419631632133725430676905152828887449213002760124264113626091851972287507903307808200432425709728560850822444800670994200070600049520834069921073524576699722760794112644734848157327491459070418198302426892695705833372000232040528109607829960039591560239036266434808681003108037760635387496378878920585468198253339114161760947529754275279827511368117357309390285925074817219947697137731787628693196131566934432470739287636618279073025029422330856502424780641066873378817992567789554248106502403683070255403581308057371227942361387516172679964918374695920324847514771687482608135957927139626358100615356926366007154362746616677979680192544131682216826354798149120260659737828110451538132751402995209819691936960112985582953370898661740772737125292612840638214777221825250677471428457055889106804794892838590777376864913859813997024932111721025529207523136925163154500535017914322420237828782928446681461212173616757402431940137860279004209846193589402812998023692904620908600507876440806838292207301208497670965436168919177802095441040104965116855794470063921852652311815920990649926787637272434778569274850072319272250945919384375857314647606712312667665211883840103791316832963433527853948543135456351582078203845153548856085821160516015439585572593086751074177650769964281597843198846691377519339853174614758860898510221599719224910086765658398944168167660199517206280147508546823252894912407943323015730226453818106739443472200197853828730023585632267676353957573940596435158601790537215685086367840863861114239393441651676537140027051504434901303652806244773190372111391667323749662429298949954350503488917726354800173117132541230103577170245140486045007353027078082231258498820744230147020905086663402096433570649676149448139727064766842268726429011455238668939925095189930676366671699976935574627217233424764523526091741569186775309020536907993189528021964052441804370564344000244268897473254840952341319135867009768413245738978557640331623412882401066306952021585683922047462850049628167591367436493895991524322679718924912078690060922266665303302451639482861252566317778891313445975989944050035858585506795221889846298758871772146524843554080472467197986055495686580038003452341601097860015352259467918190510495590154125384383136259785486198089450514225776227528586234770641718806284451138852085292934142226584126344166888989562560720071875191943803122933261226794938334326702841250927645234861281948622484527755220481704693305037471127496890614528247295809197737956051448234568641488049206564082866522398162565013835854765339610967200666852726165160617255752142651879274141531518134177864118629579501787409984482751512993674336347561871078076770150043488538176013236497410500996642279931801241552518187590291939079487558388107430816060707061158721638986231621472870981670285783487226447952068811429416966362987883361849533943280303840181270870055893930156564658063557587269815800933318962898472804964277055905802837963676150645131162189793851072124723652651398206139338821178065111227254824098459779127037827038885231054975333602156738719442106717001037518669437837280740398491409033044167838876977877877381174073517740776678232623808729121110075997002259347568402846244662991041555288286895717344046756405962176912756975884175266694105162164459854467622953310054849050295451920255705622209571435674381891911721328851519892825533593077292958271823767910760288479394884108394998849240834276161848869248231529199083753772074137234157732531913521430391156141191309916447233137296559989008597228172536921322408533139767173158002839611832091308497942068619131564200354429862766387847341231162124023924522837589934666049881809557600857149482970413826318319626112255131350808468727395873643192702860046216483340135131271719893375001599868194149765021787824587647002014341682857275276954605061063361774918303745337892965135315984660384317414881555019697728800463649115179300869977427037489921376618354725174430133374925053820737389967234310907479385923991977280022241016834160125125233595849405000217007094440980028405711565004152739715694686639643462372387444723642539252878103196379683366611966475123837576594671503869511204039255327492412999930853676947692850166100021276693784228998815007714501500488480008372784928787765799841300553458310748024199945626890731363102965928829749625429387562341341976926546352735360897101982862722583725431271758734564141317642779889100153700356372307557304894330743607635997567447480821112218656386995906339911941243876761066836424824672529561748006088096401901042746321869565708434956993611153834734889697646079369096145106385570452046429855262810206268948254883457261753130564487819852496641781635921318547007084408004208716631758827483489214850030240017551150221021511623643733730753493253061567830243938748413522725648402772633766239050829960315559161907096516566074719678722509456534860591938708633050195107095523395247733782679895549008849803603804145339137209800223164852990508018098089660996546819355482592146409937976096544971429986190889823170513675696474855828729343962979353464451709168792320262417791213910055060461603068492272545592860347728394973292659004898403468813327598288554384288034065492121299156556288280381234117842489453734240363141881619720617622509991749306109179928482929791076534208949835498078458304440447533921082609921213245930161828081935057207188237475440536106716337946348502056518933186977646661313301923195548331456555161573805329115292839825409456367202162200727130854965173640275802795164890468188644715899520615655224313246794303522419470906523425228023435714635109270122592876033636295513444144201786894140383447724305731513586731422231071692975499983549910259336481471497253066354896670474326591064904198646133535573860158115834877625518513335128077438099098775131001053311975643089395180889021215245688537325616568963750566926081603154954826123141416632700301758471204227675211936788554505943685817971248240415712403328191120648900437954275279146242172302200325539504063103180101663628227875042714165330505708606610859098338870318414479313045907903374094493808878058521388181714169616253718292949454811983251712553260963608151318599202396262186117047774061017325234372047553497077052592329897889190014720662724676227641538362091531031125065619690719064669158753965679416116388915455371889525465812923726636774129596323551014905377998164736498469175149443105352164720189314122521805003787586545153697534377445264262835666699830267077122189906589832437672763989926910056214709156558500611827003069927506859846676593372368219875515824056690151315303070101400323464502655518591298693970880221865877010339716166353157519925678281684455018651823600264054913353821323900840408862987756506231200441015908187932041969047747568525143603515294691816643248426118733215598596550571007868868138031453758985371026904742320320090605584197756715308116415499041878969755074142404359560170158306298711586568992808887578629753604605198970742532735469025279247738143367113834198120903229252876408442843199098976070152073765616742881829322031269310106050745630631117829632311702783886278568044825940681578381630768083237062942171331313084866769566058307010218280737313249224357577765993864998864478420087077987401353212243186261690132863191202471445306982467519461020092837842592025130399990118153364649112655233384064857193970284611220440959551332035992869878901980216596689718874588577490394983454430163243016322293823889639728409764373195051184433032317160187360690054914472046392304175824428083393738997501526671873805322818059091708844814041675957278620585164620917620144864366201019136242540628842708239014582436662584177709539820685954868325980407910861594580941913584601281884716173222749743171681384664500928687659245929550800895965223860575402845914941534989608567769943527360284761321031688587017551467246628939756626337330072158884289137369247378247575952310904915497027568639478855046145284758449820577272005555808957408872221471466956155852883545938893879163864509757110298088198224450690195040971827252252045449641903243198843046557565462552527715822628698466261523617276338106842475453282502307435669775460359518519800871485915722754476945377696085668732525251373264560086676894665400703448303764940943004256708457057458125633975000251326466902489010940287732151409117246858514405758368108740425141281579500881993089364505336750269284354721468868787566505009311247138943602420648643377306491633794316592008187464398397271033453649661905708241559751392901035333289529738514479742694879757343122342812518741264291087522446026790597508434989617629294221282758962399277702131967369076477358892905771344271232269591445488270272204008449620444695987355517582853962457058446783556327339577451611134431200455486615878329997408343523212281873949199924732453353349869018814364449041764156184752689054119835905110249688552818220647680190160345756734683728902055248180079570475193171195428501541493422575472232993741639957323807623286867300084881263051696453753970869966937728915156609750807398652951249287247688386460369202565290154003306537144149613397225627079000479275533151884640984792911174702423525351512362915571090140375602301078078493353815316465939392545423105976684466420112047494332883526554918192117722680545299574432731011817724256571731516818616151684384864717135486439465285024863695364828096585279718750031529262648846914228621498517316786175537460199567108406593040264734132179084117214158724001338930261325095878084758466511684084783692931273633741942556421285704913719980996004105009255930593492977623210610138453406089001996850255978516990570235395029037783429988121990105143121677788302237273178343878718041411911451487387406748478809103565227009503801378153900764171985958043078071423707740784962335440023974800083913583823773949225436573087036555662333343961484843520949316538688064842857887119587312332877402042245587080479562992159187098624538557706117810733645019849247817303681135773380600178807435811749119729185526561372407517953665949020673100597648799806655463309955931646238645713098370157399104132749217366393887682202699644546494918436394814727609387855569122168000029513693163457463035351802003086965779633635733318229733122193697646839741967699826823991286194729902974070496078955224273518017138930353746656978456202868836210260417377049774760039711315215446568955540105444400999640193129625100928593044265650094025361263325639838530546105062483862594326084212137389725679981798758431628305469832539130846151882497885762368567716307802073155378743318555154548901197751790895126618318014932460591904130807486031741259407515220345153062110655639968294166540945616989669779318983805923527324995798388594566998781283087804980561789523134528730032632782382082257022659363010748593270868770232365824759355333713851864927739360109000553906032490784834994305930273306696863369375708036769851509284118315807219499581292941437885856906278281691500282797355754333456105280968943962396491782579742177441778339266979569902811439798879592345864231246646669438380924628879113193779561253900191612568683757376715006365001977600435339536598920341592321624212393897789339271900103488067384833820877654725885720577506635842724552257438616927051293612740324998637943186524207705442509289615281003411896406350559990114804029904737143107777313034579692779460595209109409264238098837184477227722452102108769570131900834627015686635298733552392322436732414889819305778118833733931416301251584786641277220274605065363086263288350525454833300670620512779347878689247508841929718071771531423491008997695112289068065686543683460566917347675232299859107426373840926944794516389774115551492878943579975538330323551204083710437948065683189238977259173014720471413797886247954877519594760380210689597421757748092179786170488009347008347784047950355517749536803279783910576836899593344986315727732979512940006365894733493695211939803946214658592599622450942098961444062108031295389749870138279032804211556375823754355981493144039172320565176086177804729965711724162986128614363958162852526908772796143002320424548046203207217384723083948704873046376040303863511633669605090763153415128060495894827355499865981439322747511798066679898284616274597555930756879966736541216676239480938899301254966791153646273008597887873774221941189052849326939112967719439056037554912387429842573396143707116546987574945555074570640315703886264662351590909865016207926495955913755467446878272837121180410214906441065153958505845214087333582979977143675273655845898840622158742707518551825443577014890940131207710435067021463626191804073767235681863256322544437305442846069850310780138156362173763108085545558982194902751509031511880611449688424959952687579062092614774993309403334192737013713839666589219429795332597048778170568274517378008851308532433832521520103347574899167338693310181613539494423252318770008314094814197999686548856472640799995053777833920684448475045168957774638829055713724641904929520094544567938157222032550977222862375920414369445307035436034655012643481670732096630994622882641832653935581653776726747254276177863216392730630045996412022487258768741065840908573564822781700254868029555825452651927749086829470039184917454119581342987308312550742923823969804131808126803890735188430133678288495719674904277943023382783282058899343384347762389266680897606463980687512997920277756062869787014295689030842205326674818353979756915895748077462983728165509623124303205866378300866548788749011123163358246362158951063639344971670257343721093510002878920487827852599381831279791350892846374888138965326518762217534614583972304685424722057081329497372939455622049286850169042873921649824400307237025550258706338854440363652959722086900429307695521961811545818320691915900675507280838924573040696217416902444826202883118361832324936398825505786881942850052338305872825701295782216419198379180167699074640752090567097241689604388172169076255603756687966217378966094472216006531901780469005743625295508851281874832691801967698423118986049842072977451517896625152782110004760869337442382341998258513447326810394639896719796422695707840691645932427172408344034065412787885734730664403893657664859804837157365726248333980733629002428202742448840451444062424821287784906136331335667631742132528125321126367292575729823204415778230666520150568634811960295776031480188394143250486156043758417030253633453135678148081973404369166599431240868708576409250446390599776069399534447505541819146517632193706617869290182757879535697166564973740813255761515978232093338270244580218464076250789308947230985958531391670699426744331460597025417078007782837768974921273341593160621726239260711025436259569095026330906804685249644070117791559559102474115009325747904149663944095507643927519845743264775790947979051034070984235125140293186295731768823985426275771527640129719710659476506147483066124925456601819108362737256851422198418999161114397688466929021442078645214092160154071267892729184767234672223516557664318431924749432795266009162878946809979147498879467686259503487118732251599114176243794561746782301508711836911511082845686470467682967914514716857224240627233940540036533055746895204002643974382608169632167670357838326019913629072161546755966056454084837859061919062249738613152260236892406686206561855041178522896678020503913835898813576335534383304541307659277745763513086555816778620081583189073474797912120012225540552855596643989181687663246306578874570173167894573701009268329310963917903747701716538179338087147762015279343853728149662522458354091013696952633166475829409902270925130693388186694845605911781609340237685196239314239994964967594910051622605008201462277038705848808438425073390036652843612181708990236796792826126943776294409483263377117718204421424825044165272086080138184087955256286076189940146457902819053676494160563565332305782447456479872941991643465272477629485515125142478812632429221458963053711762424364428431439189993865998063281009784188159994724589339984857296806488393607369862663219387981125096413891495925310289914496486046009878734149759113543001781687827393144778068733347873754917546222636077897987247045466591130962202523806828188296219218664091511297908588172144044922202302758464055489141653488677323180650018847514769923682451548811383748926521920822708086773014962117928303501495566917051683854197181236696172810131813443665376782209515759076853075925470619289048019074091851724233899526857581906283399788426875636388853013673463137543595383841718714346254540630554067810236368218927728269746322673746794658237874720675175230255454783710575456741293083182962231949724702102421286888461311117800508103769586009874839270868099775426212149576090972106099396607193740896035640986442206721353268116063186964171658555257430086587084453042303141455514241355931616723845556201543908849778490370076474364268521635838338738608803626602069169852213427868143147155860307148690962070395719883048326756214232637785209000421674568238591518216912775136984407820389520986414093836851609764007590593387357078893930169569611874773756482605478936466350148378594106304257331050324198652058693921349405484273490545269184110556962273320719912667842814364952871322221733805640894742428908217634329673215758664242174448866783535055497371320455162254453236167841173097644367846512415892896030665714047781844300086306252597058043246459021949888705543864858606508582010640769600302716393922973354883025793302562648004734456960426611092101642941818601227486866155253924695279370963704780877671221430993407488265427027488447277514494171099973116845782690518333646669227092772832133952717938346920006589215266482977733881531263133811287641779886472941189923240359063946403975409690677845705315317002268421160995104906558985022813825706849002601878147506840540212432704677162188560147969692624985071754629596828952349398201677466543135861475728813202592615456418088574141887515961608396987145287563888034549862393601301019643869928440218981500085958163328452199415282691421493725257032699601840542185950915379952379343587507325113551362341095770814870169927388008725281961823088229067493657417137222786649226157286432749626723907900060299615255047617733834288362734020769046299532292840657052441389579450913962012176889756233074080589703385646234501000060804900370938157771067266290083435882390797987216452376044458277230380839823578504643403490763291499603428656504863881691247102561481595151534728582817816768792689462602138599707134236650014631890626602228629894479566300501569975631471049588579416267038191065008948127032371621066158649980903672487158686248897351757927786157001604016725977407975489108018962666083880026917392249380100881098487028469594700776916457481524113141641609423602625341977795503422244348899617685843731988415701518308480805314976694526190672870372020018949134964904494673521358654627777686986191131427951428023958245322126259783781049381441414085052499452851236423187495045285859483629959818838719787921926601821081658344722693532875908318413598481956539606168467359213812279225116648647675504725540729938524473992850938747500112303690993482962838675871882618176800992616455838425399013496428094600197840388008418326334619415925477662427078204171093093868028830229046497026447298488784357288116375841196784530892870386434802191410513980641021627854482909696744486495280399500597098093504258433954852511770548134885866840677265429053642017764857358764627763403362412088784243450185087340150887787503962060160295181127534561802216599776161451946452411424427595541095689837595227880059536906303673616909152328146921877787742170615259533057299294754510469076143502185674529607449034241355502843851908916115988506773553583597118024628582040378901488311379099176394457471283035721398665241051701973573747465751339608472981320783790367773174638498620041390686914204731928663397594515430216412887829707494204642835288334785336263470437248618770401640912952354326693430187789028342403167679285516126882570706491298696490754914592809174161266608988793966971930038218210376176827951398181682614777514065966464933753041110811474819939939222459514034271038383198922139255155403804928470765302361852452331224669237706354109728281751461898736734893095733897956491645164762027889856701242685559279692467833788486784122265480718270575588628394340100169544474901077152637952387235770666482425184166417825124565942160492776365201694412459766760768785666908611548087695214774138868135450724322643314079271742071799858973776670092073570812266895415731923779395394040079330702127997818291243948010333937566269605904537598050078812732828459878617267373169013512193394525051786326111752329547720423245630724455517171181771294358816241105873856550932644070774934867700919131507296941570051236082689283241352113702527636230240885573559697577808660476160244479010082468294261211988193867871535519172857906012726909167256566933532704477708387180173902011261347191559971861788415332754349412323112106485638531556666264382206738896011965655255835614137877693942542365503223303889094642984119245258078384751696533308614585356872154371273050157097127828423512220249785937698845971423644664358296942043381425698076748257754652318805773269246106269368692684593451168198427059111427266488509082206040001587211858472210180745253415854884502984923541401112545538593549515187462098275757169530532425818573858807169053622100914633811384436364357165293746079219493498726153265450918336002024077193703107793094780096113692433192062074520817881136865399727661048667730699210984712343444629793358251526120000622374241733746817157125014710045157662133444802210387851501604395656366786235489581498947221922707396733849774842059224307702416217642926409038125206486299452888208823503243502023506590360459818815653686702073343686351512764247460810052325921464108527413156592891214427164253776074465494299405553185705821183164699841789415091270438883452279003638947097061439221692244674996663870636170278321646495954737450553834734971324749767423660552715136100506533472044746697838127674295374955054495979522152892078368355277504243355911470321921813224889759104561824663685356990790821093811152984837482712330396921954270078070315430617999860692747940775354860966641850310933520972169205470164777622707212086565973697481277832112216439314775949027671676493097340922933481424947530118621101105172734019817855569261733243926588035625138554614569574097758787048289955262288228113925870775815852163198342154451091182711064026284368171078013841386648203372775697550386663574271803736940116079664231296372623775562401149424119415530661403488234852101490896913988116405186241701003626057462610957757413109873038810581309869408726825393444029852250478518588879703705581454553809608325933811616342828228216185886374666066419662266998002045989502297047710127198297954779092287590463304472527041643370396877271002728871502568294670735879132231191022386688912544829627021155516988633859443126617618260440469923372764821486320561604898842297710198236299801581585310721497282726462648425049355527558632276748814441173264451477737696871563770372386744884969052466446136732952027180799274723031977735731684655193672788239337618616575312225116911306028040988856274111175112021026318687574910209689146865917065902478223045040478799913585498279878509902664545370041161959963130345980985961326631713729097195360861657581706510748740092605551443150918488279249674497085768199546136872804270044338799573155124780605722613179035088657200579249335056508631189389456723171444176678959066012046765199451883259498450785545917861106664761778757827429360121880406260272840061317289163210353802988191924276744954172057828817714211395739816279379633055409702506662193117713533197931711205334653444384826996549322950010467285718239301837754495327495870014263964747424184026014485886427434953644038123774992663190818945846779622637180015640124465244405268302032666241899471681732278213261960910744459236069002231888204382781878517153310448153798618695283972518169526067373422981376691241981626696321493559674864045532588239914676212755272255468539118458124787145585030933322062989909145173754953585838631313633595885173525626756772800173433224027159791004026892311578005434315576374651161988468981299911714866470192223519730575647095575976338469651411938212841251160884466032053365283722396530755066701272560030424370884371744156128015116094911904379807929923311577296068566253076598375997321195545824873333449412056286361981835807124870526968865438538146484751347088390786227063270861539470162783448420915650167262165362520251818344223655025147799002359565540583114572697724850980738349293618963440438876324784848805846628875965131091016673555008394969771252331880847598565728882534648501393111581511425122225074806966678521838922110002327214042890829701811367043798603864498750822751895916800747633009885455641133023924739819823433656982145223417559569668796047815020235279000055639392185037808392219682253613576904538489741736081359522338465948595563608733086262297144574028484635976258995105751908137367279624427699719582245060915585242026183845030222122475285988004751367777377627112850360006070515699298716980526206892476447299806508234871596165381579628725807339912269262780976942965924074071392371575509588522295568036732567673136516111618383817706592048288289405302101684823367719452120408544604330978348218013541431991672972856358385886772624953742582818884047075509868099455805383864182982395797171206780450732246143215771117536427970479233584084719602398885757716552456303412457208126075872338051351991499191332229564465931247095035053015653127580473456315400151032862374834082869168653955624702859272737572549457709640400871108425177882793569524953482421369810914919788564788910033294786958732971262197749519086988990125633113373151924720927074375415963264598145724969361779949108528005984061434650088695670442163483903468346356730955132565585453327344186949258905165239648166365169766132689733283948732800070124952517067832226798267024925346294808556807992149083837139600640044356365630694855815215297881894564075861088094270628612486058939972364977624028588722074829388738274811122358257531204071020640164919915881017882322835391239355340485020437035090507550500188636226418685203684943569158716419679958157972867394634791278256777393110181473712474786321635447232247679055378364702284366607894154927475019946774623708518100245481812081387735627852102475042527329504211157044014671486966309786711106961411126738515872558677076947949895807810017478778911784748155749919062308399470431718227226391027874491023241857103910562495263133865796819077721985823926285267947212915566466031230273552405416804210154894267454339956163175963430320873447240033316286072237717009562249315234409030749970317292408118247597717179287239766802143990822560214125039041655900153024523594537894472441012076311778342398901972739150829725385314081011242780158860974724437389383025646893793183914998132056201882272602953750741849746147646673076409373611658167264316278379038444131510701694853785954972180182155590416183159048193536123638418774581476889144478155151505999791224849364272201980842077811529087637712989037794858223480286138667791486419086467523748039205004106075101008080072762681380801215080577071990323776029219928103253406334632332169023206398240719837498024007077113877695579792071264775308474743453648274502852160964290270796107033552883904694815763125817067497521894846112857279104155206103970940445958819925509411236212144910108287145001095165379549796448244326255866935526382183256670143897173644769488877901783494446558879918677573752698635086902430518841073831662699928528985674112964847993254075091287744401991123708481122031090774208551744601447701850634771557692840934560477394604212174081506470200622364048154322396749973951569796181594310959339673987554346223249986437656853225850894105107828733398813942426322655218668782240585081137766330556577242938761786114999992667276644217172314485634193142959011743066668284359235212209290105517802989530768170909641939027482101080410855271793470695359275835593568203288640193990854155626041576672921217549657284976298447873924753770381077550902176310180263074880608040903921694158773247453870967013702958395145466018394908771192130052882619375691102837713766127208634370158881015410903065269945788307755527358112096283940732652076814974155358143211188276080374080437191122274002514003244245412880881074287572670774163644164237150173423738704819692334446694943192805059534712489294795296331587088675344020364318847427686558460810260499315536863394707016531623391250390077060391460766005063622100007033359376691224226416462132509780141932458325685261391025933051175651554313640022000308001899117184113755951329731298872353676385187329746150915078083927615182805041579865319388233503997963822799488859394511605161883330131223635758856136620581198334901881804998097398458894471021422527447932194259297433833002737299229071019881015348639173327513081861559795903760882030050559568429655368047754419493956240244623462425851052160526967776485396384996000280676276827329588505079881386703156535581724994799107755008279951214840050506190019985106107069763447289694833951561139815184307563727785612486676420890782964295442241911908071027473141136846125926317013798128735390583552351720730752191125051015044867364648962144270870138160594404189067130068910602341681582017451854669400716984013789154113445414715642321482865113239672701197077121843389746126009000025545091413511322088786564485794712167485300216598639040799991847210382969556703915628899321300458424429170272620715474091148486008125238702336153346762714570261213860325151127604094210983662573872253087130131217566260130279726412481891362078819015779487225410065127044190328829944949190968227880251244133157783605828336485854322443540487857246279118143074023816631935109137597568895892192376820998805326805697705247381770812979457631970274522465061116311299297992528285079810120537610016291124052441841571682671059891256804947468731308468810926014702748029688110310299968106285027207443257283276340771591366231648875655165750165722559757387272216280770717754317029010498295168929509332765589540935923437943155249334894698589148141499706251396053645193205437995713577535837333470966966145744624999589428995070708358550270163132358908066084581110733713469393941074223416996006338757536764867362155407172694995088237444121904814591606826240544540178689004155269513468430932252473086263194786984110353133567043012422890950187487429230225030177108718864536085839299013191566796031801679250456706912376232348041708570327280425179548128127238603202123407241225289841525061801350640102698584606194752792024558816787793227861608743303750045092836035932375861161049481841260574442977273103552533994353950629037113036327986145500504750183543761751607935477852952237529799131540025453782987705462962002245325520797102423620142352367070664694724824313718556710252174909294427387068852217130235274643584337301918441692660730435627881459653680274690085103490626441758762146441663601142792803669359298126239722802855710348521337687590338550197322633701068730230980440128203787083430418060584649874386832215354174184878978049844040528386496526926817810786748708838451839175948204801190126152101191851223983595314475402717487064974248192542987606471452909642564895193275832810432723353766355495996408410263465773743113814287354582102758147263578404382666907301182099246676159259013635392652097876387026451075855883948728915536955546966984863209301108449400328484530617858122452272166985300216600698496176930579981612744505408464544724424959165337998712203114342570155849666817379032514902409104631043494980135928939281936449884758330602667074958070261884062804763714766348489103928975173135489353414869015869654981369060276439796003931446427530135907675171132264021370765756069475795896314065427386612029790115262735641828631280605730183527874427108948437250062142241178817975727962349238232678697395119870031351166960838394761946502974062967795709796189889408900314747657683415312832317975269294700079127795644668866966819175985121212376359445010050586893256289874931346733279257866028356290294838334411171828997836755112536054282237992007427641633411889988126263651695562673438167630562698987835110042214845441015100680309140355276182857559071271658058108693101618924341318713875150122014407442827218946926074280103365972261784543732988960981737767711141602238255585236953522313280106133894592566014365654718294166087768033272535631915877256934386184362769701100573486981002256348892439600139049854565062885394653663695030922186423010466101910652239079453931976720188836045953117579876489496134279629544032943808444373362521107064378213865633948966907621680858040223815001570728861820560579507559719467610176765863577898054393278497870246020945272841905612812255075898681879713927390205704988285104018197310347353803379087525511131365932067165854069282123725188642859116982304638438452831062447831289122859188291979131737564627889771986841094875780095626357631400704847150592421841729218059090440652181973120640916921436469189456551935710959438207188861664054128988208790096383927558536586017706598803021404291942223112894034301083782729767522783693343218370150104221388907624778562459328376194186900653401036183376407360964740497486202412016165374635365856487860748171197657742102631872040477992813192476970830690263422340249522837572543410906881144384853205486204536977534129756147487569421183127534660805014533704836947681786568349287673765494991969086012445455345917894004926252786955416930510223289344885955949790921503621988915260861024321779141001325197875760816925239971247451443357154353804147478480107221584560936682335973766631682187006899862799290943614380186017975818961111219599371081968160469353968765535511107921248021947276953282154822988408641588661966423702352133571838740840980095496923690047317899272149513667296866383724021339651465462143572998279126019518946588319320883949297527327963347891684864909464752018603917748135498774175127871239618077004117877373729635061667265923231662062154027831666661349483290059930312075455282543549860924268178237067574490289128439327188927846331536250363060120903722527593948577500141072454255392879665561324751209270623604786312986918209019144337945214678630297586016457605481045597921251637920382866138482594544647893741390328093679121901149408473867041202810835357793860760382192338209970986835760468905246710462436173049925884506430285613434300178036240434695429029535971502782666160652856631872437661410570908910725127530446199288596533366614152945739581094841968420376586442073971229861228214878482080197693906841062661723162514136417184083276248074388610143006496507740341013471260420474776570705879527722440964543153412732048315533793889195922931027233851034908859784483024710099550926012151807267955076826643951247076762883495694492375092029588748551080730580101525332811618575295848188473991836371885237106593411481695727384658095253597171114225618009595827238006752533380602263283991370444940046753225569122874164081501041533929334707695596242487502529645236316113199117316633345157820505387809954282499457969811654204276264349011205995396136563455204858650208187046279726375670786224701117128732595687509160096680695427308725121403607866931508544268147377130021096252658623548427074385119615438538045158999046836826154353548708933451480522322756205410800934750935520593561023223279453911704230514701592253017875864726830374918222697144844605043760282521132505777830490342706046801521575773749345744883150162489413819598158899652130567479878871459496121329844509854592428078297777409987732004515548561102621619159283706206729478390478386849507463671905973529358558315894140061656331800631997332893779407872604043957375261926731947482571185776669739876642731412033345280975742968088954579278080961585310644931858231744274534198408647404249651800040090169901395432766923120429070367554037995901443524943821164653792393597719138578696832900018669205707392238666243438318228004467723714732522509971207604205679224535033736562657415009570713571001977065408970145705514170502401344777845379279523545597238394948111047696586652204945341016867006997250614990718953760280470365829927281091005634571287373780561012515460924612232903477607192872442615867923414003036560209987942027803436191608997426486634536058844940562267022508089997169671900974150129984360254737669087152980479861652384762921937746683084662354639231409027147218461103739668881770883772349462403280609739755689573163891423090362660645337470917591465846888572707255466192498533858165896219464736603644869599189852871307273054299226639317354783541951601169520153565597723400283226277375733212468979857740932323137078633944442692770686743610018321244633238382806077609650270538099002103162094765048241896364134091054085311756499828018016445308229093893541233509503408064918193538473685532809276971811930059228352859903684539522297165257815161574448222587869330050522464593584051820150024956351913435806284715650995493475414902978873305552169651624671433747086694020271118448216255298845193233900765706728744513989975946613440464728361123876403959910858308388774765609133124839211863597025348286665779995441496974116611580555739646656692880389316352635757932142652568930541151717208393101037852512788837156609441135517938979734211470571714089301815590961495606024039932701064204097046358416825458624895328319285152613681518682302953438536148716821548401039627288531369951076687322834682581315256198467438559384775262022942771377028578748506478969429990987523912660788755221372643860931871958326111378114506655313453922324118940975715315537488472868687756156606931742177889519292550223611518748659326507435812186079333057446200395822019827158419485141389982247844586780939159216438988585489816231732791880686869890852757293055043245335410682488047882965708876798114554821053522106170099531373222742063127589189350553742290293342293161232159780402949393807979906895182774773828894923332230454100872633267004193603447357407459978152662554378417365852449711753687926700545385661678179804777745238444477532461390676291966808559551161102289445444889451958131164581124654327920900995133650256048651409910510444150191172132491040655240157493097040969696430688496967595531772332152557411233610928409017059120441685156900379670308799605494932593896366843890371292255752268574241629106381397587506132339893006362086434632184734941544077109996773329365407165582027549347615872058726460866212027937719384174035293475039500042027757677388574609545301466074367438291129658331840904846768093551534916604929485546960572293608295087321384840925294405612354274781129584433731096016137509805128690336271966631114320522698997520979810706382643577470011525191281544737365478206008570159441956133137180240623636738091246114738841813846431739124534059784141075438538458952091140510381473713406519656948018124631343857462632663172874701727120010096883789598932666589245763463943314589640854939338641946605237958290113355477607744715559675258105655663177173077202218717637822815809496324730691949968536918049591707045352342824651076560409412090733621905147345409933868676835982148296320698095790286165883573667284405307154539663892130693998782723746168746743958690220428446485614364857129597134004652595223289301839355863781912570933699291623609390191531773030067206046607777736151574806111619322904272712656572069812551017060016612711942526888189850205544804181060859531012217822394135926632483403407016093108144134988682479998007757375251876956030860813969538106699006232467186365896651829459951688062053458283061531152368505064483275821150605347174205307783757527816055239053622324478286577949614630653227580708661954653749106476271481550592876558682692202596370871070312691708622965089031880505404645891004730062904954058960098064080765265827009479835711259221048659687914898162168583285107866445514242535797530845326163786416513350278498934411521918754090920518610324069467728887216381538475016078609787770839117302731661544609102721879243371186716513291215898420459575912288877522387008642513917328065390646777027641786971767827391306869885157000313487799738461176940132505914549268032258789489287209496228280264202432012990946906670578730267948650363471121379888961730557801865377127151001130222245042941551342379726493859684427058507198007646529713364696974565098962154044951832909888489138957678211039958911432239356452444487400230318103174812970963952643248417238596357578735289131907786127957971529318471584705430566102275550612714747594220973822064330075785875848527889718326214906010718266676456793311521707635979553833418280370771751570855332525554280661377423867656142883996185716154168803961559719362920506278118057703441652215099912548186211863249618893769052547258412857360217907031441006341792193982475144064674664473864839242111900035150863166160401798446437699375152103894071214275479529291872856238615045420959139722773259206873059554442666430825135039008095600640723864147669079847655028295370236194785983501138571331467380295679157956969114826054275900242401680676034131510083781977293330177440811172164509667820294856784027796835825538513119896279163525700982682535862811018199694812028219219588487654406417479584676806985180189923303819080018296924963057427030373068651964915812624824562156152584254950495513760599688807400331369496610387496024341704207943551265012134685437558650396154710901719852628602460660150836745223044130928502023423994109739974216073277452755443773085058498166774036514629474911499529411614539674892160906879456743447919592708552141326587932811634355469320165037158683560944372927584395531512971725344896988578657898911642065263963509436551733701720581822943958644324816138448043199142799620358403483343676827815463936327195257509780869494788342770068555383011119746077241567943007167668195877802477771243424129768690693012337412768751210317913094019841444256607495780316008071698172117789614234710250139333655039628024149194736580356485592765648145925316961967032718872127543560452689871954217322686286003322023418302651952489109873844421590568155803388307512710099200874020426753864525462139824257618602450193498608864605781407843971856395917288715192199928390192020767401466495611387418291588283352350296897728957975939189437737104640032401766550880253423520499926050834251472154131442937067253277513765700382036650225212616580166076610532371250401375134268584525993163951908806860249074386401950372703787010549690767404101250148882683340611895957482136437894426178519220689630821536592554050598026327674530399488014671727947629691398239305369802687988621119281172986158077230282102820141426036296280053298713292817417112477831595867887705779700313248336620596387901471550947165691777996206113330878809165190879890336642888568374882982006153168214294643966994034580746899365045101436488517129666343482652487307144871202053075495289526166712707010519903626353862750719692738796488203937999732974083357691007304612254153806568657130613175760335916289668710693296167126819624144842096641982960656894989383927690427183516261229407043236070419805141691690270711364874308956216761006977515788050554154110469503915220632244534188194524231970172082728379068578282227249949240745470539521075161830122772994864217941931126128395506540090660068023073773870328308269565300009887472297339302101880935852131732076046880291968124583641578749026782184412045882236151795176746316158801606740431574879537698352603849341183877047598586331447270701294538273925253422138800066756336140802832404471265163815486922853543554925996624479324560108539033159029960149573272232924474721488181472173132998857680395684291748969060116692099042057131749062635013848025777868610637652654212982876169149015815414592136133288254835384715997440839980368197061751192810606183536861808984153565063575615632803339455455799507130513425050274116079475155596466342590216391808820577190983301737501299804004731727371483682118805616723688174562929413250987235740028243483263339780512096880004784127993030559267428114705445754208141644154214476544047459468034862930737210819757051703925416104640700493235424845285383079836128339484320173403393680957849919305959832126522004146831855605337788696868954260759552788186943480081398121809541450093962314229156640210545422211334353413750935776200895409128432458525183864474708769075065798833522977839755792965899653019140145411823260392626974807359717674677112711479960374066970976056743670919212513730648184421458241301504683045831403148046642386832604840377899571981403478216751559971418672638358268258670606676777527127691758960910784204804283111938733116202211530611143259377767417561644080391566211500983476211472776091324677674254162353877985962563416327164577350163975987294025398670676212439162431533287559804790688594217796557033043630687290364544061363327832389029666750305441221129965842087699240534007592730027435907493619462345221808989382738236785719258562250211455035720696270390852876208995949106630075494516469626283225983486794880789038584716089783550894801580817066477163129088644572590258208185906941176871562997677878065491448191737531699082787897311425428098735283645692920650883144988815685058451974490738650816173936659001044143371707832124993048094416319407056801891444398978069816048743461447722558107749939005694169670918133000299484061652163930444555585635241631470520304722626162051941769300534329839641656008990197844593297356366578042595124863511444072695608884484087767917691770960303291448745435327272888253529923481803344960873289909824228784932794847702513765393744269825538601693452534970932459615726249946491326530329218206866318495110437233627741278740246999450157552432803263121619576419932371772998088201971875828535553691446869151075187767496193759329578521784736074464579504518088534406788266578093243212500006810841462013433054134144217544029960169926520149735415271834449059281758789514082085178342940817816599966532844029183492264212173932920497325538420360979277539538078798829361320613198074209490862940828325558780015711012734455832916455084636300844163441877408007842341435400651375568083271890934570927915744211369199243636276867523625637616294158951607363368512418966104000717424774592278649364082070926562874402435304556409094794271167922983983089196574899835866187187855214628336716859742168493882795179411144008917413984181836814092684341711449419778126439874931072778301676712960140106808377985745031291505718939735169998331510219404423140323081128537437439281066952006223107243708392142647535174446895339968152349531333515408913602926256390393249507994897341111199232096595580244197423910751376222641869238445282755023960011581955812697035280256680609858105745301662680456420107569722221349230314625531283606823463680302092941779009813477342338994770145320968851370076043590126838814061468356557568331415040148779836428451723940030949580624697669912864059743345446350016426668626636807830864515744656872479398878252575252732154778656196353022651701739916582308412620345453300754527235158246871395506922177625409328897048716191780634665551858286669267005601375074106008803774766836104898267116891076537159448059699573056346373661072347711105328286650100612364855103865309171686829846289878693920536997328173481429439238710094852207428804788126117852855222896214928405239936030992688417272671968199909081278937259300647258011773454340952729873451430543855161226435748602229457954722153851969215160507055228621118687945588021378057893899739274373067716912418203210571367984035818679981774859849623253124942703069827731654598616692498563409137958031937969660707954486192020199849525940124726050940818625427546413691552227398775775944806413335761549834153166792005519203341389944667389332230814440265256405331579064647149259390819782467982397229660503494315836755867820088544467705013419300345032536003681265370700833720299213347924187952212215548861786225506947283482571370294019398544189469365908427017496706788465747492643456402639029465767529609379197266199030939141589586424370751259861320767786612024913131535238578230405094615327920818312759808949469644067882963072189315283290703161823685576032565594952893403773245450110097200036611833190423118333253432670921672849053149215335297316571224004395721991947105203544423951596917442097974782572608751986728307486036718661130516075080806842421914693487416295903542328160205709561925930725895005574108000636348471946610791659547156956461049860642095891309326307804558562122469652308288599138913069008211285441007920400630428769585753946901452707969713552235040639722756036428198932981553177555214592927862715280116146316757789313504208712618119437861833503483078502320253952098834460186461840842306371945760370881694067893375703659265650642729121838230610276302660435679021590509122610892321713017441137647114975929149889950427210985710125874546443862750234629607926777608374845363714143151199037961741351511181513322612840434298543797670433996970697892644187904251522103473697206230623300794146318119285203171339862905951901459387987144000445996970159192676543469031619729206834546947942361471593494291562367172127103193060508564791698753787107999928340765682088031743273633567499064556972779789118837979141546952895911552592130730056478157787722840802281058770260137237298692152915788797523287448567259452221528347813780613004799029152179033920582558238656987172283044933080725103962076585300839268307673812761850156148389954860350345872859590955284326995768244241794791392644532867186516999712707036622522142776742354949443763493034659047161784829996812937348268219837413965277401750387973247491545683694276953904047732923066537229682912176937820799310998769530421357159183635852112577462942366778448923362603147087390128568826937415127737660022734965737716020786468584929507596045864663877343427561511408372355194551668661199630594552795819892199563919297673416082111462938731082501671292967171326383693437268032850819063021464379616480439513064514058738133837958931858987592774127370947582228124471420600462478877159228009756886157063799647487911733542362161805403138601461186487962956525241766683723867009492651335273321170122793588860612541112401511465532450937333598414785772571612285211732664443489661618424704902262454756057433327934005154678731797763761534707526190200108102172153011990278233314875004412000030180982083730609918076347216113256158999753502814570946402433779457930558019649423935006386908847886405755012293576229826789112046612132489129467714015173345952329923232511923416132575653980039814653279207213284461449696521998388368799687113524365399582647584608371798974717844701129068844440250973840950063258707912398099767854079653025963685278912009880058395213092479290521766216945497742903252986237030092928680513188873416179893613581051153216914929916590216505859163193862419677957157442652787681833837215118622501936322898212301230113018422722891215434881219678471893918920633346856066671946061915343253511255510159516905703676717325376051664786654296664605526251741176731676258018994305768987515279111273580199029658621102235474071031795064531908857235542137047692326371058150005509457672307793384215854631995042477677353608255776520820408147768038258295480071750620474876587120354501941952659897182505284798223004262852695680387945742072660484251734909980381587536127081769616335897479550953166524695290424952359979805432648600479665721884242097280851674101008165887231871381999980374363850221025066704820278380603280132606383677233688464163347663833491023118176431636282255346222849601409787690756906464129388787630487142048755021018563648301132875504849586696769373736927655209832131484996552192905815557841838817924911951250331309408555958565302733971487381975902109663589326061944594685857661257679144551520930564312899113659012161584359787227846197563895287385393362255273280862938255649592895376741924308032856228372953519495550939591254350004489262291853083779262199124745746794763355500856269906591993518136710226079433290399777009033177622535557596025291482998944818893275813897607983720804159809279235584917517395354747646791676129133267057882120294182622536428389273959063017349900496008875280864516217671145341633103112675949897781275394241846200416442108812506843679091146799947167598550230983561171657386532159259975756994358668970633724446625463201453112034458872886699026219668478845050005622481969742617736081830743216724274894151047702027735112541651877741199456329704571567839139530774061632912747693748603898184515714730015707077973265633367342031679535118725641624361028381023047260967933007554196660708648718318392792779305898745985196990955843588453290067282543046062380793999105736993725915072639227938451510582477958858698353974374265826550676745773336756399875686970611897464081011391864826657069304489680851693988406915521100913669892921507836139569111807452864552674487463675590064873016144959793083397002393836204818157480976107713011766216637205694207633210209504455596604197806658330100363306014332652997049403119833413256345778302279333589551501749076259874713642895679313693827359120951816701566561427618286639604882265268504462387387683155709769988602251072958838680322290099343727622832992420561641055546879144329669148065811000617987750338520505867990468770486783577177764581986690881133785827487472469738833693509868723673282406488121358063544517126797021108839790038894195447859646395443202237676622335128674832729228926561307756689642818097530257761952496752004416304016989311401229890910481579859283626871700050744569419180550071858204787631342500144607821907283262271140128659772803582133033641356754661412151162272914952541497937914643155610822684204026157947062932701483436963579146278429316963395154194512191381741198122421815623894810541211469506159769966603740799238421053382796306113275410503269491315936801256757701613950532144094533118610959510356875871429879614946748799936321242929426026884114879598351467178943302530253916326974866872750919122145901650378028119673314903713200736556452978879793152392420379231058207275298367606028893279510327044170677341749463028489140797861700984920670954456493116347885546733777165362495284825628558589900902030972999364025956230966639170682395161770808043775844716510635647376752377049676998352215183357501913598810756634461724471326237418778071658163009192014225072506459602061953010264731010115159037246256666134381815707402746279307477124519168868730604787398077716729283198972939370670685626026560721025659677660568447312667757597859238029913061415512959692874702137070798484512054705075604900061314751396022743701822730139160132788511003609299763015301754993138250121267805263556664952798564544234710444804481992065109811144909441916116057690637279345960603979968845987364475345794678780097684940442648120420346016675461746866462110001022044383049812342245992872667772555652323779447687324960596980112868117300997879978668126880989276198212156186937841407164408124562622296026147729866160084138387707281943445451520899195572523322629323339810269883272602288600921604935773574808099613452305936991354302780849167824417459619975211020967562393314668803190714716488134880870777454741851613045135346755154678974800464995221962173001972311225565288513620994286530922898404802286898976065731036801459428004618569194407230934034294188943867050407944417989842972119108776941049467156028258099811955719654756330324311216713669175224787563844299087611320800232898217298926424513992109045362278756366885134165001678120681117391539402398621999456333427939385630854094943809187795592792299462364032255131820220136902993820421841307680134370119123116474399773473641284196180439104898987258809565818749566470505303886782781542393969710595979254727777219472742914275078736115177472530099156975016665677905202601557735012709587396353590397575097904194085734736920054936188644836950333397913094477299050591947922773805099759247139994706432404209508967272971606944860871353162164711259994164386047209566406756323804777400149922503777082284139117008893450381975197414640281641855081216695787827761523628462605745002015440542490548692291543191457145113813082450007772640174875984575204760548440000202269851971411101813438196021361475789645106607909451868535250527583931593674796260250456933421577036680483560994891517460719029813951260387361990382419818562493500616431103424937503758474535775254189242443769880488298719580700446248068221014967948832064726384051351018567977003186173210265472102960543159393907651827450217959757133189230554866995059708980237510327533373720187586648473373956689032067951560667802682113591881542411616830298529217709829858074937413477532287296279022238740601762827207340288923268074461852699713339852765465666276900068170619925430089979840544447244718985382481730549805447006180489420215562222247742833615593394778153971945323264446255322909788370298256723292892698470339996038669063432263290046301654706345324337630597112764959081539899288035602790664405969387160826564535689454237223180447408714216725083800262972017708599702454787800917525789911770147867186014185651362182155056138824707792496634282298513881053157319556600992866447221922771110507963000851635904067087933936110608924761995544257943951287354791201638285992569235546597561793986851321373445595551129232944731324788662228622729756122318390959452333754918190874524600851204839528264562337447910638486876007369482883334327227942231259977802170264258026043826220319233913905732997421601561378969592377760732081825368453600090777393146114158016844153281403444736676640745836205389323001553045725748551564172653635323078016728822056795429773891330923020687950788678282863803262835454664711268391072252291113280360601505279818460863401810692642455505231239726256965199062533801052172419316826483828304566073469144643229902428277245346639015800597885179198342017561823632514084151683725550140673934051741885113505636281708152694580425330861909555310639489865072502976724337887635974976484015528536763795601221384817051015947943084498765800839315847988221468392684081871443652107717966860404697317150105314154558241518023128157013327486391285443954952983195196386657299669962751290154397525460565224116513168240797468916839562894191384463119590050740713471923288311924655993916214703443347678801172163336829107459298274177750761568335509490749370913336479883350917811104235929733005256052555035160100067845426135841733197203423684590648466875100037012482031674535463958827708613618215476574985974411035095806187666105360584446910531318946075136270753220894960317615308485015179260052528963841197276830049416797452336104791945109083667802154161261818049373852191546983147856811371450391259837418722265991199767618007422580407393969060533477729791265642389839894550483629323576159369073044754753146296374175535775846066506063469258764373583342997461380374930510749929813603271586376432606146265537646622577343312075855755789118868081858327719788478784455207477644694842046426058696161832458332798195135098775933412847959943636646629139261317274924731673837060761605275769406990481045572699260375979751299190172062073181487435910837363816766373776272347513641143916296199108322714786363455913338139020853700116553700041155890395806617176173523596085870824522220730429931078220483786204134943081162476820596063880609504121934948760147806315808372608236485862096976605348018798332599243424440716083126218251029045642294457545162300819993356920040265333199922860500530177586206111190256996643322878621241549980920496149928077603545231859612506950447660425177246279457127550327150715385738237661252640384524605058088765277954092158228866068465703364757263964414871260815569001029840395254436868755363957780252127976798944625634301445188898766979680916191826437939584435075851986196491585174597536592003038028623578006060260453717981220564812333608208363530688323442413674124904504270576317453697337384964881879513358634802769643360025266684848488544794554598539735668158159138230025739565121286048795551812450727527816437303641353678778866440997516701573410074952965774491859852589270936812310538970651765902665274894796390105485512137527090881997260896672748150963243705315299668477307290490164401628415690119364368598054223138289998072127697241089501211304696889416295851746700663955537264607542293499386327296924840978993900890358188827698922142815271353321523757012280378534632698559251620335545662281093062004838206232026042962586155395764763514717050353913420444551765376338405722501275906101926142470865700675419613121675519836947011870479904986635877119080518439211474903299898091101002607963280166246165110102443285411522403974432565261243420141973073269640081253488760172173647072829614802110290275060986082022714734650375989406846450799471026664709285305774702076827581845606961791015108071459608784160187720531634837440029888371857348431869631213398724797009300608723363919426917284392385332214501328156201812548025803175136598371000129048141312594480799078467864296494946059432696582257006758068842277662655707801919185969922485114202767947081767265563936827659919519363651486521914397365661999037732218738805980157331170480234533145089707558246112752077902687273505185532607519476099548491582313676867957557284558848587762776806106755235637817893140172588236031038047255779514382574700793518220050636579713902648639546335769648764619464776827396871540751497397211644324362817401116232445711286601695616998175110426913068267389140839632726692054483548213465443584631072363475679673642774091996820645827924125846120485142109494613793156810199922066126741554199221144511494359485314633071387397582652677605409869698920584675349816722083129142944808964506494953963734821492535295367934367691614606437042589544998652157552083984249033852167436755214137547279410777862738478343356776683619511217208857886670917564444029287118395144519535548741590215850522430579051527917820065567130592166347175946159268309960118803369937858682077682250650271758693796941424959665204166466891308951487736762777873957525015652633368185899541135407522803251062531674085973745032909998698967722439417084645298177107031975460513297495933889674735380038892812726567103486255250898515181330102804180711521571389574786759707795528250229964411982140541435899035340744648336195023641533593670367100656466975133346323397575084785790061802531877852926894464906911849977899621723917939875332256766568807591776205774789860072081545377487041315209213744565173294023410472296834357154105841312740149216455739163712278793696046379411701154993358413900598321359784374724872698836331772486580293698255781388729234774911528492545069773022108172149029253887555866507718677395014894198741416716675720011100184917001641900336665345245160954936982448243572687705239414419553953445204414157377724295465632718271394899980964665000484626739320996721446466072753013089546398087250302135206564786354070050404770402596047236862190193187823006942534527392573703143069255360188991484007309856109308341087635850249313167079621737284841714445351398926830225775352970655462096769568873966162316699967812863469285087451747684058960704383742404090800668727169323947584364546000969834224484863601375159292638283855997361009930541394814271197887045937205173152490800542514677542666248228444788279825387940105754631841015683014665251210142433587485483657618293385021449848393928889163426886516675408810108020662834866928631004190062987324403725114762888187428227333114173310310294257321163771630090498255841028497386041161949333410295883055053437049793597436619413368579139035107006160265021372053213479518774274318678951504150784517644114242291745258645085620029188766831006969667645810958245678664757480253132795344380260160040038730671070600293564917682084275949991575121714942939427242041550892056828037655504114068825792897672351672948172738828447496003527671784954447392977888727349089878851257297259619459807566984945645949516457448852738682464131055645095816905446717409938826634002532731194310973217344011107023522901838509787648873224623753819260951509657584189066510043805611238453629395722486343545733951171609642848333704984434894851999003989468952533605202932280447391245223929090184053637730336600060725667250008112785423704369495151898794870583905046038404001127151192888816035130971589788714566032550225342382081919758119181925459366638890780563858715160634429104482964144685430564249781948054324573196558685162822421933048886262201006208544904674964973921643216514042596443618157044399699792321465404981409106919002223471970551527588288991533287229063939757146873390327395033956601653660258645644983610150267463206491537456507164736076605860344618120576547487638524606807087054159907569927270047368122132379572286646866412857574213303942265019297986279957560663129327527711892924413903487934451164368119781305971189972651088231614611499159743512601620046286383342181917370642427538153536962440438213229371397169123389142939780638959092773838102864168578780705672380396904943778878158380886245830203146679219360800512440629694627615532415597924304870865715659358363433965299357583846307388779691980419524510064056811642485354972152499301064804817473052486501016405110133373180547876818776993793594924271133541652548957061901631327744152606409211921939375956573150549259340272256033937710761776194653314455919232510141631179055845892167984427829107540899303804553120428634673641688342439707211214227594983130509298065205213195248775409394416862758540391683489029010986533133385791999850603082861553200920608800773930343843253099177521275025170491300528106533361290287878939333001779994181662275367132175827446752513004751025991292000203977149611906231688585327579410943439528349067766764700542967786683362881572351840269712844334360806759120019261358854663851919250865216812075084923056956728055432926936886955803112153662532412330588843223430652898076080239341323145909810208885047572726325961130338487503146181544793881168194299165830877483801318809382512694324985780170410284311546841587251948642681001356178472680063840199705263574510846939587525565491640452158678750988242558028470088591224082382229869524754773865391044292829301057149466566097807721455933630394524169463886630253210372384979691302826620860557909051635649325735279635008479170450689727140540827269282246871226992524770227437940389115984415695401429007698837885537626728394175646020366012710526038368832365057670070093734261276613256224662858379054616917619836628244893843365239016282346919306903911894812232832445988579925842287135993411003217938278334471182974171024336888695392502526595974459443727875458726980286305112043292316436950523368449391999668387437735499643753629887261723232196223969710908243457285474608643690373282525193439598401979374047142584856530335764517644514660436706882653807167042204989097213975372538517033673174046028900985316087423813687818577156798489983531665666414865264051162944277057912290844295294041632204878148628169260394759476604574083116763444105288034752881325471058159568642403763030172174575770994062249932485831760268297328280737947739681017489603027130506255681004592687259125294147765432364083052407586803803737979286861800225506641378821424784278084240035017869993341737618673096180969108365380905918152638187906374520464285217908755338858779416546813214014323986054293564141023322847593775687751955777737494610889912893790235337973939887510304165609226590903956324368536033674956733011208384731096291095165443457913716961023944156526723388659798317407276186486381422177264809981925160136306025960398919160821097733728009124455416555457589018004791366602219428624466792622711976867479442647260269818769742243609824218528928296249878176268603531165121848673571839139908183212270228437278225326463505230538101290812223603247996062133933420703602142598347185046753976194323443152292503022225744699366839379726727602146067005134627921082176350492063653786274877173299334138589334822865479999626613496237313813300315599397253376608068376952238707231090235846959992091816543446054496104996572476543214354237976296681870369516710923338208329737100898467839102290179616242546067740742049544763274144693406513459329963746208929688578053008688368806466159334988230522012889995955995031537593615701468010847645992292984345422417520868441564016758104755968523413368220645320241058623676277066526304372412228046823239138069025895077916559247388752717855276556035980995707487604009826515984725816417623534008035641301227743690219636700386981581836132308314785134850000203691887879945606230880145158801515322017729734986825032333774200314761805382970985652358354549545669289808056781863052597772554277991950679225448125894253561912787650263562102540955094943178455254142254782599458337263308880110428580677341476401155276883616910021734925600904557763118389314847500259628594606182105828860415631613468463570491173722988771535314527781430612838063775225757302936416794574970889287108038848647524740050342673367956584260775132097916199324277857769386514801363435328562596850047293832474007910220347454064517013583043033178233635463855277195266257171201929855194656714287391704423269697743742821296333288405355398809964639675940522128442057606132635380414891851045132078691830930826757212509844171424828627774452125301118009910327632151726024952433806502794995606893975227165000634946339085981426963435893613749630238605130393052370765290502862060404435436982778321461971952662244816301752863493784092689819557377468788124750173899536776540255798846641884549489081086129072963412693850025157336345279012376837080069098311111195330183985467447319572597161446919015377420112709801562862010077181560188412624100718654633551825510776925871510980257411099489559131108607574972900074161973559226990527487396291817042076074729303544819494586048261174587290352006948532896918777600570070561405608448121654554282927175337580848346486990580372067501372401213007944109079044513789978710331851145723022522593651023481332785047362343892276408275155191526087955081253494561525383642168349034038257115441146651363855759726817354220980476911852801492886053668052291204388783951152259678861445834924958728472361128252414708375237336692562018061994140156379615139425299637860775569423473376955438226541430424551884110237518337705165341444914992719564007322025099711592184411002260546957724008419146495332224995469767741846023150090340414227519075742877217167882810488893274751517414436894755540016723685743135565455338156926880658203035863357303850220689549593631876257831788828412848658425033911933725120954991793823244183489925484829099748484707401059332954232281278680582172390019473651019908305227347622530254658913862604693757126534807390550691273733510831068847846904458832410648085308036352204459624966928130209575608676226319282577047415034099588412007718726769455053698182137706094096179198795093677390996963426806273681990737593022330942883657908770663407264930773537914184831270865406401939746141835368370419293487903835200634694522403896313539186866384621686390024202870431200224922846252425750481958598435210258709436918249298016698795374899524527981762166633787377456945085482378454507352031329805745253904293674846653272847134985490021290765601243859391039721405761869544142165526412077650984858894892126671451138227020715506870212924919794250067897716601305232703187768750752752370109642155765786477112576454040760995799699625404982718758281707036352790819604024080992397013144933129205296693753885568359841004770313760418229318277064498450773949143323186916468736366739897436528202353470786078610314349057777251046727389315087604175057909198668494359445242010587286566286316217514643412984022975491151744024179522129585488837544088574629158996834546377505095198821456099868191210750724115820118005782703082029719107318395011691281657807732307995707031021754773864517063061350921128737302163846885576418899990284354053971441185563614544150196323878039240208657144739498167477532756048066113955289245927786489540463399713348729284522718212907891961754121955774672368818560883300644637374826852892703492904770296251401806402227624432624840903342955559290493203128513191029602285771918705973475942582451592352646063940403389976489910232232740141839871494339551257732611980660435417042239399874961369675815728953707762075829877268176818372142494761886955275278154804920565364304766888777431601322545423013756855118917686717089627841526867526955620351550908170064379539066816220332574913117148902670576067619301388641036402611044275456178958288470771555935558433614514768578283461255321726957186137363256132140172122530032918084068763710635369855004427949636448855774689469193855891559870166009505828583729956813625248669223455825612806432119064354770496625908045124252130596492660325168938976168252371530331633059040582575764530633292863645214536832508384066068455620264688952884399047027398808429349431784331301680754157618595945318762244834873323352475519161451869812950530130002400566533074732159871121164066390823456642338207689502184502946808052981219145698871012900887503892187935389190359551408925606552917977108986317472070984613880471448010976818443223879490908993022120692804664048356499404308902612426487622927846050958274707165589832569834446770082772263907543544905636509059264900571596526256525842100748567329588743711809823788184437046534516652054017466456719583055015775196313503494099713490091650126441250546663761789097904369960696003234779438763827490132321498831505956173607731757587274785205260243040001490788726719590751783769676523302225665328836606121845335709036515501695609996138163925340601389733001268477673163143541692717441456807812272026831581850416635866642844520451239649394433510882608300202634129338828216272476346107111454631615083740909291836985837846386765628364083880475225523981184789439980756262348704502450161773599313945175688505419552765798993376646495026740881559965168005545230932741330254849057266301749379231966875583213527183404359876164727808563036018211481458778113802640419171040955919162971241717544989733114982347889910844287074149676239747413141959137903603283718596109879127426608059806387556599417266235323513469759057432367028511606699472001241937763866245896309045688100990297276067488042118246453387736118382657667116368609385292339182744811468053076123742879358433389444330944344655376307833316755586830386947994077732596525782527671205678132438415247818358862211947043716802995323964266380295008127557369123920499563908810886995326998003274328880561730014188852587746720020340634484042332744693585109692096731936078466522157907045729577893533058181224805487944825748274691731911803947379306288331844759649799595790482739026792475157459273133947034874375603928935814711679063411400319288260620166386358139126115968090843058566813354350096845639712177783934801561258471207613826924075435860286386699042240476886836683168143949318662653263534106471877707130716465948314317748593683865454878071696761810051229529481994802516203129955214350722785331979599502012399466138453922745903843917195501502528104055779347274585295791855152569938154678621625346778759572935968174844357814009705718956749394983261090226919625667555422488900829173024871482190799889025252169014328614944454560148628002686463134032853737472784428998182916548425479479512210587499972244306506455669255296360557893400708382568134732139304343726359503539556261729036430979302804576558681046594474099748231022950096427442765815265422988525631007511924868183915810221205627463343511722328551400400342439437326981178148765010879268060693164695584924021007056673559112632666072639876777782164387100627326880127700733608966145743790513574732159492218339775497638930991781941536280240280888135516614355397008240402620603692712938598869412254990247802731039842182101064272257683225723132260109293583792930667045842875083205192002167444537240540091238768783047581231056828265678777038016007563203436389692121522184197023531657986148149009787559060723927123836731330791384218259213479378287784811052727800952953647095611197832775361648603163869514678375293827999751355422423314397275616604034775841643245017927425589689049581276247731792356668814048382223452010850263964081375057300059861731136759615754409110007058192927568501173678744343184409857717906357344067243037533098157411376285940727385449230447971034516092693734638549336366261403836735938591859544903065242175562819482946714374691159090864893543891911171262234812270873903984688952998762206356604219352127813398183062522323449012956532730062098730557549156181256561897912551647027948201479273343587154003501587392028604359461701922092128810285760796206636594712649694694604341124931836395226133716357392256724679629841470371486760431498546214169234308548718548309057795277710879010396543319855738443108825625176183848200527194862173290786479501108640790713953492578927732876445542158852270365420216236713100104762978400993525028896672167799823528273651104004945513518761475578376723118990412159889927287591363559364680213787332810948243754612380640748958525410940906450353817424996616349765655682305611627859125511804161603123919288099832685281634311444014593393342571863977420248091247020032059496601318788141692375813512485518258993509653646594340635941873642288106676800578243876241368670982873531486127805701041837232184742782700763600090273260574921935359285444388309432314523366147199961948730887568883395721598921660346123462569207372513634300625655583652713780376550234074888357362462376379834127542050009272149016665045477284646745772472676890766699684742613178922568359226840741540079213960033994016487170460424667767945530298445236158936783975361899691312768191123049760492404669798396120804592122411054044011935410830874703438040915178341259316747061595181781229377051597962735304421499291382253578429686084036160868963955902279908166520076228375003722878527543914678480870625575873247153761647258426044378244406973095886703695159124231553477339987212007665572235103408983918662839029689613719907018913957678775188960797961283246505491689480500008060256758773312444506170201551356677715971475732879788049385413146390835281651408445298681819065707251098434624272929858158361820919289454280758733588411790862044509625859469559638870260671135615119525367709123596160841732354029790635821337057200963157274682662344525696036645111455744230525764873907809140347533942977818758955074557937795142983464071689444692865141993531759695090118444066520223835256448290396077038832805794330475572831172811165859040141081422284171266727195223238455441672270943249366880771346337862940853603680702233321345147651007490403717345173456602195696092131874047407379010347504613821861589299840917675757420023996545854291714445503930007296216635874081808537153082125653974521584969993919720151423689790576742385395652461635180812109775739385496841842545825928801059566675052496869265115733940936797220068962162702753365399660654478347902098415568491112824296390996262505845712781387817531740565068563357940833496533139364166846154365269127655835249564417159077901091579194141222433092005711238804479246086516945208937861016485351534594000734381177799762117956332999274307166939067773715298002060427634362829087339046443730350685886426870811535327582487765817045109172700254714494812905858757544155472976480294846806019629764790990260923188226688582624294498687749427456002034465520469527797695576224358162945580686308444473338309942726033995558196726854269529336108721437189866514979358270396353127850345603894958869804609172891718002379344859739686366609220366874502048786515763280205608244056015997912811353233149955700995909102535481557747640407492770954771224959048931856384555909842306079073071975125701371782175552407157396143952712761211172748885181096695052225597380892011081911346496716509148041311272172422160835871351741600093259868455690484026480938300132346235942902029535964625527507959095432151553463576160662329049149822356030380831874404047139869715140872594117387706861759663653370094507451652947793127635049146220145314905961633368883647025484750293016645437529633320888396110130968084266436108706241695287440553501348323735690012083037817879703747118206659712456978381816246649549657683370026010184549265406960631108422251101980076516012607696990950964196556121151905010496312348298549350274359815871238611439912057517732370545829894678972521863418783438110909454130431975959952887465773830636967528095267798109836342565145489832721870581180812785680114594088925239894916732261158490030523576511145547174682311657891300871817183398380328804677176072572450140740102701912151747737060183935788393446503966584223339743895951182535177708150387523309825305229741500304434256070402509539463198547706606419838547974607842078081681425877959088999757619519914691766948100111073458505180101792148667338758677873252749308968650012095463023515326946989615527282957753907326515019159523800334427130039877124980233587969215381463607788684030133961491176146494953946970726943852499842491867026126418626996326177894953635476354665709859527810115771239734681551180424989296969692861988124598138383301583164820154186527786983872202938083040641152420299768613428935905683857788049289701116112619656851996095102453717348150978488058840125702826737448948570604348343147908326090181824237563500625303738187406468269539467637667939109140626565077653200936576980941400695307201033793022923264321607326261601650901814526596424266211425194581036991990148410748673948481391094016648974073577404305835507256306779425346632964581882317920739199655322285847072043795470178854577291772446200328918774962589074716917422360268577463638712068098691028577254239704696208398588470123024323638004829549970860878489724513625236284621948155130883726868251109975967044197479953620328570914898735107547646506569141096819198896379364144374759452364511860330008795974826062272755544969953097812285592627817026648294480664610341056280757990216103820074989272666591649791036076190393587464240528054103400931846777433168381134705598371466700207122349589753179020874359897293139197649505937990022122563131910870144337282590227935591928015015164939022790028542446662732013076589745698402866484294355825399051291542366696424578957838104070161680876551039616928031432157704993513394494607248239089655384576647431393603700693068955112762763627579005728454415959956219249969741013696628853280236805798111986041586190487684447443541046186883681765406679455087020851678826533350164064319817452349896168332171056053736578516079316717326540872011329640889729878694211237567145036483250068104063155646480517944009874277942664016292044267738765203801154847444244710855478132429210950019904130111552143921984464762735711212182506113902190000153620965355002207158983551897282313125530108752213575997217767578123658668081557217243687615396406951850804131736562953458346205766203363786617313328842343474669332250862118664802060458717631342384584224303606578781334157005915083048912641669718854271441009054892109972849778991069934755080116085804049941729492950478149068851171843861027901022928676296558595289928716353116406629474163095886848561582738964310113380583047502792548994946939764166554842951343190156390384502259021523917677046933186435302689809586531838354356285700847427454158044014050009404385020291888458645153732698658716013944882202509942572817241224632585298700106304337539972054576195957913367522112128066355931246506293310701580672988657247192716055807121395498900529509005351479433568488167591165663559957211483537927660096161637246080531466228759394691176156817846163159744919801200411944757807503473428679810858968159874278162023023849565243757245111666351234208425649269301662214429905631871517531597275362818678048912305055819737313397691243573914400262882928601327912027912384041427998203205389926898181120590101816677814753718701423842993195169253129173001172968542670495575560242278328980682988117797855317916813754564261387829285933493885541538532211748240026934412983850954364232829532951762663992928595021137176512994289440130824865578349282459258799848829333822550983430751432976495713993195472144431782182166258985921815351049163692111768221304637303489995675581336163873313631312880030113136946201592481932735905772006390445080300635438252336861125115534376085552611581268197150114310291341877505028694984106947369941761470869104392136513400320930932254198074071616279797129953372278566533363183395455010656164043207002813010967038453704545104380208469743236409264155949275572032036957237465673871112614784840558393865261601659587826337043685486299984322276678962345173769820775608115107606108890527128548339014613552982383870217105724219255436390976000056553783739154762021950769852125346514926174643445156434475084974077537165664216685450965202618362659261400202432505778107717509568116512457407340284693129338464065823479244719050529639550298879745308455802800987519388929758756860956651927967882780431285827669673795167582316361782576232319492086983218594976105439991429578324833726618531359487857513173716074075558902210278293825824112215245837180840180770420575552172661685020437429454070155785598638718881181296168928941728199315912686906444602543675699745685327454350726451253680320394839117753448954109520512856621431366679275169171028370845326105860466310566136713476801667286017577228558463258878310799411220650125871928912180163642120036482250826240736409825905193464729428326205721413294089142397033546755448786217480743399007449770294523546990833093628673414846373918955123714684134673920705741760337303284709674182486726238368957794122820620933119912965310382864347422867203659458842039713706211348222849134168862911523969423677163860638185273436538477515391903683268197646433281994406901838165915305937870644302478270331788493253001319648228817654831794980224501221065362912754349465999493817286134486219388925443960401758334516593877459589803234624706820726314892641848814410278494131104322359799563009675700357095140681179998210563215077072972221500699556929629195781389426648070303030217262165331464311050412671807688553335796705480602839060018238698013772331572828851075091189954966315004414255348898563334193608345613449458572064540204870214952953868105858934540992775721799594295477715562709825351152456573680832356476178661958665990424886361653465228941694382930685065668984919351846163547893375790501245708095380023189365145357038430476059290559736891088922040118748008650555846006992286137102347430683751405280919323372901304266501634263244890444472360462640300144580306318625864560286674045957054826930058449692471583003470635605518516967824805512193204370376650918187717540921768082783918479306565890342076615229247822293608515472795984840471933706140360539834986700690685360059473577545689527108332248563102358311679260795998504032282641013663871522200327739230977531457906466891777104456923934055443595585393361986237800406919314632247257093019014507119225999710954408139755192096130242488033916140822577137651704308969310927269874909724193565170281370012921636699285708776337463006070777772918088091511845152631270752775740674964096598310288959343781422592781702305251345686267073416294347066539895070456583533476293619437434330332981336398340913155964255832003051139168364408218640104840024243724436179642316797887418830486109359041142839814360620721882180811650955618548798349958076283329258402101306003062546412362762122118242607729141006717455334570980937097111786377821672551935431736667912468016644537745066104959174626420490302175580908563324170637635417628176036771606902026683792060415492701763540182990060482084753390750403235473666179988290582725507792828221883971161638163840779414907442854990095996642408172094270285726730417179278522057285684382438381965050172149367864979485013883727036385815627885115492220943069561507508968661180373403175891349341401049146073393452534481185579664265848123841791606044927105728559393670621140363794585443797541567893626459673654701915812377258385370894546076521838687533048699085278221509712685223491687817830113394073606289975241375824664359373419710719718705662922180966015161932302986130243629441949396723524714240099251192392665250534797736466284050869933319353540000543105963732494076029288082282058080980726689616848913624039130381525281830422832625885889367167067515834458242914587814007337354650087259450607730559826417677078496356053656291564082080159826153824481873422916484771744778630131118592978974086996085547024305852539351438767395270034733567256961933090505704896163486879983944651343219254282061478186043449738180718699063546810007380534810617758902891031953639219865395901128605466635537522710474336466582886578968295984034498135324544129655551870317291248985764293714332659160925590789607703557923785431291550501451114195421017331506731712622361837787582797235054461201533883673137258976475562335125310860561216670384007865072948147788045163523063322764094075568753313589156540783296523639987572986061568775107687285469984590432578410099826624209368858752374544855240211034210872057105903159900537726861015666956231495380292574352617788086551213011157365866720962101210307351521660204799779943544070358758535114513570489085567469461775468475132389937250039604780541613979918688437284858969410477554823479762893319643033514538551920903972645663174635517041161787752526856397775180001533296280428530227613172785807235439754196214455470988703524433581156346130000411936721960196467763213148359596235618727697247607620200508801739128330401899573386437831593680510279151054316561129234676577785651080182489202538179037740815682488131568373809577863998524602589423143495268045449421039111209622532957973070796961761149223875967670841653825338511958033882023707902067597588007128436820949191442019491666819907220487567795139595562552409059231286422726493660309691469289164718109527458785240192478581462679120908202017168985038151273323511672974059935325821926681598874844441519449012697788723484134012886872469281210780841834950601050319511689179011799965586759450450172646901477011223478677708055037659053506525175711996482606596569290547475412399484727447939233836665730744053039489119672008356855128304195553344183276327441549739831167375243134219668175691153983265071215400753749107528799012127728257647614746063516542885837160091118069008830901546174900583611770393460302624623334190426671878269331780537864615099083461516047974401520886388729835625048685819916783521834460417861953278377204666428008084509877728244784561310173755186598667582801496543271974060469012968286633237857307904588326208688372674511019590219639627286455360639372101484145230960500926525278315401034581023804033040815853671347723851173246802232006487048110188038982759064701216125039846737821525604661639864054080855808634465279675311131518887790797821002159034195328840847152975903282741999846717555142394697097761664247156894764166702974215267655770753557704414467063466150081301520273367818950671209408166030468792691899011632069937475062034759557059744405525893236610639673000722993579476024894188300338163845436777510816076894123137963902648520673511870789187456280921875189803398331049061944635044308858196735179950365002741554543624664493390977716223626384473584733944145966486868840567869326701094652073880478675008188373860072955998223472686296791355604395361554105139678597536413879374164528000697174922267162063808773986510216302677580463676494518427928276030927534435338985896839790388156504903899273443037464946068874793763891009551943315257954017398609942864510030458530503887773192709251480395578033941341467809811883357109514730266605781520598856110948218734567755145867179678088233510012639661898082912255622866027807011483038851120659155746355095196023107462901156318551837301900802948554802683808054507624774625502028219063525780714062133994282762291986903417548182901243577836011425754813488771209647181499197137329762649569448227230441201445125949849131157481509124821943695492741284406027484806994146805701406903388795847741363619277718429078065525500860076004975205207202673106426809669651701290776174676920820168213231123435546178968585927068672083290469326029726774118216799071181375015606745943359904144335879708503904741495737513787815849790288466568815842584225533990275889524609111922912429285010542856881214528648170554116255283662227080251318055810721291096601065608329788002908425092974681782870236738812868745522445934056064526870050961300007453013536365405446898940181367961860933819796805599441311901726336963374628309373404617479773647403288490871340890961865072320907336768221586044999491867451852943575294191399932641167382724702002488512549685471804138448607387458239943460176294818534058181712408833210966082398795299037923237995771865955316495754859897884768282429820127606024400401910102817043872049049911818703222664754960769193622916786607710100681817790808279190805890300506280909397085877761048311184345659181054486358824104831912957662358820338231256037433878624747705959467091083701988629774049059128898132106560159681839636730796409021382863967785000743230503306938760504445415772539062050609530934538237115558611611013256969384622608738072837392007948623682768543866797210938044273877393919954246321764343017008483609677110915590380974033646668465682596633202271421946221972247930277743952825613274933810237345276175762588424949862166712622905279495769860201610367205824453372622852658802288622022765772052949150124362862715560011438477549255497411210623497957411438048025168927565497668306042786868990809525025422531853147399007851172597921024117302804413716379705032991043320860334364473889750458161620296282605950189647441140279002765782451410820168091475043119142129208854473819892791362124320850788959619056156114843113518645886118538167953624530280498727883018849200964441970249502063152801078616656216129411923435750990266400828522103127094645780550013240207280665359672089859770333379402995663533416988805602752154032209577905061109365187134101596440592757186758271510870692097539936874001798503254829900832077274272739653225889248294583986139424508510822524625291553887303287386021587852635957795203143864321694404655608046048138121453176221824409345968002930296148120727814593048780409891089193399749875439384783734515890919711923482736773985714822469856498793591403779369280974000693404038193367244214191615695544090591787245796435887811916113542389744838343725203347118284388961410814611769798947205805641526556581971169047746466245596771402930207853864523652905706776116989590000301755916245999404924115856889713880169722274094509051898262361612252291173248201744589805114628411022302162898522339329130262935445234677476459733414325372529779243605911190402078702980674541792063645510584670126946500632404080406282375859980195371172839193998081443442405463006997778830341593569734972598176263298788048962816597212145195072548357678655164033630320605188701029040358238540645010547165723475279554026889427317765814825581954504412653660897579099641887460942960267184505917116204640932053899692445672148961254547921004522413010336941775671090778192831526364956564290283924778064362755509228542594933125821654619015192295124542657143105276474900131343989599293472587815904495095932404407533333167448040914403176619244370518972771460561453805115140662696805186792456107737452311380985287940666482409166358153299591096147080021362252116057568704249339584265167900319510223872571634796735010494656497695667395599367620140077286773677030117365128316210326005970494512038355709066624076743900400900455863731329833849926606218065558809224306647213309823239477987390125105498690624837833623636007437627094141549771538007304378221375335877891559174456408819442686505375347068962832378095912399489812860950751312439558039818626660460299399628919303854310157459603410402334121572363161372221001973765220420701388562396099389085735683399802568849822030656303907555994225437118998659399679342049737667631951346588827566460297350061410033972002297820297650224535768511029640058910105846488296645724973566828674360441654661288497902364194670598563800895209181977865948092910901899637792496021551435364990496691227445121181026991631880083134278619785390504217336280460878224873042924167717644963565830767731639960448233096791138956511042519375129138023663582344544503878448092116841421981110404721296846826478392816126257374755871531294186239176706351967626612842792592887597416025303752191979856155895875223551442110896210784543498573166252943976055543641625067445176465622158176960898464473921543327998835049442629911776240012110287708777557146233623110552204451616102282187377717221203453331313490934286305583883063255992102127602365431525870819487438576975913379100604105376136024923967415379012726097861485106194702413780269507149888914622850794989749515721375981607299908344927460153892084813350416577163081823935588891909218360746827386685290699712261060030063441842297937386154348376268089796050321908061972448057637447457337729763632048559335198471953339331139058999256682662068115204447674689355586516199301525165600876753792340631207731215666658836565390811430619887817253999721795911017601083659587226134216961056977449223915711844732659158251155904145250221804318619137943838342349648695180134322791365235969454744992088524879188250969352369253748775178427531867396657568859308157115848159617198633126626135778304276957315550959145579262902902423317508700063164061661475329225544645487300490391267084275282530536073202784952942101694904934047584027221399038733069490077653277086236860544581504908221174939828360851670186560513825563022514933506614629341829061658327191389519658683350687515913622838820376511309552643759781762923831192409634867580437126084650416063157235416025763349538793958956664538765079430596008395598595675293326888822710944898215398579768711007720538783647331053158580419343402847525428381408458182962286073461853288277311549799511470430495687789610515777666663263665242214213319812211075204509572988393793598783998531190060716175116103443103951730426405908492314829458806275993543280451505468221217691791113498068981792114967503897226026005020927708800759965885804281308905632984212179433810978879001709815243241576384222284987627975261043832536938413555865879899277102780395693656532786427746352039724317763900543562142226914390301275387554572215824324538305409627535003487846332700614048703687606235304559129362048537856558810516352320990159739531884861505416788027934379212954435347523700914408731712532578075813355163359223881144066735159121872621589955184498650946962117759629981301463548517108879235548564335434453670293163758045131470237573399561210889015219393099699656370112966266370977723873446007961089329858879996143584104465691968284056201077570378252943208603807500070368022885932821063491177955780822188149302366325992946875808770911822256259171508838784286772905539204768855962229013825324388840934919887593950081306699302010613462337036398687254810016694617817266731855379445012837099372113786014393599884158510930967639350397020077203681465287510129774457083576815523166978649461245301500247043434660620238430031964109226103774486355715445392620591145419476790766768315328235393660563627527606758592059487843421370544923623480298193780826198036557134810282783513028741972079836910645333418418231442501328589743917847659619982071702768826729704986509436720638408853434607497710478307214953401825295462664007776182434717154449725473069989490566773684712688711230500262385120026594146933663065452928486915645731495951145169520330951627498969357968150299806280120637849096802918371868254200058192818069521113532018461531742599842301197010658017414644082168584196857270411534926318951458411466616877460922208097101570061244498247885982303200619702693221634535603032288029153739613284878189391680193175554633030378101758759768747537589126889496548806571272253929577305223043414400016915593649186306309874831492447762719547152745603175620300416990297437750680548798884759330441158677855125806803022546749484311516937543323314732992340407157296733851047018782633698252113034723153683540782552750848441575654915340470812707521682255999165731501641487076084685406825929510860214355919143998585756707917027519743107039636464402755653494833894123424505008795708619052466109976168024664783706950963617823261154977488916320078891254289020629625325799956663098260891472976036280956063674614996564353421315773938332957245208381987526453929054217286153786672231317866772984627325500786845379505387457376641360051286119287461457194747924816435254658088254568599274792826458338376206379246894695122758600113528228353247355013521364066596340892442440531872974126749779976144703044749216578883469653968145073722979761940949867498624209881878129893190801304946014813764475069507399728811711219797098959852260840979171316141037207113807033596503261123428374751404054428215944447485949448092702511650409713440656964252794052603136079825995493217736764921873091358913485735586576862566600607336926760526976407858424878676368147826689500899620817489223233112988331727285747782025299188670582787572257369933791009788253365220230576951333462304204919337909653693475362976329634509416158694898050941379242446235368269843714024244007313941242757555180034745801691471385634589278467967791143073064890678034120690136224049127381426097359704626764571543172223641980312473263901329983263698499480240315468704059464189916625157829164944622446344718695284779048760219411880364280368394720605743057496363067461467316593233660343597831492815088574407432185715328367705555924085581741418884561225906141484990711393690783307996643787434513870362751692994473334565130750420940817695874611052232612009461197793977924669265035647848647479594670066442704671727331733672897882725097804225415373985950571583450628691370649310501047978596659824920916944371752721881032820288247758047259021392498201898143806028417385513215938206780964413614276653230454258777590763700050729807675734676098928351200105298482080589784230087320264624759585878596930051403836674283919613122770044768263425397978333999842707587840769681219024068274384381067180460882614663179995748062303069183910684579533442953920907072337729012377300970192799953545921321345445811575966516366252619672026921206464779438139611031144953459197672294910734656814926671682385683153265284129020437133699857345276828457803327618444118841393803762216883667123274756229435307247246201196634445188688569066987277327972155602954661633878831402153580351721987218137476324366294490581123649424994158260709730577067338944655775034687774184162931634370320443480720410059805053179891283674801380372651571366491171037648954670156828456937873103483022919209359700665278887559267467665810790575224815835396953942922397125518765181438959882761638085482168732466553811898506084210412206908635654011894781006350850724006245590956367202551202879555781527924071739638197807060848482752607968098233582632007667085159657647257505445061262649871395449836958449410003774826609353079101946941824310115592590351329498279288831196545222709198279335412108009321194575218204691654342535372664834366975952670602182571941959273364414319883719543317712154390329839501703843909171603244272369692506966098900954036244739228905523088044923719114067066556628928735808498240187649505499212188714383289937236439982763116380882345233251329727768418572196567777036865019305661818231590919767304679044007605360800557647621740761986887175776022966912311865369810372119500917217253384068399973111553209711570091037929097410650985280648664977330836436944404158537283786419224743520562040679448246360704522100217857941819676829578588126287987428526384338522268205241187823060073439066627921561184232693064350988961067236751326075639007723181321364813974568739178697825016128357111171142956548892792682022059345954122268543378877160420693178566553502970151363362321412155435250895816817477703989935488933649980211253027123558886773873202203219519959137650740116906465262841794221688822656090425774485126355700466642922704846505632928326273681280237280498551588992104777268842023565533177267766798744695995400197202161605421529204732623188056024936402327302438815275399031838681026183208609792297394834386904406736292034727840112982682048591845615204496328346364772244258351924796903626288947797379891907270380528017905703527010457851132577281183558209093294628064115889375757826286459626723751806492450325377389068102091100438757467113132436942781078835221906910113968583701594997152625001127409815964181796283222652583972737475816554906740181678540141619121399232816130977432268211694425623576840373737937766798696241411211545454300645957742339324660353602188409685293656555305189562495752444112115964718885249935414795277979505579098427300228511532922055555718973223823708408409940668476872140326760336214795668722015899240034442659586540326394665542769896455903689931217792942809920727225499915144286526627327813453141618890579586427183512917965218210067677273761118891127830273031223971716569839975171012182079433617270277691119255803578155001145834984229964956567794390976882414971152396172636220756337672031934777311630787675704866416478238938292276681383562722552651147788327717351299573628530525778065705924623600038756710372807186312755168664237951205443137961317807333461697383004043223104730262932895773699268058057785466401605221628452810428918379714958708819453828438606835717028217887560504318733717995180985995873317112653432040000005563739805447924677755848196743703242598398791868806035869653333039352535906176915929785299973348650455770936594345870544390621256767075596795109227933412110983928924024049674280084254804911002548505229200321259567679787989644541861535296145760120286256289890002931521033497674804073226398909520023226961242120230179152878656457292434977310270823433232885514912544325553782700084038565397561689027150047915609000445025431123567186322543192231393359262390883920145962378088845429696863890357452857818509471080785625104630979445042346692958891371192441502375334444497873756880885839648949190906830366214891977427676650931362597458816947938794253862281673487433181749530725101287725185554769223637429440397058202222101483066836590333693668951129996116426002969371966827469912486631205297807797602843611560312886060966563597212818572053353582970428993117639038244205371956569720009813454999668048123979927248020040347270324385550085618970148936180174177065908074432978147609645007782374803617121435298476712892342974796381130115735249109890448940805534447449022885315865395701381977423691780753933199284873473628828823067337738159757803788212942702669887575810670699143799976857726482085837352542711760216251472915852587172463577947222923491324731939572626828897784140760588343207161659960063995788294204525308541447416463395716202059961451524248657882581037707484117577150306145986539595441911260577478141595443008828272944725134462151300203419466520927288320157325519071461531881806215165010158324957679229092461113201156291434157115115792930182913690604332335682201896208787493313090124282438654061448550446692082581179613487676116708570949502450314650258274442731906384489997515924908422363709881105125335465316520553962657299220456678504901918145453495576498906463754511404278809153324706058679957715540245304978860713480727490824806398741664044023135179207033987481144096257418045182929811372965207416049688698108142669205636725311986412967875505871702494884405057640730469569185221761860554906798631395092346926517008662125513001334614689772364022995211815339092568744225304393450010888741693514958747850460423693506627542178771240324325555405320716372694193725670003596060473981544214864154428471038964918189979455102960838293497369277065907680621804267471564661572368633890847467819231890752095377507400335540846603032767067432237906639385396119621440603186312752052561701377654037198506018952620461968849284527946644593870501252284278747586082715828471991500678258956618252512505206599109809571931779112621223831922669242097057171019248423146580184095257982610033251338410183825094649494080675788003989318147196659532467394416591603021153339534070136701485625077654920795035626080790383209597354472000042711901330890187169004261585494324910819644013705540278592162183496043790323513885682977934457977852633799513679382191480002712584863065374548233103152914338842777206012066402210733809329285425617531448296077551173420578308258680392538828157486374241160530592033927743675268699212537193749972865325367367209407853041154387002689963836303276516020056985068803166204229436148592343686335959353620279617791364028156085718154959283988235062085665880267019000438079589374557874222192141786804870261143005279479225692765685161626605508347429938153969687764652177937000533241745239963581842231044493769906325111430692996648567159330929583488909662343910835085125492692339343466936026886900142244057592549926243534624706803044758842402618513888463860585059190617737529337991673162776084647702122928456042962907840739561948332543563511912547942829847968587883790886311353964847759915288349136364930573753921920619982393829369567011462956639662586203943062540507638485387536473701593253803622866845795258375182873495485670788458304951795579504007865799784066433331494832318335242433393148638337958507467650749408453451324736984416273071336679936179482581875007790683806723907694447582982002159117660760558309133810909952198031995113710922705352361986428795075883369115705297023743072966183792839239628139795822667712030325516441095291854054038622261528687545792639210903406462385837148617140505365342056958132729203222703998013109614274214013454502891528289181632379743022896931436081428512969076468100269720255142854265648773900880471296429455208145038125574764310917230503243114929202001631930413940423708199329290648678896565511526066040471190265575109606119143286130273330476215390232865556361312897969039494115177096844824146342178405287592044190218953206492338404548537642719489834591878704115444071485337966523384179090712860852706783829907268815478782338823872452738403939986125131780691596750087669805358637453732309515342250208165258682247243549345093482182476542187709670914762693134280906899232723074998048940765864531187926851543672438298187167340533968046174343279816225888236734392669414220181521772819787476648165964873632533337358797795284948305954164101018881991903158514765910522880899780687894793425828477249242292996063241453945579385533737336046570089712040855105634510010955052675029670705084837722474273778639480438691946051063981696878850586453899969502436510783343891006913425169987235895957233500709553973355351065241180382136134952278438910180765589353211742666547485168271349060465813916286151586080237812840283023882385775498464381498999904868639845257502189633796966733534159763115709668186271914609071092256190733490533625526636806071240301521353149181620780665460832102557395381452420323900297441765939231119456861034347100751196450083883322805981914201028212561923948695688966672596204892055359601964785524063640119322696329379810451491809010472074897589529092923926234148347496541909152448340647636288176019367696769283214565934161706822690519748949688617916811361712422647466406697672301132897478835574500793727052709374872363432237088273049753754326210089286457156478926153983736695026673034494892157344070437579237606392368680121523009982353634365294210128706398792567107367947308895641327007537461557139415216158991661771952436331403590048870064584231322664485983610034661872941097880780259226690692679860570452903400632260233709656722177171164430679775641349226465909902873291394167127151092308057980013166411570186861550533620668338916105107766247677936404983381764438293933046607245524077932680923765702778364074596222303521866244226988257408538302789308755741248100806379526153347091945845871358490525832461530466587080447436307673414104804152579874945483405293474491960331500557980770418509061217573314957383865256647137332077753247918042261782041311323663412798529715181685607407198281834348551449048313571864277088826614150013575624195426584684813023675560280630640536416191058366759715680095872648508809227419829133171792722467800873172520553042034085231946960930440969373786161331487222879554853461333700333256186792353458994127632882462191871301626269939048052584317111845726315991987855619391306406164351273425641541129086959947725096903499144939495568286366935274751628264594681897885679966592235980408146085777089425639135521279618756942356082213123830061897033933199872034256413424143605035986334162021366953271696997733294953177566348796940179695462215647694463083203115429806586210679674991335966364714343416870629126945534328102474701865048852791971066678849414618119833681430049004768364096078545352662975830496409167323079565786136279890658223861346944181529320830888274304147915074305211669514917285221468532665447402990035599411657910843125161329523059909684768286194159498119791348077872954220966400437462558456982515326228784676451143158990936504678081357325112909519603563659179216105184615882892523624573309646645776767705451006218120573568115399394481073531335311966517880108025493633589306431955316554368327520721272430577617567282981182341589427948611086374398987638386906602196095401900151664372092435473945304211799845226189404984211472685918112109986243565078680923234345357968389823199109493843266141302255977634947086521823422272570075243467848792312882212081114958599735245384642808129622082092633009297866179290016600076156966378657688753421203110471133698594650623694432123493245389750145047083956231194384434582108855183936137282921907741680724862598459158869587488857868942295734465401885709188463437403922791553283100672764258415963360863538711439652025673021452256864371506549459949462882909772349101999844315955559707940445747815661175514070203839524973530543934152370318068779064604655881682028618852493602765533801333213359216280185986976704752852291136919051236417086158974197571248106824823704942169727645809469093396542338081684643539296240204138224124095566059091853940365784245594260192957399473540879936305655618474158990422479467386153499763368353850458655200060821266474636145350941336386313002758242251986560162153287818576551733245834902366641428183747357446483172322393606405539481430129622059226837289578144453656890699062447019486441820304594731988521498032177353530352076707375365900388683480279561744011319631969768441203094360561712892869430656315991574892283852746859749594548745273754498421336559765544559783081883141693479747777661506585224957146037201901222737704378503038227520912627632608445911325652297531601116409300382849503253701404970886940352271642953588458542520139510213210408020283665513472845654674206768276437480409880029610982013156264887134687102252377265265089168674261963417765955268509865341873927684720319337001894528125768476283756855696949511761892603369035474784999074439839416235140443582449373235175588588449525752714048637814677994515206644973649828169405141853127019968521075917813530615545526491858969941071781981646530214614086333538043267002917578958490100446748978608001498710702814708516586009899802360278864352606954379455989727172878691022128937249288309860364050979867718930454328689510809487415589917039394432473949833468028586882364607169005345719249046178907266480482111593025508840076924237124866260001378721520282749610347625690704346052687083711792846126187595962942688006495603044718005518854347986093025176653324352783170716661673583732124483226388599050227045892224590962285273606499059574954785225024133974047469162205492845636674842483799343883533843651156936854204521662865304268906796814796244319232018063763573502978913875309955183728446279190198171721767692602190294087487370650317788693494668748025146489725274371988535265494631855843807134417049152037817509433437690985926372788710949459421950241688147911318780386395246751968881226963378795837077815601391636693916603957664814938691835102576499352324373113572777035576399686830415217292303990906134342648204517330144832735686300142294869654595919564004777833219616473627335959393601499183143855600005306949737590902591740752248151503679739432246641154182963306452798222186954265882274916979712947799265290874047281655291580418399606021464832949940107905303180211373868532362073060013104943658460941899131216781481186284013805919158527443158292886255000994858655546272512286760372759452849359957647270741824014556311840631224434104673419282991599794199668766997542811667442603665305859655706290575813191537058431069198333351443833975737648262156552491413120403765315685800009043945224499819525855935969158644523702022584319478163084151506044933785156620834200522058543797704014172900636847608239810795878510182855700056371864821849394330963859898691468260041400080835584841516970560512977687371702471591370992337908542376192564688420448920658650288394306331392421443169306951461538574383103816111422119710567392679530117594390775702234855164768544467390605169868492117768473200145793218533544191017744861944240655285389763439406799799759938369488249873040343948280992068530904873307392582651573680549502539741492564976626374440515742784936095496803518630631072146437610199616812175965527419891433716011170253673658831080786743841390504266929039580714139230595334027662141488674228419915006964921685320920978069237052487946005722658550070318230379987408566342486501077455385446611753643557465874760351604839419481131253159606386478497321879374728772622087320317625326196138355254605125920568539208539707315543220980628501646497807329615618272410483826516390297429794400502214083249369656482861146870107174532872532132505059056359990968155441782103815612529565230550456434207034732145844914902781611229315372208968659421438694202343349450365848226609393534488520381047613548095602532866614354976000058836254554419193771985980925942642057591813771849132099392722805212036123254461094122027891129842731946955952861586496091950992132957746240822459895794586570356283977639929150420306642470194607093488915601439397903301462364255044385358711706470357867319814127558863909287473763262722543573999160451796229956694899721921030953230340574384923515306208141706072357369441165829699926050276055452272683536672270373235075772063327356544940704552535219516400254099687156494821353668024409996718980241319948928952198551957451778480785432007653459456314049514050864024815432543342983502707865935488602523208879456775238353734505561413401657969774269140200347277559709347015888893608985047710738003633343034150269086343325721140469757872888232983643764115796301076733687363149727080209375725131034703962906000946096294244161724187080487471535941719000583170372435833800567110157793966841138034886464875934297056895398982542989164514335493008285341870735793789887455883568010464687403418402471155546040380265419075284499268381001676917807052232906242248370517572278560612662333963885900623570443488663083187469081359032482479522491429100139482149467794214509097467609323816027809833675701024695769040700315964800926854684543789270504044741532837597037089981467948336984111902949605858649587258664152488454594005685777958380460011513868868380727748351047044201911337471402879630530819734737566320934895681532837999831776303813921256461976138209704436478679963433330533261531631771533090079391943405697408807847767268394647812778226135372793378595271693221465504996236835127999647023706586710841812532138130415246216379430811603438424941964558451797081318986410403856272895602448851573781430770003343678687611154814889185955757633934488197213776656524913992492673563956174690070082589829988637071361127572266257209488423941427185189426245030957221626876464224107973068966508337374407157344419473403772359755902293229035999594327976862117092631704756632749659516706932241593577342203908338414570427764343313029452552885573900509329288976454242847697340008570690512909098161146690453092748320439386648219288659511785994685272063449957101157253806991482393353590778864898036728052537307859032647850151402675362328571775516977527362087757987745826681737034271856451259635549757153948509132832311192745985793147672113289124583842202073491514067903030526868244127104392369278604930027068049601847722692757907809169615292243570079552411270821547168103339634888404610820361823501504631553228370857122300307113611848154868152722463401863669070547754076681259078072128523962133128884886024679862703359135420642833167457438813030340232261049468092129082929197390129944048964545911380287678079016754594497640667361474481752712732918293394029757228188118732356386245672812477166506560740159922596783711213240018858814084351781053414562713683995556113626585111003757580687766018450145191903289182437202369339394072142953611679013535574063694533697164685208880707850151874323509301454057679118362375937046637911020400849219276499590292189684797858501267307143801038257196241131273207863031419684492405163060292626266921277690811761804615378780247096840419129919473678661312046710661533489081479200665389723375036431172364226768842034013559825256646707820146422879583296673572821976832959168063138880449488400304038881174935184344803652208512567804184259298598363004105649902473856514640951921829576087960850300007851331109391733319802000076351116802746998900635479523186589157863399484650656212275875836565747870645930130271194052337073412453925903222691491738570467171269499216085838914333598254089736393219673063312007183641784113163615586337232375476875960785700868321250429959083699416574401849291528470118724831319347007879706934923744698532555862200728961486207701470409972412953378381887307346120485084454923195499784154435895559756413863305485679389328565634888905722263093594925919128224592169467358628294671424319540251089073618818412874682911416803244602889524335661396230968110223095695716032042443258410473197810006801873422129676806464094313079931874385342242818045580011660433102235778381398325826870110328472937147859399962378252629424688289642197507330843589309262215862760629229012905840732677624811641566051378345847468983558776395459013914566407771541881262869514066488423247804624246917358864054129239910685639461079722847461918560634226337107471235667630986259607801465414312063701765698681446023649949498553585102864075886356621032591725873305992786993171353305667215785490458828427860058661070582213130223774087013505173103324803494530237921016667367636504241667381154401580741885616063748854663221384257713927499295222803328749126207962957774968360015419630640148423364694422880290178916458166243753320630814380322060147588420894676703805120358300994871839089223002845113931260211904544520601170884251200723633433116086140660033542383838728231183826061877058782182448320641310192819452788592262369975295051430124623420252658960298365412537693431506686686072318827449149111520762026307238648506566336597272775682331186029473934828421603540555996417258815764549219406469731268175194457183586047541928645010740665785344881065481623697740124176878284621166744080025664330815070733461691687333145277129460480612379412811757581818289764473623852323436332926283697197895187227356561790401906713511761694511453809585971600583125168750803693892938783078674700879509003359520580749001283388019581830546441052646074949319990795375281025216804197033681626448592305164220699198948444231098676378976534992383709257710796800401372750618500216529167139013512269181910326078666693750187047003393849924317794997940480049198557468759924799771210180865902220870484606018155307707267105597386711518968424543532527591967973096758125050887910684863833488396395134107172708717875629283935999333947444445763708218493483029466949850256429830385788628625439108078779433114995820337016277166768065893944674059108670732228654586679923408080002937850443644922127254039229865661323625842182772304992646126776678712393485378934560431692856940393197651472325691353756342781858673875850706488390076415148223151444450718741404661512642247014204643955972254337393847402751577563240527632227836229395506105373436650643954130108105913090926595471712437661534419259443200154115428703956556786092379342718558368363227553409684154192324529787069114652440881459463865563776291917553801041686361845517616828253982102987033282253312829545134118849099164686224138456043531070757086845607219318987587275180433697163373550030060510870348880350741747748949520265599067422020184966193403933212183634382938646391027158614626281990103576144784682345658920565147448935834045612611749783158099855481144895588635623207745311985972815816991053838977273801655993799248283423020948816226107332661126515140478264095216740672187970474457356031119964390590708399120849967093699030230298633258955159552811465979174081344259302619003703470353498370419320341372095980241814688034874868902646876979772886278809979766083026786604581804864404278635160519554286617708324954699618610502660081362458615593266988373365654024799590022265953851636239878636102144926425488989984337107798834480349366601490761781528479534975365118267725717245888625678185564557213765195499461471943137797610296742438604186564675302800294317292985734504985539772905977061164337665384032586853266336318010585213925810748646637603061935351137854589950348001164157455535517365251230261290206740830839622347380072795607489971890981943011728532102029368176012455344465295321586948038765721639635492547178258388827931459641764937535517559201501359259588633331664947703149677145243895620102318343533756781924774425817804263777988863553227685854871702622041758600927388561009669953836812833594896130933256939922507078756740861766926936828866147804249687736687301968153860383048180517479356096914998243973371974191171210237774800918204570260002510284091683303041261191482180844495420270174256374403122010131796116778952260973963363724252242201452834173728801247298199494274981288867775566548938184070091890035981894511804834929804223289592392681549257777153502265755340504407715446950129649172997071297471900503949761018152700277493362765694196451459734095968974091874366043645117780393821497879904519341208940118106538377935325357362226690318042093893726816062509632255046479247243150156629323989271198160805102520019675531267121915156021213736612800803951190969251316902040113667361393792775495457757227709574823341826780268818125887107197787848559905830983268989715564322329684775540044924810396786823715687115117888678944239566268310254435608772202060682758168606995580173317348856959708950099295541794422045349991424664051283319849469123996554387938841844836068743863555329877588932808703169074420495446949105960219812209387039175881173652171994652978345854590263642053963860899409186382820852498397504245136067365147339792994310382237773058798308838139872431313715347894037040122954289114520366146153618986486268484193346145825870555598805305288456355805807833674716436945958460909979903366175887896491999450281067446085426818057469722623420992665296398623005059510468632821438718564940349908774892789338407272301409441965149773340598331695989741447625261863814409925439814814920284601695503148661792227274895092707306682748734863970622983347758992317615617222738949605790024866654400507748030470116352430643356872477425372128454941992271196917612719594090280443529942677449860230828756747272870308317592406277605741237915360932841760482528210313432133454478462042310324474334698114921793114754377978894194202440129628401812235879571352790796247684742315928130074754545622586251615316998822599906607027365069137740474299083185824188897151327453686289501538310949491368224051289272376156345360342085365318371120451448294449296809912653972004714242720535369987826588009314963971836301386765339163268783404251405839243407167372404571797964589030896940482286108658698746161386100247147536734853459853590504924108878992435477701483895604256564311569928769717959461364721147180583616117209331393299910823659127657670142098110541200948533964364061502468980898163759642753526807673643638416018629197527650583543990700257456221593736459517931413048207788243904905279456196268615876696274677862837152033291119714054373737702411119681333126245383314752812877348267561031693073390202939734209957692254088351440966544743072346092076482639177355354086742976875844703944586277880102865422821572149702367489616535415387973080501926731756469040858722797160984724578535235088481200145924191899131087690387675791123864517913630006814121101712285193715870577676032304864112142782133083966243838035667035854298766807948167645904500931216835403537441700856766115009079654218618156582237912375908155043175681571967108808829884361158684781712761613375433013844689116417166585810150466805336099087051299726578206176646923978538293705196695507762706471286542684814776874890780658365720091185052059037231999498089122931619595564734416906458431499702025391790740696670598921400695936807365144908731184829761915651349675155662280704669329122145118091145244041135737072229430185047423026657375881095610037694801248125636710071311359583627942761895572417490741679492211161632134442379318499251358697667633934438157891184345818652412442640387555219001419857053447261410161748992562458267052533122448777500075633994379419228007647617324216394612996011391798027712869953260848503920199374087633107335003063281167528729514955690670026390993581088590158048300974048334525659235240186043938227890337356707142797679808816921594475269248812684106693694754943305259431703648438121642088035797266950895772478927257681364207385523666963770421105420527165156301483134849313645996035755288446657833787261562624400209405562282888451048480144403667124384361122142904551850825526592135537068692205511709250543902440174473991193878420316640052715513139311793555344495541059241204303457657662739785256537186425808240962936016778852821367118123182712050218282492420713869636783082970331601497571521881492256877336201260738014477160144589185012902506502017966902522458332235692205657218062416902579291843701604894092437123684612189972561354568592668966539920754393267626765945326427127997714941382459811092997934433726061216716420608135490109460469639781035192151343869484471801107590149846236260696779106006981750352631778963322956189472981284786883948909382944617670086444991851386533963757895321812917214680170821425911325288537581145454147246817803105731998274725989552929030808913327678783533368465629218336657032839403595470026284297237682637825439161995617516594195517164522941518643981687945586492765740540488606594059061855397754245188537604812058804233947067439196541156215721752791034010762312811724156856042747534429696618886220637179190904494857880674954961760753655567348855621364787307449389664993437285611361929864787913608065280930029381812276064077111982937543254315120609377879355749748391157818065703001507108538997870813821288359673846088985252203515398607590067550562532125856162200833731868394160803847091200410486966935404281440162141926806087941992073201719820498345077858706127203234938965215036291740233527219173871800670096555040227011609862273727311721582994730700881725691200478926756027870989140141220072659436279385951918740550156574344853033340249959483207566240146452263594764341696471264038290516726099362679432889453946137548562340512342344057071903126500494383088422213039919700791865018038149810031269715603774908130156601388417599718748252370941273283637883360458606452825015803970996159754895421752314211140198861548349706963032484681413524325691556299673960440057621063969924672825403540927870092406550018706919181114260130213759992660287705041326865892803755722175508643630243427168720520514014564077220302555745145725728855664163097126417821295267130734084533980644560008426610781221242098012806927828773896755251639368584271907325758083881597961766803287092889326289516627459125191323301340852965790556976960278679449646693377866882374633207588240512033118495961542069517428613377948784594179421826262156754474470988833273423180860073107462845103089214904793593533166986396423435311347685812975043162191926046618575132304802736619488804094414080631547731409622408720020486265098645351902357594259149797188144479384163355581069261329123758427106537860570239472449891941837817329019831380394923132544948364208067597893901274474529960933265666547193635093636294594860825322149888752828275631527895940385429221904826186166173959969800492786144121616465251285687132425511896618222022676570622885820325897787770028218671028510773051112398994150590827030153783869987545541602656720017931271268429542655610728587293376708495870007153849882294631761206615220320011263459497042230583562619388230009352865770215087464879759499891357621790375073958442036520929171010384940975389846396089600950504781104108990832869536063451430111003758991209860004547680665394183119070075844146085542648822360241111015095300082278012441203960353964226414186088700364665106450329293739302840578748777992354202478869412024503930309074190767976095298093147981412775460057195252148199233473377161683935750869406080958631219174645210999308135290832204540030238567331075289147940170729328627118801256372909026264243060058371163101250331523047597417883785196601423001768377823033446876721914080245953431889155587844387008827169968318786663963404068150106346893554939960627537430052577595103036285954107246426640671993159171965822218777744587399524883862541485533556263738880489878884589832293070501991359655402169357016028946860702416012616220807524509081337540296356702110919815167842934673452260838214724568898371540984239716057117232765354255609347937283291188725970047460345425726070180069125635425550234480373521120182546078816291050884768219414581412765521772148608619203757839830421780330691294908546568246435056494359908610747289032935343471272402399389971229468219692675571659743620941999945721841049160046905532648332119879987337398875621757642307394299671847247961370380459753748058667193984258634218762148580446478546148188533622652366040935591232504743753361057132516915539032479410052884269174408383586784215283656584674690447543719159097943448585010598168176712247745528719507740953079667465659098415536545750939191571761862362184960392276379239665131453278161925320210854920881830925272080643657042680504668354135581840208403233521045773144914915138272792966843705344173724733806276987840294305160248760044391107670494668103173443012369863008713671599469376479894252014306848062579862980926516516263547381262241056659669653713120546731597434179597444845581275183651748305312016107881828144403663597338695024335429707285985466697965126628073281317883095964816359150485081069046134575841657564455708345547648023879294922662449266341965904991136043616813327900928506504659636253448544380002068382363513211359920646802228345282751792680260924161124191550083092899982779458472432368866395139697278771300281426658878016798706906292786008396809736134638720120001393082243894519187511369227583652564906284884172656945303141266932980495345587148339597688963045079714207296716993636722385970454507892874397608148996533182090968825093542923569719801632096450452705631793072991393266478698633964958386330338069135894615947077775951137439167045872781563248328234355888855944656107735123756048563374139776591795461154826757336111464001271609748742678814900840366148955047205298856026921600123843720839345504871776245600494918006612339612594869156691773664085362283410889987637788805439240355474096844922467683759677032968371445143219964677713204701158635585609625483338404206176455797584038196409745185110738706192610717912632509929391278989614576478001534472067698005339383574044820157598908569071600341090152715656299140951295830588528235134436868888172901948549532498294012210847704288287168337823945813364217528574139159424758037160183448080700111233387723844747485515554109527653725771608360214088775809656914337540039486195998431246162036961833221303494893060428086049203408189182114450027511565993934587800272254168012092117543245525753379860319085767421730196834198241096308616851156599021881491337723693745204963689182693859427599946175848418968031332809977972687928009360868930005109562878513607687437332496515965908624716877645280450243836516497123022588972400311696026022697716231633447296780047338706151105961867685911166457096654202764901549852026732833413878731985737197836584933666272363908410510536148077141780970725859104246302094759296230046381027234484097219845795264466840842723352175448038030594495252949939073027299622225535228426654872012900812922675282590614101403806717575930202368404002285570185150711604791650015088487295991369033472774734370973338287084724302358962112746639552433864465511061136285250142499399771816445723988637456281177308564508809576866157939483344272718778139641435607990326631471597750307983671825056739687802653960659490585300591951476189308607704007498883146547969970451704875861199648509663329317162847462698982143221318129430809604762740287487656241679731517087470227378872242172545364728949627889190504769733306180102064192046122247767776279259795004330629457582162478127885846002525452893911663251065371901412140051923160041853413832722545643545473443829276374950598043324003593536591939574121268751946526597841472964160360515417718911190866074734925333022304079626517818299600563339694911841199700146197729715928766996674090472412057929461574486736945310326016161811478559090041413365159595184745709620569381034223696944554456799097478784941509456810250811802243509883728037279788269044404749641552670637854983898961725009584442017816483496076831238231175358978992053735795513070722337954952173066153640946327727037821239142257592212696719166812136753713824538994612298006198488368063652688140270786091238003785444283287872239195517394192713742446788024398300042472164209401783086046775659716958511120827574403931357763287649166960065969235278840197395587764381579786313638652686453142533593322257835408136548854782318974999603757475939278081656836878849577082895006652320206462441330641882689630894020212571860638768591558668060662237688128298362293936573502077514340831368494705793744166504650389301281491172974759544537787549692348752935396739266232219462642008256597569363870089876174701608434589556657313878840794402208731012468851371756606367072402115557115308930531736553622786728612629622643907462306271647162392706928626766005707392480492640273126694570523472548501011202154893487087254858250619803455738032078960818378420359574647649793306660523251068498771871967926849543012794637497866240682273878861691703316092360884589583612635727338224379759636208388752313007761733579059559047273871830623695762917400777805447278393384567466502171094170773085484202161209198269060817487713097980507225396417502952381840114213120608027035121382313353705747669709324667302923546464863042732280041204156196294009133869442608691772615668872478297072327105831903858226639846177040344064872956362184201584982048152851374708761186569959327274214530126567658319921461956238725738276788093695372943289965537400526879833033348129876827025247027849657608008819675343811154406141061652438029552659361593910243030992315927303362233485956448413603104167669155181303278638787439906325648419295431672233261782720575720447437701432746179740348823828516513407149990823623707477887889201859570133573766147202439931103649405103420520327942119944008260968829629493263748049741756346768114252431632259495321824064438252303413008842865389765096210635286135810294959521863996917894534983681902939543362787878794447564714049378426071770394659467740190796696859086697234422085488317742488815998497197605461409533120020389053490329109969704647927739691651262015607290669100684392616258710430645728259804113733368580334291649445260111578538675631610982101788494316742679072884906671349466814093546116905004335261429411102432073690626954195101747656319966936282018886519661579223364673165582445460354349550546392582032764057888796667080984468376893124856723197622536368702548066554230764056941706089675941264302451817013173229061736973513946367380145958866065877211691299682021267070268854951871263876299241088136441179365325322928020534941314466508666657376392182719792321230149728684192682323544908289425023251170610097394948739029501377625661160259702794420414099885328649865551823765451945645308221871999605022228840650424922387673744353974269211814738647212792453669550386243645563392955178917537658610214124717998309454848706450110049653315199200634762579556937607580528112642092674783723336433613496622488767574327870367730324489801456649021107555532414602898250212298591285329259877485563104348935528441349296894031071110882299380239151433252101390438878385778516603114724610760719032377348214005903318120214781706702048868416060771235499764321633110223164404282629090983555319820115209454781438036961544813641799638125447397305766712742533583461733600112274637202780250971883220861028963627504794419491968467583320663538366571477084233793260740129356345575249925459222328009626777969842580232356695037551848875495725836660765860599176610007181385034538952527834233100838241749068806491655223520355733823546756267186133887712025092486578089570153538265055963415083310587180660427261048556733625771370840044581510353870374711158943119994473759542861705507923737397278941195086545926926689000298496881250039074571839053033538244528964769857675480565769911857656806790069055019313620198362926587186050266154480040435008219112624910436426615476070327616913129688898507067821266536261924981230617523080541354825768101522896876874660372677512115903547503088278718392593584166492173591000260858461618520497217069957836824223385245610332260688254949180213806872125874161320801528654116040982574219766749442896303087533994462645970102112120821924966933127872283925443524085908300431072923363256942813082638804034364928499051413789454133319100844044088994729967530166850759771987770125293714291502611455555765448480094186744388085932086612729480074427335960368854681013813285384658440212435032499659892827198658049350246492015457788619456912490624100435232352958086669371484237010022469649446360988042904534285663549868583531275931207020155670684062585034715402874682175046474830634789256693901706379925656382676113846187954234384543588481043244464274966017007319728992177530299939677651533696370488988280192581401947449992260372608753572357636017357816912710851191013263029550254985128162360954317830415779719658232124137963858598800438017034892276116683831033775948892327998323298683288815137649926266272730255189353123928291382233534584756589758367634026524065490549399081750326693872406924934134786257859433291453321190659768387375842383652179851795612136840445754218928532086722697362532873375194768565266252493872653996756238182063465673298591287594612464569276625724772185085680429971406635382970125723407697775793888183902259221504788837792469890018203339562021694768084868124285065070709680049167277949619737096937367939678150937064301020603315202108382307334133884014843807855820647628803095412785107260375028759645718249343333826039264807868023991014552294775851592121628620833415680846977833613255728271882276477703737854094085726076615997099241683603957561044480862088434476489079436720115994106727424800547091361719449056497169827533058872502878565640612614772739686904424151865398764573229058270288139840096594626735641375706217005394530953739477938274239071485087669527487316353305264465466758267271395598766177453482739442799093026821030700705001350649948061996394371799329891600710815501206047730087180607168335201415446463922433528409814956049368545830237972570670012067219920023996029449312514685630436938530527445796660785980512387122534555497824658077873947925827841833599240428967564942127490177621723471217338683763331004566906353876905993155020133290034370507097560367836740272631027559060913546284214058051677057099055077258393634059754470166030182364532347529432016060457407472228594647678643683369442749884500183843400460741474820905792155320553516234011297543931810097865206707247584071656878669395550713124618823071495306017016814269647512708542803925757323136705902650235520028906867140402427218881209476041606997892617766546598641343964493470920577082268525636452371329280163513709486573660903832343409565379992547908157763243949378181622450434266824264318045714544682898253576962127080548392969717801115039089103615142452638024328847178096751182066253514321870438296857806798793840891071303048547967262234734955048072951337928582908877422432469424512809665795839251797067626222910631266209642416775515755420738028759689618980741710292533676136515590537165488569062100732218836230093899122009515464443647192041471542373277307626021953482060205811819966178518231210245833210788586494761118654776105794857762258892288360210066195135216085337644653422217282854950415346633976566019524427330173622087060427882578099010265100200238903874609882888896902278672965568873900385979584828173803405160935986966364003502959695971272620918295383094257666617460427104571706838686914957889645383236603068552422793951308348849086704370467452617556273126123018123038874648640253622097609331335326220415300218189062410105062719672406338377660270609011170935864897787806714571998458639914476207725965850822926874922556742536003904973739406843311822871377776267856582938286989775900254716263893380284631763570316286252622731021002573958828024409637986030756887234412032839700899541072499235924070161818097107347254099605865867874760303892855377202651412962776791733726696679255374317308454858222271848148694967034673921440515451824406946244013182280322276506564915977483382242241466615649907586083425951894483739065525999093504266111277856144701010382963256529374689317040153105229637219718063854694255634425573897616087820919061990144123110458458965487158141581913282590067073307864227252663734670063818558729910320944830416436163463686214876922979138783537085038703156645846153266779767219790807032730564980184607896006395109003745739139169788742375613380843366730369090646243017676473493795672131118336540163050426162677615519157821137395348076286750860368968390707584859149194891791989894542021559158273853133289328916152412403240114354134905215153181177628854426283517712142456100593240335192254788504968507339284733667009685049687724619526168589502355622202143859344149169444883885590006428945816075966409368408581132804638011828580206852868993973114528190369723044730949149248484388852637861210977286601173983103418042311650944569512908922880584276040736974927625149167398683096921920939146926231260010156258856783717068378846695313554880087903225469350199384599658307970292972423117552231276281729641604190651960742845874597821177555965464557206767476571911639356820298491243592182944715030552889517658734497878991932013515753822527044403701575340993355413381522310943622754564325420784798690815299723521205055795952831479391264802523863783909285060554688592921707738043757016286696256942921546888788013283799146202422188269704211063288156897767173792693284354413796670900305020150796407698916875436028967361551178552461949197680193575644080984326975215440154817925950916967886923383203189144433049439252965783402176976802782529554290934012514617302955821901462087762651367748266520339437338986246876638508352101142417831059112507373339797959623984056475561396096781381068420637976871135163983909379092239788291604769078269268035499537873840536113182980754569374652569169771013811723417332036921291919437894728530005736748507042440765151471795300611923103197742828555534804949501176052341345903594224390402610282045770027245040502251071964666905228360730845827509534954757533503471687636201052829555308241444935490999255190164844114707522732968978526176806639395110129664150015547416376110743174015750895370969808719701770578579087200281045207414474440942646090982750369338496991932014057650614994360802272000489912466484271672260379201633169961556403648110255277013713910218690601798903063098324094753550000532703113578352521065992049315435171499183524372903103927934525306630888699739002190508510639660940191130066357494808991573462351992340938859738247083854413685791381329190344347436511625876678341499646734937730060612764626224798002314305891282936973946978330705801075759100734214020462005328998804399669934187800122246153628278964012235456642974663657095477498482644304297835531803303469198066497634354171392604859962016354922918080182166311822132233033195982411960668048499480431019039604824327720854321355275924591504671461725564845779949386025614610365924179484768593421392186294402513529263015869856419597468382439181751631720193644830143592514203600004699043123772153105512622840722742844176841517436243022031477218953709342903449696797831946090729817434757292478380549945272130197052957262391467880044136710046146480121333870647056310532575970843290223446997620051157203288337410655937291658770739462187323493353581950562097018984832744774800759213956906506527374997715937653358647041586768309088447694740962460978436296028488608517125527848750703522005504532155949394471866167403455215120347551622537794523739158475256916865507034986986387259813458523617365691106319848508606247110895068119031598811418036938649974113014210420618982631157048871443713675938321314257970895098768418846080975311120955889949155760421521793305339739448270743394574930387856382079171342823710567335801527539392208464259268766607290457520785844190700362951411067772472339532571708355494572961293105539668324751604075774523602394942248483216156959384924202849375022888819169083041609871546668298928304793848389832937518080554580288471396580154092866907104491560749005809316911819801885825052325107473289705337432607857794700400621324983524999306313525889141357471461224997634098858570937458831921043763726122402367932623556192081083312815690089262196037243184159291908459024912822537773776160088927423602231984045500835471698647337250195099627086446350538187666804804515002221802978260540018349898577016749447545585605344002317938954160679986460055048521556016323572801170467825020579151106903304342040193880290299870959359095350962819847761192485889105798796384099336014593344138142155171345816721104703613998566882982125756458832237116924213884400069325854152026938529772555985749719200246462326206474315951503420253576460765030198047783075944737253013663397444341575040175555526997690430759791099850742949535286284731930406306004416135103505187558143446901194158983864176165109920050618392610218097510993080681693461810746610356634926731021203574852943070173453266681687144949581441138999084718989149125579788052443562940267346479592153928479796354638298213333619661643559134573069133814811398030480086152368874333259009664344483832185653415255342709044236858402173937474202667532442426445482540372886330966573871739961405763558978097391303758372656387822958341230862588941972777555977349831512194961012282661867289490541131371536040944294824766399099054171430713667574587267472930725355803231613684473495169882669216279913552048768676825718583307785528225375214518311520542613440580577139973470777808372340314732105427344094382444339082344638253755487223954947972190237136874203085746997130615700663220070730679793482174720353320512835823301049564943542131352424465315948747851196808802751296779512943191519789477540726369430863862955514438755230215591019258713984443520449468165039489046458701496228510450866021032438957806376825333159679303980800968127807784264005190501411586648473610040931729471639703126327032942853817962429121279400396364708850736460639674711782290626429538612601371711158964867326890337405567758166697132776130999528219810907201187019226623236110463215778998066655621573858079275726333250852487977018650153056725001093696475268490567513801350421116190392926370759748393002167623902137846579576690831862691054742221023623466750877725361312758981177909868341352601238230931972103483637492193468333191512446800096008672851934470370547388384090789288873665274590105935174959255060519744710440503348561922523553177813390781078172547013787022139584421699238363912928807190319307074885185951000046508294081740902218289442748848387887739752253906699422388716007603587348372884081375106712014517399884025956997390944167195361886347676050447413120676722254461453899163310702228973020753694628819886614198830519584492358243266000037407948999869206166388484603280872829202396767898126174011688153879879450310556456098740665785182099886094763796901208111954863174889507713006999411170779298170988974662132068219189256127465181899452580988590262377840502802011286767657724591874441021563359363815046638914385209818752499712886610608736064922801668748507121635235648004657379415581894187695143454218255364827655496579098748363548965399970666954579531491467853895398506578190059352959448279801760129930927977183041274930430687384817424059635455193005384717680851643233883716259559230039390747862406093843989503056661178496946107080673713631852103052152321934655053689936615915978169831087468136460981369543949327539710176954251958779418403341007857946583939659064408016075768902226213812103391669665615771428300422073602143381480105195012728517464870683915100827632864632744403299858864275093241691107824370520643005705505537731492223153984533830743813342695963863952234487071478085588954436893354158823806625703239785654487073848629737920344965400375792417468420646676933601604040918205511664002051950131874101677621691993048180492917673126344343001806209263921084501363321919090055568185583376766616913693120872714378233122974986149296494995045432082726581752573767904628777138080818416758984717367530108716519191345979407796006657723010334403066946480550203018575507340934799294471443951087966263274861617834498629719077716379550188549927492624802404149179426961555230786426465558761520334644174841080939974425492998692135556393893964911311876189102022051197027004900141672083492355760303184868535769434643564926516321970980676306720419455803510622593501817801232795278704501874320925613964811093134678415047895193569542745467057173342316975632102091148974225254725826420283117281092976194901075488967114579332781998855631087447740230259062967475095430028169265391929634817019393322261542196016077985335888820629858276591299845928045625854116247265147309067814649901915004434480792948556411368006712051645793546613044061629020760197874580971287200408464413372015759733887734588346273678788091970245782602021547283624914046583415980452503036202224914012979247979442431175578443962002631011537400072912334519409504509165567384744289619574485348546407277072497661118825391930954466215591369312935979950256809892400475566201705589719918198368813651133827688052470787240264553348636742005429400029587142872300055656436228356777632044240633420487045575875329377608562289634225515533967834799123868460805155372829967088040845197273319944217195591271379846518102489725558320545383681565627732006882151906729591383168135603021585642278178756322375559492749968324577456383666686844536933305997778957155193511987370172579979504741290843149298453999863198213604644364050411609059922091593658040928117646014699241721541237724585448338813342463089689933263502567191546164645427652224775831957269357821108976523555997040523240089069276086485679807126590866677398856967709644529169678576983666868990035391630679123301753029374715030646299228907919935670158932054728032057617400910018875886872678773249353833197435846845191443586440886994916006300736467128183854575361440815938193148892489546773628476771254768605020294817476535042293782853033599841644920308197892276495578347823709890550550704996865206898667618900984343945495657872194065212170526962447191907474453873784078879454705499557638543175401460264989462206659917514933660611272738249588975861525449531002367543191653338233592061949897034724696756904429872374066503613891294331309551650158363491617455661763051623039823288030626901160154221466552656015163191185461637144614713527011619866693400076357233042618277618768493427476200337593380262496475987057850158138791543132043444713680193712175328459553284272973640854097983058976571786688719042624933969190662366623074191809082773714604609946206386414879691405195260864040413793637398833254158184679368920425323426537956293046454707496299206086021120087425126075268369077587382353962446873125859924171491599841084933628045709993292191488470810915007451239289187081287625102247531847180144229091992342806449335755624770078843681334506426138939159469484567929586935769518649528777661666637660447184753232797690217917153320707396316738039337467745464689707748314322949208976937281616449464990700214213778441173910959996807462339935520192224418817976241045761242371520307049918214070896329352289630882760801611582455778000225874440575323685099393782468486983139914999176861492992089202970484624455343953431400020041390201790823127418989500628810063821160585698080664564000430592126467669061170874111348052329341570940844111793929300042083535685238733820940984942735174291380657905853706292698613868585648756242918503997510835625444363414158603444617087206845801409991035372228688582668477464376059412698800207394515864757437060730850364049443708869976366773004927854813853347891573832191714420292684580988317451965366840311093116720179262676010932066223840744258404714278889641964670167215207801696050941708328909729584448814716566671115229949268230467903431516646826215224282712035483633926873034583395417199577816374184304936502776100585966963428436355045638596262278694298743128433982313480165511828183971305618457556300616665243003489651114814721746613240171931585710654344634448500286538161723250877348048116989767674221087306060395492877005225113844774527712494206319211732342321072250601648491185117229377174291298659958782696673559839164078258398034386157317165583571026175434863559213934149637271559228970615871186068241186930356301271909511055801068632737395250239040522730248921941405619829950515913855537890317134365436794480178288197864179807680902726917276704879140707278160560945462116288974508054987620236562501882267164196823282298721599484918027574061729866132717623996173030662228008778459030672091998013305973442548389760103340182171263697336175497795325559448004221154328902220983862158815193377153782266042161394276175384037564840914235686709594784073283635587336604771138207671695342280804720335316386518097134037028710585602037195976725291390705523204991293145837479321236916737384888327919092041339394589196100470845446377978558777176578212295396916539574652272106971110160820564075211242339320287940917150519823603164447874847275478907154691232066668173070005150650529073622712290313330176994639063015157508346461116407756413595558904464612664648337350438676034811503852237349519262401763485688336161032130030988643586610682153972607285020707766611068999211888588672577510931192307692421192423621343497995779243809987352266134784903424993315273732815451515511164660615472623368989188258880337468653442048457014319619456652826929156287626550619232045446386145704860001059183501525065864079860511069073985309218360540906667199628013921835299237228405993748677160287184363711749719862006455647873052885876712573458800376100756351590581845174616316082750463966395773586865975393000616856264342322771195586296259055578882613710290281657845733809002877190662926642622848114186332592410319303828467557972213207182751103910330002177039478035373744236386821187400662575832141889590805643024334272567866925806884726409283696413357103314716771230470881881698758145404788547420994115402024705278767249393025684812885556253335183772328398122772271590504088474603139008475686831217770718627850084022465513148889199008914248257713603026759406114873058634263781037796973925564128070664895291549094122061024183855597715401128366567954283958804908812358804055491126570340961107786433782786514507676287983136974267850207317093203304073340561529196062265702938978109296695873114351389338547589662651998957750863328717630403621635807685190088520184793001814731263453691735222316961401871218269612513615970334152859364451309234384847273064139582468972109416650984346000265191052407387910448882551852749705252256952081207008644147963212943076578820003676190688152561742710209958373123413203001109194730956686475850987096601405611411633307083072371804517080293694985407630908093672837278947624648981902874186693677549617097044816109604312442277774076068056181259993579697854528858247596423903838961584311446326118810103215802812623052156365745368494387914338039110518938209882300195773322002589786057623534479387929605492473377859575345739302812969779963486409728260613077589428375406315332160521249313851101505494795958018985371201724967923802814370459822299181345017972289025250705397355131782390754752963308605091340277224870059534571419014553887458142192044379765855956009030359270818828345100888017363614959484162392393696481733152970851984664156272912058825276697618036065887582407724710925476647717591601682506921455938385413259756929533784817202469373897391219536537848915696499989724775013494935350712822081542582354981726091951395383217242320094092186583019485791242635080972437455385541036445805275750730852503806745861799618104530618841443649959857953836088387316883566540797126765198533718246912026113013816089969243684379171807906883306347680701464597958786330462378147763398407147039279040378707681547588429933094748706536561243824574513376347582967527186170339361332350915863010292907634394078598154265767743176466405212446827855491655671814860655999948981739427924156545101663767077667521838696063846177039856889409091881182948013764763063524190324503786055174204764072728165051186675270745413901865947436948207018704459254956572574031233004739764301291374184796393693440478588819962359302698611238644725290885978933329612772373006061885083255374164644978802244968996238993951658789431558098760750802060082495316516346947336896245508921067695542141793898422687398804690576239361681769914150291265492256108920696311150888426319672421791503719974312228756430317121562411934047776622143208469522974383576565233490975555374157891706951381034893385639444917905934344042581591382683100430552121179474918381477024208507154122967637861802529288063425236446808923489941344745195757055807894264807317075089726705360317453951732381020363575813761999567738458116649499614953599615673233958322954178771552961595155815113575700751910352374534293322779526071098392449818906965394055611316413465284789109607470205936479462809842320170052355393072028637948055669458811247159527885499222464216086047670362702249210180962462506586132253950203364530519010851736497715335313581603232423676567815532387717520649170246610206521240185265651157918819031417646031805918008055428325204021110426758771025959552743161279218830051276508312170365325613852062764771728109267698466277690433070400353002981612769969613430364747023044468289694347584778229247751803391656782692749879002560590635923272724297257047528537684920820818207020747644831397267464648815910835776689817395928557620426153346791022783258914080031118094749922239491606007024732637173867231181987997089637304726046804577170413288981840920663697459147136587496735846428864959466613344922878359323237473278912288455763231960750847067050446355087331849731388399778849406713825836908876217241006999624808141336080043515976922352317501226893418453563099835353724162213046835332877473159356336541323739663115426765137365068698364219981841118420689769487265656657725270766731140367063618964812575471698369005301894212180992880830855493938687031846938753695064240541725902581221370967080741330438646329642009628579123160191844403809564867649073349114186128160137640860826985190885696101071478992692219491456686200881045487043859543955232764342230323548400742513950555194420730062388620118926554939379800291945873467660507608589014081815472403582144338853792999178610248554320112964700161218691056359295006865699004071790143339844885777271976488393418196863144958122542239680711963864730113155133619933700866206880545480796968894548286389353737283797361885535660768948598331066903303911760815891994928624684100053234812015773919712763766305207762793463919274333095122223774390357232938700112552373593616778764097394062109764566237700620817956118494207507154217777459634723483160587068484922670210551156445537645859719479947147728393356811232503702267807698497882231529924400068895991593195813574721402536618147309962034572713482863245594682528198531740435667063834661094074982562850722126049572765040157654788294115119021212970128532107552901012690760149478537456487793451961133677089372995021492499535545963570995734174049838954303441407076569644816302742951691473139392695259864894148278893420473271196207518384724554480164373512062313791616992253470004495956891813100642165426826730543408179917544705141138844181891578417173641451531791570053942309511689214962646450458600638241752779593124806470108011637777105797759522609802418604931644356529772250721351132970144069914914991962039326507900764645420539351592059497681594699159163718794288333071112211013831613592020522422619806663398857303148586864709406160307787102240646830529649547002998696286099014025228850353975348431573360346498220477844286586483898467287533854313745039276246666926460760448226967314684401967027440360984230070064336194118430020973426691265786128630722370131768713678382011470262768719325053653572859896122216827466114757786726496288592598618455933456014771678901401397510705811361549712725974676149668577244352532409065923465813670255167058584001221587389150738897076191419066288122437970532458680908046008925110582014985261593228649946210876665748478677942411731647991687120427394186742841015176953213386436660562468837603130703990686898341919997312121703433290431666368381741899224220940110205507807192944011302493252165513418021947152007990722239912363533329523053328605614337103923564278559544223984544332532861567980829593044532796901522044977714496570820782293198709037887353579918550978427076312030730667085679542989064808111801055696411841504955436413362630528477951542646207501891698795707971015871001475111218151109658882195953052712794700946509768267160953177758329326840466967340823041431551858892955228963868344679830709076239039998665563447495986095868292018016425991955990743342551157427813476167462936984698917320491837659686174635381500977747944141933499331516262139350131279190860822404437284998694885917537662133700296273330202183124671036774597768931804898627540198763428334532449281693416186130571933032279514204588251682577690700527085864044065652256998206337033564969075302581214629146319802550557826801486472599544258415987562355822869498928069323530819465243053756636766560406944796670633534350415273645075113033803250751566521019718426598235432544185101681109821079012541360477701961595113462978812564873397106380284999622140756929843584623773264133418701158255976049902322949994330051409866093223553613320996351913240428035497364018631495724278566251846575972586081453156642320405571369832601755836862651850572589047523905416599868091178285578610725143799359653142314827125298193231879420686893170960437587755202110494580440886927003074682477182507900681694447329211274095364783236285561773210205167246717523839331413247327434761978444542659921721549873873831195013718421022364237380333549678313174007843527974271236265272807454151907873026965579649102721903056446501473502773097607313308287941977628292982391966274739658159252012720819619224078050612775944884631603337184817232958737395236018640533637818915144442484139248857736607446884425213256064890158212595468579409227363537138314792917076315450772575930961940355023301966374615116439815295969795453370588085566550779418386616438445151588075345268603686540267046322622453398587673374749483408764259216760647979957900761022798248917895232495433489889889106774399226955918620086408459552488007185907807574443985680104784894344793137199831437048118030347814444656728220255071365225980985066070679595388197076266406171147917891399115169699930829718982621921254929105459452279513960312129649741426378287755381810341101910605215120475183946529986262620813454948196420089106916261108719359046290715324829742486719548652922948812937167568194413958522697685982679531541448351844004454772184293720730023269925088311583292699209746439019775294384542014951749870288679667494685483716298586782969407298199941632277985530327072707076629869440582680091724006498373158908591195542091409299111360968250901796088456714649432934215391797037023986427022186512723446019552789730788785509068486407475290704347326635622469762499084727707683170444683466596700446792466741571395503180210004364807472904863245529923404027997890223296220200450316918461813647464592877497907243426420205618207386048480820726792880498625329526154070949906377985526370983142716915535232864124681063656333366963562042434656293679994555422813970758128646736649072435303617048483501507197412928040293809140875025706000258437691577593488716576749687839892321428841261909277236487324651133286068783557762610537181164175128663900071477377837197590678459601624520432121676297799652399813707836536955811069381405250756698729031007974424420100125478631618622942809373018052482238093189962340434049125890855097243418361207957321988775590191089292132127321052470501358203130020719059688420242431439410119844298274077040526468775839930165865200354469158453358694515523874066337132076394938827976945273724102277162696106953882921109071803605519697789803650019177570288469058577188574544927387653018438069253346424915148665783239595360729697472169903215880998502390187248186277777753708035793678871732155015058097363285677112815108806866862758683758924430661722840775605547236941236777258350977744999611510837679223332782945569316602816679826004449707644940291646491101520366874052504424243564109778708090287655500752561783237261584764538770851583475068935655077798335851679735705094381227269082123492663147622874373057040920460737165840596186668445288167674493282882350657435579500488768827761954753487278094123759655824653592782903729085807249720814576699741700607746670638724086098830353974559611450736294502466563396453945368003814275507553089495261972113886881684023479290665744119576478303640453441864552731813813910414639435403262545643920463231164548276190559053411996822490373220705522875952568660211716625071637464829796601037413406393058242475728126722583057511545032245232136864679693757489954791444719720529658758216748716986382105048523341225330405046416076746967936387413223685094687860957605360145058775189777893795861516214400711600114989188957976704176824142943651589214246344846978583675418860040085872567394778863399546337695027369745256860500716244386886129457703270582969276561995407157784516597566928375962236132904299390524281984865503419326955513004758342400549294366824550735649518250501828822674029251141083841691615690698508848300860996716061299809998303669081121185283219590474805075288665573468845599058806426313046124419714484041825027486354759199799315831043026019899609439359139787897994950180491601343674034467448936500171256808142261050524864988027282198650849332231085577176206534427436375254260813939219440852640801096129013449419132770605685534656754861359152927581356508212130019819749787797095041292440507474705508075338955556948400715747554770760290608195624329064237855469066311978003498814876559644351163383221928211967125833109354013867791312887438838567100234335808153472332586170858385459797381506769131769764719349498608092998614473522299705210898391621590592047679037256566997865034998244987122011237813734075202505628157789826023943701485268997704287516198366915612786268825961032101692683964565513440079733983773012829170396331677528381061170891140146247874421094504871747003624600515925933912233936238603599821448593786922425776521112927281879376010027111477488020904689908672153978667743332131489549135298107676449730209870890586218775012355848375301558863402090220389521656353562537678489433107707774963046245096759620008424567713603262005042757775755492783737571946696104011326147663465696680953978218169957296299386369968588578676419419243217950684398195433150118223665119624681274694813439293239070678472632594359272501861414867649213659628827750647451019477222051636702311862616122844568718202847858557588392344847850455242186439670491129116510378445187637523216969104295117449272775135996806610274625953359746519842613729816807720995536559253567444935915495916819413730458710464286175055252795672924697951689864299834240770000176472634810631558578849310529421735959627061213135746573801153641155301880258585721965386409342545605724241861057274580246791827104793778748005985009921282560129247747689868422737413847216745083908550722337497719309749460960089262584576002949719077149340662845849537105152594467234297863780785478260863304529088138991030741872186700892825717385020694291111075999831141876437704081183179121233025669874515467121675106256472630056074178294066722571107756394333833395488487823453652979005403476401990186254898822658093685573090175740748576666334966584710684454820778935067097262282110158923452042583396098900120966925297533624889695195597219023767989306059236933095265945930301241869247114199769423354509831462318355928058161849666808749901694168866485035639009364179171596951389069747342967082701091902478431679966654798037218988065839335730330523887100926800654255272696531585223412549011653948300120376143515042214145319377981923901602461980793418789023936873528755621535960373800293407069920866495245047792767351220484331081869166294736513942640028533435917544504669802949684914932715394514897949926344650886417700617529016246591735423866778314207296229941674456797448259060982855267652221570130952222854282992774209627153658460087873391707957572223226580618374062207647669373094148206406350739337008025504279232236401089154897025261400532947484235838038049676818435706034291219240773621474286454052285880273191954659084777044798711621123847353219378282690425300381814213127350977896199164241154402635935278227814980703409950742733629954409528120322029257986793380327090278610411254353989650387175391515193811767997337288637350439898065892158368799035059155564469063637026858466356439659517375073168277018687375310033895197412456643113261848857385683388605327598312557004329281396759710830038683040299536507611295963014430718511541663131380601709077966857378203684905759102123659232037432466379693748656809701189495282893404063467750400884616185681708857379340678267364575945598281606270524998450504434844850662459786489256429522010223565515959351373145612714958770531399957129457910338151545789321880189600088348225424155073194824351317494715544820566051537165082915159053806590685001062957898659750731478032752972442601142772931144150150950146267168298256227235255503835357167136099466245717805529777871093772935024276496001233305952811612371767495500437931715673711083143077020442671298835089721145988574311829453070892274540736912920653219107761823058383207673958152262332681082886063629395411733920401031723633865241384990469463468508915764102796847721158645896205061314537330540669523337570820706904873431946058549643389069098690923035861743941560858077824584853256737793035441609132963890618842739308268532931378609491617990364410324570094653639359953244521239941110025379534953003003911234933902955657810576305424328051858618570408432821557213338788326912094170556615150966444649021930408144521511036723132723496157997401335620368711149513407049786204130414561317276554786668654732155450624604636659241963302775481995692818095686976156833509049804057712716497626994661889891117023430404716369125618054617607976211854154697398125499063368425686792637765580884543156457690889849637114811944886197731144557307037419052630333873892905943860310466900822753028088070033677957294280291663710856299142896214283241892112603869219874532232931815500812507745499154809772867794179047355791337872539019578010035426160127247521893199921207508409323181582478262094710790425245801394959595107384359561760182504695610304540901020642511121355183441797063112004067940554528923554761141227500987715708101139804150034429744680516825878995014153833840776193945513612777764383462838153040179529999438187733808115184806438507364088216609520801031416400112316264851904391554430461657176674617121987270533188999330025829098788991031233528891348582495592745397966700864585383328988644595573896796259920942123039804769874726798571536833731326097310682560965702750664791975588515614406527611639084874050694695981940506318271544999444300349931894364071345471843447257129600890647815436046591950237719437117363202932444571592273667166372220407304081660072925652761577959187165551847690767842410552769340313382906587199498663017741032005134172691469351335173878042545983495469219465007448684086012222169599746540198402422823086313045523725511252243838288431316466305927377953663043160193214223356330425082511842040841400243014446525817079087726703576350306961904852112558317352572110780143313181442200015065710848557410664082015630598657986052066871457654585411076361103893740264708138350215492573111631043590411419688580424688760013457730997553689517311821984841267565194339351436807091549090029965094967273456337611242770476355406669580645982359371921777250676376873694890038803081579119873901652678816890559172570926051545006397973456241732495682576179557163061846440025315633049767615155585033715591924503822678839117232225756818314709810474944920225411162537670557094307861804050161139461333511209546405042417836515455119611561302506276844545936768381931660974903044804970105242560660023286086474320728829633289400717405100789354963520440437186136143813793021181951169655661387600434574606318239304669286822474030127953940011006595325922000752254447780601134441576097822168516343138663881768635916097742764574795849695471721584601065025826415171480853704637529234817870993376968546216744381443034139554662628527657480196715211463558460468299738941912536864319018451555161184586611225397453757093508551494203993582671599240350060778513888770812571700900022021243330065256123138580546723084138683756779819222749199804358834697826678253590118125461661979971173131194567842829849234067095495573040822051046235236365766525213444117527898455884936905106059210992416631671015634338995761569071346878208381514050567167782456799270569921937642434094463844063940662992421067459232430264383461392682428767059504030144445193787405773239230194700978418346723016644692578906975272976804496995393419164984291123553872669822892616487727789155996033834851469761411506778516758054716191745063644413362533250811799816533613987475716509879556276119910495448907089681644668420082054043665662987679140276752379082073276272621316123683490383295948619373541319821014322456157317621204546527165008909309369052636423479379918078407596836423656126797001023651715443847668562938397304430164819523637712915767775150607622582330121195761628624471264229878255696472318197636145314667235679942061613379941310884713126969887430677546151205940321467610537206092049154802686850128079460524849289614727400421471915717541577396916944926520273556548862729677324350612752217714244272359671411276746072002002965638971675969791699731390818695749006211625194220771878956767520530802186775132254843829171314737616537034332680439713012489987653693978350034907573031167584688123020359997493675461191933744332453290043497222182072015421091265088410467851677519521975055290577113905680502066578772868430368291524572497570173712467513293288095126147571104597987577292469666759754441039958624723173296602786792613986659113879127561066726843597299892054052076473992013864969666185224646112891385559294310644006046544889077248404068176319732507971230741190328362999443320543242478796252798024178828496846530614990120437518594129864176945631357986172189767453809553120899578669051947802106127291939450028525174176103471420803568976339275722462969110132552505699516648296545325834878957596435887633011166878510737269437034483741206180444792266822824438084371006503334851621466992092296744405903215759244979955281004096882480084469359343347057836613805569656031398646203307332363963136123004687026095501877742410066986534396094499334544487592145281489547739513263851239320567931770245628833820825050780635846077979313629002574825044666219261877077529594038093986337651046529844449401633818024774956089766815426685922645534030003978108394030577876732430542190673854499149509433300819465540639531373494644838454586496014493479811195901463328938591313484505941829996977901911068898946388003363940735095160980828386553903973002431251069260326461492703480835390767653155761460356869057315816934396406564175284499905170759390215865239089128457093865773845826000944231065324411278989769651211509046101329252006465168326469725450575675810837108323937169341252604053265599548658285452529780445077179013873267257817224870383735241701445779728272789780769661721933628909633712770469502108571130975195374063865134933481635922051409249461637711864684750861997296771532888283559833969287681992168908807999185290180042807258618609112301584832481778321346198952480277382267120243479445531561691106206315770697805314778179809567662260022467427355415442699047050846991962637765994847202403054584441725891211818950422244998158846385819748803856533789395466986126038119825351296666129230182169874197763887891210433359681938412222004489200975582865848946787700579379909091672688660241823181087728925740461297742070659232507000291180501721938147281794568384705135957646901274783474066860564319364375602276746159673299438793415353936827548805291085550574098493169774514827212513186688711708200704457122503140811667641673752062826116679745208474228251816018564091097232522547606414253559625394323104626665752529435678882778146595173646974861477853231583436142431061524091016941509747715675981243219923576329081550101260599034529476890011156427220678311273932872117351166281244746396124064558888573840720641318942800649733936302719168885549796508143638058361625351747342807798237095445909838550220682717260928172586391211371012051715214732040565803672722911617471956908443041546575262065456969085839337240734709732299375069833015287774952443367674492978551162998804887301712158977516625013006434738571173129499685306410788292575768076259063041516549840723177441771522907778114123702297709010798430452921723770732663813125823478358750632520276231683044993990769460349555963854729394693441868238762026736153524995348787277372201109955735791557878668601219181472575927683447386794433347268444975488718784014070536075123208444235086736884546862140093203309225631695795546067273923311883222708047233314225510734211453198278379953517413072914480273153511862798147491355277210905865871450339587498619606276646447373457873294007903724949979503226978279388751585870675915996487844215488007214902822244905601580738599839722195150220227570961728666446679643407288268333112461853358350686482841713772704585670813641251294857668687953930677010875095160810841552183832379235239623059620890873181033469165919450918255484628787275420705242321753928214296271690289843390832986552899646566529814734241876713638721207842978217416435619567688843545739784258524433804647332927994356706299698864270600786305898247228245015420109274676569486855568894815022929362502450220459018014675614278438126133773121910115205328219511847790110179622875878200629983741972192468832735030419453341524040091291652449965044048176992897683504618460461281296359384673210407429190773127922780397777966863359359972033685418505771480249725744795026852612652471432293426823429779154470433138922534476462593296913954533467985441886452802876580115407653794268094346899333999006030246462994083172956586047198791908309561293465547137134550258803187943691773525550971266580078015725401981008315383041976844647424822175918478700231907656881493630073880319297947225274626891553148537302543902451428185852095203058936733799170085444767959893201504450961843298687721204697512014090837838985371847259197456476108811239392485412964671613573449295943528301452975743399988175341339638216014570531043800734425169012570806535277563881222440260449037871914872271345668769528070904364039378632272507476517917421922628445942281507374964115639949880585649863136768550479363961442713093684255871132942045379440437818200456338271745023356741232817289901866130314805921849613145413335823441963206920131442095715664874180180075406766053461976435380570728040299851639771606916715776062727146215041254223939380573334914442279723771814743145141218907393642140204021733632101401409422714578441429536238346311516090993917839885545038819324190861347779681794892104519705376606620322936181421900293044522158127182083543597481549115542080307169132117537334276522783921369426861599097775127100073179928230963801259246566825787198062152547984357986433518165646724354206377058476491764396726245344889311247304673602892479327288609305751455523058939355145019072246440643181725075886850397282876708095277608814998278865267858218640007197387385905309933390080597354418992628389187072085580530634348629644857949412691567233787902722466150545822987820416425344086403088151145545003502413102586613458527568820128644115974520248155192727732320311266486409699892020339629438148019730025255061581154174703647364640654335306490226987900570695335213457583103615732127119519442409352320767448532333282961739570165524232730660079247200512662085121145939041797999421788228958962415092359311941616217921745832472636149278296450956281943281470782314132062607425142364215337570056419463600913822372014052386261505729617764462638904292807087328238484339810569116421130666865815304283263108355038961584044456398675569300035905966253409998095818109852175894640958114408121796579399383925513446176689129920166951178012805989693933710410696189311492716540815519152750181639169645955172219968010561570692620430032325338536118316190249920118123824873603097598097852213619771802065279460214608232664312242877456124553775422259164076595064782516190836314197669217369644488743595694626054589954890879716248400866559180367593179852065651379945063370988781065415221100993250382480559139670507019381266372995505913649858620818354288535238775774843783880883267267094547491355868330640040111031140709839362103436522383858510473725937137614449257283638189509228946439726274966247117262422705754758743641759057889020546666586338835548956082212097488551251615477383011907068443348424551440984488868446886722064796948436222386081210652192522863758623192330810221693782070279575428931294835158881077558843656201087972289931057892183884249963620930644325543831128997781848054943249416452516403192707049008625582026117535088410272234462250336160841394498227387377678905174749468409951345784660749024731869280236072582151213507362650501188081821707812211850315528965712254047554080138864668461017290036986010558844978451823544949857008428279386095649041291650529011086267715534159830449473074314905972771673379846298712636983131487249243413789374021293137173783943059067863087635056517540338279916422805784922416355997044089694672832316654736768652667712033319938901162908583530266854653221935704132233962026793441360349288279389435348165104759452482809132255481078385294771954987102196049741761676375206373457922825133874840625536226939848802969665248485808245294941921082796853484179349233597235549059012606353753597526434102243349789543175816828518961366233347549363469998260509564707293823488038053694939069016082508934184630875865438574457579088439956849001285865601632836078449545044692480454717463167891400037370276592264100034095929146901853314590784897713259428397354443066309428485955141669309529172551311848452155976723501372148346423801742950229915290457041924842593582122111195712371065326887771859497011055650098496876773554788669945807551376034651143619671023488402137497517733114396928460098883847574807141983955407955355413998491869015054050261337263429902394355413070682535036263243797443720336647168743734347557905919892108376016417506218954533318875311251468205329416140141455338174344815137138839549369734073651864781576697435086040460844920310594493604232353471956245531963280910609110935177450584772968189694062501964359570039337355313953811601313528210850489290183801409445470915957870452132984594342148027003285061646928922344632524471911332399593249039101304237920251492103320356101602167227369182507281535648352233897200164524934850852255950942417047031553952037109230829001205363711773054886102271419151670975602087452559978777453145185363094204575647994016806665802452327050933035734821260875513139066000576777983258039319872221455417594241742831282692945314685310686574362965551947487955361343357577996845428615015519884959760287619099176540103031121070895539303551784193009379064884026961357931523606435512691770543069237197249461874402042378488982450791098194844495497985447752870071039032211251501388188305232248425608567982314047694681157860350732200987854411269159742892575039189379629100093665786042898738425208903197655944697498912249932463914551577044164840772746515320241676946794622114726828403678402030069172751501732848839203821870769361975591320253067342657821640682904414131552635974566525749170398991071082364198811277210397978375655367048288120407472663687712762521040736537600708784203982705226611965187177672727476791268807924257567561392610570496875698831188244240893949652679070247234312552438784586370162134366810010453067129098339721856406119245291170063764323361511990719111730368876089394554573113587290260280542215600150094028064488243073695606479036683317113907235468576676363182659785089617058677591921249910873929496464330210600443660180969347377310060525124253901525327231899236789322200025105029051778797038548020837557860581833269189091144270520356328988969135739209739119739828431029373632683563004130994257604527099385637432652713325568583934992125886752077185968512086633780222053545521573442419934035225652434452871718543199911750845531025818979634683876883495503686621848197295242224691741478253424256849147182772582464362411284734055907495719471072883857450542359520048763074976030911068602373947192880688560533680642952325390218894752237922018481614985305931691620152608555177561814066842987042398766615568489659741326657194153743544608085292994647442935108594915959610810050629583306020704644094074667765556978079800722281476480925008053843222406018093342158628535061427414765496457487847983985362333670928052466089689108167073937361843965766853262994546764468644753978681534229464441255266318184199551817147226892435038270790793376566743583113968905620743556956541024595762742680779446035191366146928462592864720482000582578091443398866340595898699607764941815180283287026073793261897406074190986709636212665305756314138190719057628768858342412311984107409640341439766341286244430580975359793558194381353425926355398694635840483175601981582035442156034885886184320608086014397977226777877163411591346484477213472432092412853514935216085011753056860876218926293520087822033217548873447536648444787727298487886044752905075995335507484387615776700908138191531942031721851595314743435722102421031490173916422481986053466177158273594577786957761138376094233317994306241115135829134518440436172622991151971646511112380198345753394666728692773097445165874859949298244598994913112948089566286770958237098553194097505908099032166263615586158277149301275008987551033449636273833065808091056956423663512650563417458498790192215185461299290316776804197212392534247478610505969227159029201400468840385388275340584384666746037651455565270267878705437700880617713757230971644767358733811118823158022636736016780346674202180854115789863876165075805709680548032627633620998981462699397614930019771477834376424819153410926148141392260874338820056266928012580523642640472251397740993171571518996586204768755454928901754792409380528495006241327208915214277864990447105137343729080511743415685620073735871941528682640541348769297409494840682677413931203304155903532761990738963881006524967211922630377307959943133453078171231379162696437801588205819100653163649033620688937110260353554481164308237159491273259798607905355081119097972232784935864553553325708046039688595420605202515423108589344799077519649251274291062631579013989600641156143522016634141502971319331484714865273485843817309320790080564951611911752368433718357403148721446862057893060190451267489318647186104561218216624833584011006076950906417629150891490370135864633783812842631578571468852044143714042450560887351114335682838005356102609011252189171709824382802496119197427015166558680990616228330300422259655148485214657401730342644691351716279097559703454937995049254870914619940001666896321248040214719775076601476768627977849621027320497924722979667479911523217938403842997436672083042159589138935937098119558914781562268733600893431563869781012149844147128636785866610704867852408326742413237902031691896204949447917615961424823468818849137708001416453152233596321464263420207081137164574627306657623376080752808731192589561916828171514541021736878577832066744687675122547269590001035757753661814234742295054346482030923127441990301913583800661960177768112487923892515542809558085033621583028601053687231252693016338315544152920794815448106223345908592942320545921296179874707125888334781597125913556131708953216572848284147748445173050162834467240710916331813076608586544907306594971095706322353419729756758867147297272606175155775943962892281028868873229494449455192603744664861370849245622887540467169106876072460669577126204631797351338517970314944623963129210961056991579810043399725302923561117107424218351490711898625985402708656923347763845106859938225821801718547880156901431093728170963029054191447899330314657101009664817395863979561914971916080684242868938728865255348719116594573293312622772298201515300397103223492247420325901964053463089725989517330620396727947014235528952847106831125235999709945039830069732479177641462232725301527219042445914136277997439414444092346534617929657083516475048473084858628234245411116986570333806292769240579645150388279845436371726735918046927359466157176350229166816985479473736565839651659060988814857825877727148176971560804136965945907399434447401755410684149794659424483436349928299406034084869705090090637317222913662118537227142295774246315078677357488771465216031029219544738166220139152030758625823158146270499588429857618888191867030517369702140853974244816350329511279539448193313296793077444515284003691083170098958759228628013926184018927499455115701384356652471055067297255158185104314998437173855710959663878794429451102858019884520653136668328916855804744112052616262235416195033974709873892641231837965673285895430045841720604664593584699667752906201569152411317693448995978790445821282340324198358085042517408945464657479340248349291805127299523374878148487478835198652009146560794816268889074832826689281711947186610204602451774197972174796797874411353955707520839033824912493017915847307608885565951205716232434933664947958205161448507613318732780470285448423232936229943644909300628421662577766839538463487387084791257789352335047259792709616974022219149759079366213933986798859025771901448279923290243508809873368989649298582037508136384928121238552097420500103140016842888660294428339203908874951544539072444376104637407098440237099292435338977402888886030314133496182734156175170908918519709017578591576846558718170787476713180438673453616953897335336435513601634477704850510211072864729329474241206313607601489693953750044953788747197243573999826416870264627570531758145552447622207667966809421140237428924035685981247856011708358092690071862641222047768860005605353540056039302354794745304063556628920521131900269080551534547308747331109145024668887149782149201589539824219738473690832147875559766485356480101942877800410952296615096229839164129111182749995935378004485016524721315126465908818705529841430835087387470274342853474022097817919491313700406595966540920534793706140106653007449609749997957468539985679419040829529326475124637948894315314348223986570269195390905656632481276136420810404231263864439299216455703808727980581542932205831284484358563795195486482467465006114309782881077920344986993517771052761990131097824555602589993298011570821664139708084974847910074699033856869142809037860677032274534252162392149238070443889440712143687011667558762941881493144081035588749197829049070426270365670249122201126170073246091895602253579576226939303227017501974607648710643522618115443039560297199880385533532630778868540006284507342663527149030191908724994177680858431512791385155137887865938046577762953649603288285534605306346749156987601887842991246847912784534034035224704486291696587261146031541276460544189144463990510820731953383088800434967862263718549708050557982799058318805933895534864983574119251653540591268768123386671526388974730760124243025141532680201725446687480826169369320313806788950045839837283246508702421620569195996856323568615673486911773978560741666761688279311660657085560380778188923601124136276497071197012873990980453216535709154405361691525676305076483005090183670729624401533803976548042508814476953651685074108030312740176902320702415875448427348602542966890988504041422863785034295248778025785016548945980009269591009917750407637222242688733819713397257199163646344349233149635572783404693252583643249524150579680367091763984022025414974326794283172513187072597722381688805754237540980575297554871419127046883001827676970760959485970905373317257224045828299910195162780584581321845816290786629752320977456539473970671525520608576899619057151607481980570902868924095551107554313958175201970988176949893144286700213744887947293762120537761448242085450676982252764282463627808474917669373451516082533663811616956364957597929891852761336338160204110911680260055950636638517133486397646645067601968527586075102268431053498162983426681990913184249019349796329137667122498935194197220923580849397462955581053466911699269909745068467160700010940117916535617392544950730302985048949599828387002001238028874152029692425698651054092906702902232542468677166097860191477378600824570278517059289442653490226863940275746628542560319806686567625363123252599808792479235438029418612643716624009059690196445812917699887447184989214898132767419747480759438263047405722308183538210426423959535962278595352825673156477519738750935747760172817880971773908518732907739078855185462906814578017002627169709784771200715781033935797969840599366904001925927423617769106762045405548593438909556047024663332555408029638323201708499963311238100362893331340166232482103061349729882523282334317641533091938485588229076798742317716916014776633339435608100505773085260837440027898869394992377150966840330762474128361534891245829656077111639542546245307744087944631021394145600596472558423165371388101933825367834577517597578169093816172854823381452000205512485051149433995149953045577994402380214888334127738305010657188058705804023415859720622589005519587664184149868005307529454348738258141621986843533150229086531088932012685948772031331781819519553155555764597252163292768338912150014597165364246433028798464634213928054964584035872611166474637148452125391394821691153821105274720062588021959523794327480555767181154053824702306757725846271359600657507471322243728244688976474563367782641197607409104799116665254915130393961758674668184923918891495294230986831829549349544413989005341868660459513013255589546238538534721629776532665034672853417420594086027157569200736499740244643484802161636985614781729217569688391023323121703908580134642447860705577878179119089159949745357093913003863315954819061655220859718414852812707903312101151918354739143891042099051970595542683694428719811241638223824993669219169730684729716114067955621979290629125839059570951040298219908448328648515776510136478822769274129028058018041004080334110501466513089495575064322825764270022556369864005612458614468851756492242751552652299237193709521396670311955214267510409789700575090643839902782614761131733071374870181385097650443291552070049541667730245618960916136473788157158595889586340774987012643375584038584027298406934138297797544338767734479086348849443498011621691859761782581074449714473948931037722233911427170015834596604738892119115203926246743375374667470454873932329247098750783025088640366849861529116770062037231667988670985436064164563675439426634957280231980191284552853586475461760966698149598219995236487845785202122176175653418163483847366102735087957638109089406511115566783017580306263353008192857049234641404120196076129879088141513557492606409443685009791645473173273676445678890062761447486026393862077668164631550524781990939163649626235444894964004468356463217454649992604951677227618008909779902734595829971327362501196498630748515807515078760128579918652050433015657584582297697777766144055976049460886543949151533821845025173500330817429624487217122741130514456989902929866301167690289278415376929693313720562058669216828706462557946547065924388428422535811944950088840127710597481237519210062714757784349721291814998848350632540926044822858622627530449797739749295509333071317579455650018201867678381848591599779899804702882390445194459225591086172352510478064271311712321723003730442552013138346042642058159705650110127459550517996018733684301067617980086739858557812325679612455470691286639499503599964192589357416406364246638728748770602460052544000430375053039447955800090027345413003843846148190020103288484253881563608037348406242893916316586924178507491693831175651704761568716678115507304900491714808727670198742301595545468155346684731224807284412725594872963464026522890023308656484360042605735478693860781689696546084054051469888181867719212348993486074832277843224271752959488716737667769648335560107553030654192962187186873318853743151790106326476330547112246791778076345566237090362605441632126213801356634140647898076171941746275599459493537041961343723263385051472162972795294695564302924059353133366608877676995879255525371400379611007958100664774450553963665513842681720160218764136900498531614204036170800669036501840816619255559798042316028492486938300338701708255875399223682230648568285304718085818420790770042543501922527364898960218904880545494856518130837818956305309652768277737176262510853919184344104475945266931532540201228838365601954602991728854901211180749667244767061585745561452168020528096980123519915076203529072878908147973759351946189037678734727680775654233656543321301367314800547155243746712682027491237348478605611532442346214838346490132834613407618670776474254134300100905580755892792971373224682378002819682890107668975495126077505075211923472475456360408942079126424777485038324513887780802827507615632862886221100853282696449661565423267348429119378657181215348833641513388057050620989107954209480042000064340252073177432207585893508059946130126153152346838670001349987560135333917765416637035819252637252031951440922803377863092811908820190562989187588882640717569556372065348663559799145642387267808067971469597996036129087696960547120715549578861260395937330409930644394076802164174285622575117271201593233834167010530577434906799460088313609462459451103369211544807822670853356467808687163885217437714937255151897758141490892389753493450441098339261360287804234781444844055106700918306417477004803484097207268200281934204211608459752806322536185540243818620356810297197522069085103625555756499845203050835600538137414852084516572130456186405340711305304666849113536969289831496343308923507813804865140256479881603955770797316638723970657533971699472291368922150466038814811405858625615709853794170570878643664065428823637967223391774789549612275109763136935509599144605901440911591272150861568646952250120394771160381705946404848231586723155761777749672133682689003939243042768315191048303245567449983743187569424317554277887384921984774138467600412274951597378720643580781642887403080302858546794764713414394887663799574279486165567296255393091560491422852289639533699740818485998970823483949882715867765076228440438552595883739243395807010905036707835759550614990259323963170479210884590837914162475351586027966839679820087110881450573310603046110436474926013159206915383358456676927331618910778889307278191046285656252385969840528582545011391813512531783566788819399481175942240881687114615096366281661905922261760421784524744388215676004802814884967266210374396709299811273978333671104412018384033359084567774251328211946204171405551290060510011731634763784628810296241054724371600813251894863396488754947283735550090377180085411213728066125534842801718237749926258441497652965185254945181848400793569163138920096112547188198539266877514559299458928252946694792817634664707231866183717032836726708991244127520607239991431170637016821456518335191766085124884985600607650888192147880532077687051864399319194554054687232783739634055090130325985739595923416167301772130458695115541409552042069733292432969850453377272124341380130638052838375684847979380929528294095105235688320477080009368269062001839229359048026357945130778179816132190322400372467190683966793950197127426338126698599346142905759668330809198095649643288146906101043945424544021403504980014029958294878783946622905524283407162071644445600941185125968862237995014951024173473937125150375514657617171289337614516134534540258453459508910537996706703692655515252488577823014210882403059649595446419307130102508926958837335817429110066776058408456361114710867411854899509388118566488817919205372866131579282860872586516308979553813217310657732764551944645647453123007806081568967710553235229577950998435863765223915249588186581271861816416877841624306091362437722719797302081609778383100223127527769414398754350489106535176782839906961997310823656419193147422785450959398949270233676891935509264178832009247161722122393113029320244129049209816018630182562802872150507080177603723231037429425500234738616989801915624563371497942689529335477904206312100085218617222464757397451687004110241548894368792067596933022271094136268527008111302460619437076858798414504397991792825200657593458349444449275713129707039596710913640671571428569197394529301809493380877415500033222251784385327997164621534157185742360344877552539324606611151345324502815370461580784852666244411992701603693476780729448733096860152125954778794205525492392446389902077347453739955483586782301294515105033713740337786979962809307220121978403181181551178300011323843973788873745268599528206198662787328087079205208315862619193054649170128284605593303275105345772014096616025888921506149050520614156420798965202538491776081403036933372838031302667438975031727500404008472781469653392237633659986843601781075303340391556531743008832751952248398436459727057668444477294205684235994348795285611058534678418620847224855924545510518479981778731384828717603600690910273712324704577748623620502730144178239895505158211779909045305277430809102721505986860496870359293901053369473982074655424593539299757196451044088552275535178760333442594869986392159079970405659653891111045084106586619971641348099018832421369677413331755383632418684859876269440919496300998050901510429349892585513479947514900108027307031567336048795397821774029294549233466649403858388805049436433783121292031025410393092693917849069998428478384394694791120569419910838908764347363899328056440872117581251732283978035030515213264969004625122998204914691212554409582467664438318632819741001958229992172576636464086839932445952417170273327909465990821410048512841583886564611969022819352130222423704138114148741804844588181123336011856211621697943295197943255769757855443945170029921437290395685657627822289896468842828753988665154577099260391766213123183583197296787693142859438292618161796419257078685023060199069406513300881134798794643457532675385167911313969104001973704825428021534895995335073852095579289769121173771745460773698942795600888000446739351887713043458841866037607838433350336591229197134920632734796587627656635756547770863850034398395250820716714478051093227933660908427727689569374191997542976249479866154512021916521557643698842305208244955680900110976411386403943465585381109503056698872919813169370203252710413729617955055033616378638415256386896305440513744486337568851542773528771961345447853627130090902119415901216869122509022748899261800643446609487410285814756527367127154317580820269017041082407885438158887446373944257837507060444669600570229876776174734489135991287762101583411009414045283762138521936279275627429596527242013055791402385183467870488233069437767038721840565883903783499363335728018612650134547342412914464686414175135494746733947398457979379825181003195418588173000482835755685021640033164427539924970283387791386356139782094810276376535627206069052221233094361745202152953914216482606981560028693683519988985245484821653562479446822327255999647545714479607287869912845090862110682607399795654999008232608600612755942297859178883409099551304080014955112453627202057363639892368519188257456570168707897166539637338455716121822471571814034827926107088146563747944983489293374545830145406486326789393663417005511077500860909190113993732000526340763311279081767570255902131759713385958305147015409624443891190766027435683184729690483022948054714302563368464015124857244294342062743752823160323770518988797382531399692763800535495094018909262836924976068815837204204548709850737204012022871887139124112576724090863132661060391302711674769084545481745124284604934527742385751810184519447845507397404952468449774414853890630563516240779301119796594374459424321767729424585936630476871561208182224372425090580773825074482202942587246570523741568604986155511381150507603299040873262073024373057952937153964636927063426824656530204686119835461151588088002060858149790714263916347978449716714067434772405130685766144086500590939151486929088484983179411000277490719118914757008500619350207993505677325239452728442738271286029633220430922011997255319825791738115491159224886253195236227713651801235983147054817416873744486872616674335314261750393723355615679430470136541457061493016469392911233216670665455183865276886848700133446022521976784886140569856318251926448526343592315517227327909963921375243600625572000528736454037599636580758380072442292723662768583387125533113170527139958538071549499032418333859925976754369191221920841845647040292754265006782469878779656577423247932895588189880268979454987219163762109634763150405450247789240035680653167472181446568107164139163540565135126083877417421438344761390262490737181424133743115219100868749497800802930992513246837901547332289217471802191056794301107609960785380409126594102878795665902806238469588250563697160021918880825174199176658225014689679358802423548350211453565849109015619671775413511894604824990155982021271790353078417617987897924029025463646874065301243663703573278991724338823123701866403654260295155351706860887630115736842282275860757032672959764698017416060689547113241129251287821611523209741871357578120366298017031967710492565515990983762216875138158273139677592141038978229870478330051167383856789013557277624439342566567639887304245711432331348838313130363632321520194516151152361350135670873109120777063339175718674188007360401270086778540619888067110103491915636323109297577524624469160025424775235944260951921656002524759539168183257811361561764280954909096861574994992678537775316887120953623304482601629863792722838129560627553807670866901309608892756164171022686631242910972780085789275214307830969519100581441289579331510870733547862725941935463579784110919869813582327908548329566994466104088187431144439029118729088221568204036462201652768962814171746751489899121522813401143364521601800365066954651890517035993814775083136643569095681007876440632660360405077423054706829844997477557014553728500316056438622820848622842808924394653741716531066711271031397697393380077842752578919318169049499630449200631807198733798120701999753172575166366945407943270171637977614134189467157113101991844482517982522301659646336453478766518073653439089959550297513301896373549610119876694784594283717783868856167344907196635117107780462467072153623586673769754785682040505317990554344084348812936804158382396269369370072042030017619538006011799355579493652718114641970956311344398948346472193461312255253774413162433630850800501027888863108627183666951134231204523136873741536366751992848466083475385392220210026498656237540260122734307801283106804187120277379118101175123232724375354752803113328155713013863895422309166238173821925934331027156099910153154858763080910423183006082271739710892673422166820223504587582335995107713279686989483690110955967732451764116220851220197836319206653035793501937879826932101902964011850910032363583164795057788686350062453889482731354273747044542102620249436420905797831031002263163198090774235095063928768749021353123042957228093283161844163583216851004186990168767859918778034989638213952795038813131007769061988181795541891290574569874819725652562891221611644500306047353345585419896249371508837304844076080499457982189490837543094837402612203367365171811953775610013427190724088526719066671042475722908673698237436273155354722732812780028062682625162626914892635274083274424739498428597574742148097286974147617619994550540359692489561896611725336303845252805304229075699555743719482801121406017897075000904151640785274127439826332198835789468667015024651888734831092528618261962817512139395069145506922938501990465071467691442190810679913022847893817385050495947944399114918552683204085860274235489442992049965618025450652068562282089293666208243507377100537920892887599069078258853563894819746096815157987153409237000733760934712874932454028375183661221735109027191464116671426623349924986582106094340487203407779084359659496940504072808608490120476958825787690509305828883944513228626657377759972578643882209848880582019462941531770894163817058926366501567981251787419716567388072979353055607225403712987105616005329258679889685850676019549331051874390569553926708042310580054437938258610352679610133477318302367048261284094918938536275249498642566041667906958621589404675029411296648321503048139505586938684892025306653347140991479148213719463938409868611279173882964809537942247694922166742935933141080592011196735211609600615774594613974618673146834799678234940864208446804823194524491344944487973584014167274891930296760947968338888389951828601252184182818317721473592563638095512735060503809611651186176437387417421419742568998116167395955548232836448702039095419366053389710877947424991884094336860096545763149148554633450221632745191102643143521662672976399378802692038952802222632822657956024470517267165205304217671029569679283025388928533097525107707922691475566870237721401632921021885609397084704970621847589753508149610309284516204317244010770943394858203629847369367949608903712753488693512637279352743720804539038422141532169401010517654054416193438433044486447617423791688892457283310395645124749705890595531287147216089379726795885148329407569597695234578820326815348560409862654889129982349762977604145863746511480266817009134320554200108662020789349795425983376710047154101077978484191482018003967920393154349726119874952910557076810697872739152425025855152256635941473666163536207285266983711764331089359485829680180119467418486565636796582279196371390643386453980094060905497994133456651019731442812012086991438375235696926098871128096039233698224800149829851555608226133071257206159235722345811546685586505996695113344509496947349557695754760444618029087550008942826887980734945305614732912455489937393831640869363178675481675155558981711545320191567393743331015831498368859026787210859141056863891038537417564915410554223157979546449188273201121106201409303874718841626013931669632213270055420717643954411366434891681896042835536831411909134101033883748561116674881439273391482810264321621018430425769906619155301173351808169307498009760956811632579116742062507558026330756141284713988615928432221067150526251161559672904780556429987321650007876128929361728715611940817147495434843071833808011348642304407817548467116769782899187618017764878880818952242510652554546306202366317424618467009511604386780751490043786667160195445571955412806745547900970334207455423507369931930849974643775126328179258752626917872193479961722155068314741828703919490911833276614431037100695535222329260462461216465083211493058654396104655498674834030064566619387621106143722265315089043712709713238095297908811527791280627176837096528182251635607674973627251106815589508589877372865607381267604655985020123829249115593723037062849442491048910327352943861374161837106417060406873634124112777069515216617610978626344253754979371286175475167600616093881688285219904642406391183287824756892979856399970935879626512325079452239946602808524182951578122092190784264079838066690988297619996916665968660350462371728967284040422959535042593159882567256248588961400661964865579617535423999573695808630393596664037316778612591343204757295793529163027320182715289254601812617765987645129005178138137729986685497723143310429708712355650753964959465787835647033158766857458059151807533759320539698877674387850280151982393984365075499138156898088407320855487491250380989440489269854983190716361299783698563021836146025664240481569442091870630931764003325308441102222848636492967693176831138970465469184549960863827389237637123496596813865006764141607682413210140958386139902371248691157801032976770167933222013347476569166843362691476742989037308301619979130836735980040653854823422981495053539239627632561495838639525093923782448773418511883947370835926138503709948345947387059626716857196099452281913582298630819078063547669352770568214407699343446232091869034875634804509506155307185250739780349386747871627576228829952283479452456150133518818530803993528417276970882538397258090709187064184639511692669641411111654503447164111817861189049942364103747914162507891849737726347878494878474162271065841321099559359002163783656623290268122270045326478056091956766120514169285910505550473601832880410522560149427955217670633655833592771099744645477656781009808294379229913601336415789228270264478786825230600414257703406342836586465012213034747065195971884818093424788534989192457605807656073037593854097890237203002999951446154769420809123865635910938700555117641143382713744253591360826304103837088182920055698472088103973909362904495762629753860931020275562558097924682772364189637911813037406102192388378591214237273170132096525659511742328152197713692822298679599434326661854813653706077836751671261784663378641409800286089481966599930441790335959914153268471558324005160888159068173379745827438223613230224139588798881770766122824601993721796561868367882935459494053391009849750963851128340457731596805257399911785426229606461435999751914378523461024255573361878728773200183017140991651873791879563678784144063554013674693517174577849294281605785540074630633592694428647867439890940040272343457710360983099495248433328705264647444922883142467640812047185652602341692659178027377165772125123645178635574034484301867503992879250744207712357128467297523869109991706101330087403135993199280024421420357091463431535883973117457458460306216733764729520022384481222627408547488534709676866358088115680972776657656664328567376739615815361738727328553179400553411790960904214985089557563748611231665899267956263232747958143739065689303207994702446219919632198682385941908756927287877572673214867481713529410285672530259226017055083655395743323107737086527331155746472629190119732302446506871908734649377255091392598014848844641538991880894611517284906965416742728511456929596173171096287743849931549319820846141991734388193403899925144027607028527283109193445108014739148975433324758171782635017855009319389660707391740232483673395268484839591242148037444809627517405068365812558178559688314656641241519871881394606565808938680268878124098879957366787927110586795666943222549035861703584616326364982478031505775731179566969368593334268343478838600496236618068108747730782086100417969349864331145360078441107510916713445948899613991227253620405823266642195856897899416151536121594144710174505549630317458844811393230020912069304156539388210343746902039509060728653367555091817513416941358385455087648039953604706064268844946129912765748244389400159178089310547252735805343312196429029688050894342917321865962458157879973742908335524074978035220861990155191321594563606340572806275394325638304902550461863577450717314273847152913363161623483314799809460555705654623856365917019554763115782148384366898982294290072559785829116326392935721967641746062753057639985303277012074917051847803331849804762915124592305525732120699410527420555933264447700064232754408636681314084910713024780570460549909590741220783198944645348685221537136141843526948428393204612197590859365043581051408044264489125287785609585568645806869938538191255946416438328514826706602720232277640190162884234704414983281114729359750673155668238683552749490524111174833800130556123899065042531591036110110848078039145507219466981885660035211668197577414369127713696498569390060669022018787289925425220523616319587578296609967444569149218401734633760303853557696521509974469378238689760355418518389528911219729048173107456832176661764581879789268191545864323794688418324875775427433755121947265505130924887943516551365600639102206524465375207750681168731867782892144015888721419639079026997439489597127002530194820409903945369791008116435654135791761178646821463876555109195982980142417644837795097725591203817947778527752915224810173308258048489172853436335406088680296335337601032611545947587134031976147809133917228789702596022935638868847208660471671650767525851322953001881236488260327816216460789025788015176619284601301030451341841750056846137222403476847052103478431386144155109834798346549809642347446742392454244326116498174855958644128475988081690398589573728253466699869632055023211761701430815850107887876718301892895458322995615019714978151119754952940332396044476284196965311962508150941139754269281495854908069892024521817592207622511070923748459585038892957562822288167070124124009667048137678921482228468207559045220371319583120594098775077898530477451841216341381549748424000123425956654634728915166792160596249835036753157893123210499321601891263203969248542342913318713512156598240277237437981158207864277946530026618183057130047375785188827046443919399444006466786566334111431851219223251737176761325576284542815277315781639738155662855984246867148536836602269008589375147019869485429901808967162259124819263775067934143111559173128236884675279479328030778810789659867280455680046091166644784666419833843361578297099466964951138455413818032458883085595127649600834612571981762773507969318569387263004603648999863647922392593969336284114755175506410993915977804712021081853767543657034312544217431799286209998392688023418482862311160841162092730022502527833845258422150528168633284069077182426670763011747667130495909894270988428975631165252908051042456988418566540829651896684607132907993425998014082922496529751946399742322322165853146344312572450358442172586718526536846204787972822725512767136874154197934250713732002673165069905064956413914357625961891008943610465624349908078635365065895515772520195521401394999490229392095242465559536877904853139911070237570420732595079505689356403573315676978584479877951383002896664000335686085378605314136589125007670550309163691207465781350023785729570706784587279602314153966579224483076477850574539676580203370535121301782765521201286560842549206540628860611565092706051788523560379335314598187828251411123390159038561152235188501065758787834569823227391830144090580845563385460787744994630130936415718641021196719476312672815123386591264871016485582312820050967297673196888371909506319986636327183479680610618940240263963010405793587829645504789166321532950632198418333500995276093166526132988081992495206348822723466743364172252927517363439791426357083195291444981453386551133985726585079449396239932025568469509736128626034015807685008468702219399626044865985376326123140699868425531689377578106244187217243094238937871320159501691586607583204861388891021623069740107787088324149211255995302751152790438321010141978001861039978125150968544487318648852298015386638347049363037457862343724626359238167272593796415690028555544142340786852187219784575961036847378389911492636385456062735593854137211053458031108457805796251833141797525865898947045495557326320109256271413523708116868791269187536693897490844377260814168455123863272192025429333334217491982459474080382972942707546987727240530986023566789804475354001839114069746842207894136384499525125965649091304557299408352688328463866557608790662658239547175555722893678799699252251958486046673923741007666183924165428336122638817328661862863059136761221585429153527949176546206818834556852989934167608648418032909834534863411459134904878926570208830253597452368935332741543062735354030304175597666769615421332427005982475085176433051706958313748997625301823645357188854491087509002709545520575755070234438279414325512911854508026380808771475875698019161434969569149179595877846918603092195375526519943918586687424548603308376873968897670089620792460967478761906458578385778821567750218184158287756825547739583334664000088321998511838930533576051225690106111817176912255925834016802057827393368137502657026932372964169909302386208591297644947266493027649824589626439801859234640661916703962330989572029321710170966221496061683333411355374594770228780452603656289177477216125991164142727638391011840432381226059551469147514918378856421729566843962813404407835958939639834404440098123123653605897209187386850567784306887089701614117894654586085212198121040057534183417621076815786276414489682807659684997730897041127660502540532991448929533543811055181165555997694976357151496983878427637706232351044793169846864468567940954219505613767866914606519749861713796200006139435787149735253925642329232381149456485820604011564984912800577760804222758892623858263085991779634222387784740510450713918243410829926940011995315979203649811907019302178747061700334571967115324059409420760586910602214191213384791527145801903669940157993972142577637804969391778173436234363641971710723775363193463108446439872935357924702862771960581810539070252256725674079553233376362936767842383552895156770708529294916076714897774329885963554811690337058822930632227224560164018612328004728404394736296774265986909052263178006819678297056094079330630133998316788454149376695741476939895610825780528282470906238903459133877549448288230031995925097702337310838614054756868592361442112220094134209330100600052442672790671496852923002309850989141653828280971148049027594038273177084121742406917570205124154666517426263792123682971224580843227432631890316459542993728286609815825660328547206695633997237154337113799059229763089470538172172817921196157283993700679467880261534726189188449152358851128579141030892271729028117482420348092316337211408661027356776992414898402252583842599240177395776143783018528483383410749409100431446715875048220838333924565187231998644671172110127493973688099394406854568068212652049576466537264095176903174015680392534904904675748812465373481317197163480676062810592585803725601118412254556337134726961664329962005101693424415592846061301602485569188168902016720985419397387153722276515313414755262379886476328722126155852105324068356250864786253584262589602618933996943062066235503757892533995878646246860825983465513204277490713254203193595315872555393084529250144320496739605302586185946245323442650059266236928352601210683553505955510184295326385541442553739732546248591451093331620990711038135424315046979215967356179889902967876600144532642849816332814962613385573027902064272855875682809402262877949101953793269247235426801119839009811660223618078459792666492794825137552061748463436023623466827446568206568782704428404359598074995435157674228160265206576693820587501821956261815312509012631420187754367980888696883278689842044648092965954808707400947548260731308770717395899703951370658230606035834700176309571321431146862624727581834918374619188069935734327408097557786137886975765025071960112208531171015702071854652426739715086778585913038778415871260660859913490045606744985501341474247170374541406091395006094152096302548485092091313518987770028821337486269016421812714816304075993169099236163008038860178377498846276831573209802684392630688711443880596881930126393032826728234978906292185480055203606307897246920390351351666737041559465575347722378656286384939068718699831905657767755536529790028140283666012764776951113625125764490092718829108617213941807549102585518384128381463950216152985768111527753767194512551364167723483171234675881804550629733623312563963445114676186788343322437345947355808360864347130279540028182510040685120834634672225132094249270402615302906548558264105564015375512499183619977894448261758348333842323552053359389786105273903541643315725449785471873493727078209411583561172915283305651920545982759559868159484494936558506189093818465895357418263593476325122610362784094192035409008321646113841685190037489517696542868716828160498907204432284992869727785093713317701856571343876795371491015224292931471704332471633118215880281526410671078925820300550116564403103351924461599189990592779870829794279304219937147188578057000069411992034030983990444983714770757896882202506404729387741230217302035174794072645850545461411132510600181256115033502801554535718018914937451230636688065718693219335607889638665546116628142937421266394384148742450179641452755713380801472869731006966168012240588217594083435479222976840000820970915441610270959290211302094465505593126923358291918552390984433751900875894360934845077319092489063914209216382120652219694674853133294679213330493451712025351504642322729056297470793392856137122465314495570031482192130758224989288010047298455854347336258005121525478933101407412707683528965872829786565666584069960442598483803970995517395234231009052415274510609888245621379901826357436390571921986757246930204539605875824336960842492602773235548785486345984175634838840341665599442413603808920433638175438382923787815456742818187728696919761075572389447512697165708989830868704089302709840928897712091804962221248686427897315321243114710471741460337824644259122416240826496668709013258309700916641082313970265167615409405577296977685739407549312621162094497476465003297709997675446458163813321222686313249061883325983636110134828082541886761229417939306318391450428570527715328666609015233184056149674309833369334279002123134697468932548033850741725461556874529656709104776623040520089786523917520685476975593835661248638975145119112670838923505801684352276713287370414125003367588704949773784261597994875917362428304389551588040762806131532553901894599322640112644780448442119134499148520880920228169313582563863620524494992086733668027754627322984277032785081379308788465094557398443360165593370403755302227109328530798545706999824189889708843992484212848682176778117067218330507888977839862932665976509698450309577581647730580905718073238865341967963000184332815025898122456199682844319540388266643645964596740139068275850648989410102676395567018537430339010270861368546704137814839910182034732576284312755285619549094487761334590715487282487867012996890454559575991301902045982326236181328359509910463558428910681497106362518397551292065629662731726295157694987437458119080620880922815653672214787111837690151484398958651209874940430986001497201500115138298219577649853517958184089333372704249448840966030177525567230904990646243316444453028685491022240514249464215907561908487209909967580209098488826519408523324262865110021208382511219523584470359865157570887614831608135016491605423256725034115509778731549952732523988482552790242153629509883740140181060463937357087610752316017716386638671249800721762032320638036606924469228607236046883809603562411567720367502568329094848240308300492367026117419845575750663567855844643993211223322003329839025241297983272296254007504177632911134123245949883825887519947113190530229636654103776409231714355342393618651052412043114391117692737178303878272267663799915468516622330957229925388193620313113444435524639246042217408024232495165685848179873458090197751974214383655896903173613897308334720487949738566454498543566635878285128164971171449760561456830310384672406106808022065299634189805383076532054261064924657593531307867055538240856064746600702423580463489023411319802537391564972448734317263837833419750219241796341985759248280469579439682484543713008900201115270489869865127944943345305132908233328098569563904515285481074669510330283813938519865790339965541267533982508579840573075041099134636454986695789463132471659073005504425168522276111541045960590021723227771709794935167284568047482654487468443572014138559472360749222512808886113781419471629412526455535734976140443039288432318359978349647835129142026679878402442737380824121465467877817126170733217827484894338004918321912087270075225139027326060753996570400606572814958719498152764358419264293761830494068603834465678649941728634384898959419810738087426821134869054354423733153239637316972149716202390847604365566796947394958648769147684555215299193664090515968614415367097112785393174694607703618934755862606048476499190313800013362714442966438596485452715493045129062855828975039921269286221262677937389021601795186957616713115276822491540547803992568418817365355180796716418103642992087732312634381163096991831339140600031506431410531425621601604339146942115577802384430641250211094600882043171068907216683976246656349129584870322073894707709197886041110324798483563669921920697842975129187724148069033855067881556244634336820981889545551906319514371812515378410599186477714539358819450329600384759044839480819941307398133111226995070513860731098073794254207146697730023453224494305655900780769016819302951302919712483684456747437033603751271947368235122839809266839040605705857622080640933262207258542385702129580605807039640466739771934397662686154277633739844552750803652551890502319349265843421863711515539889677518142112067650986243398678131516082131503739589098117081898631826599540816845841250414113113579763586716867856078671720460597110834511256637695187047750618048432288305789763205261681967863202409420809069077047589063381853148168282736050424219184053689785609913392343437437562139970020829462121445479272560167270204779280583932671395388065629930494516030186557944749599909616435948293283945430628989005483343423596239343157419042019464590097850263139995691259741162924621745189425933706693316609746243215304924076245991712561407031336714490553324616881772571588718891920188659608216591968293545411408141554495314536301991254974804301030324194876573438010158317336322344563773965788675654204684247018352596178250068857947128768150936744061125018135705164671577919586552637089810099055201536360664697107705702809310271171976038841982642679604151027026184850262656108390774660745062558735408424585472132554547875640087058308329777777142339926435161591860819358503523158354492432838406902320381728905656709931358468624556674313610435379961174626267636608606902003265566033169058977732932756515721575185163244030348500328035526283311944666428009077026237692527151157824795512787112103863037609742941110209649599278368941024729301464392525005808106418189250436377707230219417659150052343728201257526455455654278298199238812782340223370489534181283436251911880563900505586327218178041373687627942860888034015326590323995493299684558202999105759913803637963491889221639955684999212604001252186982802789102239056117316168659617224760915275768332520892044254462858055957656578265031413368633151488450533364597113346685744087297426807189553031487739822437412312976563972223843663475030702222223930389515065402349096498044721431697352832367973897015615819323440054276308037541476707314624634542127251357940839754740079341621012238633358035674001179304864919461269758499014519670981159049791767690139326606483460303996182297197817433563958651259995849091255536094021355965422635405950728076687361435069453192035728123884872659191358167208322737245722501461017129527509477111349365777640772232977039714495390780020919738878951914673919086703526387865930669053509184777645848906615731301400590336460364089480752251128334508097214410040603417468597620858665294912472552585632287866940697348620586208701442557243283601837451537091733861459386565814616774235417753244144650928023928758360753474195089919681926960604268501727073723637394651842875848320512624320606304931624237538998230578596460335535221304434363019449278095420084382577250944427232068935344899860378453407617778561388827076591574643891468232687199413956668729823200797852847133466078608102534134470376198726759437611805802945555775842952938219520377387738358089820013893732809304823972296138138278239569182815017958630006558083737519963668526983341110573875051685892922120804256503419355377633251660245882738050820830635842044921359232384126395862712254085167798866006153333757825822220869150047909249432915311425008055166636857126675901475377882495431475101948934292878384370625196652688942309688713839561293259353618500516366036015634628621983423755745959267305531752915573452325446202729194634861757034977838622425708504160095883854173356518905699666675705376270306669706830694145371192444972455328327935623602664069945033218260684813472873569385575375074957233840552329244799525115419675480544725148800683206600442557645940999156526341653272744704648923451426756124165729220687991253225160562841229419483047275923576520142098552030061991643423750056814302819523936063575801132069101475591558951424584692903808253635754505888430840087255625567203024451389412020979360246512704219114146062818457109825131607299173475186817566020218535748130786095282546337024488240726773665438113621627755595204761351777262535301431810444315641880965314747353339580783248231118215246057223712956847789151328171102270461719132139501682942975073042191251736923245205131403992588521554280177159592318468200721314456812809873061512260449151122307044318455501109903814194090614043081168496898438465529779164175846164503424134111743266312171770655372542859381310409200684862606915128106871199956888408404108457832576943556873036794419608913819891061944091712819271472378260913465621030976345662105074124975840429732733738884521531750291651239850507657183691248971334401107877666354281138393492259074901578197570566669180050523520253224646781464792264511135984672280155984054919312050316555895860221400398235613035091882540113548360367810284578417079185485872837424172967314761032295323817586707239168769323073487899562097805208728428844850027906716679612259795796141766812355575487068665972014809399300007909301515778978670199674407233353154337335714724926368431569268865005694582091689883043786627242832841260992902586788555251255843706381103159657524127514219818859319889271151905229972065956359687066061653117066269538118781768841553633977103440801751189321724057767279364935477559172094369486864075926874302766932481331789369916387318414979977443889857206974584319059402521875549580519104854879172714027351292293230683233826364360132957622020986375572701290977471902038727282991061335892883360062323610657455681025856498314862053479267707381977500137988749562769759556824748629996898336222595435530246899262834377565678659475047954472846984222256188732287049432808275479494126737883410734796672554373961319945570491484303988592790296800212185164972931868451234093882296069657546419944868047728733835445686545918138641150844800609956046327806405995945109751516529898092657054336997293200432698821755339596713586114939799410519876176886538968197212127861397072746299044374258418125165141410779668700542858115203236665041027933294448788217089332234786781229583066065176337436059614843596110237439014438864020626213361929780137257609142633498557438066301580238511812596590167472448498645172088612175293420474479347779105901261405744880731359674675711083968440043670304898306890686271199483979454427793672539378311851295844096158584596141930358984579174372388212298167150118298406233921034724144723698730937174242924194646713673819652777297395980330504409454369559014550921203781915326677659197587205199239240078884786507248762816301557681796251151939855404248568311740465644781272013052614613557644068010718657708157413668266204646638610202100305291448567552167115039180618988656201141372780004168698136029977809362985037503549992614193914515534906801067525161507058644996052504349914208100529785701722288659412210864994533556881058940731774091018257694242054486637017527793682310963012918154854376578969044193690585177406098026882268211278144306887846663778972761448846158166028026267979506282742080344223169628870786712014162068051521947798927956430678713537431096665491239217056683718937196298902365878796474133164708168540235798484330747696743133768704157698137402904221807379162155779742753013416989087237114132367758208796879917561153391744895868083938372363876926284802101505687045183171340154527397607548177830053855268022920124184333434576629823140226180808287345819595214027162120895933832723480749959676784886288677822173509675666363609219100076963334040189180453718657829160935626831516558479375354391590368532712234552143440591784989011635397057462852446861273411146103477104602639734074196843559804157221755318716151913714102381260924770216455827629368029367527806601573304754231716663183657503649863930102031430844873808111811885985945879147256176231567691582111207921004907395973599610205530336884085016828858864166969885843174277503842114616734863691682473047485701744036194613903772785615404327825588907289240291733750794257327637393229792448474046432989222017882346017072416990438037423515354815998140627638541554004711846140629355141449261914099301285014956467888260773732669980555118396137984735441389156198017095787516419761967292269184400010910217308396736157955738124378888256832301579257752768858548642174426212410429495999038052368404771724560486833381803605409371338892618002177292602542721062915183952283587259728108309179972196983227508301302405065164136133904878234352308780047881531698927083052810541458101979524855260005037565354449279637470037212919159012019662802868742572093449999915564078029527889407061725213097108476120564397197391916164446108541005735694339897057420781160601632959351629590120465597361151494173904531532776541925411985576043149076023303608965304424264211195512892164288713031573223355153832986968642459090505060005017158992609599567600728383548248207250728249168183937399010143483471092308045248293343159774859448462691662552503660736488316566324593786531812575507835115695869129523623331012895652391070003169946133861431746132337391125607269338830718191031539584067432723410508502499334764995848971055677265699535338039378818077847670399247752739945040461781963955746016963945991277581486684094625107924834545311677002158125296598315463913772427847145710994999519358164937899358196827201063767214601346446336940512274294333116116412756427082315810905907414194975198399143827982194189294037765263898048387729102306543340630145484201531634595250454474796288780113157742932279965291045377078446171822654487005267974084550529608573655274115010247594267402596677702503458562133789128453823726641260170681754432563002639716221596714343928428636434099272997869751057873754319434135304852735885664971316328309854788864848383861732895067745533799680100433460921508495207580509027589041124893046028248614191776409039048702132691236324867471285932034536950592205726445888763146203924552438404261893708047398308528232877116882167471234653641198447762197122023342806580152130362495255347908596797519172000642570200189301392604197515136294580072697132460757720613552398285417790044570647677442661484984117258263686993615151196618857358358998645969478844431219626687986994801876132549662490719697694319133204637787044430914273899739862315297646399847917492233013490404970935637413711419641212326492806613057010952545161423556903341255253137171482732375701054183593550518374552610748998958718941829718377375415804699781059284093834504904479197454002487886974760934401402886943629406739466669894882256109020867470404542805174659083211109859635103284967075675734691759353878778267265595423915254420205947939609683965276020330404091689138431271430005673698343309098369835040432809912501116765344867563177815986248462858536937313900173798359916778365336690350576574057767591011723000186627587433488026686226588236843172734989750377336043355293040778754084504064890131552040560184719648219581175691472694043790507035660159540546609773391337660663867409645291110499031121239512574202772931665957390288905166784833652603492046981271816211281485988358194952504202490591066276660413518555876451288334153008452326020958711732074799575970117189153235310638892237638769851794640039899834054645429084513224991991450382831017255572289034108930023281158921288427024642606619529695618719485897904601298290666753596334196422518540214343960784868065813086772518436552980987959836792531275589945667976533514628276474232723955198164873758400717394589476360401862816069713624764861170098101389391236623549900931074867317262244681992796091773757692063104398214862988447888041218040416708784125653371467524631920687104469579312505272531345602997873660999418297600813241322513648948877102799267489808363781713368154658931206601405771863096749718889427768084790355165421668395429208968012433782938692888319554344761509551059692650891374899589544055118172485019440809764016048849202141851133913551302042043045699719946231377839879617617000541217383481550701195685332335021660746568639648144316233374482780627102013169488565404100318091467216282834979316014431717830060069038184142294177036868901007216143287344388740038489274791712324332080457904811339035611478194485258603469910609176446009273817670856289503443999377111022620359458843182267478467767091351688997406983262681291529708151578160393242916129498530766548227046871036929425812596417403612042952281687912344020494612958020936291348801436057933692701119740929853288390352529513536847302517444080703235861596407793083010938073220989843548084145123902397356321898916797095356830163721909368854821033829674987098498738079911012150332639169975554289634547723261046998396831931122174003314434596714063439199824182559951747928910311168008510704687467351371849476341784112989357211614896153239898911084351262067292099816393104988082132531349938369415011520867493198614307985863935266003897129701502109324871012094199853186851642022795027797182308549462854382795639221887053649130805547881582438085768846764505754012631050676591890122721700154312847656935831969176103277635606323115054662665698739400089114759570155225867913351148516241953364947298154620503263896457580427589248916158626375693541096437505316175615821728757010526693524667718415785079989950505843251097864021507163996104621463098845411831489009116491764678871487484592978788061156433015585077910401237933989411857340094614587780563824600228313818236886608337523844144412284326710961622918325221250827514113175138910566495888206668095622753565981826543257812567653321534002381163891278305509674063508258254667434030289486394992510049878999694157559258830433122028024528563033441118500051330378718593580379398996408272967181422972825514782619022886560744969639326240324241677972182083601074945197019561444497364536052729533116057609562905111781883682620134993913314869917178158603726977792465942865313236127646628887114094052785298564407934043175919102691219394596407043281153216105279012288225754123235686941695282595755583823151621370867547907056995255391761998341050456785361468427766909210304644171098345626498239105456232096338923581295057175131495047523757573314190246131266926226120362892108317196054130773402702783620832228257037597307785774007699279965755237062562080992262309947314415163317836776372680184327709919435290910445283423471531135232482735731303257919974037198908902266934443471279533114726050258596609327373018497393896583973901512124150668097641227932743390803709296659139281433770445243976763397805295031942766234354099964898491977182932712722409989135168285075075944737368190709477881377828677288336855500220770772939932342762493625669735763419526098657285252921274198390800312565555414249993918346734270768726676236280073321859717154082651814693424505088646672827810787891672535257967841889787997986180733964059043417323200624760045157420967807274854968447481455205906805536732782648193136084739159653706254779011065339975157757392494770030328382042120103342472293478182842091848840844436981814024406745778732427811732782450772707474342470213519091040988905934183729569327722826755380962228651936400930679096424357709774145757740864334038785142550931072387003729633575960576784561712694883927526872952887596818102441304538492199394410330910809427098686692998153280811999427860443782355039880158231345644691651200923077543113968583537093785506852883715818917954810082771381813883327576909294843735128342109330831635452468361772306998115404307546323170205009566659685066818308606242488301211743103041667326849116721562899619513450481122509457374529916730489636704260131653006213414001647989948370860802723118539447480195895124773082998290258156006034527304057374246142142832565757806018492142672419824951713640803711998325515930372294088391043745917061013799036332950117667406713758862115587626198151220157155790039872586699678043216481347028201646539339242379135385746332431399746850673432720635111027503588300423009028192438258741085216916456421471801399802067749210202410773551586152282259792483278525197334845480764492956814539589274190388581194215601593388807179912586479437582058155311419140951319423783762424203984141818533954178607342733968730770501937028508845129328953661065908138651299777078972084467500943217312654836954441943165309142567313681446651098748200837692313110951155124863439768699452101509911188916992851383674652762117909458018053725350125090705319147981110804834867362789552034180227081081797578677779806678833781732958884052102777659508330127007491977551053711124154814968278098000082651938227538683723844980422130015332356380947836045436210215240633097113557815527038492293169924699930205486996095032586367975276171861574443639697034753470236071945304692860977867233402120118661267048809838106781446086728340390870818982128818446709200750243700520935436159885469826786188406530132116872830622687422803640754048632948759746377873888754779459781108373955557035252561069221166897462659674394538280666790434781408912376475000454078880572838431165565585292623427273615717593385440016262694201505866413714626225832136141981038329086041123185196281525075034995793104998967142581179820307504997577694678911224334515421535676129547993745655999505489127616132771901649043640004620174117743615545760339092323689427905467437387834022698837789001099289379644778201484406648223543639140069818832095816623282883715575725849405101257768261470582523006462379747163461881241569069961656346030648151839246172410349814775825259324740633572234470735795337378257522354956593353726253593205629122018395666758843833033566132065637634141634103535937338515039373265751552196237345768175972385496026605300139259183493268506607884747379526414368940901477513094405336868283754275510702820542398971310900661482481210545578946010001805834745165709956841756121010537999800781084701450901122476355218885902262782446026963142905192759340353632845955269981061737111453415570515102804826702237867675226240840662506757142106376554486092999222937544709413618875686338511425283259685314789870794713357762826069768334750437189218250987200543494471229391183963081132036509267115680321260692801413490568048119489016739360071805164559277052525565253430458844623880053617933762733238635098385108999124327916044460473536705808299350465671189765035874878626587571040419335939559130967256125123496517237455516249664646545464719565311394690363708266837745308967471504925259664696747934216080556245156721888448270420076891629950479728707707775893128434083905442478149665281479960191477912963895462951135771610106453255059628017320924547863088243359357709301187993321518249544704253955633943732126083239189181335858875187994510706483675500324048535176172382940314490460265335501441361765714183209683977861886771084546587098280061810523991483462647988389690163824573190516070041707279684546609648084631445378696708876678333534747171976787303027213487975923687597997589142739212041517236467925132894997075575714230810487452695375433280595929316383546126271206783559327913423597958799416557996797564162141357265407679398401955402335445813471425704915469155601388626232018931724365906466104791834897091186533459257662158479314843082037432839828609129734761801771890996497315432417034909085392113353398973327783478009294250787199488966453070726719190472836996109091645301957629029389287051957335130268507639336554764231277296104238034550213700938774002324092456901132910959086072622351831881387718824804922095164368148581644261983695443683992783725479480464169019381704944423383253881152173270001960505517013079175165487345539203195864539019308720356086320708137915821017103621325483572270104166770099267501099621491636262368292833987535877910785113162815619645874574343362482486962024495293861493452649246264443623304887325889422990817659968886477001195981794738427117627683174731383710909825989950310626293876366818907706487654382231491502759926440465572853175799918007064756470739556472520577208188376049663047785270259270871254933871290856908204487761780505616874824381806721333861856393691781741112038454776427646677741892134542319200291027297698761363658086739340410045573304464384096785363088342742058073532113823507451273140730996833953646577029673157352164711865616140549054191019202508596913650142617417945318587155336205975407495609870419101969036459048974617616990321306663545563532540563075742298032530954240225433862369057187621660736625288128935720727330498336344440555626662488557690778535364659574703204750938105825768276761522925086301662902798827716250666185000066666098036832825541117117584223200883890369153433453722467782247738279045469245309013275638967680173082427235442383691264510569939467578365541467176907957302483085241076182325073982864480509882842499497125893171272993694258818218885044092648988955329158313217775059404802677417219445893253758117408076783864890040572369618551021054114824020580060524686797724073661864025751925779354964237992613425831046965239762036443670470283281357955009785595877306987785083973674578205760697923142847618192071574844570832933918014638560218597627481093041451864822460815005418982614607371750835786793390309338186164389907873399970631787430546433983344436529837843766170359870545254219861322495054440355336876304614532669805801700871170892645729563861309174655762563062008126610306123632962530167941309722566006334009382898260586134276394235623795220144927168860755955348087636976119716084648521838653553598049017713530491856656636976746187660449074896407473361444012376283341745549383156706153636602654915305560434582498446666200817070452516870016308298984643009153660013256465589014651905296466549910215730828962797901054406620649744294010559824443058029188764644762113760704698883651377791341816473042337654406910038300445202758807448798141899664279029799357316877538771911141147706861312038271209196505807668422846838274743570812426019211500247589640337328756997435755568980126177066999018393921703647614505866842852032836464907939406054291652262857432099974140674933357548759287088568342108180829554797044690261389974420833248258723760362763618684121021922252651517702928979303221660658759768855383961982572424480612551446106356632245940943407130736635015081070643862597124475194821294491639907603546683133927443976539853520143083553436704191646906929888157550312776683620712608196715836718339726445378172388566202695379126269937312171238130923820459450694645698593256661612355602948615210960042927912839041091148112483200399699976112081828526944474411962939462370223708980343379046704286178226976744098253484801890805585780231953447267690003665189416248967021028609538116128942946105358458211074449401259361714254476181154467758364008911863010368572403697314963528615641013727008473991916374098495447138946645023454170908647329183174125272164040749055371034237684296454014901042592173323793296998950948916310180408760054347970310782961698032160686732591042218407937389373028774755125039556860573403333223233809312004489513045644777521086655813171697860387379717971642389094170723313530020505325948124524561358409989579055833119736994481169526654124153774562036560368776811098403065266367490908791568611895854444609049656019793905631293494183976258154191859464151273122850349624384661437106622076033287069374667951271697162855142200819827995573158250569877712530426567945340173077333736451956132367277881088792432106563329768662786602103020023299756014432515684550174273026830033696539033895053350987921068055370808944316105769910233796701601895180320991419030851228805747573712810267268045163468434590477273077507633619049123892399950386402510803993041445436259146969189744449630657089175294553738221006885765671272647935738800904282451921540809262849742477552251069526422612248853495486811053976876699192598305786625554448456228470932805163333252104918498843151347273354501099718109151068555549310958342501503911639443366748042600765811562418762394944776646720901331545441561895584712344955492414700419436713822003514157141108803978544884014110859379009479240837954085556141926758902928646390498828199769594255977869039625446999050761927151967417738748579525875717707991898806753434625616472235583183152808070430939332840536715696631490590251289002494431931634395727062341216988117515934450524329356201849535358456937619141469772326489897707521142805794072236756356208705648546864331994105236040354867160233710335862892298903738754486963419595292498208278019470956943145289847516225768375846098337380200680971825395338590188779961718184157290488048069138897271364122487900307970351960975689411509961821433640667076222719327136939929194197027871890854033304010152810329382412696266639897873199645924809221592916359620136994061552113362434440779905198455558184752634982547568127818612060549959480881576161533595575730762086752222267990006379515836853070617797671931576935363131611192893217736390627730950523340674764699815464290696035536040424108543511074828960111337754669383201288199900980382624100097361544381651764136043555678785384742831325462791959559415031489474654746566601999272145208368888430902223988808023596362275174838728024038244704736215934551685762081200701043939125796721821896489384049326463144818268272263844511784003784374730592389687182300838188734441573751246321582771647664943016932541691074664980748405231948580213535328977479444030563624440687206620317745419839194054869720253270973075134110181058534609155270474478421400307164599087164798360908339349254003138259199488686514810386757358019152072221968698927969153105775060721654943678636872772352273206007440578363115008903750045505934135215266000304912202500198438447468976872145967085675357392709474570431687881393989694315105605273476981470505839657149595339155744554267315437610952632191595416138860816443011968322187477316290255271521942086938542616208979058075603888366902680067695939934524218259642276057443325284190179326090794133454369055597045263111225639871184189391723020775711714358463124021025097602546729028325446743329415298314715816646657853666326560835489947132304568982055751988553968293267412373709358032032870444620794284239843951976673325648154050987015603190833558091349778118593735239080101934635378362413075639399545627423099777126081999841259926446418382847202106031030126178818353859078526830419546054866522084561208613612571764918540330781359057508430192105573731836533119136341601155002805095520854803502038274096847328819803071058957687396444728364976327946344817887050342720835422845907470169552394344879440121724060286886921680447982919651082909750449671616833767035944567200412717001233769863235217416176829930070373782399684804545708297928512567650214341481512993321724886461202499408424631022671875437975476063528858653949139005612283705997429457435810196725363678604846963054291988946310794975258824962048820198982411320052239239329913461515622285138849092811373963923376395649217040388339377036001058169530059121259950471212117994373107558554436172224967895976631894294336522663505883078312848380326681250785171180350484280267610376810321845916591705103532325409722148658516734926431806042310408091985989749736585994124994211720904387072065369987987261956655475914150620252580453297921597380083316797900220272423612206799152601974571359203081261428924271532329672401814407811149987655112873313372926270579663574218960351024079530641621493170390805904208490630132126200793037023350930525338458495703719138050946804049175848292272909058512902290001649807273564580640842244513182476074815798024794653708228131865715092021808760132379781125067085776158336121383989651823356776943517360408460484423627425037338848101422070385991277850395645479957913344528487551866484600735816335526530170384655520545301514635682574749163757494865938087122859089223861227155095978116109310576537563392294903766859619948448270429211593532258939022097608023404415526955341453817261439304929756405632101719543782570290744145811339720335826360551722569109152379305961463621829062531081563366748062371607912990327366504724353317333553106178399173855728928687404404316829376508405479079230024487850867315174048639440513961115057891455190976665385951907659966077182184447170316941445995395931940328807318294051446098559621359173011100931852087231079943969178136012337773972280578822510370913432325862092430429018477901078012175495274263050416865958891089105083825101407768522478049937643752211860584744052088639423329410341112841289128275141993289562742718940142001603379772499624606025632019225400113313848431211502000779510328153510909836329354284167077772223186083644420596853943936953216374381164131033822765128401441578031817395907218304497083492149232972682460036597257453114014531341055800837017103764149971575892992361121366125628560278554509147833914038142816232154195444797044555222747332492618482686209537954203367308486200308540212568632102376317675610309460741549788007904622836904397858168885537144848964392202994083426493534902678766161149705600564459053397234219695004619887645981423705881656455977943768655821321659346564796803481844617239594152960366727501723240027067901402354115808407274159430507183662874078423770232139342304714084938183846735032903110511943510535493550261771118115595316695479443015680375008872679765367295292755323628482277438796330735979200599180965374482235044435323256224246564744975648695252972146235072710378751784139867249045806419095054445513442025304099464689094679841381846323787276179667221535550193665382227536641536505404518134260959064817638455342968972944779874018823243844058080269648199594571968325977705769332409974519865241023611280489811844503094570271712052649749328260204703650148922452629078739763122113129771105242813953476209966206968540542866040422316442015549790116181876595675745512149251852768113369752598590928368354807276860378208823757727591300342449376852426308321439201506484441992518783764652855470393833167740445549597643076803883366229462839728235258917878212865292243077908515295895246975764885675217503001683849700126254280262275616564141200937034230830692337392233875991362816928104975016635586844348368709549674115419663064889923451229398186466879746964967507826632075001245566888714887834528850515647025737885054490426640619047166833396521652603808399490723238544777291280338279764732565403346089005504929524562613877786248579217267263488514485700142900526159210378771216605609121989980299903820577671380773390446409852758832370261339320907465524870264685725908435078203811492236422525486499463846323195019190388672382968247945609939605077210562501124372076394528092429200058492506748426164695898643291653455675888726502024406971838540063519146796034052849987209505573714331847084469145415774233235006967601618996724480572895558990282832788294469823688005427497840421429962207466247012092693597143349079633664899102896010055999121254213054785022241466356012491605170665672126640377492949818193974844314072340717081695655060749747654524485843271394709772034920665671646659990624026135424589795098714649769562523253740571837114098515996037316895265441657010997090555164280086840737612964759146919866306803074154224604025472179333920648521367439978075496927645638482191662804900422478084793906496506553381219010286114796971648882429558126406583065059639596827568245926934645255531112588885638987391732230824888745054594839075482312535679472124731970363376772573757722461739810780659712076932936421730639611653076573080566105007916945510702667130810120559765095818647285725801035857297000386628731191655337798227998048352176373707464177293018016148735283063831385266129777201185873342389692841050463836181838372905683233610358204739840545636639827548256999746124740765162114275740826411015753658685096172647831233989267879413894433328032249459155602844922192088377090096643284486106365482889172463942593681107929795192760708814934524509160968647808722750997351355484759202494962289429236203403664188752486041259225060808405974736545800431940323345821184074978471769757251570317023444851408818578907237873363325271523597390820675223209078893469811495438846625729727658130196688818496360033585296472802359396784460164635445067608055287661181360701963732758535335674989144343748495026316369736050868942649319513295468990954865784222075465419371912549924795434243692329322140515560230315456612543203347951489031256867262005550377344906422326713350548464955276354967276883688005075012967029005933324770766830778091148877955837356974237241387641832588601143914675564841941608659064032528399537906621416523052754116102550450244548016738980306191507431694960835326540194061620025001084484641304594325242595874593301795731988471027131615421255114858002387569144861207240413128110031064210014810300683278864227498824332621531555691888236317937357004139540632595474144376319172160953049601916782646001224772629877382497392233016759654515957352121498885252073005931537168064763467604922568861163579893735100640246387346656555632338065706435457407931713876550440788331916318222726216014396776141032378813863088501579214560515313279413207241112667970525118256066553784594602574818421799177245790406576335163331698906705389773966397487002620712305423719720433313022050781108242338371635878028040563298303880257698087319065146252239989275348349563123897161603211589436934793874674670343367380970383582159250134608306357371923951617061219113453591602540862009575600225454995648219428589806660553879361686919989828183342217571159096145894856528650012733201670323356183333776597825559084342492721305251408105140866582674371416539903333061090896612335898439056794071146911280734377258531884189314691835024076578780346462481444633310046205368959649791842118258642734499835717412727689412847474992485697698564937977813566640641404485498583631803438376009204621794362048501381408715172701312080326725999127751873104325710847058760353358915049195894990973759940668308058729351853384151818698405483167657100566618610726785681308555769960755071504045662260477657738067652154358341227691823361259881573232089140043970113140662117728951215755616731192893541961240504257801028524954698539853671649130878540291420935537292063867438232822438467289846077258244356354850347720975835640511705200942812070333616694282747467088525513700198316270235832836140565692637595729789142376895392824248340761066272532063614081191521266012085925418342299226866087644707009981111941427314716918979769638145949317794812324027854759522911679527543930200961539194971254389524079926326694409219293902802584459101915774342856130524185374579216460847520278123669052354606265640294091351835686605493051515819598841033591865913103434805416341116750330312711633344960197515088987660012240259560516269591912922669883776762965267650344549339547528443943112363045178389695865476037654147193446002230023747479007162930514567546640009128844098597503520502625613121974631203973534086911126797585550600926821421762084186681789978608172983346268303130160882687908811152726380062693911279591321193283447323894398522196998233221889341562562046427150747057378192967105347966156275771890888485929604771776202801250203021658915513248916399701148545793752697938365909556454733071083841996510112312710904314507022975912563644915452847354213299972467365741713616594952895547142267667633345738141616860911432345841905371652156041843392958091856566826514932819256566558765412567869711084753136186154484182645148467414226611477580660928698744635231273788294357752835980635592626401834208082341737655089778964223651538797061411960445941920629481243737090921109756036125299977985946898545977303832407202576077880042273123491989948981206398939832344678984649284319167831366122016582420843471401341917260894522585840109153432685651673343244137839125073955471714177404229567976337059488672140655422785905294652636942626539497799003089498308708890474882051114993094347923195581293250125516230170630362683108965038554348962888370479856101443330962061358024543085300354488099676813216232930562611351558287001631355838360062575328865552971726521548398219970806111912325913575632677287307978771509746456190299152225801166907764743519088048689202117158571443757851117255077753566233122113673261759914896622065770169678963667132822722202401437607983068292063436388594176101540632656617946678171727392893690821058824607838329134661784716222596375130287532054454407917769050132731072066524093100557016427761080770512672379439121211685105942571752632336586217884603328212081537177753419089005258126598645622960498233592369268460273678263158305650370111730557098293620860616832190063212628540969063168826210697288459837415170542783838477194654862249032436856784875509905493899215790173978368582827428860905740130654291778694939938869940028880035598186751550824737768165326937546546932299208393486026331073797007915688862392221186778078152974476650501474550638159531882676133327887379626115336138277098177249986879686944940845319966891441539341639656935660541231214117611638144729922306228526510742765040717022372234620155328203816520330288293599870460825193945583383759276867445673771903629809820407999189684940993239611245939692949697960334719736626733162181176140479319328235188686137797435680978528023867875004187874432557526224187605163696590110004111183009194572951482994719636364625520085973441809577944396219897112895789846044008173725522074427191524187642292117143999639558777775054421462630031336152385782385348741830130022029703130791727433173024196485047934907001932653764632194374124750477195493883891829326963622424088215367150649632014214058080659176122974465998367376394805805578157829578845998420007699534292146595836430427348110601907863260692516401492753711029252682031818316094289675101121642254840176487991318504715221762812279115849449901313319731034775866607564336663991394066799094748135151384295801404846043145253846389466170682156221088866657975740092663792846319950934847488148154372862477552188465311118986883338092315936941684923886726525146080601153683627301271334926525155884416147455924486727894921731141495597115959507911773295369734148938015228079517417954525014224942750299164226730522179938881557728190389827889954225653017611333509490357751567067852773529017355886674956207783188272415413700947170238699530544145235297489236845750541178932789015756298340549961565566360449644848249872091867343924916316428444627442391861532951751119717887100353154150201985951058942230196472136037578005899235236388147788246846849994418711938525518602310954148933739772365185921053451726636150135663356182981951386239813955785614249713073449360927996039691054031321003994111523204348806142725787926954753256939434280960458026162828664452939639071614807635416405959350116436938144581631133849449889076041716176301421226815801234707172837813608641415460518251741949872144748169257940086576301950947383787112639128699503419494257354103890388426638181536655366966522099303853982823601605115770409501447544069343444065650068308194462221416536066530997247272935855229138811538426622007051099150077512706769535908460739647466632190752673642686689113567574821909366843621817736129534278411834694076839728353639588773630767926983708061583090700413148371429750036091758662792969126609958817652995438548284375061595878996185695451409477465174047865857950737080608436252286649730136254541821095169576319757355116509338878866676508965749473549930691956354493329123290324874988511890190405200492457101093585369074955961623768407011592245100903449154509664947091341043561266981335028364078973142757661923415252858985841136567652731159971171188956341687826372365787090422777826637247617417807712557996441047345472100305831490279604480315024247684326028373170014076683355778023004082160076753871358727699589069201299010181553227561285178099699191151836300954976956713586026198118075002646109318943331730363848304959135961253612541001269706529964810817710124497272720978617949509949566368086308891244086603959648740329208309339576007068475369428775524774617170822473171900210259820700296341904614910681377288831649335848616011121759629489196313205976319138620758947087743226873551057892656252314287354138956853864021658047862523945690008431989311560649429522444885142115225685638509347198153415741530791512852055435701108666859881775891747480146295838217289564803901447734349924009642185399271787860282496372990371266396345575991368967600431442399588779164269286610409829805579513441173075262206580801768589129030745724928323940103925373727574762942428693641283672968620188296220369904448965900887181272654000892518727436627426088406619287687164225998728967958830461844148623117046619246165422943962993734802534288689151653207168737682474231050757595285241577563401557765973416733946088918092996902371551193891272365614535916748778674202144525488043938702334277297802322980480803375595519528784756364955247510886569696099860072092978279671777847859280441009836450500997156056304233721756064694480275814822856517941873892956101355478198617997605698109998282027620664730124169758368247720748497639325488377356050067843382617215703405984973861594951384418999496215993967006642845049146234409013349176511793238393980212245709196271740296714427176309666577036144404052561666004069500973203561399183120776941991526173345778836228711357395806137565388199495400758297296158689925608957110540888125952632260225177554323045821123109662453765335784635389033568902449781871553857131247982162076684105055536719199961565315696784390550875453359495329150123326379311432214636744350722570450642469658545380727803914601245945486013931996580140260628674316219677863393386372094660692619378247073856475027546989296807970328934921579088477710890224491052757017455024762764679162422243640534386020570521543661916258545966288495113150494441463814083983103412146191795862940064758343550371777326482509335075109431892337917013781522219759965310080088533868741308858192411507210489460860406661314389910153955257451060648680727790821402419362874503088356702141849601121793563969245709199495718003407322420250838719441365428245869105566315643717400764018073369087930242634000421200518809049041934571114913646183651703862977353148463783010601468099634019190274357353726114112130188732257505034492781310088252893409387353947226169299412590472435178960088654987625347551962768649910721775259659997497276893166938418712440890566078125625366350944327596164892655203484307040808257552995766932343403827884354598256652042467438633477483054646595671870489186161926516293966344606774718944566538022922993265267898629473638130597846382420185819507682269231552656941991050762490042668909240931468705847820121001752070512693101381854840950664440704407066165210792389377746667544751680709363865462183632674903212725581057706284842084471107502781808383384494283093278812177851852787235949944531664286893956332315938850666682683272581700203254275258260758242091101553887155202572000477383927697595567213354943126777509792841517886194906730800785702207685376046514760371345176603194517231499213663382035943840366557324562906911596535732718554048122660005339950192693001971308369487182132782061082707432184556614336009274944387785721320800992888058132655404212825163101400648223639336958718361304271043592953130148893219686602663865621407167091385465394817932798733025527481075144800415106361070596179230498778754007150332360051364531624607721829549805629878192679340872658275649751161055238570566280151240421520994005758773152732658404310917726316468175908796291885085848825421932298239796114650912800090809214404250119784978595783331282549188200490690748654961147121467392292108917624164351955655615810953357395866732191717083469223049392562985899101215556630857706504707619217756186953415047956930013580072603216532541032061379344421294328667383796302106926666209600080682023239767720956346067307770957369233971376159830792755514739660150483644091324378426882591195127379917605533076221782468401111776199490615107539064994079681292729954358931089922999215496577989952334667191452173035897050636406137387920563534839585201653887632302324076067429935429226075455726518273223415519393987710117272484747390786769909421254485778620219634916830587982030840376200574235966872046989660346440332019693194597594608591555120456217003079587315317284091846999893469157609292211557512739455664461397572469883899553859586153188728219131158495325812922021592456131097377661493364622729667406711509532112741455369791185190417090428512160366429284943776728219498750903488853671376186649907631320216992691610376911721700793178557437102927741187641713877384259792646384807729075559283313325448534886174509764948671586589223534852756905362298800350924395070368845854938195393365909967130006975085677771775099789058209929210805959720685014344967691675958760606199410891778647816356566243623059645195009386368641326536654419672997754868916719276797705914513314793068144437127538365201314285781715905438514201904350437700179637299231082094332178989160473727985314572774276088351302205121001322288271918924738320283783712568460953543001114700899762056627465825412460192438250426391994085982302312026430267886916878849246926326496066999420372433772282439542471776591636416675696551022578752265202380059654090145556558540394031626195678335985784840054449660242813498100779935199555283451984478941600801583198656949889185845444817012435190141679637146294955610321395630831210102024986569419536052642653832180060909709316683286607189714248238463557614386644360797591480596322246388342135643753631762502280669003765276418897602907190997535059846878036650122329276862827724501943098299642384390456458846617469837093335427530449403901112132503140957812692213915541650444410735870892103767652370344449360839496276251472315137657349991389755531230315136371981620719458200474156628664088037376321158008363269820266403095110937850368207908308637595025772757497193456756194112574424176702758113234762740190735821412722729440262311050391164540669888190647245589366644813152655254006640059799293409089779984082754790103415109350729452849535111234089357212585998729831675025947844307082047668540103393220839666960638231857458235163787234150098041970395361919676744663453766379171467233847771136717006473169979067881172781188438334017491642308414633582691191858078745299370423312269045801501445946492490222840270008186200417153184345822879377978527262778245683488497365296295939761684200156725881451308436236842538018638093831866898065945230185564223055759326704365491475154384815143688653748409178006794757604111777855939608490948669401382537755805092550247136022689277484458187638112380843162213846507071850900869012643359059541338550307094796597716442275150997876238817083132051074745930146477879259989995274805771383659980417012079258935825091736161541102051955601841183894140085273672773000509181521950866528542056720659859948427260230112708919479300449335192285969442180765640601829993921325807700269736391273924739952578193347749060773486788191246962070440732943737969431657583055586202102441205252414997943629337500461918588074492642590841826187660128029423753289913325078467891901134983275714889255972674711261500095460761837690235725747859101018716280981668724395822055349171907461864248749036614224005348567124997496205861257312099024113809194291052533582487754105083604936960450336149587434114661339152272727559511550760314780149494380206655955254101041699067657090656527509018703191538705813972335041133044937644394850304997453920834412249275561529824622847348975255187151032599620846669311197668645799593197263342163830733398203983123690695262512548183342715516396957740815807876966752759745306987027765945311948964807308607616737618339348627179011526132470456531576703566574107218233187331020796377046510831668462302084121478403360044330586310832833846426675905872733402319145167419854186102953610820312385762414869373038316369330564142091814014913107523657068631125182506856770890518050582809094464972895032747315103365123382033972796522945218589019769104708032684299212349074019116563568961858797489820369008711894705761572770495361999909220853745433104021492170882248014768211636632332426166004039559884788145521241475598967801310692865649876444684221981091056219790805735053917348100643122898565470874459465796217050104929794921139678261522667604623237322419401411771537726784657340488071333451970705963086130159120126389744464552440562467689938438060687927032783235301620289609557247394566536950887509998300213594255030075214442935504763830855230904583210338513189570120504328622471765618154392623009566941926617708312365852060996621210717841865321205760568188086201376481498427897789556797803334228806540946746263105725368906063809516427015351689489486087168153395173032922610664699648235577390779138208715288816622986912951636550825705661540506684823138084759038477522160245179309938458906180885835871994060033581866814416075680580257405244544513340712226681131592305825987048549354604108780039038958712400046392025210218616368869498126935407944007128109422344689132307740077604894531871531293724334674076595873277537643903283809327715173281099332549402984689394788638140422622948732204377073066182660462449140355666365954062301803948336955783432661931366384882017087974492787653127525437337204427253546301895652087040812474534220123254605343710781523105564265977055838440531822061517845723614070433583708896026093994229035781421507461725126363936532002512340130291487184111237862677628646625575409330136301699208462530424327191213788963978064257654432549761458235392831318647637244055307654823983254761255708229682508069484624242284877098188636538846840501134988441254789404784284462921952110845350070178379825879948400032278668359116718917595870969015113030841357964233697999937636527596607442131801193641498234073221627637829774963348842923209548096726950895366852231060712978930226959675719974732276270926322171107230012530414504040794962986207637175354669736133256855177308205108215423518513459491862785480651719536251090520263582575609634887675340074597829316373088507547396322844629913370345603538953917149490277291277917233570796987989659911802303762265678031032373613080628710092291090370276323661073468802593202183136936484165216690769886890773476667154802179355039614997980532375655273707436762478279039735551043694362945362051925417207120424335133518295219078133621996778676774306573445018474599575604602512065552751909120685434428081522753996679633782893307434806459716946358690667322430693642870773174406920661977185304389911991868195497977214990907888978424784750577030193262964903320630500873185439715340934205358881501651526821920423200115644560315462485876116016797437992437963417698083704053043267226149748681373647365646406640227372448358017341161830673898916016912254372818588498192960666085707576121025415630897910244716006590929303694039301999077223111057503994782665069511071156422629564189200346664263463949063334338478859832870731087689798877785397517935306273383819168112763060624784365055106334339308765929335790259998525245353768343831098880479132274406540362401189826367316540426238659728701624765117802838717685803041047119361048574914674113489064185939265480423170356068635698588378659468993734388345947902744595680545628734110372727111875961782758917927297355882741057485777499031780063198328902479568836808656703534307275338394675917541612097438366598839705701592653278651954100768662479059229036058383414998103635936291816796512849549390317799746645289702290615688520516708342312620501945955919674908836798927506274323518038488820942815247326077946209655933051500162055637977649943722733150026965838194781408430208952555450391661763682085988743644824595396456945461347971520817094505174308465435099155047392604330090000824009728523580938368128188423568039339940265268765888917392236803137354363305355519469174077441030761892356479686053412024210109128888463418947359582891377276593852509117362710785216279960289517339142285022617104984359379840651888606033970687244272683337658147605924713997367862733043014484102866282846355215957049843782703662675786597153845350977613677583229028926236714388345710444878559892685953961389939036362893265102051962971528056594317593933612471885676801280169294214557650667005553864193021816286055513249906432331239179634635336594362777916091009705998082494039596492854885902218013742795555162234736779945583528566895410896151003673952443709612535125048637933951992456623389454840820012625118196063073749156922264515757864738249544311684893475712609924534438091633462845224829877499386640829776705696780614119038796711920179559906645979742651831759265925086574239006320819785240277544216080736023558491605891592543658733272289381752976489028124881273758078466825706194372111547459364865053423446653451147111968373802282128595099033882458353561449203752213173062179024068602493759736743415499177032046674747644518799249114106463424065449182331567476159990840128148358041016058868179210264522717890673327868318763855269314417050438147002874262654213947932273293589486797373456572950863462625002166549182997330924089866764666824148916514704659685258826961312445163896789953647482214226379113198168013171762434436157978797790096237088596708174862160399916947169707734771581372959229334015330711515083507526359715968462841658716843962875803392217753565210752550705717462271674603268867611797107050839693263948885590419996110967179559362984133437949355977065365701122296449229006684147371062888415414684836327538072233825968313253496294768196529843313089547743889029531072671004743757353512547963828059795696190894879477277499671292460146818133660193539560138113693840139286613082263482287623677150577287025026293641284593365154389239156979483341577772796915081374046369467462413463030660904618202533098620201111131243078070896541381636785519426260932106883283733397307396409226211853151055198829262852672718490296346884269215480772968658502722110827271666865227620022416161534499527132633900543257940253742448475887336010217314824817712634056747934934966906153094873014912523430312243523419044236916135671613058493416401788761831213486903307125305296864089376755326296564204862406512829357615802481026733693746228132829282083486784476699314644700887517929639683552703987085844679296545847427617563739171506952725111221011789315802724167427401784251685465726406353795413092785931390319986304764177548752677576698222013772678575106997049442406697677445542846640437008665646060275851273071924940055371469969810061174428438608569011505321301707516969042648408433716166722163750544958607866040804670626755447945339047931782005974928705207641762244950047823473805926200101513184484129283445599018952519431701612361962061075870003928236158175360867357632664445048464647750466584004807134181840334672382625024972918157998579256599020976132901403216156295091850133373256611218950270522678254969956730609547666354344903454331923755651013453297678003322298176354451842241124214396061804906735378052926495130954887980987194391699471689828546586671424968839001809289592610851146009772814021938048245368503060896932605188406650852082806059642531637519019432281954404128553901114924799182501244130274936428731795396296245649387113897142376090162405430317831894480533010298047582544993422234548123437629990778518088323491658671614397884634472710059603201147250917558195468864367771247974868374228044415194312365578786670857096115571215928186070306534216881545311834225273777003895395030044439798978619359161760409199960410424198409004018651624543995870533936936458148970844599392278565797777431309997789116372099216965351487289202161751419850415359568666453162567963835725963595394480537678462424445563667531398669487693439806164613536488946834340412553455921683709575622608619696809278040077773779316293156311480953056578408864555472209421450891968054682147760851997770433793123062173906139192824831006614139098054136358044880735778181600144297268976596876061380073017948722015209466238738525237994308361092804396243447346916384719005246019781151065456824370082920970763645603944854947687743769062449432553747831469523670727276685697631925557155719507700439850354884819117363442077587517602182841519161296863263711365252768501907975075012926748611692898105463139037887519360411132894725144276561762191662239507965740936045297171655455886288682909676184413856977104706617067408738705532059265558032921842491321111617974796391044171796128196144835387229270996874082319831912226998089224326257106686845123657844247266025557529881373927882817048040787897446108741228030039285793518587576082599406855807199855742898749583587244528572098997728219251369740989380408914354094768686530306822791925074329118823104838138293413343044132229344654666320553662039596670024948614831644513375331371937840999635593151473998026973021937553150755793929044648414348956528972653704637011436313910360044770631977526888484914594822684278481287903133832444452479056118844078683610930328987596168266655292658314660045479744301717634399750552593079100457216081611527034740462550706351020751189122929536138285903992165443345683698941288345065703186074331077774949750867951197877688610815495889544878948978361649188083401464575628102729891022236259976771313408304597741790622625267290192072569449323345357011067963380883617841819095923324736370005275853460230135632656217042899594819454581125365134307398598757628999969100327572903084876097544342743902935800167741429594882345739208422042755459536089532227297068885716837810456979569570061613264812681247503685157360132180290362328191808494711920845766025929495276198597283751730575508342520212739091856283571778436316352051436369787412905458649854200883557217730004864445136831240893469826661520854266691611725741638407026381227771323874537671818833821530507487306251134521601878624485596940353176636412859396222988146015789667868006715474800320232548943963083899997913326831677683127077683614055056704157222206429046607341255085178655462682989766392496385289206880847694310940535905385183527420917800805912678902270963260359224104738522277251481466094988005297238679033692430691516350962293300162953282391963348066022506572416777739750615262227535893026839637820280057447536907631508559722565456258495917215521048934649761906761011368106332067525789161480268915638376239522580808770797951602508030331527215605862180433292924793278751925158558114085813891425158155461254611219979850622193577199359779723039280168802037664877440924303019540270487372640702169486520546765085336375726075233502031945105016713836239719669412085799469718986061631587615668981499145977215144830204366180266106991881708509042415732070855912082040737448321703266675606183975454763422708778598584113789875635439679236352775556985004934076761628297129562330066473974970452484245695356016227476072879355760927181746689828882175532294816484310138411625722848041933511122201827127373099700400487054041422645399561853196109374368533760278748224714065393731294501705517988610903864347002619515366694491094553663231065590431346517113693420431606503593350395411805655432650466040817971784826960977274624513916343667533979430374971215095266394658331741704489625040138600205497645409169237918841678760293357681954429502312746409006945446629514186040720565828500446296451143377141587209712484430933483067989728919678699074293334353579118469620017175282444075029587768276584925850537013702154421882559955919528595096818297061971658852267769034816661915261512761910407308153703153971350469485683318680774309316639189520578248146254633346290606132557791560047023883938683171145651550376742189138227479384401716508587980977464486439435837193061501446390282862319845707294804742713448719942773494683538421236590198865485326279619284514258820708325201833228761593399944924948210411856426811256735586566501168674834188402182593930313480670755922084002829859862410541633441545561094007449596705935971996080284080125352025609320120214467679588223626075015393462601024484965937288295008861359437387042701150418190005210833336844723208267218066234874462129243649641654487647769660130941520377260944119255036818064961995111955783592269295188665486929983721141069565667080434958486603379565634697727614062057296998039229558099128262139151859102014527380698564551259842416785868765937935571695561250172600797849396450626391335861869670061978778955789364108360572462757984491861084191325675081490045137057165225581981119346024864439729620581536715653983849480998269967209383609084227827546763861015644747204283236890524905884229130108343615199339238977903164227579837099543949370285022212280122040267314891162086586769203660588921970852687539250901403665194795063390601292291581559795674604516290096478233159819141574677772598023001153694021256630428350961222165195510615654644452709441812918131505323705906275626155453544030636955988231551616044223097560514340191569631113072963008730325149468201561979027927430167823682870864537916740283414923018380248158697607283338153765081857497648506818153171378987531441781802399485962928566529668843579571740675056843927585172534005768617032543889545877509064203259749624431824951325140285984835326745302696027710467018744333541297960283064180055295468050249947601837824323231979171152635939518519657875538383236878946330350387489435561222586053422997508331505912983173113041858916122090085323872161211415767231903157310298030664127688294231810754393870803154142503155233268325617748828089064198268384451912356044212474875103252715026336519141337240601070694101463714448152215310356918242795333510198002679767311149124717138695760856328248428370598034843777047896341545611465803490942522190626954423050789675802921413611041837140957100370227280537007426378078289950730090396947056950096214900798545588360544530145845832222237395096065175121133681878363099274607047200367940590824840494595609473166871296416505299222971525682729485388855288623055159075588126243564058902429568832113245939622588874163273431104779873571813408477231450420067400926073805200719045804161980609089601131249567705027398448561535608625303458979273373649595080349555227339349186700226536011517845720945477530644074998941667639673096474292509730937083482096648207183108339739107523882770068929793735482660760039306632107638181311560582116839802686699752244683474891019545275287280245786024728519328629899850098442836903358859359640141384926557179975292673385331419582150806577742049584974959672242696050069127467990207840671752029076926709800792748586185884173007446888505701360022743463505820111806894333978067115692201507340860572725095898299904118210303264996745309677996640476821650671768834359369328792336220677771127026668021432453756391892055601803762673404745949321129930403305812299717988830102516561481276952876240024900388455838464906415176507305192096456304992855653931129061654391816485543985817520791124820641751704302989918836296175796285014487460943141017894842930872834148918481747911430078222538422380285946722343406971790337338484061445520522681409937298361358901162364683273541045000111374276019462022892008860843612124783885907684695801641411902822800162391213597998039928260167568370603268868781339600867174933268385428081565172441633203481863676303018466532183231219627870249348240759354041961140046471158890481440514453003159914702170743053272318691754750189913667916777931586692458807885271318093208127154116735384969487379000789915411082104312523609366811892992282796758837008935190079924591129170626688705466395385845508719057552428666488958847815581840865173212781754332430392099784558846844326572905576380922422258901692104984771040327022555360285335019585513510009310660108790136278987052855724776885266220106857916240825488837034574670670081207726556703982337964613119065530277576910163146418317377965158263917245637231724198981974946253568312524867083173005570486225967763801156089095400670176882750804581194774717597306642685826879328134740162859434066023510730730719806559844974798216967484768063784022269401422520856151017245714316669007671014786782246054967253714482153843250088650076195841570386439090105858002173242573127551485685542399914175074344862079139186393971217146917498112275668370251504907633056545563129646881848263817650204572638077963530439836838940124104569599865596702974617228744187896511192849095812833645925336140932881731210607968660031560603038557920323757031888424939927330727053746354543144163340976948466091140878019277683056217360049331857027907569497311415409810179446336845504932193028827600183182643006347619023751018268982088083639160349287483347232396881602655120684638401406688732398048815504860836416078689740143565345262916558404104348272745969181961994069958390103308960192513197805067495754013966121507425731084790713000184543607088152363280278110134986052146790722000021475352475849260068455244727228209874155255311852310497552828930725548172853529877978819685921282928612191815089240576931672380392289007605616292262047619684033600270555001369186029521205984681477732018851852208268456544316526966930783848547374388535759247507175483867181473193083433232286806992674721323753802497953913599093525483965443393958870953154229585587542389796918440434865376151807697843088415071965745992510141489143433311117861408022632400829247817996776977936388281101574348333917567650253313469470157387462473519711592267458735837089854982521286464063809389800188715629483537748670468455760832883334412569865290120105641820425013282627922978570932622609694764575460417607833931754351119101666823564773402189655914332699806572946049622252256128177832418609209428823115977675931841346487420798776176150490792049790130996942398223369690571036123709642517280233802223367082937476480229114855177113291947879497524224714033384320657959772463124562584489283894858739674438293336091312103756968068037036850129862525005089953591768375574875365383534194986869079311104430540454815156520506465260116175910241629332647111437168839356394413376980927556709168550380512187272846018857452503645600805155476932809670604768677364722516968403764038527442130060698137073131436666937456605970829506834709423618621214545027915621527628402816880045152002710943344220134247050162853858221687368720862582864968914089885886327441974571256979599752624025174951246500622734282831699767673523006996498946312733302109530552176734002519178888713580450744710636104215585402210163305197966995975475341685582456501461223514159724406443302452985525553176896008069760678147085432414402753819705209931113317236128487650708437586657559165404880158364345483318597912247637060581925126061555809368932362274899831232085435223595224758400208099563267379211111737468915708657753890541843933209230675451632104190599523490713906548052635419244137266360255779927280578032765781770847560368180390042717850930948552241567035128600790253604256524919725001054239824893820325804430375638179970539311858935347029301807593229563627846906545581864233989658737876344827002509789430658169012302629968801252888179208878633868562264675280899010836503815267878837123324434480934740902384431882598239105412952227983798511482426079055160650499088167631203179154593091194074746453315459245075651431331931625188795323992157595232421312206728007539962687842075193063856209480580144332758881069807155705004895340815419883998451202161513748462565505993659947138294179360748586299368196950079153171567424252097182663387786089164302270265821559124502607327295204710418025822326932455917211159697942006839539355719614928822989893044300784871906666613548579568792301583625415884157976300781954521281199680998800052525324933567895260320090746130322591598278024019669320547768381917114472224327255692380812531694752670427595453554157601858132875983485055036473927996588236856058362563675447817821308827054275014126503118359884419826983713199060470255861533211598063556269444279278042430705845473999306328814859325189887327797276889842434101778658353892760670032380695377812897181974199122639921906626674815338263911409948247444255459567814128050703042230751338456854187382418427748507584588019088034141654670713792225966955851703407104382584760838007592158188160710269751199821401885926616730726854502594969998918809035698173762976773126444291551306956620974224328430999485299976249141104236783895763747233823301691333782613537724949157344836156784684081772238825587080365365719093343494303080605395331016131952963793243197394682929000790945577313893026581047449126320621620570344866912545338912311740555086104793367794386439621719350334736150620436139178481464991043542240880488946182262748334267614170572861330023256237423875360471578802208383125652562475650624762521873598866653128195509964369749095483556068983774276248463590959421011849972592952526193242618598530109067789262857324604363514023317029481270459082810115009514779945695902956506626527442600167874710723272848799683938310651765977212574481579216348257703111542351391625943399082586485813304584404584221346800262620974016976406662050419083800757132852698706420906881587838027189224733571812007184908366558931146225279745033895461015082651474682220084454157271673520357394374671867847564364541211093864744165894293929559024380275441241967837817699500861400551951892030141955635419951881716899020766497265826395071948194731433580940069893864263324246860117045719386804927438853517397167424881679932751585594501646710249509208654989159105487665463400240672172801271347972091105352190095303676113118348300563823507623434337732640559449849902099873440781665516704820090645667884122019599095477320306565815187516767938904420613122878505833525583195926014085850816919747108320907886981153905647176256018865210188447346642822916767546675884831826696392289057068428333876199404160202559337162961155423170724077386853214809178400709584574106003144712066503965121999616960705958064119132779790781407071851969646243184612230456685550734013502465464350837715148958052619791797172870462610440148518801417068130283020460177679319246413608561977254434800411311172080346304931774370511693543531922183318250858482612130565656929032114869284594237460991537825803626919400958938539925790427145114027447401830573143257375842169154162414799279323538409089645973240685552950108237510853839965357700987280698030204125348764268780366796435346881112290241439873901334445733922536227922195555785546316052468979153621114848555904134484380274174138094752451721001317960043278437614184438732981250756410358471477359460886871272584209578869846371924606977538918708049285679624161362574128606270664330788002169441223265280619617908389823985321959350121274854853106271652164910101004774432196962752641408028309922697250188082396909102780454538025080251678881415762810223784536677785393929304620496995099151692593476059175101825209857921146635920839055957724454461983678938608037233907747457539433047898387117595277261486637314233516243961953899717482492754278348175367116909309782358480526163446835479008938797583462318608789857657838676815510981129680283546867974958723553242870822942089629794273723306361374794143757952430775586125081972463789699555870862508499314246029553757268352334211926665817952132602092824809700589783292584831780867102684044460296788791374595307212166246677001048541376354241124821908714610847289180008742156609838325817411211507073698691492503449375203846223703392453988125529060823007315417561460811841320104294350619366790438524521765786069818985610637762786178005472697746791248460787523910783674719476455000576080090770009095102788882838923192254107168132779315816281236380901689601591984964979622715305533831128856527526269910564663995720445547073444685808773896726558726137647349078240276640217263731236693683074958490226838047893672130524155675816384066994831621501755395456719695802823067233760103735231953484791259306423274523123330765859884095691492705523713903214948157433523119647223221695702874674356122602916916623840806110993594794189842763573690091773855088340776016386375760186126205303184569302158566400950397044807130429700442486327743033360175849770349860153526585090435475190461530603749122703467895463800263666493901267858366275522677393149226634506115011483192565723505942774656518258957591578065445645661370687657321832853018540262172893471373447704868689630347527596866251649926494645429669202808415518313725793537831706706588596638336087163617590878040737217771872192689936726166124754238530683531661265348721957885457883428463211849115747687536419044115158704911412449311545515495090429140892194755000600576569060857272266174768853805993113934940781589056025033031241393238654268881430102737223533226223961260927154537886480489787993516247415737544630304612523239929419692375578511778436058530233682005369641734096270306093160257228190768903137494674978770413237950287640675327158435501612332078025717675631590482001306804327132594481621500271914547380549265564439331152054503358003430026088987801756165674188545270206261181099369855225411031065870432370385511179885149682834199995528143285924187242559046163053095962357465468320526666992902977814501941920901693556746060206269786238851229863935783798358525606533309035121472698852602884200242033859989447595676532002908756295064666978610426181812678916518318226694331486560419885758921220859922742919425644392596458294265581219508815403062726333048160057002348345533178299550412959586889059469820077521544599187135692859849656948071441693825640882813817351957037363936107475000771926572898926422747327825675060398560048018037727566050751191007600192456957086681553461998252701254334479338064198405625869190589315645315304028734900300435667258786680270720204079784088274833424763175346640403721391317030036157452384689867996492954412686407249796419446087542515108005100826031334690107365345537283040497752464674849476003777083635279103726160894092287181430243725438093834020783637679504306111300405180957361693350444922262716532524088572811454000129401530125815792373484197878225675545398636596458621805737935267007391299253756188072446340174151560950568512885201131279392612150951370131612611934796989103239790820739205644020492281371961609902402834555909812023797056809177757482282771392819405313848600084264162115351430491502352898008948170757865837282858295343557635943190462934091491384145412844142681653604779349553000012905217142888588232222621850977674115625726927461893950663966146586633516248921654234202126729791549052977189438810383376007661235147335557103172812584479232709796895065274996860874012681525489205423152706056669819157045003392878650029233221107968402727835898031918144186336834558499829243176699392025504466296829595769228551211549823642355060721091776774542020397830384980579190930908460730481433738904743966140944979440521455427240797409287492096357588955510305596996655884558899096038386229468655503729866504286225019011962686272799736083677208594843435495489053824893890692258478511631424459445147554282361483767552958077754050060596233603597543005972932711220034546842856538270307863423697623048589040341037642881060017640613808501542734723273873401708419698641869380573698167266265064010258803539044779124949364325344268934598501761192251189391114704995253795640682801826711106048769423650549113503704913209223107899213501490586055431460579577554300947624985875050966158248752214189621738383046502363294653913386443580210602250289114950794037307264212611108159250420773843367070311363027723291271955841348685034447860449169874733358508221279785569990933572918475320132779609512530386144844434615982228404358404836354521978888411662969709003740257293451701963463403791079606194912362433277167235622829199784245887284757875191097721903765349251444632234035003924066889660430094169814011921060998041550221898604265145233696635464267252498268825285662266793297513394367784505210514055431393155334986199984809766916099556772918393668110448318348433727345264363363384016940428492376545056123129321231054825323771157682570013110018155641300665210702014563508677404644448879634470422910457676573272159558476902066000583414915834761070558601895260196191778570716245976624210078320371915051823822873602194337195438655411431043917805652673564732994278840978045420419596144065861039715843315537874996494418217115919307631811710658223525050863776644977377564986100412924238039621699125100496382011181448490086816622887637281678077119263666986690089768835405139990586415973534459622701959015453393468489556985233985415261142510631796874874988972924358772872714668501226958888222330392951430720511443428270626817949734919996645669984298298852154745994644908374901697817607618381024170294824748242660493457529356335008351788551515164136937465683853004117634977624093485298729262918680759336172563223920786244391283658257844881145491073677769747350530478878354213935959424264086927716763617511577310788675898453913612134789906727162112198242813047130454049159653049107196387346696207626899213377615353699211523654653211377407736054879788839471899902626540242623120413892262675010821977579039978655339150490344239506028774936888937261890240711373600690933498361587174685119055843148518534087613603541596400210243224064882159971886731610877678156134418582075390030706762806618918162236689629573552776309213056368296351210243114826416554708341414671948961039108413967649880419029156868650753733485067451663389661935665124393451805779298566335838298742284720182948974397171355259169417186478198130642076232592090436830911455593433542707270066211122124417030816108675184077098491045083275961255338364620318925110115513681274554169108601290139221827359139831121994382920840855995420580204485484884856393995062649919961643044355115521404556578512197716200841348685753342989614207624485208168628313964824743692498933906740666078571981752653751621929564923945654998717125050130449767898421202732208067573558139315834590699823531960572512434496738608261221354170989539876671135789101710658661200515516227793710002827458239429776673670074105374061655124782851419223078941424452972083368509150005580286066235132466617738606649657218308626928342235768704840424055259609796746496926077449552929611208133135368608459645429493620971010568565028246586942285044608550005547146263729700957997069141521787678369150769149165435384114538382518164495857222971916419552508488322434120528845052898945275173789101087355399491827838075060324475085768562528821656822351517125707184531239377755759130970735606889682004776380232603606694818739691090617247197617963046534080105546286471484401447934413438409990666463189487837614651415368999783148937406717699549198367306621913131146909105567715133026274208746791170364456173019912207727934238353421571191364958379793848836001253317794635185558256667185262119672214611309299601624681329754079581670534536676080619564472515578832155594830418240849159812986635069554234564538938273128442601556757694255860937201374186875661075997924753946320440133594252405674171200868161733635928533950029748195960749773522639578241753465885895300378615555667583637145963050355411456347825006797926183197545805304195058529928152239331463741448597244225515889615593667497816074692080085569955782886497695607366752309974129664624551197786975549199992121596272262521887737060183985904674600172023229278588022818475393096232690743810911067206817431624395287261039061796992759770849023306556120304788592337993423449156289840761488798959210407755193755165617445125167645637130802365885537506565899393539524348651187173343586506703589333128928909647015314327818973183361706978623192251659366552873888666776504517403427512600961996126462974315713597731573047820601028302876116999551863328944234088988240812145320746270971515310570871646805281672250310151691739539159710836205290817512389461607053785589189543023608977475404310706505481370885684035997287835047983176006563116154651524611585942299753470578579707540299215585672823506828645251193979098806898816754406488008850886021459808602209327471422892434836838458335296574560907011491678595205206856097055937819708273116320065130322456246173876529170644225403155184218928074530106101730899388525769436106686328160763954446757292607080730788432525161672375103867046781337655266039326302461576249290958731743241789787387842351979557887968274458235689382282966380946867813162063969104376744503890252041741255256440185288079135450554918421446166401218202094331718637487790081560389883019531723219844563941775181579580702055069844011027871942683560343563862747324564019842726227698036985608999375732839358215432330648353391525006314263956526566160197128062164069948363001422447522015379669885806729576262813134713289827915574454760006473078318411812070854650226442270321908682066437563427406348779261985517757706267096082151385290121593469248336624619056652440085948471974652072796612211218302663284944895485671132020686368015766306518514943184792569014929044094742362838809256684953890855568076768140107033910125371365609456926957864461017533005139104033097679465578086698359419663918379772588207068548890710436400122235395651021423643281620667325556188034758169661604625540869463880665908639877765124387967309309083610693037426329498176274325784228758778764281462352753389130368884295501546446527298407788826906258591795748366967825220555763250977721903499620958429850714295402991197236810175362125548538758824772940254293264506708863659802827072923735632393320437677836348954503653805256065345275527141668917476483717742557435316442475002755786227977382624388045785808608562668177125534661133561435916835364214554366251320407673885246884560812612279279057101253681638658277664216962703642694714267694684170193901997316325198204985027300435541446646204961358202954090558284298342121597675103321506107839444717025756815473408722340828536990905239450967008018864740786588531924611712500552708687183298851659987045548085877292907750470194755669682911125628567051373483958425787188309032814933174328226191260371197397295875257911216902977760552109916556157434298000340441395276255772671254575865938376985191057251935341865801656608805679535553164891910922742642903439757853668810071405002091222833326431839222094016804602802976058053156069263419968589429151869436246038345674830395595348935596839748122837822176114369102569370499712165455942017800133757264151867495454183820852928904586661814692241440101047770470423093385060304655038472411316619030556132669645418828473411933534648354026747339755726524189249913359466129721776662382249855084052735154890431402338828146748143443575700700828551790295511496625382907642669044394908079572279786277938833569947274790359577756861615777423711486838235503767424457624304199523751979597486015109943985512743105670855530904547352860514072605920848238705859233013579315388094470918496872141599271275670292115447472943312130040839652754628079052784710371140542296327462552754188478172865016780237064167249682576146918716372192935541556125548456069229040755387179467578620599509459519640204344495470376760163004465793699193251015062765879584297438266774107837923739128204041064413474160040957838399372402515205848653994911126209800990169495040206585964770802005745183098690014300970675338602313506395207532698445944398685057181053017757526951356277876455660808821070214260266600224758073724789178771369152112523026011212262120801880894687202513159203306822544494415819277030520415792026056005034113958097443544382910525075123385192426637171304943475411491798104697190564634876068218233923985869272667193085290683408213151190767145432273794741317750639502175754760012038696848202221354332200683469227756670890846895792379522356150923294674589183633814738109235101780947594737066563421361254465416656906408791801162716391605710130942270815112977789240597900939709942244389664652958718142177830014986681649701691781784552050509009508435939749381092019383234494963071234721206378172979044350064866987565264145013488186916135385094370003260990993209102876528421994006987279583012161234854247617987624253998579676749646056319490860186000381794898081930843986679115543366113373849023487973227916796878643933048469697643842127570172369289369589469260982600405460008523124002537691567478268735161851204377567421066991914687574461168119520941449159811176186534815580016800891846113534046328024005428574029295445977834041304787181198127376394995478701149200081583937938665162194179469250900531935258217344244534727913693029115228088871274360144724197286926900877328162791790477830923639541643452252751455356078093729944633756449412434519908505600521669539467278837208147072305382639879396281651582039217555001383751984594989127615992228818294801365729225844055891870422786146116906576571748576255995004411512693201841576410922153697809405926166686818981143424715644276240089381884858298807941085854115122217184994161345226935953007634345226480458432746817456205395539809391415701038599383152250885890235240836194190743538749502253619330333022920667401776668700014652573895495192816434043403057705279723873306013748884424574744641679366181106578214514048492003268516666014606094998906726843878345752397645612601777107772451529311572040644508423875814577843746047331279426733834850391319634991281919970707474055547981008842575731580711030348166463422440563316198283973719392980595847433617643834771512618254340604633959424293188452999306725678754076642213300987369843570434436632023279098374775514685500713207553361368158554049359463201336583177626497785595812068673403405586909970537046473618709976070644308847571105744682527751200992490921713303579193776509303501406716848018532623815931294652702082544578535015049375206932876999757839990515942722354063514495407994739857075930422316673557235150905489060564195302733319884370875754911870495527343550551582039947938169888874648050721410009705815451659258898320511200947683846854874977272768746803025518261993226112838730634587536202382277566137851628145082101081843064389430787530212749649158107254929971278407413728521156494781607265293918537105338810496888716364290816801804699024990595744284925003891439015698848018624363686715717759905350497508456192261921270702022601310359547901914143434016040498588865142162459599555444696774717309351903743356072509304210048121861875787537261282387698947322071289771635327805239405083605776347005691855771566446835642350592902432500897321152950574783745899490499959768533482511057276791697863634364567794366826057052505399583786454949426613151869895606677543909131768833215049521105554067907217041244830903008879013787039766581656313040184549716341813797999453422474741645010579353647254035714250229089829701429072753454855622588742241511982109621172572844373064661412985013459872160575656405017642389219990203273947242860931351985095457841648217506017509094232251637887008302714244280856628083099055499616197484469990585807141281806764743426066492883568906123638415869550795739067322056879715269759321070537319697724258356340230115888028173042704857257084422914884085904173336582853972404440399158166131016392010540282362715710362591097594496314387366380904218784739770369816329126807543066036211456274844613220287259631196811369839523496689348831224184619923818411447464035685961865721987687711860713524935043468925453810939008554097742483490186756339781277070032755755834940344037221336191850322406496777802116764124101216828734726615248456595343336011059333971750035406405794309780908670813610044904893046391842190249967496970376688535035790766332070281109904794571380215557192669176087409710657579176777491550951204845187457729521311462633537156774032254883259348712867721208516696843956439391288559097162193066389158734594102871421637960476724546614588701089031225102223299224553153821289313187433632326242365236707283338186428421993253583164418325366695162751264829075900934526665166527232238248186443470816601168174891476377622345447184817267194740588316799030610758219925070288096229145113006201331980657071186742898491977459905478919503258621038919771179049671182830121954239355036383467288912175191642645575179180587663670536779952858234106389063928836143900850934344269848175903511233130582115560850555345424983468903574019039959644063970938928002478371039796449049193884267213613806805654039287978382174306909354963472643683660207014349211191320464960708748210407377793363747371744985259147915029974373695842545737809737984944330170836326928675633492430020011989791560690863923432039733775230635891304074553105575144991496275504120309731640674511520327173797179535869193145427544317157309533698543622795989266416692724203777989041252623081847852723998729212827051467993144562111590347084096737300746847849426359659054760611881692827167139470101024693737026168251117131205447855902255211438579697332659380837808031144974713020074330261968607589737852561790638092615448906254984296081713055137372894944820930851428572709284548784350751852623712334250907610962034237033178248409802097422678845539846021185160571771851923554170235728976631380024532413044436475855181140416121094740788854051718962054704099454076268305171409865481815827107270581710353964799367289038090479616393685616631654727692271382878082930808478162097753213563069942425007562209595538312610505883766090902844711218546999625812660853262498575522397431585474683737492992662204575180318541939169161274741346417681365848779926068391610012030396625314765645618930635761947908418084254964316730640946970253610034553981304102602030113694138672276481581923813049811505430166404062144713360682483595618507648669248097390208630953478605147425182622810447749372043424859714266487370787029582627000217348096572787372399357351800217606599761300435150302289999668734010301586424281883392643610324713374186369745269164092883226749407049823091954645481539652207678494375388180876359672540818023604106416984095863723014027852215201757583421576678283523707813715785281145107730701304572392125260763006231217319826463775263404308434948347731961234478962003741275886070693156861128598043238639400714773875533301087033672475275240135155707487778708374578870421472375328123781867904270836031520769587725245156683330312239945069016979112177956051611516929071012228893608188127875012707912033246954720294036298374711214754782771389193270021971643939632541770260016356907899796391118918237746534043101655888604883262616987104021175028123064797581058322627321834640457085823638671031038684800793466928224307510828398216035703667751438746878479106463093858166149452141080850597017288417776377025507911281614257519569319700238337351201641956796264417886213003713733562410104719623747559553875925027393887787319120006758154496879993865442708649073360787427642466822414260493916177477240305877841055443941260250047862513624753236829573047964809850255761695853758462749173702914519986636756429941696049473783542708373359330553567982774735843436251102260794278678336603822053884715892673175718087352112539946671273981861871225503798985487893876620162117450113893060755345677525567474429674172979401557293809951935873397712165986349407813452578607196148684105503072024839022756825554400002735912048813985779559757681572953833491859985300519242047374061006545393833788519625196733366449690534753007186476693499740776185260848273072546433184474296479363262534260411734121073576235728458558023882303852531859233922350869760125023211727895193632097429984173040943461332207577087054611156238537187320357269921154773001640824553301943552320683234947501885871094131619498067226854965167617688897899851796278657141232172407259798644939215917263229477945238710762112372107143165677502392272559689122289307118966317837114633875117120374175379285209291427236210086805560435808517812632894063821218790398746884469869751702392903222315114319453645736068015209007195498705801918713371823442086691987147820650486255168566697601896353224369906950468574252966208389426329074116748258789404162360045997127513328021915892498216801983965062181859303380095857348072693111358055480176201770813606884743927328101151604341213102623601965331347203351424454705140173577827636581720293925308813249443279330283968135017503832089289368704286608687862983736460922837952733464719144229264035939459002761233368642095777454642982036849105243289988774188419089059145739413837289976326432430907729289195191126321018214673847511802551284492073634139703373218937747625356948730806937832575959999437025532420324952362157469779910979533570184483953475380428097537299064038942813028310889989304958659359988241164915834925948266045258024065246450632063251472740294131821282924083393742218814769813807222042388189036130323856861769732823074788765947010208292621269517378284973602688627256650955612851977695227644440711700154525206341777676556646158514976958168703469769343335237219541700011002504735661976806531750071954768842673538805898821325938723029665090661565894686003868642655265450917237936414453377164273344122261930830531121321724889239195353921858841206776378103936992777151913292571859413040737174388965140051444866409463155978048773522336888097072291173238253559546492280028301994613067365356598637970195418396766680670211588300616558738290292720381677593827774389189728813609119941484966294033814052841895547445522915448757337223153282106990350648899016035820153202152437436329385580715343411410387446434100532397797549757497092764404159438787547000844020487768713980475521039720034937525323990314535194577224683739832556273531628036703665626037165183613980001382003885053060997021939041051950236055211165272044377851490516007447526702139240747990846879085966734133051224169322798885155893961340252054266605109268043068611963319626564226535205567422989112555608215290196659253646285391946224403774232131380174978281628514275837657875576752752613816032463435470125213693351612663233612915207305756708542863413292357594098270589626886177941949893096690138269208613216512436567037861254296727237531911052755782376182632904735924328743771065435598742287016082230121110005819580154720951896981089705979044946831968501381358025995876110391596205412011420555287135659721099213899350362199507362168436385562283981106045805821307653037176790879409889533585007479232592176787470563288185746537988850688256785698737025688257232988876758289862387598292484010443230061526512248671435892273509408860238863171563687180527963662103110625198109894349761520494137039057039272821683659354755827456459468193772709157181028482772316085227791787993706163779244244965792344802727402561009257543909861138582405596571936308895646659995702810788256959771159320869899685479961195915051474652781337996452420638735967473274254482067305547075160092252172364634780778806928943263361444780760368743288031316311922092717355069670708005701802191863436763125894379205017569601687811641578328757511885111914117419539191112252661534327081184213706629065716289633828417268277196042480577087533265103330567836363528420238807456334313769358044265457784920550602207528982444351503644818035911550076576673413429973915683710968648749962126371321889975152162958595966974382771207047061912989658483701860401906382467785875437355602713166725801771137739360797862157656698922790429080521185063716338378317468339344163412266009957277230856045782966298498016563529766200335445003108250483092195867616604633765184224010248284989681339660491372368273918599526092491142335159071642712086461147679025273753579273584155257524429216732243193397075388016586102600036250725952960182523806449311382813589734195061008617622957888398846588482122070925389460982782389684084321588665431147589847043468794333750890091762300737446022227437601552786830035438219277319755027230383931832592712827575749935762157183582497534871849965493767499701151067551816430652583805390755450651665435124589261524362522024394706041418554727891111154604025423888793762600118228487074727822298629525451749110513723175549412374473559964798243777951013487481573261736424293437925985570513904177332451659636872657004963982362305903070300615926150076443675480345504014036771276716425180837944174271695428605013337449951199744320503782416282924852623673476211623765396912936833818562175250206830840780024066035690858398433763990268782069528474280282493497387411276241965443455603946953000128223820186048704087207016016892701662159304576184086313897253538729279225713871583523366157354577298770315965567729154411451978225762411867559329850495544018946277186491046629493569603126226917105514575016535615830541816702616225832776087250825186942511934936242210120921826046866805185476416603085178659543761681849149929219655279551801296184351353912424026398226291342063525739741987775297439518758087306058328934985817970523108730637397311742947666464050957900607077533772024604745528173399246823523090692544897859826690943674849575472756962687015101188002362212614208263475231186273498907745250307905283298368635574953630983498587199349078964331375402673891419925057074496860045560931387188537906249652827989651351994122401246485207901879885708836971839141553605105221003128290362291168164372474692670560548826462078204045265040547446668677428501478055205585843311793360437339877421396456522611143415241115221250481582870562459876454133850963076925916114617547800693553797360314674120580249872721462045917916647835440764776734520879360162449986608830789484729550630011298698630715044962480806040758707210906561619594451318771247977158658591169511413295548667546816487381195182175287090870479747504483632213271980316379384450476144644868138052816468116587561350374762306223896564610514837310767407221917052381418852350952867325359054933034407087844322970853077467262627751355055095590376051274708669075562651643134263620252216617111365032105396805289020301969337962288784187838678476731682327752454587028336181827102358416101588803216550921251802861054110066462392803262509330401658050405944276425456377266675483651723549103337136562763759994892127657409937995488813552456533998347434120195426861077535860383607616150767427194277086507688199800644163445275389208195907924798341649792977573976339593962769524267069630446170688561460965625178671428081371524263018528939205360559354286682193819560163344651934094058428760338090453599414817731335619958388530610959310407115230760615367386750033966787535290892436544648776071953178368210842972213773784316898938339324111559218679104225011288588749555161411736971022477903820889962100241739912566788145608651572572905882867783459965077400886964480388344315119695664599321554706085407002360251071603043801158360171895753453726952837155148456208429032358034620880189848832229112888965870263259413962129079465352568655912229750367608594529368248499867108901261017358785963180400810260299669238781402574149598213669140297495802775045573195822430746306770146274117704090964236100992718677775655063151948498119473525066617257181812011717514590346109612976108105652518416153815073655312443286923873305409804421903323078839568231271336996194800435474580870686481134773705707008575631477738111351042512736756544803818936384540710814957025660834486693082298745776365557745898558333932545154920785450865423196287010342693449936308213522744163372565236033807803478761821719846991422951869012095982993980466263699589723359338092969041307328046780517019722195159745801285248662575930094863579803839972472532978019756661420320706056496810520675610498980859023633938124550490349543404175628197522871165334046496649971629058244828917532054139725929278156212191780364377664299167280413353781350547999464560911134627946778604434196763377142916358879957466943257799775002084856483205477079200748905320830610099715284245603691344490390720257468470232085046266330828014447702195388392333425207507769437929024118700256110346567793744574436692630905104867178320250310472258457396582593485146152822827940378080867707885139732908724873167097962091719403116230206351341125903716364779456231241251158563129931257144593057431315211604756497985553838770796750889195332262882234378800045156596603646291768894637787337078003772856345719049600662887425239741592386797571534808559306180251382758449416035592893039106751651277575110700877716539595331525707993663901967440677342283473821903822990007253833605632077369672269026619453113066323293484830664078596908678429146424909707753362987004611438706912222548470998958252573262859710022379370318858371899024623683995830015193046420837346697930282488113199754466762344517567206556555513165613628313027580831816887101688447870224125057006098958118236679146404373788465541684927957820684416545687921636259594139369694474666034150593575008796956239914252476323441287645426804921750411407050688461523326753485161141852770076396173061720068435169876104334204381055398047162525391930882134679541695506228653012763858014879928475050238067082375356486823065264478575972045058440036033777048098352692900032490800558605256343572244948676916359296493219711927949070758617226400608826764241584769037364844634269370942555436157054386898281409788779043649004092024948694089424949654107132562800741072757658395137024206309939024246066962232292199392208934376923100482131698655271143193506111217580689202749972307119778575858615790762432956759141036404380347346135866987663074798434271172347351988499958191802145944123523518100969866385719943679058004397084367476128617093837033199912953823940959222643230779027539940056647259075558801532150751590065766744224670512770166621159733357553616479691053090216464346666152293247583886747092175063955400647779490002908026936975114911781251315026339710927929834096633957197699996144633982440098849119888606220576364221826426266106734468107070890860146156544254287048397505147812809636651518857970590409342442977156973321463809850319562099844191326469225392752759601589563583140801990693985764067408577106980344824213318737175611061253406778180372149460711808406046304112299640881634976009949135261776468127610465985451881586593932469186887634095679892915637329871289130048322214428715527645220897097322684263675374182315382217399664461163168076284071993397558712570237606157394929224754209653273224039825800472034526341536094148794207982701424254348041310236474474367758284088051680670163384590447699919785193803907789402339739954112817055493677393932051641487610465080978316276332324159475811252620611655713144043103288750618924999510796067170273960694706003125285357927624596636833930067017983648411103409925633916785849544352269845298988489993474367345297258301198988812193017401423216233137626627221578259264736176018607690736047729901835315318294021323806316977929201168608032127419439849316411010200353142111053830966241989188010353282869689654596321478886560212155465458936871824239535881201311166872439853542612075458996260698242790272691305033207069882319293705241987871888592750392041250558273499385982397126298656365608676765567550022528894647848785180535451680063919823029286665777562325683156292002449230646090404148679956064016896315581581455672924276146742039995144493779296281141218486812612150821895131235642042639584687814424544876953067507703560060066195822936263122286659536631884730422694521182506511925872941747424699945455539571901511881142351369048746044025979967146320619315794200097042382447124834296727818531780170500796948541951385595789821623263911059467945511978515984667399441012815714180257609495514825925650720013144161496692783341386417595603030023906625670657752316993267800316511530890163149854538205394666920156704970821624696527882426320730692514996435554857200987435859371385682326017928310147988792323410414157753731214338014438826544574152064214529784420553213447906213963170329655367932063839757943035623325392962828011281395780059291082078062690872707588655847479104368129113636187741741290997806391699692674914005650446330211435125581614108872784595425222535203445593937156103529222443875104114886114193627219634795773957143335397682060182418024014587010639231302667984572014017625710547288905726083717258850255962801455203687558432861375675769410013265449031992035383571083748087136092073918800868076744031415050959820477641449849358080656374984478944894535419339502606141904059912240014430074321858553066902214333742782670576685165040348193204423272210932675461077280060612674647425425668613382938877801521384211743267597185270339131321619237002118981725095372406738361667324701587258753145882572204911053841946391604530725900269992368319554770682380982082785939213079181794773662303838792713159275859909722679032077171929311879815156510537839942447551326892616795677090547822553433268904925602221924589320070615289308809898589765025626101781459266922357069622096515863830276069172454763153491287024993187768257394116753026224084545317553463326237889883223075553538014031589379161614562779705422335427904682001194019895850211121160353613800646731114044631609825012854951186574971103610204932853198398249575215035587780620855298255176365441376872804666898207927036545295367191546303547293924207633057027613147061534634394581504296794702031145214243972138533186869112308007118375455037193542346646017321363486167400160362191843718717418054891712672289335205267580306935708526700362259486722966566799544193904504685324138638213487131156273049809600254673802177787877827951084213026375452637474857359845344492064035743535358230349230940173075248005279338855409458980977279195021564363290890989093423737198678344115694832138004443954115511375508017454846510084275009472196363528001833338734617771902222232531743224025443962514273779789091749519733172617697927092422240274889711700689257343647182419557009464622412127338969153262745393670435244150017984226120126074291243729843664543903453533377491567780286524474916976514969392666937881244960893998308629491807482239421463598401308371384202399269747733089124063277977857723528878080559511153597545911081828109197808662062619818479309382194485707402184495159968368562305791654937055245083662104124654933759827132689074182960891052897781722844650590146109905003357784083718349803066227979766179553603013426799714528957030622915289896710466840212351530331710465095723744912867365747021571865429791050748582464059790487321352291063075864054410593614830199226785201504197458583876835084881354315028164634987347820326748742225794369128581721250934187215727171240090844268822971824257493036183778948843073703260509817450574608748817891924778402499841587887819057070057065865295969603964948724638124819213157891589635765911691455052819940051099804371998753666914813136722539798841943815578792836516334611923201086135510117913943265128142892583689521945462329362727584427205792504098983228149987090242625798269569902769778185678679921440348136133687976514176629790564230259912294223745727369581529256438503711715327720423004070417109344074017176862542152334490819538747896771266728166663909554933585098189821378170498098456956253023514938549416674421518443764562071027805726894527935263072100664807874209244473450234297524978406182025530293272982863500984110927156876424271030774650039821306984299613547611610849334423503431914733027050905387743150963008702973941114412373821590621669828127418901160382933002735061651767305246851173001817742819183620110752384567786961518534291847271684530022397705558054445501502274298906293864125798745544544691188181414358403010173934175273639411989726709677302800423625331316529154751689818201882127360598740743159931746712070460185211816136847377592770548573137111884628160452219896253017283180162303546249220297725619382645464197229092976046229867673108685169922116564004296914077865483540386497554785613208144237481538233700502939481710989033504131188879422299262499770720509028696264866802849613271104897471849069249801589977780475751627400592034551172727137200544722458256577015364248232560705401067315659716967745554210382658066397832373633480248054560379889800714893689099003004528502127649624886336865225807637059267900212295893229935920765565063429913955631622643305734430351516745016518856484289796019781913547167781845705306622626266070085269658602454369299295697379230352245105195095375722563531321559629444780396302725618103531249155340237472893707624989933993375933737849753733885708707905413227566791161124678587937726888758973522760923792004941763259597387929756581321557341299708223238423326620043210497231407761730402083254398969337402737579704644307165202753952973820818243095371765629066128668341636471895498212995861785982077305247265269160850424192818029054261127011316906088813457112422164531372038765767752673249806202752709766310247159533754270385268602082606812283542877338337407524774974475649095832792247704688312323476333339313818121343484135451707963794107248786433003673788705525974563440906440756855356989826769263163569977010481819510813576244239276026379088819328012056933938539751882318058078912961310030196303045632710467605842248612917453506381980126830674694870824629503386678187342546329916478455536500406511552106356745972651774854156839617703606793147512892173392523675865430041248915735017051966063747962312213648970463895515414199255197362828575211938632479866664168603133889730125779830611220382459008020787795309183337460490900120598289322475349608704602108296802923805898967294523605678059991012473532516261021373793004881350230678104135319953506262952570119920945935721993402595947326022086716137773321395020717450742865597814944496806753352367753793083241543180011216413679926372154220954863388283251078342001565905432268140257024703129665120181567607187038981497022431831604186563529345216130905248282174802794814327099829014098978841420793399953262630993737006036016903691283969905466622631657306662713624267175161027560119439488521745254826403005083790270041109001170040621580901939186131277508841078804912989664858424193017954556435024554247772565066948467139763967197187160935795801195599330852777577564828731573696823739742975005357211704337325939128106405875874432683432008644007645424219418487257402732675079504833037773104150018470501186896134119984736586116220412541431796906483809192537280148011720376670058338670287868996189087591305783036506904394239842939311235831731724494976394547495398898813747644612772829993443353243643511249106503730481684780658842214179160082050139347084309500713385936263014728718970485581310765536752146120410942439011511451489730499670787087416896748831519520858235137209200779477367240431732143046627981917394217144201821918314918684390190525517695580579054223587075241415055756898340560613701612529351585129528648604580201902769631789708352561032914407146436210073802933761398165829219666538165603154725978116925263021638205401079044550616983477392988182866781817867272187901775599106884174196765355428678691988267202460706982683990145956271191141824853597642758450293536237911200935349907051972293033345071868008837301254011865412196705852858535705587434916420649354542615985359972901505699056250576468449908351144486643659066237472259120300922805637737064556259022435985661512531933948565359168859759936627916472716387293770535444646036750409634934088131330484029725470106954948178011933493963514345956330456217893261840249689736515358878387965406181987314387748166438191319130800536673808298077698361903651865840116073989577733364423662094057445857225701671176394563718336507029209803690635778063975408621712306136229569308882429362523187290934338432802624487083646461726413194533804647228627229768524128456924438755503788381139495551794972678791771850823945344824701846923365968850128100671400192745683742270187793037477850042819468749136060340782592740062466551875575536802583955261925199041522090340227130530247930190415437442463155835251089211654363966602331628460611646448805431644765675140604583643229118778469647503629045039670314384237013443128154134999358406254215531104273452748801413690364660755858938406749555411922523391909780334983508058189417968830132443523464139258227182448164844950398962742166550844709721321260137910547508879515307694267282679370935346167874124209079913330928960391539062730419626248306220792307488020809804488482856432394333689062157450286825572128428282337517911187378488504722912945650537113319989366792665522097069348398749717620774920288668043462939898703102407008296485178515464545077002253459207568816475887250323164565635410148342053771132170163006080962278046215082585905827314560684464547422682932004668585718856867956369032070181084976367112857638908556641432033961061977916501968314614868334827366233254649355949222208695493042121086094604959417340594534888818823736077825028335472083660862812721001139953038405417338673986456671127790290416104518223493898032267577796810297771329481541273717210335405896398282955110484601151086968407301046739302347512029174820971141889672923457901734048201212418429691047151071499630866399788164818406082492280428432015326146110443480511942626585702515914547353923612570336636319852005739693583760543850970717531246574597024797833717858602952303720610178849697783835776524658412191310635769042347508918429306370551429548139206567190807626332731572016536267164355238821513982100666033410938110996942613549635516044126875840575924437985068855568881337072417675565870507736824400603265957380912502617026448856726713094199197874503898768776419988635128639584955999600290974629609337679186586836707475120810298520863031670126719396224810067912956478070528476119909789945701505437061126458314257971485537216046734678246161232724876581880916577874323527842059118130041147820580886078545545942141215510285592798664949337209126885251233632615085559363701549088434873763812534587546101494228743449980709524018956192317738107598044253748778150979361747758639071397494292093453059911587576673843662892393466244962593114848115363107904365638122153950038293591599756040924510484665537377233912360037122795221152286819059341500127574346765479681478675190522953701878838842587272296186267658871829850249298361871889528223701552693556473998143043818644625827352419215495480099819619270022295859504009652753787624158557576539130081995172442188678451801424817148491118796753586225030594551606897295714143851532037894368509632457409199374810896488843675701270986359750970133231019115299214143989159526555608170114417109841380349346645614000243517510852380344463024547096319050128602929113067430862340963419499015988792457683176363955538733207449436149586861343848523378019306853805771434695270498573302584135301473215944444568912071181108365045418504426436637293760138225400529376266541275574340004948831424925812512481626931317518169106024739097412499143623777469613762164373896778709517172761408960623243915667821606565622910316460096226311764343142050692503182798845831584427452414051108255439189700844565775531647716420796451660644401514885179359872477473548569523223414497386054065952648251809229160845870037947136317458333657507679647783766071804298115490139337594679346732314444281550917180357248142226049233352605226988782678583312774526518003194465950542970606456720502243388883846698133763400489445669873800823054341611732435358254851619076116902100605030942845265282528901226174669908922282543521107122290757673517633070654280288799245321249878154399335232559504291075755300022689300901597625671503059208684613073442162503240969287755802740641647104771224580391876560540070444291132686780929672306511258175029284430995142562490085941030897454969013350522146264002840517773913341346426664093731124763694614198269817143983190198064099972849173073560436813844254659991949610528178648937703308244207423868170636932346624628349350871951477148820444154691482272417975361655784649761421959814587053093041217647264464760466365943195474721131641685862905312896014747916376230059422967485163694004722446417845346975126903456879031144323567246653977784208255909748568230974408866798100515235489793492641680558467533409079476621239136318500980949292020426981106371238951870785928724475999455949409568911241863443803642133973545271100017393931059746632664140017823919372785534774257315681152198877825586798720358274827690136519930422714644253867969149347998431752641417213518318636224910396344285595964369780113340801210472373517324780913538374801193187546850081483317115282021435786022054943895538130384082398418409009131763509064003910421838265462070626395565233170813312812783030279901270424223771877790141722070361571824140730285532013641335275068577642306505331223532233451818917701341991946156913454232598132538983352780119143782644654455429536279450361201235146028849741235081026984857490619654219865003718550257703684445557095382375707717382925904978085540570840842303852671940607891856665022012299587697677652053591533133962842581023311156895533341002558609895671001210940404229669007808711976013407336233759950495332872576782098285118930603214380447714192537842012617563181996932941452324492727366899603727684132662528474751526226838299486068079438643215392677198417742960583432329753981606051015455768467881769043053487987286172358895774168297544630828748594931537896311209761431551967810323929528351189842179130827392726430332970821753225570130717554066768797705555028423157129189529520009978748610023531539150370203838632818619977503973357596915535347217378531747276885008784467016878620160830591337374544972331082026774877391948496288205627625138795304373933067173954936601898700391923904130879317791958016722082740628652696749988149014639932850584953099000898673601034766241594132971146357443910445889694773696622541360850712727765282480615866611705864604308468911115585821683868712573001354408276288011836644668059049244276035281207121346628261510986609407563561685369824577296721566002872309927970760917535621368912973587912783846771540924728903638034729615542549944317807709413510082882362627737683570340918977220279430034485230736015828876094009434293745148581403204214348504661852580579491830342360307568302911657674159931489641478576310022219046326603309657355060399816332207982941912008507588480705763754699134855795087090839870061857552009763289112472711822881172199193713948301234173378933598752037473818817704862147126180381613928135527475388991615583253890717569090646019643270103493443575044695656236543225818476028580184990743474753351234662088524246409427759825782122933957792913056828401184445949049624108949825513198701044246236182055561388003779954944160477280991613132496591573110685057179225753965355466316404697369550132563302212936967324821506961785641960723310309984271746852693762365615659819353734693027472498233681007569128585524903886296813285891416124542412002991451594376176487777333063305436040668993994856879379913777628862612333649946476293019624533938240025245692847733491758614733776331266633454631766126584315865341785493086702953125786924062970903681488388747215045818734016917251761349611270269350178521581429533870046562563398535507163103248320925507229949777838781691192967102189241369531674689396596099297211004080219627595281046205095335387967417975289882230699181710502546577209632556547097125031435514066542359002656206855159747014504741278882959470043236145592078986870795713023654577726968919782201869222265990449685462272606857370356783253855077921423279089752303593674966566520706323235735991287391999078878266004648166784264329208182576766703377261137593772164487921039576511383496193653733839463172510110565657413742592675824851949535712525359645318350256143164634121251948850979897792749867185767269857919623052819854773138091837167389759932278241698947910041619791061005254869473566295797802922908633763800420542757299876694083876315803190015391853814242123930659212361402002840712187571694416997366755794520139149226114247267630920431615865684659208063615778233018446011565762915568856824517876038362636193432908827154560747220463172063832324858687642218914796791364304904145460043651480667980501882988612828700056651244912495191092426218072217758961720604490851775291525807550536861388202069621328141664425823818294952321915740853985819571641022609235498213770018910626883665294817670550689081440498826811646896305136741130975277851094917763554067756678928053639966694411590970034673456963561071369349336713684944784105646734609978288435809345864398662262214158127711784140284492904422975631967976747115496333473192972003835362408107271332913176334888073955572663275704524471968109667193945150392980647812428714167364821481014438852527993847602922891258865475438530797805631385886884627125719475049398724062202951708494199027732722116883785801211520198115724240940264518601947803938214743562256225988212705673174383122908455938361216829688089494513618034062692532053860350126553985055493644777851379787017835092997118703982887432898210980795010416520729258608920197679995422771848615485248833458005987602094251476335577353609180914003762089219357176980908304549303909545273088889675051138834555244091189758337190375658823280921675931594627307498023245255687370321317275929536841824196159545233189366783238719603544482231404027338040405236779419990477656526404873139076137666970387166223297354410129125091320652176732120309464514779651328995065376757444477013688186037895463037117531474665325019789621698044936428936512077533718475615665381971341747853705749437750276536161695939051604448127861951588267443443729390939752988282773700105115145910205628953302360880048766960349601442913233144119654381632032419498048784169011814138186282686415135784443893848869080001807021546274642105601981460974171699865854531046334487494808508740570013516939326107644719879539850264427352287603191582336893116035471198314291681955591062962454899951405841688354578485294759772568392493695619718585366392234601166920273760057835265571151435490396329054553611675238730957363925948875667430932629185835085876926424143334807574264707150681472009927939874099082144945603651470928623875204235841054249594617108132158539736777414762345908095011580588051154829993572705573581196777717472919172898116335153929586594856535383698561963207784494830736797230673547625723459140914540605684650592618124655660060072700454536149897468958386362691220043682923516022570772514089205850108485638341028488338937595134660128398484901215190794164829601235071168871878055047842676234377068612258165039513811981045763960593154485188728751005891011186875009787331842512829471573555015814529823929625440532556458964166576294939006676805426914144383009905651738525630846141981929734224480147161716230744172059329170267538471030761867624646708661357522368300370205159316701074495715348051872712034389934106446483877754285999435273647621682315434976674128227847222597011813514628466997050373144354211382455817255064183213540926628250824916936556435459903422574629820074385995612598423274685350980096077429534714553149263086309751828341102845196567440157553169896079666533955710896091884995205418929627075456000381407503239079028375378073197765426938399606691755361560376317701902043260327648406703679361085387790196816777065675159865935402374643539790727490240802117584659443777863578890622311529259354715677507544575497608529842860066132526891038912914602979721477995045453120987573994007345185802509860631888561780645860324818321969815696755356354645853720050026075154926070191884963667092673748742494821601795138087091153077121298393172304501285380665333137918257914003707927219245418687388402474905592665871571365519719200250874905946941795260885661702133814313981700627253800555478925887997065430157764001547985259191418886652013827854281718463683564327532475921820491750200537102168183513284533768418767786818327782230131714493986097462717750725978231372290965978105523561023561887684805409875829984169287340311330667162481261391596221772971506968848783032670797313099312808287390895349494828605726130450982068766699262852744792142805986681022746427538231756098116853951157246933134650642620535017917079838244287666250190185386775659407229973300765728134785479959351390995224798358741625901036643604778909662332505468190659837063171055350912986173642415079890826340150384141403999506389611882047709878431359391303745907105010009034400789596863767215791572427534096337530925558767944453887665151543450314139299581346923266938887565925371251688529433702483264216139554675999340121184823301115380209502832364544312035149032937267476799142533282088114604650306743828923619271148392987854187704714140226057771257057289675393897131263245027369349348667562520176655514908548861950191890908301682375102017260391121605522819308931917208237981736697917380201183932136352208970966656430980939538824295063132045885216501124221641549599859779698962108978847763633415412336845513728165320597315560349344673534913237540816185526006445269519904107066800431904433997164618060196376949188933688816840742429124014569244639077215020191120825852220583630300094754846028248050069426561971726812902204942341415829592260978367526989404164854382265678710727634892522822565913108462440739209661603198932320494514121819457717792093664791525942908153534793047837875386967141951657636097447268865855441977254526938678541878877300668155202553429493174536313081626602486880601926455190603549255643932648064496443664721800563456135057254689157833478734605948339738920527665167889485681850306955019523524765976720011830102979294753555226344671539886417472236086227531510785861667374541581257519096777478472065690825058971781687986881128771114349187015212630909268896035310708878374271556486161905322366343978982941080005431915256074683384372766429043990777102895669855555838171946979905573948311523318755452612437630655071471823301976574981424214080242917034246772983788194120313320305288570196039103903739708540993628837082071059683452628150467723907335079433192904286628733938022029255264590980745204554382008086199601939170390502323809668100881766364807349051540639040340548794362653166600367591462352891543341733794555320768674083656605628218708918424583651245321707309833000261414630965578148937663706173849070098745057737446917771951936455679566664072742971676527993163078971615661227263488973884327758149960596237036146398953686594417435051479942221323897182991812630275712688394744677765919047315066136882714253543051095888414317329773660789740506190494065977380360300864190196858143354952075897878560626585307539939243018599647382556596222498802087101516307501944109023520420188804459769611348319666417743267054584747414532299846880591645128065439535348019551000786313876441841696731495291081604235751896972791278991982362769734249136819271091802567137199657913536879653776500763013648551957889440864286407391027194632846520942515149405198265836646775052052994633940914678413446070954420582600273611988525868962208972203168178333666254614307839391575608765458256983727574838211418832203739128028953319483660216013564726361562481870141604561336055873456329156277483743626057811721275345357701298001389415856984649461804959504795574622042463408268892771725116076534759506835399155706825317902767517569074681628803734259237171391289375326311519514289943295948941486740414913442928118229911410212568921041890759874422780566633825793749431330037663422458340770498750597237708926461161830430946560836324696781707194373714818798463869830664322021255335217382826966114793329913817707434425325854269691921587727333810705844231259781530954519530407108667494165076131671530478752527666596814445971354623721294384427025117670757106471515747167946427308471497360860081788207938350997101629464693489749852499131724375349882631067789716572919324605608664662691569533867717527706415156655156715871913115410576802266829496199122398963890366735574448630555849185875688136566535843388491850052532569803895408948189576405329224070173119210954751826522722111447603990745492082463663182677669487630731177938935855859237391552739342695187125074012658494115478845765362178540451518979755409984458920701011908909842813136517171186336943310906171758390576314732721079542486722217695968517343931215834784109298604668890177075254262357440853223999221815962078421619531369758567700845303446641337047372591649352313094382648048318763702421415633067554572154132514935647371532377553831688098067687699727564746239371564614555914831243087527541838676657564706815502419499298799702539753361761507276504882508248445532872471516600435552358680426151751185077961326979119961272366718454587347544147611411523395889521499135794999177596954381650169832810163888686387646750369172309219787409080152470340316839936568171409082546789848453391458313226146022246317433891167723811942306355518080695411768390302869514084958935537344126590444743360978811487101407944083624965792273927250320515379183526206912549446943734558069061761189974147286547523013831402091537977397988311308614686511904752413695360167355037901247024428638215888333303756106152857053030976257924263555450734590583850023143983304454315027252952912260727077993561300595906942472184867175337883571784890139219738545098016995452826922984645727697752332274979780314097770209090069009829195294345530343442366326654038134958523800807971930501269887709696474514574804695705722057648727632477588645405987687177444676215538545083559389104974845473959252376247129109004484652533254025348448458987784502246674905903903210750863407654135293098285845146566781115173371548211182661966067004228543282940653225189477452317263401997409738703761217159195443449616722713024390067848333315328535366854890269036781403970102843588689433228630323637802112463672773492968679094460657201482384026331221701418044163960076956532512195140641287286415603934874580448027617188969497792969096269240893388731097057201458392332901474660985692103960857124924478245681459841643782329030611776488516942741749571672479968978551588631738716809547395215934404410804271450430024098873003438371946818299640356136870393811792772963719496917964373490071565674694066877099421283822054419205870373572752153254940632329458579022092323970127297660804757319282286585242925349139898860512408480594264464297996533808699587783144742117730723359304859309656803080815128774565000455484702765982772646557931023550589282309272105205362908833931623969477305752715826987291256947701179032804773800311588989646878999895805886261401559643349216555245837066256906048078639727706299214661236232624402719604648161610203323790643878226509095038111769973806542584564183275152059176287578089292129132956075010122011987377523036474457802333634291380831548341546269337829665020585080137504134627175684226570974080179071672397679075070335727055056958529021414806029560384587035557002342440440563461085097227262201875367301672974333548116916395574153369403134486382015203645743078692896282340835200952768963556163225283294445719235177507903642913729760391344828592362162745282910060264905191535705060282063851089224345149066176183152958580254401356956751340776901706336870249847620294754451372538240833404769000494857017426208988148873698891781234309902373909643602838784676517408241147231562928080244344532849025930483619894426453163933544444025151126519598381722000216636023380156291206988198087098102304581605073910976119886012656191162276078882954422366763830872605630105043070860828112005214176175101324823393178377331314128480059303947372268301632385751753578600162209344390413934557169919643259512914771218114410445044769600290579815124042964418708143602671452169376585563415427468060585957978292136373748657721996665524836748607431827612892648068868323868201436147344185489701259336304379022094867718871785681778236728159059262935328386596885873055768259547523034972854665412528976934576283245268343675506256887265089230279448182844637776710922533685386808585281588489170586981603491071478615880658589493421054755397403819786061031397744035425463383142716659398338102660774489369244512814817757495052552301987745037549107475253019554012567536466175805750071592767256161257446002685826328021658397497855414190899443082714493296003718213968443168368304551467347125368847386384714251401893546793558334698324260266353541298345968328614466496224362335833425407014894363829818812919959277634949077064040259308038421282764861760390282989023617282081915294347423250779262001686501040231272894976043891468744985242436081882325460645642859337817906742796014516825414561236753096839943494906900091343065922406871795667544064391498956470586391740868077361666327111230567370388314061673305829060281738120465668009831991056277143627740925464540390583028111627038162921520296637262450833752523917901584708541390375762281461267046177364806324874485283879474230583030107586959039852757032775329512688022200197621329302548587859654719814643349544374227095257372160415216088615306108473146538801849160619953719661138286868775767194922738558482704094510553934523602134032065952921430257760974835834820285474867615732181212379590589573564820834373363785103905903315132788483464241419438600308209588789954254785315679403489644669158865987967908468783156261261129431611189268296502458950189191936359547493315415631578458967223118914668817987041697299106175922133967227157411702894555761030102083998697134166459870216606955603142015822338205214405064598656016355689624573583597744846079259405129309192559349661202068923075601171407728510423637142473394928877261571857716332895574828323815648890653947379984544849290589161942841772392562609665250385291191708841319469748148227583091796743301493493874333239661718989121152685825205460057094125886233965646674961385560016614582433919681097955028873171786760275909894804203911672538636511668099295231378126763626878160208674689037248143351297800876062202634820047170536210572464220336235760461289709010816871664842352859446241715094720462998925491285055384896207278004778033160266072660293935689118153376200425482941929174256489524550333517626840545847419467053196524386847902099414076833005098858216113959625906883527948174362086194552602199597187787372075471601072263096391002997253431228817015099790140827650325140626375985050123329208206699339902988192725261030420711411762958479596060078876362064460369685332647087322415151935307761062074825265861672677785576546879581345621421801307190478944441068438037368138971351890768783871838196756554295238637763058146785916179499382372224916925162305704158179681861169405360699943010734575106857337547847085785117711536487969373263541270855480943851693713356766496300740314967058507227038812746065723192104343053798534496984621239123788535259535194899359273086941182828789326882560696323081472756707758547643420793827304292991808530048660798557810192913719168366162451974042968484902668911605260916287146087396998201337686372918323786289345961779239369608359852569181485091845040636523379065921625962002221627073731307558762313633975636236975739982200415174116684485320495829329494880455835558679902503221755347877858599628174253865451170770700001182179228313892688135774682316564322333460007123615982682891137672955326633719150934301240510202574411279586127005566532281496242868368050150263013316782096358043061999822657894446703871945732993002356883386282510308464943267208741111602713800950346629996979212673807901664289635299130668309856566594737740648420914604621475571958713037230252289727639180291764719127887869847013962875503347797269523316387008509584070060841613792695160706983867630278665798780212891844042862188842966455424954562208346709199804763450995070535044800044579621051771421089314995388245309771187686864229979502707453247435276924558534655146912827385037742674697652000236944846062967384915018662537406874117585444749927482295815430349386751944712833564124334978983516548550345745181845288628002635163437231780689207669313869255289343526173039471919529510254874523557270500098588571877198452723356568802821985921898227154169069764521156272975767269359296796504600135819641489170071999147576570116530961653362971027920521985297846527365084926022336361678453808714731438517663601315459828623073381146808013248840322871595922689052978444382154037583530970823032080909652947914425447459232419062543509531588971310026346578767227404398667568062417221771749448928392949631406711804875485268876130156022197387789128973657362496811738352423075553821419420734511738738338908724548386113424453688018574555715374861993362519527035472721059000315211755538543197964605870115475701699104919800993281064856693913804949220079344355020730274706330742150392926972844250325288128334835392478262984979554641970929144245654967644674221997700078115014925217560730108847551014744401161252718682007277190971233802288057047239348564710296027198142062975687367211268439373983370142367090866063636764389004552744764766133178322866457347242997990996896102191837944174014354183733124206595152816516984265460823269822819007422734925609095401614402410458506103194848774965807749088684787708274522310476532140911822984128003737902438282639477613370918619215268260058996637909105288342073505931408414912895781233490135503253152087114096330339253953721077993788692299970250621755434527538571122855168386755145991993045216847052614176577032321812242260993455725667452837892896537376922933501248301287893472524554718115245550570359084043218440736547196620073564728487528651098112217296358405614185836866588181974152116908842827583373715281709770549462604696251816053553047700053835227284768836785250048633532393376499382581496450002105717451547052653616204985288189342334154725566215218992048476206337988542832033682278087644561674862191747216024751931042009277037937530333923968455313469871081451089488597890474020209212029242162299581272915024234319016051218618919910606579416287965458956206759149463568093321941213786007522948791788027569260965817607115154533259326889178704204776211155558942104085589696293681625159088374825546661467406403717244546298632229641178157369991241618920936976061450263335996104824828782772453132006043237202421513343209123336541677093692058323198226609707677841536016421157104792594083561620231050867393820899295140640323309066501956631868765988192092951519066368650182694542707306485660758020511751975770007910524565915897583340219642478615132255771900452328953772446672954091473688431975849870874606463172105988225432805062039313293723877727663895691916252264023536133340054169806452014458442733655519281732227733578438459850170121073083618282936012266762839091597587739044960044148105441430757648100257758340484220734227504540264439623642827013563517240366956952448656257577047396644047290113764780141488170624160076410558169067873948415356753100017335449012705065577372399350909715102596142906105006411196530315985986040317470389666510507459712095833728485543482758858799035396792996394306146017228559765880902008232426483259220228966736724087179450670520543341228433294387463365517833559104331204052798011906050471881277576286647636468211313054943663688980899871100318328050666156343876698102755120025713477452747428388607430821677445499722600648367933128497984830630770680391059567000341901263778755193872343098265632716539106391712474259922398253755676491227443647708490543103575253587062292665984956391835258263396304081888817660244336699133008295198702224787710862264477922076397428322084831541460602727394815988772885586001537947577352698701708735211129878130669097616819750442373318606708698668534951814714187934599731332238752460492327150293652413801993088345126141842993122896606399993478661793794495012997730121086804974109100584346232318065998991719877114429624068365496602617880736705817880805515867523252872676107986419107731684298767626476400849298270660515416451394396574516679998750734090943360461702493605887060875618908742967334370759992551198874215567245029378729747247265028160068809668815396778942868025510993272908773220532518308243292253017354672343244553744600061336555236914910299813484408757541588953440234557139824838558350378878463353667583592568006997711520584968604600525611963990872926534011069133301574452861191457668300234960240931345401849751402581076073577236252171674391552193318180997773452405571684758141493603185095323160093444913811061205418018032972164917030540092194739190926735053209503169173008672992863455004938681882119378883332990704107919351918969140691705875948251218058356794115490798176242302826701171507217320935777306602167542264253945694163660900190820553052278111904143711159332487039985601648144908090025860778495106093871183230274011556811187906025043220439450538148280486909412451921455628583898510696913630477786001809979613618577388174956105318878213621030592058163209848609887642347242348706837514940599131106312387899405336598239527531729815368882949050006288326731455146367945930210541869790900575653253495288083661370044845971909534752912997981829458633552098642705609158594776979233548555368894791389089049621912621756666247074864233613853948105486815270762226602227827225392464430870864202447295066296750807293610120808762617270143376693982996330714278592021616227779849528254731636859591951205097500151475726279350453706425595485182753744678525285946249894589555178166317207426937143097181458694408284542815667435048256904227172122674200282361122088885897183220062600429809468994392269825496754708960536479243450939874321773178613265761121301768869439435426344805668225185141555831523323390188765105939532145199741425092305254493798200789007960003856013094254190219513250113430789959799497091589977126105282593921354768550314745373242717916912835352251658581092833700908071850628305449943119738596429077310942540002569008279839014585591412395998269482165851467476128559155873050802248591702101698414251433689141507566197915963743469128255902336542344098023110146619223722801008276545690365710245796542990230944988259628939282615615719237778367947314095546101875990153197107273378007327447326699385707148621392587805524722773154938235686538190448718647605884943183553410991822133525118534514354463278899029734238399961329412836261134394583410511148317588993524140549124873180463342832768946381264815542252544222292111742414423259524150670926186880624341144146022384894341508213965489867386573377240931108137279003376949540638079050786136920208608676050540062507805453736114159326967246063661523749432485518219116340821820558887578354346610645551074419391852413919588441495078585683924045537599485720298918393100998781455287260974665081738197972289283095752278610651836379638480985799366349784129453306398055942001713296562470073439718073443034619249466274999881256368461808703873325606620157516949087315286670144416116301339312863151816774514955155944433928335603662801538757173614152137376384525608823016135061779210314802478266078702463761463412314548139961434115804044030092094701396249464323341299043704544356257561111236419975808823382739078503169542631940687489995250787410764575640151459453723234928349391384993119111670745696272988982755693147814563861217662720751626372731196748514838820264391057922120538775386293834009504484365854046540357238942647296681928351074460942540086345008028276091850969614593314402183064659096013167307719033417261648612005892327765769621647970535003791906548985281141944934250576428302940639606729298992400320288577053756566683982232881947382041496088994060176066964692728474492248280404654719972458366171415680475827611076233849509841405899845288363139376943328847516844550225535523678018593436641244658762563494660776007556137081735770433788727774503692706204465740677195075423723651397064780491423385979110022061003761522950394294077463178939158279363834009562621499389356448033538217529062962934323488180720410199876551956091092148208672902190460995523765855137555917673807766071122750006613224741484597684755668077101996218175773627899158493733808645802339678459280465970435409686661014957598232060617627988582442522092694138065762487948528071313285210693827149786784301852255635846322485764104480526625433404071086148411807332826142811968844592126122693336613594215537266697681968722181977399868147235783681193040306425727346461717878518476357608883295395095839103246596068054787717099909647069927543216726081211359239759286451909243726613146728714731872881445069938250440622151790787147728127792834519422087381123265895989617197154871601255136049637526384194971073376222414426219119154063370487479872567869528814594020687464904404760098643080052633371372722413991203614267361980706954292876527701226929981909595506898192267866182673039612117763759951855096263428689015596189607606539018271425174397444410535230097923804743485066697443936038323774756762927113736957809154493497983766231777191856158566527030940594204644731107861022740412867732104157503014916654142532893918831787894743338048399934953337070239397132746855146211556351130488627989734559552800121722488068570555756301981622706009883039183880682147699965007516768325114551394020985275325790261759308274924582016105917319684028632352194654925719716001054253951271650975125965338150407427153118485030693150522454671958803421779075345790797177119173669952354507916396340788313335198709071009919536685843895335989582141266397782009465143826740268548126165381066232650063554019068427347864131690487103116942441155016292326359124696565750023639233043737226048372483939103764716281353558251735850325831856241596239233789549286681882217370027927103881266794615042956560034428245752271523210859213962163021929921167509837076132523345789816558404529754766811383790678204088193220310437948036082281081864723146179274375858151308125939276928526298679287881275884490264650933315269372384850484946121895378833440097032424136809364858527243611065513377749510217150409829402263761319045267321613283181928057765135663736945091152744223513277678337855886289964895811647781281206865093263170784241420829197193583424456099323884759419882758582889004381522159875878752815111382379180080488120966751344879510295538223400702511259491206898595156327327809882868763845712646309394662275526881914503725881136902070501549848113667222536164792553048117702273512567491290619179030005578636960317642641943582615327685226711152266235417859687096996540350315354451846380312614954090779139302254349191421879131045848123691901296403913471730950063818057760366005162392415324673703640227471927365871758791083687485910141675467071491435243881508864532827814215061001473348889148793169529296675329360786403657010052876772778866165710370888768233210480558682343463615979437970292684084269044787832430084828538020175389667762803957087184105528617087222016253680013774730959313441281433442614179687565077636822568697295367770809060235598683694181521904438309917204104907392512560812719209629574980369499198810297796711066999464952559021134399802362851319014612330019623482628559480668135693765325347798301568605924508684851487580945637410088023171394426330684594881637318596247304224431380310295922523992225858738235831622945877919821187960077236725168304871208385199320018708038530276200572084747964739420015088781068071927306615175956683772277051258140946865517639252071815641905807044497097319251156188824296427153744902749523662457567949274312552887371166937200917144021195115551182579914054010818196075532696009243819283938061663506262007021631720993217816148494176416456267567252218698070352479220229484035460226107621414277095282613730414911185323409260897719562812189098028749981642776767909187243698101728104169209291430313487873551962708456169486257572938827860355864712791226843298289591891268793200312728490252975050599360871030208101284949549056310266470251062016684836929196083648121488158036761932782661379353843470598103470413688171010907286132935922835826090163101340315704392879341301566272470569900824295019925538294252379655556486885209951850999937863130768216651578474183710844858362404964899277517989471198615046797181554582511304803813883257262391238853405996711362285755215824808031202409230048487791718423140893286634723323820233527562748730016599232521691744829838190359836646956063516838761515984154258259387635161337956466172341619232317179890946801682162411424370370537108116569337617838126945821649090064937090404161806291722235111516443504743811735843589124213745685311593024506519391121830269273725874072068766636159496072969434457545973831803298233394178188242127384624971020245217457955056794523788005675253704398882638745238725282514082905448864411806755721989736360480612892930628767447109966077066665938854274136423199073114679596872997096286074150961392232696351047345170738117601702576556884142001589317142479732593746220467338644860279874116316698262656965659603780891854496370938925751803115291173696867500442647569385153009407087927293022693919193509032851682238420395163062062658869964695225679103361046228015819813986791609196675955762206383967694588210942343331968331858298098251296995420206394855666337132448923336854967067002513872643173106042160452188342426890409794888236339894352961165641579030096284838735452420269500267770216200666715257219349000794738149712167762261621411398439189397780960946110976892692918507379592365633521094816423901234703499135558300490521445215859056535826813175533689179065225824239008437582000079499291896257941867801446762407811169040356375064250514630786914591981219928836855702209543098172661359356286514332430400967342151174015344080700156101350218642113103581057152631496080690853299306827324067093341728676561863265123463931206387990988181373836371476807745890231709034986184592799882690179722467174933751303835766929235938619320630705482449398349693307234995343304141040627531392397287700980610910241508954343066577887837355141620834150837933701094709666387950382364242722592921355109581499863431292051154289488688635846351981437786103996284033196966079478502419393459594507730036005591098226572379053448384878544295979126173710675400823464645975724253541867061962620629902306923196147696927802095484264116881752311772617822553821382651937700872873254790969484058990176061225683708923625555027321460603013578288628155854100785995309493316493196071750458439683113498731743884430248371280510076953331708048397952754746491234287849172738743879513256690553803789784786062509242996438746732187825574708655922015226392079259413058720345380437527439550245530284319198038512175821221195255439609407110126715701111277071655727991146023720256756728809665819551188839206242181929861993456984306991354859456559350182017625678597904227736413818248041583899056207222782612939129939730208606258853821816943508819320737255575570670404339560226731669789563753373329884737886299761026766943991540070082494822211720112427796894333040516423422087188707867635873940124044239604830009762402409042429002276060283163117793356790721599065254364739776263012843380323864347992684671721204467357447818499051812339697802291191052395999534711154709322615634190610870600572859887311261191238591129807105034208151713412197627762679235512509769543266026253029834184172919858003863191755253551502616345969748741431186373329419279873449660364694130883629906644471577917390716601779065210095012426761566268438496687064660539652966022620293248657585120578847285498474669095331421205611217717726760721388888681261733411672059974667380508714124981148528453235098556848322510628043518697034587076263478179821891506988134953974304345179591051698880165236770862477858279397369775272234564385201103423011818560628489800205964212677931156455487815028339640987446699762091563561964885628600095282804210112066197160997355900263161398359488311144552685519009653508195575543260523223920173301868442898512680514537604885712906770853821105235289553790407868287524856608185372065512414473919503227474968789358600149488589653914716257255526789210279601921427476884035349846702967091873539531269752784015211730860181387757506637595301243820351373627864371323995660925242920899653142651315578548695223743339743562569777038441284088438053474697814100725163735009342942693464030964565337401967599640896425479402970133943020132439937017320216601286634476793402140577537000386367600604351497981308101602672444979961885705325083382520239677093606517241457881112592225148094741860476111347254868941002989261513081621724085338723901234071394717435799564412601096451966222337080649725028523194415991690150704109993827026888747627959249483235939314704832995495668547269316333862186351905192447372148932165140516238466816430593426360960997494637982578893421920972807680875245454528126715254723059474685653321013935567122893666921382537158947784745411238625421661555754613539762318684734823768216947236803627813779825816484732161424401191436279266008500782913689211734637099466219739409620100706046302080952773126170134109079276679293434908394873346429584112245873212485934895292572898018326550399019719804657846556952058403051086277372625248026739151955176144599357916532772577750395677476946280593622302141768457887998456194325360857219138835011163484836671021979117941454356088414999410990343306660700161801492157798452346247479748087360791586787274864344701992367049059966139518740772144395231413943220367342769533173702089384879226511359017317139623540604424549437237092928824368260673578350664014388371469291101945112214740494141972184425470240986486411813990690832890863388221722203407046590092564523497818686711624475642263308297935544326367355265528119625123052094613524857184253875973044172337641285130836772909158174357927588064727480286675723390867941385267790629535090423131615662926609223030038447366812754807976396839169165614445037018852467194182082495097200029505949558064161362855868863044198854365148962694923743172718431753922690226878189319657910485852531678610652435031490689365609995678097352432495955854895090153963567808472779420622780788777732460833338017800863929660149563477873200327931409855616974383848683035567214100008486758103901659214365260597440859479830829288260491611793074900496990776641928609380557537576948730856029245987536531741451017819641184010277005557236584541608774322927932719749048587878871866066457992545591309626212365193614301813884717736042249167622993659671588667654957024755396118109433266366621231419868908192129357485234928475319067893457865816366373949986370771991789275964669167278637747729389448154197093367419220361222393453038478082301349712689797523937096888394212224552954120209268292092506798451386448704547095247015489056495801573792365034313235936220963023284269913302432002586369319589834566851604765757058691153673167867028145151216058494495008610660635972663564781678307822895229410799463876231620056530018304270888468417575568721344592977058797414640816812344984014983554873178373785812817772568592252145714908230913638338524259543801482738711413378420958221148035920575278154965765895988256396994740018644343479064805214591770346797128785158547126547613735157110488398328240703078933933326891467789027597463055191330900660605469414761688331291719347922937404668448793642304647573028040039541716628031014998589066148375218412367832783982286255805948931882222519046879349676429692131493703291293938238570232778253774208061949740999627412316656529457808026295624577349667604172542647533781050197824108494418009831371539473477350645265044599969829324862463184334781195884260550322815625794056087035304578129721920818509686869501295809294649321989702344693406039653713572773193361479376110617528684214998779447271881630561380567833947245813299966949211594365479534604555811158658295510134913740482866583281218326956631213098144884889318704370727768105800910125619748795346168951352790886495023990840551219518560843720394192384640631072855770847951208480031502699780148748514400523259092514991738771177601762954923949367954073506847134371513209866119613580565896363586635701888071305419625853800694857990322732329074584076491325181851155295784139100380221694674864727417812758235084910355203985945626683069436181267113838506801986213584780954461597678905483676285541606364110472001775452378193740185457569425213800754149622627875778977014848488754076240695472656355477034122999294881270699876097522239515765230644451236591951829109483775005284782266688584885879289040622597351042331639414480918609112054650962581192784906831970489098678684825722046068385373110338231972142455809499108771059886923100925627605614145897703651918966426205572484589890974097563147735690200487916363575095035887639474026612448658162081631148826759627654720723596024184268463262250335676329748607429020076491614696470074857289055083913927630918726349453315481287445252033492862302001755492294471406947530532052509566512047249087363067190249770600746860054820637667866806525784965149803346850733605435439163633049637668763590601458276411934408358941347470649347822292807684628976414239865742941199487215368866867371896211423153309588558689943916840450290608014332964815474163374750160859268245950442389181164471592011908315555735147658659102000588105401630995578933471580019828816609057940288723119117364648168289707853681527233176322842805073352959135326968237734590684602304133341226690000186017692004960155765696464961463049057479386576701500028214629928753227489113892472249809679129845241234174437867920810853171515954846458923511186551037298393124454086634238029866979087344383379284808255670918694892763815966779750168097458053794018764581183383626110391959306059178116942337643441853717796153827538255513876149984881468054896550771812648275790181701480438568991371073885953685161026664252550876475690869212854175832369757508317639613797566845624778291497187220506945277149209920680882262594748789983385441852358793153796751344692267299285295481562092547044764090959202604815556794992655746903930684095640631568914970562333150236385863590986846939425110510290093656792955297483048280220041405415252641505006391064432309644432769840777109194984297059223224562873660548501274182881855558001918610416306550631746091238002833584570948928937952099831258065809644265615237458839656898953657753534356928606738817748058628810465641821902520480284843884905211588292737228414480861883420276786003276918352792149038635393073203539187030310446002269253123281353847684740666171876083458576521113256309673033238730231819205932099361242277943976252383285891260069922961373387092880863325764949913990858372594216752760982212032972134905840334390614435479232967959017591279052512322624816022918284043738377161545848428204432593362873003590123492312458355318338147421675113192015102097438561924098497141910232099769343559736893342820349858701009880967050938126322534945353024825687482428620132549861597551686743064904278272108753766265275831564251276856302883743717954267094566829552484966534557755942450317420085170671361326876061210193642044140522654799933778967009077569368165407870419478275220996149669021044503646775411436478796926720744054446539296941904166997689753521223443563454939118781720939069372607155614010597813988049541747225651144994335629956931496085051589367919086593439229742404869962893099270535010385126397621092438508037241710427652981332014688701361240876119894200971791075939589880980200670908317223748917347055171758066136009114341966390942928532182168947010608166720712414220991800486005867691602690858038234499495258592062755553006395650052609476694241694205626729122309782139829601859257159977704731902220799683157868453798602829852964163825399153275391961271161147315648363285053855073019742340751747710372503714904828517120281735605167132344759573211210155807418177806201480649590816774072481532229848668554708133587827834783564809012285686342379206692321905538003481770210474981070157029562027088247452293061833750358679555785684534663258865410022340897564743665438292160750809414862156212369725746018437884705956051697841449476457935413986196286977404360819296685940459109047509842779459406612620183742032863873253262520129999850725104759417027731547538772727767854073946635636482473829347888578836642019867193978046630485716475213176362803045695225111471185651067641921666048562085934276242404360302962471252133339488378059529841201779275439999664383825186040999753645638223860155293105563206543615872883048143361056599433980762376498756280672320293756814157027506801469382803889186186698465919292930451592029009014853224048250592961924361955439856309504939821097478805621458340814747040140312975274749757293556576254028867657467032916025545934275678317777458313351552234542916913709570585243931846137885044126859983365133227320587170037992515790853099452338903307799574633824704986020799057065832628464581766394295261065261497901059821657162834589354577284154337489102490523704675548112661193571562790876650224611173797891104958212636366176710727882417618476481434406579557877407071385804968691662229328271285359789583360410118940320095052246069885569122042693309915440081394918280612036910941248408493308277985373317559379069681449645173146934359852299640462820628496101517164979946596697367075593080175068786026537422469384950191517847647023009008507106918835985361400330894368923543524290451669574381572925768096884075127507110402238111785390438221910939145419386871395099348529376081442837880937859905316675417840244820429843293632427287258594457310595873115059667568746749212474349241338962089981245240226113805260905218113140098545422568752238456590728767739541120900310598303368521989179504068788592626051176808157533940145541421566330022700474257909442660491860852893751826530544433957597154639122422035565932018221799977342584558049643378012480223537619645905164061797196979542305122192310817232984713430016168348796394017647972024251191410705452719816897441722194576624704647317697814506477889372338647600186817285964498822719934177070727699955702846489202609831151176830219771074293471055667972898532652799841335068019666156246145695711080725998008332513843565924220169647344869049699212758386871637953460908044750878385002136750907424781132211943162937235664624789552989297695510908255278275434713873896424003389575597184337373050966426598458424203439289873537132228195502946099492320141491307924546560721148068415406128909100815594539326380217465609340501201598155896143639782305798337928299954404905582742993968029374947431351335407825308049948596610162565235756097412884294878554685727855431399832962232821828495920485296405238677844059575289569620264497953277830332375423356205558981570557410435413933728035037292042805370907804271523653830518045191411931803816847475619548064132584764347900486817188618914019172992026043959686151395913347822179822927144722308082695485806194863868227517866536003647749956313796919884983571057217038694403535388164229998814943401076548512725673655784295213076095895322781910286578003848854668187727147161547857852984924558023659234937465079411827738367720797293766154225875590063870712008971582293813300439352790029337740907697701167309257149231623891652001042076751916966773225454137896836857960600513977922678615336252066608458361649659089765205111337568193649229455428377662389503887836449563673954926233278415229646947737746784573432964499296037899618366697866607691519327313423444452991302514818756065790094622879359685767732518134589541548538269995449290259994024044412814268034119174181573665328507004528767087608212741669964241302803722057648931638289413289385205183941150428826501304702244878145248829618183638131511577080687111720198485173837767238554834828767271491765315658236144297688813612859763779844086749583282498376040268619466079549596602993852815155792564207202236377473190886722961459759955624852731384675870531177088504884012753214830132767750315959839839505430018270552948677969960792905704247505407363683423655131013254853121534054504292388242483696484594841777451953474776805390944808001812122299577710405173368272701216684727747159631648478469414820185283993154076090477826680785145427629002485386234159926715265607879116751278873604464632055718593484365758672783075094137933841245948311870727470506106895937890569582555526044284475673305151059013873206422505529094864624854273863603063859124498351365727464971527534680511671550660868603708670644037595207529950055286270826328804734073083575826069272597960411889802019136794160647781139750530332772846957176721293476869008594897288241382400981163866087808700252794684376182968534930808644907450280963574764086159208308092745598061219267349455255831411014049778098153692335500976114520480722521877082541185566576600107964463109836425735565203938134279155616159696074866811209670230925344924505242529547489458058057143353859195494750224255485141980109343161376649893155151656468635580374820280677639209390104259286977669657605061365562070518653436747740516312459280521237720422841322941636367376935524321483876493394591358088739331230681867359859044904098330216960390367995062591998858465126646356341645119339528808256800440610295145750111819642313915375195474751633618918563019178223307425778220048012091474928857226389436473509019471550445225677067419467300332172423921992984483759466881374101220990266665435872393939017068659427241535143323115619996820003966689722806498710158995350086477817975612491464719807459350098273638412072980102523485575275637154606757234418632001933928507912096765217285392187636848755839980231343627260467540728123699937356547377131966596039688880749594002686858406970597891444073606711934817560896597985112191390722458676401442741870083464768283707642288337461504310284765582526166798844096145607529528459209410407569581955971094529140098531854490615964619453349369961847051171990108486064323496670503648294974329109970640863991620108021732857827576472608678468173766002630066819745787642834002668885266880438155873368179289824736863222221027657684771631571123819411612923770593947575681864008648971581095638778133884279317522433841414223087552491937842484138466695890836580453540296956675932985538047568340393191215138533389244143781685719253288835828685124618076146980542561056566061815255279182611361651215320629538799302694306245007184705821319572411404424593676594283662952731583840013439210385413943411142887290868535697101844096086132233821941966029405774130008986509227588589170767803360256716522759480109566660161020092464677966852683818920521060918745433279787033620145658892137626335452735843098814313585966950339453943091985719447996133579203522177799739576776364666213772870419483724151589487684619601510515354339544590434474100458667934729876253275429792187632728365077771363085242157244756553441608663704948991234719919693411427601806720160798551323872775974002713693301137665241324255207487007839367946907336314477390093584319694040896925115311400367730965292290355839061439430861461747260055445181840768748717020864276180519128523519861370451839925044585965398371542867298231273341884552203427830881830958022357368874470436652876149768996271263866101658915985062559526165418207983231104110752071306451847927691145672207396807257887336291306194506206328666810940748526664825308394996525558370502316328876333940545858573270040673882913014634085305684011461789171686629060594929654265531157549014143158924656001941470139577568781743384101978925102704105767421657255426719066227774818201768357347970747689142729997260527774893208026435940012703668684775308911066540524960917417035172936871841843748084900549442623638716657300442889835986655392815507050908218922294424231025550164866394880556111126998749706149294856420156729661645828038853598256176679136768163500853777611432918467460129545362701517249878549941738314700753921455204502190668869682831693371664959863414366515592547624721110545981487451068108733177863701159678479424957456942343263148878862940928078293380522363132811776294916270209564305827904459789357884665210204876242574762744676133003933241361847254430563816785903697793592692032629833141892078545101250801858554233146506807904469617687706211439636069446361655928664681539064486735999152834976250761186069671164769569290486509219903552609431596958049396690273208301796639194724624024758887025062354830982416354090429861282991787136817771453009729486555291055854472293101398040628497159192373601446147362849790869072334681123237898909704088179603754579600010012597751032532440441480357633705113302707958653357191623773298276032032327126053133321773913475893587144626488817635859899097281713672461095763545131765495869148845802439152127816356447959822518872284115132230454403209844534275113114437089747592253912695409136459244007587240573217901472104426148473552207505417103939020321444009684077435963673542248044264497141166074404493414387694172884698774038344122244921368264963446955279772717978458003331678639626299353074782543798833235082362685109068251548718717464503302870674096861463348031831782608502957214733906336315167403092706836913827731147623379250332968600385334982349190228099326146406249911199631801453289032277564153049773514025997647790474381129520516442915977217892552789195024647178146453720577182900596773488496261054979633005504460469291316179062860135448642574825912412343269309750871109242143670236734784454446186972207776562527527334001232012578993840432600957238953056002824546886843523336074584292652675418170318540450824876032004848221012572558095230642565163386864877324494037025794331291953327592424070299406814156565866854962718797100570508578013343653338417104550805421469357342384478081627444250399065989221147553402599645987762120568045949928303122713851401893666697962503424271327633696443127388653889276800764990716890078597848930702471861490882744464141966674783012354939195435414939179577767151458397178375200080664193364810233734801676195574604032819981054911708694776576969188845463094177646976936082365214624479175164511208504940854171444041215762239133134490429923199705923589733176820090254880442999818557170504433196868101790373793976381398965935285961856116182081326654141207119519553248582807009664051270207851100979101839638846016772963230109137646500992154837994592792912434456809993110464385256821880117806877134301628791513926134655461392254462139198906830168151769884352750978776998940769017818794729787447502630774857500674968150894499068908604295805635294991818649317843567257752982198235755146569100185023024974941069673728986170356165934657649072486762628584030610241589170195272505464128887799574435874345532142708577046664122303437199822245381602755624011356454024620620670802429480312170915538661220797949907783796926662688589459357811577169418618817761898153414566664103627017804699602794095927138971432061610156619844295413613779636078754833631518738471240689739743406185861499647903661385731615840213400088618889952925168714106794880483616342589827525605033103333703396456514464827524321904024446963723013414603841675346122875457812983588155710696870576626632604257128722682724700651812096940687456663804083617649573701618869011908155411232218536050147451348387270501516863646251478103037917133478077038355159629373535723226159240846252168408326622156738434185825261858914444106933884590427207431108135174682743018538101228123916344851317162191611577584938976120948503084438032502359295053024344931123302839410242475349647726114846545970441681384201552586124920749092545675357086352599778380048467650733999538819633003011578312513872796234968225501974980412714260275611081009596041190271144875179824466049569052110250591288732916396756826487383634628556327009772740081262579154287985990054238560973170067091627679924436159153193987177531666484576476978073166500623881155845616050761875703854346827458156803835553527894649715877995002496136316264113427214058605479578206619847429863332785736683640941193000004998586851304593382503600338835643116650750351011780966661353779704704502435310753469256617889105022015167750858422381513619442350901203382403055644627864937320975888610916175612270668903498020283493605916832019519420421418484131578424043269651977463523968259621947398937007022067470714602059965812172245201741690486841438841268833899785894165859200735083116998135463758108107020605455525725480032384486266948351210382232382350348805569152557875324838811918315603477550381555072837487614232057382267532124805795593204420494029638753831108400918149554827726869730575659768513348668683775801513705249193583716504013300960430509524703499752775978454108001755077378851385451700511112078437090262635391330476458065839037529343518059369850949951194562333067275766679739896152570487230934813632430644231366242235263845452845403482459135841561268014819626421337868161415806177737608565213542308527772634688726705639550448201754847372141161450650111606163451075727449726059427536778561178893048838699985288400974614397281690790553227028902607249291760136913060996167506689119711993622629565051084185057026579980642890989090350235189225946879257079140984992511436412268262501459943222134297238669431556252587842662313195147165253452136563506297739277109612825214328449886111036031612849399694927086438771080952433170650288246957981212995636652399282916788644228292311144139610423654790205271186051936914056584435796510051298172677699054740181034733739573182965185578026963453869290224692276420549538562597079715074196838208024179939612747172103831438540754504970624084367395813254691503248054651737416915892216905947106710625583533318055857881537463744021219996046680447049184545441906750491945980903642224662094774819740914291180985259992944403344939411640003534899591617295972824109953231016996675287615606009053931773974327325805785535609157597277254325841121498327957027278565604308837701917728611063635932107157319519053050601336657222456483469706421956929213883236666885245356183847821990075048201875908288658441333734949723643275246044225664008668385559599872367632700799318556230827002520077108319581391603756149283688569993724612649661503335131297822088104301060669089392684488772025833012187895093041631240984534694212874626149485365257725161623292125525184003551224746443071389032505146232582932034638005330149396579321155157351364844210672425962430463611834896648731252331866562718893014323949842607141528236174234188525457675853089957283755895862056515087082573699876941142900531304725581675120666359187460600966661908710563719599301164412011449035605998191867166793211429658248399879655708990810145024544711504678660649306940826642495008499402742930002968998684447769944249983874613960487797512746488572964171361047043802944447211989253769428348948507924037208872412148929058172710012002724348209242314473766601457503096646764959184618123922745042081745924083728851858275082575674864488379303220008473640374598515733564695238927651074593670099650694789583486201385111508709567106214093928356655640933287885337507933414000620255168871635153725902474951438806167900197721355785674597936486278321065630192016671004960343100160548231537479786290601635144939637359984277562925207855021290543380458323826174613479173357234254014000108620930201996714863262963798455373832038039890412808194984538964247923942099949903668949211532457218633013529415457715551989295653725290559212290887875528353157799220487833787770026959611768867118135656865351149002799863016956647794761259109956443673868280750522606676924552869383287764417514494660219267996309768438925037520615810982098011959538373968989986096216263764361809774606205271068889827764346100242936243718772929416680190508768711630806246292327678098832363221855390666428847426355766741918501761628177749515142533204667851785254802770331955208224427235511891603389953375446035621207010589006070198824888399190366905889884864625380008184091134277778611247731056429754074748187169766467300324561258147977784987716828945538378436483580995933744837636204239495691572984474288390109019782306086240548605323437650472485687996282457408149768731782591802278725545266723893458077176924048292361918236051187692072891122119103397731133439397513798067040257627482619068178365473551711614523525434290166132518048978077070338472332205970928571670021576654957857514718798896326935126819469476965488435316077469151821361593920239199934017163103927685034222933047885999756689388314997113252691770785749646473030040881555795827713409201687349427388427720273536290102937643204822653843924268211565776093637823003156078610184275721040529026968862851328304713532847946665092083872219528567823426342322061593512211629070871955870653436993531921559540631471500013550718847599092506974033076404455556641080899131571930064860453658236489001839790938740082181924819826334512115878827845791062805432476752531051704131296447335820537655128089193971725650083226649072136159396945026516780800480491792597637110079869959566764641657196334554990784869962783423493210552389671399030106129754568316983298685916926130099714955491845260810619233879558575802995454543737669781190453935541884442262367435947294294938655959569513132792468058467395748456512454818164451859138941628617243010887064558666623942656994334988960432812974448077857007909372231440875732990701990137186857013889710681540693353154116451655680711598125071737053209391839289468329954218269860901394384151459399538961019122113098853461196677802500324214575759288245239365885071152260491306666471207290257717000113896909752321163881032248892493212157484802563512725180901713051370491439140728620879194902599638777174960715478476956616465518204517966559497213859468138464431763703637513670316697548364516500198857127739645624610067818748374456388330959615519072471850726004007136067390513308777307934151730074060668561297358840166577033385458325144245652369009308254194456898812455143890396250428101453906675826900635259454039733604035389332406660008319972783408697800609815765318211674928542460028509593295485931265440813715382906537873712359671171305746924407867769390063434251513262692005393296263571657360110160667084260169289755241073617488384064755958078389179119343689054577392005039081083926126696026743547588483374211742865427008251230290468745290002520416419451111625780574075542431908329815759800530280358754675823327253759393513902786653109863665392423605436386482275904182107296292111354463340849737919166515825539143601913521783888855548736697908058884145755899107019068779300004689940543599032877932816634324205593084613964280422933026518839425906234553206558190454115831729581006249416258378439975792916021620649819008184948568560624944136747910809243147049003542523473911041206237237873517851501758200891197365924626414476789775017121895585187615105127379316051637463127591581807172529040159277681780397253612002429064549519420515561804476326118461242484513037277616187437848607857223510293653454272335615696601661689332952755337110479435965414423943995219354714664771524067017599283291841421779266642333908919695105628428918695762327190152180352995791441790554265948173763005355317537234903824326212930598204705241689011466076396974490952560649951286434063899026847202779454939933871363428501645668779695766744996940218561357415609853388554902822779608743413829906811753459152660874365137393327899067856147022190367764686137304588334887537252791036347115579796380392048861413458129391539956244735809367078162620181840278830308093739806229106211041961720321230219885441024282368647968045183195210675361217811610271593788109055911596674096188737140801925512988007897767039502732571600669295064214534566743022647564817078584451429751529201339830668347384404855067433383529661603492940837845641013064628170763793676988624436174523213146118215767495945817464386540253958940762616969410013763027922183460164387389838926132844684290593510556314252592349037750852915908594651013720079871180397442842624346529507393642164871099800171734198890540905631291473790695564869936260435415618800029762948434517194720553540487654217795548830571686551886299756399580697817218039781457431220305296624197316459869951086596710999784795550660221478285577715700263250476458404068564531289015467525136353961901398399110400595380118836883027295035725038603461450841051656707653834148749551025442589737499153043549636882742668565295613156935205410803753834183605658726558012927756992356473147538471606798514216319625832059922620314822300625565085088327568386159388880500653441188925132432901830636941585806216137781579767418811085287214083908226831922921985561899668455278049202777910228958918911259992510260029714804402132373087582645489436266670324355297715153985284403565965210810697764356433767350104738798738755860037715612798040607598446333814475862201431143281058625579837553353634514745667697362173929003405873552982641799249415041261683233401701059977183159364806053116620353005467044157644612535156820855274472524507233247891007989235632855457140925292347021468129436465537627203644652782906259239004837263177464013289409778562731192460436841027034422368512450598034083077649206207751134786665276551544559405153620591417153740007905659664515546951573722549133864399213292269819861125644851820667426529639422613713153498258734980466034946937507040670349799516540041009760873818883451868686365938917449348945200323253331970142768387971853249355676791200669468533576523232332917039607761814737483054768523238570864395781874401902696578639609481440149627656353580030683666997081513682476468697226003187996828468011234507894122200900227466184756596666183278383850318877786160418467326611350034921951794054665170394706363591092409641211259320770505207293584391867548152718656930133893090581910506002000709909740259870758063402672613227138405375618696810323771250909739560558765794115511880499336570795538543961898606224535243228189264931813312244027728708315745623504138451418534991759307405233608441485819188900886556447098616140006717621758472773283633200506068205100199493287974514354058336916165104644423774562506095989347880729577660010870308614407682040485557298828476961496862604826177511760098651327153542406093577645938983036472801354144183235515839209072440555197927876379184232367247443505147307770768752361273879125007087072486807636916127505523480342887728453856576812492719499549887262709153646269262243113986737082720560375002744940848194346177437299719135533605356409814173531509429980394843277020563559233813184814004268538042817433187210666378214178626751595907459579824434575600962713819458320500375251931084393710136447130397379835405804002713833606222422836189605571061756880237635838972772794171134751735513312390948834198601052106855102992165179845560932182943843875981267530090360163704323311602493213292002527464107676815197795501160218347505922428888615753522475916758019849913290225300298207181457934415225369816178439925424306211498350109608216207422985331704343167942321000959444604500739127554569145583523466962748806570926319781287164992592691933856496361246778486850266149326411984922078765496198176715896183301420371673456691409149170637232782878479923501808942029168677084610247936122902128312631693365162873355898484512769083913332243721789381731062154458674411396815658590625179072303890842185837514132443330071721717580183584796646699047487849982249602468498867876936973613481583325466740350947835759777532787115510228521904472523570657491926499493174654954874032119672585769690494500643558415486491658896242069392900817048364223070025102907394053048424848687071305128446961112955722594954480055550741038383033893191367559753583006307244153443478511680511450349262441047450942703682657688301374170267658457916266872331950611901349268742655120031275650280257904541081448411494815500996754701897884053212075937416443344231493362089332627696663152510754192127956044610886556439463981127987785283214799288230183575288807405553137613404826300695089426645884033830371282313730412593707612373626033130967884330322435711846415546857166770877816457003206686768706872888307051058233679031792934300211438343123908366086431558806045843893203096816603750931183409020256422831247842040012579746394285935344044684170512012157764152287481438463872657276480282820087024499177704196098313983376998845059354959538306324542972744507171662510259976658719492511945786929307128414025660066813228895052557713132254611813380499272691349309841953704770562702267757066992642242954023459716856733723038926509143095033839685579426050207760072595836439436567079373324239484638049526118342741518384818957556066264404925915767583218349721442882046484702709958366977928788501821499525812045391071342209303041525135705201322755758587886443127314714996304875099950841498225742786708425322346816338483610757369915243572336612982863052877449418467988522539972604907606838980657714521041642167938649115994169375106915124813515562851681415207460086517890010059571890821386132717577794008793748115861236521156428556672222946178982279426912058128530081292547094081029578813669303187985839184835041883112366526877576319475138349859749152958010140016633356203348730773968668505709618682164416440868656556825885927170762883848501086072452728865602310305356269089844270664727675831918598684759491822463443619668937867758965172923497887117448654215173061810613852581240294597827552670584000131923176404388702608061383033107363276079183656115901502759838547234942736042766929414283497745401170182492143557392819396490532468122540918487323624517087404612983952551705323678038545507139447824726613489311384195930277828381468733245297148014925024470376948505780077909547155596862169440670350234972986379601687713194252857425592382055871509140978860730899769197230500556303718587834064714269285284850328066793909858150300339333154389140642497572879611851137698722011151034892721441372238311158599273968481597077605973317463982366130985534979600211236364396352382339840232900871804481856211779653411491212860445295521753903358597690086115501262673547678570464430865945909500571472647356847473986270044910301484254065507478445929121111877209663259328722125315458880676778582422359852474974376939489812039638167985487684918739681411209206929507584306458421678389530125443025866759611252700723093552059891680289837447787571050733510257545361497822104271641237379114812114146813418451917850754172806428411573140798583943922520538568071055085359104719890302213936086471714487169184743736503144968170093036172953239811061037394815410661862288449713521359777466560517912274134817071911745045730816331002126230036988844761126079727445539243066841762867472740991456481775226688822959433274851661459878114333582982230782922883612624743516732356129727993383716267089605850010472582087222749161951988410649506242636886164715164709358755957136060226679977787243780383539544206363760928062158243818912133849244799609832863781887613190530540476979906331244567788417953162659839295970474517456555795558282833666923895218921581569972587435004337393488585301904667738081453761199903202548929615960625508049881750176832319076116956885133607596300329234782747457695267628360945920196483110303998488747040314133780123799176488939484489862275596778183272337944376478824588764098074268395115682121863647119633547535277118511983337826020221114485540067383037423463328321144972346110428509506201868789482734018360104242426579731487214960416315710743050398537723360005536035602627411033088773559598026383041017933065234759825288112923711000100784939447169037267138712202363426660213983410196829750829180421722701524912061653609712636340101378308508134815775988556396105147524898930537938498488538004520455402216356725576695159574433178288076571595701408369810532510074344644343951254237652663738422472243675376608664831524544077105420895811485645445602100552997274160923000831027248900465192781464987757576652071673848101616104608465864443510270094235496080781731447178678280266296543561573204086503413264619847670012337567018823228721398800765665452536275195052508985614354166962966157666551722874302561952640936203348091871428860081407507326099043812734703195223689038306158822056469009997792184295567613281732905363854692278444432806334086012489153302159086362107399806707424539102542281491591262024101903846875363755985284782512054295041002472804489256121294965458120917955176038268481204864407524798881184218281616850154897067514105437130632026342483215064380077806744197629864689724730097321612498101763869642276517174087907415305413731104760425902246116737041114620750522720784582163909440798017512909344019816858852613246536986426423077502615152751154163570715803462281455305216834427816405385344250799915755947666168021125128853944246696355690322841334131388474724408316814475311005933898552731407946008924089512249984445108669498848069433303385434744249677942371625375425518531336375661472306965628964225774373931542761645135011145224552791320020304371660684516719098534588203705265203118102608199229700275797831830063403000350292009294742506843225090988064961243936001750927512220824903850255267550054029575628830916276701762971552665161216183777614055119025711082280325263283871327278775246086644434106651742367584560163913987106568059387344271760167414527309567644715241105041620064802923567235042598170992541670506817350299108218166504128289776486251616189670050116615512992036640068112891363349619906107725252466468884047627545110813572969984481364414492907144460575135651417150374383028284710646269039962249373569323302230058633636692811910018940523718953700350488461115048261631129207609393305293002346298968087231472677533052657222203815144302696130792713579323874206934077348846665723943151037711609630109330585446150935904635136689453663545623191082220483831776237110163712611934724072565647674021683386998435239989533094542091743732852296102743102615928048746191659447140093920751231886012171290692599063073047007496859280378119174315402008492673673342578619334551271974119607510911245681255104165532791645712867250232179748459094878682625290885666384391703627676032439529491529307082710368075670118952548615821997674768285746815658048932383552690451064285800699021487935447000029250652216968005772607526342444475004449451174880241818790503185268374903788480493154536275861339010566484871379708918736515847404726963766747828721654544540191865029407630949893742863634734558467774267650229541780603598557783806310013219678792604590140496209959852460147294306176352826203678282518965927800027991448540846588665178979534287743297036197371228124937343316182702091221817415707535129722759778475047455799638565878436063626047139398648768291444964329854541380006528714989031735814642810241081908305423903008974622363800032096591032245589127320096706651719679336089149843604636217246601323734401366043786475302870184831965140690938259338152484720011351324043077804028007132735606231866814595084797735637030870891487910453723618870521361813579243744126077279039945831372750064116246391747552043192204763530424863196499489490377837566910527254259198555542675982944167826875884010497703570143161100051027744750481938206563188035296667543559058307417603381053083374412638126529517251233932386655743132753371152958550414142316379102839513411149768880014574369043662903721525416623301227651433097167229404576709749378821561342308223886630373189558723174925422912589892339468564982402493529503013722919346816472651943374731822617000063605614897742757438827331385812361768780955404985204752380216072558168082144239240547339630733370891012970796887532646764660357572953293486474615928091503306839766569347696785978141204838900232300713157989836771780601701452331525745564243392695293435529436577017798200620535576739406976669009744722704087682790419368282594717627319465739171746460921691469204944525690703666797878377085321554938608401427916305621838503301842256075364132200057813282288884496059629856003791244004397273337684322523990505251219796454041688374867421194435980725171892563808429753058973403601277444610819595882259019593659870660911169920817093380722764418170272861458157779216550054164537079490844122252693670969544388604057853130553730997482537981871952503569037418275245645077346788368016680212799966169343450295274751073239035078547673854729187812166579535893611608892104827717739485562573738842787952397757730814308871013801206994563000204530387303820414112131897269426970039996746146324039479371898698637144664998004328130197780197470812393934243584442261744538309688318247540940356866928820617406279829461522575360559139353886369591587912095543760777158947936569251281949189148734344032671690973418692700453942627023500755216491096172513648033763537837982145587580130356541374510552675793128817568606969134517753410408775275508516800819071303096636758268137829827428993212477155559350497223039139807777665105367109808080930001012369055288129140307919790892041023267125348564765816725595638199105965745161863446443155398869367309693915205271001284423621371470616219083315655198142693982148212757108795037042158727098738080347225677435649374276751196882619138327063059576668659234618750146802613318800476121153200475931037053327673358684400669611408887630705652136664836635095585022297809750524549335499601001169581077470143959536408098585755036498046733910797604105040428796593126278025088633197633475535232939028887212383689781004960557809293856908079606305524400933175721578694706840888370932123496518743077109211243569750336636017025074913240390193125376608497607889908311952459550759035697031007198908431093356800175808265241093059799244445923121948414879736173201505029928000397305943582734925707585799201541515139705853999210730628310267964669558411995140546828652034266546457331976917903310396311938173442731620179590482388822486339813015142762400357207259862261366738370009306918422567052567818291587234321843800307373690917654485777946151517083254951017161855605550475376292416830802656722100077702329508690269124690558077425879988678383064163525769069824956446182709393610711845604573130766984285117071010479846440355197850454521104164417759273386621609856661773307623455132990333374192813539049635435669303160943603513595375221436271490219388705235576335395529324897991032957101557211125321534346517966284656267206024486496957916342741189417212244727051817619539500869803084990622770038571227807065673334984801296803148480348586346811445603841739335147244337943362004051635628306530462437664109157046581980853933931326293227206665946157359296857995807501582799995570663135130941782411727407156892866591648171361298901506988659117555170767444194494683970127877465442347798660982977829601052644679825599781479884531552595404958368392549158599199746897839783825640956748997503838625879414289074129591434468528275557692450236024720958960166587570348285898160993791174435090433830837588730362928921989248587814865907883216119758543632801607288876209865862159017004647712792220040770117632563464510143139948269818837756334448715633260298150814744172953018150320654013865179224230163759761310689173331541619600246423912124970221048810710011264631540111727869620063947695838627295320990198502019706600456710994515387404738292096830341716285032618002542064029965004737338923657320502944402381728597072846513356254810491690763969298345357205409101820237417061510943148442632605881860651250273424041160397020420457555028163564718141703568599267185920067223776213781567143505001517921463033627095997773167777807619565376254774908428334407879693083757210626319242544877256311957354238849904631496134583482134034945656887296723380523231629808176884169899523557120896518902638968495526437027737633407080471858992226326097453939199455303078736465662031744157693836366748114987049007980202276721230708088594123335838907621742401064266066280913111137687921452556018774496229042862981636392730525620382394251475129213470807192565892808115886791969909599193152685748746486251162030465907998956183571695983358823783937791441245677474132296246123536262576164146919410210074789905164982369373659009559260968409223332998532024984995102555234542058772251136563036360615887175774276793116931853648427294936973008152014641509218867422544225296022598225041852662476172164804045101070112975167581127349204535729323096732164263903669514231253335013039969829560830098807402438661521282997440067748509231690753888500048303757016180966500208340651193458587684921158985598304402737743053938983493127249238017724821735442058512901262858180183738703963994419018724890774522182275753713957036086116578002301170128721546844727300468971803898429773531125602071471815907306600317728506530115217342234765394205916498683050488336124874091090905374630961684852712304772765694897452533292643122106049585749725594594337680584170027371860949819030226454959780540677464522344135622526426191888348338807951803024320343827176204926048754619819261598837527253818952776051650878475365255328929761934953664082017523013269625636914722482548341799358605333502243734013415835321756710639584215766151289246611910723596098855676598601178163918170366668132636980545775949084590302366096543847945149225519652793859706680363635512691470063534597366370259951447643249718963011123707112675141111368337767719593651981550754526894956718287358119648914248964801702532983303251718986214769610272451730498002649145133626690680314782920724331365856933374287877273654034818001388751423267639253266550225984610116284102589626247271043979875700736889687424915854866416751021273660064039176241724272414874845302967118092840105435688989108613039649022935832653966633954317661708219606334722948096784486879571513212395884617325616386434698886650039875693178378267014481197274647449497154781859570330608586620446230527512400038514425296569309426171966332806356667857287544237006891184797816242309748990016688293148406001009414088587034066454943025596536263269373849967836051885910994022654720167849064900794945292410710128103694357002700566607524304304817577777848170833370175343998725256746413777448463727377421093404500208239398381402774938832236378772682954903369662587901374562868341366925100749515252795245340858329991401357338098079815063754775841614350972654618423866999127615128385239142363603239188873777124615659143555553915408849045939491877287295183112278085810391082133581724958041363663356128969192021292414030531367033126048042029758739855819348754112342067242885314393387289589071476947388861221162832249362461867103190516234934585305219497068358031920461996062178829019370895272688198097450439032134950317723884923581864705312583152363156748529123226445432829738284793424767070546618758601511111157585583041399250138066305061999159438728673835327557244092294255671920961193955027691261382264669980222913566159428450556853019042111324442746632821951252480367476695737952670309238489166132785871583547515556336451725380539527127126305118854584429726917562700723482724640714882307748573143025655870698249070383131458081501176034987889312671236277899887640386429704367969166179734388693227984054325386490463171722625682879981976425278309423734807491806165473796946567928093443443450233186026645182309770356249690960860649471385422413444982263686943008884375905720270250022932847648880975701288927351517251702485220507365576660775440273231696549042066332477906731966367714664109368883231227408185533635677097396703541257196897486833614884295078403633170195837069895670443591757928335315699879621652296042037195651279389267262202217608864007255161461068065231193700512569868856070592385543897475869305061824624213752035221022300774623104631294880882976310544774859019606365190178829433777474363740519116961382864592444484966665031533848291746083844247859047743595316064591625435108770663817857465442808409771670207719096164209279158273268860477906673967168399862102051662828008232849297840509986766218925479033276620592202953362526895622223481602503078554804416976598958824641196704632929224956236816520079337900600415610861540156149747602310709892871884223935211411018921607107249916182156074982406323055715772359281652878450131725133922002954566131459637656505327088754018300752673000561384331341906488029213761182467660927964093034590285143359209193703443863025053691146182242584512451781966844436353521576880483427272828377274930727263119221159835771533746701642806197028194762308950249014280477220243555479528706855159502174701050226392861062129345861118568937750757987281854608818377032032860404355105317708369416429831704020881628020338819312866600872484261095582532821824926666744305045752255575313659296173811818152264470300857302292399757062441265678407060719354294010215049003428384280716939333997467586002335005815454121648657457716110483019078600093064670536580999844621236219135004767915674367765238783210477870839813131899740448421891024055775379689016326988203030579067374961487667071695042728301487099291418336741309871432937087507979052341646105151545072091954912332152146791031780856344199481894695571260961175429939853963994760384222844726348586027836219875802915105622149952428420982515780560645872161858893312055270779242485869677900768266499354195666783637623177548756203018874555383542810320461399490355875836233784188901733796593277385653292629696933927222301199262613862404410737553054073962803644779640324450370622399842235901143731595409956978855078291015197736108619687568338623747906927506682098433054042442165010337379060651875848416203806629323679503209424744464373791653885910230879404807039762779685079939814906731416426131892180333760433026532023312122998480703046576759053791964445390381213322834127813915407996182437681705031311208582792884431225764793168970974760903287266596266897600288429811564316964982863769275956452372940965522672333390352830081059014848634131743097066591349221884689880589662026059998008472901697024166730384789432996695884345464027840961213367073302225621898723993250378793027636862859661423229397366239470334580224621027844405368655404732160541981178148156275667459500448300752571951203324049642517571843474821069515052953577737414891527614018029472117631868405163814636752111320556667706847268826536751363745390493979800324496918738729169877257897520086157191998771006408139923726719615160439322957251642542460886048738958985803355212359238397487009221520032035534816719083587196591443778403528588503662387253943559884933577658381357579578738053271071235503919566078427766449794676582146900821046651782289938906212983457687295624685061783432550753834055452192924433152205506228159216457113939103653462074732627360816710149576932456662508184846329838145485925951641555810570234563347857777670929324206932014323661618493475858882721039585464268967090393629996261537530480805495893113481986462289474093222418399256425752877820797754734871465437657918966256296583859952309718882927057547378798137230520445403447362454356854857941141884253976236423957963097923325717970570591253641184140773026258129748198743832769060694930466371323691123091469018822259202801427792073295892710516365461848420449256930081403517869746617141072154999261599535762081059212649091283415350073264210755012828774710679051864678595679623202948501722863429081124922160209388109241458237029968202710092183599523943922109948503664541233668432313436966679310546411858991224144918736770992122439437344274926227496409216842125934722601177579547375100032304901922189180612923446403044191903325838241671558338747075221654197409258020163341912739021761577611821149395683798352158364980428108051965178885658906997064286463256449889847218704837505445957285743884776269068413506267991012945534919902036785020221873258389960843533610173528915393782462680550862403342965797984713685679303032273408868465502027092317542968299247112063483827137950787562164029877240944238661782062350521576810280249033223243395287446442289697147858875639070206639002339702524706658476743048621955089090554409450836193678775176040799961305005506650483847742387884554085333479050439581503833223649394958741197424713341516118693424431189425744295837414135765546736713097563794629890332390835117333286079062233344907372547489182335092077436885895707103500687750990826629261408290396082327856351024795699302933015758861666524033338827682602844237963999444356074250977500584180511590503866496836440591842581938703598009454319146281286802551505798669591927277679675340206900780791526898425335782820968063442307962298726320168856227017383856529839566825132017645117555250096212079768757107845925030187849306540757612247194743585215286717404301432581686882926305031335001298061948727387987656162653263860399479112347767296924083717873869686631676368976071582969780900961339160539917488593294545499252622547343341525391313421747024855310229726752533831865606924381855728295171007670753933709855321514619579942580041232329768991374320861099454172458219601138083921745360578702593783677241916542658825991794411363427548091138889272688188802659339616459243112007833931566090735949837468319684738871694630822217265422363602174045203285025142435200354996867847288465499346417493641534309213484224282637296529938838024843568304966595286403384680321790795222888322686839990257928587060514523812759003425153520547451895036190504144235349657282788056374607340728070260235021401575518717679846003000076734762581795494264058468761653862368476479456408458434701786670636460997388962759586037992756051051280564898955813136682552932051299533221308764154983313565653607056197542952722682361373772587423994285536030343822923657164498145830219579829674719098176643301428138546092134639977352046490430552255706904881221642528971623673057728132091331525270537817595340137257174499007952041665595378514363866960871866209965684645721479874848846251555007717507246641800482263009427394296230870204855860141818523563655637267609548796142779065807797752818529381280133670532926751978514487213178694872126176435875147348440148769342372518289982385364150311212384510683887298032180621719942297541127943667845193080386591965392052362578070658013131969767067749814695112736714427457975846577375839409454828442448283834953689709510754613294320465603548755746707859481471982394052132663309133120415359280938929215968684166115683329243346682436074027270859220435981560561558012012263397476778192645598300991913744267472191235004852714030359464875000308426944743770139425848921257413249780635097981810211828178060554668759712830922695551300427552825701443679960623431285739956029314307835401054535270700427231547351940357402223750314948902053801705059247305876398970259544584899480602930068176970376568013361494099171767123088217818134757525365591304618356094069506322289360542818165781307935737358768250987289956988820621777816184088529562913567934322943050792289108955806552177123163111231101899154492491585575144423200182634609552849274048145168208997571367393641083262174370882806182956211614155056823912444389233829261894372411357293590612957970572624748037617149854129873917101616233873201493213469220247975711721476601290686347249634713722717345931734841146065784821488077579726059388706073026951785300191517675303046902382736520186543952100931025883857810972313337510686568044361384164647541671226968791435010329570640788522894149467886420080752997439586523146615158345685845759766682364964479136732568198124368205938360216440043257756067291216084804376654935999973864994800876297268965452630868272039704282445197842261346490011318916325657085270535530280459293813841092294534029486009885334537090673663580960250983920781456608567152188838922347910397921483524563199686286939582411970440469645771063108155406707915820993439809001167107220448875356261947188658565118379357832838298788874060377507638705612640430073490154417223428551520338348093663235888507527003214679360703179179834857184635927562548604075227346248787061734797685625904548712401360996501855669339488710746582641058596539631428407361600585499099839790557807205683145054340208239758987043203350048818221923036611857769254810477199757891155227709996458985728867429516858567476750683498685581849714751648093824027016227636605077683006934581626104964561262937424068030270824338263573576581310510866531134580854060333332494968456803684895654074676622121847508104575364662887182957349845485702096239340681534005080933835507555701754413545669502389367579588106470196246096868206886796291824554292208554704813970141519791996679224070644681202261915217941973295683287588984298453971293918594143991305999677990641437037285549528936193523856066059198897170267972810748117742352421587588105224259206994161771500351831457696086084486994387573442797764999061236949420928679388937853086423060838499795638808385276826279821047162635598787470378370901271894501682397364691787342995669278431348366616470054198691771440061262685881126720299322576401083943352774403822082045268229984625565700310565988207633124504049877594900763845397541425286062747518187407466311114578551142290330230841027883116820398745211119042606415634011339951111516930365792711068394214609345785693496434253553807034611527432613152540582416030978055218501247639628932383936339769864000389441403713475209680221866331828014440277286777217389429406351134165512674685652291108390881832621882439100444986146641090472180291980872634510707838938081731466278991849694058985492139268673307792277788333602967763723350763593285591951354041156531614511032171990172338948175397529799852826899632408877901766489169056606689151541567470864400674787093827303603043514492692623451991259739879430103885067459950043034935526512461240004230507730064299614766740579181047870919720787602856263037962341574327044367155638756514056488627620928652207647559442597834007536979348445449786028676411916696515021923541588102540105980438948761915602279121352559257016774595764278991663901819592552385259326970200080537032592807311117792532492806329352808127875148567494894957352293928105003004332674489600871121935738763990251088749205752987141530719837146814620034130775902868561064377643617064579640972735942848641946232750318892304539019726639343603710830491897888016723191254609064030389277170896053437855884139292049034727170696436093942715232967368552050023677079200268954224081121483492712446749986549606689336501201212694964761804533352813388491543069528136420279210217170991425077799799650494914973138124472921417482804475163201604717984007144527985875481038826448758144847984730205076289781551334257886246076141293168256963427391487643750624636336230431823203623856177502149041706376302273004039596203049599351391856617502451385653442511673934365899008735404196863173343764401758859975934242251361169375125660228868719195705772485255989509156774372822124865080753683827505910618214119317940880915043386215209229800920229143085452826657763678885914008460835438767817592355533871148655698474633724155328513087699884691083508630600341166340756201728919555369380829512900703270978618375296658897440154157167141463880286829283340511630300972658427361481105487395248283962647163276496720581381436804242374140319465036902146716119491559991505066485239809064421130918242469174110308176394136949843759691521018019238088738489915486029647083819015472934448512881311890481558516735593557984808475491270671807337151611046456259974468065458378415892569080312121686487826492297876919347116783110056609398684990360813739488754202641692446881421255413543490753470629337074128067473923904672204147329166074837498379220542370496000815535542776371547872844290777354532439060583100647738335562659023201594254040004569040821032321852385330862336877267986572536248158240282635810699939239189219504563038802362192471389499149186283127654297532908242300867008278142705770708739923718877832072522930853371064819924900868081191050375314805884057829677863023880339624830923687051300711291777958098431034593522019753329866575159897881276921564926604540931705393408383315811033215051094607029160037936661068494025413647598780660505155740630801659145916013303487543496426007495206721815848741588595612302644623385819421379836397641894550936704078617545915577515518088118920822904477786783346457682907425059775355872395856226372998187603297936604403747409367537667437813306183473311861033255708087270406890372246065424603992159940058198947577387649797614279622628091212147395639147389603931164651307266069905004224331792874738634983930722814446585982274228542628055926837823376270437286408977277040410695223855209845352072979508141358747010055751330219371919954986235569077803655048274119835001188881495433695674990764022524676642180305763066831844699051905470429059731499354354127920014187961146628922812578431626166371940552280204026321457436963373912654329456324522485172301762504121859471675582428398582365441157875608337849306469943449518345116409435442457258922038158297332437811388547963858349122195706384396471676220676500627002429602063307101073322502639430074929997384634361198665885352732007579206530828418002917612520238579276937353186301868513823428243100442763799723559447293929895275264770768496761032839571066425466034260773106381457249468103678854359639724173735344793562602307540106286337727947937789174508373837774016189052311203622545996601046335647356871589577982794009397322396270165939914669994974827010906800586018891539149172065141876858860671488535149406730222532449288250014340030200432815050004873107025618376837204572606096215893274975303357065244528708629247549334908870545003618725234931442466616037105769764389272767499939532485146060325591913725136454124937172169608971389675173781716664136420832315753588568122257508846207930784910333469973241869444624599471647212761126744041256969222489885716744661757142034195523001737352368863432222222731229202412323195126447251523590394195787399282298748557383894111106300274434245244348796701694562309661844548495579144514440393837842861883213506844484585628460491878573753123119932142422503342373473335412735268899678764527980293519710923747770312885472354873028472595569663968213192577793901758332362112781123280256960947425380879225076473188305127423307949778692707057044955928365949306759309663492979758088406365344410373753914824613142298978473247994299129119434373483524650942253630610728700355674653508123062758538833503688820612376341090728360709801629364228698159827207512997825559549755937385563958781019178937026987022201691387623735236722818544213931647348346334201534827116607769975297348722179912149154642682057826918743245525825106298835904186399425201096216936428722520563380188405323206325410933389258593930740841841463941620776929215775292458298762355888883168225879001032288932217151660170329281677093132204272158471300234858641166219141893660497135644963520846309044504793206788762872863871756894233443818640194685256800824065133854728198600485640322307294688751811997536296988247416575615750857275211561200533291230650982958655166631549002783549179957867464124884866470800996380432488415040935500032417018121378545100274925965047710622509402989603862250772280073950856705328181772510236217102845244684038128320357604827793586980515976260083929249477153506901278999521659911929129034771370825142632787250256417134607660483817437959486350489918141792191645516384717912657504651862138787232092719930641825975573864679530268559495107750438150429935226314254075350226039659742350337526901029199670908095063967058138498979536922519598748713707046896613926043374549917288763695487191054036784518503558702345258746806286358730302156620567646005416896707986038640846961648661124759640925028858307239240719619413839016985234027580622057243519376150169002549016418450798698080611353174069223372317232008443754466892876752678837430464225154431040189741720639369806031716928372835965907227192326042619259923212269410468699174966854710425539318269145633636091488519994638908718902747041486928990243455258123128449096671766903819333177531649974700356874293776774916439078150259059313673034704538963355166956856806205102015394065640718734020110370465538168791728106398327684221271241737836885353429113618384345793777816015353032071067781320920328824459804799448527620286169353504172907029274467208072268170927514253216346378672600278980944160061380041211003842623700264699833483054518817711215530529809912491835138412273078796242300769408229473702237816173513419207710349330546517170207721005165903916943622243011223703843712215454709642280609196917342867109003617920852070367364502973153080520637794240744592455857211078114638705094903476453930012009764221782624473337751921327196035152772269180248975740001653279513649339605323996518280706548218311654458307064886087512221878254749612159014269881585183954723997917521581419075531709041245574553860664247874079082321926349077459056017234349083739708645141048746553212363491163681814211716301534100348248550309503304370753456478995826324286447343743528313879563330517243369606778054574344139077204219874082107368437531450786435173828155645737533767625664747075082709313108527161346235631302143416247140449493451067965888937832994414392385849457145197104637816083833831992105618079398816938701136803315461312789793910217367956066141053260280253452982142356373243613973454875765694617657533168974200314300053343528400283988728534489567338570618310608323981810897121800546714562675826619331544991185480156666633464451746102095902500398838268156828449294594262688602532408011067717127457510784306158237078639325320976844453012707577558173472162936151148019521293296830450889527529539877833498535108170509880960522060529085567048485135523039386612922990963973623305040070604107672633185118125034353643307169990110477498979184859748042671173763733040365932832077617996868715582155594243820240656476079812383707364228870070577664038155304904160432453302066395767402023759810750275106958188473538268219653528312367522746428934030171648660594710409404035003670035960656600973321563257484914648797894270088473357582005299436553246460391076647176065747767788809771492922967243669266007605684682287918854189039138448231332946636500775033619523101930676320789808131155503095986739407826080877473003901770239952805535303728429653267251980659509788160679291312596813998689354211379228320850203833192659151604575337378667839509149016228834678346423408678091852683075012494039948584341515593312733399982398766486378421748423592407936971636825315652999514593580687926900778973692358463572950003080020950394534708562199973445252949674405890124216264327669962920314884293183160890924474278956390464358337965298128128460773915429350626854853778208814088380850949261397115014813334377636501192568204704657316639716278268585604053704990226095592609660771225194032599459888687322181156507263904255880240390153220000827068645279696205793636932473328316686831185392613617223239619333834447982973611403725145633572296942993379075016450270117932592068074238416545072639133207541524829198351800317176188279780887731220193794313583223279534960914909567190859410281428631007320202684004428201109232222659577509148733581887564216114055108416154619123095558097369278730327274377188354463986595366483046360364434625186744137482117869227994365791482475959965235540451581477743520635559674854375893458238081535602592608436790416912168698324320766498497767427753889440637318957906199537343541078935163463322453628482946778083194955514056033118061750320685027069151132213129428234593379990959794178733425412871449711128618068089872788830284927563082260358528143663907786362658393204868200552093954022067047981460544201539946372069412332818801334701044082447692791137625037817347235101347106230280635831271035384423475041700818849107805862305258632499765823941601398442811124775154993545668705049802566738814801358469902658155631309765173036917927183781815831086108938718352541402166875435863582080711659465646534835094515697273970641062845974055972193447772741175087324927515915062698251690857468723802515002783704496526343560389208988991317643441286481129991166062377818632834635808251115179896248889615136857820540324559799407688057428221517556298325645417785431627466412175222212853143918562908551647254034067249354603154660075945142532628912683207684399038637577736894407774882763624715797569688154531594365241605131904973946651147582118875841983630552168617842107761553527514471428243422538459233852614923593687050286308853651342833570101058714162456938277301195592151372737794265567294767001418932204586180528024902718098638626714759846695772622596688475560832296306243451335435842841979048698454329236157317136650451548994351012265518940926065640631797066539700202709275021518149594400333527128060640819681572921187832947054044903547793149866527583265022236969470979488009893448784349788397210789403668127827027369331686216485943584502655486586737563690839388052152316476016324433661290098396432439108544743913093102253128341721695891427713073064585584496024094994858723522135919090670081051792725630300827011705145133389566325251930720409314449393968806501348273767862496943534322252794248079016392405801526616582594488165752536918172989470347954192691272479247747989177277918225532450264038215702271293928686362262580238679318086482681845060561253576731419404986393090963950641992929612993176423189064014759801663258284405352318648915037968887203644658141029029257588512519100835339691882442213479300375315637064560030945870927436733941060413581625222431686785025460369268478119406857539778209531694189811090463004166599548208495790566010015051842995233899551866366193845426783399713861257492491036544200629548971832968639231054615668458536692054224695291032019609793008187384976665916633324176834083390256274282226086113536703042434871436611106327179120287888188360972480013534469622775634583292542715751423924493162806380987608444306456088525767274554867642026281835422760384214583898917019316434185762929506914381274179543670197825933850787148900609810462437635420407972846730684562121716530077369258599363573668195601858018213219672634742570625189673741346835347137706739344328078397158653468703719759160495308039283664753674997721685710026655885660588411634167199281758787104731056052988679616775947372052675920109952156618884807980284670613593288580331173986879489560393335337206672055731355788324002779030338354475107725101676650970954477015896306413500179844386082754266465701130649379792106285928353567814598445234705612094362953441331032854938443739770682723377881458675373231117658463892579214881734350434050868362883198328486245144782704557185851519644095571777553284117783224572686032130894691769211478164757773078045612168399535610615402096881778193371939386746410132401513961243605179629780993163670646637313149474048191924857921498165051681211711330885606766916203873881230970140433125157283707982531175083564428376957267532858036210823481922619269853603143921136331698245412186105268955193995584834709378093668701148845180167029930757332220251315956273643072180461365704328929793846166500739653487190405466268212200213079034772090001184135041164213850388349324803644802129642429022303487782544747745060919522374755416052659248838763124599240550734162474730724969999959361202835041824211857166900516390093700276274746355895094940521957957136504518308178408578091674355662039510434582167539664809964968148351170576291336868125841142511867209664231622476539213382027133773237305815915448134117424304747648728407519161849726845017840913867891677396397708537788916819068713749663912804692028143091944409288056519876375787196159862122936030305791253166048479516001294657181169380729189077779562929363039774268833405823953758839169766863231720241467816733741344690893105659472734377157473834447798547553336220157201164269239538953702649266835805462013782054588715696274362283845901936136045637750642266521445520854109345108867021010413817548341008548736109824615174841833161291598654160693509513351946704529069221023391048235408220224149662280417898892816937979885837675307503826323975175466426424446963004925196387817088474016098407796079877962018843962195983974752390077857867499814129463784561103993542812250106498224969863756792156275688465489680838331966596219787410155319145471793839884528718634860456533333855376426794607179247983283409919699266294364923837473344245031033071232118662944441817401256440706078748954147733735562432278111595888386500628644880252757774544036079146551303437954408243340033700244297725194817155903143562996384838210539851212013928532490613046735215667340965731606817886926624668289612503925146647614412560235313678034226394915403795068161018087259391510485043335461079078684511720426432486094495675588571865368627554355000813123271874974012951736190816332493943605362545152654793485530978970031514705270697670613314170698303232609101135221837444131600871158234436107952101908162507045478803476323749561030409865811857086153194290838363280347453793275739554026712705287843703665228924832602200820681795024777953532941484317343836432647502057188056466412031442438281234025151542703947490643145102455577074998974429431314679152884610263988935703019570092459930737902400197660894544378145858489262422740504193062122289642274671280182467228504923452739401901371144840383553314499040032002700042993077654845215928804757811621102124412041306265072686934428979099397854698487380183756173620410013351281723866050784465311974720660898357802322467986309529361386735817181300612076401607724667428200128125577637385763700730833556372812222530857194166534041656700814363978009581892916898065923985227471541006229511099096140332050070149833342403987049100608463205309033330313325723461450955372299876779786307261706756649778393084553405354803462289185869006106534898663439755784579187194841747709172048297882126989376214677085290355313403750420174123198258210335175164816117938554634802772648026940282537461030269558342531914487340161966802526886911810940075272748483839436911687940550231863528910129122864280481567123854292172532180649980998833917684389981882266830413969702378247535972662023985530720304845028868003471482712179387049793181211114176290851476684632788589109116034320367146864911131340247518531202345752169062842547750458981875080613199360304342055539989357505731724896688805973264824593526294514473410940163880621488142599831249469298001706972187524924294705372847598468084083416978948133406246541914933011645463858920313602140494483750552297288742063897328145026777697954401263824818715689177118552868991405046937425170658837725911678469161473582497396219141389269275882061297301909678209554274205661930427752789956070505001142152745483514401252621274535175427125421364279629338337330008185441295948123421529961676308490345328085191645490938206295296280551994810531591552693046688688922368549918940039883920886215392830715287126135942786491810369757497632709121779028204751313531560081026690521316886992474414422960670464706807239365372061600589174110280986612554184815672588070923575810585234092718551082906933368038945023724319674271271332438286372384687887042783759064387112081612380257278584364630114240638659484764285797430892799307316878544951571438029441695151635746133351850228815060479861740187363353478388000952108450933536895620299209546417453308471790384674939781957361340282351180863323860413620192384975983138152029700924435528753160329110359883379759282194058725190216543280453503261339301179318557588801901257213212642154650133009006344069126645744632423475310783329029720544483437414852297412333209592397235240456055017669992751753711051847026906152942285243425992848698594508040568784243135551651734913049932346654360614682790390752636830797072508946981680600861015373070945914249842704864537068054891393163509662951300958853067335949128068943628348934794787464427978949367319345167170199297418782267246469634651091926423901939157569032623823324462568826288440226854462025960643219657696332980876599341129382772422903794246280358571394282089475942639229987656688420688953490302834703270329962089553091114920308789437655321007797208643069099796822193218779767787196293549315184103697412686410119234944312990717079177329641830896635313869273494326675727940324779813055800604787986813814159393999784305395068368740557105403129287986146007121266574350960692408609803275502394722414435085072348624662674658284653336454978392978978504219214917259491526063457505028964783574392200694640287029168958111356005764872303395634795806562484191067386525721670933467713888649715770239898897206554692174217436787624962546621562623189814615889203503407885188639959050675490854021098530537873710263782775431098811966099125165054506407699771244101419505980389831850746251906490260650839984079727812766334787611954448622347346527304582034834666554518640238880984857485420956890033291612249313863684695814294585014304123229323864529483224407724294701578601770460792813148268555998775705202455070487285101771416369674599628604292366856823787351965807000547977142642942356109473282799770794758461973620789133924670874521048545629685259261447326149553986225585484099467460367793419160907961216103537481681800808665601686244817639263830280311587827674506297053893651038751102996722126451964737195528902704468047836645595723277763951100514003988894525024264849654125679486893803460477916083154084872176768369022440492223241873089378297098213059615998822633171453570800472370689809991621979960593078032250769972545472574835129883001317849416914787033322195393082769704941833458666602246352521737803617261326513245180184967310532653570487331932148331457044165127454040463739445439130608814610778655394950762684573593349397175158605929994432821924344963324249081462957546606096411133043424956636925235249844785096057982130316051410365260696673785119913943808415111694340103373155240615252749338588411009746117872396256246408340691895490540686110942518129281213230364856710880397395454298658889321516575920218275538222029683115775167729579623814960154220709688596578875818954100952716047796294638427457311029575975982968864296427867863899693314910856918708971050953260409612200988484246153740488911900408691327560268483929290578472261346398865328057614958515150546581233483728425238213481780432234704191741523244784159714327023506511504777538237868305768630260580913000056441515431038647970358076666923818417592794681983258301117146480329993052164172136911080396273493036048704743741787132399738705302981878937949625486439712388795271418863968521043852544927589125658655470600677072490649580398543563459079674015733784081045705895687599134997422424593351608573547257584527071335677878668142929853816848833324806920208254278057488260264159795264768823929138841177621673202280151512482444334700760225709877463191221357432460223249094236813792948909277118883578485499706907819628198493427827433705949290054594278768590323262462457349801649582874408337771112487089559354903562526739651781052464328016365642311226526919475140355064887553548951216211671847865657841548456974849756437182956367360069952133125454873818894580133856443519959386626919238749762169379277461431579206100355489917309646783778454102195036358394151270762218543278228622027564296035191007814204577831708961874661639576953367870971613943177749996868018788973359001370901929080883877204354706284474301886737502454856302678531936501316802264174898053387126666781544223674254727577065039380514111944265741973131360395214647719972264215452463671381689003235864568268887754659455208449238269119233048137467150801839269596265383575642989583246568961781422454679727087691519529677211665106808808363066840543728331405572110025557824428942423907589648336554866105657502220461456791423950297811297780704815382801935488143320286128874067576906831191831080675292476408460586516459907881981621568188293397987730840836137707760291778475976332966596423138522287080028117068796380654818800173483838277326475797969047993421987194047508571074859885313349072267203424744292703993710563803109485816368429882680862765932708505521974452001022710545474310819236622962177859302945260969812400507315626918342880552835477161530506264736925141202123912745793503778576649977455559141609101830400878550434761936409492717031219427306359687022455919040965807351882066977229379446504742778572925129996794506247633055658852716698764042457166134887116770826392599874118627900262601640714683995016420955999415836822719864946786229934952575516228730079760586943556099837796131497962600368336676908303681327551238437623581063167829069226660095196554069589651817162583060909958046929232295103710208201215677552979047963813221210657348582526498369836118242689723027539458201651574358694148879691115609274579510524040721640222820504237604532203173757702027590050493449044414839671793801986817620018200525196189516859570779821408529614271044922682798990832395813083914013239956007227295642608844314654816630985939899317130594452951525851143374062776034424363741401971562672602606478368636199283609279459303065007134274249651656492043124469062045499539208983797518916173834692359303330646226237247302785996106284317033668255437950299898792719161966223687804647312971841934421055364485459036352156681536232784681903721998923519903332502233013705584204371406218134410887931926730633092663332742735198499310117580603849702712562628818386387683867062133261510499569399160433208265283518733531362120267614304376426106551865713375045622669821519275856566210989335184697956234090274151640096943254524865957518869436454557047792441494563397324019727529913320736191208417858131285291246270129804405685121991432012797518110252364061459037020188057265125438181559628436431611389247341156588886356589839177683882294235173696954009151399000759068802011389633905957293653227891366560022024129902979425467759403895882135952859274627818347310607579098280159188761097878752208883233320938383737881233249888368738332083401839761988189981818206058065875201909267791268463153032478324295102474599017259210422857989285288938856876867278451451397197600063200083025139305609470102615863124624257670518544390756405393869330024153653178416217773600757481277665448686631975004905790489944278000702663998991208129390628497612284072608159413513528122084415377398594551586337325352351286184798270030314067661276912519323383078859633333061517612508506297965361791192980923553693147643062159797295930500203076082614923403805096575423983844158055333902347867649542583294479153636591126840359180217391341903388502772221666252903602547210299647366395952516132410979482819430991484290574277072277004165357656674075309212144575295187579279171970334345500262879167665233484146391471831799965098894941084925186120498335932334000943616142303511894047614399860934782863038930859922691789070759318964738389703894971031014460084406907499824586052938556657610671921786772652661550548621834469325598008393973392398342150983755729297465545471404333719863371735016820171548415434710540973015349142817282246753889259056444670300266850806125390870881296382097948659050819047386591208850419668898482629562765147757789535760001615666433008615464230957265926645836138595237375937291970256012327587815652610195837036697214309304718683217329026188189820161043647811930909191876805418173278898156546029599613896808483252541203962432241095494864527136351032816562798166690277656445235173516760055857986555259537038710422862023970383045371330260480764957674183463591612275524300742884449370433608181995975854773546015049480063804462013836541178152273635488896549924381381961252788664622817415827559539115760482182551734550527047249208326488606222033415571746131658898123992830552350674586612089380321807459808728374043860853261479874324624202823570562605531709083747456626627372630471723279465865994771174525232677588209315244161026327714931547419290477296189697591851036829206339841841213620211495743584773527201769583129390859892077589749412446383677013483128824389442521992329075759710565964409144644660330341667737151421829435800022270585960352101232104519870307077039318360309164814629685394424178397626093125121653253488251283647057142808690695765984428646367735085220053094017776907532028749180470609287926686589539340986965254550922656251965896537140233276761904219006999055439866522976818140314239492851176250575836401149721803328842318120856898096701546656752257563901969383689490113798270440056223366685922936972297742531315280872523944675527380100082150594635187586831970151277258650454936142606142620654646553767370530836951949160652776644688677263153959978366825711162706333516591598912579803021612375494183454216343314941067555264180364525614892048387864834010829991559948275322636722375943948050287375377622210040069460111962047211099808865774909706030307238990989162590743054455939079314360994499309962008643134342555390320625389345477790566209362818386588992499210732491071454881306612318091036391843719376305442201134752780153080993693537197504315823167556202442715453791442302132580305011938465339711474662078626657812856435909420323861937429521645542521759194857924341820124304408154382853855027058261710829435406178528802832523702833625194163376771470417014427493763394782642968125649885617031019066782525496745836178469606881438228835730445149306802262660476295863042205303166414710337250057644308698720322232041142938747442966252715143181234071271441362619660215093674924544811148203046377747405835240136188278119391025624240462305312421712782349176404810307011623005401858250325281053181426081552530282639407750317999546949011202111919348488405209682983448059280280023081184782198985211259642580817093165188921121427762028858552702642688056121641186640116148928040728363247145923676943511024352725985486775670090539768016153448681556739315063108274608063821135062901159283953167745595465148104353904940916451702477551348299288827576218210141911202034311777659423904546810209118307373244347954436745480348350129345209408500256822241156342411721104708434539493799141725403000224737510271381739441196097559781600003076763749470211542393988451198221612006638897846230348914907099391072439998160089183209979286625044659541729942607904384539415024784110637905446795357839929825665784701384316884561711595018583760217546334867673305163150332611725581163109308177938948952426495896178121126005029169857025665551204137999493116600788890745425809371088053378588612171031816834771291533599553353770621856949651394668333554540014929651740027193970951595085123247325735698146177496635447264688824559168649154115143726694564828336398103679045643688950469044242572994887988012056282399496129861697416928217943818727607438680542480033101219506889677032404853928391718346383805097894531595507220590065589706634300229779444319181541278492597539109712333113817378886297992180089421073672564516653845817222180478238181632938839816486304500244970077891183993652606555398834140709175625539176637751660687403605756232605820278750293834412596219075087980083566508874944095968112070563853026954005500308445402531906592922138199109324365469860072225336780523479650906655324836730874917590931293789083399991808435425284265550432572576398136812518788944008424263084882652772920513267184550595186311266464524491194592969752886552796732174327776580468942876830319952782028129645892746752936204892132551187630545809810100774297315012349751035385541927709292954374300025101541873943753390947937070410030860878067794840262052499405464889903236425111748122474479884714200118235458184222138783407376589304627179912862308035901883945963548085954693003354631637413821626552793263207359397661877805069767042257676707165339188617400476787834191729276286412557097807884011126296489495506644953228641186576772144906547311631024418581629467366476891306672584116625605044267734901515404587159115442997382772262478738019721220799066878464592949689433455412370942381711419917312215434235095111590543214406133677190481210825597251264097470231811548491281670261769138785616298705027278663089476330580514190755216417132479284740416627144042139138735386977777820539669915317678396620282186221606227220420922113240806488351232020085409268056537204284331800734405350507393346920805086069044427851751644131499507313035691497947877025082528616486489434253173562680259983842296536164923259604410291649852183793758893907218985218462426466719460323164850154763220552222240554929734164092987867082549814351005613433597107232259135666108303495660316334594832087966227164620793731736048408381273700869559441508267186927894379035252109537364315155033275689786538665334121982172524666173566603996251337873324926303325011142491015530883410978274679120095670150469829218331289482961942498021367850442034257824407552700728213518071663902114481383786829553734268570815310940251763269398681533658947181163514864792562532383448310153277018867283477440580519110708822069760227792673693126857833330279142872832077796146816744684111816103891219528103970993389176120145154980011767866090773337505616794149612143144273708478910505793087662691742162620369356821285282764882110839402449293517541841076237067784704455382823248741524515312238514996919332621204150053638272308765687921444903287324991699194464824043332475073051539963654170691527584506904068825655976871349221518186891972790483051985233390775523347750046793612086659499190390946419778467155523953331703010678641858815044910800113586535331339216209151830390538947621433500266935202638094919159540266802197837345506376232128619337938763521415821900758529065831284125449434035483076392300912859623137100069527930831789120854300483446050865417063007249922778384247515399837813989654483331487577956615659039730096181036148681372584839986608638652025030533104248460647998867661005065352795135482528561220281412862950297559848099575215892569664696517501453508656383411471089308264582793043737778184920443519682926198436281023993419003556864193336251948021396256166403633838085736159128988044457639247751263697964315813701191124484769972425432851926703285037595637664231872801907205372816936939712955261042609953758180500752584612991163275093929077670262919814361532318757950865564496330200093114999322159875229756182598531547219935013424353120736081396759372208311366128350428181594702101199309994084694733415727868827964577699794802633468400345466631723231882164659557452564500103505626231675981303714069550844754307596278078172940716610011095184293097198102910838040306445444064251354766783178757978631331059908685874566771552562691695527891441019292579470820500724517541170166450554004889812623346860465673818075648528500318198475461511263286740675067650106833031361375127041768660511595476638041380551702844731801550392919089042336814062744001528610296917896230498273292517391594338244267542321805662431434306232873970504763603894076536549095806800847138540559772544681067500696678620075194298036038642388798488996825916772119728327884265004536323210189503685325496737731290006776841862060097625275020660645376474012476058091539316339196566031486150813731162680890987796300011310062699789859302097587553153011025865273868468656840792887157485087826398949170523343201816572930866697358594306908584273931719926614611040520702132446990541579534990723260872671157932311018333895260138386734211328750078344723492562320313284652425483705438589712693706321861238372840499671559665560586327150471581549941985906612739820867080790636982681947190694352007134177013340510845324331750876589272586705159610451989725816410896687268377862676012195563008633878195102954869418095082471321476084888304192953746316714795009429212066048280164486229429646226719105920289809709332849110263412825345560964084787266790082870140893919789475280900172008565626621732025875634822663090083967076089220461663112361620944673586378915612336730528488368078704157515683653663657084768102321494534423122882791135330458329100311392478706569653762255388305971970013024530729780280231129133303854346334058989372826868295867477853872262066170125159331458166564178054552904366536563591205446821174953867515732971599249292937284709194317001682502149770634849900751649771466085857379549562113146831362982460256627392543493801696554209669361353669444907635197208980215573040782537902207268887528675227868371658327047325852862046643413754980467144205067653418438834474588260081765239131812591114294328524153590876320261758761731629672444464029603372206970423702595476034055829390405017908797291942200490378078192773687436745833997227977231461613602819147869856387030522954589828331175454350157905072974080200837982129587719104790532965855660494846383561736145326252437596768771638153178166373041910819667223958237833242553033444670840720618953186435396484580837540429241976037338420442756436613320522982612723859432445400258700762408877530998318448670984979797751910166688527539091982421171952275866131738523654634007174828274398350256319669644120354483044725577557216246847837454831467539194121635700174595450303824044881447434750235353390807080018898489064975049169703575540772202558896587919249860490624256744109716032446306377231821665197389306786602634688342027520522916162440512328145886055464893276560147180818073547512413015031467761699631265912049777058818033221152731118921509942111622456868757166031272069781732430556185366215776126563305156811202208711641460111637561082660703569432415507203157394101206506078053006446636984032549714018534554948463522774132652905805694787773213469824895705725455703673071960035837481707440955304176585066630586232361561383075669318729288847363179908141565147566487924715882253789785153441734248618152807711703309976439133858596527044773449380391896622572015628589412140388937759457207449246434545047776899753725516702826158614918683580848575712286108660107883291024915851036914232753435524388141022984822874784469324769282155052074463765642557195194263013554017482138779753273740569565035698135730382521488233187113227739258618134690736735072014915959899044863523670396034497128860396630474435666231412956857937367577398136154887551606316785518120900910214552720105683947762082274915606544092285819821375528765765067067725125493874813515992516447882721930536870809744884135361089977550467461406243129295790371185435422597779169845362057598488181596472836716164795257032626622592754525673595670744430781803679804371232609094742875974720839119748490286161594573877833138163348482553922198993850652387898010102437123125606608589143913072951976946810188257967466717874744129485453314588168907867607664227500336366678154977977586692401181767301849701411780959624603258190366758512822034791101658720224121013920841650866069499189321370867495289004071622845209152128308146677793767113460998046309355057282277047981586090006348100075507710488236390283364818296216086753295605191516286996776258754943434332546129269749022987385542335248221497038015388358620899901318130365838556869263354756979377924748350607100090464900785982389946613791902596261010407380143763464801233228768393442920880716430873325908468382644829965086230057772774685602963719066558849911947454144169771754271806505582601365522639166504442695669176581182010623943225694426058106563667739765822285964729210035138070848989830569633139438214997315923951407699266414598450251074574964329819025455572863674816886341296535005422699803343436542907693108210144333761186621869088183201574313533311059422953550245842953526101985405582495398815352773454883350859833022329771486992925167364472522853229813771043474283652239557077637761514867414411549189941979526794297361019878172702485054969338447169562416131546679313804623601467241890565262341638568638009557225678938237437340087593429134124585483415426745718983667258359837973995342879233764440177751540979533236568834251686526310553188008383876854051467064364677976505361055820719678806393272654031302884142835067885896961101538493620105212093001489368201258514953981874503492648720540332860458161514196940785363886074456614592626713588607136743779863621817687386231578974094502013917136725774288729453657008113200535658717061340756247049511260437114241132864201245254999608134845864763725880644778089651169555956190302411195986712502059916835746654066500710353204661327980096225110219963764608379706671079310478591539066482914645083770710497673651307386440924835251799939565766605790192401223629864182047336295401521446293773513406365812087533748164723645391731045788185381839375042393888199562975703102388450997615011743486499044569828168200880257736604869718566967478146757750275098916332082178199107044411753449873860432732144403674636334617234473592098524981248666744174328579085824630595012352219057715794414813559727229544042738963118521369609466008076843913664749329553256427427479213582209991870875973350097838795213728796267798746783918062476834406338893058082399336650778917322621835265921208255730091132603858784631173266375301430562756351765942076829630255420359316910621077288487659528273370768835583199230197109146083692288371673643847161162079044299187374098314644334958932400024971285456214007327953033527129192127736132181125016362557930428116218657730233368500217275336463799026520080717754914601818792041837531945287094204274605807504460613470183050137546870522707880134795151298076314857665084430762634527250153266190280172290022464051354465417307851278451910512130724373514280543292410463170830257384633130168357288001398339977451867371430317264740649227626646740614803000348074983052554893500339078295949768483960755040444800622118029456208996530998948115052317374397657506058605831248144510281959081084423185603267023288099174482429936085890709110115767785239003759215710304876422604114860165397299601995466808728715523773212360849214507623589068555211953318599660412678432398675568225327206045972137957065632749899227488317404162842787722567602599642120927882092499767421882678289293397206834573942584909457208931941666358541054972943826627029940919757879770794281195350973717567892281108213277132608258649895290331030009860754935598185875805415188880047317390246946415921102062295364133231650411521856741901844106485275629499161746862943106816518825844085326063304234175071000868718489911400280831673966912658564856203200192047306538947598314131752746495750850346564105201753405262808361647313710652106224060084530513805916998622642161211928301347129069020442859307415704604396867851958857195661628249534430121790580208572846716933578280172523602849339771810757081466361777513910138423182062527221039721536605786465343437936362317995670211012436146980482749281713055976870171641858711103230509060787824109604442934535079880453454809604343622070831394028773128635773773905106727668431784015395254577458114879625721453022818587282192496517925855221764119673170785338685167832089869852307107932546069002292214090753698614934741722705654720095047516279478626961967143905175199086286381977533846878874955779125528368650851821097279663996574326056272097438420141386110308395781810744754257501873123145148668975795299056016150909906844573488858424536432518805175790805588751783091557329890130776009640362310440469101552726214247366277432010184518919504291436765167486323429275591728529243536067712015850620339166616152057844150821417510000267981279727281538219747216809075401236651804630512940690813557273017920998155120562996722004839498417512355838077269374976869664038473778220638658626635789888891320725411650432051237593078359884627931072645579093813954903555325699466348278403132642128808531169891329334495326383472059556865907578085457026920686642010480641139877660315266295611185380249159572428185123356698922689329142254331777107792451886211649582975613662929616270556866598080109523981773824024011108479507306874555325146652508766248630796406515099964261500521590874961132009888686824886746088236577034665574120964514192238771745382225876665946044687271893279347432122979218652869392671183504620644820503082478281351864404117928650149139295679679399430644633892369139052603987088787213291001780859005567452243028035406155009749470850666156837729590218463740602244265301216038340010725521902535634140427734471640420652123977007828446541795355018338284614028081946695112761451299654931703603007300953671673409917073908385004372536652283382362251059866507996727941116320453358548161619484978365493633645266795303327807691150876813223206414897842383342994101230544912069433350273234982404472217184295432736156260987312875582225256802094267518015726875890056208210724939189970187819529564804019407147080580197922518296227956076429728509040825417984907293502545168383259792686271992989432104160288730343892241424376508639039275386258024191144817428071576483264437387048257820111825300430089242685729492296029207185119273884434374290595268176932065497492823131298051626161221034386853081652805555127506040389583672189218653017782232627718342143102297880773265075688039873534161817166175957803410465309791631158742692629138360971508430507890156638968387874196373421601697330166011669040580979326712620257979694080607106465135058666336467993768273936189644033815341556616105792305660323810182038000977687199128845386655199129414112197085907099300516799971369329084289061136149571493969260537740807097667428346860963660830781696773754527467858816511611621451099949815885290805959865670381384072811975996498218758276529047225070574703495071687738566293961059661914394903674405034780676649627057909338152889300014095601151159108200570023063408757957466584692829536261417114448030829315743089037567185168351226404751464294932872087707436179671223158584809926844277179408444484285998622420093308746750419745055919113735401943580043049834000533744803202754706622820693195464775769394814804229528413476417024965159860525851343662694280833245699873025400609352705204155840873120503924431080135230472236835351539942868549707491428439005713222364348031870665135608328633655267966501127923491517014726913703931685520474600140113178395706633190722113646158857254464368076832756392363904767483278375603806513298771346807313849023946653725742374394807909940082398762900031221046377665948298571652597707877319872495741131166417044864804911759748728261408890026284198801735381488172037536099515747815113678088001504510080206005723429563753221494490117390840077074091413970730881849512565140962888402038441731305748724841719145806690394426267096100448423799857567030350388526008681240049078177619623569184030445145946763850531313160466112883106205857331592174347002395626625522794622198554428040238670034818150688501598359222965298822585651813892398427967591787373706085656873124059906121375642465984076199203240026532001595048662802406549782647556073586033587515818169731102939676825235470232249318879672920925755112750538435171254306715429679166287575210256703849610469865369194695175888519047452173221724878549536947288343082800635901025364430450337255964940392503955808623288570935792012521905496083009728816309629652649129124165550006707668456509518088793879115675192998531258592385434361673222327446859005567198632628414743011895500330046344530970414328819494906796127843139043733015950397850603813269706170382983302833726538392761723281786172810795723473917562702764364105447393902647992962613801749354776189046974538879772736365691808567104120896903800901126099107629123475829194676164679306685720074808067705074403114599944751123511235605558689571933829559474178791219232436802029300443490992088969232612577597496774295702138243658360627543164209417727459786961748429145587600752569834171065550799764322916105213209076952669058966861457523004766290019730155353600549544554607255097658043424864133781574918149544218703234733242229717411293834446508294771552776714933004272405195537697575921596175980109747143310749005916428255032025683387296009636056426387015254469629705379157775692026069426445103621398956792381497736679659331821308834833732454933191451935678707719774378724357859792254262768991940402135799864383290492606972395548021491665272027493630073720813444216729967476128448830330711867931015473627438930733649503115841849358989522081991882322252348950127138295477554529629622081261792124157734949517061802958542576438642767146457629566334349639769704102029886385361780949615658707024246017496213486088803035572012051557475264058184881699243783773219472278284343098582061294920249035454332765181231027022208919279416584921140071134607501958277455618436380327117649837106933789350177670524361989093537641402776405329656811825849602529189127722719448385892854645231410372528092103535537710989472496700577467653354110918415893749628457000644164113067166974815086133903358372580742716269494494482667115205620551926925513426765166490210029228535179487755823534592320324308336200524655632655896842751254713242262677776496059278570943210575727421542354892490614225408582448146905778157480591627288799821347142766305280580999302086234892232851790704373993096230399880482560552440567857762195803888690421977284854083893867813578718132086152839935155263135237636794208808908841090050092125188666991497162586562307024727923120499144544751296174633458129890607318226514566693092023875971144242338099569492436139440331158648040122924261431918092711464586700829954499113159750596749859055172033418144905122446853239327006868706863036849890906264477593603285113623834498984709514326407115029601877842954153232808482358843985391447914953247311031267388527714753688843985112687777295849368741979935766280424522688464917810444891191475790849955846742751609003767448014733667823382824415105079704536490921434172772452648100985941509902672626689873883950780474200851394674574133931400093742031634509491382546587092379348699083407845750228227509700718168363934173043278322283907710009170470994703781983823695739868015988674322262666295686713684681565134476433982780079657076008839449628892560093093255087019981508016427402079537612833709440501525382630036509414416525924486027518247410947256400525278358068821230400482729286740037137573662895647525789238282408844158127500488971778393106032574600215933146683868555763633742430459254684017961053008843617469002745243945926935145611394615735925742732535624964570089287187530597467602756101400261509774985199409685712973258613676027661526483128020559279311056630326117439852120177610090803843794221149106129574166322250727885336594434844565429117485466682397893466285701198514817429694110554083439324673668392127285601754013896560864489027078153386861933216681251061570877913477763914725906715071845079423185577014902459851845834482652147828398798519391880839560290483107261134606112421713535278619451069245008976512944791338453980948675028694831734256596406889493701407254698558653488480013791679315092971593571270903185819324662996197662177039136105461769343687973316090924657069238708709085262597567241976282978596351987364226232658895054117969615934570274903716882502886621328486071825124924964835022609931511002578865888162427211543500012541618633525936690104984065166690848670203991890727855371698533698930427546154664037182560955086501860638460982231160116221769908355197471994799780867137219661122037438902276054384631902478156819265675895437216291580723290661250070886585376899644877747963868280737452984365985263267017300734505176222648661310587291948050198762117328549828730179845055490650765242986313646663112713056818042363095785479781969994611644790997895471603163298033212568711927335374022521129827440454656197445844701197401130160759852542778722231676446071413669576250708418144263392664059492070292719763329796423099475920462441188624820349713353281483765985010971897491665719063717000122324740015276367509703264357469915739563260514783999936185967212749408175469834535175765586680120511615546695014119993710001688003142203759240122984939795874981085835791485731863761454612285128447812060627486956374920302966718516798160051559246903124792837028116111282308260883279776760806496946260614596497094967825110810810500472461175622517943093799127192157972763627441337808434272066238371962324326626531628670938090603149810698261474376119483875145989708714690453356674379673227660201416659130128112303748969467630573184098780754502331967229267795374489844547923692110636664307967150589084138666795218240559039878139902379229375449427876444551422201420577613445514022853736067853167225653786364705196940582691016940292755498745217388597619465419445518348450988718640157473283437381365988646532376306802185946370014702283264513250793992308312878733318232640333222040808119825691804504684939670687320285929193438275423500800801816816876753293525149842826427030718603734118769192482003597337904733846377780601833462455535524792499848541157518986317757772605170624009187840657558746103771284556718523524467552401417525269943812830876952580439101814642994718218108875887959115420638759530500620438105306424186166128603408283506190695319134818497871895870241663739896863237809270627011506642516009055694547437119490754255414775007007511584571300470424578172932966563088824285960925455822669637690007686949673579479251367638688181972253940461573971156172502072227806875748040148472391042440856984921704039376535560823849708753092683778368335116921497406472984208621588682979275258149965444654069738881425513048632663167995392212792522507824161258330316478768280096162159007963460035093267893353004307343614352706808814092105629334283890484559116916700729196302094232474474740646632459469692564179923703165482356732742768487561935801454647637034792324268575656159381775206559410095749917081964442650455578092616758101949135230824697497773981611038292930877807810070922282105881233737350388376675213886700486054913834899354184399142855553937910803568592004971202267757861563813861251754417401101730306182145841244525597959679566544284602760772340648519699640468345069040524371234959054370466326010686956478660946987138276123489547032032912898004027360613461999650236636577225051629109828722783821414602111199810505272642328381227626402828165892760369414301389434115731094049128258624341135644016865630395520969130272350883719009649432440582278346571764741947728678043143384430720178771470195003916660088468831772359830994480002739739288120829960288639030246340887014550058014320501937676456182082907443708487327854419147096656856042381842186264540740391669869365076038925797673569210087221303883162902025215588019225357445644767546955375101755736402963066961703188558433266491119127297789477141173490823565069388774922441059732491811174532767824080668342928044991479527108834290962087543057141233106402840281823684475988499074880128169799619303812850569323730463988281892654005921272692699129376041309684235675075549155576140816276953071647363858524079068740902869997635243271208178936960592057465998276434571243627522959212044171318058693511230684050350403212803483575481602830629196251215175782985642298699647729600423541551605491125549226539328165699708736065879854108289346058748636899966694642250228113727854105267393792249384782810521295429051133381612491971234205222522433917106148329669270870183953293199130441908448013899221996570787306477598820257434025295437878311923449132869633480098810284987334584268469239935781028970983796971339529470692408884416173954905804774781433805855382131419382423030964777418019787947369954654654650610273163880336300324158191714222116078240627958906490195494820300297944706927640185973548351941735278691015318244653328901328353602766861023201239434264630135331851036525386656251362780586834147707048681588204659732795927501250018419416869842344902092949741568775068227627893402988127963516368215150582651026584255220718968772212729305326111486653189626937983450990110630802459397574401180734360863004560846825465245457497985093893522559249038688924383391466874505011171146474069064926399023108056559708288943695785202883700277503984791739095296843142298734117778396232641152256305942697939321028346866864186567327432253555885451960659695514480505836045508356910944001161013859174144416528368564327752621386231567042557533437583642523813558722909531767030670218257112328356727082413489092352066454691656571104717955772977399265593040175735098272854302248733256695088297348954576572877953790568367703232499332771505712668384867039654417283898152805963326958682376152133719840850008970526469392676522392473158052612665876614665589699445319543828642103259205845637674209651707309680014969874512645919373931836537571686149028113004126722158254332724555417494505216006816664126234794669054626562369565398973417652623353602723974378291555166469990121670433366040779554535364221106696909771474649440944095100711192709907387191352912971210025411420386382158067617802968019890872998698015594171614849715111078160634379640733827837898698051107720226226680815991831996098002200779717512535272303311039660187510396946725056313337182503222213124934371907342509068092775373528249186141510726148247506365904257189476561242144614706635671837121007783687253934519173135517977032574257719536048271971962092014383813865045039892142061993196065057112263708733999952186697561168228636815064680932983569990233203125037061970388860092540790430612881670793248893854663563387984837233169148353160814407157828107952112969826623347751329290696053784689311341677214765214425671849711851875950628686019199913678993050453251019539918006298866201749047392768563624222302547055055895767434470750129855126032549788957416803895427936589863312245075516245389332625365738820056931230479026891451809131223469204915246078982544245916173893112883171305888305754553058819571200379467187661727543535383048901191074817885656289696075914155828769273523145569620049256839485510666100192771977352575736516147184383784209686493536130157043152691429311998943327253367741338777358794694682740299224500482042885462513929035472786599369418734275724803251852094496686130430831598767226555516850757114613865233738822920402751515238468495293735924664651637895566308063610032785957909327400142031927302916489774166367233282333590871626161816756069715557481172988152151167914907593586276682620754206624028538417725101122241757999077730056359773173334511804935234816288833635483388804435071872445211037496146311879860717181779459331058375726029113423056590425046515978445421783587660886207741664763378804828942437647135328651079745304899462122694695023398216324709062890140253410076401870483700729378757938230219397744760662208102920342778248254729454412649768336943111468248676891560697514165250322654406360363964679425654781287277215405677672306852967973041560692673542244242402534395327811836178564973936944858048622983813350026768248741806849091556905370752014820680671277915071044517475008592206648293260928405184261173777614297575104607340278049272275539266448782126032426471141382721398451874158013510846005210130938754871413343739696628821886679724231384392641298575924912807482876265515574572213764486202528093991496476598421282180325490523473065852922335542197798754478657649872344162038208440221084826950681187281082247359054377551179791061948612171935762034551000797419733472690790803718869989104005824450156474438920781315572697512168131010475072853166214847962722956054058184090894813583980521087150517553588396819258558647934529467207936486662658590167133562712914411642130165020623475733394169704435076171285865507288452960971019466143141237966977928880355885834362452746606887368533232491344923070682483892533518445965061228938580253750398087594571385098512242003883713661002602069948342700032544788201159259403962870822145581277677830178672938643619519584200123527334095811776023186894791217667599882669704666116086792401325470566843752572376242369471577961351361935543167605538644480397325956388881851057647747148745378760983702750680056988982962201862458941075250568110526808173772931062735015694329663931676377022941245792312309925829804398841840690367363157331922555916522836663344208036182012614990201040719494159258030001923506511971347724530522130019043870689293597783672249354701490146260886401150090475956062854913759475051621484178689282943792840943131518937972226042934506188047928823035597176646361927164544815057339136573829253649723977232196081041192380279771438802366075517051250489542801350702466020784271951048445173013743289611958159973480570949165722949136489734683205024942094923340151911215685582704713020422463752389771740349427328340305962624767818753436025892182835807158122040164196438015751285344102574430860583837065268316113729023228356666884495291512766701368811506676801696033971437721753548992022015364050033759601546317772089724567402624753200721115756766064121185280476631687705751423444667209868362023525632815960013290309850707769204852078057903425570937253279441610101061380262524481567456931880428195992144970358005444177699315228975540781771493813202412723795016840020574703545648629664475964537165024826814171681711849513519267304207099269281111850417042477165386699087625687960638722276212055737767085852842014777021463744914464726691271553153607060189572075795126162032487884789186896244930536219263847025641453723310098562009232351833722750945247773079205877267235153049287334326736041201032183755700236077011844746843916952683017574835112082099732295601999099134737095000973154109925982054983622640107795325102459460229814296124167758330722463096475326546382198153939139010381393344887102255531409802223080742953464067944525937949540669991298051999583331181468273946884003656322171144805117767300711253638255125629688274177019651791375584241154144767240358452086900146555473909092278237874127459951527666421489090131232434588703963719898625935260882365135888438839003971022462594764442491943081370597427142859093217672873113929835613062254437467267265092632475840022317386831569203578085295015366508643664025290628848816846993812801063667434610113816646246862826067400985380397284884626503687179319755369450038311028202233879380160870468310811880754238252942599862431215154123478845584155745620830459621523342939614554020516536082511572522597378587739824325918113935661045079860490735788242247432379834526974216112965021802225611402315751088817817837642197775457952919529388855017482426116076259164251959393308443421372988617971288209705675904925226486758880166340684640524693871896870323780679818996725462393417709355865887675619657667949385189507412257404210261303153290851439412343440192624140946868607599877532691342877700356772772258018692691807002468098419903550627966955272214413270125422186136845625677063942174692009951040250481860332938943812786846895183858522111736862675814697342211622266431618424555323159839559808796212840420964118731207531422261782975846891449860845780284345905411024239573050714606650937573001393948779680396406203666943989485489683813925660796546573525177862691991859851218809028219231728847125037184103462860433987963139874195540913101207992715311716980815670880634314579133682069964735131469984843213172950348758066448331822322646169655881850318900953759363111990284569911440942450834372085862637439725923373826913421609787645617388440078920023371446395407548238011565934088793676990046097016817602322296936151142008984923169190848226227493056160330179752979517345239676172859983128441913437406394344687019313901780618150859102988352829454448046682291751345884083506719960975312492316902341976321250872405221872716443108480022805748185668525811015916114014696063299197974871091792755728591859186885793880093115207749783930914688476629054004418717435856752849309058777553613665604728759810435131554171503537392062660040754347493596630650224301573340415717122543108711565837304993889274248650496792344235449031633533602135106893818443503523487344638901363017570705866869454852348577705320136165071681490270370917821652059609597728487473021722097994088932347283888653422528278028152621430713191631992286554263214333023115429594183107224406109014424030815760024860501981033713182688028908985686114373640379190111919338489552940162541052494177574887760186310708754748676666274753102766569732238513281154236753183282470498645546650005398706793696949359816209635849044201779026885598186667463725828988135287871765561551130996666160849053248845848498548483471019218605748201435984634225571874728237201762696768768433300010805911457282277397895070500574335330077756493739938223637348245468930909079563541523570094039030980196657213763419475689638901316341149875019381284019387986067150828901599568613388183100244073872508590208327715985479937597614519873422655993618363204469128230938787121457364384307150730587627258556855384306760799306904084744217746441379218455695267971880348399121809001855451697227652888307335069812396605302310592831002604187778438888593410561102599237800453988407450547306141737478846905399622599448738429657325442434874636652975536718780287557900229362133716571287165457463445886523484301422636783652436393121237624482676658254004258828459845426772231534235155819162358316569417892989313587301506749258209338347851803413506837958810244639770485665273041037460756936783878475817201505614000454094225350476737670118437285310255373449778698103117369415840345991078816588611152262375599052816438346434525441317612601240106190480737685669937906183651677624380427267398022978221502175555231514332296330042340492289992064887234220743623467947502916022559737096810227562496859854646413835437446347222493781998106920048017473885813736007223685237668272035109659170051649220410744701851539864601632431761415697351273717358535109594081732402918999521710280060186141095889148870836653437480635581897439442607676196598598219111926229272004140526477934922248993319040599640768267262863874465190402225020216978228266960891942602258700441019350775207798144666301017201672820387742077578208034252227260322545253637538780835032167016726126341226511737154501896588485915147539254334114760917141370364538458948349457973059827852590433309788244935975565633238094660932245636895858644804110408002484666854500939678374819550105072774418848492376480800606852948538273897422209897477238416387105569699496244946230785150705153440334647501642048908213800503777240140522548319782154318138372775906914629522290404970478356647497894626477749939050218973661524124278147636333322655436915133096358094180588077026425238078353513009942144958519036067771804621682627544874371063253347062675834909622577235883760900071746397414414803470024276798004539898850314647003546649078623067609367442755217358890773279274188415857946165917235376512891664874374754496675527900102465033210727189441708019295676656069053943939319551312054722592142118872349447327943173508612489968991711683655135452006883956665060235020065672569586164646869660599843111001657596680098959472050103249489560887522104678978113938385917586731205433525081818487248852901238568177274953535539549090244209474396881930985268748759210820087097187010860891148958720312480045895751599966601778024511847017186620145471074260169893626017190849331281863633269542366882849983392399516927544077584384198491985177919357406554914647328498471086725192901991725417865584538416326083502144876898890700073953989697116552507216761255855098039132780943341612876456816070845254445106785107089669031518687974384645271278510839886366286988153632900052527575279009051939021887856920560374037271173904897084761028925888723398649458675382593179094560937598489871595413094937833909039065728350865471303896248358505700696527346858425257963905084575491477507064427669467613071758432140462121415801256590689779394245942268028411399599667540803942586746233174867488489879125728151213216604079108733313732330445840423030291502986923119561433365999073672089946090906353595966838674516694666436289727956523658535833250772227172579720854220184415121756756068660664595146340169865515908239147048520996773706128344802822551176971413441146367140454185130455686394220634375315552137415091368197136916176732054971196368044431044635992298661082102462136492865341783075589043225497037011210394105310380838183338129617977117827907089914713100753159185178256418381655581921145054896076972815483641941737569077814786231907603527394240510485401090637248459749438240643477906011980047314830562824002852762627544216617402010726189622129913992249564254708199576623447941507216888889592406464480990567466137549114824759061203382006949802983679037026891108212048896659655536588326309365833192294122425374736150123524545622066606196303233908385203594773587519687655858265150295215495869594978763966892075994166918017982701173431939296079988558122539784517546425637088844444697092467671126934594084679235379513123723990792843378722444772500897306016786334725658688674062909526962697558322073625615101624809483367889803960535305413911490205926242059485951918630766799955419768782184775956395832261683352566064861698365857897660482568785853868926620774076894184932476889083248674450061084692379356088745295268667921118989024975513509140915525474712860472461268602832625813271653322426801562940461142131725381175423498723125442297202964237012118835760282183446273230310745409532034239775317769409807550567138809471526122850009221121569280283710972227818659391594553952530483755491120093989055247395794983780698100919271432845953603443767033833870736996802087883760041336054392237965523285328475327944378944616205756846372915918177841499964313695760990879489162811408530669495644468325057705755561686353241989840981814761644250121261605858874358040637939296574497950332043297767354191306825644739224279093839949225549575858080729764077248264533629936024322180944778987576901451847710450957904303760899071984313554438103587842824551533538090692067676675604129919259195274157995840941465700037738845900396350902279750833827394353077726720583648570299373860922249615792953238083248303616229195064476644359683714398668395527304995634838360431859185516682457969080507135570257630273702609845174685978395682488094823289935095924823206346096449796999472756963091502491542437796447441383112779950796189645796173808029171742452297597471665610736979626662168748698388139295610881987015015930154256548253527206961285946967243700909485286040641127609563745025666004018882487073194416981981352721754641008574699069778342591586007453448402693364917923476502919056822898975426889730644862778014730768384115243397414804784430352565093793408387293990854468315726729580425859500364499733596803594314640757014783868482950464710546672680485658832123319253099284799229488674381036473139807238736735641227353147979024337717918784800152225484325885394570455267628619498705461077565434009236734916188553075927105953663061006401137981208276624646056854302448141648666161224961134499551462516069746340752164775279614931416538372241739493711355910415005654627924592206399936147801232609513835256847066583654805539795867019894170788588765920421645041109108816488361810032829690643341747695649934201183754500020582654533439133373711034858361100973878786081173053794241354660050622731432565194867302542616954420814658382547220986111972927155347017370517399910209578395288388537585946452280244458114596216197582279367643945991143230732183897246028783217549078969969710775238828680986557065161481959812483072045772090624882733447655568991148823399474562120981271147806045286629578357351525387439013412064598042894327978639391597607209383981180248252422784023514943415718342409924733816635890930639961105532020264820421946636557659026617804676009530102170183395773698728038825218213313896782604141766395255998686203023883400883159451506176591178252357549086108738020101774665125002114672424321596516969508830152914646540957411366945641962156335375873116051522600730171917730599403803475630335991709983256994991552981640818927091954711341211766774548249187491946348024846352480687439066743584521154727273180088236093107658252084470074453032006453658029568181555346846845967099631690033327967121622328462777183166093123239546868259949716051498328371968467104357298038564800825234139151508227748890007670185151128115181248008712046145114408044270174884100438298672918044139405786365806686102082906777664188493110990935253455586425108389566515563262745786572181493851097480229483648427057128885153823621156688836663452447480217674531385003996704639178590391211204970616054602304170643291468444547020139937400700228160683968570956835543847110220400769374420321375100938227278799530756362112945877056626697151708157915989802506149403352099067207421058991053326593801817931918400210178869418939553931014012724995179699737203140662426578919797500808903988102538847103693771586521358892938024000757088294081607460390982182528071254270251737006199746483749683552768927811633717290197174740683929945863346555662436397320923677976058931346378955529023682546316935537130793654525446161266412977830367626972625450541770483771841085122432257513430282246277065679656962276394321014844838739171953566207481336935067440337710440966726340787769741989733207202021464464437663519385435354794753152875394075214795533019391180980065282375621459584354040663499188685381066947202702483384456801569359243758721394102545361689235055612599599663626541423938930641640874204273781181770178670288807569007333140926545650987794316694237443304694440030477963904122958109884485240148015581374696643384063533683046332551963312790589408701093394487462176889878028656120390205525195319317223048885133953336397622104328326779947601977437539425054492411643584805596460341638165978079367846838786581998132666436396086516161876951382428814812735810480318579099237067840877123927379901177155714585051282901534526885311009085942347369856081814542238700895369660106207993486273029369267492312718932152339448819398798831979842019457241383634938189938824877264818286621238168577685710356663105961144082239441408224542597889644092131347735865469122107606417701339565729012130721946079500285102805728004240608089989166684300786121552447610310492494955782059029859948626041323171311022411084434163679662910809499597481100919078833621578439599460768633283874321639894297715210645746439633519537516850259028540874238543208649883106792743874363722837206314327815175057511948923768032690116647863269379954536785295870351127053976512930145517005290790170676334071197205312437659902424824705250762793864151968326698623126705131036963766619558112936398042580855591935517499012263389881579223742939153335614317974816747853350600941428319450149727765362861968772628341002510302003582378479214776080513220992394942035652246650638651140606834743241514959401773562991240830847564622301430139200385824167481788162200801435765290471406780433414318385647078075134027192043830248821907253846930326944450735833073864486721588328142991447768054456237426794321624932728738759091768232222115891165607699749041003386500260642028923804359480593249785310560886447395905520992961582899504828662872562636936603147355508344811367032477664859780944347322174605958826598068585523117055306323682546745677355443948821105582051333515120906462893286027576946236979697428088928081362728193654011121761393789335581490813618295192062480402707807432888139235768916232627259203349246304549512571357225102448038104428313814454091845517621205444474427160584490118328046310593236411478123664296760267773559067158009763818076940566433347012746882472854504039204919636927086684482329283035621705941395479811337980733480213252660124715839290536701321533280459453312220143921793599816405131964484968980111577268789772787879098523294250832364483179471094977097877230675016426885812082375687816118990308321140015851909182605345649357400221197407446144350841633624823722057184283055426022720515029940205867423313688191837469230639817006634491650871314376609357951818925705957825043961282305911529004911454246574497339362721945503524319276684867641247105267953468929695117080964419310789141202891073401800708176352253316265242804759846643280162142575682573620768503975601317475610196905340912962136469441625549273799611573333750155795927465839419131999315242261990026804843762640999286215033201465854684336218720009378955061148205316396511185059712148737432752615803056258256579913059871500109125630690367075729050399322205168419425002157329782720799223283655802140432595539542412130228509736409675225449093949356031062006565611638562381898468164829124078477632710130004837192910310025280786261477184310142075148972418885193945221958604844936155806325010873292421608629203258429896202296225266221876100368547572854672436322673502103346136918645506875370874427935299829163986319928591183448308167920055242842933146106595583980576188802059754922230312171080278788969912088522533755437222875473662675506733329844857562145841922359132725188038272663427626189048660210342888936666199808519183479689683569705097028783335618557027703977613631453164657578659250413986794471493837354857379060606273230351890937453168819393502563131119387824844296554787732420073344840461849610648258421752448306253127290485045954745240602070139388094301130739254566187755868830579219642151796946640109055587415207706074330345110941927384531176123274351724215329417649686065519068988696594174116826017096977436562974838031667295356227108308089261182627138863605273070212591178096880845086516011305004398842805187437929607589141955596680397564301465343761581514522903639280561821602741436930171363232435510840048525803944244536644244218636856258901489514809721267939821242548739424283355326704224967037203984974116886264227605637689220183459896517624705338775522147773231300431367856873236846119554506894934194965811570404866843391240407393258308747724324676845613840525550030992618797049114186451051029482566216085528465848680798716239177946013188841141234570835747476872278317656062904067904993760809403450649291413256582021653905744462972509251505495146778608590921805644180754486053678502548908727240208906597807121475623581807500586879636632457158706205795312824946751098378643127180882434015889362614093762295216751070471887061451075400122511108505661342158750391147435950952834082807927906161723117678944678702979594926043543810819928693116569276643848401022397748329578502283447090650319113228595273495422490977743045270129826408877271395780264140347483539388554253785656387609169979033221108853407448299908653573746227066312352108037235715564435789152228785510811078797981123139647928709948151639681795805073349436296648841838460934580119136891161595808419966747692702363226003002371149185685489557646162205865147244888042323374311322922430898650862527178395959601546501582111439414730367919566754153879172340792188563213484719311762450471386069874888808187844120321399313568374866632631509736361509026980293852406609904725990064587212458756541516607422846422600974609166539586561568290884357440016460957231413482039211027644589184628053105550604930701566761297594463442321824211040548008315514622740209400072236741507131990683652282632506510629656884243055779430549645811532021105642514143232276105031305552268200072116543435011925470682833740200989308840992433705585963231733738759587521309742114519257249845264084784963734041643636530777381929538008696103732062711698497722034505376516492237434941851319373555274248529557432802314855377287555775033892102251167174443820759517387960282718411216670275539259949050716915524204675058756769389027613353299302044233922988471390513252671114402137174958997943686153961820566291752586578789657415674268243235465113990150214211463880918056757298853525910051535121123927029586100756568747578220153946057250670327229955848186176299676111654150604309112162313290098356599942382291705161625803895871654192524601063166505026392233121390944617399449062308477507591976611937479952255213496457022084059731915323738504884822958425782278217235380902886806974165204713595793891104421344478511716738248821023622385112328948129652625454462575299162047709416856727581415776384611545701795261052955738862346572943912301961523004206614698080775125393126325692084192487894622425436796230583171186308025710165742247020543256049871835186646290920573019089992743546917306762610082653141538237825448514482511266202547599395395496147633988203701035958347335721460654225874473393670813640339504315813840317968978363842606129617851729554487367052648862759834552730786015595793426853871243299327268617462476612404880312560297199336537705282312066267550971016524272902466949924144437919380201465834084200986464841237490201384439446628160371195842366216421675022312481375695343245208493394095832528882446387734960746428283742422468366361309885989965465617958905614321031104612844339832236065774649308055196210633428067144472771881146193884678833917345765013232725117745293736052730851163949616806033686664077895036158725231263605977636391625491333497554210108757317351312782995024411416344100178647136675513402446509368761312876569883970950278659829399104542040235894483509977912688278236616914117182193831553286892891131200285871025619949157431559856392769317770679379884524377196395608183721362062859850914338213536372581302023487503536961767453996011625939177776260681801016080973747662371540910624344530608118820520918447208762703243449986091203493254860439805045794776302019848015394792159994738278446047791077269170106689059537814465449039606555698649503229643241329125915763087855549378218034207066183025650313816463624842390343611931310838316801019663565863725994796037654418709748864060853885729362599803722639124033777721266095907163332785817662951824680915832884021702714973809433173612127495221897178566639153431842533570576150134784311421021763875803848849800651452018888450806772229405485270559886267370573890550944357212868033933977348518403544892228152555661693727520715088994285561187340044520651842798835957348411380343212801833604586604580989900030709995783231947472405102688752759931323133945829548309835955009770164912496990011189898147610321225177828924799970221901636462297259434465379191347261015035863912450337989165427014600029230636511610103202619813582799814038393216837041723733351715609320392683263999365231788875999352128494083188083888521432104260439425312680196236465478705158811824805026811787185846116650874314698364435730649180571723314685399024859863399461128081949871107483931288421349181093870271376163836140902748616667053288613061496003926759993667621113256150389894862066605961935732021643264782748317156627861763086842669090098199883943686714041649519784799189822496011729626212292891369619394907056080953241415417971877390242354493366316310034398002469035570690215870906747970491431964345037194957468643056347847515537237972203553754484519421003527979441205848811192139225905278303222997648204321761742875639733835456762529501295806909873036015172486390111101322198646432030329083371875439527051265092551999505162959723299959522852081058101674728037652409079937290794769027564224184775681829920460000381879114789564403566277274519944697667132891693016365352884073074148531372117569572695023935948050339006134759325442789166843806479889870539885831093635689480328658257035609972711775006694274160808923003921520695212104478236391868317800859388269278318222882512666918058025832130860565991599106191032773442070951795316461429237823237934107870525476039601405011041748475612827633321671666411655886019193979240108919700464937709869053061170514646914230606241968065631201300820719146892802241299821151945186856822795369327481574066754818128350497738076755486924767171918098471070770719308939453746268494882255999059322123471512216192438441157749867632318218805493727210958805428390973718734422608810172004903032903532761552738217574650757221210274660817374939286069470712619289982901254821756426534622787893312249254356755693326828534641758508965358670401828414927829909214296224835717822993879945328115275129092879847560008696468066053872298456859612734565888279806170089847106006905454777960971225240204851300188601226872048341329154896341586354010235155276079075940205409138048889736766668343659587141109862417999483265736996960788804516349999118630676575013792928161549766845454256992315986731957446417833296895095819294021227106051648406996070060767609337926289286677443969493113641861596449946507997586521641264438280574516146868175354232242899140971332208207753585775419982198756122213955405057168081202898099695001659298122704610780687056929761329163359061692708725727797862626167265369194028829124824742651551028605580383521771494743187132556489711343787893023747339969517540948967282446503557769828869428081389823915530065637467334584471311604326573929308423872654311071248503911450769608707207775974435374489090606832066313654041891827250032878361626259073888292504911117263083324828798130629506720867863028419245780501667278185663927981425795784730964433841767916739662594913283473890564237347136307676109845429927619032072557976416750389879788792938053789768504568883718110642555938598902073769426969570343127992556145325400821363974924394108292712980619052047267053845700295377791351850933435225536395558653773643742968160804496389019632095259197005332949729822062991825418187468477489229478332449618768530005804807660156954589483907870905472697163824136864928998324028339070596750451427865018973470835000725994871658867433199301209484131600615296100609774495703444113792131031512533219717535918578274927696217866671887221088519707672256072390322794358821185426332151743160924504521169480037795493130903394610320992261186377364476789178583249709883752115950982474959576382411378416600908805225094902239661875151372230677455264260142659586713127446621965929580329950917151758807658998725794998921565287060283560138799951352709589269896922063649558994226950161411221938816546547082373963664340661691298211519747827991475271786654999614263410835373465054199626240433578245980667075849081994802809298074892026065658345087169470582239749466503653283788637490574984443987975846929482226952388007235546086371267866677370961409333311858863346870801100834792987580233717094774366887825956386730852013161111163088256542243234457835586645611884231265666587418211293572449292942582665181195767323547006545648930674847701715786914646929473920917371185450915759788098428039892141330795134603426187709297621307881784199733533655872841203413516384386813363604525613447244803759183694356833481612479351043013283384861804495664268142232955520232967974475299078203718201742674490817491169343410738550495098028945281618224231652183193296442064707652177222669760745698194280081411206698651635927225961823388510541983688501257607657834667031749462689380321857554799501709895033099237568250209361886135692018621482597796630312049477507567788224645450032906698486574130301509762875443562158155527329314890136640015608221005806309155196230652344833858313546719370805734151861701159062485874540385348573499146140759753290436022670328475228942382589833882241303649036323246213100648850370693054028860267950678294099423981671356333105562774860997960064374638819996160845720492307837286853137503633103157200039513334769866679175991983888479368927334888629422879707043837147389243830911292647283053519937510885098392823273245884793239557221663704197625342815120704729951091913912755262950400259899641921740810020512882467754752692217285614604753973854423141410668393843211955370586067195582704362804568254933939717967151143275525621654398924235158388904448937750967868346652693301994455409935887616489226899228563120438110561521139851966297931706754840417698987293744590071846599445214594461068215610819408898647223514678806165671956646565751206823097461244639026821677665645749870723501343960223083000338269000236013344867975867021376526390309445897124057992334132623524098607144571234624147304391948203802989563237610063195586137492429301667149064210099549448303102507537822807817749586999969526468063057333664344182572251141202776490493161622796924211711126726874341635140715116274976389665347354805962747718472083023505415052712048160637006508407919350409737447973544928266229246075294431032760071404744537205199684019089343003915918532634079393643895451932276242966421982587730089287266952727900572698064678015072567764914451147010606109239645923667016555451814169437215392104584132473918319871414150460821677546933709892736244259815358661362348202836369031675080320505080815371306143480249392231311284690926486893686321575047642631715099964930571406613939579296482934221679303254894499479506008605279852369416959464754166215277881017598047832691278257402486393771706368873270351778813960703317520865034812309518349154709042076173132725895772560028826171733226989933036483420235215158296510385633528637302640075545806347637992140517711936168142582607336897717098463031136711118148063794429706983587554648912953236889621242713729076116442540519797045450017600024123343080380432568552191695479782452395211787384444441697495166834287533001858549127384940766961885752880615033298165886707811437435792865234482549659043071530821958408267479472796811304872100721668811113777381894221761657541423890864461465819310630022236834753490624999181534783426582067077786382569277021710469804887188340080404358795467476789619369988462141495754858500598599579392663723006383885698391515947632957291475118137599893496050067154909734753536026615659734903584008982632925954399023034762295628104606210728446448526700275241233156655145701194211995580120837109237831486303931780022411407024821339002953095136911701840039630408435823668063626211246160243814610018242658106774221851319920703889263903024896290879388437020104181819942616654574291812812593313807189244112290415532181758715370740984298987889519567028240128814601524893642438232659453850662972187286975094297752832837635252973894699451747563459572041095241920907127647916614800221934561255388532497335753954742544634313662585724990535291530105093846710888534711985362221600225485454770605828398559299070266781994237965714612609590796103384809473631100385438958057840907477751738360244325969495783347617065553098830199945624413126741025439231387740284286155476765020429744211512252598618345035797297106141357653726206797577820770205971799442054497366729400637478988720599540988650098429002432621961057582807000895594719662622097129828477327032811232599819701516249964984186066890059102207371251056525988612507612892433825077118712987841313709347365174330768345001570014043699803489544761553423561023012161630824299158042412222519404811952475545872616051374401823988401017910908053365100251048652862724848173975170253240936488508309691927013024586858976190673311039163875637723842293435138634074383544576300972204487948980913855297444269737921663915619841757296142906727023494001431477355768212163583507754472578113222820457931013337402996859925798801277872487767046284049686421545849277557225400252706541578600981317328939226473020454499330917254454572728542564663531299005652311779917921649911794022694345878775818228299192699114265077799376017062732247120403738657472025955121944256350792380842973983385597371638282955644866320778982955146910059217072832914422674407176797018395033547255140788640691999910433694616869394340615322260308416440247527716562764683561951390431826825985725273440870085547569180136334205533294783638078381931319515837797039147627866171585797029438023177631914867821926478582791379215403739809663077782112724878538297345457490284420648361451784142114248995085075791405590433563345216836338875587153640894928854029952365714350559347897616600622226364092238836728586639964009220834567220176024953139312723543803561713858658505885791164779582169473906206689957692076951297621678831707920587280824998746830767290336082975424881900810401068394653985534654943982590220482244569683003707060660742733287345992947927999129862912552380410490078895948525731590604906286822707619149514672391616461530525433041759169750066039567151727530938194895250881297171520825824781149400654248989386570300118165239448398294524550763535807532939873638970522364166160899044658760359142803278776225620383826054650299444133557970091435097430241893123221424905105512995209092350894175592213610575678785878755395129417397427368325027704138549110908074578197920851390858866180836578052074616651581316298309109732136722389315437411334120377833095256340277236425526042789745744324686850915466422554811751512669020039118059452490028487641030677296808655219656790996891018308783573774971291051422629394822961519647056941959276514571043649583215789320768950806558232348069607124446528083455930542258013751318274870734723288713317345196983657671503285698381200817396308540478828271809688062069544339303867546038672556250053219933126489718265197602513823973757539939838297254859736132045172308496107826324142357754717868184429775111012689272847758710366754787658438332870261893831967067142540393993655797100465648702426848287601542385092424449061579661840743948704502969694982885065973830890374717655302784396000421480446300223879640942949186438119108766578961082042774488790076217798650568121824822299657363340184183725414626209045593535361069611402614463353389460553352942342422916821957719623841905840840898963390488032162961647339214396075625520342418265910045409115163874551264413399911535464837081868409672092833537931997993564066261003776204762512129594461830461892733303543566206531202314515206514083736417549610165217105796953495171713205129838380178088756035983187407271910682708524825517307977096774788312881258598463632344974294141668269418208142322021906832684123055925384706767087674150501510353021049725056822768418137042743691842492076669928218942950279085974975247015436813286753922226590606451226763766936490586723744231659687732920927441147040200002216093567285729644317209687315732765101727820111540744249893944273295658546076369359987721026377768223070372480231920742541468930653578303338111059445939064247087204408602609317437045514459102844445900181321334319802417633953056362522169701721387610863210446035875356465593584263943476951765864243504048859630645586866568813261707294255042593620984195349403446844415641584443852392813427356961422360375737788430304772886826437164644386980856343808187193058403848507448155595649338759238944894351197213062552428073660673480073577510711269610248006421037674933378011964526202047582784880259456903160282098421206929113429825776347672301435769972952191641297734391832866197252763094531884708765981311945318323728463435851731673640902407839172776665190275720840148201332669041369466089605054380827381431447454018691754750653854527682012729500169745744845137493160103865996800770146373696920612654509229588504278767305576098398356771113185190984491871058041039410346341855723120873662936791553875608655575435881598315860827791455661872602075722690749091317482387882568927582529104659745474246346692844811758334689466679832374000454555851987808881710530384700304243721663337609628690194157130843398588560258440888155353809923866606637889993627992442023874830522276432817200358535786831830177295841859338407806916983479668779206195214034312717189275755094241361111073679102060634005635423635559397538308310953517902224199245903488385347572029280564169075471022171744808048679766471331809852412076211299560595897396362112786026224813452374745862566377586467111093552417834249565760815808679682881199867449334094270657757493003776756443273180784833558856855345969273840946311559273368165513439121174315541925002408064861167774731239804748321435483261402781978621883813409638608296802012407517154017023328189709686822196407130271202394692421849862946324411598508858913076081855721206440046932914570923430842547560401296121354346818852705247362159975164149835359589431481890396458391993068639135267849430908512595300873914719932908381208043393820763236797208137454920936329844383123451322055528150170851515876470795115853992586252755966582011194468535824152909102302488962085063414441757085650572081199835560666199870815468498816240871458185700790198057851984207521069877070458344658810680994555044590042964157863888969421856059750471533314463382163740602446247879278616694838502381341541909976690566985965241387793658265950242573522821933131250027405422874535769807769913589494280470877503405500537107776919408558396954682037624021169383368144715434521361771596324719349895181726393342856627840143441114372925830727824096864260457133872691887056661323676468716757914798344182657181751601476087817238927196771706502627900840758980453362162667107787420170082610397701245793706892324541152404456337815167698220597710298185093861758845714541324925259462121429807920688273384540210150026413079871178380509569740051270995084535788318158987728722307570672110394085597021525897647624168747928773230281895734761923528544952311696524614722317853336459516125774344489971902921352328306639661497785991852238399139599698529102856302454473283380537650407028336321102814707636387929226224575954355332720241501670506304905775728900068551255478064501452204370527524461259861666765679489163699423548658567290166929699743580111461440502357161746321385594213343810932214920524143887141236275124566538170715842459696060089882015879032033845668703892393805042760301304155712835969039164669146083203372410380423984648093160315519563275556076287469809568764356346160333760100120952808593530196912518866447069660376501567245312839225675253835342270732673708114901043826607181753036127618153103257641617825462286976418533877579317711728161274244926292666005355941458594334363946034494535469047885896712833644750696795427898595047747676962510561297713601748369542347164767465236968356307077762925969268949561870551639245160533183591373662345555050004485950856690107109202954468446800680083103143672173110904336810886801763619465738409501089980541635290531385013998482928331342072719167732736858484564643754965348542674742318950991080361318740188326695972831759446297501716961073416332253009827071191885506272191275595265940221090010818360178301468729147747466996130743054227650474858556959397051250390195520112725402552714355994926312209727814821882623755386733328846414688408852359779231741714709575976116886632613624075669753977068321633330280314007385612513139372170702400704126697851905640000607887291146289891391781309897471186757987659076221120419283995783282776394842596325809112865019441178982031577597917547157186545806755493320477185874330987098015758110478395734508958403228026624288409772771780945764562932978508048040962330915370968377995198285127288941828515513646295784867818767615505789335876056224352991088812324201699404787489742943011623520245739769747994755038209819842870668988177397620003372849629201941724712156201203941316459140032443885582250979340986720713623626635130672758230093976262940810185501527927118670806495519604228087856339709747650920662490708085364834723274274794632832224889490876179594977526862537932162157750671967719689516475905094286815747673099479403402909693915406622329694640210087909407260948640913779828691519511189607842739054614359911944232599690237276215786536862610096318345154024723290861819033987571919984983376057073536614876891925766074274335297254047271042505193727810060574810614963486965771158158007652384173747380840754268816288368496567530912238033550114988892971116363345165081360631353037908309510476646069032861638068466543499929396780194750447194726858176025417636312254302271866036692814569636602227555855795376505575962151480713435447340353764518924816019486392454022566623416511834160439161644543581677181049013629501401802310183682543952954663232948289868107479743435544761997207395702479276995844263011475934082240604654366856918193444570218284485814474232442136024822239801182260946954596205312210235060534012050519952306814590349385215408750172304967790098940287712515310405437650841166269448615291272104685626742382649222667534906578802222506737966640206063892737773932214728534114097958967585528032957232640610585063704213955732225998631869796468604532424369864452459573074929271629955975927209306677573901749805991267803809380591111693253435825070591103076523439000830683316809943782564182657595369807114425607176027896151130399856618643737590347081319529307244863579569380553630542855989765919042172625567546442902912109394945007263737434649864464892477665362948685794694311223619623194487608328249628044694081719120388600775089803088220634610322200128603562168188081077975150240366887007151491333842368471034549064070992956280961401161171092313914480880625638368687430876847284984151111115311127663822049316612076029729101837956017135349859216930536489424344683356435742018896687332486467651606008058786520767848372011214367155188546094934212886002309783115804109655090662582556955695469765096030377069361825262215674345769328567307456381883412593618507588065931086214638277581108433956150840623630225086921944800228770737452767561560781017931158677413859152820590866318143289455823614871279098754473796859992865227768569660691900456146372009807717130897970571582968615264435816207574380924896366523174478265910431004889676693422091120845068696282334730611022792305897061885512885053395512493092990227997093063884454759657286824329130343521746196331908261825323053862148077459185667483415034276401912236407109482082240167330301158242666571791307269087757547883091370840611969468607135097479480925735299409288310950015088732679430012490714421783049669585288277933103915150913655427246293345648208460087942685318906928341812760446675409040538996175008061905553726446956655566047714932454383184997394754573237550658163556835968676190540884065325365900071697711699927647688826429448717727935629312456415498623526576382965084027663251076514848830885520935500895582510550424659567076340167777568150921708640013644904556349075607268529787165301017020218384512269576285234025996604755137269164634355544389324758318146218283120046699245992005234017826211978046589827931647348370568400809966062106764435813195366013842114655000202497182086901848716116633123285004680459563476449205798119330549117095029574956971254284040927891759893966783139831867844468262215029898615681312519897260227057204093031104525389310216058584467461977951712417982292187630689131168110693392279289933637727860921859045441882248029385874675765850273073328351420649749410626828416949048523915005767031625915703261657336854250967239420496522024838682691120128210292001570740525498426828211401761508502008407301652411109496103348452891962938223444564836123643344075498872041663858277652604794547776550522357811562067781735922679871643012042806900697901428501702232151114174386182120694567426085613127427598421329037414363153080297451794142413237111589066800948193889196074194991299323950205619267481006092791279793293789755928635248358300773874533719454583540843317202223842173849247929559792174312947460420676192462767456094777637005467556809317612617849690823392607732409462994923657725187302256196837673826830818499936726704865602834712005703811317649167609811829472237405053639249305504528375812338524184857051169443195121060147841623687672758363572929639344884396537115298298524456921437682413511234054590153624090066153823456604024664702567274555681998000720129086223373745923747802471541848592608376434738966352378040647456740511329855232476088800538653626877445271636155812764556709056912135617919866688299866914983600463280829466670644624760393519896571033777786825206405423949579136178234003440921974427523577983892570836164925283759178741593376452776974801660851660868462168367554690353466341412385472753948618968032510140019589255441375486963865831968559393110127805888965754089971907666397797344330555532030597096141795493648851874119978451543577666181678992432037148388534506639001959074886196149722354541546257367557186242931963099347942948105653644582531143802786302065854948023913279183502953559230508691109663270783461733896758493033956985857480427730889137127952313056913472087469338568790601372560109544768746975218350567975384640899851449025235865989873253994628507584350968942213598945617920607762806359659253100438905653334257567000396513319128719778875355223098123276057527723937347280842181420911216636988631306539295645244677377880841484755573682350460453603861448172136469683600874594326734041798777770746208093600837249296847677644948265702270681529004105024291725199835404345091247018606947023097008722675103898807597575365862295892379785871003055211794688257918124468952372230994093799328185142775108684675917509954319747646798493710214719029487913313854703376998341766468853650251294347753048548285726990996398337755961275410891277934417681780295121714610606308467808274577697971188075796416293297466178371815183622538020658221490483442038464188998242608736995937297696341072647526147250018352817929718246172212730229695077991168679953730510431252937551730819340522847183227821516874870933579159230964823791071714708793888099991088281707236555044302491534885587920731865612390085701279825890530349794295991333183018226008395136651514540040578816575052524468855616686980649982430895457123684844295171549562974637171429223550748024879611820650906534356801053354583448596087212645081092108111402627820983996220275337358533078277821262784357882157252618966204431593736045969349438160162792498628157944358192677866354177130461600093690283897364369672192553636818716833192611491732903329643089675833025010061663234835659651636828039521785648128517063341515391335107979174199348856850569062497430963677154951639053083568885936297489325588901667534027927002630080626761704766726512418378534264787429573126270369045873256052424358292341593758929531019193573895698951793698265776027130248299211783930463492563479839504866854967239364037028293774377431572951737825358881409899125528888794093143405940801419869653569194025968454123985313265309738202725324524221288303087829388805353522137139790724476102536648962017508381321174955806434830091833839823011331555246512149596543721703699426447176673940628590205031180573878648832356001412113922800959230753263733049046164879967387005802631711109720377870333271643796605639906398294324923221833625527880889151767989496245479881630624223904467851037141806288028345720907458249591206581657196401210018068337856490165811209174237206438894204182856859674965681834492947625135701272130226383252445557673310711608814104510870030220128797615114454682694807296941569446751856845070544922711968717952099599635157072728919097230928309782301810610677141430570775970713896507064184494752721446112669225758738719322498280808491368263398798565595522979118611328427628842853538643599192384458361856446572094301232760124375080698699653905174127184370075492339594968083041825290938245952320584231060971029545450467793709424062013655308096411145143540318785708579547550485424858218746155700917402898180499681948984045211423986535935107337158418156850872369857674771694217736952137188242679457348945181520752046832046187500099219651658048116584471085344210192987608390481157824597411410317130379873849468411678703422952008224538454641502560132784488991492535251346014517162183117371756729462146131787322397268370167137741284886157488262869128539150887304315532921108464025368006459529046017824341631670083689686885405110424144527473657233532214470961341237993086799102104473119749577714601457895344710349632930844446801362166032828840533063590063263140459558503005710654210227124517458104119143822204643285055141003854260495291357092517952165945323383637263308103767006518675340212675126970665603059962255755786278297669512816889306046549029034590690732399316520553229488318778113841465084075553538383431951534578488227877024786238637426969158544467015526738012422231683272904477866365551812054246596736484788300694784779579577245273813776457574119662723649315829357387210196226277586136140055647338286652651810474607154284040431723504713439797071150381835712453514604724995062015292534484574974403987717040153048486569306039725971628145463459947581038342231019864808924698313762669812706931846506657362152330952572677312273178778589562886078441162938185104242130249148857767812406074012047067619691572907029635871130633977235055769270382618290259251597579351142818602702789838554004364986602699239545957551788274069764864479248032451524421968351123514316413299056496515268482766910490785891832650633153233781729852298659499986920874877082628448599414726947696289065168387463855501763783181939491160983417305708191036847111856591786704288280575358970940439318402749102298085782632582905842891895004401805420978954918664305648106081374688226831075674068277661040993518115385647542722578375848565705214953906901678365855166208800612993148664095895708568650622151922899133138295569621596526351449699220074631675266180973522051242273627657304984080382158688138744443533207333566413097793332815978812567169396596909246459740101264613952033166846632825889017295177680590065260996935109937070298939470848669398952898258618418416659449535205493705095134940723635650133464827736959202546797423356946364695477822634850334431610031868588469552967707781668022935620022042259119129837230261701792331881564926978749307600838345916648920636757335933978266530964708182121728371268453006669308196617460318242065722664593145831276672207618993287961147191379657227931785499286369264059270954541769291185538343244148634999275545788561817292994813171411353048292938670858577079552192042578608132044385217281340657924489301596512417082921771754420653234976894400624494248921410620026699451485981578699004265620080935629687733455204442048951022907797433623596923061201174731641492870718500839850316812551062838190463058295537223837872231011229111547494465809352400816008979923814326485293677884511274749529965276059369470167488962377833377109528643257893351727867480139021152134391902570978124804307384159991037387068761269716728098459025455848925832057270985769552498446739979110666208157790288372330738173971580490900803282311462230025766714241237477061523251025848789552826084494768149204751410442245811103072360594359646539549572672679628672684127434231966976490014974868761956900027215666786162952638152959660862188506686825704467614803739245513720221025695443376079544851594441150417003186241375728668879426689045748981440659437296857535855348731870938982483656984026901709684497758366715017602392337222273399202130543814611339963001505563368721497455194915620290725049859069543262699436742683089879084697725466162876326291189035018140289322544468882553270409758828542951185097486245508457072953796541896812851748698034933313839261607372875986044626565181476013054335879905393222318185600652160798559861268611466314285889466932752222588228195260771797394771457830609400082114235896994891110377186866800897927158341579538551054408970437249089482607729425176363065186056409439885714376898775637132168795160749043094376938088389935396038536643867869333441282895185428253924997550731021083963107668199964367727530501377571404566120184181577427569150876999782007231062740558179357322845355356682741037113794075755151953574207182431930500415296499847256730234017311968980116676210702622912415789701509581448552176353128353398627075578773244011541042050937279722947479745212619063213975746794352920519654536848986796050313007962554469320830294692958793029646908017839418667266015475341531123319193131174526135005402840898038421498341174060257227439685368691229288366452550570764512341586264062912091142433673498589699591046448248896320616691521830535508324155096595266341786595689534654804540224302786836156802295181203200744985711347024209252938416844632775545981140487311593832053547031051333751095459566439593700322195515333673137331267152079817489345080163238874439607414912398276210065292911907059372674357082833681112488496554920039378297094931262116627543832923700976829927338630882025920899833331755884779153384470652545653487860855375672208458985239558850908346637226746125942849207175001954456194669501741703425543763941703611365366667038083395011642870609682373692906422045608946593113536082445673308834946261831929861264378267609382755566529397732542498946737273687741691293983275790733808098836704844439146265114864521850998150402079440995430073130865231702795178865835686424482307751108035920546871061141438704587681726989614810687952499864932526575096187653256004201792484867059270709631848156174071687389752918517994296103578242894172603416719586901305537768283458417924133896061932284955521356200960738268382792629307560060017079060659794273944116687312505442919392553969930973934357772077957144958159108768001785631109754449530844509578987006473494380191871673213950242051672206306608780700669583162670333908629918483235108182420680012754105725393771111787428787010760169731333687062441485918086957655617179898970043131536905787206784525501571075634975607511168323420000246054560722267800976841998599787041846328018183803740525754736097345315582597268577821763730728507143013514373962918606353991073683265205289488331776529948350826249212917445209980885055530293526545859995740672949053170266387858277180636628247098096533778320246782370125935380984453019248535787643567664408876699281412156472047813722864105602541587187828220927537483780443584214876753058395393616599426620075175426765918625057713427096721050837893485026298391702529721548034045763035344509319348039219596639439852414963068989761221970998801647428626700980451805877535020943271335956413463213303767762030117298266695660707632229589753690197943446399804062876058321166240502262485917750633547972188288592620287444772762202819861579463261034392520489080498649835012511050572937145612766945956667438867622007872067951413300318447249860569346696655914874853076826849702624626545683474696933326768562383209640125715425511289652854802771167853492163666029718499796885835792253794813556435296482123100545026367865262904572895582846362594938175175548100396570960701344185974915354526218401354860914196012673139645387850029493384063058519507528417443725509063327815323287154414860797229788028916723712385831255030797541705305918309665792551602238075364103155980172865776016699471694549968736150942824056625002954680241737899581574228435509625798290203971669129583088217625074030507279760084473755575070864561760835944670103436932607023801698206085933301965827096161388870927813045166692397314469442605673906351544502177993074546236695409720537018325473068628715226706626366462786160513103400193603597411757984647884403363397513846921397840213660084483600164745483941014143749926033653903585225281991518933186271091820463643394874794987044840052951573383329272168514198583115328260284105030230824324264591442561075927997287542018927255287692389057811520585503535522792545946551000798988536886605832396770869426289663305756585751982823390143139796331964984811156097766424497893507595131436882793833574165050128628453218212110299763476021615072686839351933770935279969377252992110222855695123179108500462632328852765673010800610025609827184893187708352023961658250819691283889945639829019750106081999216472915207554594361571235627654334548830209425537729534128478434800759850183472036613023679300275642792835011557968285191795594984788215674904036418661328724316022925696814218502101789169094005419281053284295374583156353748694328375953718286886346999578468802420054580795039660764988886163584284492269514357367748090664894697466692606745085996760450933876665658503576374927184201907786392348546757465451932092308711476891037989181247043596651311410672765124278437710477391673746896255084522753789722655745163098240056872331704047396276051465066888468989908395267889250499738166043219231601179962100702078276267657454966357451131746534542253112176119313247371922496446814724707721570069099697121149660981221126327625064802894726267475586436731847025580093875472207497754721986810433312958278841359105667234931055357705371981822137169772223035110284592349477094473368463722756764490247684541176156662816223217610153266885654116778367516085731911860252172380972074409406450741488869025529552269238268354218522767959112567375346132630904649098398089833884918048703023848076690842597059009003651779094695666781379768160926350339566744100765891230794402063849569538702405921127642546378365824737584180304313909888833448788830299266254939262239535598421740177820961531143576123373656818132928975585664592812247561585333015157875543341256957180296417015969440724470972607253640974504479426874044428304992701424031250681796858873809539249878307012404845263989507715971437518382517642080223855179938248280639688970592188493615190574562151569012395125262997035646903921059586632833722747069186296815608908679031732134909347831444762936510323653407574567624174726662587135132896841044629561378771420542450514373287517162283294389331860197403044009996034679225603391765086334923150002309187531407733356727642511708716451729564229349687854037311507662349193605581964059068466477910177485747850577516329641420144944267664079755699813834802288279595095682763279597829984985703268534239442526293117172993231774577269431349904819162498736312630815233573353791148218557745050450335510436683543290375589762959261951348197487552946360307107531070368470678230932315832900819316760913716658236771016449867596976368622314232481714429571251726159896052873633932929344034789409729960437340407333119259726128249385549340435581714950477784899195348444367140636838842024463328542461079281301022269416827714795686803029227278493024716826407541945155520097337195186479584664029375352069422629092151899892051461137341063194173858099442714847994764745818584956016130827240901946426305962420196193806756693448044342264237738652999082183320147930979685309728897893094256816437635091877113014926261887603140009862058333956226952843863958608938028858312076964743738395344285961140233316781842167205123356250902953079624265341914734967319398400850767977013897913873759516803114872413415882627622193998128389781952435949950148221235811498267465746524110336257416444180932342347124310585635099743390931471295179801647358285280324852238704502714985867576049172241138645019229098327434453478859716688513702690211140315903614665995590861656314382113062295896236653997611832270814239191896711089344853487400884463977203343726048013295412710759419184917384347512023513372338716654850326514946399991810355443551242839490783682765818588683962629319849239975073929910968668474815057376835458843889779257659144280477476391150232432461065039870710128480432674845012752453182162103358975480616304163998883520923625674322728031335153378599132243776403734461882187672555843684151218364053634778858828217163845077790454220590170835591623330312817524082049187986033045417589120955534937231469208007588325153095778394767221569526159193545254488433240411907016909711795044890092188977700570921252855313073670708622945957590546423298023555982243400503959729957599296272369965020302191556480415903716192953816764472990141623976601525953047082302127126843201865789032161311047274130645326908242016910864582794565125369715841595288770538960488351955592161503835765593280339485543502570550330997691772101592176637282688415776640514740192036624199644022350507793615165285020157304705466596225080339636484016527143857996582345225731410024236055214876323177491573550961416800524716497247670682346559189087407615450164565769111455741311868547428883834392590353634171361776147837322991941033749293198548973899515103264976116100454935103715411379891430647288195957165715872840729628792878296554372155497862876976510351975157147250371562480381986391396365772010938528538186711929765245694950731432300933183925710315660953373782078191477193241396439440213711881254011263434055568335329095728452003567235099338492043872493450677644788796606098727466858187679580265849523049432944274763460520473356020317074906086442815342755928933197817499531622171659576209428145990368251200153582552657306851163387546333100159119299867631901577222427414126616638869807095104307815903906469042210260018952790276944982961448242169165889360508811525455213732580972124341285845789673277562093686732504682317040881917562151254554424378449483183900478514742886593471762067505983106194198610577675605457046805664464465668599235320523861376864586108910678944706230093161502230313428701358682553867402380315012711176151275200406283797271680148059538398701277159728326649680562602874148319069929056845194778953488585879797777105174515144451572795801047551283941128164991535099395373373068442003474171280741197301348504621920751956053646615208456106445344466150121427802847570055701625816291589673967349316957606748210769519696476615114181803733383636001092959188428955563969954551316612860079862072367437820802355779172663990742055053321524959015141559986719239564565538806532568362536330836848951352766334936007786293074564480266392101129599215557401447950526219891300449362296780847217693328202862256351407888371621692708665890134986141298446443687272500034555286025337111699552846769482301135639305778047740956748791186035683890871291859207478964497934071421616914073401582076396853203255456764788099635687163470366361895771160989965077140358900975599733178985631134329637652752706276969979062982125650958757053458781752316830819196735404216148982335201455905653873851344549230606226420806201823631678129519764098358330370125967594701178757110241706150184512627256091372393435004282054145266089434926444831413099693260220292439433614490180608462334436844487896032760007444020472958683123251293211562369257098128427188324172406912684287654069831223302409425199714264389964692501085124200820804612826545887368628837930873409827898888694757191743677635052985797637394376163408224342926739471668618024827498005762960771465529227823268820152225851510005099727095265150898361759775858766900907681912598089364248315711783438239822030416149398084917907646518910811679431341761857471724297161713833963368582746923113792248711980102313524634819254339607495238028467353036058368711222268293798700554164259468034818154625800879865752594617580765457278274671228048892407562476421558500154082452422469596822435093245876838022323242635919761476342912442908338466945608081640016266376246970083481390769644597472461823891174320347695693579667181338179515940096248265583821451852475632549905830604392796802499597867468800390239309979234113904526588461507054144154665004849107729548336668069918412491708546578419676907532721470416779401497497128102688635626500555126589988605166659111971868318028684923694049293299808357973177108890718010711215725593284362909782444139594366804667309679445268690596017390211077727676529791956188715589936952505695408947332987113866783642672501154272292960518901081562010275700900276538717847259994852579091873382198928372253038179787037049609624373965114485047754663967546636936753256762125617508038626904345242119279423118229378101169484150368415721052177735456282645242012031523749576054241786616293079681767602406494956852188006131624716869832934621165709708240207028474704691412824151440314193598318248465464447119130487940524972063516699113170567229591154371757393437514898868072889737460499297382903540557203454298610323998338456456913111207952230697687170225604610020740028192957389093083739222149702946647773785188000262924193797194037556065616553142715570930095234778577896326270430737898202360120710703112660442393927834722835380968693353822478588795270651694594459385531926726613233091115178031188447716088429758121173973516967382725610367293173469749940553666339008049840959388610747632185613328954893962649766950599037485812225873252717592509772648170539087904360782592182714454199301664109344520764343907421859696497710512742160966007140573052116365929795417376114853605874402013937518140353798756293846622161262316651848446512199330614643613014499154907720927102144576154523900353105985444865711948213650087881110983545226082267221300966505579032482247075687519343792160693006705925454077241355644875252408055991029433353110230261870630014245593505947790496794479428731438041261826790277449044029417707233028168780395747272905200214785531857598223719237705257229506346689163144930731576444907829940981880777392813988969755655591819919382252628297472005509600812249717915957622239842088006986123441250018465712948456031543342801721804990730856315020127067307573769367404584097042041764112730063995135396179828868521506464520014482246912750143839800903507467002272687222448308625464660640215888676036732610516011240103001174576149902462424209235665031389003924890485279394746744658822445987883294134365606788491159082089287319216102797196766007099644187296813181667364611626392343466709247328303381706986311918076695021959503467056963731430783615110897775723390923800765853634573228843207460878445962168884486192296141972892027618425328635132071732317789509731125081879242050552363732596853334686082484190167702851161735770161232482415942526115068676402826373485930953498835206109547073920240191772584586290013119585513950876018756253102226943895447952843989438389746594629226312159832610396846721345414280718909113474000311792592375768675218113053131056195449641145195207781753574537502028780925042490123181166685348966604905041495084447381184539603288915202736655019252982604285428343518366389280090385753486810800988222461938322430954190507183646074801306409204925914458214116304655862098457502610157911532107055577685300340136777830805402429597994542276861072031574583520727180402628741551621623080854136783668425421858368518338214861618128765787816209735757542573423922269028705239790132490322370304714836085942681621520146896868264425602345334536954388697556132465081081858363887518751661825575342749866744571597298811898576709221097181619043431345827667046870969101399712824494561215296007996029068479138406996305489579786386739863680527638968846320191467262015921170830862035025192302556852031712865185721849612540448947651910103643938332222281461013731069987066691019277998497291437453051660471815610053838763719141053546315761029956704806596114447006625683246140454026992010866685087482395780375176508968143200591209099714025465755449356031212043431854536413268201482040467230000849535132826521523563963174952931316812234524889286893516314676242496528245418089955961254432110208078086791054836600712570873436790910455017557833989434653025027855309354769086559736097334069810813103919592119642440414471848844865824231335630188190283049692564076109269727831004451812201685048156014187824011978309986038182608459063024815899187203473402409514331168685646968383549797477126473940411871832201476876992219182906995033608752548934059823617564379486563403219643226245274910139686710265524229349564248205324319825851513499005486170901276832501275184582843639177245542970409538805350746549876986308451534338944206060693420863005329469040457086804309218874105201504619405608913290805266931842461919210585081467605266883813757829253630077351542990637981338471540754387345439022294054815093850038098234677993093511543273683259050765327079482842464529756752187867322720694879508807778551681524219764406512400494216699934398080847032886913424695472492387316764246355791008384443641856044058129705042840259767098559632803531582441029301792487100141175656259979431539318573403908780544208373944940549015287118433789081205487553483237498011101740797863150212951688975853256632209398028873766622992596324117536634309685010281444130200427080062593834898232623923719362481249121255767698995162304667206884428275006593770205385008800076755417574538090941960679415779269606946473747854144188484795860451782527343810835226990698333160501347512911977719992609403920749211691107009297320179519898414496059072214379814118283988843656502947215539092884053716799107513725910823809681011156061268328615324796305045227705690051163033476790389372428672463897490496663011382065675121750202827868132647086236693817716864546460113760421926350529730193178837845055077324171616967967716570267006669355819670509382703487040672048945543804547067923902556431853854902991855515323630042365329738923375885936006999837946399868952197196038360617151704075060619532404747335916200683151635662988458507065970641994031528694557240854694494777524521959580946509356447521062147217883001272715114734760285280802358079426179100289072419414627695591877020540579331464343634236434828941945867681681623834566288689620947972781901166954764847791451979827853503979967589418704586692206408202685829918289881022524609560750754754159558573818978919070727053550684428814908649883356154501445528472631777291577358468136782407954739890182818765943878323263051249643961125456888299349601259803246823005528833651081809849561198900622054641280063348986844158669224388807125658450464567146987512055658188886023651684279887025462367296772157062563580068948991442708172619075498961779452609752674040007950626705756539694175390502069341508252486507381576251964171452323548828599283837653908830223172446540525692611567433958134005250381911671194641151314243383622286643764882089579120516839253573624030600405558901272958531637436201132816142192318926643546508352763423503716802593077697401016407147096209491824047183436620860365369885100159886710987331654121053358669649924067134929684168328741391586781681418825594731029838429316946099782714332388583258093538765385254375752305547070304342559306890024974836647021208506115511929877665951391122565730809742998065220866989927666687906287361242084348304293089793190897615975190816590067816857115852758192229619393892011084728406561535396143965690740981430692769599999867166709676643375952801287594798880384138642304005716455724967512845557110977585213268962547757320247260237328422486177270118199164409919025045965312693863123760435637405796426427906768632556597990809234685123395256741712384090448937147699720371229510809845127085430531743962467836304765961544362676607904901279489633768972656969989686188011210225426585496895492065197660881775755128934470987051223474193677019437976179581732506203111796114745880249713278423680122538014382171840890270866712989181861851264621340786394894684406455137699526108883116174849363811488423209786848456038450260726423302563136402440208761244154100708025876732191216524602189077635487387353755298323720873331782207073427541724779958149496860262512846491142935580630083268929644069907767842535168519208101615225333182504852116692863226953562473752200868318428604951140195962446972423444045324527106290648005308081839185021752833370608105628212946784380542280928333467098595985156644245574792732907611709897181717190023536214198829937886796356268630401239466045907191447660212802943130757398306119027724388706047982156516692447596962139964101299710650016044401659486556566346307678858192942998433239552271582643752066741956297542197660999913984641120811553390990023999311280100303245155793081828369065500057820229820455889728938448378550318550353852990722231922805462920709179711303674230861759668596340954187590602278305561105310559842269235104010738391179404582966166935027396087552445653229242914522156384667795880406950234726116401326239555471040994276983760823544127120835228901711425198406331084516083826897754887028066371218475761091777870302214518970921102161736260871700931858425003481737429304856896351297538146274616393172295784108209113387741892200050745984129949158205436106228524480403576588067066321355546111250433137417295756215151531967237930369812750307440429243225238280363972006588556485015872835216876961606133867231935204048212190142162340451787141297967153996541906435019431525206505857471754946907089902248646827619216191736738545923572029083096866089853909951961579298081288940796486353420433812242887683288860674495383972408390408110256317948474372027823681064119209133976834773640246546942814177212272407204070490512529943070889842323051413167915598378679945255551802193383997461540886143171049608582424383393457938228656964169333225587383158707313890320867445353363708882936175777907925666287207750879248121468738265443798908307954552857482721754776453635763905792269559866082199817676997498414015046251267861463433821858056012241089416817655120518087285995741070035554933316157651212458299098646534318604521184389679815871467265652840722144368299365327103704122253934742277395397783980080922373793749805631441238143020803040127560797892081973431228075523991323634353555665836457201996944230245616798419005848177382343287621590348807973302624934989360633851279141352002455242897445171986233296736576027102592574437592251734743579601202608634969690305097957101929894619067525700183805489175847989374173284330415006538312750669694520148499500004559809336929517347248964032772120067830160726360089290479317668141929665955687664202312304156481623441162584333543347678445558903277043056642701211190896897661068420802803753521820923528553408478006886147192721323098620925798196326902827962871945819900442544231766874531038860315178699269161544930794091457863138306256560086634844479091767881485596615522472178881111126100943979628341068797768297233859900465869935265653451952936554931424476270860575307373607855428659352131596582940230697412180403015068145258047411425904208388743196406606989962406195683897047719921573056530933865450449334345204477919936673865981980038860240596988670507329813413465652807018956878627918158525677065467449452874814168313843025630385611890022552409609066045844006301729235767716008246068391656190573349189898706811174499197013886970699574374110971948645453646610600029693963723802547791257492181281904329353443566516481025475152563120201064291720875307045862566798482328691558447739970757652351892482044787832187157789180476318483405870136457073932768804890939221829227345228757401713961863040764993142695349779309153275659590739374086235527542548693908204283116690972854627806988601059264793017596211121002405568864946508161318286027612072623500429852402356511758505445326853456101793123173547792665183820959883443778369008218163395865870603798800171539053694171402512675021871356318388196163447192074421465637625696231791444369923783062754328375761457590945687288374246843692494638348549127677453667972349428030114927409871212948114027641087661840305055872014748842218920651798425224313420879142843216131034726339758607461625767176883410915638912215124704224780556708503860501178435758852822034254715388919194013770710165544777965080108556303385830044065080942558451431833688628269923328426010200482312363344067000892941576026571176581178675211277671863399446530766749637448045296737263525633840945832160623470102605336357436204322431475073654885024957955010674394131854765217565291512575720346280823328520528350138673832807245860517923832682388725799115800691609594545474009339646768275655682512109874076208882723257585752056993408642061439287563059525791841515944728270892748205236163931301169058469241056207566032821564578566908174593062645514754344543584046337854921281409558312435638008498468586601121550399871213795173101697816180170649118118593428203940041177940482486217000607173363369194851968986455862143023159849023804608636431190738328607048038774591350151771059462484384853252327354347941489416070368160433648897633017643961631938471907108906436089813765884852620100457952954022271972544478212998906021791333461363846896469906455611053435116566334712422845573973742686249796946866758125204613270609837511559401306563102551764514948419987119191462360354708840069414473373546911979066087217981624234068175247003229655918135851540730720099831068445778560461808382292546125324547013509495387292976474555877814366833592201053626918803048445164143019835653289413182296962583897449504798083640725672724809105329550457412653872912034856700074492504240478106046875311339839618295681619528145400975390649731688524142404649941985817467757013464961232602637569733121873028024485096721187095404505448213459604082136634047418120940218878454881035531827393112798169033934751830320913457215857080848785606335940165241343232746637562776258224780969471821078241277008149072631857847115763602215537846621273820015177207569389693282222901067723995073845001386603031072981305208638538901112970435498396062907845908379361376572843046632607249081181112644379944148882071694302626062565002484185682952203024741754639080363247840520560198983994448451454427357909086842013182247337404659402043253342692916087921813104023854793794480002134038901227316854158534021046048655840180544663226508238160346721765985713109703866860510606243190485750298507203474775322785301547168966958855720633157055108780308956723565779140190586738017307534664063483659471247826313018733619826747035931975086523596899104893721071057586874800575683738904204848740487212600279348598645090278861338980106507447050116982024664420828009691804557647439303049529314917620535534320124094140851688114459683498507641577399294091796973727540787574849832852636867000275003770909648366898303442761261775297082514836137872899801760850834064159550563278658178491103685390369807233055793988717702189573602003928463914835586021965739260806567564561194152758928549121717980111474184181383246849146738272313732637867180084453398424460991946924094328676380629847101192407622687678715895843355927230918225283207801703222602819504185074252895729589449129734403649314706388797184581664889471421542076949100209999941515876776982639137980214418458460047731581073437745890311809020261470250494825131509429649342640661730929209830065155539500635975062573940077801175530406364156899178522330548755963023988508613127629669375229642992637196713309283608768927142358001049199193660591200031873776476979937850798689404423112518662182616214848693347989294729583216330789269446032195971309582403328286259954221696611048214100715828042511610857304713086557485145262385519757527037276813699591115972011078276080235682734989348064941793854316112717482212159840019293956676596319193892061609600338998645617366601127460862779231089603587574023344567567659979920804451918364664002560966178825135707016934336341036455046056778090486949808310965425635393798210314528613176522380926306170012257391645428818184848226042239929954070571334502513290659159771552410625860731892915178518760300606240181255796682154062121640194203019667011448944237622526628327214763484615885066821134542734985220373970944457516528627630872512180194438598113788943244713099678250090373038491122479971381694260856738030386409727274312788016396686845135883185047366929200854526417989502408309286812681757250376373599174687925413719855687775695887077958376743138526233780008552972271569811151736194508689365545599793074992248533696241599987076543694147048994521249309567818085067900772069905516230831397884911416983532022599684726291557628148780051563129018033923024763283571487190917425009260376896673369065645912819222997215385653303740454198295144281922710490531111386183912672298140631362007119678058621102212656043162175597496390262701153452123637332093982435546193538256337231308155826539429496620436611106437227461387546149175026078662054336687105863854647938558514848608641241476256583766045345041286008923287766025187059148636735960447025201184787578217909472016217266797336336455014389100790410072554391672794917938714592277630655425537224580474973426523144514699615404372948256516207379423892648495516879457837059679419398266288998412154872944406479148087296348006523637669466966777019541562572745713097616901603159500669268791914838036160295603676220239182962186224493310409613124141019078385399435943631919755511403391138848773178224643297162638713305992473067546778843625713411602499240187909548841273759566752509616681903994007834569740100502546834898960790064581676365726782189017144655981809588470584972675906785717625421123588712043845542981116426803539086689631206638998953254807119675297810117713614782304447188079949191826306358421138146514018479122522191974639286582999887649852921813055373167687625595109023503235188466980000572034887392292082920423502378898589062672726563171073517919799139368894458755652578470578744762892995888683059337296160793013562108213530119267864168425875667735672044388357281580746021750647863959645106124857792461555347295168129600337795458769449525247454892709429675153218239177518477116113919662330021002431568866690616119522102922618509596405939336698649004214939028271735851482911197363894280549313903453083604864509720689217602461889159575723035211980730713200321970017854375064071652993482830864750171872905429568128226012261809585205104912191344877250400479333530896302673178258526729802042884055679405126435227190636151009021665812965148109892652499785463046109656038291720243529732790538095784252755537256660656420098192737850818985501659399376515268904033048191886622729079546071731388602601591080966499667669864514207849758779469662679324326928724093552278450856683106109437228242184735573068814612146809775478617567239015520322443002686106376893590025865069281124911152344267408899010954380442618479220628449377725434434477958227410265869837320348292534656994690813284824152403746355692882753005687875358515711927851364629087779512486119903929289283555419679263098549191773719346372527757664993452099564721230496750516995907240476036341223427808371754336444779390878465509170977982146657891990237339270680419700955786014792218034183741248563029484073893528048566446465719995651265828702389107961641772857959800529064759972027159772462645778543268605404706123182495568886606458551758045480779921874968318929989325513308338028407979578785801985599534553568600016013614431478844870751876999743625347221775915587877947241263515989144899808343551917060900186243110911624692592008742901528357280041974416295797164801613398200841112353912718806716009147541209884803205994977662661330361100748515070368842610973630856701625036426202355988517592021370189785677367781571076052129313986930556218027477288606042288108684019013684655509896018914956230481282607627319094162562458002742578131944145415855207483164771616526996210209199752970580519258195172184044326124957631345221446659913784264710037263906672593416306893723995488061281905610048602862540455698224063319363308146644282903291862473871799174397336021357835182057921680319833358266558285014703737382973397725763566037017944847166781496799826808404174863318094644205091961524696167931007074710434699003199025528867087021076192513271326803286719837259482152897449317718237400885850473480769070011847869728187001541929467413626099472753023451913803336763786258226864330415779870427905229434473515500381333716371331983343400434606183093969180934099601007797977635307856571725248127990534318236053325679688606783574335714733071863189255986309948341160007532707418799100394951489718870205917606266804626312243030401744341084578927126735865836339293722656217456920393741708762808372777354209882515463004035555572955420582405801679981020345018108736492462670407782012056935282625827260035279886806564661761765252996454507811582912480443305979865548419668083183387124414961600616093582325592967804417123715282203882743175397126929427056286760050955174098234887422151859164024201993931933962904559188401414778059543088544874736200272100117984087701442623437873284965857099167644710823484496000533472569809042101789259439480307454125025136080388372799213545581649966534489048703430091362376721689302897060346242427124808078152148971059942442295347383598574559072367618919550711354323292498717061204120735531051538587382494369177790627169487234381586985656179026901529670733257865138262322765846064140983879750243820391050268407543661308399730662761993113609539111148402277167536268447427554939726158008337174900695655420007475689870225590798172709418804505456136441635143092025397959243239349884105332597202152008125569046407449499549746943788366306612821037752089381738282274418666504512110250641230133366155803622729901709188722810264135349381506977466998988081058183155734426237787340962113476883339493815167936302329741975904893339720391707351151674325690090199592091128984590245867100221494213811039139542562622277644230642260195159466154890421638988942232185555516361443723682211023506263998948574808103638068158181428314209010978484672393816368360640978003649155783497623540091481048895946324095902187675126673684463796651818499187435929553964233096252941872008193055043268483631104645263802635488552578544966583678835766161064432196938161102537495717268351508590008784541248171351421472591985918631932899589250871007568144506147416806157980933359011133748566220642268967924221279104208592403246805268310947131344762494927448649129289463733220744559105896497101536151242187115477635755881400041832814148244414522633458038909928168867715561740441970347014521296230549069269353521447555699522641176843029172864090699768203589083587777938367213815689783182787129043942141144821398885515357488591844834481498937513514119843499043364022894420026508761852225725844972366746905081303484002694961211756417287147303014612604651615768886590623230234882139962065505507578932192821943299105573266683705475647541087488691253662966136812273602677795222429981162882993147126468325016445477171225896044505706681600286231707343346550954696486651597114762810729616864988936464141673036075867531157965029534254170740194278783213715438958279222632485679749428024806580543077150594829954441131157146377673588049569001595598725553642992971385025391707175249197592068903543123412471274452325991192948787999152194479410800124809451910984161103475795365298322951642666488992164930630441668582992011334717311087514273515383146413439368914284440975819089166445933128166640257158003062472079930549075626827089121100610766964591973059399926017731937083801781888726184937130342207939148509217560492129036011911497564515453607091298650633610748294116709831752842406424436184942496635942392189876600549406229887557714384431907409126959775782526519284705527105093067506048355723193818528851963671286066031711582150608131700500324319065105416630679131344843838145856489481986635018653016285204066974085980211504759088348804559405579175938947091894273543392726755552130884271738360471059311048819864815093409775240163030836962409777528299317859178280417177407723680693233927392085509505095065109718987442322214732203408704480617211177415977724325127889615280526149232993413897340771079938134754057474185140471376885625729573937486118831258945630954830388842379205149011710993005899591923336235915821646059954619418915319806248946381957412952805500644371289216104765194140531008294326561212850856878165687800443403321809091711500427554697572794712567916283388281156745507263794370739917114503317321323546406980905283271975863206186002137938355988911814252358047891705801402806442515086650945285621179544008336255141462555062436002275920585947304857543946986428492323003804618878101669023490351170177768771821333816077661243701931682772407097376831390979476206817646786974138975290874962237516776994233903709357821745288137083761706437848221607982394781684662708967005190499535934080471691460774793358689022150875141593711450573977242022816966050858948546215433385800369203859754471136786493381779891374166588349284602692404787733811367531633125743624210395489211426935814080818055320908615750197225468303140968071925573244219234773264081244600187328681459105500197678785043158469389494970969488155261961335248400730485658209155516700341559510927939653119388191591468231739051821247953211948481464736876976390224982661474972457003245567967155117157154057315913563368610120163111654799006992071955561951496069093938095467517480114268474649865609888756365749090586646050819541974789572916007917395337368742673479657947180036634041875247776477029267727112375969268001176625030088831459809047729232549814862327243452414425603153913661967925804432271495450824605444868937228922784498705182532649494770297052518403911655031004030511650818823292906440605845793951413173181277359964702118173232390896644877300353000579944871567408403942091509321894099079170737544887704967793180934753312583510225787917209815126913076678378782170622192205033816027988861350290207036624455846257252217414335401201986715916028716073002867058627043171696740230984197331020819203469455771024400918045216073253001619168649499937034190779900484992411660544292970766397902733882844502235038036515156830818707847337263497727840742544243787043839622386104466422433526143744297205338322180304206090330569625594636529011785011200860613059643155181623461082316772789363847548934080359086942339578425869335530086822844050269779178892067489328531627885116917840495493422220308962736524835538144154957608107158074953686613885693083990230208537895707487177716138857434300198991793553742708191069654775842921019128038835824675790508713596553241974512343832329076655002496357179575372218996513424582830780884745277370240959688093096717435837409991442526116833325291309815655574497977445940475229104979658685172393890748235731137555247371747265836656027758006248374301066441241695693602215003815290732208647009432679525601847258425987153277152379330287593218894814913432294067076706178439421778199041985184447040388096288267679093664033571193995472560033362213392519875183852306612278750309642286198437625622345089647132806316568420944828036061635776128671557912580323323949143098474004192791414902373642180294352668105804460777798577797431079928102831553173059684449187993011749776874882432957680041831218679723623281716957297191290052899685189992263763022968392207341827129748024142596293167609181960743184653178729585967518546071142129387197271809488382197187473511505284501225840858623478453102151250345058063768951391122895536229346903226253873107496319681463053826759331976392638101163088082420276512512490863591736245652333602580908287331296603487852192210593100439596568892748557211219124123154093019348929064964808413272001796571271051127245354651256204605362281122224922135066316191185288381218767907070150382969365174910597291697228531891209588198622926167484335209792673091090142656662801530531580819261954619898026254558076955609347137731266877867574385944213866626484805484328893771025171001531866271641143840836234793542434273696866568390588918767887627287284204728584792769711584147932586646743430823608523588057195597000817618146525127149430740954626721013240186271500660965013265626491359839471009690644332612909372997985426478679931720403614441950498501886034844633836537078853951374894740801692314937525486955946150886458680727092421849082286757799253275263060095348094491107940995383509169602283769119090728059071661325884047119486565487827486507683923099767296388025371733528152314561193805750813652563793270578414316011022109693305134731525721566014071706692913449254030271968001190623565604764087120585835276217933969597280364906420862597477563866636140393512375134962580571579669462058188907517845711136997341025257536265193992511345737587767830959825886795239741324806711491908807892045698555941033838517189741963896621956994333309428042497122076553786494054027482377978255540331906571799920137978102977690729169306344356073593815062108161976558159545515467297177512999147441651774787652629884218422146552464119702371397250421811674264849195794684624277840567328654635439618430981719512498987247238759615543292841136335088766888022010960186770234196707797424185101854235843114494758061711229740532410397009069510584728199204316406576748489244613814820033001509676741026632801136686982561165865317633999711517023400069108650655360292035145649194225189790391360263322770698417007595598275805934059643589219337638724932635709327596963369363536539780919197989380779889267872536272619337437425680253691713163112947411051310745545887449488269299874199513191524414322547146365323040616733471138333349655913976051855230326656892165951215630582270135019107402739289321114538847876524730030633544658927231031193756841954234251429823959583674302045006833758548676816840997791292823470586730387493907932874887848374628980007532412293998957403501139654544437871356046213400405529369227280596375313256245255355639414373487232662560686769131962027324876099347383570304999226358363414278474292736378111043917434759014051115276999208799064377416315927977245397453605763074607862313785175997263251917842452128648377196939100030610486232747373824237721249081059584035610446401376106949226700026888629117605072960377416552517415373520872303174341958064160417972308952985430086125283115842361748903395706041274455817748786658839945012232175864573668125265522267407789964537456737066243131835905167336663296383042815168744364307186719437578247970614624272418406047386555669233251014155426283291555417660965061961225009570338991703998451441897121091664896658504242159838238577900401980225362913603913903710290948919446048613477748492688150219421689912039225696205478912079675018912042309143581867697573692411752888200616579092461977996975681960376441865189941480006698457787992212495474842744136448564378028813374523497191162410712130261971119056323975202721054665888593375660121506658576376358888334191388695405704310101919945891391328639405809181836534410895942782001515380647100892402528318438060348991264837506221738674630231486751466357512692786990792973410640557305819629135335345943127089436979926126550953027037043827248008207526128836600108165602241242031172622032722808214883938605860546833222984732280955402437705377206074351917219162144191977587152868892388023458541744531143685523906786386669746175515250070129289797117792415900838033636444163941990494318721331096295855681192420827525302622442506051413903578832414601088699491020491633149065727556949027336626001332568193613092447297120629462249709697416473409874598875252433571760984310119197648917427688691092788196602178868305107749935814276543994408186467130729736685702134451974098833690973116947424751770147343053280782652051068562228074578119456355482288344156161025578223753189897458301222638847834057078179827382393901016435046163542971092151316052957139589451462289069308382804957561428938149636739285714396150014530555475796531592827181981127092724372650718671020079966423436207422704610264032190895759595822695257911634440135857808777697930435156300598099685938958541904711268114091659890774839225102602637744521999461032263760322056097773292016575769201008942319717605653656945136729403168415727731423226450939526400865340536140491669982141728626674738822763266797319776289180797551159678936466317623098493029307079779272270180342343176389179849802396857689949560859999966950232816890914618151570041025860991361534967377518130716653829268826938716343132997852493673360370876837053625162396929781046984954253549211121353426907757267273585949865683748754085109034111497541773556273562865046781055183403336477027342687893461895689343064278123635057506087823107316385111133391676448023944874925476060530051033395219395583150331281338746247700650887538200971251399000017920653837329057566966629907544121252851058252326995965859316844869586708187067942214505973944180131170897210616748955467419015814287999174019014414061958130881392179805587583526309496864851787456295102306648012845747570852765821439989213395081608316435285948610115084411065796674197846943661061743996239649869692505704753236963957168596459744812828037116038018740628094724423132590641137632010838505531084642826262329069626677971237621776542184817733249466796213342212336254531107552039110486307399623154242758787516640405977450406690773598736875967159351824790017459840964038943709687168351981135341197361704066596965834247304010945619641262514080351219779221789951228460416239711412954487217225729442403460605150942647210676155405656946035095294802231185737334630062639701083506405407507645916195453652747625485546819897998328678249557870653954700011306824202212722582604067795612492206414609487161894527980842603087765146172236805201177191569292815210854381512619354223593920811419552417127616369508220775542779806335539079831208802598890611548943172980690300685265555235083284693522736517519894646685599427386293663219779127334692404426141383124961663726477752439656583935456147198209545134939086726276078108647395563220726647988193869300386212588330059347345740700314092632421133032653563808698335234275711430769861120423487469113460560225313085358671919085272208217463263247440914193902070746470227941949273042856809078465926604200381291247991241400538853211351320001330482050255800872819151791134475740348501115226744033729851150136505289631175430754436038125618961451613534819873095907996582798122064272670066344139249118249408700057287376487220467332993134029867637720677758881791408906198302221698999775367093776999533330867579230721448379180443361840766589973161247116264263254702386550613253603643424384948369138349389527386604040996966304297950023994364965443851883418767624282594178017160705517624955266537677368148900338320409400580806161109352091726494630535665281147525485142604083973372458329662662864718211794087461932654104662668499740726034341303398084364356193494067856111664172395513564301709770625816862554389007359589866858848790935387941472151807592288184338520814544734276813133657697147350205937066681078454301970882236796794853762722295973898268880859023245281174077999615408657087620610198769764718220575101797921289328739038809387377776913333528749159857748806283651339040835076368765762552860843231331754314849377731443824530474477025969579863515017088192225294849372199306038462193563860978810460274116579355809581441833770876719223064677434933976374956980666353893506567988814868954423051184900049651548809794802785128389420416052080566405933926776070614973361370702249041627068563813533212865095297904990572826235012669915366386095482733973462159328143414565923218859476899151705044205438035484163658568608554375523482764709396770816542023788328531166159742367882271278975137871692366354387709708296946575444698971801897871406774169637710629118646628476515825453884485868336537412790265891626090993133875461016515282965477911747959061938339720869528279597005578726634935474528386416609780921571426440671949706855389382145739756774424132121242342181258647939292830419774789391299313560047923874142446381773335146302570814025289215701279008874178969411569732260816558090257037245421631701847420888684765023699628599567979150878333881500391474413146795112933763766795000705033522780827846628441989634976071473122233505618746797905723238209589031911673224983079530406983727705926211778663092449533444113763141593424086960169494174982284631985091969111011926770385586824215445662785359478200658285116959381519968954440447938762499224006799796666145031116702387506689765083637309180557587328028876732040841226030812396021392632118751434145379050075326605984198488909717102802021518344872878888521405427195317303491577746250768503624833641407144169939637138640795470869960170897956281870462366571054794229679549158607992931581941121265779167889464899749226274853368286541644668864225891691435795120308808542027458965445399481533466500934381039235633404033694526097870577561734583264992153191652209395215352357080303203318424553510867075104658702716002074481766483826371193789640484210634014140552142991909631394344027763604224750422365689660613794875851494044790724592143365764452292112617592966016865714965820184457498533590083752801995353405263620554030763034999844061267189968516771034750405498451605893875210959899864969416968667351585106851317167551468824723277702667026282891179292570849768550301533126132065271301649149328018998422731841744743600097574164181324905039979513350385727425522222828123947507137561017696680931190960298405061076568239204635385066923130864043057811282146615122479547825354735066672652681497540430732495099527166302726981719540390121827361467337314073542802191532343933842134610799703414591955820850260634988257999302292592547121935527679154294328521203538524528493903674805664358475971364453252689487298063229700437569473389110234170029379409369887209544809511126467495432125667758650329196237426332642071644289504929865202428785628819226559486985813789736885577320571778103485211505540583939140875253397755013555735329374966647968935687089422460060420212328493698516687648444627986211505079839540349307299934954021307717469520723046383581924536540638885103037057361213547161601144704807294376716307432634855159429029020278882024980652755505978496696691407639758252511077597845533513352454471657733765931018086007521348498422112029766356977577680111502063195099038365431068707167225027972597497600217244171011275566278106084863807698482996645392236514954816694809938272214668978078732202406025710172486346259114655478869960992561550881165849379200610637094737261102160967475908464508835181635693306930847234850018590987052968393955622531443334203826338686892258180615201306813667419351075218550266614185338699300407210287875730565669128344231382844027288980072807817783153187088303753050571668380887886648416531314300297196021123843054510454378377738617957599129582886532251883419460628375873599975179865210976288547497777535676802477039495875986015073700805883815732818632761407242222018858612790850526713096735035413251670245484699001255632388317702133802078403117843348021026191750108273376891020253985442057151617991062770720989774953327711382812736735801214137280348455762325481223545971026655689454152391163187096120825371783126503978229363470164724790778450347450329400127645426747252021402106519857166207959015570896162352558699595604605806632886508638338057611319950390853081901069573123951732601954189526651570885667994182058791656842873532631448177768645869688535578167542389304181762507624697324452507304295097004317545177919364448140091623727561047984455248417950023219559997008181954579459440345159470832189544176507560300262009074891881728557123328461043953668682358600733026363826817636955497022024958477109349781732343946585994518302636478131606828734594785547668116591006971492959545983449636564059761179404195554204139603814803259112941353137552375094562909793031101076563383175335599577786432015649607566976843093501940676683758985888390532661097466326229497198402682704790475913479682690820867333814407371663145279919484753097150292498396650104949906971268835260412053050796424301774687123969168379817540302126877575607070755083948674400452407637055400010108253729321919685279274815335189999178475834834136348310603137726142320535107581339438088901639128438572153793986648602841074375702754295659551421713985251515390123371192433535226684578419023820588150633285300514469732575050274928231864866293634398364011779420812149129285756245895763316870421924952011874174101684804733703254470161927397233349522924967155771513238883716960566651307008303016458084800928775919931830010684609261860855390308690479343157721087013660215481005081053319712375290854182974313112152159655716590547705695123444996224893060632181869063744734991219850462597991602120161460829092972890451478367366971173432829167884285862869221933431160579055457784085281846902680212965551644996058496650152525533685891578399676921155116749914490141865430583756101751833498763041372099419810633102375789735457042958237635352410399174522442807504125855613833499676300025347965954957787050464100079273762287166758044547128620297951495458537469731414752009341084619407847097050873895502381777490881261256498524014113514071511511659915120762834380824676382877247655518828221294990988755090795810254098074533285765409656080079473355497992546872933544832963352269991297354633427793324934591136556628630119226132905938524379765337078721728385162416934198693607463755885477622767430146274170222971229496130955478112600656376266516376991197661429046637640042392384868124101283183314730986951847515963386517438202932898186111954555522948877909319479418962291945903023655998526104653694343035052770291742478729616774057052213853412966441551289528873661282152173797155157733644335969030854320740880438827634130910830802848768112907113723067378426244083745249531295389941069730794563173689292185381791702492730720659993789378773583345567496763657098629913264013008059967393641513033786833283758745274588455352048586906926838948152235345437482201839031401160653048380118761391409745462067971994241150868544447540941464216407191547230343696676004611810528770439770174526142895474441556437037578803463848230801797220839159593745269832354673406078839873250268894235449998084611089844161351449680488233827165067196439402750169523979006160303091037384296437942749235899799182380094043245569557245066611378085765853610774380131329687107673327771203915544878975088438592484300468549126606468582555837804359135744090121191022341361374793074552259158294975028181260950083716534585348473454853358890418880457960802517171719178666695045552673151276906020187056696511047348099433922869506420012108548745640484980187470548654228097089417386348572099086525717740725485836537280483174755462872996826280771771710640620819897024910815144131016794146544491141422317263726362829457049624469851005231430179941745720853892477284846567124772310941697162935738076147194645821084934580959405810375034987687246612658368902270949001776810232346662706214315052563433076293872956319540720226301353473139519108978362609670006645007880737754220926014960858052231782435625810851886922903982614574750335470081670019478309643346946123711356506834861519762858480622810338892335885813329690859274963430230062306895693639819704841546882913446957632651525638988769724857500233398434380148732993583259854057250367510717473045174630096515219136545663521648248415697223886904902334648099434748574815737415607143786808424729700642392326232498210264631550113777056167213756015579474132813312273808884535775774251319370200458303464252726638065421662530379716924299036847902391765436189038204609196521379435265248610830581916221414063737702492919676522387613715201823801887878438978743237679600713510365663677654186511621116872130061417736890229436206333306353976860548070092705539025192190752561290044743261650383559182550310348261307207124057009813232924112041060617359350996322283151343519798997324567328567542148738012704312493608934325018536536529944904880586423178014104846856087700671174443225177073225441400192740009467578276384292993855209185549089307014422974450717613227330839574662683884346907873315097059646957100392211400101443734155589429062076767114280484612306318940286859037771900421921434733141456046964122505980562333088966598198414297365398213333090912302563850187790332309752037462330982277714029337069379099540678031379960427861077872446770980691583038013856992647687161291425986918915513469570666157589751723832671202077925465607009562787338117091197595935997026002421072251438253344955742529695740206513841382507547218527779624355903076843649687755250025055397070922630267344548375230348049697854498762623240915231056468301648485161519705598737675237552685107408367876544613054585925790104466734743137346858595420711142046429879076371055615914872862814543431234042915499417058298340623724947907433461312989033427831305543443160832740250944899412434420044933282064379149329074484298223215283902641221740590334988850048259908398246563343688243842654726798273595410094883396712721512755995285836749304253015603570566437894509205740908931263589435592496918983092040566274071596883957784120110477367760866437796687206541397252840821184465511562053210231094364638217182505256922682328030645981558503127277420502035051735451688061678026899675511167323889306789167486455636703539892140914231107716618324504031606226763256404949098996400526872875312507525466216331948404489145199044035785157951482373557821467444793565179778457406310717234928003527578397460450391732623922712946810353561842186133165302294484058035205526183551679301259582895065555567961462906771862005080749166385783861405429781444696819295321454713919708484027717828692441015769976952055898405956759287321533665984024494929436994868402971005482864181503204335155855297394275252697969463457240286899036575920953567804634006169979072661686685609185898457222813875262812485012448780263508219618591585919583753572307723025777006815782250934889101135714815154665308353642104397271971384974043065449088519879080822185304657671143647835343022759977122104277756009938106146392055634223208424201745349809520893617834506824635668465647301588480292947481858144577240152033240076455452204870112963270681030172050091011862266412151869248331175241136838074529100627348516087794689388788841671947967114183197027051868291353049142417465022829856899052507252108037465289035137596693068533939122978447266230196403157122821169072919754392670395073395882683559135365691510077412742242651409331111679222562080854503066898554807227337249948798007112294996948736660227729444512462548123367666809040581422799616285348534643980340656196052116440052120558755540914992329215489374484400465423022388785017985290260635839062303792401466495048250505918835347293595346797556255754584367672793705312435176132313449494474159784768162242746204099206296366187454310042957042059192025699446470079283735646406651468847190625632470545948231526626065175897903559547302885470600562495875168456034528927597059563953460123870435540360182102313656442132116447114215181849765474229664768893912849359887309044734475873360047075535938476248667875306743379942246117959153155681681121572857248804841175307719397230619406290791912671359771428177564110162531650445031538305051084255230920598440283201055617810757515282255941746378475714812685305902996588584607665212014456042619788573791823889280763336696132697107228480283997185699856096014898284830233168338970341858232263711771830293285080319005130055224096319065044240818256008002599089303033942098090389631888571619389053764970406094112553339083339732251814186761484592753557673220968718170002245815880391471384270140519843984064068327798764305231960227837218221874770768006298160309078871328611624375904616947382117230458092074140485547821930329138669593297664877133271964557318641706656186239910226945638389709963203235665971006790596444425513060122957514521657220511586038538056300172917302340618416972057239403141327123557304835283091848298578859485765430928984651007676164896287518104318911310031174615608479915535866020139662712839067294372419939237921910882192676736214607211710207886382843439254250535229981105335338347281552660553426211260957247528450305988165335606890938651640214630341865401052662993398923333264786929825414222345813837830825751291596365746464415129289340626312647476235140873423434073068600410424026579896449704509662817782962773121013377439942902279469865363883876194354458572309224784173139213142309931938022881237892628635018733299528254555451553041490448508544171707039320284651802694871701286111059807201710003408968973444314337068570255680326504843274158060139063406941007282219586362763539778578641200934685813723170653365647253864499323560587448471281164621709772052039107713538977655641958700558650310490924917153323751905901672317398746231824445527053715574346621195757996055077326238449898875052383674343745517862919890159061719660351650896108229051285964343837125990838760688457336276875097705797598312286578900578680718059528515549510633265422494398757861116664059029333532538836036743027705076704773345133199885011235715951521892059016195799894581527578215868405693057458699344077492213029173241615469073956670111496682083774540718756900008678592556764884162807082594203607446240989767420411267269280041761782143999402278059982500192482437599095386557561244992962397489343593474528842392445116753319322612911235546133070875273581139689011459551527300713323108094236866651807621700281903604232455617016899174524931482543538631523392263846617750036320609335006776139948902349539293941373853426499397623333271346782987372476329769373646812287587095839126434811895041032303879213050240968544178983882084622360358392792692258652707031591875251949425095313921149492875098875954507644242908671660480505067058609573142497406581222453134850812223674500668820695398074322966123507924191989051275500242219679926673513033692967559994493421282283225016804795980268309337768772065822712551765671101758497586904868056469740983599281777017266171454571830980731852260440904420013537954323182144907382654437454021219779544233296537787824101034569194987203836316745933754184157188229200182412629890433084138025368366866898808675224912662105936814211316350155456473147494556247401552002288299990939260897221773760882727682952046759501501982380512966655109712439859591092978642062060082448984475352267285603725344032636214950906225483397755111318124115409100187011488034678435865014334133275035308184736500097220195947188943778210595822997154569804729327570794246774213950152443923440525205782348789004339870060683855610286985886436029896783612228695574080600826427509882263742928084871427216184930139819315432250201804419507423530688495340704612285935914995351415180463674300123855233584507077614918454794694684236396970554013879206148483584065021759134716745651282205655548387871123859711924313411175398183913505533944733552283931323695095710914538691610829919450809096267518727357602505470037384003891313235812990143643025333519345846969034075633423194705439022034303597487643439694682328687399646321379546054724608636206799168461261452892848819330825486198260476564906481626055284896755022706403060880272756852760213127085148678545995679563159769884655154965691175906331455927326214913863405117200832474940051758268474550438421258973390758113963977614867129965009655554179632776953726228231358472853697242537237452561018832598527637126781681289633498654460648327950723015383850565256234503460119507661249372745966695018093638049540889226185035235627444909236218716625455663965672772759647595781162842985077590781273482408503527717893031163521978174371264912814374144851709018633321382523433721476866817945960583016071275679225117983129538954601520664591295542617063250242950333602064804973573882171288521932978719356676997405130731456284486821243003702336136493112007898067227306640437697978963168758419831050333088414736456250375521299945916818880605609399882887065810188369232304445256536951375846321427496072904068951100991309097229654496741112997992403214071407656655152154553000977354773305610840797231503773097520350538264653180273413209408130723006951442399959461721430962507016419189016357576760334667219572031977581480242454733271972844631555412669177286270025238303050335178529874078050350330347346100523179688329866015687193978551016106285568659760903753002353701641292827294335858829722495305410076961521105711515912116674536406235665682874055082984607986861416692801839680187596029155179288079074941418886745529711434189212102419059646200127404367099796762006584627485202402539252600712524940984208321944784686989233219984810870246307397417392395622173673851437757976558442938429785054155222714618019615668448000559532729614495923281932330078776037302942602957133488982065198944618808387838593517146201819434100223017207264693190402644836405800022979354012269123623334484902707594756891963812981227571643577280154964975594834791070852585001045133494680641485712834599768210108796164450183689920540440590590135856793640724967136923392107404316138320480400720974413457525860684704231030335173900388575004358150139938857296988569383262830823072427407698793049128725698132142222639891319838071430651297259784015243622117308997644735918751134386766237054328699352729268552809827913591732276529525977755219345882425435437961380567965300997849021852547574512756224381475060194095060250502906450192434701950780231959070824686592829673407883165688469182378151846156297381579377128395122592190861020453432423390475707065588029491566398798401036089902914206784524913873245595623233620245988775879600337303810409458014627374324355671607699956558635933249482593127675380311340269779593085847452401164331627558944931799919829123628075464260775644379843843840344819415718670563577319257856781954826798934495462754278475242691904045494423021727104959376567595416118174069052904406965927703286434419789600936365578084796194848528656407489020869764838381803203031047686852256039242164939947006600718941362453252338230591860742457067312182122946138006220994529971074928998289238445710209670652812694785805218885921779566555939557631625881803686504166831510202771057160810724791203127856747053963910782665284965629361225301484611116458981527401751704070338858492769988950571214954956246143579186478279947947778234745900474817453460956015333920819408580476456826058502448313261417261943397642147725336828039118209470040810178991028408488681749190973708688511498041923793689742827214455526375582461276331696153883603489286944524098546193435747971830140888291252988180494349722317938000062876600375689121900254805953236314995010512810942318501499136160553721242189655653011872471456808662402953185601127773431482001567908412190369346745441065780826737198381682095482698996966729490001596459124601677156257746737647981605657926053065869777436384280590508443792132749826840677570073347488594326757273211287937682060283453368928193678048192627982335678899375833022477738359455879335900998365649351202161223603484226906511962768001883017346874411139245768365694777705387025695817194250923857577539082544790533477479612393615486438700044393097236186497634259504629822958950178847853449195135905875670084358646735210552845640257042587645932749317815214553573991679148567669753696755378417507711909504471665479443270815836281224051018517082157421418158259021976936850677388122596930318788850794444615219025513496752753323365526416825905746904015494327290748275557592202560158253681977578907258547916004205018085711033861954031312220242380907431792579979254381527815165734664083225845765479863965113490805351177470861394565412130461474222707499168852987824977954894632224208296682035128757664867696891367704560123575863732596223424603525014021554440085080718633000056084554355719561598896097312295233639418633564014453313173953976616615810134850500462180038705610008865146651553697561259355299110030768679127760632430365564582882395727324073558455397611597804225785852705263464458257014873312876419765076076778552016360703124552137305033047053522568630125444823912553786786862885566481731781644170652401722799928708158240668584591155792991195534854052313543083110585877153471180883116269809345803565136110172013663046501935232502044478152195372476021398980407689476254808599524939515467535708451697463304709793847537755910844594829047115066119451585759907988751636902911948921456873128314311529607439857750350528757895989055535195076973748519144645380531726326353365068416013250027508566383364844014157687265379860394488812181731003077649009730092175793707265232817425153937565051813783282331355365089946506183782527659630419921367250702378776967953095931315682670545474341747784163157390808791634876740795152651547813684652275523014091369325846826476426761901669508037102246814270667758380047432785948319564695547007732776077178383955435382677316303254428415445907965555717103749438787590538173574076582411461241265913658023567109165182794109088864428853010130830232022938799779446364623499138973269958689958816880658056145776009400286921152907329754547528023767318710915615506538829633222790740472705139071236321231944630795698331645048355470613941984044811322237504423786596374504806836038677359671629473626273400450323432298798846517661509247445477957473036495768496283015138735839865598412195780218307464663869163248722927538146770191534255375538910903332059651251525486148927474423388022656814924407688256657551381044608822474222342516090513091157953103132726940961101789061160887677981666301694167931165875782262455464816765529533836860205995870405123168185971420005377312034743354634369197493965582260684754490088184658916180678386541383669977343801978595783426191213606973662998993995396583698977225523406302631377725799823222137265709195675453500375122075917281423970072546054200182366965571324101606305474078289472054962030729106894343278011538788694364774655988167708463509266662294501123608739003732363418260437354159092425308315941072519808973960412819963242298701862660840126101271397426686223366020099208437162229288809732290331584669513393001206146724351410880962904872130798957230796192131042080468473717564246204607004302237082273010403138174792311094039535479244699654332705053126570064707078439512463613819022917884425394258627808489191184233124825591027395384775034450482896370762689646171729263404498730068527483773324533638914161643553285628421598740816243280864684772204834413010330374325276818260986206117093299867306175905230988993699280536286474639323863093627516688213220927542410330907560286042223269469013035279106850030683458478809715104470692604670536567902485070441029115917661638896939004493913988122301713408730294311275781965984243710240275255638904587269732744392493854623483884669718772080660767357925906868135979188106237003760254162763236092480921602110054230581565403461621837309111571884858884793351826046282055625391476771087992378366457230274304993840179568288707741222506640486792469756568476288080957281076703350971500948588843846102259498572049025475236142337924055940491753442972208344854329799875939325297547630673127739807874138864043596620886913808410532670872592067645756819331612246730906673523196858342993560746825060740091753312099130967171459197150689886639850851559507893575715719430189595592342304619970468544537370400654267753888821805625674008387075694364655634772722938553984974248918503014142529452278919637087925169373092817165720718506388286911973465203702629109844394607497805335208179052068075868598721249187615242855012073379167450426336516712837195175784454071269552351102659683003094240791860499571561192960535385168327588110309097972278900790414350934510172801681233109016285342002295117217539714446470440611098565569407057269277216860950720574715244882068650984869405159205900216482932597967094234590657683554512849350150971748002183626533882315858682307834610943684778190304313375052319099341165507531436116758863704489747610786460715360011538808750338857475329768062362035473855243157573016634828400190103926746883176299481695549206952699008084701288509248910157244495898559894447863115871304037356700682362971421927363485986392870204300491701435396593126922610450995656050798717098921226766008427448344068554794677959860394661990208358672285428640124423280671421207826531389714321200650071969091368524605786359114564967546236723523388590300275516070579965637406220905935097243024104911341510064310489528796704404431100184280107885985000459993093192145456708878920728733971089116328132517269877726684962399270096962347387440495924126725851059022354943039847875108475752633394573086207569777141087986446980284022005055168040575476906916078107540473581593255199945445016194266524811494319772606488773724441193249848470657805218612815214193769788313501030792063738720510432320178221100826647907276818887198647062907200746878027956882208356983422268228513579634874372026780740071203168062132171753281518490533052562021912647515787216494843165971737666769815773927536187353286979904024704153904938279958621699679466296271260057905794212524180538844210888065262846007921384760814305379928980450632068658987995931890885715676144006926802264562592713663222437472855648152424571473272346879129433707719459057187346150895916038010349453711746595978230951060985507529699398053620437210822512544466596734942725072907976091310897060560005662948165353656929150813388707996831322140168284141059703960939058484526153469665258991583772538974548414078666340674462404095882245024819366049981853004791822367369728899641585303135768210679210794243599637890651236460502247801089735262926180294440830408498786388361539173823560346640505373997687821148196519339744256689909161912363234231921868965142757737215901391418282376434612741099977304512625931926929774727496502351552891629087924612314287178990248329116085386756602358080543204343478443013382693162971812444562793203144405382922112424227059270042244488683006777601064460984853483851872841439922319946661458832028398639742838464394069790763124618500610832333539642680317888326998873397073772885940620511577136417141435244017235927135586644375824256271016552271378152616863477382465620823590525319075841597699692981702680727381520896529460870031024907807671746691459365857833750852866227491472918443464691891191280528360600972430510854513061521057527357763914580585824246455089257133186247889722013926417530129850464699459829073802018755684624086406930054020948140588448784800719341263052239523152233899438397744732941690661627728811339698071833425061257368101210240754938101059821115269426685281355994466548340804568492198449170240526534716212509619686339745697146882368492836465270373114823809836337495084658476734814937034927017982345322235603342284888982584184860771807486792780234918365592062304045792264903920044584192418481015801134545738993142359806696865979800850634816600562513885717578603688809909593451494980864865329025836653841307257946691238657501753490508001689008614459951905571894806171827650345096016662943257858958266793695841758590359831472072476096685570897787613682694717054178575363015002852489290058663221075986648023844642974535404410451275225948969570042664059493522418361017942034795022283046244022248680864640011176174262065022836814938198965772692541489321039412914363507896510584140563897742203936604621391964139541532363260490247932414571552455834020544892524365007171099591514711119721368184026954620215915914574695938172460297077473812763432358412453537288847428454443287481114162644945793145165861534905124295344162013712864520095078235544810373474617697656655154663440098640977145745854943480480224763283280583121176226932021422125896242869306642608114866644853571173719802370719169821399336145506648974235069309808671279975941157913658812045046736173126719208588415813782342799694255416635815584092801468404885219364201663542793811510112837236274631167242103680155444192019993641822413581482249231734039611903157941673586728834601103270895615855545299297712765496949823246538866992060035605131262407855219177101977383889218909126227917380051793221779152231784409535493186942668614473010801271217978316142947927873085437783340030456803320494063559743725497763335389425735491550433843413162202301077923331026481476203212160004110025998955781623035719641850107357315483222315759059453050420175526368299182223658122766836930040530324261148339071552636989506770620014373493474058193437978686017994970324096740770719532583774534289326312044640730366347161776291294370390153947268743196340048967744888532246261664120260560889007718323570106326077604694843836622396153799062467516289407247245982019442918413544956384072139514090830991035286662958265732012068346354741739184489161645262464983609682212236421600962481529745000931472281337381404891959885489986825010038629362331952163660138657822014035013355085849466590127945828426814205867508392924746343507907117856184002373349080371057667344421943861312512721113670061754007357554049281785901271234996963450125126119508453255333938696422345213295605814843645378160041472380921954283868512212316539121769783234333519337785895780533835022529617253476394752704193305570067189536301147309145865076691467931405335770674721102196540778535009832168555493039726802769211546864588244137406645024088959040631464217226671460346358904594985570395159853862753923758453540209309227147520791868284686753787648176817031764741618369963201136744499218487260579865986382558932077748118826853082677063062483420721950123799901936112348917512890828368091843769571091116207558687291975233150647393036895501003721203064444487642651743981929100443777787914706542923020314192529332152538283205269032415608082657100071668497091529322329985163406817128301780690031356590011477183758585852071129924988438236228412405241118392428737302023373539807336793571503110637340207566124066812639803963318015511524495481628569492152194709061934767972667756999433445519811268513817512832519935959843318096174732343612211511635317663981108707896319107109514623460909617394168436051428475984216133874872960371101276893065993551942953516737707805101411488259219449302082307175038162898290956667506466454063063354135941162219037312724583560391892220483828642726830662813099059148336751095516971403391957200022044733012434452370925344170853663628477627400336781618393166805068118147560082410037182394451665675658847137289624342792147825470248978828929213423975407352999710940287680676215831169482085179670890749553728852180167847512810085371497107567403343665514631454541052729080128204570846197738888301672598713957360360306239209382664936815149375394850413640317828600686174226624641089417973546854883116112636471637490892587592791057641898407084605534455248417878058564200787932168299641561125351902146190368489884098716355554293006089229759663020773875487971188411011630985603343571454792170640472053176709495522017629179590844144604524390662777977733293957304262269359755109491961270538738275550206604993305153412734933521995635070885505712254813431165707904466307810109540548568172142557503412704284423869113253446233529791837698390863761550066888247502692369596581393061103878830524401100826021088184485709285480249201413606586881143887569078356481636959890810485995232483064624512660372812133187927220068461616228736966969640158558712350224728663650770592219610847204990545655718112422729904614084808196118110813140543933647628721118202700746595185048278558448344436548143935111862680835018646571745599455987627402471477872325122131482971794977737364565396210554233102565710812415682729171528991328968368218471030634504679596157667255641281476097221684503177031032962340526525309302279629099021312788848842082445657764628673016786695687791758779319381104092143172721050952659579752566601677377330632898644791203341559850338990459097394753301079741921322846195977290112044019468949995464229928562433774145486210287016492391545928682814348633329729993458616464643612206257496832095805732568118063237741784428200023968452655783326963339004704556258185696475914300467383563615898272503552352444321373237826434866750921506086152118222381914033106329530156176188744443527158120192996407409670940824242644372678589203156422758641626087201651507305252704140308201839197937659449092729478885504958556419686531164405459554909075523817851921194461149177818029874932365671743601775898136715267094401766662229679651602658755302748323104744119199363227807739496595569526398506863202564497805913147240239950012564006937639861470007074097012420847271479553584074365654343860873479067705432124151022044367809531115205792320151937174787882051145440883612326158260997008832841127557200529767926850311499536887781620037378148290036576849425633851369637965378427209601397674299290518878394954871581179811670331357138593903072752519027256310068347309555013499641411778267487107144014675801546521312966124158343163706487101567033527873215745475262189669149540575948435358324692229139886580705453479616872522761160170327088915637678068053571656516776854584986175761233828693484565327691242887974779993158529932427784717543634071116925628517531231242813810191174369055435884908598970876604956465932381360834869458880477381828372163358009885582052284924602066103170544718464733226761988286931536503168055643743114937923792649375727813808505013296088668417905138125654098233610397676565144526637880284515517209401468545478010283073794318696910822431733144336082414485846295935022174407868102594032733069605681873991788757996185164768685053392206581497572978283089645057717531229998656300738574427721010533751291740672002043958096654588767724827821087328079336596346458863424085255909991052095839793051961983720335467765639437984271587430339392482184939064973169748411858424150666617983712328544520963584521944646888426594673947903201345613580229597731370483725619562993046433229747155306849374975049389066072680932796229197214898281406536605589769671772978652386455907611171877474306348871112489954204380318362378868737130049048682819251034453853081399018994244153856823084363995856797491991976808995205108975760911116645710211289060387625889363245668761405809812361091745480061703197544901945274356053046559298337574140266548975781294781434653690723425711096987704559804224536930110891418978234685948616772599743239253305622627289562612367845276012359954932410648681547295402775850643744353320313787962954827825535192418793146115439312285053652040621545817370948020942539661371957758792437741948425612117781319161615962029909663995519874322962051050698273118130853022703936835822185776136785286271097565257023826742437334254712388737050959054829364355621630225637043586980168994745727532982601171016820127978644279637691871551125975373944772529115050480744655276461878835344970245696201011492496879484637025882948577167610786065386016145113247345864651230445393533391988946950177595428955910264089679072092729505675605268647140307677842340415393962277347040106515501542937487275998175088175306590226339812172412061913892052625120927194752781301175842541533199679706066622257485518878478052226613549640885165179008742583616687878115488546360753538617558982902336861492820328159149656115371607999169897983317314025630551376006143190482778732393465293679354047114816600277598823978378770237189721223058708074585428585615400545750632017521979917368678214479522043452118174675666894519668869999947464588696394526967685269649964349124660195578413891601275614827574386715857618465806508757033347006579680192567673642890114802779849958424368949847845746502429955562032347869828286994278174746775204805272279106611889019860598152640003705600342864153387001495173995513229638448243267017625223787672609866753231847032043408484874858582128328807695503096348698093326750758351825829899684933751663606586655120528779246108261784882213631859356507208868045623013636591784108948376943436065255962909810819354287601031711241980261533056432702550218712074038972215998043727321385419391922482298342841671924993635859539382471359336445390207408643803211321441824213468964855774883592293596983777928154283491114149657091682529554052358300688955003806734871127869259473238423314807067834985345489516337533557117747163235871534407888947828909324488445349841386511991854230993868084246629569598497423753271330304353406948142125829693433868901583397563321148392834365195463728606829192466627608991887505920469470432001142486062743922035506205906178780930718252861013083485315761249249624320817582138387636946272597508535303558054070847295217147202768068710880840882130421492698767984556166183905879635400581934110136304742198110502044465663595679366438631493256702404608994962979843860203326389962068330527975184607194057159984619113756667853705997003158941834228274241471590048098930469943103760971419818127122357597329437864328527696643998516228207157118757697538990308531686099947050563649683090126986989417607459111443636140561343668434224850765585617067943967088576025410406144499000740998309974907879026014569198842731553953058714362230796718069403228963214559888626807932040543677968828753410465376223660978301188748155327470516168632559531661783861034193206809250884566128086558203804720325449702256299405547035560252277827579140929396036386201509923466323601631998358009901986646198228348614718461362825418652702180461642326055583793143919072736198241290271730974704942568106524052572619692091897602230456474497171401342673482510044075022357678872548512137436759932365506170022266095782504703767423549842012864959402036247020054311237627068360178458625457587274922816337669962312599965890461468807199596123435939495799514017406123499969311925221000573593079415942569713073485305109506662377959946146149086966597416019079758940505562133159925773754902309039999221757200467824181813233120888397629376993231276226459628075230121130488111034490885036794634438442041685394427435240581918801474756043050246936913986360226028621980392888910179439578557263599678202699173629137921750139436862627005214324503285227940182074462627032386721193370723332535258597431334905354701711324536276513421503712170383726651066396711439712020854173310390323450911239871715384378614842754803823318783062992923416234540340764308101888933345015759556938956512072712705993830136413270336175400735171987178599166923252426639763660175816747079559673709895279422192194916487479333550338078697614756679646731689229049367342337155024742149248256580445807168633520904166459677684690778813262084740770746027589773852509767548484659598056518760420198679336447439041886180435987676166938782339429292328615788883619275093672091761605269800628951161878784180768048100930816691800641274170207987710710483709406405682085324919266976998874231075673083741166378383186956657370510227777291601370316512376928372355043736538755612873934846599121621597910982774857465921676943348703925992976743356648095218540572493796637954581219078545753974032416826951869178413015353691417392174954996787302974759297771517160322436342334252033465135849412897616932153708981441832588149999893153530775907913339225737050860790767653345810570068315826069169567234040829324948858286548967945723816425856355016238760501922324473715124833634389200898152179621702447029046095364620043891124829808879593503699914642422324876230341746659787084533764837745331651762133860379754242833306698367320349076127307603423919662367889063729027237594326771182224354412772638530680612291493520302894506552758760843539039793203097493496997950440769697825828254768404380968984801766026983937232646767439511360922722134288611601380711295551235004286969235198362833648014413705040120357935987884374016664007749900179778864720455797172587699090835560100608767602457395350509306989242775892072522461047867417619671616482855680520730249507619474999265221553706562079763365912541890606331392329819108238967016658568299198022426778807496071063269147314328044461340104784688272826196394274588604921226120271464355606986116327291031517314692206901939557015922546458318320957091628878585094265023168090054949334922723416422182815656926755811513260362927619425234643407986860101835192392942634105075118586575070556570776970856152793071449212822724622379687389524508306616990489604837676218956995635698417064842595257650893401992128237848226719264659967691010869624303183295563113181393027297090100420179969414165092404239800029432032431576164846664527845636625476323692370919286180874031976004538956875036492812465312377871438779206668652559129136405674388851575262317166283496895394842713807452631288607275186332952875947683400298385373831226606041663362693945927011211911039213927106283246868102502194932194720848160048325230105385571191333032010299010115312349877002565661369817933474936151478554846098832319219329729311481124262234858529381965198337900365895519805988484310737822634723808484546527770375568135770214565051194588949400336907734420728524080777500318836134547906742812929566863237735310332468572151591963497101757814018422295602938770045083810892111361826488203737374544748915136737288041218989841116704392146605602630662306921573193521396672754663992469003293998990653560904282410772218507139717049687731325222734274530618522965770806174542458056485766834779699366206567967863293452843727735918638726419075816862880287604552914632646708960122758283466077359452816016676250719720697307898096634954494821630380144685265901690320314781040418161327144240010884317993059081273109630361362908380382941407221747981475299828346751736179194894699248570008356130494883341868220653017831015867836833954345501506167074886411136550938252979486600304612462393918684584481429111589142839311218546261414056506049799077092545239576208970470552836654474400464460395748829674483870694410157691227797845927523206627637048964151213270397667267754019396224605132719550931599446146890313622125876135961825100243899300011543538880011447847582865193686420052953198501118300115224963080686139425244921615302482867544889466928081537315813925607878013107313529842291175206293000615395902005990031780674631663659744483326666880672504213883302758948204525107808178720412233104395554656989905606551909398663197990173739766929318468337323881414901813382088772407983447687341929473838794752539473486572563953390097099901040225648551709294210086745623780396772732423558681952045393636654747627780769519225173514550562681542720442530248981028078701598754294676718734446562827168432882487734934173919999952065743399551566425372852474840059613350774977471260598531385838869968306056355061544736754313550253673237909769984380065624189477690115686633916289368863073585714059579642417480928886378369380901928822054512633412836117226904167604209501036766048278512266720720325647600697640903175501098461564958304876887887357285078428939266593127339371942672499989441923693154864170063653064961017346701921087020507020511960298944489809191395066305802444346331053779830159549545545908351561541320954606732425474170917793922014091795840201801002435684675485286208571700746573016942968025232963140597769240066601782911179221608893983918324571012735714326893458652941983567633098036729864095444387971632762602917981159868094258325051628828947856458422747738378524769293194284989206168743267680950900667158280516033294379195638699441524337514032474785877802929728020912662685526003231842105540310025261543459237355708812487950924649336322364850940105262290242687959123123846797829688324596559692065989519312115353823345403035670261940683476852716073780019382103424090358936685545265645838435671688228511446896997735970190048700336056303727818192093169943202877068365535928476245674404953599472333806479022515506996206597100700593551619907860447923255338375878939412205180336791495629309713928623066876113568663335850334461180449856179925645629744217253642923432450274871303958451128437549386900025936637301383274591451905064535550004716602102041647384121690013383797658565513999932216816217829041437547051176894023453405546186085294644346958170184008484827328843898453295701481957046277471298502466247251548088121678549356714292405701752576172289301280721009654503228510693408812240563652232586931356266755469816044239537325498753249418836177696937032183494587541319946230352057023083252659798753295786811061823462382989496503057436599869465019360178093888256469134061915096134096889829950489873442031979471515661001904152851840875062373456018282873378458263618396654370245629195334053632466054133048476942367135173001295007363780366778005546242243311856888014207593834441152604051082261912033557839782924165922588597764741260851792533920026456023171327606330394289666645662457467019541335445827954043206578161938900979810671568247139584996198321572309751313737106140563497566904351123593140589205631446393053431520572376834903065690384229779766392143160858888613720411356703690528799863165976534179827191245655624484372751712846234196603504230080191319861493167159978288710016099543879767710288758390131475328375127223938651843723310247497614676826658424520677571596700342908437587301680254833732357726094369472428102194999358843332195212985887759330516205765547373006521767747028834046037698935760257087418325685104315396822357383611317313788976440396404905529922835456537407626383006601116726885777552987521681972154455760123721400412881582177397826348132316843708620824267063438363926249969061585828257559438298894180015821522808070240141959179208829161120133029268464800208257355940834198340112576661904451582887304422604268929868381602471898696664399977366354540731030856836661068735476725755087469307339639942382760064081455686819153389759721837201863715058022809389922768716789167750633703677272771220496149267503066294703885623566426421695814140410303075851826186445615456965965804856308745327759605784810583316522887981026464300827049048059972492414047715694329242922993788701605471814574267514643112670667500103599650717689922080484287374054722025424871879923290759061718005615240251502541171888985743653856403800630612806826644494717228005412117759004561394390231601375724125065399468407874746996883523862633135487457554044083439634284061633157749667625903632984178591675027821680750680628206032456963991422588273401302448942761944717819836170676701907660779794630189935673928625374353406324668190644235649768186545327768708379527199123562194705024273227693381879601990706542194372924506647481822262066424841991266698908563789570001891703793506984055342287000725620537369287617172875724930116229258451161413380689986707532085268712240939296948097359566156607084762487973605996045009150311787993377000252061496099464130313621228453753714966153334899504437489231720345738539333318518958782145686313903690075499485200732396599081663899715689010593504663525461120090069174219316668188703489445760792789507328535647535398100451833404161009686495044352543166319464695187184852593742513253940871726301185731247540771488802233149273456620429713094136993875767682804716663942592365903641131502521690583680482363679475685551698032275521297252643241256246142502951112846184420237625579438084421087478722668007664895017032538227225862646442771953779963441707559628278697144892213281415356664197165606275031349879391873836684399192609678168515286841791016275408501687358738546932890088569085512121869987629380004041971682868120873173325423378198283145887787289267750395108896242265032294024830837663186129230332315240852825763961842355442753599117079419442706414547139104415974172134893172910866669562482465302733097912040631497861875546799994383092464306456266877453442914316038616996786522052989947361116186163015810104554319559330968061250891147627328732901888580687200487069095320761065774738484541006552084337712761357500655139420136332842349690861040772712014649140352118277669247312364916713128084432232181104111363480806462821243313235342276175942474625923296043287714196071732690802475123515726743114606264197162863776627130585236457320044065475336261187459794040184892022196422513964728501459715130820587637581907155630432014097215355768339325321814796983000048562689764299981076902333488108952325179300669924224765354468771769677092712942981234544199195997121802368302335800542650324815280984964422774863680231741257970915891451563077481877799894658331592505339144030291573550795714471329868166068256986269833519153989632306385534046051460111836215262809102223848894031228136611302758877165838891346624976557650170043357824612937576213975748019997077336979902285408797237195591712192501542477859016184208917661045865161322808646779294628395075575528634706536360503241968625545006310845941784073554801516638974575532650324442455218007983975582952871368751056437707403456051870334232151841043194056725504678441892083836213471976761059066734218076867423466197610880208781252464107173101919780390772083774093617588704877311074774025072627735125138558787199512202947032108404711809967501135954947066634965970382237034573155498902510158934573731070027571127539371717824204972123248790219187868636138832161566458974454721118532938411736960851240389386336796300099533923335385828170109748536800509348563707503671916277224713638108233668718455745716168603257434712407088920366733385486045803358349720934449726939920314644752941799596175694100772068699590874298472957324913673928525804733864570378731712453658823152792039343978348969494515098093653955618507361085095162918783839079309555539934367685133244173347758219285609109610672005589804167480469317448088040612510123218161236353326782137549695538591462116405664850964893861075946171371644489152251955849915366788168236157773316442083013032843919079376552144294005440444656446673948867970311386405644197717479662365896519990877681997652877777606807497563704493333678282898448384166166976211745567549257372253606249653940823797263248055278026750597025870269561468343203362782803388339947839351722037491936520520559917146411471007664639828882352796015912712321534979903851945814327524472198659960300645624041821144362109780844915918582269773446714685297301263019273829306087297051223741035415851637179879007907321359558687020974342397384646171810772637102555392210901180941591720779103780590201268540890079109193311065994146346237985716722312880540421295358335722152636144210963241060550274886994728687401254200337700851413023237471557093846104018249389972592920634132877724254873174033928673845980839848666316982143828481970331039697099381805503374067586105911493229292100916147182663529874947622556092931510820769467372670544502559788443583799496962803035371879509377696370382837155641209613176220424130058073890376304073311580670933230465547720861340603098055906458281999663027569557157098338490743023292867334434378780064888498840988943405692729944944728632557380586591529847051484671189304505843127281369761753428091059574204326445707823348947424842385701638226163219681129844742912986485400759659017729530331533319296224705756178926363143241352612489875834772750610878036560697866006544583863562590776208453404950197400419215072579466724628499436811854644274244639928702425961736868410090850068847027370028873897366682723098917389600512933170327309081480031374269978935868344732362808836641463988556125038970176409720122971777040502212585491822960224328800217993960635529895675264862652868345831405533224936960626913770494513387855729344292516490461616357203651666669508617736429260684739776869380654018648195774351371838375718722002769980355838373229460249122485519284785880470821367534310383781946323419006859751306461883256894197534480094344153509127294105916171533811512105759360016616363503667784610197415196085673925785090135562911065010411955314659777812211586691312051607591378495232659145777808784094921103893599272407471261448863918751337758543128020592760960458910166892326831360183054313115649910842367852114632341612547181759713150792758039623665629129327380597749862295389607017723884670325366922313146600199503804335243762933065495864318989069100497656963042388164292372306736293339142148748330561334167818428843416293763435763349231615176498251468953608937310237336169687054910821310317316380279495462377460541687231539115047948513979224488875635692791877115202265095323064787042527537352800164477444093557811420869370735029246749975930400580688582654924107337345128910743214718275486055571976744574106462798072874277498894726105856120524176658370973942929401986651864242363559538822785918280637205945687418030317025656495511043345067546997197014257700208828003734702138431959627878851165223793610541472164527213476874287745683378595416461679850425888022644265649452654778941965207069771781977481669895924104962363810021650357302154722256397871871788964602032747855955918238892370125530918317826106235960597936254375446906577411191991511029314124708011689422496436092060088415233604120865559319643103597473024362201164389694233030584115421657110709601407040056957911447253607209760772998774168614162976485710987825059781241005205424953166126061219585679665129370246013966801222009982450748272317511284067609511569379023920899071554941652996105702369914432211202572531749019976971957862201697592386751111025848382515019507167039270542835742934763311895151543873126535106529940558245026707861074137458498947759741220960719695579210362012510294677408598478831542364326988308533389062153811292745064305229915488786302827421924135175981510066305613359484209439207377276744384703651671220652803218700376633507910947910606998105867224418057550427227079137694713387112628837986152487038194228121842715777365067844306429894800558386642946403013281218270000186859165680987831909575530673704687646014516441481717576901820018671855653413777411744032532070241098688916763775385061564887830012910998578398598681270842620827212160108477678222779409027753271183878494822587607707578916225286528466613686448508822967097096864430524405179476405833284660357784648401138222820282054832251534034403016966824495691951740848665603806069385989079894835186997265479286628072953145483297594207057421611678396442993162318271678373798453279795980178981685287094637113943904087533017297583504725395459308515678051223277988818645580511761154547847198675714836232924284218979782288604512868160998870226273053482697320136091407137853078419116495161226974081417025710485842536903813473211470424313938099679275123251206633583110373783194832817376248987862653546818835717061137987369575443439053820547824253805388151152920577862530205832312282260725511683756853368705346682207332337110256377786847803421578669150953295942876756437319495308226603886536396567257600020351534471860847116752680575213647692563331311217313326765216381671207979674153490311034098214212967458302951743282200718884737350500284026575424128303332143278741152195638718526370899718262164966880342477985305358831885261066253021001865184581639021805037225441809666041020956987675261996043345999473657364818648264302001531899801434230361614696745064349266232470040243159850157721699123350953994136914503544412939918385529068305301347819608619196780080937349271622256395723839474982204305822067237493094791541277821630900215363939584564656444123586337644220382388683914631732612721649101805543656181524092856879409528948333131175735426852467961677541194446303559399204302453626725503137186474698867580384968284092338139027909073237542618191659691373278563005713170326419261851370929259827463597809330183860718395019635113226781661867107385005204135420373410195736921110296236334168441802533916223817305129405650053921246169156729638815084516644241713792300055160959509103247213728739412998065452869865610901062532157172427125372854658299872700841344609006375994671291052127138887076735866782548505280475983525022204960560895226275700119285923639671026166799804478597828741511334675115940425639462611079147808251036524032157346510780911495802271590024614195436816056820290748333223081594151991257476222365210225859775985758573624414068965933830052970898261503810628483071949490482475417255397685758997498973778300553834471375966178470275505652684391924399610219445894953837901588837852539037728561137550376822691846972462960111850397621648897013066747009425152147704430802292152238845478746265206919893519329543308974162739467838518403398189442604774669773471923503106474096040950119161726039534153327747604956962469874461586491107046624889713173693165186377410540361410726739496041767824767086643176464758489266856491005289945701688614907748494027172480525175309154480795901388041728825447700287884436717608692084809404712261427341265755269049403599559304673242251321838296134673140031935474545015548005984421269206436556145527071015493066391863708958753235242740765279363630614101095469302874502539489025517029957419989883888039271279513869752300881058980065095307272945860318762522016732586249531363604625967797676688062655391865886635597618328834075636266746170132064452929095373230620338641798235537388667982929928562800026772457150985707193113901497376060323152332685878636324283460922019164460609560911618130587717695481720014292888484843659630034296923211221485416436932862716060189130796497633339571550386398098707069989474207076478267082487863567760057667926650406759713582291940168679841574625500131587209172181521463988956076281479869551189676488217964763968395968561200656170378558745241396730115570114702016202904188972842997444912049112723667340992322590511806610029201035788926842819635789453963024139541656594470737219184344810552349201744187767924803883171600802036325552892403586875416172138557184737988706811020173367249762290773693180997211061580682732116942094496336666773352169043757938269051286832489290333390166650329953394437894602295165412727306439463545464410462020636697074005132626857596757675857472648010429846938737237186608322937857306526713659830016775330626940865692737128895910270686259653002085985999644643112967277887807373166780932214952144882027201442816546079177816931938814804337323309512380310470397553908154685867812696050945676422964885214533845388239953853876067528618169580861365503292379214490740595557323383498762189118421329220293335904223034788302819917719088671049858712842173777625035576108735321025155210336189633724858132123254016989253968334624900473833585067158888225301155617813240680219980920729750244369514779305401925032223705230869490205220993610130245100111890336034698330135735315438208731099118203650964529061782583345619128067609739971138397087917443192745996697838397540246674622657435700994026121817316355427930897980762450370277163449463115896779866406937095624831746098916660820890643678914510083052586689244706706185242497943017796058975965965507291577615440272012069244744354125361690709042717216819240119299028525381794356963375922608923771625199653590995065957494980070481907523868008292541304697198330939487391647752925022865159522196002743179685130266599347713925507836751534564355341071104060926045102026526646821466092976131067041685642879051233402330021009713651257719501176146987734880794313712498712155804798282520247009764955266233541303492383619492696625484784582473517947823766896549761012639701416566518812032512381150824105294405661358830568416247503997020879770167292984202564690277123831680856071067256686478899585604711497670068344984611509556534179912292283692029020014206716078765398367117553868109660595274189774521156461051897876586024516633813920624055694318773616044684032028689109503924575123358349295086724521137384270298555253965295050048114648064070875909360951268381737180686567449296769993797165182940599150551809619155521962924029537913735377554409988366986461973932370356140029207462139429790319725812083607560862264121881185353480747878565967857975777277046453669957628213155023734307388361844765260031705554116158509203900287225951916590429298251185730472448142518621003474075098554448878955820171733443230675014477460954311315965793951676024763436287328484178046717852700822781107053706512664567326218468560017654459422883684195141375669236993026831919717872202778914248308543027093118566401651263157759617944730927693731797924401029020241117069113516359562021459044951744258471338587961821970381626635902723891497942431977922557531092715898314856755889377740292556228909852847069137603520875012989967155840391386408616966602870402037318770858207454920947932703988554109781275841175456804135341013992472789132646571604899650993979260297641499064762856956007548633914210243315564452768695450636215787195259184987040391113883449386274441084614054243932512207430655949022229313690601577156283849706577089876123862828123267273995279949946022122410080441926447870367984137747044429089021825231261440233657949907474270846816725659921365808695921500610505039245860549570423217870602859519168283718256166450224763780469003216250817511552629761197344525031298827846387966026586195457178529340303558660685044777949433146558935840578843482362156855235181038491014580821716501063731904870055491651056258524632116783606284823265991195601331959425074698426373833393058411782127400732831207924628833429434601470830115431019843737644084497497819020087610095451683219147158993791207616077410813023164122848798519155016467449958647571628850053559199470923220792177441260966939474811916753836610913717047240469200022616470490588631168250492258013366942120540459253430113621228664555356440989275809576239215400130125337901215958294906414789563704270968392795134675543473801838641603557393714475676288671232133295435525875693857848808571209766527323948987416816391500712500870824763246566766267387512030462921257296657345957753591102477839222792794961604845550338886297473089544805586429886750519551481429855960825437876584343290103821663066017409648827755670242492740482294894046688203922586923174505255177208350448785445755475036300687386418367370369427630828622292150711638567489677294527221286995256508126931365556177987766120456522054110839524653201860225422028941911991122641444035892591780539537804793811918342354249162322867138553793276982877053984189564588468103409030446232692682212631873033879921741355396377245981179420367048330555704694130074766817542292394428776706599817023708182339299092810206045404470222208130229417321780061611642550218431404767486817973885864783373296299811234384441219926977811305438407452539510573570704726145370114512264621674554667747800907928670981034819338487275938735744510351717983636828501758529204129327379456526696199555488924450927581547714434935416091056974509764192221167593355331435890217529718388387997695524810209505992534186988948779033777908946022978057513438824892591709330097184924734327640042208151981662269656175462975606847139002822811062317610644184053912747161884689389115231360844711200685865239095069762880296835606741951040073765335784937450663806655425368891360434020891566102461652082150580784451593827648404557024599496287133432588010248020667527671399945089155545107938565468959704096198276440180444810690447722176463707387912008911328470257196337232611729679049890716894186176274637237006603425190871964940511792795928090117494030890171236962238973132506202237333914415093432575006133774326708584612951740840572007040263323906593448966444972889419685427713282507166475307444306356396697395607147863523664229151500763860614990085703489485325115399618571078765247273716957221752302456406698222174615311811621195276055067581356306570345079821701806846599006086885226914972402870831959339509689524690705345954795597167993773951369093552307890253073939285204647519031370392705026876423381235701765776034930526342148094143075869240137089115639060440923103142819584548033072201228997635226636016928659646835038462107548748468906219046389719861314697719251067504472629317085761442435394959461651425208136938755922255402283935981394133785868067707881014393130587277789473009952087095600753368032062494866577296552002919710804752961297400206383700240196259988171722544292034290580994288800771961520713118661764999880138567696972800397403090557597518021537990256027549756944252045089169945335485638212309241336416147679721130582463564569987269987821330846782738565789155461685879913432699273285152262587277799522400503121329607942117020539168435019175795158051298170798117557458532156360464245730012917045976603928375305824981016062919195664272169841747365311353828995327504911615975722847051839053527188736102083982042909867879093334668963102862374511182168095160100685040029745578662735941717865856915537506536546539342384402551157271149789766391215537675851470047328986928785261555182489414247573716082911651821245059065830955488631962372281975225843430580577045194513960961583775668810422036633518436753179213200920951379503555335792218064563094180130716002087938494544992059496338778806406015898709075488680468085622422293881099239250388749564275508986706516815102933421417980948042053592468081362516863630101324626360361286765055694426273995665046456780817259888915369086125748872907664427503681419539372319273360668305838643537833399464613315288307049088771891783396322072506059724963604231638562835853734535387587567335027401970748027961859856197747916472555131213490160274099156252981204733670042193220572523350021543639392834363825627342891189528926573120233538306366516480230471249101096745862753647653477072523278463912151359641959956163423304338047023417379975779486430333210216908400855932204383433488549671255592939859328950729273010222480053164822924755626573221259402324244131070581703056002159148545597276200402395532927665714573445400001645075961017781434292756960239651455360442134328118924524842508675322634687716959588761814661496995734116100762454340618062591166115862982365942926398686426322387261862099656779454327080704882127657173358233882482269923139110928512349774435361126950746358736545622295227077738961803534133962510842725217029634253262747049952658120614939701785977818952356524169847779938952048683795581689195707720507699974162717150134271825714312879485057009084343448203979644853523232847470098715499165621674848023634371112518739920614704241464607989452004975718678330804591104770440653643668794087736603438277741100446290887789912677778173154138421110369134699852143089787622573164252903296983955535608057048263427130852038769507549239296403599903462350382066028353748636054325091463990936417445935066179715771141369771379463530082045292108510917402848680143100154194747051355029312141074824403749030577251034317274222172848998317495783174058356879579482633498456494826634257741850976066879701483030847916658615229647223201782507587111072507575527644874757286511229366869385666076346999956967795210266589060942643570698833593697284677329684156520489777943004591459917007027092308532098654131718354307479453724040992682100887652017664668718732005091550110781005443075523228762126839501093962386823947467823639781664323922902596161886030206978844700758717647103718307478312789080461986233753249941206546155096830271874830739786759040498995637746664047211240616162891349669524817514242165834354126128401728496176611153233904351642465255943140731584612744098143860309484222583368044622909996851595222494429493915099093580690244502243759728521139703205751400419746189756525480963672045019634789065441478499239771708108838938368653362838122914404561854045652065368527551446423552278608434740804539186745459101048653047773086471715201787915544988281635800440693736474513255847615133306698159473026301647055445844436948376094709177629204598121141215037259669731654710706139812921891313771117917619315790500429584319127251457673601147676822335813964004666629894726533849263336267386818313931550837353600416715730639614895570758185260324801431253752656399778196453603842972348045365323168073324313325193374649553244666331498131809740953396904347887036689298811935079703363457237562736352907890836810633255625850353205303616163608560942040837353157023866204992824078107529013902816589632583699532256262499435374385436912228076032162729485927052210424537651621416384993248689822799570707394821120618341007738699414552226064811042524325860383759336579328003317803311958844414871309913289723022268262396613136226979226050616562330660167189801260344544742497857946541000709246239719622658819849619466172911518799429752880856981026516397736091845616974739274203990385989239659795345673441175471150916469341549041395571045475329651083686750474815900382305383965259133874008017344772247260692250126325541555695695816495210313565347781351244968004726500610500317134468281072282039909491410743936039983224230577596858433904783128812972301138594627786337757643623634741486148342530727381864193123060870813937829118791519846519651347367011785920182768474016902238457668735792340995440486323694289198982221378361080151604244091349258550332489272482253801934813144432566156839292691422612011067490774751165084632892332057324077091464063980061485230481713742096153042062281615875310059550306774118592330769170029580459133501375547925868684999475267150651513131977614597853692820595400595160097482988046809099346844012319697224934695229136954588126978781037961359258895106771515500452944723074337739582086237013101831518035137272093173315095105034843531025878331626798443571306573793668800861752907624633134809785929822806435509674636897740073260184225693523507671199712320621320303493624496916465526780084413803677657556802221149695267460773080019994176946613787854948585807988364073281885932943020921472984154023583900780032028146175677956654405276603857538111146999711340302351142145906232770809370133365981651025135913679405521499095257805273354387733744765531666171856763786920419952887573952837105826162804002780122206867643655804109917690378298909771484847786824731379206593513707942968192992234978019187018192520432611914486318654891591843558880651271496429518056835448885149151488945133277269107735802435510133648399124554595013496326992537480805507913969876117084758816634222950753368031264605659989419024309837331077227287761909508867109716476457393908382580610626285672331395922948553522888946972063709507735354903427814210511122863119982379756904561244802220165680476739461490526507697205622362944077712945535793471525307380154483591354754476320700498488403101054230751944669036380547753317310649438180331743741783354083514056603591635083505218454000886506600500976492459930192616723058863845161210745904069593214577715969818621198002175247434558131624047717022504038232906876299232805202348969959139973660171060439496593959702013881983290611947643498532839713525374398538269876588518889051313722033705689487119859266385276493432458647937530461041026619453298296488206520296396269787841457515232305928746806544774795347687412400532928754579857801671614871786139264384967151624390727109720063246263016504467663747005943832762506222281359971785027882296360342798645733865823413050627679318981271408924037471818471171676736173618763029676041294622418874118153995143973948207093532141750951582645021152182961615132540883543216096264475064240822742832441283260423244980545506788326795254608635349233916055927996277100252395233518047129955442961933163878126648980163034276313641262991573740145841486265476018479507239180292078999503816243889605379012886663798020282941291418157857714427178393452770217872308444134283455380327863951218545308396766631989135164555259626742453797319324244321775322247103877898895991965164226357038981468761758550004086401938181631686592583353642744148206930125709150264626894154577127353826485283451131824761126504141993359230858961063610003278239981364082275172241254926189239090695635240559376150313891663068777527312406781414046648261397241483556732751789932897243070351233533958523739645343359510960243255682832477108274940476341355690349332186798274821810422552921372420731971367850841046984466369702106588415138100675661134259134012504146672155783739399811485322470616620862941334802919442260397504836353731576083206374807796523255118077231460117567116007748979806847056391783253271685479442565791143048785410888943901896557135776639918972328420147234850748053092198125560638177735734764445983062433195989989967164344329554756499780324560822782713410428835190739818124820000949383974037911667803674205831620711957013803790590087123689318396554686361669822869950139872222084933029245140103932238148579116444223869412297734693289541607552157602276940451145078296356359937437562094946126667647083056586555269640837280695615152310047467496992623086657934730624238808815419942903303412979765045362867384366919678698061953411002276233021259241163884941099957875029838795670974948596151597875460866919631742177466518639407120619145725037252509230040824230634121024714708579111604583456399981548017928290598131253827019094012085958958431899359690452642372386290391421237313206460915829286427859354603013885953974837870963249602570971047031562229641855127788884048021748333249106641387048964196519737045985024676022097155694004285677948756264390963687722763312944316516941416431186932171002652987750479901837330874719603598844301589460089470693849410673010914649373075743527264997815661298676670440649845790270450943280415052213569026334631152395402305543054275037302899469407282142045526574353427512849780929590314097772504543946724633133957368724182567671771143178288683563196925088493446065252419364401056701815330894702511894161491793961874395445808022342647528731741830546550904125708487803898989590316717550577059455729058429883127123105295554041236037575840716492065652837479848371324603633263921200417786627033147399495558302986866530010079318568259599375815836386929484073793373388899279105960736882889142894958827305580243755052424912993243498532282609950899945563878308818378219663901828787619470434626635199557346315364175748179826009582507682990400507818143763888269893915363888547371388933159915528326685636590046974943260879107887524483821947627881640611316534008686267727476144837669946923377236491586265463328648086386746872849210055697936386394700715319678446383363489434687096593911908197368075985296318124453441017958034336371277440319385517878647529894526789973091529459348502938276922995696234407136290217650327001797984675630848858434436462213371892960832181135926602642097227590640956061276388023922566979648396887835879175981674309634854381422268561522642325382008233243143500545602020147633420081176577071264045464628460141490402153297580288960428889883644942448610302860009389165185097181670004030457931912318635683493711852618964286619933351959178926492401529874887262918161531720612320912907140954454154223324139090676650731806212594151554655994578925901848308995823897660969064636516887106353262920717488796751018776486312448272484162398255094899497312222143334395411357020614277512722553505440929104996505292569112279851658971530922996398922406185080414419678481474029127447251312990352581594264554068242522191986550093561072691125886614083113135484438653984105770307759430656450424042098827087211858211995542567223059724393676335430640933759086622967712903927806951190327921695559122229301855195829309651564242059743104047554867246826734732562556500745732605459548922707774681157815482547222139850725483542346071593174700313976882735413354611662458617389184448550139545321436225229898733256958868083013821096593887046607318145465883775360267597723182064268106345099750310080431250483972883128381197271769127226683456099458033516310749741350826123763858919012999332343001788614664644369675396427936996003369873933377769874113323019872697491006251235526311875943596913787358419164186035461798947869079745730373333880390116506479556746701923531113459290868089113924818000067562476278650873800553794649916332748568307338460242857149494107659144108361505282827437981660434614297814818720311366124163778444197930046245441030589951424880327392162607704449432973740171207899580425241564360618525068837894760078163526773881470350582554731032664986546112559377319928850960921127644556644181650854875069987842585877107637081845850667634903351509385221667060813232983503299469578923276171797016791448031571899239078428681868115246221910106590144491221698148612323675372204864489914112823096771303617627372269915199323863354768076560179067379933413818300514355497877018240189042142427707599534359968411575137417922641383094642511284695826696739008717513114629459344518530620320559049752565390967760850968160688151118481283701698311565120266878563006875912415144852193870195510220257651692477686043556167701665660102104849277774371583163116758172450923282168835092632877001467116338947006898708970966896281366227389186953350928630310586441591413626667267504675949811060054080054492722342824114655143495684256661224735769683965188608292521138357006635549070835220320857374105534011725034240389343237754099996695804788038851518661362980696861281803114997880895076110212172032450440685746363281721563013931445368383390399513939577046483037325909214772367325810162089526783520462785736054167177403782425410393241219030826316881230088281127396041539112278294452772148005601956583812302873569826801093878501626124954399199097633188837515596149578977020857457565378587387958253039170632740241884404501929393815311860940890987328425324867060980823652338667728174860121680486948227314430666513623643494054071085758515209786740658745227698902091382056531784164054662761858267902160004353088549390858363060026143511325045806833213659803347352870178365676324269406181905272844093933336292057662778460132700268320832008075044791700610160964067609344524960732765418398391989405909920259752853769531519842638289665403278173903223895643196004303272196289419393942595165144864118148980387176038863313646885907820165141755000195965693548182191875005328607959103901514621185385548915786004177740732744006642761591360042592514422452497607395714014334918346924702355974702107915381999136195000523722957252566537371320102562557662292492962046563165874441172897341053251722298723790892435472184701400735085942733804782408674194241622868305276084365657809540389157993141934764956162032067016942755573735140859827964046385302598950406685446307721779915069774259026655811574170281693317292416405898054948789675109868910943072112746450554403754454081215151224604539925085282852740983152658710155897351634742844550171768649993691595898601236036147499048239446313103554927951725239492112885091203347417132169063323878155429440457767794909131955524792183907033278783264580553730022532219915351615652417149217568123972591484593841017326752098374637001931596244719183093078719741433093124583931980361349555178084556357654478790084539251997859529567516558554822006700394295480770030896326951706068006925971007071519996107831282100813568598669266629434556298902636675676459855182511396432187331271051668869537926615158539124641693131706497696827146179518750689451162059754897865164839749739070120028069134379814475064024174411580310085560117570896685808029541810668641226674675383132612386196637634197907753324982472051629732144437088436638514887190421475982902628316112706354997252782345484902287328075111982912582062267226584573081235766779516195539714173818354166696420844941082737369918529271670902023371443463453447264201438970089826890374831901003644286706159579544105535488540674942870354193312248012752115414419006809023523865567252010527431232154349214632681389752763528315012852035881128961459303523800333402826790585418607422110634773894574811006996782324804917733144113434524311796743033591442388446881483424624287457538432832723120125599367496762751377871326902383883333517740331645959789060408282065548672002648596215210344033297447516584040896600967272508266322305984410482765726170900099759586203399861351061534658663218690065718304510756329924811539768309537216359144715632394901609318758914214995531431005201716243709240882364813289049555322950727825660595659022738231711675148240255773430935320906275024808786693906791449801713312806253548020788322608065892665144012204578558538444525167839247563135932728771273358621909464907865393403414048487644228096440082850426983862454365025670154566155090489912332049529998142613789842728939406985271558935926576306318428278359065062463633476512949034255646253986143036529984120703998333569391791783794901743975634610943995512731980787166990142242062185367251673772436852872494910280706049169957920762732842744376482503835751001254805093730796161194445856908930969429945711602930593975272458740895957334618422375183927705038321565502548372121524253828051646456477069986740358314456048922530243434698062890776150716783570546507147150875916789552940899112710114724586221176223158108208991167411486742995812371403633507815381703250869326100639987556039729279277290616905199606664055651687798187451024737811900003616861847249409859286328831156614092405300762047966835228081827834853705945375654565114261976577689120793577433996078395108536398698638141160636770565352097337902231677472707065305032347132531249101776752018854560768939692258781734189377570126675747049840132821560546705889034673538021362290780847819933903629247060043174275373879597639376986263592365420580432635794705678205193341689922316560546685381877396293595049594761999362761866709112477408800651722998914658509053304059602196578998491284902943582237356945920498166471042241798792706123255166155905381063081995263436226268083913248219473476103178840047274875709426825345420764164114288822997250984555058215565016335553508617085268084157069817077448689882313769473201550477062090085485549417119577918668001256749893225628423661048784966989302858039678786590095133217594405429269073751131228335859504635420555487415163649236856585912945338455526696633852435251310538025308624679327907828688319117727613488504561431112335211285944263448920335884540934159533580428513811182152505620944626272570995947723811240167516322674802863093152476008630827126969317917155181302664487479423669919591054819878569829580278485063409615787882704946164652193000043238410577752854813048920485489133978706157456667539958643805646742861445650427172518979748785317491879675406153304437386976870605701092913329585174707105903401194553866142217575848859085922622427108562059713691696974412192922615929856134870033122773713925094727627660396435344344374398459052647948288493129052001725545886413238836794810220428592111426140679959381421415486553954197896897538842682262938047819320646270379162397727770458469982657299134438321347315818843436862982759913893291256459917216805157976430401628935964505577553204409363723231164584673620139423766741725656902071146394750194719078877389602044835717873139232145846341923411005365683279923340850987199970841292042890330092002998795134545804763712425548448758286458621449990808323924734119356744653366334594212804192292192633142512693698963533198391978197292120549821442823296033529545217167181730721374548678829714533769992496002583382390378627664531172104594425510225828899739681983574127069996290723428892986763276751874128764878127914050073399844210303226978299996292457496675624758210578390586173551488259637214950615669156766931752745050447742086082427531924221069193183467047410666037063146925646015616050966810663706241201807630136297057925383843089087786641713093831260221489108543334974781957791592388510279123798862543788797250120779729909710056052322954694981552551792097822004028247757400324390119306085039306698252740297984690800905133700823892574334851820034073710622333287224896173162241953362446207166746437560894807479191989721368718591542398076851237146158901553186555750489954099387720654203638771083806306811351341615052491945464334324163496294048514006647823308949083910311710146338378402043989081680318333528301920714983423422878623436933127336105543612809246425455222166779729389973730475214811209498859715768091797437481744549225185147732005281554286102033801751784191765249174343107548896988629958844991297375659432849559398561178956358673067066034622158025756429979014597323367280571654973695027460998217860724904199313673670156646984808454372196557719441632054790911393932518990367318885591135887497909118821508068227992326849427835583112465018600419160071545828405029244132027240111440092864040565500530335036001943363345670309097338638166256964718212616929532112524551617846735294616082645947102410945209333645341158703526892918426002016488373734289547320877946278421377587371506933982214112900256652101374584190122300355261725722809943884118338154773698792059942952834999923837841871333463033929803810426342370251549578613139621317496677789917722941539477538298816854024799141895622865916567490444115762859957037893832795538160564920963786066998964287671626431636118478504639030270140959114123758564239464246824087974403908773476922148672230435219166310929075844444059149811825775321832771196121510721915700165494197272132718419141737401753141565748006213020906777461439897897370656376159126704098093668067710885716424071423991630644381499771092102429865835863993925676093145804285033082297052616002054046878430069061769499609728270630653867066719792111633031942865847201585537152232730054101431333973537376499509935549629144022948160327392078302408557698693194330029060359715721152315739259851712109767115269593413497647598479024912112550930102742618805828608606905229455034297960684049541848137811608799303149676027139372812209144153343188480498199630743545101574231437195060280437928380504537418446596546584225778857390187783679844580227385886551927454687102323645275338323694451859891543273544200676530129580193964621957861746012421146135490623126628654156278926383353424145428644718966533270958290493578553977893209875178227686854290868157308229776052465621459784338800640289510178655055672356629796002583866388680494364914860476133120940290147771675521073177028546787280181757506164933355681542301516081663694911761417785076729910561461478982413747794309963713287233555304150387260707760292716688173371832049709396330121825164050333526489159562900596992116937206618291349571675023318493690774633109823351961639874730783037101437233261421576234928345744467115941854386926698736084031113497642252489856174960249651406068520007389242043688958967233993062391122907067210492929416716095197933345340269680157480386896903076273859805215622032997392065525783335204391898257938579329990268006895391274044583742500568286010148226606424215574656573731903341923192585820873095761443591470476946238278868381212093481145905463291767833960642672056574118971428564798302921650062362375668096070242851389553580714442031801859333713177899095429134117314310047395166536319751343685375798123447816262510554337267222767384636796700226194608519955029264319380798516582304189055429441551834404703215966284419853816112202206766023713907572221626066386218669248421877377897149570404654174885393197693848304044845044705879840028783287900830015441321652229002997173112659545615249496851599885625934615917757900899086861712126396252003258311059278739697037357025444089068021215656807728415086758593528439461914016869557915055530544474504609069858312421948607675913633809186908802975242191387940000397691783367987327014815180362831922443013772640259125324971542004689246059587204688148664055594944351903591702665112474417451483779930598802194511329978278568767618599467966878249176683909053157893399712888212588471349166881379135198827571555844085193973740228867726949309591013610769603423547284416865860815249896340782440430408817290804129125593386112796862354495944569356814204949663022196450351370053804010438321254892318035020795466362437301528783885248624947546469225353639211905664429198359322934204934610951112070134227771671103186337690222904851369053653698615082589464857605526531493781945709388251813823711118758795076146370261685653653581317090908444572798393519430685002814181720289981976195108691407905170742055941872400568099993905876944101403349989426175291330308649894910937172687648077742975389007220948227287485393871237670635076765915654765603116325469372318108236421307680733386356862979089717966404816182980443370913051893380791463312195678069898587957480149622003792400849224961134041165900125039745753535719757279180598647184090499267450076112344472356748675152438818150779407577140072322818822711664349456752289076832115981437794679618616804015749287195180361503229493768868028449216244796335096194277065063596069735812268571822915659835026969092692431972869208795243440070833483250656985876816869315244687339982705023566947236357203989492128980228321563206714043626641722993818639775776833959215184248018210609730561892218175263328506762635156980205946727256506363151841992999177047626712419506526876958258329814213734845797405650886209619266565350918285710830473195458336776311374758792031853203062354718486840881407693143956381369285645140676485509210146816901224474423428776451759694562685890462327709234671770555062431129831264608900870092098263100981564396051592376526213528889989860603278931656864817332876447837769259205089829752985344137171344344441182405007017752102570011675594230157528110564834123183886916705556128026019891963813101046938204380914447290683068434040522968717314192163209782611838822003920402789182805282850138498724229308434641682936682028132913169275701635611392773943211203676506907666483258752387445213890450283542854429662016683411946116970808757174204164588533244274267394405084240803742555083257608196522380717060718371521416219613388771069031061781899229123975425670142471766494846394931450909202092272871294155002113460645140657241783875526154106175449358531484686716104551839458432461509130844561746142731831415353310126116320722547505246618778213201388681399583461669729998315288145721236957914981454327192206967580455293561982993204607503128726221519263525931514818244629329085842564658015485401154395754956226950822747189201176322818296465973691687136447606356163471235966888950079180158875453612006012068766266091353788852033243718792340865715491316015358065216291231808205714540232174798494771740174386521942393355597241596703764795996757234235572436621722907115097354290999759282084738934412413589862761982515672199810469189894699112537333135987074487263182192532648069065499327169361895167932861309529989043960769061884171552061226137568498230695396927588188333449071579710593374601645767426987669438307141250068043364297810150676435553698815278191839229419107415215942369400855255375076196946634869894782482768689156829789372316373882745578531978373992131390779290827729638827741179187399632684448253124378776994353245354843809328830489737266338083997860134006407681266842581033431269567950537981550972338475835749116921640758154720311949245954647826202087104810817343786594972935903900288974819907962065494922075287975123673334961752736410679585433548086640350224968324584700217714148575477132896478759183372861537688391754106631112271572132560335243129150101186674900711261721398190777636980558629007752601669862942935804133531995986237714327819453884119094136493672736838414228041359523141018753324496866278201233829542162318475757714400209302349243876413104973463479426241781950527877495630688431003215843583583504623144522313923472021560552989461169388488738371610133665861935914953714671035595599895019215319866814372883917240944332764439982375905390987414194866245034206715540881389758981932016181427678268676735413314977718353329840824276432534450799129172332326960039472112874445932854156235535563968992888904511204098344784160102571394720256735040793573196418105707746975845784864821031917780115050018693229605959778965047312420458892831469376254634477062708498008273494458477412868858371568707045600023244704611057592915056127717318293017823553284604768957277360800942653292999149891555486111589435663766440489872796484700640900209773986428605378636307690012299646702380245939980988349996783049049866321097791537544053197393926204658457939922566133341639343929784221118033697363676097913329191209702298996658370113792203555285080742841389276235101350379248577099843209073159563246309383510884471365205660139411558563465903071329181924811936072950653318498793871777193644135586956484056814223795812831656932713431743069079336798724686046100447386761369867559450257967167639567854966059612141447879559572582120922890556665634226224270784380474186623830816702270296765224648298025405141636913509419142240738922135956232533201956426777957789585857990317272912417349727492957765214904424166252435300546687738932015160353674711375972762858445926834211804227781440263160948350332850453739015780828742259929522053389114703347879329586306943612039330597697385882289893448828507298978861084912614515329408995299922245687374550829172625917903916433040350956408594915268513263224446858840975344089293627644243189137064467317741573100573823540806346537832860252912506267206640924272291703318032944636538564754331319715953132703161613037293588120586807394766216184922189276165034619255236551193762639595229551725266563134617416064840182431322664882271390611096357939392071642974203836753721874479550096873038382113718022339646408744177522591277899036101331490758970901912036815736085233478543701757975121429679850283707307764020011517976134802406403796075579370459574428380421804694815517738212406195917510825154451117054127188051827141695595860650082203711317437054503169502570379047236992203251431242706874765378117556638007250427359998922411460019684985831890761229445642882669962795158456512045069980008737321762658724097464595805453120172325122544546397472321588369864994220598804040589351302263612872475980877563720976046505983595547799753659495165498209823718759259635881234595763123096628175108384715378853954134730181215361088620729339777916701964243045221547077626541075668578761976914199288450095643480528492434353225218987886995604515876285580030924929938178583902689887958346197233621530314665663707787871486146243721458077209821736453842687544912471444677301394314261525784591564057848159559257912562730487722693311405706861411802881236857904016577554446103663616854907667796939191144644443314826902984747891831719642106143230256122290207245256422146505291455527978450689307018148061803725276168795596528687940474691926975558322966197113074666378485147757942241814537028539729976253539706673593603065153231774871298408640728357006438123658164184216802834625153033742148281664076130204124034072589127946202342687955282282166008810730104859817363664926972486494503974813980794113136159760420227637182608791748952705213892744564178048053873243173810291401649197277195715017124427819734355325989295256984656033336566162805442465705204376044980324370246415525071591452076641876039747769081322756979368289577696058780461165060864478248887591023747329035225723580927446305150783949299295265607405808608419375123687095097184215708826395067894823651542047648157384312400275161904568739845465036728612585761202519746457554544595780904413823003409068393068731930852090453621000827831160620823150431905202889613211122783197782494564186265676575466352846932931141534536782147274659505133443143841023091778541591289480752178592916799008742775219257008633436108748632186194775198365243057869570951031597168012574301220330792307490088218001739744425577194350445250468102670888679320948062427106166478469005246037963049401720128953283639018442201286483410684104172690002327880654605221965168183503204210860997384808362791121139264614100597105770739267317503434511055037584789718281912893039214545563931551153055902653824087845566868707938998962983287368029675464060580296625296389065389173050228763570033058190061697332990189628544068635946620961215912530712789840990075345798342637974373963274297267115973778181015718579917168898595360261079865407924058413947308634253870271159318836974248734912466832588589240063580609225549622868444521733952840699315022973842454313156157300903834185356502161236630366783319045307402658060953007586762034406880497031790419318170013920894741883181439880916179434752733468586583745592481077682732231740141586187099499513001127296284268142353727712007195635583887423565317378465172621095831765505881086245395080710530887024092040252374083434564849123926260061577009717488370604768422053525747343450929073905181743375701682444574895252812882081710993853812234412971267018138801315459245710386756935636455588149262283284306001624633429272739115513786721135614466168328041002039092884173242005090432575427897213549964812126704625616202596694953146398297094708387149653084835687586100965667783471072375046252095661111326346595856694573600014041603181545135691990412819393485976684074522259927030045938851960871412669827513697776222664650663478929394260474237846285677822573062832474960054397058580647567551576878614482806198688647870457272545224881222755145123440826727229550775116240027484122492476427323698511257817322700506583275408950429383370879659812867478061528967029468790097181631475759398357587726145593877912878958424494342994595393895149192260623162877666092553413568910984204844367267861271931475196696527240560714017772658531749929806394733546638640919883643395697544898547194966516793380856455570378524105952270042584908716735978143176283741078464378901447272998683967671267892290096726369653941882024790477339713295229802720767418509756794808960488544002882545848191938102361438440624469776927882515548970302825198076276164120580504556968649383695472105826489412593281336741250816739166321519047523693081103684756629888316267539000484611858442395326774561015558495864443340411224072132612202859542149147899036612908135258162258985033875737654379348493790443704029339820500036714083978575221226043952109590872184335086759882615196619381680851029652139606870496993583675477232556701216130175307975272057193325083734398711702088067467098427700853562631089640921801671512628655462072010688745446218057001495332078225607508637046266567743745577840194825482626568452172939787730256040859135513520198673190165206361561662763906133621169855854906549863389281938777193289789683977252764128816006304532994990987850649071319283672840689395576540575218571887975609230863384297084678754099946932024013689996204155313595928522195076877658422803138548209964023531230389291213722522160109346333715765897952875297079080335562899231691956538923523260637945837291892561654057709640894041089746264062668372008392151283280023810550968356273338035026461223626368426398527709918853927399696951992180435341501580364959769653330660074572362668549013502460839463920059623045520287252190400809542189132160172927462171912677621126537211545378208667529963383066877497547812697484671496621646588120081024512366406074471341975573017031292706727934464637692744023200773007923225537225032128727936732182097252780335444431581733516048853587981827277015104016457684287231017567965718228423422507356193263300531462119448129169548520741574875549473485054541195851747460933078673181788071330118072469514090592800091385060706559313083667942747106331545309979194608011913004367288637047510401566581862119350145624191947372145613376678014241817840791465222826857800395616958855698814516457915559000480281470917437761474878843308039268100317908948873694117800290260841331265803034322696046802348112991026537318039814299321395316913084196261821492701454554928163274474974417147567812893909158066234887820243376272065996089806497199341938347880750337112368850233082366822282826951876883688296774631926024054208334748850446974720170854765409081929162553399259580523886121350413839370923584400333804143567365335408782158909076028370403024247734200180014610109416949396464958561510558529369846967148941595711975963488013392976046531445833631579449716221701251473683502389644753667950235632932666775796501055163298421805075321024207434542057216544155673818755602532848491969132196597235398333353785424172462572303677643735931683901572507141247244770726633995778223551712785551082251826357731863040219078552537738284720964692815461886268907628653156811945035907210964935799828035670989207276404624066770155196087536867939537764602212281936383216409318030328364599116549879473129897814774581036610643135409714001405510050419413140354652318978776178751424826005411026233902788071404641287995954034871085728504560355131604436702188742458318568900916329537633093289969755898780192345152690412848651836967774162159185106544074933350827757117113152677151626079966812374724471571301248270233957365701488318324940211553006944626254584766776986488520998837471280693946770307720825677530564852313361487596389879220695069753960192609219926735539768063354841745419245484961889170968853688691455257322417133618895384796526047747308701445193506690617476287021258601694198551455622682515480618615535743176095304759352380459949417497678622892564925527361296394432603034880237305818679368409841393930984803398073341076053992137741668548666346900065511525413190631881062931905672371498224651213081847005120489223578839240134157368977769462673591949101587262237940258039481008791874330944547391042934060437774852747808861859866862080823800750687186899712135819758393110366630666557203653767777055145788766199265864728331849908056890560179929864726574504027768660911448184273897014607118849284246244772276881762613563145239765726562627809132636796442427410327462572287023031506415023092711792998245459502787956113073688185630574773937001795059824993619427859407632966394410989120706908296940225685455988881034477940450407907159961540090043404774899091217730699923212446453629508707182372961844399749819932575228767513661107889897519067908473007162020664002089492511546745341057168911973022042571966984380110303061652466750486780130695695812432215292145678950800698664126224001232328954937693819690206199721418290240175987077905049500331641070750443766284350782931937427372994922185808807542164552373453429438370268914019662101231885055075856284880132840495093283562012997905465733470850593310719565097102948621520402791942138462833091309269703695213245501696990501262631552037385915184857122357113576303707889447897107958033924646141547798654326531557225222611471685208153956245946270250124728656617493473818571039305321641079259565374624577552125668646693380265885837920706157034622139195406520819595775020435973594829605667169412258100691660525830676040481358832755967315640509117444070400339860187594004714920725890759181635027135286613346436075656854942592267647873587070713632946772345811918742772634102160796423349262170817026732702552273227042856036562483941244500414667593944547252220454656689924820201830565308089717407631047942063226736299716392576957109758486368492006835834392226488892643388912266005847321065573125804415525612114497184038618351003552683530778936674988507748800787336013631560758863217421365134864959713901993472226969811016329920568316591546096703214043292335797177418288651653072995460774592660486530576928598350608574423798502998839452311684147759838717277905067682850464773619408252278055943054839572053461231789126495592732599299834017347944546150585696773675019619371672396600373370687425565122273496109106159252562049289118036313246695002665327540224965767434649578738097118425624221022112870834529030371668418704466050993258806055942166036619353541935697094838538008833873393531125124499164124537845765255058699483985728690037260723630698740141968028571726454649111019484052937434293126002978092120560552904739692410599800983600889160559201661972071241745414628598897411809884016339602965290341153397829807343116507131632647688331600813951178364633356733519048977909760243281071955489858829842482344516555506009577242884782947585288339759810567837206720824642425515838080970500159008453359205537690964277244121266998115817629033159636592819809259860458237688252430665992279607878102289789583085582562578537612075091991131609067204775397592603614025436763257750352350991031836852803057817804077068999858701060438497427205101308666913723425826591444072839645447537621520056912609193406231907369613711639944077282634909709879385040955930109140910680546159369705459037169170250968261248162808816128236731905388098602762635587066063089189790432615213811735117662433709889977656795442819792974600275371945419678289729775612255650252055442874544092747487124240780963718383813520985606071046447507451055421031148455236861787804682925674193899551915317261110247214325398534915976812826054591730917024205634600523527604773578869887106766394814030590670295999102333573471566789356531793444339549540624211831247047595221938503977867650264375044465657554228002941522100828383080348720563034032394954164795777906284106974168795496335330739336520489348276678338715642851743307413200992836237659203735241882638253180887243595398823236718526899792557226156510410413123667081141288882759310633630595149784282507502159181918407398562304428070306324252120445561302811560232576775866220207513653916281190115319997781344746719313327915926367226986312297370987721132496307301888107626130015552283937913352259894636282783619245335713518833731545695762241219738305509078064779678315417011806244414528725013634964641292147157215441181047625944921488786638433922817564173709718645751726399965597498533231047205488273895272958092690183782971459213196891305877737444370011565472889389798842983604709775835675042028393997803569439424304946647076269284238581072982935011172142013293770443602337495100054001235850886789333470809731535890329623066661367952218155415467151402725262336314881275312597248630176977158984325824555533044012937298632916527059892919130177187735215792589168185514726722050858141612010511319245343773877723127228485725384546842324467270226898013159364892829967451909001722208442614788799034621318572433988454817457199348613431040411895972098558292056591550805035256535850238929749512056400397546542218895551215040180648905296116754665311772825786501311836506900492754004067327512576135670244342373193105059759761509105395901032372537488849103521888981504425313535605607466068632317756072993198303653889932442132664940762557687948221983541640089346012645042378482659563328786358059165629644447749410194121853248522127941887023186299990249504408610463143493414206301114564984727142676161996193614698877932917179786802590858950888183217198544245096292970480482492591872814216159297813951132464423287971188681953942971508479036875987270621708770817676430513256156252089653705747055166604092504475643801931726585086925722750124989695386173023212266911446903958859397379109859043445144781856683193253109864611598559497285177111718376996665615030501110139706316532462386836227079312417391951937772440212022334364184705385220504503124943672805409388418878049795513029905328115453766263289576391369299314773645634132637665019132756950515642432039502478947125750874958554295392703519538264727573380466066450765797014170874034119922733696833002666532506364233183523434695343812826934667621289329900147281378709689903692000109205176201363090623847130803025602043753724564510136517822214101320860844219886655477537419015719488796512505685220916577065814214075203459664763218018427061831774855061309249767762276091473529265095528008164342726080729501491001659960665263042234456865900450612011278960038284837262864867377468519722623492573999793893551850589433221866086908447203447258340222070901138974560329582758457846250522825385110040281278938784339082716274142444556545437128890228238638850269825166581294043832200596201209459925302033950241297492397884730862960731180647648809085612776522109351934345762680459263895334817141327858342536757460026264140088831147566158179055339386946281905574703298834107485474624574603576336588692376531134949342374380890494512451915630721679043326137735182524847287940678443308776028003438543259875741414451136584974333054627199683221780500202108319179763777327493833275017942771744665753026596507537636054905043851152243294962919405413533336722382693455477427606276341851955987799388016469705394176590936789251080365770676036394111164026957787563101794053604186801194669670020401914072824717976591225649874522343295536453453061145170105798398387727226203711838699626459174803940054617807232709461217782959607588037736109425572106776821733431429918370070212090662774378884385012444133911588484209399579466140110094968438254623524706484537003397212780113606612780446207035345944186649913063220173290979711470698894744462615576027959501080126625188358605798866301216366894556637339819611941954606318132947148229062000285426703437302874583573660458528999300022134561375271152126998573855597394447978719767856387630040287172631652165676484784046823891660720417230946266334828288225741520590875610593039517271696004345579010968703046182832937187783662888945831907897258600306717427362345449540968934719425470165496762993380622888136652162047740729606222228193145160955939776434378804510936362059710453548230759262413359514707772723917600340740664991876712326781883171533949646736417379554118494626082532032384784840145945826247210168034420078428356746956776844980704835575324414838228718614487346497246701789399783799135921201567869558206891810513543050125907074325030531884133640780810985979422703846299175410208202236171969394000732182479954354569811454418171483326732144517680157904693025293789471528431880491322417949890778384937284786499309110292082968796536955546932201290272984347881918908346482966951327864512048000620534754196485862783140902781107049780703148250982013905113279075825512314096508503528066576696083746499387379721227315303124523571965073247769535749661097862295495681414161462828496903340363361523361821874533480407318513840387994602956513354164597508391055101364226566597981371274178687619147538215213278263468832275609125502185199153486509687464673546912290531121212556552503531093798610361881157146083928142923781584617529038324678311357062264982943252772664135118263597352830504123923172057857922097101652655903756847888795984708359131650577311522977195446345883330993211870636056637669624812858329801530513473432312162374906790097992054562565062709256702128955143854622117284057038853368268424018006043782593182725982100779085345968265205185521631363105348655031306687110106489938590559124582054455492970617064313740723700518850748842622675241730891581189382994950671300804604060613540896830323176040527657989091257185145079655361986338966106358267357934469801807785961208654629666271133986358387189833918149096945195173379443948954022802814092847256901292209022047230438949045928970155965577722709952202319016928599810790989590159331969165686251345453358787931317033708002756273212743865348609528240273537885044650156157171298875053402678245136900801377201898381159022259613250152436154691992857684070392639375820859109246400092351055870243812210625915195768883413806617869826457774697602205221680623181750764459482736684743119945545266070043090913434937485164638124604258452640858550252396227353939370744022634896997721460669552530837135017564694391064970897152059609588091416677900671790039097982914945582431985682818353192519773473266777585081331815679495079498885868998486423597874889914264425332170610400535589781560236224610453316858600387592816861123168178242261701512774089889443440845059466943651916452113664251131984723809940623277676110577079913517761840039995736018134728657486803445831924765411398599101601745014432331070463696351449997750328023839245749109935399049492565604190624908963691466502600665320451576109276782794950603857816675611109135964530157349640761971485109199009234971684576106679607110571405401030711841283208293517247032328922303695310248951563613372354818482506387695035843386509388759576132084673425196315326037089232967365821720991494299653060928121149901649869387657339676090332383894151773001957562136659450675638502150689094985531301941921329575815867082759163904188072853831404272654006019369412386535921970384280937095695682553164473876514553673304557137364570876570360045562674735236245347108245835443257837848418329111612069676681483527223890912139210241543003213585829344353072868178943355107836921899629525469713715261846711697201998667911957878945291550822296286644232893842244998366477737787110718333206978783947105365094184386818077326285555582067023357395635416077475807240283460040895595438871208454077271309358122264621594249896921384236978652264060076535820606628696259178267051461214483891554007777747325701116472966737941518682018924621789434970976846668295236934895524620136017107302667733927232763538135229529855770590944958134473569616713806578334104178357389619846358534734404614347289230054972182902429811202743429917830403047733123886162534171226401876566332769049047004088956703483818556640290542836700935758771583984291296930066647526914738619792349541200974119133853715844757593370727967026358675753756810309661866999224346887834576168910294787286738172762981721041880936242828422728551494641569655144869627202940112088843771693987166535500001521430461450173469154239794500226209022741273400692698517660743765168451921610202732894994811384690504436715385004263741908890687778821984662873074179565929146922421383261447340118274635574087416214359771297051622169319526141333102087271630578765725204571132900748097806766492135136605816290057706878265014191941869342024389117356698605535576414665531704819785401695202803233568173570796082622159948352155716736690921588342449318945436997959633169902652114223089886970668439093460418677116974352417091229218845656886936978289130746819313256930967130502878541886386395144585327734722691151507309288998243961071465742782171258525469818620084340942793895885367998890268511875933522383546217592753349351470682029067387438566648013031379327479279673516706361809076366520015045780978882799267864213435595473555658275436528938410782548822625698976603121811593171530008607320089801409738416532486603129866408225223433902118919418977266836249002838635141015805529650051302911480221042803012125347480217767547321994699104745395370228571696131182498082954649180708080088687853248554230669376781722812135879463168475340316249715378928107121418934194758319641499940504427111715622662407847274793595916314923633991101864655898472406816050750115434051474349200500474554046091235891603768141536084487398347526264172654260922243579932196178848625229564032679032678445771475906999687337074482904471826399117366484135814924743439127243146058179215427997191530722148241361778637999721903777620158208386456840559147077159481362597225528848065978408886157510440711408366454694818309131941490857446299603979343236512014675164173860794249683477526501361282913566230811992079659486784209967169284710498649312845234867888322450354358457121113641019229011590698057140186822230406549744634795300403893262895265683257568872240259686820059547432564793659079025363429080046326093025655017600229191423198322905295247182744019743763146105020904551693257895048607275859923671695483749060043220680574385851751800365186029119776335271153735483399681180848331000919200079882114802203730315168742082747554889354436692124335030076054666559717798658603524168728553858196396826595325953834045000767489153941202410511741118031134653524122102050843313906586254119571582271443497792839253752448562610690682076110059902773216019517397979982226566552617657506657908431917995602999778038603667770275392300829595346276388382338031093927533581268538286674263237188421244689449904323397676161349934931845042607757862479570051757035399046455921297373162584678211762994040458038525533800944098377940821276190983411358013331254286941380272953555721407543611440242326316456124561701649535454816634920918503453957921138633571087221576891070945378988456248417840242726972692478418863894397627474485084745908729657424870093683418096280275291225122633368130722539256209952395564517494306039381366199593664292108513194846982419242418743104520381659774275809183245416511022859026561117065943045101220218995445511890966101944906342484683939524250520206871237462084913379619099100187894440134376517048127384816764839338106052503914545031425822946523781398654709878711413985573173776275185772972102397470304179861196491564422792926081736726157766558743074032484911426768071427430620370512359745531168011403497446795045854771005532705639923465253841881343732109215355847592226939465012296089685467887596245722194106758149014498898795912154741932315718429646413470817365814405945399969729735813636572037448689306628236366661830651181298482204166507154560828148355628054192071822349536413336517860567096780676354603243835227698644392299189775551094540375907695890445015240670471851156520772702971838376044671302659487152312378776503697056348862610338538456706240934749115979322891198308097578099683378250602616131200814024300578313206730324331592200653878595717663498963024327041825164955952069246095100969383353256830890600173561147021375974515203115416733144039258801088990212365089971529448107508473910409987577264419377488204025996192349539150360983838361295423812399723142534358300762924813918953340075506437057762642561692314681378799344748548219116723528889578229512071173692100396923205888965821842302725197191179336233696658588913425425707489971595429108479270580895152818048570979515671309875457005985228021507354289312497953052179700951932943640094961706660754412339594564086788774509187083036634998048965252443264603216186760672798856463347768000744786316196376775707164545918131298250247232666535958618282107983301470799946092705399465686330127563964016377197434430065511478770410712692935045046598743663536292612574725978356253102430024643992678559149915117033492515139832042672401710282277965488085818568881995003790290460653185343215287614679314970144792340072409467600911206513029746950937702670117636916912227095898628223617785816075460059191444322835280367318191523383677157387881978825559687858899856204162578770997200296537003239175405023438517650165957875056329819316842679225986049168524120167445375158242892987735765325262003906843075534471337922658389732800603318645607894904549105898590744868365365903087421255254040313425868454637159337373348613961903556689058990147004948793898864557512121571461407977600340287511763320245163848082162899784587687149444940495378575069966148252184474510495896552100336110158128316236695233494632390375698268821288501257483481929383713718346012071297893596573686804444081965699337930284331213614718322364319289489639379962802087724215310049128550237051499055072031782311155814134658450049823178950447761815693567696871946228986628467802501502163831138698801862418510498994010357111236334527793982615946096980349400082403670369255390555989723823170819448760994484828001327570994134528409748631979163255396063750081019077913671665229891263966391766870871815660357553214337250925992767152195731749069875710140440142989525127967233562494338404153524464890369735344877994875649679134675980862819479369370512956892765498542149355330267625775297658840603050135634962649558280078425040174934620728347719598682138661643073557945840081009865792966460462766523339673494893330760264310021677097895908622751359519702810759579500116059808637895788085194242337780776797078912981375577748420908746489380626980514232934839350487545541236159584963103525024728364514385775105085206340681054630509188555758493226969432938241143011599002306694716410543325964100981447434083573861201009244298274467782625698037748984050944812033577205340785153958252717549533767160040500068712357998045826866797523169182543493259171258514741963972458267811231740170669424651162358375506518155020627586883746658448057882559663404151755007463723563993306853146326989482966583233179022193220745747902903064340918120397058142255917258363395376550564050108865759488630523028730752342074407660944387582656489790685925899145869745471847121102208357143601167097334330291871002484392635705619132750315804052795400236968316030519723557212945843029068257249452530919562012569376978202342067187323561785016116961089301538348487732552986440215982541372953648137911539138809562311359233205054816673464195403410086272542068396499567941012583364566858553687647238961387052405600748708235447790830951411925177780110458046028910841872244415558313481021013569181016795641278933746750852908260937808264633317565978175690916814249600096650443923525888920269120742302966014396991588911962343716186207921949601321539683029474586182517448593171261885120315623507615106318903848535388535971919015160691912255131938182098125638995440767446774444170215421983781669189716291352375626040814876785940002013728471918544459337384477233378003533383649604047185081037073252305444230325669202891284213497770685795929668407697668485196877554160029446529918558750974653913020259541504249762475806189675448390320085787029870659923093890565702908276989691815212949815522298402176085814209213624386984978570540663322669259394321227836343818958171394674622945569066815686270507040135184363016084827611402840320377790899252537818488452047613307607895238344055683524875942530767646119855618886819287063144763934396514619106478133665113045020177904281769677166056277794196340787226241538078893436875511004167403081042699419171369613270049462325841746564906411920341301882551297738411252535639564531366021796157171191300826734144807734762933060980396390984352089913761927661183967440317166543277594459021798048246761813459614472529132653017349460396259931332027669547052835600061063128764702058083880265041647856688481649867646652273152974984673011617632642681306879669219775502349190449650342208198672350556817477310799487617637829102362814833662357478337134609422120089029391965286561265402360233625681679159620957167443253799758298247283607535673622897401836633242984486749645530562681492740019407341338422828519504761708245479418491926946124270212577224149468969390387054316055293492994346802368601521427197769030113457816653201339017422839570408573406737057304892047606674878653843781768843689275950101994142842600566103209187316614157683054941181081013228063180661148609863653751914560002465274126538613723517172632864922020025940823818382815874538330068965146312248312890047001039098688344791669214352690458596068635362868129014108348020578022331995798886746158772234610619969742373039918395014744300490627813201451088533293028996055576434000333489862878206334270192730418875246815389611415243801772758806446449601780808723586223987358026913538666580676832088884570873939614239420241903954471867744263270248431074042641336211219254460863343108744341797345568377683601965911364554697908688974930946457823291438097301023257088117205545387187782046676255750304006599248709161262913401421915789682276587827766520867621879035044918313198042921621581315016070426513194798015128097304903226513982988536709346834446308370404525152961469066087504223741604863236983281025829892145199147451536770996054859604615205884108308378107231874045858574184146599116312193377454804943010824162079203121083516401761478868635089522682057441718138046642102399933418467131786719947062505424077737263000165566320615754819185524701129368850256299776588891786611935191048481659801131938924397754785364734531629217011436631542999021848234396258006227061186104313396039035950446996828872495622013693837731656196363239196223051543540211525954493032562760844664263695188713329683367078817438873539328039644011431425374074881588441348005309260774403716647254378253754066480963913548831663652040197069399912895971522434490703229369578208972439072615776671024289301793643735865655695477955504854025469293780800785709403157846194496242391556975862394608712247821855653052972403663176712053187574555844209946009538202153631891443475353976716833391358111467534630000819470526819131929100416206642983634710713099695352992643871734313620608390514995780529346690224766532423312964148702757575290357577218783840598562981799390630679643908637149739028031971457115499521185698675158485272336732217839678403404023571131163523684615720096867924715534548613476155423806014513879348169053784353105889264079700761827177290195924748872881838899776688212814408706347231602604466854810448176210684240178109057730471305463800040303128210077280738482028065931386814290139347262876538538321617877296341767971408165478106645498415472819497750522828045843028487704163793939017262243425968361644421876290946064512049368961777791453713728698401646577627894039482283928264527322887043398163615488902753301292040099525987891841900731634471066163683710157937306084614151552609643468822862543696606285026136381566602061953612314524498359290924470127771322398846768745520693961111095282486864979435629142783685436668469771336210956261599190880072065900483133987710586850350924004760572282463937956238597137023179836187200162378917243331834661321774515655695048994004469997660698745065726083089065198160689347969473707846067367615424739871619135702038010966089251430696747069518945459221882399896706189618418293517169627553001059791552531213190696446602976425954515710768559288984912100521304717687253676698216415061174183722488607453784827346401424327554950465097457648845577626469500019996437970963868110789504865467752689731445479264486756961997839842932449706900167330680586428137722584298165028753691174605673776273405415536947246265862093930314363014104678965853494410537476148370296797916215997188364060881549315934259429084644532455785851001953209311337242086631188010553507968012785329236920222984032116842955301543415518539179354102143094666028059167367548713715010859006656839195237767130679227403709901827848866756181886374030836988794305866037031248347493397512074006212501947303938658859789180852342769971223610152893541971242716243756834515892257697517475188716732710778760831082074647841117605056435475256164012372271807715780335945907302127556113647073265496142096462916617557995471639442583886226012801119689183230604098205440988360455272316687385217009369254609597411793223595200817411426004963812485329862056193710198025535300236513718918169580944480554899889074519488760122357315721219205540739370103540678915924703536872203312667905253877916186815405756561784177329248061434411192083036007210167929543877175007822560042672634664229132091732100826936441955256384061739570114175715416462470639661320704591296203409282478594895818474337796321071471061574905314821246184941444313079071614517235923377957844580574438824924556356879633987232227998382697777039837361734654177222298760878805895140736837082456367369843233826174506409374404509858094443361593061332890468984083404931036204491828256220015519699892224384334655464787892754712675925871811738365136636063368292439004929680840047072664707832639913340135150775571788982394519879600176875666010514180442721004459231378688004524731831767679871097799053599386934629752079858492639106272027033900657851726941205290172770078529032015034855115722204057845205673711471437472564078567852703394434968859176839627385028772303848416267286917621823386603629251522873068347919782321456184580866664578479003800076814434104973054013640912731443435806598505212237180568926916330086752200487701339105283603133005406003520011420189080921985514191713846280759649966191532586215977504920662934775164732230085455652166469222970388780918023525901713396507395601398377732044818972775247257819251599294666191276152779766249151967072222150223717562399017536085146622557043015042585485521369189977861649528496456388055078522479469861932744789841777431540887933303998893939673250342471129709101406186671844242578087127423080952853182032354950012414542693783617423542458411833761463838443808748581577815075561398478873778979671300695839528959564250585564567608532523177012049241613368099907697586710157797210940936536491344738085064768818242442654819149538982461251366137370675253057367795516887318208519735521688131776935078672593347326212979555427796624868882105204686091060042713181392098748471293482531892085871641713574917058892746175403587817433131340046145821154090499070816876937182609689290375587965880936086327926615518243229878946006139401708398510071175891592548011513334080145061202315086958707393331009646234542656093336068913413917133358113574469867751745863462228643313198649802685945640843711760051526552832044069860328389257790550257253970732755360122619792325589394281267114999505224196128133857911860542354048730056555487441677614855100352318986520912267580203715368316744582736113193218077861763658373609445048230215035039591853631600037114624694617070870911266348837114016293563575837737173722266196275726739743644042194059621587429764958608518486972854192425292505787671649403385245119632401480064674876101194506880797677728344616303532794633707893674287161126546104446749456191286597060456944257542820209611386904743750277829117502319950971979526149436552836796198812117157720515862908121345360039706974693229790943705062642258858048692618312499413234930363704458685785383511742958164190508057536427071977248514223414418735674655993918690912029021711904431274666508423954667412855341381364273821273100790419570017810989412851237514418679618047948426391998611320951352065924532647150671844735909701605657642977371538097573506070778309319114004866862922968449790857362326551648365464954341754847574329782535561656030704242838100053382410342381910738328550322767697556862561347668723100621645083931998674390826891436131941092025901025477679163680695949588826732670246149835514896308976769382828686730664056709573861786309392135160697178164616347368581938756651898680052488773316662568429665936850879271943801393837744754271606928677977352949408231562152175899680112723365263293222544289027244904602324852110147960901489871304541137496408232914417384577814559204925674653164244142361551841354555687749600472975401098533519628723476930605768490208167850219115449062757232510546603968661422454336016044680009265486052564255599491032174737317821327830212079956651169417751594366467514578589073224406269738022096994774258021958028128734095047568346897266117035847691464140706799058047246213984289725063626792011369225520628666248078026891987397352990706732764203153709260447360827111780967902649083022780885417418329803487058951588803124334732911571854524923586378458300169632805591866319191993025196573299584420612423986344449237784285156856474372937967314125595125482358686907654464653844782144805306382983742106702881552163622179895622496714526513998482680314465662517266842106965502070051441906582667168201833278547402416957688722305125901626269951653494111962826560992731556488927857729985088148658784631427674103309556023434883819453302812609340970461246624798449891424173400671515321541848648794410506551470999665916867366441057324449661230415150245982295759072797219776159095802931010339534945426383537257099656178300075437883464326300649621573158987179468772035828280022904184233582484344619738325001340106847200196447602092409711331332451541003479734931335346067430546727367468775664388173810293452763974781013689321957038069620728685135229681591087470865961102156643232297409084940925354732006714248955030755367179360887028317985734415735416446063416334780108138831201900966177263425560676662939158249657624598936421878113319917810378980958377475352909750112211192985082123019494881712878953667742395863026370976872153792840595229008324144623431655849704668849006098219259242599733780467158142658485774144649613863913387993611758302717473458369742773931471238801388121946164041857363957757283285189601062863016829060353848334272584711309717808734853594173427135743892565406165831655816730052345256420969396355013162220768236396688330161571598259405222907618738953702516250508163690254278321408869830347929229596499184044472636490606839155307838263965378111506300509855371310245799758343692260770419679244540381197814963883831373106472633245430936691788827883660598261037929862184332431126658265661816365237188241948354061303275494188259536146198997619901965665514613765621210978622085798161413697398841100357432687381925204869311531303977357841273382512964475302222672303059495685863804361432620947114048764129650493248327012598505953971973658800640176337114053739869873690325625957447076724444885453417805076494139941264929940589280975915511206054259992649249073227215386297230181645429721903935278417355366129149094047822578055491755658846243809948979468814023518896538231048058054671798139352965419353270704583029056531340730982306422884780166701894788343289076635655912869736546052838315153030975519610409216591133207967976454049530811458701866262735712396430607059520855919867466435338655003909820245293076419764026047854682069416103884428821148842648287235510842172871463382949955009161221122102723229936059183510316626138861405201150094756027749206694850243534295515881225437967433513406565083755292506102228633224903407960055683716155986327595858359105717628373043164039735611976943812753434148240446413006689489631677470842275076599901394361802468099086147768630891270928819719184849328372232337380564084604538316866356759551520309533998289134487050071129022188417773552054015597033507463669413642940098129985001671985449668779639874488451163497450800752637458745193016492624459893473710125147240400298116178197947879441128609130432140731471459145730275438158360068509462897555218682016540463856983446797973143057868044276674361635144217831232375329628090632130014927883107401666933236836092889737127496609783438088351833803076243809756447917969412983777690719323832114664493027611488310875290860556144589118389095805895370290231045960417194885691158010582130687836840336561126967791505458951386166151504141238829305953895063933148829728856112515514988603239757253486926370973631805830369469435388352500429953963124944799512153274560034691964384347015928804160461730914776484869583445670931132053288179151862679809368482182780687595773020920633113402565281069964304994262807991090058378098958893892680604582827995371402404106637003725441700166564131809392200449322357952947947209948818401773195676495840892023737661682878267663554174392018936089080034694046269448130442536242614978073289721993248307735368305714774102125260372648936158227819130815115091408225823847902860539507841365402701223454882152949505543813345336644732658618776496890450247406228161707823929127199890347068680693646330256595772470040442251725118591984624877395670235009740818660860973370836208931103683435572888287457836454572358487730428705358826022451000053862245727579516976050524094870843251163271738915344087943229904198588035593827067472646213024174119321872749361454048780831732040993212035032800601801484697034636204843310195735100427936447311803482824981205503598272717666940206973208733988986925870689706354022190499946837046660424760866853416947040831685263356944365871545379576934949353932734668819680283283038397176621589779926378314036768961769482568825107801551307490665389372943759779261876176402326493242532890942545818403376189473720186417966999780303283074896430776604475415367282587188767947874246803958200411193069845021286450672189624870591427707429339019495493710826864594687960291784411445974731392825291057794651799476872099924373044738088547113863793137796441793932230654001694325799884222499709165908055738179325071478518501119070011683601360365099724656998446750118536996592019841321221883469736831046548230870452394686964484266832142614045287460572510497616388197249864001726944417182485181382496536419023388109433849034124006281327310961427747451956346381890782089422159669695182572915953766556424314047164354135787380738682267661432602098130594743919550549696133408949555950318033463264905291373802964641920517380648343025981933457508841906334996376525399086028169484099231860859924464284679545685503069701810402659419736945867866777248328819821568377122975693354634279634379603863082347837185618392792875550134904730520544650313365194648495140085659204599624849467236006000559614315054845410145881477236262304571113945926528324094771414636240691393003032514867995403893519314052769706507539009554325154617156383914301845434248786612124669121826519010161819696241903734848393985025944695644167484549435682452103352580541180967976367165752503381157438505038047173144317946224883722071942871213102431812762898218438264726820648416316388959772449328926703005680819881610553967091122849313749602913708653522827149068324645246124247432041645323804042743640392803891781215951288379133665816933896328742269966079921925702533453804318751916476449332808025713282982957995568382402419963599885985626336138690660229282358257027221074527824525450363136244915981087423187786599007860183824957412983934831070640557903513323935835063822322728749463849615843256000122692028422969112139331754152753716960462121721707421989197052447203515270732955561526852803368690513383201883795924047397560252494337416639975768320870124316780587670744028885333661954212966105112115070631247205244847409604396686987620213309644088039850376558082393980274125731236554115696673298830660333487936329524167133898946760639549754746532424977622871381503444189799321485802703545070663684981018231333177726922648621862115951089514960031718165541179471389401076454742293971095332091417577808976689392493259650426594805399885781782988519745283856540330701623732715446239985128969680362405376350453345861898778054542523368651639248012874190067947084573257930627682189630814098271827698343857077632161678957319891430748558917202784636237800711678846913825594392168971276072031524607771764208708427720997974189729902588714052172653010258918900194461795679059722846568952318382081580446091149370356451261852514947803757654658354453375002656424834185599311755282599403569180514850581986567164363217813326028947272123001857655112860246488699130960080175389496821095347843348521454190447361198333379895631822501376251334699277975463529052859956998031699634773741184071348410593565291646837599139049001884744040278078414747111997042710562339427412288775551142342858513586584521579507573099745085793720395414307433150023556551125454893326575579534435458567479824914334303775328871453779944370589242503117306303080354659179546624331718437781315024136975153436505212308887247058999329424282374983039105077859768257239675628414214223028671864300611783006236436375664590895866098427852835079178953705017478980119112334200888254394363577125073214029329878535719970075634471780221937009658917612328792986179753269114999507400741729055405190148597195057841251110470891784229043796021991654785414947037479006429880562097043035661665692867628196340126533742814825377807633240883791948649230549152792632703114185880557034724952031851060680796045592710357595869422441266719999347840150600316007956197278179328370122624657662189136651584108810462288143616194818931677713678861438049213030825208851769884547778237156334407044177245501246731694024128520275260131036480703956751029554389044672913434851286396979486880195481328384988473482957376356989400788181838735180239431191694562741661745658298332544765869874316331472810637127511837246776801610966942213049986001324556885721067613354973854148338578327598132693610991843984119652649248536874417139092474804672559683004554322134110964936091966375155013022100671529610101029229039577089533845499515007724972515139274659634765883069287047400414485093953301814358406299789467409514783756249206637793200932619275495196661480198595272681033153183910122618617802416653469861189061855175054016801190061543171501673358791174362522768104171800474350996175305978287942308314286493409291000428165622382364987929240849014362171592242621705618680786917149876901177955362525268681092694636397122494009409639258699292053671714220755806653903686721060325802344494508401627026224390433725726444266190515583295386339836446485808383970166093779546787122471159773738528845769971499144639905537893815284308514169546551292057662856280634324559340354391028214078208143010519334963168942540585436697393077708770537947542298939079002038266800602490655104466071464750593593683761470291083157616539126928893787865608531745002009995191653238266952957168890097543843262511090386161711883016559241248607086425021483370712939726459778706802605176750450205746457129176363085913166076778432660467376337393393683703567477987041333069811678444671099186770622202190472779746118953923019832704681322987446728905129553835827218930086835829691541535795856407245374510841795829784699569681188504441750571296897290253365781846360977712202780007454285949544388696156091379886831939180003953225615943763326017139310327347903403972097057617628978903080834939751101682504205352211618412750140047472534502772370788213757920951398192701185763812744778241336580849558937091661714049191413070653519740131043265656016943400226296071340997081091150925260336534393501050980375003394116839061688439088794729302101261280471875345364115802192184214194939843572156181431216169421542893836122377198337810141541647887933112436333929083418328226988521554230830131517932789272253382187570592999823904913017076044528605248043714107026307292823722920973208288633484223003036753323611729402842596978062430392031248810629333679827154343568598998797467021728771286517467976288253852648480775658025291873722067113198759557510260638716228425481946163740199502147846681509649868323447259221945035001314875859964896060936859121913527205796809349435028952393405715490083720485562219976667456449008772407006244183127775969856361682038098991040411543679609596513342303559471061016283166580596533926168158216499812329777704143121648639249315500733001479190684369473543941862873783567408041468219715439691191841339290979101402276209991170644699667724422343265217879768405646221628400102595289594548876191817483804053208743802737812872135655034486155292768270227156822578033353576509827103534807152902571164468322007491036030195269499069756450588626924791803896602560436322837374548871174576238609519613571489386992997774629947643837267398440854433363470865908247128328796016613131792891370573195832229112999363237948659809987749613318938558050150338048948869056739241916233152601796760661124308869912584437619100572412565513865161623404500382231354850553719915269078651879589774595456048341320855750068376851810009694480500660745016655363417769896587321065110046426648754508333578812403223767321662814407527517354038673727878763272573431858835030120686621746867961611757216739394446052926694886507089165241471945133309786268221550072605228253272268693549568542151643722612148997673478437725181908757199273575935965515362046980718856301631857968356477192943585538805123971907888854403377095969614274177109659995934541685163824168539074807692016158453678467633112547153507197617886049141022397901011633341741061839492077875078191535366538700805205694279938529243173810443816558870932759916808668467416657532801206596383514069128803209998701816349068755533559609582527275941725320096886715998611179924898719451567160271836986158895404470252798090782955109432314976557638727234124928416054062346467788999309421437404741664325150351466884345882462767244587823643562848895600980339662324430173186380600098823840834103663635212965105044699016162623809071652338282230309321036010429791369131750095891714215271641162473933009448864416546157002667442973974956453561523498258431775558516008784964318119215820911441825708109148814425813152989758266288068534513332518494742547826564411962299304724637974034365415328180035681148360051021578286545698415041934290051253626778758915280237760815241435299317959018795244364557332323346819678075152485014986917243923149649957805321605683503574351244594336895425380947445464970759941301548882755884936974749121421659180200047847498886425556777158182441094628850601070204289551472112221849412903420838303520336710113232315543480476396385087810663328327711058731734683869493571536052174270500701481858626661043141047446084142165597946603761390173268467488274940124157082690978892150906683787859928382203702870593365850098066619949846596358848606211495500821174620685062320276541685708317127137918612779656442724985346666951262388822855744335841419102009418668466248395119622704719596992619714728699699596829459353078017491251487236082920357152134063585179223220454226775472002619479895211529804494520002244987724983120943808999897682097083470861432394809215594286327088885063492712907084976813148369078332461728376896820708925681846288049742889903213926354782318811097934159905072043589443360895206295433161402253950429805307549985420821639811680542134313759639027200092424223228129706326260814027067654726740623466061270646045680038239030310413514195948006957646893219106545234169287712576043610284336020916087297549783364939462133013724729525844922733403167078051724265943684896092781900989410447800660101594127222016864019446823403705035262403486902111912501929701322519723177744169714842950668588044872640966134923177735667087573589671082386593466956360706818412995866454975225532943443966780991077505621998935622229279447271253103850429462427976049532900807681250301535819800405508666245308560135585511051837525724835782775782458720125390064644486707022258325943349556062463472931608176246972671906840806465396279953942139930229287025916746413186238348936004010450044787762154181877927549932193205000476153080351093550979618263331498851876280319801390118879924669190068595761503213181173787145607854370114310647792776277554225399678523454576805404287220392825344796242026828532222950890304970760052524281118912257848292632587978255640809411219168029341149161615039139090650014952576421397710197828714846605663693336786102420558938191005824044175556971752656493269157407467308537070247797456490451066057427401651799502045905743577221217374370527979553391304469321715554133370245726744297511531424116302608878194447386650385025672238611000938131726772126352156179234032225042231951296478723145539221998780238648698259048574631584907364464961600859665707392676284203812758336657977763647542253631532289795580303694689391606686289993184129296689616107523486172654380957085198382634542773401032219239880074819552466391181024498974572724910205706160465980230041382260201845796949855330347792135299070812537300278311311102650000815862376204938302118399946677898539116229759321639399303795597145087614082722797889798596273332494983905681975193986786346024640709440518185092799487080681873504537800630051854505692660561750216918619776249704666996142650333662887964305301994652619861613210990873228693210745361321577359238709379835676654708813128642796506825607191919849423190068223509413741163418837093649269629133714575264716409934156810483823718684371145363330923422527551437398082091925714352672746166900210752015853312935059758798996350142525433700599298021982113877283187051586072693184990453962965428431397842167292761086644074233986286715531853362904146569437240919196793019258290833987886479402778984216686773806283484243141347488742558908884337354575395910215795028790112008380362033313981668592611582127499303978797547055640712336181662022034468314724138713715940755872077176730259831649729725939676504516741217971112827469513087719489095974235348599830169988739092684213692217728752852948622705695900208598027947725815223516631230793653892424620908593886572613039444333333238817147022400810237527506915097368488130069755463353004769394774723011911752333678924432166975413383191807994471214847069029130194136349522610232711429636920972646403862349907223040735840211206272292129689134575076104886440995521231890330103866017994936952799281859326912005277912781843834844596533716747255383006759654763683957281047661486296509774291612165352284956268015479735167218500562354392671079607914442624722380534596216662373110950167197375526135053128009126275665597213620955528225889622096345661093226116561146020306047382018958094166491907840463858803839969885781486190495415275663498950907301638827109025017145948494769193242757824682896915126195140862621830717504270461987585027848186447529429476594836930548268654534607084011152160489648425709039553720981942326516849781845732800968373991867180439536948419560212496176692170201658902281728245374606797939145433968542393576364355712079237070947344944460560181372323804335143489549796732671313040189979387440278482909024368628755435159882064414831545614890111981075168570963625703287119632380740904995210865156345630709065396330215912509474674710693229412785306883854483548696323858095331723170622665793454004220729508448120922703644359702510687891262573502630211470984691847127522503157930321257523657976991193622619850522081842692048054853272611310703943939313216277873571082965764893425839146669963916046564235541710777914502754702765788018018313771793850902836090828499774800340614889442751039045543769612409342298717264554905925626796469207386883223269044259094718812177725673687118478031256239402776061824873380555345009423260233037335305660296438054588614916979890248605373205584739225584163758698783957889291434064036657698042265413631979715282801651375351696994820590338974186723227462355789323185833281828981854987815606603740563191444455260353972349458666512011093367701853542929921752269309311044991882603500981865932389886335522853770495025820090821405552700083774574579946929052811701573454778820102891863779477845101739386659931014080976135893035010831422869707335201046275356650945101203385736931882068545300637546699094457431317105057987210633836630353230657568577703342334419383144963112393370271885101266680130164135027621198337622873167203561994485428726942516243304893792809813831403115244718616741049025378334711054435545776773507266408600179441792043955903162643659942130141216534380295118945012235438168161747897083119825293639356900395290782429572262031096898608117211802096893912283290929697746764676550044170828736340465603560720701530690973422160105781657740164878358024012769434174682491561746594372351715949661540731226405042675935617822314460590750399766265656369401117814673927703304419596512757419130074312354166503481355051189114157302651233087270397802037992312902519487487401614171971210888989380884231635965835027826345402951578038167520380868713474976979941073999743615563892179625592660373629803191251515783265569795742428336101181342174523646862994659830374891525843859610626576882042307931678067015399558354575009876423600347287052569635174507218610088981273498738825941945276727237144310803430712617985094480709609775515602764653720014759491754825120760267499171874185502032985879301498588165871866120759487562656100851512211313837342073356147039957297214256612282515306791966357287894511145257589471515128247902318968940759522952468863701315970763114703324700441868521073311957014625770309466506015901310450670311989095710819778608635355339249806299562103800140998120788865706818449221445681127689408628005408814547454507146842671003064205037132168836746582836768978230513461475350831828540353299158898403292953265024908656737424608227884139149390961764871733694508715351625495091105550517959837239534218666984278754245854315170616671741603517765198104774576895850691753013035670458709695310173557379852540422785451046055118887400083435087986956073711133040045021822878168136757911859128483456394989884411663346907471663425021881811506818765286558240731816531868670086759795172101382560679840575252645263414857041353626599374491754296366588914417527221594926090652316073151341405176420949355340859159368717751771030978545758184967500024267903850238702918505162713126658751020277986064466319482164527198472443940500714492135932477210062659441581021085987245766683516999586729081915525100503744095326018048750355748256676392466516381600436412339212424896806369073261883784874350709418789453561033891494305287213639168491756317732548786782388463133547131005375816772152077212394321090193751572973363011595969529850610993881949168375269678496690030962268012160928445463703909604033955085808015455103953561396005092891922428062951739733076235473018999011329100057393985557994914142033328166297365448451896344517331678021829533934754284678708949008452163219565047928274391596342464783774559248907003923280785079213069704283596599701480311721774347264680050004404496349408370235852212914574493085477815612524317334048409948741503586760369492732422956697233268772169911438886658311304971434202783454429069470020533841746285628074454435743174212644381845018627132265165869186169051138825535647942059062790493870724828200206061187685052179216513868152837736211793191360417809949881929609821510476534038571268119751800157377918982989949659313802135171419438146019955469295145426985856239410869174341639320574990946391031517086989885719387948184672356601183777877556502228053375928693824630702816642751873107203555125270577992813527938107284965262686714587205340064911721341715209874211508333973518843260507645692291161373181932843209016516413399992583874309840103840759942581969527670668817569983426476249469895008449040025470063322654139656523912868390986075999203358495146142799369290863219748398465440043417745506413405811446183852509326321646904221462540402324413107599922171920929451079155005029301623753654914083935806046669765424214209956292047988667857409635508516564647631193294508719034364201312575893359764699447607454651061346698746462175768330448692144130753235532853718142984924914433976140728323168713700769257885887893421125272324341190501681904352384040867120121068898903862491937042919273549780113981275798963943519125134722598919297470933915043810442701617710174853337658859675090422780522930761498554565355473227226518714848787467444798701748135110952619462907405269957354070465636341930338669068710033128677513885080022409836756590857732805583236144987136661450681798923909235092183592681363354914921534034284089401038504064945747337719771581309114656039631907582524469150274700283546134817076561668682518203457142875047863289979578187472124106908088151840154442414319376162842974683071384819172782991288178570902327692396167959373508799067855562552506508216623153523292817166182665875155928447508893268672892617199463814439919314972680011981660886715092593076860215905898924357947199735710091965588171088664849338139995704707656495014758229781875236828657163899250145874593457445576379506198139453609110898892451680729859615713227154985616183879899070833254153691262082757608422081862097181191913953467149206712180808519614504657020396789289784524759595609161507504997857855423829684435378680535015866529450072518147418644258966695696865017388924848873664108550234515551529646291290984907939059273216690230659282394194313146582535201868612648097545368954117187622425078708924754130131308888732109195956579746861084759148669686185491132517482082255251279934816941535817675255950151547441567100623846299125534221094892378609114497517564715348426921598482992709271452540694292566329010448410021046818253393181782353211705377870275473623598666851925644183167754077117509382412566406218511158437833896347536714976060984766831514008164700163040452335802017667520754414438226153802395938116848401708164653180567290315696145870046253758466587823709163295050140518073034388501550772468723378880977779786313305134989390221030488947334282623219266082875512756936896498619198607207882626622613194436154205781872661287995190154483551974219041035443097021071074066764697520412558581315843602762923724702369000102760428858448191044718284418367495526024488722351252246121699832127873456891771425889332856771304195253687508563256962412511026847898835335040741408292381969812635546930140606576644042074795128021230238368248554698065197984837133586573053880399636338834553141266601645888754314147620286305313901715585671724947242059636757177681429843593695775197886438885884309163269539422339922598375248983616344191324212610204858787947586233519036516543863649909681384667718339187016710279573728817932607437246002800373130763637296884436293944632644002889544409553740197834122771644136633508143909906326294684865800483063741554705426472304273900182081233505412834472131893564628860008762020992217904180882155917901844151767441560702083028947450119911092313618794145063966561406899604950820034634423858480623447659686130356519723101543273285106435459737558060106852201701043695161508882973128321198644481859746992898179776260293729583520879312888294604589691706658434556291663476121582936537169973903857816065533065325325250919071982784358669533191248642255725158350954073464896176839365341303333072000538061127478996964974350867955095779732398908448922121054992011495223671409410115636113892570976575233287629008467340719816614843959528958976062928733307873814397924663462848623607827894998464704296804031398446883268225628083121675037700873698520674735128589002297319188368009078691782290037015099845158327432647979030844086845011505802343116108066526677919376603499093864805816485831411371096517583337572345171419756563996073443062287317733127468423926239587725568010544197927239020896796030760325096676406380516147767006794958930700910150429236351357674578937529877132683702798579690911406207918898653322858817023554904994860465151435663616875835850649476813460874195280261151969683957048569034489083654720570185604873914909474409699683124571028497227895961335588355316745094531777584961085075272848366097419022406213802497559756490679436015150137618755387051809646581838801457822205146710982208623546000263074132490301174863780984252031022847058420115551201919242339447946373862201511182618531445729868140723034396683898046002411445880864930986796749036250910648881698021413986674330176817643886083045862718361311434260175294392164824657555322819907374895970623440451953886763200954725094440028839467292648191564335242995620477060058100595343733842276868700390848347898901017668218340498334008356102729622197888480823319058359642688431804319444503765160910016003616155276842870950462143530842272132025658215660240545782280334107181933171579374019814575036868600905717656115644225261395118893798181829329769323804035184279927822505328731434747781603137551656309767585717499247043919639491369713904468140439868186068308753952450056282634174818632562243368944713288651539788315958902811132157722490020832549314920429488742277240488400509414934203787596435663617844047553515239741974266588903371117173407551042464189611999922335333520731823809669610121883149474848254097892053179806879066998097839278602405077806003631002986030498201176258774353062180846055915107877122583956120034232892767524919855643650706159642732362092788384138005411150427479378116625920099162171696112141818495583846162536356237057359928367489204994230026023845720917078385609601682147120257996684373136539278791977704274134535622093812970053957691485802911261758059213025491477454340122556372658047314548941700870554444902548157773914509898899456266805502097603632770548517739703420228435021737597530576691178746426796974603354059807103548466764443545161452191366628241302448522882718236504983107240147601031774796277185079845596398828672162674681489416555755833277232269379619037569240773847921836330839376330411115202167385356429949331062806466808183369612421078933118751732340468589331719621191611025627730012808900871210947414167773307820227628977548986722591023170747169934673068079762482152479791662059559793643653050361946376364522772774927022283076977955304171079780485477798246100867776276746451972198490997530449526382631340371578263578578950321783341255313682341339242525377817366248087712021428078526457404511182298159052671062199342797580177152079145522007456553276290724845936669297131232685595754716801942891889625370640085575148837856244412589251063783639846445934257603192311931905988652076965450911346400482807065532138155012519633212476646302238750584121009946555590616950841528364330923004320545816759517268544453348428524953485071716155703263843203991243617547121107219981527151203590390303010573663382874241743147689162076869557292903325541217696176112067642762355173824636075761977975919753489244791299869748616344903262224174755481994118018898254082430337076289269796813418697707344737345732215822925510378246758305007582069427651030080383228947907509119380206155439601380679316266408643133687591374327455450022243179678843816303408545547045140183853296110835269543696009993701824425442597972736868675600326322274502187652532646769094629764161975418907185787415621699886213623387498551130917460858078644568290057929212192912755687784837911117687409420883700011312858164920262456524828093730787204271842565392512899331549608742583273040829629778427180798798039427849223640153375113227629750697937753818145204910539002365431421466429319572913784020295099681194352049281790702576981976512936140053772346345781063079410832874241668220512692377593335321501272992200874934847206363366025296401008646377022338244686153012467751918982726790932113398941321727833626088116472677183182315588198259267632812890937353707226231241882145876249883051152443879922628745313278914455059015355278096089824294992134224923002718544401992438493295854230196481585665360789862573790947957928211629161636481828064631505396127305268957221249062378868634514486162500164734428913085020858193485422589700553488286480283927463996513411027114694029820245488188117458081604131338705389933562887708081256141219575069755212217839096287195883672872162533838429460194728928953953315131671278996039615249162762488727337443300252646623704332850181913457464111320690877337379781215509314084285077296338871763629628600085021944858717340743984634158006158819392277664255370110921510471201805100290364531495794063730702373853261267447162643189564658720536348125993992607616756385221032392699690827308945344679349113353364622159516834868594174127022882102174784359580429548443822487751273680133420432830221866574827802808387465674382426279161216255260548484840230934217491709933435676680651391397342005867629847760927813884899915564337080309037009579576441542784012619303698948230740563879292310231578713043454777737362348594412606537449568255562751258332097327513068704856404812855327546326509894789690919048608828164554686549874051249835535385245861053811020864231297340049286215011533442508057536360138982667857292079892199113662867753813788528306907188582602065819223765214465247125209759270166012425174692171780249422430103500279797324375641562201549775243918755234722373889288362051332936642522069180686108516856014169257748919722769811170872212178253490408966571382058767910116271132605368190706099485469299388003055386724906492584044427230050608557922995056473716570194798817455249195749102993963594892603172559142241147650331255985237456591710993374750146931721524179979352956252112171981412988033924715458378509559183989550388686793859910780425356162075730426179485289143631054031886953992254470870718147359016138293276581661606418240801489027241368254407969058705771221402008543758670046582302230373014947242873408982114752582023417340821541623206836066268009404665040546949981138263998180570319373647064269835309847956824276895279762884050072288715803280242189926427385040118836204251765233453886593784112200469044550974022424883604536662238190192430052089737936773940266777620650687131067440582141832859142000153843316484448806098647292070524295370748029835529138866085046748096079252255540978655095991385697145698108413755239265530585754286933663344454170000246168451802092997051114780822992217328494627901874820073505993967408581817700040649621248305566603577253328734701143161004846077413688837190735082781555547743460470784801072278917502535028653528855901703614536479226775882009004883057856605985724875327998883253585951805327575152369199923303681674379965212586306861762421854367164414762406592166575362229167625581990610671789802998153139528161360816449043697600494418382074569340481184605394933208332309441700801465293182531324374486013275037684682820750005726980825614633739189315383141537532157997455117446663690790871250460665942332274226285521764867292186663416655112929706302022089726770896869747111314498028074085582734361387474732920123111861203792141721754947718263675217595384466603437120673880056591509292450234671903091217963135495763275696218611685935245101576590853613478491220656806661015682520974816534898413859426130768866168689970562266356862941656521481223089327304032525559797187498186112241258143510933687357217637934493918556138933865511815376401730426440210915323968315227056528101463946329848695196006101019301080176009675773446010229881735065441932416676584105801501708719276816026887733608369229505319288343793248291216493503599707131990214494042028819681548018373640570561108007230252691568602090366255141222710660652001798784315851967637871525934665905998833569704336717169018872622488246462571595093041480162792194385317470564845533190574969862931332355646395649180323953319595720482807603973711630363332138839163255378949479572065486303291342980154546999099850850370854983844219351320925316621585966797027824495739871430617222969168809765304424764283880930055295807791148986839616014902728533216012921453434561670547363368658318598502004047682722355829866588083485608833435633495977466926949652517913118937040523394662714144982125183425999050445211896320473987411547790853485431232151966942477155472672794887365898029971741753894060878500965087345197986776519908487142280436091997445523392562114478538383020431710013856038260147465694553430033174026100736044143101523411228658016292619884847197896446463662919209706853815518106653178858012822897586082253584739343566171747579968076690190124299162444676633787326051712935990135314845413076291720980486682499269105811003333982741296124910283858391024961827024740781178768213293509416373513292897480066126565286496397036093303502156826956106692464479047646397266086104491288503572147464065210241036748761485807172886296385847812091701087720370763682695111946631177394981397139745105372276188456206067073034308210439073122209883225234821596144743565034512422695229350476747369581389013091250717832395730193292689469524321921929743339196916584676713398756857289105290537275157648240462086494852806319349191410791466689419267074460765619154638120558916004558856607993217513864495352758680022859903372799310611840436266857738191806594051387242901033639740098390818218052005052419711719902134715456157444373790240391146716864029853009733764031815001509895037027605061799948551611822737186243548076297416072919253721188377215287024701754952803131076141831370395456308201674914804920611919994721410489615375517636603192273171629849569413926006164635393395266316698543293755502431336917142463342879395356662115122985715021343226673680164643636129005157507374022896235299039678635906579869176546761204160523885898256952477624627287889179653114078594321754139577727626827829096507631160037583394640200283568953826469398667288297548966310098820328597346098573962097248724607961003655801830822885445569641078586474744443644011708599660839155385349130961955309414596783143534750769975372450294977579113238264837978234959951691200758286027373378799745231548862476922395811492775199935780920462945769453000394096602263228387977563753442958845971718283988617866719965856519656319681287019973011308710040286189604010154855635207120636987391726519260683344425364566706123506606392104778756725860759403467730085946962974485296531687877392076795902148613993198038785474896728998565831465358019635768705159833465614858039937836677180356211282484377842086453646057904395106058524107986828935092568058087241545058839373116307614263691985729501808732967086854362141193921599509302399892551410003325069351089908287025142101724825877889603828490376563985117162796793933360167245198319714762261109205873402507381816512847210073329065363830807090369225771297784800188215117783871201218115618246447045469397704951023809361888309377459672590978379539459499647494724098700918364292532934957731621309923654716887901129937646853862754736165856633020999485105556322385710311861840851468765866546279176216136343907474699692152819869114718101301445947463497874820075622606191002088404872022206601556890861524386785908380891066066550321227966574473512414444826821850517364421906196208679842755519381942012440068693755102470082096537369588938551101146186947948914855398887838441112982388951367206383607885474731403595130130046652805231028824794817288297743166889131566941243268331234456571605156510109601213581154036238615668234365505857579222648048063491223808361221647984173524472689032889335383183687772159262403414427758441706053409094631080298840785995686790352597659737159155373950031814820232120966561159322594524096008373927210090022442050203400055195315562941377375542884439581132482407584612814419873013755956095701900632491932521533392801218748921916087387209339830750369461045491007422050295720790434041348684338030746640874599095979466441011780273071836152711016041138512461550592112553325014692014506138625551588364602619835717953456491045721597384453568398610878169216238004287231557402222501591870216882481297932229062859384956786686451306680045873604780358158238184770297112320624408305186762942905239809248317929551734566300651344904603415436006961117652694844419355476962415671452749326373666157104981327927708544057102938473637320680050841842815923801788607257058607762380652406775875824784019391005395690247054225687004499418603240940179659729227630809447611610404014475755784417434175973636244341993031213817683057841982567559222984000504127776134843019310829551483420122586022226357930943539088686198954723223366098203952272985886460619338968987087092246437679422972013052103183765465566712715727521629342539583784217492618540666695294670346829307594307468263267393753730612396225416648448585608827378010686310755708482128326209043189468883896611851395102060719785458920554116931539975025375012761916000684953309675034758414374083724737716905486042086451147887149772821513035630087031285579147330262302905117802144298558772608702258445458654284020355685819269244148023458637577467532104766887309517850824182027009453164203334466866948982595435242095873360170042588173300533815162422554289766788875596443520994414227705730687717947308737527818952317110464408464275429446808112057755060396673140071139203779426161657013741896813586606322490214185568134699814819146378386070743155127873678305578343241637946233016852187529135481409983658566205297201038116026898663500886562181171558294609299684191558457884507559204625878316636166944294951051545476503269177668351106889545351999287232936447492191492456696159290307371118807679183443981195259290215463379697085675996991119906302486680797059103136968153944686260344324805312749198457830479987453051065285253592068827235770675550133735495624701631476506098029813535519198654883469154540624847881632807981961601008019337026975417831516397203299382861912350098315393902364379228147847331036298475313606797248774064967033095333825495728418883388433397334725231969972583395666137713357031102443167488051957638889977009325381239322560253039891327491746740882089040097581077288034543896188871111801223949309112686733909312616186634318449575651294175077260869110951863933425371936149946517043570176093095608978915434447318406387064181161372709808741575853741414408357672497518681371856714008613650161501388419218506493256143416856365730134614900986750480050601325638252173541360556020615491452168985309286516419681443606481874229189546972924075324624484791192514204228313257291982018029270013325479575661087751720502877603687146630854780921401368763098264359202035117535452776444479410624706278197845235351897701192324684639451781482341021446428654801316563115374123926547004324592304829450209754215546812793088114979119521826289900145469476959194272925789357234418360673858379639644644539977967363973070520996185657319924223262095234520943472233414030571330435970417641146494356880982179407621054693618061057846893482305846391011486991543164699109119850267108781609258434300935839524214218319494658626734337677862797411945481330376029277292875346626520263662694550880473247984990772385220246768861996265164535508669724892931694364794214908232012073200757923604629368203274003987813415350148104097150462061435377842928511167514227516391813877095927478969602436897474889340682626338550020424784059771955164459077367142605583933007624001544375007143591109019699853828874192754294997891806811385938211777099329839759283481775310075649834095306748904836238935537898862471219964983969743365991166750233575337393308192110645248303802401201008064692579484585435000500792187330247478837978952965345195762271672087566951262254572221641601081002189446895150605339642667024703547862164374197740998880891121368657208224468212083981840467187528170000761371698168305382371983639801810647998704575281756600517949308405309138271536047069144419038267648903208105622423868830382796705480120173712340895440310242487005585956082258753075638698257932942512469170042898429041627451368591481039854464642722539196438276891020965031457005405711914561808053708123365897556044672096754416506097943237584614867864059036727131639366214205059261408358626840944178165277883202684857510195941326643592930540112759186854256004641546188696962648791545213800178792592237230248906899019536289552990160752828069665935560701477545562151269349095957796621333394517582531495112314768063381943466272720191101886681431825296874365940610998631628537120476910519229810028193125886451586983680468670301397500828886510038542020266040989799349741795549604334276674478470010680245361494756104509893980262931813488062109626370975491794817323453740662313751884923590857399893518410536220550732300948868908100616638916297298382922087168727590372375589892029532277170980669660802239093909796037386137952202421686349213022662359674775277149409270667907337311362037931368617538477479328961371151011701377540905748226008526036441574579295863921376142648606784090282469160424239252398722677310265044506059149934752803827833518827511871049855309431996507728583304915413884422310047379505111507841785716030018405286405451730686265122958168804174644604601670539828097847030840638121180675132228048608770644134753470272507638613831749268373519782415313932688566056094874307372334809993443783399797913212685189631460462578360504048309471985042117458294606212308369340367447818381828047251940781598786002453875902316556541655746638238452441834115198118652398207328598177654634492793053040851199016423590446575427296211209836619133782279660996964435241952138134821516460632519611844099661060446654280808805386972960123035679736898835076632926690445762668106832571888685789146047999684812348836670169324716245644564317930766719394898281223524367655397151922922444907644667554498786008371802976627675877044806233469162197137622335833950816649468646288549564936631269928525417890045878448285790788833179143896216763205373250423458953541501743690012891109748041020188852019055622745751444686589735641139049279200514979333724640579716160795327113257096188115199318198060278565046890074532001492793194667171315226547112972030981679430495045751945498830782862241330289182481465278144331553653964202500032396231923007758164051130306665185165120995394940105606490444323432438017511602651860880925034657820782808924101281847662773805657872071676470667544176757778092748144658035104101364092140665682921524961646207135832861227338716486295790899775221159237558948509139561198853550525190509696736558442694035274163937199359029458666709792456932121730692364589618459286556065218512810669498711780120415812567173416214819779896604063978453823182597045362090663208574351902814518819753912355522800711986258222414080356041398116776865908708129034554755508702355410101575025250610533766446916753970783191544705490875257954604651881625074651015909480981957155710482877396235432846246644220245516642092602129667169455362578377083864713133241718401294038699829713167365967150364672327688752483226290153407694349606859280046693423683407650172893767007107334617980342698833891562353579225164298964411238955424715592048379438269625835349169260625303811858118687131214594756137877271131826511481495675336165549632986894581667152690428471558432429773354065510785797194578795231554322995368059007262075335140294393928790653912999063864199420332149149988045462568795073517666592978751165987934057399125055541033940914112696630534054234738318049579282194504865582552245154921443961575464078156786610974528684135560280764411865284701779539600186919451818745735217631804599688582610763049652381860597742627278825321418174848934801861671189593441974311654063824517613093377715278130631974426697250359731362410011432354703236009787136453078543349251345332488473187586300528216248870765116557518568209306131842667043209365725192716398422909915174537271814830528923474631050995695076202914019228016498251046990981496847768623775527284616557819895554266758508664571234864042031274470753878236760785485750901130965158014382816121230559862819799439014234098544594817875237516553436446680668831977374009085212896676143561322446400454946488222499254909593883756882957172066600604928006569850735127664533353594134975103786285090940812936853104798100394045474855732928343191535663198611891035784707360521765835709526113698024383811204989508344972257385422010484847818042941596312760682864034029576067781304223046863882820304771964482097043321005427396000327904544802242533213630139802838502642177124469910819605214511428964067065886837840027020140689354610547424301752284659965841982789404627210036259060933517431404962914459811772330344803242555838384124054375182867016456949479847933920754596734238218071261943438382342647239904969905543331344198929901564474574984379384157410919733310600806758640556559892064355139312052554046633639744161686914834277611950582539339982829097519786801163425413582725504508854224410187393683100004035515332294535933355375626970133609440165048625674580672702592936882015075089904275241768546797930977281583814588759933637793161346992166785241509048164109482419828913236064066105822556679422366334190356698691011364443481063500215512377166369828647562217721893225316321790084817559629679020527683270771696710961062192390827259338660039172627175851629381295072764337725660458452176325940587014466221675903913647863688349029644051268237247161376834960875340047786588669475321210187642366752211756513399347703852036244535302451348415696680139777022648754713790298596549200493860501846189972350498999709600009032546878743583591452561224994663119093989054095397869205230567092193137747846788500360577283133622960883941880077802127340142771226653220308201000731276463382191666010963045008124712450802397993986810804184317999562305841602050198483282057999458212626700363301322984021729257106523095101845276589069558330393101301398628217192422602150883920307696310720878609629463826984507832935398410101102238790851205761971093029816364648715479125242362591470847859065555517640022792232757622224686713133442365979354179815719640444626536073709210244230167712205059449196472669939398262223219623251443730545513954654452782297162977032492470775992243996498519768208375276457770272968641398223386627299058720955937064388396332023352261351457633353216548216150647517104511988022255293718567633273254082553502516093425532075070096756197849191333696814872884202066426360171138396188030370589158181752700033183383284323954799223760607378374618810693558389843160778928482032640847983555398997269609551619543301034623422547224847423303670441965014009823823571402503592251408700559242352760676901537310482545383704938487667722143826590361286104965057159720170046913027474142850217164812094032604234679719952386935674835967219826561908947335469193724983161810960755904241865211404467468180236442631907511194889932655052567581220243292022199341280130310507890721312359083750792526698796912983234957916994217705549516212166586592070573743390612368185963227740218893433008059716431707153684716569022970378792039131888419918142320664282700493251313790494869639138305952065256163063841617743060526859563670239692443936584639599686634403143895248835427871072310158803114034343235120183060080087253762760683829625461790052389265588102754629379554533284774985330122834756367429409187933815109276983132896768393020793898937905272905855452264161683992092644278115867712008225355167373385263385078036261085752608787267684855886958778417434160797123581882378665737701030779838585619182936614401103430218926094453587618166679569737632643124583817574168870574871831489598165713035237020020995122984254056017869106496835499530445919145054607043229016237192337516299302858173800992414922101662798867283765237320768201005672289416047627607174370355705667362138225159057105218685105838638682119714359192154847041751504715753422613191482066663772437125088379798207211099866538958670717419529877810320593322568096969739905834643844244669750129007635519734038252874119499168627307255036115744257109017145130028919645037280800953286520521074801218329166693829486951188123921683188258393195035961943709789988091569982467228782558576637305995288519287601153115856940841334111759128664886883127998487686510656328292620961256892555157743476152446728993760330947735458415155018042546658931023189129522217548065826051077323421142739429326276035472850049825566951542986663602636049502129282923476586114947231356116257034841416836609006716812624145402190007272865353283748189986399315631872696527304871666886706216542745474583073891004104047957001677419802159984556432151063716394448643013612084438051218938586682322049863928328792256741274296500014249288631885311616270403897918819744689602519359319004839693452338326694606401643068090038508047594430907196160682109228463906228146075153614035510849066058755973985196291067062993821963375085438209985403765121099419192705463935340723595955764015793093366492898159600914911599042150719905928334859821756628440283583912159109703359811400153339882837237259563573683050032855219759649300324534095257408261395746650294600291094452733279077472229513308755741201767716376828163838122002233927649551905370309616434175359039948274082747135462826725180466236598994605313702989021632305316907281086410194067781865751218674787252656174509369402951695488797104692277639984756172428028092373831023457505239328827360445929239032093476001829951066171758228580192210392532340603417594881842272223467909441819381905055885496755038496234124279018278211527889416897932371786224157347890843004176830239425434457945334058811891881108136177847016970963907098560227318473666806343068978576150888638273016782463703078302404879490992617768516728728752000862200551656828910751338272441361167736864943123390162233275910570944934703439293653337345153256393608576733207953353194767161279929383595047370327550430480209745397857689623738793033910849056290088189436824480342542640458652017623009244683234628897460976329579869191013862823239760946160585851628935784762990522303327376163993034454384799469234134682127366016946902005444907692727162144303985746372827695516732050968366114990921539832480165006123991166522314644863218151061477330783442711502146227915463787702495295561056112990465845375772701154514837378578416658481503475896063106647562618034188873509317027295008115787778761727104556702977256259189062996013371622228217000454999535241891541921636104042620949440236691834101297999553196900217203044078431695713999533177283877691657684814160844457538373837143038760707273814221390680429886958655439967890254453033627809700329118288261799226652431772816214119273456561316503154773203398977307732392853515645864789103868249307200522821013905081614104796425094116316766434911059368478729543331646926825295333282957351698015453047880364915288849185535093373207415309560637382626196146099961157584066037822085816801684209157404986965525667096435638830633408126092775909775804614307249217305807881678283508015487618696056730771902972134794694711316063005827416655373122446891216443044058357200084095869640751061639930054992260477011980127816364144790299626899933819409501145404706122520796992149072842877587757832212784115197434438339772546995073007436005073574959535364700929957816027083825009334462182899777963258151124493207898817183563631395263887452267709121108662421012469970080111047435258319255588076668361494217227743441002461204428944582973244303208782134652887953198588426865298729799490517698163646553535446888846172002966220640568544797033227189057979662327181712066902479222387192260380212737945314340734088607956553483298177420737835467090431405140290872010266581179350936284521845953766543782524614728166972724430479253127485020939936187230681936388354656822389038930188290405617983106941379786106085214314875946721185882519638443825632849054300939540820010109583810142318808957745106261742925642386080961546769875411687636599665349652472840729083965709498262848729048027796769435040362397891833966861735460580027532403909507247834612850748215339891709558813725919374001672770027726742525506086582704766551186356114071469382848683401658877176335313197961541312104327606507736751090428867169564961557280475038448549184929282807644081543556975703322096162534067342935672810315989085881653082855023332643951627878699922806640066929315805983541772439790685890335522690003680703257431054423411785713835066280992773574023452098295129200275671560880045995152103832539646115032844007576909544790189031253022791749955449825353994662602372008352229095473228447173860068752123357631452745008294015356714973456304874125201981510939525573008542031762779037739285186453968991863478176765636921078030253883753228379842461312303371855621487305306412273806634723749022286212860048883237206183221055651271402401124680056970378496479462474832988737341950572659234441722491293843650299429989749797403743299578660693039605932204795249049767829038229474987245832589478033775932164356563709661109680676959503399659167058408133597656920067775039266911218862878926211991620404882701541776625679274125414257501677555628495936664792287416666748248653320859881578878656543084700346108623315813309649483356102809814923829116318462693143203607117855220776124740501909694488616160835297878477124802715560938424338865470325754042928036295452983790638765085172798309816496644095335380750212530179858143299236867455278228337735128910101950822424936248813549550434453152636375183316111151505850377432517985445067941855320966793725996362773566687512593807707942120357642640231066437945836971747279214293640470575059234152905227157320787353323142792297721892373963632125404256866350572613621999069146199095423990501616338626962484231246694775541183353102449660581803990943029458411579103822373426839330351201744070855025567282760143687168337405956381580942055939931717782260267819283203645257242734953139643787443766215988819420582973165206373707447598470382669035645420546590882207839595343403577538776421826633822579133774171568083473412441770446698985429357665585825276852975316122544484123094032147677680308168559508678507414229946100678855996202687500058330319426275352282145160606685794128496614621204803877702829026335382510329984229633691434887342104318461595779145676197722927972446552664187528546731122268788794422876070947018773274294437575840633797703193483686392387773494893548463460410196229739925608338382589721376976120357275511554237856040071584350225921711041469756280664873297337349877283844306448813311827848981618116324224563577162198112615745781457610958123429386437301468327896844903856669323347763531732670845751388275659709567067868834000305679991178723393864479125846212396685677526937880933982910530306919634018425198060020205329863999806192746305580270689505502745931190127533177160244485004692471669980303728862902578496450545287283365530644462361943060194874436840231560612726137748617117753469475088731859002406269785968511733583695092967259071895297132162216749341238817150991351550595702086411697357403712771068892649547098577198464393309933771997125287302912869041431086481632138379041823396987637118569420101835166183508021411786841609617321461306105724687306071851175859675991218761421246441449827115053720813554913897235167757232570533153484310832276108276408992667748582617622409060577685085387345169512864195354182730512456517969563976520285569643551354983411035655283029187638621997154464224211980289100834290414436635721412953824418099328675281401253941724815570624006905771416647667717344977507503321030484107793824588344288554267811854475627775789541765548965274911401042488395747293930024114014903497538483006693356710984649327355798888454723747828654906723309956333533838634914709885697029430259814032383132713420699767821915819618103708950970093650805411499558272281437475425018171940286993206823149693219040065916967511351907910540048002026991257551133464167056753080194975858944557527779587433521647321978690486890487853654355444591248212496127630002666064848078841577628696000661611374560296211412897208373000706485100460176222283138710985687396724468562835222463585165244960921432700910904705440235566068821914192401695068111315697025114175703529951915166528084409574628123969735527619041769794082675484983267984385650590837896516017702630434700073302426029844122264299036714715073314813960468951216697643060859502060174544347140638955167714514410535350652248487125170908194075609530575798857435071411895179676465755355406928380760590978299281860302630455819232316391371966819100865736001527650547702611367685739312096646515439526045947488116748041075020729597388305120748644101112167432075647943923928883706220157496576936250790221049821717625972820673889198696139742026325401048761045740290560468879044624140382083326822248678215273087031918709174683618921814599794567712688470942840785275587878413171599270046219744409620861337377444518686085834930700776200653002528712985286526092924718548078454599317687391133579533048630338628735308208583384961549595516507991052843227238027991559998447474996993511789315353815837333050031417850070270416872361169655725471499980815913320085193810870715662283875601376394896757613624188566181044678138516302944982476468510361091973456241427408153244199540772656034695505766977648661714474521310387305484513731709613839150487186634608666548768222545816285019622472578562266518650545034161065453906544904760440794192498314170551091690211228711791528070279953915924292783850307796766749073335858076589320689392801363726391827309452669882498510046423502882011825215629805095871160273262516642697988986921065854239259160323531607432456736990897811452502801696802039619548417210864411022182801158625038094424744719918212309251117815852390074165362219150253387432360624889529690287391412253805284394295704146285102501240094192940418710350670008903246906060073874755743149051491769082892471724301967860110831406205794867776610857024017246575500063909630042204784986457078279165496381996203449251089415610341358504910026601611233328393688752361376143693101285525242785827721341354707189932046255383719547068354499431176851870998592578994487286414590167201337708161518256888300978012875151437526337148435703520371066259774967820096274771543357170941574243964587060915791927643457638387340482448883780598074078352538707479309231439134930799455735549734721512674086867816443405780508146125559536224415073698270646272488231557391884427463325615500537256097779019870288557054635843118632138157287585572674981206127088452144897702010425790948914794663127010401858855001262709446692397972261928747430236175707888107159084837682269170695707454248037377789439389042998983138955368237237789845515767309096134347056299395941598893855079708364457778437236836027823419159771513726522795421156161310934667370598563799403936702483827383989891998801510925172482062983840605172753977626361528024315113361859955820947943639023284095829348112356322826200397947543614078079489736326274266002735516248709074241124112637197599861298616910517787278322649744608703511546088307703837100234069191559842147420451507896527553084359414723478652906882290784997956312276600157397460943977559071433238275433158170394680665571184777447822255002750516849260961598509222384033861798891966847674919385496397740228268278192053559841806516035794609679268738768535916148357335518021737680575337939521131509014553327384363810309577001433129732454850142736199962733947204979528864532542510238376841769855523049720902000546985392700422621161190946426596485794427633109763758739622287222169411240680526204181320186815198103075615557278603120307351138793810345888106777063643961615935658746488996308387636830475102894809158308201966461692275221017288271797913495599852469518137609498768622962986049890630842518360480473029543936928647933859679623328100416164183666478714227794642965703372176844362507992870300791535789676387777554962306541665510758782837411328817140999659560022932815305405420117683124525315751307766042311817302159594575011929341429072644307180384776156786247588117222123493283904432717104181834724271191538018151782247652278761981604888074627550039455908056763332035907371055173867035653117647761077909716615518546115983399680313428654353639938675009958645540108473089706782708296206448819120154340775314404822666923997311599569409641454645813427337357331110427120662956479447075269229392424888313116983763698049165284181747455128807249939480339879013054358021727652982977225256657706014676997088242941626395106257165686440421927504612185831775799383562805048368792704822385599774931327961666966692726958648501864924085466669425279127763146188128649323004875924924620085198412278579633318494157150196940957293337534468569954667783372821826267039957017025075393351135346360611157520030389357170829815579591640257986613011069435501867128760556558546947647267317196460819253246027555715744825972160058217235379685624136333141740692479573747093801738504802276952305148087184528894872845537915355462257226905862257050870497459411591110347708402717400999009793905618754902344965722952254103466669593916932527995922309896968267343974229747387400446874878121228115267923215934080964143923548285685648696882268944297214675386425141594695287184073791383633211646639857201359103992475590569045251596811438435225872136837249435819721950502297339804388867410771698972814479926927734200495493633033615008781170159027704959220879679259797233317349461683301910870372689204354639720163186522666444953308750477589780870466167883663628184580603893836097643007272241041750107759207891154536580122167991459901998740995524959622086775111580196782123583116876976811314400814389995622315334127826469036946446851553714337572813016567354380844327405471189117252850428566910038242392189316881709051883040570262756249440251247285931223454381698058762534193805929254997966238088434479589497417548744579533961027114651145304570738188615558105262980899910210518843280581338362273705481975638589209315834192095209743305727782716395880963104009024124083145427347043857810049387397788468615109399072017617874691136799532412533789072658359742234812998460644164502299250581855382695103917182473599687414940154152724023538319776092572739559602664511262386630151682834757344361873648905819297340294464761952963753956852738491677616582260724016681345750657832218388501449536523476779297455870933244778729525186337673146331689025405717892388591773335348174562226823358426380250019669565338481721799024807411126937182366485229612056987655544404813300412944057437797461745272004031405256175749515133814600197293315117733032711447100438034843371721511487076034900267772611374275852369539647338686510212927717868660884052982126131155962907293640446644016624573574956145334023538404959685819559361478666501534692633427943996981638580950928351260838230947184865522083616128560428335840736395809590871865783764891416497402649888837943729446611318652696423564151202091630678722167754834110005462734167554485971682034031959675337935149937709893926577642063512697186588865165543733169975802651360295791881040082092470877815604556184673338322034451787451706108166889416395590839336023143744036754245598257554161821989353743338857184876997547327107109982997235664434828897990713910605538779313759601765560982022543871717825631497580291573681713464441831902615200566907894606113823785657495914844197893632627407015024595068483924948992438832542534858033535744128877757539167516512275105179306301362428452915943595915317115401725389133981228005218652645306068134201125305441979781210126731294368052469645684743810527152217684115337719710347192747863401384358056759752919539944419670974358141917311700476398107271950616338716019432014768757634170690631279104395848762080785929222046986795380204209779425827944300594205522774095230567080739345977103775218492279011903736484348295199822159329100153203371198047599525348986859666991471743965248013333998515882021441426868267660892804575048929613591461808067728340897235816600731128271481092447258441163345236415878100426726038703128386863025966108952148779447662863239910232648676839878987159105963677857295398277554276839587586832447396898893867548346896376030511972826191299852018003998906293369755193029003277249068108963685439003751526620066814057942866376051207415388287197184071908761644346543483315641932775816042334247605152310184146032662036026477064402148958673165433309190675064649062930723262058480130883373300784140129872091608414523744100830329712983205556724624576786198476672087125100059178128542227426149095937380807386121123322478888196465698669750027113472192288985249035629419088681344876859809588180659994651659248707825150598473531937649984441817247890352638193609822501957283804111691891168073030691991960474713710815246286988083928521566724867606712678761028992378045238859150822062364492935239718328769673801485138050668783813810755175621202563080272923116501120024563741886459325447973301017647935578301304776082661872622234935871868392731004768288076611515077096373149127898651030556460729741980067823678110528893283568499802691270078916636092421570466146831631612684279774918343175247003710391682360999107414779822497689808728223546945740012508795193962701349988887436617111750558340834446105509416034471040013329225694873676788140467777473912794541866928486626469470254114591692744358390245607676979564152325967448328596956019962934580270958274224539251312138733647490237215853302089117028147101949109569956332072786669261100997840502159702804974829310820332848266567494480531381765850211148557505946078041239795863193092720075967804742328489501374410079315396580680871244122345559688866899802069105905806787957630593837233846307991376697868624166910713173972178782423839426102750918820839666268933954986256859539398516650623520665949392637572394463396609814405127665520328693262986677835183252305568337703575320804731524033865790685185773226202654349214005001404048206749902191794687655795955042660379361071423020554492066109201062490787165099696044624495012323695594997258390249535029754039224994822909857942278055344504741167662565377685071665727906248212144005431219456704993491847817638181182822975625449676256877533821811866516644153335815351022546892292411642683160395394051017530407921773878526876039321637626185314825879107425980090778250375225976252238403360514462922411491331713051102452795146733034068922851374391239271918278443176167685591070569237549531007632329131639209702967634700839302692233490087610931550771013532178242677283127545873253456765421637360732086999635961405727196309750917790694757671736028715453331632660531382424025853798048233792280531664654306367596579116944444355301303235553981363530139839369578022435050494430710737896486732956073161622792866444625659833747800253579474096088474626464733737168724153465020384517840587224722715470537328425896365355917101480992947180332837641805365990925419342208414532977965591327266532391541762242940637222587828466630458163609074486380845575732592938032396042164453115634804051197849353173282575245854588415790199395989021423352473322755179746833375384830081060928186059168693545705369195497447729885702734539828957511689083340560389756474903920783290605871803114807928025914118653450990067477006956842314589140326145676549739526503675259162977183718993060459753390579728465106149106124714471816647812667976580144127374586894958103654421450451682143675957439331833956057031860200349393886183906350946764079929779601946566607263993385085045330875102282782497162038751700916569935286631880897072768064549406960103628975049602594722855037404125203429640502713844576546186166265107829397680574174917013524462117483834213463181072909914308158428504046735583054869162050421897464437222062230331969198029095154135906493915910392834242941976553162318021710016580399282699367626812148511874764860167718546716046344069588153344835098653854439424572406978189830841465092279042017872874441827224181671499939048399666679022348213032685912669233545827080636443221495895272271594350337761895858429917430526843144204000811033624385392795133168435854071270538277183675357187142126108215524601090190622763119547406957146222740414605695587111619014225001195194772822494091038843400775418281180319133502881287314207494492924791546554307471318276120284813355127713695259000694307354198507135019375503737768199610202417280662064191827887367944978890431870566613544245207894520493508453896816137994408547596920705917225893168455793825528082150888817621560305675020085602061685383512740134060854995440635284542260872263737089471306923227467291630694329256125579889499796995280130714506956920381556677740757366166589309250072441781266688118981005527217480809472582422093547934433501836232377807502913907090412424658514580295457142962034039133870079949955504262491735638097423548110123876833008927266243083592450597937724946511007551463182412782556565759706472111122887999902731263054776944903150348756382142890529567010660286418627602350672710762249577531482026620642771104613437982429401581448356736973935722108961253248881357175251050177354920168212488728945530662370060762877703408253208061735687124026219725865256487181228282391187567862662996916238096433353621627701421731009742020143251830577025984598992071025793470296880251043270710952133144896213167043529805970284825034757632824017562495453668193588717667225998303444623635655519612095078509330653044810538105226588538249721853939557299568904004664793660503550697708864387208060999510728000643634097307914224422916592691700440570554876944920543120143516559123434036044808502068901930323856877553406656364142459348907464683542229556066260391018714575534725281440774518853214141623210801533050276675512076089188683220140775871234204391026958135172154708782593089847830370214300934662980995513665147486526716492909652532464209739148727818516391634154877697355472370704592509980697155072679541726739723540019708454183107515774516676377758594358116788696614639946990901571761334219243828591799149915751288046793012806138429389825920956655826568511612538438692719966683605540012757306378847164357105436875170210965444336457643739879139898048575736728760549458466340374714014373188989911264407654710522500094075256930590690772337177720178807460377747965827088913323800423488043223678451104344931999425198160611136530784862716303188376164658214128310411212386521999004587294603383107527528782045481382885121321357585186480746379452482706422921478071642735046345220333140509510499182366497410109718845670089957929535968192223779122062376799160659982465670476430392327245938633310549794543401109086479279233226740382699272259623467919699963490865802253350345769020601768879214648197389909817504759649108095121855672056606684591056830491324832137045532697401838262686078462358501701953955597430443313261319981232830495995785914807929836382816529310465989324010981344909567695897238943747446392522811577698397446982674798094864564608815742884353061421762595576435134751642254806444527364920280576775585110608734308397018250560708667008748572084846541228420498234133899019362760110473197103238342275961265705761181045949442408232692831396309498544475974686119932658961013497578149996384924955762682277415552397851541885339230805713852769043009711597934002390317679246468809862299029766224584522514306949551647004388148692952044967326620642103869536664564552650559675414352430145417036958459155939559205884680473528742363065484663746385228736529805511526926202225722889868270665675448181017535953534092212783691057341592894289529143044347556431535882006432145201199594522214752122040768580858620415763220757755153096222760004421379654581798467029550244024436270773508282337015803180086536741454085433754455444822723880534380990821695637669586253028723258165118777580108713132118220926193690983918217701080780444860352943827903607133397468996612354703983245185991440151293405361805257195654380633387903844886079938748591867892301471976460034654905875833046562930009407904801879858189192393317866489504254565037684558833351317849560445507600025418483077192753912248680318198806708323569490459176647570525268253916513414937962622866990059595525749015470272828127774684965381049294437537762233272934754199363168435989308301050140283635139138566488470992017581337579040369067801125938512054489800249364829280176672949491384198417670506608153967458410925354610188380944143609558142880303636257360108245893561815330667091083502478188072347245622093205775370277383365901969151932460520108983014201134836600921535122023982199562906808480253678399834148996965374439220901791662592399187600791510382649516304945440434657297100764530817935064672007282933028911284025464469511998574132805842056434437339231676140995244010905449152444323273820620698258318556969313701899806491711619605077039471176447088647791028707545143372563409211327916126947983799504732925539651432141824518634437034859359682732984218576814917936528883364979166227265176426007708422698806768773197570749398347052572133151850789923714606166377655834188201023156090006914414844927983746383537825232373603721239154467458555678526680228708615076543904509950543223832244870862774964030915272107424146036562167595337432183489413953774437363381958441198782695505659094664908489680887296079799397320406279612828269048905622613013812907544511176368679551255147473019048587603133034523832169840071602226113923809447597142731523845943420063833063114730902342550508492836714334592590167556205161119382341695465798015277618025224736120683875145397187043143287509349080578063154030841619175169428167424042364029036073479315552870474883309300983636433152576593887945574617424197510198476051821032159577136107833531595475222853163503180870050901666194098611936245976992534874238426494108325390455495509182953297325821104267162148238729523124702682561668739256043694992569547132038215493031025599834047962600405793504149449421192665145699809587364642007012467540607659606730329292019066210184577706470487091504858028280363756222140384319886496982085522648551894104945474303688353267662686464332768797973260267680146854500267376206686086443275862831351869830497042474287930907110728815012388898626857049440696580078939629277104428365790984850228266384370226619588147703679622832256033572981505421090339262341342704286510809721352884854015491493932128781668469013276336084416291684813007288968725083066278932530641855543153172958245203382097496950712975617877855145829610808295097889866516394589990148295438891614094165192404669464142833243685077386196969677556943074607825434140739656113023353633900509581215279365324543733002348798856730267961226851113639529201025529608790738931542481336130593594585940948023236959840323270486378045182902102406103203453649207514890126783730312334063594796124833824433079198778640393650093122250239499357674090565077576000077554950494219698931396398241129383347191361735883477392632764287198415781887101497372928330210534880919106124768664584258305246409649987743712333950277919443251775002681841613223760888833613163203579815435464807026780600248036304246403691558590177714090772002506887486430373688462179593905024584011556252039204446676661226414455594644395001371872648304220798763217471443665603014392130581878921910728907438851915252507191311248783165838603305331441734503882810858407167931877903403569465581855754434911455875662121044826011726099135013299105503614193858371883627164205055938287748082652847626435755879398079339693712876805424743005356431770882070293430885667538103452549464009044210040284802447275171202820673995611344998273969214015501238130090098269300410082671566234543295077390177471890060734797519729496770782762205395683443457198872316320090592506391680616964418663208658496905094506405578807675466953325272903893090939217505043673264724727575436635063101188506322603601537307727271816625229046241028425844172897297981885366060834286429276352819738264419105814672457875076225788746311226099618163124667166072262752928266512767035912159557880978137003089802192347359684486123454739855281193199124745940690564430648775760465017059312206409412231796698304338871199218916638467551354072588202902035792121988138392192178159900577043203640690655884418004523016441375031376660834439090094106295020187293776481097381647044242824349491175877958529691347200298916019927674578014644398947841340366265457732093242610693330104392016285399155210880393075673787488205419928991674059997811484657712877505863772429350266212212926753217842346052422208731526235546584094542062014142739651268219236152547766332912103794882711867540264603579305305359828253344147969910324125025982123338690207209327938196793984248730593816134153612593298199152199718739641931526639433193808369175170800361129347877937750159292945796864226223942630231291914256455912044043984468576544839856597996579587733309394532435525825814322116341716091421369882906524065737776245349171890987701951509429576733318581320299381057201945874805980291052885640976693671291966296679838933282411079928910183919515179573850973795718026449924198364398550715175614330345330464649769089665606601287362452462743849537769861292622983718907334034527377021681403285567468721455808417587218813874392657702156298929312765727370066351079559189226510801061263635896512234205564253521218030714806684334190786352495502006046798958673923803130563915600446136838444665561554621016715181868233930461067656003653906478853625289209517489816006067571445619532271532978184112622406344269128727888558697662456633097811701511304650381976994732564682181742825043567635922597620165702347263047930114430396232185686131903380337166319170860279423947739981486518455739543686328181983145308080099206438841235268485882368541339385481925195130252077777584751849311744644642392843533351469278573791873316545304746129990920708739756620291308536583467851745641084558600332874296743038602313097254483505111103787061328254058452145408028949657580333304459533331511676178413262265262077852572682821886771220433092190625076562940990916886056064642962874256307379011966071360458795113121447925722308562374547371757663384044859762161718215537986242091218722486811317015930363867835495465756790155713615231960488331839072025621193105753004948458055426219778144508794063511720834663401812122164958353313132170758747785285694297250774969002438145866719304176987391921869232555117175909386194988152804516596376180549025800122183820008316353542288403281516430640204350067955258661639012833001363350217741662426420083132768307379100508768470551925692310761196396759498146440495113631554904567153372960623629556162629996733632706910438403554437563281439257996865723492314467462952305302443932469290784183334979576206812402860779931241033286286954314555030585101259779570123941968398210820711224004420208955080566947952755746597052604145570654289007468526982094978406285261657135806165187604250853870023595991444798389767109343414662937131589542893395507916976268284243608790422782594996212935118496669413971382165522295890575075758467153397433149435368064581920395977773323410100577997187649429727235078012520410243903018862830047819482508786473750174415899658332931857215851029761415982407014383092908800659038368193822016195392948250025502209540955935568417576326738041970194961583593857866073990030249144897624792197503956789981462022199628545801242552056763525064652598178567249572045752154374737881640201404641342781094741056372470742487068712165875886393341820070323508551698866257452329485944495376577284114790679370647698380741260112192916881654601481597663335589048576029480483797463634849570291069052832293804247972647768062655006099650875260489238161835170213800092850294957394302842816743824325667748546554414115398581538895449759190771328637131361337177098727781781348858724389791771931253755639566849656105851917772491607368923472991764823460925175165416940273628129112606135043060989253476625704663611769262364818445088083790636944357466950280488232069019842590691269855242105332116338386346607317689073939154579620313427061543167604649995968503824250121254668313186953846588964231379141097548956386548613096486935120175459155696372039696572670533915270280218757351557405811220057617490948947543763116136301637702197829252085937189360513797800089818766183927683906729011875007362560313765998686519404918639907236200473207166138646456098753910754015317321938212049272339119419254655620902656622012049344131925923284474108555337154930527028495506224629522981826942950083376234368142941376547446874274062527532527111289157120422424549127220783351710404593193207324582347379369220772478952836299824380005415490877037955596091396586245158580161301463228889906002602408083269498522055929984095847853885798165036646742914885039173364451052951754814692021959873466734019598041346871863326342117506193512538481119513845001198105058685714216342623720408475251612150564252706408204325578566479190468446797943456126392999521602773461302609108284618616674189906364676877824858211348402578802318643173280807851057949823540920440842284514468733834215508369568085713728561621863145497592746873115877149243594812946826384647587643682814733072848123169204310341997009043522015550720213083686483958731148227660677768609591094423729611238251680379436955435909500519832594410777125916823957016406362156547243921993978298818953964200225792186872201174505989279664471138253866307333192945209053830146131900796314674050347508825521032325047691527333322146171826402804680047883028366037968447303548684902245897014600431850984800162631905786979279708765962817775872298968863293070526001160805483496171024537607463830600420956005986035087213951716028667648540568066005276145661365690307249775946215855952902212597408367860962085997098760608810222776587720662022545593793769781853575921023920540987405992226079891418938078551671188303348834135668249112200003228193915386455559710592981410513503878306442500075164699550812719990544286341160634419674420879109646635088064601410370613396542697446200178300900565543544204119089264173853289340016879685875272172337703310517694598463710500386869045346891784370627921915435339744885371811345052406377021754762109436352378019227197008482298168446510040182757344230775447518776718586875708067595347555436773777086589774236942910934898160078346743314657028223533539881237312230323733516238874692145450617244226846266614216352811424914562341928098964145882916072260622941919301671000569707054468737288318326511788021915858385841399240214285108597983814746323714346720706337887930627294250173502550647122497686224869117939733001993170507233350741476052728562884604203152964116112765321373708669534859644151052291724993570629345798362271576583530959980067045173791578691931681237628381932551080368654045319406593256245023587117485753737341404426599326987035892660551678277221670922576711058937992505078670094866753510130091576196388683296311457777466347972969833335123648067183364109680688417617928418118039099594009720349823703920919998007848361427505358297587713555144648999204440930806522350793025687905121974293045894654614729315170023956025697207269785731055853822174073730010392080022363305731432582991427505307203829560835936978637086995966281644723298286296964777562189559378350692395330396464525585981745855773974346472914739210773373548766610854368362826783041240826328902781236280345222583336448952570813852972495203456598423792273174472783716931820674274712237558256731396030469924405790388480240686250321028554914563411250559283593910213422983830229359292822388620192323865292986762284516073952309673548487795514097409173934835072839133295854910050442389862516502381697156597412323749706103501444290909632626308139374230046906339082721489276678838772685847369296187923984693916612959095789817592923758725965514674065165920193324787016878347629136480614088954018918152456544656834477920766485679621064358831449989230541866478959312177423176649106325355754155528748493325446515651506931137735450389876700822624260667568236853254440337423892644650791319243407664683597408517914465935525871609667065476452656324998152318169946191796225656753442716126427987662816022936827914330322077091188121740768853212387591816210541570016910494358333616902956055923003580221898227009611108944534863916780723916314965930669323771840395172179088804246105319214820079151470477346736050907493243865146502171734122027895186914578324996851386638974933713172470022391034159387357908229487615592743022571731173538454538265110781207165706251460022310661428059712545061702734129609239371483716520555326955540637895874353830699109158862091316578279235341042484156728013621223482542349228525642898964370853573150311375407866805404856523352342515180053192845245779905380619802721629441844169983951225642742901827027496545588720720030571137795823596145658741474871228339622819382625655487047784482880700815034289961632575812308847374467007631662864532353190210554883530766035453518192973915735993042336980219015691051449809498002178751364490569799527931657974532068035983509007708476345843642719232274352778997392801727214798878947665143997063981915684744750045684576421777766437224288049571233457565548907581245149183178690421475841655460955637167717666733165288452393714854400877184297984453195747107192900946009158366959851045644072139149439671007040293349314011064628511868433464431562521804602520168362641148856901553471983376348873525841369539709453838843720423983905754784331658412705061340512497704288477842215240720014617844565443894049446704248684673448976619167960472365563366435261989705052315132034478788644572402767542233504584140866910133957346310993229881153996942705047707201692339901976403851293624574199843600149890553830329670133696783200868490824168471441857158472276798286735332788810951477949312935788159322810095476487088994599307130762345151072607916803232912779869752730601859700514760506372457875561325317311045785708045864936198871163171551639084482698255982241565034223596832573430394922995443636355644765358047568357305886539899279974961712208042442438899826985944504845700039903148825640541390462580212167140162287702115254392776825379980169753804238053314100715882700730899899905571834433777069400249332564949185314894752123530957273532774266409893353475778637088863437713478116371955222073188406502897248509131606207000916266787300584763503126772236226598990775420007302114676693620871679887447097992142456140173995869219772922366855241398354782274019447551972214200806951695715321849474864982632458939880619792932255964866580265115633310331482299762885944656437317696912553963412423800508692593376857848091933754088611956533212058470269583184667763976549319169754869942038705930789063300096761558078956391021523324731004420278307095095724856132404683875961575985265904870857318595317336149024287785780371012455422436696294761429279887337884883507377290520929600912069812621896374833196960608537262573256403245423630448616840546340441078727023080505395474430508253591523250274984598780734420937912417873545858292763884638117175383542293029173177836450888356587315212191086599848360116860787331238980828077369285190521591475445853863917487565588789961765565072846842093567431741618455396602077098245871894628811376619083706290793366655970657685359907983084992765750365757006936403838045255044234544847019129017084728648591879972692007963074681938263920152840498542253258915980949372414958086494182469300292956185372116696788236294098666322471995008471078386365963270104706607017684394764666506941784344909813967002464481962578163308715121342686589344380060942273331329503780879189115871137589207105300289801791207101708191858624750075854087604383693265779939412936490737863319832524990025602914923059605782817895213071059730521432122222862137547396813157636510497804390255521208046679145278284599082205481164936937024456685875959815836607028048748527724140834427458526135699968976808970250235798923721395928356644735699547665350778231180349239855653671204805346433816644532779729242064230862935837950801476295998600736078698124304439700318773531477113874077402374831418260842117265875471447019420902822618023784123702971241917460545774261618851382080208876033763875437844766920267188801328739612922916770950172590478980060332683360561744441215832290424671433439035091376121369590502533232497642468154181590945079943110977978376323130739003790653965621018801475064404202189643609953752631837610183963905836466105519859124862699082314927685851387535845744925657321191227832919481355562340318073968502120647876792281770010428031383652433730693607618752081057155939089647256877017459034957603224644585898464847320451717316834581104063518701731642794271644265686866797250945961873111758438400573432655392339743975846365277918962460715777765701547231581208867290034931743604687355480860713276822423972855402084008424879325238752146384974387096048302870109618434956533422127841453042225777636464395758184763009571095540165466793981477000421030024066706797420947635359762949599676730874582881404828998012529590345608111877025820832032561520142285554765350868464355950637769118097990587836782388221739970156324320117790769586795180310056241292092100209960338693191469555429564430496183841709735233701632240952193226576747876117242551945114778912791500898003101898873827894776482558455051887416445539942765349604619063796613165086263662743773749360469350912545834018541173249593125445015520144477341373815241288958629797531450864130964622461467056832891143651444470473061236961049384045378267559263038044048793202003301408393817344552513777338327470559279493843822267194347080223245188158225093679320215353503011168340479134427350725761236393551060488237284053898654944158645106601345461630047549752092702547154890785137572029158794006724863821322657561352907868737442398340217063098413329239869939783006860703938318782313003344514707099590373259041861299365212855076748452485251496306677022684812320750162003976447359526332061331986004504254374907117346736337010595443168108392449727184642738778121234155677031289228318348403941947248873143425478509518585597162960163952444237879134494810796953977614399186200664361154053008951847957572704402328472738271010207176593036960009033638956700258824768968308641937915450826168437611846481387876671477622991859133256587994405713381621934420036299560601793110932428308710225893602392737347030567297227381871053619996389381881446601638996666012110460163145016925498192028641182628243022524184911643834328902136807212585915643452985171021607085546159521997109454290212765616788772231515985750416006082932360779023027382324855567226045278653190937766937708487796237961710691488861827260679920687032339349785073669091241573026863651764324631524352042289575401988976370269674740555653852181709360902965066683345616299230052943915423274194206282974448500939517755878108989186435135592244639741942621860675952296650517772894151556605495755835481491032183370960732437970727183732014409894570771156383354862934300521200541138227160913574982376662112094805007072042948322604347409307378587036046377282223584191255835080011626070244131819915394613603428582235855763984229070632385313073484253571492026178678586539233516938566046944405841049574315946589614033321007200328579719203806833490746239523930007596423410927821676006718935942593262895913910604070175029498931488455952686157330063356563973033559670977516516888438978243670058882863432898560574081848859819406876809496272736530653930797691132352692437873746905151744382358929034192328602602681410795357031049293675933328769400177922288095325879418123030925189876046099696630768541545326706773414362235419628369209572154552799348327445285926294505598448721647695249654398271785154706348003700157234657109378709103056724178161709132421755078144496221172793993516347826526656240760020281104789336416101896689157225441926562906356991031235156356614970891550432917782436971658470319621570086871783909376498607754606190924523571100083502096487584750925170999323250263440215560840179006580489516691904878120452006274411545190599111705110950934632123342183651687126116224064498372320604216859655094035892507084200684578109797704371258491955233790520646307735203370994903041608214307102973821486159645768166792537224584110738196285274322666834066317121149324950521584266080185794167156786173718989248889080883406560384561269451702421006119464801926235743994427831844560310758964122617374594211652320717419420744273614470414886590252968414335896342886105659897307426079429049536191436735881963488867638181699070682790514968306438094432522975346482674095377904890846457972930366571947451574227919126500739625320669570299498747713342767099086655555001397833230206515717394401876492568680633308630687845037646520854782527722151475246062360094660087735994081244471710687492321019169382416198719632741405558065689842679499149065321451785048117335549701224907593783883976580549824016184579272174400743275950481744173668783789128136247583320292432782796951757546572920661600561533419761608055098541285297488391684405655263519549351285669659271843207813840324290767947123310984590914926176084002831269124438311379906143904313445192446999339687115996377992473113490641454029131456035798758491564523142008045676887824441096234639875707197664952003441056209961883628942585532681899118809948374341366743897837217935231972775708951891782174903104170541044122993313560237032705402475277735569109934649470346248245507189127258148561689628658006531717747501299405908460639077682652739400935885553392680689714807146239202084178984669375439855810786031735311911246150813887802593051271281692773383096208771223608223119976583476394781253086689785613789217649818482593699448672968675736513136619504714404662356654775398741978651432294571072648588815242234157051503039230775901181271513823435295482430091461973231394013235829946800298983152204872338815462893318124613894003066369452359523593496748534476946340857110028181864510200266348485033981906421623842531151415475393656154836606287558939133752725675345636208616123449896140926604098180893663599112112650977056471924855556752932590843282560078992804865068215379091170452676482582990506131527309156540685780348048388385069279931474730098364754655108868039819654952130088655534872310263165589737811436950789593704983864370359969047827529715608824984110836722093966988061633023238189763389298656182868649996031343252026640075276997583837947786236811305084403811126288683343925914555087231908808425555547569239660965711972735218964465928790749187540413949467302201969432346833443147658150753169691040286310822940654154356993736514927560769539587730134609802818997789248911243834177245651190458901690916773162041309637787228961094987428077876195776731149810742501012465197650789222056674648473901526311877392236902499625444667056323338673920786453086887719047752568402955435569331281744700403730041491808802785418801940723246849836107808984852028728669994524312249389474398429066727931135714323010117559983975702926535520329021580085343098550872278908936224833179282921297286416023210405578767686651295375255671703421839665296839863400136619653735784412366530801132233191427441706971376244266337612684187961732510259495468908367908918727901379501640990309316944399609765819138279239370021537676523309753558327166093503954566179973385464322800230129708306578654147655652288929641262271406775507896214293323574780813019016359458530625862178255423896527545001123933625904477396914215174140518441338023917626799800055398151453979484876803407087186903830775265769676797824310994543457787315515454491849152416371545782577123501682279643769272295566893844709489839952727572579862755428603849807066513087128143716720758033726397668082857403545993675331017804815984259572154006943550483083700452153216675874249328343788401772042226575294011687399890068566890606960546317927194738123859708688811188517918575995027664647038156428268019871891993428492289631265287178505932317667479056696170637293205884709770952793702462470815728087563127824301527937889082965247406311813684857402837662418209855831070472280556970903748858350642428164367820520088840476176941126781463152786923771542515267797126977094200343898619806206051554023743122368688958868998384612405805572561530860831627380232857549174818557214726321323584616637218771105715528248214516920760179747665295930725536691502306596431356284375200337428249578041275330961361569163622099199745700292235106396065187898352963944079669469160276542400784760160170052523670635636302784047332514093876381588194742801312375225524565889335932137879220784414163311795016493938383767542582966640399909468828595246078691372087330398762949173222255427833247666926707563306791645110151952669408946378682477549242387176384889374406927503137875879931779526773806836977186079732374321516315441692261523042419782706543483332331154719190729615662234044283512473019329108726497557592701861711642480263852569422239328400504434929640386798052784682374238372461711813541170425150653470012111026050743866151483549548195568621288914962751712691688797726668941849573738239086961998080402528330872358104594060979838530652721612046046517816997233107566566885368890850582899629232559377939574242775945852993685314212161210876000497783807585212656897396295432776153561244264819691895487805754123347803211797833244414163332628571110718720778168154053086364482872640873475536798112244354726963011841609019995821359302719315343805940962029031959609155101685184071943927195054892152172193784384616994182402890361847077712551377649383018045489643806355187569482631286727201367064320142531009958805246544748192126633863332228984280696705672334858803099850041133634135522520367767337544658957106681023703125136991084312908914796900038349612544231191289337781228827075922465253235563995388571747290007102601622987745383427994334470206828284433655774943206604553478405290625547467133476796330808406155843245580966920026743564648540397804563849300425140924716516890804181186100315276371760156760531617627619746317077139175626868791126232256485013731795234804260723234477705985690494217180290379643134830481178796489184105174537339544528471758862704846269544617136867698176530301744611540291291460734017347396225946182365958032095827231689370910525002940978484784792866161793074306510751233727431679514805790516838798972244321670846913951720024652296617308679359628098398807397199914077547097186908162215952965809473406826845076108381543547280088826146152967364541987324404877133488556658217920057326111418189816994005726794560535611318578561823979027673715132247343019060323976112071426244700854994870738093034733772711051387491427463795074175575295186214930467031832395494762778710987214228251659107443432544395617080322336430357975953138631091228925758095227089198365683970086677754574413702761160148852318422169836927085374035073511732419550373625002846543588180873154338355510029064365841630008588631588661582457923006269781069659018735606058443945988200429847007148750168989460006217519264318311451884941603402762144837301268943291171249537865770985195031099143168964268753982894494623237016058931761738958252937596111305288209608929647193213585850734267161028874290241461384395946369086114283069842560799654956845676109557758377517877998679234702751150270518040338124969725684652529503146444410053048586660366152394532392580122002247493802978330094593790381075345966284107227338637620753339625020526871898550690690659995098190612099520291572326369042968072740731115509044683506065515850653394642969080188657785893934988665708613950868485914463749471624972351099546218624542987460668669645880596534202043909676011655759519646878721372281195196486156512262428665754122157435365744264371507406106254737026063894385610668545154311643690874239579452616774851416901044127685280012643780981207172671022958614725784399477659107726921126544084004335126905751503507853767389876346614831024102966362166124679073030432952505329242969979502591599794068675470933270923377669323214066681783123531910620491577773233697217136954464243655908248050147734567906105066397916171040882708237672181185841592082904953886632181290870072082796912952231635817763958848569543977062818128281433091990353981069011531788503254935900254719244923910096023739323210855975202169874073919620342260129781885432627381184176537494427338052826926929200172720724417275799110777331775258434566047956403443553386765768144578011942046036332855691298655495037150047100304314179563867543363383143311164007890688246846004703043400832224371415596163600989238389478105498730001975495751117206472137342591439028897780394506580415786995004102850739903086385484896383263252972763912207374285582834358030108585947422963748342140721077184535911320762864373571235506880872222348233184740862609375254683860751868261570069704871866924915392697706419199376080251543810447056349120496721394358548035792415024746934217333015468895164341214647278445107706678977574838766064934545456431358659463178005754561235325141521643474555633673527289276867788625471654557653148052292075124662832325968682571884934286198114087231721944778475774062462470406108904865105158667064730392534806139992583162393121111734023146646355453134742793651570088388251019256292873617565612618757586586981959666171321524222441049476070311009492712112270746117783354070806705813774694205906181782630779085510517484650795065227044087305212665069374566416307643609339937499000313910444257130587556863977607708632054472530441983006689835282316455300649669100533423229460963454205742508289791570805354448929485934012761417003858917746163534807710405485847025120932040323207906270536632280501134322378739506909198029616636202692263032776043302153198116459598047126296772144037372789806978296095088088194882730659489062953778681555104292458002667145862911568923677885539260848289131688573923572828523348178555320835798315713452041984264665066216157929806771688020502617313545176535160498161323247474697184313919862344829962570839411464994660082543585283769844959525854044964282225300362221100781388051231976178558838322980215721760454347887206034284563776340835415711502095663076499165028032448726877425581920114275914941832337851440819488973355893841552846226586447380509654200044618079410587355324379998100677137191737185791782657940956211120077674596142067614703762432598310174506492425835263757866876326425803799260218208988873856543026128554922295779818342475416064265321759566860306389409847922798820722474837690468477813706986352036481026918797116856069498524612090735328365355067637747286181506419215084050600031413551039925815261001586979913376363608694910849190715951250247778419901034576977620096800347212174809451111977985528021241758999952729970164251094184487357688983344071586047526228717666689058685192576922667207183195828903134970813423426570754403187633097359490484947876859026308530218407710422022827738604148476031847262735277332076626046656159520836875190619745081044287064364026925334509561898977073314591297727504538239370076654779474014363778854830209859759188788652514372480258618694511472297539978010382693952175938525004557557124615815348317245256664745076744053837007765802434024239566851500919440315270792213412752348815884387441497344052610542755546300026348841394255984159088561402145685631206695178768746535413607087767502334780255241484529739893886289445257848773849673998197398508344540888104969420173219754200675956513801255684756038836082108939903144637311066072359347133039520662764101406039469158848866126679172300273668685350834049551932331130897766153195284842261539815201194115809750677058380464125912142719525503247442276690988088049882912182602358027443756824730467081377871562238268011717186422476146706104709314255263751051052159187619336869455776109975756345730321324928132764622148360640883477102341564753532770906770268947876923906940208612709503300263834316831785716716274444902484991012896043686854595777934287709381286309733670487084482051738308603190221188342840508403327524464846765373754806713206807293041171100329889859797998721392006500844511485673997259245969954898720684396985471062679878069262291631666799226601856368667812517763022785523276132885796286938364029096850856245368645860248909162396047481707898445767290788394232100514320407649425858386086279292210383833509658215492578301675012154693146959185270676488917766454059259095571548815055216719829323874503279709791422358169797637721425814133595269894615854707509649730462475830942438237203893509419228072500686446349578689630682501028013683288684462329184709794643118062039274674186100171029667880517380127239298758825395061319767078316288675393537219541934443191296143845379498661430156518578245860408889274681203681525225911760328410614902695595964837668308984357523788307558565358444982480707824565446546604957970389898765339259009525610848680427883104574818567390580948184095780011643955205256424533000476757279948384965565629051468386999473740388288456891163583540105080355584827953120451853499074556315330221376748333743769795745288968068637971433260286381133395606936229752809541114337600568702871900254539261643714998735228837887341910778741595311126565302326906184960213139766234436999261429136842500983806849871635017406818344265497482019444329619694686470655488749509659437511831515201847699718167805559528595810174145315984724935245087203826449641386844526707787792649304257600047274620178911290479878188357836505635022918790048635632907369481817487188241858048017938321152179837632052494303419714664727572038628104328514431708735616957297926112739445129492552674861681475298338485278226885384254802033886824823884139302856626632333736066235427298062914498970174867734186400007839188009015691453543549503748054988474800191601731777676207293604201342631450248556752367851027468805535554120466993092366911782342969599693217498763730742929763479294414455256270858768496462200226099908543815573866686631576730558087137865405747208075420710308782257434905407767537357443722304600766383808355798840800253921555649720416805076215246222095685361797189066673149296865629379220262200204181229379935104114149186416474910901335533891253829074972583520300212036204519905255500595174318378140588060776073893867747400788162967553460298117471176302945783730267763820272022069785817259747242758831900160305384566621443369068926632870465609761359552367980876252298215815079457063498426620805294163583664088716417390382197433852314205647161501371100911537541634439505500769108073021356015378161366571986262374678427083250583358966559829780362199101067896579205762761420650479512912796219306747524852281786957761393345151402907167813315501308722085926015248302467087440294986691583722226389169658001445984887283451865528413222544721891396754661783411842397395014776711725654271325591004593280092849147263888983331124019666341622944179831410835920089758792863979913861041412644053096482483887582194771753442036702587921129159530529215039525972609435905302690100212864370162438866721911024476563542631914360475801531436750523383004316046367541447862003590813275088231460967098097286958245261812043961116613094407964853437742337809058281101296930264715011977325066158315564230642912917537914633460350544734365410240607560505339390576520748878716810538870841272687814852426428303350401022807208921570190750799767793116985053767989817880608039771160142885426767084920129486030251884436709200565281790344843337467009456313689005148029650363580031895015549368138718111418352686446840146152324364572042329888746414477704830272021875798973527064228116118177746966326511039127364799765943304158430992961405046874445842228432004234088296836183142556602694766418887943663948497752151013897604199167804777586981781051049855543458545855428617668577702370639450935899540253150525701809501896748439757248408920060695543230323726059875292697537623619007348495976370762098956065747810799051511771847879512081615554547072290347664701694112362714853034533080616684884461899595232167339193649275786972373030350973000533381808861971069275836132481937532556400669778269615803594556969384889539294931808495984879730409345149285189881422812514866746338815427957342401491595371848492449783707694820100637124928390606409835209386489243273084388494739870083379250267758341808661958003825725257179476590572704660521979889905527761682013100307672728807557428942822510657622370400213945146849494019156350443979334094912217315153169713336460241004888851251367508352050315569348020247267520706264535282528819268518962700315091764325730434443470945608858868291981441201966559794733490521163656470517378654912636779339235451645525471110997664828235836415981431307238560194750780792704393711561052213940030579498220248658316145048780715908405837853363951899254834015310904179297331397307207746433434075140901074533770666754065974408909714173032712196721953495975264952266704468820268653510322981851963834216613926983791196543146329050111124445809190856678453519138700492735499929532260544048095718616453151566968988246002630869901196737622270610468627434993061610930045416608292408043170817459654636228816528640820322173310955068892279344687258535000453292133304197914805055850371898808526362517481026316263999265239503527131117315899473340299154631881497336988716122290029030085430715656695256163711394173840062819439324305751008619992298635967290272630090000906437570521181718565977716687367237828480107434518569079330248718692965616392829191577823012249934494540159364261628426319168835626065692850628145969454794054498295285559248773256543890873879291611317966953037983464607957786888339296448759253913080780861731514769157752466606149824861406292019567582644387043704363635322387244118139377433558180300542578277149238195991669337985894260590187702505354255562384205909513417837488642882942601638208615175185335400008412412741773643064895231573199671257899776817461411040340023618183844095776349709222634764372488527026439738278025418824664194805840268863656438283389053019558961149739671533764511288113781633873507075643747881467661018974992105149985641735294396627419378650270699753804202239334949725955527732929285118081530517243117701712601688497931698262395665214177533719589835667190108695217323719249383251818869539900805817955975487669672015230494678192918525945351091599758321532295235316585069856008499587865313932517136057010847879645712807630873375911750100450593153809719450992716240780147334397349049123051556522731453619236101658591632568480244521000745329447596251188489371643355357574204684087709891397903602514556019452756185952907368939049253358351658575016254273309135496785314181245741356016260488949748287746247802986427134659192383649585481342140154456190582306563592032050600651020663708985077063446890385984478447897098751279825175446480003465169139106435958098399094051813106264142393097876988367051141796343508529751217872905652379059132396358964529307433464647871948945126182664304415730283797711555076942248375428252049292011814847071388256915681225244142269896717862733357712945479055399987203103745240542145549247393424198638407424993634303722860886746390243251582737403960048557222194273079503198591971581338320632266880184823611340459961088080294522047514983261354255901853049842780226287199155661486530068190754406987989374759048455418455584233708933404600054097846573915176919406610698030352135948732317575971003972939143020014192486027873735984627275316281452520087854816177782268251736109452685504519465381880966008056481970140175431064751800242892381503921910530258210813378053416832571487974095235938312345049836133424272701277832826033128534221213396542928218766616331044706669746790152971655341076707677273916858817551716693713786611173285248358874252799328452665980662049381926540100500939233549076749332325805967538964545834789417494506573327767192185062118981168921178001516160435598666938452021854044110138782739869300940857285535802422644236817388189418141875866494896946774115595800938265274291407113240215767277865170796414578137775149611565552785896292350993115648689436279457730219034159382084958880889327075555479594206063524902736733648906366878586191770457797283596786796047318663071922654023034995801111686757614524325496920383992319691453716054145059620639222224990311329448044787329837656268102393738764605088182965434729711685395017537063030292593348298364553588804506594316143617413666376987443108816920192042336371790428576562435050567893123364466057422307584543935119037833106549695459734600682132915836867650294539985631942037259826445722786327844365799617338388196212913568814088770405902239036553241084754603485681949218448258929108711878067007379835216079604680180715394306697036032465851368623724602633047706080838639934558715607549450304679631691301603752398721827038576918394344145301983752339161524715118039708365761225338171401125053993196666956998123318977366392569665807368483132076379153979771340579761025752861863672972909066109139510566070745212604072475348267095503080716935226524916582049860359680103452753532722336138034898453331038879446088938128290280846544015835283726490971463396135032899805346708510263304406252886093353893659672750420849940565041680442032551950373853789405210067660664196490631055306318812837049886790182658783161137098474695078818592038908021765564249475303434551360600452390870683999068545910330574905061745065037457862348594978002167149574990723033915948064898206481348529470321660116198374045741210965056230089391379075138656685369265945675913243245777575845189050195973810487212523386227651623047701428494976518772792962724695307294099427713856453212171580086748047314834052212400193741820832415327091018806017011168512336597091323581468907206463639952832057735855250548485529572685214484105912763248414299896216062749344804997931387171393394638948782420453530195600046575482970757801937244608443694309455612761962175025105886568647490064524237191622522534752105515116738673504551864850834736707698847177598901363485274190616538393960221011761252062134754582254382974562940337373816894527324160603617160075294073573610419279881552970894020123636857474533375624475911004169413548510736808224769578051742399228042038917118641113800485760105992161103546628894932154964984467184433486895878922303066479487370596725308734014733449817183188477008134047890468460847411313827406532658340311170063396107595723861739988566888879661848784148733548242706986196313009144165080723721036019180324797321075237157104517806320942763477321669281962454443754496638042637111601871529059972670601748382528936360313080284613136089915090196710688928021201435057207785758475642002081800855517029393082783614666092988876706264403245327954277821129831908181083247019675160825341044800204502822186151173766701859526314816243501831948893880987240235618090447498248893752543526913199266116722778808388222210162616479317285921676848454782237794693496145234198509110525820509012560272595555246852373941939882969894563954676537609470002113823746428314673652013213123108955076216533483882923111667317538906910525750738020842597854616846418783590532645841880189627447080088025046251156409918847392408094527775237095636561317123972428329849451860964519589817835039426011574719495583112023674986868369926443224757539682147871612726040661434023393269313474378179314944497912654092124226704131161325209768381946364608075530477298235719643494938600034970468393160533382546062493466368784714216792241452186832947897370470192846249370107137893830732398258412045263314224568653481093089942042738752362233194164137857765123367640881008797430142160757792520649812027365085795687973643853421676815523805811815017979637117414628106812573620336042764661116706055067267069412084798502827595173998755789897601401686507451771436321395820574834861670266354854459785402019922070870248415308254773497507372212662253943101026327471937220742174993779308436343302065174747168114773183437530978996380057922699532790625096114107940008237205871111778476393477315590366491415780737644200755763087759216008677551039567214507467950405080286748370446434962185809939135329769854844589545462328087280988541722677052017307322116488654057777829971828815032713530207710616955731662982446000733622526194576745337277869615116824028241174105773523271343487242273954504293514187595772038174613734253867801062980742688395059165806266076222340662439350519102954254342837268707740822608363661046307894307063249969311204653061017877386551341889689026027861214684770416553861036484992784163204304635741985611904796611479628476343832323986453195755693941775281247525014040986116134523869414905651635745542979555563981494274014675029535083976629039361065532893113769992377800567576287640872572471988519470772353020128131263191815296921707188964739535653828620142627470221146198851747732425746375262898798690062566403893182886156643055508389328363515796409478673372680886209967282519704639295486856459091892742717882113770819354900287552446408627874116832008699773489352809050829648158573644142575229229990245421413784439029229583328879050712424680835196260348727819249160719076041010788288950803454361273473207141278914613642806067264602074935802828802171743208198927636133214755599893285083403966168701688218692402902816396639566219110199663437818718983227106775855091712510516498456485164523102465763406374083122144074322474961772334509310253434017302387096243378989098285137533727034834528716273502246141375659125915419209242277753296327580401744726334826146444999213865593043424496468148264878181470705057064696895385883537339949002189232559388174812218461994894785239391121450254219367207433778451631170006464305841976185979752347350027880760311636383445777215987229403872427198528388888886296807143958824511638821046887438588204845555763323103953707226449152026819837241099628754380564373019193980581723205871413982150126391203562288318567764752942591470761617972163319641961020113476569966292988891578932059199024341911436609853129441859960510953097575861111549516333401055605564036413442874168972927393869686206693518325643235564000794806039716306419159827206588021707896829302533493417500468795575176235049579134382112184680047903490639345711973646570378214703546013327092621107889427921778187204501080662609338994391588566222960169112607618411320711415484086820189196843147973338674476234369808020745137644743176771446798041700787846626284979679927293588774833592916347680811565183434872965073074663208322266487437820364392034234092090923316425641122595454740726808155745447040866834011044330017626220724552690161450231467785244570186138772734283422304242757399689581960904738416641889427234830702027507761663576737452670129025865805862922287051914175906241169690030355833811672607358298394581406509003505194850104735450761227245711704332191465418151949663016664783882911871482426511708201398197637496272138720502139851900820342211087870712838368687297897969511334228862219566424452738908697970850506620377070644628143874363789778733023831422194450373106410686943631829786981995703345622898139512075523949783238053203641895911390207172114844463253933901098649157557643505664897216259364022939940857487428690926776944637123713921122433922964145955059551664283710749374663765379100315470177196443994930716465095884320594912931731052161354405246715785571190383298002954377981453980098575305372222393858620164705416508966176258560852793728150840282182125130524286477387080070117014511526087487155574430409751449109399246377765850263748320440556890385532193904997422548629545869028483414782524646312304713768354103466435909971980781258802450714871942733179566217970479604378352037766700033679068429153816096826972730383612116002131331174990593626393501351358746900456062529624559189418321289822478045269909952730105202229044272784211275713506765952759025011298273908212774506438525627461762791191285783163949139308519555364825089019750135203423878601388335360282368024239393569878589313715337417335862329058885890670649302329561545092290186297858665890929817379528271740066778142160184645391469513001860865604501947735406901590986486821406961225440215731058090841475637442111711959974555193873719939500167854358872119456025759118234253032227220830801228113755277251822771953471498814169274611050019957388200846423064069483919614913943312751854590242035357901382554669364454523959148304578330523392924605596724307081043374046408003723032447932594879942655516173042571587332737163642479612225599180178521356219546927209446947630110793836415556572418183407856327294549823233587123795666310407328527730241434403018784761474043718768350969190827725832947167934738909181434121315664870496233646868737886903607521563086494648275357219095346226553516820214469430191901602930458496698120538220954050295706860312912199536797953391673605373388324037804060952968633680004559476656287403042620678710025755643891160324598156179387170644108141049373248809543876514495587006448769963865072784724671771055769192733612119911787106204428907689592997212954093978731713034230598798425959989454097899258638846416565526051060329503962330280638739225141223992950869063621051102881405198782292241142822703260587704729634231883325041219360899450916796607580449574900656965728642796366525213589962487932700081258122797808162447887943099900369266822214202003293964162760884456299181360880186679292148994724616525519190629562940151396519767574456149367332512882259487088689530009672396152753653401856664332548566919766028708504574513306513484381128939971528852561885043373318271158636709668210942392512170316995014234051873720284260283723396597710425384146209988915121375718869003963868872048593875979546132185396798724977873676306716418380710882485076981661014537293535371573168116645299719049333973552916585250398656098486230911578287534413920940065362978121932393905137503569123062889450557892502267565302194806734229213208074585841076994486936806280530584222223160638246104510698417110791985936824677097218998458446343440977111655687962385837637438429175350128083121025391212591685817120883493912472022499954017153660721027764469649565431981850004257820201830475143984111102579858723367184556920095254167217439474680166639936913322205564150390941774840372891428953738941535072473294508508469867513376787607535071624844281420790763795089570494104431782825039706621009208888149784398704599539564686616554824465062975281630222990723368551946904925175621196194409137436700760166441393519444451016935720012169727725501833424497734883658206645373125916795989045834225525696328272227200515545199002355391476766291190349398729514599302659342758551934860459159239650555928764816415787351999926614931499035863372954952892406938182421556853448241150934005039880848777188859333593907939895095628099634714320427461927964359146063167449623223751377155995297274063423425080159807379863543029590953268726403404258117924471317768314458267448539356146471694777431389192534608021079378793808132898404539326569903343962336070709990850460743729832189076235802687184690297882257588117756989610912320416977281487506346891556355526698927739892758394345858406223543038688526536211116264212583072928063090915826072525199839349325438076831553341406657367601040915676480495689323521462918878537900969184500896645847575913023666626742783155832738989382027182750954700564017107544135426768442730314072996240504175893856883674224591960677600661225820582631857706837360103946093771999052967824875530844134465888325992426151119224938707575112806766515643419173182610547161302035567156342552936873507520027817895778864151726019639622381507082855841963493098333233341207984464512985950406194338057918581456392684617466413534424843030636286139050049740021517877658784826957139557762296072180903681340831047647552681758537497099188186009361178439788703675266815393445627130259855839349761873540384865331839634136879835763709114677691815359945104589680336922589529085713466734166402866088427857039136043469953830654589669992262839567232727442528038843740158964733060788311132606125334140698602318992210434542246769862297274686710904441546014307232188125188602576369406208603082034147891623179114299202538581006276160956933635041566279809008301840768638251414548982278865216057245404175178435536227244719758739870905909965019590007156241332350923931874288032087584209628377791483025884642506600877478017401055136665683244629794780390161232023322995479251028508995125759391717562192916835443283450851855633865413733721162469494127776211271730957017192337342389866431388734735738414675342900775647959874299017742850269364296362278222173570597057207856773707869772800913127526029414383886234131626129481241220831169318275443876789813848986366680624930867307683456510665743011589715626443875300875240155384476489674704253605749285892913325771406354540142392250102911260540919670712839914534534100136947237557076820366863452334434489929727516890045032037150965991872557339943098284934136447051987541436913382110300195682370226112257162084434531469891169291569131036566752716627066701269378884436892122735320526152114235517268120978755327918343070135596921981745956743710629855532600807484411849347642536210759700894752258492490097703181823588868384186013934357283684622146813927982416800821201670923721511245003638778848364778038519559905404420551584812436662375239312261539804628959786467262843849988179982822264074300546609354811330358197890557346437310510759980736522997658110888270089845681060498744861575820756889813731192075999288587038508129155436178157166755193550733627954338200752156963806779663163013239147748351376534907783868402946265323801416441661276471351260700522627552234046154673672969362800331270660092268405618958860943201533679526080794368914471857685662448069965154162668168717183487901247656337321715863299227667792587061706357381814037533007406366224040377121275106044710894740172334032107063065373031570604418776812198268877912648279902905302639350679730736386496623391610089778670139039591179690824117813449950649440520250085521971041362187607837828989134160782752076275777521272252800495361417449380931300221331505502327517754619241747958274063220847952786444163038387761244754803595935466115918346014379731240459358878425660879521591629625711704497569904154020606965829553538613004150393788293437791558935458519870235450644390380906033073928022657217966486539250504506079186312349540583385436272631739203925161244067201939289978485885265611939423786004731108780753606307443085739021805073858763531531894956673922332051298345633640231241635839669354822094185039334237885752694283195274535638012336592677835375078920680298081817804859284882497451650895436386972815116256907620939569608988274606231436124436977521842136315565837541452965727468087950286816763579945516538961467640123685488634113042399850392797993675540213916735564199210371067919926750628802515313817670501349594085219830041607385694349722179633483599928943074746518105032515132108734116222416106286345702254044514909070225948434965080372376668392309415505241065157714329602615179277911081873013163210772731354663025207367602892179328657921368754186967466447451830770291173919091631252184644272888536735065467578366475464728087131006390456548508188643424150778393651091274845355749038279370913574702174879638216692197479510665953830363485379515275318637903964526699760889153803980285720621359752671826491162940937648033408275171294201750837512420182414500881077343162086923064689248071726049852668010977235299951282645597661483441471719571569499724261883126121486471457898501601798173057110516797956425878431479442107720531672466171521921079030067126192475840080017199479438202273101526446969353324964915402438843539646080705313207353846138238324458046198154786166944855940556624845035654164476207015624935383203525752358554618287120552776702691557052186009218967273474120313247398737243258675010375958560625342050372308958049521001120011842131212663838601472637229975685064457287983900553580421738625643426941439749450503574340478421566208223705647348870466033185988988139086730086446620413696981497257197114579411453345479290371896209975528990549181738487060449498514694350322176598385462367239636591771332947163030120528154964858426965062285941919045883740409329408526472921983634260793537640211633916726027271089679120849898952335341740256240120485307818242201756292552883133983322942477255948982364072929567756571551735568567267256702776861205629887198016530262841705949765280182952935596611033835617508569018704833154744204623476049906099514178105489424065119717013449201103135352570003656773119470589831871475113837024371037645633716678015698153672822420587026692743734608532053863322541970866344340011565992712041442617996602235100948133883162899818095525692348541819690993149151345807999858964303153008986969219837463435308222063123645863182969739552853778080197892353319025595394047599323683065104960564598273837592358409158256400694791144404719695470554059907290676895129404339932624346033215540277291977882144475240031254938084987992304529368090805641109448075749437310001826408043118678206896152060564327401123963272489820204247617398400638197628426226370399927840675401132869487311164899905034583917094427127674988819957269904211009632259476334373408417468670435768194989810483125377908306417331309873472925540187160300241502892800573902521000047469728365403944325325984115049425862639581371204966408262814270311849995811722286644923439876874895811497261580085307084473890792214684845012784379208484163745951304832985391444768096165976775193003666601441903740566696555161514414807957382985484259001159019772720330322075098649396083585674614055153733396754338580084512213502506137547050640341208388429940385691211347627767394128770526983304732662857864001804453778286583383025611148636498411442087808068451774401011555070536839684874147190951384965116864108745800828097192463110865281638864498753369797077204873492338740428868624023873167654264084375763380813375788507580116774999967979038290021525583012101799367170064924678684946289414799576022108268036494058574497213290102413909177694434469728870811258066927356601943951024198428006698003052005301319950659023906375554543357598461970356965434373957526150228418217109864549185632464886462630567938025378876306945905958275016199039342564363521704392499506589836968708918474209299841081910558907204898691065246266914516830665492795086801419347348262226751585714865396584076964913951829371081987845398299082112952842442199961525804004839624386230130444102544130285629875479496007267493745326678604410240637174207140024290197005738629423831548822220615512126381999371310497245877435559526528231189322034303927170789113008337198160353331534545937632308448492538841613654222318057073736016980850630889067291117346528578447406896692256322422076019447996142653070660116017979999010817917731872786382706768116044240990773072491008307692434564422691095709453830952315356817939310800242765880623500214108325613733655783242038861200845937274371369500338322221528566691226371857472980013795438505888167023619132971056681186218701278478724238701667173683180725213381580572314008171022706779897493232270449261205022003151177827479346001223105048920456557486026017556288427985661590460732164004110022863578550362877988417354764828144200701108257295982281631490734386225455454468270657216678690844929069401264415032016319915406571197321749458299664558595061991837615581254697174689657065069991709048818177093720438668385773421045780830353853669255233993629833506062609100634889675827736975390845825845395258131629818532292406064905005158715432878174017234500314506677042588057969677338874414859187390505986204821485590899157857505141383687947490724143276836583698279976377059013008059100612827225734511812193920891856760792801238869655012405187188030166903489655446755792169976099935008568390093209831576519065210079532334512832912024701743587262199192768572523567103643079953420587870264047468239607419705030742564540402332712524088026326958312224401158844611345397268986704221092332009241203357267177135165432249121381131594593814689106231005703193548739581130570384239848263710461424989730294251212926422753143404202059385317587689911328302224311845330367476446409362869648078827571601061302435437715210678945566668056775196867465405113392089578121251516041598044845986280098905609090926584777340853636293287930781221863928909845286585696182208148710744163002059849124299459028823358058940629677609403083432542244879934339973733521603032353216065706214941677955480366063972411011227831082003750081521530026295897596964710407616144920607640964507084035332880095139116922319778590970270559256050766578560442090143533527114240742473927503815465936196884250152259609008460260734380447383771636372654555354998500728466066053895068508036800165118110395446362328200078955025685608217266039581627505291656200839552379378307188373534880716913268571359420911411072434102419486214336742828877788188476283984808745910032132067577578451142044603224234499063427070017831344670713361415874410826290290504528004316028457615859445381243172753513031861150161311301444960590724983159650128422711766541317867391901518120734250322766942095860653670557921784003316410796496086415874277941409271019285407227271499001909699319394431764488452539770137340183686488612331543382488176661694972355112939102400686989025129042038955375679551131668860163727396748153411305273266997586722652290094806313227675795733429715983492568201026137865901489072441942083242594345888938787517052420007783263371973386257089556255878646744388227708317542028762714738187567675459496692951439198526523939032039765475879798742132942916922865426257195976903720486525516065346125029594157115430117468038007138971599669642745129021733861998195431402576626629118104958614661127975541686854571341858442282807867419984529536439850237581135643215094100594557140714405785341556716466853765277171809056162072160699422701298038506377748096214987802041674385256041213732833978278494178049444338195899448349505983989963203728959783649022290306948293858548120222900848240658161865137281777004353678206474223590029318708639311683246395480419997914310452790134311247957941174536913960165907775902155915309221642422090596057597882499262636226686305226631969472321802810580109774801190512802904807876217001476233061591628398982443569838437925021593230914085902749616679359745044094876705753742192522862025913300873385594744730998204375483166344611550690863485583228286279705660199681566923986160640323793322589797909900171555387490256895352764866379258126077416753524217634493331544813594368758910227948930249402984969408787218400603302866626123514063107142958892125951590636788166874122690972201937364007136151377728258347110499969734201913339732677190053442991973238900041218432022534185078486894072510690351362915679097030061808135928565597012276560252319374890578017736254572651981238074160754324898709923481483419513012422989122897749657776590941338228711153508260059631610218650472653702428921718625686057196376258933062685688294245306785360871409020978579233769467083833688814588069829463222575099077179348895096691738201399899835349550477762772695683087082879756743095863027530920281695188033438704979201488669933763476383779549939058027995893702113492255824023710655557765900638223540332911910233091310537273962177202308633997223611871105232496736934388734053616602543036258071604078550877498726647855361016654704480519754045203705825280459287872903448536129256722789350812123469946010932344277965735747484671542268188451547425515715758757037728982387690971455294408612814240247716837760642071609023117184598843995813280872328514443513913233198916693123967524087857191545633431321272064411876636285331148220108790954635268840724345706377828954808267954297634073928204272031513787273686881555040929775220052003767692026249501449886469894668482410729312540440638968055512275631625607776549533875459496548402417749389563398066755128267436356986480347006143335144222018025341427195138484393919685223942036922817454936231516526523636596885832845418370324321584147901832989859871479256270159849327409138074372236722893186083411881517615745880852538555375878347350671839335397406478102881437674445609475255698676099832274263018474761754047100258399686364757410455435660847364199771584122670282489812673044152982569772716536448057311485041223430747268152379886834257686944598120736650511197877461547022971029709600028986173659167449195704882719097154132934095388329538976507384379791283367071716868135786626255186319912991949730307850625698668775018926670178932791328016787747491077113546754708572889376879034470274281298446194007900943470963918964130348162579490987410629948131238217031505400888104358807519483716360156281063036039634125356781066463603054546343380812763517257032854221915504706197607460152084109530951188337893359308034519205712099637784337096603273151122408824957512847184428488918619833411433534601953319051158665094664805466069042506720065020489879100609409665773976297761626088932264448458962778376988204375927194645847468939081055233032644009153104517420137922759682607253349680393713539621621374020567733283134520304139410840121950567457923065663390544746696161233307745260166196282399600651260885101247538217222029518199961369993865875557204463730434442295393720994434658421334908457470908277506265102025540966199790272345012255922939195131232868136103733792914241653998662098794191027613619135076330626176837437024277695372958818636524747462971544022508009496812318750322300119488240837364607427514122753180208599104683319882440130953011961423517538426528775680167833010659564896962697896514759701740352202959230486411079389260831860621083849618669633337396292151449263242395474226584473664603569449408025211552346356696400802020854743234723165979942433449080098533868994701805145513326892920006189173328256185542169793421183075064973061892598371713377592054673927830126505595289220565052456623764872414642222086241417537343974645578542210501722597313975408541697954020620066316062680873826773372674798532721902255703866508465146464727400694012737689987938706424280373457890869837525953976257915624326928846919546412031843447732379475870592368297073371991539747359886060552613818193612506312760912623530797060401387147175622030020003862797510381248541105347733815619366675593832523417413781347192929648778512189291752533321714640384793972914562042463846520390044344239104116052594091807574835631521284085554036344798018069209039281431200256856091097700213836477398737138858884294960926505432465296939435266549323180056192923448120910668973739794106091525479440803194693268622889511838108990454153867745737766927749714858138611395438222031730379853005203291244226707511242882561223727288409510152764945057504181621198110603462526930280399802500598372760901799949965786368539063946875579365952351903772877557496867179200998550235016576992428257935469974396291501726401588858573370110988154245427495282598283569740592667283230927194325042543745303324147221665648681174171781716459557162074287185991282244333307942064994141086946233381232599057470890757673549210769087478548620489514525613815216712260218118261007765990600042620343545417208173016533134173814583813974637747156160589208243369065042731717099605108598940875779121589684225921772596239683626205415495885099159094132590332182592307135839930888074273796340093250122915688495192099176517474433284509110151486567775972857648898693196476418156554045909136778808449924963315501739279391384962962520091670443199760359166295198034701763468228650876657846724555810699461338480445768095099403594920447363250264003482397757253699293386962716859204716121744517309388639001066809146080856456213664613618026692754328722352551960472216226461821304189914557697087798621932892497224184015670933306757841472473489186609046473570105560954900475759176103364769430438077349562457716842860231431625198237486679232131707555607871117307672355390743276887934046069614641498079188613738065133055282974277226770080265340949950422294882010756441967967163759873195557645845579769630180726102941077053021892256488208281099151095227596703486449460433053155992000619499848110568924002631238855546714861421383506409207514330843673382167473152457146211159949786298598811771078046680653965782042835015311296336641330996133805438893232820873345005257944284763862953413942466328454727790653720196404520280469339072238691714125183777622710606853804868114081043785668451308733857997929309581086129473846783505715624609088204073179848450322819481580518795075595981839384567760552814646508731019279063628357960416101751726475908523029924526765244672090315267946191447520875126511647903540329312290743508600453562648037418216903094858946048030243038198807695376254708878454972826392443923160445060136822550740680287353851873868332438980519563391121499264018586790123763799830522042555628858170856763470799599910329633272758169645390913663598266263453648840340188659364195981370989274532736592052343925321635493572757820157308407992675456172239611078463042471037006787394701341365529906840511960893833284724542159098625328646405934380154656831109921834306762236117362733137108052744563245580052313775604576207427469013853208674770419972842165254496836643741337348737249266097712704881153040564729686331059321688806155108194404537934663401390247845325910643271459242068151910333410707472946012246155148394772100459089972707671234050025076899181856206289230898796959535405871671855173566834834589711524350180826852374111573149546794865125362566842814957635768349025201318341190334528102477184648900711584614783504544525332983150309764144466782781877498401522987812333454929422492940471517337956745306148990026310458295231536529527793093971189572877661681252388365674220087077144308769022698084082493701240551049070230722533185739192516676644793303847044661214586198680687978400099317580425807307917073623695255074197179595132282415911195624715556330764780106023484879577254584383749325243414632034569899669569836431441516481214567218785679633009406560987931517030891032526802255203797453271875421113900732534214718789995238462230548749129817478728292924709207515502565600034856997081003486872502146762587612061696483443275464502697884047981867900269961362428594095262868888142246840528695871597385181763374182918711499516912432162095582341749888028034223349994640536495977574976469588797901285452219212792525574624545001890690392666711697791950691346207842334394857616571690087352410911757206683985011796668253393910055885986506120719015114178827479236819816859914736394395186933388106375288804070926456870453208547751282865899184400997855626753353842192038785002968605667411583439920685823043977714776422641574632542105050288212578951433945051214076247220229145587026609099674078952549252118512433478766076816647039523737044044365319724864975409867964418370881976424975975504871387476488556388264492921805004436311144987077301799655809001193219561315291797620383041722583968189381235842918901216857895117396828593957736776242950305980347713399574682141855842505868056643682299159905713759474073844213552305565693235618747560778048257932509587707050835712708443891309784856950056144628106765282816220396251728065909439498377507838072776234899610493420218066723827826647533446953132116613480735175087931704655614987827473604737367343987896923657969224309810587867044148731365663791727711838330729244208910308419021297092383228231406191490014548214231171384502165322630189264231824709272584006249832103899501089700629757204910727388327632205787033526803983661568914477003768706593864020052631745579714642781986090887202833877920620948160451855013971419533851114192919224727631777573083212875018745438427597585219605800666695298731538745861029038235747491513374729856953390116481933100649872241029244360989142321078065349853326788912963800210708681767698540178044884332483184228278362810679746763999877396797951193524182342261509526826775741240806606119239937432064816190924954177872768751220512006777803811460716609407103935592708261982318362485846174519831824273245395961398871132621983546480782276190082513065482750660522273642901484679839137722591283809172088422890936064604436516343733461246791768677590718704333880877850263291729102654060954018199046027091323381324180621606006391581792895088939208835151659493333053519885194532816484818227090083075675842606750929609050356262471722031088644069419560309721721913870240606431850874324803148535443864142400330478582353054895654770608159993769395043199288675851642977315797789229371903803026428831265249934267320635991655568132899379733914438625444038899107327552334989143720102727544055033386129086182548673629174817104269417147827213464101130353524844735938724850819015191877155371390230295137222485186676115157549736499283161625010164289875836276732134775964777412578427956220996312166105712003206207174792439612430075496189852570156985030830489560175094020716498768487536175416319792216701359594417370710091624425063169390198745403677279845248405839658191548341842827127645734231362019425483581979217779061935911444960009510955684584816578740984607529039602570832569734262521249393892917768842323599048943715753622279296833701026357778657293580105476916584391856408457698863014373853426183875280467696626185463598745976016397786556335111193756335804222605237879960612186186425048803623008665593943758368006301273409211919724479158325964602992250925674468495958079504942835700027592321375333097324040858504798866975963722803106072132993222003502894571134272371700641818284640131041047866384724598621003020555187511547869705560428915146516523415975296527809449466638503773293904271519634428786661617723767754954937678116163240338767884430124044559317202367767762943637904300417796800967186535347682304163092075003407062126075264081057765317341593665915808215850683019892146421560976277987570498759865772983941871608907786540998371826475757258972497225460965626295639663029481276888356584115479527329463785516862666692098210676365875514841207987302485887784670966533160370471354951004316480501547158861625375608964067086380815490069960239109276432288493511214003183264464138899008583035740911347976748823036673991024909078783437798729530564161179393536368298359150766381708172880522257381181396993314223304647877861303637911822824185447815178652085066879590182015429111399131437690326767002275218000084423197002433352958735232884937888720446653037795203259609687526862144781754607946872566364834598716082041500443260075114866772725983149215251322566351116120631539920735958520028744985384952552688301850228027838648466281177759028505209172738289782962069393007803801670860794419639160911947215560500006360560116373551120813922291664250402323900322495502573981520697202514913861831074052244727618505057790878318967857388050438815693777514142933166633617528689919508761478568600646396217716213615603230257835894927393343867993721324595099383555628161209038660115809155309933679811891934320351546174759872835474480226966063113813159781979769802634987282437780298806893127792977911712688081223167156124393001761340545274670430492341961761076456640590678784860676990264868035060096633411151074200031522751355814123673846409714335662692205421680173696355228352928437002920004732772412807577537385623429945354093247508351712947370057863337685952851602893226703610858981276087509326999310862133547626935033469751125376291338911876079975565158986767767333295222137608461535128652383686760545187364789582775664567167493715625337889287170599534686218873327337217714505849294340086697614792429594326581727929775047313978036470844085507120009274392380385821368001527994419015226341528756099313761147833734019662190876107336951057292835129045816285738051927459597256501246733975581989380512349164981597959750434802653120890443013266802169579970054610119952565715981333144514267768749637948309808871601224401581876531688909609975747398372459340842990540550766642486123771158876551427801239499310956298017282885131917428578577216038290682395866938714342332736530081815626912369998805254221832303730997970425225973339022364006529870617003498644501476472137469836402653916008834833500610444103565119187665586298788495546683607385610598978623620394301898702466665475027057973992601547354800372283092946514118493879593075847185425973258699798866188173984694111120661112014119825278752920715622925255030503558839993178101377301964871824729604054401445781699625757735814112484971526257840909856076681364996180647895930403987822183235434430908354183949494718736936659094615967556666224263496124961530246634982831457785698719298608868817265963127072246473314386334331690882793805008469373656718465738396837350016475205144198562936034672792887677994437634891582366879116253288509273676629146082565035039261608093024628843042867556946421582101782110365584706811714906123960413362241550850346305633414404605160063133266954894860866729241003990607018582421903709620738924495277150920793593309606564860279342135152658854393203672895341260932212743936555514522967366287622874591186977933235487285518705702357830352444182445587097799880801441513097612333210150879144025477880196140828108082229753104651063334173753257069382746842446286287290182341834305704772775283657774717842375587537788541712908633541362938010187135250723737927118133536919534271844357762702515398028183626746944269986911507562357002060522104104655362242546768225579335165175045668317992570327607205954882969970498048829176791763277832907412110495581003103921939188972792546477465936728331146421305254768133910673878212143731326470579463492901310118133925576550364943713100640935885882528139258029586899335281519361216089962171176316941705103664432351727708777903674500247023712052564266492809572027118669181664663389087918196064969722783959288949412307936076378375910166980223840911687238225458331915755431946970859592776185245335577445078861226865720076788516283950830777453426084776154787572743108961200627690652478376695576690598117847255417665878441744581239382215336911970383360788574199395415458635062324429681321369493263929152851200787659102546375922318190702239625284147643370974863983441281003839836820263901182036432831079150090879958013449234786252790867034177068520080692162796694523318686605323089748510901773367120814348110984574674623150791107686302440306651911177056527073855393309303751488397142207581663384499508795040514863409188074641955982069627522458471564343031826741418774289325371414640396665185014683414648422274272657420913429054560189677295508956248291392585380836936762360275809626396969267396270285092596631322358845837255172394528428680909749406119573886588608780416289280575751618433497194464618800791569742726057027463612899661093481272934415958712487378753854811938209443502734031529834845753213053139510964381661912281016764980555368798454564317209452222075904682553487292997395759932289610679986937302169801866888145657406136035406097186951160763872217722441270981020431827766107212799216976302382038789356708206524005110960102300976116492082519738792475751354420045893121889657007616152208977363546623634780308701429882581970901421012094918584634739214474019838888077286967563680170348516481960069130360472310425157449387465197588956839641285258755562084017377755990566158512723245351582727035087141314475668715307241000652705497992202087283089839399263436989941529457831422169824174939379827198869051526006833632660297127618414907734806749356609392691289346587428223022197223273787805539009664869150382160377270304140059655540999071867670041502164089052301618304022388529691112636389575830766806077218564906660630678989040395972970281822043054342741658701837243573116002097515572176827127842039799864004413065576980429469261481343247136582379061118266233333827089476194025696517558273443117230214226225570360782847397300261535633784246916684072418070518397383767558395013188126756445508069613447084201034524706561981630656037301787635321943203140464864494809421844624068562210971017452697235326895218600044503910394041809920720774013976509806463659764181880531466625576999498465503565864537521729776248527804904011759037116815784753269279150474967825552508927869918703572735903897101681069441328954573393913256501908944284766237418701942459632544504564823799167982803733668811193639655200986824255616153899299631540304086909544589698656802385002442132936410151280606634161215853531305561632384094935341597417418075314173504943144885158125164546378629854319278612824263764015781371600800103485692045023262844387217550274001892205847235633435454382688233383458157467951391431960799209404317306432016796526234718077362693162674494856254246368784080150032703872029682492417884958918584119478579083024962867775490296080893313577140805734430495074942401745364648273890621740709196143793356052083789317317788101839108440142075187294031947096769017247198648716926152169970313576532396454501880129354578080069005494635954041978620052482938002288428126017657656001829132185084241043160418203283333820697470629605268841195455772126384888695284189320196670650490997362808071453857806443844111372985645818196182088044593241825712822515316021981554085721004221148694300334958083441292953175806767077522224895564758309379189507434798069192315331294964817675846027750198819458567057238564150114379471152722569430736327933415835252338399315916313602061355432177201612009595109590128418668253784092555449181590165560088366655196005964064310013909868912670237489286284283126572016565951003414570015934906619204270574550196451019091132898852532337523029734021111176403545035142985431334858497330304856610249140817898398862037673004718656548527433356008997206149747935938494593279803240168682718069014209167633664083959982652008176890101683560275209054524930789461276198996190222840304372597010450988870213086211787765102510147190798928292765766081885491403802021579423711907720713400680579890237962796048243805631570846266787471151075706146253778049857398525478306700214800071115586374867709056633296927665619974227676365170492696318653841430649890772681743652583962835016965738295224382183597275160529714061609795506433896230882699953564501654480403249228158522991865292775553079798947130277655170437274495813886675724582365522835032460466713229140665228302087856965036669850283976066939841613719276959327496913405662859912399892020274869740116789533637958484079098403485283198058802735607528634194011714033485405421496622062840612394490692023707149321922295968786309417016202893076994734549263838165059154301270255364559729502986164190968270367663858384899680133374235795958209048451256599503184737954324418122124905759859561452932896521637680820389684227263237272518338322884053425382238713737529314602470296867108548159186763760783145283579070383603303086898166261081672993967161517561188335970618639063607288463640957407046386865639162683167276526718242279786170002633857391679231228236461860102955767674676528988532819775194183556663705324286073208935707379966808050533425432605289224603326084399594100325320279785327332334184534609139216520094413346248191384833630767410196802189282619294690130108182476341558742941604204146791139711309920895057881210786794206391066577255705189217064951182836826725566554135691024640218417525360648226795169185876771852101325374928693786057442384552622413250717912287883726093182326320430596083091370916441822917268731034080091536459024508224244183967368199069456681422709755714078051969925754174699496209438055138504190986475272035072666447913895565105468566205095088450337162232056031515432704068025644154365183160847286770063132500468082898572690875495162110321403422107588504289239817671109964721062418448672926628305744208719311313707063651341399369802862331050279025759379727875306858658187419707757771528148810856352429147167363675698879169480380730714011938159377813741443532491950365579383566154090951648037282579174855584181952360175531922890133177460690707890888812670359817544398657496922707979592263685758705179363010504428918663463590442264397836222130987385077049406285309829777863167779562118718458495855955754073494435377900273980996319137669266272555918588424367463424973768078013557688918047211630314413789569168465292311842800799156811215805089279929188105810894008712741672724911584584044357644534182048437998496112554369462162261516074047106536585544598493578728572583917453893831811834433711831735029496162382292741513712508884182702656875351547477045340304269760055326457632915471245462270057875105410255553968604331383615543965948867025669459713522877200592449992962160488479464666616342490163233667275694620734594308860753069692519081542861211579254409401366563644159490398019516904279138868370220597292929939809471949609650236437088802016531185835740971713316443920708100968986813254481545167706871240283753739440602481784888834077287172253071046539067628478753099127001671896167367481294951071122550422511621581393463393084207984105877464165466060288845628151195572086080576806437314321058241242779797966026481944045928658254062895354202463016601593121225757782643819510043624475718873647447283804943756658264832936143754858439632748142766497138597946465185289661740696112023832820682077749049264956514273214138854476972179506923126812715604071114456915627206524766204331632022805512877164160601117492095568693552908904315125397161469076388045560544391045740652263994941444054548398484467001758964582486740493413556409740626434345192721504662492913153054660836351938055109165638253135335586119344840580737222018718248601759534771716987693437088204186849500280371114920489196624797851162769525183780432493212986519612167978072153078048831075770961782511245236552640212397218336980133424135277360033675145815583053845430818865285508080099547676887647850803397426183005339062614833430778575957869017326900713786274512901230337789895342508617894739076846697494747230354675362595619153679235002693471784641820187121665069664893582737328497882830479232976995155149042852736885901504376776657180761478782768486210278747873595641704014462788246566534508219173998598739485452969026344993993681995643729442476689786661588723517287501354739272898035416461169229734912486562315893243395828703242421268128317894747263196207265687210638576657459247883217037263377561489388296474038797598115362992520056834525950235710231066226405202219671913794665144251076413099070047868156121732286712781611866851814839597210226158298012979012052958285317024755172429519714406935892651945134377597071804802661063963442486988485171442912028367891730496248426297618793843830744637433941155355173974853593678154581550651841261903601023579817792169323899307061742899286655524372689005409747292461128093005012340823378626400973364829077871920495845068826781001760393669757557118718674680532491636253720569285628029051010484321549876959629939454823294326626115412089359755743750748134666125058730807219641921875423777040156246714475984878016510295105362858973000160225196848224829930787932474017297298234864632002071720180868599754663721438387754172696886968604797571203180988850664567449671309293141805592279698213712021322083503664157731335159002312104078157926492408487780470574910912628476052922276396176575705244101415139157255607195110234333638293521042194808382638459894749925758694137915964873736803207514475851543790620305145905861322777629941197806966180354909008336696721134826319245931830552866986146907305323806778656793268057939618433475103093919834018415355135979575859324591288016142817163594995906412740529322664887107802773046472621921177910210713216582274460904179645704339761274384664119686480214776883246974750596242721129413758210454561764869723104990554817089117740020737800972596870360231615260461516675575613479460302398196910532655802520945022407429850370798122880371324759198196472959095424756669751895769457230410303860485716983760282138311264578904123588511304047674718721310426602308922384326162083246185746264706235229037956091732758636724798961231368294781146694295384206697742805856125252789572908360678140156161292007786760688888315255258218840876009872956864744928386680329843746651335672682575751145135527774451259748728418356220843916940133267950568611431543457187236581267186190260376352949423634315570838845115698415065228040402587350520356750169054353795423794700925652880633425911176432218225678648511351446817971198975529487985888167424797232965665292420223214865677995312755878315974860352236501784263952217795112344918272974012489252771493461171971340425869384101905947198370489477716141622871188473772153404427551067645990567125868789048626520814388488272683998531834974241751603220607485777016095614612460008762395358876495233360169736190666516857373578430066809970211211166333716362315477554982638226267786939523621429423337095739583287220198424348355200253654856780706572181406250527025859573006848289584449257662378662354417223595690032508118298490337973282829482331801287148894731449749044801142655280143242227600277170469843512390939452122803707477227462466557577245102720504969221408351579769749900315072410999074804596510709037146353432653237690732347015271035261263450433823007613898263811284657888550093613219913051807075174291385773061601126056041445812715824317270003150581609864469438564829009242415296332350587823260897764918198775129336456475791973268873417474056172736612555782377477775166759531566843756774334136725285168313654917172230507960645612948687977401847862354566673392014948478552310848100387954315122191629282362707066685977455544775665496242816474516674865740676330072540306911932793606878384912359214797770381895939240897653706029539596547969837666628504878669845504093559187641871452714598802857602226846544851085831649402531874043415691765607491813185327523937660380954441380415229704377877214882276047594267885505166112108397166955806025880051301002983843420422300018727315580232546354663780317133506742740947252117293710347619575592982340137937058177103236265252874360150539217121384208388274665307911498088607317416576679985078739245912574717970079190033628489207228665352330941194478052321700575987582798871363243192497955709428757837090248434509224949579009281916092159644672740438222806434250167587040065805467340577591949908889615695603901643025133070599687574876695504179615017778481363634825120655629553767202091072680518798199478090902254352732390824703096209482079788839430523365852219619719745757931783997083736654651043194799984393086223775700817147510669552847898834789867721028235749194640595374389292487532456685321204813389735028325666386110029901863639955251084381750138893767127066406794304721339235842424587737693652404472716026173300883478359829852245480688562898283763048268415376692681637415526465345778626370098960867795296039977405086238197852468603513036321698352112531937065537679062239617936473796052787165313013041543935642743636314765603718822567999548911000962231324927281335070452736499956751779021014381755301905230715699391063092195634037198804459764349166050722905327142849737374630376812170446661915534678986638091445157541184547822556058182869936672914037777821270445895249499210990232851320663529337962278070035862285957208177625112386170131112905253597811923389328302753416856097542090141484716148609633897432670005421672658778049932128530282213908053813495856252447287378741724416487992308525142384249206450373844947408570040726073074610632615565410229136682306440609121982241374269265921157146972739778489760641306054780913317653611091461525309004903756948861244912266431244175324915851581445409414798575424551598385554268780778974171854296741850539438839163770934513074200135295656539332858036319490048280515957481312881456232349460770981358067434302544118420023092747168564410374295432777700069950091462989549201522214291065107134619831762366342525607341605131410997187852913083441091797771179775837603176365201893157485887662140844155663351811207354543186336009051382674421911415880168922107558407746923483719709855136511701145838948724376962319209545356697101569402534268428528521260318211938957463659427858341647565773018297077261058442267540127020774155358226315285597524281719218564480880764096158412716960498578763357295496063101546754436095034093084354721484136833238203556977228715886434428451574733662442208692420647110147055923991962673564585754213468783977370850164966677108765105463220976879524511926412183380332841676754451722882432845295983815587360629348327223099323103852313169767416005206001887414316002073125180206059712394792433714880962373756619426571853771936963289233587602031015931265632550012854740908342768621422707475595949204163682723496439084731616886925963170306043344709295522022796970270265694126095793466476910996462812198042613316102568320264121655027566059181495617341521290235412839346671877936122345442754776652833283726571662361701853024926917479051457416714296865786607722647732040117768930076239094030276124756583901298273852682328602936703177155764424304577074372414011087647935888781925366678631054268663954363844278444895398168550741023434853445602227124318129130460081701239368722679203527877303464584163958712246743112357977693363642725001613468414980114106457130776454130160972133991454200234957088216672190834852355448091286413282756213660660778772935586106994808015095215972100962372582302622192452811010042952996258578275636789362921926062267330466253950464277166664347507635001122846829161684960451541325994896495077802297181384624224442159859461729240651476827277575974937376112632847558401158923363359600187626401996964623432860092508262910922241755929553273278630455153219706627181879885261156782266894664732580624815369795217921805679739967538016343716480633375626010561046684299647899808767338448419681948479296612576993317320126128041892870646407432987683060374767655225496795154460059423417984666650180430539117284129922214378551073953041363506281817463475312527116088632396642221033329478423951829970137538146434219656577226786390507144675986149034264013076273212273752880044972644724595345055611280391933211403681065972116616109483451925133025151754741823952007413055992975703541677149118856416782849127415397208686224045971296851183774615098254634178734541842103475720677025478931894083346245647224512136273217275982317968535745725302175557401296184113845349584176968767565478277859408447952023388167376514486053115035089310106929823806511727105507466592462571613132078657926436568334964844610620486466125279275305869979636073883316591059818890578878882702402186586868414322959446978285458663655773650172377718309442098087562843704681757845897267312888193894836718666714493684335516219192248473785626710368917222854422139163985734442374514305193018507038714981270466662904572443352358372401879914952513739949881955245659701488190468014631694390781594007671671805712787504196798087548792496888906794574068185234591555684055644291789063226073065803418053484671484679531636163211474339222581717777650111119070423291037690808141380788232394247797140915089276935729023495308286526979397230479539799798389802717579555424988423029526878144042232921950940697154935140806061671536944942310687499422353087655900972721924214202144695644865038920555965102251347862258121839805640685768337543041015136290313277232985282207345062461794758917791751605700958811548421198571578735974123434334756746570208849230709083857474063142293700582186251426970171563900809192684127976871016120375264805573295035461381642530399146024549328657300229276025588819693344970615980643389369245913929923026504003947879809420158236486559162269680190086353073388308232891770395978006255214617311796691828447321788202830580360888368628747251869217972106784962805177152125521668289210130793168190224132565343340918631078694506242812383195379102348804353043754298420017216734876247567309887195098609498626562729792849840172342081146754697256362912290214363469931274274475961811872067997076359586238894514355720382657594255441218563185289750591256055145330372737324180256938795697556504745824995945662859139466016068958254258648331415416002253978674292446346783828871673847404372999278172565727198177134411424569377812665974668803927092200339843619189202277259097293531257166478510916518330982896525787500337519515840528471189453884388956893518526328856463810233192578189819867619679347413788459183103850778469781392891167007603611865657763120840122728063689946636036067769728715401061357655392620807742118089714022204288440052896369638424867817208438690297677934723340683999333902363870111449944125359246114037490988325455183791625468678800815710183624384724027070726202045841915202966414076445572069932265299393112241486287991400780576486713377151639472032936498527820458573823519982505972736083444485234509504955287281640416915238306617306993409693058224865584724507532375452170261776975511721567424081770629237446670450164692518234633522946469778996684766135789493200515387442192939100969163337930013100190165816476190949617564944438389691595731272288376727135755438792071185424149910199132210115179230825950960837630469884472745403524438533673696586889825545330637487183856945917000249796405258818554168990973219617131720913785255770535378446583931492983753454560334054582458684036541965864976772292375992007501395152678914209209563499289264951573168466629441314450976137479774547226688381188338963239770586695337663234161735977106218388106622445129089441752748472246304714046302738058744435791470351158831160119597454044958645989072186647486265808670376449238484405803155339379566843194042476466218556329442998024285615549410310320456281881502780519505921853366296029435530950743682764701079579979326830382577366673303921261014153335724019936332418036618832016760462826711618182250956954353168790777622410883509647883834310002776859586633632057784558166551807062805214047401636647818052060693181360300274434416741037381496730566198047479499553684210131804934781137133673004683200023279775344105369844870583388963232941053009832678668728398121763433859067542828760413015925580232052664334002778557442023890241829988075075380295054875521770973940406856781521178039445627786112574367768248541613002843246864772533110396761004015665868662035677826306275528866027693175578060924305694008674429912299717142520944488893785130497576229472452503626133914234064587651771970509805745121204354480232100834120073757129970084379385373109182700850188489651251703082051437930853347257706532838636799087619142172625490135826225190165336883519399959593885970974286863440682333522323075350904221126982631271118541846175029597836302894748007724707721312089058190963342331436687604710928665881324491462854805389376443775375846420811474197581345688577107487358892738910072478557227405696748200724727521584282173242908629437804880595025328247667607734614566864104813614622165394439675810736056240270255105686949104476852947888015559434676040375916451319128919017831013468088816631266571207639493316454407000416691485104229130730379167245732945930195315528009089776316683391055279689630287629659744228292817416335843028965669179256734321580490545544489732521445255244649732352396459909519114614106396973291296283307697898316387234830160746081974915970942820330400396285955141487341738943892890220000848262252357105564701242880303548049451442607992062194437513027618606717148867654040780017041793053130076247551809980426216669964781641333973399842494708681535158823393230848490442590076561666968603550516693738082598477579577430744460376728038462213149254721878490210066487809418640704208062741960517330638010076320719390763052131473784180150798428357277611586531647045525017298808337961104511947058420100565407134350921232709003479761306577355920260839313534842550090256987777119064125098483473741646356995337279259835218384128437941254231891249005545621791825555408975642091634199435812452570829538698787958598039709403086927659285189472818669063423693757616433443118972697721595517228858946269307678822276904707564242246330681419659989117253239977949281230507737275261200478073267745299068877508528106480150788208851676655242975409111318779228765673597485739426810782478689033893882665356991824774267875434808465138657361738012822479540839000459144776371819402597290357599378734532232842948681447897739430181842581194259576256318974472079276731203982607229373862863893812224370102028226359688324284392975667133814771831715702974308885876228975433368215778033792011944396477769302112154611237689082441331352722545225044069275992071056392106303133858656311174295270440203981508812680784830023298829156261641426916786280899548030005939613451700292471449567714217960472433451286698118348302360130435907718524917197288238614355773374467214943702660760914233364048407873513405426285629614486347621216079753468673313650919780946513367105712865715347119192896579007043375719251945805735052192975466024235110591641635136548763508388586009359579113226288137915643495792656073792212808724783513210691519034647452752014014614612729558574235834922347940911311238123686402418300605660114888627058265336531652562248525191311702856513024543563482693321779801023316109124294565078238345153172178145085591753170136949413520667604753408955618760293237670551576298566379806950756233192447317330458407290804840804631516120176934150361976702608512902881124389743371698352275375546544561105981780582032165815051414828560409190693069112845592882753377055665402006567193753876505947318331187682288983697039426126651016000175663051416997237619279053104841408374626580423029692469661499641126830276151830147719345887750703912282698325480574628909581560920327303462617726292055894059054177297592503370280866956302937282122469542378738830009968207535807173578303788025552637408005024732538514343147237172854239644603204692940186823283279216064665160339493026813435472145743794933371556791610389801679951337353222017600755724444208718300648352314745442163016255778908423394689881690825028879451803366213150202948147468810271681926800024039047801327772348402408129527623266709840083724602818860609364143140118807942133252714413630104779359194039774043287330928956877462443329000405142681042194993274938614857143127791247041031196539429304409758127533275421350121296064821806742322890105027845974749589489654858233355133352993058899207993573020384491911108188265017896145873406484685343299001187581001615465809497314408377456236870445928181113920144822664771486976746210531928691750810684328598738507785365392212827807315521217599360377951659623343685247697943727400262450386355236995981659745212057444631445834535090655222841969943630870865345955068239083133385461820146631023785632899573432804434913066444651877924930155288010268883461298763544797405707518408668536009747456520959195649617458779279257416266522263933744942085183635648567965736386099896755756547055981043052908977875142450880975385670551555630045303541823816659843795297686559995635402555859001960839857253465660912674910544954497674694580457542685632005736615710027769536910429778660760368239801595583959134564884739355402576024973045113661228824505688314282333619011499884962730938543496857805054524731912222288806476765342750587701858210047776521574149988057117932257328803342656539822384479008057548180977858236320065116965531610456429044511101924820021855852657894474896080711992457568923302535816161344303288388726907110100908026930103094534367386594249818274651488408000074782978284995245135873013726515679825330269140456358580327668976653087416154015742475518147470052923824737107247421945525081355664239727058869533707816743129778142171617522808377010309500268075133999911212038781810093731749043480841769847768069669098756486354373651300245397376980224097876854954383038821980495841424881027934791198210147062770797286767545033417025462085182177177743149963745194674973977445816793679283398286449226788184463609864865637827227666945910968999743886163644889716327201425527496002835458658846023539248147245499931585300593871830191016664809602987730143906019610010071815678323084179106868021870647706323866489654516893438218107204815541377043069735311729333443256072149993360284877685517247888096835690186163982490965977201281980338213598726068222821786622981426989556209333054516230938512347784837505609741410144823700056717678308794781447813473080549490954269931359433486361338039940150951825704726106919415477709491634742942646486380218448606386242211630869103695642697645873888969741190556431740284699453441800617508764784977773084363122530603100215716530416190622341045752022793678178330442150431494415344626653911031997379179334953551277951657461255966374548333294180931814605820193162929402630639800249665192066735589492911102165131258182531573174957233957390528663859140891323387679160440456189716909978061269536243856313789511440649289413977948985762432919751540584637019246785011198010633305262830508891504562338496342963762460436262052806815355681412076560949945949738237670279645104521178029297766697591663041710219266971197728396467119446953700443251572855003628249210754178356154479432382640656059641637642308749480933278994143109240458279206277776542255190874794204784485358622538100635686160418472544654684993766789156288142785768871295426137711624805603945942138824797280137276609578299500295567219145995698192582652189630696812458957037902148644459292711063966984510254580837658602063439233736670725498583011295449549289287553805030002192617416998401359639990468225260353070561799735613909356441452104797436120115887259726118804908046835442681253730846016738688267704884210947852153994604061336014958132688985383086847878851851549103699435972037871106042401584684524346844913263341538578592286626430416609586241795588434158978561033358187624709124628283514229650100968219254592136088833108321792393662304811401419876057523733478944981847818472451464665898250690448519633672166014841805417896435956864520220992898407416728307154883380163811966067538676048318271808836206606048512022437359447673286952055787354862423261054575598002795592001638372603895293201325047140125410719148821685271682275445562647930862559902417584789561560699497156232582364949082206898577242298149113786351690023834700751009980357997311700004281232076844540756030105676738974597153561969024505450214624510554629039580736644184621467906273001688859625441349609842509686899148858148145617844273729230694824519085058466529527147068192331525065486054257935666738877747614279994915118371732348097668454470074729211166615295858622529457432001258206050476631412422428216458248666605565078126953159042712577329083044968396923867231850975602201078390851721108798329056062678614255929332061805706730925845483906515053352170452726956933716233540202098932473857137508135616297525166722445050813247045939967614647749544296931086958295889996237989517415684010112299242301280320317348540494415881234199088366518091502396900583912920413457543737760322437229761734933693510829639347107855251492783071000789072125167759029715999502688079599488917211048431818213491187415854243541863458919874762080945496610424674220535145567023887699142515855504497704774416378550692579511132093476674444690638081063676731959022932360185019608543757039345187519477735595660898882794638579373174636127221247784389916208029842378034626706166103828741733266866441195817967590499658776517728073875335495112834895692342463077726218128735279441235166335876535719578009205262440529446016099924815762664176985076934226107572444575001541953562670189040027542787876559707231961842057086719108019423878055378933609385872479919062435732866573496179345617526502335612421574984749034082308628356550438734220309594385937684326050459365725457809665456150092562817062195928651711436697127719616588730517958028812078129869058003591308863872996106185309532118364056842600425770675045168084360346069147888806208068915172767145143516814911012016092856738244571009628453153370528172826237268196860004255348995772273235492618343068550686705810565837619736017066980548288594536840496160562908250286940674573309013099937242623611332559060232697433393956382543184208016956012659828032523456062839440768319751025037954874118478243066479627272993575157936088918692285488879077064780446823812482230943810217712815779789125867635147094665460078065382387537819196892643336136698608812482232948212666780495930150697347104704644614059894979122408793619509231325656633812342191397370200383509905101014379874866090733246229366384465588262171450955084748006999498513578201229973753919752423703374640445695821979879619360641655397053536654506520073407808377752075710489436855509330476456757924963457515370122371511780291180931084683218799949555202198386299796846293173478525382212993173313380484838485791157859641794890537159831075709292767932192454023129227009147009786443951207517246971135593526683203424661195581975564398976555885333780785652914108520699268929279493933557204751069888774251127718463607683377898989789870166477839670016905266159464245935350771819149700645296585160276304127561598462327508056036190185898111834305618642143586986312881494712291842968142787085307563854110564464442098359659942144726910840900778601837313090316616175617798114795697804950518708376674198791831112669428575059797189135948986887104970738699895648443141813558926388713038194128479699782221355242841919769707020657985333561808319235912490728553846751180158405128884138723239467171154744640184395325886233997541292461437695146208799384331477458188472059935677830488580022201393363654858318562459910447128099824118495247641769705553267850295939926347340186863958834811057172852542799060167749630605564866017368798060087516334340362559632144034456764177077815887102210065325346216733077443842739585770346345465655775510892848589073728932660655452151315667619534726273706573407904116750750144379275698697012506623116633533437286758811929774615526238193306583173570183487129999270346810611736463566867529111121721796576223255284166250260061710288757162241682721353600806704703130354002249968577546996586606597855245738584174799220086367444260438821576762220014122551839428953298880236234910326114851851544907894326242513549386973362670313614438895557236888903136458381784996259269534426210200456370312928857355214939576557398958246053681910354848117469619785222614789241024398116304068305443507124561883476695828234148041197812356327542666303054842859296325196339143571451617291093450848988481443935149925203975207459289440277485180353331755002386001962410349620584815142786615881564322772347830819612447983092432680796220923923107687104895027951809141245644392732365263400104817421584818117744677008829025921582536284542366874403477071145865925645441347190139834985658833378168232359081904846542159187624201227138917859891645927103235610594203168449855099607862380780451304555192655458757448015492614073444279886747554590479760064889608774616379774442396611567677381947701539726749442675796593030305861393901872721897827384488982717376208423440368754682461973004298142390139379423988153237386930477113556831449251326936987616111179437339157659109493073156225185194218325139573035276945088538032052314733522044702304394595348236311554073409536348121025072743025904191225716407702445708821454501726402575947152824815967660178481929213002481635126612525927631343768514025480227511155090221789639039895122275912839502283474944980214826385280395613073930028858489173458599397049137165352408964281340421283553500461143129700100420920549792318897425417172478223720915451362654701265518053728674672372370424245756431482503029188443215820137958071040489642221408087033391799499402255715655646282278676327302877187605067231171638539371843975086661780684302723860391995284879286749613014665759935867660351251378961751915691721168339417080874432378260107990927108086962056495539251802284729959539698168718779427842869722063602564151951077154727917792389520410767193717236742487361516388158239007685121885413595117519913105235806813115903741073004494981573588907927492677472117484451256303755169508686137753342913486591409706651204191254843194837455850619359381132282757084426498935430042351477041627158374118488507456919478962495140338454179172749948576766593905795696626606993246013864163097983643166490348713635696679024794450408643177017170139322270391249750041564645314269391103114249680842034798981117863209352358340265361738749960003472175386965984963124903975388323037411536757972123752591804910750913285531787557997755939308262225733237190983406755078312785845268159501292815262343447400134378463789161302627502515717411160697348931753121606301877786792654864279391975179174744026813662023736530908691328246456113304506431871522833169500652303584088852204185649702313793995878507974991240629250309948212005338552442770703802614568381811547521623606934809796821103911973774587168406207654424544557231478888040991460401035256585536478256392689661476056158150326270377188098502003427799227750790842661255813107080765115025181967067380082572897345896961649616108508977396245946049334003951226954126426324985423788701083792798320990715513329150387114244314306636904752158990631686307973050876255302163563910270671779967684487291619938727929387040765300927691123219087632049832031274213987397320631296731811051226038415415273489781267618144463550091966742988957459271131836107635418703510036082802088574504885409489275730108493551428663142516531121293776705066528086101933056095730384807586596259603471729126162822009788874313721901413883620248409714613262441551371872643935469073132497151103089447898468994210834607243855704371019498110000210142603939655495216358848211836204105219756370150914570659896264813250036561672651184036119233420283796081718195323462028994504368150492362448985751600406912699830254775459274937681878013945305736879057964176653400197985009201964892221667141002066273375760054960392573771404846600571875395482434603151693825418207133870301319607755888610860185595622788051167003627699065184784400324948427791314089147101434955855045649269406581599795534578149758819294634988737863565309843244634814152502410657101065057606951794570666983741544202934715639690760689900216126139606530020280903083902371000410772254217162007121771337715460403963223279833867578731763609123076623815833908369181767385856782106320020055228720823970411437497019426957424885927505408737339849820434144332447546138799819742607101711157003827815011730851266970809244093156346598820284164146269810951158769806632704273023165318971550820778658856691653341427031773530579803318255130924993924320612815749839498441476161303960490064802124524510004965805223120532940271522182742383685133089559763683540422080452861645912570025414907134461537385483382464136209651741681324714673014930549013850215334788057713944551701542820693015761515428253869863601065829731737664526994037940546556507551855196771964029089629004153027903948070369691371062084753562527633872451270708190819235539369213826063688003366033701827541686507070844531798503105191122803034232641871062316129689987203134164854775601158381550411059386324085211750843968785472939136566997098012814014020558273469465184396911116753074083436374075539280877418472241208042473557493866240030343514989137508974003875954944104516067032071257232165322702546517905165339120775748867844091273493178818900995894809260012897210903254148726160894814345739407742311412137571977774490414355566620951685062393589045147165106273522561678357658064428668062114623872361997908758743820422763346326842041621940883254995498219258126911043229837764487370403504321216705233435184048053161247995653646878395183997453813601819427148245510294540992304734578339164322723120719367161252744068928664378999543470753396157951557446748235110853503451053271325250073550899654114371930407066513509359458278966717184666787636231295053045715413458686562848317220512058936001333981891121429608640177647715123505337467265348499940231275336397147482902697847022343494194218967938589161470079845860220687944061957919280622151939764290305808863293252819060553031488448591864884364897101173932167095800101076202965491141085570382539302920088997769474258900130569257602177446918533010695124475894243765334080875713246775392291253831053797625787752424221460646855960034674944439960478791912895404184745085335125203419589753603966518153145503106843663339314478545861167594161984611785186589385480878968401261963759001141573940118838710411346508139072847427247501610852450003889367977069826395936972655483148427398685080800211891583325492131535933801820865353374540969020866906518291714169488845195451777581245653483261279532018705292065182693199064951089108174012240336840657264269020969019678033689681541889917648377599450625421629397190864343954579796433496374516403271375632909948638574629852368511235938919220294162855511735234710072766285609003390153838130490485793092591855419026357412255817310244220215493545668347667908107900686740668384138090463376867108470465270879514551485374305766063732651722270532273737181055952400733097415341005443762508994512218355012608166000785683349471292035573266849664906068421535148460036962992761048904061458924475579303061915579011228097339827881349111089612725869505648806433334053112669083496549121688120262542509818308136974537435697717368011662622622279081792385829985349854122354358267795180212814783518249462077736228495996735013901145189385531669274065538165454550596284873045183955531691809952044583859406711357085827766126229777328457099263276900356960180996670874367509934019783826304306594657198974644685053427958289032431497247784378158247513742527470504995134727747107090720587249305225421080975498431180122824645860058521342796174449184980663229734703072333041127756876236798735185890937996592888787467615355796922154991009638541710734043111419046078249582607962903354430829787641401008007165912386053969892088142539992562821070736018224934748297380669250632721536028903104562437268376776638598564728325466375468925557151209393339373365130553371449084047535656785456560615636375721396847419072091607336666963241714449959323657480332874009318978091873685258516313422074515448510361251238764536395783606569852724617920973631990242192518283952463689240138517665324679555382798859008532389592559223814350373867173109906980836898238468292111482929421776732088288801318686141499003114771079805077544819361812485038435314869364269697609462526059907997647898821497910990207744017839547382722058494448052551975966535955530867788034060340816764882589599032104726046269171724543419859928008429929052411595618800512120292120317448502132033752667973908331693330682247168510721368701539860300522411129105339696395918367893212043765958501842986341177955082624901393041084151653029126690869450174087651919306257027515320551690811092569685405838264596767453269536146024920466079163062145104588195841702496851031262909486986390782579142065590411339661297228125848013496216325381323929539529600310449661622203502686000840837097407744145280045325322809830552328966231441637706217409188112611428072326865901580407778071765374679296664225581267069082253618084577946755933849924114877202062303991314199951786116264090606485540283313038091029308788515698218045507718110712286366386120408461858142356961161781775609589250262519138903834554398499703402086793537597311533226429521293088399837109159391821447959229403781593348924593489873361133237246899732266735227350837698305477391017172741265886255979634190759192486492514778201245810824274731869675322248528668736436291670081015307288620793678068665776273813173979108955353048284065271405261030406372056422765676948938106915637984913950547859943071550523987294712031515906939594276918255717738204537859406544492267211456443709866766150665699147712419641177910007542802879683829052649395857355167617684943784194478309952474156384015838126306421607929650709754740224268839410291590211360159182244541751850410278519699868315954782033702282308020914152958759038946850064364711928420635803255754244929458928623103913945568952162020432281246308600777514524133519891361238936615861864331539567275736472497608825389454675290812457504391798001989071012196076253219477511710662761759003852294566070653531250842199341042748590567422706014563661007338767846673398540219233952898850898538058891365360269049354652450613452792288464195012271911193892036076557144625387725637656381806353075375187793258541737280098379392271966565413683257452010066211330248939300051251434200413601221582490149034831039844655579420021840497092327219674920305622435399568695943579295450318995241546278897693053587490835827102773967638101334234681259431318729356171791382745934393298462376920786581565550941949227983111657789564815334388682447253455710352583300240212867919847525552874872855218093671312199104216879599578488440112936024589907785945947913612570777029777121911803621973839965080881166566930921284836800968355127300460008984536567227414783980031549141003302481939971348645330332923459768717807196322211528502792906356224617937222312976103455448426328030780774232485515385685433830246614009440086068670983341107438415989143543236533168210955305023914497176869884169524909728826775059740071378808289020436220466152239651545565682432548638903195400196116491771113089530876855793437517180590176018884979433667863774426141594069418304611178573628683227312506449455083884254458534924129670344572959996477889425076159557236214448197181186965848212106090347829412714833198629248895311372465712011831366089184592689857156853428691274464245783833103237083441530308959736169249447070720022923301566277099713867384586138665553641517357766934710450180867130924244007711914866127752026434112952249877103805423991969802931568941799314129925025009916722737373180767281929061362432290092502762568574348757507145956109131238162809133280107883641505524602407176801338701281579901957257225721505071058116943258962364683584816054538566540903635104744402194748777787890454057098691574753167129833223016514151944783846422303944412432388969059789623628696539741205696545046292290078451220739483049379254242669673006157717548530479599261049814266978127290929618825821596847626095256370549575548788147008083785377897552409383909874074820948669280922934677440061524925992307309177468205427615607904254958641605498451870757262450176190253568783399040864478813775736366384638306992624567287146337880638720801938454538829383756312492232835660832642693527421370888845614474637385517491490447792930126937615620538579450665328411415130121454403927136390305263453256618636168262713406790150016624193099195337247018286442230341995532185906137593594731740992722861903960933734647888082965624831906171966824775505480138164439585146645330650138258245016846265085025982262497459157440692813291396571937602000153116934684373142969343651564434492985836164061826134658276852438502831925696382123456021420263454130432558670815219422837774553563294763203732614973024411356091393699351520289439229485198351676932959287187493039745504513202057372497823603368284467394765429919093299238857907760715613326720266532891896207136494373751722523535107232221791140788703929530005582015310670101857625355365575598624708606236217236587536682147165525777200968512268452496940864640345387043570093743262595035179563643536492594703422997638139414317579066467633238271056679566257897937432376750167820308815267884875962621680309751249035056411134143943344173486086064802862196428510225823792890821111215353057498095249738033469985761821528417506955238309102084363517037232971194673689647952849122013907894897840000959082413116409530065334295750562783577849015981561783883356666761872360576630528630449518775648269450474931800949144068805711239523512078713325136664860782367418045740075607826020507196110858102958438082560236310724952971324177620082227598721358347177227205355152136848350203701257203765750668004868021354875069375588151973587154356471253849598353663804853111697046554131675069330675522617966646838022144001662048514067215871125338120510715678071211848586882398797147648741026408009577320259014366269630784443822787843687128497077701381280812227716509517143567682829431689792492225766084968960345431587302676273248476907496180378932706059443520521928986821912900329568375431130522105779443842088663489155558427898356211393485114250773670852969000222889162368359817386374609579844990929793048723177295815076312162900760408485181702647416292810602693712260871339668576098807262442690255305911761260691930931689660586492212657057584822773826594592355374832754528574628694170270079643090583512419452328761556564743363398078375983455204646121053632669113547267349306891469625106906061088126239594652315320064205538953548919070662344614664674951843538272069505956893856441510400844025821162124733980542396563761960718270696398004310770428653946235862040881978774391515706059484600731975697877581763167160370243245287143406128946266688660612158270125890677163506383169225322553919405178285288513134033255944648791611977245407010425615425988043276677776578709204948919360163266081594139202854972468725472046457041889625842347590252750656915725901471270938551301051023405458596348479453274107211477665436339696327922702392708334834241627175354009243288117033275627138732379454134576502342923387027364408554401580883403671205803562269354242858697775050922047974031359277503642764634010347927001465706427926066282121503998912778346440674287053016132094913842345128394617014838075846514340773197641186247042221975465266827165138428176548468115321699711643675221294023987619465897148576427082600228631956916114425660069614326770949162997727637784514374699319836466814779951603533731903888962914596584342630001823810355272830626129351451668490564701178127234498652612179648830494971375670682954076401349781446945686291953351896937394770353608721371779915542635772847723546300354023189704750382442973185536861710273779439815944694021529750766438754177266264360668700217915906321275699743867313589988747618021479752186988113686096145170039466465243221200054103344535222770769820015433725461563551495765844602899659326666429936205748919167082235486480553318656812131352852385763831449947308988001322492070246985030201714016767994982245002376212855849537826578033724055844322056802336811668510040763769893213662557540846782128489962040303677822589465642307726267410946168579916009700211402331471947540836857487949919777621913859759308894841333028374493658152707779935900502766608337652385950488829047871948951864111989624670843173218382916723175894360569507018650149226378683989812826936836627118522829989967436208816421330389452119489711146350845045112290827022708623916409713729628928555128242316242345487786342928106897800189063440207467631752017304375669104872800098779042512719074117101011619736793448917232776213600064957127439293760738305662097217117381720179100667775941202982119504902393415917502711770810568528729156523957406884936378833305673073233985430995336796645810832669454004975658966285617708261385457556768272688734047054421809717374740659627748251880206014464360457836979067976574891367593117694661988725650646692655545724561574739250475668501108322167809172899593904566275785170443366567566501836237030903098119419222420878729082694795814661914043073242698385235272550919919222692125959465735856423636947676202423180311170064129497805467920726259133677642707341352393820743154571546101468198345693094518098861214175132855561512461045244369958493640549255560147733736082762244786216627793863890192038175399982428032202036076776643913978503125224823364298071878717137234938356883896640971909595315523674681629372982872272609695654917593765174379592553743694241832117657836405292080944559787655892170516777668401117270420965279125675164937983293625283041917911447224106598721536091986183409553064596455061352419685099083684048785001875998300501899127683021830981053471756893435373018416437587635491042414325863213958236283276078506751131784014180745263273230835863272924943579886108062570740502776799968095631749969117706721553962727681570428521650232201934719679943261693424459741307685453221322749950966712080284139281903971250092594620139478650469385412025030400365838105785553796505309173158222706006998693935323746234052334697387974157901957490177636507321135735373976322736530695683440294255228337221805178027103020355540326430224615090154016667790463065735222595825057223365920164753304030477281953301277126882429229345033945896080912115909028204705439902187421999353890933922377786744042961142584019833527100594571044468984980638825452402383306842104381458065863225881965258963478976837152837688359015289043768074362971083616092512661612944818129534430262234852965698153905317725080966792928287950456448427011027152675566422644391780993519858033088563702975191094635651627609938435011605352489221887153943560213899906153662337427714774896210512932328317341030118170323675894983585205795509981598660814549222887876413762644492328523683361478681638314484476110457982313869538490133338054115634207493472107484837521877323329675020953456530976201946918570441039990638084800990090069936929036903481545987426130815844483802409587199655167076513042438778803134188158419252488608072542238193817127015545096257668691119536909089033479654780525461308614081074941130350822726441665684900222259189431135127135665775782906948169331571063194387801434259558386036222327539331814146636943987332252534596847485383777555372990142917041494133706358189934383764608758749676583040476012877535649377935160562667997325048031049520822002279971379579274119961690844871945979398140383553848737894033814512011804421151865547651550219986605215665768692988750123365000771358630987385241005027617628761681141770618504045055978631637275652470700517878697245537288246852177122891913566236799038546607024353839723116040836493641113918368327132496110955936536384007217127046861638558564063462267017585363248366086128178437114232009886899100695793071083369292249688619721572993433120196706977868067969693389318601460765777902035729999335660780010473599893018536582149025002693735503299064303921446734642518681856416246791937350570225723232760366539549050963702222945404072537738436349833851775183585662073050093698275170922438517279121263227414366450512356121012284883698084383626160478889638980006595727514825346575881071217485299039006557536732885728406300277934729922044392583801499131217919592673254412877922326448592339211351006062254123863215352542247400862542887651121989799922408617762761413072300148440849999174567790719104870042924465602264815470879442742868500665809856576874668805039941265803859301968310268731895763367264182899445707789549696672797330596041807957725750374376539332861544397044591973715073343610066535108170720815423326011733696986963257240000240092026918051890515804358816008813104634857329909713624280810741862083143618386887489073692736364594749507371310670209679809367941311062807869143897284917182119008621033623137335832795667440517972511549567869476651487433511053236612021958783827966725973867031822045848909329434190253904068990605316492041757392421036985116508276022214286231449588748910984767395975499671197722073625751264965819048619086732197890454860419612886878266200065443897818790771389517059722348344945532758265255563059994072361284811028509644803850924500399017631940690017905263387107772255013168339988690780949739827152424528370024389979770542613871447218451031350303777763783687407178422574676431478729031901135465347909021047891671891814428422002872315084131280210204551041238902218148623332575805592346762843803988743720584021659364646069517574143532344805893614702899903269770998413984973891763640962761059982623334571905280879229322284549636850634408597540139869823844323122078010154793105501272743748529490912637847720969498806403437010691304008114505946379741089164032348416840050891003840199868499241618139946866217808510879202101088795453405269021558357309681015701178793011441966442814139151281157181832858691063984443056769164218420117419539765498310993820161048012774319725001287956965991424230516340847910512440311044355915425929334933984851498422685789930124264490207244068233490437229101252056178052136315475543593076687347154735357366123400058884495572228885357385055849522588096871907703335674466048368823852229565702760960338173086403264560701750617097011411890040900631156411190795279218455861365650581949446931092874193797241829142018563051880680796779091713734961017870115108011806338291597649827624635215650389167860623852975120715277270487910086564480758069234340045727534557771416774925258217623944322267956760570205902033708358434280396055654229178713634189788952687558064367451168372155756829825251748116913059743959162440888321355257149262741671013910563407438423776717785094714559093927474698408818433234272486335176578902779883636179118855455539813884148093365943387505342661683104342410524407900171336281560566073732743166034999074846686059779317097021428010915054281083823354236602200045913370430402556912375822523158846002445720801912050878513904518837589898946596749945185110580538075227375263743997346881029942306425010122882853217240123327273402785763285465244260461351661499773813035037875406092618579672577119730073349861854711430182689060925604072869757823123001601401660523663069325348052339021515244397297058286947765602914813427622672073446472846632469222409082837501211807351629220065654367519893664424495193068810759895075377842540331445165773323632412726559909444538312471161058585511493188767879636242882192993463309045965755181280129091514856366871189566220584119019508495553826719504262796636400409498011155591387069054087965343097864979397830036137450895575750121390773845644843786086669106859639200130116851187057121201220336455216797076997573434659074097924159312257769944477043206073648660801847529058199241510254421387489234023418321349783860733911040999520493889078007458817826517950848632186342127309273850264466410747771863546975187303589416693614499146228269168500778457856537422957074147727160541829133227925429902440573518143900103554643988310655895544184497221014299134458023521291575235139497944416455222340991086386109848486300458771101541461653915393674671457295968913495709847500185126941863721914767463525873756128628326717252779644560369591419804712436740204825399377541899004803161785855955056460427856142040448630138036716294480577026122293295852803285794735491037271029170212529112503442116048904823336220203660054232088986330749685119464373777729914291176357504343953435086637324164008291796705870530827934738339639378865009702962804808284868765001196766275338990441352470736611818802706773319812993251034699144638742676710300470193331681826810847513632347933535264503222588083804807089489437958338373960300321331948820953614363068715024538828088472447683342489888155768595874141053572595115688915151504228216138513056864396277645068413699105143276334470072673492573791567934300738742486427589944683384572791151765236869984502709056979120580453137357916472235841557994372614965949545123396808092889616333983187671166961835032520160930634480112401601455711928843769956435107125506855701250473053333585585528494205169073280766126039603248226960626763800701168705818330643816558718805066723409582781990889138714063568693156938401346681899505523473672649801157830743268983069202525269106433913095074551906518681361768925283406307209610910688639463804629387573186036058098721889226100891953377793018665211560448116996313465426232412071195275109424218196413408043045638820645826483640106410596099870400592588458648271459398307298996686307970824213423628949390536861150359561104979065838647471390371725153280950675993291359729142595231435788554388533566960865177580523330566150857380111950986042566224528210723892492535343583211369298382954719390425042400236897123739434333105334376366765369906029356563517382758704115425915161189496532538793318951813720040017686106514189745269448594441536116997926695827321690492281789346131912542096828137399002123678492706891001048727928503633987127086367368776478314506583305655777739598150780201780444980765896551353992397401065167606868648441070018517461432948695041743537784153592365679826931569940156069398875821034874075943162406133082320510319850701733827152564856576864395273871116294549388754751378611509955534040356333300476887872463686206661466048121812626468454680042108583682707095290663231682501694059823992197196145698772465673229723845633479854829410707068053884555704105620451198274843425206680989630555383513075071548571362637445981959797523983593895192614583623415379115864690248952246332782811622718879689220026511007931050393750355531331582954425643924372136443413559554337186928771802057315565216995758857018224724252081769298849080792370484877043251345986043985492662654680487952271145875282482852671648046841397506329585056301937434430278092639633594974092909332100201829327458118549518801879441625726416282234082080939146281103439352259614556684692499659184370806130748917535335197925432943818873218789131806920771417067798762633245303598700114099462557295925608863869867501965740757960573586970303749709844912631925905293825321095047008089720200517207704148250399570470570944532524653364732159292028813267581410013616262933844434002243761371995565878960059022532837518201023347591649026978048968146747563132859440861018725342443237691708769208126007703634809223241667421186633515228016857984337766126775299833154011174087001296161906052782119325814274475313542479534714148621815905028836995899286576897483298390414434376764111330271648609284608183221930345730050091380113783517292513815495824596162887732663947521905709629407741683351876437587822011958667313037351392496630367592270954534616341073383257009743907197346748453050012200460511251163300989747190754010958995819536204293381110062336019421759100311733352304237082734396785415015660352482808224404758930400043024276292279168680291763333274589676011426639344167398449001539370867338962373504672875308763738495507233464555011669160543360578393986569823478961503431110971850400118592562952054407481652157453876501942908681970995272392296262441620759949126374177647127009866327639086722271727694833835560789707871884065170750532731313900463196241496485917298353114715649534625297383432153901772493349706997550489210018529341251623764865227895685300523059610486187531482021879965758038438533583288216330178357204457426584002275688964241705562610060850500811730481950962067396144947153340610995177358046135030505491737728101758365486715164596652401743364810282061600723684174341077831491199610092792719265112795362498976755567314450347400161978815676317482875259297346615053364790128922051083301207469004912400721130719932372845069053339354512846404612818144478198186601648882117722837587483233510308078981082367377120305655065348462590671956948733185414427502904796554122541017388722808695994034461685334326855771240951878088378356792972768096999212665315740152268849981197965251268894992964129573817152074006739512752851977439631102955772139152446032908508265746725173867845057225996449577990163798560768595027096618841117438683295129733725636472940857060043972193736599465220902994206028226371731023395524572283630017533986108003516582763241796599401664998443255664285092247367771918646094762638536068635369786709323065307896517189106029991800746775791626735311385101978387879886794766956093039993967312530246483030708583785317009927240577000464078077604597274495348383053213009697638992369655102263512734752039598926025689729365070214264886774895871226983858057818177951571540404048399643924135056048335646584884192099772538941168752619780200281925249247369862513228305498341633852048656107914809735784297123084709714382476602096907375117562946487024258234905784930265375152481293794414806412187246470967884531077196847301322486164739502618525682929859536439392795882052330297640996742255950955933410060055607319489046898634600765275255530294630723193225126632362219712381306089637040395760786511543531578906524657567420521070296683353957001756707104395836258532420369995408723279028388041901774878892299666525234336883246012256324748281502446714351700546790088310291811843774077012971005282624970571261419922338506592358157999878534236793508274845798429550004007573073795568251497065766845528008119103905812889044518252707720361643433571208670213159745752232989418100143839373615319057417697535128607421623749374661417480691765410180174292888853090459032508869143206695819778050785655161013425709284588950358121674668174044968329144708068493791763885323236578279842334185288085143584864991616122151651399678187936764068241930323690704446298174953895728811528069602620642196500399322594469800188167069909945108339400783054418523978167114560974255385085210653678521863002943490413768610228440173013285242454025487663486029935017644476173937171288797810698591398492954335546118250194649170144460789654572879493941185890473749974191123545053013741995543048008445647863031935311876610821184048884788887117572265846320201051266724913197326467890987904230394331969964455447875347258950149240369980136316425170060617356533988710480403961141593656519627081815828989654558096176901804752314866286772636193604095990929396394741329673995159400247445485225235712841783338250716757726303926657092459879274213193319120853446998381722130912701294447541127795146705997617054475266094808257212538333130738856316032635295984241123638725746735153045716018399223388828460184543838930402560709883325109879374760048729457976572728244036375582504488649850808907020416630586215632520241698026241250860404238995880408851346324652380436269795672258539557256725166321772405214053727569429941014587210935718127981954410712615212362948280616870751128397621619449477010805853246282679415718461821176364799667681324578944532629093913840516871556176866881950227020051712034396010578815350458175876714375223886735814224750063551163042821706746767723333524977035357098265218517602134035748585083374075762871530803958366174340786298404203230634465804354734089742475254203610493643248736280490049978508342067180017483188576644870521078870492986571863209899249603161977607030854487326629368710920385469559806475213348058782954065284676753753843883971275717055473091103287725294680642130405780745785934558313855635457181868908830092696868549356518350261213942711350310950636922239962909507351119499145738589806704873073227697526830837699092726980385123613386913493245556798240706936335277707790705194724323197539755516329022492322743687094229835382577582740405183070470137948996949604586968639824740505086546804736465432690202084133850693343358783656117805551304671121010407814910881954752467119577968348560735081919734962842917607546242951717332756646195758322821689239266368003805187972754305670069480455326659380167644184261556874549098073285452695907120631096843303291070137273486957050810343038032173168662976072785099338113020046587065506292815867734949326867585427902986096873076954740997426675705172148567148315328170394492127508973902712158787831517476509702987766951887485079730206795062467645799517845741352726521077888178622026665716260284956445138770491067893968965152216026495736451798895411283585777308085325759704175281290283365059086760982484222450950336526161371836881720810689041104220197487858385935451293632610792031040199422528743108010346697934461449255892155945922151634722342558719059782888644725990370927340905767177876895011255783151858758813009579618953089535852496539526054672754989313620714876534390441098028199222124977199688790262645784629647518194269821145809771144052005389865661719085194619687189844711364421660853066648854224011438692724354712736349159000075764911257242387640660856830413259778095585925157060723548032088966964949031369537796690742356683201122250650959088078392625058251644890785860761311701625523951717471313182434585313357440099661643825836277280785413548339875748987340761401917557204059822037722217691367290372571302529655997780415407493178254961882375840741260029649311788329976608980793645000654686770118352115510413918629214369769739624436299842554608000322397656629971589691962050171638213721311139075572455538295673989660147976899662955813784940489679489177152504718654063164894415005035919398513152602254859975346211149274641844803053282343872417309855865911643528675658056908548629340002589382867865529746258227550083091208616243410166503784010868388337931627247071438739403943103725627261959090019026818785395735234070684835531633083408641468210138372648197115079289606801487872125164434750908377186960127851483842755229587971209861649804684018024443887405562830636885597475819240818772904736789582993243728720897220989602667773106425624963418630113902679772493897413405759015260686432135622910847447133484925070068194648185385239320484170147847709249899761504300779725005092819099482015034416564300016471936355255222540156953404724951121730059748812831360841008501902744878768479664193983264448196754044872226219846974180985073611343861128111093965274846897853487490029792883768540841786381330254035832264165082941529782050547697329920081335973593206327436661295230914569648379855157658100538626003617618590377298349025355678336999289285174744035156942504610767116123469405613004998772315315700185234013443937344090936882379341270613779121069326048482338927353115021876457414597070008287614009960998929982598537168832724706169662636688230142923507620373433848696227871553204208121356158821122513293891286986591989654276281740065313806550722267687124988634946592414057557481024899798592447764695333230359598026589327449921811167236353371414978171339215296594515580319817255323208040805852458221381559493298377621427468062058878063848262866727514617626513486464417541906707035213113761741836698984690017655116538876760128326850701336853476970162592344863894966938843142957030604985099438439757532817248658878351490068448113614619780798125120943961531749389811482417883051751936163485276524780216546381842630139836720212695152590955409451377219007786118920472158772974014799239456998011071168001377665225830786916876692038820385482404212569484502180044273529769265665771884407186419786145412824960667616136143569919371521782100207106201417474050530063819539210888740056633120925769241724617910957265960571980372135069843675539477826712532602150940592887930957783273289051081699183294138843417471928916754836340417740328724311257640683397469237189150159614921003244515755609652989656164720117201760868687698175874456374723798925191052375853624258830519660478621472750315480207554611058319116161841413439277999179827919482760348493060859800061870190705611086179827740545631841088894102923083051497790545662695154736490685823945250356569001490538415793087500217560550209533745519259435761161030227696120056589916272337696868265380866254609675504839734899999914382133125275411766557618497330199611939282638629553492237969534909396767683399946832032340687237092220822106023711418719474976979535284545708805586767346260451251246910551677227220751361147029771916668750009949477542355961197178436451500383510599124529591238093129311891534143547982060187495678227566266763293908222683896072492673005781321246533070999787736201942027340876224870068574576546622531641190972153929377967135316375303898208261008865409547662152301073386253881343093198276625625251258617525291054690302063613417520437086015064176044362010748362349313985120795111475891216488606878637545617922115850876806817422520681228147183667108384230575927118555060895155207338479991892587806126033652174356018191990169112654871215658534083704084590757535527824693736990829343668098047742524140831302979983462857883225867553813165421943687536993333750042192453828667725402709801524355594538439414927762817879542939830422444700041054125950298561292653775152039344587974156852519921120544467723610588076621252564526033226859632855434394517872229305861911784636526549314835179125236864292044499390190330200542548512126947382328945623620215513901648363909556109815642034188070563633433315923460209736014621056616690158930979432531681509414052040217749170013220533085303123849762479810541751300655568536768118779969006787488548459178911797825299806471477719907468028265514192621189725875956970344001052367395270114827499574515564197390109771356916485992991931702515546660464853949208990931566896350267513285243225137772193044458137635143667213459511512103045451334096772660883668167211896282613470226698427889799996890163499394846511711410763937327276460176597354102525858963117942696199769318954288490116863563895773451962542798887476585563669783470239778708960054441322857943884116374665129563757565387833891392663623331639279025013900836895558710640382351767277462252252498811861380695869928154707728460621561765088445685626896468033324238622345252879712584587358449896993096199415145521604003047156610096964471828344992626962108323767104691957718096880287239575155525685331381930879761008733104057019137166966521921155321389623184796736151361721309882252833120471170615229105949310975120064129682144892073980768760488154200673623067976902057098516040088169732965925644426330352712258146861801136721633343501643473423967942024403481713366182202711106794211962281079968804508453595095890450525687642842936406906053511074985516665369128477424888190763896747482581759898195404887541775076664106139786552406723515191847994069948715105874764562668872417303812774257997323562038572154143382075706132352497552278218114236532968281610015079764411406893209555000970829646875426793044551441563616423317247820150125394319569105899645948423346706783306141014960359965942575211018420575521493172868942117306239375261783297812444789883978460710654445827916977521271795566966257113251492272295323836897387002525007243573920058453272642552345379177561716958002956218785389716859614241212385305904669593109493459862724614485504969691724467144351981625861602613234988824416596879450980731460156695799092812552897614528430109604453751728280650685698164382858819995129396140734556749147355667591635026866324949229956740007423292487649559217079053331886271481883523968797756900082343687281465637914851029967437831408443697334539745391516894431674285535799028561976612946444820906255597356358444001123260154898173982090726832717625522245095112720976031666716537108649404055376381914617299246904915169348525685516317548257651064090992654290279011888567028388925398831148290810777536958862426862922401734992019645121242181628173879605680339549013921169792638271961720394956231846734621381094996027467178958984576918253968593011610300306275028968828387945763577779667431606250958440522563185526900305181825336463381077301707609185956815942695877136457478538798700683185813267423000509970106400700830341152648580958809853737686139066519075644725264635820546694346067672073686750842889665705221415241157445506760994307115719867375531877950732480638255868332343775490118626055612410691687469351887895628602682943843131209717663734786455308422957982385989105198557787599954270493923194732959350248266937863397522097451319070151407562582255308847097648671490577196724742607156662736278561537363778712118675727642145760770838773064844311210923650549731560006013468352861221157840462454857130001712279364273858212530788296936040758728356128738574620024618628097448535325943720138104260476335533524564251832358932903665213564462665097375124853643215252644508763184238921023746155822792200511580718036663529968647693055269474009962169236705740383546035335982057177528357535120576563110369033916946747151487575538077932430359830407264373331864029516685777979133125698500218255662867822374839078171887343999308485645021294821008858028795603069217653850025042827989785954863968728604782977259120229770309683154262995594555772054994878587939202439991804393572684806383693710763699322271939389454369964079836380840627328998550454898727868823413625491340599969949952211341659199659657579346230678612574550918212534150434777995060853957767208022617380346431933333754861509349031729339405221514966335613668929946763213456904531074951278747345426571453199405414888110262322005309282720735501119586474061387999475032143231386476796691006246624262827120291727490404361597371290599978498453739796933235501208402626980681528875386731988563801417617203138626552038131355391144971949293366535919846850886380838157445616847808831812225578086954835118061477377316331120127205575446893369134007874469988478815152265305223532971175964849090989861457319135015520195104216837734907722602319824152632229628443347211085021150550632128907816735182707485673145519685941287226083983233030358132957444370415648524119042621221762157406185032474530792245216887717997403785419977666562079898153272425331447425591179630879692224504441115003630064420044249260443001017654718998576247543470607482108666123245208564696214484783538559099699194898041539692215176683869716054623595798119122177748936100048318250650858258019133652103797531595822577362163193222076456083775734776545149536703806576519711459827987487798397286813579461188868687819494710967587069750705766253441899113908978386778800737932439607903294547599168772954268209779091310801988174877161317701211789322731633177748194670585583386673421600438208593508503845417197507146395538125714634306867226679561483513842241102724516968567987763432923761349841630923779754536163022540336765999878391897332923336155578149698878393941165823168940402394055877190077880498288220445079417775338141923212630398660897039119395425451581065797272994111975946126904628846325502045591345933764397845440485156353064235898757173478085502695174990275517837149988177431635808061053156912346662459744658590680212022163970287075547363489011549067534907962476897414855143933867003306779712271452207546376462034092913631833141839511407824400186556393186264275618979812217627512174609748338803406398455060814771150920153678991640185636118709851454664394784170422066112325902844597288398280060009020788486641880048852494476183656241640638287699470809199795663468779984124062664344536159428364883289588174726086447675548323208631864944248431952126616109873036517680634145887773038849447078904512128759523823776643088442041860997377397180884644559272274659178254328464138463584825680935882776863138639968975786101608367296172198698995960902208723730212134692867613308882058687776841314845070039854711708849984353186394922740968843727230341736127562763338501497070725772521445866111901345202561190561359351684434713719132208000644112314476899758653654986467411887166066558217044323122352547916980058910577345363780552771279478239736985816685596338748355093250688496323748848436353502489005530433840757139854591793990961238392861023270514962747237586437093883763568890908235684047679100885596104442712272413462441583771326215833709433100893510340652419281325639837780214107486245855119264903832912087619175921992408062990059210708074944364306927605780719465749420145293560938903794983611686265930125005261689993549273458204265795487112095219157951303553834903376503012513078012118766393795281617083573940348460124759322429220598284196242347317626273186837369242201844479194631935256159881457241018587018331833459097245634212728498842643354715224447667558452027075865394919390065699897178336894105542100803182313335566125950505947733931107413775938393037285423175486668288485279849937624511441798672579402033868721667399842642481604920510928953703057703078874261092700472206801658522652637949580302085612688645888435075376317819863527023541737470430409557962972742883836520596802959000369267639481854083112550448248425684331322993540691858997399541173872031261246714848313675843686847153244259545633067167238280144381012448893454342631581691958244117321593319028304808772038629256157169248192602736518694807885151628620981260715399297168801896372142271995659614760167085955636010732637016215083674328852739684874299954051614631446959720631489337771891994233460576205899159884303431901859631348619849793852304465397271783490954848137115581257662565954189080563619426967573462587227510313675957410988166877163576958633521249373233758531146387902960326303078100544631659769332755461363998565595160477327930773856269629355577559968949746040843327541750238849143258303335998861829729559606531160542692347519943058841135631701995398298734932232385815993169350949760374691901955070921660214056560775829703388160078771626823900228418282336986901893314489675788276582731766135473071679207922766032406219426755182231599868896872796597565164132919893798615215594988852299548716262517256157883136016416332981687233003963069439743831943721173837230026010976555926164488512085236312601839287957004877186996598112561872696421617844260529805460389507407481660097101020926368459054099459366865857003691823879518417698565687423672640966025553624449623863102454623154886719145845733629348064633072287410805261723153814049056262205495197185243988347175431388015560009398706380483039461718799099746814167703285718447065159060462460436594763604151487642004004668320050095660054914025386460202378556521279457176265125949100293098232705583211591243690662604627717224844993562956625506952209489900478497462855521729692350364109408879857484850509261060214425606336262068121315361992053432166690164777553416574656404686096322409319906444799395533424863183267714541494189044086855524329153670301802444414213333940943845297215924731549624088109387878514729415507844068815625640404049245776764836526782771434478316731366726490708468074134022452764314881017953086586586589605552950402377221279501095484910487830832138459557718881082802920327182253763906113773093641985645222307427408067235893821676929019494699796067594369816807742230515976115217444802137939714371450637861379594369929938202494694377662083139659066520486615088293608230570785540520755261023860102142710260839904863337152548240373063044632250133320285020742906273894695809876874564369720118318162721202778895026794717814393267368967716788474176242810825284772641039843000039185455096051211493520605183175299187084017751929282804895122241664221958037549411039962342874952691181076028316524768194226658043743116541645979048905663847819881037650814416599475906047159632073355732522227717818968489851220154879752661559320399514277103712749646490250207929944805265960416511621589090885622837497176881539107231858294782587854059574717203368442501949948069015296122501220239535227779980002480867388082868436627460095384089833729683049571200562458557543762767090550934888018897472037047339553395107211326594174145065166455630582110798138277572687309588122683700368268392603867844164795802489885351851890873938210117021459306909611299345479548557983655389134516916217278891558870104633264163444536099866280386421497202660931609993663607262566038768133299830340073793070690925247685713942317554867639529829320064068829280568138086495568372480078632894261525487429679184994807393222453677438743576490371002248541882980146076111252852593573734262172636661523571698688462721161299773643405737061142669740204329248963158020128120562076694746877494094474943871465953987544477480301977524499510868615983272436241566783427745710458286957102365705757739892032167193606565943603163040623405630719215205256752498448140670347654553259496131144727114094755419516934265174288839335421902059988465927909173514626079618509234604825930133530572586240072266737225985915304857546351807855898813089898855613926832692601318476535779087451169104451884244670833084239591887776713872630189572870709074547481322208986735302847244341869087826548300455410951097615906589431054904726963080497495604661539326829187578456717185928350180836940564107530782400799633045676483957250626082950048425979574178123589461811044022298955937419758884654009315257340328121657570505643174767263035176238307418056923600054297756830022845921914755744329109609185821717290235501053559479068825854419829457748335270750735835761598968416727361567337855778315213468201285965828039859089411503173604506917530851418910606886591736529416623897682085295141704924098833217074945118555922580260761562779332314273213113144323215021310039592113803952118579050298744217996528984039327276853004486073039266465036667162919823045235620774775365183319185660480566221598030036127496077557979339332649817281648578356008902992901990481694401360335437428415458155857303736063830211407387478527229527722390789770353541930217277983718674226941965912066858270034077587668509053472117748556878306532754770938116032869699144570279706846537983281101893044916342223596336857957645657005080916852081777146862495523315775069182500342012782888768186114021001629976066811248351219473507211882919267844257398329171641077831561711896504092134319011597938192888122783804531586939677366311519186199115519027594625731104413132853294690491359638960616356730301975089242744687570087348035562894859688569906287607209202799270491580110659196508901613652482275975949246871643281105319765765700572756499216550199696369657628418562285212331580446752273762858129735494531887084086126325403135548258064215733081829672634315722449035351889275971794845577235642122298395696570512432515906201623198313411910142828600310119219500740399559504135615737684673294111674035925754030983141679743915365343458312617230425521220195616909194261879155965949257680204980002050674317980116178332539447463697584302965935777382961545694287066871916064402236076388175248904325727485520586331496165433226214847118453951726307526964497515296110304220626033735257629816850062521159800919846577060419833677875872503574056396817433241571583014682099570733925978612951064721740955940615992824986726319693477939106772487569316786596010247995237737768688005751110856825495953078042589999076465082189525643666769321108627830729230050543537554501433603559935867864234659627344664578108159462807284735455187487662374500455231571318916073628020841653946269045411055137485849075294176858790719604581224721229929829236108431680628738460969265645374227311410418778169904200939232224756185269680160616224448279892270941881832472296134095567408243366886008129276118902707544589566431159374536701585475441682376573032306499817247778418723195061504413107517273278199356219218912075790034590476975880592350295456903088502255443503013550158737487944809214507778049493808913821828318783861780397561316513249618375377669196612514686852268712322262945469348048935963537615156290920199573828477896386669502736889372107901931421781874124049289694371374497661704498599617207805756986354735140474579477275582882322628410408730829426552045062113519635124021834109504671097044498834216092616387305391100727634510221959042595534196760108997058389308363154112921800628645591971675026791643293043718291147085594982620749980308074990135677782410470952700648302565510042482127243019827393112908509393090962245375077235093427930152796090400525711643051374232273538241574323270696967019875670330113488176366436054320950217079049946456503724039645317639369233421494411497092907541450852560650393073568812527981463004913216548273816925066435259234455639107050819906589882108899416699306367897304683106945827960911378845910273657936020298934802812637491381281708563294061807520833771329983853206528630124839096296060647526932343362789618075211531161751314131421399280352378056180874017288456807894463670683815176181245202542455786708968592426597834596847310419592453371283740617273372828775509831860052607435519593107063350420335641196010130385672782968731889313038782191774559151747351711652875898034676299180154934525222486138959049066599483070596613288333215911528965252530995126848138556951699339486840285789668244915064203656234446471307512182379637144765509722738833819148074650667106357929352319950239850795227898116653028811660941823093900717284305506975212757064991471208947883272186661918224527551665318834247790206036845573542792300662199283955050328972082449183904012824685044417823001452296813690299633637150221933293930964825581888514350877133612645001080712027707251824895610343548748794495589518709627538748162136285301574529731758698284693240651973177666235220946635891373003988555953781690948944945326936527783380024719636869321063150422618386890194507848176384164353737657515688346779565272310868616411093820186231135844315111570809776182447309785927057298417401928701972682438138398736101508484330727483277947324856402126148185185591161393602848880547448759136777927537956543074210134845348236560090498004550972161110308764844065143736111134694272103772966705746830841474234528015055754062795497559485960866038809884495890189928326428802986738376700948385519820152988460017664433001670106617934807731138303868013557488773601862215236729217681482893874990564384424347929297023277980755630419896974805749026978165714936516016924375883609829522280250551709474340766858669522206831111589873474951745053687220262293333646735161415723383184783414667717887697715237865577860802170659460508285832539662081308174578663468778462615457123392999496584715049076770899214285901967419059131366427597951481399203063871173944235524838840699995202482718168437122048344092630526518262499680065150738474495365381035498497504748658524463797250256648362198981639316437122358881166618707143658576944099746477652893386978026735180296161920802944003417902381525972639872028666098631157101844216284496976154463045573989484235155837167386416523020550762242702629745287871903231436454577485992851062421986347724337546391802750642269626500410895121029020756766996339001640351720007449923661587027037919639735150158340425979699564519207811844388896974115454991225759507857225223631265128448968743864282741735342967504343740322201617026244447438398007292369190640107321119322786588426903444325255129207474705071823701489009501896363891530042099216454683902718780140093952297182655441839579028793016835337459601246142592169569491161375693840893922945960143490279881076524681286187830554151974197764513644463179843795657448638486069059428760390922566889478198843094206647643287047731991154866986964854341488236416294227455331346792960827451897321301815998134733903164936899035295109760085249857224672669069674856116766894594990255643610500531391675937334477818193182618749279884295908370593818277196077759133279317941662112606590014049450439080745034353058745599784127083480297898367316246301541283551993285132202750844829703774995994918084889686446327674632566276897650035875441944060079476247491258738516202516822123183311909023806220020875995267528331994913593849957034036994529595287281918155826124442765371630824635487067175087947084657308082981871421791240268898362393665249445650809859498088726248452452276263165090708839944534618087212050158526447776233608646495710532606215883991509622477325083923345223445881104931339977795501975650554534277513032968563108218234780272072421962368942928161906325087838094974943605477016611573824321798371928616687052568393810191888395632791627843365912398499719927145649764178934294885331528352961562968841580278493271861168133355874098842815529302273071890239613698671834285709362677495162486853796296558458480182539406174287570826143987216795131219953414435133724725570007165095927023164214213163933663551674961069934724022721646372660203047946759041480236121432580597386930111746538314034469895656515814874058767731868510258272869491522021559382748648546994740266447836185887928559281964213802388618059432318879791719485240641425596421250840804374347385531234561551303442706792648520032136884750070271062985646073362576302347451212420375966306278111759576450218720187595489504914181483593704035983207029513006384691192957160588115853827897327351850158387657130714308398435189513794921329500671253566709999870314133815361777317478652025256883982930247669193936693096419404764614953011287208342779600461909298743088956804688414128203022925407303557350036821156144258705869185125205816497927318598332607336606818969569847460868600514607085126936074069465724478407727631119715266699029089771418225278269907336335826981512161504015935725274921608846059860140965986876202225153181420127904406182704350163705074153938757624673098597276860961724549778170008450313079534594978698807325098854712379669255042614010319513641895799314533870145201731238455746024002871405606588683318365689143493383781098515647952394000218084753618874265516550781090697962555413937100190473836488767192361175810054678055603282004568198833363192898665583955109271430433707067232441356921688418947558168840840204105594384480393656785593696393548781308428286020691042979382353810643690990571210142496574555352344067655084198378773935226591681745449473463422291428651658051973245937433104994129354583853488115463886341649561325506642049746028733615929995232842812462724893022579311908009819842700764149047063455678129689807442560019713958902175335631014522233736677277374753625244604089760012327496484128322535898329763931169690564563248962614120048910778800071257739026921617449107714444374053467561985090707526452973888561948797499644605831694306021654844020278453985567923032060387698684294355598928431288498033128587023045681383414395295903248297528580054133212491030949085161872703292805521130062276702900755825029262442077536457070920961387218222251946377411943264019841488300849675128762339835459260767929427979460924502549117871383840119648766702283255616793232816893162660845725962228611949459008749663898994743683348225103929163233583884701029146276396976484612571493939185193182306966298672328274133064202142714634349641252233026398775937253739524093780797324051871949201812670535831035447483805431620880095138921285710209586986735622028175576254336573744294594413351078936311034503389324092028042352217103730082532110747324373347691280060774786069570752743629084171383171642835309903585433733947013448047638667831038494137479366341165754619097933635585825816181249322576373119107755582400702007755220080608106654695033665219944965411955790755226014884684963613127002033021339904284803450426556525164500184157422100673729649066145161912589456597018888913528499572975035866938076229635592388054630575606580892456045735440568357637578814434123644343142027692021902723897163634093739458678822322909278439640254062816944398927170035882167343689912660656883771179739693643623985967783778232892035420468032764349899328243231336407188216915267996515617997604099276043074125974098352624661685979346412177292860309501980757495101839408548394674822246988875558276814797914967550082909948535539283573859854890435545302665442526760369772364176514181038448812480456450426595991987384878373782823984974121337613716118373462033240045592447396354025035960823077045369808854018001830764024399478936827556853119679767059038109741514594775194805918499097140324006798784425858284749316479510912681180554309534615195190617223347504724558555299594947591193729904121523927720487867574220256321960708988974659628733946149188940665276501808710524866164451783518508166642693030370901194759002150326943258040024787451569896663619504873354471177044456372171681470128799423571187604969895547359069498865871770387241055155809872868360659607284056306606706052844108104997690311954350669184128627558160405494725972821379788481936200802362270968920061182455307322444477309132982835195110200244811117085181703273889369705930059055067180542230629691986129374224411096731414664545422061271171484340467764582079664343995860774211717257936151716055265403227958055869722824055897968591554051225427588202290200975485302082388508767637861266898813876837484709979290442776586629449711277242018706151375706716184439390125199198860107378536597352536007906025115967064454158258683798793182839614817870652160511157337385038070354065907962602638322367308291382745039702511817469475665879368932930785703099353613963587928824350894538634698671745807095722936559230376157440293103935127838465867043340822588833512147417807477904799906148535980000587613334074730707862202355562996750716347509800925060880399602335445253227103263365684407989287869405615236973586702648599319893327337855795986971411371573710966082159953746516956186694106633623141136857130219224179724314991399528416998885159210824757817260763785100214304952571737776978919007053239113154368479945017389184263865761138035651558047750955143558078941540883717390664520779962604782628159640649933093444531930681793550624993406714410169229976570016248161477332241871663685291708594814890124298392921919713780874277077445201990178002743298365729648134525971237704557209178722094913575613531189198624402447572459979772540430886858857273507269554750500574273682248155356362426024276729466575403727999775156079508534637419494220706356470147396251988248049278014322695540304960077128113611165721069975693303744770460748084819971325856727944846707216782768915928766035920061849132412405913016475515489396012531561391341011897050808861298480416006714796102901974268768366469055256882551576316226324201314417477661091416557385643822759529729244679425839478025314187037049641695882906813971553987948130058468319559940538966952550062732860523449376408981727669449943998848444312210362075112793050939583652419943102631753657666162062622017209245759703935725057066140658100505168316377930032524285353294225660545054576733882363596647230749560867721797921002464159397639707104332798709603441194573318392779284884412962044424433883179850525685631343569030189984357542434462307250301518373263369770761134429463922962445852866124293234895324344508762554576432185983140912739554713005520519252515098977681401676128230887100003987699328144637610649694995876033443321832562228810234372275989008204697277396285998749171671475370087796665338343182032241871840675993536335273529118487766016555209777829471334467145250210632967616138064302301392632754226874660529453051164161510220845502564515186709060944883153633717157177762545883194286740704365449879068789795213364684868325566729092818193859226761915717399055270905068561334786455400757909119189980658479688784964431740571425690534684399966527620924875608262179995234632041509189948235763024038761145443922219014993163935862398543471662140234251052017347876559322920628458984902350102400949589775607979956448222610098135331650310697215705577342957410379024786946514061706574362715419798094468126025547816150673174364814414126596136842005447335731580358069126899590573861872575216899207375105314564924674304560611897005744349707295678806452589701996487266346289122595455828803541417799780535594631030313842624908266381831922162538074687408108054948877487412036311081349342191113675536114664695004655303268713534400315358171017047542383207198237234169428025744371687723388035505619476353932103398622586566968165018464065744466619224309710011883179541258635210911874172104057609432800033972131794587151626965798532933867705553185789102914335121461450942275567953482057958245809795924489881570480354236991666217537066077147771350968335402481510212682647374587050858758357435311730898618571445587129952298698412006325041447685439939067496033785860013680065088440336242879033827748648558064452157766791678061284514521143403793571010802640349153666096438386418053124542884419662787295645162646595545101885603495097227598708149140066636908039508575817769425460571760568224021403463741671926278654189332290177231580546515505336979120463448468024678962043231660048581432051693768327499337440554867049700717089545430829465494915350876983145128023059038313241438499078898726695431081390763393685386830987760709118756565786140869210137882573755926725194019507554271030917335720569187311059778047618546871755774598748097433636459842991954917193138532378291987801965453975208620417547408190271566281585235087800764708550024890664602471711103366467246265719481408491643922594410771293108467052837804155204256655166698390992654720003995870451834974189410440234488381559241175987490131797430136040754175108280162976770882656269958888171574282543463167484405802527675116764909660354844865628740967871930221612297035217231689448460354539643154995044084241888993306426203890878987064091001171951861937722818180512990592609425851084273229567332557420679816121336104795539539294097510768434508103327055207359576485821411672058918579181933392158441045180858453578219549201331284834639541995618441319792372943539615062778460250072726601670861154495135489517797658509603974745635223568633538048837983475768319384881365808108067843423497381825486410487026750603973627069464341027284337973306227012464342433524221030812640723933544149530200166103755148147445074500543634891214857182429225832344474546929207312702631681853222792487444920311241965956390378723620554172227461769051996448028854498921876436236810806955907889280378254743734451407858700288819282571268762115305784917338690222273142809818543194188773233258129264072937302947269298315092839130387509902685142237442976213126930728697050291481435296998248300129400833680506391892959610127306229320702009848710298957314035611440551224634164165710840639982497239655140070981272168136256870080472690586904426599395557566132502662656110108304274233678951007990323539481957505427349806137753140077480884282767149487717603340774642642881225938503614880308529879329465477627103453064382494787676589794368767293787238517111060571435148270129193158440067284454860659709769936433261827653173795443281013603367991982578905113881678540709252692720176864082167794061231216118847911164718834825559368184733996634183807222046250563892107281956517926932655652688599914080183686498120841801490008162394447347336548040781838791349701941821011194037404550491353712625326670354649354027255178970477106990335861901928818590789404752606798150183243829107144988574715218241698258646455278290269841167562885881926985372506242926287713710469374867138508413334951357379107717825867865743105502501626736675753572648323252875556165783943523690011705962474780140755566181975450005024845427805395869198278547411294303942666048438325018956641545832559754199260985330810467487056841442941493616017352725639129404193755602270807190557824221206437906606954594256241927746866536560176458511155375619469865066112892888486544398705632139557818271249824214568947006773717735505988972672134869746175467341844421790316981891971335611883591013645925754584409237540974272157688979869395016120550521569298715825522309715280417333833563282867926530863880789078922231366969093663574945364376962953456690126369591001166195617878416225749282996902986254773852726592092083584494451432286936909035638616354453409721487005747124135628779903377593453997910075787150498411871830280254347917983954212075061817754978130506756571846566833246855736127363185106106509688714798991213854212257704876164671120258356671289193767245132072482248377991146502428960760181259766356039862466351179002666647140808799422698822367681496528957906894432412617349950468826076452620123336538929174169983391213192426695115413276818791219362756376268298394495826928024013279667324767962294242943835856918696807157452665067111412278602759845742939975651852561957859493724713285203795870321775022849813507154136387232121145951451626729522285207499167563122384796028463937725302725817126183392178664547507510657245859104148295934001484021251626675096157385041170501255958045290173190374319494160012461953698106331822118587767696815431438436588077949601142234735350997428934948564160323133944912198494800008359392289971337825256958280533053572088271092877446817837606993923407640368321729357524848274049408193586242196131686256863119832592803945320267720377249918318139936510039096017705390085083241133498615767513508828695783274967182111570895398278909868164732972627930082133253539897941186346654471933408907206571197465116550104303769831303667160378111317242059363831483279935446784429318609661352424656178987255216909149238967239272252683336448314035260984908794502196736788141418656010387514601612477051754910105935390833543178672342487106812211663994690916624120499897904970654610105927628683801340659238262758142955634575783905774293552666519448186412944745333236212532444774955105130505337146000738114572740644070944309939013230530847217685431587187097478523307066082332803769835068052898822993213129751869068388438205892998700306231865738105895068307271405589612849118558838076718094897207353956617389364199623070128649396136973236076140943168708562303593390253483628672247120351959369424558006875388992038945473187162095297838654433876190180515256315246571146245533914489286633878261209732304133831631813906696514796705829277717230786313164743906389653981237547554464868649478213200839520909092039796699873700936740763599163074116355871974001349780913957502526251831420532390705489987611598569782808180208093231750180594119580095930554112197278419520639778527723430295204709610805591311938483341286713972495753740120238580348669645333971577529348081466884858754413587302158155798899981804094627322849043301908376366630888968680024177901177687029512486482608659948422603466363012162640686162403821351957317298460587314335461139154449549094387764777746933064074830686947770740572957210456220891690434569440056004660462007474881986734382873115994528537880915182258176832572387282610721467791708679037359877711169277037239774451440895655376299154552907768901772094021082268382327226658827766045140923854699287601572531935276592107048298177660630002089263520443627444409730315936434653118953148023134630316772186655258284172142811825993964974052591800947699730422430900117624783114164800539472871727264115082157818423974198795063568006776735105815862076604660644128744514876631846917990007042174860827914557300850508805392502406204139727933443261213827064090180171270482640647394875517633667592191599177951044819207588256014702258784055252873700854157449818780452184596833975853347006239820038043973205841493817633723563454113215569308895371238912957233867074677111705273608123357699221195024671128468276875643251893220821282148634693498117493055974764943676814847982414686834233852737644539222794986983983521178864407959813395178622018732022052052120578328458111724083463237530396194871614346075261344529652993945764597349334443464006931665357777890285566479246989287863121255864508936963420766092747174352205757031502917938323748403755442504388094329299499902618603247864895306382334416030188193216058039727211847004023740024978220632032331506971787974902675852453055637382480789725864546811202496331374008632986296566573640336357101125849467228222793342192467724273282116149117468951598813974890566823126621262896690658278750176137899389859299564479791792714954927709461676468790645980125002985607494837167342097453123947743595822956419655157031360861245610211947616158856570463014285000076675426060560979138777978836847846448993512555661645839080134960606051368636244733803902655224622033889574044444126319649692600870926214481963147851025077542100333794921801047986564420849713135226874505988465349771910997445966735880406833611805106794053605411084959240108614749086811668036112774064829883206745869826587831595133652145356605576773392233108241551777357927419857599447708388816307531399483554676058473883541255059266610143759996651585751539595239117776106718742857591348188014217734676593392473479218935297390264136511675616884247983541585259430599539002831137778796350856126231712271271554568147693295682677209328327307172282531493365149734992638757505888559990498980710382327128657165088581899415463752143342351785183115044152536182150544115314353058641176184261993656112885817570555913944895394366497817282844224946319889423839860089367952442689562260880646603197387044807974982848954211593011212170719700972141470673207959463112270910888142132211130061205547871169793984487829833336341580450276477118219728984416679326750137357603955771025812002773322189353300649073129377239942705263021356794593898246457422351694133562082913255686015521527889194579342019483824938414818249171159764206659057124141312831754585974738256092189317916531215115527178592512211835089256414668432797978341052508322698127448696542521803269052437486653530341856090598387985579048540791721913812883425846409407295447389640935091739269457098568534887421140988460198682970904283242079760265205535755475569527552075049443058160165195950246937981675927077519955842365222956859934101481913002731368940951266441995034349701427431975006358521039386326393500518656172963010404646297667392263301673851752415788387254640903424885135022266350263108884693127575880319415961937922422669649584519607120320748150774380859733746458538691441283999236797353594109807847014225916463438305818081941994444044937389279135824090589130746521215670753660162971377338876917905683417602838800374366313666848808289483916938564301716224995305199922646336896602416369330449233368022674322818370358972455501469349897544023801872224530338078555307979116082396304276056996889570470300831430492246404657441690678312783489281344641100847406468054179652590762396000212190981630981308190935915835908635736673592315485721995405047040075554775304795585502788205910773182459969522586387740173323880218201763126302274476169758335268701336381808899785344516820732439911342388412281217369433316865752408935009818931691407071833540001755409046948749844645559162703649980738757185435828877603039381327381656795871569048867897402197987622928295366817849728707550232195317990007846024882084318690212000405856578396695535544523241332499875064284904056574423003361905231500809069358346762250154183438383548834150879809336921424977062358120756246120581182797083391149443467350904441673638415758243318023200675873009619517505970661722050825947712734605680692306878599814731875201226309899270085339333113348017295524823519049812212437958967530509089795836007927664693559903917869736440200240051850016435086396738613962951108619835766687512176019399611153014194559871260906520571436624443663689175553283454330414588441363036482047985353971184095222471891526100605618639604397036566782092232832451490700982799462899019422952539536408931538565173207727433293278329705741405789481393590097613671879088894699917518958711368637011861406255546413552608002365622167152546636519636813608727637428658995019841609237822259885848577895516239267087167927616764651807896790895763424370457162651256684061665023678829135349774676245734430604202279239854132682400705938487601977635961652425191586161857223220560322477622868680733683679178854669489669920736351410810611677407728803292348599258167914766375925046695312991210586650176087146618750847815074169509773956660338401587407894451738473987600133957951527902747833208404944764976477666427792517840533998361521748457354129669307044102819450613040537014780065862479658558162831761679808806228642554282504051727221654863265762594161889819786430650402932996793509032655004204545343246052669471976718107187519575204742468422285272891266913006423132595668216473804536182622117875387514291384486403226148536903851312516292309664779227711002999365524806270848778639297036079779702996284265209860750537894582156453527843753421844174704401495378400680527063516831320149399517856425759319835258611436480176362269261081022989569210854362291075498952083537077888454385123997415467499569976033743545225894728645820861385430928786703411777491414132439813955584491593447398314524499950071750047905954297339578789188661259881455542879834083269142943447914646148224328223683445946026092469610832451622025608330983557283949422929670167982312082060794343314903472444083989902639014092610850219282131174254387193135919887881712931730850291787877435290524882768013030508525440967875170944909211655992996385317065628613410696883720367642061486179232818185743234402927143338977088895707488315669025826664661013073218594832703926449569570996661711690057580637091420042895865301524804408865738581189954467961238429434671791478408318795340254558132633873915768898231353321443594527438633584825788218966380823831738429404958867272633107784565006288581929710881935963031014616365124850649787587729173567238106034223642327136419834425951790381519637468454928724787736221421230039134040166597046873664285779517475850627267713506746226174355067889746810165494796708381046181555249437656913303920259503503856065366840100257506263845850849577393141749742526691706358488699069651166859119080102625884673639019254695895895785560888780930967737365611956497548314140118030041894591123418301326302805090812035659427804421152209727683020346601398162092318140149788109008346366370881191907292327087103758245728384605350898259515428918915842924725837719986780223489246244358227690281477225752832751209259854338379543260482710652520516227611416439834631213722920874151821267040694607398331934424961864879329527783043442945328774953927874333356255875368183817780670682827471294870783877883772046826009025394256886086825611970491607102154045747436289072519264463696622049556998430781617890409163758481919139915144169982335990593585572867549922469281910776879872464365424911444592157098976304046458667772048690961642358794437709116248211977217851887256021067689755166283965766718486855402793823214215740657975246781848435660347857674858142874006074154210073774569728440831483309246070145485547339316605899372056430865695939991282995978359879459487293326633625739651620815785767625051448226292293458646331712199929098783390111848065381595160713439109235808376649782365200608729534094153549682637908348560771090353577059342596904364101283560186311329940428161626147136744637227534371530169065201420534000674931456306947742465697121144941935957895161577899358391926117128747250394303047580800814582561541908216619240354737397199145621672359067583537688651404781532279501464129494540841172894399590822517837902858311143017341129987218555691003895861412918163234996057407932355354051636691021207073607749506387591139838221564787564331791557456334072497401590649077664635936626440352821593466943724604470424834357032478042396665021078513329965010779620241618986548648815807944230657319469993534746521132132692824500404517778113234634701516893442237128295895739446428292710575797379608348678370893036151348505623616169893293325321400867849948968898797572193565686926103887284620826374652027903721452873303126934574051766844174266256132487530430910438071068475111163272211818268936058575137105208660148355282597684626538404607714335691307108780342604696826944994295694498028077893611411927912389962945391655820053947054014107450890779914702014433147376105046058836294875287672160416753985180965629762085877561389280253147636986525053368411776523831204039339692061981703675046333889826927666942871741505464246742217857192507738272374358766032104586057776640453336583229773607001007660870942436078727661644841984899928073834245879251552964865721097344810137838349893110232834813899744552822096661307567145966907725973418075614909900074566075867704704662022759585287464762419436897908837258505467955229430878934264757294603397753917806174967015758978609303912956027258150115120921881789752562242057766998420934381871457586480176187292362585535251492842122805072708886954204166735064305709645279054629456028761857213365230719745378801395911362101535709811998426164498076095151531089445522490715321962638305761414638065331674160075712088262666481437591207685256936886842996839412274063892855942545751927624994133319867952187907806618318824680373504196522010188015408536371396116400139478226495185619618582849525009972573432601450608717645672682293273941212093084083872449804215893325058560839767652698898415627946214273233052256041933357863562005755246363075642499060752112709549497021109153389544842987982918757040065710045986807421631789594118976267600356858615030198956465533409319730567522892690229683952019046654560881747960410337132305309201612438127884241196650456423548709377741860104668296684677634778376064984449317124894121704789923958908857058479551211497242493198533139399117921987906583500090627110626284740793458644876486155347508731708807739287689703076261830336963665762878218636507595790845578229751628024864095113796094438093105967397824250836980930280109243804486204130868455956182645305308129055341335318701798227313852680584805450905258812635716815923252136504874415650788002124398912550490323832349689342112400246525005695988275368796766639186384737348712256769748312748908541022962587082857827011938147797923509802279159988489500898214849155201487159215322953390964975716216121216667149511544577707624052905917319379084129476805079675864993804895250407199308388644250999035070503482530794333180393570747720297286379699866205214713778313735637665384065740897486153072221576900083621657274343412923920060530379528641917663103851022861691780448951132565291758268767518199785969283409120342773572350263426954829378350354381673396055875640662226680456321713729457748575981401893220653278165579332893296128549183537501560452808636842596959619386183436187779714209843415218316457403377889497768244821703310498772348141529089514357876133011928090328001584103828456324303762493457408482343466312188936335203403773260874481395789865756724936182865786316980306272350476237078560408002348905121101202186189041789690007461035165040403861891127119604907595421191076769556457115260270127049926217981012983239943189751245446150609785413114923322387425458830932572559563989145365284540099908789711925124658789281906313681478052626696310201296050464439387827427714693505989422685580678595824863478745967839884731216193289827914408423125117943463162472178442352839388031214617643800292232212721086722552068352415157830242967535060032957160146467142204948908502183413052498589541196888347707594101290505122404834189009794756557449945414290991107069902874481103622804308509873153654711613963332930458083980431102839412105362295611309714917193449239257469429489785421166828501411652139905665282613897437830591788190274455267963518144884266856446581167727196365044194475107305591769039405981263462835343387916127464693339924182751223682510410175861236862422464478894480069208631124585348231200758487096257945610049156083202439433510297875638790010822721328073110280203001947679922710657680738596654326634056724454381606735340225647923790902695940471765749427237409934584289033678305039682899278771181889870554491144007651850892306113927953873792179914624958308593922561504351379983084266007844838192832092814968006813130922280668767692631414189075421833969743895560621841521312739055988712338852434581236654256519523880326887382375490685749565078646580313175711511682512506027613842962021534038203578258971190681661601081155521969611211834704689989342056735172009464851348296987596135196189595824482999233393534405827532372343945440435668252057465340992428144893167706669593562947576893480196734377906792667519093024504207424092936046824610273338797925029658689930536328450349814189351332506462813682426281881080192390129439055766934353332807557024568106360549267914437254440468426791234574206747003435402882042114085100289506521297022384791351460139395172114724959897324876120261139920952601549573946919717767574543351618857227403737826233601334841308570584146135762936488371603960214586157933741430885240254300521040794589386551240205640090383365000128606082846032133580043498300013786039077670529149821422591225690457209421086245511180825846006521817870933417893503224600730129459280155495034277870215686232895743598671438535705329583755243586236602984428745148296151974644103668926650073992957678558576929970664343039970411606381814630983494797041208806567564078624283120427923205225092745108903302623085415733528211962073136338869726370646923901466215068948376540708572964934310927668446451400893615754513257695224134281351391180686512380870069197154375069956406701700601291731331150842977673154291714796805071683431107267717559320513476318181967752043167250216395035849541966357973992310120465472709840343076194923335491875176242379126783658384016436667261437705968969611187782680381669817034484294823133084940763230890653097460768024217171146939308037427780468078484824131255926973439171702245658628701623762930415493120427181387845312679059864113436088486738929224461864447851303668625604002990741955542693897304937958667887069913388028795089461185678839068794989594373008518806682599939087432824537865046879216660276211220603354974171257219102889075145541777299877855864528232148570523765065153630393678199156988146807162910285676982428823381836334572644791085850856407531559710126197276288437561043126836085306096159125081333642539973452044661527519516513104654200799874764521375748576075127673496063218955888905969813551486460073021287063264811274977295156197519581026588684196570765814375345809958040999694807119909754290386666191421103715873264715779980119754247357224846158420922190433906376425702308188601056871064690298053095316574488330631385478823632739038589983873363046703068926896746741606942943800529170320688759170297455223769766781290893699715926330010464380084990743208705146394192728219477910117796438082386279677178095178789833611392634837541029789751699442056296794585776222661001898889812911685800862417959698904284685210319806523764337188900006428808851667247887768018769330487030106731808793266037923796135230427131511793212820715148927118577817101144254991928647595791671622027628126479477707609641523415071956546599770351848945873168791561317137715016334135109211596389830933800051205592646128336740201778310598698349353297338040151310813440494926613275823900279524087332054905339438919852722874855036994164853313919752223673985036539784379528636868064307054407885356832538117875734347838659280865741221354563249569150503838390387917195653862252975696895183428200947751910797345123104083194038399372346759976716528132860757598736352240616905032450414098811902143157036184227567249665096073880500369542313829906127427960706591312785790748109787036777794047835906962774296549856943161048199416209661567489480705553699413972489999388148634220584985492392818050127276890702907407645342467505717789603191554976304827215726093013569698405359631150300793902174077715344473106185486910971848748569029036381920742612634408906547665928874824461186459448746402533220317499936763441306448326539956360937039494518928345460017816284920216591384824831456963914178275134483349625907648512007073973597339014450735096379868539758251195431769319577916574496440428466495979933124159718675135765353546211226510815768004740019039696395998784870968094383865834397923497687515073027189437669313006641036844271116569022168826393471359458788685608754456911622481078660668299952025491698291200966102620559506914804595951973941630322798937346288942076684314643620712881996063328422815469725479629576871106625172572470474164924582384946247079617594726225284400043730873149063072287870951694748192812241871835522356130121147933950324659869392113009764107510176676118332018378061721863123998926704683751950929889713752272444656961172086295343842486304756680818047655207258099059835029722493959860192555562072063267576374848900541947635198615441691488428132949825423749326149226606414724391608832731717638478047413794762206248547025941046117281154503834050630393046335339817373523822590102908824110620915384488325610186517185830299382334525030226085980312720437203127978235846166154124812872226154708747100276051978290956148719716439759403214995753635523161333202608263938958940222814584730699854531835341745179810382868330622611001468291935213182491556708321549595416419032160002449696083145144867849977608412390202419671173363823168953596839539707573192801944636947376905493559681320742412780479367976856671001146262015157568716146931451121337620955330376875726424390725515850298926619765539988830861860946343876144079349970766541627316966669895541118586366722514828428239875544738972156345108879862582458522480279640666056544521662339378120268831814375212702812497103941538561243646316422326726164694631722438046150150724362757907240193401749124089205851586789022153766410341562736277218031798759744070380120629380836637690548423837332811080955438888354931552718159406184866576314552085516936041298640711588899987067125667243772921903317858734488444816550051417124879628815497740533191250249500270142048715457400554686948570065633402119373304050609472193224882109040320798540995300349289599185345666335692927206120939756580155748027526545392735939275116634049757206371198546706341925980058273581417132555604245023799501519665854918473219448636823851583655575642142079633757336033297557716157165290590695311637312193015327325247547233488774084414789024232498388188932197027555950712541788304900097190732870080342016373564989325771298926573898135719164346444654923898319490069221743036547153941980186823265525596294987724050072652152171148715948785553227944962984549931064663387781920957526680574173325116648062704145361184751226859771017868442036047280303698729742233398868383976390831249155397231079808855687786596012056325792098857606484327034547539027329035966124553417985637479090838084816822268984662146251315195500518007260187476742108148416951629187420936059778268681410465007140983919237357489718899237014780234201943949483583847152624676830279436750122691819853919770268946907847244173494600258922033073660800764591768054299715681733089119473521385842669117360267651101989567780802131319570270943503636351242366413442575955186787315287711483130115358056163879903210737560453596717283367529587139946685219002629864332617547300384089243265162663837374825399226468875381395587924585134357327478483493402068786219440549973667524306039686449511108265056161464795659248001193116272320228615742439891279763631399574309796990708228551510951055444235258198734172154863124267426542434085696911735450133222289041375816241881359812905514993063871495753762714949567521927287294458225896973237556368574087588184976146443022039046896431931070448142002458828106481167298704354349069954256714129774191309034092860055794626192920950373490174502999905369479593770699030119609114485511305233260379398041135651036861663318821866483982863486313445357707253577270574276056503449855211508761883132450932180712626748380979144348514153371041987791332694895893813707256685578204381367385986371481759453529293141288923679756121454387971003075948790007154861719651911730435000639856388302982785443493021134734356658288466492715370816913852117196992382327894511700805840894676322033453604017508362195663082650991125029894514128233153543754282045075908335234090357275395321529479639951402718904724131783792393097029730055504244637237869478029250623717784149556525948580220982336421497265712364790388220542093459482833883807578053616458513893161695042320655595706992245189404262177180435433312249437334915855929508130354087238044427587367587605585341396336853078045385920854935441642340820889865735093638248259651157077599610992116169790990614468339953047604679045606902579308238093543696665302422307735162978207914674678527649684850302735473501656266397934736091064536861394125773174766029638823389364072195864095453239762420785754831293752583662270317173177498203269741544359134805001402738234070912350729924861190225167308259576030922563605360941226113589216793225126356060614139378693136334591458951423813389226368312301542308237707640312259692612821084660430460261879851810641232445199163720915318102270644905694767511941063875038494073643791573533016070806720095210892824010935625958569352681751258667703422563272551411754483309510991258290036125745136547103790025954699780514947238643327956575276763703223409737726725347537008772396427398938313941217597304995353750205745427035035379000614158429548267473214443932087269478744628451226745004998294123682485139567938382662282948095952553775490285953241389652781025244574003531497060075622416335759527737269911100252559484793461817560835332566912348496666408310655995849728951566580043861001862994667736715969838291208684944002443314950360555715444322460667065905995783966103599205903342469146512927468429647629003318408521985287097724128166468626020924268469035744351092146268177704142005199961868361325737860950126527985925407952243583839486457004266253303901056967600566574063255001254898885053250501289021709796961830334517961817392200994531954660597631379642499409937877211584245373182396813152906787259391971302487474102524774706696103384008985330124895887658264687744324359815016117264105457900104888059479045541468350694108615346408115711623807298859137200358252708668034557770417613269535231508856458983433572171756157357153782033073302630881176020651007857250419100651094357650189069299755526284611680484991517923330582395839513872490656290934479317196691563023707948572880196398614171887401943047085441833912506427735334188025002118444550231091952534366803282326309266037727405572859217259095630089654350315268756530972668152304557116277942467627496899122096941927498835359350740168352649272402959026698687085810174262940302373347982355350253733912671372949380426003225263525225757224076225166613716090723978101753848160720044876705536011532920601367044598650887509952557809271368226523839295646570448382623355175802826290306043340678746462655354859543123749510682752527355182895920221610142894741033033420344040998315354410519108620602552568963416406337795700773623348604662813808452956081981948353022098937362735940180814697459008084396401065663913054618547759919146485307007788264864271380317394855114384908833438906732945625604986159778027075721925271888022954013446971794881618776442634750163178258641087276749925805124101914871767534204807380067001056920767199531939551369714822567857534618031229500487402146062799408489445767078411733066890178694253061135795028713256361933019590417747534893775765730068753565085574043573580681219817507920150925673784912929931816365080316137031495194627517678134353624965687285467260525718967615241885230964612662418541621817860947668189703831423086913682039125890286466733506369850662302659677941375017406272326279135670260958749462841893183430667418116162155130366999218674637956645974256212775729403088998066810139130069314985904164675652071819500563871474696371370946258563111142973537857971130222342076748184822115363358833145525793917507201951702876443732001488083934428322156131240567329982706201156308535457201306626907127293858931396359640050111333163395222070939009781180481779648125767615305271730308097106552086519815882351032280259029225227820085312207881357185814383961064865816738858791277174739015384648261841265695774040459896481686139155020574444897109658789644521664109111012779953440087385341026655207593545361768641828063739825773450285540949857658239936262251565033661846913933931641624440027206326091879998877893769788791665274906557865287570925078226458756834991760060971539130728611536679786887657289344276361524001055725892930320338106128508779542450519795826497102356151458827051116849381744093177127714734752172636250519124535564291056407588776260006903853344467517268877543716997089511030774262757876715976752246729992305958875712438292750242812409700597491653207473813348040718582720778414975157316503148350249322385440155562487762861942511738726288928563813587238193795201968316010184657440476156221580031086550349557891889705514420397526075879111117445627194755110743536522634861601559487892531188592431470655732585416264475897272372852765268926524900051748747734035493833688179091454991487530579610290050591513499671027515244832340969905659080901107058973776996490666455923451860339381925108632874349637925506217065943930376564426947274400135133223439063544135007426621222833815916734329272072617088127479980555018307790928742926463573734946657156638448002466815349686014498578704685351101506943578688005351440983769371830500689984203937933575597649449084467040898914029827203663776118025433504724005021419872547451677714794660747290700509838832981616328143908581110082280799721331975335116826699968845329015531793165441541626626871453705838244778352776115619996363516505564307639489660216478269328303582908160029510951141098175370871553797043318251587897319143817988049463937357645265290321106182103235881362864999722885589231103225448620424041533458203256394304109532345704770228863661288031445312945863996642394083956061152158200452224042471068149413638362284630696166981793622470108815293217082641622092580203910418274104010738051398971477796896559554981420772925212149696184280999064825308859538884420197453258653611367842833411961339188280200878951017417927119921354353640898347696761946865865586282399903791537830524603947843190401457854879875824469139673046750030705045900142014337210106792841102186153026850136628022030060140263169605760951733311235362656194676966291127214803784280475140812553471001499137993429534274015028504386217653730158169068505315991782644571464328750526249569338862071647868423378832271762824962499449307602130965302370088813698457800119945255616468818217854463599130157105232690282497457764746947674671872619015061613110275333223939237085224078625611378560515979173506957866816741792936220446195885410023557141337436723979500938917947401643365415270717962167003410030602109070902147009760421739813081269123837934406245369429903256868033078220851875802650339447116185286932966497856750473904886935586916270040510125972672478222925886103762299295220876195252141778245179539474516290420653598544500900993998882462021058202263727053874011594914056409129412912297969242684346678446795023981510322111804793134094717169764829655152369233119336079950008174821941367110025911268236538675550317384887506824968433705174488908117231056613561929312483192134270780349009350051112898873612393875675919790614604853469554185858211381618378546043856899274254488484634872395946303911122753226381988638877137007673541797610952486205905121858485979766223335863778553428448371228878001267320695065150672343753007883250905029239701310670064899757986739007209563946129269975364149937209193427204639585603977580210376425523955319175143399179975782380899594804806842723073070438538595501977171293299318500553888216544532949014750764395750966983563663578546824338434654595991631231791399861300232361389038331773247929808695743848544033228234010879443385294307831242564335953032359771329607504696745172866623435978114067106317142667601886845198622634801515842435058786026651448582084528621464502562729145482936324920469263071046829102020492337845508910014503478085268919536703235127505765394794176971043107371674527204717011957186685352522848129083063351715928793385672194784063654039721206582582249124851156316816207531008935348692718864016993385894758275139686559335633682239137260233996948822520318070780058474558439921656404909595805025342292405761320501964264521306047617732807021204406618555178377271294547693123194449526772750856182863609603762284767120488216603217268214269802124977443603520083915680877072132870653732840454970087838888649044932122478303233965413253638919541616044376903261764563723875402414532674690833243089345543121918668112252226898674797725308839771485273818090340360546082684270995360388272504322787706004666704260935363016462663664670001210436473650760414536655714367146072018920669209678950774501132792358244751793062761609159505705338601074407302036945967667885084939980570609621358360642425865627913046216584720915412055539832509206638873909856850671396476245869964246945745764036198216603029364535086168102517579845406000604889813460330945426314715305193027768294199911198313167884523181336176751431262251933242287201346297849072719106900081126109254148219928216138323275448766978736978742885109674314438455813357171005830139940840925056250987324835336723126137669551464143707412947254231814190831170391574205973642133555023841485146605288857747900864687811798355072225651071505267993252940665621729976974791474144989733883830871921237086389462753493514159201452424015208991316459026228208530347970811786359829582824752678854969565009431089188571565537233986142411163718519970229419519914298166515811947494037056210318792350986060111780475661651925905290914223464432923128462285761221181031466680017749542841568978821267864246873931140573506397540778595742031791331089034722668903816240998142272908930842849530927497015254202434127061536884671986415702875247497887187584144214060170697421451562877634042420551010410499851334939441544878610271258235020593684901548898515058990315089447112062336532920456350347768042799107886250560986314763626523997485450832898824797801149877024256190907261365153071222129913189848187129426266765981490481692168949297405832887083562633061710437904446290173156585286583636149149682169530847586713971833268095570264702898049552638363150418003169239491415652681452716078090730711575721822062430361010842023123764159821490715813871845788625887774413551486371320956706855531374124534677764028101944360483956835126518080507754594377236096241104445383848891662393517300264043037222272317099241037278864882594977842082770877473066250465472052788014935655832780358707004886488468706237965826192210970207391025443879444840732547991196094842108677650388788264825934795993885155203509386127319606578525353020663064563563697670483861121513581588732121551198924556035933962416925942015300785277801450125166968576531228380351997507620549226799083714238610487779649439204972558335195174214547831067260219296944527351279643713340462730834131326760929668969345216091285193013258611254732733612748510691424629698062877689336275680044793530176635263789266367491286934318075439028928535944649551053006103325276364126013377351362800079577041798933025034346705990862691549245871567790992731250208349323675891990191178439662554704623096877721239467274408636767259542108266814659142017930804508264843013524795073775835572811474806318711229637266377024928544966245363159305963329195779198331316426881439542891572200524180162271334866499784540008399602131595880986947256587931596992409475636647882513207803656620112439306642007793176914597365478303244176569199765260511769123468044623084091769065704719374308964003255867511433294720706262897565950205436085936911255620723783849815671367091046511719571326647901939775537931347545847082032408094651240665538472807528368517186501766145674541286777630314295994452990899651925320294638356638442231279976956733319317271149664092264601362669636700565552447792404285538129094239577058784025800664189650377060309361210862076914582251434237869354989693255241370492069155979351619551314231499563308082732177015387991739178171278919333962285772464650684567666067967697132318010879382230052631912153142146447968973481199380317581038495299525734115455306915059638122235091563354151564601612707729674241046305981396243044189220939870728614522382262152033971608987120044382912218953418045929519259002948315475491321476714758352197656066690447098921729016714528489937988433965384009387643909734225029982514252981440491135007462485006115676922787827018501302836283404804264777733157128815777622409127156891706121893944125817767786928853558109312635334667374104410603108839328351507435439172754870707914426635939683886367813062287454408871888026239605945622287920758739675181284781180221662935832853880729786250377300680159665830904922852671698992047896809371790453083038212983494980173460409174502410043151634330982360841359738486488549089899509807754918924098600693366208993668187878314391405492775910824003464863001832178176713054927973719192784495640650373789390530393964658045075709563727325506729249013382781342682358913437152887135761946526161764894587904510698326831423434379180084721269643105661096514519325255725256359354141093995470299074567542367557472358873357980862720669119593983072080901987805079236773696450097576924137962968948845531320391485447096760953685615223424027405385463567773554409571550184647421885015847162068908156368289823022174789389440329620543060069926584388977641618883541600397557327315064457966241769432105571199528769703275687633750687708003622789782354606511457701537674216772190360755593460936763112589318574611441448823844389963051731737883231216557236428652269776177262096209074102583326637957342281915237755059380318578550398169890249131269418835467413564625398927204679315450809818818104983356210959122478560113111003747609842304296180556377720571562886302901804341090316298211951043921066530666849320124914003680864579357041926204874379957332477938148774796922131948747416349862489491197692176825408731809092846812347482700425249904327493098714914403525538210775630186767910150172858880646854302676770455376013288828845562151584504395629045756355788125925163808269444467812567281770499608511180581589498270476817097806504959885780227232152512446730824523127840880099019507766154684069502218645288203209050700109435583497635986928277136989145216676808010518164436881956668172658411281648299300536873936659344622340517462289186972985119094943316606795814212950664276853734398876949186743384226858087954993836924936603584573483534183594125673253245732900051748692726114783487614144193427477763692646900608120963872341008410167768243890269016529726506395054383405423412167777686624273074238411071793666679335000380570541683345598633907361549232429264146006540456751717320404374364881722175063556647311820230162710226041419760164212071997412510582923230883353510741549309306189528356838060711477813157860798747454147202229255170324973220293201434286747570338688252732760086162136448107651319246992219633464953497697811557665297165900944505570140702649439227501200254175718925779100692627341629454734670926232289525041591989856385844171596036313068242410502020482983378310312554014440961166427158994276947114957944133867330174248373866017743880122303925496652093707127398297786961424319918836199777057010941212877455055253052115883035383571271805964524887094066706421737795822063923999942375135291192466557015914829726190357567958383728003042695231171805778686357164873792654319457234123319118929443548582553300841970052485584590020085992303087149207909791368313396962688450457501968514853758448930068241680463613575407887636529580107495805712814491864660158022426948404312187914495896788536989325026053559723847897324217534424656536382423907059179946897999916698418778120724974831354457828987115198628810076821525746437273859253076365689251269270343219179961372789622685994080713810221565714056644917230613837112553277538959895222692009900953570199281565026430164164808006468971237955038085019222753910609225009220073547470184810927649311869727337174188026562781026198945091284641356122507470106125449929779637276618253607378516469763649839444061584168498785043017468389693782122769091148422485096261231906468440495761332863940137753258071994844933016002001303709125205250310145765011157842959025055257883468549383660680275070711357016792658501445555660323782218108195773948231307712427427259376069826152548856318884032283750974034597979888801502967220872840691143323323954420172761182422394586278255366975323544038251728543338600556175289167816330449918476967982702810540632819475614210371734780215616968912269678424749239052964130586822016903895134425648522059114626249248331947057743628225081939900652477878681943764908819348898355665351061598446067633737005379710781907409865164190664176351489153376021934690950373049162346678753993208001325858799894735017086934595026485462337029111857629956609940695805462558628215994017844058624396532590592157608515408176567752244998355686590164948765127268105150340376451322544844446994706113070948491715617378264936153929345445524791210436758461773214821647692123328161493053877116382221962951801168960529781298703849828959139150226686426260440699473065127991494249652310606189088572891617248089986345415791846577382220540532019308552765930492333841746304550782694260157331592578022547197176221050970817750996107231382801212890547673824340305962753687256585927432959116364705321871375680503668338368442247495438496835151160228379168208619123086667499144717051567308918893767224701840597158216685577286662573058925374993830456114325202346990651275715700664392129836598229164580932067732969049604844097577438397609888297947157109886321542518400687071517501248165793942135350159392456674033329746674113518697198312537257794629097265477885009573601186111645874538562702553448994679686435833511433864595505468434178517712205861235149770025664793434608230469754794202955530782760637426234103741069307908755683694376725888971646190305589661290070742159117725389790411575167512153422405344441341348983458346905987400262656644328009918776875317245348820929491308706552946122651256991643440516561279778467725473628530503494741055885387550833317479059675595987128294328847303234730729114154326253194995796335933670685969344617873278317754845144439235625486987297736460001720880326369992113210025850489513747195676864129711584726152659216190242584035320992396806572126256220447948979488969649050957653363381670364746835143402913859772192769713234554949724962867167965736385941426152606760001509461580744986082520133105485831466763246390617612167658538438734838842564348377385347553071576261925046730136539919928624549413114314644272189732505379926677418119588500020802898279523272120376071328992841815634055598367413752486270095638864985375031044736022580657742855772474715036646301991193246829743411063093814247933584898776208501885812780949904099145670795344880965998577513522794533835449019512937841177872586326887545847517965868729899535479873644634923737365379799796848330051455163541210663409512073609294196041889643953104193106241706756836418738623325292379402572102624902622159970672609913894125419865619301478632608943012416415337004545908081248338283718229702658236973202941584677800454543751323300867190363771722061954608488971701699025663146745222447076892722764788135424083460797456586961726862265975275908044599271757092003145035653001385705787985614144329418339491343368766815494799567946844736419490049368025769068358105443191086871383817928697639707513267745690881523683189811045386894212495264699667249704945838718729565131619960855476417651308291619044214648446713367588371528421309066487344749048859832311344929961714176551111475665322277982421321472923464896409179419925111024604553680143452881423346262205576641557680369636772713857610807554907641371374018490473338612977709358957076637524611613413066723879185567355589814587111214394873602121310317759194007374918517912966323735678784761427715914819762001483893068146676530871603177461630155929358256431293511252963886364718877013705430261844180330348589281690169509387031498495087493448490571397766003909163562737484415821133311775341585294902482017513805390635858736117681270238293574387361838714413132264280905330042822043740728023799915241020464055139426119136248847040714946417235650290656925705649552605087654840207245376931699304173664890321454935511991645544548069607048277515394757031928205592816703207817036304262909813678609285271370971876295591474706055858333020148041876472179293184257784507495507867434488912685374490223654688268304310618899506955489031044791164332418947187268150577386565488339169441017358429801820645919195205230112921116982981370999582000472700058311704794374673892398756675298491301729523825769249072047175770557672578636741223001917547426629932859192551872832395550585907410844724684607990803035592085714198681264074398772366211991892829376579273790639801853655105601298899307546202372061461403883796943034994927969386838548505947299418326412797183624248652556244998312689009763447021974188304096078649171192963588348009773513497852147110192598659321486644988616798317721922458313636096268097089021207022640050361192036556064288898573752343312482664256639842503011630743045669446351783795897248235701220313487029173507990458475493659857591156908069315358593349878562988266398634206524943618203347042718332365705946707469133989120148773055233094392814236839804639171083736661304712734806083345648292675179309175745664815738761493522131821531207863145983151944669641312332537893587670327027510449073161861229562153208960349565632527324171182819066012701465853384911056689683982912007706840713270123788424580683131827203086571004050007769512468460041453417954327824084756109932317934076468506633308156990736284485733949011716682088932263416022852568691105984611952806317834664679939881287122832732820975075213670883931060755318673295003186809306453935641069650050091113595456062186983389609023339279888398904598097314100697087201796823517544702820212076450494542259269549235899954091537460730065061217467498812630039473301694414982977190230974818873148843659623229638466808016839257941775449730011925415053840652888727967769344257130245753952489293048853805775134165697007114943152869741965031985127874916811714511962675673777979161748126904528057971649431109991947537292096080758865415395811318786113156612180619988029685254977648054396696848735590293276100310216233986517949068064917004981109502822891589871631541367459584079413674984631751126357220853489834897881027779058604971072734784770308191462496230411304140576896285773146519472118196820750985339650416904429108090135738722855309911494073586250731996453962212888029547376220760990502132076606136785006128379563778890219649967997123378412536544051840811219391706879239879104017413155382057840819876505750196853330824190850235256594262472577169060163175645771265804468917919292408043792205666625028461679305116427257797157860428029266714047078310395077506072057168769160706148089040190787596630975029220041767235962950635347855070876748063418295352161228519820452028706763238509528101310644694447236143373072947669604982913077641530794227257043956225527190758969560751071917750596742098545622706566903402424018699159504751503641802801823997343913460381140528806329066635397090888967455819667058845474939766581696471280313802626917679691679505004717209718462805256333728926538438558959060634828153980714427025191001488220584162285904876279384684063401957197478051037755643128366132279810272326426438267403488704124900590203051502473793183340004340361795141960181833321506920781297184527436655953186571148023128655089756135602912994397772473562074491204369564738501236451592445797953858644483041317627370946513631416335125773853517780245837539232660852700564720350956801991424227445906032175295640509134395335608207348612752832180053814446071413384449750140521415385580580416738670206780765415629479952734111493449251722349448605697844113485532730862493254645722868573641577705348400290295131171700135594294409824118351180763125406012737088063416411785251579544419864297372965038991344147791552002075307604783831904381892613826816792205294515539343786878191963002344946179985904227390592814706959485218300427823447587140305395473840156296298268599544177895187959660507249063781855252833635369811553836828955489154519540406331458203632741858546013089753727178952180533853072254241843417193205375242751109188629332717567640415853758846379292843805853281231566735720856498518412608734645388148601329756222222205628384254221789631724615015188043966863220490442613248099794265527590957751733788322877413688296352462760136540732111189219930276103861910407839808527941059445526642740946072862894190457253926818433802089602375211485394249554937707277884950185033388828641325835339015450262454250027225652164796432166384157857665088398914382412692382051980942601585717286528089830187350750239184643673122927440423388262516829796405096438909184212592225003342553936718738702492546731814451564391689826178711130121202021105213594087488609042819212698831408090588105313642504324449753632339397837562545441998875719058547295568835158461198967034918992283449426023444822938645108843585489988077419964306616238522639002054578928681069387010929305434128496423111190613823998533779903431872721532809195840114502132467664104479941820522624791260020804006822847113560187916164776728482183450945675016655955080776503276605347464234892324598195098016897279988577017583578475703108976370591790928653234673966960199197221272260038665298631444010798745487522169642514415049293005981530238911445753499173885943037332287573113435854117162372810976401689505004640633146974926528134885434905825919542079495282079235994839414179460791600464987152066659075329387600292998797684447851818996506413068766563571555783149575390800102602540030069561040453923391537311382705760678638265434647301985133536967241021630477699315441416064865766547495207878253168166158358474282126286861085397442847052395645270218332067430730884760954198501466888175002494934269923737162519378061104330550389555266120793411647751169851384960282090626629642895812545860046700908253480023402515917396149218440187980827196457714615463780099429584949679332367931280515297976004993101535697157988737177873897555990535583362231339477190080480923322268483254970186792203435217206422860752893849022083661821110599349042446037047572627345638110585981219191306033263474473082271281164397673608147280590157041956456673295592017166860464826829852451419960062647034938505084221461540805967910638923508903404280512708899261006352591280489060578647179177079499529769410763167815258626498007342105538726355033316664288027291790051138854404022491131880505150247230600405258905103216852455898875258799198298933593057260305003885669252507477557210504284405371675135691551004186066411517680165873352763703113853333136610611394381279151055407264013821916546657330793216413222496373076100825643951966848973544792004070671510963276841104850642596703055353211878651847892327871939774044570419401007630700250002837312125197696287767440021176629143811793867616787390150286451039915335050612989666630993484627549042115875065666699194745521125118233737983370321106706118644891008383413621166985730822702636658702083240272962648181005034408394433385574406720977503630401329103389021992695817282311920254259584343746694688184636753355871564912883364930000339539484387448223317632157932685801289631338234751051605127043521791691477585901727615573844364204211048936707958077601979798822318196878864327806951533852241726898827184603148164423788517380670010552331405214792505554995576121959117035791973119852042419706717103097265248170721822857020307322285312524955921568486135086098814275099928763667189468929955855520290592567047101047551823020438245358439328555438030310884052852422366470478756340382796697955420824224263050594881161251656090725433052011081873685998732378504601830757125720034718668519838536188354622589571344656340596735199987311516120392937074669213883549875364937698176927522769447988498609645044553164761241876607514837953468994093351015075540165613321531342408609609745615487983109823855349138980803048618897500144905140170189650059014897583554136559903190279997278433042078534941198072428487606349859374413256131893511424063408349522767402592258578639451815466444788231260680047993528668163334310463818041234694475850595991092561392939079347292681015458248207024612589818639258229863446962490640440161771403483809324736868507129768610949435759089659219383007224029671067768340066922222361239791434603046687470749831423923098570526787403501233066217119841019187106002616371832302668618331351786258566457861519140113837050190189477235106549550402241933676117854720139547073959925910052171374691465746947786105530772924101765661507918086293522821413833111370296584289245424028055461917938593540096017655926079201689988570155527028024599676477253922865976606585310279440609285071175144681480238232176651906601731404036677084649060362030785346340861064358317037631063030139200604888021515177557984897179234548537871856732407073828625979881910107370450547303834975558886552682949296965236915323231526052451738012537136581319859325927767169142120129603395956554390855371922930154556178432946601193391985343352038631539574432051758766658395526124694996957408876137989277214466732649487869398534003328014212547679895573546335284385398162198544357729888768241514075111668825470691655030323166166418081457564993795880476390018042996410558756968115005621032070120425950963400956450041686795088545422734801181199684284856308258326121799354183628053235540599605799329284617722654813727953128833405614777542325416915668964251510100408575971549594430171221063064136155008663024584633314645603439037822556220910776485833584549988217479458381277513919839791656288570431443802698927927791454089272321431265176765292159989746178158025324553448601813462154223256217939986478599755326882630765445575835684625508491399574915963191660113580373721559514317558407329014988203032955893721116092380818790900180130904394652924323219006194197408404032524464126233836272145123685143839458637899291910872722671537356132356994919097706573470089719180460959190517421915490652758624518220764194935677369804439233965689349299025703819473669673031099599409201437479191325290752632723307053549050319290648392020641509398972583829372482832325259493553642293886889585778170685293923993626640494933518386688557886351781123024869749550815939848853646106729767959995341421016685334713404147887171771143606057787076148594995921497731105470861880144007450339860645572913636046748840378905864203820769327738566813549707184704850953036772613927592657865430563714157484955304108539474617392997796526011506606887010586322539854655930920193915414651612867922393542338778936796012836633965614948445986219562982720033328952185654552585749162509199608513327322760181214904237509085033772332918897290800487998203852691371556307263857692044130505108823103416551615032286278167773603159729951419808586745661638921775205025526054327624960627080709624083581328091171151270918905253276041808637015274085442009348463592267119364788766010160713345823712042140279104900679975830010009406875087537329679690803394034007124702880172056091638682030022950900959553810087451180793946251500300840083908126619485023096056032930363041156949948336889766672697836889746435284971431604572147592784710702576938840043152161641250824233082717631640489660878869691545612579589349399215939041503574427522477153062421940307291601275472619707319960918315364228370757959231008809583945750713135461989882486448315526899056293800469770534571697171098156171743918759210744761518678523596837928837335799565651575850814805520720362500269061814529901630932604080179739425476429465886702140067205059632890406067055436189450707361946547874528756534758072003053611809227721906268913353026925900014733831700634060710228414784716219500347146252305833478762787060215559537284158310947395766427907467480947983910091146023337804144884870029205942902731609249339398661405590131208332329493383736865387917663755152727191389613897015331837977033292285209404566760866384068696564371076797060574281478423314679328063522005371033726523948819803729928929417483844409849257332790469466740366148272200412594227727053164886616014243247303905443160850649128726044207343829419851277416626646831277692795415938511501045686283654433519214989793399769851211982764361297656040229769080919479846207138272361807633755257184609453958238300938218660416583992327360806538389739127209246089652710057345807245321153808810669897936374143129002823448746854824638093449062339770398693304663119840007770449033849389489944940490113364361967146845637398992408889652639068045531232934649572169793875532898753210171938660614087284912056254440418744856683229024054033429841820975789953683540620514303688970638679698595407705808372605009103523339354654715609790072266759146973583681956767526448276671047793825566333420258804965499459491609780622958364220155676371459246154605991254116972074124048311891943307169051327812966143235894007783785527696149503566965772645750477762649174299415720341167064477980648952106470264421945188979361789386299599073618516338769174519374789257499327109694023022930618631543838605844242421486238552270293391824887242087559970160657319936935438594462080609551790926311409847235014461035125640168953516526097649189435449095644653153898206296060697552149223576411156002665757749751239230581612019238657445628178356093207742625329868623895750244919850009700430411680199730113896644297021537368103630515426436334837690216288062328320947465670402064667638846398093971868239905069095698738541546714732787142589277941004889803962832774074843872813119397436363349605036111002489366126734493974866309553576489875414825955544585562236753628796931175636925572093448769707074979392146368187133171826671521174955736784498821100266261403884127776679360073717269016154908715573417190232852255207613456152841494489060506290539551282994869744734544731319376351590164506434477535282261807272540870554437384072446913974259186067317005005386693372499780801473578924163469073530277441071270229200885202031628081628509999638388243936180811595292048608500541076886715664403838711135574435047856223457059825704553441899131555308150585478532770174578919462424514293067834357698659467559762402848999682874070699551453469764425746415301257192391314406520272745877629346479015010183205206568988058841987358068136987156597474392749171034540385391687847311714328392699616211754299931258045340231363167988194166675635323796205785264904125713821181335518499876702772744679472262046375186263404185710405528174696564003265317855408858681055945576436207986689572278058677809913665558060518320137324804827127056664259971334815890362878752027660044609974661706583503401137649316032682114302975900760849506004855869729092900513953610142684757295905047356990476887633916432860813500381316701958544693791394951317348291230499264014377797215098877621202568751460940143351025880963966605101778441772601947497433366374104961388819685770366868791393274106187369577775498568029693610340389811818679335669241888968205048799679607206276478508797441683204231153936315786129824380738324418663010695005988611076729227043831784690312074742966937620789824330542702937713587707539461656489157913096114328428123837636962583401701859798920699269563790078984150490820927956160899444416199792690471680290089776137930730543852501973028527427785825874408442102637591764336054071250136342455624480349542301527324697239845903938059479409277139513389419032804165953524318439564015697867837177541797578728974319594554256019947058075564019197228788149744538253957018571555440381541233916638668766863853417480824199322242634317242448884164105154921264084023233481320927057607074711153958585894077043822888266635635938784256854868938098519816443994722921763368554810380216325313897292911142481015251875569559111109302249501450930763572226523292291845243805419881026182698966555736071517415315434583304464090104083819520731667966462103613192495740108687748411350133009040679032890014091502935922362883045685438189048576444730831900369515279748671699245936048757763864475908730350261569724101857873638592698381369634332451875300532297272480596781082163613835294291887628723751925480043845333108326422274978945103891072175983042545640502823791970519265168578805188746081502447154621635387270390439952065582382040818323145562253570347245353935209755965465418451535495656814941676406284048860721971514812716522805058007019928402373136057352276221367478527451089203704634221584515335355796536526705696717810097065249712605289426386770225462245571903767586713287489164035533642274537107923503991898965390682031812083251287261118730114309524943293962582930922602242225629533191888418798386836224004859988784988000073860140796254076280924453882396576687805696067351078433684865664242188592524591611438894891852791573422044632689932390423808659626966424428961990037822316996662622487072059137086971065516996959477873790539594452625144639599940005738796416284896066746988548404641867525477549594112122978699079279365595425631032925402689734271860091842854796431523363730894959413370418682253374077474815040828549915797870655357153126966854207805535554667251644161027707202134574759722274939237144962982938918942602276062949483512250606932301293204669655328147907449027445822463331870575168422361586447631594576931847816771793769424153356559792977115037923964822983515472384733746332597919007788078657751211830156306435485243207179065219792460690002643202683663650108927868057344707494669511782605083687329327801959358175439637944394490271327674090647012532487000323807532080851819057668478394235228414479186972146888346499390707501898366107918597651653323295982257096111736079476232910546525576200561842108459657450512412087790256650404096101719407416381861449953718392771704758390495046467035938938531129144659957664812763414859082322897882820378463038459457174752100010988589745372934842290223890951818144237585729283027522924801894859096978730521152758755042129861783874134258020970558749458809999209392417761428450200000287660181654504088358011093145431973784018393795240179186169805671803008668751797613112463721702490029406072464569113054012585663914358780204465499888795547443581871655507202149549508996230422547293307400910787202050144021013664479277053352236361758488858570632694048467713546225693274038119619706126309278020771924905669662098233292858499273836365280942526979600589331315599782411541217181497682778810056350822768974789474476789175794746327283226813075549921996480525119461767845514769275633522336285729743096582653033430351417280171869997143869309691699949598478219174049253485718590932823934629136057194886857514762515769290140766150812276794306833571845543441807524678015385998464732127619383758523506956169925770788868520412717471485330293297800253879167289783707397336234876536737177199383468395759650061326030263279746111541912994105706605874095089271345665970136617562943565433482323817558231668741188775727669670181944976554284605416362020689698472268903403505831486475836480445923950907745393432572455686389253070153247700453420818441473802155119572949098146632460790703909634237222191221861565283331222113187464971514935887281145884447779814039939135269005875239477650767249575753324723047897632890945704323666828469929438871157644760598120457153808909964209870290649674402308203288423466606458979730555531667357740843973836930817702270348821490296003831933536265747434960878510960099323576457946185155003108883642495126196904760885180875390417266528551444171994935381125871458699695215863649829667813964738325814847640499984220370224573301374565962402672115106876326115592344570777123445510683427987874792179005841560703319238908726132367357095479773886120629777808860651588076031201030732545968599528659111901688290989649806303570381254297646519511311298464627993717184679139513629137888860846435962422902904713289121303049344643348680727229032675872630742506312653742944120781183531979242864466099268719630706964307914473442116499110711035446454272222353644957620679349467721225856389521097390010305565138564969201712150842018505650779903422201874360773978819149254666752119229675662296436483899036784964357858269765274076361611868389921309957672434373877369805950456321780938940344979636851367889100521881047614576408621852900728001480814468395814515645529761547468636320169684700241910096489582643176866352820444543818520250695284914643705290717354268269011722645246558705292839606128003094591769682757551819196226173990290252279131545844349968116199883376005968524092470930623902704711161575766867925252906821688708161613184320020749036519396768222038336378460046692396416485215650854755793288103500160700488513970405155235016995910413860212779891774992266002222057520592600642803991203623255722165140881212926629627060058227500433505383304669572637136405666959552397650402436076699441757510957317509833328330508984586253223180138722299555119656313463874033853074540096306606894757413936289754454717233346007319863405856916193793418541803621946168488152745045296242890710187611989678103168497553254317894305252194513724397076556789429556430578705926811002626483855673381825010373182558810883310763099462826669301152990757626931773661502464086061373331130358907690458015306967995316844119538947523998728862203009293093769718951441577262161613650129588287135436854834751017250077738482484330464229500365648907450296283984752771552804598655932302298814100815754542935597660245678954409836890347660975615793745730956175478077376890299918653803979172423506448593694940865066424142752464630136598051285523817407085845165573775123585250199456662797324806909030642650869441536452256280121946774937909129834078160731409080101548883797807922430805876884416745375243742963721785339965309531586539231190467361103676797408101329115761091463926053653250639749621203723800248337719667373199081875216217595647777437070282311318282406925767395488536962453750227773763289426104753515337397439202601800129429443146221078319395108353291558691130141331411454586317585186782489141330110683210183408756804308874222172062609672696990973469163297455126918361416408806189049655206284473601931313732308933730398920788285757303395222743762560549017994222662188032704035289755198093649023842583267288925553501167017717484343574000722715834222037727035554603092280866526424403699950238025588861099615742143054671350536777386613721953315548482505490399042117222527852416111403899524385126965521184873462714771243600718920684879662994303947029318785037292586123949250289605295458218551375962895495999740874574888290794016092806543969244901495820520224277914018194873596921316533320941145757502971364402705084884140534012716119589078048804844683290788003805999614206757299383178664847271941045926481823668123918879214065229408975767985373773475894858965832556332551627246132558467842147586928551336253171882588023464526448679822409017367315891167177514178589770786561843091784768963496483116821015696485564583387036300418492079390995776323185481854290629231571043814123492352140794450201834891035068144913185233436993459528830628661668095582129215349675598856602340330827403995856885030235822658185194137675589236884263708456178019484137985766274617115148509271621969877062949753534781895072407761753275155095772957338237887947291640504340951236951881726268686323455588686200290228775229272518271480491879352342725987268504500271128949908021184365129240683465414262998082893498657765657350827459679041046980934520195919719540913040985670640378196629218413506419279336265938732017259938161612038501341444435955919937075218995810579263841995292852237408420080276818773403657801234215917069619428964648293710493286991191970853810359825743799356355227432857877271500044945843553005417578679732339392930247497058726078425880434121183559825425803509301527305394856831510603210326042061001760732227360375017958174386806891669809419133227552414349085555998659495458534236032807285431832267288387323874729234735525824255910050024178930513272185569015330914554301630383395597326430864369407209129149926278051484862123666084331154296465301018213813114374387326633151837539049458994072691392727739754884462444839027232960891425155934981235188244624476921284486575554412433754163156380544603971184859260891816597526055827156571822345078137504843185435210775990369865249389661441105100971215197362382807118268254786021192537556132999821481411770885633921197265424819437353388737815244935753914954604154451836323897820637908377383087013900959293336115146658525093535455059326708303028354847407064568408911613255306075619585965559055941667048311125670259548477206226184280530368252145629381409882491020990058775489158521280419432533661712304119075841586401749617954056099210788779744889888462417588177032985881811302066869254430373063362752123200720756782009038498889771264855166130863005806948743356273856191370625719658389648835297764033392256016633411158160047629759785495531315627954495852419587558345441664284005064225392982438939394349683963957892538652755097853428664253742778948469208058146582270465252405637075664505004722887340805904310198404536381774213055631646504234796307164265132389267279478639689241460647330361733823699102567376420890134161188774874059070582258619074991908014747469747256806668513284531824352178849662783756503720430148621070883735294789989207487850246103866078559736657389860430667395346692458287568857439088843394290197891728920683730123390385064895726556974798068414172565791528813254692609027606184792801196719023368576582435650594200431281443564046353222855844510397773345346816932240942375797348859288284515687018955360420672009156266034430478280505010971086797020798811671785825890456992782009232397262404513011725883330183042787334857545204212026870015442077091689917807596511494085131710918253861125930728596314636074584905607451579968299678072795581453741579026623985202918649280294920812655555420175643334075910380621473407513616395354059330324935132294333841380303174912925738068892394103224263130193298673983668301434810778068359821396942129139053896222377325770723258465292803902025745445618854880937014100311246119186629167032245495518871385593391020417836780238680243375450107861189208248022507144764536357149299930348102539765927863410782864477560789022448287858258768687652371535201084881810855831850304748355825190261650423396676791616456089874210373084081085058912558304826923152771169047919384569412149711195434589301024720591839175996363260522738011478722700735905021295101128134635547092969906431109115107890034647608556650974909198205011695765343018011637760241229508267398968958385963162581944337323297625121612907398331485195429496246018523514940607109824057504160949718925884332515677272493487219068548841881701818217911648661480170815827890313113047554519862401911904079498640807601692234895398768389438153008139780779783375071521605131551502696432856002693504757090636407107321620026479324766221596186533769181343688121084243131763309972021340126732703636899341055454253184476263210688103978383005927164142056971486788280985761233276289114749049695939766720084400652304814819904713398598755575139290361850080771055647232777784322287526057571105892359497038803799569559163481280396597293186464343167507507655549024763169459690139333521491805838461041005583619442584367108181784793529519476177470286755572602724072579262945116763986706176285141321982568121814485571513993108482539046227300990180355085417539884455647786270737866067956212797740376505494861649788378533609189643673461759451224916218131488879707228355833986471816577748393957792312439597411250480945498231151420765665805421232544758735954577130151621436623992527463816621351137127351444415683058557607036372278630912566768331452861443992940771305216107571198536094748147489423280586110096884013918406094596411948448752868505324584638363182862735366637861647505646641288702055542424644099657836362587378511032094675951874382052317572081632877465622019631850313332946457311986074622065630314307888139109874676491743470218740066356001835246790027759088388889186786918369278651272497902203991731942472625392715536257467119114582590031987467989846866442106775757418970973047103129526007707524916587952938222206669211254134911982629562134180213957140849773146859366294832195374842880774690342575581074449797208788592520735945107421276612685305349356177792534005570150666030827504168793842534657165268857720513026396710357641229721033325327935248186198910116314545968356942063917141588360116082520876106546104794890984929932622830348810099075062937236029586718988564530249818222980017068685978879348438815382204552332025012996966689959577134072148898568957039099068343413763467928789169135274183093217799225214744040133722123474920953567414364441493467085292401579461603618086378759873265363567142972680119303066454309501943618328898768175296775389137580165434422618009706520657372095399811655974795586943684292372938352694408548514119990350263021164385446343880288671424914520271722945885447436301853081275869214741049206820031765841958488526331930058084181927469049656933425092427394416636278796048089339805943622936737892890916966852780870200142295585604230133525655036777263956340976531054941190661319421998318818792871731387710530571594271048927780830933382512330186136803960221070870080763046651206023323285428273404148132638820898498933459831174709023127149868582829745312872492869553185996145819982418640414380132343787608549317071605799732558485371872991453381225367697054117322470581433740459992794779314125996423833208232835585849527831052067857513932597996156383199063233742705096935669031596354878833003009690517319054411120424724348532458420936050428318089527671501661086325799394373424384543506835000577000605798532810046997148110454168319261619105670285737146750738950160275632316276950884568193101120153015996375245513651527363103419595140442556562080575720351759224948867550949695446009769777787992668643869413862919706416497728503478140611042466157264645324238840731309092463199616006431886432604886752627850620346948765375433282117658182874059770669348164021026601511434199109169831716638097819543187974252300866100849524544275785765998217338894264571784908284193357886642502474418223796773304540616967188390689341023188475121716425991576631521734057198332824569662283294409279258844055509204555134394947318118520144765836158822020314054957004938487058910839554772760702216778472528125482748409845400247039664494939185531167693438581414844337993532456175023016636979225356186718455357427544158300128698483229505947580963346227748293754794286316092478890522697005033990853090636027953687436933379276402257710171181107741837306625212552850719374628182415682397632861158217006463537001105936924979822676033422340690497610584561052137906047328905345261714168125759415950628836296809262222596482221584657880823701103491754174855316674652046510993795243169518813514548066243703711218705185760775533179032380381305008929212021986424143382314695403341835068088668434957973681752720482624542326986620321747335128673987623540200498978240771574219244307623815722084126323320943454408044356258607843443835517690895918882354547078484081177924768067168101334748077580357224610368399470547554019036154686399609634962199890078463959657229869404845724077883257637413558392932932347913657692348880650861997832821999451797064879515195727853970713389679926489008029642804116646655245884224791640019784589018189746656016641263849725114200343294426827885566271557204163605089019794829639384961555523549286764345356479151945378014151496969942870145584691630441512930632118592606233067501385362278282027817689258370250166730592486893525599292235506254580316975260709418979544348068331524654633160897108369914657838896688267408708482644648209061230033848467066917045095500695618536858068899481417338299706793196932588122160321856852684766863691467309247309420414217023009177778806496903571172451199951472652354151976494282605623801702681936460500704122893021650498348792008258080682122019961179449611983348257102267026331460845557979627830061484410947794960766914941960376839958606086007497647517334435317274407330280861721453874178940569839822461212074502740858585438711685445630712380858708004708660687942805399627137166292889299007055544796073557462608238482272173328239211014600182795146646923749659741719120630444732119920389343687480530075026584619436126882883509428896172446647152153561642204877023080460716474490289767545835787766392519905514204537259271574944764119974554945439813555717181581778058591405564582259065151608244295647691588957288363269999439039965660111654181256485639254976067640660878734859845552718184514235027870844859598950838741120208516925815133202714077992677707147975371340641267428353876195914365683772730880341763264942236055885813786059544263937391159038549521628391395525144757948900450015905118211777924498604995881020393365297217806911672765078194666337311512280223988650885905985125586496246700079564842177522369085130744721920142488343393589464745317670951361008698695837557962657228330167704001682167007248504409244306039395401127987533785569943663333388903691487480130330278506183918378922203071192066159443966837057847526070222128181719705015900802416750831549188424619351601803693465697626956230815991661773216503047381706298133394132431241043204415969096833844081279855399317302864947244797534315984603353144431894950897385267183191361983053603585111097771466248953291187784445601180126708429933718301012739056721513926897506053802131754669415069341646148340256631283662181862348333955465739683859991209363094018079704630787152409835482384965350586229174487057261974758914783142039150744837012999498987706908128228716304862981319545907908527309931066240927944942001665211127061521754756184045840126550893581621268081548284432034416681639593176459940360944139205859170831668332304921882976367133317362388277179930820266638398400237443823408733144392321678591860441655653086540465769195102184788303706334139549851202493730254258801114984896838532595367526565185457280380705560419624668214407028492986889543319861572296030651028822728682987409943092370377810283521375820993997260258560098406388946841977699005460875171024760369078772348505640790549026001945841842623847222285531985583342204583246445507027819808170100419899723551875599277599284087548948142783134532989823213122452591099315934669283799931719438898762840376177137539539995779972079256242634190793953556228598465710639734582088287614759938394076443560689590369416650314664309881632429627216782107633135491045617329639432684602550031536570689628827764959437655458723950552359015756329143099903150810557749626344876299462050755548078272752614718914399250844773058792310048763924177159333056283913412487027183725070476906971199226562870307072957098131935693060590264502136182250399472438024781798579765464082169615558153719561248704170571431141927752515539691518865205843504039962026020216381361032873231559807775103452454132722705307834546655105005323033914801287049348332979855462478578043892958600739000625180391425509363564356678208159340593334089782550936455143963243368498504966446470717096540794789627355409384570009651629161457386607448602355485984333743627139898179056739401162340377397392778179100064301105736222284058310559816697009484831490994242223632920214505777083695531010906711655899197526801094121989722781863205339341628429112736169282163018972018047113452451393495296360715157932559380286294551802008860705130629464404806497725192882482832198056631817453026704880964109801727728206265776049019135684411865850235500485024233464059236221516701255010132513830224217109452497243969213755170062455961887486363020761522218845205285359074919416430105188231049767774487301234223337879412625682463915730471907404477940262560997999099471211849044565504843094726535929132071403978347017770549917035603242237969486792433331578058680174056666808918576796141910085021605238567650047161808858545585992433019223194859864108745912860896722055273311712853326779554533236991066684238064441736370311760738554635220068510140064998809601871474115277723270746636569583005985768163616201912578436016077518572592045099122316074908073528705234205016076321626800956921755311524968762813357638853089623854416615194511347999072271920456604534395428403835836204115340117621023316296620067219191638056139437107065303118523579023736540739846076192592127038228575091330592708484070526905916659993412691278459249517785363149895527149878912630221062511522274898869416784023175932637401921697792443263557911015338101477297387726481566235855530888427896384790324582920330013016185975966549766282527262144361665213182364975725596846905918915625648396802939720347513199841248716806301857600950437353560496390478567267517208448684262577399479535562306180522173527439097244609472062644323292979560639931621343603162393304865648671957272278303825417391657531257684525827634651849670852144169639085926582149041648675386163234173445323258217513537466373717594214052248754198120993640469492849205948463385346990806562844705741136059519460215889621761619897964162145813769797441912169501609058367702883285684155827156477086655032783982775601543095939450072974903679004157043378095059606493358446267685670191394053446459445756670737820980919173535282365957056994254509545444861689789286020383531265113125572938087945676262063684824927926193076416621709987816103721805809380968692095738488180465440940940534849346246125726478722666026755654015883953851925406086065052332834700695847153958995550643953692380780079033419805337208851378078640473416790441080521799822061232071066190637426191287758143161194541530973119428770981624245906343952952616210631462075311077592782167889424969093937011855059410977201344690113495587983068389519074451991861622835010721980203332773669399330941325083322294736521114758894978409993474725011923200736628349849592629972192190947793067384257013354466068910165487257564733437357872205045573373566819630068796643767124265244466277071470755396286617666425223286348336066999099648079956201153147289695603795429871923823334465547100610438491256143416696675152098506040094984516868145648321067763514822546676368929103314937311230574543213024541964293530482119102207403255909947714459803069305018386615743131352357745155773779481745756802633017252764847820454298971700517054025758214268892328010051656758300999065083897531943044163953236155471147341610633763950105130031039975552722295337614968012310979626665693960568439294102168737466727053361979690052618830003603415054237224761637102118410979858706407378948678558834604631844584308724561599681545786848116973036872284957454053846560055688377856771058086509026810796410860921223032184125569561282867029029994990165685066423783637077944161996851982138774691983362849462802860252108271256573906690303268939400781600928601510493009112271257152378223836057488012642083069121984417746972542135932391229972238449116467091124516592775934029776306774514607058929042771729663230063219585395122744335744042069144208045019389072040952735626992448621350044583857212502853375936954225928511864302716590381790015968525696874439718813719373847313659182600605505155565610298870284176379645305216620902785703914480094144198736670740607017596348373537909013731495758802781956374144771454384073054702829895519782653908887871556672895790667962033104120238180503230081854474471462544623309377248529320070495514212942200024590371352516954922605996920221987071703675227489177890568733675233616054404147452027555800877276754036916325263504793570212062220266347219375385821162921972431926448333995611722950231747272065043268365167386969651531111394377702881140969696177878614299418092735116780818554837820318072706316708846939939237980490933149625615387668586223199596343398846030111580342737982704298684679825192504686018786417690963813791915422969234993973263418984418922153515699828013549402481261204550870522953673742341300187935155655051295227618569460485833055271553260695504596987134784501760172714518074536229741139653633061335877582891408898359591110900902450920483525687231287352165975515748447324439621393111899511182589410005210513081227994540406322946358708932022991437441630157485369874094267982840843328986705701447382031475053870690832528818365312453097851380441330387544783183230457321448479313751869077522547013219823987374836125839074750956631719924748088040212469489423196599843118317207765264756262571362969134152337797418442023329350456053575482527567896208600979929979008089487132484259161157218089073279730910345982541379711750798969305122684663171958557862374123274010577221033206910101008086208814613224027309833021649835309731672514438661752292704560626095173865296666619310664192631360847907141571712415515091765161926330454759031526613586925725204856046841747663211796847322490430360238832692098850826627117486995228865666968122875817370360302171007171567010752178730825393789765730524054644428504063510347765085289739222260605539874131039943963710130963353036895511386130881781285729666131196674388624356132587136351093674654685587058741377627880685449521734115382423176282642203580044838510829380056789152979154506392773510707682142054839302888409487814465010694010734149513562240118243649662996758262629260411415079097767505151413717246270647799994432330276858403000585279760293662727386101541471434558303509846671598882797625805706088175078838731085390003478689897257019539776467392956853058083541325763074929919549099147291923001940671599995288486802898931545081713932377223858141357747839677800954045602615637523125816110622575252356674582444426452831413860222173355712226645942637462459897426889188462795318082572576240672225458819375252129636041346280909082122627023984708428058985859442659290394538667187410076587159448069028941608934681551845603115638140384876434615952957108163715496176164161304375733616932885472218909325585703693080314523985021563590377810319566760744786400393266770178546279207145337225836805518107475669837447876264956026144369130503973579469857728947849730087429435206299506709421577066548233053069158684357859493457192504847104722936617777879631584034204810972001759933759822794405210881282825609832689424013263842158634742523912459044424501357993038812712385049579636806558925225512226433313910701637013599051857755491108479454427444583252563794603661567556204279147073862733964796480606463771538172886710180132651711039567419100046582040410775227354186634984231269418635627572668265479095647433235289194988572201045988157399367911378689049332753718716785082176782335122880003404029394966695472842194007157351221746508326873711864726166387836890901408827519761759454429913108136523254547485845561939252131600025532079849395708036288593936979343903029274381447984328760385369024192266388848734532488758060861645798674559479912420454992931286070283314374635147426216731646896448441866543911994616080127730572474740777437786904310764548672537021088480897582646919311734197412435171487942102910215619514151986101476723989474670257257857347768585378608315496697792113936619518341441928061845698977402479954305352192602771372010480317489784605094194372605803094300492907408793296212892383069583000536994435220756683085261434402536344705066133874346029297671185772361392007692438336026869228859315333660459629736223953572473729050973951353358593571502442751588242590270410165373157359914760786112054565662512295107411964061852429454871667529097933803350040627343101113565969262275742183751539074627313893128478187728911677365110381609770380724310466750037150585700791540820147131503208478122125258458516005341551633604799019806845639596244364910903821182074132893526428028643733184485758113151815977325455490568817453003942800901297377656346976173726719129565170197917483843188674966201837599970758068314657256150060742654272050680677211454376073191274445513421959750464315433298632947044434527203008404543788877236578766643720353612676745539822805964897897459449304629904221389956735822101866006070988183320304984579573900092339096220083788950917113369934851688093124393210870343784096359265064268135162074308733109735248997885544707025408265617938146362605130857799543200283478147838621433604019728999279566777553583038999166719641886999731540548696074032747129271292978627435556665020132977783550972761875250702711307941147129774297982141241455837856292448784772852456711262579560377030122687036720424682988601067442887728566273281653688054312268215235508562570659302607331978475740150294988973987241042825495726616162429048395351624973776818714367022805072796780465990776966200462613858109786551365288983960751241474948498032950188230789881349448573405797073642503306460596616780344579832698508651905625954919827972534621606495359338855960997253096572595136650871456065366145801672382244842806269006645117255146906492664354063263771591681979594646296153906750890518812956068799516227664330430936250992371520373490513086284695403000116447664738805108577095369753262079819296036176197351887689562082289714795546623483085056045884596559316731615923295203674974179840769825633932900203988479927154691065059763085663369211400651759654648147015348667961044349071234017725242531507789898928675859695941039481751531877758101352987355272710476893080674534207172564266149196195461245369866863943112159371075860835319424309358558086096583660888673184400310888748469729177763921180033191794878030817771746343402791652186329045020815501679156169932720275767204307303331372006538989054728700227177031293344068138290500348194152901704919627529796308953278974577594019860857955887563197840271485137829363405665009961479706394372892831649233872269197221534312418432690868302366517302278446774368625753998350666472423761096718957253507269104346921285287917240391106519591425222769945196795054162055363827768546652519720550741815807088225534972903461393844483047799419362059660286095066296511962316031424138056408639862343033972243219866605825046081205316468810349261534783268254428860613942308055007576483252800160665815189087800642146709206669511053889923808165951693520996851492121120183659207538214994461802447168951228084543611833406867346327643985471662847570101764202416166803999603529821495814646313620856008335284332721782097175182665335620077440792992448627151020856305902010270340727513277987830650652033916158473009597356927643394350221090401097287436831641255180776001976098885966074112432697781938567143925150149950538101079322978923406985260294613918555450801193303597834341953301267025869411608610383875631360082599520553594670037043846038913931598282656617939502326428878539464953478831850304685099202181284449503288855088165495331778769506753603783119560711424054446641256724400388923383822038959566010722795729450322718893137104827291348564487054886098302603956799246685418616100892763804545195452325430924474915207878705954497583322847954394052369297794719664143996697765151688701728487079920315853902756716224267936142665362885922761455229831680035488982454153531806811072004297431080466956525362409514193825832203498794223987574280510987792086699016135658004845783805870719302969892451713279928161551947330013769807697112934296055623452951318746827772846384866218017545592390717460166760120066845144642011615553719357840654664446260346887493796846046027758332810478319650576337667894403958223776209140486670223922702748404123787829935501477759911797164871881080791714155920976579127719302895489031399518914555824558123228968635706732277974563783784989245866072516849861601311672763640564292057078867732813492811328699212434908556265927052647212274513210121530155324054022437167075960087017264684430289872246494980419955248913710594114775091579487103475581747521240535208537467862934057055458227133604197171145562877517507282587163775770940569143400690694776416875881196417120947311183366315481927205578734983436409490099467101949306243976004252716625552206350820031632633002975092207559933398738104441596820732114547619809725064796054905470265209706521964561461128634546321055388964818434905611265884017349444632293460369602976162096141385661103929364182152901813364949540232369261250010885111224222620039310315996674953086435971873210255201739922397804686178974858079383182144051929992532605751388877967287214800870316689952451778911480871662822360004793390810607993329981585669596511529054870803359475168690026911498382694741823998015872727405198897025281798872686170109951239228729438666303520780384325811169950197287767400269475141911292385939644438342018565361485315105765096337784589118873713890205376407970634715538674184859502301178738028253420891865880411013919186816276503209979033589408796921499080029070249931153611460967173926941637073555410437284974020317242916701779609789983803716556887258001843653714042045235983148680073167362218505485585195847198501426388151002967249392067157893550089407269900577436553588895803911959379425584959121076717646972437872701199352056624030908268476607098750963503619432337438235966957485399136797799649707299898847058811568963236019398499979963692022415679138362405062973331122926056960539086960570790836097165988861239502755383602072926864039639605466522001491034761000228851894752321047720629842853099944983123930002450725798517958848442238888646114532772857313243199934151614854798495065858377676561238317106013093997388260236878037962256790531764969251349662317225256560236334781420216040149082915824792543169897226660144149226415689762586449069406979780415015430823759990269830903499213971995102018215280713815292180205851900001399541825565442658907505227648244012309315764289600388406407306620142440380420989933627361757807847104249841996167055120365394058475992424528096555986984172234524771320919772341197908250703034857099154575461523449649962438651550041159306243281686177537134891977772929427866387030112854200819336674977939350311131930337789902033195557080775770039267061383575357716053359397804320907503176443202628884090284098293364600895147370199559091230016944424954648877914219023131409206703919182339419507001834384381709535840417098118948976556340869531969433243368401531014633261730963620351269356155123822499497753731141613536964949464415530185929474859445480910146583752044696488230125232793655105572577940741269491742908875379301771304580994757641565094383396672242925323960028342491196078170853525382211352274147364670076730578565265911309172214562038314489156116295316166652529606852967819594455985508261212575861801705385661866539202681508414749484095859799267891686825264306198113431631406725813105682289496054658321481223191828068445788165498269044748740557436300706584373750065715008759952541662258428413023893108828470891570252463654413735167351712824148925893207613262468368680709819045400918653287357106824734142297711574436655467359082533057115072168467954911232088603868883295621140537432609541106812629446833750120410863898971435676499705704875823962347997327252982671874745516599930568861143543923769493564489003951818150297595432712008210224266369940455046872361282232618895124504004139463080431138298052452687410220053500961303308824410057334898698361922897319957758077052384370643271338867714738486664162096774776149487228747599227043630381532591262262816399572879277461523133661620475832262914521095600826126012345327461283554066780787226643481660929518717392285356674713557607740898496269855699915146036853275490339309834086640494048288838789603495758576637391410259434611732615194222093416320784166578760806999987055639265419734556666804942888280628419931630317072553681538766799898768341175425906327406994797024684015195365709462911947038573509968487233826525682269248981570747825935713618774120796919829882776588463981355123963413608866774454560048585011088105958049716441613029590615925372606988614720574943403522635843849738434924910944523168190056847660371911021261104078537911212787302462233303674649670059689857986588563209422538709818147912622562888679613634062368557770512504355070041012674335041023996579853955936027531607397429619082228753379893504914157551138271627687045979676030190442675851283070816830947081652164477297340132372709950158466923754521082792316563079187914317551113024116054085071840209972031732821513471672682545562459728602855895990790104522966813955863165063006747388814349383366946271832065243439071930379348346299579791931874845312420581301750370214231973964531003125730835514764152657100844664149875922159821035951630667564241923387927529632919039765092743734269467674036445354059809507362705754211276767290141533780076813404896495739770188661343499634303466617700007633617076864394983541353511481423728522233923023377429801278156109192167043692805471356789653475376482116911049308374328906271452389372462152554009518440921855899787590501245616803815406125841085421820547697318614744283243710753594462156542962330412546895864435061946496625015152791047608276552745520965482539205055700553494892017978497971123057429416217923194947473876925501647653865912051708289276027372151878846969204762677656019751281089764412507794487447250380277243062264818102814132287261084031568339068531406981241843760317773223661109376413249411084134660143418714889577494250863140599794816784663988065149185255557491647501321078560455659246851942426192378620492307593027745936666210076492060195348330049627732341081272360299096147814589274236679770207912442651452000391917692037690369123509237964747316050321043636050362007684413750699549504835955398800108809014136057419988649389053652215486012526368646520050321589921121307326537940760871970111917507206835743345979518247713877541402642857636381072424868921371827882391188359027298162494284529236934829769786830788226890829261692231632092821981864831988659543062290189935488819448138401050784219345012101930222620574184838641669870026784518634345513013450349567239869534884388913203346248599897544423883287564847827027239707209705486745491431202504405638915404922243541245178716548428777794043728381124675663990635942883650889098581876787892239574460035063672852310358554897983246460935428175257374102000890657494759293587640886012496640398217637929362114128384283366408170087158159051550777127510529676671963885463927396667426934751057442082643706201516029228625783183371481522896821186564007721219588083141003190696510866224570873268456964549244331270489448897402154158511708888558665243303316608508791250361548309558387880355331927787955696121330259971333582625483395780520544374600812563057747094557301061249081425468702734743592440184393043042576317899763682291363915886217997440036876821759335081820895814854428752981734162772284192963208897022631095693274904915445657800651810125348848391768215511434546751372692159521839159165345477087023652458221271131423682614709669856322697305139378368435297709758676103627501462211995853859047555844782236016737569799653542943597928552448548786778429519100573381059873020373228603695592084730550024184817556295146922777811450234843736454260458600787315421426795523478741611635802404958970666169649503604099403765565742140815833958841428878925241598874177733900416127378354539662312571789632148478678233545969880135176768797461421129793823350015088314955685395752448010063262291815251490945357914950352915213235221674600697760797982362356261821852399889466551984272329903059071448934851035627548595768362882148468152608036823494837843809948677496692686934668646709814677628129980782887271861913305826534896032113816646782191829728333612809133034976124820179441984719768138305209141834594378096995889059084747094343767465873768219593183946602354892832849932625723952924769167386790114757053843123202315481714956965221804196299642013273843235520520361113631586967941472371374413916956763013648914918549230615849542111244728676059871989785804584781318740283389284586343483589234352142467429531074883018549698494365389905130774601409341327894968102182879107581729608095117764156381744975097183931765120147161090527235515899070942106271803637868962761812439207018989668612190319347037906709098761612573600661321811762037742496250351900467025945735362995816700758558773781878361030780361055264030583530099418909593697207966294725715591518251250950541323552091172995470867425723822542341234719407446035845472335133462279782188262779669587202081603929322574053111856202902808974865656888712686799813392306605816555953128017762572163606818812050051545640999459905857551693708163063180984415788573669629093053326379092470178360172558461435352233731630006289687408878681713458838546018600520749757161656974325715072294884074033144445196097373072428604657517397617066414048896393383286829256077929542038276194112690268762143973629305646530098019150735061534798976595473737188853876838148665849386450482543945435716880561707630306782642074386822830624274553550111846713161533452221524328067357524557404105097288567895652463160189241285188028301500408713861126393738726535945909219732120734344609984814571539040284034300275690840963153959983707415730251082952310053833186321906438242971223321660611726324877602401994377002893055409976838720403322652699385873067915378047853443442119457440407533081355655077214810108694079098496287861955662785714345581173681296015113722342998620260919079931478820672423743531058387604964964669332813428635009309848072406336766971015563469708210113082826633787675788087255832455146845554691133552644495714298378025175687190421740448644135414471536463123209896119135886835751979049996861048691617405671695980518506676904787776010878754626999306715423967211727291132383062791357082033440242572188220644214507657152539299032612904679190899381192417557913570229343376154862954115652338525607489128219745033132693265124386114975977228073272008378428520930597587995378549941728294637728288954018534371172038456173232327266198042390234152959916675475304690278475544420674271738990096952928412814881284962201204486753710220427424559254711963699338139364513388374095753646197586780618595006245240161804212664728757198767221592009679575446850372138237087853420264978823299292490208854104791264575542476360224098887561235776258036955290075256312979409585131759747392349450189736881006347611547294692552515261470735393963687339175246430300344410786730321902402932412944497331472854690961388267644323792282429358553508013797558758017675767248448200163866437056319999061122499680964922168763263758595679079060886703781932091136895967404617148457789745576851657253392325562673062381569967951557202998281837433532804430624856138723151334333970409659118116036617531819324103745037787708601279197546290961239335570124702639167865186350546687391919362668020783047136950329455724042986602180078407611968188312368336808081071909578247826480306362220536864081056612654116835521758205263669607535463331015800100997782443096324763691091990593546567287316599166411379411944816375051207977313905982474558498082012345726559277417856942791255520014514954064137794299096180162955401040458830029664850478941132204018140879880964608111828289380343508711923921543441185251673420788459774618630122718141622028764166441150692248266618431396171629570712018328543080030800903543189768358873147156793305509263603547783431874781590407442495783757823877461922867047700161090276218377710114265966791539183588417574769011672287779252564454295049819314921060741326644228175651239176104043821591554580173781522547402335240551201376876119529701638487648040112447150811842668327255074831008092928231134121654992253507201264076041158002075333810367687499216002135133452347353494841737464460309532567297412185144722573556158935882841452269509405544627968733251299584330260783074423726308939007184071369755628552460350945141290288295840651568329033249964872269922494870248825144073214916129114437406072087435844954508002648445398456990903303081009511090822873975362535284679617728568454114564893942864674161993330158986718097196169874266183130564227496998347359679956812670208228059619213603301536682765870464537938677539116689125815360326648667233325849510504350486433547684213929595002126540600638812524259939287256791971738770458346153673390711160443836025398666360632170075705314136218024624147221560182135988498669754634604678768366916832004053943651370644074643502257042335429898443085516390896363875124741301657054275094418294522082174797251855221435259247353695093893605968278009668252835561189202085678898293265324174247341941596823977363989550056438566095569441570466166859537094892558810460937314376095874805130115307065886377815857122229204580813331795673803524634582512916935766667951702651521723804486363222596857995726115761933666547319140010786824735478668562329882097125474910340590504059025210125165553215070878797818687777095213457255508616968180181921865999249866795451847199808867477867198499029916014592165873973389509387823013845667698051781343750529116515522789113839828590529721611143783677091252096773510054200280384347167303929569280855093332787723029983529968425050447470705572846074669580538060248042612764818538162309405512527515752738941301713758692837596848920302726271399744386563731562760405539271911550884951903999964029788068695971045800185275318773464620699463322894730597142281862441737675802482692814718110419660392945517112599052983218625500416628428126205972020051242208856620833204998382997058854806304244488040249124761100052654612146161008523875275245028170672114509888080247924818070143396925850424142765653745429817975208827334720537409666883688771062562484776042651795555020719059537677157464692800316007257648056840187846717819883048856196586503255440734627372457651264359070728289301452246936601555893631164412313284347414157014317702128143076216312613147478020868708936217132582915386838913071638800326781904612206426797056730446819467282208760173436328166021004343084244091199391952857062483519989572856288260238443819763042765615156128659038919481360545756369880982948425702956215089610737864716060577378519634146197717228755705272992840161684290837196237633176511575451840432309293770589487227292341441377525632858511450458621434024141532096007011285411364398399472988081829409359579936197964874091326148188329072532078873233084674279853276319877132369920421670767627300859676812117506147826210395168687990139972307764214647176401814072018130659332325467407227528753808628074093165493185304108055657986379815721600820838641761456873698787069424120419719992889276979137293023965802545414328992316952056499604388996536910004376599552848727463751331305301210782885804628326011342484242545928782720071089184650428163072821772697064241541942176763487825010182869334791812862393150848714401711906789531985671256452816273653790322061601111789343146262472967723433243527549379386939549256463255728583541209657220925107471478117035780784366726820493330271719397295146908932159502292525114325092713732860763794209637777323497241947292132402266460089019861982178793938276118070852863755513270036400675623943885271715606829628620864786911949515758755903326672106998627876089283147109126531318138078917186479634292702274345284014981874329701788038871238982415714628959673403828630936747048051034848968168596997085029919137184175149735497140699194448272767584394296227236562424978220330773579294319873739812103915184734354742189875341839025497823364499335238389751240401876423399624802522727349488065774327881730740474865282146309577300795315284060992710785485804625549995648881377808859713832523526961594968699136377970475394214092043021439903905142455057000613265113503954464181337592101786510486382786488348336657582075820501491703360264409692000588524995473276908278441040949602497960642625621190500909613117126376473301337352214470789387718183326510710550651016827175448751265433946926746304120790768817981109182793820791056222501738204664140041945315870956926045201311441676177586166256394724933231176101914943925969189856000786951705367274307800872048874608400183550530794933628512351642590901966457103496015779916173053869450120372183813506437771528603350033404416282300977505539328962837037445810102805305150146402081013361716102259130040677491614275850627305249833182535497026034640055185140799050889050419886611659060780433794332190048250412549147139046349261863710675624777682586538524868359911661645827630941733775160319700681218959755256348526569116562953278146094641907239928024826224158744720533283464973550023388981760223227949602099258961507288526404728693054829062784001955239650801410568178817668735513567634416509463351944992783687510156709415158713261940292555985660145492128729914076863866876204829337736737395142601865355591944449883750956100167266379821376740221429686746444616357784046621459144554039829030054291156941541161984842422274811888728806279872845261028909161645414072494411943803575997852977245989078145142543856698880917222876119016128114114229699026386443750666530259941919536802137988071337465448804137500280231588909055543856170715988446665186936531482811115469137966067558105335400097925228533226359637003055910780042014530163312537726086665345595878133257547467859124647996363557320577092237398125190596908167850707708509598224307723367298107991895791631280540895958582330515966467073630024797629207512016357517015836419205149628028487064834882034812228952514321973934672360633676153653554417096702085735738417126602281999384376565615565875530972269587153045805474677245897413400912869219688332326717251957957233867851941719537916753762608515220080403933617856958218543729139635057542099367989556248828127032149486958276996347572174627064470143032692179072114673235248651006736070933462511983822314312485359350827553389982228372589152382008865208682865049375948527715495118401026778816108969197064258847109091009170763902676684143451091248011036132773239092497154202912018836444488360393232935184145869013962408453243448681771641708147397753619878851916087743853087772364785521400731600361216952423873941546562838159741684052013802023580823948309275435572230718475792713175450585914977874563833977117068479481951037714961272840298092527441223118393857267773079721498461110339666679179133694429032302974094835178195109255240963139679937159323582675856810140468070186214949286541367766012520581411205930003780797766222434621961591636618734814143601852093586261861633182491414708222934129993696920815185005939863345304664139257112976046149173413891323890321959906978141527421072237970762365165771899989583888705659889384075255368217211252993929684607532804970449753886609320436709149619581365762531903692866307285901871771852018059012818710248110079579306350821730014894373313976921803447509560526115734774483810665425437608653649131346730446340679417110786814558728405285075159952239057137427418035352314149928124080968929194581410355899188668991551372165372469421933407261827137601851415717473089801276257202271197386248942844185625007308185876772328852485991762236719062808038411442290130400988893215612308165451797466358575783993504724402129707960426791714492873378844289453855571648200323161087758669706613779620463577144946222750321965290846304869116390797815334406153953687300088724098891976445820736541806702505406305770988561778876809772864207579833017038510297308653632568780020354295157431696938098221508497480710597115010289284535817264016366888867558876090270965262505921132724075073626254687933510745242580965817976951613050041525134831855469020297867978478815493772723120440776825987364709293734512712620161065686434442754501286841684320597522420830013512936251132616700436326007796339024221912151119066136644759649548490043591016357292606726575370084925662324465463296402987459110793588575463201616400010246647524723306916654513333586561715192984004125092913069504806290820666442031533984978748734248857288313025795371262309761556081396302129390758531809573348449080967685465779718483464347668571359709822028878037507538285718771215870032088148895221016500778383692407431302974301296651320036123688034210836610290853262137278889532594811302219215413302064865642671271604983795843005115593994552590747581444087810357453034070718183510058395882042647369582473905564549385593637350139377410676825496136998612964981569591059035448585580900592801669583710516226450301684896348194775332821883190952744225661547806855053233913016646738247085594609264122328688278846899470716363789968822224627796385948396901173350657871557479313520329684807916214714799186182879711620443670510789690704933162986225098710103821341174986686970761942463093392766908174135780290330848374420386107972897020044252768473637498210630261571574977035931289519083270002718563836376337947341568729901016868476738393412822921785080456847846086417990973561235557830019942362806761297766719088914835909443495033678312471362986345244266464876387809438596640164101085974364917179752730031816350590357312317183878899764434450446845473388423725346154868372268748667127602075854609980585581937848253550182673371734884480800025428899154191833478359576389859577748793776406553895299637115697230143689372745733630829129929029859632942508227160618115947000539495834086466485028866271017326273814853142059505900334328644257128961842882499573322620819048788951996050586449765016987514968234206341565034654511868050076555216296644362943858571186158360068599140982103801802544321228728090551439986026116363952634146528131831256656664510164183033630394001116959578828384600800471703188673631205664222824429363601173876378283487196468164867776238685730948604540196910439269497019825163777651050616270827826851063129444349573069212956165988766197905486239342024207680062105648141303261485174223350480375522903748680667717625604459948831499112348906481709925717688749252215849904981954415818878360307925418304975283096009855179346699040450561984381986826816688308687655225539434045510357733468350061597846721490708421984719167757614955441858309348168243222219506019829237950581533993076559136209104747457716827349520315577154394279363973525153034109741989881320229219796361453187937596704142563012683785264370828611265142171122689911040215617684380427473861420489759534839140877822338119772634222223552065656326961040495560399837197417084933729389617159930686835224323978751368067048883029746107855741574762958461147882666477876777879210718304626140895214242174729338877256387083462290086951622968401104144309593934336284935676358669571811232644379610604358010429873702192410683859980632393875657095617900431422453559428609702318041372445308489394677773846268477263226350022981359934977146460120882915419797341306236722901215427286274394521437988909136652860778226614736022410055759640170092236412357225509748745897950972412421060929663429707234518925885704288113313440820639697293612372855630711544307654696785519191060545561406716226274557244199095041537255981913108471375734121653789749942035050092037706311157474658837985654312293013244354150583056673316199970695502377737770624718705535147493355948947315150155850500609271639345700972521361314137318313626895262440127312323554237741700594223219629660245086415782244365089150026145097058424758057229415866009539177351755774451207506260052280556015491893156231362472027063074061275918712254001890626625831531414637914729441350190598104764906725197787972333428642604712101382699596291730558455052272664931978604371161200188592698060540777903087784991430836692716509600014846961574893827976165335123354611002783014040825664703261050971411544737769238948679947288135269092464520030910339107835805779368817928035687954816799973075041127885425943826587331199113863752966689004590863015862118573574947444653080119398577459720820892343302816019988072320303796025519421907170905389880656170287572888455634085281777893175062800045380207771631308403191562732865813370288448775405589584633896373510357436207756236565280202166969728246098321880765143624722042492071614397101658594946405158455580339510120229396216627586507318628223455219575139293697753445326449729737147594376424641747754618540213274836830786269806918287743965090578119622256638110919479028655798543919895004153372696839905008853600829535199851440667877156491650766283022650574009176707504334262696951958305352749020403761622932960844283576267833418346495853760894821772071241998009204078367284589748034056408787989454998729684377696863289925043813125390919207995334019846155839728765869165959484142549304565032485455745621788775880775495851504052477048389668571643239734989741413955529610876169533347491127889481001704809490024866075577416828890908163886553145681696834643843043491438713373558907591354280707431095396290811019319443315359319803738643431741102333001458428331808739644923760783946008999429244811375654137555361840962724902621612321084723844426548248986875613118280740940653463939180207842999613120963165153643211435114208015147488012727372122654031830129087034911812509819225403472302525993832697416716145106040144898490758465564890653425666694583244457960297097530443318580953271272483225059976413821959372678211446829908845502458979881517381435580871011727723197991652390215276535311568652454804642292358265298404403178364686063936591371660379585490501313366974835988920129406908245203075868326415084718586126320178492810138342881774057722483800843573010559071561289205610685451281414200292470166128550201023424065546049648506894294650521645938929078357814957982549736532382520386149613963005143878076776715291765443863368969952640579926672308106813273064548226106360278814207161023071386935854545084203380271592160000672909879332592830699745171920905708710986340725171561624074216029626084090633980298768260980299386700340060871366052965833440172232095469751328232349285958757047694284629969020584056524297854667418773968049567132294307659586950972055302080076133000259954816221294073806444043439088661280918377747753222423450266338524639350147280268406124003754640865235052227283425594271336815423379538294457652934820711476079854615561346810620637061530318743706261621371875149905488895219350421204570777681468884041869884789330782116121690423099867028426596339756545676587390930687906471187161052796004197410431334032419651387519782536636970994271762380990105330013250019508361429944253346082788563731041883695861703050786012541436313887563362847033890634130289196055354817837163371945829328009508157959278876355655750098950665352051342131499408459335169171476231340165619217429841402977573855802861248277028655368074094312333009608590526458378201664849840892367374716069567277514470622766623353350309293213479082343028968080209124248109885467244374056809150375180131599531759816087115213018219954139111751791849463815711084955508659966301052614710860198938552569397295073597429138516449772261541746384006770797488373743025468687116294320923073585403744828389962571832638253706700600789414151593695700769414857141566303591582959099006132771421380197303462020129683800673650095475631917326580476761840265432975085268258153065324479145706215096039868892066207169986464733918629561512762779724845673736773740127881970983404781477329665941342865924433269498068727550249145363071501223349086449009937684028905737100828440208069941406271333992527419715110622148910916071490878020701568478587250186396205741207765903440706734003188378475602044736891579369398630603774942437032233206447989913916147875935903054005590731028240119777439861689768309830807638905551276168968398600424313157230836886971600881642721088434789338557202108447993516752592219553856986412391368633003302173562521756768203797114042752308538899676385069300744400149141640826198303271181466769773644606112387938297883761329111766458106589276560709536899876393943211222556926223462955984294204799317337866113090329812082612232040854402882431868815757196267752526660015502125499771180964085039054075518482283413620322746053399113247168091845263109607488018961229096878318582047638014317887907031881669399667455172212975199020619856911088362192229954564603303673984583054352804684423683688775479506300049085355066925557198282598866460608394068599609041842658152881915423749935086667505881117157793441825906703571800656069761574875618918120909518091295726157663307712322971173920447178139675508847534275873490042665730031288590369527812348859258479074203482092130512566931897307018654689799066883794816652071420278314378956152717932461877486639697155379477934989576271262724526606433003420308157427965878997117666551416351509341150922255863546938839228270113285481243554958767436911522536608649509256936422867178595083713320253924065337644698608726592278298449710456509718527779114949201751180905640167715773874022124867210960508524456039936868803095620124097267316901830652673767753597529170222816008169411917601021763461062286091170134191773186629392217425813960846591571712623221282051316504412648042356363170793995193620512527140646260033232314724862636647778067881557573768877133909906804981200136749519449789742973925351488506967432527574099648718825101662565698196362352556528037276725198192241148210628853931261344264538846364982296504176706376206579477438671204103257680190117726981900509991114134525628785523224875677048057244687067430096869867668976027532749854883007631986036397644392574537198760540364604430653680723539665148687168669236283230562091920298261124614578704174780616014255053026764143370107833300487037758700603342639032606078306224254344863930038376549889963045921972343098590297482006856778127047405016188172546669405006232691759464594521118212333209095349310769637212468044755835744461708200971681278312912306208339939928766620564426817347428094380340314143317433618881689656176332741505241418907689992198305134398193557806830603979646046493031373284056100745813642340038511260511838445503177717528344585473765356977141064230337518830722325521811241603592882092107495674360749866934867022798332442280871640699431744867563201933703121808537390465756364060193409171957207827571500208268201112246752015501915695396088127964657548053171956959893966103225456831410425210765708981262139348162195748155016133444488620598720959276327341018730885080400802487570325665163071564090816886371234957594453853213172881955382607726421944150188666201671342425735393092448368678598564779244972196630751959551098914365014184589597912459257510198038392469016754082342352674799326870098653010470393977402286940028091137351870705674483025543211103635800855357749681527407118474522236897469677943724779938682039294197895743399166260523599283249406021652168370719459906298152971305446584695629628443724750772826930393502997289605888081919848421495448416209483720164212700008773806902168882351941744355085213193724971473677082297291322734159113131563320578100199714073788301449783103460580437612790506267071706033141695009256768837579228307653351323169152890287869200973050343537954748799307205845044487111619950868551286578408210596112488263218436460560918874528352185772144841717088475848583503652704725940495365024296188273144080700883718141666491792080050490419904738623412294337453638741797236416818664593522096227128626772037235232534252883546400940417521699369860087114428656957029841872866688628168603199355480353113433236044302691741506716183699157965193059392341396591716500262865912743534180910387826480424236589165560500934207842880177564017745987590947226666789514958202193703462896350575429647894266520097039060528922972371266593461124195462424543245432097191792797577101932850262252713082889216787410936280512228699921112489430632802056776416547256848211942929416861245281838039584829592509351818585930002062166525079267267335619320712559150436907530232832338313081656166749560388059780305599493480071612657377865703478747024908189716150019808885859037771758983617622259800185393393694926649507757781585643538236115531602396876045802636553640174379135962558948458586983233832932764735683801330291213835759254905970862379060794019913664352912314567241983376597267481246662472389901498203136141632911203343994099338314019960015005097956637071393092610365297790025821529013509784169583947143305326478784786940168749789849654357680624952747564805401940384664803671177509965623553486189000247930125772412966188184497844766447580435249221473576373616979208509239131236989853664355924016203994556894974703614168703125622235179603478802957672440851944408670169842301280256510307316043729670870040284518494768658214947227476472142607694151260426522313366456638447175677925372241139002148059856095568048541759059995970092205965167089197868625107730689575806696554923657196176937557569656395338633816031790785672468390767687322619231010781064331543091327899131495784820137421013198465529136124563143845491587732882878111313018421239443663823299963050865249005998276766452804422278642019403825034095665392213490995685405914419178511471569432929162145808526696321580616321235430560152515986470204711084644325353468815414035220114422021019777164844364419701408014974575694234385790912416584808366077809242074948898589712159911358000936839753770078586123982448978442548480295946730952202148456762314117026838121671583212990186813817680054467135009553243241049896646993466083034439907864290627156093498038479277925491114276621357680943223831655958427898037276986429073735004524766721898931898906069290782578000663286153655254556845868991299460133991115248281659842804976947034832570772972094070686194245693838112888978189863841512257520567747559537649976714716260424741057689034556052637059278254161522654640809122946487399686617481350283253492862825602241977431183721590340643482988158345526538717523731166778191870882101462397093168899774041538725110204358575457707285405530944062334502228869361949055590507186315882358071335748001829881957631554460486368920696836590971857106805565718996376398434017912119576206799148793919058170105375813817144504179365665046494435763405992438510162975090312625813201020240129705621512037584902749947856281475590988299464007100462646923205425789451684766060941134713143366541245643622197767105629862992972212998384296297377157327618399898462977132024979982182690423990819636612423487204055412566105279844585678528229365364798695125909168416433976942604144807498389025113010475807802908685879597489654685783491874673313726611826405692219094656676503193617708061004282035911621563203716930167446754415606739857010516483495635032394502505056361759568806809242011364382086314091630091105630007674743436989501911441791885519376129273702482178696983314922114543467274374943119905857809185248317187470418969670145866737093170421575037914563051955228118291995219973955184098072396928732060551945318754464222080193166099032177129036234199757235828783426529201593238053313374924040829319120014451683263777833774739161463142087686840422445002045189760454905441353681640638739971265497282130994194778900451472503131116851226145270916426111756022535779125898685278113189347840332275274893332276733916265610311085567479719675200266056675366436795127065165539300163890036667498278132150398563115076035714966654987051047950553023882500440400398440917117163211463020651052313247243799897123307686578329212684578502749165501752056823636539613118887212755787592336510127340120027962862985758339874222432946782763504148756437338002929589811455606861401399606557183958736114527742192202391660705694712851553399501286334980925219711360142001388078594956686248383849654804616610060537963992512604972461615439191936841439132302245588878597035886273738477295605171412813583431747662748941314574786882001618485465497481853139899323251946897575931854845812551280152149150480261526462467617315711993337268968479810774062669510520038454792367103078943591626249387606700308910593966739508828314663741868397393123343607726322926817299727316224951126113545641793246508722186503223986815047783912925048291267446761119277956723099340820422470411094139641085318848596298874286441250039433644359151983798373974871768586985515891611991425933924010469404814569871743898418465139535418351184813269499773215835708870971544581538612212719644222153382039386084748977586407822956283453702188636018707668857465839267910420300200167348011759675873197440109904406654231664283380724518568368271018501756193518031970736945440470559784259097628833400273127895833001778555953933345475684598491565627289325945884503466626252551765709322304455584121573884220066091840405935752014664411079973438371942386131439876063880733338038445735614862522974020541635024042024576672828973566715499403735784480652091445461498683139766738559055332066501447569488627105546252301413520093201303396954204058138128148633273540739461280741128185851761522027066156435304294075389695387662302597208698990226529395590159586331606403754302983721587858681360618198187151113166873491112330519631851777787951643625766551236396978684597507817973966892687766992345287621362353443341274499694099944149594446756042427766055833055404966498440723489042805419681044808948847152135511257714578976317114536036691130792196222698936319895492417662672733567433645220533956855985008244959517183071157017189768328651774698165214520293044639049303908854587741529751929676017859245231541105135661731791180036625005603186345290462207700564923122231251560182615060149559838900136817610572777088258759382606199051132465212448961322707869619781743222095479251302488866164065817749463450152400364172297778287695970611244052106231601260190446522344396362718392082396752531108886312637841355541274045383819793217306916103599937610769453312973704669640240995653678223679811905975807510017419774834092381072158047266195351400106645333397073989903453398532897850709576103778465776186325898479714196116125851117625142332572237196318770539165597627683609190907380791450664364678113383716371363924015436144904926263545865065652848487984013443134319549155921031544172294640448733818957740653636157891294735801030640149479072024628703661981638256142888736007391240546629005174915709398694135957365536821208245533752116606641778564849031108403549713462045771103519183087471956062271854191691105829775675114871410099177828767197418197117237620545711499574850976880296573347421336777601799235526583547684224951861659590048751095200252354127832600699323934407130297433538040837135844614172241203266243345540798218765739550323800060972216567058878457028391383178763143023280304437729231588586686297827472258019596447379072435076270287291902801229813979657603099011254674463074917241547269751400711532068749751041372091262247096996681872823846701982146749452786338467079528783640553930915777874494343951383704103979664612307164408634479374131197270608503922837374007958306822318309056359775702581158979531034210613820164895282889158356481341036811104768455024240911516886333657247103321618593765550284968624925731532717547788887494658067986323973232679038761871423952298700147929173244705759165182892475909647939769675408814540940844630672633539911376817359976610952588986707034767524376315541773010877994988729607673728124146590616830357755604855781867481121547440744155741175672317432838799018657893706901989843145311303544910821304468550609453778800251173572606672811100990206824311852141792629224470809927422808094168403157681227706282308427986927881237112652070323927354980650268462905139618548065862567754227378851983743431761480933925461578604359049399204851678407190501757599993077793809092797330751405597177229324104362480191726149378820659213201382970889749669926939789010094542075471601500521701484842091464809146487236826346555493518649441405474878374456356751471309504534044699063338224885563014380773610501216475873865039068262085023252283858916942951576037308997784427538858759680270773052155468740812813097450781718902284611488429802691151133518881749612103845405538508904918604001116667591316166499432652227918882597856626068162334859333919974117454747196824473791434573996994088501616347963326669241692689388785583734012010715334513269521846111456961371695330057144265739822859721823476481102234938985713740419342423983484575291484108589100766834532948546168528117605853564186268923038365752469487632406622142313294468585578886209646398801707457193873370498742021098108690709523888878821032960928777825455916444609132627936566048758694109759385024957833428108946318613626577206294366287619265465685141847089963796455850197300507577486097156741568087179394912588186363306572203998734349444044339213376655906573766206321936710309725653842368935443500311069566999648080418604380139280729472912633683886861801992980513773206415300709912415250475473137376787123590984355138517398225319521493205015446972254531715090892542425703036338814292796001710330468844090546633670840367315932080328761726679656883040495212081024182739703462772464323533530970010560010943733684048428518012902680241132454002898716909936785860588649807378812046833280001057906294086213921731463987757759840056325525091454150301922302819064634678773560069380892575526767990227881977447937095006272698762593533433918710418918324806619731893666426844909251661772888784930471316488657132852410579100827357704057966640984915393652909129768527288228315773327981027823204637580124509746860205641995621511489627519327747824399839500117486416097635623262022021628688257831245352896069072142947129319735469603112292889038712456778631983824833630540109572475160427876115880395223604794360549474311706291697929766617111717320877600537278616724055558857945613477062624001655886228017734482525061359732969441077461519306262094242008116418214248785325498893659668626156573442915131337034795723803961161418678788789368598047744435801273707491152180024704021168637023648372486086244341636710431699785485422668168434712327709246277661976548668578076981105239483941434659127089119083958931438352325503441355285478746788707078366705910366234387262310711468975075948341691808709221646259224386362950339581562412073226062412920128579407906245773575424598403449477559348749631734136182651325760926767851204493781479633034769290295565357974416993414955793251547310337029841081280284070479593448978178193023973785703802431296774340901757996598361690006933600866753819286522206309532299699151243133897916903279217495347402762695658381817031089396304852646270340365474338557647424442578638814087766931595154586491468219402315639905665359292417959306175074203541574865782904381264108097305501613678641328536630699027567596608376226895328524192438321556946964153290039186565444876442241619286230191453294104934539794154833967769067682343585570869441439220712846191858998248956775972120842495464692064620700412942979634212616632182354165007305127715687012411720036569199597144961092352170438558299857057706941772065262926279288314151957537080977681417648924761932581498999180580981673625688043942095147254953459309324632649352977536981815781820785133937417122570726789665243263149596173930590881743887176570351663708619771675805729273408668001769583653901264551311046626195333502116335936526969696297568247056518993982705113333284693805609179080528140231124015954285545256608960820925508418169892996034879949278349056414317865231728443934342094509915360025422481197741860227022560806161422732601233256701435385171112502544411465492311950520498337553804585931146277339580436416890798966302890103114395013325670503251599622649944236834758735873558792271489944166660928176678160977632772728978757155614593341656628367550487339711445692209233965433562450137552207715714784743931608308843950053800745613872362086852286993245445340825798016151670914074500638072750483836512770231771594804217999317683337724145159558384891638582214826239915984589784980400716500200755850737791054580805255416885794106159140720391087704584723967370231212942787138801492232209896616787569403232123942185340436339699006423744376975183862042994102706378813145519604668978614309693147219646092267801412303826021373595975130810809642659906807553699453036033956381653112284858748165303232821261709650537204474833660485199274122971949168473822966994495796288673656269182155623807128275302164960172298599943070005261275233472104259576314041435309594425963706397166395685182308072940267322610549103282933723231819626526632257854618929380329604356806197608615303995476208800882972650095541932111315138523949746818980800903550316315299063727647753161876958452602552757590440726007208020861122140551889491774381938239149736386611942836968536581979999747017343808539065446489060534226431514647213590766604655519734300765315559730466671780315600212725972464629164732679909736739917319820171426223363062081183858516628056488818922367375979878616973250935545505501541752384185047520479249606949273219257953259280551138339623142233389569451725241741846707097763313612588549061100008934605919441174598706626784621812008969754111475827357590476146951568251586887128321238638054676709776533147447065873618921870861815246002275770882569026976187450078131032997554722206451406774433089795641882421944067323957088008236824140923016585072034762318256421136127999033857809119378022192177906549829099352569046564918743952359626581557812075399803656897085574465063694461727915044010959413010109552040791810858872967309297669424653439327834648572731238145645150229021163549203566930693187411396471947042484568067565632855523705547833091409139593096138987940415071585917144631182317927480224074422059601226210499114828760449446308312880328419812568804518181154303663542657368686479699540732437818239119508267535700059464242097258002052584948624471686472497517141039633323134825676708586923681921201148438952761630694667848975625431728647838079325038059948003555048688459548914506968428285649236807417476573449381648329300621215745142917988062703935041222270892314649240150094240249995563602003302749341414505071779705495437031642226144702472452052057480982424543324837419734072146254359586010829748685889800429569664914935968523466381370764888644159987864346035769682750141288546629249196450183081857631458288366542129017389476993005677941260355032702036753805301022347725863324068720843854979349393319581541966117624905491868310560659894505367178061256240796317029894582209631531862863313187095708317655588578981709556454629984602505815313283175459861981906641604228896904260790459300474863024521687414447052989936437501816976278512510925593802377354979787158781021913503144259734266511920662602055538263907193848178641819198383428562581538837300493357050071230348949544981014112042990333470398045668529260631962730298300669478710858005784788948581531372055432582404508739040132563660905562885895620149928184143881840501344342493865501586917079700906758898370149999383701472420572915792262710339536964517913707309365187498489138212728193027307226927488155327280090178695486346733864565393459295586322598147435085597093480837105747544120730641789577556798402147727578030510629812957508293984820244633808925916779845731187097378718487172191378242378734078290446786816921746805625986154409663377838105324648695963508720543098356192972398989645797180278810492584108147472388674255214784054526373549252159460334564704068265676737116334397766671942732422222100431766639340760048676450694520166472532067682015698880063810407226567791956211063000516481633178153451597544236586282195783229026190330110868367721325721407365627187350576900141049141341449082386426666029559744122385710142207606397032677143155743958801438949062537906758313654699784451595888608880691745172933866417614943548022314298604522181205116113861843944593914452358820661997518260758901286365752264317147276758475904819056905926213426041557533603918750835568325832354978042061994830367836414567891487087319185970509407833280051185012960022023174267447126107742786209127014533092850919536031948446385880287371999324457971564962720257901127316445435372384861797525207205726013275509298228048061023466259769639582399939690431263002073191399573146197780569215509882671005080129539303587059484254635259166423969918178100048578331826800492061289021222069473840775042549138314975120960340039625541311451640789702358800390808943899974582510776086938532528428809658720239256117460242722904069427180811343235495581071136427295554557652744967857965091341893239115186815989905014148509900383883629648475857997655079750249807675888030491784637172221941075038100219724718374998680776946755756488493433680665629252086722559649667754822587534851052356638495324985616088969242347808531788132435999869356154916798817728852989622033445849277934272226270276556118585098948848179429509288169587923869769678774189422426570497778026558127251775930679322750167977460388289968030331429856727921511379409974533358271503040152554833812109627233059162015297834418184312242723353182340268690136934859400283504177931847957543668152755695736609714335721262052949506157873803647824650655712079000134033764431448975822568747610171058466955666986899154706283572438489179231419673942759524129046380228607087990673406350674345390477518809883092124669535923039141217262901142464243243433212556820807695918408106435156430413503380476167079046846959273701262109122497349611875830761145825753571332280866682274205766088380682426811279131592773219553486981764774988678520076623407756661140937222140923645794478058975701656421705446014233502263052372815063042707251807858660407496076461839878640803383564134406951695161930592153750269002111489774577735858631520130452896863534016829796037089856383704021164002748982298062837638034203074560863128941027750607189059971327596475223111156154415672832893938621796429815452775184998784811591472883115317400648063916551614776871143800253285601648604184479842531834882265360919917030354593521477907201442164168120052062935263620077816541991653939522493173236802219929328918048683474875611361420027218209110065488045297492945787647013217362587451544389676317749817865837215273200088372383858526522599086500265672569067501428432678125200350771365619724909807779985390496308218746675483165962171615716018914202309234052348586019518030277414206677902798070853172344058404725698720359774428006548664196598820975320784323843067172031550204867604938557892429116516597732217529751723469274667010379253218299058352166317044194148229163894855347213234716442139698583713422577408841588564392041721626651034021163913505467196712556792585660481943091826402226968387356513770183114171370186088372330651127582475285679745707659070995613167709602066140534288716064944738360209734169115641075237503762302405047314517826378403511811048934595501899272067812611941914842256610956003765297911283811877774724463585923610826730923915536354352073173585043082788372817246456681813432150125306654571605165508265794697065945637801329090369532930446635482902450362760523217173679944750016327091459052557088664794863300208802314635474585328720402752019935294621880967885126932575929120978610251663656614801082365449280087287190248336580971414432461607390141818463088209691653731022212191520144897153529812601465316270019455548052324820036562799814623295521265771152692188038840355252716674821485045585200538318349893347416145932446109165227843724024876829089505232453678601510197297978039251999733929563881484359348061830569318411694797683535722782028876506719255528671921185884581389097854395397202767568091264482867850163880509566814865045251599916749529000073964500811106826298297570427708724584077200117356295681820292354361042138106017981885041233083139307812442555051666286105722164453674717029243773773228380569606263653035545786681656033535511564458292872539749899482660239024745593890222514880240018823441050700501307644846772042304984829785677177384853802587166379041252955301159362651670823502199662070490631235018404114100163979002385560066602529383449465694182402690088010997778378127473161728042994619485482948709195135951530051697672027239160028262733971166471714262290691108426586085039932094240592586627260034426101585974551479569165457736834691514665869583698306112166741688527570175112654241051575552220783455200842362871044449456884043894799944780903329394131206153998086592455566444965347678920179007692326656029370191505733822932534229096586279356470375502900462915309617756026452963647258023668041768293988468501447117459523329261478124744445034476891486857683732690340732588841265846554472214068375881139882488371808940586029326070939804623666488427218608773265421271051812778027758461038999005952534801233786144034669819459798418897434559681598512414152785812104919858353772402804378605369467893391004280187477442814151931261437633170900282875410989368052086550962570789569041584582751731149813565321931995966681487771617714166212973829171374580961582348511889195576986442702838888956347861442010480723682525738992864642371464778610902625318569179687868807930518697945540674342195434682688285420654052338456273528683762980384256134646167784651142417951525593581736128504995783945101620558604341108295199881497206005845837791068080245656444658420326428141571048591804961181509104920068692043560680512784664195158007208342687032512758390788600121107225594983717156947131999363636211124607851984150222696016220171154385697228654806737734097198820824531482742206048260830774422447955042868892713046191169024613406526476816696115009550714078986398670929113098646265023743442152535674341378751400377179029351284178547229983812020760204141031306354388414562644232594572775936835634395139445050577068000493696518271931150703401082143463433905177936387590975930137202149738124545203159532401516355018683400059413799697726675062237097924753834179101051034414357992770376410463713523889135338733604852122485139953449329231913435863083749148757225090959276414816851063798436573928428527062141048415867377202799486594799453024665517111046659768886159948305420089635357415023113599189549243002604011251528846237701032606420237079056020262372201593381846665494933480293564289530379158795298586950182211351435397863485890609865947871689550203769821290033677215985637420685369678045379588054852889636618681442775887209722518447933403775672038576754834274931979935606598460043341672336095588141001420685100677462080157395309396049993081811195497593994627103593399940067432415187700146199322099760290353086026988618456440677181484314170784815147223794393333469484154387320836937300592085998545805277581905324529740291187449633967443688267130102944282732470059080189778731295585562456532985427576901981623096059413671922024081744156926906228921952716357794451643928216903989105769238581129644370191226337945466352594810202878106595642630159636795311422892208634238192022343524143090952402771883208965451760337127573819744898375961010022313023453077802148816318324224601694799085628907630844291638732446467729239147362617285988219959483319587604466212359483021620371138552058495159357961579796374747908838580935954898946102924320369369777503161155958724536369825742097890397037889130188490378151795637438599302593230231737299033493679693808171660804872088822059166396925337836346303967438448126065487005886353818771434261349337915036954204568061748011122704777567871495645827681188760668160375643018946592975837367904434850039771252587524068474301665203142529370502727212113025772130946159213395954545441101019260351917492904185547163193183634955786145650842030208086933289978278476276472336320930768375809404236802395169564262691690725879228089068016973652341457593903983042764470520172198876392081467746931738551951098063862805567394900731522031766558048829991725933039389383738502355356692167788033362841747137974415419484830664093524947274156246377830700338850062224031672293298229861906244671981901868259896869537065241291341460814984523760896979940213765103885628291005179366934028721588183626258748083054388195354720797358895036907658214791137289210529179637263641130641827609641609107533838376386975190034542420021622364693589205802364020567590064892196378130328152000067083597952745002592482728472306587822563647995674458263848715992441692654551505532077509704072636016769112707310723428924563492920655237954221439357430153491684557734478509005179550002333742731426550248790125808735234055576469600716892328799788203347227550458140681213070089287033851607458216523910967747589507099323866219785007480590549792444484243791430951941104126261711472526279066276093526633626987751555738104700155094140020658474275551066879356101384374090949661062275202300992434506215246206156281592999976849995790169585831801482214914105062732364342144572610672769803400649900001584520301863558241186376402542843476736531300091256800449552678097758276354178428426811399652934335388476483504648956991182053193107939048696262835345444883536969425100762867757416827216136339080091408472066306916205865467307930283822563260989211627977447191638105352577632804844709100365468298553793811875142508349478114240528870665880811168060504710276247641561412495960288914339347260836645726456642288816520007510377866595307365857282279846725662270202340885489507826517071998217806295655059906527613010678909883111524431708832014976603105533688887044323528416047669047615111063664952168751929485537478229191255537282326410067144720693752771347298385426853594998198114368227579567459453454600680897336641235468966220035041647085512219700325691031641710448122911167439334715348141831322290656368426075306294230329977603843277257753550918889511167961864625227158617285330894090858770203666717377994424265277685134996660842640566948676127285932983398847853498283659398192173701515484025111725585111525927871249776313058860682711796887528656878066683683872578275485099966191300103394209196762842366768111262027260011612679295498878177077841426691807351938766732005634820906927323962434076203106529953363518647867048576799871305750583527551462593408691483764545572672785728375163706024911006684828723010172756701153068840466755935529276680112980055388173660151832702566260401255690836933415989012650801995879313827642734198214930766513126648586551530369835506790968618518950092989063029327282302843136530024407995498232501669953277027849721601377001544398458695049101401876470523546613228180130225207571844868856233155807351382117933787819398845324975403925597476667754689225201975527759368000320789339306983244484839909941761716377606955574979751843031878733157065026311313156962667971795677053380060078206205635298880837723632536255290706215001843275386738164703148601225707569530754832135048915902536261463982001450156859098723302989931505285889691479568286962017778772057146244327786911688826202542960285027680249095838498124161133877289062768096514527746963848238857411713036805312357574351410879051048208862452053694673024927625670316069815266149706883982871899627206822184141750101617839002824063275961181865758017537973605154994012653109451090824338314087042434968474963603268934533181881987316656513389196560124661871886099495176578112481929914106085356289916208476815835323423630373294221499801795735077133529374559591254875142390522458262369544654944536601334455882292252453828041171522903227779200548771981156499101907916719574743313480567862641242048953373796039951582515926135827772345861611810874804489729301150784016549968025025546193689598418742769042092120255387087555400498517589810350388805120191588450538779732749157656836385433198783822416637516741220598552062441287445953483485085976374254883347726861557522258850174370457665920548810781617143641704986183944230262460424826361452758722188025185187801980282237340628593938994078349582230677775724299353069910216199851940241471014107779948634130527493292331440110237344747651049578518254388163759741114992324708045540395158643723857059165274531291750538356322078910935586242042338374093369626058792746599054598841650821958320906006868973473757230796783214528979606653841330622610970818801454149455012802137956264855770014080875356646004748793087255237938864409557217917646473463390014290537794297294876487473790027676685552668168736120643913159922424891915527315360324719086329924579992893198609689932734729263532568980869112598476504551541853336666877317788169949299167703609023653413728615016026154890033967047103959318743727968823393119920286707720573087566557459754437877966380177539517832738480495720737326320251691673512869059463311149897289554100986503152522059523634288482400582249725060083473073464940673172936462277694315580129596781697010174440120905466706570392460633659166138140077260724273283695393692801849439960542107192878051800182284081734238620244346167652069001092597718358186173202170060746234386902847970858460564957318000695084301900818156036186055504768963696904703188302260647757470193929935210616615395516106250903879636102816920610133335112610472659338376367461278615983961288961629341034164091950715790972525581703260400480418986300302084628572349694930608982843257994992512803350652698161533275774802359374152285074799513180845525860601370802731634326963020634070360514165781353802447482770429933789682157248927532276758876260745880016763222248108635034789415316128734593751382513702853763172996253296180285599413515237154666097517314704000258784367113163695547103767851172330418134109843951006793486347894515850608211663686423321676656685698234860455299622104220889204021391153875215221803148141762641763959332585302909692763352016432264096284691650287108633355862951050135543045282604707055934727265333204861979932258542052398345704506605070538454582921972175362013088493141322598318686021868818083476011325882740871831830470860490619341287998178650503162557911959254722997717137548649390713840981635874908293357803845598835345720372231150940494703076566710269427856398721784106116074067486213860409790161185014936382819475745488810997696587453188205719787439144738061389977742264820197029998199585172325193794476146490644560333304491213941675870373819254680236901967374816901671299733608533543299578615862294381906463470474568666336063676260496820480328324745758710927444600957962230052606745423377667690096228789514179381293424119894725843641402187816967831732031429062094831509960858691177466138111438606010083779946748577678298175227064745201315984200582917630770901085800707446192571369020040769000738101306733324381439007700448733515792142067375679859226221784330531102440830200856107062112274662564594613490120275422752512103677040067430533861467049958126877797904663576017947011775523204917274890050964691829086808185740028385952436399808289558341501927130581732934985776211676866076033785968436970139389217576784898106594362240229507070295535330536263257950681648221488595391485716611922354544819526116950645746579927248337523786985755502572938670859085820784136638340401602178502640207891205850654325757194715782370722778753631903864534911684628184408871970380150308235855121230866953686565080640630251335869873214178776395138495399416439544890880194646040449324247440069241192618138658177968825073196917379980473112377923646224730241710975675743787145182065060528940020076600149451631843710655759904271876416854083461567940748139937820205158882550554315090556077168373156258285721593725151086043158132145778643547214587375061261197724727466578673555380073475355996659327088917838425253712732030049345477187217838470347891452903254813751511619984255322764985525270274250793621835857610490147922391919561138306280480614944922701695069719347520400684395613983055882586491569406833307115048565909245443164597308807182221765500977800251497265887747736681502461631957590048080265849024534757862228754712891677476662305717024303375061448516553883579259509801842644051761274572238399850710535977545860260088324981046412248404181445472643548009164919881248660031721062654449600014290867982955115804431631933720194614895460040031358720868734425378081777029522729251100126767446032700070073703896615411423279757129678774706649139770319470319986398319632431599368693203864296628275339646442910119018109470206202659630547273607294386186905681050692860044357334487341321335852888843651579326760520584886525301159359117798116083792840027276923984530846530797382045240521905330974021362561911663274620474319258837711855582067351490410680073397313850162418173397474791431673319317655215383029350735017241547896279454381513081216479432393728360988797994975564811636810964192865042381335309907457393600586653700937978029702960194669751449999844643959276147280112272076481753748843851436432738856620651736784564576031574901100468378935981032121487837415176693343030412194998568410508900454599271936501844499198626139379641843029911446076313907472954294830523645321749253820598287237239413218821983049331956191197894266487460994213686015752759029736730296087833033705336522953777285547636539237227720586330348021720767642909166056189946532100490823124727581454982454046529213874226179544347808079200820202574797054039411317350129105969002720889888359646628327834693458100072631525782829213824304673522941963118407042339256627526667493294566019009412545629361748116563414223527410825937933693175984444874214384732912297863905655700356690187108395569004388606327949590418669269095254225824404171077505217679218910217731451819555964165644591043907602996936522682500051694590559229530381346945556591613567647390315180440614083949133414274583489386569034971038467568762728347532450919712749188434049393439539661000509177410135552431343201634860751453652052879740191241560394612100972677150459756170983008160890425859546097945368017494600287017181777922951818462658965236442490047610063585881715308361666089814747541982545685195185302173342303945698208403264831926570224442992620858658082273955679762380553293113097451599755552002334798910657432084404051165308379198393089312040104746365252376210087022159231418035362489561617285569902571559196769430003491654877875927804707793699503265673149104342112203185138145099464409237524638971019643313052743368009651449047954282775630570955441596538976938957015093095697637503254758103372041837375475542592777724077260211049243281111598184455748226929262433405144884084077504573756544787325673493467895260188284152171821470355789686754882335887814137189049910831848342414281435345855715967156680862536320089376219331735035588671053605580967883718389631820158959274246626132836749070651884199034569662638305076443549406645886367713260786721463671323167039771786541093740496909818383761228180092087825658168380789787713318177035296350660634917935952611113932756413600772286592817268796152307096915083298745724251775129615790366583414107112544807155503441521190488854982981808055543892931041095831056840715111211677467963220709225031979039069455121815993215190877437916932585330936196138501865087947668571016524876250340780512579773011394307021770771211958808179923694589400665120157879923968156624255139753672051489218625440153993932796260749308961528572594522280427433139309962492803228110604046606128040572271975713607778190475043376940320860964643294589060637739682848406140307600672627375241753314908228650570285914464710777435000761630965709807650801260614417838255916120390537989993717391103670363849520824866524481079497695358777877017474436503453844963478552412139472409840797250622120229727531174801731798143627088963428719543023940795964815603481000693463802485881011163765043571259532266895172665439984065874991222515530971050973536258436987966152275495208017523949962079603451666088113601041390849974113735995254406683115182239542886539326641965719217405423809121370946776525924016702342698057151191812196968842625094165213578226332302825865844909530515750179371476749838498594791267445030936696803326142718166815655668105483730550205213235581148977696674989929373527500509497142559285399002620574632992518130450500956128402857229086667588901247636209098258246456610613277671610751778717554847639269029630693458808090222501570883752784120985669391443974758386924609329535483537398007670773248417394136369537658985482708081940390866930755317836003072588797114237658999999229669476515810417356133762704713475458009073442200182577065323272380023197440822910866574856566272352086890426822329881310880110218476635152820218548614073130474495821328387892009495270913852612815345601701626202134826584262215640278638453032009463535557362778743887461021074462792627553721961590208650568579513148466629512698783582539190802394506155313889650423249797864381945426965757635119634150715157852941016953192322100489548980891311021794043287877728188437452058379927380709400695953155730252627900644024575837771102165450381011095287298840705626666696610378334066886021411303755728769218217227388126634573545550758901426698069620092614968765901673102005078389147534060581135118624491123081397996803072465425263745708534517545960022609837144725424173673959654587706238242986377367185905382047590465638841510305296363641158736646177221430708352963456374705205602918501090203058099647054965940120288378218404504332905321899094961103412090856506006964063221449929225983828076424119486519565833568646596737129927320688193815705324612903001316123503965360069851403942566288183438792919816997135909923313041245641555412890532790726500812964050410073819517668316234373705619333485110669221110759477869990479256515251301409518131040990642985496091974274921820005512963895843164106927212415478149076393843624568271382331868064225823526317598414469637101701412194790186370425547228997833675814994033917738418770614685845148091933414250404545293072906085846463721663669694063921134266433404034288264931584649554936680940395643194539482075943833851449279870271997991532256454976657066470255905262733308721778384021186683327697323926704751976594238710751419359025791394100861579697948468241511002017181606970515122368516629129182420579521581995348436193003222049241659516177696505733849573744998926765697600733255466022572419046836071413121909873354828853593247397974088616704049935063336931551778618625082251319506769899730842949236759752057560789855156159546440775727493059157166795550810245808544956998531843787106912586130457079569405810867524844749698404567180621642746883836297106104930892936437597371941578170772301348220043381603603052657144385958012562858464728806242560716570174790613705734756524987313389322496712450677806794082793604907858168966071088507209676213049907119652766985733645556663675198302768308866638427420923502872933969114043821682045640436556069239903531662282994155078330974789419440706676308011904455914072027634744509238464292501955340821550884194444880529407709452482643015432046763048555150200348644889801148369790708455911661279606146426522277319564111015609560780542676487311217605012374653541380055423162320732354289819239112016112994461784046233507806607072816527388521679159116577755069865414140333843906740705113450726926266672540854563836879484491615180035613992812816153821556558319750803380092296303590990476133933779726232291868043527308372315916003481327294039923607133064092006776788650292009172276723428267532319111248466131260855070593862216845489636471155564434192839456668169529539597790209563069001868254429483612538693050155232246353168825380619003114049623416258543217224780229543766756442823937479410035756105626216640615367961304769992806702400490951067701419128422212525463807951159335394368744872612913165430473612649274554300704455617881847817861646066415723697851930401528124794720629202112474206491790598540998862290137176611178684500666591068468245444861666105872375280605963410567335636345644656789642041562677606385262732883742746419132467602224795395448694824279864025615635197993400798147762621691902250761801465757547111570931376499204121587903131171334668844272661166585475055957293604264707546599850279803103705348440963019811644391539736973790914310070943721591800252959648993420223896902552275594336672160657260568919915594264384056769310209524212538885239458959078945423181248424051273476216779372110592689176547142313009347297663037298874720675025627715142494874350402450749469710068989984062980212062751207348595802318161892403823111285177197526689535643368020269034417243778902962292808156787665641804901215327919240213329969253155906475266175542584441373289055696838235800939117080494574998736019868011323220232061282228747653697939357947218961933382240861114903733933243859845005070775547096506976108556943850072108834732529986000184039460575500770420335521785103410543378564761131048753758050232793260876968375582219203904348132179792941795632659424164017949604945635447256637155669145276691368606837177547987887194806103649060674570822144412433234033245269016537368996738005218139599319351831062006789015090465328050953420928061866593508309741108351295272962875335264026857424952151986573965808151244928069556428566776115838296290584822331214810096817218391359689385281542252212985788045917976177525299002577785365575736465434686475934292105519219397698300855800109461192230110032780529989020914780361059464933260013175734242746211919460210404041038028371275997799887187185581212115795867155437411277265738657406134311658983679910334549465942110781627633161473688333592442871601509433856688102634656276294501639011492672958841921255466545212996924489410567631821351581014330761512892466406228518404807467001513134276010717479241903740769272161223998957709585185771886515423517003052078810415650843162756149584249341034084435503407821287762218395858636520871788519147495532448020484483870988358888374483677393472965513795977703045343945097174523945296405291365702716439985622711251178888167998495710081951209998762310946610871545163301020729635656761367399331858547650585990257430945576354867362822409259973276630921472636790218629665843961621856344887673130218383641862834856621433950445536177712429345456371394731582298942654713353370757580422045411281527020728205285434488885139183928240805521420753059129358861913423425351758764276484535210623822887958707871366664078841765984321140481177686254175864615870145695326307722960390145849262746189162026377796370550909391441663545150349953959530364439287113988887669174254940822784297227395338322210485883498431954014374282316652077250876803446606780006844159328484984789629243180730733928029495938020025552294576352107522164468981483173765689259398073785670649968740590756204760712461495859027462400480352620882192728969143087527238322197148383981556835905973479813592941416196157030624905549956491189858115219828159148636951826767396181325668405300900482087725771623538013577506767376316043024499800296140872685555546284913012077356620846016625895132795123883525796504978788286829911004892368364299858619886480890618640928487110708592502108341245177727569541913740408993122542926630953952165135187886279746502246091377761143569563965332686658157594560797864316754582359660331063800262773731344924484236351928232677601662088437189912503936317556437598240419598225659923778249563067206473223436404145911272130130647209651073362314820900495202156585826348117907826693378419986932019316188676229039476606091615992805958835136645552286752371107347520957679589638343792419081542910724749032667112460108970569370083339940729432927009251487676672463240011135228456982913063786283334930225903506601527495235338753595905138578740217336336684565396687410263288755566896518536468046917046171543387331836516175011781743413748073270367353849994864670867382978049695290360965060187882382452457167608042573789114349948662765762947559086226529394868006811786502619260606769304003265191991452916136185073125489574926659292332990065890612640134382391492374155037098048907596235418105764354026075850643750867399094543321635568362188019456514752258992017540390317697170290615844088297455773766602157220528060547578970673917362683828195904458620004463575996928138898981997985144948961476008585641562141851983977972011911395456882036786509313682154773880938850611908462316234553029403367944946359452477056817159893447277283631315910295700522039530242339352128493395913020860297774123535701145847466217897430677086315050849548685531522750856704688987401870076467283281129984993630896315294114330684244608496076644996856838735213979597951126071940531853466464395467034285956714913162980250247856066963503241128538327591094698918898753329605076542947475589287174674013401791844091919198070317943971656506605643322765586069390592140700700499503313295801835445131702686205154806847984466285849797205480732507716100039155962689321695178364616902058970713783922954746670651354127702849236721050634974386230202520793704018855384571783097517284563843141763720378199686934659917890102375782171011381467661773354748211437730828868822263222780097563740687749846690034967555421725240715529298431095855512338351630740289476742274390468637508388338081931407114564500247592613495278101047834497585719102278687518768753270047780588639937123622316757861474794877278489103762430633222138324232124398989551587489604996798793371374824542414212470081129300965909795948182523011544832263854316307458886205548900588313252184395777139404321881249412587110402140377962774760148005035619377559783534772859747350264004475063423240671059577821616511455113354318990964358152022384731948402138652143319044163713209497600098549885553763515244134729852770902307015192652709580368622628112652403964054252738488144250407414778904167342858941358846521244898948474203416307775899198629158845875178968983684648860788062305696164752089757940428213724899611730652309765187220019234791438592412320548610056992975626062680477624540206889916179213318983494195054063641485334387709159054364022742357218967174207162045330025208608949176234422029654912438607231846637365310541815212669622543238053898563207678400390380940708949478100469667036507606743199590600396639052143678304479139559943139195669895402942627315904976799878866547585022974218234573277784431926858079130084279768314164553027347687237437447965981974718042816323488633065462423025416514561848588060138179617108193340398516302502521613416911212150797171538038346873480137262981603697146784735892551140064405904979781277236533983299687121868803626232876308688149363526622627407308445745087110387132449363389935360034041127991918737565188505697577096268944103820720995225719327265576573229162280476465947723726145574171435176430801463175742393970559711604669140149227536043743316859409889760193954756927427969090776683406482225057988157291772485006236957604759560217883567483665764612811488543019157057523384558329295082612908409556777015924041461558164744385904226445289350443647267813269441018049670079577000704329425871818412606556391758538989144983946754576574262981657309996296372173970498459301137156435743910103978033607459976111829577128110739743704743812325929613089199328805346407112907179298823284059650045194388080413457685274373589735736725573746877232896372141965454075881333984586839254355125335003915763222116007170306467575571171680070139673931527785496293491619830844549131176968677498571413295142759096154204231954671573545472445382932044543522185231442939836106266757917516442450734778437378486982717706956758024287100312489926541848192936597119444680174458704914702543675200948976968737165071274298412898202959066504031924577475078846442828247689498112447094195679019998175624964179152114439778428654828446449673072568287123572938047635570823548557133217764336999996088298520746952327979947869156354573026496298791917816326379532906551387966976266649345527102692603865109293871435232514312679649373734647616121677176479191914871694053123815769541993433068590248249837930470148969996364705715858314847408579917039843734637069989174587887460167975375971543392504258396585220389697994031369601014107576870024374262854164976829964557130462796854585941965084450011143743133746452104158690395270236727964642567008267500944378472315266760376127983702721043622364556824141450275766357197264553507524240312383580120817694645027959475688011520602047966774645971014491561592852840987132057827918182166829479702758755483393660046958013246132774208575773260541565609264777280113795544072394786509517050838125803431440792478274814630255330859851408649737554295695540172518631146796905688315478155669566728854279850311106114202031012179655228411151144053643155211760805617460817503444450288461615718091553430932505209158778586219520572695543503857379256266826105367861187258622367932049539260725356472636894167453182773452661673891501731872973658606798471758862132541905388378373658519538792684325446065995786401089153884972194299170246994016677817082037519406615758968035591846369824435441664576155761552124061276714921790588299943206633954484951617868549701001311699175706117692302688837071311544622747042553123529889172932079742221567780091352797302494454342834544007807165218572116324762978594802837403057909906024035530343476069658743725446451167212041688430255300864469182999827697775616242422499598520072418934996993941421214378537369326007653275203393825251685798733342654714805167467705355682423908528563376009689418996963475804374449012427931020288147070983761750760302398578064882485911360920391283008716605682556877350335706090569218642212541914226034290361526260593941663835504606784885068899504340327132756286867300202721928376957553984990124351459634464346554600131721287092795942038935403177494438034582452035825599033443452104340861233895074391877230209424822129762459647316466430604384596927344091008111029915429943267959867268655088875642730013380533964617474470851353166014205802438009779321941009634556005237651694356807605078867104973615930097145517834899687092979961449004661372008930396818176094480926834484873473798503492391124508415076964212477681874293308522853486104486201491957220648387178004509585644984232457353174929996341834782134561736262175110891981050284823906540929221957317489984886133102076481971535673600264306172855113148742782371836648150817366252657376898971618886013706207565130359829799744911198664422270353066441168390330844373141309415812219883607261739473126741817803886465370906234281392130890608221528856965246173189804881206244452906738103247828409822259309457783905632528065233138448907890755747102569419094810265311810537344524802755616108016933309986302943074042612130083761041544906961659895271379650814324333844093033658553211009756772139606543485860946746824603497695886236247167185959930229024752600164636404739285651006235029143690104348089316250704644225541193144887732221885111024649867006084710259478773791008137046194363581564675324508417273892367854677714651762113529823789930148305606643186388657698883105121195311560998758904725926425188469775198364602319010842036758192515835723368167017890928529067590896900943058554150297100025735441499301177610851521628169519368817925538783584773116509204801241673698255701458887698957551155242803949925226523593944621352485096669348920489116806277348549603988086020222916196848398537991947038588161070750254683817984121918039116821393277074577482987112270312382775019540333513622067043164378853321982181021218968784302420058134286155134806073456533216856476054925754638217638026872189207026492022625634153481533381157787736051775017001315567543767415419873888500386201223389892602351067964173485077735519866540015082216494053211436336271757871571213827208295220121087065710468729060298405188895831151465997753940812795041804518809269892471140613347914909343211434466773431537377035886187760332223476389276568574652318014084837616556200445735879778641424875417311721974474125671263507772760922526970918705768955395126585176355872322189487378443972046583720680145500336697965801099303643204431744228831823757791244381300714822639722301878840404373940422461510997372121602461813060070629640682379084700745531344804869269748460716491765332962130662763331199023028025299146219275738076804360492183216577364824401858479579630811025945650298544511922072717905733906776209304018284438355548936589721172648414117622192606396833354061873314287233637092452724693662658943753262500398282297895016021615398972175776020160170167931508369823122317885435298419669047640279114000431761204536187931416883666222825902124927635311691139340307902327153285480035041164148912430141231765004110605980156529170430726887457155290460420378571297130695107165527850602347905933393017898892835905137336016437356102350575747461043691723931195627445966579584252476186194841390059278476218730362844810659865398589270370117822924385942384078875780871126115103653357639053782201715587970067975660845393243928798264016614092008430683442739845192588914620044284034129251905919893701548092261481598674459105846743116951476332662335189641342073616976366134486675161125158005326833508903580050375285740024003639802041141263782170521631843335079062416278380250142089361161695531097973248433275178101587607466102624951372187813990219379574652625701488541086044020666341660080227749922905676146590953974071914870628808318783334256788371466158045310924352557000176856386154165373624664165625287450373140752062658812971773086248939252606962811808350444786094393651970339500597755511728682283053414765766265646629335815730969901217739659997950868061271979125872260772323913893560406760394551254462364084844854386599881485111345858997103711184812024568932905332581845446019587864740561379010082411800625765189035984017082330994442822615690553324281168047330824587961702472152610649263232187453905498128799718953832838601213011432535902139778655512867812619839428175561670747369529121762141448192432111451939951315941258872754764310591901016157811860087852350271561447531643614402855612437828718909272364911774132040884239967307798972766187772828026752868718801789994919446269270441443481231172502032300284113853649971055153910445297294905402928754411811507306624098322699528311673633027611231433100999249552222973993582564981379644342038165227303879027759112633915152037903342890215399387301902972227742736278936146250141190581233328580860838175836241033809539682480674356655803392082906687180076086635005096012420008081907983952583473397680192548774384766994480020963872658106413556727480591315189294588010278983406319755165172912744171221986368930025292134724793241406276184253756992945229011325847619646492365394591964199938408542196553084855478204693968892883502217120313342820520055356597372786152607368920076406905808845305520963191272343690907902782836916186280230977052138101677236330959542284244268970119524488439722857062546647131553559890879482509787336031742494267893016586898777283746972386421098230797550021893074672424616180987747494817211750926444404563727989435037606706114947446095804425870893807228751535238680810496467842188964333268047225014288698974177440047577027295153022177853312554808222599703173139075112917817785730716554388797761200888902321135791267311503717205319901908960484306793404884754812007364368595430976880919498838655895963603564525318719496317360808771658959577518182029544384165512293450775673411164333653927410351969420588202643132661885138466250093501847467108143646727240573548284949929715811831158004489167712402863931730492627311338018375761365165156622917263678129914782432477603483771352170587168538563391127007548063841722000604472518978008905507726808936576286306188852283895703814923030747402937201030555557680206759893142231362944184709113221831447404512214701593591720883403116249828675347960449969375359873098907474592694944590269346152327530584556769300336269188317336503161260475374316211118735009043529476449989866596484793036938254255892908161529673382558131167574939941258995713340105353421856868326251555064383626152020196723642824923496268018240897340317966341049815372881071297472097692161207373366656323099721025788097125729760287368769414631967570725813964387497173058270667717672746840640505461004220623571100013830177175386883751623363679796749837280051658599069863879933658179148547445493292563390611349231567341078666131921340820540452199771617385829439442320025622073640989585256046878892345065869560891833372125135304512713231550180965130177623791763584797143703515880890505610315825728415276696299468177584486957330837266285648731538060741955751511998825759507414831642816482490264476667957920708136188777331594855915928213912902760612607422190001075889822250014073843515495058623194098174137468368726028346335657225051342910070574587045729247098694913254113385200562964941557426009843269190374792186251396186484372573022390512142763354325953964328407649191032971478323981132578368179918290295943619503067364770546779736890903245138710787118002723259641090322216399124515362660240327592189766674303078233891029290092335866772993042079942111061010291582395608274165536242866248347480858323008476543651770011620736242879114465172904027136870854644233929645361487816298942818940889905103296201538425341263075838875248621954609824136986680180666275988220063076084311508211646880724565842864656716568718426367503169919006231491924425795300365573907968408675176967743647437743296721441218918819056293606117608254775707920423631739207417040423540225263797179950197164575484499029148225280304202897858830800675571439357502928678270411728638429302902384451244323326977063002623355244097033735027341466388776875086699198546673861834315641653846060742872895613697063036639029598076716559044808050411193667499361279273019865832402669611353750546252803932737158227103258366719653678938727995320443580057928084396969009562823562462333067922590350198928054683894314974475405170704981802720082527500262335645342596196824256943580636845000924829717321780908686113518995650686311607644468751312765431615904155122193297421362740745445822210735330838537094729898385916437554713824494248504453643816939458458311209760534743522326291335931758984183089675162817296094208341064250048362498344892301572936158877949626897915676174511678662810952666554299243593018214919710354716420154052973427997881448054876588216116815024515045878139009721611789151618122704506064345921683600666534528673669214730784510285533852003102102654229344737994067332062395347802689099643203049992204196069022341767064492020656159222852882538163341306325418167990360512023288145900510808000446733481603450843308400431002924471199869672225981129574848242455447972145575830900273455935624678220143147065027518912704696304654296085883207014959905354256177440214182161398228817740905235236417391593425900586125837573652075189634863957236064414888492392604034888378764781819180718352535299950758476464042437066206939385772475613525968262800850901079658940783827101924195544357642199013005967575630780439232281969235391857102938623814240713907938293230855053375613576933812339120982293267823548445590443618296538810903088548458758393489592533045591848321416313220314722722370249783684733626941464654978800036803659973021097018944700896256051044269703364015405846604254690422949426780202583227724321115076753232032299443141270719015940560725763425614847452885613943360657262506102315379539206871080647363798662109850579801159614291119821302678188144599017577887838353160092270657847108569321534694947144318270667598677194960781017843696460393673523057338922615070767556782303888025454620587500889666925971660411326495353977454695575500810204946414698605695576276420100510617646581800769393996243790403537482639646458770685887175590690860540042786201675947577782614548107661056988911276568189383222240158999455156319471011068578482263433048344292261749379187254696033999706705838046597959429894799921167260279230313094269690322952189012912726064294947884053766259869527903172719156976785439875579446844693738143198562117909887722931195045867481461736429122982306377901763180843382305132741855840203014951294942222910943990760788685028590806502550261481866959027990601411183994025020356796335784396275635577620549804225821656671697409645509288334199346884419144727587511701609853967395587419220051654317679676402275839107462040684052804834438337377213928598161646724309803604010492833232054523419317793827750934634668902407491511929889028581260175708440366856217648204747660872805135321239459807790344161609554911998383450590999823891504873033334127962557293479644854606441334887870579250466583139342397107561283839445509744288964566386334403634480130935306197014676532279745129021847683971226062014848884140396649569764208167469443331880935864050754777053694804094705194340294187023725673416069604854374974352207104230790198568293315271231115819835832861066533573801098074807902662267361648926344478483220368735966299577894316485952125645568691436102145386476324932522158845573430481343473512108959798256379691675313949077765226811384971812699075761584332866427281492155233356062127600924921475769067783273653388278656085124012492011710749528226707896743717379606886541921126650101561430362049998633027624707902299917031595547330597736084185181754228434398482012893294070417410145418768875067228300859861809223090692245513904586979983932645931312707046642024019264071383730804297774424035663362777202964985006037508295667289631124724144558818647594701075993030068646994414285860759258158606569051673563778553631810163670091973881562883697186682127691191941508100798437102303901473531033188671573618107747785502083994162852149070130833328102227481807248246246174698499640777640974929482512795085843843801394184835940128412544959462499777878038683504459083592277089396421916329558513711428021351300607093495830418061496544882355557942355020732269441414632377556190839797196070431111438997882413445551792299802308289037593769414764769670516141103940679150296994744708426354649335813249663477774223102394091406811239946867759195082120140067251831418497976344176171092806911256804939996817829100369544178886331090524236986253996636316191650580532401684246328648122117870365174111959150129301595475239268014956671950613048596469758408809529895663222721375741438546801771134460709583876538291949597715783084921360397623258518302173892707037332921627681059468963584552433646165571652943655620488096353459161214270391040451888338080856098731787795910224314576135708119535886638133712835700932989019533744108365004990527657942212479894557498316564616900826175602113207480552666791704267614405611753000640444994472938789561487630957309173497486676998132954886214061578389161003169288906849663058841540629626150472092446814670182576554027844781859790029563844938634448155909699611018049553901084582361232535780474063753669769539265285362088945515775057243072728111238655090338286477517316508807660744413951726046279554575523567142839630272080804093025735356642669449285221486876030755587864286937538650226897313747932003131195273028390072279359839435071500395759384294796011718849426388506805308453557890301910112036103005936709924836321808122783672335725321627994919576429690499983851156777165690413144436934739116955095143846895144652061998825208161284935119947501462530832559138722824229042224666447178062379149406875955136960106634241461977448344247022778386945861982080881260603855783080862025359294213493205545320864135339472223033253777103701953296109873244222977158061195596237514838962005235960490791653438018566379228355086296343594096937119994327154314609378329504367549682247319176679740078251137549664610050908774318100907673317083755060178446565835932823033381291371231391645375719511525505494107032596872730003435196447426852105701349142819467224989192747889053211792016546886343132514164196902194757511731862020622092050249883462057486230003158809078196602859780373119077791899578744837225313000357394121906640333694279022273546479051788168913494606016020868869991307702986388294482844941926201190915739730674006741871758947986842461372444960065444448100610892842171577449920779775738343344492661791101518634260601303311897467116991986373714424162285180977252545715905888770106174162316806043676783471265947237651963105988213775811521415231215572424776343881140390204140625353177816092250050928841754186834041751509200772262458886353293742754673359528672399806231306388576784066598598855733092972363938005032391685710386679649956571934695871823862102131647867414444842743100918075432718048884478171876862403672528309179551208882530266081363161839800508228090447136855168433357806902329028433358665531464339449541777855309132563667778212879506447023787325389210627807951640029681382554960939497500144100664791992942937879691612109103723161951635437101068125675899967920451954377069482884145097385664888154735058465501843649157157784049028378058193671409741490567232679348209338957111654997508706755713208205171161288867023437664917968924878095842687910110944700713581963699808886688330571029941335376455564079198467279335453156824590417480530393711752912695648232348839780842595573722172344029201343939453013710086489967707891029781446477410307908507147725179347870562775821554804731999974250996296247895384583368943157983938818994316795634040796269190867953534605238689410819623412081139190226751718817023644830718661748135233640857351548557404579363704298876559217683830302319179983867042899719559631758892870135630562287614278909509090138671637083206414123973008435675972990437215445855246217583850980944565870857352978701167627472444521470537145992921469598401398603223678007798727846848469870895138277721157038061736155107261089829716737213338400258616061636098965877806353832958852342191294204989066762020810035613593514754186846178309993891508961667641841301959406239801902144384949676817521714209505634719821811836759557760482001324810110253667299254389976564250143096191583077724528693729120417324981436641224389858737181077385785400257878194404355476731661920310502389693192384193365834121520384555545540964627364583394669225253553632682407406664158038034588183529922756301288543900391029034185234058115834753292318153719701030570742557899361533303008117091815149839685980191130648136417474928946084081732772166442168146545676444086023560335123058808534774160946619030861681176993441531234671769673134988907113278193319391528749973523778808252812194199742943380897128728293248861283242987961988316573115090105008742053360412828920706279243603912395855102754809628287398238404714117125749900989407773970486251444190591156816223260874879655489272313614975992635322622560682850207010776712749323692633776998632420882390959142374647920774138484905299173953535684758755811884737573725616832308492080554666449142698176017369943799837739143783268784153546534850862117709255533124704961125395769236896611782493792234984507308084498741806128878412683785030181510066037113829847357581977050663576413474726953212219890634337524077142391226261382293893732022002974108081288084084777728174125482047604422533163706521352416393794075851622929865496137652441003158093208143880393337966327881196532022432033526519858370950465764249637305059675538733765524039057570809632550713656479270433633603786387838017625558297082359027409919746159455672405777863392812650392855690299142319933002774003364743270372372924469453758191305262257943689171820972159954566075915160883322706031596707553020935205767101290657703946640179621483560247341676419377325102176241476651756410635706845764772005613269317973594094874068314670762117787070788781727017456398983881204747283644872691891870136424520344190265649392018436937086979745431661914854672462673816343103553305125866184097947742428168539462545765228883234484117539897037709472703467658427030345330768647969519218515697673076087325591652052626307058877373790099241774580914906860701393430535581578088833634123525193587863949035883564214613950500522680883408980888725199777319684685619821473335680830060827593729089811502399984845671379760188166307070644973400273553076454236414603865363348512615937940328864982763737494825513913161120169685974162607589371661508451385913142564726733476511623332856947871126177707632833192913343535960368063591341133839755663210234115205794850031292073930501253341433935623021713539404416902068377558185908935734186424647960209038125449653048141562999704046914263996278942785991731260238141543831411611515551096919133749072570056088345248892530731992287340008022787557421251191144273584651261977974282245558524408624658861517826507644655449958833579713024049283668805346072897581226932323652514671826984035383940276141422803613492644026244979826914116406756859612046632081257396685034951669789928002637616126969525467207920597582243162260673605956640358438277699405220138823337532235116849957456183328993890602131461007464165097906621518825574682621384536211899617933839566184469143404631706752023058855617011795896789636749648250571554576762137834349241838262075417166021357547618065493091353164327934408752306521439544545476694371801478185633628991089347733823179179516953878728920902503376761533592533980899543124416085134189312781657189009078919835375367619556793508545582189449667005126369909474054456321116831176852344085177627998394440012111141977974664302178740960892245741632890488945007701533829771005799165765717937586508071371196832843729207306485160643951898167413804667082684923426857745491929340771627215807775444490127131324891064204949946544957831140537910589613675314584606786666361056705016899767878803943126717136093539380337164330408880439140105327442571741119358838240014234356898304405099572422193258892072754654477343431869015625317939981498699912320289512640799860007543886584155298625676428790102176586335102365208974713066251946696069469334774238563935574443561187220758477016877671775198308298451447344126625522300040342155837416912233915435091770436527052195648193912978088576717243652274384177000231602258328483214697656152181182657158870240719418319600657416271055112272426629363789891558545225505013676405363563657977371250701092481810431436548945694287473082138849512002184497877146011090282801499171774628185786573269111659860803773825847257819938858414622741771829118650181191842565891241831243212742642350929288150622081825278012980390567374433429617320200225149177752958913102768110384829375530823218274849186685110337510282178236458232931124642684740632184138539200065396689417007860104618573224408537152612904378882224863278524616729001638760962229696272185593896742667239458970658346183884608434382501287450475662593138234031078716103921519961943249139628432836509287829593018144507438108986429768614373871088124306834430630982837066198674689867346769925456915489324067547872423635380066930013273847825771179095377324564883257797539361165057183654935852106848412912067632727043730697470664817018318149423299204348489170967364697121151162104455796858146599859911996443722197915765009266580345014878111790832836888289779886417358765599547784066567841682750401748236278623587071034481598485739959796135271615743830799944056491224456998471727951085191690175217143295068373680999754641244119639634644480101326500845478253644095274410865614139506192731214069236582620218713721416396076259755276344573217344466981985447873885145330169726783734024584164812437102494095935199333847475770074935881382805702168065650259549399451888188467900746672733008589703622394072160386799167151530600978609590094474966002653173548770816388687342278257112987146603852671936354403705981363881544209454422075786863126854277639102257649856052237156699001868716767171210285617090947315941487653929794730966751392239388400785673180154033974907436855569659363209358721032988447363775567238987538248501500644513365363931652554035054984734488699203449396399055544328905749119197401046783751540629165654257906104534464547137176940976095300774000724490135290992443859625151832836309639985467714827432145827948716192532052151105100050871315853773515870724594540780147638049566024394244554272087010649069220058872306630029704320903052387490907503035786474572466610387921620661373162694282319788919989069755029179294448854058073478310591824918210504287806770335830720025630726476265006042174993161127869661709097042372610656796350804963872001425179488380271349173765835887073714520764033413293306211290943482234466138456426030340383126850541490461161955902822557458162585596829463188792097767691345810417779238930777995186596590680748457879135964832994993456906951098493727506754769562877707757851424923014510457314567579797827798712448997216514882229254760308779988797711339712667279463126208208246589268803854404276486828893382235556228097232378040484393521655244536241063318786897557383592706293072028756286784110115224063784001543545131181121200075710445917138337050513198438878190331111820223435356279339315547816504745999296418110629394426189404124044849927626693058922778730124387960712005578508863024517431540742349678294323648700470665844877819201286816658847555486158095558460398517105794366750207671675139251536678014880390858622882346131527864413642710565166279215594548487879741289155739155686183282936600277088441513635276105309579178603191531136038401212873066672713616689658401110478387896969352420167090611249251462228430759100916022965766106821975319518499341380409351794572349981906634421594328867839906179370397625957619137045917063461771776436544344420279915405724340753427674544949520447068061389776224300776279076728536671138715398755124855615817888993338470035761906322540351736280513024597166732307127001138702066985953450726830161382449833157074351829583452310178595487355509519833318444649249031786350990472873698904357988371063305481548299398665828008533921319841631581437891714611649418193332586343681879114211697735382037396613274625762074615873512528288108473072074735577203155103217456728491019566459671890399090079692529370585261191223915740972701021522581144782135103713380207061181536009854731117163803664517635984603975846691358915352873648429307132567234359216160838715941961110390659248807906190374202890679846681285196078006808084919718738919711377490044891425029475862463166057135065144070435388693387045916539925444511187479286710230712036970920750973390925657457979871104431111647615815747865596885981036236837600843042863174948445740620387525823259564281072058514568299037369633704691451435111580954537484205101285155902084652494262462406394656355048371173189323894647219850897786251096213831821352295265070958254014805097745800197017737462462128535286609136973710571203566424083658227600197119988857329900643184000935024725968081815450448745491369432783951447491559521791542302455603734801852785490721864067414897634899544868330716809394225687881967733957761919287767535555456238097571895217799507863730255110539884811081019536291008202450056171984837434723884216730026513119372429057613735076722334345061976554115855410414688284704783916006959911161107021018191796757466681676818736828671699993102841908062293637677721529429303335154040626846794454589924189488653204519496160781197890188806218780726213306151747658774942216214354233103631378161017105437208149718731992540495482741660116273942759330686328762596366138265937602837386289000096311255057936570677928559503164670709107789496986725824215198822949405187955173456633616470130881370323058950428756341290886160166625599340131553321662779696218147801654350039366020927816292104672723681198011333731129244322561010327358782176263393351994520018134116066724633432515143960523390698335774161145729349680792013701285347570608146755393914787044928690442845795647487914036369126551719189944948223686217781100549268146511457766988980778966757078343330124092092619408426652068074602046760961585949119353995897979314280533176830064756977817912894026725553038468397087525746605824918991652690220262455312557773314536905488585645609319026533850072348452638033904985632172092283482350473124964652318387935530462282587021804781155505073337346565803921802301568165472451930298749472275202987498950610053925720106791367043866909739537411146149118245160595637325537956381434718912576117905729208960911794660115602069521407976669957274742748058321804036600585650237727780059057161120092438759784529743621117696344646828159817513486490549154844680761856080808078390951445840582038752914425806584331265186340207273170926467959097427830998052416921509811359461468310381644232079497138660480235508274250282508292692319848206702881998997764803981969914227274128026513547568912294487903011342644107430603203139814377908734874847098637769056504121793207724168042578217158551395162875840435084805548901406371463274015373911852264246451547611817011944072286291446725920754583153548463067159431481774170421939267055117115791565387586359691651320431003849216642282853291347924029185383152756821666037530054523684615840743862499149941576450324126265914306607262313997046714693296732273056114862686797344067541891354847728494534371623444174612718467760651845012802627124833576079338270794438553151698206468821765948976817143716874550737751465701346476382013371964280205037569590671273572554107502333062141835827686685672059443466559721440960881376449519189533970438950204986502971948925384679439349800427675240666576719944228866681983123692217297993167315222875677871277853987832560688561248643502183823502668580544749876168626227602258098659862744551592617492459386933402216985928083248745216324979699162523386427445167860399976720122312378770300914356990791785711219093380256696937006772977594668778958915635164093071548788818255112406830095788005793102343024497487708538509115503189734684271194814299403143374213322319908353965497915356721888432769360166596577988438174014362620437084626560123755193574890498444473869133204147504405578577544421651569103356116366141365146176210863906731565265042650585633017138185163230736920687405877700561468461835802361151489934346014551367483208385164152198855486744706349302422483537364861176718619336634841705530945693945873784768647495506628347696179253718854991857744642202736124106323497592900664326728649073432286933396764761209078513278587647170504517545273377327188707815494111853940552966035655200298784343214255669794932255567969185320741244988454211578905098375043671759094483849606751767693703682135093443354697637959851198134365316414740716543974916997487373466630549248127956286021981054418243430081078216895668031395682597496116683071051204938790966132638263286469531060632094717625638652527956444453672831878918180380366704828646806515804496756777564689946553552571858018165024766608014792473133678990460505975211497541966213232110146278131122528173802946010701522149552799249705887124615927132035979105439981709428104475419610204873124902453641326411785575396100612695159636037988005854257134427773588225103724383632068245752303369145586280845463498795360229747683195413497862393516969410340606988826356829567271771512383689850487698117281979937096173376706075694710698759600708874752798625398810954329976592478838402142126705292744878433343006047556463960918444463162111815708757972879905552762390795813575512208263151308473367011533472045974736978449284691508109232737189082520531794928555650457190502303819691891047145397507404658410815091703795167941747729437064088535498027178728734311927834130003279776650312170905528857204722786657723523311990136890629597806073841798541566719920129356875582984868535106710608287292749545854356892462738118444469131019043751368645683014886026583516446999402543169822085609081280637039190138006332338342682359033170598841975397346726879823973467239000283780101859533681445573702155633003835657083479793947295189873038421107224411853313947565695258518938452128879878507608406484663082486730804974094568680948214349008146323131854841171342658266824728605266928492893247464742655251611103576490144829118862983521575209493294362779579132872076703567448640256635768326590210933924838246710178892235906668218759420669776505162211631628353893568655953676698124869256782865687945872084736760072624265108038985665907995049622597074658523233844942481675731519553166096975829339520751494997779545396421752144705558344485896624680519123765801928717171888184225922071761004306312779259524605017783196493309011975992100179891848704117442724318659638670759716571551412631645183708147134818203389941359322862721052612326192787963379337779122712026665315700727824198059251837323265161508083788841927043004827569296659867229467916454575278382494835641156897822177005379199527316206850801177077305641754663979621045068115045354723432470410870623634514248989325172192895465154555419415673088549181842849501391167780070815978797921173735531141324782148277034422248049278682192608552906486118769937078430724364771689626142157166130565395570209287712795352598328975831994190871123665899693713018248120685509827407987663592767155331596616250648670334079036452382924715527623793637129253595947071730174860782793231626273459498807371437441579773909065834024375179905655073745089679991946682021152629349747911690637548566543414489080830128408593624344058659002491769834786475514342198535379455314554240332704773445692700338194048666309087899937054511628316905947626390414628952105290253782911657835670511770775909681606418866384743493973867094577675876830328333677823455078094583803163630652727757052199059751111461483181812746792176847779554584841060822472801439978722001606745467901209931093270484731269510349880680059561297683889373389131412067478431493748296327920951987870710721533610680630595330508552022121366845512928539006558963645484102836608419401682942067679779081896439974189147738802936890659108624913116828343930007458463991146175577142848468378483189761953650286780836681782733147882132040610322173537087484532546531682085346111330556204564531683486156370514167279703228462200349822767800186353377336153486236238989458253326579474743266724358257963375696445463409008834799962754486831689665767540185690227184809747451049173506107762849079946017560710299764911222691620186681442059853859952848608849900232034635449910805492237880790244782364066906762415249380670955177632434415446858426898866098938014301302693535707233638783541413265638392170586451059590884461880814555148765685779414574944830123576919169631078991823488909694915362648067526255735714544932470272526389330828264272370172792635054419354065559324581155161506349820607460921349500933275800777937909946872114094202162268980830502850557867156710118042687875820444958941692950784528443615387041578892101928467418099694160353560427211282208137606442523718621323931020072838920256868885411355742894325796859170823326680467428171643710522886042188333155898072332160903728164284390771901831107675731977322450055898773224357090991207223202873849444704722507967893444711614537027722551272084987309975840487735755001041347199243204182204781788857654040286343822974288044070977330742645741849642299357950537464666947136162079359661807204435422321165344561848050786641326522683327984415247976070031059889464879434909510848294198137059359710861224739185442138723251922453963252178337381598980024753874245943556258351415834175362703086715854879044796108660512036137592798508209491808673593420572675550369613227901936368203271852017034173479272752908231207833352064562351169381426476854649853926679247859997782208842444981326128693864281088333333090257566273104958934150116945438948881580324159068859997180324562128256313580481837079757525269992335747160943503590419810714686654722352215592637724992274528437878314702131623037915861137127264689256564397221259018882564904913460233013144935513175656885264194592948830511405436695931178684009827693316468324737428166516129634213531641507855235977361332900994889172483562806871184530154526708181497573316506467382870146257050312797092198629724068674874288630374010524568896851668415938892188287952680727666009797926164230738702598517396664361168421403538149611157909803487996509482171235585988677760552798717432696975726800753031007105139751591679392468628352733412303879311824409224923589217813801666783402119944884302923522115277257539274314296326469919344993698474318819115260660532205008440499480585338282501307631832480445892150138945846883601840323798221879224151611673194530815550385620725863146649363507473994250510946750620201147577129395178894554040465614481185424930326412918200195143518283817579644906768491134478834652001281653985361683955643688509671276560597735091789556127771724491749606253530814840041647535285923014550387407889854817195202939661127544165700159918729192907948025899978462640749110118952685754554504774158539311899195567515944678742104266186549420826162162643757861199750477220722839500166204990538939379894515915665884480069612957132833382062267099648166218086192794296249726882725847441040415616836167053542897382194979579164717250355274591050638934269414776177476898478319602964849108596698312468142972342091345095447705033944199643948940715398271836943647238376621844791561447394337342498118395617087796174728444204514869557887380282345910677266653998266143229234109003869147497311192117276260765341617879222230289177292973703641178026485131891216177277259988716843243439973587190606128057915079996347892345100619338630162505842506793214406939380219503870412496748595159384186986488277707286073307069256726226163096592085337803206873110544054842645619561777144108600522664911974040041702068401843656481812814158174033689186555119210821777578558752467062960192138986447297042875330126398736407832197579356572982087912674661193361969129757875592337627033669712988328609908228268276186593325697569781851536400222347484850632192697571531869368881934638945654451727195257787397877089767385113355568102535538073213809023477240745393281509281181445123910235276372785980750540506630156558686974007408425941580301339118605283273275987892411485949604001536302138988452668767969618692448185673125931133134486371037300454276599281112030326516700678719829128782313866782894251682640171312969883353836307207876855359520504924771310911256354991853905882561662134719777636338879548374002276701854560856181227954302223884932414376836751436828259818119735547928586032507388937670487081949227640186675732163982870078447973303880818408171374340324490436791374399010234134904998050037961287276387030771507453711665195097899426549962690635923182714370925559085244759230892156389933605270763949300995752615741546252840689622507772340462835720304624163997551042499182776766564563296468225672946278472174512704916628960926918702247863323407499152881533674006639465018068676500591337948099654316267566842394470754395376461797971193927504406913591843233391712797086383072376419390851183135213665587752128468266578720277425534753475690238426096259666935816156884586840315645630006237912928641116878561298215263654910648914441821319626548309810345803380679161725626393422012577061963164871156286759566926165012055504371345668866525983488684737896461088288082035511877396432605330502766256336184769049328196355856681288497258782591933249435485935487445470571937265338661650210790977731213979522099112122421717529449946591306556367541203494857820370190038645438985296031543871970522380031599827253165059939610101115608808181188274311631733122028962603159124832294277724761235836588613001766191180081183413740844722538279670867595057636916709793338905120463342765835546090137352086548119565188502182654354858738796798800178986868777191960833611339259329132235522127572013116388683587354590339385387698916156103238884573106232499132531589950373343375287218604834708464328129752486507557971189614362144697836519138453960066268773321990123495504068175781683708657062229234591703330597917403863339906024901294229673011480741502168004314671266777307552846504357435943135029330349099179997498428382356171376384326974629893967393927175428213932094712395251131153664229631072551042109314835354797195175193544453503895566803138376338864422114536403483693330137684891524435276881630532550962001982379696453714106306092962092165535027388512623260762313791819152856150841638912935891701651337423721003505973498478051046819382100608428948926081274664779588686855244031379752039553082653137359255090297377858222199349934836248456374829932462749513037125651580682688743936122858671609866504407853226335344959098017158973940036287570514769271101250475011128519054315930563396941259978949616570108179287498165306826761162450916093838558790364175635330758971081006568156340637880540803611700841948077873558468094912285286397366344414229624471617606686268819587092840149766022204998404424795380147829104959772274466887593295873875609755700468535953055358807122636903369153118180475556952322492297129682047128360951641024176602744178688385195665066094957161203588062113061895667048560114054572883446289081343371535318910995004966688785911315639028446759412601184249696685166916810191366174198023322665376705645739119720209665402045174302127046182115433983475669093365564859581616744538730243540041840896285136257450957697217359408268378543561942232395197830414517488779689642762377894027944935560339224047726420196302696962026339076448428900566302497535826189813048035776949507957612419934982941658581843074070962483207720633338030558093946145948149429112385615302153928999083487311740534800525902035161534363890825103742382926671268726488378008716189643374295493532216722103197305593109719468783670890945959864067046021038288963211122990923157817014735096295335260618757903388883711144154207444652215774907257256482117678554820481258045523467735844778111547279069679457201431729145202700869537019596571044713718481482606635636669147436905927561565290895658429315337517598590491082856550699772845752812910149896357268517519060086137513513030632393327825021826819304840680485354274962258215160457225627249651254674271701990252457545429164002068621224121958738278942964264522435829463047847711722075061382103580238895819239709668341744615803385018163035747778744969701857695977241112876294876751726489549611083467942644875710452372889713108293217287497414414120200476574299180027310414519576989612467823846937889257068745030624835277471641444097393266007079522509066683244510773571454712657776866802087700090931729968544929546466201183209996802882058066084258634858351143196190067409402684773881849348088553219460157720420680072554299624195819123262679916351621837855701128005034029584645186045466518241317465661118855397700206823220417429698744882821174636607096572599585039355774906715497205325584525607976014419201531431247453075340396960624291568304524814318620265535501790019149647598641652741841161366190483634793148937681676851121911466115270743711845004664885633628361725137533250397041876957961472917573016287552516867861809438521833213717360644552558991181963622404576360110846521395982461249992170323365016246302391313175853516545107469932527029242258787813085455995298648071772802755782741217795057362738754371755195549045941033412835250931577694116712914944693555775197936394642524194103772181531459039450947788244808376986990621960202827719581747347838114764088221090387093443504628648199030280311994166587865173508148490300980012607099203443366526973065005726075386605147194513223867815483905417790918879520729885283272394506933148439935777266276394337028454197214040233690322473365233980078955933370174617179123693784105655945692951610403465270950519010577748549034895562143173224817015434299333299011615744387413479168457996892064616911733970858925316264961349008098001961011977934269905420343351601766085467466616808827278028072770819923296032877957688804496754448015290304815570357497639949148660627347165115130769569794085436013357007964707039027281595911718192450262284282256694988950675782753812167471486389173037259298791335389666428827136954226694383993739462306289301245327621115717743203208074883510906602360227311463299961486062148035855130316988976293417181925630288763026436109717396450227010602194252487645063977454521574532598481941354776601342496786305205328488147927652665209594509129904510522122304351246360381847046280057598043079337579581250164843703639330284064496287276165463412481134226643164968317344772552470507415204150743735166766833812298153862311891481295964842240125261679395090835136628474308840279356300150086520364497907299699147406366501553267681503175790122359510148253122021902238063159209133939519276509715082402550033313427310567252179055315640739233584098322686336012432472836728606518129529125026536283636319006304674595471614677594240597961709182064568816373123328474747387841970051407195455673778000015603258495126605412667199211508470147349334622640949778714347524113124159414140262919690756633532747087220012351171813693114043535381381029460344707370870451740522376241044881714670909164321503881984473508352195979053672382205389445715293287762546806575218635354545608670466887636217931316192780910910867702516932412695816690256558914108400486168026743610413189195459419669393680174476825820297262744326647045455783213867996466264390097659775013328113200945527904967840964164724613548042986167907787133448295079704858550576304277022123286139503128721464173032617910644454622113940252422868989106335330886747809598985449941721095340533158562023864000039822839702529370050139044219954188983759042831806346817937810664088344365531705488591250453117608172839167954304529681396274671888198895523737992720264256160444311486704379819591002438712087653696958106545456774088382966652549777257862870006153853348657046331715074498154522972971615401209440810493722353883897192192344454855935715392105010022079063260054208096767490456312294049391962543260625034973217434690272262891207768253535115309976267724959971975018280722158602467393512404989443278951336391963423137975720082791613085657261195035206421782049562265638863572184438206287695204915530669431924876224262476940245962517292639350448646957935340015943430275373806575462220367023167180845079559552510285543198575065939271980204784298163183178761471671343502414869728274965974089659907801461660494423322507633452569767418911301351213919893572201499334222846321673105673402304600062736892526930434000077306091569122120061125383131242985187171839724728399416427691698108086610505393536089716628190916028357496566523578063776726342498360458747673927597209506375109663414103828948305003506993378336371438604516304369667044978875976380166183907550742837552881488018553549307503143483902732407936423748109217948718743920882856840977518348173102322300058917316275002769945081958348318149553700109243897929100666815580294962703130480605142258216057501179322790313979792385780502846586631968447012255842973747721381507742548581364325177413208442536107480392704985925050002958590027582387741848041269334574807292111632584582235671265213414575375439377587551898312217129158494296041931753295403005603482999750707956219727762562957218940098772674074044465202610349493032099551144281470564188094340023436856180461230571416959896879453240893209817192537486091026093147233416531258467998031004278417610280723613308234923223915802348130224228704620271730517770974612369513975712456724623424253024795638843392235856766946979789139363236147988367590693162996129670942048739157289563299751101399195017492977014253944675868527770850370416164688481330672239188583272220385963084865117171271390667136551358756721099816438586511356045471199407472074374619762017176854646565332478975826073837635419595891851391062534818620359810722651984079018673323269922001417416617568564719817129147784156138489529015495679378907807622924077525923142187829229615423602226828521193008010571613276043798666756847034729508444913008232817606668626898084092102089104517247099934744832826179624729614410840204655024686594291182386315103989853195930145358559636187519860076334341351059715317336442359418551190457584606323228368557665389307337991799924092048080095127156354396445936708089519465588115641014265577357670174007982906097510442441883873621231733637055631440022010603681089987294675461429883368797659046620969436956064537361197857501304428555800073569702585309698933255106150304298297642484388699083849653072626040638886811732025585795977932837525333533426488020057191958727421850126160197943836454267473247537097117299051007905690765430170653817700735370708012237725451543739820520072156818111401173592733822627329990789559245617892125787158762665990247853341943505087247742338455604369119065655904720004138880130730637641409803581770520873345410838574659296316388534251347007308712376306725657539840293499983923812347130105927428749985996209014274434788496955356283460935601184761189504010603278488432657602893884989968316293896022246169637462276749388351915958076573814978647159458795768803031554202054968394766509377626726832502828339474892121602140741347801178880238121615917776077530878828081009112767863145042133742710061177887579674635026118465521718751211973920207460596907597864315350110307336882827666823223957462994268194479749759333226215592010750319596327457003965208682820400870451270718901118575966512820374341567603339387132284120775288052914039261139928366776113307075106157797123161827931824352910014013272183119548516501992732065219397778656058442630122099318357527579479475476218542102779465355166489524123275028668637141533155814403480980727903278871168401761292860631615944720039220316098433196772664586586810147417527297267435575310288793008513461062446959636266629798843753811802604569774584955794389176555604669350950423552562385968611009117238678404885782493849521149305210587532780748743236961859873439066843914462082311356365457300929960375759935990265481520602339918030773161781599659217717072060462768461630605773305628926549459166860936354995189749771886284839960624680578017041885074840333010510439021124653081043455484985052475176272368781408924723043335961108816834469015477363583421799166295561796102884173456425615141416096171808900214081152361780004764641425490174423390249630325608315288697555375207402110026658900000832283197107640350045004579004010429215607605845834991648853557979389213422601423117541726811908087754932669723004359253684767455720865077032046002198278289230698280780367133452556838182434795364716190036545430008345256420803197425044620481100958181697758642064333027073050189669295983590353915060152456633752128071646630340003351288692454053962701302370885061596480316017569027395833523264270134052324434955239285446432508588770527497523017166156812905004189802754659136075577591643398054833734907534262763837263219376220037789251018717705333365091368472768885430933843740427653111113034205432547500645998954850852500796242954962733219017577307872876587285606423521389270453870208590880076916437196478400387096933797224205993939161956429053639435638613988090363804520560897639513104922694728152917387745656139893155543608938403799442148354265978136232852596457224403500514356124020366016707226933502842926907966259045920951253078401196109621366957996727856883814520817870712018552439153739456783496467740123100904826759320779408463474388288234622006712945866377793121414976834501167749975317351778164229289952197837008544498108707382958622469464132739534264301245116219995899326401703630357080487972400208351394969706764891872243925199398709074099701636615661606400312567408988857969390235589509330830730978901848420115740789256650797063994515544875016524682221871114337142041383264701712215397828464062841931161435589055411537301900037155789812953360245678028385710841929934339381280900104097641970738652232359450891817017239059893769805738528516599929040509488732628836877028663704863242853603991813533654059281283043815034920764092820587065252291595723822629239811868258429052815484824865209453453711155712279301365584030431223797500828808047755316171836748195067357808910173774396404077467522811591578875492356780834963397888036866081631970990532461099655332388855997600907933495676909481159041485108818586305448559446320543651692706501423574823905728758994337635019419775960106628442634574608030447841436334642254438121136286490823493113954500372828928705410444008342401053670039824538518802486815497586305928183091075376187783065341695895302009452834657292248760968015740928292735718323201687835608122621301187525252118301307716998672392248251656003666256998314638623578846323178890235035674761227238855301740183426911463281042105433345518481262688343205514408952367435303470023002060350027142998352697113753556825516236291814886908384806524199754036184165146923333675564863010705905590893313176481105108572534095833015235744244922983266015290092435515155235533000499732876496508090521316102972227410557759897502279706834834370447869481916858209399662521431792135127752840682463705248582974622575679071394112730709234942840211496888663957228767140810669417331367230561363187420839492110412337365640648708973661890824564842166706478072476972010012332234096843495757280444060217762425188197324906835088841044306744379490835062316439395028179751621076126523658395847000192511592024586464351731526924565937901287752429703364419195210517147147465975880048351043292141360839209327492257557764594380595439827460194523413564108766570671349458028855551044307337702117399099795113807446715708483219138313851997796927672002849864845136536604848023589374759027973775476485954160072835107909476414875429022153321828704101219011347609901923685659665854054957549358009564242422599713992070535683886152913490286334738100693718438134428087118824779937055003047137635972001243139401901725622509981866093732119145055914412173816972279639943955298102615249718305413632952345405563352468266381086181659366995402374041194502815665958997326857733840223287983784108187464037347713542777978199471352809435827723810796713774471313436995474320529836671818426223092253072899827439895372429837811621523952712991033667028938438820365848787246599711716546487568636387987792745222880477855556622526040361963643699882076734590619218599498786493049936741088617595074046044738531380373754802740827608832548454271356877263748309001347792739268719109446658172328880767874134391571761140534776002446786934608682558295163481102661270092567627962503736642621481488165432918110174486263183035000287515943505301183170441881704276994636151294595844530638819164844367336252044014087941230645470317759388785524536424342513597117888680596365002466322882057960399585182613482407507587896062480834704338861372379699368106409655136828210909207370336864569250336134043617746040287722273429392292199759955075481660747278598852879277578980015233663868499056646837200916374383447573113263818735763462946779652724512114130850138883852757384699271414006544830829910057108975205210686606104711731597491790287150156139054062415963823046959953525694880298634774289817626215064531161158008434504798873914840842811820300946612316825771526436191913286837942722087635709938043329672238528325470396269203959225716422085406220301083702992494228317011614467758999283090420991331434086555740315674550675701181902070523856119063680075000790989238363193120436772743882832886423612804193884825263092546593199324775573677590762456070853871891208963624788189796116135994587968533929664144173099797593056148376531286207697119293615212186501939496570918878437539719681899248906295582848889191293876672464990458150723028010518171760639423768376451714194820701677267897512330610034657917390478198189053360216009768859679847173736404250803115042672835502565834702201179765907332563268012029198128408527141044168041775190322331937585974304646619923105944725144774613484676912387464911714772406645613706572143446034366087996531724927845882472144331898920020757780103770145806725323664086681466535558152010144647286033221576451262140856912342126624062458543757297602679538916425480528609554984618224596432621575360543142376001621107308239911023419102622821341442519781007415334235267254158722425519386966458087643991336160433123302698271135352718836892231742496710728301674056414340763496918060594473944939679600157566807767204513004412542278254223309022876119193053243891750061957003270768672963669806609056677180326383168599418212904397309344019665625398175149885173588999676194258480868699396382174710634448534282615714257757074263250647485068970742144182581386493115865744919601422160197443245248088820621561145861793404407440846726985599461799117917113453329520469253820493527491413135519304654707615448515433593778999269743603803035225970730589749402456971498725859653854349585653615360420589147552626084675118003176654238483988203236990095793740558730585518327053269636022758256361000647097447134613522996510719086858204334854940512351834618461774685909168357072572276678512432443602855153559475401241812816040558285168664108054003121576677446758415275319512245267136034534197234673088535753352850220040031155418708489831588214603561488368696258472572391797660135021733330060214117996789958324633170384259736774418057723119976241652154387047904994048370113426466700593629445985684147259376435257569551024062275364780389302778940733547625107722908130435545060543342094201391757401611393722307828669794817145897960275503047202088004139158989597119685752276776251490642605830146780372798892493949281501824435091740765059045435659028448855961695370161126703995852279234923082022029258369231177467911238776672649935605924151861658191199224244898881094890265288703678239440332078734031289065810284194027654729800899441586473035969378570923991573491938814924583987642862564838845972293601186052904940239525339774341308938509638494604448091041744395097172407909914154974347430642341160048958806278640208212596973145370818634247765169961210212198729309451780298556065005021364673454223046231457481922113850159947997973985290638915134016083133609716127296239183400598851286335688766926174411304154951163667664852322814661605838415696918908079626057177989057120884584745104505962387698042339525182634411512739544194515316447298415341886982959341493566367987960148901374011532076177950137413786023401671830189977244176926930513791290249358535019648360334805310038762174558028781369687771086164624963371271808163115676109548631164183840912215917427223804536127330715849895915281232701867855216213697767699540019935019809848814221914447205908052140492279239115213330224473245437708152908019539085594997351228196907466635443222010511438765896312898315265891178849872361200925015479418041698815763781365970486529160431921790281778891574085131787619981719010752941656933924898658438972596542912362254406782532636219646266677485360356315251940021115278016168021721617816126914615940784886060108119961503869765140288317549043080997541144011166412589539177216189612666512481166277822592780553935215082677177781713381885006696155905405104425993461973927219461899440128491246159629957413047334305318235595628714801680432205979058777881516443880022871068844048678053695857468280826281273384279847721992043194095372269898007769551114663373590670825922997884307933013046537865507242846372548436250469901666928941505047689708656416390875620150128804897934409054468366281286141745254515110640917778970788771620061188164201177974392967483217694193852628876207268173003149955627828621619028575578217794833362481309544036642014884259992152832862217199920162868845107580724693783662348204862207321714500993115520049132754280055617219766005189943745100753939236399558475993841903722335210621355328413588548793391654443446051200286373995225682038212475643026986287883480431813507339384437275736577407053530567688754966859102792383793998024034028792059429169322762402353330545158368041822464228870435707716984113387328487701092195712704309039799794595374800352789030704644688126825817891323719289755660923547215150991012517583636320736257568861301715060754311572094673040067326050018711631240349652791071017231890633955274752626166736102820890553491807924860152090003789316815726837234875472143702807049188946595377474554446946225550474330984751894507595265817909214869409683882600424147001146522926013469123076056628337985834832365003740189048495599185517348795813010578399843984888062093144181963069252907230405002939297311129819040835400086104944548567248663814666292437527670203799998505697819647117865734014993331307892881040307303892095183795430820068543573783548444413933917482700976640992315557741908322981321685711303501565640219011187177291803641146543942418213596231500417811773898946050982937708121485469292607680842663027533882090878995839726941715789928033697232153990672542308071671455174440198252852021217680530985952336410863907933076374463570223577627655848213628454854628187754250364517717143654874117601385011542389823106501889678052316385843867878865696902593211941262932816712914527784573210621697217752764194675993674771555732947154401169419033349523224140666632709143890179223228327598322247296836537572961693334636973571578257141975256201528328594989943081237650462062594095766264556725591169222096309727015029635246816421852712919158973617064769785186380787452044225580231396588050509451201789299172583011097645511972283472806548746507406640493958739097431905945322038418528797284229413198642094384061818012522286996672835511393208519006318493071070258349858659095102473915044360862686027793758148513757896445926362030608139034129672026128993727985697502726145414514696073887744802875739988015895094530413217752665191846276229331387857043781821948235213181399329364692345042316306028665507150959259768485876935868131295794389131664676970528367464917548170529757136693609342968231711479851890357781268864277170752013516093844513994975227403930569354193080968772965152909401873780160428710760840947192876502999263100091682963801312906836186028636497971880558923536298449489902385515191582314545767793306862259607802950412095782885805740495009744853293450617069999837346344685962818937564690890720776341421680744407177242882942341902701656519659907230715643755352787963634590769091980709307178030349699243796070390360578552682820481594748391803150198083648106813100804724698598309793694692649817609681310733964537437989163177020977158243558666487022102299067207301023282920031243655533445563394311595965418671048485134559174422639965800841138654467907550210950341082714192008811985676180691718114696219169495223385564462326540303023012228812055605416280589598819185179858706343667244982900704058972570677806937938055825727224110043960392991274991287996828589215246237981123572757521031282820580074163648821356685779611390533078976276235523923818149184476132500358414679192291337836230990810148907929673963693102971874589432945765959542474762425234058807438505560642936113952150316142731742884413288848637099607602849581934110331082792398549008480443219860088208078279062061943117841285588127824614196403368347125231770264602813452692163589152416745737194916210513464600138497598645784452925210487265444937751393025896689740989004174661743492370904107457354886182462538332662499433319529069822481049928519896289306391923786929732617041570860381965382142141687970156578661010002488924634391707873113028110211299538516066431752912918150036259712669607097101231270040689728661336161843167523701416202181380828443233311540201038454265219278681921918453105707998518565017505854959467491002906970944720234609148614933338848135326547151621717441287684993846231672652662323567099048168502849100833836017174855133618306146965080076966068643265313348198725509829717688048123402224886141997113052891829965159463203998756048589652587702526233748346310882596517705974740078809390296075443946568006230566370869695265782558119800676784750038101757490156464412098630859252315115459034265766531863629408451479557759256085209126748148737786733687115257404153797252456559368667215763366924723783771242414747261352458746269206986191641378551218886160071757170610753178771051276890307829730008902351098922687021037940657780310668744889503800765573087331412351484209985399108866866955476379139163971335360092852260697220080278693318503782275183438504985529828531778696663424699443678213569744035534595615596969008238737736685490114987048028244567491667623507449627500670878668094499862878059964435035490821677637935951316887415602019068332370286751179978316876425726848592762636544283459942910034607426127970287685376399393716466505464492619256919455621826670184232571880901762242463535908198158121159546300139914273969466889017283708125225844941061421992020442906352977044904832205835696516541384249149755118220913834489998532357536587203124476694335857562902181491893963720277767234297219750988650920157356278355328674175815886180075323157321759228375680430658898312110803881602821061479827571719807067388786961047603596807880237181465561596385116438637666698321403654938473606478756640021552960389016581059757964878119606292736605275173490718888502262867907041561081771677863579896817749375632803123207571851076357685168047893644825550965165894267675379270836288721602921830933340880887102854001426984210523985207450326072642079519951261611411443174270953416803622834182494280659447512479195485816160615976096930598531635986742839350663500754638595329174943275625753509038651436613903592742409947316560786868062267156702811595353648239583523421034400390781733571383169538993988768620855085577947461325006102332019858128258308823979839295258271945822198505140019467351589010231927059503509209344302546406957182001282195052599755262157552755281202374324793477036865016405335617723605264834042190647407072946388133689928390046782539278574137121024723204811464292213223299397669229182274323743642357618597951519872737017885238800964101619040856315554402332407936000258908528252703554889025204576213356603614123805725159702758315292315012953676638427772560222877621760208240190664051713118654192425233824939342591509287717793772756488617950743065096145643763382964171426731845958238949696909355865849710632661445613352391944355091880708433186551530927900515437714875177534557744381062325951162901725501835184859987423298772046903545457104494990483027993468006353721209459177408340187705780406379191632572925642696085366555073107950367842633807204673260001140222099629052600333726459585589141274708307373670415245142316776201986409084016386198842243814994449860632886161133811268194033691433354826201609498499694698157315639039082937146460910913679419552993526679976890696141601598300932967588276809184811612081392955229299123018029791762406229104958076356898896638003492004067696517799925865581750508988398283207248545289913904701752841410467666633223441414861726178885604717862735312020004753677511522506055460844154907521511139706031476803880570407582491636694017725524253219361106164611073563975418062014952159883548544952026744658933844534982864617843647993272269215782063896309523349088837189909109117622763577700310575870042935818211757900297981733971287134767722807405987683107192335680903517709482137138578978851781659973803370099637816645368059294439610020507434031812754138557733969575193411702611938908645998308384765074039205318208522050696311951878482865304925277566338880394776445581229562195163913325407399226164078539218094553236563151749651982995975153557694322440133117869389965277384890842455169556042758618415887628830803164680560517831295577589713600848984117846496937321848415035902040451192038109286488829186116580558231113587022617152380847896492657711365725425034221809262603275265417071905624871965970744578578639170359643708532049364087263871785111426903163775369449745207435977243747310478703532812985328229505725710593027905035348320898938375589297854216433065827546636988268529619331141627704645425891810717264049063671717028955219429044357871890135209898120536443478711309844355448445629741342502537604561757259420517284707237318848442441868445556436140302456340819502071246959648839525204135957468099454361399344535513449812599392967389116818422532063197601913844794930670658107534026510503468467182718795789704551374222742895880255667552625593943969319055268591784471429359746552077687135652920536259129466095375496911357307597131934025008766988186819449467883620054841606547653828029894377189825615433143084016771374792748841394437205950175504361446784627043433971716072085292324209387716251183268114800219295505085148469341669365345251009873052113846766968143166322122191459730870754693119774104989096956103032496337171182926361167284450511821185256178894984772193982262883302963361850054805827824159484027880583201941174570265860076046001242991515848281781076838806689914585833234583614737002884076771162007498132750504819945772452646567630436271133369867918431424437406597790268650376490190624540537948112587172971934108209001340707035410706179073273028376856609767114872025444272221004511971860325424433431966022113064662301882671709658569714821004434724809899052961765365782546123038253444057835187706717779586503186597903033855396918263996222589395522835143744018090824186443819636598808682734003282395230352312539598945432930191046481431455162712237925785010098480538082248873430248481339831768669726364637566914676997487519661016866681535784762489520884900182911519759547295178660375006821798024869118095491702677831968449989549442735332708469265159720552236699963402326569064436865492321191183884648051072719432260430073189579288580440218710699484712673617635154296316562912775848625246068063182645301246847671907922137587347040237525544663053317116211588294540412398432439735213958609888078903561026763542655985757678879854097952721404044327417959519521161715203530058893227299311097921573275377674828826244928904878407775785930251269997594670585055173237439367803240485491799750690198866638807624961358346078793222868198739541885222127047950869831298286014688215368944885648166966997809648598837381797168515925859530259988276049939141792529466813052016803690813378842000460341432653798109247854894876460865137836120776978289728936292896153000061808786890668119629933544853991912354918363052345676282955933789718891818191236360935246196141661920579984599065163173278105645925242648409991375010819484717471920745801768824329020808333150247832633538367752097200423678002837534233986148528455226598768003817690253721801798721648271633050978053314101708555471880349170370499260818057887046572932197926938936149823899351046886841042877500116120470242658187415665352684775111591063493193990730347233952295566875948955848408140267624950398582593382833480570566826719862843006410115478550885037138152329059878056260952959900826155571813500620830889216928231887520456163127425914197950832106525232050499004542163022356149941274257692515788255835474988979921615742261916706069173592836627445854456991951774411155316917185306503728394693138762405204029332058884527351465783588166903550087957200518553120575458694674724568897772645468298368435567252047344103743094944982622348604627471372200136024794983038765515664261329157770201673144497279745074014450452622451385999111544989592224340595135409043238353166227933741997065172335083324979182775763902486437726273541320954914431099896534027713912381410083959530419969492923403886166242882335625485260395384432665465557651816937539544024730056028310910560557988741881208562685599161979903951734906164747437926882676881198928826568669923416525346642805998885341206095853996785599619110398574219645599455139107408912873400473832237273503454360910182725562291836087071334320387505697270401870147597734632808375674481909234952249648997565604239654543647196452341014602010832191384906024297020396285143835900994885417516085722304742091963402820813928012195382258361643747964208691894393162410358922699247379378416731171802859402416424592111064898698647013597929267397648918439540888105952811754140318991900453949607895947540105906913502939344534558338655696188199193745977785461813334810504020534056826498217895287645838200696980269427760117423899495756691057856308084846888883023686376851739236430622431441539142181696997413494771706663612054536467014027622972298319037735404041069554544946544203492299444223635814571183379793857762778448582389597296684102580652524299927534296775374031059184718642996091179915333267690365033349442632335955050014444929883336005583560646178280795128439262094452344330186094611310646878901071968239537051117743476649030871663457405371682715609912170669768467743345816419826450733109325670410662516487359860531747022236058019012242913287980442821783962464591513331302569421764904865503872217722040534955864135152221293909302755299263820044222849306268151254187941022129949852821833523409154267508205266284415345871443822498663394603820871706069220497483776177429692806953508727081646033681245004901544297648728416950623928858419397777740697440113780849586443318806725651217883804657945428562555221697727705214583851245650473578776181672438320891741870817369046194507183105352235005103082339842055633095091656537379260662365128565496428188609640414426495266789993916807315979286736473445692079627684739984228514856263999047006767115199987039308624668487802535854790644234000013254304246462539120962640469206241068344075024278579128535405438547078420778779009212677899665463687643552124816911567265235814579209441923524715612923878721309937438261686615173748275968177738852480169724736429748643871808879953807461458646878735839712567793961119790018045392010359299066403239545538427460547989138832838447152891396751529612525437423780850396847111687049286514167047952942017619987702751715485626271560095707091440901504859304759039479645476799456650166433634955420461254250038500526611830733592761027958495670954742595475272084693555066836581316099163987404579286926919415741234422999211686675427647114147147517776122972599494940996090686427530303780788668894002311253790655505173061409205008088080468573189517485865364209744029906452759060684449309830162530891665025286745934460950361027154278283698832346443394505013729371628241955055635373214998185144003940385895514610644668776549174804307643409398487459991053495771366654772545300560456441578455358228467456362361214197636664166734284073959679798590945960412228892696377134731524002473923299922572108973081520479073676915551618887468309254225132466268829754017218313323624486916120434813372320800514839817422913743950566788168958207031889223299322336060273629972976388478402166646807516437496694068043547676014492901678143983090671420349224242117725715504089108103032018309900110156544134085060174321428407802821830731634819813945311293920480063747414543351534258630337640997845408276853175076775633039512896315024701026397766975751397904546455935079566045715719431939484733239956833800501621626560100215032028912305221654982648561656782966783436892968643665342020155841726828498587164346896394012801846650588946889123951117987092455124236284072823747618025432069914055360985959239169240674728603679898301018246216748554190741746473787344753478423503613158993851679658932645154968213975687893694112836181919284240265466560002493573980317272490134508352485370828847955042079489445379000446485608650400963547569785605511131095339438559175929260661061940570925718056280410942898637274059205103632148270059893342525321578715395317165004563799046950802316629873112721148712530714084870356173982470293228148901131001032887601845738857009975655647788716183031153841337653801483438575128555896626901841713700696177110953934651570292765081667481478329852391681423868356749628046840946915227624664097375143563181556159456604491195167103402914251261864376025214314967784805250287734955665498593398076240416392991356218488863009683244887660138760433499808080117935006726680911764066645219513772047379633338400915172180051580934349705563522608353333311069388239151875330472643184968100621558014674127093778379343579393338907263454286822638522268936666727787936798498455063937651748270746154184127211558682618395654545891280557837954768550721477779170961291943019774810837209938748668359459954809154704102479307370891753900010210390483899129137835676515389944036274316715176375376731632536543371613666264244412341528064903176423095277038289383765675451413916064314603783233068957356431618043461403249569046438311041854327042001330999542737974079097395932917321131157347815005166544360649418073261300184379018501932063163116774556717081895365059813961764849940840322449668690665288765997026579599121713304169953584248582173755221708528271118549230013378335985756838295472788983695851094764167886101166459303514980313936923731983552981149895410437882697170977629297442399256780261826873852419779329535298857595130885072241257669501447514413298042637134918399403137994170368011255796524986303985585911511414841467076740848353382080773975450292198038611871297333677382437848932054164857806270278104462356334991411486382914111586291196320717514519030592923784162526408411172543456754260068592232522933056929637804780334895359455886962190448050645588060280346850841019602366131425238933585201300372112776422729367853687253912918098184465412311671169510348357205719637062334865534609666691731256253406012949601036482503146016968055042807225179758438878006739530818904722821760085795441341943528077611415620385557897459753821168640109342900509222567735807194978130549509499217055047304627884583097621106352552234331318565606003531006544374896028345348752423000064954495107306147423977234138531424267224830588380650824133039650904549150304271672624051106005949820436248629131007180621075038613763530436350137787550667175202327853406284258183380652881774179147910148358928801184029684016387538028728014029162131057216944368978244142435377349926832455354392356147634282453165169506045663037843494145162752593761474059915856172337535902669353954827681824376020594790448172826609001281616526860672896124993410373043278093863172441880257828691660248508683989853488326096361691633476011366351589030504681714524187464896140092690175713109330023360660914260663533416022022585955772351116749151239518108323036018887379706905221146321389139644407322539862164184028215869770491170738970294545596442850914516596349530161005197946919999615153120603161599120804817560594520873672347021653728077288786907848001150434162328076009732218434671637745615849537879074826795790414291485996653061246259516336860893269128808596258284577330290695438153162937353436973059405862479740321436549934893744034208040279813001805774461102142973583905518055948738605712942484304193213851346380238812444533648697530816766537788965603328463078570105744364902797906361767089028619206166466115336366375995658325971779288540602495234856650084810137495688792762513190686453382235226872323256322187001091608530451957102269116286790507601721669947974242146150348512229007712070696797166570071347328301520569808839477326691027037531487580767161791929896115091023812925793071871121433769423767654062902969862677177599226817794974609383196136529463439843208177165630988530375078225182284386298662201358836001640244619911544861050785474817870572632286709605283205947175573706931817126701289541548590063690985457632057681217898025599487848673347236754851259063875912341165520666814888673927823308522704514715083230818320405281061978556718619336373617257935231703657344675464484949934978809599080885870805672401240876813944038370322249284675629520817875277524256937906664823678774076796137237149211650167074529154358390574650732008494439292633456973339971047282635556892150155664234942998398099580267122138799515422058471622852259103411341716585925930579546629609106647803387496902376855036369308493514131670257441565368369943780499688274778227920244628451191171814657692436520501367606844456380904936942941817559903604770600319113254234044934174782219115667048998342221499889323333413038778912101104184224730064379857180819131218192883469371851863127476593442800827390753564170029867768409099643123076860421016599355517824559387849239853457632699163468038781453978206100848614209815391065294339214397188725091147103105420796214881517062895476303683213809359973451808241041533210512537107955291547691860923207540766991455191174048425689466131100251530488942006780005010200995858518956362381839918212299185116250078442045223712797834697784940419077860910386527942465704325797522016151251711037014614147201572426207142147786984989914705510531623067553100507972228712694761616262509322463900966676947112267454676902164025370430663145285180796619516059972437077214085982874037723877556118166539164742683244015236492471108953147164969134099075307324159340689624774906948817895679954465492306362546151896175403780115810786540700299766645528472392634429161596560864912442629928062075480278224112120107397605851854030490608641553568519599535974343846636135406740430781559810225866765465746033395622127201249919751917481779020465212084055425778316664838447630757793571837133110202539302393081104737302373025546337883333360151770321091792565007155464675648957614014897282303436497003296446741715796436579661812599616305426993413941522094263633283104664810107151559540760730641343001303268617994036869069789547494743201113899846398418272323740249062631539436704545842699258902887282094963623336085936386070982122656078748541966544744396520419694864149011613239963082904811207980901804910255654035740289427879661888985239542501561785604926166367046947397154740109280403720743018378014088233258381759164478321620473068087533523036118058078786526057451829875063636099048629376985037644247385078023832108689758355458500354453813440925607709846609860017608185319005881243462890285388662155904063185517834666582468562132546458589965115854048430359730620425695353230588494736730571758113428881207747393434611663984196044887178612821872813161112658045163323471212753777061235365215306475460448724204859419471801794928372530313922340337374815208511687350191333188211226126528765041053651906524785356762393105686132595981299510113290695385695056926459834191494249268641404231549583045318835909844816294913692354759913935900511838219775852880428340024656319528797082717851534051301808287350795078098947205230890356137212171936742012432133650917631201450897964830602804384509950956765634254334824572285717688527119053001089867254984742460038282295070745760602136575166347249411794313260214576485400256607438149625333655520609329586616524866172787290224113174653763278274063312105203354958169199669905182762449195662479945109838156771137761150456172027014647279398980021804557840756702352693707725305907926273840495005272354551886833973971494018887472730175514692602602950056736649679027065008130269854520655706287334878542937019404262476991223290950765372189945498796734429182317714349785898711575726391517720111016519534053325748825550686151175122209866324225691528404241928332466842608839371729539416187872458459167244974724085608956176376531970815261333471541589746386123642852910676003594144278930097137204920436690816678389300044495664148097774044977490044550832581735910811895230569361088344217284523196443768396879093356480903385194299379879926887751833641448403418677463698277591283018252839844224165079594961438535888385311674949950216923475319542320647385979666047210545988786591823702694611940655244357409099680034971302518103812211624956321920827055066844947229265970822393481217032893324154190790059591078119607350437850898996440165645683945301217361716983428057080200387189415760477034583808529462556138315745923270353455744564739650679133447439166296866048401691679236686419776896651814847297396303383842646431326291858142881975969446295859247031151126287934422058017413855833245966664365338372493241556131774539924255223010758021586108521955500405479925273385271348077021958679440946752364230244295058909809136626939278418353196273929468655967067971043884296177227532763399170957614329518002531279843771124011144065951255955869666537580333445910586447285752317680982291240206903977295500293041897424827790804892689804256279783051778485441590289564069522799447657746077131558476703015247167589279510999311563619922570840265757680613817422097462313218977495266116396935803377152071159668279617999335859817044739960742123795258737538117110904266846688139718719729338997894466363401529293146081751790438005818611659567767811837366820317986597407827514530345272303520560344541617444696772268352431164376328594506613891670430724880201308473010702401690878851753286829800029470967188840838220916813160841204613822791815694250260859003449503481759802372361783248248146579934820300634605369614095911293579825874276003188551746509520411590709930571565525088901394267315170276811464781551203367812655047486529815553544235188165521807328626888788300405137944974058313530634311420548232534659619321543459143929221136775433742536618745551419360693037162929215349115227287922587987259936123417874458944531807024786767486407844253987704721518057403280158752644385796387033813871660285680630044607362550985478516292033282034140923078831850931321585785116832491151646728922801603806696390165820388196854195876121845290265790942306264749217044016494667286912901730720091730313561163721411650069004709714273934543625514840206905060600104134772848812432064812534855234338411254115444091034951230708480449721481678898109391843449749180861362728200471163717865083726124973981821522698215796338700177327989025730014455336628059718748070403681437349821578379086871062649236063763218231918835163329646235695836933022588841196808084595211480096514451823706275754735232520108398739208142184517472456268315440266612301945046843739496766453045187908902002042631891101258403725458803411382427376398239652380730089875393547873489405701887200448574338376310825333439278955449530038940995376147145605972014287375087260076686546750807601126621897082437798088621192019830568048048633492843342817260826589731138815298619217648493240570791938195927617897655342761425587012275044376773302861707400028689346070858555305451926207480065175064063962333113822714952038380678418482793486240142821555852185589824403560177192037496293917772246926994146056204814814700342538605714932145976845419232451981365439309584125746417780029232936477238526991299798274152806482931948617768462329926187303360244837343153966774089061247873518391146673840083782519183721736148193746324605982605828978953221220847294201187854657958197538215611659159376629396975670711826264061161190314396681584520080110455087764816145339098197917539172426780466454816561908530329729976359593075691965650881728912239733764374238775228418651569488342206587663672282428870448749266034282598141392204537103746240561141537791597066578129645536219235512689073021130728434341322631441890771866516104631264435533599596172220238345298866864192923347300863284071718085305356148698668094312559127306143954192664133729316008841889649522366247230634728577626975468496606288610488500768626655545633953629126901650905205136155966039847489832983868417616998565526010277324402943806868332212793346614464891098229918287380953158416347771762299969373391854255396603796564939221114841182410848920395034905359584492137847355002919504565361320170287266946700892232490055789884345411207595050660936566645568224044145462343725017020313517645727786904783062069219661734242349545378799980520501670494339665199916043291714354046833219591039262632631191703158628119293614033107146236915412694632825240678631610059063342374277802406642558685688110551972026958566081022751444666834949771652316185165922321441671765949488983306485881357471983070200765374868910414051806798944953854814779383712472124346089011940856568342087839038132457093880218173284509983143983414528669297186456261337869690591385201234922166774798006232233915734037443667517553310945690683664550125118150387174354078841992371536714941861358309176184267060441703378461722485089841219295151222229887953455325536233396216783016747803562112458433499053219887266900238422072656346485573715493172599991131922470650907626171217649645472026736056116759010664937377129674981416930640142757375202777465175082037044954576774368069079671573574898123023664817638452148245673324318295207716465236475304989661340774589191466631795239214885519085492794556272759340533517875497415504628782389153258010640164355038785057376443058094846352865762256236261317899714877824732845673181336337833286507412388160668194920053096433436386762078357430845098268314564392741783979926495422027271294476357114006217257842943594861557683211359427033903022091187779154929570419310060531588427161575252261008621219832503226475673509747409559502383764025689542348242705179176352780366199120574725218471981405585576952824475364024500757744344643528086631493529881748616229964350867937972594652959399208025036854181176115607009471186755031781915382575536556049340591435098358373682572931844335948935968961428146934677930868516479581127571990163638146077156913569942763690379014112438693118261503170430774772620860476866323676571298085538506991705496296623898087583881825835417210258375883200643766546365603712981897665614239301814930329992131926228727373737781776863856224291248501491522128719357146528705268595071786932355970859359553904005566436270953085444755233597510014781148730573151809314097186787066867057563302355658797585131782767369809583703350044280980218669358028197266235040956639349314185214239755903161279580290539172261518953227308036593266409028483665604167100528031660067964191910482598886573681606813506592494904617528687513687674732913933714050401329301909733360885153792262926000208346885411422754553453606421100940155570126865632506648410598600628521431853268308083157869200076606462604055160102689482602984841838747795651683159469318172514967128322066937706625218063847293858853972197801949349163619252604393780101734139523385097577452076373620468488681654734561516069194384112575439663224307250923048228854073997408323480627201451369521208969825609070968354042024639784629399502622176705309018376007463073923343163415283181979736952791349685836273472898186942203613593301863242785651318042902061161156792613734691078121613899737918289574774133525769822712211257286738311690952719481563081884152634146503728955536610837182813212500574579073148392938876032720863665752022289823631707847795928201741955089077260322796887733983972776537663855415032066362598876941005991394716175612411439758954437250184719400208595876338892782697016452179614093296070868207754276121662914549350697218744913824954311758190759006077624240066973657255074419376672486777465219504208479918992203330787326198074371701772837568157847523302604076334881392023862740460711143769116681966726690143874815574671514488684333980805364073972768626757487473071321344160089685462539386491853075824340583115448026849855314517288983818711820133581949278241152797661083049175849838837535689240688974004927162825555885867848965346013708635997381937424636468345840499461538860248936154188336421202552945155731714432952671608320000017313144139110667316873152229875325746277347359712440784931950252967075084626080349011060363745668511158405159203473219093003098544775331858456982609068071647453430458590948114079885294014090809369996926422364516847079131426353111764085517809932550456596572636476602444928550496669351314622093829460266328998321321958312249232611478436656019713220127034236076489024960884039256869437872879082780131339138959476146920245077332715607881987559161335624014364884913788460848373538521594077303590654473679599078080218677140653785339883110243355722114673932499853369848306515104081731607399967628516852384789145082537300631407575913746589771361335581998565558475068696517040000137661848304058112023620924348802042286947024901963523119421135819148634591941972268132212183489996393608214152392734358493488920336456951261964475826786316984735882222393812748775945199758049513483322754923118103773872767517020656314548610563915260859621880015345090231430024922994163289779010702566940685435920477852446103206902202807466608999358102276150749734313915588922635815458185866655095121729561086145811915518475774005220647659040971903055567033596914749714186464886804213457947654613392955447900092444636094494945308018799111854024756494451317585660405705864951154454253821009033228372495061466034235259275347408897436655232492220443825452057349176896761291563674403917865254479304068973287730333902879801855316287724753701062893284491656940978370364078578651046420162399294890591311700502858272689673352537052452895127394117746552169803081496842005169806002186600859170437336592418522466616624228149377339570197945551017884078549718872364053289458620355073781791245712574826175477504661587624221871617900458527349082093689714777083803821806493085249032440354608622737606608150979293390458006282976244480966508320615136902913605634059849600162189173488970327629008094371896837346168694193040844974132989076405075959594005098023914079211937097844263689896751479755296533052752467930455294283547695888050181295467491763440816486604774918987051868788123711441918674688754106390084323559133031255593533832307605667736916994260332221276170995761348190020691408295987251987416298599045006978869979305078068214857812967536871962505424404068676930899539888854451609284034023574617710750357137962132039759615716179548807820587872165018098598688481417450434991084212939316607448315677101177056690566330363566797056740132910909315602370279673811409450260571036455630329585379062786732687974765734732019585997685043758779822831835183862911917237136422524695632622088660207799055921865713991441826830582149619373603711444404065267184113611908240373659527984612861402875755034750817921634143677101693634630013639197073987765306500931755580373690991911514465535102202749767947968917876585087811013658454591001347814062424980357794421051497719299132547417412586186730315861547471709023630970246288220965014724625937860826947129059684349741459088988430007678914271563806059683930638416849113948689964675261490747360793663346497086860888837243392623182782862680798401183616745547962463448712409106561838564392320322168778364854119211745484542116537502825528746923655844782269376196907192028616721962377933975770364040518717823689513517052773089025451068413670018279596805127689762511837171053644014924220791891533908246413085561863354026246092715875287874580568042041819639246007610152329687963273792472697490567030935903391020187746135682488998062228305656676705786270967425189669485262036332441939540996678589209962012096446704081691120000813848212425345248532635594466830628450054046499998320762698647395834420152301483711399769838897775262798961850418730840095356762245890899057096716720312556987902499770683113098130023630905847711935266559260405332495337997266306039498313208660162271212483298211611237258917546151574404419751991537101975943087861365180117900462489925488143733772417229214778570566742386260736991889389634908181909786737416621866103939033705128453422433199732442684956709533402680516442103592164623164700446075246593376974368289702427722617564487553011902948218077523402448808113976837524540690599379486299554825612556699214059947677123691852670054324519911462222411290584221882326524707810555809860717981278860198107651703651626500236264779828790142526491788278322465584280077400627578149447813542845800660448603989909171781942066903483350871441084847466592920453663182487451307364907398971719874338562616867541688855197256920110801602557028429888094500576551728286534224438004376005781619299928086428118808405266292556781337381729295616861797810896002352581438498975457774123732971535878597794164233093630528377594769887651355754442967778665640995831170190571593493553717418127981785484847635773213707281485676491072840813962838568988068263024567997594713567300618905040805786087191497675395468698556667301954049927943877027758191448781492895909650279577454429719062066797065965782013795677681384863322941105269235954360850376875746318570685366495560374603509019894405290426505734597481905819603921473821150882959945081468798546113042682718982085530608816060728110715774139958279177540044736110032019045350316663618579586382379584637771558281615766529844290233709402273963663381691413126427305104185075213932195831152215318251140303571120091608987472251079921464160757112582452008335116648620951383567873175452156927038100490154310745586807089032060358317580101883096901920374454243956586317999990597375322504800190638131852279446936833500238346666870507896251912323173926523381863046011117031574544835698388545724340775813925309836684001592158043404842611945607977068633673063116813907022305589938742839350029581162466168198562351767489815297244302357641747997532370304470311430547522077989670491393052440665094478501287044502871012059989798307948817657837397162421497535866398270637964308348769600424776799684628359553338945101997380154427692898547115791556313492587349249784179506737331176489368491776549006569499319101694330872312603857694229814010330278761547667407902010783732571327593814574660987257602528399638010843250581476247178414168920128631457665368397800572281349805754624797283137310673822066045759529934579391582956113914281788568391291610652410132772461332704214908553498532673417206374292291224666950637710340194919568158544403527063323418214086996834514842399358130437489143735831516219035025401443373867465727298950290079668791229691507104932682409739355086701455760602840944991460796494258639715738287122518874815549380623282936932628234776370415200140799116342168160629695520352190235311879179825370238669155842759102930465044625720715294934116334048808610173675874707677423516450210598327054377269268588123691165094668224978355806610580570391757137548994130194381419315105278433128950026016332475715143621200805086525181675142008197212356628765690116146342243050162630916066240683104076732895368834658197320633262533070346578195200483739563900876982057058442972493646327691271795118936612877219850097347151769603491405373224183123042932097834290314365243598972619225977997046438823297600090778128527704055494024015989820379418081498015687357949194791369325817070614161679642509053999722479724333388019901372016306670235359321890517598350388173163247281584069524493894267426782489377843798439960483034387488494835831901652289734240618606341739643571218932341763877865597745635015448890677713126259220614299428260351943016258664051027742396728075240325732880352421899024231355192671792007680715732585566268279139048728583495785108168009289126495094348886841733216554597528162661920242641268680342834667341052336263846325696277312627550797127702129397560624787066319257036110031630856701983369386505231700488148471151236551579305472277142635913101873323480354512095515270038508521235846765612211736766133909457274164121161127805973791756022622828026492276166198948117720152462815699074401545527261903287042750181674036415485407092086040986627731382225041330885871447502936645925586237669302097511465860635525790960348504410342982546146965410625495987633921229683169954445868873337753197436281011276217688131284099949733193847112440835641878906638863982496950585021098851880971380373249211890896542149618498554774545599158620023643330328548785180495577472114383045440646964889145348009662805896722914413920514549319425382597420693853143252186454164624006441996418504112967558210010781337714502975254929929758221533863604855371547567078753379040789927552281824871730773259425699957266389397566309227152522336339015406936377484408776569655541322303027500330365995322901942688958819555948670398380761326992361249440648773300262366603288820779710426933861881255928989686849120972671410232403198190154749066451698813516842657729586350629845839117898546811317007805794989509297482840381993356972455246604937249068598708811510222858208337437369254277430697631712636713572190042403202485286456532868365767167591148415472938759182382909462261860450760016123211198638489325539772495832766989849949690910393851936038663988701497690991946957577033645484140044835283767728370573336069867288879157105524177206727226941202487970553893247590385567168545207643829411640622524219228204399743256995870129255140571003338760509062106487038983078465424290047827216387549039147791882264497989982434600453314153985685885940746848188971279842414632913902251675358547187942203217128586017296832173116502913821483949620409563174377247067142975899166661300053728099490712223727158139247957411634350456800869374830154719060009824755266835556763444782660808256582236693454867313969779572617812420456849568371543327443598879625008846273876872585365448678024599501712780283571722518376981598402838515583364573101171285094324832394884020333057734862389934504942854169421562536555327351359136438800071390891212328274690307773031983638999877152369607418641051518387031422531738835159503955821656422527712881378432583715604756090196754139323841727488445491672520065544217071982865958220999742027418176182492163805248665413631251055739401435425497856496990849745768855935972400214049563166292833586284578839288189712418233286464056491302217302775020771443016209746221981869753798339878262694412350384579176759641789444181820117453562798425071143458390328220161464787311430316568522877197831207810399348436297849662715304385727442483885031447960135065305523800985931983136856799421496442220766317062187769339982430608203462506139308464588832082815128457743786032341936291821158091759663280888735031667352584928283950629000976614890684951237359473245033460953789650651333205948008985849061208438832107156163236669503224773531643028096388278761158824631962041805771337110483074367014172545787979220831438039855146583118360658741742221806329767334497486079390439379131040674654419442231398776436685742038417215727772937243650176891881635827283387500180136668140807784369470429522737154415352088393105936482313880251238162557528853120293991093327892659455561098035017904761480065085731903123196822418004632552333664827775362551305600832536673342340517918266677814854499761778457256003489290668814703477010110719909008352236584533884802219310113153227100456916721768871391151230525234709497663743638988938050463910065948373718426320704897605893853960855821203064256554819652051077485415514428332585703409010201542515221646448000218701749577131170938219396463939507737367433599406593090087892558804886455071014185067369419875598027337100434274466172132067830709981379611937676862404298078524275468446260240081712822363134473792836336029966145810123292942436127284018326869390501508016890774495113679590202126819880238111844991994058898074628566150537347056478015878062343473317890754065283869028777101757273488204567750339247148427945512819990053217582837645266472345996439692655555664779844978086499194729689175473172640280636735301202820189516783268070418362978264030793727128624806727699586986833831568871930934138672373510925134892772241445833209794875076038674663903663422804421269036227599709543023285216062603945956919459659656687086937448450865384186239744866297176387310471937626482195532896919706092126617951440667534605678917037805604004129815644371001101826155535413119148246993847541395805799416743163219032343229977079328610416544668991148971780871355096333748891129312804258064010419398540672318490527027557035032945407337841573102674116637452658044319451749262782826141570705098946904491307543207356549775811267460145774515501188331425191890298366428207207616983343593506143898799253854443778150859490340726371226939055005940044165022040767681180772114367142777107149284303433850060442398490396111703051310784721529157669505876406483861688225541066812186300690160493672502875986463316117803245920370430270556345142506024476946733529618673734096240973246178406643753064474946794219783818168681745641655174510228278339123405425377452674435919001086568886046914762365945927306517713554403814276774017490459749364997981297938464770752423597622294566555455836333438336348094497434330963429855877189676127653562355798908581305443267647743435639904301405654541970007275800523116870021713919529501918635849405434425758506485813994541608046372818718507656227591503111830709035862363353795157169792480138107049188663333166312374238854683761500014306729297922098907349351056459058537713560912503131110961699184826792683759263694533607921604716167686110632084484970113580868337316134924777544907276609167697734897517266668992310286585901249487468717500312760798840143789563344896208246509043830011004007635055140284687254013818508497209757027550031881202604282521528527815640113127521869815176960735192093151597323089218135985679928299606318302624414951041257857283441504587457501991106352289880452791276117317727420083973076283220506813392252831985778322609212929337641038753466033516556753990141102842095899078084862069328251997003850753157898842265723219764736120240845048904658943663647729982781322382768853355932985629197829136231446087794162934688216757595742921805541749822026571353201386399889296498323118441268087703948479885090813932406177137435720307539215224154498390719881608837192657498159360041405090379484473191189637167262932733216525521079976680285089362225132973467769325340581013567950270129894541637930936780154872291005935502172914802408454688687127268152206755955131951358528323848997502939189947019843713004431626419422241059959913262050455607996930735874562466322397589209302881786549315563000961568957687671040294282874576785049622748404609359042042634619386510044751734226253624333040467804668090102770661187831008619239934288628942448755211910379692623672543478229672602410146832680806559560470205376379302868402955229034579181681947227059114413276761774873084676593978723209474511603084801867234832102367495563163157778327123904708572354922162233810363177749436194267856880130115867705995609994333620124260556425037939334260138524015375843446897667227419789685575798428779310600762569130541298234430084748739016695026245572747038311189756860524640744197241737346920320884628816180943953938697356850478358007391480024953540193878449088062130252866960708260486208759850966779046715345719846180424503962808234388624791197586219599109862317334088521424980226321919057995012490707336943343846328655662757522607336835292306013085167310192988649247332488790802127347850774039181144449522749382323017573543913041226653777056727638157797171881797608220685234426111633293767156557968565319231612116843024750907366325614738249209418596510121457165715520886682777510348183305414742723836973448826208122687909727656669416722315823846848446965348433876723097911909558668085782206307494698792376379230171303913390978289327555692703491634023239961128723861031224907414490236133280879141623915055590465481981407582328177547181233457021158038071898620551604200054346937223480928554472015250035896803825473345241963717294659384261665566404889315547890229696596263604550403825496487634624850461000050332227338851110317769773693924794880476511216161002463812110291229412783253348904171513640039722621940534798101631054861081101858900501755639043770606967132455713309587108347002348002443024053006593651005005963763170003877585131029384713095823938626291673029436513864617139498114627262946486246666915731627355211946699996957281321960636435944286864951467612005539871338202368357552649638660827593344325278051787543801392977988641984255922906099091778979231609487301458080159818061256861093854342573115787955470426102365772679335753116538203480784945132665040137302588870943996013522546459916637175556355577713345392318801794885495087123494832360776486967933630153911032434567708167924970992247834015054716556741389124326306939285304209114033067186447675826456582356136323076228140506455609723012612713109697904891618628633733407229027497164697393139968524502267327425531223813299671112561452225557424179144074100195330998466343873692418754892740275370097167082533084750186406523257646873423507069847758990062637559780462098400727832839749863781305043370467121103262537715883723490340478656139628346427261300125800101888953429012191730298044976583978561017501327765406399848129621340128484067373563934870086365530278481711814192160446616189638799189712265215979771503997600442586542817080748105030397851414188739176649394475646862779760514476994930140958754220390545560421266401127456192152265733211506639776041355906636619923808604512989798721159864748483574389384641733816863434124335893363282694797153425327818920906765570265617741836008963021751838326808696230804640795427500221475725134737957493022896226731699083527537391611452676838871435354919630168315986892342301960470024799116240987030950256234222920433128902986639728069467749235165339369403505393723146876822357253727345031914446347107740468145580123219358748834803627848994335728227812737294788463230976069291438640163950778660712281642612483327669601750699180299063143432747526466705774789614065876091382283295713602809130637428879515624022158396815808801038963469803500950642437474278676044620817786045459709872075240622401039649022242222469271856684053962747905409910119849554574733027446827944488115199458562460877199073129064543977176645779427888776073937310059678144466699871841025878234990118972130272204901887900162758219011432061977647240756578013012891668683012421738752206714026132911259366741702772368006563574658800875354564819052729625170578620174165708753557933417185191661993178126356423945842619128993671817414000983808142159208097415113010841935141379720906011517238189015423803072714188030264737139967783531589413462085240250776020677543344491290081730738581974386037428212872408344618820125656299338430833811248555353176795057789468718507050181837024072248268877177499397136072620424837686554819861031831003205783061006598770253469761700787672937985469096558299031115476301458516658837498288330918991282370399288275418907928017335134996631047802072688660947689046049401117506067346940938426390700757856927675957761537270437986436576160449970370394850689483894701238931729610936150534240981892713047794476105013686791558750991704827400376107080543811865313466363281580995436369835277826541105856825772633708330088178922651596219242474843845043095045149243112453625923908845849465122030386829224330456305060936605911591632113735699500754243299326245020818370772386068090751994708743386402708272040197877316084069257643161253490850204000320110794513138766731226746337261206759716678616490755244256546286671759989324547348729214662902688662787820049271647350506760301928226187022477635305954523073234337809109058018314255363130633239353756355414738068009561141354530277815452247770446607345981970412304218805335602263011088854555223562849437237326397522956049879303687780102231211724986925366528071023934378647082501948798962228976717164929408276310500696996454768267087195684194378657437828742963508589949791785637393730336163124581438563573748710180682142030830430916160596795202033381747255944000969736992855598249062191280023397175426036615862311707118315157756953566223732844627036015009532331188251422631247459640223381410099510591398050863618837822712130276542086644132366805004054241380310364618546513644804994732062399712508447805790201848232149283364947207703927649663717254437170732969839873844687767109624592305098088689032804391696322455763229785506147489756496755794919927633781958710871602702063012569471190584779444685536443533946520697245240010799170342266172006566364255168691058515484223838241917110762589923101249601537873329538204533576857209786011699853551933282996014607782839577911214025077622502181294048036094822960101996830114774021516798633586227451323239561836720834760231475154902135831792617759852541200904404129103340795267619477585304472322634497322489699450129662870683584773287351278117565109151981766146678067044239777470017013492836399996348307379460197007375880721803561951727223374629510926516171092732566809734016925718834276442719934003032815874312865631450658266978161998433085963319351918088070429243877175116054429746538374214710227748518241463536473993330797574231772829762575699379504037241605901547343481857925655555600251715196454751375727237251378556186421431269240324878397447255542082232530229302795107771495929230052704497435549305408820254027702481431080224319099791033305673023757461493312724503210419062065293548076296317113621243573502310822637803010758631143380546826727155670327807989510610118916874088007990550430918904108472877905151625967416134342649245176104836813514467278229765354918770920365534861587204941187960341631512865721289700971683499488213498568790547326141076627615102456881868886634347817089897469296966599804396438910531412434696281205650483719815666021736815353368765265183733667550430313086884717651410304349663843132670369039603422057893442328421734035375976285141632427705786038987687040058929846920037566816055714555503517772335425452933636836011646079265128910017940636306728410729716049364234914185175181379677210645308843875979887533493817727134871956118848488039352954407403076126893687514436595993416457566110515067639835503974510526595292858454720193610176415612623422844968889073898051844823358767013785897812391782562585827838569096004045709075037379012995499054680444300209769366491831237617122999946206066346011280000416079791549800956544232355172029392877181695463566821308414897928810241000558586099197351527774263564274157001654172496185754066763207031183601380378411516108124576248640459004168390773437199220608935217687462041058178941717466680975374222117933880386225608827493385675413962448342955184616628758337016015135046772258304197621135056678655889634431179209753046066860486295514874800222160257585419649255199793408621264200056739827936190159214765329226000604705204120175397446752621333137745622527124097095912465913812325528319784909048797994831162981159227658390503442703340287631928922039467655511245482579474430418640849649976668069489489970951166156411357880168692831999536769435475631659069467780665449198749631525402982985560045636560298434538681227353603751534101588508512572601345190730986872108426806347755994566880388630190366841880957520471883149318102466272957098087296401082782692055943815267306295430309645571355875555918515468833567897396335229844616195534738463849691275867323757359967804515912748709973358386596725241851358455593763801286068581527986668910030896963376523286719933589659075549260879874452655861453583168625971063509305138760469515545106361245263981979933003246921751344528254984008474408873285106485566596647180115729368896000792708284835382089057543699827864417634861918824133033677721899680876860183943087396046983368993793695323036818947512228857208500021144311630263713594406896616211571524532992031389666988520040633587818957611173148176554930729178600430963390028945625679335700740086279564714973538642326388565254878077020900205783588378674618618966926945009908764961424377815973202874834886350023103468955953039794946306740063487698789684405702247906518451674438638194596622459127164010697331232226239363960461090649356515735658187412650819863748200039376859680250317487810329889456379184547176130576297041124438570410964420249881118495011781386691591849418411596216328086507732963718179506220767442538906523756497060172025369279785146905405874110223044031315501755830265000767720147991090143178275221790675547682098513221317247019743463208619225977410612355718795980976760540692972502622568861505226584274147239644531509397611201278625123662502537340774050486613937597673512388303872385538134401399205985801482670584072293276609881140290992235020724435215553115121698198137047434322075443777462323691044205113994825184428075353525739816231823427462356927353926188333390686151290393581777478640839869578662367279085552090443707554897157200343818384962063019783632531126357542145281121566372031687505675094890983307701790918555701347388845375714311601172255486198264718290068566021004887551982171663294876097442500181020435892796195616204507574300073361663922022436577027206957388527223400324978529334943401123379101604560529095798051102546032526322513954421442866362765991596600499450279394564095819954456361671234982451201232295889729046587398731134863515055225686302161539991320038931552426484508971570602674946747370951356949630809414578257194392841484243356349608623059064943849715695646664638477979897653059169461155157728213494497982724405191168286903346133612669323767991581451628170185993072679505107617826798940682429950032069705055639227717746341799891323386738913588920093898106051298167254348322222705515009453260691163765661308393542111935781114371733965202282554926086114567826342196863784058209827958229567549575713683149768591797874125958017723536355567188716519189325714621149573392451904263992251746357678754483047715837235454839343843560144405292271487591349990256542019677624201746859708353054290583094366889205709427931125706510298919041040008846501885600178316183334171942615141298145285089984025999673590042830369048161454926044204124928566681394324827812171081539804989733909201508167114992617871717724033725020645927610454538383555864823435990526202236866650945822785256306608277985268077128802860678219570475802196346891396048855441219890644262885371050082698773664811230629337107622416094311297198617458342148985593982714086999456452676364493557785288476665336240848908897255471201033456064262878365268672986742189346522365929589286475052216427254010245641804609426245211539775273192637403751747276761510984212294588332278693215686995156690457624348824588169233841431939939144262971985921011609019541232712178505886941791486311162550637005073599014042614936635627843552537462548937765067714663633693318071412857696910807054649703125817899786946904060457188880255278304934936795713778365717241784320224983031226720778717542898015689663860808080755791754626561835501150822092223632834739565745207016899409824234070480239789109377962942664668316245587456898744480747256200446091143324123186326188955045383198641203190137926130630450476331705729061454214853246129614416664263002660251342129392969378469997403053498978031138369346475770583423259374940632452389549112386478595128127095496652420690345190601369363943813005186882077412416844987818108288545730823101583342891298139888402300572119240171735144558288520292846527516614015140557829304457083352654683705802346705839313427267122889283826905966440996912962211974360334035647051648290267039631319908724995157759304165391827895054013775865851209226466274149320488237278809599160850780274266752407450531752990635206239006626218724432012469844289835444334842655818763833272207496251097531696763520782481124166041326090770030124347906113390799987096181527237443004974043614969617475459421328162702634221917096048438978151215252949524468271357140687024674251523806761113354837167566283499155710608109841846000380493406433872554438062616297681446610016341558521715937252002074103680062759987427092895066742975444856399528746634879565809388986888218927702384581555685258715448914501618673893255732955560270717997640141033751860687719144399479770275132323488435135669964958389736230368451389898492462116677825699493949789832548129613355290976233208391403217915905380523717848532530028677046711517322846594770184316462871579792010199330186008968819023220404987766988362463026061035931200773459449202529847047265381341322429385805388610339783731190329625796697557791676777594173922853737443032933539329687690810647191712470143555847020991140697772704942893228918327028329597819226182931474199656451805061002083930950834013324336596256393842195514877623712479135583598896750406900411861701164861322859978949790512339942652641891466500642335882504216297056217255107474095793407872586919281572091329776527715633284873901985579638749441064309531594901373324535844171026754534127981025571292469408166914547369418082823229641769550502550407949317382590282630971201746362170968381795390516683365026659411807235293741327075366321468401740483374396712924818140586072673650907876283150345889679515140174127033408043484396840558243706682445466634318683259147489972068304413693465252431026653551911117111911402294703815551013909247508582517285576970283526462659480446254076373712017694788726189511666606450793251184662154921008890489823122547648897952026585315947876045264905524900302026645592083202047109936034172099044676012445617808604962162334074063599766546421418154306704212029386429673708461136148880545725062687537800151299742011766536115512840432774617920596673698254073838351580808091312094040071260935025686648688488813590870606891317185285463738506107447974023094496217720879851376995548403043438799532714264314765251654680604177326575276795494495411929132480010325687236105059051540882338267185390509512793433523922893363973923301148188571358998577998028792797141816161264950911932519405932281359240724185827869630541992261092019446294609530179669119336477977806329123541465692337119068146130154285430976660076845649265003266335936106726272983520572994815140706642259511002931974437190281587973506525416609667893365120652784178004361692277763854677030391722596535097398737443760868882184841701770552100457983189396654779877409614537448827466276645063040666345142736781421525048038969933595278537139208150823230518967752004168987270558131789694562273627323846842802077794147153936715416380809548716396211083937655130581795634665696207189810214229924168764778422063197762027194985839413004393871200488815275234397619773019195013700609983756803632577415713047405011378161553210687851161346848273503504579951471699595742367243835371704131938544047990813676522912480955911637936771226897814393549882112490396156358472750011729540229714099254529734645604958847440046658973420726264837403584575658288827985615635341834091571167680567121652645567653300269972774872103304710587537862863712854581362132909521170125242369354396282187080264614682071296491126125260064459454913467225345480355568439550927464980918964193692414535796262523634786980515351869739206751755282716170308961076017848826951096227286365249264876832282593214120936379804328183117974057649310215193896058168888162115940323707624055143002212734442618603322000781505184271916660585602130421933566440015365089694341004693866484642965939631851275132715156603029474128610876541398714238756704745726910564923938364718202779427815038047694306100324860372161693030070479839905271042114911407322719542051667449134564407966237641459374030964761254207361942757161314477974941628218652676751197861345202555963227963241112029754507751891882658808460262846620949059550678845426286477497152617436119017981763683886299352526962720511248656397662508298105681854890464711331777491037669670033399789593439179607565655843744092017716536004925691894999149086303355517984072365450988143629608572615388552511067840885923216504493309981040243003204529063160142515502567866013438247270489454038931973908059238144671959118227786891563507127406175427718387010652703101339964166411171874771763135967947896422609770852133333432790180212794233968092976195512870905384477332829308187648994974221853379287496158821230295198059255482548672542170703773029284711351099232859684091340021786054862074541199825136759697085326968762556908499578086903452125962985859411976932633692249837525066586211055062029781317504127444847640065864831595712326913896696550773828045044452036239590839176555281903476021865985907238676404175165384046744061179253980113192095276069426628346353273388777210478658911639758922243919235640193202252776199466334002694762738145721648913112382013933163625324277167051298898024067721188564264150226060656959063247861523083725554390324584217961194678397860668056519572989834192027982662385847633283895774581044699140039529785074449564830305663517548563271222344515760641061051359571162479840500330969636277821191025364601089843455509334936224045114673865849809628099653833722574978432442082204648878636907144307063070940230167043887089078870309665612859908450745320123428678768460217024348629023467762556930527767380671520981679390520869073297177263516582509438550152879969856101789066980148888574898485783036300324002965308187415284828408861810957036229973063816593067414355100638991442742704545815134984870477916259576097399702117310102005557299452609699058082091040896870260916526505744969918898187935321873773279950054143872806599089086125866480070669162280597361508570250888719325421965372518130292190522370638041903802387936570386766517773624520651353699299799859622977723601163475656143330061006402840154150196745708863100208491672283553331353098687949978509899669367701877310240481541633378039264455828716626115567247694799072198890877504472125395260202640495544126864835973541960512811512435487938228825545305002801585638218130933352355946939505923736747751716426116946418126733758024651950989463191036803882550273939860664331108419496475800465364090522340397224073437595249515053917433125567196781850238949692458607880487780749058991744253526953103897585533140462533259677085029154532782716734948201286482920224995766301923683669145830794353094056678730778763747379711982946326199512405599882480002595952377288558031217712156641917689956408836994450657450229067113874117277217581874011953319581584205662368586540311464581071864702744225741765658473128614125551318090887889112847257991958474767811917722663569585867395437781959003146828452334703355827674656220123299980832604677430087774587891489127304807719109778134054759690920115177769294651252857244319490773004353702761665340476314863515935798625242679619505372220074734073459148966963670372086179543890702007413749669253586485705012938652292357498777877157025658063704830561415047667649965903419864850192993621001068530520261408380361511037299869806071584616817626703080820469097898920923613624910720449043103560564512365540967967640446119452588434718780409803437672690817219394591863623324074847700747097390265223015720087824234186436313674313560618657840856842398667408881727053034185821231961464405021730953318900952256955749578888375425113783967066600347557816537338887327944772667760992151884080983211703938918180123890733027592622812229874548817017408952286165036411746101221847487906028662294948961498853565754009919583417142875648903079543689662989848073418242351582580694142313940238970924308505612507199465215328212163760657169558905619210666631837544978765249580602538905305235614091737836055514195631753871471301520294650718617178382970025919388736430644253052846942321303842533719034758546644356616786769374263961536626599185058526616134543652229210036692007667650758470708899192837302979689900954526240081551023528800278283838594195848969156291241724564222217298812568844806889155684886556061433925579802372376392974765751936194802424416266623532554548549063708206046138350833626165536159484594633449987144010936088382519291216088378989697537645304064185147213053567940855445228305916370521168609945342306361042070365179955101825287222121649793691507243597952309034557769698556908155103899636770713233663524714943075864993373213926935130684928642849311543711932775535345770126081909106020753849428431261217121788846990821699467425459546344175122531264219893490353811350669593451746700955373324413016088709222384986578017219910950412750395182973790693926193825386077863433976681207157223239449125258748836380759358239314080027909186766584142274014670536307295904648473974359486365288840419133710962170814340330222826879389028388882011173895152487868350790238227963549782470532837525211741586569265741355081810455876616023304730991581926847985610472994040243617741618959947159982734997785371529342691924211411142129892133686360733839391509024565950362145105849680625757207421320684897099053177010902327592670327689643380836424445482167232467888366759215902768184421209548392168699324413428672631364636722970258326041098772123273273961891533500099974326629272769597132855611008320941797672197622260701878472003345492155872451058134568233701605913203706730323966400219864760810946158816474814725459115045454409394438411776155153367107035504363744626116165758970728321007853496417832397707168220373965364043833630362341499572672718299239454742768746202379712838414093460457764989194484215070624561851753414171062483367853796598587133614606997627588511199219243478424727600095360317895505304479865897434218142882460491453727637560472433749303894172495332370629832687763405898574118065567118204158081225522623689337852613054947648076519763523380619068842583715618093893276345152546265079852046427141134783993217417862481616568346884127355492095213768308959708314063124772521143301393295989188676741896201115029870241130902243840935042676939290271748421115227842252905700553668742238149292598965466028345711523945611356575450288294744181781377908563475945286208151352852156031618474771598596080463831326973413795663446421218446904643667682482600927083790513573835373644447105006942807492298426959376957521615395139622522677932227951482933871073716262881494457563649928630430611471466077426107541084904744861293694737163766376272633345964064105527131564123208587121030966523955981264744544806730606785120530622023619084061311455286132960415388884958371089037934151586012947108148964865314900327256112497315359795625137583604807532790832398484076065775236930719772986179454502728470644777123496564360201029151915628254717255793569652168784622075551413650644029525777753062191589401366137767969128998184146002021899090284392993480785937943547331009227235730868149618165051214323108677833010688899913678018954518986720558535090328379623077055834643677665707407179797667173410043674281967143804625269612945441988207705854844771975052227727502837354320286442639559394504462064254807294534954747699440855828631706812742969614698170747368414511066575285571667974432575539006753919131440180004522937857906378803361409668516148658400843522631800802676076736635071335536008032062289387451309174824936012281302876045070426964807978007239109198161093627721770610068258597799530455718627578669589464219490984214736582715049043620603604200745229113931890581151288852806559784830497906634501834200200790729189700670651281053943314162233650536658058008095680037629354675830652064660780888438891036057655894699264248048429979481823291070783671242023644183556087303973190670939122426618225050734233897592423542542992709154528616890652588228852393227367811126801493800643923055519947554598155817091696256991914231338153049640035777529692325696405563043950815388716372650782411297365833559688056172878539173125244464433855950306947570112777901166915764666224084966303979893682061537287925332342676432858761219302329775371526079386854815183690679213133751240021700138689331468706950067407524292034153462966940865370908978059015438542048276241062134169875644979743792741940791326183254063836542110431353610343434315076595959728383670468083893556700323283301549007227933659208056125896209771517597787590166962662494164525560493923858412219940363957722194779037408977588635496995686662253940805235449977333329834906880286661476343986372098732178619914412403396441045957813118916921671433341344796745561567982791899302521001809439662244955275347547761450461157453832657361354111685029934342553450233457589229070438555215327443188213317655876636736570215874548844730995831457760259555681092906169663813421505795776105056065622651258005761181162119406810411694012911008273249338648908377811736087158955848523112491818486449681715096130454473308081179932152976316812111087624347451033653380303673817816451957068705896387189112829034951647925381504295614255610983434735990876857123123876103609879936874824434972002414904165990879994171036614601839722528692227082116282495788317937839746425056979105817892555412803439384529703603236074833159782123827433812363558769288173099995815977884212903951208941955240656460385084833385700705455472657226907496229070141484499094792704308560796465189262624079120551553297829356758521951602943421416953813532977488390834810961328319781613448317506502162082998902459274178301018293321177674829287686022534551066124103372879715636655866577128903071309725109896329501979107793056048573879299172726678127120515534223471724189568108985973079233756944311770743687432211786355200948835471474121294595013323129003515048632067167591167949060490272594300198934766693305487921812274664447624080169493785528943466341703522914701827840942590428529522638699240006458520028606000144240404848497019523653678856923432912261559322267361811409589718766164308423008717249038738345070329926246722781336575741216162814027810272520667002959150001288658310160311948823831272209078108283277335913185078886990834346857654909278379719687027081364297366186171207065115298673298626158929498703740447260305930758103056764110685701422007546684262576570220084194335597346604306431289498798422418729002099045381342148260420475801448918349011513781201907421959874989583598456472185938831584644095387679680176088296696533294932998990039201290955283156353886408671020444763972594909379097551823420572494193420947879247465005151061027487823632934308591519145146934038646788074681983114204138310304052307253761180152609305327534766311601018722766300341133885233355296958568461982764208026428382412568445277125811680842805482126091727299573678272221775763272110904032004552122591488918413504380857294178257523999165890143844476574796067065975675795796666334393043073431532310005539870575821903392994541156367817319202768779424778230816993854239923693020847080857233293997345843310761200559151843593234925106454896297916593396481041916817829777124838495158805668324171706010223763224216161418100767097443678017266438268486878094964206978955245337006958719045272841669717926440185287411801766597312673897740177523050693996316829325618355812947561053238763253004045637754925914312305837804017826548806498191510772242230800054585056160662803728451940701753428168089292863737321592012639827577940339181209569911538875084367842960519949663194890696860965581860538267439260998519375246084810223083214715192567173376298381490542460786068397840639113941644228047688673791663214513379295026205296089366583417683170716107645326792177578072121842744640702956636790049027189502613863002066728048303153325334341752679126330422935933621674495885341168458943795049730744442034226119440029189249148799249360469818007663828102938396977670541116149043633448663711774953019990451763299609558576833889745776814148494069503074526976207978157556953938084575131934706649546955807656189922883298248516855856316618430187336851876764077809165085636726079422577656983851458164674376395452220591804687954739650891450718481970293950885320329452277995668493166267549473523062852784532769190107768278329431780271346132032205427556836899559780218434786789758326030773581987061166279974805431866817543624843261446003025579070964300005305387506464439756072430877689217214616440608065855484600922417137931255907582229970000470795022865434145815002079276426050609555664914270805033734244253687485982571259030894202400133749569623396236050628725854282032254667118570975310010703490959200693626970916643719538496289831581574654960261872946945165262665685986671306426142858407470602736098026677984606681708712255859753446249745969048346471434761730339891120643734674845138964698931835296321258863387713578717228822773135397883803886391865984220208764740968320589849759071548419362379464080183441976940397916811364243990183314254914544901203590528767242339039678929106228868986950642171397171491670863227077221274981454598284591441911753356591091659851939087850071655641744246824004199527233846429379454822564198172593331344481667427354508811038734470335618513002708268171146439262168913450460080734033003299906112965352052090444136324358101057009829796807537471620425852191645473223729572888671745838417301049815996261505564215100494177306947147823031289595161021138730577309826842106907288315599709901685466280024337356458934357389722522118603995859310867353097571046704447931487039144506094769564035595287686227496039442869770600798538061931417457675350886108375708810378735043480155484339382198921639939200854306704602296873453434198462173163079367661763272960984929082343583124812865022074240146706307200910025655527130280297056896256767297897528383305146697111137374706515744725005369289176235170131882747075707923708512412853738853622445928401432733500467955798580255278947399587206026766879019500025884066110751264467293871344866035280047165218472283375548485243532066464957359370982520678196217689568490260941679429843140645140084945612854183114415153438657987047276869508442551668799687719490911664067680961072527580675845455176007043550730631738490940123580571385532771844106666477584225918635919332686000439914360355386253661774614453797592205604474419173606113469307699794688502123511204975341625263892222578811656127961840847639774989060369527582209112683126336712091105067432954825310022015065928616598612155517515152344423331412758472713329074795455846925814783655944111010424654181850127921823825171681359262987286176408221420233388818503619321123722704820435348391616608281574403993894179133478353051872065769265939478121653584648212225737328564435205158474055483861417774590294751358278199908433326047139481591280597987519829823287628862476200305708758739394374256510094603064410763489226170330054772902271053737303487905191945725903637425009565724261186718435462180702023025624818784791370381294232950915650213887962639990201427132123009874029605997999460400101789290380335467278464757082214022605882277119335584233580079251726672898005225141562383326913912754349915192134936126221490700282510365636394247783054286577472419598766399197436368420418313048344903168337047023225210621865593073979145374104287834096749398902998893816516905939432870929332376548493333938483207497336067575276080202191124260819698659670535673172353959451368522043229540262855971951630956493753598906640826870340966989503888101630703993786966689887386753350408103373638384276230051946770781829104747640286046438933619147560587322497509382338341951029505126097332265720160588103325909779228005550424828733243143867778156270994936150517936868891371455646086587747642758832864943241848713995054214333775261669777135686952076301982168242655550976135547924377192254891985554163988157870522041942312053184534907521298001499945817185498998735084199045858852946613575746328067496272023940198945107525328037470018825685078141231571042962871414841998282200705193370771247579250318489277219486701165394603155899201481550123810226193758113352548422005679127915382266763949529539440032745423304988250380273031603740819854225670818517833058555304395073880748318809711614602960963607315640091368897212600324352939708544166322401594729109983964385967719214564203638746629426996947262236272685130628374314595542612266207186057404861418655011909721660089947375773634840329187526629913202617406002709141566291853548474289883157429058991802528747360976635148837821038149782335413855940161274498837431627489069861611705400985305383335782475116916556292091846649639480573389941261060254868355198862418055171609750269918078814878175854483613226851499042443859334027682797167385000176936094859249879894279012089070687162455935086715163514647454523475134894974765899822242963905463283254620769370436579569999043822662904649815744927380462117281063775696328622948565653305992789547041262495738523879434300769742716016788328882543132543608456647032255005553726158064669872779273292026054630162929205786440687734039495696863979926565555519868326344827866478605553469576161178320730860731395359533925650363508790429928991707142774973428189519226943696732844785237299283628290938164687346190476122219312153322778813580200042755742201909712351679018948411978646548996321702487842116189731929322322054036732189061265461329643145406546884101198756022982218197018274257318530307522870552830313824311494069091497180673605440148472221134235870200398506573792954577407400076626329263046376287245765220487752310418535275048167158984742461611225610119664196488409391041855474633092216357669997396197505393292648724492390809120304873957783382791001319926490325263977475379619982570482184299162343841071924187021723558943156729408004853574274923931263344872902815760081109306880987543801129715765426583018316484737484890256525588254099712390736950244305994110503722186647615769184731190569678641251491624988779113219630676610628185095126620473274797872749662409617935320397194521449548860413901824590116628989422017699106509634986789923759932425491015953151998376432550737950094499035934498509576355311775259645262814351427978824096605246361628123594617009680362099582662692854233826426011906809516671663711952960168072895715143088746669790417828123977675857127957431709775560911409213102477732672804863605578872311661593590373171477961836274711892172711921163934323987252107390799717134842265987076427402702808192686388947388269628970151905037446198763665166985422911973207997910853607120399714827991904068186120332397010378564812901898593040811446591325685244051628615514160249849709713427869517753313626498595482608548597039158581415263184833919411568605957403037877032903257909616291148207987037382054434021840868141938293944369109123513640443824138239425283627823787197417291337585065761363604232845540063078432148795925426578097807022984134879020922330613150454959373121818120606640224410022739158693408940848102241920027640448187570718099832880559984396786829671262704103405625485799535743402285308864825954402008003188643885770103663788692577403837758860783584567244823565793816623331390279913452703781209797082070587429086241785747345909724900048862905151927172823569132499377652980454332122292803120507129680406235469632050862289492881885756652728188029771025176466732710376536650542700904953075101384553062636130473514391851793488218089450329725623154318915089519569360264347128353228454344488745434857023076380687140195781342973640193933811791970672792253865557640954229570025194805786204860652453125025251385792728616865870257337016258785048717519110465649633795600123658141698008235470634866522487326541893222429632866536882920306560000557285446283013911832699265666281758931566462030976330265905730841954362778035045235211065002487360251586477615329926838699405087130230895792803055707050477518845227433618998851593694380704798021296653239245405453200825629017219938153112959045242049061914203401851495607614683561152096933647357408248440500352602869954199780713983327599409336048028512616574298545941649615894620578350938279914395193428330778501980214810948817532746066202932883271654374513356097829323302004307037212968849942081068384625358063924922123357390110689394452138772038084751202119149648553354921727049415727424736273064813063849021724635738877556572183887161823406411399385252020083068371996866839590444841082869144971596017289140663620825720577198472797499557304540096225026636787100095433808952081674534008584166468461885991531557426370130185744778787933147801915468621630240603651458178380403927906100395054788329545094184862664747669680370284292741868273334548064823366136892847487108930308504856990144285607215724342737805921413806561820829128812304901333593044146541577295347475961805953967732410269595052041758098454997409669466397826350122292321100179898645262726977993336845117534099570004086195958318954716748124994680613634522960216188526966908148291763101758743603649537265277119946774159604359788089357758574410868935436973082153753121324011506134523739148090364555410624930339179556827953749653366396807427204168700930207996863768603102948757112893202405612628411923990328682423325085067391161046513151780332466599642504156355301091699956295410644230255741748755767402597255386685382768103755173057174844452741160142150703650608034215834493303394815572260517295534656869333831455307537898731352580467483791801689931387494100674769853759691385867091870554237191953463052918145843646016981855159574861123513279320266461659613185531490550309862771268237037980862931429522467188172248518382043478849914687460397593808462437323371471959611526603403668529946721159013122199781756136970594395430556429025716272473091743584387429561834895225635842717717111805900554527745952898551447431098476599361113269906057088057231552740884619409622812472858538406950976783166459814801412286187281102559701756764745247973407719916702376041167121064308379675755676539177325870162452015492698673374532979018580041527750396062651052904671177494000967550560830698149731237497159238912653751902387645341953769527483428260999228940934657830921980392086006967493213869086248875156803692157964834349927644450410676193300221877360364704834833599883527401975000363464350598818259492537585825169071985500147724238050474875401068772523045131079300408237629305150469763235645530110175464501973824115454043973369908200806317555999295030439246761437004285396652326496299970952721889137477414076876643528293913226947168467395505669390167507675482797526408686328525992237971865032380169823450173745893531259234076239962571705304338696180553521981771952045495996811460927500198669384914201094955897303953634040227448187517726006776667512380109992383075077505664843523991785357758738126850120426865252722265830095859632721787607030963881955444545918940693325396745297365972917832938574967152639209865537253136759604205444386632102178577242593987922090111337413397806115655838821624104353640178765832082125118896507505389460446741535688533225265796352735460130669616730025060154963827613363803328016539410081016287213880245594045420716720775167727537211095436548126765722152932199013586188715749488794875383619648404475462780682704508416278532601904117967718412710476388380822264889021761447240923483597291213406460540584169136425424116009282319479036957458666530917218341271605727819543389298538309326148530826837516018054655917196918865718256417094458864121762312018794004164720900019726455692417323705474254847066338739479985979293690537625108115561156152367355740484165873526152529103176760469941847744268323236898034870318703645834110010040306951527654729648406902042320798187035999376259767177961390511240354537635329306350701107757807834746467156956957974279790260550582584426844737230316267072733139493962164321176683063460945122148156328813491321366639092135818910427844724552862765227861811494324833887575342257767711455164590376166492418444610165859084055283715792608203660997994784723248088750194542521799583975089044229591645751741028182922135164978632063650624490627966822518996313049111686141974222759413830900211208618698321317188904473489863161726373682471499052953063115639593555611381560862657408622536486646724988297201404156190994500173194397363832426607120263546097541132992315814933045866390151938961131372985295249627595620942025958955970956471975234205038048719398391845054604403001196862388248282738873518752049485443086259106250442621441172228910609032267584538764565614210845107570330685617907718835307223379396179728365213041988447726639932584971478407083467740190091507761229780741686257072321218676948050252223867807895529730345192614954164784223865667296640142781077946294331176427093406295145036564933147912864899129496284311553029330152138614088583469295327109914641968901280137700365926560723276038888866632785796621591693427490878556339487462067431398557715317475093453728652689115298236415153705490704605196124260120543218406017182582393376972036715125433464880477991041059245678434368394906034101808408077722348191846532188722565923947318527676580369627412990367622506637084491985654169704545415527118858028966076475725191352530100770213184294354277950343169384622815736799930118468742085276649474267268337252677676860983421555278496241897681813978399385099265089395853291689481433536424406070642201975899370958047759212641998527211254945549824862300859546293181295545809945440724107925001003077151738256345066863738564648708105632956287274258098695395634567707408635801305419254600604453195566759065860990476708469600855873809630825151811873242397694320431908299993350211358067203776835416038158057179678760253046189270970490524733718437202473467764645985274296625118039454706974025918628570357510110397196812813085944162156483298204583764232835225508427203996829529147062350483066772816404685425420514898678870696928246856486355525279484880846672226034775888486026430266097176629126578878618814800513567193507133390014832195838452176110222770809121389430752532383313155522949045348242235856163798133446078379263210543624900488825713731852890856846877702501194746138558302679041079711174490302590363348739778312700299710164106175037433088405864895429589430441296258760524653977172348434172793171318887790724955342056032300719192716292711650886885796787897222600591563625665620098606473502436908762609488170956430840427313531701698554715438506349124646778938966908717098514406531974046099342239080717440890719087073396774821736606528014873267644914578932699767189525660974231442976119257316758967621107483908453169846519674967422014736415013391011159596978921279995357674085979460194597202279470008765493894160479177557897206337774450265715675939339723703915942796536531798457959232122855113239168397932267044480238152170019290324696443023843200558105515264688546002671463456480688784609183867603865392143650687366790805256439949659884333077534256743055461404978771964979885393712552063420815808815606512904464702217857816997455891868430160376736529473478649805915600751940461808207575177450273593897677286375699067225812943761055993691626732466714193704082654787281802424764804348766333042477843005722127681155367086017294893644193664347017253417074514614866821763213605090987706674664447394705348554399522728202711964868408848927286020027949471271003075205141095183511372356126328085783204165666803740139509620399269663726941228794173560045337368018743480676796329531216910056658849077857551834872188213357049037934552361970367507388613743021228998426621652047413387703094406654727178685141219551096481793205136508046486625316100369443606494384326816206760410836615281852784639771807011711933066332601116975263265335344378257835951459785517054753315360600355413095322950407761368304793859037178825245761628131930291224440601349728316053267526509924805059498749201646630208200609923153197805572533488689756769879220359344712477293567902171760637168633973412818054085534772809010538493399997168148345869928966246033254982829503112196179098995336481618846972343433510549787754431852371901574012077822026638918812734033878756069775763763304535596460089925185167488907972674717455888332218056424635959671544578388121010651901870985961296876454167741224559285323178400378154285054562357788909054675406813528956698230148812090725665675703105216957453103658370419029927135794680922460932077721540704222500340913752344276604195772693067177632639611208509046109196974346882685670609591731530584139023625986691892020928376301900229129346383292138017768056294777922576910606559533670599758991660022920837155833735201348283653690296012269748389402522001611198462331596188996835435578693482744440230028486720841207993346290834850703302200549181379758648178274914133308317088061973037662735969648854458945521236227248485193251440066827605544373870775159694427497807129977055080751142002705834456703299241823897814023473110261451240568340958862487247079522897293878292334326763555991445004753710010042517869447850612609093591643899311243629509454936577822492679768619043575885596818680696796153279154309798002691755257850176099610461007474231352971758770365689581375796319251226454701798268783002546170577741526504718271394286012006181712210403362678385430889027584322680672185547063198366442872944050203209383054937394016944401093850188469135905563916125127293512686199993900813383059325328275581992127314019025654813454936233203796799940357446839885069096860947050106323727385968709329001901213929614397473960450430177111873479685817451739333059961236280068304093355596059306854390257479863637126753319566841457226750270205014622415044935273248995727481919502427308351024572312034298965127748861526257155751853798369357654026982887200737501889141487915898280429523289149817882716971267008964875573053337318137438859049332354901578940567715826580948802362508776331372439974117280608367958889417135385667345157343525226955319802048359360941046890151121203685566922516378867252782220953575652012592170633386345277000156568639037738747518793099054105941341248848477890533370883308919338090554112315753282653608413870296133852045604630870822249997639942721036148874534020574312957006955669773401565712109952521990780061819439687320139545118325400610018947177296165329112780902347812285019900312405580937862482738845684471639637328300620950718451313847044254605392480303713604645895227526904202602782013560366668211594899240776447838231398769712129127193293270477647567247587013874983336852311805018100378309494241421664886149742111906023765484964549312022167540035559749912149151164745979517562575835274401719745826224612356457493555732202023901265264989282842719275503228303588174742534179383881912987250373694805473475434239191138119705288738459847725868106940532132013555132759994194319007951777683665405187426708123751007461128273264195764622159567205502079928401693827494970894839201010111444269620715298905677180425573294160765074350651891365355765122832632959132781487100871893194835230921731948916125006847229044711570308376628586547345227511446473222840670232386312650159698120212723467632381692456291426512915774963778765840573093590989431479169709187742732617638800282366196178787685671670030677952502941424662339981497645709103715964348005929761162200809932601238999965298135123793518469424181122232318042232404602668835245825225754518185248432055119895928663397072252046492549144785175041084881649427659240711475406869983273071732557915241833206852394780988105688990595045843765657743056058822690383216093968811315751451687565802439929130314017638150853881145720906477442993719457785003534253197800062806303277992320863651660298001907754550526429451552718305501231662101422811325759311680500834530869859474949883744221623027446657226921255034117968359955789626351236415725975720456893342901715901659326473511803923473570196402513414368469175392051103187014347251371786078104359132190483209427185511806054050825720956666406448598342261896404056608684385720086920171613765355985976485448723639808289298625791139724473427508670907628561800951713706787434688489392760117887903808792852848204286141665467058715931782470505918662455065759023727024084324143081562534244894848333135936509213560401470669275489506828846309897840013982329382198418116389461427331663762734960489283706434771948279510939981147770829192609330215009715489225749864565827368613271517677628088545297918496397541556058805264017316626457566121425768712056844411919976499998815222588106226443906738873705716395374494589125320123457283232525205116576814373734344912881930159491158789251498882452997765636569919575434169768433482582502890377230371845469545114224362090159409594708828672311212946535118476411784094621586878445947213427362889235971486991280213564437305032523480059917353156174987342581717365978839432861765573536422027088140435284656468203973442599887465005596217932625721983070992528126973678958890276351122178939818409250882347372845575506495569122858559636313058547112731928575539997555065686490914531515589110052771579552282942548850160499009170763011716679158252004429850433724292903119447806415185928506102005632352444899205639863485850072227647859958182295591566955499094334215596465337409155566159118201467364316047482054966621220435265966915568055119777389224584832415048006249620004203268472918370690802503100061743949817960548525489153289876859428841096202299995422428838482151554284945404636406084321175581216619650463748231488225944260914950532690278249058514764560886405528947633987243400961198512334688945384756827659333500320703407289233438281586149043374136767468794148226789699561955619578685344542246640097593105633106877724920185911622104917971694221071591230947951807568857654044662572958510612661092995814856455533709599434680243600283285784115144300557486207732851312662367590598270578286958364025451742408586757218877389355110412214990927438627915121599252871018624574110029734125611401887644216320591310268911194056385249494700815763354104254597280883930607413362641888392472390586948490461253919866308240308851643666762008988225061018789526537014235707234265052975105483065759978252501712226567131627140207562172890355264984536529634824827334467795341574230979781921225092661128166641993025776873929684996723921498158077808130392753387761792918096968589616263905404384248346802324330499004848256332243983930130193037639982337025826532802304778633805482761836888884001902015636305337557545661500830592364017480593598893561394037832516090092555652024139790866404108909797777145380122646084332595204433721326499217791423558011084263901402567761691177737287909221239942238271363138766604764255446752429602398179217000382361543305546837206040155123225673737786566647644962638540547533131676415687421156827959448770818425423652126174415951175436146594284864379587984302268849269190696229591902242890379078497523173327606612654980590695728878519827624495869951386086838987561592067630395155639314418025690412822939567901138883906485648491602678379868647412298314635795876994412688554839376034022836509601827775198260444342474680522322213256505882034554318320781157882250521427381641513312369631469674667222107211232480005271091014213483427338478413266358565257311402735169247249796188355617307832824583053546649913446132943669072386538524528433837109417329792924270241982468488854294801157974539403041277865193329849999137516832061722785727155322594299027100952969596364305584484417092087738850242053799190512792123617579573994909596872963081816700526333819131323095676880967390524999847147217975214978198138097491379623383146793978977422276627961304671264629810280696560442644885708975775891528730577723582056167997416391601988127957782390844704149307036444345887047298717727065422782032722757343282196036136592164267341788997455685172519752842205530598820910438389049530527577696027894045630094599073151884000739964202308096465641186758842685145773634785052178850609629718185480322530080585681676203074868964891989340913683425375233154187919570757932632673441201783412938202483810392302314464504726537623628159821451501346564545393950593682952517512037261196840850299792581573528588707429894985656186580667903038504612693796648845391605434873424427225537422119898733855426993498187602327445631062356051967579769020832646234720640953177011424705130210574510385548000445706224429256087603241455762221729129283597422941259073367227597965646078205440630257857749826640274871012235174281340871668226597314982278710237070266088092855543887478504130768840499130739981549749529075695340252085528122606888622937516874348940643234256031264355013954632940923011096835287172107226871045095383071700098473490646433222258008269515692801073572946481608985257388800123422854340044954424979883193468271245499881659626019496239416987759915076291403954830517551404559613549786617230947370845710667584418136835805065884869606013100094405154850206320108704117617170627233961256585285068977049397488556845447580062652553132266045249690266176080438841262263386618120546091043515850520119375356359456569946798689269575976610221957966772349610690212646706050402292363513574340982268457331468112998208694746732831461387024768424992630708589602294506264872503166981580224573454724816022522061807831803549101114070932691488605683766743068196593557881834344588126278758609614788265963360312566569029401765609171503412329275483791096831390801714720030337070058106224970407918415687818902379961167135934008013210580219624486998701203828909715404270308903584375590616920345223612695820311368319977549568264225697487095654794025755935959985820496427439690919069838072701753566048501384028066523601811605193532209694803389570714622859509436792805555522561915649294395972065997057437875282787187881627047159696532636256909501154984455463203495224682432454760234583860052088548343387367408692620686159544569043597025549114001919308638383046827009242806116242848421934890273857227659967965763749338984731116386998612624648830260435647057257676886521385530396458184533531413782310183004837135036685513966884607310752304879713963235330474818718289002377002322714945208059963331409593245112848329956695087634570943942573958734868509766074172953311193764903538779366860787545062991230633819275817516904971314169672039303339440752952152996971834977194586347606581861790880272906934327000999299762032894139941029031613537651173004663964439601846364063889086606264400358193968344807411473789830991433002250565215028152178750791302320906791211046441849396804182650028438697488224009488148056025201570864093283427300984974146142982778503099616211196344310325544927341540839938100101180811681031239618961280309613673171434218800570838037977962426963725143288665238629536145329242643976547127367999454415978385667757942491019447121579083136828301319891673325567196063621331356574040191387885265865432601132218124975640096149066893970251041718287881749314833426383067182336385892140360543132436214245223033493136915580644767173175490664061928638746293379824849341986836363799299375811201762410923082201041016112468247412809247168848118211020343316896889982607648938739488980635244596989163133788564923413625615084719013666266952032138322980381804217074855234484086080048105633841936967126441945153108229552143671639475763238135185678986229050072019894128558474609997680567505778048721131620495005613208086031853871350879467026127095317773603960900139812375320514863772561408714634005479187611256640410721228925717212443686255045523304341354376724224136494205230156936766586198239035147081713071516087697517444012172363637300700765427656231340793990893004294968899707510545689005348623358518374958264798788672897855208166311000182776407728623856472271331289401429695763768017426092105727373102765815674365341650921498274551184415161170889183665352367528363672799979795400569662344991671785936523508718955892684126558100395751907052158532677730504537298121250198242176708443837050639602798655699130535552238075903930952371951152152338176135550375492079199697369434569545043962020049629452449767092228100586916468040503551855913605039084148618478589900462117789183619639376484666535576954857962714352638841646763184637710264230724013791862571133911277904146951603087125684100017021812427440361692418336309462907642806540965021402373502440319361056912709470936884788837925224574115574182636317714570194372286311663449333839026354770991312492153617269639994071731688545714171047516861365717707700754969707317660657665576280963630438634606714696001098969348295213062232011085907005977867209795443778877160346070019495295559629689293288637980031663582350482609713923013904827960518167958608430663116993749393700498143222373342684311751933025635996160451886555881732261815420436985139220821811469242445844156710836774070170122100720929387213935994379375573810960493345097386831474702900008975429022386926520427780260484196717939742620426912189854871237056687079184206213333615782747473318267881234531985468067678577735530371960733739315777380412943324147134016477304776874642387906879207766695987905369229517019062726292309812339347791846700076754959111578214340222954298613139863738350897549017526226047588859878409799731418797860952088850650768571749579700770189789120897549036982419258355178774001139717460984570524980105311148777387052617833589795402473688438372535722636558707737462352767677161680374460791921469113060634325014585334044584641104723620522490408602196795200021756433277182445262393305067954818210596138442519778591204846836260409233533276519602494608393920786534646406197145310117115219719780595952469576889418051293898578787928325538792324241961824815284493368132679595039320456833568413517963538310803527151663067960232557960388572726609276071330783620059819065487942059467972180512976638020377138220678888377184304685862567987906357154827935545743997823462586830771126255324529854671305197351339926415267747935263984954516164293846231971164453208312338364998447231001624498042614502032398785819636702182243715661704735674666562274426781072279024474879331459301408144282003171048020939599479640083415118512086713436376845797573406954282980514704223720518709584719030851680611221423791079490328408564832930827204757348960942104405030100137985589232840523847163408306706105139056536755762672936916680272044445180098007258894015627455458994701300797712903157469451716462994586233352721908225459800000465568913706956798193961792226150283041082599147274450631653462212930802442131240920230962468107169571857550564098087059514741768258735059878031701394649823727705327860699370641110914586963179510602571231560560462712973932091567913893736460255198885680283846891231112122830580316720903143904536910208040412157662290011299889052431022575480406831052911016096557953674335887749556320571375022035849847722743661475623637789670883050705252356852104848562519247462263862435857367415840612764150294435534151492661616216214718844357274232837685136616404967544085086000800158010629684377355532481528001004239470206556276089077602241985717314820002675622490116691339004468124853901239682270990755761832750986517055649036803020872770175179029670956285764900864189572210214438927613510407380961845492230812658734568730923894043383913697985388616219867971469441784190888212566426547191655701364187445678173780672300263850065431624230248902311069465447360339678250929825905710207919404281216417302851522707043940546657398164156730951513958877643339446371342608442300628171288164693959010424058260954405287537314905901558933565232241121024027211159158158353843368324139548034752882992242288133852259487983308519859715184046686416742151172404665416641702035859534669851712813788564729397531912984739187122377322809718684351957439305240388021143219391447848563628855800104887896736715198951420296104863539647519643069564590370896840134455584924774656057159893988299909910024315275131640657947719750321089014655524818226704950916872074729124664395950276119411642015008784421871568769736973960935561541027365414969788606577624490380544998724103667734968598793218174239401177100130979787651246280764213494760481145336967784536648053755832758122819496930985186259521432669392961269263836023223368408895833098277370477793997752963166487063457685067049554927213317011145247224646841028219978607127198986462179201193204631812741570191665643561644973337794440683886973066971644981525601458209316784497272554836373628596014055432134605499139739705863390581152544126128681115254669200525560830680762042406753882333707266280517212378197049844672738900979565769160571329465781162211105247894413764533402996101186260100951202796395046467843075504387486889493443756994685047264660000419629211061287030251523303430260427308522377086343250251022389276113772665599819610539943268035022341320775789346250729133787547489801835539214416999791918406716055067152548756511876208116361450844306049573631673485625238257101864026125578119159416856362382712634553729571076003147055027726905459570472293909666197640024330452218321262189405879317103567858203843085953628642110070598294668820259869245020719384488892692099243564023445842660785638126399635831335083600277994960517665052229306615294899004106165422074780438168302902609617033552070800850885103082706974085407892697710315337854084810824500179911335386677560245716377897544241543588513811476823996009515919762027912082498580727347893251113143702183439196772298508059587161873827845971826382467536235042055227344719801534390113564874942611030024644813901157570260689011458134912782746196464681701903428588147167830775647252770276812502767456266672998062709270097600867347896019249800227765057506332070215172389402774272447149002649170756110568243827739673203825144285066722371206327130542094396411387881381484684041604407728449858058161840454306185870465120864354024566778610756512547357847455904847990667944266184947260475858417727290515955298170534386961390302677142735982919199982658155177930391797419057922505637402137657813314727478287425199644556929521795503677363774368165233705252099342158006176783209421701225506610358619394003295731622710887539728067543888703881278598122623850750357652594171831967209238826707973251594822015428697168166622323195628524218889898064827461619615037013344709215877036879457719287324428564532866652547460056218140873227142758994845746048029636178834760841834891886604964150444264247844199851860876271806120567212369149713236442918382193540505170332082777018058298018980591462645598493024331844925739631831306576730820667745440054495100904883388904653811717259537265087317083548388655180312015544588809485969564910026663115174227646359052941805141717482902095728604728941092027675279850750602696807860044608693380733468022409344637372868108877071967561685986330525562539660035397662475572686947894316061524758683962716169012898412294167070546760894969018165716475261779399375305588412840383388864903333061788634617184925195256284481169158787204936992747508101362130158984917780588713811518643506416131111069733819901839704210382103050354306202514549404098689376972474526230588845031927701576959284875303978965658004663743463523091591662170156046266331181306583388040168421409163435355517396531784571312186198332268127687966518540091625534155556153606516563022296994765652142742052143865195099245365195618076200949222467056761232084902801990485540240520062274953393360793044331902937894653587709825928802856258734085493433792402617506436719890724683374506323564700685918271971394741053540249127163846682209697583249695934926946949554851299505097940930850280213024621610755182044313085998948887563296360764601515266842301937942660601571035292034060544551473410727166490071681924630795013477675986441955691608829605800194762637640379210668366055187253559375629409146580602586427319447654126340498807817496339868453533804496601910595226837306542147018310418235607877096832155301618766381114181700232647613895808223365341105065949311141032339281421998811292100125173239657224062306482401041143830948514946460997928605340684452394620161754334105914058049562553992500395719202113878514966978848549736693685674447359199866460033966529785927834433367687738335898648442601887958214015494585297358317915838870885217475002730846047464435799042653296113124833593064264202643899072787272961256061233395586031046353458977975146664368647182408078688121770489926249647573836113590241518081822655458134689236861777008561485425314677685481876032511210171340579775554752018446203891067184140348341211720629851743155057305969649963188091253572084599004975112226634396650132263359981052754066416936044067878645070349359591023619878745078894754547712265273814422919239693088647712187913071828424711920751128879729005816250370653976067784090436871067545389319396339162320065303008998675923001407431886132531786919659545050098398441851695934014916244389521847302816542511856929336577468458558934202015373536747739099552371597804110766196310457174738244533654191065658011273230959357172877434521704634340227475604538111336498089648918761026942698726233830847919812015693291958574369612506980613894325013894032099382658191486793584740686799038988246707547553888992508500606138606485385321825633291739053303311364473408236378026598743920786412550360445713090382806880241790348614208224300151091244599826543361902511452669101263707586625207387256292610914522068753730959267540469727330166636203330601092075981281340283103514966058519205394573088077163604539225278185155254746379710177458836561409134813617840815504723954358224858331008208610304894852736055820011520955011360891943506464020013916677547091665838391923229429210868072430927659604628467875906454344761608075981040296960679688785464541653197280075007290778731760135681695559649506215589101378234158457567630698732795651977999402748803201142046622660153583849480981897452067044958977341155587191568656109160278119002639236162541672700687068873630422121937073328704083556224464781321993138133155771936874513545092600449020874137350112116813254607823677042810626899168248881210831580347930554955027871881521293187536027753378402220362108851726359594635214120522987225037472617683122844611554363911646498127651078396203643963405301224722421625322708858812551585314334567870041069502581551442001575642252189777989747471890190057642916906098373477147233281110687830460318213319574575001251078532385029911810436290537258504138735564408790754238544737848144714490465618173969480806248811968125688258695922893523378496925902569987730634180939319382302994971581915209559865131996946125945708278534129694750795146306389037399044048762927767064514667397719952562866122345129812285731192128889213723488285082115592166198137362407061401732681932488953478800409268158979473671647513133466700686799559513736678404767349058763305731875822763071807528179505163446556652643889544249052088002687394366579252026141356346789297366215656037937801178034666863594026747691771567831725677180997966395472160653697023371766215360899120031503320875365286603274715438116953646256508911136884191971894313369405754361537427960279806415229836222190954099638793410988559402645136912784472212102428791038602384180143583108821025843480863099482897904368126214822595591495513847459177891569359149807177386100673879259366931634534473657764778599118932321513477383673774057367384525392943669805051468487498374828463335601681507329225073007112861230311714477691162254252312983553006073277279575174820130953593301614879092894088400961891609459886742020433286606659077155781505473111781742211552133852127836265803752304743226932885307282149667420611871594816369664819456641707813179553573284984176712519116069589094155751704958708398979316835975151434358997247245249390936701578997977252533750780454480156465540575067176954210397023691674670230936027742035279245071430709960476987111050342648348345399390217576093085953554231958267366818322438836722601838136259892816669880015287063484759586242411383270241431064069122524521822042023077803103584595897811828207843968514261783981347010477767499316383843141696141287260580349135608047611297796841964370321907798566167502532506541842127112301692130503992789662163336747970675634766783508561008706292248290937367302264403955168191599414750554326441835242440403084054597683348608097789489568193487093231325575733997310550203904384673436248661048900072863309246749558348753538558427378155239663067865355357464807830762471163082516337171169336293762705389679838311997258454438420461435483742493127361225702838851391790720120197301901778794637814337055273622626044503997472670811836387966556089548757143248136019815356992148430680227796871986487626049039710507699929923487442362194651542681410752518387895700633483471017801111861691327037118320635184321077039637304620908997217173921762993957715012770352018238462915686254476157589635717591155662860713934021087858716109449776185507628965568328240689309662337476439952411402189010826280952118022358329532655473394348412265137470866300575660010508547122228051696550170120057861775274458153352510666803544332691008896850475778841992846136890334236876211073179022656831909971678742197925885314038972947907296975540867495638514807474384693921480762910055401159495708676161737533779634241500638538713125411337928287708813082263810186461666742487933320194295785427305689064510515359533302590693014702208941849785348679671699424616622180059558351587004753070673778960698675724029619759296261755718241830221396189696354876356040087806913370857351417736743763145878583839676934928854775370395570436329818535762954204450919386786023455852474009601292274810488875457873531772588919307789138641931534944818208451049120041213625366855179200133064591704514130189155294640287139042500085659541265693266772277069120051918852603833005290486579104926382338523611032529459599098406468922547643141359570420815626821758738117357669313770848777434554125856387989811845725402766472620895555353271190582233431654426569926790125804282767380829308396748964710656072909915121455797376549698653849247074407965582558459492699749656625152093241856082511955621538386290419906810916038193326246863911365011746802891381318972488581975058864227182455563400318978915401732586719348875739169983266258416990717634050310030872790554993402505446664119136433610763253719205107491552875939812651052088028854962268830417546936441127084690564234519621983501825816286255855580041105429529955231396096065518058740846027078747517099794051658449236924024176236899375763232294875217252695704492728360240857576498662955332805156021925007049765760381056034507245127461394560325075272577643431777326650739100102596996362850495773494187185673012337149511762029429256084623809135252789469122632029055265906497757177469592148092375843976092544155519481908105510422322909292256877724868804610991785572967220055282958041074461691009380856140978510365296617306854313438334825235810060737146834915006983477809918001046200844559442958434168773664113444323598679198836248029718111571471304613831079955447359594984821471043432349635296034554908364493111299534446597912974548446463893366592499700896880254420119284828928596457129045999284288474950926739003606742175220335005862966448062681131589992422771147978615111744894350581754858538998143897980194230347565811219556999397558220993671667557157959416427057585452418176002516476376449940363063908188795108884335228000940404798171782986940776785961210896181281752720730993724684425089042540965098163841762016092562124226719461671334565727217730222416637714124485215752914081836803792066196385512500864876020015257472840212048377778637088366442768032089245296307784556298885243630978553650280417077050301706402253414616367410849977405771594137122879448042148588670258638389912391689400848153204422037617937311868976857173423679988433523965046029151174846056383465386325957755039455872625128254429486658676542434648865580766848000086073702972956633751427401486896554255107567102703786279626729558105616937862021736858310975108611150511448327677943129673242068945889580722521541163037658758995254969477942446279571899578048270256918955615103228230114413228758632379332287699690285318333894659926346790703922381939065143440635352428410360366700096682025426664310256628142649595326276337447646340038466857165541126154927974759558276059966678416209917078824395740827842303160826127521039405959731043557345094473437569676069293290592007858501662703451989202380597143133634474530951471655038304372185153719270216790948695745644499341915563857199143719412499646458060778777590978939050985937860942008263640524419444237847450339202524244156187012978074908806317794370947776982177561733210656285522350708308045723222993878496120479361781609771159400913730004752188447311819581393226163874529763408791710353367171381025244957100361632525371718556194839488403780745374718288446585258148009245606105559428002700823297587851471358280300436997539561387179254324620834171377901039225824602108602644457285042605802991589824123809799625263965410565292538635553317430647494968691411706181373578898633380900802551633100833024110590171112604449680969503489374785562235387299403492809166384414776185222071473882080547415307860485490344996148880215719789048800351022722884315027595579476420517581337903873412258826813414632287075113245366567824726669401559210964002070432429869563888870118356554279094007439969454667649586741059229970726130326241349770825200139825845412204238937555488984364875374435535811235483172118506628369070414329712945736261112794047678769744426889680219316777024159437430739429838856356598134608768320012861882768654100122716517267264580357683059171250324573306268693999226395414404471013830704052000772176943198808945813976263821972514802223879308068651043212234714755032507947331458451064020136446842473595349321815407524981748901014252190406415583223658729799125101423305528675147946879449997436133655019692947912535832419191216450160144861087597356796683086858369827271692589096174545670373292627862872886756612300077255409957081629213951764486938167505603280368269070818698577040765961173837454146795443799694059870286841678475745294696704187041390527360476556212290949586962232380596287082225967364433239341371116198741645960142959198483381244583623756207647577516626926545359355038089036474875093386902051619872588290377358719643694891833843670482869394928373895073345175243788336214517669734165230437676545832471394772524003909194837992086850749638467105328988521249389205564365240027399822289991509106611565226505634256133827159211999084214521743674094744486378432198397411691926045419650125361459540155827029587977672192241804536430235251738188335930637630494448604309383334817940632380317670770088450491840014507677847774042198461771153372725433177918846650259257643625784639641094869050124912370705458237161253450549544884917676171007613709885979237454795742104197221296228232733597197365546079234097996955727257131091083557950662151190004730277250065628737814054579142492287723777072439923490583130599578060323726504851516751322640082687908341599217540856923379553010534263182552580831419371266750432765386998262153325080602058121858886587867157396779666666941718633361383715903121385603273127453582164662700024836371908066287412461228088096625571119094987637719978635328642355388489135328848367744192323304315336969969799306562358544505080111905451953857826649534075254824951118851562519237700912829684734745661790431340328002322152392927171877865993677985014344096855574644077315952139668030694445903180038052188020682403353577680658009638555929424302090429395954834628551920247753665287167634184672605440446863225240782626132967425722571848158789620064240999898961952287428334479252053097644263703918630650361465327652054524972410458584837953124537376907822931430325712974057986588360086368462209251083281917629944498920183429601440187306064071421155856797626218571806269242700838071744321923496588261064051520197571506415838523600262787331610960417398063192545839791056144943959140138653654242812093888583029150446869871050138426665040803076292070705278926635480138267482062425798452209333671732596803180821317228182142092751120744519617752377905453642207105681663391140349255072562096387874063325775697944430563091833989163920559255442542175989116054240995749197155744766985092206446236881198145848601190147954565053493999721214585787772538904636658699753213682665566772390513189670124202207083898732873000485203920730243681763977020227495397008893059090932060009473579416913715215469935224691281493512958249944124777909020119487120614955853315049212816420838717300388355893773640633254279466820313429704737982901596791805650375500096848754971481702379133792675725466351374093528851320168273849758580813410094825515235647110387164094199650645886668802163387011704104542395631035245036706812151978255027281081614319336068574498718942377475653510128142862394570374688974786504128184468780586840295754892595544907026739792140155346959589098055648671166829644997795403567732345919903951594844622078734609792763183369793028491389025777888717896394575998612475008973496621232232641111555237717023721342146601067608795813677820355671988553571922402610377146547213938703348097641801810885507239395083610662219674991718382779653036745797217124854363239904541395977383833328265614382948105145353877395319825238839654218099402002671423765906310102296690097044384202048303708513809375214713187188224251009354360664219578357078017447657722543960853878056339915010252864513339958505526860617088685542988678302863531782607960980589846726133324347464580100538284210173213017087910380874085027958598017748164833035424086522297417449692645129232081196435968963590250931972827941400593790331429272987624694675917008305505933759567982961065937145941481911152359116355952537372931725517625747370575649372713661395536300379354171388319349817331337268443912537058183598824419542699374674119395652832214196080059113388273025201191297870920503961404296714339424438045441864022020344993394059118311250673244043380046923609502762476552916620585359898004515518122974932467978237287897450113342585441694354983659276892663102156764115413043113923797040746228143377503214327571761957740022311040411877885892304488888580860296164430401026208313750080824383598001380645843199049902206277001805123474086669760639724032906640273681942207088913047434476489370894014118705392429271264430714148142357396484487993511253039792297097833817348931103661928505582643245986375396038200899040347111423940247673174173659262945836140544658259300955774038229654596825410294202300545311292467672151855742406812125494639522707904270811588755610043018141259688227089972806657652443936976425850114651686258966236851633113885601010092009645195770118658836695873447799316073679397335129948520036746967151201875609640277978401890431172132937136116362687820476351245722619427752369154444283304248471665112199094988114384698476913392195877719814165770201406205966701164028017659479320408339644463213793721602524301813948620169953241783502140756605735905070268170100766880157220283693943073461268005244114582785995673653812893601547361786760413212733592263780337874181316891403989766752262743863028743988390219443169310436355337255413748607175394333548147220763605102812805239183975125054499342790572533556379510057705347408716032712332878509816594587544198871710682475888420855640523637447876276150878431912539039218604596783711214756364036182627668947472632354857814543080723894764374286142638445308289291667205278407443262163724924383230382767733737629852017662905339264121743264557832321780687004440637573769841848214025826839859298058926425154958194034659727352769672526247778168842984038780452720333306430071904604679395013574893691664980679729929409332660542279811946756928164153418152860614248724804002222668905772987674939206446949234240816495209145278935493181476347751138660965424094845587935772474897934699262150928171456657461929857006725028660469691706496310486411046553804660394992451069525788637052114425065369136373209407270646924453584698370712429711503592773403394788256734857658451720558666743804982948642061733463988797920545410083913807357844430931522628362606165228367956510734582886195672115449883792666887502480815121821413852116867054457421225184158717874264865989383972681623159819103235840370795384431660829929147768811556816100618034178647116515891121837843689216801051693636042183624132417985258561855464088824768185850160892183460813887358516989532963546819550441547010609743106281025022888006502803898469748312021718543417453502663533781984861451807731063004274020654845283258537146694625668049480855623066651966543505459647142729485717621694486740497317219248749090693016775021453000360251389704857701211676177749111985502094842113150862248117209861482671731096372351417994029576243118436641363279903963944831615914562271210360921041666592706211356102168722445979971171373069789048369792808364214037139800763963535491321300743306393928069387360967092465161160975896853584716901265457460644118710352931696922859724714929173380175066824030037222643888348045636291463909996910468992110062142604476675976792089554912546163745291495088768773199465357005487582132997177831199694845495692091101839065229966460461154407168310192767459447588857349782265882608619998033485820942139873095438020894440336575077333423532380869206611986438956907195025435242874190271690170639145036265627238563635110569032795319000109622181161442831887128681916529720510741234270604978736632049502151518272238303081076451296318619818594859878661396335943425727255149603145137558462707928286828212219909907222971894418467125095284579840631877728122894761165563630456251463994405638880193926857766034595066331571099381963805044632121980001127615747374769403830604285188335662586031143592354199288416848972160789604128857479776301746084798452622477756403176090553447661649430738763985827974035910746710848123704948423766882138184782898859208012345387073780505822497010654687443861072731256265115658580810748203962387240802974107210023122224235540268036484580658083341940310847911877077081482749871872566903643580446408305871779439094283733660238984623418615083219435550493183586668038938485440153542245327796473540469933789662483162802361383738341984840847084887167534740660867001404501585036965571885955960908620083931149845299745303666238050347522072518645325606192115977575973906563009489011423625026875986193767051226588032333848818051970252349436381376406625758653508389645825811539244217462322693116989351504306581849601938457464090844433659648696175523617041070133536839370417327524437123874266646660562301677626293306656907380148764309792302299050596849699058805556146706208359611327381688422687359497512618726411695309566178344823176919242884534935787380739791432713512759531204788767588559945012013745262527701746267758674302582117590210445233811247811432510428738702025108455095974030141983600384919705127664225174236857321645917691527001493663264935343817529432247779455910739094375925215221712847710426837212845738490675860107740950674332322597951626720847433603238569537960005876763518556018833364422947890063556864792509017533982772663350992084989923245900722212571538404201928282399386658473523242736956741236181222268150492789220799476290827267132904913659279040757532174728342746372495691602626115003354848922681152932336561896820184335535833971277191559480982468805206587324536404480636569876135467672824318359331614563935019672288189698894601849785509282033735737593794610341643730403180030856471963129141204708830572865780388772936247876812569472735787552313290939672844777669183242999442197328363924819897449870719937473299290921740272457265401859013181177512091710962385225221183547600437278680352099853735347634508427060039134945328325113594084447275577816238630958105310077803750216571536731112810521131220121854135958554442904102558613163584560438697935820251813154184217744107983617193553501117201625696983172993681145237176026879624952817091543242141587375696376765777548710774512422378259666816308834412631756843894879139870953520911012488906369995532985593921520255287719605314672326553062655398843920976230609845894984083813906526151096217055757179978715662640635502738315150733313730959880021589172599424980113415085348713837425822881436092298477191660492164793142353744107100321848285497665374372189487775665975878807619606687489298454677162833523543534620325163815582803650294199890004143440032272698076149555580354859957190294631752523553096624964227176003664908825201713529471827851443792111997146669412900197933664862745535532531804939064114451776397336518035595578842002831652496631895394125780426175606712086237813609043229303998051352358358883045066689552693199064058194272095833277903696764848850791598309354231985826258273748464695464719868906292237445295863322131979465944705749115291640900655089054944706122264429416126439632340120367554988052466924692105708574875682062036232158022152553436745826204987806584699969317326957289063379410764515305734812270321991648474509303766852152182025317959415416685050647682826079610579419706571555053894591312096899598102625183606919458585468104580998341989050886786777378069039742093026362879029267886799973762157062368495765066967245796056588088315162081900818791605556083166438528700829543637060145359945787721776642855217578951459949789836583533610386560788878248988414648531086047250142359283540402601101275395494934532252437957772378332380266841977639852918465132204869061702035894141262050889367247209916435031951855053354989905912717301072058317638122968294034035748444803080938958070604562150945306491039225267904710607514573878130192131819055053181599069032569795645022464660189658741042293536196465599643928293520871289619468153577723269562976446370102842888696497314610847648376393732496199451683389808362597347365006607102467483613106824872596488038348753894306557724185675062810066258212503751395621099374580326292949996331413321936327759247945701877533050535703196474574920150398171738960511838784097561812319004563823078259684435217672738318075452869356541699782915083642107821199103045262808739253350714686757874224773423734140662210719133814488259301632552375306349086796039343620422032370501130584483951805418146319486348456693212602115751086115264601307766184858170047496011448362206159183823996602281338702108968238758876126743919980269787945556428324188847482262290520757354486639825058545646655468415908907158792045865282278708126624759332248476769886530052357797541847012986720481671804032190008874662484323026563761589591666927937954538387019662831041770171738667519677846703870314833144745134862322237394294259979102874938913937110098885961742628781445985217059898065607827502775554326150266626879251370792463444658466215571012155595572937147429139035889854372169938327336063792394240026638858303329641615820141323701050264225886414713797594634922691166545925586165872006685721677030470504095051615667295402328977148906119064417852064265851242256997029633256696002408367168740149433331747145257643479159842391732141516791118359590099414812622644226085525720849201621496657594750303278041427173994149893554842150828870736465947719637675592873706541662049348931591223345978045273767724509737082916328561354396631113573510952405841957470516141899847292574011491475666536642962043878482917606892089670272749213554693793419000091792634597703859643991361592263176940566998454203467921290514564750551750303502376923702028962857132868020513725647683940752961679015915305826402203193693227787062537782380576928320955715339975782838644887428459656954312139189623651401183052341200277206331262005772385373443241264473863662925220745477151016713930982201004712618166538666408361638008641223651229818799766510538230395695994396365703116382517848561927549981392430070934846979975168202268627160684795150460698196739446258390099758721492446275278923083725461269202093136346071735699885738320945400931553399158715510771401868164931542056323815818853804044442176636001311782886231586096092244350739717902153244445078728305682160041905734580073516029788695749703322082051838027501442690096421635266510449259879837512323691331925020888426110456333318974287042920098037769177715265904365747659072383300161791438914911185097384269795936623859567414247093287775574977770971892436527418123014968761722761371092488886178065324734430626669007728937677328962095683878551128453548637526251743662424987846412011374712777904136419036867417182961666202326157087440335603183928086420694293757270746037298258210267423381302874435499614393545036065405875102852750655386165900122841776137967084051508338978218042432839442568599819641386892424124654713074414342852714121991374327213625836571615578033537124702772881041285404415961610008917630209488685304786278314179291339356985128837516859936676275254037469804907323091136573779228989687259068239936824019960844510299037284402777173809008068705264885485537723591236687311942426101067239949917488038536825575504114347004967659989521299681407365480307335708047645832047945993793806729871082425291788002619242189772794741170512526129850984924740388609137978310705858639184047131530271348904654859832636779629709471146608947162934343335801623161608346696224778232697376539287476716767828135969376076378903669447351814584453229456957209309817433255225522435578208990474784092768199883868528492114444286575067390782369996170744826274652341247932202051629239912016962111224777733780802241122830874662489074585959654035852811596592979321173581702364770375532253644672842654280850912354548232820677623254567907783506808019453086173898485727696323836419593338894903361342329481066845893376876898938912993096261766479949835339083927320569089859516469880071471738476177094481491944085263834264581553372024249269148881190052439052195177541220831494126809008986347446367863990432107187185408065212101088444289336562458509499075400077663757541533975688406638321066134925793819806739311631159585863947964777336118374526191718366059974449596222446474920948986071215097555389761694208140916788781996324302753878046341983391367829176996339244915899344509497255943288875095981768569198908300822241753076945135794843245713447100321544652004199592529394932459617626057087111073623303511413741366622411417805044213937323951438269665202718321195944517781259562758331799835244363332735838571321670501317389026774388015740758104661007788017084565994031863389117020555915304885938470207038549639282605143751858275878947614768719336023209895308705793660068191045049509327223878865985413393179263627623397242302888079652537807495299465584135998863886442609303262769581102920524112769349524654452728465727959359982079307712984092975843137832172196335170430000507577166348320093701003830293525943563165203625759151483135075506002307676786327236643461352632024284630777323515834728030235529466561620409763084679474824502388537992228582513918272597637558592032277882653225478514899515786120353697048365923187135482630887332070309367743695905185904423007758048585644601647896548306067724129893250281551833568444068992408524179329041151211811627626853895646150489750474750942606365368758650043360541696137988116794492506245528191191100612830599391798526725664832999304801151738607393440508724637755055551566630375650899876222395058986396042053289741707936715002649968208243767541279733460350971942551666040676794811474012828771104219594759751500188699552055499555677246763712000545351021050020171325418673552354152696356530896859068038360625810404912543043270798982477611581768516670743938328244333902905968837786218292060177397098101155589152202022869175643577273865105536461991411676474596081040559289636188132008080313541918105164032136056528572047884498622537570518486161137183622194190747095431197286756392295546784286409640309535935241616951842759843578827665563728636126765656479548523439517488118209915579461958353058468250760747679150509941211620307399132642017512771350436478669941987490712891966179385064778787944413590709437779428613285395282964523203499361527087651430791319254493945873888901122702950667713785075129602369800098791938781810090694492911256666527166579664479780826038779454171280684457107229016288222263576878306580422139797479682944295026030915044554650669739717242846320324821954591378662110614813802898561118410070627761989165094879645971081927356274316243278652834026263171548442259092717137226334914132716883124980150941189589165146127022588455885890938562336582986272567658882020591675300678002012566953532973280523435910540898751574862397860241364912109887128856991627123569773737677194121612165007226068131008239761105470145591729685273834820080943301627449741722445216794730182087111091650414001491321190233253164860940087593586344022244335452181883488665890577004263566575533906212008072376544836416621563084702938835990124001475584852187191927449793149182435429292002548030365517225553975597499624809237034159628578374487963866521757729880640453661335944664423836955779872133677639374835734693053392680371376770321509906592472289592424941575053872373613848326630673268554754684881988183925809984570729402544798108340022932218088180985096671399251234163090568037454038983893742400424208609296074881513145413518045260508781929077550694992704320127067076969640600939674783120333009876757816485613295033285401384574451274060123420717105755382321057804520392299443717052408241158832654447577783437406173648846379314936386849996849406767249594523444536946947918807668892955850600613980602191987798725707514926447736386446550943482895525665313582561290444457812133153886520660478413197663245347490904833836514324945984540301588693221436274626113245394044506872771253673010328487782439913693033065354433230611286443664035995006069178085206777618061986287902894573756212561394215467104460821171615368576391383610892579471607621254467587042466146266964014715295644482127674203413204711663551816915417510632337964896091931775899987440482071385501141863745349701138988142143598926387443036542834081238850003819596507175147487592046476918980166214037446058763405195789303930769113746142136133735149191927202594641350914864964920592398274140381272948725644152853417015713974021502158825852630080065420832022841490472015905698401969172899548671172630920894103031245201083505666098659553448488552833909862157527611040830258908854296905319253969260771187696179402714023889348373143555986314538262229174513427713126661688369132065561594735307507806081582318345572657657801281792610631018420632698913526774125473418796695974303167301529925847523305450484179928981946978129123156401832166843193592636244766545596925683199941796109069617177970432932003572819173380785749264042251309739525849649642040694977499712062154371945748181758665593053377502055059489206760645077140490192921067156264954020671264048055654621023810207650679808878928512141181047168834446737263368828547827653649332693788848066722830341747815036830013650508523663650600313620027974059003011481326284855579518835816290301977635630570655560725103453755771943719576428502075614716962684462823491848354617420048440956305051421107096930870319093164731397822494231807008633036326087507213525881160808602020887229150844191442138762312005526329839439143069870404031151917031201502144825360402967839339854676039344664463901110333834031092715675672888969860505298795067687226977334163968819520206046365891514396648209729981124694659264725828221458282709707976534569371671623552916536544274008236022519126333109776325630424280373180831294535195874618782202743038453375498518863779769778719283047198912715825825538573254092478136439727542024754055361369882133312340241380297651544030540125617032322724073153069524790077962340204475724285681512654767149175188063100029954690315606518281163732752077164994815691769348517101751258576421853810494143821508252276109615955242902989892960862783552147468966547227090196573361453528565190021663759944763876288821729838395459799655691960071395737276212842277815375562765882273146075331219615137975491621588489652867124221568997678795897797068412192997371224181720347435425263015091887455675015468615418348730462032094236615981780936650245809494513558413864160890261530094395586565660641566647549877440763671761154727103839807958052643051468233508658253170601078620101345015523786761441629640600884808615794794762653237812246754171355045744515305414661409211191026182248463039125404974293508936463481364646603041418858818905821590651255052278228188186972520185403841715415676654165813828087323058567439981491386567903489490918625283143233774278156249075408680870789925683023528315276917338168820115935315947971081401300708235755048757277725255454694234318532796499957952152382437031542001654387433326890617286925395841854278711784963005526273294369679427129054163560985491489024431539821832464654903592870158423485072193244273857128571105234368921223212485643062085527129524620590151607561785915863646929089843392470047919900155975848107384139235956111595716176563278317381579756405779756205316343093764254380146836124499561986048779224759305925887568958637114541763443947975474585849963613934146071740723736510078124696669690555507974955006174170133907720148940909884394337673133311641334238935285110521854044853119664428379749814816270008161565710837129559033338042078524847467045541633202477922535591983519004837772681204631283690047789912214180125305372609953819065847570995539854966164624215986679683754746544920683122370967709670509673721263690705787149532917193226372268418997332829424357253725953475546318363167843458961560141192280333134805951451581083470999174726761125422651019740675316573281777201501658816928014489995730490506308495388523164786217238566892551554278321829183423884630367380770166299110676093040220623031935531749237372164206444568349272094289841307479713202316906872144524087996663435521841464812566664684048952558770439123744909917336102754072033565984215971246644041956551419548648796025517779459759065581505927518128364667974234471228322823454034260298972587136876414933154279012712153991918174719339892449375307838422415676889508674846825123049269360975117094792354418297504764050469185582405998810657063585411974380038302208864073137966063445941344428356358628248647484992622589499041496720372496444541870243956399235730526914224108596279553489538154287771996555095468232260472160014226407366269702203745158032808091577410947466573274508770824378437359326496588319979412780858738435159027298891224169438446580157128473736142484554931150385464178031530051013803195777503811391262505534216499503514085389576025522503642848495619534213199986261180605779621597254995353972056852862731424484151236216531218587550499570290719974365458726536299531473431303095210568478274904722163846203676232768013429162660165529527175872967705783193207540137657976247029279517424060679885037514163942172972001892412828363328983130820331729058503523857909619194486138214733198642998039771647034211038470333934825553901140888682391977659789919304282389730685786411040194459432477507334369307751747735001831478536185402222253911766861646626444345899928599653399368719345325795470560838299226448844938259250968739986525682353356988921545685126144107692805590487511348831200038751643280966201076923860020711762145095068823637924311607137029503355303394440140735924782395353256751014615033707859655905271202521688967880115570955964607199612548429852351317928541463187051453719408795420214913537959546978812303205813762195277564009972566943548331313709072135707309424348489584993415714228570573380609626038012684871289790249560949810265874660776452380419268852805099513912882427886271821771351420588165252017141973951812371547857725259438668042592222734729479951707803838830881147618494227194799462186414342939443666062151299632390231796321615184783070446803038741321113064574733361730642745319838569098629642375591206201405901967138990824265921071255252403623653138894271050907424739817472047126742073731467620807544024011179791672884097143319368506494133405413787516186630379380668436382289024773483458580630407175462795072812287576361448615764786300319273864493329778764687730821537432018624283437446979340443359154944170889759867738620919372684203949832571226516475216629744070727923331386540125624336614016491524230077723301686869349409806267555624806804971356336439948295961669516716778877195062121928734220919178450554148307643779939631233589493408596044914732698793131968432574263104055950181128725933266101737727703226520227494924231393151496679618448974042145738168601987324221794981676722958549286929710273899991225884291619973222975540908866438008452968963002205734848356079527721243908347925136133968952360888598717477618714415809084553512880625443890105589981179998437530375612493803426432314554897693225953751711055994317999545821048750948595762235561329187878080363843394395689391225655743904331071111138423844497226106337300683139090618172408440912103353379370551566235819067113090378461309323360328341659697686072697643595656334107076100049256954756731625649273556144652621242678943398071095291742977276052571941560930303083815374924143967121222233804979296331039306003135196462862100117517421560433674092185885519153476982247116922656807164110926047110455330639695849350870648918828450191919220943746486911740406102480097473789522895565588320111050997898979224839965619996061127780435161217880777338329872673871765227405268784952422377077924177148503446035691405902300491842104247925975827729189113061887611585268229674797781870596104402093584049862590790669384341486671336590098764491329798043802215836846558532570287923739869419695567274718197895604588492397770631084568735335564502168524772942348926180551389846833593510944024418181693007045273723746803996778488569159079146649209857827348616021372321205387921118691022040281854870058806925199239021026021908818553390743063970388135123840710643927794696071922226850002252496864619355607802656678574521265707832071246461782617767227161051047331845669841449138306475687697082373762903435980332450161159080338026864842056847580791408636897783776008221900076099516877468875957375569489840939237098512334009780882084524051584472413896460025461464992025845647888421781328082348818468312775217574447101226159135602888529419141086300620925308780200782047849987489624032810612373422495564740498074994192465050470547222343336798648669743822118381495056077293888754045445515391527127843355191207799121465767200742258194776985086081928683244725725827999575150063440000333914304471216624647812210760844266343664127899375308422572538452347699736538695266429432175330506473222459646960294736157117281470543116758186377634423986465866152991992702281770141123129892126231311901959942178756172806724990323695239773311105661421690900558584378924591758276462351112955435473739812022801011558589822131639779097304208000222695261243163642878348552591825256508156084421638802885987670274932997601324198002327223130594014205636203728613446473730798413613445414728992582328290543060768702126149450079159832980845842390557886099130477707631429157285600124371198779829810820942900977775251194947695200224159072892039377452888247935380093468411062550951234050064562634610771311416423099273737045325736565418064472629386085487086631867756469641246842030599842427876286881811428708827634802129115718624831146246015674618713864937763961708892176002448940122319237026642761022630922420625371175914051925080103301220033929791427115515173772882807961715795876706482201221223142028989192765427209636515463430810317288968847094702899931806981124620434934912632511117886123052469827172501348962535498548218473046299591103605625239734353393527529303092093889946294231206480648333132597454584174442162318473280150299239451729841806794062227128862232674916908004466133567823443268965853056027580595343039636890090048068394684139205490533684004145968223363767149070142120588919188611928485880875959663459201786467881026385579473720381406471323860913724415714601728298477818765394702607291518372400909304652296024705003801137254034906882957302472209533567558956324722440720231454326971442641596236726461535007359701002494759513212031166506921941076873203655725228273177511539417897839764980142068429653305219037973215364168043484722097641550497771687773332839663552754007989565203598058281848221388298143205334536202387877709656238319070851347940567524204720713766256648495824015677059186606501211906819151121695836767376706352764158745351937650855935527645966025895403513105332008093385972389338756302990279682541009011877252781006687596590151876785217973836559542055760355479797549146879844948081047747709272582665049340086329430609871759587171374077746231703406911811327405587866357138574824174688817835098383373105993410745997224900702512663793069525569755805688875061327283567901783837968345991998145998223630607458382833285996222284656427771488484578275691635597563714816491012356437571760561566624510706496100845231348858811907378319430338913659250864356114518425278133415055106155212578744343062235059731779911927117131271016218098564504118319662000987481860204180173472270647896442787626102577096159677667439136616012555891012090846386659794606721031415974016278883919559659307130728346325955936243549234734029922247390094242146308402618610535014319192970352918952992204996348291619106840139516182498526978359266734278840805330203691556236542427676581908612601898725868441028612227402471843579953958498082326289440358988497969603889126840748915315290732579097588325384986909943671742054106005664114055149953018606716693962549042468281394897862111307797859373094299861290560883412316503729193212706010366888088744017646093784480400890378894849758631110669564494155505373768905704296385972083096901247920219636591158112632728184339237831355036074979799576686627605559776832055060857097383498997971841922983557043384479312521946283650098788228462742838193234648998088651937759381098592497881932293549897061304653177945530083934228000042395081594153072720163022827850636776582619037997345320152980515529535010260955223168630400308206239852814888861010106294583022537875449947194835237811726799033622145396607069967691586470208291624904733447292873997374979173955543002431774097546512823116556046121668264508996944452478971243933144622151130450276937755280750211611146953241001152280041840150048004772744969089743812431621623742657488803055797684920179199531836381695337947310773153288937081704980798490099191745722041925967178121741623511572141541025326948442625574707210875711287180565710655379566861879364124549381934538300100130141776970600606738011356789022275536629816267236432040902796307576534324353675434291224855762885340321151544855433277779782780521368991309067686730331941373528492585346745640461020308996285677632839492996072375946491836096414520152805842227732944124434282026776682124540687120692904525550781713101864642443842137479021173003348298429929280175537129327821924551377818129626217346267674610082898504027014005417037061872896764406306360154934814924051610386788382585271805122866355361786849843788640809049171540797597901575989468600893060731380670683898677801000815995955531600078126008097592722195460718504172410163216433892709809439632814266219775305756636636063803824153146552368723753218283302844419820137719606273567425305454617848006169007857010204271672004938052905537516085092252869347908676137871289660465059657209770747504495820192885586436375775856329093104465771837934789887037444701353086893917257324266233161399863984376227109304918809170172322893768099899100317316977660206601181358415524451895490192949532346720134280884124595917852584960043702749102749823751234873723532959748160920215630390480638590527920207916217068097220419389699004752543778277148651496295862287677380252831121566187385319485326619318296087049302063364392003092203662283839902192035830919619116203497742201977201694272396320652075401210093145522756063785405388598975710858073145384757345102288718016499297197115220470969465110347174272760320995068420297538930439387985629205291353374116736598850398725980165470808046558272188046397492588014935801351390368642175221296260375352994181161158852942695997522728441737071709824349188441661066006944786475905234464708819606783751951322457353072240538122988481938116294153037048925475092967420433161948736502224328062929469960228517493574274452006094978951078834670496423317866340463845336645977659434611563738106214342908196597219050189962532086761292968190497736144565028188762158697130080998447770802282775968111176158901115121713837277984264140070480298396175576281117867646559487924369997266802304281244808743683123073798597559504207694197918188398950637468007250540413276369651958326105416563004842742664431544311584020380967161134091122367598350713875482499485895136180061987929269178547993722692981381981369122443922155877519271385799104670090784102715745689725294411685115788625271002137620303922443197023247759100358839127179706437642993305895528243977271136331202376138027504286837382658547473778723326851455311270089518384548951555074598390243878604321920927829408501700572607350814023247903518454296739687752018676831242178588859114898351503133335705477874885369195081422041549875926861127762251645785431024482003931650667016562497395238988059834561403353768590104858218684112456968495545995264372757874575370548835095106289637702676146224238379342228631962039018380940422568919498718122865611968184844684079871547314874200113550626596571814247257102670873743700867935111838435706365934073419257339392789805151083702459275545993965525687776516211022021970953777602944078967707170712391361221376564008489896994271466729880094622577534627389341221988751071647482912123911464147496443054100983932735168295950671887728442642568540528843606121745282338988945695753714581325887531830332238331468401391013881844457550963188836025580947168733635746545365505564570498383223568359582982005022553022290924688983073535294934092003560634671150941080257501572400039771025515300747313060004209398828235763348767769373842279350975909060444555341617030219207030067116811549518068290394666534595394815646457268684675855126939783261551734779611390669115755704302852137592433044409210374810047895342514594460717601881868612998635506775522557677808614239597489479107922934803372854580786830049896985438858293601404737761212417465232336686562947885474265071831254290693997784736621142062510398564793493948414005254414573145618432665724824396686313325814495266320882226853639435140872034730477778852340762289282916850736506699921855534171935828026449215072644698498529470220315590064053295794800484231741437766105239864697811283513053470851363729901223974785024820340022323842932090648799729290947785025712485775491024964583348101291500051910392067632963061310616844880733921870099779739057763061521334530889284079915416792156594295315285356179004235443599658034207320765032710668245918949459660265363453329484072782535498892477195699783633221400804562811876386471740126297524997957506509793314180075665376742905217974937652421192988767104884275288952209915439428479753551113861062940325414466241105379755000748370675949733886129513562247780036167784356045920214895080018079438680268125514265394607820369242193329917058376727056598364906195558284107813358859265051994229918598603478091547882771717428205558609882967822116307621228411800883728785721949968447156763670279491083193889375162186503802256047237715506479050189921513622834786369009697434833705945108202597585164230416525566439136688554521058008325683652584388976168608334244996653917696654690461288163089666489950726422218977183582293511886621911934318155836280988029753638976729506051834328014437764905004266455443292833950041468422569849922002918475244491942958779028352723900054030813116713493610130303866237447693103833859438868067977784013885609761208454729499033524042111554096667459548491563460845355221544522182579517003006700811433484028630470161297688195468233134903035528944113696726836551801117371176624197989585905924456203853589323560771210041857596150604489918899056662863972164592097590859082278717252979934970562320925581722736871426734741132660344901177466308537549744215195697494133761138522922327181121528171982225605182502523153872786114723011936014311101144494463497159045625994647821185468792761847719565296434558316176526287408665363766522311966358909546069264534343286810991369078597621706069507166029666828917489208145427373127638106327846269781662430996557595945100082860865248524001136648540137380730469100441998123076646676799266012083444114488102653158409622319738866979589654992428199828178444917214409018673940398643524211684834907190569147994331849637286534790299620096696012881460804688160405932777709454537076905305605571276858392841368329446547174550513593841509671004065057796102788144456171093273547147124697837102799637269753246439281107780181541608944930574893258574515685490944588135195649403101321812866055634468184587740850872092033106215973701327025187673522537272991236884961825846138659529492479853120825233762559065856881776507322745520671589501608362507020947076691532305185676661753450433963755521108295740977393978474586089821840811385592027543642029278616925782271102626240192193921943680950654658982207967316768811754548565345799833670210217029384307009760565612374521973753995631714972026978816825297436526139029649975083499263553293877709190995414572877701685320895095080329475538532096076435317596555867125256612864244278599755272134348391233688873582378327635239776004004397227765857238858820883738546299251283268175817700176949630625679114195978417020466777136087387574276301930693481800405001255175200226902786418860978902397159441373436467445388212613593715871728865291306301983269600993204826495865039049630241782959544880924887920968362686934913694863352008338281927943693878418433176632992749841145294807505654132672321690068178702180567671614569556270459857600837736923890443938723521807069603295903675827064113486161761479994257553513066369621360908534784290565687367513523027967111560404521510282418520540738068584621468351974500206743513489470829760181192411250552012766616522008887719192738214009327557084164579924247875512001696664513273591389591354416621134214998188456443304901587160726130656521102211998907434806732665183459647204669692662320477634351444848157076888198810134008621936937833428404141808418048526397479297606777179980154141078701197015397497140698463243233368294682451480562850351479858759204803407218729887947982708004362820641688326659227872140532183401249358758642970638071371429551349880096855854663203270114280038446923286824522939915604314011218254567115611483050829064692881541123237923138702793238735589860690320069755684972339368442801392267367956020636956017078043315267926683642634929372032002906324714851249929672062176668358577127579078774647315383991893842365140837465668160980061023182767376607468272297084290282430131615237507448109920315322717100275275788857328063726279042905131766652416466222869815783034654747388471633845419685982828176607272247848804531233704902162865944500978494325062473152488101124198282746749441282257460123180216923329266115586270024065914847278065768955427917061038822890050032056692580693576050293674796407780041116254794006219138193437773305942730807804104198308610388452015712259262285244155738914025795625160668870243616558652450602265292703244050001924560710046640174542511090397489399672559476942357760242604871152023765221419393470056177456605703968989904709596406695000976675520306492690608757872899290048312946838187774558363376668687874313887825543733645780105103986277249934475578821742833477147079078159930693242160404488189423876010204390332676750721520502136536055087747811957793250313482076079779605079975346616106534779514569926277042037631925006009981109825569720733044941688893529264475863790731936683276047875454739262544026250732747704816753363597957615339753754064130167750382971123276454935810475817526298795689898826222253604373719991840217547128035955151518559736217839756990272577001962822078413330017294372329817415889202268414819856191231900284768835035553083514818540049272779258993670459693791884954207117156941525319806965412651019027380020459916827196206275854972822847016990921660486980271491849110613611337350177440785490071685310411703028130419220569651680080144682388853164764498177110498930370474874897930704798867311429695021688249373746517220843142212790050111955626513279283245610816562565848296750591232860887876040082763619239056687073464807312820135140379820151307757368278788292163637674803599069473691287419404564987044185482555268645798268497576651892738465489637104756768227554412257062257604653302328337749124114577275487339242580205134971466096892107693581668809667829111834217123784466570480728202719745656245371549624199994281100994419649905714366010195786548119149186235097175463386996683242332892612898259035927362115538795520925910971889076912437464879699400005943470065783993486440963970980983943663964112953668118289775315416550313156751728502344566202135897135297873454174613196458272747872088798236722272280342478187478303286661560244943943114230038277621000968800318242921276280459529654938296400385596051439101166425521894365406948819204918340179241269375195031034831031935463306257405263782166871495100861396183491789035906460638397121915838190793630646932439558705438478423996225630848996017878447311896531697359906230500710021407511693338899160781921638748606979433528360719878594528768607286035931621158759904646537807148626088512728491573370836060334832740581034918960846897171549001989663007228280861490044920923722847023866530244290736009123336808541589586156310426059449066318008308682562653530041084252460335782557350730371275340326405997984263313606937026044099029454353011296611185773774067190713348974372225319647563521320639826635191900338024533657852401901377523330052215733781716120551238298412474044740671296393246499707322550032055526831374466389161297193616199255825984857370306961148152639894797111740760014726313597810898635691001764598655388219640523757258112181225014417773562775449601010897301044452030356662944836032975222027833524855070242744642464959540302744851960655024417214287462414465147509095713583276016440840976103499305049352492927982748469487364831123828877106518312733932772746220399129905556538828263258337213655175212308630730942610166372982834802677638986095671810787074679159282230599296785852595478285484000572547018599288789882761047685276770606088302650827080168132905793844929652284439962934106709705280659089069220719321464467318773348467436888867297836188723350597757885145084238890624955203613363524751181422074735224482932547200039877816738487254900470178695797501764292101716939443519878914048753125138354200186266853960343303667137908834033470409554638094097029237252854177249879148923522659740563976851945675292771992043094411268298710324421160974410522497923923808597049504222765042130963149866259143536905589673867279893663492406420424068484772544957744165508602972708003561931883413307672753133794587188985351754396233072991117534195240526348433161684227510464040113815615960615299682722920759367149341475477678304794830076737455010490110387470364173955752765015725953208023699114247653041839253859545056167076138155624196154292060217081408699759102565804948964526920282741064060349213249236937541750042993441900934133613730983972139656156831826699888082156749872441893883292556452112927332518203972291915178258565801350393455934649991073621061952758399093903695890086978764875570707828852204910035887761196675360673907433304732955129639984584093300574843780802374246366410152926675327713282729616783979354098888146337258835854907213355052869035192579887289430399646453960611089190594401371412340849832484197136393321027184923093922072273915180618399620034478855648696502660687225143217202448509327243575782602079838083026544304729020963697600687620944164668007303927390109011852259775151444052598152870356670859535024201783541363292418019299293202912690033145606402211245016690420284575892330077123852726153759495026594055291362784847658717239656457360330438134016782425271020267531657027134636771978247917507122619570372451167866422641705907905983566487078779796291753076140345135602974208402823561350236104431727555440480790779067794634127157880385165568177864003206129065120313148315090619963102787346839210196186304375026960653872246122769232243195508599805435905197958906771029890108446544244510048411989095234696433689812942602124130686463353286587808101635380373121298029454312624071151885583386406140156842690460495852099978614618657046097343043462435980073131322359106814924387157926150577107236525125537250510268095700116069826312734225717696865095403453274982864942308076441316849433455046402397182558281257624824893729464204129522879844409830898397505494855324633151871001016531775195541380423478814354245968726194830162318856707607245822760636259321336914527602329917104059751686593736437343023664176734562197698683870687673038840785354241782162836965930001279298015369145113577279536755694972100015169566401431343958428402053844367939430742203024511550591048334861819876159479424064816301409060503659785323888918009835443282291332248977824081344850318955153694910740897077066262632262287780491745589432155137881155000053148097278595320825894832613342547797241761113307979833937781954389473133835683757420553021093127019182194529814585770591391451075596695363387587531879762130634088048589718578891296007033820289591392338496828463572731087376645070238954854740582009247726576263339968224245165389850928204361833866208783517482557774409413631723996454672266289563310382277529417063756517634431922741507573094573870085551467244365201709770042019153521467689245701517876082215903112922511327365086560035855935377898828904316187423598940238626236222338915736352129829785746456264660582659253948943429297277693831410306046699202401312873914130496413777476303634035226777736596501679435161000146946113650891817841217934804156026462415321770755452153676732154127299945028894800775835302129178825473398128562876219470616666558264677687298278488311492812935695110536341570697648733565755733990746954016239455658842961950133825200286319768942942482446737875737374247541720966053105987030040110628054537223485926021879196376938724975065826142071683955370694414767047837087656482090996666344244800398072106860925146592321320481368023736911643852570350276803903951765813694643721069605129611789530705203288940290370971013004162537482245406167919886260074175273223828399734318448126426751784214634452055302647127270793498515980026429565255506449401651869384958510395884103993233378971036539017807165018803983453806539314400698896601514609981732020455744953287392919739385008653303898124671401691926357821836794897496874869213171004020378124325974812872815674731000982300801291377241144097178784893618191229045025865848061768029840855633540816466676211237176360637906714929884667928271251501831829457961655579262896717107015250509887947042394519430279956964419284084541753641523874944396654365561898079566427530656097500267985518853910701039467825675144838478731792310297065394535689349881079736604705293770754884163008998809241086280097724284709469210276140564720170744784888405782618874865077172005110365748876266971971273195092496842608576129956000146298120887480222609646467977622939780566581787948194090133015371070141598013713752431002128534697667728579278378777556260251290937532124611302075361282026602484189856118831481067357953445106038609665417145654828650357236867632811377464339687570747597430967377355408762908533022519815300319801547054991569889560623487041135491770434379729423676590552468680968143658233652796865337860734414338165074805927898153430571054382837277489650110706156407705675712605196761040138261546080100196343737707262285999737527617328954349194395974945264173005838890074754739499813991682980106004902354729221772626093839138240466298885126405837752523984344554874113427250490975709785451728991662286815922749379839513811373013187840947156982945792760365559571501762833401720510684059151138725038824376183090535974770132240857605103906050714284974654192850779081538015909678837602379260474794674173310320045476344711125412023868387133614121598872005820828650151171852241604687361566657487634552794649860935400797260161042652636717768570141539859168055878890666799111173905728520359876412007213100200371659202590265131013699483262087780222499820410523730989964904312887330183780932565948025309648931002054052122272972642064422261431747736454663770297988587139547830364354856466562877040948525222128745789853180735782730951822070380986212492142711718603205479858153114299761564985856583096273398773367121382189073259131815158131598555188585706773795589360835424650798007459396766662074396374856634005979524862314371485992591142346003601185130710352282366626140578870838869311728366526007471711611950740789775341512770471017103238545587149518494165320732957953112256641947294631344952220141480849506545739082730735716985807558040536246129113311401530191967161201152237377274057500038504608192698945771265240314578324761994896790258921066814578591380266617149323182528207497856636025055189961573943419404172938231633867904435012869169032412497083568502601145418811080712920453885121459641438307015143017499880329594941634832627258454124678934893803588162644624119034045044845675791009513612523004004959902113207726890171492998348796803345815293821188954367313244520569899567690464203622262523902808290068610455328830223735763113391104781311990313463760485185127172534014639301219886835757879988512600749749677081280539437001055625508263823215702648183528589308725443625622346847791690807805844847966684098822080651153299483214607584000587205977673627558253803907978958622599031083817323711091641260962369598328694724637096156887346790692518711497721649203799156263443600851520060178549159752199592451135106741852669692456887777847083670291590698189850413393949729551541884753357057571898203695458702513711353282688719006100987414729503645904406955710807697325369638137583387418472297694026333803212223201745713480912474678240823413796508527966391179020054873087739840825060750148431726824802194098208340070296418195933851536715366403660586296474946653994325375172470403868544292088017040607836829027243957977066398723159235347246156186243571767894638940883996406756000251202551738667515217244550619808469463917643021391123507455305503862670296911116924337626789790689966605991812221727485229237229091794810041801369715770284029838025410162238908059635374858504533013936990608573071473355074749385470591261582109747626058599448937230720793509821879287683453177586866914780698733408728863429747525335395620779146754966750240065116507950419932684984855353353886236767345974359832995063682431084805707200872226972902641192747342456226273409466390334555161410291907392792023754329459218164746216558187249139548560749676902072701017771210988812222883277057645716661752932168528831136085629566673550671795867992712326060920755762370336691489508247628528076749935309169858847877312941487862337061173800993606080925790174898566390224941597599375465938021308390188445560346529216336427824054596106952615943910028917797013477266390745229929708736843705220408373255361573865161897171173161218786068867022283857955434602693794027731965540567392632758431591119941101682669002576141045865085323826255359520169792354226342298392933827621149901871634897250852408623796354548825868581609260143750243338101941403865646172634832146967402122515935380035247760133339708903162177341700431532599309958150081764614422709467836300181194490977359214453896168426677655526077862844799040433579996786188208460728195853434933805767838556502891696261605750124751586131273400299089571224487932460541380044493670520032910261919099246718795101659356233694015945090190825991050993698131996048004094294863540647377495961395913258244458770504950135888678450291129086632685691607914027918236837455501073663223807465928098928541470323357429613760597421871936073461004453966926207420248173154665008855680282936245335352726882189865725253124531718560968581293861006899553286526265183644096719445797678386676706359337283107432591929286894431993728590937722927188293586439312454683482672548019716972155060307750055009012101869707132895314203946387478812651616318170192751055941854167806267326864767059002881392558503942221301750743869881279809518929113070353673133713546568474910488875512461514690298857928811890868212777705667079647052941113684209208667496086531498223101375973202180609271874560641570349673098332734647166602016278815295121388226193942461618919170405851424817550262876122277982981381467321123422397179512575297421206309681587061836358043705417534080473460587933923710766329869632097159616746645716955696439289624404988535029133725018291318192689184015980073470585714615704889207113352507117322613941026189642138834492301823831630573021182452387562565786353089118638172492442478080966190797887149463993047986530222281895241474733455957209693493320283628873951656775036722762767513610915109720230938319042263851387618204574412217849553107021189855082433031674391810171732628820698054835817347429621135039010416837239264884216032414244372008565015920118698989306772437787854032443555147732171714712524780389319729869592032909412695193075295001345639472247895573358538005758905938286312736764411302910870036562409932234241431146079290810099582544068088205976791439790083161203877481469737869396534762643346493960441849970629168216998750040768930485245454050480940762461061713732540478950988121848781307519535595991459759943322798597518912516606603186978683755654769096420742196286121924181422987063732739240045701612594838165691178339241641223806303884251574182591285996194791161457658434633041425980942580002068444485074818762049546479435266587553971440813404334696386975019561380938326532403395152274861764756462414010332151148494005935672142941526588291706231950585688556395201967800983003471901880442938320042878702043011574008238637145193543218314551901022428206607358865136531387041097802110362803656785271331409734005758065934508694375013604199830832625797804743838417977948758440337256941636941824388785077238889368822134324171434092944224970470095685812361305056169547007164872842056665256463381808968135994783627130829652499036069220466731553998646325214537829317226646173533276348535691179300267205098816271327419334311759922082710778703934749856195314020624724747109629414216463095863682974065824272875393451029015048173212362671470737246077753936131816449487642322582597270264228389081885632372092884818178580768810452463052243336531178246848585205784992385596511254111944908136722801761453513563145806723273192581269264114823007187524683969664499495794163534425895406895349223538102615623089962366487974879846647723772405589438974820558112635898413185624862790934348401495773400170133752731109769102359156353946248784339296708804335954701919786659025903598408402082071593139082246291473672657045138427232323917705799696267044173241416739587741234832798080043880640853534478956033149366206725010642168933626774195115125336571549537469848416171079615912088615323784672050601212157707470739311326037132730622467778608276332424291569604745368447431751663094930022928808173580348438407639784034119406307924959475921386650385640070721314828212048863359991129699678207368298315662629895603323180490039601025932470698357402697536885502640788935758726651260678870848499839462586168733295841574481063396180370318645018031507600792921731327457040307096584044423016673261993233951607787048206144791773502902528154462504321583975611182606162661432047882225443518510604651628499963201356715926399646836632104407157249999528948482712276334936018961804651114447095286226890597180173058230167673483207060695229101484718636842277004235397678321794403289144291005188642849535269408983916501252233248712957230969379626780796633325636831214711708266459837298789032867770987698877519581217430434811010577003131104965387458403407999071356319769825170092581655775330847040883479288654038952177732250712565163977229197277476938263167565998097124868728419344927326382159256894766983385084035724246242909171848526719121221422957301770446487006311997353646288922872077160952473640956693692925163394514038357669418185733267562173956421003182002727854708846313129480458063627981943810103847611999538440098099520554473138218524117532519114330216781464014256189215582631417098131042609480629446841066737641334487242071793986223335487434480367719666368713552019484377594529737188365809996005655078048175349325545321258180383678359071451204766360538643978080312616598823488333109498243643243477206370893389015430208071268639283799585210123506502353538559969118116916044289684760440608942014767526197926239437128584427107297400114926469599402519247760833027293535708277254384382675046243701502072101174058106152310276892538567164548714672892644991472099623278639952116488371112931748434710685553210175128304514885211639387779203998257852685185733445142885295009463624985002386138006839141527516140115932352158486760558182170874345566946239822340073742043997388642408272892466425747653591691140619893087970363656206554265339429927192603115767740179983540396846075973936606055561259874496691967010302748713359698129903401987030029452838206156414540719783499867120582272135285523178987347998129282300325129334131218181072302835032331844907576472098386798795356080000500816155568328210183415176650944301408337902499920534391008334183685902634889965159335454564592384840451275590306516489639614685472584380459357402607642486889811062810148386504132747151621757323484901684429507412591589573754002961689202669705746279459368180019588524953908721984884436340877833063681478159067566542521884846486614625674983447471916651122116595193669003224605598900488347470077529272773797315812597155917955767325884630214989686534616111034926852761677814973948461584872000978793322560651433330517533147225709714166876472596241021700675316813510748176611176316057336969075679230086918783189898140974764667109146084047381213720553517373613832622288373100615158579142591827132814447070310801580464446040152632898367564133589969151023115835548595362355096941314893781049554269088116677455924962731248335029203076046014543547521935948733865914127577255317325602038684753916857291451129853476989319314941131298277179506211128269729481963946943058135144154480520966121718298835383803000007876006959086876654350299953636799498754364148217504930056764787592473384946303446427282655534753899358274559121941314356921912001897354377976589675265252057400714938250452081958716046342783122238654781890794940706060732049559896530353883544293104379847462127182595535738435669549751307289889094495089758564187807360320920536664271062249513178305825425965687388162508014508821833655859868399622842372259402249801111871295531977656430149456856109080316258524392216236051768833166070853551051253330850823077452209852499213461158835762637625522560049377954981465212653837766799233300378089796865877719746879103376528228469068120234725988859446424668390450936346316580593910567449982131648797685535952677352636200674509160643670151950913580022301793348987419155268314872140869850915672347934076497979615571381093900324203620392861240118158367047610263781186792790160059611508380941774618564935129736061982717204307026484113728909052023617080719597047547161179448626876193492186846779404103919306659663183996686417360399740290669766574130930669670436176553580597169338196787760019205484396039618188557007428001641185720689902496276758710971186384331703008471850630717396157747572667080954802435616649556325833641483576206823734555484737113309591099064329914407888124183748578040944214448049665314498482924912520505958417408140853947794550311294025459006789264852546974065015372567181647181858974719014240439810308377410390821982804327329181597770421535635073374762246982342736875153284829154433430015878932147566213599781682762299644534480931306281633273708964543069027444334862499747256288705940555609205545693068797502222185457059803250427486375070243093426116263551762255997489812868002859474951219553577636457218037536236864573121301715248888539083537251465759387995956467278763852736305454672801314676513387323641403421005704223355336316977778644560521196685209669915192373338014500196426404653419478093163797180385746872646285536132972066339395172689560482600492560970468092119235983558925390496267038076904033187702897308987608287414410150037433892012125170932545874359704399586959121840326032241471524515906981736867366562171859492684246686576458552364559103618517723244508674168513864020709071087503609427611992887816546373456351312573342212687509253198572909963018606859955961141250152428627731711964781906893060131515486470763071940352282247161197549835925963390537855178305945326311975242326199816612787756973977635170735264325683097850041929008441462848657014856730455573247395757696180247252425188533591974082706875319263388380673536354724727084853442342030844183736628075428046473015909181804373443430289597623983899837622078608598851543421922436118574825831894032404847220582093456204678916721711509757352877242465876105592059103828834329211512843108794187453427872593207772533815575224255643227618793422875005912726204619366675172418848611161179227715335528620365968867556132622294613643149870834575625989398861306750236932406435764110263579297944620230101683393667154798895564971078723393331258022067897552405071687639021623294873761724338948110168490745997921677672577600396895493633201611287079746006734674117565686853123535216235641970753938488564566982498581204019759046989378001052341188039059519653080753550566382670473372242683560765998549115238960377316230669561039879252980701162886408849978032550443778164653951053197955046709775538685654645072194441244491051205010589270692611248226230386728976593371589845131935635218710685888611836346146683193340325972190704341365752704903452590892952162205513286128859080440835752098250339942956479498110312713388987881089409636165106471788370450999849142909741782259774070868112320027184165713000064462891049159032220661972839672589934039756125281330990996137332323362968187719569627862896272746562463308176827102499883759389772023649741950930725503745106044902796537753765551207796685865771153471735759946511336226958469284080011273789752753908510821918836084011764748754127020322508014567893907086349643745939603166558743139849772324194887742486513008592338694009572126698988918205107210942266297836585582876115041715880418840690951030506025212873777565738409563290124737161988614520514463709857294196198335322251143823829003330919681205149696561215978122277470693789764792729183430899524854618903238122319639866905307202470088315061992070450448001462879792106859545165199464160453539186760444517729475688709255753589936082494107999029898711200104874914573932795166005260865904498772379923467823338751582341762316793036845160705343984995225386271723096620735446953248839424884438565291349613245308520835242755086203590225001652329477055717954256028350074372252081282628861653253652297817403652498687826932389518667717782207944849528320636756478276829436121872458396357164261089819796341132778330190185029557064535116475398854212799986155265030776804985822779340781223509904568816694852844306945425351009650299750721855566795947448460877000230972025707467051605264729006824450991228532318559596969592979665227182139686415327764047696402545032268826891226367722602804809351164241146713846367696575069795966193517088772868746127287654245912052399388067069789473539946855284511397586119053306479341714313782748809637344189075803017221888410860585120527460727603689531710739041653237009012873885610697101205977000238820953271502295945928339835693397737580710398742416290144911553484141044521806686719845893760822980575480353424540236888642341915379026807543587557882902093559430927540701530536259573767393603389408174348313664800221431572218262820237820612322710487216568327234544682569580675312191852353905585823780559855748251907554243447791579807663582248052965244345535686356926022921365591923608562965273713700721072671995535853138758007237168229976894923755408757209352216073437473126811844264923438058180348834270239293352880755086579116411005524811808774543657049313094357323870062872162256130089432560173685067166242184738265494748832374757457918874786986654603991635269114506906972657425639474997142619072506221740971030745195539529849998825318919820875481217797054887003087199374275837376738194713436091840008443984422345090381462430366950812352048308754380004549127084536760764850925490715387782491501243121313502978379359947066603448973341650181309729819684863820582372423365358652744947629517801016059700063518609739316215673210558377510725844686877054748177085890285397865869749968910732962239419226967191991853749605078529470811118681031609204798937006376252839734438382209753440323251575080708167000823211667361053137960075973751335350294007397328406611417333187670718761859052717668212999252654556697614905743375956622070532246809708005594622308142953076187006022783147605868263923708287359929059076567572062714519041649760999488214814109782341244825253855371208035976252305382320734186359488997247833582124695620642109491124565265852516520624435325599590429236111521748885584702461884696712249526957761494734960845377182915099738619829733762837491738095283269077886075563878664685997374426687022586330497180177223717459712848375080447561645640507500951796572477712645909196224713211787689945635852978806830513677926214465949193130885229366690725290084873648135615012196765697610897842793787297339932152869529421878847651637439467123908090949040778675733587485573115795446149746907315071738951406542278961076632284083063731431381446647162988101910372822490933561286412473752653385953455307718751153093304098741293131658290404023031123910897979515486712245409048376715132200064656979480515063478962641614778392493198083945768618292367372740801710534838744713550167915141140890527016320711603646072412280441739940330915544957748025634246561282211925709488494159013789579882536262854071439777545641418151201950330632499039955889848507720598367979552088949629005535456291885806501641545891824753644027755270195556406822891325672564280696198313964438940095430645242389095988719791071832043783094344788739540624176987151443283795296912189258627260105187364894834731641190937303640890554337281835752128970585593598951162717117293656754446409724481852406394946120423112425285873548771669350068147192930634537128776017858210941907156282573303149334833167293362903564562407021557613256706794046018991560620723900124331897486381258773058042105634369584186675879877858951371688435711743492793769404515151319507014412975562257861265681637396661945854546775876795839578580549871747823692721722285101683928776502263702450901674471815040149792250833410674161622070674754006831104853213455410045747005060804869227740255634625246003297365926918612953611183150266371048260364715206513209746895373097894617508896081388688309998145013415977398099877731312778031434460761306989666303745164075512176916867420185725280299112687211916474899416125628576453664225878787639945424381818658737642055436709921309188436463549231603840452526343210872246870404404012332946505447973011899524247343951802406028746517744772143820691634017140517956368960252459089218248654799221475001605365549675462448656608057006388108182156105214125531961336937943200639926590743129299632183680817163388445267744588231267239662831122260302416693410286587389009930150081164131343597615781924008823292015087744078707164579108141767603159806934431658178436352340382013266886611772737941043008631300686722378751396557643651719726024042071462768900444823855759736347850182853622666663718677934380857042337521338924177730619554570590262717703482338711468211240225602776090099643741050342849452790301288933481028407454802094439010030038940867747889966680054622359258898921933132675928024753997447571967842838466935434115075704045655570608327568790141728959153067376703978319406860749626061994268215601976916045676695043180249315039335530266825814234937614027041397953542815560656020914054021284812545714518617811483701314732613446420931629219409447671789914154544958382760854842552917652481035665505437887143539758475510641977853150850535149467225475175972296904462914544601052373789885998111237571700334875966004628777688335555426965519147205311635037195315504237792533563825371999372392399675333937157141479188274817310610108131941811172412252852797776536538855558920899141370367311093456601084534167648512817755825773056342450343960137074497950511717008955011713475764644562066509412046270817528374556268893028746619548869348147362943017630037400963007545393552468802113540833147664537006153385301263896408959140059974802252602541863665406156427643372355527338156544753318223537813152847460195136403746647423666813524158676371268681543413438440772604662660488904651381238756277525527704613479438056693735563005783598016629960396569966907251291513658207742234401155518194278782591393827437235855222291408449958745889660019538075936298063153348560645400062430433251587102946369361654898678847498461034826991863219247895194011004251673994673764242626194560021287968261715089572485830046602018366700354206706181558665268127793797651941230817979788905901014120721942895523567745848093255916711501344482676293664559119090671303965435944173063793299392259981177286574524487089019058212575347400302669740063611390887349439511543292426442973842874774005817164379891917528708072508665823396298145886835728094486847407558769782555149664468063190598464373873847010183304291447125690739642757464739548066265420381973836144936731722410319525108598835226102926664547689604942386148073539264856686182800675639155551937379413520697359795952060293445980047708948069332536328382263090078571580554269586644211411911180120372919909981424462267100049610289743764102880384363348174761325545287658216482960121385851410962676150178786540273443683795856674499872398266492421155617854315225287974758785527304430318501142057653246278854416829279018401124732553273417593428756770398894523294962483880926274433704610533006092884164730482704962975842393319212397081604850590894955085415622106617284402649095488740517428811992523486042737461024386783723829800051352540983705279575379422172838235990953031673711353774956004112639451692547955601681630921692162608121234698622659331470509967133847328038908887081107322162140005711778948179542865938289265010375871806267704695370199258210278197577159760968201972361750956666840363505045724636549683506604263821762231805461143764001161065394540655210104891397388588005960659277488450319346684366317073588368193819369563535828617932013686901946907056046793769124445584717973230791870461295296554461162052285703812751225290181662382291301870479029997510006001131575397992965672208607969596129056213348901084104591474627655221429109628375752260805809314932095294716579396124588008408627995644030328981156327525833782863242258481992687853504316006528760545266576572066812933900271784041942309709547495129034650356111926333645771805117148554322982337751808273796733911619343105387852948917934763497010190811579738228681229106167193187231513104000365158107544946373607620787931993975302558350788064917119054752615931155268979776515112096863931766257027531987402567511706258539430011253978914828502704074636832738989222582322362854056121250649179239354938995280351842967876115438928619702664212022901619283230730246194153834683483523287589705390230658866604517566996590852493855215613573647808386715224660742898085693337697559048270586471243355887899663196317949884327683323191433782177432100066692477481859541778390705113662695992649325717478921729943880055447375068791899919198200910010387762014047815915035317427190043866017273885186038466174806815746648582591053548699270665704629415406196976671776314152166332445051897990105835236798997004869239330729990544907221847027807801775294251488021360116693444178200463469280879371347114997151162118672203000253460774761424227958708850403703601318856254220287240999332810610270927994944916249450378463575067581390192247493861630536657412496389667490302981145631612204132163106519105184545460862691591726913262056759981994822665045783784755626087812499301096817590515632953683089217168792142715460264813163751333799565158797366500411829209648345580912026475639639653037234337003435101814726363105598546721148377406184225227237916409430783782566389883654655083353655175151729938759860747708612375483503681802403925118707285722786336661510470219685447667766989794219938193372766234684617878288806430543844452909987357843581364311551001118476624529156832075795634997422636600238019173918669891716905979230778212891819940370221621206618542046827017950340394138996110387782704385056186547320588965922779419868774030978015512570514492198038759759633524191908537705541057745161820385859268172620243973056986244300793411966553871310639874056243963994744421258193195964168731980652667710795646624083111557566308752905258667889645513605416497952709814923627036001312437146977024715191128422631299997809644726141131856504052863579228333636020158857666737116995622629603122103703558942077710095133390651713137643122548447090858050026941595165165335696403361416365124464147883241342318158571725298090934614983147666131381102412172712020444455658650464101724114767201961163880898777359198950107397145473759394401905715810558600373467017719919245171273075838843007626648932182872054605938149289287961302022155363996915843074399268336365564313230235818724910921184258261434383976977902071049588128208874672085368137516535923755996109909104094582848628181476032713006262602310372115014382985232061921893394665945995042793174743779899228336437509857556356682832380966471758275158337007447123841352440867807798471263130358973426189333068507563097486701960808830495836617465458561480695003560721125179708586045802177647055575847156992207679998922837271060550864305378376420189602634238133596929687743872139090370682678332446649248309491368525531517446969109864683035812646993764279194726140061560946838070614386660528424719423869758827350490513582320295099346518258622913121243906183115702085971178036582670019831328215229627907217863745688671484378160428787624588276107676894342075929654003978185559903559616787366703078188492528917654024006524231946821144689824246224270032226311257916399431416808792572865839187300188041833096531724728040511461926485024487208008041118392810387425531739057857914366319674923253783380242000931159912196721036366012241549062303959989880608042322217146528537503567429818007245957185392800428742683168540836995345015402894262296481362528341303026723459270087714848850459088732455094172840389055583625171436800288961458493849215715029197111991647729277123970611966810432319696530943090051524037842662950548872956608525429865843045464752552175438786658942967526011555699650364447665948672902432422618336639324696057337416110113676027143626011478403367375113045770086486413036088585036538114259993655194384657840087814315805225492167249311779627773473375393685250123984622025463898191424713044367008554749706163118724060935619982983322700378171885457688965472748075599662116205877846741807880953252982346320892460604114678142366980602411898628205228848111054268145870622190322677472955893396533550323225790135970719371484666250680634381629179365429096394966922577903159827523619011491010539382659410380101756780761095133798354018406523549634898575999868709688217190055497414441040357413783912929775559733662022008475384831207666369795523748138632600632690139195534205962955353236727340538290283091853144179098656875267951252763726597522993281907196654930954949397492029708592288076443153153294047339333740410494283927274418421295928639216968263908131821710367201635722893057684652878355851837649543497422198868865046819727960302784938338591323078535337953561532797488284793722676855521963378729885216796470597546424055222990077933615124342552693575305221604515231435750281955472895285924075181626015307118768109615474523658683100109874695512649892422588045458375031072516456678964101978406005352596315514707528463208572393992371666718894971378101257615332292188558486960379848579234291898518148991904486346455770154964190883351829124059451882252436358825733627100328751821404643758716575267835150724355777073745402408838374053653755367060461643658585114692551122305724191654983546372709677151727413753020799751999104848176221074103943680740519258900831661188695506960255920442049557659603242975412236484356522886001292696027608008010508630870009670922797846682767085100124042505964723441755087621584415710294082524933271916740424564943939156947486866449294939929440063310031567594721125508722032377616001457958348726789941881665289075454562461924289932041289481205063921639335961822217791078383181024521693266233438013743312662672811226551050178286877607458572011505563496949813443004637382026396271192307118195394878277293018579226349050093428114124371214443554226097721079109688942352523282056998374456278929737637950100050368353912832310415588375848910624253917290536471757573479455246760566471453525381190642224036258820295216051803853250959198968419613932118013574840274443717539484109352366715292167175936517167839349759700716469132428967593926033505853853042813323306066256332925006074389593128251612629252265586612054708679908866840346095306599427907453602071906736191480474726563147636471389356002547861805089843076942423881072426876506947027553485059899334757253465928896427420566311546675178122170259858234533665870583121838646971020604179317412156724703008901117653566340427354773522783314249822040667009547450301286638596007960488549555687459590331060384462914020249674173351320030738698750465701169029668803655598662142449449101784403547481911143821022836890124453130729248531610916826427190624074436673448829283650526350611099455262639378809329316887052789662121111935999036685722896361002505380023529978928331697040428961386314911423899077124988774235201711299179431822076129129336638117481227840438129484604698623629744079285826364685335946650369696060820644281329677267800501300320125692561829162108846299763085287281148888661591092586565310507561981238170208731637728659818050188733180148013608114014368580513326942404191137962219348802945540849940150899448599136559602538416291352390789852696071324077893160824279124084045591896823386824639510461289130143704920737095989023555684354210535762370865653633079192089934517425665774494632832000002345046428757072438088183717315708531782067878678081438855711425593509959127978677696491523843412454968657202264044215654685518228295686842156780734853425922974598724671508824965861890539418934343970256826874773781600429470956463347573218813493304732793103850427280617329311432909946089592772194908448825763234171877804517915075112533043560427763792885196600116406438175497627662320478530578988940931337155605778284190539109592276970575268628662205335227533672465087531356380909017875673732200355687666751339535273168003030426754695176190875234904692288178529702923153626428769862505162699406787522477951533776629055512613724743963755733812673952084469374373804160130886629172604059380724169501050052208904568834607632996172344864576433968392841898556744888018485319776779582375029366224049755041229496634516410482423833272106256420580462192523277705168458135436848982235095831427597199710369472713970283831029291511400356996999087559351905476092045174251488488450246530527586743308045323471391009994220506619527215743374204889535464264480195457271861308821134316686078830702307937165450127940507544825991801226979811073886750160869832753623594743405880750048415815248444951105466056942884922587882110438447619818474071003155438111404060676409837104712648130986819424702871579756650687185975261572329946063242670277778872832695860676513399114995812869083800694943623126081234994223675086154162679645741869046567804617394187371963285705552036333932208971851300965521102326575118172917832741190787690380223393978051520030931827612807467988753065976006826217724429461235621436849881880941081601241038379338001053634409733301374238590493715591302227560778047240430351856269457000968429083265567796619552518724934763370564785581258488269623766993229664685032120220505360252597979452358437447615049760276877560590190292665174598138757707464483735525563794348001769905109764863883626902420800716382509316450734035097344551952136563449604361280574518944443738137303192407783612423863406841441421565098523135017545379204794590115469178909399210482016758233422062805782332294367136749610273887420646105961380229010134760838073568926303437549644111399992476775996629817182010892136887790208410136674602778687836195795623012072860360051903944981018738512112053465470807668818921025157473949574670136710283653586313058357694604507392198858992425662423370582531201639575625671709412126098232810028182414359440560349768065890653029021737898011630179523314598570835413457668956720446939065992982513449283530408115444083022639437138847945199402449015431798884847194602911942131560435355937019104129571976643309604228129204472474963070636928570698273561147636260915583118819159119857238989222690737774496009646042373757670710876089626156601100850211038551496405059470265169908622456198530180633714003279112819556247398653153499714698108007347822603049519543572937731513697042564568736419185350567357420482068694120086693896977597130196550088969933220571630987219942382819148516625409991278101761435764949087648539828131285912640917376416077520488986070038579950311680096890994389901432690753926901472445821019710369023105863146091656573744568607883840749397197555351696191612743351551921908636806407704781435037207255434804083524764069936890324415550453795022229054082654008254430232521328627766448385575350333466963213199174852552796010379043899718111650867302171716445405562122643635114251027322549086236921694025222564749642734777255298682783858868684794137583993187252056478509195819447000064603523237608428920356182494704833597328459199779108984427132580548172013660306305452621416996844924146427938984487475748163752624292550597197038118620244011479689073952236117932139718371149162194737692121279689394918342786931806531481501696673016865225446040422148462224251008070405709351993092912784645517209063002290605497776518794955369345197732992816074477024374929663536752447817496715695846768881886737231017167554863250118409933511679757708829523713023620567673696812978178769412708396347906755247873912855164029482576589831423065602479943116381004136978938406626150628925988602381249202179479624374604817289533337866455358343451086917686807875307318364349687328216536750743281831202777663600344518924145440619767207873295615472305991205592709292541288163622746342612015839532219741180387209507024937270895089813200600370735050788108073906507556142999067474741518472162346299937557700875930199129907749991407032481786787421404796098458094876273192133650128180790253502322608300602129019582401743078324589936225064908718686167309427195441971229102086270664454840932650630439676111555040225005828230179603332786941755785166663044254515347956271212145001165925827455176207578196474700134052057470946252813006140515905036851319477687843762382171318057425983116445820837270807768140311764734706207979946614882040903226854208192672194216084158514095010834200771324852008335111798155825257173238796398467968986836039385980363391179226656227926552998634791247465531827732672805963105100554341257311912659859569136753024034605163866456701599574162091949534330739645822020734461678162401373040913941408550334061841833922599594860083383109769733152934439456961326914193639330171407676662417325694231571333173995892080160748142934958865840004504934441704227421727220986447272654428343985830049043336495374149684767313746222526428858033984522005539230601695382857129021392790863615035858066076058196149160016468544451220178929208678917839167863057203953241072637580712675475700339130233220121813238897940052543694589045934910213849146465607301385750159685237392523448576048309323162832543014974419757935072231557649383963042675432091648396444092664230340048191965282586726329444273804670232964009956240008978663781171547977182215188712173530769823995870329528888449863932928733704489648999381693063786050817790943233671821996500202131178662142121883529275486347135738436710297239427628048569383990838563772530585919984516529839746917897906222224583752810121836429613409421188792170734887196851843458875228777109611618412204178187504411945757300255135858328023111997465824167248202455526193745057163016016394060822643263368153347793944233302846791644667514251963638860082805986112982572647249434572588440319142020250060374493856652147522092252794822503347750021628457598538864959667434120914048187978558703684541224526552472268398644666875626555010545576039434005273503866794167182763455875029921938281905774408191142979724732830736434284451795588529510836180746458478988689676822364871137523655005739889380830021266560358032610909077876810287578541018497954481129928880126319749699495300787960619160460205403636089645392359859537472549884397901560641544344861102637244691213105783699657659784817080882021104968819439427411922539299200176169866368747593496975749888074653499207614481347983481361837635652453795254634274269198411732444554226987606097600811098580676322185244881980586088325244867223182927199353195817980965963667836799003386398329245226516294376579621589236526779822108475593885216291222206298844944236465768773244436009643920247386414701958193326018414009249104370442521821774189610724209487138945169554241536201222142338249025859091990818393983453170374566018965323861527997417832376985021265117198919159671891851864719919663790451451604902640643271921645819568408959761538564760114140873964313654629423416483762739510894883472967241720340897092837340525636312042664011666015567299079704306378605878706200709702183611887432323135525439907981566964019008864261925896388953857954328513893294739293672268398685877157543674962011715677027768093611086965124452040005351195631399257436110404607530648986404171982263562499552838526545047896915285766795796296674155836601847249335983292101189296080929137052724793082522444701399575224553735205411878540825508099600962889644109772157261487179153648716709633115823646619138188955778683121755324113335041154841742769120215541487200852615358298523057718930164153300671541289784195125997626641959674419016664572767973244027153533052014287545944567425233888249267614071781197199449421253600915129355909298227118382787168310679428927293465887277744107972712737545119765493317301982119371885115189996361384345392459981215114603735561112006104592006880938781055286951903877740478029977462815177679552161939611425799907674219183488792072087123914886412511862889528797014347997110129186619420956233147061222760264562692368339124986780080769086036189799340163480671726768633714117402427314677200559352023362540643440047379347898877895300888932763017183590098900625174644830251903702526245374612495443725091890270165379955700085140210009956676300629850666588202664676428296815886933711273934644848605674891960706505636927980980962609273020982210165285857333481629235535524518388987202313701743639282136786448392978809921309695609794261588819782367195219333091320205318254386052340904860741687247987741473647814335287360204874891203741454587780388695780555895336430452998227709598641759288591773457643438118910275675300562878440840781880313520997116340251944275178332560520312387183427068371563387814457332931513699954487876435506911521313324478821565156472845501595901776925059298701021075338016337342045109586045372113039631002328771461661933730411159071698803892381666595282364700599864304146843904427522524507340922293314716373289782776385430901960604764072364854941111949401095209141353457917660463176298937406700011467091506472806923681951736221569434440287976978755440396505371952913566236188627158439756859712160892326193670100172660529264809635640890903051245297721423078667349038024958494327988308445466011997055504884423310779903762737550664797282946081811402649677032789666345111055501018515468155941638775861295678252246634223027466194032259234321926274464144966744740766421241974308135666640796736684658594383306952206602231423744159274101370211561755004802826680792036299956594118898421681765522598970309134686528584772445421567479424618381005560685815054116483705899913207584970400506711559003203547402828015834443373048281409084362557193631107016604630771162521406256871700068483137346764722031259916954111182838949103194450631141946723424601638620324381435828442301484009369327589520813736531816510953640673744620580320460482950564209405237979551910174039148667594991602785946727040529210202690491772396357496156146968568974149901904994950614798785981731519858722168999943080738766987144888928789032953592973983171370542594448978729429317795167716715817023086015757404859412280298297099038556433285319783751512958422356483565195258352637156624074208212533653331867016974294203849066652931140965134879660550313743162484787160838971587887099350063036434155637346986006476997693462745987654605281750951977210485211308848053841634892741974716905898597684804881180596378938244511934053203559572293126715310879505645516679051187058218059091818477559248169929805811540026912992411590127247147067248480209402697468474481299110059165665752752520407516213923947800317872595249408168073670792984328682537675806806485421256212098355936697406901996874693326048436700928324595151637951203653487603039885091340069057505751908223229243278681973209415859396389211782928384071951754327708550961614384267227586697325977246456685642507530665610526627013230190819591185199594962646501550602521676003722689998825077348334117195044520490036072230364050585593636017760435821274176112082468590405137664701551224285937586960839032880357757962757991440730403477648542162900124082512794167408482539719947813299791645807978834552905733630740697977004324345785791321442214299741765020676024970101740783304002216462959862336037518892580415443899989358818312359283395306937416536709387574355855072426169758673611674710036123703917036297437669870241729690779207132160289298735464867409859105228558456778133641086243913647433001543073309887717754349769678955700636664632501212050615599894031507635655243799057370643105900289170675705574021748251800232351357737915775415715204116846534063930218652822424253753883394213809152608314506712101480013558600501864807258018220662045447948286484360800295007550280992702318920438331487690588010457311155989679763298837664161356886070101191300052022650840823568373342719211442890717283882881947361365231743908410793339234132936761474562716618955463189283563816784886103127280465748101597421344579729181447680284944817630242664189599127674996193858369458406490895488578364065312633984456425801046121850985789595033889423718344419798766447117238547127303305093948085160251500086220671051429340723751050778486359058467624811354539704979548072793480867702493109444240875877362402593880538615333901921032240165777410771182217774924288974274594413740569387629887669785537840477490443835173869929808738880250015657784594837698489480027055651054454282063329775137369020640263429093957383634042752158462407232413518048506814422275827419137858922614312768307458427288324905795782835985135054730423058472223563028159004201147027534606373288028745982933015810026104464084563335230505022581644371644171111790112643099898402873059043496976331710684050762016801131332446851346982735206247447738735650001085860645825868518150821705315229098818529785416788982070973650192576749901903225087399542625963024035599770699541382688278085447688454339741600137010331606947591778868278321208032120805727740169236115681305949741530851014957720870926054181265629387725385094946600123909056591442767364722628991075718485015897939666601987426608587204131151822281790745885019645491106862431502779481213807011303856431396421322561928619483944878872280942894382135475246845515071457368849948559065012687321385941738149523300873885130591601493751274983806641040512190838970504445262766304442087349156240288624151484164420715037306703973642600551202097293403035162112279472729300633222919529936658044432201553576263408729071658507538592439845082669867664989968109962559013751560100618782746556668480971632824135075309587959651164563932255340218994701681270034890269339261059193216863268087138763955427278995398910919783545425605039099539932455701486400347574493387733879564037015399491932668561229543393395424329694099460570825691552262477541399673642391221493636340457747222029453492420833675198327627667360489106875184732934489944579090935432324509915012484964713716916318753900251860198564651089315687345263691028403801441725959087762701862678154089722151910615520284281437324723224527465442363106249680302595220283347731784277268494537181601343169037476447438906156312086174169419104610915423884812369778255470037602189508955013298932523350434415807554682526411173487473659450063690582041900379841519748769697510045015677181255321611418252020931228044424422394493594322496906491705400845019897624187488814404741146982580108696539606820466417727864803698781791500333364991455771620598284970957120661149983106562180368800482044615798437567321788212892042132845973284046105826504790339563403098225309294381467156909975270653916422341726623638199245261255679842625254484978056817935300281891641013695787240802997422919413016549201788325327627894607016595111470661520433725489766597808145991696768948582047473775422612522886161448456954395059732010627059384565358099105880857271043400596517313726061188325225645393813960758642561131316090313374120036550489310767244552321070144956345166974732439309466767690754124304308676185101975847715421187163000106701145484601091848388232997435708113854791854245551766658527633328064701061138670416968724076286638867880872562880295191116339171793895636283628875581785908879066209248265901892715905849903348880202158946075370197543616639121539367981517238634050098959560299197979576300713760858112493883150526899995700741130954438649337674946988554705771475742643396062832539314949542987142062492883347845172431075508395336387296966136639243694845493098902983889923958258180009275634111795467212460232666973272379379123743184879357714066915172951956117364317094447320896042374498477531354474540471848970483122528861992167560688934544946384196045590796770533452125992627135925910344955071786020759450488817080045204373721740112547755217475520316369449587501792611189510169654890117263825717246232917065708933269630356234184805777842004415897872823039138219042800212275219368471603986650320452877918551963827438928303801839653650161274532008721690231058142186003909863794227953322278827911917018781450456251283425861175112850464039302588648706826345608733382622300947320420398657883573409993583266016968140743548779701012164041004947607517698087074060696552856389050589864637689083443119461693758463086932773644366168850641425091727129322999902116345263427548951305630041192456044846284161764740289155955045356010014668005159935202679848049369733073261074566831269584986893018694987363940263187143761115574973511059344807887307323234888847215994287554700098524786357423884400605346910583488204955151970928305251241957187945926448461749997158511403160419903990509328125378476600979873372302706703108099426467178109017404248465266769870498856171973275887415000948174077890544282250471183137899812769708604444248010956454224198443596117556451915488494170534793476784896819976282960029931334872634405227141536165969503008662250429437202739762880946445652717036220775280750215145424075317302156557178295352311568136251996502788234212969427463308780911875269554614156119801175264370859365149978285631299848258579930264316773807599765448521598788571288318726091439036926324539858395613122383635005115960049220838158487303953681368847581158813242122921856689712915088207486619898067250588529432252586191496082419220153561493710380824440549894167509389072887461610533145760459930449081264044315965267116479114432939994966217050722787936907904454177023829608682253726998957269392520081591802672538165558219999810094295423700385694063337842705569958320680648881430555747044593681888018907032040709781496660990952944000242835365037562970881062271244128453776400728603981158193232956380140983203030051295118400962176375713494650161986447374243378196525207758517191206822411932375994322106659932824016299349371189362425751008727569877343791786311151063608478595054493906109599143262385103626778941075875545749371997880016912858164647385092869037221161588298900783782750254957856850846911092117335501379463254943224003547062238008490583788174420692250054769606715419071603224755686365871294441019026330602664632410246665842242289396258351370797201089452239428199663074903699967680292186177575402735953995558112290104450229960693663270058349698989303303379030211427632092504483436963961661089070798496201399740806813533520009891272237546571084571510353140043941393492898063362937995245266638616595259896498755693067118976952375685622091534039783047704557359015107465915032803150262780467344317010198521941030108854713786737064244315511237096697616153371492228870026650800587220168106738246100690730559832685239326851204385847323729174392927479801223380345801182439637249944420584105499195824455531040371094762474653519876035329860471568099089467139675096547406848225611182788271526595859740951056235327855125001777846232090716279205230978810796646852605676709567042443050759293292477694191069077134763534878503672392486744825632180609998983952984619116457323094205962975254582561960587178054982686543708272874278791059839838402565074933729835084796699118689725705026126873393895086403548149184270271845178289604749910810491213696466897902799939139009279704636939052054131734868809253824712586694427120962362045140794801229700332800314181854569769481129133338427828940694074068139200464701345639063273702277611900582941527171900599324927051794235452990774089570343676059066753572153913934268397220415098821226810061125731983970351660622305982296283640545349628542045162352010593887733043881979901757427138657250706424167739790015043024058024394364662371618747520170154344312483409976446290801994085044603439525972567009006550019769886574323658442755123721868913608328499434090483424566973498411078626922308102531032422699754347460755473888640210527668685326828515318682463351475900635664277311344832451827931580001515130593645094325043396679645731596999567434707900575161081965809907902525803940578709096385486365171958628762300581040643448114453655452545316022682467322256422444690941567500270164610605045002995398194503644131986880541031567777384840825891977829790082198184059843905552534982994474711269553161285341491114675181135482603075773102610017601121993220321564602280606224079307916029830301474479394439664924407253956417455553743921917127214672934880723648637682605190828909756142316593775655157404948314943948923990708731794956309369336474161491687715329662260408428164493612489583757479982759547116049263290505848338340733221374902310265937614026043264189292367983870847499689552109660770177102156663796220666288514182899357018503079845564562210497507931812147839406908465890380521498453022004149921456497719136225782849226406779654578228534819723973240339581999204551645721925801732329983561610369966903302279143464621897979394591224785409907180473791934065743510230961676566390888785387691541561019624650014751029880747158152096173087182658994201230881156133642524872918294607275980119732333164992434209205336560228597487554090645565859106729143947282063533730815416634605183397615011527069634733535429680440038973261645983932055996363913878288031904680137258725480801129786938894182868691561792358840824688004158860364199714045303439498543630725504764838726671738297549004273616137106412735665524713101724575548355594186941704012918278573225719220334577228445408659903701532320521619455685672752394452860351222845805787678317577463759880597228295911164294911343119283016821546746017274047924092233936481471977818980239368697980930125522035439057328546350973637098205165625816990098655019794703260677064721101486959933217002401063736506844325236868602824131330745187703866514140430580201332978750101910129134644894824677622595002745797701942732165468778709573744050513205931380007345196787430550165056970632062129227028518960241954850515950201157669701122386479424213868052073990324389613512548097899934577894375591666425521350161396202234166866193230708944168032003089288298537506183326989782402816846604441869298823158882289593789118256666763273267148071601765963345940288997506629050817766118859208812869977130369029378689918100693863015591440181818190936110757262021996751625973444261119096584596995236548929153943230843335645565449276481970083051949285320411346748750675638723272711897572756233523271807291682791327989190862680149038341813917264549349629876239129697769093440926796903169267021919570379239790328316189616386690237211709411507549870574366482493221316635015398814553230130318488639679999994473110718494563198168952359991694612607800673957276154335173674290089666392310477330400014311858151509089692604181373638924880677316553733008003570538966632656386195596003888539417931227343436135932712435185141086853005767531540415147552717560853970690343815181162585588728114777576974113272751300194606188799093574312387577747767470943717577651196813128165080464995295459182868929780320691970721789586469409247221662517144376830247887183691008385045001644244163982799477737255426879941714106216528678748115409021852290958217523591967998936021299402656255850795324651330444564815472424776760859984173949908285221869073569333531454721490722516493805157837456324374003377404490323012891648088421129991157860566048732095507608868608696265734958272943589792654418982198642030429835558901301579424717670700656808231933208207223927296673309230277022409863601582872108744714295622008638420493668584985016807590140028019859593237649342956911094080798757089912975286156593970116566563990337774470532460347344189228887591980010606248427648380510502011423708579369863737624811415908418516102158936554650606212910004847727751589074031176395258445125751289509894368924294607188144696876754521678440550441774549742805747338534886488380624065404311047905867235350492287118589755820473715559888454898494335515742015987714015790797253215343198669424661568025408616016450108431387048245979475087451155141089327637145716194151226917348937196842835169662974953666441871441447655255712815106278772419688037820823588100543080578241370720586729514778496806845147924620404969011515858008715113096149286451878855575638412495665823091737534178400801861451376776821549863216658838242132511229773136180037330284748342036230211467281227702265381444434610375149125609377555416749246083847056853108981192590622376501515576965440369710699200876914400806187859925111655617427223010266200338243663974007973118856635292291799047250376790468805269571527614587713489082923144184793205824672132025516756859494402750129906239097895705632381140987816393428257086284030995348416197453089407915493072183315641301993885949895098402856005391889450198483468211348002214226158445893451678426462174634204306243189026706178361293651124840859871994415857049145066098854972176011207851003524197723675206931734973663935262615261998870535009787775951152891301837750690902233696125646470821909707870312619839870101443050147679113379782162813989023661111451443743977852167266429028613143658287749578962416280178017026969898344611447586231154560261817150339153483623170170167880118766878494982168353878576882466990923326276180905631506889369735757605406417430491906472015875395475600414918540544479094024577542883343132940954590090957134563135063938000024216656765817398212583726249820076488669998592481337833340756401542786929849747075280457806532598217374832978752580138241024118490871070682754292580177258176474496119388956475039130211725425407182768879777848546692220755051837419583139487542928987823315919274364713216882128428368514716891678719787906612519527538110967789331468387737006099403272113279764309317785930221725734055692944701038277632314152063119716180424284385066568498053769150539565948433072897503354223583864766006327509429767027202514083706104792966880416772472957665419284426672213193670781412335349577298710020631888094051814798284905515488976820597030751078658967891502971505905015428344920910546144740898738389210931641433788325855812833650448721439157607606550010240873591063244042798108974082460575380823526695525055283959645267733578751194021628197547912804531788153669766706542963485577880537528412659524172779000478600891834453955686881839427340499263891261709481785756433625444993208261715741382146329946337215932153561478312003850944675313243619174955790336484428943267070452393331888672926788768564449410001919879707903531902475943399179183996629158476534843270315955736068208242185508581682270309351842894295744475257395626740123238174671747390872400550432631630521130631533423982689068425401914856398654897202508876642824992243521041951251245052749596603838665808006465255212366764047632881267499138340757694161777077666944450481234438496588619157986848147255310494050319560853941799123360082228481216866733825910930781950112319761185186604803403990006410447448535523840347822150055073597579959944095247472039157186023708052961973968763928147002341115963487554966906186573471722093488422397374447585594537331743648611287929104193606265749844411991592548629800109981883804865630634883696736304521165907332491497294950711531665370992088616411330749520080193193534512688973550594613971369553033773892993447059412952507556059348305929345988910990121411437271831067718190917836502141164061009218495227310548636076304181717039271740505636922144377806744275868213705580824716387042941108298463370975418278925028579507402571059695706454052602140254937121684261301578703264269449595199953572993454564224569054458956452599070574236850104946354261685286310816684454242841837817309134153145296780357743252624579241950643256822309092802178806990808829981775405614168949309250534294887877078935588592740124456503126016867194240620682274014345198342637997105807351356507845845605940192511815033781802411678280849047468052359685796906597385797219666279155412012168335984581752678136002967909960281436911967613693663265184682074859343488486025994260844528054612041265485048298961577656385379192948506396643105648462219466460385600440488780539156285044469124749589510282078151416868941451860344436867644219627814974116850292863628663537089553560287928015823899808631484052048778466976391049364277569831128913033813285632890866253570915557413023779279790422857285669475495598951111422001392856246000603853027749718132286014459278308135921043796057346438777557395717493525097151496952420021958558448773003820164747514157797984362581810481934982201262113867763390992630050936128468378141905647765734457072513233889770318997727700218235254987728321625307817080234145984295700126193245439667918687028908991602760626895683088294756939276555182921818289047829664622134432584138781501505743451888050412951364247320011789393785112444434855208546093539192094393321050794832488762818941428683133574274855268801013077751523320211626936949702853121978461827289307822877588204939626498881885875976547823234434879090303533262079537496299049895983784436781369520431416760386419428471187050905388502995033160547622678079786966761837509619570499877528000024664097464755365009686410002249428993666149187000213219769659986272938024729947882191621740892957101653410364657494904325023195457883363369089166488572162951976251790598322298711026582621141013945106384386837755988869741185078663620028796831963176301294632007255556010919310821747534956058053656981638215029805837193135166305638046053492879563187519834204920587672313589766109455768718754962394036932135415802783241752781490920551390853112118282839053795687190587981740395288226668995705833448667829165926742328882753916838557035704085298883115751410270769530374490191539576754750682033011909676752411984382724355023866805277344463463546023645262774451669859044370208904666153926526191082903015242562994149710283185941873009700895079519842537046800375039364634340124566969452478870163111794130214876994641776225040374485800943563013312666977431934664290582041404447733132266996842851585499734057410043527372480132252222330981392881926774365387695363833085111625014748310089459082708581593293991899397323568325881960388298880032105419073502878935794478593463734279677900942109410732984136788419599178442654602868331613403746917903259608485103567905384039516063074544526467690361346626397775865100799372856014520700460607557632322132932386489326046248835417540948106485605150348334894796402004779206372097133971969320383167270014980845336860395478337516330445176847748955576321004796300375110932606759547737840616140108772906782048557747411464118738194510336147812547444911554990866858983487430890220361749448352317400218093203673146195518048386056663705822588383320138646402107681151118955737018764918910893051902998999233684881955087369903515297381578581273349367581557277368989888985538136751913448477298218753447905278237978578989746478029458254947570508060789914943892769136983037111253105257166743714811858473540401971819762121265955073274690852044177112394836722583283939668055180836172909840394118453544752078880725049046678859494837197352420467409361656488180353615204921672405224688915945538902451248222320332957140659048908235753094666785515148169277252900737718105720522560644201108742412070748743004067547024954800130555511232099717381061379541136805403251806051726849650594775569821878049062809937755512981204483521534957928652493366702183751985159048704110777091190792355344231675381532339643788391483079457393182928137085526909614035830588100590512800314912448325803566967070033126791729963161277776010841955359485056705121277941043679420708552517012443939031390098069834254110415719514515041939987006731657847003302091129310978804930939671098582990597393490028945278075026375227982797890924281574441668844462181700716976438583507697341342874815138014887381140570331546598219120467295056412343838050639379142182418353280092349382136557378165215825505109380929878739612112463127550248987305159791496614646649626944886845795172428681979853426367449065282977260995009214248278155647094233622716316963580680706591750284557271530188636990572692430980613439411089587101388164167850775929239847884052505093465437310078202555634169611555335035405100352629605203064344831178607209815041516777111472424209968786482405779091478127935123799961785371817710431037939223390189913240014102707484454924180672968898064275541826775129587415512166447898347854588803600621403625074480396225577283607334450546460661456472014472893496054915472232023005455456415946133258098890679968000641908174177346114031067264639348899646932866571641322307250650389879472546590663754065131163590764767372200721123723771044818901750144886549699083241562695111275772297776612327935331065417586212722037867721975417721137690762899765717547984725883007995261745488744870655963824184632073102635358794801734249124584942165959285641569784322903174749294386856954365338639018934172406502779193905166688890522068613914998531478470009189810526373441647134717868313177880663134365360055285026073470029272081831640979984412522920219763232756165901559635053970825506413994032348982434553453470278785129697207753724615982418571196701264259938376085349810892973397455675708964974166234441580994169122774515679505636752246890038449074995679338934502943453380645198919494214681161955519259921124158814181760424264468666213712735757604076421837730612143660020722291556164104926342848389138804382718402287927627509865640055446069328928520584607968081816425653356116870639814239377936538777545992559144310926545433135928100202981223555450166417777040716245590469959969219788265691297889420510966067577891499850102105852228171746516823805784706120258222042430834947548972099351255726658652409169022527193836503157725929126215018054047983355627638343180382300395480298174611554112687533499205985447420750275127496424378389247438798396329134747923533733456947439530015855038873570767531543709259031921361468041508432953708845051550113607358252099180740841043461413499377497565374459217841522313734412290045367644992902138669432505732777304911550636742935415509267293485124594412679621308608389839084551113670969922423636921660599542496138927374264080517054976675140314073239362986621687303349113135518484634740163435038016420086189162449463239064245272247885911237278962375707541628568467195683941627788259478601710225375500399687610092248366914760865654083426356351697397115608175059902320874184620600258551527921520908433217992575606468774776325063778471589068921291645162987188640635208681570689006757563127938863480278701020974405633096242439241377761818279518640240035104416622228695767925351854961433209303037731973095323107772131299398649984396231884595414320202058715196312558640498881675183229873959766118688302669033497771007115338073469835729146219663626119482688268373589411362233412324448240855525130578104243051360814086546283891505161155767319445205408291362585127906412191638129644832817851838340629971705068927284228858526999315730258750903411482506129500371671482170161849339471750042299189223807132422982301164112290623157606208832928794806995567838269340349782996303731745801802693639720505060898640229144946419833225492051880520718894712372906973970968427379067417265909500949883432043886290203130677738220644015119213291456796719656938995954261434040221611998021654942038735527493575450159425198214589598630608279610243615726099617853631927937779663202103782073667811496239403018064423868839610468277913990697346306867000484790508575597625140281477335796782394359266598586592728535231045714033698159030911557497750402088915580905132704862452658134650170946408842181576077774544074374407734314342917067625629355570914132801469188508490275101163014803474538852506000260218744162851848887247868876477202373991153178662628388011317526627154615531373805351536419139436837437381549593545222418761940563619799476115377420532793350568304655151001989616959555785177051736876550014549220926868069721242256181256135151925144165810707061462874761630608223399118026173662407170901755678790238728680647654245873734671434588898216912075117106511133589962748573901348978792920740578796942941809407152086384062310179138231586489742713530263685818459914949353338915463595191693796258760153977130440054799690447104780059409235500385442076378669972510339928950080198501953132282544584484508119896552717115384082076145071787115108884930517034578029070657382209185696703402788623645107974370244358749499921982696556172315510235771421136761787844691133418053180027853793532631216378283412506838879792449411338703928249488781346010162924866098911004205958354196407947024653093310000469647516649095290186705611082306009921017868174792961016816834482385061908748247535403667473152740689586694800787913145552286551237272366610214868558617765359041833406090879473162229780413199217909314386212950412339412192345443597815556985708572706020623140443705727402506725446596606232906571902325141136376583943893003313722483512271458699941933262617058044820188575601422032408061281992511954179713935914908612437927716878659459053305029034397234487603055771881561134901094794819277160611834255099517796023730042132376042242229910690737509411475303692367506044749329963375644054354829413873451408580329512079585051927932934626140928757429070137233550432880702719730468969783452868055359659004876226786585447148879974839989317151381587602688469698148023200061979357888305463977823396050979078960105472613476380672727351930142267401898664795908153437963843426511825859425753017871391186495681497553542395666834540965674160538699257543273511350152743803360153703634569515104288110921423268974633314570635321535441311563913742096142268690343663077095780693770926050307319237268269408985038630843710927413970382768413190462132824057722200131899524030948362167390771753189675187000350996513832344429161486513556249461242738812681024022874438134557481421496423566667814314577800622952444687268181469996971214721579821484365803150514515810916526772457829534142309640324463440915439420124584844790607544044064202980162370691506742898879347571748016271737367806901472572187355858424695093438172961014350453304457515091110562061612739820155654169251618784993126183543876812427385153833909222746530309491989985114535148217363081830955352414759043864007987271876648751472256924782514336804524639897199755887437022197863298024719912526861608301667442402180855171007332766753241764754934455849834114726486130269162496605746526379503732931585187864053320884734509051308700339589506711865551080378234170894246363032809971400825364534105023707918906780789986225267742374816805972382424791780472153332315055605232546507010704065012712836702556391823218771612849179875000461515097761082554826137919756699938655148065200158698657501624622419099281811665628412968879480375209219321057753137387825612169138335159006114335463409324015269085037312792272045446142636092048288007053543048551243588228756444455664811225320164460338037960033206431776232749341813594230804155301288450783663652872205034911100750953428277633431248279076919352756800387321357043723782260924672885679697303243741744308098684695418602714972526048261115770335881684660616693522974401559622113125517048421605307308539462179959287947948405416829631398017288162823881874176961456169422697939146683576098372975176483178125679750122953506525089127814424676921552762425314568401522504476308880065576833195112011306505499521804315463406947736236228089742208007654128421235719755346865495424206823982088911693030236417875543052501998583595645655749882273407804594298344133035714227625220156123033454615446919855369896886326394739740180836617386856726384805021304290374953764607246497791204275368873269952599195404177581018926632897044258189638538508257358430022666287261050012282090784656976334227916780142090329787738426808797688266958267090402047428295049189068351088318516016523416336042289408769658463425334277526685786207725203716169787428083226688913786151930376385531294615926170165843032528904817203056680005020778976590801473142571797499586277985180478800504570132779341909225574602951417673855053894598374139857227251485617312399703142160571229017075144804076424520267728162218104146671371562909573034776406834078271522600411256419173053562474489382686088183747137230808896667685288906580778102439967804027207323610864484231314045050456816451077060152974881097472220998845953424328270697858204965824488531969136512198580325934307029177290091155520375064332838213366708578757560167730270380268018780007392739571556595784497766359949381077571816790137960417819081588154167771042131303825092742340443257989777401187667434879401826491293340147419890419561848389759907684819372743888123489029947388345093057498013640793264386698908918714054091269152626345378086846103148584736325108132460537821084833853283528537921094127247524338627716423965124004957375632030542022589895308465954922289674960730037913064089061888347368809931626909835985337102735282462295741228328867934930726723070936646164675793277249309464570048206733194938748613836559853598824690259989117125090326549258915358008353125568996180844742841040627032548277873713709319430718882827348241339599791194142177193111105561925139432686255467506976073582076200969202061779024136239067112109657301514784466882805987127689748319622078728647273529392113748252471776160279242747145015693143022500663585087008055100941760416392230088795884876136902618619667114833832929639095193164319983268752360933875878086807514963331929117551407158742998097509856732820024343193688723342553779911010613433739705798714406970838473142840002821264433905633137312075203641398439833915968532244057200265037210702183781637665465237048194569760062440702886691683874435036483480473770776653056122368570606802109555684643739578142536755256246488972096573910436598296188707830369477574957954080189374428146812831031258554202352118537188327257038615979498531890471953047743625624583938892299478987702528148428366143084034430685925860238209620813686052352929615289914543523030847331627998188636991216519874756893029845281505796499949931839776153503721028205799479155158184089518102467342427496104290517022878582300447728737992511072227795739514416716012927118809378111110830075880857591089774372211035837361489387899768579165052642258791347310339926659712315799883028207100371319908981220906790892063898523311987085740240510361243739379728490635157658540923144104735073184178333192056054298267725321510323838926950244321928661363884051168870806500083962750838411025031255374730305857453774691320784354549731612016513996959264480976669459105589801274908434906840503196016561022902523071534151910262966674400206461071032804166163282087161554469252107579596896122140703367500446449075395650844996748442249327640913222777481303888901898065732844706478527920870874108330283268455376192110455841734941676568624663563148653423297617026109442399591216508507517380088888107005836236787354813358461044669512808775021713947682135318336359065808924235511239015356108693932209522965107281375109211838616053574298473213368645933081545120450341854962457268539849143172611132441954509483703833453783921332784148963760335916387865702497634908612746109937158055370678150398405872794156989535040851052514816040103050478102477340621968982908320662070559980362246520204099033866143035394552083637404624752133572461775519874902132539534307302615948494227076918515486964486272220720271122063880634470370056275292150543964453243232403835116829418314546190072886721689755482222442339989192420751835009546664522642523488674952933378812100353192878285214106493120942074113220562564367511536036677685282319577538610574595776529315590268593202761402351819745847307622444156369148234789483811697749346080761916613906377393013701412776334001716375399280562759855276189828171217051150498940503892481689723495963869915535298619195812039108207741900946962857504621333620852578036418695314582008165203731641553593310398313097509296324836030095689474444860857886766995221912468872778511996939109168172457076437730646448956398752593032042732389863897405454373305778737994327200772290328208634236838074147079555392578277025444448541424119319266246428165373055361386050335427523153599799016417903891866889096859874682321618108956265092003469321887410800990822767836427475266431749176432375957891930068989257124265596539584707695882630131615433123227992800210335428169994551962556887348731903962402963619551688672590582626698065576707246655889895344992399058308529407107205328070088432043054315160508251661573012452980290075375094160349655083066761701178424092330559043819259346347587655293868787214469170257611601267522290137256199945507111381424870601721761871287719048652126400968420713675555043730818035222642840650243430804687835369723073416001093045913884328540058920410499771088294285243910436374253884308670925327656222780674649889412140705730230355357651749418221838273764721389939441759891728795659348657740461796373896450717536097002212779701280972853008000520607282994986338437117861223427682239703768686110871821037877489292098686299041693312612819159023759404967478730688949738583513889068356626725716283101411233811621848142383100510067097645996768354956953569353436052754616767250014849764257952625329983279621661398539937635873664750642576142630419630503396727916194881238231607628715099053051005537252282362828068498429612566610189968975953997726223420113707218440543390413531550091495063473559399141624532378913334599453402487322374400009074163298656515875658845844129012673589803182269148385996218576112462608366459691134285826662586806796018523636020832700320347542057869775204927281866029156011067428834210900317604101868488594244752996979006790618798536189737231098041394820217956631455953518213717754419212738761822756395145508831394238668004198408236343772985687463815050279955696184378252829854590073522261500046888829986808071825950611003726610292502927275681776954960601725416005254537785100553478272193274109742671916269224579589291779775897853172572594103863688193106402278190100640364381227771617738582732775244897846591283853990586686110672420462665710924812799690425783523578075711753921874987179426604925383433341325305338352547866638741906961207642022728281495759967664757248923305981129350993169131393808520573870656052650400006988430346162261529010777623064734408254699737015267722485368989795358857076823905437044741767801933284947263237618683047466132228563732915908084273683779992649430705051126885343706557443767861304860609263315283022047351353706715742628286915748358975060805631025735688170601513852242746456958852762279096332460474491360751544561222670839866293833111920230103146153226767973683758085868099715290287980659158751741408573578164243276375464470653300470686773106164215287274525513161539186277542551135430354654414852163022647159172457836261034089252560571302989109419601027353509825766927936931995010568223471938649891765788518705710148618307088184967661559564776020167861012309293696112644182162259082822848725053163479902016586024267882129405661329104774031796977160088983027654549099449610955050136280704587227252807144980315495009662757030744382532809071160047924874980305477948673165417445707712956230403883673919172829143683084192083971840795960777136118962908700451356948355339137826720196144213844082708110952445805585133684601858245521020202281529843261981870580642782174073351064264767568127990280264398507872235861469592204171761916498382171912628235483589544363536356536080163134453495800043597279413515168933661124711106640098588762860254262169230526034389942054752961604639296698806128990186897459207469743323764611929225294550078778568949894152646452592283306441223038158944242525768319694997350293949769375750456665868414630621646331488203667259561646908959439272380081435919884708867671658107491882228086201318105961611551953177312101750643209372025535609621128936874481092080841479584381011496712530386443463717908869522868090149789965017534668319728966961952389136255381511997266060779588958721999788703409710808759625965991631335347115719857566396933999829227735469860538423340446408219152096171310709992468202273227180263376028124231921906559161722117754810013607143608347052488160906282018174404644824872773137349661128309347137068444395727469163844821686839418023804282677473585274793104054232093779767482271285137958007609352458506689699077613395527919850898137568936006802966675675694047813051246112419505814994727109175713320874412073319295432010014880718430623015378394814977651841574391303588437179795816940217737278894762874827347034413602722886719065802517666525540846302146492900938194872411626646475761823721364099210811734456584928922818073847423840168494810915950261644568998432595349116518201632256128845675950562673036865078563994071318926517610842066630348918049575492313107410615881496380560267480656578200984845178947054774661333846346406467918412201389481850730626376048021132241605217188783741990942902097218276494861200506891564349641535740709383758804476603913408661623775625688333310473560039436614898786853925163107525893231588300617924185189621140259293489445380552984867766000958031354697809280900856174136779093680219115932324635334672766988143065223515194091405797476697295228728399552400773991042752512678318617496003718052701995764327403314723170129198404926482704669993558992144138149871119395194850203459373407546892405983455924841563201736513568987313063031941367430798438110757240742779141645222583365015100896258038532654175714026558929828008775267962031555308846360791129655615638330987241138844886695239532132604130039280554668379684977608101966446844801423266739218040465454003080941046013990955034456664701790991063305605691532290540478447185487009598740981839522428402483723405210109157471362942604674698045914369803735879853475347706459817786930113977174319376241004396082776508288172700257673588514933264939071401182527544851141866043026417437621084355904380133549157592384970321772699846358848865500906978535564181923945497355750258859221154130911633259035840436480092262478924409181359507045872818305038535354310955481209087868104793982959199436295181201255687842164842053979801574414838069980212017757959074014922880166468906781709576048293395332891540407076200597448726644145194657846251743663211788897838556381725614058981197848202996854238088221830231292689368633752589209626390037702691615358572536144609083623255756672350900225239772981443819422450849713616207771495951127278952421821499485784642299512525860759261866631807941284802576494174051588388925083021382488541296064868503341434839207693901241965743307646280173065796122685482920352319484160919276410345155971953779515545823949863864001739500549903299609664229727271222423504223687787011238248338910939376741571461661344511897703764485601623548049135481925596119719127841566506797140380200591452873882474340031402402721030164235444947830139466459204553791501654431033799079965957553497825313744186908416098430478812375082054772590595958066234869760518341946066814048391877532695496182215549077849268919374156900511237666062008984493463469772849142104796739002580126217462029758251810001871116667336615856883112252594954097268657663315634530070694067024903357789727163741524569126536735592046687843536212024808828413235571178574634853638891364311302026241824263764690332103895488010893574534374341112227920651312581148727066791873660404635536508780309340045452672428749977354634961565668200888912047474796003009713667987332287192773151903951047556543983264247934012008388951539667402943425357674289912130249793261716893862075375924304397087082784467669367715420340964560003323603748901288628598075031387514863686822109856283564326588206837276470852294084925611262220906919600306302649454894365579295845123779088417082195066677296784664420720317051954753798094458969990263124056094573598235640597876000745612219662318195885001482552518303005325740347322086176172666938570083622217486463981302777492917413923582942207495845550217741540604315918018313594734672923317058839997680444748165596452192016410661597803778147628308829508137956630679373410640550130951314243412426680048929544463055402647879449229585280296869315430032626785743820083529382418339466962754222237921640158445529082199090777791831881928780226403671687310385877665395822021915023349749436429353643540328540889005428365852777837632506763436484576787293974539333611666252548538836215230766002056070796496405173016135141264680206567662679500974255550122013438200500861980999092821258296516966850835891079410140847422880596626749104617817942642211585104926583132765715889717787778246962363415469246685387295063485077238308950494411457945580808411226377606527616809028545874440348709876736902855656201933941849300538269576279209364127110796955009771154633859119980618700949582055496413344318940474211158841128838886645748229720261487897502871235153391775551693362219020803676168269633928377705540981620541882296246778097548554191646507069098592566007001893414673058085305723919383836041630324485880102308535761916383228923275432818524136940353522035121840691679994360165915876252846551771507088918129477471864616832810538100505853098037207140069605722521675100812411644929935362474527970823458434965025852756759548303961954765817533077053576362317011291493928838211105618510057513659081699114126375314880899645051297315259784536854658967889433705435758358374905702736806815072975978238513258356307199871698845466697690114975990381418309449796601373672991979325982524797904835288335372932089321746668305101408563617910536190890284195276546656806881681456767990589352777730055283000288954415837881897353040980546852314446053324896423599095806397116662790981555440703194843840809291742378406242111233939804184067790768100690416828916409831245621940138102466706981711647828376398728497076842400081102981494237623315248782125316441460381145379092074940980731782982863118499903575067502096962008814747837552413510184358644054334715773996374676516065163970041321849741444780998688607785458774212894062714280363432810087908791173326197332522402159599955923871573538042349308703721347573885307007734946592003024764143441540375156607776216162193202382171096007767589245532897965880274565265500759827417014385154243238403537714051620197764466225373871883743930927775477131611760267407290404387383208821787261448229071073058629578272148954070889399570531599056606883474551881495875400053800213880638900007873330989035512606463644529807486851916249510036626061933877024306993521559677979901264077633660468246096778039675141229889192185507421419384369060487974461796184506641391136078791309349045334715680253155711904791452389908322079192846176225475571655615853804777859122035688082326996362836009662827740212193391886326299986375440074030730829424657262486626383375502702246641307944798873540813115129148880327651076449772502418302845191523960576027577826171477118135719613309527491858216054111578602066568587013568282873131302467643690588096151950213078619219424036309597914469955294108500648667542593193811617034161520830644404692029049352700427905953889817412292070721648984845278387787909920131569545514463924944363190760484976792155092675631199101912491348739347829970159452143342574696686515782559820731184405516023727821448617676363543531093403776689512208791605571157636018377975807547112786140550833059780820510848848063817252112366568651482403665452988138041538708435304185010053920726796573936848259769445919704652607452342815590751326568090479423535975017248626618563746567905577003034686471012752187277770654571924529564063548307298872267212612399170309197555337850826626615216918082743378577046111294747989254443735371815232167976003167750293965984590994864677507154031760006959836120200172828995156693102835573905795771210880303123552906073574689947686418210929138139854947202422827340821696503683563068819984340225974924578399214249408854364979587611683853050569590720226206543908360433981347308060954144739197507629079186847934558016853644913591339102165065629409717600211227711670912416085355224427844027348505146895781919536404245684240753724912071697307511046244485053772363814804550809066965770642644538964786906818275595202638199978683295888010626307360680773935244833851646478549727429336889330828656156964506517196097973755608865590230010156012253951251364866940258501743856213747452381575152064478393297718954725927936634664872831832000611748651474486332188866790270706458840231213042596729053253939315485357282028504883490184822667844529737792035055573718387788639612858067581570499874715695760408373559622696794470195535325089381506911520774322679610621155249418639464901763406908955898702282718866944637496519793657417142498449134727849675624272139962415672779259796681355278112669917146087801118223557027257831739999144811787950834046440336678294376891907869876830355343381062201867331439573981153492510247605308121108244779507200895875910814625206539438579326000221701562846890182587993234191997051506434351753696021532825880911089392800953673997046006804025997036126076462036129242886287335989116958464924689111874893607644385286898005131442911406890939723715459540550088966847398344982121396649142560240096647773509641534295271406786212029314129045048208516961268369330449049510762805382739566404873628060761580088181507624477795827197677323900308608910601531032114426656701345845250676917933223609327641801418137942247854745891140295505336690086031533948534697678779464358610891778506279632918471643323858636619231133219075139357870476975922017792900939440088077830519214736813854794589432387970518236774315152766022045704581350095885946207684123515804573531736885978095758206586123439684975189959881539135664877823145077991287253483023999451302957660167176076937181826008555356490616854734752642149881126897808371458615598107041699810349156366308881534599471272373509068641754214438927629178974346574593932396724425263092258950311735900121313720940313242294814128873982875552107868818824403784142427060523494875872568096949190405412295346768941317656148874556617022944504031725901565155129869658670981149158457165815927898361120209481855927995825797306585422073070447739780178353766818214539395796333120357645457709703653017987121764021130039219909525869128145409321748572171049255936186438475310631058667662488795353789831927114327796536151241020990940751705887206235925342406895293085826779437538557644709009939457599503354015542586238065839699374206264807287693340677466303089911803624978180680876494846810016269387117276445140446351875143345951518305869762968047551904590967114603811037653437347075180419112376152252324228980350019796768914254595808601858426260185646488061751613093824018011885184007376180465930520777285382995575741831151667361676814770069796131137724774498303504094399917651031782488856403369908680298492003553891804311390948219731616167027651824657731486746662293454385054420527901138070612547136254711582452369414440915699450745637460018794993539286407080423598573000303637476067246108626273672802790209788728865143068420941826446113277674258015013465164472813486141278562221658521629404367250878404412327825346578577703919435426146224348775426560765689910022023776558043113893016129505897607520711721998715010081168267316042579089885734402326682912716942274556861958438989298555219372424601255833422191190746606147009820780342148856793129705945009077856059627924124829932441710776699228826527904627600383641297824817934045680368491428586946417457323791442879124734421865835417684287537063874831776705665219360649649326260785017722117998964181295305135615984750274659878911154310831432242766265438462361236443009619297510506913100229731999685128206660442926005058197973221070652297985797080006688208440848293426170953897525768189425776302556662654093871207004967103791440189837631417124336672438261557641127831817990735479385104105182347956091816105402685295760401844827006436247942619231710476994014632399359624816731287238680262922880271490930919598877033024920723402196859835753470812493267788141213780381436635317155041002204042534509022930471881362993609754196834980854388798113328541932349244218914931433327390296180959434179675731738711098004116867627918662357608623875759020578071892071814896075839972851563242504433264616036762366243738100956217871856821625784103093074594114243327030128623487075508458951312469921919516312216715495351484112526111144241613948921958423551672253691547412322015811877083074502665279446886412099088409244615824050611922057098614380991939290859749192560973365258931698597698814779357196974660719474448180723630806312526595999282727490091190545011409570814487119720181259916648596255190437690997849353921064593015477334965978756831902942723594360413649135215026381573301213355373144416261611468813299748173464919316894118582162447266996645972562604881683565616651453892090412832790211288106383361615338286747922870883472082950741575746863851060646486461710533976558635141240950868481718559394013039365751006685019222764841710288700608469707882608572347288587821717177875798271374091936043181300093803138177829939225151250356776385053185734000036632299632701815369347631743598792557800457497982102119908216829526162635147607115879130584432770888773380087300271480555955804312248266086941906502009776996113017894478491092981010785235393753129028384016757804705450555332124040553206398662085071114619797134772321540419187004239858105173150785125771046513095154143684539668451016310506034136330628079542103835780569154857101071932421864209074732047198397346398128939546750069745954559345765845683562716870865992032284881004521202944211717620179558753047890516019155483336339211092533645851733522201970593021628144848120133392325371443786496532829483251954166203383815152087813180649639482219884831481135175342629295937526287966918590142580079449924202762190323575622185745068921029604655732388967299493445051369002835465448252213228383553181112977485578498537513502915575200534635332501276261518623932076641950643425276980894755989016898794409785484228075433493542130220008869462400262171635793320047361408625138359515361846869421959126591310188747323233961731256849949743808221622016100776831507184358477664612029809196825089015883025531739920355797197389877336031117014316519033328804034883833473542545368078856509991160429798638018368896415752180954241408647022337871813992910394007512151373689377624071513939986227096799817230316763167855184463316024891360883765698272689724050992896339875813112824774321282480913207679297687250374181443473798413140523693269445487304860527577579335416481019683966117266059912547550482390181342849889027216405446138717866377395350584942380860723751993638306943133480671716952368463858432921105297392071034075913978578659535299060318305573972417052924167246748239167394349142972313382445221448495054015319217043747001623151687250446763478096463448317821854417384165157855067079717587640383458134438771438250572760732180958167437093647766073278740696234466358620984620916676443204308159733520658099248092108712237992661100204514473219094051773702745469906671819365984489764621462697661845225976896006968887676306344933945536080067430194807186006648587671615694006443303549991096249070638790222724267486732662775164666676419307277862056608679981103623005061636461095428548708002799676886661833721906737050394533070020382898976629403781843618654394745228525385508829920845653103148494577568091372050856589404670387265868681692141943792347149248817541878132292243334504284631188611499565812542694478982999073801709193031506450038478472825723102259732742324494004035592829876862002284765160930424521758169368040020975316557777737045294530883431105602815383273123732193522400502131641059777435338501885343406178504733127297305646637274838274122672835435354474867269459109094238423186979883280037984765979114073234431585877290398829332376781413980678434452246717847407923238145194713056295667573215962740466098402621129872761367230629600135470550974525458229001857678279136293708380947555217160838216226641862643243632504640155125864415527190221181773410757143989319850791521396816646905845439413172019396286712646733967041121247589519711160555766383265177742842089143260812836846231678734465446334769525411642774964869486112308371508020723840307632026273499829575900599998692333110084644229730325676936762728195120216037173619842123826232131512523028708947051799653086982201002346698319024802022136323707026436223008347048321939568563557481456598083085311117899499114113146859686091947224611147077641670048770091661949657522260213493921809272575463790883910023483933226769202353739809696322546800713779741339251981508404470238552918047591098590196764186902938253705643122146458637438007832881254153615472010667274617887331567482178624038048379725167693201331751704654721747211771784450006032775408513663804886634778005356282314333033540438598627604390553093440899624583744652670242115589319177456423224039260027274514791991024961026664249740118435022210350754062716799739831521432220966808797063525520051745632636714771256207195061513938740110271916958640396016945403115369684259364840121672240162572046695811563040297823379148416096015696639527841968697361534129066483419263054805258604865333529523651424234967377422776482956770205546056629274960436451826676794942769099245832261168739794602370967649446555254888673835503830258184960913598147535751644024643653967076560538200758589583468781373535111200604424356690832338023354206163634577982484648090951648712144644638254643694189575460266477813885362640178178958385130887104219273391363034343948612330742164053253696004044076214257584563730070530450975849833779382556503630822745944654408048793655236305305078985031622805073397195077807343885792860204711694908071225271679912725553279114184362204006255894991685524660956396971717367917475588365407673709580505445253763988168566973330214795496087884874781421933944249542720120982298110993182204985043545271309340704192503996556685818260419855893659085479549541926617570403150832289379815418912884695113155044468747493214551619626282980308389462512326658109513749864615053046333260947687199599765852551891079047752425081337920433685296525724612759227949315421752905903261759478947298563065609267417718207254531010652246521564017459440521318856880907600481555201316330141583187196731023654296157571488789185480152351738943430820852973318796025501808322605675519485322060025014871022168699510512288530156966093923929408983264748550227045627059526628500188508925406502545518274410013189858118474365336807816115301890279296491517525674315985415733406855909574385505347341862406684829022390438883778626458881342366436672581373953476033503210934583184201722574308206669045567539800998500045226616911521078634838865061186365131269477902816396152224683903469528225552205147987176527243967622263033477211202342383148867786237111193695458797847538774946036158588197726897676634405871172644041603015705976656397405095639531434747806391793804818808944092673942398177388276328179584087463491065447211225912345028659910789987306121379052465879872317073394075575640214802801276336628166702145591965884036639973986721989676811057776571273816394636767550399675868386407549129905556792491381094118329059901151901648918278428466183781261335006499513075627635462588974040013526396032271389679464388487590916601086422800084572698562921867319294466953480824176271849029884913019766669979047506538438112162978181962169204842548837274719872583844400833100740112379885121296287676672325751552698477478105568602582257024311836028549764893454061290880445242096737569714469196688420995777651154032805891932607846388448626439750633314835547532996419157584097688147421075604829306907574712617493121469680748943089438158282975322325286864954182282442216385908722031681919190981709211177307795853063662164370232293549416035409720595436854386056239865061222547132532844646540289293012377776582275858050632637284868009529870000503095466688773710997021213325842183159335842340736453241533892421391656343577789371737128838429830317326148064386530362286527499871278198929027504707167034522903086658973143760779550063518297551981933082665221887434311936904119890725140001952840522557472763462076067238259202050381352759454700197084653379071959060895586465593105492820707752216534659862173071915609772580112307378231846016869713819052334848379398480555698431269154379783503133692700776175314022749909678537934772722437745699516649140586829971487530226377493966167012382931573783700708768516619345951805826302215995710995845103935978085938742502312535215547659113559676674407533402982638460881431233856679123728379326702872097032627854035326461117022666357448846224933201392679860744089909109915662655544780834001328913757950883396538713484523117292110903357428211720833179309313886992081021647650853532361311232567687290815116888821711760611492394110948954815557396120498501474080449358098710018550352206236986903258036708988339982126923119673588486689193349367298226790581930821583746921685668466150531962276433464981892898537908427670784208426803958887387185296019965983933415602648774465458930128727383123129031795563675128517154414494195887945587567544435979327771974159872964257123362243073631650180686653828585087741485800966630137546456231102048546620316901436971455811352887267155512148106982017070747312397257832147037873508487067708696021101104962755427424723596453348590104484378495940840753148821606934754814082374661015310677747407189552994901545726027275909122762901506823852422759640426519912077283103890615855649513725207281342159794317348642175176645541853928555269039454547467865962971224456880556713623522365523531162763465781648095891334443973045438408854421316406769107214283365538362117119020750210476752011785160313513837161092035889340095618990895161888534945628195618219557975968160031241651948236068637395427419977260566044838710734201054205509610743758671202074249698770828832664280928096771531733911447771466356511036977482462315967600171692466009003380991648988715866120191680438178657123144979230822796255999213145368681443262853358507788827180089569044418924470128569914954503517643613852304762993962314086782077181077116547462770009319740332145292882972913960437149924225666573999262775220156723103029184664172928721384149796261747732774197900954761459843501258870893329034623138968255264908336208741677548417276043455800757090759186158313473492651511793134415927746269178499800128232428195838851381134813210014523378290420245567566481215288936289465798075471249037410326903542926552433602222206689002089704797796539772465449275816801638994457035250938820321448173789268686581477231883718287783471267211287739485945192190273906411797475149541757603007585959322658729452387869830544685995945173506544717148278159282294668156036420306971649756708180404720568275892195150899434776645697226794971298865308387901999719390176320692539770671457489516899523392237334653483238400181081568087980708437678908902660556701242601778700842875532203725323432181062034923680685349958306339175827286164386424543921845658769122267464775175936454283813596467951076463790525969472492299165664537293741255870699269476648554772857452722257690943482400679925549389553807539379709230888575727894880375686710219991645269616699051600006279727571486770152952108967142331649891843491667838902806192908389270786636473337847092697913238542893179647825892130827302817200151668732237376353977330646895481019928470581441391019836774729831641989149566397602227449259427340185815080987183968581077245448796627038042657191403041527245101223405475080713964000154221636672234435963707800022774229184813405318614340505219138369034229321355229781063114958504168186768957815930226370452650708430365748057662229026041950018253178065084474745425335473468786751834338705877696778208358690208537129849433561510304571883748586902983787119483866165572635255703284993598761544272155852436182653021138583609912166063233306940335562131270106975208741836714016919862990532268655346455772330144135354050384746515735566384481052083346371875564750995757192384040372068074070089019639909822006534495202538789206467240947170010008198829343039801835930235276744799339082616612236931018923801803750848445453979813930308995031086669346730953519311701960211838934081219783452900315485199179998285266221422951319032294175457081395349200725948908709058465112065381300384694872909569001802884825852958163977321028815880150160416246589845066523472301830452890450790686763944054142463016254445880202291592722340393309005953142327935797809709606320859462675974077673221607420917109398912771439683412779810722474338701255172855415474062176597221436476141005814844455307200771650803205572367550317273716544108630722776829960545064062405274142876113991019657239266641630482369397762999289417296592107472247989245883073060250270207432878307076714327307158232615989421890041623353469407852482532134493969960094454250487880876417177287399049675090609959469852492759670818736353604461258120722116781203772888267027183965815716805386886290814017799896674210358772329955995654216710895338429442654649244694940201988521744227719613354393899184427609669996677823993354807218115982333321192728792032143051993981950841030953320124791924487339053696266872626064437588286326087487604628797682713957856717332288565454685139900386742786276296465496300914327997514492236652596929954017954752955253086434663194933287148117045253602408156199975967910058093628419266990606878956513228307403154448336583696480423090351552737504603873897659977429996361493338393482952651092059578301612470962309975739066818696402657268458771777140641131808746370002545652180734690616994477854490108070817058507773631597212241983733441064275487352073865072122779329937361218365339282600509672594706233302036799668901357346697582186755914565509099733187598788542533923427987444392520882570008722628564816657129419710698422298837140872903610947782281250764193677973522805526144191584983521745066282911513722558738412932380659016259648965729374623206403888717256683908361112885980857020464495890793132866935344632329998143539596843371924059558760365003061201314405986416102060113248523981662979249006894444316943013283336398733742548031994537167233849537084017830872761782776786090021915187853626806617311436209800114494279917343046191668051680835048157726504822240385204885481642827072402902199987678850681204902032393553598428718660616379431247415205158156707696549537493279282732684378150403205181604108749081563314366014732686377533444600650410088932062904769420879923565988743495269422796487864687395548415336914253671700982818401277749355289967725906832834690455298642832844782612215506484839078670114219862831837673044953469317956572721560215138333495546719028654324506609383271744781423976828697956568273274205221043517521168204382569223265481115397668770025420300797134954970603612038932538426699919340398815923832229225767523194882357454944844758694965863883112001358047880234356710199830292613061158524016083862567291701884068413525178594526263155267526618304067221037961634677421888844884861682460597424087088932850776184349132854050040487012562527864357162532684541907401604272178921785989058948196477445840896133908874039691148517606242663974725351300560048034915693188155444946731933066280956522354350639137474508078905876665434959233674655614259303539265989361163871529486202515174242993518533548791287485370306514046002449028676085731850431088690667321191646143209591727512437944168359778430809566825245099588953489482023813876180985029772725941901186792976386225926971728588050091691895109369647889756279171867725889239888242178840285504044399910046139239976692113137453632239214335034089905324559284063246653119292626899741707419316022013070208234357667392764783041281805808476787871059958036577764313679255766487394273795148000549308506373485900994541461833262875143141044249485524245173770876811466370025621696402360414981088708402114767295495002710737102978469926277973618608236643601148906128829846885839268466755914183282538598103791843571009109518174176254451693964421212774306004885570265530318291729693421577989491565892109546573865237299610670448267982366853912346326092116185180274973776178719441851655343057215201780663209575119682504534949510016831819025061009777144337551429295086906935803440137947110139662925233131144881667766152472443968915567968543108529656453212430496119341993846419388687095375923823777521350598635656995545631719500359201988621214026736654912255814907571355349866174056980757586988454371593963821870562284348519164308711019596103581645163234403209223630533822988586738046960519507968900557405084362172400578873082589819708966910735553195038109491680111297088545855186059962817138896730800761019442635219380328717022073620654674014200192179038993263987982189441061723671345873991126291310540581460918664910228873508644626808089922756253767240944413201042143221035557846921924913704102472481577464156575261633958377669896529597396724063029899935483112997238699429543165863675351207014080321164993685446566869806835509476739267024781884249805642802959398620899676650200683766531454264249840529911972047504872213375131825110293706486743806707581372596520297886922643758357852040853599136187584827745337331818867315246356801822765719250667354873462950380686475344107945336434145470783723251305318564026683937509711787653814570831251578150701911815739527151208040755938684756254727734799956205434422507770843537179400837103612836423966310606878992418375765336857808053768941420467977883084315126027702422103291231684370605579019650928885012658427477931707813490729455515224535972127117176834143490104172188294860109448134558913794086302490099764344705640702342762280973183246217355192517778649060466901161715876267203786745377502486079715576273307085585118524230536691609651099763000385475595564767451981706717678055454345204917400291620662937577896539573702311392066698120910179272132237352270348323942318409515590717469321346189551768197267744922985829603934711089196907907731038539824118395480823137766014362474109947633953206061946760713823213011779960295805619714390913554286472259598364771217938178557279608106688939843668127559404637247736453829637530058200682098868838069373505365944312737098219514815153978933441754017157044472480092409288208652031117409381951234022859530444054274392608891469011920594497959715771203520933207419793518832676413604564490290109812420788738904666853248496825804077523476320410146153368247146702133127519529635390939490828663632443309305109072959721667706145162083433977244071162131381712614923876535413035987580691167070233508918619678007098074253452993941030770869888910253413191691762539749360863954589230535232641631787011962948030328823382213320560593369541301578411827740705176647702255537526371038930853579063876885435855101191961416029449956719250256490923423884782582860921590348305097359810298482430579466930213538236780087394715876720802428100520576367670363196109414881165538567632862346329384285591270537019002126553752092074227026049274980266711983815564767016816452272120761755559411629441736230268306104893287407591389990889509503213679768441767939317995638290571195213306667667039446777436173390988173146749196226791798235227146885275981238821691534616096386900350951980165893059757971744947049993343552338653569988335779186579788762292128710565499711505955803171614875893735213029254183419014016656240862997844702893878450744561792587484868708530715567893450722633025469430950869735678360930596371004882806294597019689800675171754041882551276347933834196767365525992787041939919253039933341319643763663685522011795389442265894204522230759914017446942326469955880120566724177254437597371029577659230710876808916570852361563785610838318569476537913006918016562303616164833868059230753722363770563971504738299721267012793247578823325521162745142788877107584872243771764995961213643915978866756567109731734459940894045683669796327466899059119498849835586699602530142711262376178025093992298977496253902847659967403209543546109161351571042964731068643462380429917565643929099496392160638712134395949105503403170299414953417579787640022216709606012869396077652534582558247580166413703535434255202426282182367496013066189546027601505828457342992579826066703625709210481131102094998569619485550317327006133341588440865199165041537423443686199082157334125009415960662719249170956270133888746137684409941539054786033487166778522052642956375898070808818578369870175984826140504016001296928710487672924060235993805971406876947787950145175022163850327137304361149584500081377304026413827104415911454383686394929085858780828588703535231738627766015147176785655218461731375572468720620033985016972198207903005251532206270239017848786532318424489148636432416877108622695728253522775902210218660142803900643605637866796373439847810117071434339419648328845332157330756745225446175386041628031278237095503021269799560867230131764293991208780290829123393520879802406675212854944743241197057023992283551593773269443190044220293625862694037686611127925574487102322752177426321285322991955676932262340563359731392096754947335638392265361560647577492815702505113640320829753374210830789066230711059744100552047979019259188600093396649451529601234355189623474639960032812162255640184914541764264342870210798393951316763043218732444379643276749524227966788628250033206789152234398009892579938353189692131241594473731753114712630937867044577550897799823560114806775021365668222856620573381581979328717790305847922836949485482322816121706399145557705737934397378555845189767422544570270657405731358361932869188140228121060177355787402788794889360255217557539518808728176610606590707189130390061476452699119245006803371258649780524237539430833447698175672853449479073598072916329222890867376963814071779801608336818446313689483481341346304307536383303938373076360889714004700431382821014231656057999823489086208628743381226356965215169548436866565361999362905816329137208407509939029933851617766117941698454442758826088482372355510492418587865267868142668961660246043451888107138480255205045962228462161920429454833511921069903692768935734101930650896321070006672483245943997234749507810685967405151660901304292813217966586012439637554491650641277889717591261811840740029600090472349187376370963146545281309870483983638070429297801922279663617457592109257539323125141114843999549312388580609637792673770202549774751866547587150763548146122053868619168075687775257524701670232972848881833759430475927235503345135593193637040167777852086615534429491111357231684683344335325459293165731215699385532563154085811069925933600019731038605608659806630931387370054379505697200319738469420370271203579933340057194329903897426107144830274473641166819937387698091798565907297352880969722749509613744482609589298902058770122273672824153766726811384056286979327928506311204213087179422915426486878535599842858587046212330477354952090574176398058093363429170364831793565806450653309544782449334762071703949062452159994936221641192403697130181249778700591850827531041444298248833214799540163975311234069683397619509942530828924752365801411291886187394572666082899878637600734423596247085718723177544687412338385736841756614647168189479106955927693218189529012748203191874387270235819930161577671053710650287237012117869587411799719973050215981046926943029742237305010810693661871506606527445842947192594500600224471051352430771952796781343799929757649811213949793497247764619149571455147710557127574671363897092464079823295386090182779163650039565574075562265518656100137814795741156833349247956231192533212241397279937683593955677436284885562839766018852088680076940875515280290408762068797990006427805413411612906223413775487666906241176923621489867704960416668591050105076090616772638637599802989105711084026841046055183555294786402494625551218312645695670592194298849922777322226431297289225067834794484597896940603937767137142984166964233306506618582656056695786150375000630041147976122591198523255196830916429270001506851800833444308959766960226126793215057680607387180982739829948204661937833595327378066161378166774932480960775538306375055454163313167901286414813798474722342103023604495384543462242134463744611800308295895319442144941630013300096977901963996536783900800093001523862979227349828253680209330073534938816117422468917785062174907671531201188172495878004976889904199141042368697156099958270074074055238943428370375270833728882848449471662593969722492466088437998024760704385937882823857477776623174908939267942582974636602119550258023859403823797096780018354982172826064630898787767682768769387340627435776140473574297209373211522393377639130627893472954692899452688113515142803968764927058821025864083584560414544886894155235844856738944371110967155100100920223267274393597580215080975336539620457775140522867396203822486294139210557668427536879053182995903306300631765377086559860695481001324386553609159330251226525952778533993271191629340029357478085566135482297342632849018827556593659770668839212842844809821263184080186835412974234346653069609208643777787408542578932963572691633105246195726303515659689941596539279573516008551283382172277629525753844876323874133492680463628657311444996090859314205348702041720485471645917391707299864035137761112182190434344135207187580779158384014228506918244538756947694048150438237635958652716890202883465655237537724447510221202585758308902479140982215097618203030644596385133278065289993938292193226004472053017640773791461625390723972857513588547321663204530016699851562729277762405106412780007697844720456566576363445454991851283105661269592634710963634305384630343880014183363056539428173522900559340988110168178115602949701694505933813663376283366997929656896039366407957595198065846938271890821593563094220825062096954922669526688781112885071862860018963885716638177748828254581833327306907356346177833314755120108136642778669428160527979503300122470343892077739047921711112507684625504673347421556480379847952537892342800324697084094305879145367553587337230879605361154367939977917364827828383301617347285168983352282282071470335718908238611257170646986851628091401442863480010035722649422556131820570476344401155552030010757165012334957637560392825526849074254475210055408220506523145095048635257940247895072742735158785347866535291008170246180671161706720657921889698158810355976000501283625424196641984417377320180493910459846761103003325250877006617612827003297098052576974137638154602207095215500811206533465170323671086445963613597034515703445322873935369288820682218151409787187289622754293520379230140007330529301311309745946824381697359607285149367237526424016751208676400148182489390884286373447578895491274808051308800654693120113603054766536901218611797232979487755307419170637455605437714103662064339231993365728646359265809017951041366150245465737734149242259099955024035541837093550458224738874606771713983628111949687926168017051586648105716584936968106217289669614236941917661741608364480057627013979852131897865178773777842050355436841109522662107646072553250601819000604753141618369663153910055040320620672108869035733382679703081039524310670160200383179017640858922803046065855094696839804003252509481620960544414451139543075864057291547659331252273427177365696364675075303281810504411768827870628148665604172588724082348267485198298768512093210389565694348863542513100602970275750252970203968422447454887053723708598452573038051264256732486289850053805224807134055942610237853559248390827064574699003048302978955921932587449865406115446218270403399798360117307759843157086563022757890262744530627696400203661421024966581878093303213270096883173851788268877375895641818762651047661827392514118956280673222691968500703834780144668188003907451460768051982819445336618480757147793924510091792309018862918493038318344656799490818251792318828186534095010405997776388620248838101606354516177150085962437876249896143475683073032860771196778317047618320738242311476318420053926304626213920622255211379087958034338287006186321023869445037756960442163372647495865416224640133171093918198186934524752058007831107325721071136531708359500253679351084487471283290896789752360629921976953311074271380388620825080308425479579134258554412464634065335630916718582062726256565303909562840680893287790011221530793586220887595761894271717575091211945498242072568747810079815943045602202292194093752743637218602174444269211562351361985786043356124013365690986368061579374770554601558841733754501311343354517748573721550002669662287749185695396546552141015792909284778703332092391245593924804378962281779223294799181414090364811478902911111883370401727017641465656496404279933609586374209016773414941962191514664519003810151718003884827379893980667268494148174984201614179482884355507176164873988124455278813366814430839546010709035461143376062484632349966983362940456183033371652178295537472444181171196449907960141664501930092475097439150976558081644516331994621904086786313803099537876061547029468155328466900260448684674973662144749160156119479104466676671404328804134424048213223770075053445599086879472794959638010727316187355148207219165263893522059995703596885589549901285499815818761897998352579839020594691478231949091302788435645911240495002323547621672417364485932853802972381177952251613583115791033541580760390149427301875488469695079070495145129366130993948637298071284503188494071378785171309569292598559626653898225374204392650643345487166034308905263299162358011067600344658994775456000225379910206083612890748580293026210444757371788977005769579316778080468808080759923505273140784586883430699054629116921539373418347376751063508863881318835166703780398138453234351848153592067144186317150717803190843416056366319743611202590717099731123712369377740411930765505582189606701389162329419534104116452279286189063487242326308009999280159178029018965651048835547390338259678741820901486628756613396481658642330954065018251632309395416651629304474306063151618868289697908480746947655051777762032804702065050160732433625696555072763494531095713746598558365472091234068815683391123653922539579776171036360440550179109084620046481287599020121836389994260658410233292441412969040805851667830335370191933868541100137183367166766605823276654922075933558940093874555551351223929078365722011238986890072987705611157735476787335988394696453299664086383848220407661257286670542071699329309254049312656648168296904179039775832011334240828188120742542298790059645933307922583596028827207396571961578394050937148338468864730445089225450464485345030660627754222210085341164315258862793958442414741196392817103811822522910570204478812808343889604831558001709360346268451085937421451399074954743208896061455399248247461987360314337680320728978783703125048110403096331936187396659470895776448087958341931445671642348611755707074004861757068032159867574967601510663723137453931166297610710436446260899444329234505751316603540935499504413098760861086442841384719046004671187936721748605780227994551649706223899958778164702845910492384253349056112369015186199327646116282235639254635903866052069956681357145540990983999909838374523728594673923877353159699603349525197777063938640522149213647422851976985751763873853684575669063208945340425605442367346927208325816562685532971370506922190124428733023399031552144662419586306188992409425662833727424927035911828777627317800291341635607251339060511559571374496654373724040640660964519069795788795089985796278849083751317057182855947259027699388238942990169219910247265086104129275682473661467471822345156639775844787793262484563515796861719047946780401400204472791890175348982794480611821992403050567770127698760953024666847426353095923692322504630838235255426982915832810013660777050429350269357801018574985831389733045482151942515108380540352952167323419741257125807519283989876018985630202594924569161341294308986227538367165874172936302526839983556566939323350801634333794101124129506547659407139755118905878041258729768492980469128654591786256426518153140045265603728159702548109796347493992294486923560017837878424206699216150984166031748323972071588695129693003284871276065884726157446858082467242467898612224922463026766043910397834427845376755525522080910001653238306465452531769843731687272707632511668841740914866097398414137847936674115946426466952388624430492631788036026311703825684886520216615020764312431749372616269757894283638536712181253018983115251999084296080028574660645756804117485859095547302649065951456135307983191997664864238456198824217707772567568066237918432543604878135687904461203150817494427616331604980900975916281172795590631106356938805591054633308794380988233723610076858675896127784730768289735961862300356076316732928828625869924671442481750961221248885710750208563221979609598127414912975660043384903623269513772350118851295885141151730894387556802817904574002198757057199332622076743212647543318293553595696203996951950145464555329115616095986273510579213449140591214733316738312044250278247014585837361115547124596356060273533792545368314312394617233755273781330160382628541287379002502312961441410563048073890881841080748766029225873307812970622486957950231834337643891666383323404792269080659585136891494626142316805324640863055423747644239635801915211023669465550354834397694263845006012879856733999933179138747638996876413620980325043246427283147867223597970523226626344342010895892536846282635232017005717341822408297998900771671403674174165231826592661969140105052156374469653785955258593440071923110487640084421592181955301380713690620419693351292439841009465658302843159570002563677816669923017111853455339589838422724461771422739418972337489702708497591079875330667628990846774986721350984189030910650235226419740438722484279435930172263567657520257962978393773942978591582511894381060483507824408882923235582731773091080820946594377049884733121332470569320844367192171681699250355030495557166814772080134149016582857228655849472902323864597343656902181700357493220855212551730799515514493190582899746901940432915328955735677839134712096168090164856191569456270413156398148218696822241561224443480228212426893311234219980228587222539961415199676342539216262515132421777289794826688353187444214715458274406684012485636595479845885834542930049110523627150451829403998196620242051110882311402139607461389763054430088150060765564833733295664998288812010511175915527466437703119460992431846563862945361700173743908243710498790128403071525667835520070891453133845534163612524578458582230909758624461022021406408468725825787766088704282861502008074598945763835791793436926498248235453142736311380756264728704694342670050905327045478622863706067972478489684548902790836748040164163949798810581622085806602498158478240623040994643727544305099428930517739108975399797761714130862040689893225941385274440066398745369226611539889603854090586623831869809536537864313344097586583180536779539142049879107924209375563105025501512110010659228707579222369960017909856044305880031531155071710952443271248155291129541907906919642840817973606634538676947852642981267999365995005597741005176054355242061579846234270414419714755614566006179712762720087584627577582251839855500405982470128036764329573184215543504712181420111161252795358110716313134749656268045207184391712295234164996101711322517113932574089508885119183523700202859632509568878278138378820387824973858326638558892903290433595619001707287848833899596850849992198383076810031680769464088733530317064428680071411094507689048012443906335486813902879809665504798353227258322204233376772862729892680303934494547317710930783785315950030817718501746713245482509078175778910637105857392455394421378972182130910766103427224502149322201450710181769423019919323464320475849966727154894794595831997337022020064559123814006493621641941609258878882975569817234628627721637853677000083586632403279523799605439752926387213948973769348196470478202965180714582340646782557210180243537622245542345110973520522777373318977244825646879991096593791802933459411695900496466152824946071698954435173293938779842422540878661985282111568299622053863243003793503020047174423245612707683484429109802048856289037372017171918764267034608588390759137879917148935368676986672309412441396752750886006137084717598967217136655804775231401522794031506969434962607442923487845690390434142068694935325150892813146405824738169610805317403485065612451793808407378788097880475927801447437202918000828549678355064102275268495725930130648873460539340548792600234283494145392275612371301692969976781682845034759471626220497145664472267027084805469867156166199532613386150074644759017272091004946495848273012499907502013689221754908466727541105760868721726924105043537806004371368427557522541599156708600888724654130919839928111769066670347469087510650345445786550309750431124783152742248626983573067781151963148931774635726789915636173217618394748427072092001060273676587347180169121134403939070582722804621478395433287043332414187890833817791327252251053476208824636494724888945404946401293663481842044013372549716116250779803512526313375710191098017416811431346438348156743476604118078265227526671221688817793471253652776140589910086079732078947053734385259809453240247346484086347717459462149680069699986952280778132635913989253350688995637720047398621312793533600859181884426745585660691961135218994744784110250327640259582820544782828225954722970878030623770570111301659653491849672885227088505403746337517182684353138233666123109228148692116111402521043858977726631445585384079768317763131756920937941096267640456293514950599971881809556687186761060202859489300650412809631824179032119701191034282033365565722333957320618200645604677157617617963286315719802200795132014274856459324890246949511962072320225377162586804590605966024266744632697554510924539633126994932134931643221509921956286295356529423293658099946809264986982230374467453552716511951181094104861976355062110875378663638318374863676517304820583384767484739374156969510983847279121559627892730298547361516614532548648780528797738662841025987595702696530073228064604227174872026657049978436528268608862136519655477219433014302849001298799091715366751932565813109913850981251311264291851560649529051225704877757695255316380687905302807525952957212845499995227590138211329365620162515449443424525340124691532701194527933210314735469975252249347299245448383582727632462205310354073258315859686583581639177480219899890788819959282070174388409238823266745109662420337315784714020688945180970379496465810136989439781606090994024206811786620412102583911398799349249342397026553337051072016397483512050522988993986762546430764317659666756725270945926898037884751502346166248958002170580915267500982420617989069872850495045780609083554963027412567912617555288956966325231404314044794036514028730970159637920478989894871714688342374696688662404590867462998069062660503330825151703763813554768512477751148735835704289565185168891433892575023727511143991266690408716758321840505173992862160939065780771459509389230581679955041063580068263139536375053952079048230639222657305480236348078696490829952292311812825662951532386552041518377344205607251128947202703786996746996254017180402911126820250890402723155316412854307700324399567120398301837650390863233304739902523130708862855530725847400916194517949345937868333023846657593444592454535830693562921935410659674629349645032003767961698223689215793175386671226715896495779437828615333840889268908068388630462198795362204602817417548818082675565493707563264204294589647432792027459890306675976015023316674609032687614784283867757665825702580724882585838122876416704521919162096723238043452726745780382946420616960901378493580676252789821464969564554617631411378972737802236957885795920915428117738813160178408627828253026624274469734086554868644550984059585663292627567045460692129084666684234299866040506306395540028842567791169462735929668857831572547446607505866344614389698936836040998139668729458013566235955780866194410071728408478051058150744049756303942666298012631331754934353270637074083790575293667349395019757370416876995495360430928181494868772146359147570869200507626573049361825648730385847398635183324532924679095400878889692891999908777279475671419015793882535977080560385516065211475583095200264338708709749218374134823782858475473474447109796266872060553710577098832641755282475208220613477540572412090228050934489805763795925577060053163799976787915434944535787477037956559770801441531512015888557045477511207877927488248176150423788627130005063986869678720100558201318176774485124790741589414460405263113950480222107023069686709920468151248478096190824162156013189626203128530644957770436197706380588012590355442715078285094508709768774270344810635206174921707890932341366263178657303993583573165844285015326232196538466007467782678382943615553169387430295098496517986548892688278176724505387528460913599613491923221064320647180903946598154854228375282467589815765374758696861912679745415519170112509090124958501746696246127331284700247902047567991585408756389778237591464837516594013900371217740425837045093848041545761295092338939119274763293244580279177441216470661265798315642362807150054987256725565900970562616806764737813633478317143447310641590539569636073350607619661057188892470960399629186647568788958500524174706213431747207357968271928293489182825385618024245267019402886777807825521641687987440191065104074508871022640009213762931825481749138882305020465191151610450886799201381746061558871789013705089715192683513382730230020007187262073944128568783165433558115482793681906775462918830581767921097791326934127566981898958909254872605561616560321890783431682877209885807374195179422846041558941700142269313901980510972117478641798307108685361528623061941007617570483864865620530878518498162684009295479002118587219410604194794212791609622236345361243745940233022898741015492379348140690670609158710342683986785383578678613961621490006228703191933703783621840353753563122544962836608474483388597971439136277247366314939253173876071916780144865129379301792891599090265882489887180467723156327179925868013018233760496333783246151864483270696611017636994385337379694892429531621204062238099641045790343677152500942383892004777342261425443813356468038655222231422710836132202273136595296941292405779482035830304575483877112543385297031217199053823830213382962899790664036789521449847398698791485109440810615392473990252690681961014337852751037751042069511052363720451481860364558734998325421093993045429611143104078162874653293947102693148740359847862133532871399685136797433697956113379220639338191029148941507979018161328029251905455934951972347369440173664035659417939767380427571280790681735141366959848925692298111811130336468128566768072413561261287454356968704076025434731139508389387455685913124324188365290909884741024801592708435695824158285897843167728983963925585359183667748088056711971927849654863383993109714808168265683524741443986088217350804823836005678189846438880894936498385988825456458529862108369218571637484314825036702352739742031936836159380907534464164077438547098399072313238126181418163213534306412729335395548999997029379705836476741910768653298007905922356451715670621635467883847300896648465268182265646268743704238823370707411571825855990199215288386493004102464085891853472698047576723530361235974449388607319108324131262905884140920166759379981036257006805192121475340598810453023383572534933985476345744169031174407982373019262286694192289599054345923206693753135992821287745047189686845514787164022369301953244651736696962730313987886633488746830382499293816125145220705692677980383087441178818341951222218782021797498503727849494077265045496719816506145206754218438852641679565019722681921964249975553614843241847119667228131989488000015463814637034496489323291172609594924672775733718327540694612395965880413696926467925321974414414472994701940417941079662052306844715084990608661995863087610524313232919989210484720674853864782895951602394574884777341075523078572488173289651480273242560345692491695787673847905412501472074421591657400984302028140691719724819697281643863995114738371093643051665493829830162492178341147545996928304991515446911215187767899819183222640242139296239559435087262680520931762217375622621767792169625218448265379156975719284969319789367683374802173435408676419140051050883693907177944282429181208791371421322481070477473199069363808326167514772824494210333109072674179912555180670513506510147914203937888559087527303976501234294937025074471504577104051576510017776719316291967110474990905038104188782040792732128758917414938905423630063799757565268809133676071437610761271040908929131970715706441755638118959245255955584762081472725654361729131422451517314080555240183181804519246097798202657660746246203336833481152852085944416912093886400140714795007050015843736691715533811851159590498169974554566150321379877356965860880123811843080355720546792885454054683120905831502803557045326637848725854903282467626287687621541855401634594712650688265128809207315613327400503627399560121500031847898608251073499593145759124749719741687435530652286264791287075146725300176314573612180322320036007580248166739288438204989418065694554382389918800996569192857689943641248124270383815740671221735387009340897629038514589547530661114372986816605180825647722158167981278704355975742543307962511133442006116347270412361850449894727380645823887719924629060230645345452026934965946805459678962065817449876607347701115337423678733458186569832584544506191015328398792873294605054222843620031640399918921172943866089421063068897134427503824809414519235889783253062985522052598227145491845900161964241510267528739198128973769610747630675482497803699166981765408177528131150736766168679598964661297539346121060236744696059534746073110322582230836390112825696378542929048120485988388261608550992039607976654368996068844637648466692889403115565034270401279540814817850191764556005871164878141740523117026037497112316882730354491760829471723494562694339956257831238888080519775768398154034789380747662377601895088791761166902133361848433894676854523507839152734201072184964150734019805031889288525718560698254808410385858251348458442369916396273110270018801990730020611018842922609963149935567857097308101034246770273224136240209941580942680636537376520456113675328303944100985946654145408100442208982371410688172177945010904268517559940668308523911678762633601574101741287793211950143948618741617057803956149391632727897930715583489290959390404396183952510655925592575727904459679314144466500830645835132901463428151748144171404071482922425878561876537675840819427319414690867106727975785688540190620747561242543570007445595822454111244334665134972900686784207451350887840025337016803859702592815013208881101777683490489794471243103641863529452855019266452276799138912144859546091588508376896566083158098609032117923953919982427272128479632043492892777100559280755270840576228167197627523120140587698900252218979254522082717299467829388129632435854185851695861222902065829417994095814580078614307216977579696075067890012266879019141885341602919250354934597851516208919866352478897783282760910048621493668713851949815190922181012673564477905904634974822938273425332261696539892497998105642722882379976167890874370146932145483437280756133528969818490325363595098683000004171197364054125881782528646653186122982152563253156157985018082427809611101636413247729259686977960168685662432920931696822311972860606894018293116751170233874624812055787746386819259849058799218977301022201051215879296052610573793405589438876006305113703747227876155868090357701430593274864384396071258583575576591078311351929496939470139114893395571457133168913166714146344730062818407458374130989232737897947346994068839861793368620442013152116900285221515708389582736038927481724965534716182750172891710052942862838752654014461477922207304854045765869498549953255638274318350581505308946570407234390699263658931751556554444480905090674577065606965401369818320716261788035398135703407230503997960078232582737341304464519076220004689997775411850746046642679240038000472870949879733040095574278966538530271872495962606343767270294243252249446270092563370004041394347862107242425078381945336119260380840335725653426125545936418008070135772740781963503058508171540827743244302711358574773538882171150830931283544000787074623186487521326353322993519634641344144013476505368932226218388785721345221504271154450441903566712882976435435968912232651166799591101921483660061417650179440514136934656613350929435536682896798156557263482117601514152389602625465947040440525217833257575908365497555252988585321008736691157923471685555734364160178777417548432214750513700177574514109670827285286199570732750663458404280246706806391952297633321657316293280994427952664515373588124149973340425476303719938227004887236581374251257011228494601491062007666234138384585689961505065336374878597824970670741754920916305471100649150778067214879891465431692102382291288076663891041184755703032280858439247742564108784869613965038206282523320306625241185314003879979108221722540356595573556346926492887726928741303964786453316786960280839984926588532579311871022471112784584365303220084907357233524011550713539469558320916629431070513523510913306760776629002553549290668620977179861638471161487567854556792280412102756368981103838685699567346011103949333626045428809052372324521477020295872861485460595920638353056817444512924471357894025855317755862210182957943309623465015091708814842302601473567553058515747311384344180633551723349488750906462873754701611577322978005004398879038587412642828323775371452116363966593317923457594519888890053832316327505688552014287553476330944206947001698900468710448211398498417262134614133636198234967392676082687070278854036358838331342294786591998163808301335936873798124124531791684841887941485489451561223612240128582701231761085372816960874398949757667719204194462873490139064869618976304980996660498365071690389137462007031037796138185240818622992234213254930012803869950296128478681407377885246631935517630912348464452912468525328477531520021645438312930977073105889725058021576080896090461896468775451412383410193639019676536939200826686334616384081170880955030516810600212584426527749479356558140298553401349673783045505828721365996327907610686361743936561901567568440086563264998570079162671235777709778742882354846189241206620087302412905939794841254745457395260176309767111979102523876136180191008415201302229383201841107953246614686815354341425252723998894672014508154130896998691551101063438863576594407710638197431118592296385371525324447689210255319219995420036841941818761905613238839595952045733699127340389784562331033177703262086401216005897733717194982218211497436713449030804726038727760385475929260538593124264538948045034841001540978357158964416357927037841230981592414009043002792754559263815460659592756752586194658348180300064447991851367868566051303256282221029736462798130618328385433419234990029754510842827169457085581998350307867461920458918539936072041526441956749952712828371188595944935487864387716389409108348734872155211001862572583416932448025936744308221474812572071093284174268545098102985238253167215827515184391533686242979109959796022275009216820927777787119528409274868913034004079460099830422525098947599609987833314295337926704928324710939796707029623008784270399091993483220076569524469001875277038132286834906769634724646833846133266650459775617010292848505808517023921960925485556294167709993316938136563511169448390665376386290461988184294956081867810426411197170223047581791625869998844346941053185827026356236389865496922321111473726104429067228135810040722167924623024976336009897213006085965390855335389992595714366183234414298513831215232782202809970238003135064712813065921498768944682775527489795847244217656510993264555922136398199175870983827411441049666218144075694028722307736333272437517345370477722682335024761078762409847915923642622502985934420048278738152581860953759280272365282605350491958948219383501534572934858507421249846267479749516690628308619211816070050303544957143514580883355489001495678713112440977041423625296044901913764960084755867281121602757125562416614632632308505059312245451358963821383046474363124991125991633734625579341115446631888417837932651846516600442434125140036234735273200738304791622057584956021152729720332068461907639183497877870161637432447352303470677664813449871590059382076278528354980989651551946544150932762657475342239985844948952924047129480409831578125246817390704357196629860083458667340566011506707931435753115923113509124417530819787701956662829293508249130105739467469170833746111695218188744457081027502701394655367913707504389624506513398336304056570539256654478518392087905757595943349601349201346439719807613946893556908993322969434839685565421493436854520560578758831241980594866356216532416366322616134150597683432936179648596088122764545304733095225611507079128398205780795275393939378113835764304013225465758626566429168231805676716612428299909529298834816502110860580343852122600510825784403429060897640405834400941323042869312729462494988094715670620428528462358870496479002540877241579697136578596746490502444176576558187702962157509925569887014610162707404818392616055611441225874292314232869616939954063386864752315900108000728982952776422826185533395168732964320956644859754309199079099942492272752252641489755006431693677814891281391835560584835671594600668812393255484374772922551134428838283574447029505800416910997990495232153083444807347157126681065193587639987195964858025740072028508211363820086119795785538579985875878218913207542273520815428269719100993700597866770055446159795166021305049493861133870577622731490646433085626416925828304323709234163104169582313996434836679294730350647939606444435659431621371231276377392959034179243075942820756937244348181934285532741827147764686007484349031797897609285998978182543068456077629205594208976876980054091351821648167710472663781029934978047125086710081789445440443341102231973724800156218117158573099198157930085119002668420561473734689294009963092310716228937087260910452460661313022920423633602625143699159621857035292443699937272515242580514617205205898818247600301794188703220379303018532181970518260357319356367720437103067413655625878631449388468524697423533001948465051187474328338792354485926514558599547373591733296908522251719633736369346570770155007869876049441107834269064578042140678645702842807144790900291657292797780221444284285700251465038663246637428992405098275215345674667405978346666293206098856759016526764506561395167454464760960990079991559556597009011123547385401604008704763442272748904554348807947720716282928385128577505943255510240534058656713516268563181833362935081236445086422738281283911064216939684522203579544400405616609710632320294329056960702300832590131240057353866426919871102152453892889465310097901419198778597178913713616110012276466241786377066297939637695927236052719037957014612847451557570636125475334543126547415651543663626300251514423540220960628421490860445852269652899406635844957731466234078434655854807219260650311303944880010671579336984559386271966442947709378087879707005109980194525113481670341048793578820209475169280820945690276142314217739338455870581815631269178796531419515409247039021816833778182626902494293338202278680539904881904909616395164370981501017609556898452322499486804152455544745855300762317550667184807762444445530196623626348243092191543155008777678598723040356062220407409870407188949906768986436028660990164929063832902042005447589946884924501124903991438087005247849420907305642609649591132058538508306015564477243916753075782933022230102269306471993462941390860975372475216213788846562087880034136120529596400171143946156442418010107933984405569101031883608640085273891578111688965920910157594509345542579448858583777571125472418887040663893818333801515297201716676196004389638490955302200483029621701441939759438633099299710049597320088772885248977133572097838757555546814886567827584601937817543719545923351860742206534840818648442787194145880425491462621515099781042153039961693429935054190063351044116054966619079131737937872753069575669070855353356282776222283210888456564412261438609781073008212137442911866130306820280070745511498972176057043414423570418146909289420533458593003704960171989606922101923696702127622342479576635714707248874591822436304075709406734023000506932451617002524356506284992693074027321939590196487626778994920364774851322711776568980924175748919013041709171687316726779269546937995257821026718464966873122450372190605250159609099831711167536273935872016774936609538658901068843725642457203196048650535355730410284185193383437487170014476553760364745496054591902076266188118696443248743747582213744901406230220079294152177356158845505955910947808385204848940141899641735185684260161994685899426835853204801087242664546137367747714988400541508603791101368243873854639830009251540029275887365090309477295424545607081711572257831516924990868304588017343239315179570507207211711523118142937201092301576068439939853645170337664130942272625983516796759780832446882287620733397777411192194648247018310475176660266707548338435416694110953868048759603727752779421295485970035386009401935214334049691267680181694864335029403780540325832698959025955979082154101014233204987699414889629311857076837827204648695076736262309094973179488130249634848617387593633836932209363281855764710680679788788005197964750794902903833070582351146901058005670335801241032763023831637769928919410296538945270249435747868482786813114888281721503222163541237696949749686998847041238741130522285254399641299009921371508116768005062730635403800543280331940660420001979503983563551605708326544685759950962901659273843169786817750483282367221349152990466321148035963507671395927403834688153767617678856483458461227235867258533028593930612575420647508419596295334452262094708511704636871466711336466362772084117389292850042973678501698142775731265082744214338483768891332425716479016124285088789089725771508387997393617747839148745181272319049848060596964033357394015020956080839593652323941797841897631005036463877057341200560944409902706055704884626577721865423397691898704619525243700999295621170205420604127549126548218546995185912459815965476524635520765499841121833501639716356964118089850292706205473374197054902890609115415034541163147601058421495118756111776645601265238857635212892237824195602418803182900234970347467010668484945853634158169182780867385545927142361213796622278797811642664561084263405955623208322766359031803463799890284451986429307432193564595159869744506510485289101591626241628936275789720082248974576105709311507359477171011121205046352168393894086396986625820870392040898400369190994522661826514808375173341130520205650707553379104439335493705015955966704293851838218817551883947934258182759970498680007023452978862516199828780446596266033954009569433562652266552397983337607639102735965942163646466090034861722631358102163556116307291393597216982026408548162723179799938393180419836021035205476279496795066078913670848986954442054572177324384500347803216250343013708194633346227000247631308254979233437487450080427476171786280076495487040270188792042863665568741723926104854989608736257782416509734540048414255349755316184423448567044965840376976810531514664498871974972548330887695364973818570148871787812908366875807940336108196952651354431120405606088936297698390623757946210479632044897651380128067676073468122184550132953031348920025520135048614786093876488190477295771197492996186795196431614311211416382642390242429778337512562740090430612981838327946953648057747677060403780047375109341758791588110274284299816367827053505847909127889162604033338094739255610798577534485909028044339479132703948916817863256890716196844912247577940555060434230403481769155230787002986935429839605277595210003729657649477085248885444948999454466508141321965716064852371119623559250751930521211636421228152689319804565025893178385880183048514265024797718505984643169024625902248946220879806696134224429428640803106759219214865457038731139259377210333420638122731392192712035154293636155330016321413528107465725465246023929550707406107504266027196818232438131494813237681292649029240191555945897362675150063982886725484056293683674519793181358292285180717796952916980739422639855466010125800394693820413011333927570749867868418234994971639429239960662724446375577287786236104480303815445640770183453634304203478632640445151136585934935924733532068150847934639976124342738042262463990637617212030082175284332646474124599239109131522157775736495230429998093939244724218129468093059879389074087853580206025571877394025570042395798598809875602402678294509028159127603386355689340487934829154605475974216242606626251521478382863884082676873884638424956313718033704637357675665605145838005583546149976478728708046351863842453941194847759158612677768500335429226717337532830867252911986701531384423281344819330751451347490430311093158530489995435900499256021910899062591776478116719509434364813991363805003024682571307050976364531073079027869660202230766341062446372869983731935093270321024088861773078793773465168999022602537614285970309211061757159194189120945502563261486736759678832972237010234213377578192301244538338337456473691485138992092107542719110944744953607889784537375714157057117765836410187581468166630541259625358367743173735512176908376361707311641598366722040956704337942598989538743623470637790118728250277417580553897822376663519691584387938247308325148956661781668359505272959288795338438496464140550266038889124236136305275710110115629763214474608698399768363186565233788113147313025884865460472718037449794111800704693161056800447586380220630324513395253906204795539302209371881000423840195565749999572710759260712053841288463249082757130715563425976487435009435730148241267847311409887162363662801680249344129290465165236910278495487531371882619037007069073015527493081200642233861848109427422721938157745993633076968651833587974301391931061950304576843420207111725043538316562564601665976928266527611699351323275749428170179675035193861421688391496349306845360260262417028218140781530871319527452342423834630943742419422090658867730806708379659145424462246164161632927273799340644405199041469919311615917804883776826041834260802168198997446879548653220261615596459457729679520388270501114391982711771490206728747722733739890666635087937491713875755876985308120242297272075222757576172721233283524139305785914290056571992632695649577571212811280044524456151829911132322926725973431308973018201942072478327073121100585187118536019786911325806362638780327257594423737194095181579493978989950396465347015758809776825866035051989367418973966887877484421587422364730866916132579556045565029774974653706793153597052114543243190370985028874921689745455435667679526581648005533406032455418804023855076785754079198327681877778551783839374039759942926342086845325886017978284032020265350884379910171270097302894437858628054888413550370608591879561716236554493373296524783010101994704805500109048627615897642241771121847650267164318623063888583041060707306361479974980636624304374233688698148495540203199825695454080076626759189805962446487689513718662936031306711224817350305938380344908492237465915345324864332811593999419966891135498260814993356229483169163273170724259572252021725164668606142437075389030912680897813337168387697409148650267847739966668555557544902858543134533811975456783693302152006045565423638987612363014059215960960347598041267405115832998769980700313818417543464561862372274382143086680148315227021896562392928424901864110614243237211192200489838442517911770178902690327351911082885859947937671362468685918107440019441035287661991577780042875694711541058216369678376609479962816076169397062127772740971798864864888356421284651509162071446406678263254704297746320646889223324946790339237517923915418859180782316332453475095599384226281429098286607095873518060185076786414463600255637184294260431188688936026407222673039892615485483557048994374127514074657184655697624098408764504957194010196387227055687267612234524512932716398049391259402472640304645558183123201741530303438830171934918593828895508361720991845597348373396545810209120507516132805228108045176506779440214290451694567446168077896539233982435304285947896610668701579723255894229758485912769736256288523243233977826953431676842094571562531779608128890443593867112777885655679467906834031916875950182233894842111656745640065609206478325360843089300652963959239707773960753541995354963474348727864054411913505762827889348299354626520663712472752957776352365645258458573239300342531175444100094438428845636928571800257298607551070017478569410815860154699824866193445463349539490931284700112846936219204568309613518756928623187473826685312815485698760121334051869590382202632072245504762505905100776807640101256638321701882214876988717163427306664793033697104903313956650507152424383881210575781667199719408998790191872694592638272704561333619599940676476219098652383894268811891820125170771436262051077973015478387203559088390738720923930267854597388544794262041911245053088049594506209749502251963942184946590617882195308596015759856806953399407858086664498925229128907362349241444229035373310544433327012620306507069584114216447291237420289823613934512663592049706975615427470391572439386418916670043195980919791228626676597357265870767648812467589976920627392048437600141353814018122040144712044393200589592705250989606491675520410919228454138871541092442262249362780086131509145254671723680249867640187303419750149684363494649231207216744372418241475026849155323176733677363752576893494822358148597500972472969350984743070775962524038237232343542887994172141920036448856020383291507814494999558108003265063937605486302732221555447596720778090227160725882367715670321868838957466354097462335518883724002745354024985304050384329993778282725212065855975660068145553114230879331576007099568389195485780969851659464713681582009947311504033219840261810837890646252712811570058623612092001753499747656902549026025737720272697726083614432851933577465798520056425790528879481551383838391309956264648278508230706750228665005155221255634983915824940547991865872227723444231703436838684445918705072058048928388886038002346120497432175429333928976129260684655168552568623420538016725663837110357985884627236085277355684640446721638825794943330524999628211087567084642572709559311018005836706765514071124097835694711998356427395400000533940586749938565382861112989652372641285340231969205449445528546661375519893481704179475054160531063105180573812432242681404089789167064855257030353746322288961293733787092584669584408311666363527601269529349958583666400458227484692860769812483242273395742123252524022093024751678844062399072305387434254073468207173867097631941902414699341202287532954202078961327300629567648219472972925825938228388691419037314380885627444211067466637061226383478650109258976155423521178480358450827321087470478075611522910326307089659807943710596092213515710973930356626868840299471385558724692102406047776545894699182561532299069571564876033420329322225017076445769206670413694762195328410269654560179272503951062205882721955278999284590424373608629020258704805753060709590701882768436977965405050168860474082928291314539747534481699844646027536653228146579524152149897552192570137674468104461245453850824530628103211516235105740875714468443278268343811212005104537016096723853261553940007047639399914918575165540042450854151597020808104323452065893097615202368835203996911627711402467797782488096745679266721703873569820833189829846815643387381029408564902876865003202374735702733615647909898780898991488276985534701250753057720681067367038557014289946752268776422248143482418413419909011259625390956697915706543272798514769456895715260142293184257259988577767533958368342991631468869685417335778026349039419979045396525815171250325802208712437250234291265988925442130576980145756625802249297460945529787254918274725442817891673598895658942963009814673884528183886575273987463872614748661821685954433898293572862136102438373439886361798494894579777362444858365275291480750834636414988280052018686882702477100545951402496211572595570009033992161602129960128227431585592738600827600635427242097996339339037198874146975685482770410964717444169156865068809671229628492619570607992367433749274583405728955295142191945331359127747606096008535900066624998212243159638338708594433919500725179798429906621949767243196668313914546267452051368568389332568763845698646491837486602805891936490638332246677663011008697296759880078972384449801695679272394307431584253923823554988328573779147113409144338917874743302843249080800204330664576662497167764957317298876152167607509929984271760958694610219829243413998592353088045947132027884524829374106127271312147019538577233539367066122860044946964597748028733841606181261562041788150673377379799731496919080179936978823505356296985591353853772368668691503393956358297947007456304437661619200159733932871253952284081891262964944661282674749269067017322102458322379732847730053819734659895292575876579412794432386699961941258138139652598193190079500636810095120590219553349130907559619379752110714488650412620776492851786012852381401382803846460854407085358540047826947050130429922271584667161915829125142526477106729590870002793803712792180192465823203125546285890630881350499902115433020528962976392945906555163229258250876595483886552763210784192220385708922176545666517853508032269797690599435898970367773805811327018013955217152550610012537298527655728014338130758179664488017808753816137908430861350824105286339841029015445247176812762682685764342167714788837442220048978685656213176215507388075580482992183518987547806913753243812133235703676625494112101011653172796792808950242580713081133203870182225537211273708598741427942792996483880398493051738796218465776560251214438390589062277618371657500763741010542597883822539050235998408523217796656573351820598319410603289825152324060812759238006190149140468238816386732773681327607368770936068851091804083642938218815321428521577554533890961521665770732908209478648768669403482979633603725423200885019808934162454807075117123956221552466806556740798320554015590576177143767696981545664510405544604435252698325235098518798291528545365843644821679228822729211473596343699184958399193860920443789331093028841928739575910197657958263817411412647984655814891195779628734406217035461946761992337259311803018330357386798773900478805181929642390711806296663739158750947095849266882886870883133555104153342226420904314719395980752359939913526900927701577671472051147206012057424186046425158130673882026966175962628419770362248133206721055888602551054093964090991647590446272136712049874805356427919948230778146481268487041353348014306657541894427842349716429663047749930729716988285741383518441737748883170654768058173528856501045030180270256440398994500807208384835498521731563435024866329399069335580693469505879649225575954704223240924859076008439846285886725672284137057762851425513819649619986986581448459788043925034598998749821356272196516334914912308568525353287680554412931582235934708109094914982460746417985644372886673520952229612404935068228084387513171320350891414468355959586155060410724771490768526142609426169021849558063980878954466395221494812509998509039955628331758478625549080023560799159124246975090697337986892139804131822579105001830076222585806022812500432054064428889462993651165000296999312512345316890762891359765527591209435837006516293986884080977838470731775895447231364350149686187659516604819094020301925695216640355071095312488784441691038031989955534720684279103227329453553070761478879564724249628490977753214927781488054263978077950311811853461276915614441118436910601189463820795590002567338167668278493193033351597448069630076729345499704962439045196796916049546395956359274583533935524699346636786077295802990805589220886271810282777978916119306429835348400426661966193400969483607723346318330525149790774861402312705525884787668454321304069068803784019328503551249292574545982261355253784305701496808721592185924106963133362046098458599575475925826141300113772656054026904132269837360308814032844336875768493470074306717632497976905090683729153123217074726502029494869072872951996896827456076164548627908156098588452008427262678834310798240575343278091088420730331662779131305662663946987045079254685407808430950934911791019014585755037849712691929238943172471031166295067915175350818132708987172422612656559395553045888189240857647632029978098013105084976242692152968770931152814292018304986200702028758102555027903894368239689061290765993990035699868992171847597331265145105840671276102282195533960602913615281587201118724327319669750650727689923400779348336668717049993400692650002744279962342777736655277480786710880457247169353614429722528216112261661009001846381161982631752331235192942757534804890574701580305364020171088423182441835888203555938838049309259223744248996491200451801282020832515722157736621126260697491394820822860820841772452706027507227264873483607250347586637187760284580607172125221003841283450672214854284543442517305978824443589540039793929121693164834004497873601077629962429449389422325644495020381013110228234877178488439653654447433605204719264326786342124016007926493885235978405572708618911867173224456714937724353879744720509782492747923215386954258805844387030161336548909381896170845076476911535854288452719595637851209168648590677116036571376005694788724425361603328892286569243329373030320743490649343332398877707516387095721952897030905697925502232724439933864384646617185723739485322745917030811195404549795049683830372521693133944050528528860620698010466023379888052241946064857906879428585312059385697628442523314811907169205855128333965641108177105360263130935708341963785159321157679814114235776759651222358683750469809975698951827296142416820869198081645306060174205893068684243453002374357918624752707630328551367938100485830488472691587445255531078417832541685962753224979425147716132620367730943367009391782277363824336568042786816202232530116883259460496587602942423908626331822014465021300706406701770407555039942318005155432607484434453329787447793242825238502804655596724868886407996450811285080249668505937363061630539955657646378832546160724657781409900698579623102576341378942253406579948165913440725422912748021857326228736586613993541661178277056433260392424243344195002560664271352595367957411861433132547930026553777337062695032850451111016543417606127632191256125493940304994647237778243344315167944147122190577627835674770990507529692185645400840002578994836272004434117350871480941893861695607005010889410289285642246018415210388166355002991738261153374065790261292508067056784437684091085837298437342800567046874902010972189656866126109400457257327579558711927448020375771306509136973243016542745628237495766291656103780178299138881142142040525850948035839867151994893994147314898190196985049039735461030313696917507644206373553254433434067653817905784711735079520965739317236845002369800642211492495116908431717595920029852724233607756827911407952319495239284431419535640774296999699041404949100884229692156164377341346969660021233124164800052730768916863072937747252160841505016412863515579518689184159782963418777295227047829653095108263980852473880095654987273877237862524510063526886667123560601982176905816524419300010501607942752239178359930114071611356292209334359264980438610077714492930282388571239296906177849691572538717478105520550312210098261163216098038935742974005168682822128197956942669037054989385932088032287179146356707559001598308594197072470208680525445590736249568599159199418399194781598750396782084778294522098984040863605118007851727324780959487974230211521454731600828766324477656418609716388494468785549739991982356575953370236553387312194372609515218715867130138788901737443132571922379712083571901729343781835412057571309734342807026002317287978687185855618969683152676876138539393567293608722173815816456161873885297240649362391591811779123569066937723169474038123166520656912084823827319382844624516849395483728695253590648022632115972690314853598877633812681686784861695032744870699473788594474194875480807855279998339147399885692135930054747474848999016915153508781679285693875626200206504453840544711739195934593047396659896544628091556801329627711401087290408074865836983590605429400060616072874066672055528952479660978814835745907034590296419693852927076721869728397511637221672812012415789522201800119171253134526367975048159178634588538073186401114116557685484590628994354806192780876878954294409328440981854883008302692663456601495061705275304020714582975641479648022224877502094548165234204514057373484167759769995529194455546384477851578828518118795926641874044661302266952464544187241986185196832131424974962907946522031062605404939720137782434379143289703318569556823140550049843928862091092280719679790992599652195288187692785300371917005325357956167428716895171089600901519758658416003985415079442676884413347823416921616377215734589551264287783291512006219688469537812951050681926740752555069357386072529811354789000057884004219487979441106777376741120730837011743309290826120078284157452014996126450738591227436616417064778027853950840418371038143752599898327746842309713964930015300875336534279484457799525621540531981991231942682455835821325938356848220268333657233010267652882509579203482922625164060522427425583686999808561695511766324136174310975299017678984326060298611533762600546601198876933620660486117289884824131700971183034786598726186244729610409252968292829280466529751767131422779616284578785563372853834731401783902050985347974197217278440009808867582662632054042566448807397065817693009983331863617085726405963543372993654720651807421565647279846601387063673438941167515577746686075360978801692167328573839106167925933999729356620861571679807372650538882862257198246175543382365020983789245131574474606333157968274104744878069832446518840924166953950479378781761582047715703309331220610028944744847791115245275042867152667218785652366832879097572791709928540596024604887116632757475026192686624844700673551418828239378553830198100103998988924630426929017751511913908977432746578479911970700679817481565304449050066899741795035911831904314829403193801600178310879562937955655638015677883764916554015605939517060092914930257368749567935609627305040256894448435213240001077527396813304252181365088099737726406097787199482522015540848466759081758183820630037597443061898287683702233719072582049574772987769677514522598093165922587963078242271477324055959977207762060973821047239794500377196504409545466321540511944488829179954177225247637925757389846592920638180230472490656100816229888419688385266433002062326672186941533775744248038779425016590343760859614907730119964452114489591234309307862146080672173627979933640046163445132954530375333653945856338555141477102304228715476163285329233405626145646261831896170887862386150509556215401296445012279569562161869758890129922135749381797119322594924283571662753393471145561138880946798749013638180283044377751421329105490640657749560364283937680826137468516696100517457577095430600117550469971419545423851327657343365734488599192635582307291284107587538549272158797535667292359484313590327178395129896646135990334527962488563478787584049242182465941984500930764548832209942628848878057035846452786907849107137082073679125490823892472624395927414505618458329275330520786977797672065005851808702538115979303778383190584126841079820484544115759441684475962423644554335051396059688406347510038394290832026169696470659763275981430300890830457090123531727093753667842829503155081807926699914030860055372536618209465613974628286689513056129999901572437829241893653153189025333366388379365562402711522414281191779438453538243039948247071075752027846387786935366207881174942084722781900805198533144100931531159350222642132213300891956884819027002598001133341545536895526915870773153527719598711143657162936266287966030909363154228348187995451124152956698722241087642357937481110974976017307424930404500094199571178322862851653294280014625340418747017524020180970821149429489645494204936252881777341031223623971185985329515207682219768791707542070750858955654119543625528657751025006616020934016571157712439971653833022228132553997475211956853457306052387140427480423540838658300402090620324669886556638336378495173948677839040869647208728562786472662105352652759098090066658492454948314304025982163952084797173982427113872753466960840810608911852745588564046770952818546933188485560801758610790059732487219619812242126004168398092193790861060342920924092807958098957378709200863443877142087563498498615718381994523104935519551611304016265849760437796746948479289849876523630015948982674405081044425064104805126720544210872456419775155466209567837764743772688788819905525869876746893521514476299753409732972845997108888627149242945552466271423879863431188133951142864063840418795570682248024382464547185703636926505758287979826405483598381914102166940487639454979950911811856178669563692266029652180035867142184654679697897528948545663525729376432925713196638784146996826786609152632464671984782081734400555798100085492498035593753396057032046864471767449909155446656923827869079114928087714549046397591146191636174747579849190121585867175664215772352402075439043006403615698937422098266343136285813776131277022131135216386603424550880888778473387467864630108655745965762033665038541713800753501313326628007434879491827550480267663929744506077980669430477933311772831538914580607076104769086747406046379107350859324307560297462042855772212459742095340594898974005455396774276358727167555362049238580459803481637042250774724382702186074445844821059581345888071853296857576176876229793248977507184701667994873144589280654911039828849114519057671117262155869010758592174926424924623260296853412839951993273710972500726342684961524936885797771606236454213140150226986530212393312849661675743654780017423164034029903944536046043804614479142319314149959983614025914008933098367530208111935165224375482049362594522166596617165184072434491858179287588284782657272132888260663881896033489199824559202243803550481379128928919154382072775896746824147216192881131051610703726769345121569076676298357872385901316767710838821386636853858131347302898299540641101578699158668433984811638636919208036033640120494025647754694864671263043678418525532793120924300108216765214326483001625694090729346108765693241737589951158657437086123901600681022425124024217126208820584091340812334038063544495564789631035669253449985831314501021350400877142548653950634850739999904686914309654143919714613579379515475679018402038492540921718765475455220704759819728776464296466954277021552759045172082257582116412936743065786004553802527859177443676531142524600956307443968560051980656922158457848161401033801581156062328900387853382960802465694306142269738440675547335824666657705568998953002914518314767084938398181532921714215222248022636176843804462431340076700198647459626658126289204946580882095182291251348372893592515638083644237301604388988855806111081546080734236405865373861611632216134365831259916839923346913841481199977735912790486487380597243980453925766690628341786307001753603086483963653201407865211271015147133374910748748460298359161738005052478271419079753257674090653777936342042720988357987455636443470699146477273656469299162350136484589316918810046017168311757251143469694221802624616709797305355517738587463332335168171312262870912459404599622157101637102038808622271260934829039584274999959584777534153439551891636072594405643717056586679138424073295615717630338996013194799920718887033699580295270610951828428086598127295298979271731099723710635267207634193370097897257304369135963568889627495256967010710562139640985236738190379693506329285963631857597560805855188939251299998386183622263923096374902878185363829418049626618275362179117588702494071380758774684979671089643613348060802681887870033128100570068952440384752432012339268934145804196880032068617057657382028253477462645477112884903694995459220293724211525947265367172030224789781497686788386811901907222495653475170717271641959972423092667566129367193878055102565890285243222580748048157066944396254919909324745266420990849612334351567857563331693619546841076790900078953478277791843482292123496799835874985207167948566609937183066971525192026937148815505770886701583236958385395026300464550729910233775212277041009699688224545788353007107422132167327947672212649768534414222319110557239354626027910041885823562621135575502672206326617343768561518875733968877183206684396529903646220857348151257312072288252151916194631096348645210362236862145540519924127230594951031056163360449833204875246923068405057212499124735284356589234008130188406403058330791964818915098706312897173372275137761319105562066282376706913364753585985633819301833816881057876634315329414215372729175509280127579199994552200033290656470978733161716583527278126830967688670593397196366706950134316642811534521082200046436954405608067010996318503918677223634784437189333373145764451725698954501496141074505674090261246994619918357834901122312532162642209825631457410951993159560010896022816310657198704877753615552197022697313307067964774792597690600278121171695687348410910659898996545590603060243860328099700317462460327156494783113272666031746119954018074301698241200603336155914947753462896968590291150992470864068561310061090716709591055881445380279329387848039316238158244365677984651821179648765051819347367406398680106793090768245357916628750385696923408543250827170114230025113484680177659529343328006169272953330552819805749813336701014487378558117040257265616632646678029360729034707570293052620461533917051360323496260603069685781564192359388759865066058129457391214534306322584913657339682590950889107524015017360613528134635912634895926196413448333752941878968345623623259563375712158065826113819599927285060752582607000047021227464762449510128087291474637283519165701045534577535377778681889012085625770651358929781854449520673215490949416759334808076598942794248015568975372804938829380159980487171973903869479797341749962311356333046696333070017811154401413757531749412223745472529785810038814840415924880048476007417340285166844016454605608694307542993601411639612356103156509080144249783782959244255466149214626267853501358006091046675583490966402463086163086171075436460982201213905868108289049687162336170950936069062467419472499947323123275291114499840111453064271452793328562209912326438595925135985556813220410076726149669451610243911234599911773693476256604738047069607177670810605131388926328946572125654494692295916582285828044131701772054871582878343693548236783115277126361632575356641859829686841521168173131414470929961281642908243943245474495487062732160326719166027367474559909854137752894863118194815055813063383499798541741430967493459648864372662665366577049093233019594144035916112763150731483453396730104853275197812962575748963229306390455779609499091828963147300392254474593693725161052440908058194158555302426274643873237425260544994700399822650840290349561563358697923898313276809255265234108018587416732448359707409611622239303854329298928885255130153129573761947046907669448231914739126477700702992013000418833152902363580174012561044775712871496282121578716293604670339348863929082132964006678079065397078864539044527375982000376841060006820945326759318389136900533531079175173940908306924988302574630040128195830087082963288514197572449008088256490982930214402952183205508204265607772178428559255069806907074783635168895407874593140150840506600127631165696077722651182232442598133887175151311973228980135855243322380232797189583589062202023227972007282630402456703719458855142875868308740677748587366919794853043546420906810588136273426952559179229897178092575370285892357692021310727068279125907190277539694345577491571518787696445933240979468934043503666143254230360936453542746694504723579880354257717179514410107679497171448419449674882233841076323555030599961729156266213866231842097529150817878380010663053815850838109741349590706671768061033625555211896296748001441809664828721022663642682456788961391703113502837534571978382739613692365651621540724979592873304651163599054970339090849626070273224664168434110727773969566410318377653449452959995896386834094908986789860614959305047513365442573018209064863634826252023951431746691497612490637159523830501958163786031069361693568470452609081103983359078787493771624853208706475368747076311441862251226127440503272732135767530960638424246478366632105028454975312038316150969331189501208468671156362863083494264274941362252773733583307085617611885019485822537950799590289516666865589885184685121951486361202976891237605648630028539141462235360897868224212094693348532457479518094501442816046926331374317248585063050628020789191222267833037843616922498254527378998219189529226808192024841202962370044055045513571568415351255979384291676904216072122583172144425160815184824332548861046152605865839747829938138666403322736698373183636512319160652653153199414479069698586134021312414243911518652402497346463619488594074088579472137876461968366170103065858462939500793568958189112016560160928601082058829999407517306081612551984778635176605119375680690602127754416371076285295694609393036693453899848979112697809632639199797783537356671167381923461309009092577776797161512179010047887289007403393917890425725277338040056119985793799077980965441954837601490738064758810281458971511507841302596686999879167877370065845524879929453365410792174560007629799172877325559421569538330317737514415519834432880992957798952023689559645755237504232889776038571832066575324401743740170826650194173400788125799134105626051784082120132385379680974412690461652400450404522613336766877045888504498834100270327892651473523340962263186914374563514934873220358268402210887876738368362540560726118573471149643835306600802512767577387925209826802874203030597395207127824611717926086077958186609352221590458125279372631276268177807120167789933482201672421101546565584317157749542233195335903019414329427853381274309702866840940471252216389265233878655435652388118954034130334235647203669479941749290884893337885381799845492568826059761883292321935781003619375872191621135483263293988337545683107162704488893309168241381015602206483824100251532670033179083956347404440795567112061895708998747904794791315786775109786048787906413493630679673874683808309807874666359505359168207682272364151076355845805462720444384125431749991060501478188249292227055111333758412201564837857688052493683414444665556344687141896346205090782488453881088985745875947985909515814858587001237689636102590644384081524636475576856331749657536899062328810046186785196283777171377401237733568043301962701794809243240114595589970657138342474480400262885009526840713998321512968335231362550065853248937844279950318116271166585525408609442996755837145698377208834325801688457628280471889240039844671259875243722299730536480123728781758160501017851467182267532451701451630170920263620513116537202108701473861903252050150410545649842585582377283628454038446476712235566744243468865750115616086802910863261478589781774179763224321499107501514485426271518970889761876263114635160838588591142878893026816496067612087302670572217518659783383810879167554666629986022875732003681603358531344900247740374533508637579828739907765962415726361800172805084094542844840282654779021850129186718530427349118599096659412892273418366716829166814168515131212454531292445426654739589638032940887447570915876248011432402252483767688739281042458988127389261718239846394104077222154147662444798764117250121190519977786487772769437514406847867560165159293788187051141877383475672937437843704845767649145011840859498598939269682175194174229440746193223805467551937931836125758698034097213107330770832768022047520809021185688070182324748913638316132740206223190618114220795122512452020543113818698724218629757583465619995374462435912635141135813725401953456731965419551426577056179021307829565619388841659919628181908708888220008789083096713323359758592658427086106921842581169562022908321941031252028420000882273228312337431441697531835118976039972310315259352543307860983753497504990371402860403774696676806257825828826819116429214488136366757380457701762978535674422288837889542212682891332192090642501971813606360967006893330152263459176317153026047650840739726571876580778420722085593423965818365973789871417858421327893723927077652676450320398217075189565890784793700292795640211906423670343563630938286388034911763715790978721553478596034937070014179161208916924426542737192614591430032550542173237951873892890103053669519451729403221347164306512616065147781591347832661280932988662432556746442538606345398941449935011487251418486373385196082776610271459795668024281979143434212435370502742485141997251761446072396112437796368504729651494906806773920835031848109414455879962079735013195495913080784045651382393523756406294203727812682046843972333600257645454720110398892683478485577412693922479358161855086235049961597798612456978730572791544147414716564602107201433451983081369449648487262793762092995769804374659714238661504081590839359562751167490161982236441975632889599529428601091214453564212323526053018177380529858506024758267111553046059153747558511699536881542107182117369619312506988646944885881389920457089281302337000916171857065784245181574757164546427319311829893776600073361741430265468210491873324493051462609530032948877468793399908596491244590882326577540233293318222783970692670707585327053734717211675523631160627377914446258986598127432075323796487347501357419369802812512511154681151990455850647403930142386805723245464881261214941872010853828661374082613756257979393394175016879624754318674522139559812249081680549888039891031140979687216607844520168115940360758755235995438989094271125537769307522619329613941695114898124245067159738304928471760894059423706457124052773010355928003956770365599667452102187520925771930115416186586195596991968791249854517193246751556907961571940295815079601455712540380474827488519240374634942810308203200348858593526317525374367097208477164640079573876780617646367051372122420645610827857796319906765781312718276647692755072164990403317619657652469916739266234397786913281479963110640242589612691721901563562061020144433207709195177608760765255144283538210173876693054815280080017059532490558625852697015527319495478348794342339731784960353977654987856618434287367552974228824598962546775661801559182158374754921244978235513114879311090782647039528412996904295744653598986258284905322846743007453653142774961668605398030384172001256443553112088764844498269174354777007639829080746759283245348153485802081548107314769493761524119237162606311421672646136708766268093837844908514830330268740287595949757962577064621018350131072101574812226790025612753925143178701625446274223062973887442195135828004972048243902830788687320426619874303557068424227777498952220527918618154564770803883948962415780064157556823480985238489899895961336998226461706116625328713415180016975231798536050014855385032281857662902669607941918986562277039092719383231554883155430259792395743952181405065731363331969126380665328402287561813227356336806523979366692411234569863224595051984149141797098330628015810530351544275515832623130829674886340344409035285624730794456273633527676709457929209153108480372269055232839499326890669110709675779328154322373540460551041050091946478158444841385277175515428673241192668224090873299725553133559310141767784796242758059170017986297430183190171425534408979787664250658463062874556944058224578094922973900075854020815595277381397337340912056066525073456725284639629700250170192883649249708281568761000560016301908915591019581242403761189804031006680272018120398086331544050878504324722942318680938017849829861808395055871632890225376766167576817454439898356833578904283700896546972939149166590056705419558695800629612538476812728504146357666787809238862880733331801242737383260334298735485906486284030328140828785095050346806218842333228915759537947958963112193998859164153311631164605681161783534223373993458307720055299441347106217786404811042697608249844145499236107665337734717012492467836810459431378455499621174578050150241683050151923258890527006531528061315430359146498986783419586811032193189559793364679083065300635815515479323050041511013165642369560693342216794112412371265706438853079349573408596298899408459321656273125933590017846193278930330749155748915891315060081725573736462055925190280755252257772603767129847201476021084325359996537984866470292108040172774621893643176424966339293422929156150421709463748196057058157684546466872299822419324867980805010396393606785409224627124890822600976949052658522908420462086822525240853451055789343201302714863755516150258164635150157608083363232927397621237589418392180526935967734840108381097453275480021111627123002862142486275721621577968159689569041486177634479317204147964225678983995766234605300593249226588662536672314722090673321696308234426379226419145973042957920875874900953885095867608818284805110948110348436644661100687478251843060359559208715894377411216269139768607797587579158905439441090583793864138716589134446336859543662040135887055899625547230057517800390010773386576185413033312948678888539068419335863374836485025493506320743899364893381235243426149080275401827241580876477444820931841712006187078046693991293477277260948205892825878457486276605943309182793699461038192599218185456846705537121495393116862260498141869592345745312766856670413748741486106425813183635193883515329484871265524318401541912461509796171872199677498491348406637685526080226485507944232860736481436832315837035986761095014465528844849852829064902148130192197752413379065783573713986590967312662772459263509150005115728487720122264263185533132394832171851224385922030045748182051356146708597385815016139883678250855877373560605368122492738820041271456869925470023025711297141947897893376151416287094731701484368781873646783487179503898709696419931699608107671911135034350926321866812193102556516473793811836104491848916549705963353910415027273358020226072441170781138878291424607666947750424472514823852205241725216909193040249150117018912111675789098145061223460608601713896966997843364127353817524174644733855118928797590888194208301594988420961719746569966727474652082585466265804208911730653843469947991189105423357069358339905682407436596979960418613788324707129621193663730397830094186564993699249634692798253079717777720659504127772712165606144383180493115801588724408913298521832207311875551969210810821123446997805260504712019921244150755036209489661630304144021896749624072878337938894758937009154885784012472097397786811456473460510323450192624792468426399847331773722978228706796664774709676342166003929488004792257248820793185236538549466650489080283334343682636060952744944093478679319985853110194983547671241469478911260657177875631826678087762651199122812909665547158818243709442580460471000738782755377309755965277913178982005965665928455411835605208999401950154288826642896982073095863317662131926940247899626258963956425074101771636360259595810576395809404857370570269466043468661343916988667412423972590403008843853164372414757606382216728176012454017228790444102997904417057846017675683877451945565551678136724005808281818092621965905482194283737355733654998117946376602825465555700092463884477272205456365049615868485871780671141300611905046216244897737692018844208927460891018580015930060274271969614947496531686550483259221292368056094618860171972391008507542513495442636794538833474827191153000538496342909416761620280962783066000400709125793188537778489980925117071009902046249572690867896480814999700997912414538334074254519174373997697826736711011169831314899070293587582960572407114976566685824200578730960887828676125871138587786122872777998602089143281714536780678165833992131758644281316203041487146229722616968175336765187092852669997341686794843574136252586865918168738535236321913514533854009716171012284148082883077311602318205424575463162503046186968997219178530089031289353418764101909701049825648274150009620291610296859928149729054608014862546634496780824120590684677449930989627323841185658572836337497522654183400004354299529956361184092057305841135478036707621135486836537155675984328939286618551626651992762256082088472459290849711859170255887724845597050465916076187879754244432938753723890528164415158788467819820878903352194988321896427940850066971613365352782180488255710161001835795088286554606111486934512318534353643620964621889430156667068051581150636962314673614414980833369953767043359375804064600217992330637162491157378414134002365212996978706242023616562137571735429744526363982318074016297497708123398930056534130846040024252563591907036893067519696153684175556193347459288400879619846267245204719454915591699186148107689858653407343017388352875776335394973686234340577499513208255768778570679776971822080117471161776820316479394815030823811854595724324407025239287412494116750693836258593490629376652245467504106203043796135970021400190419697229708334083378261074382635814202596921165894321132316001416639272954849634699225347353411720109368386929290951307588284794841259876350794604103081899575832004201390221823169735369639277337466794758322693218197478361260582311996330565279124657431069227977099253753722386697037626669902358842494520490279167505281780157338931641414478866548635975905491280631801649085653519975105571812534031480201619802018573474829433398530666539084415731546147786463999611454940004804888883482186582098655703293010004506230244578886078048327739525938340916689253821196758658797834095662965685451713983742523042200564377707844516428824242863107746612162580565840578439179785078417461357402125316056585409861486690226791365359024663465083647027703466338789726854209314638919575554944515089703035810929651491570843283536427231158077220708396817006895176015449276335788179665585637479934916303108053017570259038111450419482473461592850184901861921957676155087149165779064025916346818089337065530019634225788430166581403046770826742384087016851485749791909284535105077880040538617873528086015824697347258762967622550217234894097324412746956962343204510303402405608218470328780852004887744627978429496283076573935418599727050667608190760157317568852640099568606200875150202383734840212933227153247604476112837913951501395846582614057479567140630327761387168490073164837167024905186390746563163042093437290667490325746165740228009546556743709975048931917624577467234881707428265684682478931810367730430001892982951124540801886902961294698341019128896350314865706133069050416366267637271644986180765937516575182256816039422113516380838592784031244352034447716802048175290741075992904843651769289448990209110640757840427420361553458748494732076259059617579571015892534246880374562880481955246609193948307103780308636055068037499152329240422900331726592086225036041412363270168672407497325176353764557061649243173137443242518958830729419370713987841943401507126101349813169945779488209025760555949658297709357656043500059185504635054851696793793355348654464718266400466016690246241666925537387548927843560362000150858624666517715494358555017267755362438973051509673662481541423214906853506820737625064086055148431931987096996012370012387631723969897027246739691315618433590430085187919109099068612791780931325137831263044058758252248549493561902974561174908588144745499840044004759938239291553467634256740037752035588696593003066923017152211709002726432618057727161457449899432889604427197019779055472590851357327834210399133799181777334612996791795237801455674080470003581862946567807410645266840005888992939101377506050717404539876749616988677103641719190918973241079304867428515945501614617800917175414390068071644224914823343691357800449986947021557014323668989011698060677121176615593990092280186519689672329477269078634580334541502785149926728874149684991187940314857378056391983246049995756858640431902126299532947551410066483555967714363727376993530858499658925701763081347336114833470740528328719111133820891703354097217656868422845535474798544905549262391077398572932261851009016020068847544431637009272105632738535970912800338433339942099460082527546443830654867496416574449916783736119160478105689632808011316201823571284004528937680020170371330699544813941682687253178943478154999461186004610955327527916212165668403744032394787272462341659810010395990892311621367272409261132750479071955749996508321093765372663986352393479648252877906318551016360061670435151479346469266471189658453859990110107369301492463494817995568777101347725272147371220820158264814755761056775530354449876304304659896744208375933234198814952484150197338699578765957687925207604570352828174788718863169765649588261121931327765854854532817901004683041794183463210881901155578940303257606108012835532380413979984886473815877827827924623661492894842203468572811599089143765832358936891020574161550760363320171547502202784491014484122593201889454115422551801463197751837689695517712276345203498766977944812811828417784849458851215487367810064972310840439376226740387423887127257118199699603248826186457767627654192238779651963415803527072663898261294331033724444270724361595171972143101964525915207384363314201599295598079357549607466051050078366151499182162617766734346053897002801880679918409554449313439295655036805968801771028884080578175867299641569496308642578883067548007151661880338589883950824317177345444354876123887266399401855227549542247328485203699328013213864818560341148242565764199545447208482363405444420728427833556105935120808066251346824837652461064560953254237362502452704870748890340614759056426145603182039310710160428450614610452837221835434004855174575709884113630253894229076134205500022357683068810465639178186560567597287725644367284775255359500772229867850450227115731172478329287647126580063943196105808251906098738603000436846764363325048274994052941283306841253607049804573435804482236522485728992067945331576878248028918256060188890452170295823596882331328262354189582237641053224996043562515608145473795947284432289408805453595352540543473402492729888059690593256931276175997620515224227299075560984867778989428107409012327694619197954578218307557224295240590828221765928495267773612587128218873654201266091191963390684975955880571046833057351343368898300439893373568425061564259899156760195026731568031741011705680787656949991866918788518651583251553384095945497618527447124518157782521168829442953900623998235007067337227842213783336364405635449135296173291733928850892104746710976962236836795169602883045405556782289937814299584575105137207480598762472352555068950904829575755872195735146811571753483868872363052418113346678150187980283856033327084002533753336929531699379488474573690655848695316990767665017223713853725942303784426845841604543316442108427492942760643189859697556281934071096311012318585104487868745346990459696526161485973755899337120280621476356341178695621040344467187117929465337040160333407624385627196984618053571532783423435760106132034534814008434813626576725059338460366148411607111454640284173537962392746322941609431783423173722469257092096502099767194891304970410281714792470446548913488763436270771310246919346950072642256691664328090837979986556632001464623332692785879229183553739639012515755804126269398359976550080409309250989633355043448149877444327326926011130409600129733761180728859153398932362968415322695538042318070160818381339954025794697087282703080256624394895198540454723254913534456932164805279373558718568290690404250285109783151398475012597666657577862016559453690031587801806693848506645767688900332923178345754206981525463538496611234040784029324629436226638818520835903298499098008820282063405555776283657026384715611243665617216506270772545223247519568535606838489790919057071934291196321878990598125318892175194038061398975944503825989223871742777677584460575749655316546681461682241165477223976266079318382713496556914881707520889147041375734758573059614106040103535740554443245790693740254288472373543195126241396246655938592419461910905024600644025533840873696991591736083493601860166643709412113677264903683231637341632520274855716527456531486341464388478134922338759128766927968987536187906576895726860481295430985114301413042363902269130140216919667115928541230633560424509740729282095894171863020291467575500772055780792746040326086821753193008000545985882985696782992558411058301249155842945996965990479757840285216841353317709659363271463092923019659508820762445889226780951032392245640480522079059899867704717491306435520135775963573319770980175928354962386467453242975218377881973872685996936971203456312950261830588816463759990865830985632735457279092540257896441058382509529537384690699788420330742666411462020132281574374033265152824562877794606494605430295879739805384454857728884840454793581945747085865804198362355947338192028839195618244982303880883589161476439936160864962792782456839109279712406921672792497519970644524065279371441599135435796931737077763687593418111345117201911370039336941844890281484619301825349623424115634780632647159560873623639447898173771688593129597747089227278311817728833943625780368089445586981560691975176780170312991565387125528663824419890712962805812919401140624639628873469461128119055169107055852029945984403268811124598904196635508910581206505596482314508349023216677914058070822096996322851882294525176324590327373090201065882356346838647287437022921600985896398420586984881483297778684753434456342150018790682964100263459317785218165375850351709411872501119071234746233259274677102690708599926341351830023079447849600667034122525521481765876053007847468021272546066386390971763737668753264850831324937434832773027770764309838321257674648544773783688044947696364928572473837764888757230982256176640535699481364511062238867660508426366619401414465791403749573074561052733209395642967094734909346465029778356256045017621296411770910412390301182964509671464748505821961511851275618878611216732957913706188086282456969149998325121752540745198552343365216812162167141723408772676375773405487450433212271213843186202882069040193980422057699060859960383688490038754651688540505766740046289260207792124860364918990625612443623017664941051402679176166841642154808652118398241562692272153811411935961124661803844384756116408498126933306869879688690917887359710746332369425478408123497405348719495975235127447110509165591302963873011478335042088696147363711197732155808314343422079580477698899471231959976504954553305360439361042640945420216411049168742252000041061191736440216179249190125108666705483507123069513146492818835700702492743360355621978063408361160290496743840618016362848195510791210812902915344560470471233189506863645228490386046527145435889337387533559216960846405070903599225211854794489638634576785484221497539844792909057846923528878970390904110219312630752111381229919000981558813146815764089722060693635677811020087610262201102719462495605187065231055721701758039363933591868915283703863370377820933331638032990086681546237676783858034299146684516328895440237413182829557449215886881574122877027116769838409969962792898981864991819369214764976595298783765211112338421044169290352914249375059959049323084880495051686500910572026307798636095728559763986111961186550808817141689401459999342779288191697883799541020947038684974454322295076937238403285666556605854609008824862434615959760621534211457057788042622194251646663712447437258802123048184733379085508026337547503882005360647230343290069496844164134356484041797508244786648649576727592214247380312027727619103794312165478608689845684563580762929810946197888016738415073266379409627987903114063892631912010009830477971793581123555465144050650088340334507308371776193717458420203792788301663343695756281428695506301214739415517805661485328224883191824243743671559143922486528111355365315532049561990055218943609600349008975722558231768203077851989584948441918009915058663170659173549816420980924308799953938377643626181799200357320089703210011353435680749751638542265270442744072793212150036993595617129071485261988427317138363707587165283654112972816847787628990452149638127395905607256385946476325044413563300450880654251123131158844226402894341904801346077355491168553338470145008669482349516814575529526639467163851546953269799380063428408063434122725690038984881993230688788087235360182554435989061910448421276763709214426026775551703763770367737926843418278039470945950840984156165006416293054293571490004302443809585187865730260356911464389728074387133130927445676347383421243807951252050387583935695213434200230831160667791310401951280234728728334102757874310556253155677678344197275413610214533245939861792079044090440833845890826883202832851361498662799573806285754115980571835270522849488834558563647196478574406056850959792145734519930385962130179473702553743356935996777650795212315017802268918503874295918293989340722003107191044444456557273552404469852763125964221862935286039353889190868141814249735249080744235868752799485434269655538356859857314667538863518983021663371474740384796498388342744046416844211007290414958620852801811714313439929211333819035156982632831813697583317066572028848722686045820603936282645924347416368285026753906966900267914195940486689092364498289736774486167795784081150755862949017561338091202828301010822203784484374258994130773176763304286375864175543665295346233129779019689540573577753659691531666237241352456941801318421059614002925312206099614357584969617040324005679492422737205753984946205360419628984425966498823355114996964182670247795701127693244212457499246924434540576251273576077944972004033910149329269489595243545053638127141916886067508176766510217782148198475388069686259962344178002237933898316138062687190283460163059260265993834041803402134196043707219971380718400971878567481482975675713496114414876315252056739302035554548673269438325480108980490725805732164663973099629312249320675635542973835426540704650329996612270098538139699471298794679965710027284155892193668936554832646778567372906480652292405270530638439062243203001892377636133434457135563523623588017316654311723842133093840600900017956383702016427105916752635934665016113403141287836092429956508393748123082084766782077486126012694174557876107085945670125018237125431010072021021729319573266805983573692740996131152017477269454051181967090800836039602198821919132333201710276387543627970974592324941947844646209682997289547754390567314027961912114053146000128748399683318319717068062871290549119549664651412725544799929309094934684485977778397857154453833603576368568129327066600254828210993022632929241032623958465114375302654378642830967433336620472586768859325224958996050608481309802861327047683231707021095604337495170507422458031097271489960723707581506286427204827170090239212077149992843881310331322940391704597114088899191918120545287935764658774846812847881820774568293782676254975521354095394230174482310595656655957371827481044613566289896847441741919804477433468047256829402315216142531652770556899046016592797101111139380808290613650772934450222657076331049114675891159622814932585748976424399639981305645685660160311313538688772452475111671849515999858062389249752049102066660821427603096440268347925157096682794799890219719489932245596211005722906790009149598260084027585441991834377558629018628245930784297064945981828637270525337927071344300162552845075654361338846481327563746201948412973200319322563128353114613239812529833867245905671228197497089758562318620852011607787136079578716903008362902832412642407762099725921400268477549132859371777031708282870185318382380250984221999248809524318259181869023002676470308761261511723247760545042413122598384028159592227440896176233893730361268505020335598391995029246655811253542830875650048358070018064089870468610966327237837099180558342533776575786079884990109949566580045430369992701738848558262795573014037242675992835743100396317726231027148731940482238337256276298718290398276015209308289871234573955857636185233541541344611007280356784888223737602458327483429893910576031261598809655803272150987711228602487904526576069431500278806554585889374438909408210217044976993035676729591670179247814609634890612577229046578796033693213976810882142926676673347489875378835384296517998062070979746562729866409316294011040479934934005713316924550100203628682137451858975586292481898711311118688190857962410434147230762302424069977972613850682699810457541443375568727382123600404361763903853618732400250402616847875494252738055138806445648335353673059844869769983549519369994727156546958616856497926648877252236394705598886349127645681563828617456364889750675920891071995445321847685176813042486931317684148341678394313589965912430209088948011595178449601611791739888152990259307100144172714357356785594739996471727473230711243312586556735178312754051443663285878288992321826405449410336661786013086837604713509450046826655740610855370193754402720203378443473084977231579570202226666726375447218462177939847314080734910926774501241309915730395992253028698829303017297145695505575966487261140108964346900485979646938914996219400247472079695640905110754652842676057083418965682499209313573705541222959966395958034494451416366569692377065165707393313208089942742837152072469970317179416310033508071539492779225492900107507634866296013681451863933808793283585819645241038644764121403543845163197895662836924077206471613195793938789292150201922711881052377412129011643559749422877696119308851452751881098002855392852804516020455204790065712781733055193724675026890277156831978279511058963016229647512208472184478018333410005058986913612681496364342819654685713144423812207897152803415617572742116625978018615599701378389968668611866607962703718360703532785038926697586440543238933320600943376627065684025018303779554743121350866951364043966292331180418880189032110407228717000391927476754621575188483277006149922970694423747405500422502383863505815981664514640110619409694504290459090073254101858974596522885080716381756679137328692726203385610088328278667190742360624537819860772570747767527072507857167299579423546396798359204466822918225430624483818138966361034780209258491613177230795165846510751226150766222654674455927062132746773094841327997955802723321686652327684224917840238761379039452762525570429406954784524518541314395750075073314388851583757815000862892298156455911053979790442087692496308336951579915122503192973476126826400941609146999699776747100402811095201855060955628924912693721335428327358963405562635400533432765426760179668671981971257077701304691204462177074336172183542214190080079993636567149878025500134490690232836947555350406796568208856131903317140779090693441898663105526235603316022147743504406221026381067441890486325855658675149299003343513598563787065317100400354927151623308754966532145972736569000701551157036770857085498820494075642536609410552337301281004251429403396996300281731523731209260307342471734476075809211740572917544421479473705800378530991651715241151239561231059325275286355319777516886240006783059908063003951622819031280620226822298756636054082119364523684267119320632799484036633054107261361082592190913228790726672392542433673479153652765160485585585280636171780848047364404889548472828726817166515949737829977522916212619944592393411664634593955357677634202798935023435314887671975133607248117462052834661518478715993687135788067631694117186254852824415149389324083115651319895750998615495459035999761196824022687637437369948217077198081932266440731417380186974100733832630623913948716956233424419774738212490187762231921998584799798404129246125283103906796329174469106923209749725580313695452476774683959894163411421139029418427849584944794405104425695384461221302730399584937557122547633842010935921801219134202756746376429616508710823255955762855256513372047921825008938244301418424797598213760311598883167917327728957427208820551558073164009418491527526210014134167596858593416561191386214289781682395854246421094512366512309096119625378547508352626332283372447703596448279196814426151561355777882192504812242572862856003729949551014984920934683747811156366078354314174358541162261849476935020708277607491038493050294850680342731330734819280126638943583350227344430798501578823414263877712344641796977753480616841750913620600176183272615386174377890183972342138661922078746980491209626388603647181729522415640765013346889145228365364507508851336913997778135929152100955267248610536649259170982365218439482271898912866326675533561088161532795021772785176669718345801724875875794621020605744126067262847046759039181166713597209840453765560045719004555090206453177496660689922183012999647644215208946323669786598843351899214997993658255874588658621575912894427594029851678617110485990762956994674509223176216918544512325075396036999307895953316047046112707485555574754640097731999048770537513733889529315171400515017919181308778810482862428380353650654836791243724623932990843499755649620692735962508897921927517888758504004900768567901170123533663665084338059608742317847771939183683825811202182475246161850503069044191137114571066545995053727328867981363688390490937005169651725402963970387170168400684489467700650917612970011712941511755837878812006962860511815526507254276673299074460147387260570502593681419114623641783811762653820718726642539905081448388766411550907795379691212610644199712014339732109645701886011813951264815013030009773924279061833888507169179181713010445834694441334052922154733531573373000242258669645625958132206262741372775496236489718587157090312009928290790878074017987127367085077753889431130697839526275982163059528592015068044992346393985823939830842331656324457863960830967988040834994642399900418631735115402132401225089386356840184217098209904977605722598976887350393356467042718815273135023968502316475621112701243514416487965276451011423435945684242644812353173893631992139144230930578852610407786603244354757815463300365666985193753076214836732620190412638771660441285567088670913641959740516066295998349577617224548365648786902319133719730532439052886492380872267190003805374233169219866045467096199876531318157926841427437360751278225296258816464778844301619658060063457826605765684977684930162596773294710208964189916327700995769958415011985142454240967400800740108904830608796790734311337005159264042065782150848130194478421039943203952375649841563678877571346423265471280633744176925765555395484739895904823161355700160148890646884835554929785612371287132236160936897659490815229659078247926884156658464993519057123887752255897889292022530537433262755479493271050042316412724361841627539277970724376766551491506889972728552392702647989664918633996539732004602464989824661287145819645473399451277477635694216307116132138033070763179756869565081806513337966781110955725501604805740390094108724026145201963095712268201769538450656164045725860244871939612368680241741022415308934844804848512912801811548768191724311764784340929818463901873420730913991672602005457183442850730948911986692717798761308548112973223584828483301648247707631862073998119086272325759669649965097207783913230301091920849793331753395627163831646488680101611931054839203230713902324946453212561624366129404474859613916536449129293420239820702628316431639276733200973577988033623220584922690904588939717982898794032383503510397517990584143948889762561022120294852548411988212727804441212236282807151909731884274834051842665133817473223045748891960805177269673045468668594062278937229046484768018318074396747534430137559899181630139153117368092361703863300237070359669621240548665509693151608305956802692855633583074311455963180312950211650112168368940474900905959756527417302110970764454237065512567932619978406849569384681442320387316193834192015468052559445792472036273806557975921016999181460009725809066392929809006513116154592183471941214496949507549288828852263048672305880534901373296471063887256828217915253164126901550167916862645194722360571315359830692207185019359121645946190723132184485135512527296626383611404468431315279037002443602831745507396538755785758074264400165407407113594357037141806016120766730359592277353381246521152320767676485630032891312174835415861926570035935915738577709086521151957689705802217087266249089837501335664792770900235491245019307550817591600986311991426106261179027791086286574296131645231036558111616446917280879243568145049146039170704962685856009841219961030468059043581104485886364832393749063753438712223882127708185973488101404573908507763294927633205457833477845522088035799656697302084784096725772391254859239726558337482513259184829271980581979682724074168883034567037018769009661060811332983546014945560281304467169478060896250883151630802343052329373743335586739268908767865878734183511021187897200241703660701963339213456127247304039460582499372522169532182828079745996101733921232815921023842909954984516521321872401159600499025479920354401188812504016595439936257571865060147306120745983047543704458161614867537485130941840740665491109681848057943520801811868296640280430451975375931703990319481988715402278971256404985352271557568585423334444319997364600099581441021778643723466680001166730228934342121654032545479744584970737326479492243614815757110885067359535988584113552138695850120625393132064957096673350171115006429821291066854686926268338484769602635644915506587899775665004999910796423623585470255838715610813922641090675076726965817965898521769995956407376492566814673824583101672501385128916949904831660839063538426781824477276406725810216837627780688434883010707597465577144660300711224442323584607855256364088581124394401431613755279291753988857268365917852167526919286878584448866379150791581103342247409911041354631146861118585291640132303258951351963239663371938340239187728069971392882646775153015201688426136918305404424486824060525388969920107664656134925659915228145401868888735431186040021367141089166291410412795803783984579170037069445560896497731533587670267583702396513299306545443448985268101998936500188168342825407910867171532550052921088204619852766710847128221240128287163802422297164820103934669098768396200539262825483529970664210101480515292001325497187993734397843844329148643314899212486615603144235506575392708265893995372765032623435653029550545629127677405134548583928556277768432086540518465060775696025871021145863435695258868646595553098552463504396292388598611141092424019818173159366072823812773338540611042781196143294068881081133567480673142739760033555720377923283593023349506898292266384075650841142688733832192145690535191830535539804815986581025723396360110683196995477185231791316712947646166190274657284064174961819837682711768386974733721440172665085331823356360176450205123300439891232650432698645166758871437915881303864517201285366356169425340288997653905568597212864329316511490604874509421955203837016128568380502810152254908755307435546678663542635135023729398119477668696998603210732733736425302071736676816700230084684281679034617124237284909235692824831639197322905009677077740627438874157642386041338572324062608013540858768652863707878297808126901644266524940374533215641599034897708220185253240723604929523507854590639491347004384836470372896230938830835234223081212141792755042417980793136696348960676141782151433361611841317443822711385699836258469384243460648851685818945844155694573317665074461049015077280938032987546461215828091673458372363020487714377440381082004344134542981608768958962964228663171552729956329001340076267467638907818146168933254083295671210413449112541733485822990776627070800784929476977880896959297733932113831744602147641956542331448344277781507605949091442072997751814935749433579051397544332647548853801056743859389935767829058781658614332611141423359786092519483043154906636783456836521565670278052800822799277930820372781136339370997355900322091489015007317305620466879441968893534993040987787429181566939047066907633091457420993356659317074677859159952292390005711101584355704969699481471725374949515803428615849230889845465302282725021946873140426268261251429598384038318610651678697236938227971583522414726579891711889188597862869196277466615659905170323200091084544374530628814617240527316294135277637771767511341846006566805537750561939387541536571364070922708636553900278994695452452213636393944376118817089111500809392018335511643823335416953415967903633348187237063560091188743548731627295613209220555007180941588720001121966837321683899404903768251512275626859343428405744450240691084577695486361293683495030187042500723637330308710624469950468778062270588069823827193513448688211638408140957217388289061746896027305222062142702515835629706611505878684521833173784485600961032421512146903854885822010187407559713633158079267971611145622154608325746223342650796735807305775449054501695110180503796273360974608370377253891921832345619073093968594727286986060552385301313126320794194104278923683113567179877125573177496988704290218847939041979924199301086595543170588729291685356137357290187712910149172733322385611819197567760575367982918394591520608626703968580970352147758300635201848807901110658011718993936507845764565374120208377498991583602428671702584875929017924138784776906488081474002945140595210189912499147536819844275844676733564149729970900409598066837616077032545429816354095025457690573932938799848790092838473075466010970064953893903446259998779136860315036094900101161486692154827760603773898055797338073672939545766870866309035317740640392589101166745431734643338887184591417917440589733927044352400064491820553739360318874837160741106520232999315360537678518915886093419242516276954428743158064250125440902286529935105201731681307358220601070249216379219541933007779123233855104300468768446866937010188569017881037213390507062655488770050516470327698672424143579669322943649878376927544847560315872582091162105315724579033479147283947066969025491557226257821064288650058166819393504630418488147961813063409580377516196738186627366334719562851803931613321931650130665350421195274180631542399700780124240644948407733253884067331958571565571412881743207425630369660755294064311142491963130503796586479342538396633342533366151448360487911362445284104181702645936231321894169429415516393798288740385636799015291142799581439987028782859213144934823804632019475876402834245403189256767997065571358245786958711143579989244258374754580479186416225862466619055847926678104594224407844210511653636940222215327488484318927043914412196008154505136568396759660079949694998702249159451325074083707943680345976138398681140116288817607808103539577081396459042305196198600258366824544274063258323935039912524800273133865170103387295690605937194702336374092493939540892117573890220515849817623384744156568895867571182474308223097644388858572263394996874198380643659729965732443937040909849438025374105210354861972305051675616913124671465890517577514232855951008547312424698133913516347549783399007020695817637044196597728025076852304107495592406012622965216286709957017038748984860595190371536991759138102739164014154898300605184247457353899539656092044908474539450500662331712096333181928662046547522433298221152720559170059855938743659008173797606372163829825421130807613473822141002141101361432314352165559584862255123359405444783534108973337963396273478860147864793270710152593912660064702071098361819172365477257859422808935836011173870390264157533558092115849028569833776805575693291199438793663953967236509286479382556590618703011669734472509525260894729385742745937596428181930375785858146399588535051069888093943176010212807648432749864532236509859627931131379270506343725994289542919823003507014716864882839057651286133886208257849324359322567528198365345934287845401027805890571845197990100665038050589684673054050430072655529744190599659303847365646376989463515268981347221294136574521906956280139696379783513275631079394032036038483475173121031942996824345500632971429468436172278223942225809590689373109016100779061363919331004801734525757018894053266706348117557499262683826922634665988447787971258463181468160348145617035300641802785878239647386836941072164705690010750238190032269256021224839823550310487652107070767148955320652040658199643429267611720887729450632316938432920196812339250531872670805462254808299006262945939849169737614076652880287524413292767679046665663854652018144757889620381524574997275218688885134936999449023400611699906783454105875458836431496418832760996833391833413217945515141330640834615205565738063708507298676756340016073191973341363057195203210787909957630473024363771695490345947827087343067848856622955119693440713533274159581910187816351908813038302427919354893244712482732393024843494476251165842835252921572611987517481461173302375343666986806271376770976916381434771211415875887954693617706330029811814956174691956292606274848542869149433435340346935412410946210341605101894835515608393869490163441224295856534100410045322133177501211819611140479402616447584295893197825944357702748792661575608748950611675400241663601406952483782126351043579496649921995132044490662586279761110434298983403491942815137576964348878000539316558907982202395134086987323994208302673680384498970614216887412415539260103310059288220020140250049428574522706638477847220578414856962786702047707785407031668913452369378869985306090161818480697650319564913073103093584269037367925265479852684221060027121254094192918061589234639478179312032320761256358381040108961431402003063391624083547629924261136885153753008811887847913784301594279888168027130034081529960362569404321910960797038782170443506264279301119806467455900165034262993724538385869859423849661526744937063308246792232239636074714839834994512610186611917253187964469489456151721878337513882454139714555789171740938437990137409445855480637516457344873321466316908023185462833201208226520810589218008105940626031401464950218114656171457915907360893423148942115911519983052928646709902573292501935282718155875596459572671363573972851163074711709743029339255571161850867667590278406783148261043561175730509149950272810850955938085577910664001545782637513816340194256287435673601721563850971688696817590593404745610736606737961341373600171181748940997131464306881231447739933612820447037730185263112318536276054071160400578940036352415036893471597255113358284184579664842057926311410876847279083748332752764152895552918760081832713361259915278431453075547368096661246442991977185814120510850221728318298206385133302488177471037283329729449563726525667992204256592729214680216467706123441938109895336714516537561616556425465353162609191203336987713878975462146085838971610640597947072738771137625177069194581314984553549271163504904871328410471707409197131437452263264897393267837103910376551132325583230530899869697287446245184583671836743634748830670091123243022704623182295663651215438782810630555631481307573386606424835527074518819450745144039917166245619726128896767780391002407275040555587428823559338145643139365777657421148359305718005692571244206129776345724876534446472213013629007558479638754979189772479532209369838935244404250624465146209779203714189071817870138297124141347895951140377219268651874428558890038442719425269268626007192196403209618493560756445470548852505008906937421275736594883662983173306261986842279179590397663344207155737521177757610829986499460044698077188614085597111807066396017394414288654428529002229735970704356805473305680861966250395247174442311761531391071349070789743633496706355884602704876667008802820239494944303420174660173072247991938737326050347128585210841130989420171686385733680619832451118040356359150455236221655746773001969615205053235985775093559136761712760064210376058935691059851326194621190756941400153542348894608014806937151800951009664838009369297767292561899777998114442164000162318054713676661403742884079266024093561444847499546620283667264639211748911901582971407841823944814246676174095055754503339984160149155606806952444221311541627985464477642825287812933315724207114269807024164773123578304276727545190917558058090883623759863853301889776198286766643675472745990425838596404471607102603074727812892000783617001971478501267833476938560897013660563421558759538737275364612366897674967250823406235077112121853926293006386650702906896846329944532517608481624898310508774635353682682750805932868588866005707137203337087169200053215905083829396163039643888718373439851591567552753744264830724124629954450811264665343224776655858718432821005839647019800547584783427231508490185157650609436167005509016755898804301156918323727100582408535358668657890136618593599018375137080842819945807689391325462393285705815456089864189397399254733012024725727786026733442643738955623315785336888345166018472862588416187913899619287685015045164336216653132897739767057637828221029114410202148022536203154505427287628457664640077385747954800271610479031274295818427170075395968116921819977534388535130671601180958872233435794057833182259329760448372947921403734739668804084886485223834299127632043411199384384952836062388380767838284402241832033495175115126718441327591236427705460136412460155166605143636272608032299283703287716328413558746754772362380118060369610097178722709126835360855206189584962926545367777711477316760250221436027745643749390314470752037694485596436604813674054189432559971391812890228176778004476281946030995769586512227232378937577695648593942768318279590436184984148929032092794156136004133963152072601628678065995561565279137904985516302955533445069021546797255044028362908563398463500288955759668331358536029287603019531204906816080548795235708537236394777763787163135457552170097051456282202530250516690263421344608927877551767689142220627558342477683504062587173165282822191186594133789894064607900990130781365829598968737669105669366256082228433877502335329195982860977963859202478689661225723091617359293287078768015441870960572083741840208106958842665871098396298742385149297907560124796966829713383843878370708557912971197096725341028489352451181786231855714513661616896343866439851559761928533504135305099400186777699739924168779804886080847233145786031851483147016492223817305673847972469975466321180825108570115682180382678506204893153540651276431914746780054489080095346909578687504262498524442006564221797177652428428441003793429231867735787555347045434080552451027720674014410970488089854700597182639867211294544444367079084886487394987189440791172479026805846422892754576023392574107740983070372145743703219477815290126390678636884038843272293050079753193596985154490299892431842199253591176097689701312378294452932315677125427911026153354237137085214314178432345507155825836576980476183534421070769499760296530374709173080112999571033383566517217662448707669362834801426519177624937778023035298280567127816011692395082153324325291960224648183123412931513930901013559020385907739814796261831007865262107220140123866305776561885757621117569371179288376791211148776616146461463850258838009835560338954260065384560108222752550014380857018689640540017718363766203602555162986968063917766141425908168865428169242358004675401120909120129562858582294528828537285856628473445737493584251374727503995073011408755947524699289681926930085501605276047319998262170288902594506511003890911521797583524107587853570325141646467716667447264618938757967731043393302259937438117976135232167436978478773244053426809443701784493585671004240593151986925010411285159712108416156469099655891715073607123918826161383103579068750907888490812562091797998584998707484437488465124711556536038725344671345636009818579785391800799972659577374886265577005665049393082969981483227038594891121457719655314669501469588200421617161110691985673624813934409742421912141889016496694435825558395993975716649231731044477606722699570447890729647800702750848741863970382069943972401291617910603615289196581389580427090024875056839456123166064183885399713958255110215548133184546870309745576554750742557334516695609977171801652109190859350894693979844749416435995239035477209675715409530969020456067122213976885256684664449585239037840268159243790513189613460761415709830291182788543714349864236716460748671049510623060575767637402670472616553175524733413081729795871263968621293833046007779161353246172111018601505633203532214584027960102677599844872722625026173643482224100297608664011019288941245990350388393645629401248955923031577999836264684300406825360755495420582371176872774382509445056285082449098832411943035424972510808301371554015678254204329032572938604361472175551010657263199971309519200955182803521339613107404564652507267659027018365286460127123542251387248104092572618016696849137576290739089503701529827565828779262643142873572364777851182488099545502111832048047019884844956576410889797486545962733081298203954945747354547500900691605607960759221559738089333134390362146506521063730130693633053798220295937577059397319395675723849526708898791486279569140256260923228236897413693501413133790762153827477964399487160057691965644287565207855303917860309761965369293010353575194507768809793571692946458638319786170087949048917016198087013247097537806238669522369676202393484549144369433609646368428091415446637702862967093151203489436117023772365904717701643421697830903959747197877207634745579020920268822014048384866781558533427113634618650285438619069401558635107823913351364370017769869320750028342030270935826489659692961881185647530125261193236621648831858285531524976143390812949168266459555016422081754127917590077517956749438658798594427952292380756336233393539672445638261883829705966822028932392062376796636677793650328912691541344521758656735277346641091402786188254756305744617722702049421356651420323999954655356256825448983974292407439570849259158843900826647823054182892425158025157879193480627032864341125245827012168853656001884612792225706770375576100492649285965927729923193482710049483440482387599139646637612114933057107040806844323844481775557959680900287273916042257997426764343390593945310938802816657075775738272350276429173681200524868091508635462306079236444690758024351323679241253866056871756385606432268431955163634151114260442513739449772637221218031536490154213805182111139071547299770488479238409630995890168911888745448654879887160667502157288517971162601967491740271779248779696804903022867009313311285449179737349319838279432299730703495691219957176345265585037426921480888615628776610758920212891156252961800395118029889713428105680784114887571224035199805648286592561304820265560208385722655126927482502518060700973987778992618836768425486659950421997677005185459358824079372630096289325710108226126373319448603933906835815971483920957983746263328366672140283010343672733823401540375678986858235622428589724730013860968080827296420991849470342339903386365646237493770455789487923361638684670102656265397765179501641741845121734051928990729021358386368556118782711247057213297514819836877511188284404090242365902794639574947650357799207465880133091247565973105391594246587257441841028875449118101741888153051120394829789021199570757727305259577926181452399555984696127530478398996204641586529454248565154140389500001571500621651599791934046723348833977263604821063268982801228921693416466343864332004650016208878082321049176464391752323699345460742621604351129196907519914497062277679011076879220130050487197151788817894608636320880319732224084258687123396421145281925115592528084649651854948169257806454268523177951417729239780793892402154014382428752504217194787202482733251065465794959256138136209570063626106949199128381602679855136917799132238336246602927428763997797547964110707787998203631048648612254418308153693683668184498199556016756176265873838577086188345031411070459636468074736542390724440495348212416079094184792770005126618260812820601497481097998006410654012912002677932028081066613541121394966124727947031181247202281136078772258142251153377138902352061926161155536365591508824481909083077774239912019983496806638380720597129877295221161206107572573151770204547679642748369163675884547691478170567079004055277775024269698522824586276650359385847669891080723204790979845389855821423977269447259753746563102225219216253685641698491603970109740701807191179339980782220976555067051038758734585431670648321295946287156745811111067851289658836602345498375577480760619951181703299909063038433888028075777013127111637195298708605058603794762051105406436551402886316962374260403757906215007605008446839957140615066867185484018172935502949184609181683884475568925357064619397137770545925299486288632840760963983155611912013845232433132946017020634854001417982034617962231423252374179014341994039149801521750793602227103934807408784513376732261646928160539145701886323036177980860759421724237554264027976468082495553104491570061845894632802752427138767369103500453910539825003444114757831010930300172033614328257454862664248540020366540154831869036540512651506996296838200535849017807630633821152883577867023314509115091696999722038551388360966758764364381431170888792456419280790602096101430766823821598347499918683898319149525082712427927614593795680308210200216877297036757499428860203023674560550901233696262904499834615486873602145232506409141629756067725095489232521939110677564347877771732372801725672959506387000789009220330986178823147382678620173111526054555596697346047410417563605436301494080198919777988601768637714722959804024551672092504850038316308180136932055209422140178427116810400253698952730790430506358347493226172016008434575365981912497145256165497539157576416389646355522973638705124433831715054703199169879133738434481320400993264771662258604458347679281808127457266997277533877398210741276306067385181091196946292025588540901428237409943111614433382058672934351682372068367004865091702131318341450348675304662502402499791736097905092372829040310938147229974924280043697491967792439312138404914138474910872156244289551853253617155159366790235513442015073492838897038507090728044263308091088438830740831442893616792884389235438884697869269111646495362232301489218042868887122323765953305862416237842736149797450470225405673067858014193442498497316426527601015137183741250885320998433438524810036922991526951308630698151162341421013108824472189189277159203737325358048215057550083296550583334674234556974449692244104791058745277147565155744660585439082036322721533000290109238590348444753649440063056233438887849757391479973833008579974990272181053295896540332141828340536911326513125976950974301352759798441950728252304560849423075535337971405118120793759434112699423386660365683996084979975986888999147856363958758427456327336826440158501892234111191455450559405563129281551300683801280179835501253841509595723197598492311198501757029846746755878078677184008629939409714839406766252467996647939004888079671489624189780796158690576442637316569722070296755110961900079720808836160395238500643716902618925985598779358413282383951549892705121191489435884329357231232347623738177467509769170001357711224511093222890554564364756998657082319964351556313571095494484778417399386855921710102314453222854638914371479373109084811345448798781247068411893269588642367656171751362285247181210305952707632623461297267048025491164208685716989874345425836786232747898460583107217732567662101501277836808463236829262413644340168062978768343518776871774246156609792995858045481315564421812167978030338713682170542471240784089098657024139561102382158006490351450051592788805545002166169339583428739119387507455041574124645235177268337560944868406366756456004341798744488937650519231726832544509214095677857147957148566901508753561330548116038632173062271233914386665889138093562171296516326821078991441659161842115406212566630045008323106536377120765650490895324101217710535340284663308871954138667708602039699585633327965534820272097448830211303821416161951528594732054839497173813704369334011483467953627382971037836773954395201313433310447718108374353449386852282993201552770872691641552793208194814670390130598521832770508880566479037205677672546337280700873683380594871113797418207856334805691342610620824450544408454374748224802529131858465345123180449465650794191831502408719513242708252187780216946144756604713553280042078299960276788316791232482141456654469279776141532170922539271800345341934742903299700059305595291896523396857510032002897525390130166865408624325287612152600111621126960897147889441743850771073020171246071029544159455973890054447101752192859914947389284748551665158328248627499730599370527166375184634803542372064557060071260541337325147162475957459274731108463423439186253168159020247183227954020152386550525106100926156380576422594436431761555364746369976945639170625294221953176126600004150479828702781460311806844222667945378897289444136268207981161568138099602428459538741195331482246464701859387533116274363161042980261622361094313300242506177667097901981502854203113008531135403655379924939453507464765746314700462889528076499161370479746476076982969769151166336527786642841421979093433543914577794387455996044630351279801257991995202422208315737312366788074018319568857725523420644968799442624527361290619654373267233598437246170148886256709812105346128702225895481676527695844152245883455513853500169430139029703333782684232932759737833288946464652021936753591859306876844232272874290224963904539043455059096638632013199231635529247691136005654753093148814316544419892859752633757966591483754777305917693370597543942249072708419844504838304830787285858195446099287228150827189165018298181380176759014744207369786667840722622293462830808075798570300021661798473266148203899395822806467629408723974640890763855807578641017131255148620700342124074243636182177054030603314758496924479410338955031331410239333942576556104345808817594638102033385776509161980795043555693046654214746547560430126780614551609789681662735633116315856785803664022905343937487996433081949902605134293835653046181197844499955404291312879512846419462544585339661973576344241716733949397890234228829083822184739619275945938686007291553823292550765598099246028038098009090268632333410313993936192323969128913466603708550731197110213396541152054241132000556647203484760672386651440627923659807916036372378110265686043853368654417170258297520038004694766985915251219885750284461346684203894708360510877525126922341041573369590716630235163926355833705486269212731033597492402837885934726261015639363861709218855562966187805005311280110729906848303041477468029633818638853724406196974024262770129870639818180974986183646215288914402028410207815892184740769876350585640733272895419361500308538094530612977798304787263440204610460052573509201784266465302957788101217743365367719025873784265019519784633134987098914082117881615516273324059101865202904271376566306982874760267414213647673189646576895530372848587724801349501308139824938576215441374415995384373531542890689512541172883273465653938333240671458698780699679666408791459246223469571187158251078964612853062473633452106781482806192104944172224077268401155471737941207175678530904486924619764447500664931703594574773423184361194959507928671019945347462403410318585734268464308255044433129302253794956959048102964877377919815772748185590598530902999630350407649542813067416537462525264587341117180059440082481524466242115556331159950193389395000415058843808705880421241934742681054400535875566934944651992526102685950402746945799150385643465393373922272408114166533261696928619202873648431623558146672578655879922844647644548602269100711576788606066834382262387947371445298641122181511603934605192413860685641285166176323110716944399461829741757009711453702698912460132797836153985485698300137967268790633228339398516413318654271173009723694677028295566293778219604416991923272817331083410798487687424758746089117515479024887550361664548346449780960774570197623071956166655010938330357370332868520398968629073334983590452877416487026976416414192794763921190936268846603877105980961729152612241592393538955706979848795444996868750122739282223081958173605682690839908469975376102162422631290624469465064909241300561684367755357555229547812179189456326636264008829644522358274294765858022859526680774752355107529204103061794255932844499646008261958318974575879057315258456696197389558761538401677970109213921906407908823700232246219836390074569786037297329916750735416840193818252127828398040746527023689447590547070990493702053122320051289478320976682067118991111454674404440920198871400237619371825772233664722992533417004473299845671887441581384060945168561001280289463969164926442289739298680823448495304544375813113003487798510136147742493856964697729974483752223546156539600646533760401183684800696230691615434970278144346549820388484267646928943810669316153582636780944125029023374055875841420206801137201061203989741357276672104577584642760426618856307927544189729222744221211201747767490331698283440963773733016106539206554515668963043712942440812069003768659183073987235878288755399818831335464868482332460280873806684546865926671823986383491159751771961455919657011767892663983845057301328793223803153264199310148152329143773561543950132068254353766566288089432930252517394143154786824752471125237116519419192796481567424324265226494281201464036600571071608705948563140277605741441259609296300048487262018321509729446518079057628442050301986472796816965390745350579617490411244496223810430414916691523393040836568479229843890650796594828854337917164951312288006825213482037061173351992023247126510328168443438510909687973171451050053102558489439574028298876281795341533502698356106362406891633479711620660103150118717098399640038101182187200132047619668555517633719472056734519354013929608967545023527787720317293154724697794290787710769091422376775096426008243096000237947968579918860384159799149444053290672185674017427652439974626569992803178534138694921115670871563766155579620949918234335016908519616959833776080920240399583983903758374573570054844649066383902170611689763299828077536851582952870519816389575979608443212173895906508525135150453733771358678528618910115263704241868910723555612080223501038093017143830115559714526096479887282023725431246010695067042415964989325183586030610629595838446735970747622787055366336222880452993140821891783721437899753423456132824643343321413702213066887665022376812204815839846633976953495466748337956213513252198687955756019180486884697540724028713906893778747346942926318614453018078367986151591654932522718526862636242863102888336465768303426573807528999741022818667455232452759563375625629036554355952492142689312254241814630340107666703133053893131190202037683595702293262038159834951351275325929883899489390745593766771222162635735335053847548616107945941397836332571875825538289673985087924930308209444722141421995633640917006821726305365942134411313018111707480927619134742752670492059273865031166295912787924124223144345980957012034117276655650285578931145002781839781579328575067350841188709283201937031313534083360188167714297812352651137402159313867349345308427278332240058367422969157520362507555808670594935825076565460135805456500116204261738059570301237110824338299754059198672026448950115848264238149912793556570725554970865741306639014605881625612894558223274019407004264681836567815062355385619158344871527709848585659277065510194913577839419830807267456236858512777698534473274886258872115887307252557787225576083051800718587355612101017180371069492248996974891778023096344121288397935591221540267352785199780798497795964660869982969954102974647052895453747476086238878121979090048076257726388540230432338988544035861938353739270812661226534777373691175300004127386896553214270244124424416140222467326618808234527363089296380576670449885264317309539832925495683130814008623125626026422527773055936733929325844929409175126387746169491147518997108056139863793233613800047920646012822493123192740556699175340872430663482029838089587353819390132588354259874697378638813004766298761812515956947264858462279470305696075747069074668691869227386244222019910808253321683932162787443324201494601286988627307202553141646087938223318123313213832746627802238166509009668133670815466867149218097405755736439521200331150928424794018552255261116231829309550450857915717208982092557039623329913553030875072681299961405875797153398189360001330011083832838366560903514708018353368103888949483631114835586474213203364952985253615308133975323436194228592526667376167965202679634911335249520959697452668364089699231651285575974833539192281723011112983303944195442496889309381944344394216673836693183166617261470833740276861472027681366521418646597744246824218706831839627831885196542127118261185401132691828365388933119216987170720903610273537596704789581121901116483247510270516015334913630679569201747307956723824553492285221097854458529689656102002660457186846683288391218029007994826582909792061222425445755559110390331426597795098246424502143859147357907864845746869052150707541465370184587507991754994920024979482594221165054316406185463892083838045707103398755445049869469839731510398503629370824218034959302262430065335497124117785170623636244158155219720866623390477218695415522480215278177536663912291931691597532033045494546662412289443378425542864356629516709881924564386382357968690068071501193603361262568806714260999057088702832697360629999201222746432887446658900453198486680230504282902685440809046852463319170429473164982038986717751795988679575463515815387897903570717292076288940185176050611285486954285219552209292034804527827087865668019579487348653203057984384047346261598104110581453666579097225978080028926668604616355091578974997641511076412794589627828076852136399758127077066792542834101879890877495777599398189934508529817638963710790392846126260846678285449579738971064270261435736820558492168134055610506309032601387196221417872449288081194662802764553607603464491948117777365333445090223622448257745329217452665424192104741423995232373825533863190416180727662218144022607391428654093730183362727505840891426238440990946567518229070622563099522879058804233116743655025826383480896118722934154709374038488519271096294257998494854991508317155788535598573378369096892137269799338086941603019763975867586145470910213622675596656348543406900214764222939599562756912982692146135558256324791744443959155538348680273452693352770480542967001341142809117329767617557794726552858400704605916961259863590307158115403845326451478441997388101836102132595113313794798022364714600968501859839104785322457329704988531444888176382668884232467105705382355002086674327631273038061088975287370385262894397240990097918905482003908462776761497632149142418824671113256446155463605255427669341226680391420750040513653407034679579978404934064982041243714689484532101277788040666385139072396732941223109964884331673022501146445235921035716140056276236208228406156140482672986874229816648103411337888992630050829353257677610350898024516631720238609990034047130049918116923126437374589959611983843275622040030793717528952248836958038519129719394599442473400875825209216595195723927607814387349942271602333854104529243511579907470393857864999005334882301206164495775880806537875747503917157231386468232684910463514510234475993480960453133932187055794921496342662375558995975951666342075899773815972873922671927227696005937554514751705832615396478719646791514937596767047756224477250970868285985630409791825642863183815380670564894378342547416638549568100713185267979223256128783962722280444037792825200164121082048025578544204790822891693624829666903337651376481478764663371036904439943574705277725858084486560612821285391681718917922414030423731329432939353659565827392649422486172262592899101918404602804041571758763698936440391556236885222242485166407496070427830271225329191270239562518073424575735947712277143415761826759891934891215950164361148897786842424547513434652599986469390893204855878247691647133470595364935456089163129016201270468864804142006560431392797719701371015355394821158163613575833920222162108677029546182403267009518639573909528861758360304563794459517642817610951313304529283421381795011739278505748409440266568864147094168326819628570406660912776040810539843556236069038646575544259900107073563435297350606640170203739797910646167629137023718154794629309942935106217703469735144397636132107348266623128217950644842195928121606270230725439456505598401835148560100433942465221615643031040203959311521802149020916533599154902655874054174922456354503812404947552978560284298999195388740155474451582823655523446449064309847884015077500290732709882587839305842719018006549721040616802451913817023669019304710474941414576389743483186545597809258746672534467723897068953897627664011524438209265564583380337052065534604974612778988753517382253384281238417616346701510921579443353889401738481722059771678675129474358355595606692347496210567600474984960413077855880427983686519413887898519329670542454170816082433835550916567699547206427739571225986018121694093758623800198446677256068631817264798730526984673818853499442998033208745829658927625670292946772724279806025962841316045967839389514476621636893149847304183920823718979353636420064016305456006373737484721852833839868517007454530141723761135567539203854835250065652843724072055981848904155094391328750554212168860572124590269717737941177072131539749968724263736516868919545936430234483514455377505991808367129847134840575324401516480788260266750788042708792841865093616065207360761345515352554591027662173263243298824905461194310753035567600537935526579095537581338797922486410354589206327732947645280168909647049913333710062045824283288486026267030244234445154781744811402915597379043659236587532031077981620563029063099874547734332263627871793985728253484374930029528450471503809607981175800795562937560362247315965479825703567484781209044275228576591507915121997579552242482758266935095817336043301759842921406248039516154023488067727982759128730563907858430365641280787630228267769980548468408613528941212582126854790072675736158406115842806585909814740437152262859424904183867939625282323048634580776409469811022177922938458869475477705958768359986591493324461845158348816870768792057210388131688309121841439920597868476715020910124685019082047891083706457708929902981838429029325551173192903803525792727157182588447221415019467131761580524018296638334432185813025569854333856776471572635604022146510805857067093329346748715867607757366780579441861009564816667885228770577757934163447856756147855199963245527095456587560173701012295921097186682699856449240040782454857057726829970206455708156770469995623206563754962868688829611438350328046211228890155276888338755447087669083254179971174683750371993381448206244801346268889925620012056496380930926670327916322361733457132322371196832165838551788934591668210384289592326649445392553218178124812875728900624507069613981715409559343871455386998854856440327184661202181076745057095090737110330073896640981691442628066898130101927043864177141859314707829059632229917108224081843843919607669675092383061111718208507599052986740313803179717994536243773052365761702423940612052646450278633443199019626503470593596911034440982462550127395470158282565424247409637106186048776898820266578546788360872235020067107396326412057758633511571916341073114182985798332336131474518077834554003678941062483745126648964419521844018967337033077323908558238490723569025356392055101921310152455191500292133397410968337221549084382595711180413813092726897636397634211612922321944285882178102884473477316965467209839467599513334107744095389738912351033769958170015743001777614253985084241630201764065976564866033308839309005675148397080083602738935251106326106154754572066019035039904915901655412455473333546521998275576703529095898854652208087940479032317143805385222776209845275961207531007725448638387759128366150920423130027417190300843152643216085345814456270143722440660814290470429788381088932325406554196223113981053818457679753459675370878607018940870425166657672868644291849143455715364196880058268296221065071172045165311236684285365708328345502568697924913918570014772982309734606047999681167812460980255290872705554467116915670705778986257791354490665390467118305682970521234320264531401410700859686931781639721783831780420375349350869558401403932227418383385088174179129618401752417778101811526145839642720535892225787591074646733730890214021733880709990273476376521001166534258733406983424030839233133349900517410617457117779203129649221838147420982155350399023297233774771238267777859484267469326680980859185064474860764436466941090953856911833188464240756635116192713576246794427133349330918184924668336934030756743972074802886396200360328415162209236046761333047036210503314042682705433887050650909636588336505730994034061090944766849770851055985788496488478060128334933718789386992324602761219836412203745506317788327663539473811703048949637275951370834384137609524913137983568692285062253955877318293965435605095950793307677126135394681646367278619172910466819117009524777817717535893459655868861535122153769617613367110673271655582673169955684445804695637779961039480042715395690929035279258383974167984207203306560546798215196342739792479048589008861136160208231612140371270444788112517861150136701357498317030530232683446950323144206894215269101129398731171790337147689213782960225527362944518240834681234190203541860160652023784476371114650809124541845512041307572962850791996263936561980194967332793328917254467405268434010889904557802611528833827204565000561611272121757116585302312074315037876390740362676299197844665991589813931487148061393490545543461095586163982685581918839269062130653221386607452144659642839290647026931721165787093633722521607596384343999191812938288909611060923276293785993113712635278950234301442746050335859553817907453438889688857297084220469500853508981608034526999855041037604869455514621513486319710382495210465103003657824938053440989309923026289737360613069845199501901689453342687406104134654030379077637770676959057712488329932402017824608340340997368246811159633517970375459378562935885976144757054567007710618240233235521385011657036879235613252464399427952163366551624102860552564136976536959218273653688329730374321254850497117001996169315634156154601773252052349781258069834477447516847962565398817781103561364713555651424362218363559591516771080320139991056728691190446205691419947499370008750866661553637515659933510562373015601723529718360723379502034210464979374509479726293813866979232548285245822971668649129350480931068804485631120009608057263967221894802529635222250141505604931557398880504782344037503682705417163129963712867704629346786379963819241687404613222223899396387980562321604120054738279316987069185006292519790734272271533549817580814491987686033284513042436775521742344605486265395142798936619199173234591647962473226349173877605287173742572498035041437946364370712134150613619462830613889448820181708751407846236652856739733144928771293243855423195829935693173651018588632068726271447946195136200325271651479655814746535526257921196332994973525287913783681768109653418375293401573867852779872736381469765738523883312198880845093782865480296481584199090815303888106916224960382094148847875689921069537439160094687229870715947780228854768283629958896916318466763393593402095655456253729980300206632321932942948142360703960723979649486421264641720934574455132733428869943918883443124637745317230931773949464745403992584806072303835579094588748763802882135021169811027734298361192556128801028562877048186357026164810774013754669516037354922718214993748553443479835842259868415819305646104081240625194529754076081086672640632515968976596731125399595230129365334809790458792399175532888971857499937669821510641497213494064814827179085981931629696933353498670318978482848218437529255933563656732315175543402824771382233118849612367384144779835547586579259066529579483365839692407284631871301370873046440626573520446248152848287598093982555499451076423010025453793683470644573428917108372485826829774639564211012520877610882454071796703739097327300495049679385955248769463843172806946962292628660778045242676665500285931422870145576910937557563392049167528628114107981143379070630752877893853978353484100353784272032755975671267022184469742861301466687470745848603558043777876601774936091743719259677332744986571347737555530804432710148206318028337931063959754478503413118929119991001286119375238513228846852686923435959142483862189592504324030747674216314360903368067730554451346744186257436755260963563784314575157103867359570155760425882200350810729243773623327703336974236406254075976464280604754032273545309451423350724336845774828619680153497973328611506112304366190706939336341673044464251591145439168467518398678849741249297307652587470483076333917640695977858424072664917929770686678726473297955615037647441621367884281600819525874922891221728286620843982854996148369110398582615018202794839173743874585351087212057341803117190127166416946681179281908358365840297213823300270537944832663063405906874778187021396556517225118599975004494243518487732059594456505069672604684380195154096019401472496966035745738980861491669865992737694355820064303351989241969582042996369336446244062355845727442997708038262929505602546767733202295531453474496803100618039388051277397036747180657588121425164156900489824339056484250398985386453230284591292076002870908116831112701830147801381334227216303739101740973913701330825113313912331719412882975159005100939036936823359959693379483388604152789136970586120003628852807949892954261028071290164315894243145996089914197175306009031072260328249226363067172088408190610668006845276015974119856833389474262864928155097664365145413554831314069575813343085050787370309175350248912102399351450217820730338368542567929277768923460220171847653707914174240822384263686183149111155132219026588053900793322190500432128625232588666407677052840108830333246685924774683665360636791492754512279740931717599117214532353764850879989392253899809514029118537885705558037288046764330422830141532168916203461303754050323144434010539319329574117974873260142742445435026769099294915979868870133636974077105509093777700895054144389732014646864767282844046841394498836153727158930427814782341510788671897918347076234840873120812230016073088997768611395179863140385983614465529366733248998363613851798161330045819855914568185133471979017591688787052729150831017135317068408063884961043253018762453624650312009088725835721070561270971615265485356033485735048758310945683923866893672916068271887872540491642893194290524069718717734585846757126577251932453743872592725580165185142525291712086460644875609892088245781094005269596388259700105961358898463174662162214278120586833463449713661477537780450714492772275257714368823463110445739397140198628089232342135056419663066259078902558164598721789777503286447255669105514537282115659159494953081990870337350695657824991469240850550535869154674217101568137996136469561151967337950279006129745924072773714873141407073584924708306078716981940061591017430019990316632938801695497554353452127754841765280070475987366803569502847036128237833114189983796370112712965259988609821754995407705128289883854074411713894779845886223472962471151729875337786728377256195096388953623039580176857445640026200908806501116569958693925132302145714883558004580618877888625551995203046739150133195438448586039734008329556154370727580912306648271115993393734114415712788087801479153809644109231817044242207900327673285133135243078814796571621352374036154183311881260574941774887241467311197854315811328922962480343818580261059351303302034764800527939726327728350178886083832951534580111822284584955100669853681140015957476607284574393385396477819403167085378129980993501891544181536066958746472278903746178798397700025533496731939586849849457660960798822727397198920689255287166364512395450469824301835084550116725806429783122921661092829695516583966432582404289051348454252194546754845201300742052044407953429122281630025371128226327713884668519178465204431739254916141120441778687871012271880317195412360676349134380856713905893847912860965087849729675055988367154261536059052583029500446895995400669777048959147484049758056944210944205554497578846009205307897303314606454340820182121341767728348377731572724133220537860485187866936388574290065056333069266411108518831275658223126454169201433350534014381233210750960673441362481924929559127906938963904276725558149896195974350023133099515812268344633541701722217199437675235089301506653239174125797277037668245678797692862119730939901731321851719422717638031550730739478386196130561241030708334144823972399660699271861733106326736816830237929805471252149443953068629983642800654209892732169972987575606581830075770607867459510270710103153478489308794908675574824275977814495996710112260996707962341451093618889984430726657657784587670374968493418792217334084717223794263434062050095710683417841530941287470489269109856504779483964635883824196499441086082350455736309205292246705579390938698276698478479778011304965277466466111315591869179679692108593982027684721909079904579405390185773142380602611114685035200353951098352717727608744554691405533085688526370514630273241426482876069418411284005036501513257688474588363122243550842668588149255725981935172002029851098729947945843331748649909026726414784769415576463207912451589738230066267685561168391504092262820727269957592310185419774428965281649962858873405570822387631202018448348876189457750420403877631806189359601201214565501045815186407320962284215418026595788613736254043112400255108237266655083136203512520872322725556508927407081969272150062262083452707934569908006457685900800734096408001966794468980204821260333050847158019250564390837724652079884824821498630507968354115298514585070152795245303305420573265721071083334906733275135114929251676482597537521146569519681156834201399792746494704260631996302731971743194761223959866527462761826281359241326482976175216896628252476635851659625184575905737747532516100026562150055764287849671435848572887093462913530307205778526613227196673591887285053564663092886983175647222764167526372131802579813548756098270773466739411196885869531131946334021663916830967263656267090313995484828149753041931301538023217354710524397526339667033933268582940277726874242618560081748970355619233697366787773454911789901018429298818278308989581476752870251031144391560712984918954619834043794459815615817887062407807548509015129179042336983885644514113152659465100443160628155380444340070037789353340140774088758173081678076755797296488718044574149126374403724616956125423134396743314016168835378853130262577959698544215315921612655821898256944770967881588125265571571571969693784958497914047414819306723350834395162219216386408769300961656257148797139605065945231910319876547583641938067519428821030536116211731712143004112721263229186854367452158716181786952683752929183300504925870203489706988567848998041185793522702523269825700035058512939592112387038077764949771188909082870613805286631732173334073046124944512326680496382283386342499891659908768342375009967125492944294398103813384396651846513744752092078952968089708478070572661138187046884484894486087457325613882185226418990479263633631496475595991603976571777461462477589652619356279093244466919507858526991472165819245202971606705666418715964558462556972196796258731344927505385503079214407842929927649043162573953327769523393937888089132658724412452852213174836319161113345406335121659417253715355032043009928879396310163478889729536070091924801029668654355913847481825992760249201582904847604289058946628952348512767287949583928501922431699035995435464267845091762636412127670013343454504579465495994559445235204253100264351976923705644483005521373538199441817517103233810784959394309781902922966146781339795098967620534861575334901617176470339344671433737758803236747925323129419185320925308453566545742786415999366502605269526282657127252351620369547159293606916557257409824615201238330380292774474031775198227656238705691107311818430248474367689007552487197797980130465226761840974845158205981836441370041107140995510645026693867578650237518205950070719964371660595596580004868858429989151078569720807848415219924766459224758181046690402516796972343100989958480192383009437186913456226277631823647037115555725461297736512377431949996831847544613497811601038439090699740774903734451393357582041709785104752326544034492583842711175607285013094856439996208574353100851100930733645034934630244729798588138521048308291271765657900305914664316634992172314535200445852056949259281349230315154103945803253873675453096283146141200280959649159069534263092392553594744213073722957712480496972948158069253560964405206867241600748354316466799331518661523006294523451080187785685806027526954829269926744027796073747268340118628760969718995852730891669245820266614223445361980700611768489112060278587437305694508931834217829056784750456205502095835468001122657653422359335443223410980976813068065823658061032721658374968770953551965177354578895899161148282661709556691767334308408549501172540774960616266284275538861560944534196420075685599887172821579663418695386259947867943576657281481377880861756387361139225559866385465266129479091473964038807470144588715117968275987692901838850138910725280918502195725901434135958865400676416490739429625456982426668891206174880559382435210071928487712128065816765135270564000121994396512341019955910117003838928872234318774264112482377706571262963468246691059024397226398174082856219343249318317138446965705797298209918239468743518243240828222330749137971331985704998190308955101153542157135528587430864482517212854625604935341922235968416322785991350634598144318800858587130151893944335945589332697403035705792421706165922204279562829934392212274780684870484784101538405204667464784083922769868823795559436433516711173195301151110273425931597112858203325719289548074396565116050584444401445037456524861425237406227822655078057255360708169724247419218798356013942283852860704339361755751261327337744894280075516449273017044317256848673226466093544889674422531529331405256345745083082778927399250666595872735895313361013239370052334436309587082657073178544874199723370839975471619525334870067977273842929852336497406649281083442230789141566807338154727357893244124763803354499196464972562573308888696557372730034865167776456521778969960810402792514552254074042350936245249118732530019540085355260613703207434425911496133610788639181306531730934744023035222382489075963793116754438051034490993376116428089544946710430130774929267949356692847340719460160180789053733786665813291617904063476193819505344887901838856249488737851920661266470008041348212467803524052583261836571555386319670452126074605666911139912886265425818794024122090891196157756376701629825435403011287760262011057178251822988990467352140970740595799804229494445076575946214314559203432900402398814559806845866679648970457886339372670343899272961137537982783703514409279476230146158027522845704724010383484953988495435017656149931713826708099319450836922278404597841636898894794720540891713571860024151914366038257917288493356787758451949607653649122100331315799401185900296168013883415271584176240411712908666963936832320130520554431518805213688166805373010644276609957806469965698715298851969872318790849632744380127403484203357515278408737497235183533759533943178448379754099649550930289639001721983091026311953172764288308448789413855154030536130565537494539827137380461170698952396254452034616487097905388660646712878180296972310467630522639346998193442645528310482919489315222891378247692723836883802453401017041879469855258909837801705742098586411576363992114843223113397932754759950474462532046275369320370570940028752885384579710738497726868845328333281637841525884160378020120993182784305987114100784150175697292283524636462445871563247132070186084329157639605430405145391022376290501383026917573588527868432421741446504745191767789272875841254671172960864283154130612080677496868383920619153998153286162305877919175565192837464247909274690869513024899498392572376463061632293733240118738309278542559602744151771149928803497248174361502752529613266278420702975605122466236414386250392449910548947433770013924385911691234718874180265489247355733173967178536463769507638874780248258437934396499477962448707281715402490034799652004672310314917446284162962930275195614764782872903953817974291768220820216038589186158239638178686551334681900340187456994733635904047813047639499861939908741293553997678354928654833551646037510051771823461686839148883482948979237224609851747736632479781512466082803903966703462731611330176891870175117366590921825820889658705525841099510167369188949372734250511125112597445069818190270760689084157059206715059560769429250347625811711743216423506701117859424906834297942726675853299307397790984791434005941143735785478135412042112367573222764148189364272303378002761810785156405780868333008262370424929020914389923426072184004115967445841778028301363366874447678770860216403758159210240478476248599859843012729459985617038674728182010195094456968195884369570913380105011474056850531116281129823847032752649777816163096054743685163278961541261053030635359124449739304427700849738236984280032990683229783912770130838952407753244367267760634008421713549812923489805347191497552382780063644053260485337240757840690145172764947591316642091393537851687647130272799657096694229275719879700412578442778581136322625864196456928802705473130480911987480204544107278430580125658194287099923700503514123037228741690022152608864495522879622055121954697666705947694052874388384022871837337522912912110077898875600948779033142848958087361276978578612665762285512718041533455203421530462123448748595737601399291324481980500617746273896803765008079192743642530814815066269345249672555568019351519436318758730415118827675354165866914947935040804288319025042805170925715335689784167847130878024731497050910804890265626354725696623237538262381177355246492809943493641927141902627172895985129219047333754963492904479407622925930124107685687697341236283505574929852357580539492423744213754793382721428055941019037701822805912637313747497803013422943872632434885015846312429491215001622969998910905429786344866037567586771475139238781286738610722952413822839836980953439502263557150952755092976186315251706940058866048439659966721905636690404834279283803308076384760657121310733169163263059862864508052709379351766657718426106041794897004933225654263038012003140096105503752198377762062719698668686389271923988563540335257290350348975283191705717466733328918400885291793108253534081579168437509100121632502563497484679631955184536238315391505000026723687914901932950878070099451080878271814416241053495356907880794559140480505026994449342728984880756624374662627512155063354449575748639858180524310424831161187727507123321174351453128568664151970833086695246685094069640981735412907790351451453644926021440557961159390731531609614105106209718807893339584742886325506417431402741399266585264976932353226530256327244878358529792578028418928561708627600788200899417743660357374210880246592766532912457776214284843320514741899445677581950769322283884569201667807002640595016415840677435352749675867847810010006073559578781574086070825944353665498933775964509866784339570924866723940053002787954518662846754921354113073186003748559850259695025930851459666728833549301410241516919582425148115257118370469273789893296076374364358859105369452376975028801531553511916332871881370179142683584945465789375942084387214002034670638592449721543907058420165342159100574759300150556620377004587191546254363268171039750265985967801001795686033029689916005738092166387361415555941909217269478143826492178583364824865852668591934726919480067038683570646503380181655962703198491471238644670300929846071194052469843107002344714060803258322648538411130739921093127126090613893250210221160262117356826274132461778496973853571062041364485939011086158495106589596242386382441639443736085859018248137690308396021024748060085468409574836124025741447069784884831905742861004554295038234437686684809281021106196857363705764143445735007663139703510059939049526599238037848379883026416565354857454525937885542077824858042583244923098538873998842431596791069568092870744020045673264649589619636858471752513869658891884174784833778358199885769770489609107107426966247230129304013618351646009230559139478099485275372200244510000258701675314300417993971674897637472861709164884981808039484490604493977645749232011154643390621618996564662053315050476936139697357646886188926764613965453090100906082976393234375475787079512244508660195326114878449058909871273721774126312797485458970153814627399633864999238620153534415662455652143581262630573319727360360125091068476186448618043424327157433223028661071299097631940169156978477194616469659426516806981319956282667977899382919673912865149580807112070295727165534298482997260245492088975556501241897821430584587528340365066430864053922881750428293573766967715766373884080190336096892413833842784222458423880091649643360079549003674092045826948041518276691748447777989042949037473027071808686349728409721596173207634801100122360979462907663596049349624674029656732969683765050137069087832002045620473278938057678376888145983823865716188956315339716855976353815853773103860273011248056313678130680250239174945966656847808943580629449782377441261781677975680457020061159689561523614258138933954056274935768958904384683017662390630606075644077944572259225257780799905391336143381438686681777439459001028047245550688203297324581695522079414569700470125074172781816952043879066626328521645461018659476189732155057892478795688369973144904992674142996639205750363871425867424276964821766491749737530233268927170510053895801546903436655450852692106953977573523978876273550986956721279076862843687485828277385558578456477155340809889002173514349955367621062682305856121019537287568945890857956253261931594782373764909063938357597852811691408604720726934746435851870560633981928181939266914968805479922137613976607480346965113312018048114323467688509484660112289382231263439831732532454133954368599750274913416136135069655459486908951974912181874643506432575712473251449708898742339825136024932568361312283155124435961395679822063258679896749859895708148977063087151859647036657181952290535469436071751754067229980083231692154393563783174789998945054526499312571267120038046544333510259408085676959226303047882334084418517689107383201820987075369178518969759471795791696019338193997508778636563416669701961254390672792235478149661485159221730587146357594813667668640953833711833701104350074969477495924664038870778800351699107777806537906769270137551898073824867325375616926058121374740374565363627767428247252773005844212582698951915748641670173720782456180840330436697786076504916316487101007477472623584280878173847947153529089737702555040217978955442686822813701887457080390673574941921379841291313271618264106867947008745466477523239250975630570395208955875998356144282104551326764163403890712869090450467084231052901910555798515554632202455497225986234535190683456615455777663849502134966457496119110795257365097663530923328203688034936103737486673780474403158013936377543900363495953610200912128085345664369171372361088488592635782974260752428465216019283093630096530416319378339389868272294675044744184059633363034560411992214202041862144387569709267034587358435840467762151175937512317861990659825093860312225645149810548967475551645383900765494130533787309849523727403213759673121335404715484042236919797782783510707009453021593083937126504655247950843883807336191003267483566688519234079590393506180573138973177977499061692687299174549319431429222470963199841148829716285231015558409819853281479859815586048992956433704042519759739722674159019867008070645481416711612853613531226541781057091257932590041803115371140575683851550935132269745187162339579164797945191673754089876578243743871732681592236692143104440156590435582829040606664800038142643563333127574766590862118282103559863755123564425743740450955290211130962147586141035740701355743619658847052087468611358038042204281764118232144715088313600260881213562309801156524167300673372577653171781395833486205589976069533035345615041098886020638116320953124806763870974920551722757572028232464438403744785783623428893956133883121677092654577218386804920130810964753751675651322927981436653482144850063734912343377879505115048373900090034455359333567892789497481530602484312291087100316320777027473968851427686066636682241277223929125759143195745424410456937819832099112598883361982088306538436482788438455064700158637507664401393213447973929577357728308386037899586382729429454024647583896196809398750713867444100762272601198002087109481278652640234281163476563679221003191307511186453217187895503308978925300482108073181340596016230711254233451488895091343295876257738733185751587497130915077739200481222769890278181340129210514149928878118009480587691808729167412217805932690913776361039988533700450581776021155718916637173121636060675285842967780968741000400518051548123395355304673575973413178707758476050878475852839017551847822905712219441285963971012695717848248058357710005319469621857583489710411677768556558996331287043753357902807888893036885148292200412234848817964299485697642558098329833475482443749875444024283252397792509500188432682027362962681973090683906256939510996937856175131182272971560298100907392175192332631239190571675807740890436754340149752409918280291355398007262044721846800652283220837235964392498178782276483221498488601096023489284593081887619589364499174221623107366903371945754301067360138512163778978396766449029054840082959962751966434448140419619630284004535059560472987479286556472724161631694287461078461865012753859879229375050021042004864378698330159595934266161415975479058669386148977838538253106720962938107385344238850224302622857622725488158832770015841760959724286967477885221479917755173485157464103057036103945750937926238384107441453611149541875512968867441267582056163376156575571421560394510102425526816124351341841286506443065356021822163405829350256090319763518130717037093109972548002721722549003228339987420789854508283195449146671433155536638699925398288217708137722845019346289975013235627473075565437805380313714155781446545350968251053474429342269291309821339974378116824903150628677435059357163741276092336638078529770751967567746106458668864845332561435600956288493270846769983890949742401483758690853731240153789499766170787076600872000220825537195027560933235768499435570610557115108418431792551652243712824617868459967979354201883988105867434559536098403232002671660863296950643140907016453421703607241969766202208868686239185982063815902449572179793392765118232196621034363063354650705998062555539262688086484732458429548852833789126207543594712529740442872782407685282781783944159592309443855292727102627836420029980207766760360837743230417655277110218675943336826416995497300420044407611383987984246193826021921075714883524479075238468818207669269117397237815624005514348631687533267797889494107988942044353156917626573592631157359394644843297536296825930866639418574730266264137246974632332773037388620766355403073191254209648120622240973831691757946249189741474042410772967012223608200551700560423369279359016216503675470305404220182616972189918424344029081297008304866543872955046911988113325726498369106421096695777259104751713300669129107877087202371989421845511082190715687143263489829359039155094765472019818607297407057535373271939276364618485129025122348634183001588921879191093883325762135966472639077235682406621139317703838515277075445753623434210977877607376505592541983574056032565595791133584346249949752404625623152552974950523692185217713727582011902423165378369190729523510229807406021671614662534805051488322942050721790433751600714477270532010776619629093025218174966811762784968418866920017539249218945634859092166773714066334947409393563160505147943545562930495621656528745498442543137762333148064657797970223825585683390055032557598517098448199602518872219009942662224170662389505175931103866537157902117037752125750786666732716142687709343069307617925084538842701586984500216426583895634804364705180265522492707435302567302822432509291481006398357007167346362127522580221047781611439359006286926404031378431527785699340104317403187356467721927522036265077647001252860197843829041706758684203828545478824573341881167874659499126091799273704293029258236518527649236168028426348769564004519814262885024282478346839059385835279843114965287006148173178382270469396868074650372972700151972812543778601361959331531246855794699775802243292296642821826120053061437999927977447200811626611305348936235393360307473074122215829332994158884441004924283503456065771754916253884267639181878561859995659393657182927910654613890091413337855185816060106808256768287691972180685163053767120617496075534699570960226882267768508577320970029711026664181970783042025339816221310844203286912026438107926548618763913923814558346343354656897987460225130080603671680149867596592028636334901162113322766368320600345381790624657842789490388700041479374837435920707776075431968643050476650533664272802759813197092952106617580917995892178126679838452288554731375435192000061481205911830968487985795736963198468269707872965823172186156440931914680817429156694419172914083248326005953890564791532449906509464652311289838239342199520072522089783398330487374298092073917050029527403746588813072675177682489286810566718170710463789934860584147542310942637421894859173888309590575774169449240469224474762320460808491842267400706151439103641094865006081022607831915330671454206790395427202799435034790581641917229486428817600604986353601830682508322889217766590944412855317405836975282103158098461647890751197214137234165100218775258331526054289107572642224155996476679930097946548030378264043668666517086651478190880086290244780451422904774649897231117607893245589680252696937152873722716660461119377888765077948769791531621988010362968134788487499524105546368119164136507114734816207229815162355528163824734050482715327627672503798490768140033129728230870451699965724593297167233148287595108600771475255611867397321305757947555293792312709507130789823093424454548395875787225919869930774552426789668095694293765337999688017407915011500706461079593965408335193382092476247892132685743173167702752747751147483311069248581474944442706119123257385498339674812141820593535128904359134076316480973754940266035425563763435195631317688166397222246995925499832208254645512366036214832998452235670723190835422798787972970875652411369455621418846354179296237832440919744285461749141102012601153785884013402552570343668822217195527783667995015041215980225542034681390847436556571309678249190323815378550388600913078146737792430076915802920820287891781919558706481240097796351217649626026249916903931398075741251480750475024423627568147567409389619557918253092814782342674678169699086242123166433847174195326037246467748197566098936883342493135962524053996536385368259116502615022018289442033137727874687710191392029978342176501614360927347060976898415905891402549768733692711191136781319711310334796173100890289720568248578917399104868102269414413917001593937006733370399822451417325709058451568542724237333910758510335692528201646794334702447094188599416096285262511597909018055202853110376240599598103373920929141061707319617695206245547657935324789709824328695647556070268960804393693968714488098872091864766565843174425969277115814903022714578991217548700316107692449603477335116986581977356926545204590406846685214597410269786584352466396729547505864467276068127292378622361029302763602922364018621109754262713032199359964926443598293084513593845140412769113055655389559753377005366063915277088753791295836957932607855779368567497415931416823667666364741002142260106893002474536749932753660853430346279996138086889771040620935156502297784301841538144889538909772980470634381417429991043930797968406417300295865248321335020382453152595318815921669723271018847574851886513598059251813392549882189786492015094818128916786608912374945380601050032361556397145684194923098136598268843105066380510840407214359319586387210562159487261422391715760468387585211185595297395057863671098096649434054557085007505159545896381517083284733024949146978220826291316994310187510223335309980318135138045295343350314857865987599912862561845634739649006439298724573521884937840098162017510889819055000785969070385623974437593155817922243046453162249945563890678283081316560445141256705008010803526132591101802129112784782731248582346064865866035034512569632009861320827338298522917559552526707023862454262546546722190235112257929977641024243475794277149376213342596803756834540377108263930173794561094552321769507169501147816377388623349544754682274715580236842782897412055717814979903375980441196610484991340784311512527801620377047111649573011905622496288945931825101476134478563945895694003339530229859101411329727085219542615971319168946448647608225014696897351358177678702178848548566691699243129061816336909061542268448884071162875478137954476819954717222119498049371790787669294750822575820260279613555935093660230811493490014462563177253481437467655160567615351117398687927930552328427544014342618801122233552932787450165335751879192433594638996091767091527859344883045437017312709083611158738224039930698968898094930550204461238151831335819235040269267291882246912080052368128619984953743058120767888505302464988451593524451736798669839166582960542060190858802667534386530665765820245703900549519754447664628534128957938858880793962354849607209424675274716883537598591154162677128460111479703540341428817592578081926215619277697915605732947443751382811479017161660177301817400368472510920584992660297041252198779857678765081392786332759022687095994820213361777386604252606427105788873727003488756011142514018297756684579769860820509568530338896470506971586715955319297680705192617126914724043602129019876755696625891096520718090591816771342917313254644711138849107143746453964123917102075656846503842865334924750336836029713533113349977758882734947365121336958097331597652642117533635655460289537106358774822204686358483654308941860411058537355568551939972424503188676989205586207756508500595612300690622610747031239620531885713356412638417607046865461570318265504472819858607925003421301367500320478315145963242344765035895268030266315560215322419555285175558377938404920810300151655783172600581080705276226368569855048654445716257194773571293727533367340772778014593420115268233709973142717292418789548049227241683811430988945214109805921950909102979879342210192685156656656318905968911898100026907060778482751065660320361853770964172058938804381860937612102957912933984928985219902017944100367609484918169248941510140735767452292111829769778268344380828473109231945622486500404644149694898795284881677567363163162952742141714971343097529602334231659251525641877086259286368503458941580306133101267641750241303726668844503916682469290850789664762498380557312088249630216783533953108422667619770035156505130202092698527272252499399596784979977061945251267351013311464016982126915983650205048161361935705018606559441546165533488548676809501603216311265702405645777407395407824566180524948001447780753917187902083057891547857645157505996818308981348777957996337318350761734724635427736077567869503292459172629793175853036016968923898648887059186062922257595894691557520835011684830978860483705146408762043610825864990733536210962996009636812219540768872764636588088601717211026485645515222554366446702633013531408070260833092552007866019474828279617708949471933643313883713359079505885839803752649352759079507900850563888957484221728591995962001492367256318591944097883281086475607849422055196729165976481454353972359661919445811867635845598413372075876981510195604506346548871797299329845435269232875251472932073881164835329291740960462108880988186997201382914164152533457894646299608111788107126935936216323740679032465250381963997921430427686786422175733270926939956844164249942748162659231339074129343433916699381297655892829035656134836350451101116164510657044988591444975467643868520096030390004594473171043158268805368479471090520194484563060021053224756193855178764306475808639818875618786423470106001719193484254816648254245429368148700976371718954555859706096070166483765029039688731951687316783863405521755076293808174722062032737137118034862177562319079497163273117927800550004871310238589632711819034687983503583023265715807907411738697074368366549529370922225772301654043725556970510362759913159580583006915747064749162419792065000613118056481525555575547554606264965923383094088182145459972638669843809909833688919151152815747916770236721772997410951059990841135767413313360268289721616804987333655657134708193453817400083190250575993284310446257137005276724151955987207713059202998288932931427296863218594244744114820576532281713973884628429593965214738063979618790476501950258173490594123508899905415509954184252620739534723132022640983185839430591043280666602488214399797293184805978652948361522278081875721947172642822923605167144645964435177449076478997066583813735995080987408301266309895860116108901935723507407716846771588524297606751142784772751912180548489289309753495527683861636561047333474508388488002502943575344566949722167285254555039740991478473699243561725960623991641317576667897055189062321015588569629278954400487139184013520862233240965909916714092324590210992371257763137423305599756804745998108027065336909776156536244119680618057858168329908835558903238699174270786300589460288209530556971430347681509444605119893590059126130330053148198466751352261772409213258412590485521878759701433430237793203568449391943608573371000873947652351649908048611013130734878110517100468991217468487709677772318805405464619289854506607445441047996447241264456081549495277229701366632874633216404882979679464827875119850188412528639078885488050696364600481673399203850552433690044075311866614869529732457404895412400570295626737534388886600629723483118776841958614264288589434800904282715631255127839250376085079838012213163935380687548805566099976449743089851989117259806365627726735147532616656548472925098231820771063098154129434005018327715072433947888559212011971467188812358602078292242879638837445622920941086132853331263667516676103689953445465969473599497850170126024080876282708469898637415962703154836611362914659942420178443612491437525206813360120847282489929709820068808624055581959468566600514104547587155665385954613316575467072863594749085526906539944800795104992320851872267263165631416481667070464549345279107166386510141142291518569724619703704866273521275111196155366026936852457165049366185770737760780587730543548629915165936551385280063981935682981423316325522256673535989432345563056568004122930204162584725204906792893183260647587739592709450284327643857574976160432018117560836944567933008502770520612866108521741648556410464182796057646859137530024986675671870647938382395400224240684255150473132999437641123020545766516369566595607113320768734889333548702123932522467275302145685990950925238675237196516616460587721228620636769490874342448107577841550388616958705104598378869378825269815592772347130554665580717770577954078984507414657791438232708428766867888640922721326869032608736073295650491721130069680656168577273548489054869183198490013882474404986392719670773055751192062096163113870850388852645758415871873553166661094475271926947284337172431946673230753796212401730987058156517522889143893382643346140029982067041141042190561246719778363889799233514594212245263927777508457878540784997397417990590581755852648159162354206578202049820854094456449947612288873987004628869760806418128719874047957398979334923178308201245288484858714983512123170461314110284343803900353274516308169539296079979449714677988054577350199168987871557538341711494959754645121113052653225684685295715340029191442224292537735763164774568372187708586514634156146607237853747420313121727483652686353183922937221203036922626111223138214369081783725635646129788425751240333084797216424271723675783299123425972386549522471135950091978460577843232206853905935042080446094171003453939964945244057724361886733235220135310837519557138322979301108590038713954757056365943153505557871044631977441886261315420878328576243602885920080994478347517467727447204935695526068914428709786971491124815424395821817962419091586118024724293335026028938233514961594081458021469970541108667384442187112597284449627281610341120871029407857821866939717026292807194226355125595978505143311747952598622855725311799161720692489851744450995542084281627806153078062125387540433319559326220712187502678118631368866121437179593007806555091198942299387426193747559841653272299009079975572345909942939814949625704461884989967297522899453559486605953766886547857939377980656447249065685005351006294215537956719097210054358682579553937114655285685835607192245490150266220837118819084993280765441563954000296666100132789298228914630278982478689648837744588604126317974620947700543032406903517407965133211297787020894369523624797572508410164340257792785298390145662176654950406071589978280403471280361952574911393559801409752797140571527359975936561224682093598077805216650919171325436640484953732422157215663913765915197203928113472448410439718433923789859455492300815846054710697504614543370907961265494536283083296955304825245517025131591572787755686455313280107654733096705828608078929104483163122278057972507098356601297216920283884792442540558192132814043721804141936929103415511728864875338383757427106001046654922072878951316774048437369807752732134406885126808180206597923807249360998004959941765753831364913992832085791966942658194939751803959364148614906254706626723371358075443633712452611013576517668952149080534979218887840716465701870672821561686232129075805330624608992819602575836586189239224124780080587179646768166817200295855871014296513735532897525614011261199603030829669207270359677950599226008571752406816634443630644932558720023467457068638185893595282675502492573329740611477008593688902624928898236671787117770573103046449922336520085089040731146720465936876493174631579646001182131320739226170892788399848256901639176110646093719821518731788031705339324441595949732182100605458422042153402425455421811735546314705009613399752763091766496394569679145798348698487117012314106985660363305261353485886549706377160165048177024286235991328207662722320652734069093608235822951353966467073277987123900508529481038327602510646594278370376522644574787622730598837968376668892077364612517011941494607283261561307336347006764864173478183937084548271621220964308240611519496402954588681634569220604309646473041333228922481765569072840840160316864800427626581821005553303734271141391441833714451966015804605202800925427318244055261519559856033026533342172138312270085818563256897390952485739160635371791602902551711063197352594455801102754598448425075331423570585274955217436679841527730016727351348672469460267797340266304958955704434451214381719846224731576429114889288901525918874262530851717561011351051559036937199205176211558238696370238822209726808054258277534583153814769741914346603969554648637084002606700602932567658892126006495867978818050321895395748361399122768910462713122614762077390388550580470765402608668457683210676715462238317224101011877457615712065393078194833218846034065579066906483225533779867012762900580758062971083083660271930050350088383021300934251902739844334469085763293640123236720971054174439680312375130132876316179617139334051160935696434095128289037207936846773290334199083150933421200186131297272237814756576657760696963813303556786731457740990853313487964062892193271907855196455602577485569332078364503766357803755480115399883218515860003523375884526288601249680166338255884581360363509182544598257860996997095326611721204649216860148408342365134474218407008214628766962335055152896598097116723294600196836775512159899425170824037770526250661293040113510455632002168800215058893610853846140140193116503855305437472237800673522144296999898712224332312054529898496629218704356931285944273665445331734914501963173110229707549704732156613363404859333204746822591502541943526468459489868780953386617553927193305752442062789210301672788559581884009491553886773718161752942558159458835823480199539328209554632671629779941595468396912548971146580083183156883102759845872767711890783246712058186043207382090835544115270605341038356502735278394434602447334967547550678939102380349937180243140220125538123941653953946935648705175512994550667091437256849283116861508700718549590733783653321659351778806966367567211732204280938198683026022918734517057164559473545599728269249993414347229033905891928981321826912887800278762963257343245636176932840321867754323031236070751288990524312909765718291112296979829393688905830281291676218161203737715551556082579001366359337357573153029286852000618245352075552367974569030041615788871012730551460817202095942367466227847458585509908192774702611578484443630205555283678054462969296261387646288703414449960499323214407755949812192307342903096594253948261646093498732761383233795914389070968444194180736487992359621413894647692416126810729157810311573557247406512698673392845642046907659900536619463474250300254899982741872663529154142207201207742904215359938072937739522163200352757497031891685873315869221435346812246411607460960574990262575632164578952536136571947176109374476556807843486144084164581821990196695528296601137524476021851064094587311619160199948997565674559709823992575192769566809235609515643576706120139917839971778626795734531680134268178438362954337803365872454996361235285856050405129049554804919246392260066798132646767304456504410712630058110558423341870506619301646034729578117519310077981753930179113939693229268216204249828348135458809539251804517406815968098780371964467510269625997306210149561315384459701630520111151049119527587879641456734199852937173887433962172625476444154684344312740662352401588069700878033437545909157632375375639686377629973096185233979050811390865587492766434060461276163550373606099234852615450508086264422078606939908211003796703540527989156111857865872450636617550735796452047163376262819684865224287155961860819234630280897203102070715648413546702532162481307068663451155491267466325786076226618720724201683037986392359664280614485811340241032086233938081794827044100605562150947251348757291500877839990770367042099675838735704712257817471409245363005329170665830209010886351866073970154281630920719132847822834843747785902142221767428973866969003289090042787623022207350706464827860834155144479587523668806990841990148422693023857767790798293473609730418092233595552469292747734043112752733627838307871280144006557744076627154798213368537733528577871800005775412341287939312917307348911312140040898246214968158996348971335309224364930180687188528210145071976402363420637070015663383158858435955373206553550909142566203341194378099877232115995295986883225407843723810399427722294472399005805411789652323299756563912705801029545687874152499037807701348017011010950096001688779234218688378579017499226644062401740583385504563314903388622538275312548148999339157749038231473340229195700108823128114496506227503025987804399685539029492529898506981671358468377000967528694136659413857868646200486100350285076984319994857540104250686546827439565857884486426600589112288145706114417521678615611829139996731747092061088609624354071285756959919508913905705419818191485909712635699003905861588528412779556813873089943155403105546429661851707590716196481133503979720861751929600226352030581292183647092735201420839473603381054791429298822727453561370803618782603694503700566648304986444814135329659038215060918157375283891643216171365010377495664199458882928216794354298562478513159914561765326097821483088225507451100887863877565627681912711474491271992531406619889644036966227168916490906069738001168543889572397218655048311788501867030305282803025539379909917642455422729804746430032086094340392620388902425717994287209042592509020178658147075400391839504215111197081856055869377132572786936764664493891486058700142984426230499312541848249724891978384566834160292902330223493178835603980367801144393537685342839028273075612767904478084018588511102970533307872841558209008793044568388249637622839156847829015603122481231342118581891032240114456807502580956798546722939724108003903018264884517655712639174043308759983055511911354653794707741931390032361541572508710311664311525536009775485426786304778581889182181952435232947978868992732101590123556119251421899930304995530686400367314913755608123176009358309341317175002805321584944326058168593743748676521086593168801178702842928361432543561467284185640113823695092115031154036067701333895145338763698104488635562277074182659158057041863079264957675314287316582287833091802799512448508386889114610125300744687669078387843924863158043621663515885617550310252866170355486304209076573444951269169948531382913965925321685326083442791416188426656382121059895494071443282841213002832855986753922355800714056782843207114702869664615183021367137325082330158293465428805388141737267787874000548864090875049270950365891618093191696180192756666757064984486471591705227479684978187543259057885504655780781828707133493714536245423297307580373467165990941877950023061236253021674122864270665955492969614892179351328165425445551585757981114112654400093865481437032342829631643120307679900084737922648971115890251130074628916454511311537346095206444538190862020389429677898318655181957825798597475540079597627521246323934566157929172476721469497284125237359704314266411237126599619338408875224980795329522210361004067281503738200693034856889584550638171487671030309778854061670772617772600606506635468254242872454629550923507613306835412976082828836070736114627277181386161945157545938577428603216003482275635022936258283755087522682026960255009528671131357430771250499497217892475581935440912336348443609888381250599449616134533098514948481346720126693745458384927173081307074828551252176098451778404254785272282651279260285100651159170305816236070800407530150963794293086194776697395145519733640779694370441035029095702284201810791987327941991336533157629346834987801382844039223983232371226710137087264471532354646813497543379499675644212128112938868617378605747036850052438904746078422152267506600159484658725855206801761243468473468973411729850242523121922646575311991583040067217663728178505309945057236754324910022684548920119404632078961593539267533500794631159210753866785077610819393639861300147576960218323899658158699852263088937843022648041890290872881804186955592700202603081925021538523873092017582810590181065544712068759767563679244753034749647039545544132724442098133126814683163629066240062413715269892172036659280737207289824916852729994688388351218194255562469031862560596363883467331853174529320155157660720043737349759629702963225333841204384480454165179749608361893807822332200783204723867311767651559131595873433457099877052753043687596985226634679085973710874465246274524798171852197003988536829549760053513308644612073928578617068945442657929007729963827300328970598931896061496907655069015514707351321644268043240584774071464625903239567825344862038880827945042635648520355069710243255547823723240836929655848785398774091616480371915850741021585633504700763611764219695404520875784435600110246630422593490772842056233390332942028676793982013006599845824254570309540869754876686956867857773223465150847504948147824742602605491294568549610564367953521218944103758476930864247963969759136426482541905735220164871031233611198421437129855602566128933702780079899370894537714049819943906151152259333055506457702851266969974467207964946437142094481321135834220486841806309708001015264376592886979059430975849033267062767693394836255871983791787411169907224926452468170332400699798877337575338836774367151431822542393369026641604781101153749146243292572661185372379929437835502649732068945480828918769818175708023725358163727190143539141242145815776075237806090408857756365132949177422829204899242144612142462482510377189810360402036952302336282757129973524070409978864593808057886909242609470370093385485193420139697387827176593196101290514657010335019369615583428712390626870363660571239531682621428417669792109652894263989962016882555711493932353976001865316877311889466042321373311643206030255797764043106320112647526013358066179431631418333920575791209473553652187784211515334171005752089253912779505449709170792872582560401049595256790464831385706967489367534255211997942121312082526001023950795165798262352512475633222366886197234611552043795818588754746074044528721743326213749469453691390637706080827341706931172124550472235756962269821212368576586512775615733496269749831893119149140152122674222530360716358088532045076737337140195945859226716125350066703857846533693378637503769318879514874415740473465711429156290228355522615064971284699640850433783459301574317650089305499871269893641302403943646359068794015098815998998219319665858378152460168444062826141429125756633331416481992333387419006287575135666106298003509945745463441094302155867579965013330568220341218304584167153593613871353097307778860917655697146747110206951764275979841983154045248600352586547445901074195623614209653766314896713183575440006961994027184775402292416381636535681297397956815305507295902517371652700387415056866002350118717056005720785865816138335349832259878844373996760310002496952804283204391173914744693628737859679625964447190368761128712269193038828111188208279954084679914050257869520972335900658612813552338540137019335720466694480271804282039955031294623269685238631365472588552658386814360581415244909563555011809412789093163684981810491414057140623492147744287239287507419280177881221894278148840984341991251825793632197831322605393188145589213487572088931140036516713195882021581745123792223574050767189021181980105628880139044485929957297376245808049342595166987053797503252881100180705397822855611334514037495443921920561115254728374907087162566616388694289624488295283414036384859827130838977676318373396751028900922750145174217490663848414187468161867614670275718688867318802051986393214619077692842213005983633909109090115438935470928330382262589159946302922900180381976654569569785875352819846120447999191998516051937268965278604086436849403097550974999491465349823894192580431816299921272417620595539546296518957284838205877649836220261813461738588624846001150733635270614893164372505922023835638582946679185751269839931715778076303526944473645380774803730139711414569163029969098773574342754071581910827252738389294938243401014298597749864416093890469112029484466496590806034508785000782922309078580348359266874899647068724831207511992737581291856404489617443659676892763493189137234447609457314739126769921754858808823769846668361477103442515484379273571187386556222584226648241042043246189713551794498629939230697478826919713913555330430936837914437912368785698838062034546705077960785077397808612838175921686595594692974199057513239097604863380080347386049875430662103885823174979968659509470611965935570396967990057496256549293865315646885484409159120575331099309437896199732942212977071889433390266987391270009451080813278771903056101562151794915158575960707091523204963725614066159038507483923943720201765022079902860161486412146218557817336533354102161954677647917688242639494921615120360510132070146525352271304391953190095799000953575309637458085475402369792939781229657108108594994867632573336845485649131536506109072791712289607348445490650082304971253779274532796613427810380966566233722769815928616386881118874060762741759120787646307286764928707517798052678560534850575836175994052520618640245014921372262664355582832499638517914792193283644536523055933625614457335634310732215973479825235425001253439098101677975585647138738660859814431208651890822260664283556530041520930278355758196356274502671472757683858046841163117966316108001958798542264280365646034824297488968230542365101102727743320752906845904207399829922929691778342394744343125009084024372908912753025924819625701690635983952575993157207856389461740361836625041962075392833405144704650182675132367663999584244308890834276377691806860443433563783458290574348253180863287169412982114893251936644242181498640870152566456629791825662257403621948580797908159614220605179559500571853596358580897829872057808744096195655475191568148367605166223682593761417918240675325493026350175777760149188553642458957933889025259893721320699000792033328784296146469392302911358148391247022623011408840587239137971245231283374898160458432981814141567516315200242788825087362098367775871084634884187738547747977254054919233288369731752881833797001165809264341702963721247641565697204115450334646019683183681792218213851664493502571298541472484289567556101412170986606957376348494763301559516877950681762965619821380935460930535758235444383727003729721236375267943995407614424905654115624402685888699763365816416235049440441081204657678098043273118677736257801198845420266632568886320753763288385484777623954252809349760414469192020141484039297383587480137086497195569254304955898682766445086498228835525591832229197342913998759035199184433067267865319566960762350984762606424520059823150607763394786318904216666249648879368507790176715071238452746706857121789663252012870052817040797384933541111031976208063489511553546832411990888136590858768121158439324744803457477149854746583182469004968900435786263365513433657103981783310408903356000787173430378845103605839859271157982139703520238861250808583788818409115789015914418807453505792718069112807901684660059176785066820728110541740423374165057775205024853776281573746801297118065100361447360810183224876025801165572266059910198027909339269748519511129632202073173232925627558118103767390722177183669437944947522296003665913623289830057439047835845570185129225404190210447798301480414581449358547411084488832732560546177409141828707876223507463104083779114575185669497569749372940173958039542581860389299422474952284901014851718056203406872381357752384894942521741404582654801956703921546225150642617050480807806802723517838809472404862132271354559773517843289003806339282019381838881502822407806772806652801028744790227912497651841890833922331252121347690001477443805607035139516505822464572129870210520754209724518401203509786324120691731435957505125264355749874378144320310228702144951363080964962696787143336103836087025717645810751260442001532167012639321773652426214810262961981986221288274337788105699848324817393843548933314979575043873636684617243551286183687538984216972113644469938477126596720582924678313414184817749583463168712652599505196698701941990338355659786020852019095398224977556386312904653213636947982368135055062568892033975303563236926480154693315249468564497040600197372579842006465555773157303047721301424498517520759399271792349114690219353989384716505593085733439606337016834692943775125524045824427452226193550046095332165695715636256722694038329799294839218353149011505370994541460945657611400889256539735430896242248842688276298842191123455662162814396707736083828153057722565763396811700075760245834530278913370750454944389874484905137887520833197784962415994264924055602559035146898115076413797690462351843277264474016371106924895588751596215541551719995099095629785419371813306937314336014957675954556591053645279977035227662840473015996453785701536270451036970074640955562911239753839684808102316387651874350123752799480352279137050107400383843436563727316758180931682717542943376539844955602738562245734715970328564830110434323822293983794110114001353904387284913426363653638720610001269614453947651438114890425687990329251387068641824281204678506284751899663658879039132402231190156198254623002973845236380217997569509506339205039928476449040066435793099908574145231171466197176004602690065957090255365038743237788568890277836760379677800395314629996386424403459389904388764069810059096792574813200885861636002448545150797578891106200356843641680180672324105603735058893022215871247985613227893449810511508799491508443738016437578695826978581662793964043512583325073488675740620230972444096375720057923421185190715244071063312567800016789084118474225083197384490986401887970062107393300508021770506315375445322862486792539761315038575147492334803982148025756268847051090048403683417592810614404584826315916619946505512881820335282074322543673104054115657469214678859466190290107221125333726163074016039864230683098131746995009960083899202683916184279760038094512978341494627021351836794255688830754393951198941394293124809756663008425727004064707520079709287163025428358724665243346736721360081603201012532546435637272472332526654749160599062717462042592780806850672256130893233450791355671616968520678174161120766149875739957063921050665603732141508467203372951775879598080699764092725496586069962508241498223708422517449785597678022279831498456162985320935425492786586466322535003528676344451083010927239371390243855864830900032958604232551040194434026777546215256762933707630727019729925031097667725288144850995476194570352208059818730157974954422773296371817767224065931343069681422702099577339104640314297717228907693081775296296506780464505996152583757836949922939009823850240196004293185879877473537658557138601127764429170144034885530366657001928292368173167246065412201722734721954785543536105833628815757448255225631846784185591683252914978984617244394825524894096312712142929031224692435498005805059163260233325335740651943836411898448379519259771946212971166547749044258946894660490913379973705394850203054761305357719799541723831622566161423492808909768456560427887369844511343188946325290993980581364522046677646821103512682231260158667188037338359845953722450454666879729305637986289193386602514279419146237509519826436556146537833345882899660620661491217632227976091495763849171849860997054875231641086509254708597860866410140540024870234689770142852801724579861554413450465631438657375347124974320114222288388251588111430645937583398045149671255894603400682113772734873487173250988193878515934849749087698539420520099390396326979237018898154094215116103139798910725137048334668530455053916830808952952805820888981914725038438022176758030503709016227599280057707121930910009919143529734390076649412893687059789153666971233952620807830681565753446949259742877088260261668709891217116781410263470052401334540874751685442111331222646643963497697643816513041261564018743081204232976109137876209596934283748792089060549604505674894079339180758819804378585124830890794110538764314961673918014749060355608406917148488794616973221123841601557895143385840980469825766581391591877116011547289900455711277365641885426022259111907108287437686199990701806086254825660971814722298785832439682723788486261249113967816315340422829515610102732432397639246237182869243517826061552916430167856848510625864475226301766759346508026885438215770574503522280215697689959676255906799507538635351050681849991144378413948612066142863130288394961325003114531284667122127592710557948378063706243715704580526034502294551836359019942356508928829483859045945486008818059376915444417586364362586211846873317174890279061051764218915936071512777844915161954718224345325207078805343368235755112055233893910740827664614657219296972757464071808600338965278462036904960409267961836703046381317583832317632840548970481497295545580303400804922831928463826271672410450220470396981925060045993543001991693800511193312884144476584208654094075012449204384120076800032345264748096531421837548762704909219985034513079646915706632640222691532840409867092741623271415880980214546435684997377068685614301329286697912426760892177229722387114457244149023771538517218866139678920094964203703154626920758802784845286153215094420385061271910315805947633597078357268297745022235518644203252635347699001461922506022657328841935988953309544473174236450629366746956329189602166945754550705093289029451548352546199358634735322513643670454801048373530742366725115267910518765441914611447442284976600876057843534055196326472062869163245563391320691494582065343286061597110025333276669671609909001295595862756325747612576665914376409121148304174263878205793877049517239482928871442254754475696104151484786788474489784996975623862726726344387249564484021124863483226847455658785541467659936673726788260917267812051788863928002675279652485788412021128989215195318908552083956245655455784633007766338667107460896740325209624556537767435788738338164224512651780476047265008626266427746456021358312378090752048707008263005356117820985771060243936400248314758637477323930398055486613348784658097976555091269608582279487698081566848249409746079209003013052019688508358266754907278922048071416239347936487725176431563226646046084638421768547493842759812732764756301061720341506374543179911006296867215235691190424258468992933964751240516447177834795800902850376399951209632421758694073246706441275832129007017938179190887962752474597478770653180761568919244313245844440860694708038719432030843934264639282050934353534577648291567376766422041881286208411857216613874800711460951475540596033586445270958361815809144326201216675477343272333155111668258755541276399629971858941889766276086014724756268157845444846017720819640183019535326337396148432731150762576430240395212114222308686025803676983535079602910678508213994701464126871663433725390562604230229814500011947066310588968875211392762680860213622343162555672407755264613067024358421295343602768292847455075662480383166295584028744413858312387940297822782446488450127976673607188525510956188420573726047586782600065987859345073019015475028281895912538857860506971512528182206419054374758812509822281373088282010505383855206547510418733586776967166065230768962284899404485986404054056182224608238350993901462572386907995434592731382255316700862615207591161468362978110371404012961189650223190539383890340277904620550494526236135830700671561391753741207746363549300963913584803450845348567847710531791327003596388655888903041350566074723029301790018030035225294742019829393629010388017543519731137379124304221416298476661568298487111439885400980734542982752300627209463186894744607142242943449400186137479336764332900439628498929166358893766722974477872955882249484359624674109339267192968630730515443309406000345367453830558093593241541238488358145996443102150337152795021176679251873555583608208444059306502068315800786332990149056620805681622705064498765602762346709371785717199763712859736322885860357071270136369650274564610428196804500560755672799449186660942458843479226585459442214718350480795232595335579118385390641241900641075400122679515532173326408642105896951504581817888535923524971289787649942578576604655986353692454318364481419566402058272254263024707096640152679459077554135408536330931587997924378590075522731183893720954375469675886005887505228824370879197496644997351714481222591532011021538094799262452076800060047807468178204363672023208018222071878736438558956780012297753786260669834586149769341231584386642789767701707007551501799195389373794594128377869896983246245378630183653658248714071059433114244148488122316560356039178956778445136961829172196282909107880099356725783958534479065030168788546878811207463865873319668490520497814838240007746076267213911352065613304288719042434972330184763121631005773521552541730743247914162339919358018293344076473131548354886404740511228875819139231590084341602030733062648315534487935488702967911121991008914517795033973042405073070254310158967338464157948222602054091647642995844934228773307459560199831166329357130896202483928206852787581400190016981957560539156045153472462688720705060964932003518772910153232235729924393700483907860223618127735576903495398107479363860534182095858055941976795552959381656468066267440584084193070854706530486691433565826244199818546296546240808423012782443928036486649081456794721980811464150565099844894240083735305417520721316676373538117651735464707055131681457923989933534541592812897326743724951549309745774788564444957768983635501396660198965774417775930362233997863043446087005502367532042637741173079763624800106983118069931559989496176204710410340362960642350222439526788705094037866220873737484576052732237768239494024062181196736070217107378233553885067837783589676471223876792711510566224880194218223472482020717988797436983650816945970411141516024594281477650116487927412488896687140309761386521875669478388340296890705169125201619781226950154081118114567491513358483054508186192669349604641996439530094780716923219467873720371989271925362818932357055188019136231048943808549690839280882263484955855792860875742849404841099499744585093746583176789547739832677038323208989939372081122999357405417451819064264529056576018405931205482144975966888817594362368806005619391216935836479480062705411587658264427085922733115202248109831902176373339415247608793884421125095236052264982480101735794146352306367174559847105528598459784123570199085084196358446451500997459164206105482675660994391525696542467221213377167830081589619383826262792146626424615841563353351014129467978764950469897532360239216464586510702184941606420450115434929193597945417701676357134438334769935834079449004894693824816525319536090649534603672833893217843798526862002877317673824605741218547172630339848482526367309204900877411102620721204812142671015893715183217412826630546674077772839902279746941260747607301925861448142517483515468526595521397276876041353369467673142528779464582540859392646170706770695308285888521696020236436385580612590479943049975975774067244495137802829799535833615651518281327227979099057880678387002254474965389539075048560037670817452741817325235676737503985104841827226603465397813417090299098335076964031621114982008114245615763120595088427035845129330706923484146206307457268909136373841362517743588761398487669340206592888986278527008456272882524067606827305005227490175431268488753643205945953746619167044187300915737848494343629267671930092547665629582827104836198161795589775132465704694564895964597383248762760143519120164321223544525685764730638014513171080910398101187941803407650700682151468328004105036362018703392543996375459094996628506236119687235833544036566951690049128866925471654238537514471855121619717884138575187264283132191297647668139950989029663945329168503386230437074373631543861032362801386074895575152105078521400761357641522331948480247995220687633746798274519648042189239312578087805184385856755349871467213751792709652375187430899451937316190408460026706629725719772994920172415820342741043933169312733504716999716984324942679486468958185355940475265944614188717159914742365140770315962900281391486525191310681918827151850712639589159338169016114441490306537552968039106329799201945153568351742385132699325364000253293799983117196841603681830371908979411850216849139000985299880331602115399575503288964073133999984608121160663846976928826719292033462476687776730919645339710039349075519048274597126381446425785957006972055479802264729284603470241375161597487416467411760082351932696520809031850441511750409562544348703154122444846340082028191701764818471578358709993010829957330480321627913120740512214482935726926359140613083399661980906161060806245304051073790390176039236389438566786720248663291549433245765618095663498802834862799640765957715806719246945094113791634675430552251391474590789008640517054680731140404959123106028535717839336049085168087896781425854292382276857602871322612655540832533164162162498645931514180608503907998075750695262309922466875924338874906772469323469165569187141532704845654078562951511668697568847556810994108674314678525681159999553256732672401611694955652771530132623390068744414905053958916502069334414821393526346971074802687359394787257792679512023023116444841783229322581570315867936974437173039222226788060933835649906297032224171307042884817655964030330759763096506994639707923610733450976383758983947662765402068800884706505874976432477699930124945088622857633955619388711166388817428198896858223298591781399844948230579151015718402621534554901197977007111879501666951838968973194037360105130818915711207884396435871277067135684736929653958863606272453707307644817854334336489721443982328383826904879827607501868974102679097084649368310453326753019626783260846744050699361884142511196642999192197351387655918335196485772139581643802210256218154063874163563688536773084481040573697022074642805211476805724646657731682112408454352149687077626045229582815416144339321432277089553977122017502385826239153033198566287731875930097823518431603444788346540946927157644361456915487813841932707541828386495548644229635624107090272731123896894234220378935892261470312388111258108033812827212767966138187766966001352588629639905053324563741351040570369749782252809161713795052443326984747544506931296491718810779152277654138576224956254419768329094577573102169894885727460132120613595942982980317444930239866593104246666475954609467586235889243988211778360280905360805871279688762489908389700103370853687183970779904646345416733907363009133544359063947746206584905638937117724906954104745681486990095766667603406726878097672844520188497331867031656509627746960018153794541073623655873318026428535922295307696996883340750372158044813474652840299828498269176483069837306541351210359280102456883531010782298082729999081837865593721642217607718510194083442627394488247310130275884937560543446139885614560247361233397070212129531045351911502988892388765870069817655519389697609961505079387783892155558689785192946723107709695467003753720790765725804053869570426807225285322106181245281388229180493695696847948400251829424480498346292500499520271948523343271480523459977359929174858165785558974602686850121387353699182154685501814493769823292431036645448455052799391484237111483586689259240182478313097592203704363809186465985074766427137182641565501953504610555360612078553588933339449775353022644129881251066074065902854734253633006716607678810827572456363441302804253148856351423768019108895627450669046117854630595296940608769197652559679752695923862443684420571941371072291097559498846794036375805854171923933390277616930681028235170673565537832734810290216452234748776770811097104054963098194294745931042354927458083615469342578818430951407083885329832129723656864711898183240771043050054005709207511167960969792026299263099209029987997485991174197169610754152320662140120051876430534016685921643903334358882781512687402730641813254753898541433555291126634289947364608186517677424724246859070735832512856978571648968922563729030951595690434455727749619649051805292329258905003395718451712084699434103105050975197409166810516488990438963348661422048174661672886166305826611188777092322908627180992492755706319354974738626195577034749058351912981776112329561084748072072800513098173765105274014364007273021030307145387917503142144760197974661373384968840197531117553851421651883694734549733397026227416860438775477505851341744238502105987471065587575194353911142293196365339921572135321314587696483568182038275303986748157843550676732443249290559445165349195191915642684312410745714842359485018436070205987266206272922979705858175334992345434195000900930700371495329512250177269123510256432160653241958431892301851299572342717339786558322232463090102559820674862553035634606195294214495529689811410210461128877749367484699111134879578033016289448818369916089804238374108043002134853669674765818200901159928122670493068742326876485290095859180134527319154909238327435058372123573879652049817708504127727901792031355380206618583371257581805648805414639624920592163685363236178500672812456393457302258882521195188603341354296565016335227623930757084274181059256737222908810316208198986878962384853226318304268516000896565371206661243253570320834176831894237087199634078499155216672663781997548350650413327877222193967505313607465551147490427240809967020331076352750351605209444173363035674391530725984489668137067883259332795382509946295564231132745956385922127785412331987691516182058511800265557335996714771980227754094571753585488178327632693157008154682422668323033390095485500227112486090163780372973590243285048378877044488922510318529401721143551258357154048475499328352615348684234902845516660764750270016650076510845240532057750463063674337806082264248145825230362323293875530040372370779927182395218433805200536353119691259893862857432136472477091268378540441089042189823810883694369996717438109710953140476264182687704443272185339502573395496320925368388874400171278936683638021677317253620877519631416383737794662631974254475848022596637203722125829170697710456068034036432552835668989802988134147326468825834848195800999197128873884084548132707418292084732383721782763200979403900873417711798353585742358164089170119687612676274724643599262328226699136315199406284908964824650901458488031158767749130262173653711416977295506778497598749495492842217346448813336455298710711059935193778851098277294781158371411425362600244663015358662941043800902837381584147934783554110061271496540188973226651226654484144515842722319451884854598292642610061818597069055472781741630400223221201570581040929065142880117362126376598765063668367777605131563674449216164301042004460757814889619981211753116736823032714575179523487447788552731586191116235379093168135803800412587726538966214362378185972122957388037195424986375633907116673957560199367367456911624856249039182578512982189162112511954246630398752927097192350509358473667603745013397429382750114967817791944828225075077297932272656468525243766769237978864828629308555070849229728028450386740313308501188639340673196205463531018780243186541549177100431508736371027299720835151885498193508532791952573436799890647757290648484808936486338625213973070348074276275913217984896332234039666968715471021813969617625237302402581992674837966885547843624819349544529124577701531296675234414796529489210087596583537268934637139635424634294440692523288072897532616719420190447541924839031594438359151935022310184144547264225973389646870893521910122555351086518186705728526404693274731794554029719127041526863964036978795435551077170768558340295797113591086853244355434085561744733499276889480766827284259542463681170771598328276734658508623232952439000733156047211787590534813918299723527027463184294793936256721770101660245539030852314892820164101013759768438758566168581584123155126395880694744653210129190606655246690984249733859519394890309194164496840553597006542332628949829290609201549564826282534423767823376216318782169838551043461350244744862731441943759429592179728196677235907616438149186491059370813454776235336872754302415399536063077301476276111970331291472986035775161116378003538236089103996434788149377062895789404863634020115440312035319311753206599558888760642203051076725074138651526037570658905003213417884870535065977446148958251189871114301046431137285134081948993525756928361385443951934914663375007863405780017389663279815549291819332714352392200464664856023820202680131993013987176277942622530777244295012820450475282510887309201498560045427256779455398233136953869622426763902746614015446720074977597097899179471919965587843896959198999143697649576638186608603948429634347373933316485951178935997944842208581180898607464717813391599519817840482884112875133902124994261038071290225836409123469085311447226412358047465629446694525826919705012730581007434256047772214345335420310847671401501037290705020144924857664372820365469221137700229557322712659144029159480758352678907938023543390638840273972107219353003750130305142916801353331008148025440165103959420005036011012665896546808081696532281411374327790505943336850178317698441378384842780750556260024655080867931318905016890438422183489607144313383435932127000937678980660633348372064237822895674249042750237955764450459726585861537635241254701919808779538842457665895500650324600762529221559991273882064317141531532991053592220142780139284042153065374654682519596488947626025553395048927812505989550948825745570164115239066899748130735741560785220587639404745734599163235835724271663973628374742935051318944509732893176954693122011039457770167944368584105735459157451032307336423613596427789729948647720094368719672561630988263730373722661463031812858429040871982920786531273963092497333520951475697344094802102286375856952863753313819012364193611193935798046524453268084275899386858515897155123142621902460507903793366228573839403978408100079495451620592445703914277531577540637642949589005434666341385013969114613899605338173591677042949945850111253091497587231932526344086600379500059364153011827972488158587130955890661122720497528288479784933825927286580251872712951482696090315289499177163566394467792473648804568475292562328208175166870448508494125135198781505463838712908794821208238630897667598266374114842272172367098185421605963065850444561380384563823162726414951479702457687330121551825571735710257551026062744894826626488553864239963346144698843156217795539128373223063614318323865124384432073369140405534372175464243264605743108293835094603012455762566400835227115202796068099404718510582590509960381321178403628876074777801673936728566244840417361149997461676599617034725604862363670994948853979139691033055785341277071245920138081938269640278224121482085608498742049883437456239293439399349196715976055571387373897739658792567358382672636305158762594634384905743451945260993835458630157578340728779730921643258782325849248139169687745868840054742435992843337120818459751615429360859486196772537445582997000067842944202396035255226147342869744812122371066900143644201156206231529952206903264792592769266073257808692217792045546216665415727560729269409301190883885147128848086793804173564370791155394181601684510203535535165873494385484245938223978190878410912698159329343166775621977648963066856339428909916559477727628062376969969890887469418932422313361049389938516059601815213849277401545556409861819230685321187129652227758924743727111319019008738511510589631353076222822415329259996665966405919355065078868603157880149765124847824285826116636623041329333128963170416270268987424262370732264526966508810359465490983690995414226301456761497324979943018168201373888382387243785647774452342045647335937762767367969245180462239414372551808148025559985604166088268084154562937889779261082443178465472893872830964103974776167811342902557862926725155798760295951828182181565040974286493580367263718161218223371712599879138165963395759336525848832468272276711645222354001410934675317110081363625598843016575802111784816734484808352157824945827772900222221322925413087567674753466243239871988482330458741457902779845780328857518623838269827370194474216619328656549307991284733135993844614139349528069403057381718274475305756010962585145239354938196596417898442949766853670243542597821521340577452071866496633990816328899916088628320263494797042508286419167003090220124596187237697268599917523932349453586130801727203838310131225538743059974552047090456383965041240776990893289873116989741435313338982136257210354300085553781056123946797107199889411679129816251379005633534835311533178655976190186281624935684001530154784860635952492856432561834533317983537509203300316577172228651367312570630007363037951980830114126020376019263587712440186764921533076688656815785483102651452465495701538029058755861258354962734625135368708018951646054000427133300984359925386766367239190095208680626361149567950371981868606938631155772367371785864365110233937604267038321664436790436613165770056651153707472544563497953723672056271072926487645028901058661957483644910585169610741940563712064936164754415448083033519395417865515023828686389935735762868878037241604944779056330095834860976675930482965766473790165309892354062226193415026381387312375472639803132067650606736355055407035404205447557084881570613489446570426889054039056038851613917645649493443905475888480453401192012942711508717881254592460305925286647188217227418179090093593435463959623848290212077240231109030466824110516239139368407630815560003601751157038688597754376412653772663002268476898192092892929546902232246577295876766274386618260717827875651352178412304525622705795158826530935014559339955360430668826571765928342053614761390856609937428099606269868827340916783875804850166167219973264054142416621296804951630059298767953088096928961966194364968983253147844586811135168930411601912476578462681530138621792691442607637918511631644556250208680114343798536696311063857820873196588235119390904649079795226003809885628277181298658091301546708104744551466413991950722217142283150944373500420009069498085803133832193752492103854805259145308769647939119580930258428249296888646298238021703438905258373500704956542427110582246582428733545449537948949783768912791633713585513752974136593747109976639945215195590023725507171381648721063769851809521460857727598709702200839159834490583632824674189953805757327739140984080884539573370349156505151413028983037619049449221884871384914521233331053088567334534757667864251009604179309157361802450916344492364091417727215871676714601447394324891575564112277838476301675145862456425423031256392302047534204235591665415595208118186252696429133718721470805374806184119386452873739770713095396141472251088948873796097473387444828878652115392340882350159290212002325034094442912587382690212009025620183486361102081846937162926566496583129329948417853935286450429734492217833257906376297344774276986016541599649175710199524163886052748703280633713479025919212268242334478808472349175565554625220478320799155221285887444649957224993189731917127784361219825230870326485804038680201813297122456395998673486564967822400032643359599935015890776625001664412779861606837700628899723452750529370483439397128195378685279259055966119474886647013281794342436451047471176744877318482169684857966538681446357612199102670718927524167769486746138557819728636793391861708916673564136182690262686288937488621280070018286450830325801393837994056711554151066666452266662991523696472261174808859923860147453948105309178476292485356603067100222523250713936801905938474207231375602517096571294285673530733819001943454036295698204750007829988045287028189425234303616992703759476769317655416314575139151894641523367102473374894785726807220992267634484689512689749227437492831261386287877806248786574284776866645637625761075435344177177321952758588481198426330849571502989128697308169901570861738963714401307761485850932854835098563586133252604996492651217404769617333403342497232255010855466655435260932972342134593799664910696478549088331379779495849591025801820988697071775471759901927329083933157026929710593766184786708379685675940132362261155844082430211195815689529696491624454709328048724462612782350260471954035512569135098194009892756658849036067272473666891039277289202762066596661543825718352075513081039594068530166692027444010451695214991657169558073556152182173118496832909359909813791881906087840974543478823292773832547515024311423052195669770699702018170087058120382369843190221421807567618282873767063289507007236712653800647954486179440998354972752575479030505856877821086776391461744453885914526459746944809702737793466273774249313289926562399690330873464640958252697962764360583759853717542990595915174614415458923017108908568526600913800490151517239322830274185070682719497481183694749020125074943865298010912825583304876454664086646381814487947697448907229755495823161672183686138943386510159056693991224666218746567837235252288406387753383609200624417817793571749497996614923239005931864118781131661878734949917752817249915190464091829089444784865594817122354533905550720138244734352943876639800412021903920389726180704679632369900694411364117800300720040162022893166108475461274684425987709691987117720689956250497984958563585781347723680096503407709534426884653944766557154870004942305228539988771237601642793261481443937738457417627355967146885102047567666657049037240193529391555287597460889563379492610769769768791230684886345336303899550727854255346374795954311810357405049206721954212031007232040166033405734837146596048703445088888388348868982737298642934167900565490237304630865862890080206019071855266440874162803978212625084303644556612855915303959405317664555273218225124726789521305582546676741488209593300552662987380292947579980382904799718596242207387054117054036272501071447172501867058031851174908531331797742744299325808612655374656813909794910682214970810395727195308148667813275467706739461575290851079162409778908167527232564363511260153538971862466206777781498249462890208165945818369167674851466017765910762814759839585261156807923992533958136078907228223264116345793409687672298430330144223237356244332392649192384566007162711941490340255415873234745713538914776553685761791318971740391743918934187215215693366267170295027493147114009800289456527439034750868649209392343856058410400444070525646730403697884331702647428679190855911706440572664425865378266326949888459927998015816566857987437778060107617077290301622663970819460832675319831554281418207094325085225391712080451479301684292169545381799080197129921113623605712037924567739499210067515403414102609793587006263015127264324425802737374402560311673892787592254555954515281700388043453257851929638712084321825535383801497952006611861116443456100714230492580050849596899498492818604511617870236886195623573364304422452874305373550769369063365970008640066324045448917103988733166103733182866849197545412774866416736170773456914626422966447717238399393751430598961928609637940418864405752875352191217467286004952558328614068877944529892709441633672247935684237677460173885402981396127960130199150329360478446876739477654059176817415915973297354738997352061611988752279193031788366126021139137024731932546403463998506756721944145807495141133869027206923175288609724253717194013468507133798839975492232373694144778516763871902225620209559440111806691115119407610246972252854552391720348057630638376029051646969672183547947490901704529382102387603244606621037518092471790003719189374105539953789035906357940041374182889791812374407186443998630275096443289760313890964914718919166666022860220443454682605273712235153534041031676003150725948009369730968250546002604087392726534449222205359878533624085945009696930931284160628146707634392363488269097145465483650751709795736490257223966776988173528050670411474069776739328848958348027670562765795718215309446343214528768192764169329907060776623083726416057187492279603321364438349393772122928744083048524091263978707938335194686944869975265000165813649650090666352738955241698858668834297483309147145972416367299237318028085211322847632365215230268486658850846292325387947846704530746817477258060960903784785006252396153754284788383744702506668917016185755815034786899504364041844210936584042258584950971181124608647371663716589854028695190131623545194152564046562808683782699659679385103035317031911124299455346213631609830459009354476018738732972744351152250208325195428471891262685863657661677083917625836704880077058846842489994270941708163164590209770486474509279174189650172090176539494142954928597881252405991367726000404405037530583684151452834375139222126117203106579002720788447972759512049687838916263652334168372869535131115303893846477563375107496888789964106229316313597632601399358932512209668707503112124766543064983658459285333049345582372458734979161911544456656967978505813909016073414267378418824060021087709042998738927129502265785141256907364272851404289474862320389946105184275483320901506191764182003224695318281630422970624517961497139266122835295410594840547168739252547962806117086758959772211396454023724270919660160101330125538625234547074747519622004469892277103631292718019913927587978436590906473498308548041520967703719840819206939871223776317459325615389211522074183505719951845773478411198779554752636108990719460347754871675694099370616271689164174827340451248812065249112835186828219677658206224445050066066063744192256397237340857606809806633158837583034770811134976299385474903137380295603536515222805109524685709624470889719110507831450716933922184436860136464667472919499454804383276569700804201853432384458306309662313943668717714123981703339463578354366100834806432611379750741172726605592436285293303214241340645492100148347316899035634490911537064056308691603912431162052097315897102625359731770370787058497911654288306204129913999245103711511272803616092774766460542196602644603299399345296572600294187379895583029413668502030996732415425496674395885151619685245012697742152921637473873790754240014470578603244374825830955845087132149687544970746597849520533957843252525736183821800539523930048684587774562165409432530415850260692848127810679287467670473256026919681831008215821898581961070210808187852077567748278432103936063178383689006680397820441943756645728498231364713424400873292824224894663570763116282859346594995496970780959813327211850333153184501290392138403083500985121677372635281103170721952740803001216484294221518313750156497753880590800642705732745883675448774152106185279060916707363728202659689937000449957754174035151970319060896784431163393417250426918548967222628925889226620728887676503910195932021521496678578142707951836764916701360178445567017535805493908094680342666718039557972881829845210610911303118792504759723164870388069694524685968422361002217716184051017486114942473426661998760120578408969124214568214439200561570977140390442593465699904561977926378923258230445360026188269198858118171402879941033409061751386956685910795705318001510452025686192037862731880070093799070678247160138993183000138110113600005400186313058111880459411112856416390618970364717077070596649918401803701733346421780061026654580705249129626389469659022647298339389927138454227929056564926058230798945532467932245774577131324307833880470623531145548178553224297862811341190560862785205063662563739891379099080347126683419242374230296881291500480166182476749805430640833515090445514098848161270729636071194027216597788668125341703227379697000828761177299745540747306136416172452222535998974152671710947513031886053340442746774785737042513347377291994671074493029956655095695405965399920100700713983215558919993380863153832236752911894674903998834279257126834450940221165096029391718790727061453569441330526715512118851454483946815091567016359519544415754989498465721095482083300618719551957107839558529105311905030200897327209002650968386249919056264732895420470164425421161450507602353141525833296854318393052297684009790994640216952131838623708244535695854911312799065709684119484456341303238346577613524203117221191613161093597538623838973718977076767764569890022204390116024910259581658219464092951120855175309269318263985942842045678796019186622115881550444624328728578463676714754386995572072172763195041295911988969536422297975193275259908047740720395633391357760646028710098047756542562146761533472228463933611674124942179710281525313986299178905944328953585537870783203743615462342958836085708287077685005286812354477146477367431311971494314487897683464414394736151718950048472588946743655987691777427051373541752244308158430199369980921146408815692681489313735495413161305417565900494347515600382488330986003502772724485689250240427645037500755400996977056205200189149376480397356499862126421456477776327426375088335914553990949906684480048829352712561617781203190818873147804226528985933412799293863296291882137271572323801047381242998979330366947676403668465580408026384157529328307865536422465611126324765667075031846021442384560205610230796318709131468839637644806960860016165978887658667396459489301819160874128880068676132045669398880029320984967351894149113471426014926374978303156659021754601199889721819502989301861829305243789202982422073537074264753248546121504154048832335734531700990298073104384861044259993415404681063769174832672484515585185255304136644602653248353441656316095286343497495781600204010861015051406178961703725838496321508355574425891815323381752648143887389590015667788516674015942230028187901097718270768407114119901618577922275740096584097617207105216929660646458474426398287811900479462317892391744575366163290472595484813098538658229321922014358746654661135269438605271329215362003224956920070311296271371403548357231286251178833522019436884477591061683783088850584345843940166104707376513421980977902240685679651333679340693990288365761132342228963197845553768379920919317043303331426555241860739691007996586143638890092599103271180048810507249765329466538050982217461241999523215601136929077565294459224060104200220389403758315567553713806983623829678848817868915858425167921937584529625419081394922925618031627284167759097987051963646311485555122763719390102052900034655119063377159451766449964480784736832870214418485460900195696685192970880752114901592799775428939846106043203017877415295504587955144021332392144142330309260534188619220295254990740380110370951851608457812767724359517868773230793831234770459259358330079680168430396787836269820081200358123470483009395898267325242477657749124855776925785572702147073147075683817767883180693861498461301674683411249009982040251620837303350179113783211397612473604804482616291924151233897285757965419483078520565735961810270419067963681704221359717929578666727933781091115829333722624034706488939390054475621732559238828199711689678783390468169669677143810403961611856550360179955042628664902156042499564966159284355738545409969628149271539363974771838289987217963850893377573876536322663801555770683527680733087677519178319743629157979016625624602399646900467222664190205882023225551461016654663793737901824954434202575115807172066209259295261741642689319963351736797003361994840574405561926601011357933533093743336845854685039578741105834257492655345849429597527661784073077619598197944691739992371134097495682995635545697832037125609453562313394619866863587920656478173693028180492918702110389417436269970894516394181906288898161750823679119514642896869165485125903734315903271952807679974410916006538046547025977083220547439271052987346679443266020636515561613716609173227947816446523355274535918617128571832669789323475095810314159669176843851330810196671718347316092505413062077694525918965222259623155315608269588169707459649484350772975262187888792407334352547197662345512538699250132699071442873017824322742797759370836583075790948827503983732860344850140674447301891324260640262715302435891106657799829384447634940222039391380642806465273260576449074909821579673186077308907148927867371619889853536971788547445637787094099164144068494284823155209649944893167044796540831643699574240743132298754344613681267185675920750340381686492009623796151043609776394211652373307280034062420890339078069777074444619592140726388038582594392531378663054821451120383946144625400469740589922379718358305949262932786577491113051100127730811235812613063187391983812918315486113083969564063361755717528459580721224827149144759856879282303528101251029059538403830463404888306400246640682339755849153072525154754860868781180691079019358938237611730331294586295833295589980291353479127567085175800032123768090507201318033372784141257126364167465331234600406483654191490457732279397999171161641684747761081522747818089063373735796966389706485324408422564783124796970217242514144601755784241694027336918310464875390873417917235847634709605756002876144485751892971306447581616696602887724240119990343313609126095835109978334709086469190406366976827172130076094658211585154960887649509021535967400257503131447226078397120536314633640550467504806604331769476459559669329120349865382209219873838013288483607266810839453957175769121817928334280427186317290960296984677718851063035180171310280004738612472931963773254038031495692995523003484791139531644047767540770263449023985007431455920534717922661066421383940835436812530554639259940794002570546447960938158356897455913373262101972682903652622026943664396164271144755779178458585572026216748000313228801099375752969557474793785009014697761934488295306303739845000705310035615807975772647215201192006604176289962322265851684160916792416292277346422250910670561919605175974774772544576784287946404177517940000533625742383429264976463368631856291150596129646503693954670055648886370596260761281349813226165302954462293917424444096630237891325814244697864677809493117110082981606107058491210607399822033372736957768909811744265486428281754870232049797741692224409999840260512722653499515349496722232900183675854052979072878617161605467955760348511191899738578765843746720751411051939740644895986117909148530680578428825065375921869970613152502732191943996975931343298023355996938463862900757560785167764638340644907891663353452054999384254940761237177412280338000806224130685670290387800672174885128568586308994478202415822890807406651319756465867532744758435366517205246296794128421193071099368115933350859141044106174277698180749890556575872517741234748998962450626880170446820929861480983257047067079035573800694016217433671878154222057392145071975471149740265507582160724213287356092186732949461904350641345185339917515168722166178412635831734598860522228410662019157895757280663339328002456986897068303917335915812035998761651541849808491414363826620396445519563605865168195505501576057992659371472523841578627230671509017288807940607346613020171920704670007613999125922293826571948773904429497840162747408459257452573619069847243630424451038463702115923299065773851365777012148269709505327042665049176164441570971418738666743039575834718516627998507383650590970210384837744447173768373380150207851310851846624006879707831001244672120937776517421963224004111941424932624095944658829562244213267076158085017629475975786536026915863468222344708787975105631964020837423793676223090837368515092428275154264129219157593162073660302459206043953401271942234051494583271993786749055128470715729849892859188057787362572749047950059126504980492455810280075239913030059500667213745285721929454451967488751339043627026189443425762071870308680240926829449199156543268610708471874993235213085569909899500495329039204979704818119241862006166652214596319195901967332560356387251137540648295277266244652583645380717693465657766411923608907562427166086477659976776139791551092947500070692096267739157455991072920602841441220111750879611139157608193322891927479336164401402020619544181067291717233080587419401775319532921425569733813410638346552148557832980884526506428012880307415759366298763838173117230883950118206420884577878502312129634407714264317050824025457634307086642626413318273430548541269904436217851539212242276405450741539864927511052568383898880778338634485174294255494631240151609131574945508780155570138124611679243211118945607276935187232862905105230494890374194296000641892939907473950084601013650133961132708362226845844124237266529533474748681270681828182746521217327623850137998613919040576714086885639002212027672303261239173197091860895418752037242510594378860591990795845527979995261602540234922023480336489217855014819893279192770683103858526662954997624321735822871369649878717738883776382143889760268205539483315638452145338352947270203474560053756467556501251204507641358508223512834304639976072151157098455613251998663102528512863303251874089894262415907820793883297259924913089669867470052609871862146330590998529708295436561669525466700797072104633521675398921430549433247920014408162148409168881984848490936055170174571201352533945449596729365053104119786947393276535133571942314560236764255834328693939944917559424307948993381094599111832403035350532725664337046071712426067581842600472343697319304295039134698462994772684209852359458080340818740872718677723509187807024550737898405792966918465441873946072318209663804322184573618002562203338954742067202346238203181277757782269676327419707933446778832704280310626287527278546492649547002143057620331667122348193987189428011237797961450959854037201998400400362784095703042780123286907520883950632129342759199872849343285330341780719163453321998935836940557256908079562407868575574246975398252206770590483364408258359263973697999764057484285682987501319286440219256513650972337871229440945188095715352018573169690410797710874008524975493937371058148426664284497743965570776354997017544991287325940979080714037030253855504847933390285152724768717936162347102534413012466047332779192722235715532860083087153428874897899345632064659565690658657484155454909720745695824937120807357408821698242185000149483418072041919152968529054856972428350043846826211441399201253995683813434786057976994116361633186668216078610662667384733247048755768935074982534111031603211301659750770288947387689240166186712807046985174343640288229271338647382692193292165522287074827950662080728712097470953107843596448977836155539504468966156918810778316611037262143365698696514515187795243143271789391830792972344026764831140790156604527264593352591279157224395515428328889104345863305711598831748743401892723739924375949336633209285071772264476279516124871110860655209649961708685886704396685046273383627460208594754838070542585666874779947937944125575392142101968785517786789537689554322302308302929536781781073000749093899503432113568178303655961701844514042545950234409649352791499929759962794959706839568822021203747332037525493722531199851660964477412745853816395216336073661980840658706431797216296180766466144355869049129657779709377877752301047495746889122992461513479975854958633214042273417636863977150304575246325283657430979210055937217653032890734679683230891016759492865619383909070269267454217009071288966452306660437299496934976154488502017671296106544797568369066807356954286909979664048714312775929127446292693092442781778984801435301133420781600256234308363669941280111177591476001799870703057336629226073711747012576654138850735929517772457443549440297415652729529336152474071603433302074374216173479803470087482144279870812932885955220233589817093001665619256660872015889415040971824185715949105868976486594977367934345798585499845578338853354045740344014139710257495793988531035618499035718977912747216606034802813390357871104080656701663473337236200899376755875471728001342114483509004474968630976300700647410950832361905426119236281987120811043441082053272147238197756248376172740296764831054289780317182571399353240565285944288666413420334935856533208381934467377065835800656729422776694258060030071913663960481326664704547524938052627826729498414867783719650001209538427741345206799473231136797006503556774638306908943771227867310486645929611226032760779488169460187118931895145414691499822572018333128700257912939053353965776211382991682447503822756465079696629354629620941989399074543175503587409831710570260034518851829039882387783197966783979761004167221469539278427824047048237780907138235053995431498021488955019087075108967334353277123351477336453404319718703617755244225294007370479155734524120471147555601130196918444789168448138977543333175414487622967555653606992500108374971764205897116347330837076731948364513993592117399459161937285250297165130997800656594449897606415074199242889460200398043023931283632460631597346677899909732379264559383053263483747295825963127954914444396353117877680244772017423027584126191997155964812085417006804941475991316016816508912622880024442595848651124392701165517926097405672681368860434004678679857335861871098729139735264837089667930146935081658580023467006243792759417595024208095841263212056827071884560505766021826000541221174345680597313371649146696624232375712699899716876877608256429931833105686921773390840469094547499376711567016667451976849583900570266637604192287766947844506449495163879898886362765984339337773745298985576827762035992178914280186119662732022377465414352881004008012682437852943321345199056890052412236086018599748183644766911962329848793114721905401321846080943437728370739866184577592571354299524885629212980760366919722404309927276960961059330050972901300304336205086520550370254579245160845795823972587198998898313604304207647309703574516156367692596722253999487245602081561432498872944639786168939323812613781435045927162548007444963286434969368389532720349330521301718511773643610544410359093562609107050589663345488616779452301298841450708361108359123480529299503027474439514256199959295996532493570331102269575216676888187031833113530578659364172796548566488749820195737258506309842810455739087297497234278932949354074649814443177043582690643080254933899216637877239976390119857196663451392451709095602520051247584308862133875814766987089454695233927084658349216736418857392290467171907218770192787940697706667850741263236070116032122317600955496142588503517959660931434381197758585930319945252353663637388246023346393567748097861752877681856750806795608645872445675972206167254060834956879014035287453265066320034923985900810992229221061920351379707049635345420241822605025215301764112584492907055588513625046809813077767410217719578524042101126726414923381980480017118109053283156438099832985288214293062134998836017758045646829972757428441947499505539388399269868670659887345126364741999053403497339703578485023507903272528718688862020449467774937888250985713434174946043421685612702998474330901493123742956889588244549098139019713532692559275024802885247329282964243657565322207277532961694136187892178557742847436669551894961313346028344870177031837017838814340381788022438681485854667375881232321219028892894625581758903785968835834887919204523078063651541029759156018208106073252397239420884951949946199076802947298424085511913971356060210619447652198747784919296359468602270046415038644765883815904862697005876240626417541145127644251218072387616750107921040649346758132233966257881396049518313915743803994350648433086005864053819619354255127100699424395841131985403386137445995556878234850940606247721772276198513485442129373358269230439278350939689898991772415410962330899758890730695447707180580846603388329022319783450724539637720355717892573051713063902966281600664442274227703015885881297013947097293807299710898728645017682210983504758344251407833151456242239639563165540946268384823970479936590835389846418273574586925665099379108171052893646282479653349535040346180225386984420055754197378184301743975172395813433805398912826994075627262712998655417295721087332310681289417108668336255357425919729233117343253505789268891970626028079027596661024679541202829279448004763475001549514229937294756305595052214943689944500094111045081961597737900611994886226910395969210156654472507811154566768641558554339965562279445355994944861765171300572698433886337310586239522038847907876541750324435470405209039257203986607548971692413931058269940106152407442608752194814894683041867790281821693454644187575359384982537792306249209875392772058320112864652342828672363885646555181757233196789667807556186902658963999692637208101106846305413493658965809829635099524742839075048592379617189305138906795180883946357999027300410724817391926838178106902132393041764876856392729366807474602016536149291815187191586830318322083769023523596310625191562163579554870037855214248763292617676105981418809700211552751073222401533336728041505039828391031849461115270313489140943624837698999726497934502809292247543231688658049127028889057197825877076315381848415255562856229443439662503724583868399234488237854046022639492859635441409093804143801193916605400419577824281520585638230500027542798319490118381891935168265396253980944228788234935834956406153476650366785387945144290606172619467890537226096064649670643210621199987523727973507980795733235618586108620716663836159622205341629166174608589881817782733608685761564179302853448030644252344182148807845177943820735228658894855204277154742958735229761319004859178761389078653285668928054895834984323628822085482657426694445669748219977167312992521358284107567179442116961968100443291436956563462122845120011392435908996322470693460847214042633794669278263128161815783078401525254694826660453572624651545801770351227019251652711755454229408325903888951163296975366703649901052972111526467651137739589467815246767251919960889891056536901229534264010034451717250043576048842697431960214760252961883322393766738975887641486839486919938491672810915679407661324531860664857010107742188520990495355430851007820313009831566263337730485600200907777939479229345013079200265222139476430018140718685842326244139706205055643166542322518818307402640217017825170427846745719784443686791313305918700722171437288117425992895816353348733472791251272383760401881679632912774804268830573332755510427513705656170936430854138437165177553741879018237881548862308895928384666410423479243889757533997783976250627783719783642429667284389357080986272043922086260067919808137359525792713779830235790416819000848790662288911111356817990611416575962127723703124142801153451672373670229660490476987862556607792444256428969741799621849975134519437758556476748309734658350313615158207585493797205241354972176242480482581801903786320878216238100122505780999867903943138847189250370138785468515587768502416238409679409747241535497541676947105562778703964487775280024939022043251607437988442433973048927702416042044546668419145475619554982841376770875617068106928709205175839136147463839509252761211563733866469187416400228183257887382018448186712346603336828063753828048928139097231111140070721755171812490305588737158256330546439597923458677315277903290634006821343197248693802919800928495518437415454915289387509614137704873672558843288633945214825718815622126895550557798150875132395419599158651650941838121478624697756191435056607874896814796993723520566011617760370541493918044816508077222952688891777040006545968866074924152694247008673712717346666173023539390522206562481828483546707761260883091363579610059901962127196168098076962947630640749622799554813975157022798059326343730089889319372884701763062315764366637293699908107447323523877274779068959855353502732186871942447170859294585684762351791453812936565417069503314414829939245714992383843911444190551152099129672998239237969848158572282886426808632197457245370084972186110244810660315816513965221816916072704973137886586107121027039998211395800506792113697396129216767885624442526838550053934805937605116872505255421049229979017285265067065332618880182252967651291062801313830619682181037437692764734142485006862788199357577664959942410605106217861991521605437315394708296487008890158123884535672873094932623467767797645640003383219925102090342556081433668364834411008090657701510647997794474437639363152066531261181131982325000188904645010725063173448895320681303712739883024156124689558936332961892578221258330919656893346159242545021166038515414519865423439860124122425047869157002384562752377985823636978972955445421873774041760319319242078408418429980924936172970282430155810228873005473607491352804278175527596493912006277247445886489053332458700582204568820327423545621543273792176682732620355532380938279629151842577409075496910512352686868338441114728712005870516677766055166252522456379875933645548187310351240562890125727612409839461109777231091050635306335967830834992423767984339964457051319634751948367022322521171297332319985989661903151331336150411210987003765335687724811473166603454968675550080705404238796579711783887549706973017773356993449884354828442405917689079710117817205317835812214920391709225798657674968566973925391664050770644564741449851739643007454723651021668287121779439250845475808697363521388526245433649010221511935420742362121114830145189076745160414925612683597178465053805778876540671748625864135638832448961810339852180294422231552435146693978389789389012672740501850328984758520511313237463270324801930898075630038599672409779411857449137193222591679526959465299742810832841115979747467015257304892589169893321333001792152337063566135619268156610884543414661226764377435431342108498545698499154568552814912541781147373173361471698720057707494140422527415665238844466642930022224365695640594860919249024189165541185257081239775544791335737032572640693706662746383701660542317611260995384280712281853785690136119223064914028757115339047264707115311320795729479044006465413700182658482420760802065157576521643386421295745636513261527591822293460192140599960710772765432634159549692572666231110449939616822430461106033118397446398152602812195588425179622783594684501942865133961509744884735296514942264884225875263145112703248197552935662708518321715374199902684629723068808874589916294411151371036048672172974952119138527869320671140575952138603478948032706476075039581999960069530813212986613269847535539302951001290268132559361524962102773655793550264859788937204537604177107544772727992962436642657697210250556832846199368264926620906043195165086209057355002395517689786413195507367676229566398599998773468864042362640883683225765060490563606003986977565246717348775563073294765680363253467752075445914550150333415279997341617202621202294857436287120877140663379201217253620315482219289291380550862451459606308886995154869531137320848891530596417180116905150228105421885848418722830291783650149768135074655597265212507233359276666726465825073792120263171585175659406703471130495846325613769127854361767626645006046224328743890483922910905409438357546882614573140583793683714859396862563219093428833593962760492512389168261314779933338605400854800153153143916393329935017424140694615785422581342459459159757340056882624377997768906568804990418329396855883566599757666415839138958924640394551398451542896654170671106741707561892076580444234752323473355838996836606102008260901967376856793132655505367082317572325351317989826786330937461268387980411161696238811400185298970271313265226896669267407283452731739613543124096423857067456109095391745180860573669215985758436381325659536313164633813371946321124213718236181978793799932437552194325058555574074401594175969579090020747552406360285851909639600961981839613624719084199542101626719756112147678076661241080442458507634577336396664465102244109651453321358899754988545298181005219243713855162590493092071492515911295039398172251115690552058068132215860664954437645207494568216075508707948941618829780998145334206816408804552270260205302254647766250875689002044641931279653616095817001082337043145314972612093561193866694258590917264691464241667932697399448245976005506032745627668163376074518359264653750568968077485977881095959202818014244945453462905536590607147355791440014327359496776709027260295173012700877101663956747921985714741085842502542970538897478935014283429922534082033255576784057580094199859650599712928571836801181037223892704543858269637318809516925010908235825356703829602307877656449352009775371259071997391650238864957558639545713137118483949715314118585652732171774423902231647829853333177283278497370412516789511662093381763780530076020271654557674474691772150914822781911888455136930608623077693037585781489149099537164566685964744787432879116435546803904753998475946570742854535190313040557236819543487467175178204590526071847671920600579132394411160781462140104796041990097935448344648290172183669403348207615403927127588069221496503913631881931694755083481031631790374522024090232416658614939948333869382132681362140359628571642963185361065387626744428278885539583682391710254458360213327557933445652087074963766908511534792298782641037006842653295613107802132975885815479949529620969036092852023594034076200456871416114618075155426180599753985001802146777054777222155918926451158623921764789918419906223772757745929891763004117034277880823946227377789105563368608834137535022808558052028679404827070217409828007382286213214142633460874259774127398622335410275839784426394194845826321842907407954008527891967552968231487044946123551266890607545626391979674367274963046791312134346831517253521828824319811843916352812492689951875904205313607851102929270007277228662818496106998351358626090022162143518151052678343667708402020601102372369053391217698958878285787685690561507588507878174734196477821327559351815023854291166381368127443720404628936330793745228220532381549836847384185433845545791020071492859796052990476950637076972046475626744564870010681457147801043321636086579300367057765940986586153766726625687811531679839740422218506653506248962499779985337312132615051446866377584201333955295235216290006803030549997109641129037786286939429803630317556162692360224354241731471964538600557477701688585975156717113931867854068497900774490956096225528623778173169015072968863241880043855575054101912475860645515367949143684088500567496286808769106101055194074421867110522008168071489184355978721035399744864658998836869066482532564691025243684716122359837717646282099853038562196394702278665299424668941722741894152124158329644531046867331722364590993211894437228638219606208961530010628792803813210584641530048585708742053532203947394021194765365950169484202572277067098896240095180529688860495992151683341464431028348220560319187519725695171692848827615359153951589420826086350532020293780869673673945726385088698654388630768478665796299713946764339775270716915656919960989644915990487910246465478396742698912293148270872362764040801346879560950546129906579751828460006889368083545799111723212466197221230530864329909352769729177842012132946879169691785405249139294841771821749169899268443563432971643079701595214980714737844493720728585101134604866628584960060900885937737039260876770681276729923310103859795510472175437351392672936834316077617800380454062815958618506563305575907766325167812257986518833559360800338221023891053074152722090597412580215606970787682998544916886530019919695893869937238522128612620825942614958953087263933055715218571124566074189029938048799094991402919403626436868733859417523047276223074107073047003080000537493586298547427807006838371217667821161874207664369163428156328115383473105923873702371340654861122785561606952365125807449994522887240840876092946447433682620565927973972196565967110648350267250501724681872580765298954258387055123197014634982014735015545749888392289264235393752835263031873994396091133318013144735871626184804071817174096180544474269030540969072417468513138370397946285716352478310839682115351065389298448406956554042875874461229199188310546545347920574825874727144690897719519860373933794693801307562573914243380009059251666741571638533306795547014478015095799679401101323834516801161307829963491277273703856581508619850767580798308905484345425480538445183931180320888374195774596760992166993211939731667708589240882610368258490434858574839834486446061559195732075067861308678330257972054731022803115320164077623658086979637897181492701781382188438567122727986191592908026889377090894139729312536000017281422696132010906478492004149747162948384950990295225191493880749527140363217649502610553124985283429895660812242042534710342002307805914478879540446734670252176784304760285924561336095084098382040269489521574797331160910910721032013490345013357752515131417744478957988606125269222262956225913793670052528562517831214571420874913440193210446979078247535022753738535858064196139719204930161354498617226568589878872117568475005759416860834098258624266340326092092260874684772121269599792217748671616157140773827409505530270540875755083436282219176864268719420846726299928571302477010382005913699669234894311765352729820881661865477677477084502695898173976798532012533596410810338011325963751487915126981653187747031833265572755313017182362906452311042415110994149502763965505694697605958730861149055033612538811437350546011962068668010490360317239052698472664428646497323485916728431001402098607186325184765227080393550360298557568125316430293422815715100509298155246546201277497899679544064306984919713119427947605660108858902463034400056744578276184158738266872783500580988819550454412437579580070655511916453056086883709915360016362353473992371629649824948296412361712736610920949296659566042355272631362259157533887557351427859485818919495426896071113978446798404060788257416009836739590197925337438259535280377033503913256723934319407574947554158347896404064703451067826153902676774345993112127891930773276991033004937017137487245152736765333690110108710035264072982561399472073209641522432682564224869193547048300033934368296242674076890987538449141822957857462366692120603178446849593756786126058702268281316306666098475607075081240291690081307904857712358553135778281374877525248398633165455750051877887126704911955944274940969587645243592227072656506637265309664801345554761139758079876540601537671946068372985403553207104997384897142031304322036583765359419853153688831896797913189934440197945136632084920291993805758400212887222927983635249164014284418116682950650657337763248497168064818694432878600383039944470543781750760586930618699506094040132334793446762179747189479929275718371577749662953725719957208954035582250863747456108346428353996812832856741572291414758752836297838498373714524359084698452604514216291966422194766094214361698269291246271330170526454550245596999149199163553104700199530308189497909004246191409057147609632065683537277843328726920163102476067548972096350672902541574006314354615970518631508565051775347845318599657429968466473266771850361042214014531854949958916001548517500876606856447712898925172094159349191282221235868709835068326353147744371176138762982478121323599062067576448299175049748520308613171109191968548573080410361613976845321083059686103013246255815080531572010352827460129844382554639586800889531743919854683980103604305780002646200508702202602857852324378458728396409333001959065175266674599217708197098258521314690663395245877292310006996274993456395737919687718969284884604498010265991883614522488172481043800639788274511391018967193372039206868481385150518208667111756142182387186402992401016859381619348490231494801438256708120884430763629709302155261764310477765150246730181203222972829448889492150947111817350358520883948145911696600321928488843945774481946616002094317653105774211761926114968599214458404951544656346788986184469437940134603570985728177295420512179762887840166526649573701014149519326006294596678896039327117948631089272405589193191522044599575966002510195589092654350886695480493399182026083257616493878938878436504137210869103819379701394590504921941579915641552014144746274654335247681481582064508160896914580183978611873237662503332864560471870058974819347391796491837238398481575765002147192018255114658831792445040675133561540034225480274160747617083060056367706198663348559218935017313256289987322270392409344345146730375627379014924478243916824394476001088145384004946690431414975015286681922568052739862710116873988904480889798817782115023442615616603446807461112852884195844091178457565221158710666197900155778855580881243773291112588949222820159562557222333351849769788886246929652153896545273834612085658453706876758662841347612851070171752724373194652841282091479917659280963570756595208031207095863770804790773169455300399538183497890601006225608548855040227724948553652326511379909962047614727353667218191883419560488530314215464243563669008543849559946426298360387374611791963949183310566503842407835680698545638452759763022691357585991233601848583624616371784451525385944262548588627175230005608830901955209019577708255365263584066498817591740554870414994390427763580387818287101542119386015684228215043701123322697695023407891594616726937474221254730517943269143845773977631949087889385864954096932418933217573362158250474214873336712272449186142602389712232268978228548747290799834537623887834127689696733523718631769701383528560449237645928996549359695482955945080384232058320121343984118119027310783247087778442271185669027013386009575506988405324586832957538681228511394055928359839194244546366496283290160509971578154319900268153998418212018967573228604339773810080505256556578412437982552296308700918953661494739629599847359502956194928599637633468115252991874457438104319009154586286416361176040568188026819272351939065277035707174523100499371371787448175930776107952339332734703791699075166800545481458320306853754211916822059582879938702833387895191932676669959426335955893394991974163391614240722825491793232177850187486630497616482768516746134955130188906294008709276694736108170250861137688628715604473647503657751398517208478025676149106095774271980638555659436577075673476248569724306775453057250176099244474863562875777368443476450151293260037488083105291280898980193278651169857878697198595498068915619829005148416724771921619901105503863533307036588191993221442494374450798609728890051100986108282665953645859635907397858634251335416573809076520924695170660157237660673625209805004816021313805282600549918093339297117006236795055545602276118151731848861768167921423805768126710638273278338252434314474815362596459625655975602753516712826282129980661744235823830057298558486487215631877791681579813081205725788450536355695853290955876057707226384376230831384808797409775957324186030203050259038285314718839461162549204313534655626197332567375652653335850998079886641366759979903715349486547087082215129152033377019628147743911161899402884317084371319236415284376412525466562906105018835128894609255959822162224207947940776156069244766674426114942310023293484856372489666575778221724205080512432403113286244931993672740848199592088432381935448137127055558823660127762679864825496970892306253295466338705928254826704794313849171814377369770092503681506940807280047131893943100910875450621161378059531461701022568824856042574958855204353255263513409662933210332070696925031845866095085956608646876432958161169493412445256760535266220472907873722932918421376998387909158246487483294502665265579549677929036133014097938348156778957032948850076246462565761870703187559824016401201554955864111456697877244162176870074793497559055246628116131871521970111514184862214388966204290166867209587177061272102230391792170336402933666684602104303907842960313675408519677912436189177693128642315588097093952442742480409129659449064982493518569635579865721540179667014951050677077718946094116473757137731799371066054868458622949322414443966358792829760851158427259378842100961142562932298446581967841910026406076595802872324805237052047463921193416305958009034943951323143601603308596739006078300859830318780489704568477817133905118742177488573855814894749527212599232930342578424708502379776826720733619249613929148742495301722580704098109186878952769203469927371580332167161262548305790660217260035146576714275449730260266612621128306268462077373624598949445071331402007498447031046098494548182071870515304225608408175950106041711007283269059925204440587303935651903647205175790287576006383431843694808363232915986704159428771417967783155184408121678369955650705381395438541586687455342162146643881059398039152958690302170771856262269462198185002540298462574070280294732309518947162729026519223737488118237076223574828034097762180432281479128122500277218461606824391972753755330698032056877383942259558492189393266226431016999188466983152938203504044466453178794261591846366878625975206792297270294305419704931959113633415927991889363153596001836343485076707477326041250595235470432342652469414992242879658812956559641632454119868233877001935976053340989302734533528423729744942703727262451606684154064286204530936261327450072038518423801125880254169648536602909758176409249868718004037567971782267042597171778664367271314192314506149163579839111349941300749443217376753114794618992015111143745520446062639968761898833680042234980929927867056284636498533731734498843174086079801851455097437481545148981858764270906489912260480458516012055422391083377848797059067355973050415581860485766691713075040126333303832140030090500178757592531500859718570763972765627803664013770681319573580353449048506853334363942779709256160229624876804121776827922742240996401749098255496347132527352435810873250802448919833610957264340076986014641098585325660042516339646179718653042173691403565976778452225506659486619903957300660916371923970791208525711806397009409119641600862834129855451446292485842505728777190400684511371848928597932734035681073230654664256737402892853508479673719827668988666792938346079948558908806157148242596183855772791381637647971363249557243348375355076019300280131421095047645048187687053497656656062102243349637735430239739539706706577672119239382037845536116266929020275996940492536689002522982754327253061019493239723168978194311955468203051648962517609872024634282631431180852730438040187093302781382188687560254359321656757540154466618600710916131087464331423042534456590236420013689582434098334394884071259104535969209320877725688468767353994000259903956799860103275311567260385432517309565177523895760552048921866807282827246910926045512938915113548650419996402535177699707972513394172473501820676939277057318125797790105269846927135635999929012494993247493735237936911250487920099108966543240519372091466382686629801661235370200228075703215601773531000695889631134954500967274410570079711132380899644955240640312823767702652186189000152238887985483162585227873120556376177600083293416653624713517506035328338190555499253441119526440039761067736488239929785478227416574001934917397513422410240120261605073809339872894489773906103703403827028623599830741442138435562144578785939813899628021236999135076889327560335003884407400304973679384521763302351178159326477204186438572177374497703061216416708769673387976175876136904039569193345001271776159136774138558586616926961948299440979485147442354744102574034419745529041371386079647599556444092751102408284403343372293352357998061080996529847684518563484954962349843884453957161175252695369088671993462310870652271357006550529271669664017862184326840845461567920490126574338405074204269667926477775733922712690085678270630365074135009859418567005370120117633714195016504064540824357664662880301809421040270902323445457108804810681710359143292645533363489365631777815272344702188551655349641221325338112750532177842634772263206601592504360710583468525674194762163301173143523135583560870835635663851496004204919586096232120190920657649020932577487086540771513020920928625921006994414246758088531071904292370834138027259137888619306776130359312243361553960563780279123593738169267627607724148376563853710488533859212990103923860340633216581921267878847236472257232883936043058384824974486539055491293454745423688572048449387796213808688333920335595206052700332973123642846358589674313290456273570404923975426285027472327481018428962982936873478447039817626281117716671996417419254001393166453548345509090633417607892449009420923168787631473052464525955123598269366888177807071347704764771837702091517200406493158943907598843205564992515544585022508157406495824265376280234628103273561755988020593860824992169588656367451840668166120861433937604908797494265488298617103025943488631895726691376792222402041837221726250185034785383965583928001883094818264893876231198162531525865558769485532665188189696969820479183366276577139132565198025330564306930279093690996475338636605236311305305881654547743897741832896261879263508221468435648062536441004157227654038296126700452328459306830381162936357333957006471880611768612457731693975816028999614412776602560786885944884161312798329679893678896442721240025923634108606673854715445445277575748885512496597093840577532314953147186961216046682408604491756307164965103090216445389253355484647394728987069342210297354385609520741668091159781432202988437924265064409758325553924186229928694865103608426515836561582876079052009099830906975959659083999500008025890386247226145376784094165609284969476817755027529902230979079516908207809210931463603685578587741408479184315660907909704044545860806751919000918576251104964709566311769128394755710369248104185056039452433293271764247391323276139128924988935432030287562452707772180466612493597359269306973402638962950313718310604000225185277577853065743377259531953435781132649359158257456743829622408866104146273553008207282311585981447514705738672742350966926368888962089702160102863590132762224012964668676367335083093744476682306327957189207564758006216937652657457368623701185414628291350634087254808903574973503465768220538387927094923904330222769002203399836323115082387869770206015556374549437102986777060888507534036985228951454644042648292133248079556317541022903243067227555724723367483872377048898680555354938703749125327840290237209575732058312227027254301304525660162619441821951520172905812950475087734587803004580972536715283803471804933787409463514106285886995531172263067864995554708417663344085296432786081011681458328811860490188193448088764993365906238819782752410778939584043083051481170710038172363303352224349669479319216390861872901207446361666648032457068137014404252937920821576660217308173299086054750451407164704085527321926127670398703258497018570849158591479154026983949042810269680726642659621718113186020679891875724416036173516881978466152365217416554100687402419173646401953053794595386503518622662684769379791384489322619559086434960625827860583369015524881883184928352463789391587872890201556585315458474227305903735289410567722230035455646148446301272554820757280251527391553509266138620143274176458968764237875195897517633808051979156027748694745730285545124549580371548230241578267788436804122708695263821582072435008818732026998069134352930569601166944954058502406515877198498182492515482454049797298711058914036458150123445675905402727107951549613106232009071698651169692920674916317792824982889709639681003133615943035686344088849691154612527426312730962944901819866841070065517271653694606398370357851615160108163756606932621236383813903071349165808677563168530882638586144009315772885486556123239220968212419027422381277613851706143877262367624830192639610400274700920415268248086725576074897147653314581336856324269476945180430170879908353255496721026415555702779683013700793631460247420628794728280158288825600508877922319965638103273072227749698587088238602541039355588595201805413944293840669313777339725559944378884113734157280849431199778766075780823551941198087593158389059357220395813421460891975930971199024045521157899099740312173411816508044848627150293225356291093515401845359983555584562611156384516699669712619152634035030745412636284057003962619920649215808784824536077817273425907112168377095599487035889920198236803004367924086308391201762428172409710429710242909311322616152330725280403183117259248473551132430705309904643897716392973454390362743202952936842223490964395304550177846091676564196703106268281598392833627811052697425010885591514714739530194655663610276043076696613130163534212765490225064178553904837431005743393099310993326556324057105300765831671765879872297822268976436799046234415234869893689495735423493856798772585615658308501579989607483152832180292800549514483802280748041919097970331622100985412289808260545774492264081202869498668456313762983250285108375806761781701228882148215913270992164936690656007038216649675459638240184517045556393384924081084642316453457317945651583958136033448613611541753623761014813624123482644872827364032811639835082762474781810294300906089675253717766883817970263217863686234193093766139703365694225465009448051609078957854308110617529147165705530902013818679885695159948552658819046385344091052617718004262362691795802032538138008389244822008814228471334467028811172457404193246684017999144666739291946835332115004931753493396092822345053078671951534035298875934028592030993074850090514132938031982487598260850180572872939012996022254041005132444875564022117727272378760629130072095634764017883542722810219319967649637807792067962120607232088823849113976024924292467423796263656375426806435924106403327470488963697759032483983691035237727327780749841318986536522261278347189426004910815084012416037323721966357921212776532791783861146681485261296380927244940316752648364690325826053652343641830597224031177655216791216267052680629171953707639043994498174013112818144095601645989695314534886725907171824939323456403268024730556991682770491198770954513372870344978807518933492749195704858396950340789859877920557129616514433005012313743750248871589411721789179491402061900811457705841299565440703762621880190549389670554197059986949034865081655455335434135567735577764597554585775221447329419252901476250194552056314591047325490763388274257538907206769938547893573070940263431086572316861662410675693178170236306807274640442535737196959432531845855142882129524993595786302922251723872043714424950330093029937210128718944379280321097613978079038652367050146084355931222687321181323029984739524527626577323956359878533760302712755133673066505447857995044492070597016745814326806548488527253822714557805402309139114378139549513656846618609120382522759059882137283911115807987046191395145456472926906016228493956359010313196739910989619176913482557344791266182524907604102753787414323606199291688180091505037053789461659337993300626046215688463078908085414931456887085713581828970630861087521330559392828882841484930663675443765732440725405348864991065591489652256634630360305326877943535615311228147206180123982700357541711173246845180670716368774003865729628342628828694152360885170746021389089205188189831657180503844275049910321672620438804621108588672828693786194852039607097683942161432640019526491984429750115247473650045612863020740725074044296291744042102757461941724194561568530875461957952450847911680033843051655741709606597751627312876674971020631421894278880477961681203284516339653596402724280525249748764276646055108952648445975946672979943664708628212168271268423196887869457708932154581738073100665776054407863319756439906882389013616409462593027693193467853023460424615230446915168467457384777235440042875137640097105144171681762819812073395099832583677847184374633665872226224945952228277054299234313690469235938161297087969687290109903465917068362525202493368825279080765059066308815858444465178823316869239213730563495620907586026467219575790656865050538196897867304979780719320718516641584596814085898700052755749313265146151681373549331391508939614708109206256041450356101836098001422760207846537912554416753244089035032895215658566667030876675808576188221201037207701856155533121574624121744539197255093189292898643996217774952516719648700609215410658858647963344616730308131966539373036342133677158741073368604758343321954852144778498877616912858309672093796424208552715028884073161280773332152654986363480151340563930911163172409852950752060216234794918627991211844942723325692171035461512838956803032442793666266314226547199761986261324721668889642846217193569155697578665555134835406918315315596798205507321597989044677744220809267488227181564872619965654767330550535985219364051458032034233831300408935111326867216122827633828353893831594430592256978208928054204259846797742361592616448102348496701152215717343207991480744729086291009195561721756787129412731336301304057388959069425666133025868527862676073463789649863371148145267328778007390286433060397362062414813890253472051848476981660445060704155090175904413973827328776306590567403025945773123463804489085654527525452503318639560062687064784963030792214987289378989680487766474678665094067448263080358889823239483045210476598011132495643092433878477859111470818344171382931554508054809749639834997571248993516787933043292059435503998680166534481224737664765695549104646257064756640840299783303848877444935488310662599531704026078507799824367305536479128920992127931398060635464975592538545548360084362147692669944149822179867773735289540974270249833246124620456049322630965594344166791265553665393296867781473126294444572729128568834627500117894907705448652621181407821736436382769995335034626503016606611572390740667789745998858115455462945416503074684944889648709753719371747037600093823530707850891955063640663458257203013207414805539095063783928053823614928916327739451065466660463862842966418909952644802542770019959361590322544189667891943326902244705818095520760128046490806732846574347995748789097891663388305178181132230585191996590741437693106454114875080143436134553182686006813028534244028188635259176816154655654218830586730928525901061733722074118035835105475854574695632764976187526851999457310412472479607077977714666853860449240466003221950933753795985293887627204709148550507894074531989785751524210445094982113115137492761558878505006912041257846688794643807747727319234187410795138088878833792629167359098715156810266058518870558850064602507587356934304608448201613071954035314906013339361782721974324397341302944541069190368525359705079931785670974159887167164955218485720433164565018527275094696485441282711064772703637987584714807514288933916528886751458890971219528339883819561968506927971461241418871815730942489456355076050213411171009655605170157669188789189335095135589011022653245146881256913650666799158869500772508374585564692075404122587783826543758698556562805916800135618996462153936652090897964732220007411619319403520793470733468495009997387978133539234740104419754844534871643316033110111376307237384201451088796146946796367799394970477893604190030571902944654479207341886145133528230054022566462188643171391857073767027957001864252576321136385879317534743889409198008695232011951626825470918610526482578027826524183904872301976433795861615109328960254458194943984829667204851111899346260672119071204228285631694524044069894710416838469527281197433075010236173475867783904212818298056009766158077815429164373473883840392905938529498519366145469516752378152318366771715100944645198295365621498619051983483642924751943531869574156386518867473028442642288162875945777963147240707680494669694208071701557635328147009762241313787721036202588332163319818481555013504907473340768274106661578371989222018775290332052977454457883212649998890933837919669745671733871106024815818994582690301942098958615757545303720040132568298282687914084460845350959875505325925335131979669531465318736570331910531625047709434878961779098843843554443839444257400163528923196043794312694648630694348987253595746267936565102780928980063394700462051003758292579170044131330681840983713541457917744192602809049111795933189948392881635055334529651351910608299879754049638496261476407934288937541425963721154462084697033654514928619531435695768227634403974192097781363553358431590659697397382307299605680767370872775641373993128979935357100036464847362249593944399548060798765084219123771739240511105698699711732994744222097600502320607629171370834302744819107318404107576502222756736316728035704799250546290141863262576884836877660410486241784277977512753295224132522519064619406446907038108415497868491704764726909338858302938616476555791864161578241408437425376505331193591602530766914273621284495903691602760975749518754743969828823065666959142551317148287606014827339484855182809975473073850450778128421657740367456037968973654377114908149898500299012817091518034517102561503141633462646741514378505256661042815482495690863676483827285218247298122325948164029368377182151567517094244977250716921318102313148051193733293697944311606741726390902190944808394736860547529823085943103146069856427976722854316329107340483638742123361384216442211451380589457325942331556025248036474145179865916908212625206939464582147331288209085557304357170882363837832412663499269094384372655152773950917776445593516239845089930350126216109724551833711642594224869045621491592935598606377638310226973945983790664160435667885831618306704655194989700647226249558637657740996490692121981120023709045785127750062332089577467966329238571094183423174698631344279684948209616844420205079570011043769576361151152455985788532963667669511484060208681190183492910336751670237685697103457095648313311579604159112743257153143595165345638921207507536616788537819453543843079817875641441116574213839204513215043259451625451437879228335136732477922305664884299648798703456664812515493001944008145069300227546991210312826440140977203242773631477232196179351088561685433271281426352681451742687974468655677148637738667538605068522697387096477282272043603299348771399755489183376070680584228340311193371296457863803965938507342284993740906765865443594716791010604761279908138282452781029835072416275935638804360012187794098293905932265217012533144392416777291629467453942300047576468319760956331410690120470316805966791694107015039571671153486542186941979587050952893989475147957800564855323434266008220316682105834185321083718622337142879475334152005377170101205295832756633329524709673178006450779935981432527899622223059439813548380935686317660983886224996640676763687310398894380359719537457293361607344064790717173682111209749998261374215692763004738955090824686643759567175904226918442036668109270836777692895479198228072991483619386488894484288684067877125355681495924387766273287556466318941212365188945748700262218839909960446928115538056191128953104067051827725943764775407194272707715141170127900715448000134384425862063904522723923487583629566193365705460930565994474426712938423159459936258892252005693431981718036438275782524936609642186165511685393685421085711220718258581468360209551527064477501515881023656039609511806657973849384363477234546714558875620237030007572199666682693922004818844267725516075625221807690301801005053231489042603051028829079752225191156325146259909668277248917744669346662699980117092777233085960566662158076265759117866481671232475742003646412253668668464687308171148989412927451391172167908331413409011076503391262227581215048687332627540734325498010135796610688830805844523044490542419571454013215470423440465886984495912179815566256990624578737510671664596402144408549740027737625039355203324062905206764436628891830643619600094926075930694992733862838362062454963251031894136860586938080464731517492565034739741075563886562274809303957057266846197614392101184350609392591680912013498629859609082782755212001897626533484054402308976078456295091844602977416728021714437985736100649606476947437046962397437888240574427043466403815606883435041534418683685475615202032906479183792505761799497992042125877343307347666299780065841039454320557416817430602638728671589692100890708518976289886786182460595409362606704218421239195695250098686360681025582506131294819288176739735632172746692566309202622300166291850828173997855668560704082659590094292444858826302925029174691730833697101308033399276214243031625979350971267709153223625204200175545810035414766860041568579284660687347358934964414673084106529912369887700509416939335415446531593832819413869846833520043396409819001590361074606884682084510285402031765371360023095290254831610470429090234833321227512383315044612695768109644371309005450423361618954240313218245275153961160847962483388517752016211556112683289109023360335136296797433695005911788020187277319092398116102973396774121603469573233001048128936078163873067039115915425955402157590994389592069036775003483086022082517180192960076666558893731567878446739947454157495617272611456665401942373484542143993641084518806247990334349837601620546022482750863804449491234159644163174502660373878487224795431069505037090460003862639824689467326565567156189638831382427437463508337939660159503972392766851770145012386456941599327977244254541953826881247722923565385904299379188671424512337769437072231406298862777180859681373674972788518728262489215827961136587907484326469890165843346658872973064318591503730789243633339965210246493655442712089422952494863690781405804925968413497840976410731792013491409876593852414825803818153880332488702462427718707877068432857718450355486941187153981552086507563062246723294122138473819376477222569890248123387838869058689937657329055806439588071366155812300519500000332228899899035025505262187765883940466772777065567162055580311197139733241404387518930356017348979987287996772549203545443677780115693828353724348800781277889059910263487727954995564949050407030366008051614752426438646600680578252703062558268302469025735665030162178598534557471695028547434186786802851026242439391651285839565978492979942064576161340550866185224869839900012132182754711307525871759570279712721785009061346899760395388094675993495904432938875902881402589384946193199229488557713824801000925324269776466019401661744447555421873496265662952864661928590019769445410149732083364574684461685613381656761699935141529185213890323789977168197063237945179265951604739741884295266889197196038104211056967310723991974682466961194568240485659528958545837790789982858374184522116139633122496634905630774234700754531087186599650145062114501801792218043552013668636902040260195477748495969994414457858395329450567884470688679892663455069923287641089099664715557726174917479130767480714470277044378311950292845972556108765309732652650571943652771499501484575426822415375488352829153642025933416143940997198234934356336156766456511233730748132753939829502736254412762393565607199730266367650170441468531771877976660795173797473270310448532159981836246549798858139058077104991626071188095758301004847033137957579476484972615522233550344378692065108586493174056371557815553860486391883155737274136470328048012221745645732206523665111608333380937278775984124603521208075656026005405277166332545167177220614180054837401338650195737467910683963239543831919557358554897657123963943030433677104366692052900080755598329947965678687287199788364168840950474639898978954915907662775421932391985241057144882831598438050031709537282161510894122292820118456595177945906586845622039888731184958235827463260187951122880668466091062916231972815060522777140541115374804854863812313968159840717545396166264157915095205726059348880145439767282858680735215258032398955665295767691635321281217925764243644418285300586558330102175541780403646761017563469739361236332905271700179910066374538943307915570793168788254995926660607999215364951056239256940886187921648642885708270047951157411621847790353977443508276891755515770481977871714130082301569473060343911266945763940655906496080993939458307534786544546085959878451581839626785269693964161400977654846433578396255910942003371657835214233188845340840131338061718047235833467613406296734008134324497642406058261732897841589451323908001017393671124294532833913835171314718114218546378686648243713155103289786645217988053972946023286229698271280363057496080472851431667159099286607396151349732912299524030802702524424936366209636531101043758284941909313804281225102013895657906023522781099947014713214717570283430337186556665004697307023447679811476623652869560563405603819040958929152052708762344866796369516554568042291618690398322311272773640510023972377544024466363655660200683269234190062379779410344005425693440506351159125788066097427690214829226952772870613551389963502506744034891464511102746688640437765678578823030889541321232133840148217677052108026778266195331442493222800893254769050800926939956341519010687070453502857861321470702355628026281137792959875269554232120633455035114770591217812194437827053354256543991282832600926305096582013305196451304594623827607997019935834633238149976731491847249552355005082976405343609351635187645194969028613395863135061240805529483545849051689808974757126226503736682988234475708236275329536281085496481733935000786397653551465568638373388708371767879178129238924571594855814998808450240723376348482714311544511775839076518863230131714278549362332364220332789858157436582214903505334073466366606345490703470521202645569016930431221760573449843568920908987395400037556927495321494977104656788299051371365461874288923809088272564034701177153707245746693700663963344527473840172066510568190511342322188084262424083116521583895680396472613374182685404758229376700515745219737300668585384911117358763064639276998097364911186188265119212633712550478869760453486088378300416644645240655151336022070728194780511465343338284844832996622119289178274350517184542759759490190080827752122496992510924810145684498097870903894961735472257343949432413162220509690070838413453180879917260377750147782345643523244534283040251388418966305905190205286328285184580191661121684283802084835639646364829488773028690083111103491809438546057671016292308568155574221748794601693598765053002136059430674447455550164903027934615315196718030733174522646686867263404438158028481520156869208195579447981345281344251773972996843094624682699619082340287289037348638614860563868443901871844796403931183256568493226271001429294752717552570096061313316373177457036376009855736803184849475951734596904348045615270024385276837742246783417847209396634617727557130683842176965098362716455933127552500408619441343332987574328492419921914278816576531514972340939540399174816204431444635580891347710276749384378836430326595496699925570479275711230337022337317664535089125123334461863089709547327287231927249013992848676945635065272722475125877016663549491449764821464647162598869829090433307065916405043618580594653710680032047581672798860019204834019577957675309446311353225145637358452089326806272638328095011723375631550930477720706251170861632105471624496360937582813512894217418837675029012849776816571813676785321207754541377047445955589014583032950185641792398387368828684596038097536901086045012675539827760511930352686777242049867408676394097352583463994651863928876274971725148295813136580443163292888997158036161119868071214323920404305411194770548823377526772733040382162298266484479779023611240121172715737792033332313030615321820911493994871150019795208285646181278765784530975707004107966676948120594285962865285423283416188451657055569678533110664995929709391580645760140177912827388003132245170218764371271204672695071577280221114434583010424032288952935115756028514303088865331666430691979671103175167413239205916874558857868995516560563502540160454752508969648576955727154502925408239173338150655938198998227554469825116019979635319838768599093080283216794743947976909895751544563185200388747669171431467164064236030509480776895202547680186020093050234935363058067981040355849791079058696279831761611047094834797659180382438954868551194196983718165713668016583420040611127689807898527052737479380510388255292390332626967889567017145530787362486467243914434953477867790209851275573665182870541999569989029439157773877749921956121982166441159346752897580716370323795833061604672681288888842565836741144661792665786327040593728833111859058514059451480943480944037819430791117650130957854854398889164331886170559716114555175035804967096643018596312376068998708620883892189730177394423875246352463007903549439961201289392907641111261259504846775730750074955597663360019402848592628161975683328678196453477672623477081933590641616592408721013887459210967897672520875353341424719049360629083717198840389623785541216565784135970853091816873945669340051132043096135205666553005196217926542208784971312946633011264843387407119060162255967488622333735115041567488058758338050688738051804419426111743571984223410754662916134162934776429716352599054160786089264675118511959195234746558955596377131865257435423306049474153791267236862980467057762698946041361020859193398680418245616913035055768425872130556877119988079321340666243035671810095232530513401754808910393300407308237653020695883426450215092809865423077145171151486130655713319991726588952049235167067251141297107305860205805705560854380873206803788019972780488428068986655329224552368517465464559056904211890755380377428996767547275636306190936008377224553816782587432463864302127593758824351422993285865493024967592493503251569584732835027984823476971721459636285272156745192710623562928947960556880037330864057036186538115445950522986399776967940922935827368736519412897658819311394071188283834958209383537597137593139579997156520847812588527484608281779579003362701238650329395119745800401770924793896544301905981812358229580903390445853324483817440869071059642325841153644617195719412366065189212346595915195874521223752819902867670038067922321168310838218090754465803749943056544916159582122267135558835330261543763979503466399945249025434359607802573350008545816136876327771390880476107863330148117042838284302615712452965257733751834807158223084541588803890510374146100013369186714800364094372749184011164858445261351827354765260405612664997307501450871871884034102458662375613619292464363562527513004391536419613829178489510981998845321199041414208082196765199042079223176189045765175286005626146340266147716581085255590171035560243443055309613192119198591899570884855115132724792903520073500456318959785677538380116164320819214128936509974982628956282550270546044421507783547076542495369720774768865720226066551529065504148423139047099159964053286062525625336807674840373772257079058268136724267892811913315781135029112488361769446162838687048221780132187865086269104552796300912717326634231779631357935198340851924686999460871697601655422513529508959473094529533933570094523842411061693539501328168567350671542328806648983935032691380219171922018425527691073469782839552005601041368855441195346175734792545810264073619304760609060330105775411635452158621815432939163544380803730966951442083862834434942695268268776559106422172408545471642410062824567737045151911649629551832203442061763998849399354172195534047758761885331513087188776125665443135379865046749522507131749429476174889976896585954280716710965521251064010789718693511660464764013723591241894033267114978335833231768950699480560903022878874409009979731962872907974223491678770178757470153676146898618987915583518207092600983291671390445558703278633721534702567943021803922113711377326570103643425317491320784030529702302284249741472868710491669989699668702533836815580995123524399010435311140575690792937805994074835464700506670342301863925262419060380914887121755550299325698823007732751877829884279564011570335935465707021245504931912674769742832130916472260313539344586319675339749647093913798972624383882156519622338005258131075796975629224324511184020273688618749096146576873698898301759796038698272468419011190548891137363221221558010882775309107873170335097520754749609224573334878560141626432593285568934837419098509363961086981404755504676400510984980087146833385218092665210136330608156760391142903395733858597303614487257135965391958318985043830051376598537617074080222511316047341064722232289359104689221004647681568533819523369088291355866985303578104047130908757768532020131919578976815875509925925712566446223587328146622700191073612370562577113296373102377415561971282511060132747203647307318494206865580943508955105678191874173398610276887205352267882271883426800890687692709052429349226967141559925050245822015970761445118280256320412725151806064197148490685985102657772939842205826371646352068845450475851945657334430493134894456982529640445532657487587814933453387074097731630720475584612671512403672568826018115066436164387095417779779577557836949220588756500868492766781418487399133004524249601411778427609229806029257081736947273373265593916302434820692282754914918849371133670384191592144443397067240631371810940349153845482020935982684772221725670274815073571010907999350147305681663544911076574545439482181673279284197077419507366965923200549258705223100751243446045751944853108905288423182327273560692777958606485541465392106644527983508347472257977835054104944853234250228074355570133195305875462650558594530422586908827238411527266301149186175964493337952272818748241767740412034656547081011950689109642818436719557603270572863568798744626382323558668082110336701996113844365384034114092850950460699743116863132611860790486589691306765258762973620495587184278427192069450556123506045338843110117272343762952390022844207084792314412427432719799248718929054564469491848843943468927013418235006589885749431445737378869484141356442722814951270188037934129516336058278201340659899497190993210133503898087344790049371412552387113441599003694173731671684157811628916942670311689478683978796881924633239660211802230291454738588815537156923120093088172013591291654657897137179241868657349124074250443497530132159417184865573416697942404487833582596848012238400321031335352230144343023627052130494859554644016769473653469797320341791194440588136771162030561783604124931584825688271724017707806338159129452541147056313091196091816877192900950382299960616648332684517784457934429650261618383757005575141818685747242648611635886336079909484371659199939114922017163346904715378157193974387549986644104306887761011826108068454612319575032503001017885707395189926957319852209465404513815636859462608878251437493563210710844510422065046120038960437068284117215524312753958788582273040735935072931911644314764975694948053958321832300166685626760972365289537998268002087371593480960074177872498469507941485416075574058238546095519559341706655045655894188035698614537249412571848165263718963050801601009477623847695999935543441311632937284577550290837697242639551981463222519947728926175742712974082810997434929227913578087400412452763522362326882608105771096091425043022754299680762806664376741945063305396417938780959378641415686817345896885116482856754262798779272202869890232989207169630046854352732991038076321930754407189846157509670407897939324441422468125428760900609014756658299860665959234354031859420609851256214628096783727304536174612297577162410607428258132764431175758301618660199023362894554958322312573295367662222870248278154307341344191582293975770557459613053571444772488277285630244545042979730274819154971600570094383291092545925859809913149868455493076809536515035143775200317677847011462480187749445780188023300685373224231667074646095930367989844918254524338864760920650501737549167947976935665862364964295476345272855488965163813022428541346333300539016407511488575011089964324291475877065195742938371925468336000144542450382652189404401434232714663982908956833955694121406475587271165335492330381667436803234431167947867880347615038155924929647441817594791985231316938501095072223914765206699701405066011300932503045819221603163423988607498000248961801514269468657549441654861252838356247808659022341966068037629663468272670316109218476586151197618873154495767983957004210855648985278477022518327700048069220207663454135244998069213195709539930915841619645234197454580429618455108023891405040891813880153376231462146784138536382211878440961739074436873304926943193342631300425338452497875285150682065104334713995213621445867888035627105458116270013434322085273857905929568252066999874657323813190965011701502695043253553742932176774589521785916323132350550581320203935069590435853358562757574186785818467909961546806419871057632566300654798023595290189565016968835443028387510060971011333431393618416753854722945812852822966238444892040377975995464496930964100689166986069471210999365386441058480837224474634627390994932190519153360100936774118467201445120267218533011201358025468679024433528344721863117697565551225825855236145103040981376006712911243941664842160060857437040380051666159376353854540710931767798957773717693845637220184728119653118957003970960965163820349206792637468604811590890764705602484358797511349324567433864224116714885951179258014857070032459675342823247631756635199602182930733824015661996761800050137392436019536803211008124538809023093329308215762436554169677668072786690871692847138537816003579178780348715262290321088511853658781479306248869860018617269507835323687528683698766755862045954639517846445750986868049675424177985406622200495058741467776041426563960311846633170812448842755939000426946600603656706810007217675421343561368425715520809995815387575323269874915337306784149160427552147204517096063966327140321964114160231076898259630753469000213130667385085280570696055095636426117439933184455013005162954334755766526852558840256131422432286284561039964624913067479981893197067693220585365491730646598599535326797152433561127007059382788906041037054475095287072779252517833214084940297321752025907007319042675428761587642199284779613900307311530709700364349334014584078094964809110783768762776137603359007280953101461215786124147575428703009637221196077746734798478094831616158453698044440862564893590787614445466437742076633221922689849468317425381648155455021476807406854802308019536611683940570256949172553723372658571570543714487762309943958675879845252278560825850893116873131949167816641977797409329692488873307306106670463423821462052739524289724323897747197543207679214863966746717845114128539985636129100118198050518360152050919627193490194771702726804880204932146712204462825282312613874441988480749307820617685021302263449405281087776570718948674542111137850267729404223010426701428271891572859172020463118396582190955207973106249641329682494152831603424142832219886524738062965825157898409279449636609705051732179624027685852208897762524197302417849346379912977456482717868473657841128178004411548114788302014584231732010675679693392575214819818715934875636971363957807054916240572328928515590214176026487096450653034846183523101302378799340842548609314070598404006072253720152201008852841987808695721974655865159553639161888438488256012579680995507068170243337518188850407247893059752247225654322543988074857884465229863422033572620933160748422003915596773886675980147392317806805698628049509077987289770509117040832787391738770346596778918601354924930352871730567983350495578882709198742315857049668827778337003191939315654391652850845612626765528883424137586654872340545051497948194784008764482757823666777624520096016262256117958591059863232562342281299039985606748234335523564890931044541382358164450986425652576447999124016770914850900135686401506075528587890075132135638545159984239320085188991517220789003346975885680815978464306025392625090354727035537553893247413456837292492331293031044675284677917243119239821399480460149894155749126028222364990002983727049553462307899977865991313048398549638015083450941406565375881026800409464287480268263626132032293545708048928459762061308589242284642512657885509727773890487574955802323061808894413797582309610750120600233354675513995719264026664052305508368662759533874239412482842681601320374774346450234973612188735412264928978530113222949196747240037377422850981268034833501646813301830619654945716558843270600443409583404259720209523702662758542151755805867260594973958361655162263999942724694047413959700214560312888236331013529599927277894867967392098783991443926864071389406438469760032382157684418948943581143353370744672365776017042491512856580147073009653585943039211986144490582723899696380448911005263021811147644879687078084426274845868666684233570147503118864305083324561290014323262864942474152294161750942768681810856810617491256369603153760001764112273403213667152168511428909924015656019062780822823928523202534422510284699530196762923904632160421321875073596299726376421923120416571379667692863808917732905444353001129190074998992536921553338177914083212103321896163416323410827013021746256873537643993572863156387586003998525063545944465595655221299944407569394307969687807279160825059314739719151252599453696065974247403238328370469648014395237016966420685448032447372587856029124858836184230549019534350414855896717288701277421996712200641499027186551239572354247522046476846704244434935992163552328739149377551847771452753594540763667565310040072447617266335314348155710652401728144608363794354755276126401245877457716131344041850476344594746643784647930248348651045910755870706490206850511453709299078343743332720812749603901865576015651244546641337613659095267205853306415681506400903604330918156602897508122368776257976083279418605445566782126783946113448996513218438220098108215972068903787720250415815092405078015554471996955966066575716178769501237271860606080307782044267110090577271134123586392908483820371844999797586397768156421675820509021867983877188837524687126299001517992633305113375233070985671942772783632935070082435142645139935240310728117469421904890944340294796274054552158888989256077795754320091004483238602318405936440955423830865083898390457873108462786532150580696886131493679069516245042840322215080898810034551726931115454190865404357098199682407577291158432616902754875220661817264167396334910318626576708388528636223044457663341109182430589500172945090142898137647705112569145394665642951562963823125907130655702770165430795678606907131982025181339007538153490193075508026699452033988413142000286339965419333088589125718270993158044338219209269602540978843277217478364440704359488632487497626715378229910495627091608715898355542810800129471470551347707391865611141974667762101237330663481107725843110574668569088125666578059153206409158565294775699874356814767855320557895575087042398148300204885758654125011158831105605077073993816330948411460708276549072453714772107212943929525001418030225355429703302044068699640828530453330461177706750329457892574274637099177828654539489046718267248169141159446266727323084104658720818628636399986779853580297905572938637917740045595525842825779263070980070812531775036780559202122768521957625968642818464954523054042370840770293183639898527286658861263919254289424874367831137164295700041569605796913650678161614260396935527011806187923161676287690961987480560790607455294130442706413212569471705228510144716552011225710433955459177526558435983050280898600940944525695611478563975745319257725249565713401532446430078917662381008833095394788480251051688185171474344568394042996146522720728334754323986417064183698995701111060132018366793646832861629411629263423893705284750849399076126653904106016818152422663868538310707341186751863340948947446324630547935105734918076811535034627787558197037569327949528891702203172030655464647993747783862831654641479698660984879606987819009456565124071189718468412610655975570106491114123576760052139758234973432176760022630561749627309256968364597798997557336018203009672808237588074120682841704170237551698940029450328482953887200460433756525735464661688348389808464638253108890630867930185696096500488780967983202420502893618712777290732650522055736647260573701345518094146545450556222934975991469949868369698769517334142075299956317368887811843809586156372185652419254611538615159721750474099237161135958695858698474094437391234372807473905938792568149243160142243937347396309203383019969711111102503047717455926980594527377687101101793955355887293751699711476995266935918302711884129474012020177291991281947244611646875673894244742108112933841139352762265717165611974620200572041856379878482924915288596040772403928118957702479369280117242640740343308884839208348281446603438162231496579037679878216030183914239852748729913419650696138359982954120727066293469026282993268090278028782322096697449973551467126326772724449111711062574340706604876019401199470879961282170663044155537464493726723476936396814001957225133052332430467131350287952616861393489607594183647981150283559584637145605559564624368674870262584874975267303061372078172868105180826648819496481032137212657660421399973616880134453494899547005774802059636930017427868385700823385701445522072156865405914331775963442714544786046370181325896492481618182018379298760169351493186992156291178953972873098027532607884636901645516190559655321368697966815244888633287782376546116511525846575022732318481777786881489466284178303581802209821006793147354837763575254994609668407211332218733209044315228812031081227167581942330691607964620346960431636284873456763818801149507876228642832110149851919705783150282091598234979409386888928618987832398238445192406195374615730225015895858504925517008641601128142177647291436113034367943695319160691941469291515224739333122221313560228963123801889774025713818938992517091372631048889314064057460097197163393638013449593806463693487432812556643280150593394007818630691544966811791200591654444373569009250200771143513974181611699696797834909227671908059624188548202297158313815980141091542774954612052744884939195286929218062235591133455031543108312952858439133365077397667458782139480719652002009223376956067056081962791817373731768698801822748523766646654334027032799150129736589712106594802357728805958016598639514281254484885625136509472480420515503219124951334504506165105263181830079943444248146224326661099125576505045720108899994197715409892140961806233898503339080915505095124280356990420775691067376951192272954390498181603885359753477321643423885030658576590304564214611202867108169606199095018729555381100842798693435906622739444837737608399973036383750294040974351657813414834143486287131084581586933765503048101593175241295259052400192035387258516878264986718576844223556954089941107546678871577455923978795448747258145439306748161457869685189879714843829186733103026188295384545266677807390405508515335623951834953709286525869815497314416346044597235566804316395183046555616053661700131385235624776619982006843552744387739431746597090263841204452293248868421767738020316388477309638008409187715622539143545138063772504076842084592309265084838907432162856478254392459946723245533247212822675545514205207405551495586236776785192294433978892718227865146915726002930105344952906930600137689283742340142176866798011894254078231419517924559065725929849154818023543129991057294077068683605784875694152797024052960185902483261985090746234868522047826993770224291398326414216113164349069017252862996210719557638711772480475997784922335195824289724039298996760942115056494747429015109286070197755604487203520116408188306563522472286917794601822544872543237308227855483700805222676237319601230893216945206134747735908129858464938814890980064332975648249106063793335755158795378029618407966645196455506434183968422368131281805133213078186603513721675961723843069795365899788291527111197099872275337827035442723487811093600110549397011721225997827643391607059926894014645058488040084817211585978718160578735714128891496789001559340017733176931689262845644480050206188935050291543838913605708259744893194420709281086689224419986672911553806392422582599125746566286708761789518922581795492605244954764191445491858087458056391257488712283423230337274741862379170932789525809046976268443988236768919443084763003123596727802875306734541650385942380412952234637392191955051496623805287760815669274567230285107956097646941727416826045584992437459369383413995566630115644260839805442294357335174679857962778044151598223154947147012046020648192313275013328289523660664601345935433187906288124957254271971207757008838170413972209742680729959466558561211046746911542597687196012235226568798926554704375660100427013421345875548418101501750501286080284902586782650325884495056699217916300603780066144550660261469003690724286710633557659221540865549011726068538754502323067410951654357026957600366360694212970594790898915919196483475798229689816513412095550339129775721183970693432663170459399613279573343098669461127358496822407787349043734693881608835935043532947967364730219415922866235357205079210040063722899813582864357778494296407764076365061407363923199169982586867021357801807225097057277125363166247612364207844105628331542826741045585476370562772565336785314769742821936422341416923392893813417849265753059842595733691475345512905568191397522028051301019066785719085217077441933886263528329640643496817519057261279782098995261851951729637084772332658774877443784919081764272510781624443766222050320933784624020595040877175847380780066857397757731170950588552361397774289142367411463393092991687664044938283605559289742644021226135358475439976601139135055674993389887986827257814577624278515075657337222880927238173127803382241142495913283093817014999623177128974144037106300480363574522003663539200080116222554962060513614670710808423309276899752083136266544567589265284573561257351878810692148297372313875793406287900869680156182562467967592749644434415885449558911510393053463784835520959119528153116177215379910402672082272981044899846295360096030509730302094943236139643636075332565717521783210681413133557093291318566138059570491584660830853020202563009368620317959968159809893763236155639525867339943875588378106041691482766008312797841804141987432436881270775102379569260221942436248710483118819459705540165872846364295777846344260493556690241449565078591997191857550081668143189420035059139860000640967026814841523656535364935655354761465612174210345772916287504173550667825683127818483294728588555206602104285138069896920448981867279031153347860476792110680699883330148739284694389478202274598408672065942522525757983653249100158373956858201315742247182638708687921309220682271638974323885314222800824969209103958100261071302152329301690583488042270378233155125593880352575696291114088953315477034300886000812167204575387642830877921502087990528180357986468537207576974859866120112946161156414065054308695544761604940718408986124325124233853233743104262009403353120183276704883844957257448998470148435675031664868723313078997260158136903264863145219179189861613688727847036872641378637202428050972092246509727768993349453976794353544421841027910808688730301326087047340787918388435544283870199116997428209586522257071882506906361346803364039822213841209047820730391753923080915843748823078635430449005112810959820507719751527881607305297760936815050799060382783956873620107751143850035371523160445602914333152074326785696294514409782629326828223674510781415610413873847503737944390812567051351717109870184788332785423094138198091421634820118876027531287623234120939047384798500194300922624133720222630294869491623783815931449477584111278847252004809652842847467048908010416423524248800686248253859993075121401460981605684570963422065778357682167460233887717732586074461783078085124917417984240873985209680649178085962373343172741283045441683608840023675722496160085119313072376329262826741474647671042379306756838020177360288259509885592191385974316633281629213002992568883737430263824642107016328905814170843810105250404660083544062814386887122481520462739177093995315279514373134105924793322294726231705198316981608006442824754577704212844357856777158710152007049448122840908725850193661733681106681860488989364132384128403830682930372650085939129899184208152011023167703768027569691658430468590127876105518849582629204546886152230333009911562633456085156873685251118315769542862822421869587802964346180708977043166919734450494714655036847223313937449786995425385149624932544831398633204415785966981925756569377496928811304630603927607547614528900798627012283404770911427826542908488971197862191262596958004002526730322527910653119221722667269919037940553866874500203317972481544619845385349256250223920281576526052505702270403307927971754764986508243218380457079182992050158446634430089263045018281669116652909969571594684409138370185773144146150491599687964679744067215305233593711981999931359894932037029836126877699788415485266275169933335233762519486238662429302391428255568322858398806177223231779080343935262100984748863633091469683136765194814412282754790166835615690350162586587085291032950297982972698676933283309348706491133609015360304705689771132734555982932244276455326072670637096813334199400156855283046666761154187617385448317223197850058250949484902586210511125453961271719994055167302503504632593822018287720816440450257052789447432638086802675609490356430276348262806748042484333121233315690249167709966353671571894979496161599978921979196087701635455894135410921218524690507863713785553540515493370701371599878482439921278311373024892914111319329350654357056333683215472723696139204256217408697748199536606356350899243884505930406271378203531114891374417986644592810266064989783144706910300729843810777370588727259623777884666474049578786362184332181262331250739347012707945171142244390579195980773872902488650241957480055640190394782193495488645623094672234289361757151579873454926117684870290231390516082528116942184981617111571842022883366406969129029286232725082416302050519326432454451040688427629921168984461414496460005031978922262187195239606078875691270026275318286265172484875384713692150046779370950078288902715773986989556707081875358158798693680053477285671728044877646326335281794191185571815203687777081059511559091944328981726712372809200220605909492001816967884354874751201472600625718619659748274076959613469417011177809390576493505696396969095729076369128721529545528940438116117528811767787375995210479386901723197276414522913105099009763133557073101014768803157313296458586913045892144484815477129807711480880215411864992258941536166065069288189237894897746772593046347915420981303134716525845291400745663432456033689585586570293980660541365432733283150745426282086548244818827094766004401929070072842684022967999013777456147131104511333352056600058300101874790249309740991135836490544820264804986109249093050306926461685436053334096249797409067381556866988456811208348190355867590865778146231148918266744254701255487629554155235115865755811953885532894082555767433225267204903306311594957782504328082662423430853707475922316888258651140503396211484779540164309764547102933072927781808740994894569268639683944612602527962203356042476527287489688308024939229274528649606064472458981575479177088650345654674617823877584171943676872162734281788299755379077623441542472549808298037737946393988160455447411551426776773807778573140451921412788860680924813361181839293069559869611015979656153749373453205872863017619334268666272402239180331766149833278538318043758260283966865896132899153565054109961599392738811132193358857943383709176631473210988902920093672740837971456743694051456126696923228125076219343430678025522583866238880646908842610524946014607357956139443557944820363557099283350147451750613439118290260679015393519547443279407709112156305041291866446639619554208916783461199420826419667289111542186543417638437484405479951624897124457311469679919832136707033514250147917873948528084878228496742344709575332122081596527581114799399724573955761049682835445922858473828349546063643785325530963688652610487426578995981746698563558176651446401657257097585667971954946347960027995756854078793517424386294715351280324298108707532342201950905295036958718029953194349730733991505229032914941077406218278278675603022865102995800069920528937297399028288612616043825820998783755408397672963694347703022880240154957003763057875272096481209725400742957754508398919266672870303721123638545716047824236879341801292206423232829909096702802535342346769368129406218433476881643634310034545678362060407580598568373117049590459135946310102916978694749824418866417647436085437736298860051044441339506749104932656436258222560916335658192445661384533404847541140410245470553579710158049556545080178374727521683828508682669358237191639263769085978858329104480153623500848325864165514290823705219858935992277809231329473734279465018582277777891005728949895861687946857187918233527323481668630869723136889851046086364983831754688805907198684417332804095320505901908572383987344173522807068157770487867361905392154977269489160430154224946767861708420926554830639677437501562667166029485976307828435274412915961026609447419438436069170042355106170814150562520369071103892272733831174366816098015758189814341819032394058958787285353118704174229279150425225812972695007223064096262813258257399560817625768597163427948475313949750714639696166915694443758842562688888726119877409301620448562159415336753617056130209638465086472050757866514756942657258074113432808831705206475422147811707375036944234271458610533094438736166666991949038263888654534021244359254488409585211759739964465713765324321979185971622764583403859247770269708348219068126955444903120487057572689108299329679943438659351892922560601727865289029168294230297108040339627052169640310935373205350681964178907819708922083992877495885638175841679483289379312929698833692029617152854715064898009995544223690498278614651983519421994314284135832638267219793420145593478765278003334754176340920362167387709522976329205524063455556219435609945317390610800195103347343715177933341045673921440142421135924831927096115215136771084523759180470488834068677308426361607194788798551931622333788315816868998382033629521649742193778356090899678762438794835377352732131129094752428056612161578416425584061537492541939113731717373914602589913796748674650391462685798497045030931767979186542284374138540225882190840652713791374078294965394948666039769220789687547449181783265969241654469604608418696046224187220115894399580046293943850386860380352817976113013354715519627805018982986535332534565743443404701236161028627031124726220977342617844445404931264584332228693306135248781843981492988068751974239023678699033106060328429589564411739050868690955322093941656687872444814303061159973700991898833737010257863560716156389059565767196112773181439232160931193586148295362522069936752170353933962490339359512419976366351907179445831860127955484432981483117080494938000403732649340998217553762912793101765745588396928701136410609378742523145864874926261595511880499484174711637298043764193336652842131880963276074538059871000115141102552711414155739308765746980637526615783581336704866134885755885374505646094004076523346181235777342066486058712974884387671060731028289084214934860132184061605443439071669920661457966917691645794058045746511657291999898717782875389500016250301632420710462115818266151653125806222543451080522803331566698701326205648612938021883942847300567297782646197425283419173405449832706071010386376543688153292009157282565301860810184739794250917040204821737586278438294940623183288082022002500875352634077302020172498637359273250321379593949032969467686374842354354905606128088643842284497925913554765376205160476827739273778068974384830283194502327155101775828209456016151028779212458541200611321317191386413158071803939568355221698794616163503106228268526251665819670951022922900792520846977828829903155433483426729858002439984587826302043681162654108671109666706284289643813124799723300951812474461186163433637825983211358851782923583718959147978358683030080232694697751994649602272108952848865091639063927778199214012830469706130132402093288553313343878886332009161328891878536533040104565607934330359405582749140219235972044872308453311556195184437606796821779453488145138215214943916196287406222162967973610124557996393954147019738197580615672297542596437413230466828379284497595358740113088442437918032639845725090777334324463542062988979269034093833289725599585747851613262370291893187288922968324476385322973455454928161145661100164657271913747962629465655137158306557821475966879432638049664157064043221036732287804339682705611071267369095802527981481996035563860901374299257901792485927424314872697534171915948552418493897730928972537691215366089195423478672402577722062303720060163583612475356202266894867443248760000392189948503180992733831694730458422668821151040111985266364240848660249091591588391183345494458084089018369598866726203554264190554436411919773183818384798432754586176205056835308881332340033850240101910811264043573636655284495247808026095722087097866517896900083564284698755638850640234450317702987368242192113097895763730539966840406177447218460125187529851599795656486085361006497411014802569454456361167193355902182904367378969454127795626242406468200382233683461821132339347136717714994109077261962666155935221100945638167217782413700562271961034222329722989321422777090410128298648482862230783970193178634175816302886362769129049454329406274513007855817504070580080877177170055870934857891360560117118686393623056578616392858059320965171362347237925740090167070301018450303867369841801735973165260517255212986816157847693124632003153591224042026284336363361023876105293867878477553255854151173543630361717476187210097236922929233435646526685013646535370330322672800777515201612771725593549925389116748986463545259187726541222135768565111479428350367454437545598380163365088333234354946976736562186229142803222904141416945928857414239516422136260302324279342903682739083580448576364807772834419975656414923721804752952454922795969831902876501800483396873921921997425699862521876088876494297192657837548052087129893540375373447143281374416075364084686984722859151303747500249528612109401215527579477213398602193487388202119953323919107023584148075576164238339032027287677396039699179142361683094317721691101777936998933305036893680868891359588881764547897862918801243735620099300964879724932963008608844385103239879282816152436826576412104333420185438541143812044979661895935175917881513523046839871236909990758723017997236161376550782821576476092711558474571103531418277297866271255663498491403398374180368039850999566672073496978052063299700802442700853564047284136178658665612402281018354146479249138012156835886233715859879554586145836276190193056609906694561219919627678976554946203649820458737957622159996501942343605872714559641294985887346543687685239768832922009447582815249642134390548441135642948351501901575500601028732967239045308863241959989390565820092142829035663211695883600747230166856465944946488549914591946230551585484019095970041873780668701005057178964409327940827902753493106420760477707657773092604130716088826499720161889313086388962314057361561569222193371711060132563195697464278970198411450130841313426710386204179139543491988749316347541738516282510272410931367652270596580027871759890466280190857648811279114796391655670116750719631156878357115321002884344052120144943955810118721151739374156206246406445681383872813365122346013198681052195306050421384768800417308495037474414200940923574099002136342678111377402537017899247641477684820802155783565009108044720042149216379642863175212461381084093894890528461711148867485339840642017316335507302108516355079671707540529461394268017200105091219194413331026488620975419367704297223403193361549512169555155059683782472308479641045524112236142055717546340068537632548608007518758747069644363184296493621720217537208014556677632499012850842670197098787488472348937626207911277605477452773528605601618730226988080551209590309665338581042005496737097778831810769123803078800807018064005898574863713338318210078260876994536577013648107645613457915918541659757325541196527054826826329400332089959541591728907865457822502831448227214698592872301756127701525553386839686391598461691603412300648916556159570163728107751601279856001903733369725101465807652367415020703759527312328828619431832626470324400601211718468592694435293630037009926516470589280012853313481812842917623290433290834015054824819183214368180667765646495548127560409324695964032155744285143176597543448644602532857205254752426175384897201054137128772479515949959236128648102240531171772779319709233590737112472877445627702431376252162010762238908286415731987148231411674565866034685717704802444756304135097032266536938897780750011587762007272916515564832478111022463315919631835571501322067989479376394361408085196027076543936443668500249845482919716307535754741343772070416835916935220687315633479097498810763395180769099840342044150050215418233098873179367339297866662865724823288519610922713323676779428815275779155053417264861103707442761392731616335600182337540258222500010196064893117449155520924636809158716638162176062918603716094985519830561609112556537702349428380231042760146927298096593579348081043869770632432185372106525877799105737695748862740432432366115314225313468370630501418283531679649540629261475774582107374461419940918431603288477711131638120075965513511271013434057861661046991253554243080416319335517109750847972688037637729300532657002425586305769798041483950138172269105928902016453511553355397296902779332483236175405898177846243683400342662361281811442413351140382460431668612814292695208052285192497977479561095669185525642899382685126057572500621181252561143617341448798800112407712785335081429977240224035932161198371251632696639645234184091478113903974385683485632392991154177934359603503124930665873527688704482828798063141728079264020951851384603055242069253528418694407779357161377517440269274658580654285804347935241687789849326901388521712984035100732094352233561695282805272010911622689861346053246676779441197286276460410950522006949058501720237144905887101020769166164145370683030217827646877518158117817348123703752501785478796765091825563284530057216350853678552828712447310780410655628929837049824514028631979637634556960498584966919247058378090102093025840723503909891691273270016239609915459091052657551798690213686380378648374956118754803783912918036439869184797328775143111273871770153521706789693628150502207785959842397829802124240214753766058661748289087662842352463295762107810926483701686786361197314739627440336610860206636189660663847811527819044113488292486367806861945671603388308032498815359344141289163048504692283666731644544217638335039459888804386486882075568231854065957983338210070441864017050374109303977785607944180387904256327903386243098370078793976546221579497257563311005435757582554150522619576040293547075218021318439229690909704716370328949858067852043291420803773972051884269624678580817696621244197557834599185444070089477990373258174537252837241354923067139424580644239264062276036740479639418514697594451628548052911861350801922557548699289980427223596262943633016727982200535975329406967822014922380820783155242811409015914516756025717665111697130666310725011808856540544670007023583507116559855542781045398130973747025896484822561485730973537241672657081434491122278655017644456437048255309702035413054319325672296728608720971473346880999967136845707708203774654254639019349840795418927893424043340111211265264122078683753177170417521657576988162696667923903799684385196644476567868754515232170646512283034100574479596608561625184368240295382668286312687138131206341844087603261924825416520917399367768657737604635270107495146467417253811925830864282912424334617022133927145600390380563530160961905748327402893354137318794475090608935543203255314759436129015808616400337118647473225402756617554195603245342779816574611230052756780888465061551184923084709986511524049039687597799632446709077501600940148232036417822731484240275146805174709019472933115659953336740354295037379535882193423718548321778749601439447871166345956583666533011981966699993766966709922513277310166966472171990969684470627575439272306999205368715961280262464521716302659134770149096298140673621678100097866990890421982625259857961115964847565356391044278302817138818999261380242849682174214333039614414937900994081770869739498966242155227677362941838611325334400136255779897409686575369807795527281836866258101775936689147071911542959367365644550915968729249715962961074314228934013141663045093756060233280176461214478865626706026632059877014168040476585653240655894197975700451283326754137255308279057681120575115884003629491333770078233336514756115373888273770840927473556199173811560913502964027447856656412644151243838442377290936065635520604484448353283313079278612394760828097476194445474319827819695063946210308712467637063964400641316076292118761309730252466160485776477956253328292948963647445059440387235389075031202125855736565744407373672173355029359152998365140311325895113516349424451967922482727014039340320681038674741710769382818997199071438173809409364084246910570581812874168037726936754793839705498225643522815559390740698406205994287247215279586326828583161938246939226805296241236862397188665436892030738955238161930143378353048543147756314117316267577030923292550514570624332180456453653598224910961687532513826942134814281329579310149773141453531369003558684750839717335922577215027822319583030343630985530896797055606789528529460791433105323633953525171071712461355537529293353608841616673588374762737394193691952215563492125091546057603664381625515505823362633375542913335880060212082933006815095030915684461313383796540601785595765518352409807082510785155674736936848540614196299040731123637644651057020608655852046234971774803907748337038192251094002070587061780224701563570832325701744043941403321740654406786017927258877754590348268639466902758238820749756270896893094980931778724454657776826815651033108373479077974161548027435887115489298656711455213417358451973739982159950027650108741258820828052287738564955862616526342138175726480718879680936774481859804850489356713232481800091825452413660010800036173438069826645686398100345583994944310942607206580523089082850327828696144988885756375668865361035833723467229201024014620034301718220650196033927080692764417450871072017207239961391423649202543627314341201161424387686644249260344808819334157765259144820763562081019762252085589799477916081743243160733227875807121120867218676879516475552295366279194279980946648035160632130133958732143914697630559075147786963325025197171699762523245599560134361334726617601434931628030927350917957841489853628909743649680686298667259636789241013118997146895122971310123206751113767018717567255107532922865540336413389944460322583958274842044798352774899143271978682521726548762437038745210054659280870937119991564265186605198856856305506719032070367308692082317365599977334992788342013512273271021314179763098098852213992870007227252814912124544006649970851149519474426935135950352918835041012620796237424363784117073700931138180063667325560717890636073219925548293042025452542493098743327604710199033613845941425592557725449017718540005198071058409730967161187701627324625590525799344801127723147761131717284954074260402513405588885608847765281809332290103513477499193885277155441482027623500868747166154406286039856016911020930532011924834821419728602618444027496581495590168075548915761876202112580347071318396895585496409003433717136416043049835044870245528141598172871551842925000287430467513724511605201691352103933712951884984256077645181758933904436093806415742785453794217679976689105889786084856495530931754442386431824738116210300389196574692711908059428528473939523467348429660024951729880121645119397831086732625425072970833099939818478596743022509274533100364895265191872804326831246906981809625000087738708235025320107915473153853528203932383029517521355252194134318912686481715388357814353442162418402784681666110886035750046624278615759138174513617567209687378207470867526279062440367158407354265737549413285502599518463375162147630399010221354134085842861851797889472924517676184109129550905120423443138698758833391575715239436203241209158356395387044773338431725337973094847304071469984283618525063927622942595110540801141033618814512394372847365046134338454137950778079350492717806649196671951846588959932091266685691306327983738585848816004436521800366879216470745275901981651566934107416152713931252699880277789080250599220194455120996402073908295295442331934778075119671271059759878321611368023874870069163557270635893218799029636246199885733533102212185125138560409528128171879517824460218167427500786937246283553204689498991599383215522742821389011422414093338099944897981965745926649262614098046691475632506216294621118088631991922946324585806556998550923187790881723519545396608350416417932411483464969234199615374547866857379526645179849649763802699364457254831562367713841695732408158842297699803663690352869783982600963338256784948690348927611948535266244936289232966217841936158184075154403738338296926606788437022158134785464639856479179565394989698322601586797025801045944992476566307521942671989460688859704051811777235898711305395585399701655621534847247398394652150120796166093173713171043625032484674609294961389266716376547024780824113277578546672770639186940887030584447383170362621658687400636034010465298473068586914536217557652754138558341683978313110711640605296519027112059565203515401163219382691941448118389582793554892066779963733514448569035518787205765788446644127839615337965459091258850100466921309837309143881274028245127521495328668994653245858064920746153216267801923993600731461429735466489322357880544867580388492546358143967649987415175840055591033488423935098938407455204104524561504042085090843103376964943829150731596308274826116959864522672801414689440775437991556306373396150017566074851318676698457475914812668596211842146774060111757134584691796038475750615841835364856705296079943897529043659963876189976270756008045331260346087906536451945841755831759394168465930302546844855548894467676328753043722597270545116967080093690924739268725227174555263271062674085251457191257065886678671079778063881259974900524306927030526734086556999157081101368290932648880325293260723628169155901059412761823854268771092297190424185657041459228339533631036009267004664786584347697633601963764750605641174859378002217879286605200036031230497198510217416469464598113728657207432000379998318869545945379630073190523917667021082873569842806213211357532362727504854488636946205077891379376879129412649407794716592295909055705608437009919717316507033077669403822198079615061365977288462248453278646365768658972110382713502131234259156319732010092807458904694419093257364984099546683173508807046604179318720291322536135123763604566349222899550081047458642343453592567875594108743183598827919544749676349097366202880957387514269832721800152214118604166477686430968774249240417292508739545905375228772731147464196943575787411622634923204780531594439736419992150122552503329549997332251895978540811605645538351341300651519804339628923260367471984032604531290819076691870353600081505287945522157850121086389735960348120509780929181115893851666001964845732439824306856746253106484365537989727374573348148223748466610859654877287666388744563426683515033744247875504485764304884125322725531879233554147640128433810473122766785269934067169175523276774847017493173000683962147966892176286382816026706885397093176555231931307078203669404334550513148754728850309213868388579603260860248716006600837865847299796626210183907916502027500692394511365358642181378049860193785247118873959036546903048231709715056542576953658487602354634737400943667684132676160426417096514835646436150860905405841588062207622105046445119458695024107137410928987987816414152729442232911634988564480646622948745358850979995720891429829286851520857477276768042235019615417452670418266537967136657658114845680993610674521316772652771807505998542013999831598217890344901319685432619979042824818030927018166010439626154584521557045436284048557352772228849274827164023800043506858250238852840630239813294163780771084780607509815441604710139583752738536237808405960877530643774410481908799848895052814582962939784993434460618340472508550202878857193035986676835008276113200662820944982456311005000426628317335727143316858119861120902719239153713521883273333981106890215801268211526882523758392306177465559950740115597585762340611618589901715202492911020349833320875268815169274028528309471608587991420327898779480594984725492381134401445257329759420939527647128088242586645555031903891967207650670157515599459966673017053612088400954351297691790280417018793802737627813441697542208812542547277841585903558994411064913735417021858697138226991681560085109358554608257131453347077498100173072243318718378034856266335444460518034820649343463881356176185368171551913887719124285552137271206104440105693181388355181727780865631150896565868271833812987894650037254108822203812640500783235249497787080861635284176982576744141481608600878817519946920320771736950598594212102705660621985247804049800479834726705937158436970341925348324733520453667884035250875702819185511106582828672603440877499549556963898671302915758025763540516935943866820734133422388599383850506811312796680095289756299392174850017986284884903003541220816507756594469799502671197328793059175809448409396680007997630139678662920571340115047052606891519096789406479346553869540146279213331136431923038209449941691428430823142938949269092558325532313163755368631472838334188884888543904498877672879656290050106126957804097142954887909765963262114520786260752074263335547154149118936509572238276731273505210425514254286944942136332788795918973002108215309579278621070994721499014881979302275146291170225857597111140202014189570656506595822716329822845974852882050850906175006206202747812505785196291772773868395526188288936123343864469642868469600517929868021202985176533895095576134553470119119758831014078680021422752576130788047615564110553481282243797120019202825547765508297153840352137561813315746169025176924910912346390248701692179678759409080494096687548620127072109635721944989930019173734423365908093306764931402363006430788177905388675044436866214191910858178778534333501241442658050595792002371106062572163462623440040398945325675658494127288085856419458120945087523625635105986072710422586769869729566784323106449723942008136749891873065797470300092731213697478018877223135395764332020076469141307953393240332435172780161397261560721029495801305564580250454784479917280550224811007365724480953470938267825474597559988663443528889947174023150782926441567479005338277867553587717137170064783486358472339806173429207388224700995619658727822213680535130907479102847542075917759076422531627211809257506191815937617238314035652284338483997227865239854724121945136408090526620094586681902101192298050107070140464784383617103423234277562983283887141625796339048990114992456603873556859294026909006824906145613073166934544885531405471859707784005929324299320458428193911168196283374580601376947248540950245202065065129206561505763903394881963451812591792362987809495423685504368561073036156123936713835087042116256073999041779292750300818934900740957178926626491040250403423935897874244862551661958396429709135021008353081761352178413896482443393998758995426551586687868032622350292955600493956876141063170171963038401573101816158452899032281302198134378932614028189609344276720484004610645492039412040365744979909028974176495949811343781599535146413073333754450444601972618653066226912937086367326844863238955732523859380811770959353901008496835258059689894887259617861499898449275073189477202985798458216665320814344931102520331923046543156802714603361107548101686842919687950197172508147688902711045882607405380839168162629744332287216153362249139827209657927402722920200773226371000071609624925570058351825342404374166353085143475608625147723995042989935585270453510554159960986806972122344282236191560267054782102847616193552763267547992046336455481759653095282448984977182307138697417845978044116021800932151173835172778563118098439718290149721069633500014749320604079326498306225986628382552857167841198220493788140203590596261149990361350341727664081061200404211551692850430913274048845658274336902458389758339969272740263398068129413201048818431544187027681572775540716822640911292603409474129234461575678091193516029214166434062208115036701272184371464249641416384951134393484036637291479157525217886520861587050945163924103453637341378462601801287480534808339687693556364708968910742054424552455715381572496314108276915597284664851271767162802103902935727403382030231321183500054334742137125451054575180919003446704762408245177917456350651783537095913214527984609691774356143048195228289444056853699550355260062126688888660212475883320041837553225047330013993327251343806672276564996486828460233064709277768533956097271921835741545699352811487578035793128878848324298732656580987379421186206461392367387041995191172057094435860320267191688267251997009639624345817850320489415787486938146654504657905490494874632260935104944242806657672294715160346305576561577051754289883113103422520336349221930047868960136120675334030660883001191853843345887782141946437676050798629570890779630204205024904589864325838428286484759662703252860104566222450478012967306348781629743193504130109074115962177146081925433451131032250754560126722235483601343203374816682201301110210357890795593713031785804710559242997431969412704788929725475555216600892352169069116238519630397200263336265234878846114804622582819784208535018732128282941802988460192125372139079551793873372957037159802495723917943223973619288357936001465456319049353858224168915743206812275997206507983658613110141655223958186124265722507578802465266681213018045269397029729082606847619921899913304639812812161780183885252160051254852161707720440838630500801857665378234730294897429603421895195873156913520684765060374367204805243085134991363295595400450724295873555228405019575672739089346999455802664639112866714011676417326873888767408712985023346147125928814284232412169260027040044689720396738502892360757812610727986621016186509737795390989227596739695371139254782497340240763540963421814008779016577908684595413012960435277665977896935188203178571652576360272079829098228807712081563815773416950476691417304648007122245926173842526817122775433149460429935900105823044073829143126416923010014211863763638433784358039545004949705949707875241967441669521214396999903531930048221294468667762472752059847143413512887350690398939528844743550564590085452616211532502607914847926071367465295345836559137305928401917950645923543021433712976609393361484371283303048781170642376146037704375842555015427062454841143140867752320273240193271565530576471021582580494049973601988630108588127750142807360836147169577528871280292416605005198735775862809568593047322681096483711458847410414978349027828845713903710224323032210091254374527654100249311335577728890641623881444144455867417384895593875144752917852080889915757393789991794444661063805687756211649905525486874936547314697279056332095411066700548961740583768964974724563577702875529817142271791777174532068318647596426364797593414874505717055620719608685549604306307036211835924197098806139951751316345129600706874304440221228094042377705728954067323206173079203473381918656369960892204074873607112920640599704384097429292901241134202477423487035846998740927291259931294041341697398249697102569202060855845393161911601618571785746877252363697741115151050923107080721919127031987002035078746727993169745079543024064370546225841383140905424593027041691641942289034661688210025012947145092184975815586430553209336411899972199453525438906074119221670804125957705060639840594866648786179399808579656652640893242215023381913163708865184070487291973662149712589809949489842711613057412435166089835463611541521828682462262852455038442271185507316213907971245787179640627760326163056805517689661778452032711473261982463139137108571664453606683798560847070127439273919982303243709567351938711097524651089230810604260258132320598011247171097666593100940019829431793871502966492279189353245343738280406286116671451857425547871326790671966952126782029983647856506694131038063050378086989282735526784246277406644971453574927294344430058676609386118801926657820907295902266589993551018874154806060375236091637563164984427009055415114248827336632759051713723066114663283676629212078106595392107678393867729652688594389043952332780851892576294112810234291733721427451210644701924895350556101594065236404430694114244224125945837250888299905701276017462249615017050303968255106488218703578847206985324955055913227961277544207153500123662836154933549434307027494546709162458980030861260156993525930261468249344727048282183713615305857729407699698642111994909170112052400645248278885474371034617292341032330337218718880145022527588227412043244795929523611017492139210134516793761658598623891569996892448497744324622091681508628675173245159465454587680241689487626504456624586733425105837855825964140910051981489045192669777258008914608374553175324774524658053160060425174626208422834580023425150661075665646223238433469827496220795079669060752907525661877882319961042806612873917714213356660057663368206276494555148261104872130607839671444914353036156327366232538516025745449064825380200575818951663305892235450995360494322601101892614555240264805962487706070059570603870170765988538110516725349117985903144944879449570957729777781259579765300923203969959973460153422993856497090016951252666166420956314214343484191551612677414037051804372590741198399486985647152310914276539855069348949821714354526007247354593707505328039495624079859371767387292827040874839738978135377313503508478951472169912063140447105397371331878961403600066541735044816696969500449905534617246516283865829410333789280053846691001631683140706128754152839568607080484873501129384110773620639915279200599858731996415389186181638408895882185691726276754898861228215864600929632296835888868140831762097096750293134836985075313987177341690924784260202150158589392217761093930981983092624671591854838706638681712735682822356910542554947093140693237301177129894261411049493994851103127953062076082520102954127913544788843285258536967314549348960092458482919810556902557921495136033463649792185939501219833830069232988035848092817225475066872735323289721542744125571381438823748781902142637662113745327642058426686691846939459280711623321740415821332160427289837587240364421183846915261372638471444826595739713260465026857483372364899846628700878202963760893103916307402995009430116483529737425424625035355039374378899579602921528955201996988127507582159393627829906415615525462256745312485626622027818347117657505373424465390837313002251793178773165781340649521476297128667839735032878830584506834280951888930213747698034629722300162938903284969616380565532765844187019744538343689862341863060585133526825336642583355450774948276392619697232572529216955815726484043462864373025859170571086297438568107377669533995608727087174715433055803703099892988303886805144395327665870473309137191069532736630166580718005206254666314330274722300102984649408427099356698792906422717548524955216298667167906051106288659443781820718991992873883233041229499302155625613248628660901888053906495322545178349986050678693054727642927009961314949112402442586477175606218304729035230160246809404630501878154357287155176486927830516267736496397183230417330508443431694524351891453541636852317856808316553394203836952795665069261472275714718257395082366412319588678529674815980665173832427667054890988450823841778607908031770773620189613161594225560550104670959335421839586685751648331406521166108091452524014303875414472575266449290577923060024398273266602024200001797441191146963121455174534394559191642336166353613909404697818695980268326498562915253859814472318132791681983064374743713014555528235357084416003852813410318906862955948276535328707448645609429960913056571529024602664074853597411314822389444184824620674069340348147675599182551670710887248620263294132268252922798290779007237435051421981650451053918686701503716545779149189657004664108814802847203056850875853362123573904866931220530963422541184784264701995734636871632860895156959304417915054341001026798343774522569912526979510612571696605337717250423864014877286777464710424969489776700259245609628027255739015784351431848213498285414422145721265491824545119528946318876670652930638806199697501862198378849183159108051433298033060238777005691731255578307983938886567869714438692208119666844700350790579322820555458976528090199961862287091102132680024397520135706445394831448147293812101404368111584662393296421436143196688180165783082620469341386193624584218684641596449839513471413311938330847462186668965881432150830515770202211006976608563261391450264283600225883050021716266283262211093811107783965474403881576627102621496428914421096319202937929209944306891176264683424744613821947781944956980390399400791230804989787987057934663784881588923905440271781812166430774255999922552846434588334945603253740903977191932475063858482036579569834045878597084998980360005210328426522881878421781172662036485680008361266503453921318012283607056640652429661621654494604198517915210827924283160589912356356141789372273306086660075835493645625007924211117686900071443656702201003185851914898855278022095890851498195050127638401801898907279219254736873119612776697329540994565089960335024968814524667876829685364106164313296317626605483237724157555515234636512880453902615810014989267967174925710609951067895963858563799249807061370744408100702859159141885625101007761386145943154625457223364290763742737901595612351083409770415601445435424018016593047182226311952139171081208085552238644357407848766636143338366592950337834793212858947158273667476067804312174764786429490158989499370807768530586253801187542618402351249926530999219188467183355748930183291374567202843106837009342689163090072990862029664641680392981019652108779232092398426447302365085790449605891211986181248619591787149566118032229085079512863428424926350323735489889334880970523478711469575698375498887821166825914904021945497021379125114839941021557524786756363241782181352018946139497682440191498910728245819324609585307146705087904032294348016189716396007113801649886848534795767596212826860250600055001625800487027211441980177579810527570189143120574907558783746411589568497979227910601755552708365598624067372553732058736524306973461777805613867847993352371593386554757928726316747667833523034173339818644057963244224514118860433362567679640761222460574107913450869313562761054151300240177674793225391885235033958006550793117972318362241784563661390079131335642212559004882206358528607198908791649413086716800123529792653963026882401710874513452386433264604195389244899156535188450324608460189601004501249690100833826318197575695253194886326142133498941904043405220377947052317772356588891478911659677598866299972547824598591643219103615324095125204693897862138263979119848600881386192325982988551671813455680265728940402373341607292745451556797880388383245493799170732507327954254387543265665457184455132898054198655110239821872070432792254198004185202939571888829332495824268182250756589706296800169187651581600997386175781304647557120660700830654765402354095849725801192690363814352150349355024028060421898203273481163062324365594384943414196824653955726084220087499694269049848493537197594925565574661251994904416790104352330021046373824686568338576398257993858955880917116620860930138447861762489667682159517781977567042803521375880537088015886416951238038936008902246885249285326390198638426073875393428161504124993910781271025058919147855387959151597483446800041455819057560984856490706710033480039677491516807315228727690231277667923991794724626620254544948427607480625016128535333248401772260714769310678950428037908371254296576240719689876184307500907545682830089034104805851583317831192714771077889022123172472028089081386542613098156313029993799753437656038290336689986327213920115107085315160175592144660391245218028257445320519139816795125813886185498313669850777656103103255445958885463355502956033824666320889326315985227726192767022690534759222866531981287132813071102688466759351566717335911031519485964764726668672345682533962993758205695425814461395042711925669997696968921356535788273948974727787299368526716867755476311328522286059137945450979534566954761140684030623902236544284605690023595743869999145576650920273291412536980953553054131286596306645535306815519803199107087552954431056197022542278314677985716117927115808814386932953641755787227482123479021099725780575778163752611795260845005849724625982828835934202217758955865208771144574083710969642488810132337670607451155842217912208591644926122757373105895540895173056477556014768803964278022532671605626919389998310591516037686697884490393756268826744249163832461825724588800319149245953579958615536438506502882305080339264088380157567661279262265358132351363598569561234243617836969465897870199680802299279758184916666957412909330156739967273519440927349276486400266902194768535248457579623113823622327643036548457803899293712060122109830057384133366141872769228903193521654004963858746177910182926234256361629823200518318421633873262620477035614771006413211822426974943377190481697596126255847028688842659953550855920045102149112197438404083541448326033283565737846303977746689698529717255064384798316803699620085805947267318698804296884368815215807731586705755912607425147261705512074308183775850200080605880732114090592189074661622455027016993389700722288123437252420145131167482718404053349417997527178317299668046333077943553449958198129356306387448169168068370595541079624643245492838150783430595458794678531092948045731572611185699550440785355182703374615612568208948855449744388803388460048901015624585599436258939383407409155361230304952405456043005988923851090309645732510071768062786541598355337754918720464227357631307442721622279940338117151194939316645014143464981655633825907263984071684404882554717519623759157848278695145858902029065374086699470480152958371351598686226606036090393356013001498431247026576309395198612599323719252114108166744362220234561494112652574508711316301836762376630887893542772530201273952678142795920495568935855280091241165509095298583825912206995135262386197491579919165439183597270755209193811990045306433813678016875694709101421638401081719466585086197359453625815931492940203293802091703454137604617110440811692355458845630890125388836803565130142230857042808035055395764952444189211907913798041802756941092088551312667407834514641169815966524432786483246440378833090044253613194749535103627668237624949529569739156321356852599195299349601439616996312099606810135161417779477509524695516242099004687871034318306159816454448557609520028310937806065251262635420352478531716941774282422578814264799097990642046465246047810571044412600115760887146066378149479349485902134628421129423957018929749062346590853795379350431333533308550198594278250885987623099264005601010108008527713688450645187196670154168241732073103353815287693239098269252682342882691715768686648318201477204571432527161486889010418435768352256012784965355888116067225925961430253910336504215062222804073858912509473778919963550623158823023348457647367725954577769945942020536226897972472304774465668975803613288327877908145098148501194824109291695873574408737776434324760140143796710932990863791429390568995840150107200768151757604004387165676219359324892100772430455339082654291954635313098595813624924569046741896580041945420921184681124331223413086284933668918130419551203301018785289105026375351618432579890715695799610233015592972695309297049752306066400297480412780551642340323209265136293162624037837907364203640150987632886960733656964471405296739343370109860977652388534726154534250646170005022858324857555504588281607451692460448059859910786854881006962582778027958377029715429246236445851125975319855155784617162133831928598170949896810634255970599094722562172593327531732945810176920753592419546922239922052509151247019074699818707000880918894101047781459053180037246109013326843277910197008223383769745665820596643320262360349408169620733620317476411370836206656324478133541728006142611813411972187832999842969336759685448345298580069782950526243116166982816625975454156585932253255102039487564727673989749528429745673780363400758913444934354460704143324747064904645396282027393941858024235731348817119966751107356409910480639708027124450554052943309000214956044537041857116305351963177023973768973305571744272124990719088630744239685490648330541825632943382494753076074297818205649312121819769896797277885175833871630572893951846546248638374161504827866561892468197486733737463102448715398407968902888125147876154632129993215155365689017050923933881668476042813682889083429416784804172329752846011794357276490608096298967617352739379667359146103879042655198633111548458394493222643515106999875493064197611418312332865514370421289992254484653680852108306506528587874424668180102607884226116234210995254133044373366319432468785303471445496098058375474738929501735346276825255795819087231659661368069008085242582239106113158078610972444818859500047307725906169936147627031365224244783301832434635925928805919390522245487055637962769053171150850893400061677194406323251365709249973560532675921315063634572021628776856492412183396452955905139210405936344867828263807996883444422670584141093842600712237744660547935553174066480275625911912475987757205322589470026012347316072677990343250246745051978115568835982610030353888241539135108610341426103449129351684350341355700614519171540076489320592204647454125109632501221090833021232565178775904601358831951036792843389209358065333396750912645568647050720479225814485983946587428000052917976774475250578210726292886389568231708836609148094188690276886627507097649427788316380313080034955384545917551421609443709308128637192328851869968597224860736875079598681820360302252293526611168649638956556856894338479323552787794486951649711468384739650972998877807066293531215791921158236355876240683921849850599255570817043824155983248958009803582114195569330727377657443239000686009091068553365773826494911588076635790422573526006901622077026884268651366948576005265147958150777890159915715999646325406400103466535470374398794688447804748613718679981089750269452592204713913809899917192157554565521608090774716790637419482444336787682990870602497554300276617634494165036028210662197157264780647673138760080773278356060320536543982644651621741296728150840356412802101159534704625273066127436066253161016729435290183717742992913727795325634889723150200917226658261087650176414615767260743182344792537377155663689678041637007240147551378152481547208525539023919376160888669287546558074890431129971920669569596619006274248685826288977785696969509113571516239099560840263578568929549262351514225608529594070487709649846165471769867107430357316749722499306880763359489582789002041085219630435783762115632847784028078726333032347205363742269994772193220855615012795786937177127737580987244935652397354856685258445133562749883590858498209863170341854696815113437307309787085131322222034026036678371331911196956773350635109062635696614744678747440655636558208053636257137911318486100643090731211315465079714807686318749930563204504320902620089024027521073886266702482959219132516752211377261988078682414309698345520163339267279499636707500483718106631838981036587606783955422084874660669050900535731746789382946381498751770253191144223249099889095383008827898966934216722904827477980562048030907125089790802333093534820927856254514910537143981996827676611148456257353908381554706820059199774880982385334279338496926592052960575261510754395263853949292316329188444455174647225971613307041002409922962936848717917620963804967901022124714712767470877490227916658512795908850858561667496145621924998590839592138473803758023209110398936268161743456445410222648047004519656040295186591756672212772645275019183599111955084469274092654939798030638500608269219692403088129020065549102146141625557533406136403854551531255723676553088193553632144522618365135592052962158824971544292422829591752457228707411877285124120006220624623489553758588912601366864916780095405995403606400273933730104051704434917726342798244130938020959922768006419025981944721562797292590891800421763097204203561230429198027475721628651792376034800950905937876321209251483905401763178755919376546570997752974192342451272802575241448113187879426973101135326125909599734962430169740302698793384845848446086284361158412631607798238105150604524588058953969245373631785940260538997679057560331263459993310200618190589207777670887777008518147871121413176433364938490430723016834238730185097158351758462394245821091527644170187007927428846998833461896637569242501147280225569211468523700631862989384904403036909467545477689700914925433386781694224626671848588086236563699958355506257770739854439357099103621591033222682646119192405359650386601491157609066913879258262553795057034883885195299633387969906205013002886851296295594051237420367001551953686013715708288886599164362071269032178825518344568727302109170722006340989513061788412362780213509266439904036544287195439927200130595702021086296626054619080523218415631355489115422124041499704235994797249866554118646291542337475407962265276914194328362435077470441363120577937335116361449528074746532717074961016800025405842613069688125908230475134380485299729710260961819467733741906332151307553198542222661179882151001533799413533951638519993993625566640205272728218864460504090750410931817847393116029524231525959374822470397624150105461463539184784840986004057742956819584988801236384570737423580551105349152806197674311481922530012854749004527908700334679951483722833512092532262806156561681053502138296395046053877403648452557888971852581858802686935565081175366281135372169489781532375833378504166264444506016688915529859914033027643168379434509803331092964900577308876735766070350007863734425426890983134453637478695273943414821767517553201446505822434329067019485424601509776005463055831499116718480879784474762947377626519544522917746892666291184174963632894712795759403730619121824650210727262782689756104790259954182814924966357815753213413137197198596431707292840570852059211408966694368676629905217756215372383931820625826795702004487441973558978018599785130135019427063848567697923186366063313113524830670519932673413060624179435263194281076596333669588252114819323876074442347415332614513929334688879812224216338326162022275023097140869294362812609029446070199330165154169121058373910026251016725102473455830746321034059779259115428519809756790953014699223868789065038292236642848818745848318804248330845477246839116077531319290353894789660949861094865553427389526939065829794667076294037689072043996251967686822791506030845927194367915115520643712668569825659889873474331728567848082330773396547570121505701562711415731195518043869078202256118592190036523099163922308890596883760211564860451191020661532082156956087948719932874572480604435075367522497515479762796394449068130575834982951088585909771772255083720052298507767724897302440117903157714701211468428363783871489664031808389788019893466979860048065159111015152134295671717596145014236969843243651628204578638572720157704472927487702940936295835144908060567365619101481729827736332586310424256571567923173480739543566662074440540046398160109060961759723090569036774701700145746997619613940260281129288062652745917770120969752518579910016389124853245565994932424654406100417187475454139378596442624347982788133725503625446237807628970556573468570366833236759300065243282461163366001485738641851443117853369616870768229816128744119383878963000743848336514555567815475691556609664099558957091693909633454255779454950962902233122241793887814200201610210006397979490590666176553762402934344781343662581448466950810540440091289276350456744821579207030025790981810563832263331225941233501641430011099874965127176321688157599861464580868602455308725700036560830936768419222807695632379575311799178543674669870201762222364081820412141796152215706976874026985250259474143589711484662958418271430877662467040590496250204078457056426976912943541587922401128970180635963437472786486353957348335854935809462200061179084619441930910886486302676499408440545867198092958232365152844356099571674080510765321066926086129847342636637744969517834236741435112398470196337151194311479420038254846292938054012770768071698640512091013189012313537147948039232337176739000015333272095637400094740975813685496576233867059848976127589813488543205801072843963556164863712164946491656752902625994527925511936836026776189617194342326511305233002244536625217313075013751356390520196679298456786609531366889837439578348171468044974880718425917270931519232810908969542447515766651609664734310512769924596063249251738956083981353234159705914171507306387498740243556524574534626175276957327157734885532774139691200902856308002585636496384451073803009635662535991487431944874788932597582329502493390979275850043133570393889149210240837914549820328766703455789067936414692147003023459753150988923292765093106647541640038564861364803122420974025133262533047323697750306204806535295275772750041013588931447129973315359941164077503164652752107243111971235015902446659939990485826610188793698549786912804242997105955408241635135284338923700904449451240715780714177333726982126076119510729188899045409315224795668528876672887486478722374399054760647296697571636130742437205375863499767669488228442624009916701828461609641038516914869151274342272397178664478163132221965005611233551202570040157931844615943670390639702254793824481858933604362200320456502683927673530850820982275964289926363752398903112432516493512377128154082205016971035913300993636158958092823079775350064688626964789999088142893629611339035534877252328738920414628497660716106765673335138590332829954008532571766726548262178804592021186820975760158321794588807278881918267409758693842482166989985251206473928827380915059567964049920746862923626421678479972453320717797064070139063092321134274908168817375040343058494778131472877937389384288774447108456110155645619107610073243567392031086390507191816611739836368561452551649752608778758720432844142249394556949830673776779477583824957118167115880827450821983679625390474618549576239607348501623825826147988573553882557180648089487976042242536479767282513663165137183667853924901156903505433793384736554621111020851892267510805499317701462128523249285867963781026825567201394601091435331295184483774151335297472035824205616445471808008333930937652309438543366687870164233127359529957768123633996918261673491912165321470523508183138185044583289822364517679703791093214698492475672759603883721023771820708419718056399948428303299037055694803210935054872630479924526674280531468846951645594727361307320366042929379991066598982037007811124680898806231942470523597762282115628323445560872737458190815149417669238533784963430466599135084351114900235250820404828239133524990092455123320836081995252427929475385672889186688400399323911754944754168976072257167851649770931279112285437600638381107039373170373835325374284030277986603281849230718379871774448493182566085352991042737824598246218356407798409217956095196615997179972466663129202883080141347285411631849582195242764181508418383936411180676917570080638855127562866633830728621925967627914542972171990183459660718791363414332815940628563289640517744903063306860704729761287752798724737639537228613157248365669684748091092443478895854751850996010164507027347447178426354534994250509806416083942134510064080611452153523515294461669030593866187345680747573936432029162477905855391548809928800704379116074682422075823525804468614069479915923810429757189161953361671667026256442421069804976153850072914093601365277432614296611063183977441285669118306921334268275429626765078202229953123607946552773822030634610373946342327147497945135638768438330413690540778779819315537566124435638359531972794587417428847308043633684334450395297827237203152119232400166844904971349838920334477856034218364545846118948715579465255843814539640208500199950289671725392833072308384150291588603386859343747584790152550675156330447266683892514881875123729235964511325080430287199102215720356331807751575428910299400045547947550103238646893624460193409205869963709744013763007098464939151656047023978673791677384169354630623503668077138839703639325185681990804220275476620056055911261867026631294933938714907985838569059182778993367152262817193280807628643893154919578789252283973742222217821277975137818591061640679855331260450768818049390303054629960108437852166067105311539882628184806293120042367305784838413751069556211592656939590353325971571403276026695588396906464909843636504010606061594978784302654173937053855227035154092333562259833646600479966390934845093210027468060423642560323662511274299530606844819242879859120526059143623855800048535629874132066585348264214484569586133750280426104327724341306255957831608630186147448322626814395552922725633092480438063530539672422292092012448221423140053691403526957220560737032371576521487958738584522955117124348575650491380395788341416728829678345645716669440662901458068885047940858900727286789469113910742165433196872351480697849038318419784183872823571286597727274484132779669457917013753961112830077157929871157055832485196303041540865832923190934049606224962275318173715891874984965886374907762533742994620952866857744357938995118624844338043258467867287794175620631500780620829357618533845268667427103641672251702138006029882020881742701853759991571637465115060564455011078145939829267320256047408538668993525630417762018035727721821353783701489635973126125364836994189364791273810789266093325957572576767672475336556740770026098398100699393228929387122251848822811271827738006655002000571576465053303473378134814483126750194905894546863762809812078399763650805358482573215414340351139295706307951132464983627392729825958752932017836247997942750536128492851716845324068590274599121435227541110757147865603416013802763188292495758477680722412090704477323143953802747792317977775347453645020698429554380760773774366187192836103485829327610178824675644860685869091541491373123546544716713191206424853091736968598399343424229602583762860441297557441906965667125887975248902189283303203372010998669394207264034663856958811221009418784801336953185506145354995021426803535353622604470692928790695013988332163036220275578006202739617703604715916705409270488953002341717496053137993771173210239493993197723754809767951032684782556086580245169659163362191653288239290603945182240426951042666029981036326484696092312190819435815021547384646296902185863178061359352880370710351698026670851271409800892441880594754053089374750049595907602689240223927446196228484943130275367987278339255245812466515864862885471531819014737966013669472773912871670847493192926021119865779316027712151699910142727989013762172720439273869268886781213940454528848860540945919915919670110254348627490810285628520454086314152438579582887644519985812722600645341973914576717019724448981575543583431349507021937851629041485543915800753220929795833553939508325963129861392511810941270460687290380897964198289915136318654172520136821101690426679768486127581192152693032917036970409204542841586987914104892255380375899927256019899121657693648071927108083247953681599541619028754997582313064534922339359405815852805725523373326384081320281067758642673565412097896166438595675183335605385691882541741992769953822130088124740142332592390930329749751742830424305239003732375912531013841666329559294202296512374696386213445529382680731229318488103576971292977978325836898279302649041107312009955348258063713263461085990094659171449354951973159757043158798827203914735991123382960760238206319648482120437795963722642166520491304544997701177248081453696866854212623693330121333578222143000851119857275818049190274789600639026396172890184448663017822311853415355010415691208640187601253701937656030661432445515716877649104993461089761688388633892530655803207489389423877279500991797490384451311251457648013078844138454296202561946196767279090067313626120679457448993345144208589000776172154761098179172947691890438149583701073011074233651846086804313957897877760800784524429324057953127970966686289868835064397012721343017627616164764131342951315636815404700868220696268662411960574806086794767663469824303257245246958451289748385281938277935539710668924159381371456050132163398323943979223417961094625848124002059655576866216465645144049785195434179968104256221584194823874550578144114703035663493056108380834234049933355550495276762769889538123740419766460656260328056467076417788616930261556082100753505737679163296349199628411898132615801649610605207224138810538274951919539607749380332844031359743045753278053033578638789702220782134090341296957365695378077866289240096099148441125184963213228221205740059884046753450716816713585576832277278275247024871023883080904649542388053606409989275327283729061765386482415552312495097045269994646076902299925951018353190411675910830788094231158953679393318481474364621514664214187822036157771176048042829352358853707574156885129991278658608396854644710995396132732186227401252500253089520134728041575093092900199536280304034517970894736910653384948309082114534425466526000439472490586293520861009090577793728802596116533826010404844737740350466574227577928939137486539143230615083826585959570995864858166261782469131923706881485351660411289163782729170161098454894578621740197601798392148196885687841317984982261687596215816705348636324793950430774307621607309738945552900477850527300471342976442951804445274190354675888369072225933365682621798739271812203252771586497160061656375543067404292281695257635187273460681738481188352655426808787924221963973455279961500574172545906453084199254222034586950676873423293570070275555936718464206356271734694576274316162729780567076254136510780935324072682964294007535214642595059213201660719794430702801557481845623453884391658294238175681163785997694587864593363645643228951920910158102813538409115509983672738953864204041982614896366348118019341231920171494404879291796378749690387527951447986203846381981279974413233144848345567199557775411173238291956817871642961625701360398469121024821210227394728258222296499440403232228389077633008016716509379561852286628695266573273267831501356215310686014621402886694938678573860812695717923315255352174428065740467618033722166653832954353165573439663271788854625067867997283550060234988403327850873194402478775307096482341460246778308120240349975735942684843858178379127223762716348308433963538613270789040707136388799921236237258058068549514260690284836083975888934753659622389166662195097115866073020002444616587250634206550620786523312342790326011706171312014059321199203005936074718924672979192550578644710981306388082654928960361843031985186152582513444440004440488297713334767756215302956003286538788775709894568671210454802920488737244793481998094841543450482055505686043639324215136284586278664250707011852320244946693922080227255760585821060428957063332960633985020516548198830251694052273049686111077718471290450005565993117662771050433645603286743780315177375637461023059157414768996796752304530944433364998746343863221550350221031182443328543693415812562111386086093729255345239006626797049888037409401487945750525448839836949212223513044756025347128218326577041949360639030648983067596208892398319310629404012965351966447248181230695010298075611002094714774848605416444247549370445171897286176911148949316823458047214630495849879465104716263165748179022765708379360809932353089313220545833820566358473271308121024168728832542417341144205228580753380326891126635800132397473310230027680004638451285906426202179539409816298247515796166241920525193226052748204212019225544007897741074974118461236328159967866988867673710426538263072914266406294036805745697479460539476261497051397790982664735309483467313023634967479474111532333571485960765469956868968748164052468911899790297077619671797366993974742063834013672710358532633449228524768735724750841533651025713531345777778421506602511514092360494988418256301509223174903118834582258611892683798277092672248793979228551248695455157085226181311887632265795177909073321203256540734116610578544902313560748829464008431261881596616660806018609634366161986732480233875818204894743876338123728961681849519777129197207588096065303623449336257003308515981479557598529609145760968857426158040153155450474978730041693978659379301903958934166693566522671592899365635418259827191794788862685277502991026738719924312978807005635011074525253398999361053284366229509195082103710917448252635854230715849131813169264790060767464594913842746144420099282817460091489296291564330893231407985866054695761293815290719642919917362336364996444670369076705310449332726671972160959669199738690543593974247246264202392417234312039035045037676819067177044085788769977467411338162446856989605761342816704412550543452056057779208399506009758023229472130383716064234939168284934944763800397633222662551136501688984383873703044818771280639626396525058260489687816131145104747160299949056614268627220403821454673333724593761510288489711853121360021403526232824992025455031618536571244465990530041983609866233940992625649044627442293705450674299449512984740225366499746193386578902981241501173282867181721460537798428521662745683596525056729004132399925833987314286612680172286782958101089850756661225142381291056571205890374112896834142780578891173826099577136029076081192921481812386984599939917150531074182346285365214103986494301082689254270251696137655227891574771937752329410250045666375831963065268000648254031285046222563942123638515520405047619849997652993774844009036322614883832070264169788220524383596709488559416444540920654881758963014916866415507047466815910713437786497429014299051222540920151048152092599467276600360788301983769911842575642246202861403809014941948764411333351097813133395293189654824518927416458467568794372983356053318074386637677870223127835618945584466054060876022327061601187840098334453231601508579442890925230059967500081966230211677897588225806406605169191618783521361204981471712027483293654522699930718293772529588288947556337948070980677513650953969621046753339472018364813240691525604687345919973763411736232908691106855205588386443899281219588931629555306691981100210236145716384307215454988665524431063185151369182049922939143954225011887374168649517111638329653968098949901636900048889112506980237771085788862364513341992434095880492008414587655882388315560232198008051841830541446526214185066161905315585692854752545411956477232180839545064650425171526464339379002268476121656391022493236224020740777213808139769484542356868710028762845320002537114445518136170205840251279705579277376059062190082682198906246702662260050563409112365556527584217018142498643365604847884511562315564482406066065002198989046756075303045995214597428150553838735200828548983168397122933391172140844716252308629385983238425105115121901329169533990791929027192093681735236807873587758893946987412403446410950851630636397103055456679482027037665017992500777236961061516696089252624550680747955802638723586044582469170634692197482958869258126704749770747269149816512929708374651186409291873653184168118292485815953615957885513078062032953747114166707030094459479522414203989465753818888111265503030242476194042486891941213933483680662178459263905527967203302993013992387344827638307178365739415990301505038418531560947525772082791183510218393574546179104351681632368796856538203365625521366228419887733876084776847546182728048716815492033028576758414506510732684748367948037595517280272083595377617935139148896455013720880295048698808193066347761298227824775830431904006359248808447234953665339973833089991356992214124904294285216732582335819139217415048285413856242637321827798001988632375856514884234104319485012485618840681855651476875668119191439331333658648962768394041067083844199845531574748777816832132025551045256928882832014660604466468481262585587235647146844315024894895066149907426785899206376384398667980521282325934666574109187662954729134615883493988582171291042958957545989398192357763588489053699941017981169734230635221535661227489281265917687197636827859765341312096938510554552731782625207856514143736333136717407493006698086925204151436477619994353132624184939932353170974421773485036608873449514226730141774460424711344679398167407490778978230346827182457263866505897141135381073268760234987621495765775894002135191466511743862790471262025066127949080387450494933600540706099841324240683853831658447821401679675685958102441804868813069197393653283519348323654097092159518330507100044305867152380122845689863991776798173692468064568491869140009697307180767728977656605715104805104664239905664242770059294961569770532252458815422176934369701890867538101703510152534328656117343191027840920761751954943756446084153274505197553779965268773409249181143060893907873841336144974927148024986523404769925724105138763443343298533652442462897222489739908544971297261142246715649075366755850272027316026062172949610164447638373971095181729234213108084746874269805076227849524922756636522256761406713578999409974668088249423116385440827263039948473082068755478746130521311614809866529494682658676355982394871502618921403553085090856395178764347374752008675380894265546255625284832565544554258264953369125710507114337146801809119746142953109267938371151719436368415198386007841820793744437626445866574343632246633523731354757770324185647698476241243961146900609899964487421626118622953252709439325751854511628870933824566931062119388892119362494822278533400674436675507378528960137539235984137873431661068985475021346011711852173482315187467311061218728801059898021987246057144562306024447880223563159221676010148316067462602056711359929847033766768734767657179821102091449960960143468068468836185748765102354979788510910828280126023022345800590465562067078800015366178654279970111851131910689162707480430872236834739720595021469971721767941507199714992266832340693174932317159161582583048098913170738029644998806670977202501896312265604043000859722808866561029363175568288981868211310103751979049534622353755581105927788233480438840009182360452054705476559463754633263194763666966593519265990910236092190227947866778078053992436220610362895452099011296359356597409955261372115263867449107064383655498680432364997816760114346724769885127122157351938202152958327115825138908386510228505315347969319243524181394179177409705978029115855935048702733141118948221490092647171567099417717266407302547884262203250962721260663096770804835444912520385050792389436273478672105211345115254603609335282277545199582096679785554937845859228846025116363015102486597086045997154410606204232866842105868812048395463101213042911630689953090119554612198547863661220490991223555183841690344009304142285297719271930744457761584683269462690449144268531349595549168872501422461394955516452303703080592838961996842973052888737449969083973017116995933965590231054434550191509506340987977803125005027037746727735009616615591786558732584086613283418114277069812383748022335762068624929820916366283385913126688443034190015524042325788152215893231821251326166488950569106034371186028028166760757346632588941401480847160604007941677741747168492136905158511220152903811185862229839428879062343410951460993356415626011276315002421345328270900755112367337050189216607005868636044925438644998144437739272295924237635265953087478578432987429682439473247716800476956327269352330780446423142659725066198856177371212087385589032497154509932032051736089409631275464814773262451366596550323822333737924848926830542303218438585571651849530609502198991796581178553946136276864251896358918551314743614905866453876358426303520276054337964467116820986453456206050179773721389555760773934125341484434658278801126225102935356298957600498616943725090691306090054812710580400687275674752096865360625356808264491050061967609874691201895044957550273201463241810818832292493616686108438836203782649634500471892645042309963827422077466100531683347985795326246766280124313740181803190315161125750099919156437328233221910738426566737771958908532064844110065009444161170024099078184377240593651827085246290558184184711488997940748524341767192373040301910984085728060394279058105637240250424120607041710012420316893612544315152247053694139694747530106357136847749227028333177270491227936029343832831136624456220321897698687728848133115886618756639323157046103442311374335520303674120512051111691722140836130657677667580237235725391283080366172552322257643660910663721843886217140209436569436788092152405117550524030242547130553121181728767034605958828859805538610701625214028458354134392762355732834329415673770627406056497339436961891412723171413451264142430724385212917694395373618589074947805193835412245529555874960224919781464278939194996743296136913227504737278855561361478257390381809601056812288049682150174980836128207432923158716374281169688809485939849946742822164841985142305545625160197532080012624845935866482613391535959350063730692822069064809533353811501641015741037273613474186681412567262120929271193027186438334708747373181837451856702937942933452641483016241745408055118439293652420443986088191606202343764309695653428487733304359715603878612253200286671275615465774342788890761389029523053708092229883932078658062001214925949164104246386204197742947203638160293629908290781719555763703393413744785212645250381593455922170847390889994640794148490022139012464640328647960688202889823252860799971063123879356525146199356440484052699951817606458185031415311491256763449669398084248547011517986891891544285118361340233607286920951533348332515719960406126057073816095334891536705633551750148266733013800807432472092519089092309670651154759609221303743067597799776893577572102878674381827482911670772222083569133159308046465656397162930359390736878919440259729000356459261741979210460449754982758130910985817148397504063234139762135695495418976936831581635547159584676240913076183924172142700032233828734524956452003583843764043057476592619639067104690264071424270919966979203449673418058568677835278165356741898247602075237538481075881723400717613437810499425384542628491601053948559604915787984761997935285962340042984712718403555545478153871390759915624668588548006193160319437525026149108023832770570381122876846109258596397286096289914202477238577984884232264360073591780659412868855120127975759510939448722691142145942858529846722824434501922893481166722544145485215486996660723963454675703441301519286908563200269717442205517836521000418693517020339981945172942101250920955088519426029012272999619764139210188847975245249633777577597006124703292928192456232249671910606778768618093026662554138573780155689595279513823385621844555404394222423125511003916168751215142450981601493634374661099033147953430654189198547328969539219817030678572962683754519735123398737645452110592901777201297922420190083526557148100081257509038031236301973643125977204897987010386971257132497686280969557057218156138321864475070419917722041243431754215958536226286429582135824173178154751817535328212202544941434360048643297966787482321253099767604854727926168146319263461219196596930370644587036640725968740155139361878681276748537221610635851723342748636880011673526993080889215300497250220210904338142286109110393414784677175113385586651523574393260092818698721150160030103478626926979237776772167466853526430716655912527732330965137634869533560147801313436725404414396759282935332375156117975526250143700916850940601164892555003167119302131395557480079573316770920459956063477889595268810114238656482129205794843864523018118227926348761062655191827054231599650089827627754619264543909405817862540971053984121916915765633393498328806217124646997876504544220012985322347183773773786959964364251378014689018551996434277327885369102158806262268104731963012476151617912053165497378205372926450711513612173227290701207351031573152439444483089601019876388630106682166817859797830044179922271590482356428058002196959102911971537165164902285757398263338538828604993149445749745639708473730403301990132113822868395692628880317579127607894240268749032643522271872254939160969239740410502206394107664680579415348813342947770935236901508855040473834699357889471891584580158406484379624613348418856500151940184160104879226242995630283248997429109366662502735636171492758667731501689281207813297453208411840585698609154573100575770378311101480332872730384022585105773480748909737363230595495013913671555564883134497894133871834048531649154397587315843890677437855475491893095632782902715766791725239943319010253108032369388912565451543590118920465571249309563237098539555642195457999643077611873843989425525370327574301874062207551814860149217124882226813655672238115151679145083922445949365973966080015088419538668519269098000368569034518365639116673953191851514907421919373084549467191381065515982360074877887420994363357727899128047441522578278396377624027506113915167573358078926752571576963214646701573623155316582766014928471251492446666840392418750664510606361953751135676439148347533204637372610325458195684652110115100890743033979520652410239548391395379927508300551294337540344455270752646779935918655215288860110970536062802280811971459646169933439884674523638717992442151710675166528558817987610267998000887588475378610293195700450222250914247910737947618038135983148527576376919384350305751999541280628080388905028521683429707115314424432134758498066894968986427312503254937759576815266265254872989872905471988930956430556534658074447154136245505193949653411897287491135967885379361711845399984850556771173661507168392867896003515600676886846597822187920378774884756420226492530633758954866127045465290751842744176657948994714623653760969597333747325808373779969786174133353769181972782947815942361392641752264651898128153199356249972120014699636726167529206506991662265351099848632144976559317772474568207015547731070365455122693045573328892635549759343261429890103349581652867113589238337644816516475341408586003840703406041044771357755113515096888714197727447039441933972577525086093198958539019494676814706925331086099565331900813178789631787026031873754453948598025321303338659496147227312797080497759788761410067939725683572070106963534505797915471337786938626729905689317317443485054937185656560704505259292404469197051250776471796210751034624197045123719831301968735591143460212360673717586528881780155720802438719981154670916519416310477119320387155743290222887740768533061353421926905061510082675366701341016188000864921508714983966759118760696744737392401756001280646818004238960673071732451274895972298059229188684501967002814595380379638400525642306590359865550018691161519375374063005061601139635865392232971941764452591907630878090684007741540181921207869965921837879320155044521127100226704674353942833469062816335750421677581204900078102723986864794824998232166047476406365902216449910069924951319300160909936367539222323218012827463704836787367879359180287120610171789112927849589872897140839027863409273703580742331118942691594427629512836810476792649034587423850087978127970993889955474170511834929983436596740746887536983980770457634131626719698424667935974735611277650110582507748494409572081129892635984799449513914822046760588478384241577956544588638964531375674881755210495268425757327301704030648074546808786563160751528804354563534032828334832227254715501300326288080924266441152334628562465387323863054656596396039942651426718442347739499446467224459788437637494217763826854160662316533793215816523717229429070162271704050909183372934437972234396587131558663852570604239625643092928646681547399010499314753130146441008430931127783348223633940803281292860236954639478239016251309578766947984749499843829027523235001671690050137131681884756589752142842355912392032819788091711031814226495117817454958361274877357368553232505200819905293254239466038350761340060356369460707780845439129102118187987593955872188525958284294134904682660352075743829845729051931765127468998468630193067434151617261126692130639737752858722921643971257225572787326318656923438360789573448376699580887210549409350712542064628280788360984075461714699776747648401996718914468478789353876459403938695930501154919146049027184769819767635833319026392059801472644597336967857563986552063230046849744388688827475411026391605236599307441439369154729355302713751366160721572068552842975602562132701925336967271092483202315648439360834900579872914057283158706631797757326867675844505171525900662119859834401889597058118214692972551512460547549194818271362681445193744260653440850960713954447763317636614189237352016235561761886811369019325168297506085260472031536916331892312752618421936739631760477297337757937819895284263381075100779294014750580960767112122677398757379175575321547705672407900475383858132571613517988664892347655955165139491127011539180650648573626079879814541711459936406502999154500954251313686702945063757061814823083297290663445804684466704868859983244527808198527346382655310549137382033162489058743879136442982442916771773611340669025500683389014580075236902487223760505762218181361441983759111644759544356422200232494259288763259015511794954679257423881676724397621564900603759775766399209707734617671310311334390650746819867143191092733150312922776369169612189351445655384291960515332834543213894637107209221281804953942561640640862228513845721988732521591879952759536092709763568473156970640176097441125168739324029918991093845566955532952200730861998985958228901706303200972389129541691178932524370433586350599016986821379464392274393425218830886763410644643934589549355271509984961106766963473688647524901965047806447367931143069157021091411238551307661884661960817721656598123980529870575965357765784481291277120562504041257899928569238258011923856796593406153673967986057677678706378723869284470740229458358336499408838551626598446343253574527364737806281208924644035243529453633339352739669161740773194876078254848629696081266640582187010218918128436275284101548417218121430249370925732608055875551162697042996822343450093305919481966648818536769410942351086968761081962110280308250267807938784411578700193182480888841929868431360478565266091345214399452509270335844948749260861185805481244767364064207306921259405295675359296229560091576233706269931096725877729713983048186903386317382874911064220033567490289338746591750976166649485483836614328753817350170776861954782283284195049667031975877650384608792426845807260740336113685395460025510191524379797184745524088049628222131790259638128305084448495533764237489811381662993916268292122378861729176714321590914770013740199726571986689707216544770521107458593589829242193257338761749223485485037638320232484890277561061546937062541528616674608894740275182905777503194550885825686722922170742623078862396431592302749286907971759241406867360339693181553754105358396756313210005777868499372832585821318321935794141427407333157705520327502243717314641186166112136914665718455084545222555407258361724914512816081169402609300127124675151620343207450621680121411959089334829831446723589585733435337497791468875113730103465393574177268264591023454442163449648828665372488035623223346122407011662237630996114895224871653524992733603850304886074236524694088268275273599091515225539586639875868193341902741050592318187978679437988365378722434885075812210086168090107857356287458887476746039610597521092229936313525071621520958809392548823124034383128634245325809210488814645408329163241301819679730758595305720610549925919105805141687468278605406140549064720243778264422055048606306326621602515375188907343388522094517371773874106849907248080746301188073217426694987160701460039165278843859276680296715642000670993600739144583194932660827301340278177448490912113078328478778061794864343551136494267190259132228747867780255493549509203515243178582719220630008628592371349172172996242599097362980660072954879961897003842084877960094499623554341832961712669324778844219018670431435354432569914688025135390586712793435827293519673868667146341277924561246435962367156053997219162066279870878197938584463739007467629237041676630620177278897149848349775642446573866617622249116267844214465966271140407502999059994584246028198162382938538715332477532027096692281700534836994252686990299538955825030848249450001972098517056660378244132279497937474391099511151397004911352070004185935453127468568067554977974807275861716415172374887716566348314396111642454964073723947968109611067542636430937408321184485915184201672922572093908255464550393046628635039149683109247868131715295966686486966088833678022433669259316099650866543865641919044834323420466034914334892373346008827547325725188714605365564441719370462457032120628819668144534347256879323342795196624510370001106668840220105871262308998226034928220630178069699961321347122549363201989377300015422284862916906013539466628834926753228368774594743386850054669244741249191237891051775098635995195256068064213907740106696818885365481232870060740210530077907056913468721433076580867149754981260022153323876176596427681759759116487259340089512163260531997207774730251021337247226847885599112753441300774706616041518191271189152190179477268526650081635076770641269222117258746807636791137293635308522459730249328706280028737498048446599864577136046769566509077270713411987580934145282074138563017101330192090992824129014206114095761015576623984341774948403846439841040369365018252462244266140791951554187093059364675352215331058954472615956623677865232048549650182043750765356963198526110047638226633048848439445843259501235287642399540927298107812972589270646309146591300072532184359975180109310507534455210418326060309180671208843762632944257762129712481301352260847818346683750806854632688604450893635654661064750978248573146102277916799874338050104608893316471579879230104514923978215148581089963316217515882073343608288506838693089678409474189682614872456138603221908283547842517686707232477366136067956114468279586783942166442197711590733573766105249360175309462941052970253608716124686533371386791962740061690594913503824213577503700941292067681781919401088010902230153978317630885137693569303415705019996609284033705075508645533336412067280267166050848787242508100093612522658927408086420690818481078517319194636848248750881503592622602499848552419005995356943588144009200544790649216638241722586474436925638574009900479157972670341019994946976978384543976869081700047155952886520320432652056338920327179219621002458842706731008766954448612573942856553462626949614464112370751200164262992390381647132127674132179408272254024089860350920438940076597143249056458121784117592939129809705073526817239347947185942165736802621039353900810593200649378278884866552909332233280900931745985723807864917765617707885567150518007274795748898217343067316329661819650352803067846487114131827385070834259995286500612634999462405893548396928134231245397655588763813032402873907362436370045261942224912571315967804341258543565831759726951551823455821240702099997774458600829040239245075167515802286495874565719032848148744570218243915094611512936572825631502974440371552752351264233387191444022639209650038376323457900273303147966361451506127610979798997688036432655831565980064999207366743505209541736731095158663823387656953728071402859951558645053899445369472786227910198785117524226436513162246666925385647083613889853249698668017002808100024827817835054086886918568498745878546492278410125008249863198316480808132409767597310400653855856674338829480550064917490651718872760142401407263358590391961914231460892144007314333816546640404435609911155700081934079173211289531039764547886573946763559868347143628557917730513145629551301145553011377886061318626431064365741033889889213569188026270688120637098833373761501554250174048484585838878013245335287746355096510330816098684378733852491864532980926927468342728081006052556029893965967358806967336319892206269371609142383821454767978242630037203216811842901482111074482504245435997621579255241249658121655440601956406027452926509572333911564565914463512598986571408190094869953143955363231540891207368410888061769195599257010806036387703230309777366183700180131716583334983398071493903358985673509125910576541348956256293308775327724644678073788004740209165675776068755710169499236560279619697896664740162008456406813831011807244975326752864663486908246192974271057627045442618735871380954950660805043820902411110364642069217356705004746282598831707420418009395276378450131438170791374289051787441519591136894535553963318379717595138272147295718216315571248173844291241739240421185123003066503700726805823740627693498642251243408442281773830698596724585655792894589548568785914604510083390775020009168864268538398409383749368514067495848885507567636734716955412332136308381752891102959259754469854322675338174357106309707901966196230860574493774491084999152326082592413574768015953357768567986568360373392184249822123254664084068419742581964210979041733478524469995863086929899290796958556522990675694586431313386529973506083911368827118572346007939781698906174939832490652944981896570593588924088933033489038949132772949288987059379468439786432479009028408266091841476849010622115430324466196916202168262598220767421198552686794108523631796201903656516879931628900212356320178729255971395999507799005059145304350183963944840202125136885555444189040846633755426671354728361206330383670036250672620028650704094955835624701769571386083291838388437505034030450315872422332485833374286604185935076761554566483918596415889430284807879103114676978709347129193055445281576163552055877708490831321854611825789558732419984309215931199195020533068897728473190083142214133643032834847710339609219249431983795638940422077483979881469809485195404630813572880868151100015427844780639847287925886550906370634964350777800852016989457533594325350657724292630752674161175115496086370713608533173743039487198477916813434885435174672241123772232317026327542465389014194135049433941316245449797600817740278917063747503052460477920979912429440475601018347855002076652527437725368272950306657484033908073845692639959506713700570407978601984045722756105967929767983231274671105209740282338802934118269014172921422303088986064545643679777954997549140288574199571245301927730507677310434737235188051033114198041897649944343728841516486586056898777458936768667685273592376650887807617356523804336497169958040814980493783989259428244671415199886764701947170721260372166125134296191507984236962876125802318055621342641138521562229225036509547959630357598776915136460662279808015710968693770036906065874769882139641014897513772174524907045020558067483702693678339137174708461631568936647455535453828023517285110146222998158740445882051206411575591977858273203957931688202628561462000526528232994756309486947573521405297415038020342077693127485699048303395406868380387196523255532972528148610514007183916556464395135522821647669738058086488956404932363100438914408820520151613099977768565553711169179295335141520681707543788647633343523191686968848915891901284784238282260728506986740691822655764207863774669466044264371781615647005730194791047547950495825272029411854422457670572293608103450047004724283919620921931742005413342358960914486190102111630563032309950412167591708769635915642102765733665454424035162269822695397372023492257086475695956095697746087739754007357896239282673409107658698933869858495796798091613722924849321200294776490362998622432260827310233627951696348737149075394852344073964390048325233855705954334272933014511564829899205353249623896040703630861617367085865978870817480075658519873024238269574243463186595401958888640713806980773080476905349450628090881921854348136653769139076123470023489700958096088500799190952143646842479044847777697513039510231667038311285234650988315919360751174172193436043222187456385070398759447614903923617162866933929865942908932059786360437103428033964701721983582933125235100255649348954444065271185034679056687546762915462914981033174782273216281002592902925763183662310287822392405348027658996831506534646538473140246874874556500205356868709365687965804976839187819838751325245748113362086258153766268315065145278697592179899778237247551406114360538626435975473726616030727018107605938893062984674281941463435511312201954231861597329569631749138633535343179626176870054427583680735667193801042453989262012780273184867658406169348950872361085133505936857959550022571475076152668680565680019006696699718704135128833896601887545474148047084487543383427173909380264243846771914541137067514151437845231243880984273927171139009801444607680862552130641181486941617342393298287107045125350480363358736745464489252174082546207162097043993778965122199188190108169610747344915973837547207229599209132342064655966859494373523287286218216527005584027513794637705053699674386520654164505706667338651101226084734332878498601736427051944675391395441179619349846494469222344599144231926146585586386758155313813253860175515015834213033731429124728404196887352337720849111399104055998674255791510094804089490199773490807498137718232112004373639840295209931215731314323598011435240354798376063201954449564355442374691530737052409515199259742073476309651603150677248249486567413126505261144099147030210515907732728422253786138214166427159019973219595643259389155771849816440480283699628981436485775298974634426819901159961219870712419193524139468598402035959892528481976770249650241022553761717777209149197981082308865176948743800831972506285522568819442931323296422907345357727192245065290314927429544955170836605820875703591656915571645542029488195622921145749756337121710832712674608099560972403457458741009185043703979532560996414484601585292695235214764287042042807103965579021565772905894124891108338331276424553865444603741712210474132533410477313406722611355457168220538554816130725652048506516501617776658089604998696100098909421009471785971594389952661725004566359300205799534176007407517194252476220309307917679434920701651514297543406139347999372562827161530186805421477737884830091223392735517699718834400639654690388889868717482107685363641853477280957838522254186349832399358150013114991691938296736659597740677089920765258350518331880200532666444146582167049606498324996450386924336663920664675532308778427454646292694662232389736965052999677887887856954823370051232703400151825599325016838921319741959888842884947802583897762337781915529598035292624953697768269553636467881744983009270485089040386881307534996109170489047793511663702649344887280984273793952148939258340404504118884700094093340830994977934020944204810478324580998168971488375655845958262199195266172588476592168490257208220224411729361838974304530341268811258962990257435610682423190104586867008935410660894496474028044253966573538794955731294863765411162246931559500712067179792407330703251667841681567586468174308332404615614664238871233681314343419153315296254963319903142116795399158714308939478355691260463120959916475550690573588054629487435798022879556537198609206295527595328271700056279637242886283081469373534088190714060433995053271666744876336692427495614573402665019650590808995887970830299696236661967411070265334697906297388698945727840866338577715377490962678731318812377684960511975869431584122755239023874153900420946434867008289493827466045168155628482600542539755305362576545468948710591853810726080512046875136851952160358826314846044669129828856216859258667944572777240040393162847343062939759953430052862820041473798109306134612283586625501455681158956348410912475860389626079589990162923596627317925882305966072903604618157730501497557479407860081456589160902314044453385131320864889949663155984647640190710958979767396209587786210986168436647328389635832609474297245003123409597760621846833458719567218330723787330689078144832413616360604773302685275111559665298334196680744384778796941997856252173450501686934837422037589990261080777133238860897016218257382108646851822185432945301797745478407125623373286572861541544336017746114286963248219449786423671565094036512462810469064632242676844205089516321629986261166461309966871511893444090288265443067022460057257528519892254039042827885744487084180383669156850358733992528394831553358667891118568895660786470914681261687270325298726653530369616951537930436791437683318913825381975090361928937947513970732276906958523613274571848561010751329639256835137277043866876084830271614319050944606227486651262097467438037415630296308946539212086037054281245654939395700339506395725660598181714987981278887908306137052369229161894333546608162504891833679327646338575298498045238133733048514721531223699043541419234792351710670498330186855455345989334540205123504200738831200055807930199700631907637203860066373374032025521728495891841285231173483492691807721601391453886674926004251578677661165482939503445499517667405135849612101888953947446286176614433683818226748658475623606714223791375752012660286272594210288683243781099373021120152249826578007591257364112262477200594480476987086965417897719095488505547414052591648424440929800455240963063807346675541398574013833207095802867084963798854737542767968507957213143600752913592751049972638618354635747485608505170229345402911171013656744243029396497490126955110227537993357413501622694014093182254138870679124412980935182912923826585857646163944902072655103978857245230930176668296434409019441129337984568476627482855503174780387309716120463819009073274114226539536860366920500919209845959320738608997234802182614383707085098851281229081081750152419318515480457650312989799025259276144117077529870648001681452683458389682192787425460432999829993457054488285188850462022314237509014737723181148514082597706789476840938598914638825872307239891475715364360558451071329147682033507522956681701390839901921487910047570188207584460790257420605549079671804509541211874648310713256520974500970034771674703626358573419063342271596921863060832114130842713601680339625685681309553786050892841407799800403378596380911090667409384304386266800149655151040586377423156264069943362717286127956772739751017298334695627961251994244941542646111219129259410746589894634772848475607675935316546153977157267636215005278554914625593482044072252466080058519575419343930917447954607020728679694300855903997388343994089768880010726122097028005406111377732651039290000248474652384571976263070965588660435082774702196061048191233018378131718097430298711225619548078874520448411038944102422886642549539683148723526911677868016646841212922737140637164963011850170289264580708899435507229082343711080394788155604587261757055968996411545722179133195112738865431056272216416826341201211017050417391952173457770735432421959254575846962107756137311331239345020754252469485859079965309060912044916714366802061089183176959581703477135568440493396970283157220828265613021009371565347781845792673159680631024460862906881732265699740783824430209455487565772224103082977111037944165831660796203547171809090579564945404123942568627565830822797116675488842825215377588211487730199580367723791180268438575919698781803489246238244545807853923469907258294563385839680899842688634974936055055785607547838325591798454823886344334847867390429869862590514038001528097691387569553069498278227195015578451194917832327443659986547075829214088302006709893189688942047921288557208524891765743149637522235984569681663666701328539237361696148567487653828813501446838131690191591781594129158913362180088532073949904286644422418987085118167915430686554101773762585757500022096791848834018638428392238325806345055663037675729901743085015442678640308372602181322393448249698751008194091583936140963648603412278743039165078937425807792540728274557808399769040062941912900672458444473829348867810777493515580893328504463688661677124217418704597032668079704229077510161192434883088250868227256788310065284276622316623657288885320046119710094425522673670553857788575663710942726371352182128198415209519308940362820956949266075031677323576238187778326861050591114472166760132769808186419429334160754770199100681210884108327669821683404059019977999021966482935822255934012711139023887825985071884465483113671973298871842331877447232438293697997338052789540276940889077615099797315197996477277960991761873113402689745176522286858266747721225077560554340166464631123947945093208893949344906985854018166757493988184999940914638221119087014846679189409427001060723980232492458261643871462835436971762375229546703112688733575799702285137637781956421955566301698009091771777031460429669578771760714288891377997044474036249143092308899626931925552122992854087136500620691953953541992608880289247512976014997732027264403611250173289298224157261273863837297074814530837726771831344646393977444278136720083390034394505142215114045228729549806996168577733874923521344393050908613290412676623562700894842310549594457090395356870981013187139475694691122419167039114873689154046487925497489465838019021864431382820929161412209179176280907989714100664781638289369952697934763984526166464971339465153997971447539691707679711129844264886295754581316125520616239283514117033518657077409908186966229329719287342919465001986117817212832197538257594208575425868096714292246432135188663854242088437513017525836516669588710701757982406680401229674515750169698854114817962536901357380627133469851139890973097564471751095503252633474889864523080458041182211695201303110462230318017375102831626610505152482266570147132509311586175429396375432705724016963083152183734453281585510689602707758677415690958647349751024599604928257841426855460761722957133154168073951214569900513947354382133778801918029719482940947278407974189898955933931511712615330580977731238818249836220580731673510212668666884297056917656291782232909072226146404060328972230244764864578975451502753127953892465170156515612055146151979674100938241512164514368343709503750218908553028544607139912586099642084489786273986262663385029764021097623484634442004906983941791538005919277677538952628822500420634766305918695752684271191403263667505103494335086447719933808020022206616222120281696640180666103936129066304152316014407142570308488680823941843218722891974086760546517952391813825204889654931882810879835729140984876123137865404363850451124312727295999096529571809462412392309244325666678740268383562976559285727899678752214269192462490661914960519998509188457808532488787922382394117155571076735687287792834626829761385945520075397206719736442830074337567093534908416012291111481302243738178436730297273530522005355300896313822776669907915938950987326210134658293350799220097029899009590482467709294996246880225489662827795770510872797175433604493098255515858363369277244489505211932166958523707081209133277172719932297387382769057174987662888438382911556430882675978462830457447639164720520169356170077802297686243327100093650546599395499331527967263214227539690333090036942147694009829781924259331338179538419987936935543984887974274485387089391008114872876722689661766326368245311230868857775533189829650428535803060434782401718645348617892257709038365449450872091866273902462099392500722375274388128306708641395529535224528521856928736412805228480339521743480729249866048547949187274460791295632060414589839601933893599419018774908342183652690190740779255220452558644242204121557514884858785859500344383316737322100043317809559659509991858676493284390444153100965275097226762339374191680864088349820460059457035266361845035257559238664738802567615566431653684622175221184483614595503552052245722446104497152399545665030832015686898810942446357589848769592461062559510417742185361871922582990882684531923735465115414932309812543356867540762670715322920855169339849599399235242788912395013026884240433227205379272274071954184001392244432264922122272691231151997106500396453698438557950260157783031437660295373756653218519074052484098789174307996034905896183949020143703254105596280819255699706846808323521496815948779104739568025231994844747998206294287833121195866817520024544307395862565556869768468899825795718229476054397632831961810911896851249541382745455556801716161110594578729651271287474541431331185025767211659171397411615377448749907967991870133627414787278551989637235155234037109741792732105633970407668602663829325336846524754703565175116382304931610972295584847991746037322965370418299184343359272071233409235147658325199146063511568467477692154994233061368345999354057289775451810916676920498534773723832379526005848642228016498788560071373829257680103020212995409227891689219332329362051681368293020730814096173630609889404258668680905593411419337167087900100867543834945262396045186804792926467797958402185664388719036623165239790780984686274728597945692669746248848613116053439952220860375054636266266337456759477030226810116886165796909841680359743205713428794042344295276822239485721559231216878850383787071529173204837509255672863378506512520746486779237416099582468439508185214890614654277006657706248895984619845511269464805025110484726111457437638495320853954471101996077948974193218938459749234355835606725912537085774177595590105263100949460526573361564476247934226762646790900640194540661456944470869534370932709082469575672961833619682400662845684856716878124354841095968313440870567364875244271745961214845640700163709996008431492544441208768871046522975336644765889962342873364976039341769134459291349587391655158681596170060218717739172989961247092409105755664961005281390872718633915278674983657812035870853975649507696296337988737260162498786445658136507228759235053731669999580126525529645932302007547825630059787940524250857287131074533568111882901648786857349580326838401920618033288502796209371136501341747735180833785736697890239110562756996082930932644726248460821436180439721500485053570431281722489686382198653374367499130358914056240242358934533927425841969627163073149271899248360256215664059212847096602704399538508147916559943143664635077344450560281568061134414767182254047146647877359749144201183692557650358593802979205177349008882006929750582513336893680270898696403773568731636346138393589944403714064095178949150884736334924462404404493866352279082268938407438658420392619967866542426065816777910857840099116566731247129865328398634044940148389340763800407876802649948665129259944455224077297082158998553091712373868826270936504853308799445942042759271779119102047454292845734813083288981662220952106279111595604208995085119618784969847159052525346321544288392384410807032341291793546382735748912662114516017663438100023426404052806250495020391134996848621015084897274964037190699545502025164961918756092618860596859748183529140611188068528516278775238149644457722657303534050957525503385330230935867762492285231622044177175986396005320143991600883285829906495159575000271561349626373527483688935878452278459993063528795651175634163591393206835309602235075775101226248325227109384414402330663152463263282861201425266996980380560473761748688485750720433088389346733691663297790765683213228911298982089362552774497162908639718808168387405176207355130094460821892375781855264219694538436185470543226671010108905702160442004354599417864730863539880505151209559753230364151896221141482981784107500218946098364661790725165889040482514769791367610107037965265227366323976441698615359240591696388429355793898508290853281962074885813200476266319675502949042540664208347973639239402440193540939620967876705241476024556391317484697225065513033366804851344943314744835755468972611933496190352812890315838568873221792838132324250150159079422696388976877685598780870071128216289043934323088296447135559876244998387198410123021040264058997918525954621429634318511589337989157855569937792104895195365417182354927348299564693807508279057054548946476359223832490093481431182521258720280620716283635881881969668890907330281726204933470010970901932345585608177801144685189710413465287661681156092100527162456080892492981213072556254907253839228342144335425952236974736620559741297857087731129012855436553429301069526243061979046147315470641183473645956902704654143281451003525818923746481992295778794958034475030116675592551506045814377214865849614147559720598275253376711237147698359559758225006858173540329304967510152344829803289263024689983359229234059633362130541448687947211983663937655291991308054111064826656968449242704374534374120341833386443314114856519404055082329720740496146900769458591321699188022444422269190772051777909269522612295239271350254499703970527521415163621896887438020700566281668994478050022146203591761518626306725012809764212847571605170652148918188785366829759320836361824223596371235437761036576361593219802479170028437339237249930461473380765119221614003835837641626878300905005023303982628889097370438860155920899237474358752047247529971589799721057315165962001430390675744738158587049163752582466213934373479141191614327304636266304578093102764835230674885138137039581646959796145675881480561379838575106031937170596649477299276764403697459894657266042715913054382425937466346382577654278899779927372844971047867587771228499392609189302099006220163415257047833295334014155366805519984678119627180437481697617559334359588693515917541436517526785970037850614500371231956697865577642497991835403536264005525976156831089316128199586331708520490169835676146199445372203856814632854888528577958322494441054317385942418329863266579623997853502739721717305029608370249480808654823685853077501200959325930694083206353239737592574394756327535048609185460203080420455349494833883882332138711382545612022688013467978411511164908358728058924967822936969179716732357760184032574996787795838300360112922524119106364435524595526377036938839242763343336623619623313646910293999697936279319084741675480612870085010216618670935587273297067907906981164933980970933686083117137058093256812008346767592289956455589579340327529309633196814590711592678617130421892986459846953984167820538856148376537851993918662339357949063063235961834768724438042933579699084227581503619603806140100366047750686005750912948710282682261709039874537791066085783954288782051216344751256449229668093033879768165433760861414183668514071304668958839634972158100578810074035915294509920822743722833699162027071256857646221185569806511823002674417127583282965546348178955779163334563709945271508862389679879692411119698374367930152647698133669537136863960402783541716075799009126367523511632036534825943536192874679236939661418174704221389019909844844816883989347969278362171787450211885032009071653155989619521272815516056431584732289448184509800663892539548782599533195455761725322801311620383394759355364824317287233268346418198278864912054391968806036539120329956525605166892432231357785566067644894435602930437245294412790507955210901584760990943728445669373276241991204176659368881449956367760152418584167141128440086635234347480533681163371431341549989730356984118143635658400057165820711662482249321692598885681556606625892677152437151474247393523965520811119238637669483864892064208474753448117796811689257095139559172439172585038106954716545468070797359120139058813661679144290316896817291588333402008369493102686371106147357157136052685275509449047931471414687377626464127482140200636786680604490961114431072373999233750294890970422335917309250745625025971004081466294337229265796597218551355651052226373876158172902075728051185791283359241574007639534398201040900572585700833525033392904859442846573808603595891827675008758537767844631641089101640588677750464157327364881718781380477456247062827754985549194114865326271880639341768673437274923307110540382758642665997522848311708851602374350907612357528912808234258548324090663396103681570254073643623320479286657813537315663595495404127826535283521704197936187286265891554035591152938442312558616889451247719906278648190777963450053528846610556860337702242462047979821461039358056112192719206467768425022596768220126704397541860468041698325963133881800105381645816166055151679228936227352368446547376588315184996978033281710569837840451500306299666152140755899516554884383502212134998251226012362641335790414664771004859810883232363606343013678109632962563832948552731796830754776833619697163033263549218265153470203797322645469971961392503907091396538131886023787224573540185632659998005538968554738343572698205467742218989005985003938168943807297046227169450265323682964056249727091086326088711418031934190425414089110540007484998336136853072362628645924348487492981795705472333933690649889983412610759767421335769125567685766384294048659738025738585396864733918884068273925581186040048501362176496618495744743977944872781963645317717696610013915479184217416320751098888108368901114092434650591585989080181983035794187689645846315976051841065393609631760380439126520997310144683195789551002765920369893697906677538202342564319312510553704857060037453817349303092787833093919045025184166639415959332469071804660064121804466687588626001824720064884913983744685374221248843046185890738357411325523457579271305991325168076023155418975750822756769779420154412355888984753518079376689963155593901789993469269439207330538134921713231958488190097561563191652469210654977134995859922966969299944980633964870288905206991896334429619129090189313089126208510728042729316259352949849168492702936475106445116960658553268169323243423032231637701925625780409041631826333113194423510621260708300748583252370604054717489729530796358776540892739976592435502492722015328810039131411587075890870750516753335540979052207727747359858203652693975216387899184531878799953753037489054225184938942919882228213237143320137468708520808943971499938219520533267524357713999471603366567807589635836037295200111311558881997176088663056997873119487938840764316544765811212277398392254198823888072633493556188065098645520215293770948096451626263954385713834658174964360367681516976127153721897316345887008202683759912096871398129446185241353287118132773421552819905110015538034080603569721344703968864967161405070621672256189058081977150385079718007515862579284352862825411929104275034236280147261886071055896454820731066936165287198365355198575029889386160731555572600840472328929998422613146919583055019218688077774844146890336966826631642984171469789373616115553730679081743104479496183008232304616803368624590684694443888603582733739744480546864780612026325050117954224808150338998643910748585549533507809259117557543790012197748402842345330110701141723596944167821530044608670714171185709717810268725754706259929872076900759974635381137265761882888294564016449973981936187543974540713017221926864136884352996607867199782760885644069638132409250397381447989458219110037628082793636578859159690989893132639146817521569155658584868907505938330061688796016440452802515903197344859553290192936184136776542411025529534705870887390627907007181852511812668078749686168412393322455864736687478809729477844288655370945265534331913507426073983487502627091401119084857530068296185908325245877769350505541278072934774806861934332622271912989228676133592713497144179281302623780615069409792427714108599338939218475726039346921176764812868422710207035455240820154792214953154653661339693935803798221380389762745818861069507779366916744603839095559112708949157977144512692937574902961195819985817239870589838084394166921788877581808423921364566158450388084520514633920435576029727303209386079070411357490972942014199378873609246092309746863154336903977775180124167739548927764308211186300735056157926754830834036057200222426054802130583874762511082008469428115649743473166732999911781289617279818521148185532507447531930117752646931567586756845202479607115774405150094631497459491765086390724373398137982885295347309155217206837835195962585885482371900965882758580546561428410339663197281600512781425131662100941860647324120478268917245278773253579389818660883755337185297390511121187257190873554722090507898403899592392292099585988272029717260387399651674065879816197658772140259016210207651470898913896088588025199330389524981009021513424418472688309267468536213759113619021107461003727295707666971656698066716326594144196539290800048965868045463044603224824778218270565898832301857647868975180939887297423814961489766805783280126264382775890382349347845426383620682551853225829081468955199249046787848516508355989280399293531644853633586034737628797672971474829959163934027951616091897364893622085687602236320112591517371086813119915032427004636935314790016196169595769134723767077098830184762310233113988532907123686654984482640659156720561399804549518925835777190308838787959454081368694906329084202460989999414702546085489054558750401239665426556132553743281622757779652591302089695840851182147852309677640329744027756565527199402456325658939359104465306897933776952415225591986613148734173903533227076843490536028711232902121485778865596974986458725267772408097432604621031176485485333647180910048366260359008565143304275340473598242081850821917579558074819379735551100813174176489647549633581496160266818334669589615880849961401979800770007305077074075565325444271054119580838529801269890125834759482070760308695898930669581147029641609351215130008484710220208171533924971270801651135418433067446991964254534130587909170040752192111583883023692416510685860823003282485695575627615829437443780718607127792689898840391145404928119694624293998403841533472567375243903122103711766929585110111378428123646527630616029328373529186574950043544878462326343498456305653680148941934704465859608046046685629847407110650535533596239177976707255030931871623730446737457203472436315616178312151893717310390084382721431629557775488556892416210417893056370289451892191684941671893904599980972100894939800412725073475320604676483658868120331024536310713607897748685760894050865756313109106714374811480580450704371069508300061228930353475738498752857464595060019869662256944329107485501141507799675960237599327229117400659256651832433015099163695108986627908466294356899930796362770885700447915042786570693202271893853596379275720413949063422926661284305746418172950798066762594709447980372168022165030895828001841940427455114176072281774611526456639315243357898441023981443244979912532391055231750632675238019769447552783678772472028939843055441811008751608292013893372729625196942021099361457482261686938425992007414209995668337091278533566530747567458094083343930494637520140480214886734914430362647089817772471962688140515758980189808924316084929100494236602666764780237597568558442286207952649182572408238266782604945415495007343522448447566227491689209872976642801442983078990007001345128470647001652154918889451379012457822390288135106085860975614395588287886826100979631931854344893255871390981746771618903945283836184768474940683761866727951313200406162637901515507265347535319026575038535091175915223828136397962971724420775235285442138768852559151725463570276357975573914627699547376952097222981657781690961125213775851257322328688705905554009523834361639929552519928520741192809383024502767072983542695290799058489589893837861388948726854926500968765293253396789325794533202313320900154225797014184391507438502838081067342222367048714536691131592146286779890702806589327698530857893536214614147489233691522201575433224953017047612181717432032015934070693996267624713613232848143653767752663092377520541995908418263790612373590024650318842771864591741936718952179547840773365110747023507986739109723798528509771991402150422395153224616977927433975176984690808720234409998464638810675928893007055928222843270759246248084515861588211332504228803188358307354682825147558475354872288473654080023013386133266527273968828417993476518824983521231768273451627226239444922789651401769548262426714753981390789729188498299616279300035033028536267172647748401356071338021136650263843330864484337765708168146619928210292932451841691540251483635106298073852406788570001165491933321866446691900790170164620995035761824272604628300963219692822523812026002183766567914978699662299100466434422621232985645704731516392091398000250519831239968276407873245384456285436528121855317716256563081761577503621903690284970954847967726062919879326404943314740356092176269764028531598938473279469931263637152330564215248113628522323250289837846851827707640014534061935966286468678936892628614733485568027252191087396618731061937043638284305717293319774800591324413928727869696547485391034868279642595547130217838712168515304767148526944373785279804646036702751245796318699494659423364724376621575331405631470897143791221923450371206426227577548259829066209240841998087437733890116040531353811889903533104671177599625783447282036508651105288063261431243162758249342981685634643366578034515031168442904163572960563030631594005465616568736207136847974191173605176932140397703362307947313648674337278958034397588760509951255452276825700084001370018259524863889212722320818436221587792847714791155529214968480854937237350504061002162613169067176461002298763285155731171103304882154996529982335882833129350839801314402856756281845119464389134997889359931513213824379127001500505782463275417325913207159677660206478453895270162381982871907305554821752972197755990402564946464747322644064676529887130074411519595594909644191104506660481903538289596738699296887981877614042074180292907324653523411537136948644228554954390928469427545242108908496644836064506368767822336996708939690489785444929628287715598186259477055637042395838178449354640316465461562164865824389246738319608727934819897925483645167022762990153784446722194985080730134003859091556945685060163714006271794724195307548293539205987858527280036812792896193666539441213951880408217098239743219553466735999595566259896027523952068021627737499697313438056215977962553738538921411568950992384311031644043595558956398605804574004294291844576377321145074846671469687628268701429078814147105167639477177937943602574414686381605924457440966189555957481422719749513702430574337105807821496055076744933076483308507391424411138573122767654373583010994567031143390329394072473354714261892016439741336837815470448035438385059594303720334103675885046299029045634516163483187302524948712169116879192997919523003316018670826864225225941531867817364308300148932695112568740351040196267540132165491276098530808971310805758065716682765316750134772972500456991849137374255682163441317719468376039266790605411926598360721265887214438845649288107734151672981927125254659534633812591824807322988718831317723873322793935479388731319689158485320648781322095455291923420592351961718677726619164463248988540028172138744590804843332733415505534850501188711726687023254196534378031652875564102835429774046389332830030166363284736805763667818295925707882076668118403870657848033512397783784664821535424421100873911730026078288504389735588786709915389528680428909567755520089767223499016739632857183146659525473111194394503403632139436181780058893043477667550146270226311387127325266616439477701766911454559423874976706864636769260931785675648082360449469063660817803824347243580819671000319751623880944630311739736671326854432863258350634431348789044618472271958816301466837748161981014815654007491609905704384959764024096968599248691375097403804090577971152731770903780498196943772386376081560202964999716449979694659068015265664763590383338712114189080000239063333844448779080882158256531110321091408520338110034500891856966764022868304882115691900790750824152951453733888807338562958394297047087407898119417047711174231418611363071100029020151119478956381062004980633604638599965255984395728163682786550515102583330904977956654856374531374075745400665376481084342810762713585077456425115512716207079325467397764294984459969187212551429450631759969821066134145323906095389942123894589009158814042899780873689986398643252406303131507812574460345104704507988226156595028927248640561719335995580955037098730503014405487326379387619245684419409732080455960960170857124394424627659796864963642078010706350781741559728311805335406762519220874919296167114478711123712347906377455157851468775886893080066306059458859624934884782098418141299562232445597774702765780728786875993064198763053849738248196290486755209092598801610511625231149937767417324084072969669508962408505572453825896162074041192979933662336236551076442421954652144387124102053598940003620221303460060647041109962422565151517995445916571234823889281474092119175401321975878676238289382831222469695193033545791368008063023401200779588757122429214358105244877429191649494646114385815325310746240765855783668108682713000438981288511783687552485108601426703771930225170929445855874902327087193182649861516251992159564686757622049613828059916423752502878114781550608416764303916095318165401598067752798735425685834126570582129818176007707839906248800563521118880758487498027079311634738121952298490836154096929183048278926517746175689748150763181726379503101380690021605987926505596189429621560350411839434487652668575369983173847984569437090580295689255857188442447819770305687322411319501786907142270983356938339809035692953896492535546414714511220184265578304303716047871238815878101937668915297706283210172032682114316651588890074880441840479565605958113639503986051096624133076068787345476758294034694594457007288595644774922238976210377909579527151700147189227019076322940102751808281816024227711004600239493854316276409083908350225343341583740031310859516974079914752125914776363016611107768442216743553345878946496158669984405148837186040258523431039220872311787668203431639001300570509860153293200620503740317512388158522384016620202718555028045006435612064173473378661103151735520687258921849627917878583837033353350094796788791559798149640380020962202835023780609564772407774951166295852469257396764156586547584081810872491390135743957022746989519790954987345422017702564357667750790683017648769521357391298135466623592347193145648543715053587511470424610028825545062004516036622389882748390370303131253547218608345971336486614177049766236073193589716548040719799291137792966926331656007498746043410267977496936882620430017557971711564036620653059386457456575125096474838691353602906605313388009281547318161977411760800003348906806760823770312054931175749345452693390536946591280624434257540377984761526850854598794328742908275404804669445521309231477481735925261824736239517500507434731470543568086817086649827691498958284157637153375454808675973276941358340050032571309705951015433548558524783725806934100838181656960876726577083293498835779908876023364374955195479662733823248151731426052733952446737740999769017011001252775050717729640689947665083442192450316468928611585941842215691393948699625490859461022566455728534140119861728034576177051125279791442028655737770177610237589268567049796084032575632965000900250831131589521253087808444393519076943156090505779001458275436894624187720652385078282318084266104489370383067161960200030011489956970206453022523422832513810116753777480383781216728332956817133883871619239343794430618896061817637147458902714221134730253955376958187503850303821313291275409933454113299201877710916175989759320103935729443755283713005314591589789121364506567240422912143256635249653448013710370111171845952729272945639020398320260185693941146503659109180750847561326702894143043711307054278775253546884518848609943713040126118726169659830467496550301647228725768942476540788285782245301331159690322764845583067136342355161005708353526652265642769491000416207435117084349716061361595726646153834063833987066111622212253148354757020860662024897349828832076575155116971260345590662025814249946473052839988748158177135628766213707697037418729661285066813519537847767533548866416538923524027644116328366287918662586207148502595465161280413206989682667061573518043228501349403000498041695345586894361645130278644261813526372612773728711308975594842127017795764136085452269195155864536133216908001053749932646644561621491195420716377396458244447299400914731326738643531674253072686103063176774157870210039162710410467866895156427966735279471199537399054844850522888916689726370091926494787480602610533446720954349990514372353146378999982492751860925986573644701826605815009190534806019259054978292459634737154348472485346554571804460771494120884145298728070861229623451303683800615615971300211988463368509235244424856169693437711981053869636629302440546890833891991029649342650128994112392177696297918969460033634610476805311670721830725338498385170872006697204587870648106708271285017470003080928485051432578509285998302444579477407025375801158165111067498014219659108919169155387459931275128656422739404638445202755936212070031940986144311840826591091466371517313427517992046132880444913314889352921397774425852696008636457672521326607163099237135250031403091124334978568676108342733973313812369357283300263909853792662725911702597411761135259207557377662945992326346994384617657818525987157221714558649755365138719106093905121246810740076552960293341005175028657201714165139344111826995911046245335838374440875367141392594294624341160886798127810545555201621879983630650942664465819120702403742132725293498661831852390408853328792587868559617962228194858168564865219593391219442975365474431590133166151230619511468679629815392473577138483534260351145265729027712417801039952735190411632380007801069274801626934583279905084534933350214502454283406390480312299236741223390990953192520179070528820983141768119245962568779139070417040212772125064881178283021256910996110985643413776494309180003684535364572371208479391652875481480534083114964227977078714184837838149261843663722593109244073596759893571485497217743134483398407015121694305428937247757095284738664315825272767906868205090981832329494564399946692716824222822144752338690633566382790902202052296508266490636239123112267220310271318780309128141696294744129967194798097871590695825904469402436362397480922811989417841109651172395728004059009274483948904701787282854637232144035290731780709878175731699881757486609215806756919891904405045868887568552216447407566353790429309065868555894122232448666765310972265906306643797836147904260334107811113836865058132164654995776401334387816886027702006580976267662628416330264351068462601455497579119936120461602409862061480956316713839630788282339570120081232579784339528088954235871836802042016568034722552343674234215157623336078805193794666798579235595133945803834386210374559699055709686632575157915113495771855313947427032508113035793813448692649691301550701541347612026922920512809562599189242524613457596491152080511902433151895092329955359694264977672094164996341287711087977576948406198686277711777690853076685492660378754651302820681386592619314880463726988800931267459057883027368379999884468874937878293491005018588193269152634274953076433853024109805013367600355571304527495289666264190313484472326348837337878188896961105459102217455094406080033200633671809770889933853800382605098350064931785146636806868564284776282664686866972731991922408884241546395304330462179297287232658709083480302886979537374557161195105891642462303689454256182759854632400252576391910314073857752598282140006031964271164769134929368559672117063122248894443002993324282836001221086224212570715748878697855741452134395546062787223927737168901120196805164923045217634358731253813848921022284434368189794021170241820380060581012018376258063920908949696684393834211170501708395162039556772842003007100393039574214134270568316198507920308424056708758837094787161837267723472933838426249000015807809509460121156070922013755553292419531739055327212041281370809320991204604579897215288290633322532948461204949296140752811471106685010931492273156299480160588808226263367449336517804825333134804939167173450432613477057335832929460805420260984187115016300866171050031882628471634989488904697902899571084353748173331124715257385540160303002247787405865554660697224127296201806275746377943024559182351117897552962811929227921564479028884679980534956861813819468182136981051725643687535982861607139081768382247715849764842462553440716697803736342330568543341471666973221041379293616520291877544230686881831956157924834978735930855238562161536274232173802141336078785221122792827422733150536754490247679880570726027719538305196504969797881089037006527130822333459927604692809516046400327743280777093130650775990101593012602553779585462293111757702801998283590606090279522575985972143240344204740129760089566584187208281001157804164652563847837429827537583977794737747456668247443452681176529288234069896875030318179298919679017794596886731239864956075603480113848368675817225336921404598926833483791533515672572462308507233494369113419151850607166086318879057293342963867215644583255630111725839130486731341559482998236238207471340475812691649790425453827459806955094444365872866380344845749474972990745396458539987550824914913805093629823872507654683382155812369943659497655592480959996989066045873086590285608011406154307110716162210751360684422930358711247304762818170772887460924659607512729073507152414738773643081867690765051012266160369893464975287336076311792540298568119375411275984060432268545086276789180876874035471659375281093700097109047558470116953967157061715474072328248543411484365501594614373105022226692669486264477021412492422980880079789761905203783176133227632800228244032596581668028173218396358828416834127097033553652293824343664623554085566354542824515096109605671915213345727929548086195186873385278174335754646216576042730851422741724314830953178435190697339950264839428610019680736391224864671221729524349759342326094530555095746648408807701836353823693781003042159254123632347864382019199071317532890585484415087019498525533904778064664360290116940720241029254442213502448082059995920604573752825825022917613782704783588938041141375255530982329385709382254666062771615857224676703597031363191775763880799358676900239980535734231395139449335371931953190978875427423217378635666966727299392544801277873148024993730482249300455523189812856042551798870817001349495886302071835576115856761731947719074498726416694145901677243075166518392392324090753972726267513176627993152355405081287724020551431013427995377150395145292137511548582337661408700739766417561050313453936135691041975353605481472076263781062896281075165568243513579051902313339149025519258498420805386149493826181095319744591339807410839659794467628174694719850103623825735457527194442716374348268814984394705026839476598654141739602349795140149695175740357076258987856985607131319415214059445497100174264493456210267139271154864082188372534269226122911622382324316624605351289220826288283044381043297524056855812856551162961826428864929299357112697979369516859369715613146578185847540944493666352391128409431086577865322483744470351232927965934049656233497736013988145763461412008208582718134805194017397208703760968333711889431972132554080665095044509688737295772237599208650944208522318124866644422321783783414903977472238139537958459790901335035795879439165244363360612956319661188324720565576844163710104227582645670911398721782532171100230193808777114101007318772479898507630306699188051773157646600257461978397004807468632277804459475929234706151549436648445733218896285285592212534314930679103045250787198186312496159621637463295863424138847703886899487102568679677913404379333012747378291444990341824554240715150585324781234143441203145146815223536408013371995708391405236347773319519890939740914059264540455803146117622357216741650860397322783926816815430447992445232188521811912132572953878977003265688976821523515177682528637592870821736828542222544415461362960157531490829357929538259762742898923791455346378274959845702516935778652329477370349200085398761190450463866038373596631994570535039588959902608386220735440915379675527512339062323004103185722456585149663733182428556250065910288626672690547108374533173124238652541927906596322893275793960280499328111656397715683811845425070176868106878693879628847463690096947743994739838508054764732230118744399473635071276912653343557257221305691112406447598880503769554394971943573003257985312429512186687723972173820226643117583806044399998457223462733370166810880441242798696677183023916007864328139735630199692525017373460032811341527076653913147500501242181625734444101201551982117037731497954665298058143028403677420903297887019859417336782326110678383930820879369990803077973636227650564153880869603506962535138820378993676590748413503857490189031424242008721516718719417752137646571207302477910332943805339486572718295690357842574993376485417381075521597351522259340426527256946162624373733401920597523981808347000184912139100254827071675747845199046206241241639372695230561528861427860880161227609762487882169928244568893139792698330937473712288962076500303320676381152638342858632781583173029379822915558887882250950224948250323967333507161787191481485993920163394557444350018861260167860286563612787885350761664481975247593565175121857744636476569390634189367004136953689537292603547200842541641468081917950017070872083892192369136874207162025175642135462733871216159441866924876617983213432909231479278249447894681539537634382054172320387019925980025148841824337599379333594291566981584156054235277462625113127908574597780070047560619525469312750900162630766198581101964369530887465385860537113420391215751512293203085940758495792930004445076825805083942878669861298948169435442915207409074362587521976735225152194720217814206047980933910743526476473853256183155370124573069211630699816016477742361542125103568473986130144808664214397996833249606653735832460273334090006092379055147261569440205841367282644841773069757045238780470179672699255256258278327232194838748897525610377509074779441465481608885702708529139839005011774539694622226948060039726242685584945006809317052710961261780958222509776796671839209033449555347909990485750304319072649801704323491469451858908776229696348044550021194702886357291156688849285960205197334248411966973143058459445479051434741271302333919653405357471487859861550287037626569733067406225340030932385495082312796708784753232603406734818528399036072498667077732328318277416029037247157467725697447830683980867330101762947756569617703915126704286101735720290124165251326374240216379774702964255417564454578172369303975734831129078259792291536931561982899026673998767639588317565980182734911069013388803077170173833922502074149850478954518813651967599064531853767325200374584242547024438900724584439217518111155419642653346396858978509804657089109876412307320134688898989223169990217115897571828029495475832613073088548383273736118647440992860310081462268280473233434092789384629552388129351109005847776435546055805998262003000072622077862184334166839183851516635075357043521632268496989699108187691458438114959456723551041785465272475476551773876979709848915420236349195058516624116594812519019192259199009378846975581084763902354293897197642540874716036300686646654036865369667348828080389908408280757752101488234945656819659947139890254541658751625220099660133074891079832088908147294666977946090126652308451791839926647937463503283480238523468601131226250120032254290892358564235781581204317877620504410480008258310152409184862504247108445921595038062872143747547518398701128209089076637223821854252885158892121093565909677272112260437697442404374146274738498911111530609068737714144065577362344077686975828280705816075102748208816978408627190145142704305180509169802726546075643926381973471662904771144374108865754562461484728999449492105275589968731248115366031118947717326923236748592468233022057643647086046267035506244166220834902207897776255577388107941601691101961667353252017549112511675722450882614626744809851087409677864911215925835309448720198259826435224470849231729170782769745164916058159443856608130512171911985607504054628315444305560615225941289401389722453006816036684453097091312395308430820627344656987204157666503291563388069638877594486489397942353302286082222146682268412762466787899545208367526445101502333754218100663834608627605694945882092644863588612667380730302914663944473482654923644886787493353831811740924734442874074442110666146693096057998455562238971400075980066205204975185681140350852846280217194299044184850130716445768658407459098391076035302874537998643365290035260596682070904607020934103293318421709764392658060817631799447808115547095546493991206881767735684930628266278129132974603980092793331524555330301936849840176017683168286029686440578122670159829354826456524725784378013653325269337797003604234056865880031557332959890706455966070647691883044196970616481509067728998062720197789657419315549562356307124565146399683155885849253839082808281132182134090176405422430850624733245600072255013175075508775163816997401585452908661375313555647038018773868873975668317226996342548785552995888976726028002045652510441561863110716648615060923603981525384624322506762239150271887445593600981555034716238559128489546446464268943319728653497894570721537685475730296994053503136644620343683458785504554211509034760227427845740750357262752961691993020843736127467287217726256166537956662057949140017309843682208131738640238606584248397647799657217713291625720743959912103686018879571235711075068330675173906468061386389608288297807657098891552399602707564785025559598951031564725830469585368063485526041654735479583770721028676377978952594851914054435435249284410621329712258340950631938387904435535620250778560281686977176941882519563622478188497934986848322162593661709350549015688356562983143703473941573876403969529743455430123552075045789511389522332213979762005479633247818804184642841149695868475783284717707168733497689048972651714270293226143515855152012682977133990288326397683183221500933952431446039348513019474376106755848243976269223233470639127452822170129006409012726160354825360493454322053086868635379934586405046132666844366020893482113515984425405861476737980168159931622363554665132140715854640178654930682007498665290702350742465296589388628820711459241033019617006447931525766875212565775833940086342923906056493816237016395203687880610399522735087866684075547451582406260808206047726643707624731040762629375327023139656909937641069768126937746028466575283947803147965454796228379119857718287253212184820625657727079447455679804105226771020591405303250347448788303908076244376801473674707752252188278464871792550043696457022325351835552076225812838140008588994357509995692094664287665919994343078586383166239590311449099553265485171506754059990230656910219116648323325656312321293742181309105517547404559359275639954553440955880517671494679469089513059573064970007425418673435439581181799540306028821024172832976503186956240112936483591002758123093855214437831045837647781606108024438459315830274401879599496428333243265032848237134556400427339879026325123892748091837370129965337533233967682814647357631086789112296253096783624451184646274545781780857124006214924059534556634392477704383676660817539213236497279574849829981487262433489821606288869065552732688240948379631377388373019248598968283827016729987714481963150483261817142966951121369034601929601449260878850285642595457364017958551223748870897608372716867174544749772563052615555022053375217574178143012063732363781938559186040683073979364823091018777337949328831424770785578089248444319761310105450187325237993236423389122943361613648000337181274790636436184218563938072925125057640630695259564550725328717927761430209012467819873924065380361647638206100013337551188741800577263219649870176763171852966487366744878874011146419625348530880937603500355087430816275571746229776113739742764680542589189335383663109188917647468704916592791060935204859509282713674603418273428465572911151124408325118343179863456922079245170885544614661032634267553882304399577687758181977053754165433348273607780684356022431398245038316074174703680991681227059893422209046977680263160007863484718863333798894498419554558108507823072953904728657601432508222692648027641350476843877155440881168107329535288525995557905674729397032256052877088111697912412334149766593337572533532362229934033468316728630873257740197978253920144420709331915042461186139200514189060338154137033406649952878151909888485442945735805591790796524875540258296143061351404994648418624296556567067485029864505968738069486300811982613685000604329983144567756411859929889951698030843242431150428185682917239005290080042751963138483407372329940929723811904979164316118550566491171702118995522668970092852787021982694844243708120332390298492699227639937463974198638472990761906138680973116575586169404143610218831419600073857805442665489126324555839009093707622499998549380827201840313120028618337895593944874588370684437706965757515441576771671824915106865070607623534295080177761582060578569732981870079181988231411191487984750397646924953304967177716270179816187627674766882256693508622603471157252875116427866366933945342477647598590871130523521225611570269127051991432064933758899926583162058359053767606640442479839659037210009575941253972716881123391805860008424142814374818112750062669650003927654731580040494609386301659115923655492778821416771044434484963432904017443382927379356349198545741356709612001926722605343114164320976064508536888561495970000977747959084472770451901332891912947493082263511964740073893495762579680664873252681936680297751445037722764165055005773463189092666456200816258491104758756563577635964757593592469387392062107034804616688798417059276296855949472584254694888367066420837516005681740352434453841496767218754054256246272564373824542131701136611881576715756953773896544870754815628905203084127027755376058138418399609457067879082448198724944531864092157218731741210402035822797085032343530739547665887458045694131069391453748742405279966617176996005172171488956921565195709502271967883717797976453942229234430928098839260157115865050432535117831175959693508797629112898444957849054006655328888044678296872840430272266098150426078281397576965668476575015678107606867619483589747811434154106355089369252592993848045353127719704082583209735860805137367277574512956698090158389961480910159144520043396402020983437254378246607562321176918103969501899799342609436749350679406911832516222678477900656054220282347845441667927673601821946318485288540399625854634607651340098283211193099115750709359684298951100629023627728154374707322135992547098794937190689115064606429993314490461688148833088012796306177156038936301937476799278966267668509819783878364757009325898528770131230588379275203014705608194054410715005876912803129756226878214704934115810717664605329690336407533368149560663292854049794870735459299812915770683935649601865556893724684294349148495190698847172304707096989626389552006692080277859811501985120269794172709862462066959290240019524174253775502110525232603966790105264629719672500913056160702596549250318415111612602987000335207957727334361806463851995404002807974121985007003571404108926619792350907036745616007356650853237365917624565790700434631494088492623615299798172709509646343868007730562901196557610818803441133523862926813956424583584939572036100656981621110018376622114049381150169322630932366042523883417600537793870752647410638363608304240425941725097607225569804794863265486609306648021462274389864117681779075697117545962116444132205582558974320503885148067960270825339892711937524207482921209128649940694265801251980467725455338013896757083257602746817420175807465463168369839949533693360068941387690435314268839720487598144511937422666020112625884335012384816195226752044747739081543510549682214245907087521871203985848519723705027516757940477927877476303273502638668239540706911139865342461568801789998475646772195520436967352981633001718489530004291344295170409911659176699619619307204233473131121919167592305393907571282246728891309632439913857311412372834159463710705295620079630334151414854286187466468398573575885383922968514338277539433463483628725747600298763396919993575048086841098106558170224075615371052722420305634174451855532585848697180858874210013315471403311342886183115454032632566832057859841307554147716425326618155251820970848927725332827237004799584764149680536241876429991317537626303221419164458276575926303095874468153135183283075793649327856164569310605760963411036692820108556307885637176214750071261715034170734604136145514172350770891294968126217463843769233601069885537373319965023785953095267581653884308481311735797510509046536745246381317347419083666456401630865112892318045544591909090237306271191628121877399730985287039080820581090230772448527625361859897778275876973791863279281267393833597915204988355599006784401562985600765461420055234201699875517446212888137765149925600480357512699189647718692040715876776969409868680819202568377506655614601443839134770241800191756832430464520369182948961533360936844664779194306874757339801271685446410605852916037795555589127887572752426324824865548167469661926799234317421049928169128984466465795491817582051389001054717293165786186337302710082728590241611426368551598975491530513185350034625980569287664258317449263525340095661965648649288822124844594691454833015358640028420658649825219353904051116879498730375226811170019942199122057665322617812626865036376354859287792208357361263729071905739089406880540969369807839017063432775872004856705413894911887439971248483562724460491140225063611702413877265511428320286886226442689580533780633567005231866664816153788527171455173111377142826443253995096839398098201058290783514960212886910446068227635806589935784111766332633260030006193594501939189460495205167801206269651465623281753105197536395565149799888248468172333703581458803367354998364382103541209944994705423987924255343638163177079667853102168870906061674282338606071930566947807835715808007994197793709249953703891185307849652320476779765122453124204734633783552602528179171956436137377683065794505299335141339591400333280513567872740307922440264103737437203337385688439173616689403446980811295264028066819222487418689223248096026271219661830327610358225297951880084712390639232614102416268781929800580839593731455892922263894243998717739776282934669809588472212534957120874321136983891042533890224534046374056696277038385097461633221629845707338267043923451767880343048818927523823737288918555122405805578246509790599738247746829554475927677701682456812225152729270422204655296191472443168644473482801597041426087350228205963244476997185399867503408638383286776265989832135607398383354578938560823483865993365381141030108540688673837589820496997606590494458740787627380728670159267661797543193783916245777740941516117318928984300988406291671207277816645884502815456327444746014224769832763859528744855495225108535425042085878815744661977366293329200050473378995731326981591825460164652783448809261649660685612411684401296601132767930696135908237765961286421020344982114157118620764101444815576563844612262050773029848030974718484291070167429117079661948744675318533957307473522442935577174192079193044975075059526658971659017825357510293763637234853077130422999691557396142010216390474494446003058387005513477770673698187280721478234447866540833411723825494392299854153388698520665656359424264681451056925376706322231125704294617390248239242294808925391856383901126063705079564059980581246902455386124098884297664062791581392372766777342818285268799121747116598875413478593167238012103801411113706902544449196933753529486446580380257731377568983699812274470360310665825155819982794112858863626897347739126094624457755849280354902617840375145573461084731463135175086608003491256083577894292351030175472516113317975650449479982566217181849854565532117145182066451779107204984283520469913499660168072578600102572163508670181584245099719161974007062612522398852594203513061301817598647861308018318114073042124368027971099213386052994801423907375752460140430820238413332136357086438413686160764947584385163426306361402152086483086219208829194710277976795330891230999302897157619697267913241431300108633530347587862986475114323940968563034769398806247569526076228177188716162166477422397202370049087109661363099830623071345723204345792259835222320650605624637580116470454178186315286082864153689791674688758816777356475913487206750764381339732546382529772357427594372023513793893756124215780070234882479911525735541001262492544180971533209297517007234474041429509358828491135504007202398704172482572010357613755153720820580703745026620796435239498984781143747568028331984379569382699518218273703886035421981648984946819402091281418204299434965609125027429951624782781165765276234699133465309352110292825513011680766917680261959633519268649595218823568850613610591257753757351109477601265377315671559081355795046838985401184994190640998205205777159820134726204938990702118247583890965020913866276252656674350528820001570301105001976155177997489621683805210121585021987076833238778600397573892176810326533499268094959024712263749478500057574330604822211435419413666064235981833979905842719189759814384819649381519637175487018806189685292921290279758793454449409852503366046615245936448497089351769327853433572890993094515033838755270801983098809371167761308048017494960352153126321982528130031109906042770552359495948142921628934449335408691989945231527178971642836099966855458980423305971939781824830223148706798573723079025167006746101083334287140513305310710202788770702164931810911064582384710462100176577938117013104324676576444314074251468867054469960022559072864815978653113492646599269923295863697479371951678073918368693807200590488996133165822178782430761156579145784518897205371971806135370903705760044605044350407972356979112456386079342379457270929299997744591958947654982408141172756105075609559869137479075403186773667908771237539825770921657547477927632116833746197481415853406781065539363371765499871012653249545330721107118805903601787082430433843630267131443832445332881696365187470640163297076479111017600714141762027851206621678381735611842700248897752483105027083085756248663260635132260346278724661103372401159350646241801151542380455142864350433330394662060591325827898750760981921195482700183071042589922246379568905386315395684345565831153017662123755223926076070284234452857302193181943907560875449479329641347588018656107272163353417030108708352304866591553103261163235398111827501592988113611635964959912422959519495248374886552982854536304757545836359578682068001868354795335976940913102144013283194189240200921181669877069256720167520048612409588420222322265095753194693431344685625909334767347094706088554283587458805787824361388284383840801898660893247671376498428220543177854366566639126805419320363443535807542394352702205124327308149840512531721019333549792551477329947678148387435203950067363265157646471321473962922384623517127994082058146744307470273885667010612056183088301590549045868112478749075111655266467746004498631511973848087702922259684695309142539901114694342910059730232802329497477643626089117377044982983801849025948635121245157288537851147511807404395024123459883538503672737672037838368127277720956053742537959821155169893788647476520799940522378391996091446134274903696989800632833177834424785601984924242111505135264849982055374467971316163548966640801748822590902270957172353482611689360445702992223263582952502183638560731876970981526601105576537758566722959128167628927085172470045755776439187096390590098867459012300921908173920322419297505372218170373160791095565229107079024308976553131748052978491430864733031158403029762459128552137279957906382413973812262845334451630799018141589844471904843629997363146472225850704507664686786470103049673862669160524797106798962164778121657069263566487435875910234709038830250362702063896261782676003871703386269387661891014484544525345113088763365055314320604379363318964748409929461725945264334104366215705790973928568498741831408696160706386684146850138192239715179908638219108982093667497306601497618765464806951974459774425006523702726187322572179121741712487066014438020454953967772376155036687275232502144418036985766498071966332326941269735037770220912453919470329897304184736486977363726375771008917136047194912974839827856845164975222423710558411658293761145588808555614984230867314099170342172791263870316680771144320243284703370094526761259044582427071837357392109741695820705608472448879313447884142953921887302145071264995046820693843718697409170920325560657784549062698121427778109217493196846662832574267721597497164921072063105787795663668366275687147767861413400849659243213172555857012322460414329944222560215231053443012796864125292572541966532044100206654410056854005529997665859892820603696365587970246806024354140988546863278827743422568547192132084304668609018009857429690535795235617140127247141070666231441642625858982227677111874137740392955276799862465706028824187792483724275976064709208318931968638592642179779808242859535462993529608948896499451828909331994667779593708038094630235861492583363390786004148941138847087467819616515724796364262150941827622348907380822850651944031741799584567490817807233870480354886140916830464751211640512662541498387288808877416923265393194106069842303922660434766778923638187606685103635213543465736991552860234225325081295227523357353634871316114350722624004770463206645828530769037187564288700106877845812408237414922826592766318286739006599482643337572132878365758118112683209208992525299591000368456349447657426103790546062825311540819680042853322242102737417644153012001901293234950452741570570936104549974559271215448113829461537524384054605683567109894957113166889605384359984268524256230759666851850902497743296654213241792153951436113101544123994863022563066716127880406372584848327253469513820407421364574293615090290433678394154050068528734273649325391536079606450818235387505208791276883245736631909555137568526019021735958817811662755718722588636822593237177243193969164073676420170491406002759249308558782556111738279484982028101205935856443048495458616747724579013676685195712863446531223139351074545984991116979749347497613539714138215782625218717071575605111914253432091870939656556425530524575485978035737294596618269045613240149414659722579675575018264355103763919628820100231591375306901906592393450233044320293379949849304056919818566104029734579756920809533024649205339279075551635623636366893523961233529117799789849575759252094674670513465110451638317166824933407789423679744733705892302713580540257472155338673879547388205968960163676802390850286321489942942953293263634269823467016948932741952849346483162243831261091645152759250281797013206722706523451488493660894988739142397771842114654896080405106711586667212067314001800722576143569910294950025867458735783493800032043965072937423910903081509458145527444380413498811513143251792621864143713530431845534943514718157345282736641753372265369620397686731955738857490855397015779301323933334994780510077747471630119237672090853686420633627083015668565941245239237879500878950792536890584800206509264665830732241231104074797516729234139877392867659530668860041842654904845094822367973942995510138084880372202717733381721142251549220181248302855271245844161298520640405834944743037856508913698546358604321898795231998599432919064727799602897389712877813452613735442724594296469104548480522331976451190126612674838578078277870410135014119272682154711736208173440910632370407834689040373968463354040540149263770861317756859428127924754425931356883553984206199811759965884436545097288650801724697175086293566591638825283583136234763152364368522754572728588587429170115222210819870738266775519314181516797242439791943034590702523297737467728511029776132874772012263912373495946835226102234786782506444543537057272928168984676261623037133696223058244372687477828118650216167901833456547514755332260262976051530484931294382317706697602948138661619808998102206636823277205193494595792591120410161209819529167216920051286848748001840187710195093863260160874509807288960047634342865266613886671675289676044230360609704382850340494565720936194230594994456396799397139232707801543269226936295897232536256112304219386419582890390118068667366234683926427914646678348117369105136076189330714324295603081900280937881295320683229285840183613018428234794523198323690456475466909043576552554908546569589902539476212022206495276362050820672231954403029050777523557804217531287732891508628947101957248894090239783167545380226977505950221250074602925897777550925643970379174357939434574462496544503142640016272676573605814137078207689623306217494311450190585409802186356837309391869001400905296968796952256690068396511218184972429143385528041563115377067794753813299139047747709955435852031790598096858355190665346673785408594623102312230556313752364596995009206394150467310131652973945125403477350639065733993534980370223803464859663755288737923222779864269377349911825339712213286578540072130223759849143954178172928286506360092913208189050723740320686543211400428592168528569309213254955336352633730778899563901478897189176369444724260552330439980976100139032004021071973755043980124858661264496364432935621858285071999950797184222804506255233663067049483419136581279145811704220195263915442459275520890791601654871004796698916071082285260605564136133701867272673229336348691988327649824491011376568321804244388057120465543467936370597988696725756690319172228608739595088264839885254526961191061058787821450237481217071829310145005765062475083359223355190842869405167334580420338582217280053987954157147746085445460158030822776630983718544122203054412658032322284711400207435967820615990025633347422651355371761614750170107187907046047522001734260678513786879968206151354718403291790213575153227908418209484036014601243235106113455982119847857667558892187090075054250311851219971083721844722651780229157457026499451966684117057099651543895594295813550931308341816761455485395959728933738225062467593313694642531310069118436822656468179214807648019865327091343318656045477062679752222788022283509793739868991294915236948186802989668067893291390264356241271054313077372219959425705907213395808869316521833856438489359409584296319630561974212263462426984676170634892881131280276612249069413659971008235457416887865362796073480010300908275654279871370050140502096560406602115224656647690257142591646211677888214830938581221749318590827878975435326326537927676735088093088879761381575478027757966780893201440874160396371602475368807892282345627782877554861857254526274272684727018402404497653402192584204656932378119578505310729333318863099971001240174825058522210978646367322815577548316118689459576350530805369476314103077879123085110537545789682999474831870256486589155721846489023636161627123437052474363810980839036272478427787668821640968146147978641549200041540750729923539956052644962520767110565797325427983603919667920827648590655694171602104903827325945599632259191040068865506469508781385966716784841551343623153018413707036475610722854674992271987535924778429211342139200686712363032462922878015051913926243057675652141876577560773923752178943628651396601779349549716496946530498188030747871419120911685240212579580056331689932429496629911480382089689616189846943289298077519065962854749574605764700544505150982348154457782113435842026893287800611774385252160213228351158087271871989882450567522357643211396346424187712647223573002791092498825831904695174799338305835873962095571338733983786775677360275431053957827361162335025378910196706770501377713297321121311374084935495124416333320739201937864644706792123521094860439910660844099965550682271454390956041945225646752229696206152137890591332608480206793602347558047033702938711879721290795400075166602341942020439171954920751878939219113805437109798951210852073030055875623762260451179002592324268719410643289349171368076179452807770643673675786836713396610933065082066613977290563373779472986071719135387911045611946700825119870746382111699685820401576995097985350727198090119412255582694217208350619301465736062303638196479185886716827602178923935912204847048524741824120838028328407119508817780754247035950604463764094115517516743709795182241622828334530529954361357733597832275696846307312500260518472916573536547238692783035422111118525023829160082342416785467835928408922565645975272475238357680169611263558306053250021272677274386182491787055529252710485055587772751243975767464275521608716530454546959141849989327160667258082123255951193536668625777669807986328308681375792355579704947217447934220028543481735620890277760269127856904240333070333287615152958855050947742681947683281853726135317995215442000993584029872014920545792791625295631814413094452213221528116008955992356442363119098854552498783294848830453050755124792465083882017594755742821690349439409690367194562856952983514327901384624145940812295620610282269197230202615873120015885737604448315542445099549568541363115804425405870203177380834259453326803568596570945562772525259168984946353941428230078909094800109127976970874572699442240373420116467621782117216450426250455242345806149184236578415170463185837083051891199717078129279942004372869087124962525069164709477570497030978859282556687008979152804604535413520388374812594832854660913376238821650958383582572388850632685109677295845786572678627149521908914445531212522759948673329082754098539794713485433770491469822518759676165847255236602009571754380154405951122741682586242847897994659530611647792116182042072953061096017033829474572088964218907919118290393165202218679248291357849524335750241480725836974465546398298671793538804353654364106918583972156568971968823743133738526572409134446342348330994763064481405731881188317522640009503718149598638878047058446034106056714435366733715541308569973077326419800290618393593888207387572040634848418345256597800652808620775425208620311107281471332171920582030943637518185503838912757376875943006873321287496116256853790468496825680214771143908282674451922352341405332618185024458555337257732184607194549270538417983100566266026845017620035274704333437598376870636845917043026633706363733503096913466164372737937391474145749519372804052106513609027847686171228016614003996058980241731622814816636162209813666856883631542629947957522570251025872837299883661298479507588382442426360543644593040199145160069227936471685871702792963843305454139516643781118725046579377319800125603958551223999105747009812983639280605865004587754045375127752872155670258415124478209134367973411402818799636186406012816873190706000511299467124395368363330068331362271459455735610936352616676216993526734332671988100245339109652030354322662060715956172960872121604159274350718081416646819637138524760010149123571751486260421940996515910769285614724115343748858068402768511993321315046210991651660871198788449093761389269340238262885986409771156104286419098347184865304203822775881013774796509060534513827036757329147141916818270585296647808434105541767668271644107852770175908952308913734427469637848029484695069980691732833871031233477835589363374786006575960462190168802694100753733097609221949184509749140211256471406038896685089833080921328467710266438626318584797898946471074166474201147365640051359907782998812193265868124297784419345212675725974913600730607691444638025569274118456384952470744797414678039208598498188261800522047831722212258312190991362294142894677580501001569253207918546184959361335423022364648476883526488669483590856298461188738604105814241774284239787499601149293005793817892648223285192693594350197886377903375183800402111992151919694554769168527575352166315754714992608434515609542584986754866389268093048303416035838780843707197260643736059014584707412535896132827460326693108510830774788094353919478585530768366105508950535556058365308283420595715959499379186049080552872663290906837806264574066956982486914067509555673214771957763256231502109755302142774649849942394172615528497497681438132213367479036927095579530210886643808851928369558476108024942548729903411610993663836657099902602860276859405335116708269211204784094557734886410417746464624457888643040824500174562233440849458362040680556547906941849374351697250038887247750830642921846529069923701763586635451887889288772259682704734287302318783766309199586056424207237604582097377113685196447968167140959693264816878639582713094977941726855719483768582800913104413290117796407675802141512947678270199560166980811781459274085944122809413911237961184826458415232242523814546992059300010933189825745040329250641711735150048277812649874719982874864750621768720428219551981440173438856615169022369149005763288751704390529017162517478889717318285877379381047619683121734834168167097350270784686404425236232261722098510791787818964564972362913253902781442660522021367387766278149875870524247169629782350708902858828208305924936960266874624834098217862271256988538374529512477784206575411088344726913434633216916496233022174287351106346099125085268553952607009452631827313563136029827864743915414825821044765772748646620697093846247865546089079765540615890015626529624364647331990327392913973673999013133629467663974073928836739957393296599316088888359279218985564078312468569612817742076701439411075670867290322613269571366379757547767653381910916352409651526678256065344946526702637389752213343929599829531999024212880278232325097721846199627144664580238993120000719412885357173365078109828182257768292918289851559089552080127324893428580509727651281412084479810403249284743720702517079830430459781886543275312849700371240720592427825354127819617386943651856799852820104540428473567758473866486174966474692265639926754897346305733221134179580412361410813823129500946614603104712189070305880530667688400015491277100711226099068571879209032274315381907646605591589075480195378853839222138298642507564938725938533029013262893207205366841840199237353286428133882663820090749457640448179553182568265055448361989364340158801649763911702205071860240425454289845798886560276083086882198229260092091575458350440288507439786456068376809623475486538561461132227630671291477168130182088560311492679496590830236804538620256947401121611949577730096908798041098576410038514467860688851659066372776466842678413507342531201927891084600763758257897870918771661296641599665583315385355187618110596628942869174103994334834283144773700856999684077185253091486719409638647217267245059799783368361301013281061523534598948468256867536956685453304894967821510449659789759496327139556353963494909932953612155714032052875100063733996824781458732442271517520602199294274504457814685445155693286960555898327740940448375512798072766375716362561082430911729172184090814523853242356618937382184317401196878066360354911364742605705339459360004937572163212016873278754142666987426683545298409877420807795495915822445629338974680708596494366450930333040589136266730068738572961195729547629505834414523538011233977989899436207271162049944886956388854853271228238827714077989834069148659095466097146219096947891385066333255216609799993319120264411377183119045745966408630232438274358931034467003052840156071000556674245503661307086215540337313836932297501684323327383380305224326840783550597212744834948930251816759063884198222555435757900251852858887524848003612160732017136593387951102132940343285919711147787076972395823844195294697993963509469060859513079985393235814909754137047397502560443809580894743523511134204084051908364384220437618894340155604622837988746957160878425479911116515926980914524714089977631194753529875740126072923912686257182214269853443129392603354174690080686940766411930737622975768962443359373973994720752840155402377310056836583399245983591251887382577371983155212720584183003392450458878429396926075268084396569916501543040824469868743444226306530299689077199928948273973076860980085303972014223346971423888956185675005269951768563612676971394923269960659821131198436070410051123350814074783886389697298021264946073302430604226882522204005748945517851481139366976640838042551064239128406606389398458484288575381796923265180650488164447327964735468914190885789950112841647753920692368388707950353210767866627474166763768540403216614207218675392458588826751008933479068152811844438748179028305844696857033873610668239846366542764965305865790654566926228005807536754888457680705348567538407698135576093718666411034620110631569208350710448523887429418403815764663294858253247428157939175155607239889510078696408410399351554206958221373857575790654821919733378284395823424671721728111245955841524652647076422645789096255253748994061981350821331941427347652452770163639651816879021843810204555340900997559990220517814619102179061874960124685864342887117504933013774731527717659060466808849755375074913358589211419488534412886320892372810270391019081613557698293230857803145957019771438909339890869306012583288477186198936861367053427463470843570746055552719659705785428065205904908482008170039387808081460255694791673509993333145373203129900305621349992142607644345714268263963871649368641171970136426959682680570691021824667414827378353750344549425097552700648266742972147349555573472338056758582308615219129591395408817735660773148460843582834417073317495241030699083739771323840756374703999423254717474788787267723213134754923027978856649192853224348942951937557292283799024722798842070333995041217139378364002940042556685475593256483518165732442146227111312764998896109678722082708533553096717501647233935080214700112462907902292493353906558759920332744741883029840714888983794131504136991649162205493264938621021599525905466035882521641268743488773338570337818607237758712188633543804092085581357800585707958064681594974302181228384091182051359336824862429604007877249841497851570955328437799177847396084546972523507677586615607684423398038914179509312660732751118635795161596904078048707556414048730270639196142134833711606193835698251590409504620607046588726686669247576054486417103202291519370988773335916089646429206774313215863434792070188532470194358143826624027599239731359314250169177180136282689492292581164167209210712577103407976688768916337526954914421521806699120905983567356133409941443321531251958811254892058573239005580094898082300567749282566124156983437971297033150875212990916494434773194606883227300198485186806045372010091104411147059873326012966080174986011027686581575081337785473581375882583514249030138827732836813907195651717903657578416717564806745667769666184992182379048882542474196505571122233641218721795567628842006020746566050465057361006792032602043031003431150338930970420900472874376573098786511075737156129473608575856830641492441355657969683463642418825731701699953516845408858532043546259362411798666919239650602648077824511415358572690854667870881499652706371959318682864727331620794786923509616527155182069574012032264052159770242287729303069201800164549663320850302474310846544189712664546854655213011209380444122591042576780544730255273027861144916692051916671487855344710889304014055814891201064609880023043418187530688876543565182220656654748703845851812066554432823020870334232770570748571493803337487263394849152470131871896203380974113002531774123235546724988202356840806822246470054564363143257439668683469283014798748705719557027096400803515129937787003086739304710350389793140288493941516336533990144751068375977053773851365479639606420366434313201015781573201926396812962798330356768157449612246278529915015868215193451495490807576326342937855738226598119597527886840250884065199856124462907648472778974930258410897625224983213039646104647851358729267325046050803331668642159100978581144790132146227859122401242525888989376539500154076536564039354981153844835302149090495223858689687295052437061255111257373872465713291324092220262838394816539930747102745311991918187502259497805491902853810414860383250249146788630259745081733610570301548506301545495165583582801309440600834005424785768118980040898717352026694734457778991998275076941049040405003415503670437158304613860710446472537198104066556071094034333198959742177017451675693645718091770652082834036251681210934159096153611153646576176059293176942096299535025801454803578141110796041584284587657235750581385451589353327667648346296133485437586102205784818346210122001962932615676522837664844301725185054004517668308657268110980676479903679985226990759487003956198874858713555705722776821350638499936135278561626820954979384964004700841063614126228543643576557424747504452375015607696983953476433367004088684500810977682583856195244845133385814189925947749300008078124385022446633208331507402648623924162825523212726912384927929966378425078397453355941194281431217557501942394164783202058783601993551252799819511541259694754596139098283279195794703538627652985827847214983762652722434944106604721471597359568468179405832873364599053438330914859558633703293209914964972851658754562121732000592220599988353805956339684823935107775082967669586184765549472553750532468273607895357038996959670040446179365576289096037711356679081122232807074334110663598597266292852028041499680103649258491354092471860481495353325039810278547152380761200436313758302333262651834750885642299790493241034999728825324144559229399751658024863892452528041234315885586128368323234752799777149085961134736240860415373734275341373725205736634983509744793164527933494795873959196205135461643502223575281497039863704391137779737529675056112307738528793685352629612881956298305434338685336703149179992176741162386486950816552657477073363834860913798316387080979888176033187327266758021755310924475209728213557707673035354390687628252267578236757029343450410953024999703177969050926572297756620712682396242109787375388380382233321078609189845397888045041307824203671490364168337606461091358334580077735751889233222353032722974144730859633488100206465088880988010848676644544098156808809240729756487121121154906358245012089473598080088618012883524733993393635193350082378559107816966692663069544149494567787155641377925125033152327038013939567767837069883042467485815786362064836554845188180703295654981834898791542305128870410692185472841424695997808539334647487014713967109651133582019718468066334927402099195654470742905799827029340635098947154469909525808748968210799553081639466436812008348297070974338677905910481103402159842863956947966012384797249589537353280415516291515340018625614378999672698667269776257932096131676259387658329720572748308138809789770715435473970262030860961849788685954265838336612959847740106533683134522668497966020734135365463375925983198342970573722586431298509124329499372981144330985366555506495572240331570653686891868454776710061231796380513039142955934864081813984321379333586965985798506848687455252744425306590353585842195118607803100137336754008447743567252518716511499554491185194392786297680853540539861886721117043129098319821035301418468323263840963458096068665488584322457248575036809996257169176528456304693840446735245005735146280898276443883944769724391956232005254038188379653640269641771714180155070099757762511576372720865717987020865809277917314367352417763636173763261750802174164841772092074520061625350637165231384190172264384071843571475997374507175886806464286317172710222697069194804795863476187238593520273175850451500623221005362891764061448437739660306839301940090358765556079503497715022995235485353497496303956641305021684400176065381944058613370905191227558036771515356408756723682375093757576973754846012706537025103771449267230934298494457884578579381481896149997981794464835345964862587699716723421095050452294089937820377387845758486287174561285019978998741400661870479791518115478017949091246314937643218883088113968422737948103793760966333507393407019977935290645873685987779517712948332489004603749422037697364430773619436032908024823812359009297270131843686546228447257474066242999171711945329681465559736851124369401287931651658755192737887783282941554410978709689012125176336796288892153357423472769019387780911710286318722429022735947369805908843270033951586272797341457305896983048256766402776522663573031872131702526784714891160755220785344453563562743476947478217022894818328832557699825173030712249899197713349430593059537741369663571717426813567420422552020502231512718042160079083265449878960723250033217358427490286839521416570428769614326283319130555040450244818524786957245460351397367347368084496489174977187312978617612359979983924343435001105581158715499326566474863370766857124056369372043546137396313375052918028845515337224635328403104354970366320115073168995214888351420987527124528785641254342168030628894173013975295238167843856758648221371922383497578087368198217594186841393147496914674254908791773087634840444630320944652531525644314501322600433774256049398652920989837565300411949698745205922284933692863625344538161168967992822267700791761141599699275955372338488128521349280562380489413523505299536919441506064540766976154312650254961885426673983186499541423628762788381543243704450208929099811174084736403189621090163767761211954394873905746848319363561753826035314964276556709545709272964437842631991560387462978092617611206474121670218486791046372245664900223046231398758891388742134892963832504982924806961274405619200919220596508004660978066225514752381284219156576801600683137379319652041097103447233750870422211028986557048481822839083708591496661552538886974014576705594097585025476978715837072831496563512314623190874552751298352834113731766518577715816533036676159922010369974946270809304516132784101121530403214884178580465868216185396225925793673316593730995736064728215637302559839180648594187346829166510002608073596756445006268850490679803782098481667517369299660056912478484415571032369321871852702186050853849386336487047929761922367090014139881356186915227064110497744018469257793047987814481641846037796551628914551885700809839265405418742393131043123725156576017271833620591283418538695910799304007602289672477014787422351036110284466524246273162352815933154771730582869995847959816305401118887010828545901349389847835680471927967807671188559136077144886407008228442711263186501183798583495774421180732672599948467737298802699276007781006289356760368086787223817564276137920808177373561047242965083488448228169083359692307045523502608862388575090313813331339638887185844482653433474727555766043593062375870237835258105254263484195227481727321946205797868519185441583563460463740476032938626563706635801147136736447283587618082795554522005764300636488545542568822704582261185030447274514092266221037376007107336020214848704647021428974307120125698877031344445823963087015509056496217882687405269902892121855524917714312955387689451185834113684412695307377063565553297846235631523082036622295747924226744674695188136935737723367564633637133207393511642958415003782510499450743899269895900125870339220103417150419435180028394122428935046678834714162379013088402207829099986702762082029019743052235516458221903789475961771900410446580474347624579813118491208965725724738525874485124040872230534924076053712707942895815848710388012981915487900666632632766185708865028770347116471310348023033774659201386807925190756362861267286187040835816617640701057469726301330542360130357830086380498571387849713270691018624448665837021614777313695197989328786383421750947048757817264522653344077268247226729231440139828690409291563226158627450004987115135946189111315995786945958031804459994414061648557253369447670183616801725380865716927844172887967693254566646231758149814173889457217112042895087984835600806366424527303178157941769228334772805940483224484591177517939424236252792878562874103499613785310775452348769769790573774397016216384081708225815398294030843703057261657518028174297815377037356685964110792709534965575351222035743272110549600580664755120960357401907886227189657681587849295391432444582797098235871128366529435088274241095007385571204868699852464274957934066444937409552533661809573415282875610568112910761309793438502116137463105810498321949584050924269340445198095509340444439838123500350134006330081480572204520123634706880920419315340833961510720898904403610519273614680829716037438858333174948255024588194245605525667050305461156279445328630721803787660249507899136158649094077393006351049050471704006318900128261577646324014516409869531561873929691577939374104128531131057185589399319735214300891916026958520575227235176906020409344223461272174019043820390905020059399382732027096764057535624067581404956796962567054987699421891338319435489254599568960078369103606643001767221769702766991965260013079005955852053562774638137474979964087733458389502550930207624784908058412897163814241950184644950387626830328000082233687213347619994135003425455370441234539390656030745956977771241605327606058953229753576930918037580877418009785352339608824286738016742325537594785660194840710594361539914692746961557545679878451150989282931629871712893422875549573229402729707527923516271369852511216784669688140577107010321327624676579085731109892067704874635919453900478425820169376919150583119844448944003183746492755532482655994449616204827244554608243493522752308930208454536954411091404904413672530803043488472087106085196809989270548385022213714502387349930974358208534573571224539332764703166053792701573715781104585755104198530256877412160438625421580048458470657227778085569518605317764080191139436874195849064778426041291401737254028144753546017842138188508033819092776355346421760457161047405985062765175543495050450727431607529758972256731486725658011012543720685203706698667971342497284866835622040236634836892309941390265528983376340836789982503315537978485549361942969534170710596943225682326258287609908788498503972111424159894417405892471879661326490821199648143949441508364802357956611126196952325649090458979993193019687585236729301787584730849500103158069880041454581402015342495435655259706870775503869052014851138326869466325484477426160946876498546229213508913921147061119928772923522364375965654203060303353073134949419880293687202397238965726678470719359898217035734581619770289728331468610341813627272019288357695249853896939196326977545438911363552049368445210843297924526054792148538941496132411942052384234734828609166717203196605549510887036189157922655681291275233635637462699030912115281657357524020631504856325865677289852144465246603280914662754641649129709920992179772891588547313721290787947316189484288791652932818878364519830592384960391426894862690998287149449124593739958134940646006087519057805058366418151782829506133987915095416068750576816091052106846842057466688080712294683936408256205126212639188266637421679394536401359620899369299199649297541618493621152309690950049665840382529156460878097934552748932530796889593436822244649767208886265431815190654903692159059655526929238051983652832291281717681441806686172527197966443992997786583258926792317956129733577138840763035982289839851038343648861784154985753597142324709733190229209676891351080488627099564758727105415121687997418468765845204854968561331888404716928265098036278309360089291724021315733886329397880596017931222533700224172577037736184185635368760717316299323415872866429793548849756763842052320840369688604608248592736164452099077516049994898610531791616726234487096659665986769287218851673843409720233466184089308305304741307592463406831824754203011680487266773882668697313896536131811498482839651057595628708415989914094618012716334004595860101704165219643256236062118310987345415236928005266911561888916823419716408861362053502561499131009864628141948944642420801109297134990629920554267347255659884147126969810170292720649786789633062901522148620241549861748723248797819729121862531453063008441274385772739490327157208920261740137977517758345711326957699582658023824812551646359124207493272612825115669294365320772952181862365880318109749076960295818547924767236697319489913220465411497185928720514779841429395118434128819823429545514892765053724222646403895014226205966533002001375187456144842292933600038962487370186665448298247836980708725154507917938337469896283911952104965609187809763679445920690121322635822764830364482138684426548518153052390774952269792978875888371772182454340613337307962207742105286829462425777805264722056176098846677106872227347589586123827179250320777774602830786674476033031996732838287394133774429215340252840992586370883237061536476730268685020024507161873361889073709229868111166982754181199955467659328999000678007317164804744731111148870543735361510120689958940216709943973566270412410832781963850764609106164811307922460158921830964544180728830193824765349059678080791355459702295049855712684337020877195000463704718428158405193306631088080569557712526950369567088936245122950709279706828211459730140078268009454264638847662476727226819813255151999636316423463703779028571428831695126982344815174436660582485233894480772768658157997596168281085913697472521943733526255908411925042650157184028309613691767849258478936189630834893033814334146409327670115363014145438736683006902615834899951571282227642508611997765239964609548894419527277849544213793315365548917711135856826815099424583006868170164230136995352170239312816007392645400473254446789590372135630899018104056206163815935486186512248791253453169935378102240257977138270983404470325824064740836401121848084775995811111008282982160460866474071022005422737289138261650866789190168294299409798087380352182112502758942989057997276519402068383231619836256608364382171507653180387703457824578660709839146320064823343632208563746397928588688309355982692981364753584685028759617185847594048171436392463819151179482782038180014414437336106643472055467770728485002656718586786918891531268358552925582037487939990207950905696310867785635401542822713899447411370821435935058940916529140955933043357163259036667481851198312051301248209448976568772648517730511786017008731404632521224617307914892535164844551524171006094912255789014085359296818240233008049503580331659911262732661811667031525168558168067879911808304983007154783593315827817097064290248462672453503861083888734601351068841515148048640344734082467347776780735671262023919590689396185555833718804094420007030015558374568036339864999475315578138763394448291716338097166964688446800654568818391285793578317648082564561290785714024992838228289975644448596014018451961339218767957083118595435619585105079919730041636126320327051373957367176849935333477853880107968082632776990992150367895874991474898032074875056265034985957715341102603412191301049338278083829769608982679528902934856962535973566451101547410622394961313544773339691736486362145902355866318398067302202623224439529357705057093775444509530356523448040712228638964303032063456183742855667920730595368495982461336045733668610680605095138214532033846616592229428431301942862180180570108655114672612947057856190827432612458057036350236964473859270141851614304874381438786457121926077148460545356624710575815050686234479421831561317088159516747209300421600992190088590894294325577243371314783947501876099497283663973990045365472695850330673849588156308697741905091268567611002199397870543727038980001735680349018824719773672997161174085076981819890175934943767913312862438269311973151106935529145992281627345016724646025117439208957343873188897541236891240379012362218320689698995212959311410422666043990813908028401208512526649925642161914281943128493403354116218087483312062817955821654475765175137524387873541109449432017772334852052304982936743343229359378860772887262806297884219041485762984192929167188289873863374086623528071786896514887619749652817985701865720889107584298511270667643395346765845715677313496568629830862443082892007272215344687912832714833208041252397354158072528870049921590782811449172826448960660318899711925860875796993905743858279192193868243900046074271818124520166987578298713002513288706430234536969845178339392231942468607833409994289752630917544381841888018968779227331077560921622379569405798528877510945927923744670869211426848490542830245688787409398105246466480126853814136807625399968111404523125456109399937490548112638212065874007061748926273053928374027171495941955750723630317546541255633778356728901417986011971200174842035916864809721807248675776539681297920851460195178917689166846801482042324065501308275353236589599196060149747070823111586183296471062893458502339250159762670968616567498741249305402335202388096379887916245691867765950442280409647974995676957487063640725962060996024768460270733245986260697045155722047584023865147597767186308498920808462476390524721663123689533699416345394482931267795238840126421792316160247434880984433686696600570425035060201914938523758049366836627936895660427422235457858927398172031855461424147137461433876414086774075854054460923002748321837060269675922449915651649736781758133729395076733355555523780637222157730522538100827908244333295753966198940646868916649583940725435897929591439326567541497787368646541972722146777303236582487993180420806779438171223845677650346313436981916640288578742767433881675305211001770912622499493780081045262721832622565825281427399473306625606600855766913479243539602440383671659641586394661130510981902511306768384986131464017375682150694465058679021431530685922061668729826590547817783468064234294167526290688153067428230830161305965943101471134198414169601290504244317774722050032168359185301205994037335654965149087426390145299054619893786464693937214822774702037599789787400373356296398322669870284249325369186851015409867805175828468435566412978824495124806139554763239275539381852583163166683288519198192442190369621987187629508774454604745454195613555484591066602437151054264955548749896477722107182984942353554171310326498636042043233673862856990321944939322147354008019451573047550607451079018991959255892885771209165114025928746817487306959237775758720672942722276954847210600700911043110541935286699958736680102931169137671571777614438415747764815859118073194679563653861634199216113065268529212694301971790271550856956122463678714622864010947813954433249611658381610360661159841976336851943522931521267094081437551815554729335538675155342930440292447070461736353635489955346277405732411321846811200669156508658432749850719698772545640582739570513848248056723793533574274575757245254046554291712932131925118828597740617541600158012144015577822248745940063075023081680781208655235145921095130011648010705929741469639304121329590193289083237080521628179194843159714438499652786525292746986850383356032077276386858720451850860061076765271441862712797985930661218265789561177168632600225167671817213543899810123460061253328993840194464888688208205975545169770865983670411096025334131281646712388916291032300338898806792182075122902519499264028007739610102547593005695111069275605290536264792282730319996877403570178924007140047436560480264614594322274391185657572887570381373053689016848043419096816762805042779025400746071038215215332765221877233062494366232672306898603354307744289083789858555817843897845578841287533839560819809563458314662592065888890531252690762497260065328685596936912778927514259136410893495430517368996157508500425566450740960750279001045253090983539622890755608108429480584859164632110582725978269378756051469521105886567960616709929967233341251551365805362349755179508167848899209330048799741796440814283609778506155930745716197966260897665438734042314856373787076836514559079665126763403340314785372704637363671124390485636922130454440553978462046062844808662517977476131071072944983959131713832917230760908332667569219029407054319300215953452012507302499116860085186123427044822035310106795676837478607168588831755607430407267038908198780987983852277744502118393908212179739922025282691614706578669056964785250132462612888828594249502086760598780990044953388961820818117045517536160903618070969098273609689694729773763408670572837149190862227181630120209482900134175426507079965190500388639525597103390946394964354637771343924515053354490170354887162549213232459225478538086165900823716811055865760734455108476907607878127612018795732157324666715752278823298131248167534219899860448311521354403648241725677465636931914285620162929989406346981618465728264767250222405244805621293789317713292801182665824334533612235968376649500528143440204924304259952780298256252834579136352554743517273724911117047779228117854136328807848020139554347448058957211442605608138349660777139886079761528102129259671178770650383395320879839339656067151978244536012622279388723047242853805718647985608361602517260814677147438227065033343741360823332429219931213780250052391536064383784262915495956303870502220476324945244454748464867731381012597983624826869413442209866114717571223948310498919156507538342560660413239212755418058632465946358013860696262679480378441515657207705012520562893869068525497482423873102664820004092906404943641328827713325709772613752136188266847727630652890705601297725684999944952681655251253977493773253494379695014297693003003717423230648585880904874955320111468225783984752049126053598893944559236852361918384886924058953346656877863583207045770497059875732443408788028266165273313059012111830425118366950621968894208282486902150770799492108666270834833729916008133529086594777623436225889250569161866382540776522876378797437402684066362773004015867904166232885762195443994762659332957469643444476334464208960739528986691289655959253880400885310631151442586918044467638845605017546274062235061442127507052563315543262788053056671798032861668295360787434856731163565221186433944557145828761261560245545997188857316477692930159027787777396737023286364184669206992615120533409907645698541178292055208570026264268589403085317582519944307393334865281704028246303747501258875593812114323380813923789161453027560060609852403797046415444394314445287134469453423251304995974674038972564718669578347693088232323281606384399074068170786210240313519599470193635018831330785646767249117043001003228159684025143876961194942103508868728711283921561101586435188938254406059473528875623984777135460841224689490652575966295966244335632824069487073106543798864675721336087631004490923372093400246298572084040806174702776205782362471035274507928590148995067091361002478977128557634108165556143796176898940464887207186696053457422100818990404155261776994604809383108691277877962289547920727719909986617441046339514581089177276874579756212549750021358865448828334046574869150418217781401131792453593563457568997748327798824792592472875579988055482715313145085111274959528334945553436047225796229526876583201140857039005832176368514178268035054812626831261313233136613321312035476764043486878888608056303109553963181049866858381594605894978094424595295770428207119649299056512929790567672987271037692466984821725711388006948057123018229551466497001344191930943041441325283664315222754697593214045081212961645949369244886859103893777695239587574622107104163994147557944915517514809572381958320106073642257188392393857231161189650855509872657297177182968357119287539307618819512761639708647890531677574771934980107244585019426838389058364807628997751851618644292678035531462027010576804800923346060607698532975917290868202132196566680757494651062730127129358204083028014158028574363126873856855725967507855763465039541330450745824115170962007491296768691484451771004305301001979675352271707571882631538660063511141830751592573674983691828823345725607154234549607164262305138150089731932290517676843603636519440207335476275572657604394026301632457923151332992565504248067324853514679723198369082809914564086770621940424259671066123705224625561078703556123722874780465198553823979662167580994988103953858227157241102004103662009344982065537784312620341463191471850192222177913342655124420753740686248096658607097738392380167222736023671681439670101972886019744082242379978766342118018092725785925307592097104410325022377578879139505737399494042004255144756354395842880518071167342041341937166391069619619306213339927678723481093209298250924301566007999753539286074970651878404769651591497110769235277737167023138887093349501502082741799899404398946254062970255039386739009962984589265472795852665309296898425257216661991135792754484563761906539854451710742560562046290410590112518625589614610779647628567032454708261599128282092468664089061301519868678924955081286300899260735947646852065945689494403181291158485814513451095007574799257551643348001302595723964815054353388670863387741743765307301202424444857169290199772764139894029858087994119823263934785117693875757790025405850404063117291620805761449729533455441968696059917474334944748202779787690386211205335520425981356131848651008945972498225404178602794854773111397685405824335909100383507609108711718049403371225040994261938935097760727273852971194707382018439435629572088370251586846433726253748809786460171826901357843884592433538131575598383285618899634151143270717582811938514951769093885471340736373015940122168805080258660146886356145471151647101026008566615296975665999553403874589674340612605394692128634922675948766264877599913513052271310847573546140949765982757825700502039024279415169924728905005331991036953771407236613762412230279958443372035824062404437402192094965175132993971799189071902464095852415756139803582173732378466796507065582351545511501032358949454135371623224087138289502671895896706188768218298805810942677639650815842446294350914124988172003322021794866673763442857352481399193063064927684794276763422965501485574928434991711022070979313919213782161136972192357385919043071092088506485303371229040301387694573511292483885793850149007564752497780340080193774671117249978732251043581470692695162822432571631408413068562703543066846917972767402419105760213108917118517151061959134737508625732876900254981915673588480076183409799983557666051898372255421872567014109189709957039703013105121439786637962951155008097493716768598646126108317085347476679063282727893479300008914060663670674371977536008279349839314213990130538438523130700416315004394140539481572866831696903300298121324760945232126220626945182239845354956062147991601976035274967119954111438489703246946210338063848809731294717200199047181054314772221047402855568962137494006824937748435432334048865794157450064665465799691477256746123525637161856737523470583682903555227619452236197617507894328524571661964175281317065342918518420331369055460780106745553790189425818798310367010521729037158190062880587381653718105982729516206518229011397091582965915116541669518613245770787658792297492623501125878246079296311264863601381791136114920665379083816200156527133415797249039061627908883897858407235868702562946024539433015488177308220584336673161662423174543479798438930494306367185725774687928977577876468080554943910537937834088997925454423193165521873156356302181913620143758283369061552895803247870779276548025309811850420072824677100908142783095995611416800716132910576110859246588483999644267713875830770094247054525954851442122457911576606479238906450857491985061134308605354747601220938989965623125329122736176288593101169326339892984947068841082361460573971463536432858184966446217791583712261108066032391588448364138349423742064313190706741838595349507700412330413793540827881560576709838675704297890149512180580313525117434161964965940082697852310913091839252920329640648810476219191339522328941603530349327860536114188155076820861024072903221940444412968887182443360558890186218922459206123539359986939089607753358471818777865160043049396825185168132150016764924123908041388438377982167055280948134916824484578718954017808811206782457965431422574901705561791034450127167533588214005192400035670050138410712779190254914267971744614027949522210497765540236998706371661466960082809937606352072170733635062638149709970000224390634656521190599292592623862739298803921334243539819981631218129924642847952156728937394054125716298244325614871141576600879967546850172428624489133139597350147080584730139580756299163280946631848976304253490795400507552810396862107796509545908361857398238530597181643127812562210991523408359896651557965844872932859359407954390661074903143387438075775886644920726381382233388113956925072610604585595761273506693224268745638377397000686006732200800294110277276013803649021385865230003503272167863969764510131282612587222213133963791255223670239341847488565798252390955497398688513415811536650556114721740847302937641498274722177539565550950778667796661664622285541976571879293824098079024760842616607072030994182705069076979442032566188495324423741852492734231027604189461779573562265432584638642641458000268650550144677337362069769694164222861056944919827244716606891489379414765645637563839303285216262582141582284356282837243078930171092420297072364155302727422216431876396134833648579491725807498405264474958262235236469035066596926420701785992404154456458668701096146379552315301824060811284503070477725024423587616159642924108977260229873121392963463462073833401934049322411440504052829777293265668588647660306268965372640113883806112732668886973768905719305801399878347213892165039289924768737791455318721764119951066938565404316484492220059714800961175002147132043631963143881015233476431105923017614413977370883745919859252972287998205930854027459528581593801393407626981484782155391196607815773236406153146816063622711139385281254251244726682143572224077193933642923863293834651969752409948532225415777130012381228127156262479251700760914659456175516303868648624103932217388767276968207433861552751407720032883882985233095301160408607750338143089366028054319217062754028958030901045836311698187327301624842170710227048012228811933485394043252391543115740457601608009447864105979211639741762838789453692654277435302547698508469635117815649176993432242083088621193715591278057878211371104306050361588766722079861603189873295744113140543575176302905172815878442317925635826848928626468364397121566458016775261928176402894376021973530138671537898981894797834558920834850319375596126354702373006359133546193226900576431773978334694976286012001639442811992757676219938817178497234986854620071524306856039093226926998232857262816553071396104724360044649079396645447992680704187628266829602807724535910824333041997768870412304219985975061545500247853884253861417823405269217411219829946913841658576531577608125906717273839253318526958799729816811783702024159142794172030610854203306532697496112445380681651379909448213854903629566027473210382627175830641555085124998713303326359985243527827104343949291931036145963467950577659593768616672749470372455326958939862593024503684901125874438815856536468428050667940686835957147141350713419259310376121443311249809247187313338782285689174530553729297572624789975796979983573893771996235105712118910188809643534577156313290603357525797412964160947512308901333481798001128973509721463373904076443829341118745279386000283663316119278641607257735891551315320290460382933961028622131821656474512250731682891614305948962570842421953754304091470423337706813825446123075722789848555948612636730674193516420645571426252411958112545651373932862690232095998427398942302195084109921920520055910378639713632464039963679318024279683689620201263719656012727574040908609268359756538674441582880295175894403691928462243967986549442393281402900361088450590431538138277425678964828792112579982408562964553341039217996957098257202145294149081131597637845808113626928306351614827555443757083666724850734634087698618320472074903529988703512056210563880982376947940229973467669260410839319420715274359760677660431286347773014904106218549061279257767290036139329693509674607264955631750417753745878685760872946643645822770264023553832901168397290994695791680719163778321453801491992331646970468713006851403748095538631332576486828098707644846493390061282565392683904664919654220943788073872486436817275115113161897073469517673105718855426609059975686958816646662541811330807031439157459425478154590444594904440322373733945468454224531779996800628115833980927459130381732692108610295943361735603901071583959635043964222660662267746595372072485536051190572117149210947858548573884408982088611910955431641418491521642785351794768297132521647176259629981299552883695238301235285217240785817839133048445406239807971536328975733858302667610483878332175833721978749838016977750130247455246757950291829031477999874024706600784355060489592371552534159956780821404170853167962533693131954953002063665905393256316203992914913360703998818370130108832606648896103264929143281928306468912015703890070615214342702808514053054799947490865522070756124347179981804178026405011179616124984588779739397572708738265006431581084409978640921343173948138684269253670800193133402319999910670980050893806903793166789578620586819914819026953458879567040528782090477617541480442733648608516378581347493166209838975874303948556686619413022424359414855547622030740129074490698131277935821087292099997392841697912590874192858158448250737486476502259072410846315535169275403471011312270690244329045501986643694582684262364874169977746736434653088269921003960221378291811756494098674191925651797101819052855957250482134685018838887041359404920460236487235309633273346468327939936020992860300084121626368610285327118217616092995366998683057979057226972230997791607687260163817823685376386935806997654201546071585880219984482940173560988351946313988937739376225074634268548207423753344031676082807773187742757971420646137199995865769122224306738544445806583474865398790670129777286363455772440768241569634863558391693143530377006217765395110188760674113486179837180130538350833058121282422127790535399852878015087138610334289791879706580921476934717874565067023249407663208848169711625688029621534032544899517258276678113621136954884398284157026955697929755132290994614228183264955622934749102362434000446892431132338177642514268512390932832400063680763277404694717550375155617075041002723385647158149186073758092317285360692879808464421204219563405923995438938126890149744255478077333137466722489091439026350749557080709944719984267538272316159791038212928798137728681099675057632749616589324730008835720627368113422881403596374840798916133249921270415391079452361502149902920658661833955413362176177630390143442509227706763991299691419691473630517359574849135334672451893834172787937780640073338437041324158105881419278750305313677609671250752297357036178630167600759534103176152483172463855874839059055718966277773708985726045216298100036182808195589723748881183070989292638650572340911600673387768887050734380322298271764183676196118374779688803888151482127159522530399039194507192907063421091500000105581446628734355970701069272596515941028584216791944214995806625485447292539312968159488410550208900907727020065691987918503233036728075904991504139045884004971686607110404236608702136807823722699414454791610059834772776158004883881302613556263268783509846230055161581936689956509731472569135160931332614495002339821978410244338248342784737139230008287388537202683366880581166895841052693042125362643035582665009394337707411717011580282439794764521071945262520018742531839205851305010728164186011973423788003694742550368135943088141436225575899392426190065675791488831843381891182790054650937713757566068699110691313030991216816869941117054869489440658808945104884962927687979801549123409464400164013346358684071487103741476338641361741568440503433792630687086029663105112368426536944768288655315039007503539012824724697077497767307189688000982358762392688803870441310541777753537744199096339930856540697293815830413741026063095814567634020258931542798733322121312473188397003863701351959786664397995758465698707817990304874047435523715937621972884287357345789995091925622573507283063543812611065367085541030325497016900281700505107568578453666969828762016301852861292167776404837975172548336270192442242946611402928543819461531372218303836477320033841251370347696180655892011518669184932489707691493889010303080565158323833985926506901457145339711945014691219845734953088504828333982058373570876009863963251483094819531444159436623291758353991494951769485663620958085474487611819091313417410392012058842495288429047042359513087600483503628311744551379468625933896292119829739806900614244818425102104164639985750915779921331032135068891305719213720608818809864210138039636735991197822557301255831917653706237101127130440012182710198732775348643785673799234773345895678382694657415196056287770092137408539947150727788869851689777131235333048830014070876012744977606492334475237579419284299708882279876078681928403405414766016895731593053833419232981388378242881589163720890038531465693646885079761485590234163282083073093750272134626598502647835927901034555158407702165830145203333057694557294468351987181422972188537002246311973926577077843708045326159144777111849957105275015777774468961472515267982764750838446462963230675494831886415501988974306540536827117287853448442900066771916522145155152045268507728241139189535460580349461064938615628209672389576640270616268976439375941964060405468415738826725237600295098041689216274052011484242384637847418483635082313308911450153811642520938722552487531598519976211609105012369235764282792315896026753781044711667481814928755795435905400185080599118780808823599211632271197398145981626340473507658891990194047688882519029405524123235004747551330739970549221343563793485219098703043386517653393080739918874509098839334804535264820039960869831201743515487918955707827402193390350344150271380766962621910608853915117635731191212145788477559971235070018451008255715265423408174464011730078763559533684080902418410359140847154988097415201707960399609477851626800694739140385827437268425919604788921036203167200802629851821709575468769422309148545353193121161260850684060297817823973198600810309904852064422989504001771864751614207086668680543518349838198132140272642306724099829325353809359933875033213160457300500325853755003790440788152507638917566900503856464965751798718900913953313981360258082227456184235520705640286530779359321180423677435574219526002912143207306242572186271714757310857072908844574976551599896334465240675447769052166852713189604293465870747115002180680408031818700748045294616606322881656456267256103120014840931889675769138405452963479788171220109302486239947042571880172329321094812730530032603852027586544894987836653106609905316667554726734644324460389128674803403882861439063390877002137913944953584472411254348173801739824092488661158045986763935378035543503110254501339386918490220725130425050801161220838690134795653924385739681993541895011449365255228537050828760291989691068432333507567416873806473085036176385526969518141121338517688849298285087262267384589339379926996995266477812456902840766976722988757016154028390458474230498308914501481468833613051441447545450431041911499503567688230310249689614025583174304546669266470775282512629214853705403353707447490592299555575332417024809564711072954363016845560472243102502637311732164718469770034634976671776574709650574566971571484748240892546163035633398377270212545893017156196754138285393448696993571780430122018353802144305402203093198542725133269534273330142037063147059089296879968578792009345403133058293230492855886693154249533614312496471530895899244718666575698830148859370513455687069052949280930366658595082493971160780804045120730071367946152258172534462743552059096091999669210900552824220812460128101482658789119452530031706502160340608826732835258616578179933076111223882304820938781990147931575646581847445335057112214379659957695300166510565691501047721966514049170559270152906438400346398437555275605123767017841992043328282077362166596007024317424711652790825307453306645025424104918666025758688085824085845505759282607554712345903607230532760345124375063282513045412721958815751112006128100073438524889450263674427975704065753851364922919867762109889870881231562780819459520990992164376420234852471610987540936822839340094029054241840634316901777705083391316822907621851509863273412453151558345938579601823841346195967359634738167270203743528992078605615116057519207945405607000998688494694852948344630664692431343591839231231040184946454342347235581271877623231799959501137064010720375526075745568020873785932206344454023745360351502964034823878121767524405255801182090158887668758925748355270559797883889621405318636449316878534849339063571555941406410023466590131819134134668026049602030225214607260736239820585475906909571015651505911747432162194495670253050125876667949317024408197475452949764375863361867214966054442467264738067161820124050463259645814080536188246568806703380968109783895890612120690269829386029344256997800388546068757703222866906711621100245347119918562819291137035408031966155886204947401801235856821255394260780698219876743701766170777170259564171379615110447973713375313828377293410329830649635581870850858431540736257220520382753540265670780254846603817948511646258762829611434666219505667035193143481907319057219345156450497453685446302287604468236356427290754509095111468525019572489421633171245324215668967447860088159562221193345669975692052871850829569091626810542718718386103014414170849124632194562423757134106929444403783371426442885885828910098188124727329095791013886106723073914023107296563276789704083717860678672937179562600492557414057987425518976604913877280647856107879992141421424014018794054455541549014516909111393129743328244218066098285992143496442158103564275713620827856552763763990878065882137308980485790717581443530235964857011032529792970910832206496973466428393071766473534432489325960511364557609531610095599138154603821744437373238376516963256505345810343031924621356044982263691948647454058016459584211787874061094372073517657643667123304144410866017425818862103504208328329649155937136082428687033114856148983161900350192139930652627471785890211031801333440420993108389935016369073448400783753501310766762187841473145875026486272824801956858756106703892928785490481874824505697745335057511673103592758629666414801308663491460975752202108523651168423719736613566098636387299206912410341220967108298418559637769087554565924394352404573705363066367007488664904070207865993873416212023701897972024394929060305989501680975595052619527330586981470697412182889066674271825278980703920484140517140477650637866475244542794154105791297831801640081940469148385456791279635784227697878197033649553401272405215988345662430599242136373034063215888564785443581386236052185473064233797806606511945203231892009107559979215055328128126820464046357615874280666501417965684678538131158402885541403999471732787035284439297343377831016685958671031046932533597214823350896272841536979926152538965146630449861762599795915736701325534262471086251786647192541985506918851755579056317136481525505498940307888772843079502652385616611689397506172824220682877412602608154778098229026573840557568178491779197014484971743406085374259564167358588997360135553183473470250653317264100065508377034670697830296039518750679875452275974087714381655860356128052708927235782642694578356098953144039284094843875578221308359042487220688979206188971472632890146118101370703499714733245508565788109681927982372333194328020488472439001149192414142992345437798997638402914968604331299813198870073426034856094618283276622073701318611797072676251708836297343311285769630114238718405123039360616814988088243376577153399695357671336917061470198445958770717575985775009368477052146001637885484146872618578137141793703568053748746559960253029483219448721796799306891166103772310561931408458827934782677430573738173376563897944086383069162235042624497540008635259998543398326407584579619255354476023036277930054623728957194413926529087200526705169039017635395768690022528736599974391941563758934942356043801779166619570094597316531039829298058051814917617537784971024657376021150700463628407614342905077679399115537438698328126960590109904867511020826173207436717741661364736990400743264230094894358455892720122864724305196867958090640459323695222587190789800225553724915174023335590748724480620549865485480353236575869591540304777458918960377206017022062452850259967355084474454793491839024947803152985942303164228384948133737876468783775522744961099716184847830639003056345935326331800247126478879977671278171125664435928643771087954489751273553842771702929496209064909483559220276904246655370141898897954330024320133216884016152754637702231540847420921006602990882296249005519833478307100156430803731760600766270740229936360924560813994120972399503315095981613925619752963541865786063182296077519531224745797812430264843201984988865432990139653440111645080035488959385959921687973684970318584777666141679104177427876941330071012959779213705618687988228580496559313496345180800327392318728920194147008423934648003435576877393211200696112137062211520179641607129062610422341974786422068389364411560103302805870169628397933566355087754540379879067533034005366713332388588108049095430514691552004596568615309095236003870812761555369696591510715824862450782584958016836915092938252247464212359096022000133871580092597632825312220749850633102435993356458726900681300302347237167571123484641166413751471023331735198206747073110811170600385100543221592624702848689205225164710124278101459915316088832658675979128233904710048854505106557728136164522412749350354424083574140211814555423758088126015996123901503498829156018073972012606569516199717679824861924568742057786256715223614048423494366429444968105203185095238400898768553329949081672169586649096385520482977006186547574217804799429188116484297544117636888338654344600999168569356828507060368206918313331208310892712635590580070482594728556967200861968791535800816091423352443232337962935808637948976954685402444324275473845342750895600931352923830732560516756004314601600642257108601011203678984112717797018859344961825651907863905766670571882959934970598298933859789995536679737427702161384335288744713187717552167881531787503392449580172866369396808149923080957881068240142173849080022288980067637919651865685304796288965594047668377160110148967708864439073026024131792976010924076209186127835768408884238300676899211239552419911969487989027592146716145492944818163574165887153140395280846657840541899366928701894040330827938955302785441715714529156479922094845958161334161572956663575351945734784411731996610467287977819050197587434864977536513951788480052889461175788135687178321928511481542702211872322018041092769810027854478343441247849803310085187183853534573780299352981351178119422409345372315672614726103140698484548331189062800658221217287199930074736292770519015420794956212284754011581952914326569870740318524440940306909849313223481341484875178407163291428299000099152740979886341642253359111805549398585880646548964908542127991718258845743709688445828251097295152337242164939777893988405635155523511345571047907338216276301318283800351241454376802880245768087784502826914842987559218543453721610596120819574802861215505824022717145435161769413826720675301520714937540620248461671844610406317968309037720242326333777556788590493341114005071457536952751267787418491606776066262290978351684814838476481801017321884834142873119551703436731740997600657317683056670262966220103798645431973952094937596265992432965832766933813114613363118652498320409881300848995367540367234062172075884829686718829649753002717880963916684021747486450970336226606193763360845884584778510623548951695062749864313310539032167631279068375435646353037293559652169690630439374299075596422207321838443200890738613773428765521074822333571551102842831510532426773205741305017120428038215763860477888430048177987141940344107700893028230657289806453857257411656991261575096605043595486333645353214555138372340326397161071271489463902941848876320118121867060377887246874924361162837996132100154183332671936270385697391849578248973274469533562976329529813457383550096522404787979872784717748583131168454199727054086371476212281488963497746250625823713665251733374323456875763736824856819764007192448496178226411678109913498352899213364879244958291886882651708373214010850854610159969344540845221555267352918159245995044605580107468157068497571265547077899444388494642078148464102081205959129240697048741518460079654380955186860582799450500148380539957425199007513657926628703693034846405320821050118563842144858609871880233386297279081233654613259478303593637756090793860232740527969766655989205374508545077339607188177337907774115768802099604215984922552935382218601231937241584137772007272567700269323745950906222412787015372045053911659381748463991360102320988844699390789844931645311714525174668400960459599745480913607813989074162662901446279242883493881097961988576066168196841361042037115217827015927639881947893635140345803928816157240160552348199439039588859254625647096346314882143156876538199074738021150700094235078612105333647751204026958776691468263206914202216439564881189525132249203422543559752919040798248789949784357136420231519919800298940534321986712842344003267134686707205336691033440581075313074243974445043738709173923830527109490033471042481981512697783397162050593789694064194457548780725171037567393029134211807152364863561354199733139840858609676331428155161362949713599848629312565532150723017252951400782673410120390047077370197848149754303166345730245414806919194191768972286488611953212724946001477999259586495512963429094032467690909799130961747742638370566408304915512504950887404842237605044603079837433017823581297193721489336948783594474207607101117460950033741095510672242962202815725448496660542083759525414326470084254055628620661370207531576843331017524140613481452448359113423161976614218618530219424401791539109498968987608090736098955263404512294044758794259741952253670100354366190384636786897494176975538421703137669359664824171833674426140806625499871211439743087613821777405373053033199669262293537233211836280401790695055616909645924315433514789296180221507288253591431152930424603508235459002929096221891282179283727821646612588397723116610848956316303642033999571709867523945123930642926681125081830462945839745446656885490225614565414576630854289142841173250821103572129098440347051788529908102353356932533856261960195782092009044179355087828959671050492929390037205872186676700863765382250759931585169753091406516929949632731088465467795910397997655085602721559425567941885717153154030337760377144593132317769368798613967036399584272656002734327952393592841742019976625308043017490771086729812794358341384699756039490697542274095967647745664450921287020905477567571353091947508114186704402039868652169841011098641299331712113834630159508736473260064356537035853344207067373732754778099067810836769306915819877672427713584526939948953946591100766320733976017700688455108053484001240906395096169794112302873928593431611238144228665565256963614077940743828539340653095136433230414383763018797292208172275322933773719502065957757161421667264766727261983930689932308015511121402086052339412097860960465280010719103760239681277683866500383084396848786879590310114423191535375643462976045060889842234010411825103118532776431228438556582543104550620779528423717805168365025167419189507835543761634834942904777994051597653311424687232853709434415385798870901158957179635494391525697092125645109565489193770121903750271806899949012794418657339982400954324778470947552699863036252278648287243687832060949203431778557703550824181450254731760952999742810409567602009793005601155560049850502547696583905999410797085837348698172468443655321943461754882011994324382342364382620940445608210029822519184710679135075096463229805787112273722380047997409626238435579716533182495753403564417295173338251540520733206721259060556250956798293148606978826658901806341456293486092735989972548956662224189949951785285128722140477125681988936409809715431411969656973835725165613035042506961197443586895600795914612618944347637511143498366599400292446276911198669004557442738476881210959209003462407697233875973991112190440024295910628329329450575903768671967752489697382858772088118191421805863608437074178279697393796761725499791180512252663615903145252176371747069364404125545401840478976325923792241691639586518188274567313436551907301947598757002007547583770710990636162740341766471356839535729231986161143146665042031956466561737900589231483041255159688534045552370842028964430573075454680589617783690680067877693495877760269054516946999899019448409531064055807397951298161798078290877089932677411237758485025725000149361176558941046373482944733821510637024237122785770280066122524961046272877265746688154878899666563822635157294947035647820885783930377266952261094175629225003133117449342143090048017136552375946314296285318779062700823047341682066050763808622902149835583645887767439536758972747967006974063010970793472684510884127473776394679854438950371673412588936117612345062353918461746808050115682223382935791432834469707143338237372209595197811235680615926461576911785384394412698994358728437812178727593096509708666255480013869583072983027944644102431089272230168075200753854321954237838997954071322563321748236051270082533034128293911185402044853832348965450912099924104168774122279304537801811682161012711471105319041133373377706418341180601297699730420823555897189296180351037341087125990067325567601119309275759131634139347761229193198376624839177413911173661172815301302555595325271015624294712838298224026898017068698762763965144830997770461930787570274180870903966355554296094642001557737514533563296589209769933014994809331249977215297386081143357299146417281814226547700241408459576987624728783732427586854877114592424515872339513376665168807827676223851912231209597919269650187050036142567975065043267414492367399172985079039324062373551811224108624821849477088938235244730895204492154461120599707153707382906732026838952445839944481592140728385219916865208629921642969575819455851872603086287124607818525581366074185836325166604280518462299129875035438214669568341984911758469037474027870841351002950255763806311451665735338332700521335800564918291184834171124887237246107670006591319591555149186572240055067940227389748822484288654120866356101190775990058799562395050441597986265289078868144086639763741350490284984744793074973998899799121648113008140234830808451363412209372328411439647246112945133680416029539565311615008848270827073269178312443532250095157450848407144190999315736828653775372959204315909378327592297082742958985152936912979392338536259557503548600682653106655007213234804859205040497987780351112874853991801143478990851163303800138073395644515470758045876038109190653320799282875297146922590768283088575507455283474987932507574304695319377598597000079007804876176165705564783448095101121529881388248627458114398313399217892930839442211930154476260731175648533553592861267556411815478366042824994791713913619360927298698889556471483608569117775291248725559623717494278968027922347549737041682605962950832592257319123771955213040787302924623865373118762609126529921087875344755144964205075155973629134520310621339351308258903659227104732083353962820799630655643028959845482964660206636513201790670485673540656519977169587059848749959381545012971623396689758822324520901933693612936305492674825501595953684487766275165150089911814548700259863274124518524451782108684354810935061781378336979996894071687493862858378917496004374040934505329519002217598486620363347929133854986371957842231584573814684096020449211136426627960879630287402044238710324326611452643511731392996812923412308586410308937846199080863035817068597069605940775592326818737805166903794263297366533412990096344374144837984494712072042579905669609210006426037083864903093798903201614172871685936096769605793962739818410032101059719402392815522686074426086255780052120450379726416303002579978085806595465504568586532692372219847124665605450849050502821395017550512348389430134302278442945790257398979145629498585005089122938735036625004078793167715805857045321810783052315141404844752149191194099668032899762253286848607532290723330145282127706109963108980053885836273294580456194801548536282312237620299080197674653915448183646720930040598922678166256813458156660425767090642486037180799367298195023179113836418698501837945110318871090016216604761793482226410475239190998635385369574339471972765110370698907503484565210892973657942564302034871105061899847169392685637666840404364831798627911066544148713958824352709924732678417554412578553063082746520408502684936321584164553425855752174004681405017757826441525971867911913876949508375134281115593989339122667117217377542727449158136207714823075223459388213052614496832790922713158412582453925199130621050310768983153958693724537997071771261182408461519672147196452345864591780926050456443350942825059561929727680911960628553947422708485340391391746756870541942019903240352783926273626452934334726612368877548512610603776373876779696880703125178285360065360887598439958925290251764950077964717839956218638939062731511421153320798294707467374317505946006496362777785530518555443324008878225440091578749943536014288326926041312245378716132711571340301474352693266753046608260737095614489674180640685224954036046785300772951166883206625678163094985097345903452289293261166368163892435070687342797391358774470886873558719224321810586769993967981510381924612899646958460576944619721083652609489752850035329909906793602583425942928022227594148775556631627749172601312233202702959146126248170261189320592685126109271345069939954266685480887263624812054069474391290115278727795239651251796288417468313826914059682197593180135284429959982431232518993380579969775689219530267973213997001861574727749601392304557355438709771641378307570361614876253559052451647338024708517628091853454161674073933799213274626645813115521827311161400058526837469084739442333831345772325796297452149098838063631781689363272619897704551046612174425744608948926010826750345823970217195195960089438298455095151723544681556868840191799907343476230189676671851597638863189566091824386960995442949699356045027127826684311602827064277590185963256982601685723449234153817549091559468440410416879580664848056765560460195311006475883419857670163988613761701548016655773680813505352467848249693979589575155038908176674962836674110182592939830894285880042169070337509697241046728147766997840394028103271210475808455912524429233808485835432276626669762281997950787308035086529006621105059993676021481362689975237500467022121629808830902665648182972801728663180108579334824386906461412198557863646353982457678528703768963035749088475536243481089965975664742308447725582642587438867106327506511206392139088893111618827676620412034233224413598851829315990065089151341105534703996286491534128886805284700968262141526698345410934444271384228279839235076492378028213364413408898398821910082937854265476859901687820524642459271248853291303233629648287375528988964542361494778943587557814791301161810446441253685799040283880060630133059210040137905211849483131942697560886277142770337022226485906430191644127745031062963246661692289897428943854845165112948667449863825858781878752724123932739337984567746934856215672396027899418441219095270562744599489808280424655238085041004729080601486015265775684365014101820161053713289989021021769407039660559286400051324914489585608541112800385940841600282604012871659807241043623602918694750980517692514084155149832175430877528229229672238446659474517523092445811949547717601285111751234574305574699843426819468944831467515318029900249252189887232632825936056382807179313207405005303098551870686071661083611564682859818044697579134804697854902455079302195328449454945116771109668878976447820426903177646041840470695887131157535813514965888779999565346254565462199335756861698896540425800872614223420794950310469529885380367539129323285117130884255499386689896221523277148220758924477670543788094699484003272606593020573396337182976049929309637684363382915555870115180505100851485372945443462687582202991785914559598412053050851085302151427488572270881587716364001694244129805383484719932946088768905641489532289549362854908350775673934733439186867038985600509027194576226196951859644289280492680192723297592938956518949006564341429289301353552015867127383920765297266351319910209529449146655251966574822426141152434829750572869252413570234869216003930990798165922486154301561199506319212203197345126005896788244629219004765707289621943354345284567879783633705434472746753513758112503224509283877685879896229964254779167290277329664997688955307192719768630296404098830190992157619655578196039403101741969782114149798294309876353756959069702798829151854242116987135910860571338976872985749087168564908385059384933900257776859312297257889413962192324402405375378995493138039602127107502298392740157217406378947743131822900207311002021837759737528737764579284733971142781797289731912566457389410434837175718746569259175884443546156522650099186248442812580287768521776842711472859174571784066633338115957574169936807041408190010820570201183555633036668313888558057748409069884165247980642539494369991584765325305107079091206261127075923541458802522298587548458420292436124486737253331121567747252108241011660267061619564981641811000192227659637641507654666083259821080986722713599257958494344639888791550847055736835021547833137578266080131893580479773712255152342973375538998275499362487547114260549796175034183153918450259911237318706078159597773472019705864207146051605566875085153087615835896973152901995841142936050143669375287512330974892660084587074862727156635222168849781351072052497689121580606078698163054555666497128855904067828706419190673860508835463960476593418607131771388646547021537245005772504725226705371798124281615134572144954742241432363567433552928401362783424700175747727759118386708933611819184796613492305342149109593470305949405565860407411108393120974569543761738636460722526016758755823829973575490337221533643986025877167807524984304958061619442443914734804435864343898608036683501001617086860011940152830026333513945532210534188503520723519361804807217410068218211831168005544995903630819617328803492376332313561170446221444145711754774176273041837138097152798079826828117259905262770939652092095561023544007371655102135828828013292660027089447104889162196689732797503375474726911796282342457330766884039141940956466831722623124528443468107266418246555675741361283671211247456389541784846628939834222337019875933806840566428503074423512018301780863621170925511320272171515196887079078857779871716579773596041409578536479795609757790202307341775041467516761304302648724552786184644488172249390968898425081325412349158231014283426314927059971572072667316653839539092147632550953617292931712933487767760943207407121538829477660625173457116887313057893709866480832367219252072337572427732955819787300448282704184713431846188567522402128171598846736498136224131789641183636839441204323665919840243655910325881676904560449283529599872725271840688073018238332939360263863943303605165882000778465176556248797260113724330784410704627628024950925524199147104936397457042010474614716295705381129615744924755194690223636869010663818286136818580204001209307459676552733558718180419845138777361856721350083448478344019082627873594378172976737265186589337436711047796535836814754544646626181680035927852549190212914919290619572668851604705224531271206068609586901900007344943771686286829768225541304883031818976547925858989562920524587815808890790334627588205720700036475568983361478402760389813919002175720850846070961273178873091632740336139488111199514689919091380939953875651405804254582977336799508587925644420938315345503503991876827880204805717870445070210815591085941206939081759932989506853802831674821979524662887468092430376619580210487757684915998594618736896801627503015135903554223123295971256333651506187889220098481732548512156656480042565322207234697812820597999019317357909719620553005596483959764396524216877823257480322344717608333371835678429893314617905396157789197469896282677982198022017663933508705580589384948711281852768930975684101444373987298701524908322747366748132519398999746214282346625917190342860708520181859419039927843167918952159115302218762045003157835681231094693042944544896633663851997486087666758361786795899605009229005915500730232147377517112919288354652258304773814031299340163232328409016847861732127758099001739919902519053341318644142057685635104153955460905058146852334242482881609365821846044674015173463542058855765459099262488417995609755510568804936322128552380418758802469957940919570562666694852855522432258658251821588082884599734792800042582483714646665263248404786337936467779818793427814634801720274008721147239513179029989182982675180166643749161879539080092246680681981540262953767094299276642586080430288900370648427873129614539130853344897489782172444879730437361642158660349661430261607219752690733719513915074010294659313998808670858441760192683541183110108600677960191673490995884729820936187909702880013944386808573698703110546269517216641138105582402826018561508175817476829192587186261007221170454822450420137207340977900271772377981521218243691961761125369291730975505573879221422369575557667267033804645642099030939060226326718865490327416879591872002157029591894948307821690785199664601787640085880291136348469830753352856579184038033651374981775389312911114778597999167998752529356106468418596622635881423829572140599495644273418422703250125234766653461435891495418025237415883456733822952534351846244299376239047729133119490675908464157584627565098844202881261061996450791227334723763165618065164242745288234866327901589153784202088316366948601136079655506721862111522637735527558752596802220651366284787886338657035088456506074435675289800422028967774032717902527720898471827249931379755406427410126098865646260484812780530695157517943709781684043214389107313192430983030452452325429246645855311276438809489545848811601367330915951884103304825095645075615727316333788241570220466771822580478053722656238197615294666175285985559445358396594032974989805373021572061074217168231828924445505498251247467091278642345263695883264869045932308811468103105922700277898893490343022515533122882739204084204154234942272512614813786047522217306448511922958033257075137043628620687644468515577893681329657888131951032177711429329727386277697366030095429979258745770932560941385206283912195779914041191581861461186768755631180251987735280940397014832421308235166659782547008363492966368489037891392935355646510585464657454731117915785957864433897873667094334972102934015147313383138816988302661980689162070839124666607316882269294298649796760162830334606855775456965579634647628350303289573593741988215220146329784279842982315815460046959657293933938354724190670408989411778144036989082278145247469591958490530622388672166643239124398203652884905800925309527221909453869686597657165050148245730766913994134401842053500469688846607540499656141983192724921605791411369210631802883342252962587400196125191755149086264360948390002085860840589505115618127885360453084975488338712505255852313132808852938366316394360504432553225261984678275250584568540619289257021504863294445543452556087109784582451723428193947671423389010063096774399655223055840976023144579841863003561261925714605414651927825836854879901409575259884028334275799586993351020034699610024008493533950360692538264982755168061038083189584434704118963472979942286858373810721366336835851640060692703431026235714889250601108643347838297539601153366221754899767834287947511323963872436997451747536187550323263772924443745752829764069165758256981189284819020353921408469195844206628829596099398379110605853455466923386548535865340720078436641875612279027394241290216417598827698645096264956529115584318563617905371511439625661966379541735058248458910686889806112234798737415832979173832468775704946063766011885394609627103585621020108333107669473615707251611835127890254817212403966323567838850842035918206100330687033321249163009078787720714699719749167617411872745150489920734899268671082505210689147612759393565877151915887601498792675396596095923246517894477906125875980806971342673313687024813104133831792609683628950298332804681412945561279760931004670820636291543748772346447903318593820408348696350090641442752165954819125512250613754371904077945199251470161762737184089204176409914102044866635484962908052373862194659262331086760807410182641593031227480837421225662060159875547170034621814018147321910320728262947225508304373690552461440720905933366884020826522230970503529468108115588849277829653330321228513271546060984702250387687775741943251997790106727385045288103015580259966089711822630067774846912335003643218127742358576407953415033895970761737596895885139541452069912361476644219488937775491951731820299111727504459856671959641962802135615840516874679244113614164871773121684401372931443824808066839930890667635085834881376889597423441862797310589075315901803904717844322955510545012740362291326611581709168907686108057920454950914754611220812767258143147445164862017164181376954437564500504239856255339768931158564973052737459963403627933775044000096186118799105038338361026706761969097190591906664062062785189463752267323627733089044613780305530191647172979896014752342102135721547312285238491316773541429625846060879290405398814491967218807366773257085154496576251929850641029716364322942353901826495294388516310323141127698603130809357704797880431852932914568231812270912383525747718065734895623838587874810623393766069401921621247778773589587904676150009757389469838738689532843727022677557213370896280290281933383768842085774458790820599605444521442886170603766554443749069362378308252115344720099020436981627534984562454354282790446752510722807739476844903533024804113262943406030084316882618951928551003237351771804278767163401726204249360338682001858614979301150593838416615541486597163919820839260652621017792771652139404571052655662454015120849665759916276447841714644262384903892266466660169619500090675247540533611147581941283991172762768352295931423321053644368430958565670377855395239164213308855398047172312071001698877618825745489173949729735591648268534631955490721741358012911439561763150650423683126939570404900195762466721742538721316341958801165463586212726794725496376918370059357613817075390840519232997055600407531271648919722058420652228966564444278855009762264545936163635790569500985208578625488340660767266231531251494627192163211215695142770660315075591445388504430240125748964977504194355000577514517646144948166338055342064320075817968678231002484459649247120318615018116694610168728948508955418157815534842344444770862996284449428036320108314699506774040548165886318823424464576962998668363079027401997251339851520551532529108309090546943464224830210956135186123975535481517102881678180985023402395226949516570242581688979645889106955268998662305998484249384864596565782934035171400542187842618749744622525199296496704044623319902749029589072656254490369492896484046609188166410368124221007773075403835399807564499297487654140960989215370958958211128510502056645830800745158800548411100327349857981721421370765227036889034116027601753715986604104295251815311250311086322951714771424068853335721264009810261890049669355807518078570173258374424048653402615095915252805495662037971873156317120981090991044683023500283462080795745017267913497498134709935338854572889334018389321060516775147245545295717150379708001660720551765761533011697298689104673745416864848838339455543160425405500757226806331277297631835884588465249408373700805936534395459527527126812523099457385065269771059621367051268747241134673607718006687825242829950757708181524664815113887086287365461619319210573050346250475662855849499937679945145543842385055890323293239044861129817634668611435611297792771560611059548441057320179711356078662735891792341859873794262092979103398828959573432589650790820809648722725880686635360991612171523211686223328766173484789052423834182369667897605058566317535268464875477754405988088920486352978228334176039907420760722655036894478884492010989724929410012240814383904764508690909813541308135541461565198803328089785538723548000768213296467846094061891065284102911420371218760506669352259323454271127599529300812391771781335897611942300599922315924171654434132884813393957310759370344058432704182766879576965163653979349429741624992027900393238670371951129889883424123022262147790199322722507537269193110603413504184191067220401943000071318966931349274591275998497764775518523646334576464186780080729800391742991960502047171837651926434976167790126842048661553890527634560567037049020016665225238362819795476555293116959002310748238990110274847352890975999436791232209154135292613086796154890433884074446996988705942285893649228472888289591258062343359735705776039759404104075879090255229247506354727555555438370772038122738727359142704152134758520396001705612795897076142569831080505427469290067584403210633150361077533537284577024702656180769587472531842509433943439853147705960966341852634478218130468140696626467088560439498846817995946441486717351341606677077886254437218400224719636549268766888818528305873048102406884878535293445178936121403454652848528213848098857983983714083328242469331565163333479670977358550757466465792290177504671714473982277277641368666661883859344482968614701298104506371456104013157986250762656352492500186054151335100361037378634925711247644322602838267529122061686845099400808059847258486644365447112254820946449349267617634628959735874435563056226867147930586306686468865584532041141892861105875367457445715585780950404593742510339450263527854403089055825010042308281832005204959547801169537468019809236438600872869849955313478908108977470935740313346258970132715615653898269139120546771320532920829065136641852054483577493656802576968872186096853814943213463401337058582661876374256400908439971610165448914811633587799646901676002811864774376663529717052198689669971016147512461643327746847924765608446574433015532937581335907933563593317879093044258633725969926457052484237947911967912463926956249153113687570514679760396949599862637284890780185525111930118675747096767867294825330460926149889451349851599038030653626689025870348503970168707650058800123362868971500186048135077085034262454872295249009443182870984996910163106925856099848672888018644996187764281364803351774589590601406533088413630208851114259285909051673927872274247349632094244936764461316455603927191973565992672340074347352004843004507398871360323217739439736955954571713734664032422996770314130349409462482245293010734979375469293702008379436278068510276240529002294491745625926416417292346502781558124892244559363320109950570791333317185003977061610792408338994403512461635833941421035374839959047134476840286512348503566021917637652674954098400055984868345948320628019199971392559574427832248735343002389853161709335924222788262810644068610055281433560012996487703030291833922339227679938700190503516561953084795070525660271087459470209231674148437182241688983510080952227698486109600239660552651137218032581928510663083733415280223922204381842627271806986792413266040597303320988321192557655414478149056686042802860584883887995643503358379292213444237288372988699702288284137634900433232905360985493789818254126268068567906504218365528259086344866670905009670266334408078448013119192103987917210963595408324619909043910329411616860021147695586380509380549847122578757076516711434886663196800865877006579985830257055756089950650883613690941456082744017231796000145680319633049037123875673941831665986284852344804098023263006975342233623819440941160953604549385377605632529593316757684447465491412764024094039359080421354897425176978192333836347981535972725254525317391119008541421804178290748084964889095950411543938016627697132767429685567242683793788612013101621614820313277978380416590809402018622041726807400118141023433607108091011071579820928959573408992863921577539160082025100875707356670948085558706468057701657549719041405813262635764009383137788970732633840559932898274703497219744152722717505792892333182532605525309129349798466222465718048573974465000875529056296756520587106149218871109919998825147742536272663116916018383605391853708395766926176345720712296553574142901183634847750582805875813045111539012480752129640986931839306660096154029678815415455621285164214122033794861380602108985801372009621566131061899409599678717146060913061323732523237748079046436740782892170489391338925260802799586567735908189940422720539834642691294642627018184146136915565469087321928621560140725969680548318447110715765797718788603329753359206337542349766871039065249088928578080751709728798652811268068204978242386054832715513898605435061349018861241418850996181419972182877751898411337083022736656613954982882679099637769090348392101999451984689770489402901164121553941851036923232660975250457344499584353237014682674851397144202484048694647297866021168875244825795208988050579739519535183456326389300782382755784058802127411866873922984632623282693135113247829990919444760483278208529105877147139174253469428643769364369274222913147101527005073446793502506550591539601991205843734308192638713454454105971656564647956896023546324219874940600920847574652534407585704975703044591560982338388267817311156196852630092914770774211085002546458345442062057588465960853925317738463027623272281506730976498354123058252037839438677551376119645215543532281809812265287641125016905397104609961629908983850341809826309295228617391597930156758977912380636422969972823381040552061943639758576424261382300620146640787244196452016499271540104918543490264132169014300240421869260047092101908394562605797665150886853111977949635578783893892750342460474944290490807898553393175367608658088145352844721077505487012824600044060836940334650121359730912987391674647728748107192524748671434936685746804797561245672121517383056436854186498369442340699607450071062532236848888601483856418557161432530569886330248263901283231753168978987532148143715085312856448669892396812334320203517296500186550816503723026190571307176036731818201726996366961466677469231680005217948167345694432859471750604846493529163247416138724845863127589014274549783175195619302478697646051074222910757830937059785075718906135465787175706451559258279630784449607916348508608549714748973860673720024105789152679462403398403801200303894461614858225278752846726641233944329979971030911075587814572922062376312854436766151913192359592391351490060138695523878387869904875123025986612309652097791455826826795264068654101180033521082018281120520812893662967506767460433554518713008236655959753524450662973232892366735307241857030331727597253371282224391382900983532010570780862428414160542189903935376435276216331794494797276236849738149047972143378538859373549704917603930586713680144789151354164646234133545804030817647348294115460354634589422409505427669109188184776398085360428388882095939030228502958876335962920894845637569918950607465197029842256872228795895465585173025579305034535657560391230794202916470614245483676798397109719002865023898530873604899001606810433761101871361090664182310625371222184530464259046963371490396683479754869965810827656450369708052605116295799754540466377514393606476058237401399369954065796755251286197116468759177365439499448818498086802069118870192966677572350858055609748900701794534179882836415097796064379297978377656474256124472032883601426347658896016951368597026496910964336105283173206045314495724737664304647232322604720608007925633521723189032345522123980889619585216283534285316300327675913925050886286347722915135726719431012784086309820343461335699024795191820850611221785090444601928014288029248544120381733674939700048000652433142289344028514845978511011315238127855635827381082963821164324781332285085929876197704758041044432015632346166950094797845687192067743250611089973205004942872754007915008901875776615100932827761157509853363301598697414024804649962847647438942274068403315610920427221032193312767224116543703053986637528712180700801308827083083341408614512765346141169200448437447444038687522505438320871371348423845416783689237987555272816247039498839584555302956017557513710876563548529562753185935106993364214520905911920224489888045971030974807062085643945446353986486771562323832780379523163195012071474677170957807153206638722168074232767712188287046653007223649988179325940071778508039545635810630192648848650417369237248041593230579957919508832411899438143023907064007883849003152130177908538766725307630106479682739147616668521957378695048423591182281884408265286982754883494532399103222390006012053626209545007205098317533234749242499211464413463762598008254462187454953155306856918337724851626186713847142597932164585256280584283956153201295694350648164057121002798698697428945033599384914478108250352524809322030571811570498915577812617733257349935140980639804099094797724471214229999055556377548583545866119256448623650773514661423915362583324435752142890883567253400118882482861281171661855105662450811927929976262105695991590764469755109642793235536722364676046489695515797613723479578003126660809761213686103294188657289535840504777259196208749458555721684914854104174369563152939737139588339052853300511683394921780905047902269986940912660388406476578542258382543167376097741598853697632407346026029776763997560782758164989692406488703685787697818535456126201042867536657688513896787332327601593777483843084744512149872295511323010409953937210372887660945961616238074457183898475194088712751285793886865378539586814888828141453844385170050709004071391084473815388387110874017410012370898564523992108232387349855765092490778987178428827207529950043387954470556889628835032623233245555164370346887614557098456356798185651812391431967539079145310298977199342543780258278298617854562166989042532299176173707040430024520454720041684735867509073458178730733140914740571136211165967530270647997362622106555657084765087447569283285944192216135701213956280621173137634080798056923970783426043721068051815084631515921167322735147009513919087728432445122239589049166758352711652937223344791014378071745535469746187868823130629374714134802337891382282799740800108711597263395049631522727591699966002483941615643649939302834668608996287049251746724096620614376243771073657917342049257150954236351974878126042332060269926438167585181178370703820828513367167940593003276972564977717553795677554077624115776792254880366782455682990140980376153489027963305890039220587670623326411755708771892989475965225973389393052600354391320812590995307501645856605899651728219929504456578219342763719752088666186359214945038667777546130146305847090283786209663867215633380260712811478512310778227692158331774173339691277143764719917036650363918021721695861570108986449516523110439870540534972536022382385130813311751125914577758260203227613418765885812664335682347440242329353490039057138947669738662331538460267297659198201333675058485929729600270649392947985622197569258249346181745273559203436764293022832464179797394181975651586815850341002077570131881914589826060779601840808631532584012452144424911813191562632552241151109406177052483573583246146623281951351623666013731740012616353769677182266554238384799215316450062775945231412685297411976169116686731826482113164934921568664507458727842249366172155342723964266287427295612628389170172262105484026013473644563798759931871867096136963495490108123646430831584277114517251188286260774428901168211226430596281095219398691567400134764559109586542134463453735097377445345804774161470757713452023945229858507120547657754352444179743954482930130613913361273512087797543396292954131828272165194228582697781566424933607327622946890684577642871598700459835484099586435813578742524675424701393770086697256539336120986191329918219293490854290962537340991139656301806754778900555938463788724911893922528582244164527804667483182861067528704366380359326947911328877090630524530299243959068403098636493014277794239369281306778189876675511966032608964774958688414963094991770020538009195481198304771232965643248685351776090831843167121369194264718489776604890569998887286226783096759899197443498643334209327662605637474984477380665159880213763800825214321000123081754786778718620802838276805365700623158953636313015689575877772779028872818125309697844945372155440914661245117789985339142800031975261286439075841926856545024262434065949983345099597131659740845245019891002661864336019536651900137428565089668286268884608091808904558891465567394472575763013713250013964958767908842828930146767493949133323404042787267731695788142509183562317107843344913425628818739961798496157839155586616096526693241285879568751810806845320126971087305464231275869421931205037908417178696010749560894210695543318724445275057907570302054896591415732792888567520177956696966177734176903526519588686233397234593110519787850862754881549901473381741478296991569597009290302506731201789769861586864174343785990756141125524948251168532056515759886901669540025635726372702518036729190489642132178446928504384976387052425343875055197466802093902532602527373853406162537324186729404216781254489532511147891315927482319540224121967744224284096065935683183375276108869884989207942927601783344241560883170911040909476688066875358489583229656388833416384328028893882146262183013450043222478291591754529658788305342142626987617188847712640098806726683986998683140740439316358080257940243924531935952726808029833033137949333200490868167639341672835647567172608427248664527043106162669435778726254610586819539644780195489708624423622222717247374070528097566068967548481077571472030614963291414618025670224084373476773144698926146811344631351453309382683629102192900305748105543122704741767820752887436780043318507997464021377980504671499947811774712616296561343256258237222085085282875087902542305448119133849346939466683286575102594855869137134923278784997565881625671515661043998863369459503654376020379944700196585887456479520613909183929926778909376310313845247975143234098509727932060791621411989673811886924222757788500120522689301786768818465279159857975059822571624951009881660143980070020113554094732531702716429434625399539526917780412576029925912201962657371913552426851981409165080997551248183320054449277696326654230723552048410212896291623680089622975901024222000912226762946822586421627908989883148642453173988675181120562746634615285215309629956613002876330757951922394073735609469065953574977448876591394730979592813492447453336710926357926582867816760742611967266209525092665422880546838773512700200913529055191311683206372664620061565193088050879516772334391928521048869930762059092564589506944095207309229564495496997844230615541673905650360075635503280307179270429985886667282754601617095327259075046115510194622497587359413906233880002689151469119454850149820279484685512100884698757359858348224643759935043723931780058797453184751836167861215791884698614672294025717569131328728997197542033827581597636320141487727360032654958726945593697580814623890582972177317152260067648242374502674562985517809623486738123663016573085436422255437796332745780621972465071048951926437570103921977609268922925455938220296477359470440837589892214522208237264943670456919604911907240132545228935883065962267087725187400702535824327476090945701208388654044347067486788563216565754574366745812616908107303567744713822107505505613111584994055669204652091483663132271324737864776887846245976996201693413119126054484767984257134864513665277061176192148536291506681975941748967260756589682045161072983885877789999347253501509868020272700299613075635067582480373348485398102957133683875459616981670140756549368862974059730121937696305284580387438394484309677997310870822435223190059967541532672988586866600120854796725454029457839427813880964557253797479043557602629432882775369499803364517746394450620594941089553099589930496294811840538432383136793732063616700693369481703454123448974944256671201831940380456000395080874590407088325830188637938247266651435364617446324431312623498111210977525951390995994025181552988858159984231557598586851391091336787045945848221521581239024817616286953748062671041229253861794588614939015906813816439677801175961438289418200847098632072633364975980468884702275321235595101193836612665960203963126757366827932882199294499173771451263820891732690952548773959089254316994824958836469747360140514580401607402326930519256509554922660078608530887541092445083609615064438905090107544114741173062598020885872580651621889344865757266590787137027566180556299417258111182798198384406106567111866437619681717211071854581048221817692836032368218497084444476116730132290683215447000626292588138262879355638132673956771892320410334409802659663904533350268236746883662711013802411646717395705924795228559568609570713629545027474624954026593463568775299144333779815343871997802411218129806495059519624783201451435398761843481303918979380172628508042323882255956261328645337156886521079809781954222452686890541019869704857519040345593534800978472897113903908104453009385360664888335904123579443352950574776199067743326701605805033415264911113225599596120421193845022650975205303059384483365559277266459824032240647744959679178152986883953755911443445546030880778545235448764687768620979594146943939711882672308600510418025516673768530263754724880618615082141265461052968330603640597976988810586803404028748587377081600528736409697070675534425354989407796767530993930949019691298403734347377242788940808199256850652060101400711437243792923779325657705245333667080009129352350900113967931051273056715099110995796984328167352374941581847558667314949546249265121270858170633955822632604182808716828574514361295670006385526531314634967464184629066088283067679418800140017743607115119769480078388761922623466074760827654649089453718083878176098316949368201246052571662376626049801891343577320288038133768188243912377370941169791636853050152622151868395978563549098180169899798912756012030337827913185160526729555972562166539984749280111215201354720658401584963987941222039647314542142441143280641056398400153041025708820164107625982718849463445866490667924220510599470536849968987419645286547456056479159413685949667523004029794201546313311075647413393566337717184747771501118659282970438491501229659687009914057796257287673009198624618538982642744122957312461194680150506813060957469895950937206026737347958154369927882967986380329705202492430662939237039424931292940785387428610216802949996679463726506839893435428013698802969910689611339886830105941499928739981979784982143797262998827021473881439286598966402944816986361622314628983585868327993369667194948476869918608607084613090210834595823191652021711436432756922861111387146770271861457878633033907898214722672968569612498790156298129406071979026391087288467360153957493773811007100856877291374685141332673076392419024842769752604787570651731636085249372483705168735482024588056985987840200372722497548843987543063025949209507778679506014629955928444111751881899773473620970437220152557489790230900752425830642998790412614463469423336023795620948851570137640230780517643965767131374255468976942171140494213701518024896927443539466551432040882523420648347331026236046340019997814371549091336094799843320100012199383063200158638243607068537026756201506457324796887076685614878318345408259960485937150101804541268524576105631955691938010228004999034380974517669598108707452254253889708267676457708100323035561948214721553163308947598902929770942029247491805012965891156390510286674836529509106274806851914078995907058584309833411756354649632346001274522694118205784140938548114465695284011978988256124575338995317873438869190845570279483965006800593884773693658360734418075147795187014483347429241246258494216992201638271053732170774983730478253561902786261904084518213824143650940488959483733292388770206625977898790974196271632635087660106232089772753124480982589420416721948913109745899389611669595908027236652998748724322381906743508531323454205124183219153473068170005491972674611934076484686020207239878112343535030336840733363201909167084248085953300732549677022295845581148753664569867544515537608562639363271572122558910631914545662132493134904514300322037446624480309672014570896643017361426563195542321961476158986480460961990101427730039293604518952048967966522695638655543625461375465965720051424703912510474318249690861959990098863990446318946995827095545728959558754947607855442958303708288436066481618385841423188042376507510901322045956772706726083247993754545883650214789360324648345447326529878386165685345532557828702719580556907345572318001922278830795758472465857071057260064422767969760822015787798862154155922525751779638650166585564810371047341948274663565468763127363735277713106403970646634580794155687846064454174289502765865493018971288267946102561994868916453377033179867690908367733001116046746645635075074214028354738107450048115990693576099806668990777934312837094726242234317334067173643141363746830260952504990584548967511677205151861825303453908542120441170972118933611114177224066099246192058034724440145140265649592821176786443908156404324696009572105547750401234937068961007000848183887140183483261394051598228864122624666341527937075544224853941339575982373136883569112108068117482365532654933993676447609729645776353793763258511964372713654000575022295705642706082212602427726036892801577937551349525155000818828679301180655223273770737491203503297219008347372881972521781506759164501517446942768781372464474925577314073370484435373585738510123181454097404924598083563796782262769388844794158031503274232061313138198749464589198351948554382830934543152358607202555189386918584733210704995699612036571299118464590581496980972891931645496930676853503056382143272081049668205530937010075833255298580495283794683080472767141433337756052189761481582635021127683988955982704086874745676613696427801766590056903682446742909949156441102239940296281071219534420274699116919116622033362898666974721257314952337162522689698070185458307133272587523403350446380107329719901783792494245932061662866833293139938641284288295620648833594232675618253712733783814997134800520151086529623001673610872129222570037517553666410626605390375698797709091800289124953343400077484261186799888940555716913231847053326639000829527772956470430825782496165538797531972276247763089780556909986886228898391642544642725624905126786650069850925047402413205560524097868779293963048912044141556761869368626266038092727032102057679230580759117822832744930058794590781071834509592865827629696193869987150317894516863893596107796701426850679884641909343331048770862744411236584986635373997703954177094162934830745180076329344638319310507611237374835881993305435606836543869325266253982118405466225911141587787363958921563844205599655477888500695375624198062874159448017719934655452565872667565340303770534106264257568463569020444899756909671454757664615047086668725929347455240658647856542340369970176680885187638480625244648312006840064572507580276198308349693518663434053525511648197650209717172230031309751952506759578467968900666142784773813862123162573384070062447163999790865179787087091416000696369393820033371807384011565045665439664597525378035894948637468477613337267259977653999145050553123429015893848447688175288567799747352067859337968216499570936357667479949870878366036249730378901555832199330284107493174735268332673941887141128285892212225394995971977685791913976911184560023596069863286272664109165791922618584483064026974459688886636440734200477211765951903358362061573816949557051130620139302295190514682188735773388811011466349847193941602474634099701340010061358293647552770682814435403959856515106285697080197763024206338007090670794211233711360718597006857382618435230593683447637584892085396483595040012093392849044049323061494858149862884969644777957402821232813213280703282849938126161757352691336831596448471472334895605315061233347111383984667133303486991591792076921326040719186660191184016467293102650183482810328680615714595598652016238553535476941654502364762242082908976727650947721554083270323603696024096587031179447744685050685802144339285676119443926203115152481140666511766928518170790069751554672387513776468789368525933062730279391800320164671469106604193797598097283229295730175934714130185742053339420193529389629361792712091543490319977938751878612071536260008604087851074266642668319043894008077204298089008334756911100833651648018672745807391497049903501545787091309180282970738395755354216025097387447252598346873542064405033136898322019146364911771081280036506718005526639375204437980659526190812077467186222149434479802524825331711025150897370585402430841932222859272029430484726427201454195669182240846447059522626759496377462915911113502466828629305244992725244575367093722829476816775131033183645304398326598482428450840489280066718691051559440290518061640400218618548498309735950936588236683312981914864269903778270700595635532522612986770069344264925939494935834864052793352398893976276607139149127751727255666314772025560922167527985618382577308759930840681110248647461652989156034758574919282751934378703443080858373604085458844351305132091891433371241126257618434174225298471477920855808975389715974110640235414524452545820376353986211972001274145468819407769767116359630465100181626661191884652108530184530207919334434220643962082828409805959115319272924464681511748750691451324277615235868595958005388222858974383737349716983151174716089773932794814486393829093632008487047851553525148484497132567069571839858753921957462823880323028894657840010307391625605459476633357795583998957456828734197099797163354073425891069781205416268773358376982788806091432320917850382586580582575876172589645483094859045842311490265060346573160062358374102555876063341678594811460017843568068917865329220971415783873612282966039736640773775598425115317982063021881856040578777095770949580119709770684292837569118136994507606980927669143838927632260510710876495854622980376370012400247074807521381515154505232873926867871227925495315944083912625360499687947027287922582669102388295944417224428076245714090766914161359813418996747267765704167692246094641763038796201632811453369242244053245913234958801322197529234173368036341509364104263352442080660802477146140461252383335082270553091466299869895623832978849866923348586226563436749394128833613303770355893121878471893654405289373749697538357389475559653911616631932827159527072947306323227691507744841889394845295219829453536892903873093290321111714033016148504014546922825099652278494777837876110909487881268951805285095731692268831311553315145629359515397094786669631472138124375550981894683934407708452088209265622487224022404262485419725975629501263587862669510384206952108874501306195714683028713182175610659769693510172537498994789068934435108034595845456938507523278839686681459621535490912268133826535286072388847668078811329156974152098104935343206071247126717660293290424107209912519922450880018394362688499696571170668516001536951563247870475982933446764575491815729419176537613937379389913247874150221883371710903841470788571531504229217346154960187161636579599052388956854254040772978378148752221108815106908220060827793592230618213786343836097779471549758258022788511230256256573916374764674321693467130712342048299084439335292143753320436262828106706110931684629277120824018289164292930016697292155506753431312100485654285976818206978187432429501248637702874848692053694319098497903763228628366631539284912187456112301836677557573174435749789760756481278327414438581666744921603727699831587199209266123566298034973336521853933037969898133828545452538872390089909485122581386696033846036942931316052925500102282753847909729986271662455169315092801565319358044550608737145930537498830074135277597969579167223226533955125602444161796287715035843616639428557362813190810789036828796179419244309432603286510446137767073109748468612413276468171048315674497598888480344997935205067570260745682442517383144193613198086148441782312829166851930017253443304081132777813826565535680462918809029602039206605660924945922571498821894580096194657480450882396043207846928665148148123717837697748166857216805445628818460420244483353848629836482041180479549515256198374607892579612319293927263593819805118292281372188159180369972763830429804819151330200510386492978923475537387152194985554273214898271602064402102268244795079668013804275177528171193670714174605866846997766141924718917408238217619010485854792659732775076061545639338785838088177568989382176379719048288247963659342910604129356619877396987362192925577562050970605785251674895982018718115278374378808651326076822697812386130779225952362562786115511595903497239352787671296106854978847596711098416296781708540262252645277317233202016316170258898225736579664431139534132098052844700642752132320333230651649811384699076753217279364228944723645713798496489736513045777729212884994353658582089625947923514867016626426107644600904964264471369169599483416034215364276238428046657620560270831821949579389410395055812935679936494511573254630854351178964438039576991962368051822189132651014642152491556636566598193683190492987406922231536820201818206170639109997403192877986024346524530245159397310370150523288826749178590343348277173664813444516069683870669223610494663695381887047688536906065417860463983482881361658654409990243900603574088393990918304494397399781231866983089558354727077221107654772080610086623101995154376503249591579627619428504421427707773488378784191605023920351686980573905644538036216782108449360056843555997769453621922908976897570059228607121038220202733788089180005652403762773529170298176744434964733065778874255143050247389406098494505674174972319715461272598752946833185095520811350964633162190829879535607313818322244769743213872422522230383923908451622535914412716782373313199128446121084655749111523445760427982479462439770944397860037033911486766522330860663963008549538574614495434907794378881340746294485494678248002565685563325201298658967716452003331377027367706807689366397768105853242686427561194431074273570912961194292189516275593636552005475697286642587875690505192049481099195467823837489895035178589278260146489010205694938345602192059438041622097462698723093501629138027787714472128700458636865274801808214695769075318926443565648525271885147956961858833230702827739591327063655063295140162747958555023250324069740259336219226909424516711087714996781456933319713644680678984588723277920663270077233657320316193385463162465113431451549280020700073351841763871713447923181544826979110483823862255231248193045502188703776441229644381709659986421420161414542491715875727317082721321007272613595799110256653938429924658765871689891915354926361870054611619312645022937337366517879346155588422930041030803359501523110832982050633952702355874244489307830279680678383209193962933776457145883066815702172640596295522431186921416982659150118503127482764228079281682586442983400174330123196865601707715607629454000091598531178587908646648017956379264767355602460223645311855366687783926551604126019813153834190408966482630039459724553147481737882515158302770850720256524657822671175329993228428668729479664972816677810841277887825226408894164972942592898042566059091882843471844448627983760834738627283483546023871478053771528408225828955188339899618652237734899511456443273696166772690851209649918684674209530892605018965381048800987404746960570042600733801455407824176881987813524149172721940328388486190520425739835110500141163436663228597588800025915386710596724956724506729717391610346129854099480386325355452240913558999281067987079857132839565575559634780527813789559446434311441416721230133733182610013287293273158592479072879789099034344829242715891186718539650879101070218182806181093667205203943795802144293486015602524475805914626074393872150089396748150379904427600266548535767714195734999530418318363858265250830588070101725237448706431395695563878217187038587870640230515650796827215657283195562080697218818618520977354679929450046067672230255681292695606132053207651296688526270225397845185022676569907890659559666214370077406569306138324438063476064654121480440710753219569197600197483466870002943126301009772934826026622770445991161492813394714925869058358695194606760556551674342131274382765586764702764755354387023218715872528740627154741438263879870440761028764692161711367591975759897219545147109836155973287046681974452738940285565315916634239524879785958736383456551471992039696615564880926395491625914879915627934807694201602134496785544249569330637290149733320930519510295377755645664258218161441841957704761985041071510459296236025066395151682772837909590716900718955707685369380327916981748458175681838405897297878059095387686298607151372255703393925038145515453010294598624250833519804469194821194815394842210253922194874171652817704238317493434275820750338063725001691890833609060674444900253753489168104390486658240231973610589067663934063223940164010257973793387401025666121507629213440622583970429813461682422328289934938970136584970832293446713453354794327389266898422529908800675277558401491531747627043108547879520137196618528609859826707428059104137788885316436905104587467315765476427288187028375100881999639226478585199233854691166854916702994526309617557514893168535614004706062859607411790752272593679512666955663115264931372418389294196362575577824963627366436494399109106162082309278686650929748415802592566997135923258665109655806722460342715438031274129694398136240244781065640165531266029235164617815150840575879023727801853688608471431786469121024582161595201361994012611314978685050321402937478512050237065246281946551912027283052776272729100838748934877640888025615811103317538707596687678515181084460315597770395682035997570525317030432198779726066260526658451965149849964224058252248767880494289533362438850904418465121473100687785295399309895636737661283671668054117197347826766654713410633440501504685609777715821022594869987085585430435524493576181961520499128050632689575822147511071921239834315357253826556540531938523770174463635571701168399395213728752974082750701111076711656899294601168990052794166008269491452638013641456851907945155588904111026062309528967597396797307325683819731519832905046911298531210902546801340561023554537748780752748320456084093957470753520352087755246212913006578264009439802921682000469123412061067774717145063963623049525395298235460042581247120538244701904446516433931726654137636376700281085417956438068730837194215673066648297227925720432932091930419458620861200999759536595418202216275511873758038789521122210719022290969535073037548752418778317567742040113140913202328384047761668658588219463405365785081755564976786124768065470314904754672363747112309598295671131707676369611613698446694050187478006878784937148623490075711119537819798019126553664620657929504438316622856679311200875863052168442274501777060832898257508436536243470463034283159980867770384547233634916713087576907381281374970545315924520989820268444324746201699368638662630445122328896303462104251892268387595309341453731054478506871483253049315353421486025377424548906247854301751745318028662913623082796849132364951184425063431607851713273147045334620548938791977609259425726964298875102543350323966478056612090658464786760706826360622193173283598336863198237099778864970649444035760327184964402078072026117076786396370997826434757733659909613863808281641077415692338656708118339516888759020594251280042515458109462059378779569179406272834963879539945773735955135217643881899341476621617199468518172218626044187472444926365670149935239235702807335880630500225884952644197549234337715468375681671070398462346528384902197507119864989036246998201697455008067637625306851124430646943095296126075809157919651028433060540673693912979347012933373582919124028865075467645417779034084555136836047014392747636263427853689228160936267128944600714437679422645760335976099986045702207215804632592801751348982316842604651121873013647729351104110899800486753745212022279603489969512386248392204768371318002600875961456445906439433269579900436521040114945793466487136795930928157710872279431947259449817059903030245579804663533166761617254062918199121612825278960583164621483020689885279211374271436867608389711666029873640488766686616559197396951767512623095875347800190977276522298060124616823596154123803412141509811572458226080767672727818392022270344160651992878535884193619445745745982476537959793962916987505548094076870213584509318121052197636036370513164807373976924977491298523222081976274357363689099765460843168469365695643856011505030762617427756283877767927917358913657696324432955222088437432897591893125975177324562931745731970250044557094427754422903069112703379352829692364036495951114367725911943398995816064626891902243914518500613091897702818271655345658390259537061579756648446362891295122743084567467563333011401898249907213063444684519109978762740062262453183334959597447760589710668004263397322231355112842675892212297013391279089505758084174428140313353323521148962846748503913711419938004891215627679158287706708400107789623621960938430249748066518411265279638468669216758379954670718135275717198509809943233870107236506836206602689732834943553840932561290589231169393754648825022336964817487299927903953796387608694532875586765380385459835293095229903174827247446345782430747364202371096584301494436148625457782370945479623711517869806529514119543562472874324540063125323878769926967377562525865702050313881552428131781673467699119756405815814091702183613709177781050905966260270597959343804226865596267691571321973299843262494492234940010476911055283897620906763269599139416770451020954792436891803405048516506841631586737808015767908917482400383686153071648425025597188336629226220454324552671676058702926542499125871842423419730048897562362280629180504698140172603947215658733415494978062252800353505112702069235835303316562228615571479261439233265162326606469553653593632321857715385289442052516803684585528466377525065432804267296722261052265899441892627132523756375569474502805182108259609063825349528368358287480361584391822945935926209237882122791200100565451332947057031263608932342026589605191482523419374397440240441231570561918214027060773088543567471336067114647500633381272076138825104692327142441255175280174760687661499459544178609408464133919360784669340829353190199098618456091086700515409785302092803935781157332955824422249859967583256705535808276391863145375760804621971142297026141532564558382362531660650995756930375027696452772583374901744034285858226561875299172665871254857733566905446140173455452652893450284389848899923915340482285503099186133991433933932352200058108065620653432468969023656353813288870002635601805375371527802163623548818052899045580348661845953810067676451501471342636852988721024134893121532344163731665706461610278862052071289045572212345873386563723988545272482083578610523184638818631238934173512191736738796145421278774393708195337076008825174824176477492219325233844801900936089057849293317911272427529207326500635464777721101378802913049664124346031875908604709329348619140782638630684504462013582567334320156324043209652699882395615900206326029676827296763906274666156947931724084004416359946731096843534983592580594326853739445497335270001523752285968557940109505085027506676696230565614417747542551987100504028485694006755608185750403140406890946254451523999167323522671674255202873383236792072026278084814250670064586464141353915435255607641565323635818188763647182933123980755673913649042254877607729292465483407760998181296652510446244068821856541888661176526434400926819378255888931642354289174172787169331175652532143545491571823476561801445968300312889327395671549117591778078019000699102351079802684883595132133949644710104335211744238249003241007630470637139146201773063368582103462188160722521118066502162913933321992643283258656148856053329123146876752127115948702470457437332271843201235125164820174135450029678939796747034881202806784249318369603859057234697624446573859373547967740609908919092864452594601193128935356424410274782568400969588678429517554050388226810629963717516924614706971495745130406472194957998760007478746355701462442537354271091077805917415620092413123436468661368314950460093016736367687601134787681024487313246297156943822939889582426744411495240905057264144664553249112445303423671723551459252293279992843824430916142450471290548417134461675234456063256344477203656629566296269331367485237087898047060339723674418447016830146339252658040792667334533957753128356069826967553846542237558590131775383778574195587198338871168449683568137748016187620656829290780890086987369066829768723573259188051270460272748448439164753724434430195848778158212754694316252134076330262493744443695474009439641652788902916635859948172737641060332733911326825781582009782684021382616679272978897987541025465671649710243089039500195842809276186064139989905742657710520589332051792644358435251577738727396178716683753759476487653390663491649634376541793205507424651263558021310733362340752976651151032519937432550422217582571576378292317481710968683484635565782821188807968495627535538033907755333066765059213974552824901366932238745449025975266642602814514026059266686778312208854969821583671681529768412686637357000381630237446278982205247713158221035207521076854429120855670192417629715570842619807949945956308130574797887574145221141663401866682532823872776318047637191452557763556658050780524983195562246688655189421477431247527817551630035949738899690171665113168222793212160128185741124653511919742581028822255792762768622001757443343555454515324422895632517431291939510501429727274427319890088837095331350954055434141784413683492818784578047932492813541976354830085731923559036209430418680099731367779504678843589188895144262849762025272291672876662376925380600999602271467252946576697535888182901998207372192623054470112680727379341519401324366046515036133050418720917074026102045780750240860292728383418992198279641157624275499301769155555466175913638067384379246554396732978478765654527384968190142740659579478201904896006858442112643439124941892965224678128023611292898850228152955363693802819342671905725378885446616166546403551602859695984546283055869834174736472346571797224546412824352814968750146531078614926148108781156576882330611760365374635783163050823166365780356321612008095257269520553509455345115227365813577340860479683760161481641406621305129067536177039201890422630235765907394110165001051577308714430083032829186564362230221929384394715963996793381463742772533372679534893870806586584164948550479119543476600683056674391700555652196639557757385091523772033434815607327300444720733762045416537989504756476523723747546255996052870418368987555262586386544094029721397804172133328063988452078904729520282572221843662667075928756023937904465839068762494950247289424630737902384561312996242029389879230055901058946097037675907075379685827439183655743467121363357939462211326338760851992459788941203422701339472199187566392487959922787358190430204941235756924608485285274420659210944656903912565364862958350278722326036014347302504829778867658588767753480556166346563568210608684546793668863062411054360312401213244245419915601801722009341670654986475541365209207619045663752116644617331173587579174097881592303694526712392789963709480281771650852076206789406810934917213567781333538165480372707433660217899317986779139659291106930815026011320930965067039576369333276855590744655159133976862702120036198542444350803841151112315048336055613617420418156882665721079453409865562183471184421015408071490906614024728738765001422257922257548400718780865864054460128964730923752975321996339515264388465557036988795259471652080722800267413844055147787508060516180661903061553555270361558369748443689171719466830261172348602637929028521147410712058514196118959887408047199553969854954967556034381745006388083807185902120963173327144956303234683865372940272595225487875356284796716748821977602929627174881686931869529042001790675488468903190330581403753609616543809537626323874326391459906019775352831449278187815244814543926995089141430972848200289755780124002945162204473826975372885075739296252292149984904162749515840578843828478169891087881454125928671799535534126707739457311348942285049734519220039273426305295181826207735807470197694038425019340733642464750176024432657313879485169185477910176592183385208302580513077505952847594967291218148769087207131195468183494384456454948745595686347008949231786284611898255614138905297931756778472581383788345709729356682230326478812929587651153149861040487010329959237898078268098276597005102345744818516384249902730802384850275334929838277660062053873016676747313898091555939626408387343411753118167385362476608961080039981559130507800245563924637450424803065426131689807194441095918772603850427851113805244593409282890307233133540927326120789479857454002024554290283714995215700757639008644028997148105302220436394319398848752202151781782804541803864044192757864124236150722693146210985180508994116950387024237614099788225483665573864099340329929328373253148452048503489011968990106836701124104268403186979778615493918098176253996245017598415281831412636547195668419143321648048673557746737848619535581194813528316257401681643358627856069129819172616496682417318975139688892707229425051667449493034817609699949044542418572883402080040025110417402882404065288750752269316251523950243624480229329985183206038185978862188428425493026128113244022174993980180446102277943686410284256690863811759909026284747415447197030508974612779395661795124276687423544414418796511773877673597389762152613677802151812149371014129506831535767279138943366929086053237693846839787512858206310332143765781486817357910275454228992486780783177251019208800463223622940200328439332522961502309220560384120502775457225200771628740153476280739878097019344258390180712563289385566341289799432641669555476054752372193965985811797306514222336429771941614206791492365219458177048585434653783200682000559100146185191444775019150278337122761355984958538578976989069054783923538404203764205694025317106653863697793981339039984505254664869980056264196404702330315436921907105193068567154738432595121759592799455804482410413011547681198276360798848373135200242720220531331518904864042754290309150843277780648136326238357056990696508666993253255789054604862886928214250511563686359242220506051568332721825065117173993527400559441598030153200640038480622329744329030222953487816731247292836400220991169275344499062971238534109780626690816226305253674397638147151751133221859858840746633225173954131487627622096829151128147053012795863343812367658490503144527788896890418276607921228197130981542679454791739481777829425743007118264339545915262789874314076457221228053111520750062676045320494529555973297551568005920750874426202846933905077465984450879908640413394979295453999319626247604213052994663036450829268885553450698177319451466773829588073844654269981216269724952332885962162984418070851249460712017780284454266881596484491614823837589281493983357760260764157170964867393718896574080321527204529589059159634822545943367061149747553209423479142116867150887402546433253770964487050853357630056944903118791139099696086276076242710068293900763646923488256572796475558581006265388023283353553190098092587587604992254615633905653574867316164191889173244353787373912665558960300578827090669846156264574458763674133628654942503934947315928897945337884931356026387079279401349667989548861160303428308346805291735185688437431682297762853280752048789731483386542475993325136455402497274847670111180886729814830963267927190576197443845398154987303444995674829909048140891011658384713069366129518320408020133098185165971736413163456114239349943845557918962470088698116634207926282333341663425915190045965712166252441898378772512829994244704243600711700649347669942909691510682817537342185997065129842386328882081969568488241042360137504997787967640685800971018397453855941186807672822319735898439975302930699629165302229965799322089211676143373847634688792173831526111198574070323651434510655414244489311594198363549926626840957932891430348886829908898994312863991273891177349680657793129231681872737070461786619913641846763355163794171717801524924546310134062891376358016348172786589210623375658778228699943740345773799042040588324562945182752751027460794139004996397606145045219349276577505472096975768352368821159168977858081449769665266442088490535128125293537564894373764630038345495077093539930011156840111739315138159755122175453074411663381588180474228181133355461028046675974038248755119091106449819344250036347815828913897155975410785140291526803733776443195529781119713236918097302186849808299898025817530032397280091148390436603274656653835101772933259926548417323964578709805294523702285460058949489064371258409877451268362479016238602486140129306373567072231511599653333199053726329478385976915787860727949158890063795166387708997879072415481293919528135134788271277135330004859245991240638969920128477047020782850108878311823956176565312010244977838551048842480199350014071077749652800164754181457519438169278345344054562535435418089948935878784923424872094874711163108640415717683701935646565439312222115427907539888266738004841110884858769550590015807400101007625075925667441026554688387322556706124594672098045847518983409067970107615669917065548104262794798931798126258584414137733749162022943553964315436513558365781981296498943464374912294179500900665122626390580043959024806257824364581476092551235532873176085693190645375164134347866870046594904239543988118404802516043836729386151227518622638172358372785203970274915100026408405615422617752598052516254319863953660907964881965539511541517612277118198456273326652426165320038779169476442691416391487343542590875383704244693353095356899479725107817894872689019032487709171809009970024216845631378349833229648381100453606719254231602537408367299073116793180934082543194714559144031441539508516527651182990518681480026993145581465647023635491169952502361967615526970439844548755098817884715389268690086000301958650764399279150360469289950935863499149626634952853526191238291574772628280406851236220877103369531193906001766385663135944303190081030424188336908996980557023302125422949957801154453162892623271936899804506181482050999422551247973018021543295966777903112545234608167774816299538475418990332644852070446094683386529565626927319450935482360879835429828057689892019338210331659087096628154552041606521368220976899335981349733649700601514927316954832377021472676294547498260681123851629398523858104009225989061020301078329753558215038409528790398405947519795490497554462547867990218485527496877432826857403450161375084054566895330289178026306572785592123780096240718904409607328731892268450630188318049646663272002097625665506112258656267305932961888895139635453318340134938625775621079787373189859060485137500899190773256813370187826948446885763202522806851690862119187633264652085694413547716739992929361697996582605624735534067732500625646980883811501685802952919682005586011639020981828344807646778546374590924107375416576002127544089335270508485809064208947760688479098050748967871388659269176607243035765572735975025084197114003109088150683374243026679685961840553581730186850872702651331829701911065218554560646925110647297341983462832817536481032873660818231919851724271272238465676536216404417379219107289444769736632175003032480980438236984848085704328031376162383418605334410010463760113193681309341441709315216356116176541296291757178504007471421684117860881289279819706334672153271691871564780513847444648669449190202317239227978246239721261593002878482736756719928482573015342235188542951650477912439426305084789731520190734146842343487245181840756924752354108507758762164314228758744352661498666440175878658953983000890113842792755407414205429535068311716459823743671192832302074558506897392159847555656586299201637298009738764948728202889274076488539099380114960617450324670936215291576927394183530620969699596667924173302806619127404435446363565781141165150770147601687037273729145417567583411391130976649707598122360750838158749237423329269848272989673855916096439138213801207083467944827249714681397654463071338416661451345004284565626157536710306761820925525392271631482183751533573649997621429111303074849721061324062482747521075136241056269497644184082324883585769441378621726221503208114603550504959399047948695644061743963232283238184728007813047632499713691548336890466625253902371434419901893867374481753710386915663549927372173693999674189144340042642471114653220764199119079124453359296483527159467731505171876515385071608972043345318441007927657615276752151984601008578097488316170300489790314261038897765568790291110254962312200903287690548947140891345037200882364150777234152984870621571637272239317299705193807964699757603543114135780958724982353953481061523393313036343310203820052949847691992512732313036313202416041846477483397008176879248970738846513483361580711170956655376544896239993053254659449500184084990232146113545959192101175494882052582904740471675349758348366987799414339764035191293657335041181014225423632516913862839198954342056403753530505428302138141899430159877036512027137150955951913611981869232046607257616287029423530040474297743950402515867017579154770526336863033496355045415682418114605472372912589717593277561010420187756399211342118454804473918893974230218230495822634931192631365101567116394507074980711457651798565966298859696080832828566669938461649176460123136709029355153317773984766964401507293348987920816646535630558117580172494387755660261782235449929172686331204983995109071302698137722591563681215427539728588570255952650226224754799888200583614304972799753538882478650782680243771070028199183046335293004988921051604202205486788046108528626853403195280870929312893796846919655347685466160697456858109627106368161739555690910636005929105903375240562084385854725489481725203684482663665960028420965789941779997206776776142639807644863485285861434455050650699539075937528801536604069492254459227673773073422671941044885610860434038117776611625342284999865255731842038874591390598188302058020203536924157769260492254526593505561110757710500001305626158020991394567082184543691150653778798769197867834366983497614011131943143504872414860239495814388185414977944395040325086607178544264209554305790713141260276757547711415711572751688735860411833183542033770158029071145582523541516400516758928780049921249574644455110572243577746572453803394615305227960082924560324729508092770032026486408385953591011395119958161725771657434123183003481837671280483042650936635623060389366919755624474662958997078980864880886761989860985451755948196601657111588712359751332531009198853446528056738245944402951281796284604767939269798333082838329319727522490001177427575048417322106480904679012461532241387057930792998643444343110631842389909232744227262429849127114975960613419944283697011202982338417711812848872188829071844749399862747478212501313051933880376012494039180179014894427532806514741673587972105036014115696469324210610001440167598151963323307615794091756317960389014447758959338947020058945548913291129823112345368232028380540188959114407704190333458912722029939540295976215023588192529228578918237688989950167436571882954844162998412673607041262586514978779835520112542390204545012722042503173585095385223637053144489535253499321701772961219691208231768605743184476821383152971987788170670188426577913259640936014297431859699960132425656403650228134125041550688564813976066251393737272526725549927882456540199641346862527187609522900900722493573084907550657702337635898371035852567192100625044041324702607571270166148397299336173610818701407165931555112547822775534734957791006672423476791851414135024846296020288254627288108421004676811777338287916453233533284841177409669510673023748686445258099980539022421833255297595017025086598471170617856677993836598013006970380631436642438054381591498206650584152674787402022687749767844249781322339946930007241325234019678883851461620028532366249149326664939982249995276797501254413984914334472609436913392860006251431031708127344174151678078327091184061951314077054170319387050056265260872138864063848459589881173996983461934779146288838561940897518614771913917933283727783743689432901198794330866148186022142102417640424666733730940706864873326320523095062744226124010822073078371350948768207803867622933162475821325736217963261762094184533599654140337299833808871119348988063022713162768905219635804892721759960883384905039464508753811744305945896660411083713605318283040035730214439189932335076289578448109116366540532387989460854217567308831295378115106916146193900886333158347185069068171744312858273573088530019924146295153729422519180536169606282614161275458531041626994499440008122598933126846212471274116549620597635915314385390064647827014000547211373102745851689970268244973381315755717172088093117019387438352376012160686497576791488036394403692858064561613122774590248682753131351363879260596113557732928780838936811201943721334305669198935663699042937384005979818410845292832385525113747516283572086386925327389869742079534290386334269051012234053548318615651783315048401612558532528284004167357437333119114057071516456683197756233631940443030749635047775677029326902221938800753769318494080219385107934815867192420962522670215431071146849748993619204448687799833815357767070168343223807170022660981941180764009400991399239885956216603555415251900582823843470313190029588753071743256712943168403062133888334998603459944087651461224621061970342094678174713453006088650701685940151299637568207614240258402808359996091195406956149954048562133294460691345381557088129105295089882980996108542364753515737916781687947074412098485358598474949393724773003539152066305027268557385408694102459142186529375206453729072434934178249970487307455658882355469943537578610421309561046038907182019652464864858104103569970164522572933827844884487454080981525077101562221948582833099004952041049225185314845241791048899961832256652452534338440563965386196794774390914054283304998740280676540240096166456252414088950931231713240143481483191067286329881814202767298502280749852977904193045573225250079916371262892610414869958964675650383896532048526649522410091909688816212502489132297721424830804149441661405522255280177104886617974583167446771398415575252734558550885414476954036083218826235776786999658322967852577537554642595713603794487075375733861307488197678843652149143452025639329515250195525757813035595871473257588458310453895754747338884225087462990004039024006048309015355034757451304972348787349726261013515778687404846336892600214404889316914353444129783151739594032482577161240953149933112023129873790941724208789357452781868612270311403831705742299744196637759209877225952836438045434480290417687143584578998588397270455334612262380084457862832133449053197855376101498311275319268147449701521365715267003432513418271711017539263998697335034504581042009245089266550162722590169842770179060935550590716013229254703506163813800817084822934012979815069851503975636012316096180126505481562358545087797507414219682803691120223730507400090461300587778576247969721814486610491817067489575054900080360031259693710695539351415560422789123516292002225058334018864253489212601360195897029121386514854541076005068810525765655339151471967510780857699793250282510753709201027513215093633680157497682482747487445032352913699419392490356377726010707985610656945987826622671289142011890838267085567009451674980402699322931624757074482828842974759048965900021060485240365005395114010150089082467492017367608440187768438918290617412030640909423182479507344599169939329731065799022504124530343530066915597081289397820207861778363383085915072343425156420592455487819657999504191030089890225860865099696536982864553721499037780547320496762697215058710912923680743245377207221044500839907173962468699733908949689925041775061941417629726974268749460038809076000013970606144312823376380928680205676446179399165373288990322228259097004104291267367866256720678116335816677596044189819502682501268534018599165268706587641535586906175385649302228765037682819173881763230580754929352296049683169187704504865640582151437492102527939857583575616735423387737857006137433084586239747123023551760065160403025728631484170036072435032376269115168536868369508084876185074419300148079939541258926135219400665316912832132906663559686091292651123542004189561588303271030472974948742775298222996888174457183303984672223528362058349966379718172180664816524152426303260214175639903777188530067284351459896337751376180210475835940722877156797388997800878408173808485562245501449434006742197273847143618285109642806370542776327464399433291359721715022472531299786290007187663784755293167931084710670483308951877351000376543327225999779405748808914903220087843741081364661247425194348817652230910140585985618228484693753175140577460711467342137931018885075426118190084720687165214610771083065445418940686774364465942720597738772035135465210427471195128892268701635610277370479383814809508439176838405250715077163968181298818122923208764243181436542220015094816317323126636397386918744991754047432549110950341871157940824269365736881408801706675178356344536866691972828430015563665122656800425981967082198819980476435754168263799936470954825263559414328662769277148518647435830391378278344132661711608067505745294527351097434390653514371548776176455864883959542570223213058325228738181791301065017301703950521432207213293271583824457962504770675310263555045622486852369318662019813238843812737488574489806166386563080135915024454335011041587407501828095646064137592364503204340825098126120741723351715044567850789502097158617827352382198547462549156250779033922287383150789520286240996398077882787728517563458044968280752322732477214527295365569885357250560552391177086423728818355671351632139440205654076154172588760354631902987744089260110157731203767461882203902599628445526840598576755744298986482383747886094364149164829169428716349172074734302407519306194186693714729305527057595830699037076580348002527364148747185014060467788803980040035012104359321448085702239758185710162300072120403355289618682694693915082065188635118727018161738426618634601779451750636400200096043467313750590964543006082184792190927539450660096819876388120731141418551937339491781012926603528617529457912396528825463429517981575853549841812379840932154546544164387346638331969599617737742113821135857016405820872356659418526193281572159804411546996248295064597341707498566676534854138673235452748708986302559854703199262780877864635144240100755214248484714384348899018477205641775885548958062199119132891274838476120349041949966234705374341392275809025112713707901726067438134250244784267493518666948982205001494313309015364829365210349795510858119645105712919129750407453535506057504011577434882798779334111601052016399246808202917692885631992774977640160644257656559553266633687390528569592499991211931231156799262809585168900284214384777997428275435173241474598288275395348987344139228540186417274914585853193107578226541894533174283016866103635725455502794134575896398238186922314787723784724318005096357708983760584705390449469902831215059877962974072641241820914491228621468127025480306125364205946704486071811689089310586206238191967930053663074626752789177133096603036330763806220027351865868811876819391340752260911828287632971346034075202463491832317050036427217002040979716229900397035158370490310001852657368621048427241791189935843699083709132736641716702098085743344473586912881609341457118717083759808535392115181033174035134090175896930279540899055707906570906790216579220158214865477151289914492559831922702271629370952120518152436327150394704898566358079794521960224226965404502814847680358033692559144378421804140407326897030825898853739789334973274240043261815577986083717446321220851392827938771199584128655609719155825035940864218843153418329183403186619030357349478258411833269831888678229657578243122280576503292712100451883043851567787471267672080635435348912654555278532043315720512496701598625531999398665685776316373897745186678857221438338144748371097219142802423798097740612812234777700723011731462979738938022831310923555759430193589572553142514653797190984525477727927668994224250242777023883551985434280528899674220271968227017753182468121309892933413856058960736409407558152825778833191286443900520305776364607481346136828767978377866793453879419507021967329470168169703189020407742081015606946360028464795085043601234106033911183286686420919042804790677348814154316341812196827996337645139021309717736543905127658767805641564158315233997672667723567054056459083841379334935815822006158090060318050422221790095999379795031869352402302677959074711529124567031781722983873767190662433898705164738962877374632894179465751353695780055052162221836465170570597163654489868466717018114914623808617006219886006284463787631953139788800107370464340686509221650621992947570017654304171065339733155472651768438190456404965591887819120052088142036094434927921308263297517103622478531261643383054170094982575849376504218575835533227841632047003586924375975892262152878926443800026867059112473041351018813343218421748465347937686277991208310788122270888659615775037771127000100642130680168757937407007923946392452353272818688900356665386380140100712072062606257827980741237437450751488565161064629712799898335733461432337290614645657400006830234643950582928336281253226772591480620800711587596914126910936355972832889664771442180867109497484222506079907167048790358918474742601514388248815816929702263086347582730335154080314481308886772677818179804670706836884328688446106338961636485795955845151214242130316582450909628536262932099717258927442773648744214424192361510538139654534217850118908348079322650993923097173204398470704908794575848027171815156317293951245197898556366387564327280896937960774643264547563936149823725091185617367121947931891759587263287140093053470595650674830588463745021768800567767666336716222669146183611929409911185240502380463578423985994311921234959103827071851790366239596913582706699555734617514963772814464158817468261752225985823121632341950523778695265041824897216204205759443656210525776556780330918883020891723186394347021249431970798695758129091164952379171081872585188080857143812105419614143289311671209105794380487192649751586742878000729947120086484879231726944867137741700094289573269387667480663040057971706395504269149301267984377996429680986929288060546995101406616653154830823489380282125522503710566265523279920930768688021933558469482030203259008809899321698680407322847050507056179787130254593122276148801122266380142656480213614814690362840741006324284729266958445178744250522440044128894164893224555481309564473069657630674480333467859642496451928349780143953652040714075593875982499780014344945419670583398466434682483461934722646132644013123332856197234393609287872749535310327705981229679373639932214636661684467692002900160003493471924379964412011875470898247044870762194903900709939439886863812981213337958430581185600311364676560430018213955084506020878363904148517830170157589540267131337207578298408995926920161418907979597586127877505018131485459483876884966695594378468622135829042174658597000969607479242794260085198422216147208269705178619131751532084493063740044574083331640839245528698799440227376793475421191516683450224470352690103802407219704168214886049293452870509382135641419134783907666744832893381802579375045254396478556629739406128868135183983756976841733454116648444824853780639196401071926153838033596053820647990303709185564146907528887302559378094693820846630461457568876193800504327847416591091649224717504172416742171940696761642795957319013765189435755318492303595339074252813282210763333292977401462459624970860598479494201929575905788485283393684870794871506973105734615493836905917591488732255844021535009280093892948893505555262500074380405896527528989165658476340247439651806167463841843335620178819503143998349546973291359553113639023670590455115457872564436179839768493097548376471540215203203837055488783469581562603821517125213781993431909862648718088915074793028862974291266878330506214816830442786076353777252416485723579891801505101151793942720819035610239975760585987755158309285896841799940944000408135158207888656177186983113535586058916457377997820731516310094982587882342143010906113010358260573474923780497998287744674318073400240761343294747984289778502117653128069270448726212020486761799473404389440052437599123363611327839247320732550212378107932488014632290452882647116155453146177837287218853231392562525357660198894911117003277559950663355621085776564330067899150004687859258159010753972354289511207628545493274691611301515347244913029199094616931440710586277571015197310034848421091373009273201319300813097873044506608145448385252729301309183542160096221315124152377454403207293294118490781738519830241784834979054402985488963884809137622700896365833091595421215170629410056988388239744733024894737277211343261096803825845807401413827532473800239956954341670238116601932492263705044404340521094133302988318602618106057086692953662912343322980006130666578539120076762024724109395974995582747071389879931246874827620552346824196984545087719281499479262217473133210571553191765836531010997601845953402668036736867967047120235558668577396797371724287795551440588088754867131870771821340327568904889807624933955925944687171575762717364380123046170745802208539939525697647523865622405025595990953872361248267254696810215031825060622395826247745436433384407791031391890676611142318263470307849710189274578515393715280122662979019087609163209468395382262728804135272732456505546673009227952905555347854617858829646074214678714195968432946061720936790188867142059958091574374144318942726215845110103191567413216391643418840349018549804496645647912726117561198481826780022438477902641931739649899688217954352543145839208321668660615448985633752194779232574998004392242909839586108327210350250478615411782230954476070375974436327886312429450225765208652638891643765827413184748962022957475876249560972294086711432682137369957625981259119098679009024163934746704897938317094809797607343706579438383788094265620690637587192475204938734767913582694262162446943337153839933425977438018737110749292890794863301778030297774472431387885139962043085217637127100050766209453072276101677947886620103754291596135656367355000096549789997121682968066253454472983082352269988253651085215743275873096052755368883775733316683653751996571140507409539478625890114998776745808438662143340495708587235366807814203754019654553086565692435718164442458462410733947008097956570404569264400488014974001296492899368278788796486180796652193580023789277050979987160765683248871188363336885119924042079010907035560492547719828581297453928419202939486017626952082198195569550057045787399617404260539831587215330391603074687065703127638310486559927130278839357516501199394458269479944680082752420427345504761940358749167536456094832211073487124321835085930922434782687248647631494054902270721088015143763541175029106497445453505907639904627853179072264938182605366638898354128067013902867851024056415372441426955557234992408877735133167631007949981100047459753249859023086018744192526306968745783830512128593526796965507585386889084950529497787967938385823098077205333902916014334184912456717460243607620514095725897519669532619992720381350984684040211924841909027988229864556097105174250907580060074773624765494634452090016360212045710501601454118287547668713431206647923689420416970623284974518156041798240425573524173151665559362967781900821180619351275724738884586334276706635325540477697971457364369474224402921428421503438350418617619839951183366392758515127379438543713710354744762038054315727375547462279135158410418215149549071165387745853764014695806773777614772310692343639981484433386228305407538366227435980462171181022124885872555489007874587346519569443986660473704576623820924845524861886068964789693616486909024679028885210493579201929509450069517344961863087638332087368874874107537191952349373405336249832318866791192224595405900030489874358580374277425621835148246497735571935797451269130953658784267906383620505416889181350740940124678792576687585569343509720478908054474449774943782443395535345845650291149096863843696510670676188058061263858959875889103145165308518839703284427370584209317695958671770253640540578718189655604428670689643949932119634792289930415959360281329562334360691821537268803260545062318047348759220235723738152308425729434244380036430726982192309080247920638941833546826703308593318201326522018151768809195636880756316136667875367550529985356519994657493984120235999901979539035118683612582814964243177137227747599382327493493022068322398972950816233644209500697089498504740605310739281977998305123804303000691345453204506760381151428256502975330130553636213125125314244372280733026721801522092439436856496885514043103571810887123997034512664601593159118689542369973415768436032887634671244263046166037835103525707619586139736324176797246814198984125930700855992838702674716890436661827303247686635575227609558511095303319261447956970739020762440844094172202136351912426654254097731645448717615095160611202199767486137441263446903786660784322035710537722466695945902999706643778486770681610592884834231660105784174091887533897663947753599088766574869092261457646901065680129339667588019578222416823735843309988580009776494553475691871344274215448756373977649736048994676092755591282217776060015273673707714232666088640691236209973702457990172761220128358090379895585998566968497607935616505588755480789682028032298972890569746751454448461506283321839565413488765399028922937785229254554004153200020541596988482919156332948703759669691935451330481540628851745373604861997294577610916569840297556022066230495604148472097285569954667622130382551853277627406118894448370441483725316527227231098560003280201991280753867655034306237581183699163212109447953830504613728685385743898226045813770740736367366106164999921683624608232789106931147855402651486290623306629889746969379817156107818417142854364468526264935172554837760659593767330704189374740984662324045573749751994960134146486051532887076185378165473065166976076237616837320719582129253163003621566955970570718987469941118301145240621833464823920698113065490590746222266227471200349857673456964173951285683268684364972254093099442648466159468294105687323465309188753447697015100223273677451137992555490116659556464371128253363291089938815849912844186694332655516516162354193128628634502148978789842129922441991023536262004251565391910718622161450862687490011229403432148844450530288190036275262097348838293835921858179362482749487468628332166567546218356248219184328810954899729297127543924200335250050578134388100376145900131476062204459723789359498722822496411094762775487619647943965784435201008075245162797377079533906829396134167594144575708319414363715726407956564917049974394484469356143217657101520789922010090482368775116487050476315951950807024111585209611430317679556355832058130602276100798629950610583340936303851261888083151778120448232620842689183310197133924179721530018478983269718614531657472775758214047425001901861470494606792601833151671546080586321548330416230387483328193295938087899329429253426717698541180151402799626967818876065011213706558172000253107120672580934197417722226056451928360304293488537169011745553982551135317894554785363594954344875396254899076292947165958745534202274176725879525880044109507574641772778895307175522829248337193649101147028811766503815990839649349765794517046587109278600755670875258704764874724599376837210704126187846386781496029673860800826176804268556341848455426861926874621053972721723995796726293218296666325872131741917383210935671055008313323181184198357856655979022900008973058654040173564614620968520490759513021155463856341358900949660554139743271054249338489159837487001817766935925175332770433085048633064924468917437843742836469889389950195801943758670284919864261155466489232646595437059846436537928176830524559605702930315395326230350728995943187760110368113826477243338762526760546632862843373977018776767567066472530198038561727400487629547332379772703436331812885409548964260386489896926256779236917738030963576400979226102218771567912619703097456712389834595044362727357245960150613912376579416618269445199124390491206336821545687747956995851773571052623954847278705459209213877902019535887863295394774491855504531384620067780816887789918672363094897469093556210476450549956947562524059242236102077313105385209128585334061036226618516076268805971644440207683222512632848528471843770390160019977451290128802556774840836569484402811234202970232408888799929411217715974924187578913979159096326431868409132693224798392666575927833389528273244303662404153387278816863182023097006520903080034745468619218200691972289333928632342730601727647317805937239024552788077833433600450730001875818149660466460762219806823839624442588958017040665789513727584219009062203382647678635252097914545535211532393108728965767866005493924851864074910815793232770451442938551708072911500831988197162433836670872064810413801007212246786325987648828990110112753361999217738588331100925601545272839116603418768997870207732711441635740143962735707920029765044896103678064027826644155329599702062247421098987916773034418993303624413108001545455167826768038860877290415585899176688968112385967360282076160077008262061665765421325503529028455602233637473162417416466658558387412052557018666589608341477523381524762169798237636794498559224226548013596046092584586803429446218093209844322024478545360722324097285446131972627063312330513839015177066701222477317076424589264429788756617311866289802401022919038137687917569724169508032307379856734927741738828955462624914335206886685881719733402082390248956904001020496637795989058796978374931358005493673848926630377162707724090060743049049376818000801810264014190600156777750367411885886963605041480282541661287219387137545146945997029938533348507483612702244598066924642662869787070126742093898955173393543909032498415908957990621631134673723716984504481578943866372942185411577639110453147460648267631919342014146861146607681321980939379217766092591704759686937743552391612700692893996463721374256081704578263073864954116352360122243919549599805894315299937709459791248293266303456712964959168622386805554698965226103178922427299719242906537983733051406972167441578534963826967019300295938780446765475941817514600818952045443083003362531006918680442815207021441499778856763483557999957733485219001627484568809584267955906764857939775234836667764029727809389776816561755413080998668680091200825943556095289501025783531115531010769725121647392270433509072195722056120094273976514180382082724002275486801153081542183894723392495818711217833907330785157887920804690552546922720755701404407398980610589353645466702720512253077760712873725356048765614736348265184821147934802485794149957982741675971586685989139212031209375574457231831610408939324870883281837370260053991088764702240609318632006542349375939727328348682089498282110607933652770442037660728613687395252853835837654429548617900564961986201514096935089842113225810219417490095239645701986627382183805636503388189774665835611119806337418910866734813491754478240997679061392349145408280564693514648904492119202450479211434290195574958918616571351801952006204207311995026342808473418774129562113355530340030504217725059879853249475761991321635092595219083573190073963371842243261978052481054546657835136763228882060994788295679489848263105745808518642028001156308478246927590761556652070254534698951387385661385610884199967334391210429365063980273483293206744195315139433917931937177618307531890165511317902297115914674627345366934261352127839231968429974965745600469532437590895837747525525282216783045653431865250889918481797646115042506788322743449393009218863802662926206749847228435441529500084158448230909778873270699040755221353693257388608959916429818293432653239949099604858132399683477050977202194144556344202664660679111656685872541268022979157880207088170068865432740923516179476663452279882120261913118255157331257659989236158836828857216272818213447657264367039661714681333202837187551679996290461812302431249306635403809251045501739630593737044311057267372423988300798397856400364456751902290183031041670898276353065753404379000407315114778858547792010345674257251841804734544402655642147679726814265065979265391206890743371380832274120926043720326806804896753017930460248772959580800869801598678968762115514672909679217319721380841323576566563372757135334236657830207657455816666786785553147558887374862057172569626678123210089914896379731419532984757644565967179231159673811239795331854001503250383720556737050016082307311026728258203651019332908220474491439187938643866840541104166923439454637383882413119282351467333311001164215396237042707307923892692497282466077114689574517131180411013848585632638802214696629205673729913127466177874780502360659547649546487187405605379829857642255867653577368698407841843872778479642138089336233470133513254117514326743748837869213694443632222100370484358859514523708830516867807552736233291516072336573771306119333166249062953838936864101598732519169870318066048932034473347028824180610844159354250401059352194109187758103651208618483001882449236877453204944141694627197852429525071855225396719652347356392728180442025658644396392957934012850176891125490182227982397309178244825506724615968222868158577778256814452643046325510553303121397536663291326555379046610369290312977902783343108029289906880201327780487067564409965499515580892916634908512891753733269751855852285806095955119020758381538153384521027142279852893038868839626888638460418822640501259102865180703035543483077718075309165570227750220043869381883035876956259172214728898918258498882066527775894320316580054599491942324762169271878921923730921057016928384578200773281256966739975545662187251527685968050287290946913345388465356324348311946354993810325042230957041444833051316969716464134908511739176841862530850193325429387040700544244697191624160569928796508631762204020972911690734943066059319559345221783774843772190776033741329010685180484864814658467578363628414027541374533550048891020679244447034629809254500696775908703126402256187041620513582830477892728919005225372162616461401642858105316644950611450152898604926408487100546958842168610200304854340853705272374731802956553426286946626182532632244388630725765956069837309696463653824174881167919228949727577950454226509898439644487727063319724792791636705296250285499066364543376331243839583786293011564677608210243963941925825696319204235026758562004443672582264822707040501859997490748067125254328470608735624524206134597944239549559447264217128655271983707258765392025629606102321763356126768664412988396676734604826486572071189635695746167354355144951134287259135715708481357725230132795847155616255525197841852837332643828414876458227934541731437560209994322410552500878861777121983792664792041255151419849249475007387666106585559277804037492405032162070444417998556635551170520999405761546084039956676140542980993666107212777178858259179889504363087003112611248564994814719296937688773830969896562003122259508907676209948200943943763767677849640876355108747674768186694256127224571819288989783750481920245544137827311640509173912253935376125536922157058804152411668781155056793847341747605861295779964283401995355935668231323319532078421961336725165148459461309225245342027830292802626922483753591466061028946101923894764134915312132039101623587158996216318549104933046116378442761512708625901850828487654576962929588497366097489287368062831803384910458367578172021440516244728311906913867099592055462401351306089270878943157379492024444116566945969392223972081536970548416614878653539916018281560839973074778504514020493920989508573631144358624077598429372075778385103462183942878906451023506126975874480995268366662496100923429769904499781180115480340035415511738390001314693357620291198977866588727275134979564309280387145240845937600863280651632369881182361051851719724577589189945263827264970301799366054779701179337236977765653697169094438081167543846907308645090391413998391187512404721573721608500440338077789690215753006224403521067801226508700919625237070783580031499728903750337353919356046684802736449283481971378907818417944162009122854796727357054301076541144405048358422805608976435745997527953483047902224634555609850243355916394401602976346139041477906345999565882586716428408369710983893494105579319477159889853522020451549255045239716672235995031607631746581007326306355736367065012527115470957844422800187973999309324266317085326567096200966145465358857080850519169428259008106148753332854089906796245760121787904920125160801780876215695402552750733372007562086118948298151726811401007318680634963317831160183312378369200064010468101516526296901282915483069930963606421260947651022135004531723928572679833032845783747953116371476423571158248041710863251013452475923275176059036787168289213024289173656190297669247898227567055806659732545579789049049611805109341349423736019047442491544166918493179363948321498040925717051772748008815136015749305912499943353683034125378596734075887437302079788036214393965506504734302068161482088249125988366259722662973615939953560605438345119412278502803376328156232738328092941809579488865084688970730635869456095571984683694429678270909525553934554635488408035859413507579942002276820739352216748750517415755485048067004067058089537329102146397838390359466139665015644875970323634699662994743318509751938895973540688411257703831628666347158776204974137391125554349285607803151993326849754369806379385699710202644765150977191315010197539790979546222636164362012886115476707062735447187314326925338436210194325887640242712237756228286593849394274315900581328622881213266944028678804217765440475566378740576882703731287665349054896986326290263170944738430605734594875382117465465028848307144499134238910438378439215509507210003400915743878519118074502608043345447399192050343136227797683712079522418936056644933272020199496001893465608689555247020119608823559018972708284346634892618077479534606197148179096702581636526415997596809407566825901785097447744870365648287845892957823643025367874790286844432267150305949392070230202726258570015911482143567439075342297473419515399903804460168856082220467140676268234426543554965361739314545742955526849843250187466010216706933650531096351246059260721173657099431783711239821635962928396455292098013009945318522042639003737014330590756912238885331395851117874382237823472252297006156926944170764567459861198542485703649346502148868792586367525438675378492785309131770684159538873029319523032428195628918587895687610444984711723866123140303824452271919316452181418772260371655854780519494476508098230966931834229927521599941450722975536625920700543182249851535125970888749443879029671834223366708638383359703966930025459397903976754068282383273430275870912310292352461919298396220805819657754049611971355268567368756944082849409011313773832749918926204516225668405861353484996045945047235733044917489966580104566103932332217445608449812826454181822244715738387954390883809365152515046594456426175539770954537108026411367950732238325533814969963328247621880381929654131703177338396744303595330715672510415117874772986697437383410155300891493657341996507677419842550340102808788684190615299441332395132158602151612831752915950956256962156283167137878361522248359414515035499266643925390566173079705950204088299685294176765126910383215434525207652661830885173159800676302398057138893929966031755599952994741255396429567382703140679622661667512625933864311014773066031629265049431698999051922611137561214690041093895186202023543881079142633853240209978072636405912521081657657773896889132328787515767588101673786810452926270740333275233562486506943796353047612448767816348610866907607599679112383356187674717199204622358671009246720939062894121342379997930162067088949831453737743139196645440485696817478052368167946803111459796404929372883460372213530896267707748675581314230690696746142992184823615162749818063596597343480425793562825849909905207026511396239007406247987620118945238501222734226611897418994428741287164963088120710670584593973204198491013492616986665102472774787700105078046101229533780936980047179230423211822729533456669417389722688761449408948965427938743485569405343668087795797470178250928793346880880585122253359643980776996790472687670300901791577257389783368196497320152476879098422971965273221445938176537429093454313625765052301500868800676371595963592929822346062012127237319759507707930632205450174500690296876141271640881188831307254057910469869625581660274896229279393779586821066639339290461803302174958729347238888979129746655265185391067316691519506877773045412022675874135893547371635355928857861115896300586767043893452786297891185252504582656440908562252634498646859578350715573647022611048959000600393886929083208797533337699872553275120043573284675789054227821206591166468373370947579953758224873426084939187356542706821130341808500706935751100665151985867892020709532442758802389937510295944377110878639177232761476913255496335118302719118131011673072951834738836800433074456075305969916025795234528589963605432206009431214956284887553252321919590028469299520508037760349444040674917249767279275314147145766055646828202119052233756780451462751395930126668743841387914222757546894450713905747048544958879876261382618046567786627886583931935775295664925577089724669569985771970531052432287069406461190654392420154660313561271906891221610950180648700517886783739581624600304867318262766011672392273355205530724542233884756945650889272486244974127838158039409248867337712726834749011997254779936561586672814939382479543215700352432433374716698885045584283707697717359683055506751601259621629656164775586842098923646162667344835615572755054706752968206092755005715098500277242911930900092649761086348757009593714411256256207513084656728896994269449511881152261354998536844877941382408279432057843403113744837966537247368602955330861743778579814353042816348631441650272037350840632857404811062049160502476785883894739390742131508665166395895849226359172867214611878373989527755210683174596812143651386533086151145672870989838395979922468019308550647948385008834514455994139248585069762046027047807854168091841233445041321152959450557034830896157718971739723546228392419418037082219184818182751519440318748187875697148206676964697179530148807109613854893592554040391800071605442091409162516409638814857883305206582543892724845857649317313199022256586268166701497567913528364349489429742624394702150123637939084133004598886253264757399231886553679272843269020443615480410965010169860571280811451375430203299432954301714912557656492932048270601283536257717734660437427550798933911363212788372838093987309113041104780494943060106082795468623151139610502608413379843511144505837153724119142695834603478548504779029865550720544259069322465468013178601371170890079635851897274223095668546489729056216202971937547552400487822739343144223086637445297204541287635221729205588489222802899968760583687888552156735133244242039036074577567651795376395721732515468804447679960847979912547253472869616575402828045279135292805767295683371196421122099931280360509679990584626227687214964387226345906384859244370908587650820522754088791590571118963316743719791923767733625362438473559178289341659632204733657051035047090444856843685804942973099480072967459274636896805421578743216087855622376376542664366810177050718975376128341817964218185337271080211349622077671079704776925658343303476062782150597296348188975430294481378734622768932163765890273080384903555010422230833737873350217625134692708535906820203214391607957116273296591778262006570506584146394553926516406102924942535427130960205934993551585581117053354046348971764839698593189155392656044650180881027672366292172059153707783682342827290448593898354006218418488305371222438299763410392214753575547597164806958485555629831267667587105791671858154831291699582779808231042362519610557420121184831511639607014519658095819110317729939188718725673359497095075890642639419308786522973005185124549236153551739795308103674993906323420305761227526984858043575333298617500717728916252878669667074262406532337814108587176220703936744882737089665822555269195588455147158482492327392402477130512315385609509053284676087884013205248775801907920468685898356718595800930076203788077484228457739759120949130905325646864360362505557739332634666931642038095830263332771751111090977743067742347549808461506346121640555418028307362488826078560676115430468693407203205357778565497947456536549272723090887571855499892615893933836926707414892955057221438111636189352127739731883093780947596089944651848584849548999592075563109275204337691656822701627216555410066043658640575278770206026016235217538204157914547096799960699364692141620986884513395358043008694534434608311358376636789474825405395189737578542840608004881544265378704746072928484535152080379896443471555670520055089986269830910867913398545384975079697211464668832570008003966168750031257036463318286667557575937396777847439722410700787619785031670536503770664966153671079379306216348005880034601995440236226243751305836497245537091697864587206169500537199975346855848647157380971728910842230105891524304845077990006385030433646155582790300159471363108588667639951646274173156052939246681644468136942432551427737776709993926130526675358590734028287963468286907033743588718229737188318387087075657939952327583632486890820475066659238802341875869949563489297199795771060338744105848125962510903709619314399805712766173385692971795073946350633415945369825407450588607256160392873631993837860015237688129333056453113554688487504784245973445466580691151219687162157781314995594455982303123706772762773589341387592272932207018348452177144187918482901822430970654052439200574082322872406154418014637035596491152607893544489016517874925982482012685883576088454874293195702810800681178173144950266165809680208620797160588380335602530424544926649121911011021473868546039310248773099011012417989241848926564592486615667478422122491807120141163244763072222281850315278986167566044136689745580418038264355961629350745506313063462096362773205752890058359499928245252677302396903993473372426517648450016860351674325510374007654209836668495641419335141512963771972308789306448609694544610987081784336075646728237028934996239549292872181361787689938276525229837199717193136117476835013451195991292545882712441184146096174831016919654237662919115150276950044739031478059978787305552446117688407526303783788520201656253533870957029216592409698447166040629410084766322834134283863418827580482431014476961621782616920946251269771495201144591783661396220066451128549396431759784473345494057101141807484138526253669908340500840038941570351893000630298080379994256649728673595761080879577246544961630280657783201424156141624012351132252940728631489583821420361628373758214861684466197262782997731657714973325033256431655652009224288136383081157810004185876672951558323208128891084381916072417686190157310762347086861555180412855639809195464785598480653611721576905907166572181974464786919407624766795625334291978283565030774778403286030673751433593817219006141673811434393291881945825338981845049928385186366673258407961020743746224340534274689877609256170103177842582969224454644666108520650133821251706368748159757873886604496941030762955945438454277338421003468375636945339273399935256065008531710895626541246980536023651231459379728297992550212717491205846498973950319196207337148922538612119085563072757100805355227761538205519251114976692407864469691542048844163228418079034032415972296160789508239115581148973688621683525665221603936519233156581654368723768534538754699784399767526493872544677819312784928738590077353860040560618124411428659564007641148016682397271463764163948695837568691814130250133126123569314728787587837697915332198042499057906413363485817314892176066777460200299549588480422665767680510462110205771677009114467016747405567117874906572362205402328617015497662530352183219140728431787660139865094846701721205919859953878493046224659651595951127094593658712871305048914683999801009527548145429937994658814901113903843875540822119744028117400217183500102750906300311648066260931249887987257938780085491900763691770055878125342042840036293715809020058018915047933698143118226010415931593137591920683952832361565140662416482342578826243880657360131268656382924806016274998547455419536981431151628313787313800531788947750405972647095363154456385248381450421654694525036254958016324136977489767524941606727758993816628020444069591962317726090719917634710890360474131279559318267314620246897613844344735383595285677644008803350319518916859603236224820853353437040343345107194505134663303328458491818142301324770605437845789629163393448507358393513373601009947012313144636495955373612870542616224974129468600625173036549922534935811697040042961834534964625972674066797811335476211815656748125334196033025897903497974738605712005149948029710493321331368768151852344806045861910917457288619221815400181700420860732959175421158565850141674815851372052201657715156309012926684518414337150614944795951238913372608583296851667434774507923953310618828970491558794815449020151167901864941587214608732869912258748338342718580790494040262940720017668961851306673874097894406903099602744757287340650510693706099125955961775521605977578352814788054208335090073795362265415410720633134668986174967357342368578505880905113777521360721160065606254160765719082056012637203208354064578733123436756796049017897134345259566018148770766694315970782047642362808958221653356051226083745385733818819503004945865919773985533066332325098495324214450513005993350004964178283250747191386237520847823106965571982324734582938822820925660033976414412022067202033000555819675454199136465235873049953229119788079246489780924467394333321595367452414783421995804951935293939368803793521450214877435395725915585529690751208551004844295107143143116459309289246374558317975350921575650706375870348391685865147301867474938598883340511362179080453990736140945329753259082725914783403049538099867454281905941615605549506201061387360302390526937973213286397526095066323148132697456613832834992505405465817443508463013574610400888010679972878972622448603980548138400056532191719530039804439057877325502156177605285091790004838127168654476897719210409645923676846381983188781854638793097467451003920027979963470480884334553445034628239684643725162905060162306521105549337971602962386375909300140241714083218897642920185961350034553408729284940108566846726609254803838507759597787039744803130799536537489968561906987343832825097750134154352774557352897068517909440872783447321919557593865643818936016928964876829519518205222305257652551414729956626923436848008073513541300631959266142862171958590766685817608481650346921720154774928835975500604033375267913274656330259632295127875400535255699264957655922583090584657109453246151600636970814027673570710738472579662174424224172289509095195144328030964466808019522811343863937513142062939049408777927652008802420709012263758074232083666845008004691728609393756971385900933292081382165100776746154762686839651759488539025508890410541832426187937994146501017229415594352280876037881049687526995494773748275898896835411744015522702203863225116971131632728784727374632186194918324537850427573526052746770615136722168759471525148966303678499927101635100284433087272368312142960738831618801476780213411080634591988756084618052758497417805186787761324432867544840852595560337015533818087302583006661709515286299598326712725186611299568375722761384740962831456709633620718674769612696768707533194995480136505640780380705599649088514062210423959725813107846845346849301899388632884924203892538430243571902984632744937160989452627381245430283355156165136479515658778950189262622737552391413707141741205906865028934291693768512659135103098104155913025972859601965176685332174771256135460527851753198445934849045061233904484874845494995735032361666786685701411655333030777813739847897590206990539551482295532216491893958509660866739272454616990803822589267943330679903909375591955649515015230221681210462762000154649259319889303312042652991775666901684329513498040097214641814146810543200823810421363549223244083658385996240815807585574927918943609181708368210792633031488322283561325078967688844166922605926237469011886306782781189354421448773319094114280161074132227497162879992655942118352746249855371287736002736758693544785369637698630909389832438061493800112902213304079900312196902873494862546177297877283083437064121208602999559359574291377613543611203816976534794789591083569562438093382514103020191956971326615457536074699747627289165245644183844218505971883305462270946163770453760608748691751150576831176075306480213706088494401207418950869394470765532230720717524947265314619532660453394395678890152733808736882413093161845055848559239032281999288438141766734272403775573401416628924374501509709991025168154959867127418238063209297371799709589767585621444177392490335671944376344788597824668609221395672972223151109045890784048291125672877222919143858353097942932149547639968092235649810013921141883215604398458639532332941560728056214773480922224379960071998626353611283926266242465420098156892122077379537259577990385084698071308725325573666246725596459075728510079384246728302638025071439262580232600340012275828464021975613977680080615287233004813337342352388211476542669230022102305450482489365443238561476956060439660521362478696480189149274093403188800696494582352735014036865982333614433017503113243909106733720414879642125599351838984859133867235684047765930897019276989460435288152678082136291118376500588343206785003589204595715715170761915644032901601394730070321919655661476605242210749096055055909599464133995337152482398205879378589529755582072949409814319765607728561267461791914762384678248602661802544096484628544330117428104741038812170064660564724872748249446342581115508627391881876647063400294538467716670707681478479801901957763158089309495089481069677820495555806998058304319968233194098144247797010535227483501507876596856074262597216583070808494512207541047929634149452577200195417895089893338771514860086729899609223671687283651036328630075498812545018279270248890742141462999415716806634143162099927998909603747742582763920704875727295786375192849750916481043911401367658769320610251850214083554125576858541134090642781765858656364029129726861911114609996476486224028260284782262479359980203756057364009656691717932810906746580815499737393801301026849188203025358304271876976643121729719114724861917007946963152181932464268755955881531199460015551425644840103758433101776770808500055221771861626132367465429032177853324676344738814530935486083194660817286330960808120923031321727492879892414845804296311392268383281673811035299596576930211507629326146847047893164256296523490268340235752928799973234866722343265434727374933983304633859457534109623328193640260408872603190936596573175327416049561728314629520477627133095444746114193519364175585486716466941217687192923227738916008306347265446830990072988540960485823017583991385205951205002595677262768936299539863463899590710991748890031743133096912642485970416794544733164892452208126849041282671909525704429592416418349857592993545855217475615421339162626971245385219107957065836410550093871383722903758653738476587715632440575794788598877034714480544409570299167848901573615519706094177323553333202207108170146139494979320692135852896245752952361637325309850420164393896092572333337894001203168460532078066221163806387737660085984969179734864822885067247371779688310966217398519723645785609036509272412797002143084013292733255276333657799663328077773414647960206758722051781972213327840482206304134759342607732684520050615682020527045687150094606647573303569558033511816172882791365141463044693521656654208700948252417330827436860014965740878397153958119627243288149199811251455085611872389937037930022145097731357714109566857840876038161722924892139343479859534082538039205953402894935176688368881620342426334483085032492214128460112192018380104576669041795481065106762596744149400020905422085040807218123156339487567789622331758138210513455972035142029795166688495205945343029879124953999763604738976234217038171865881818906990843258326994464620022647554567502559939587513357011007364409736109507591690987129994447492929848430803882557349163857486501133422025517289618150566751421292203714505877990615627652367571909038383773063844180587146508499980535032599473247045363795950794834692660047918146811345627251528821285302196902092951978445989049220272026181689684800244576527227803203842008056665661856722843640581741636757391773573976304666874800600707687971617518248390932921898102057726719177756278005096602933921035208974344786864690149326126654741047045343137673212559967554847336082565823623770879441403170896144484285303078865660517309776841395872747862918235900828560939851825936159942985820906327474448928596438619438724265699906920057012202233767863711000885739436961249618769425819080307320378363663229855724722922716365976555481428508607925361254969268559028612530552138372801900537863934997668177791953497926210265378734816922888313730260793629477114703730804084565378626326931738497920746017851092688184696129231862709421830614440736935523493566844313931485179605645849770899322421643194072853720812858164028011011205945037031760392139392176860073056273279958329112347140953710404511718277414241362777354455523852496085208637066320907558813097734493561478350753010482285093232561756283173096710958790283318559048986661560213250946623654377046575040404806385783645458309410416211093692159341603428915248438137816635224369412185653174884661033276045282044447400533233585218834400193191143646899688699643698240167029868186123680619527796184457594070824277429371959811967808665469445522456959900567116614618364695559358454076966606459413745651181873084843304787856778057113503314655202569517819924087618424374974703862742894836925779373261643668326987439873571566208448483040194672066057741984740759810783862458035487402802735238571779604567678801078941786226734160346665381935012782528396809839808670285571124321133200096012107034987649893606241506537884325853091574761962982793876505728024359109215704159409757313766400488563463769867788757447383190036033577563975136871901423470065388236660342200863151186819673216972855538408532787124227783990005273333857056448473684384516284292220878908616527662939321129599491046233103617198815493188675066241972370320781458401598925522950908720287543812484394643033964926209961351832300311749516575288541325801025936965298122623957757622542687321760840199669227883864893331203265798714560331728211774892873013385519249114675535978117457806786908855242143443220041854623713603542125084590013948250749599538262437164250039289859936925903644701122492417060281778653202469517784514242604796683694142169451232605145308937482011102372191839765939560788400758797191830771605012061394844638128795140946447220605512455107291374727386095808870188945837157873946346914594932584134996016979314086353765374582656168803380894037449551232968239445335379562904024658271162097786824454970649826593713644687077130198152120311865608661951237983299515190410162718132777779418293637654546316050008434209648864858453256535805267231216820619497270397207796823768685423741283811577445599856548876054392993687326838682186140223072439152095315462293737957057861839196433344165444345361568024110628452996262299404039080878997291037458030454554331497248371080649371787973041200700138216478064666214429924237857561295867247350861379000330967597758622188264284798238479648374201757167850201532630094109538440068087958784589936596828219420632833547988450566783570736647142847813783965848144533956535457994881505501527375895799131099426851614362088947325984587496656040802945403987844251523351743743886053503578914018801407760862795169358918257631641855383525083991724125857846172882759334046269458233704983335333148563910018078600934894967555823267756570624600706067682903989544962589463046112095733709456964010187180211390117907251389036332538353066894206467144914644980160682910911039079487492150255340420456494281048784754873035641123108996734446674444885641290922307452626351114159239161248819481371542633778766033191384583587759004466070580070544732782162553180779616138229199173856226064662894610820598938751723767980972874974342550207910525363560685869777968773990725917135609088023196094849612970950722914770886990583562749985086651108585019526864064882736139890900964646067725985536496809853003975477363594972417830295465249191730356865724267205094814633625090726093127133071428819335157934437945370751947165476314881897388460092945172618439236357967719150464069957866097647292313720735655243520629661898080703239298188334157713733867111226703947151096021233460200063938180899589880701343915775923096201062071184910955663834424298633511531246320033540978425150088922415422242844639469675609666200284974836765965481672584313516159228785555688154985707215486489190969940107619238674143105852454836034742658172876963983285752878508934047570923638206752509598798692473183858247447077111656519304557963876518848991062543779123020558536146995451083836046666708326717535882980113534584276803673661080035096626900917826179773423731489133456255200994259086973939791577809726677608062445058660070405735030162144551011704029132750318177412635231198470905336684685769085725984089199936159569383590230419100873000457923481797627837883235074620401195433788398485675265156434926456905061750818649954434251588224472679030058981870104669851998621171035997228025991389384900703487212429271312138071150241595075960140832317368915012930437053552556758428262044940449976236384651547444084032889121332896678912170780449800349530326584865882757442096842236152551244704989694573975840540104399726791413016637066755117828679655541671158316043133861044743760922700790990760867313096577543463677645380210367263975122247226553340068641821511950409429540976233525610239490928941822039828834279057842669472469810803541377962778492166043113313518730478969999167311141448514663633122717228340357427030456253407974254139495603501831324994191980800554865264256380060046496520568871282297470803913527334943308018967784282351077696433784405673176385863373214732115532827987390646908158499890532407072946265837172994524764034033807922641929991386483424056689695577521036918556736089390443736172630203258212183876354499179703182239201796797497330376060150028276642146029774778481817145230638220539526873575390886506805141182438892686776312424113985380128123510322122457446303946641346765364280886646956691749858961423061403739184178036737780319570298708368891728484421810682160148898845937224040112917002241878517531609852995545598484548671831567686948287503050621126422326411916406541836441716361599913237006183948493532587466672026231851936991052345039521729407130216538394144537458170064097668471238752860902052605189511046823251897263031828027960734992538080798489951958602698198017519323665987840099490913012468821898946932638259670016104254996429505314065598471266781088897920127267300823004216794313091828772105716668412252068733187907580304422123027383793030424064955908789389276280279249286778853973547814562600520191401488517932301262455152746474292734670998799367964934719775843599132825312996582068187733993165925513232677527014031309907737166495592654561191969005682242948252321236991043405815910419378791296913508479144154736367177980710451241367234683806004854584100618291037763295493036963971358241790931927809045478834103631794127138072124377676802510759729860041560429189965052274037549445093441356837373314816209367313682343641753071190844936707767225639090409621538863779071478413727323611713322551652213080341666953839779672769647958833416744236596734336249252689591691747599230153649514219533968032375956370113571393025543516669891184348611795443314251083413242362882589614924412129286597161905627077323486742170873159412839920218460816156989966134715100003615243182141483687684854159427627018227562420712139954111953829342116739493160498965310752664275463122359778712249981616510705650388026098475541233648424118122226475867495172786235924333850658787363251513942256851379761595455890561579473175827675254819983058177065047880507423139343053657708483836968373143349523590074187494257709297996523468424820419501300829491141065819881254064394773692246459089339120928108137843956270301944379751040970212052266780864439770393293044654526723298812857142026190123029886745862055417016671292134283928170918511729542586912953801329568873289367065035035402686746464350012332549668910502905413973213072573480274397857793786579153804468306240713905304559736165571843002607409360648218782454962219291889112964996434734260043019864067944778377184616739614882897562890397118400655389739766488576660701126187808742890586752233645988262941448167870771499428919702449563110363141688791942186869908215807607405618730449070912829179711904220535132920782401147919056940914516579527832787402220025967190061659778752788417532402931012062502175315741242670565026740569648073953178956531003582979954994568461523732358073448467609458181660508090504245701290272306113664580572774430754229522769138819945453099686349874947131798728410088669426911467395976628676781306616330477576895074281058511280117755291998010817019473405765861272806803785568856721377158419333207744475077418715290407126802826172533825157173876170062134489390278461488934758102824728889937814482440180294476825125307485407057458360225579544245316003007028913059882202856883632323275661250452406315547388243023354499307449453625830109737805542613753471447356404931320872004576454197834744150908109455615378263013422945107229286445700868642702828580690560039421818928319847990013158596893173419952167121639178942139126162792547333947067892088988273095801407540428598461496157560924058531463435059678280940747946409551685608378576245442546097565906459540484041006513937204983898615833097246925983598030505060513959193689310534204941931368723094501295257719783264066386725050583887518045663291682458592336227877784803877476199502499992263137509007882020295370433259284118396532643069909349445046454408103981043518785684898219315945873320784084866728975572114305364966014512482834781745911655222611656606892099935330642418922827005484154139523842852901806602443444846998577363300636693557097315681754093835887479362442374578810502203479736450191165136355608739297459992460933626639365542022626934408970419676584383838336707557856251512771203106694229785402050710287275045003268464244019481184655457020452590767974254994184284056200547835594785674720405775303966827077861403561639617865710272970625227014473090861698115064780881672868500398427957455034265569660371232288173881405579168269115181343944056038000432942359439705413262940926084699069779985326814488389247275797567834242540166246431808109138279771583561980105373566997338557496065099687935508321309099020250234869860252421154043213926908241325630007947896872741549807929243998364868120888107626790880195628777072558143564363282084915441874633628401465201797562511184973922284985843511386037639240220928680295571137629704037447237038411724603807490330016340877148593016913100193422656486442580368411988404021661100610044950989628658988652763979845463444183345661418716613706880132700690627689871157052019912654009760803844850311458384345578703005982840765137326004256999640266867798079483319629788241471712666110090796292984949028566880986094389339139898638011009935600692048668279119849090320302772626303739662666065133096974426342497336738092352968818370670115735716161234715809719217905457962469713971062740495992453617154268797679626293987828776162558758943790117172285685105495865957070115145098678876472425288530773855235392240700480710809816921925575920509659190836075499588116114865229745636725919909619330882682590228639414876430970381552336990375908074352654389232829905887009340660468321615039027101310775816719736171095318464458329668026627110059612786115272186454828941900653431307706797094845853238686991031657571507137647338855445219979770795455893751730563868312588174661372519752294668721996266289967080732685382487741633733359033153973142863007873188853429212138845042266024135137667288864892250973548352629306831399972337231852110419474794841356049448756317220292764713520529761186392168540588415668966022158973163619294873475403746106850419701346379052987910053789106573169866720892619433101304688922243008992628545226509909880393932893640319251075011221231529942383015829388924744453306060373904540807053266266759286871385984914253089426175208096293776816254077794705958118338620060171920031688656587345601802790353766281633497877547975971427160203061056524907081827350532467389001860506149068854284333332294998149106129970703538682304644746866015679372928623217440663691833970819993880128077351936118704643940097132726834677417360289817046802448311357149311898423283611273771341300401114781026864234112868778881306709411464703002853339432294514531614835307245084138356883351499333747683228026445206478351578987873636236961750515743209821438604956791687370352387250518012317338821901882943871026358745234602875800083715013474467978759217196579209479209502462475028041187562320563410651135250493220867577262940118843069006127537687015371442499138382529627668730947941328205777570742507513444673163165676810595283209768223578175608427060290677238396869905354083683434902559816541686039226738939059910893491733369851784713224858376724520811359689542653681308970948095447712529260272105994996201203712982258954555562057938388377248562133784778149317235204565956683804772647093078535153715822194457896308838420495155116749270228079375884157391780930971335084310801073825309310970271743758095080710437677049462898606935825506599449441876733617811229157108923761678331469038191197834605926349225528779670761898862610107000507403133256583759926785753277918576829113353627604380834643831616008442608650366341889057542154880079158675716649794064892624794139873476912971338968000979016489541776222590572624111042872418091428440588430068610175351881781780786008682434675173592376799531385039175527245706517679317117307825689777331440995130253992553409267413444811680781161685103650851515926917200274526998985690665306514798884724841420117156622601303836594873686616414517505544081820558638554323557140783239946929656862345693091171623660100851288992913412743209539110918688754974311135755367255253917584603398030027297143748191616146993156125936438898254356930354778506429508940477015334049360450570574397502199468752530662419474447081856121108799663121080573574230952663919627765601867718580297115034985004138927539498067279005747945418493871509663684814147924758604790781995422191263883772066626686737950539808348265927842091397803779972689025044127823572587874162650368284274716751564357387260410901904355722667998273776834387412047922420385422036341505516836177539165370146055223385218098212116550262047433935404699952374603808988643238923892409245725560805992351436285134538526097635139079693195397076263063481503992443695335584445443715611515277912956504039011968487350750854240260333960509694464350574588971460417407851087022151157695376729279665138913095643786561414446671779781231188682419292358627649699052176261859769166392645407982709541810537681908006969020715533861503120796187764547884702650545325116541581640329523619441244629405343788291146424590812487745911075709010780035357603083139256578239822955616840647432534704648918094235955754874877828798258453890947395640611706992665671448941666201813449766480241312354291663057693494860990703405005686673963856535010861050888603682840490131452442810748514387850902791282909197450255210926000238016016844333222699066221683908800741031301555497492570376686566484392586954495098778324150237882006199461624414047536797824603372655590027974752903456946495251499883271935890291018480202945358652711150062345285816196765167791873946298016565251956083139941602469018840211194671689267631101162200683203564199829881183691996934961133722826773000238215834775708643377778347862033094994798906796236067842365057644742255575293592622983326953892409923014468311395394753909319446107511214018536569120396540446855708501330071576831500698920935022305414853100245372931851453553492184284491347952922902032023837987915665845480370339872176693334341415185504196016049066931873143786481880573717144621816604279456697868131728857369235601990926198433388797778385400058870494254527772633271970696321513242416183564047705434826270281261349052273493968974194065511298102041738772728085192241077809310678485842615005900000412105506299873689602247234062910084598002199692048342615377997669787290514697853222978206438077031953615619062073931496526795560915514327291879191437921524583246891232458753657264876172277313218197313591664116561835418985670015435051926082620358651208234639374290765297941734763042433474991039523729792143746088948737910401219058572240495292232663140327493037801710893654701093317131170033739208591498509794139033054785478767119515732461577046737935429144619989756038736784559970682433369891762599484101615071346776795313961340614163936373067808427431391281567566305459183682008642457511693291362912752307043617718960035617559415214760173700752222792271681172837819119965664680767432735747283965442966181299233742134204988392866536886129846064731670868391393535887377337153413275244204302696069518386116589501363140539291326191975921297259213112212065393179586274317272107413419294422954140109565828174520957057265157900110106151167065626123087501341607552712964161305399606046913191125521646379735111508437670270245929896185104380413441598628170002096405722112695597745865081844653464265912230671861782526735651232028388393688961798096913635058282774120208380689350570174754828507205635460849341353489690429068580571813652876968929449493424406661038994348771234965065332303927618110520885945886595151158619019357001918199267488751716730696454152065281887722729029924041805008138093789343846814160897359085185268084748640600364379060160381094177546379583208529468979399851371994400377586250777860301154718720346340551045325756640610018347469519750846000748964655116368032204940980259111638902434456483619048734066454935410046113117201176403134771740927086234809302726605453722407941051750065477316579554759459686271014557080181479346909888060829857611373944918644335056506425502406177291543847981093152460358412366000208976391399179393224827868457528137786116603643237937445195648216553361277260115339631152395398168472972667892552305989985068650616312643637212697108986551117456600927910065932948828268530666978768046863353986954504127852325011267415899167364690459461874754061483344915530100636799417408139999610563619047274075950187127058401470168263289403586338030456303476905625295238379727294848156631214051772628238068151567398297513549292373658290708361255237623758094382018759024455167593283218183466498836405640961578292685718697125501000973648371983913857442369246926450086504365646928031117120019637569238242796732835970643319506288710747570728541999776978810108619770696765947657928726545889999090621902456433101294051797976362942925204395587998728993968918545219483419656430096041667788904450649856130943310875640161070755367365272426688645034038408865972947508153944489606549496467658960168166358407949517673322228180837384238846305958391642787562278401785551225514549977576540290538514895993154679337198820568095999344594609808851633025730903017199465743388823960269614022968353792297217778127688071095181640199874075239222925871366628493310917615621174760771923371611289091494844733713521271320443306577822841397705037693344288963727506570358193913671535779326637893996928135290570461003894490675445489584896490800841723938183512278867572370118499588071462493074514372982469849191204229660277045696189481805174863067883445751077582009906292961541939999437223084431359173030500467207382235143612946764318637627868200935383019794022207076255170325960386367093186598178106409009896582739166589989280574183414387628026260514378313118227675041873772304232879595039156689733025962545866269554217000837280142353660536598549265084517716323594857785472910067142245026048474336403142441942401652697455590233981978532724774987553265073073047290329889401008583257539963328392712222437054439628537646023711233668137848864959797930285746919664154128174071585143550798724526120186122775852126383296427619257339059077565832886322521065597897869977986027259775277387381086202440634766439502195665318791291239619872352200626135342235017597945167375567344195819431208716618349152900485236950440791907136267527245255991361194525354972532341005688684902714177971885348833535003940626447281342612064115196985023451376178147850665905616656891342647431841350298006478682150940850052750616545614334246878320147464165336056547860984607496261511726501776518246694201018904717968106527144194374010385906207546511889212070372827402023766372158892488950442707912899974651176109878942011529785295193111054359854749207922093610774892881045628972699666582048722296320990887254812135212015049696405770707899151944647054673085626384918536182102254820380573332385155664263619987681857176714256904701784946360647182829877689143632974925059633520481994266208974581005170581395635878372285505976719217866609692750034284662543299780983881732023647450147327941185373001945020313540298911580513834641674904953436975538124765724963560683730443110246236236014856798620741146771018394679779220873122225276829468718791593588620185950464982781240291059999205528722699561521525857279311511347748812872194543321839037916564541852606692055453816097076730233359065276311559054134843402680882136222521546462219369474517409027215214406030900535709464372950878880801163241860544085008992988927249859089663036764950133126430649385513142671186143416933957922308570613121945396837485352848416219519770120219314042995782697874502463571545318974216491131758754438856329009895002054099195898716617228272671597175715736044219707515340220343942261884787967880380822906533359816755400266696942791193117990467700685765048172841818498877609209528812197356738364740239468535471583733019013508185951424240446007274115247514960112618425386073829086834367119229543164700763650719879286337393707837340327075512107846109131586165816234074405079428748821057778767383878348696780374550745712916382025616346783451339000789507424811911775902479180038584103355781812628488313197050420023286329928234954108256618054007083978323714827757176816229248128597994655549834793471416174096319588835831905442661453572043951340772782678793770920187844839775770469302345882565656297756894792936345217250667781018031803039311054336737711906669163528831854737584992687008730052609355826136007990142730179225875186566857092374521011049265749791375550694352948441264594117580395920403067200295699606650342583277469824909544082248408203685295281727505173704391213438603579624566969460048046101609630926876678892145641732242052012313452532427717695017701419082500428191330303729010784554406078955451644103436427422072233023472386236210499500409416515740181055040756741570885492999689503283985905882543880813810896665694481342854131458542500978148227773975232374948202907068541053113691306343570877568349011411783778146419416542196400967698269891038965650851023988607308029061193575484860002891578526257501156288786316544109801047060027958469984652484574680535331387889353558183281332600603674862839656989906866088875602358984784725162300799000542231961727794211068029481591405725406057769395466237773575976957221805632351641021555359622127042330659198315071795828498252689861841400100456059209502177296464408131263328437506199574947030590026109791572529180010908610768395706032488647321651177233956270848572759638224081707083940891400623031919952370115373691287777725532698790629214254448636373392482528497890620169683232384345095562622918852159757498736907289579790521625503066066771886173988231320589370930778062114731777674412305316568579226294613678953416717248362198578742067663952206745826630627291842486946934751338597841279019213266678675358451527107903302187468667322792729253884932831240643238140144955405559395607523342344229139672850062183479476199544623529962798595887360589181592323074235834952973996209345284692901942667008832726906455237472147343035036423105425392999369574992941603482827129653864755673029304757202912407624676258011606349093743913959649656270697694234187286189921114067023645285747383381028734031046048473126714982618231100344833391073492173371088491385332657171434804054361565195858514478525237882094476535539982084305496726089017352928303209398307612417855525075084281166450692648885037920409034176059733049109131294909786108662072213397343424933887628231303636410879644757674434112289544073953730371752476421584315666384247450753207768724384542447954652430908777554719588941568723570068848534903740265633096152427665311380166496235666254412804439576349319551106106499385943773622077001046235423956507467484377148461683359063341021811342742523671641496056870346815364906329506207712718314213089425056823902271475411513432980413866166634048964625662248228978040941441993904810947800329800754067889478205852652887261345448226359315737026463050134153991499988153175837624050336697307341752556083035160328434324641372090504828048795733389372246224168758153742393706216109447984842663589604467922140962231249762317983100061619799488529532567624791818992192173299061651044530698688113476198793516983538626366133747113186567544208755403117243058580517687467918984164803266660388674716373149963959222147367650193249898862580463920862779065138193376857370038382325365650326625376211942915902484269716477992135189281113241377541161101756737197725000510910255620658172808030928091242588040641367326817561904910733163951125111706552208099946382342221289681871400276663379426328856883120079774925281801985825368678303738574250114763999126100376322511286335060731450107193285858067373503060640020993482501056985470756395066383946717501944368728040176099336806884031406808498409594937591566902025641249204128298038199279471338827834867035467657553890499705935099883252043079169806153659699484206273326825744926916373362074161847131423460631943585587763573783765474697073470019142662923087446968058879483642675422107160291697113948844382695390101811895841412101958065951624703611444113347625039763760614403871059035405187972395852733399797117584011366914018341225701558774099958660161938698763625202303174805550159906714677074377541066710011149266812350078087931812618098667368367657830669320771049552736917826889634022578386998787811392088663007319044314889164394426647656223840069561785431083437553981552303991865113392958224624371414157254157151589568609353659030036723165632630025360440341579943759938933230514758516876784801984410919459341914856222020232116962415596369146903670348430887048415836943697137571757353229626514873540740326989902932507058852826637186560094218295572570203590208928680713150541775258455110842940823304899980300172642480540807241240238319145183304459982186708072600566814850318956303278461892561631384321079279368854988712479768540289135025236506083697267083092802741452860372033338466007990273844746877084963790491650120541019317880938567506951213980859467381818760349547553850921971337923354806018934872773586694699898972688477214450238088022848509893876871982210537027913015745640384011629908566861360692504489752681636594145883313135197403291268667133530533075148403015445053049323355435371665142737874094117708368283329763445347418003776885531503153159369745904124822034265433431935902599615870424841973889712281058561094486039233768817850284052390336271885378104612929173206732432533972118030654421418641484262438378951279125525863492505940033824414624018906416782231438542003139676202141947519323829863892882052345254090364098114734293705700759408215890145607979730666074144672834638493011984198141663941488502597387266526261794166966937078371569240681861116292889534350348015308613890933339009715834413622211117257741306416499528194831590037457593024894260725107949784997061056261421074398172498948646257890442554565865736214579316629523251651949390139730937527174418818766495264981321591597971137417038191765300531714900359531359268162812634863622085109962928500808280622341438405663413502477320793482715392864819870537658594483204832132686926270864107519343381768913839868616495938312004784968099175263644738551167854922728763249674935318013209074018509653494364142448505627036327728807286310874132874792408339943106024336253200201859398607786609547980865920279218426019779760664590346059568178276569843637332032287131497117967392124185734467980688075653955399342793237224921044938398317654982948711933835776680153585444672121432114050046919720393802077397512007032783936707955614797439140838209621212527529021015043019820550071727889716894067361191803063025767104208668096285994271197478886662552950788301217685487531584845819267154285410143900593024561067391084772175813549020161183803726129832457710556580647361749345083252522311925029439309120944273242995513878806726159367154504605114953397222365205357131116484597437484185378423442189108990120281169813378635846305576036075439216940802201846183416366851630029624168766143214011461995207527168778143547375061862144405969615162020758339699207996648864092634794881276972081074345672619178568164002202963360105940752348335902064283284465425159753950774658321584877130560010518585603390260505857926611909679535849571685603047312276903128837359866825256367151593176379699121799519370660750966583042182710174148162836480472435927838134839006638109661254402125647638751182398129124704319128085839506578443396476890643303703380687730283286411507588405980537470554889069489190835048345104307450369471894190908175619703070810750461302761104848434480687947037308106762006567976125781592903713920261075613145373621132908331212791044740704734117070960418096926816585805104019060404013571498239932735798358852069535703686371222286517591471119421020922048539424825423054648279101716778253567791783306748971673107718963257020856674399847677217522374232272503171035116168331540203557408729912419229158363254561208873509227285604334179374999568318588197593678044339396125244722754328817805307625995361114052973058640112194762472092629053326068918431028640435537868595772010971121206177051150737380032323143600327634019342952715286742684040574147057885786626441145458476499412338707688385968230794711222459939063963688622215235298750959371286443878653212472197260684368646618648864233198047084450149228942473289129033097628712177878924225797377471571884020746872651893470405389858273005848299260344673866390942894690595676898116956782597045729946689066799492713998264053168590553516489874092742433013510671896818061803735618682511427902614536747742438490451860052144305605425267329768832918061288954294530799584363330399054042602972190851216133276373488573850385351650243989792834617016207190756663182376242266674584309374383028911895162727163573852630578430651260126044112672981508352770828571702799921614998418194975564615596097378183020650100575650022473610095748134762711639368274728718323699065495039863622599468616743151991540421197094757665661589022538689707926781438974435297812856662790070001186564608951317898845932556586752810291139808028757097981946424812843917306469081362585915331995597963875902563973378530463673738254164632326342562143096727082667307056299672797446837393259440264694056486876626784424969666253800610233050247762139999274326293538022407588672670651857306846759329815481537305702832502622754078752058698716217474084036761288133703802873091970248298701154976261247433758908536610275842333269705743849745050232565619326841268286715782814902498239306767679941205661288048328368321064865159280938547186016200235603213470104684233381747468749259678718248190978188812945198024773822224129175814540374866862035483419023238953296219390907867075626052537844644254157187699956613822653622491595569490849001615397051411160115535203494331467252435973676556839719350081402197375912019822896509906168200108533613738165819312371953016060321237372402740455152425819593471714671776619959073762298632769872808715284916320121119972204640220856878799129105500260046493799424753159075121014953760243860456015175503787246986210146662001652176949794491554446391969464944493912666489100625966248643273911425306392761662879330780146717058295423316960416123670279209127560004280797700316261808851853644522259093732834152691848276070282475007872899778397078402461084518201604110310749757332603028383479342341182791318484035700284360967768725258936551967796936976710657615192611382765384715551939051322852090289927401712072354884371089908584179990671023916660256561131817830081152041906172418138158484866465303248962143166915014680898914295760095340299791566379962671038320383645036661621858587064036637727724171951197736826580449267601258643212277123316112660290348815529342294813746485701973391368078321974369481466125943078540757395188791337936326468055825347658522350728412234200975154366653766591613572517603408898483293314724802701001156602759040943564007617756936981762181507449122682101631015656305145855548837817440381951698341644905791305802818713137493490717463322704846789848827017782833563441949172360239612265025396693348277846396257442556812415761608266492764339382055691163071235205539253684504560485676371790821472139485802824944875061945623135782460785706941374700084512833134325265629287479670405994344521552557557394198360738103926276198639083304137115607105753644767733079781642124899936836177109865554097184492434576089276487125029314670079159217805677156215123277135168931862927322157420495500145605183909757797783823050496566262347113280293453785880938754480204364037963491216687261135528774077741419655134799639218362760706282785245671030749927949918452384735522573026361847209173171428050145087920430492053214100543436709016614165587426299796617348587727128764561902000941090959775191173812270213054664814701234362866617803436685969888401793727819953646327592010364200821345230676178882795622816628595336210133543470152604142019814899129318938661398419999085298625632860496176579366168967271703823936583135584759845032786985823223959908876348015615654079787590284618888056904215360970345049809275273278029477849468772666960214269537224905999088535582045870349844860538858762041440088613831200426600698882085758656117838244245422237383296756741179226748471265264873986152749094222594282194963367831694293620961626900055038823504338519809578543747455035521244487363046067752857957876793199294572737262891571772416286832810235740754758306062060328332997096932935234183198412753934250502986422799700330141746928884161462625815275776568519078492930235952530440268558445693158164969753862732108963263433339549824891395166773676887473046528681558632839778251674578885084325274973388975472242943544268922821988302186345615020266185507644845962705404372562232781034100799956139519456657525949054493779931051774020505971076211807953340370327510673389722786567490873130692036535740982132384102833810466357848883944621374787315008428593054613039904860524119188829812793246517363456389034927556018275204786197688558088220963177819751212784449154923732880576193199550470966980679934742016322243907618719054534556545068640582720404362699681530595981528834673407575998992041215851932692868248354527559099578493095853952487121468090218795461057291811938248977599571605473899765436439304102964338177364805565721158620908379939113423912075533802434513522813437011082014253842742899890007495575806827882723477121124750166891240410631365190611973707564175263501412684549413568399294666650508016702069673770652618344540248770640419710497405563105955103559458253970851272708977722861571969423621745570963899075123432960600724832755589878658956490581350123992665425142942519318719426100952772176252627660325196107480604850919903605683543771337450818341122526801076921553857508120209872126964622292690386561649796167123165324626453458444856721533299184779687318065724728596604455931085178565327155770578708850637001359960374826292695870962964965514526847133024152080858470093606716085988803663463556826034693260764563680361136855676623778815244891825645013262185043525616841904197607499355739601446249713375114573448393961668260259838203007340716606210869007918930645189842039386582830526579239409380339575613370502467831226763278334270693366782031011758555663612509223042888898167098330290524997010306383043417626712709962698332647434215880083553538870074567132091311409152370662821709342220304068769438035221270397792230377834963098963708916362450745838165141039904642119318430996076743386282395400028299196895300071361699734817132885544356884397118088332885046072216328250494903886578931862437796929284099984467213516348503996844377548196679166344270429975060185222150493458854390624728750784451650441944981840502756892316843435365320912021473166030738532840959749285100094882382951952433169067105662317607120113584238630807566543981178828889302266977844896239167682316514258795820345715443633094636409247580470608839901089276819548182523529051810110758255280317997808854175065692940430311898740365407339408982379392214625373998479545649308995392842406960066141093548708484090019756999932559703451576368906893251666821857744852009187040651238636368539589397123088749414434972484413517736415137734344211501352860152376536212510063445624785410611529608948141659022300898811640695509843895756370466894908527695493291562018180148115767546633158171194938404982848577142257279655097241251103807189866230586640662239795512467738176602070843642041078712669325978647340822449405035454019808937956889340057813627583491474580146539905452490091602025791231708932844366425411170482910157986715818220881598089465512068697853829613155054054242630749967736955367948575800562899688333911910789909930448147023829531319959811363138422834714424060351297279004750612633374532430507957318733206173774086631144947187440310245490270553647792982488791756193517608645603245535638933344342317404691282593021500290449287160872462930549805477954105899607164510365907392343366856097790067849762023708248824066646020799912744913303025270207405830261966912916313029692734371621528065876152336776168675637013691113349382101777189915327596329823102574190211967920465448932507426827747338120945567783819324775525696131393073678915649727692272674478866824186192255056960364378141265808153051300769184478116948923879835875011787020595554441631300402749818667651301795199236672025746897554857545244846428056560422828705404846482816641931833564595448211724815273151407257787788770716659897514675651403471416280133832801349728374963597279540846304670623774115625416497392445108549712468526940539414399414770521091307934687248203411296670252180240555317444363642850906868557834498959419835398783888121985318766618606182299195790593286157855302966773378530897651265566022689709934362254130220832241553528144621396550134169709953836550177926103238524503717071963229813351103013466213310829590780693205916399173254540048426862912678572236719867210541041449531782343172155054416206131705480180425982738495932483596670022419072698301014271196876727620621369625826244276898848999711799192395944425934399547174622072708643699396748627773354112460192236778945612313988938191880511976765348374908985179072797983942742743148318335973053179584579127579306674328054937904465644216214019480820887950924956881679024620565549571705595787726248867861743896000217737865234343637218168402182353197824578740112451598164163785835566938494991618630564599415656510870408229166166624978843516043629463072544281144817317389849363094494837734033612469736836277671531255545708928006691715068622081899460966748075354087968410721644401632427267539075319791017409224122326961343490612806983025306874043076485774707535855873152932471863830639193617581015836477653092998992814579924936570002413792495959173276641503943664697509028749511809806217423088598932342051803121148967025856911072640684615816994015198389481572390552533974633504247993953723738707430003752418194665971689044302635320613227984237181227701471379497223003990099255204657177382130906479778025482140837431541829626239000468997533457508331347972204915478816031552712165003605562765190815447302804584570006918267366259769016135945396064721603773964601953597625664098427559858092471931255330985256653066324163594235997693299173783656029678900921047582489520990424809669362262364128046018701327794667520015678316564547188996600790341180806383494064715535307170557231831854620405552603442658061565420187675223426903106250024218102188945839270818334344857286023821027205115867131561719681469433112038191111622917468156299609141699629117067786332870148520414209845376820302775502036151650424079449794640563425592775327711266280562613345692250351249535295193006667259465769080020063309249712638350169386638420081190962862327832822166022598953491150726618658470450405316889370760193860127357190420397543135749129010174454584018468340027222263470244804697662519483580935719742910210096560194313333290037610469416228105614793851991743469978214039806207539086738802421346116923756572122161770397815948358773952111606068497469299549480259966231609517682934866045434628292323999139691269576614296728957866514322863078744024557999620941311436014977093406495227166316311708875587376989253671594989804395281565832631071129469582164099960377757930878026002248760849953914007337958401744402405965269512487204007023386185980507088367363937873204008130237919307835816041787656548263766884873870261903310864946140946224032021650144585701136846630744823184807782186736363241588487975551408056761463184540961662398842078326860932119990116112850105671783258802057014316292947815150224059550993158391581876136182834908266493486679579919065921237673832639410071392801264683074336815553464572096452559136567485734517327220974872208618297450768512953118496355061361640884766251623887138040714691093916841203098919955709821214245248758388381210620569448149595226098599777215726240399646827198723898607012507189458494390480912084046286223518733111110881575982544734776217910160939856261731775060650216029562088592732466375380434718390583595588484336058787785439559361850318523073860735007573993315913488555497821793104003005584302308976991556647351881383492482750650295038695678126968443753885494101117026305251098254492558083748096076549891704746005443490226553279527322919067792154982356136956378213214392754861517723254033706741009361598875774562681403566412378269808153963568724331104389117012721205667224168050905789493567702888231571802685311045478697355616306311072804016168730752860371773432946718512892844306411390411566976286687885795912605245733835337821526028085657609879542179228150233637199367434927690486229594603867652928205623412396522367238201805009354836662070944775410921209964805925695691563278621190549553976383100499733495964488242201270291212873318175318943408098097068681957619441766789049116194308914791644538491528643386368163541876671226563398153904405087271156721317501492778040759142696775526821360869792894777311661213805463749743538952550143363611626509500589481326467834251285137547706098293534430256563503322994190175621232194365423812329871155259453415731857869970635443952785864449995200297326850347286142483124949000092539698500247938609645003488658128949227117628859925134670723968588507028701949480628629858063592128260013349078010756266508265650398380798763652544485321484560742587683627422215889946772400495579635318380844873524777483460333688499821868982257650558457915900034737049731069522151257370258908384674616822296878089613602509135605120141556946108020616749929125065294825164574641160707367633880206077159589597022162287771003089198744353719184772149487467071742608240142032907353753840378736011916546284385278490856515206017728451866768330651940173402558844214318545133078583867364656546540823563562454130715254213058749113234303193714555317647496152698277717140072432249707158963982580049826934337326116473045801057833263424901122515855054748596447601971699250549888210674908231134867194579177341414979438195778589163882789117922934923065316171234954732004302872984398468910355037685906984646206048808973746781148152635800028462126648283639165171631954338625504231470390485436874956402942129270885690860969377372335158908396331533258066152698861194796248754349483998061213715005132208812816613811443180042612897689994012866162578023862052778608675270273258169677695801051073727372900544484795295092289365794546523058757874135293361677039647097003165646341000486797107049486612068554342696078870688705387874239907055879712228248783826419713507144975285235492662246720331000377331790801531732470661142455280199187324334328784991482901687739105542625775934347661379867282948499737233877984215377536047820984490622378225509196398061541765312855596980986889194942054832630218752140393724346998135634899953348900692143256913849366771639805934748173271864261955086051269558579312543921581127067105515364353445823693146280519979434424869549639720527799317813964155700585915501895106828649235518035631220905209894323634587672268896461511950947420903355978962456782785536014714429150029394663951754309252416463925649938706141398167435681114864226776941116174405316813557491574899759488294432836328261053710176262375894650915222576181250982174935793470636405088550613513354221368598734183194364173660893744693993046496629172740588860047969395128866917868349633351335890833373033756099689859444385249142199957560598234652505814482342456518519138817464322850691120207555853166547376369551783705599148782587523594301048198823415576283772613590268348657309252367956534555119275544361812049535123889745269215285686591592935343252164939915788726606521521778142332904507049412820883125584783883655057254042163124649256022400080298929075235962418840382008510227019501357382356138641987786723860298147849569099607430276966320096040692276257415284724889548817174414977972482828093642003102189146123261013357872176181012016002889526242223260910849781211452285224304498850612058850293897888920646431958932988127412978210839107122203750248991038499087673170291722066349728963212269690832342925885926332216325260377250065397387767373129050595103834229841393788639102292919067505978652395532188441065759243692324443409689674693522386575693432932797160537411152497544431846853552825644582662215422386886213585924380219212748470384242152002276233096154819014592459839472240948283874009121910738673772577706258055663881054871223066401952978520062379453876618523326323950513604090700989107599379708398592152667743111111000425787900377930882446519295553255876663511087719518160371578492179990337135327001294537672280437456799907119612094362966745461959855572462798699174442739282744432062014134512267735252751249403342021142788783745040937939631764319208599354938033318904045748694518282075421719425128301532639909203111276911458520071267551132475851651286461381254509450241963869651504020392523936879963629277181967696993649381157806993443090599393096497270791603129700179023839438384363633723028148377014218604241672861949685558977604639382386541848586680357132199706266588651824409597600840896147125703666224526202292946640547274624470330903318409365823885009286610212130650894089199440289892331887653483250552434026052018502759685362222297016639037096897729113379714031014061872430210518534590115303442656824212386035401874615253324175044220829204630453774995543425139474150313433875469861842481853478304589703263454710735825809192692824024328218846807395155162533371838679795833301964195421465402312965710716617362609889443156510383869576783229049870656975173592125573890668103025564684227881305628847489032765418521911721692715474375302852097832141670270689619154359325200395739962247385920632582836791165318399359382864717076357899390514408318275917153493236436733344958662381973650377627598787751722110166976824027192761253244994500539792513636445580272422075100291247133179930767034925074360099287942058985329581487681215090699099584448348145141206080068020442885671821809616948530815367362136297086834448500443560515566950686843725315288350358888722653824835204582505747790847600323767396795971012791998612024750573026603593252224684098583629178991822818193545445292826545276701363742014787755015588004918165115185590363789816110575225333960840848198040170265309067640261823334879086314727674528295912939684519310983121869565351513507363241724343858084755144744594731121273096962601759252656084813213170331444180823764467356055632433367245692832882157860550670462868667720146981395137962009656649233686641619150047174573619100078297568283416136781504982857874385193506432176497551462076287796966683541948076537394102709043303427153349032134988657192666409362875633803044161403975143190238217450457345688255699903836743465695734644650794574197257757687242061052980272155390991555683827127193485506887845643682285437148794972046699806121665284680878640770008837509621859488913299342824541369398935494914381924784744379372284577685139252699190167360462779783930763025996796589679721260325600292655305660489768146107829978187928839314563115457694439780742056550038679886510690769473268784717701256897026362361273416115103667121683421888679510033834850388580584473402161259161277881054255754469836700379893704282714724626202651917350802757231843908692271559873474022112075745086375994083387165937810314144662756247421070152248012619645162317959205909243921117149048611102024631987742817971427658231624509210414621386341561962008065869845462218285012770011146332683300476339283138951965072409047970955731746491311270964381559968326335002702954666109069968340928500884715892269553102590444335615697445845948086363149230942461142612422510517537909684571893729105076361120663098996997120773817952600910321184365548143995050776001577397868501576199044403385011202864502664611904933409711053539413301384601027949436353641606684577005373891781689045590399737469338990196421993543057945602070391262253006305326068241650368276958301809095454678200817449157432117362333465123637432465665558930344405565107773413221350548225812062279961238887401345854232703198110352129650088566012095290840205094326469252387813671557242728948135043769007489684460811703889842414957130502524622935325233222915743549882488545145353788381295493661245677605326345756518628635170626581359930220444024869137682333847670253371608586605319151059139838566555287066978002805311780850711325085534957886478324023455184761249242838486174830842050642352702891605454420024162735615811233364539998867572534648529353096675481681146520759836455885319749796645786986114514079573107844237214845810123090190448304409316954090468106261394165812000294327463881373053322914171993696632708975737691238217357518724435465214166962698853480662774483655306133141391878966428494768255745796137067755775243376742533789828821135094947730463779859626454883856136265173665628176978369484338321185220735676219148205082816639607445828768821523350788863945069382832166745566749844956052827834212446631763066453793680395577819338884712599506039904491940836217116561386719282415213730277793792149706385956575573401159981332336932955533889099685420695771520722992819191874482303344990456206039509265230272346460463312964328345442465929731940007317692627703314346827245335974070139095489898017708522390464485167367829234766828604688551362951739702962105743752289035027198836479062355497175887784942556383199156707185304222523714220588193132301805917408411360030624179676939558233697742952770871051443952860367902744323339263667226207227088793664481206088527322430726159548848672987299349589759268376772712953999389544987597066064930280221704424176817858169457920201751250599387668237600602841669857351486930075251080627489487739788596009532314282627873170072671689529824611826267155643512329799920742149895311518078391177822366458582922869886527595378908897662719234385708491667966111461656140584535783868620282180682495973321094085743157059240775146882569923348810267750431504882225583556440271005468871480881528778909668109048403700133302155323119177892405854649950465905431035094456376907815346601422933173055561985283464464246436482068020576828247907002865418660556235833130646206217182502499235705136594817339306579421980915901455631391171532628161574116181444619661352088420523394692921116156871691344706129824735155078993945588375782084981900751687367577928370867359569333420594110852761123921148976844178157910838548131622151850986047477642098505192102137217988807648132389269942801973518944993425416177514563800884249205336901135176657448221886464042812451564560802409020280935795438875163668776209542004304277981014218645991793451044776370579256944791218021604784164789549432626040700106977998319804403069779485872575682127020575241793611239763234612579439631321026124837772070338214732232451715867283930742290574268580797594020999702180539269030403275127852466894218818492166473173891597377172854236920717486595026670124305163901178605952952252598002273687304436673800368467656614526736588223311008722815504200791917701217164043841704470635259270369524676078052229603199900112795688489074622000897427732908493542327863974737803289779205163522738260775218868351153789614973681545762089699209492059114496628961786960997469597083433026690823156246425362399300241634997692669768053043455728509302005565345897723668975623401396658832820696760978358357908795791207377531977805046762722188959560925410120609677269353585396415471001400516940099686424716949297894589937722899718747059799228100658888538564051127425157196539741644427883205895981666526712927116644080641700234903075441891416694367431623346988749479671278906754659126469299668591626503990998613551811530123474801330110870339182993923329295304761221081806267930234194850507536863663842823097418015088269186982830263749965864564548069170616858325931660237798445355237386407078733207827630911571378378702453210903353345256480090873925649967109962232146772495555040235332901679236915923869793333841836438892607818753635633003668868190414033509517106397375188720171614407860113781780174437279121882508147779873994997889224793998353231983694323018932605094048786804173170101886277472550489163269905163499636415531848870550224667737442007393070769550827964356982292432692297456397980495233648973422872942645844656543758060325033279639773772772933861689002177854717881377678468215818795133828185721777462277197923725965867422678406774747842431505847227115839098740953568457377635729868698241841637241616154171931862272571968044326418657245627007956758582914430916207864502043557510518661455397551835913113436305406981520016956253059651642860663976801569671742960343700049768828944832048424175679106574592003956440381443662122955154440121978071581293922349197868601619343888308320080225568076193441961409353929845832378319387336959066479431690557425704538834044592938051615993164310433319741531209944099845036525556014747808349498831057093826176476005254577691128534140184300015282541130033742306022091261308264378849115751764274429028747687620016442870306669375907190844085296384152937735589092725296065910389739231277939410691897447894895740336167805277922437257417691649998442519777467494911834566196238987719939055450793431369371459596705407883502626658693381163505492847769845298349150940531445052123289651116178547276991383003051911758713162025014378309189384372600485783085233901596388858624900873670331707717322413394903606006257120650061445875065176423226817282674819538638397288185538936942639478007638565392464588027495651419552488272071814642199810802550917728660744322070472485722325682930526752305319732923802037761118225393373201117886820447041449603865648204396004598160681551918920012322425490707987772529015844965574483758082018120550064716819595746756549455030760807462337041528669896107381012541398969493609850810000173669342667718904057346240185345436448929559627057493161922635012589636051434385564075312869342228632011292129850984427531227465524834702758710079753243413385824599728118676858731614155566506090483625275886940809228005146453179357561965778128084589429065269744152214337712218657245742104587240542331589219406697604699924829084803233888829062954137232908359398833073864921666174012828306710581836313405782212255477284514787186702898099669154836145986608166557846002870660680304378504969945746009498949119553888709622746846934116788200369886575972670221481554503843127266022725527563344496003684864871036264554863424403753299421943507778510457498159832749843597875766783550447205037407443427874769754770384612444021447079739713762284464763562786130045316746866233112595770588549298642295641114625095339485708634126281671611888737950932431313569699943182626841683502314801000533143799063602305310945002121355393390759549176606772775978605097337490617799431471648952021822245625840723650322712496421554363510984318189286080873460277542892789707772740761322986532555588676008609488217441419340768289580095265002549214732050289845283122127488853514792097879409604636625107666456131387093642911210946175281012269486361905640896807292934415800738248120909506815677215104658133830114742201986726665155361227286655469801440345157061347409748335282964426676544174289097053101920653308315273489647182867015132310780932893088524452606281616354339544277754284842849294413703256961038046561680971497627441426632911544831485472956659147943829316344825668050782960393922145871396562988566334773966889119707766348734246031999044878955701926257357816979418697657781063571362948404034988895432111500399255882529956681518172862760372042242972314191051290544220782993519209916392734242322955239852411332408035856775313105132085251970910140741158751238643838898802867757479687738970300086493705938248197473493932312862417583542672481680488436061432521102703922886696448454263867772191784273697973505179662175627711157971765683834619266548823843539880657148020010155113603981697038811042143965539220994588343213154715912185318565221513221349699123550406109358138278026576719265941022339599898905953238943686080014330398920803637233669301667517310589569622275464680753369383994866017223199547947532128140854642330076909583720684668065840567376785724221601206844341485265374048898805738912026300624035053430151282358846404351162408931696675749341097008176796891466570083418766655476241485562139840371688652133365779488251759887681486689477789093747570687548830842203575308816610874978470402838249875604185816457662809118812915968357321681639283551508767269762001179572916131527292431172343277569336722852651956738809555030466178435726550960472264709520917462307558982065047216801401739452674847685460395777320462573520481645233766396183193580918783520258801085558104967314291696183691859004931382636775655076601135353133164678161833228935206250749041439932782058104550546733132451176887970455857779412704251898347734859164636159952765988136092748090154324293242265142927345932774060523277602813176308629059948128495702216845862324490184352385714634231599343353016127578670685525921716329887061580143237685982321176386539754093483306193683745536997526556669525761066505850956769809598007228957911143874044287001642608285948329844245382033715661435812803746181875149301429984006255747467873587074665594475927839238661964693337556663049253317467485630873467784657601406295420158938631851447263069946852076480398387386080032037125710905944393480288050685995553205994937452654085485472732490541528606176373451629829780737607126292301942250795369874514483802647578714493737940352032624142999923072255588401144555652188044304250345130743850996373991991362581554180865336007964496943869429198105545720215411358869129129826441558282875421572356140697310125970333730845140221591482399125602279337088075822327565167635942730118615667427749032154651894402342801093146788036202258709854955399152871896566805878431339885615571779933736617349915198304536017285790108714335208568375971408527891448497829709571779970455524416924030537178454420274429208368339635330469609102707534863696626366459909106451638893324114961974119346676337317603954643912816434606598688146338819596394260840870478720276528660675511722883746548237199712142810803652979311159635261581131525315300115810798860311205800984127950114693873270224832059762781158858330973922891128811362103422126635977731548156915073325383756451281414350660986242185907902812309151074545256810038152850821013093671686760114919616343825098102128503819104764960085540914830135759373033202876727731516798189833719403845458055633898105914768448885960141047537160422360406223022859476627380827866236916295641185470791119397247809199498365907404652689618359090143327774947352626790188670078289106586816973825456645450388008931884091377724563478253122081501357656976530659035339918647541666501887377569887211645966341555106000093767225160353428801236156672585810528529202756519503806621009830609597954047007394707794631950363317438113173075621613358780550769333400642539107527268955217885205184411251609826785520001609330578202475776408430932517117957877793105889966458049001594538321078676735148782540601788428206992384876089455106171694479451309416818374562451634665995494324305706540844456569007580101204856140881807312992918692233151417740876121586102211311026666964173131744421851692699690287984653254993369818189963583621359634133961070606873719178532508839978241515237553217734528973896649585461746034988528173512555288634351141545719233121613940636317696832928333219777947634236363296816902227749533065217056037051128440593880983505232508502768541415982000271319165347646539992676015302865067476902126452959624683420443384488750013000964150321172299399836656821597112479500893661431714171140684591621379243305226682332314366833032712128536613294013303977777506038717925801666691022801822170167305812906994380796321928583675020301210270717212450028705473236091941872848735859099172386746489195030405479471914137436052731974003520032767171583513225513653471741945454574116349333650711816347203178538627309317550184331331726828036420012159437231755144438230639526829789659907374622788101412962538929860990692725523510355552162623976176774295109521632604796093097727904854774908894398989679390644690882181954868921405246578714813199711897340880147409282208499309978151596023801230034892425378585838779450583342030747988460385164016257734485256252564511590936060364743278118878025154739572724722268796442741775195332653370346028188978949592161934769012641451012467208884564092002294774422083902638588862075445582755096169439348802932937916272755476834135709269068218725790685245145376963941329750238320294320719962415926372548295157971325321260242939453084875014901112371117125177867384157155382617105086384870157498945424585278866420499085742247703645731548667752988985394455170103993356857566905805933468274302082817972154662940568008073842040869085301972822101919105344842637702470877189718587909606154363235986542976931397156208138570981510494848717219541128568708580770532472206570696941912593079349129407159397614444259335639207822978895228267166826281256904248721008932084417878990122840142817615675525103641024385183039418569540150315788881172290312257496570063472894210162937235133315139432238911913948616926329704638942953156057521628844508983775759178492870804715136471362693017979137897825405122483412569204508767220359458125085178225695617266779935409623665644968347003884675760514967884399469245038322384719299609014394315847775123780163028043347558686319875337225334572965425150164531252075184681603274814021195732012721878244221934783829355752690964637116129534608473751938254168804662638900976126006945023144042900596528279131348909966282364882617318761162858120321978173365553240627996832796761790372685091709269126341436719834408582954925632829761859582332761447887388189549862935739965774193024893560775992217856565787246823814983942647255388588037322705743498865647661128530208635393555045704590337043474310762684108826141972577370152985070898205712856164783841681615990272281167678175586259799044429776879249207154189751215614498411885685906450332489027666096843221210001442104351582775653980225810465659013529984407832571342696570458135780858210919786392743183141650561237050804630693917578891944653949322045243956856349505267736511434152547893892290327284595947746078676429729218991116588377584909083682323302671028216853854547647759757837977192773081903257440619101246062379758994563076187468263752260051038718813139515416838663175023076731559033776483282281496510424166462552200370445244207533867664688135769866174075079674032373978329031326004701270067827400165894057861152557650357416379962973769208335423297326740936575180547578162886361408737233215115983502603690453267125238180778005245282482913238992114706358937262065512558542877924553355332904696355030895360012298680224423068017180651565293327241680934078303911834653420714457937187833391223341743789903621613612558162048336372550574814896568757798381886907410264509008380188089051853253448816851186834063292476665372591101072563019747681315059016737102455487867724720719647479739646143291093768677992379752935366699153516678011588667503563625530771926711646894695347042796192233587784401569033683741871385201557813908748026063279722206081309556565171091435597994776517479368663420346784237591442605808611321770700188901140763015683979193645468610375278430109630093304223396438019509172418465569291157332314539595618270724877744232528689679966933078409677025566083975374318375594767412121207168770915525214741627903258107293031337796919855459145375005333330161384943784412545004522458717219280291146210450278643758958978289650186220886721521235941922759057107307180579249593403838481132099286646979350237146192390320499910877394388869004792349153181186536611561165042023061491384170807662011360089171290382393581698997935900128973788263579830026351175006402177126193600092985632480806549106273442798660516138862361880241375342216132749234536225286243641790826914374630039223097780663424174756036288485996932513049970526063339381078027908323086494280555726642838754206397434080152801814650872170638613100838084056129498021723668032320182488014919549852037903204462736170726921022268989364650360635428702546344100987035258124919029818053449254321023331166625098288114969270674717657466201985701394126583177676824630968793160622448919801763591675511891477214395285742700866992265628408094054086969122890171765991932370015231171666036690844173640367844830969222142852974067377292484352683895481213759732562186860953050504680711078063160164645109758766295076192957770072909782231409653793345319061493829044143025089127114456720732471411895121271563355861626230214789542236591044231936271259113260706023928271233807572300338511226466664185939218997629791514522166970997858424669625551917591885013857895024549011884365628599837842821040695813497969616755741845952421046385833876789767216075264029916621650661701774178805875503918388038820273926970880844979804375999456347184421189161853302669357057267042038838300184519997804626639437786950372908439419011635481022768936357650727177175704028430196911599936537590874025444967729678855993841342174836948303705233067223825897915219383586477859833130076260917802495176436863360450901652368945045578658755780491166113575877510010385730014998185003028720548853988294548235347375462948243456064817785878064363444548104435933822889981800590777451288327490113062956374225431938703251797803045372290690387754267688424803124364272921940895474266151422449375262381329942960785972148725954305426419935363528078852516991170913485175061922905699360273575461070675829535730722479063783171082669773157368273968753967118650161511322142211169862976016201755303916123354565776534005500337301628117790799286865420632867986833520685034911463904939312364093282186326784830870469429155193070747059459666398567218295609853131695028606444900523125576212353785455063527644274658012602765848865215824164205973019181130850048476529862549389711413006410958698702948494855317704680036123827538353972029271286993853548606955352386513636831267712574189729303583551189588281804754194684907711506563963827452099818912480237011604707444953865514200082518524204207688469792126652719078471319618012584711434174581953201299657122985161351400606676517027004354011194465338012224413153532270171223677109460111891123316483909704486034859575949562602923802535713328954501229543205647397359501033979424143300176261796645368765704657338874141757854204933152654120891103427579995838418111833190528252490295266343165500558836112406518249609816823055459520099168303403022943526767606224381562434205945074805148852312315439655420833398029120468644198308308371277941639567315238571832134060859759749169850953877904827588926951067774109602001043481057548377551644759522003686460164907281408153473916059578236540817430769354213301667902709637067393562793280568715092263079858535643358697866603191236570000207193182036859694672482096410632627459711947632600212801340052061399275070626823748593336439917317913943887001178980733923744070878768930705971597959691919705129447466851183927332192740545782488149435406808522431254180656161211789417398546199146625265210296503551088411165416726934847233469380689189977625433719924244504945682734621974135371178385569102773158870353424514306365436878091313292871374429087681188295109845177579593577074086922418455107404234590793355545455911086762303870430232922496691367849704319156771273845275925119332645924704436975863903741113608940205099645067903138705240289690216339578241847083126351248072516400826087150048117378775250058664334658626270186498027788286767017158379409928537287934256835225385352653287850882839277881040537609207624035657864770622590853308784799720916492346195455530063658286665274353119312213505438284859995333046620122711289064476756178880985433950233819202081674022471274693508688385319197933823265881506992167816496711604002500936537699063166315445128886515425618077726286485344331773081260892499056924780422184119596089969317332083007506377314100145800219698637927654439479708618939743312530426170884180823264805109709178608754598263677846403997892038588086290244081407588430062683752329926196243430171771717341108778332383629010326350850836159655559943649505406415783469279396665917145206047425438679393125254175519686709116768815201798982994923505725378913231120778224137084808277611496177174229263908810279395846652112262238723004662935614823666632586537648297750612320189917820815272548956955623292345014571012409356908739300642056219402689809075746542718689378268061243303682444592857256828155446526053187963739824870250889888223306462338416542135473977124803276187264169252416670873972897399249949305240606240950350718291023520572304664400686411827508805742120849124085093800162115290420878024815652818178918084579751641169589788955224547704903759866489392858878100775255496429241212364039905418249369833213348917391229312975387724356655760390756873465072408798832854505361677701696407044007189278621336008856452977551796925956274229051173696836427877326040633944850843040090866988484678074330792903240824569195290771151772377145826309334816018861444218869071753185608366565406363723796650970450943524591947688895009380301414020744470883606209767218793520653261395077610965629338854489541184965956457706787467332779195105761923474381310781380047437477354703428037959890598021201422916451158016699323493469730273093556412576472495381397186596512679616459079493668754771373072515946864713915574213791837080410453717964575176543159207817228101951047802636706542430306210087585247873453394002087835808048659255018047180054823670062651243093117544074705054634859669892949015905937041524396441404198327437633392782990494058826925914680249273183681316397264034325231897731541746497608191473253308819586773843906384709444041626083669000089558077743071450418514955970210233464672098179786787348573152224266293548630190734878529824640164076328506929335225371534013232842628431967069088879428341137248432873432718894372644591113138143503287937608304796397147061202076614971991554820001641348583796571502258526947563144097328246135804655884230753364873002664558681070917226818083984433878682722767930708681099295720806956519897753571566871348667286902465777034647400410861363358029063677434070495559349232463960510781699975692235307978668206123964316340470764050782030437587422849404138610471039453193480514135626832188438170020173403717817190196052803242262217470660243823075184676200500379856331756129146052725408136241471100349358042931261533443153449980451452732345003727934424712972374677619217806168749821663898992034183992505438949130787563069074151895052746486157303694824542355545287565843715420874248458464006153970818413340012814792497463375744860747982411598259534285626879260493305456515369135599838986127329804426430468462808215354465056042203189234437590240605987391724721290508738756204213717023909088573304537490982856356701402783655585576503510222025869854304720083303932126112890612491274795585661222029121091546172383304843384743645174638559924619082272027653901247227188477228772078347939728011703245438445204559725278273335956592648463554178290527757068642623622195716358165401232609842209365957426370241077462808730794082860685771087349452777792027897602357794725634544228010404902549045731770962890660910274133342061378442292700811361824442677072040817691400055072540497602409871437485082921749735406472112030551096230899464061878964823348510091888153548814854295672989542202870664795712984361605212216033507639319198231659725876871502349877781070605456430274811936278417459641763886154787638576415854457267069380266187796624138544958876898920624698698517125369290287759036148141899604330545308674790492911897507804246645460393884572963003398372034023352109629699988923133576619085793048400860456595248166266945644722673335244249117551445076648343472437360010564437430475357295492464895111465402293009686170727651021330871534018989336758599074878881148159225609031998198852979234018228878236076516382896685172484067246736467291819522844837110125926847677771259810369179460554468282389279685649579771734230985191157103810777121191256468722635292270314915133874212744905109279302966603227206918421711731270843499681236818277018058108373849709739397466535098762472449970907629197386223367098212972416938377444752948039445989242976962493338700302527149538340693229129121960390519051111821048010580350100916031574711211702594825986241057808599668020453382518820478024437663156286388695491855291930132368020395955979464149291347399787533945777390222228577053332225251382529273550066007133864216531151177697112617787363076669889771397488050221544012201159442202618925763797334226978446565210025867240552983337103442018172509291444776398018514604168874251732681441152227613996427003086603958457235764576342343050316169230474978714696784285529407481284121903150229792251826060563756756896281179445941227741697667746502959118081453072922767516906068290842209542571385996269170721045419281734954199879700668727419980493005836300961864619917601463272146857569100354189053792617352423394066747828577043114844219581921827192558771482728741604888288158177699819316444606642732988555042244633707738316467085179202349906995875870009858359490649205138029724610899615491261655684820871872194615956517977939395610303437071423693799403897954289948109741916172064322513606882611842071800380358577032658115361430255342041652211932411292914744963790325191386660147029218192912443378393177440849565973887853662155391312043172002604247433523715068815848755648789334375281852250680046388378508569556708138272554352732740502784984397647009500201289425381551424844313437751011354415036106823749677214651795717025672413745081433931891353010320369611656472897398176638646898926298780370914750088569412717732619558197579209444112898684236401938591012624625266911388346737212912499878622426210210542860422691330713942007982528662901991542478361507805255293811105356555454578704987772412850808422932618123306182894924794408698313612878599968851936794789934594203835007774794001814024053950662457522578037947328008725795507584437528206008600646985840697598468351821933382786300523544456287736014787413329589762355128442077461808240276365578439369115010980833043357501428550798589741849653793544693862988038894859384162750450063452785693353855900482262300654348999419095899633296381168707355871920321785016848759796908868848872871904190292010801658511939934332146385759560724502771667412807568662901403869140108376821587218032412380106632996471077719022846829681464859371354021388748604866105227560340722018545001113239501808548969939689025132495711579127580258655955282146234170589878602234468075210712308276206142540554163643005614010827281410636650351266772711628981179696628320041443320950045543394424410003631747178692377790507494873173485445646631398992930293336183886707994236969028431513017802758776966337363756918208836250550663730115317149177902770941105279631076945994523378588005065176198603259151411398583062479695214065949220369169176867885498722765604783817439056327276310195712639164000396496031762555857461474830944538760915193300187880065597091592941777639277545810948589187313237671470233815766544360103195332639839811958138546056442216608895689401774012230808536130007309482779468946152545640297970121322534511529271376192505587804501028846255427132781086615982793555806389235821807809859545198200057171335752747311966260237564521970321034625894160024370347544730285843175478227314649115712935242410753118776543988138741158210846900043512699344459939833932579057879313434533761168624449667973547428912339344734993013505061208320683834991759860153807315229535096203495123897894708886372184140017309785386782174463583661558143312635371454202707997611428547319116805160350585673076586040418318015762555592883803050425250769312049656743861654214169336993072942867259839779657088732219044879653714776087747851629555024989805027636103740805453645478157614544230991265803859887618492180882927456767499393282771239541808918442744773627547002326320971836331749636004054247383033461393108802751250943763986078478160811781368064619320685585281980558879992262546408643288366998058895555870641755766724045645748505384313111125629723393041778402383570776563764229894920650090249906052918394971854235551211210284207252191215478949459878532116233857076773305204231955908930869714378083026814359975461355159284758023619155934069166093845667097048023890123258257023106159366410066680858763009208724178734348530901762584686513162463658893127816591705868910864418298878610260211187096363352724344626700052540536965818083331763737293841276254943317603693564233417604627805309701973484227537162622547158539077793224437066937927191264765701788064876796479126390003317095819326500390852180549287746730491978592459618596881512780363543749326523663374271938789759193590344652502688217943785314713814161957897694436523266576471063857121658596093414790974342460318051940154312286224648841453931054489336357832553430458904422250847458263510933489311522841352505896083476898705284319135012458063968666114474057432898907482483360076626639698141875259104738472970570766248839127180986772277783450324380052866439778178572499591440615334755138139384440312744461687364362843583121464113510140622313357367964412668079609425810144445987869443125286691759899951618581769956407219042390701827638854686844034420110209923611117438903352515480575714784951292143793390527187896662491692074900140795861231917665246447131327513330496452498540916062254244364677260847802890778601974613690323061178707825271823953208921560622760355200711199171664118332874695563840957833148550769005819988643788913134025548182667963208306095900575727976522146294313035692311471096728604850194304498235185725876026757784177849713043620162742304265822059534497186362008509772520783594883280496939578234211068471417090480550560929189067283001203100973332151310934574220645919374723885577642676530677570782861506522060044999981783293214534665964377657558724056893867271042997787371659522989809205070441567885243811190218179951080720488952828009442702385706455760446389140373772023418213473467675793712777779565893249942930932893267011184420337242956409681795402915434346282030255887311367916074457830341257036627767896027812769901098609754903231194660672672600276917685721008753734091334207092632037661560116192965159755902831815959514543073160697453813140924851110195842238621848329085764180472719859896957509609706821395022405222846025248136485791754361187157373220819203272011797563541631766861900732613633481741904685380761215628760462653259389720835902318019041902776384280898050724430526525480129501456567926650378191159510104045142263380173581587560756996670691530202198581578589277156438595042532701021552687993502458525930276078337180392679128754714849667732118428948378882401315113537062677466257490285399085751992547192292702032406217753680353914555840911591614322515588718700544277142925327680927931017644841795141020854647110644941707006029408061551077051638382955695722423241910256016250722803293061263298473752508024065810583017146590528747789139953887268602670479938357479023471836204855077688335312200613234467866736117829709174139308047474406752470668776501234107636084048971413328157569177807490924787386132706196493895474140992842308965385143199742344980834631331360143025131150065331820232606413983433730382783237421094536860250221262472813120105012067275241748172525153377931382892019523279053535165585237187375371363838707036148584522421140091174879152103320255808966599091358219411537513125455341220091362911886433419116818908052556526981820375436645547830988745020127773139158183647621794199553414098107397583843769545192923055850038802759485853141305405213311988073469951734540328184231756017373090198800825653326327813245108620359286289751932936465198329374145248030656205499966284181057786499375692205176119468022521212511198126799071324152696490937743038322968099629364843497989356564183077504068337289790965601565009694232841357372521391312080706538669714497030836548563362531969892174952367500270764948800190421217700466483491900147899824221341730584547162029783956272070796934487101218772026290550926906282424413011216500554748205556140707928681739837053659557487259515443893613621648669678084249708604194926442576475822739221902248296217989800735947642250080017285467131440926379739634838106918138950162711611374987552643338394149618669567755324740460914092864258655188780410454186114246631819022042564525867012113310389066040939648417746578197835901909300777377878714569058174605939530360289773936276990692537140361189112836803312236947934575322028205920787908295904248578258740359038662545011627411977634567787985788099594917900691885440086652784057393024599404801702204775246026674961168729893954436334137048489793385786402445595404772691637247987034421303811448491123377198735820087600671938545258614662406637571331576304672760820206178614272003992702992937448422374111911771851229379870827295642601734878547230569848135171552246180892074029224851224805548717980636756143471965151977365704852861801764955958124753608917552027729554496824260574434829758155549233153888128987882406872546586034663672396341568606423531726975110219773254522090570567739025948118786584443878723748011190845462478400607601989878386603451947259986171864953790957384732371757944325264671024349505426605525144622741392214761114072654579731629987507720154680744288191697910501965193611990449949729258461455216122667988985131890017090121572000908049147904544809000605101635270232671362883535902455212827679023847208547990945198516658399295430315510824213864806823240983355348271180952945970208888911728950858166449912895212877648321247966943556366046414767998394854150369300494972206937349835916848184952843079299793922393294143201419268976130297219355090935702125028875385307055076227497395507841886709708991694813017175805212214332970080953804086068759347867781476357066048689633670027110561755890963678427228231454529252018083755584680460265628228644465316141871093072245533992993803882343500873226247351893269920828631035807197998286529049304714676453310760097345558021417864099328287561326137965504013499285925774355185280381732964639319442955460214805882295906689726019890878756319481895781552470362168458425157926300188847937708082543888365909457824960588332952472076066018425451101189428274744753325650188980916803721845914290134136388924024906633118568953280717912134142748694165851294800278880691541773416339530672963186875568099939977293607358228451121871265696325890969173009082478421423960665693064130022393654717459658328090228334937296237090874302549850678874098200623082061775882881227761850729400928983601355407787213378954158065816174331283437701736492005158563262526970946780208394063900346539011518681338694357618331901059979874306165311421364964659515982187496694087305534692301966741307651967374611317104059851920971795325685760639676340896088251810378677367455029176975714466554811701938989595148697124139353427324983569619926719636425299442792774214552060373753391351486164688692380138440618829919644291731334294750337354345391714540878238727506824889701455769443806054589881789620322222046016635315080107041276355481861486860899763953765293015470032553943896411961172884472841198912041179468839165902262351960370950814684466405647027104957961271472852876835628154893920719901599372565095897253064561449991697993622587585695009251392780134417211264744394642349600714605699963610221304495016942957414699910928381516187208509387386813238451337141383597312923725155045606493757324699442271596610168329435249421720805329507424317108415070701305950907177213485900559929163328087343157778925605513362859215523678665102714816829309687421620374527062833172949928758305173706508518050966436734114027272684263346864598187382719039634279184490648346711230006670153756574236028446144252404951669178153307740372828606235648255709012080717341056157267321562968075309152113936921057494601417876641148444909035913909396042897123486466938356591253349982878718375560140092587405052958629047926242843057611137204830334627572232314050179497615570374045266312414403175601219836370988950771881591557344334397597288722902865560638359433721416669742622004705137676119381354395650449142909120109143378357882796232457998085097669643165637242658559705949773465732275487520555136739602728338412457212092522121724450703139890635405935594357954630063135688225917014124243073899386436087283758815086664982111648869574910229211502043948166993476025936945465680583547359169795618556169944123786451412917046517353038298436259106467487483151359142762049313553645535152955689812303054300273197290521275394932019748287422008853602216878142317384012383178644938082906071665413911630900494485235879861462999618678168475351036927389889012576172366221066737680398543108684697874982646020301271625939250875507617461871205877864019464226983014024991867381004900278216302820942603919583957362452079457507216382721988902712980814709959466877157408211220976143457327413463676858872634240944489983262127274962731414324997607319719126257406712836876410976469380284161902965288837895293402888072444216315799441517568250226014036239989618671625319276178902651388240113740287714238487433207116310506558208693596795517061265465210830872040918902568846529641190670213498969653745614582985905384120819718497728920324843993623023031588659764557431433306381757704180487471154627454083633884585272003802554807142600691186508874522069962895993643337506520639899140197789492809976375358222137495812997567481326630697922338507017930353665574653908212618744198042425482889940094663947946675723354274891987599849995735141478407185780173798695469503970879787008442868231366085639038837729232116502084709494311651882769204964206073475075422762517547227821759973385467616677046228981981178724487748967234444640684432995372840924055057040174189074550280278623480836225727939431761977774638952935803074362747764571495320465519738328095967537561619412416470248264495211083553535132853342081999029026543792642655523808341628714074317523948933903447425338299146889756104207485120198738271118582196616277834870784847264245223855649905798220675018375012912656527218070085245053017882397657325262215046406085500073534198644070223837500894566224819119287419194553301961537997235270376513275330461530475090302412681057228330504251654385065220674933565367216641708822428510737271401088804108957689861142881011688058214811493806091724712844039613378584687611502682282519501967302400354935074298246197382980466051521716581855940155820716277963767572452571320235762125277441670123118337447358460611796236687967677812997117584971357088925686888030213217706344865845285873426290503194840099894303523002752425427773018239088081506906029875757776244121164993156143045792931833341296277868616209587124965185599182567439417235382242440135418482611792123505117335872080474448116880949821297955137017196918849076117239865072107916747917358256771621362934084821574619177053516640059935110990183848676741701789889611688674039422629945251186255898785548542566195349392719667439475096352178820268223261894315790782277225426913385553713977903062488390541130649094669131281272768293918856313937957664574971413604222808507873386050193584169790887129050925828848359335635824793801124242192888200410957041135870954506930337584092586467084960305028603400269351024118962046098021650043332134759265450975321059019489638933179330935047102663901991703300668225329896905270630820235463114939724846983693324114514820624598925145036267644578448647637756168936698978275169284070940236458089292057554146194196890813856421788683734497411726193786124290003851835773715658260554816902397880830804777459676132947773688656437819542454271903577067158039552574885004921675998681897289081733563124237158747589968959200763852541034158959702293648312106584734394865451295513403859267638723493400268623036396702241165150210042199578718685845981563399074592290391616909923887885210990038837176642238028376108576170313620165035625535128230051609820748983211678872258429229023103625933343933465823986638870259837937446386623969514609208352358847410240621377233658774811457824972400365237199521919186846396224661414370995551281588844200813917305579659138336163334903727293407658108208849514393316002100798359094763152793221949061459742008307591269491524320918342546788594796166077378480710015824255418705272692103292744613847748567317336472079446977726639708654939921700809207311825469014211182547106516976366760111042890308219310616298095482851448764514667268528259300067111303222354394492139328384595840358702066903732074482944231998700502386583179092489031745458425812382829050732609802273277748073383356149176831918390142211242674627903265603732666419807208025358261194456408825562207301454108663487082877438035542315666727809893840423284546990711147955912008397522260750127713397634414550878722411601887242706656400387048139656163244604945049357687391255693320536040431532217813637525634029185114326970361673590624066043961788860585708909763349035032200599056365192575383335320348105009213808665758989100155577506593227496463216817632668662933074687415903209994658340501592206167145787936384968523333608356636679515294523854770280440679721452807272547383951091280877606680639493993520986127793019693677590458423600324065616087005641662389611420518386160481668108401239742206513596003428221847775320979121140028527869455278171533161491759414872017939501959489424660811957139248305034120661744089853910447425854466864834893869966408820165522042768881452161308692353761002038865502378403969205550965273118273900960913217127126019249605773978318680111649694780300908230640095531172798611349597003002746913524463650294610576164187449621379510103982669136259030546571272710021871377573986584151151215330384292572061619453367385366418144897422585147266194085749967592438710728417774993236088136262124271059856751657272388455929079616785994709959590375269910270177184720057174338372542005956271583059236001031822347420967063213413120397599458767691311292433465807631899464925021346132046036825726837376164473162933611755491118011427177914867506650387808876545994740196725082382985573748091001551015134887074452808082406574288199036231675871706925586162602479148033307390263429082206110386664383960365578666191287234430742833762333517037946492603855271500848775712846548490924638631518443436484537979295546908939377993922479791492127913554069128858864281760452594288220406635657822617006395471526347103487624967523977437535777283930579449638609692336913917261488107932445105571048359031837629759211635383671661876538427615310740394597072600154935221406855897468355181828527414206126805921428273281676580273409105996042844132091372331153455407435089886415256435738485623673002146925847527779828890339973484510945391876105648864775237107279924146214298096899276187079842856178018731613294771778822515947732159148353520437927542396860696896035816977397915208861940431774099134795182510167383952357442848070255363620962306640796596823412733916355192632509673342387853538029328226927601107574566252379602761338574102944116722155882515382632935376511216656778355557381413017130481984497651819167443175022187560919891228978068738862681973971281773452803202468599094643691988984759145851671713986940284059398053919678323015694146660603488659166994535226063263266597235250487083408817724890170429130697195479075912655747596843323168976166440319592608124827461867636178921079344774889041010680514555511640409342798918492402957970717990331704552851445687591155324684135011937801993656400090591393102665787545892211474080412311561920399396993635556901090513413899752771084442979859881767370556251811744786979529304628850669142595613631476362556502354658034094400396845793117021213678846032381745597944941318519127914490074669937470576659216206657043047392326251623792638138532625786631970177357622902070863630206745108677145125626784307045780843066628922367650000281893986131506780263966663443601261466256594969982419699716201847177675698369256354888761082192032647241132013030779443113355997651589504038534302712197316168684087675516729092056983619847988280931292927206729924000714557154733947140694859309188607171312473133269332033858828483924688808764987385566535466866540697095372058912305651203021258976332726758824557458186911521459322066780165367612146129986225355531384397579820948887561931153649329148199043844881324903822951288032982900515781453076934015722428887910615523138230781475918465151912986883061768588500349327242270316876168184917657692781364183271963789057156360504242419700345030631683057553723653077494282252862543296466436147202931129032519340894958596812789103621508755711589696417034987432549582476897148188989595955583954081998748008090771738928333282886166119988944223302433948837088803505621347053361162229685675139599785481636840616047817420325903661687060606389467013999738206301290838737181491403321583119269208822388572729431720602057737590688924002649516650261279144976955974674779697591863448356034090383598770643310757471005948468728115813640440321305660761120279348012771524503788013833042909322120708213446962285618323091228745553062635141845897531456672615713772902396749862478321029399334171873594394611264196274437472817989423523928479684931845834086110388785195381940073062604942164662521007175148252531763643285156182941074446005292395681924544067016900692627412136091240186180378341669313167949021998017556022332426815865923526498219857392708972420933218772850629033220873164636341344799855355785292005526991149251576212237577186131436113319923705562716003157429700140809808229594093865733386731220025580943532329393662910098374872767678107238026480723724281678067803049747431727477618385822928034941149293406995963831740526842108376508299031516726919991084412214071780343212727414045340532054939634086047960676320888481223766098331613190215676742881505374229928227991256867373809763968956843984894676905536409197893464225871615198648858878238862675821821784237581692818570002669223790383982568210140771173340575739632847839807558639660068117163247149012371621890424886337840032160403230800933686812492470998330519790716223244306910562267713774003445968951734192635615043384394015435496579743984460778171376146916523922993063134012377362856605013998566822031838111058074940638736172688671906274796110409814705454624905627485044246146191632801761849511882457129012569656595007833259176414202193346569387013494089493631606959983518731763013832040616593786913658371283837752533490113411168900286953421586934558943132164559645474981501611997920469023774122016380365321654902322346343491021275523953473662992695152931741291162916121002940702338558577671999183670760604782217983229804899650614838101730673104619286754406852023406985904881145964166165444075268151744901121824852794329579043289018369474891649557019384754127460324109164828815464092415379407749772509335826722954561835312442440604948276757227612247354960975444262325262742047583843690409619220173623018104676601698860379308098112783204666404087105963192642042884179490840541707451438669034643049813688968430041592822104792545545052127580829154992237392169118250864354535619777474092290980774913819875838503621226060924878098091294014846862727909884252212677129414443518161502381512168332521863553060069808203028458307040331486103676532666489305335629843215658663434382968503772969308302618169766673513367654144329909825329151932004008577253334972372907808227351225141732597693630308107645152811230657433716712698776097198537697622914628068121249917506778464857109125201197178199534938395135243277228241997112548268737118697551378413234610762936856721416504253641336200688667819180600644760406579708748315988222977018671995667119880597753973687629400626538740045698553447224167107702747278464253031999230135714319206064028400674755981127928931578282725322479955481858512474959591476297744001531558107128191222627138291455865789553378738256500969534498701230590037813063805427209077493069330484674401280051462681323413459786575366443930181518118176451590704023521498465084192975549412337851785319755393782552328873791726882676150741023644003515203426125164651277451329530167891396917323726370741365070103163390283259768670887700699288870424353945000355604091819662671757415441782991856028613544499271761359960388060037270717677964934267598632584092937518369778535588916038761935085685353093109836266246471463148809400568875948973391160973551697403883284251143604428627552694138911560279762904008066794582843414310058755543330824932816069405311520890139275689850374192653380345329311064983664689197863868347449847158273747490362521670557533793212984048263300719176755928350938087332195941182549588578943963645915422571991423559728668539742525084304122083600733377902520174673721962382917204785135947989106999055224320885865291685402711966181675119235181681065992140800942869834856702050860218099089276525962880591607586956458453348177350153607480042104003825165726293185711020546371185259156398281365107671016870973948248970567631423054303653387636679718481105159023662023800145971961198323604598403543375248229423970837254107957160941164334044582667602117008347868787663504391968992385010853568412583439415517457066255582725959616148694203173129355761678375375313175812987682977551124888422799977674820822678220207862838460158559750323788803464231066161890756295074152764844658273088484968386691336062239128108919987955800346216774808825544247883307924647769405995325502522560974606222748323650264735534211496342043172500206311092460282805149641189046143626189458028665169264121663536154391945063855840459661073733906759911473670378000065857957638459635328884677761936257477972974284503774904965271552314735586569550750117535413990061641238252146336812825912509871270301636197171665766331294310581345530939108395601350038880902259178055270686290480910914267358468388239493981487525995351196455243727383661477568601619288409195355538578381708480356142665530045996005403557902791637922739937468609581081991708208349198381656209392142531427263922122448395391690532824555482062713597297341634702789105863756596182339582276303469810818332623025312008445346093677870499163648445705873224590104915852861524704032252178608933026890137465545526618354649214979538190964075042931971939265317726741273561431349418675377649435078636864479547579939052992996553768622276151422408309366395504677682970688376720682588237702126967086875542884268263890892614117517958679529790451380580079946472239238190599614044984842506521679527289142967347989069321671759965513800477167088734134848776257481201267170485010391131317579059295337319625746419793572828203625351153294821742226754732713177285992369489584408310916283098245613016349598971372936290822523420780374807374399886172716324526425137567309113626349045204594986546694374330882008803573577647323324097326229953835365474237612715308375591577850121046640437052634786279861747734960135511715402410623852951793235209633733559836483498456341315212868922921555208254282140333083334876597416729066957007865017387098651984398740583696140088723350152140622537475238264448375128902529852303997012696417359378468805080937310153639276596897964717602459427073267105593247036187951924287379277770516116733866305729358816262904423794997861456141817784331256670493991469202425524630043005193023771867624361463219369339104498860141536869567216831612884926454374249055004090957225452428593770415112391184120383066721209794517261954836071987772963601945077748019645702435778127316781168896951675946535138475234775183960003154692469749289162253134874578533371449354471882057341763320922534469175504189742060082066158420677900548694179709611984387799269935991354515894297854426999927694439904376754191137145250786963444604233193093312983396027640427544407819249926618104035289935388627553241889368761972385847490598521848848903378208430922382109032796851766363944958613006623297428733572525308653343406356532110163336228916624579986120763941526363362802470309102772980606037603608896720382025433238090718679620334137525129446297400511514322073574129363726064256638901195550669908733092540905798507930449534974752249226073972230104056048527432352093407451674407747466603662268078152047301752240082745477224656644140160677498368472199696551302497302832668385110584447424714184677620946922947869188155348296623121276032948093480761383096555154169501867762859884236897696738746306835644882145370357051902251077632727012884858215550233136703726388271012093957069268801654212098337914611627060650540115165027645437380165433190999900849704363229642383122110108422989905313742092053419131861262790941506421607833496959387081450311419073422171079380610072968463425381716034457762394657828996113322021019545635419383915328134476471515527648758219950679043223629317900403252607102140949831390681619940128045299264471856010030885885796337747822303931809746320264287325332435492553843304550595300171414495044756713801725486151696985713043616859209947521758597096321689681468532006200118431830981191390574768522158689047317648681193589203276700815733539782662055475891904770959793044103554148747789659271405525444441843424000097636005344481601003332826940929223497280629198387768862228476835192763030049787182270387761112242837688584824287331930147234032750940433597636750238306707246921803594587645535196626929625771175762833347938193516845757188743746002549359666299117410963637028402314658437209518585996748527549589844415334874407067485430521969825469864779221640443910142391433480724031416945432621120470814410194684179319861438950996141299904194726873615934350819243670934024940016755642605873250235984390574406577333522349110879553126185856832405914774818068231451472592692189588517516807127384076240161224449287005651303259366400247606191006295025465981526183901142081402490285853426461339344012335578233332306417111214755572110674688596371197563844613026352350831816618772051019406617184514147349062260307984982529710105910646736592124774441715511461038544350766034048258606379998701793246148889619526706828153101910307312696460863000236140481975581281558289280205491885975736126570652820410335862063108167885105726440844924358807416539686574868052217923853579717660081946392570830196315714048185893577674528186880418110987135436675659611398322275841061302588854408061898474707886172956271489071930589771307583153621581804904553711332781751129203874339388894858600061779873755090806618810913531893423168650478607934233993458643186907854406189916788029064807295594012598120069173868854012109205142952631932888197544652566880272497320246912276770865795571125857032051802471390918338124782444430831211411229509589611905393714122801328607671759108172324202376811049971566761572075358053875252405065201081153260646919559029092001962784351415863513077852778833302986907655300849313998635427794085132024235180310194171408057181617520684596325844967593717980121374610707464679323255984464790089037961796596225625309182140439222923835450643552023927326836687157784258675023368038890215582697028137702273546070856089748555338110304826660785897318218701222205551657190256262393924824510297576981203666759313972305268920293973652318101691350577539087051602137562974809188696447417790314651280989452039353422541742682513010163188678987249271096877416267959077913511137938839009760391779746745936848108508061379049871334664664194513717023095138767918794819821431684317747062336364072949358012158049092194880242014107245261589528977046819684633523233082016074251248986884282724339964923305345656543312322924834025542940677806878695473674487235190253982530807189969246224724955937370800353982723245905439350872997952999898810479800058744531430807655817610161706860962968943357650853739440430565681276167247638114561486804337639386485125514952594570234990498558565680967201264048707541392294810978414124362151294528476706402237961742862544139473390211234088810665879959708117748868620373624728128304325483083846098892644894448730798469268120362941017197250712115042931584902580925152393897903492769283844459711317390267855071230817064811282283848925636057609876683962493351273645876899623804413447645481656335512262980834323746522972747376484001626669780980203642584798604304996837092029421724006393939816795422728411007605138017933007912523994205311436887873523817336270478639906802959363965279502097851829819180421385213521049157855755124634733677375342543072786566053699554523531471054958104155739322135219280628084194336631649747135896397664579933129445041962847577955012589374327227821746895264921133789468218415544994530078734332384540160874412996147236037458202189940726702992712364437203349069861440901813562802911357280492209091289468940776646273783911088128110515668779143797073145295258663135221468274892662007496036700229088638053447565343512813229298211580448811832287035397635747582890018597461556552431699192280324349287151091379837997579239980891107484326745412353795715013411915742973917429217465013258047000468613827169142524164981004913163722513041976671311165334954431702481022311519930609764325865203623144459003385852225604475636072585428322033685883256307644120147710009941587194003529630200391488317637415796039902901117082065490577435920987546653024786806687802859767285545024528508491211173937175063381634502347768900003442555356352392076075865837466980381886050731661607079910929101950928698312303442323814854741569452564070414327738600763747037148641969516742755254181183025164637495525134313677331633508294008444317437901603289895300866488490912180254634007322557489572888916754935091134082982479638612844092941230630353161938174459510198680825209136577057147670057835331138493250784189233412618482957568812310335037613353755437880331178581227310604971583613032061617974153337075431936426065948882540737958602416848939463850583219466967802436789704132613922213205375596260519476531266782218847631481005255328855330445680235874829063998714005029086594658552129683931860520151407309234779502903869316774278297138428980240106198347152365792536862312288471220239476510487515127873567188535779722658504512457194174529760724051855870831193874878748755681344262669100641658157449877840679533260640207116058329942862536794639625670764798552744012458106398632738279419379390807526989181658097557700567680184890371522123714080965435011421651658527848811848712172130165869461151574216749025461315483065742942852598856510088688769221617954073968290838858027673435999497836827506041074127416050089496416198810179419454989221415943854632100616563616414215513767213210145004035171570863498113953682199679607930083953015203378057402936312884731588267977654063157466954004035731747174091624504394069831044293817811922761784632087636209580311352991624531019966908208449123350813310533144894283109256664175789401512449092623785066996795100201983804448740124026248895202192753176478479893720010833465124395703918445979601975789817158498440585670474133316885694645730336872971269224033294577111138653885038074072224660643176310459561846516130542233938788987766299232449774535307285985414617208558557919576706573880313979995380990491006179731024619936870975736580561730990326543273115055023119331985455605153168643348349440672300098446134316835664362372438763918126454950968744808644509566895208743958860255646086079399868222321125311479883727689407155575925990303671718455516354562276115645026423447995217510955216697146058609173327863187616719615332591013772548472614385144398886669437967157475443982368448678036268724601174893901021599603475199357386572894619617178271035270426959958891811165153375560409284258483657592243795966368495909228761985197175043529720089752913684957969110269701780319951203606191882720332246469638042954679269356825057137584546888013070090720033819406170861044983878524303689866915974735457034793167828827645606587241978548289083318164832376136744746327931533224982671370938684374035980689883448924521892561592144858600228008440358560341931378183918446970788526837592412789810060984640187936550587034722174285147773159166021085726957906728991499676567638472598621505417583364177289417784646697336883442398584687128832277671123521418664263358351531247656233065169044303873168768890293952634544316197158508835006873208303092635914000905046095083058861296090611263384054577704695887929744369286728206401495504387237347320677537747758398878037485583011659043577739950741965833073351116610823686711710696257872590470917523906714149275540883806608545264050533170005215496202302852805839616842677903509723329900527843018460610145100799694488225768443165625828636237441032476013730141834632046870661991088339176579128981704485951597288669961200551732488934679164406746281456543162660265083932281588663111018670239113332818229324304436022432332331242021730332811812384251378037224749902486312820174447384945596207643566000445755943807201219818288865205244390173050937189806555553279623632316825393591095937878293973787058264730791328472097231250708916725362576488150403454635504998786623903875433829712705697492103245998682279596317879639115087510202764300724182532961669938426081868655848816569491491998089769117611442050413761152888208044536192849584071975993013044259037349356182785781215431389228872300577023664811788744644973321310141437730447437089458157192834003161124844603662005790838758235007742722891934538087352516001808717648594838851958127844580049413683619566018869562388064697014314952600010023907265543758229797258374558434830997300206228634512257845581644233102426045152098418277168787477582263375033948686903779532906143726206912243847246623351372543981871986621488266978300626355565132823657815711549265529665898594587861039626808155261984943752764490647775566006047397996041210435530651708963605532321353932026679483214828991174753894667844474593595539533614647221350863948723652182053126102421380680279434732975036674996278615054629171480424707487085112452348799592521461030965718244427045419520843558269895679284242455743386062622563920212248944959708281906437878816426056369699937539836239773667031102954402486301248687806399657495917409916918487372671607818312428111256269777062781714863044640206316377996860522165494928557839063305103925673637304123488907171806367733116267489751630110746353528960192941249896633959048921126139575997822013552943725128267311533359450647579232659783927891225745905646386992453122138610510351905289478522528812127681530019863991594479907851768393038179715987987911561892858027906906760530493713778917047435239607375147804947146456132090190951596798161282149739748612153981123920030571966770661409678548574974553893151083462919052368390283629338423079540654117164199126561589578603701164525501296887854765186737260916058289008509071508551861331173688437488920089038327140556109850218462050437470665450649472659203674439922374861097872563112736233282466658559582625867868183388520212745711086248738418242965428067264279762984110091377618641243395935763873554951776120797958741228253769437469295815959291960454805305184308002255609596258850729768306212685227806370446153429731830675997857157523651546312669026269091060800309838650162237208707876268040228156528083594562073790231527790377024346213212115992623320397781291114093610592306005320994714762196567621111403291131061113478696667734234364260992799801941356796903434084453807588623717588796356015865030611395908453104232556045718331764191007354079245143813648565993091440738894396543766409061253181672301647529653517791292161302614618053362448999754564682918041453311616928511529199509123436169407075843898185152092419072734792863482821944244703962818904813154850990162166924730107412777469825508669421672277526987920417301503984559430559611879597911217731244291109117485769051945081411371365503879885552495475568387479829983470668615686681015419643003568952562176046054545138959230617475764764180280362957850770734571703927612830412023079790386136599132478803790382440758554370799494402602016657538517870133509277497834573403107148315430448504023708646635006011479577220583341096418546816920259294571256556439254672416130859454408317736030935909850943468676110581335727991737067144350726498995057953302306142027798491144071776262272507338219147913973608258708298041090257358813184069661136631479093107871534636630889042502060581411693550864165012099157173331540136741067346398015826793318027190892530469631655816840650443931792718919212675490233326330717000724363178739643507350335219553027277672751885000096219095903644851549633074213853354215932110651012637344895239957795791381753258333139182754008494434982080537195587331058925006049759108657661457707613035770651305260565364781070366054682632910115353651619703376714647671156768020118527393021364222221668958826033013050343842274344686117113145953058007278309807679777630410933212276211617963107005073739308812288370564747466164051294918468487877137742198704109274528192916563419308691927091171883443813102177266586062019407985378090880396878261967447599153928604858518135307481852779954718297220919611084181790305788652806657093999731838964498057703420542567305382024499770878155697730300203869572214669385420598742903332844213654652362012456772599256406944397860904859429484354596258326033138843201898316251120351618272645649687539674106273114534139825259133721716629837113675595266032295324727621880317991415710359451366299530047308554061652410891268948714837339957488949168058780027939905840349377108203335205441649261357822699078301391615381953911675537429196183798744768607689607213730597380964733698438677036615822692408173574704897681821854654683410052933500288063219695887209291644139607495013531854043488534177581331882650922194848933226061795102631791011709816000768406827764431841918802610512214170486283319085208451928645367805275792189066687732410483072683185641800393592092737570506341621566350108744604032305284463920219632768831579649295822330070723737903400200724194322801621128876295637130065424006444183793796446802146483644495457164806809342905060536161033080353808911797349935105278962923532700653906338392350380378209527906061087093547819878165591297410113258819646009052182585081694104585206038947199069132963235694147450965433899450864999594180171022910989271966716258074878204322011139230356764640080076555697620765922496692577021553233561753246941433649697863677772827843114661677375085564114273249836897817140988768152369375799365412549227206653235613764500509713473255697723684060507060694811380393424047898789869923444189584304344255904011527762473725057015207843176581939220579169962058581700359525923582203344288589310624394422412840379465688899688749524942339588290373675579416636970481710093982478751980547938895196295917270946529120589993322090684417646179127165623822531462926686741974246420773584574523672034645075678276199002174206771446932199650140377132063132811960850952429701314563454245973020805320644901168234454444701706767266150020934098606397156418157913711862905120983849047682565466170945779130301162832256692942700460265911815259324844594427283103747610386649639849252851988182753160505470377834320156841116519578043640438727601641689871299646629555097085238480700345838323515078802237639833186541172962089844759174080655124435116320394249698087382632814485241812865219364421067203919165999104435029376837722669528648121640331070849132393318260785420257832907181992810899240102582354076919664827775747199340048657801395775617356581298713714914481913746476488700476694210753309303607876197339276535725567585790075326423717092622370205936712705611139184074433988120342489285451857550327031971253318847291726284644465429012884077324382714230206860704995983329434317309452973799777084587620183828683686847626308718057885047854435405720231199091946400622148117917736714445829747749681238477855173052014664720352717268317465135799968849827030507988158123723716887566266926503865452462174318935104282574814417944273677602341699560509070510912756894408251819973019108892296406420378813770904780854128169012726795171044529429034685645028839436969965001225173714675680281911851800707281807183740393200403771465772835804326424638288697442469480369364908196676183923544913021252297271077344288992883363303730271704283634052463647854751749118737084064735951992919383396375395163278468150048692007187940150070484665045362641129907015973556952637589532867742372076799300909339801970480203802601847888091413047427667393207602450565734698161183656760006898358730995322338955634666859783654360568589141985490827236143400230566438403561640779242269328475175912616740938678456740109790457025762245206918966447088563056903834660376985433142512680696445425104934041982020930196021594642732865385454557837231110303962885795601460262852609465248276027869827673571957630117101374754347286303502978939015300466332531034145419835157982450315522696528277166035216512829822745825126426588602589681566101594739436298825801366581266408539641786588681738934427534393026866216846044513600826807743472736103898522269223721982776689061932159125178748012773645702692465914235164353941590544705380526133271005552829472680372521791267109098036528168137938116910428406683191615442861892014945923326978717313357078581866427214593209165922771819054656143446422710156131351753810115275802456589729504223052387003309872634394773178681772214045221730024010722541661888963818507189622668018982441484719960181625106318088653133392087110975916511138259669802724046321216263415281985117981941262467568345557917505162292682478776538343030625234084385502702666861933680913039434252373782837099296185087840286154682948332879694810385444250570257825743883197623745388215018204125348820461850271721170162611184713200654989372164482256441811134579743176861654048398554335518756897662442367204084807022188200877076468267520704570189837871324914051288983589966945912167037960942117593896745870990946481313191641087303787816058641483980230988276951520191738191627881589334786358070243826449409831027246256388881700887543746766764804574443775081259566838094654342360844697751367266663648006608409021097482687492070694419091402533831286395912616051504930315308644380071746698567261492915899906908295296621308612595317609242241721134331456052911431724109560267995281394979456356199782762561433860859218533433312753199490241633519910369032046268628019294347098928647309302671778741776938541061243733340245203589083961703687352184788986362153532799326540646234885235927679043565438282773153834486394496108333548798334944716352672553949305968161176141068173536763465775538306205383200154559924340859457458131728502381470026064069591388962590837876328784872426842844241363714194796818819117702163441024812928386201895884048890311910817854020731976401859859294746104452244351309470792993102096265734380263793783263068507068729423929548611065150279485799097624434458242159568853136559435373633807348329261240346210908185402187891044893849069335658302443247525733259945353627013138732175320506127574368039324857969750899008204343730568756508637744388810655101899167454022173090174204551539884522733428849282416046047255952107011581151284558898410885786099046102951051491863939850171532991496503385153423984887392922259632494696758734967881511070128090436071450634798456719711403302290723335804905058593960234265808847558429922620614450677991421837052047411230778948903970701547192347180909965780597941997699505710790900789020542296939423112016804712018502419891624066922974046196919621324166845797498181311849778583925487303727519487743148258992027168120378819916630318866778558273467077899773875735329933148496375105502707060231932072553390364001778290317237211390910301951354183989437387863033767427709128688884440102733875044537488720172665065579748166732406176085738565176550959370643219192480440954073905372336589885891261772759990530233272249759873689663982808519162911604699180021954419982522829568696477174131105037095921545869310817101602690897039852455276741024225949370337566046767197214970804835502980079191723253157942913366278632438478138545511195932421109123320553277180186341543129781762155846358516167865436250377854776241669554395623524782152454597310609547101435225503984516089099494042159007856047562421276380405071193778771981903791771443394368101314644951621335424494904701117617626700064610247811919578727969044809874514212903052550388647189192597649062401596545152080707797969028133230792471844823223433004892177471753544031806567820343285382218467196556874111201569361139135539837130074836401621888971683729241446896574920504218500702925052438392737959568753147370817207452841868448819647413505476708278895318793007693590146720355753056975405352293540342845086194544974604545898521335329988684298154873576118661324930842834739051425860808999307581351375865206159664239893214375564831637959307527297877875862032767249806940829175669521290179381269502862823037983965324128399703988775282738261941934001964730109075622104495175252034736012898285214148840647691239681433748569550668037417825768055504842563907204307982920757274252229380677479730267669467238979957169054785827346027418483673642951141703528655778263423923797068660050265352010835261491534407641275776574000694743748263246524814839195400588731426419436383719280138733309699778854947496336767732381878288981934710147497070917863756203730642795110550504272258210326583840081723323074758777173380754297870684085441268359789503239745866045270441588001120852799631804196022107250611282315983783976424694197511582464255457479361668631964079451084059793082477110438548847241611499451558440157246314160875351432795879761232794097076735070151187508528677013872848816239034828864519256709159126371744974336855851565717872667338245137526959375078762402914662736848716040085579654534853177660582893493401868910040058792515159700852676317322590614773877520686512137421529862338072496758764519786368345696606082384395096480971449238078055502194736352850879858886771565881904315871785116119875316861313619748198461038509876961317503921490262517088196133118263433091748530357310199976830345639353289536100649429978939901577846609405711963152487480811257654627667625276551659340797991065003665510804639505370124104269348123046240919145506624575598787792164542871743472878812399582319019777192790732915314508905615128974373610933059303785249567480040205702762974006783843550505641759889696676362939217837600064395431480742504779601818382541347550108557718137326803434991877945210385977945495459487312506083268782039649840112466906858288740629965937932905746696703484787137385335791228374577267180272127496963141258892923220098561846320757715781846730856629998119217424458672422858189436126677761962103154524728655724684002228371030948869100483853736130090185790966370086308644542178290688872998148174032399463109835249095629820555170319426051986114592837670760447059168344072363119309156912099196079680057564263970343467692871950451526870888806776260058013660751023139357948628284924851623586380320059439067579990962965405933695818571801063569821304523297030345386721531174638209896979297294603421150365608445818374872999950703563917561805224359844600800124130419413772779648881636547277357261509810368822925537634540085517778858515302614705488673476353729680394454906947673496218726860975749876938152221032931656115191566837923390317260833918134579779152281895273076287536602082604789395391244070413739931317340259355176861277119420567224808954040376138275520901310949386460509601372654140325610862585082169524657320608122871630566980661940189809204738122018457937922717354550674247516889751992159993745405997439323619684018609537390618161780990365913371912803148229633428883665747885204180615094004412597388803307752022207057588200549500602472758987262308747048781336445839043384189251739531327473934775634963763388328876561250502989911769989236202588866062738046384640414815336582716661133788651734910700331099602419969854918470623153052337293977724099252475295009965442463417708495664442441373065014105294644081916385644726314767466822607071280114570437108317972519070303463232801280585884841532109881068521110951405977813050948885402650572283653782525557511774421899157466048241522768759902097647543251108036345903061209815041126218945522947612326537062608068032482958404414476222811018379114148216299629164465317731677039084625684553764256533034630831371194695920608399302719283475505723918472169745411023964075775462929460323118968583376001286737181744585700651010743093585707002833440080854479757848552119034266473130347198648351516865918944550774992930364765456237801973053397487054940689473251647553280197742277812697020872721888994516479744600794543084908057287085871596866509174938117165121919128591045145187937865015674577191929599993603546397265372796917308146873401181409822275235094323288237375577727749153777242067454879751535471618950189412539057430652077939765963605910601142058740984801448242510980436038012344115104586793484156935232388875171466463743125527482159033218791777276018465973880452925914277837762056363687860846937273916302616656965362206186935140070729204798942530713049376934910199882391098604759968607730445930551796581910269052475029837968084215597166271905862285695412926478021894380276424483383525343216638014924315659287618778698285331489313617060101411649685224091061085430845873870611803915763112680522409159676692184263482103722664524755024001691478192144302560551531064400988158383530672251354861179016407008377573609227185824584238925497507792273795423403701046512628130611591028215788872192968745049912159733493127920012570140404289782328329106186910785116279964139741441540824929262263110582505431186917699505016060925799831755011074415561477973342962771423736808608511984246928005756871700589089686767702374986089947354573383919586647506468896811287921741707504176006444947734767418674462416794462529820159050826756094532969431272807009883699520141582796135488313582033811567623935122180429150344561718837587246871058791589461023971744953736655610916804915320520342744549539819910546100787786360315387410995568141358507776460632649991221870176090614276059336805952436766699225612892251774386718448229896813206982182758916647281592027419903681756525915946857714593403646040818373396909867596991175954074023481604929769060684940428294357148492617211117027104773191249470554226095174956119196963772337859444842931466870638913112175668239744672998066679055782836984110968309491974705367085217152025841662892668502508236066427071670182827310372760435719832857903645598104400682439411958090338004289570831311877629901948426655871472402946961988488436644648615661648690433444674232702774949618446530824730541772808714046457825316539405936506454945898648004595007137515527636512374277384379820713760244784474467928139288515222578340520366123313526323759359877895282088715980014123443549263329128427886035591498353986095170378004359891731406348552684333417445510918396665912304042006944521391703777331870985426005940166762942869960369716527139827714739893840817360825684461763707651805482279322461338253387856029754487512788968013845846140261264296403829878828547506832370460549391374952022340610229879675418506737711899945490427153947717891305597116181226695034167121873174904338978039023220313782486339809887929160984598373683417366736443839928853354119074263638019078067559419098711019544516897182200004697148274795081916619187594633243346654929296359821534160228318391292154819339535125902132072884012092970532515083521440278639832739248083981843663311768915401756185472006373398827707350412230470626916924542262257757407384796779388277789625760828513116257882859621480169768694088402025255827732589244172133414079476036039946279611259781269736162978188654432166957386702195093715666653535618274901166884191259307822956154754562797352553523509676789111500503260734610473822339103471376952246174248838636450526026341619875206732605134499453451422047411448003287548969126557614891148825264176715668502577550354223654155686636930491523492687449842075004046495841121050790758561159882771130079511784643927829349664389452468455750249913328493173798542669349082453860911135187488407545630906353337127167655646217599668894510880300797243519697947823307849996754602130358940780068409399129098870943196216277516355521852092257842292171416833656295415651675935292820192332324197851592501146335148248243121258100960183832062379537187269552205881642703711179050850325209073299369557580406444493729237246157817146097718510218308431340546170483336066944663621245395113877405918167421174972235337788131896334751353339474876541741795585239660518548740794824331139111470754130407056461104268746868919391139741940475756255288028829060269173654711853146184584776362293436073139773226839868640436507865485051054061174511543350957399392868725265798946950900236130110864980401281990048791554582095866236632316642886149222437016231071108845151565464518506996158638219048712191552453517043725051625526342785573939513106022788788772649423540545572696110209475119471540393791542275459142814283314193364468775072773503469008013599742552889017864953631365789523689765366312149111728935282963423536750549308431452408127605561654649921946593781520909398184624241179512367661749689576403783649393165964972064666167528049424828535656692865960793124895255637584245050189173988910468867225535909461197871703615702174758584068320465762351298696041658201991148653831437347889712879638900680864724312087344636684389712618726828158788105152116525615732557224976618037797777949102120963232966365885135315388396193830378246808033348160906452821939762839481498064166528468963485692293308729025229437042458863526649724221659924583916256091287850757526546678867135106633753091895146898686758858841139776652591236559374800198669263037774086041874931273306782095330834708791507032773462604330715739051826326526045663635194824019510389095795258893097316978885761528241749538404017563538329300118887836439103089445503544357680291459134373525575234563071338005332061555205978529721230153809577749169989597553214674624066516012734996480635116596770802703483296973550018273996603937519625142502409913757201874705816265149520728232601551801595701420802741077153677434816520674997179494136256248374802642658387865088135566883358924556234398994782509741390000529671675878689278523416798438100254166068894009926501117617348607371937036692597339547600999621653870820462126849827740758158997003475153128716069188501586265397968379865425354451422623117652026114228775411758440174635592708169647766190877818484658222512999486793905676092015510327545347543310098150297890072295989302576640586473642314541086274355330448249123191189087701789856466085255741835352763419713677689096547296321270771269480383486090437300728447361120887756102430918974947870563364153032110370040747050137031349147541016221548391110507630781858718316406087429787557544812309084714742775138788582874902256257757865688286793503406145013049838663384584595863267930675455000573651354567292495601637119716322026944388339072299245868168981011252379522403300092418771257507726404398115845728223635741306576680256629121703776214821546161812798644011321340693459437570332253165479713521214993749808365835144728244837217961433163706007893694895591170761968927436568976020684662395367917900164457999895771944781695218037893482710847924589186670972765446319449760640337226689831722486932174973661227663855025684555333720291363364185582816117519039471694378227621071888618866226913433999993183077214006479749404495983104559802369113885740550507546005294607633023367821769576762844129877843936658195406339539381553249747864805888735782523868031934297306133677397841846170207268256125193257592817243605583942570307091363121900960156705849099311126065880887165179837947471032362527457264000002767971274348486259049417816354044602552089717272120975658646908615546626291472932423514485380277594504380621395570301188948919396545230506529677504772789754345602155020894926876303354412926196281015024460628114895340821513279765639298469588256126208058449723695597575718737572236465364776327402814429740852891236405081195808920089226894378832603157497603954904522110352993347605723689939344834956645475997637195524815265125191873569057985861125788217394330822104305514663714979174278103342651425053370052870926708146950413090371166202766648037593351983985373027974977591755260364345430439554449315622024277887268960942201131887858438593681572141143658166932861855016722646289130980975393851442799812812986475313211779708881780524631727792018610278534599197406145818321491736835819622566873724372819025040144853921757831365887372329051779111770179688606971310259014091611411264649552196728255429521982809655777832487976082153334030386353499596576186747638602191413138168547396242145884177525210534292188890198616189895317111752306007991085746113950531232770237433004176241445086556740914722579787470327902237669428081804351815098754784691514112566404522296494552840310238317614650045744268649762256647023369259385137025968397072265004897931587782303522544527490990402914477451586650697376459022548190831950322352983846085558036001944125920934480359857639730749460911888123258425534310795206423585122908156220172669853046163422227700181335165247355701647152158363321651925774174665468588741286181221296059361985661783142453881711625716586679172818968015032318077508282633871504547691171456641826110596349048950526642275595326173380352330126577901971710629344999084602665342136473477727259272753565611034715833584050056115864266971605858797314987989872652960429117757241335958079788456720876425574250911775954730437254755459792120751413100039344041854960626938645082441337543287106838755350733870772850332848229478559498812747083988442750641437209979626127230052111696528408100065895913309851034711762074148950647510521657793487709522016923352309938517024129568357041624026511999427252292265287062109997147850177432077665242975651023827563914463472225885491162454909757148514140538582076075739770897844014565976532069284498859690665022902368106311238239606058829834979422748297655653645285950318536796642758628621718371335056612958024890992281011440486737726221831764550321064411244224767134385404503152966613615038086612348649563532285190829272454267943331638758754501822419319014541944120604182291840923773775853439706913658898332322495443561158809913150304815259735236350901960168368078328909436265945255259226919082028933136562705859799642723698786630023980938961646242291439765307766738042373847088233444927436776177023415630890677771677527613480221556182040691764977904969653487975114101376885815641566625058220147146197366570862694295289694211627828688848099352265383086005510450296185699606461504671936995184497821288783242533111051740987642713120989243493270994379899497773304373249640976107343105699991411909812960182872175490093820607162513908457119244611845697587627862895085178402022184158635116196748516771834026685708574486135625017167028355452187925818164054886975423651792656443145762540826937745583031752458007884575294578253852761997574041285428809888522238222313633113132644954629178489459807376314532726299323526245524733497782025631551538064018722573379164249054856921257073319265071429511439484358650461064219939141791085893930133384308355003376599878424677925950633536680592595425442258847781718817351804156033914822182116613409846086039127311101374533073082564010736654740906780681192068079156556997352155098291222678614670355583000181525463441167256119395666006479159214492208139860545390832852075837288989583875856039237165277138371575747894023595400124034533550047561204440093053349746549851792525029908401834692424181125106338590423513869729190658817080016512322267830218337907694131301212806518639490218109722148440154706580897648473302327042538352344798346785897749848807226476475168882589637168985202471315833704212683036295204795565314865715327913742077502479093093268629722719884573961413770279677059452183377925291678425830393905559954940089457808018462778304177501951723732368807970415463228522625380454761016486869093395577343376855267851408756993449428909114373775684622876640379441734599961326879391495086291258153045794111143294823540536526997719031611735519618363285632790400145217336620675679992684463898421316135022609166906935407486953407868731166212862474037755880773384329952152894758883409484805538416891346210623968056732792743118211798420371298140643188950366281475106733373410093431658859770299987468271592429562606950400300673634255036276890795955223215416374976954616995063511693863971606812406746378728405558651828031254747069050661876944699165580837401172465239037107084418326284808380399395956787114274582394254805084962862219243051144775032355616808367774434601856444922973728350556885687113841511227835352374448130431986597445458578598215157622549981223587948147081126912594157485330390046943234854408367267512225141136110861379232465964250297688650989431573317783470156923645176392167351963296639037629352876323512894404291624890447752523837086254340095684690934252084391558981019677228712103239470863970113787140331751642338980507717952240488658227546757648379280467990078267236749573425087996733737979252366422349353567692748108016091292986430694716879333078133255330394941939487050218438433981469348704497646342475488160089302160783465108693424506511831771290306240610850500751748311645997579999244012163475835420169116427523631018977227036520846651599372421841961701434893907222942760582691607241577936256775977555249644370211474922028305121526261872626169304391863186658829913299861747916172834795178135544708689758480914009907548519200567030389875780505348740727568982856728511731277424694664742712770968411017496457432565676098072277656473026805283552057430074532955812797078211351875989849269931355969886274608850731162223072596931800194369544204460350008515376070876302664335608392400197100131355923745965577465449221479717262856577282139386875443692178750352918412850034451674706787082852873179636611946662184024914400850420734905964830686568426753639514354451838872193353461825099499988417585387638681247881754399626197001923608983159949948727834909667730909761772714401209745054754165227739625802874217870272477678738418155712678641178514076562791578351895692145599728590924629003507277357462876795251862251645502074417779952296913513849924741207640452006317282415100809838474843023254032606680299372407492467069748319755663340782120974034543784950928054940094993466590635150324314020730577477309151670837158365150681973172296062350354244012095599008563310093486145530287126908435152958696172126464118275292872568563147500757479158881936342070493369117118489432962756831315703649500739475624575492096270462116607251273817281418794713107749657584044445903740222413009494730278277189765647670080795720081696256049071233028214982574889969675431453863809397726675352769129307958402073263412104329741462618377408071034890154824398903704206953193558621578788750753756025132920245444190834860144868375413147862123359702285584580591480764575756302557199850375302605927675920062521527929809638621289564680806811159487111155100417853047347711513927896148915622339423277978922655213833777319556212643152590213587579052031037018920187659155015046564968048863109223520632395176734156460107317968300488654304477915960385709634654108305987700561910294963979625575998787137390841047888446007342524912595532408168804297577593564116212564827205468835712569819789478574919687897105330840226197268669145238595833362198436307975739087572484907895010163357385198397642338204088048536739182343948691496517170655498583957359579532582146841179575211455173247306364637879139526091234302068211339971427676134409249530203330487743105344449282357158549679349828223467852426396576297802518148594620068834762165370135959962142335108866698176627276870646584758191039607587761497520601818794016341417774125750615137763576657694226868234641367887780380765655411628607627216557717618098589085937303315460796930580641228819690431812118786885573724819155899111296236875969207991878307711860335639806470516385744425816083416740309861273023891799596735645144794660915316476827816879750801608762505068820315641151784704907211301517529273127130765331503090295436224011952073485195502527641329312933248917874888083554099509609039895518533183967764220774110492151426954446181693741047681184277791805175466821903225393144492999454348631180496796750984796149892154205190912926556928573168193233024371445723741581897610156038808055044646734659794507025425239371408726370250733886829724971015475456677079157539276471013857172601378687481546154796184433531931675631348559492310353615055377936920260749147153247114764868446768961457343225266009525419454755593387288334666017306509201749376280982847689681393917354912700988659518580484258204633877390538795809691448494345180808062968509827866816328196998134934436100786124268220433568159618403474136312212911058547328067233481774391653780234424787821645285125305575633448388712891268298243502702022451554706989771778503459600529008388541317370470636821980073240777130349005742253667900120769360685619989938551272014001849372164878570751343943620224645887484893005304958720670447479962462324513380924343063825071363002892718172182319749878078648851846773106746125063381673205623941230045233420154781738653167330478091947685641961149076147950655819652043670243030318478010937632491243564855249786536596253094733369323682023595309745482947300948244206038770048532213115786616775982863812012483647239644394953299474368734744825424016405031106069882448897578752924838550173572651529931180517685930634755087476684004112696501861024166307109972974511468002647993559944059945559574868044530290276205601946292009339330772279966526325577200827096645879839829760574006688914065289504954537357687366849970587436083449689264329471241613639162659921774616717190837808669964422214146626458884394842970182376175121442350415185689089716748724295905006348750728686123482606079199746705884691695829834382675255440556547596708070021800828103304606238804704880756090487669382282727024993138709364299740105414691367293173004410340967012479019039340178466713446706155418614008609555956400602757167972206509137201896778256355632609873413052071519281811015641054442598619034991570797423058471659346344134763065207537400082381369874611229371030195884038203446287441237626012162408723801260271508660574729224945840052828794413906744750445695187438811362939046924454371121786711730131642610354588215591408188750608527767796274553559128307224944775968734979295998651918346125546053118744867506126594212790973007064029034330745470564643271772554548380403420170846351378658101213234156739785624181836561930347069515687409212139371514698374434713635270629277821537175028992465595053973544664675020231814864137151725317495371017158973329401093410589344786362360801171737641092647400698291184403278871110783684231952024675645908189183514644912267436652401995484190109525474604109770571275961825925844897809667617853869934156853241457252802904975356146014609365476245089160195211503783582002427539018908109399950102111483685175716134086314325615375674564741803248594781450316416879994951639421775163280683705584934003793760902469473173020315866662087614232704527277261416124865396315962391408563968749867052302012656501433697550596048536825803528161141735455284445900739442169569557009061359100641997692256687241827517134243531801407465393697257299359418162303100965358687743146962568264617722071101569595567616477880156913052910339524567958438910180659249536834073634694420236757205768101572859020971815943308629276359241582544960749051556161574850899519071788617831753130519402763835055357179773194786073671662706759741619258334427319667281821998586428320715570601136862760846765561311527541971345322455635006075426050038684202636061415835274680707457392985895749112398948661930475516341231299473828397183990789639832391900816029800673497648604961054411835427911834985385314257257256968353841372611974654043327401306362089222726821481657649114909287815775584936488772940934735772932293604454084016555930259613956792258710238116288555889480069935268732895711781434712906235086774157259904840334057840401157561835642913454605068466350507071727932058457153865517673500263408976734235995484724319404197681442671416948011685879327423534685546741182004102102289002005019687659855013004375424601530106916223032918330929802940055834409483460851399883719732653203645593140101782987793130879600115614365647717560335284239690686785048948679524155322291682038268878035563366650711037287397026234900534307817382753007685902032779442333994823815841849620657933500459856337698805413311538405358630568051819263490088131361200283660253969410771966444807014500071824088605980157811452721769983082521729327431679406198360261112911093070249367225033699519317282581352171827835815546746440766986581714917866479759393741533065523403566700035896322188693087915440534336368477660186866104920527890963302273554738362482143913404233688216631474032153591395888885773442349689879018548556705948320176170809010368027114248780152910365520235136194347296045236862245441773130010381038654212389916260657132464662819024609289387736263716544615236020044471169101112949982844068265049802753708242098316093091020489616039941237243916267369797924277995166364969670153129764661140658998437977719621660775880050845111342491079398764590553639729289637636835120644974617757097841375199816614328764668009992311575232877427150672664129639487236098662430466060470048575791967439495761090955591701804662916316166815043574136361165285494717732398066730758153503739856736600958015872262623638432454219035156582733364995074066830244018957349120187519155612978662953927098905183410138779875538288929465274318237508447652328679365195266274409272587319869880768612140589195185912636992991623361988449151348711602868223589150215141209746316067514442917399631689614524762133185434684113834293719915404613898949064949724957281305995104784929143020281538385514160490376010128847680849929427276560906002893320939571541241769823675044281881708377080505058512585010646208898769813933247749925414012780290996156749381277255285976648868247404541478287688319550880504816399436024859713917533698182832935096464255309534337748454909147654553768246532957358424165122515571034169527788042132126733119432421693309236501235346561862465721981389282543706380176098943982520682486050799650869606584927943225805063632835910889739613316043400938216704625527405130990853937647513928536752211154771284170974935969045542814243720314938305568960601871604192519634793507973435665031353935097325630392494831538777058036701241405086219561032118748196683045510549374632321310506281412696688090467610903391208996940545206512350051995710763463612161311310423717568228307619502370251547030756267916179409229505412339222286279454180456822254654216810464147616574825596421826870011458618667723662709351780002886437146701425218014351036450792479349079734298058016459077928374550707601316421649855346930190534174463323402326147919490121732024220050082756741288628505057392097982427030188362979116025111197423165972171905612162924564666800870847397187541453319474997486075408310029032558661138409307855968076068483270024217335221943058930211545219298628200533235235153905438411772721159701095130547406828786810963626027775468001071968870231127883653542878404644571981760336876879424204999081429424274439726910863373271815392614054996623574301293453435353402309376518680126154729781525490605804466581359486981253766152865413281648535759869388874005004817393647924330672407798099902001555672275088463262135151698982401293934425706911110320538083534223955562797943510036792106858437472411233978303370500597701567662066347318276254903546651143942543910358253994828506823281686133973422414923240114809827379175160724292244651020335175861810023855746100770463085029679999098123524710792511507750288181578879340518337417657133214974256564886070845063397804307737703000989678411710568092659285827658854906923384778049815328236575202951283978549857108127650242670272419285310990585237114798816264361584639792344726194634073134507594761187633563030933527783151118329081629129590650887509706905403442835716815863123989248885583732658876434901813023849591421321653114646065393288031219037262432387281017228660551139338014524881974582515966383141041773965564276457386113231297384103543214958472287581081373352245708178196054518685157968665810048186431196887181792802261380538131013995467556609926889808939909050701058970417603481500747301792880640234682239794706548786044489378532030006994117127449771072523098478326399372355661842401059044603515655325893260202193546906874807391960715508647656256921921593751425798945557648867693753143489913712819851386002736700024636016159934207603761926923290837280894209810639974856009887304266785461404712842997680468892931529789899608688389753888452990765942388972018753418550233485242400721798802818744819563269249926500646576160100525884065038561858934196611686180148480490959243998166496829779244889141308020252798904854037911982255622370148414662498259813291788448730171791209648196628009684903566468737440124198053084033840821280816642276111667979493490215583521643558901773526746445015160216143617734797695588821896025171363586731864961324065861442212209560788023690253412979560087577684855388081749670852104189296059394652541542600485826169794599664109088399818031113257634075018743911240477825416417281127634020063156008768253558217851577138064150732583647822069743971378135365726233164145690016911668214500918013716498608994217394045852011949093405660979543796249562414754659856620756444406269880969606379532307001434437074968102444885887280498867475968860864411208628937825945343065232429239042224318147769261599668530621759706767862640457814534517811615442020688204834404672906954699318123895959470716321035450975377980566293968419207605422633418605389849644193623298525752635839559670216069279643699232237643081211266969150606437173477390023265652288249619714734116644005004765358843121468514901962589455611443798987421687079970395288023726292442683264848060199028744793110772059149245841968639285799887259503095349742534262163010327710149507189863311228119298288263036877652848308000358891885952495618091084346614082837110023639693909840776484382270383909410078511654373587365385762800412214421659922629669249932087895230175561587041610730848278986026498174834389571532214035709422838224343803446830261810717506002574525231923592073331507446359688124739521362633196543397306402116880004981089139662399162349545141497643644954156390084951554721404617505194423940559314739688652348654910944319783562000812907154345886637274457890361939178286335492041016185901461827255844624293778000801790106884467964861874001086887212326590206847495857729593548102165564891249765221569961410057247571255441163446131466633055680161445139009071154868952800535629158879935731998443952839463419368825056719969330943429422848499566641310929437958737608879948266362619288851401277376290494383546631217407624229993049262835261952793093089906228599446897959443317799729555970318326377910763578455571077745690460378523940048634036415740224404157195666283484252560630161470712598651015464027110356010641454738273141597954632048029497268704580670979655491291092907725971025964055674163682113026776920058959712532451152448111209347217913880336021364111571653789128294073121345575432326720935223265555275173808274796736503648849903229307231957017043895365360715376643160090938510864454563736927437649695358200686337824673087288168540894385835474483572306369153364523937070752444632176763518607409814579522887034734523875048050569113715313238360502820913898846789982430920423586022434761571084907715590883361933747276702741072754604904478788754420265400402089620481889532079832217600255537117382646730597641459812419425019706808059550261598748832307915831226245430121647425480536666274326641867484077853369597798805224087022029722718604860480852558829731621832069614176345327034973454702523440637860593500973295964412173869592183447577199308183807222961353984761260246768686336371236184478596273926385505535478459574954017657504377976425025197460478996524372916292146791523154392714081595598464335274971654298190983444437881229790252419966231376791235886197558667881195313683660764965556462429145515394728720889054912866100109999863798649398404922037433115822170261347427294908350035270649478624758312862808772508632178817009367428569181880927066783701088105995895782906260661139542138271727102967159296225238401733904838095985958617116227493121491956578423866914499159430255585172271915840329778992506065129490482397600136127076417513341016530300116353141189706953528110640339658139370874491701190528385732872496020729034852482389561020774018499661375849822586199849755447955884043708526486437899544621397083111611574316202064760839358119815615327653196688231068206458366691863904966626543442990419363171462866576011043745943584273765479127838834334054005298546757033296378423407290078390302541275095123202939817720485557603717936763335792793252001034489687544098766320804516113212294060019640489297138655043433503197711911106837293079179490971914836303224091936235711800077157404928816169663908331432968350484959610638030958182762258395500014414036785190555889622543825196077989979631695184775159457733782997465159446999788566979900607689885836842673813966777345069160576036964711503925871782784330880190238959931731481453021014705022401360246557694314245726536962293335380768806109881154465818014633556756839372558002867987717422383433024243115298325956164657198999565124812636124739988859749216005175436370400341683601006494943104364687007749896643000529303172731975880516634402093469564806071043125959957935168370343924792969348542496388223580785974306028018822446850354940434594439097581709851634811572302290709572183318173982877137587939266897516444293803382824956457275509026266129590908740139534826835518722596108674962092834170718021578307035267033466183387889204273084081580300238869673352943013976756830293135775286370056238622790115232110522323436194734430947680115190073055592136512197704303646476190467457420052602280173403464006464063542987705615179716344166005684304823812585411502722694476888894240909794080357116553277353994152314970600871653486907715452660372069402458479209993386043381845539958640611706597905715074795930675447610735279795963180687571454595994084063763471614874747725653547659865064701142992500205540304060868702036413264436516006638276571627394825466954815633363812867582593778107297109308453623174067203659155284194102535180219164374110444984400863084295333457543428093761496306348772630920406157273133581822920641856828633194903840514326636520491435036430750312086026313968108527509305688350861919278082626848524637217043677678023803412623371502766081705857592061569094939353545259901893241807305450410952986837606356087553976455691362899832136094144352944673703384760163015888397038062128432903644943170409536027334681260768889902745285937664771895332927821953874448639446498780177936604885877435793218203093113538389524049938727089893127969320762803780721707464851754441031853143196281496666281511504499672676383939300198246009105235426957564121110426406125594023940761930230181275488451314339125892652466074195037832434007873464199420222653761223197447665910977505255784043397215616605162143849783667049521190564907917247235458686653099840600033220651599151081975397340210245502606244654085533473988921618917479897718633240651573242436978161971830883426903921318797258747206486007140098617578071556147087971075730342249391761613545564975774669421406578204580078649719208253152500892441517930506585726557698527971063516690051532971344242167396337559089080027959656077579579860026652034600848836319518042078206066114132329518525521050699903849849454455595378204454969948595799534395076448689033209714690554243396687904001950711061770010755086167154872293147346936504686930625641600290757943359310878840108381989593189223642210797290754577679630208223604193384050438524030159960239256352093817267803882998629347714396102708882282354848443113932563558426259396684086684018566428293315225757681171377076227671715093763326637026540760416435831735796886756036220627232925515984377864051115815885306742241888745612805029933524855286273749162400598896272768891245970418584955538752151415859770386878237724098439625297262157164964410583139562371492434326473140167069396534998387400842389142349413808690294062464705638037595875898307929948754144871638905252761929951593198922917106667167579942397193569894927707032228929032784258600662918629375652893532508932067672582226760629539960808321751871642121227324955413300649648465180344747006154806567173646594720963733023305235797354882440942922739749300781170271487321276526304662803886589590045862461911859272199473541692913998549558122055103287524133457465754151867825287493182144762177007615596442048463776193349966201403529634792617103991224202963637203649856745761887944131251534708381383423223809679200258052427741524683927947413181321463933383947024372160847804053864762652483922984795534981453969928326173119486501931555188344783048793360005709696096066868382180939431785592353922702768756788849076612515061816427556224665789213524733167192810023138854264415418582346297437966907039959545228331529517792158657368067855634756186086641595311626809739346861912643233496874322028080393408922324610760755261740496644240528819728269919517342452139927606827780226806716242822307460299173516969908741614296669855642424880497779536787826023023693713723438203013259824243061051623580955344608242496984906714409378761298171347185255323384609952422078186074564635150631994546881310350427301210229954079940006907299906775411525552461080324074004297722059046840108297155809776839237794595165264760394025501234580068794321827110829703241967847955910371537978724332378389291768637298650807634882446817086182211037827339389963246091207053055091763685064153856514171876754907199611019437116516002431843182563108584462889353157286074506714807894004554100547752835512824575116851141100686686607550622202625290065704796594513485519459977133914530719370510713107966213982291397643195861261054065948306043166806166429684331245791279252345991734450479998421862629598004390599984191955536836078143697403491205823228685760484071685859933377912135314223046692021396712921589167975032530205288140705047483059423522351519852495512797629997790821203356839704105567847920412395565490251152702171580949140391179233206843751621406334304820187989671053254078191904726667673242615645718224947508619370997810839158513186046791428877884198588341335186907801833010926464390762697573180549172401345054143517135639191087357503301527409859745917536612449437551588688117979916281313259566658777592294970626263414802658761870850298151440365518992561997984008908081103940467807626542484415419729730862149139355921787824493810206374778718571803864153070947536594854253221489843310502945611167899534439287629628176464425512685549672496375757837123739028280576406091529603086081438735048983914403496741895145357628345110166853226576582074781329181637467249505672927525134651093856844293322167564372610593605964524575926999195663890678948442874599804086421938613799649456461661829293614307818868937095918209945124728172937261751478975765717238389657329388419354644244310201116907376561024581468677418610431806558840876106630166624250120903206944722646165381497476167516274730136035626632463010064733842448330687951665531482711607557915490208834490412166196186136780809703229670048487418585418202172574869098624110170503820657002534645318773336341734318602567154774409954849055508823679272000410846259332852051148047445041661887892443534251228126707128423302170487680132780799305420322042442998632816440313940456918938934302814364265869535530735952260653625109143956380012582439134219499338409101714545606249613608728329693724899463005169013792397053317287242706888295981048176457579566474596707926533385997575338251879143404988274634685758347604906749826484048912023450411001774818136288977205418252799084745240934352105867109834150897814855136505378482941024763105319484046419807641720103849747786127282866333877148972941615216459639060781766705246844350722471090118483275695054329532148184520501978257862233669997458856210289694592233359234613945117729649763008266981969804915605966933363108594644298760973676462129466448639353545752365285180725226835090622870503587084547417172423053211904064519552461381049944006321039744117242458054117918785234037000434260288544705919373592490796875107879415690399082005285453513010089788766739168892335893840737723926086635232597335041882085598655596898280566545183342241490184564018510531969588094133647467948778064539685550847087403159070549934161076254785140976658031989419952972085665470555179539122232552374215143378860188868371245420789306728966472484701993497673147454697679174801086436572067439679612947605938495684903679668294639476471218385686911393924486349807965521058155247536697476724872272578449113622863468075057300679247784438162906292891272603428302464990707317867511545323955198334428682518924459192625216837463914753583253408134240453667985420431860153339818367041380383049474726306513228085948103253837862414720156245318451837370374452324374724310226535111482033632318010739564615375450898367271818264346152985722457140202847534448993901919569034025431316229114905817128323375988644854100595401922753457229824789961919304781795377905423977857829162409217163609386328271313363761912979496311426812137583825477081186076276024471253559799499144614765037772167275351719950100342200112364640493097402918731651879503361658194301985794709149876887194205416882453253227967543449291238936122286773418473344793998066834492590277759796793044644729141885775753219733855453922703825384291882296895342054171787287417705832012294933684681730569617446831101152493789316393208704474898073079473148711755321730428935420891889854317622808546120576746284945598988546144477536658895691399479166102913008834007995096092791430908421152465965053682367731682674880063554990916684227600857512924784000742283325000912571237048301153686831311201857977747925668637212847378602951583189653819625849262744439165291258904761907811425165112312173739803620267116438592070324155037146121941708386740329359378289448095431899644455754178374566432118556994108833537953802422780554916616107027381420656445822905536475244212598138458841750475549629796765535689037521888492739454534444480048400275780783890560798888933632298054322205995912278093221491741037863523338739518699239989397358930477461080226711106989481714611063876677607170713044185235127307461192029848535270868997787616090414381908024021251502486165601117096813397511681560314239430201241325585461055372331184840462056150290273344534249585055072886642592584388432002994836526028575130043768099986520889919191404103858495791262256022094192408312023523961298775968014442307959160746518753485709699481355665061806061504201286312575967630340943339646398325205712114863280044388684512844325196038052392296800176431648817128398980349182220311283402034195210162927444495013917453992440921689881426179964171198834067562776945866273741209549442277774430623279277707998226817267753133915079115935218273034793440504644960455191112047282539767020600301949179538599961812341388928817239677696033726590193840853621459429480650855598932964409245543251694420445260308278301034867603450931291731212433808975119328853143551374232368826121086781806796725240839209262771587147494198687382378098537056496507076554661454206961671681356011641148537508280726388577259525588627701261548020139330164217417406154408980344727337898448774158062963351329808319730729178554660133824155569119419744017339204691366309747821096944086704604768269535658904578436819129319279465028475810118486422137337937357445623880955642705267562650989365761877909180422516341455420861811153698281953724044319683368875236377020455821093886870413015800270333325993059005831119605579200277409367780657994532885531214225834083316002879446069710259406966447035564639034118962166613189543200244938765851810417056631780910908143672583438212390718903357964663397667958730562511582123119182839731034051993227620880390208686470170359184927376277103882633652604059205083777209036157497198366550596365057645458674932123368872402708160415449085034945948921610430726155084783891427065056978841737271610060584148580616205717080504255815409036696905434000871173011740293495309977993866586059211575238928762107623750436530622837950483760044556815763055738657050128046424133309181662275882793091758653507274305655009590859298237466494265940205927801074096916472548001066353676741631493287790255610054397521484996414257635050863737497031944418064119709612784849703957628094579932005252012568698622954279339357544153744747139755882724718843365722805008397555313069454850845768915324189997975918408885945136119846559466455375261431196366461244502688680168599786877349651497608147181547126358373687122129318979876910461851641201029453015532965027197089535951173963442181417425237429076283712563149610196790894231823345627558814872529783842076203679982273074745541550042203093638289491966054773898478808566107529155381856051934306974244484385488109021717240829140098440253079464122145933180597871589361784184480160224428943460450131601252558866136465932730788873457886918357212903675227954953374515020851245057055776184460256268147632656380589433299536069772529185843996261018735039543208153119193066330014572188736449918421309643029337928368633804863100530892160367097122304273379663906008437468408540331159656366104737375782730678557508484775208500209193529181202224949201997360839651290401376352053626670202604818988419727942653356255338657891278675024610977012652944947621397058720632307401355456827387301454217290302092356366915361845536074074227263442721622221032528674525038103483785225086016152831339834541599106154185987164832810939732541506618033138565405625287824895645802261913162382897082430820594652197674416052202958855164180398117300156255653787659856761052993494349124928798499086065857922164845818917476343183749827012149697922509190644136562601132062404949519948579777655394859985643112191579761328921157774927948494818719997195502600362366678262806399924334483580486546392663654224611052886861861597131702157916042058585772160188049308265559318618820707989812241376907462602311418005720858789261998886876747190189852506949632449716643311721718319425289177245791316775164217252225419986402073486192552045705846349633271109373965215185592562378132760272195649004670686825454444234854026298229172521567946277299072136058079537798865319475608406523495405600201393360517592710480654091073976243063767039877511227283787115637112684869342233867795438390828016638392896062445875569219696268133987033131676420489420318686474860543161488352637197861484475980990976104126898083276123229282366826490860882796038217952642961988467627611023805055367494681969888199937432892392574411979114096242661953412581881250428464283100660102850751233866300170745149884929613824322170251899082407806083012070512178589807254410548257221797274413447202921878167134158939444154911909780906065860436475180630190552122398481954249181973904636607135658899553582737103389861949463193062361315300394778746045968972747635351026076783249494104005205103477373905653020781873580605566338383031702790706477678819001861941936182154405726326579837363433575235338758959230632317586120424577539170954331232699471717264821827327469393116726342494346705823932152994103714830809003687218956098590647758481251826272078692107735479466563477064732499770985586090266171274373380867349421065364412924243429779655899800574049542068782954337815033783649507743316711409991879507366945117004153829593379168451852828739990915745753555657583037800967481660608943721788854680215821695264981192875866390891969654600872952197968245261813704313268273076829435598784375580798093073174833645429219096776856706348405304993396450731320921716206719693542501113712027927271352529495284258535296672702251142644909239877570695749341792640733499669454917336515078791020616564159818802540440560315092628302004988791827884805530426336069319535087180678996219191781577517535671504463666164005840450605531189661400667895734170302000857487675537728343679979799197407270780794554428497529293253339500439058513249846806750979565199327898156678320594887351146604990913330758714585677106152097873638851239246232199347382113867385512912832247562950369625988535967853199594814066142431224224564730811921921993748339488461285825866785204696243042138361522670733333625227052653920175186013153765027050937702258886886670017592568086768365856004672926479224124918083412584042200751970143028953160209848004922015427370019722591568043077085682598210601784491949583534215089282776966397872465518143596301191252340383009807655732103084514005096091877873021452457185484684686223378559408282027670612587315637479462360080290768793527266609272426590055063180135246932001203460937374538190027208801664853206734625148287604099206436163863301236185145771812010763435427804014138824624463756703034249495251381125115660214844261133436300504155462332102984991191209823066094155739470980475480893061491333789606378106406701908026003878831762247375155409264859694370703161789325976351609209359036405913983385843929758128763837501114122353919228717712871499295779693411256414004485413895622260279812114337801815791877198103348032406068054206354228730414035226266790456954840175321416905901848008475293798362850853341757742750060543842536678110622268103663767344783367079634646541824077021210969597422313248526927343002497318919781251045066952357841056486587408237503885144529042964975008938817402386016438732040295347473472073494138050469620414733819759723258140939702451581500928788284545527137477210008621027347715401088916318363975539480506789799401992637868280425052231002637023756954063775949362167987880336229063751142563724214277340821944752841297572795101174250552869506441089038582149332606142697374980551618824579254929948078744085398950125153054159948613105529351541732240094364802908013806549211360590545999366034921794349194596544083345020562312962520884295452425974334035001195648018103213189378682908225557785716222638143795431404121296591482394150011528247953873030404203143355031359740404252496389950118895014563207050125537555722565478640422562256492629627083192672263256061234316755393327612564573497985018014085765107806992494378962287422805433304669507470045806544140042370905633080531584634986749676619888655040828632134506471688883057028687481667721140990654659712293402244310211222463369829108694169276191411854786517561143521476946136545241885689972591864625295225634994363984155400350093536630504998846615814326186434142540479598632475813844171331784217682829249198659163717554611638834745742272466189767319537719765646322977219596086319151897036986056418003514465593012943479393093113335409383818800780446866282788458779421923883436510432220754516217805185845040573563080100619047953137538223088411963704181856793226613508003389830724124752368768226119702388400405774848708718705425274817232940089452906526249762748401543013394500140265991366793237764967825369536951245109137589601869667387421845961525851025695353137423958245907894347319160359509269117416865814607554049753927321893306279129794249423101340144507582661402148688632002070526276988266114272977002585119437996844844396034323065183739881455746966700689777752044604567622794479641418191658986391172296134232505584966299168015736213973213911528794714882094628416999733656442889639883808027481250248390179984011036356213705763694541440324665337618013102520174606440265934889853806284696999814169893729906267625986756281087833979827659128384231206128123203576319004182515950594610344411678685845621947000185131890498429037760099148464004889949476058679952658500381120894740319730086229109017653421470800764243504345961501134721396557032237363725165723665205075389938940687723854631793665763151917699246846214583205989284057290067647104506823107301359196609043204726459822063850534951730925105076924999853532626188610170672658707486551124813866291537727822604636486180971299723886048051573298926423463189021281487821351585192949081170538970161288132829120383363398120517875079558967781203151058044476700624277176201157789048554582486470526647752701789120312861340294000377811674707777267697282946300737794018795223037851207851499017340744422302126957617702862253093706763480914282924132719655943381757909131680839214717587882152824108712848100688885915299881218598373285260058575816955408015563752262272492832220930715850287998122679113229132104729150787589138983089061698426580521112651567094626902305494659839582985651866858258269064383424184324346951122258799368222123496459402816038927123554458159708951375144073486035238454142021446606318642786820669842507826116137002751207491689395234387447338497108570170607345087308724140741371063153883404512985788897661533645238489194532621925120953695908945992605469489850879751067889900467277959646439703535435609044188009491876004589452579529430433366374299570302233118897869469111046484468927563019706524632596124432250895563305892728510916811676015956500300567616073936119619052307558807157043679348999715633992218722585667980539239781806898331961222342470523685360945255245335515333629942354291526291889473570854772382843022301339002378969683321935981992991441099672630490841437238965277373227409945169597416108398150692193975027826208209657427701045934690653216417575919151870708257465800227967921279059542313016079553653018470602034754864588728083900703081830839783043153210925828326463597750944677635200411616245930228718563020581223701569652071286776287223725307177168875713570972787366946833191651703067856902511599148141614250689871265605815997071080734041329958140683013124642264074404769163690270591059787286958665745868797156484177246005416421835231543523514436179636577650436522670924761187759984748201195946733652909348971448193186508002839158812589551739956623892531680769117308530097470520294880946181004961822682017150594742030050557431109678320031506237468556891638237088598848643201247507514388774277206039262334636379416202391288962561711412597606543908170337205777250460371157197099095207634948570451780139970967801175919514832821763259636557684630200172714608581273949234866033776786820644881430908157426597934426087538675053718238574293855701081218021219623929201375044248125505119048647281324912913665746170631743311637779920241586172709017283688835521917183735906169071823277332473740184455689504934272069478495197436978712457594747526317532724833174724629011064716309050507609467254352175927540653982541746086984055319028360168998393092320236948678533505035966720857427823765773472846890800833561751114850394104336714783221487535300688361721801268339052516708931595512790125867925411185165457103301878259997383104419069163969915658934775760387058509050110667745522865166526065304461240699258538595930533975778135517820222975077853133477601634883041199877934632887305453603285162290166504756934678281813884968022765191346028773321035245532539567285340778090073578518160137786598305655177673316879828720157612735804834600400079988604675657490548258288565071279611541902013546170953286075122499963727816715707122823928012283995478780744890388010508623953197140385467377180946211433664033436132330647352791300430490285596651265269700719119895278724196170755642904159432497588035949446262151037198346860513129434948332523589278443112397726973801295302405794956428327879585061870071434846494978929024808046388427312003155436575273851599153747901130397685356959181078212982724804573495439735777831934041474745251107750676775890197960085233190854148784034469422147225811722710263055457753593388911120752515805565496498647370948094415482720172115739246312589364741714951357867462066626523336597854722018535400808808272846364457128488128157213721645711399099106777601606230736294529338516631016411417543142518203718274775975571393168955876513991343420467133140613459673008842703811513074806934461978753533788739778683841945797964528140968069124294549667230420381640895721313285425036303859494583952170548992795077326123547510274032753363760020550611616323649209826243217502377625899745236375529289327732315146009738189657344909194711058650770467343888567807256990379854919676259066590036903484395162091203463103283266227405236499792497192799876921684598894851510015044956741438771554708175835113242035020280395189672813638018818995408862588310160990190214932653623252966684765058817516122482228202385051807897168152049334659855565241626648128588207511097673187095951321138022649301706439792986731544381417765714725453544439838745052539958403796145071460447135077847594837802164041052432507510742000042416401623804025836638478676465519773842354609733195075466650166125127934945522107940276847417117154883965730739332770143827370138900422468173016608152935931866444084004338979696279586113473526735333701171756367933550926394298647115482050242458617006227521412154112760304646909182949252978217930776741967969476209277883816462250004983169250654250373812273254525092021371362599254883662035309009710788955056679963452067540525842750706632052169846610838448484201942084801906086889788858617606047274410066984066437108665261525192899323910687088067939296607333884300285489547596291766546667287731023731543856328122881072703208708128275317420442433255891947408889799470652167942207759638190520645251774594373248674552479188729471416099021765071136370347411259696446777863543917182773517663736153788319764264560483199132800268800063095782958953875759161929990122228999582739407057648738360264944514987755106730825850238141609560317493648347629485962405277595034539312444856092978704871745771563105791199230578922829048760925149577199787921068699090375312628187779479049766059554473292311769030234807966492518325216168987086854118135239318433384895569019219275791895119784046681577371864391832242237886495263695027263767124647515357744745928587428863818460721847158041752785407582993935365656161961008154070509427717696524947969163045655385384174146637259751697148167108970357137941422849373904219765936438673946602447717338861217751000868570499148464664128614157424073351349168937704294531849959593997605414572423769887643632055294185782859721684639516163029590527342373984195539509859366182619334697797549722041414491649907819571119340957436759866329739760267243259290551069744060412106382895305012213558405096488515591894812331717741774495064719606908626807336802693752569459122642278252627872989471781612316501556115153846222703061589129615637460709358332118682073836052566754815483463066300025590766218059321498929634995763281567410639747103636933324710921720126475554381472884808873391400359862541816885755450301218927552872534304139360527736410912241453004125986927377895863900422180396935948132005091215512811355553297094137511093147113315360008180981006244854242851703750495491668126052242309372137133013943519750698189445880653340122382995654814182130949286324460471178668943124767201165659418365390588105172721721200251435369232241710632566038995256235428254709050759850751562015498317152856180616349640104889258459745418581165496935916388710527812369951012034214350303487829137705018431107257405624800933581698985360343981861783424587973623023288508220396627641436702674003753494025829320256066308288427327560477327178538782229263743398234981289853429463358613464905795179652837929367117282997270229926544076951268965960921806347083571559313596725610830980906549736834387171419815329499070166375871989320649644936409077797694052581773377812161188374650507191938147055490737223901726378164216960854571802617557195211488645530577729863228548976666511429595139864721051639052701166626073063548225179506044452115685224350302028406890225071572008003059725149110379319659914051985174414130737284831441770386382435626924293668336798202290319129213823225101233978198876690691003530277268125610040731137507042883001942830741421547660503604525665583301855778460094601382405657720702016499771329060014355591293955679716590764073626600945701724480295054555964455779361316234396642297498553270501487134822368554045081700371918241682765010087210985962130132687797351803482351810809143504740828259411018834256590048385301240825879944288461455725548357171966784136678630881612609379684926605975889404854817734833422215528925367505049384479164241922989499084907233018892480915671399638429148519074959420082091942392831153508996107733652636821166385821734744198388884001086622667823022698410236391496949087210455383510810597326543909131614507458557814644322731808955932867394025660429259314412097080255420324625936207523257872962409648858071465514680432443334514435448650325946265491822685961209775828295447607083677093201390348670670935874942136857547429755150029564566788796242210996432005628045767827071613442462785799812992696163182140164001361296671972199517722290581409007535604743490865343024677983456950875769584446656846965826926176074557508641204069044134670570573105940261382275438341469071363047332159088620802935686890423694510667698663072066445917683300759328822391575792869401650338530147738765697421426939769208210203825801267885104030742134475307616928701028075039907874832906732533725426026917988244046458591965882381989866630834897647283366193430158072267558931190974918372901395905365307140758351246267573417791573377313588740853221837272639405784470507284833102154316365886099737380570041351039398176163117778132805816577871467519196443472654263775902045289129055567004835706615891426972213672256812923123453204465541691269787316778338176435976788230063318761476151826669596180326897928337191203655205351427104631302478962334420262965603070882991642018157271877276655829955674567468129117799077087138246038276589733464470700664584735057487106820178831010548937475340201142282668876114207143305794334844176059347050435453333527609889470227079036381328566072555049772022134692472479857429201922489240423719751455200057732888710493149114201859807619077386407582479026021135462243391814933166275535389185859224749544995359392108860264741777743781461147348629839762739626228400889435128273585440424621755653367569311664285559869192242567799202917985407432420497539171146653738747881964222400224627333067998920944305344072362231227422776684516098975670464856082863954346583834497274027600841567559818018809535923700018596322984793784521415056094172072474582267875926832033915236180593888046256761933686105525492887069176722581224734934135916216880490266358136289426149169177161500015725020689858407309068291221798061705949174719333567887946326750885844397803909007046741816615854913337121197852079978456098302166855398601237172788187312646894362364104643413355818591266792962924352754969980413641119223559358677436528989122090816920335733299402745850952587011988170153825521278941015640525569173075984912112161925793630298893933399324200826760440872353255049401872750464914566869073033522284269557705383312812232368808246364263412189827852267215701036891804034687682987005133793930982106380153111474583435441497627788076399406535999805470626855142582656537836022425673323590286131522159021850016486981162921424510735878730476550048622109277997655246292473549079902577772030496181443678716254925134041292364482693900759648797900225454134141561102070209971407800865780680306861317524981572800523662803324036898888474186231064684014371158809578931473109559842644085228303877508629797806607130435500456227616389666587709941836313672510422909839361729850878530560805481106523010744460492007822600374159844251976159316760491148743289715142243321486275101812131304766126451966774244942895057855418847885851595871351268191744058735455418255789698134370530823406734177429607087029717220350298173750388869997493594431189260730584734649819605432139660594120832327401638351081756754711482537732254914614897835950618569708405967410882153473959458617765766083436086567804334758878534775285293126168832499653503315645130586952341834445322320534335537377991899528476498095276107622603404455972277341172911554108997216560677539760097022426701399780676769416059698691140663496946736165884063767905333350526534347805686162542448452587815951314866375298417777605483973788901927515791204256877022681488355493219756411621076727959739389209803968081440343571986957790804228475663487007644340088284285742367919565334053717800278719420172303716481092469846565996334119809840438957241469278232604662042001349121224450104171410288067690965928270427456068737912267270575362041356436615142354473645214253064194182217277515222882007215802500082913630163290653491354132675473610196374425661851620229623048372241299923447210598112916132051465693718347052157148414617614166959513003050049450378616440098266017227243726377562532920946860686335491632256818886626445244228964284453047165193844245514416261013346434398259659748180378369150713440852158863157566497930223601230835808151430417824716444864941229477202506938433639701361015623619854839983705059253739922211347636991234223985389858904843047096741225161765017494042856383525250983962674559718585702622224652408413921693720856427199573577874047373140203364229509010496117479470487398935574998508776073937284982023518377005928256305586077880997614447462725262103960827216307733921184596381476253575202567197925916416607808169309094144480715211132689480953728491452224980801045372394193684578569604296683558485181094816963934007457893139924426899977430229180928086146948791142120548696950073732325875651980856107542858102681224827972909914733767715177578236086210711430248639546734686553760857359239796356882659081589739042356624722809054880651813919037074775006174545551564239057369703473849446112155992105218837065160455006986378746808401991712131098794752200493495670139547839814246294457944283431168490453276891769131639713931674460853629116632992960229693350866090247881362668370651790040825251732577777511233249266044017472431617716162397529298986030456882099768589477370124758142902458761405499759278683471299185755874060437314117506788194219111666888174422123741393641298257876027514305100045153328352352217232886717214473481717467532005109536321916076753318551167342652436655620646699490233228170075430021141055888068006931474032321464756838893985385687450705463256730268126736993086489067398963841514446199112319972030852944527004464332111597795498060242702118243384265541890343786844448169295096587263886722133984984587469981526620919966389685829683956225766656174689460573600498204762020826319428455665528190191258084675032323178274292324649778107589057624531667473803118263952103214932845632995931590370761497013716220189947480149534721735215781942584848705872041156183782033626846364322127798797944386206948420759309465195151895563668293989879039017855587426725795920824204704422718396561097830634942580220711351798862023879561085164458283624287625391107011283728981854102192808590699667790154407807356404684807614178744793284550786538966279348358889422089945604910110432709525100305385555346090544663965932920574681533627250021896985007823987944220905061068876124174793772698867177428443425844872523696932657689815128754514086324353520194652781779466555870615139627677082787229087897277352148596018748329804825974854289900443434411046132302646857753942535272597437420884027271823792172293963147783442654276401173019319015057262599797077964574271063121495657622349486186129877937772169952028308247513719682946060765196546990795959848126032916893073186634802945951659583008527776802517169797820620164036843213142577468671796883761999028442512800130699191111051555900918403375938881334905328689923165546355611138722788771188710103166696096710504290592019872131083575424646252946740777955397190835198367610889923637588146421235512249417274098184473406999661860106289835751251758957930767230806425842529784907195605795818298668126345387526507107888762734665902513684756768463522577593155172042432664522520823011094815455456007517316870551545145639663125417876432688028378478684947390244977958015976286491022222547045992967750714640628139057655197360954852814531298998623708757656568771365054753857226215215259943625646222877928852088135342397442670261892250177764068964112570564020654704564171260055259623971298399666988858383875454346272128205118524891135787282893820762335433344578430609358488347230513885898476154273292816262273078840302004643194348338268016553370445638031477520888275470233006208605555212267028241302209017385922243970612997568478604046553090681956192733569845313474737376996617781870688528976031329489756522255644656070078666333071792984074366100568086592785116235417076470096152160638373709039420822355227153194994762404950730283146291852047892785747479442529141699848078096573306780977218076526677673456601254366994992561725025143558999298412843920937633883860853771364037726808201018149881682736971084184788235129622108547991806271672255414015748416144685495867451979607029253631577670368635587983123923741385373692969159552565067190931614637808906331544761183074825902825469517944466291964116931645841207625531980957851552762672056555327455379870817266073354846736824798906567444002972682349154901452500458223111547933405256648156854572097896246535449017757704270217718151276314893267131256510202250713189254693697756510863868641615514957073496735672000505585454266134509981019129700424338345525478373781090122365932859735016297998350513175007047399836410066908526830903314652856571811506273523779321247146473437167462881927591263127583707305293016144644360610668874015322483342660218961313335484193985600556179707223904815642548748150663659071532283278472005521921127278210877569824561151745323209920759878429310239781702396238184848985624247494884718781032524548558468259997329438767177856370033546155339826848729741311311745755232663086740052558011403935263007639158460630950261236995861617825154806192099781705283335318716652802091990651798972420169131112029293585718263807705729415743015898650588076670166127932332602574047718776111299547002285387429620009534759161628488903676346095328221837226989516446318583437377119601737360671654323707011297476253448620056998436624859572909533516082720667394387270794326619258123309785061487662806095122358232433724689386485169216927468175948154261785069620316597198557611260353993934458547162950571894108824621552991365019223662379187738257210775094107641586657812008991277062060156636574697239644276413860954662082767478129971354180515011291017369661822939764881097635665073203036826119769457785411474037935601534058769780366985769603967490966523018868913881732561196615812545652551658605045230318021825284344400130931622439819011737798968519823518202339376466247595763816371218676869988638095392300542906470486968187716342486152928928600596353554244761849907263762558874209033211114863336225238945676892538475438827070175831187377297107135221563590586078074982595766025032363858226793913489321063420799279646236906410115213062234144656013176089548972962309209669651681238233647713422147786670247395038500726370970972453305429209564225151706458638834414572482477317972420561683101581533438351405005851276819706357709883906103564011347225202304291861963214493335705141756225887887567242749681277035804103503355573784456242814849409183673346064628744140749883048617996414207944230172315362706363114613389042433302861121153980354874992656686458946355307986667557852962475882171073354149575749287665335791735255206357089497277502525452461552452572852182542978055830469495737820706669675824154959326259178900704679134482143198409144604374624143910707610921580580490502233150451114458076301054367330117998702039441332750955557737942540135388451088652711007129993946759828663628043082980101397717913608251102800212445026066200721943362927882662274331791102041096512418546950021803409837968899629677116312793304846947053524653874256564533579404314484898154105097003847048871486162857020072538904782714006419980550092692971494041384213185707691781742444975480318034835295641432065241828809220859581222161034746435123151003287543424863804824690229966047576143671639920557499870104511241889036863805347374019961800124142971259310515881707914009765761525779342008141933184919376847082769662417582320595688374514778073653676108684906208199711742223408375165743206007990480255517142971528704948328527381155753056525282943904723867455555134470820519406774294081450863635147442747184820053745356701320539388065771410422893353307573424032060469675657636185615407344987715679924446313189843968639912904759284087226720876844451027819742576487890769752624630578321159497277268387090610546521754248935015912147982354987182677146639169155493099145397593528440960854069459476923883141202542406979471033866457371999394690554630717101994610541405933069363790249012203105148252894398200459660335596804056854018058051988989592137764708083192262896550228957964003394510774853565660184255705641275283179671424830868897850064467010684952689717626619822752698257851478000815809805056162006797458464184768069161376961761820055678830834551493999496973783671196598393154886806297123544409634166322772113081958689100176440616196742721013930258088527724534320956464637562071586999874507621118384682288993325628852138292267912676181755312317920819668374358922321905218761049580488501788280425760012869526459407762983623824436129103625256636331281190444450499556115135797511922849505434360175071302620675972784806687420319227793929374339577562502638991407877303335636820777159036214556522070082118492916330599911918733152506720049953805060452005026081820882222740651506329784427526668657994746516323806077606802747446798282049208999809484364049904574024917214294685371341990270529810519904355439235492199182034024725421747179921555971535644266862544343109391569662370667187133679295105510743622488599722864908767707853342258442744167008288946395614181726389603951222660560208503806963985114880191608376047119979431135865536078704715752176340238979861552461163621160774674853958131943146202656140921460623006299713016017702495946656724815765068357024930102496628142618086450962766083697948072977265791573205341178345974608676523523497289271837357758158364037334641353910339245213079572930962788686961461915720926370251437686437754433752316762378881083931861104803803066504840896322725250243266890571794078626984984597462429038075138771340377587810537853956674080926499161925458194931210875275852504664575297558847452267424180860580985306170290704566798554568059783696487529277187302110779494674977585689869620979783650806281471202997625301354473581980015222534837754430666799465301631486512669619425520628883532844804435169894297996989260779092052169667154055510973664007603369609483582465057346860057799040139548251092191324138950098110200958026171891545250964832531527759291952507528084136305817757806543788014736330699308689023373617236304675483989584948158365609478755832341121630388275334871023936001203344936292016363242137912751919870521573762886865290643442933689578544687053736663975019209448045352587790454049442752814136583680304011956625506127540305236528072214066405350134027940115869731529771884385108270478009061937564505723736258876026050930399996480794596823800823963926888569373475997273047748393342424662664432991978870329437410884476200171638240145549881620143585974721818022387066081939338882523048631078481043911043700085176296458122267464510312144620224594006641632805493460291014854982739017612069124781071500870306708114671208419128676686588298262786972076585060057407904675424064563341253034462146276689894393832962820332927525835558259583638033175797150606253434565140443253453483086252572022651890867521593151788649333642793241518054615194670036702681568485850819839558651746020790332237880289987884939529251815753237386110585328855279142477383701990585772256209059881769339709185205734140217548761009334405109082694594692766465931858479915233763550313206575935173234065658857719862259154932835853308544011559677939200645229990267491617957067546772305993895202473258687644808707296812424487328266296252874393327769174387964873175642509428264211808262988181324750759239305475393272760777060487806137882373849981341991398537753512407949082837240766433022350420550246423668151602993321616877971716949938870769243530635091817788389047283478653486384987510492494063584914756567479615997994791590144819550653281142263367309278885351564313570366069133977142837616502664977012265059432253852132440353019330593509580511743996748993849416023087562837301664026257507340686649810592693609522763733804624030040980056273693310432776938420021881178992920042732527038067102539547822082687793327450643671550733702536504009712496316588104593891811871425086956518803867898147535700006642223753424514091463774901964831223728580357945953109083363326782515125026592726740411254869664443924688639963442447994582807693142017873200742589234986510895316281596757190250914558263097128420562355985277676321786913961308370865693417582628157147127301319432289379924201089309724305726411109575505619045335440826706259336458119053120418086316850526618339271942113387623995451200796400302951748191618395549589319572518899541319751343664050877537585692664611283621962702407136589432037178705907393693199626712210060086482456753360367403872606227621566691275924908858904354700140101417504644027296733910473656540939091701276765729155719794725422019215082569801928989237601108890313964427510196188948198249120744419380480240945605296204503891058436180924316236820928109018519927840134736339982289343049689522932224358771874453913374055094205485478338864351663209458906609567383464988350103514169892976916045318504448835337517039041941693855351384968886082184668869094832180423666147225844484442349687339150476338039071138262649400333991043495918895957336769070156444868490099560799852989197934479954443220013643962783517953019788339630214350872628730354167819207895216659448096179170672890639046113283787022345381338426636080775146258947402220634883357147826871953417008434167847785381086126495689142520068416639382425414831099858384013904673179239239650048200635038130328041427066649169450529956918614449488955286288122736721337335286985443762512486079615883974943378684851180750923189355993195039878440167195266397945879869624174914413092012598315631279491412581844043795149636308788271029545367148123511373064509650746384306030755263130074832219570765307509111694525295306776443300690893604437418624835162908974711461804569067752959666727497847861273054309148315556368531697955127839020816956110039914359802579783748903020493676646441603045268890145719706515562972593152122965390683782534897330263393014739581903549813404469686268834808991518165752897785335031803787877478939752975495194450324610422918288495700365080930087900692796219546152270970603258797349081714614073671505740472790111382652762342450284709766204010937088754837571012041510926519850947524652146503988395016203068587243862772756673468737221928482775529037330537494303089067293939783889275975223299914465543182519893732055595764331733334800369651652792610872332574750688545827045826827570742025274765114970958417449013256347212094781637408584597973644549764253562787081958815932726939898587391805623714767155292535581101625367963891358349671935438941375766952426725943524829695785107065359189565433301674822069175802108496399722502553604594814457057948614303738434956853508318999230154177635763859998029392481776606233870808628086090964093920146728848807165910138783402282581195181803649865851074856195063282138461588446596068993401269601335281685526457806573209275865852132307190902584061710539696569845768225477841468050522663803314185191258083412301095553014265373254581474247647614919301301155413082737135511778852509966982630822494657644536273469822902075836140719260153722550691273316676871546986780437759440892073342418922946507081027194049766033159344262900650671553882218403492331766176331101578655961410572476754078861284848516257456059893982245949971659124444861347482342908490189147647460758409610154126453848157801756027061077917350268823721431170817265333351202689842892970625990207868487234830318889857605823601577303496212577830784134290758780516224380002839799289213188197039979384743815682072122862704892377259074276604876523030175577615031168278792374191706941309183510086901629067327389843317168747427852787260078106311755946070334165093808537474090757347333820437224789638652521631968700755712233977508505317725437517352487548257125073363204216435505551708996703684936343481115672743512240708602320142287066785896647205021062929377086267401541336758261071538469436967934421758145759358169794695354156451840738978463285451830246676634724529868334121103206770786900735563651404717195506105969588369269115635109868804251641787069504335515179060018068338125837533053520596074522787286890572928943904538680276267748828952847034329126875330860696372336992142443129540236807548800885150113737114606152673066306250755994549032308619562695194054979765781367614820093257161814210217467620939864981554765427233198445598258161215524571482259517567570100543475916854242383189725087438225444995900828354892343843083040045937223345949701903423741010395312345388033236662013418493194635548179624815398184667186742784283233288932764369504159474150693210948724780440617023790621766558792840606534352845400907623093412778939896311294582731427642225144036403896238755909321297605758136111978175270438576684911704096028680573902084629517619159112705767964309516230914645115501544331265726640390859036901408986841952477354538464001222097914870668130172846734299748718707482062954121036045740280508037075507848412720886983524955964369109541075738624451934959507118289655438175719133270276366891102037553710280184997489394567073395851557853382961313309321908159301503678073983737401587385700699015058987256639555678804628467303030092070441492875339722400521359110581177366649082833559585063206940791550684378180402966881437418510500414095566687985672909529967048294072886934304843475547097620324926120938354393492491240511369704113299312043905401898588517428247499151735272057088933524587484293203277748321372490143367970965945583395701326283714307735216530468540563031199693434165771855993326610057893375094401196339305808820348290121356575575856212327257121112632059247028696460367711553670830628161976239792054411957607079271300642760469316930043451600577548458348610304351476429582560018622389369246242630500268126012368645826958826101890871673428171680983540163096970401238053023433069468933857185162105928509038133494876329010732666429662014347757506263488956450951366053272005317063346158551200394747207840134273054649607031259962921155399408469047612317118997689637178024582560430548684439833668396836923062372406096427978930860772294920986084191261610120313747849128880650835019188147990238109358408045176747313841966250158068531819494180751487741226027409858626920498376004379830318530884717829013735165836803357048709022908565004369589106356584567050939907171071748664033848395902336175975000835269084295797413667405207833995976077480472269508232015525187548638065601254979887540633320630086054925245554606035515481440482268577284499032094348157075939433827349426678618327210622879103444395114477250771639454426576782887418122600522868042954387000479324825350478130526009151962614875491398513280633368721884724500555576612767554527312759692758288073754731567041167816953410508005000899193633362050280049645579469383398603802064492238896145966723170771159268352822768302478280401441607590737696309893765464653632745539275707696339198029152827748098857595349532019983025704596627945907934149029183779486028830879016946954495852911938461822523210951266683045693026522355123190767899221147175676916996135317660437443377249513026937226690294562695651061375117923836849103230047263181132495533071942764676123192819592327492752279454298318604454424481401321566331439462429276211701969595067041613809809332127112925659708793034829641064346373797601288789987279833021646255341740535046972598612172105003233181656452034097140183574298455831402914291509720228689516990928441347272026846660746901429134329163924685870307184139719293390564094617499498949565246022487683003276984277711842071721032522603470303522497275918608641123328031569646183513318269620978003557823849493608723297459898550146274560634404157892164554058529840389793085979396946970511367362348288864584085196404732880676618491969512418982220423319997125156902441274066022999983301796174112844834012938785689635794358155287329111818530980222797168569600498157485210312855617862549820088803628667484996736181507624848374214606932953524265967473227720136081402611624404423066369652048474896157498797902878376062141642038615720870777741404762483195150360562702495267367674349920083438773241216903915141208593560679091859289881899842714155482818280423570140375685062372985490818988044997772495771050620024074373685272076026305467481273266102093344306216158406958899819385750151087589531093260656016897383847543509793986228085990053516927880302980826487904987401306576094508542317697561266215093107896630651662126292970386205509750217107796950229537145011725096233538367410495372204146610543131646157559440812560016901180804916155130841341664458101037370768753361846373277224724348723840823391292801060952338588962754983808171553561149163613444152581023461494384239885365865480950848586372587149564041420064704228664997257474046404993223543412408086542404566293177646525727003870297528688642448712268147723348327800073746011456171392648011652953742793704750011097373619497023211215104420676945806518250889601067388740892695894337576503664659474572336117169435247262074996875333040381213413074411809519974253654279233512302370239162303963697005743246535004202128598505842455937440411795499850124953215557532650180736637474770357710227640557646855259864774724237652014846389010602363780031957267903782592000960506706212509854891642312167279498759996671880756145540879735759743289515091795498139807595421308428335688685998077468711305307101953659349319330644541478366915844234143846212161387547125157135582067524990361258093418289888635482634333966339177542069530190783902540670190347991650604514487904730083148578752019111153869570000290414788551865785209197612504697600589614319756839754684967515288781302913889876267786561096228576596033835830839643241730338766510322871513210175157849806166172177371656560619443933485318063733286596872986217657380057872274598619073070399130516848024998685733315382301351814847410309891144343508991104801886454012019027526774122666109302352325381212710888234718471641156497227654623556582059511095684282017667618822659227033028288054595052368672977527174440400800958776178815819422046970614841811363262041793540850002366420471822621864909128355026054426502872474175890032650826927269101707787514747014880118094357538182268280276691811574469742973765629654042988966540682584958855382957357459323098931991181958658020774136452895811140782468380794536704360049498589459826645154718685474782282899031176310533186785732815927965592260469422891133786221329540523910935660173885809294416403273162638787889851082637974710947938799011541364940749938170294672249325536796284055968502424420162616227033929566970622238523929577144301329156630710505092776575978036125857562328030141462190715194819515013420140134879135120777029032237916772841619178097874334316342558987471494191635689614871705891071648331784868728578137546665261697124889256072460416832835234896983553366875033643577598124992850968422044369585680974997929778234373152933174311211046842072318303711717548238484941731925705719927627247444003480860486802641775710187011692980623205251336963125205431146679720632616342912367388599308909894271495164473094597952425688475373664142201239179741821187423363446026681819486451410241219430366147882448899254237138806615007844437977307718945059034307214112182384714603299899674746305802303210374073542695731113173295404177407002417572133940904840842463177979831326548621525719841498509588195741217551416167669563029798496076482321725725602955464599660194604161892051173218293775921333042195162484990573999443476923265496435044601824489172968623465123118205637138895358131464104492006998955461000182162680575879178701725078942505898166793378696888919167710382718321616436036650421860593536987634781183682814699595739898950011171129166334439437190673124055552159664459953850400234249814195002625425680698723098425927909389711012397080622888180991576466177876831632787810165311703380342918543265476517831907531063726832300048732256696162565744233014584302985712047895811992658351541017086457983059648220641525782560310769202552348001040814259719788550526589598386004586037206553248527261072090377609539553662733147587595299122161026609736376467284848548426567586937029372809772366109237309032672046840979669183040816723802199148092285154728222264576410002427427548592009271599775596827950924720139823367898168045664873976718256467379166946254528228787581829418466319368435688843552624886854939787440018328105138364944582078830295693233284275768821085738287746862362785796702851846417281299504436423355361969756874890182290815085745056669390616234088293437249093395732528982941826076172212016509851312302500512410115583590538387644364064134292907757036298959687659713030588577476293921403052317616261813413921130191250560943121032624366032551040503204119679548659651174374914946083407128191996558647884709656132178979713546987380277264994151875861284186807567864169186553371709095057897542302164658649654556372225365749219100200579387518713238436898092425546089520668077443433279384029927999236351209798688496766179339792276209673675865446446997795506328654177808330593121483866550109498412193538101840656881995091857801704461108817101035168594758106946838392369699287408180942629929177077280112475904388493212829829634471137663843527756619528691978842347605474204285407174534490660996613931665700488624156904267895388253783272830629411503595361378419049344885628526268254109092428289596072869324701789130621652453493517711612689274443077427596000541296971340094611628927039469486429768635871472002369768916072427331484020933513562775410547318218089864657420863510741137982654704122952318575604961618011841845699893436985524520013068844171410806573404681407419004564191574575239930220329395630948496066437641861495395437006376158319046569665533149138403726276234023519035880152277163597739500099912165250891948019718210625290043702569352314416283774448924620699160383061163674421946663406472798413980937288048682155621607427739009584522522428683984931386602042439904566200208311057261432263941641769307803222369716580661942828550982021391866496331281456214463901361274505351143626475360083923224856179285354019044150035420047689436077648815060849594519484233562233261960170218455323404922300327632851913745246222989536327274745724354333617400171513072845514178133234726423415361173756554527750408808098338393012689397425904556641462003613541640288617381630395388187089289033528435045562666437871208819950780396949169844568909420931047213515362551006593584137466140441707739526380858074194726195895766027096079007322135242626560318894822199852054871282656493412303095045050185888460382633540307436379349895012295620014137202622623659395267190872454476520658205050334277796873548647158787819417438266473079999293650809518671555043456508585558668305492967214995541007769119494822097243201665618886812895875614173234441237423952794302284775833579839439383287055793982442099740012660364977428283847218051947340461694380609307664479685598131411603454659803498536968931966801498156228089493308123035693403716658702386214493455905785188432386705638849557122621586906277025217211566424406979786097413377669624489301479568885660085190725927738923564889928794293391100990137860217677541375559652720177936360050397708739324168461536557731941733534141830159257309984239164243363973538409824475414569119050485892905001608551915008634097968172322164750015450894981452855016546647942808200413644320348824909537920112588344164547517973831331109943973696980787109172905105241491733922433315486817476369341679019913042740544268964684746090993069932713332223207072167711947220474159176314519533868992475292287701721728524946408581343665580552649335362997406444090710031777209385334892931413171187775427365932478027433791642510725880224675972387968154132490477933389512004482587044307358305310797888368987495547625847060850332876546107338778631223071921777266712348382574004964663510849983517997523220615251573884159769944047113171430631512342501477477774868822980695464974706052211895779084319752951869314381962273641628559730954885205067390046855749533419642458929341172036583440583987127156822416369055083657380017334233328482757462686986021643178930671810581854923276355474646059892781645444744456911754459259949502655531303512067068228471208925436111666457028965960663140186705536021862358270142817379614934554835254363233924376015710238671596294800671235347500903951603280654377413495203115049664617562023078897494306082552209325422108871100285893957110933384405367041851004496852383835348436558887760928474161599585361222692601553647933792146801540201780645288914504209464862700249637297417229749880866074221090426905331235592226177795990271877639327002209430150450119787914234759293219792161717803008759854903093133850271539679854013117053647078926380203648776094598919113369341899379693153040573555626372384698914569405762431596552997184457852911999642980424920334173267110620160424004867516465070358217063990591113863953100889726489563505623973265730811700459600483665660588417942104017826259974703963544135193518675329276635944607657650856410243090884551966305160304292965595444580883675539364308418768463886843700087101721058248693602193431355763898780187858620148825074688341800866848274985318521767417252947712663324499513558089978498765406915327962111183613219227041228316437297711083360115606852024442338782393106240379718930384698922571127086676417020512584913159764230950631266365820518355603263555851677134833667801729026351262624087248288145853214849672867045198989600356871617342337790020865987294850020438701521069910561869514758414625216398224588355461891003713961205816470520310685202446681825241196661714940517993237403004118903846941005008039800345698386895031332745153814614385110563428642810767028832527587419971921628172646360362458850306929207963937776937877866330085160250859350153189332682972720885510145843986891968156217677470350085720469423208987758035172217743753211401570690458829381340526779756673479182118791420914752709842567116478238081854092784921649982083635455366639773838837201963549961218976342482597040966120253290056932262461618000522207701749486346833499336734612473905846777098936849382809999575950461744855654861029290274238614333291591404175345713614693257596944077773180533345690582948327504442340988838013464102655883795453530311382641494813834508904631631036211430696976057682176157158742008734942325433311176524804877804037488896523599331960839857243665568554564135188017808289883311871942083264038335204413015452566909517654315114695126790517608846848873708653786204052789328328789255859335896194829323244416121278481684057702421414186623463848917857941746777146574910835701975629577554296326917484301780338318957062119905937214382200483677441626767461851432734094871057440059402883797244097185813661356928207244859970599797728298982392538459381908117284428634970985519561154127933748044987506656882805790706505951936885463271354981125363536963583130040758859433342985523075114529017512529357875314194222962865186914003238074419650031259275946635735407169945944492848248174512060804582476854443975608689425516708744330772703560285202116463758709176673476129170430090526357950437108984332926100473988139359233749550632867937227370455055530168061832388371516326048062443663327986877358670516273961147417115202753925948787897674840975750801206434795692604472855018846923470059630397371514381745496484910742927035172462433935604044397679673451952312998296034609276757211658251692288350948833037929138994936461570399502254197214407928979654591393363527406843633752987803865443369112307915694055177353259952839129738987707302250666165980438806397618451068914447420287003342812169027345997953467112493736858687383784382795937821435803515911317952838634238756753056248399793585553472620562126117117310349232563134954640710738114785355911748611364575045573585114541273975105011528603451114036622824419325642163321244498578390101897763299567469261222719775199799681880533802456861025893885982376339595887830233169660990203835134443385256175013492617468840138977740543058594554469623027935668850008205309686888833777234220835241135652144476416967507566596918969754792379318396536196672711067359281106545034517157640787668907402755445763716043462189387737910285694028536254243787094730489501088070330468061327223855089405861971782772550991818769007459430924297100386132758005754792812415717468610210991490286920797154188095367524684396459691324368429901075221326183872278199442667298761517589583520626092540692524800314451382356643397774111180878412883167082814869710078386788227508049843121182437496227539896758347218455567534849768101607897286634649229685429921991784091808441567682156978224055546991189900686256561276548511806514394229100022604518691824071316111049500499462635067074502242878729964119296790677835733363787862011302429938438796108330084332592181770556006165942399449476247934915538570772936399263392830434202417729140507315407478209512035687594175588450342676412826777250600026621462643143448476236829060370581003574218870331296711861029239715281264202513980349583971796573246296089842899799798860940375021458945944176517978636605444960910774318610205370286407487581508401121562438447787632828854062109909239095547024926885986220536812597511751916123142784568073883216644476244736916268204625369482293023784269681789240779445465064532901554004051828068884721701799835966970538730483038283110218725394204017544715521748415886035969041933540654151927934447947229425895247730519765733910850406249155835443597366816978738577059648044576357177742327502528129932230001630620302858819485924237744185006732628420646681454364879716466472299284888379045569314808038056580646121762417310181856170381982908260060059666414068921520164973633393706556807976990395289253146317280617809251458246907513498225580298421606828655125149059233849804450388697261792556221937605586736032246273836876505822111527989356080042021445108766035525002884958741721648780378146340130896868553038336922001564224526680924987595848766608051265484833907202243127125917874938248416605970930637307544779298100993550628731200376622607707052030174433074093275539630866046105490582514382820229176108225438094098545366926593931617383409857275407321886677266663990104462270403873162417482903365144997407809694872920854635268295935577564643751108102747983033902728434275871779705099042260749717522850138195658862193662089264213992609472949935923650791425406591293781860357802386346919494365985927965581699794064044764309269421244982974165065414764768407656557176959677724129776960437655578216188683009235139764628372099869719180260875380440839890354141120030025285493087560232350403977316028610693733957880854887984324615491848294388862786513715511894830413391281731239502372045153363024404641003138933728921340256034394085651682229228475919020639503128816252291764461317661223665950855871258485126558565668164390647868249226188949250598602730114302532533039162363684356221814800345713267376037043804418064418169325261623030154526453619956542324156660622182914682203374462626211171869386515150646027740605232896343770016003048909788315093916707959346767727044430560216703383324176797629144531261817167104703625715616273090211178858710306242498029754830105025682673855571449099743251555109620732091136360108905186212043908339067016547700896286368609219838967342261408219730115825757770745903737629877557557849749729240440844275043448380348810845159239070124913990503478038336336294277138618601387549070837342919846211675565992314446674922165917434335703737108514581418697504176998797205660508804280156851206061641893865451601830327052823139434363165590215358502939632321672611287202626632360638049298517814274814069879031965371469515156796740207265681791471603075537886907572268100657898630740120478075800910869050268886532058634784617562963664102742694651230417408428480041809576037860874295291064048212130530034204217748548328159607587253955388549394269248889752990455296600958192834312408165956239826690999767998951522462643278201789011914371993511509267862923545222844453635784000129286418889312783587740631203099441807378653013672733559269169327640625032295174618987335623965343280020763639826637450444377335827875297764111098641739684762597920068161138485026541907554822862471249532646755972222312944217066268772264607160731607980381722177659818010376355265140295688555267137441893445019164692762927601320676523360631045600810016315371684709233556064836280301508052326273836001985291256601329076647260531397988954358666101265105063591057775506068028722332092766411128979922687614059436346761351075351737450397212641407088311292216743592337946802208013655809589922765535088722641129761921129224721857279144008846763626705197533864316042219345621285943367016547300863863286048302347834833565686298479334223776846437681013061205497244287227271926787454114049566001777862233100707570995750088977040276933430210889856777315653705410466387464546139659499874439318435484108917556196874920246240901202227003671264103071144362630840055808320260905351676964877116575907744751230383148991760680709532554875816700728729302144427334681036965614750683911541182008898564277411421880933981609752294685365635777527496205228867382556209510722719664833679004952642602522567311658660887213849901594226163482133517022965904768720133882552719575503259265874363765190631697114997273076647548662978143875003041034085803096000697828290530800818703015051666170300043116486283438470495233329439257850869841784205950835537080922115009944356310296159527230491783763666648716289786982807769225017383394981726443294859995961306464818661757134622402938869646482619756653885647029420110380463291829908241917937494503270020457452368135407914275738916458060826286572776889692684213936071094652700314181337353799180096935235334866273223956978831240054391110109572023356111753080187023916267445857577397888888986121282989583781054251436534633696245612756860134708778156996683557357971220246056775118135778687560888492110616339606916524012421010631161544174653019650096732103219233527387535447102408306734143920058791707630384351913443942894443132331813390004370047822075987059810627564797407094160840417798772195544305657526569738222467731644560598148843634431754267690706702121969639542802572481417754665767315508749244292295991341681316763453421079424374822773264280552515127777476169710282959994163465856916504170613583862525540630052615669374701176361236563955847878895368722355363567606352289450706715979996053529974576987691780936962759923008698591925939346089075975575817857099117028963348799138907308350946317593536180329194810030917444941764912814403224914332796220649540639756819442835151110173363445818461213114350187278630984332046736932188620463708190491678402402954794972387202188797196035937940547981176136905934766254652013543791826085866700373156997290691784463643610041455208457887022533865080070324648872871181280788559706605208288600504764958067083293118804158930749396293876088052767837315189153291423195870826180327233141684214911268915626270384803235077837978821363341339621537333020085890861561229653689020600963271642890145603918350674481475845523867334094285681801128527993883164830734422585078435426220204354742636419484598491366238493494943245235402082997718529922180629364717816880631310452352194846115353836887065277117352226792406729704271094052109100056325587059111875913380560415129721504315673741743278324563733611373108180079873167667709218440469441611401182994338282031988460934163069611897219700872778949131136568707046350126001768271960090974953286266086581824314885034038970613246107702834804970490328692996667577022980563690503528655922258737420487298976381812094298369382928974167608967134936339893169198662537896810896549716014137471723359691968481112840425302067626077893980978388019998466471253515952772708678101353857730687189190481733051339088707144479081760509670129995988134395085248473486850872257813462812661851794658767759755522641243635282613080571623653460286129606802695876145860205610867267993817625980373125997182298070847041321652734367561897515284988059229677081335958188147443937630294238362849394486670067120103484903982327012436029859185455696615246501029040169761218491126731576549528958015092899648432247207267548983824426026090742295720198409640365853680385722088334169917255216996941869483906338948379657189152792994716931687692015991810175550884475879906668551537859967739049994952861016350072061898777550005074780664811521231755551815620739278614746636213440839099991890429768693667062467174580412576045531707220962992558324986808466885641493326803699133907208054393012569250679271994852886094688037248305530227484638256317944601073638012111013356120509298602595937628914737636530388277399797638893480381488093331785885523706570259230554371831940875485838103377295891535567652322056267553426524435219234792964366983179025763353515142914537998549620001126899701702424758209920709741355119923207457700383389358260322684722859311207805425506955718690051838666574031929017283596806933394059441656431762246986259615787152466244565731544016651434959581711597896268412220162130056250065129689537368551232130279118218848880219088756619609544854190839462202407311939568044319806314376067358296107903343630372183783997771085953561208661181830828555291936953137986991436151409846175971002589101400010161463081584297735659356742103777872682452345027971110269700496045519653539787325488771474668807169822697294360253884260511017997035617414234304097062648957177171134698323104669151212744162117863515052464120996793995415755184517007909326432076246428549939294982398594103036356887313899548384862519251478700001607844719379536269681172941139333353486627572582068049218412211251593761526207034124416454523430479360238185610705207005804082927736687854471391508769135281705829903790242186584170883362525586976992048198711278432770662024802339338692818914567493870687810116696094740161271699816379421669319767447903184215408595926366400326305416690679390112868063957592551710333694967726399122267684896265316300463666491229356137346646890955701281391009501921464919666442036896247559746612697453357936104991485163312472815646194557211330111301104627432804747765730744375416081521023348933226391349443328180379528421713726571971084460797118097076937592846424514354996450165408524296722599506340120889821607636198597196731555725568854187833608957165854953960511326903915392770299239538676303464184983646408742064197663594581872592407697289574470982463124330703529956664777716627848558166593619800617836432578624383338699957665043160483218121505112548676640210401924795146215220955244396885475826133154618331455284067869683345734178214068429382258895583111891824263562587286857096340747261849177739099770431301493786828270579943854857560070158313075912082959584622777558009418125317814356419312134410534709310618987944603918304796010269247460488513528692717387649916537874888204002717234160909162563413088891692354217110057485085373169763193722509348516671965273642938905739859868919409400255236965228505017198237255588195616672895146544090258740865135259237330407988013896260124425197491718338724077417267636400873795463750510950730800694694913853524167500405303171954163864723735385885718383512319847143304327799188831406204006928213602576305882151209045167796395257065953069468077578486261778067970495555563826514919705201142079802790932044164437767308620840743990950302509971379625540826604719124340325763698201584523736258156308391954862944271684787857308668390201185515189461340415359975972311024645913081179975594015253591611171452540846028885307786536997335556736562574653061682459883716981899143465905472284042244422068765567849739886734381426894434010697401867181878383628614941413773222512617612867656373467872065792489429711530885006416381583109535152093438082672429308831407325734538084288438166628197457120929225205396070943339486477980836385924732468894072367455618874863471829427264561208697954112610099583307929724155872469076423776664747228112790711932418217190797930268601591458933399651182169069116327423585045618015987121619846138148866208810058445923942085563215381462931213520581709206479033092821880723835005668079969582956165421574029028852977469191367819407599873791349183464030205927713697805296974585256668280270368648163713493389712937565765554397605160812118524892515999650275879983569926807961119020937826302478426126715178881744785656977253463332678388770284081317219229138789234098494244494629558944280023974292298463234493386734432893069110744838695065832230791976425190448289104743702109713167027138124511863387868399376275654256234579440898369538195646275522701976890962512372718712258623829203902077065046963800762535617444812104147301955714509157543510752138683788679109787557674933718968851557445601565345136514303589543722094470327285769615954154958865889054278003270120547905663439672814789890884108783373259441482708405068143084157955664789716015650369021329547502230740885735193956844986355636410068493867711724186455482607368239507315238561595256006679223823129772456079708268297873575094657866805844562375000917623788562898226327286467571566976748374981342843649532652983988853290810274791712909018146003791378453212889315874097977722223335530430701770937433455997645874528551620140089865290873304437649862814398921484467151744447194566150638043612048560530178925712136359939005260436847576201847129170267183975642975512141611975592858388569588700236491355384804245493679819396699624081037565468790845363801831798536668379224991079020337199628093140001266998337381626711996591308390533834611539716279273868103201403571152372385259828672341937362150433488993052756435070655046927584450304024382872075059376059289236271031074845270292463876712744627056338647363032411710870755317888097314226735812549504532318181024655194053505889175691033924877109885777072969143652788862461094610963841398014647597053496570490672545509719682137888588295675386013537055391551919636629675994607712991968234361590491106201947127610407476115042560829779719646285137607070235935059198266819054466315640636623199251784581291745472209441131028154684569465677396599917166424917074432966409116009554770776078071514512598272984160711425688838289251548879394554892143888084716037124039277371767327445799684133282061597881494459356609577815125955650086977836835099165825125489104076116899790495555109166683766435719789714507454804639463339374099922011129924609094923860762185475188668768474403627964012986284086828160068068339185017838579982056728480151972683421648361272424571693170784754965579140205069252826540479092255608699192854881786198687566084997056195914359951673962679595298736877826478702510557100149281442762180227024741133285652114491609014570417795735581976248150607784659585731842779939331795440914351123089320162477993985190424409765154360156484835967865878013792350146966526173874487372540740370460603118298790732486080011137477874163426813441658933116953854379207822580799143968565774124036403904957533140316140969965344883205714125116625707994103375577377500353297214139088517256857829148795624798466415554670124449242796564918000406142841889529133908489042443833863694285988131212563538441217820590688237761917871170748032521373353181199706292559331535297972996048766578603087761555816484006940627238894576876160845337593297764240407073649008347926045399275786684952719463882682164166403703911801713087160554002064994048477118385335497580785966127132350098845420252711323465298657128614220079835625879562188074894878131011552982697963958607694838880970024374379509424365096134083096756511085332347105889291749462876542697478836449095618036936995709114550429079703044437844113556248450696684861386263706348239800307707950306934720003521091832181831695725117574200042131743110458922542407087332407413200699792030046050822776912361549295949557026020139368015202727412657499775539440645354010223667129313805590099721512045441051716888948396189385010274876813202730079488603466120677304050968955688029181258075770502172923906007044309080353397471104295716310677268353225994174613454467661302220623302751285655447172942779559399479002742655146519375532712995738391272098195882213571866069745597698905892359961085145222515607698987703539670097700212008049206780962295955895387103218346502648480204311173453829697290946297972615098331006556574329330128346740685352665361295146767119279094798708232299096823145166864460583633748627316034989624320295754541294655962422598588506920928624249321935672474387973526454931175867652064583065776418146548565399187446804127755345786313092075448423930790550524493257732770075921213292670331432503966675821449718031376513531813364485767511780417859060364577514672629578728504322826449459021249346251689942392072494485041972869950066226148955689399476927199717560540843954072803764580281259314129638490793074507081364695326996166841676484254458889764591405150276231016552049938567520718007604808017385060654715021444928805880394526821079293428099882769520376194983870907128318755277376221568220158654514533480258470230137798440515369739502259176834461122209635767880005202808014334084673047539632726720471828717465080315521486219691339308218033882995030390326244974701284694126075293505255445732457969256850422487678803574409288470466613519890730743226084514334276680780329248485547173128148118530259912654975035811622371533241452897442161357097553944410542116065944106463747089463186998052280917933117630387407562399541470143207071254170793821389045908764141316054318515735557408520309557224317641177749652605937091503912140404934497968194709121566025738864883271484474955664549942865801202301393652482252323750883229789714543534404061848886902438025836581914635865304424957226932013012785582312809998683634140697377462083050394415756182349192166008751387730127296225371113630869463186526223252304380605510301462943728032377421170376286938008697028715994976563703228786169366623936934009944616871598274963107903693964573838051200390327151272293637423042768299349128381565101766006999246850035628385869100652649842879729705239568102203256107426534845578210334601541839850749723492305310949463751429338821966009666515559373209350701523868925930369936380767830793637276089924488202120150962109534993289575654739757134970035604235223736698345702128648973266239701605425960806176295939441056144474442270213535651307993177437063963061162279910030304595023882575869215538791323938041085684225011393281016447988698502327671009025414678225510338066627519435745042447149457198021766215324279638466846271344759511226014693024627302632976829527357966943119947778364461738224716532266593893541152675745481851735149210840649475917734266541517699448134291277952587492053183305738984991566129103709580912838503017097706818402456722718935437092988555356770551853453088633997982409373601547327160321714604413095621866520074828554034106841548758857265530128570780304975945707535793604388667009476117202121097694470600893531762545713001554914540994201877104030368249452553397247154113786200272037876027933023313971150773697527948889074179041631951161583841980367798538536845216562695635707970279669167483720178494766752697589681880910207656916816403210009520499015511786144795166879145555646192049772932584301252161456163032715090244893960151468213321729448661269170131494746239755590625325974261841845760152514825831086069976298182903252967981095702695057021720207489818364731134758791437265735936853688748375413376242728380975637055622277516365492064834449544614719087192112410294110105173930774569759841396242579785456028734875247370347481394749780598536366292235629059599365224332863037583330353911565279351756220543803726897366978491304382254919338009232319186528349220070489953076009045416805641318466172193818645285169584117750983623783105133462967617332484375811780490009036468567509474527740410226242554268946016553453479876227848361505396436566924362919647928095884600926697849108469987937434213863218719738956653031176352382023968013699425240827066641471661847033228389146174537584877469834142214649240265936706725719021621992010932984422547536876039683870653286455857866690654715640023502581685955076915189594044981471608153268970168630104231813978449249780718577240882286073366687200812784466001636655335524938514419059459887463367960040655765605369114542524997397546791496462619872951601327871041436434465422293503831057262924520195210234046330008798461770058213848987307237556948297278880957823324983629215669473076589671101714498494844166577258415899943634997050452624460725669883609722428090810823672217962726352957115218279291943713352258836715141215854941842831386015788371913407386359993257370485231252474969193545287234860794090656736946119326564462001267264334015529287958701332335196386139811634731355131516592347825851057902962121181196259140727009363807965444985525406312523310647663413365096383635791637702874429783510218053964942660823827415960555262570888439730627402161103335907582295716493473012019683099976042820681671522427855510944144272295722368171255674254115827688608585823361579907848707591722932320102182202336220710604192054281241623845169094370584327657991561835225026593253213953248954316783222799607187978141010912112892055630552212049238602546601193714539670536088524728920707062635669974099335100108747542990849964004004919720121202458964856886122899322639331610819306512316742328635266057625840231526877366766155293641818461332319105773304511962779807007263009335348585682459074334266282546270624225574718243036099656030964606325446373099418904877257849525336228417755440186885038661148549305975814836903699401139115850422781380116012648664677608735093008528567981299356091795821258234463189915863122959532123172066999646964358030771412151775115579325399808295084650721903609651959515601513292728165766087490951456097416554166601720697162096236540855953919814014998630318011367056424105062206728487170535351561178047890976808678289922550563477839119043694074144482451300115873903889861637161664277138958751696732222439587184069588057274937997157828353709382517572352200972214557613424451052349549508200736185195441846164014372178203530269804739880706420629626208313062613599191413167687950652017475634595813661853946904421562532244400654727260822255750677773020524507546962545116383975352028313220255897871975820332666405156138011034933770059497322578400781023631760243704690130262683721640273148328390186710327910560351500003084850134649694827573410369875256752856235547009748607681525202439017247933764422848375709893780655108349599469608632489766030240092067640008599015175039485402536893218855299746618799491552574562076785963088599191138771272447060771966449457769294607438083206556910433508972501885149000520910711861859865964277131944290568705987699555111137205768760298943644689693664482705786821793811095066759688588103233679763814473958311911559813451576205599754550588962557285249193992341542367042772567128924685029215225677580970805723010326066899218153656784829560914575912130228403117715118815625329644935668005075245670165677464151566602021180012669943842364737613490174368020839297383632426788379991961200308637604537377823749066255617680633880748744380924813623561901501458419457339716600994813993887840648530960675820147306161424545389412105793223727438001368751978218484439443693916048425550007193029409486194916455128793578384210230570663322333913912590588077108816482475928404185197247752510574383486260769741011610358403405341212282453669779569742603922335045314058598925057128992452595127149971906631105682053518569670824616379683269852778865291897105109527349583555093325804687224797287134856151344734373689402334838682364838360244374351139757065669735480023976545217340920235770173967745975452046933675149787414084355832150140746352609782383975861508231984860897935972611964120327203876266916760187831512104725180226051710954729955435338292844593744544702780465242370517378887371019842557126183756531517723753408625637187386565298592940387270873319939281006815261447108094599616741695870184230944783094658174777988674548056221808789404441265027498632018085041127363595835997332935463873329634148406482061230205389950980711507043589578362078054614582261184904974933800828385889039595380854662804742817920527109376674844495524162123790182897932275340657001418815325201393840117024114891489584024975828917969277749180912930716097709001486455649339887202182343801523464392586481280648568061031823856712656445509469532374094613840895240533304394740234531242914653909622285804921507208596690167374796719179407122971578734328119090666763511687821269765697087850676848608677833370318609073605967433418320788642809984824312327613101172539339115587162938507876930343104287757382918416298677039123964140415951766582804008420502228246605328010703675571468717916481773691392946575039194372258287314307623504046166447099710738068480221185809147033692935492617795189000139122343443983940794587550127920720417486035529924369877230977398703472729092061851261592848614131513187364716862125684062472633704265080691514463185381173958899505929256720539298929234639585732296274724177986677466718337953963649971238604527489620273102046629027176588712035515207420232226978857681767212174171556578987169990490428647540648628273650622305083581854497070233266570125819511252957651147795797130644279226082212704369446440492906812479928354602961895888631102265563621883227811083790940464219867295290996896219637701168483231308232602622361140743275338527934108687300917184525775768546635346554991615827583659559417040571295576596358348911909786108392164520962999415594527655168459558205630060800987278457578842352562578581622500990612377594435777647978280528896233851116551647731669946384884737961927563320269266313902263561886905748459873010437865354340287386843508579154835132680091565915267201408418081492734294495934701963939594085021087120636195492207518489070899127742129049205378557526986527762834917062944411267798231881073830214135658858631606115755578206898234004480795710693963268267610535967819382301038593089836542131670484085577827534997875933775354420590394675851452557558674166419842750552996380565664942684090398891923450724678153040585653552706351931665441214317120896084944485880718546024300914593776622073451430873760098896310634563949311399396426325165149589591360854662107770733855745088293595231136437234326701632358432321721663735298332436023617376328589471938267706397794682234562955413148452454932026978253914847079475886261740839834269349876037480465152720826034440785274270769435550043055974731703268371795469770814208116516108305830434885450822296058604364196422199304848977267035807287153935189885159240571189753859034543806401374743279541471637370786026889387465919057376524218123140486252963408474749419402121874997306778070627356185763965465345119036660975872402093203481110801875370324697350834221632949429403150640339402452888731845719153777288177473123832147109583235367759507069355973000472530464830409396010058210221015754043577904694242380101432010770695770017914733233224290013048369535427176568937733711137239738633569589611833300310433060836819481590149919468892502850351265397401845149729742893114417598387958865529295901406308047012892006640913011370970274688798372409169521598603618221310782605466314081225202574484960182914140594757270510070737854927155717217789239627156362485414396466900247298230029724976428515685969808166891398929101513391706511209224692503346064610707007820106423354551561395776772189019229554554522290823284197724352022202454725769013529037046356432596692885072828631593453368162696308593800214455019717212926710929091270733231221132607937019988151832808110039591395792947817178405393357703452183271514468473637405211335250385478605822894129316534678466459321999000446273030607308862000390108959750454300692436229986941195833969867355169287623544798637932307144173534590723461704497414707278568602187011235312193272318142075333549209155735758780244661437523454933439393945186845959607871569137433158362793190809487114430519069390328243534062266945657145169662972814173782139168692491107297798758372021359719564331432379989975357779831983124092939219756321125010405849833419812042414057071313606632385967772206361377221606100488248333625596807864262823297419189006322338117934907478653750375055510521772270828270391708191282984647352724147456179960558602709674895555503492279106751307441243283849059572220319598971641489202503098791025607126271996910138852394295060657115984042082492504958920093422958208970972187502958437916279168479690417641570179458898959339364081619672406845194898023630702584595255094994872338854603345236967274923676485542425863667857515487418779091602519394788344512826979199776735034403900954952325815359299796426189291874353867392592122561556005649079377109291103356057469192124976996305565726504113852847479637874979930215580236905177532582902478634818019494017569289735967441829663679977592042223122572917061605323765081692015980707513527195611746108288813975478401175609648219267530664590992257723904538916937870158538019411743625348570213896957868967177447996981090689547151530459486321767666841062253855389401501261181772213821413142643784988956902650041324673931029600084135800480767624991549627330287706106638900321672090401954848838837006672170435672287498927162467374452607535938428483565146919527356994953124546357408708212368411484512319486747828166029223863461587632266185003147540631597528033228623492975348807626148925201225116530929588183941591997805269613433824837443727905823493969441786932886811793409883605812538359857487180537476698388315507334932426638966724000588104068757823233188686521465027011715455399850052621196771311338954633842769509424219093449687584127028766234391153732522288105003156000088474311578557937726808433099402843304830054207140118753569333929856083773533215855778769819214105414387383552019129561746663479478502451825409631923107127386993893039146396905634449271387196199666863300634203346580556190444365085916306339650060005334050934592659055694453606289457436597855661109447818211119878432533163741308085765144746780332106313520227453738890438978379701773937731590782798675788143459135811389315914997499805548102693621050738686793139615893007966357281939082259962374927571753121438394131743317519648091613373768465731195594817101248460367313797776072121682706554747014171507923357576159543953314674144362455533904101135690866641567802774879317114793756244510024748087619752778076097121209019705715497344080849043022696902195763346300653350636770493083976386121916017811342668475511355860012999162432620931086788277694613348297693021459466947969994948276775993561570543166974825142630358445548593752019700247541106857788340975628792199377837963099719156114971482829052280472700506346818526758531339026175010421313956860470424211615428191671828213277312229305359826128205934067016776487264557553465759511973217945088999000402490900515422564136262303089834362970137043354185217375035859882588627961406547482017409980086023964268799131058966152483786949959367166035861979914737575379178535042531883316947130647680215062846506308317634416894367261772613142636804428515479609707992600706940226450387848819871014342804048042366345989435505015840401844009769441648720800308954493148747911894507653484599242943799288972896348314912305165469907840428870965398288087028133658596196840657353971066141540752882295476960841030254370942503893153206944701646759706949135892216755635530132054953743488236475102675916371419213896063410971782048945934621631770059274860252441951008122544057645082761070765082081045131840449460694284132069059033726191066984665680343732755934695098478504905035856990172848065029241171874764300286232297657264867028646150460377124641682040567250969711255963681658784867821776233600745173589848159638103357167463647429584284954689631741935823621841846827764871464884425267957753415535745308573911252536105209324562414300365939385182498968431271397564134058287823448546831953312895766191858158330089107557737485576884027518577723101619031321895073647317005448584174865150365999875861133047336544391193297271410692668601268737779096785149207544495235937423182837891107156642827333793744227587831817089483282321581215039155356612311283678229646403466375053349768297239182726206797852539465454722938717722590315625183173281429474856687792260485957454302432788704115717104478548578646744622669727986597033127538546679438799395447156682430272924152446938202545091486265557237830987002939225923479585101367029134816899979984509120602720122642296737687386262157767852149803310950682740592117841431696191355064726747978619793105657310282165182515335941520162785918726322173369153199830293513288840272311910736159433734044216831060528784020936221395987410486083944040414895078315639503509974352966809732803625582161813988131003074567571662503879497170279623248166874464739916685322085966159827232605608516914063837636007300239357353273021994745857374876815640803847302725974465295023511063615535694420896349841294855217055927035089374405714745351570109836394218628066471255109537994233355130490709886966820669072953079091681724581336455889621429254971237309889039807127572322714862276024885451466673002070611237609468329763841308292043598559842067800201467286467140325759935084029782929882309368125693695220329346538248469869120719870335278726376731730780772269437348280663904467575966797307293814556373297697199749848326117148897138679260903157912596254558230497051392988341027407343239043833251512011553319589701429333784015828853175757269741100653242207446268331651725565958805104979043175337732222926058050282130637347537312810046005279230820949011158984336120167279503520931377010185432690839218240811102523448843680384951617362414393421037455113699505471482598704298596789233639244016218773875712235781604532101624188021420180392794712022071699283489649818045543388444874038238047355498632195349755025465082982427750532773110920966555381572856305413011323836428363023988700256946030206238319039046886047998298436201006325456391775197926495605497500692656033079599122183590503970608939293712464358230104014356895655898897942014399602195517441245949237246339448800167254149032937868113374455619847067099395311841278071763946078879560135805622129799856023807864792473534780390156083958729898853917554060099794350298763362162202438559617029723832356061084990612759136845921248591848590645463751110051181327514610047039557461603080882545983412571500798533192184641573488404280176220922625223761692238970831064164925158104581135162630810731211752802281219305665215010372068322242657324937993094151789845157918648859956089284979015365162120266790804191727024732938090282331941422318051526137533391525855088066079493025989651951517587150887487120619976885872279104449858831290523036946809497622125867503655479457953983787103442107570252847089431568263274496559779152378383529003384583831631555793257062423101291715230811976021790233636372950663182942504222017669904989964599111587898738271627241604905678172754282055294346994464184576968439386493171961404032793305005594589167333566295458682852521766622504605144974493035370053806704388693187427536098802443003595943338701769074437154922689846022646557866658743211828612891674401727534083859790518462809929707875637898155555525219686389124823950540010036337510388038102767013009980119521442019374047877149723329849580966975018061095168979548705851051597210917623977180105657016121981443588123864745424088385072472687896637208128288211254944435459039753694569619720640771756000829885135083708093086751797012928855785978513633982340295674880435727489068227281064763340620366691406067659167980405909794269846845745629202212449178864823847886979951092708528314683944738886939215183262501303990696918159730524750570630687494755845088519791709204191677839971191751602831629370723509554474601312786096731512151164034636687607099080977306536838821289413117371141655375527122957591515293700984364265131161947127229766735246534177894774495398581834625728058837238793033739842643962252188896903889830147296651296200346335905754348420696141478893665433038212820494650800466661168664579865472796824826587499924922161704597837427239023500111361245639299718423731558768878895631199379075126535510532561297261455375592393780531449753836347836166153146993169850464776840541928602674385645498955466518742393036474743073888104218117058496558882033790536423279728110614354867197819789789395796407547479539042727331244074974841450755768566700331473817572350503221038734063846555701235589680381261223575772085928046087086104386293014878681549348087259435581411195379268559769976521440472268281897007464795172507335361325912675671502941593417694504989956220866889399621445878901007355486398882020850413595184859367309285810522457279434892323669690665535382591149587598832582377966540048968083751444815627728407461811381945232207144451140249711013376280960648346343072967059778521000620030045109762174806732303998410140973501352041375807078149205008120436272213137987638449951361704373337374645364693561366708355908533207260640718228199098116988880391611655734525933036623330474161058467959166521200992824228449961881550509399388772866955605496620271908477230979238791705125782162851550879817285192213970592099753184311326766767832424230211353102256706535125513554608055408618306281826938345061191256617663789976318262197298174146050587448501177272086560225126639635440925604362184708473602843081977572235380891604198870623572692200706037846243950521017004506780833568554444905816738024376195965760065822442619691706911071787956844148003799432137904138940296835961545852664099209319017330707147082858099307471971835891299306736529336117089132520652036471360725946637242188834732069716777508424150307538012784647233174141731210597255067095514979034084303996018200368168178269454218420285903062560151321745987465027070361463104320168514663308046074402411504408876758249698681613769861668492646973077083695558998912278324202212767365216580340070262109100483574519185967276817163517462276385546884420334120572596814400117442295888642172627294543331789915371976645177011328059418314222173841064855422917324540688754946286898981046427933910418344642167326373544897884593191847746712390032677368809536073401634120543514282913132839113725534083059690167509179393927714256536089058285728591045442003900053091483119782083969508669222094661197020739206954039999174800020423992243512331897425122891082845880854768642950386310300910376170696722643610057683812892145963120753139402768383768425706196451393001544117548529199356704307220921095624284174289179349470286071485584349343615239822951404122081954262033535006546739846367006908947926376671606636606253093375755016239487155577449414578241651710254388929065672225295148310945632984472276408040934161081531927686742971408960730924738076610911689268867784579346417644555850287857549867445021509526267488003905705706516018829556783649122433976296534498238243923617650545297758569579157204466070371795534903248455409550833890163057172042948068106136903889821270948445868806759703423782918678229265615072422957088014202235776012544559379331644055559606388150865988994055304694367682870095348952373512088865375736525154146370038035387257293222395301521451540020131406207189489418222881364445527083521964400387565973514148324446530009701451761157341868706281592446305536606424595154684122452403091567074163258910946987693608564250462349503359493238977669712868298315406983662045006569283934567660492722575175612864200203347189082194450828466784812991318935765380877958757457308816987966842194129259844419384691852790783412563801348836225280331753948778293030845419261364506927297790074583394348299658579915257023602363034969215306753915070919072500132327373718111256701152666884367292963111045810768430051136949387644094125981449772317395580154850642786895039078237975445937602993815272453839361547728728049769181994816862890282574400266566661028922420329642569859459085004207016843048003246470556940528345007175664682570812156408345215370790399685822736179434552925737070661155194828274778061156425274485704879334092852279226352507960162256555561570234417883801500381263024839089418469373487485664106168698192586613729305530758730827043063299983948708723166442861905927260580941599495905623839159110713202802806366036859756903474310575860497355910968440142495224202191745915216165691533786151860416354535322828924574391832117298859753943145325768215992210789879083807975145130218417792181144849101729238053393017315853250754185732093922980359926386083064090952303768215262734447070766593999794271397740764042124413079321895396682025186967397265415431170197682756558998046039076184054807884038022493800411426487682628325987760714094509323759567043967177787524843893075448473337299963361287175898449030566578353546348221131269582663347590997480391258303655810370362831085258631393205775539768037730314775596349784153746227593460522806733252496127271180360174660424691207060717742537701411977172143290180053420999859479676554171249826198657536867510615492429130271345871260562798719686173983037848514521953801639140125106609519048440122136311931403451628834199798460195787613676468585102043518678161930050456179217289300338586588181546651252926582481510957739521428367541509327841866516457773246002003088199080411450021900489856118065628484346398867315713238002473962562312391256036362950868016001072307466338781845865269787580085583464531435780586898122374354513229613245151126998922955511368895668355147222976241420832853770377478397479183117893259717397056936420129061324940157684359069400483041406515777648652769100906823540394896419738018080601883593213997300737752984111335447690798129411162036666602009038278556879513685255358636969307059311738457221780356353492624973778170511319196086376282953936149347123995659582229175304058283941118267330346401999146026395345335919958209128816845448530620851061551113000805993572512020793056118954511179228381836565067127469104621245433737418367604381917955661426334552325433244337328445690745879536640633105956817036543839022087190788735425901766097911524602298123118569356905798634576486752214204463804944031234840832383314977113712692818276701928518209580740460315929572279139389009905748139917858706100063623620720260003459803699122571306859060878956205690012149286837035229213543483085333896610320645324936452440247706514159451986568856637765775621820725051915084230427650722895196387392099515654363338663232800025744978270228892578568890749380454720319523732304378703166601614812945653035217226922848988332741390218435187905653164969012722015872299468352414244538404197844440644911183974052920489003444455709450385190179982391496284730627835694476340186438350722153553332529546870701540699245943075309992395108521162248633482709213019666871932742122536407459947372654595913071225122121703983691656309905559097630248354708316702001203295880305557568524767600897071741634672643656096514766881000138618126930784368333301980162613488204794872884348107824339082079304362066542748220332642141395294980546560970355818197489100211422449323121432217442051227487663914212841844460500474085078773177540108630317533116429215641269602797834367566007996824050811301113922688325881587025212164885166635496993245772002206136153666188301984596053384125642489769766544683744101950450178661054258055816902403518851352495658394046516766727831789835381474533838071409387254380807060035428968849290222482188753760497482537267431538536188974945036338625629480313910813744948759593207776629661577780574097198935901445322733334316503452293007219083124083365180927864708428058634560636100553548733371871550701172815750668876255134285690417999011460222699007661069319777508793722318144335461870420483731844300014792858566619789164677252325980202823449205042651583533668933673965917313926304673397714709979154948283061164333397584112919301498972158247019614576214736062058058076557571580456510412792984303657162657024244531548051195163095613798883636219324203768673131947554650219474728344861001048399680257316434102724721457615311438008630032421389364451182319188960436922876639692915368782905330107569436353894444775882847254070776744808911126193806946151343068849686783193824697593717977649169189074854193634394708837295231697387689921425044347641243586495433732614249420349081850202048722306231833861425481986593810587424875288744205450359404087006476633661271337872761101972584286909330563937892288889657348776283853655080204102924811205497842525006872581581451157809076831676759208335471321448087554816494229239385140863358258656654192737200339090908668103581231613343345666282050511881043537640930816825008828364756291163057021131970402938705943135368518360193390940335899511793764668741165010402842045192521257751161206311554125325847612307513828725226941004485467893161447758796480697998559107745869760295086447651995357346748750228720041155263821517106607300702286292463902762853519945031672169129394359376375507796853463798634360808464467447940086648524221667180009477148647139211223829297335676396039775006289596743753071029930250313808815491381590609190549414298844305066944604808319228540229162942131942636610660083226728403972139200791016145859535890737456942339059350898078389548478883282090412687885952247576435941434894564701419705612703509580377013324645212295868939496834737276229268122403350204109118092536494728677784379670457013450530214901128859325250288920622686601245378637764754177787991923523654316021015599798977879901990972486396669432410882928006560808429278620531449222396815368448488584823741100027114135221059788374751881213639724722364772281721805403519075217278766994665295636174974481346073827622697399095991021754069423043283250049719986335678949364391968502905559597922150844957336747724795888954124445543527750506800590591267363468591459831028002782395502510763305068855951823209862423068706171527327201814722783824165149270158708212037689584836091216487282987944168749124653967253374233208463502523596917442465392792560061946785174914673028511760249107076841103080323056997333505276080030723905708758483268181442610946911306005088650905686977545095895508010677947675224613652433642878762563891298791750466912234373785048228941851331359890222903768189867076267161996228586177230597709290638486392317990685420259408988281314261211439524751434865263289420171077578991765496159909515575018742153818427688046010620814216271019345332885338837480878898547314475347391152035669265681511264338100446585230132997830385694446260619235570975154620676309602352286848492592035904460394796189495451987561034936976234167475528135715608931324580019916561673692964804386934529702972220305174943074140801824398243494773009123390175623867269295004859006890919401566854054854191823645453499479177969989280581276150112595736643305409903124737712290580192736929003986772068433188026215567666936343213756021454855783949255066371559342313028078827142011970329027529645213562487358932296292788420084776011685819280173222026497099966191285800259872068070711936821594929242684600168815176602549172142380406933659834505532847709688555096620946740172351606732790483530023114239182566082411814991141599980188177453448241626076636370888960461874057690870295707482058320419879784109749510662664547534006173847519514480444010356759524663503392437818846389627808945956130160348147277636506719189214368727514949473698252572930402545090341933423915059626049809516570622539321347074028071666396615940979943435596927179969043702348274457976199271674562442196361992282166063329405306902439867884241950314647051484960649305586322646430887966885734903924912123685440557313943616381259636566107298433226049034885821576235366254428048340904931315108394745159499766014380670935441968700825346540690181615499985834870568006636904599335017988467126293644783609971147975055896404137927828494089500946206756444109929058392940795077810551989748763760696306694283827575317114083025715558903828384033955978811726236964287877470608579051815506181539134863374825793030516520196778468050219456598284189866804263414062168805860608195955093078099894458450548848890730239199418208037983956342757990699015999525768761322308202326752103491655569486411608757379672137034257624472194585284933595359017397364328254598953885044441332257157043893728345715120090467713524704707793817362354454363258958529607534935856606892490152149599389185836135083454145842503277772341229099108116822838936549143844519469477713051890188868453283674800202464020486662421993288041524380935982053262250591862230419931894136208580905484899840353165904753572957491000220710145644207139007548018183937583064069150917573533081829995975570920524440125843318211775886629837108590132683846622158071200285629349320515997694997657810518774917401778395935850963153400231992849747735986431366658528855605686165265453255549576559743392264987569358572845708252087728609042222070392674601312286889403054157508188065327344294410199102486997080532053049605484436427382525287087043184138703799406724059743398503562657014538275732746646678257755851747589281814470437167421489381411051972078715418191153721674303163724503939491446081084208407305387845240775706415145656872326821406674257662086185226208473031493652978502065208419096140644048232166167163654963089172929852824732800690678497123834334242659253431012756435822832049625559878319733624455097653600684417368131145417639465136046639600643964522888602163520999514920678095836050820969267555471037270742516919251557633382969492994170093011085460166861649164721231759873592140851889314425380708417774903072599629412627744100266725786828699600405382895868184657179923864488841131710085817678715925975024402679909717802877958931479510442304596445659796591675966130112249790032240584486351932538053482266626951632041936506937672436545036539673029912932193215724733051156927935138916231194893785753407094064508095864153913184627333739145166646605546335691837824372618210711433730533592718267480046470659160365644351461547501417465403945296906454562106996625662160017060134609400215262340305049419934741085430768790398557496575665313104657585016178551824828720085009376883455527284661082524851817622867618538847638792460866902849043538671404420024105736679766248721318277217309643835633798609005831422383321553925459844741746081729113166780752579309884876538270795112700152262116561856588150286951792828129064673054070840015729493236527681164662355177611033403648539045547622070898937576819601395825559057911627725307007270849618712178992676012911326364213484755468043396767971349404368379836804836617995740693149370372762778928931992984754430040832746329730633972854580361677568464508965352044470359807005827423566455886924143108218291866080128661310851634734720742101305719403020565287664613293284540342213192702248128838776805511319354202251104046032800646107171374208957854272789135947493125518159351121562799196382737261088406527815172607876915382246209880921107306813784195563786110358637361659705005743045123484841408709989041014920020512644920771765342978997798173746700915654163170428356885962196275997027384394969035879316761559225382939169189277331256115411521234205659447207629113893825509861882045968073000140033136594310755959229475219627250435153930459945657431366780711336424868442306016882850413927180604529983372004933198074965049636863943732577413202113502016164198764574304902397856013631985130571785505181813451652054680090676937295267223845718390995196578957558125314050373460833781866856545492683102033407276152587896470275348536059306154020826235527402801046231673686429461831813507917989324009382267744457916702160213696869654941544336799159229741529760797984420891619748015981609861737641904060266748591990857740240438888179467204355185395683412491306206200793179593977491970927685173866293566773342071487583155815673205818333581708489174591724046822440793721136859646666938418536841821327195965439022209082650532355416583313769755335089684137292371542775407312116361227040154915278318352912803011864664216530171074672128581991363157392844769509976059619074094536887272764997368103726660338845670587680416011663091080174633202986873698069202412293792214471713839994865940979086923858682284159947404281906890995300067836381393270979515460542447648490659199953288272167493838843348804495096288521501265963030150988418563602780248173155490008029122523423429395001265371183840362474696558943717806379387948076670588266354996074096959616218678661476158500370522355094510920444748230818098403875003914282012393764412514407644941646316742327102784465073143731956658627609677604561464364900110449640049393416022518801581398995737047563995421785536648695244587991375390520826198209356526053991191925493056065923985375739268018319542431475733149327696557365881213557992290326890497574555671927324750606305940204565267677303044878715803456633039717329336412973033359586069127489651960745044742672487226115497890302517770968064388289730182052411094928934078274049900168967750287675871797846335129351502089596872446142711651737323980215457016952176194635193710798354067246252986143850980526236185993165146826376841783866371773495696071041147413790245002975335617039737904990271156647748895358821072461699404011316698941693223338243700852883562157179991446090470526328477275628394777749240091404946629415650760886974664519595479333758636647708366604686200312975415262791315876900581908509719837398607150119535577095066321891782809669377089488821155328943595922202681667797385962521015266985745103014861201101723324043107629601803134187292130071833162398799921406507999765706799142393971235637829966075677204183331922285347582531000500515148650172575659350722084895629274503066169146918704546324137686368155141140480728183710997008684882467458199482729387552092522700864230563568052341571956994486380722185912662667981185330298830729876084604197036349422047760072769895919256506528387770491610418499510705076812103267415813378211980685091504130431394073122144583611812943784451461140784820162369104375116159425678101202024099255536717764956446378986315022639606389848199744288493508166024950811981857655132558778593666958223081576747163460433811667162266464115374884575459871546788258683305620121866047672571018758921343716594173883037012513171917361821021314740002631705919237557713251327576935284790402310200405098569988802628638112440675367000013393957677091756322857571460667761139635930412988081684844706946716193019078171041528229241544371542444305419178206094759983712839756651990821981030849721265050135198477714205746740452864339192688929037408657260615032425782644748032127136004431067763681178490914251405077479446806916799468640605346942244119048942913181320935593227274935134743003201199052988648430205738035589374142408046677203539003171911870832298036871822367728749217836143622887094977623162560786392390039987229816461427173943413609221841484490528603542959382383076571119538569957144585137255485412401952313396407926549489169798530048531576986700950948604570709670280581898001393106372999973887175636517302337735987856689820933992885094403954833406037422339409358850563255833949104602376527648003302671695715531624203436226708698848956772213041016161562866840208594644079553690810789659039227633549552251545472881439471161376205375481682238095366293514739929813634831932047233969912944429892790761416873914232695934965247764394352669948625395236967400388056631322260872585884584410449544154964060448144771429420776302536802934234826011205467124475199645638006728762337532304335247775065391365407049750716971819177485955348860459288953307854830159121222064753080836729277523072071889560991518677322995530448699820932207196501572520368347410790538254121996178555024980903716993930910376603278165853537936514283524506148524788252148243110172579189628077563802692530232080126055578273732900342676705971936941237677857654209777737880873790132766946183989035207991763928936968083095160238945907051126988650564949548068115119572498980896974414744140104944038668568036074811130219770607245471191412884193650750715310462617073512184109178234909934213352171946467115056482613848518223897944819270182742710959662804618038991556936407829340282439227419836226389914419178052693100691864331073960178802656609451731193594865893770787408405565467281873558347359335100374768333059766634344181085231764066529454185413131480275041321213738701826792990468782376317359746570396509095341005462784772421594408196958194590386945437240582236271440274052938866822591725226974231293325717046289571199172581755401362563924034406482020466242032004197923187956491665265985940037923482981981373284531485439499269528500542503883388349614202503892145924346190799626192237483417344093244197407220198817154598108222407463240020512461148194779386674789367558255521925310228554065769165665572802838061080179066485084712610193321340220324034142230265799470264929351199243248493915469556501614818294954336877981922981034075718015255944183762701705028046863743912445023119644246228255408029629058076727926502090351015668197392956741749595614704788009235213724628384306555260781867731027942371890829109482735540360595251275665106118317224291300403975409755459142510813056584937191644411077111343571848821796779928123953481192874940633359633248461557063673891316807197564454942088283968605856199398943004213022263200043863386972043714425684834747569869215889368437414773895451978797491738007151122984395773934579702689585432852865561256418391341144436567428801951069103467616134075948492500137319011903379069123569915211067543029311477133676395675135787156932759876841207867583457706387418088222854257229917019698463502371587221969526387957550975430897207819364249165856082239023021094905448207965059308755289073047898862027852958990043305344746730489116265172644481340921249498178175856301715307541277175371219356353606090853706786398293321105523696907229803148910116371391312943831995065576889043113747541114713827704994317847760563700680181378821718402219918843575538861709614208641664931280214905263932274589553229671689263880539169511823223071737912724786317202349715596606115002623992110405388208726589086061618374964395585112915182822305002751166885096378935093506501061196836238020892082075550591085847141712082144980278921817621156763965070934245208749071187175843066085189273398200351688681971998467630697787595274923490377771625912374699137375947016962989436780876446749772748042541475660541391561772721497138561345897729592869089577387197844973576834276494340581015457725216990324890473070234746822224996863233604765396909796086888298039176125454227539442674048016315375557093007934750076541529587775369786480244574215540422126205699525935256092636174527964883604438776621010124931578446500212565862722666231541878573729443376301450865065592806607455003380042646292772803225862421237332565367067195848119191709595453637138978718659463850260203896959196038731510201847865827950143410811370088443759413411186441647899579499471828790490758266361616814374407190863997187764522281556914580466094500827399054433229956691395437715642635909653976620238347452376302128776135708673344822048912815984667642373492507388079204607366223813692750503310572479381525429942982307118167876490465855140742996795723217356774726397651552731553637480085332950268828372123343653719663422451972405186877471451800696325539130886401844569020101378518378969014524333136082203864660130506061183027443510522926968075456380878478877942907127847655997127036508840065552858346877838360966464075686281771290982002888797420290565849681823608600506244092966617777510073208175793775016671113552314954506357904448533330735010803537203826570208043883766942830850035302061283180585354339314914049397198858568679510457038091859672942890702193590525658137599248191508952215919977388199967427381338416287506002949566768263338004927755667284409087103642362674588577664458208683679747667831164694831752338661872791635556497798964701522912758855223518214332598800615247334357009113050274996969444170188310068428666852861742742331349501229620130403944509014898425978834092219316736878404258415319122653245843052650886717954658666503958045433545183111453779276630949869284660064288483480956378853840600732526646156856710196964005907941132516344316949723176071314657558177707007642244205910433482968739950569595352911753354924760243075579385666264893000324561080142727044385171648869547715686026042250528212172369004871078405173333238439267105015671957322222032631085445780913011704220457358305069521847803507120451247215016445340743980393783949536946160434396815105234794199824904780471500142606698536348643015282203080620741550273115401661019302402208324889906552021634878188302021273954174815607369106066450593148461014620632447410647306265610874595240064264610019356882324692570589336043526480261795533869173668030671755513947047414405437043369198039556229755904940578817820906974125926293560707755505876062132716773479351294586446246868082335914729627010364443339149027284208356244574561789166838143816155704157295544323768516379336836031724012703685094330853137222207860631397238767375314689282980673209526459056610549276370528997679125193001020244688510348146526044916396249043752179013616776180330572675078073411051009127956276618720907849892143948163466088689619238608690409367945269728914829974952755682900358866356167463799780125952343681797655643368589493875187839258746598916101950997955975253858714796516234492632081647998084660098301726664567941392092432563348099676972516543871970798825774862218456481646143243900806878960689668250666093786846283737615547414117219521741347762932571018311579080785088520832410644511921646325494291898799909547486877667708514779114906363471704863714906064730902947870255641986929569762276411807865504434845102515602165821051245258830409123518642081961955664078461422663554161038383361382765542983193320873554374061723790606530709588590726859288474868130674076093177862176585099404818242597478553931967962154969611218921420099990540602218165085883366966303422136494484783152427459581558162020061251427583284520302711163923606158343349644758577633540655627506047302276205193915204257217099786585535055810368124528367875936418920920643471760728712437627783047000040555376636450269349708297983320203381303771711546581118905734578509008457882733357055146732828172316277653233301192637927857086001053030840985931951883029183608173171942980156637110748768994765043666099963342734967575734151641361875158823154558216246936961208586207762492263926449555291446593820705338490670109467498944756491976903419064734795774052673942096125953289258713382752802130627315530699512818968682907289295368462605136018638042726158591740527047313013728546395649081576488643241450622543721502369901680158816855291950544650054219685839763452675696854096667708053404014053356574798136276677037426326373060537523365623006721224989996527044910045402489753407668476468297346520291659780557053263844092622512744882111733367046701648706071683803692195912999731641662959710980009672783874640735041103899037310290141767156731809043832587612920458971230222607564121240207478322523150306354687174716983350007109934598353712662288640072672074001047275292948910216154888323611180304664973699536878704427417331071824992280385671498971167951516861423811794851031642593661598502037278810811041919231349117188309893396086447787538961531652048819761715680221247946686366728400215185113091246006137119504397095724660827530311936346481746178902196175970600666245431914348452678194955908472884685452985000902057558750370581365372200204108078527686825904626134020868648366545663977907668617679886277578054007503999361007552779727143274878501346046909065538331546510061503147416016556201115401334259680649190669336702773783382968199608900217487854640488734898644732479144883206483055919813715805538856957616981043345439556860038668649506227457295233495138441844793109140829927745019380464219667348662382395273809432586681972629235106627053157962251014579567240889702215573620527467482015863109135019350192466367276541948425773454833670112602506483544929124084988652542984084104676664462445066640126141488447778764507730703785801258874970683079575564912165829005064180072475583741574312628765942623948585434186034321440855356433790900287354483190090304581460157295835548930479415676165849867709422041475969533962854429038957359618795827732683100708857658861887120280182949556236512692890521706037583756946170747178440820071699594280380457187020956103360179432505244327330476222260604284125620437805257151365645491110016920458601854931783963002738466692160950157882552415430662368646970033219788821805048662875358726390192333128193165811830968788238369909769158145559709932823087910269685163248165044925997825611365588672680930423327279243747197439074993039169106690989389520086855453861517840376425741435012417767352992300110301443478948299895720824778197506984190235791537943714201301861380362130961414747888458626624416103295715623190284636064905109895067965982749365213193097579169816251678224037746930984308679019894461036817457128627824861458434669295991933732981854683392946896897192897042151047898409213003158624112068495923499892125190260956341423231238900151045465617283712424746197430979285302768202755321879794966703719317552255424438794277766749804423176393963871844089806364110457747219205073068055397531250634363382628354140577135758700345491786091024470146914679700711986632009921212641916510854260598804346043751206420754106025693653231243787033972167357165255965877025207346831006406945111185409038118194610137464996716816644430185005769215227138231480030386840343705152264546290578819036107809722232529478932600608188684679953858928562255771251371690021788645653164130854959231824752125042654869268904135813545112255910559398273784142578477341934349631794310529190126822206499980574327132713621725136691564515205513316128816831187760042164100324161926148178825051684446027184167413256966213269908172000519790670957043297956706059670677539602073288919370279313015705799736591592763602978450682724276318274611762776695235228623329612775958855202874603858807721516407551447867634983806110871230884449113832103103238513156988174083373778693861392868715490984264178611067482601650440867813646688607277954741852038685744603261180929174977416992019763822415470465001164534167626436757667148736243930717756436389991168038766866392482526515931000284313081465607265476984048942985111180839974753843390416936759203864878512317320574433639638646359168472590906281534219162959554108693554692021512015758977566722419028114944180358570110616605907303175661042883162621826309271815931639814965769631522762859288591410890158211474019217036588111488630338745820182031185895621965020923130445738022056762566484201991114578208407362653202880141941257360367262977501755372913980623743318497186709512107268804980045097798800402628931958220562876323449564698473223732499386761432344138441149507901840016604701334254585912446743643705568451427085775156028222828582686817676162017738584383678277876791792008583502723692444157230818364395753786894014874905957160181812010099549979757268042500202638255079217863564736653515298225378601945106678721139707991625854822852760911094640142756731232827771349560271345428027171701873478609753020865535490092418120005486139850371904386697683959239392565339473920386784100525361877498406168648601244104885610578715650266353734575963505481962528107498226287792950113638996704587996645577100511432242835614984165054388264451483619856989075672188078710509060268236624004665722747772481386613008241547888311995717591864024122170205380161214116805315350640571188014791947019826786566879233322550020221048232408888738146758258143911907487867811383701017017620139129125516091606807911376738180899138252139444897393123183320014519209861868842871761980858348592504984679342783222743792200050009229066176695524183806124880459876483557683456773525072009923958984177652028111195379047544444011855727195242924134680908262526218514233518295739085439992522620077983568252733777799616329995643232678301952150301198335962033709342166960473377715025565404913012637109987164431145767852613778688465392387778107445971225183291021218782578855678921885463957287263624130781599067798372764247284191658041501405350811455696998380537268021951581314885489559920231609494701808953505030835883848558638627812608363360280396949473633959386512678410959113965504659536762233601587782228693125675030620299609435977458537521237338374360280285190755901199739158537010747957215989248133046896806560968587286102402518219848846503633316858156092845326744491651803961037122098715901135237580528703994885914141275044659338218067473045481720136228478436291742001967236746631247608675980006061881542650825347548471258789757718466286966087661170188159447579205481599525283990295618566463941665068488390584662192497361441545187290347433995417144163678499471550004544465933690098906629947465449773470264866040530574001676806648976010436152737481663942449411901931591168239455267540899593779687566081440516680536599748295035386035565610102107541771002109294127707766119839316512552232538938847030302459288515268348372561460357955243904710779819356287151296974770417936155391860343255887784096095534744173679824810314545690005434300388061066338452664411671520976813133505994885174691800181966352973200925230369370602792594231284234219557851896795761541201517765873782228090761279952679504194261879239622298667861281964875486933354104318151369365807749132869924738485751054654298282788193386209130801383386344497707564388201523123586477214894525220304493628004305264545393286841554322414890119247027717890733871195262357411931018156614866992376023279946066927001686638591652704135150724957357796834773212432246609583831060886671732978814301271049189902762599742169820625882270727929876912500118951390092083499550285649680581986991479964935066219980427494662974075915524362481019460583606280885106328539617878708389177918214724134709819030431715074998309180668002291179943610864591027865229460988550065742281883652613470109838413729382155631461096602622853918403903514012935391696367016730963935994066334696487068342542387940391796208843442675202875977921676782341888678543305147878124806107115826256609520560682401105837052896042050825115330995291280357658516084823177444770854835880918731273579811301261931820063496499896636772318302432748731762145464180755593662926272833174187383191357843387256451747561694724117473710431927354465448654616055784170319429412203803059259182936593433865304732948806702080047163344014753228050715187530440337275194976969387895153510639450486666388368899126119604334030527801859736900875971999165728280318474318325700137889597043638666117768993053049199410262382131759040473996099325702333172028596438739935556671812298437986378411354709542229400191088413123449091566694215581661283867126295460178614507777000762656816901455109058722932156650806550905269315111837703509191526410156754599638551495649512701606601593404761946496457641721452669550274303707904993136662343883686803458424224441910033196508514864038084128030320840806746054422357476153946900245798553503388853687111924884428907986028791577797626176891198485627524839287493752416078538256064863729871138438122564906399243861756816650039369321710868557588672968897040003354174447565225698512215873087823769966532561508705800125665704026093949674883411356944487863476251676226238255641078999025646997283835446926745525477462603758699417915205427022148785231841981314682858839616006918456799087836063494813499164207074458228905354807532085587961011341234137999151773941349358513164743410006816795258021347406305637327532400545804032650147750127134541975180416067160155776924237235707465346486076425506172552026557606499249302406636593708422550034725817305768740523726263768305721947588782525301498646638578698723172055657652537007386588682770553179961583434907486520520341422368151207258465712190345560649242714748318607006830841559155522492258094045133218558823500817573782684826200305645030526210044696331154286924041132590717964266515247157141473821545463674552848187020995440268022676712576971173808625609016531525902873584239085119754969732032794728429304291277529832423799113836921295329016180382904664257257336552152634721379637680357266876145368318970400974900924204101790670820439381126444822163452468030836824305773218823655349674731154078465299240951993486045831680786299814111395121066136660763354143897344238398594756401100661520764070276592752334498358271853608636620431084752537953954080327692551300838162769435459338352713390434948305642523528056271823620378578524032511013401029128870446081029161777324811114224833599111096375328391794258961238457514113641942089791547721395944724968154082036827497650158094708933079877910833437744086189450100075875682671038275056179034577376581556751830343386004963868758566280589507068005103272610896461931080647863338165247369186071621556146472972275200495134088583607039834901081711240252529331324507874132167247739128008167941075333862263611797929084021411991914498239516492348205759121476612415135731719626095242084468209527229202402892670038484908086980427377087188847259654108095556599067216567348242261295793802303036403501625513415470574285926933251428380681888437106225368371349961131636820420310245191189967498650834202250044868607523730849041452123349442472272638132012597823842007815601988190750988571584002581228782413946487898565408725262671051632502514136925090601466516065017507283590101683895419301952001060188860724508767817516522650206104600346706469650325106608877813503852144159457499804296429431049031558029972942505953457670408165912911361497583862313191607043787490060564994332083849263338046640573573551293259865773379097171821721551471529205280719434376159887684504469283064625616619748044654243342013273216269662630340132104817225306601454771873248458635385691202097418983632648494416603226268373935822812006035484224986481296611071171528927275354911734976590129058125394681327795246980997012752170415199488010568829974912871828885888406372125789382334746679272391994102897078518027027635077541898739245733964598327807305681704706063761345645092894303389282654158155548950643763633884350374234266764351174226439022812345536830797874866944976427068909832245049314517462440728817808404736117464538119785218528240784775264879521926772703353669924018095625227338586458983117814304005652301960259673678399439040107545054922163294146529522291770399111564938865696467448533474745636306811390142626821940262070515016631275516315726050360951275957781775956082449075117528395915299947100049249357406701343449153848664687856982468355450681753713480687068948183961042452215467205297568657847991471513156109267550322828832139701407134889336184329518422035421539376585403737467654782341614973403626437376761061029462016501992029443707454167186016236658404640667704220866954434680655212466423133114295531395959802513134934499125511745017924492262432046683636587786693481090919827237813995606308709444546478512230542122518696645086340665535605980563808000612397267884813066380633467819225058592312819806015586751083952826432208438625466132152779871007904938360972647093844038824854279909788467001915887041371678151463538509343196779229873545288246051034587397727697273521017241114588482928471900536353499267883188980216573952754927164977081435738134294668157264458874813497548254582904132440303232088512790171371404116894767426329146912410752360706941963595057002704275446410816401535790863222286347305607745182484982866925948527128520512327000119744226123316602053514514458651046587754075863994046747891497094307044971919009663468685461868202862177781376611700447308304789362710803525916014036949731397921148000525176697119512610371150119275448014225922225209202011124080737185704326530939533676215065040251300025192996564288935336210715354584468720311048413997225930083484021091103588495720882530068055764556969578899973042390292706547014717073241178598191262465009890973392666298222658292588533128350504747488188652321045582096270249937402618957401335447237166647167676870934397617290141019821711748337497414839697646631763522040745576109514246363354970265877424519886087593999773797615984100252885137774749292425933837238466420992423433978608696228599237893879118091492116492028742990195533768813211664823338136806161709890538192643300054020618103376088790348874886043887712859290386876927407668574903094453078346753894555729785447323425802342164690178131935483960094793790771748448880951863477444027464820347867035598394874411818879426258967873919994181191994097614692892630989337524358426717887889141024040721310364277765857021309537712229640390387978984350156186766448824659862890622690865640195600006942846802348754602856438715525029551951266276515607383048666187779224895663352493203003713216336358646855041987642355395082775341631122506227678770255451957896125482670497627301198783752274247778817690462027339409250982465841355170132339955440555693419260386260152033678263304908198065115501847134913585937638253783589587782777989611269142147834814399760804770128685161992027757447714076431715567479238994248355813740113565256618501681041915106777936961460573501247219498564292371523681400944086124719388444287006445606254543782162778880872777194190456411319359395113876790301520727418919074409503358064957962141052333910310872375161893824819770768870881682443840798560442944226398077423170166745549865821324914163381479476006174597260571166676554957063854131216841152391544137963054930926773005201122182415671905499801877615440826878221325451019008075741124781686095064777936406144529797123579279932018456411743747359221988974599728773044337196333685190944123665377404500327197937259666223217855581714515196718650577306517921329731207769800252165623645875755611143280899891079767038423202796646155858329165484635254881275025518667254416918446684251807041983902493288089357405213117283460014439847547026976748966557701192076292145634897288137095198943045571998705481413520256193682908684904238072565023263314257137597716412500352445746738536868356191902589863791963813536113121203659788968934632378868011669314576113293052511272820426189009099332871677555796792716675974853937088893170141200357812195202835472804643472894755397907777877152145058604305690453202436996929964364711957229016283417438940085736612059809338222359574171886834263521731056160879426911877388321719863678836343367879519852825198160751810950889010345497020178985860449813413331069174928171339051949110605569611016989186860044830609119747222187808998008854162085274428994153366041503063802996026398811235702958136690155326536348464718850057394752635144093438266450144693177430202997102411291275389580990643576945912732308114108235276273006488909287886587762188006076257017717216815085061085025987747011146279597790023170623233051108681254653636631071005864034846469776820651127244596242133277744056767797058669754257699750309583136902699078651147247027859944772933449306638637298603186229332167799197106207982473475787479429164191951564235711917400804733675085192448506337515934166784573182736325221868480922429497577345290175067733268691429647497721609058974451088821930183406740514171235051102391002074937616513904846816350836932780083982794811975827558882670737220293341304010302508488263726002313304215813243237725661879412772724562385413689504553434567444964729134238730901419992479324115176414643059768268762473839921515144738104938294920845236734112560604152774444796714437614878324568599473678396075656017079217712443873201907041862209474721377839679612224581724086338807524048165518180627507378492390670703795129862834019566615757758500381437181690044639792603909774207816930889060169745437111551757316764314881141864047959812500996965581657974591643380600738669080240231392479557667025539663634572314087283399208223533238732324752717399384670583679857042850480233703162395470016380976267186249211161102047453003165477254082576930986286131283720255197146264363665706660364066211754028730302299909314185554217742158949673407861428813791176369504785843880770864161090699277888295689795372073250850724605822158179836299876394059481897863497594352768599325422675971903321651191141001490273575708477437059269411652857362332463894090850948422253644294680088885364955790930142231604903070329162181167841397410646858058555960065639996670156584313972101525877189585619172416918008176878334646233874787196874138801072957840821819319730784715082768133971997988877241773150914012853715584214169580448722224770712487184892567114834606179257766285221820993221799299484497096630481565181332840136039673152986105952424056200800258541408749325510641902705592341308261051082962570189942702693667011334238993406379902625095076925359222593213006256122460201194588787373224349521037770503587603453824311379869304833266480162637495563032983157108095197638720202934594345146299928342567034809911679621309576268337763289782697852707895111422241454367933899369413828401374674043388062669158996053646436527622794214223717578673165793686003497506465340678835353927782229583683438894225931595943306077572458253094438303372032619075094805582035930252897906072086284028756847398089310105462778700572531001685056438694343735731185598346268105156505036984341154830176344925165763334459450875772263872382217345047526787335800921417735943372805322626860187250766400163293804547703938012052895716772566242770820753151765357680025772936331961996182814327123266714797957233403082239014242185554228076151829311537226885960594104094869707063902954997681037662924794986521364599000824547157324037786769226373511278544678081838977172329422242737239958122481627849337978650445778131699995935570162285687776112857194720906263795354663634199404710281911346324967353279026046830629503266360389845463579857993033908772009587087120684542813616649376234833202569474219383584492606932312002069740596229237655673120965898809993725402121289765329505479107223201920877454907936157659185378516008200175691389369909291080672547144670462478842968827471759511357418215809614530993707322658781692945166551803408274158620021190738308917786713936090169776634794577829145040560514043578758128006529292152180895065089516958048909282831487638384787048448719917100566854638482882807509842504983272597997435071995827144415715183724778748032630239562582251079228180427245603429468310521651914506619988716688934135716222867361066884723431719739598755623774829666433056782902996395870977399897223850416787216097918073415336937738006007992379192152710330194143041373839626573351127308176505826464463616181122758036866563742578948480182735215216464573781798638853761068155284723125988473312807514063727572579037009350745148456087814399778162329193245115661517274539022452980408950017467163707330348435152119520134445592995608890323837145309409768592613321945831723417228736340940500183607816098607821856283055897857515385519167290318653790099066530994807629492285852518563099966489033876909415897840578431687998285295748383575217027100519150165949669258139729954777734630789081092407767752655392660918809349624486928293422457754121619455652382820749425459543417666334836602227298029770082458210404368659782660541545264035991220839380199858355972009804897338829817546453122496381571445393733631087543124489388432450622438548168222152163408607958903600460103097204443798205475601149601779857133858116795030534911681688325236176234337155865318055900902578371232002923297475720201571023005118453037649668974290295683893024039826045590769568960146979583582249023795898568968618232286617472499990083796969834820326057530073085866160234425045447374258558375599760746992295389449548354040996979198618481609953373555921162152705356661126637972901579469567973068805356307072497596796152852893480423782681794049443865041325206304198620674204916763739422050145296904419187580904262546337340100073611387767286658398446845018052928429652623814791642993645594221654352027893461291650319833373109004098830711156438893544133540455825028125802287278390563706191200293856036904501449531887405758027470866008260167786982051465181958073780307877206339202712042821832358818067596795900872705371759699265536188652786130271455769202494254039456770486926871922798165893497226213277151548367918304142328154757763583100801404500813871637637618856136928748438121540161621119880843412203581679842621949035808198627972663354409200129192385683696184043615326373580680707984066535728818299424867555160184838416048408967031564643819058330908159265305122686071522628444766266130619011798497989951450590477214607457870543726093935214540165012280814728799722052467079487751360435955098741530158687610610620582026787492806707735447974111093775806983070212107048629335533011968655022927058139027762960408978923757350697856679140647516056160290688388518687665429180542512642623284143861602231532694867405554316773175745648672015025831491108410995670871462547930682627631346432071148953568602855596986391392895586309816388097683755845821416256546324316442119060827212566901120241377477635452107578735781181721456167227948765283108656994171377914135442857162933131387164982129081696661791706146150401150287496634548555410962506238917513635202019194804403892903146467699166882953889396523198172688712648816341304152633774241267824084090424820410167272454082078877256174012438168155477628904126323804435851921805640450473383316174354831835138397650922929342670348701040409916404128477961791061742222814165930093812520491734937611487041655033213537858625325479890547497375770591085171759812085380550685145259293011042580767064302762808567213756922691737346539394814318229443486174393622526222418347600356700886408735442668527241879752713850606669615953273422877702489673272024942876835935799165630321200937499715314069826226967852489246594148542505405113739011453641111186584831798701067963972711932041560979362407633743987862719747420344254197229092600706013584926084059451638294313700953688643394877550338855320544261987282016860819031402422960515480235590863435468608873978872123991701391108889525780304612488081190102887400903439649789469759520912682473609277146940472663535088377399966601094117953777448707174248321087772635234927550466939174263412609677609229500796153618765052032449142162561240885105270380715668293729465506356542177846175327705914566615940688288963503456045338526381853577383452228178972664398197837356768510924313098553469408703487457150582852410013687575035240961916832532478124306833900501252231612393588596463538465293471772237462221530603945977684107819986675004250677555154212793589481223412090789296695057022531390190458221619174210790739316539643596719853164822601980879192879179144004013100233854321547884320755407390831721106357270920666532219866966059560535082457147106304662809495787961999477866438449828990320086922139021892620660924052905542729284519112374370373302372661941187893540516321396004584254209648501223665749931038936324802248599222035509215905690231480737034906091345821123608822381475259371696244437622674544297357146035396417910160665904002049646280999696229949820679028642742568599770474646681111538419727281260582663675459829612961848476327812010066815970889374395709889546934872537087549407166589164805299511087456769145013974255507652481453492731609950229809504201680497441332996583037440759641910803581934288395353492754810271742699692813616388360702607540166731497334933879940295602875784242207965053646090077418948816613218212407681468060550827418980436831491622363562898927526623394091866775812045623701778460198068189238862549569579856471850384735897206358901279248481351190500510658252536440484756831097337562460719450153025139648396788645649777755952304755569684463953668797296161354057824010061043857354033944704649746841632274237900010790449593391702780305382455455113163881629996769692370402532222739946243457452661844352059661161167854590474829538274657988772899095827854391472544008447575347286063761668697377076964430107642670698773361181549394440344684749349565428845500026802304359774104240731121431999373343953436610747119313951667780414687651627777162246235955459192987116620996072522853307236524752916073790307585944052692680064038991168513202006425880675747589199454169551442971194308983554305170855680498084599105552446807439465560626207506689631879545113133790907975285467394827127838059768809454758009447698413688386996115520446440542399847009428655182866031950470287789180534101723929507125692475627258599603508540774220417648386132069452759581309147362831338042290475476455085197720726381113466215313610266109663074160101478429712379262657095811770669564675279530216280297489563142935345165258490125228066098132596860366409940154566098387561504119610947913062413523785167811655920253690020431057543034318992169381470518776007912906210513680273836428687078942776595828135950022662636662445339610481191691846704961981508847395771085052874711024661800244790110998369922038229897879665011094416150106825396581436953082153767628863959897357925584889920534638823150325380435926848037348094548154760113237572263655615137805164931221219181576576320877127494749395425431048541626828660613995020989233711900511466032746905868651723887512420343746083712516333018716708587183463691700092175250226051396267833247166394427528079006677072354401019718408982358083973825550488375601074701915085754825236886056316455383389415210582427024054430161310069808737383838225141774651047242933701100490689382549780685097781259567982968565860408465082436260389509272333591501283804937431832356446204432251069890044254062988095606798489169620636794352979933707604658134118485137784677937454384433232905105688087079470401158346549675665065584862586360687975636651247706772005093904283417845871462486324671137693810694216996378110104106664136556987281196533884791365362466404552507800876404042693780611414753951053828510374830705090186545285074162995690534931742389436569974202259470651987903773890128693821969417653528116422176486559805232587110234214262004523180356515042813734794895446863327143635854157634883127896048589040718833149719665635911852686346062027328510844404782515466866749598063188902184814321100997068734805044592091893576412560245548400522930822153576385163339356959823757542081755826114173303106577717229415752016651117117437290604409831181742441021207634587037737780104559069170936159526499143586549455866742223859297184737110167949010007368803743538061046697092904979769542805738406439457696925897867602940068205665574560333752116252028731011685501953038811445656161680642326299641776439003268298177835572430672958020070800560900226002067663321434215633005916615656408296448634198532932033456778532297557430083995731408799954342239002237257363396703460653671769348040553083841255422950035525080824740057470065920824509800733364334657298589938202314968159045452739966533773473600051014517887927311648214101146631418548911773511587935382376461211322420222442379744085505597708675266494749112152235812292559960352277947872533523125876871639331392721193703830781163030476983999744090258938307431517474975771442665196899652193232583793067852014005781643867234582929627878419055403731095632042308746021188493152829880562148801696370826843534708806594164274292716174096153737920772439187975325005591878679118371697090413858129431317464237276899506086229038462486197252918427764729922794068610016474128493332812473001257260325841965687247310753045528942366943595913387672247646793671822010400124513850961435147756693376607948162013415681429447661980261343272131128632674645456061714135945139957515713818272328312677154987839561105700852274157849289514939414373655365377830281266482449496325325162508398776437117430957730838761213821644442528130191325948060919908228860918340469519705487535893105641717651631908758997824325151038329190692255213936631949107547822198294461657313763655540244638670171294380079383194885800110132107717403913494092204491865599405531450307621185054766605496677864395022919019926890598417793011716004514038966095985702655520663239110968823830080868528308381996019466062837195311058682907606312367186408318400020895823729606938124406095733366072420482051241929354531541180673775251624500093594739163279422507688522216129126090442138940381029435243509653064086828042522934340214629314178176865265166070577489136023305366376217847719613171657062236511755070788032329855868001584294106065623689458534979812452354626500838503468821810486356904782041224775291355732580113904000978065051481744518492647960907622317217849601778807410657015095557853073914744607508561234583487833651343954159734401628603152894253472230190102221115206361292024606441040143621910813474538689669245190223670561569888815872825475748748611759258133942115523168160986497627590360823386989926297063584965216910519934365985268606926286253783726555231074742746900256171876296135945037547102429733883044035806154210445690319969374387758878323192050942378260889772549887982249271016353448571094894585927929203860902980242830738879205681565948201212606262311273777187022585441814664892730127923939187119563544056418669176991421752752086697322718138666884256527226371832520690446153286747972752242009957577842782015727828284598557136313284148429503214883418392973679715778835295066143360202563407922823286758774488758467103325510579203316001165251552846262243115959067885492480459919598228369053970153412118078808983884880330548242114900933844228773750442938839081171485076061156604610047918082208711372292389689669854818328662518498217024249040977345521204106188469650438434982436602203085276231253692325355902423203003073175869555751694839720274811625599410742931631378559146094033985918456626915501897111392853806541079585533245365414625107515084212159182388948062816753244357696951756509607220891264473860121021489127749358078387147279589219633694385921753152968619685237339834963941569514844977902087704780019447486956726796093680105862784315548160979675181297535766425185215794324424906293460873078188438153802673801688839000822365837079254385095584700474815598291971115367358414738275247026334409758993215453509856620032316824785460450978018293310198147732822237629526180134913357279082625384614845077084449711262014835397253796564792654816714859445955806388868949467166455231731776041288505746137296916716207810773493007692477809202297571822042581668594419746673731473111345572423421355826013922922072952303480339701513552978173376132110187023262233485148991676303894758004074741258581625462073930778571497842964512080658631013367105836358325036778193754706152352767405660302772632652212335017309700428625793315608326170220750764847200916874178926403323538372802541558502819249528992694173032612813957410093378061366071513372145127028712972907307045035696024029759677939299574649718732309408766455081921321525568189257338767747546120862602049375279777948443721462197577127978313332113912447448350318522503752705266393061037121702323495877763020962149698782556952807517952826213883193660906990330442356738715025052205069447031096188263350662418170297367496297097504032996965830620850837957798258673255949130923087759734294397278248751056872144603156297184481455248576789170196125140167473802931905630973119352376103448283362519437918363285130657206964516649631370714256055636196051400646275661420142426974915627760951207399451177265027900842382509719132093512062846529644456158167250256273744655604650636860595654649253987977179029319633317988401744059641233845233690252972865667171494541342051019660565163951767247906775223208097438440766011876658559130063314953412441060243620600158744892464155340437215877828439901144982293714204483538272638650836577888379269033431100327173114435993432724109918139207625480504189964322571311949133433046998621993012779946250929033451881169439384294766592319193128613336345621232427087037073961433620353517004149181245204930070509724986904497005482724713410307783081225750861826777463903940335985300957187513239537648961828569329119442400359315586495992969305615693572137797785188743791721684600165083865978349362575058385648440651121906485465116370236941736308968793680631220517135146986956026189039893248681423350332559158303111234264513398211167110128476408701779958525811369760360895589473866267933105478891682545064539083580938552385375426093609733895313645663748657212165558551800592178009291529113167598600554726678814586307648503812484392176172776863136239688983032397231723606462218348182003642746787537053735423832894702501624177171790832590451531261800775793299576989656403260890335009921541382731238566777535717933366357836889462457146075305974478540219545505037193338819106010869042253892338619200681042763263601575516549295264085670431556065925530477386392103935669602448635554036427575194781801298905181782344692058826155554802036355249309351926061015034778549942411125120533142714542470105653500323346023895367930895522452986879173713788899849527631070246032258561692741730348058266882989800662483536563336536310797012171909986646509988135493064171989492177302225146989234348750793252219957542217260871819954816111656357589213794265684301609614413481468397069016054551440163002226604449383782934091410460367840792043781945361779679027614548760357344828183851782749401002134265428472516693623506858927689384214774236372286468877120109493767389001217866392721489871639057335193863086736282986672399997258663420933029113190548822262400187322908497044384928203175205674134427755347602017632928750974169356963518680594930546075607286054621630234285935232234871434607461499146244285386252943568887088874174194729672590350113877035460709088107719009382077915015546993887245393312537609213174695518560779897180406738328252380149714673536360919454896310934706490572598783518185268060856414948819784744588180248404945680091719387583774057197751298360123388348823288859625767655370734655607301198422626008528985907800318180150934803663789370872132038803582116896060767996408350797935299280835302921533027944635201411921868212631498858923193360119378199467591166990186578568558017607620377733374287074306756704666365949020130338762061987116521082682895336742614603716386450541274465068777482140496585581327194454193918058257396877836736539492057536976425492015660894922780600088271856281824593324386718151276918657343717086032563506189100244885326347793393411199737407614441712044324935359514012832219926903690818854165832053915107007756906410717102394638601775205026369392956919448748687283777851396292549061613309509395607936345929941465867213966807044335395567524240171190892957492291451999984407908975887641701186198516252953467870071164915396101692509020217647837998350327126756348866601137838746767001505450015443336762911401210580305152075125349992553600618973800296593043451429882065535090732718050496329006442759863609201446337642080919922864831449586627853805095696589984798884773168484722117452384689906118994783810679398399613538625058230509583250937664765604899329178243013850399835691444073944156774520329816890917529578460067598043098772807468243355845204437860472231237349945404331589339392137176992391396038123231473294905694164703933167498497146080967725278179224977554743805495270682303275166058166630886821547548179912706554129487499093287072434209369657832253803769619435171457659816503609128325434497934282983973078256999207585923198719893314879699624834153762592979440439905515370533727679238769822754360321158663233472190819974787227314098157121267702956252781743601150672012206814908680462922472221603754100107944780956891590425860945291650947675880101671214503400234997367424728773506178818193962066180152677255935304925810079397875802736890512316595420818614743268742858674797722793299049566615478064131962526547786046498534556645982943347496453029842479680204231593627555501391943728608422072716640022426381739632324495727177054512838007354420044000974017098948325290396882775557607363116180301027783617216224182705933225191126707575513139313629686080568064769462268968776981264139835014461656701826932537703732436670443252424770185519771431568347202969426390684163941653784853799902904558260304657601900298732045070583400982810441394835340460482516141295147574405077101964181498024881845106269277823175115813531212256595656840761767526842463848986089901338674478121218255870470682719763324699400267183068904753203146278272860630008955717936102990822979954081812699942329344928023852886089018911444468085948008870496592249613083247621256476374585061927080665242464125167724216931447690917734222095825522010564428971022734862691508564159268978483521781056728229291862264443017508597490001031473749260637745503731416512219439234174340802842262291485090703371433612893478690684753862416877518686209700879902692103777661532992900589555603931912966678755498440142558813052505887970531609289676271023812481342194245172217309097037714632864756774550633738506101943453709699293115909937961478159037879433005705595079304484682037934864450329682666263838362054492611725907516207745493173739609057138856505788599664652469729384334617489275765762086354729027400614979293784188042074150094041797681088825271743036219021691501818469096172813163244780446863883198764604684551816417510394516055238725951344919064166228346030594541639609926922335919199478698028649608267126600082008377799170865424582899905660105274311729289409895827352060336168449842071522567898834913018324425273765137050247692026406465477571690984809010165743677062598719504707987726070977678097968627554394555917448397196062728812939556034037788924733499062300739433920692767385802427815525751785952908858450328012363457550839085345381107803399326502121184421074295987165253109654402986009307782177089853584091616394164231211714418864956789215093734242000768493037201615388021175850663901042152803451163517401043624786720555723869390883192738621035583387324638148572212120431260518239712856463773955830168224355690845848408310520603021453016078072239575536477237974284555211159524433278544582514415359177903095234033949071196037197200084525292139313084166249353026267891053992200231257197179684478953296283880430752245402806662003938051197068700201446783478630763190340532407863905077224201273700224641030827933635304835117280944476242285871631016946214669421017009223263680930102146616910871626080689841141809059160013079922843253945291281476416288135523857628607745757081701022746477383788138047269385316714561888122331747631852107554082705127323499766846390664435434410806122435282416072124221590462786426162916589141497488051486120312303809652824721483852603532984514274000710311626102137837814549877480126689062607007188159999849226797980185631900903070717137618318746155052668734771816040221569586131874106632954653568916156622564757652415166684570342291287870973071003251435926313919657733363736269670237804874869137965333026986462306511466673138347452921895226535324737243944152595274936934854187771689671708002338017062855239736524345192145561082046439307376891230305906078729742891640133970835340218538502161465920408496954933067128312584205322437809158896648696139249525185729596472814120039600104279099884565713597638138477369382585654404481274684497196369838073578337652359992298918612822577050993038742767701643658087952041472040470728458125868504873894924743729690218871415250124493686412955779529833657127894809273540899456440173342315093834908741871344503949946622441396830452893685682318388296018477263071382629845630033976682585156260782842409394799780404805071543107713994479571067379011069341098120197659205495775985381827379169343984584265091909856446951310645330522062590353213802427853768849409354701193819123574032281796707647369823493004891908056125676557786386156909564056163906333067660598634597439961563491047048734464351906423081858748404211689869952346328647175696934403860266171488338127740221590824405149384243098049679839751406246435438366377837039637637995945651907847451022029953327646148788742554225041799021978468109017180530469284099008611557258169199895893907184122412942189160381783100415539368572969009615529224323109073366623047915876389150271903049975825034703211247928299526267459199852239647700451257944335425362962328545865920453412649574885977846849685975325803699666735228164379438306144811000785153528967022915973599251785450556513470647163710026511721204611165731752770903082340522587246640927437232827548906728941936082468775170322678715632677639572407397654010064460411320803400922380450876001717503110521753208215650488966259339956074392873030338625366708392934227801692495197014275401110915639875907252563047706874796919336913324592969950825830358806554269089082119845899530321287203961303065079151026326411597936579392570475622094227096837727151654281131302732818918926286634401924441689894027568747890661955215187133427810211561195435025647746928931534954595305458225719216190529613412880253859512911315772493551824489966872582869140429992062350640879143871779925895137614730189975519261880228985428175907818582823507721803142868217491758877049332466464778149224958369691264595525560304707962366430212172080357654922341365792574331799584864500826190057030511364914257707326171895566420990948649487917658591971000500898002112551445816108403971028883527909415140239110080596740824077428803701741015893230948328958334717855112448737122539070983580699731386928760458083368708664956453579678329067851698828723646292964750482910745403091465141673324462902793902250914487072420944316458847981448472657623767590221555546440269158025081262275593146067558209708408392362606318320046230544499317294250207777182737905959894509557961824890631422438214686333532524355576898081182576792951718683250457365242418107561158236860874988211988801877794995172999528530015366266992371301508304510178472169532692711241111378677365591929970992274117822684170908986296294611900299593618809481241926507909767152155353533252559604128849630384290678238004488541714146364671059666404446648823285098321088598314536935560337512808096262087150005885020398567753626114780040760273051282614999428145332512971459369511417986032828656172756324221316143641833473915496473692856768981395879371136768434685483067845691495652200294823549631931005274253574545630036999356741033869250461922735094748749360626403805292479752768218351718855538938430769675075417682861366039668220742629780997941733297302677907912458363128849572016784570768825812382438864482351668087385844012285846224168283133035233282415758946537593312352500732659395272036674959180234540075287145827719446758326761726750474205438804008793655632591540086575440659874686978371358934961346287533628736750550372997294733502356332410964824469304236189117120420969016887051761598012077774162080432005029541269350515213380496116946760868803065078990065158691182679102144887144487082188925093152928627936849305577185730659262395106164862870362707460124004232352456524685979683597749932064916301292386580640847556242684973552790429685681056663765072613378027540544561475179113386252650879036143782120215596947186980329529387530688070054291158737430166181324597619355729791854757214866075696989876386167046600110767769342177571118319871415199990860746070159505418753967104525752648779736464374800849378538027264428518639987093279872267671794247049903830203918316082721949779248764097730899819858605331526198031312812485333077406906443097482882840719482559168790444356483776402550240749391863534289871277984266933777393360076345516392868970456642462504312477036542980920669250017285333577853457953408942604991321077836569120413843117059497884592818723307693029333330603131055285940337029178907405417554780524521392870446559437947198196377473520522537208071645983992139192363154084775383349514075060305398205637797989418347779686198180417549799964725037693343130630672605047001421548089059168504110364107168019148274908627641705420448052477418650000497076692106995934161962159110276554378628353396434636416246846341911942013399375960476805503475681850228503630955368712231962562027551655422524719041418524935058846141017347674950088984581009888166044841497329470149444686077741544366993717096384673809751723095935961532325409008508401425168035267560083743237490175653277968269102939500257794534016326254424731555824883023423295204012129706642571564399197117560128168329167877005972067757067544132554901478047115818141988156022594488731813341125793527238480563757146979424749921536978846566917309509559339045683827416768240477592762575035169827278411076013315933955683907225198055367936736208551463412363110391985515029762656506747543365354972469812019689014028874030967285519226894631265444755846794797882356614019424997541471730708544132784400057956416095940852224891837554409332374586581582496148444605736273028674752115306379126595298329398914810465551970598686437755583732412722105996480346177109592737619750268916102794091848792571138195530599043356237912667538199617495967344780540965932533079651501437996754868505413212410218431272556400514635965131780145284233137390359821969348980091950116985979815878593118336801023679588286981671521378302002168241667260596621052294298050417700054933146088848570886412514600842217027595379970613860169561664396648424023037007182772912600976614223365118183447770469600638674416523425464334388905488284948307062989872731293012580715340290382321498846731436004536155139416254856817234297825912316382564213093818390392276841133112567003613453892710582636048334811151152180916102094995054777272043614913767058748059436040401959986294915049417342620986329181754098734107437325949377239362709845505349426562059079177095692632466932697168661960050709070327325353694794592764298797707606300597828929323000517643882773268973901016317436772107268166977891205208986048116730132892696405251540438725429900098985637116052064887850450209702821214720352122351520433185085057342459733877994002292028419809186665086225936815812139141341343923554900787416410208546277079150430397636927437343453413403634621568688339822026765013784810853703641917242411554688046461556106166187557593757829432528096915106497369801843178399996920613255233111612847315143911189198465682444553156507941871504506353311128962308648754710364012371193939479282316038759872691233674944997348947957807828094211159504124176418911664816205386658037832647730900141315413297007964515580482590692357082362591736450566841800291564881551514779541401636744528986012941310250093725568039324058233669532447563773027368294149709584347558506727657977949111152151642334909038877930329450631314143123251691466414202276122898128130234282257401996525295961472010369260385635146018787349095005685354744357162278500272666869978019508023263333364691418865754743549563422482968876675779508351183424620340617034784684821376474783470476954170496785448000530898830550236626294012927158551087873628850408214202587184440876202991897878966446940967348947412938043039935828777907123465461800116632188034703190782296788958306459268020950358118924554845163765417557051759262752311917126699207907701352005297299396413901853875162399566106507028715324660347263914236499558111667844373341212717829633567140435139847530438388709459637808360051255720743636621792137790138077411792933033168889256561144819828858690540872645732160545310347074268968104597714513454942791418534453276296942853990956022753423850046443291578471283874238456847733804133407414494440660771934004431205594406772840336480640402922895869120247715494152719326778187205315304476515581935422100853950763789087770901386849587177479494716922360607048686726828114958424418862061862321210179444326308990411123205826977630960068018314788771851138183842523742247221316788763091618282823544915111619405022993122826452175146831181115482632995805106876020929076776961076764360627378232002503638491375617438275719891120086166441090737220106847088620981087475721509255831915578970827348847998431160978051479373744474069476674751667481378698716568130731730423238665921005809846691229673822356299880640646546301485284282477532322666871779253212458546834741914674186556722063022038615307621879387261653721808099246404519064247313308880758684109508950081857069705296800202081186799992961459395553998260477803604498033600394327048747403483128491985311195307906794472803798003295301212910653336876131228603678644536032625277378012332944202623664335462859468196839289842234814285892993696344821931758433975530315088866532807243661130312727600530790162751707684517436187174039163152275995337784895329024846380647089766419097034342396783053081349390815503824179461380995493088459178781157458559050154657653131512756396321031517094590483763280069879872679836028256208227169477711860981955400098315655917249418332675245877201549691420483494206020688861614320993865185059352465399104363901625838357259595326471184559791800919761805729860029707099992084446645688546880556439977903636325420704938140940689796987125437064857919556074249943843812857434326582099854172127104654808658360138167858840589874066414665417402789835141339269997888799172409408421525115553260584736945598814370926803121349223262090953425871230070803718361121338938144106194579140650436026010022807583787316065606443817134175731561725469101567253236986166030785035647714497192209300977602432648681050045363489554951467833349700586299421851571442826440126823823000887203817905179983899639288124985133675563204247378855845355550965434705283914746142609989827106192844432201291092529244262890285051840486830889116237811459429527151062837513497236564655653335753211978952747062152063375982414731774356036585068810341902222665207430899303317682739498369097706326519807189560167896148814132194529988467160482814277800191532534732039529908363366675565387253715026839891092545688092507426636153092865143790939807400246421734230392519629955528778513027313020454291368903589468626388716371751192454233877191112481933029506723012847763232738077907521767719173192329994021018754526270072769397091320328264810739833858596273655942434093542037120647295513108264847129902358039890722363033713247767152332671340987362294687889316525204889454431952486913340527144155257654062289265123993247067180594261931868324185970801713202530960256637994320570826581338770266684821324545817679860557303958213119958345193564821576377432519450051194990202883315433792829739996294286087567763487899054118496706867236492081320295155573305969175959734170415688430559352696682818147626688204404624975054945393017733349321785196244819798715716449489878361675012969689051198145849638046370746753730580820758507650407073616678420622657818669286165905003866888943021576761051593724440959940813410637274825752253936450970941795532824739268419847407738841522130787390553655834096646524647565062715637495011535534747653620586772582489371628349814368892145382569647174686766755366219697358182754908639128351692658034482388026688590619272261911718847021088932074910642768316418321675071865544260323018332909840650344623497659089523489097792450028182880288369647313979007297167378059961170059703351973404895497275527464077949258306846191307005284812727152877567090117280916714382905063541036833998535782481226107403588068881627157818206231413816475893941453755592399619242210964986789174780062339387225516319896405687635042653341170993877393038802731310637002948555896162189271729930209519527647723043938857689514220148120724248678511352240398237601687602613297676707291690172682405187297867105591572709645783217168349227371310831759645397260271164685353297339953271466676383437840064052734263005622698684634423781782547233919964137485524752053037702534352229413180670630090556836044058115210560729772629421909034714464803915643153764700643519817618101527142866307846247617700213596554463864646509298459597377160125377974335607136340966907045217679864210757465400977517819370487692859115036726552499602853731302975490454232716412887474351635005197808604375619344635374693356161211060576261634684063796103011677644162601672136561570636510445728491094272682459466385317371484016246978277846484147418694563036998380504669137516981204831048081395169707410204506952486063609972979567254922959832069946173351531577581024071307920135298482368956019261107448204741360930956924989617344133257205138396788547446262460799362616110513655380618163099689316673575349139853968490505336271246440703431258264691218334847106621490378141088621028435821391987649829735376017254719624202783326355155477595410294784104228392186311212943533521916754187553616516643123487521749157964949735948247739815033190548720655055194042741059982578584026474912439113140463269410076082198486428086497626454907613301989820243460978132225865448386544229853163921364410691651792395768437127964682037575627000354462244860550899588447979363038628152373572678390479631423901480924205869488665765421617296325500157973552547743900667640431862170541701755911697804678637865399091741764551011619143394741854219670336248819703923118518294080375048275785375733070452838805016781101504401722484416546646243168185240189716377675226005927843001631618273647377175297030545962978845568044804433692708278740133210691772581006053019227947868840013424129299771535339944091044992281562079317423698828772914913192498292680612916998694327097466731017800389662743594965801634566401000352555649756131721660824146224973720255860572384361392430275560633342450993039441511331748540736401092111363248825723134681063943910975625676349924883221720286506385021386321556801665209699301608153391788735065626272035185799982688512301598634135350258207808003456007880993035019162003149246073574657705177594344518020420613810522847346627129183462857965975898812104754596144590031598726216041481976645163683643791112179449155766390338255985738417976279768321532789107143980152867562853858755150672664472928526986102621123512086751965950859853683822759497940447509141899814700947803711864121995281113356382618424207232957702756930549807427024888976254860370711488512251037655612638089080022345722626273872296689253499099046382874903909337477770545223520331152864118520207437876265122243713537523841508068712138868299779450439303067790013689967311202245582750873997332275785539859861322469509413257735416739064928389664159404341271984889652005749304375226935580054502084685773159904352736968158666697532322673283162611713004807706634620480279193512067131178757929849137719220196969823770853875434734587305713730443616772492092949074928818695659966166417217505567773647233887577817211143879964833763484667370351107354218732963263472041730240323624952679443943572093542850486007361815991435658483391941541496127015529501873015062205632376392792561991701763881170606318166239961593315436299718993172953887282419123943286959745456885712804081608720705279456678231960438440255786748659034533714849955135000060920522710741978165502522767219576624249747497317559927811837261890735610400400441896407884980853060575065879910864680990680354155619538698719560227024033194402333895024830198243835230659528843982974262982077080980324308303861985568543678578036411648124206190264637586090585461947934244495301892383156517901361140329619730765153545963785943226164306890439931020031416472456656288706667862280720294591190715020729256221514166581754745152763076727408848890246377593163596029704816361117497699651495952168695530930316784397741255325514447075515775415350988714895579689308687248054780853885845646139992461996516629797123861066446713291316739027443825243068660544860421196329407539009035325403078675182928368250967787156683608454230671086417392812595316573411472727619137616012430482602796741693147489916596478247014438163207206149312335961861274100303613001003670838137835108982137313703032240546432564973891854384828585585682667928615999307730655926613724034679854062423167387761054159829721280561904413671578269243893873855568516645862562345067938706307035433224380880082576468506605006549676858637735268382176771466031938274426656522260203377709094982600418649910048931937908579496135775810971068011948089934341805837907041315268882089924068029780647205501646059482976670832324467236261295065345109572681700168016848041135899126215364390306588493024252125218112208098814910224887479596785869933810751123542216173713914145191600456790168091933960626753044497195778477933696772756520475981242629299110494077315564518862677501950208687601043987974161638712611323916422226066727553991531664508096348509821565745809856090258345290254564830039849922534500619834449958213488161406721275030168399678503373175073687305233730554201747044713498279036781809479172244711885391309314688682150870610393654180461635034063973939898475870328840266661041616657048329491680809559808254175305987044143938017840272183925436125076728335017028236507269721334565434769911321579084027830043008579582644484251794246272486815096382949136588757277377077777174676749945572481927928637449969144189509063840122459633757849239631002770119972690171431297596180206939128848738818741070791530253052053882979961262185000548403822907324375886599388456797848257430280923009116434826768405030248502917472213625090633245617349765925946478921052589629012732370185653108892854760777091844504777473018712013136027250498325119903827655110465049466992210478122014284905545869097227186928291475755777422564390954427108289240730651262058147705718147890049411102841054042458417697199728800120996933204903699797641352942648342174656618317576385516227755682643579975829554639102860132740960244344487527053681071068670088136434561492931080221846335170104987909771480656546958726931601902848295208169789560739603192035219328720948797395372501837232100281521039765505705095427775177550319906857489454950628432236773492300213557571066607963120951658161554878025593449944585561724414196287208213430370008535859137643569436931161927656243740089961170528352793256653691100033987764770954460829948985873021027414530087873929966436530045383300369254950368490401257845452506111967645585437949514618126446971779630824214308267166913704133147771076653708681963283094973258856527445115608681525018520893443670814256120968654247357043955351384695499611171782965380702016032702061430329875074258756021375632750293905152585611071221339152459544994970888522459662111194782173496068076764890060607893234568054808741286943903474546209999591278425019159619559987662383110362813568349926839709556939400072102756580753672082794917781256113293958299526047374447534509814030815483966680758868847869613790997838954206583454515710176368652102795650335664736231743710325890512304971331770713617658554920784191770494253958317023862240992399386561317019372908858381711354855108093276931451349069814250877066432802281717179806078222061576584117682277290588335622721482350253515869493553903394886374093138697651581295521277754480056223164805643609492342454084109745775582178940012484067438239569273520999474565785057845112123447449451822047376932936904463164536419768700708736046993298427800049524854427803361621313634925760899694012993975070211989707297644824138605124964057772385798975907461255901364361208568876987530384594097442526168377405167318378662648347519735909493280571058730349515614007693803447012981079099854214210776889611642715444182351509120836373683858218821185702425242648165256425913789469817139304274974883744736369677089735236213138242841681142697968590003739818411697516413335627152968114915893110622472063872679460353703461830387614497747564288090898373244810403208681875262133283357025961085078161522548505708394702402988545896488441401673788878839219717158542781560465838732558678759950563096238613140915885520624205695085176746145231345152650226775747468077888524066501760760569305529412462689464913935967376952700147801911755138710615751249926824867715235838849125798470787319314252978226967030201025691003307849498283373305012324670513554189709820761902067249743425786460300370131356505432888458435619553981150250645808963709554164474709237383355358235571886121670359520618875946525720951284696664336217700933658668097487884369696710570501639404101104820381297744109225533845335222715984867788496961639456348722001576524129085050603942223823339342587226846188218986759836631064567063562016084464411431413063629259674911763412314805819612884079997456892148168631546723248663366020094050626509169086191072428781277234062173772491898560654360600948650582720257895163666056849199909812138673295585440413889841514163542373851383246706900289719615623152095372411769745565402042024026502424501522010814932403673693558750004040530012632816059143818119636530946881438990967145310236951709056736550275567588330773522459811737851124017832557774233254663038410005407642736771358815960318535910888392343621713952721488725551829855581891691097641476207879863166949381474532144403837597620491233660767032968397915841377371813615463980302035630045801317148766290780510695819208500238430247925752189578886868926772621264935899065320272552440894637468280202145369505323770364679378867114161876800533072634348992196245782531644386863059790183545272951692557417777863167031844706123753468289603518458699745569597809780402923210446919199203514108583589854946258660090387013904444570333430463138828174144791350221570313917613512964199177452136133415591839489128128278209908553221760071930624245638053194884692928974561226558773860973976448703434217692272184591619450825855834424743931913365004746210616759232549966522762252309640067378716100999859599383145204406444032012630390275418436360292283594814398173024053035713254301396542196102587486200480723197198577732295577793611577262437534890369926945790851248245435637077731127199647247214711621714088477248259657450634863094046344353529532184824103611033948800979184222486667617890184702294537883286646573056504770421860064453381555200355791099333948597634806326493641710076871409703740935365600036852586873930359234354223773492756122269831317859109149853040322135425012522602591818012678139424103201724611478300118933374405425544479036376853322815179767482645512547981391944036452632980880490319286875842112857282204703631208167348068611942706040373026860195713229140239259765079875336007992775688153792677908957679993483827709487429818940613822929876304931755072525952397904671468790464756561582906384832831053352847667144510085184925811755956448149757448208827703134577598115410044339770019791577771246639385007381458653707775490708507882678154365774369169010980136819636900488503455710279758987082710175265222174657996834744562384362684187537120675074333798452240957350300797977571575461674516176851552945080659664941468858106994481800807967526001176140085695143855689842729205477364958095272882942604220764543895294445460267945067494033236124715164719860064293107986568386330334194539806891558060305142779337874959094404383984800013302392624186193024993136610798523657259231970306257189854203818804032260986855715705599176562224754767834211952128314333195553150235055960085490294888561613390392101775709928422457324039590298080758095457671444627995218348824224229594787397479214409319819076631304360471267570197370375948282725009726483977778036697285873941258577890697215018045579137195838943322016788670657294160666631292138878827718317530972049717287194822005964744621855364941328497678748140870720308809579183121378976973674261474447469183062344332977730873031936589082890295226676286929276083212228433092781776931678363242938788658177245778507844206489554641310987804358897995748200601146537418283881572111948973762408693508978028331710969438745839968272117045250808076248460417864801660679669939167881422785451666488958326045939454351031170741450428073817360755083564962864273363460325638457492554062040633601766920390944566487844418827552447319275671312474392034264634860351831714039492277980124395932402764327682240308631414025151217253520712420867096637029318183087226398348029287427462593036608433512539447945243628390156033055988478896785036579372720217940071447838284000611427480464700857270717794255478357878775627784384753415052587923582829830492340908031330756376848026490288003442411619129580532862741027827712904835764875727510933290781778258614981187337996962522902121965006014943103495275456418447615801891639989022233922182983691650798537018166774182362046376107051825172672176035089488399066754394822191662195707374223484231610756579889312537774532638515582048415488098356495067822957088744046654967136058933711070315785491378949272545762932474056665610942097946729943395074315836706679852106089664426657279720638229146998536105770276351541060955468312651669675272977737321186919130275230980660640989454751595561210658249457091478621586743769245149017497283471876078780307554854342585382816980538048347723457956727437645375602533480428826241142061951871845978894552983854045853373351895301781760918757586646866791777029892900899295757965640871565606317465104757410413010545658744407041960833018785485198219875570424613883933751407308762126573742089937668081576456218695396712252430975152402342385891991409427360388023691539074459841602665206379101100707014746084931694226217183511327889251428514127908025407280662702559703394088004901985660777087589982440619303346672186147209149786762147514393877648217622319500654757460362997004745100335743186056066529854915851653681387935547377702605746125297827527235265955864197191433594872233803156993454310965827453947822553068583454753005380503764320784198476325739511925278439508518167979036005425097343992321848019645731166012988380873392773470730870589685479295802806088570431756454606853684490473512087581198137660211806651907671636264278435362804789124029122500098056903149661441117348367929819889467738158465408502283213633039588328567712455838958481331125863110372256026118936692611366998273937392590313179763452220217126615000156602891822750775990336069654895720213582504356178789679285892956404889947030958192178682577938769639978179998453452221067186450268941889674173370363656641270096586648642541557136892486416067093655756459114613282785880189187139048701552707485565113179756572404417733688983331395028975037554195683093882408735652360375671381703593980895920835583982317060231039823896318011294634859936187364871279336712742103257405542373635772723375731413457760703274608497527767242974184219295699652694100864850981608585789289715875669639940185665830543087471591814844652949555505308035987760782680286071989060455639617086834223919644230894119492646475314574461279453635246093520167929596410691437174858007477142813092005220019922088847263229549029157373836743523216545538627234779351285532426375266162695700105462850817291380063413993368798265274556074395863009626175287966147400658122252326522210696337876968470601564794031485922664802870551540545945554829323732621238248743775105939777948062441142237851821747745584793597661706820952849554514180633107143122502227154534765670949316946835956537793782715012095233207279990362395839737433111215125888986608216442638837909035863364740339292706044584906609303952058049280187049813469488429459908044324386370854629687052599488290477068201795182200746122428960187784240134612020982841397636228012218663156386498531948265471770306282306508987157846007668935299996430193748100828108343377832299679983764445607071917172434303927594669939110817025248702402909729938318968900754884607274494899349228947944825752211660182345770284615848660485606692830715666300273290124828889272334990530167238628054645763136852648517998843760141201431245681015594206112746184254898529398567493788070767456673609269914174528143195266609902561225555798346496293113859114365647311569057171020207697690737624516230775829149898123925021704353180961453487631571606749896073001255070280560564415974585830894161898655122280128067186787684223939942883247752625253119202246449421692238183732648681928909224268576072081364420374531648087066938727432962314505141663456789820035588910610588227669020481968588658839213434145907206953332944500872126237912061923050869256555409445831348814713915342844837970260986205144387712912370365936192983708999986055665288420878172466532474973449577946795466640966778858925751200334086805686288259097321762788920929989860281381282006435681751667877496959591432391466587057627160989560933624126276117803320433784318274226922184167078520980074176229223424903947883344051764062769630974906836252317423861080405139498477925342231999046994933191997454580836239179429796423249421848506722292300965418303989127131239656644954215078086189730518898956168147216885078044416111473209342013062914380914901165654775755618759267977595191841537698174247519566376898061601594102473254958832544694591519548210264910483653455129040733177290393571580909841825335807024776595925335025803838295548560524388161495898446617778388574924568260165681676665833875685596609394827374392777271027195664709877971934970757987197875030904655318877489719367162939862246947861501000534869052246803517929236862777836925205211561288192506675806764556993029617817208700315924572391619779825321626654830080646908367326590426683849391128484622531622116977921633000952121600669043543469324518854109440345376979902893831183035018009916955951658858227902317556330258673282740262195053441594859758782938518383416965810046827011084702527240849025990599914177276014640192423591777272687436441419775527667842110965763715248836871478881903200196400439282062329825687139776225691952069723959834161635308835681089622322439123147007488873995016875679950728702540328632264383025570429732136416755289950608877655590498384507602536776828783646594241228210590041858508503744863601005415812424239146222486364202059335030261280145533129532013076244771225714265688523221355198909437864609572754337390092988496363201241049332975402171890561417021257637882833529943783353720389081210867089695166648484536929160986367794858921209502544234974446183216463771666420096691071418182725896766608667761199177258168589320667926649146564960238637407656672542672276401351157165371946668101474998251612385041998561592131435032657643179126248564019698244551844778806672650236554082308033135947329381451307315471122589448803034354795358822821992612870827850296580561571112670822789310379913778903668813285747978574774984699244880334113213216293343712584148629266250771529482690642599257120763368477811840062633311866917518868040458675806908525327898838798690974315894083721435051074317291668132734702556087933064720409884914692270194692227563607415026985279979155022642985127617831021348349643132876910372403931296914251619159709105634940863389382023212202800135549296712963463899713769261798670516363909807553007512692685488763642654676655610204294835584809856671859056107666507252094655551693514901505098307586722041636466860479919261413074880604217078791587697298811241866653656002682801208418585323143919003123283319011290619694407723271986220736787670138231503790470660509394408072970619735210308013469025010477958430760805354736790352980060272622452348729908456661735861367590785860974721727736689636753568789849783452407449317363779984886371922580935552888511669861829135556618938002604193501984030288557636248609568283952438584772242296469312021927744502362421545680224288163255163625032225683926863617777711259569557024402906672943415741209058838692012984445935108166368364976046837479101621024841802310126447387554625108539030804857280685856763163895026492626156347479081096515273833763085715299725384190202629148455131200881058119325698835545164926594071859022526474428413834293446633842533652328257630395501859067563321127789402716992487099347845682687305270573506602128666136537080905534448412094708511273478044638452230650483101552616158314579902550391259121194077361488009230383764659683177603316118742115938747832013609731349915259872879953863370102420137280202329028629267722446564383008277242834652884686174830096356934977852631276002805097792456391843311401815391904330156584610818978731896951950420109778717888754293768069047896682592311144197735708468238285735528337573923335149113984063467264763489564123114286399889335440161495574141624688227752710236340481218106609921568456134285065874098419986423100381112067800878268814060121966300694051473502192545776866625739429586914668286709670434312607835988270825955660949249177899140866839734977908396628483772952730048271401106387417450623106920311148094103377196470216846342956607174953109721560396870657207423655491962502415836944453206192118874375188729913058524712598016607631410059804581167626059899255760639063497214862408671534679433511719904530938041515366053558442621437419504706873136163547634762693601958629611454622542159371812677740223090650762626761246883800883155184942534966239691041525826358345353762274897128936690913716492749144705625545430601641341990796136455057171837861574238061192143864334117391548826477224557761862600335991202328137894325395701943638674757038136706054536925855571251639386830290178893658275099780906120978529696868505348707076737896532639117720829485230943775218432384375262239209541100968268305585663277311864566899077345520637327716688458193079233464813991271417270462245481162356298955163780021315877279809973433271056739461124900391589770725475164224415385186015573323584176337467315462614386854845522319909499296164787887685472820984120057322810438559728338003174729629381328020389188502710287189350830965316538625247703181360111438612512084584698557798284922559343924013762993030865302567645761640273359008422695475138442657444045587527143779159625309238264679872451406441446392387110531969559105512372050842807788129130108831120808013699492703759096334628169274978684575063274467055426155287787152814545117155426034548596353256531453508898790294453817461390982202223683879649450571307307099798085637081168139559943004642943080033128451966432417672336333259937527961486667871983755332216749695168169877092230395651835329030302546178973205143310185886987752658169760610444202057572502538995348162526480438772871075192558285252920590051042802705868972071807092400929282935028681571953635840414480735447511612381483075327210405371325865674867062256525020543740797973855869093354454893433645089649707805100152834735336896979841267231537629830840360716119286552710655682056870448814415877807479547900566479679721398239367746141458432757593768787528478291081023695798222784271372194908012899498962403654782211614422976505747845549868922156434615021125689962420210923692316218801397674596230008824560374476052863561572242586117561753951681818532552100047337747110705881153855465414433752290529795957895060559101055124279638071664376657633122377240375819272827276498485500886493651023449323284269255035458124234426366387579822209153027530567755459983242210745872909695020695501716252344915343743344165692585057849802233118808425717928640351513914454309660910953825077070332264948175905755335460010316532206018304181289530614140162610474378110770187672858528038765272418179547345076474443523809585024574923665984093720753271860659979438089963278198289099818998387920126647854031295015771305138502070561071447283537372718992456457037332942271295975654791002564374696624389188168943829179286517964296341254982470549634355908287244213663527522982334274571490210503055842508730983668210560995086375864461371773839602048599202837408590554756351756693682952150226448400397199480788075259056816033558937150783299576161626919689849562772582329786938997056578620071945569614547830251256791644709937741478119268459795443954527687966759317332584282221737019109265492850677403426675043423434002211577775738991107184301337815590172611549821214565866770049718736374390946460856827928289230486555121075179116317109685065381657929807030181600481975734151172904832816059355294404866337428541121140116369231804686964464232731235823263847548356570416589157193027561293465841482096124994207534652120509417320192600789628010446058731546307024380547251223185179683558319259748257769278007074298667886604981278463310328512944461189090407844441017566388647436860524946721750880821075534053196430019242552358343455116613968437342674680729783765346315266902129911567878005858829188031644968254105435206361474304957365678528159556890331512453956914188218467890132422664791802341611441599738269448453953956645305310497330209247971296996987258427157069404636229338504540641390600684349413663077098863566042905309448281075723168042782676538828919088524807909816203655059960323230455929094669175023918423731672983321337335592183983197508260063404349579233873608477035564629061009717324552162392411213882302220826693282097493889996693337596022647239444697127926948093740044748343128808443500370637994427520339743573691498009299855572609960308181003167416747012040214680768414665417632865501700748438187560821632782064923595743268243706986819529977407121174223970928813386368737823051979405512500640936869927664499422167032305437030095266824372966640976811292633043750594792161117296665470421703165699597732663596490198222185271105786009418990829899045783763093324105127762118962623548622906182154502525255786308717908825862330772880906769627738495008783861912283058702242148109114924041310288790231092431992836309946619274976965496846971964858379466422787819240978906932102969118999150039842331415534962176433770282002948012212066857513779621949220581718248774456446410186697193187100950844961424400992761799275396213549968924367886454723913240783992194990687488018475945891356224385069212347595564355552304461225278821531897657418732663046731124096593973326648826837247538680557828637430478913918961460593261244547324836354938226163093857959123498702759201934153058518473709285339352894020381974393150635270369420268885905129276692359022111628017974867706478424284082131891725059550389194023748756474621234046723983380213185084732343347497135364900886714569903057666001705918799783202426948259586573681884684316952824716741263983682552400171560648378311116237097239383363552294449859149728776104208147560882856182467225206654284938412264108004239811465201726730400383965968411844261478306348292359435405297972462596269252285173793256679802902328617628201663498130112618805617072909728290686922664067335457773501641912036549362577003076970249536689208320001093468928873580236575401639208408511964801346925581748562170428983060980006056978540237897215199544201907147828150808629791052327793428252702295800138144615458871850609460269640620273559498744522492487686870695841933283091066718606517238337582133558501359009114155231904307320787920186972485079734158467681743121999833103956394385467771757878667508782602175484064123564824345743049988314763607027126909334484388166877051467125299662331038667184372700082843013831580323172612633869007695784876632256152164836711332641779096212544370800108209612080436311092861170182224301714609059652797056956127429353971891451690717185090466745525863305225782373138052788139355545951362093974951703180745347283008234091299336617048038617388365692075527800739420840980151029289857892187924713691899549237148111294056540147004822404296833697641549650996219915013627894381027059155688878303191334470679053026032109734793257108756894240553720135850173175782293839436008495228861813552649888024716079577020267632585599933725500788302272995804295870644056875871187413009457524634658764377523925278786934276506941565008590462356876868164636999014427774411041327437512946564380275436120950335905856117726977375191403208006985072503574169595827543393028834324763002485191435705198634351159664890476155353777671264487625394732961679423876774806072598983482883573972815150003456404556579284462661028706259620318166550625466156065757225964807892891459508492585604908398951364933555400155274313695337702637324036894687663740567367906188812360483874492655898580270104067444119663685302008960484447589861246090178043995110305006908860292420807517852214034578546543930367488621924230734367849341608137759722867813112833581783030071109842357599140906614882034904314627478745050916243436454162464514446371099372419928725293880202714497365349009497288742570611324990222951362764506487522110482644146778875097427249069365945813251817699705084441152688345490815076923205684480126147879865710392099381702449336908608670723331411639857706271408504509496829344539378476415030348345573060234075251134930344633067010915860774818238902915700204247404726860873564665710588311184680494151205918579782642643367239928099333273551607186804938204839427546243742161807102610658239442840158642907600851938539313671593726075322903568178505188329811531302258452605319959856691427627769556922823202557984592043864704493828680187257154600813644613883921412714282795113847237967808353442121069556027435632799425028237536864966317137782347903998291250722782770381314402587978429084243461720215482799543377629841665371278848081874880037494717813015341153191125912774534732504126739188547861995310539353372639736469472155133852058546584234838716282842323558576629324811926962553968278194341868281157089920212244506517452341152360839754021019305891623761714620182044187981950131647048130208246232814144516430652814962526644251172918826888585481746536933266038114267093975003892464868249584339549224132998555022723793688847949735413479545631473636629609480492977346527255575292173859763282572198828604470686114953923754483231926734483776915709548544645654406982376271830454179643544442485706438815983457142462706186787062212420412077055540855559870496555997453066972765732112079932763896760483473269136207983188923295852423367172948837050012445745590310774159121747106003986694465875927417222934913981250290827852860619479546943879295792991492494833427374459170688502518325284025206590557232432397286263490854082023650713837729404702636247837658841911448019003158543672725028538758314245274355291886595561483044936345035520278909256420623902647645961702643668334457182332523488535673810772914860664632896520665919682459996432889206599645847687151054560356686633639202262574424598259249795017369226894931924989205843804595559109511091862757504740677533570259699137515078735115808751918279006029773068958866804918301138080641348217327242692817866135206402493909996154129411727784426585794829315096005667199750267254565252609744738697318697695470706804313707119233322832360002812546327745316708488161132825441972792782473173369368095139436928368844717777280588544434261732948754211418689027666879853576424366270635151085915951149458068452745612909199982187453522846336752791668707219641970685143983067467517498693416938321860404880078330489690978723041156971327021946366136836172865902007687609363984778970733770762126681746018671446299200747344568059354205149382540078453063548796740979196012879414331816609244055470990101765247299724381523552547781748894904660119801109684022522631868671960736325942932264105397839464690975786933942524889582015649429732464787292033569514260551749267829866806436718878940603109152442793599598486911176961032071765207938089954623288396239515676244214514546981564911018333747105122538173860517656482566743198247452492745481064531038135005683338503526261099424747402756488861996348031850080966133550059597994255306989077212594520508523226466460825156626989670458811561839041373209591029794983899175430640334745609234852190032934193375424225930086205247478020398069749870526298605070855991194606091734697001498390716054025467715444859267869386782648624341357070871184572129777605576063729709313820461206014591790636042258857361853506631426947922077713636431531176506981586764665350874512442404275037132289968933177513374485756638512081476100645154909877906285943844230293007870326122901164369732757087332917457546001653210923680684270106280362721380064221336187317960269314516644177478558618214482462206199329974719652501374653938878021695754055232991505953432177064047880176595714394459289404675912407160705896535728076070471327497994980185516732097014005121688735302936372872302096381358479309427166689860177898594739689129588221924454863414738508851225338040356044165794843263880187023876504463042862217374957555318574904881402591659628054376571164110684240912299387335207151600918165781104676713584146253708624138342411712277768308447308532880320685919262195641106888739303964748105864620962383975646854557202868654737752704777730076241852276528573895452828926348443492160717997347348232572842256536866588813460954730929386365720366553926870247830199376402355239492289409299499951762653592494206662961601982269980444959245459336749544751016207230359882415570879028962553929864445853012212796204166577201931361793777919304462761239460661747654210853774479913010236969519499173971067475032989037611613653745262143542513898052880065272040435604417461809983808680059733447692225265268927209234769635379284812017932034683804916908964957077314120940518156407407272246160159390587498073257129472660777484203231169659719660883611628342362475127721984901928384119845548103868090847315260965621166763394714724151590926414489847389842197826502592310002238191179408647250841245323562514146260981146599079233225525013335214251649436424606792088731740833105366170687438544268257436130046780771890423345987318875904677416566493495165871368610455956314491042750907129942751803433004004703540330968944371077486903282392854544755085461791986049029265823773344182257937023318388186899777701935907152908340159566741635555329497968917676837062033644025696643995221199452586732671424366168995494351033467384129557717632314118444919700705949951224546135476369157800642878526683193547263497894073499344790234806217262108071135387622821236063588795300322724754361225703649543336182035510606445284255307938209453251196461352615540332605834435228776144906168787573701177070373478411551796025667771643193313380153447470085156790402949055999660526878656796284139841066295664191445013106799387806816483193815290091095234912143527429809521301340880333276685907203511387686857732650471329025993601522325559873718899982529021011436702931534097815498713807311037844835804925075067856247595578786024545191997685184856801869269422540584275270201184626524936745844324090699083800698535865530587174864905768527255763813157727399235322292340865538522206423497691279878773750880040787490669763778332901629128805145632374143286445466060823816719706465927351536278524240044388032033748132817103312014905550734246571434721697267225765684478372392871473163521547175653311060369376607629240095548798463036399988089967040272653604111230420772965647821824696159575046053439405419150582541521865376197885588222023051548304256336895665096805602604390592776076214499497658000593196740282624506638140716147720207470223632856503134541105198586531816565483985971782280022059989437259418035503406097518379274869330628540890588036282759172462087247444393457568494435384290511367054192682981872746991022142229076626826040775795057513362842713602821352937795010803893730322424012320794140991116108729126984694076408996523082550778506930995797344154303515934181367400678190737021489437580388473860506725436527366143903555410962397698891289702533449480783429844462906503391478463864104675785838057346540053820421404278482277151108863541745043982042548756843729480054460559391704665351615790564047014089706423641753236523339836930252930463225948362826869154225222572460267806589387222087657291624842520298554902775368574616450568791966186058939542227517475858661977361906963430606452483318827423507544229520501630105019110358787401797425186451375405550691477811441696382929416192464657720165645366874562756684244460306668815094484855612238652134864398016323426783692029590941926636189200899731092068106297070044978006666137005339110428025967717310786968522564168855951811845967687655965321061511639810913623750819077194439999304881737425799688615291946984807767227875562067182809862336090955702608244868484708909930597717621367981961408961771020081106481647891383477929848625802430481590472378188069607533744603621257965323595286256472658050531282599546754949655810009681951226060773898530869110450102953929470924955216838986512009998493372157641630106469953434911713957427115633218182449318606496779039709503076733587921722539403449747939668242836213414295254453529159708554237642158815105937665545005329564085791263017897735315874526997803918405211262268207535138075677120169429090051435502666737764301847013700418561599538168419349382981501082846076144687750453306047751416790518715021132060692134233972877684439454837510778806176463672478351005691215836002544554977394999638931714038393929165138928679978725890668633477225481902288402564558663524636533315157427078428072072619816053201709664554530388580990113555537490319731334579572521245512285029416667366996840645865666285519640343718302341995036180017836837339961688151278736725748140746345790585392242239506150014875067793977571045859595316971623814894323485123376556808436538534696739847619602300885221456757694223714010969917903854638662029914816044169816553503061267036706198317913058399047312451769991617167261981336210312654312803797273027012389321683581093776595433739120321660060370474947378667085043407452932616875864718603729853768469661549322741701453549876095614681505976837614252462461801987331189209884620241634540561685253716556946522153636661245955251719805330557613845614052806058081936918320474156225141295181501575730010697328537756091998014332429588402753966303305304836399783000090977984012167222356897870478512475568121090575361681089507619830553987404113926287372685137944644719319647727491485553721274681146765545503638885843210013581428704495517536356199335940876688343274766144279781727804405328506240663816514722052956021267062986926360431948159883716522422731168268634849882483080633994316476428559390766201499181942125788066807530741342706352193394848692367002083017289949515480345126300485010095811483816263637497731221928695616308758526923777538599598325496219710549381332636348878666993820336487296396129898122539094195134190735225445553332949991995358300391208849508767552341852138127270515241281568564973313584383527494324340413321128553865806726245877510311730470814658627833257837024211782839649805827758610952398290936011929995747119019399686659537670431841257253354695446282651920231556524926407007377980989850156655487347596012651472170993904218466367315611215254873332031579473516932681124630039350913345658543242333195516032782492818820906690373024665479728304050976976086298856318240537226302084141276193486928715691268824361692566609911481978923998129892270832055652697614405229754809230830571127381850670391216318558331798180744572413300043592328314692128771080799685847572695849671262499118321703622245343321424781601813168718994686233121842428287820693208272542837321344953003795364013768048637680916093259533471477277036692086618029261149370360717239621185937909278006173045130558841265903130483277190166370344142340953393773035715148098484298235511921633362908779812019364927834000460064277393712675000755034835274089681609502315146740471247417978755977209673737212594712851101361031524862686466206260284874913101322912733938910373523828666456709230834015169793011647511192531800085660813094465461830782452416980236579057744904879589965484360895545403317706388831432278503715340157466300137650664214599833906024109165367841514655563524427851433994771608107485718630880352939776467240386999043611472132226388550928734837647860898767784903059433896549456749627727024693190958175338918629107471253536305184325389213020892908838998656952394195320846228368982056786564902267067618752855701146790696924017942296509117857764388805912871131379663103320186233831246818728788368301183898393329538856058339097377651029442399499492044410285458608528978464918151598412807483291955552482314025808030579365741931187954961816439228895865629079969682588064967820449871409169414361012759859763305476768618072135962434170387376808290082863485102120738839820523705320466990717060167152696580455414030412191999114808330417328102429527155047652466152007129585108824354659180210549268664658450510204363698576055589954422515997840839853430998867681330730279230234832337185895002223941107394903947695345218563068250990456690301562891095147413679722087434294466603699679227504391523100114741572000093617185807076369646553597079204938848014876683474175881268474783152678659994592563291499460086018417410750396629283548936134344408952767224626692191051610214155202909561618078594235552625500616527595602707381821295176836209949329812330578658265467424279497268561922529141203146894537127925013602320052622671329142353878893914640734821180565227936426059853342144501895499781287169109072454835861470839512655435588603192345466273655620989562995974463481569242024221558752694366168698313829267287894040321716857845241420817980916213407068702353777714504903660723347429106230187110582882605694747354460087528871166887678832254855383823994105542865190222825417830163033080799472363748454954828399488739905805187498821238351950087354298522265429255609733141685787868543009027584795183170999752947310366521173723430974873154073538625408912210604787004986717217213547760184068507108936364376497792655738897068177026207079023929014254924405398235843820251739433818046266037783085736030577611571978842025601897910560303665712623108667849544042954143736796684843657070794643387105594453985459110185330237955906120786498266562741780174965152654163285343813609181486136336462563712345969862928552189779639528969433199328530509307379037548053212437156933989097318170587684211931348705179630600926237288664671009725613416523170580687801007350107839700460784098582086638805315664463174891236131581875928064237122698789989026430079716657868482915183861134520796901406862179886227319195899988802825005450165496105862861262976900354989515377871190547569644175166307170621146782185922668026991351838620009139712453681250484883269963824691724090709576488775097803540249173251465502636584769986256370368206549888328489235423041808621353005374792373682757766341028390222217069254585622636920871840991739337101731563233809385842892488541708187535150605602885965019274686760748432081459978375923092857651346617907237709646704833359217274762169284888640060051213674719276921098811621120458684874277707823322506769255949402129774589406873239893452790579864259585482744839349894951873212040520547436934783090429770311403768308422050805066773327545485980825489047844015775341190558456800382010446227659979111700585183904334144954235862606577518691377400227567156742140224018364792848283286314589664686816621072366586189974242378965072438499340393908001022934182409423477422827388194010921888830732101689904753397161341904227880604753484502708315318625896825718785601864087878609738401702153451515520903412830750143154906202383993597668438151363886681307872590355293799224726512743718401308399527731216537206147392647072176406774230229915193448609135674355352088408987575992246062149049320422697288167546640259063357308902871809469840907502916690811524315601235233661102868426917924220332034209240207267249064169677118109403420351153405165162360517404253766850241874677951325215725122980944399822987818601028266010904720185159253879611065173794598275493054873522811374116372260571906954889906387509219129380090933237318332231444579894657772818837914878467598502322411544734482925147457107595017439751341568745983853080231280708394374499843172128969517103579976329775272244688068388591126329842713054680793998048085918991975380164217939393136755844199133636365517690673212676686562046488900613203562940466426032351275595286956557477355237577234685803158595215031517432337469396290278842300076515720430503239787756815453780386093849866388544288934828594472308976539776373188004197036319147558508201745725575078590790512769701389325559257446096639770602253603373356844357903235347607294397152540519510852130670156361211406071754135664564121497939386557054305258523945872732779788493503178494141456253893140888917780547403406578328752649072032901934163900562572363875346386355423195340374306916540398081996743810536407604848183581551504424413521374600105360415337303588834824537985157693118723587148672132641994886354136915604037372117600060883875077743274264053403685882271586143190634098372465642547777239265275096705994761583161376333444566258715930147119690491676230555894563957321463278249109467232055716261122204352193428901260374022169151432746792029102930651382877338910146617874491065829591509935820495913355823244212405880527838029206584961507856236744051074113150835346319084783975258563484878389098981729657203518452024089166406155910163077123152922172476740723989370674624364428925757749916415832097787712315127536553279098180555962089737898098067700158889583096806646412733506019410341964466230012550789315735622231149808129532450245521492764349322417250803144737054689556365046556880325755896816864753316304128187428020192276591482145936930796968259319820132654004822554823229714133634090483383669259862903507436072402942763568823699213130595479364773985284274220200354943859887755435949363147856316332026790070479894443444946154004635984090629433970942926954449726050564728657810788726178428804127335619860561735126315689670776379071774485957748418102374720177586399896537132851990917403008975180182139324789327830469949028775090243700342886066290646217227543368935540759090527280991723023538568724916742534097165476621175767345731240534011074105204216699449584367833100069775665429591741745522300518645573297254711937107629184037211779660306762289988454126986531220015083065779750554872950998908066125061854143527748302414330737279072592876231061887430722570711830786837726262007814183963658854688206104560541103037596494808201849035611747658368885991520762942934005181334633622132743385874644302125197033336758199981812644892968471868648788654041764726930016041455361388339511549569900398310466173497123592459258334345539078606427853885449402000566919760419571744722543319093853552405646216183414218542579219918908118437800312183079213178100206154916635332844831104058401708876304198502176320206793732465535799242852131748372980877617098341337003692863016659867787985890735067404917283729360895173887698116109499055149497347534529801496721610644685389711447267518636602794531216729238345158004224892058619584909909454004609659002865971416220367950954909610672204292066546773152162795012182223408597031735148952391924171521546944362202697231319643163977934939185188410362185119010979899264715492948044786580571840379085791848883547243787177407760470766030769956746833086397105010835680810296775443453722147554396206667710984555753462093989816509077499401687650106450277261072441229148964377307184005679024211570344165322623419482526664346504482440883007638769795545931477683981046911644445758066603323347958658979791268878839291455148992771737602135782300479794662079093204056657426297401356009666165481671606207531144721329561245878197820352302004068529999935801905023789706549073743599748489965597491175582647247163912916710264774496634442897912203168835999341116044441878816460762172606591839289035203315338613961795594561917306783697455760826829074707786456463648149241465598547351111442151928500965921386740316676282978927550405670303676696075323310006654347873635379102093284839842938090171929899601592407243022506598435773014822951111622063833260894866168870140308922741510551964680670241623590035685531242595569686759963224924946953830780219191113523372113241148153788319933485385885932291097636357437307866034172721825680440361049178512319209654813212219384137852064593955091755624700393738729397214226044097430007264213571410352672697905892269638291500398747506815062804911169139232774308238861407762920615839732803398301735242652772599128689380242681568417049050073488940157682559169552034931334600912998267895746063883424845310368125087122171837525242209718599946771796094504677293026068028536402511762739086940265817127798731138736996557227869154217618110326760717168904585210452098608321126843306531530961909130207885330743745706554041607531179851521521037842762151905642350451171235418119145460842678344073579070424563122992092236829759238542943201995540900805829508284589954083803295286105958651153904795574887429655356551195850490957540406938200644370863298614280611150920318425983895961232762702039117446591231190557373716828264539249335187280376672729316486967231789301014300240901434616445841286781467740553047836283046305360508371938710752065099206805913596648214787237232737065044752771714084456636031752871064495156973363015707168897653782075995425089387392233518447473493279717095281229080088144368568883384371103450082487129880234813142699793732926748434983200919597946506949232097783517491928267948608133086659730262430604344024891693685120046304397366962469217039647192254895714831899902322430001607121376458628048436859596033186557383418429887409812931561986842588064346924435244692527634504180974165132501254956881453109712889591338215784609094504751855308373554805212011755158970925745974695277884062450099098985699557255997628876552731501409739538484928242588842858086455935835016155545630293934915079480393387001824660840544142437935095793706686436801759349907372242494023268293052970024884046260176829263746726050009236359649673116049873387008231022793280322377111605194913228075810901871629523919445448065255638938406106361672619256751545892931420792531064535109398146302466382358341316415547223377699176260414849992161876371329951366314561683423031336529612025203647491350843108602498760721344133007023774248484001126189766638961768349288321904914726742884838788700196494478793965806719027129654635599161726750501890399616028860980916740239415305230382781249711261197119126863045982265230552596149517045668078123114049432553579198453951202367999469511042367495374144336675540207393416757929483715716421206412220591308799467394802051829032599488752782765346057864699388666846961432175661671263106353092797567920398092196823164421688204846177758225342667480316812175414171034996872595734898570244853961915745979355717489867501896610028306461460940426172319087151240225948522028794982335549810261248344079773908162121604930201054040885535837242000198647466073985393967516960663938799444203237327363370128700247448852708156361966461596673959616878072762367589357041047768048554619708072319026661319378239884785602403884921243216270920852267229460558951125092967872671291073393478305259290399624331953766409753950544452987105481702181817441002186342758851803592841379621546583267045807583215323994594660121879515122039361946889315204900741818030432941156193520008851138342855434879895773978487137290754459037248573515057541480303866772015800558093876686206574919504147602946998718015004181638243590464310401486513959061305808858807612423201048993839616298785446861728551769957531943482671230570249399258340446371348450481787657808214966716151276207482767688048964687695050625909950200621803113746953844647869554678322097361386431096610653655478462081561674142015356699155315085768307534049925268768740030846588225805567933782810797628256212183329193461934496778813893514065415774452898443068539382479066926678049017727005037737126341681727996453419747623443581814638770197127232158085830377578204941912417675019840412205298491110493724039331584362450329180408626921314020710007510292874488965690221120675103880492760700995839489287034737251669419058239348657881420086345107474314284802136363617660208657145958888344264815468809442318973275465913715314218363841107376134648391504491513952292195679991647714420590146021882518830358777372958040316660960866535003037524052309615569989541864176799918817608928212383604429467355423160359997780101846719609115586545093192199130270429576570032054595099664853017025778123028112516570332453395678764713380323270716782329129245971645683532366613684656661387824998170449180059521463479083950186566451595409842872583357087251628499212924060014283035470004313687924131916115955214066497094163189814601624398603623931552164529022857063407182991574132284576062029358536810976956003029251997615679715603661418892658898171326717666351282583899553989177551590658719749009482522482125023519581872084361389997481617217224180059736458024936948500768551757582890690118777955363851488892742921003487800807001194453632491812081651463305569914023347183569865096324938295591482621410522452908158834846032469257408840791036142547766555310316115065602834164139021109332579649361672275918432288938498448332741203391716165162723827549885045597347608328318044294934844246836233354492974359022701036878778364464680596364155026370805621331958725286478103004309603451790443998567482147810428205143487674184563095045721812596527867427209354723665910262483024955835545585043166069621701850054863951262043166293954405223523437741272603173853346311868931158329874177752166190298643164133781089563791036781997069700567383181540145158504130456133243778405949061408005057543122369421835009222240945133004550044777125677971484385685859906434897100706919907966954282234162898143389342438145747390713697970983451448127292789230055313446612318806348044996418924937365027014467919915212149412542051150777604899262229862687536880427438548085700613923822424648890900312250051388789543300970454301523689846519066566303285541387024626885381049940138061426833840092404390236256305948243440226445609110010469533224825647012057633504208626956130336318408217676279518874215058866518056848530878395554622807247592995614241059441973361434910150918723270063722362043196758709985499102973272423455752722496379344780479020546919526865834693814926543672926495691232100428929656044419039513303269920920702751779302765575591330993508030895613121260015515843443585789535431023759162023316987442285382434584320325379074563464977787662850895017391727624625909251593896335256138880503723374037655343794254678196948891110380985273337030324002550705807716389750418003845213844789708011708079175574245374867327366101663537512252865298945271767279012035550337714136173541105228487677069498060379082084923481789225879732198154609576872733220776235507761131661919483600203825302033329768483091700073358152244563986489900208044047024725237105373782064701162458677345087900340791329026099695142181446477954434481224568917066874005680743731136124531041501056777842615317687268077517381491567648715597775045782535911552533098585483427257214354266635175986894379364833544539981896092782037279836395830093760525154010180264966381397979740792362011033766814607408510682211784094163297326906989276059698624859179897480502605877593742713558064535916483413687576638411591538793758246804029206386318853046363875489000339142044738644688728347313202256070108788440727682902184819160926037976393989933825778828679635166025003937698470357753099200693458529168233282144971051754830078621624722086405594697196973078423268222414545634162833374675705246218817837112820856781211691390556214331730606123613040438738815875197412042158958308443073856784499196364003808293208201375602685990260838542609048241289551199520908376616092043557172445329275707515143330656280063587655651450443064472586073078678528282105339392612984805508919152621915135348844436286261518161506866365211944520763208642962916596115031482725272137307573330209449755448857886709583575254537693534057388127921680587616011893406174114534778832471658316630471507749859959856347272575738792678083857008832027382997205021368438323394818634320527204466574264180820773742776331883198694704440757510825242791257538498565789179830430673942767737409122019365522160686350435754573657930342231582696354659717592056767090418359997147120398815503189645563602614274681772299875521511590780196677352584528696878992674214007599576778459304799753099473937771129658276611990575471696584981455976140505822869634642058485545992303244296954925683264258412290159538396144250742246072667876525238298381073053187069986371655460490017965964895260908694104875519326265982271109430225772289383072539055631340663647707084995006206872090603017405724376813095620392578450933188991059855443934401273340236544560936239390329472482727989433501079134631845245814896433359229778677569795228290050347430524539298237341985331781980295635719596652338193240119232571704832256257986433686726497129652302738742802629864659231922120294528362513184855681072439232312435949204100000958919784986910136311797929207452086507273708659368889658319256130549677608743464553941931796016734703025775030588068035923757524452310412253246616066724149908130270094845561069770848251257403197334675995724163818659488560974843982025341902041327786107420384443464308210667537220639876833868541051374794776872550670956808788862941659650551826825220594837247014764985678947005988078449880351521824674648741369494502666802433176393713113221762022930833211741328556765214812847510892898951444630322931106753174933594596461296356200710802466024995605961412649369017165034237822261837247018651357162168932226372011320152543505656942430379451393820745695039132771679029556793205352713741118194217371347439412593198948407669286365728669664372730368432493989014255868445175299799367939586120886641083865452497452542232191688895181894233709951662694871680142819793762049181403175150491446096392001984055790030952721964660862364104777214515356896575702756527294015931543785601778210512832488182086528618935712564211036541888466410724839441441647359060548377725137416058696543632480666778833714292289600520166034129318394019593402430578137402925831443086620283034848772308877097198496631231738724184075446958154271962943603376592308925300661980900393913882603719655674228346334261928744201580697318228763935180829201882978749110868094544212583156491784694335380754006031418342903849622681817172186178221566690266427919138326536315633890504078134879684877009107179166464138395326931485608989230380377872857285020258241109609648286457123188594529617280402264046927104852671893773179633210801098544476833332011365946419704234196406954842626012322130597202703912420802256907896550727246127146976910005103518431050317971366949172756102255692111256734571083787722416923683053812796662765401714401956186111549147647670021424871479790723774420016649958473333662989151921763387993306407278506771686801695593565996830321383536488106789096225811331528534807079467366685903812988105553978531024841540831796954252745564045679861926224091715958760051138704491173117293008236983641461027733120424171314774861424503446100997221999977440705875059659815777381609379636824877055929593283999164416879139058016182721528059900881641949799914439408546297312833968408501314639493960790130834795153652773448275991252322442045383757551478360479440882191350602443872726894109908607458367816621516624750884897775754236645540512512970704241570664197526804927467634211949997336546072936674292193114232154122923186118757143580077185328874886465288174298412371032082606292475377121442334439991667085495667354807519693735861945787162448597513460602689168485608904594899768255562574784408534266735507310867383339015646764656967347999716212018558021640880342433748087155164635457761036210952892226483125853135784705480702775780586955333310153651994002689362021349704544186748738265589762863700553788626908352652969004639668237407106791785761404125170115543912680195477470979562818548808454038554038753164264903709244238233271733947604568628798774264212579740885136471672292767931349598238458745590581247229466252464162424667839030965556216302463533794928300035462003701014924511480304957499584071398085718045306147662385300672254142596496263813538160611504960035581535087630557166696748324499026708074777452481138325579585409197724093483951102832145730638563770438569440492215309303182145223163714704578801870905289899781484462898277310985842966460739032928351222243203617656173848026354829441807138040814565235085545738651261132850736125783100130133790655561615122160295327819891498753712743519541106432603961365875668166561666521168680396318343806433943319207821817829160757268021139190832121178631720103372552216054484851204379546901420623372352432522605778565081846717730735793288795768243718026457458180224312760704364607192234159977780631515258881755415972498594180929209362692149649810282309149139354110339156266273491950072500418683458447167147604827081651481844504296407325868604490906323746855460301609594044262689999716283764979303010459334531434429713336088137957688753175850923946385083965442217964458681391853553734234830173129243037567308895714188830000391636964050927307195352199092555515421544459695244721824070046759196108692073150646463305576220066222438464839131625637885132454891860809189279497179953832105570427736427753179672440280173337311695305592468837298628976287879069940166892528589283914876452699521102244166934165044674406391426650907728737098522609344736686282132436009009864563279870333192585083805666362166297300491472130961979207081628966362285185526627101846963428688753373386319177546772439674871885191118813197572129378272683440178128015639048459459656958702830027582197497534837041906127759610759554187434464486439392674338370826633998962057061382950769234260854085161028153805643529227972063304153758359081253520247895800751228296686889838346396088996087291633913597206255858376712177545021727645167169330341168606747605259841261053237216520538086301280866509438215473529062324744454958261728147826720149581848668161990441539029192276836595335491632255246840567993035411169271440713833674155206659939463872063216036307028749959286568857986039248184415656059375205317194273782291438895026129184493709318014796020016774964898140470744574750556279414930929699596398190633367479207449225108818063763085405350457172854153203692120728115600659737852126521976361673596835573900108085097442745996089553681581279528322016331989721957364522363439025234510972485423143984170227754625813289885517696996072528031484567894111083906097296587051533226410167887412552815100831431361973855479922773707157697847168741042425167422112470704901168656839715207957108061168404510168401534654871953234851894362528518303587983250647345673419828331007393386286753624766766461622906095587222821269520778620311943660065662804010861122167605476745929144139589839417208346480420207864559294508868708700117811336332853187415345773913485670853110748256828531562775214038791298466588896435773062685513025451740010106004531569346669249985395036488308390920312637610344932434248713188584939659213346523756721824720463127822019327083230632207545320089408518494917899745368035338395966731733409324652291004353295441464326548149174632006369230460898368399419624204259434100668704930441342501367699792790274206393352329691217257069831262382944311805804433368010695286181764581915072038989174458798787515539922149854578854348826155649165060576490897795835979716946446148945345697403418461348597608193473848436643784925022799435970878394025287910521291142274955334989364754821391215262706214766856906434091659081174670982648344117120017481327947211547726108446064539555463401845115165212243894545384391240470900030329358224764586407154722583872289397852073575142637902645346161613404366768073423997193974272929898457194964479538796054346966872044079776869437559052701839893641959586268340378445730304172985817773724685513745943569571742679414623675869889062689976732105460398304943177262827558044135026479445881338427527067093313694207698959039899520545790608052737014910958003030624321652509611898729729743369654245846642076303825047820519777266726374035158237365066018253920290263419092820047496822969746981529804278186001940313867407934734450350868401946091151254703620473043169514439793131250753833626643324243483119247174678916453860257847026686466108864903698748100917851435140234366173637720387936285099326431284626321484169237484863618101793437820862268212770567486134511397167867794461348239249024483628716646757985905125314770530571478757637032295617113349360926428857298943801925134932515140878923839993419891187379350309020574071927297634723111818129354572062854784553489074966857562745262263470035396235627928823400336626047997853248731057229704215517079986184862417611521575659954778780978507194226667332719210317750059511149093043271829830308969164023100831501757414334995465207498633868235809943375607138722959987520120907722447274382456095414770653323739570685657628497409105928668846024202393318436616265521077274513645766775301940252802838819862818382036645144870072218963583892603094468572937734585994750081271512175264593657706185951910536055385880829559132912376741687950613148183432447965735781836715622915408716899160627661075448830729733649288125555253928754969827552413400616534905775188536840955847596365294712342952156956785195059749664201814339650416754431860933813236832208945534825705747348270357595126752431014003782892025890055664658581638850929623964042865143617917506259332254117843209419573751120071176974575226578318637563090331477311851295697585753160543018497764245194821270017971097808954636124022693679651761649365978500682785337427465852706641420689272541604652118415370075426929149130261778726278310985038540026785925506895191843671605943617512801502868854642925890220158770101778531703354401940475636672416955647101181112516366918868777709654758296814846210825105341185082340079110373749688620122077198317739018826212770749695700634939530708824668099427168538618772180006935561015315310208623426002378781390016236485028388972492553091476993813407093057738210102334607360234168431681052581924492682388214992232788393512432876827912601805941540937152268860434234169535000414462493338010814233977186714891205478206218167659689581965028502779828575666586121742947973027426388711473460653069379324039762380071773256847864790940912676672101349318809828799436221391537589763008958418118163535654821875012811879868067139254409941442663809188010480878746518969425842415053737776006868263204441661283392677294197464321099824439341330859710232986349149910316793942413240855650210193312987451040795275325443679398522161313754847104173667220951901179369149037136206508093423550096778375096028755855306045867230563867063555287286336267713297234471261836981095088292018764278773557059562039810019810424965110980518821619688500758708463329470563684587045347881113614293920566583001804942812243265207610555229388532772968270737981029909715017538391431060089140341680813870809055853974091637212016600469469919268743899889369436951620259311298959830701527915487883640090608197971425702712462623478231636071837533173248261873383147908491523953058337658544221541781942235128219695504283704169127394222930170595961076646691055489802691709769660636075096031579876227322914597104789444708836295671249409760994031550224090987960891397250703531445038388997475871480641586514532492359898831037512451943431000836829682233893564013812550246137766938331995165967375141031671679733076995517380245374488909639248454565116908976911143566320324562602133243795910389791580955170835074470972713348121056791607930500075127349902585270904458265696789724267065327286570039576813187998064133180882486218405753529320808510654244384219697007246939199093632031787899778160694169021449165215638505729773302373732558051593791527827824835703220921240788966354175764569450911261055980626104001156431269475642909471120751487077312616727509484262875492567674767182765634858539413161130818575360017512298985574942466438914272397997510964302752561529010289268856729321492525884479811130553306579479669521808312659462962535591145354831433223964906250629212723625385665823643219569784506565134609342787028928118564980976327499511533899910099245087278051664194229984489308371293027378842538919147930909054087838170796565752244165033438263692437519139932178342188383978369323094402128609672949979121977215473385198162619784492840078645124664388366588920332770944255281538338185997129478469834956962940350163618947798139175749847284905020917140242973539062252331471729200661162271164952946572216306424642128733289779247656275421055426282672610977176562850402596091173958103272062019931602725367502670244679411490055097620059686539320623325579020810136413636354150585715429908816614848891519704276900261585606413359765747470129287620255100360258426500235319523016144605391206944324109094011609435875798031636255542579673623858782820244048095352592123921654545228400307887742887070327297549591566116580855739705108253193824597338255059953419673669518515474837950261208589268635730008412511178851095401144247674168965419390262831394305334484321553196745203251084184245452919509611825897922148327653630812093961917295808101507662425869184543859726177397629774753566649358200657975524508363335307260977827694618096967678818996465725238081031115013641028360803756929833192353532976009380336697635008895499844464079364194592170213672960029936527064951096826780015843875336701026810026086810917176360672652037637855620673778377145512115929448348323112006435917086456525921439305684797608053645708655192699397948039629223339725540680947269054436176443251769000804207365336697038083902700832411710261790910718563719857567974797380018237860808668186915509241270748476855977146635482620831364878093114893427741617912321545931673578850966784939790479178745655167016508299351017324314591709632566215843932910675983199318574411206747691881497537953124957900177822061079709466745343976248221328063087829227181147211128600493032360159864622031150408686004191360228444337835854822974177183902953863635404019759015990756100367626618921427313722812091697184304164457524802662284536376392599305187346557079919563233079692792228169058438741231459770684504014100002467492564871419907148793521602982797166597295882417933516717039459527152429781027798710187370955491992589404467928421173903409564938766968740348739843249864739388371524606314356042851987944568437387729357437954351746020074658023062249608315171688525527539827922235452321944574564359599547912917372348172594778062104293082749340728504669049350115051400040213114274647907444058176392278320621454960434883455849405962762167487134734564793321139893109045577960139027270649636238832609905311911367794091242380724497200183405463441570998217291479613152076308880352661892718186027210127666448789994941988801267220295537503239762309560408228721390108179025059196696407954114341044273921687394716960695322346189933105161960847401270117517070710245535889779221345001015953575642246420837920375814867511578940937537328553844232336223175588235204543096429503312619665498487873415483325896596617541668365712829355231448715283713892397647858262329558999470182300472590760830953409911461293619870253751213006356344478827600141668794483497634985315816837242450670735621867910349979846677704285614015743359667881020233957689187365428555762134132961633144461123584917656091759131993388598376748952792590028254130970024722449771343773767103237367321318860791296909378207238845209771542928082767074441279105021387782897677319613924571560565839755164944655371105682021622389178239899125810904842631907932096657485222085046396885402339264955729878935473031879492460214079318298783852067305644412771653052090060608048073913366942257536064426248351176307761277152776272523087221778681480031866485754945750865879658569761800323057094407318269083291803729900630824955466936880634067540167679312536583217286247016071252694032721774576173283653586806674792307395715418442464554093007145253314792271352290206460824215275167182064941261458638507933213767900275604699276353185551948752115275800206525471906407117240843131148756868362475542074073000242233840243646006199570360028870413888192627794474979835357547964273603488658896216634779615148422746629198536909972448127554776519934060648330011127252830647528795271079859234907750772827973902448350438523099661470022518351332845965025104794965304791857107654668474761323680115290754212644249529205080047367176838009149093291167753622126011594011709785897265045311304864667732708100961575992400136767066544292480409751067620178936611997225453731581378481731702535473585764055090667127887228898961155987958964105427519706833445875213578458055988811226376008959805335702816131542728967461426044709157513224371498175320295131831238856218457669467965513988517875036128028303900741836433514628635259456275023179961450732895623853907580022949158545183856480139895250147371163389581340577224542898853248704536478754121706801299786446559860680143446344319941055813615640552435463420269739249101071473342611030589722911556041563562110387161626471630268618796863763769755218526511141015252386554461990762560518905249273248267950387700419573308967291910503379909615705423312450215791706958401771734112732278171334255794088203373881629187120716100834416226317987647112058645680386929414590441231252038570696385887568909904295072595767306103818264180171024067280859362470903354767579749447480778400318927809283719269373093641700633383943192182959914274596660280361219869966824045190022005606962080454526332875446816818972170086250287357927564685361038314385546219891796235804246166014256229808439308273900096388203155996933369320617165811560318737647737324920584796545231687151516680005389678275699665546569554974202204458141692524092754258666006026767003160471514389036615390716549381449718532261496723974652738767952467547012989886625681527471819829977229985561371595277594079531007844689558075712908596288277678224274167379947800959488712529487424758744371101472654306880009389849883315325889856379671739728030700611246862689706043483821314263933650521504172989844998844823028524840984781315625917627060752338890302445411186471480910061273316491195750254730866134836210839381809678997700932753056676092096152759533769915901160805482186935981157503098737809049247952351476896038329579206570575131752264883016702828818308184273841883487894709444540994894209641656442590784006440785556346036869568516454272393436116923496062874672621204415448305707743806445513857949522432096284396895418051421128040823385911055699061457858561792378892036796482342572374162712982996128715250303525620691562665603849816045049017707700730615319332424851939119533744716420687033533987982482177571412685338904730053458151237044421844679204849062043863139150952053003467058589400797648640970676048753069093104558229682950735091764915931945430223834818796668483378036804775229254345151569638418336381853888493122760666545258853959090421310889801113046332650376008957666876012763437324806236325015167009005211932357873574042496786290844327543846896495183049717916905447687658782777394123233188640470052794520640279627520208396229247052724840635767915008094679851531346782683184208903374209055350730102126079606368564946217080976367014123184920427667151365763117238021082826018423965369312996130118536089950735227720104320311395789451944097166896307759885527931754621618387509948473610923011751144025141798576573549630024490334476908582274986019581504202428316731965296805763853191144581398311264474991477712589559994686321328304783483174695304678023984198649850434898889144912147063934719207201031214291758448039935021795672890779115027386405578498396401029301605437371725757801627960990023696256905317124771388304096917054515628372840193640599611788508482846327430282130989387754170094901384023286179123018499870506971352550976904699436319560896530328661049956972492894885414741007918584704562555743518323817796114046961386360381307439447554666769976936942275971138831947196598463804735161689679436510859306259296587061260679280336955071827629991738354098595716540182915194658958237122862013709254070497930573909500126303113462310826130869325728560053934224401097933267795506170310505967590274458790691863833506086308817995191557540818685338247823732726399919473945231278559817955866569837896010483277109216307360310345246909135642749990355789869534608769810470849613794293249300418756343473087967147459225024148088916038805248879178447102600461338243609962141482874652424405719921884053643510300893444432931193048292612802804245226454935921470940612188194521039833823387636910594681686957025133152690752726802926137426492961025355687620157800272897058085048982433831686177950295452289492095986565332300046799028044743862102202365774086723013467399092591973274769906571435764167024868789766370165306488064245992151983089906903917567372866222580757046546908488347482747344056220045701527776745549471098850329986331198050444655302487591106358150079880325035125190821886552609770362786783922316161672348802748504286605162595465258391354549307725240451331613135381469884580358503602361120539769199770084880289187818885142711590771934865743908108900677866358764286286818638133163359115756773460672178716504724354808982967728386220659500879996606725975712510025054450007922508686347123787629977786946184828174006590192162647600083344742040481078513429086551598876932749418320754256513074980522569855217648057711990734946706122401826076460188224394663458023209390586863146274449090798069129859754445778899352798484711671961999578451702395330472127871890846058644846840605518869586487264754582081963859344713953492455928555058286309331173833682028485252007455768023999980555386452784352414276320200003046211447922975327237520490083515017962695330829225413029422620528340717597806444871783936605991777053311278035561074696311750131935509127620197915253702170428431998453802456944216962752000178999675756668956249342232911717098203678941183197675169880297830515204184149023560349323697197424914294860557010803896375114717327602894767379016266220015689006386585691837906618603243932917903772803914312413391736844628395584440166640112848768937984468288106662621447542059141007279308660385746204725294011522627884496574280079871262347984468681457379738974308120905590773861330927519184500319503074187042731330298874040198876517375718834152084724203648380464662185038749460946179226172835427290295166220673688846256216514753495291244072904738026410831427789942980787179843486653328767049222792792342373655953002136250488112922826423861140867449273428049644035559340017284276739350186173066804183709614432983490478320202325871186226711896138098271585962684640820790582766921867932940885292956490342398764611317362717363144791381612636260885731431190437072647437990539913704489735495414867958113405090485784859345850152150455103701317559003469989875763081465687604053135230881784042952130674295793000103902763897069218581708609584750869226155155076174079559590828537927595465236623897078056233790818943360744845239307978451071391744032097005471613029364453274570499262760268904721749557101940362725826186544279822460333475690288487375282999952266438793540722880357602231239969064700010934425143439300319659863257338251386343602277739705790940966283445695994839893852089495456640740053197818114390926491442791909394933891050709752796397859104477583737308721449356510850392528270254848115663329658152791521059073678634615307541885940013384303065075111571768783571987181733548250645940744014498265344930848638508236170996039370844813624371441936827522490154902242394294689925834578887870351437139998713892439913043011311462898779478419829343043182409192695902940833687896842824057256295129653183825590926033988816336052085272546821787322347796933106022684913958486852067790098587133118197609267147239753721892668109748088765631070005297120855563051124809201661036962948610144284758853543355535143471261278018757667837078072902519083630982157253243455146418949206540543060502038725449381075656506845453044226426759517493195598363897998650624214168183523008117262213982693080811353755240748334153802569728455989809670547169353555904796937377711132801086945226681804531730772941353133722401584880625451708243480974115204994634313676192511032899757107011066927187168319101252095745339716047218449207841231278303448555269790260244936620465585543855069492941047470354616207606088609253386375288052731215237408804839639274872094397367835758697990991260639606225091494831947242073400301296402834854021475995083399731168045836249901420937935586494459195927219560068444861751221088519126654645769165216311559455927592703133369182885136576332538430797936325622290143390082851280575014798723423117049938505305425911153338720528237158797178490101302877824242723539346972037839554125182145499945251523723774260120506874350034232826306612172651129209516916585759526542692852411372280393918674533767089371042530787266475372907737883113300153547891719095954269176174017151765769290039072381942374791893329497294196074726842617327794013278243389731393855217716183316681855053282537416590520707857481156203411868961029173468549176452087235842672561397812933272688100341294974194743382066956730618980629303636208232841418057367455216685382918398910222457706286850758774211341858964968902452523157322652525383111440900850551832846577496459037168643661030368960017113377903085144909634543232282580602240251326877967742279954073830869057089058039011958199272353771189185808512264713596607991098626946639647990046008921349563979149372313863497472328029607380757704794191359594453176684095868678043943945559788438513746845783599879737043961873425797633123959399281228365109051504149491595217771713010852274839355536240626201460021852881781842670930608388562823545002852297547848955241997022583764261801171932510584470105734817921551205012875064886562198040335041446360725677007578254780298635844572018837017865169469971899915456750155419306968311607150575014952580722493276015576449818308918059585489928961566350396882685123714736902697639795801454683482781035695056645974195356282678356762785025001868254274850165926198199524814660485715665717399811036260178207130097338443586496308619005940211730548794431713095238596018553125047800158550571876183933191482158802618610461739184301658546780000369552013481062004249861900672279068596635232828232022756967258876551688253420658313513227007588813752609279117252375525920552504912456960070877288592530517896113137437151954067698868956309944196211167301751332127957533569099953337991161134099460853117895220198048759229431098354962273623684494341488765533534953968484565394980021114183280731376401604517148268757444133340395521952063042193691977871959264281036246704981328701692563253584860839347334117585880460629741674613152885520092953028273305641788378872111743655229479689774301414685733224691313679935936008455449935088586329872050251761380661182375519104284656628469135518419999319186829215279494565862144691469492150706395077408927990739942669249615482081123661748300845649349235866762605351370225604416169103094005969899687966799390200078295923307147284184407329979593987244270235407614248690827711217437158531035126745324574989358538043220991486988322407564985098459336367034750987489339654055167930767073976166653772504426320638358681328634953205610177366245145436902752373712016196007073549836593835343594414135126279360829496754668166500809163440383379689533615012872150570983867166916988563686939356787956660035255512919560778951464010872853625396207414042192623795487147999697496969603874013488968823586303512472970929655199223769413443355814730681316491157432763396168160541808218054742395145319362872280205647518295775502240133353805651114143245437589143765613595574387897320467313293184026802078551691772283623542059784617805343025092922546160573933516911653595682821935940388301404968403772991389966457606361396319572850661704825161165426369821736443700677658566579926664998525678744395938327084137116898017686146113059392083801673347354304506972907021799030125542043022169920193411672994888540368560688649392869593020461633057430136431247171361571896597270473358316575966779998642108932407877240861523831654120381970662193010854799340355471747225772720694289617179189367327246654695883229359982477681641070277237944022483500970108473876224307137477020142400786045188735474455375245287944091666237408283872209038257517145954195727505770855489572822127725274800837420884067164781991676830500290467877205585654568308151402854751543054177657293059948143486267536017054619429703483155572066696635173048926730902928193464040947468271445414802925333987642241168873688641860793727060687769440182354597612869250854941277215493640519223250911343799336862377520387084734385323498663629845557101831430207773507308405091274349537543641785406169318415883044375891355860749712029931515756171579131654447223338337784722847050706967598560813990252460835139114931931494460697808057824635611409676486105504497729892125583656936299115430009495632975560554153813334488675868258107992276380178265596232546961500145126390271472396218805685233453044159277912926439918159441583760117307126036968997805091501782284408208610645432691905491580902615265379303629600565363904897915713538542421004774661362795086816329223362347917393062699295897322562153173140818745211955916849420380117296980925244354977981757315779041777905713939673952821002434852082584386804457217030688785047789425458086832549903238844045381888735704637627214536477557407366349785964404020886562277982937248244771039023218833973166520864120947115569490465208631393664314396149540626654360212933596312587352502362014157173699703352926116006935469438077127705998314876116220196065974508272132359949843188582110139031534866832599170263106752056723185063460782967286980853628248945646204704737211450888954155414200724449420600791081851982620057123576915179244660433211854905312556462504828773661914907562522179137536603588606771707046662829186093312066894090893552191643563416912677714626299183989386914307092654272979701019512690533844416983567191330319951077914000096729233605551130010012959091829965674525810005640198535222517125321921755818151083965873203250121449203754426705472391845558719064372113887296717817529348651193217438626723396582311850927054369926262719766503001291262054859363715213815579286337815024640954371783068389148396656098481764711114542218159342050944262512548723491809054339641894119874105494865104686676215788770760451707486256570203021646650023649598278064151678442771093998363136083708783051978155973172106893945346338141597207624615353804331761012948621632822174817455595269396041779590674436686042977366440244595222653939864297867246038210489314982868179498915744174875448056919758989333399492456661502957917216164769360889945171162183853862825991995004817542667042645949908968649169866144519315265289281597743422537091231301595312008629508795719570759422347798826095400297074649528393762748340732075708999225032413847680914606079544187819412810566495444265660289194120381842167852741830275136857959954854936883233188244034142162419897719783502754914229243787613564721335417543941254256924587466343783985497296968771177224900188233193028675809326617713521345664790352387953448756795653301667797653624255534617460795361475797910137963728375136927039581275103818106880641321984422951249482872929143049613079784237086818045469961205151243439847758098891175123632353276623002640192828860774680429938477456183166427815444257601718852204545420069910073569686650824280020142294902401204359641719945543553265474387273334896700057412008535593799466101140647553814899579253835861863090777953606017930761451304200466321841462153527355493737034320484952093238218705530984896460418171595704017893924763698384241152697025832027417612863631875770475773134421195577596475253984993021912848891054118629267674970303197659418228437818904703931962908650034462636067866345629015031329545727417894283270236268615316243466781844289755164604153844489454439700815579006336368794752236737284642543233775074942409022790799991959180479656208077498573389659445029334480466639269832681068280538959630597798580707672414686204354393268381739561772494079590138636834774053465190690512618170400549298428315941856946616137434134445100548326724991348226916537832142738248548861410795921831543888012981993875271728412876450393914099311500829928337248506088536001141883955736584047692446667976711948760167671846991302437582416428482003958157802467392820364701113277362165259233773414193634627802513614023603942749088480735457060585995231536216422318621158505521456641575347193650992624539142014881110953317023768576110157123041102459915437804389660007135625853479374319486321499618627731331476256640046616900308803247827620040839716343650221368090423628080806877689478210361937768389472957996304908901973443568266857990947528716859861374764586308688444580002584154702115686812984448503091475583159370000266780447199271364689183134538661896882698437978860218099007014465456429400724496240190750384332108598974097739778562167121568090245257497905889706490917100719610672891124932159709819598028231173797503919124215859991935329457466332592325158477047754143839324157991897646960480850054474028596579440686376049842325622377036996860606346945288540103431532433587505713738223346499157298832883121937379510133897766841484502363495485395280208523852479147043691172879694814256701114489392969101010883571279096674998244205694555684291184667418024888368684474556096117287083860230321415255504593828387080216306910165360837198895866611152492812077228997656473578941918259439118689246934139585815231706556739209153330090793988269761495935539107540448507626262111447302465506520787197617201445935627791215389603580689071187069153321686956854180097261272163834789202896642877595155225040762332313319754257301887478001022745021265506807895676980215206156007177138386924456822761787260182128302735189836167827079988125928706567146989190991863416987292864537684632088411082541660760677763340698777793298422353773350122544728933233115396753779947514065361736520047205740485722184123060026777982512565396950006272231332593164770673684279060588249735563613857878993537444829129385141584734475724894475697701342185446824942829662000162391398147758107341256136487893674929656766796120282430722046179157497741557353708210574316969651093518913298812701731250345534136577780481070752432035421557665967335734536803069990179846871501109117551113743003534748902588487675765920557236309839983011905926078731124207555833311929295241296837642219500932482017428781058134480320237590680658354290589321666873733960367677205467035531345584159854882452460793931504408640595758593205232411864945614109921751031446595640316836854583586974926399878871295856887227791960620303573425376787414897865351006648654920883700086187732155329922382136405433500392590018682024556800713281041671448737848968209957876188443148685744220855786138181848773805743865050232574604257545433369284884986749467913673965984804571336404603202611090096624824680135619183653377204577850710552845135580826402555440348025733172229567326118856434004820732271395713263041756073657455787367714376508415414789359394963704512505090558037238476082194059031123984609890611833097311953560096957574087086781193166355608414785514950848443198416237396591527824478970508305526771068032861859698654838072978093445691952356772868120343633043841820206140818148690946047358067237552001569099430482096609724094671879521914430205152413862865069981938070721936110106519004693041756843352448286222430643627481132250414008859223101583537106572349383386934669006125116936795215909810854601062610732264009630891509325696938575434802596973278518533312648373009703082389595410115720802694390324897272101492676078656600219838542859014212586711487842727571943559925773005166472702211721369176797890162279323074754205492314144407533973545713085894465725330245654043833526355378646028151933007962912805345123076806217506554819118138135298599259076459933812790982359973122667762602897528961471430653070063407248991754564803479425469068802061287651029660489172378178110239183826876782067668449157761928911641285348379009730352309003354540934590664179584580261880703499539935331448653467079184065421337937596103560023203273856853814832312341975349746251194727222366924121458131723666947621677735365973700370230546385711991016129756252341099928009713350870585085595113988961802882748658876391388869762460780685797070733741670801735171732323604378559296427768836735634284981544711443981672541097471297720413074331187194866194075753168098577675669575715453575367967381264820407801212145182836271509803517498994952022127603511632413052156577479681526483007393930010003278480369172232688886070607550919007927317442809446178817593955506980767575811565320753083006175101654208499233256719042970145367811606840939078495693925339342854451277582791636462228167442906638904049308591328338565378382596582147511026413142589863860573697566817688258813256690076471821239801136580726956918582507340176723514120004699095592219511320453913604098979276067917422939980943022379971381445223455841688615097168622273276680309395019989151907495764145279043951834407476609631518454377638574089349282843532281400461811379845746729249364937111002114481620366285967897977030217104422007432915787671713436224893997881046586444125428726166070661077891426779255167490194221583468646373138238274441564704221732044890132665843496096106323256573117151451226165925938874612222185033873914836844631608245776928120823357040396207129981804703540671491208454820797537932015879610157090950224876173687771399104205404169622289245173758106473760942294122896147336976981846103968350210310744385984207840441119125523525683797612103728971003953046732264705157850813916072311510837121522254150133902347544828158058712278454899428967006285445033151694737807452801668086537617224790256670240808998264437412714159040448035638861932698627515266100505485874347772298655578539833144031923955126231069415028914036278379090188044929451449496984213115150456700120085345023502706954955209918584704451653847815188956140872090804381045949821964103825522537520075449124968152407392829905259920302261786672889607200878108705955510353077559085522194165242881339933329323451301854873490534017801657870730884065443593321430399936613494573596050408375198411628321850857118168609171031394567154201375742291666079411621883356102635506578042455789145156889606839184133992823660825037046980969376928004324596905845956599131123741669573897195585735267344730067803696963751810186462596652819208345436594655479968933729023132408389373126691708446651681944884823468740188030949800978721155882827608041589954244090476297391973158749733592347385523011446052546408369359393415227947772957064663634625327786945460695213377987881608233825170138005033174776309388906543714582213258897969564701880895726272674962060719691261984122960707901395148056258854946445829059204193841148469282323071287163536903388558809377246561327269037831141501742156968898859398048910427878488083741145349708173979589293407926070034692507092084048694010592451887424088056346940687246304716631229095567873492001117186278901989822230133525868188110154779962199596397042920193081223944916545201371986637989062019523198404320807260373464087778180547429799845352915132176538021667578272222721787676400465988576276367734946245694921904135697489467419081255758523864183850254302733977542473354696083789092898958733231970852168373180867844039532562273635174430862340534335057783760695784906921962527276337132874567714916000850690153393881267190339556709278726770678459946290220273312471665032321766670387545893655064021917676898064154246280248490753089527274504455460227773222072530634733184958285944395710342463017080351738489933228464842244702370648763051834073513880787043711600457165124611537380635803943000976982524481127783096088134180867286262303465604373186062599845299405301655793406587927558409508944998226108570826123522005033974631279279456491317321063402790555972216711292017333162546936164692441817388603619630145771830304311591827801085625957432749194180551406508524467294796808257132040393899584296230816971440030535489858592366372779953277924396962246076068673942672023080951105371771103281163642513633271144833790182973063013176611003140906305523911029872895287752142657481351970703660979916692648215236749821452441633021170519951287410053366052158095339575683315730441644424234487773977818483200238508363315185015220115326538902828066144677132015588287567280457367286117348259575839611544458359348848362573317467354579174955587986156883903294987178542252590134174048900248037738119799324198537247983950636966448860153729273110377970581382218305364119410910488843359454483126341629707519488903378738504836760385706425185539496185622384104834896645435670045109909638215312876451972140964173130178257664116757860134931429131193147413196957203296076137606932290040988473643301087757120637484995702120404298311136508142261674407144275590306785703781406459730114930795985933384182954457866689482548820564525405548861670411251641002999143197410811917181332937677019621174018212600208092703397312439506516331151455987837330220330745117466988764669404029960345169874260892356173982198783101262576914997929664360014262326094377170346080780340552263416252794927438101011089945019730542488091840381183111678008326609074576656899759808795951464615191808223908042604755150315501614775969823558980912698600404851812320503473905785471270306559218852080563929685328198350567513368584999421603517633853735004263023701135441625896265222787690010401674379804520417275268007624963093165952039275709440604323974189211500077466004757136713320189317594860556764189751558579739233453602108930844999511031512253540866428676114495064006241606836132215696270022593042956046438538153314500346380154755892059857308789867290561276084485456536699874613546414436517149585680648954369950966131576766971649882021686858991739032137028560984667459546759036964132626115517981035117427372878958244735926817503462486898007717701435919497250375878067093480143206296386728864585533551526891082448109844286655021362029527952681843060491907154770550837300998444286272563338194049365648339129584552267494536007197022240241619031220239616819399850328060343514456903115762263196802156079891806006118626500502507772698163190693649377371783747047865428319649323081706636361968502019264504937975450191871811795057490960296345636399799014239611601145040393934913847399249219853225149379208493117231451447994737850484012130545695191292753461546295694535245351729541904602568716610644950078146867437455730355005905268629510217078296701764522354458096331999696407481034581924353387414344473228428978742818242215227874235100832782672308578016074817025081866334855247724681950686195295528910048774356623866657698418205965646393468987474387766210965176221505682106377937034386729251438850637449204783402992368365734292356373658308225304456306755812939114841202371580921284648464226104665955660476562488723278161234160448218604971632555734374017621581468483007952341711318011896814490893513936597206819044133490787967726456065354530051167093147645080876923563458842582996794786384953289982734619505846773630600663459488807056118248339300857664288998457028811081507849304096975479290714563446928477271689628011829437957841278113077779411977046729386913365639831864185548724746921613646632738618762942030511485428707880445067978918748254055349093258225298105465565515203769159988250571155791139505730450242553935148272649174223794491029592794036240321220349110465033368180228572102299550678145942830059272757011374243585429753010318336731716044079114243752983647978656527604574402389959430638650459435939419655895241128259474262133283867232455142690286597925584787968880841578295933682154334273462090860415891467653259884193924722769937442681227423249545609479302849008791851358738029098184767102267015497751692202603635116427213255608272352821064335360881974413345705159799937704589395466751329552816114976108922056470220410840461923779754610758432559302715519426260898747786647065474814626743878488356120076535750336336210557991619144593316107549122019277646998783319142884998158138040974464472161422984267223730749017357727336239979716679122444244666881411891901354299321207437710998255398211667337889113233437622031849273774765359388022752758956766015507051351012334211088349611267462026093370726330358631898451236376386619210891939705641618916049330794133292413174237813294134645166959215924833896219884307828756403514381748677634276624728279524840781600966828269691991959379096524084169763769963396570712445397997762372639506171618989986354235150189318376807951762344938473055076269554627990999258746400306283420411353954688590843767131371808457306831926378884937042885996759171012856661615367902448511763462041848487695578780173905611192057004982108717210163056186677088905340643620244353978276958011789334357164925781643015652407135879111671411090945621454182799378293164294272267283745348826878869032511077182488930691203219275677489713667168216548659352065033391811689961768579091288474354281373692500547824475160875886266013269200960846610170698453982767946049276829249190513304994593183878857094728419029496997639915473372312581163311427161633855404968721941442413867412477120979291949440702329562663386893071468775539469591165743069845556130739961199375745197252895147875434271040656989258589045095337788916260941333173786533593377801931384830195156461154173674232232932732110030717808789862261261969984884581243286898790024502140037793570960313211548306194249723444756041273651695834859570067697386532611509533561292152808180179253276335852047228090240897754945400202960672731068876302414137525215710992112036344478985770686042513305755463059283028663455358819948875674849524292841617326723543639013038310779115137133973145778922879237940795240202909821427852966009513922705886904775554261500346651691073233534234331574109783567055683186412090972409790009826140277427905887855952764802417835863736398515877614958240856051596441266427568571232375056362400355637171757299357034029890491819487988204814795379913830956207082515398777310173876717741385169130523641042286515164678972200136349682324590985508914770640718256914954346116738392472034441418115188071504550678840240651218767196162145668428141915428649211693783910435595483607501430552334142574462717909668688050369557110239867262051072975407938993519921083369911175857035617399037916009530582252929842850003599435847112357984935588102594557599813299027522864551129478398755341380938602274453050314807668564560844628298760809566578249396429529636645888644615731629738994966322941226289411972858219106393865405111879818550385552569151847968472576833904736865980665024344224062077604530641170551404834247344391465659863705525447932255781391392221209163627360183863544971145215968117334675896960106845343947456566483067145661248317696438116871118124321793233903154630673205283086443823268460038852527597525821626150442301995225214259458645400392443072025426188333688142835006027355117252754648991129142014557516198212263918615082736167787683436710608160848231566082824500800162224976342964292375923449446006473591772375557133836247777680308795859930192645356528138583465835510266645301968801419320735988568658134277436926999390046573373329455974220727944578804987167774627587106007998709676458266879196655066702641189180019443423472325872436157770873028353426067810553434439592094886538641633424918163875663820334745296535153511418001393453635883116205142165189416326416647713457857973038247522867836951870349754644372713700871795530836759414280054103447352161279471198787207068958335260255710522462020342949097272669784414482434694223351412445562299575422296666511010374729881321373789175580946398584153285932946620649536270687541371424982739979605350141579344653747793275255712138233751747716670996074217165397237867439084448179525487840250770253714614626369038222786068682300362338770959336267720420860750085186686279811320941494903618213822608726167422871769727745985569334149569955864639015942425176948489759721054870429327962232253061361084041196677445782916317108285053323521824073551372934000498035939636641700288592023375392450589342793240679487085574624155840912754586233321393039029279792764537237809161688938427676523359329075392962999123151868457883755749082866753729350743355908832828944752955390822276785268673010435183408857713885883010777447681029859577641224000970415798043191229499892623832320580474263917610097840760917802471477949896493817797880611000154365340943099055472473991314284503274243205863793489044848054291081633465539985470131093791580839273472595015388001159969705695565448451917143508601548874104804556249613436001824837311691268399218950378682389448890808309042055172972947151434436512277169897900952752112572028226248014914747562674442036895274100671949617983959518192232497835221704871469957206150868361445850527777181933328768881192175676165769342487915717377126296071872067727690776365418355862855336630691471054177079810787156891082347466162647980583094135020787997101375644037632201831586056504314287472053603562695023212868486126641202458269328387735959684247156320951337838511686816376041090051105382666571627801000738370906606352110119520312702080782770600364918692961027076942326552622645837590896451638719157622651574809091897295300662453777379697687342702909047381129376987339325266002554228663178155352294328908225129777937923388345755056069935845774073434809786199163634665710957463347057866569174358219605300345610307030420210921472570703052896120579506116941603713584222613379560589837821665831427938115697768565961870424599683659355410303517999932014035988417397530295371247779105759287426666037705926413276904341193723098841425108578795759894245989895191827417183038998971740224882026794641162910407188691981450108546406150504520476089626552838287099400376391720787380692716884275085014396940183146513343343048135609607334837300366414572363119706846019641818561117256189244616150640964521135122039024708902788079602285572357947060073746853569049359008760763097668421630953929762421116711097322838754211579123762760121002822023360516923420755686614512386365850712307251677859717335417843756827389065831752591256537088041953346840904005664519313917089738571094224051586748196800152784246818392635094924858231884503890081023544605965003566608289554471065912272235870803224827590360123151954455742365760712439776318723002505471061176641249117071650216704752080556360959995794361673542189264043591901265905570572910427129012588226445774058992587560242351628099131676769425956396435912321000432574272979341324613309739452242961498738686816530220362064886805494409839386998158588723897188254869391777095850598603308706521926535668501078112977189408448434039927419338450130214752803511258646067765964337446191816448436173930369069716500253336454068833733906053568722603867230861496664816435214886532892078972674227472025780536164098173028279053672846178903636599039729926625880502932723694120175358126394164453517914423906313259914462115643836752700976596439460638163267839928730503024100689848897798331560047381479853475754689326139768643302646075569320134990526940587770370012267479358911820828960516372384944903423528196542604520588070151386660136186566056325674211016317770826036003497123588265200339132447909226211065356187318723266446144031351027553784067027484907040654692267988798062151995218097771421039107611279850690325501920436548875215614616791692764473323522272029343028447655846321445317721043724639781067251896806938220277464766429024713641371443191192117382230622936220129967595322386911394892550647230444863986289347072115626966473844192016018073888052773969476035028216260428870467722865090212450283388606029078007013559989548653572929247742602320900178833424550190789973195187241027889489737312563633395051477078762066462895289374603305473489268831677097097396296117715294863573632732167939493711164958636587621555031464778487928261834532319752450296542307949246774253318801439642542854111311153460240479169928207473625305589371172976134958632198742707904729793962227948054703967415919236783159231250553962542669706021803845787478690350946957760641729694849229957421467878160596339782974653172513691209559959368002162394117820779927303381896051624807631563263936736026503767441993620932504103118520376025048536395815607855256017971589663606873442664890588756384939694059918000659425628578597986776648982507667764038245740876610642438302969329320819650175836633571874448668109428472594145542681894963319591414395294361630727806608496856254635748625619803117136930080573062281799541505038221329058681298737791561842899518926970069084423468300534700980169295941428365080173353802407097972599899820285695563072754899661548572182330686673294895692792304275577033452798922874486327219832314798582825078848105541189660653574853804845546649509360483183704763953575778752344090053795159342230928726688696004905514760729630264734367525704401389438817469285649735956038922529946355916882915287779475630332375632238532741592862663108837439439227628016328701583637283572013085812784901331460976461089368805524577894868885768178260486630001717487377834378771812242358589014276572026710697907224679799637362347183385738714935486772205067741220539378899374047658011748394707721528832593498503670845929840804029312886140638275307038029898164619626649942677488977176616231446008260980985478393547276449230369175734529221426333705494577374640220348128877760203162985755418074965198131138172667875298548717226408742877512014531020279956649593075532090395882683309367953171173758287181348982391726122391877279305712303556301357331345514437296620517949054582099190769887772923582019361594326912531588955688430651416076086525685010691923894711605281204112749390065917693675944429297825612596559130037177759795350824093059458641339466053844994970493766693906782355796849357485211582732733355552583078625936457680156261842613187441206850392565499763382255151681937926713043720945353165526116366669257525676689140832912142229066794629878312768254061490877950675417664702456060541649706386796112695609689398844352016005244120411281260176561936630662796837840495470165591945216280319177388343469172188110203146495861118168570844432928680578205447853146523943009629584346681754135066434490674020337745865232006082392786530492536738820447323523094022860381935701660442344099931254374441674842404096463176826304317368506843775365252761308448174277912779440154179132937485840019372276567287417005507379891364029772302920600448612856043669745949050991071091639334108431164188695731211702778107308781489301419706760108007813019535391559612114765527334367419709651827838717052223151257076576124401109314174207531095414399455818343334734648279072748603134605541558050600337990874046401567182088667933531270727301410321498817970304749672882894036280468166936885705339782474348207875143528760126667322278703153247055891529601155394373526778656202628611652876709570740872696687869930520375490880390014160001478445114165350318382152839508868297145882116635364440522082891851063120867661687266133238067114612080424344269151554083965212326986335996458919684990563114017966748598720632826110801463793210699373010097635584476309519481744676703266360394496828163904923394640994006253783492683075268833608084581726081224051296173127964389702489291112021675468268479603779537150095967591376037856681256304732096758688023910474201302280548847131281616284338522848824179156938229244747087477652964668918148324138753869815955967987663469882292230876061648046097688843560707682248595187365499399931735033908220732276578890015436055220805261743903965079720831375249652043835320969024067341121491331103935218754300025171570771564450202487936104511107949294395461637813012524443966845504425133736067124932566354920136705940506714505576145725732810649339063855491359513140209415228921401582335895675909781628948776511627400960991207765558873890741968979226455451417971439676086547039753527700085816806847134721959043007756115721871358612947718987550368326072803993613212067060866926751972391712657592764678264504767240348237865969370593869057173513849801141524038029541777071500562521141321935436202379285877489439524573305150619084836043601630138165189481564340709556486314148110862338697165711457841021335100198784792463401806384799494926683091739177156457833003304823421856301639700226739440938537492065951634218653692684994513873698938039242329831494632222092298215312050988228152873638040932375800152980139180667180722393526584825315388509276422859950371751868957599497703198211475550052912976673747737846868568728947486183661705496297441094275411876261403499407216600245164503600269425369147894988279527890885398648629656208256845637893756666197362006794662600521897327641084573134395554192624475473222591803005108664280534748966326795104087238814463033165499986815065135220364016700964323098797303965540443839959426530697559114441953948047657851369288834088823257873222828746711955166660687933517760289787916861337798493752673831769267753539291978390478612652934320604424618841456735899916265072696996236701531234758275610535202681745018533274493202949798061876887894890974617891713087670112908069278598949052661664506546576073236538581121833933112844438226175373203494712571331865518389628295752694466174150925097131532710265681106806534458323645342874354254748516270410729182679292298942936830263383519701697827844106859867602273773242645066945245202500323583288406477939423850233676921850548129792887114045508499018829535826504000374670926082283408038730697843199808763041805351058387291614003189902078416410508629975236257710152183541909164793839997259646790826912539673136464717972196044111112856407409600637991036389838483920431924250214621092848637668481488167105331693564461544711040919496888930619121401934862860706611203161139610234171234198212328193953926737041436937855669397100176700398519268633441414616689284724428960158199622209709598877044513409633771892822983157287310395611120399042499233460245883855841626754594320798742299597832047838142130616365874357183663679624711565773990026834745992178783260091844385029903192839545812113254473301733198003425198963488755981816876661753318434023460591969415058358847824960315198433917186756786759733626995252400474854088823273629802186822242064252156603839463772963544861606698743752202125149385031942159127504850883072690880609993418913898736495926485716765451247822185209321256372659339578182939047591053844689480018259407711623420569436246326640131959776336191759756614272735780197776545775839485182522185458922255044569891782110144181530448930154015078085697247096959548234749844502941844402413058253121816178761074179327423081978109077419226180909817846966803339031341403583289018181625405368039048052088812421006159075902538532367173462233401503878159137098352805980416092031220469435690195916738405374075835907008660924584046479508610987031574114228094782763413404793448468950199533553100896121427487886765775408139967296841957585371234478775474223811176235323655469794477403550934394907329119511461314342513193490094817369945008754770208157158526365616291843819612793058979418002007023683739282801608976877916554288799305098495132344677376021260303936152126147224555696775319442830808430537656887633949851942995253808920946118138221940642241589862335908407497066003254779962019778706386763651543052816817000618301609087916655912763325685534828423298273753418285302694013918725721906935849910383626172212320721052355071852820095021562536454721525474065300352726754449518538088387585212524362019381690281894179508102434807313790534042643034577901542012670163681408698944783093132980401917643675868195367109724758363056642163217412351816715250666140719450043401733716037802274957282572457281905793080041704375872148864250157619824047022325137287658170659642511388302083507351506241150055306234280998644348003202658707893097348844771236609254591188395210804858594449034198615688108763281826976194272739479267271728096148077906568586414610418196922301709758225574916131199267005104737925947452317437349695851757014739321375450760085018275432896889969926242860693192994807246563489212572553582849657560464926417101811336683016440665058579290280862031462504169851496697110415264028606746466622766789738790205572274509582532643998385488475105534764229085163613622138637508614890818331657931697935862508652971704968411920274876110852788627443045766067515179546347249414479890685108186743708141952904508867962382430573238958964574259184134670907747931271762930476214464569282627296283073031408997198270956294437187245415327387515310507314185269768693577765746438327919580560229268879226650929578206708450648691654207248585312514004043406244805494821728684697637040917739859784227942927766244077960912657071629970482094977895338130558639148997997303478685134003563709428157879701912493712915869705444302022379434081668100368685030122790836466229411914786403204090122349643604808169655710898894070597428793341888035731249515170204187443236115392925466821754007291958504354284509318445216850174025385061556015847204940778212597084487319572161904999946706262912502875969587100173661516792637805455195479907057141059413849320048038475513990310446950476573572211420062981604857199600493731836566911557274124805150583499606110474297678325792446106562377930691952063992386715004485573454207135450604788873380602703758176305303232287396649363361919747992864447891549592127649996916576764236363104962266379601687958119203105084798228073958482933865266015626283254347919503997257057788538975541395135801750259910144221666497865873283544799530671645352519166118993394899548350829774113380634328877667834624637972317104912272037577518511304192510645299185867684952234138267488693965530654044028513765796495375091480981756153636996931368356172545095393967024662347614845503972425045399998295752517760561581914545233239230164791063272625604367351623058596834687556529315291539123605443059970944937186441979709024094297899508048865577347590951321326405604190099711963939311510898083554391097439489988976379262172649449270700148817415827213428483528548085018990183666606777672210522490764235142157092796342951466647417869244940502794575072701639584888858023677521942820995245447794558974964642728203238615999965432823210364231630791777145726595496974912349815131333574479218462505732098774836900468496152737516716478966769839951166969139398107395549924259740773613969476823910716019795714705672200815994454601559454269112874668761291868013789621018207952534355228798895006675969441674092610287453836633210165111824531522229048741225534655938735519578123661572480395818333311422281275581872258111390840226763385469822792097169335934454699369101721268992706241253750552797278990871693098729107486774366096992794913947417608902588420191977194570287452352416500446285047790205589242943879941049514443693120461957214370660309574916992625020262469422091280577574778719817361664551386370230527170058900986824879425258582542894092317820651107017062879447136100605007295363475088297816570062927003936951051553394472073840737776982764990257589912563599026844545130676586017973416269288835649187068994844991104121817975312168082790084335976398068011001517608763198717657731013403644121298490509612393845793174049565046781176733940025847713150368741950688433529199475223609817615241795838431236072704421644177775145195472044486319337207904096226122322726177692143873166438404594885369252950283642126439030281774043813203086976100742254129405478749861196030798490040328672062378079969723577987265209128694023313204228580236452804113922180292164062203020203053312678145470390096049527753523840344576767111330183702919804643004431649587594117909499381341594191442543203003283393615326328823104071154175962830294227196863666935078778162344120118164731817940825942825220694596803256700254986385829588567668740349498909877590373739218310003701048103376818645105815661190567767162190383453025742707326539516754990497025607656648773471377142604561411069926799466581021959801380879992862235585017079971767250251577274022558135538985216189840304729720912242055933655604834564616124105404021145714049915432583092423570264118211510532414612902167238726078860110706140072951386083451613698997964749231992091270135299508127725703586890873783977799117343568311127862134830104082470609267889932333760690529331067403196050564972873246132117399225892056778851675523442452980937097812394679428829706347775010539586411115118952020957800744015034253311783940750854403070190549519855075066991318591979881346147975298558488497353677166902092752368687880542056123223035842168414304605134005677982177233409355032900028138041114171939628069911441275961014276375757885307533744215346947069385728320408421794216775900889387588015241246513960089949637065780958217004868383581390060558515503658585843405156397845825958151807500207336340554162259883605965490752381344271855945231822965501061264168940438303021842268486060828540391360272393483291182223999592019635405302675330686346495479574355341943640651214834864736876861257210960457684664370476232200641281597324791429535667906152273240124992013775153107934302562277771767400617719103313036543347278764207731692779929191105966236008595446067564350147804999343055006451390762247040525536297877877604440313311763631364485951363435861303362672231176180378346260439645696018105798674147809812390641049083273909072557540291536430204713652647701032648981801105227112963145760892347678999509393625395854553765814203577469219877440901461235016180824690861448062144497934337668657766481012343321987661398434646580465744811645407642104353119859117982999714198232913811837838674302536954537750009861794530708396321686101682011393327677318251389788993635334329846960894570807513603086013168835801260766005469981642780525719186332293011536436907972858346476210440679838664271374312101438056631408489937371042699303303892272665266058256755352377444643208570154840433187871934681222343996654354685205970402561861367910031727736538581128981264514310570907938408491914965497974080059871671156294255781766568099018603948583162262592900569012284820761769307816185517282763404042981536689733204531513051569192853716797943151294619252020875781123114368501543496108889180499479515233081704196864557413866319052677424446775233154314290502554559213263233368078844882566550849843126250629245771181406824420063269557145368301395805373078900183835341254185128166434140325286690184746913794114740367238475864141094481434567635652942668425509236566063892771135035579958713358449153762500080855207506406283754529116157996857922077042166730990140617149783410792024018129752317189236207628444650555273298405528748518094540304591891856156137786239967334443516071944675254456859458621184574434787788029174192284678035727486194804403329134904718687891565223215480690552833579688392550060841484794784119338703585583005466407951647301393610458567708379751135612498983823179995651615532991319446068478165120272014798561673960268980619905844976422529014222774126868089525443173235024980292026736328392882626505071423513204885456383820684512568872529738616324196415590771543739844281108586192341431297832398124035641018710288575234022270376403445068193253305400840735967554677003932955029054198196852339986559852329360879129752543386091027207668381348548221069519186981478988311296826053946531457766419872020297454999742193878536318111882008080928373268079762124549966397575457863480037297373742185461219667719595063400149455411557543462405588454983564430879255868596392887515881548310877612690275236888294324199689980680903507448645185556563125687707487439808334224443375359642951662310896619752159301785374815777891081901816488364465704245005716487605029406267562856520448297363195977413266266960620832086401852641046865859279532174212440338878761875030681151118734242353097929718690235478402948883037008494110920413072963597074354709061939982053365728418887167592646234690653084396409459179067060945374337218894419384342756740759449449878331060991297177771466941654486661237895502328822474785263983378925419530769679326569697933209861504923809646736150505530923072255914691927691926846436625494720827169800293074098361426050970200493414627989232543122046203448109293154133944779267435752926895729897681593832578047029807852058047317119521692705299435307771055301573637248530861812878171765114078959688251207185503202279185245244580155718439491934697943077188276163470228783609072534111703526287607538736784295612150247337823852853453806865283621219975228878309000608713279127065063945107953311605037017079825773598734633565231740339885853581190871629316411324759585410297870171324743234382682466485811606877615729965135072755110389351205594314243701480069272729668612521184823915264086627534813602507040995184455495196671586740406239093259075231654695083685154257976850229234446286223530663935854848670271161370351493798321081440313929553272987829391792052110017598882828296344399540448739424535983069459254843214402075022942347434296152228457446985588500952970162363913093631933081429203839281658273407791653044911813571985888587086431591466054225345761599890187690179432566057134965961366206317401182112705830655593193718108773508866828272219736395665959744560202977979333249905225356357579267786424721555978107053422105773494270272713493532365474953300042843699063669104104555359391637128471962099092476505644300343839071708147930070748476517272819529672442046762323514065290046715695666285661962898588818844722445957114812945074688503871843989146475627660576264569207512185005506008951216230937520611593260529357405718285385167232723133670442183242813765123569092321366698658669913254883788792537082412529482256420361607600803694418210244682033137760694427141279405227703441652405462166228260966666817795109873789841029438885426319826096391601219403450061553616979763642969718862418683649326258099875903327538944395957572668700526077406608394362472112883127529466460027783666928502248059126980072810386967086277939981674157884777675753713372515519819090240620528035008115531272864265713776716215550697498949502473795120794454874797777117943681799140346683384670296813358694450270682082495676294234452360309106568794104486645175146818238459995112543148184911011679056751261281447376549662125334132728319551974485489707304729570931392374079953716209585914559806927074657894705362519961178768363111369745580659188670797395288002781194142352794269214542996954592764408178713075357053338881755169044203058284150764681528853435484489621109402620446216293473763620832286741704103752826625577572071422834314614694375838175191573009504306852817585414117289338858412954500787101438887430029240838491655867141892423637473399595054255867506074491897081602202135511716625257857223444416200355624801049378504133249110282682082577478647379929818546912203937675988675843960440515435381220915957717292021090394962392378420532559203511259716298612275815820195469878391134555021449455220729828798237123900711346516876537219915950052939769741203654833291071692284842143750117825340307566787792136854743606978681722331405670002563238879745525358890815184525764072132763956132084276194179922479536583008042047487171329931297270723903990953643573263254974543898613838435875363960612456546032664263546723087925945475054595414224121965723260967493066346849490156540155551689252203748390652302467456208032723739417569295782246467446584730163050193825559157509601415150662791119105808366172663145391224047694065117617446482441860578339114743147822618539116344177720050642309965524771337576140203739927165602469655345175539406769707626359783809380017516118389878725573542704674510583925713581227236545759465944752483920585713925209363276344187341493879580394467656460138712605603321076100234354047798635959322668359536085453969229801151852589245034502022245896081623409424910439665881580448855196312451947410970297348940583029541119873538142761347707734881303779671642904101422663097674002674221993812293723268169334349903354603085561883489241545931469122053993547688005319849157178915939923682241441366756901278514083976928856127096702606905697760437336195593235826233144846266017072521387713782554118351051368892732999362238890097040842755535885260702381804571797274708872106333563146590833843652348320884477892467125789263826924287068077783147243378587747635835827240395513927189058851164996165582123646891450358353688681389059356625617546193409494131606852081845741483178203207955065243900414478679328914591979478568901725028345998244867918995961524201969767101617657555729195691634243997314861894603230207768505872345839274382582070551149707811833210641710063022198890761095420024422899476954225739854429080806145950594962149778873293964852148928882555198514765514855933781861008976289542998148851967072272410326807686131850856651837726626776772033445880966608434461421126538222562829015898399914792847221736293851775941214458281667927951330658502984789063934093230236490599278325189688075038328877216250974319407627856588731153812443524613776001990401803755881415248165367528754056814110020181047817600324668420837396932627860505224561430372686494914769173665977314236819952906018819669375254897563993284091683511651291528025196933021734302316858801922869288078237546816440925261435800770008886992090933783838602979987912925382365040094286177882198603835593539631198189630102891882619133766179826092992292043761645869812618241913640133895901506209206528379687445865257676146200798998381380433662087155859265072255850621104674937199669407451910916181779955903089968278666152649741009781938264501592949287193777880144515869771250182910283444532494818124030200703277826831297514258489526035224908947908782638696523754857224063752329913893640616492701181570446000545169808406500579246487316702019135838772159987288823721681709242904561781073752172605506327492735887188213985214669318425309375419810377551163626930653035340084799309470374591443686729685685852365680249758016541261816974152071263434544658101555297232384487942644485583720265351374440745407376165906009383112480753468544252863495315152252145853393794270098582903194341460838539165937686909183116067198936402517673949555682473037227838291613663667708937908084044514570827386794634115338298850157609878661817154905176653757109981053869501952250223511005617669712485806606091161493863447966491247347898278207278812224327555549315347750216498881153406255259370410063154592873931332408900045389968604118986242634331344018658764928485160018982947001666357050471581771365816634978529209938575346119643851628410073280465077705104504826848052834275395043679363998948501293540440869532615983669643056694990389901063413780005745186018485265083608044636936540915450995822015749710174205700648651286624006691431567853080809315828861062357878845277640413439018562637577512951517615063168596990478315342121695794901636961052030524611573645749573122294739180363843099409649575405852908626389814042375016774191095954467784835670919638573900457764729612491634098762211003304117283450620486333543007262534401171391929003953174411250429674419191404755624125360868525358503227245505677814759967406913062947066714798410653924017153822620594155675704316528465211668494551322281199071397046307445487077579420843104141405963938370256641761667630873434209049722484712284667485620164137254128406371295055251594776365175545425474171713200915004282626419554039274423696227976642113232271961749161808081486283561490240595354412867165623709623104748001653889314636923188530602653071500440978283284532070715583245191751000007455813760340006646383681467151291342523953786779549676200266206451618026332688156911492978942730507023056809663827931834218428208559561278950545655590373173811184451672037868921998143063560287712616315612046253019134676974234103063166777095813834841675917986096028533861332326114103138590045414042636142280009924474887808754155590242744747727283150922844605924426725048377509345264557736390934076776361987529728152964781389328394794123516581920937598916042209753406714776498715904947410561955377299140612519717268440679054115368419034043831610711637758174704890556815949358258266318360590274988573373752596123309157809079718469907346062250877331965252067759699742925079598081155269000845859576958617856444183400982966090817111702763607792513048194249886912144246389008271673515143994168446542646282903008871091041164210769827589512511367277716101172208268558056745289373667584229141467521882588872762390244203216823329140439539862582453509452678593729304424309896264079017092211670474999483501381222235964096228875187648094350429501599574927032310033083630529114685780122397637614788372036515190897422348387664105725720153634727904377816048454818213732106794102656863988581820643536946417031859750245270264218066079117107703742265289184436058593248168451790093725392616954319083044519187739207650345093237913829929272398374686430186969025300527078069949446059261906938652129367847681977520323506256078339634397940982970113572890835320983780092810838606010956274118262790670120879425320906623294196496710725172775503001076824819538066794567155622233013925181737649060604065106058585713156093162595176323754719795020970432873677482019494787982375472734122559408664609349425446455275693643289801486010422809717606012127424514033541351147164823770698981507748928852603249688860182620195935076867667523231097521058417861072067736741405558431431123116045070925657068454774991077760618858990264450557224867785117695069924877128947820385096500699081912805678768780256736399989333402508487652501076834435514394095069403425702215737106915703045584567667033969930271606645458792947621578367461671557269510103761325924791488194380819833260289134401285340766383184593416014269240597736155222311717026746325554369735580991814375365228132652217621476189848998473350698294714113392789536021344029551296816169875824693352989975625670735674479075690338534566910581102524909653468132559362039825377973062666798447304879237294883955943757725071413913583588863069766052773029455122472317901061878934218155769898168504104751697158781402671699326736244199039109858521895911220062341414462171666446402706392186235257601532886219479257162543173430509678751199870966525005023374957330624611354585591270084678124384864366862165782744387406003847777521824462879610575553243700019989041699543493699775931697252028556147482832908979270682349256610054941963677272187237441871223273443714326624994239054207964152974650711561131028801954052922202672253825112918061967351587347050626420803868881420806089683647054197268363316978071400188174521084590043693401698760834155782231837082616358799877699494268727501333926944724707905398761531325332672572193436512719371586652808517080504708001154013533783835074613832636089254303174608115428168137751343601979296125431671987206239990103115724067054018169126839844230891643446915987331559749346813992203633540291697248529049574971805528881926164927974948573693334649641264140149618246097488963975841736513014342176537218851331190028464937624645095413559904546340352107892986334653652880088867901822061935025900329227890343178979764821432315001301203964124450784909687042980558367936726617413013360827646965782339988201901055738685872859515344451550714992641950810487536080810253011746879419935507678569375081977059693206220521485144317891785062613297718028471893107220856600925330741998975844490377787141883195207937371944323744509247554350947887919663356776958527466731223749480656590082229566655953734461262452052098728021075605673766545100098895817522799011549606329057278257660273580836333651085731825235031433821294083290833924662530453555675435161148470924754095187580671130845410556459721723978300142095462126606311702235574931547982067453140916401602353125069033114559920366266588614784936183636155945819955471848016308671710863987860141469568417893179182190276410637691959817619852763977832165966847731060358470620606848565150331551559024501482778725099729685074911984598244837072580825976026906778708013236600555948470401134501250732030579705091259177844218489833535019696064689873026449789196498583545783380863373453887218564561244338535243011456147155166285686517102089771013741592238507511237283535115141288303804003514884206219215020909027755547522631454307103888705062301934671932445355189446090405199650701289875287138652855248401267149086193817528979833642193611612000924440384123843792904442669948089849713689814977370470495300929961285721951867689722960889170380918244262642910267687300262128174946164342649998298674604058703225778013409457669981841116854816037182305258556612872908999537777655462601523480047058631844846726536101360207527919045560806846351877846030508896140594542593484020325546925824506695555083192133787001972712435012329762701576107112864935814526150962177472804651024665710669616761844392809507107316352686565811803144502995192200101047110457894159338308141086653835722520954319723411175936734047851605871953088038481349221268228144840343427857953973446285557602777775608571046803552285748505819822416554860615822915695456478471362875437915888209227392141528319137180584627049232315558161878216717783667682766307759842374769091398184261784309481020989555786086773782931587325178464368598167177462587044402815352221681109159153864664443308690058092078665529255625726944155268552341248335290601609889791783131574573121020420353026978043879698587353314663274480576335030155829392070436040248366797851124986615673284943050684025009653656859335738947933587424282522819757371872340507526957936011651466855352423052867893460781721537603015916769893718378500584333015707646377073911262296143081476047804277641389132247677898408379868045674395844676349729774616852168621741229349134725744269281158254965083232041523140749324937944477835070536425999550838583053603613151927658069403648182063155102248812984745429358777324798269670560142090340618501863395093383299048985562267789643441867307813296515631390239157264568594022447574110464380059318602866024160559358232481381684785178105749379283774838291568695947674896922818474766368461531525862956888982062616502326043964213785204243882413146456163893969726082835415818962437389690600552022115528187470957277688899658087526246799769563018098842513194183276882048312649775669450313586833790540971204304173589984983760308402777151010311473361918389327215194761379820985029883832162176638442517221896753167415357231278537326282671627240297454566114591809788613419354980713507535959551289615629022159533792465324707536963244771969513814934225215146719204462725814277079305519116677765112485176069412247114638327013862820090035990534454204069876054941554641393199056850918945322846373395138887365089496203655542526525311883913717188807661307727819965930235210860457694165479158233806007766458986096708415600453047496395331290811324339789978551782805734134381182434604588741448496306890216352419924407887818535314714965927253073021306489966811408458164991721309930991491786905023697293701040281231723076401966035453091851914255607879248842824901849331040443718763096053128277909328479298303348300681456245939085001755937937934201831519996873351803507852389076131042333554138792413047361944988151849386453926999600129820875287134999295918373593000132279515095746322694647707737056880936796943009210272685081683846469469603489239767304600342853708539562535806203805455306259685543118803211863404405034424557618673135786289837199929973592843320830356285342491809242664174656858219035408261528463482689246341491546545417822518699283729173230131126947168018578410606596222902863794186802195519678425476053526229798933005004251313763064398200392000007896380528451698952757705097842188988394162584287716488940203530398600107718183360466681856815502359631571403339626176636337593496388292954922503478369686494439052746348024033774136210505334292709249312908724552500056065958483574216634955243769039683862186987052117639013802123088849284323482746362507876300433388490235160272146835303802111425936671776211792194035103753359802258281006904206660825787876513920548101100483394445604017347278317321417660599696050004205862437065346952355820008305935044383455543143031378945352196958285152323049977484871928900553200784614111425413000957834971066835063563480938144424164890097726990242010813442046943990662566999011525375092382838979765200483267741203461047189384329904383471083545451598190280525734491077141585799035306108566670944379063385251350400544871173457902527448555350005192626155270878420420840817839119193435880618822140063469818228754568749447801774807289944513982771982225406890860634832567647475291784913955906719592620252519601036369862805609151922922990070420056991008709762125159966640208713179357782643709456847143349382337391494515619479178960183283261695217461482282463823696387789912277529209506849843445841841007693367959297855856690929175492275709084102574666150028863965929550208630828921975691498181569181862624348174483838403920663288255234498654741243265361270006787010021705049041837267818320235715094628472005079880454446722009388103649823875840912750614727012128793109806204036336638846198862150460216888479574112550109015702025951289159458886168868123690686385550217293056662248385186613590343969417460932067488584220597596206604800187387865213810541387025861474755974118397471580997090555371610783956018991740146820037676000546723383412496395522061891409158023894966063430794075852664850042959910743701178677935546089285540349845689778030683249089659369043064582621708532749544380170607736961439920697937690775612837730658154133347988824045607852538255292414999748377708349024921723782654423323805768670893527338757355587131517375010787132796325890770616755277393958415721402871249848842801039220893613871114239354420863303708920900869866440947126173346367009200170295801552622912139449094316497790485529561471012406343769315446104239998894715782224463316185536448129527222564750170550574631226284904888348795153863979140550704437696660299359048383334767006975770993315159424439817868124497323460514723421624947575168438147448196004843020696445579190920644912039755840625185521798230457818585246481699438213812490854201052593316922658199686158328739854989192821537898980653688688955119448992382818784868256406194835155592797079927544896805176997535134179452695667713585519260935203656530569749102066431609567363880710834798542617170750050902577912389377213036155760713436743783776541615400274223792535164090546282787638635311580333641791411323964011384781849467646279973283713229815565969408251694405498429361941603176856222644431457871394340318040385198441650446724061443606211501294605088183900487559141610269815895055577761915875786196186780374896785262290833800397709269690443630942634327841987152960591570934461775378618681385712220515524337155583217035091736420351390356357886561778514424160779451816177476907633464343268620020333752100135803448765351498482442971424909425677140711246573293927447628158476795554343783877057014559814657612008830581915873874728219031793277687794835357916249449247656790552788326402294723432397073775762561095654958180387505096675264218998080205028028624287961560288500941338105644305997872259666380711009576437428022880828211359006426254413515541476084794057388459065682342162195165119231674925255259371799936637622365486111975914634138570698569435583084199146122302582245382227113143128503464425730732360978182142385122248055484495866362138500359523220854852307329508935970331232742184541306959776107575696969592454879594831874819046858949661327753750480423778694875122117332382631212695221411108169639668029410612360218395490376445768554034783771856433670385001458224114297587211627228695147380701661918585715633530937493316161845633985260471593286356877914725347104103869294499950447926968936991034144075561539443626754449154840063158413733077570034487658467138499030431592862247703153379362025402653513981306410101484108369525367342340058486288676937835234443356061843206062884227594122958597038024779121573418915100028497470279131617849358588129807527155605805744335268996137045634763903354637252205026016807636763045334498209890307144865364182711658326491674637433153612620432340618123112656582236662990399409950487321264435076047580316466161253172433597034681882409571245324588213609827623467533125104582460290597777468207602615344300270935540574923501374401087704954267662943581695153416632213927573417572449545247379397985471912805572643646217119463179522821466401648309541484770965566809771384081413730444965459131718395600324649080799897493774365274545588284795525452135276135536404095408981349364991698984539700741963930761753671825651897223263135473517732439694978228011105327647863972290840550199593475401777477024154965076140938404149287442951581444388860951981256622477033590115586974089226967886504195268024009934021234074122881525622658244874966521448630224926500699624591986009148218718981202792422313121251835546067360431808486151607092252884555222462219582732057604558432026940555687092098368756590684719510622141179264944835547340063549467865377918045415156066302184791592752496736456100072639508287512976441612243331679720658076574672975101333331606179574493718764911680978760765906663524012275835214596127289117581347919084509095878823687113544571894186517731933056107356606548330299540491543907773343778077221334967823108280169623251271315207189184751281421561727489709253311904954142401349880364651099655353154024011918067223549780729190098536887463417192559801536689082131505235668588384230542189893345439105730110900930485438489239086100477335093029233516750651776481108858694696288643009016705261025788240720914928807280653903723006756789323101274383124769490950838080127256038563531335621105839849275448165777060922669669532760767423565963730274568827963944602370395915417653670337593689694847732574236355258129423513112412006334701704828613641646412668411553893713471360668865991447199175803592160168322571256594292416339556972361037279969875145864606122808972876878803320943442223016001291602631180738230468251493329484378307368636426590220075328367053085663699481711235535279976779447206860874756421600309132435048935415745879141792492054084236913595059231806329930618737128906711079051752173946784971574177884243752090031302733418253206359465986555686402222134806296684910763000519165817691519283109642016673036896010550315691402821199734570937450294523024403644578679387508183198198293735255999923056767246053181470514204081279312551561381290924822150028449201055262301827191064841555905319205311081587505079503138727164953297852955267564757951934767410780007444843371336876810907871686366236977188174967306248674173708757373850016049090924120595780645499463260428689208824761078440800408982436001562831967730503301298739867583092263097449229142284165716578697438370272582510286323980757830872544102371803925839579802147256164301327394593881715086716568374612824773682375016534605589652554114459684416941580998925980354781913981915039103611575830978185744691757234195556933183358704457159170168687066505454984804851130498337380744813071964168977791838072615558825232830512812685034043992432199947421020519102910534265872675334095194169280227497337550322677703703458110047419565458747024687828669819248318356895875962520263945688807472985399713496150636012506666162554404441110356560810398390303464766831431836915453908459951468147391835278759769540969143495926646958022766874316304611216278534377745693703416012737827256847680051701096745436232065961867636534681399591060816262841925849952588295068183148798905596685558451980074726128996014893520738290255187379097058747879994307811616462858885732573475981340201843727436452159244358775081924077760633425715962972444237399698802082707143774692839285732667075481713812033011846965228925749352911280236763424048586304944804701924722469713766900508972420067722233366672091318914603439546682683022011263730751038032613417515633269489304087150526875245313959114886144634456517404518960591290816117161159617085889777650516784372602733303561329988980495516164070629780685732505713517961225182118305305775426128069364552257806148877246132937592790061026337034146792547795657167044866955315988505416920459148411244109354579872901331326340729996792778181787616744258772838074705652945280009565351254008366751709338681325828905051837799149281494892168960608445537972164351314849960677823989616412432812124062346176844393294495005707494082890550008425148075968191313348102155028077274452140175756700726876821184513756054402304188164886645211793385401817219473423246577912168639756261118802707892502915619362787466942955326567846181906067071303440195386415468768312595121341751226942034896170075741762061290131787814617916078518336875029982299207038843598777610787013500797984978919817945536006501900844118704078179919649639517671463052058320807158659361675627365212919149284669169029153794913646187517927863525291367494393033216374057164056153711773069710479949087467522586596032958837022015052146209705786559139659651731842333899595860750062836678398618970662277947544029929313644950013275689253080468571203698439077246902030089904803957444671231226753974805070565949204395472312404273924812461767100088120327006642949414491133870983571901261717309191653103798167012872339588371448526201627520436974033385622356918438591884821751189443585470389271896910590699349605619324457585772100070163038376444028896738122553514612557332316748801485295905728206482709943510948959109786614386985456460940364121464933467672277419431697426279165321031804713685543974100716376030316401185102392285428550614357763993136381833659510505524305515229364295157929892193967982224627863557046270767749676078611322290401051421981039129191885143825149021396781183377009142794413655024271298811536840477007226531462320675573913265733314323789181146993148390203086608315745191111494590475046079322312269955500946804429870639925678841234875497947912210424434015449145794561411280078059744050071207609679724378471571014916415083989979759776327578307779177642008895170302397176823255138345193038277742359616110724194924564620514079177300196505065554153116121674556047028952177549213542274800175221852753735015282219350717373296321430225807388414244368075016382936599615859488829129300805193857277874884439844017650270184899233975541119648783930541413068223637410947467610915503076469579636812645297733573086650216480929887783692155519464729015564128892251141384814707149852540399788404727353725318386694074961697061468909401416517633021123081414378522954703649575085590311336547757964782440451925757480156783355169507938270091411233636983433439758244012201591804202666960403654539245164260752476586185822804986385281088927656831868206017167465942910560237454260424337577789683050529820748893123625208643473219678517702386866477610718422867981381581291942673303537138107704437049319913982534072417184005429874154644257108547722705861136232642709076052002340103881341408057194242880110600828956118573116868958163166802371583677642584157979148351117647606732360213114597527302700462447748348125155592668809048932866564737033339146718330999627149560119334366532117427377269010086428008903814628062966409099315967598092628352253275590099145253563633997979576864780418945975141675216775052922126715381751693067720660072290296163858202840697363125194582595929982487941066752865454872884841362317121239595274457376698526561957560379050205171373055245915579045858221537540674744023800214523543482834163620535835669238499797545403645633585381596035380196380968945656839749225695980454157501052820819834388193314400190806879672441401956455382854698763191285346380781839521502758410966924303604548920923523732772800309789705238393790419607918838601118915195900996246627226362775314001757267464879993371377539753041303536941785030749744510508525876684919221685207252103830431790569355520934329037416492037836702910433367675496882217660679807369399785473920939115155720896489874044693883813170284656745052958105757442504347802246059171475033712985531869322165942975265474658975791951688398710193563940677701262650444119182970736289786722047435618770869862525215941009781050327630711262912648471600713068765792858412486840124571930527854333681873918587097770090078337836514012168404304030959567071110295715807321959901942580602625622674981602451212941758311452182280429837251078819291845033369089076463777429362202371250409403524885961337208897172060704378697873305986810371121659170038436180172466282707348325273271348220848847693963094676391698852304511980013409060330878398365115706000577317568586277607943781252798698276232530692529019214261882251251683518918898243386100373051506134596731420049383546325832349501982049733677686147564158262059914705156680135403131127495319547176618489504184333437499693464620805838698485312621990741633323580445723320957339320697325091682253155694003195464841465999916041793226057883402484271873555711579384138461281757852166474251644430326947778467617795644426412947996140359260302521998785673134994352700822018179164705971010810661239946052549298546193601602578307785205213927491155211018126657586425877195903678273449117012314656588302978021355586724715776142309654431477032483197571550827126622741499448375306421866292561129056180420591663864971760501395967836177556620904110713098810915558185091145877203383248150622684430049514555871423726313798123324326576450830576729438943903302646881803285383422223007078219658492944168258398858373710426352603787518887994681266220263236265938595837294865785819748406957178960119039154494008079581460593633254829614877216290253928752999309028766119067736762663852651751699118716778225398270195774606485434941719496706339342600525575213860253918067712830865464092805834305731362664646925109823473514379413006025065404180511365047926742054003683423959125014402116521252419976821644035778161015076886019224336250151351651744231031976779902343896740807218721611635316301352083854235968405332819234586054268283681818595472499141363983620349736019418308505401027312037952052743722581523966743450886700149778322313527309131514623374887154934885250807863191411336868724504164799172556618572049504706412195840142684804596174753518071022109569439012136987644769314996045703096942814507054706905924934255222036324651975574502009452800352777753184508186354807435489327574903828247588818939894612614660402526578624637440757240151647426330582730192606915663379434673688848583194120745630160616362285257556188226583097878007493797590408911494518200796967925834533012750290348357228336372701562062744026553914933014324389821459793944879162579816202702620444123184220430420660564565524265022422589628174964680595863381259924691843434248263135126090336300746765228146273695923731507498481144379965269224338932631046981641225317878766045683436709403474998324020047230413669230666563580048015890542599461217312012787648743787183537994688851625842066456834961693219122460963882089373313254563173385368582985268675956654338794023115589301622071347521357130446769613299686117788088241362160995195172181840501645226614171815752308794142947245264115669231805709692592285430567111480158002640092310443505177988153587033429546002195784697576763035040659370983696467785850953521633528769517410190286585509826669221328521177801934752145803591864873522606743451699679534062832825772595449227587232392160841300613422625521386147081649914231531269003100141150592766170537478520679627739511051634831526650634182126369610584586086369723353675296062116300915529128993967528307031734028401403749504991808881020493849551806829679783491027039907084971473795537042159366044534066317978493163518959469281976653983105914910222176914332477363938387526665575227775268885272921804758991274895349254772023581351516685165786744603069616147193038104333981619350100159276703495592328476837100092715631843801323221750266718205049540236801442232482405622098100593560159653121239876980309299292009631363515572522877240368210557469875909802698920501163934577691281501126742648131917593250054296985891471923880754302277708243907985144335275798721637043853210597545441656136146371023861810033187148850362523116838926921385633567012900699145221182345096810824518560061751472880218520170775830538122244166147785884015755210914046862610601924711433663695647027716124578889473814627767857985772560250545415712350132523751211781944406940956733982523566334602494119805287936127225743297556883503118346217464708025167052923927973835883692112854688445329996346671228608375471447194012376822946458509971802429210472181798251725105092546923141505533618407429267141589156745325908096895989352353132697687943605505426230430822589483833470980824513126884803692903835970464176326087481390417336207733109656846873356830914483260201014610802802725310381439759756472327351147020704218224478239761432643947607309334175851409070586154399349655567079546975761938917386341348961976449215506003325993704410122018475700329566557502420202377388140505257904555750203976461715965295538643233709250344170037903942496180606847475840486220005270229656849524605763389661268230013315806294301500033754543651427825805494330590199450702475300859750742878009421471124594103530206150769864587115927883389464086269240661164806636920191842426607314583079634801157915841035176809276361706434529753126379250064593810244640267585041244296419140437960528555086538904450370738116100540032021158973737907493041520905622830274688282664563818595604381825740410204896405177616480177628576628946629275321023987207156076828691534939899268624340255139591393496556009274317612249927805850983063149970546748628636054812036086961199704484930260661544173599813883157013212976211539501490008914438423921871227780470225606780150868184270715402292254313447466203746742087245943560327608212846813921482647423767783186234644642588808627372461020301528230130431692450561153402940387806188505944643773445916660565500005859398114301118116016243474228049346455351326377025217190226009011076207474691568137846609597254384358561224247280748546143234004164390396821531194918236529661450861166951021383400283350140164789631192587975487422900362666703032558378754151080291373057086930416541001677869263752678841273538630033912420413327545440216975516748264572641165742514816085889714818936108174800441328211828566064377942092261044989943922334796475477140223733879337648510175427759950653379399065396557435039046991234010655881161446122865901315718444624461871339488973774454048089013013881773051695865170678723610889385781381397763050516684881115666146909550083385264505987657122368833130444355336592408951883535691145974220154619532966897653260826617995505958905460593162158815673022622437945070665713656967164942256383224295734995704223604676262993265705717649762052726746335396589285678981571474383302812597905438307399755984055997277529961667093054044453474249922479302626703421939764297746820844605232793005793612423724381206419947827608119260873120777346538689771229223769112038446254783448597305498763892069021021535229293633082696536177353881453941128822512528890683255184477269055214277884172701001246182652439063578538204197982358661191790983988125609568938525544196070993509275172847624391982954790063117504282298926753649192535253306114086537617825821745350062257163554341406982766649166095844708594115694764614755432822707915897998063870809205056014610994351180233966205340824355558504388711576893823855847669764682511097340713348007085215371805877528283654473647596065834844620297104175924812690766223272400018207608175618197947538538811466050141108972975222069671270258110288111069631726668397906383985784284657691296266548682892739607482428550082929153408222826809954255138545079625149940695476680640103949078549008426846250993932940676992550208844061216162520299964827442379451119271377301169274948042907143528253003948386980928948841026990930051947926168425293597511499298326946674388023583626175051418630472747889165928632234075472605283214896147409120910606827349979586942526524529949311193247756396211454071348623385805452124334750144449519611679707108820526975645105659259474205390910427051840797436970469799034483987686583395695969126276847408050685947134120087665063569916722910337414583094889640014767082996658186853230229094639810874112581957679149950177576307583048895177798969430202401591478205772187243101187736225834664580792743845229335066292606839885097825421504233491726399769421604317153728363667066557335555239065847065105859895329261160666166954658967749428819611733604189914820879213059401667449537574093623311762491757043214519867347260523216009305140893625017760807362481579535333226826023591959648685771513358577147250862684344106166377310942422379185977341208975874184580217330101410584158685734844116491844755104562287545058349838591479252632521223244170487551507949423310889169285564364320969802105992339516220010194632477437290317748103407086495457663638298391509329185624789355175798565472770497818250890184085379855661052555222973760462640712584316101681592905512838957747917048172460899672313900423814657993238992227832001177383494913986971887776998114277944891902181988139722610322644148100644167864678591855964160288375267942028458696842822922664506714693574003751686728559580899248559017531721594989228352162611478189980658542325760357327451677887085760457561339388923074496893649508862172009473142728740455996696206117616283831125331331020521384145899825196755159230735024509008618282327832523670258651749547293777059369550544495301774974945436893767939602793940661616493069512062872920650977369560237723200084046162716814611170969932462780152974862466244749330776405326429060315374363693700330142576899939606192692040956745577286152572379436940496322442667592528800301894960700895264402134171756660673095623945320279395785737324180831955700355709867502894042487935536040307619136072103013452102318590709273144533876939729836528827625676217593073781253635803033556443148742987656257966834626214469271050398695940681274710088378160559482003855962275531232725538143877500927179206426205422222249798902467888998442928924406674198426696999355817989140133785151066576628995792487354001125856128855763719076318426509933460845860158958926998176098524259702470275592658638240117979903665459658620276074104771399399517391919999100225598541706549479832439067152983993590961096876426537010319630929530986240435865435852146664482272075367133755117050936395821972014720625038395792151415308623283591839826458080314686278908894191707389089780599933530250985626032950319200345753926885640028296792873996358374071728052955394537272998605237711090076960120451530530512911958035374025824927705611577552276168914326220292461404449747586085002406577662192347526688998087196627629151312031339465081293542488970268100409001926191206233647119344632801549471560406124339928261172090478756431382310922982341946627889173642834882243722315433904936684525263953985227013343728188642818166614469366875230335872701490991803496964473352448045699743186711481886027941998144238595659045814185546580254677052420888980689732427480616441026649602588136858304232084091805271295593585946100207128734375707781086198340788317144381678688292588306564746727982970245798502991325382649731899548055225533017569343754017864278688475695342200978543741911355482075938539398081519296142768099393761272827389065076830595546650207513880330880263092534368483551818286854585848061625764865648458509628646886870314744840541991681565575873463001334448710808820470960275363898571659929468651839526035176576554594647425802675458585600546995837389527177888464431569589804081188220481299647519082617358063174152926971894068569201170989311694619651168938481713901152186970726369631103221945992814349808097955663417677507666272857013141135822319333013026274225802561794386415827867864537842448677126408608204239487838031795929069539097467136662213523244330602472837253613806163045120467020906863391832584648337488102460903521112768504336179352680493114435091383605979088041692105188118418900594154777422194752697727064039292754431008985311583636982860137953580159872124074677493494541447477615544969649038898486021019569398031981642518412104733516417144692751873243392395774376043155369474776755164665725414629217084774570552200336545303798128039365604064193554425975734433225668984747721317569073252728596536421201217226227613016421937551740864393416809223411642351117968499574617406391150575618727215397026397952750282054916000742062733426199473805259012320640506707437937697643909002008233105158858020654905016585445444155926477351997672208375693087622255983176268423517820816530508480253127057921180144365951005511543026729682819797869325704493450564247801462595355729593924232575906141521604414680435199409715674083259379465619621391624610332939496380797337491752988551017204976307807102549553067294013459217944006530043842264922306045741335892103814044501090893525362083318637696306597730983810173346927036807416683711433077597499215225419121795580934700631252907005143803185419139855915082299716304301623873884110200322025461509399343024253449783236338555241721653676298253137855185397590971651296002277341837811941202664679787367581511924837156075611919953099285476784080027271173364542868473673474694205861581873603564355535589614530901679270970635757687583026551120188485945287770513329487933828950358434461464875812679913099732999996650358734734223715286905144612379603708128113509202070673658039568630751958965231784315231286355365408256181964361901154627761544147050993461639779757884398342003623671555536479788798936364471374116470264187955289818670531425285199223467201888957615970628160707925700394654051345711453843724742632876078265368328624079292693106630771953361043227769111286459227527411848190781469603134085205246327000038757933558810139811916856102934637291480842896723066224743871716064363454511339841893499764433382875948634550839110111926931504435287667116555589507012915535326626367133305663601800621019082069291400339875414906105312549479912870110762474370202311639631359716809492492436852304186316389941296941620466648880245928041937344512918995862714055984816794174122490857351652673145792629584435460900306929998130251448463365436090470205271664008899749204009437948751418955494548754572067856878100258436417811844147982162978064602930969951022482183287167072483858323986027891619286108956430420482717429450985751361365511193551747643032092418432295726415628570230140228288148218601628534489199672036944551559224462581123370428559092055653758351363323440624865589847945819329039769605333444585610257996202877896352207361023856711874962007333427017408517666775635414428861682753426518450003506349868058124031868772953539500126685848158606051832807067565359135769662906956488982313107652007381296300537151628892681685983352794647299479936646328741082860210517141609094825156184809271519689307437653489710396847453903895641101479683613862130267449339399058817723579385817131902507122578867000812035068407699332852787110390394034395266128224209881684403888835649118754023879727051369639567067614123760625742517516472700509043542266381041927143408462188718533567039452065099864265297942380235609061476358260195839101822340019275396538165643649473416959758430070266339400845291894167916690616487904643076645524832224721886875420272656873854861746241683898947399437558942378721305265558437074257750225672607187577903231437714524388368913305021588462472415876574538246491202856741173746838480408392407355538322264425945964486259580723461652286505428052328930154082284425436122028890704480156265072330036194935754454470565381031236531779655337845567949131755577870937440426758657521196135210555320571441023346214255822652363347055790564457572959699643025537742166886018144147318210256923255186438057184549799337759635651862514053491071943410946597300314812630471439657946633622977106182727986445926042085993018995424871974072636631115958275419761115609887631126197761438046361925969476515118837396199543448447426458429217073760041116053236287638782809935306899017944365123048308520633723933876496740552031297236670872467458899955870080020615724881912350919750710330926979397777640390142661503133090938531203607447586483795172894283137018396587392965648362799850418558637525266390324957322353289562063432672482024285367114089504581319328906031900153672383790399302657000052523774485570045582366133018405760566438838115654569101918644164767253525432757835318135779442769409427620629588092656818493347657195576986181945265382463668245341578743820740161899243795617195495333834556992389869372442680098152139914917495076806904152514313415806090839025737103955716105902929177821728058755358047435235662639907274361811019072600064487252682991693932451182659228743234384509846996848031401617955759680728177040554852793130682146921229001184390352438823681144187658906490937867959943950572157003726247916927055819433404375421862986301015490275897740043411650832618142561127917074567926938962627307202579158444976952881335615022444063293025436493916224474108710838371291401743629113279522603466772093786826427331710609112989040803720592108474032035377880615956537452091169447885069297889967705366327584568905845770684026612370412341841771884569241721284710453279828964862016913691375324668365963595717045601462379558717012362545936129696981972169661844008851278131571962985697769809878403485378454286260064900148521762762766399683457057529064988320800168091881890344419857659606508150846544771909984366734114798069559384751268300176646870109125272912795833610960010261826899040362200934464593275147101171643017259520897408858270175321593174963126083834464370633124736142315207130908661674332963284182010826542253644304122938551426631734051457315848230419963878247863458893216332951685365145836304331724089073497250687153792582146504114362164067293746370026371187940532839159444158175300875873858549963134261925479804311130417241076784506073345112276314312218187115744611747174370966635690197684148611685850837402728885517652470216533991973990267269388905437853082300205006966817097465578089181716851343144651745974262777526091961513473097725433050834443388654069254631430618302229543270399132789015599360392779989524865908380249610386095721288741866810542495591502917118892730036830361076254553927860906740172216425929482071218342685188868365319670942640959655606713551465305920013606216243019523614796760781893455458880114731070064357721224788378622762238495781114464100563092269337552106724796595174962924837191071641215131376935911320290490145563895510201776110553162520384981799754679032383767171995803141035902432747391402436271087188954746277352341498533072066075785204665170323855027538305208435914097697235405594185503929811431958247375794854052416909535139217009688704128535537901175731971798411974565958015445721049768518667439081060101914652978619678166939902251741582584976496934274367414434302887798918749712655490596288818773634874799049312979381958710593215707346165918126811350312473117228544369179675784577815105146946602942809394729563213237580544110136850605057007083003748638825774122728980449238506871494378832431939266249794700871305955005839811528435918834844450060663093345043873195885940675663252631709700419424601178474628778127242835775223162355604278835400827737958345045300748730898629231265785416998089732428942953114258068855698110395865042463579895396693458902831736146341293565080959534325939756010829567163047589889507036599759876807392630418839358107862985622691778652029538026898249890917022908601780765518038798172679004915786965869061132542787701230819621837988298096086951116275837896115971187062319305424095532680956089778284678646952350700628320623563218325164083079279378665399582161893559741247348915946600477952811944338724941169421286470636319438006888692817191169763984052724011601100258680738490208435687952317767010072716328626573702940703317819864691068776640476645194512695914706910169509309792454142444216963100151584212322207602859007686746224937409655951971147793179365083433653720795550581882086515278419699490564618248532974019728032241346455627913216159682496289675666542448363118520597891414743354644641834718319229572910287918036361317588477425062304512195417664834044188221264501570559685609621960114099732732645288945540698157731586623590146977738447602306617430088122151447340526597437783124559928667116773258576842298366060815416703048355432815441970959431713765988853761082179240485392276704058418477308349947446768165275883344752027138823217351694580128849364177140111409920406557005983773646483513916502899819661316006634140182117760159685101866894532340143019994698674277765155392664362985257535853467390065546147312619590966685347616269478291679479566800274051861266815040244338239727692552472061543544136890378120623110575575696716665944563475474335581935923831766413799729633028213483761859071667793970166712898209037890456569322210662504368241387490574062089587746637981802495816698006952339211187615294687718898716296542219651314212731857615549225439438497171041475323905145535147572718300704597735892855234171710407511094939623288201780888278844812975232794051129525717407276404910289331819224351014555839548465889342291188905982842110952237116351611817966088590546684863950655719283167214375860320006682690364154862413418205593230050497360706734871727252405424681964235170521177598657662899703102145332505145898248939700297252882894012667659917405404985451403372587483064827082047902205489774299782577341785097171373077230677576778641775771233987975836166016138005327105728302767311645689814978414222716729561925801506827355644072815125139769708636077825008703233336291433186775763422995743291525523392383454897616937438887162920872527354725503904941243008884663875999787922042767332374433084259146214978311539414157164271035031412885279823600228777999493443897739489700365880337849894646491140208225381319095853502594056984280099967237669371119201345809356213049704884500207378098505093986916220378054812889615910950408829524183634967246194611315583399004761571499168280229329770965731397944672349196723960060619190220262013062566398680588438971189363847221150772063533039289959249402614906778723690354377767301786614718225421862356297309914892105172943695892690829610348298805015301851348966626538614712583931386740594237273363470594131163951032745053387832408752522175918555195352411498788990352320428098112912163021241648533092907717489298892498349154392217814557999935389100994577937129513551097489988723655256847365058176161214837785932615840036891495099197029566747572278887334704261766884166179126410404828642806004404583486861777496519171241732185838843440978876171208101264643002003983734249143817013440471324598134064287002098836350425881771539686786540861560542364771991331018537931342179495985201059160679856992217769703612149896884868214295104929598587375564152856759294044788805827518150514345068052586676633380571940632449605565867657647984741939433119329887456905403726613702087224270272512223490268718412162433234860088745297079057055930847328298818981871110664929564277962098014085818379737652668391517661475660071795254576763307162051709470863266783086837039977797906229097189039051802986321316632176466145345412980235020525630103012217213375410098790350315100086777241788096274624576384104277810504091398378188019291021729034195829044750066792229763395616689812263683793647846399075300778028247052981380302089193256560521782183982484817564194948832116110136360492490914931901278837113548720186689795195569363738800987265675352582851120594939177774687365807268535826662792849495325702606038016292499084089315138951173295388042161353660287796689261526845784697804469366658493311531545788141203846008611295654855938517433649154683150398056767528646219620648340387146943799537530694276538352087564170837948187180306196670833901050831814189534363857507013338792906203967483889715627480498849577210798082311755312406900108985341447093109602329593661118518021509737097428587248491896740653324017015423291446417949600700423784398267680175678421350390383034671175348095116918189997408951309454544456574185805502329525431928132440915175027792511748811658841209875789776212655794472285983934530833835561546827965812872346389862820011148244454451643069718920760375756053556099186377092243308488234252656517791185023181830660997777391778025480317056640051379384170083999959412076118313817625618795464691513158630387090477134251395702026555463865331712818088511025741766543706791131226466484453624849200553069913198003116184968215924406630545117242511746219589780585012586413254095305292308559409357011368731316992488990599787963496571691562842371563339743993196311414293386649464377417993310965685113821139328528220730879744673094588774037088247493151938126594935193493873392179162663380653488157066264556788447572462728550247576501484215890021994008096811595745556822576397803407004963337694189199674345784831894690347000001503659140264157477803254465166701698501917697985565890777554957469443569506945004457319186913930420123525986650613911867481439665480054306458097382338220755670668822116927488077467469263777217547953477843950576545819859689034553435924000688372170889657256349833608636225984765211778828832332438325120574974923042934699449231205936057220425148556357889162127936233693882249009314493966542160063138631233434154437881861358806401252920944140716140394355592205693658401798140786070407445625418021312715331876160654406944158881567727200815689170103314017116818376095052934338359820264183913798312940715418105955916754499779689323036725384595909158170186748897762119445624905563183024956361774774829715974576789570055781834665742816398918780975159639341964770360370006343149085282921967547985540740836399738631841763436961479363755589639506282271303511074407495747192681512088927179032099928554582132949722388775299705920081536411116168657138354821027710622705785665769809890715932278194280368978867302075579664234169100990438625599979058793809751823541593004636256497484702862532373387004240597745904665775612100324349790993611315523576241787523604777022338363061131059392189098873775999464759781714431043146725681126413768302834616725462784831214775348518269925967784000049604565811135163039045815263521965830499592626715354121004629498947583293954463825604481702834369728302306115322816381232229698051315543627869634816273984991696122669161533765592993163321976153319842853533433461263419157052639075482542312377646997086755784403982500162427033297429978096931856092945394699770890058246843451541911344770397723651806558057482200596667986387991877767387722157979832891591163172597978317003452846820828688149217046790482707704624163306783629562589960052604914081400471836284776277938854225246994182570336287455135223140484574639758381658142879218596926275127611685459556449514031103035061603620309114464125480253156546087448536450680023480249731592907120741621040949320786048335201461747833763049745270411551273686411483548872415022070944976578777242458780736932756548311163457207201330304746121256511937351197342582771587704447630282738110171750570906333114044292247522196639732218078751300486823347359762386259010826279719057758922258868553562763552201860899217028894292630462790864799223862507736201933915413958483545965827481240265031416333169554781924604866890344171962160948632070104449927721145624470263577149392645939536698682478712200610077587836069344748369162370496763994315598035412425798639204285961546363897905491692194186929346189143523026777867391438186989902394611463634196310400900719570619134985040920924022661704367645524756654120213289979567927041224554119521885224331517127703534353810981583773010710186422834338240411253751942711409564095869329863509184951206058797079144371443045464967588449661335111589377731047835922747597767325581422496675127336451639748921390059305720290070273339443275310118137448832761436199623077154645745643964553686043012916843130774254305871838104249187811365632966297567531522367100369076262177827900807614595769848167874235101325530852882524285181991617788845469607397562687804553415511302123296781327087814361647848900542599883314677982286445818116649943121167203982863308617125404984871688719687064208148192114150260843085284223769955493535687539740476052681991988624484840227346791130093365339133335328169805044129167979554431219835215314870392541465390693646880570474318691104647642312186607037585926429828839828188575095141608036533606739110156926983245727510544381690573802828222915240615406526276019834404030438915418786412572498930281147273884204895451211090249352446272363467207973474842364450329469169136915371179714929063520435040342682177110575339757256811962065126742399646981087736384038778611329249402157909229352499492969143077089134786853278123148471557741630045675104411385077079870768891956630233567654716678457722208591817523409401302064850624246095572544799076372372965226198669159555492248480304852498428600088676183605061684587444271154362370264926685475361857401327509660956921506575013083051675215362650393611236188083826273937557281409176739481649069951201908634007765865757085979968942209605037137106935483061992112528831095818181807172275504407832759261645484059311761604823355624231027707537946627617824907428515014657816431330319573702044680915750064623935459292727384068314781593733975051058549765614475725154140833906672623283413863821263667442256365133876329901429549086406137331658557857621415263502465498841238693105458478431520757899709551992760681864464389279150758315664654173948418878427711004826750519344113490284113980508389308757641449951483655157417855553718824799560809048663880359294825494421066468849148148148296896000251620838353407523978033248173010690451993533618129782207127175744088887091056317728231627998901961151370216708474609075663946674864869431605828371250063276824230950485841518547957046262637027630319934075018989079352631472460231546078764343006374113981318206750535837346501706898011695183806841707490085109894527558302228628530779701183765573288559764432032161497579596059133921849874707071022334128674292173318474098654934867517198660813316663364154837372952450803200072842698835278253206083720172677945703768690734848890584110996414012582631357998720770456724876324734204605436244181461065414175004921113731814353796279087987282136760781652439403700216525211277539895089055852899002945844361267965644958424853522411998811506445184378874694391587479017959382837117826402905829207863270129272161075783803469232018520467276080484012096479526649642214624890512662539056966633869050071879937523608525069513106142636216940523061396045053826208112676466076241510714263134416462810386287825568708244151045434396939283098134246834369045425812092683771379028710851071610141226939046036680733138057506325917732283939390773542928663083034125961170361651954117719635032742390875476500484494491526775315088659773466636572281220025858030465077601008674926883838465054700737739750636129737088556987823556293796092363228512139823047466833483703741958964220369987413516488000725916925408483841839913140620157925340324237673605314410831535528323968264243567162989601201359750993231330988900150232457755223231269778049807422060507921298862907664376973495096413597818260492726991685861093460342468878667060420771351768201968599300305479293009813076490777161502513262292528741539242579885630031547267509374101322904164864124657308448501764401480490609938356269299595322390174705332805128640142809689131725459808392587159206583461526644734979492404906629268072866334012392017414971467797454087119618976227603345607884441496332444296711582523105214177241398513670342893583318225425510397451494855283264769144929421306712364104008500628640480309257866571128968122482063212421171884906023143251299478120833585095164827497493625902805990335938870365678333325365497127013532258334985247367551757266646451750239840731031674061599752933198810110347673714696661208942641447843778742136567403138372653476128024417100179502855259759600136670941335318811747548221120444871689462243842001519675256712166068793277142742121738727737805996382892690657075291833859606744451120747472520333917549161659064030802178499581736840344502148863472493824606933074489808968275297693484072834597874857598515856455208972700768145268388617690590968572477484698904179111878517134701968110929610241216801741205719850755691013606734555028191099144212946815804597544067248469250878666014738955765255834931716310255961697941996663063336567212098924009382150227856784240425150672280502185299134612882799417783918640308665641300733431534846855777308121002406590357771878859903459371779092408205254201979929150600579079584163834632831889012569612556948923936892949584253284971232992396946400462985730645781511137039465070207222810969549144052581291413366018917855423112948372917793602927542262606228721703086824356883643254860655746164752050679971629917107788232951772642123976161846410503569760687615634583016354490884875626461637298210934588186099566471858611079862943346978548023463948583356085213937649218476760493119416831453530552890198712172865651308568866249024684097840882838129597334847975134919054955915678933369151846194262724846144680687454780793267198763595013176490473977611968173383152989676605622394549983841444307124378042404202837643365043216750951475535465224005342841102055563609444965417820634971175808595777279626353824848181862317392047411843858988110733884092826439653427443222162507831560453449595598607854296421639259785590426028567363337065484147101392750302167971397942803560396479257831693284734732576856183481869727183575072389083222835443728036166715891681019550780840003034963748143183827501241074084560387317343320345703574058248663470837097310529597082160214298109687872297454155829803452315590737389530754660158936970709498130653504449850754674820762112795341812419809228762705286825311394129257593181998187869232517002882949951582768038889615770541405406275738242824168088625820673056220806435353509079461023228776019599782457358186634322389981419289901695770196927249163305771754322984086078993227231546087327605834401551049904808170349138642135089362890841905513675490544373977797241518774997007085612299331204091725174074224996455950190387897208601845322913778305566794425376725670144929050382008393018390198627834153399223202478466326768002794229857055468120601316228330561628377391783061637508637932620889653637155590121270622564023739700319017008224046243733134632629612025123743165320934341823345084947937213345990512308392656569575036329838291065694242304912193620239830573079601372617242135372082458681824793899257559735152646373594526422265718906044625310825664712946230629804482788917973049724529594258995070741229798873012203567550642192732759104486672451674385078818907582698851212808442009881945280253381740920155415879400064899523521046791859068720213315748286886155000418064800589732338038445365293710856650749782729190566597590192017937978462693454029110502528267130319802350625204476632810697375712235578692731949644958170677640457372867166541926187674287210232613588637854601265799096270993432848393162396646054392134439977508538186431397561289824785680562667005084947860635199125480433338768578745067040539962058844283532144158659494126229748973542834284341968264302943045497690968406352040879243845213811903993867618820902806526581224223700343711219659819449774733279926808054794148149219789520872022798149710937443787974416134543226605833726114886991211753157809621448175867857292921571323316451645447412465469432191531288324126507073318314689061994156877221761347839036547813065254812489504620346657182538353512446339307402843953554938648012051402327242727312205450013676450776140426123727398289370322456922819065979151139859440918474882487523910571957729247544211924891127781902299405112425344620217128332422827877721544932087281362488371022791796089816054892379739148900380412729167026783041518531964617277646278074571703628830811757601037487651159673311762652047611133123915660483026423052465699674686252900960990576116444003602579060449945266359678702091149932542443959108797610630867438786462025475150979989302960540892808801692986251871995009342692315696097975173715914798339429123021074012280557760416836947295871157542325310358632076756559589434170865008122302141088815099636742068613223030366698635250220567924184259802055439573812699240476299834663539929854107863331704843111201843695574092244634961245247460057290477340083257106791519002767560827844317227601677202664027118926127720868883028666178437858807874999389682154423175333070597711881143140752682557018351313314608313816718672173819762650697166884827508403014168609370395109764806197279148138436138070593828099804375278054783526012844101117604922979259622842458801788494273692870698474362171294751236298218485576408328461383039824996797098762891471322541626731133343688790950750913164236187695200601695516053996726208149529835053306587712672629253947159249763570192158653452561675261579399827646380384979732934191988436364266716849478562381437316928620566911933633752443974928524016440667396178471210328218061044664780963814670458088214434261530408534203447896110213536915520884477967481887993683460570694399375241582988798803982964466979473510404804319904309977908042267275292873387272520403658722034107013347220724466670278401370202069648956216261898167104798027788682776783017149363587303457363085237622987186664990195173766510642929266765263668839969599781964377015623308800347037265390800353703559263927381713898595027052060182344855407601172204605329855622844002571808991541546280995741891230596591155498032038261782952134387697466292434258568203154798873760440327738599033154185945016982319781152732672698310323592199926573101602708805756981584406705755756476965425224641008292834762913383529200692037665651457671110549224070215768361516774235270984222732480015467366411149653340447211171492825378625909360059850407324707825753388194603243006008698561851278529257356400365192424518739211753614539567775216007451113222067543195705175902630872191717817123042144448756285689706998519151638746294786653231875714649649741106950835942352646077412397975592200504858060810522307253828225392971245455765631683390520863346955414041526432119611161537756897949105715124804453389671689233996270659457459796319443236239340541802726729426633063374161074611078205747569455463440706125215080212669469477612517567537208104864455970620019427614585324890312862930794363427278874791599005210849155583679496817558570863098572184469703500024406524316723832752158118223881717341401000007139852893342406777940248742672897858081502752792929316283674661565496595655011011279001903006970109192706212751226808500825134406949935556942085443348770113708997038817638673267451985026476050937131508458602916066032634717982220580073499445799289652428697426089729097537314176151952887885993515550082380210692729550213882592561267570111989520521710994104689956579938695641938452330459982873051593312828836161842168146726187386596753593479390296793418667545377079645770372816126313791101562528632905203102086407085601386772767014558957334954114444639141831240519799697654397368461928908976681727960736024183854077897776210797770251109462899727221547350070543590529174298944234785128536361442310339014867978633198213402872174074051130161512372419424700145197319204667745637361531988985797547918487018175854690034236041330296441134603606972027558377581117605226524591310335877925129954982190907904053224435370199835837610427352181355438906840590264371290491606221600241194207745000048990495042776398191691125507988474125088429476481301094105819361579413603263932206533645379985660933755984232132873641984885701416319059489861178894196371647881996413594392752789670317622544276215342782625724843619291152047398974059932690065194818197352349410819487126517491443403136218508271826722099051082844350975785994099693145977552956980232853443649080302729497352528095347454009187018780310467814556339207303197634003352930756134813243930365529271325250046864131123067109324769239634015718265323475566700583277648490818457238628181235105000398572867136518237132661923038101484399189412902782299214101432978421828465260761169391721969447451621794850079199587251329613115084942603845927828373750987655870294251790566284684418016249833520682981181125176691644735026866350882394126639884179622357678794218529525174337286922224873272428976030078663847317354574913198608276221777314355008009430574630111654813058065361707151862747668586088455767651116827116163273747402943564006427620447240359409913941156373241215922084921822248578115913656385023286723361606083641289948672632475239697034285635710830497708106116081390023796843727353984657816650691755678354751786361363709620921544726082660689348897695825009721654533638512836950569322429916306641819468017279813950260694475771231351742921836721828965324420341813061135342933891957243105735462587111764271426000675136948515255081981506778546526044353283363101721719701060588479130912994630555089106917592250508492495639720115744672397079620334308546834582724552459784263803502962014686881508108313149458752781855072842353892180655885851255025505420988011191472139447424466284796291975456739045652762757959955109493939303193728257800649955604198076704387807574421913589002489033502742141697286476234743410860355572696554002026393952798074654530613697788290069989899658439783899633799628650503410351653519202655299690177881283376140654917899595491341139590218778363038127841972019223795037597720353069676435440763675546374647695977619078675804104975685829607462836928676820757835263555767742580647991165090206273521563136688777159924608294062688867233380853510792074992082292908416546540731143113131942688391697184580595812716557474734781813092946779766715144911716593615127349634213137335518325215553270704565099440949530232934416448697767867666082523427665576888726539922794552489033713526752972351289735860477520266919334891762676714990788510138892639428656739552466117175446116912349918214044725081185236691529939705539214252088516124719314690714740211901216113316890110188608835801592478182300506462736472537954830148970942051517597179293872625123094467350305901769995756250457010720779685856632595410475824699802304165603700356730831564810307696355976283035442140155078643734363101397354864575497100335853776394161810708568844650402520348120429243442702884012320865894191215043155013893280992356342568886087393235016753605126043679217657286971048304414798093757600909816952267598556041766614439886865629949625629178221577702239614702209612695954275382706886884274303324726196266981758681674593832194091425695561564385205161684694562626304764411155841808780870480160385918239430534752956899657365614086108219176897540055456616172404779713167723634124567765962575610470335138116627823886558136455696374781680268790401433146375757934299386153314026314516861299099679008470559556807840085132912204443925454928440949118626143117084543097758565382092484361461075535920285364103411105634749332532372593129824634264863149975192296674041857009914615005702627353052105147343021374132749874413319514163712652964168058732601855975361733330029397983656200426980325873929839120755017532266617903806629793504432533493688323704451142182053679002486225848055889991226181960043453798956528580371549622108127662380708090462369270192179810669170758112431149281330732359404947222113722541429885533373431488758134879594580713317077775327801752723902232271648104600175677834817778074268896932816611934109804345405274788190883258585409286771713018381746440790135981910417753646527289696815242767274241590295912254976315121008519184539904611208757009027314966267413850740993211221997367394469772344155118526606670980375051141830929112380029481616353581854370660662790391615412544725459206860879817754945883661066879248772323384616123182655311427380070879972820929800042722324968733280042671402721732677697383799580419495754875089961723615875223159769237517348409057538824322685096819527493477244840450784452480302993088869427059359299189707077008283756992536609433858826646751493658292577275779123039243013132690880468002223551602306184846357431615101195983353389106453176977500177706005345435833129285209218671288375856917417207461873096378681689675532447514332171214887645007182892706166298798719527165127546047781452290891986823970590765447838056433880624532144708727192570923897365674666316320078189359982984955061496257665401806318321844524684655259163758903724862039662786174990292318131079363604310177527265824884591102329663578557483510285582628255100163179278669917793358562738583319488538879519674926476714449338902601153655183490559659418174312508241058498605719161706334705624804925665057798997445814544618772427938075750567915571085957736791467320402343661477705557141003393967184946579093584753688767781752898287812987438661883735637053957517921673763178582844493542853314101787894354923060400140602777775974210462104836387313999456041009592369258348875551888168301929252574378976774378216544616424318571101976925507222234534755106857815891309059000349706124703005695193043688282472197949605108844327312681385936865385913733194135252608519381695709372477128334750685288396360752836503447602085283196195193863766832945945765026118679046576015448177938114384398458885020761551696322359018725417551934498939623896950994852133743199036614823956645523477901603567760458635108984728376198656136714861236186885341868739948538549390720135198017864181464628285885887486659658366061794622423312985902439134362760610238404241926306177074465313752177460674962434454593154732029525968497098257456505736630080654855174944044640784078406204253076513983191911529668607450375243441271371460659123903241577927334088490569740661723356313117419597690650796760685197448321892053635349722871824995011909768222208682569599041110699758333819322425831450165584508904695399187718362578947089633377955551127160536292078237157528220742405494042213234238487285846598385921880297455546280603103564941302922352447495976036904063740930094459708973649872468109984932530826536010017505001602984314183897815043444073567668639664891928498412283546885693477946969642064139058111498701561502086211596785045105614085441954977353069991284794015813243293558533943425305938382011983994990414756499346083038294179873793169728819833678034185436952978200180234025403933697618999792197820954182113614906066938882024895863233558617863256939411750690551042124362264343336612158242818289297045361664394977724081514065519764398606623347274279611109910554571389672371385024569419200941203310477856401710487390092879669973194659283813579243604751260752285739609293902564156575385474408416800819632796843865764171557061419763288107300449593942400722560551580626195369841549178184162705187621063644248818284618176447470795075802540557479780313688380757152530839520355627990159124265265585674042702886037462794556793675371726860947560356092587585803080156100722793578794490707011916497398443944479197442919017802955810340952749862497650806541969733478550011209150025738539688094349189722997200699730375561975677410669821035673550021623094859595477635390967770017376394140376734686611831648016719070223972305726336615576055483911224242527734072402989384364001569807313034495224554340437168487272744366998791995112686443724381886725249687100531276804549905558349949139844273996469314466548506325052379135104701814244268817129729611366525927215475669800005191182135898643570941191349450635087509449533537238289103274859123360786263555472560727240502604313726042901238690772808842902656293089610766558929257744805449179364000333662619835695094005483620760034778403501041318991550362953861740374385601320327744742772253483345443545049498116606685268215210393843251429430464887786254424392191428161000030369995790582139518091064499996476590173985205142786378484253534678981489856166994945524445569444177114553595795796640819777148501817717121115916865140441730258038644977727347241709327814957724365760909343794430131076500321555957999321854483403660952069651485523503426657516135054866552841456903618031824646753482278538993120829049639986334712579928693003626157293573354796017454696910262891062039461082846378827120477919930260339770382079907338568340373581793586171768031059795095802693986985163495071767124861434224041297161807817592545471621869692364387653232787427663885577350030150312200279064327850282889960078118413631068251675591110273588496304209945484423435084237892242226770134366786678338410725980535691103260932113928935394484159240310625826593196017505623401105676989661861579128809642560555748613821447909267700842191967854584278544703927620942858882578716555404643046514260158109020664443039817250800936796694421620467493398318779914532972751994586011718669100353828214828600279162817810871763418603149203504681605492176876729364659775026394323361453646027187584497496448068296397577612459811988190366964557117502275297188020618831017371268434705778988484417533570527928735107421916907349852921656360427070540022688984261151564278966757764494379941831615736304602854910168756502998478702034881331411191947783870631588111169436633355442693723008082481837746489119273597140619011942042530044066641958180138329495883976219276598743891638237582104905076271014836072135015422025746328507863707918885713955993461016417810356399536891098574092334693926621272626083719340415375064682804088553511055463988839781367462966026337256378328273887598123996889929583483886687345311650909280792959075596741475617971725288127974245943099943507916587064351475250467883410456167819686300069544884797021034521379718517192217245578927051459660756784873714891272917456240243101964818072946055610309761516958549793335606315988909969586148252169863503081881642473289495142398766919336155498741516148903464573834841626484014441152160446197335482321249326129290506736305853218289419397026976887628532554742589181882586461207916374153897859849411433017197580184892588105895881051527103163873502335281452757337087810080887245081860973704179440607462815769130285254115903546787803282242816614778304136504199053474229626031114424392733353595544538639606579147177037179541379965162538970976887598615140744875361855030272909278378294355144260025767127243238087980791209198869981993873327655596391841400938031185482736496076935256138451891424292468778523867340544883876106771408520361648730589719455059979087743711593175454778408126780772278791718524875066276392967551877389091345792869664519688862815457352958286219370860689600040484477470850120561173154420660358486834007615650098965852424046169698672857917077461497065061168683251802874750944394607497526041912601054846002831641508956918597261367118978518292136510926365960396686657939345449113008106576208502230441333384883406516715160329560505240983567538094913715300719344519633582778077122567023988470463323545561959124940534642554310694275004927517967678829247134710609119063218103733849241749676584021723782213106566755929956751609883801803908429630895210557846107918922027006851743814837175821179011871677587899622078904361570100590460075459384571032682030381047438276515349716983100872205534791309520414483071462456639619572928440293849349290684419762460525459574550193678601324508757580355213002007223602878950047227872102406070012096420351916218924400770117943368880665616308438055940150857419088056899270946963599941109555186747512116253695628143942417213737752965658000965137040002959073278896327712848257968956921538784002069746237548377205566446417286684286300661263398618972127897641896938210215482674528614853552378554158136609807561596850115170620122967033964884971137870724838149299229583543602108236954728880433837251710055754277543836229434260355620429844510011085565516646747013437156709292491418120996663167166663966392912163424372048310912076769446994702805128451452237162036540586892070607062826507503497866306565382288101585603471479562993781341672520725434391796167352012616572902240038382115242737003318749411784530374823421117850983480451711859470930677935239797634550426051342305697681138072814284201281130648734670112097938699374708252107897139857782876892565990295153173651688114941120841632448154033408280662601973037032216054511685187508700973317200454368620335627767366241702885113027800047513730154597379342748105804969219656144699220109568090886955280295872871495410696962076505568439526868463811943729471017734731232794758764335329053507739707291676491583068048128112583667100861445361132600690006258149001299010355536147043807992393584944576877119761579227462576040948346569361709904261700588506240734222573054491677329782950762671137260098146517339597399592362362867172021726395656457925343398842569430486770199271456694609911919429704399592300291126606333758476146751222767299661072801128939394954300484277264478038505949627504227685391232891152186363526266580008028021657592343045538647496805471517370789018381302368006457843054687786273423936533652479918187971871791428342189568936492037692361344615442165807593224136497868960640091497744630620163094795271631060117641553369178955746144822852267192080617154623235173077353673119646312578781585419117728768348796126056119569528174493627440001675170918903288248913202200250023247391598690283971674652848175378694873546964855419054697062050427630403867119567591872457297138130639885075241071905507175481626451000488108409447613279331372996252081754910682323213058905298394298257709515316158694748425078042247238774601559688344907958914350182801192440395111674362208137025919772041271052797560144415533687851784391295834631899687740083714367799801967795727555555247554340851393776610942904251818641318463836240637325255644882379338428324265760477232229986725597479035284906336599291461190874604413829532163063587580634566114061497021524574840413395184268972093584423084511982318938558239375345307008217564585003485193145905928702452044333125683561785455067181108555495324459432771423899946728873135201645001121693972084264954139582751005278949463883746913320063158379257657718766463135498001092780185377123963950671688494854184970395646393435312389479958976721910383316454736534361922489890014717755578257707537657767226409229361987895760022090684478707544310570441511695149070467339099719768261136604075806561520286666351788706202570169235512557473479769142618116122070246991109390943499218272596931212641800078117512418329371495894273881361813784886522708141235296443675393585568816615976460503247336852845951406210861154809951223188872160301458420836848158974489774253562264108294691797828999434835199546969345330410510911671328938979085158308747358648710104919964041604281810593441422838195205993701158119763007780057319554211312448604552050903904243644250843301965197752896218147459522322363088950531856552719297232413033003345587016730003722010663189978349512217837037635580642375775979195245953971524386561307421354625427694210203543414861866628722103623528602579115611295380334899076494316559760347580614792962610899460475235817179411599262759274512701612755867555682137488088628668927505923437771408521945389577901945941800590610873718706292357700572057909527591533278572641764348082441087101275310353995286137024057693673170877037483239990628631102881380380274469625997757500981410494978708786039620606471038498313374855110214444119497155859094022064969345062950703174507352831339866879547978552768408762595947738426223790555311764528583635781434539174524139460562690785112437057230433935536307177438331229779346655626736952679428369535606461810967830369799281663319215662899307188201653461241042668914070054727935300339700908431254320977719324084552345597546690325963434102295932381611236125583089372699113581240568635441126340300791275596199693815571827296869086552397645721152107244786401838087632563403495905812307725927208995919095165469487139611342513737350582693257161825926391197627676837471364791198497010921126625792917215962062142958763990949836962087924024177128551176825342572494577330014756718906150792466902280664484382322719420393634049149586655062108258507608610380014379796345299919942909349643283650123166164493598210560420798412694800569164387329683343109741689358703355384426808049337214883751916689564964614346461092150429824527455034009688415008866935300893141034455753127030063619002432009895707694964941843344804521419680042822981940609100096663933792491394107110902495241894014658301924914635386233804742977903759141448421065550980249238115060059913673025260743554108122531610677520255112471578158165965929265976574443489758040930120482697856224204991819969635615894810686684388476633839896097226137630579148603646593118761616182309116663854763077698945106529554008854154222404721183254367227173729268534044346669178148507238761122131121075899233344532969931873037129455016967663535851225194428911686719766009924858830489833873783952393032249189451097904649620475266902712548650713012456824335310348751297339183260611605694639597380947972985088497319351311041633510894269054226046066368391221287362506131059285847879154271908252563901837096728309758292926675189935514514608261511167679686251465856334985857119670613369931827454568233693698326494701532859030373966903098955087892635270420665479109008682730345225584000300866259180404466633009765576902432281363576194400494650988414310121471673734409862801807383477674520178557652501642284343114849678518864398283311610694830528790560725588565423627407486663960279289393976687545006244389748495835840257366550462851198203422339568115647460356491834239160254622249397560383915093252665074451631166650899217664637664386257125472385732402296390791865340424152322171965004243604951015721763584726044227706956270502268672416455381756211582427499080895939622100801657530430003400723168604939007382163924993499369749640928755839370043493888904425745758872610504325860572066261979219188209140525746300537395973182961854933944747004795491929396118781510500822770153006764584675363076014527013702030124208542225206974850835842234111920207669869155250104600966325888120791501216770342315415753644418068923772769216805788145915856515966135830053826790176550934631400598774477599709437290752404100238684694089997074425443112757792580061562077390350460521235865276647576758661402564275247146463416913674087366821490830963333415731274368131945753292700616883474063635159282512239279716281386051171271924575071325213738222815594708130391657325376811825701576680756829562079782691918533712420667635832779784104106738002405787590746571890529918936599301266495917423909674944419139649753962717470213623445851266553624366125415440013484732078466154653819751538760273890301761605948982265022728888714511033878254710710688179409637801557120945587197806312055006775965561406593002492926481790663956549884545097696478482413611112019537189410761831251037921677290237838012191869160419113375101764284425828870768452165219313461602629831123720832941698274764949691935523532790018310236433698921238290555651932593536532769356112160577886850267763190382263449895107435307237936647129303678708509378203307601787742622681877894836115399825578652695730702724487453915547300816084535743464034281173629514259706544413640479954442373907528131419583933691870646062535744676702828944556133056936441933826077213607875382376990318516449685524996821555172498480006750328062294890573005130037993696948592605127132068118883147772013362654897418251969396012885065230628352717403247893604889470287232233725101901972428495599610068124465077048000915972950087247164538074846674655813259373461409374541511173125436269127878231684457925106129053991259889755493275232281768459786684193695632144821882449500596102736272379628162947779641134476247686583592651787096235510371017458499900428363473692470372059516162555104438309235404271220727752889630868273990738587605830418561696247336080176197142833603624596314861930331899927787143239593500149873046398221001384298855993898783454101741496967748961999564248337152504069521368267320230190555290945572393332602858317805421815955904840566788318494411232705921182192000379990999236499730851814704439527716821872821129426345780387752973368073021610657046819904554039941329602734826709214388692826800408736077719000535841139162915836794048567566378454174253811869484462691215746354434781452354514047957737435450804807682675142016384134224280019165942947643121443858967460267212749738693930473791240276282100454606012399298209899359472570209164073726405197983198825593994635049991885315392329309581938813509819698713590871305712965629591141219566139800967524729490031582739613443901432821740150349053386006605626713129486195364062576805466995873920637114715721983430824609670235506879252395444134291602275265648864793565320616634861078915656198159167554100715326368878321756120314300716472698259755521450558363755872278428245582881517347843366642515612938371564518573229497618904529355594123868104700362844709962761811756179516025899605405889004673803872473684491883193064273543058391170771234857128656858393089316412993119451822265073800239149812309206875148635840084216805387806361302791362015144887713415724816238504791162351018642355131595048088594041023633257031930440155091538749953333712745624503018135663129523439707449022515621409780176823142659848586772583330426641259721645145893057071125330649494166668218726863628222547129922073375395438399979176237566044065260338553670932568632565874176202611920032235121838739111176727912274841765660586196540869972813531149265538588949960182711659965895692125865208421369198510670863297966691269418754210872605951448532273070037918110779232421381624967160124932218460579312476903036654672338102972406047926208704213339205952172238656937775961427358127141580680531528206156519743291415305655375227072814959939688427347921480117767416650576918145798188686148638589474597643808326026500404470324965722776799427784440662609600436031522093032977349747335484011365772778974539017037071965809373483340646023260436870805488057438254436620484404354616719391435120436559546882009273160191710934041903968648327940337616964475683083469113622180079310878274860294450160605327872273242981257656481428675030551376526142562268731848579275420511309450335054964403691179274270715078772794155151711549293123045617426813293984057480234126186428932807836972656616913358935372390433146217209531573463462841128706465656206365955731852993511656443087195542059109598146591460932295579698537638545298392920742983104666051156065698322219259502670326269506046303565808283212978768328429094875757194658823827662146853579180313255569311553072574234825816523787248052142153492668192013103836071358107099940759719080802976503229276167805156406330985734199472517137839314894713709905500011615693436655017718817866172131938976257231629166370823317589025064146333236326780019282427151506097763641147736015369997020119669736798784845964526136579841955310769116227080452281928567840479533537998389747045170861305640501107064417323772071881075109685559211012116772538660514412385073388990825303790706731147791113837507072962253021239248469319717467975266691472706193593967597497846090421785481659383336963602806147347083405006520312722846461148616170891727663526413902190139608875243877393307898249374180600119447236750694749542360001253727129827769786243435910888594976164970381762388383242567794431139100922803154050346904001182839671568548655555357444476293289224020011198253496807087554149217778776578256734997221150129731443259524765090497502945428290111938654871332539517063668109752514628557721937934873815312581242964417729771641653205204607007503409329861405754389166475048092996138465075837198838439694229900570955352885612643431555252414093330416816983708609285544712758537486999680249186742169684904278287797216742851090701118729914890643975189734100642345635963334719087858588809539024936838780367738470001738899243233324918143902746223185874866122881426747013424135814387842918382507260691711406885332455685664441770657208017983607024655457077148875496328843938727801681056426223134336711681895183669282528102754396659469087508417421843522724148185687915114340768762539049786897211017089410115464568962995216394509016572481112463723024510759227042734039775880974710317181135860732875571762776141024646650698854078526969882615311240384861870557943700658095324488852171449387477576293225611023446551824842719157251890816091866924222889034978798199997829324258257113376534904143872396966349053801941182052053831273544003701899177823696672869689239775036741338071720114072381056054789012745897917012220698703205878038518745673326556597817699951638726352879014357531247961131764690529338399766974849401195172666443841614012599237138420955085694873637001083953576767317243640635456828347408427550656378807890152145576780684571352361170926799193335544192479752993510114514137434057028290175658473442532999024468510984778554951543938166963549699407914792942904097938076802218100210675193133418507388567878621031484292234863925032967957777056224688727618650981545164698403772925902477183905047966804057635964807948393582547817107152929341261509414665076849657131684562546834821639785293792214637817716733140238274617645794223712766708047769079536116900544937833442414570351516753713114770921310710944987861808042097773026355921517832761746235322432210465717839727997534255753925229482496081750010615616833566540642715168313071578911320461156099351030657754351215400421036388549739110241297129697416615386781180492908037649020779207980142091522910425119822941227098202611164370236787519136852526404699918310828664958889087296862684139566987084730529183017259506559420002447114617298233049563866086338523290983748560395144484900211401116061878847279030231996819258214495744910704422186047548645846419947529498533371195528330281500655686288329135074785658534893867321872004548933500277724590452947491001933274256099537135416429342799618987781523195513944452566873794189569560902234802442754333915474344793231834708972259979879346825914536291453954773628749190482786971367532597912891241616182619210786490468880198363880773650887525882100153083122557794735668562138337353952316240369953179629152967716170342275717692418431905938001972166901120903001347628302410489215782157670664902716363424202110244160505222109202746355555436021502483535725885095266674323404476291955605011360219448776733133230359859421613177902108861929785815423945668211107392055529115896210995201815603819808824524778678138682339230889258357186232169843460647520810058389625910334775494449092920693069816726173285484344914898727069419492157953405277418422325605804125417012892368806167076817186642012721031850504769107187556972207103766342625312072014063995061151307673688632854000651180778022727635179505732341551816430150890507183432534605058218560313907846028995061137645972754007248055956214172542192460919467346736259151202391259970168163006334532909040295484533816758321527569301047610840602071139717839982096464255732775310402223161184342415426968860384323576545514828848058182011361594724747588240544273158372528129022728553729601538673264288105206093143603258533818798432815491067592506646485629410052604464787678643292108992392346903529994252205617811850839472340277566834972336181714886318657021196342988172237014198333135378598802954487845993163821897245345034253552425345118635371689144674435210104829754169625231722814556765688356263150172513790374644078472937769954476205074116852347705230469332922327731618620895249224231013570915362204672949134647967595458737632023300017382113511868492803365756028025780953985511003426958436141704213126933622542268242258268927517156305199599912798550563873285195924188227988164606107649358748655783135222590868454324188931809821737722986420175792042166733187504533525743068913791704564764870860365165799595665348199625433369084293727520208549488565334356352929656806014297565041938928284126087847265090606443284289828059297990312969758965498366066714469254718090222618689364492959696122933799815722506163928328127082889057120088386593064742773930363286549826294409195060375486368718891187401922731608493744822126441553700743755600325612222862380685071297982393714077086476832339832972379913373590099615797312105195946115073455888295455779794093465845601695147203358143283680613752824399602152643755449703139032487202758208727925916663981602099672647237863411541420475440785490500099631784609502993018791439475145855871094618004231094781659937301380772312073503521997746799200322557390696690348067984003880682152734467913451462507114348702710620443246807229989049083243965745641715762365171370973515456618393872672665188704134336315025394830707446515822827255049391173321508696947233797241776339485162504960235865776425683906665642396872132997719544618487981703348059910190080066037443103212839141967156927829603520060405737402727080832214255532371388429546477472719164330906602899659119279945138271464277608093721179199345925212896317671124046500674287011078916128661571998599577214922441957438393621501650995273611823990873469402086282853769998995352232083734759653083329718045407404382567207572317389908865363321215314662154332361044155871451347399524721937424196627231196649497271364447427302599105478258959375890129168947236892573914401749997067222580618647016854433161465702213758273524661329951813806499356478305622736294597334752014320959781534294871436267206174225860959325759154740618712645873715162809736994717924343001714144289504166779339202673442981352941025789633317871514277223492070869235005766728276708772287687715357204921593682597563805719988295525334392254966320486827087637589928330718876848382999673132904144967431698961236946166589631178509838916761554293315782490987318789299731631536317833292650353953830784034201947048575031487190227899067794992528883107198426889736140229774192643538568804906991483270501159630049420064013271768763013931282018160835485109993248581064239245227433081312640569255455888226174118843927500752406538323865723824149530666761715744486156719428890181054988864138034452175721299867529954122748573893368415538733286121490358202974495876530192516199463136798228033668692071439839427678900181971977824148863539509343059071567965870043518351082818653021587872622586901834393598294686777434375911171291596264065303275105017593495491664151163477675989246372958199782288290175237926088571521643292001820429814028496000816257100608269019319910366071048082569110225363078502221593412982915426084311566237694673763483104790590977543886056455277753874073488988783295222073010566305267179161145174501039905343271201422101840140968858676318181634122579447771952113033791982842892444340064584968826390206490794498517970750107206726394154896080692991408905006430088760773661351683949342134304394830841978359453360990498221601074925053101803477148690705936864924291710861166487092608249805980874958247018142333609165861791225784298957451508908321760613102479702909330894193555118944754608887072923601053889775945606607026573666660886580187894381954578747610122381368064861734574433556167730544533944507326583001601222265740618711572089833892563291972585398378024482098441945749582147873843411245510919320982344094268471139055814301367230792316039841254518654420413414547998599153663803857576505301423256522298675488694902526764775432991542580056902394279176453683872409351783115088025919343113462203449937089840131898311964848253713626606833406156900878641721211141975220325663940294559360125849979846705083868943832747231249789785526038017322861312155831071724844989320606904210984426108386837514506021586499038560681816754477384066812996745261043240337065545664390077418509010468661927572192352358126988722310933047042052665852892797702690642146275053657500465231398406557416993854201633591276120531324032803705124292055060386894777925897048814186272599334014185904979972487431538409390568726668937377642086482398230831326675366941769322826889815317219422359617095924798016398731322012441308869559364574239541502687939976905813199263350322018534655368266276946097224279341283302731412897527708476898741406505009493851671707035005627459247838368186592739765400543868728698193675153882858469483263680232456848518708459050813110070977469477766732806581108330865298799729191114809259303118043097851344339213931083449196961506674922991229406010648533209936757025052669236605224422786284968517146822122194867811020409432874870327498931771704499984131192804537454019160070757529007185977224959529042286964062051895114713516258757783370899308938750340690048895057369257424132917594085381364918985870427375681510942743948314675747806361446955297757066321141967942636461195844937574625009476372057906934044933568202224570933536946930086550270166844483631860815215055686312775291561070004238750613865617699504791002597924265290516956331869781600241861453397099268690677826883134372954779905755864384217690023979115953310892853421107864022370208301781439963501079048902793334043419260924293536132714533241760003305434457316933480370828960410595741984516067083286491923556860403906535578019362599352489964246019130204290673502924382509322920438885777382718679920813354169231379544461353362169673684329623136329106796600994386690848141494768664359633479768405419205957267815766144653885275068652641139140873849575733440502423132713905909317424007068428134651649206283530122873321923376889150617408798691580311848814822069006240532290509515412269573696989368554260482455036779261802637635756315332532179836091889840151803776204351195612871625108248182094108208115201977181098596553340518285208835172182990270426508500567984809212519710087739673988608559999768605981371962698761568688044314828982720402879517405777824008350911936227182519311989697905026029272891100160290339845012084461019348431606333843853106150563954274735469874807549776120741946408081122898974050611884145826347682026609780631295627039548073786816317518340527457042845143814230615443605915440030337081940629421295625690700861555441270073583337107592137999969354856084180529324740666988454929578324878291651417708591696119504864389488928481726310749345144579629747592999914167559808503634431950678219819604486001090594436667452590019130998451838655365691391419034895150395057676295535882832571552145580245493344159008200656195328599646955155467888297738506295319258539232122383171795119924327279465963214687084699082778970827452305360865260506082371440050119777594698594321985326138412592162595327877962063757885399066889919721682325816573689224584016311447676350547798430414902765032329827914580459167583595066580739341195582188158876294825473913271865697172383237123531607668650589921544152475392377879668580103303161893554494116858358579662897958070083993791855968244190610066396411734885662464941834870275627270806995788597282097498142950073407661854787730580269964511633673248068081135310642949529633444850012793437990595004463696641619500777184686286999245378076782857932356040397826029429480451975812000253337307792840567623605452941772230698392781677146329202616972500116735922691964004009565452609944576960583051415995063940158121233451474387500880650454384969650706694379912502096945738932577240774475292149160078834232667772130570793918217780760248521890979601766496953699794909894823851640454658022191123357427535996267606938589779865704224362153801203472175853573569491870755085134626654756076179027600330051860722804225031192432765507350545782722562262370917676790482614827212794812225492486336289972874203066560867004493170864542868283923174297294040126957142056895058713154130322075572783967116105049678212152712073037392041710178079352124089242373934097318282160855717517390545939881240479389696129760915159216277983653012067387797578447213980171648569737446549437622894992834896221492645968806804799289518578194931342052250256533930437234875732573760643705271240531302827780437993931390228835788798345306037414180711766732242241000252031851461799944660309592164266678558032689665275240356366234486389059101392031348799229727453243792629918373343357266213676736881824476995948652372047572896740882636891354203870740635654303992428947794192852133856891430141785589253557322672850013595631167379510097773516193535000803563707186035781960708620672613919183561780031231800811443705832971668464186578424288682173021560174180186255814799578652049516814038739114259352024535440759879297808475459527664092225541643635445398298653607630158168004524657653585221604204683592944564858162974400807751431257910234876463982265421544180985800972155033635089760866367752237615398685276032484275701074519967584684185782323702486237154696752016996485356519380636058516821451254410284384189384724117151314593087653475002234620632036529004963556217972488283078224159396374453565804308252104441676692613441281703878709097934947958392810730597794542206817890600727525834191656041318599396739181782807591939177780430563795741152227295906678366602095564759700838956262264849603300014011962596275461901556153238104724348368496841010110432974301115624845644723198351704794553836936997218096932417747924328111102236149045289646083448544225519019871651699485512198775948401177107277949423865987601353684413170196968250721642392356026392399922288473907078628535758724879728945786310848816315051802239263810037996245900936384407358789298444121687170317223490118772276356899029723008048125528534696923501665744239074477375076366719807323342211696664117743150835001978071261480919853600777765328399428222238605137345699543287503382384063596285846111214543593230449309374816729638194355323263528096751057471992793785855865145180707365473887410341286014904380657213409193612899553914713582888329967889419630169631532403805201256120028263111483951848719894854958620765091923129743618204570333769189985961889001004578171111412628789539303633092428436002489456819993963852272153977044799300794390554977877671477941094082118532004906697801264572514785386212885949227716553860943983012191596138729303213582212551433533098288904757031539778103122282057837331394704065196313394293458417754684563718669593706265527476991804980308248979822581638415966943673960646073062893975686900687092906744635749518357979209310800798607880091117113479960345422381383512806013609115611719401425600405386979471519177249967663861558287559525343350324148190212355197605909633149762325868866816248786731332899835663806504162964230365355854415088161339030616486645015997663354799014249908225772632661426599905441034883703071336101873751414170264684508585119928737559847509372954799702792645727810685823038999370880480932209128323360351930762169408588386879856611174644792047218116044283155590411504565852208360099479822114649692830501307127939721049321728190111285405027128757255527317210022279727059722882540840018482841598876155139620240992630408053822059335820213019121270950390420593552404179478744905286278306034505806184276770943940193513878631937701361751900443428262014556396149088636980775569924196908664424727616534180826399088378749502827354548135624976319559741035389300265564073469539582665565522631382607091641027809530971332414635871986812227451051508371346735534962289835730711257726629282112643552028872624568385352952538167387059736019866360646629477185055796504743357930317000734334428496951690352225278529782973392744703776188362107334393311670100956132739500779896163979602053983106939991972240633102455843148591865784008113050263662158831083825823896675130755207367929308584924966633606126943846665225643266272054332203743275654297060413134221238519417180296405765196642071716442306309119917964008172334375076868030220498284926447444233279557680043883756562505728929106768515490112839910856063417518173578741219110294258865618313502917812664299168141537282955262487551430581929679416255188285702024007267838930725761080084594638271934658779346839728652896460061886357417026010426532691754066752945840619551617225155706632534452573036659717719478083798915338730247364462594347017336066096888217849177835709481103046389288197344885239221497437197008104961025962479415285941063326132960170643301167596704479493582829459107999690135396826653819020689639329932381670087189838607729478211894808149592218636338426434119948677484993399425678205688563906698640314944961826207239200973719322373276791871653793212980707252795497186481128466100738577341212275275663898952903212002747803306471291032046014843623147874962802392019878369117663659565135100614279415537145036955986408826873258534210783089718994110941975679645948968052651192851912600902662519244361989341000815917868405201841917094461934751205167818057556842365629875723125214552578685208670569350061070861377550615786117016465843234629864054816722851719125679505118426029551559116987617889051417199531609205439636141550143027478235127209939929064196197497583811580563045928810910452131621254308082496168644144605640734696128584438656539530786191807456178227088461162191323862016262176888674690328745766872150542832584029412906870939390527906420286603634398012856861151469585124184010538539458118934244184794873514085387512834974409184331672401097567918714057922966113696310937394302768640493405156692464305423292187745039530683707810286705284125266123834004882969946184514102091097418367344029192179149554579685004184621169639870109622398334949529774231235038678406739019135685453764521036362045803053428288137626622834853857826556014231085504065574582271663520326657963144394687642428211101190610151363174813623812761765708635374886501674468613655011628635493417897611722017336230300777705452622624268567627152623324227520354056768746365647473413503238479821254490487397036523451735492830049380657237562094468807197282732316039359846675377685290473395681762262603199423448365795635683099924804469724544064820050953872019109556500542540723301919270171694880629028898938902371568304115103460476105900594623501755378120021552477384835167106948500965123109567157018840175915363901622558347721770726891676260426459704091238936778112042361868731598216435297278434691840505243725970854519804955331844657592532966655019418453769164150708504132014857301874856189928286054944530778106278822773657115705797653102357033221545115817759418237022789352415968491238354026994902436586911162594964616364641654989264570778773340169300489348494272828674054411619213259724873894052526313691674638049763067460221169572202675635002480850818071778607543091530540394625465762010340989296147902252924533228683405226988240401087548831665072054669385378656639529737653648923861277523776874021251461800430597083820671193376326093930198812377851756091966965772101557122531674335303897707942748116160090471265930824455018070984464043878913776703794912578657778667222141025591176863567010638897317026524354285119169127129874208447333009728118094482119711814644709986282731606775768057808087892022101298152754385069324513072116751457858107634568589457203644407358013938334127860328667837542901817999556336860219035299674640959914866012747636359995286124424463512714849545494929047904680003388977832426298424007773053769849015188717084003945031004640786773673617621808628446016688230970527307470366353828882614393395528837917028313294308896616311457170660916790997474362606203587014124014794748683403356640434356740442370849334051827818216779549757756614524507374156879189815054622143020060583914341587094149884022887394356905413589624619758138925082324544165062662814662657690106508305539222018691042593045490449870425345396649422075506047769612002330781167176777832241057913041091289849096476335039744671760300265921777781769051038008733816232484316195135222934598117546357960960532709136426500716980979801548405018659602195892101061189078514937316786214958295714131327450640632145230232876262467141559714971115712009618884758636011105562132177764759439629063490092808928151153517308080707905905367587459237184946120581808457262415232592202190989616312785222458811750730861386448835670774185215661611190329593706644287322535211196455754172818363469220508317105171313501561333247375858379375159576744985192039153091943860543054836662334756420527080228253548638769667716079821552587208701371022687235459947081900226681345281966068949961561248449364739751040950271793653877558697273941928136998586968713119955754010941236445448815264273206710552879945608330417462628123087122555281048040184465037769721300489870639076888201174766364149157033343861774064762723367666674853500262296461527619411532928766310128525220363411517034112886915126765421215238857461956610937850430749027958994916169482783017072407659949488363482350022454508065915503140690949539950141174557369509796404831210609629407780679425732125377530270238714855273779133100793679927758887477966942913854255539263260977326395011709853308221227649659060526209540399065473641820768575982847956733452643497648017059967874613464036860723935137856677815660438950242594820345004969153339644723515902539576485627847721890016344452844798800110214581365076264923444503622828708350608007533564054116530924171887363228277617262272392329142358741315569972260835223550328430036154616333638801351053460492241383987672325909280735824757494466511994584827107136274809725749855101939857731559553241698251520710990494551974576166303040523994370682633825425376919210569575860899664702434367637601487669818951987525065470240999537736117765528974830705018142167988404932507835299185236139424889079761449134152897423358055819948908369642619059916589112876991235020795749799056142662072585417839943107637384575351910146809761251552713873091022462424225731369118780697835372853066108393887176787393135687996168352538846524825476421005797464661356947710433685688809901467819990182648360429583288602595836630843417030690225397656230013337696552280971057195168132520304137269567369279253907192155873100874247059380578655798205770804194726706708311848805265349722800481456624946845993310015742389675732134986711642545306213833380442157798123090925008988620074113683785963253587117680816886082327146922199914856528542129137961347458433541793181010666362362378808125055381174072100541746988338144779272764185816479133178960060276663636484814036251380505959067969972946150443563817450139191811137882948150686123994152449052555259503791879025978513900626504365580810850473375810265543625320409509127390435842184797545357172136203392686575960004123585864213452333619653125195943778472267628073091585640762785973358437060287403739970643634628653202600204226214792457147383890058016267650520371245497471912356794415559888744436655660429864136697218686318620172729203343911705644597760313015049503983604610141124556388640019507747296556969508018222812766919308413395444966807248343907937261275227005904591130821966626037858175587213699999749769902121585392141420164815193751422912713830053480630432731071175369108050039729123063517835048231350164855795281574127663760654019508880494706834518302548436706480224095275702107200689371129711696665546483676250454733993679834699696458211822800477951767805025113795761485087838268369255019577864578096316492837633880642822711101115587669840250960195966354816731185924016206288233058396187722682807434362176071529305169557263210003132385776843951719071999488737511058008750194601302190777429592655669860004121240447417185365057308470668548674286173904079167135386551652686551422050615625635856551160498297527608999451721137600778579919351351655228025451830433567011767840743679997696313971257336207284809079442158368471070182523823673151753831555120472015304913999910274379113951808365885862814908638743823561385042256242058481460473940714301881051747568555525683367402020847466031589410664305755529905646404113659970346141474540619953404892991237543526618376690603405350762848651373762785435672467475960314747775545254596539195952374165609558786056883003110013102322983121269257316857547836890113128850970296921666577893666104435304902188497042986865395225340981394430045952685709525086488903784788628873661396677588516905057803733699888763212553509567430268882068952883430925552666470879666798689095154992168673214140257788677182448363431424985943405688506746098157577134743461788064424632072958754327633385561372894345258892981676930729719150622556018853973118418533027051223666132017589173418416570979917488496645033834312444077093858856893572396565840134639358673558091791420524744020667766928756024363060102282414492823859958739463997921789865203397152202593418833098943588608295331507439851928139443067426428589526441400319406099887089906941611562067595885359650876319231083305939817025224069695760566895110232612064698365159540447604452331294171224716389011997929872144163780219582261450563202305818649258109963370027092668493366652266504989949912620776410452611446294040886456841346312466069976321301874959228104476539435747734207003740680425662012821138046448536022153627791854675360530895399001585727041687785689491710473368552804901947700232544222937704632112065085921061280665234018327098787358846721754859141516191905716259016067863186321896511764024167820254444591672240753475965269190651733646023782966024118404083465037815679832933131108639783469925391453482315279418394068417950750052236566792289665683691304658642358924700563144109897711069775083375841799588632448305110817395057258733460462122453044048278213368886795552614232917900236267593921190162160655511699305038812436252950364093840913809721818909474073963390109261930009858801814824770422557256084979215826500523981895526478989282399440481184268307531858828110750749623558490038286257638475398101675654922096504120740233524975537132149802447819012350577573162893365700182482398011998111870021612226526766646621455169343247061108196691132451826148431930075736380527064843396839885951299463510401100238084649969120232661753556107592810106299046322185120982909660365937389589765502135921821011746198993188775642743971773285743034728204020151631008906788181535961835409138772531464544987452268987637611286005597340822110415564743811313447028663090287406949955953875761361621357670081353197681436729916660384063543582312921502744773045007435132314278950152806627576513491870425714458939082157754390982616605890077061104127031021662448200336154398273234697018506305537483331024164473426392643058019647494041919279833387114746472787437961717366900914110303525272277011817682283478092673005184062207755337017742960214526276045123945081574185777445616724674117777424876824245500382739667160870712212458608475523556993397913399070323881732099165740456958013541828797673156320029182202946078681083067914001352307322691332570865960454060272439704541091408056678859977947596203540974412675746786159214912680649320122596317472508881527672240577438097534192550041193709320108109352270537407914885881584768491625702992796531494250048635924290434565098608561374561768106999535541008876509159765129879547345017988179498531777682081033848296563921604025184473349848795863206989785525372448202517901045664699639273439544047168932632101058770566617849781073143344351887791486298848267454072560648155263853989004227765796328135877556689094030302264406496174459322769508672284854980021379162125766310335591465697568969421274883083407408355291207208993106684972071724135816618675486315204898908699490707424382802604082652443722634599832310182271840936845032046815065789686700810053116074977844059816899759692083269863104866754663078897845145786986564108314573542114635064866113028560029136415231984145541023884480164301059699070673800295970440519917568996107852576227655507683504717043669541300415146766046680980548994696084614718815535079540378109570236472371582230924757608701602976456183114140486782502265850648407105609587405985703473114345074913732958039081192891765359954409576815124281505736165393122380841267766088508340570580869918046649641769992208310223433343335638964640002613239995568850292662910884521071763971076480537703385015169702988269082266616927410576514193981275893567856719479089128292216699738944292848421190260617687785868807858252474705028403768503567468834689213941887254523261782909949869408579949370259660439719942655798353545984992308899402055439950734960774314818226782015514996424826699877651738305195831874238518174063341381551899592512811293640636206033267955252909074194140035619883247496934400151057753821184517655230180745611325572979070611678957889641473627433950102826119724457926924611420644386560366324592624160831025928815318256241217829242246681008662912524548885099725106796847434703047741721737657649223789823572212666910984427367418926607322403432140192982990921287483306185634222682688408376362604110876950811290337821406145406177675189182499135598208589038280037005869465184053383573695010264181370499138915546852910948241490351931913765028993677384926747473524355687098827950738038192245351880347170122498883581528512123959537857908577659096289002276337298211824913743462709258981641709034181765947302015791011591198638813799654826501808558486642193611777644141113520764050870961290072010613443127560191379929987267667471680169370538050427694962443415048151605251143688456207649224162369616625619561126391467601470960498234935311043116854183352014276617245261878353580276376006090793937386499664075569452949481155487695513429691066784297702879810820057216877862826819559313556752197305712656737991671322648708169645274232120192790858684326285201764139199650546925104797521387451249620579967772666493740196124104019224793816941587765922876136201709223171353867206290612287624608730265818767708970221181051249767039788390071079654472848468120177982355668974355359968707765648942462892578615526405193324423756430748238024286166296434379033014936901613473423693748392259329162790920356097531243483991558487106112311838577254664280241971231655553298351661981897438075737472103240351882311669039608523587250355605225704472813811840482674927513041013923534193175069345630946501928749609568146215414704001689742360769156183642713597295504600524376152016257003573568487096540229793504687721840860063895818331235475118565527873781150663812835880310508758790613670976535554042470189501968716004267762179837544939891444626086535755038275677157158597740924349396074338246869138141998172120737201535546391054401587542707746144681230910274564680519397471093364234278173098535438669060534144757916568301237719907071311697391434691019004709638016660981877351385417241513345979844561780115752714668854854824497267032372518592311115549239727598711959432463246140463902149050003565296471340970060629079066042832932983226612617307199707814144284756007107675997836553285912042255854735140736029089177150322227350478135605543653141548431909904695578925078670352717987365724269335666325317570952565793473747820363958683077512397209791680386047008634906798242061882327286782086140715753639664498293064968746875458241247113516855745708803978116171518879793674713515317886457739891412598171518463065059396413208774034438842751532445147098253844386599067817097930101084909629471876706351599078088233826975477784133207788766925545231132713954590698698204968243034858867785305859775880136773973202269759891322461756578201638023558425926613039719635495819591489152872805170571802928108675951895610022931657939415496176125956242188526322639251851732747004797364868646880791094108669698332438872743316672234626199867882473714196108966882012524950181442972681950004283937102970855836302383500010913262164092320425670847004509171687822676167539256477436263025655243116790304998965909466616745813525530344862182164204393660814909719236833037045867727794820502901432877620089231153097535495121149460953187957534168127827879966918142966898017381756650736043205656549449386230797642871044754379871110507105328203318025932608125795744745773656630576313481669444120740956804768594374305406916111141342514771754746801766004846590433942678245134679545176180931122275587194428675085007804841346220814632928556561474003469239109776798880124717164759633552109804577115054063431041358919801137495678228386835735804941079421951081904230884657205445283024495593006274344575701580643571150584157304598353214184788034745181542068649411784760120961299659697635931845462679879114782874989920956835042419332276049902015647797185191340026131024312478737585591423697464474482699323782101803054531786502485858611594176125538047376793775436556837275681912591568951532127644636044762724974257377619813806325647005754614975320103734834734500244869320859552309315517242536960474996580610286196075443425046216175701927703329323223765010406389995104460749728713833210683780889347188664919901663194851476368854053295673971971616387527622019624473866050879066530022526742297035079271459448522430503764469375609283302882954039947644242771507625904152404947584501003673696921512610078780094226459824663986339284672996511752907921856739311907166419882602078252877992810409757006153128017433985192836824838319102468265812386087236385396057303433013889088837997792090527053957782845206363452978271491688600350436936649204778516586322830192888162410959587923854819723150297744592172263857490878489937165620701308573445180964283041114320753758877557279508791928617066192102024436669052357429116976938323531615138395265721074909826525397948462688813856802815456774431856116389846949500826485955766285267492029482423550269912304918630828630248629544682347962857084015725350819903779455583335106515748328268468897681924617199722333070237513432864522737791928633648861455760533332017477737314160115798590559784970723430854096098496191588419672122939933808592994420798131745580911209522752531301435072745031415912126978945107048422815824804997940860293794344129668672992646564199630567713170394676782735361333908314971908501989447084837925805815120590631754024350773396639165260234279607963669111761406763212096460795741223451127942902413571191069572303748658750739621474425957096719844535838775694364952630872564688026517489693097080975726278629990427454838365990360912258524945776619000373181288269780521317883372619702181910977905588237478500023287267551276863698398447783985199288636031785750753303594358364036623224964797231856333370278693408834430741900577865777918767845125393149218286667844576753691262288802621251371441389029463198624179933152279159416409067409362806334557337207504494375746596947158339974698393739540583874120933897105556899809815847064662780913969683934566880452818176700991380419149708807075553770468985998562603632602133527874213624764828954706375716872804999577685703031357594941249147191671073330529553819954879060858126631938246370893437239979225235433704486186932593566788778355460352858427320839645828586607313232549724209773239710661734228596724443557907987849774861052728179606115352773592772231739250672230064836906526508964636832726045277678766524369300583699379872229196777504066746494099485775503757494609950535083851830978318668308108307450342716848774032798533549373867168978611029479929532919971643652975582776290910727397751279979293584004700755954395408350516290266526659856334831839489690862776596695138728291016074360678348127841415922216486598209030548502789961486391276412215759743426124606987453044742105768007739783968741297319682165436328179679874233625383032687993754909967551480400043357151105762542625591897631480387757871720457563123346955594613639294497232641749694695811449995994568435209516946379223461721510276988987116692303603030485682609825805271097956094597289434119820981005212967767677013719505694483494858136382476715007731569380430311451347640133980701317358613132335438468510833866450263372574342499291657005473576790471786284695206317288032683762161822190658909955894306197870559069895141266673301040703828378054539295032103320086023410449109215307767097776073277724600669101935870568102710979985973207256042713419420295824804140299567212479665300862938598146684192107132882166439126426626292009921236689907466699381366278741709509576811178881166329911670656884533071417723285336563089757056271932081607075668365652890247827460573816187873286074381432328534689858506142337207016296172544743992465238269764479470594830189669289964477007245224140500392942188262630379729813439899911151513739180708834497675592916625694620712178981151681157086113420418210556848029383714017196990458677600010180832489666891630785378350835154426574614257046958896085751234138271535350511755233225604879238811121998304104916962706382072565996726632581230491048099641191493639966888069054751517767570651957249383772271000524937453373943335683651367231458009375867886541823631131155445803464118516924039371767867188395244349304891884783102444814914373191009762848560769171607880205332291080162344112528191370754524124478661806861256651446116418643634095228986182132097668204029378123341909105288545996415869731952515311590367778089359823163255941883895862916773765976089029163751458223805521846492955943624240693854271596450775998949582608792456709466835899694007450829719456831122343430864076859976200269006216283482945553409857709154420416699813088182913082158173976222185689544079131222974749053252162845054478036825613961452116802454613231983766240620944655351943302888869848074860314216185570814465724048017792665071010671951889029573694756612258286119991156704989368293233456563330965105121279335194295650160429030438435521739232294902202068862761406992694121975258947009151175343740993457983814555690335588216343390490125454410775927667356385437562701931591714810219195612099634922737213613674837119706714712749046958301757416806275561187413077263713066076584675663468505118307086722762833584578034430167684755883467180844195643606844120129296897797384625720766703618016620301436204982732140473172619078355461413022533977857194092420417820405274753920129129965512825474779986021035566885086310093415245261334052358355612251333825971635384870939518977913570734270522516644345818604164925751947106844023189575875412663011135199790709585495315340460178782700542844606365174695637026864178204417159878814773515874480484260919025054086338372985980355670386359328715493920761201570269085105788189730804536671580542278181859257759263966341527809766921025573762542950102098897192207025133321187180767469086056924838095065758978724081652169082847321480230905842137872763480191016946406291797933422198874784799516247572936375985325153095110419388369197816181838475852913082779179932205219918168724171593816131000121432950099646480192734232592831495830955508224449682818556497698147713907962558684396968911236588664678893231819123289763539664848010121868076111433513778021979872925337439988758800299170628088515257051888477540210685190037108388083858566888933318803225068643235194630196010137924026133218050019181453545445227323505656493258559732194339988862485768144180537985146981965114289021823301956292342945073526774931105317605638575227398519723938883232506489794256073963626938535288652658945554295392936588524105910475863996998094079182251230769904883723961540891181685160729992111066217366681722438336305970692001242696141822180286585521211141292373487111505220974286944026461257345297803724069094957538009804468469921690440452806631335233473791970944663289724923182134471505160373237236081064682326516745686367297829701152840992851275862323623731439775411207553315945295150192420271856474437665177881547825474552503755468842321394564105728957580701340091778658903913748809057705943332409293339868032401853382563764451427711053884170269162329653415511454122084508389679128743025081351973156523034594807403692234273013185652711105958629271972222538014900568034814374359147860073334088550916099710674789697679105923454617467963317599165506283007780173024345531027754419967872105658677820817285590852257551221319629032411627618531079910779044643319604523693728802011584334149430315877985265674417992459357638657563050450322067607099923800636405573340218193812606711165461186729392065862087174526030792921854965820011033485977097812333636080133277062453354349103929693336419718098253915190049909027488398788087972073466749265057783105943940554953792723745926779549444443429911081000922733840772651045601452219519231430608538443989902626465713073649720133154239691863419105297049855869292683176496631499906083135181152854533169658880209382972398943690388847412160522830886129247994004233630368334785958500737719028228092837453838557147873064246323670755834840587515217153827055998625119393406238337698593832105253065595946971473744825214030183895240381793796559050444955516917261485780732762998928129293711277010505518629525773637852231453254374918067358375585616930799463414535640734842436602595605170588616757627298424016075312270883405489317320890157457236920810271219158910369608705962390795278653823359355116021936075883726341899105284518488889731660269121897168787968721035409346028194141780617981582516007688469514381440565404722857152171192546604652992626752346779214101443110947884147186862822039228367109361182229558855372779787563674507953051817591902719330479716909807625494391183058636939406496362848445938442581600671087942629719875052637756725826410743057729865420333402676694826412415427567508420100287129348092694545852720930225665538660583899165906091483153455733791375072976713569444747211369676224516300962360573751947757459325585713498087408310339195772853841585015711109440407998525800488462195567215770940880000178866851003807798924505858338784032017806001222614066886445553344078388696428563250683404575104511940472082892854952690170884080168869172042082182181566076083763828331671166910214263136967873854690700401456335662202305894281553566920082550666488742687747840713604991386809713508638666846774478204465688367893419089945363015828171540229707119851141474048221993724393295373433039629753412069370638178927231122028915143651306081018640145930877252486402207490558884976199018473093490056850937565370449129916050938457776379265395652043973467976238183702764102533550760208952254209323333139673550672511840382253779250953031936411351634558813867351249961840991030159028453420503075244910603908228051459803268751148986984233978667400258622551243322758264213665357286476944969531779315069959704772573379398752845677396881419642050098558271665722721043435741503746073271250879856142778931350718389683717177805088759552379993616051058709819499257464980953097822426571043751296159489921099304694577480239834927518408563994234288294305369989578140668879870794302151079570541668950946982234781230599356754433599417573384797854435551461248621038736646389316133710321463593911466966891345116707276575759575225260368815726439692089048661162110562956462662209810488020516865586381862099923140486887620734158753990843514324610416878773673911497764905700509741939395937477325596310835880818529569609383477065975048927065638629280127579732658840556834591237827506157841254488101503155263633987031824199138007988109475048973154541433981320210630470520435453833787939142966437827394963081595570074863109616066757203768722443162966386405413153731250795260775409164813260611131968105454026598631006686443219698362867311445590062399266163273629615941976446261087707636643840332444797739544803490413364434987990463082903037267853133009611499017927329724474328510917949509829241706846402849253014944903780849824554337490004274972457165900396196743770754737087554720728691733112003491301734116781400283667967758429670407252928205816487072822000505563297350954433043495132844021078785880820841818815058160425193082356253953061315446450937769858328828811742119980757338735711275761834319110770236500935047499249491351862711408834467146709042250819289086999601300144820998542800323538509696827349625223547821655705753403800798517908197934292379802610068477365049960201553361403291317916153877143407063844788981915014474418025034852772224936320981223637989018192310244407585149007258264644406990152245447038650532496919839946858227350245588452102847641816107206562545113408576053761718276395980710645982885494542969548021370856885250236773594707525113443133646935051059752912625995066907230349531466841824857183413407772410460139759001938020681812124484252544229464234726795631014173368512966398864460966544719025015341256075733600654437849402215107080503139906435732400241767505443959012012960730497071563232941684522080551824123898957107828513459481329483455569024981141140025764637855399489174441008064754591446707924959438786426582552115424897100493718143609643885399599485319485880904947819066449508604230288003872110452842856698736866952811979607100377846924139062402396120625263260328227793593464397531767198622248566918057242574820194615103038566907120045672376187194834476111591599881599820913481418051922141236947279785086858223114952887662395535991232588081719332482968808493768197765006953502677123802617221686764153114192934111671393635073992318676135249767704812272092923469418222557102018189872201919748855231704304511024443608447926333948321274695165418462760811309481991341361421119079381545904398189592940252449220117088085711129046202876329558330899735180439618233940342513978266769261239034399238468721721927036009828177386164985141557484862546732222665354218284126175082149575383521641555654281618238382592490447740071169792097076911217317613189288675660945697427121725562481511939051098023960868987339541923346349103237426078298087515263516540933282910692297738716602060933382887134046806337930057714330738344166958942975710816293683213893009473813323301355761258833639298169245759930799663473435079098102148541934799312719212343917293155088211189726060834236900304279006084448663412311997756898322199965499029664590687927929092436765104663268376324397640111905285577693409613835811977363729123858138891068368209277628018677543378766714353475438925969097436975724684527230445072904593681683562806609848259462087596210535562474004113267362836884883456300643543255254670093501493467881132579279303045312510604636185759994106834715661357566768138706548631346768629510407799462155932608062743886787379775088928932802725743403036688850057611045704507030304831507991981337546333812630165627208211825265700469370661232551497773574799648793666468841981987072151136668095442841697503414535021739236772669302964632042741649356241152783250992445187480304654010981791168861522167423006452772070483756908035199040526516607035721454549645771990915315031602144794515103774071322763095120744131784952588121846906593806203968398691126538154994474635198715763238935777081735846012456077267070336009019357092756527387804911427727828121238576086698812252651219370718767852541081004719934658769165661280131004078250845410582646735672099551024882118077874126961109196788652109087743446542580188149793689078686764859876995470502906207857114957861452954476466351957865126687714097073747640345390940261253547037261423813694973312521830618228723663620708533699925066383032119408990043430411129108910142818487475906929900858211792107049545622660408957197273571232939628222707706718810783603056474473914007530509461790068610674551732371852219211488990310414646270042323346550675915989163436966123930290448930891110662461155200802196362209457878749406057558731306438530537802622845025342752549027753210629817303029916980971636951074560422594069939479731582542898324559915993402426680026246971042458491723542809739016074661250791894722032569448527997890783460901740946785745808838181113410349027598151606820986419497847819818451457508638727010285977420713130937016134271865659689603307174042272182730959030901673345211145756682288996779340089192161612441007401241930594829362712602020367428005141066505997873084880132837159437808136844800252262826617756906472373881631658277841053721363773227214039677862131154259168580438801902960027718412193833094116665875957781495845707156893018667646408692598548181231705855852203042651552426934266982932095945137177507285616210312768072549577371058528691607956105847973187433445172184308848435055766444884229715214520885601056993729341911289836827231868451282944791295605470922123925322696051901609159106880828000009188263704804412603865102678394418032519870221772054032438499635631820723366117446001445917552406802041139437789330564942841633890849615469866999564655454316101553858941716980330917215150666823656591793571437818774354760237663611302839914516528794019931581369085866418570666130842723000603919879841052977403538515848491021996707645118676211113666545646270017385478817600647562798428600989504654634436254849479030848272316541458768876902814972338927641594130871654418135443061800235060394328048616526893156102018049333743199421092514009204523122190971298659630689063726296217513913111781106041991177281975698277486451693298088593255208923775468031227751519984498692047341401081887718977174661940856033593434414035848487245591733408293611257133002326489034662340821087075853259823390135090391883190320229871456028157607214975732047545930342625944426155115626629855877778149731484347044659892222971382281043812525620643911906878190850605967350488465543516054613119828961633828709406266978537970572443732329138684602500167375175808099457559120757681140208090092775770821021833068466500925330465186317726509956123685595623274497640941911944056118042979764366298644459624131333671861704410893775591454932532404362774005053357396006456475070394204718610894946921077802222397422599919872664891706457501496030446113765060912108426718978985181656862398199648646444186871196586241309830678125384870720669702682176805663614068966240017349768230045852939715909917152082239567850630519529181537814687387019239544064764646305021682580664367638486887661130574317731482865919632628837508173626592653594289238632323668928390404525820363593565872280173597689325074435461687543960878381521818007078015589351119278878119106578050951285923109728959368638551115182765108017855247189298089046910613704060362690524849187857826069105750697293821299498907422134977784620369691735034819061783569700122629700442985997193977803806506326393239250209033387565487155106337407468419086469396414530408506962904066053588237261060713172774349123548428273867723382144435449664737336226215490937233039178149166522657886503143736566222391727812975092657821391490811361677271796188972004082695551780420534785389556839563868785400341625824220184938918076746380246039710404923709124886260009990260196126104603707201758371103349691986937373749219582708572071635692853010467487660364098484960736510613764673042708501079301233384042136105673275345778177916763714242027526035122576259362859297205060067783650349313409016260455455269087100029864792148438850509626679747448074673948152455938818082019150241912940796786543324820429985855687906843442139019504620176777213122586805105534012586958443486751626638020268826524859401784200582508149918571134245385014052367988930524151902461761400705067907554898346448598849743300670097274787876010650595904676059936425194813973781547262377037006222173754300639251443917509724941830779297525322780329392759316107067878772675491492214792889278394301940962526277827820597926359070476399201756087265676340723830840689165159364501122191567546054516944861130246859695483308653354382251732105681445706986913814930370910726491653159115704002040222029303261489471749262386541434222433753985916431675671885035735510078748713276889706769023434620195048245632586747398267369184378280903341602799692285645809480863210262493215296036248644256396514222846853776748913291796272526181642635989128591659624234692988803168449714296044309639871057079520469724442024537084503659210823548840854326663331774772460108218858041142320230398725724345670107267363136160701180888879474460962511270462923220001456667424277778115664435502339990900171947415946215827331899657264682447334196374231176544981320620659160978226460203008364218761322119356295469153704059560120602571330378259913633402725087641632528153730362296320084502896313356711415255516989841307560661010412408968328949591275998049131974156545495501053609992436417141095631875718113563675618978009408198998910459453266933712908835023625805570137474218398060274853705968156401467818215309445613788021356886079319676118300412272094427780158177256697150868546553199073716641174589874542457863855488523740925405019220651537092215039521998512851141264315211734375885061124448498266669178523574497928097950487468600653907591120440438984129236431408445807506111471476825373912923877855431355742189735973059719055227481040546827941411156584317618474365249961433676417726031939767767447008431389782333179802796840728757655401437397631830652200465145561226985028465192195418939940402761579306334417711973109585994048704697276042032884005872266986568893589044206508590136555505028590830719883716381551122569148712509059049937452039734256025274637046065513045771705985579801684358639170834398875900767212501431721894370017849151647933655819227395365978581331099583276021672948035610211022816189264291018153342912991654925376822698048799518990725479726218100935980823261821511542625685762414246568971725167715979904749430169979457859032775872342465673726034221044981695811108103731524983330462486934605505838639681626566823215150840607098659223826126474024981728944327440467095553227962445313567744723108246945808479591009645321413781190972653719963056327064905757213099372099921425795715485789570374797746721203931822241146415292399737169877437461283747358677999281540726142322120731489103277657600549259812996926360193719147235904074146815458144474173849891166090101224007167890497030908013680712725625385485892195444309809124488227520279544170861761480289905808219116090357221411319633362675263597311664782368588054936580462758930468244204576248982253128450416504805008182986911975004126103798364021005302550349246356534634299377658227959321037604480348632842696461209884904368324365140493262848419767461525239788721366519785823042012981395642272648764158568827030893777025986633479982581645522327512814250094109057318832333153004605066138095533724951257509960287980740699125050458367391246098794592253176765112477515336536328684208942115716402671708599887152123141520803483766870159745576386428970137357522734515046035063337726398982510826212527245634036380378372053350745822467245209163859053927712235581040912401184575322115513249903613015920759346959394428011493654497138590254743989674690067396103284923027606648758511235558962536622452725695899838830988873049359866042253860215833627880680192522672454433657320186032837606630842388503636676567349389200200206121973918887658005319928721018498062001865605130536164879394374860903510033370913559689249067284364747880988087723306638192052249716721109682620187676789021371858990684901119063907975587496167143283608812050155345345121622131499590031505505256765508715222005161605838007487539013429672635895508894029932293413625174232871791491686764279116709249353618940322921954444013339119629961114162977513003068543177989511087100521259770003549760894421953595455802581962881014059507285308222766139667123153275838755067460279007057772796324295666289947817384634625006177829839226078055469000027036323282138650024953581358176380748549433914586966334433940117296230137840483052319721952710203116572164609424211502744148784051404476321212792354844551041906062995479604478673384520704648418601187237953675973635196493266183895583779540282242954116338256724743969011548452471630220935796249037362698477957353524683297993585027977808058897678771386887312246445880247532745204904323370286224056507484813014069709046043426736856624766511700720073752751228368826202638801913916850322550979434400582333597043856333676506518195418467305288513469188842162413669707618863353605265057337765892275036564991423024893078108893718259875329607350162285129698084563130570828701629326221028523586123810051916214807557652769003086014227262862416860324097788469023603559470236332732719942113738981639867141465234816191070920032924543660590051621287601157249725653617611294880233003501230679630071449055276557193074887330585609406356210987550946140560915546028213093292943643827534558425316049736204534219733829264713207981706421539374821602355690972884461403539194951591907519976763550073715162776677288356248985039676831140322823000352922730685610398656620050457226196579861532821003659553527273067320428331163404158991282109587818117317293178674084654536444248404714565010410461484837113309186561891117288380336294739890351706835564889962444200550963478598567439033210664570730326709842771832407806892825904697317952712546589740808935507116762888642264883971298213595985614817209351675224731167381017966536771421357935173687978054639509365273676563216192484727038781947557847519741335731920019324903483691522837381377278451566291268286933170840102830821752785078958143824579813327885741644259867710664515956543953885747149449944959913562586974661573623152675600050622426218562341652667924129486074219741030150415041219666422722192391209272328011177463901054830663644776095682464440759727345851812722398164392253817020328493399242913442119513749638462835336512323315635412449600916947542546175189036209595923661923159193076982920214456977524221004864569720637069842507480298751182335572261560863729933500470149766294603122960933689666856729869663084012943920077163903271226804996786267675450820234575455301063613201750870446321675280746322333926034698751227171338900481797577669396534471594540502696655967751195458285487986959037476122176941028829638745817223869701733598896818747815666351670526263995573256746281102388782226306080999206639497896298207550978634674858021687559750352798127020109923381834501141241025441070370132162111060741491695665545170457351041860100114530467844378851609590155139748782342441080104763710417827528081479167686509390067450952794003646827206950559019251535562845352136392845692930916740922327331373959643571150731465237902504470387063952114977267039297670658729684502532238417674588614073134690957155075479274665670122632414352751935902490820868831658729656540227254577525264624693770552550296857292594058331511097026463244344259710828377656672828072427610292081130703436198063211121506391442758226763379663908441835363571290660636559493484728231842564305809069026875988232338258212058761186648580689180797724545718238577148589299415202721383141135462102676277516135317061077840717274265856823184033024965835528787202218640824302192293724108543643989320703445543823011186494208141019854352405335930325818567285696259245160676199792975100842356355219504990247142981462052487689053605614784143348294880252896289149969747977207422677348270396888757441496611892033042492508419952154748965388680194952567881147317906278497506498062960453786097847703080358500322173023076259379691074604100532233774832238645845786453764687273955322443740447130555573933533730558774880912292465807068680516123584106572661086397728189750846727680060320153935948533166314643678697031906239661294145111928279494063251760365037030538083477554554796792710688826168033019124811830910222440258838681903669480951118743057862289950782895489366929767462605266563085992544629603591263088027652559000967128268170696572010607853739349647648979866031499651930495647692581648735284111080808457051950292127608983831740483174367806145500932742425735551482151699344992787176672591032115594252534034108113372255141580994838219881326273949939324599903888286418440413181255413577276411622433758882301336678610312899722388101692673372889183093470059321882519026873047917276366165478704505596707765185264264364025541573711393415687817239820266887690881611319134272584983453862267212688197229781948983546355861131850452507195303249179031200766964858664654154063240896987618763536194157698963844323283020627762185244501157027125080813475922804966675990720790425257280253427544410754570070076790235312665452133269952593139214170541086594632554765035249237393112227244743850363942997023269422897354906028478386090447752036379349156000312103005965339167107317100176839975078550827478255016186079160219853208628682588832761523082185356420260864464260570751341227007165222579298175448410193266053047052279557576863535970736866907399346593588903805656226896766246831941810454824227515620320826742327691289337225564285437349147786523809085562281502125832582135761893767525808807522464227584361149182831905700366845651116072126208367280110406556624199152467654790634029691086959315651922137287182351113876981114370661679601315023445745779884494515005089737456042352567465228772748733501557128316606315007077900035469107736317364206106564643626499660429411892179378627689246387910627101879913473749709548151913747697531789158617929512390938081469753720987550137266296224026369390742416425964888323012982973981670830472259112649886164552847331492126374898564249695559547310611815475338096013209090490257453314180554182845067792288779528797667342657799455516693632810051229830053866752737621507096031168227905100572015545005030965749334097987143404479049903245122241881044222519881416316509549557132651056646771289990041593017647770893776977633820875883392657633489602967670249007117546313761000380782982206864941185174050355698856210671051589421727120687218995914474404220293588042329657812837868102962697989600094631673342700356078782120637101285399081182365299970870626491901329453790741371250852493784537728934484440930764856381932845330361844422483784397030320024712133030205946285670612277330064428839316929529609940853209925855516924139861302605048497174115908522783209809228379807199092773508383799491559605002015798366377295986436311027706060676376918884160092740529352589408664754327315714526451312788397199976530089718809224317470769069542879831170334135289976979356834067858850902380765760795038128950662911476558724969859632015812802490328668304896449313582665200631156170557160952254095711768078595313535098380618009226900104975571328429272153387975210442270240853110765734950497099056007800106546220346811184229280817365579537784432082014225064987630780647654337027819142182622151682996584504766021557652348496376608451040292045216795837681435885500954763730447634200595131754023683308294791191684651163379997977440998159729647397993028105243406862705687678610794736578559529811367164604452550963578228286831253693938268736716560310746812059397453167362369234633179363518648492035559660146808941613927474190909565372696150778505520146516016411980376595564945872461678543870938424056345945556996530013998117128743709937520178545282750299491923964716776129895134968946977528333116769607273088626104829740094049690481967328742995723876352828621531503917723378546063028242558278107686702723341805322430852233118791083705828541257331354932083440147971467407829601798872814929680731468454667010817052858839421459921709097624639664659264328515177664098758080604435084681451991611852533706722589481097488594623079203471493760678516021762149155616802101942807357627681604716631366476863689966234799809690289820166549331326367017606524304337071991827646727499703701899881816811055827067892352806976187408550150360646425536141924653589185355661128743201590701059792561313482763980435537163848712843848459088031683027709656278587021013558031019952103965821407212315953909804479852142358022451333619558413509059406730104674018777157653087859273915863589781654059913725688691109250469081128408970195453577801305588500192185302936091678116593363756179128629523994818184731842609268210464628032525993034990853294053541927381854824266102963110859881538209632182737577547927211010439170464084906915861172243044086868979548312971922202306866626737763202301023604777206035825306253233516415849430274223973798534048535492843185015849656526892546623138870495081050188424001082759513923228693564055056434973552289913869218254026571882991327885641038913822057270403398160779259187266422304018919079146947327598631840967687090387417013938488920193533464899462718056587823949500434443130699815717230569106513926871155014338267829607588354369839548197347875250547494981396657079130832046151274946723201608461731728315423019908299491429848294445297168294264554723821142239067703136395500672879001807375843979430971987030083983317945666889335998801616274722764867310707073089719673165227060231859386900539675800105736575128933988057741410894054821529443224964261948009738797164399943926676241922272541386798973434584836779236699847198530216992205947817096145543016269976607215830155775148565504108531568162631937356581236004377827142805506507332985321071923407206780993561239301213198613662691392610063274422986479323727303202192481196819794083113279499777117017481042523478541621930159433778345884106350604810129080092875179595210915494352802425498009057142680445164879119750106446203717661467599216270189623868176031508556184277297839520152974024833513350045516465293903916589814179041947531658555972837348489366229504064102073042428126228301306193508823012601217371603697512050678744137565692728021279987245912498593348901741888611313239837718267929654382913046453162389886461519450697726364281158051159987030193441675145260461880584457054401573839288412208688783458076697110266438386194205080097028351343013177319063586900642685891480182716744451827344218887294133503590975559372169583945216407540452131976790983290818842286263627954890391748212247094623349323691598628021714928146135660065624632980633187694407001927330574879577935237701927834702421897619910240290582128308583228716586965903330386159058770969672352504874001891128092056324744519660847873095203783913942308826081533043118419380177494764727276605522467180948904368398032658985525067013650017502424646916178073892152231575460506209985916186399416806939881973522901581001453166834062668264900622762600876189791951702692781642693633751514241878679977086651749609323171182578334253308081731992102444508476338411440988045854918091664138913414635886837192084410320079330439198851379042009878527877166869450668990651264389671146671239314114710295317483867171956725008277120723588299836505364153698508883559385134926086336575232783181634209565812489545834251976778632751979699594758437920359474339842127864320814237717148024568508123500023312728936026829702099428877958043699143634970916366439151984811868393076261603097668536258569020619302498833203613244713161760004020904272086122856711139145906025705499631575912761889594532580704815822063134562276301532662594897901081755202510799399426573988731587903433465522447685356644334336399490369308249276078878524183839789166174984049774047755968468602313121942965718659318538664685339750337771072902803795233300042241348417712998809796609553655450701746001082165458052505156865096146094962219671854617099545725776171375341048801445445663776054983264751759209284454407815585550919555811453114621528188907802417770245979799877341872412182514324491431691400951064736999328087736510168082068052294497012725235745823415253685326205887626610440285118221653459312816387057426246254027143127713681072284362514215016714226175490586476531298971663886109257643859487896499966205174614921996534782113589040759574770623719990186486467959024615070889396428898105055265399696737144778375923989497223863576625304979054366839321874786604280004295948745521133588766320010697675760889678825967641372551433869537233615024343494118597130617056573014201348387372074821688412589898886929892045366872936274625136253479110354103184961876415364948116964924478699309225642609424795116910537480607018370697136365181007299886462670285545069150049857040622455527650657873561862445156036178355877633844576596941988168618362108422910174392136157501955175167753798796461239159010892088684976383300022962460306799263583111294787620782355620046461936068051581117601657368972720436030143574134585739412684995256559903525702932626774448196180582419227821031787284445856227153451729351023539412459659456704138630426234731381848423603800548539761597643996673572145810876570289332757296139747186957730729304436668202352122491015262713703905501777862699107375936287676083622346788865152269106078464536158978247350459002615904018386275528504820309896928875699822061044632534284473240019970114510173421555894725895260359256854232669603635152851657233959417726230967952098551021308513001557284828065953773381113539056732087749363338745331647761514614273514892367202520171280821083023248009620850179532899668503286207691757954106403864186287460652434620660767262260157541219477068637242597972509119794446866103459117041654104022375840097353833161818443342057328054378857661270328603086825381766616654647866873668072310246689923201692326063810437323859996073056597680616224014018413958170364905981450020050478702882935330365121358629119198668315887328043682954474776184216249952970754297635747719357345707248527973213956929374768997583035789325069392380207882493200871264078065624579568251561457338714312752736599550272416837856978162248883423595366986970851080435819076332646269063477645179142821224993080191061222335263231061960114900442589935085161554561290843288060397500987100597324299605570979115791959821413264887971945495686110294417390892208244095977299914383471065528727304338088056091123278406569517758944462497623827664377199464907715350439865104604831554704139822885341050880750375103920998277068489754806784071901700318365553058373804495219846831630363567589759042603216382287952236346578463623534965287101435667965617334174392715008024745584647419448021984183553399266939702012721542822625737688513282712396713065720201197126918615210072737106667955340438622963105464562656036986704219434405130984952574343386345556569134282945320194356983165303498617330487954897230468495448930612464520988189896655552188847505041076586114496224824298500509879450018280677615955205719265720957492989034798239922021882665440104270111313144540874595953047146819142228928732844550094249805996330239053337138749515144038685049391529462872573177546372073333129247271483376656675429611474489362352722094116859234179765747109199639943803472908125163238679820473169472003348731770873125865392776929796790932672914886781690480057919773603565748111045259123637568343612441163110198636458007604565902392124384561746387857948778852365206043024017220032482866971881227526199212874275113751471164976715703824925159728176541305640508616058957326945973936407488039203080444206713882458419534160229403300158604045445839563764183119379156895715076228822460773021207099750098413005792173869762391993092895953201843468645449405554043609447818550341889849535685785541800188272521972426591648979338724031774044627904035383525151041315623118256254327012775178766005296848267454486073856778006550195784230984021844756639061738311051577784135896997563913024830458945004933399493600460792157411058407329674024963942340587201080491339320352582501296542550290791778106079955579261081561151011715604394504786950904786548625697167962241385962885402673656334496572133581616199735358875264819455157946268339653517170018191192244571771030198620900601227875855165021965641428849515418380748725796496794548379777968230604581452797406141975083783639428731359010430882104621314083111725282668858403481794275785843165531693920626664516818419980966674369679596453783897102143656203905683037952520131125070438284883339350745075339981023080982588365488036391079090758755945829457918544561009567046146149165815807914758805047939073019779372565327667435953123684431806987732326588528974628970545488251511567728255577435074967859591696587809828946236449934785837974164045067796518861935356935567590095865789948461911705289287964096548845875699249737936840552069247868381854917086473639392407294299535091829521769141116229766477255757520766275675877026655520044845485370217007855297684834407882271568992426056480157071070969533643467219634501918300433510286655498474047251009320622788703038493981119819074998708703183830140322802862862142422043672002482143446005194809197877332428487127157463188842440016714741795418083474306413880255589812629653612546922688747674725970536032739501530498690855069191023228876868221229347482428188090080113744994837490416149676344044013954348750563309314547421395840979575199252255834169976446605815599783542417541716966001228929047281196558040299243456268723998798242178063973421502883094900548211453609883785420529929998169855789091502855333987249836755080731425347827236514479846231729407981445907414092563837717509129035338833287496036048237100446509030338099510780523578216122590897121708483999338317064721635750423972915731801836785043776732907651190058792346248044228545617260594544858305850007597652364872740231392370973881985163656449348908364764151301896787532997253980514097667756086058932977354598419939167627468766946154223085716998892833929804885034077963127381551520255210948262183011118935373708093171664094995769142724697486351641666346525732739108535159592013887402232093864147405457883353206728189494092881063532468621332289190955975464656299921293201264362587192026118227551372409653257786043855556444659713628988259176797470768884841058809924572538392950254048782469506758729751890451494658156078490615489507735557856744283732857773624841830601512792321429594786181773333770034774296126643564787348118737460465529145426122083945324249133826868245139078199400990765164477949484085435850277898174561969786624135810080972142569556696582535564303110373388798539475322784139495364177645939091738582239701237885694216397770693473270172025583908246808196184457708773489379731573380276378986569292357790528165077822845329318257411418914792168176509893044916907798338165399666552173932694109523319622355898574247883911115268772902921473680577485162275163980319678572868695190557532586393701417819611000568460079997280229352007507066244052800407928924638134061172384002124716790475670276636677569108777484000722531824075498173202927792864021633493985282529683481857649944611975696767308021323838780025881348716520338810894919506830146021076207961962191829909240464413190533268435735284376775962953636548843568645040476832913469490102191637620429594026467548116517123124271627818582861460531200509496561232355345549273293979946039105399339393080314356360490459761165778257774102441968429108651572449036272066030032160377474325388737388562409647864477091716777412824283250251069981280223199249134109277896494296382551973347952014468943960739426145824023927009397070053212802926052458948901029207001845277781150993195744119798740407517640382429603934405085176635525749086090330113670826704784288457394389190993490256148742844857824772166147484151482150257878134820879048839868527176100572198891290637234017795289414087676373805052006790353585228646741368130117251162954132281681942860942517498558388046426442840159806586216375665283521489979793118078532330513421951006775545502247537133273270309810037347019035181970710773685527862392285485866191400939774926830250069743064607413403698767366087475452300252425060633869103133922170354532530956699802373919781478951667200693767265993048868208857084629147172241380996089292780752377675028849327486161877697005711555190453792267154938637978346240276222340049781223489046465397830769561033447198778761680726158108553836768388236046225642643734162203850909020379793415421549596254923031831752196262838437695801827085039404686465066172993650102719835233026067148862023090166603106891746250448179398420780788808430578629054690540391473684254806796578957170953167750521038561702920849708072003172755518151096350471557056395018676076999749661206286824442182791263144617954078538429700344576552447236047479702727062460069045138685631291886131566838825606543932583047418258939888660266433380609003056254261813847666614525299725044429735508901963426533601858991750501670337457557614188533229242926995996662785754056747714947924304604714901781324577920239050978153158760670732538453243428797949873420126174554765946296048927716396129360617623305624062162296005268327171335347700234511636561908589366253395920721940541930630543725412148597474667418985928690124184778758929251863970192444507095912643785384335952728813994817189982738717521255313223763659619160684672464935882480530892779016910436191742769352146055288268556013698784613728929618386999397011364687386622043425850142763936174359883142809136757486426157406235463966487702868665883656873399583982789195829252316181786307346638279448542708552850547511337256482738694324005776237287987370714162642868453690590206510505834536210895605430556575690725005549892353186979332696514715530821401729868917269394998807324977321448527612435328504820110848866887990393862957455934982375338098224481227652768788108942935282947120236188432827973692665814875421817849142518511247590125477080089785986875158189501433005645470500888448569670829797176121474423883386516680194117522680625217382756480333036145506054327185102182825399255737147234440427463524149278386048323392673433952239210784323192938481825996897348592157962763422189869532999294645084015426446849774854904820786863652718553718146655736562510811810424499980798046439123151688187405176443831984921128131834278647092010588083386899130699334322537508838141252844895665593448368941648415293665982788507982409277657502583826813214156451094093769731715610745450684337876071543147846988170468749214169879608660359526202936993204157740286119864666514315692252913560208084783795641546118659134087450441090678242117923776889321829307026534195833479360095861860029566705857254852271572058963041080313655698784387967823999162929511057257512964494824692077173556971539835845489194918775911240867984805845259307197880066441160524609174560726862150651011594072371071308082939309889315045951533343667091224398254339827570475615172241692279074260996779734770355381137190978652360075688670519032219007113466127859176187053572739766119534641049102570739193391267983169451965494393385840137296033993049918153689311276333344547158783584945827723704735749305248666098844349401597530157194656846497123985113246812537235298981417899107294666350291594222487610194088523077019411815883572843255046707099787411154944022524420694549343291075579137858641291951166752423450913481068645321901433391985302800438428204181706319627789831651602695843646828041039662541956545713197204686031137620447110760063796423722243417251792406528998275858182118618105443212009081272142997484265378169533188728356614168833885573734000557246218086964067857133848085992346743207746947075633365552711054173187062965248859254977514964340425069816643228917745960460710974763465282397212022408852856444957557423880154466052896853671165264020096476335324486494038514026784221174118488185995634282250869286800944557260931543262754898541323769662761676704516743506707141040516636592882001777706973247810234628453560010742470537778495115573880502497291756813094957758319934638296452226200495266027373412873880154238126988809311260049727167533312897527726273889568413967796914427583611210676491664884635056725983336757390984462834091468319864443142138144360785051051786431092638006905784710674087463092385325684951221191094847028067398139930595942754469759756380455287607452969162440757593552794466022502739665998745357481394729805754408944904952292095219229917845617477189375590735270075548683357971110069864499551716389919619219317277569943309231349811329332807428419398370447894010409674152241311119605527049503795612216093097503308877027618894339211503405066062679221419059020607366615111419166611445114634303737916877214855360816708176368016464679464344185344987903288133291111013872309294569151308380079487875450238688772900463699253023934357405411423363621042764178393594049412044230966309019585884470721397619686959220047655961857655406277184691321704944028778570775086714127124118265953006686005318926781591788843674909296881122740603778367883595271795294106496853543570829403040667074558326462824037497431704112645971135822072016073892210921112212542842107283999404275940009866619429135358738214771721542745679290137701737000372449534739653758421683826841982961997211402024889770430060271797462271217988033063483010940328572584864769573407639029862769819373863370804015133876475080080539115053995772876457694448590748461861894955135207349845729705400086103978235398055949338763858573241215917142161978806293356871386906023538608902392148149996842077369330131771909152178474173274277169612196975748451342101486509916703729314743791845676791566508269891048455370854891025866100485143886505120399205100667650042190916584838889149811864032278108527970365628996106730384538784815807653058479447420408575241302237912703047604279857447574719339061796348458847389844379877731586268921418855394348280701352868221956756019907700770157057028360544095547150572872238614763490287826034574802382656588997033191237349904185918932212092331703267409930474979628822976900888675675031513420367650219644842342252594534834568504580600005577678361094886027165278340403892295347009802011476026607343857653931037072207066014642486945259944470237708691011405145536587431341395320412519361061727484643538638924044462701757941622135572587491133952916690018387433976257152499165634197819536565775351057873475193097015235255344193177552940790806007383141278301635397920330058225221868544730436579639513666168656159228612882939589619361209051864848204327504391980450366413624796281561900174256189141385363835969941372836079240707055181384131826107438520009198423255454409982147343047183164992769380915473502607048357170076630676659775546893627013004633159151460548058298284951343544228757085777351975404722204613769829420592675423624255261868160170845212628851320036861252444897304031760000763148972619983436445289931540046046159705703169255016149717182889451264888826405084380077714640151851685454942737223812970146925250731327649251632646759671597318285051958468755632448574165577913990129084197628225522160015652282810731836764853671163396519650759072149196353127229435531040792367055786690331519372269895457540575283128487118229284657561743499588129934075011521684633794547943194316835174824152319787932376376131428377405551611772085469111318074505975917942585287938119053147618378431659623347007196795022116712368446957375388968889263910255099084484366278190953186636481354718051161098520309684307922824543405449852048602930234231995901814911874282556157464372927335348105070431530365120658064253547552371632067851632017622199199200295911409570549732763559248634858704699521108100841730355012651850910355913147866912494133942454768727120992223574768835221568601185175392844800375055036724776499565638120828814165459099838883007762648733803048505971216854960280186564208553023910211040969525639167459387688516327594465525507725606642374859169561981732027432366884796474817150850351085102211353018466235727611889422390316032041378425775950269036332179294788240599685536060562817530225862815634769987573684919855267990760165292504075982488135890345870838115978096295209660748425665438178370274599741066890411370967820354265764129764412121923025274467097778626234656584067460051622528038178088056323005079208427999923906635032016949610155205432481738421886407030970679248565938609655869271699747416592824120136089208175301240611944648499419293714209358176712694089731179172931101012782265603891584669560739128815628927520060088257919163438754308983943472670027311887319346951595057152156318915826676310726098092370134706319425107981071608140742967915866038615385760033557801316475557304689430426276108601698562977754590063706733024397183620883191411350907275634047627851577234082089821107397656275444548137239092181669059213760906116722563656854195318873633416334897425945465877530284892698528648942597092896146328169414403168695442988971678260432534314777071092226481482691273544803010933813919844996790082283890376039661804106122328931769093367468528541593087468164373246227182925385625423506436887803611207807997564526925714580117074605797180553973407261867608674069757304209851458296167838299713015043037846897860591087366828496144210981779774127857788673103287364236157954242756672433323114599018976233496497581517498606952118222643271903919823634185784678094953979349624893175376350090875665163791483032155691940792657199839502649542437003601073091540315910528017105521552960243905901996202206576480287239548679840764338566720780706114384349743393858899100678488483156091680127314783575187935991799807474293420793501700851026387113581100420242483186169273578735756756016820562454279017756885615724659573131410097223758743888095467635623213169291783288841542534018781035442114354082191100124689846920423638437189915118412039940301549537419448482306947274873892077542370195420254876616394495626131460226500953463351657948003219316080977697776306745195075838780729252154610809658843580962633934221024225761542959929906130995528668354053670278021917560910717915232651890199384225744823386525262507865445488279730592174249201989798138603088304266651644476970789939392677537767868778590268415559903238036346553801227553801672001455064823235468947996846187976758864860487530132662255318793784103455935191271414157421110991704295550037882239218717634788099168949439187990724397863789353726026702856515345500017542858010673053896693442818439287086427884841143738244665390405086122048514320436485257911263938735747112338072031868440936565048325791231133322791913620937586107939929002546607285825998323559882260901927814696978913482943022354876858364221259760316944334811467072587410281961836624122940304020890951030059722759634643049340202457318752697599025990934674161740264446097413272454011463848724958360721456028528456177009976178844626925965016438787350290627291397926898363325702702254642204417332514415757359221622825197777004812183789672561127422927918900005480567013279425476526622599911578445711948531908521209694543107848104161302009586337437546118770372643427558520686821486434945513558397157073122642040909822707034192090084457413529049387480491434891845328092203103003578454996236374737267678836557928233179947594900178017611705501079173922129385358637462764431594447666180521714815125024961355552418962002318184451154538140097880288274823551427749315939114477256119301752360382177798702677439443353603019180267689484633601900131710657798510982867660845887504978203988011810684733352437677283571560217553942701623006599856259470893099308306687178674179110851256249155578039852842524142535274824501837883035364664411493255726868363053175105154707086565432559298214693222969528486595636538905554872724730667633538804661551625656073089515070083173626460967148418310750718772028538728812016857912797461997285148373883508502318520952328392807469920774049116490971388084692701998563493218199538884955005906327874152179615401853140072470156750609299658857618162824482470790815704268647580118711834950450587226016411398312497347831230484450722091497742031477697494609506974819136935365979816082540375079696550390846105047560924572265742363045198942523673816975688116452754903964418783757516110950404328992692174874090649459409934865978163433069115632955085585849993927979898830049916965404832604243065634987694097643248379829084691296763938206102990055494260663474014007227563227465937162541178349839378548117102308799650188580811185903141010795913264595928008097828856341345627041849468697958780484384443786405160070997195964621800718371674232942151996237372356276609063484740103208621611575732205953604562677601536543106169905484864664166895181055036888042171644856606718087933173429573730290966536189770874828939370418037667394728113077377276454367169737493277573308651203398722472133088996897396034755877759582235345015243259272109425592389382240101755377500308896023588080351225739573743008386369568256997489225733622195999687905657739663602911750406918998110216798560205353381940461818775009517668082558819336669057527612038729946814230062556645496852315303885727340636892707972680130867971081715500510731872712961174664271663693998666293018828571370744240600055686339670214513030344390611598380242522543367462789520152591422677189223002879613730256773687369137822867132197987621226665411259025979467916846260377655773963833215808295712683093782755769266723253507009117570911159142770979589105955107683455575037339505060969296582899784037985547822926177453021867725262824431625107563343726347177175783794387605314576669588861895740373948316743286989957828130972907081582549552755685899868791214579970483820586913182396097451591061519398617300701867436184457539408806627908726601411687920804538652956521830018833618444394317697016521621950869068061168599657051191645179052398260594643105694986961875499037074917684452692880693560415722603771264357166261642272008587069849606153640420162990923075106759535457256350918558789807584251824367528442772895546678424989665130500227020909588917025064217007416377992632746675352181068641530672599551227320735388407430064891558652165706958164415862041105758795010890781768826370743953100563292434954025091013465360168436998654486867711990054310304039814072508362865434704622032541338181836197201114367758074157418095678745010932219709717034645763198200675056380819686996480377124746140568566895222847121128483833553654162334434137886556034286019246781701229791133062666011831313763113004270633455149857784164919271562203229758550378446764168193402867003748396988283923232976162101332834342202287746428029682067736836198399346101998965268493416766282325872459419747911122056975778812522629706672579107104770508122904729096109985851346391237084683178212935064707186221119906543608544739813860217963272727353723177916834043696829886724088766138263008746498609161892136933005212688538655528172573286126115316609681379049249681760485690654488199738938509531739496354135801264256564781935498466059217324311191599813262433993584750060790916864258573426508179379310410330984625961514491027913308254788215852856588355061211892911183957674984738326038273708665439341672073201224055202992208328752804582339461226162005873986841285782877757548098589155066383111099717034967845645163286578129316729047953012909135216501122303607680982568662638674380724003295969925510613251727236761091224301993221511238756707033777473368811618823777890565111805141246686423418535530133725384739138668809413309626062917374176131711745144865893932915176069268190114959009091332771827114137716708680418790807762071261262515666617528882100136560510558907327638811915717523580896701307746533674807331858451571737698281436448907400394748914825545590508902128953835687215837526448197478506927079318805270980405425267196582688425306193390210993404535002833132500160934482885190622960018616196159037074509831926641914513980854902774130552955583222058958954111759650292874953031268146251125850585399439581331914569295108583057605249681663516332228588520589667317302703716975813441081923685044711861735005972185008358958932601913192101559230806452139459573564261813176458171464469477704815705294726698384325346388569945153263452617541939888295665739391609845830598633381693931347294375795965825976416082907029577307313358623567120131074910572475617497870372880950475095237793938111478435908606561333861129156222541690556720098654944138861100587909936141017422216174708511356193083341579884308496161193377031861283941089569206971801652633775004133620957003924486904101975749780630792943931239671785569038914708418559114437612352792325083133798058666547310935774905869476283605643681499326486680896726733298223905955433133750828699625931300169512744739385452149784039390089003151098472800720334689798269498245104762502751004848849557192368913151367922981356319553745709888768816686895088486893050119570693270107595351562179079690772242371272157236339426573302461024441710897161349604183211192191229364383245280428233825379246727834232959719025359351850371546976598767863904552872653104049694969388968081734261418394263078492379105424377105149251423710871072852247427891263873568002749832324662359694071791126469102694254008945327912257316069019130277033915093623543789884325497849692997456719328828964657359733665898374817760911317129058754122006106857129522894604023242363082706410126843433485719171116127976013595398581420149678527267008917189880244774809076859521295168358915323227787139157036960381624318543252814950647169373686626811731945968831692976461693303892990965453044128272153654594369687720164456653181062090944319314207610410627302081582105999389760643541056577680059848381944030353942928872059629168425223257670426534418059958109917370626484878805754717716563807281229474360814056268670024744375249694029109270709615991135874943822953649435154890991425682232155514245754566041597696286891047057525743369740745793134546671547205200365947799062984671256263604513771708900153226130764338181424866015400597026843184616437494800691536257223905248066382142180177960067265580790036305442233878841489365630238758330647623513143391247621786947831327518555258914095804979657478821445145569686776010478149532972840338677283246370060567273323560912651929762689536509825864628072965703726225757960401992823067221633351071861132016188325424749044670083977321282714791821613335067720537500008513580998500714270232712192570738604638354051094869103915212668379872291944971690460754838080865429432766086737658675830530931775021896520372709379667656434051009304482819250831314769713847013135852686886099241182074347795512575893162852342056059549723557400759933295708259620038130254787787509315640045178016250651161000542122407519311362848897405289091656999156833023515929127168553523464410288170775166931505469354846377760353257864715276111496713643478091630473808445176842312293515917639350833383680446602167188745249529859966821671186647255197072733997411607862439404617621773925526823648606461097221638145594074273872353127542392976446651412066772869498168743259417412536423891466905582946481248466451427607226885903262550016647546661546281893998877579886698925205462874323841950423931745550247212726872883662432317929420148930090189649006344273382948666046630374023203649276565758558400023615814664046979520968258256162707457103963323470620908991490720540522203613828229256562210890539779629149198912542781443016542027715228649876981973805746541021832471154126957660304110463415203381810201990113787818845709152555035561161705687689173267554096058081088623082145392647021105194490122031895019313779248861394623428082391900555303271138638106668135465530571754890699777884811907301660678143186559449915050141177021139057435644628594607689326459257318043637228825682815514885922586839669610009516102841883439273602307860812377706411667676736767914040249921913631522653284714095626239701789071355791893274371925105705568413236921517988053003905612632436142620960180987525562115496402210269993874771744092741922819607366104582356086052450725110729321330359518646923528661836951234385434025659533070815212014599976971597398134778749617316396665986862781468419455084511277696696355846696167323803683953920464555894989004398172988004931126799452532285493798746807116195531999978903401476067075477820743149304426772289243631118108601761191302891437555127181116099697232625351025969784536371493008766095300745368915858122075842366948818664813799867014114845526907142288813606682931909401748366441114408829854357201579857012406140364505356231149261938285529771297978176048186283949674793745410652695975031810451921362012759146274088391859521127719539810131826082408245209353357686895549958389239819799353030248335622090239109254772619285411369811232319912547492077528453538224674346218265316711446039886956849033234147577074629607015226477124174019645566929337488296146833853880562139894609623327466600087762929605946345524276389455999002368549874797891759479363268543503297225722752653273717227518861078914292180716855735920268965196985651190850673868455855681660779636930979792720070247907397597682464036653832143683753079898445027278499382044492446990502359825026824328604130774524418821168909211053704233190143719015639720667956083302159506359852534625797584339331353052107919767124965456725878735330859057032262067477124875511760750172266357619661258899999219407281641420055790681131816739303341808834890653047686678093490228406432352227836212417410775215390774940067580781325774802324720101805792816244420755389837468103790653275176531217830129443509965098696587276080936809811640717904492984624530116107194098687573679346271346761268569269582577505293095042801884974357636382952204941636627083192227254780256463267293381001017704093170211411208269522625468879569306700231373109128888275527868499798729070749352892378849478596297428719303315768939340399005210565159580084749629106042707518841641463216978307813358605408849138950887290680334915544348291874093580349732961487385743603879166330089206450952570580526650429394009957867288693384730287335368290567519709241281915543153008493705581517068132030444074669319594937751454014998441872390901427291536641463070316653904045882232615608759053984444585095975797255164045988353622175753063455857562028583299566002197124479786482782866779383380519981501298842829911251085678128847888275780271833118066278205371462371836188843355363636246267713357992479367833243386436495555040724705458877417632764459783412094979272330050008485373979339107914468456824410106647860511143459730455423694373674824069826737020494693891336684925277900526722396285053451261069992322521772151870793198750615523924632538138100201944855315021876491548241884555543864751021829731136237791132448773703090598222611510104703430054369005236183971154673026438347256255185402981810888046379120836893337467327960291095163484055893216753377103988546294471408810551776239824356591492769801638305868143241356605912435560913747522375263397562708324816689277552311351331384156980199741362592472893520870067472501451525555093616272402080837546046107362779957995949832149630202562166428142214092830594628338097933045032745032840506006687868361600672944075912234679375812833608696227741682731093248085044392925731894221793587563826915502613896612144862385729089264498170962208681456390615919363368095215197567676985878694346836962149842099883719800252322656957928173194437337443973567755312000336282271779323895466227455965621361872442283673387750311758361087847955572633662866895608978198288758855655487258106601395224491138487938245729616726146297003216722053487756085740779621738671328113514321581640959375644044192295149615337245336836435107268159795048431008515661188288229280345494340565907069261024286789712677634876504448197225252361472577447387865970461337358759376156537108905965779805716987507962531757029915003117770370998745928026961910362226030847669694417279595487215745534113045120965343645628234609477911315209985540558868317198108646284634341900076313719735308351257171555600165438129407442955042669972782708447503281822147359819186236498562108613231163593190620574955967890892848612591291454016211210904155801553928539162512272243553607487200024911829187317350411177568519919443060870406486269802404885659803903220243467947608985267810387870418265533516120180657541446732104933632353550369773382887302853304507534044620057973292310045321292056625072768839354492808063589027978273130900429931049379675727605157557177871235582770948001002547389118579876365509005572763097089703138927556231577437782925150430000475976342014643173468195118056825500593164974702109110149609612342659630724206846897744965785528641445044721213458388275998744308274820745441153780108971466666368115970402731987205290313624002959174202786333433505601457245953169452576075838309519936536818465247072001856937339708925883436933833695175172166553035296212340610939773291423269214343162882930552632207011978224705478336226000245159867939451126292004838648186437695388318026491075982172355164519107211708395755289939852929328634367389918580548389873304549954283184719308412489505725334150387838437715163687150469158880720945106674906763939521832836327691301781437972534148790049759217642499852961783133341227090724640840523011212606678609838612398124718344822471441764360595470090019220933305135788550188650988651038143913562643879496320909866799784221724918559944747290797969083254779439735310605405582345250732622833093786007466143227480941328370123217076711714188845694141636257038501464394080120547019685157732899107759101543727074602176379532878088336347104051049375448163586471457315078460874115112953312199728165524955428894893749831602633035994774893970860194000091655906691278930235882747946221906604008178565446010025321257875977439057604969034924455417275769933639997653907405658836951600545086230944982784505485252406171856135058244070062263788379728833123397901716497222129077815758281138446434424007274518879375466135498151358576091191822522613345506881871716914762005255774574809613111529633404421065699961346464049293802785541486724912864606235884500216506229096137291827795170481725523232473957021998349634052178753547971633868485490611862729348003942124284214615852178809690724175768863236135383950909584415146538871653415741750403032045184055116438614338474571407484144069135409506610659520391624801140232004520936398498425440842935747694850891350990536408641493187681325066823098735645154085664845978688177099205963373846008944059993017551056530943652683653627490259376345054756236876544070864851040446693117070247614793450980510049321049375106816410154575940470801410028918720892875859034608695784089207199517083384661186742140254173562616076054949148751645760168737896400410016878024333971961189243314327635642756246716900187989693493875628220447522235415376365526641830937234881360836157513296679060449408598047133209035547097456502187010075139549155606852513446098224502671402216510935370099224425897357149597049308885330488965869948517281796137602429621125415979337356631728665826967564679444787946398159383571918130355084423805105427734726330357451136032160922641576458103586827797179806162426250469057202323299320685522830396912129073807914421459193559560008897843702155811851642299372980114709645898398662715028627296750787897772222589193887082130757469602219744903212326157947025309956948034076829206317976549884569662557744193870533854611116072255538743389218213615541648098607970787291615709080121393327567727303465844524535893428372369749363983709804101658251463497420280173239110010009353010974056640964466792055286251065248137870514054875883368224996461743136272710391184545742700347432293466127929786106719139747896672873344946637424327445294500592034756190761454553783824805271593488918447872807578898962442021664210976204804698883032317284050204404602617421384816048709274899317647457800153178298686075279078482812238501007755893306667118503214297451119478437502326213057340858539261065823646887033671065468445467204678969073085888952977472966948271711414121302114067688497614021424942223766994923386595305870876015254612925397458346786063096755088942271854933028359017294187594347555630410597155080478041117641108526500386314394841833745338655935019396901444301016599645089527827573623914388932520101467304440652293160304637709833080410449429358047941391782573029863841397492976422542753985806283524066684630646269772997853129168281365007714063561649094313850782169126457012566170506761530920016261423602659585747072007505557793702166382308556921684856219660682662169281704323389951820627240976927652474678250942346460541202320157608747183375159922840673854565292345093805821780332923351245166869329641170628291456145027908168734761632783773757227086089202229530942695501745759954234692725760179852630596236171552121209747416561887294395201665090276128087386153718804452307096206420442906458797111306932736671773993437173345537052638605436294822738919768919463607185120838154079000401059525581273248853200653382768353375125450054569528964654416970177795363287676290184098324270956195122555981311605825480995914264361630672847212423886481852532696685440943446049640579169261235412589726551958102288364319031996605081624016530372237269666343200240651483457381549265547038003584970270841476067255611283020834615866376499446055955142434773776456312252066090006480865851735386343604439001956297037172719983475498308526500228330972262917113446622401579482484867064409332623094674797468118844204178488149187404327414515133657974005777849042121675000660302430988011264543845851457136565423002541273730229183393423794677828118684155657757896478704528297242150713174944732530961711275008555762797860798891133764901227049269291068409929319421327277983888138473811788102968873541576690219894359282854676815008772286048314611723485881709619099212990226558455680627428287259052621891694588409390712138410708299868306882822369665166424486898936234517904746120578712662101317197407694759237292190181659615778070456079118632718767555398664905186372092599222540705679202943041915116219162620039900783266824411250195969161783952386608890647708008815038069605011447999974002815858928399684965527461616729824758062903450848235705538692403850454061334887480633791750948453665587812865739770040198990181052245984394905750699485942730797446132743898673113514791786635639088236318026954816019976315712680900253217329460162010235537796642084637959747308643590507048340319599212296870880326411278319168265863450693174924849740721919884393745442457763263684218785589202505494990704076532807283583373663271560163461926353621025351566885659337479698935861927260843765466276081235741915562058481535227091682212742726256733689590189026813538515696851067359239840635997802699654854579745723826093870585206257630918432776724362983745868332163227011413619039794020582203368712262009819337544022297637496775975815992436146093060439890330549088881333419384364514640052650112587269658836505472557053204704531206991925132049839149688417680830211550957281208369129479601855272577770933725476866577131060339839662538259978895563091754497545913195604900587696531269325846290353614610572546996687299113513640663993575291801625949564028188087918081471911728026312846187413147554935581557306861342867918077057983992980882857493938342603129114821436564643242135808403196156978948042855835444969200425213487162824266205180923063809643332176005170331449035658397951769402964711931670856737291921019772272111621118718347468946573178262167091194524381129659541577155035533364136862930613128190902285300183632434209669964828792772700648715384281156836968315809771488662437946174222890821533235594539599716197656721375007763548405949588163279331705872232531055815493848623357196921699600643378308773277686901260067149189996685911547147631482783838370785705934721129166003504369328474071793748435171928304917660257050815918061095766708633523365628671395363677192298852802800835235380456310815434765748840879700393963279332638349276634910099846880517144017740250844490110475044168161757532214822921583827832329755043982858164791543399753059476843994233221030537625410946783374446681147093631099647624427692421546725872889349809919870253789087315239908596184697086374594776291405186225363473989383611713443268507891388244340837532971189856892339009053820468273915325369118032733528117160784592171048387587698522023508883460977012351263173579069986471541088471935047466481636196079555459368971276552792681660880898417046708163040542268043500521943509715385582121300357092216491304639806232390785936665604543762788906210917565161102364816286113071672126228929402932558768538961485547715095351629013522897103617157516629386393095316747274103042083298786170963530305030964667316993865460108444033652586391531452632028172886153068103781022165783962777177315638979640543320163102107783424548315056905049905876397562612462840827690365341432079333021095881064737309017116604222633779155034314504724359681352729773288718370866025907174501162853699562694981372408803459863117604405312176665822537876971326851460638789660052230545702860458337688635203800861680986319178362398200535440122427905127276055238276920276841704040826961510272195292318070969728769692031819095203767214478723579133821927818614013924777259329061431530631540340257804156443164293345917806820170199373152662509028598139469133004659946872808436653706931825757401325259862221033479547948395707136017741109743344541633289339266968292409452407349169959089157075663904594027470775159883333314414504508024182774073072358779070855150163659259051333759031560717928291150270174391323577462033387218796041061805233002715960117347055894451456590710613909851812525438921122988242572477367762454958597864627150863044750245554656242042010776547177275899092685281048836879357321707992050986951041033052631569566852341353326757554547304796859249138834313202457134364323561399328257811088096189299877946639574496328076051915590792710412114014442301851424788204162050177580949353735106054090990325339011287050926157205189360299779678687850491760645673395330057507936665044095824462385368816806655038799199737801518818894860996233983964642154902399829640637584237150898487931369673716534347770829153324505114153222606047284958118550436398677645883828253804933270808438942525802495223396779969920096400227467837310903085954425236811100502878444949165050017698660458226800314908971942224426268178616410859003852181323072947839602004239665489318263679737062570252414842706328163524667616881813906485605345564985369117002012208334775732304578618482641365701841835558566565932058982973417323960186940769008596256827583494918631684716964416768401860187010709904135309299959131308236579311466142380627887730210245187348878276170037201010455302547612219638711696414433449090222639444127031983271639351004399939908956642090252651239596199869705577718633653554501710931756358126631462138863185418897208633283419201833417586138002030305490435653024267327130844563766479945567934004573655282866689262831619116889258327279799638562637705672787885030623642951795978170602459912387445960616312815411754082882093787845411844631417552921207454825252319722430233389724084799085486882425004668535201569330808827096148759048880026643804849195726579898357280416359930863075275465035165866445512237942051356969814370809261629060006627663932152840368276923216615810505417034264794436471033294118140534349723389495431122631695983848335127704088000924575268742874085346304236008192200102635875422300018992345461675511271312306096277099420964814315810925182199861501607424740026321688393923665778972897802346360395625223042476561602211987963381859536430391699345509408524116440354491493099754542793174417848977555799169278340808025591332474241871987790434667882930484982396112568461317169362940240843802864003316099499699723901809989168082107355973080964927993763461189594505840076404012960210251983233355467181912120093562633153973989004809420157117560666993813992516590112248476644890451608240298217285980185552525262798710689624814037208167933234730197674592055286872337546876546442627398351486501900965819061450773418643138010439950870777999829481227880376991781919266461959953654867437461044838379206054815026951173987299704685410911175462961633970730335310750039919419263965164009084187947552986701889068436384124344876920866872040083605991535658185432934490525886196374972519080040558124193583436582755292083600984411148291882905425999149382304658920786526635168033616732918930057108883345076518326962175368621867943484428090923691249099476709630888164442126645595046770634222593678489280759296685460182322437218728862824455504793107722843306808140769065219490451827398341912183311414498300804438149853314965378189937422189645456335598416077752289694426566272441487267598916773037743692968815573996957878632456546546370917449171260453507540176778409694620836891179190796890238951702899392997837582421706399051932888225087390177358898613369884975384393751905425088806948484132873383649131309760594499192916781744903184507313875662803328674501776606569509330669825606205063374577381179106587808088628717377794082037053272044370508448586663486144302940872458769424822464498535848696982284454037136621199232867797523984781434682989123370343177393736217378126981628188570801463703728750713717400391733780365827348645720806840338704227858778537833902473071064114970437690239482944707222746327209632490148770569961457036379140979795013974694304851901115767631884942180572293192327045619586062070735728366904262194762499224503137810554870364815462919884629766865580336332481397233637837072311539165455409513408426519515102573488145981094603826031910204764806795201343922643465279515949969121226779703889589736861497256650087881582800224129038519131796681080960593901137535785191315336368460820922605789969746328217048740246294547543256077995861829469446713756006451581645385656992703735568390148285975587725127946262407636952740050498712563029714947419788101919846479381764537470214647803824752480896020131469643049758752291659959780794090680380165934540127154818071187582808659428051155676254793307479864190695075403166390043411902025085049873842168498655714188534875750478261720759683372489773840169350305910624929027125638734412470584101231016733685638504238228231565503787812397291967211558787465314956869813366249723948757245835673658735263907446293376382956074103771775213507141885523470750972828504693289366006540106565977051420031906533056173691495520052694024655572957702464815092561897441293484403904473786807572432645263107382568893408249898895308961463614386440351100983007265411297300150711300551187499308851073184255349777254799869109301191192608991572996387454167264411709006209395798475521736422903368926218218524189280239832137542647637844042924213314083098871308126218580570810364140979368274246807690294574641993704185208749570816988291716107770238330813981443639131414233536895376060832222073777231634873757652215492259995514488594357830575018554792769676623483317064910141874865758468473409401052403317012908276775916722953575000734992020103158431754992107582011163903435112368843930475662057123267427654292172343990439387140069164042455003001877073809445949629661990835061631302605311648091839039063675544525091984178132798424703174687957595347909017968854901629959896523925076216295255371110938991732761083894625034204326598734192135577860851592644831432081590710242862733969704097288215018753689051705653583178206470487103991675023080154813366221606950711239737421008915001421750805569537315463516847763010384555808941491299517516077176872969129983040800322983367969404484611962839338281730033629673749818700274694578643202197631223879542399421574673567492849983844610697953356946060035847042012161657261806507341117872106519747041025913466415629990812918728774279675443892620562357944589484377504439546229168046914749229672225457144724035576021385515950616928120290958547424925535286557678277379430879108080439694392070346976148281255367432109914741900141682566041688573889344781511331329078314279578043406221964017218780421896868730453082645451660858019791349755550568921204311690447072999499043887993790396892297019225485827661968553015028219834893678834937925281929518049022406935514345965998334207316343076507830203689246831898346143574570912973436128875065594843101502684829909668711760521909245041574635888490082873026328761734857796735734364779297689403538684881687624929571693137915984565971128884462174505526172348440802224902099664724659670052678433896557486731265840306984834280199361262314325594846062990981619248221322575420274410479925197010311291743103800618274800918469098019520958233305842698645190226579655595095132125083340472747724144945178586035802140285235858232124265766783110063452203137452863691843894618453626860602041314099033484675132405473894724804720446147752673892895510103473889014556172757344784767408042315181700106577727583367440423594027696458623264420406437767250557947354379685673476178689726996540605727641448957077587833325526574967459930075395235298838823244519279022665354068343497209870151512232535240947917291182278686278162916402153569486734520142109540059070188489103720739242811984399565274334159479355537448314735395055458933412239245366482877463225105954775221440441415819482099506253117863123615240804812072337298705496967963608314047818039858099653564629115080653433492445902415988195571007654990864410284345879363282748535334614344609459636881887630250971277002888410611556415923619388619879591757578812779834397642533991003508993799902188079024924223109969679887159822483656491885755791501459888923487432979649358070914892477695723755198558229955122617485462094898866278637555442408007961664134921685252277606598149384606523980806665342758653452659601952592773492937866572012035100092491295156764837826285225206924749114441168682679631442811002721191588625354310328476611594557405007314076427115457072518454538482801445452505495375821186787155654348670429431433390667906717114054344554923674670281447510919185511814815828055426541164528865158955709818684270847490738998233441103506843478142902643906381508443231047020264750097396793480556958637813524790385633218496840692845548590583023383777172218980605863719131929689246437869252861836470571065654640659270607926824116009608876363340157150875730142641509259845331632882412001579671534531714376390196470007689312726966412270076005265077508782701620264868069105415892292634533281805025870790538195620830449192664992730311303804557974009610247913821468780681517241939832383091747449521026477277371902668974669893578197484973910329844575629307422365310352112139582047323417622154779267617981292049478534461005645929070704226804446073634550931779124072458803222513255699781473369976233617724608254664776898151332458363255657435161270026448369609601692738905126828119416584687599944630517880828883267878228041768270097733404149922547689819026172241480959956045308324939462251669706196845173017510129563505176753414745102878337262248121041716550397763056406869940888479578803136149656327242368627084499630438305044410545630464712270360769826268513426231996187006733242194010517811593526563085797443607282587009643382279306415186052502747756092864323942286222763957371288014397413065259723175682011402350782208600717153729478746452949899419531423820926549912090116394762560668264083001240578946836041492450569774661988963940586125007565530459180021507564001758076368390417678798819292046766156432127192047809354724744078203976037875043632699576008242682092716134615407202570407148839177954021235215934607787698690146390774477053565399679799360036150723611626019983345428175872729035320708470465524109160807010820388619306111914944273557392108916900554203126572355815605969401144956321226978227419451697475657265518031683165168796842845361218912839134999045865580404931976038150539945636422053279491896574440308260049759623361860543429665151346108546354620602161978447033011797709332852318087512869217354605644669235091968537407789027497312870841441579120533048005937716798458346888650136585193010808578313262269887742003590026390171455778790642637025820163287972653830923591635155789661210301851090111260560476919758766382567536288208704239187199466299812778340595526528956312442349721665206160177524543210039033094706129142711396904819226893986636207455069588308195060561759067513677564323307571567241399629331506651172977200491628716997084708503773651607411760772766761094397945985424891315831276663532820729543189253121235609272506630178684928499703517816838174395127883022247680322260262375018705323419433201312822146654618393509417318617349246279406102521545560278953441822803155414947947185124791340750830005975648241405179125446803311612562403337068139301595646972659191824620292556276101843519435506530810823206238592957238569560858916517999862383249786554822941989040601598275941630956307281328102192756818266276264070748075681085344983209670677721662722609031783129591052620226224539187983119819309055038253968299478455748769343049035770927622008960536257877225709727098744427241350156812359576082848604760553478605676231341747989155885478379613331180211971131270383762231225392230086237569075684283540037625299348838901082308066420823282865436858107912947195459376747572103012712078368603287090353127088911353681520133768370264449477115691799657286530732770486746306032763818225700412305134324333198523312642814919271783326709970712982606138027465654726906642963024487048626734413406765086327313834306285237162319612577590564296270174693620047954081500689068655889825213891567786520138958925988335444148840530402606740191999461776959537129799017170174201138321876163035199099921999220873353510889705967247627270681349548877400955561436089083540833082873646421130264685142030459996566662023982903594818538837174584004989138507081473193645605725423810155045788233893569149707393456411897092932733821054900536559559109417464405485664318698050437879779559618638581458027684288363581001002162228595323810574805796904456650098925419811979278782467832013984351137170091612343681873372382209784559184006226052030309600331945586881579522002046953927815717346878944397819473669940966784537036998256489906318085746880731145776514357034649990832895981661094515694984827246444955400812781445118597668640104109848616766243307311643743921226616099520509768876227420715625458142535259401686351598871638039782638334140000872086885768054733509455922372372763437289835256618001010431900961473343773559527660843503153999244170483013312502935382763056253373238551021778027272567607933874881425798674482859355599608907882620621584126517353874958051152310516630748587048134501395308267974177460444730820680657849762775253917003082205837221030949716511034160963217788854781403481212714324069384610521217472548928410334872206415304105140037573922562398371457979000030548695781630052214872354969012101618690377111572182171153481310479718697423879012293274213029226251705317784938591294644143662548023216101410642382984890834379748816914851678229129087469499331293698256827323193771180992672598138673667648367149417726793941021753968091037491131419227426702636261753340872141774705430581798677827644744685057832619848559469451915073052600764181156382631363426763940912653587026160254735627375240663034653897403323448764815867127675277255030688064083269486534558758572630916043490383622571374633502478555486264813370700333325436792490323873257261501632270085667145982153041831562976923942544004758443766545543956971411493737541043898823390398649986619223893701635955344043082701794900785933616345262274302505115006270247878641131610897973644935594750474399348074183635879639516712167904901515181738559105899047179862708343708699248952456261036906324324911279442434377597775511282931930253387582248005815104881833213277164780001392696520463092973796760725764473810730884046727394250733145945745843716797014210994462141778561407938669592540521284005024607389782091877554355594648822354750182316611173919068319643530338237482916268878144684320394584546832135368187904045707542636058599799512775519369146817349841297962384612079440504113066828933460783722400247858124488822664026205438016588833423469558025093184671030078489531350359999709792606358148390119343161338787219864300778334737510591998038138203416636658455205044130845947925225382775852171805112002310826868018205524733586410772957122768110392762008944546797596793408398694947577299814127724142170200759745107878859810577338176303372285312198836423385403288116749158035864591991343707225927877009849706879575916522782031307255624923909842394307445762084141725840142136847231579311036636263257080839303479952667580118461358825617323730185885150533643669170094546027631425939574707231294318538367404999513789140631405057483148074046349889675067931635799076476920882287971409984220432720900088782392615612993588950174930107928658766847285002612795520482228156987556233271992033081764079182454377168571661503457073289726624497981527341317531619429345225120113891929170113971277822349665895191069334206099293328030757030991059218891661536223748880864778228650284794770440227258817318526697669603709626916746813883613837739978643260197048427235273655365322502338752612913593980569923422870601970085121232247369532499822833172575261946063819379830843145367111612429802460972573874229387118603962237703147910292348598393171290951469938001670207728856308996482021191667064924884288066900983565165034560254309929224672411190745060439860426561510464118715827145858301463790930273230939235219504388192389769526944395237061534491378792358689652512629677098168420438285460439736865775510400897900670513903928847183150559773069840552014724862351929527290897129591706366837611543979850588193460861765343778581115700615926184411747265290789902769212507035874323118835498594573176486106383054778000937717479641758077971277778223124405649146110451558635140323252504674849537064769334060881223664949935148158289731695564518291060420710662804408571713224363223327695474386150684060857586618076885116058785875237398661395948098777050978879100232579765495639369710235927961402078734255793478705538162310144551511948881292414944177608778407519848755276853827338287226275184266874394229825657749215364777853570684142323139503700004078469833926475013839306080064954993628290353635809249675464061653295486971010469195078796630299651635281831108315567384098909628827724763790107817823126718101083141567869349393902756729325009083420505519918435378391211098584593485525950696073042316015345871331418358669407546894213095635176159627785630850883848922082130155529099255373184918103876412200838395676083407654727711467324936799553317834978758917366636737029053223133985393493151519938537600378898776408772160473651678530995212914882347841076853469667190581024405889331806301858214588364198897492693656429958916620928104015081998586587101891789897068720823095980445503953340286941473522048840638834161579400661671829541673865259299773304319203316662751324618482754095981074352351166438052206580647733741630006641757055919846935028590793418707539629673608704901730009145929297239624650177577609292966935415705633149382135297401170918817416521068061900023220808162012238506464612757860657526826584626558431448448710469879775838606598089166891288913467987778269635790364408241464447930744677682022985491566239560179468701461707280569807410820305021287961132717071064233159803887301360400927309009314292795015245361454693003539152152976311347487556710303861424267456928285589469333328495243019354000775155690300081479046686858379415182390480925143031095273014326781146752844082317113357860564264841369240880535784988477720661165476905029862418364955450813898732712903973105240578013919074270585029024180142687406298224722413557163548899177487926687326843901416440117260567772595075191710404061981321594166384028267583519848073013260406855673299243596279987759961455087563424659376120189530345916756189914577078539047317114688618132764281417356051189222356021471172810341581784314946234639815277596435888033783418249873761503741048522615811273437141950324856266844368458703417567185564298944052423656871439224105676643536505527096106009260692430405517647438661260859183179557471442284637557801675102745025903102555495650199606237956405463883280541592193513359837329169193744270782216719989769312071429208320366343461042463222925354231842305179635893777305087173867118146159976392339723131061665467596715097529933483027821988471560405878258575105735797283491154557313121236377563516187368934187979071822134274883255178195473397281845636212558171238627332356284214009774397205154179323226179276727115198492307083717135770439936887503029887485878807298185834096234383928378627326629617452212292945757512797320167930141479461357391062727516078443609765733365230924019477290127975806674121245540520476552444258313553514913590669332682366905427902508290438291157798665144716550236212639025830056765804888002379930152642253597073644350232322022923844820859129517728548784058973301330659526660251954892167456194848311218776033475188682040842134952306434169027320116326296862260594355177538147061650607949373157856630080447322998827763084770371208256943071435967767924434681273352180125211191727515346561410378132289665514710991408431276957789939231660246999480579355839957813649949483567784702047404794939809196293576127065920918957182792804075705042516699578437088915734050524632950039085611087712096393629241437667295998058708053461864904569152333959124868976155530983689542915986382256134038649454146910581892650433586057785295811397022752260825248151738709188314240552821586619118283826521265813037081422223668184593273611202005121952750405084510255877569342521562018754976554897485807912780267978812216357279483580566984416089904673185147379333777132087736665255812503502389094384263798162048353264382509276607059115943886661187390995826738813532826289079713316991400788999573968319195237843095752009227641902890148175293631369414222555284634553944351053474066959158761480950090049038860488424652060805817261687497161562889930322032727518673726203269568777681173969942866536536304531034111169931165921226312843424240726084028348961033549519259224054554065468159801169515709756876554208906717788806769676198800900670350236237746691240086665274881268807707213186748587305851177653099557840473029530880505089026926535975785261949538059874710238082773262152326051970252491079748509721113843509566781916898764996931175054423536494974111006281161047071913454204206622720410003644268343591676512514642155918361409216315567131154495243109983211841279466947845786932491027837949824502603211253435944224792835216085286873754855917079314370525152407449828205542065473555616012931726634253230076632570469637190262280475493989378005783463554649571475860727207717306851155330682326088875709042824497327844254261179047557592382170898259945032268049495129459195685995016816530620281582506185396431415900418750459303761939063501281798878868051383071977689448684400175267049356103295491695493172906022888705735369215042361239724943485711520014078142858257804873744446159210356375879203682684713670780006832764433541040316732250107782418619584566958706294545736765627200111913594727002115181288949834118349259001677422903799631802646485364155560194325408117737098209006018954302083724537793787326397539176639622405758742983024641872837463765259020301288994296906626013490153924929788052304228123608329515940215469687764508638085300491407298012427322577507723824720306746346476341255451941689222785493023161396541490947910770763048625456006684348463196622122755839927914524487801279266866483651330536200616524809793327557786462738246803610369521052606252871950762575565535135061298778463594573678702800807429903684553504485201512466617682874730220137690067645055052609853886268680725199578128967574353510876308932815485552937658866634854093917896945754951622166705708202603646771409907678755950009432738254487384171649616219137849183782766781266655890116674731741973958894441167201954395807176686440742042624246669698493067495642153378439704980323873049378983626445691577781205414575575076509838128203167163678045988498339261619010620165922656393862064160554130652113193974656504363651510416966105820965743475458821694663321832205566792602132611507640085316967207766225204521670585538252448478906667725502822586213725317553901906179929644209022048563920259141787837558409981526188126472825928682059417171961992534345293647142928361774395274378379887984974050858373212752828344013210045695500879788044434155109579108323133053876027351364673555612299583360681608280231334120790078291678265003461949458248732366783572655676703318000349086893431391471709895587508050855931027963587694640908103168388198340598780243590189079770979862484492452483242952768679082565511258779302943866070749707242612722449882481600909763927513891850686196205526999428230641633150204944870693317838416013965410602207594635499932959661936495360365693757841516438234247198451762368695457091175544937562740545104142062405025864483405527728309748029845040553439658823169806502909058428658125990234624909554969501077571766114194010351797273324327322606030170878269184238815427646607260968168877312563632006403318472018352467377492391051712465154227766178131409723910161674819880645203784480140850669662597543339501723243996949067422742814478223558535877449130745913726105184649846034080326854819212571488920666023736998461895790680590293914238799671165423150831956411009746057102185155682053310529398608083107541207744241049971877153781875180694822558339671382843472066469037645481260204003662781088370706553632604865131389738101573853613535002456679003323076859922774534050482291176220654042979237752216893816190675333160253916790970484005612097100061746355721799325205385996847400000504901534003774100113267666916011916675567611723542313724998613368573651057492165332976848230529744417322555824036971437563353674087635808033180539759415480385936954718147902086516281099407853278406319429565929803453494749427861898746784911766611413475124225649068150813108701041841706075531819501157358621937862655183880279589305530590440672372798935947188486863040758696526895851241573046780188055450728466794137261001192673750167903264584993255075503519778496451355991253298968206536322368558143197306620365095543657738168204400129583026105526610991976156462874285464891332380586333900203651279615405445502605676560382762856403339273673414709108439853664698436405685377273479127174597838913918755876484250761971939404962456072008620821644134553900342903108758413462044749714645115114866732254323050082039573661932408891280483208361561544416443905682059212314206237658550671262997242404725536575483357707800421799862342348549742451642543026281093140478372385412746646926057750269983009807074544219757262407392218744503491097882109526820902104709027959344845732525933845537399713880772970005568535294209075776525595280367717921097929333685229512589000274310489878604591705025007035284735025282762263713385357645586232509025376157132285149506678180431588042268746625129405343556383149011339567499782710586425515097872729943243389037815134055177431531684940121622786610216071876360441566262005647624461497932417428043192963669980504279602798857429214065123108407456912739907555148075896705711598983769696533151488945094228493299618926217815388804075876866235542100096693648653136309211223844984300264478439322708910324550288198489226785550321237075581445393906944897242297581231991626773010482925790380533310298106148335650673438443719609683571477784970881210687042015794718007322720913474992856188846302538269278626835848401310250140095746002983209634549071945934867136351887227619789713972493732776825461208059832470449234274405530164446654697551173091137670606025225316559379731589122590715706737564562724890644202786410367027469063148534697272459289913453035722397473182204362096403163145663072019367354284801805182550776916193321822132375364857318177010315974175407552831241831757000454142866103325857432581251190879624682899651081737659819012717492577940443396443785566019030321952924901559050637866948505037421138493598728158042651552285184692732230752980301535943908165661878783059721433448173977555339637082458263671214554152638996192560422998924715059997454600447227320705717781894578119444547387867448320702254008006179720660991960056802724280716636321340016840652138822656364235505540220145524416613193064656123886848348774962188049440086049509488960634744317115111725524559868210675124161119031658301913243283266394977293296457159258220414138448440628882684339771322735966766438362669212684246349819233483284685874258161263605339813127266306465313941776505106352802726194811352179299722585596297886352416673196356518736908717882036075397553395897535049988959805235566528410411215655358291541561860889655743042843319561311400298824874521257529346360687051310937577204878226508771422282662846693749529476172192311295888484285930241950818606615112180540582798918312124642253139304365885890116972164478707327688087395197517990628211919793606196212340558171358035256408718640030362425782572088688709740078359289772108387995352563737638016030911506477626074755012193552883721219868447487057658247962200147170302351818147778598410186073761028291072592650410804193174779052727321287906675571109505680318650422118396039926933765331762832843479013430389655471448713968125128576185628415354341867602274362420546331272397953787479007309745268329542419664467284495140495710346248095319032006508586299326390438427273923806913536404889851531304150833792653578268212640629014434346949447648466404345220135547191189276489978134872479452721467987664186165013433237155617687877255873096772240243111661366600056785964764802337750688312566464158194601533240041608759249273953066543948504591461539345342772460519906232311023584194394151660215977258212422638860882939777222957500953025448025242137247292689806412144704107862411020182985731723960449372251285868283230587067326624749796253899990430533427200051136858167038305586745345148940310808746404417692206984263740505776377173168710664808134765978824551659422857700633473952623155964565569087843919997276506030060956855146887355561603088994685089399097834804460631013866627872324165993391676935084555759408995261933348319097006361164889418964085392363537975290186646945102246985429417981231311162547732648962906926519907237000449647548574892650750176028426268500642207594446656058785383978707104069792182975488434614084843422345729520550338597004368322643260334087845136331107152983421635564497124699504780251134557704771367985643867826909217159623434014639578999808563193756894167192829730417639927774206111243813358602962931334553025306984347835321201378577942755668298261972955754562342054185009328080043843235969204377820992224414170132872426626773868675274500263119269523150558354889521317942773254684307529599075093752422797489672134228653458813870574354898369296054678156122993014778961901543655123446871956800301398108074723911249810418429093362054800146525588011462802854722977839766829818219653003005942608356141791384570551314979788066364614283633712388019142471966425776862549587699247032535677678287391787339375224115588089868047936274790322023432374358379259641942544723059446415028262715493726832526709859675326600078037543652231629699883159507617220462961374757038940960167690579903498053188708011563150116043564525938579291241761570614120653786383532610806790386444228597332409421333884236637231641898796053113044482017447627453856314155141145691047173140946079913572974453697760563191005507442169848413086455991558386313775709045284587941387155408467509903016447217117326935476117699751353367253570420903353305525544911057245924537347475023317736270629192550707793397881650466768365330941241371485519538646625063446516888007231267288238657032233128280470667819278263338363563259580183596865477560979832891670907115218878455190088500467722306060438939492278794434890408577539603402227141566429564128444275797465165110659496236264775189770049250575328354877197106260701965420580937476543706314290629669167124847342030933867547412185650343796877941668952458228634472242573480291365641450136274335607479915345423504782945183878572403985533878481866463441093482380326677941551045076580621407216258701263472212207368893234722383450077681075767696294531558449236167878744432393773549561828479317633004505666474328690369782414472497089037145394579609981982510332999501928179713256478337373571087527527120615439156613036007713409351965858484918394919131097835846779347583637282123399844563171691336713247394880160306331961516954882056766063822421727839734067100822416203196151543559522191614159997398989207328070173588047009154439545511927235513698602216911642355447651219722087693771393633453763295420249128756158575317242530016972534921034784468988567547302181639250918199386100933858597476114047504846970803098380859480200307529828512069396819218526564171558332364369359230795802641941425430722296252885347674891092792573800737497810045645582824510722905104611618158112185626529585676830731102858206706865257329388285106065425056659540387675326243812143392575635260361397913878481620444283115109346835943649985113867700858258780958164691258154511800362632458154183391238787194530634135510998549444537583020333415321230560589962098401929193753161898520821153775622179985413580195933858158469437373360745201889488517336298188569229126732323592352254834062941003753970884773494800345517564169076571370146727119624596540265560567728801730065579360945497844700767003287502984804657361939993781558619886226111320977123064042472386757376475361465861421577607135290759325357209891967002607813631801497280175495947740233098915876938116590469841578630930914930801137700732525125896046366775639353223244025475803964233406901564148282655448295564864526826042143354555050977216441140616572274792230599925969053569216353693555701530492670222620702429667191265173121130234764583855316896141150439995060341793224129664668040424024524139729516229357707005856885984260899794835847036225154642814668108405901437613951761629816537467539094665172441887663210946089225772744798896426476285715980303556980142995207572884870121702933452400509735964482709396603570303624625822944045233087051217547755849490776052926700007740059808845388183886368393415469016169565041174122507710993914420654454741535116348049593741300636813514079482468283415302910081441683692068223193492006173527698561527684808618931595143911469799680791482380103162953815402742180436530232710836793556626309464690126666438137709865684901285519249067245196985449742611890871675777379892396224593053069506333819120010817056260396928698980801198183638370575650315636305829481149942396670086441861551550655138671606734369412227817862340072219863903194548250229521726720107799700459421900642277899088279424644319317063136221282916937389108502004795586010840996301374126883260000791364121671231138812206620590347141163054683519891535707975021622647387382456214374517549682867351456025961078011527237007005386660386013784745660368071389099394544554940074735765562985384977880302126769011487013972021702498290918588889546418860591352137853371267168024249425409027971501022697182846849045748412634917695746934952883270463377935868295668959094633954177424928802635561055492303049321125452372835359368962689775681492846930489454797639682714210224461881611239529519626687213299606786579846412521229088067407424629647634473215702967472375247240997483966346357357697484125276555614467378892427445846541807703685809388210898207645851165001474131556243853099993341512202561099514008277180144303034401145339769227856787003589712576384316660100336124334386277927980658824114164525727657443897977873163958861445892012006411400137297705081664334938390296712565021849784118147729081094238259003090260591608770661555792817779552554399327435855494805353176557406775597341753658661386328581758443593899122287296668114275271527718655457653586668177660800607486429173639875008719132486723724597694140750747691717037667460343004081481252567976871303656386365749116815686036203157574828813594068689943429762554833365626161665793352267963391761470766897230296397200220713315490732411386514572306311710668159992330985847820339315686495211870523444470308335566075189576936288087106182253057679280103825900877920211284027523665378253136506969924138127299280404129499417599237041309393985436575712475203803426449204638485420818725739240801484420959613776843342503421284888307476265299003173861392097004996373336561647967777983700142832590228435737305517447491046484794500913006794301313496259048484812476407307410087270426083142261290718968128028908692708750598815965264202057462419643427136718733026252702288011068964850258072671961835956585094455953651561893421599780113574890267811241897991373330235158081207422406943312551767069493187774677077442731132007023270309574818628090076588363420685038658834235080215901938299204273780154113661699337180742424973558973781662698914974728225752608016292014986995435461964448841393484740954044896620652959312201145800353453074525316464054883088639843320667768609565597406128842344283287275909999605015938796410298800535269135604525806099240586058351042376910825581434656405191902832270987578984353690145605849491700322089010231478203512938542966634222098759423304622807540128486998776480057236783255534598241184767411126830154900323769524542279833037853519850516367797190251342381731607780580710549813444633422803274936123867541766587533788938163037368168469026290709865746238575085123509640222054177810880895636157037666622228618568761740465228573666330910939629789386219037257602357692254021098407579211662038606785035605543004917253065533170848759571281735057133448985980280321191348360873582304448638981801791470479833746036451547209699277908666581707720542012004458578473379017749966838262426535741764851171866159565199440043254526391765692640194050487851687059701557454701611501378913653572716438133035290485043810174913622267416006421035603019675360494048164579941572334883330471626957334086531952838144015627597967827103020657382652019852354299821537996551331051592568145085670000841834701158627013499712023721116990586701506607355747021678792958910445363753672395775546311369258119561043568459262961491336873915897373185362551738702982036871834678348001142569158800874280716496618378765067676110620962243148588345225147210547366349103824247142991999740786198935299563749897012984952849725054759724727295057968206315833041443754879679173779581622635941718913131636960183108773475072382599694972375009307214780072050331053495936081731351794534501347396337435428563393066355006718394608485822845299549324275084928664257451406620311178095130998612948849037284056937746339423956751069028775546557103948459205097846329135367886662889700974232395587587166637049830456770465409783085774312703564403257185060263464709061035557635913464496892044527003803070133809881540457241409581642975799056510340512550721304760256298559056285001250586566518940622712498314140114590700768128683195871682491193097890742319132119685782969879924313287855440972767755925287656026726190395335161601440187166990162073577285371595709747572724682614779613420002193015606825519536293576836193743815348475278933101675942268931478206100331154563797867948617262150070125189139209490399442998243267557300343834564881134673055603235971668945457944182242209246213767806579788814519316667469314388952979307149042826103681037697139338921563132479372097189074431580555779708687403145714155436707070811255423820122578790088407158400418016068264873000806014613366884438786221258031095087596524103166636539226554104931702209468193477461253043860891838295757366421388675098615286204447053445655696144146771172256418184620386220009911182429118177493179746616167744769730982431702730485614723313610087617029942473615400042478676757765223975032284574354815712487546794528861446644137200889801013016147542027215014564445184052440969484750836988527392688614015321697578307566510496346571818704461859058293694081723369069350554590295634964583703348297590238376182557425849224013152503038240170528238050642857629678071743751665665690863221279033798045070841448903179647820357049600307593263303229609800738022402734446130515075438774911517293317428777363471219270193878290990878139795487463215900290620775258889760526854575934434649552989663678964704049881515297251157260412116824764890885743892846267015245493930514811279028097412099579607710754244095866708240568856931871354367583790494610377940221136968566365820987030373772725966942082543851948611149602881767948305892304717096529156349864073554228828111821807869045804266802634277329020038434635675315791219437015851792242815391421240201802985527412858936572664762931712791976211466549398606332722309101566773565018587817081394363302769975734911295703735280626507456742321251208010361168123419149486557301090057199403100424916644265906295624280825844022325527385476303401164178831994107686525499961091746935742153904851436984964742872242516189262503897548042646776589931613376216104769740335140280047304508192118234609798129748340688948587523943400091465519362048066466219819283922772913471524706290384841862455473651670816910836220072605820937000067820015612503833709640057530496988935810652378957407314686820923006969075337622302083837634503375328922776006606395759617221902518777648967299421868628285665229471225846511499633116231176205348329468721881011233596994125876860002759063035689247823363265192778297909136293751003809496727426732453401377449961042856698247650820907988220519545043352310485192167240576611939576931299662822480378942311742490680780910884803976932736649645917025974275733372895064575077852517824504454368648608045495275253031602494030017867677322857502994244527657218819615883302922744703669637856200198117466353969814071595746812434331486269505248954063550685497231612042084085379247974285243155144986076302886155331954319940432155170006104285818082364821610384679225524934429724196460421605793716683137682328172386555443713933009515641760932008091997803722529648626617717495709166936718485242071561101756528943437842789487804349360133462724050637958931799650803452762245613448331631284512877942398457765639498727242708638638863296352834409861022904496085221961198193212613834350958606384968183509967438786030867656977691681623369771132213324563380190481714225942295499520324913294410813300957128655274918926406971905750387278101143990155969583126092981600104282790300672612866328083654805641196289286580650184536287061279527955632617145090471082888122554710521154681801459531133200353120190109168835710860852558659964126415882448817612350965228334491861397764548479150220558232017621007362033972500004873217685242149666765667347758782979607396964242483403635480986318194661716054981009932202997572001873692247507928712579818643423550255634810319276756847662431231270966159906573952192103053452721354969925831209957211571320173032386608274734665904353449512253242114141122407678614463181418077812703856461455814356677932690216637413530462736082495865288349073772464022780138823075260927097772060723536169971804558497407702515224531035080355144450108926337057600686555194058852088831365163732160588310127468653701151726555636868506993618889231771872785822441889305687425758360286938474223189237671465246225851082772180978344714878521214866850494164484426881761166975173904371218739815421996256747365729757749860599508402313812818775521566013805078122770713192388347768497969464811362774795289592972260320361395847548318360126651959878373531072449998376709876927527133217489072463464686588122756125669715206784625032488673473544164246250366088322731434810562112480260650107659281272331937811648636689605235431013133660487362873196397296828814019711282480708994332798805954839200252533847394107482007314230761254101801757859056000220038894215505819168899489902532671469578564193603098365997054606208677355005704365705848211088069476630322392372396700754504753768297207770856409260368035326279186617417366655466723206844112179139763856310423461458035230665540046828078459196014462126881180646743030999149919914092981886201796070345639232906147476917891636972670933912097889956101968172848000892433484477892575499565981708816893222074721768563404271766502334762179483962510209632000579352119075986286500621825893476669091502882007268787854696307683068272446896357012049841460141482704613438403867674490350616354846151276500647280875300595797784405937786971579037207898595915822603699484757483265387701400719110621019631402237133382800478235922185243983414242013005221956209712520810693607029005686571105902549061444737417614240177852811485768602361864189954778062054956891587282120708282019542010875765304949196766897004094692926714643491058232573841469181170775496709776803641554260218930284679482900194878912019994071133147165987794396376052746377809345568708073622197609930801681200195212702449682031501157799368846247543685331790363149092856141893383963995881362905898531638715724225535235946714722977776265257414639965030549468101498087976003626417765438157166440358259016270604207670468270661933076560305486294690922386370714272780165667084877364307442894793132875007946407652852033029544088819720059602189287714054286881134539340630856070281519753870255528311523136080264765435151032925101254289392122374084094993485209131358142687896888456860300918108007924170805838777544271531342498120653207075409124671273132162338892602072276782871780322321685386312510252456839358561435145928632184180869587107194263007424842306973868908843890141837894808143249309057280411629260002137183381682291522735353803686187396855044177995170093626343713839511933049878635966648352806586164359629643063845522529671684624285201662698651995771735706089719572068456680180509635581862988209469377565729466604072213704395911849946573393519144053070244079135246917157533095594970365252643876078854523342020290151345379007141526096431274696980714013312599829833578378757967185316572165960532260391628675002971543198603356580406872310841913721611869734959359481892561688414839041360745709746316857550569859700860888544065702279546377117490536640185801291459282229176298285745888579183970539125895936138568213546721715330432392094062504147657437542081310719229447144674693158876674949578814260532056436736416887153714370558327600501342448543975975905511661991724974421581039606185264160088110638358409327506751741813824396320131129013215213748666460097957254676416540185717922787730317425213531129914012364679659150361241571788629580137371083202187068309131515723431293917422463454950922381024520530657839664797975122456928742303536795712062711072629836770491408945479450337821006354611856130036815535876917119288326438683539279477825618900116631925769553850483977275447949248577695698453495405015208453728001106006061097877924924376432800584794967231853703651683699921697248719469007978716031629686075193301115525337789473904715872913837971831685602209467794107792597407152501322143469518015269161923168111863068131819048715412121069429339826757751825149714830053607864485530516307931793095916484162224800940705804609607680185524345549966110847407091830701825178028320570244228717377127905558089209384314223214214020876800138056182072558336204944840755554678295237415390600237638707641032184825221458764338916658587993858133135467849045628473105083498167515888138759793778762353922250638050913041847109940181456956566191471469372090129173996936252697788582169431875948516335723612159265156386914823265279258239301971963871619579212804601044940982482096838460685792378680208508373925044786060332125746522191176696477169595601616686035503078584568375550000618170410165915187380259493078529718368679970136570780736588840139808121497801942534049508122188175705956051884654617335326487008208334282228936213413859039723467861546991412939976998011939442383461066492964658226797038138061157077118519490407945776715235717951132339948023324856516787223978779400875542848172687150513417119238798691635108834545624945940794856812601402048166093773377321118285305155670099105262549657914698391508309697238465202827742381525683871700360972949761765631926819542118892166414296257923912557833445327223252432190686209876984786324117888734470045070698379014431301406021908177871904043196836551871745348039530961359685962282139550164731914209883210928607093824884669617186661937514163727723331482332742795040746241877567539789876929451437851103743258687470273361078388216284153927981157838539598995744211611675366319079238040999162805803740183768445928543965083376949098724485327869979882589922859778733507149587682364493746572543316402517204097423922908651471437572546525863877718493268184480456827491422832625497008288284789651833232584244568555581752728535337778518391973064089442653620264016910648388571015088150836165481535801210379555116812774879238540023946917734267873406962698692024556255098016057471954090005814179192616961842073567516224811132491392338242802741780942386824571100479570847907996116823423466855596059385019860725664208725701250383977274992020987046461987222142796294217748976015520120980589161865715574314333604225101734541413159771412947063288813620510368251406851568273073587537027916434592067758550223801214871436383562663023504090005467591205166510054244439590466979039499002512351435733649083794887761399758193891827631362129556316274985774396408615380889745551605701542799732798528818859871288183786652032285907406659884283675483214216702902252206931762807020171043121811334114583170323697140763626669763570843769641061573156011738171309189683978835576999787416046314021613346502732884351874135124982424863112762908978045166011495383868440990196214583011452012450685809081765537996291587636474488218719152368247628738041544017379060546862305069010618552935895833433526283975747753054305220343020633875807153457340652546274641692221036152196896768542262245630520140525737741360883092215029292938044300574966159379480905442856866708199727968301563448788870393322616872052419311135220593559974906437341209132665784200695131615424553271276438008716121647444133209269588878166029487294016312819146541499935319891327078544297627567928028774320318945636891769814491446142921056248810561522441649632534370871433349961876160988964012447812851790574350456173322359708618698245035233185305036179804544815127821665850035823408140688252022665028524715276876454081282743765908038513828994689255531429081015119760136184492162135655124389871906577419404319605954774902484726359115273612127887467241566380840359274134741935039688224572408451983001094617336333828508357259835531949229230456012540635652517812992520899158026226160094211616100487047047427445444694636420900325486715033958374092649138398759357250012979600409465926848478572115869783718079036632245500435638439218353253726010602722683065412810152255150225109779606160378347571632297611434880109062322212323000177789519610048840989043848508836840724788274434041833076979758746374254353912315625098042066701952890391206877028968174268354378497387682734477659732382838568860886971366933514928505671206976975211403809836292977999884779005247014039850212870916924222946954643012857994236784099724655861064130246743914900590852543855460483956021227371430151004923348087033292690149088562969158175403417081250695508883288340804734222154766456573910856846871354816650179543438117256960513188697092825666199818929187109396129364736612993162196383132955471251003170810992018037854848594259161989246598476502550204664606003651748788835874998006508458188021358417879226135612218329129875734945697702478552780207972479010016794725414007730063482500227437170733831580748316285024875916608873833232267947472117074621478590674663930562938006869951687661979588614389136995825087247582288549789235382284559637795343211315786220985868134371647515341523479724810068969999074560295167270888897173358782144694259140467501218773692845077055322372775057603568992934522037172887573763130613593783705265099726001428735507267046760828061323638213706758000137618539076843567623665963393198248403681506849203611648142798690625267578655126666656325260165534296960725159397075767422573334843462725779420130263464144087017963659216405443370887177549771880865408336420546826962253530773824388430210429520190865123148273645874914894050926749725283826748170350943720221610186088984799914195292082849884861143211467310378987398235936984557851990235138393816174297715959287092444505355249818176179921477762251372047747883197954503721602927839420529736670546365694951203739709557585018356892800148062616389770962717431379303639202890296316196716806016808014788112943967028490373398581299572270685455877441656032141164092446594332276667535573823187228606159400695671263410728052684240615181309126355195312407059278988064674432811947700451759861519863514335702245306585710760196674305278287362773642857309653424237266640764379950238292444641110688798879586854381046733918969047364972725413943145594657972888536632699703249219079093786306487710844967249553646982525056438913415412173198412842561547163467348788398722088528907041525170449029129403438413241055471934657461417475826095767515338306421116778269110759107683734904872926722161156498660158597660144099773129201813997843880220906936997596040208444720942129472363841120859032195858226923863131763622373662004367912175287415992565095919326494792857884970416417968348891417813389666758000090308887416929668989113498533764106850584156740651956644019250865668536150827051549542743992407266664423396801805526670126972808852373117339336191754453916430203135452335342269489263936634723333132419390049087423481677176988055983793149269047819574459108275821343728417136813278273172020169270980182610437190855468250213347979648225805492809240560047780666081902968636366198564682098789044871989934752587386157958924019150018452789156100284053606393738552523933781753756315646375681802889122593563277141529768586944106452739690876653183638530709585521986898063998526201279131172150151711794926611306555040665219147562673660333873249409115694613661093758101266694196522341374536781799202750098592919316775042494035001381826294055273255982748506866982711102148592379284268964980151429659498814398455322352670719121789412826018986459116585441510769102306232992695547790165507007090730651765866317204979715814460194434871634663672170798820335439893481132688795330587118646573458488168443015456513104864405056588875205648824799612177101657651838220460442552337907517931370921505831442388199879854661888068850519825365292339241512543290867479513928455150004230372418478527791920092647779948188258577272995109680430663032837758199661844066078588212802572643297244350249006714601506758646146911887415368972599931905432315743290191974875392867540150916365736800695865754105795062474587898276144855756030820731885201025700782614204333254745312313002609777522269675738386752422731398555722730023196290916747770017404151116389527521808136329596218535983896609219251264781285653136333491485659135006329878032300536379474768484478377223921230977506539229999388809990440664493296322107489558554889973907874526795892533334753849682687149326665874410054604756013093345772249301116282800654641278513919084049542800095034301064338753201718487377769931672225703558627938684777138970890711190212193113731087366451089951263575825785300825457408584938861349409294043908490121593594445728041327253160061515945868276983899688435225928089651651604627574785419760164712483639940865076581287802469808978938675913006525772224909119765116321315029065426454387175884696699162437815811773113679645174860052784590504700811737741599267717716012862535558043962649169126369519020826327922267606792545841921596412874116265492539225288994989540355674369969129724744765252524720010401936001276270007824136660883712410160170280899259271661580249307844054922956381815703286114237936286059828384309216703286510728050173455288746579378221434247299462362499113270881729349181950160852724224793076191113474499127721456034178327386369236500407738648114339156221033196092862551600238952335410713787480604684594187202547149305672198962058106865551002899562792747912416552338611966113547735046018416671226937172330970845718012552412905233708741057276117584660205445146549638948752192288450290982651873561704722690348345244592723197350852484842212397029202959994174387643733553329374943282785435684236481699469591178121882057342993240029420347342321459065487907527489519418092143984345574606742221501644621183207546776371174123089002972552719352619292827629143535875671478842144772816016745915933063721712982740008178298229418703133258867343368642238365819909541880480745668110550182806030578689635854593272333803630394661607635069617652214330478147793484280223727637297514112764173998394510800452515749705700443663038916597331919446251494216969351035716515374463229903511600740273352994235457217627884899712482274009317094096333230300766955717913736194855840939962500242146399003320987123216137797835926530069666604229516065150852231523207222913708377565834996771974360299932855933731917544309030636729348442131089915046464060406218970030382676838261173622870817433910648352448780625940200241853982460860640690989130931449736892989289321909245356802270398626030971614847794492782093567825286706168073769322697392397740870347788287564073531132814144822962345949838217639399239405872315888166771079165623853141620011249064304994197562045928815995130871022084620697793356820145015351742183039275747926231672123404098300830768231864525822235088936076159642033776933583771497169041661778357921378159308562042944210602835214901279028084552670250580810263014444673871770638744266104094762936557302140617236658694109512692605721614798824256693913149924682567368536920942002553556298830961023617906267027674693843204172419934826506114058383266193468363002851170546792046022499529271609346555014363705269338502489392323652518047460365178688288710835493137048490336257587849302812236818517022671714929054038980292956406543273569910561074982983256653810260572398028236442360896374245874404383766086417068874846573209626883385772046068436606581176462972337572632482687951745015895485084773537044354122352164455165324622249954424804277039942318447871364477275765678661369431915106549799807343582391272498437149609947758672836147493809657074151306092033011449840600290718751184781076203640046198776295990507684463250941901327236856308747746869687423522113317935488212230017429067867037658982008220353165026231451236708341365706455952007247957330605049635778508689718849582702422811562557727872001868247163396737386676387683342004229475729631380189380185867965361397672454664562667108940698448931744556713548319988172923372718338325085304484027468752938387587969593457355209254338063085457182493297988000180600257363555421994121564769195136257573891107823692038660496631402534813134947562094689248967422384305978167117985820554074990875109843362215115258987309367448795171586174346393624840532867195871399207752421569493356297275333596144704682026183510872376106323905540386345448240231322821482880484202661470916555796186007646987656508538400328891104436616811650109206720127158676826999408189324022596874563222153604448029872616701406890554634654414758787586721888745830455405761432649096319741052321391008859366636321595494553168094735335310857112226681940482773234874894842910342418078380064412129638342581617010577324651072703519949584850784773340683157298514831083764393233374581960078537633646941029989320497365626537669457678050701160203143841368190497494138515356397984629877699770255403131687606904976240255846765842606177886046382553879361157465298029606904305801524354074965110276341318433775856688093619417409833255626047557526299975131157483925950946966972760150439685967400113965002045451786032379280352055244671823001252529718247458267141726482874396223438047121578996037152627353645447529047133222687608162716162271360675532105675926410079144585844155391657707230805103399612477773740868161104067086767360025325717959730813510439557503273913651835541621852550584108838239228771321672095284168243785198797976537937794914200771579402297880389009432232684776826555941074262533270642164628747395793875088090013432456990710404927795801336278686349648579743493558999457307677096077463878696885083565357872205846795826342182086362258589743708080416747709582035770489372814163506450755046586633712017748981437432772579699038635704043976300504526339183031350175545834606687817979127776187422240064004660871444934649700695300526823141659378548630959322470959002222331135711813180506527059095824125906691005245329895842466109533486334457073929302543313416703004964285590521416782523922595253207498926607150209415944172125593330908184729326413011357603108311458685942193573972495143205940722943452233948180219678604621679749034663042100194192381109328852600816967627793193067403268383971719216280723879191140706869758173736072666625009399289372972116154494502719878692121787035850566711993495549820551554870418756505946613170294025532766445350358654656076710254654915241880378391262912180477262622014849837046533998905114000320971693742562382424107028623344226208186299675506167962379863212318558731726430712938956228660258114519763563208177098230244487624933753943532751086435511764327071805470652001973603966127633336237738101192729363631774752166987731467818522882624789873605336736019339395323781194305034427816935922052466674594030918411951781976400616520168385271342931927797860818705891616099736019753029990049605319691525335759402787628002014600360897918286962357275107076582438708999890013227826652916831485066150211289690572798806178607047830070309307978279486383737656406134063533409449682310051913593387484517027209412107295425456359653582254656580073284815244054606564197805322342603440361321756840187006370569253765725016759485026870067027673741588883807376009586961147149465833236514109751779281613431152634612418250437887176221279753756822959608708570116255058087531086532521895877066850821596855241828846862003948641284752140696124186468837650305159904079489826294241052485250424155801797452336838155135110821835017786372558424579409596843490027060863571339688356292518037145514653798330816984690120127037712598650889876633969930794560683369453260176956491465267173346204816314872872392546019533536742815805802111133695536152426944754195335195155829262067081224191223252320409065380638823847125997377394370445860451707784064352739759563167425533113761750174764023197263625355602467291543350178301089743370187226241538468204417264240861289613413800383170048361329272980900432696695336528170385035198769199411138044344261142778504580815027000057401005208055721920111855112688087943914477695266901842721216120958654053262078042997733201272423077426039750089149566859533777545833916137378554012235336273904034064496177340366133250478144576754627063554787683606455588106871505321208542925591908265547596946075676924877799278137049815267963276503115166822850109717691563933739747474110543640444658423128946222709536521623084662055883963039058914688609469609475726885903477453962282319305257361198953127605233727416070120760458515868762813082633095470286440614208462219405744373137995202040119905831067621446650391286601514991103531000163900671536706943681657207724714551768309234088856753634121033983973403130858113700530330548912974343774776041394626068311714204594370311787672637229350720805010938231049623399618406352420207500347049015253367497137622417248477597543370651586465215624420039387898081103223086154368248762199427047123631222085787148834801226710893783304973970614903041289970254856927731334698502813397597652567099434568325578965656337813330090825893916264012995748909202472231728479905397280016219800565724538953193499802410299368211660340285438506023938270899981675834625166991257538533863480394929680797911230529862453277078676756275626057223555833129558200941039947860577055982151447835941340948889629569296594402963549676437910927544985254793165896924290288296368825515765498178958175069474631146227099062516323658231654732216040909446674221085672710919152327211942320814779650032606334205650132930867901267158920257252963297677648545312546762649161705753125422076239138923500426248863438046606536648797155887694938218206360109120339993307030254424175190240634381630748813895423130696452527317290887794809902717588443906289721386164971681453685343734948719579336376260778714381973035603208066257796064774856993305916700347181286486910628616856088298638052159857639411824777531061533337826870908072049889472387580771717185885670544521031561878422535006403060715108374936312614871225158414508660570362606457617848139304756026845857474026128583598595583553934574423021851926689313649434665266103427246021666744419526193637636827550119363570788081943774653815048622037295381095073460436279686919201024582029922064459507370182732435578197362666301712025827178586791423864756230386635610795278775929731802906651865538132949837660950918986998207733108154926573941262574057933564668635926528628235436484139218554386774234562076839870037136451632796693562884765564278364887373392409061265486277026193404053001249344580129351919279999016227002063947772227961116489309940838398888904413468587298261786517789981556620385503731385602134308128478723781644342229195242395257678109907209680406328318139631977389515273063509556413770799951879655472034948051475814403692731314928378727278874048447790874498710683315516808292233226647719131740100336415721323267173653045967005174205572754085230225010617321241465788743006830217868570234796261195552929833426277315038086564525167240902094855132721286303819255231058709168278243083474890821083405017705925214084719632097278829702028538882765914570289025766081952463540877845220788325879304738933140821301796296485732368213245454468047692262567658963939550996329170050954251016224243968032516935209517403691835879026292929903869964828025059128037231134406520620137205350996469126076515855773056515045843115627517187091529735196251481053501872908446999588751966316100380381106896043070102189634636343635583991352226192776288178903090970210719351492363123830302102028289737798225118512644567962417227881425422337437666083093466376388904366667926073241194528654846726843653080592840939914426404030334001764543611724194748775226080263863974876882089351623545658146777146506536035090357078579265597894299490517925607537382281596287513124101482091284599776229258605883633461256992048500800503633714399270735801420077498268555270071318777868370132413807828327639102193350248922080206557683277075176037614265839070333246742584246516879569680161207925345292119768390040855920069842158953215447686369586680071467849490358188683230668924008003228335742760843701483392977360746230835747976479094353746483216527898541287842902201875252052742949641348412226763479492637752597606345963804198869912311473652869087864771332819892553571368901342113140537843114421306866290171801689454725646806583326265129582428950794290742472424674737271870132044756802464196074420785215933822736282931857604845014574482702836380906157982178327251161543164429558481962992092828362115562561897571482107553603229110709307879352051852227524549000478139920936730294103090424762570742082593351158204318686096557629201692277818356048723072752213815098191546754644925228165389449802781062035246612061129083160233448303968881608717963203395071971559037520117044809316241773224783996312972928434445109005725262054508318643330682492866215337528272802822056002804499161891315491256956615415513063168967905462616784466098335979618551580940152036882961343715360693649462649023607617709419900330753815077039391867023062503844342082478547534608967056953275374791428723600109025805236813767039955582258156455794384391174544872423909095055462620027494591117112655898587533178527143757343538102330931436455912704261833272005822751875461302983039752038969129209429144956199811342710630289158605098870432244125272821589779615343799959636012319964922576223883592873932392967637790680052908454384920926639772848640811603292200127098515804597737687718248797006544901068615080749842556546358231732148951103138042261691804710892265598244976129599853158321901300297848172900312312543870563282679510629283838145905977358511219229769254933621670532731541708613893830134206471700037702802003916336258412316536277140424910987687309498857724584921004876914372421519491529090383097085600597472645602530041455924533587190137913862697403106203194178571045612189925508473485761857510861498292823766804065820913571923230134869581162292207019263790272061091190017699635361841950669308036603301766135754936167681131621239708443249775661348966664872453381727798888720983557675049345431980158127716878902284470994934476324054215044178682338063034085028900231216508148947181477840495595367357279167215240331224323626538154314937668529333882730477588480848582541445759889844235385550999640630802019046244967322403725234782812394740109742648272772810384910610364559532015410585907268545220726002213815780894475320223334364564973223791494818983324837817038548855182572660632261255291412929959267458414121937195800200566755000926877850827852386037509782852761738465717249497205847184909351117827194610197636196039091508720363487821328751630807176500705738092086732462919885549594828867088365338171481086416898319017968637692122551805945599138061563920458791132524861079286741480633990214717923935239824076832686988408160592515911307150448756222180212082373104738865530334331977345943408705999454869097667798896352914359441654318241654666681243028314310269234944604937997608420682957877176076266801000322989587272083598689599286128996706442269818418031479650903196546208018369520282265824579414567261873418763640470825104243855555784078884967282492988658298924699199246848103145567152213645591441990330404877951955404880288512433227468718620501687693480177014123868671244691331164468700537570088906450864881797869349327923200147459400442976637880299051422504837933679667230085894190102380675056493496771029157092486151554570714041650055652469436184541311072479011983220602995209889495807946048155627221798929343948516976244731295270981504115817312782044548017129918740716637401895321816877213945039733769473610670714777634043041265208958915586601137006708335167224607798527502242172868144421844822889938323423019023111701159745296743671310752404734842675647769429665534249806491307476437314925544047441014613898617742604755303671150957631706672434808253093832171553592832912852533578476919197233318453500475405495354815183386005538690742510717719503296989972365137464877286333937193985000400289151932436946083685043702843453342913511364306328679656450268785881521098594791893636415227270801355410630902954280088408596679518882619218770553826322725180787322073764285412012429824269978731555367292715088175405521373797232151075288436604884308874768177960637882918882243379003819323729008361971640186384672480847448842643896334460973438228669100989050250801190039230001954417981771301923910385880130672537606264194362889672556944087522800141881589001267619722088322549781812889870689055004362767388605755071719025768552549577137342366005626647583771173589175019525645231694993846528355866722424944511030581484739577544903158708499333203532272016286672196788084987500161086585720063661929852433370959162561037668460194747376128710081599795939341924472731306095140266583286584899363297985710158653939463681489004132034398510549836726135013100311865381692935057975522475903931685021452426717900122823585103395046153733853044595711781589140517198846405372898420606721490664039765312994562364970398694652950421566956494403390796571469282256235975197350379836243683520899705123313404790572667710610799237359783696015435994837402715375755553543600637464651765877502262928678519339530584030842009870701824349858676366114808203369197022767391296184074961972118211172248532250058705883724270716693676549691679503196150121311462382154700335559973885762352681038096751345132368390684630084083090694536717834555441577049866532220563699283337301516209021097860731939749111192314898575275581203222181547633860696929839684339353461084304673446406973737572332106494690308321494001484280359372253184104675907936947392563952282139406870330606562793487497625919460669988808903287969816137394223515108466531233760536741255734739363917430606752073700193198661757327999759043650162448425877287631734658260072146616252733351035008745587927792764952014437622470451041594655696530312377404335423186774348535096755076565020642093387932110815324879641246401987121958460641099488973629882696005343823069809275185299074250345755792286690437583690691591670984320778640444687118453016082621050351400587656437702712976230945160860533325209473200207707635126299033838603777472513856619532376183809315202859540679061526128093489653432671037225228862730097495977627403161851589150362228573408458056070977035007872799249241647931575196499331941120285496456160503592052706835972048324099327715615095611040082961493028920174361615288635352014800510507812291230276074033134121619008618037909078537722570810685217819586330673259975248257043077384688472008082290278431371365551075354763684883922414405954717301463898855594903112528960967591826365105031729122082954584115133602861535081782378008980532337192387637906901537254710508828672895338992497566699942479020562616989042140492609390200071350730466111829832436741790109941639531190786395691333406562993136611323187045265646738729513273126382855264153755103519137189624477963139687256966370237387145510338628104557481866115200122321920061252947968986683857205286786036458365010842191525039323928984539210802236297090925125919966961132451298713609382153191514409559592007322565202731288000590933012792965715419766074960429767756991150684751142483271741288567653641257177511421457171883844390124718902090577683163531196650913552416447619761613229220984450254050872387290669377432358847289470597344439061640000474168812919936162778140613173485100653390975519538892313516970227564912669394704781070927765934791925770701574497104819611967852071509072649692931826763837768887743559131052279249056917389204526440193910350974655766933892519619535507899894394162293609043279372587403911807624532751235770749956026943206498475813773831354213818617649966048471414238377598011379407480518154325886284210206318934961108430056031141336382412239163531658873025748878095480719961115230660047596016675241217040948415783813731360638716905148337650862729280145862851154778727291264903977457832289763094408745344181110537994401731238484789313459388902754694191709461382322405043948069096322340320776853931352693568061486451167550112185460387134485769640244873720951876348487660709768594856508488910390594797750990634645142374325658621018652373056579382128972742416478616526367247858675396463937290163493502491184441252803584231358315364896380472256029699216916765814222501724301896720400907009997269965860161593270823275862322209462382876591704109505071734193990666169791886883406701479531049650007152771398169863887432356599934825703061410816607740208545800793258030061831058478912072037609259755853589308515430619122145422237835873986175354987805085060966523057828489202650459882205730677847062549067327874118578277484016323117048741909917941192835093372041882858613997397862587464526317826046965764720896646888428732729937198715959797558817718272729545005725569423522180130186482820142256741927747066370315103362124793330178598949146251012222132176592994949846199385727017873614130649433122045520309532644093831302781300135884501120211987695563539367239904973848627677439354034719017727443227227719040601505183656377479078928794308784554267656834967584478387861675279538966053251929878775014753927787695601163110951079808967584443150293864682681788761070524016858055696534954137087361366969552498322106705216853588666100139111841871297619930155507630391634828319346545144652653160795635857222479071386825848430187735551088015927939683113814430198366029965207294770423925212773860282060781232802742651126253974476658055150058154133868253783067065551744420842480985255503755631308707375177830616045472480419788003751486083236375932035145123774298791140164263986417602449022348400431658445895708887687951194714968410748859667887375226898507941869421950248675545073494726906704923189020247586833726194726636119672844988833468880088354778734332396482250548387061040539043139706671095316318863801296308571459723601651714107842826189568352270501309670956459116318467390263396167372697676599656735627576105725459389252819972549530591805030226871781288623739647257698016255683771983322854355049310278534599317155675604399794938822184267300000228466462417885688963556959291728573169490019608734754567215019917576969852128085646026340263519190986472715954317706572166535698216843545358890111854469865630434868233123780882904791373347296598131204966565552189826752382160234887644372453813413641979860670784062552583940301628335211222089430238932674793212847710185188412570828639160920453541516484322381365418389834118293061779658484558932179598670914003665849319768369853880424800530663356740834026937592924285517467437502203990656470277932157517564780073177153159499640819816289951597979483686927041475495642185431017026817201926062595770956786948502403674814389648220914205055048499369950169193654453565287077425703740298446348152172390483109653409392518226613126375054091521261404916811827547206914734803293765598154166208611381978988580166275751891751655151103577210897676542383937299918066913585629168066706714507790426205386320707280111926320846000151926473535071605498500946094013059796783115660979618992721691837486868674934423455606419455821801957447143827345069486553828955147127641371237649821325916080094193212896046380732866998411178236705993454749486197680408390275621534101914637987846619216532042320433983728337722143043362851210212976966468476970038071196040666302604118368525055578934583228594322566431613528047734773661183478285194866323306513335234585869286577595070766274874145134149202499980689416109159496155837515058515182126236462768301652514791121214869694148785625265110989912574668716655815648518127785785567819303206947081047831060209968714633391097698090569424869180661180654895059227599909393488800951441567170398612388310620503702138343309702104159196637147614168600477788339736465859923962356837529856684898130350606010114505242432972596983058167472331034262335564481709194389325159797405296577231789350707199661192534191563981748349605915123705575224120198554138820804776350177743512985006329372553381132776683305749933803631241293960308079657481027778551319712373307025538844508626574057374070321342937330645687601983828670267613317663389595751922215325048231934694300165152676068608394584230007286107371940335024430035034916375581044718980160975593150305385373083612135834520243768730590111384667380609496942515354142614633783907808512852563440861342889854664600972910348130592462895716109001995006202127901394568290664551334507615796538956406130252267851742531486877373959883533176656933202661397985499325624952581144809631459991328455441958388525301694904802348850232955961241137126509666802419107155443876596358604622048862864741759304483285809508507269814819586030232912679085527361520414176648401545927163497758406150922448060769796827527543129341618253794990547076412338008329856536396563395885649316068258960985370071319830139186380234880762161271621933924964971349512784479082804759849136055659786385693575561690259974361153766476015372158124463649938281953684073567142853155910526403950023416971164221187068035941423741186638682644187393668327450120817866879651851724247981639310901811843865132753687333551152076837196253405538829962077853299711226038946924042021609783606295422099515851669667910731735227376029340931270613186401953187299206035547763875786821184442997885937219894275365314849259920851413916401831413716028911188848091934195138868428354136066239026563429908114565076834302350612788676702916676875646499049847838541258749453505468398144277167570774289414244060275383300679629171740086819260194170004258707857033490659372206433892066667819302813373178019817152537312294010201011623682593751146309653714286854979109149294204047552949629060520181261017019839339673576948207150732452651271455220281172327186202149717469022847630200391877764550520369184010775455089378079952998380602909336354163548079292735136382930297761525806117895597617908748516349584325266054900113502082586781103895742139614103739568543042074779448990880771941278552511438526349237499801993023226517284741019502358676967547378599775225553803514385686945380640653212158518729903252484203042299336391635985278362593811195200505876118313680555444129595522825236256508053933725951296591620259298271224568507753048324173406533696476709017859541362078338536633450268343271673845514424021266757240831439435298637058843388871426990739460682048636195172556759858909021604808013391444171205417360643282316816318067791531939519543249835752182749280416664975321441385035332996342710969457083716841755633295378791984161255377401485416806171192516601670055238919979304026436313317725999365883308393601040513155706421226602109375335201588708367447278714489754418938858431693326663901515426614234814272429452942900089976792412580106951287443899327314555235047045349860015386420533563904202997640667533260990048117645886066164354712872150176442704064387953260990514488396041607313601830312298187476506461239905337567277928646893276466348945655822979931601246288558537450959557804717308609999212054550213989895052840795704441524749790490152182504620938394283661950007793904855141629286324311335063474629917039075675588294056664551874767322664465139570606981821721179414776655561002496155044005742565420408444444821549517693599195144010369644133900267505106672822230689719139933325040539244971160189697751536007738311148569472698477039247523458735516718158837180655406879446716859697133734653152363185879312195117667750353172792643251971964697262659411034046551369349609099275476917029407159091760655972315318848320193231739926117506974282843068133928963261802386276248628672042690390874526388993086630443926969945017011296004996813163554907439234171509181579953033372373172843642947847445379951967963577389878600124614454671901762761249468858577382185948051689359051850188779748909516524821419818645186479205863207382217408377485628882753378348154446502442593673489785366112533836929870494066901221483436639280799528241590873890936421407036489803402432959793871880860195355249021385931604845947617055345772118989652133837047451645871321282839239216054661529294882585617552551966855281027326254943922042978851896874578142358418592534920850562463034546981299174178066340122375194074840143746228366531567511241062003490657034638778278576744002055871044721744192921237892422511036254475235568268636161781167456975035503902950257449656896156386217586598390498354566898500004090969028457294986992190186228980445675485913397719208882753675045659755799553175529562304938336655232220875568322468489532871289317818429846607246321669722009654720951227007925900341892650676372161560366770329896055900246035676539050015927205968130275065075776434028568275537005664719421664689065079793323794998892944342416970719262732295560006195756534651117783640763927154495942504775330465962655918275958630479721104976835323130472249159545775744763621349151141202345300160739867288090371310181965386601725042287898340431866194224734441132052203914746769172232924575836079149010049950133947879076440071140439960877151362807190510179750123547708695180679471134256555216468338085442277168841225945561538791943860397288967948431851725292377087776364294548432267021370701797798134071625189590880863786317905619009916929414385136237374063617991522810008398357484668617454482411906728361020695162661595245717540290210721551315677259420166443979662800513382374841189919015953357665641112229883099146054143472808665695741555367984500949920295523613631254540951554584585012778523034774509499268006090553849964972919564027018048813133432547246213434373142372388591346284647689927921473322512135766621610771456245495903192121545646486133476269518381151599752373783255885611766744273450616513608640987026096291647869255828072115778818956798279491968792795014610014356248805595337742038953678337505614689060342189647463496807849004064898341403487429469910068022891603223430196838144929922211227195553274678052200220125040911570901040541726206798440001222140779853550821144669598013588489681097862877654455601895368754616455840466597159858796725429706935555862250569542342125544379703912609815570875328373473011049974314710304079192212891385732539827452967033416964407509845820807739994089909015127445255002435822522961895370419978959230674358756374765221474748717477852094245662034190698142264989914974776175396235433182752705529775570007487681864391889296671517686219290180158774412152846742125006581929804840108967309250374695183160984133016781657729084136784974124838867482632056595519241681925756589657972661597522060183670828169072923901463646232104740101207834244086162966227921095212773087425307356354825750177115914582099976942912505384566259853343470286452370372424737821048871567880836908324780859121594315574308691697551518872581461708060162476856960643021494928405491123670477775045617220886970366961192513108973527580391340926923862338985241869019895098437985830525636022932749074621439657894426083469431826629006757588291099166825292502530642128738235250706536866437193017368794063536095047400802086443975508346679949738735149366977798254268989935771939480354009830760410599939248746694403199869423244748331448111685086456379836250335669416518162044013758641406600508014453624745418979894219494647317021198980793499593973606101068923069709616240477798049043090853827148512697180199060087177550684108347607948467513907163428851389262651164000392851660178328030320934758847257898378383818132223167641631283921447155726538121617559106240311346832789492820892549905349446390250160695669605722502156190289777504526903255873123934648433206012008107099216603125572640097347142938104768159951381687385348124400636946339819741673537626532204145818566686057372378075497423261204099897320828315453136415533091804978545681837283510263086836864498225020303470507524706962251753792481556323018755837622950521481051072719851796147957116359153008389710350099492059638644677995430104134706891547184093375516118473719338156872703959681077839316846859697129507927245898525145045369655399664576966970277587823971685124898636835804238111820613586861507032167648679713222099458144348654966055204324596887432555940630924368888769512838305432869761502685812088875194421120561122759940156143321942898252130134396175799510852371690880776380840313172897620330940854646956198746286721501498463157195295293110789103535362950694570648874174250804684279306443393556328848877460094933587328402656243366807826888822308901869867189301531222251453754386846549899607614482990120420260137254247126646304271233067640154180662307635770947319853708468497293942581552917911924443636247647307918000059656883321153134335585293906960088299383727676583315390008493363699807126801497856808794810667832526000066301852843445609248275764931972927288440434606413239987265527901908369760142585900703906397867398795038732816892091798255639643994833485596277657099414326747545306808827513018461077113640455847063931113291414019278602822734784738187021918459485403839738864086968538885973893599797622894109145589800993717593659159011111877705111885342397257851691588547640145725102890311762044853539298513484651670453559172455609485016035266338627741532738082903424906967326378808779908915489568475928258074794615788810271554761089798087229667727206464856504377838459671067502047765312927540411816696627783956076440123230820570386787492262335137867391155027824308579073929950067776644521892342069546827052963817517138422440166747542304500611007233404101358601118117553211760442580635513016441601926008741424136984699659204871002911575419868855971224073967306922488858897571332090877917461032637921751185941495976418902895598539825802794284032562795872331005285196252242009932532637793076671284394523936025085553952727476194126018562804945876384648145518970503288463517355681692148441046437973760726682360402357901448480794149760974443204596471947247817362041335583238594400456926655465940557049884022088211939014952643305009851923506243120564873362679641153378121121404666328781319799714030888263215578209579485603100660535222719322237290528375934410989600163546733690486704943766457470338599858076309377413915930446337219673795556506521898069167098967916425907709088536719277533776565063997299453699180989611271447640545734585447785280295041676795738432181508855135832254400546646899324611073837086995068691076359605119458301865395726672700464930856845777952176704289066534425020858809709564457005264783030634535776659002927753443263218738240947909135118089139061824178630429821002493406052179154573880069871504256769821854558586222522787451182774261959768111392274030685135188146574659983261466813792272666543724354728878848918027704310855845516903563014331629181255274849150474402424009378801000914410242569231366572490640931172583839488408676613615830675754322723011517853173108638232424404973334834265172775120768821980372878703238346819023315546112306201996992963978263904858837660097390904257196671638094242691230639530997999963956091089244589650492285640443303533169155620496784949667024640307980859548499291650789641206826651915325235196964263923380946959347635490820498061989498848602743870397301547376088437334153963055117037979497328530410894381524999466387332107288686693540611437085199645621825588999973735719211189781563017608176112947044878465676644601468995099149302481238544935131333583166132660150422370572603511510079371052438198669141065211718779992099803907752614211343166911995935310269893013019366578576768403886646505712523287159277032173734475987864354413978177080907625506121207625653345107634766418644355642386761216332609383825764553316738023056242505589695088172681879539562915261274910449561961075215991287261090167235876391861929115323260128187680505173068425124279080128479990056966377334517793914127568087380368383428896382263527725904892052034963152799112639416566409143383300485918453321867034423089772106145387681605628896242058128865557535810535393950349255597131645827978806742848145980242753546777751333616323434817829912316999928477586064141182627167433829339940144403485153922259927724603121990054727019406099161862805365285131841366891101269947975654786352943839067491472296188982702458675098680105280560615969830527474262202879945719537447486952959523975666784381544090728525160744735903619574071357035945479422297265958305120005616915998415911567502175140368161717090685116863589070104380267701138598996942260593916003848646572563332056520142364389975461818445237307747805674104887826664386145812971788711261823212572140186249343931554200210383419989718814290582302970318597440017694114243395770986290752339413441847594934796207212164472230894347498110836105637061862526874240786782531582942539385847786251358010428835338338740481283601764501238935930428991921322400473535247472495359441489168956961433187544111912874042344521566109147996338464957217671128046354945096863320997166871089728310012660882935821659251417501078566511899237042092142246168987649855689799344176770849850081647432086172743214021214310133142231670095149257916910328301769143621810864413781963097950060155716812537252208353010010132994588563242081406717199036650934262757628915388344888290067696584727371205276219442617438915923270492135809117448313133982951348607625894908026337219863318110175830642469458144657743641826294091531104001975929873273785093327888894342265900957938750680820383458963672307261754207220366818593468416550956975589705762829661243494414491002885764440641870375869571055830196098959412755924180758601467415974595300168819695979752008240890001243078220161814659526208085220690459602179417064753815281399237281694375909605763485043721895589244924797610065324483070855642324885198073868725017579011434434725270623991525215618531354410475629475061702307871462146346721568173410112059725592831233504163945573843393690521473787244872882519059869221328564656995543073993859840833471761448179440805510432022070093817783664114619227286552080669984608870585040941519615542193961209971474364093175248761159956536084367270516330074157619795899916856449534989030267542758962243158149575856126117488079043839584166496263030879806652449577909531386081599956408630768792950772103438776355947519858162912350845097133168815460075205755394822649358168084913146497561323182460598622532562499685355738689862401667610512868689236461502068564589004150068217379263527900575524514972855989793633814689878869691929455339362722970998829920195915673279792283015589426310212872687107175752123021745064919975327922258646601053673372510177019009861937195738887985170058758208936401794992183712926914023839917349865217517228496915798452676199205932285278072406965801968420357942718698020968910581378605638977960686745921072770826575295924090113092973140701564121164027904405610636571466458100591667564119988578429616765593137213582567687951821384848952908247692576169381557629184110016004595220842101290634725939296697408536545276166095209295520144949172671877493096597799721092878095917645911557240420641210715868208119478099473767028589158064720942235853346148444918122120326753606871993827447086742216495191177778000608722601119371911241670424923112048775234603133707531895354881445596639839620833887783596149530323548548712569091156738420979210866901095609333903880433335353568492475425098237495259062117948980118572332510127204199316477801066832658233227147228309916688504154464715028741856708446723929110229085579558932539718423278787897345231776497022551805339589037527902685620379781358484244186784621152409755815998246377197822910973934165341434787610337184791930937829498065658100075734838791630517286045632043779054725278183554399233510525498891237005645649251464505143839876601246108891262195374471214253534426190929626509904953703321017605432023013014338557304781681529458609888403841467013481355544303429780940487168173883032975047204066604070355975888872176215259049294374917880142779520458300888483039881681227911383325012167153651766347085566878550649934647459679455116892987188593767943457983235317772697887494464574201390376819028067625023056873860292072901600535887774521512935741941460813245438308063587005979683200490262387813683108444760767350467858180735272003786499954880710246082863012964760472051327652352467543634486796241964957550680008543806316599253262760028138880975148217246403874494660181499043903144269358292369371558313328607958486157930133785406198982792607794414356582689470690095029425688560358955698520415074841609764361806412245722801821642034487261986493126627359166511382665546242642699465194512226930989236365235400703900457477878910656952403548178052883956585929661776258551975145147463228031276735309100835410378922818359145328957689249741349564021057998364514828428597528446046696754406508934674768955692904420085475041507329903073871863448075952989117273764514582435396879246234331645781810631939167715024042491296282867626295990355215589505309807671578902326965165010862046094251162176656608753731976386463924503980508372538834830227900829727991464560815748168409398445573378536189233846424829267947747063611429562301278461417097287203349472352704752722716292413635930048241000365001922201522982971985820807325415873431559487321661952795074666528630976106096879937405133537460999129249376526947080593937762530657373406076014298879905665360862673726401487446535755808981849383789514151813354334095944520162530595214363103017231096516921112505396750431312607348338046332777712519202416459023251299717061982313673624156241015576608928133474874151833453845265891684784675378230041935668430561802666947871993868593280370434410246444845815251830821652672593500976110280747585174467092255531599023919288116385321576820212014103720745947801874128881665039765296287268032164551170832567395373548417823605173552798457392008322036723623405945149071015488262833796008769184114786571751279441734812994364575936129137268371706905989629664031752302704336050686718754063306522555708281878209844890076953046124524261888404624096881612262586343523987935383649681907618736449022072844172041130377431254452927895156801159193496262540958178238670817539879984285659654209102134961396978933368364181165437596620972502442928726457652996202357355756362825782640576604512294982974282028902435767644774641229718283672154542094540834774466034593943292402299855263838474097450373463736628788252490711978026137103189681629145238283070319730497875252623771694365794591369052147098104958929887517044608455671568319214813208893460121589001439368346097721720393269239269165238714608908076371938229010757398589496255161309690272483178984053798623981327043181161109120955464068770991098680625362377821435070793726123705787586552545265083407427012646706120786904385614689082585865919864414722052527790071197659582937687923664986621984468524175109351463109510296163423042846520856783616135903057594279253062496549129640538326318299465306118935482566942882199116567242639181617840788544715385900652334085313314821112415963549266036209941263609746426074159295399540946484978314227472712349211583849616157232609234137727101103728839974872151623179263193421515954469259649798858111603767519867884943741776870109326186426910842669455031100217372373045041278942958294135201883317803732889422632080697895273012920150903456545288443655726220644276359738153688615310328113208451126803844526109307980903580400575750750244367646238812477940057490846791608074776023491580715089209921589998491614492457604134837899049906786934487885608647304578058791553148402454215026393872917694912194524960330579293190066813154168475661228840784570811848654851819948306364592674116960272091081150935814561214118785996902148742758938564787859758835422713445268033619145242637177259091022092799714009964994993010777845517438546761595637132358628882222743450006536688244996287792374310107137753445912506460274776511193592821377310198462829881071316605479988252165131536531342726890219193144939957800608809691342525411457546300627591513027977611032570937981299479135487271089480132699339261160933106230076955381775594336660168773568524155742600587256907557271287018554075039314249240993599454017721882799641823624745779717365171333058443479229857808167103772894193336535873576493469555226426962283718124273429450157555049970966501902743330250873804907135038719744714081546779115904759296692777444790634558103180262393970283629754294357480482049311037368506836615621624698953463353103966577095820145117565359460415936790889344759430160119903907426425280025895944798755870117839280747263916085801572119918887466275775092701795156068900211611228594509940835230087078593729408952509985787989570215784875348997746055315027458520718014628711457954298064785226864774187885817802526255485055426911186358636738212596048884202627828877409006446836836545182404982437988930498048746520685938374746459024368740240898675974768862357140815054812021476477477206529009194725506386727390508846871352818673191884175585667649695300986932541197091888921343520964502381544266671791893072776318631380559356825407892796876103339958837638229814530977481373777257358680579191899945249147571298046733306077954236157281147465855238854967571015261431768946147529557140840177492636553134390725922379274747763685175804685461863858641144507947176913826564779665725159168753615152714438270550509681033149854134434505604050361455383284495554586972383335526657381806970144146731603615405563016572908955406986828455264648909218410791150339292318386083491543945857285285137495258667316847287125299024894533743600476472818414387097274269515875255156363684795151011033185655490461261674171139463721443032598008822940899068450552275004951357763769167245803046735011105659277523709501132124241329751961288002512095572965323199975376172506799042895835860662161710669102280641966026189700406524828927121232170204007725195124175741557480342227571547073113533388493054868266962288150536434937250114594720130859658010144138401693441379249674603533734547792419812216389463593273679505784993635204902590280814367201519275687859764698240094009418802148983598899511706395705680840224678056441142316492066316208632592008022997338227102330808959992466650750949796986150973376972092211568649210607774995439498420721733957311551035199479682826413108361528184058315147116679307614677768390090681400709878968431395598445077527775809999698393132906344003502921571659530445138556264248764135412431028065478182188279246753127705747064499096970712934647445744915114667754872920538263939837393616182550807374719514535496552666651833166757243716642328031964353033918010946482411951264780839607498840832037451262897016994872813060328743292082522103002113448454983984626391283608753279486683563202441281476357946061583850035085024539364191309071157788432629039062036700848127511916298317360078956850608228907286053725954312881775527436406743747135321464003134438690815050340524052765781554295910329279352575227002899018261761651280208417865350165396918628680379157600831641886641296239089626157583189798787744936832511196367881061174941137483047637842496187555252403187640838628172088505190959845262501458155275537694986790601859181681105737723277621800663135802635305153379786515288065237784767083950239261816239781854818300504668465869669041204152214871851668458258542866424011196013816432624434160589319261440289628498260426008703784293535588501519331788183564163111741432275524892043867505517086131717204153824155147941131730259181798448413543033045413461891970841240088450880150719951820803162965453074954345823384463434316784883997375577828250005252278931945448288775782331756372651578053362610458879935328006111895122695165704386403128098253219699731895275545993493745628209406062543947723329250735245686182755018252362217651961285589701002579452168586351674105308381264527449728021003255964175039950987504373647912901484825327927887014914407242300206562500382993384104177143255964231644497807696548991085158039260613878304420336856784306392117396234506325593679873860661732312907813429159880719751431242705730343039372297818163854699756358988686125305886385634664246499243396271244940160850507697468079909266136782800675427596378400960711158963455977274733693176526456994689707501474142325083720445646083259035495977843879000407979325017720165456143428046129639409949017976742275385645337639384806777463348388588806369482843215138992521493612891726595404619199501255780689929022917886913706508364920206933086158589987334206596459780218477063724218205949612984628721523859212902697324219158314877020559414280894582767260882191818521003129915684418152020560996428816755299274593149985157945987299238589972440617379685729834395690710205780925844438298572595407135615259862064757210581559545826155693853386285309117043968048030127731207161312511351942272334491240454482031568184586878261760123051030099057368145000403437743383623264840839663819221907377594207750686836016521351197787302981761914968940598048767643931658543547073768167540045788775864978175606511404899449161701851867966919264424773626063554427058602489212376534605244499537645599773054695848817718066866980404590098785295733438800477973600440921501899771666509265110875365257866038696634618105833406428797327598182480868334456377574793644891575779405355695266444581928362199482971678871199840262440405370136485269727491019253273889232535623301476702444452981933966503513120532007562667948286264960209776869500964122570436626980385061083352778858813410310073509344281922892771350554657075955022885187021469786898143873926742835876070447276406800264513887511540740275785761861991037575522239782226729150520386084466762465525439781061308531355468632997413835642832296297901559691143829439429040470036628310331233445119669173645833124535649885018721173100580590176880701399245780791322253400293071689879374943481600714619098235567226310343280895797846931959508764516175958896876130852130661132982782315819373374875006754077263415079058389606282171051525350880590660530054650262662795715413580623013046741477434754007184111393605728452136020589592875824522925602145651520053042532583922473339533492024524458465913475084945270042221685267127390421994278302255942484514848577079759107811443177240249800310054410607639091040581585016002233697499642496872754636497817849258519916790986987166969073600589301518301369622844370720256966096994083104934247175384450260979711150227967061578825637406708197667956655706587218432335887346836436854118734746565174463741201987582532124279090461073552613774191017747013087202518281866949739634131248373309740224696993954236138140322916441546427538660190871124643141395574991345784459443338091774599417444491519365922662235366222038700664142441456617618845203378302967962485255894378912764714305988150205529301837626745572275374640560634455259416599657247280472420258000988880710866366600230501239286066093816624164250671302525360736792929617812819742711644027801009047066239656754460647888324570198626644151279399292109636418682379614322747542307243839150624331216837448748586138803731070145077416648001179522584213941943170047177673336103557308030165282583038735860151322081313258892080331654049396287037739385178602982729994402919010800155125112209594737924101318833880616145999656863633831847204694266020068048195244070449933522095081531680891091721282190709756855001382513105066903883216570752146837604212069739705700778343667547836898320155013906454082554332786893911838357398226847011701872499115263299610706742744756998556977759113781305054703146365862556464804825665021456620092054754743746809073379634585673231242564741250985522089621331753836976593974556517207963215209828509898232002736569229266702870369159024085003805553457293803590939787896262976806902564478975060856658869376360097274010870883799041856710301970487504945845330299945801874573789410033044328448867725093195103586436418183030237958904898171517999581113980978274229796465063059875049775210921269826229046228496850966933407651974845276904269013700500341085694713787222629566973227468830303864766222724588986463307601774092332873038591575816420705303239635302857774293710811437891815165923574058482245510615448025132809431909716132440205905109960313168114283158940809017202100701049052769429035892656288248361509148365509764351905236461252005027547839771598743187202169520502465747769523185317994658281391363887360885415201994860476753316564785132707700218901087611883074458095417753655359038224582955904193087265967040375597456044784222969494632306307323312544074724813006564546780370676053440696977048837115801473435998806263027101219372317283985837655956852222524309776395910005982453988802333014164386537291448564255975533662686095356970465362546725544687077876164228107542176668976482684109194440411109583800803648822890360779539769746148175737958919796176622673361436172132081480411696975183323409926021297568769554532226210667773785610014680873948601196082602947253506698915995273671496240368614108979101698911525778180736812864254862489809673708494205410641220670838207847014033804057865756914706633187699258006035286147817485681425469043482910510814550177733352696140515778655297901189993368364787075154391946265663829427219528743404607068468934317195271296763614622298152235258390295953784148868601200618205547792686048014188173878300114334025599174733874166772610144563290889302993323307782991902536749132051318080441501352680004421621687274868485004115173316831108228773762545568584836408154394178479693358501584950858320805794075784004821870243496628689653740830873547936418223950988589973956552926589768118217334688266562058058661598999272213164667850227619175175010272025766679707710663775276360791716269879246698329110346209424980368338128956667361463572260952361947105524914821550989823297555139449842516000999319848834321874071310279357684628795319968930753045046647553230465991776722385282445881411688718288741746922573019675256111332437078392418757684494711400374555241330505978163580783454101430603910428204306063631916434150551220116718575485974150685917087706628264366142771507870035709955654289960814728170443478319315444903549945901643725638772802001994406710325082271360883553409888925571309398870193263938806853805021706416819623783142831253990556484656806480275071565847487322224160655810058472408463802491341115744718973040754788046902482661965946626156528676014376599668300227042673348834787908830921479858438812280517798115255828848664174840243375208012665160827505593856420408300754552488861804677854485770624362876589146144282553617239450407983621507238362562688709186033258870864039249737043250701120240892129407637952898777345424677206633141581937247319675034969747290370122796372505297847131634067946313662358251078127226632618941719300950657108763473115646177741485552342216788753581010575195572037873360716748605818309691452712714764728822344784849785671251378143457942528365271397491363296399757770146524450056485239328369771712598207011117792955486454283570244008829975102405727110724523708153513542522114393819156493149497897745796981402551853502198393399967847258630886482573848944667987160183990796572068068850863726955728267997389866559046907919189786747858281085427325817743346833063000260257031985422509844338261176627095159550714675914738928117565168649292171908255647342256982834020360272983391213851930071066721198711577548542062699006640394125661313132775439002578432079126682444545519107490763166129918882529354740378636789718752216644297352538986567224912990051703485470525972340611910822467948719015504204759452176238447019297133613791394378640313427670184097293259497912071653852823392307185149242653576665494051309242765638928804140522707439382015318452953685394622538672003065641225821070998851552012709877449483071364514100424522968146142121373830612661377940072565347337424376004544938553235366058357511277095676941007433030658059742114182780964428155806677412553733294296123926277817908069613946816782822801576221569881565643672643586130083645036218391292090910146171396670040282524919917236855662898276408178880256703350820427744629117318614113697654686354297189881533689720378349036109405805921146896852914981876743569251500442230729811199664317791943170260407509226424390265588135342012211173533047855680329656857349697040615433043433738991468108883022686990558789062299464650607962754976729007930652244105885295453913721586450508361994015284879631885563374527161846627004568040250939564470301750362055047375734297332416089484382217648491061966662778223671767995081507413986449676389915834835517157957868108066520414537655134053084577860141968822827329777614129933854969247616430339163542150737339052379488907681620233422366924696352589889471911314835264075953911317341773714670297878781377106412848762594763317445752265098860625951966529418530820942265801589124578323424499086812430384263030457961843693131629240833024262245330763727736073679134379031782535526721672368923570720247206796933551997287477475154989759141299256122595881436132504743786619721834894139387494187795385612917157337797189598835929555366791849524464091834591151227747173322592524549993260461451330414016021925660263676226522351854499681227488883866807470353312534966251322102694876909247018059708673724622957366359618591538638577647725865661719737311954561323699546088074866941340774222415303298789877849484773911732782500592076781987767451011345948873214159535322841843764483701631899483712329446400919538528443588196185802869504203440944155490396100311469514621765383190320217407359624628380844879608889735697307295348818465053227677598857411941995452603541683902073778058616189248841698162314759058904300373637684887381004376869389891597497922464425595304017914591905817478218289965114248180345364207108739575746869413168898644631511947286273693929904589875712402047570035877380056629416204608835817117027503570161770659044886788822472789228761895231018065564209981500389016599825453736968296830233324257502133264113095867555410392695635681083288321333756923695101245436101106417841972242811927986021770127872859516547770767774146619107624414212132860670530565849201261753850352849116705243193111017934344212506830281339979111355648343757570852551687157372037521057998114507905141349161397317741517602963304606577559891149531749490420494378737780374480503101063839800458913777879471945506204623573376665337393942920739534476150274781142067829830923202851011666673475170971977877722302824195525909820967742076003815536312895933252871895206518754219758298013547793478479431783698338687975747851663976109096470282713545646645071455607981303211351253313523918085321893250458801018912155707004345191184023865654456087380487940354217274847379594737684632213199583607074637945232392868466099642864009577578036718106075418995860592111468973599890895027943309339747593627573651629933033228639968414376978676122011571410607687053225339338040590939055366420419235815201932353451174398845926739293041740729284309242483994628074536858928414082196210830584101371639528102614809875000649163748065544850321608362323685029527134573182677682255492772147435253406681699920300347569020444659895043295406631955852128815290076032244836008611557531194661323583494706682149771010097153583128069696946553596768904649692000201095810681740385814434953138034536490794585094543190683499706544743628078521805634107789271432769616384123869524280553767739182730666100011810068594260727055553642673244381504646655403445028223851127962119207969879810314953558163847801614929633863604888295154028350647504935798879844943395903952315043780214186495449191527440214808818393852382037562932111562850126256215607632190370195744634961676157218927856844935621267395359586383379057150293963316177487419403486793437918268735915360128925689977778992058204706779510495357007367019870477042198995368293369777918892490564522941268209946243948924055710687100493756105576676845796859179519839090797131497072501175656692985180932121044412936010858882422113466231120434354355097006142451710204676774424662337035788115540994544281239708099670189742129433250890247292015481608605878995152995588464748466907256799402178813325339413522282464485783347116293097404482505591440921877528141542687426373647855227597733850925563221472620893913390619349981598117762773795300968170242241801947328068238104479558163779207783484631457732819760229935697623413578971932918375646788096029139625385596817349813956953607575714496190014030585303299179879215063062316027436900937724991867844499023320229518654198165440306539450306876412258531776620928631173385429981885376895094389608238923500615181793069858077319557485619796716645295400492090160511059300601167797529051967003352905939324263230050678861670061685988285204831222737655429280408853435192705013336285112610831711091200089382616242932918400019161083205066189633309246324453846207803247723699837806763762473964064797668472609123672213214532569545233716599841279955828636265788697391324331784199067579521213285057915078194075166475196433985467179393451326984097987278098647891283799555925206745769786999082317694413747415890779986594079447413173329799096444819364322197458077895534188798020329071478398810779550304366935278305206856633524347079096882582105373029434991447983622054025559669056331671368550182990460031747417364860785839203897362642946841028470946023083864572329551449461284818513989699591570005721784009305363937537723022424622127666319088223696250498507364923388089203074715661750176161201107296385242962767646481078883327255374860460778627554840484425153358438157588116132725920944053170792564722783507235943909720928503227918019742794056652648849171612474713322059072410874328133856420073720907118159068210478788259515368969250991146585472276742204565604925451910469982753361312028610444558474368412137828610984243003887155428939189755104878002446830630340919101145590715358430465980651356421571063233644859437905895976651406148774851596445806750382022737003327912883572106170646057759480760493964878516358745139997817889013531200635972437189368248380194301361798626415699710795264032941736538492991147298367993760422330806400010471236568761049559326730015261528411629424015939359516004192054146596371559639852679038568989019942835074398152945669183038363981748665327596292517202227623792532897541809817295077941124851886700378330886784721346433402779876534072002631185613474939705938367766527147135521028056133442298074231926344028285196565020232978878255307024171985500779654975056762622334573639006220126214047531684798588942313717796157237272433093871447690446748127574738351262878380362943764417265225117510178767763293191997367898306355963318041012849386344022481043558505317755328843115972909448877981243418251381557752668825337142710329460647533389355752198714974907685785082382395477268999025753740178090770070417232869872805680720061127677130870870620746857894757360761247328889408548713620400135642843640916514449165401183931033989955915892116965179346301590267564191265181036949578783821675822371246652257817736924350540576470728199990345584148371220728490212156279225897403166757345322623598420616536647937395317483134052721756664574681661408296861673850908980166776128787587429064558519099059054938366600104196168778733205687098717721486173525786892269986691780747123747319942699834930962493169381360238519561873211791807130591424607201215302487609124711199962869247409569165233180622414603679360726430096264724622254454469395811953089121627718489042402818950015216631788589467737699467271425133351900890326281887549692808709002386046196007372672187228387278859972776854915457371751904245615874621730557568657893240784935879155883830450053235127599973095660829396858620017597524447373207825786504782682359884853644439362805066613290023719849772107554465597229762845076567775992155685987398876883445238574667551441067827785010746573622462606461446022872825829536180364679551952434814331465145860392831904706302695557808546340932964589023719703936701414776953559054270701112546604978098718348966442255468176988510285555535984685256065485450936946129522079914713978595044071458840943320465150299747303269872251526318348316297041198247064647620871905363780883870879963234283546122911848133931370359846190646214108645176291815790741538429953362325822682121756923885711357715800922430527543972610017710903914076360446314460578383383746218087224471995662558516928861643148345718736506840894943821823912114839987665042230903463678804495143771622819239893216183749906910613574971956915543868361606366368995386233131187353581959080645215431397831533570319823448094302315806730567806534616176905910802993116981888460300770756232183451676365265266579011201144551585679662492412145775483581910077981286072166647250789427420139922702070085648969321396410810748034374692851782876339435134071733216812001324194954152907761575119797097457746240247878312840496250245045175386506287671831809740515293280966397627921443803091946450379902423796601810556267461987315278414752204379893450493859464793865193720343486029491563536581275862108796501550143673172105879262249967858261868336531971966164459393278712517165259663414731077724042039101961900808747895129707367164246170107072044327974696082557489236470729011631588508930028707056499121265277147653388304140342319640385065369227949891676376429265608831696963462486729105710038349203927048637050926427266909049112346303855418849240288539617844504295512417203657512312734631662833579296553292530184674322346486422947901802500601033379972827148872052892991848851958817194602804576557838793455818834268866114409502020838248749041167312429421070647360572996371323366075159486350519515227539051392141613259432726393589543590170021973967388694906669194691321248949777147597382917607370493173582501706001692464865467714439331115210002770273737573520353778549125893554394429938164809858913171285655477372702392261310393343150308839501734826332530391535269883097452098082943521916182221508276532768261049404257481504415537003478418104141077979031293100600942625496294076831340123674262254326512837527788603031021082072703501794744288742791450492878160642023648125886861508225779165948865063120067738282758240006604539369619711776958699929868816032661343172688753915975184697194600354692777036954952816698514474358038713295033373806673405156863115567526826843818618816389370690833770034851576797125409437284834591782085636879171207034060172914684710292960464191023939026027900081325194318576190101201677746320979472724347618962212041340947786807051040825571729861684807376174001757950793178832466767659622155992550152598451434370869670321532823730708597830762765550130479311798578449822713275150827178854780565578324271930119733056297738817462273555015110541753409422856496549222140344374070126288818205775160670996630313512940786872927590459534519397798021219626021191240144224482366070197077706421317441295520790938345818067834769259238846673144447929178866848762243209097960585701443671829544014648954651001062866944725121970596628064304879558871043251885743370395753238136029965468340875889664187196064790607178238109243396311601436954235228328136187294919456609905774257221385487929438600161388217284064010639991104900046539946391234979376748809387038520438736192245263864982636579977738157268920797771171223338622744134875455921984261282955968696323589352185135104776846939007428925969092704679678885438279639132532568890299368707157876651700481929135416616024081322217340887634741881115821268266946987250458230929989636680286977300655985014146726267206607092029336837610786547253801002683651599487254218535915746519261332868119918154353069749129389378865605070749968774352376434091347324887807232653881844788201092626001742886076872923490323204157287413524459166294265783172013226193486587853542810070421333973679433212890316443216908656319783868367656695494894007577525219395256077244691221152289825638133622815306669499025317846675172230167667648741588344024605745858345227943174145802736901080960450943244383325726713153844299941825779039104622335228376161524611267986966029582318294212179598802146090174718107084461698155641595167590536842071673776767896972218471447017959731069912087302543503152536972990425613213390885734064867022589758212259542831156049745090840406551547065680763533868794356361795030202773980881958424327303411208633324070299664649156376440064919596340675833815979726862033003726339671504800938731162652400736964495502917271619962301166407282867548045846941427891131231822936948081057877870392147205544381708609540336841947398201159587940193981638987275907888762637191176145851353940241511448750355544640228918933409658683684498719040694100233749754780357572479079512753746921145413258690630708685640614119808646064267220349099855064326863252483193419824279065629710393538578767089742289668672327516493847189009500954725301455610455294039493508467284507145813792860283212521783621436861627542032023051608492628822265161592397925202961427835703635111081624085123964066423619803008284143560292574864417758204794878419070584927768205633292179219412160275611675315946251531179345375305212285473951349543582884069517244985448702020358001943731533910036355114321132246912889565774698674078552298877565507409402428966912657639309406900659487750832326776828841204139341968294058180973933050432819769107377965872059737039317154335812225541279770247315532466789907387126722006963813740865465403185616123215272873830193165244583336577454194443305231370127677878555412885437801745006903208198307428322540196705141528516414994041860946880660845052176031378957438127812055945623498241822807344611593043588744535663403768889388630662851113170196875477921458144367846309986940394155048265343779119574073929012148697980176239750681503540941819683530635997295166560607186411693157529870266272102390619131080233058349519762409334333336061491549870538047092662632741670762038092548858371305084619226505759082284032536364228533685055854010601739204698300392514316482884899471821534197032834130747446614601627075586903364820013549243760404064535347830871064716534998344160268864404066198667413229790703685488450446615428751280021409468231538736312628949067987846228222746316061861066066545676672806211148894584805439080392986578638571202996587441073901057788998686262709074832426060885830858211926784859993137841791572172905514225978718287773734113946440023827280813137466210812484173477000766920394984917905650627899034839563032276861819325083308821562032661282348925503212919663267392687287200963488292922359234066389578621532013965118151034937601962316876075877400155753993312562882676314914791102591401718041318565673346111942111206728051793016099789181036048995033352539153194398950211632755665719559295844718620992467193818029781534236654794606558044724998294761682737134663380558590681638280214692009362934701681801922896421531213435281171900492378485975252570792163059529870722569405879219843123550649707774819931706513890392069995567711027025318177932077404678973287436435983354010945974400106074212999080763108787129121842523073499617405640275913107626222569374865066116566968801109155485377232279300362316220586200086293803892832743771964233406247706474273854379940518548374848224750003883569284282448538215711699476153875044152889552294104602534705077799489812524816307863295701822700596162489442069050005290231523912241821219543408115082036964398453638727045011673080128455140046117520888208065187037468778305761978798217071767564878801174396334934503179372681406242032271408891397314001184893394648681722100099839737282324700653823047371449022345621007742211723319974148154590874831467971324633150814930694071218989149013527755164895288205716345303044033085868073146354582367532947250616065124981224242260697633348436656139148436291317765523642485624850623820077910522219907043070617824448064780825123076284565213305099706726139227584145022135949127430351744062245625171609935560125202189119241452629476648193118014549814466788574006060743778653428409489012342440832621145387521261583201699996036640020070871683181768212867440869160628038904363807455764850144476827536553617703920578516295391854362753052776157081322630861448248926094473866628973826995922241683313287637532503032117728755976311407146116199472865309947112559624093215190177789512377932210396263666741107933022908235335972767794961565912688154059896275549695046593173849157981702852920174499577604316387084931228368764868849025630724000135689203323785803648254409651132691076019487615837209256882054733299371272070842527665172756797489373768621842874944686249481302528107741354523156358109290951167563439406755881060238807068519806864760747598669105923634801289119631498410137592579914298104344734044345311917443632512781363305841164317502029868379611637454121354684661272034610204306931241822858302821054694196319985374048053851033472605514733274063767813690964697724100715519593616874469314116557783705529452290917887219028034930824773434087794753398447490377197317796768612681690263666262714335197086478933966626793561261801096399138752712521578563773392357369997166996438824144582535089822927314322247238300176304513922816725801590986359376755941114626135347803956899623636685719949980742762084694901022641391148511456552549057269979944419671981528795037216991536297878357382689222418636001846252740888059394098753182589886046887656908075813986074139538809474208817262941456046122870766618181001783728090049297271336342181737823622113057526747007277286226988030997686581362513251896629920095708221389515916460120325366638478549235776888069718969430807629607315330083488677457714811599012142335350808957942565213206909750175909854863696011519331424856690472260251174565154711395211182583521033614929385959597990097276762380435135255829793037415881033466014569130250357991816178700256758856532156739816123073038035033143608548992809962081062661342012196452489393134652421687797974123899510811662444966743120927419081167153578126836659060632179356026075807024301144724010221362882353455399143972394925994235629268310692530092014009776394534090211706593922114337972438503077702013176992865659345832995266442418993767856393633429755678306169998158524478908182816917119252727135588110287135610910948865348756263511294679181819514397406655585849219745197472026596775703693025608632122524531490723615298362926184092700189223069787265469502477953798596788302849323200991704781138956665794430704564705622171500394126794332553035413657169306192798650567327426294015455199955027662596187581866934211540031030329082684013567546780931545135206607865674993955024204461785381109525756606941933053280651269150746208592174866857225519595510891198742623556549068486338665546317919679395871314033154956499500363088840576621599138814665897191677194484549452056736107653382881252010083106908634833211284167140498189920590969917824077669755304364929421630368564273152466576056402978291512506196992559220026781233152688871006870421233076550882372478431406470920821366886961677684985429088635556002674322466952832294223285636281188847558839175151525872857546413067429592962437153270021719620830270859902257296801882413094034578740118153180233986214277657286426910948806299567063313239094057641886616486230089129102893053797691209630434696571598730137901265226811472110321074494199219403881754314431283219634044303879648479905028042223842785112642279068711700812761031866079098113862121297999257057540976186840652067180748130078314326588606587690784544593338239348565220994672356431563356102804965191397936099737160646602663440621472774126953063736803799621109501735085701927507421858923526298813968212214086377548035309673145177316042035600348903185670339643691437917112153883536834967245795341977891199986041090301407694397466475663466344711608732527503498935768481652240865047350711324028486943844079200615394047982846354835188001899990494256989512822394694853309228682475252804225393510638392166185895479919642531336192364040678647672277885384489439429561711497867951899067593248590892900042515233937879811387335711409221216412713217371873800537217968380137740479401227850833643568876317753713737829391141363594764636863902327285138100238911653550949303518549279635360903691286715984896726507285907477340572666540155809102248811848856213138681134309409483021566731972739815087895885316788853900403261825844043796262158897726552974450672882636420829719148485211941078047973907331249371884103174174332875289593126681228459159840091284003171200569961088669398617917435792126312583548656659205304325676817279987237755217196345243579483207028851378870839265007392736280068419653308307016029601389615099220602650609213864347817582323752731976496626283692327361155062521681190502890281985872403469233939601159143266995690670983946324214435881023108323720471189924999686985840546460276015578076832526419723714647277218971367521879278598086451664578809826050959618456573069881280519579154043475065646526368538417005302547253340107092390976133025920070748940772216836055668053638604342199708071430951359613022724849763280348341539747232978345774825370257860613098697888139027975790031080234473794997867043780675511336414202856485725819352363355834503740201745252514783952301196447726927364682691341740367024006120022994869251459569667317156358694833804141601561394342874547145758050621038314975156553235992804231687801172173400936382277672219456904859494438173878055351316761029598755988607086542986434869714163229868967420496506495380678153460198506019974789091149583231134950135321570434470162161764875630220548173119968492216566258729977943380600447390351159025962699754328520292580085974882913774524877445088816329041011068041174946120672317827942721747909515085272941026949376993351848966897774724069059288121085642175236214949876389011503588920443164748162779407193468765112177597887577859752030417181608181222035938497670285980274914284171557817877682920282177653510328562154909433891944233090187290341509503390999826710101092705560865202192621239307968549626984455091417901308299477756812781294846359851299391989597159623219403564671952927953603065241582073323901461012734735241267910637653772639034849735203497507934517829227988267918727474445259327394090080096729190021480376287280339254796761201580551625687597879587660029547703154746505203353369209666256245782718188582405733383700714166083955227343040249194351836506662602742343823050364847257706932421105255247795109088046294947913802898478953754175988634683838792583866895645931885444801765251343205204047858807165250233185464629533224976690230008675973725465646167156030644079468399913861941281252556983581184553312579153159588389090562509673950278063139620356146207695406008952765181679993562414840260781753797392243642710804417353364115574288391233826806235855083863095872920767843726686998839985039027698957505464735787865138655334328336574411399706118165843897925259393408163088369347986688572021768575697274892920737062513066099427102723501345319070502465870485810697435090676955299567004639547086328085664661743534555558300984508259854301750747093678814585955231124604499301873862684572483728138969489054306818724975056444680840153861635127940943018552570295151018174587508111417669977202413381920116989672533725342923414181890482200856099962089443696493072660871661563343359300797530415468968965542367873129432116102228083657947909982528222804878808676941513879863623500452239217022750625274268838761072543523766298579700329665076733920223855543867215724202593078259715137689331996340150601174263531353266451707109097808585244232847809745524021849698184258544580439266017593296903842991901339397658867839657039578530425902048905359875387296039093125303397489238035749372017427103470907937111382613862059932989111579962544974421375609779435826896780483722859803751319761063150330512869299760817807687588608987258641322209039954098340064369941250790214007276209830658078039546780552614619356117867277851032696438725394839481132536508389400910767234291031577056308921667579922692844211954252352629548201335261650971550925018102054195319388549943624290981979567925815625178779009967424720620782664088942392821424615005905572928648053470357453554194362886406386672244076595585011748451184596741758469441107310110549074315974337006488324951890491009711465479668638041258197688285611906845037338990992692255389659193962671918278025688965119544135852430483866824238339561814711867958414074278424901268315290032068600072321714329565673830481404007545180561689475923028304172800108666537344283159684267204990954101176341627382206718505376734452801576164537782383205932949040652479863108928934134929996694933250948837287990039233300476409772725612082495283398366641461830224987744687922254663546111328141931837408259180708632319107569671750424187015856734884724460767823697940528806301048332697306782160209571781156404488288342392540632485722838559531486164371563644236371328070160744351648997654737289199368179306582106287984029685963569626315568498230565782347208991266294957276712865637787696673807202808565115761438833714107067729543679728110466615530590821446539171547403994231579518460981887610114342976001810003183167182978761524259769172559823178860029189795449495926125285318356793964668216338249639620733161163892642330152721933164177097169344022488272241968530209668777304359191144463648667919372750830442276055138310120907608366501885992028253820978201620735852119488898436338300195985579976843642982315020754607437914102535341536561519636087423738801805216541888529292359042223735107819257752635939977680055298714184597260756453688279904676427408363420236672640654640435275758523954185007894262159906384716997254728997380173524016795350021695283221123288295514510376027364518344815752590589273244300981297475833121222886571951343401604900786757749727307629762974691203163369965043494769234585114601824030874988893653728243023600257540290199743140680380330344741577106833196253442022838176526772573404550666806681231204250236580029358474640861987289882566865840795863162566349504463736558316581340538024644391218271546459254498770091938111243285861161515062228122416365084298882124816210701948232379574259105805406135885248783461410855211519676437522994663999987034702044696305788117576156185245173691425957559457174326986654139990489508620787240088613421976601992889821297111685280470891261353563763220897011736373289903812883792042467504962648552840869187785859168857096139605469434577075264689101012660563962348118205834386310872024684345650418020723220665693148276570968976723678714172682155733975022439359757673319370760247046767030921657931086724699318425216490399891591830807892780643277703086071669306618122682457842204663651449314513768815528907904430270416950928719196347931615647554288001699964359849083889005279152351474701936073877700734951584484404745195831445881099669949692005002478006273546319072439606464100018580120233883135889911724649938756214597255532856841263492096674433068788184025991460178961225665252385784884064474333514823930914534381063736765290375881212384580603681668962083981727702888654522103149408188343910205629303826363625798549862735697246550902572101388222170515896218968392847626189339973835455332807696477926507662131191146074820889175070951730912131187445402234436934937407477383744032367093935777063066373839811324059580118763907772219913831885525974545289525420913282927061055406082160789220486631869203965934624152847269222301593239993882396238224099559743935747394996073834122941289465754900336414716475302134801934271468590399185480892674388811807831454629690136967334822873132474672851903112482796714068278699617884622144603961828529514134038649935387840325371205555112112167361347330339034666917972020183374609548745573801729199879610191365548581945177724675608697473693522012990470554876662996095640355923736449427441112794069256101122846369915710649018701758559683261241645672719190027699690947915907825583193849244490362815973054741598020110562105711056974812832837320297737745318091315972012691035557414697533003962669863959778839511445316115588231908076906215948804167919432908901862992120570225559828219597398727595556666296717030868775698267064183796935577344802165929894721603774818564724378327434471447614045883942887570406105571289342071569708056040692032985641211108747545908451192243503388781591939983183159930781771347683759048960182770056168291286452364113536656201618053868781659108279294211963753653456523082769023026011275768954684525529761368121247058616379011164300946992319610693025661511441751669794471736005904865104138722103781262102360691434257313161248693143241933533159278242620422854317588055824167724715262378020791698818256226139435209658342961318180804688588390569403605888037532511709977213707238052759006983009075956968269152450658221304938285681532356124090483044208872416310167280209046640859439154605207152569748271772156578431975736232638271095297097644333748993482065319555584865146151307190504738836522925839843728800348032433264713243720805181403090052033989884959626413761325041818641172758814949169359210449608892880709282711197165630062705270005449210932742562086384760808576055636432398427354069800056000364152488222035455951121344592971515132128074969977211518088633688105763562448925860885658207553438410871203752826787612958948178827906954454311773106483006405764845733990239019893061087101558586577501261548869537802406232896895315249198118798857820143526055949354550724063643611750188184963632620047077942370772699937418121517497203155575018805274280534501540747441168920470415230275566648037746636650414420247007725933934551961421216328159132827246094873188042117620249931013534875178855481555633232563546675129149346810412948256390543813422728337630582801588548840619289653217099071111640620928668211918220124857191512684562469243437383726561768164773014977525139881254723614231427517994061939592958266301347358532155689185686564329790379834778271002676834478206152696068272136220024412419790931679459037184552715382663816315470974286906231382036082815361577068384789450214723878681351711338966682201753976291837968156091848190727784147684061614616814801676679274378869824337721459293122771533898764480442754356607455514208848456921509689225067026212679134040477423771764106358180282837379088291472000359160699124281564882450191439184593889928761009514410378932324576733141426259072927364939156737760172901734662190741807128837802360421994379176424143045445861842817505046209749062014767949881148431226374303861084117165203307822403486857376173652788957946104187800058790925067465999508464167117782137899976540071153316603105819818460779944949288269217196334609947517921932607206253802459155701790476989895308700637658425147006193657502393114776214825706580509401887152800914404881133215177315274807273483665432189717616250739899416251921966432925920645906237460174820091304654305761486330361159179130439094103144043081944175913374668374612722307054782084560014931104479967607320239905271964323427615758216632826641325714176062195947038121878978528484223048650836274143206498698550476150752825815509895584337668892227524896088664224710008249857727927355899250517761364170834771857309081837870962678135338384436771442827855427779161803125429103782907125957139662220657642492579938514575621728800085630680078401421779593311241114724136800331401063229675379427266979417895218363011875620353712742456487960543002189924139230317210037599765827703895747255890747582913319936468296033175106985618095299924627306427154778374701041776868949184120542222592945817556348097377888223609693740651978062289155400100003938635442053418015390405840777664163578748571475823292655070166008292222745088496547695783577242382126518824890738636685484132202428492403877550817521957273356219907691356021588546752138231039553777653370593116977410521984828780338887287732968786296246021242349790591279240695685836220078925892093820947507598493088510698163266984284253594721971842825420333355637531317719699868926828370605210687591163839041800577653989133860150588490497924751468975427950984722768680410145565409346991509779096659544177168447079879149520901535452943594500186055881305734769801895371384091396626256531309437193730352037847942457562803048746323438127779016499983644682316680162784344711720010018362999548559240962347372372158094765583082941645207970646857922520429504464097319671193932371488808587763158172261087871164780026893405299970722377177822162863882075558276689421566022127460674623650943675340494845091019418226266933484749044776730094306110593602743804082852865639375290458388189334573309833994436600979505478683939861014268966849279348810304134209776455862173551613565028116597766368453672981886734870873164332437120385444147410349499748199444197491384817271816562212661679790119111513147329526730242068454026698562856229468384829557316065270264948055859575527278292836909925657730210436771881203311898309686492999450739730614323684699177329104372577257917012293430435964629245032700899557839411219154072240438544764582844577102662336180147211735068721714325695970830828762273177204267857842667986896628682835321682975769334552755661160345109162239384806114624557046592298003342426030206970652554683800652492831845498212268542583765858447765036506634170789209096331780595337177657188210898894217845014293059964224787910861507693906527907911160219667207877866876140910868714347315758332763177470611369521951692244264792616048673963657576358753933788175820350623724521857293067076278872132374252553193500818908328886382544825507817018483449655842454085883800592320041357218060216391971800413586799664718667391664973472559442670799165299771919428705269528342742048497219428104957242224110870640781816339597981684948385630241559870873440793499984466973151335065323690941288626536883308162383814480455491253190333212732359298242111356563248227226513203059254738967433724288669982453907721116603550659741690406640222451578416975269950637858228823518552399063601851698771182317309157816928407944682141490878035789764643009444885793297995648879484709300800348855134652053782823327552074822027100516569142320047658898094970059446028485315881973519958852596835276063628594360929988471087314029336057048367716792819604928413762872570419583099287102122598673163861237298210270439551706084346969450200888502405682195523632194099459136634855133615763364206135341303071320571154016723162908538032780348859795889867298909425438586200808117186580677428024710035392647893574649384196764668776217043248403566555106704936007180301408742117282282720374262252624255123849972494248798138545496640446364587059709314666636685669558448723717318759128127213683607692948134703644004787569062511226906154720374892527252341960687783196624563779465923419757184739237191059592074446987265974456982977828260047011259634043499080285998359106106828849288881713447227106643502916088636089701931628417423451238321547710148293589224547699868380166647426676223117174542277115801011701560323580440723489523409816737559117958928036379037536501055423945039846065972654608181229930321246722837512009242226370497269495592304257732400344786574684988047694621927906818432063024611390380194795267650923495531484636075606589593681861595118804654440269709550400798181835884072378209502072071191974796563854052097857034120724679199662480028074951258056117844244903398850831129320465861538153103971809370432975275984653883047127173562476688234806634691422066577699436538276913060373324757535279431149116653908641651565246188625446306958565154432121933742827060817828941480758873001217931743932807815214741061332694653832370338711655948222522938097288358380248808516225910031585406670651254922106754018869006031214577843946685929461284262915711487247871858924544741175614622998828729540711392387165154324650155644357004559137665811467168207964763316956380484884285812462518376267229022168814630925728367696955966712546371612151850688518709241293753051622269753498308314229157500301177069229414133368140938137850556269918060126995312344955290089080904503043518681909359115899768992890086104941204484669538001762236892064803648797006453626102467763445149497430753017719341496122147048420515817409660798179541555206538110749400165960230490241987694353733209456377674291546284675393922958506019766099581297739987143182418081206798477891225475106722469901541502660481960274813915949759299281808024465352316592458900630903951067161701350462329584556110627212220070965902989176918456321031730638408620022710252883285125135810214228769135554455261956050780852928039439291950646673239302155614358667169654577224013394540713499225362775675209288307421566221909640092638503961269631589959751909267350648432582808522638167310029794742670123547548459898366792618324259559917979250748731534782625812439148076434403003568928074127564851597696555507203525142372906091733845528274772505312643342564713603202710609928887657414258803416729590790355538090640391950451127175546862052383912408162766541739940695211613177108751877095722411930544175050898722598331352309119174516968328207338253785394041944839473552375239154074291962105212620543204817440238857141718706114604233375738539013009617259275730044484144598799484437113160430906404174732904755821284431274591246258742959992465602136181240010103737888650222237586233383130874613812922174020452510736678022681486096218370584014917851294046616038602412684657341655356071537621187128070771505796736306242015521804178095132633407482289772859689533124936082272334140974060000487769091695369630733270394844640363460760448712370977688687893022814682859899086858886142319660387292219161119441890003510204529490923292243908809304856374149035353159524574307810606644386004439124667424978679889798153401520969971519187688198922309100526657143307267647349524940762223447501897997574996392459795641828644987558877310495140278729184621438446167799700009279197420139387502635020798634336066574588941187215699988228923078298103725052699693334084476999726876622828278104784585519941065499048537089942305504209111593003089606248018373415432636948553285839774336045400590184184102911723988473918249685642492232556278697636508223751585622451201451413692625696586873829521497878828448246460484898961416124026195794100678061623904684664455199087758089737990395155570073978052411489844963506473511737764011156389369644750701347773102422540241091074955999153711972040580197965810034298285915749246956181974313638102009348513419270663235051768055212223603168980714706781819543171485223318009361635530616332668420570875203654648191531546179158337106446498722960103289407271841375839860602234958555782245519137943458776015464412252789983637273831161374906363671515073678401957364837888332864469432987598309410737504034208838645829939983654019667195826440824226258226406450870226486756586291491237949340682486773245714032244423942650727488764720213928415564674752121131553166981651752348958653973081371979173746168314057586520711716598191694421983133928021311453169498260882086950566664603173766609629525489223134745316126610036281851805717841882191504318441609486044420537322690499561538724583272255287476013560192452675597437395832338270217595249340872682415559715348346957584652087124296671187102464977357086108794199567432462632502341196571944686617100710048255673181898188528216505121721200257267436709277492724733326251501541057188173980746155829539841091765671179266584951689733756793111877414459948347184698030661945139293840030125077226113399179541145805924269548763454816901698542357384180415594581242119562821472606156571939649982988116381541778051547784505195035806838198152526149337084565665853266480674657172267706695251246371365220131138530298073948088433022996243619867685947152750520249958651944872832297666169199728882117869780484945477112542443699960142840666466650835370910454705588139816831652092749823705981463512471758186248793863680528652781740403109661290618728304942910556354012797910687134846558494128421937376288696917124096443302329065782920297398270545341376167799227368497232602391899930895951436320287447020126001383025719883365000605424873016911784847875600363950252100430940770757701433865306487066254218854553027325583351093994943940541878412810478155925758440384493217194625035883713874366117361330654388388367560026807764565022935249186290121724898818967113046032604114411229880445470727882823267354770440174212371116771148989903215827832125932929740204959244124111542094037614885602164833466610929906614508223947327109117637472430234780859643324604144834011323070083317100973607355255815469907842381766591926336254966726006772959241628034892251787434084911814245752702245879575639361426782542496966578338481975250607619929350133065524001766385019627163945534431531949624609234118143472690301952431494721905132423681972127510261061779863353358144318951975673311734884196782913894028179412546976193973406147002114150266744409201825189256576838907714113334225348565452333299388881235955586624758003860399538571088996275274534135730218262539434435975856307932409162957458510903193769408161364731600858330491273365549149599842007620308056553373630088652181485515520034712004860887808463380592768325031999007548465845156140295358955974419694212711195078157144739879863342995636690087884591826765199836412285750010508050312493482881509853301807771187699990425345997317552305904591295881202630184789692723569448289324148176922137778805830816420227376848567818364223204112025411086125626853791314269977250348063810418035198843056547889961567357407239679457787497842757732933743466415130729285274891088000369340494524711183133825537452587406108222905273067024008028956870059080051928959439559908687002885801828592601954794810726743781466688753896313494722331097509431678204068429750951990733592894149367703208670932209563413596479596725259646456291559388503566562056210369679676482975981387544656551227753961373067547153958227728564172712928710068221992159762100707720946735048570666114337803310867921852450795035577173021341888106968674471715518721605915407794408092697690220178232654326662242030976402837312864408468457601225082450858340267504282655086750608743543104998943530666844247505080831454640850828258432550081496818373637040210182187770143442349370210242357633171191871446066567772233727944316420396495926716571093046807411607870059959865211323866289810982104178816871189108215920494221246749108171222057157949123943926665673945997285437320591324519482720662065725593621482730486187806661927820742687351845269009140693696627467445379658690446444687068472249395740721675490222528930030715490055748811298335518315601244424537823643907381752275093235688869227167177203263643027835532338213020878656445863314957278294648179698880965590343246620940140851611279562311181336454063774300158980931529198509162563043701681246834386769581804268571285104621200184280906096211066834714635268175531681479457901317109893707569906048985911532199308554424580267352018576447507184384129336714889503505236505073353529115773878198735547505007372966872639133750214074273519964604238945558231781286977338604194442906655878736865170219357678130904080065436392535924648460512549503850790804280582628743742409290967582314708075563541698114829026746176101869555530347746793835778153835717348751467091154800205676485543593115412815815221113626977919963872346675853484117739393235534282481225909842793597050427867625764236224807182963230027649348230985340620282791201216499375775067851655774846343032460946686602430555109339091566744176547878914538832614433001052281944572079203037090138235461977919431764715347072127606557430075817922419306032311919277903657154339297260566482029892412741573862374348304557357276357956962118908337113809914758739796672954323251325445497107982529477401718279069630093239158210834018304449558403045057028671636361133242397662754255291272427296691131258842432939063813496336169651824877984879138080038373234122096238460566310992442697853603482116274056900961863446191649683587254463031521502605350079029404629585765283571548743289432514139492428112761118251380524911023133153346007395650096580897833579490556364833133860485884789099360207891973641718893457810075820118116263621228806485044012786694372382537565353644654979182057672344271677022143360991016741964514119010952471828866704793979897272716543278078269516592007077933063493638663901351188598666346330920844001136722526707958880866005784567223284966868876953994796952083330137337230302988969250012286844582057381768719080956687232333267189916884770794907599080012735695868829417132241031463782230414221916931409254994979939349787186133542347724603275623537292257006188864899390054450292613677087263257044114335550938863037725981571752459078584920183122834672412892442430647786218413520461469104701674040538344240095148954602887402502067578458531810322214533220944628187489133539397130703373429288406703249327369942400985284383929629552574032280557569998888549967922177467085120716923312326318226835988251056112913723127093040571963415851851445220541047890404615914452753615200679456031180554252536216169927800657192427728013409955493879927577356614971626958456147245260316697484701571661648522684585222761176385843066215281635844642489447237366815466139965800134641350886551131669771182185479235420785221466154403458512699477062386091417612369512394356446323427637300943359919168548026996522691691460222042847840113082242347300137828416443968645439507678977321983292366025578142454369631451993230429937770208161871055913981535101879277282188335674963722242428251921115695973463799403313194755433611827645084427640265413829835440754541023313855822108852510677192699228516368299156694304909066389351655221593955538033257807777426080320434964617142579880523400399048530708447348822206813291494842517345807635820975927884405312811070856486109146683247920710944421999667935867120630981829473565251881336809321390569842732233323728475396307065208757578106308152068818468605549608471052025717188989472765569415677455829503562428011022804195094161874123875598333707442259632743452183852381715711382276602626767185803090111185247588032694646230923087684084557388265355015978097891348440209955853654171497222798049412162294089323909560570159295403755943094372326525836770464576501209268112269592051588517250390646884110349267333622734493574100810086001202800223533309018920542276466187636148856085003111773426431921676689496265388608646570166240623968098504291497521523545391814898805398945446065196917396993396398153324858664886110622764333490928464051342162873871650943911905241822810757190368404015347671847901017785676368784371049907109507019525775184784152361662780992798907080468861493604788166000213552294649807980057124456580925667768986833429173295624160320837841400356009928660922064262743550541886667985234559307852104154404175212170414328339926333985008789674481540048601736578536779861558050957529590792614630218702979068145157766034546467908371607452682595644811345505674718844200901153559549230069705044783025225643967035056510242419553150764359450379175446790380577331957951608373055290384265093138545224307653141176664728917583261823614360129497415549774723518422505431624644720934252328630177600125769928756371505542670380825524610550800161828910511922776304306510016916592540301524936510928656342997304040372777441440342741776643017309018650242056140567640244347913916892564638043038291473811520388943939714767818089777932453514612941996301873634224847632072752458021594194782911233377512757833900474309576423233751315931072703523146141016106968641837258803304041166054910446849992226169187995665657139821019069632855182013999067284298280418342943925279425790437583245734658475412658226650663861144544496922871537079443066322749516357421997201465475433437264426660760432028132183359769160565678601994007453271786528917615188752554916311309663102375078151093219394673757548918438903608022673678469439250429263818321383451228265021295623941189647052671127344807371313358986589165301712765510300622334787705735729695308569708447768647468856277189624701237182612010807748016279620636037096701089152605677375168364330734164483338293440142960206388020325939319342354088123765138362597240258690887628194805369017834158851116452225044301606561059166656907481542199185317204425970943176849624003914116940650752026703501887070550379921871438645909479313766858211407422476847355987094073454067231982349387212422098390024647545176372200065463903167427885302616014676354582390173296588479672725879909399043243895164472728555296041105395401585849315300323966861581070735067215921264753747702266564153621401017612436442315082456274026836184282248063699458869409367918768912064634560249472777467421409156966105045232261121952945918824454955946463859876002200594064605706398281067341746133756327310753364652521771841179073073789140325593628685416477771991095276305114136762956804751448980377764700928928484538949401275427404262701273221983963874852030642487377683635939403897327096026374992064002626815826755905126791154321343386103278944655128306518615255182962652174151639617916797958528343788261396082752042552541913063633069360880681982508577102707546981651054591473085966144944857789957624265349489167868197014536807842450412877815431906267774938651149454506714735539755540578451199406489045383480193253068185796740490081560316845762103949607964972645148353940272132719913606663261993310523980984111224518711653931713707519588528978630903018858400381363509363062691368009053350552943043168352864603704190277381072232688127231159707024480744097786569626629550313382043893920435169095573266942473197509926153320930712940679849671384813533101168846282167937581671661977788064436707007505242541584107661325232998615717653299316956935560168000426704997225432382969584968429584853258692350273415813827989914409467803282142706095219729848785724124951409006409128003376353406544368818440444482191758650196120080660040644849499307146275875383050169433020911582643013639394476968149135498166471455325296553744856366294879321003804364639193336678057459548363151167957263195649057859037186307348143761374955428633704843371486987553803816617439310030595589450498673466651398059859828870376656338038018773910786602947625546848356635507880993196785478976097297210626827554299568073998044070916306335191638226454166923250710716452805569750961007011028618897815931243165068982040582630188686746652918588250419601627213425144247792088036566542166528870318236939809425381630113025582455410799382010930761898480230759309557443113316947918547266226272481025930437201770783977448811597128826114881050912024328094009885857053655491809544620056985039741933832025839752935883966610219609434700532825753924725297202670015947395769686366901437605912685099793371063872251206434156889980755067539412004451005246135118590330190213492030146601879215993584544056125754246126590723096354467300681584511577456792289897548649639133129865646012863957615807195777805925540964792758995028670584570317684585668461721027370180323894938880163076462349155492597546038948302591800080291905365523838124989336606546235300038771378838967144546294965321721390480946055701066287708400640849403125061042620009130318110566132810055033493355463057290900072910573615216240630159429662678469492647698369880191681259958325883066404128678323808078257234071456969035792483945524937430949703862345223133697133214478308689627608015701519342180628054616192407192487118554494792404191764715552134863204756161309598605535414087165242427009281497739310960251679543561003457630068212166555320525807390560648125916924549565481933585352303641430388789892657824592237161946485492702350068692751446654637497795970184004878027329871409435932439886334303739489721356883270913118444697838356366164204261467206743801939927807341771967969036348868676383961017511777599591846718030118381457054858766483238897148857008349539716122359798269237553948962860391391637948068409699725255458192360901749948426675823596512154598857065709522840798767659451060240031437100599919552624659917428376288302263239479040535833668409612151558870828869247006966418667463122449587107500553107733783472723193722572082405214610216472016504690420550072262662566628320518142443693279532942221220164173680920423964996788308695472860214758541243964346519829194618865609827156121882304847037383999707954573238804261678121895797782134076705828345000969221649206941245771286741947540590481098495982566705495442221119220918209332745711880443147209810353583980049084591241248931240529052096414050032281350644514944773148222111386153456736872965715941247890597020723809001983798001986284700894511519340396208129783470364717318151746795067824919337654256613120888557449933285416973418978260278986713759149279284284583388602011833604361106285226776873789934974213769390038022139232893344329578036933662861157989579293154704497023648646816819809495938245178533998721370500713240424703580771487330453882601711586026551201750705499958583162667764338771987424323909882983108505838750367990608429583884821940387035793571640753041867891348891876064676124193791144355103300357637299487822134038082764039153943437405253704436845759433610829125203481500459392937698348848438490356206764802182515018814716979283564255629642497904424161061179694443353765949861084658644794963509865599485784369693966896024747826339572728262766913535086296141170977622809654690516895958527672345073676312949000946236422541878807709673590824913566372985058701333559965055829551397630218355510374455289211189203978305338140162551122269109923737883410493354172475212489441725004474441957097614284587170723516541764742264373127648000794733011887673633191703778843636193423388878575140029509472651690565777029670886072026306494004678279309455459364044102884113424506665176463669012265153079413968417345222014331188888931067754808451639469680148836521458351496614385382404331603700676530636364417071902923347662713801390344572052586138506485685180416068984493103442388216303671073929590455224872349541341569573310921313614159656157529384378915523508276859404917390461328230439528456547702385887292384984649798500078824813495052477867351017015063995778928381201240380868892187195790980502741653188588758151653496172146652493699508535444616004859589917953383380032625547857623326490860286970755770763771530392124745024263782782728715270012084440171961125731600433937684025242896547604926694022542404013786003759391102147793945451701419376658485282402858055592959124900980673545980687023051168369423179583385625415183379280371380067557038881808957605012276839141447360473779141992039740553059545085499624927887544001486696739209534312964556280768111597212744300653205235537921914260533507985075213108478157011979531720135002306820689392975408257441710266429720002179370867319636924511436171950724864427052415287763343265821684539932697664147664577705303140343632992518777572882663006852054671471253552548156154572723313770031144236754264590061518827759123213013943738184845108933617706868640537376543004811028671002375082473764545897441850981918191571756285721227585880335343650650245444666618852216946730460894174011127364188606147279823276589909214523957486753353048160488732658755715580261911016908332161771310157835741273861213162357805273387753026826966984779120327812129003993997034861407037114185761527917566497296448404264645779694877206274791263809196082715858951295657917091740282257428453344273262110289367814608089008453488436524469310478526394820864639715276354541795253531823552639906108969628379589004210645329803521743901358367122536774848508860367819926653319044529766918883756567256026816384792331706805194647297858045204093268435484972409116980365394640382565942162615626852167940288159529971242459375908454758032326990931031525340928600426537681113560721787438614396280177455038790510852336378323968914521237613921035435937549666150177535959025157300922399804465280156191718560390678155986658129207281783785943661964671443206897317349708884596148702683957020227381697804106477941115642832083165139974810447358691016315082706795656643111558364411729057572551880192089452505125747607767501853559489397687641663425143434291220625874430711401684660341062692764114348964255756493951651174390858761820895527620342429131285339843613917573353368106668987833009484531239271928701481196161639594107340771644372276365962384070042987898907670141613113673210627499154863779977918499178996650120224126981001769569802714937603922206443934765945386829789581024896616129617893167154925435724835325934221704014501979334249425050147076935985327469560339242543956234511545792353886388031400647617478928603349828569448361542935484640763257300244824239355953690311534069852243326811393560506786375098939272742959601727381016210032197039901101225711790020607869642269921732194618182329712340099910964877913704538981381803115866616371838958454418383409769169043335529597416832191510094989899046835689983887900289796330505987445783719669560323689397306757484672718148029159401592591038514788000427118055169270055886523172569836438334128832188224153717203197018284339919698661614500811870126128572734206663679358859830460297156844831602966152544002990978310783862541109647914547735263050691078038844035798432540899369081010078885939342231134165068562145893059986216383617851881660908834839877348041216665097109664324915499191181971617563397243864937134468122105059488569101694088618283283027329575748991598874917172454249187584947054482697510724520625228294282581105847677125909220717429108372612371001600670939784311643885666433852209049811199645579023428100441111371226646623494131735037825747482654401641525710625536774623624236458668797962826041374263398161591821095087115996634473077708246631557437247526254846574161902819948531475064979343635378494952348194314455379677692273669756591562801477182367247755335207271350698981578350096257349140838752749158466283942309407621751425606124270503785201117702028293222937709439282836257539411906495493797459825140884294239645252440013518495357135541548427164340913118485817279317004481073668883291607051294661375995974790344145645792117741561366580156153154364025274467771733249404309024343160562509232434502306589353457865123139382715782746892832562301703262067738874103101217847608008969571092160881894884237104480817867483893717828379469749544815381970605365305164377519058888218866706516190393971992688328424214816891693723684347934981497005399273212765525240913537534865065517823177326187477312493073205240899828981763199695973603577753824448834208952257449485849428744909472907061772672851249425674666503288784849925325128491540352053883360886196424786550128972710135646496318746281821792005697238978952242553097101553108537964598753968923592434859430948807711516909431984942627701433745590117811485921496074767080887209657313734506706936196652517206178544994971177442295750507402355247684256462597027036233820103883976850895978951178393858883604942688591626281354169423788929090072905156093229748797536209672588157735772806851138903512551544170105117485383310378246927654038810870626840836787689165239433913214750432145578457060572736261032986108274233391467230743017045912215911636636762448758770969306932854634542804573775256388967700051838301959662279510162854512003369181492537535866120794706635100505337076352355073335460542241689574494280516912335522401449027843589360906267015302380635480939823679399857178344110995067692040695793601027180012819348666521593422796949681239476522310371376397755778869114313587245656362664860415871313877648064924948008747122169971715371395061230723082073847407081258378412715911819053428368999000228735010417705543981893152929704796042144368457755234119070102615062799163630491228494916102782749420590074444167001609193395638113464615947161682278034992311610896424073720882367286017648858922366963140857466401920241102629302701032915030790108519867342071617039966955611542855899770424631378424927910181485066862120591775480308459012408439796912359044700606053422669445013719078493163428334479012375836349505956894951816899809350779057137278134418766786572417934870018403523054277227019522907260490514866132692708163620488516461759038503157149726702831347035208799674100826954751882411864742902472704550923350746421332188924274755027730455693221337190653585172429082122857809394328747510838644505659899908110370098303724851050759521653815570818867361202734736300403197249272196731554536264210703132583484797766485997133496731317638460355177064581504460459275270128200907330480005771971201285816662375708332072738676064506560522351573745596139927888109024418652624229800370050297084086866622791072871734417609748925868192974078768460965420362068012450651343928467729541825223231103943762882942605846138746488529789222080850345216839863833683142900745270423057554356876553035747279159735106415734804213151937304605802285298834157462605345836722876434585194653222182254417256284465102507551016721464006903963577752962173887001467620901976286864445983535470534972688750650205012419261122973663955872188080684911631171803001861158024987303394757110958174334611779488074701683110756281913372161437959654892460168310212302025533349010483647112681019314942083572678379620823121607375048691316031739056878822893377861914693316483753355028402185021821209985562226820692025015436620972742521858196086798498750026724520412730295690824700855593443977685690068027308255432373271147566316996266860143291197072144128851549451495319101163377956213888065073498250216193990196954764388028292350850140709412835794308784510442425074130455727175797190965089958249369606484706224304189384896881532600346068262712590839846313070638066167234459667518501279354674641494544716289841703991598392992723236691686552263468086438376332732225268418783396919310191989047009079946123817559493806259496120349309326629722914420223329138750304323058665620714528437074209262695965292908029568411035550393707652974745846778001073971180093357960489127201554806187952527925492250933570528786666034464885899389197978686632538447110282720473327427239071952155192910123869297782764197993223321017244679069363625224889638023791777673432523486746047883560814037641715128517653419030397191289802503553751298571692394142346296636447418600051471592299759978751839318759060543632650372381783337291601272303017585337066258844502579141683829987205497823948172018453994402033082066152166352589511827301811542866683086520346871217946403744871324764102174250074550110107921998612774934203971931825744511487987358014854368546006405786174443147964009154860616361115493183467897841724028251278437958951340744742269358283141283720717348128993655912382611764554460096671173772747087005521356240710953162548360144839027244990168890206127076317194812380653132668647490383637696061583888085224956355836727641089884606352701950793839824241391064155031867063856041459635316560424644842207844534994861195397291764129902709667353247078807421463735450274369364361283203021366371325632919238859509997774969922500814910144924445242428107934169155112388501657382800670997070677665790886230100373152788237441871825605092395091981187447870398307762429407058504893940127965938610461827535769372618622348343363292772026470124582147274137749451872185761594306878356545350857360412244972703452210849961470380532074185626407575067517661432325640384587357650429662469735725797247656294325270913285572091677656421799751598091141540784606930369595818241913893134071761880360578792896258613006722462070094011641646768333531653121267619396838157237884580822152658307972015432473169208840933808294611203857022795156621047915102078171526885959141585698586005052775750229543132368226914906882040605834279223649146412070661348701198620820332041744519471399726374694152681418277396288869438773274161357420105889232884191337182396313161405890170880810545119161220872537419516450380965063740860417395006760955308419453661956756979892124294646905341505814273751911958451052896118306562017197479483828040022312395088982452778093316934475296846315331009671882358459654350038577519736584523080362328058354140334722409592755070458027513408427670984704553744951684798880254882801497843378371554469975122010573340095983620036307031918562073844214868481493356296876300350205810608820027107921308709395736120348367645443078914311124513839846724141886997623260252680052016754404854448289387522438744070770150337995537110718096146734609725413916232036647152670068912912795005444331159636526886077861472622299323742175269341134860507487757327347780637236474623688791643584162593178052994646322764613623131978015794131440049053779697828670284574610181592829367289575594583883869462858072652992392550066221489387218727227532472489267244858352331909275128496735662215660833616986774601777957782984350499114932510881978617732396532350484989538650259075915039331785842775026201865298834256684922422889392162112409153447048163385012898507194337369081554707791645718966597884662526862406219824062562830779910865382527192120897235181427993517206570286088844407950049469412411703333592350759976201159457175398101926021265865151238047876680226534533896731280937553164117290387896730619637692938054138354056395958785611531460088778519136438282662448363081892861409856968099320693834225222228923722072221662166269726773794294059394688921934093425396846566838200890334692426322351756752308754347307852712321905715382676670465903119152163253577771812627561993318206070821981168060343935365747608739991296738291110029892360582603634240400161680009282447215581898966866811459724401466165320919957723490239240649871029229279522392509816006294312222472065710006068818432285107306849867129579398991512377015163786149085513232686091670605853100081456304838266233746190299911838448436859148905454701644841397130353162845349115622648160942435342745174258999694320273464229828210016575320162397349896702415786730737005672097789889924619309185716652227494129419751740551653940204040253079346244001327753049714241794517599451982300102689711061910800192775424494289442215836209434561594445811486554063050544668015190013846114551556214618375137964234806455873046659420090014807327795280624256442460797142328604230693487127480912315741935424021640462439539801297311359386491263718808266239192351991206078768410425248108025451074777718956569519748647880761965502469119648743646036188336330742596362671341635120696410531829623131968776289733299300424330375284384523698365645093317759260278785736102186991426376208008648526801800230767964180755624305078633209005419786146751685323068471014042335106728028164106305388159513208207776829261733044007895491585942631355785582244434075375619288873987075515748739987949585381545119395886497707480685019450119512640582969469584730756324413384744218401802247756561625748898973173498535290446772653348286932876988557017840020491292104459266734463683171211012760466950939616655108550545827748071727886381710499259599861449628402677989412324131432728980944214161871744493101455987916019771623446991606438061748279621077834049049457807313326185047652667179496418309939907306449964816320512174406636431846661251508125244891127568250431063731647393999547209202971267586161706219452999430733519505165741165934327014398990044160049813450674338106499776985097641865955313364799238140790665980090183494125663003202044753827731376025465140915029892201562929360285841427809472894446347481805842963074275576445832257037471044345270258168697952415464918915321757578219319160660275187828123919244613769565087830181999885240980728222685673018093595052888654873569616936330456990529580586539070068545330720934713794941436425030762408565509742735475336414442957205365654026604087250434779273313233809009771355657753306323683848772736826589167001409804640125035164431271143817216192173260384817580329407830610676957799873851354399240696090265077013029692245487089559911017567207047719069859935536627689553621422061681017402507811839950990576071461041741463603928950522829914481919789700956459031321538743336239135861708968896707796227155882954319353662252328055100493508799706661720242154282838918130938085225056437515276200955857352495476157238693692525107804245144666285806578978078292168807031153447593380849325852798428716653603326288667214827680050595243090252219307522993333431760037876594707853181437209884644650128811736382270304470183643498439181150286003884499149794406590034601971665772971833046128106116430629784196805433067383495676543786918161704238744972313277979263908992199429154646779104821098659333286814451008365548130152155303740616024117031138963889247041883247081680750454544784856978182384424876264351047813441999886598527583614484403758448529646354518704643260494672055593720073285641458721560943833323822974779268014142154182062688854051531913366690752713302601320658192585689494314221166335231593296644208736508838429134906533995990467436026512382172544775490412923504288237183668566609586717844149617345306435608927905378211273519452125439337844563977987875087450957474430262538851371233740925902399789279619204946832415335228225086055588978231599156764295766819792535152433018632315908567375180969894324730392391758710860531433266584540030389448319023109682939849455181205107870089794115545006103464129094284439315688815310720019286782406540527894766912032881189051848399916592827144906327017765721050736108307609254652694372836850750188142034252689280573028905356445744337683207433370525560516052421529204550937867084402177223403359720904567243348086285212359356060341709904842771387490693388577524378078881957442348833353704145160926679627294808904393219357165703509565444932095777072141133057906906883888140085324204630596370199953557368532979778077740094164644880134232696078903128640647247369146387420893542393492630750090276372109313484307481192644407360893709495579910164794258694174692887107691541208712047585072737491319242451190916794659811235043691644332223331198181197903455318632992978963760551712866828194409253456534700850893580059846711969946342000053240446814680289902122541321430757848571654277852347089969291600430439387645479613916925702057372648027379056756563646483247661356735458937261549716354512887651263217131233606148863938795940472849676796525695815786063292093569747372537431787803858767804600753503626994403758012665816418021463028324832527765394008651157229880061237221958225803570614827019593319944237573482807582153795362202525256187417766600683239340146064594941739567037575243115004124233089919358821134588377669468476910796999266570903698440989327156679531623950135602176754619889919787785295132743781576828127840363092638643086917212261602446577654617505388782642369941064368417819288330025177046771411752594146207939686463735319329891285263268858420702397447929789075249467779544583482579109017079962504092340101147867537951106797210408182230935324635867502084677489139486830649990307463810284701194775789346364390981222113353575301843195554940146347588481066698848597470640780947702191670176503411704107324677293936488618491182403784346656940691261963989755403324965810685533924781418576372319776559358797350272736087946170940491288680266248238683777230711995765744621277728452165800571773724415249507083280736362639778061636990358851474517338302976670570114185836889195054417797858063135437585737681582993124985737364337014402640486930273241071853971304089623368346154707186729184277265010760981049371865104119183535034996044812447425601432491060824586915920467602325127834016515488730597622270787320063016212778584567627395290645868907918435738316590558432849202279163897474624741984333304865589701630323537699947558386768593141153773177726235304881337182585626750180902415321011184294730631879864305057153185964343704274162785960353783543585063762402416333682369064088989313009578893130538748646204778135278435441191948058978880442924894586116423931438273368216572719536934463715994367408084095220023515528709129948924371862259683783133789152836940971946064416154220013174409352534165946126610148283096358253136089381861892151155877711375487897495307037490730542951563102960831074026022728750917988642402980480744468812886056358528541412395629818429909600004158036086148422393879819369500137357191730409543968655007425837569354227430832728059504979381715711321697270943981844815737295590509476343502305314411501871580317502956530280348432994579248810030365623543979612064233755083429176098697184042142697677684081593672353608699480865234453077195988558618581927795520299857451078803333482139124020548421446095966739951143008899395092878420632136780420649764725357032009073213772862566305290729446914739417951170840576608669762159223587243729118774499717676796632840643266744516896572016829293280443057989922131675288492175436951783964752530759627418718830153366294715647148197991790717257456070960766340655127495347015774713967918897487207775543336541863205279648401848783426057103280585256897308764690180070573440894246838824841678971580638541262676230095413595473597625380905946566661505124848331147733334159332972394009743319893686941281901949103806112794654885816334227435835474116407934911810271276810515233983819796969752663183105797378399905298450287223469165150013513150259538147070126620936083018390398920746297116599640348546439867517057579508930390761259833474840551309111099308043902929484109453293502365679183005619334642063906805737055140512875244803684928257037900145384960134095012306198693145506413517910794193457286682679821584768348145169641587770106565090434906377100635800584757130273138150575980498549940847832914711163186679959530433031603930235297267055239887591432058848527510363899827505112201595031650932860734857591222249153601927610350523845406854276898752082605238812534642849470512510502824388633159400223766434932731735041371172103108642073027872400492770091106885866836372164500001462709070024550047903020072298206444085159742554483504133004370658068174154767524639003970236062400162636799386272284725608698330076711644862915634924672898138261843894861079825221961760281215984869804277933116168999999394746044148249735714791466749802267044375594516213066210662077148285386002612790939952556043880092760505306931864414049575713077972489051888261604766402759361791245859229640198473916648391703454377094071096962394428964904122510187621892967107528825611572011829636527833349182745488380089802714554279019650710080367755424960584286594053690511248007488487635313519797080209459631781417189710296764072907243526377988171798345511210128383225746006369170904898389976688473354425484913355041271392573804281269562270605366793905078606373560041201717071740405014089365854946822845510955187766030784425596592854733257316026807316446463563143228064521357068554647924680965318406697384578147694940680847811370310141989091137375186200511262744633740772588694502726742847029875211498616625930021313458198297474191111863765774785765670581250710307308938390803110913760869668986663316538306966573555533084441187826031194130831826170796436965340567389415828836938874794729987807574510998635881665565284733384063140972813283360714219755762331060437993108011667207559981395297778004284455957552042326050786047440299201032932345039259858005230229973532565144525078702792374083014746295026280790479736558187915274267954644313520825302610124045270062262544502585967005740149253596914908617285012908433401572880942653298350421683170477937615865329169998754125564146201623064012836654883709307741377258582803689112030357160591510344381661165759664714159441120059160830797251734350479374987030458958295010737163515623657364199739274963930685623513439281093916655318744313707259854116237142643004357158059772499440142552314022073191723480074601835656007921932271453368548967608596822197461570744917873317798971817076960538781993564653960526541939324748189984540045175729110267058040977817313682093816001231338068712853115016844906145641069271515222494327262820701961174191811103712232135091149293504333127095069545117682206920138578081233511802368933013042676604006402966604645451190711588842853821240469033529931346912452845948978485840806710520451044266029807237884059340401920874887691449626690542704108365521304959907536752604096666340994202349537286527443163035800507193911242488824002786202125478065046105515697181958082984266288032996336588483671527599211880909264584904934906021032425009623621439979650049155337846296374250281953656728669729710533601772792378249418664043411565108452640200313233125488058246719726037112761040668416014660993716336030890499509014802716141150497853154026953622353975424203534184507673599919524705131122740802403636560771356486745465090721911844214052649464094505694955517163559724567779105056789016916938398097162511439877945425080576779556552318253651623451130127057191784151050604231781083650776691233757980902256853099312459281939623034720398627222323234529704642153899596368452609559348294009412594255289317162459779163937856851387731614575999002299471258848549312438832463479145559599397380387104770497472016873173736289068125745955936286834295586494393609021752283507721309738447818126921172214716398871419914526100944288330227559209978361552171208361326493960680075649499672951186141318567594204406090770969248382604444531536409103853479327152239615186639333064108191494485912891892795231515822167946571479201402749015798989186092393384618680331814448813979265553239126340947672597485169697920952704263449087797994690172688577507003854631940624801978641235915038834810339863964731155058792897327491118969670326926350290396605270873734061404210964778139292779715884440296621957302582575650051160920914302553146286002798391438941370766911497929307225900036334596334743762082496898824899491470889986162316420192594541643498177564439972646560066101944503891031692721486369333902523266522886364622593747184018954092166159415508449256530932245836880623550972973319677599111015969346883488763768589876120724725813179009108993493435929033139145102850509089354787751277873083267870128266171365803182773343336120854211495483278258271569825230369008948931851511470231330589569551306325442715065214077399150544497653518317163322655252329848636910601312995784380117776997136775200515983857162786781191088171796428078217517884929606414759927125589014891039007652911664192034264256912061865194421104089520200910368033365640263392605022476622534577047814696218271447968705375611856606953224586796503794890427895555388950198573217390405112483761684675900328500723086283973484070595754058652083262532168864606837298229619647930961559062266686181863205111556702793873939863898635288617750188482484360674468066896820691999827081313359004394539794377829430247903128944173109194013520954329577742584890567518557954897179759398439934380132129081928389784263207603047472679971044805800438199227011549566710448749674383448976016682450351034314475455642793284030187156248310292012502729306061198918819199087503748530508882260343590689119313256211879040392815185236772714271057120930502484114316730780423931345123404593455147884119083205724209966731128217694495097499618988428250357899576856747770603942145183429239159249907477916466107981350454983670794679614991552176229635283748315430286073983810045181949771113302232019046261879540036451724757902040884457949847488633680643750126078494665026183480551673418393678365932796994898812065267650492854673771455959045997640408831587111768468391427166867140939576894037602909279495264139746511454208099454313239012183486826362163267899811782136452182111863606983671786323787800904789049008860505677499345175718786325101867062451519779322494612548809566379944542844714600989818967794036176418919922263612588892539415379963901283296066202726676334880193686021808889786641736674090868387069263670339607980005753937262847646938851342945816916536346230459634594370222090695034604142665873374313721355325981042084382610339044925290358912684982880088419461316021517772496454673436679194582737336515429273374176823205358172586507078291577743469406803113320536728955036772878961258858079399187878916934815864916112641943552405185172930473497056828800286568471056011350298830314305719425456001426722933514511855909410372812181417417462943573885809207858446255234742916975777569358631709129205571642544894066528485137597155057116533991124209848671413631890773990215891930042303622766450458899488518825163710038465846700772502131209461304374751642240274495806099913595521614228771966136481538059845399202915423051198939281201901576210547488709808607601289980302412652600280108643096106665417364275592178855108712290362030710383076040144569093580684099641200306942500774584394597927978874873669847867891932687444082915569301951502060674428841727560674782841042985452122541851970737111075117315172747432297200754600508461284520621515811993726648918117463092667137838209246946507304344204995398864031332114101876617942558608070892162202967657653953300950948480573267899418284901668806348660000925204874846404538280159779047650183447725838146206407172470662469569593368322673685048450401043895079379798989366973075887626238194192695458408426608075228537045441153837995243449894704452423581994171199897783496154187117269991972305115234554921283001107269548665962574483547603160382089950605891224540537811113456225800249485277490121251075865286313267546453006246016324813839548264473429105767944423851474909488283647944532551384337031720622760257302449954961481878717145342941258010121456635679104331481916627413636646166729174352578174870144435233568593241845492084794919972796040950348423684003704796617757678184578977251137626021457225423050133003994126486971992293699936310241855181809548180569531160634731760184472516304445854190583405892127834793684825729229261697879644104228412225699441276949223394928853553864459967777614183686415446705178930623800406340155668991732811934508032775044197185237677996922590215307588397317521090631977890080947042164361175292483752878605644528692652072290126250048406563447838363921226762271307523073460935641351721122199992003282936086301003523968469302547258825455984082133955494903197799765339247989755973777584408875305422200621861640361302468740720168090184796712045883820465678348571043042283483617285231499422023404839110305638238753408968207174169746374857947151022391307570418548758761815627565038894603928079374576363694842028499976588821822667753519281418420258063368400312538826370526726467553463963564268449576518134562253890980566460903581668794638990726270519828811446564684747797266045562528905021603832935090628486787117268734317013566197501540486803739788347786748112756106957322402906785180624855894275818478509832560492391090458679094707597445247146308193385123288225045789160524711695775467320745635336787189506133557742075555937519805762247755496659541944374868868410448787250649587280214876405768066411565069915745063056544483634992144479373169877579105346271455471724831250527097324105264834247155878490878238800416801724637230232064902970328397476281564175139307130514878161104034379293174238197889499843442607650959662980581386935406641241783118804450349223751778399159681330326048997117161598627452879687910868373401782736397340711423054955535713133436794750223685758386106069475452577548575582800583388517125087319584893223044400591726331047102982937867550785199831570165621528200516876270170456427755123339712539087670390417195370476026003411644275921873184007094502159380207321931886197892028571827387928224894282388884975859234843971435245868980581841765815204235172841893915680603232027577028672039778816653352956487610546992054968793178562466574005575903207604817613279089002681876464148692288664065625396406631199212363661160979589315027161249286534403337423844941254656891248156761466596640301520408420835862227133548018470407535501981140529338870999222840988782447254804479131640905669100481211952885446114033649714428962013504719378552327502627363309203458082655883169807381442589769811177694997379538636750669594035877991703894661129675360704207314589102035585373224723123310282927863546830922884689461269687323576238288104377045339085017547799282850837972934959945445059372985828600109065936283738719043161853994514802016989213039761089574211947103260200420043066011193300377752336781051591991340213015572814671929849350154216202608546761432934640371432510474659427935726184339209460375477385792676087376700205355347591362588622196154073414269141347798005184944354229232949841687510195674364812888736532856202019656969143735745373229501891597417693646465599001671672837300003187650048598892174657298494607518704004639559557364578650332935557210113289707634070645270976563390824958814550176673630115859655067135918760600530402849871673376979431418885640844031309556721220283902636549352655730065651476476333975667370526795532633713775201810659201508176837343771034830476645877807928877512883578551667269409792398057617062577945101741152542316571042751568195394658039881746640142051897322198871540345975148404489319021116678820590154444210745997763193945436507750192699279224744190367270800173548557604459776692489657982277699654115867830750035975013673130681265803493053804304403525296186155843847915181990941611545523761955926401583437953675225609791069375754093182705788586168410376518376936391327193037993638005600310388487837020540736809930685268908946655316932788288924682572143136859246567543812573369314079149008331790186541842787303293528218512375103464205341498508904139262960110295285841129168623231984615663597433030296032164263812824853774730500591006726877743710781487576445970183901412918540963485716420832385354736993294577532478095163067405034210343586223684159320640807453844371507062500338766180248511881842369467447841744365634011349520778860781098890999574583783444409270486448762244630162718833827583628381351888979865938076316087574502561744771008116837804072105415014706938821131664248289478289720835467407543457384831038523596747140317324129008884007848884922950882220937076086919061202766597450698254474938908215510337822287110542669420615227113889307630518664219927804013746612513694232695299723772557249647841163550729633539724545102766427537072884911690991152266501520019969097016578021641115532615151426288117170972611580360491047596650695599645956207867096569395074214994867930483525337783668655224249890649201921464877507360735423678337354358564143625632301981579524388489100057086252849100633625565434122482291349056877257687877962875277542825051538409239761597475315704837874680133087754888616071129158775958139890386110423442680579672323732223999329969576070976606346092611531668139105405407853640001814655813222706246851170917459910893283630480568466353494936946504236121412228216910438471141589575730261426507105010855447095673379245385677114240716827658653881174431690476207757054323137369057514698597838661769431063943327872255817138213679162132556409813828793833373235230089638518976993565008734531313619154794764563734079418314069312617867510486227074732148841470417621490476009472651646682669569314115594163493349938790254376069162936921182184560563674695439531180436878170448913632659794104006829671771601400893703670532603511551051733318622171193023686714593983836834281030612061276615364937379618027614124761476717555219180442002708538242317656909845004277459874556846666921452980120849080062143955076646795926309171952022081941111003762698954280193324269549470578897732347890922499526741722326602818458288379110669253763379475338015970739669297808737655979350141662769254728833221502204103780814115025275238195866256335422867698661539547069958600157731985833399297687478963065339493755831905619437348663866778681020050473513853584864875659646253775310833252226795816339396698264499036905008373570101656437890610599757619666730377256143472775128112565108682958639699537733472056210016180981431491931796221340076488706787476517603413656616835683736641953617814302204171686618484343123876965671150645157613745199533343603647245794399270948560415733724482132844831872135663569141607379295252090293878999618978059131380464689918022345179638734937486125387742656699518336106714154223654651253253407118601324197173119824139410119417249791862919218049002515782382405027490693206261871879846995782188714998914885724005614280959372425432446516430346455076820092129262243244431442015285750953906628578266068224123599376300539968572448082681188857149442755924715492651238153108634844820651704344828048043636028538263474167192558676222365609350105202168177492423071500819830671827084268858398224511779183785954038968510551367671437876991421334563381104868498515456333020383538963368887938957737777946402747681521231942940494665551746677206864516098858612815275302794606658226046809499965170330096212378558487815087022257957937920480253560479938875535356028699058823273035799039520774831553814696955178585605808212668781189750068387916202133816862832930734695568392837690761161285205095371691634763580346708481391322070198682729055288611509162784106851219272644251522906561330617516380981552501419341402901300201011741116176828135278543459186778925789381977870591970772050510160870046667031456218383253272151661142437114446565000136188479479048084927421616567090607677831094747539419976300149704299551447726211185945827758346241183033993374502170046115427907091566571135166848035353398880115060884799676670857234326360039030440324086081387082169905962478629165433969551661939933289285291908888111792806974596528645499536112579432256451368407474721530493924974045938646968373931594119411051427699589389558342945631334454063796081292847786714445887294547737507331349416841303609351092931595851051641629593315035736936386354891958375034041316025761145524034257026213586567220263008818290323719172930314046268382058571631316417015415593665537921747495340355253912673629664318505466262095118547332901424426555522096703676428967700852372172741133318794224447872491866831944657725458539941632746305425444004383324098381947188245029743178019350954186424476372484888007871825063705219015197774824658969725396176211202677362537568350282819430356878932033267493587769553115549763712325280057585461187340502563356172458136313905369853419795308189718153536409904083391334397677826868687680868799343059102907614735924953348864012665625047795694633706468149278854195233156751204725372888759228489173579901348342614767572153375465144092053558597276960388185793911461410914768241061633246202814405633297800872644745160605149313670518041809945436465021473912063282382146181325745427206650934542213476834751917233960441342546212575223001721847876682012904245155770254508452110929220880350826101857588388932213389894609178420544516568066475088976533336815953296604216544116689447021817573854300460577936545467690749197247945789936717761882401817772781722663485748532313334469447142915111101048156984196691921792560523458776345989774487296937553521258720920423295927498724699168661982740118207653272023675259033268760151110576429316298023847171943733420601258036835901876720859526687827917992527456824389559809878555666272663228082926272470200550028537915557961341087475267018608406741583019295687735553535320709155438944024342498035637762884647753013820310722859274486996890735951292974207527684135431384871208675402546277825043477638646273356701368961647724643289983027204685296458182346892881707229409166041689535178741997873164262459108431492755036292518384286295013720879250003133273612689198857661371165273627497660391163324471296763174659568248329420361777809595842571959240794165546780005173930892271878908134851552910257038442578557833677260943459059141158568695409402726089246420217453843242362070707160290970566400050139488628932501435182228883726066106622427090083901791465467665610934789104787428412214185978009130702910025309752389509664614398227709475942191095512995796560785493517260716956528746458723194246607762421794615710101439558040429910688312814834407633837423797984948535575812158294604818144929145310438188502034166182979334019987205562013357178595634001123040225233961891640341195529598193239822671383139186510803215140673860011316683811712024557251011970084241717827040063329828245281327387790796162170170734036542760645434900337996935570081885588168993891312883760076811434545300027282641438332633963609451682474504080558171921457230694913816438225910542599555232301192602612271641233620359088385380275803665832501071994539283162496697157443047453899585613607854584908288777029711207742198138533974512532296402512854960044587666684917477183088544429463401240931407343076509358974199275463284715103686665342157410144498370728551947657539071692322548377225736381197185759602497741381484860874186912874259689873014326741307895097771166606873169463885943787498657931325389281587868643683606918393938264662222783312708979764507129000284378615358627947879380038756159995742241487767240227118876825071186712696639600195306419006271318277496554118090313276693157259319417064791453917369966583338073690486429083037379517799638064383471733823136680847708763675788490967430538179179201282105240502536747088024508063173307152018705591636295736982334141618384818919380931586540097887855787534123567106012122173618853278177671502964611739895262233346858396491095079595405119843993140684239313809769655818131337962451447647708833739634697623149967697595089976649641446330035776528870339398710641422058700186083322207974582063401828745475866539697831335334755171735618129665129913505980472781080723272179109426717361845847788136715314596481987780067073636264712368146072893902983197724488387930926044563710299013042791975019643203380112615759307206398190195823009197767170951461251924798546780654080503504609430435880906484261934249728530678543612469286664942618087285458283913365955153520779018967012140097041459484359369228116692793206171744805619646637991155238061205886173185674992130364167414991591094045459057291059235433076781475411006098635695331337626496945256616975862198725976602639700419294868937977584197955576743240210700066707406148237515646678355051580954235431535511541617499062512103589181367542003755526467860099386272840070434361096969458046993894167643793520519452923268840082738007177762687439318285443380467799894520941807381056875813828679864597250972520059451759592247530181116572790754423388254728002578737614266832965296445464400944449159538678688718787317066769433614694270013768178482165036337044340951977524375596806508845182626587778991083268727561885064215086038171333859180825810456022126652614338504634242319191556842591296541663924507588013100326684960607455411866651861027790479460006823304259560129524202832046612259776969734261006115280551523473425059979945679891534997634749527984763182979064245813737027358115726546897644134200155814025557293886086584522213844712545491581229896423335831910948436438340354160769774478487844388841944522089225036583422019785706349345755822776931750099913626152449182394003399087964113986488886150256031669420984293594705877988583359951785768823185404344384199498046395520602678376648394385577377763334713169896407908199656555051256500362647117927815410544230807443595719479116515675429699788903535890516332970353203319134758648658967904441441273082416898065004306237796164696320997920960879999735629445403427543568699924088724796051144957348356079292060397457188415081166691719406144427755676246491501974956463214728106389547694332187517730101598694084782442792632741173663459013212399914691863701789859451953489354328081774640550931120477989816330274656347681787559840837172071847378638806796885146787116465409643201581259550151938460640459846374387400964835285158520430565342948085044253108579667126068346419871664758335617802789198712398920106687417579917450264704587631385049323388989006207081079844729392460374472559910177075802687230295791156624248411956033779342804955407229655369463983748328199927414648338277407913774969568045249368392209946681381137949121343691628655601613913338258463449237839317796387957924590357033539558759230504558278892215641129566955285219504936383653345429349141011188068440886941062438715946564203047695813949064868688267568379421929505903325903801186867132765072276163989598299820152341671262984284851312730736304542382871321642138014982201520856940863066808008517649081344012667396998883065860589954507364633446455645110512923147538601842336317038261980460934636359361876726575054455832369745433429668719039002208272405307703438292134632074129747578860604566227812080703738115591373605386987559416398832563562436169275304689380428954865880265247697630945444188545243804464693820164644476203540240026665881388296110127800918854971238688502142676017300000098718442429693458792896225719605083483686012486226897975291817401215816633380335564657184671259393660053445406326197245851218426722006962900148181265098289625634435036786559477424429357962569821730509365323458256276056305373371472613088716509587576913032926670531152571146328973047428754085621945519326596904287255726285135915618791136927421296622367834610682982381834459645551603917524052807963298125345755380996985582317924293738302545843902897785997940426235283652782460429317770530672181000740452015192539408123664520485937970736469143080541180527332582310669683760231995343050808739406148198801970686661836582522426215063481662979211450249152999527933087767545902424537306410437445820365571125180903768757074013550665973450929756453153651480157151689680295343450593737853328866239713236661886646567630544838026555121100433458498421296608907021711230505993981056053401390813303742154420949595282802025181136078762534308651906108951238775966305041946421908406166338651561090568546354045668398942681852613508626807215492383512236586926404488706781712443413712340950409397628848145413572625803124537693984440803059375007911401914694821174074990576941900776347728797594505270137840563504948205978942230845927284314915779270235948119448047870200310765189863425881555329066126481382812802364254454661817191894123770057959078842292590098312787886556723790224645764654920357754460646259823242788432001778947909401317301767500978370592652818394185626150379458897938847811461668390315353170198283219770103828949615486705500787427707301729172148952739590308721663693291819258332716448254226617452967665700929050756219536985563766984179671056162367166635885288768112938944269252587476811873710410446745161431592643393043346910229833725833209487514182580462384425556192759279368033272115148672601836855126304682839570624164070877133149236729885455839276672495231857876540879845766863565298131579644347308071065798233184454126393345001551476666526265053924972356522700032732456640863322117238344288683821397071317100232021305632091022340277559447239422147239905255859844386431083947991387814468525601306000517870787767484129527327326191359283990611265188991837161671121433906041757710936049738111214397014314379810189775786413717689621523392397326390032304062334832811204720236547917612876119190482186881267153877270420680589413127446990198035712162534188375250087077346431281903539598827252180549962881691398143934918573599674863561667039402262905703947244275435249892601202990741298547192775996356368808450701610915760843860550523583486105532133463802033328737053774692457010486303335454585685010390272026287993101845434330461549913540866598757796629877861058721994680499764149060902793578403964610992898160167227857020355484679178391713421636683120755457670698517068570542463591929358794771165092584015713568731356346874043055247555700209779936757444964226400652942288601550839465687114650769500005030153944167026153280919650709811752193788018625512370932561021695317843519396889056991741917628863344116965843560433597420683630868800330563811047598147996815058225067729602446760906482536833305858948009278996676831534362165523946144600808142871554128504798783068731016953956891449566445044242576491511729371229594562625934495898305673105834586292498804385389804494976216152797593453589758151395415195713827260661786706413202780302217676154044902139965746108470794835315901254669071631555408231628475119157356271299830151007744710580713128133466519237632855968718223603554246081368387167709497272670954823884098510634505211521921979816394147402567302900589810553448446096681905999482034140424680459786039800198372314005218149293647494913755412704191226938856178693466153610756232233132681602905298097431516838467622523641301533669664315008344161136253701880711741055012852969169943866839714494605998868276673831263084387654321733303580569757454247411175246308554051678609528294759306847282150403053955768722275385412893091524038418237181981145711671260621136934797840623125540427186760033780063615253657257694485584431875513240300408468047760743581548157476216938704794336218941311954306686945574791676314662172353118266747129138472868384603558803303366148013757408503300188319363635026163775433114658737467720352157319438968147614383406427748161931373126727496041428772390241942654906617237346847194367403502432821840920709379816122697712663461874138099265770161400222043175944092874577302528559593567914591007868698966014833127332101325702314325283677882441873591123119577686879114241205414757336168258860605298341710634894639573156995429587815248594168645540966123195699114474030626184487996338153286146567739838185572050499167971472126219175505405484010568701790093551894640136918901577431968952981583700365214991490123364069238663139478850857110824307488743195060526269231509680829311478584993633585959323444801911806529748305269573063134847884685463959292018383877113996203009612234553850052805228200494345905978332957722178374539767251416198649850119377714467204930760029126627417459058422813275693385939274481853907032716776376942697599760629026043483683229224478201611223121497855202981843627376813497260260140020601993428033972453456119626980934119241406705057907259791146966979380649420374461829552156911746323807974505535499063581821742166002257751890774916980719851154388390995590941710119708085312262754622102034435527570541961887001271172468311337941461461851394470500683921216545069405770228265202326191174826889458963396389050304625696456437942836285125167615576850520354836190209342238968173444677130836378513627570091861094994780019301260259271871167780349719093435169656257380452824665780818576474839175317753326583364370186140586749850181883902431501045257373166735880509794568542528627771976277608624211382800632725879769858591467731975756552444027185587965948908075640026032323068108047742670920954358492922434272755761410509899691795676789580878436223833061857844576583590717631735206536780750453011526211722529503921577664631041699943195702662510908956082284361999322841499939288049256287613287648059236784504132595331852531776143914080922312700045894756757280146370207551849242111725784498458347978020482662085279722385651205420155482762371166471468276769837786652476714132193593425364379427422555493181178275376423465970650651935783358967171442596766419140494968807974439494534854503084454453998501160574942378550609985781378521336756965458516699053800472364559174272229757010592691294503172593467804959234229281692982368973554853774714813242209083343824670849075414869852845217017360583924259395214864207845248775859942979546150914818985742029895745664273472335247525444777967191817286565418760754306342912343935323551121449641632073912957862158667391120307435087188916474797780806941523735208254842543564436541814780462234470890375660522530365099804608388586095308059119418487749296212882390218413413505870406556894712352973925861973834245121039161679338891761314117533846474122462167044296891003090294396486371409467234228823829882467474509114301259210374293234729624033087191032168437643375042257114236994146235363135440416422604041758829577273824005602523255022037418975241222698719211760794522211730675388683188957408553838289363178667050912903592910008948332605321762420341560607286829498090695797663093519496332567036928228617987199297989516901218547085764298493717469187878688064131067594869654862105308975339101505259717533397546283669627752204931468517331564833844808982293039991082805979664254834725991383047061698963969072027636713819672379985070268955729474085575993636757549651904301836667353801624779003918024190792278512518878773693573864653398512331000808694303852649631108137899180993410541905080846526075134488741250517588117940758069877586831709721743159282721333388438325688103897621648954663587776600714086010460719258547708219243149917443972225411703008147418855426761665336317853066029110137148819889324131219530080077566451307934315030246212866933146152317321448415170079278761265466394262375618569231089368393081190166356448926077393826672754003821018721605823533028491624101489229766467193678811674871167194527671411346908880569666627652613162175865065484207464038216740797794584121920352801657936128335607287926051464093957691695352117436899721258027107947367425247588000514141025059946807933973557866279087761199702963340911056676956587708705869466756160305141838054397277096659554028580831765249558386323129792301129342973651421986606694480715751967956171287896806517063039078583981717027526382443797697529310234624275513237056991973187290107855776307051521459608264899921865669051523635788278454912743448043112880598212219252519828527406555977828781018995211711969819038513969498478826818603159410279396011736771827836519971205305680253587017195250909684055996613990382160255044886427871517471210827645264100767842815281484738537871553912347253118563569565320224965013313187064948279308633029332377854190297103437970894440592984130342500145918573143258343796500367997482318709925767422985519926247706157591033733340329678668808410210143147142456271361662761262714899147449911745693722132683913910663278229772606962775359146842942658376375625226477204199126591378884831935654539177340486761775969752526416294696113566293410382808398116780022637526646077920919100702257804233996696589052345348353451920149694744379741098589448378045263843985443130088574072109112241879682390875042021650058368599695461699497416929589977029377642836249173353444797636971288767503121989569918395264303822972110979516426486317981343015551506103124214813399567957110231465795336695889416327056099705649284140080197602259964293272465613059612781521508611461629587418175176911507914254289404151884815908278794079422966909229634196287765021191450661320293472915950243262062284874822454095560909686444930784874405614291284872130928936635773233661644036168754133236293209549615413625649542339468707258714617041961450317909510988936742326945586612799605687914289494467172124635080577256740791966365342223342262656018274216985050152366394339282386552472207719343820070727367045222838006245001185947826875896423200094476950233813600148878826735402057449946659173739181318457946393449133767661744694240601303213354106871421029943628871635457185041723700435409054889887015234528876360888692616893863923352697597890649549476946276349998228582553729082302692078264319150447739155740994644902033073091978793567152914834453493146022431651910786397727022936540131256368508250753831125470232427079697659240443394239007760075395738285984422306022915338848208833938623625907530427761877406660288052088773903818772106746608469125229796061439048580770575217216823585364801881827659397210528754886479276429016076674821487189501566988207885622492473806296398771713864180810795327177349649896148776177186085239947950760701203511171983252651583559052501937989361008885675630564396663455277728671923981806005944076933792609381129455257444858037298638948236976072173845072642978370234350027601666929029969273299531462548912937163684936303303825871667496514705710465794429712684232641768163693974976608192286441572943252860701501981724825406635533790248375562370724073578079268533532583839444523361568615395323489215993111587073250969389401740671413310389366720389797431520756066693585798920770526968696577539021218460013277854462363599503387540770537574544295185020073700082274059130824561483472069301418805095640090684324131821617027732298257390043751092757555899667087121559376763174269146387702761987986438493851284002977940952390167866051393933344857859821116179562096507274832175266200125743762780331272353251982791229705611125369684380864877032633672661155519839206467436160713334386149925273244235936812902930834893362218586306998842817072496692946812653154799708312348502246422453685251403049699533488216522810171966241817132991709112458171605632666683455953672602014578802874045164761539301372933536575956260970999917321132373779525058886094564159963276963814724628703684046324155172665026145576537719845836744068325100705408292967936551956410134689525150742114164887001161845503691146078119802772831534115009356234968748587028981951160237726064849061886777065036770415765871260425962143479992458125426418358951812058460558088303298161831478792002802832773204540128429513738909734312332583489647184361834120027103025742749122930018542618543975306193687652959936701245225445615911826866274529673750246754872704048142874816057540410651377986412897378408003745586732197934412670143279855712630408536797624116248756957453931469821644283767486590931942353046646358874081804503104885775338649805316662822712121465686500554897154986793041152922864654332959063584083024634366684515493226004545660160063704492897336714781765586968846841242000027392514707520987157915324728088070398709940646671218069049623270810364026147833911851019842619485640052133056343271851186721838353315120615306203656894018717777067417480223805392972410809329980747820357186082854537141977043340736501187248780958448339036447694484328630192167594948414279823457572514570297823923575164392877490283880237496773705882615958541682794779217261739895853489661678258068603367055923651774866970547353334117934040444138022556447556264082802387986661176937202958791709227547933332055898893686203328457647684317208223084632276124416970191772326348050191498267447679499647096979249205855915747745621339511168989266305616877170626235809129365626798640087252270486889001182266274246408010299185715574467865737184087392976053289994299702146697991454040281814014718895556804351678211868659846207105910503435513687035868085824306972496462500394943024835966161248269829219947100254715476217819236565560018310719214595745296644611401575421691126160509258617766703966549914058051945731432776224741660908215511127508557841789166715825041966482973531724202826452485181135546053589086770167675092608986185670966837576821996678593852066989026446592572676350501928096511248212855672074238066013835018160986483259193135771945597590419833637895723047287577481449374171105195587549347779106734057509665588914697380327355114306386940180120188280293902112222329994525348472606713981394410309183835642340491320200899849439961657364318343345689170797967675495353285714217461088623718534443131061139562577531600651464216125455551032360497568434099905958889179919270136814485019971048615424789568805666194533612678746621274349037716313397814148200745995671724446669918025704533050810315587393385532300544072414889677175799584866598041431286238543370674024364445273258632346471476591654254849660450549668211962924482442798030546233060419342410412491374884656751928726457761943129066556350100700860949936208153023878744361399762026884478554148791717946520616698312779789156699656369707933273778751511325447691423238236744467749172822974768684597856809601150039345892577854197743177956866333036058995007634477973156752325118081028966710745003240287351496857348844777107612614047613362777741125785332589874412660486259917052128268523607140900330327334577224841883271443665604730954161723452872889014249234078595119538010644980855236741584409626421100701884034910369754157090599484979536683405504235437466059145778171716434993486403233650312482219161667801237233498091500562444740534767634502235417658350856117355532267043197128642423327057358335319803855636741525861084729982646715002069474817853118991101662671824887443246494177382827687447044052786645587685677823779971967002287799465120440810286930116516320261952804249872835187413066089886963876280814686535123110209883819103809521321300977578537747768182757495181088577119629548399717880105537374874774946279410877014445716260787034300566585153806234012203808815121397106456322154630325709935767348406101030463822082440595929801705412381845198988978859378761444247147944298517610589412128933918908583876497498916721095315207912507446479035273685239979487460530370356208301371829417549997818808877400347767942551578262900542112932185833997539046522078058605566556904727265996931303429923758971415243238518847938181912327049821248478723540014480212711889721406631972451980593541756961592983381906240347449573202645282114484559403175117544559005022919362548248314057827838285817569704938299270392792676273345723467577274301347198183105933823729629042090826314542170022457396527499865927530141310416014664982892053947025822516408949314095789331130571177810048022702011813704548145035132346873077437173098269645907955001143332277279644605878543203913164527913294389840382408854698121906993793079478544319112378844469340770261314722442965243885006814991296038865996225898635403471278078510627268986572587590167833062197037607754935622651931659825360351821608452931044256559926627535983797229742335884039065919378676689401379166816145555411223023474813018887367955096987194878119864543602669790808543537370922040180987923796847442375430072022104430618199429416888904496252690415231017023173918030893003750034293901738209265699366173391381844315416441870853049250211435113930125002865825149490031355825010880631053984195529079264748587410488616613288702627695193494038374651445903419015622824192865458328400532631481858735060491208579113708546428628902927646393341950630447917911664850631920532740332803047140050015588517257001477586191390091356750284588126262975242353372402576320810977203014382337882089033028477543934061830803043805765823570820376437046381366681982134534107864288483388764753530870063564567354623057235790968842238357756018062046289316657704422205708890496179051031164597513529745725479845921640113431875934845844149198060440923198106340032166379597131065996910495088544272009790986019600686809027659586054818584739185552690300943939053275325418060831952672515678745760220957444444890980008759543248747625103750626028435913101011440635507208062631356240089527867789353540426135903395627471910896167538763434652007698448151283636121832989886962567272034882223377098461915367055217693608218125363844866894260105467071318953661466959746304737715994263385303364252524123968860489617976331027766921582608537507411031785201250270108372346647690148109750990492899794935756913738288184599435357905838159069417291027259520096547017391305517280576248959201148936202080849185600787863926004008407221843264048533524057946106088045781153875971505269419264186494922564282552027963856693084804257506730321767921557062327198029577166356871202820447105972486859597284163563664209870848957370544440268629442300971297336394289885302093354697248919520830038867310239058119386820598273174380019170843220034956318228295933353856217465869608245770710664586526262790663248271913964028110447748759899812932319318055687612071847540717749625888199680971971079073450672559297019819472271852347700543209577483064804984507502126649656290173505486885635544430410870754676225653757861562864384368005757206364207264736974045357980866246197597959010908354323675115721094012393121704623382924302471038079279065237622142349786920686341043878933326475142356521652670405299376361394047721692316978143463736417448897678185412965779883637554656602469045359927641320391321455965527636130567651513743718444265787494324770241238483369487222365772612602752015386832545920649123070540944028671655142368345450113488883014894539333623040866601241004562561860247265034062995312752757032314757713135209193523015564380487662947499285259410507514364802229745321380571641546663516598277615319941714792261638969697997289026152476242811401008635743534977401688124019718434939554819088241453020246618899887589302236647796848636611830196609587215578598011222214879448007416738352589491690245083261409364434558369887031799373078962737514428528177562902180692040418353871644061568933390915731606784672830679027413693158644253670619462326466562766918618883800987077967043711970521677821406204693356095531205513990553458849558630165620452575792897388469703755881098826229681345157378910791563730484976800450396500010623266207953415357577563809224009578870007353223998989346499240327239477090565013996074434334307331143460781521013743959792017836327790770180859611850238330239212966893370305879712716368299403291980445340562321290588052591922942157104589091844056332844209578907413801924139788984575856968921657803332534081944363321785595514427310363570436896807271884204726836580156014394566995410768627440783224619481002628830194705578029819836539259601251824077362005845924590839049295410589436793792756161932092570134881658851311728045928660153158970984642103630933735967690383833679595549395724087637952506286565277714859786040242183908743112627398024102352985114601439178726997316619126887322875436474660212959676714411920975731532471108190507213889928058253721885919358238650178038640589921506848591495054082962310852412921809306474501399757193900477421216806717474274108889718135953763881537348420403315825648897265298488501220173563258931001510155507175550808943136004179119439639880640771464684670552052948814271177727084938299210024296618623763778409803534432958022260371602013990590490495537089679804223166663732611857157100429562134243814066304194379461110334531688810328889848390017687893462226223783389351386936145332734572401293367348371897269146200421045640134876251199454563564639642989142542492385068855330558061101561638088580260846059612209873734007106243440082049186510802657322761562394107471331475687943166876916209849618059130917259260837575605966163537392314981227387558439951088856772550551152486327648737342728149980038624808124299793201784501805511160802438593803321162747014658916407523683427286468722811366271156781134303009690842389099171899214228775949488150585012264185468893658013630929691033022762578868880387266147226017317746810745354432771309256532450556692345143307369623509194356404575511012307849691187516560060721957251197585861894402737760408018292634667343577148761720998931384410155847580110346292605577693839845548545758202492621375820123454838417822602201200037565813903991066288748776291856231224090009444872726653189345767514526148318867080899788416207713454047182230019839431511954990377554108784997693434681198341114417077036586897590156576820372499823916910364601662052796760914471762337325550697025299959705141796554767865515355539507177583336736542158556948792961423771511738567150148456570130970253464709405507232809590602308741580617876155369238494579818528451432216500782824761900685952156065449083396371907494304548836361297204116337414613451230305860261339653036309556906571739389680884737181115638716753335346899640914146387229583419541223639015753047915991934357404133576161217754289557567568366166912865281640414071199274100495258276799707094765194382013071851950497200705421333288564739481150402199821390981496302646692979197293831116104234840328130386282890581215024127772283824400531358327580730116278085793246741439499093935479307060547393636551544673569690464990638712129566526834629074811236291741380836219130393099080654053934795660956306683814260893093478758990339894878582707221665289633626977608685234031368959237792171479262180585213709485111363117783788466393146023540900249974928806085493427121150581051937748016318379752091133114902383201603322155649477150332366219592471031713656342535806147984231460154854662080392693454690177829277107208801152970306761205262424307969863861733132938570372937424170495293501106620445739410279785292750610221713674446783910911588395131345744881847426926332871275889002776827052453132523121039494036556871082124298298900284944455389071375991762027191012478900351451400191886276680255920866726774453113444268925496877221836308599708022764679111747980992712838629034287571981551796727241082509229553080545720596670740357814773193043044443942451023896751870173727738658667817228908149683501330751798608384384710719123851434934124063098559788171109570136947109430891546283669563568142850812847979858490402587426663038026553383973516418030318543887430964222693870458746527158203466808167183795782804534549857513822428961694794343646275423644208083084122934900706065322083643222754611865753048915784062598163938166737708921632447835918020322819319701321088110209437866563081545159235958418498615774052030970450925762058941084091995335525409029644884224104740481423338296166840424561874309323259569225816559310133336911434502447137588841191685691159879828917682593397454529681889375811065245708135084031985594874228916404323740796445790375242101257119383029862558733005931208405828461434382880645169239716581474842942281678593817617397882766671991645768314416612521931769569213242453441701103584351791843915654889190162168646302101266256310065687616480719224017115742383683374780052929698705892517175786738954787557798024866706983420632836523225468602629434642263653504012522417277356238027692878127469430081274872000215134694993475832469370075999037689441772014430914365743224331777598202184289416916808466585716532659114165869167894343279134480950019788595333526966321182886007782025904162077246196341768070576837320757494708866535952837591298549351305883161472842610289919301005596211998594867816529569829928195165323583202741196489667420230448128063892632142650063807432819889710751634974701194773778867851289804204952701451720264160881340098577896927047694908228055148435203972035146220507184475590624539097991833472513793724147758776779386395529360615805232995506281662448043427334465511266867144361431442596089110754211581645927584428382094638269306332180066841825409832752318259872888423690126340338183762908131992221706517078474394059323962677490043923234955675047391001952080108864969693404356646584981767323986936926803735211929983834463871277023356196154384779340642651708179840300704529769184854844256466272904954171892147573652990067581235846812568266444414063027092455775106410189597574970797143113086377301489222797805445124381568372691752717304378107712462305463173237889822133503085262726473587733994752238250900112677649641927673029297233659361047943003087575313185345821112953375624061750939904949165879744725528676140791997221135079654037655677012762577571288852729213255424488834326078995340876966518396373980550817433464804022666375652371637066307845782080220692910434472617057213058332644855766434833251998064072251554075125894823898679509085089953265608235308743701776204257279114118485577830986829811840294421254783627676300319131015445770398103198199970485586511900927232434435369195652031766743665565750670645137977330512465542730275226324795690662383582732657526391847544105915750218297694214100388904319870498792480799473113827867564540047971729745668397481355321484478479355167713426621225027360039570716651071415893555317810751968694798605983448470246780194038058239282435724576145463429025851483120059819022828495968441943681176581108758669323398070730431303639164685963847440259471560200862938755678809916358279707887350215981656154413496999497505133229043554392061895985396192226661586446937853120337519660778631329051377421263408909175682983879397847325786234064430662017592577479474654950060390105743523040525119815723063882730548530011217575876437200036138931062806163378483672446661104601579545675944451663101028076706119548123061733772442668588432541491797757403522373765059637618654275797444263751698989232924551152708055450919236442878064733833404564961654534173011998527036443053719319182387662823336107463455740966762949090293788746807191516855760931852931409300060530847697010650235396563853700836305969521379162776094870150134613182573813680783534702083340160393667490203184319401872905698933812851525736986869177262889344007730436522167366528565324483121095602944632434583967058491086303880764150012198954733299042364653876738543998479008441539127695538036676692806990540728728210383679359511313274089309540398237821434959001506689207987184496065344286994174100865092963017794022287461936493446970291137805686548603132662336570185770307592986816134787405614712097501318740353434489886586804222019228272929186517934603321120316053546551579045582309815811411760285496590864920801035144626168677281302994859302988593387346986705724255467673872588327460357574378600621763950272031329162344983991874103655706423737851246561140333149793315768110095294383148543619188795721564245515225227170472598851093149321675596728420772955685674190063291817836226138894995706665156460574213219286361123019534531993464449821524137091362354464692646374777445913540805569285166516555433045463408275869252196332934838406129078841826484225140143984978111323348134652480375460748464866056757957536653298073307674846012843419480458875729976408268713533106628070027357515423481767495588994383076601707319773034237829860380735280390055703256317017005134112747512018591667533536058395978872938910065895319705454390709328299309176777888426104689929198458125681861052011125335243191579236975584248892569740803427490281071012130562712812485514218394557687362909952197485908463936586528567029115482122774678581958160825655934959127829761103419094177358022997015438811241824014665669555823466821226205736486693276686946847279042685701438042679518176477011566661017893946972940652981935747624851752294742353315454510190626544712698910693656810391487880801365113306169124534605652802093257819203321923079914348409874401835261792620253774370023155100678329685739081045516078218361017705707064744958603000339887442696884134170456293626641827332576193287400386693301549728503188162712637978681769670975091493811523311079732249257279167224844706570475268896631390086722082639788192086527532057460979656875928225300662795038694490403659772594898376378615307757057193401332620264046547925500268203968389625974214528712485492894267941949471079470896202828439885951487448689563597262130585779381063570985124340348486595385069747194106923822827380860737631789056154123663837773415184633944410738517642761531156416279572372685633817239625600542723744451644360280798162985381896128121976457512734689713029725429985570743635496163994922701867573172829799624219466507170288162444836307835556081457442577626275020610438936167437082956209907786648144813589379162408382450024336963848034519827542354918862055602826695203979441365662895218876596540214842917565812271922868061458625919327587800689676100464621334739928442461202920268974098386648612376687393271286052567879467513221706832648228326489072669438455148666962919500573299680367940323595444424198842684572644560606730672956482219746724925681841363124806197088056881603803117743759311424693743700661355491289537220985872838850638240926224029686271676259514772073839515454017902831873396350079230925400745446768448119674622350967534830722152617205254049886239495661968058417961580679938010787589037065232298378900296488129060895653684337888724981586359668654120025116080319035095685666132277324064658324254161038756872827214230070634815293271068596747892892896788685643249828591236569281427039983777320862553732252204719665250225681345002255306126126581029702110543564941383232169743217683954315955676372774492357466752517425772150541624454662752169747882131884297777116226586970019300726295931704308902017017690964938397834204939164620538582647205251554415745369021411437365370781000215877253220487112944620398126122647540004898016604266383827675905943292289568160651534016676523401795895661543306997668939260288530962336470363463336223439077769124809966808862822791076769825762433935941860050068840464621363300718825963706828627131245578869434726135123017676803339997274799440376938344181821094422140857797917913373474824677971608853422755193943357303363099598211788476837414483665781913443977645474848175563981493264936843797160719213629701566824549826802670435329481958689327036134001683792916165720918597058517720959445213383802493198850914950689228707025044639208660863980653678720229443453524131058081110207910809100841337141559355788542187292253577698358804505150154170545724059321845119296451958005891323043264907415490035307856376697008556046928887251478426404737901458153359773323207225107920522733412037692807886678785646910568904877600472542197790766541177898821547884115641892926996306468789819626961318268833116736710388070918026512592018717440149618469148647874555891879024505049069691216720746907502703619563701843085043106350206351353732476109067414094625983085455062173682176541537751917091434417741552461706871159997004353973404791879421407213079134877274155160996190515383330972939539843219598143223869212152611403655238952547827556360684098761627692231798648892607015171015337083909883615779408309480748005970874787143868765434255991592912316205716002121288709166732824447821257619830920169553944376392099131594814320251752246181829454250948176657028623122081731446017340682990496908754460710387830785648787898630611062205020824722852881726362558243230326214609355017183981246247098515582755384438685230725390824694855057149727916589975461378661311536496455716235315056179481459208917927636984628520863567361468419895098573843102355241624759182638039944713045487678126031925847444344374890072318136175639967635133379543142582067493664081140523205190327263519399784340689122335298836793875706587409504394139618575313592652162072669209183875743793662031271552410562373637061043767343565143867292753010508838455879611101849880279796585419688900630805612051067502173621786477644295410264066834035304627317582510744668916347501468238764720566102238114957748928105639339525972805231979742148395691047288248898182448965594326148701466305970362244992365347152622951817324897488573856544010308101192219009672553691849223371926561792797120207917350986350086777978814898074430006863487848884162138209784909144327254688913700902686986817999681365812482016363389830641277693646391605316383125418921740159944493851062976625782785887994257743644043296093820588550310837938656872657497645110948088101837370808075506880799072575379791710164954083020478287216112423410681243580486881099216112402342276773468838761719748628025981050331855945700792137479658447445133192756615638344023886076719860993293407997526339928485012028868314557591205726848269865179073704876876405540241851777897676148367763166621469145700381867119905346249556634367441106089971343965593063930385153425698248291806605906124481131704671888662714350673193682295270076731161688544735771175757073956813704665408283717079473062477619554677817263278552402844062774513887238698570317443888738683948641972063433029613657453712066930931300722407057190285286853499284223472062362294578062687395695506723506571004779136062137154839921244425517445296671180409936799840291146432112724174579644508129899560277702671845139557975497416570945308262585745748959568639781878097761832218021116812597257369593375895247599901825898120142956779999695877619678948471504465583672062230780353413125999085720826780747155051274394593878356862724493601548598030267088345966643500264726154568909088679870087247270462347177103796262723529397493163570305773197676133070582134777928720070192584128560961282271865144580983834538140883506312995344178752801477446312081815942656649883222216966919488778539127581908577058567742974297946398626318818199539126790634613458526708146302073117014587179148696020765991797123250523410037880450232684055846144369939353065445241745469190860787388095954125618372001337965864037067716572181084660046285721847563810827361155457569202663169463478751671366526384324951913056093987462062092907709805015528172717009827478883988611502318112074903082180435995494185115476525942419325406135438511636240718942691124719728059388427175619595526171502243679296844427707491285159169052259542276137415705665757538931058090436961826322387620816714787428962934879295582076899214359802438789837209475327351682766111436029201774001027047482300277702848098846401385575442704011080485692223907251667356088610983878650065121437190323211868657690505197774424811796423125013255275990112548748587102066126746806815409920656221827405988310304070002074025740590413228276754893962931832662110349320827548220919716693266149419727231223776271715694491891991891438705103538284201261859451190886038357771652713090352777826298035580219300489794973409350377984188747394836024450171489933980341821912352556093573254060118009381341669654844393876894405186717475230077858687327070931939330258848951320846085639630128609480366059696342359608551987461494458995601807579292471046784761422772378455811527241410378827322213256713146074606722192714067484451554644694162554457813849848495674307215873333368205577639599305393868521824440193813982635708808602880589843535529469806448668979847417141193937311670705780232074015719014111901253550870381666873999004806260291689428567566384404449633706093931129016531427712193123482061467153063531509018065729049464550591274712499082984616034980932823632484733483581576139212518365872668417637327206203524634992766128127982124930580360527005851385436287733200811879369201372284574967384698312880674157429850858729586523149619135018946292521716570297216755501153069884423147639905302628373218810222830800823579178947377135952829815928184998126149837730708872166451528921795584506340723397100073962900099901682301977728057479388182347577453646705276845702587754253265120284001933685319650654526319752127355367677595579900028690088722045283507315328429601141163327319189265795998073248198604094643859242594383786712865881731059650881770629940367134258452869719922153510831009280017419567704526605085860275587829267196351638401263932525491049770969518410452214340065785925403943095875659273659972007244337080823740073219194325249956285658098887537535234285620564864437260173946301318745438567911171128762098491129395501302532384383222534926332707849845496762291517965828301234469047259725113825547390510531040193226031442278374650829179242800943210714211276122157783375044906692193683442561489276031083808750204982543464912724491497056592388089750473362486274815096593443387669798939214207251177656086578702171374929037034724305630424041023246026458227614237767591593063712843297568525715846480967044861134157466148465434173398910241735462492674642908836158989232477355405808890219868659640784508691830432037935552667922779992789575917326699577874159379249696004895734161030039112121378151525980083418514931623624930971797135109035630765200789755689617327806795391746153629034860339451256685040162074232164155013744222113625523398617005776446239746766272951995225515801085441813105017177807886386959625255191509933582071128220927345276329182556831717038566152023568608746489159712945526955747585626280928136117521094426875040932194484118527099191319964634423182689906062393014788613557280722951117057261597345172352622599605689162731596630222870220694371704086216161479876676876322928759618321885568799905495722983679959362676971383281298001574699408724955732361693559040025359009559366855965802642298093449464209761436309265425089987444190864147516012374166738079348951738335041016961959832216658717861803990419307944691847944511030948492890098737783696398740844773106286854597809700627975828168368202446289981982208072559000598752302993208947533400874325052102310899178599268924864155070236685538045514812004873894922623025780159385653814677082191490432719084627017960876304192854009614443309995776724951826512260929354975738066101686649600015244023549217482608464045436624888241652390945320644951566684586906313366576794676391442757625624607342411051209500494344264371678623643608560105048422144823224925588967092328004962332813702355035886332073178474716675933270068866928001079549157219220864292448089637344618187599641286208325332163279033760906665680494848672308906812211385572772289104439292079546412838797574106250065987460327010457847462301492093668243434388512638946964281489706830178610479055603696123827060844384433570964256243250730010361676403801293819502227089799913335201255669501155589543758363232359555746955626984320353153812466386595283433019249468285122600186720199384969970409620870776447827536638362578225273370214157922431429658245540843782045309759440036622673934983827251232912683850350710605093971083162650674828973906883506558715529880018890988978169780952351880356189509570632717399888456910152259250133811376871429420646667491330068928919791573236390606460607395529783781435010547229703080068357621809782581000088472479772890840869170789842691372438904851476645801176517085700530215112010855721204100203654592046759158698352636948468210351442068698958180934228694233484862734872934282823446550143595246624327796871437395436039743441442791892860268250591799752993966235147094404609516908835016717746149044596914940357807938619263543830390687983539948242560166260409525532210791020286216464014882977294347151397999006600464873711623098377511538203490952244128607861632214583238398795447963766383618507954631060817030315155411410729327281382866338124989424683330299671046935694457145797014086040215815751121689662626710199661867690355803315298227774702404826800260531561170818044913915413448542679373487314714041896033567676120996969787716940511003208557582728160710801909062660201251988292003956270891114101621869800484814429009435751471990433310874078231317391343588648633701444389630611037561233609882657811983681577736097105618004358073525982248644039049870495294870935028782409217483323376091833189041913592589163439791571902803359987183169014008048811825023880842934619475128564824915968777656218247491471301050658548654516336906013082799768037176970780563707248711104890620802311511247527447313546609306105580847141292622010650389739243157605758000821728541703214776727144890840921592476430199847104156740975786543248438194208966541697710166551055638603284455422645266058582670192470047761408607373937190478184558178947939525955076996525498871736111731299048313782976143455725672378674151317531791907906048539502562364782192112960884163983448378494282833657022125429670483957154299062022154289854497238230665773072023544555836266681690430790169783564030725994211321762362959122965557468311313401694844521643346993227341559944082228391955104156696645738639724378335495248168801570657842947613967948922970003187384532724522015200177332809287683725688975215504837136197465610060274169098207960374123246207917138336263848685625278761404021152389081428311802132085299351147933492926956071290560907299960932680311463049696511608706432939322414987376063950286057274415505892488126646409877251588445948745937975501741208756589996300161045203904581542698236565593858658220731157891327635252935820825023959473946070598085933414183003950710939448544748522844858802912267221678810361272615701255112161579135239365013550932045700100922405376528274087171826212453236478535379503690169612972316995779251057340465388864657540850109115807221289549154580487439756841993478327758704416181458597662782999020073961437816870374369204380068558846710902814110317835186305181788513330636903977059470272894171715967854670362525357916828411137321573636646869337032334081515876913474837515132875141378735252030816099356863994385466383140912111676291672377061133180047247105240520939507026895057504354748328869779866278368772190131618098424976272436647720097066908441365375214913787106288097520972305032175609927619929763401025171222655537532300098632996905017630334134855994123062201949205055658691662707999533068692687786047537655806095852033397675346255284218356428524507498313617706754829986205427477977896744103863243359520256872344361307474270815054004620319060588719218873979694167057253686146095382086590303425079418406288939778126642869987814033370771665556617828055575931744130703679618720265029248509777977657673393128577589542258995812676833157056072106339695789982165570569440763815731684641646372793618570642397487965496689144308201402894926000069053649265886974741316531212044675555185898115654579509572254605571150515036718871817701197050184853544107615322296772429122787564368788300929944985371028564465865208380130721537103454599879792132956811230254332410378800934796746243550227536940777672413036506466853959284629728632399325524903734880305461835524389437327150935483668040133318193449043693476751914864872740084943779657902081025771348625533465237660611014615233215922749368577581627540075286169326941208023892213182385850655570847002283505128681343074119455508112610340562801120971624337286988990205023435565251108242204428684808714756436026729574600597023721926143864244951665331788437283384936512329547164368229998015499816404458367376841707511520810843811787596439749337392568218019843135481411303926478483769685997055220655427370260826354242325002123047672459996314620134891175241148026138433156959451809741004148042675105436635509172521489258714216007745476048353687038784979706241291917488900509722420764923648677016094005057052075523400538557457097510066095073424376128743091350786208723165390551629417124050927486616329717009528996577503962040030054399379358531453487178136721692623961349877436868978942611434051369853362817785361245426713905979281685449266262513594036081390381163091503252603379415804251638215046735062242184712938622478233874150741839224523683976858219526496096833694989063973257661528218774199274527000378071356491139910649272360691454434783238418416751097549240892703501160895305367093078814963332811595409292400164410424727852767396451257281160395989567666507442909340942748832369957467698713162131898749846104420023073376918574031252682114701781340609462873825663119760807430290222623356103565928077859270515168568721983730980788539397654607413747179970116081254907310144158769564865816135595674040515228926268255577925780709592046055004997395222362862233306039580635268396272423361834703815099470495825008898835149911646130358404383822828534890810921517612042474182691737146863101682217645339607000017091896705419462956138129692431760306154550537783482043226995503491502343032715931866088344737283095247284711308190472849658796631846717446785685070986286626227474293957611611966090322132338847264966988697973731176221327260131778691336483721231479529952373642192629283959467425899902070432626980413568053372909234628226079028852063427847842903599112845410782131845953535764491822963089660391040528825415586187602229905380810414443945242905383545489155364298135202452903120688295594431217581476761088924168587709427319790202481163635757285750310955423290146175854673988143623545582942547941892175686741296209096780664089223568123528378883306028051834805518427966482933424229933803047672935156639808950157155328192335885629785386567475985010974257950054455011814163172952182398499419107152686689172104532682053534172470140599644085112021328929289063617634688662923971951090972977177751798142160410448153618234907912353581944920407819065778097421401559023217720720232219404338584095539023522840825656360209650585631576155141545845729352503147999423184185448337836171980110838572145953643724646273294915808225457355029061163693921405185183383154365287797451520777600912102875818443644251452411418250161619233754256504251906205325092951976458196986632770298303037361722872572759352260258456419829591224032766023853313053745367622088819768788366628033022905855857958695540548061014113092087418354589039607630250435405293878585446975801318863471451022084091587210383486818708256392012935403103280511523505216946402661815983912282672989016222890870954840100902317884983741706048554789443585263857782005052598853452892248186492858680813915662383151375518319344273437035694812439457398625591815645934597084990103173209398916211831746249079633945332765810053066826758956911609336317936492357434394784238509988902186345934205700630768908575382307487095540159800379724732521413602386327257502193842215684759840421313605772964475457963310308792588964425700206817534355773598623407434222727341059680472167650492318243047220423716240785389260771541641546426044421385377431523742289432379678868646644721276333668249838500325104752143849211415982394433526048465727560995687703049163543396826848155166762902685200282016301035649538211338849260748115167631682673964787144974968576495644178790482424786799266222299472334777973986018578411772715701949195696075257482292064102798894555737956079576342552293774157068764988085848588360482713135763668467106602254906980513401407993911161694586111154818944352560821447259568315796478410982626331797196430127377046516938097675991459617643170720824418207693743089981394028355885296611289095872442624443926594626290735803341956082253999357041204932034213732334027950713901769409501743953428925983719620820115402243917047829941975877750834887203327258875339358731731664701730028134071326077991441310197073131387871461192165824808402009591367680079138623457602350534960567653791272612398401769769666614008888487790952087032573150715854240913134674967885167566428979680562280149094362443146686917270273493324236167033602669821531522665559076499471684939463764251162790123513332949669287900866735951615462460449449633885798463768150830447639954835096302856444387055874057830716146767649929389638020989997876702998693715169894149031365530675134244379678990094742148831734665805167018235965563247293323564837650791815469732106194986680566710362122132473997304671937474613720387033805730460633602990367422392956833971659633091526343381989482891588103787939562462864920975611894897870081696457534292344992922873089947181904499152369076335188591201002948729619135337736591276667701809836068947707173316325956874714541367495911813872159591999326521470173491986149408415307770146277579220595350513178506342351130724765249116599149957273856975414546143567292537345346703654018484263685490691285532652681677563813763368749830705316247911559399100420289791855642984503174372928648050504793216364084650942695565479735010221065979486629559821081672731415300676407933013656559738950361405487209426293446387275761088017955043614245165899236837701685561007880476066364817023451212077048425768330255626047522021627647315170408569007892623455403979495302900288017768531429632132420087404502872151534164967379377081383296214571233000810682728532233571458585696973298303228134074183835773810883309133111998391826321974445925939638950845980407108631477948988931254750899208374815014944269441678916717796224198305470212581304484704779089329576920831304818562106089350627760205351128592164012320246425250537451123055893334327994980979975547350935043295076800688597626832001541695632107307898349848099394924581346253709071173136050665609108563033008360113644176079100115429619408644125125007890502938701208536568552928339277367152223205265454041164173072970682169458839345393186130029595983176959112048988345981835853887315559680633523310937172934532101410581968126292279867658031491716633695941477810506345932392411910934993292743734979756913970052867300135918289250791572525048241616486259475667897235025301249400891666327129297142724015747876716123650973956823196193328766771137375531032731323537389123241542207148058296138851814410522073043035584540489096613608116366730354229080735309573319932048004670720081351078996548348310572187973110254286582347236868826909781642849456695435036641343637877438213025649193680319930848013971648201291937601847897437132076934680861471574595671682268529932606898004501619444224890817308244495378894627027820819097294784471902977246131315267340213412827520218420584549330356265907871908475203325806480809146005106630905789043707275048936013640853942940961650036751472365659316803855608448738577226880834561253331947530801508660814210008496649565084368657562048430364284099424073529897870967516849382324330786571725148203986731336076158205383928961085954596853136926811901249553064964813697873275109702390819137086492684128515042850999951921377726677901105044340945079577356370011634131574931205173158403203679634727829132435016720692396160490153985303379620309441710017706800881125055119130214710626544733450548975549603343403524543982641708951838562257061565850165670934720550108357651189826265082128587363073622288637909713543919288372097594040197658718970649032995419395466065365439417351598415444685233925505923430615504193900763865978698481080834101484020519933998310759255622454203740830142658842062804594296008429741683201515912126611007526805942416537314719924830336104591466529372136361440544770487163742889837927814836430807631393685624071408305006872079215973702008413314770981750034189439077399583045733234467353314558945183387555640430188844047463633535650174037887091360541499839607173870173790590277492178737294063310822961125249792015912310868733076147169817877166043169785220649779604292758198545192459548700093892774580138316080234356739666217343505522004666564890800802031609077024703108840639208854081832812064912938519341342634551210841331006635725746198721485654629602425355099681925655599200591725504743947953619298902110565654880054558063502938694712295719425824448401202252657316067762426339685782306974866841779798134461219108205906946381557000628865211202218673987933723359176913025537009557424756516011680742339598713751773967520691050500760785946280080997343741516460411073421711563744836099196259711708887231076219631714792162132715630566040460147051945772697438495417411161555639210630490805823742804196174621943838412061739477979531740157424815948364687654842113703508244961875527176208155626628814111250912921729287161913571732339652818058053099661593446590314640213530558972289091917520265189392359755972098170357935321332616427185581606215530290391952802977435615835086326447280065972243163966774799821697868623808922728452947142116583442625055437314410493284697136872299274137263134879647967576036922902066476496295325858861311037388063441516332786096843942892305518754050405532392675813975495009135154131532896554037227684830398648740472682530819350544796018567276297641974141913500122457450303189663453798698852895767025921976475757551051487913047302950051389169195469460579882781607567754809945921620842959494896308685076288456579415313595226280010085255749689235364480266356954531770880479543132254311183228538804290989512404154793429462790967285509188715051024588240654259486826201533654379133689173763870043734082848440411196650653735689692542754449516650194997585373321033283883182011082326164311256093058127725898552151538451261091554140952774420638687999050647446691676013911722218138459911970256703792152686840972898310861123943532537579374020777854351761890424418711577851858632694797841569316046892470182878726396317598359359565168897093759243357423657433054658269462559078311403902853799029978377010203268436026429374651733560058659878623647917069818103116191278595776095725261832359879567933860295521058364641441628655960370271215031048757916315664798125969792419657778488556241569507533633587713477979710571556665237441068277484975407126986498318675381757373015100764612292367534065400952272539577848705699981938768393869539903171927735914006547237834473969312317050667729981031345206267473939779858300287424125064215342597194844292803730154617609986433117030581964792697496299604506677683015288279567616313211882301866380163259057548451813633615292082521535965773500340759351423784300979909613408197910290217549688158002426841020512850468546981541122185453119806862716688144502653434923668467935060111136138721586467062047691112028695729166785206881873886741781861034829319441792991826769315158584477016785391908267849113186273092705659264975450328920354265815843126023780999568558666987731387473066778807741659823743225505223516593595821442847184861888809088719391374270017428685051780875061116581921505626620708536586012699645613044223977405072467898040468264738780971119682057292146977262938754493888224903795150141250816635233432800622497567953399559656784876518099021897715645739895939292225905633838205880128927757793193808366223181171263701703364157494925676797456055246312617154160895599177550052771136952721356542391090119509492215714860281294654935246892731514722677208846403541529952749934252493360713205627759032378119277179043670687047800986508365315847350500864972476801716453892581656081521017881184459472443656549903862527177613124314680747208850681090041342269742128977539684209027235195551781276177064977565737838601589492547527330012159375654947690356461228904354224122279557323174539370589544177385719004779687874212839982981607284624987923427809036761698149126385973184209174969886349073019406063016713967638630714182163011347469450386165738184501451568651732042808624665944301122205611138429976499538901959038295367609694147969326863673399746043037425647344343440595735708064914885848383060457543483891173888559926461209040874583866929107890629517203022223482285387094083282047441763346607530447923033981611427405460948889272591280812969684873069838924138055212193234982802213557230467504689589463752709069016686565602910950381866028604524035910265391399306763599731167360774287972181954934312464076284430681791840650156837954522514787005943701263354590845522590753384199968476498390187910408385804732567619268661747496528634195722698343051029036522967502819911264631301602219980063997983839384241836278450237063202631150169916461613167143948319077606281748880768587911246630208078974967474118758903780032340706284406887718539271817961157065917361729554013973467913620010065208897456697513881807650468557764799160949627261992353188249052112187720208369198982398720375062754349859153465975049387048225044997439775471221792570153705141944428655942558186191082558680658024876963105013688122049088040037498295530972350857224965184256718856637411600403627407748658153759946965510803052854259756748633899735093104897932447336443973055113643349047899535874295103610785432228689875088632347648732309402222381458217222643255313091368181603852678764220638493668543406184302804254162843861548411248177055640185744305030466350561138638081851911021212980995736966913176623679039425854348809386119652896279041165575480703233374243073474731212114062160233285244459895162375110577482338560265995572017466944671392589428144588002002624757624178749052855603430316952083915038570800630190081598792151602964688012825916981286531218044204920844782352696829059439609602887590462458420052418177290555388585345731539601389831024946864813855706055506854796054653297642724941789018207024099222552714240448388027910526964345678621460220137955402600275505234587774449958472744335485690204646168697832271054708883973073572922828341359121451267520221714254461418293512002248934020928733554961975173838250567881871965368452724115136236501793931347294268920358943347895852120599083878782460724882325197098397025025624833392384309180018983808823985274130579734252692496522425832313564663996637671833773265324880419675934693302541176083511501928491947439972585758788693053983397105420778473280340247846964059949123446012204688620269253011201562709380707469247933346232871251192510475821651206355554971795816303996072720361959735580805254481314618631362974794973362651818590835298084468714284290573150329524253321984251124926926255092431962638083237635869866764639388360088911051880264308693490989443392479679790750577173357400577234288536171527788928843741876177325880203073606442048779571861599451929685068667136691159753987648786929527882656416040572275456490165793662343327192656162712187344521254590531501891972671906971900979641970218561817359682515277765297779986049513167792839495634216082178057639372123619631126584543916384768130922700811055116383206821022326440997242206131579337187384177335316750198762423521195316364267307136372087364044178058014671139134253373705954689698085467617621861683412328611368271490949655249422482918242579171743133644316850464872180171506377000026437744367386206327646903343258143935425908392941870039653926227731154699109487343765827044339623971500548028708342449342754006384866221136705958811603731321059582988694478277228400533211902361092208247011747659500857878467053131269985128317975989966054466562095991736364414224384034353214505281236182341509543126325320025833611772656556735071430116060490941485469579258807858974822935652619449779539796719689225147069546919525168560187589747316765240026962746844425180712668644141395022117991622119030487582801202203635447573045200074824456508108148548804744987900400952641649161052078079865461085713966256582940688037895682168270508774962330449239440652049205213177020373052447084851849700758420425517032916362130709422664156731011983300784933216000257059033404463319799540271876944588077627832273061543273193937527655758029647506704062465510226794966712470897172393860300449772222644301049198776786726915758045144163835915696018370396273158625730368302286596103579304705193036761741976249047626437608423889829103528709995965895405282434515011936210194593805803961072313622319070965559145506847008429326244214394710093762782358546234844798634666381534949694692841250373922149708723910612109839034354875260522955377573385124329067135413394308866139432933763079441375902660347572444174648924588378868370685806398491735700693556278525608210124212088630427570337583349334826989595929986138913883051970630879688511234991106841892420116864266107541303298669619640514040138869272998770219817837063726691837052484554756034782547291252044763689075953812520535548858696733333728514084260367262428736980255506636497211851282664343022703113012446148363180269754859872092488243755203595767982127178466006313966016430307419339980342295678219824772671814108254906268921866290691798707561508065181182074243258606367555388237877183955713101116920731103230947794917276276809462922860085679704786447473020999775882532451175921748436188356592123167439126548062840953413294943191175786675280690637984464933899373696679400376075084757475014801381832998026147875225940185933824390735983584513941692959465723747299437481321821998387052543312599897949156521221999810265455961298518040205574553010155110554473871028123485048893043347738351283483551036217880696257140424440474031017029065633340210197321312363103424710430039552565885715658677227165072817409649529470624711393517499007199565509684227159239384364296393402600329766228504210872900263292864331931230648422517180219809268205087045561578659276054310528852681622806980413409377439799067977846497624870319472105362420445005525494669765569208814958478440581880910835680424992389236320573660999312315009376340070736624110206856874045603019464284353167407363916938025250983287538262716762574711652856915986968109404093003813671932792895925391947916600125088426983229887771669413920982333344784664266075454414656452605770785721525396401653453305321183001343753139230494130618986534699832602863094581634899199040615747378264283943471795227351057552909818985960352925307136746476627677316793231462205720710741444428162108579864030057112632983201615825382882303036092479183894363666724032725056432057595438006353877244300801354978239658713102074823435997442978188963748386367160258276578614388959716793354764454911784363105842524373174865670306219111321705585781157564964379748057426951991955078510788686834072390932031449790067675513559013346002027779886651921938973758047580119324415883697571005627862857950483752556883096565782205459884200076536016605324673002948408608647406288736041511924290254994415047257155483486427362220797241189912530622374332847985286164154166226804927037611832867165436730488177918419435922613863733234539476052704160405459561041592145254168372886276823661323174562500949122407607905512215315949691095670080669769275619160100868869908717894932505150108223416575285739828194490816730117487217584942330089732640851147769118087788265784343740862492577481268311167022554505579553605320434853233900823486559358030769019620930749681835216314876051181120218915248549417348400905442163316546751213767896644357589018607052491603033129985663769076903202297017364552284717179997755789715440467713109590313035197028638263163087717985994630235316671393979220893516658529340253894492344021072656634322415136974453261595527485029220858414916715558065878451940771688511752503401612475247502939270030185211886300698569501006304690297199074897963290825951550078143757425787320691636978937072795333694936392784486041531391974987912549283823528237834860937382525920583271954827721220689312801369732427672839544071007669753284994128337095637254342824232095127816290483077059732157408335216762358807843778335787498919996378496511885176216112517644258204614500690647478201229221395235252845380639140923281976712746058529129362328597767709731583905338309891615967678222895411783591911587167990741717016930358507326973688183995336148979341749407304070308296218598574142848376296526983600696424577375429257036547500934012193077402903943340811647667874170052263334608614501464415614262595478603843048472565487574579699371773912974555490538580112185485422417660755631530919487558876895629741674198480268043138599037408541096163796252514214583794852951029309759228699485963073168021924784241817420799322993715284959462491907532090615361324880002092008714786120678512177574160300252861127366910182002973205085580125834266152772039619930055004450540595227889446263366920147912661948094365614231861083398029054166514890485537484272881360851894645332829498757118972092043249399996524894274452575626417047906196043873410894247576831635553462130272881692481241811043339223274749914048684482009480984796125415301455251469374183433780284240050525384629408330961872733367037264133803276703344330596891769064525458453384025393580673008202062062220263627192557921804085867785337450254701971100206982493247047977191413723302974552538175155332931442313071436232878116720864769879719714698115849352849842409241284708200315840578728069669958073385350293611673915685192225546744531680374850260874964036365125711052861360390861002290381449653651522536201703713261046150685580946667730619154292354544663219334844191286067089344256742515594646523670864009343714727645334703427308345025286975103373824566253714202560109424315295095506803450921324421994688501948481057547129781250690818572212708234121488460488194140072976592773018423152792935338733976906647319102243705458763634532638308047153653302764713404830024149102822962260107504729060164576538708413379637936379726317103171979668543817760318667388636711434168784447931243172593958655991730369047467861699495124377447849275669019482804995372178662044452848560147193307136643673953153313767818586213683966987086514533137550044177219281385734999710919243637487967136642226458662401056545131821171311808196196200235474599222732857795018996891189509436175648091203169733838757316799655926526373660925067276579680511658858004976084919349768951715597253950565130930674853881663465005578267613349498649528710729123448139870402799875492643378383115127604350309208659212731454278131165229211240882790348839112797786303594941263311535971498258588187877619548915889374703244687163368057527230103944440736633790645925555971928240665632257669119648351296117801534304569104887683227446028123718388767432455182857748645158820052329175802584956850291801747859259973256915766299035091948697271510962762854977077888210920894896445619923212604235408323553308972677104338636273508645424477665081912285141603340442083556666839947127906813043385265283098848486198376591396763620099801522197762093389329459211838507079057289810080752085184251409517246661085951096998441132467241366000008857068837852081154050991260182225330342122465735080295179978399011623290174686551169749185197180402263559625458490967007438148327204444834196189854383464459853324576191101141827436880674775382052831048469582834893567315841969767266072722021558388266759861748118897245149713670547000323388650297160338006867770238853469038013214702351467930264257007289448752045712887332479736688530310715283136778769004736960604555144902213148691201461474442009876310558566134322168491438043241824670317391172804598581978898712635330665730929402022747837654097737868440296891309817005358596693553250293556584450216521567781328635954418647396230362362256160020593736558270891916353984830281708485782470392246838580623138840429586238507478518282379793450582482939977535320833399838446151907709722070368800154700999118237439095329155417004384388481827185916431758172463011553549833352709669006527671373107457744888728111555932423397240797467183171359286158072971829623825589440572336556989750324253209867250308014363153458832301560001199376719857499716328244593666329717143711315106350521260086920434765151671635667250916702358512165516544357767880276600064662532636537742189529418166153806771049973391279549514087820043738319593286313571602367376788603315162247966069682621619707832240386483874668630728744397579339390869172075468059220460746572962034823504506328347363001364871563715615737778497483468260419375741147981902734851106930281275058620838891260624533977480945825282794952797577874009010821473762599380957643240302627682152086920483317603156595794269493827136431503393686795432895917493216464990123149279658014202259345710484134388221373323542097322502221871420921793153392547183895615632824668888455353155629570957053273049674729349980086289543748619355901335869032372733187469444724476002500760322237160565352745946180564178707046916094849850683458769819276638008813516290787732889629947200064641551048844341220457324216941239201218913994846609994012916846744369246456595632861652894070968972170155915882281475372911047281596575247132260590310383764607432964269402477363350832228859716277018143067911080966612051584447510549528702326842172217144347724451994026738728934891813984842903404867255990586363745951276114530337268188026921533288167739838167136630958188995487838544839761377202804463032544263734488309683539374629394999748165431896364211346046806337876078586251620991487711115299899592488702326595381989362901271639174773485254441622977907421327431395533567727070559319789326485197338360206383198960708934109198471869448004578546089113719174937193999264103304116477985906436638187762369486270708665340265039951677644494943225031303339540518932112503459498864974135319034248795729443593235419198989777421938354417468419465220316338972527732499771848069266608590275659790935923886454660144852267899549392400027603009388762978572620723001431393437568834298981604250908054669920202282354692043185672608337635073540023914291643150242369779847899998729512589688735532554146325313899034296545603852667504944941488173395877648345821491478889854579853241751347129496886369843663344099762236004457201825942682333543876718799041638619847346295589765201754211663188837483963436271781072690319949992209303610961445956993314921815503314540784918224356770378308589546770778461048941177948075705142680304838466268453562410870745270824776827580752491122599172662592076961730082438169783801036101601092926451787713671003262639691777400288132659962181360826316248203748260119568795911063692391617440939255134703274924847987945161450968712198695436289715784271619520131685920636894637003367870530645929837132755117785541107794142897173067120806346037042468060942289698114030493162354321524963498403060194955894414391059896226172975525033517467978280384132909739063025890365754929476206787519091141268792707584346586814137694661136900715346611991970695517911457162281478632771764041150987685191978613717101661513308415293460200951234424251790775661435290654473961383212225456322276200921659666054455268676269425292668001042595326017679840750336227217921602834563294795096594462461121451543717645503853106142707167733833882735909914176231767783826037645062231073926817453241149408142481659569767197515616001410180104830404643402998866709687178707795817773670313428712819274074660250395182509006715966681343552364536848648645904013077129007381178616081917886908420991715778153607669101033138288463248201620049095853288195840499347858997480382338798761531884287132712899343138273394265246245257901833772241784641965859801537672744307895275896544525190977852500802287126819462663742617846146803864855249765874202891786559524467975955432728882222349119721316948786231455155262064769466952333676678225543532590844701470172725085127273704041014393112278492086260712624627090702744019161977050787572396947605325638882036759135910340788767108523010774339615177884025464220485338643047582205144077788618610912269765987493404069425475456884949203558285281516155763580470525743685966016733761395574787462085555673070665011231512264572202413241424239262472926443375155628201867726942853109977355462235303942744105502347633635111542817582973717031749559237575199006237077459366774180344469537132127142658020515442081737982994282109329632183167493869801203437907168098190271968210452003715328214504514536637043369315231200680032493708235209718272779647693903070210865013921606721786689581437427684670405546477583120714853059858013973333183754059345893955847155404132533540030737981774182448080691231505605183229640254246869422371439245775891470513855432107905831496478633707847686613042399994523678378678644023806154027844683985380306572105230127113792874505905038441651471214931947502086812556193824809458306317396305527879666530455799644892753332671243297535242091739977687743103371451662833385378153016179063344190571109466711399313490251747661337680985402435918931771481810361791511674737655274522617045040730706582568822708269385833592011089987860354383329203619530725743349728728072573917649303176782547357284021018602221294034281574229444260619996314280646096754639095870480163962048251834725811767954139520389283694739816079239930476084786851987071143330294917656328624095404705342575975674939026466757517548887453141680591474691001703164240344090829647144452009001827763048959582260991704487157022083445115839509208654272242730504936502746431348063552241821917898691460264202914720048222211558057170552839316474319879953209620749174932199233810655644300258627508928966053701959730924204362159920537095415612252962501703391192207825825687131147985442392796018967897672222852684912018720014981768710011870653767433418498389335321647403883839717073654397961128395757057546929446584696928486854520702168540307231511915290684281877736216303233544316430886228388231726849016161216577979270502634231116273012570011662422327697765332010514381586024956383524798972355113977403550308043822408551055881898897003184327095076746543902317034061079873777542760892387631819087870144685031532893961232687059065775996962218370718593537050415403050363752755072897671270510683313320156266615680723664786224635687010746038766943217677107551941902155589627060043838096762229478559043880261017686963790053674588929202369923637731575412726169274642397697083665797123839827883527780332298141345778182292546680324620923573340861937071089841497194779782021356626495798895431620307441524342573326863738411136625885268880021660426390364013514625017176346202846790167955834377682292657268934626445352523035390476887635727681252081071303330843988959502618632400694498338342380929510053335315579412783762238055970471555444955913918304703543577425343395908670290951616589542010509114734480226563619660008669191937037123801947178297778716313407462141468248126537802584382434946751626633237745934101633746631926987792709737828714535177890599078461107558078747371412977158930019630533770698237041467733979358581508952981834971274014634724009316160950351753554478422841497570126404272656403913129701125748419081223813924297597148433075562956811205901595678013032973625491595456199431655769712245041802388389363565747438576317026545660809891501712765247614491179034632577704588690335306310391852077163549894409984278354023892546531412458288936003235111026540099664171918631294776075963105283227794930973625657514891769146516500958743218055015577005689810940149009694126143887055051118214556796558224373490105354636097158036505909068235857840627941078504667448542325484997947865698301396795219740098144989005711050376206603921753012008189404997529818308497368504295355361704367394028931785486764173297788041077349993989134043533595214323415337145710436756299670172559107674573948144323495994039315751366974996424471447866584962186290067352226285632345096383901225127826493276374066202619797211010530853135513943277088693226504280175870867628765974084891501972026033596051511493329251813075289206821769704569551310497765840533971847439811737346967970777633482226803225510872154728513899424926392163829940190001495541861887405341258922013589172493513070858877844889470885124349864848704306703142558369249357965475166730314553300012989502010813315053702078310085521127872963878185152611879905984249158156560186101945475041787398018276429524715989999999145988408266668031004955287551031284143381648222149920374220589080500502053861810522768885034492304056224826492582684467743473777587439114637285308275805307769435628433155216233655912838664044986573909112104861493766434129773924654225698471929337981043363606408624541880707636930459747191015506038267316957302983767094428187058448943526267935127840682031507846916341622539776747079429632622952319988892149700512391251348638703395013649733483712265239412308376028892306937037982192359403741610146805854089534885215694642874131028301214845582610797997264341150274912339573432163837110600502327170765846135056971601642190340750933298807056609218102476771308941354256614255765230453605736447202157393623338036308873138411445396860432118737656629112492119472573919431871862036616397887042742811869734222164270015691902478065184528098557137496113877840499793635384805722767523668281396610894664321306236794577163487474373359873897672166134285567815447291064406389306986039692459215000736001053588264283365606246946365484910676532889010808252199768176790221036210428288391653873307913558397962089477266788236004195715598968630228741026556230411946681565029021029896108554355955400668639359622269523049088713701456742431961264317936423402899492050265267673445301369087417873208190764634735676560335132039639721966438182727549260854415493154410252488347832985226152948390218758543301804647708994239026606044046244007955964602447416176211992466091262139541401057252128426024354202897909221776805747107431506736071646243774687995712358850307725544819784175004278990348589875058156296810686388088559583876642590251481743752682767255257412596137512578899937801146352912251440388150797728830028650848691425130608391670150694760172340975917728356746491967556376189897282724354562336083307171048868023521290529038017143060322228099173270098805679213960581865574962236476201295219870384009512643541981201506472410984452929781485036070895105319817949220525852381399124208069949915764959323029845601305360003414329026350410315563116085528038274499713047992302013382843108379202723050390952262152352506049904741495814790241130174066169876388686924161891183544422365336579413628270065685507784710609190138227995075524928539245642540798934959705537441402428540295831720529898786629333246636420803783137630912543550927180963175287103405080499404273703719188155913820144275092976682658438564342230561463982814387406250468169096485004996448981926955443766398906469694382369673299758671186759281997125261255588389207862349908832836067278327414359139368543479245042789630899167603534314474485975472389082127764908713448596698939831500702097693253617655416875775369433604630544158254890486593333097690643518198411209559867702846733919161613532167171131945023309719901240380496736542207376018441564887543410095980554850654552609950640603267317578669361584084924364668757723576618582788490448926190178291971079422853039694538851918622239188372568157515431950950478802360293368812489617162441298440595317970072207285564972300974136602977012641671446745799306758988974270680927885312328435295912739461834898937957952493851432188127145103091813282943983685145874498906064460975778472814544652482606393210313369922647489072422719643469223177791699322278030344485927406230284674891245723013949763232799419298026584398428029934244728079113362248060833224607690508935946998672253844688986226648272855095268620168051562099418692773995180608849923027327725565833421217453474049585294045470599188832400458530934971790013751613489993093775245795638794019466377676200198831248485827648304285708268010443242455044915438640395446852417379294108086334506354332950275999892120613375445021796213399058295909477905271199307548848622040889358871965535370446218147950333875729040086095612438858904133514648397218211937074057138267941263195524758666122927934692872070753843419920227600409341572967824335813555234682025809782784799104468977825934274423411507114098027216378630452358466451256035675783190589854488489719452994688252464605879186569182207618419811554951665381372265227592023078749168999954734813756069333880258566985577635011949349617544440331852080037342268398668227600887987710514861629401761425740246987109370491279743465643260986394108606209522875420517341481724265016034904264834306968532781034371156477314397723282488942000815269218084074143289106589808367371666929485662077203498902229551954397714047838961468385246312276802510583027080617875033389847525451778048884456889723822489104148405215582488286074551873229038627861653424571696080105135760289893779717037642092193802966216544704130015753152967152641533043731159715742301099080403212557893235370659865000874572343001347876028170193398845014191983841930942956374012954080719659665529715681153972053111220639048937667492317109947925096440490951078809141680668162501409724952941040726853308804977734263512672101051547532504062242264035541883579867756000584066511948890555049849408616480991516875352423285774886478455552574305795668397239559765860615113350493416449570209034191798885802067785496903989173569867580994237542042728085922764625136189055061822396510659624446525493582437282081025856994940741948631431210071603116323511267701882766978553543370983476598343704037539522783394840307857459355617656086108172533681215759610988222624430606893373846824039821821387890875908323700878981642387241571826721584220884902763146592081674230189847580738619670426751060994583601750188103389907908596923541564155112155510702643770000132641483051351153146705446826865285702015770533349716125605613712155328664393866067794168125188714582149668784319856832647898411663981032990527154382034599079867656263078382365608109187946544231359631464033469115788933589075627539419244469221056385773975330623683969086030153959411452969035959313389837194451671974107882234702162062820657320134131421917782066182344026901814560963835595238101642044511472458715347152642752767944787262464481743136583147162193110340514018865585358602211603846026189521733219963332519026290456353165412567796392512715762270505971215382686817152868378444907559436937605625742208505500293987934736194376040860861629018226185472459803158596019763507863713064358433581648594845894887865671713537925524828600934827471612075840204341602791777077405014985711241906652678079186201701132294812698768620865340100217898101473207274169479071501490707350223829283210519829622129027983425635080798560725056016797513068483865414577283918661936091767412024197075902509928258855865275627029762556238990633629251468651602877375970109816858042363732119890027565915132340728983057229257648707956082808336573078243098485418928634541992661395013028794152826793513806778249780488370248903941729339515021112194646064281071795225708985563321175669584145673992764280535958807730972186487096600738342312043124880939086972102288988846693974085990720980439781431396224448126307428455421822724682925127226902451281031479989700000670831103585102260658537862304695130866719818124767239809561955191630301290507637915595262121041737073711189721634323897718661667490536750408984805922442030719440593235533431210198675454110371342904358358011688366300899702242779540471713341576760652482563929346607895084137826532109338943855241749661795300064481153414266275136114764444436615420268749430595933408456284765795316600345777740156802540714756797440049842017001318206907362594796825208244709496733925222802287265311161975963961874115343856447277506466553890758657489300492516201647803356827785387737313783869120683128951944893037199432958148215835659149474102409655910263812091220276716678517523883223199291314062906400212201481335176876732118963713695385618736657565531623103489155485770650428231175335230990240360038360590653138763287653160064871858618677337412361871935881959454161494229269002288504519166140009010232799573379765348515880108780238170191198752866670805700337329182375561272458060674778261685787495829579770047357383686645997707910689700854911395281882371369992997686228091030556121263542660695740543565782963953436183538350710999205500066370506662901200060132786801666364848771001426363934175509676385090702115841114439828265151548167922631799647052230795961485678362699280532238952571119952980435543675786362317390995419003918108696885640259508826898907292106289970301104765547467137377389958566062918624491335341473873802965139670125706051925836410929773962494009711791071964956946972587688088698783181412867987611434886624307384278701559944057208976932052274733752248688323202833655475501869975551717472854412049015520702903171099715167997309487082984612917356432949955184565067831099445178776369093525441022384946108900041125965416797825893546958200427788953322036963890808779854468479108584225299777468990576966824698998051299514637543706109911328723442167644327763942966292763975562006520720306460488667073878941735834646050580014831065811919973660690995052611275496300118008884780767436706162155898724118720513998489005309936519804680326125284880579351801264186410127298530095127420999673998600137739575745416153218232483252316454248951063970784444697311671399795994422477918783551237660649390120661205796161693624366076391600834120948935660669913643507969318865830682424959640041870128523337923079140308930558814961564196785985451036072827948341804108084179516312397954905262520092135198734380863289910998585768142647808907150085442074384684172007611880454085756570421742557001989221166654369357092970670388470799684332058658310998727180118319273815118684793548509566038604958069424354775200494297661175526589616370670218043750142723169530115069009400905215766581835858667871680186415979287061979681442647222855220606800382606216609901053499036938680834338071547982399788190521319205739181637433957835923435492180232673088997933137421571525191453366006697107552124332331211591015755419775995523466813072656712185113977360784960219907399002002193150186082665947344225341041482925813640255877397429291999729378101165007693740287058735991146387223551705102378621564117476728878602562715185259081039365189502271948099704575490509636946724029038628779100033299690431947812057313403242454272808467249557862456274502753647853351824950128444157445921687237645480062985551679398761322690384044694592092744396440454395150984750151488012552817587626443018548445088773605291267404924256019119046552149433760968567277435481191938429491745556785729744596088511851302177958505406479341805194603638681566212359637207055917337609388593338604963264682033059599893569338661023031411427377689795484801137934081775666443348997959306294623799147366656636966639906894550606500187106847051016898206528374725418632024344843735702745182037585199952564659344179907281170734042493608545879978808052538331963791337880107191747044112037613477452698579884928300606982994168600243323742428577341950102304927749316814177342918585600438727324511079580703964791364079889994394578528838373410913804772489427485110403234473220602763374746945093319857614998539397458396643431624778802272774773554188772545015819691474358987219352384971346053604877287612148549688562823457941941015548046082634428103948221022715304286694300920804452266007728739742664891119169542599058391410081636380968754174476262049238695519473165824896437263523077568340525917810076220599321665966268960293755973220922821916970434800522123731150801950485947937571207866763779833831829957765601601721501747578383684895132679603853693962049604807486581069698640045111950874283376069161979354540551597123992138324216444814080110253829533449919781585968214384292993106030191747722538379720668487277270491710339945450356044008949862773117779381431477840838524700552793990113565854294302875037751418179173888687019764005833795112925454311181671865963585363851131939980728860900332020668263656337228392935443398911301365308063642594495962010462395864544331186447004318025293594018963806066872054194578926383942266889799568266312764382900221041933209379154559398266171527117699992633728581960465464886990658887056223482086031559979187548646728773857546689130076248040048667736195858948770611041075024781371353580722825100644056946719794421413998072576869669777676828924381134104219127677086912256354953963928692678584588663642812905724911409871655569105742153652884469511906838147615465446692969633072310055912387295617473668835659279169143723434476100260731768660666978187167634916281181794246045321160599634790532083123727270992516523767126372272378347128004764400546476051382132926674067412656562057660089853246280738071266234557438006658625510616497583846374590943970939606830069737709377196320062910605327877804486473525003258767491623085724883581379608858937474122482885392559230289001599402057102555890524795217228912657786441658237444588723056115155473333664825150377622076436605509979976255686865943473556668899770771791702778532361443033751152049338274491323687497923430521237206259539355395973578536310978823508255347994470273542837314176609721903212898805425268113325260661391104660665513654916765907535853804274247785439786015325575884657172013990805593500794152326554491870324506681566922082876979738371958636030148975951792183711284654349609405213068479668581715294501484711505464872693783125389647111308557607434710070134015622909978980523913326792509852926698827345574789011260195266130273046451620755795607506811741301133012967458495391514335281400913907200950901789449665669532975557965058524886593498593370035921308875631025272641894294955081519943556979444962726700521310494006749446857711678445166540320554697265710548074399340438656120228445463133669491159229170903885146196338898238859547004577347882201587706641156437944678198468573154059906603407972386933697720849083382072565538873158670883722850108528022383784247922948751144011190493246446055908867626489647106683812377724036600011926106245617725035043684574627655517880041643727359272004657964895530839818097570744469790320726630972798723463589804664473291803993652868894171958056993486647765798454367953742264107480485435139036042830049653887650753466903372126541166955983772603898695714384140506122301271608491816122226072908819427807280919094204129409038678341149217151536979446034610656814530855303445781451424280831603941546152701028329145099233403027592386500790032008876774871275351575838670118982246449122844481047582325976314961113063859128016217322834793059082447593303710934146234161529578599519691396028891516941343360011249959549709370050386743529813234642402914164379804781278679702684434107705415873684755841268012545677671382861647155577695506602603765860934122145857048466378704822135413763612600864053606685607421598136665611472719883374472717948101735074187915878449529129098090196862185493652013441338862506231798356739073846866157365169732717566291243948071184903943724666952465441181435604989494165624862666556151933678255546594846241979247841400910889583774368725117800318065434975223788985466367833215393464244520540258775838953643811748886301883904627681193447752566551517061565415264641210242792435526598265642572004975378846587921639420764807856748098052652759237354949381298265404523372945780846534607102345518601343048854072746811516453786303097737845169380908506934801233809859938480686325307858368040053637193863447394942705776392073862682898986610236879200769366891309306135621746216886371075111283535249042095609325487839239956168777012034881145458559153290821796871091626425587388283098966043492659020009072308537500814631524240355154659716659405591955630008307242043509635823297708103706413529366343731151308039597019159848156402078634362245335766966032279797520394972790177808664537360699195853937336298200464112772825466368780452816028625896879808721786859806263443804094266398006203543659506365272752541489904317027617321341428803829201541994560063426355761474838264109082269913573764870600531768469296791825463726874641293088428343591453842989164795708872683170030697599895999611624204712890153352449571118539481120331435831720079012738624618726522822277119763334275686400389664283240687064387697327477855553695968988971328353841410379725328924226590141621528402205494732959336377824267162677448278873535661866482028070407070222014513418770465951142761857533609498083092225571798332373405054011613356956839782060730582827294468005160403614751678546788013596695086019321736449086911370970202033888194266624678886023576300565182029042700044035235924797332029346629940282138596867298649790911358111631046307845065906274739884149109982561195900257122815364699326856466284356556375990623452547487050466572233690224290808227441375999111717009636569371658289088573687129204439315969360902595587893627325678263096912837464860078267721128391325155595702956386152185900075875669112433889230670028547692268683439996956752325246854044697258858465031729300328178529482544039523840138867500036179595820561616732386757866051844392229042415930539447690824885499643575497780853243993618927345782283275002672146902730312379325587036958430690806809598150351200405209677844630610458946535812804425670960447667256651755646814814915488616605629006243881966648918183749421374321819616965893909782479967079146534343418613106530634582930914677735687446898438116259763377605592292151028192059855251273094366644307154552579993783795201700870134265377287159471582432230876349030373516909115012343586183402949064376858591267298675410288261552108715212340053053824050160104113179737888844060806632656939949038160606501154221209064627717882921695294840813096298212780062950493188907858220716605238774242024113938743164061080922571714260947847047543654008350069959479379128989264855444561512814321727680941421338464894411340613096479652864729729384951093967655997503113280982606134529193404215743881096846873154512077087320345102986726765706265417008773420130468295208841022570020863761118691530571394185583225107660103161427487895156128583749528891502276121379331777061274327255284889977550278126057229988784190712341031318160082945452409040155061306155203508883455513051275559927208898871055777863268322465550409718493536083173295429612348032920353128239881645539332229235323089788431526603216753478159671369477193426676577214100717894943354305677400761399206145341420978493520690214811871817392610529346637788322957481252593082637688842406732118506214664439827994177023720766341432604543858988493589265300439390891205179925854851505331943128327148744241976661725388227683580197782315020616023958961641197500376967853600699629730220530175125559573960743821526397008605950005911183087290326896792732969395513324445413047488394857217576835324979272510156764743795620246933180720912595949567028465111718307060969062909975477078584343380902773876209477534927758083339825855487589804135658206426159042091367689520220407545327375890837750611442298711385623569292029824466786556556842530567916474939296297117127310328771566454728518437648860231003695229284112720848499778225986321499237889322464842672997386002556423071800185603907664937938397324836062970358924665297411846894633419831826121637699817083470808220050818058411455973828065480027434133532090076657990978343577222190590134323030135361176668217369199590435828831728464785758230839788487629402928209755567585660095980946405229923214111010900179315424541370168255433460276223119422110245379726761484847340610280648599191968464375913888597959634916456727613862094072790003708338993943240335129117482829620279225309140225842664450453859836077320288903623909189143671498917808933285720065723273343912180734904810077170198975459397693582568834172939228748699642088246543391441022637634263505563328161776438261117855422879702827595388062551700219829565160374452539937895341405907411458088413599340453335016444526732058085292582958929381622103197850599280582599462269307080166910529947730562364623667834608551561679664286337973945878674899609556664429338635025620860801658243119045473260109234213159864133685505126303431913418537728321642528373392355760489429276842528386271407095159283248091646678795535484400945225971094153546883108293813780477558743100320052798728658804797631537767067080032451627522661157043424849802324512893506546181620100649873685284100526832674771084715905441522252885604338942354542677058040119116096046051714177459655685848152281697916279569005001279418952762422175154503200400786182688809883491143305520018024686892291329634407742818486544228725314522017061268523357806373352503403452197081811535558823426835109822431689132399840689303883731302563831829146845270599050408624534128700777691520796897834864720751525739958682504800419404951560628092363294446250652943625993854305442721363171477228637909593220061012506073934007782900988108424852430627154944869011136002043218439387893249361372258805476456642738872132561291033048847576268137161725477084247878539387067062186497760878666899678900726337145912606784474135314444661558039257855018671169889322383233649491518836162788121037920667387289919952814248294016469541557924701828050711908549691536848333714761728749102136863012297060570049555310530335089538030233228895523504760300783648733525182438872005291678174907905226612127402402581506278179349702488028777374370726816065982791203671291767635781330508557258676211517399322689479744184664427779773523925438781303501097871385851969943028407467935047047832087932267939568165273222373902686228126727916427539976864495061060391641643688136296375775168879513733995069411209467402763539324152978167321121382883983983635174831851048958960525669333948571759034746048533828766101560835387420361591584648399987027540013992630013109916401770248028363934665070445973615589744010262310338979988741347941310122870879410397731515087554005328551382483996780231665677248533915658905741637245461676604039403392237183411259210828223522925981355695706929065260857356061359116775928469026607933647697970162725076031361782700661376074711083853927834149043958914823116362138983251989212958062653547085232159598382181971661196274258053932747294393910191514531162388085973232698268268933784202080910369415137675412703878460800307270561432260482418051265128398816718910122255655564381766950983335436404622215494641061022087422188675968976773879283742029366234989903679198053177393537348442466962248595996263739410744356297317376399237816313007052733576479484935203955184685847903659378127854774101040384966588547866489890760916956253679258061446497610182631763377210948601754328819064535061904562206651152082159220647168691565190509930792081251413251572397142841184362530477522590917342980466674933484595499912661945448935899674464983061793046283404167452019980303224360657240850929975935159742711310826041965845505624369808374188893188998871484026952387541677604414649032224189851073287503436865231307937001828748117051874230393949895605745641787046068132886479526834679897935098207790029592073543931460186535781694319616903098800678464449758324984699769085386676103719159883604148543226968180431688462155109354750268228174380829616244575955841928250039187152576995683303749416840009803516435564888021913779877100177160692523676390090700709502166844829214429394159180528587286156602185426497112467535079876559638982011347956770094676347869626354009131368455356479926969972894711096565472357232474391236351070526076840925480000662119431376100802564497611838329310422947271778259874219265646110724884155938266295211390009335469970043277062417622933686230987480561813048183676192476217859743554451630180259853537032837981799648711160477805855027621928442525845995850587346802692841188920709223209002805019973845561817056350395247855591274211428816039499354602103688543394362531477322009749076810542384070203651107780620262393478678898112649948875178289473626891536116776775212728500939611914512203668078149995678866469371038892153898354780909826962751172373763386252152962446420200430252099074624078496376788086034268146245109750142516523428654438187803145356872393152788934269866830314387875590589233189835659259367791369633321325655546687146589490491525148868957386358997104952818574700555913799817072002947917914529148073418060903153523291861345879469056335434501640532807000693540878386914128125482328158980132320754518294955210183337288776322107184498285034445304097917330713737141555446735060838228619181062449641066328863117678522392412487247464330062270559007747390806455349579449068560446533001758768242410767263550697581237983233931072991052609082985251959362713486742715296232964676825971726989861764716220270381830131250337215970252281547592072798729993666053617046152128882753856608964928678252869570621691296936027661509387844039106358230693253625409436170621059862592272141985734997703718435584935966719908201674261326200379898493940672486452668290664665432999306877603075446416806165765101195867081695302966578905922477974605341544110328335667257990026389749515855952435385316407315979721177782198552239018428902866568583409146292701550221205242401103298196319979233079923029464630008973471328453783159304220600316422474916496302931774853217548767859109438558795373350763574419277497725637534607521486572982198325875139610248102651418882189576269927257830146112578306119185564405541533994603282857250916259073804890193354966847799771820206202161870363369319929892941701059319373649474637553055099341831498886691359712940023583754161855282095483701161830467649041224507463684729924897115419643917697898188136615114702334024053852489000541029733778945631376751201249425175751638600166517379657268923965120755458844135058648795397506036078217641692508887593676831730437896700654206143304596991230266607246899495736861919891671751613674357855756652191507316842362512141380559765126718157480500426464079689367472343809814161336508335548685135654036463165597410964429905975465043459335778702583058012138780312518751111393326020068653297757539213493338502488366920824152870264598039163226627453807455753648410402466924510342852205017652754649859579191585967753512493034714251287452995774420042841649030034697883037148255236314698632453287948164917366121188121552147909821612961660021028953638952500617542034356490708277517260199757719934569067190963462898995547203103335697423976410591332471446453068811193194269669931122380881245366007343877234192090880555738010966190575743035600930760246365258235443894503422782492211489573666059996506704618075067843448991649630614301197955009470141729695851362896763635441253516597756282388393528063823028648311938365905486687221143375908426233614178330442374669080490704684207005902577137814858778399767189752575833483342909702172373279378505325089132612875370489743775406633203638404245120058485794364508132772172981404943485172625995987468377820766289690330979956125573753298007054300202010250280722167564484242781269911359441406737182424078290469603317209978921741845553267810373499165849381654987236894692450009106375575434661394071908553761728989089886643464580166338604360190743259783117983314796470819793698578687239141736266394271125934199506990817765397663191336378804096924121814805492131962468384167078044117481896779838201780836376591578461295585406813476359656122218660678304393004707465742632044334703911987566912213102913302175195393879408528320545849133386723376588965939640957025716600421300375279372448926941206352022354541204871068817402302277599334911697675057715032444976674009916410282336200045061080451424262810457313166046047330168529036166842994513064069955448772359313735381178910355526580139089656540122678024717161545873982260744581954415583717038849146843803000694308088402375951636889669938388782332521238422625872287930766630296058769652853254595517288191517525558449974573958751866663010234045581303720297140695978295137916137733633635346111198509309789574022660257772645740354751384484469324369846684132986398028254313519842744448650925243974041239099272898146463814535919311515845605359648454680225152564862203748927406861199125770163445737307438215951563478107657883396058717652628716198314811870188098878577821528714903303941255896324019450049978006587118329467809191739114701430907160949101642193725451668043370375967409214571855381223301968912619695315500005367658121671384859238463931653749913044416536399664236849146351138906341358785804671643213627807115086409344728949085622070242027386316696883677920773450096584298717296808574066032623146227809624754766912601318743521421636849869840604008417131866666386837872600853553542846317778927820129616088013274839966995938790200432294194820775160633474602039970834481682899880372747888944811383727530112720400397694376663236576312492316431910024871462740344662415491948590162636655466874202719873100999814598069241744094191480006470661616181123804585836067918544850630585005959480798571846727187028684783060209200566684807834470578574347513330161814297645234864455279642312234894400739690022879389566488789207588036856647142240335308226864714181879429565576511352354366000277470346248870988898235873167894916312099813516227063447325731438619279667995703862741431018179185140184944183130308808838448982969575035853281485594325800366442494462527459649547712152623222388531002308046594272586101129832939736912205532684105027016799386324467688388771866651673417626479232066547606157516141602233911788995395927337286306368018028948324254367758035339962711118048259479915377294476237735203158586381179262009979553957886590496272858670356101500287931201980191397400417596812611639237958349800788026817342212632088606742383924173140519115915233396869529489245144375832123229417655289879125855933907760182058864426168006131618793934529813854880807815762961138624924938872721461851098531259922702079544274112059427911983033617192852410380195662092340990085884417175336843656618078964195909157491495212197991568434304653526948944629081493069407142527014839035981195093197963576808788282384279162786555641227394660182423846145069997713366968237447236618987212193763093162462448110154849841183464339240522093027579995837795152490367783648740189250978469170181040503660716820036075661152583482591568289693141650761426702254243836910013148953217415194905275993868244932709925869408932292398854611386428182016367223141996461000392994681301654680488998579138253488165275202132022771910136305948925277053581810812311411761502550158724304353210921931766801750903795373694275173537275904350178324124752985150203944977598687368677592621115413012553825383925741325694824003071097937209817394021940137462840528603735075914349677460330378821903709755597386959976299372510243585945093798846335105394180100885722867311741103556764216860107589058041037397768788641006299751189027044125772325065982115886927114179541942235286528659014387358909027620159320523319119593111040912436288389852129229745662154807755511691473796883734134825745253788969766409399052352238016101005867979308178088157351215975835766935137790522316123716936155372586386610754552542211952146546486858858168737023340702936549272733905045034083970865936777591181742342690472183273387847278990432926891235548570928638566532465650771977739234682781696410477592757192098171418038032728310119781096259526164367577165517888197420501691136416831262970884401847521705579070265350483926416909311553033892347801946258302778619534950864543350925258210926515490333319896018876642954003321575787426546193293596993708999844868019185975690252185722151699734470230009160912268803569889141885412858313281441041029354115289940934460037515623106279057397346587872037970894054500104055458316276552276228565688409512558920439507252696460805404239083892975135184045615771515754278523334666547645790766697020327898089316099068119360728805144379319352669762218208073426165379097089826607088545600723351403881851154264756121781563630112739874304921575914308794838122808873120421201193584321475887642381002761970675464382955552115001955859652708865837181711044845320466335578632374839620632948440108708255303603120614852754602401045229614751797404897492340549866809840778729626693163526225429544264847805308299346333093106645501672034965852132513541120106397277137497789434888339286940553424388082350415411416380565138387570293355408979175562773711131189538466830817805218647626810718729847326229771004853217706701687389267532276389372046153072121222373381437106464119496136226187573684414540628965304448451060541282002538546133952867046038722084136053879058662111898258539531683865449144572123574335935147940894904780190202091743388284906452097064091749074007817806740538423944683275075037462942918975559453846546817574992126283851970679244199585981264293656635101326861712422968486918894555497663910994318152790724920887362762284160580921841377581344080298717808609870596428989756304051922662950384295563101326815806160535994250900840868686118109068707242575064929310188702841673128364342452056611663793446782106728979012250525639100732154749008132707936063052620543267514780584292381147315536879036491829615679306859382501749405833351724021697057711905835784586039674839226313595676598182338889785871122842638866929419977450637139262153174738056788677862851346781166749281036590754948035319059292608569602856026795122583388359422578301960012392632955125578758943804821882438009404352187699055066760196723741951961964584103223160408879545638620678199085218076233344533268995574615434051984851911534678950854099328389137573480753826959935051632879250896980396001495875444485142355154919444008065791172193535203899523019319284618970059354344347478652460330285764007569063569714023046299979622794989532480877133161409293949912338646556001801293459598782749327741311194149475427342551416015585356541645624391958335120880855840384586483470214105941256087174554993160277964785720538853015383789406553714235524727399052216257401002310859651859953123972588102494121010146413330855516034727063937101356294843672144626730567153413267255003817391067942759916693161925213588093757017781297720255943960271002586531983598077558975615060311115228015793809687908373247310645137276786431066954229122135999608296578690543416235565201748935307647000255008566919877727701948880067194522530463298914490048016237449417394117705302965504528737419475035443585192975718740377864809696673747058021604776443541016059373571755824714445148194172903990596501388901592065265573871380350706853592544511138369291575237478869617088189876936173791030614535560397945291762121928232675554454688808421827402683984658069583927044706674895924585922882678197962651347152978740971978980908439736010449980242272169959221241061037419107051011036313661246556995306012614954268226876199281687251693574185666392983452050447519777820669633515148348366338488488406418056516761086159751419320956898424889804605349905370383802909926099511997049831364192561333240658918927179711228926669794847501053912366212642619764804105434237832264866069430247375368473656177698094802496832793569835015215801861572095602981680711296346066384853249499490761413468035680372520557261302389417857996933444538842315125928526986977918664386371883022121123188856576661122095330742587943151661252941150810196255704810940502762979156662726279976269334173588346214110548522229638155306327106500511764401930730630834900257051814602246455537755711063130376062960334013459469192350045587591434272520386223404614417133726409552904727640078592347282424522164859222672604129884618575902454676205402018827169375251556038798562847363000497891878057688558602058666662265724779463972814000274422441629671410426344871700356473695064813745421023502043485309481635409792367766566598972740786669361785188157182916482557448278451728027769133489159086985355160758344159334850661543407109662094346115966437813054675136515304417265564335492774944536943273229277905748328182581922952442543326820132637595399937032215771051912057692336588657404825385117384945133546681826725416499142232787270643173426031557839641281522211182568155378472664867888482443327449647104124252393843036996636436755951790427786870921910089631123922557205168084824731614846261902245646744023526013247770455899265257323327840216715913987374021861679050062175749740625977829484291438701579635438862997280090070146549585720857589557381041941092597318695312154353981541020137388783469462857254643699736285870241133353708329376781569538189536914567440416409532403619959853494269254705194696978022829449505182461261659346141681517519246538442584412271962042668167887738215575344086967911514412939784344975780564594360339934113309583519081612638329250268715134733886014840179350458178212556175391915463954882980435694781305113116824678669461578122678047282110265757662259601493911087955324520850796408286124566185383239241471648201088557584495626657171350231844002679034473448398497252212318144665303174967352712281842863614700134611651366519847623569902955070673565399257013016208816322965013935303824339366922879502894985392356385896327058856511147997849419737569872241602677658834998294545664479935453118124662623511877898591714127612401587103430807055179860976054054858633920748755582188869260273260235766467550631728130335734053830744941582442957176043434179231758790122004865228362601565635011961053118295117988348482304648993817021687263238507059648244539232968287821832225751480205899288972158145002696311507108635908011033699017515445161241576010485354367672829354256709691912927369850718559571886801103797046406923554138850491530757935120085405161192013977029700636161434181466640955331735381515064995984882906278187225485806313187068719396429857235144760916853339129294047747115854719501174279876045421427359147570262006026023430403058174059540001510714116858441375748886252179339437080976914976741074591742428166731020561468591955255630460682268854507596845331620479921849525198774518012040803276771109999580352786998648167736032314638298240135635436219305031326794450917385012963400414336770292325620916868246019369874422628706349268727128505639020827560742570069495594588907733568641344073742278245636753519129145931883790249070898571125420293511482514349955438655487381069395155669252174112946423541775282708985477836691778819103395003985776667818307643936338561612039855426273035857242826387549426504746958364759988557198170789282429164354436074580062569103133390609748016822546401605442304208295380818946718021749517836205355315441602732698853595970415422652547798175991071433071519953740099388985629685643708627469826565944177722747589321013676956333308402219595630905782120857989113177560867171945763236548425845746079771511341796744672754376099129912304148621181594921230728325187854124368042685433209837786613599197710801803278615306660287521568403076906520678890492367303835144835630970497877680321039032124330526945652757574967843531660468994374266778506387958807647419002002016826282119114274225809235485256266413381365490859722970711515332947787712338684099526002152892452667990225056267423938136226175644346543286800998067024704733821344080919023877594341717375052452998122672644987469961029182907428080820934709879385229109775240640509124808671639782358166610924187239915345049641609077046098792967593805988103363785708340980398684290709263611325580593922994689885521577225888984982510111897396994809131093046609961891754830417310168208460031926083094209632404155704286410462973353685432500192441787959547044264571280479740370178668157298264492552913420906179078041351616195443972773217486291178045484791772675018796565844390907678507093045248195573066325964963609477770696652919326811916898790863788599330053850314642532348968709663775111175455131974381333485279127292744405206159112458830276472182169064921030448980596144130673427323764497704749932464014338630744453728091666485258070093350688764783753463183292708485784850186892262895940289887941139261198282337909040516517817149423880960578640689391094359777498507277864166327358842520963350927526842519642911831764398556753381549871674863727006049150853267118936757544909845582537367011611093306463543668538897068763832920701109944689704142100410557385069442246060897164013952933345243107321600262856126319417243459277618181242154687925759292727920576625136648206763890737522744656070828025167318101475449799284225450179773556803135562528250555353974144718796059468509359666025468093704395722062070162301293416286075729625989904080294215340180762878346221791782681388419189971606359502775322781693698845192026435482364892241733847838746430523225313931916777657282728260456450582279130694401925547661359523645622090088714326922230402840729903448407314266757845658269691168110881593609227854401641822483368154368417726645587923742024283824403600262670546702713704348234780612374144937401482251101354199339199521233757190876675036133380249739493280937910135460903585290844767386234703749000076388927215696337167733189827691882392328753024568556942537418334201263219265716269014460539704764299942008123956353903110157655420413522511206951831500316417035920153633917243372443925351293883648049936089033385031886486047191584524733726945615467720366105815637821688943327791282605640872731857725421648733154129635953873254742285420663211470326563191562807378760497656057976989522850815622429483704583859239839107142582717860898911331240776051437098475644805229709916211212353290228926991821049496561828027973111244419677563402993014727718799529583122823670418420310234964186977991609209170727266347915266685292830783685846555697077522687026468720434749763846200367649416637028491982595199762674330822953876206338504040913578532819517389251365038749100628621564738778039805109463512627915329984534298727487986466310345791665678486080483735971315082505384893955317562353631748306638532474477813951330982925270615674140554091395627839921403900070747857900768529061992514636269706880868062079272249009211307927722620000359871493851591575086855553706242756771987723269466864462540928115020426687451880662887155840653050064889751314029792391147937493726194783987123300843603847799037589597411877136182592358307597722216192074840448579225462153441788052006052263993259677127135013764747854565677489781717083185587588574100422024195700010584490678336959076050925490125202956351789231475419510403910469277705706987553677417517879912596840731495390961178202903116406276688368932735464844961349971125587628767604079490006614587368784386937210676194871544062853827059326909457432109216384925741078606624282209730637168548077057107253455652142910294638201973005613498952064229138075578011756216448035565324777687180903592855433586754476463437357492666896837165901944624417186353916342776883398498695641259057627478296356294049071613505929090297428304263235490215989835016608805494000927998603034642047518869031794124468191990260722057433903216154471127741993877344182253350581273461111970908796694865299283794119232291357177485563718611095379258854966485595967150191816336091362700830691284169472057414945960770160382792862755229636804575513977098848835775994636324791723757814046214752655768608854790494795318666313310169754286554776549713834948508184936466676255958430640793257586092241057098151978176799440210982123130257380896984801228589500067959040276780116465879095009195470540989240896407798838664716526975391484064544350486084102982502619291115480459102286731860733782015408833111336106645519638346606611487516480373003953289335212607738023642607382941126634860891519672773904616718244210482932606550013968760260794689805701501051115532567870204906582702138758451503224918627194341511387028101357091697854883117745116767553515351677929171444801183087251093018040845658865229037506800391238239615952493129840172956917502112733609311198986121400507380248079136438303775633744393767099890377453295296521520821647697941295793112693135953915024765954001966453146405708880462597967963417522648747561283126883645722780471493835695398605885462168029890341106145583089396426378266550747937761774917130719982410533928270272513146316420856419253655522383642497367688927974194096643150524291092252532074536627509282730832540620156148490537178486778517274450803197966259604049127006274207256228175194621527163218046583937317788128924462969645635240905708105849880748349281436093460712324616285890726026935187448137044187161131569484868981179394348712475419741816835544305322498031457925089942638480957256159296797959468904573787768629332968444495336610751118294978147599713271122922873620154829193751562017087580073932533087788758013142987335662889854815583142911646042281596935364493296757893240046010811979854790410021607267691223588236839727627169966368234920093458276831833257734061979071482109100841619044284677537952494278196217615240778616523591496247268353846925690943323061694784710862472624335614811890058104547471942189147044656086236669090519979705900226015839804981034678261676183866635184587769442309974701147385182224775841479300333102845570805386862559583421466540280473387737989639065746258034614872739871162674482418969034748180792440633436145235252019451608995326049952259436698008137532414697198532672093589321749472245399902600123845135581462711790443692751592617899258946190889974186520457110011341636531477127947790532224694029740540155634125246517965464968911064156236203782969819148423042891663642771128697279294799721952072847989894933238535380576514417672284076798504092409615737457354369958267953197039047854811309639084026932484582327846076117137970119681539249282807998791688513130099829741070275825172733571902803736790697765977684958957904514673872396911380920947048425085989003336368235843045427678925681206671123632998781951857292770496819053041655808065278979983585383898937580999928755091313369380247650668104088559815191660431186191783238971149541392141540052001799166291409689922603137956020839047609073262278249454592006215283870054672895132378125528891354044874727446122661770207564333896689765436759906854282491724428433452698638124403512312059401968857064634455267933777883879588051606560126249870831666272155061084941814371337992914773589320914864592113334379170565557648596833742313197699860963233857975369258582918526417606786559697506381040056607812200108920517506690847414012083415323753000124978125653298691434210343785932526422968742929514982193219158291544012407746953212583385698950626362164327018629049091505757529419683487881229904248944234815729833436447971840794783017667061659845856185215589968321266101131182949060243028590489258125308254165919793341432205279522096102274838516496901508306079239122483477526889154925239360707846822747905409811893670520654474344787167305428162756365116365210186721394446400416532567654432530951193133691582765397721171950434636509247853308603039009415701631720429552743756539939530391808252954378986349322922965619050538167118765554514121448522292253235473069934645589037315831463855097957251932031246779763268388149910437316637442868425447697413823976382400068389031435777124476768576463990029695123532579207170379694446897360745942111147324713189708795144835171725651550067522349556505938061497019415722777595677403344088926879367029136282509340662668624638992954674994048637249533264750011041820513364280421866272055662494621144364196441560350712415903429563426628638133417429087193464711712545856730329784186099357682248130778949591797005593429385812486048417185546244286867260341088642957943465470490346544704113655118997670452712751690874431834628621238193774628403458936285632984807687587796744365920519478270548541224753464443998878529622360961149527365554986206281778669859250435438718128741675389293721871313067795226250650076924459312114154661728820055670778298217155167423653492338370960544438062817284323830809878512305463525431985283534315248831888908500920181751423422949447856535595884592323372191742410065949023046833053171207061131376258711411978177335800635671426037984829755014748579022097557800717711780526178892985371433556585817771947134476577643282627890162773564008493040205490892913734913665026698630152276163198449005618000531604944051522306178593016632821692250098738631662365716598742232386273554928243214811299774986611370304226917582345469449413942957994441454712881246110733002796672421402734031842758940972805556031820780565477569927000170991736049448246371047954558313408671720883827951349272816153440921875102050897696415749324083596007264625630040085151978459051775008904387881244856350424821475056906453521600016213151256125602787897183432254691122069989713336204148283795225021721308580318217324151732561707019825170559958629932712282567048872307854992915293771530140999226698318082668262764422055878336016796206042868739712478940208790396575140905885874034977321035187256999607487359456861610596279523450505762262553079616256323166081814683023531875478191666017826925441015193046587804373455779057430002952122182266618089443992693534759336285906651147965782889887507752050817222066180226206027201401395675889047270422583972650823167601497127653300171389196471394377862326384201178740836510363845244170573587463811715778320013757994109268347416989767544981835560539821280890818308566011493485845418166876972205251076578901806896736662302457071892036062596095420561896703345688325373958792509535792550792210861990806460262793672502178211889331361125003648221344032258254344081729226645325645168214379632019616299383329368817483450382913331929273558764604170943403848435343277600938753586127335376913656682703837870878629089939460913451787586674236480454866074996458409429084921605095602358703061739468254483122634856974390234596744303154944625267429947269697763350638861999370989451657371513494341942955778889322800533740229994237697973273103296236055561072069515759405055364743992481785537965706173786031549962242818018850073577358461003612674630215480470890734885406987305650289812172758052026927170633241672976469858418315327796597791669808936115550078822963816303549690920221376288164117085791654434415704312637216183849955898347328744082736905694947620769491777455276283729493813833543581317551925345541413759922638164385733177637873633888144024100639491820849350321263555695643683167608327644598495061447376042567650974604650528368049371986091748539111525349621453052130451763375385990079349134948790723451409674883443013038980618837920152579063870676423933916714350090612444497725126604151551311842469876980825359678134907125834495624072365744814078173622878913932226632095214570701271212211572649372026561168321913457546897491053275054054378827018225761844423161214266247688283160544168178791458972686689742799083161007543181610370926445815966806323493260331158591034233315224000369555783106055152562687087666350472260587379568799219453852968861263409033245837338808434427077803410655928218523397051393917404049359350181658629105264620397750418482348889354304781629297715556808983541353926647312394745182449958735847640401233415757215429772397392825111690790123146551264597589897608370214736600294433646354440027930350153683110511132320600217955353310121545826887545895233408690473597957300437712484279276579554089441921879336048235306468395423170066252686393745750790395480754992615311167943733195216821649690110780650653049538293919122997073350493548355107593257295047397518172234223024999571874505961804167705057095552415336783941383860653150796260659360250231254299813967385699625551237751975567043357444401704676404324172076131828099539230738039353649037884409638441591390655180242008404853249445343567802096326689812083339960197426295670012001257892985581647042287687631255807463882258397616724283807033387855740341510034442866364401674809702387126707414177511848191814404998240088942183771355963613748704012653292130420039573434192678072788265715417824997835373745868629980403157141171685032321387560654235678914661794157625602033860515900482540189274648122059281111659019580681673609643784539220617341862371179769127824003287264431810894795547675126161785441297628453390452130736861794603020627099234083819669299030450257094602430884042285004600267778193098534508426448175905155586918058878651722859325831990710423967306377914166884692395332146939674699251831015242307746852143884517391065765424233843802946490733288211810576537512813225778499793921468841401581209668336657750438048279141447133541056751940436658153565010812482226412712066697247077042910598160724837811724219116479491097217151801020154555841699767514705224880455628986327933153916399496610497548458400713762842268028107820991222476129817107284707563929618241008794430221789599562642441526286963273866039202256397330651023844020513043414645213324613624020943303646195236308457724784095729844141914798618830331229126853148226941427898654950533442306257896122997512554248828652874279000388351398613750452464849501668657147900059229550674284029060630907530642847495512519421525076397027997526004067619126723453319132725484054534566131244319718906245792807243692129421025054441430783257405854566785707235828650003194749215103434923060233365853989827861323330865967278843014525009922427326058277308079650181731954270866279979091998189025388066230680223012387228360781606501041974893348277028501970615278264279721190272809856129006334811571564459748203138979382610160849745556762581743652360588374281632054088248768213594567392354556996900901653214113443595231957860815083998698114924624766324360271914452132294575294881638381407574444059877498548323471294638155996838518454007780558774859995682952245006262997868924861280924532059058082573235144404499906509912856678932010038652315756599274028585327779862601106066992230814159998582982314349707723081737292657736704154939256082657913208823741820856512665471274011519401786711146022065222639620348193330177303479505459002182439769423938895120948979156944514763915299747225769846628261907984234092320235043441116056419911302456431935649158141811483329508968471827004029821356352190549867506211882972762673974524558600266430879852159842303929262269458729712216406025658406542916180028786364211786407804208118510772749753609216422731656771639921781257001802529660987853773101146212162341450999993294499763995889204206972882590271910264588924600158285303216397241284027632176918330625444759677446533531216036073096682894084760825914457325055925027090780098245963869185873483706791362703070828090478678752618944042196590423684428561135318371899208839469790639778718669034638732356798272838197777468193210379035334299689704664891686693951780060811428916766597638231021738516225119223631889822662912069922339177873832174954680862449866664501509625029534944761718922266975921363108009562709507973755158873986138534738578670658069617275490850231043695382929585811195113794635423156429505253564282311675723053920799283048296487351708366619791012103654348386496322369094095588061757022190674209651846047423107912583294569762186701781266968880149483466639848806557038476585480128299212820483028316404660065408454245772862286620076004884639969733391130457219312484456026269253966890156979555142199120446557695565285682910536302410583914648332355081804681864584913899477867777629970887777625356214472806551447773816111690193732143345213406662657662076853664572189490091417757611209491161029893723381745186746478471667766141367538104608171057815408922566766135042229286810507202978035770524072716757309694329357236108624423843726221979442944510246994017414574866814681309907302639296214812836350236244240811481225730705918760378247900308484697990472562341087654904016074252289179635195379984269244596564067257487597841723927172318243735783949359559217383618346130470284485042716921883840951737097234386277697589782272882567392108787641209834508459010751159501311169071006240793403887812611330418210478840434007580931501038514184476364416146160733432015403100462777413141075378474861847454265971832603489517667875592862565476778923182014873438366226066013969549046520637290001611647870050804025173948736067522532701296649074032930464429905492553339205220825023965793092934826526132670396580968569674204220130175283057771950112550909238767042631786765454819618834888897782059610221809425662412964876146309282177315993815493820865304939679827385639872780959325608860336769425799759248668894180916165214838017135193089581594542185072900544198320794357268550863615310271070103599683337614390488980978837606358843656506110976481151072374282068576460842436965919727304699037110487561866367152225303125306399000287402065429775658350095147464946252531030099365640415690035297704974795553048346151870493584718187859056523338539142810490274655177749670470507431257134863299655932339633319744642285790299908837497115853435187621846685574148964681847454304205273850846073554928796063819324463769258700303260541172162700201945727455223408569090882834251369583816777205882543663096734146407345030121338958301452705937989906345002552224168040218348030999700223461678227770143999141513721254582643023792350130207546074172590772170581374228501027742497305683375859742484318576796604153877102435583500687395508064239240676108049171495109479311455491955644094481499017739070903105151290821841267213247671317202150944654585371417994379853915826622678913068448933190284854675219186076926869029861474259140874673149685142410040739653752648261678121278395108284922869418948242015794012053152491761304820944871049904634904087819734753622742288710953950355581022316962920836184878053589102680964736568943335369617988533065253345595518052486587681165462120830852744779960006126839882489866910486766881871632882140154320914129838947089123539556906632500641066829591640341178912908454892947555980931883324273612941179799394417666351170112339648118371417201989591027108045765569622548185050808927282589327793689186606507127052760695554388857783596480601028791596405367635513106522514971778264287305038497080366366340664651253502797003131039358491565211301352388286072382990998550302712573988782908806923932583624345304520699433784836771613109748004721357276608031590571595099498078799451672319443732224598696601387391181476626896817193993366525804621645063069829878512939021240760255911786600700647460216558968378957981750654813318219208267853273007760910248115193499783431156132445914366462592085872270307706568336574333415877013043893947567068951650269612844494075479194166718025996678500789075515229844084313170895007721877608421011832627720165182667805663832129544814235506314258768767202153561433363480359232033781333003538482632954793988511795305824299108817778889337922717294868265555435557570254491986375436594141387947070247511720242152855769817130481404745219969895149978983028373641065765346132824626372150859554832215480441701039559752051348085026872117441643766239054596792989426194269961991278422316958829075349511889917447090220865042853936921294375365709920295357709656777616877564189276604852822712761389688694110521137284906878849554618412141449131954974720264046767536738899713739390325878586798984790082216252706220565595339815117820662124190306093698950759478664662547758850371817650356616681587125884865024905960171966308257750275106009883036095799383963327960869056872794829140709123978185558317827000556036688384259451136364295408466652156949570128900254634399702053298904009807919245632706197379912591612341938531944169387793932704699402415249344488028372122093777150222614706415747722554747213909132695975506219751157939762483448722923344362223173692957209220908604091690334231336004037172026678566529320546801259259390231386599572315120794942543776732804638681071657850004221757568289971363927815915412002754034365258393868736418920446427787472185574240145280294835743602420508635875687824961503259295186594483330880985345763829546487851917995716576182645377012464121179554232902617746659262180655902069107280506344084615085119379354834531570813599951041489418066443833274494756417767188242504958973411209857868206712518490306229442667787903321787575645216507925222163752064415918877296600121830163599936518806124428939982689375539187873583774243333849551692436612435135663350643615883176094286045023484756072168723554271036184829898321686552920337881947168128690412415498938728145222947159591412806899290401752662446651599112517319848037837011894062328450152353271752836742747301373812764627693237630211478880923771394766256848763351163063615863196677612936882478648895609587282709286759879724022712190480862427047170915727518086856575958113267245210102962962303396541887994648119705659010252188838204811996603271432365195673871938172513259365467726763811665451014651440984671820217290289931388542682970514724591979874571391951807819009095126775682280467701325058829849852885002547696578120614532441400672223084683005705914791427032851911468982968415614503138271512229516787137782879009125758051430167481447286485700355387253287970436859844776169994036368915909366036884743088121757032388357590410213058730614055617229185470265344720328047720236736989367752608661717270152635128565650022742348107266775064770462139337297795767570528752800170541798376517514121794160626446089386623401811003612922779538878598201558565152930673180218491129738113490022226384199202162059611814392058508288608376736317925967597935114891198104050395347402249946948237227492400278787438913925938744822578531244334161007213004479379017591402961065672901679217006157434109489362190312763862949777333475789876153755764448360923895678936438230212104654166271829074836066966058267159323240051979404057068427083833109577641392728239466936808319548446146558355849556318163625691817466638020816537440768621782470813191194273994976088607419815322875341354172482626006368041072728625142756224371595683305289024260428713706651903169524979032196775012143807777999278059367512915022039386196827313739057901284484994081221540174249787306122241340281081214438286096631364535055707690631041343500710271936320545808412387180297269837812050110994199818787012652943325188089304635840968922949605587164839646871610177615462291178697169400629676794152724875664900757610575175948022531990769022153425540968873588292939738556165500851067258120971080945019526248830237379837721106917381540954807704436058028450089055828045663859109116942413456202539029768446424790351784894254615230601947442668099595074750790223447028689725672736882301760182243779272196386916449745381446156289401110121032862658471933985835364527506361438903073024504501721838340902804364043151474130131467971437344266122536062808333144292343832964334391779500171747516449121548523624070376255406168711533795516460547713811290283088573765298939501776741637328994642261483501020070069134152534685035598262067409314023396018415934137557630759858867477804999873543066040073384008597080147637439656869968623484683876050244558174962208024732085720930327286358312280809209098120668140085629629622795073545853606042996252174589634127801166240135335772567600453948605038310425911098689109988292612668841400195802240205361040867578318306677379186339219717551183331049535265352186163453591888336112834563907948751380704351344235526205745702622480434760682959362723436036952181630680025684711857204573084179136522067532111624652797182790595857756838849059940160419311304818651470256474497535877822992978995272590827284796507371022217624411420906001944929735160515478274615829490010081618722087449493538105798410500386822309768870646077238769364470368618949415143306935269391306433799956674660822098103945987795006768484135437051363343988599803400961218475030933892657505553727966304033387620401390806488278980168663227342550315113694726750323913307180971618386897735028641606167142798708490445973053376195420109759496039676378171229687261356081381985030581299278198947766751590714748220352342205850779466018639517416372949171719795874888944022287532988837978444864417181417908157814025255783697668452351035790632179516547653342546941703913256317965637549749677973381770969979834475412483205092533069717456157972172541875244114751514030928548205053545888055228021369367643864845616504920659255210041335139103845256907708502113829248481645290861496644445291953621361566660821482825227261480073177294905235561848670414967129018439950029428260627334466664533083859927699249203081893077838886979177184899657711617066623137774662708292657533634219828233544809263413943847126316712842720184741801195453414453199225940739910265760026401287419638656901419290888618736644578703758743505000265050335666406606561586519183921602382645459185923530488093136552778841133594106755005786848714711901250524930888164538493674450072701570575502067658308990245871189377727484687667056465545254626224093513165920017946788015934295103955157552229050073109913438087846604849780844773893932355246454383635508405503051537347165171668669997818732118604257312464570667464851091714855614220411709403302362150856503835673938533747476264501589208823747517667442120420799959086825825276859618904235273610955379231162233581703603766790215874942157304443703670167657748648573771386301824110272808760674241291247477060601130913268147448259878369345475040784869568030354821518072918933556245353206014885997011083344388901290174883607560480213884284538024241992909360343289895092924216901570023025286057177271728001037633303770561614861145634290575113713220329981584983127339358761108463813197867486031381994660334074865044180506974888393826374028357759752666950653778295311491031424174518757190579937628517504295210622704198616563337461550397222661002776482696914955952450341166735525678652010884935868586642842636479306046303619829129758690685118463756890017611078008965620044484687747602717837347072807975999667058460941175885149905493864560026164691012818241884678490523185050458428181211916283936340449837173925281594180414167176193603482842013015348341563312605011201611908535035114975649857120140219263520051729951884472190048066584884639237533417942704306592705598407702235568839562964413485105626615419405620248605832813766783486671032256036804648525252580632422303342384628207517111155175920847711034304365357562015788424496597950690399732694477670883251388985945673347726564819910123150583145813996861977417909381309808455814177171232251473450678487288640230062729752319449592433733748286711877158226096136863805730670561740941423231821442504961750468633690701400225965782632722648514435368158554749723981519034377028324368503964538083012712249085907739258997594271183160757294849573609160286350188474119806177375783198064844276633365779368582373870498748984056839457840701239767169319282144291173769277190324744941084451425602366441721353359810157677906258025371560669314694828185303643897831520294010751499123407294559982993439102300212697885744044980119991506786075034814127334674197918923999178774371292417968072744959813707081852728842790489874946258091321028089568404637209390854042419405472644142642739916085101105967699320708721366301751797746333933650171710711776309902593694573128381095377932142511779639548144580895252935607460118087174978229352196439303452368065372967247637736314119353470340059651729298438519343387508055606793934962452229166466617766062964182668143878414342310981404488222120608786646550577846158030978649443073923613776633269480956362637441339026243471911164226442334563118058065620105845768483560297811067616169868534201310229034991506952387372826150147839372793199185559184646926634381776163983798281179156905545531440014360740036957874981478478384784197784281516430370813546134534982815894864546636352402435335645844228003715032149407320852688920034952212384644221744339782418856693073104002693553707654822669292687881429614322376818907023606287565982365413984362248069660222935015938684218715711953687779872500384817597491616306468356979703356769318463233355226029849403366093137910031143938115405672798131621848108950311704583040876088352786445453117966479044728177202471706010226589754710548582130254452434434999115153632893317208024528402677931186140507731516141338388843867219869064806832922257710759476797815064702327955637637659578473570807881821680593680698236676354243445635415491337574612323563991983005806826384246917593546822138378194973375754142177195267391104198987420670830595027431668038663147986800257953321066010824496671395727121375123742510579065252518625721961757667262395852798868328989907798771016181431660798778953565807237864695053788879318977481361801434988915017569643765600834492008429122540064651609682580006028721455101266077228109587876261656226552283568943550279487678856437580887495977506325440933303348818663056595703672168868376723373611756246728083939572756969330383089071114412716730710975981956081138124379771231541814633967826385758011347055626758147934918846683245865015830913463653243421013967029148289415864304193947681754784611201239329745169446699139833717412790469949984671165307656263519806690416528868794243477729298292354458541291919254906770869799830651142276050903575772661379051326683751908545341838414825124848965728447869808230761820170104605367717225306718188598700297369729065740519099706022586139567282685578330653706576776351763390434988926405576468542327634017438096666269552026752162832632639171421929999675375956749795108994348070855258606257983934069189752168084067416951720730160877623462007081536429775575994767195851855629952261728261761455685905345727151368397895853838345013170360817343196440788944187864352662249434393345872572738174391198094544600153028347418059915322559260983716767136620608332730714124981551021203322523102506934273780551229911893358059276359605751010292164482495007984226197802412613800513766857969768166021989490340270610752315535844146892522430618158739798963652244889677776375542932124060338757660979513676166750340273781204799617401028954448975923131433475546110033470328462668429437032052383717115920897831327439529544799025083832947906917218291463366335806024554276962342543855979502988997339958649668076876316433623847258386888338504886139772289814582538662359355041203314968420807764847415549047062183672120204711872327558482446890395794309816998775358777352188083119854635201170710881317560701744891737127129866429617805163931657475664280677903631532398019900305906045404863819453512574915515180357101841362607290426518024941144955377181713682674567599358491434047681763346860514117982835540421718330073364284485366459568054736055125546963390154586824383454932916593677818197490168893040663641213330798675987501100451599579826985230440183724079467000185475767663660967015489381827888316288326556788987711204605378495392451780591261869782235173748036089779979007905452778712626105507920470344372510588197348080687633757623122159167565956172155539683763073585966866987962264891369138980515909996719280544468662226974201694970093039709878715447667236337252617718068393370757136898461930879686835764816892710568483765163787156873090783551508083049567526466446275731344591527179835908376732472357784974397246415107509302585325393748791721260081481280969834501130152223030736757187371017132435557723329719445355823521429955050240333100415131577074926840498346368922492288138471578427829792849502494061393527083415207344610820792062558536802744044241808613626475178642657908626823009728856574513061053949141310164571194670118374079343884508361016018512798577956089205440816276838941259407507340013594689470161209021100704473332626919198158013048375900156747824746497282170022437592321293159369817770325725900083261496404973538100542771728845095687636764448693654822609262623098828253904879263903111694063650083293172046397108956357251346059800488595078008010497676858510235429002874055340057894698424139295207450618596139208523665371601434341711572955341554431912901765146611614881673660309777376199720284760647472494315063053451143690873667135729587761528233598826229477369997741678752105048257415793906764177789280444327487656851639246241417215808482944450296773652942483634267927693626873525706909593102839292942154513131973988809806156920455942684442905429351234236837222606237055880573835855055963145996248400376779600013519197054324682506221331068356957283758544041511381133769190530790391090777344688857997329413900623665058206823622080616367872403263488816957773472693153543702133997139592710554598447558261007181492262932224372502116121928174401457938757499436322235078246137657275552659811273980624988900059273180798809271133475771865915264197653375467761500009478459921339959016190911136413784435675432063204965078153458044663621789824111437937809352183106538937429016252800213665666932395977735841791436092513958332395654466796721908809694905092328670205684389430192953554554096683166810710286958899958880533447734622357071883441737141614366128313626128594511759405944492243198853330989738142189725555424395918081060802967497509473933772139525797664791394133283936889417750086976191090057711918534550293455808784310784303078400473405243002541041224467440667726936167997196380529568393706550981560037892307473187732551948180481493821872982388989077155182881281921468563230938076357943330701792578049613735818504177819689066914039883344364088146786921332825633036932834354113290957800872517452013422842630033290778464214154996902855260632836075370681732403176162003022223216377425046270345228893545195965689602179048308074899676170537608914464346979665258797675132352573768387182817088844430828023706719092210812228275673612387045680514063842568554306590533138051910032816289982568488977862868807647717549966979833455044087387782789424591085954124519901815473327040544102070318121777448360767842015661470226499218190794244504640017604980692315406582798175203450317651836657215769342537842690164079899585698588455820825989167196854338306862151089357327614712589049792014101855444731522426504353702909329394851862607655425167093879421769787067505226276697251597614830135319942466884556004691721100270258456772416892534668819020565455512871389961176318195797709490144977188732813962841266892482704156239155439564368792206183474937924531186794323883696329845986376737610657195087205353137689055395079372561727830788904923313776175961527920876122780700730425633274838582658381962816425175172074706819881696574286581659667722523087047948226386708109367268248093509307459621869935504998422816033363784410657912887616271034485918528800479037120206002016769466995968502616437634653335843905566889361799293360962895511282239088287283907805770034890358911923868740410965303248534220712729984894436813412580635424410638578880850690690878748780250759497591732016247000172473873764686962286049878102800454044115398542962105978488235489202994523019363642187431202485796559120719296929491694652245703782188039733830386515237022948407949390776455235051581324795528703991463519326207645547154594695313497897723497360243432699382487570559092288988287605869270099860981591225639738797665286913875734489602195472072629961296798004568444015937012225967244131779943473543807916960129065804839496456404762606016305576116825201202398142089951220941406639059802175249048057438362582991636444629289224021948863853818077632623155114388994354248078183138232913881634403605496389386902895653344352494737436937501646129927113707917230236177471389552861878365735293943897191773990298271955263762171772154983571558879569982715896051802592218135515214224477947487861111305431298545748873560411351516365521651841166909938049253281374032930433598705629621051986624907199725603663468663111902666532757917772857715625656990667905987962996575215987911554281035596707743849932605476382066630474960780897923223931402842382418194537090870488845969867198531642478392106572500614374420500111458278267462340437542579468932272746292790332564539366295747580237239763557056089519561613112054694056126333488724194731908529172065547974948709542939711179580597298587813394230406025290022820530480851961246523084972233569992151369417491070751838021884359627074223521486337001411800880695060838907549603914828638954909571529761494833457690910467215955968819654184110402787192939480693780100650204633193501662873315211662182746932791113233000095581827088441881003132303037597311610587890668657424003555184053138563104638033697168411367450100645610007103595737554682367728907842018087166119041634678213700258286546029677141287067312491203192138794242881045727620596346357313110063976294354903548252723497086225074153578475629266989684248779384006864132071420788600308873608684313833714606134148809526561592193807227058315645296935128746174262161296001884788893299811652281586949587945179285794578355026175284942036781730159006166616486063977375052189840361541176804975110555359965298095561076135426883151661805886919806258722111941502174269765296954829570816143448377039361625488632357003154999862523515905238278278595267867001073263116601794377449582870429768109557850430381028391392506748265808906862744338673007833991960248774372498499396549602606834308098100752770457447993230855559803842518999822432067675985871533831373815431838235269727905264400513015087870974850828091517825186066204149162976671919655788370536758738029273852983776928123744059835953119537725133658412204916668177137653191477656909614623815751474298685999356176985066519429201665280749234730964451371859694798657713042442664005528010713110099098794770502583164971015262941268734090347451157096154586481746298647645650942654273456663820838208169251054408123598415732659324422356781370409495757029500037456199388416903220195945936101803951399420750180173106445872383992222530296907001954342458970415811997610007930601232093428157144399843974673163723918114376190608564836539628097972216236826506141507822287454127592999604145572367021091990663723743841857984463675293244652951268350209838157486721427232426896805239523454051405356806720493305816626264744956834789008353085059183521274235034987387993534934420894980470490590015874250010053041915849127672548308523742218321909189657810486221738822102003230251703104658954585577157554547453092267060374703095273205719517498056757261902139463034189599934062180053678906247812808636785496688419750457914928802319260933687454762414626398302045614804525836455534543385850125283527825200677742687537290764502182093173069903599731893106799314059696347480389475498536000364043143947493329809151486396916690425021622012572895157399531705360139999402333180338110149547535137018934335021261743503739412071357485761534046711844140805171912370296852491509102465532060284354296467551045344603160140194257077078606612650965073806911397459848261996872148405112608993868046134356932244287376968174831246706077406013679871926347870439176048455385829013095188474774213757533569248100279328824562467874191676643874597723484038620026796926880438633131743676190482036591034921112754125943125262680012266983211249892320640341855733220440105777143431806410766340650230246738477553602181707432469246026124601456379359406159941236786143391296198288285147572431827170559538245351332994279637814199249290113035954300931598071677808380999942321072113016094394189041962785095699603748758525262464801050994220878642412393680413417083134397008651664155875272425154058295272487918865121668046046334471363687817653515657624526445532348812363292855399918200172747308828856810610509275921931915096027957606183293524000454364805012578789464666540177744582701037136191883106472949441879247708003137101168167285912646870986182599116701002737463955708608420709346001143394409193172439971506281138236099986560870545309519730283169456916008662356623718511804703018548621986774477506303774664041997272908022020315952190424969692914462530480389184659006858909121104661389371760028984879995123166761790376804216317108147203633922770845723379759393349450184518341831500064363986640258660307118978407099688220923514913780213548502961367714847467398738024495860971803751719376480121843254101271338605403655164015536776439224280598360084759782246957290865691216669858337080539299884163524252614724189454527022875025590598970661194076799436766731154737701385143529063694419391003144608603676276674324613746001711386714638604579986544179626637408727761953276999783151042822872186567183528012264528235838434362791300866164673136014813219001416323811181613150476166024590508261066046845776869391237878190538148706020640763995156113289273723157423812678200536303947668192276861348613051446880291362544486110535691716337313686839645327548836711917624540958483899685099968156731968655187343295988332624172084033672390425653507718730992723252832523430330826728544722241927137996823383948115146195144806907678698518834615362224144957996605354690359341556031382113648815484601103239999076053655746679545462884935204231368553511111887871104611116061147587483013911611624513843643717399237761098311390627059727622616276239114370866128485168539596297226070352177079624437380620660195912217453975127096527442485517130062767414747814574624478006188613065756780746653378480018832010022332410551588392108315688670290724939366687443950472322041867426223599682336072560983219713813913666064766943244704433139006074458477333174852157640576174996598618587075976369161725452052225167496027836703270294755360559818597879920747500179059044373201433328749911803448489792361509607362957457358676871658406699682537879340139176974331292579042637739425711208532750235823773745740096663805795147593438307803151777818060814993604861199089849391170217468308876666315323550025032067983008598895333596593883747309624027367239446748232195565518957955049466030333855354297829514667593697478036920398345435631705639871404485194319395899139603062478352554287626211811516251131282135719391215646516951213387156810918289804264779612732120114417826856584743905664926232606311422070540843715595575671843201855426886749486269670606421641050523335936169143057296582629113923730474590211170348864761505789342693403509705610791136446595828148275127876020347917774359621387252954160989455329585737801764517829524841816118660308205640768887413674792503420170970333870809673070127048894222399723179681425635057671976643921973581662943573539193377362127609247996420291202513125074740579908483226202590986708812132510097245684546597422966755633909471873349482325557744295506202943871458810629915660154213743249944430900674299061291441273575695163976470651299125961192050618150290649578733686119347384151882461969274901042414706281265028676779479868951842118191672484299869868287988812600502033459453740851327050595954127473505592937595558605297240495440836216564383946334327815111139835986287446468326459320264486290857863122996717675642841775328034763093028386996519809563761486123028757442714144363332855052298897964455847782924918902533268603183674583310359708399771832345030942266447988040975483334253295169440392020529756935226355881410203972490029020040244546777182830831743489462756410321778009642509561821197802315598066902027211723719475829057807939689281435121062801706986495552371066383930986300353948882869041702080136145960579404011669407458188340976371851698789760655391063493468844272695844026065148832691244013834674025829860763596249821329551001752006517270016711387820592713790352239258934043493305809532732551414337711607170505173061545406380494895415438551094232249193022194412994608682692926833265357470358927756009478013021404099343755359117284163806463045622096215878915673204637396642776972572299184874298180008290272970401848849308804684986126756499680390185897817917865387352577564517836131019160728846585841801333823978466743660993714347640439001270620026480547602789822602351277669403017317377566221291965216441943322038608940298629357001546163160975230916390348207217888792565488163296165002657124424871773493142488605018586936762955635062145000491213030487710915448037246469271692206662011461665608069854861741051938057703637894233963933440109228290467014821579394525204303072491165248617118302136343648460147964830002388223697978260698081071045460743699858937159259317648111029867316960568527942981400076261461602659987684427632590972804282287200509145100786550308655893215184105864363824536630646789407347384332741660999136790291507405537942806003638371690683152479865179982235798783608052738576037074408439101750641071031437517921113341067164119019670885393528249611719243405414277042587072142325814770564470712071396842478591493118332174913627767814035183393439845839058470300771470249408452214864222744309415111151160065066927871898729890919533345617997265997181249972206294640887005246463450639840182473384390180701562904251987489825382824546866827502601261180333502487289083533322334395361884005264737724528282270807526624408303524933118580295376499442964064548518821557233566783212210924752512948057507735748997341294477465207047981662000174487326895600272642668807282194113124722167295018647043515424861927635988225032918712593742370278850918430340256998555330319160829015215424165103780329597859035830487272718354279601676653870813447327444677217223211222942187285651601475176888980093956054154286616583964584203190159298970125457335651435966923864057941916727952293291433296872430289416865591658442372867800288806738195680094728349539382870321605364953073311256013598404610606100019698350296815324023555714831246776663764651825334980948409445336915939625335414433509839718453125848352767999577303774877024326857655441803779033312715903490642929352381101755391918035790467544333687546061773825167350687785186562527465489281569982203583511920036244814791530648669805125409243997389268810966170155339080693765606164480529236381903970148642661508010433194543830011294781642292916189524006401620966327997255349848911550737110990496913391227401593700338330939003946069120658179202691776356190067128494676918297670937413210220431616610304424131959561551735867650260134660658378306282615161183835860454946268077780389156989189402195786910179027190909483220232341280101335665561290027733107336344244032020622684926016106204311286622220492009231917067789648463851302289362983842541710407104774083589322347375083134851347986413054962730209197483235440125268623035439958068547126825981999378676676294468608967944152221098242624737038470433880802405683961977474971725581278662732241663406572567906032679662495801974782794864466302523820292967377056751314290618941459366493922096842613632969752556551083163627607660952788687961405527185655129525447797857891803296825646624124926019814135662325593651212907699176412147894211166252789026509547900942329538203188948818023565306877164517824624020781239042840174992090208021010807749292559521220082260293216380518328719258139934616958002160321322618162527168445955152451668658244208062983648787783668659121602551466947614593077492704887326928289030920176278796614382476268580756794713588578700644807323058884801409295419466559918513548696619442890934462454388909547424490774582016195096746358893760240990207927147401963193260613550503713138651864984521511195104681483284120463366180997429242145889049015267889058008351902376337364935074947608918189013074120416869228297058753486419351953193503742358664216698927337026017945186194371512988851076573329171540248834263159788740564281113812059025250974885674626241990596698028997090071254363892468438304771882892882409115878011896121340432578594638444705794141947788131139176623222378375907693938100103202244792120216252626789418402911627698103648971571645671056036060553300375272197232193542272241459401249875291379267145023088002864204055004491357293194074546447040428896272187502604960604311104256664743254900035522621776265773347363145592611382332235636866668451248543190313679776318585015926248775946111219990967109722877556659403698281397904110370695304967611331653667749816839600427598595111962283938191092747505170229014105492829323681199083970587836413196587956662113656197168217970714681981341807578112735102749303642558716161921873577372296094636375815761096051438307532695662791143783068593074019849586339054375872596449401544243713975149541705666604175851169344840819269730528930201654150468683405871027139416171550406338744117478207964530750830407377968873955774037705088382220763543684862763263767435319146169509733858348587964580094296730815064606316282738592535432978710143602454572001914824858651880425950391792849767962842048875612116783816578983799558964293734601860653693786245739288716394416932684252043124939124977497382287408021388228776684161129157558585765160852640021266961891904680946069187105825532701963715385148061838497492238676960373512185529789076928943336249953567762724235271828302891452256536039444528428820504007625854185444637960576002506287787959829133116104771964917420531525996320324618104643501380906741087451311686124980723875296300255259997100865732420545131767177093899760843840586454642301252299926538266783908019541732944984094235604216621789576662562560542678109136890382175096508972922180520568648474727901975092218720677448439064708637337883052350051720027350584717021567580958862591787177075334731458860804612021780389924311106025600303028986351990982077447237370478130619564530283985672917769573255977309416422086556678267085405726565071479232581351252921894389135710174662012476129884124068078909687715396295609510529143859046576202815609902048483356796689606898885787933173994143552391514105112845387292897878250032084944364581250978999888992575459901226817949340129175264884256538642223981213590711836492623176364068895742824480611514491746985237734170399627256159330720229746539131275995879749550653729396949928853938573674067051475800504036363505299754045248858676949559351420342756461969571303660963471718584787886101445893396785343320056334880779814856512004050696787345025220722881477682529137452577135357896311752087399448018534066766841663914508850357493909674883226330668575784580221452700666925168942043138338803707225332335063487649495786449599364830995874475470488583483376255258552400673721219059104921659469345100377177245531486932754157156832576785220755389559295387755495877527632993331574152726334345674955302947735688221302604417163239410944814896589100601661219912676416927508268481649439464755906802539725529054451827054774223282383526264639945478160340354054480117606036048323112382515995675420317236221859503394044874289675334117465790741819993645512132026213079719098864164640634640812105357077949001988813090987138175260123465488121963959777026196414105574619967178308875603731271765619481261111716718351161230787795279478091760740146141421544508059190015834540634180470051262806411772110961616643654736621902024016894461365301218748484851252923294573073558283874196859145589306771497991355392275155451537329620943065333013348741672037374586802420891136276282271191010903010058859443943844881726796809281325473904807460774780982894791808799829156185361714721386005370928827991843251802549968901208109293787094813013050372217854592148990139215364737045531068705227534727594378181814168673798444976555560940725950446393763730487230999555227847969731525571470904735063597505075303056263000583686100372061244977585114640870477070396710043540705299066168774026325264724230881779325152694347061359771135330404628080608759343064713263226879939627962697017163374322404409737770370910817616325797790306133853435255098379541710959346499457921444354791742484212535896369741204260254932526597107588006356383060024514181055924776139938055173522460844650090287740741447856581816639724615827392286189166112518776940007322334157668773030295275320211827066657312673351784558190247452905267733198869580504451101296297205177717465705076591201757065301886550960279373977883856736293327671075429572795810932829011770805367936743568090236634243020897924348806254997114341038881618884061438219867594684748404956221248273744624877527652920476557678454809568764453253724265777844948235711217527400903575385983198669939032640347177852735747296185366083273786652534289502434528032014486733869446019334959090866358364967957226461451314213925253330413065390102422133172311011376461120968398883588036882628152941990094532774330089942770278124069194221499999872146656208532601154490089105640895062632632769569062388345879122702438355923323893159366192607366783664988821667386378859820107888423807685081666317116185299402468343106614751394647754576551642980733530694251125021961210093930392250796846090134097861960363684715588200495468001881068680196147092259432344983576414869558970262364713725754551248857843435798577345244089111900061151248758994131254706283745864486112654342821693485796722787121160308048788249085587358975261434635816053683031002619321096353888065846920409845599346228740588767889273892572968154027108902796382285272714476722714588881856365588128819576359665467557098478740197752444652168705874077229107581177699265159197784778747714163809498427879893172850756969693522763065987521783694909874498753380875657115316788864980905139975240713768638456197941364673450002209435669527505289688902353616010710038875501849997583980961321234462213839100938143302682597014895276432862952341237669429801696577312594205658336871739231644691130080381364136319032288830577070431587717242387450044593227806534612818568259155667146710795280950570944571225965447306378167840733356665991881364322702481869408728432383653619770372726143668486614025195752415295516885675259238477554940250012834281630628060216488431141200233422024864067782769636999965552967933779277434219743286800770697876540248124813666222309213148580584332334956478220115806778918706294291051922168365140224817402781771075830911917067044218169263812435150344672828181077617528697433187601915231788765251370446176406705003184249127524020822026546359540841021288558941801799314198659716062007221157201488730609776525494966737279931389259142021457326769438912218769241840856899037332614421083066656089952163697380143738228529777438181453548518194934472033691028899390617001116552102726428474491466922972026771533047773705092748370451949780624874441608956041887567993303274460775799811040923293211488628939832584947438594375695372872474042649716214574617823280595022283588451141407272251498254470104761188695547948030812818054704044344241718916353833220836719972337524112010808298916554569611618434235438939744268012904964801204850504452446343328626732715369964869846292741221763135507637878498377362249817989738302137059783420670756522770397148857437379950652288483162471525176718046102634810855862642741414660042452202539584901569685145720740475800113620578900973889140846360285247989672834005727515971868265269460814653680381603516626310828550797269811323098477488516217695315412016813851673581706201212010315330596446414042613130493080496428435910567386826799722210901166497305049992746633605755026446883333681013582378096820048778470778374470242255647428636298607416970969756946665910814550391439271260889518676159628045642781591710345722955817120280681349249341762470780144084274481538330911054693866604442293232014921329357307961677028364849188519062276928176729259577442913848708275449115046508388722912510349302473859220598584116345737954265999626821417044352185395613347830941612097006089408933331517349411019541143949741500307294549246209169986038837313785274302748576000375000472952446963655602599500670107521794139995794173782491043457015201949388421149500138725946381387419753940008071869518939856338925627979107008310756097953070077024016713747797029523301344628639039843288463846184651866338334390063844839372144573562227676933255040639655680702505122271533855384959442592689843041486223315587512117055968756258211959463296688679752650513854924151465342752375310443327539437389903084448955828140179219501724153443361962163314892614108474181829911539322479941702398019958561032814622839130053862284565562762199996492791968485164057739759602343938455279873594384945351604583023468675516587245997606845005851654948756557041715446418400119598579743974082037890476296701740366289272307015682944533610097814273372057717307564403608155925778301501590159102414603223409055613183554596407855553951621440101150834020967692315660901937485359782003806766289745636994766753049881031711015013300087900830148503615715563658803540054475387077071827036064833189796766116421833678531386080596127366741426604820692332223714184822824773241084152625534853118069686846433006482363243127579281452823198410828161881972590997918575807335818201899650579831174935049229846686943692251468294113096115704592082921951135781745480975874440246374512397052790595079379587799147727804263980300274080161106259799833647950813978090463144590395351029303347623081846221031163068126252600305327955983994457381916160261145440536156690502461840414324516479502421531572205543279447798448154616010448724653621546849789356218359200595279552515591211525993920261605293075558264819859033062556694675165589483590325344342325069398294747063802578883705405465827578587566604463684680458581392116354976890114479756875407831182372669572377085929141299071357398562715448769898328848115610757811678230709998937147465309454134439810982460686036978475485818040496379403861327131712382998273856897473438894552082505280254780665293443785470010843409642721208732906305340170265826992275105840317707319145420861698469003258790628322270100653650460115188026459900172601033517510423393268971538280661598012065089191035088197833407904945230206257394489597486435239805825934417390897071545651613711777378511612716434532395952083098323269435122364045153321841488667235389039489697879969337490994175178690276202233035651941641089639858987807792461484945529615200019024656568052995502068135506935820935839659126494842731772433149262897414137088611690313063722130535624441198250021318567853551480157861872427384555519546530795271900163845678797981976622602052532816786928686513750710692743845894041556210104251903315012871192816695583553192364957446225717353255264370447590008853113746237716743513787831209073765520012234963410722701307330581018765721282553021947273535515257750138672224819000812629849111044443162937747179906124823508298844683512129047033656081079827133123101422752872102889789846091405606574542794234623677921763348314120231020604580314722603552029974450708565991172001468704437330524797400041410288867213498773022194513452196009559339707749496190617297600639761079212429204003133277237557184138998298171086330120999769917533831869092564281176999629505717007270731875754121453307295321003271499606713121170268390839050680159001727801567029379112360463784569710419971255980507246669723526013938202108780018880508205663803333784903034770635169236490723327698674077040329052147417296679893487763895532271838044637018364417594052235192647530342361702062516562190069752554859825520233962087452208799959972449074354679228931494614594351857544723667122928288712155062598070779782106369581290482769351499166586029294690979688179973147571159961673004439086181716166068604270091066777435832020394664978016670336773341168833468374575979184630294185550459254525060108447188425791481086761569719037800883524573454816888635178707322904186819441877527155107117508409616597422109202883527618342115205547961946372297268734775901202646458341696820973798082821529328162835791581078711686254293937109760029017022244746067429357585662926830874122623548317189341729342617009472162709176808789125392605962923584255119264264193761570474818635922644738200434366533951343782657142581067152408723332044615750024710295594615395617237823309196896183138290151452751690286623681783623795696295679621807495786020409784361016313405866765790174975358404857064590116440389529437896590751356133994372485041968398798862698174382332783236403786879891663536075636231084538570112778943620737802064075558926421879811691177241211445209100012237139513807680364985057758187816124516041545810237442110927934361124474049704974055388193451347819690968768606343202750776172043645662882555935210816466517531043724355149002872333733966430838797557033459031568250144128621321833178239332485975246317965163819972968255885623635396738766846398326464044176454972894084077584613961489949385565553026340954896023109255234945091725453713530414028436843909297901686398278354277720461255659288014884123236267046499448011443763682913289794206854365010221830348063791863884131308205752021560032124722804293598247360858867257190449569301629351085721549371976255989971994992509189786972503462367622364661785592431771033815051370000876301540167145814514844802950047420369834570971069670523522959032212412675377634333842586621949240413408490050129971899136568920909610818470434782123543200106353759918722637341269407340553349201400050361917091772103700383452071315251226605242610025786477619034219958548450344069258132540779292790674246074360920278085558979986076136741964567772923533664379134204371096202345194742655553723166403616522278319443482919332048858967836457072152223029117588719781415718703517052939331590055223826261466247016683313547680078926631739403816075613650965435635853967434161429576284226318133429346252994228807591777699964223416647126516482731574330584868062493500575008211195036571602622022229940055957432937979818224680919347652842607973320287725797709872862342245338834174798084160002480620748095927032074022110620889912552471516225596423503785337660412910406079160318264013614839374726437170921378241795975483237940326682928855175427107457533217261253868392399269066300002538126278941428259299079841153868692289395503037402321891100853574760267862471954125237593463646088989411955388556673271159209048504704065812858244352202215825142987984901976298023476720417005429821453099128838807089062958609531932075514973076553573415688379587850435322107243179850315595601339554760132964987972032940727053111831324221306613126883175616732099159109969296060162828477677357525921501642904093658498376486339191746495593280033782898537510178717055100758056400541963000267099566287289492580106452984448539940413565270059912308643294410305753367625330699980565920743092480506742833356178267487667234942473279897379120564308962280825885653995948111807453599438040973646637623245694705091457748687435600795842262221318777525021751967417332076118233626205545699023194634414307048510790191982843027393218255458883563858973302339155560557982560449347945813683447068575549917607852657906830889936671405075818692044624563276548673044183831769671966834937780530495091695819429679298318134016519603788377738419355212540744141032371089396021688239347962695279077466689702293493252685990050274822059181984868360382249965030195158308036862204829538885737728875363335871977237044545629115423893525680777144022586406636213975033087545308305587390510180498203273036160335454508527547001711838887496625396210048809824873548932241292017402132015604686710444605783501213959307819936262129380483607105721156758652398331754452235281678351032597740300410915838482248058608176202865404454110314698273056335388821048659157044783973802033532218209487053747678204950702545368973093976530756090493641461525370114027489392590093987401798369895941760212140522575150824609620307105949019682654724587557430276912653223153777612755948773192495035199769623469113339081064356550200427577080517701051347391593169535542710079020059432484289066835485766139452706566462075977642894622247094252327873867679368631051056027315088543221642934915531611552622329133685147902889453090883338092920180693971557929865586524137245919679297494800660929229961948474681011162095347446166481726043710250652133997900935220835040447268395812430784099173121000585210448387875722344837424368584300360210688120006763226419840529451936922964718616688592218044162940838418820072486312399198008481061829802834552201874660892563721472988957323978604860665675626924563345967444820913316574421013805321935402154194364542475487680210978635871502812890807480352909762357235027172529330701235420521354017595228733100001647255736035529986036198207526698164030003355934536755858235517260685915576557365374853051458345830287247370324429249401364849072380996698003509610595066538965214852747912299605606445250369440210104465443840340091293676798091427275750837903246456942559854630592081447393081603433996715569346555897342402596189862296364709974756526383086641596760321250552976888803979423699082734714390536623394504055555893638681423252753136148301923178602683597064674183375071122510343319978003296082074099693690548646078205567379668495354897989062616247375677313220455013104717219110938125776429719153383300420074127046343201169872370288670214046074045104201971274792276796223896535233340815073053998907667704706188826531706920964731551037172747008897316500639670574916554296540506547730210800460677745080900699988710363110503075380130480170013911227839254819788850876907841527657732045289956688482244931373333547223456351855359658224778868282490223211951059995111476372859564020617684260137118006527114630319026137965815062477844746453654454357190004303874555580143891297764393913589289108766260355195961146591772916160008723049495696365527121039794616221279644298819312447580731435269029164003779225884136572761664135858913394070812504996565164998076398503693532820531623860192131371567358643257252426182507496815885323108594018288873981126536421995048042594971545834149616796018976018699100787960505706916784066011066492382643374152702699246875204409275628857475526404298680305381316114032710600192651840046038394489090503955068766539697689830937422179618343108999731394247994368540743198416269037177156608340812105719031485200044782018659069446392334403130366560271482674928395076121905499797359168143177402568464982109949243941996559467765317681215396456251352947150023509973347675190279381571975595447229318859330622424256110104827923061964417874286969615047635461747919146754141486461131962412201971846125596027945041370203890575884390872939530192812387861319411298352865391273244171836190687263646777950194198156843226678870575189562001102482055037189250820233507949538373306277053251573820866676873363772561914341342439838912049313647827268811991954777326258710942648318960175813183348081603696999349403096797591070945577268222470191274788055617054969137667357710249772590380529114360408640761260817643435245104539085409123142626919213476128877916579110538424184264245195962372727245039258319826151628043517203292840128375111630797562916516022906656647240928600097902726533056649423252453387851298739499654573330584234263616200574692714260915434109015595962356779300595315227556196981892375056035203659981054833326441664749430606845844996462820340112695941546223511232876795994282007594992305171433984370577760886920038027292435712137071492571593970718174447529188771484768094152989152410015049109521985905505746388044043183415706119393571783821695199742366973819929533225806201755432911668651865737045041599038759166478827494409669489104719683327202784948309301075479428159491856801624880078210330855158085893198552700937680596230889541304683873572673131138120860574132637869808378978104818184594459675556651262782121195854663470476346593724172439741751502549661832452045384243844660381398798234920695320042056193501315748416642537343668433159556966064565750575403432277890267799375102924759966384578541356998652428008833495920528348754020372052440284945556225872702357526309891338200755411097642449050594064629481944563526364020378872413297483038692494195210125408581634930559280043273811248074867759349126851137275456346567373626987904199193483139723677688665282311932569886223162090582523684963206096699171524122850141875845006583934681482612511334867549262706982267594281363335755688306263734778991443914750121177228566100075455664953554353305794464947775904400090070418530000858349248933502140501109343986373767531885485060318159246767740481668355901524991867930085779184702735771621016360509610808857013873496477412696087435450486349803724834533919093182679214391161995539299063869710911617421835357065204275493500827840397555655324484753898710316993316992064154444871434519274623934730772577424838243458213791623727658553198615601396708148383753501173188667995813637112225231274398366009315187097452696228989569526521917813074388478929700059227135131038953856438850512982163229447178935142629012525815524204108814608766121446783564888352690630651553131369894616963595318185812509466118178643959226130965318165078999684106380324599329207974262998054731289373106282737469970976450377285903128452121651039657554551260206792375678026346009720619206977261499913653702617682764353121986984130809730615676850943592495331997403471865520909845147164006662674912310066712523443987923281710602585620524397334482579425490674451253664494090541732760892829460418143448086096776728581249165474370842078131073146080369406563055050923201185539962002612307610776757818711923848348878508420313469802936568912372381798508516182824860838985779324513175334139869251112401745743331491693808796327562359889772815673589797235041467565076406781860169864802452689317809834444557582754450732054140543086951478665019768230684945183905123493439531108796713763750680011704364139617323368960059557076826512280845094642968677013402290391939977920905704260481579316989548052416542939417670162050681573152337501313188974039351967422549386171495128558886471921231109297948764683067872537544029320630606025610832628556107993808715673162093482942909476225771814328342775167766859754683312233796876432655742865275900008895794970446595577931477483872404920804431562596607717379290616532425146853905067290147671530552179522839106259781880038011869840494541194315414647287766927417124205807329285041654135560614956329026196323985458158962829476065380166374284866639812416445446092746531808699445201083715112456746973094092189614440483102547110670451002827761671353919692537435478406229444082821932862001052207573172657923429087985692458776371790240395018391327392165597157074091024128573099034689307030009659719778512693341827724619333265355972052233645336180602644787482648636770081187742934330735004151009135434171449791472710820505157607188894316700424987485586813431577773474083843068641545872449273146568936388514935397008723740289368152761619013891724459897731061780671537839498815563380216888025511887324426295834943939446779179034777322875715245381063765340288520917615523385488660388354869725061860231575347060553790704289011152036518699539665939828172390928177283840653116285190351568635772588816172899600930919674633342907232973244955384219295372918122400298860133494641848993487203154186297268200527409817460911540522520239433404857916526552963041750088324624308008950717831423835580656319209720962954801767793340299643725370445582415347117396031728523452857044907288008660304696041334794778418411365112189434975905084530800105372242796707674819236023810829119380534428811463639818598219869938384212209055124263821737925961903105157308613878079765975209143098788993103729267461944404927710560047957842618418256697957393985805378012386004182630407090137324322220245767603991963575470762155397254666866533050051560886260245785793129168425275340874270711171997268422464268585547559556444298835069161155994387612534391240697754887351178329643924363722154083070304938783992771006821218965832097008139288351099974760149969458665356345150523103383030874448666113535094674747504914869524287043064979463793098128233084478753933945823145559125140084646845920811639684457056865941572630158607329754192650145478274719997964844628052012016736070725830818082581266869991625079879305455834788393400335697373827980946736242483333255609634868261556888822549282091529373342010352197902007986844617237185158968327167739650082044559008254135971711428871850056254126289542138502290028538927476131625778793758162500349820218045939029454954575680125237437516051913638676318047399318472396111837212087593102269882304884229894195659536374545426276929952977962868369346064608379734290664772560921605064545412361711298426994669159477884083284114532413533585859280267305235563106359114836231082050092974511213812858870798146262902622868939767113477463920662623965547197493827073534462677806283963982326687767345787261531731625112733888255832677906418123753453759641474926286503390106651475268289690094444575010117879107506766527007693132936583328932878602677824652016674126537604176814246700910110648722222576819555756542356939130044684347002269839607230359077741128460191320227473172889502727199642811493885506485776116266466028242665766352427950846391739572363800159542611304112380728483896408675360361535991975655213142511353707023966136591993917489171985792195633015685243419896154395113251703769692251257131576163757587045091912021661432188368184764384450702889594233086206397926033281303845470346255614245985359161937536184583362182244241475661136761578218967481386506613489594067561633903028538228887740615672211553264035050805402478469614415160381066548580094565832702547203633293446891803169970369960271133613582058379994842733870287138661470655052175728732057027600189921875835292386582930537744753525086477710694245744814131260369556098108340727236349032908345059525858669363325865565648587335679714817850123826365960809472783902737098732511326297024855759532163030027555477259905243647360061449920313966442208734353880293264151269596831566122948663983482088287597532724671887929786631277752539611011135612136065650452719784636739635425725163532990212828247778662748715872343833174969971926632703031380550208562617318587719766291439317393689252383154061736174106339401200493143819938244775800645804058269808356100064894142534556907994193175462402116730639604229481418897545122752653618882084584195991212104177096572342789999057640925697490317809356260481104687968436427648151941036227692278900212051895303434680149175024787911035306236740313639916775089259231953589232169379761187669501711662704794047697259344783939013690619720368845159237768969352715980549342717783654797013758982483368004109399031155200980718735811316049380471795251470111286264496042860566803734339507273371476676690307154958726740338791705806768272517692153621237886334030785827426865848948898134856051253476109874158816489151228033377863109637161746797808215068743068664915889510094427223670654394114617752508284168751443900703911168392211437515511289961013820453709624044191645540687029145181209613211561120447232580830963153467870879754724097764943215799848885161626069243564156800317916954293874955714272369913376682268420748287483092013626823792111857518889218521041282667420505634460439311827420601636555476789595299738408494812335664293873522111545581141031751981220567268411809537799920397282928232952874142685502203913676485402432248017483284655956241188655233592214047883886294287032435004837718760753635000388189928400139028343161430337551908816395394278898752248314094798900058853358033259070377713198144801280240289837801165405523604868721671184133964298991221107163964145785544734660290269823969619721607511382342673329490408512657692947696204114462393092646163150978191101757422894505106860511561998644890455562192576194392531262495878117143373335994172421423171563052793603005991793291392771775516403576884595816927452206687676141901316304523807317978517580882547907002558314064088147231963469799172492104553990390425403193512622916561200434158182695134332399646273681897293245185645359495022294168910630852583532906297951376329821655692332757009941888875390899959542173667709987106581606334109705874499904242394838611510165055821231315144729264891281298828136159890890251048350399683142350396761369800628215608425660738305963717830062037761203418262538258217929058377536134115588584431114051169119549632834568603662265073627611409238187966429241036500560542625395011554280721600574900235148018163146388349881140965194500086671787503296391387249818923072315392096796378009780381532738314176495154246637856645070867280631056044396172136528097226618941910797917686474205742444531159999812753743397520677840452465292140460475726398709167450058882123444242581920458611847782700814937570387951675551345777806417686613220456234324290162460983362817211987070005666402054740316559620809235072625761435856995518644406527336071068793239996643798490821974930491941969907213881313086552158566921232272988775315098474623545376641125060119059794110405008388142608454170123096475147470777640666443339501200448917505637285811100034111068842082797496169027018685646075432730496190287223383568464546227077182788381837323347055234583656225269557230674154043326570447198956139455358764226259633889240213973151943822796024801235418046292759138874687326661818092398838401553403539101776142663359983969576887561121726198823938149666518885752297698903137815055443954181911154294638819237452023826591316249470056768416471061717156621607655998027091388182166547119185763469852840244145067362339372446035778096463532191393592396097394327561920012990722867925412606077823693315119935581276214366330862484584140357696597316825746137819754397852958838905573111850736767168360949505347907114679319472743567980698340730572583500101369233918651643657666824111425180597680592206442567161572512832509744422650539011320491394348324164461454390970925943372290534844383498352867360987719352596176397631521185495226679888461712241710781617274543356283885683254666250858043818335512867036589441862362069186735045061108659460385090186581954800956663429171229463448424417009465240563349327495423458526530243650321497525759536792495924826112277746329542957367835466706847655221823982884414387759417781245617295871801992835133744020526037567839929801190631054801451325750575642656667224575966986934449672624738526512619765694431254935830912039100848940650016119781801663442303109861415919583760830658914150542234398359366993738686604028231514310901906764807349361753695353978289295010558940781770844263004973799897851827660664383219382875669085259122700958541210383500366073189548525315081867315031248232855513479702775551675838104785664281653624432306772682353420323401884134894780751763894519822138463349539698519327758522200977284469103865635529471504330764265356312962945945155941083861339151489658059275335114494380902284607148984825413297399014296413176419600855269379036584475823023228988047117445558301202140749183546710881295165343940097229088828229355370654665852977740614749821351611514906151350682803482805081034927385499241507368792936722538286946401988530285020561995442868041231767983309591645981732805011944002816710710166510024056472465886768983765768790673467412123367990519532756750679016026652978965273694343149928901869789891680946740693907081911585525871314621999218484569947859769689826087836259740848416591418636270316027322117240407514356275623698583222051398372816316930976398825290599442319001342276500209401208169227739829248888663679192458851434037767779992766703008224562879509541541505072785272160762331722630518153126104423298101105499990150079881993688277299126829177011121041566437352545681762742825736600950016803662611179078767061238793173379695361470116028870275294571885714911268761301948551754205135896666004933709417841720759495169816676182729511947528658010888782512325599840532656665754655030767392699615372438630387860038232297963512577377772783599134399402363119971205067515849280571758124301986744722390700055875042142423102829547225549579791043709237107302406559846492135704067581351904495201398606361464485029490109893842892557553771855229958110413634103699445546740587212278248344722685872004198528253856345079564244037803824663618418541875720661584762534894865253698839289987553170227278367101151841566504502955899980187107584277931569807598499599448862628864996866042811925624172484036166531643578752876346787892064510896929667796342374183218484912161904719014980001065328073097699074936917849888642719853133773588891669985667379549837062781502095279095424198565781411148432656962951275475564210844761130653882755391319884844123644509910311565586692172707548466369188424567719031156325733780941070511222020315758639423419389792810729121825556029551083367638495692861042877930195525109959072740772875755648956963486550544821033015767994790982452980397022263736032380896844284893834528772943691282491675332390952244260966925186987328058333769878799491512025600040416543564212787105102608726046480784656341814199963878622867415195162800682057561292684288945754422005194459826352545456308736042502308810785897516937413642784543723375353177024018371396969611785782404374482270443636351527643761934091474345858824265064190223095252717205339986348864113380069004873687068882011924904915899257980256761693643592501066025073414103179991676173261093921704720371305251383694688787339957650685846261603279367133432758556359571873766753512030924180497168221256850486771281525431709410510381887016407815559563222125858377293085598971146474083859506486384034733492569804083364761579420315729317197339969114211987352058951682415608717845668768006525941566117505009854609046471411977442883188612907567824100288875646012323009680521079241598042308530767494642767457607982818084045508317199220735068486844263984268612881571644374652109789273037166072867053703612683281689185635096816315646203558362731697056886137969472725331958694279284121666425635074516711294291091676876359532676211414644545058381794629991514457739706811022291640627433891514691434043958768597258305369312065728699358422443533553297138520750943347381914327173548831204703421235673487528921992803400078564871012361112911255131025640314086942993584983581685386797689027866137937394916898244640861385114546833229834451635402984665425680634688374263214132400775168328082690182136512568669592441780113055838694485183654468290547326651398845082245455400210301126961243503080765913621798935674317687055526348116488644438719316880813644272641770963643656338933304675154749876662933839371578312265911591979863222851802407033502775025429497138754388038613880256245088807616322278790656835765882973492753616728101353571267693069172552337671419081329405520559004229785023255912781789638196486970207365219817084854965299594282711044490205922831224961118737727137954602821568410741182560309112610330625503598167919602418634278369249473638113867203339458003930523350176267750702530252084862056088129997873153483662948476547198500977341301052178625118975224336322837117206798038905965225780664098605106103783665258482463148854300558284346588373967109469169082831630258730027120848966394748115829890111391073245974527133328084434624186646343106419262969929039057269293287376213789422174472887627907264450345587020515501827940787800362221859165297020976815109180902520041006098986063061963108226311018679202179041219541805154961566297892065887165750536719389616781821433336719965323906272149488693515341474272779458772170766336283570830163921270074900176586384456169120894774140206133842190977507252192885860954499797454104616925150988600653523509070633481636570542072221249533784346148237321789493542077258670133924443560991370810126556552810772185752798349780578453423412139933561753732408808398299884237884687716262780482080088306690527984922114628851528787262339620376582670202935358094633659637266366653810043183059149786370296124459867972331582017932260444725293816631153190461604737268503140917936486467779365840480146583670542310957115206659161040556350456561108714712703033480502305996332870075186159211126651537930299735103896236705638030142346831406157051165322962128628100024561227461876517600189676634887613783769953908267707770458912614441000184889548728507158292289145652350949915816188804309124931201724719485426132788563149734188748597182890583266234758348345744664863930998001795493624445924612731403731178663866539251388242383765736620460308469514265492709071021738833805962469164126031461539527000137585820531050982412029592464792822219248409371918921862846395930313173639320176542468490762594675935526028720809859103576560314823191464794832393998741714951708759262747153329593605138232828830120978235837140558353883906993879671618098742287109929075278651344072403739545722176113893593908605911476745553864375556244707490442747347195857448831243650589113109446741773324446499715408664591158353856219561193466677109480002158792718936746550876082391751915227714327968782462679929686896227704974127760543728840477562711062049828373729573792617029000126116475924521963856575796881317473782395187696656219676731913256545905825789033287070609750693546297015529471707155908974442155494703857522587396412118485503325814920015490645634545029590824976829067047909022903711230665834256999353276984864458761236924136854301270693063849094734073815790775337411493452715049642620701055354573677495780988144979221198473122849865588520798203493803667793957594474184472674098213083449063245207878498418222554212511638133762026049931954615466656033735985889817508752932302697490978409367817503779862070056304003064198001417368796282067109810990798453761554624169375968873437121376968054819761734189681016436193527159991647325177135208870020740242129945000561998746556044279597858023114455335220595001639669395909107236906552142158420458033114591700950052414789231016696133607358320108484965472922164579826827332564057476415520179335703677192032810082143161769183620791224194640412199327539672049060680942749257588226977894397779253930088630530991826781872168195399480423644249971471233049755662215449811831568114763484139213726547045877995932515091726222614829737458481213175090947384369312447391209454081703890384115731686697700309599795035956682106910238369562218364538191891766439410165592925555756217246788866053677713437781972319961414645445218960462158693102211451868159596550592109016581367343196504373609891195496008417949590414944521902151983408738866616361811983883615693275073970665393871743476064520539017792821335807305832231008555168930029865002945590543109242092725364594221946623710861170074156448053310335692947241060113039679232743830540438477870090852244040341320107270895685198864899133655362420640729969103081226007005340236574146926397059690589980006700997392911346900330545017514271983608099942701321252322378316165591454329785920969510996552529014870942655610997315158352790827176015635063109040971769246675963079778765096286952539226277160807227292445484553686927978654275738620082803149130895709095678997931636581008384475030356084899349287274939480839799926968682106490908193729805131207844857744983690049762398601302392798801257320238548146540536203671029946485761868729777953084153691750876512936867799791557173005627670330666273332175489533796305270011629012526205130710050445096222168569024608949213462518477755522104435705888800673198206062699569629634284541064436340943761876033972320930426189654830720701525390983005230046374911823285889372660447596910801749498735443073623842803559685059077220015255985667432708169655257517965759762290648744224017707933539267675625101697425604606879028285619515277514439082916842604919380360128227273795765601120059824935578084876546128599057414484557909649439938053310678116434219924448241649180921708839034171768920819826590570482465338044650161441120937151281605736748894208898534890681462093474662746675801901381412858863904501014470632334346367446132235003425976469810669529895180561380627916450060345799850859960788599399474168387194221767438290889725968803974100618736377371663968872623124807430599717638624176195635627318614967651362601972975777833420655711648877252420086879601319089500678119879106564614278803251795327604676121326804680324298418991761408027901228311396059751252738957873075366504076871653030552146257647440799555580416945807583999633119581803216903867679529401270372266156357825430355946123320307440927684743229471987363066381791258803069777924090989301499009615173929597807359490008181449647154613588683166415508693523904808587883170887447051284966815010328742135508543458463189069682944197566570541348774265946275365595901531954348984370653610637424340276882707130798221963028877918652517803868978377183008991256214832235246239294581779088118202266918705835657338142139191139026507266872959846016042529963878316204837663114918029563207152300861309661344703559955847879028845699256522106713281097094291146061531929232938248249695450221478537558375371630807909821520747264935952794528520701465780981348567006522860373422238318057634001829146845856050816877283331816518242020762938106497301689928068172817475363803015241686159149533751919485618436869925959941449042301846919332061007602467007259082039320459373962707810585844669935044548607103441663401724168220411265120255882963046657892591106512502001015922346687732314189252764432633098997887250504396581736596101114557733464441879923711114847578978882338538392778208888287624577581406395872247204764493483361955854672057524462824242004290491162008761362631907253963340935219172373659744551042029924300388748902265578967620716403723976641992980246670162481963714327055344825007374407864279966335835938221390459598500141295076637755987529799185672273497061675909074870609729675764937371793881612955586152170020898168420974134994741591194429428013219917039082326517017526533277268018137899356791845498350245239722305329223930548316019298275341268836782018807098005715850076629618510206524748097576024466875578335062262740935821851934110896428621121827557965210614344326614700672007243666207553650287018169233206605700203716536049656878147466918645256795734074418132200883546812761027926353506983818899750001141064292912794014449972235840430205025767486461547375091008125360681149796861721130571395385746185170094825069723635076999339952765489933568333883669289546704583442455042883524818208145226690302914680685423115129909366853691767963043717968709706086263179663138515839893475609128744481031334947381578253374150791221264351312174092430036856971793047453063412721421468579900736566443494415089979131037561977819699869107575157460410301306227837533438700295977071357480683817064414615741014004154487436327950292979716523874867982661487252097823667060087976312392963410790640610532442604156555642290135832864083676344277499650935516261751533122110742365903318677781886810178916964153164964621756088544729024644065233355260367373260066903125204740755343446232037003367032534711255118615891586031177417862803350815227196443471982249419772856000121463086939931060178050093641468328277651452812889012523467201618717253638608762687303711023571884096351412731491712809486594563968424135019756859052815838725571253569122202334433003313322178938982475353662589678140569946959089866079038841104435344790493385611681932671512839595872960705675840698175314481976979154968744702936196391712010038565629178123255225654064380745376312358416951810579002226770438465435217537779163396138708633083107750262308348261999314484179983602509074006186796734573131345833708246947110891810111613179750149613116631696754597173869773243975251637939071968072928347197594680583151474010310814649827258164829630257653902236100021644174735876489425796235402349055974821450163385660620922498003939327014781075132310886526851265822968805162260035403425317364927665484415887244743159607583295453136167720399280867325021716851392428983527627332776332497700918745516446059891128117423766063646094036557439472953980742323965864862865922170007149814096497529632068628186619301271457010963554871817675667978311249378363218312137782770431023127057288088017367722449629178191487040068831589739200537815904984817908222514106886166111716980923176461385160144862351127013866581875100190742006793503502377532826825853045223513806663448147035915286410369957900426108525022982078055092919111634054316130805897617186035668637400131480612652577720640584451758942263637054537785007947013766520607563423957079579496235956618449490105618677978461549925115688257048446043723940879760014398592111141141179079913108445426594370166727524722062322739351847117068875962174189599523903431795951562376473126248659771970241510725997421214739123338478144929199686880063314914340233491653207442030490624320273103292556814518836391353872016498880790932543450395717381217505075468246307598798442971858991500003218080275920747452099865863789080473641147348390353212318667538580354437642526667253548018570646330586901252233870871518331390337437556771679709219821922804505474863152206039162541419647425569848250375414976764350184167966549982591465122265247067635844656652264594634672052824743181544284060122822234568370972376278194389994774158534884692841629367203465227943260224865175438942655881402875707706237054798749235715449763474999141895434985783523043732665297704610139422493852301750203712721067285950732935913380324600321699362897795850259026672461237747336899872043028796813860979079477520159912696553221467505793857995627066677053560913396329593770625274370554774717633942562723836347083190727176658805990008100992190866976241041400336002488731132177454516313601683942715960878061909911160301634841446220453200318296233701920855823061052922254848568101415377656320478467740629514427344154125253437634773374835201193514225267444652497526003413947410635287627333523379614435861151951075560092632471359889722941888373765453386071182482277829808321703146755551099508512349012410478006446483386008656847389364910556871091633700021318822856735863813032186217191227440793658760458037017590433013031041459874782700257397501318288309360119987718327896204434632948584312331918388373000939817815606030413619277196921666922403278589794504915549965471981471343153337556115002264106743213777820763969370840095745663007408135365811063891458974121703649143318350174444687242248908403413591122364863710895849945330547827546908082710865296253121980139831630273701127829431464512352752309235076495471674654830665682093640466120372133377669627426557399503972284334376097804816815934297004823833585601313312372641739448585469732162987569293011726646011346373673249674741408913018886747874338681212555556411340623266795488928749357411431755413152356683046561426700749692978479561981106670096589542327276322235298051838705125623265799271414713815867278301126430255650470610991892112187330275212469954305024690157552933172658222444776267836624986091659340106192202130501977395341380301888159284763149769092453748498744796936886404628875882605078415150506713121305196537939531759122570897976373353708941417567907844819317016079294510876474411750754225495282473003199193594456522117016871813260819420885642080761017202658234879557314820425690098620987114508968182972486267098082656702294397398305741893704672346109250328957357892631255818635260629958076745125855120404264692127758601968518427074381072880616135776952081309904043401326133170941127050517702987467964062496032985341116127310796156860370811352202836013858264798390433129209706048412510207041399926220591429415843126558648985757218534465337546311011951461778862045509311447346071779978972063646626942553436256620137011512161095781090922822434807029360071229494131968056607055652708907265179627255346186512005029149239354281327707506950523725230034541811928182762621402667388577180148527530602051486619068857944855924814210244582821620621653980112594984401547739441801986801711959983331311171144026890596402148509898962582939741351738636719829114355942358742083691539738518102374487681952127984960713306570465536063416318997135185534678061045302949699577518328703188131985702313385560909882976026841558087809187220125499277909807345976587855966171677540353221003537779325156189227073058667261252125459218598959379718226096463675920553923107284838858913198715461013270272682170973097136747134630683391297759301021536046076761840641775031175820781857428731955986848080866134812955738597697197032571027037534608437029149735661039705735009246504466096793832070525343404913488581181047019047176547605286473205552560389972571870452884798967870592778426260021129326795480692121354166184226684678589474122737264557659416644404088744733540391590105921384350315954897885404501431161716979348718611436200328224053665670610351737858734144671819594689198064431545219074038263349468113375279485290008919833989923759510938896712985013085567640771422633555798491827925486496112651465108224504083449257460153200262623622176822979611226030260203159268350919729994131675735428478291334137642140279757040885790204055210871276278107100192626454043515735849089038114433689657021274378615534260387329285007055952331521808625865570055948956214742826003784761995303985606012827735818850539970403866965020602336479051758986942499249408873075763867932627011245313299284424612843971030842528225701074209027500345507504867038850014164448962790659358240697986847381576337516908309536215633704380286350577618181571524705622102910611228808398645096765412062622733962143643843775707768984286354383009303450212161347834998381271735310007663436162168768428043576101366140436529788975807869764366722507943006231175822687125303051002276646250253761862892920742360707936033086143193390600976804481154672426961872257733884531067700052118061538529817905420700162086591575345612306837278516856033182617039904012312567583390811833152451360115591739926671651788519965997198728542643748476403490437160493638877211560674136804735618001145511261509154022319783727785910182576891651356960738957037577344856413118978495633234322346811832798314627969987407578240485426296369122646527786728741180074616202511601679617726050564868842278467365454582833918467552464634115922209047073484000294994695082123368699138450255374468871557406273591921688490335012636862296445455785723918234327824785951002120089269440973056199130336045798639612000684508667520451694291915399183517556746905734391636301972709121636713785532222408341760158880204592450047150635897099530970005657625313592975664571787089175933712743283604043842407934978993871402006024767083890912220922999062729262918983907041655624009493030489499447151790572822236242236762814560924648629100211107006098317449457479359069299863437887011841922091956260974064189917449914087230751564592035804037003284899291446741358793514499095915898101583333537731843799392937406240748252034783368262814029407936498871232476915517330110128163034229166069383029612923769703795667367965501661913218259627050673308547970256663366345809061152425450092767100872895663961135778752546911728490156250638833477227497433454037184232866770740507125638531361367922550771451074769864104697690983062722121525393357704553103025821346541170947888206144468317611649203317637682206388566059954191604084444562136577053573537912014140243693460814530361083142571676027008092548084621990801782789970725658738514212216686009882539161679641198163887630591410594644326786395146238197012326110873541403080262207449282041644682230710746785675933993360099247861588785984158150607555204353221499560881361751084679288336725656357152552498889211678794335884504617673657553867692099449721055942621822431659308567911670348237082590632726278413565955180848443933616134102268056871822227523986782049044442831219073126398927296488451224637563472766643864195822166638161421383438707749734697282126893650392934536059512910771051700114975662129049388882875609156935375592628275127497425744325602035586815953426510319137304173242649236069065737566934686536587400094578449224078571594279892833618122049205614658315969711908089487892121621494787796379215779633231053436403354642177930737609585460883751694089602324933717780360321623278785758946591435443963167707789070170163841142265141916600530494921496572996915781057840629159177200153731478770872836773711604942893236171509074044795127860587091959287147949724408215821355113770227598388299516196817439440070747199614915261402030883554690800364841424758940336697181567254090610597713946231873501179210885211994932096406498312860655577906986454677766925334046801591195034866130450858081068104500925206373622526629810584788511562563945985672108228700481590453143109706997175250467461412155684760994555850644473655109379920150982304369576192793364085908274762312028777285645551431151882423193469510080078975060902525836538677881298268117961127665956409111099961012920174758725641273233931734184716562619403749786325996874604671242909889433557723678166573724036244039476036920924628269519820442045791892397567269932682723149252940548009841023567596214920287428968301762560581525577189012221168382243455924125835424251877584379956635831102139970298450800697213587810079474825063605976960201269670226105107040960326718126309818642980602117150439344892087321300118731925156557906338022997158889090314149040044761679949332496346997335028276415880574042298973647899902213510866383763025019346362268851078671357313558814718938000759538093893027834168724453210579356519974414260150965727587615323318902393913599423129206650356652809696288779310924170046405881858691191937712848253884494049556955200151016819410241596449531986247779629599943715014268854667313395571436537457871256391636370653698303881126197070793643216208558952351007552041444750838081319718585879561598908475023259874547105896565623858429181815732939687018100887305363853691522963900738082435624798656719261088327779020824095317601378526300893888279765523570480742915130456732420330720961553026233920544201713160259257660770019260718142440654453537438037909689684027641107909912316522610309217905142934692972551461262196401697959741244128305631590768399062148347991814020060465182674548875733077248673277463384205869980393702083825252747964290134579609808089348028307785958657877209716550803615542540372793765699522090297428215109772862704688073333315803126339659523486121958040695741505545747103732270694072947624697645977310723606426538807237896200061300614177818083402802991429999581273684117445760719672846252294991712448987330962868147339169510854806945650394378933563852267732099738435590963493884348286329855814255140590062803517714671195142981187082116727028824810737230822906128014567090329837012084039573394040324986964309487623348522162362777664270139707955352294652075006719944580141558846063689584650863405644350170460087505452156275918505797899505801098329953893834934083255065474439677806353895290633179402691031724429661638888752919125120082717229834792730593870204262665878131863097501504531795175615114349783712383463387943104551466237062528968739318783014930444309526132939363677069747296276763094048183440348424804475077067621464972028038934341046463030725681959046966221391651056692714051375964916687463640572715695076033733267405484918278931226816533016276521138969864777162349298389501255725998992433798264157928441166828418886889971578299928774253497980556169211467556995774567507406465519540104709612531064218284724324998017396747048507256655807295063150191446658088996243309335478462709259260684360059105836483505418174830696533517584333803630299519662930624956890928420304092722706245734048862699494139026625569679969213256030517024616932831528071270231131148671999133569627115118495184687052228023064822408213427462332286455825299927071944268787858053964059109865143746933430748901459031083226498538862023325702777539734316021527469906134398973287727866941029093277906364796654109078410782185694567089018792500179550066112444659045771412121262504922066322167914547509884121443709560224355875334425569233060495843299068844729002147742566464324494910461642962718231310384383853817453011876311416403334202334918399684115765431750002659690782018743536643663919954418335056494583205041306866741731915308137758633481597660584875718397819487679392883383312789689206700324675722174611473193156692225924452266185923732823872249332810438330085587316897533486266257989933128600888862686163909841897659817238976484581857379794084376029478816479112210901549009073614015857168024903378561089655389062649523462864471541321069402256217310806440029892083844187137542128914768346570303896420536866229135267625556052253798142632103742494325161573084770123308439711245325844309876932727015309122353290263841007715632984027517287932705333079476471668970686407196981152945139777977731202370108774760762293951824665419810822000682888988447888650004290091574893432709497761074516972617472517614971184429116275097343230236024902180128179602104203204041500300182246609338118326543400947350571190860456544511967925323715245990857142006179616175839520434486647387323766464751796387099428442516133119080290092269744787760341030897104099170265676340850182627514489069262633545597600584148661419712254582431768419199899205832344326283232787815950433867868283078166824126327097587575753706428489764890306316407167752969726178033335912844756837353299641978101557297720670215785173448669254855335104678142318597466637677269842067923268961039400418142275358025098318454851979044910787702539571696050863823014897192364235409121558881888355779711031611614329835950922627831734923572172649628365685258097960898772470325787665263106168383890221258801162183239843476157501378208293688487089542256556251493471842241803164126413394297426497621108805010578981715124805475867304502614389062459746542397811245819641868259967215104641714119142982743468545593420287482023207332855202781585492043501720963974305858184843441089033152794705279620224769846862950565969089283809731354387555498920958497960395376260708850786737318432640979144641157030179305116384963180827270999363998696366096003605268497005374891148248445627753398193138436752864668079220985470164781177160501532646993127361032956036677952954944368379756473921645384461671027305983526138815892552468513616446961577373879522570962354481578572719959870659801082884419224890271456588379515926849040174963189247766556574750552094966319684281559488153532226910616327213651893180138360771910736069878438892405384796311855224723755781401117622415037750685274848994193114674076545856363466813965729133972574597868376585942253905758629355663096288045645695383699511186859172011430233223638541100727085597653571710005455421593615395748026500502261948614875654621007683686446865939114812645194921672687184073094695924348279216191143141640221716656922108153844387306126609832160104683062105556477352572624854591694641215453438335587968884168082173967215960699428451380059792567540016146108702580482715516187826175900383008801077276180387358131138754095152336046159768533468036811918841201472242356740141148312782909916047675283835960732270526175054149065663631614202333219455815860470794608779629100772811832780978347892107731033295951855142518124760360465474743496020844082138611835661871864681757496594688918807793445182601159626234713064484632019426897494678339321028607776346729730633495706598403635359222831072049260030463677269337661727234087548313475009108610184936965521779222360614687082693596808294483273392516226046822406646239641860282919425247571897874309439432146675857128253228715374226916079431120105935251461121802179256129943725004211501770165781559968627658538146953414032210575620583121132557265834540664449496315887639173818149294116876500996143654040955818300518656488664030190782577090577631445307707327556492911795254905088353345140615278881310273005725363158832302671915527706375911987944469234243531550204127201662358241447793787015409024828078676173167396044477547495921465748732583515047642481637061536203829010956788294960146448562926725851289398346907525216873660806055195610823820810823702302326202704851796446486545397211518219648034401019334406139829577925714474506918716450812711854138414849256268763273457166515216875590932178692536020364015846041085447042917858267215454763297491887755632808703945682688927600020956982667440643196829117468142118415021066363135549947088725001977038502274941868385111425659785018201767398303421211670777585965715886465699706374584655167089050076350809535094463199470679728891312227912645607519765700521891731227841922165907169467268863795681953359102438437984504986439672222630803974011477719466029885737185109844961893998294240161887147388519587898411177374724765869625901750718598778024582093574844095525749808653924261231062137231166056920629049718647280392466125402635497436023716921236904021040709937140978387935766889212546156892663707251251659261365176812093400389587568879752933991869378118880919475097559110429591744819222357136552397299924636356362877583702344927865443135719756804205661211714884526958685516690958920146305993528621516863037890972019795495161247839646886483575185631987704901973328192355657743002328261918726058973511905396141797956200666082301798617953498561177808131009959584583532769673648373913790860056563772729943297545176036515311141050647062829223044062587272086336029288205783743981393547004187862607677583656846871414272838458994359694964665323295844241014353256618355268157204677604929158189742453364472328645033796707254093478913183318596068441979329417500882232371429421370673091598418431610226839689945786806977213862596866789316931293634147396200552008909194519466058530641448512891920652439559752255193762244329613348251857369979010825618754706158991665726000769917210328234032834054522313324540404661198515681260470173964976324678755924883542413777721158432734407799647561763320584553756405634064578857489891063217914057582278721229617373275250387999562939152774585635425639470104923687362501843319683638270638320907756746919687004372258382257018330200469222004127708950991629804019530675798715216176696425070961535750835480104665981339565542849139074054378927778963518360727511902733941651958675116741146681139051866355548608789692398397748462004309021674195995222248875118286214722742649147023231706168680253991750669162920655095498485998558546190735880359787454158398402223715070149982653783514078787676517104369043228642409274898401245573213572744235118414657797692416820626128912683394090871121467609962212458412950840118103269418470750624316729778996675936655390340470295054716104667548394333575017284561623442413757319262399598222542936963747834498178668531699981328912105711984689509530094809447949484662472856537179703735484754960875610414727947230719044611886747493565381536603296047256136149809790081430896384129112215707097953750408810006152890528999643396144531716148351919229691294459077701938696711150838981632879490982251288922505309398508016651868437885635551313273501343447946913704745707403030562857530847340215415161673733297840503444778137564828684180541086383953722844274145191207321590883792974645722139668849763191430620081316083714821899487990126475278477761724363256458376681911659559440216734338416585266873837639552539507615119342844374692663255623108233047321885952069847593247580915899067183782170960285508353744039564555161896590425854452322003134504690359725357677323899327137182454947826549031624896513222171309363999340747102682764194827940591880953640917948738266474407619734553277842595924909197226583874527034370572001224220690768341835428202114885028586900203975547810794779945659293618329982958026189477234334999211088863122329650569172951459040932665889148237899849772518058828026578146027869921176352836338606849702620164245160414279068471463444330737895904681734851294694558615066911526348279888747233267532203075751060569892288543742775171816444777163920775420679682736557472693588759941710375183695583000832030355765240786986638046087136013165162471346758771536929466814674967847967230320831138825169084513311390502996211273561997898955757838275361518183234074802583381861050917075356531979950428853515882478587720061981262667417989527196019242429457824956654397134890327051564207114279510279261880185788231400326222246395989581305557595708650305805526695293522000141187141584609352533064213677800813021603736646230939994928807689981982129918957610649149770551532583550258437685188967201116603933646850803879059409525467903584249102485081729574322859604883531953439012960046586176575069754984311113484994886944579185299038660842388835259616566161317967608219240315506890041540407597512191046555700167744645924744240730737980350885593437132981754451507191891519284840558969934880986839530668111561978530190662689384820731635490207838037887094379792995165926411049128962043058001053800529201049872479289088116531963406379674146301379797718836168689081940841846396254854638844127244873540580167352617514890288809516358773562708152993513636165795460685624229857533816820866684739756054207119184167399544415363925160872353528106000995186029976504169094982026041182986124184775293454030378385199754423872322789969483520224550814194372219900128024581673613912943933282884705255869373499846146746601123509577878955793149401968055313944561171751383127193586410581468338717697508051497382818609042509672054710765685943795201239359224938430469790156494070966898434355784865754289520622072455675813649992516936227602200168274426212027189122928150716949824871381195899158963919050440485687267000721149258795319225678855804431775973233672300669107092715386090627475764158241297804232582834077810883966289747923037139599459028074742445633573901934891843615374583113162475761171000858164421009776751805735622007070649293940152872475595409967547759853872129138203134773712896307214457637698170869223498163847529559256976313494927746068841341988018812013365713790379408411343634287809505521080358671652103083956089547610661253395769439992381281007458528389851755055480957042636428098424963961698994738306055192995018051828518559893028755882503606020587915619208023829238599513823704841935588169569166751357191467048022667376346150165665579002743161171550481440786067370996385978081276485448099106955365519433876085063638886344530968967008294501829185115027390900325274727495949818301689747369910076107851604505523445671313860549479705594737931193147526470064900053329625996867383887695450190906406165026368832850194208440248136385352715262353531998026145086886581481274612588362795645686039541048990209893576893424102974973843794409399039267791115351599675941608361046768519970352333961449315375416197197393573906264999528098931072942605618593095055147768847195815045689051485556993161915409559037037510667110493443665257805985244892184677589070457549128652918754356461025430252173031734170784142767182668828696110509538905511289353334572224468878353265024189585981225360859121141014335439870134686495118852783813324408440680062280499396848349901733420260681535418542676317298440619383044522795188236922823310211487462009185369147472396498036299293927974865291685563358131010555983870708052108073055140725873054545224797546636065429152827869299350726742091580397396693201105377983092817217932116943512232716653145050908237686605169999643927151996005985651134863256146586451315560106507814460594800676833419153277202208007314317946311498258475728544028028283158977786618773537168754206331356597303714876215395616618901877109787151852741318609465508338473627453499439796440138789718817416366107552192227007949728182598405321572245696704985807602092818593528996310223999289110527743706330775213629338839242986286662171003823806949482914464338845637131989181686477973028384771549266796984543376790510454781854566572895987404312697224653282310588506146453784383966341307808329558028956601732894400124207714782967775414176461907033798987516589469278797742651260794433476062062112074198945187895203228045842392286004707429457062087608159468411021709540066443373664615996384171067216181727011259682973892551307394439302214848250764537881404235777460113420414485260114435583748765656596598847787470423620320921201888704958059195228148558079157614638065933416796709716230357779286389939960057494898280745057344532483589677941630367625120872668334220877667630562196644045858342086272056827159366555699880451358469038165340579724156170959168675912779049193429209116016162352537024952291979161784834986717904140538163447420594581985629002339847813414735991646197512227228171509865556721040060644201410774826310452761202361334455779175570335951071622801167597791842060931948638481919617347734167618626026878207815338852235148616773630459666286028387812675952173141860593670214964290486011684408054426636368773199372346960603202617351758138764923185936275458031238521818660321840633389252272785699422734818363514835014627098023624785793314310654875937309344450730975681937281318238170481295029504817538490395379802986926301819694665386375255190260855881748542930781016963137501544946435735593169035337910940563899893486083841224540105474897395490715420540332926827839265823177854975135913680609767649618748879555651102622461886894567956681668308901237142547971506126907737245131055038775809132991508722143573258079007255080221374470224408623350648424616215075450631481825244027220896205603145302696318659593701313798957269086994861115343400937413230839650992934904060284218429099058735557527580277607329139032886404309825119853593319231690075922645654336780197421268040578901960142751958323761934288794803814188459860907682425397923569474308213305666131176214717128578020378775794549484019638365957906217426643318604472553087924298127038974299176459010701805375214107900282413829500803852809893231031665697645519021508517181178071876179082543816077342200991301293719891479835609525081168843515721823625340843618263730137622777750047975326604098848025523879378116364403674901326368390663173750626490603065402559797957170469952998946376119255469596563685023560471949155534678708323303028799969739525483119006569389072110544790697139979476922207978833387859142826294486152286417952842156164245187845783894229628694600177103612850557260722883229787559779895360051224826934707163619800682885278079203986022570086066663617007618956029614064274646214901794080895223179648193513290833949828976399642903366942141531649335231203867766988800872811643954865151147067411891125546374284026353665302705563389439868679089275812726768607794489299338165361193271066336153966699361658577723818341099121306391832818862497278962552139848927245573265359388146737727880127025721666279562018990771908613587940240863119593423607311753622292557237548330656863709798612832181966170130519255297831747252463660813147030211813911953322139116221933155374934963434330051511721372425911642772824638178133168884427376895855101083343791856486963735154226544318874192955367364749959136319922194843270125988340811326347501647306551250153798984513645321735850588976621304258617414068473631935298343680437808647931596666179303252098490554431983967978832662392402576445190592579257619839403958287318476869755002337269520305073723672949187320200507991612991722725681005932650534295219965337948153168234559723639794145570445405438177367180459583600717272185031963124210783629790849161830576319873097692374937295013511215764172521627183231219740770420339733730693433319596438720525799195846495988052339964475333149424292951330895572316686920091624011827749544882361280090683831534618959347742034936758656895857808897153442136608748575690174241764965903435775851053107919205773419122425389675148129445226967444303066428847628371212486694945765188997701077671649591573196801673218598538507570321426087201828958294994598834923805980730794286415663953687528633210277372414779144704543296187604187163556260009049414811991598495925379304265780752222039467234280398704979261067244419578585675905758046983757947913348369637377187939526185057990762404027764922656516569610835246618852034337412210230435657782013720864370746596864863382246644902225772682658350238713541935411421913998145492627213996654399613913058515196229986743078703006554700884254194930988048439602364487196419324094925102219923129852545104766707177740100478063342728176174570483342288306064515774808348590063429493284306648417749345061065927132635179584749816975442873159019803960273683888808798220350284317336866470914724158394395264725579761490343801423413415672325572250912542579326554225680626742788266117457589014222975349683506232097935144100106312584982371183205928310895495590953565399960746732166441343205926595339440071755375408435793806243361096449010204838464170076466975954495184833070847534870248279972348002621885671675518420206138750866463192017492367036852714751589679863380657555683906060319006087008855728601312844215422856708951588628557295321485372679801600455260304616265896744756936369516908259709383347457943854282619926084776671504278842411186684328471903193436998213473535583190795115995295594528527661098282748996031027331294047530076778876595668729409702405131458395455004633569699601087787345873293081743408727086060533470058062110795471940316918612632156781742484341022415347022444227644813331459934580460702840977800809213802817985670018875965427453192543767238460136225507850924166439465163894963140282327073778969828918103750777131734286926919925119550096411988497263480656628591326718143147874643831986810074563864972851689294048694965514269791993542459845686354800559967185044635452083686035108218199464829839127865889901508438832783752982960694169885195198904249741575741261716328275490502063693156636528051896464634431671974749697925877480135773933753885687424760536500166204960398137733090779469221112437532379441551365542898313614378522613235289645730920182712746504185467235918703207681169219319221653888762518311767685502010810718022502065138346676211322959283882170922143657145421414862815313366639771151900590552460705625290487602143965354904627049544773671947150354383103649760164172075734479844756806631208284047741484964138439647100982859437066229562874212334507862936302481068132243734064288887668739175696098919661608291304791826504612849581657469749853297876398592086061609390025042589005225699903189208180129553067216840931110175386911677360335876948010581221581705726129122796716868957695398502746421009774603262909165724697059802856166237661810926390480286028401809476614526258087291046042320410842839268428552364100685137604717978528543963407299278306297724942888975666585897695429656142334409653483055094940345970515168832842047673204871884210106695801628262548456400391012693911316957309379598883798438190195183634561237467645079433571928170676299834964756469001277411901999743025247222816033431667595841825199703743149273992658293124773891313384964795189785359426684981226470074293929423541519728999115740683171392447039371218435431762782467341552772424466000615131943440106308213566514429958665872765963456760960417953265766424130084283320509133463859876963252659646512843883803372256430735628259692366240452751794088823253335740802078597101839013567774514033935109415851194717509378584619141299616228476969386101278030633008532345285302024975861362178330540173573135786126903508613921246065588001070006487264203902020758019792182492374372991566000031366762133136062410513971521576028061455160540511977256232004250458334870818117812044175371547698387601444107465552184924311431741059612004670453385600583245110490266279703116911471147195538802039163016551234733304424469252914123300185250591429975752212576292483214590919564275486404824437778180567151276159096414199033037786197956575125707076817505883880448989174323604707362182506248411151308800059115071945764172866884737749595343353335157735690930650676661429230861257013576566326767886142503363311108740563185150491343365370186956954291704253673422179706054793826598495582265259885793547560474968425439272001831374736345402686946387860492012471477317104323177795050502249798981713702537639851382799960876324198030007809822162822775674430896068587729184604529881532224133929878342279292541089771976859646515105204472439278857922976182713336998065753247220415471121921862691460533089712839939865325017507365681289559599884442583032103400727358965931770160850250363603488175265168533855692051316993112731129732962453279280891264245901088190769536916681895044251143421821052417744291035925013550375506442471712192902289811257560748625731709761939218841667203782237877920561225690544623052789942242498156221566868191592708739336390613305971543746306427493601719978513892906636607685326166312579568065014961744909523609840208507993897101856261085466996611425138464395430803114099967426177329602129890696888468769943046561100857320148136841045443163899505134356671678271329764341714165574562329335375486556447528358385911928735545695771359517747763928754264583221948375023479876915037295475325361678656050979205016726586254376271629977426286238564947078102398777006962735090904723495715821617796902535608482688788208801820131363294663774737988312019767650399608848737610839546310447348256468652542650283805652280619207025295677562273939969838502280331799469447311769019539997016310369185825532874133810735684614020095410516120618483078151972092176635507296525758586806237298229813666727148786117396029806757945159829419242168260854029552242759863492733091729769594915692079131209986852407791039283345080800956615122747061035416099418501040084340459812352433446697740335369073044600103607296762945781819677807572434916910004194378233094190163542483182944417439805297256465562921225014436492620802853806677509312432954866532580733885611183343554285153490831075138218659919206985705765698934946211302163851020189645729020218437033332934838356786152368323254403750952934576474304689580383069388279268969006900212068047927441028765792372098684834582726193480007572521897463103286542638028931024388796459930596284982502833966998247349124742741392019706590646946390960864812937678536932593681906858344051230821316007348754855369576983219415661469224479172195470681161385177714254069766839388135174626470641209324019116250395710926813511326602783492467383160673231094005956253453193516332351097580008746840029859473298343156101744771767502613823368963396244590302841918973787635810032471481001452191811144250504069930046533044232639607680942518272615199280756568545171012348267987223864553207743595661395353350478610216253033236457656072777696061361433946522636496276504910620455576813121085388678346336266706840710709072844022486598013328185077686789922370394173783359184430481596570658004947499059398643189825415303163772285320578574264479966241069753875618796558506080925250719315682345534839469959841405818382525316446667421466562180971237155279547454847422394896306091679608543669819382135126039422095032135188193697829012057907662414966538554883131572605950408826743656571591500732920152164334732043185823152407642196271640490227930998248265971473622881810412445496808999894244349593548296326239904424037440470479812962719622623293984885067405347194934764551478334389192015213344311966743714886070311249303066091445543450350216890607143207883946259520885769345363383112264797650266094890027205423533038147334594512351811029120142431491024758339001404655640957305212695766371107648353716255383329443555416296177565486157134606432994642969297550953728300150637438031182371895369559328410065124757123774845500504416714989043057233585015575719250106037760141268206256911336486174618098079771847374792653556582400882004066816979541899386436501101063834052013308763824679855405850964021910181450682649797477269484850278467466691940046195446175260663973080081910282717548080370868711959073525687155134360343677536270382537030042365656888858724363196258366200760274512095130871584104327168925138581590374759302253172826722055673012335474399181800859250230339185640403063179457909281004824841358650265665622131457119350382535759492802675342937488772465351128882938512380792503772773562188709215186557323382264451362927935219893317363010816004426516551569617298727380790439275088594500395407679803465107145879115396177162024791441097835167150954323037723823012601121044881354752193911126355143639716063525179204706741435130611751306879419011322139025239869188657213192947124007867460670693375299748333510653270722293936287970087270108657035646168582961444784731029915010641771679022168040828615242957851839684402727211138930359532529076351672675043138155363594791770496731785141728047315832457550205605264202330585282914290929333031849460615266934868052805771591880779275108603441903230119667732591181112486298084144284949472959627715749312587961143865229975800400378225968506810328464919511338588387067434054833207728988017933875561194132071657890955911729366104964423733840120557478201832992593287582161340303685786178215760947116936634080882382459496741537281283766276475244249756577164379097153876799919838585856042681677026652009618430033650683756659694481081226986848771470242900064298024595115193559754014608022612608082614299773807221573319140662775945245290667165511516615365969769604823704491570424309041626873228530532152982367047540039663852883051133230772286337244009173998697981360480723026879528638907431766484683919502810894860767041194282138676050042299686999074356342254840498766493582540239050252402667748233764531765239305100426292576712729160955279320133334420787641671831181838581982175320760601629907049668189253099108024439223757051801487929901527985038725165140630201521615145215042981255037761746187815330882263297075231821477536041604840134540780712123320904684969450120391850278156080576635539121085906634915126835056887633653259968946219220595828301879253044857677519110031093756594042121065717071482418415840705919587214455782195063777426030760616540620864408580200779374024729535094116388810272417392685248159811923851916456543275111991737154480904498310909181558159581888015351765509090917862531793147442024225296332695687779801000898510888351126804442547471958150626040793518950122722881528265229407197534945602932158670812409566474307071151921148180431269573362771597242363879807247215948179767870402000020797342591368015666205163112547878450874110373642050915321476325499424182767343727211528546702337618147465049145964025104766317968732669384691298406686624497730156566087290721690634211432266393705513533797008877559903627977179223726858434732287724041610938368389408857634914663598198497656092631116857837200937529237579934402170716135750167195939995878820877601107790898648202598113562171248876829125361728333183811856897645491373236679749535708218422898947015156449754297512464015056738534496473755706391619193578720520835641145176703533012081126640981268200665560412523516334763312138986589755152139804674037557059682541827843382811709178940856632647137164287057205836318173713947037465801687433054836747821104219323360492071732594373393293184696519843646511916014379512974302700504403140945418607365245772029442949959769695774203602888006171958280068998110250202086456389613816928078275153856252855833308154583447483663033364338626262476392896888043368953665807023614315973443699047629657901568540344758828602704784439277058277378025533237969491392626464628396782710528767186525113702686524051464852102236423312070105627645901516941185675163880074488363292671295651128108801034664747650304168765007937961736982962059176571662919754360354502658210733869483842070888224991976778836507288327584440862289077070299802501334462399479946371899186548066554502836641613595010831304198271001710643308032097140335280459020164110282538662072699780910275197632740964959322604827249284539319146853835259600240236304927678063585825336435809060003694167649989826378215072423080622409118259057693325329527549949825616135798152914900330179157845527580329517329220186119309556670857043315801955141596233772582491366211684491404077727173284326841266698902209401404737136596735325372775424381429838239038747025558601938915540565698604040787261438790348935665173260527163773845888685650051522032295165234143297101978424427712599530042165476623506516090843893945427877467340098926343867086064198507421716203972903862183585196879832332986736476036117281484672322025545604497197600674517910358191902932626557891768662521835973891678652186604080754227666573706459303042794253940314173729984041807505006663905910627504324286145918476788595584764130605477146295192460838888889855169399401770220947514725785010710968558180618328908500201635196326127366158909694241913259470906007376926560325613019410724837788047365207939242028620495644803958064263492412396780097200895748286792906646645777609478307475228285833684470191028928909474520692513781791175939045500869978644017542808465683266626601811666762574559468187945213880765559888348569453491084953096939106506440212230174787768792067556247794321138432872846227745222362337890909535129604284209545849669804479122255789524128828940879777901925583380441005152951650822884339770791046923323644992494186727145473122256057797504132678384542941920109546683273072435236865938116904257193202933297807935074165425080693113878901569839970403278316787001115915475610467424956304245160209558626842821598669492263808214512853518659486679933259897745704346528469459692293962993038481750768719309151456083454167875868867989812370889572625111149512694664619874172480054784236779047055679524549668636993996475722465589527422066901873054938767162928093583715311197682779314106291268785796066560107583800541276861989672479050334405868983731872114269277426110627355984905741284107374090532566740200606501156858239496342486725567129983497219780044045561976693305780916417709732609286237125312492071639585399974708067145871053872857521210852713938900555319452262045117982979558436401914657952426180703038106300123791811106227284636726740419673253268724442926507832273294213449980401371829157599007607187287259411730954201132533008337354440802759847692156014422807656265517156049750889335084502997772469155518175460812426659840403629151398547156848445127961437150279541571756231137814313580602731670999708475068891315916365243578903189653691197881539729616072846762670418313790309988454596576725980842564513191148417263658316445278440521375785571185505351030954409756248659732434702482761495531905610279725686247032084243301028620873653742525545592341820458189994597150151541650483613458734024935063631506662744914996193499399245290149966534222442339426411508945364138962688682848217430663688050229992458004696934435183296438764434717966507809495563566034316310958791711641212616513619035118765167526461072449309035223339199401139877806401489383856330878553034118546590916418285849981045032211857087644269648800649831981212740580966109578328738048907370620385879986359614974529179397548191576950056070946156281741551888335477076903028191665313083331663630230923130506720857092460753088358177398023221453678887433004944613431271224994229610555498128988555995794579808167435089010733012566349844705003317901697509198748539480703936663462042032233405085468849904482918447814010455490820864520924479182856543558764320198721377493570572693531622610919994565518475715289253928274109402030076079749772893254980295851099266237772967516069731396803328058977113621401777444654673657423438957157462912391040375785883645034177082006638230946943028779017283000705794028256576379188003214201231930496675950882537678358894856783474478706726294827073702520649894764438538394627292543065015310575138093982126854100827773799165833838908475046246699974042768669656757623151493874053981230109491715444994490429867033895913453765571651761915778169856282515186905866505762031918028603041870750911607392656872800511972324437053626248476991450546122335550874481909661121901506916200550598778928718782965865946514433641355888533089526797484894259298520635615470192484579732622532728338986732421543426574660468510444064282897562310394044978724682953718975727888331329724125700888719925057287660661271878090882263697873216342630967488226461537850244412497006707060420039251029597872871062983498342384594359997748907214994033066178279241564084452303856568069204391606569792929781590222192943596495734595017775883073734508316200720295586589288854398674516083536722075647209317378099447058605566399476457549431552201594599784812945285507755147574453529552562564450942173699845571833656920290072987075308273428923507267171103306757074017496922499150721098833446403998733690491848864029850644823523229262789336527657493849680355594314875908375410773243716707898290353775070292533628026237801189403180336197845518096562704350285049553413798575987219160652108460522921559819780349681172433605446308157009213418748744219942098446092825978054311400856292433314564232988986576479133894870504086392873747282185622284825923811665210770635122801503136797099658634328878143637079391972195496702292701442722193044929011548906775350684434623776370656663916006689150074940181152135540584682579065141162310467895258040043519455075666835709734640564798543429968055333482631034349496654599865764103777423202963827133654570066590669920027899663754070741165467456600254871285071780166092320519079472655836034555838668714515843116678900451413376118668829985278197738029493143905685057350073860685711500453863118943708069141065110707344907195853413174723200612257420495558982499003458053898335770884181947521049867330535577092844794694542230236409367895694182577729387981756621818026193315485515865519492589509679301049031144895622567357818003483127665384334787674252578756235003195098010752014907067222674981984731660823994277902051748831373391498746647991698282378674617727131970296679980400557530069065328167690107428754072751283630540310897075555815874157233246311938113973605632396292578155012401366825044860117720237511301255763629888419246355476324899013686410381545308179634293722928211343864650325256606906755244614811064303427877304500461406949729237720777404164184030036460968935148895652493365865364795365353393360478836780182802622181361500101239555395962800537053889460255082485802110079917817979884326323164381576567015027259696244658794865381441045237114163649910136308043600159635268531243212429667153870568323266723350921314074422762799231759213003041433118343676279775995763969467871204698828963048087844965205526781285563752729040318257653957794268935790826349116465181128800543435635220124646861208623059262578531808920203387312256778297636974485975443769958890936454986008424445595840045588120228956836137499437601587881516380803487344263125524246575684921471323031380870944826711287370416633762970065746050028545399054676080823478367763926681372027808919176092068466167539601808328205034641800084363542782369590195952969186734654902657183169165572067043793646195774777646358325379082428157246706076385662372266150276511875401031099228591619940168210320324283180575719776609865832228577475198681536770991720571042456129858755639414634198319656749528190115934460834267420101551227152660313334583644463442874995365763641984658588257639628956162668478575144287057983346501297914888220098713235736948416072511522185597535918217228875107166752091654940177361412412195201362928067743234751201965209720631815925056428127088799060908896600487036715258979483446513681416173097867675762737926537807216458472262676727713031311765388757326051631860163606366378152666518817759112004533029086835458185438323887796080666721802471400314892407264112824507123524116246925575342490976798393930161467816933516819149163384841934137010374981454112458589380604348945287254553731834125733713254469242823910051914348479762863869529260498737007818893783942332942204655976404337356472648596518813305771903907486266118413617489630475037867369545303262570446529417401311288178879538220307296525395999370886753426965254836814798431809029276932574688229391375638603738813663408603850179003861780394200650746694964194763461756106084173857635917919222337667012709249590404170526313270803411134916579132863355688850997433913144761090999514461071777814052678431295027596240640374380427533494507776001213216331011318672318182390159254064627874650042712918123777440051628103332960903913313523242572181697580184863778408254288872896936222929158282769311237443068918888654558785416653837286607641951783777715011082745221253500797141846050526794718757981781172836726487041104374963336121422154022119648255938326408780009351266366511069181504935201081118139037151011195665030393358518604269400745667778249240369784046225208746618542859825664673859319450295291927723127679394153543732268082657929875452990302992662461341538148180115540982674196940106144236769115999978528793892789707800986326540989477720180596657874738130862596681375177959646575974009520551715967686391808260301603474466340430211895847389114012061184045280044690724208030059454369637743636601511210828108387285398371504882654808433642755928938512993853782690217789620834000978996816454764652630086321196358197378139110821015701002347342120055176478747753559653099408734370105374746840572596478774504256392749199879565178249969303295377193104863968320693425615109770223590924122663329707752533085737379871492968642083013563028175201040506195539251304223372891259962185549115972333428023894573650267990090071049659871319126591640885158644135854131859778106266712180978024212635490927857407328594474651847369121073347049036032910415110377192133937830020236860198263341032764050452645411765747509481234123925376911436308615739600103220250188898872530918976266829955034666587405854069227741306153510275156412594485345280998665391186556941737648924024408080397152840164847557138531967572279565745170871255770249958471949495574259827140458717219231159794420668245107928645323432925541675246000835154176854231024682474399852942229917630776609106026634451958812362922184816457829397704088994904147039024639853969360035689800180329443755821247228669827428685808282962096700684196578362375557396917146445490883240641789810022968722751994753478453579618136733130126851886424535040572090959925849877775879278247843220345888262008572792771167169103298161760772869376162356113396629821062113568803490277614904370979771457979624750562792741047232832499565310716414687586716790212584162936301823398728453891025220486556366830931008130711515690046999704420568997151943516297464127287799122359809151343602102113301830549416602688526307842545852086692137043725139082185059440243427745463301273653807300564392011074236638384208436808785935380460680226787951191331350800861816849137956855742138062854633248290042982672615739446316425419736220835122678905025104928368902750695609926019570283380273563816714969500624066771885808011682482935288454099229980145522780535870070997531590922046896834281929240861138706844314893931150111968741616991645463650695007899697658778479434051699818025500516766571384197852613246052620078753822228216655951774485393271368071765847673494889471737195406945952253393430442650823157362482153696278844245425589903459490618695439396119855702465500836684006035991955697564043181904847716066281000696534910851500777309770084370286493948753924360827694641138728191944337839232233198871577653625672204017856901995046641876986648162673357716426006588802290182082124209090614025590039446796499382775600730808111977005796533481292735178644541919469997936281357689470674255077546348166751357334125043231598555014509770993715128917151675646713986280253285084058156928902528840624575142896880831878796751530620868427036414554306290950291452380603209726475639724348123739983409147255218243507498669785653140929021245603633870204966969401134726415087434621410524008353887613106932091700098145162747088001129754997724972288524619469553863429787720563682009871446673178068598394643005819564049878676456696430486297792616209093302805655033638422753943354827727619860622787703316020056124401856344607000065647142857257086141765303625537541930400794729809773125417635142207738824014155857124234050506694210750515603182291999181562928547349014659367049483860486175246118601682167004312274762896273613684151930122233627752229048544771095693356563421969563894019269996005908408890498958133787104071319556039841864834554634546413943427747243028407083264209879389118336435334874000013502338637479198637513594925456698926987529477281545509877161809649790205080439853743843783407176360865097822848720656505871364359054188618895610155988501355880717163448676420722211302173244066956934903346546522815077604439366333184317504842838596866037287864289560602337460763222057811591848954251189713648419924211157167658555913637359333356640427078061347422113790483100411676844533257975806827577331750884664316212726597211432675935650107706647635162033059305292438825599494030478553648949343830552534819968810693916392083477400444417268164985703588813953401431869678961557809467434598488144241782506979764846919222818654086513833557842874929297504966514026080917739507021621748926543707555903859090312958635025709158690248768386186264786250924239639732633036934963255851211278467194331989295077708761759590093883372361015648780926043131884673832845144930123180184463589628442566678890652820077583777870285328009404211012845000984737546690671348450844338730395536800694496387635843837859299616997124160482918020846142203607942918061176755703846355398757651728461254041571762909482369261808652163422322864124074979770469932633478217238420876011821932922301454521189079039540107073574559925248390156878255459443452103745833053901072091548596859527651025850936887941093518845718210995777795426269439728817018158234808737529493394563792850638289204188665440161227910064641876840792021131870628874382568777794261926438733279474389185609116249304023426730950715859026594500429978238971018737033843815530045266945196493934127789654040286240304565960660414810426065744610055474780673472431890995223936353286631961301914932603693387562261519815485316345015910279672521173362034877077688103817571886685405310380960293660039856174565611074649651863064769875682496790057824867248580754751043517935644600417816080025445254508425197530474537978817542167177439195165557594124328044263144576474833030761127561198823606038864925912906507711351460280902019930757525257316487196439807123629681004123993656240823656098543811152061283709034377535237819739256284898630063614499407584855564644191064878372847877249391440048807589037199457463777316687752055530201897838638194102088934110962521620479867700092601612558520485554961584386788450534592336059343360150196751847064290525999997620986489534255330193950281156563141812158010590252556240544716414192672904676016366023148592125857455652645186079389799598497812048826236782343089387490458537822556799430044745343444201951219899510021040844555179782526322027545913055242671531565418965599408823254972322951394781814026620475385787047448302689879477963464510721809774737916242322140541156681763906292337393879336059972155720581332404076112256685343543667459182047408428724999785889504222088700496561135809492052714843527829149527678858630411131636952287360763159385008617312277000546146705668016411527927146688546655812666160470175792057373303113339973881963448851166791363204352813178686038115595362195312707969178870321005387271490804852450950807768374926848560983949745556655578469032128058756407733989230623104757947947655025882887662046215063583970525929075961467947636803654744759497341170299889342705694112877848868656953930385272283574111996747871902811118241104281667383045467768945454502799827763425282622546922026070969094032727700129651958390694894919816939298692525327807950332074706367904289117797126698828072686264673201316723272850729363840986800600080093351846171557485263576710770297519731746325305746517637878923762034181363471632802860809343589398247083961226476174654689049793882259203501694793143819455742481937663012081994785643360273866148332301243670165078436622798141046963453147285964156823384375368269851198114891711253484655063531310521141461065898353948750456765825496423676429626185385557071898178144488702589316518936304952344730963609655742924882821996591257184713167253295388222080417051273083352666621652355518632548318246160204689022933442375892935559490365806607141638622899975245929163519627246534018948634825344186199918264678721558850434975744006831614555514684356568204489904278241776244899005351066716802006629567342788477469031748577923234859414267862100292945207453198848534344960994721374426419073152933638006027573971177761906222196288181769582554709584597667036269297784351976270996283340807327868187947155980405649475969314007417499020368047979181173217433658014508919012529562203189726676892306980564530080756967980193148668694902604299016005974980999109403295013962378027483556189495733565596182795004541950178696895711916316639572603966703429339191068307258532212301724804245621837339908519842254231268274645297442369939564006769828560396044125161650515317976767295513665513346703034685686904267734873188827141364444108685788880230059192952526810309231898767076495442953348441790372816977681249681987632886122823812863344940251448797945536395855161459640207531039283862022095228256130246928180155860686668940473120227084850398133878402124554507970072947008186358180032418144852072882423936959073931258347871989353626395679147663047133692562274323793531415415811818742297693128501389672693673069061359337607128011927479913195078114498470627894300054145420047559410249800686107335421817762333690183469235631511334039703786615558326401196441881902317298830818666598868771827157800409122221429331716389466870260866098592802508208029719697448242374391489430284319489353926401189660761446839649564486457686854891388412759710966341752237511080484314513062240953554716275800105651000306032389444116977028546576734591485980065907259964501657123151415495374638287692426990310876856637069188203000954579854678315247472015396102483008549782533729707617489943776875282809332807902154402358393567223998270957975828782496207488309883923347103143019761452597314801143551486458634791828533520321151165585967173620829064932668554916307121210596858553130643714474274914486678353714303424057557135954049285794512387121808021151455582082854804461537783312107409370882746166284773555572805767657438536090874063094076870010550259122402986041644922435566742778927375644415094499693027661046346376480710622408417558709533386333278757248915686114287727450980897150317946192334619704473064155742937248232752124615587149603631420274483894347952364500395111798208683886250603422444854331573681076609979223053335061798206582942330285905955826216649223409523926151315198647668338515948159941326955830368582883456878603699945080305836386876516364037859506984071557032383191070442725002128108579478701112829488250744764980605813298379576684890298528072813447961951704158438747469244488709433697931130016206542731470052472222887775945040366534019317279986220752906956840316175149492457775680278105469468034983487181219756764881808543982262104663870113135546092245116446325416357847105907850567843296038295020324826413124357212403175611914270974547562489932476829199914840984418122604227305638821032379107460902189348163997921293337530670712625563258364919070647967825575879933060647587963023752706141011758164362141988088095528175205742355850265307111344650331794251633945978855069852396125274163524724905819456233348243139014104532635322707620631280569928370833048193724246947878271627826149035784381447476025208707512773921838198893516922062910726177641821900330400437282692710118714020613677689493355012630308521881306821241550851034765993094759648999309236112799384732785803710561830131305009600757969184797157900424786851037149796741346385037738052482045955867694642417716305253867252267816258706462679350006463457601856226749275296791147802169288836362138022610288595596131112797175338405235196223503466753195467515916475080122165185246929492723603136759297154856181520067935679153189376553509374817687144569974212303005291719328736778592074296594672473812529919162483796997855839926010724682717298368026512839295946673192438521617603597765919341147120381472178697827278738543391786274423403330861276639639125514591401528072192827685360793470838447803074911562813797225194812968701658641773058368664339113355881488751291981328391619269106958608259282556160847564755641349992166427496770397648992874779390580932988471463212878348669434235191369545511146808293482678497219519907494613629646794088614035961302889453682299047545260859591537940550709200397776395064559092462272482075979784729301709985963776768806008443437263407461609065703779656456812189245448948960850749542653547843770141832976159291292156381714345815915745135564996446107177871526986731452841527053751311743482862848771995136583652644015514717741018687835818940856494881684071907788152320106823159708888665988179677012430403843085157082346834824006819017029730186045343649437819784504372720667868037063410065434366272398343064007270205254028073561177717436812216709704002540098229215150748029754809617249243537978501684543894877917490926279153088680425374538910512473346542998259339014087334581293102341842527660234280092110812662092846952080938351996760595400622771901759299545389230149084258606982002072747818738672099941275933059970943293153701700862618368473530719655513134975281447224684998412725626061970042980793939122630261744620572322768243512442669350462917778619411807839363803316297539378421461684051415158956795783712265722605643086555506468694353327055194031398816235530671289125292180083026587357587240348933769268042233950995442400079341005628165121072244604026328773222632835327051950998450289388261247819351312272255866535986038525008003313478771075458299745403100575580497937476762320880419488387006945177718754489736324962684552468017126518437834886185719670217865173151815555112520729525494951830983710116057085814971043356913425097640013297857951411417134387847357339157190049708886697542073409927170757024646555484950722052412540255387596443675188247233165557967777960311842877184761904651344953993808852004632920038695457575976874370895456812713997168806854536157602478138409951107491294095956041133785760656433050379114062691772313576832519274649039500415599148379340220094109847105417627308905826641865565884967347558460992508639348354088113068005058363581195543244280711020139419938953714090761738397508083313375607024312985521186484540095288102795375565590434630826265837306593628909844119369503101587989656492503493780775270612031291674980608516449517421414977913524271151190412446346720457126911453945219713529130607891077196809609254662206825750421323286313962581431457540665053321797090966064488697962894894087722679111245588032958998172856898514308464606389414596695422117719018522304326035455106046727252708844713943540160530164931680755950510349319225766701258196307326743276690349684635176352491099643988700484853261055434126185317264928168723456886083345796216076628163823096359430057550480786469884004954579817946682987830176618279102543487308583794438997379569447060110198725217516997792748160887965995079187872356752629381049186387858912969478221732248067364403061424828196294638895600694056256498414826413135845814528933841725479096069470381830892341003968552593063298514948061162101773030518884869605547868804876557051183596021953923401489531501150201604716294947125294427641131977206203502086776125794736328469464165801279744494178760085215209554722274668842839290635196540748322239410626947780615488996110150049459236344221146766011131653731799952705934619018209826975629877838078815733991953246709921754832495711160188159717245199807183893305861128622954594488139070368026439994433956251783855212941675965305593823639070652344798150562535718583306586420789062793216494647309914956967632659365158609674519133315550423475860368368352087421104719440833604411047402356478188623146617868955299696560103483995262737235192983986987492073656496942783030473148752056545669857015070689707504640444499609935348504233192570482119763418936110999851934002331825442768083459781726609379241477145042585945696464810821464646481156709089008127280228521954369388565014586092997153695893291877504939650432105583693146469756621296484497783647478894712907050326024142670792181742279657140588742596819092686382980917776916014801068495960829438798944670643683584114068741713220110304013761421156698824224919691557292290483125399875052044359100312772771622238960938040299176911048319071950641369650834299195564787361923264851454939254136624856151649371373396062995551217119490475765760857249941457041160061478077169964937105543984641670950803222042197585761411911735527867497318365503928153761320798488372962327271771306713348661003361389209670439226103012788252524052121975064110724817711915343823562829915309378679753043843987385355214106289773644546542109064329176102953311024323915357563274068426901407714544613659108797545083734838778302423362215545369514587807708817603179671828986076165107656549194297700854842269491716259554736115867051656117024775445894298158446214691454401028345037627133632850643595626923496540175624849129196110461478411665894448453226491008838374953582706076890881180508387395539522063482116533118270447871141720618115563913202187739060327701796176621900226598489786171443882461147247885314706593849758813176538824917307471390587856201712299147103326148445630141994435090227358394477757124166799560676493343268357208761568488374130412126443712241004552885664333221638640899113995458436093319504551227593377638186118714596859602271313153165664020832833944538519340777374341086943554461370516200843212550848358848778182267665729476075792821706396079309231204589215666129263022980829743413796193894910883456789608839022131244639455404851208061425189629462079860244300049794360157341215152397678719031740472652430531858365985558783231194005039919033209679535793814069980261964618170726140217167837610250488977073358041816969566791834148651982146026997468223923726159623648401399045672876759226703348588468567756668486563263626981542799339482542038755487918407235132153075178806587113036964166048085587513158275708498390229398256215671789448667655404712631583176464539641576239015758831257974925512080016362254527017976258274026335497178330074562873015417675477787960283839318047920515784314618935168289212111081761550963139052955489607161801877478184485440032520202534804094884393720397114980907177221555894813383443024032377951479593408373991781899535941946346222663566910520314483084956033734385231580036192375875231155726786553849592219438487360011860001506771536908336759360517029719291435154429202431569497198552672367279208401802212329915570174473472991051063891274061692046063505679878403916707152806133935804872339800046044581714977310719445758199996786153306912974423177894491724685058073393190466882832742617593141971751127559781536502919900878271571425716836369574436147574834671535951834466096189770952640178698677535102819217523238747146096776787404448477576988062955448807344183637649968962379235058567915780163684192129491126154682361537504701243062699074259420646659267426466995661232530106653770227804451008394967233984499620878397404612764591950861055920508201068071623518095563556572402878451621826306027829072618992739240542254795130154789963025703839560712008865337428440398289452354625038676051158427421352743066463403973374639021667184171062738760926682823221720695926276566135745823916632982771171955825971228395807945025646281887977254685617367587374060900418297549923739823112890655775772716192945453218628203422952557710035677288816515733478295259203941266499370306729318583750410877163889358949870400526147928210969912686062773111956788451679992110761876212186194782871532056719199769488739177018466455134464949401235346173583572933061667132855706407943401564748121774361719763072558636896554719175380526289756804606440419672371321668542913121099240871467527080639298540236047514686370400880631975533223062783724853360968511526758274542034732065395527793616949667706465623977196080400446343074409262220005912649512221146819063045797906942193027058419872085540924158631829437555136302106527600453808274710103359306071458861668786127348125627039306999910607192236399538362440963841184483358286544455669691470797021394722189321536691700457624260525811602879430003251301118278769325213346310496307213397736749379552312558753978890767095116250447178958819278962266769444596721646624198645090421604700939674991351400641069267841011118376914821059778860916759532822294787370046816124284315235322304745683651425744585606865490443827512062171786888607617458605584427638424203425846257824242293115082353774640221097407172830342246661435952632105125683804922418822579967545728572348677850517871453608558326417994031107489974169797186289828593985636266037216224098759695979720269950596891629548248604989627671588290346123664733450381514177475658835763655896137120726864392774968368636694758182539396548827406116508788040319032364981309166410117959337749817548871071445553166788040921309224723439577778251122199013965006481610433242411276815807305217674209103022348684569429518599043480919525460314522931153407022293938329466285927157157596966676009140312361278030221310605990067648326602025294001627366445021289510354911945672011477427165141834110281581370755291942657255714746467727111657946910094679358941033570264559201674614392744532639761571788275841448746220982512003590818586009028295554848975063474855558953509179826947091170459278857495668270818441395406543081581326463630314370767263649467100552491334788186460041537532570311251156728765127917236454668221053271617210756281922327897071282847091605039829721692098873877176636149677286780950993499971473014678586501502481146095904439742647201565146998053727472289743833162356299911321031244400999470998275455767388748524438867190139011036013992065357645095655151197927587882617022336182981135020484711524784802092098774381901970416861573439486764865457539741690420810153104611198549681501375435154263975184982280174757003230623867796200976445098949725962163871901661314984993564638288918026237561391108052142998188612329546669955469376858509821516952612007659749803397950761827964785706059559509162558098452868155323592633819718092890936653618112403290546083048678793393260979621703768709576850098684133778141211245255841200657128165698411542980046605684446655590369500359853304180331759973343402269631900950910002178820417994448191555006956876999574970744057524164394184898516199750548880747914280510120505786004368917394251080971594327576998604024514796528406528136228160893416555906133207754977505237774842867684843873196566420642579364613996791167864002030728375631305033791641991458778665045795291714899381092442050841590551026297580741561765847898652541236472630202456610674149434632189806288397843443717873380480575901781859448908457010556837393879811505072303088611125916563079147848147981930185774779767409183738727322029872673750342474764820433745968508529602344870673216670039806898885449036568497584865115602483349118062465331401933868623780143288752969273686576012853872616434877754390728178084006081289299129767053625179899832782108036835915932178720388980251890436375593805533104938682049234676636009421124280335380975526099808507463022714212522128098137801403792925307017541438150937108553066164050622201090824522706028687448392878060505897327678499162147358148354576547471522289442723509455872582778491830377973932710332249752255355632897877214141588200560031530470081706334509940591544952338084842120315514411914864325960371998693143272637796322561597014137156887376966661839775669265699430572385284970473724430444353418067500725390376873509257627683095292763513858591134838272162221567227374428757675206142966504016822433898436593127355269413269589629561440827256862386136797287574622078329573774592085543738946876585656104253314688939235015455607910113478540128549563418069017033675323310877698424928298764204205534499936126844694448451018466597234809193289052658378996934942177250077141901235640335363277834342199531050383796825738981724000100167036902594849531825833366634986283814610848706212335441200034331638481477660885335265575666307819382711907877216255462656019894331896685536847221071257207679617094724166273541483783450114609934884582220023004178805603485663767701053914104062180551177271067897425434152368547054421906209898761116096363380486223362859167829295835779094960192232942705167350367017185181348421316589373397231984412411389100192141905937734132534654856683212457262945489631694665977106788914870033512796036319236349497922115163763030720374185933383485743769567857934939881581182596984203188319132432802891868021444040818103382193661356869779590563657404110821503589845147552219103948584609031383200306194601995516563771962636205565729013211624657247940629960401975619365620451738838570392597781232032680640100935827652941488179430615756354091118989226854490056648153732085408502549436787982991882222980137857289222198543421149011205291058688207348799991528442621208244021233151772569797181406807404654955858474639360738755374025086868379080857867779486402020816801104591863775393910350956752947049751364106951082448853358817965297857324035913248187126379795191246876227374201851631003075260828315579288858120534113041650465045060113469905286010787708330184574230880984167501448984679252041464854156970750378987338898271905472658226239264537592294266226092737463874455873366318607097566557357474952473546087606482993977990866445876069439939323482176457227610731976713306588741706108918562152002899085957060756993493862762938281698094351510519785358785870203653933560412140589734658568667699454969251365466941950605943407865290917847455038506325806497159502463514642552132895764067894636477745744850009497263764084001087114763469447850482904256704550573339244344648102000337413170616232606851238151232109496571428203877420805692044891729124443056697073743219989557199299960269948084360629434390756008807652579102062074079092669503974530840007320952624462233789606878187737485911586892890618276876402292452677849252631036048513916968744235520210449401709287395104268365049510394186652547213816694650300266451760278076526686050321975851507958015422023323827653259925857081150530992214327447932741157431081005356482846156119792074941035190251637131982367199621010503084552633120856417427696473434277368050725299257209822683872452308670820225996726842288049359852709619400534844782733337262644903671081699547099620561523166476917680225858622669821032996696022864044668423901572180667101813342476774684543989562897369560736904159743903757177499734389894471440895396267373680149053560549960331859735117205013168742941823884142868545196973051454186380570684458371523421968199551132615004281003531469849700521012380916661504517607413157654866003931043914748435619682961840369898771036356749583569294297604025830575843530677007412936794269388779378656035688381924860236342615844693252112356254522648954280512854279401741688435518928325497526464197806755964763218615841410180101781304006067214042755667179361400648434045664251898345589093521816152764316773496772104273317092858493164766456527138135060565054940944576542586005790332340908589825456328289745998004141579067766878673833086521005290652369704594322176975534741503252436411036340135653587073039165306233670349163303645393279894250155377369347651976524587257875511749264617518170417953307702542230899892222715069031600605849476358266826297617442161957059512896823630272239031511227010355662757776618859729033277334711006691154147150894956843111102128752073332385043727346358983720572207582402699505489287297073032456548672901582312181705503375273962606930590686108005955716585955144017793442653262148855855953197127395501755374194002726758252246666422804915333529532887384661301600121974863977336895971016053771775802251384858355252399762164199494965808463472659496677807273077453770822762124776832245708127238321303942473940393706453019475885201349363401968003250168805041031914726403136331169234348679024842907638375750864845755024865742225412670465784697123120968971870114462351951284393610986565289812424399543372136010203506825897756182052976890412417505139593562062194882961346286617680311814426407365605060717830353878918110071919631391522630367581664280623606665805324726678811185963852866003823675719760655776495796553186623397220415266770214711170816962353626295946572582045226106669262693017483833927451305363939870003577026025894054024710293807009639047394985892126032305317796321137938789006883152600910566970654477652558741628051209121388791734097834763640824183248045969428745081554082017780481315513407754523271165865277112005712046368568762256677265165880513131240587752202226235613227713934767969103374152867859546213302116770574560598938606511913649195245687618757327679737602416645618163967052113972986093879295142620188459062120367569546806982671055215868922796132864975223957216421408546835841005986520145254391610380696228260204288889097538170358605766046369499957724843768529905267778475022012242450372833758771326382961511291503947607643397905037047177371541047769279430901636492679125914197424349016245046584797520399670382523966441952428457149319883948987633371618664199864864428187973511270080777530387417961946391213887648507885486286112291361817674867700542236830400286861981348762568522223384835567324882048252132597670411494389585217538900664939190609542288496329907412195677318402796992876854103921427470571681848782228886936093538906570906968692992812249355709808145297461868587703884037679191542116964928893183826748289352658477570618905772819132257192218001733744764689826787016490381015443785923605345936178608153704198402502036665153389035100031059197935856312967798728616743992854063457968305729532432767949944979823626983983154387287200216830412149151936126248488924541537273175652752804070278302958544890473465560441979037718221917742841532120028794856083673460575246300173341154821996395667050593808539395567334715874769133403053414113402320794698911720934980498946027227328458653774262100333706011973575381788282927028140597965896519117460502690830290764597734167450873385094952125366179649748477199557442556349224903297602425371729916318920343544362412927356409586713443556478249652897950368865537292116712868793705385490842923402827382283549508749240943751398681600025989164952408596440153806152915458197585152721394458802872911917332273643567430496518443670931873196816478042126034725907471975344735743085736548978466515652282237816179447476769224630098447175569358833850900668868646541252606917278988795448315937927663423664463540277725284803218825700235552022846514957276221411440441501498865713478788453358243676966951710716487245388752605296411810900804043026431947007699894376031866490927612334188812739617118062638865701138553195882309738361965035200458946764552643244867815537703417741719509882865961488563701363940658753785682601526541772214363286684823787914242332109140452190922582192082883065785800347901188030335053844055001504542078778376011962438926963643803744748549865577825722281538660555378791633337765008197286856353455227627388342403645355310166329342274600950673334652498594983409485154018626301506861911762500160593252276745426911775124612072241078745662275704600297495891858232722984163738325030408595983958597828723989158474792408330585856996707172462439656760142370580588542790687411235744274829756182083132483393404074228050831395470339278263458201384951414336272600912971410648796274075795889667261125185904896019949882636112936321987363263101675403615612836280164289978369023316515086441058455773766658809498395468597810542827972583497286702324907960670352104366555279873906340071096719310442191631106201516531941818915361153568835388729873909318375324753317535797340250277355449692774159271746679886908206611514396310237755918393693392836418755719964549103802971603894694239482850225366577754299986015557518456616464130066333465482309703696958993853464417888356842035182866926312343698281244415855335625414930118682067782757332766490941437827746487530693203116538031245986949567879703221778279194985971857664231566968171653460642689171123684916255027737246059463208016188971452126717934505970359943440862087577326522851694638962536064970614836457180690890883045247136915822909399812432337052381719357331194397511134978298798110883920995748927734686998643272304194527119785333324466342968394007166821382115571929322111411426882155963361219489545748947588063255368859769715760987525557449435798767439057410002239127572075789108739841052906798909972907237333999333526871299476378113903410801497682508416676541761762443694186246832068644520944029708654695423387575308797440601178004559199957305748092724838632674685084847220821177294518471956430650659632262321206035997000927657349595160124570418708660854418860141855818110520079102398838964154236074061689607325783726733858249837470913928684263457441632403019309977020829803410551199238952938777193749543183197379343888143401092757404498712869715571641660804535417066862190055331378043076941240881777870285707814729619059231738637912439606357079397654800157638320321841365370934375505145497506810231792024529710140940326911928242621607905328886163094393278441162440291181659451092624937372924961820047749022186818949105879004760365982522476018263121053915559183882507435563605491203148928527115527254991475798346444786721244656240454933173475280019253034136803587114691579097504046489800561575803355859934837252167424199294315955958104985748131477613426160448258269621159373528983436541332866984660671446334246750824744529186683389165816670479985947234286578796594397092874946779999070389604430554644085842367526875756503974717497770302010603083560303942829868549740054863681357453402874331934904220716963551576295231707765424557495284823568960996534709093810657367270144821419951685044194902471906919516040244798746416656578437501079651402185281748175033050932117684780257500844295248214656277581960449217406024987681382196310765129412679101927025050666291262634059049853591619313387008145552303890822697887536342477448450222469705125994553228487262986023795452628672694866365534859687720423950797107859944808446188764563495052584056630452268838245654777863097735842957764379219038248521458764476236872642568617785715427892917782637113202084664833546244792738841070019459603601084389617713445787325464763482299999814549572351321256211014802899735343320505060510110693083613848701055481322500583854727662289349150268237555995544202199637947668571068707280670729016941102559572656883955560442739138348687425868371067438097879162100188531563497541258939946263135821945623872144749555963780307344656131036773177422597713532074331057945217598057487831298183367699070583905265743808710683373746753962741445997082859667003975681173964131799630636132191000232692125207610124207708377229294818481052663267427762973263320414583117253087862009310128934824430677612551694874133575287378980844963362034544125567642979440644387550858866792071562586701199294615469813541938321316972024429830552463898178683012537600665096563239605603038853768343345940021944250084811214548280995577733798210078713417708809422360044028136586842819541825490387519888661349971224534098043077352478733600585455767452211459288909012766901020671588881131731845617658642185982415415566633878968917265481213083040394238769705142284756856842302986061197015731278351774534221535832532944947587760431802312165547676091151947793973575689272788164199849533812883967719469408310143611873887232030357932036545741437321426832456901188540563997606342322265433931558075455743369569519101555293610704697457191687685880280134387237182505533314571413132113700684416651865616828914807463199082902845314748861952600969762363948635549679377575411760243213082932593593495666750368817701114290822882688695790836115617570794115532476588072036305187777720137653258099687223365595322357188568470427083809326961707955305589738206020361637408526086771676744855577873251716637487966262373804660409235506996327460994358665656212181300294546143731235127726191740208336150611995598388994528144901305457267341939786414382994501865093898116864832732570294783699307495531352282989156214703040898437095116630555725032602866829485594704959857956578238109873987523788514586409907990325592121975464042476453440378254748284968775313577393083871806651887038992635825814408254798230288914046538938636634346698645315187393318010017820907585345856463988756462929466118879863913911609572794738215045359188954263129567798898191650933141843480987946616781774841664947563282683812407630512856839295122459536147803120065819930343273240180902485095886562791751480704259907998457356076149315484817901796906553960042253665409483323586767713739089298833478691033295987382449139303264139425417169954402871925475124842371084539390393880949970731599487313677659955799420746727507617815934525305722876739218915961169281634685168412328328408124346252435905270743173253115741507578629171398121569588265167640995435795798494099604900412520633696060642777854774257560472760249577419689933933568289913750001304142303030579195643117260898960389368633473392676227002841071908898722114422050924805728703759617235931553908642565739292911007215671084259655941198503833393291797896683156616571565284567222252786550305026152820900007428173639314710180590976010535604590556702327864536499571817375544486687224304157295811011356756987437031906829797524052820104351113232307148614679473316221980394713619042768205075802690618407092206674464029204813469842976559949564260999902471521459195023161855065399421319861920402300728604693389715023242272825894830719018820757700099968463034425472576733864298881438043535226422444407028823340471135964896061227624224081791578968291074848117849532490153582026669217814881913567114254524128277522290125298021062065024689234293408822119280371974600356539642239276530092113173701227420794027471497775430072632133729557300637085820454511056580786508032759610127291480514286425260618716025259760529828213341913431936059795694394238026177839999596854529696789342047904800833209109367977714259772857794029135500280391238998492635504877428413289749260832871044647610037277805723574815746695858709275089386754178506011435151545471358877578455713173320294166295059299831553479364776096550015268725417093056879358324173738334023406392370823911115506846497962013087721253505670771781127907898497465615367794967007887081724452512573471376193736532446638992149363965658588802719778752690272650329426414256706497659476824448519989470715946529367323324751018457870399846089571970010015009953300460221772167076863070609561212540617338794098427102317073694933602625871172431982518176948496410401283938246115857694166714594802682998556472103685083512994254016411584029267487241066850161901389190630978361030441121328428864707096468660089381737196120880282226325812470844088755697035579085755298830505523900217743425098318599189800083771674965164071063910691450916713002742657994887112190363071502007103713126879052462688002673069326616775207939436801238006176651805160147828786356980438909800748855696470928521919857066831402236058730772330151159248343143970114628611144158428127891448649614757434553033785522039673347535905405906034569384284183887780034296362106547007077216098810435828025357268346839827683586811733156320098219789556739656316740006127994997622004802283063968475691233322975038149166221266210651166504333417725305920686790953375370759400560004473144852006729702265598252867016949880524281298392050229383385488778625681412737596324108773397353665391216935345404403380548367463558445111950667441987566465380002164596994663258181904107979869438376258229245399955903738770723101111061347968935620787670382219710259288420056593050018335079352532517908586648239906394276880371767300265441377883478173044809157599215470644236752978480101358911714123545235119388882743006483983175091752414741699736618913552998590965645078241930960207105775882566685221384353704168972536184265860367984827548264333688419802371034284308316258311023844739775769819823763645766037523344313830880404457799435793542933493409430991615180252295552915811730837989211717058640745631346266207131822121811025514483150750743830188950654547510933464926612695119666620460266754182136762870458035435634482235162485052320951978407861878714261938459038762698121210410901631524709114655036281570311773331149388121950500704562888295330878960238809190087316490588748644817537082917079238096546585513898947921484557898484179985183580353135886289548464178623082993676188775570681690339669120835361169328791955443697291788702959946223832540153924326745984347856263813592519937137334055381575492881104314652388130929253318287184257490785205096297590159678742600456895349684989378997228833442888712041076752308404002821601812183735623991960582979921395229004398338713061829735577079538123135880263612928476584286122434008001347556206945662252293290610263472518318807718764480254364314087567358280223234296909206652438531484625202402589430245066192718213057526427264673889323701057895239849523940413902610564403140381344869528597970278512107352800320512804688494478150947527752130161662413555248778106455068619804934379916355613156850607425647861649370790742904894171480652722398057084417145914760890037137601189066890915513736795142850887395478675590437079858475557981171064823849129133867055967584005142544173923083368642046677120885443071516041202660887963028996001531032973461092141182745813971839810003883132802741106457486109877504972417474440217369011022577184214600103968163674611980647367049879627009864106961056857462701231696667509597567145503560140700382782847638686267949751648970829709537600717652951547228302327359086938818073671333699882869535140909234484649081170294560067306020838848163135047219860720553260325314118881822302691854285549360127486211180720385213528176015328837372536083771424860027808907261572580691472742061297392878771657825502388618895459835921976271653385677915552554170163407726190804752601570362589722881982092438520222956930834025758059220045620533020429669465386961017323953969051582243556244670477562096656230058066251394235827732731732954559880676985830954657092773371110318505249368170519621383921081154187050833675349279984576966098884242984268170280825267884826178670275531844595216276066434799050841113660110267327164018434852782574105895587415948607395125934836237100282842829047103514838767139972971193630261878797735558378596549156416400960824779523599198609759796320322717951021603013654261810430829024670309215108902535670181514697503537620372319404553650826222676894285899080760823272828149834540482515855652838626097452993420593240580937660745215987409121668625949130975643472288716407448559868513238827595757006575621734497632181150111897281752371726115477868361984550927465620332688134817494542928818638575789293331116268393098136585269677706558507378375410547365925693465118905245643046262229259474225483713610271114950648345563204715259956216455325308996556898878509214334830280402285193818357162061398992639062922030961096390109692493636873301404046253634897358562702066059593406464692348080514232652876894705099854540753880376760943495575474304892768707513376721147200456691805808363062160078792923250095829951805775352827001830913839862437983850843751969298746863313840115291854978120061816248049784248710298415796041380381491852950331792604350799357352790840244366241830581814473060324909011389314465511502395671720548633591919957602274393119753546085865528992944983426610285341655389984439994355766221927724118606496498615650984217152594985244743910175998650654543663286168106982618803279298345635551066580419240780072057228681859536749266326728681198347821402680817120213556550163546111131175413759866260920309080915135998646393964203564974467449710385920357062933963386080461179044035147595955261791273135377818603114846207045765534459709677354344833881367909616556275913813654152970959711195714399134289631865077747831394429911549239218461519733030157756239309471288652029118574017830423084632982016243859930230188458866347872719246056024253419462496518007920943446902368877736442175764330674839728027175186332512592187465440567241924545402869525253354384760996413471393717155333725619785865982218259313331628402857344599494047223577968636034559861071609201656301092936178792478079052217254532010033839953238888884531149445731210588893660218405633844429103173680762160917878841885495365755320064302672021347887565741132640882657668465382540853100710611092880897138442175173497329355663328790361523732289538395678271170612530399520948483798860821055118847910874029998781898424653025744972113240901861261706521261110374775769395513139587383011556358951926327109228660260165475793159981648984502317774880116659607530424527055381792162586222792140926090092640257265969793957725201885232218578604460566960071502738653657664898004038126223129063460404098523211444046188940989723093620371505846712069490357017872240955360028284633179494879106765973964266093182102864444729025201878883310525768571285970492202730577193552497874472197397076447757848414755072732593876734812800846413009616829846396102816659284780948986843219876319349227479827389738638504255286322041425719792962411776102643758983301221824792176513438673527473694178728550422522565302627951387886076451863290048219185459377509737890091942888447869256950832165393339875196625630930014360043116759906932819925827389653166967365372811526318015583127728284663235765340787771658007862861178423281417849288392888034826949979219088861335806833299033792629763636305915420888153064495812667799625193130639296725920996734209722567875859397384877018942034808511466210262362140106744804816487060447021902675463116674618521991906869047768277676651824226584970810235824251256944330712027411215411655276133522971924990024347851987404296149850150784964921015686267608326866722557445389762880768102175356462632747162303023727260717035088592966596901602989353774912782515188512517510254745747079947343898991182461990287502621821084528340685572430710293448027801298955331440671504701039479764229141489131363946524769563569614168293903685496213237871404697897484050984470544197516667357786011707686574052313406080706437715016836970899139008255648380981626039276066324212363783230041941417250029118390886375643427281697788792496753181688944069162271022316099968876935652603328334992542424339693560219397643484554059400683842802217438391529689453194833919562605390717101228734489281627991223277525513326374933154594425550370182052514866211186719569320675120915484427416694829927780590672010622620344778273843485582945432921773439067513437954378054788672455011969446827526966300451626747052671392301213007190460415591266796867301742274346385481599758292083399238173606486961475991465365880769070762774415253101177651342375815765693623408594707814643795220904057600814540074624623388641659227280567697339008622950505705303446257116173872256221914258659658936873083854819345561883726827004122748446160377272315516792130786359089430048190021980960207212647320173955479947854398588494463617624568929801305115793889404907817495957545648721794463613702029079697174125023884552738749657519188234180915230142995358100005905687887880722091442632426225483641269386821321295227591872833713891078852583199007793506461587972210160132128174726958591242888495660641820686647268757353270490350706488854773619598277711755751058256941582641600063411866225188350804711751991980952484369499347985932077635696918645360039150026484856000290367719736215224811804726019862415705645561074648718320381291281238259508174638570585837118350870768919280417203331336988597449265788676561954531789816449294469333331559903250956632026170799089743020098571597811469062095528944479377668485670094069496160675833414197095689186974327680013154552569038418093698985943105761274475757726449567520379040121949637998875592523060234356736126882213252625599872445345561888010206352170713812215677859025468466299619611516601114440478149334954343342659830119216868808938906506431210641581247556573198322082453710621178386939020352644099739058392745520228033716261528822805396804014052680192271832106407306250187734083628689739619389236714374075004021457729871251104557057543069157302920082904412432089670432864654664344322433841380402353618829300095806327402780913111593618194128809233968150342822123149023086923518537493996793016963035291978103377742834246460187454353984518816432061331943684020336810539960185969039945519177381490989744822951058741934221399216617226471675423848439571827157067714868736429975192705696289852612939128147630446056888398803163990498445134811898177618617290655701596516959440926425238596331094727933506958211891900366568891928774422292171866051126763642157419424861110898469607732700646477825585424531297143277633855832053705812844020819569950004211151745229974577914422287006675603566030557271291453039062998416573403900092841228358951246104288782903412642349098683959852718697983416496509350810754504364278690723026062132298276057905261475891581922172122848682828606423523591139706252031553365133162292923023316308466364344487798717075584393490018833997135218111455737266980943284897695542307605803307219637706781728960514961605040868117967557977566130343159359120373795495550864532471594160927758817471867616676775315782414821062307445680075710760189790113555696356365309171128991012366353769896811304442903890893746890592386446049329150111200503140410062471287937460675727623655141897231727851756053246610412302922113222038771786449650281243528891493414261276588789201503320906584253753505705046479931062233168354665825957058932268746296887072789069405545382967655218191117077798824915067535579201145565637025908261321658500950148048734874800244785808825380227815640208204589202546832424248057330244737856501850790038342935114531657534069594814526302203460458172368927098103415877813873160813301913983142597758008451366885704924382891192460428918984278512811426423349009612784237922014076596882899878123792892572681853769035157747843770919704118580733616770052460259722168379781498458077082760510450054188845747809864031306181197041157743564995147185495170845790614532278754027707830366023594540998090094341574685210060440089599198243486231154907517855449364772026946827457630531581704766679786033442699114830870938504525951182745871625743927613628583514668615702608001489471355790261327171162355297408100444424247428786058936467570765122171067729394449803679874755488932173442803325260498144312427760834827301679634945950708459853580389468331853058956667495015495007376448461431366415188072695319349394975229214133999469925265929837460137620611719968951297619018997719382390986580974968162652928890814960733871628007267938074694914740036024898953414006593705362841599515486040691230507896040337484554362579054828379624389481777706283357893234871380278134983702689805830417223486758904326481357952852912220931661919484411763307898783781617334845216023840972504413986555581042624139606445234036767516963056223025091920973559582269087993265204411843083391592609960662608626672760595854525203379619826167836084086861325244639174847946249089604486026495966857700246455905106040386137469432569501260037343496738352644338764426569757711038254798094572454074736674292410462554637235869898559104736399883038732689570109062721112069477047693018636761846417547334267292651276564627417580339642618520164041168488679814712784545855935474653610273648930280252012892221067472616803828744893077210012796051043119241019904822219203848405150882048533527018709865661185263175991889687979697021511667201570118781421668173223138506227595744826886994494947297728744769613304598674242174218026074156206822540487830438455824427276527171206595585766549999313494173572239085122133021568646877173914199757914630041647312021059154886607529569274881066846589288570004266834969930895332227815218442168024687446171555749566385970388752926863225980075364809565746477203429169196340642781220986918373055874406324962249613774489950189757813423989444047871596591628335337207962960726963325070222787245988618421102578127925235422339811752157589117082042758784941665567808722810081044014249299574440662005108909555904763694894313394327271618439063207444707006176875308767267750462748086723789412289452770695100289206853584392401952777119274405141878975125369598192918440412097888066364497006814741930468048942665424268958845339645366582233231069674080109032438385206937082211069983799605640523068101164558573807387292405253580132455069229047407871077850817757283684990294788692403429877148657305224531543682669075668146047398218925602687927069057454807782553801553434132851573662467777766380412439914173607900056979083189702730834032257477834739741372828802795661375920564123911552381738046375439323451162040248039642721595473234053359571058081026687601644199194086593153298775160285010384886139706051448085269527636450754131137209806475671866300314389278826199415341973767322750852973376014142120165845194928093675745495399924464655876687652214204928803105458136043396570337445171783450424249523311657111535243409907592861552026984265652701782634003921733825472642074719239143797728991974011658645549488755941594662850061632468674783283961947231446699350645577480452403282047077243110365976394580233267818758763552562232068256448922479457004334402568431726301756596273080466542471998146315404397995159217005663357315970200643200815226366505537769480055685388194682899569376070670028126535806726178038056429242810769557925876402820952351011106079967578888829622000485066361027002653533311007295659384952924553511129877909478635242877830000925908559138545261366110240597327719014150578919272083698400733938399431320912398786502012026093110212258759264804289990219199317985235085902032624449527847002102086188762652393194759917588211936515417029921524239593939489023734173771323728181809022728954966231572329846606951078543107403430323335180930142083970604303173756815893475446847954886177566331030605468764055464296177136820680805341520015634341950674823898294081340423809038513827590077267029155143830580688737777723342008175560374756410739626810216917758485245275929886620030748661487609851930720222234753950227136611273592344077968775671593021694815449989502675213124679839178498405430557451218032425309009876303918307882011544994958795219110601051862640838771528024572151647902226616939309015718952171424095447313903460842267348310371161803854427011615314618707417002820182093271246608377526431475538266157221752470061276245378624288749562963898945426214996892465860198443334894929907767264698214558263824218753152525452638993592014504443859135196610296115781806795247112103607810527417411619866452047366538455214874644588888645108020131326141509427276468172896546195979334201636126887457022793035384105327076279662702057447641313233834172316502250969857143683900262154339649332905852008826176290159044670108384767542891305604856870500246346109825346345966668244838794922813870645320995486438999290222355338570169597219835250440506053071042310484833863267795415075548783219460770226430946460990101348015521413648324623111420729649668875553975272626822470253413811645310863463664714459378491032331824247048907708595241689279255036515748447284819970240799256915808129395977833660734121240244044567157904360386916898226482368666365211899153075163026536222276066526762196234421276005277597004768056171181726904122019102972874109471664924785785261268135247805248844447186819976843236531049968418875844835848929472320057329773764717653615874225134508766265517757203590533286625123846598885565175361279465866999038978243878854078323260693526032661188915915575869798574336793471210100818009218369228026010398434405308710184994766360547465661598897586330197447460649837853273178342297233931371892527291923678326522279253026631125272657772041211606859580560175163856031041733285554009102396584330561475395668482372716494099231064155309314986930395124529693634896400756283374441515206302596105567412973605295718745779489861291907811902770214987560205865728874825270145966784016365715445569030431277821786128509384213844293736140940618999426170346207879168250288342127533405308067557601323427425755752202683309742372260997137423064641881133738262888145062056096322862849504053159907418576923696418250657157550882507110343308331218884050480491808626429705950287459729828340997624825313752320308766908035584953826299481968792953237416083201304004472901820802727781422902813857839778143200157465559238624332270989146037522045515745085276064500334167684302721130760880167159330945135728662369345640439267471401454209468183882686924837243888539288493081385535565474035602319980544022868001731023716711280317910524090284881852651159426194128742445633158469958815941466113614682224639420872373979075484131163361056143601384990669251475360583192884284744449111057876088572479593494864679932857504223101299193532770146311843491247567800539703604944164111293272699733880057410034492106731082491871902173054256077385640167967863179109902395729105918227761308677869319204462957375027694032439060984863564143607968743002410575485037458550662724901065594925352840478092038410149340909619264858713522719242259374327550076733629265097837189851763937804482581807963895431314841014786109355353768002656946167619732049582067410681761171865703337054249805417123018441802509155397392957267374069957941277551985933681145831555887929580939295303740047689645485878334095346942747307721915141977343655865065329420081577538668503173479999103581938681905101936643694149540653371778742603109723500255192153150873807647726086273964612924587391126220591238475638110077185907690115161427184823625249395711287109732842736442402779102260842950361761910469201895004966197632367517489754301522994692251143257325126772612878032494983143114056376629825160833840410224384465983566813071270783193676401660582568615950261443431263161809386858294220171938583469679558201488590126370630469716793708276865390169164234986533716464250464958923810571745753042047091887017312661831124122364111526796316213737091955401960387842633193434528223482980341215668503709452459374242846764116074382656265970728812092927680763645550472760960070417500334328212438120947598660856525508889360335371703668922156744819701655639148500602921466347720070435120337975424956723875223394816276183960393148194432685033306708003688636694447618355873275874671844010319986409412882731592076015099895515848232691401946987822091585803228555563539148921026735396040133755176047554787145950141399797235751890444179942750819136414552474177339371057788125126717194348328710443455922410513087692325581620400551887305169709908653974874899920657974050235890176207660230972263589211576943888864553999744662901415541283994059453425651596341002997879383634259349663899449606030792211249527318721687605707304500038921285160948194660674791384243381202335692674152096069678252680737573519530976191091223848695209630232773352150150621809607303768403686299858706659792313989713686718750775526858218770670198718050570405641527462430077642761574810164668013442989931595910834784279778184617349245894173922738804394069771177021088702055360626660245192930903448905541246596852472949766658845554798721940488629366938422957935810150876820733351421074598460722245841214125410536957819744347328142669428894670034414936452141299878702567459984401881249539217507088110857550272828493716044276021308472186748586163300308139339236272013332796439179555569657517756578973324147747596856909038900133648491170475770331833935523582737242741985075875543327795685824496763945352186708432412878660708781539049536133414179609250214124344547963629368245227879571408909635461260653271992902707869581566346779520706385176793216399101795390594590447328982273326365078793980099395368978580476670618930889078632161898142988078937967483070625665518568860743981514721469135513727671137342602682846075029481003683689964882003459945413365603046705318511137300347097041988569016039261250679462915968121047101794675819725721582634678615556393221407172256272576463663047697109974098320092750133028234002031893594070178612451240647150828591697717334655991680569472492186784377727163801371459834816462129042610596455656671863842559997665847756931245222737755182567241616278393754597544937649135142349282289144798623995481826478764486344491354029723629680444275653199857379570458528789564794047961022089135810270784524136272452306259736299122489815312060878980249632153083623113684975656690319038163695180826403099800927699029392532835387413746810118818354468565415385558592937104596519529688149443000156981226207831575041806065980476894977603604634862359932369441029033957223043332142162631648298886551033223417821279234218023277395388410906083142154056995910997587956055155906966057909541178897458376168542726952440941554178186890390403443958141292115845428278020577282976615164066972242455838526970948892000868556647319306555687275325168202640107581429925475312089002240438176223424599067641261713308613242523708154452729343213822854602326696065728016123596151456530829045934049986414841366546525424270051137774322792632584438002770501279469861511110056604794316901091446182083119235372157830896457410232470098932604385876060480850591064009036045925385389408288398604079857341425025417214090862810837209479430313621288086207390666761851859197761370136909507391788171687573709773942917535968931188574359796376904910317047028981025781309943345192812360511465617464457750078907197764380957116227554076913853342896367923579523979809632843529485044717183712506793670044261429245841332526804732687137370309285689564713442253115797178239167309123966121482129663481259635335613180808027710427138095281165096155051315225188094116636757008569093853993584740839410412085107432351223912344295507053867242906918982015430179530224331583948147515814606904476870505922427216043033489578009900053488866708732286549838878119389255302589996056794395889371234590581277819822878704455796421137062874605623810441019367335092900069129966104121114313638277189802866261303190325207301938377233277108188837941388131281447502088850674883394846121141996432682068470338504924319105064012152769449477344433791572574695986642264079378997186133408446874915250002720143988968690659266518722398383517108853673894169077436109839287771919314119956780153363561694078348897718757751482727873457132206554653080745823564599274180073872277860229087994408568743263276863569887984781346915441352941586277088518510886813597877927330913914922184197906952336111347420961849232199987531980004127653773116882779217832998618399054498125299604568869255177014578578612649627620460910419554585290342291916871900371657302883670806279786716180574344074951345815933985221728233239096870040113299325713202802487568163523153837139873688899622383096123805905274711180466520930194163969655948527644019847227983708447841462140816705872445204157017857234805718463776907291767139491700528937621653518279008445970357536581747488390092336708633122848564583487416447280431484512861894550378484247122771559861919820358802442959061294622234674977874930329924269195094329923150690543108773103162359883872525202772402419341613382169533396813540604782794319315446275760283104047068618547566085638127096310593703367064563233845912488806656741047825842639791763319683239331595687468821299960402807456092030438455608376989969205709162703855572686799377704346562109506887884484379929780209023622862865653536603519489776067206640483359295681473855571929136121483012217300346012969190729612998728998014634001425074981967191803377886751541218387902348711685347005884669208107382242949539540544078762647788855480869150273806823037625631609820362214473934422631730830350471856850160356235153094414680319876123144002427940184833345278177310524553676413778584773876649525647194097737035610552636298097476636695865716994984440933765249131066596171754213792654435718506645278398875363587208749474638156937706185563846102486389123049427806045735516404226664371620352303248479897732347150456387896482982327447086303427122533222732759874605341672854213575048373357744052325483443265682391229819485041447433497880101730300271473420317440364412097227090842122545369901574010888812104610401403705202481351608759147793384891927146328870747270928474483608944660525954341277351960301902897102889014030484734273126157961477311182847378277647666337542491942779364667605911110287754539059732991757477655833908805729607194447598093854727635829577807774487701691876595400095476881338935678946886038762890593563203691151111246103701909676886398609652395322785373970753683246524181238646753158696946748584341024268724032639811029136429245553821369813212469692501422059302947982082544840306101513344148641749228844550562759554096553928810056122105318196644626284595314449893384595273741917364188238941928949067211002300407811211509136200552134286123139777840796653828654203586977627750758006981922650879574250686487086015765337185908556774574146011146335570114444690829773270701377471724304378602999043541028452229093674593321017118488593834705389766674059871714606130111285308989578183697032646246829980064483268706334975760779872870721043542181337930725755988916003592896990739758129712885116812154312252699160961826850514822263757664797000100339467981156079923828978417212686329654034197882947240061195720072077212730729478961815342513524391203780142750815037713940314108276109097336318062172076904108752178364444391323495466699036193170697726679272091133970317366176080600678900419810166786382288556670840523136081510139519131506154538055025645684947462219308320678161403215109901177329575345095014211428476834083398180266695385781695056027375312970064192716441355660200690304575596989032269628465037797935181358349292735332644315889971113206807954055013879295187345097715856427472799957952989007709150624497909639813759684696375075010898254412217224050616052236866712775793584441613612223689783350286273723027967591827673418379926927726439881209150761732845590285417304849413087464623181729992786084978051185683772139581857534000188130549795346468031344996421430757178591629583437845605757244618729205143008952875911482483311227345954229233556943834648720439056782561991461602385675773151774840363656900926244917391369190232681093088686712229198788566941667008533867848075313769517476795197401080381835698170759545243901925518096706529646709383247560158668534934252679089815330554676525422513479625775152325082178051221605379986462174321476096794164912232130941253775008839661159546278168649670201661543500366031211678517864046960531508653070671962763565246782418818840995443171719966778145775419454906937407331985892149922526887072415533496714061897960443098418200131580703770211398867890725092265082195174842704465527801245623049749352163019226637150316898230972996806290338207476257929845015532998057233497126672865696220687213126088327169210048464398289900606715470539840276176637209856617197815615480067055587004044287117123996466218073796922736260221302832581425064261029320203079261843848969900992289637524093667278947059289696769698539650502714028449519607992546715508659803034906831218029154470832522632686788353379868851134562327187062612840395903952525523806251453477995854324754758284784770292291639979543459124565121064668146492323179806848595475162005251582343670743350977348953877232407690343784248534731223720701535695380867608922731709779682547375679011021482167413424911202692855279706871907649375091216189296703616289851165853268761654447594425517520231191569284225201481335160723021723769772337135211624249743464379319180255291723555497267329856053017051284852929103681697585951076697701837291849002296965047813161335701279706773519807151537402240941445312061970170785602398983991212896474192714530468433328173143229671168271500034270740353156260904946521035469108422945730647353875765058639077712593152788111913856391965653161796488135914795152935249261161145377382260595035935853018860153411925402374325332659998077004315086932227241504488770444912732438432971900579230605570683841299284946829949819230102692735342221245218727870049469969055152123482763455613863407677298712755100659711081040656701980783498232188929257151259206520514761258455103056062261783003486117426287853493263146101691399250854204825511687278577136551053193460269878865221197557248962803865513192501775786052964739758988929390280165024126954960294237177111623228031629789035966550630964147307504024683721722104532032842989384597106510281990509509421843553447782490275632261500926488068144477790050953360110017914727368500340216059891743364785772033524065029193985178182471578277057613849826159228068925691216600005737495691896577553002873094035765602667322734685479126295290371073179768287735992972484833354991655236885218188292482603026735138698289491613971702938418854083767962636172045485980111725770573959095934702755609023427488955924380346948785108945906771967514523796968430445413394002507160464617093493412168467936932861466130346796371814358007097863659731058201823855438509376746725991391076821228150363056202155834398654267025148590858967242869764818732313464357972435842358777566187456925555040659118681706856321889318908035742240467228640681138242859809698423599340089851402265269748824129415869257838055858785080335476028680685925137172032372924260558713257923445153786909723526715638540582978449649623988974854853321135345171383600589811947660569553185790628071543196540418993364070051807884468313072929229696781036377288012573814879261004500127142246889683417880211665206221564610228611480403612654545654238005150866373495147285907028141548434377220422244373122115471867638578421337677119701331945689622780742518372038765461670281713736248397220277649763061362316462858175531050396930545798216700477480382655467385636388550344923105165661123033901312554756768410163127330198436125483940196210530506473948205470095688087230578908260333716725446441925895699786774815867622876845395848568040029531597099724028096235888944638306979509152019053492423275351582570938199796661040878868665196766170585654168448558591452948050154278096526330448926472005514209817513180756747808799464483279463612799599947762057090755485561481005407528123924878626189058979122096529029237433526289276750942569405847853843250479431443586898000414269467525383566904325623146035130714612702251315870942769237667141013137516948419780122481963351578044139244012141108409527162409209618899899408456314796136608238680153716577194892064225456461017661744650952661203649548056957440072486218945523925422571863548392359195969485393250920020588242212312330183132235412133450492448498727145055050373153057636934044191295624808664406593413266149698795458220807773094320058624027505395891744057265926249076763079477026196553090562949185907218969597328347035138032074349814472022579542261243298010110497693445701127512695275719075355394647676438926961735988126701206394310633510353759377658018133427616886412419908346965230133532117446866140696562024536677175045155487646416923712761024426377323078947353464191470171874265086447989897252107188992815784008454935530098015043079868273743516290423395110621423664394467127371664571033841755497215286310573341371202145711080352827587845847309272043578657445954500552724804394584518314061172412665135933513289622219106396289782933500004973355278357387653793202114473928270546639302417721944934117113352834858042989039505705804347764855615035078213586290459554052365715182600796286829189261227420451371609911773851598638130801384677589139362327033970590112128087458021979727336137310746547670208968134231763454840710404712309847864213353714067347086667368282823420724911985397836552282916839768892141730624614493763507347539363212616340349068908565739684554872226300877199537777167117997787539854260700237584486130505660314130628332702423988565502114529413257550080725801687504040464617483409832681314276814768526911357708025353175704999553189167830725297044441787175083257770644654114931425651631786487407314315877830931127376241555679589854697529151738655345596574200851659210863286794725694316552019126675018466655578391355201941229356167121593297949490590732328600840639773021272788338669847970079923538175842746636540787952081484025149764460694310090526906877640620410560373780007523156211836411226694637215477958563984279003374254629817331061158877626317444212057709417427543174622861729439897075171337580700254663731513386095475102055752176746612403327593301180682532904568963410652459319680638860705754724695210887033982481559501149384990304955759558037156385649068777649915922597359229604544189704838972017023545936806151728915571394533589451030469631791713032275150145628367637276848187225390496714119680218033979595325051633547389845445645073672232749861900901524000687351012308502611270109901598643964649850006846299750220894250956245262673717129245920204790402743577239483995585564481142646564732162847326056470345223057125983310979591125642487183341954583931335098190657488907658626662096485803031113024767260071625851208560729459104733623066133308112675097686852738504147830863453031296928732890399655564699784785699382966925157576389249398552853594004760666457954622401182294527180262948394273314780627127943005492355179664016441538183524596026348394068642532159044830224329851889508161409922211687400616306471167690957326777520011284670850485024864278433678109729067647503038914136074186083086941966226455856797584840512341763168057385468820931493329333793937977608152731171949470076640191904981467890212370047577731599630124771193738482810789805703775693708029446096122339070625348946171182667226177913784814172466476582205481259265222616593006768609263237951433961413438241836356338953445940534458664486952559260762940367966740713832153239269296938585662177356623573823051247290381985454679994387616308101123164522911200234980991123510127421316495263703762152483626801708168677473805538258347470701065845925514505415696356256323036088669232029445774321660732675401019616741995646837044327375795334804081906443668666670613860308641209800735966325229163040762684096628340977723228875984814597564470973658256036250276442734145725594055961972845171457979524761405115178962083513220607729255916722277543778663720364998113427905961235989481978140670737963962285224611941074386564933529133690881043216298851987382584791654482879355740423764329563656047722238058403571114146582364267013288631163333194581550652188212991179900455777978414337907955064842203155893418085878774515072690014018366809460717784991082192225006674182755812270177112277518432760718122196250210961064758538466156494207210934780303276926989844396462564433085197013381024971261580697994018027173934483640671109505687639580363678041453282354764769832235130927019379793524293678228871123818438638790536045666335497473720764487484099154728769393382774435395648760094117514147894826331566989245360130824642615694712087643027004005870258608459872532779751214826782735673724822400128124559505524140395593907675007519920628160438841041657665213181056347959362584774808749473563465441646417447741042462258453943572185931463572860951301781313234033295268291758518974627713565539891914497853060404311577836142553601421186803329648411808524450970487088769275240377502199525013652364471389089171553074625292365820830661334811657578303829132471807912023226491033672352472459272867996413877101431242781448668612555316906090912984870478502108231163726785754414326065646673093154208823876477870003692365177217122630824365545508563128005492584925147805837889529245797584961739712011586442926811148665322864013233897318856323366856208745235978155332436687874756160729738701562000099175714089616758691708547098425164924399742282456228688255206366551664502194787755253972342902057800333686800604792613196682834420524285642865184396613801574087438011948625931602094060771176498267035517078588183342943494992331191229402517661401577195068202692950256600349758411341885314555560647888541417932807283326303001781498587172854375702442698898481650644739984975058880630493964294811898028503122271354240972161959369324810921778651576345425974574165506658947394026750867335228917274251655395254155703260116672205348407885338884519333818142900499371252227267369368151944112768609497342272043580935586492637578269629771764049754523175883459393913310109521816586189134240383365075864444778541008529214029840941831808974843362227950043511503279514091005872570915096435020739003784226356771171824746816989143516933560297433924254550107173451880208252217126808862471573693470633594747447772876088747317439820180662353746897241988795711117163843493771330380052254047030029244928574290076311489020468309284485301269240113210011153787422221901004804941239721947777972833714328908917779370203255398851333419079794982645849479600979508897664373408911824898683627558320407209506754352587060274149086915848609128502787847689285934318369507125747273763884634565306744652258611012564528417984977430221610310937201657361360404491714345159509552978228482315348327790989072162998433147109682367562666481618923552847422586972170457201533901444525591018683582516172118221117542690435532885530641108650702665672016119238214745083566887463704834476450290070318503744783115969456865394228559147394692799782832088477565735279708132308110881041106930258962457699560389533562310767270156476492605206972778000882644915880191201064661230017197322279411139195284949485174184687892762713994081065306887582094238295276752119551178058173226951082537534798659988983132014799944282073721430129669941643822746653928731708103966124882950824108439001318152766531689517698888516744708280111532312555190125989130682212150488130761241826018624669133419653872920120127234488958398420071943880231136369485793838018166658692979060826131617762707646294094543121294179690641382801237531482012187109846044495954192951595096361621477402089538805347867045094643853030661919878060953247180379554128901416329368181908018819255738861109165185918559363876025723188910127167705581446212408625819987175656122703776821197860649851674854379140697648369820527173094518032523464840036180583032626590478668141103060219397178617250905095391379721044409406739277525683576913490725295281931184830757598281619151127413992290563626425385463197914637756352712341358759857432821883716488803612239410502531761528810680067689743558411653308202872610670900709856477695431995141457750736448269553908422830312470275155398985546450773997438130302542360686911024539345360963976351121202138440948120555429261664281972806856309772112081053537005531009857500441161011064488698554949789029961788293413748475195099581927720508410989983254568471583728051131973709691978583556528575337675237993552571981211093859186031867587412322331107427791296801398401531725499885579064459309536065821269317920474679287510854132378022424793479479410958666102986110533694721295445857330037096592601041058734416265744277197848361076770831464907373720787788698375219980721242996977027263590878041474467044442668084605680657243469306630774735548669059758983487068505850665490745622279645652654341017581774040696580550023024029101493261266557128945083597343538383560219795068655415713908713275663119371908923323932956173729496718445477207086914031992602459348729315334589998548402018850978167662501213893837917334821866521410468629835725892688891072272841957964482492335776266518685356741798809952118698115382246136915955345284028051423075015206025539135276226084033263817056316466290683604344793294008544411719012719954179995301938436584984593557856579043647196719718844774977164140652145775088093277279086526485066141437030612915101393273863986006050421673372380244339912515821109224399166493006179809537400136288537411757234117009160550257088179766057622544440204393324522333773228466885697886445008818860883843487587487618045216053630208036948244431599200565785719538240117150582981141561194662303341419922523822661939720199053738202311800249939311146764027912812604271940050500320347318115777938791177693171798064430624863217061236638028115650156090026512658628946300505657473328471722337744052263279376139703720032511243092659656621396891097518118804606022889656400415028775710060451174385589984291654144150391693543870212581571244161401166005531432433866062184168888870228265755693314477118031325995841695952158356487728616255143857705449012136450769638735028788631389607046305566455699518522423003456049188708962627925712531126615811080214488986547082405595315253403302214877010196836457570579394539857541784283503146838299860789116849270960257832588398600855570122529598934564666283836565551485849815894823480131140353072590334543386359095268597131909607322014591937949596704595059528764365366114979019151608074564167526887612932207458547462950253195691012311760346870091983611386065498860065831981887863496256421760206967455727489505718078559899293830242575615420033384563962294854675583268244347227640808815400994820101894000759565177650887178692638989732555990018885756664543322974868916915236678234909826565870977530677772175670884490033041183348634053026666913233166402088712855777070867966481913762174695018612396806428108040248270520460404988755376201310938141184559842703337120837857960354187879744487636392793884315319051608961554458363593442039998727646656411679881104375226154428970522296306106939031025647369451092863094408324856113187833355883162268184392681920268410397507474233993563356593234661723669445560222925890033926496492976679292386545735548657424993987292429472625030995388451803031402410644768920212026073955483061543697148189326806500543857348097062241753001338138077418531821860171075055127702565813052085363116257046205230544190070531090569953605026667830192851302899039698489144410429293061265628488291741424391601848177334877978866757658734230815493979611173828189460966551111984781758160624938287201561447104554668653496134238440589584271709173781150851898631923775674411656770981975627625914677126899199484935220761052673481071393389010858070561536817764909282378168578293282234391445450862915162368648681518194980957796864272505183499410206789349520414911075887303532184828933558629729894016358017179151767409927997901077662444818058362869515905816260166974218033974613697578990669469219463191926316127504537123418494362516831951411707373182696744586638305567102096572361378240682511128388026198480869008172485355427460948023244642186522170606476682473963781781780597239888130978030047219123207021035508694267026296841197487338137860298942785371914722360386231515644748437836595214252710255143232963531646802062347067970249931109284954403179470416533195211373036943668978861618285651969672192386287807471546875480134284082971334496357992112088835817652499236352494167291411020374820252052845525599592883924428628456869316384225107649211998616920405876954492170792531894567038067798868746477838643901308773076604535364505844995688452328868720276381925225959239068699961980827237535817969084636060831146672418349882782714335194567569984946840436555873104616924658800489868529161963587501202305188350934792398182890544676698168222018740799344652161609449930711370399534544233791366016913176519465866054568615201716364942827350025185694956117674021710010049108375624774593719344116891012157268257144102340327095641404567451697234738671411978242279893389874661091152146838467817502132884413376308223091183717197114958201964084855308140507933896978073032395353365777240596787687390127849795747178567243780275562098317298583955045411466416915954917537983879485965888614358998378010698580241909777520670297180419595311746937488916300992804244867763433320206316881709140814058337615134622409548885771538617219860689631853843753330420574879668040323844650103437154884907043288451149819297594045280861412520470004522148546207987414611760702829309103728572555474172018668510324355297584219530625144313840928552974201955599915539021494281940334911500821373148181139292197449234783293554218169790736509700671775534457101407530506372154412597697001860701599569658196519466012252695664519473557920935173427286807926005498921703246847754758177143733999498818564685515752762384240186157329426546811124874850240875739534834598934491343670790977560891652104063704389608557772884844020979515768437260070059279802966395645512778811541375446124804013913446521847429687648491523227477591968525102851791489146209984874082373496964175048732075482176360353678751281247927458016254460351112832265253218069583237614724339459606068042764763233214730030658921713564588829264514381719309709557180369529561256912941311335699094018203625864287779437418583940318626929104885927242444468945969199747027483642044201122233764842535698132408405495980584467800634474560518148338322971177397164339660760294929748117072693663887650094048351903031029198163817020569902921822979373503174167955777803113657689163405903342455418930589833025333714440952729960038348564909759807636077715847813913738159476456504500003991170577382490178680060093198087981950889042470895806392279194379277397937091062833032107480871662538379509567486782541741425803989401390124448156455276243562878347724546259308693864067102625457914902653532397408898400152616600946604959691941847326000043204967526144099005280415694216205610460245678958442136938156777602935022785389082742143782005704986242523477993218703049702049367177438167033480237516584983590138896165534287350106143783536906330008366020544654807694277002434902854096914164994925622612376696306282215579096450796735790685040780416527007220185690044892450653244199472610669687034387113552328581829123273524375020221686864379290235207686258349122300348806858290756274813438560114434435217777685210282149262956430366494573847282556589783541093466700959584491759444069526797730411031874232749555909053752138649450422696963822853544120985028987204080647330438129635305374078133242207982255474752071080257848814121674231449553917956798083472106370066192257605816186334155750100596432341597030212791094201567121913869520847802017504419036413268902590174588122991283181015274746944490089507219459081221031671734246244624005597083550250200223387599298407835529724160818445351966116530983329919403646391730972736942515520443294914483143822128350385330580668007575649062915398238510435956741599097630426358290724759454703192428490099605480827844333407564868869791790502353233437186510686602912445435426471510404431732173928612532336425532106944122521113860502873740513028160190417605571311925460093959566482038747523722697697276473912410773202459548233528000174702998251909856577116168289641653759811774992635328958935155432391591393227911806094317060802731424845018829002144072646153606901763650094410218176803726656304725757610480365960778890293798731558756842141235461280685974454399722442228582996019337451304957174174476136316995628536418691348725313427165228861454344164397865665386167346493371089941698495229635819733440441405599521864865040950660675906891694497011166346087160168609435941778949249761565465493315642714624384941539419553567828014015119706050816014623229875330481875638451280790381683105816785946246753348993662016409075210884034752696063942860043743249952660883271520805037582040478721236346750022556851210664594504955812884155360145695007378405909053471503917909212541354776261386600779968164796458842346579065942948073274592305866316455296872787079369614767905736932749989183241686003874272336769450429495654628196802381429841832910791313858000596085555904409048100317417228977798334060693824636116034133124165126709908651078979626723728731260288330898257804866219923002202825300598198316421331468926605085256626788493683227425142730269265138881142693001776389692550056271718197747232866343440647622276967236757922209991722456705339798097039630566254965247077357339391850045548003046914863673735566531804536568754455054759010185897958736139839357631255371349321389704899141556085118385871350429607280826013483810858947514994072884159880968161893146678798539377533178120088481393075321891482504434922101918380402821698198192392898505529127790991796551045767861485599841804177158611332704397959516511616204179278004050321331276996390558561823692342975336587952388197099614264551025956162869647792555134985207362699135977465867924824110967948961256980806544416120309429565074877996865518521050938737125628826463252742095022383113638160619204623134363932257053506266514303518186549146544052391167501215379495870672819543263545226686394481313573048590654537444280398087600356292373320438305711858103380802733397269441129209627073345832996711522769802149926500450775390045180085550886754868901486419713514057731391788634138166133576760678800448515187176921259265355681766345558399525898527332523516814293094623154909783865501347711228798997816988169126634256680134200477484799276151678462553467854592849089271596185832569237833578750390478439438391351060237747376154432745399235977205573750036939271664375405647627565993036380900792201696399860673521327570478998626309994420127449820011377467604911932139295078212402383717575131875071100163209730340983416638032933395109861530311058843094741739428012434875781460543761735110505329027692793541794816483956783493087786719123436734433894191364795891596183454547365434832163400998677316506321224018144765922694992711336062495274066939651126329157464451492349888438649844374350853547663896252796781911930383152243897158297454282377235665520979699026048336193711365650670595506128380301384730809606672253811477164973408942461132403621335279642579779245914070281249536482929691666709788802629660811592705700878699686708709744846934448103873374945548698038573931129130314311997200123879002359303789643547283180005563042306513093358831576354860590167795178302193565836107724722680583786877371738735788971674162419689012074660903951242153559959139554267824655904507685963813448074101911545651058248958804360622862290607905700730082927915147712583109654896187616324788091150556257357965136727924449216603107426781327502411470879127837723831203550610375259002603257212856368638815744012437552940204490017862601190671902350682512382997110949061893892462946465438730594437133434567328817428457194958801724805903455331118057346063861686436321372764951923440977708331786656275630620474885606900806902076302007218396160883753792605716679530700400687426658037994203988655773501388829902638405346993324926948901730648228711317103654877504295405793976317890754055129136539128134516938394670374517859105536814003317235144031688012967072488623295409954575474058163810895439049216705408685414288444483454245037904715890462812501469066507664044231707180884627709921672246053493967696573206098306868047644537551914452170293480209021407323093278073275107276092407217676446242482976128181816116535140719852687853922196649406806420689874397348802007391544365758974602298271186117521279612640252562370229070125841626239338463674536467547629495274974808462421172168503827877152976688239836442628226306408051390128461872114591302865486979282228565906750856211597292900997215104160512083581337449670020941634146912001305100322400751776893463195171103556440351334133742032843080240457508513026620110033644223224800792821758519937842383799190748665729235735766474182327343051134513532803165643644757042789787780701911453213529501657193995856047457967905211107635521145757224642446890390064627545635140478415443381505101158090214773836241452195658492278297940992001924957821758579242606822978091421917669578150823367409997570758357940720609394610890587981193621672406965814549302295588121605165987515989579446125770336056503122315576145471045736005471580438687118565065438271438560974801493941486898183497707556402360247970072651734615594745407745178710846582419785486396014602992245374846517063848035997751418694165856225548283690516673331749332918474508103941933454162846196935410657312980129438144189838417126510107017253090524222745837631635760357037500039464154855114205642925967803462064547494870240457879516876674148480172619377043880556231959401942287399747624437201084742049541974296258733087340561053271598649165697076296410509123120690020357980808730545905322640506498582731611406134092320628059207554280719088733436925514857984168322849366587094529642494688158109756838908555134227356368582571382084828306690326648537507302416716147746998655322241120617142404717541557544523318619059702043599598921623383590105214264385259135875709066996537792594865154760700375365424173657433520337714079749412084265726435490190989412807188443557749871022454747557806934614051379717971569829679327744218467434122973809067282408081922147939197717890497760820810757496526171726034820807315572846484498132546433799131010188479578624077982129992643492505410963476452998761455688459261737083200273707129155390409590792021640614260225241315533504854143190597521632801899106452127416181754626624774527260524128336235690915045560448520887399782956804917498874493967479161073388415976432315055133699378167624082511850221778423755300970899904967101787491417378413724915835074569959739383198747542878531584851535676234193912751547823474794178816404971777716747601185749674351025912466715859088117105591768170245978864957179108795266596590455694616575383978158805335628397493379090355156218481839976845730101708525571691477982235293170279008321562189409046917409587156459234712678967286570681816063861505262738390982643579746602361267576618619686660602396961731249426886826579889928139480786130228460934952932673242551696044251042009242241579215913127065227071475611105112472015414122084495117757154041514180060037715001133005227592599951691077230806829823515191146588373224731681418510171442018069534057701030521873815522256924343277531860972685201447225906453657148427404383629032893037731201934030792065376259212566742060369282066872784330875545025031113627427317335072515873026629151946334805397603377722721150214471464348027425276552264349926368957635540000041378443937166347061728972939006482236797025599698614821747467159587212582763288028744581557372664229174446464163792781426592676225350605433823553691456226574115654844417641071994510793134489071857680903007525534008607671717431012366472556788534475515509396496248750858499024635341146836404482388438289817611707718127885551591326396494997709879290951302087266787381572093819441440141591564269458167416877515159675592928043268098866857531809840256424846737097717077093722761883596740608036394697316408498059733171718391650380739608567895443912864785991198913411016682376739959078165936830125155785023798464068460774850084147470207187726441365763769900075306604944010229729968813345628835097307640136040328715566058434809426961330919853563565741353813289600209871060747912026239160217995480773613337804830029772793244843915094856021949098318906027285820047449577259111916574428179373784637390956245784970441957337136937572572299990972213479909413269068532710144285470360484092451683431763232398869712189424454107887208206918350657951655467914354626521076424741009639719246970994950661382350780738961904670025160335462643586445756550765596663537662382225330925822700740595692089478949124441817995586447114916461030990894972300678085474762491629147612930578664470866003156670419200407678810568455759911620218923253976956097093122829564517745040815643694883082823258531869913309699584855988819340835346927334936699405174044230471406479587077854896856553358915830044439082351394413155772151306622138519116664008449768776878454056099649864705300082302135415774574766828339181272708813007124183026973218561870229729755742443644802516070253087646624583028430889731349515855658157822184782723206042323466738334465400348258821327089100980864716884054621994333089438008276735438052684191126407130401921037503937966383729938619073016317221826239562795864327044960676997961266708524986665422324318611482610054730943366224178815080478195462215101024168235974367899683810064771223468523525489847215462191272076472199906009292496724658658783569158370920196767188022918318819895405369924437497277211115777487111033932288765304100442642623369655142891675256850607850036383762968790829708067698416205006416432116010587801714159253886978786480031502554629653065385510758247607284596876429996788637677524060351408702382096042065706227165848541849211880354606432501413137531337969095040790971563897564405539245779284139359839037837258893596318662925952948309579634414293641019807103758009309919186805871049863903879275542178471442348823565196879308948066939480902234455494559991448451087387814214830926625182638097210490387998411975062310610102178796628294606165414118918573425736641625683511211443839850598819174828474701569033277931313609962155721096342722706312907577513673660241112618062732237036497933946661454976975631562702943448145057621067847150058992433693198928378266311517708333188983020483808736705558381344076170476327761906753128533804169916856132434030508890789964807199218559330892162442605883252333555103767669602722557106042363006761985855575779562662183820619635538744559528189254545535927675747374489856527187899006454961420262519510328292681713011389544806951627163381504327948948718310202074323023830020543542454373393529240239746065365294702217270436850366456859807938205689369672666493132581837948447621687447444015788801702190611980091551138336879465485740295104148094962196771183849147089440071680761019440900983707342083653209643251130423472662174105961496830065827268885231955852482386735676828042191959365640968720081000970556760349186693020466008126776549814755376372608248018394309356965926908706829019670546728068913995010299500216327824588536146249466447157085494250317706333854361108905626426138124597521338502734019928762270190213372344361829437156208234978774917172882807180289470189694594008670821079853288827537215978764755401095342704861469688493879497190393769003790497283923507090065051564871066724299758429741852005090491319945996532856827798932946733255437351893191904684966356848065846677831062933126769434856465581111811663585877997887379579707857326166310226514928052789454262494814211685476768491298202584108447566648218098006212272241623205589087694491987163205848362674784312757873866267923395746346966179835876036956209419098370912028653287484809409528773458339587939138389848935165525272222104727929900825673840240012920618464971103131932653557758513456474864782714679040910680601191101653023629777927565302764731401717540609435007767588930438745492644801261832837313122409087265047522932269972025178385402928751008542429348933693377300258293151502368987349614224658976127915308538845927423809418341755395282035235040109805744098414685389162846606192086420580344301462664259274383540705220573894948723559419468235279536770250551135172444703277776541952059257705907999858708927881655300732998785115108645747750492482607627447472678932865763592229953601530361852200505963679653456255176093698788779922805489108287116884945950030183265307622246003781256789249147002266293683163684407739003299199944020006581659166231794731919310080646704444417078295469855302293556378575692809212823664672722463014870557117852943155012838438520379844542004918441063693081798491845674582877801465685849585803273261209211472646569487877654890761977068904649048925409114632369761975655365827549541933200361456445460061938932949338021431412037340513802380300723819132193779575734928202013763505740332851031529418155452116530358640031441377556579696135417078369742950945791176979397037498971629204446246784905540872317376830655782656968055302671176606540659812661842134819555849351216991547026933393997609284763299871346335263054784041237101527779206786431430229696731377933236089418363738155170586116856757666514438883271682522470762380995414584289200832794081285905938850610785445560002034322603034272113745884904142735406138362287453733377735515529509251253682649880505142368735779675886134608063726401623368894428605271254253600027742005635276060448304506025359603222073693737960832946633497909986114385007424661689260653363176041895949690059871437071882538456853273767424093118118270964499337696016962205038401112985103326959614976769072818805557237607345562317898389715063242933187722724611390387146832636389908378975896096182575349718109404813980858790594966598740431231617314419589122518312268685196781631128745527575452089335634204094770854322993934236422803580968437766268941430206107979927487607818791475288860061445013265865765109754281740122936893712728171004096762836906128876390919765340103576754564225991246602255602660951588840809315364262837934591007982344616746788565384212706802089229184925483941539430590338867349888148332579135189717296555422214925409335984763977759839444283677976319040346632138431433093265317157169884071995525174573456782497620293588929886842208799780229193416918513625595689668576452077740365114640399071755038803148871102997078084048774535064002607364022130474268694142733610208150644026178343037449965940298190825943765555563032155600279276052318616535772879823230896343724055779674040141957756758788902387588884551070290144979697768838504301615229714712497796230238989483936475734288574566583657272710685716872156264840757611280394990633591176170816293356993862522500884888630297685402874613585413115888690691535106414581246899829364898533461239587910163169723343380936127929873883171505961067448178496209163157588234487466630372988341829883711109318247214037661755095121917453924836843725845847883817841759019277860355356531764295525001010416481109835740773556596454529237461266019458690622027919632155773967374029170769990527284172291757719969483432249675034833872670501843256216820497153356376403637650401175021183006692839918016363490829236795355184331659025253029609985491762906496039351768262155807265312847717160956897681280152072620687432270588082880306214044549199480467339849500059066605212135563076240335653690581664251604668783172762305980816584827911437973031865763246270458975899133497878094514379594915930638293334051188307062280875095519746044063322551261172731162001828797377764319920206999992148237423184576572073591133446424486418930014250691322947594106561653275986623172296507195209633671017989451172813194954164290011394806708663809589842406905127882898995239906166864357654174738951612855693491663088998777121739647408882042867600988109096829772316932479835636397087838292417363945751212353842947775845003743578071465746144557533289321170970616627678479188928348500601884764842530180840709147485393505615250502327632707337627544157897652639852590818980129206740996021357043025354090320848520617126573165080447546368650750736477456724605131706858756756042880943840160625328957334888993354382359299629850605279966618255649454428560559088282092725653168018636331155426922965691977025854620425843641338320941587573502479044868046334715219431303939873921073318351215937527268443360272647495025422513935330638863546610139254640353519656278800543921573591187244109140236108760156794218787815393845551824707096748994443194782660905972938339957293661215818821181836569295198461900011803701970879899624811374711119505047156658912252195226922864074719209148076156966251170481768836010481312781598438084941612693282374881406133862969475946781278943136084039601827754709264056832113014649120529737115000521899197827508098907683090534201529176468859878104361487236609166456388309214739252901025833282467171544145915288960057224540228793536278581007804771989186898365176125529585511521693740578999184328473447580763788200459044421885151709907440877086664201267838890070499864018445407439901065799179571510369511285849335385323382882570292368457980220681583223763779079221458007425754675930698098050748364285455119777747707431284919791826580423393602426786396576269224125155623904169471523908673081833980555385855534484458626506960898644878983594752705196031557166164610075594610572408553341431788294681707841275484204231551343423001233627443524730316348435394112377653518093119561698984430045906606450933888914199099342378633888792153824521809259537443848885335392773146713071915048199410057409757397847528408370910268971787125762247040287805719548670006016165422351137470774183403939024672633648911498529234476843361818536596295713792830596136376254381790865002862276823099750832965873190881430460565541658800840395070761956424287107403586376824720641184189746825630639754554252184292173949503981435604674331399514275510830393051274898343924638784912488241938052429464944279685333784985896569253173187598365377343758538270874243489792925936536999478388015001551453278644961058095160940557288495118337296117495951225560169524284996854202179586712127359841431878882434209683440620104491507278667258074566741028631434431318384660814788542280091409831271267740837765074807052104969684733576425706840551042045255080571768865129259070209625074120499310835300552239830963718196241238376337893133749212953578312605736509486560940599295282691271775069182666330003528060122090964966043317271254267135080133790262179941549756494451654220481844532095048482523009254305186790118276621514250768308828889815255886068767704521675117790026401267247277167647804416395605516235195182687668196162060369227025721554898477325217086938825586741990930373805542928693075414729770128196576175569118006066687425971877835588608097416914603527789239801333326499299019529666878391235556512402701952066047212418030962212496791596655143698428564820251639075338560718135434880413433745835519803122610913278859165373466150792203798435065757340195588401413411079495863128000090212208457681341485784027396819173345154256051502823642277300875828295552266948523013564912015539062313896846531697343362767533668285527300922318543472153729612203283027215461744312141132949948562884433272095239534533069661631807748699545239372128360312425025459239822841719558418769190296177831221308881041199648189512312472776662258141975094309006776914703917053894415328735169329959595018184831633601505444170727227645604481086950073613665123362222753236455364700685805973812636396716723906350228354581012062059116777787339658387982598921012916679118743797196380743147418699718215112258525107437047927985421717572685338100678642776531621077847620980535641605490338389622499077320055550341579378220282755829088662350295394900584396227868002678187932631794046212321620935936835296737532581792539290596791293145351328175261470419120046061271058632521066763447365507705379524496951024283125605467851954852057204411370844071018532553972387943432616513708237303866156711152784839155467140996355424572108140761231848694090171571219811471858423616470644384204928639659665539856467456151950325811194822746202826862404021809080162839523218171516696752243335899049308397013998854352892390553300197997790050635329080498357004472384895821955045589416172962663050082498723580382324110448336020028692847540496006672886114810222106490662441709585817806024255416512215443812287990020284571406621494832828285863226039204671121573858866372201865258137711094935239967847094763879991638409368984455512423653526158385636655773511941795975894078922153758280363980467012897541067579404007002666003824892776572454584662875555588325383734781495661652521061642671666854331613115438836401376642142342675018390380387280447697379045113324702945484828770065642898621675096135949458448043248389086319706513429349226574232008687708828318055543211460411441590393506502965794612816193679426898202320482365787662806953347310069058366947196512158606892128997649442406355664886819097388002854098727024507402118462316620985204880025391924622826570503638778866514987537929927341830783002194388199723465360341939873582193857420520615354633991424365654066699892183581401187968709501683305273623127807602445474117602393265647505257080810537881287529957360297695478706631136486521423576106098855988294173874306664097025991150182370435076819854967885053902203225612143856487851014158667768605451773033556871571370607852546507692104496634252272811844953772547596195058599016434368051652478433775155750682849512301080042724635406610640818133246944489719212041589969600701831991271677221932081043214108880740446292087958806396308771976305800828356322841646055583457151702210662907298145088294700084925864710252062469277731512563421824619017908746276877207417309047508949791778171535332733925300417903697304851044205164313914680718462872140422854968749195720826363261297784387579312127134324594639825928490582300530594558220528480642853759838379967561722194250830008060268850495149774728185671549617275571612134442496130492269898388796626794578119571686500114176306298692893993603158452296199578279824543495955992214301908447922700289613071624886181791249904895049882743784937352178579606888773691438704911044196860016695666397747004047522024211120981807094769146593697584948983793899408665924334119083516531420488641707631129592028372085554362178155184629571075828760356179637169088549860356647317096486837559845853698844530943323352439205153826909862690206554973742894424172891492677644108906692638032228760305385307727912586581504955128395562669229659150454635850414268524077390459325107230636071074910679099592483442450683912050945528971101715366052624121540206768252511274674651038062741833266168145969074651356704280911604255817350392327692391437375237557167374337658459920958655755786873661022101647121398305737468572490477497016418045190207530030649724358043868908274341073554744057537668160642797357047386439738648300108746937321034189378272210832830268669118106605520636888869774415392354184115766409628912786824531781764780789061295561787581777981000936762945560009003224116563045868591827301272887191211129391396200361330743794322541339940607146745689361059140794943593800182484282972608780296281634105791714591549514439065753867983957261901201402816086033757680847346700665469040150414613449157464759485332160991581316590474884383618933691566978660291067730154131126453664384580605537240511185113965484933498843685202952214876659872487698186838909563739097957154088809586028519208321190861293481159013874791484014650025625223653339632050143666022900219467253680346502025873716094466486288369997412429236142074925965743671191232327067463209171666997655761911345766197634914375779920281220107606598000800697301996308343825224955662356766225284639725280574190344393035873695277778307475966240318527608911194430040194445069026026745367159865616404139951729669548748137835695364338274591377355869244093011773207960963345048898117868555637082410763036954638521575816061100300159159422146199704382285598037399287180846801717737461492869397701064166626275700314333012064251475245013943197662745061516637760127142751173968965129736910208019475451955970880811498891570327667510914509919089013115905505034546100619124870690575642101507644747153670442466303093961066998431550803013927464750193289494598347882544280048051095515803655945102322989591463057243732667123404367856923622732984532496847241726572225880351378879209722305943770317894828682107096690145146791786143998842386828625299754432078774084776864995205958514146986276875881261878187961287916545222096731837970191231713352285799400492575027979036992446779324959697719372476600065456502891207465110991142874893094258217700797297432526329474040578036734148155063862145847029300516616248403709164851145106284714285912406070529649840314416352148310611008748635976692992396525645276510736024814128497793367850479097490554157028306975767231740768213709260026919274522843437827838160294781555073851275736175726525056223676436872982713816629293764435937011163393755602655690773486284059099976656909871224568470552380761612240979850513099031949862404789922998291442898969578958117828426476936740380674156283240863805153963705480277387950224369979431604416874317262947509238466876459609517336831146788519311379800950379007468139065035585202272685743766647223947101097717499973680020254651920171914049600422732300406929877146209321759614603597235985382704202119883263544699309490643407751370866709668369515279127213694291546243514829638271637572997620115223856965788104498233894091611109982027117686303243147462727942528887620755291028998739615626445011687717491295362456802072052890443337179267632472906274469785075399689114869770957347565719500659960686732037531922681266653590199082943075212196718294142151814463285558495362534176357873071550594519488017464609046355725443313101999403901952203547997568784296025198263973498998865870297778178279509232655406508097138035532376729844055164616299862496098815237327793006158282197784030297045406796978207545093289254618045217878495735311542963628970735193444549712084881070719377333721647573673824560652540571243727630512985413187272024318239342213493793260965172718943850227619752148300200510209835729463990720001348074039835608359408634058975928945977933549471902973630756004096449066967344071836430429691710755331235886919550948774764286698077556929791734141196092864267402483682093075671090525504129279182484122460745838465538125360540379897151698699476591439861286072302042680592305244380949904135437179088482424570972051112416805533659449890560603859671992668611984295154248280267799649056203997373148898555837604299908927491460747344749022692379573255150544557205283140434634477576087159540078709550298484529595883050273714579327726533255430078691922158538564418209383307044903418003676819084284867447602763198197354431321024503016088924045958983433349628341284558181152291930673805689226741808288450420711500339551777327088203419326612222208888393762446033566520821155405119882001306696323535588955533132446585064060519914468485563025600831667812414641656979075770061741394697474633210016764578654978998021868073388366191759375449673077183090127979202608936241266821485380937979169409221027637276603040904983362908615203521045496581644893244889296899534973112502496763868722605255222488563687614546757370570748059911787686788313820412204270207822731348535945110432062909998883328861511067828973310598848846807018316597654589508147947854085320936557576759945314837779143629710834308298833718697944529998266963081430078528342378527350707713535324937116092655468487217940326451686351360912202103232534698135260986432099607463666600691074369759305038001525804741807147795988157045691149568406246796164261026439506942668675834116800959912286045723583190354955966836577690232370280432172623700720554317240294121274865917622169073374816631990829845579221186219871879970347440842690473239168472335657720286138830118900946643933961850393627495676549496629808365862702843356018033171436277814118357185440139451011200866236083222677866406565554597013758118372774621409793356701673413874850066594334523652436604931773787483879564220171699342576943492329694561405463305563107421253418847406369574363458288151892230935140175179698120202682607501343630186644848262383000338330462212727394737799122379160181316209137185280977819563433684228069531690162006695455869103099814250856064186988367973451548957342601787759814142451875686219624750194827202708861962286054179662910921568364822176778661107802160881410209629496492924891952460103106801486517234745604682350908215537272541387717878926998955637442789319261801606172598342848434769103514183294342563717020189300313407713175894776092562786404830700210518495045570528191966288524253950621445415561393532534545262330033773773070042289438467238106978941639573543529988714808603246843044808721394177891449907602773107544174882223821977971760459625682500761102757231289564610492341149908672864845372954748712037937672575455880810773561744999867504763261479187709773543735029690107102669640373054775350842258114276079631360177980961687184867898302050372400419300082104448081376565027152324678544439276086402921506235845464100956869870607952650752927139551775907140324582891401707603497050591400369480077010426484396540731420600457788445378042263609096360549127439741854954520821273001723956442134471263232657094571184371207673854323049559859308655677836469838320106838226452710424445229376356444929899964524482805712692612319069563265672972209155801296372363038360867785122027940545469817636185647026022528778751717384735617913047817625869151861724892747905249956208193137413877776422518123893397400648767435641464779492167695885159238174923235511840155442619985276757792020403997651798758426202181627107975463642200323387785402168374203267768772270445150931390754423773908881970830372032669349095010327104738699051639270617363341689623607653460077721264634342426519353888336693056444915733733075122762197365366668564227270957426778470233681560050987137908084346709124975063308812791472117127227853228729707494475086827890707359081011075419060391818497075870414956008205812939731149648740802729743540797409089117469898453801380061722436294404367276762993607733749069956633642793850344858796446779624979734612566540436563671090975119693566096165822783600457584354751981214997454354860835864175584416339721817361674196407335178738072289718650983709412028241740047138369462217915626987523393714488403064689490154092286817667024972009780776274313044903972566399002961901651662021725404768836447143934894659705465023634882606445256214154982884575526636983643902890781522008991444722442897035477806636081074696263385122630796554788688933178965185448926433314697110061110358998825505551846095444677980045445501891401033588736195274341248082537801276069197348481942249419741670029617883210147159473822787040532972948521379514406506621852402152543076804534496035720360914176481966838506663536029783610348108842936964053463404110098127248153773610374289868789438376167702561617386791226368498368358588804654051386430788471458311037568142131558161461801591584818496435345267219925881743565878279461482613983135160445109946672293873931300538954634933606397223323515470246196011840387005996296348090124527862652451588598185888667505614753569834211422733270925883255830351844914439473351251416633158104861745050925869201632872134268557063449003197608495720559967204728017997519407406757992952160870025607870955548107086159984354056222711673835082716387366796437830129544946135882017591140208220146519170559370521707410362663656801514702315882965735779851235656475366367127652951622996541107348971473662494026799290095459088820412987831395273611193170857019118992152022097829280079006609854416449519726637827651190687874427102916074808854531672981575406137150969245235897754058597151426700477197271160602472164614062389791955246135069339224407447973241827624038490584261171768183327405967101138922863284719713015012012988600849764803513006751822895771223174446429984365180674242723826111623656792547125977872343403330662521542458854127968459642025951092627051731047626166656562450444828316356863149758399229529184536924255812914912496569171262058069288507868931731100864440106283630603350946279327190447794906458372253281851040733976730828031801872730609400954785302704321556233657187809476107363133433305191659096997954621908837996815085839181537313773185489120203351805993885433342664069748814593042461666801460017216273958144011585473335608727079014705493120157515561138432419686372542749570034215322450956816101642528788246085631558289749754245605830600455956840422690954752286717559481970800853642941610316840928124085932602468647695658614059492353413161939038529140138609207098416111619586310095502791745591019484556183800648372405755195834757853744767654368454290192999655860208481851238261043986634433112587426579978063964725624609545135000067627917144981311588902461522190318282161545159763423636465232931056810038915531415204453293666850274016277379233173165206168321396945908481623323056382946175827992165933487842863722868432684217596044989732296457566089777590015502739340290674393069747726310356303898596897490052386190807191782911350470946039777924259459903684894112037200418167863546702077650943614900228413329604606061250246427603981521031563286516715964647663404170702940385105400094905385996128711056386260920429069925620133516368515709732382046504614293923530393868327496704167553281889232157095388014238673216170802121680623625348102464053481405871632076773055421307084893106091772324432393042047428036487835002431353080969589477800493707943783091334679204755942005897550358093740961922821713649405034098561762045915071193634665235146755983250699365102022877504019891560498403623185983232893104063098473769960279213648665429490701204237636812027751431888341329556996033691714803332024575762673817126899351923789309700073352563139078421790205451086548386573989010566041424674482990930984227254554056530594943038369695579737868927667623795506183133431445699324821592673675745618922536723310638108740628416764524914680776094365334115198203595487316329086340023356202936869891822818680138958637010314303849655020028794473001824449169808989671123874490381487006926931555967491996388049311924696301037685257007157293769721975618861780598619185514655974375707716459671484209674745690204043570441010473178845910054855053640633446682732357700657040469333121462802692666390913608880144359109118495468827418143889830463235955734710857247871259610901139792573297128774753884849567179312670008898096373851646114988579558519176393603286659248388564595798382249807997559691904902142918122170589265009227991515232910107492134799395578756645385244421829133264095869965079422506618100498866464543921914912796448011935427445862586619922239159112378843637964674784250015624315509097645640473475463237271738369884662496417086734858865899169611071709053967584373796123519231740540161240328007603425213814213187623375340474597749694842347177962788000267925793018043105500569797161186033610998216625805114221877467988569213580801285899573350780181404765014811494128129379343328006607054489176418819056816622668766453249751877710778748637373668533928499385972117671124572091361147074194192884113141236389529397465076795231665497587393585786293942648780366216340229930347119591749447554550203458359156664210311225964395539500763544842483324601025233655278293298240103943604696977753352407842134848980029570534826669161797877663980754876546665121020833232824007646434479235088141658605248716984989437255114047616438066607635115235726260464463198651122255779106560956088824304424299337977002785509296251362778898614093075750918084240819411426798619271379247957097836733811964314803947002659304995150101540389992437309531367407971708865954399163303285184265552482484624678481831944305397181542330870443792853491399979345602066342335753439513564458259404233938982955149002445222641469562004551798689115600409980609596627940872433504250913162996612089452343854713859817256322066204306078112960107822809795083326298754892921937880736889460871674228811891273970800078907143247037080612461069146325652799132175410544205714498642662460970341143408912301740771858198930014435982141749381701534074566844052821142085820151275523151502016030259829387413981320587133797847908147696196820794731566568675045900755960172302373052570213170775701476646123681610052132836006057265951399527588426768172392281616168753024686544324437042009516135352446826484459519443593154658102222882674689101033506066012427452928291788444795097301384258969225669221928027868725685821521674912659495846127894154224149138721186095569450875874661982811609494456558610508198430928900450276892188088344158170756314419900983168534158585902460320242250246700270116518282387192819504009075806028537176124192102104256468400418666719134845447877105297906494931064167873755901593462740376353883977876648295453668679830579917496451357388473788612871094394206208887246072599519912320888928429516419992798097648391685781162935513131247711539169986341818152645603938479831967338603485055919242226083228370124523429550625004963256897878317995747093411219945745863318211062306734874365340160078076492204607750595668433831245713161722725872183572657433235710700488042708904962143999799695604741516930085623591333428883831501713341452350646999764923990051482944624418287236348972606266710720347455532688219674893963687805700927849711168288243603692879201524499400124275875754703265884919570475047405898777002751930079505092074499153529478708138804929954983238002323914971346506122371715994535542708145614866549380379271774088215278367915197503908832954456654386874469325182960971599483467477667914807097098122378531302681417367238111233373285829322907416353197151243108084529990001632149987133881000686585768840186771925821606241734535407035656990633885761281124630532166419914147222418411223647234221173105522514986450636488647280364919979265865887593436282123250675037478799166497088089142433459812854432359149638456893615759359959883719336835581575247448742882933878925290161124767570760069262589562817503577691851428281557814356754667682883073433424359117074213716426365248733368854681776312908032957749088090549366981723433337901497152279754028963562218614512819320976029595026312604924767694013334305464353510930421437075881644914135903806088236044476997725394189529371687246948545997493491393431685578853269031565289463428870800896215737860358103045500866500117071479482694478709926504942773589657404363804151404001770656315109143626047441586443436676882843831839994234386896634842640560398691128754426395306318508637042300953325773662801528002088103699102099468047348574199045006701698486165650120723752146696702108108173602569227577084170501113024589066113168675262023489290540299386455789505006532837659487372483792700749607810486130595291752351874192526389788781326499067855779190448908289524027615442605492987895933344280877238026734106738851756335043323419591251558797466676914381421699497731021004441484038893473368051717977714791122900607765540517110640612571032457505183336336194782332939818499036830485246434521593412027109841555992235194471575119297456674806243857588586696602986601713807959102382005754762229943149395110706733029520892247989292288588469653257186798376051357085119292074511167933232803899746944185705233030606285130205263302048909467860258777585270393861053997288486668562163727260595852473092349256648688054647579646851000277919643995973687608359004403608864526419571230417648394360999561734290437697976746543318548398868369542491128397101778521283656598995251636703163682598009098553856017574362113080080541494579870156572860550449418565344988060561249471383039951137350341347924342589545950395966121661811390167788977899350808144423729248755424499969039013215219228150246818201450622147945576614046185221112199684789847578993352626801445538854357054904685094438080544411644242140835659306904708408432946354468204758804043814258163434605793245091061265082197192456442409713393770113585150723973903540234636349581608340501131892486847328662897840561592748501846294918574643393988683526364933614252029633772812366122176117868103281070305356145207884806094266426161601492233664761097299394782090913001991230548757051715302328557116598991135345949914337321343642424194697700952666366830132437785830097843449062780326671886592113239830093441781498050405949878306974101561078131133106890216414167298926873845315946979490632845976609056068557374408731082782299382636422378450540486810015900515260555935145825711508954321915425679392284280758424691017833469920661893666749569333925727791948871688364837707992072058082762987234893290511804544541367256010477157951536263153384664802904157974324021072909987496283082521107637743315156217834988308396576530405438021935777897021238160957853614504721738365792071094603283182830076432201966174014721573263996843680218898962730786379771609554416797562145210009290032218737995167254091795541527214275197176645462517093417641280482506469326592105049721526986340083799908389208633709111938773740561482631949039313263478178107457508650389397038176030853933886698296952908089695214091066921825591419011151502775301509057372093338494675494593797619284250776666970515641473952629277259315427688083129896089472409637773841387814432323193194319958486466573057616664872771041426697639183398178260956359933854305237966291589420131184602120962833387057887982039712032460750375302785155834955348087725366000355708933732121127887161433728808953958105704446416431541743334175253096866947564200119803786147511946808171424554137757378084048117101583421707527009549079259094365916588630185103639492910551348512193729073515195173365176685165835807576761003387229588857486050866774233899165591223823862840938734035544400107100401979863815281140622565256197590392279771165324011591132046108210093846957683799946135249037039951120493330077182738716917596680754862477824903385245900743019870106222170926624142895833805482591472091686299215676724633860565015825013821277719427408201246832308727066260642598742646003797433602853213622605530713438909002245678819154357568513758688068157870341951348722868365332880634002134208406750420957870001957302761632521705440466481726522742813703173388626477563604735660930306141237728680922105239348671677630189449601865974757384173064304567436503976860048261182849885053217183463380314735707811541205528075254351419107964236722282261354826262588493804562163623261807407233341959784175748898950786817183897325240095526794383604969918796262650507108207153976503808982014046975940619699512193841048028403305897231859643613428789570088660965026511701882765048875640076403653624844865424087975762129661068853626730289720233796400883585812161616587466769367008721816065223371810939176349742541393276991319072611184719087219600472799393654992394157848156758962503830973626570843171683494842511147873093644602977093733326786615985456120248280167264973488609429755062499269218771331106041488380403125563567248707267678744334730002105121482983170739191701650683977792489328856967251585472602790479292334431055143648982482785780637199245221840016147926752897245816070886699760733069107652401611541409640179530185587112678449725773608082049816282105409417245858848144648126435087276734935762939329199298693766497223085737709375756112648678501838382783819641250765096096797843193148718380422405885944840000623112948939717642101219207636777917388922433226247812198146478011943734353003059048614046100220843927566006457463461191781649269263734804455775753678388654152094272285647747801755308924453513321049656501641295548871407878382286167328826444003455927429444254530272315250032977159297715537336914563426197237560674862969541504643957574757853362843052951165215812641317181166690082896832160743200092881066967476626015285027257737216247028621975031892159429736288651315962224872478682300087258592340503579329830814144039383502070963077063164089115262837586192816936051199090232691280239350738158046028402868385430763432488655277596934339520194032284848184958549013385698192647605295881253140730459404614487353978924728278925315634241323598182756214349178638913254969753386629386391761280643635787872997809290182103894408567123276641235784758980199721344013330288381113443157062708517412770122350735662419234230963419215670881599773307883988984995037179558153586116514631991101888454800131735438144602594752721692727288891107797397925992726140003154020995546668186597816364751678448866896737550877495047163991785806534942356051865360711639140137779524597006147750762666904904848255451443549546352502384497488064212720980828262945462800480956440498772426986434663741707397674775733496143877508577402700128456473268363750851822444199952168366024687405523830979370138643120641834056667010654270548728214881613428132806964756796752029771062808530001837956913089833941371335634610873454205867339209594052064184204333638055229790393887394260564620986677826476199467685556373550498025052583779756658760644638493605144840247316950609548274842034361040670043153794988328909374842581495469393029939183542628621725083977905900611356851686883286768402490588438088946233657232727549859753895637649557856157962359824758067513946877889309208720660003647558827040056578493068715883634730822261988223844032586618782286406841327014581951872535969865372652704529390904660528820431925133195566862981167225410917126820573745369226989192385265776437389163774604899871827083895025065321462268320357697770514420693952213890330880606767848656364136610935706672166287082853055012410127336549823320070670540916083163952373861177438958733072592383583047553338444224694114999762646459314166187914926229376512564212004961040115276881064757048458999921467766740523846954180712482323868763226213904734736945407436940710992317038879155864234214941628572083209730321954583218839784981056675483655913925354193988754966655205165682045924654545972901979717455342825652458340652733480072876403505368977960562083438082252712308117659494153999321031900877523018070678650670841579909120721230545757584353256781536800780400867012319875316752899025234936887976237484842025462471921483724614012140297929974826937049253626155605651305846564194295774711823888256403720291891377271710836846259548054119551039804285447013767860491816536448677517383604042822144516889144252321995024523600568429365020797307871333214076497158840104834010947500935457124324034928661197703585948718865426613762978602812621403755893128051130072896133597850115844955088554753718899129504965610453030764410332852903777628802697774939783954432502753869730441349643499402103761913121382966596007867628131942556739109860681263040551752044806870190593532758896829526814804005869110770738446029491481234569149691052300399863810343898564574859410258755967093620333394686036094267980197009750524440191115456358881535296195127986378089652170896344488311144486729526019366511789658127191484700081489473186070608423079919494142665880069549277313138485688385790443339669401694537657308637843648635778860045454277951099917600313092334459002029505260319344463644159645645297374219422039143633951466244267543415268223245293357474297920649903965827013585189444275435073625570543145783164363077153409837491769399054118965404707833393545789905684094709277389850046320954669884036281164499462954909008035060524232747068037787808911898435000542046276854471155900470617869251174867909009153367728589714290721036022290854838421177403147130863944816134870205879181274583179663013941438375346021216966790997906013040480215780061278225092036427749882437064302184905164258831339957857846366671082742159258113932465707455412202936232368182348326430145803930896461613001592277458403132850843407045939834262734021267502434424163455548281289182111480963662995219890715679803327745454499447255605779221441667057810477546345764225060216209034740609921270211093556697064260268804177690994955620931478677856580741479816521155093720269688245251659522201973080206451210632387569781231872996179714863627902085230840201810253506547381147255305179723601937292793386213111388215312566991319469654209355425299385300887074674919629049812879963657547163708069192139415423504499921490854042403593025537671377430998079171903089750334021160529804387947367173953372110157632706268429155982247856989877122781637345805542022461138531065784628352152155487782078397113660042962724199736929657125453714736360656581277222627409615288443111005725884196039426435140790569088156513059186239460770642681083436534285637508531974822027512970394575289397112520157221191997768410356712258780108589224971355258683247282609878581939183493386154318423624636767771647720047491920183828120436230574410501770242481067215481092018442812992776926158771301704641089069153391195449741160661864256817074000805134900653374897216854161695488725820902305931249283317111896518913188920210683972413608979318341734361263143214813880975464888200441829861784874188589567453458770091112532521251437435568319248504822108142240045861053553080361720985575892086330141392186323310585066232866785531349659003318343001764640798430791270153129895707107742860340303332201251394825677917316445928532281889647642850962957308288009483333506608178411000536558062118588887969789128878430637608981937366921530829159376528816175763099665599351726263651295726058865551924883767595967335343193811384767505030022214302236604066664102066396070812394757342364411106692041147294069103433273850586662127864542898349393619203929459502158514488554634023487524939618981494275802909408588785410077387193932832155334746209039475666013570979105336272263686617428133718863141723127554248586728753506687291346196642574831792147346661410225576995078072802907877381203753363093788873850919137380915408945087463281724294756715391501382118433646785311216364496726509332302458470613954947502703460428096113761550377849643337948249064946633445976341851262504563847949562191680218860117012532789348757367203598327023504619559234326890674585240528516433282327313298239897380030320505102503715453743436090473378286062152113713744528217085601270550638745801252402499865513831333353911315711552448677533721225202803367047119310740966789066044970945293219291865736714929577562849549623071970643342196352123337444371842817265756593731680396531017419132945976284375545102789651878339598975022294010281443316606781076288021104891953876496952846934432328748564680802050063730828431054577578767839979643898505124918140515949339409944846514990449943871592131384775979908178532709409420717019381143644423541434496889989941576420049017225083487567590299393159476919149750594715910927334051610522244281016436121222853024623441383370415429293577925762245457391582956153594354459230515015286032385453212583603240467817126735829569894726755437842555623454635183435091598439497735389365050202762312287717255416354551256632291630020900054877107906733875265578099618053023795044488685065151250182738673660906267186017425866190591155688988262838730301262429670975600363243607813561871705702842327171305145828086299233705023102050834664293998566201919663258795267381307336866352569469827803839246637779148051977433075652417803088218038271352980928810777945681671127659404306649996626510632348861997188411915748796351470505896352835622201100796883385103705507104956084169788541822631534244410800806875247110017968219230950154140561985569588966302120808675157911904894435540251870900435570948753050721305878941645171742322983473639965145658090510371460063558039804580494674062028851632726514502427172860495918187926209209394710359282145926827174871553526713738654077452249988986477060659667036980276860042443911344410963191095797780537347030420232852825849445223673164535696819422880856069867385585366403833310325439859923017476960766778851754989154500426905538612370745989766300775121431727690929213893232873218119900642491901240767582829123876345728961475910864089372787657904813981185254541065763153064372952149287157795310115838233378060644785781710566393383843371824135841302985449884586360099874520317986867157925158918520236427117056626778454432871992011904410008746148959813639422139814795194069879838530162880419221920538259508068745261403385008600352480396536196148054786310101780036569436736431444756668574759469839864678851507459850177731707467202120969778889092235325065156165663700651304890372703874915924926893556613895030139289222207757364036759151174113329647978599971984138555234577707023436977387759035854146679072604162176464987096579558326662907541651885867081795962322866171774777078730880894084852627424417296475854773726563413557736456466143020801365318214649968952064174161811334765010257388489778053131064546660903114652454848230708898064487274434626765430059543939543644365349333968015689974947486517771372784451832998532209614954729403867957458041414707780276661883255471795907524098024119068550889301347256408940305845138090535060615131415406254680222109714963932773892659348665077303356764437578517555538381557523122855368892728356351303912123301579077832714504742558685259049789064718526405295905378369430480372570216498793526033081682117047314394535002206935706552312543274385175249728489146404858310879525952285720175583236308561075560262610045996461943563737618996069085816162516830876394395670028855568648631034752212087651985867332831327616157106597128976800552633151669379051842392175078926843213910717773661624072488112470043411262458995122245337602110869169350437200316844019184964467872847666374880262757156260204369709073368651018870938161657745067634910063487424129556714871132778010104644605369493324598825690990550118990311910804413029381191522621034935031629989908534329540588624557149109064177542770520136978162261007819773354523880885506126494933415727449370303764512246468448462166221435947890904608608139613079474201199716319888366121057260869493228597467476274645498717875696555717819796808674850395383439279791698760609093673868754466249977062953494486193029985354925294123613771810412185472953327972316402813660072178491499975726070716947757406095986297735853301532859011644117655486969996907754277277813086788105124587509897649704235661694936895262833740717111699265988688660365047100717764326187888435270838567242064778176215853605586642184143635840607871114954439181243958354010384899714987461232595196192898510447950221035984585686721156155531283192744416899467788207679259195686846223488359966886813003707685521750855052770545474313907155863640460144116560876786455499049684602053357882026417520594900790880113390012823223609961000396333929952293875617111603611690117461285985105029299526597117358853635665157505180340415785870011887071926398240672753337816595976181784657676212586508597155506813610323536888682550864444203940149439352480721582802259566170133417394352822456040363852710436924699215088893627840501023225811285245036028976425448816223925212562721660828685925465585790700414922336509171893513792215565945269593371166917281756925787588707824458646320058149349755785257104919797673983374296232190822293023978508663151163420905128880565813819150394300043031682429270923372139600250298265175376416250532998191927175303626944953752637300913820044629512550323775518724442228328427524239040914607589388368271834695681653478007411612989328967774606961356076184846768889729946706923669025118626257128790877788571527849862124065280964666503248300625606969227545930970397360424041664516500607131764347509515368814132103855515034838988560814831626620990261944041229092004955646942286788921875314009023453526195378018914160010322056930982517756426957735193246344526261666945508333667676798812504661368138468966308291434355193994524706604864115545600563836921762857045202400087497771555783229694863866658977633255323792963291510842708844572411089390323873832965497443196680529777639255576508583032912567665012913437683714482873498849016621841257472828857241168540975282113868567477826579168021822110577618825923704633481322353292089500777742094724617062843854698697568695548927619697366680145952616745054080732806360394655049787920280359412696017864191341692132133257354780407573676139675002475395744880940720609861397496881575195362915621514845861343999266300623042030992963734463779724674093815728330156500868640841648982540978986032723850855394171882232565555783541355876068315086983235833927767889995121887193924768465499930028734419259061541008164357217120766645799540017730973716379459353905828585500958097147446562367171336831122679511818753348887845653445165764902405572758421941544163373468457277687239381851916456688170114063666479631243057312439104360061666645070238205059130771502351658442365069666198617400217495942256419563057320061953931623115229857753084910202821534035021322971395848531854651414612858922016985890677696757687301440649580294099195626569827434844382854914950265961644864956448438910695100479900890017879454552155098353280344778816121027650604135962645085033020494256792132414676737325167623812177269157638017313020167332840609954462369512030604162312438026448404204272170617447745671362405182988806016891745758025470559590546229122426068715732351289912485161474427487132734859205965045423707591459464601202340166921576506993559916054611042633269792414931061120216784015002726209834457814866977940015057916349110154810035109411531596188207145457927161596752472795291523104949465070661486690264111437306424613910604282102935642808730535819120899191946353095123724076904871909578469169318873141199932317827419005377519200497045726322818006989035721280915637426422156972748441689829449376994808465286082259959898192006005156997758459816597613235201908042485411279299321004967646623454973769798072923462958743909451693054035215806791171850495373737322351491842902985778323952692826821611590599479855321698847224086255985109803548354023554103865794720727002197272952821732951994767640273349051292388111558795440323892226687981409395216783307889173039286814655942924171310391790911691517740016339347009373746913389627920644102131719528309188620334221875046464386107786612843910615302875227398141911592901927551800345817937986123287560867606983350055310174177308982264057249730782045748995787799716045288537824439661026623702585484910537878427409861434343002311324324569622043960079731744993126523080067429828167997162399558640994899516439839947684838483693143314739250828321672632417935506378904272564408560698671415516150075553371713101537142115132614288543227181537867527863369520561118400236944788334078998118616420289134437911995840235782703061633453554775490310096224867520310961587247946480046010119964230821631889025228907592061960998140673588439804195817475016244667419343919837772992390224555922657011607032833925229177913498565999125466991352217251492614858738607358828275235284910046394389480323955364090088528957486776899001119988592017566783716122166004856830748295292518547378594297548780897635269406524575960675674871994477783740181459631372509830294127524514632717110256540477175549966185295496433504250700538509061768693927234056809737693751410618293492054911020101131629668914314817256901274898959090142031873192168285365580017489817811847961167857136977684143231567992330453034165017814665655001833912534021913990619046890921807868484510057461813189729940047815237890576039281721837614428413424791841803453266664920334348675563349100574579110493443120645748011379188271481139684837860291395368162473138460757976188451125813493796594322185330014140518838078740718477656974448690433957159071296961261172382306446131556979267967083974576732613245167688037179206937893747056531725472722914134285726819853630039958817704584976709380590991539271537147514598333014251414002960525277583365870202290885013774073820474195826069176174363356137430545115458038151055103234378184429060825724755937552303782855276280943702446231364650647574808015736831700679824235387202422463143018761381516670680267976754193066526689568583111243431531373873819993022849115074810538585416713071372815202436068423335227946944499624793302055864596094882131835658649283335872581614030499091512777488438220988913065251925098824989061216576416626079723304245348355717131244021602718913302645749149196390519932877815141055580750770278254872076820601604740275298441166647610528037076246852922345488179813007609197068046822772919040807160989701070969887967307375999539875111405167667148059188622458858554704611820553715777104232521045248732538513305723699127616827761965905167914189805460723540489870992471296028078568457400593264969570112412561467235370516911362584612393296738996691045058589796277658180143642683237742726192107639841488338054190481323435387811595347605852787145881293576221329225244219558332014132537101902817937169612305016179164515029004468919109189234568332500517191517331150283842214679227917074925034015731643944118497735061457818241201593574233273182170434069283451561090164834138853981018489566875370969029480876228615687357488028121046858226446527866754689167045117278257524228640281078087630510023187821732868884523878960346545114948006260670064791897650370499413665324777161244417746285002877366194204300022390448595214953290012239124459769875752295502327859014652965121421047343263729980475488411563810472146715924578493683189062396311786327820047604770982345821766235114290777345220088653149241897528044359576823303335064123636471454421701007606798659495319418625083465080775981185129797933610670023358464353946490074059875935144239169785809270109925539794877201546522208232885565438841815278107362843657785036475264049302933009337395978260780091296281233871617070121912056335072449832576029694440632645463019088526213784137339818303754086867511856927761664689679974304865259196015504368624322347538771340145150325778343141744980529143056017264196731641199959299844137690424042001112589547187347437758443762338697480101702300114999250231754038459242225830983900441600648004471825132749383308876532115560943606638714981874026704745931680547767513224142992786126737272579780492758488253662841710789352264299999251960740200203279350303407801303917079576336934246367348118800484954888080036348508422371306887539353031878800732930064901319626425169250681600281320268072373108312914166964570823048661369802006483697742446075913367718460181501205778558326470029229013038711705737014415728599387999217814111317997041342452942407858052988270264664766032592790462383408644596347736269097620808260997513135124917876224972490725011467266926722251294218534528390026269443190608841057514678891779512781699247189017894300051784976435268303750972619332933937776695413675345063278299891435656547326639438738888830450372875005923179591120792945379531189424767843964044578059418324231990772167981644774901001949524368685525662866149342133071829326414908884108990388609731127418267165751993884891974108243794847011541662033726744152286482880128692501646182982676762584812820001002436381575420526175222461908593256273792232015110184857410586699669007063622983854142712025384606404618718196339738973938042815471920721860962889833416968915682878938151983759567511498728289210642289705666778582050464588806410684791526687812690715064668236362954356747899856434474180245777501744043952040616479901706862142718364876550926888846336095272477486786401967294223072662520440031747280180101862118404798171602037850322279118429776727267151063790934068634342542567112168085433649318638156645098139204714001251585061020968006045310029560275575455649825236658812524825363516438140697522044343382266054838193477673582898380433837822141938743524143653887080632742777588648242647111266172186476688520198384690260386775927324398408728440236025426214753452806543350111209959614822411010108920198370373887030123722997528944288177996294256965958345564236360205405427513871701220623150533217775614160502048595851438009840544826140647582930637535011136985113789262695974711995236392216426126500157954762498321014577155584991567878027576386836588814171178014851768175306154146050674110825572619990801208399312230760452023868942521591713347402746913184897767042577763613057127220472335146059913607858440073167367946979111995424264026969660156619163292668857480892948922848838745938549784849333223663633206287999272887889590761833509759907006817335206243062489262774029866930427355121785092627230628647194379704110564488181557817595826027127858673186977298947504344114206504316843278787666523047517033045371850393713866237351592391524549056381302619411104077766991745138220874863792189218119660930947209168019168569875402216824312060299980613312797709232057666322811822556538162884633763066881155285327124765986047416222703223070815425954050881206034304232059571311828700606481151308339080985804576881338868950077727422870417529091228972812765968871186525609011513650703276556816808545687151917987486198712549024128695739890994284830612820142425656087269327487693343568367662409986586038382551719741285019115761625247134799046986249748638420637679719283733483354532460581527569029000678665475781006792278748684272923292736553285997952409768683076659819372019814616823906084054571009592212742652850648866249965341101035437100208966336409417350765097522057891237762314399472275267880767923347019577078531723164170600369079588691537618677192745114639011978506217037718470428615290244337909912116984268913132624644278741099711355991240872716451878234988009272110500528883403303402893174552034217288121615136553718524526123502125748617499204485149995874015785376555048951530017286782256644765557656277263038941322551051979474510133340128417321851861885974393143162014668469667260542810522299238686605521722604259604254339680488164069126613130296929898910647252462762921152426435063173514445560251247595962019213611390818809231095407857525397062105529829464483260075883098348591351849689331441665105780615712908509535687531396317117232159829861044255076806629708108992208204315879036338136956219953639525923724749633888611678821400125099604546459143298007377099413827059595822615920369598346397605408419966875485585770076617924500122584200913383830537375644616721667509365332723380411801549354229125809315546937253675545496042893540721905932942506624200436283092483118595321177452887019583910892111243643569889540626558928885742807963913423883073392914582727095117133533581991169345988363827607010670541044535713382410716020541175375710253784101521972916697314431276301810684236810676805364294373366290809441940392961545671616178192310454416685462205350277646894545841024924486073134178166248602647936683279658027779462173455503899514557942884827986857605324149694151641443870199949750505557725182186626233474327442729027468337986773295045347999387013132059921135778311113638289920021610310148124603929909799399363636022074096581372285690000848728978606080419309148059343709515157429630539594261725604603013113475567130375328883407622454350758689097773070193049476849861228551331255534899189088175671700071591114709774277216372117170272140548385786407100172372931558611203566200616376208394677286863299226451615318913842212195554211698982289782569195997336342718947133457586463708178492682757246326581844988838501310891023364866603244301479682275752804885095532049941057898736173378219623715537476420661936376778858460308293387719839044930997828765255892471439234747135209719395197632146217353227570400136292615141127974328859907739848668539873823657578705406360893004812740286796346774157409636073506194567502421820525740515470189540243480165442515605745621548242887652225208613729544705967691040209573609205782084021992065707490742476860105795017727924904878502132922084200914187024198067924969195160020899026297064728078127815115273946377121117970987314406414886972022973233893837762327238779866755714033881183157559806426369354631291904743378622582282191270556261667768062495799589900876915851076521299351280316714028501373529631149012261729564920055840267415785926226732319729768624005673865082336027635256341180594645555240340166287560800568588566238955395208178149399064521237644237925252139982630559752640971018785715447381477542559246144299177859109165300217067632869057598717914220125825439622282534739943083570855364375977748099109573384357074443399416602421175098444153152706682870092860546936600706846288768000673134382507511420047347912098339720457576470022921241571490819760706780512704864551174935695155841752841992450943243637722701418121287896209117754226211423110433999608218483932404885369433994729795592635086720677924082214490828991022512988498590134917275235356640283209338662642831104370330805427929568152510764679058444303450461572847137294140204391210975069645770790368417538352052770734132814703265375919128173813508046778559560803907601769243537424883616064691080570631796814284221018724098681769909983968429643382502360527474609792024814633831832337298554293387149794605908795080174494136424172357469586408313934489280499862463827867875863341281008449882008816674434694131109414074707729280697356542002197121028820044474494665055183658352244597371941989383588471999939185917563163141659333307590597844985432680169315482979473046957295844683518126652418405177730979355533930051482158486467346252298880730959080437672505308466696463080868656272402356161676596866549139478371107350816110235795477504975024230530599624537491832160222805546482105069138451244202833243126184102899972899629398625825708047501139178095885941784893887177214593789341104964821844655758409201128185848541898089055793523532141728680328439628408984373815268964360914796859105823061904854620004594120447546721740451906557569199940180536848033366834230763541776566316531905583344168160284177466211232351559069484814716557554598389132593093197623105075759329689323531755175917020571865023331091038428262832713852483280974055681170381587604018541562272138891052468566962765429750352333933299269873290739990830636923787325096921211073045096810804871340071086951844894870416569249499737249658760299655746201023474675744133263882482196276577491928981278174090604427526292357519781259245222778547174883006317906341277685193756652430979624372433813588483712050490234845796162181181306221453936814277272258133046956237595888052886661761185095108167066350667687795880885908068209745934129588318150776877531043017195862223292278880950870156304700658260905781706532821536190151687973720176949062377066834113535532806354033319816629167773955125958923859487501540869608936754854481522396709768745150789698401336648012132740779552070367316874308601232882478680929712251495090011211105283036311649901638497461813865080599521642047941091626674945067025014909863751071064246912139255137060278777957427948970647232275242482610608063753930705759604674713754739181859333838420267766037989203948926886206717636017127845446030287114061689298526213918176348961810692832825384524025774035211241093146405817782703509268829370771248265698245029006685909226019834369207627755559708456413097256096163409494821171137864055915365291071740565440988218868709815109804650126208001146562666671935443941044959115574366435585410455460289821630146193560652768247209188768470764985529670226536991614323895065704469574913116678069579784322463942514787544416632821367251282889482534839960873198331192852103022977545399742195550232882646330868192042785274453467821273878268558475153468595701271675562340029318730054081450226467851653124898176519601262903025537478490306312036267030880557179672626712045454005839316233656644472106564945159092790764162757328333866543628259680117224360182372888476411981122843058135780639751667547955138492649000324264148251617230973774297954235612424926054781268566415141535065558576361090216925567331511544209978035501178790450734675876659883318710106885215785109907296234138034215004038030146851384552566280979012572781128185433618802545742530358171036574337403623969382990350279412255048846697370416804894413314697522800023828488475129693785801372403628740341620953098044977334021058189705873229288886074701010469701637540229319207131963565353509562630546612227683616247328958669777409746512620327480297526704481384135693412681910183657917765117143136585552086185189663289240055830391403156306199722853425537502352157244358834362248503209772962645752512376365396135202535890319143213697836760005331991424912042418494041939979672486748943395480055337663550771447818104335514739928874975660841988266231233031881792472689889152064853045506779295777576843430586741685724652541155765378153674853664178051606974357778252809844513450379464536700126225658420076323392323526897743978275808829340621919814210887753205031269575761248014385537219669684486532107582056285260222182836528834986674755317324856926016023477614427598039869527701639359044482819531118806391569962674446660971072373261449370514255751769983266870820218737797721883696195007185786720044975071615921675460851782295622172816564860890368214475265069888958941478813810157512763368851422551692637826614401025679699573789505551568197017671307378433936757307946783252939895208858112400354648910324225559867899489728702824808151202266474991594694445428216550290805403312708506977480917544665209344055111602452256611780496276513229901041566501142025394450403851568730266831383814821260007804423378788232236767010939361017067485510953633342650716458591723677858543072815447959743768140680377562073554501877629532643390214188701930188239204318673895158867042840740618235483497817935748488117092695414458045063055078950302097607585127995504098039527122528295530919920779344262824527870257768101076436831079968275539060888907191407074609159341993521991302503501409307504769865719497572793261701609755137200001180539387992468762093297508885475534165218357884106573679436081525930736286900105339713596132002050448536861812593876906934171262147247022418314176305142099704485871254302747763845866254483883926054779781047081856749043780082741064872617665024556030939003839473604341340196746910023639642009424596617140483805433615269619108559342436465508247810552164974701723073045689483858698038768669473300487160207779613721327834812189414724143324244800262478740545887741511358668226985461643991349152076241666885284328820371005492529924354146972957917808817616913398346329723419452421390526301531880674264526225104415266171803219600020392053787184039074749686812904157880706942904653600917017972504693044399785626672397421734137079825896939579711188568387606991306085339771802908410401322395275488401446191912971548148464648514297386506984350415525342808943732869886589120317140500771071355996684939296028486440321188966918356757776465604433459011051709798813319457159570013123485666758557142044758633798115259861084244110538435812682525637734262282149154123408925598753079877596247130720759359497035826563374173513992085035238282135817029429389038932640662107151323586824375684320020403247241942206182042845458912511984893838697593132451374584895864951238871813247988505434419961755374005659521702439140271551700936454794670906738599838590097890657289044657939004385359968717680782195684001383399385200662926390630669407037244792992675087341894472328854574334878185399088299404350695223089493723046959179346253813880811892667555354324081577514965253041826555940084517954479557915350829967214476862032902291492460054518837200628826067782315551553122528331330009456617083124578960929607238101520225071127296958963317536738057665975673749500508110166141042557210481220599847429479745438177909091961556912843626511670020539447144096281638264615423203692262516659757410566330732912020838248503875608337015856879950896284569268097123858627226382716716763355990320996454297079346463688424106024128116025594718385658443102634389200454926610940052416474868188764605203327269322283429689512545678684892577387543152668966388536551035469073072578282402835585586500960607153225773129400243802579917379194125419681747876928353803183999190011657317749732808922253885397398272868890636942154393492388789501440204904017514311002370624517220801712731891091538899251917332707028494032175069822552231158011920184648473560313413856986930765141816034306548206685620751495249423292025096429221887132022070899983087603625300636839112860217242067506191901460330945263210726993830683568175865141067581189475149463946144375875759402841620343124980061057401145439638283785459016726467354796839732334901446559336450091146151368464568626613917001159160326961564783883814396692841420711394248584292133103699222799328458078393848265604109153621507847345405038580121860771116769131547545114679243413689158206261699758645923840283623354332507176718875349510994894331543890172725297796051808363424973706225132283775037594853225847400381058848627052976426102758142394142502166304179486859836390446620984849103449356879843441626292791210194549354533971310349918001302265344410697609386049788116846901251393735385736577659999072931650662281446463837292920433822044650262517962643129219810862126328436116905397278163818706146123958379491838537133319877530304037333121161593478041482261986994979210911879524803563738577535985085847482865110916074919085988867870121640794080369849188881980712458723113880996338265618441470522465663294093379659473034700874831727302691821934105136943993068562119624086486883202821584375840997080242090849198070510150129235641250335908768040897510038288718264756057240819393028581173640619974972370495804984799061296676188150728957677422789687847397763646160632640024087357979910465336761743309261640990599229163627918609315710247304980875525002109566150786231205757052642030448657904073441313764409260067033484834877650226066416818399589553831852579092822717411894328636566390576994347340636140227271929206781423687387652959015638601857853333608981116373025410525348009401693858089748772093427092656385532988912022372748703264424464026826192139743856499057796294253938270625453224094067477703515540113541037850109178154101767402991460123050899216444100181541377424715195194326354138102532859200505852528898292654665055331769116285710649692363718021840805074252972292994455178978863262304586886819471633994336278315342122844057514962247321373073583192718888354341088507509521019673082663844658529232131413658207567584155573995807130646799195730315581544565527008496441165976355484955378609254065121661689298374982302644525067128127358234467394829786989327577891627023646168706378009769887452562218432278480274453030254800522760240809176291552632493054827162928944085592637801107238203181897993566418521573514286269624173184125168103988184313715267680037380643719967511831307756644468991580199648647402049820247023684328057703021147868142259616410947245787279677692736271727880223897423743209703417890208820508674897491237070762832894694029017506892593081916187918471716133798254221907766676025841889612359485707474178009627704409802360533367698442334738655239357784418869604657797057652436922947471171662582522884506330165292475430698771535605397912223615125593424290898752274966967520289384872819144395096907605116717042621707922235291065363071542906731425943439256038992111407649385899846535178452863872959534705052613606584156526125348026528255288400131278588372221790071848134997289284415635743641985626613913626948317452987456207573304861100006149208731379156696332855515962252829916590520441645769747833777843137834398796826377175758319574409604271825926443377280302537901661280147761535698845094677977064674172132976403825889418844967087362039277373848655826250181456996564799093769541867509445070065683643896542752532459158624597805294108598480620705771969747053843890747709930910352481726820759320972930176184622705159626112410379887604375326404124526674867136702373447530591602188364364961437354786960488681605519703625544933386898622190050959080826125657787939654851171343368313616248669356438063582210121584807094906705197756316207309906894675014818090993289686374165533360724509040219412456016932389182211427315607313984562748266225120105348753528450130918246691146168649879876397637986440720703974495219753245806534842097036551931981011605994261781342093486681838479286670058912535838155519314470702371666338993127030647642653954765434609090672862814835558992317346017046425880120611184828027942869289045075243321151355365545025981786019150301141619166324586373495341312915782648978790104042877497369269983979062336477727592141417543020749531466038620474706156692090534532408588480906805052359529501200092742285150169895083436488147487637221029420532247607574668486997732494355905670124370062807306148373525325829229418904515794476962163213014543271475815702007350832512082770785697199734922713170364615855596363657912949392319526841346421957880209767835500744754470822456406820798952515008433337802774728476672649305586789336848974319718886182833841116305894007810187477877051251774740501078600463127109066098711416505099712250678890333803331050352087305246725125896060370224697692490753259625558320998516684209317515300879191992260805413187760909758052021879857688959008873834247397762580526019507526485467110538652035656368232459493771225502212340676619411861504716060867747497650794221345252327872138797769817482866908998613824118680712358709133474970611331340353400962441217455128700398554406056853215777706345347262468989774451591585504343510657240497562216895282397854035586362930866202996444263426651434497554178672617547319350308504120956855496794987492605403857120820973103929050447473633796028924464701070443785924693465431787247698891404846830931193036210296186237975725681290338115818548133664529286127036357119213199662589488882040472408021966329990556761431759793527481346485895720021997136942219261309736181992771656989198864875712162038726168703135646304146786756970302670342032683113666186067142912203001223875704504369237656890269661136987693542211312707335055342515189127080193279915516973896785650385346488834123603146214579179873350263289463933493615182719759448219925446757153378498881487942849870305459100371325670342818689114830755251838073559090600075840185251168568941155253820074784383836924044635412757660397437956967463884650685875022265946747632071978436129436837538586392978257319351253881275625399992114439567407822509561574238773203844380166156395667265399312772382537973811047342896655649674358955328831780835424206036499922866387356120763618314808280704235365550862608564420664265170203106435347977417275849942166750863207827497355852603016993252486159124159469175641277143294000925225070103762303794538523439231653321901603589949124901284935878532139285113709309584187842538041668877664064172762816267363311609642124816281478000166563828850574294128181130679550942480689770985992416543911941753169769199387582953179660996451751163858801713366383492519143075401518184467344079851678790321230375607257520716443889822230542317280723315296117395527337690383419314593151159283893522355680037998465536280584962883901356487065702460628328693141234832229207429013494551887908912303372496821099259888156078269428584891464267063499592631689443447221371199581482151263110113157747286532635484158668904385259692908662282823946650136382330260783499508578188385200530354467660969399869666560560738364109318657980763585250853653199813711197792182112983170107144065791789847007855786390543468006660870995685366446643742896990017280774139648962828887100315393221620161151720380183745644846165998102951050865957334392695182490166328241269502369354288821286253955704303840250559784181969199868265079175944692240721671798199589874506563184406894823210541737226162820987398017897522643004171265119376849780545783029188201584637365719481243760392835297455360678332057094154231426282119692066733501890625525284605932550443633444178264914541380057619036902736929032591237948447559442265949386575186564914126903375214102474947331864203776870638980041031666344702338144551163347825728317334573901767690100202135534796645037129304153201254594011535524891953197068014565101956528062682648519867160154973060282276801665803008172394535419347566282354638905288648728461192406633964309698362411576466690620471256944634314559491617257275246765423103980193236847649941728278210190473097859258728146383220637118051178318001379778788026835254318362001799717266261508483274844809526539614356125602307315340911646261827568128731257659142373582104023778524169151176961451660582806079454325682469715031799672993002050962563304460541587356427966654851592669947781361311958988318009872484589771548686630553003010181714307499886431671651872520601115413232216772148598175053595061002700300514031579206528705859385379202855703864674338450308685193796516640063326618390070083349597285921198813858568068037321034265188464020535425630780195947169739627759745354574670558501901256914817584479052633744491745289762535987248450134266422037038435549022101725077087615796764543569077630453502979659911919338966592101646358092143446213749210065162087945716135861376215991170413272038779596855824460930035360208888534459971980444303408367797485469288669147081986814725146208348298556486061563412515325202912374221092427341636439807144501454611995694694617654921779416280170872381662573014110655147087612299873874286598428504324861119146001081859432134790050278013562161092874508068163805089952021575889828511193282939374983091783460261372725701567729318340241496715631665711286241111859034742792260690373580300311478460874956487015983026208916590938451469335725026872253893353416845340112446273746253814203744821294805530923149805099705097185606346605804126603784815645592104484030665016242106956260230293015389044206068386442927880538667283330101380555299734343222789887976884252466518480598292280751238061454079240720866167732896802557044672325033018981304299734438005285338498697766827659477541689359614038065437181453270286780711898994922012769576247807915103874152722577989161095453928839783761493532916839328799718012434506210601310595628044771020068206664532405503736219381190010608980533323433891335760500616493713763261105215479185721245149372423883643582493344821811063891118428284854617071858044940240051677776032004358538809330762936022482967643143410098582363556622265643895999375551879148031090859467501281440317766878439444995489063848656518955202132872159835639995547365129783536413328069263850612256627042842790001382768302587765447636004098322591227816221147569628276787025208104723997226865550680636846531480820319912060270148586681742504641848118164300434497060226100325185765376154938229113274443838413216409809824492566700710301061620773225214415843364856633076748844598742796625451855807474649105907533604353426086998100569583177319779987163612697011465032706806124183582062305247047669195969823968581431003531290758162496024850430983080856027907766297899768942976567081315559059808170490439760526713201572856702158957062964815961782862133127344230752421761686614951955120392154080447998602962660252770871984719659900905895434144150116006186700754563369927639265747183820784641961446696902910193050446191036459905256360132263036522633239511103656761392513066141758915649592299469584550112738552622284467856374901642214756929005698165302467806609219728577627258289904977558908418853880449561087669418440323838236385403801470064143008719586312628243073349605442961444466518644055374514872598694853009284852200325315158992480335862789101153558833063436370015488674475725143874226451308030033251723435702685105471338863947189356775860590785668621800268558036525396975906585392877263793711647455860816716289721980396323885340065002244809359632477969969490247023893841928258009925671950172646700195547386711301128725920002192638350222331054005994474186419151915689286616319301437129477232470042857074977107464031029677652479353078968975047719745004799582938399575532131336085584243152487231357952169101311687545949939627929873075286922012035884774230014847117721945612306703076400532524416476740659633083010392227877213000534230878813668317983829793258655602498545780289743467258132140460570499810408643787779965110469562163115025441623245761903009276883004278556975121345844373801036315076086099248570459467112047445708295388256216275858209003699938003730073857516573657349940695312491727068039132518125050318709778780210593746873845708642932291478674555859441400676683625896092401710282789124724714880589295213802351214592756511340619453207057840613541319649800994060127318718593473882391190217589840155555344571437143317120499375500287574658677113212823019288952173374690674770348311193476052378651927654760576498881068047742775172234508653382801124855010072855476839031916705692030975066746855193265600375340587833654932918621293396679268177837201184415067499833706816153807388756233782334234224411772703934760397410210234268510656847420383277534119063844793946463389029366861616245579057261501262644062342248817867575800583330212812404433962445491631504331188725915401445540264653792548923938839491030365659854267036465787750512645745976495482291712196212428547632559052643720599921370141038020894229090108154189715925702315625718112457062321695084456479346590456100530321681456687819048584249145721085894166452847427099936506068924579460813086578073722975899655060206590165625549562240253380625334757079903315738842769476919171525819400235650244371449338566530456338798597000463451576771901618061094354005651948320237039385066966346604649487599105437945319102347576294965786765766844722733713201045767311219535623437929602867742667978113763134707819320952166393920560501776785939979905283536003744820117770569185775620774926296235724997435846892385103545671762486339125155421202973373216555293895024048737165210547492104138114588686959192258187482026437263628669479895291820743639310838691991092652151687868014119436837777548931639938027895387687728772258535606057710540659974426291914506362016938690037773360951178722423830328499619465024357986730544512965530998109220831495078487036670915667757511310865875028183544230001709011295634202647628183342127013254003664400952853136951962730575529092509241041633376749060814567459733937391806858510967882366142617991365220505017223200591761789491707269598466537347511981987762067810473855908538952025582891308671646761831926439832559335634284375701433524939054895981218144920697559565436754906121366612622190354823140556245276335016173672627738522197613098674326916759989701844081907167425326978738135311947974210858631662707166581785094195202871758218381928461760657333856617297978355689334051669052302527943234602008382903891887644192748507079308119422593735215998712436827061371821896818946097141866438533143160196463545252921588411501594764730589197138741088403959057682309264013412074458626112299161100484983939022325180949361381365668004584133127278708525726591272324175069020423976722977427661909329334538107104972509444732902458977688587047239452260301802833148218061318974165344344075765518623735334633967560386551228223008470942518125679511606881848254510124616334840072760671140934899442304436047588522618537751247658437708343000961833987302586381956873338318515254319472016649713745229778609194728816668812945959674770805244764178813876268034427067641884195610157468030146345492365046086797318924849068751323213061923990808413052701071950429783411876020174020736129317010825079036342644688682435594469518130651166200116550097666954935197416729739433729976604987933928972015904660217732617173597920123622849040894369339513199192056753871246955012029280182040358563784407914111542127380038824734656563363429624248237245669237269758978310402615796170638727102336128156027211588481860453758685206133667091078316197038049469501489454209476710936995469224371730720780890915021535448092723694627468318703023235633127935081356288646122276031192495306568350048355664212544425562271000078854631382923265589920950581616476755586910764513756187926206489704767975061539078348502447330455791395797342920565337615918542002662549935489645506025666589049041396142878110548610679799445533818039743852682820918327476801023683310815073498814672975977257731262216322894381786486060142075947335729612737580866001677962056626782350451625664851804756718169613161497198621149076710953192846018313350398818573923578413871488939866756723468407810038636777359868452793887946504787300704248352659790032681291274457490275792137516876879853815349401335251411858108532910974495830353901103354551493527994140439450621553609233575240735067184040461405724593182698074695299517958308456897065269552403660627348706069725230359724339908157376969330880567388378973838691807339464207127003876504142068857310250959896411717713029772254496143877223063645842311149267464398899434151199631910746827819303396035853522315205436664046691115237586540728040993194661930786255713596827242871283046669927792999721365805197614367715472527507788612315297366732855311566308107761236714994802669081156630887309418289778052765689506685243331936889270387589941596060049318710896092428226474351719175299898140101452817062264321793749399192884697853689437682058616786829725910079228766923026911677909995393401927490919589843915516201088781552501067443245207923553006937629395339396254807431254437469543269536540697825709923682138023245346405453370320872378720671894644316896125616885209151522430783484841355586063070173325369945058946808078774776223144250445725490061051614224463306911681830915364480754925232941532521276443637290547920258622750325128724193100564852829424651451923844943257880306003665584562870611687542037241318962571461757428023203896826374797661741654100667273766392043133614927072551610313181271467384569380527023312753400750289337347789894123354182086483837332196843707208025370487541937477199065093727583650762318592188957379243501288457780179869770835277112502423105919230964463354275875978606213062735733815009987085242360802858450775585651503700822587923195389707450288437444842141471307903518441566175955962208446788393353676012080522391776101631810111700694107673774212003319677207814470784587568118057794347659212073744093536168857402408031061060534304979423108086239083712903058608870657756655742802933978669361715550058879930809957731418923370102505213513853900907345742786767540098683093478917543547897155128296002709098951395379506689552732913833483210112832040764556011530993087107117865414310305767581197463282360794496168806194181486119801878364418508407850159637789022617287179409670888002146815785395362856537991723462998819026586721369906252737610793534030455348525151739369289067289532701177121741167259291688940457631857057745620140979807866166096880913148089737223913211408899286099503047330024086081161578868158942107113459854832348358912293710153540658856442634537746648749129234343955751101369662708331018271291252394435378870681696514493000096831527281096767119506766756403340470845811964604887644544564252079606144620386036814385844531819145458766216729992366153000581004005293195587906161051007523027773959873361675876645613787892014104302191828961680806341046451968389346301596920625504659042385397563232176832534865378963142436497393939763666317958891930822384184404347386034181256091138715424757624750567098419693859791974258985384648560027122696780394311183937302557939356443723591310351234820508282602144960670346500180171743136606624874804318585271526058456752641266937644469028194516193090454607899797644584029449484951139321820836541100390139023377693415158873554646960418279498983801597408400034057586348252233427485514330261853019648362859818981591571590914829735677379431610213424070297012843467031406297918968157269617991619431574186685459938085971817273435766245938001104636295137423894262745922373510329643343639383962358878178920717119981106282545034387698686298530207379777936177406836470455995980934401499446568670398339814646374924013913946894871902718427605723873930133451082964223587693738608604185135215653561384482943180105547869900099167165182703688638251462326409064941971655063432335139762876777650565422692157383420015797842799582649493977251318199369715564918170253049126761781653995486876615017049668174740116386040666861694370393638859968447862509454359362837206246427585335510448701139818176285121696472925191844091970035531568013516074801472326880334497145642417543760387836017842546186734103675988320064934001998853071965464174418598948209075052155598754966891920590746950593700042596028056014084153939926341990421036060656085051558056794751790618591577515591397152430212257145444485606637404237183471692086186402883324345173772705897786623704527420856422011816435388950503883124228631874657968983441071252077712778557765829257794563337885836390392705642564865392537178395183135706397347816825603192814450456988928113478619198656350627951301841834442775980822818155708942046348212030545230915392927334195512090583173217974326108322008173481402975103036661787437287119143428110932505516664325006347582059175057375079400023079976881054140621123572827692276758625590833974419478144191070506597587585332365793707506684921722640549799216607008666995604072783996971661057693566519047836274387198909556244447162137466527334957402253918595894796716421399186906410875848443595869706059458905195177347144900754743297381956524042126287572666468847269729568932492480450555674733208526822347228198634428332116147169224349825456175499970652051338369490347184192955424676269326722453479739349330024663509928793789911895317422236824219841029340276914982409636423912410790496865486377024958296548464108090562596065969004738271449953138973304087716636830478445710778588621479032472957577701488833106753432635177478342387097272688764338247948126996670066606868855417711420695583403305639176250502501580386689636680504740776769402215241953679471137707427533126457768108843832676265750217851487205312229217214298021556936677460881290030069737923803777309635186338581747082055981033779577233007955852339941134849069555972421564888207937974666264734388457514902755552064915651861955046437172427560079157455821473917340245254603642301267481590971254056524632220152884464900595091265157693165154976074273955461531023619272023144529206134634405935503563660272993582832194929555687568442069888298101570551753784807943130363782248998980634089893747918053520436399924019112406553849857330813650812263072589641702490373371386343344805220123061868031213376026875358420501822751164290721993815660233076642047815090148274144236851589503425725042905993591292902906347063977612589601766803331405198936622806163367818970410608405292832914291723841399211989319314649427886769710159790978127954907312253463503238151272866350780846474155977435246200312680386433353299832352369752298516666838032463366173706506484288006176939320291354584002473908773780204114551586912562631322410183139528346592382335197002615443947905172607802589119491842074557016683596435840192037723869445316217098104656986823605674423184106441240855047053113037660637737483156300289128614420998220148324460272699047186224487574589460185873621716043876879446715730305264873890745028361249908547821939600450821560663904952520886888606169415509040867686704732852200990452222234802168681894075379426492085523647766049487039561185191066905529156912108332930452934613682521232467887752245890950504292090978099572608997799647156330636103093601926124117832993960167272528097337926400674190405698767679750950805115555013373998763203379688358490791313695481783970284765780348067537727563349218202606570170527069254511410014908579951980953345867290068641069283792627827683045980671103516495428167751541635625155112020841047583572313441624108627161678228902070716291469507073778449903575989561153365745413341360251507230408656095831167733200033818607657484332184226706139821091971254708600295830798247896182217019488825176405647569905169420517619532243223413422892936381061873672246578810082453033136635878423560960225744409320534440201270003570919327791126802328898893977299249886039387805317742957296094956030557185622987784652365648388423038271877001261444667762329699481808119885345223965671152869568310325831253356785386200640696150530028864931688353683184659105531577909702503811420981874884508967138513303366948995267720900670177083831242185294706277054580477770850882133803832401440101605839061832798415585539752809823275323152093279009785285392130197801926685788315996976767597158586033008788363644668368327447801439194612111730775489801642391339794161017239951385301619932656091884939580597742713285840434588054339711167047996172708709615819010893409376655367921487981034194792479829359882995902842365507952799516798974956679161514001606140286751982033449480965041760255680717996078388186990989294083859345975408660444758143090089535124565991345869313720588376662403121336188440221204555287815479992556812239501915730932366774055040982461433960538644647883434230911558925799831747037311634457924432802696740788897060416255877006156489770401103355589653722505219667346083560315802827447287940481732823684376524753737817159255231325136032232366437286278845269534892278540447508882003395306583593462243278419394655795393209513739786014629407482080151635834726678867365389978543643360028328784619070253835576516339005309263883875021532252792133506638286332995051632587227922697760779261003225261797772531090123599591061532579749943575127842794058283685623697581079196500865257561336561994388659660400583813212504080207043619094282776741764365640878543913670798939074288234256420865198977190273411439355760545449098316441856317148811454775978017865625700968240617890212120641469645357640660751401456418711635311559814134224962915668484152335483972823739586314839716662869029089332847743829159244219481299477840993624010588901244521265054191615212274378977299275189634960412316319850731026763244500876359053918018651596981084629350638940891514571275583935001180039419015209269644576043907702243145592330138437872318816246010052609849226643726720533875053698142537546786779827641011431357684896738822777636962175597668019079737636091665742478497584342475548520457460026074171200311229056887660855476657239038984789295425631239886322510623110193532543078260883201688040781807765586339247917704109883675345119161906325125717911477284650644097693998072739006390719134063505571837151307084969122430190512355237058216989282821620154555965715565026876451595512320672446847538976436212672304730470239626934945577225780869436630456285340541209173278552518982443568495684939278312523005352042526149019325135118060638666751186043261971989080133180333051087287019048883048585848944416199489680179188931766684096707263879570479652032909660997258690735686730451901710426717140783062516476133589502371548619759677539688215062480971963691686743534299115129761991647629008635174014983379919694552448362880618743478203547409119912259503489494916799197408245464366121711067480387032097350381306179312615023774201840597305982758348502369217269758136711475939866998424460756729319103166033303342373439305567573228322262406178114251781970345333300884420074802807666038337978555560965879124775403874386756473458731079258577939260738599073983904643843437261580988682409499595068544990093968155177014247355425559989574318228769480549006191937378012557107343572176559973901501675982857324962666294468785605120284471870674179784886271254248365556234600815269633151363758222664722561828051753395540869416767752741151870679739006137193574073534161121876234991541417325319442945019299976316286661912687462011217298902210847456637833528112055885594486716214917022307082810676849959797213060283332049763058381671528963157131096024946936129247210254209403801619929949516502771042735711448772598184673181233722825751720103798118350881177696631455616681974866362960065287781440226202748770033018358802084346573807234651526742880569313180782116155775498727774734200616487816013707591642973834685081441369838807201005363863751133231249887507737256286471190926946648864219851228597592654787290497917607778598070952421630295835327801165383407196207912055302249642923230523055165612865713908481742194809859614020139983525875847840616809722114896703479811121161502679063393232855184253958175079003445794042760944241093055493662661908960680093656693185331572012185152988703326322441037486941729942951153710079120744808573234888657918016507559140069162433098511216190073386455623231688195045905656670753602306746492245754201365050740739803690083011379142317173720951026052221496488991907390151383968113135105088183300772369848493231108637671489286633011676009342406920014273937280260215440610472906443287663018945029045056549847671688859202522398787511111416273945253678824931403928204515368335843843780805353157159526648092896180797514985282238311417973215324940458368676942804214808093173374676721633387859299151434866675088223996379413313592701510041090689010038020492925142878117511869838304340220384328905793269491410668711787515483495901582170930996091801483630776464332622971756062438272006728392730543548256502364688098625304953160628007006427343782831977171698653950397131785490422172161585122478473449150550733659719834581380904561853649998627661173805056253107222258544887005334373017443469837536799160935685649896578475636223314609615439411385236552963001130652031852221022491081048332372831423826909461386972859123086604559590307061618421596441748448262982769119246204880923834581045715931417931462615604524825792888135821983524936448200862966024274097185546241298906962752289491485977026572002135267670538550598434514234021566030692106935240953150394283060257684610217379915927091100103028366196354738836396440829687548499037380620514690205340896859544867219693919984191784090568478439387015922770686059228207909790670410064292016451408815644809353485796220432179682487319081684959684510619794409478442573903029652380110189517207600925486485391415507115752642889037708557680437507914773270898595916018019885990972343475438509194451471007928924566174155345464900638100811242907894840013363024477318119483817111037869230725744646296869078018127481901574412382207390772381508421347963437015801428256816316241794440537056444395473769899388200006145983071505725701791293835436014120475911103743236720890302438617662742152393233732370247667932220521102623396268759761263744142727715953443120930433247106177215843985704135516019036958391742123248285424005513453308060902894551241430518317625325418343213276461390734679273626512949151314461573874661513932473036024535629938665887158339598129195755054446997762264561613533052951892009562398161852205441592231559643664073600490578546499159420496711929761543346994142331068190668270139516475249151590841005726228628472783892478084936501521050823511420744164533962572644311150069956927871334925110475129502907035231714221405441800413941192431785126110601268919168512619798405927428660536797760313982321284309229140202825166881666219090657949914974431154499164006380254087340901107350241767325477158570627272655067398471825629553249641798118515660038085547844983301931268425946336726535530047646888854621951961428547860181354357797257509351262707341747922109450708174258786620640430753577127530488488133378417932037317854053341486946783135129446338421964875476233642563566631263831979598100316152328599854222329363868806772706304838540960544074479045302070182379763060013524745932930581773846141502357812003005382038998787542009842579420741894628038029387621472937536442034128967321701356651575871354570277303617461536752669935865581726693213254054519293460043635439339935632375116862123197970276911332445296227897953611868393296233370968464431893686995124834131755155108041207240921475283572227882761184907436951575484393826796616756269195210726923476809310489967746256567159373538224248155208993832216665051298240523694653598090263844020321830996122382194765166148543112267998734484419225476045703157944552137430482511740240302730357580879902389287690941242561344028161836690781044841929870023971383495486074871242776357941595967826841275544612985751484421406406274258538208357423956408501507505805980346855446336956975916707050549690772484245550484741370416074721980167999081831751300223065409223363764571183073417822331214513111492023368689157613407471797686268635527602916204381663271601813261495498128534249807922700017294732983484800976194375067979601160097093616593441201424479983400841997065227514515554603974168599920302073853831217034097592305537925928511907054440349505000088062608830008150496912439529266021988006198533502843761090005853557505414321929171371179972628692479839191538061887211812425407569232596392132721930371017786516782590582251307080112012229096228224050304920890258364866044818082592455587740926812784657965999050547189481350137255468945470769316035335452419108530151959313013799447847356820472898606214814365412024071041516872756428227344775346793264214474488031817879611351125303941449302614471463937837209623633504949898773788956235453398875381114113950005459339926887813144320354509719815563957509868946384475825373188594143417700987626905757443545732023633638184658867961418561952881546011348009486945551468775885503379118798374048915276213213200900246709729243822919473868627127124563736849446159222495946176309854764515415284994537315692603016955514359607482603239482049591283419729166566890514703698610211399407434135454925702494296541045357007403548109539289420039173336415353588476703203228233001423835816474047362097760839971289171759248558883286794874199661000849606942493796659394019757028965311952935763935128702776398546261516495469443711534475425268851054319705153445259333665890629114568546443645306675403557087813660453852434115456943104937779122860114488531787244754462252647846517172642214261546765783083573804203065610903351995966930598166963574107035191000947438197651484568689318128437189428526986859195800022659963360528965397358907005620360142752637915178884144466194536010377464283263491666422406422368957834235070483707511854021474503574393521969262014001321071146244233217180223649703326354348248584595893327529329510042153607630664644927611627897954701927670936537880736310689575921514708030199867997617946497083384739618019499163311687894683792070946957169760912147285010018707777259423530933710819648879968635309226027907098014441484978266159589062660754019055213778387799067967050235786672885683199632226930292760594700393847568408733774167065101326931457801652834252900210357884670713547620283408759444617453588745327944024811180479024264881009189625906593083373265340812115839088338745363627462697905660456370128917000091347340411400590422290752321264514046159755519127651490132150746007793554850929799247574326710615306396016979650972377778945750556005349847804006442634059766856567440128332812299176309535038736638693135638284902314877544136534926554431657942222095296715034805793676163709265516062448274909755333993116960231516364301259358603016932233214841108274612203598196405015419784449256814766856213732189873206970172773297180302999405501548379292477315465027023859061744971308846281548949015834112369303404551188174822814673706768246933267654002178739601867714459859966920924358370572883250410786358961094183313340608167464808904423402634710368887955016370740937796524879173411233422441994599126781136056598937535936755351269231358059868500158223595856899585903246414672285583403316135811333075760397230528370634368915590583073847824352584786577941806639001750022147916123194168942144143330736544556878962195385387969351301480637813484475931907792423685746204053220158615724950673644679538078384805311133201104857222467181661791444758295742216450735151416586729717475068772988523140659756990216487048402771570534756320811734125565731764928778855099718484158958531460528701834823372529407037765661307349416300871125357460999439757343425171292812810821140011993084620259428384104373333724018453878558984573323558509915478713205974625976517078766868186902392744267335089340609825384397388332154998213107058919494814311869133898518459426330975316440898922390791014696030383527313502572489260352917205819152099119779858632605088549022266664423392313679165762005599664318699472989959900145974385745267140371872993795162556878885337925027779281959316099483645652260422984103052537632060297707431298558733244902971593704388892791335132065946178366141443475046094424375098249428719539174603705985607754595871143448436319426807723770922282527122274209529112247016586922111194636517034194343967152035001186306793694994555580365336230212078452000158303225795544557472282988204850896311734742842232821157148507915721078717496712977628884838982320525664275153913844325586670844968009686748510693636885951899417645326262147854594391654956425844034322052400985256711414159588093395223020771861227295029816778898203459369687840094995129815197132514210433101755589045980883686702061419767421021832170564236341030670417379555852697434542369626968391752151809484275248526664560711244815830720673974730691202045880538821264358595237772484153555314588913235740465574580207864955705655442455337845928245918226274998759956595681704165444875399118675379697714584100900682786639206919993979901224289046620725280826212592122366226512023209513480968411352932625946377734630537666040123842139303287976303849981030560196221549553892292750658119462435187659077983151633744827041672716894208330047977072257869678329096502906931466126514587066749671710317946283479948357927575307969857060892065886331269182874034992029188065606810600291275257613433775766370338974911409418657911586447314522737750011557730064513412622775291413943156175897756600792503490997240176306849092170967142151591860217826005941955983240085121985364176860100611645547121944875539786504251257541770180283630776835073805577762613904411818212708266503143950918170689344349067700971319405755230606459139964377446156151508094196577693673837808019663241302217042986250549444191126663389797432354465298974023710538269621021998546055276555048466475787042637960406394389331537926318348825549581441570626782354151003599597580731796056430028971684476833959908932395872509170688098230861271890247701782798656838099569300301386346541177125826215693893189679247076174278479970727068955912462902902069584610778616404027268361975431513713752572419646482179484314305341353714122338454974663730523604770072280673260728650379634699547301714096565766480216772403391300776578575909223736442672594146908041334381807163870663707899398333591156739252494871249779228255072817375329364646529361833589335083667703070985165167430079489816788790143424339695727194391095026298972560864606588236414438924568168733720018475431992847482622446671236903544456969606283424958596504415380010421474923969827289807551867141112741660776071055409962252575211428404394739754136812340882047281883071686071797588901871420619898344085524899419257368926284425141047437788568932291034369547129009462032270260551133135054291269948820107232101654208252560185292885313499281298473290374679077782748721656379905452584657937401693677727913120966085267314999399973253542889165592822976238396764298134585910444718691934011337418554034973162851248253874141576929453898764172049225749102498197550842198057257362775169191075786227716865119208855986776845831832627245716836075441827948247090279460195865771680885834031133605652642061168599173982529036890659029992448312647811519248953616850916562739932133031322935551840302281560248966004655205557813073100025386064470693194215188694686615376689168631125348186196342423862404702235390913359519978111580796168294135637185060367822192601796568678624103353473178827309821240833775454329505398998467364341945667790360279384323670029496733169340468186294987153158135484175500811256455130587596864939654947167412972645554199966024523936169532291056393090682998802162008436064360071492981573990997875003003726612559809729214814384075002678266204421059497513329623911849237185892228673225049251616565825888493552724593109396793334493817308984586622640158113112897528284854305598496949160615100620769936709815636978649321527571548587623121868581997136229269800029637091286771843766392770315240948794532216511210197305183158295362954595161871922648966791148418267692530359443761642207238940037926408107707558552107761462756192335276223693542347986328366968661059595999944846037454577456218381628087123210718757282743936934674984563681605027778534816420975193579186046829140556475659530742331787081519724963789714951787526564401523582574719497639372052766104895964782706230232539471923517556548255469230524718464816620964331838701058777371022983160502239542460407821261663435947618285749289546460934654902761987037866424373316075649461927099376996267470206302049466511126763782896370932295728693050503665496608570963049034134687307581907553768048583789208619860794026866984440895736293887860332330588534188997376332520121662780629639494802030986592970056742059664167887411319849653610851794732971358741424883250391092767110535801683665541572608285339090675183178882763887959756343572955861337558082494325268333675245087530967961193490015610216332155767609780740985094956535791651830210275950662807637806930102876723115621698395229916797634037258148127864914358147748929014438873475381837798644074333379850073638379766693225991194532143896238240381440327168274150215459379562320548654445815705170540436713020961157347149255815586800598096855333634794779003620009392207537236884696091515899148558407385092352075992960793929130775409465091438584748568645554232551381719688183615514783408424706714759151450692766385382820617244129289745187637668881439960192571947144434908773339592306079068241460756015375128943745802557593281399009686360465727645542135705586611921910378991335188189156831602855317866910751395323169578582843520950777592823334955034597321684457412997003971888171082925496675502201781464351176215515384707872576679493905133401164366450116020133454200666957647451698692995276060178348174037535894209935259578594837737868258413491017954759137284305142311172731950381304830581779059305270813966511142796496850324217099503927809394270270336824077717413479232405168874090160733754857714155269565292219177940899253723660007705249008306809683701259597344828520353132447312212486484517983944508367831438182606480692218489865265495912892673403193243184653308866201562139189485981827071940816250828734816522883196587066585778153904091316141463202722824064439441987511931671465977021661182122805810103336353740155541814678464684440988333247350416909662199308732676257834002782895564207328781546949369225422483153011032016185222002954409200183025759298055586019935289511300844795653761043736314629151571412803462434902573228945885688514499996072462912320224097398667037423903689300667713594317387541315319501870033923569899798761245616904925527766591918105712650060382306211551830024985212677474438279514733559616039377574220492220854156045599951238427055227580210131105751103469690460634014612501124968545765283675478668565892689800780973778666103426360468727746395964261694743622409087577638799381545199772385999224764780630134625670498155211356327232635654979913310089070829087651005312411645888741183605012477006291593543972745861728059557042434749132457292319395243958834348648891606853053359705067145375935311124616223223159673060989799004867423527054495090839472859143482519696699250722901897868560542319053857530150570158738203913150676748045372301911139063052826217886160474192400693112756186607849987914659999172090989094926686358439922273988958746836075356436723089790280660608441090913932517978283231402237833187617744956173850287377784612897191220728392622949160035896217695644046631474043764951671915304814003468995594880536954186108228027643079880543393946994871015532134875156062008433874082805776273942565949103524260773640951063662693999374954702199426490641864070164707220042651074103638543503591295139518199664132157433203872044385762229532067619118745495721096774512781488714649037450867194937940869021364979597258805235176589965419497642574720327125262204228056524792013459050331438616736414353608793374841852119162840750316820738311663319966088767736864839948060344077972031167113467647095399770503117741098613159985807217452704442844424214075101346212625624819217626864108167384463821157125405344228545093895922417833885014502640514169258790969194349381107392050014704045082261088797423226453166370306516917129107509137457845525043723712597090582435116236847685813284439892769938719451401502147890093903782473743480959227743893932085908303754696473286918023652828699461398404505842781386634072168043646230851432615239484344672562323294612351044090085718785778528345422335622187507167498977668472873891722404546613850760542362200096777644035133139135580166108865564682713934685555890167644721005346963871249458456926727335386401761955029725966266618840271137026508835831478455966809680485058765001864129441522444139359463454680573625266712708905477963891454463356815460746287249520059380302834052989309115607278733695392824346348699912639727027597711356702648296318102325757304030328495989427046531844967349344278198829299462274911452904433508404154882641428670486305968760280319841646471324159216977840951475766749663294826000892792949442022047809767606150849038570708687679640536101710278092121105543984251615330706636042432463085814337440618866867598921807559886916700526629386971255162046046927473343290272531851494856636046579630834638944964174792372095840842303350513477958886197867721919786053688921666573182496772935084351622572065823518454966580800986585596287288550756602481298051540591412747968636494648742592313187382869287945342235788669392785210310247746315616623062814379801644482105398836847312727971718945575704659723912547604019780685842503539390267547247522210413533763221018779113175844366127400937222843457967831245176633335515219202146018289233718048794229433534101445375337015866794939092029590212031360511961248092024908263084201873345697999518926799194385161648409222266865720096260389864143865275211053039123969885409783777833020882115304898862106481765905818606831203518192250086524024286474203062674106017822964074973915842855096467714279906941546942138859709112667866705292657761068651904648194362241198603028439910720455582848933366553284991076019265780959794149910139932996576261248515161104938222301056902708620563715765705925979734962555573187209640682037374755272969652898499944333138409823821110615298564217210640321941594481026493282091794712691919587168932402799371340596439335791190544677992600081790138318746857297882320421443329836736077290318902881727993030404056315774628854441316467355222212827397833539629050751141035192644450982003702506398202113709650274863357908971690851367242801888307404600024242118337304784179818417397712934384467350382924176964572580206371531719424032029406179665603129631021507426864780551958832048296811476868872130916108444714937993118270778429050880193524820966234295443097662524421268738870368269269558575500078991916488911779674752126109462875950192518699377524730176242474722003149609361365155110751859356841396953914566162392964616395322235210323258792737700269158758025461186904225796893004491930543699950836755330443598479156699797801760253152410769413951547640708659929522398681062742609044492723565877139375029644516223058891460659789499947586434477119139073705391646717662978880610550331552548687505304756141688901278039221538382234540825260143763820633766277804180303473651973766267099080934940434911510517701832239243100022859261739054195481818555290911856740014011577283910460073319052961850203323025951903264214834452249368913327641096585317520735491056545203908865178279508045415151720210703217554268199295971596104920113429677457436793741306816968563030667445798255623539874221703922616264048650560970657521999630569369726699834582936890601024405077366365829899236135335749559563099562853461781339208751541151534344577103832068017625847827795779408185417434106622609817513212362348222057217227936640825954293310808109992951678885041782563917209188967172205108340817623700481197154675405214688462727678306132343675182701582351584701577097740799865689644328788524140803964514877455175959467754849162245003812655574042815523099333166449473349932210369977433179642990453906373027942822566141691167065819628830083187910753252486313636969462575634428103104733991531897751778805140406310965739320501023541109236913196407770175188157784019081577319360125486891010912128152343661483960344536845385243565504599509577977858934451157651179766476246774031914805261021013498063238151115694356929916723770854602971291345523291963478448215431355761311631232509154222912391268748718383581856439542447759605195788328561705768027745390730764610490670022775706964281951534447826086272846435209676917157496711905171975038519373365813753339186521059572956437277009695329101790941879556087089211311756391423509521365906714264322017548443316560422489521700427093305604079782671540360120695866384315015558226144094213410834752727350279839522745785230764156956377517981142953255007719043091704442138455343735046250527320447679016355993429948097487430570890010308016727751446603450237391735877444517071525590652209991239276954939659920075897132482384601782448181356425448165492354766592410187894260818294622355722887595425804796800514382317138765126282266649309581506279772476571051553224237333028469492722975108937528940127534980992626647912202311725383000191214659567953996588423203455332004144128143661172320885835347367111667268388414126809983784296730193976915811159215006104633859391091648717991162771335641289894002623126130887431517911010647191039960651720611775598183037706909429726350788903856333097413047936815558022817405054523359201417426539493163183094170288526776873749047754887887743351509816146892590394595535594895152437255817633040644830064548362271376600549833279912429232905975197127582111422773144234858487495004387634605279585074451997537876095823720932216789990474757544792428679268588733504619274512685283677035276108560649327107216027663305123288745751334676832746802080672998584127459731519253830631333307192674876600494535557539869954789269089224445226216088186298308619737870198850979049197754934525208150710739238520123665801752966074326099779297931311241188807815368808729650833288373025469878645872718353064308803475836285434748025770842917025984615343468871408353645252640277107303243027089047077359060634599731585239317100227735625392762538627847861613654237150917170649441670578987071601415622760140725686980316718801683358369238805333436010822888650035399541337906705130050256177490978481261493490458740758766294291851159259967369527129740066770069057001060093053042103267040250480420168340285841346109727133060819917000427374195669847012212238262918282181119247728506276314330145102388750642414999496229508734847661382099140161159843795143098651440589507872571796837099731986700388003355490530328223933302958071105986778547292953483171442324660409085165420813840558653604754336250618655872323982795826976865351443732218662250248514523628456034270519898615800619859104761271426525315264936834533270300040924352576690562247766132010617258178463287585552066470911707473455400678742509809628084194333884995923474889084855356747643178385992418314745631256380230416625127972312599168399385020930610401154346509785732474622399227199676230633444611646989081424078947087682888514532500597213613614337828825605505608225099710358314899508364237182280907188220149492247942690981724174685337505416758062730956386796324098598599693952256702673704254007792088975358346694099952607427045536571462717823646304071147586644514418254254476289544161533784367069928437339204586071119284072035727080017961805801973373708392976108963020023731090356412103670231189420272631763459195926842514143638180558114682621406961219985569607837031928554370416195211249436243646032564202817875078891066076542078908548236917726850784245758936403535177504238785464201020954155349174107638631117455255087257014799023189829641284557097146872661715996933053114341429651075879873556160688591957547687640016757711721084192359488320936545018695017655352310708740642987257297494411427536136858985516219701500047045225906555580219298005072110859983095134860239000616890717038134509809993828844890001082509637796385451214882426517371391777349876750698920114000431583817030793452438053658204869121423931945113059264879962871325640523237940918262120110961418273404979462254930281913670638952790164333518768666615205882145867648980540862353983600577878457602163197170626264369441414149041761124247795949192464512219192659789395530760725984436394607335852936190283295713409918305171147782712538023557180623778129965148894862170800685160436688635281355736220051775145472521496669778034246340936164049710930195354127840360815767888778630816804663385878516671943303476158385651843292948077495254334308787184692923195141573237323169820231262235824991791067196246957921299098272336319655619035960174270994376119133591062893330390011509257888702498948601097173087487296220808274026771370001101052211309911941465053196987513623669570621619547030209285828163275494938892061019682092064744639344704588533807702230883491784899577753474064505566062755530944038669216830741535741329227585005893328499955109203140567305098333759207568204648332898168556793467888509656511463841983847484483336015482392046882124751741005155356266387378606612491988245587635541465679221704113655050071970020282905111795415041354641470329612120056640160544420943167922761705703785903141297004527345099610887625432471452041794827505045128354995718543866878076019095178730302541564590829555997719221678343603147720101031301696160414556037596766776186162124658849534808968195030688283734206485209794105082367349777939502048974741202388816629289537452017787551442611173281553180916390432062513385745617170996297103691364303758606466585373601838786482289121773415295818777725501454242078257472128122825221337131954455638758973838899698110399641713622813678369773054155704260852833934823981034964864268372525115248913933738907063908183375201574887755812820782739635262457283474808546506573485181384250696871987957177320098344094633604104093897406758539842271027890128243154875481313153455584407542568569210544583875934910456660604331581197756931970480799614236190218820988859508012264259146469202026615262702185323182202865545314289068724941241444086082333484835952414501364079160418057079929804213308312809873054926662630555938974195219479882576112731128815224854913424311714953624642523823448466215224352497257956432592239541203523168525232636910729391825277356196317010536060130104556675561662687245228442910592927046541974319059713166619975442521262081325836943572290209332944149482104007063684681522091993505914665999250624645671805642925616799393669382113417042710173176393243186640613646185025392330927389474558458348317566224959225438954609176441989823172033261422058130970572782002577762183203047554370996547650481658281570943740737610462699719753122246002924290957936586248747116715087654693586732787737700567648714770755974505719388178783876923218261180900837500304118283667058404528534246679860322472880648014713377444894766093887949902510347198506325588156322010025434386169756449196602839884699904855955654434056022463521519802005377273946805815089809797260096193143390711327222566899557157121404685123149745565356666749539953959484928921784555175792986625344665430562324778814808091661069915027033007850700361918288998665508326539509168550883878630824217030189281247250372664649827975570129753692379122135049118707080530695080989730366426587137773864830799581788107811166099382294038656868716329837380669714337243421100108386243877118894244410199386011751922281921910973010910108313536603735807490946611919217820190977805607047071191928623472017276456097163044644744677443879106957009724811101417028342206165005895459234163656909586761077505885265471676255501204208914776222898520473510497563961677779214450882233234233895979158855667576657620269567588162843476096602418940467705767412446023951029210388291842805349595862187264192829389653309501870652269561578263808785299460464451306811933952092603687274354522469622238496502845613053212708243906398984451012439430273523308063280009502967722555455960517750159146271545494826222004531037804425499447631647068464296331438452658209498825461006923025113358439237344511798986480557877509545063738592715395223515754047784357279496841327964524418318872103833504578650571217920650434278508976217542992168750335941152871633922685946161310461813277508784718153483928851444968114937142256073876541346780800428697205176922654359877030961930809381303883938861362582587375264253252811644055157246526550309185543704160895135758022560372894880337215515104019759719325987138733273326560834223554863408364730694980846442122159362540981852551550729198224909819452187879721062673494541571815720636502704911200709829965550988879094320780963018029931533265998546104556503137909533335958122970778928929041587974774887088729327798006366683916808023587433469171149578350253846919662552253773111738661235038754405732162356950310600127826856954210906084961497694307033972587566208804986057736061057538257519725099692407602704257092201425887785016995256286417443284427667191055135732068048701093043923853438691518401203044632006180361988780991659338088556335565020638096554205166138533641587053765091045707467566209370556326731135984125818761459867842467194951751060126610443648145290038306551811229513990126082618889304843914992774684307384176037001655026085764963251740343284444238772868961938450557952216058408321828723491438253824666797493231755507145707356616943859295951876620278379908991660168877581386163688352751692967391850020645337110430835675921134788766050620496840297115927852513493294696982720348904254199657681917419959656947520872035568319959763171237238022894153473497193484355869423644471788410527457228019864870275053579250893028117329701445014685160447117412020310385307181190967352897367418614233731852100979345996071014553667005362414168793653733588618433886406647428532405333825004665553224951540947165940256141161644592561752648264737393264049218546167230787727004758761571759428902524988940080301841815314397086837234577079497310052177830782449117556959311566030078957808615595487095213481701937917454472883129984664915625594974592117644279720655643800666400580692429989678544877484160088831044616626597182818161752809997929010064429741705006057945695045784380180286126482312697871438922094554534672001108076615851801665429906299450496873194035205374286987143268654952492891965200449259920642813850666280330211211550185181569530595823020013236325959565642841734589348297017266766535427968831887330132777930349586779097098965447482629976636698383041762574083972822714864492653261726294361406235938155891087414807207162764916164562798305997344651282032486391993253995521953126065274675873207004928348991523807507965005503626072086375398271780243087667580326552577247381139868776554350708178285675468173365422715700206317517643835013763319563678293800177867549494485037403757422361717975270833171367532872270162280551949828574947365079929141611932386356009830849811389645936226391518373386225149871555056821418200364137765608838207330320589339050475458220395193238473605941931185191099946333098064403339609732200114799566353795222267540833800567183584631617280970925400597559304044920310739589194849392347763192341320652910347870022287140041311280326827135113540386886752421044758450299622250283164921583739247154140928191309119019544967874556127337816541301999895342685621261737642972389464041971704689060013448965875554835379538312277882865470874141993924900665683503807674136028170282779406309319296796109517029822611194353680172934942032020426559611361192883462638316224562281410549238930424450785674011560143838524647227600821485385447285556170069983731252187580882581710350477838833046820168541641019006193182588683447682637529037711670996017529121612730767937278373383804752183298945155241616125253185171538358472713105794366093730231888970982180162195885900899898716824372757765600142777436776152075344616432776993792076805691650472113557790846713240220285803209454550567296188926213551235868354727867674094252562816552853607114560901536636940011988865847419546488477933824982351383517767891077142946198586055920892085402096752252187673724738857391516827686545607630140312212914843217547135353645312849319655462195081762125958554055702978496909044255640646777432780609849824760805586251793588291370000016520095151077673587279936325406636045306566892241554318737411148272563526186771086444860304769804589478816320843669082644176042046131913858352377986012202644989020451009910573908914944083258761451913841756273093446852388211830755755065147219044695847499288182609694876215334940612942660139313105652044558593809222601643035082752710643067797397901655080612910263008574288720368653321489166789080304338079400847911943250886080578579380149503173644001960414732028921349386596344535853149589798694548572693753188010094885950998120688454991059372515364173890272732523966846100784031083530732282675859584769928270804473929475102478218126644269135414300960013646703599405346545852265920567608820216524658673335992431518006708013887824750637069283800046366198318648176714146033077240856306062094170455868031930901638045573617509217285428862776934135147056529138271702086526016930166409484384565401395592751623584179107364552611994351404918417369232901228304900141705630515767600829003626432814175168313616777480845853678492942606914837141295762840301085745641817085615185451770872206135327604805864428412601742649333050741714183944833735604549758130640000452456026338823582971763379802166949036629367627289924304712189730258561242455038382445171460231484411513624722506390180313527807168196875595295194345483415253875854752473890726974587153616438956310702356246926535716686892406905413712948346584579609696294449335740474009422220305519241671759717344119956240142973674862906073496345713482607402838625420303365291311628195455436625683638833837884010649842053742898877801037133080810078801578791939961135770611793616256382764261604956669348172300272573505591448569719521231290997780640684403121652475346442470844193773036335136326160752001164411788667016511113084383244179332812185001653724497554833791262482627751089223645833021073532361981542828925739877813960390216891523685037060422895172566612795044870782649151308104645610550145384946939404554190327295205869573699178978525162101851614865790034729441366661575349120514434525012502460124824491609762950040153935711803545565024468951303994687087105563154336910270805569729818105692608039621493813984604469584860151553693418458122491028474862260999183741947726149341101432605185469256558891067509720833315364432368438982979977438327843818928497838534151739957309349666180790013505997090944809893276293058117768226082441382542671823965122216354368609183573990709954057981697203741025009035902101663289505561176149123297188434434366133883782824841133491237489937379095231894435632041622448651659208830916742731271473752393180147011649051932016605662562470889504078163907462380463528421602505137764803407179487027415121155293340691100337235698036987587255735724741495488704423511449788673776277649050845613648111439248798056656671842248312950653204734765764824957390419509398104075571860571688620931738497273289591979485140633930207303422477816883009596146769717046702862577664235379062052304608252170915153893606097637452165123397097031318967885278002581599224334544065293271410822462073477966558332598706485675207151671121153794482338199084116017012669553836072943765678110487211598730806106979260368177368084288875561071710094480291881821767299822229228361398837034835918384290792621657404234128238726922574567931820597620756168930125414237587805893832676296888797367417547845876571423463808597845067193176918873567228111592995891997644719115751103964071111255748330570332262644354164796651516885673421849614185180259457819382956157918076978672579820833430025375086042855620122672590435038679885954361856222101704929150929463742033828765483744873101942244509844614546001208334170773472420763710645098710317528154914211808659128559465987530133304419846755595327059186720850086672064343822631759026973137856360371502536493865202042092136734871995653401427846913479505803141657257433141676531678222739219986091215737137937679544708077154106685759494300994505668365664931408272111938206070718436771067303315851509453170547990106919468552403533654797054996382778668461826580398586335118005194470517974615994529788523711498772616517969479411588582134945747912869841210919573679051983176752343995912190596360710131835118908778643087178706073626507399029461991974961914606301400364746168734999163971045828372929910637436122356874901094326645958412325162848760283810647264338887918636792262099847132189341287605040144726545514158503830455338634773285457104178117642001829690146793169933549528631842779550739668110222995202636895205918631580757451677443914973759974155157603683044381163338266699915068258559290037000806243115248808420930118806342906144154136362500416737283009598850208380440750853978281069780097889897646320004754892812154325490825225364808695635178574329065877734822078544397739999924443973348732973704868421126117798263011572804142370035387345562525311461742042888190895334615978400187377070667796618290756869778332772750441229612110457871642249212462700236967376867488165633518765748421873335809188098011201035877228276611470454568994235710711997216931848276531331331378718326206106642591261908706983485211063064897522883499394829952273096128991238627480744052734488964591394318397064763119915254180342883125233258177602496882289597249497914049779182885877354078680059618802499367159139450444427494782194036851759768083624314820020577378997746412373373078702171103540784321638665062664729381247211656529132218431885093228915700732525546598746936060155630234880483558137401824293992384885963395792404534928784689552309895540879318863068972773888492923628595919524301918488703854532735889310259805672723796679612872425833203164338153967030730632581075720170954305638944036860303379773102523837677792356198109832504810398351693544476621449095094125343624625488395427021706551901489766164093555763652773874344347195463964362566563073792160085857800959638663595580394379684858239847564266233007969211444770584339479180481298666171792571360057808073936337529754749770287164809584359275991422184957537931299798217100761671085818463380111939739127544771501890820048259317446053786745598517883950124078270771447484140570800067396760941506710620183700843084017739024600957912143288173183794047549254588062933373714530062513219533426831095791061820312421993819566534049513060275201580575792710736605788676765440199251719533807283778172474222567636450734630071242593277947274539354658933668267859920841123954561226514728235407176239119337459490078363253803251692283533174296244680102730999517967049491411855972549011324976478657214460401436139225699716973164017945956370868616423002350752580016584859237658668799308948116018029565346872476564663347644970016190215294175373207671177325410355133621738942707032115069429381487754496400055662377439794461123253391828645695013392189547966444232371184367904160193582828195256438547155583889288053600605093191456996804385617928553287523006693931990849808907617055307191000013983275950464313255837062726724538266337821724188348639445065581810806341083402644778339498018519746958926490858381205461360568236878150253611299877485195105489370135446800552071677958381156772587813172111152950535057947985822677100544954132325212361742365510119674571330138434358521803442505261704565531997331568156346217404378344128831525679300542289675210086453638367410362904920224141518630040556242442376792856655934337290068857597370179369342026318100237745790681662785271699581419975261844138527995757642867622226962354160855761622593767272149223074243570615857391040596364472192270430228281857424504126737830040557631228987161022696092114857710477219427958363533417602370034773649448499138610159249073621240841344562181663289875162474696741200355470930170216886884957325064950853370263231769121297433893694092396034404217408627003672511824798004949049775504310101359760698175034270330656188512392095038514101561720094109360885380846845752829741341178894343518710711322842389282611999799318414012478284024572343060966493512465107077913991275619826732727531915783596240233584924029821351859744230157855841694332047319133821777887055260768029009056633747693994939708807444990048379647459367124191824225892688215754152227885257887223182984736283814569801541375299038868009092606916543222696209134786463195544799279551073037609088012034912243080727234059306093277961857328702541984466814419006948243606237005877200981493358194332859305038690178872710191539496867138845185229928424924071065417514909910128506726696549479386349549066424154517015857558250813803123613977580371441404280970202331451834921065444140077851969326215232949228641825566547502635913631973735732512902611446869835741463131189256532550841949005851883743412281742567965517442848323253419967125672049331698663789255527963824684303840830055840875215693972921177075843215812584440424820713120254740459946257086347761845504801120998377627328019811490165136097665488456861224404536565732368886711778319814881932849265136965646869018862406792864276782781362151928859227381233202392530764552748478609680689198899566943343247493289401733954799763812798929787758273088437357085229468753618176715744024297655261334930811467654347081075976550053011201681697925624259932299103874769642046151814134474641274641902494817991371174927731361164683457647201022243596726391809278033320198579758753638140066767504631987014017983239221661880210058829579517895545011291403718644793082939714107881756937943641695675867957330860827664346819558203910085479749116351837023997790643899913640363637414373380265199829774701444371663702095689769479797380144212765614388147314692132018080487100216008810050606365772649754788690537491046065992934899325234235092914558566547203646094604221015539613076545072615375479366527920727857919725326124610869492458688422265752461771935285022318565886318274502165615244429679636241363075698279525568412844939779608301705530101932041106837003435445517543727508781172760141181370501821309009875313855726123105104533739464740770807947122808815505181483036583578881294632742446317912637401539948422766267710738480276035175044414401581650218845747444288770455790915093401859365512392959770615274881555616241656860645221682387369927410999913467009230875150493672155690829354375051376582977169479695974038064875448873459030341652309083300954228614637106091665220487315811816225503298333814239700777472838501070115413749264199322316429562532446739417058188741319655011017133403923256688868559615281808196099628695943109220321769573521378364474644351646719282838785576907876413897029865838923853467544313134946727971511294306322559819189790810026518411305285351561721608332164982039320491531137781065798123613150456009188154824115747503663820380506342050317558721890856781743007493301829105981906976499602652546654237327680590341584116894782096949726462341669340502636092682529651759918484467072838210393484812288900174157299461569527168567575987388546321690768854929578600145657704381528757972966351186549245322337075989430062338247498999576407153109373622095771961179709830863676188503176466888286563669626396957478390610806591969702590278517142980059866613386084595363340195758121474616875136908405201050538930657112435087036805804818747843277460497125646593210444609733499447764123810499146637924350714499966176577165656882573066910672948040267040883403519379784276507537960253959576799558933807815433933548022645100313099788047511001611859100268724907026714869958785361197232875052529768353743884751408917847982403882151849634233009528808282818959888047879722827850828957834112112353139189494679950471700745292925047474957957020857897685988916495735741018201671946869729783756100542787595130165884872881423853328704619775421022822785906876739413271508070548650190038974850298902887458520466373243059866316788626515917628108544400419486181605565556083944261509637516284160511432992629061085129520493676991851850453808457460933560737572487787242830353437931118502124001125043836266791626001768529939596859120944960802886829871107720244019840519159418916658781783559037108476967659333041826176293409993046140856348872761938765774931794157155185272702405020734338155650903267698013855523989736561716852492352512557644005180000509509228594262767594523142651523889306364804140825797481825885292503375165499349598605996760178670855702526061375554100150516956755904980734602558296566671751211286663633860726511393777104562202362123162112898136588241331090500803838100035296108070343672223924276990924350679869230031633356187060714344290154615791626421847344122957113259324233350626379429438462622541410012177083703350775794490422410481980936974789429772956721126010179421353667483400135181569704734375813906103812801546888218950908049299517201859689528479049031367640069094217592738987052283396986727386907598211894882007401816992576507657665249525413301607981329385949806468090669510438957711263107577514682636586721835321853638862368838750013119111130645551464378607706097850995442339210118104217728860967311612519849735543972663654960952501790431060239811726440437468550950446918454188951312603633179124875210834639582961988100838041798668198497019955458587054114679191778616323729598093319699855939100793034700593989809347335925935530565286313365778256125405368766791035632566376466807395340533354785281460881262964972856821031436184223576273483253442016420436233558134356643462352196000496769856017069490565145992502936608100377020575251953810612427623006632054858964102252978578886779694754614306281226695272953472733321005119327808829352885418399466210894986942405146883417691746390362174561698679014166752555485876948558330955698492418826258150783296368366118932204735587636780730193775057976583482076361889193683285665286785270992517981242206010468161963520744698630713365238723108984114227538182378050982844116364432508729683448050119484299511843258292958065376256428010040984322449446603906071280013778269084334063581323300873589846684769824472617459577825098287106195017734153139384856477908481404172888216639398200283898138874318923436353787849976961227579249220588502465924847960905593125405383775002169882224317575672708343879790758434709910262222317425029705838384114284183136114775950425790098836804615029722171213005211965017888180725092376455656693479803621451137814370388166555397217697268942032275480077040611538653134506817970983826185062351122273422422482297779907218778321092269677287940938396133074084281698244633038366094511337387405666868821384008324851169517874917956921594381298601354600254096151192901820690809147616864104348167238894559601908554601796212205933141446214530828813576583320322603593853306556575446762864974744658319933620697233324441302145785998553527904246228305187734812781308880610000926831243962471940011596687632243870319711575883036467349025629409501311795120631942627405013238871238518953179861169063960305067556967676696329396396421204110667568580696058977182536636560389238947550191303087155723066064057655028762962491701122025677590992368258979289915663317104064141888524406254947972922189604801645464026352788502040228843047409222482562339559797776245456878765871510150306223927952786869524366592119280861202045037048424713638323703847988067905072401375938189504729624074226926900767130109420535603866187535217297112821244942650409063900150432371477874061412393631055786648468216413808319316327529601982490160902371014029774746457117016411708665372124468771936123822726113232692096637061736573499923238943248875529482994147767695650165135056581833479175382734549026172428099210066264665592478104482535704792428635862270806625178115848223789124712643076402414230998072211104307619407339056875913562955726757403038202460629650750336083861545520829827417318870037935865331398034153883231116254716666136890772346707697103142446608795578580929969000198893046154120319437801154675912665808413538957464179393628086084875374348952186430412736767217342542917427121668383617849754234709104353218697210963794939197461918558982554823006002620407001367154248982330777948142132145086992049311460609278638604638252502588999419536223225976644332562104671592464079625685208609483273044021011711648159749958853842087583383070742774974223885966898683333161898404676746045713937145792756048255186927138345232838456131221310731709529945239772848178361875764234809265964095703587626345778738308492786152964218714992842566893845902433839514135288278975559832268318390827524272048092022422173039789453046894903336577566166739213409376963012037515400965869094372704478459017159878886839435329037614118473263471893939945047781242417997732889708222519115095482863816956673344457097789632030844165730516559464236500070711629409306417913063575910220233107657075844169149401867645511575679833657636775598235220876095657572005664764707733328510670166508838488683233237952326439648214214686352484054933300950025200237461666204788102622173259311084282654013293970885793084450276952143988674714439413057570579944751958884224192498474964617259170578466404706333808763881436416833272230447225167091727742361797274688142605271411067515744747472552900809928707492682118661383627913365066607390511931151857318042280257808117385728086868646188906753991118361388226403262683558795361918459476422275194666843430436447173246814296753712422480254845238529194471739139027354927085066681168600100823617133422062920445516256028120265721569303728695493321734550202070734255626878749816070000840003276732049298056189854143261976984241732663192145118961032447231677986524330700061595038382756704210682771673481017852074376051323471298983205939302026294095426774809686911231900419059296626170614312308464606153158592481897827316535157736221107762018921176536930918735070102041203086207756769159504843859866556132415107873877196765577088573104972127383689100392628039829982395368349209718428918076359026120069614872658147530148711586521829431255392257694291647893676844189018499878543154155216364317930522509725158152333522001542575109725856550910853060441062461205864671659698685417830961410049183135998337575924122218346193567321018485409160587912169731125970027695611599299318412430837162555934937275021098975532605435540553858342004471326952163938702398813802454476748364622770555744199284063335502443019832825135111864596845003342564039152042000725084344669179536148683362382896901089187156681513866845679761670424715682731633991107654779370947028167561967237542458989814035004992912438164623066899063958198948153605869901388366081281925701774835469612040370644645540604319109508723256298748236378620672549726764832044877804562942288558928019699958331784133120506303182361327236024990964033202326569795943993479940337378987301615090389418352745675251495392869823255149447288688095013286473703980513395883614610828568694677545865717470553802277459901820065097765022092839734222217382893293741518059584362176462521414229839110797013915126230339210235960609000900832730488881894782063356216984262477384331280016320290051646327844464166374585613820767178219790913944002360020841510715453074824617965205444708047709060548229576046366189239334965025223599501727439233481880582151695763627659073584441281787396566294830318395082053910312589152088646810527526354496094690296234026637922903939048027356200644618196673757786580633408652741942377980459361118790337127764469498835304951674331710291294621825951453648015211883231696914701195662695542279440302875566274302440901790211726985415076875425181745072462622819588793160622721114771684958067765289690948446944686299827052162407135405887497023660339337146045080203677916425522858514459157548412631558020742442214799066478889898844834274674411995034903524827609852547764327401565278677416360526961145349115770174518879650294947484875377213281251000829067952832138217642313186315619884185932610094541685634369065580420621668822385769716589529945535228635279900652165644417018361098113184556902356709150761166182921934047316181332933133947668932083760968467311615384450747039367571286331078064130470082401652693767343152014517458175154737839133976835084282268949215949773658895198088403350228005005769841848667328321891430970767198933048647539847285183475678594411970514474730399226664033733174889862742217452418005828842201962177905378458057225452455396325449337239388725610394067047829140324867619088354013922371825668514862913179494066523811519123653552260905543840867922619582779036435309978306580664865667829699257462497175674878817641284794186314807911727398448992098189822563965989514554376642542421312791082859880812724417755501908256632705329371990580658260528769050141101351967299283364934588179651269804377031364971926495098495624967994754710105686188040296625937961437570812417926094210244878850554440843169538830671550576133889593704187459313051632856015273641457191935247341116367366001672945746934811255110563421343233751354221195551474111632249232162362928165801119416745217146550111805944046310332083714244866637342968015438467290532356627855478747389812800922415938788034217797863367666190338904304108208757183535204840408593937572688567143078930362159282918907296435369733786349508904457431150054109899715988178896533923019228778701360972085552409608341496567419875008694520578311808943968422913561460874045210348811670602710386611266409791585363850406215129969755566522052747003602428124022826181567123999473761492725224037039659284770212108122893244686543448306678980536010534019637020754817431285848326522499702459766506253544421288992184965458771040228863107674302781774251796751535782562852019586287137400975475927303884012082332767057696060221208359359143634762205454081927487871493620305682695657517931283719449508621001157368562660805935556707223888868396570700129400266517381568850927532960696749012929884257145545066636565304859661762124126067415130279169015342798644481133804019478856307529711034412143991009622081877020443527589515153598722204440546748247771143204790662421783042170068743918715329421473267889982279008013868110030744562824913260111008125751872153451716503713472830601658245416635265533444250334431993264885633773039542806455207496675687358853568497310863166119977447815145391027336375777057770837355171382274109905948819533558588034583826544410275877971273371533972808939808298276216064251186951284720108782815777601702568142174863107145194926243614696221408367255581465162196253440734494459776014589948517524824314547125016688882160954248284792821560938038270022824462409536038811733644024054844534494053196522034513775202558694676441498672922789399293620741308088685077146230920936084904994109800186004653388107347553979396436701808296096425705687681057864412961953003087831766229681602926998994955593032002342092926147325069536540427050074640348220861790092295636780805296489826124429159391393503219652666576932434068943931437125493757518048873762613115294676009070394025519042522920186371620646324033186503211389890002911256145002412777376795572435779484432561875205311804313976425720427428483419494619473898602490766824392385939702372083401329643870384475280069070062324592852264114567449380385886996744702001742330524373244182638001863743421840740391217437285897154679152247467006849430206557092442324651357131954508189558191862223546295171328650030904523547910854446452221362086079686206323051642499602437941755918344572586557536456085296885128525887258711741936853073139477292298133999620872271062163922280971306661494957647023136351184189288417597164576094982064477833863044563242474946956244446305275965668083130652234420805977218915757797218270404552869642320119427697380782310983628212586697924811737054907200394247068278235017394808026025423126763920256661210012231830969924485970364585609956526281645372757194486661904317357689042176278900748776624765026139760344356733082739680977942258594319460646360042792880183413432295599156009335958907216790305970177285022493225178302863463228768508021801981541123179188155103162665832296263594113231117063124986567582783610676487065296031912106685633760160459439598306399217653125692250908578771897336232559337034773066831496551289706503606897331264402207143325861693874268356709355196547733254270337907035319504109034412841728176280609512269253063458257477461722979862262133728896968129890365517354942598742570371456884150060504900394779289680125293854037878025591173451367578846149684879439208831502091946536591084276509431205842758422489425256642970737364956040959318924753726917397502240152989755053469490437498133211413359870351420803484364422196900409794221527249775941490414477352956857205663612520820008891064527811710557562265749147477284907191060657009005453482921998357823666440771174892769918901163809947028682873837891874259858404876423791050280871170835388003374830653426618367254101468423957272073678625337214163732226548739565467411902591054195002561119242413820557330371866935452405607595917978572540264749544704511452966390769448886651664784476110341965615487995998441589170168067846589222706730955304251678196255913430097912008491180540951779571836382442918749648445240120390087884545128685820493086178367949352356918137149967685758459589899159990180317957471672777725585254644907930821481185753375729022432177122366013858953010662632895348929270810887210651852012829960996580931078546470923473847374165319416601656921174697643688785965932863184553210457674190917641970010943401632088111369664237535568385746029280664657414690322958227414394502465809105521063571823815766314551477479415507828178164645332130075106603840670610970777563620733144345598920385700002634683645440123436572734374551585705861884127282114385749842221889859069129942576083816674565817799931794542027301182775900839280262112535454528723167891749893724946942630712863186247082591410448453022215219264637376963438453438933975186437344763371036645951190667940142678552097695453177896642636925829918416484324463163669152716182315861219773902782077923813905982590051283126765000383598356542725787054192761679333137969184839921358759436274091068078349358186131901485353944140287181817925952738380926610637260212191274285381041818517520220355260913215097019372124992512851362535193451545256334173066814560723435248146422337511254845150256215419685869412614297400874687784848972297459244945230462812315624280217476194776201672780355995427611215387684676654131423231418052958182002584914502343191503533286932800595959180829525951244988869487711562514620366419253880093665207213189858881221175655905066365671633850500754156313238313817864813505026072285905920169457636765141007653283560695370470582759394230466062203024928091556151404716836027642199161602994922155003063468603670849741441793415776658336308457919027977630794088171989491663363954289010746191420714527026665577400537302486771012926530268113852979093319290232158710644614210039497907085442871319971975118402421431343414155974967949369483671076949110357996776584610874980920837371625063690926281280388886179828463487491698612731904696825187056278037568453259103489332576402515950092845307870312297335605653931281247301951666674254197545166285136190516210986637450517294088916335083710216386528964486203455134929403077458062588195438034275098463898404333364348909114731060508222634886472896059326027932421455718107531669617699815496652954230072225728122287617277694837888237530780261018948664974002026351364611241161836293899408401619970335240255701607759547435095732713861865729250493220338920887581702506569879278862210216270831782715355479811804118093574198495953575301705039207115573937695163454027603189457903320329107918618097107597734264760925842236670690600683264916088494650296318063640044561963611484202782788906460811517696915640579293072563029219298648525025450520325933042935123950486767833597939376751011392059225906616693541436168971428589238398263648773129354121064068967679504114017369818297247141295912821011796999476208028058216181672540003731892534455960936914314366667736102056487801764504977810733864145345561082363138201884681361592507132912773232053723875693268779529356584178841573851684308376563406013233239882215248000469335270530930128142779332820256299560018561386232037729848145801981492068138179938922940325873513431882428049008550239708036124689581006653327237135166091749201632683092775002591013709611681840696403536206129743508400069567386471955123792314712926609930076191662595357199925704773866130302141205772770185097071862136336555451809336178623309498729589220987781995834415153256962432216473040038306841715197256120570432393371026470978142605670433531449905020981281453715322014525506219942334941962000274636848378263929551798262767569350625241730602189605337026518766305151168886083661232858554313101019657644014212155958365596267815395194747466419861783476359362981884258081018146767542882975417999188494960680009556850605762654839864212505388934931611376630618544477839651477591483750080844448847766249393214387788680369592803236638046742914177778155150057039892811910106755856537487445971089207128556854643697109282986376639345764010657528962119905567110926987429479428009188491103837678415171224618271273638210842643539414602597426512116804067008161458467556405248056823853500562418254287686762600653340730766843066146136680641050694416927216413745431947680232651472665630921961907063135137469416455552973149957014839303636732719099052489089761452043070995778033304924405652825286866836072890175888579257217434237655298257119358013136897988135394178218586573750556541852584144961800799937669817532487375487747896414619993257770075973242842579607092628413958702437132984193867177866596982571261391995083430646576015033776601325321908408370644758524055056774018701110194486227476039591795511232863335893066959854774666405409324770858881569433873545396535800823666825730612864681192415888815068164906283856185838530532735583167786002467807723411692289883439013074769270232857829685415509107095886735003483859897013667601700716981346925941491663177039058180062043147347457982993124316512700160487501910273482923851992351894523182647345597645998714889397130757601359374474113679744682135612534875831106320394834349612847620032444573015328223667322905648309118931671047899282687336227492484182683773250291894926456715771037242686044780368308430909869752017303507113382119167847662716399682002895956715516092374298830116420076280463829739001719270571259368054207912666812572506538866709655655553414178790670258020205083887773949370448954154843249264339970582586075907981256595947570160702339563802277943641474280330027101153488372827603401394609308482416990335408281939623843975076760225775226098552371280474566611950567120235028982853016986996357862074074030551852734453897890043920277357979311092171938494047960465118285616215063312717032051125326204661724137889307698093939700419411138519241537876937131789981192505646806072586144245076882219043595284533296120200738247380519996136785675628352172502265542849324801127629215150421172935891157124290602416072437095955013266017547257719655550355481059415698841664325329300732252865085368451364014328264878909104056252408571918038403987380892128022452422879178129397509246659363786339023859798563695329051729899323293279840669780177009211936493971779110235157554788940121833536041064526583159207736633381692259557613664675308446216537587561107550860061068931737897833396100521050580451573180923496562556961274383223733643619024123615556424695312367610242666033042235908310866938008987739107856329959849390784720089364010168999687188734896406483963880374557770750345498091587605849755635471223174051981800124604951093217300079111977754472297397409167213496785743125763852395691029145025232778185628240616733611805138283419118648951018258935161822891992545624703822837641043806040772593369223335438778818316123459339716853849009764396190570181799505389132120616049638505004663490237041143098592725057964731552550554991729290377073079084784566942723032251995203600557005993826142493820156169470825317545030507564209175323459897219959676887380673307388910948472366875066208189111898520432592529417359880839050424578018017418522554965560874803844255724069744494392246300532411095247582523620325118233214399472721021429239864418261183850301348289525283052473915069005162919434407342101521904575053875087542469823108563315625304558261994183886033697719758393916979526451612181013425805066262844911180497731381553373533279055734674690052129568986447987970830171413815084264546453958606535636339647675946266916173170361694067363847438501620291380373420981589785617757129870167652399648699168668502262441874105752704021236993576696212511899532544978681038408683653681905360822144308974392577197469819342038403142982281257667792191824659983922389552157768523834365402201533164049048340879815494360797335076994608838100564700169896633751517714440848907834083490973708318906251356807422866269451826168148446557029881696041123238376906913832213433406795340848997608949141693897035480120581953593342772367104049431330895956942082476844909164113087055314412785173720314822753936221258094130260828537247615867579551475638419955690053792197674109533330513237840242065043090429336865313299867599201642659150556608575193112317188912223274653296255504482544484717263984985519719686309319582155072454594766070835443644243419727480792260434353082870273734627904090184925565773346686705186553788806702800011330014652031509530180014518411210778819832198281264140375553053576467401302518580954470370437498918904963968761088503547300650956919287925311422917346169501025422412709298738645803653775570937771824422065463678871556871737208795065497934996414120120426219371847035437888258000449553189843266189301382199577088813208399356890042311711087571092394400112548861586746062754025963188688284678897912895644955107021516530923744120356670415645183715471564587395397707185790873106145527609814256281060796599596743492549553664967741410443629052184620041872099361153922873374040338755200930391122925304400506624169917048554059467731689472319977286351072480918131130108983530482834578599021890144202192748843069114641537489419001818630599839604620006492047885484950433771786100820871817292065324988486763527348221043752524068591683603371332948110461527632101826522896184273100564998096357301088913968354945227637150375297305996050892644651253663977420319629904431378611718238089871871174025862536818045403137990745117733859099453994692215419375900493585056019933680130158790256800570681067718280851656194729583719298183517634135095836458432621754940517384479117738534896821046274085106243771855314995393756229081090066847936806963665127164821824691984695338513164093704621337719386811479169859848674220256698140652612788744549896061527424821661931619579297407671004941548238552719601026180360747114923710760262080789245159267273094568222445470315691191647512760016016098908579215737160101862715108628812960631670842874840007767866632370584278571324155642319300414105808176166819437685945898150490240279601770161605601535013267517655984920505853277326946825395771828421593716659083591612057883060183364525537880639771149554759221122192036375398359127374635594650669717740749993611639337555215541738031841800035999356810546767080247039642376088276937867968038305561132138040096386630319464462445692635326260878624436793069484490602067358489774722818215207015971579205020084290410142848377015032993141908266672279448053962759437072719192643997864359458720916125378398748029530401692994470451979922586168826495793255464614953433525153895853088423580668958373530096284443549704411192041454725531056692227029455747901957735997567582927180198095861209811595399936095355395944190506596411206776852302147847725355941907391171211784965854257714829446561352698931201277072025258039774202442563352863046535883070576197202888855907367388888960190758394502597794124467343162097906587327564687666292208220461532253179393313611490263125082024932234644729846916469409121245648002855946869731348867415929199972374007721056833152160244157139903542861099187214361501986218444039665025984119955655670096342351759826514860130608304491814501391522391263248120440947391023241935284103146431534814714298555588928605767621250101406659901707374309267223251366167650071512929079266732326300759297838350358763606280245754310288147713757115059641020192602041030421443157086555397912076759576137374569698920232156055582106544696783590534688071457204963678714139876888404664843865403196349473773087781133493395849898902037338868876898776931025916356240207651884093004285678265662791087503426890264796222743541427460780549025050404629959367238032677456600962569744599069082553555647234662779157101164690217059450226234861503129000167323984157846053524658735469445231117510057370551004809399094341020864896511137469088447257177788836820906889406765189987240004279424793877102506235558068660282645921018248702098256994425682162515847866849137768106713379347720621248239953518902712555219742525975126673781265829104104603267566008992336941170137074698274432427504086645051154960839161171381376327683257316886111502237638676240423507585803067653538712417654317085239871875116274292507977789895317123786720080307432529839932225147831319717958688919535637104882094973848875880557332302856613292325011545318280644374269223124643419020594410739490883398134495115167028960718369034706472279621325230662068642836540274116736098942437771889391013940934145699226756249356519848695545467091824584617735930142038639571001606633089035529606700038489037356696638661090948558786967844857928657082940408601015199917545198419514030590047324427207215501615292787375874035182906775784592161112677161441203726473862920076554704636978027270202288060152379605157662859451810541215456631208482965434825933540328930174899390011546634454563645158946047885031612715063661427406046300070105287131251071703906351247118485264673036099386495508992680372166236371893457516081171768711136244646995907090287429306096880469384964621479623912550997265265364776906442310260040121769555311880679868410758196033342158744954480697667083257193678255755279473882807454672816722545723495043729460601119848237311441149975661506737652605703831629997669598812734715575233844448059769263576215762564771004410859797877951323337217513314508835087513140347225240785889312338057374727271199873863679020267940860253627240564291693933457492522031972262261854800987330562871523557713020201555079114730508154064880474784983435636382633356221358136101233910813170198314457871749691466449495133960455686603814473753463818841208783989141998321674821420850353077241255591122681242912723495181307958311050652304366840734437215698699029135038688777239119095317731271030400858295180655420132753815065495779091998679351451840870518030653109804373742691228939252067315975072883969822384659536238884179420603784335919456540924673113279354718807869758911570461883651775107333619603694994665163872445301096041671013267059905635132958983255639568236173437703540991068464822927227176484546130271092052075108162350422151448903472023788751803547824224636333245730897618790098135664433489196191312275160220853862241028129246655082198553599638700934696446738724258370301669427787717284645851967307181594546309072516529983227135568338034438153947780709140806637625831592609106374935197622897074653153134822076053673415070005646591325015862673343540862927484890758257050375342568213712625468005477504997659243428259863073417426483875400222611719455215086152441531615956586778623112240049732962848096144508206913406893741598374231514702919976097027881730592612498414087355147640733539787299705194671941504064481403356392769520323340881115212950268377502916584588355854368848258700798204843002304492541268349024613114335089440267611461258229338041725041354055500380912228206850896915722985659028097305919552158704453521493320901378572134086621363175627344913439263515601584078683481859046559961315601603702950960545919106882966047048714386768343651987067331967044975102410635546361807411743287218777193013881800328858076111909623207040846112307297564349192079521010748054134864087661615881702686769957862001363380412729280106084644688421988717031082240388150880668080357763830767031459506161606703110037033331274216203863709762063990681782813254797223794861121104085443035130671062098000807086855223535737804153534851128308937713813991896868217019837882992565228902142709513577500277430107949872654725506863033648017289229994037548204203465423815100046134582058234472010243885242350944961126841727569528292691287184956818979290451130951216579379885028508356033082164120113708368021339115477869203207687876041898046626299447161223709883886481024039390812821994461513957875057310305918188743743274510933825720215189744681036918374670211827449343429709985122237862160640473777098926560039607098835413686045273336833970143643045827816153455638440875613464631735278277700862722181972432960847019737847159446914984064206167623918464233073907085182750803049434146032012744908226773221524196510765286961086865367719266481092006597262904482870371410324280112178710698793512541593302609730376330797193625740018158159724845389394710716089343417440115390709172871606488215095955952523282213167299300472664757794119242953886052854076589460505416190485135270330774205270952056911104956261159985352806975098501230544143707178261735327358586483274052379713445196690060576120582590069441348493889358355299331122614096608188326453197775616577673231895921641215063678489979768729941532445593478057582389491392671384420754516823236588460643069376404595629187585339723435051434484050257235342093261726545029988044361891704076497238457759398258309142374615410860164056604827118241330503753241444805115370599335322253446604255904468094673439126991586554644582954541354191016612243523619305846026204555703050522668116510354193163441232555860043755141356160379254668424958950168473567772589479027763469601765277506403065049303388904331629286147754898648693936625214873338493211344388991289296554031100223007126252542280188897986610865178219922165003673373106456639408292115001211732288216803416196331857932687932057208454984196956855513326745210703155510550622594577199867970217137211990055848839323755422337799815521812516173508159591653097007694561488199395373432461229725701546598384560332034329763344931050678122461134817700429456265758689300355501924720749028390158943019565414417644197951889286071653834162315222027362312654043733741455200323773268163374774969362068269802191277166109433718649151354653667791622050810045199925950383963930501016765796778366631377853506686536693591046943547594932447046992534273260131851759832861364792729522168396995193603200315042912166873933372973195143511891354323166965592540483696046088906347754276199180150736789123908224731298214980028976512479706496433674605334232891878439679085151164460416037546597431382997482477640225312104004945316999726903276271582445761545125969450701194301436537588271710316051431021555714221134669361423260079921432669707772830641394596526660135625017382363667387843212801227983672942657289488241876088130901205969381105174140844902086860385950396542852006552000951658834209316783916914741488038585449712607288473936906281181980921158247211087768418204028594824647451741304744849930478326634764673978783440142609959457411448083515476722326045588719572706016940580641940226343740166476203152059760899497531508455277082638458697411002927131611847313303556727094498970395466732591018475027364093350695835914285200249542975793021538695691077520673784047622043131092997107564075916185339354645987576774402872325950904625088141971869899590009105315679471297195590750967501010250439060993019257628183766559262222039478932313331217262571839858919967781663995725662413131340042095207785795269934862482743255368547518503608945939500739200064893820646043358096772546644584403149609534717163549999879457960111571633473021751039704297554689008892212019829928676025353827322082294529866718592895921050676819523458749563497451935125576784603318135546207982280155007968114922685471730545282096755411977329131501785339346644407448560671574620780565734346011207668095478139234700045008527681807392791016160153105363797301409625649899622796859651379292320564196448806074139262920274602235841056506933106659625234184257814889666852420165722058204305931279463351555238625352898034495834103654828267112009365108929368693127004541979790658104521035567855249891639427664268321036788822534067679999040365611864114357111826372039741919292677734371593674067712926191901069785223946189224571417005235128906551654649806705099658233877891039462724644020106914856412035678726452978366083103937176111325969524802138006714072947019484047183808580684368338834748665625303783155618094687164316662490605677234775997502903466855014919952478905638013093909133105813107076158901068417624854083491348774569364918204687200312473383396878568485108046194815112480638609986686419975389441851382052687175090744415986029470591488544882974190533052311045711790239670056985782966382052296385719318188958294831933228219950932943438379179317381253254493110096487000878252375308819476844296433440217444408119618358225472460474328543585332772047424212164273878061870109224483816787026051042070439157108567284891422208417153236958105596972173477517922852568404785820452021649452016695608518260734957922718107796817093774866793655773608579156284055129403632032032043123086781095868207168834190886414069657429939400535997161648091256259132485140732112414565131159627936836349224609230986755971628356300077068795945660259529828121340411972513497894243613463282328160950729580669060512649361704992611650939330889535368575953855797187168622274300521579959345560978013792127824885154197743838759918706681280952392920912638810874099148860020173977039176408995872910516462354338277518028523368343061585400903977847592426307056655398769922814221190314004576755179747754006606970749457882166977497898212855807346172400188186285223401197825176827439167287206177616129411068916731243877063638640216132983321397842144732065558286998451284196506901786914011353661067436187602237392214072898534074419969778487560073199931900249856626631446605475921496006557014307189227661396021421054377266819304928024402550859312329246666698508616798278890124352939703510255227702110724987393226334561755161033138480285666329490195283875595990620907375251881911101581598144499355487973256948518521364181795613538704983027073368980681295757141968962658559560299960309212941019385253229739410518877017974902490154970054982993737378230538689748211525658898469255677898977015331744225937007100901273922265662393778420040596912329251389757331005356454736489914486890944251730812249940040199276759451871931966783081718577406439939468497928523110322993765084757345537126394306723975236196121719333683568275188666006233958615135364033120300875476039996852856798415922689179856868688786969410598849248756811266036268303544734064882182510394334571366189589514113088758585333889071543470678843441168350482358967945966100977406347588966918429670042869912148079183227594913508681041809731229219142085462421824111669163666454880508362031856780804279705974558817857926388593461037783045162717092646302380423460105924038767560531019398534055039438667333227872389616189700608483183992691835428938542262307620319834301386831449773808733843071902589408735268079083083450023942824310081622218494286148504921031156945029752661818205779194438797392378818918662389074049001962635851804656256736827155967582876964122205397458756344346012730558813439956545549161052573902876884417491221934268813474149966485798284543681734825397615408734840674275186642035332307303046911654189466078793469678750006577037079142790049837610995093683418912012507083824648902190792046390786936205780780295393111714127760490415114878717879378212892626443773411317410448294706765957236786060537413269816952318466294733345038405637387146761799800826747405151670424907212532489109595145862608532936286843293566316868297036345253982791744889556337369419163797935456806875723244935569496529843098833426781620560977770412730560306357506829931565790150781275147009574871515311225507085623374038427126575083233467330771188076522131471294642893447268663342001841581991189799777751603297067252581292526259871653746497069383966171992012619059866306994116551020976745476173159123764766722331874451106916628551366540123122928997421932027424039737505695862955436747015281830883512219411891750245784605377460174882984060573824808854158102386510740171470591782930465006350577219399206596609541185358183507287933244384897680033852083997211817771046516653973047391303672757973441229350718861597926152933899077729029252900034005986995023524641210057963653537810064436011077187676695655964101245989424182853762051326783295119960956034384670751723707483013114699708252234384840013939270331257402832289997561090954249926645827342392395011362331550945806920673817472163499399678339486245605248960575509058914540885517771757754581741955159454597271937439448801129782829696494443835694856593391056309212972119432587184810727942181205553352313079148443595024755166571363542176938671312237558539915446156110183286987685696214430565133734356782591201075504439391460744010530301686642380702762492620583483896486949396977354723834052468260385139497869397894811378029481510087818810308921008362171992454669700821475050766794998317341084134895337727380113207148455711171606759436901971454964569619018394589183534638944258556148856507699746923143569272678913551742982161841931711702576707974027400053444431930464289504544752972852877241485270839261174994972464224411681308317825954428231730975339455912036473924100423086807774531784244955189998392032294869299357963568357646210944624189056971658983183569873354131948442316484697454300998216382049943349048409732236938873978076121467791220572988811324255144856417297569219081332010583382536968892776517857718027597466975669095226211344350218780782250263591104349941381478968473992797007666120048707846169511261139555881285445850402398275449750367813200633911201155725458860222124508437652403950658820637962348813980989166476575626884591729624805660726378717011145715586286198084726573152711531668182330045558066392550644406213563584494910084747600545922624628213860534169336610922853028043788306220271225534012624263897771961348071148603212142886103944702648873888926687913060611188730622421291024776915770816799916556295874435268968856114072489354620751322804149358368752967757568640224224503826448115039900911709924754242001018730414359156030361791874642416173620614602357540643803327753284367669585311127903007036281686980796738393082443239070413218054731621708593655914786550597268799099842979075393170959165641086771024484713231160941012298744362731633306451535136822581558504859727061738661608521013757629709294017227288691058045853764449913182275917869142417844450643067334628819006564308503802887475882553393674338206230749506694409202929627778868731962484523556089939517852703235719651351933296536135411832910174855405689547126730089036169530710423066294815875890632067325373428055019621403148023495772850729598442305508724742738401249279116487449888414372422269631754538248278068730119539840494101947843423814857262412541012602336090884321515448696001944387515872381703651852896269587017266815547445143171451683800055538090847703972802122438540034672094175102109125355496790049499240424328150931346508359147784571207158044969694477251955446909185310822932601894021526699475695821803754403510491351428723666491677538233183549406408447244595754366189961275657328572667133029333839069856594114217948257738925548970438160703802018894225342131476702654914326784148326436926208436232403026553966487978420656202665915613576525459592554607147008756570763327108839953305706868119509434871478427623569187513908714431690761413245905239200777368056094972262275002241862451418856340400389354251201540047697030297067022713424223801743691769421045204503627261880293360348905055002153329314064328732101037037192094964487952102765505744924084895649526103291874936484531356783953194519243211433630322733831789678850825707464978745981978742867321334551154281985689983344042727523603403976609494758644387210463225919625142016730976829022349583776901861666015088754103092564966006846044938397312179281314730659644245806696432079844635615582874196290552945166434508195135717511821171036191660824672392091472392717468408107844037590042819983557943472484065675040913294932664275557660424890677613100435437080355527701619226547238297090295107750944356078755518722011312408056201533703340767440578667687952647338641336676552382115459222062093513391067830262474174483403668892786629546950219953077119124933055127306096241717493969704987419049605619713777600946047692535390114427807873748805094297803691782479912686729303344739825519131600207124814777842926850162363798084424975523845957071832148100241407239779733952495145335296667723956503949099240071383360271380315201366769631076230357569755122391615715654025889064320418739018596520342414201109889022447041249820471562667172847707115943577726340631107236312834267289275127276717301318554820525269621525718869367482519297303002810495387630119931554301332843332948985565469754339671650740048141206483830307597238422095727001255414664449050302424640496018988831880208161093594152815108947595111861033701877914257438441413768737158620065532563384549035851188349359085672157378284241974612196966601644602709403203894750411189871648378662920957184187384738321757017311685558827720243286726615675953303936714835189500004480536380570047676321142074757525143615083525357508424703870605295796054728300042350097465838794395474222968646446061370729411653866810417192047550519136164734452292709581821240503150384146817576327308142830314719551216124499839263105115221167545330993194785553320015648321504482710224838887593047802462091970791267304382582901796223881162487570601747206060731312664599214481556841934434986289846384144841532241363364657640198614567842079821453943480087301244779359923847507320396233291603585976910545691445729349546309899667539423754271347641736569563584038326180974075956265658145173851938949290174639876720938985046124332417744196184721073561133592480054663354413473190925707856712828482171276857393216626993125701872241334906075406883059919498741457635212862696164667452739248273396057095268937051053473812463950162787818766501415983245333895376730900820649037720972279139125862121619331005832769576988543814448504347425184573829368946359183578852555240250781478320815229624845750629901175090541245499736473295012290923195981738873614182061892949969078087885314918616968785558681606047690510380644621455626732085035500759909025194816475963876906050092031410971222680333897518010656712497240399763112624482553566622917875960138018185015729119351457875764659471925584241744495301846874180049281791056840965035034625575664074729522581371459085321962679685015340585804327527196004285958429472160326688056097364370499073153310305138062999933012511267496349546538536014363245589727364016124780626962008166065041233812105780181724738411669551660115877975841219568086980031741372153923249964709396060873081283004494170116939259942322726058543288014174135576380538834064485281780624292205313840717653007494783952093684139893954049264922248020225906378438081503006006244235319455113644290490133423230464299133261763578461055210334044093064736961817517919042512893502907464402469670182388952957944937899652820219807625342645601644860100672784908846630607908538449342162134024886904225178124398606642361633254304557452040765402029613785798554751884689491161145896496499227321389724930375617051149765077007231231014129661200141868794156108190406527896050025567793764678104582472800594211098836374164527377468533835371135871527629992625227360200637648725936189681867318468562606028275454582220785866597372853032495991843698677950599968930576265350391344869906419323111067475158013396809086350061376978647097877903588470558956519794626137495246890782846265144160306681963558185167321486783481414573340899070562737895154656617367412185856017680880323640032991265682422260955178188852263078926832716950117616581027861239082357624674088661410993910946981198069843341897133474446277286015225873008512417469578920238620531152653250654229314750676241228953417813863898260619605155741237109367946766417400031763851598693204367312766891200819517610434598787393123901773046786023183827764309114509693511151385801669876349203270501172201847249753001243656642413620739469079320240864220642200746844262452402153625802524585551687865347306840174260002324989292730807198537485985560450854549197958963677826742754854412706416840387493793135677548271133440264074371242045652781770983842775735645483210411264079484269286129859276487173492685320994068992544042400737756223244400456516906260979852563458011370504930953274406428186166291796096882020396518029227446633144974804967521584178659687999004212340887100603515448796399748248401442881376389825547961333102020667089177406240279103258300476321978111920708483746653434978284929031751772188652105156680566842619045382737074076301062783825583718198878546815383061982337088705236183506218841181935956921062641801195951760136159231036580365500205767857222690305005364706799614690510670202900610193312575349553722346824821969925249205283417662450601377049441825846771414726155032098162100375462877694222918062663286333143380570798970705246536516034623549374168151633416745383236822188952713870315889771756057250892361956306704525934960688433421319015752717890240201149408389890206236432343657100548603832088793691139913148921066779965397164071129758723457121690101633395312593671839195185578102508094675560018857715448275934447538408568902621894954502084298304489266736486326445913154271544953385323830726181720537848946612030071592051148074347753802695371186238811469888187755450649348017415464618509409949064152172841533108035673141697660820577149517884053005304222880205492815083741681667135729579675068425916977491090929755263623610778225266823863092894335519356700025600029977962266431981507998322415474436018668158034134647268806128933308113888790536842645878347601066132809360468806105832392601741791529745801565150797018738848113070002260538447216250995205130111638117902565410488633077043385231231574484256588981494419192972077604170993988864766482223450980578335916677979946235026308105886123674130307197369713292982637280998914464974124366030265439498470761933818052830058398793933596360561265578208380776816373461122501645635568887454966389819269491647219279300489278455496800486891129526633281305191638846764898666507065446587118190660859284924966615694876156177437256883659730245884318572958192916711404809334548499255042320513633767912083919396953529422548400597030886584339016157257954414662712887253114320207714289802880206162597636588613358902544445648546366653377416526726837821990882648769790351901260003381247508433553461530321459880669774771156168234086714589446379626912400390662264040555605833469194948773423116058991608332807731415566672740551856021063787876467810929610136602918041756206748774940038171633483270183386228944523933955076204373274772359125917061511161681318724147570909474918626121701137896661050985904292201154341332604963967223825965317395536849927740080738588542765821575416255626813716454281177795774936663716885323330032907576116095945246786843634789724889153810192510294830164513355820028058726525807716252628643892500578077462652614834840108088510988035253498493650053601005411173679022198324081785491220164896342509259809878164125110324195593080233722596685896609012148997647842604575334287618652932506339722808720094200434349079379860553505291673184131246088213776135032489038904092698497067444003935636798935367898676694231787680876452990209055268418404710055412049004690300828682981236513400742731123139633573347701031564694755469440470049806759870819654794672546316134500954598602852743738446584181667571672275446899605751946310602010147711506627975096992686472355414764903626007911007252557837813728598677137688783230314689354830296353796945102691430856860524746719767681173496711437778621692797902159668569443269681686041403871486917102720352795296420979598315457676448000176215874104493557544197534336356135422799256924080988324813830305332502405039463606627010525666351770171606048132172136343385359357019159784055098486183681048858421805107074598756114558599754107568729516758180685543621735841997613865073627259634493586748734764772545052029714530693486164583118869161774550751769900685306026109906495865151789480950497119477416537840207652582705446952329168260881183809821148925661020167741910141282229867567549473389251613050105826079593673057235669160010893931530366580811623719372946531998379078849881337998480124266213275160824239475641520986061271017198895731515693487859036996955691666052107911552664619200911386285838915284002752579521481018233090483238193332598213452437217150967474398573254780448884438177157158784331629294623471083162805574768509623053012464668446644948488704272961595804773915114921009917889868393312470775909359534911653408254289032115017342046653198808996275676924976042998756495919497366351717057721833084351549685509598019661932656128778013711777546069825057763860305454865342941695387968593868556847591994099650446041813832925361879573078209030991131961810268001071708694112795401386624385389009922290686050848426049772710328294395227916924660418910663145295379109250712420918587550486358036870279389553658880847697618484232915136495109167761935825162896089983328780154261046152082353738263230188595052191674290126579392193442947490933469383668674856656759755104393598951400400607905160100985224448001718986877559834815843553626104942392072198892742096032355863378871726191102738388355909423365724071503011951394746281573029254456600798014191419617047531874457204153855014871869460938373604933123721174931957844376776984726003977640752040899350515897751175665426678716330709375949006524042411902281408691120412120836393399369281959707275922019345997726870138896069238181220574671859780015496785830562081400382994962919845525777507002112810293386253623271075591627540148401663390675499365863936817866232237141428669156696416529940303359358293149071484784243443298075331130000936727318193893655006761858011211289612347350135187765726309475994770807502219358702556846004229378202867983055583390526560672857306752317047824434715916484522234484664837704073407573425565569846788948550848323622953881462572571293885548331146259503748066891668229939996212780729702291813974720663037650200345038852446062265252043789396003580243188253819495236941017094940167191513441793776676528555842182256196545966847100289975780319404905327466682230909500604029094003642635249851489191097456262806687523895669318457408673747663381127694519848390700441118208496532443125713466664522036917414732077817354545058788429312688558081530129954945422989151983435567620430737347744955790876700307991389072340809130146772613858152397887604223010178172745368627378583898278600012430693576316495948998292805268092199271079066717082107400625325130928606860862534395628392896541422834807222333509609080815244579948588530609426517345906429300302689837546057386531648938605158463557689700644831851944771756622656829050442527488126480037531695924039613925780596934594348925751665021750458567681467079892130649954456633689505194407922374000084806995001521744571102198632422491338193753688394640071786395588178333851419527431524015127817122271508684049350246114565427825789772401861167524331754979540984433355645887930117896384654851486441373317067309066869435522646677209141173910788423981960267093900234108648954118650994512564481124153312580840424957524213866004004779721953295096876569194538110308317025279749897593553856023216680968430460320904699394130024536966689003235976692090891283717976366999528784969427000044523370344903937566383469734927524155251542645739567616920844369912999351059052452727370491586542063534334601886371181391993588817938338316456334159944186451375940188446009201165665291661091507319812508897935370368180950678210915959918595112983990104234209554472737954151312021190675784346794035475979845715212050739642914891096064751429532150443565035797373844074977971764142134648439226756976544097624774711590714984093673675370676302226527022488240410496745915038882428923137859948180771561295650789108088457658237945349687208246841017442349510469033595723028683468274026432347615670946353835795485987775814562659742213388309504403658121127168326828906442235690684638545668817804677573677632910978884677883845842068148089982552812507880737542986419733685081356130572785484041014975799793397031164654361297615116669805811239507991959990375152796995414898492352727449671258437390334307960768702505694716701219551364793341184598894978731853979971093405432366021234734249369369861434970292305524789424532626217578357767842507622675606139317921263961059928807941100995794413358232235754726648464943381140634991074035471825918334173453997752709723156469851114071091006891836597296497157894203897844781882902876233006176589068764395611529603280544485885766877492201836567124526948260206461931780965074828224155231893176489392922684582120016299260363791503151452289008587729484380335703468634047735757094549327903234319359885772387950974988336770172028101770939770081947120831414431769219916857600676734902774066645691592964226697210345913103975707073915803665474073996017720977929650714875797681678680942339689807321075487182153959337856906278085061902588004256341856749476410674468763369795044910423955749037197433279990462463837271082720800542989902558995635758542351207932596937298455141653328680549121123121015397354379127127538776712032908184279414608090508064117564652674830165610387416838698155329885343099064292891655664274306205661857258029710055284817917566204420812083454970758889532310459916928628261238637218956058099574401688351302511419541085406203530388095109909617720764521148134205689949513612787044003815024747926493624150955550823340797009845721437339569974661419151491167648432638053871986643838677335806008648119211559311183911079064024558025695911209405598320045537731555496270840284116036501456163226429659971777823275335877471776900887992746450769799886770939371169798979388502859434305920725988611062187675433143613001070298010191522435843702445909503159779357264792662999552315153145858935289327620337685221938969489748334837860782386302608203581631326990386952942455760773537057745657395586428113578862765593175605658039930789887274846906078347646054257382345487095474351060343829712942327565421040462295621842155499580591204451097829312237459371296797976485390065315040521693430362326934945449347140682282462933528243680025434184374198796401066874980736105488872560297478297114737658514263356391935592963935700059190991303336591283834460098844930921888549171128888699897340107826259552876159384953584157742227898374916232867205262391077206732256263615886001067324120071193154158144869686764998555999422284080963646748699064457264419928125809884101433888079944112391163557369064452542306138593394089136793685791664510386948870541182299475493467360025343763858457684480874284530055759954442475976969036480942534221005405739215320382731010827947148229380073610559388261042601763666689440520155453392629917527445778776530893771492668469032607047999578190355064632353421374445712446349509205337958460964799178019821138295855341810678756812128472593865710374415117734599577979353467041536490730045919562604617820120819478279489686439818256201680937009028296340745816038178981064758889589785640256808871900019017794587876762025161325687608771535576719308787071598801156376488024166236130421853723914484196851310530974498796838959062465872062804555647568559981147604512509182073372013183233045935432973940058508253862957831636058827708419363916014277006169007476004711874636296482688741539281610536626013026133863613474398623548699979598439037841515015949010712038975205285569986230206540300224917190345293955604330462715723481666239340409859180055076816540017596529666197825431817466799063814966339471731164598168919153307938449741067677978011226675117744254980777133603489320290843425016846556263551140447552326907155821574406464072260252022871709141697592539172779737489446740675338422952858706169637443334227571368340517903463633591844688881146436737488500819514293749219183246727366686342568362001548838966841336902237896040471888446003100407799226442919176729705143271697499032260430951202823547320758226270762770330909826002720639986059786814034816328667648387529603307129528027633242022759274568998946712645862530056695302137006994824192982248666865604612784279803271371647768763359733127877738379576441514993648048466170935461531520241030415385590976165979136960329922169672545026443983739959888206444844961610392502501087850057382898315257113787129023614427726612434212902469842511665826553488350028579723277434521900218611003389928062860993330232693608800912710208820138051672022659024283858540194032548759253287227968911487292259471518156397871340862572409238720130124179189117464722515839180892211203707236844427304971335688904196095834298220481267851150457998928341425935834989693473919126018757728080460538955944297808889628154233183716565472744599697813659443249297686163662675656440231356195911861587239738163611940841542578719081007438515476490754953127803223355864370059423789515664355324813607172575266048669363952364797500792537216642937330356713441748722024141550754070943772900487883382791504346997789406542131651650768566618246552297763281948215005223427570861276084825999259665041921318908640672494309695974938699146952611753357071435601373441178853109488977393729304431626238668002019634797374582798052170871411477351821843746506850981643458487966149129446904690329909645167681987773385348905917749327429785375037940512016008295970476503073064315083214485264789175237636363962961791600349591456986790256801690477592757352541862843769102264132814441337356951664400451996422574234932085050355812779378071651478560661544192620330741082192997661091755007858973825631169862704055837873770288330483565583022269173373285945815214174119065285857009606798610031926911072970052711181112557054707183465093579604410062415521409021659286029408410440094071532793188043144826843296963815531813573950020063326420068243502054993219669039389500407611427316336374955828380779282308296585188112517705068330635740524146879266864800285915811155242995373894399553057666853000982385259928096241812565193243475015348427751297373497306186092126357923797716720174553563203358738498816493978609914598512850581458686377315064108227181591925029072189405636843480127674662999917563572114551948944462895619096540303593603305559754557204993861309007437763230239861371993450380831649490788312339275926314430773280959092143529284863569521133130549689511528549776009528412384470487152140579095489694188778838993103302822223061920518717373924266343157254422004369452012720603241598625856184564417734552752913311779390972517677499963448363996214228357054501901377730188249188968945384753239854075992326397313611431046225043956044994657177334087536788768160367332425337846750180640659829481786016597077649211524448187448670663544260358883009496300179226503936359011567251565782271762406662890768082599364577766307278237525566378148532146827833279748947713014715529028450667424005921418501598562862991482797101365018766541857050972568933232240980042592582619765227708007450461338032237779605250670946811463946580870141612709088101752015569092827147649382235331469206310284008602578092313635120878781700751227369733038495666403512824455771016019182797084508786746092952873995523250008525254119273412608001381370541146745411088602818053343474394504573607804389680078725425101119131736524898056777931369307610688231548781110286000102512785792443401414344587513467041858780321229769161132258040437045468934886071161728342943014780117424945027782353843923388960980432984322941645632508490140283648670391445684100372339034724517369496446345625648692221377878992953691176508335212693303156244159499689956527081864304145372461793368530101676024425537611844505266952498176104628181070620250340783499008737353003972828460264421384075354824309563447431827264166009666663031243073173108271201293729396906350859375175030034030674931980316662737056812329452298897715469144421592246559349820387903791752807996567299549210470168962226285848893716829185372258140139730621358527584639903513955446480623122333869780809402595478618859401112166008756066370102203321042853325327919880474781133101402271833591219567058839046936082257668622070996976440226951127307457203021157760672249156036262816743154228599882961951232318028669081853127308775779950632186594872202482362613125654767999200657813888271419879999378774254140869906669268662887607970307696734971508386329543514292567285814670896952358684960379249257498996233554991699352544144813865965482864014040169987834966528821273973324888484876422407820866057485625125235829435082926925565128635906032382146435438142452143179870663158515989305141427819281020371486285531703980642244041653313195095540391319155366861770062984705425838183671740580857161732397786304368466576619596461517052435391277779291366001573118324474169292291980485652739643836443524539456193283782518298539114937712082717444959278249573777936031694445219664871341357613240972631972486521752555851261813485313662675448037122822453987061000356342545600630702130123666631703553642683345944052832310054743176079062863935606899114945002768334628515749092506891964011679299424877663667092689414476403523550072691047604465622429256810095350793980162643123199025175110466277063176513094674804501325321769875162777633037876456890787903643570147857347863788494846851914986027492840308351598985924760901910874471698434848966912209758788376370381889122031282356547570957735326970848877997868231786893304300664205802987541394167517773924197046646796472720721963964023363688181537175875976541630055256001623044408478767522230197544211946644607740989422657718571537185124135047867476480115649469986880155866344761184834615352557000998779741062275248737723790680183602873452967004598260562261397577085017881145762258449196855257454644717581922745995306448780609214390440553748864683885699303815047306257991220744617341552241837356640399011271582390150329870493316135648588232563920807412675854996833357586002675506789608266730371001683470245288885966407162516665385698064873458858378881024916928881685932556106716059862622143810753138850387454527899050386364905642739270371066537353057515304950466147259148400533789621801365143228975741847230153506379264394357427760319511487307514326518300414818148211191797475559416464219772095725731286055701029480927907204656699611667968604175041786101269935579555165990525376551577733989863324279219028220472867544198136812719539606374476756636800655727891601734102724319700094801714113543874730271657531625674117434139677687338317490595701359185483726510872475246769392015750925124562845437729477770654160828413010543449962525907685857748346842232524456799433877398055412475556822729016088863938071936949495809499709865683899192400685143810342614657194427987106453666579231530434745432291966460695707131285231620789983312016441238154439574461355358685807034864106858619614848535521837846251589398766696304618626595065954218568833647449262178236180714429838260664719040094703399043048547385302150735634083097334753168004044222797942868308953040808232912046211136586609552847181286577523796881284998055253887184745113794630017369328131534788181701864227411829193232897638863687056885001776184251414429096342603374079622660869181970199154750397101873720880161697551005320395774960016558296275000088313177952429237854199819271812343334872362320642242546760557445378310910121532749189305132321761075760571928397504749664462851363868515927877330207066121998564921624223317660647127242948027928038442591750228611238620076043022934867948260325290702131816413814235109649317585307031518043077566020161060542186970412040557757605741848475529527960609485975759711889411566971352340639012106441738120945670375656607933320603560939429308106684909324817437639703603692282239971166462545534415122823349166368808052801989607807933220378058124047582507670188877213815588564943740142919954452562047404342329446327221055756462489621140118570089981715338786840406100926157520552653745797687927540186277701174585932415646629381390218687030293258133961652340979401424996114631754357228457190184863164728360606445734206321919625227117533012791463241709479256855723059823479448964302111314621993246249893444370377182521569786257094888675210624624702644932126059824217257907078588527746444095893246754518061275228404980981757936979499059521623338293102912078809700443995292577660657764049653117766356663095058567770770215430178145875366922866447744145914434725527814196493238962497836537810324336005322491174117825666681266851920723165003959612264399263829019052262526548902601006088516038222073004816236999799747385272436504015283704052697250044570464493556524888735029592641900155642058133782242578009109322999363773316020196446138872344435632816434090312421651695764261742683265732753530401998990512120952413576299369202131091362235204973523206228050862554919988673658542601685607795866486416442336741457066104393282525443520577770732729794349553241134940718752551991911291069823829941102985502851937485593715527224766911789538091453536947813177642336912146653112681943146875764073289886925437118190714576631493333076173365779296136873737558353711039031242763831635519801152083575568359948777035030417990394578126288353181592141147202763673268731872312498376767391511949113822324948206012438030566765311957268247900926253695524439074661888414237474247061573990538713005628390214693445145247372066803156988750929223545803631144821015865452676565239206039075329540650345537388895005281281550251016842252852823504615258664402876345839110185224440389879111358607956146810469243258128783012427587149913692636361796710680603406186737427744209057619354838357375032011204870655608157525201755278655328344719955736290660112422534010403076465522243879532271806357828226137474547982965778943648497445710577082257819352400054039221461618018505953066494405839946486924734145934464579935344926009813233680017986282336229930541276695247299253505654964923605978487203577465250039237861492997168429356859362179440661709801544744289811718333605590562860270964674726711328639865320413363503422683173299964422931004991854835175107061349099151649347922054780161705218713965043383530965167983265282106749629973779286940935268305858598285296953442282500574922118621205991053596460668932309556377667301014153693502710484588302812603532720643265488626799226304027571901407071392088189437436858836346842223041788677686057423897530335790906386557055595707975730727626262348879948700521476540014099296742388477938027158802762238032279099235318102488754162068965696100750178810456136580070587610699138422609255620227854438260405118560443619697791381629820197956230894126366894222177220396503639711457506097905733195929570758587455619160222219809592030532999277271683365609027149250912423642904371787278378269763142572096015005890222297514558025127433628531002168186153754550049693446322031497519406785892013626365868615374066961181918825331651854046649702904730522480479846272758346614748525795276065455396523751515512059021207101060679689965932092323547489378229383109826411508792312721400017088572097754115854393989702283800605190987665641213587988729185634034979871979270384971899431442571995812161854657554518981759430950143036833199494408870555449959481169499236447556548342914343343297288186862702269704375461615418762966701342410020321937874168022929717718979026520332351638554597115564624920001343208392140946145876290440969149821804761652870777796424218387335986030369711371049268196901537758767068324766779198406613820211378205195938884388137833357735280965608110766802891615990473289523639032809832289702263690065992129894920314134959088344223552415722735034846248615852822230576755170905345540859845640835329531975722078146940883709039599213287347836279931348444121357848556397735194552814200693828896911701157192364680662825295725894206283944896074276257418188471433063743286814093773446442532125314808032147076998438709484456840059621023567877366256454612725246769932090859790156012724569571813520471908040764238350065440032556789885239262886420844668909711524152740986563306395994625016176304063471456595558954164611425055826003065552121381807826260797126285509022120990438146476881905996813673572861520236035217334164006334123588126321016816886478677805526645849930381840179094104434385656876440268751614363892990308547234728065733530660037406666379224685637092965678312325197562369929830396551188266009472813787536789539842753694535364873889999955996431501777314116987810652628325310021304817633879372443122660193909749518502866592736343884835706972094548529006122172036689314019887971522462499409816152382857958699046189915501150656539790088831187223250829023836421722812028253345112149506163040157918868474953094461523754548971708534549133048426446927302905306865943941160967767151299395780297166300369367900813143762241331051682930087984183701635455093069497953755801207664516790092277135341698514505611934964863169735488555769647318302176144797429808588136104621003683417931495373137960696374845756851490739128521824691037775466131347322347020143648840887513910012390270083834063909237532026466681454492812720159345639437885927038643076555592444312820012988676490168764970339436724727259384191270157179114210657854904437897121619884950906474679811515928025196352420439741085287817301485245515122021009130036959722487050845960281496007216774276211618289219195187118763737047530744744274713466729307706581344436308549460613469398530031328094178089233866827731117468906717293120005075945163824465713590061011025739376505932008727435310115768144631648012726734009391055805053036387356519580814143287710094281233488322313733843326637127965190713581375350230901615790358229556377373367508073390532154453048606065102280507969034127060688524795357183757721061013067734880008987538183764653562396151157678404453223892315092525044954981701222364075299888226390670125817730104519045870047721521416823751448857468987814025150736101419430894086082841002024038109950185003897594594291731321661071496617996355112100439494012688810251178076471744197304867481724298624281468635763689837845175502905855994521949219147149143718712525037674786172960951405440291661690824637807958287733985525417215753990971541048483028737913116462519570178680284739718199468116655364982827866858745445844513697521938253322426298278386041575678263668047158291188295020942834735911813621864782578028891908808805471825720192198330074427414459423960288569465942745045227890909065406780097224004401180098780943706630471418029994166651458898374352211333437361224046677120585568030333322877487377503045465197663750803033394093168272821797868878845085233375847028829015080486330025889429873104157651617051765769884546400730170520959300958700930352269207731889757799692180957437851798333989057121286698058927660292643956955606541059987744049624157489278577011517583900505762005383139865905829070136805737980653562304297561809157332135819342361061640027876554704692881157623223684657422908017999553371327340223931801000138740181880057416907849564221338583502933503826097636804549741820229318689376544836378639305749930118705216342449369917580029051869933431291970680724907785435089621799590136915037297392219948719101960318949803935456433576968705333216229910645195362152489528586669140217345881033816304693215459808160199308459829403653307448665983400214144756591946914625897717747788960435595530663577258545841075619402984243011416375523489179751032192601354731742739420978025406885958749395310650117702883789456780051872297661641602131806945798682293621579169054385021228664322840672615457036545175898251034869368176996471339908247385102455505842351812712092308857650289323628882665851217675861426326260766657957456698547391859633053730615520197986749137584473268195694632480767018772034263064880287481601937655649651166733727370641888917732951405610730966373507974041526812005431624581052807634455928072317386190036101076780261969120650785113836174290703576194962304218457959467956681747516194124038155278619801063929526958586550403561947652983949807424933780152120881177332091764810870199403645246523892360458736590216188313382997047116431063745897495695639207275646607045728961184942872255404939253944211611713784552549037409553912358531511421238982345961149703063288794093103383118294178340225357986798289176790869477095941779105058725016462583844958965459695204579569754748160895863183316330282817073245807911948629222664826072089152697261251231619467321986831573494379245069961308670342251016855016941673785735881287858862164622284608210143250741615669505006784232672646891412791515838911725959282248690140853163462766020693834305823010856508843987019792363255856921984595858774230492904000842868117643086705488812496593471864511159331709053836050401108530310550449663373511722217323248204524107809920066829890027551591494051327799476034197433506332463484510251424770963204975622831567777820113936033637208519794266346464944625698846097608797061796080515128744999974524296858969069947236082971696216581922784328745653640223859100676407117163275848192716491766625835323141706333460680274948738932146800023619345319004325747589775430363879802935093714523165506514675972676413963255903036290702059778230624577532521129586115501218089944053482734122211165476027014398902348181602886769547871278351404990831032620890719406357544339557273629343747410097873595540698063012493769175318064737857531946994483781946639890357488730706973198794447025168721847074465500169035397156070783219829103978313798105975151510724805890818165830730493546357471650610621392464396062817942516947150899890409758200761111163786223885093951286419692135244092172263279347646193074634146689544643008087629306832961127849550965261138294520522310908436539319698656188014512288100064178734853198091606271135377640408633720476927069792060009114876670667443741071777007681188607613703439923440047659937861685078224471099692364327144576613764956765617120130972263900341944641982566352160338059418226490981296681394502799601645970855325121295815359510681919396477579184557494625924940229381619709924148225666668045808397395647519748042112652422224754162725139836701778588161024117570816806497487882550772305917139044029933567391010043357694541287528621979907914120565055182193920766786693270066867328827366950537581836173603248319360163366084786537698910464443567103205255732981152778952907215727484011580890497432242474638800405882165918528657581895138075880185924711789093384094179782412140720231991384936460499065095832697656719790796080935023929486413575565479774405339642496477360201333924042983460094215662737913064042614905744950850851505170074831101337913040200368913801296516402996612337024821329720330683554730219677249433117015678317668702784279001036037963430999967765589901844800451878450187119944672991591355711085959841337567103694083614296131149479571916539585832815424617579626054951342641306362830746904616112009800034962512425902481617455511491951984887812854508246307393224210623151030505268846745581902684680042893178862110703330293451642550681233268479471807014361412938901523571436187928432505959965149343285661659512561694641343640904570601319177918531437346973541011793659229918909489187019974254049712000974175738528602098490372228865328349440697337320721026015144794657892614846699158737065190551457665481434961764307129909154275660877991758638270391075019202250468404358075519421396275831795378882707040888128328586176516494985688703833943908705377846219928888877590218906016346420869168490138819054169088022245943909437334074172471953019506229822574269881755991432320574141731363405921508678125083062060610295311869603393939306205086181289715500223783890947727629103039578784213183534305424034522769597140286702652189596507403499908716585298936474336940747592209176404274932697199058867032771624596408853326987151336558306854389286874303440792756435919150295681664665708478450534638844705675727266633334799928559846699490210825416578321268633917459776658372463438522832267327188642234190474623396984338224408195055303771379309748182192986036788724655082360375918833177611916278106175937950433415600171703933360831741601608564545234272985819964889340333632022367561089727077133944305120714244135519740084257591284005096088293209835102719519322382101584235822742177676518693747535677843038939377432601749844402771163645948217346104116239345005940582358290793283490328190686672390635867124237243196661316058102409702203271067910439667991817296903463484577715457026142063325144930571546264724874409977450507910786037185429533220686691076090195838859050822377491086126868926691918730385362136282576008999379799200395971698337647786128151735576300937759665235832560281195760931414550616765678116894492578470398867897826439836686420635952892224694555475308996172740031207351185345575403156834350275000151992510645773116743252545837254439000477119301803045389856093935218385619697301410082687414374740825660096749095600094142743623400351076736204063979292808565060946610763370851117711262169051567603222573332974365420530879196307388982894988227633859034775470587088111603427059469421360276070299526279639793386758604552022055708424690546614542704565432380753083828056616419840988524045918842284864959652378088533938185369244903773272016390939043925815608226002781370703532955067887916377251875697628903415676642151351570067574327866773635385024726863281877420018023261668171237237576874113967757744798959550522067240937812789911878073884209737143534950062102227996104993981702879182681286757814063171726003234806671895837430777776086183980194024248164805960376193989859719843387063684810324349695288641310267112349749626341446866889000023435801574445696164040432274704200466865156654706595982912646392441678300528314685808888981907351138995382392831495884637447504133457014280431707110976001684056084078089668613523496237673229002503556096344496580127602045413674577100783585841930616544826586069938171763745496055038306693316096483663336728727296670970336460521847702306699294302198804374013448785546932807716713526240678054771622942844186721158814022244146386569682646643944322234840251652773405022841305541489636287407900052356302352248524729319945720234715968987931139204571127456481403277652795471012626342404134457789099919966194793812168556917073165716085205359374098946350817126412593832008027805964593225460129856582624769203440043047387939555990265983228745977139260703435342061517807318107595035234754509671774098926954549510125098803854178881461669162825779343417062721722295641741238538087998543925662309798222680098448393543210524105204653119328791581457657588124809159848869630144977387397851912635169627492246188067808295926187649227874882641096738307078755044037218848170781039090692483407313285552723206333298724990684343251578226111923716633040865078944659901036567226076658998956357668665287775697415956965144586616631513531216513875113863084775981745447298928296291890856209674706592190141051856373461549005954765632767422389604190982989807023589431401573785820370843970125858709213583545919059220663505327579766180260375107954166300654476787299188103200978340115135954756735217013347734104285963698634206045890973992835386506088093528532097069420957585523583409079032906354243764313709438764088976007883356828661000279533136077438866018121301296700665109673409976931452914444887937888749693411944111217223890367962935702781082244896697047907885552232585951778040682679342266698224931685997803821297737847109464093832265158596774333350241911999281626897585144258737923892011226034818893495732784492078436545326578350153237320004132622131673300809124983095490992269067360104853027697059257562067616711590041972669131368103340813764708604815672364589703106076142452512297214493904282617577600892236579783639250431202013347664935790968902805285927115806497788852754160907015898649740909343402930087032343816034154132352132716174897514055548366552480353080452843762017335463973139764945540042941767737095849774095060639257722543917239567494008744857835195608289770213408866925367378756216662450515527427548513039846375078211075363062071135038757918872504306610365162623577285954075612349410252246852286326058591423449689252606595120218159263174914759152939705829074244804073411339510629900852305663245963756193874484053678289861905701340114282416983464566694670352997470801448730652817779715821073457254816647000273428637872587933887511901675131237297377667938508602351428361442849961412363998175913906028167444838504212187408320073961318473685080941316072489374744656396912086326238591075377841500820430918733978557319318793534572344080532952320514149627057519920817891477774386344828929121657582061719117550456213792181933609407367178707348162072204989782421755804447196322298821992012938061214580118919080791534307112471543706440141458893106696455721086469398496950547151157091897549905547943237046090519788794783318413770231623232634112021020436370730102228536051388937556720933664370529789903438461798633442633910301599920463976325359607460478419092254008359683127745500861013466896055920810616577053752902613465260851031862218400790298486116197185004850993777219081745480892865544515982952295680093230643916687110217481000649821819407107684217079790461450244470293328178836021497252427626559996484535178481762097482738359858365105064857411145305479763479015340022373039634186321107556311984315585928592356870924004386299242025613543716173913907013263974536896733445855997772341746194070019276477719692373588504808322419192854330268632939804327295351833789342905563813351530541285674481758861018345588064934338298557346730895126741441876163325199460322109558372113107797581303192722390229074295424889831125841836961805197123254990574806491023528249406915965839194493792348184029078330152400331355746142437422911133762552806872020517436546320028331542797194772636575358308577239398854996569559457033706749446724184422974040562778497817483963379220406221890449421193857778302634414861433178747506416255154656188348233264763163514317688574950313100182618081033404754877553112119804404905287609251491597562605635288557250432255606894840278225170523948805699888203105968346917897274708920124271613668188722193786114826829902173236648009948959514492669509803986839592760238085123705088758004663858688989010490776006690410110416288180029426628557409979455708340226893819977443388096588182024059769974052017119146218723899327647190332488116364095447307817500818672262671573414476985895701536171037961370324553282498229477889854744291126633290895051995346101393144146607436711715550323739691463156858176292501865590961567777719476968742655994791425965103804238796627665741436636327553435872475306867138684282512421914784073764399722373036098449024703327270814645461844204968176771829934787381939132395491850371653711548303133004110939491412668226782067156509036487150438359632623307600797976993323335762591514323360110482486602666473128053326545201076450977439125239550491900746631734056341287015020307747187142991020584496505776273229923538819062716691561937721510776650199139279626031359448995345266516331470823888387299017292837152024815029042250078813407056733327533553461765033010141638257225559613469954567017619307403198435300506923952044306942495280483141273952670352212592698846280670295936294388416155862329197929288371712360067437734920860390642130683222489426181935393168078239145504502350755565964219813633868677305331680885479890004999498483890271001742369928664860014061408323857602241067049122756349957628801763608243929553079232267842239198723405841591038890322105129385324366860297016743262943611275415345196496248177069454595118979233214428238501400145797093329312216135036517821079116223054463966830963556988740155892465127131315764135049720176857991281451131046675027010478498615946371373515407868274514432477285149327540087135174023885074614174577239511899317802691405952071939895905855117906639227225584268548684089842593014111788302332494768400967576428097535446462313848105660058166556124962849123711001463329083729250054206255567041340104024501715656868659423889709224735324060300538898334667702326732367370250139215636687194912663444387340628530116563699840350977643886919278403856173010858605324765306248166281763824212264119393608650070002217235749219871892117918881260239497279990137119929292243242416735423929347824340370805405149242101419845811243004521833617252405295992673035589259548026382500012967792839869514512667073457664514909201341045299813040684641221319567638731257288100467938787493194933315018951934327337459466498224020017563190004487215281690565149409090786526240499440871550300424369034606752784586058882247366776213098997261952874151338888460340580761194648393398040180049438504476129697192312804095755408888832677907624463704601874528944082911422946619299973764952296884603391084362240640124686951160839527736247697589314303218509443728416626155883246618830969359343348947233592301341975200152213356706674704105605194327534643792132126725347579687233404085705960103179844973322230036140738733396586698686872997866670989917644520923793056961259106521590525918704135933329553783900569721776268529647636243768038761949083597804400741627739517863460122131937508589928618375415798373622110816846418025270887358647384560060750841748645303392626524414473186721167367245519586498517578387829183736901521549612241782491154169104818228185052370162201657467213886583822652097938544756648689640452198220529463569581703444519735984212399453610685293702109887712826719270268176526347788346498046544052785045281403552581549612148499126703450722476939096226088972390293334414526839512685459977317213358002891702568101134420945936910578286151245291568913346156638248645887655353337012067402550952191039968063024576426922431736613294712655086390099258072637087908686548843672283299955204084253048228842274143002414876317521999752909230449857273827057694071959327080436019750891289220453548940057124115453663178496176611993718493181731888143460866603891764479704233010149163539728638274393930029677055732469030636015891106838691830615786147517089782281425102758876862852757088594225541237445151983876996267987540973444881079240183405873693124080838827228829906554000071587215910330271237462465616539123981061727875762468488989960452216971411511315076708753095449926992443393932303054801865426009179381853153241351731919823906975816714355709683810019039632783344179662383146884698994455767408494801355359019327971182876851887918210118284875421228883409318939029992185288391136950019974320418309194356922772772834889387156968187788459799051701735213813827212848156439075177405133141183776609658654216648704746887660378128049040114553227077777284729873815872150636342609399288059099123523553918049031527564786192345857803395297748119934120506576121811284889090654540566070240716280856572301079750306151436774954089947559459766010761125054254694110130323934699397891216622121689884939020529349396283897042529142922823571180683901143591568812989041260546375803210041904068057863879712679225226577726841038142459445840325413184152531308946592985852678423743246719214797101635806999302401823612949314022028783519696770924969640537602017305192948507981736312920937969553657787228636315052363134574664594084951391519434802541732678511278226721479031811663644727323504842519352794935861050502105649253120135434919555175861652915996290548822199109779892273217449718568878384434120347960409234398576594073271461985854969915308945596214742375860967405833231684448244945810102641598232643689542145842649142620283129886667549290859700724957545630750091817917953706999599454541582230311154460793900672382622410419012561097880244985146144440226310567256226847147051675400879827809519283922226332916622318435930027560367305987817812980133115391415977897581395528625703158175408380557230501635530895238850220047027382967421182990902965825867134920145767743794646727125170661011705415011111687072485860256447526024390146233469097330477372399931198412846408320644195477064413172398373384394904151946988254834051353116696148264040361528754651613280474437853499900097657805709017438587778057968218741506430732291214334639081211259031388202641847110189901171766764590511755616744065180957055279931074087693315841241187575274462340614918741841477599343257677210509572951277134260811789017453932724141816247960408854882645367721873250300491105097665466195052915262070061653441106678893982954378338301673981096084553694582758512239653025113001735276145965829211898312439430330905102129660341840521315494716004042856985567737238338386743139259038122058414974370162357709745151842549875541088839669252245234214586061392603154073017482396169582909905519729875629282163875103447096876710372463640749605038308578959451775984047075175488037604985213196994893821430718274321398387820176354924361205770626220184883954105206681999291867485569465444329177221522010534320241479823636470940746056249231205539544982555181257068569514779632026327650783024824733019661967897311611793069325323644995607576286997775813053449018655978530584151289560704037068358913474613556934502955166172337209056843048547221885665839474472386983286936856239249879888000027703200213465424195187878739216840201300108551062596383196971711390873068941725811427501094755703682602313416616513596260758214994523706592431259184917132419181781980549964065662861337496916481960633014725499721796527197342458739814822176585520806435008634145183999108047887424101251817710540187020263164838928073432240760861109809060252302595363474500191965858433978841883142368517803877570821971412333400603119075638959784395740653829597651762724408016704798230345729609616652773760238635246118542189717759106886089124915618310034648140268102573213090942095309037655538037651298343735012258482407961874040682714624034943561513662596369985014756518134517773634352517028083613802029023211715831259520014127210099206327661027163646188026618397314495235860232418416993150731492773093149394008722952078860063496115054428804643044584456661911348941916914523958533417805574183219369178613131600012112787155693119401895163327924090287685651531220646345897337598342353728514395602053262312361117423943935302482050668671509802727183282001642288380475903814681988702164847449601361342469753787423330686890817382552554232616012100059027737589702889817848911806614619399226049292823082735899495367247134316426272392658449205680400983221068154329145749130061169084990052682477106603285257970195986386561232041157019232369636951952025010070785756031568016380070861356290957484342213037450792872804452944831886416223177365423871645989243057414277702584865553219384219582005418720476358631298552394679837098712864768243924475168671376621826586500961569739728351525741391909602511681917651669604988106666266528384778074190045729127716154712360300786948519002626886225754119819871542815862870412530247708736527154668643624253506904723258025507064243908782720876563928730528520916084820182237172730072169798888622731655969767272357801093811615227437236109413270263218265280450970824005504492367070961200704726960842739843676221679686419738748637790310193405886904274256800790086795162189440685083932928546471320532568123516365292474396221402740031705947991852715980600624115203592151038611070932248063008639363382579843592413366139788200911238208790077382153043841998226829164480924333436572579532772336340745050519457943411801919457586733038019493145302040272563503488350648123804538218861317020904059212970542183361608130400888871774776281173417000160575547501086786573698807784677976640939466979126879010742347306212261881202080481211463222859873409432998635026876016265846608157106123788969045925371526675273016105981491380711580596082308777752756676037315537965353142298945189361309571414063978481418999444620556553548401662277004705065877968731186702416231532901848803565031578177226172971727486932161962362168842265900414759271634401355042484955405552819148883227653903810556387635086894577307341920800794903629088579801362966509738431720509725962660380356331500641366888806378413333121953056480666954866985688330062424715796768529996670744038479183167117614452585106797530507109241606961369680824921739321547269530166678999147475426243777669571806862960591253648249656215620368178384869249321261565425040457965101991314121436365740356230093546445997952824251907413769150369970433891858383116080125462188891776811160640831627568441817958900395239363179976587045102041633538745831725263744471771042865779994523690033107671272309042706870096664805571344627067240499017791793055312029107840979453708629058193473974578073557086666488271302928253578540352869111628662620250987040769514454042162130189868545898083439701386985452490808250672271639796931932779911078500583638066012807017448576094438635929126958600133746564899705259665327315669007416914264882892027981769289875454398900458156680810921040299481659732808334851707788161733032820684654041424270004264074430006703217559406732627737274551510237112028326381526123333221089947850166799768632478835725586900256580544359536054463963479902802104410084703925403046708448463845026017611006444250988422969938530387453168589754268200869191202550105458028992424522758196935470927819339333791005645878456244307990893036462340553656421264735314404403635303932634876231397174065895445119601258289829242949157087491513563983104906101707135205133467398203384659615659969991832566874269343964153203993784070786169822504396819237836979406258233154181100705168292612662710081068142344474284543136249736942993027834839468901013634005150816058496552466301924026890997922796246322250723649177647628782731241928614984677336012535137977996551078660912892196909159976891819673875051534748050983832032125793923116799300324304756423718836775500344309669908011734707144882358522128349264627057302312397859535359739440395078360671974504699412392823351098814798805555679611430707265855067987982585840921862334110939526234107235710921081328263746798380414730962367442330420035703977488499953784390808141625772947609550700028442040824671357531840469665868765881265663001766851028627798192054102234887631217003144083538040164986731370618271454884717119429120477699247797826518354222657754709280713403696069057929375661669917639829237914216462484236088328592331981617655217698948936733126434855118687201169364421257350175288771555648840146473832674136680654040080533931409677747913722920778691524711583028623094939973245475087550817318309880865316248440629224102324973993210030292720849541657290189584174703608407289957805442420162821433908955944658024913080563721603745611112072971595683918944297781631029391900535848519264040017630384919848179805483498443658078062860299957360462026986289715142537410748864759107224491596076300302032943932009771412867463612115792146683903677466480717396165234936363417155769880982949429557372446293492801580357730308987452109119800263268552944171104241644344148218655893591755607025102093849058866255099342244599285333180931514789397055317448832101632813338563527746860009203280271045546089311236355938813096051811616522276139838895586378671985431221957385479702965386952001375554632631499304411723677982096955742500029349456245609199558732438620578027984092711192057654556877466282243100363671150547370306252637362095628168368963114231110175403073771733101981708821536187171070293625143631972274983232102161722330573483293881057191811535227199854776888289496963067976331909053572549765538873262095315167579220750405734279707043386418035996709398589459707721058078736713976099792576748914168084235453341048646389828014977180564612421179778964673430704166971787384903561615729665626684204794398331857556515006185624794415717002695880199131190116522291356817040729680141695960673306581953262169005830378098503799943399779037829003597533706025765560764123006136230982384080596738419573063498238734518125895936034359834242418398242636033145784092560048732327621269431469516043933737234888539085579137807052824979372562664408581994291928633381730836655982112165480539666777486195880418699383811860990709428612657850303455360091850513342261145868256760881013006831330492562389225352167022354875340024090799853863298801456399263735069868609331729452039181929340617213278636506044346458990987323281743349700189993405295043218490254146101004582622786447929864617534652282368747222980239877978320653166574614603725027376677913618753485862490952748164166591905583996929313917711164597330632444965584423875793804696444723282710018540697439520181729474271721772867238846868896648898301893733847613937965660206590037447612176289348380272992380557682941367279660154396862814961478878448782628093026484177056720505075912279017921101136859613271988762913961704085277200855602989726296688650986088735634262751861214568487476513335275697116486652385400709895705013071467566357798686711692791627425439034930471203455015575014768642306366703921672233203322641631737061950731397818855427992103056556669811047684306039581149635471005406500879520825673675103947559686102468415481838837893042755549573133820669472583384925601224986864368005497230424290371900877096065556972200535803863428482680201839150418977759406736549228019921059109117146784936851148708735791717446871914942091672490584705494767060747707603710212091743180361920702530757914454611500254171834929822440112683523335825104183653854189507010633410724681033904197670822206925194866639357073170643444992128030184106871755964182794415106484610375093197820965809768220607843191817129438381450659219992236377806820780092064858774349988073836025090603059385815822608199340223062518285004518359871146050309932069757313549196272030951073821049888812420142843558700465424973708052930598065296635971829683655692272018064335693201049815951270564927884220088754253543784431609621979019348326250327107194125350690894750723077967102271731588904308649913669254608753180649172682738548619606006823795190738343040079195782914521089262589158180035871936877272858032230629892968086146736196097651053393045374330793799536513433709776933000704634006060825612092805056695015039225840699933334064036997751644202686757819377776654456266186983146271657390098518978313251457948426341709612005844769274828272544321192641626774111215868221369941538780971425974610251603927157980951250878648971422689099720899650624548093192416776895763534438838349443788351855216893543653100399271764019073051762629250327217821936685676229349133278197894596238203668917947292567051228497781771256933439775380850757090090401416600781186467849501738685300172009431313801990643390776913475612732954470292495327175403384223496664367458789938182411195777467105429639039560649994223147183861487392758879951982686175457713857550303873471999556000806106384789214931879847534191273343386216726478026882553957355968967667258266439949036377458581419797808879357591624010396956167585556412783133184474162669202093376973061779634898545430820160369527986259948647593571492198622037868099141965780499169405140435688034908009220111867838732158904148535339891659925159765071948978416552096185342484680209631360595243519304127767516773441169782683174050962055230452471221359989649321272573228857573133812823283028031309880786364035188531394356524410326127582074130450074096956045084501398714649817970853249810521951323041893994053336610343084678169301067478585143754721024746592268863581039252980636324783467583045534902964508209103877739628407383871021020273942756106423479108057324661141071468495603404485490619181906636850972239929837653855254646040393522063632965918063350548413282950095067378723735424528144325028603397897285094736635806010897094375120053333162033498262399852944694331734333235121377561632288154552739084165671337509349376905800042270647492023028394527301506842416917975147781568098533975875165826768445429588610113513361668862732502686183084011128668736587484847985123396077883644495494581664177430713353478779868215432832862304744198278828565933469654550989825503262092937332854505439854450939933848287279966633363531904378818852577469675787837003135263281828442614893217756520861306056575255975013973628472291019990960902695927813946585106599709781066026682462283426869061232329590027097967781493926053917434965170606014246010672581083013189689321644126199433614737611301640105778506143783415452570251139207622855364906095464018628686535912921778461676889658363139606242903480631284219674225573634366472410123606564896397853426957003956217379862072028187277548362833329497296263013316110154209671084546264980822009467964371803067544087183700414234352960895786437158238560627984896613824564984793285304430243374400451443054158738194164351924743844016622652886205511046622208757709388640678899233327412366253118326354518944293103375827424042410273407899002820720568714127545295585966380551640497670880351674067475642462507947399633994589740365570240418934841964918232625104931330420568196239095128722668464822861929455021085333416682194834511380346483979477599668902400146787170122980715134232576174031421569378950534452211745484737386201050912803217728796479538338263769372285742396987931821573321200963893965774896434733675992616965257832115645465732616289331459193619787363927284068001842379491433963122100327572253067857296166246966445417060314105594883710776912444090343370240877618158159338297206655953864924621783071696331595136706594691743662067369830276885254222400772180519999062532725412116479828368897210568988220189762949881555196484670585595539715717182118300491443712401237901166058133908783731911838770434281266605308296265701209002936269950703997939301986077295676933949743873066087409659675957694993884607678115858420563861849694833976133185249486301736965595092313377778202114688991121724999281091599429335611218505349444145704575568331752746535608318189652261259918949117055681062717902863465451728521879509135217075347692819280284826962903190572694457047351504467665758074058606528827844051915606897595200358368548165610090310385228105966309514141578024231054328602600295771782340403316189115811938588064992045067219542016120360947804284123994704574929663341919597823840531454248254796646160674643674385945767441468066488493490417726753041349936599201644784317627129082132842177541383811755911610017728277605394409313072208319466377090306773315830201701806795928044341889949046126907705976228455135281204328691578139232791126852326788671697235998199934390648437960163508951049269061408074479982620505206758013973769691714047881392223996526896146875313104522861824595467846177328079090628787654746670670746903440189581707478272878809517035925028553447149595031525534124913800882004243765697248260578280502224595776144542630256873733778724410470672140879672287534312560551406024216720121154134822707620506760149131904374232198236495719321155485177423660890617142246128471535221890386740255488196133728951765086387368833056626517443285858619655454965389357491531158318226680061376499472461612176610336408098997519292194686321524060633954339750285453056540684570493716057104380025959396203475126667850564679468213899250021315197456273272105937486393180540175999517070276464483944337733995854330554311473323872279567116031568526504654435604977377671382959324579412588417422040673850227577725870053220897558941906768767678501685402579062005279273010407740901897408470659946119235342660433619751464027904860390569676427268442738875761003514261979243486071390715217845172301886041294178511063816127217818946442330028699521300570090248045458055039641630464711086743047112886940827874258367164015884742349448409903375744432049196657928595299663302381399518832084610638783296214751240973495772237718691379863769106630418682310212547970935708582718407222201058165969297930424914512390250101373134414096277876230919864685070085927144763756101761837647439975412738670287582708486877797621238087976736915741870549130588107145665105081995576420958089793255936955092904657359988788021770708176338911245982299900153289717397934102195898047356682873566038730233035729075280363778217239734884221625266523562418187944429326362628620476389029666077822133368921097899366840452368307138877411558158440639457076312374026902747644463334932013513565487002804073150856796270083305530297427620270709733358065539343230445103011687599086122872200920063002812666582338476977136916095395106172199759070282677133373817183160282903346546311690160072252903686625788128630734515265687367661678153164275728953907875311459889442082626483352224591179792395523876179120000273073024463223237598536553248638062448647801453955355869478224070804401040271522411813065796249190460995343582974905164147379864637190766092346699123292667368238031335396651396218197382327572411118248768370177751366720952680160252874810325055751884800869512627022455961272003226000774989734326101221814162455289153899919742343192281129571067783259992265258931948495137786257644508462424846186457193764239871636559648112960896237084576347070044837297690724634712148711024449862489313677955888754904383093361084251670476630158908314932465058789139338041642605665816135847073358103610375321881304312843457750085743404141195267875515357790703539844649017663277691592746707608263689940600843452954411155257088097834777458906643378666001111733111564583587030101088080111150359282838343791480284919793381488819921979534954093950732156216373875108147421309348820386938287341893963862650479965513265398083461854928194600700080489665381620215588102204873227604599528014241581657406963211092128768908301205993139766232593941862487833361840504286772600386797017478151999079239047216643626651790658630696985910236657056496201067326586014434364528131455023534138305561341350868869698646371010825020443160699411609499204109867309552439575753235924592444555567787269432466265367322467808565483589372827382286808981371968714892541299319387552541367268763543101759716039643483746597628219985575451449508988531731268496063094145407600911584776361980043062321286524667566639933454471318857276935844965643818387195721277945086698278904395946288827345864076434964099238883740419273230960975909485437521443112025914139863870941841908984169439083118069413393804450093488034695405661007543501410780835124047131230408242284993680425108307785908258518177795683113642310314560013970827474260700180536522116800587230858626430038128592148009908118275761282652180239190851260780390486593325989599166002272546875205190726062853535706062021846183895076707785343460501734241963302306972917213276388807830823887007026535177970793352700028227585526221110982220676221693210243844610307895001263403047605808830624264022936773236518666510561983293156749795988996258336379205730434364836258812657689685783625598181694853215477731726214089321543509442444395180670257893926622035418533622960846201720219272366378470812409118094370042940804585638879744513231027298637111392747586508920327232711155763227967181115632958306940871932596984103624678355605275913792395599506292895588539463592625573412928502099676470868014901854327577286858583285658457606688013807595829738923751793883236336909041625263890215203417188239979788648591771214908892289101677937191694195170659379177616497674740286982289506776529433132909666817505355157137392919016986258362590624627903018194074134049291852295057162402704638850690759121204685435792961504435600783475356363887557700762714361422118860140681585175866055437469749051158189513907426097891367194701500556469846668156671996169597007914486197469900319045147370684833463868898609717717538383577149666001651957123862266789644931295981067989020526062375711054790804716731314269373200804478303548249430273424397843966181981886143930426979812269851345873952507641430196887675474432280841586800401663858135832243856986227578760374670824421374418590473775310746787129825767189585059832243883046706256762521510855927269532398863613488579850079219395884493935912074029758042103349076465718034920143094400197479242680851074310223971792910900751540627474918508835593666978633773434733607542849407387246557731269177877873573936622374915488048870146326596983980916216182257698854771377083346973929997124159959238965359588400681849212683373294593962071218260335723294791516751902738108647839338470252090654677303897415064454016308190832986811817753209185041107199415788869920251637573988190468663579788996650258090549086134969876194502700244143821838731591429099666080122149707726112804975435542529859250936728052099545823263810106326731323397745913037181723635690942880434533890947111357579952826202292247553939095120284583236205557806126411255790100820411514042815041575066633700194293985477660166732052438933491522893529989289119335008597838577725853601903932498593240695214075084743771630893904192973871804300836625774761776245653128979279870903445056076927148642569374320330818086579277891439432978477675810751003938094060612464032074682480153757526952440439613159568147174473149799269712370463192961059071687392310303037727873646504164255061202532527684396565373507422405862583560723424372288662752617277879314097406475666850107167372154056180532883902816619242760334699637992938762066536812871133293129640683281653504603242800788842097892466427980284383494128617783607607304165198872349346119177003279197264805801252438468498146435215629262459597562735088293160267627392343264521188387111661606816506130277195756599194438004700117882570744838140582508729364720198914378729751848969546922906606443286700193625331698615993771636610413761403700602932172105415777175387319764768963269823480569644383744784256738654846330041897729127794940306579992505337423206144249295186017709386105480525562470341455895435633828999127757049888996671874170915460114355451728612779625789964465279197707456566013567676683963388288737475663797546755258955538642052777160406959413703774643030550919753002868906773627254462937259488878470161426173902017966508841374349807184630313204761985465955891361763865215814443164106533085273056509331466913970876926471316221326263318257226406674098942428266064481530737103103052070777048260152819832055425168555618875435868385881983410117863263772272547928081176181215083576677904495770848259715063075781424224089769057075022362016493766507307817198683261389377391658548783893836423744344627926615785430201849853259481369335414656360202493952218874658020316502470481903408790013490356822234513613668392438550373762367604327011017491284038380526580690506359919879230940527801414034121754685843798256182279911883763979908874171578252714120523516510639049496222743533962820242681075125661146503713031936063728114319762629924615767309359658929505257956037829946880885831597406030815914846014903373758226389270407513736014916721484149248125230230087739202922669613441862130040048909462966113882172205836114112598141904583682839128937884023207813568558665211631777054894880525035822225072622432049101674944328828148610650622171486452274227710494956662188915945110668598114122223604509201351995097635187174949261076260490478488909955832707494172019057206698560566489487026471908717603970808291853170658310773168245214487713453048107459905997881746027781829373699205367860956335944473418992437212814624765902548306828553166881913361628486680823711007103831737260092280478688758468130049755490445148500255693297095495924164916349127200816266559499731467374833761924725442258524559591548470343757247520106633694508035305321659390963668739258481694816615749120598477144280153079981689094419481468462601399634332609933141067256338821499237931369159195864624639028876137070853805375165395787289404815496010338983153528226263866602123967005322001846144135923792519865869719497633277324007155311489304042503306237428268481448357411597868274382453007858491525352844223356669254696848828508616212362053335585583101168483882650934252536402039362471327969633073851849542598393508297139532172262061407447112214300836419608258209681690384024525403565810009791780551850693247135084057333218722155054665260390137283017130640757422600740855780562321621941469594377208294194677927590519568370476167284631759108344893915013231666094571736297073145227274254457311871268153843310434576543878983090813916347996170866700413574024232778445225080143669793966379762345119893946444017844129756294591866649071056162235098736823950970029056037735683147744108395395575789142222315144243966149359469569248202063266657937921493679979518633493252928354594310646228545143826466643123884276802180737295706785375957228039365263914588171572059603341043016634410178218108529185312702844386328909199632589327551002795922856596139651075482801622593366191963790244631276236941469548718657390576213964328027788494532089972026563936860493083938971041190477609125398878706289245591306187821945216943289947786317981004535985678983163256180778208097953380445443722234483903528002252105115702136806522217240919438663515594546544245361205865453481439095406043660452354137996020684330107818991019891028616870189996947276393007734211682590131340985360854231451391333962136252390017492113618851779338010057764814736080141600071298866988553461526430612002150057294603443535528219860100435716893308029242290089628592660561894167913684549557080931795577978152546515868370175259529768491301509928900989837394114670128948599365980057976270538128238349460906880626809303346254116450600265551758547735425735667124774410905007526614481326223768436389012539949761674094752589246381875902761097973653561864670632461870329543483099524310659684645725649833600446538500216279904724131428094693248503466095596633734271225106551643351378425947148752456855966940317452475570637912816460448461943337147735675892030253094514637536826334496692765594635407671433354032309080465607888128914713514216360590328354197258385059695148249698000512405810098080019663166594108244288089187061490333976879154171459874252541762380446400161777523407040496738995575211676592188058801281709644412130530577158516800234974719604776262503437730986207762182107242637266261796307721109148833134226513887603375738366156414381968919028365175445369671935855423242333273894727617084472730644828763609574013825729570924193891422040417273067365266554297912857148716322839939474730067433564259490189723645469683193815714725193505014803097774000645392342938117248143406402586242456873055214786247284381051120488259304417187572128548318228052812223371092057502168417175383969669975331687528852025462182479784010202153762948668278026789528152013032980666319025041383168281307217138367226592153856791779634881772518567035673591265069681634976045322038428330916896879788571196160805139287642192276371180390850148653572581864478108994657833327014613059790797459384356090161685287329818619642093376977662921903203187042257047585197603724677555027815659445519612287222747953727681252936481474904841973669213404884566687428588445238839094937490568315042499005106355579936547870544131939289281864842848597322067484816695359063897247752610386154308194781546552697932434825788015052865975909135157305752487649658189573272655080417211682080417961877270935615277060865014657270253977621582960183734566124815066888364391672149174893602571228439758637979175424781179859677904293651515200148566650166781183168183848639470249689852389900938810893874497826324219481865474293976220651734869274524454101284833677461787801722297210067357084668913168264824557139415203263189677187800237592020870695511610599660183548569481987427683326131554530433877432658914909082159322916729795767205074087477118050818303728688952083754038977818947227323061487179279200651771460911603337088015981964505541267252813222923051979905059823201499606525110380079965759718252428554660291754493267284758001576298490591789555954114681652603089021018746525204685354681037852692983364233520931097793606856960561323560627141004194538781642495551162693546752018615708760543145619011766042539717610306078634891125240435507079199749065984794583439146189167818641852289319386241964337340829805313277570843720495250218659251663768095661828318785532901717817760140924688455010908637770736045540397077513903289949771820283380585759507083536601997111594570775966260731078533195716371077939154247126007293273993970968096661640719760710213647769045475105595762739776824430549512627005439812766683596542182079702115485621950853230245252323584527851364301636627597479095457834814716899239710663270277553632595981833367343319618080374310457369580086182201297498725261068643444130006289944355347782724784708084168313806611572602821321511242182366638982533591114930348338777963442724098180894147640050971527886655435595320951343819962909566654416309952842490173334803098343402320258537267069619235574318314530523473695303613892608501170006144348849382870396202075134472683820057488506232370424374641576684745667252142711244060278750696064578207315220890930945297542759524837710873593068984659245142048472555091035737881569739719696856694078355572742499900209475268048053238638398557686142809725365163885430988211559874719260923787551695078662227276252004607344657987260481609552764538107720089593532355780611691380920397880285976654949611429557053486740547176158301392563884112335017076977292521432935994417774554147300577859424888789202033053571750565998147665395537896148068011156585419895314207697824068430309672699557049763334040846091424945740495216044562983911321239593566695734788098634363947525705080347561020285054685427808142883578054161250836047290976669383304129577500047872248259767267345204428038016846103326228932279460947757785286595791963678494855376344829950498461135409673370031509343796806829880879451936483717982126775143153512179581723860432522559910378022313281839966068550367568354179504845219659092017383099890608679246464766417227655226233344699274056302181898714372105799019655483968942058202330558243352584189685564697598410090808170983989781605925575972172919561666704166793764831901210384757502864866207424751058351842453241975148432750638878770779050771865963661341998602387628849183713955746512107020479871126917888479084416708721607743447843698448954134582951215104198556061247873488093745015011700151203834583648702444400065592822517574476634743688743935939520171237437827898595523031289564596297502146545029053929507519459140323491062459285996173802802094044150814060935693590218980478514793950101258525877657169762325485186611273575815049636669659117516529496232335039645064007348421531188884357326236689101516288613075124555224366778710115918023039344067493696120735920671911550151343304481820837796553800112066209183396030028768945497421800874106893081861164015301605435725758575088570389955641653506938014239504007007682369756257935818106226043628399389879767814185678581332828461437622719672176478585278347473381232006653670944442826044264010658155277864860658415571171626261245892864724515711280348616279150557948105978799814619701565342545911075443526414656045954937108059871050920246489984066600189139258843606635809012990737986205004421513542100991549089896559780185682052007796767103624113237406625466791259378609748653871634454865975718597230888972805476513547090617712193019813630233846269510320167770066525349776862946740544324656909712064498170302967553760453066865873389965501609505309300503496792926986900434148473764565594981304584872058515708402098958971319924415962016587761141250465631213281892252675840972863660751440001189920639122485210122753024050546853060126588544689559844770489125038661746527671263181048471040046997522055049408688872051852219091450078940827928309024872839352463109377807352781472371073404910289173364339392850012054232930569163020904234724294929548247898005138726174311533199214360354931001642775213267858281139424147026271527225312039305754748690793063503586340802485606353289369648637570223018668683945668859308314425723980743836082065402699606030810656850379524073411224356485229780541859808763921845743381011309336171543975748724818949473249536006187772372511034136256524938325121996640232527375677011468041912255820178352209282326556599944198049072719526835685143988552661606178712586363267331443524863156575441829108324285886539365317381612969118840702440767855398271809861357540519670486594825836298476841072159502608736970737989179020517022721949467170933061147946140964417440129063050468337509435631769076201730977919964964167963680991908090893715521856069443736834546994649651033251668061759946929938287488466829748729123478824386944792636015960042072691458092100201843235711128603099610760484241740023087185900594196029881547072135606833656268706575275038633347142107679375617252094475602263464445798857303315576073214572307028426010172237382616060575437163076775497620789943355738308427535799793448986334499590720010876820290842919748701850988376275934525082586658143418991304107625710863759272003480697578593241446084004115899203840400736739172310212856119481909161931058656726498927318261084194010613332252218728277822616757516127770927563767149114437310116450724652390111564311650577312598545829907286283308986583200424191120468847139194332916696158540896382362353622775063596995863532786558775570625095061643218223352190529149590371646424453766631379231599793664679311950452700269390941897634993886388612099474872651261572524563800685905558299303293403858623743244312652053747556144192232390817553515457624932184377682794883187802843533779649837233374803460801195398564145539630220534210788223157991473680914288683326073416969303594399639168271222660982716398693037258576196666886945238277260702617369077256705135211926333813678938769631641426701159922809701013359151846717422223816182907340816036415638895300285784141435160449136515448432509452305891099226809903056056479664041239869473309571850088107561507429790883936896927824855894464795640071820681621705125820180660520298477251261469171400840145636319922705638095560539366726157983580151444299957024693671068087651706279480717600877375474841207876702157071197180656544288904419440639155913402435741358816419569070660518103224690092172647414753541142123626303487242300810646961273162129890313866478044326931588718657743042574249931356017554084788850231756618491598399464999566129334736560321777912411270380772166878118515731720607897651849497189074294524828105219556027877494301329475582157075990438750501519538329587731041932752384681124382755229587352408542113213093051794332324446014611874352186677496644786311305230651760806982345196995158185800107077386765961068260600077143037620152937864988635630094971971296700437162525129861884297041017261724979474511054719444920738002080462834840415726488073868742054176370642617108151981971797582127766050788668993758806953936103088832857781191706587344297411772468592225063283608134743184086470296611440173149629164175347552152622169196954942739525981130269523336481076292499536136239907499530581525199153338620148835396845770117556492511676296955731069868044386431283225186224325582005803332846602144919761480944430474744735021496806407922845761887146621399869487209247306746628472126587298100087431257867950817888370896670221549909209641535981284655591084964142898558020944146404485596819844963872671780315946482260820093568056760368348557227379064114222368510019366787656345113728648101720872746094897150547536333371571946623237915467145657909576648696054157561551934466904337975722981797955532152649176305307959278177850551766909137719289121352105667323963713663472569508250648512777446409999487737856437556617873475491763353910757974313440100303638683309171581826471287596053016388464466271603963607381677114371625953127513047242160139764202332133410732240662552421685473684986219789678989051963843799649713187823719900626841154868013942765079152807725251642668320889218192312659087655771858370919843613583850466015343057764421603653226040785687477109275015186115207116808216224644136004586054907395609678086105137795208898878552614124240162703958114414436462396491944560415997700447322744712266487738893261257637546884067971923183779174549892342291863511083504814078573571129170241283895696660278778737830866861124473612729033173601751785147548814315598975391587514186103869163498371225880818817520801019760062770052803233157137142395464321637227618203131044129875792867961301946512314758792947704815506506719474842679149577390851401132712843601243598333315955663590082697774554183003198478206787493354475233163897083436776906532062961316365388557810147437211766751963802423226008447049659516734359098759520039661837290323502630040205612428527982224901438196665598364953711270667008223939214419769215737761332235410134689276551127861606732393701737355348082508978892801975153335110876679714042026270540494114864966967548580031821454419054116487300247011723802537464437380208833015004416148510676249056418997005900172397206556635484600863154633646336035136672734532901711929617137051637010754041377947793103991392391266418536485105921122186509925013633994392647626704011491715273504431176478490715216130741537465498461818093071395920602486893844556506912997947398445768341337915202977624480978724738367105309134274694065950578838971448293885922198704915221527170173103720800903681702790592886344396683451248774647394441491313498285175343099532311180478739711801602111499450295499164180006941333131856610117982275999241060118726462741968648890284415296226467379707064818209850636216115852107481748775338500745921949044095251990595268419860242650676955009701945717109398471745001399390205482376733997334025087938715674957713902336711342476290883048511627125733987448315520956164491522888513718474104723545861982969434575540358291899140628935269868157093354564795765863712114921542899427109287933507789181701175371466071229914875837197006197119212901271464738691944028682729922251951895550313120571135347826332730027754747528026257425649003487141270746133830598959962852592873928918006597505549543410434193065658490937193227890647148146022173871409577080027925467884796182929561342672524318241913266837677454227525229906547510806319861933593142503780648207177705598415436542831367544647668127563599333181119090222382180017453312368171176065485418492218660875892084828356994545105213128401935478441314066510921759526368909130806561021327174176616636803010196502018565303341466621852591946281302225058733560648098045963159313350900083163190239612018596962808086997774399491223333570897273876588320037134012723984365816607800489112199510740510413645800748284488696671755787226749782965586485899054913392785082814007240619339368967539860575988467565530802326422151025628120710779121241297970328385879789085870050197347478931674768612181185066152662353207151120589430258210705740763262817692160874184754753365797904203693317052823168826119658141473306478422457764846276952867058648765457036786310318804667662060580878963847444975035912456711291566519971589052148232365536549130170242983359970610607195300252412909309398595008976540325162572671706197083152180526770851237265599041165453715003870482263282559563133112187754209840389341863781486633475117003350401172055991031399511251984424578502629757465901899200358625679421204835654046794080819929957419459884853523446719958577886331374548838845765266029235617704214036718176391395569395587960596026573789943047369214812639416954348913073086410855488958996577260140619309199458033308789460166687230584151465062257490454190902299146377365420471056934093953773184632995979159231966641330464598404121325929796775213082056039549697329637682811372345924323532197549968995874762371813433307009706290101478001049559196434410339396024102489719186928304888235180881111340787071769065662316474477645798752097973024010395641992731902996003126305426287974607828639364936048614932645761903128022044644963515513710632186977989002046824254466809333903080384146705319855546770658137412131491535694477083159515845686766534657795173316414014748087427019345486847795992329326604964339504783403674427101746464258812721996339189691292076284728325017496267846372451762878028003404921424408151669749018187935505908227656979179145615664599461278199479296874752472846905383374981109611510640846679804409445032983411474445874866745983559892259788843391916318180502575762204876061275548859844235107255468115645453575262502566544688827320137741822162656042019991338171097075035684035411135757130910854430018705379814349162892895834519383620736293970399409631777398474589422148060641089294332434419738029222114530786566814742156545437342312026991367706942338152087705802681378002917790443210156628464904892686199422679341462218880923904326693318482427271120212365655687039085147624412452328326483700028718064412208242911924767170174585408274636852073905627733794833881704891253082701235027356605082652012707708681379529103779199405725840243714491856058018857894327656962008772718417758898619221703498529865698059571191083497758511836279532158871428536656082892880625741403603579898226067036604600074534982020026320786481703547190765391007030793513863576492411386580090196523477126190234137582294246849961987783024322219934286716122844889172712329755665775201083612272903412799490402698916603943948080435336515197514503482006638852213359726854879826968932154838177243579222630784181597286149053023288898689655116454567296387824795817422437907404794398351958820050542411942425343508312109039061874324487897022180775564165592180029933692450151932351632821447490306528335823800875520071399511851453329153687095466769797777604665343099530917276957422337752190962832881133899266517242821022752221490627579175683591503946145127490595063590757425557034098858332407470606432471428932911956013163343942164306388550165276117323796314548032485591605329622279235378660159696281092458068286180882256960405556862680623692036029467342721695745752928178458653893406943060421570681678745404742391343960640182595735635267745940101682919995082936979204354767942875572473515953225530788821712437033668365427791978762042102633849591567498835166335795789455932219829105082441255523212135568862919708242671669638633667026077672677003968433353247202020719765365873162305553901809903527221269574539665561428736695271446896252292276190010980005314382528970568330355051104822685755585496209079772783395658726477800213144085983278956625703011611284357464382887501643651112151900137521417587838435643229211307521377798739035537140617115585162150840249729927483856529227204828461626195861205087516996267338194776467409522748385757154507261422088141442737198754855644453643181096060260067544343892567851618480205532447821379348078344874043040021124395682126349829089060983286677627415002516976969962168273235312873162202468626226110752949096287180271046167754640646708829516167646081102664709319993783260690468546424787174338733952175993692053669945053884700645200526268545541221776334034041374346010742624724892307406377307779615671387731230995806746563388358140113652792038397746172130491462524111471029676296400619928015808407757326977751867694183505023036178956044707208381394285680562930507605464287229996957372648318357402129543486979751576351848948558689046207677620501941495353510971503449293801615729460457566982321754561263220713741409266591132514729429428075657441889204145074039389076095256348720222025015327378973864535309394676102637894861882738983329063137920655268847799473243053112197366143849935388632169166674704309799406259251447998923119983764467514025868040963774286299361842195835417445300478209453469882561816700116096212355816296945948422807770788493705136064603162440547934157293515939988714351159764291656932150632943700165715740001199844962150044008285226112171577497055935634857999628863369934933267959786529356277995710787996691036748196524963156188744887576414020507798154427560117747621989681210898659927426610233370983907668413241081230284083504247569616982704068326466124603226399927232295106715671304208817016674909873552853788229607554497612069902703991169506705163041470055473246019386682201836979421248042488405346376706359339539816586397257447636164759519050068122614913147341076087061565563749189329316483329653037019656854101018075643621368773571689886918608563304465416229580384588190069260993103506227292560504476433770202298618982600947241539391339219370875018591533438345564400756387520397947826900313294256794676975195271995477380106484486524937880969220165758149477928443584934523545572220372469338147865159485607423558126731000352855203985388936415393656788827953530514248381811617220971282774473182352325404372532310716632351102677819779549272444097452930877137436316540617073304855016353358224191909191537689206902627839661111428821786793032286172931958075830133580909412706082019868356625479098444084850891948396749749963613023517564813975846063286704218095849401227916969164653899139462054915792086035309304947999345936045018443678773911499415661941891667414469316187567745694380275547756171237434896711743579428592944152733528294264600634300681481746230982447770990616316239143306882793150565924511223990834626433854055527235666187375335987120461943051560149535918953147871656677792862754275553344763241176351154188178423148567124996134942879067043964958533530874612827039059463369895708083575523943906638718081404514968766037810080396928600341060821878104281852345254953966814087539037185918954551913881366266141387764394137929229530068355931404477533886404283484553470751245004033483903384420558800725297099781662961642121947410847704370717428234054203580350770001644826591853283557162383996035932500840555842188539999323147872949915782166761803172130190923095743187434769031168711365531506643486961472666036590569414835435981545673698407132183015880957563005111380554119089229584794133550847854911639837473957210911761373735539268871516346181627073129258715003970384393254272253691426661551177733046485219967633141146186707806470785582843659682780912188308873550591141572338756641614117161746923930818505360620231997280626803647537382897029265605839032214540827353842853569842998304857622635696276329664404500161402330268113090049021194792893639575415994757052642793793937810199776734814789463357152856671333363712803550938849198281866786768180102869178913815716939748378595867383579734575622825578243455468192473816456461867500094706223187750742508226401842836181482807805514874933658289158318490844482266790174879988758831522168398339344717060584273450758140958830209940372357907003153677788366956083629924542264916640231501768083259049789497042433097014037882125473347269103330611405306208407342143398062017217756252671882209935369942566676511181538840498652902690310004782416824931938077814160736751933227726221783048355018209058701742560902764799539036899826652551095297790916752878734712620742323593247209752495478411837320260400934621233806490589549079916779847814076337822251756851172636943013216002247449058022051314684807958292735480923310424835260286040928169521622928779524255340807376256133919073493930696165469891002451510145599299331591492747233258696601061506945134150646041285219877648613491542583627972430002823893753696787979857475727794262628686487056227413965906459261895038973156449655052405201769762996668703422087148918280455138953416761721426165584269678470151701498570231786327892673871004497021875527923658776971080861041064917168917382707652079029696997352397120844716108492513708883131075328328643685940868206617549761807814779435898994046850299547356471680326892863506811458268870962655274661273583106690999151685915808253379122067794930632614871701173444256378766548382856075630788965748477064632649164369965132672599054623078098380402860508029793789268327057896545564467423972241496484033815642772788124201423275994415952961570241455882051942518552772318849435679720527489829431658800829887219728505928630853582936858874845717222005552367890094339194975336612855110680025164361363872561444513383135112739473716559168002952239699695598781992355890779174488703861960938977765097262473783086402007072071262882651655180170452498544000927912510664579620735801921629148043657884127131602853573598623428194007654795276024195371220959075826617813395734582635081182322186563406960514371638394813894081855236074617833194986562789935411159452623581357439837248581376768713121309884218566490700173810674788274167532917499132077337281739760609685669375963402335434263256978034463734840076488841621275403181552093408761325339926818866400445404531156011554004322405309145714605042848682120879219603230867535399199861691356523596185031577435041348291839776200517623863413788139500527076534539052652986170193944774408089537025877611463340128174273872409236509159864589153680572883498861511613333796158908835311112694561502078409024003645744303970283733650093860828024907092125531550263133999969606639370955419991733571787409751954634373709165270217189566871912033487554297026283567389060033286617208038523730213975492848774360062871554918198454281194701159426868738732816022796040015254019598396178293042681569153076758119249731364605643442825682896411234154799267625003551208584700796393763417572496428393981104766008621892362395644556294707735489017062666262343696977325829179373645243919436473441080686744473986793507063461957694816881746103774323350763276510679705959373692625823283784070302296633669932268167429131218759336390259196962576644138325744719641315010939338809115977491177745437740381561283564512785636021103481511605395101878733975515547906920533452369528446125056586118021070704366242004238246460654205387340990120390123467835096135127369722031233650218781944633915065560121380901175195939117411886939288619617742940675304166491551708329574257374681655762789420962235994308423588047180752630485716861409317915939893457839755381048920201608491951982973513850166361781056779244085346970025811863619404021825179540705594938756496007588719728523395097075675218397783081729416655259684988792651551051824349442165305987146929632923903834052364255015149896409223441091092359160283843916444691262328230969799328244482015347697466232695638428686126406265685347157614600703447633251558546917841519718807269531935946271029783425398769943552091860374524408443356151780719177213735791360121668977822578236883213475213708746230813653139187246091317754397653680882970515195765814334485913289456927468760152811213303073484427842321836006467696455958408204472882478230742825187269112910732958753064942218897501488178637943245840907902178834852527519098275802945164682947475884565570133484624902400025619597969146135110401848224752061585128227866464773357366944695248830683723721577705383478846429799583403573731608361713258770812198895009233348558472442166599961660352603131691371262980615283597287434110693560094940887311631930707974155093657555457794954211048947939173352552785318542451052136015512560699580223301526119762891233079484211476132706146641404166051410048409564791489576612880574938837748918807804857412055874106990618161492849159543805632874560565291572472411046600774024853826270256251913839536456977209656045127451258429846563866802238013866260435683243191334561921620743148923539829050124401799884135835650262242313753016426771626819660654987800814169750911168993306590077940624292957380652710417276105565391158036833307050527087688103008537575582761870993360225432808244534544849989361848066876045487891763251085385131130832723430048663102378105479236649127879504655049297505156085692536109228924831308811939015941596659647587689522576288394667577751622908988817670853632832933222052939602455069568405273982598100688208083297197252849756330458898607013599464174522605345522381903514660768407425265401707779715878398667765112505474645174741057367536553203951057182820950032698646567707285853371234484862770165898428078183772640221326375745586258629103977885160926477233174521165689505877205820981207870477877899504844881188563912799288809050851597299730396034362306461117540415698962453874225005386550864521870751779739791324260830411484160420820981532505558470555363137230483706337530028527182208963218219059999082778060525276726271814264947895951057665194176153853840716183539018454980751237326000161045646588185160258098999498261407042856947107888649816981005660382125360155066012197636023085493911619796629770727789573784020070106223598056290674990035907228726893503133529694479915118486064860902689740822734208310944749230928049643181229904911146372615419646922656873789346258421471089428434741194481293100925027626102781888140681221053575574832343994839766862856423885123700670358655117791850762389736413912487165965739110200877735812636353840094993886419083831487671505065169910785239078912537086160938486049362133536014031511933230327936464678596328224074661512856025193356744613238040562501645603259394117008219656518472685335900217859698904959184690656245338534182640736758818306335182610435844817151006093871455775909975169740797203661234664269436725883986105210132694229053820927353412688810890637446251693651510665947616377855027590357177481181694172350920838988537739415051101271571633538500935170606500769895075330240688800821983583021969420187945983440675995012922251256487696416248291770637488413407904969783433571929968845845371779092651577980667461727797522154162808406073292839404292707080312641428717414452911246474960217143579236167375670891309261714544384446308530250773159569681416772986868789547995526800537383016937423632672362271507054639160882069422459793361144910512981302979825817061522600593655418708134283181655343780965554711624378025437850112615746006703883471499968699676750277585414921664736821619140414808176688313123141532385694316953772581806510862942074903881522688619301234003817973361523826981835174522296084239877495682320570950710480508556295708561773177162998331031761069093120264818179972235609492901166853647975158265526277909212748347699890643292569486060241129766304150204138909135651672764349644534885801024525989073132491949553997730302359101150246644165964721083385473896946304075720694109574019901579983715253794800308846645546998730284995514362178090444061884039320996502570054716240423272220316689672325032269750014858990976746343203040991236293263792044601317006405234762830140362889652330312559279072253343582766738902559889666306560932791769971125844618575778183100804730787156911289483123930569927791302801805365363664285806000080508104004982227024254211365438073875960705252313570134679991627410103358723168567489608008317644008405772200639928261213750315360511072501846461475423433437753800460149919196280742490554341076161339042662016801758925070332523440795869254961911997505558265294969185912880928106040140041445614455111289716700511989678246911829443990630246713991586738806415648745268240793659459404925048352187943581401309472622450203748939703982378448630017229642075165147166368682839557205803592023678750698473585661114173554864612206444943656502811548471707836260782432454243520527741594212753184226959220244508871302466140790576240895515633317413550304856465406045800243474824661561027006677992584375751504412066902085556675940189782055980956011185964806893815239369222946474642313806028118609007177207668685082760253445257610519562943635464105287792795530001766456524487404140587680734435846944104961096543458055751226324805519653081418104071964665374875030461717713783768521827583937964770699015002148051203432409290164108331365617533435472866543009838662743902752284395603762970523188843782112494160031957986337505889279257082001296444135009448597125739597820776526185363470008601716406273067247437181234754792885515153611909471612014809157541013299871502616898027510870560564497222481914999643180170374797346841598896286522504005473369394542883593345294028022929629259498701102503157142082011404277517719372640105259568242070099346173471424633794936251920748320956151919102309854940476672552323421271250682518035798212232812277793798395820437064729169321677651267425727926385406581312158676005362110329359086932653176421510392821923546775635606221943270902796463138161022876423907936768710265176497438065683918304861957074300408868045704821510862955298441786123488756240210100777517189334123572127375263058121779267002362475064816722968744145163908359537827920039912511601194862314163129354820896107268149598213231254836402338127943981838900434660820754087195316226341130517376503886597446107622730026987771143787855416316614282580001124146082576326126978409907431138722810464217070154513885510897079757158303264018360836367433309728564345787836868167573825056952043564673329128308773294323334770624884653947319523777418681737390037496701702444219241996690150043577575694101969703724526410754931598055485977272499589708489632960852529330100995331564894112396247973057579880451009821719843868768497031527462948209255290545664796764015424993590352963623067376611510178552863525941643484823974099872800984360389027882922393346075816939696499402785185412241338654344876784187297056364495650481892688787896729348676814946632070095574616257149850122838287084850910572509357272328456872862137965815500946793325151630780024992082652637858396406583919580135904661049410108089060556507827675808099482837256483059136798546809421064876056917084919897964974177308285341450462714971830974055403090596077598165821348015358567867003636143421055221515633559177894476571092640820063447343549595351229149404607394664188349077750556143318055546959908851091388100810911148787601084010895410241594149351873464173355586183829927887133961679299691498986490022341406287076593013071268058551035870169080374367832757723364461076227297330988139986884909340592523204467135675899687591013622292686157718703266934551261453571174476568745317721650575952587241286947392767319416985328273773234584533432053069704426615243056297765969194214814362461731292104997464306475898410690770161435742571196467830503366274937629737964882452301346565639679527468538604195611962553177791816098298804764889256202383780144277387995223040460651994381914008978425260307583990972401176823749368062623525576795616830926985176685080049404327215952973920683274759140444329743119968436502222760055936430509410374777664817773664765203475240818552510685783427522289536979998352006474040908015903065609962701396635214831932402574569982418988060984632371442662893120936328211260937266783264631238049359909801088049927639816268764238932753214376416112226342282862978044885199792020663014155937093105177864327974355698804754172435741293162987625400056874950674061967229851362149433484486511270638863726424834299577495683293464320701992452675053418021861947984356236057202224753324392180889481164872868063234176616697895086312407485049783142574528161220179311573545075317515545541805526065601761132983747742694689639380177716484607247686081648871770090043522697894918702590518829833460522911233403845621136879647529358467270585737315243943397219082593398873617537859533686343233829524261982142246458843053176126870317641185166989916701731675253789697108615410533193269588795291450476400233191203895396368243647748878413551479472509392954406799504748124606768720249393501028449004754254444525949345331653676230479299129156075599591263988173987805489459364717944446311562639764422329967056667723577659877803648571516214751155751788624544643618408420867105756719734170541234749300112406588027074257388645251164569346174238500427072696039400503103598988878046894901515307155110338571241186570769560396749276164457673799602385639698252875102075721729706565065165619101221672051791064621296500280192694282289235197569078028189550510004003624895246675980936193193394134492074236608767466036910010528661870626610890509297672335548617213701758998774588371226422889044443935995122616501917887369840530844526563014941889795576665122750356714095019314398099034981111690595968792044212389035836452391223536864547823115516558813156391379323936795081777209834183031793401272343433294244796283084615999810409593331757921251957000814500109703695714170997990137159133732508424088032844834343131870562810394300772061464170508357764529643443387211638536248924635666967559626459392123786311761125805806864544178652998932376703164858161750314263980972105475925800008810658861648057873204046649515655775898495295766453935176194292635744095378290856288465996506355171546741192040265269055432576289191552444906528995384416501241800506997824269203903438756003620341896127504004873571813802924248296553197607893397758303544982353375123953748668718356284007825214294761212436884266970483290863242889648168926442729468294507026935221232314894380242172557126667842140610986267314477078365575581415139238658639181678335459407834268454278435098125903839916410687407874227602057811626122590175765108794974095816917989089755051254859614012354679196345487626212782324361699363854204185877155012146800383023614907009682593938766869673019200697172940288129998046457559037844468631188278185199784489728149976987989082387380367936243484662617008514973699092541365249676028848757944422881360119825141969925750619657976201080196646699017104185291188124140174381401687190173407532137064388094580732338528529054868589296123124954502382497652859690195827369769767216535934657354758815281353424638834832180094282893414176176671171537866992862685256829362197632877082724397318935434554363709621753223438254037724286710218170181475057572183111928467923536776082054279510384523354359666804001516154540285616631079481603561398427102205739484536756708486040053896416139638100284749429403890391026478463226155928821930663912278897199951905475837809760052095697045959483170560089007217276892343928993745284804737568810131028171811096129899876027561046354743237831152512570598099973976707551631105342808848335134244678611223682034829411122285504049926975082369132984363954109323012656295670207669429702747007076201732529527832165563806663658505437901127700766446027132288745794125544410574989822004939637159180823291366098160304322092119966857491426668233964819176820992790891325309988666837726657987491942571565043316478446447261906351071948717647284715070197148894516092885112024459815610501141160136004122153233197229112258512316834147901436220957939834308199848847746975056004952128345490369108310468509143597290621452172729775221186050249976732933545016803570221016047952280671489080402163923660847595638691292086005315164742140959408762232978510446361075143575026526582936480100243981805370629687368539816055856772196535146764891912897688567319320682736332660856958813389505859625682426669208369092740247345819540767624381889639177863678557092515580633860433738127719381457211061489790574727982130631191845708114506074009187217927908645606015737557791538747463100807855507849539633801195770107439251564374037068064728719076595948138932709977182066131062978460740254001468327041280629110159234049537755228722773944019024180771448269662612170331185540451588607828549731455674088000389879130079012731818827811394085770261165591283320844742145930547874038111187512830507304232256045843147561952251774436075489432588416264028744472505897867527851579203063371809516868757597869943261376502755215516478285748275777316572243417562482646589336409885177903812749867818538389472444539295079169191234990537449319102944203885350304467157736560208617518364705775499505801823914402891388385847741236556484022258037047422643759802255073167266255659058539215351626697078801105081309915597858434191513254458051685886497128041848700045198076383274126849745557157305082826444324088447351002914684162652523932076964614266536815922497677637539518072279472112626685350768186736193001362557047465089203976143979263713694784071605090346427054473047128223994173796110932901309718259855615890610291841447758748310768557970565229910177919446492400643820897937304796963169641416813907946596869408244676052895118779733518023187219387140435039855400160473497714145417178252224834077539433374282888486736241933425360206706280233437605944736553967727186942530162775031728846635164714687356764169080324133016790072917544075776525674076714391576711265864102167513889286121894770339093325683381704616878572422190118125221067414546744039799366812494690319383623088103355631019110235770295705949998089956919130642083388589248337603719507182191539989772645039135167478181948608492771109406552194877909097385661864723824956621906981433549112027989085016721348860190974324131128985568179702921740962064407632232625355440837184932973613660537377120802286084309773639093770106843170551503729044115032558680713390402645686639892743723489230338503928248333447884214176599874994226983876926185625125365563325028655304970562613286669425851525075646963954291289216628805395972533421274331080218839176880519005121709572471741449729429704761310277343420500413082865755411102255536975916262016953154317462676723552896877586670830933890592407752672279136498933348204996444394495587647730044168235414652941880262913785862218304298824261136622326113854400141592008200964228865841650758977435307524911442406267102358950709622483064648373109595071774227571333500056185634823239975849740358822410735666326191592302379413356478309571676043843027918920493091007260476315996221608241761699649484123971282695064972137805516966885075446056025787053061736403556459714214917287453658189181778159306655831718137837355501812425794704608310948824663027540241898024107034873047642701865686345445679038720942321663972550749579606953606456575057399682255599467483223781112712460706035598170409910698084206245909105367775653214332520389906961629352834877530245868953845399463782493257434537725201106856295681139635360754895152774982705241991254358122815573661099811856688628519267950123124755291646152259072899285838335356755451425308951202001710838318268842715421666376511363006233666928422233155618566381379505575341961352017685604387645036725144512944792897578076809818867733983628026371618659194617676326686831230898289969492708544309046977933025748447850422277469377488099024437840188932942265658705124756589729794424409095137542744661426940424293266752857482731765301790398640806228401839441040331103549920766392689966309907288189864071451339901517094284854136007874644501579994906081225677252896835746775501836798143414909216062953813542765392054013573699900299404656386885632526474271306618016114030549029786413533240226878745073436301878691379942630486519355094118017469394124187237543422895974641243682246150800240573612155526109073303118423500554488146263372539474918918163765319414544816541375503830575339902806644385904624911648899487589140489716002911912213138205393597828467656482404287923044670406924794557155225581921810397005276064138767178886809837004132598021976488039873436204927493323988918209603210422587195873159198035499012861270338851040513726360989151841227971383315831602978345271906208719105968791396581598160311182699232993788162327286897247918405508738719829058947491470675743123661556034023673699533347013972807255876540329086451818410544230099955074205400246603879244014838502784033454585111727293687093940841612224261542103850135792305834933609198016760962068132625678820123053955766057454323499541828542333932299788299342769850815929732083468392397851812296319108280386684800283743161799567211879897944713712292053409965024503319041741361247581354912585614908693209327118309568255428496371260032979693074546692598557373184197385199500356952760155939671299607240653490363893222424171816951596806542282395834867876108953731873662183002381866195532013627193096736461598106493151295407042704168212946614614264125012490798186219459021262300998927833490254105638256063285543287659428298141796068047410500992638796438396458495163103404436738119995202163465749853214795268396445686676112131456870059184609120105548063880974883286381448359127494608058564854719736747137961468377374668195404139536309076720868487604513940585251381104471464229425865680605477659153653385756599986225181561607893597813199940243088362186951492586037002434439497047668634083203790256916718537259250451460701866906601030096767302131085168245749928202098276020630283098402720132799275232467388484622820359194568377107964796778266739926684774125715174439006795917589452051910171585683882966472501961282150449759542500729521825462485317568552016776501760887620269203042555583919401031450398893477544561984885775976082389564039738580885436175649385073946305003023723710986716703251931585048345625625272537233722340096578059879561928776925938300318446630483981103594933647874331994820514329793708195658517873158936889930357053146017493137504533465297204513313388896127496138457653351745111356973060468028208157568086179394759890351727335322074781862024171579959863779586332532519432884128514632846223761536817069990445007473498994553820028985644451895274454268288895134812734029745701852462243529830147967707733794732920578890934203379747780278581967496821637922184294289948724482250768288509134889206111922233813245479115617277073295300833417372163477473584039105465022683945339731033573880155774884835384362069012272495292321227779086158917178578690743390759895505206858720033665031398836870859006331448125239179751022144452640527221576612296809147212887904453325658609440309894033697237874266552450183477995435495777534320505141929127074285433717929603293704353550109645640419715709361266293634363206446238088892810722102566984774887790092781311627669186555348771941066842296627087351937578691596379094469786690678016120173347839147994888150398116767143490345585293011775261164359515192924012523967891722514749190237496431185192632515173059955496709861362957749306327061831669367075187312262282853127877062487748681992785780825798925977444632190191731258736764560744141677178750968500261328995254179400171167372021458102083382837513429329262646787378088080998097348590963408724283014047419810305556987743786996099942479987926965334435572996294405365678939286021269150114858195246983297090556904844039088009717527141360322197216539316773333121959414353138922122254182399998020303409880244007394601316167770394160735824655260036573707475396863394354644319258773165364561214819243775238230357757365386261592664966432246868518355677111588909895581374207968843307426729642250830261534897463329355335608729506782520548475227255445355831470868339191145743991529814587945446033870499857198835760463007772548407741860545167227734997315787775870128369584647793974542213616956374595659186200346846338410766791551876212318091079242675717128449513903161639915168608405257146493169743415018949427185051753617158819006009052810540885753138985190285957846209488677045979191984067490794205442530098087349714888922517204634991465463478728989067658893361286572949859007451145492506330543391649992651658885192139077768189656723439030306033779987742790950933998236515582349607932724743188421642394981530421677542921811422247036486728474923256441189980789714416419730209999295915309031554864848197877572299229629523589867475762959633640548400586438674350161913436262261367621327058468578138008833824336789190620167778002702915556482663583339363452728406820680480582823731761368784581845884544082385076793947507576299546090473254061499478234814349084783225435856998487091181395387503449216911890300790702726323887886848701031350316393394285920076405012380913500917419228869241044491930258950228889168748640979657987792517532868948539675756404850031133518017544998665763651490914380188158622145087679326983145978964607720729276315420427282705611901781100682106680247221463489919095943330054957273971679055754767519026242868726158933144058679222084921878967010814845122968859520871054970604404234326434979234157416966671223524658236684606200310204918560415648831101121624193151616549165186909066019828913841827064548071228418813891045057597055439240000169135142177335680176087966914363611082766200596440663948512712231700418170218636096264188495099217994865848556046806125845685290265207304006578776095025239217334240585696622880537860956002708762977210370474221980337021537329810012246811379052670703571090089480105321498745306897243736118577030814479067531521021907697732648497302236533007982831330817016794239545162580217202870160589256313780921609510438666434362413898463519159383931221758281025682466887450084018654769404274274707105079084183235856081134130969369195446049194971884260009069372340461698007341695884967469414714354134053494233099961711696187137410272955326206544944051822338532643484911934379915973482961995806252479931290542814243221912644654251836979928129342878772657296337574090150397120075545906578614344175316799719114752797290580905359017086312277290981073010820662757355662374837803620621761722450600718961195950410721292422988673081975111326193444021707047011581951843896510852639054059237214554244553227117489585412542510037772178183268225549468814654119206108914120068449159382974069690653816257562808463468876103723083812782148350054296479176745786852114461052707388706525227488136791355474975456468206791132674460409027172249926364596774256453860902381793289120495195186974622107287443338854030692821969727027713665033060394842022352166111100597189025779465594302090597528129504249431008472025072311063100595878418344768355879385502980739221429418224857434496343412814416169657570098613614898495740735964060188226477552230893030765528775462369227386290161066803124545937001314802482706639287627244416635262373032934518546364036338795459284360777966967589149847341077849546826997170093065231876765908442720826237132859184123109496444966910783670272067511237630002331778783749106007473309594806421463305410526480643473392104129287570087177313735269579781297161540300375294277377437321962986734105573219778051823997689919493250871961545901883971408131988199144600451877191727779872446496344953680029238107840913769449799382659091402456055846765268218379985275061238728018886205918543383917945736094205374034810008174134596375665480528252126539195863905019666423994309228458454033602160162996829662494639775587364337563936927276370696127376351863549141961052599527218671875147450815889571558785163206407689719460181697239144093904401986924779319894847751027281570104260149804011542893541529835157910218390475141988226738113683461234324613814000173081100743549057899017932189186418110103118248315356743197118580553578141298076536695368474035195674219702245656367351486979587534630776091025176361139138617311070188510477334220990350906913534519649792676957261607287271310181242099381321129345850478956050212742140434597617027537868836990484137068485486017427119931979671579684689205409846285071303303168251224352334763711571745248053066687175796384839323102623455289152301929299271946027235546851454749830343214735454114752054670054096032440425611858559876204153030632589169795278108849377843568626603277785356005359938401937229627990172701555769527175778535965467188025219174804157724026101289158207991779526701648846887864990084628969845769737869371664462485570961260924966159304838783909122385001382438675437074251127065316735499213277665058184368869186708274555674935698519847073837208246391426402628147580563656462083237690206166510535332668294010679300929563124242577072151993852342330019954391063356078684747287985112582873526491370704924108410658524411535191426836287877843274781571158478504565163084998724657301481799005599699048665994638249599021212297957139125698045877615982091928165139969721605190610236478264886984819752260964402483729411930946974361751834878999165752533673227261985596742187574263411832741689983871942760456625061071977353778732407250592028766620922598452307268311615470924336154754393352960120084335974783758930338119578867033421455201009873480164080997012155368929620704676373719024055087988508779836036230492817198413388149563379125038282365269673621052904036752833292396594699621581216739916188826266811964107294997810204369005942508647069895667342699552995428565130434499496502766706226629320052166273822957566102703290833948383221641172814835134406576292451932849023225946454717912627962110948978566587509920237422959240667876750717813869098090953705026239239098443173634144649689912192967567775023969055056079878401294205366816647178735905404179234027549246616343929329378133626888790567722903124452603263689478862434676154819517820672446369811314650329576758983995840237579549434115864464898043637493971724815880723832492585073008045281701719218520623882789328859122740776530562693662995302516944985685171832408255450660904581009738274815900731567223244127389831004736084672249303168090114167842742745349923028211633148362292841416502919874275239397798189984568135676952593079463861659023381157791557527530258015612697829846883004882689835150608231298681966848451893878786170588374440055848658831809433785230462169537836981489351872444402730812991067067263062974905800719801306709365753309788063065496278386802848519084884731735953114122483446014142917901008047682168700634694748212927263060173370086925933234691627379484184834018463028560325532912194591261575402176540722133688440250872191198880871057991667313106861516968233823697628991819662297005380869089248812903605971790728245263699482040021831009191619926106937270276107634882185154387712694887738716844495730015495171797898145683136187238688802946762027742675754494083895391728964673898083960939956184891265607283855679602194994589389773060990472171167898668675914624379102319845790541055667184724924146423793122507418380976932322490976221266752843976320395965422426443740497032438935204063118957359503679697051640101160320399496245704201281954312604574340314674444289232980007034868638552800402318800895399763424190996003976801727985363079045981912797162756680209940674871901550973207336652172070754619441502860624259296377072404686706099571011580886075759410963940118839474872603899245170177247244051982978182532390158687367755298962522829030620310065338357349849580831396947046189893013677475824667758766692056732731037742679283063985902811454157516169925880294039909872560333621069231167351813925965298569017641799784182223170327010712265965851500185393187369264622226795690726425846243603536985634480752157562801082429260341211698690891565531943376086090210374244969412718807794536121151328821450220598322545505611475855785617603473459814048961310281334054236744366579229761658285532794933103942100916183196138690967771217806186193716208748970370631440665480674927525184708634792567382354929884116337112425674901046515169640767865799196705499520657089705603027451355087443455451352949479393836581052956724468182235787768571525874194117234868716273726929503925839825257176475734962628156751132062579290720293217847322051101335885338476563932795663973194771922225107812380208818453198348777840442252117152506204007265760712919297984079432476568139779020127601558956940106904712669730671872441761668545817785735495469680776781357963916175955781022547865734301869567264465007572655597830811299047514248873289594030641641194498461301586324145465678871092424608090740991424286304846784975008743865378742711240919343890072881332524591848114234848286529462319377322018254488271805053041242288224088193804384089567234653979490959693963374527263138791739156599491586675973761705407276455102326439441240235645980764708675489115712165020306097519314647790973678417381941638579705869828285841718573803028696119597207870052126737586524758235347709455556359520527534454672966161816868474977236082333196572508423257214361778292416717357483544612026764387698474076547949105106640602727615480893484533699335434208907168901923397780175812124758545310093112564881805675963081838438571654744477534683936792599770586192744644796602074063097895940047908217034499198758355082363556707591408114433532914136056083732445666942993427213154134677474813321104960860749893181659800132017507097009182557374411035982443799361389346417337015939091087133160866681691600737803169275005223447064466157865507368348388251693556387533594659046162200996792706776037048338254696937773655300876590239518952327207689880122968782296038550751937113193210028790961694929735165103216187079886372947330442477018074716258135243659952352578246439599448036873520784206478614500452688935020768245705636066060940543977729242273920663438397267850813591362809572572144462421596095184890533585509418483617731467088350161065814677011243357502841723614450079251751662531637588301895207094190167732602318098282283570665608903661887717111305652593080114938361122046716602221086973509936666965600216020614279445394116824690111802365175347639022927891067008784067416974148391852362304091082528007511646690057913297944851630971591508520203210595304659307039326540109617699587620663736685232116583490831535296223754722086488487852362156814534580575329623386837179478307859471726156944589714060171895659158669715422496038075141525202902875281849066560172681082144406062696730562408207152326556872877298258564516086682094212158468729276639558812080968299662618878588514880918365079786473783412638566142523230243610437180895449897718698358821974503524670141859295969384423716264161576616321933584086716874000732624275314786800782874102662135577957868169683014323827114566746088825736692925713457770562590937339369986460480196761806948644951593036797944734081865021835289643699697176536715337173535534658283355701248674886345767667338761241432827790288051214353549659170223724366102299185047075180940989806552824507861886984076328607170093738818072954916658931185404955059119640442292182997136866140275120260396983898794490571658215645561696311304188900770047419164907045044729789365898701236776700159361947108307464862857785589550396788345841050386519791504705569448260083751569560013730401565429308660427672980870822427465989069325660772899431780212413845840727772447280486469588701982087868135834032703941743342395971514014455190100185223490139870875217630451488667518718533826340474653232932243695638173498766385255011973185592640427704550046662418557740229783028245656608964004826977833108341360127364414784068717377120718237970497492805293518081322411019561568357146845874481372720173845389612439530991600116559080485766743242085373319800313033362540319725135840442654245778544612195244100923537269943522818846855508790732592370750595451506138727108899780838381574223029546572204674829991882372899795257930809108900647045695997411525902138784885451228850619606852798964498146915254397774539045910088453256056030283495241747144654077325184404697034664296339396226546417841368357928237407792746245568499075058562099739171820548492896703386001392065528327878831963196021238326369905185129000860344569524332302799144910248767318469470645862641484898169959392251897130245280505086197624310772835796751595432671319768399632299938474127932388738989389711117150571119329894417272956978693173633252318848875900214568576581985621231235661034365911489829414339022645656404612999222036371355455891519821170668201879412386856549004918721915493824920472058139308416898288792400975568418488297326962021151400582769473153599370337490031885793813877330672212206073356733592525320791394959033618313770977166145501065178804156582055035072961634004714424264960885543354328083010334143659981122251927123540843025387658726951649225037567189647825620297534365786669429971209548203038966089764192133432090424855208645639879643200990134113655426527906473945691065937812100199853643803148634139259566957801795210211719255772361334891445637447330669179184152211590695853175811877356776698626172396021395362693819074962910856306037092884617403087548143852167222974485145305977315930341334479333292595606162459264865794030523732503709188867882886388627640297624378550532655052458281105321027909319935165455924375164298794471887054347458887863066940838867497991554325883753217746438848327506807433906764293264201437111808774575672746848888859550839277032761037428663733104276294771973600541779033324401992752140091893563364548609151828122219637541558097550166147390699727535828847806247609884643726613506564094032803135141039894103744697455172902133692003763306503571001028814003218110831484197569101338964549643652560370940310764776712239936747309610278649440483410445300562514687506665583057560407204036497926257658293615012335020565347048754599941025545142550323078108080019015481246933108882506128069059537378934469949218508513316680778673376664461548658992618133167724232836905213152336224191083442327846981162182402605105283273050589020017955398326049585886391378860283704675816451267153425751073020675191713103325789909435447928717301137140734774839641680031163207360782257150075327066394977573698732052984196782886352832252494901213340843235175460539246432753600552795704768867305987225319082472079435393323224447176928363689324462784907473460024817711392525713375838875948830081302334261426172497072154742455638234342223622074482594110746004467323128047673348435297107741189659312805123463090762842275477935697043452785488242790079294668205066681834934125085008056975157688049293331069634302143410338421533342833625882793031148568964315337179056976529434297560161531569180368750066154707098232519122499921178285770575181444407740192204308295204702934570813856236581414404976665490844298579131541403244716007367484497965554601888320455848970045692774411140832812162675382166694364228301980102571657932714025768971098296245411924764485873065655840966461060150736505280178321606185879985416025676111384627315651850069236025534830705733486283096627212043913179226379688107381707649120540456856933451488113690364606884393700328583274467968178020499299217148751952902230259880703603113043777520248717086691955947044763783430220199403248938599826174418782517959966072524673084601535599322888097144994244306023954835416646669872837718175881854661660629731904710940712987563761871800247760096267409895129746983532628501683517578483211419293561226215038615759894896973456751686552972679277292014369914060128829245704827345203387145997203035415520197750734896716670514653590119078822772543727890148266123410156914161321670258617340518657893859589562942811807216189690966374391426059935554293343109703409047116556495922560642170912290804421876593111947390207674871137925860167807528415292516567152337689722539915840126671005633042446238955705119567075298793888394409222188215288811795048587247998271136540543763735561696077929658506295328512221203135101496378509026229226783746937351971589838134366388336893750274502247245035279116236096311915631419836168393232038050840139193567475142647728142747149330170238202937224324376013375285841198903117197535632781583106669805921049522552812668659348735672928987726496399706484235785845997251572956048297508850201168379201143452428147683932810988023834628356633855996754566277566510826280294139881761600607165347904059322389913192050607233226669145990744572461797085627266225987304496401480184135859031719587148556222109467229278558767900264425117135659382304024339974970131071210436731032460545467080311186062336931028664789658925469294930711747661861074140850157025641022444130609915856865614263482180572614066983342127079292782157373560202825950158259332353793295689440024616100841173339870917194396713227062299166013181809654241305007778673674000761524865627409373679796373486327165730751644479256207084200998459108567277849328768726465457613227913891609747930354640740596230380670572073594287490730224269636392568067224551016766841261452130148948809096536510541612929438407703836539727091968212218955902302859339550213522799060218353084803562429340399858934562591082145686050370992514759407331033825086871867647776814762732748970458215668899910326368648740135709414683939287637685911110302751985686021047972233605310391146064777607393721424470238921716068178300757191918935305193554476638601979386792421354292491546613541251026318057145816178626289173756346977831917501355888818268528506467036061130300084647785769817325634180436866148722606532188881735031934163076110612742707118227394667049289866320680349349317436295003709856502061261828815195146239928750149485714030046089803038089352065026470379413558192828413674343194730122099245149840856325881480111821309595770109381998727415258730479205459329949814807752788310583537627997432884826768178432497229419718124414938178826345281918972535732953221559792403862697493670912594301967407659222285926455601294568750414581340915934764781881988311265114483472690282704331297306135934926441058650686360522554265836846041005577536457084238033735702163552142140518534357682514722880623304973449903909611614118405454380354852407396286290774505688809921612203929614566308639240191560028889681700460956577597472461898696307056517989267993163014530447131996316540156764463445470035693057114881497329027532825278175367172795998572044431478229375917422631149106635406695429029370824220135382880122637284565266253580119230410070273161001921719154100829196000304486731372211409358466880488652691851163554658320558955972941786666934316669067039673595675403799540989184890177800710470656974087869027788429090799682771723671651730703646300298297349797761980803575741347968011803514917605690243630755365434613540367637469941033630160985366449811044849191525756696951724473233078201770946573976192416562125493873338436395968315964481712279945350826262235285051174555853251824138112149847707476395276608360267241145478487115865894039364750978286783915655391684128883667397887806885242964471000463156326605254404193056020779765664115834475873192802863174926401257162979329989355101077152372792957880258508267132436999462681852092949174785192803678835444023388268943018696252921314512837765462460800193040525106157530391980355135143010266082911056168156043684205551411424591494461340173132304483643645040535400761549869689906998425850736978073135587524460928477779342361324995004646709639567207631522946147730503684087811736304656656567200781524400148736110015091833776533197343997049491099620846351326723127504040193680336415442584548324266210745069573514860439507452696501249062737858421856399068655160851295746103912711579013019403635480416437899766705264295421185382489632714419459499715202621373094605294745755775003473387754007355740087318840821585135158030152628888963780820103200641220889158213414687296046753792500722112053960408692089360809131856432797753401276018999574998827816818075619621924887531111859459396666992605271754853343870304273934098775061636968213407504961578375315210380636677984783628424295448624237566006613699174118074163560645343236300956443543753792089228044088880318936928031320072990392648642358124192608992747895889461363216559963841464446068369943204353127261627107063964273004376363444865418481012543664140633086137780350949361293697756941326636476086924310445204403860836718023244705084934023503218831160608650817759487672360098414457276729445778008058689448120674789063584828027885481168034850832298246899670837724788303226984254614481344885278436551932768506570426489830184215370132738269600504534437994184558237811309807114614878516404564769811924291789832016077290060648269650001943362089096623424172142702520490180707527914687314685019122251744630640450857497570033344676846994804600418217910680144423464422093858714416605686874655747247420283879407707153249853680736756688550633616840348039257969617945864630561427827419246087373653466755695501507294511053977178706065030735077460469899140279099374837409116943573548200054022928560255523871189298627215485913393235246974910605064663452886783651384297205544298653752599001794674563058732675897393941058492437206035359843466753426992462496092173274544131512634567655743658412784952965001794919576959316992759291169167762210669185204213828373607120397183940454488693981566568489263171449563103255798066670014098218421353560041985288334377267573803243261362528070093538928219784393763717263518920733479884425470655186660107229159962281428984805653239891309968033624801275806449012077464015702792493435861360048363732930973221862725295076918885814933285245334093641980055398833329934287584101689983328119583692666222195592126316865038760454313882489121697278755749026385385994267172115762262047189954831661348033330275100834577590589869837126395551495673039396590496508862346527965348788281121135156226040300091800805761755971002064921434965474346683276169424443076981723815773018067712754260102829939461883714128932091350616027963064061778213732551824417987591363057406017206248914051550053254328160030495050828873340348119468872666034427140828160215858805844116331553540143730242053778078439288026259387016774608623257164676759903363932221273146063470204059277552691875536444104993678244588369974062079214869632461751382537441490100181621369306442686309728983170735445860171596428433386256413230366461212656639019705627818702385903227598305551083631916071868999147081533905266606987073467170840440063210884465351213556010441066333040161774071298752457555635571570012242577753280521999023601808463571428870748199052765272472996917864945597585629504883265793536852438175441898739864164833621592538686396021438656843917304919404857149972923566543033744255921437262537564755189122934677722222455971364268774136872093774103173097237510382482423725421888332906703119337762706890949348210328926957487789307327112004351923610339256402237478668025351256800762806031398316723304263588337432605223229922692074004000147944986472606237404838725330177430324925464215541454394971588282223463288795663879393986008176288500812963547171028684324565954959075179905436752363946413714269033790066902089725437558272173821822108910622798534590076815062383618769099405565116679616165875296848494330734095661518375553577472537454691202298443207765012909851954404263764070781930267024150913554605507954909790432433561001420100696996946446374556024956456473564607392406442682984954173098629875552463962856665069343205697969587318289792307716103352553823866095818075916125844534036837173425545102038824790533047413285527825129253927924863375662480677613499988215824374036387487715731472229220308824316847546877673823335315733479153640749375549096104705096900279962877250377265402018140268065970659883061788703044037499584862851460014453909276044051638824265671406761352292855685059276333996427966218488790585921453952823564180724570406820660172429687260107803344823915244912586852662974723468796746166675991162660070059449946878199472595811796090087032591525007066467765816322178333055961325654760538105489043071475994434118354371735222333149565210909032238345881893757385651179284919372771210328704960579083336140931860839806001960776571311676074066021930809098371049173547362032651166057857330566995521562867923750863770135632477329104443198835105600628825932458741713962317174673953779087866542261261415692939451979842867939867217143624652284944508742079785734732307998357906888533837098686143382279751825114654866187415731368253803383998737713434988929973358331566269328814204124079308789966577624315622550995730393723910525353530287337723478751203056123268544662814775291056738892960588593303314853699686529535548509711249558368473998220602038743238728708745683236899099696954718018589583289631273442977253784366180261589205149692808393990846358610935845539229956822310936428784303482877249639737022809178605089663047638336755469274306295869566639488422413812400951241635246976544202453866885528787181810893763183293239355870828023625680276347638416180861033284994557711424752373741098031040822798048866789882643253123362775680450689313471314880150290815352133122967914797668888248301707643444161599836600529384612326601969993279221043906920419823832807434042500488905053691433659812449481158105809009068040919946697628228584822436994145558618409615116794678314934852361816581084682845076628309380787422535146545603581237382545081302088719247498599275626666571786452847023867094832160924204809953372488220956011805627091588718586751569423002480660922212578066640679244838462828903965168522239149502557794800856265899227088809576333873623758345197991323839360999711461338719395353387617362212633168985686515812339923154615704788134538488923028228457036552272162842827562168662238403885343271643722730749276487886718142557376124129406484119550257786357617454829564019593034171887077338878149338157298044204472068769543914767728059885470738946493497284484114302815576912668377898972514285993536353498085739434145690160823338053156812080611814353887912052943906629300912580005835788304740137880357743380978021824647953335373654323842834202643342735409028457977493914699831400609731173297381478923383314961727726418644951026473356999421654499030574237110820676384835421675223595941146399313423791602003514036248486192585759516069048770560875337341179090879869503028177303541386827717759584412534447206941055972373503438116003770997397134865631715579151880316862861156115507502707541680276126254217268669788444557218972489936631122909125098397134347877915556190923912760239475478624977353535580923399883595250715541834964383252175629354179833772771559089008427481789313600814805120865379864795315436423902812251386695544044005367914697377606961536969142707105239564577439089235802049708137264994486768553182709597059201482247244121213357321711956837128475882803833137500800453490005348524324131514993495112145271627751533512995122013894190149568776274194103261831404156280471705783250237766097604523706274788897332469309560568315685020887789622780880334872344415956025164677121251641026659856618220981101618905976315165195450958219398839546092832920497053616608177713308655412267370960944615943387897204812180414359679682629098591126397098831019415310203244675166230360852063120121448550339307226037616943293255468167349429124302744362865909196579874014655391444300782987626731905003334614505957352875010755772238887523584020422543620459276412785198662964892901683853203452569809585365215068744970178121713822531883744954330855842956661011525990323210240186446505808842670893460287047890884562147539913807407376073471806052449829604420297830265921530781223551893466866972937892859356521308779061355263050839824671230179241660316202163777567667965442954555981590290469725567224605740138340066331418097515490571325076958606642906784723694978431552294641048608724661813602466494018444686441917637516611261011566941993412258386044611489836648766901367727912557045427803969878139866339456552727679929380677384602746564054328996003098857851905853821633086190617219717046582553191973918888146670301080690435872806490565911857930817945312076625543497169959490433133244028728456377865505650675044163007966250201016826725120397422123434256724426170590349477824225568822981328726897016586173194289997077322330737666378557845962406016624223710744172255244598103527765757058785284920441230721893185902549295756795087829901589273238545935584381027479526769664488647919193762417866248703195109138800048855893811614554637642819751577610821486642639536912408565413926286142605088524274727440800343076830205223525067946414513073840979444694024776845524585089384340185501927966242907016860246561854060469499332563208578070184190056498822560629357785672834089811381806991637451639107005815641287253757877687586171461530591769099187539534786865993650549215071265268957278581373971111625042924399995425866535066550026107013548365559089390671171116332210651224313441420359278451572575519785575087841488547991854806260937456402804862056697631102048164190313089482516193811855412825003755820986998691325541313711756740651790736899766156528008430648892100521028896907240052230781301428629775711818907371083853313955854717697573128307643833517317864924381678646956656238372303125981113485434745682075614090004305945034844234718111373552377319098370254271964998965096262240714868163822860572810195801216935600567952327338470252440854339475110714205659082731368832529777766887663910852090808548670828908804116715575083645567942426191499623448448253156599448761020496469111514719418949309319646265241243704106208613107935898313838941329637699705074096840811747513586440146003330542705286100486923670687700929736673761432411192277476989083229866748039310412499734947822168748828455688417248297581026649942964320211799476284875498815665761318954991360614207010301697893579532354363192377011180155647708443203499720804893590825676309251064154642528977649729244811050548189253809663879588684504262818382007734869553568736920590405814529961387503337689215771133687022533869938798121624291277056144901832299295677127233069212861399577440335260794899991938648168312599360928125587128859817077180694820087107488523450551309129146620695451584333364504479794465892092449208143478151329558506530432405209225930001611732918907943521064625960014520844262115836491019420015875529999339186118891982352652713657740693144075662721577037319753685596598352499376609848396894865546677659786047506435559653351720932232314717456783400702065973375350185543579267650457850153735982118382220136845348859305476629919609985101777848178720074791065573426389899484765750052512790402807390919791577433501548077970220402191763732340142271204095795516805659928668111125586861926352350771485505193008940882474970372523673050034605103661336675080692481499364267631158004812912197470582110398621314312036747351322388379110841064510740726929668388309770979646862328512880297171064822933990914739395743934813929718487797296569675844870819514296855442465943495208156131107316642137371067153010059320037656997051441330744976020322910861060622566844686736820386762273412258423126639161900113222600235801284736628064314550953255928715980537640797429878022103342497991807179347814696404531503459413025596889104385820863278371959663349396122369288602588714738599670904953736021455697192102871553911278980202198977079264205812023319532163952380006741174850695019221182173593276422369174514717557631550322472695781740920485991553708092769199362006706208628202916341044203774493983636507690732852049552370108518013434409088315791450782665340114015827313224166791447206694226793811970821338270388331829149382171367742514625703667859135827429441944475288247643035628437268495570169334727450123797326734545515984385076398175662450334624713446479356045607599601812388850744074879503381302088484936487419925206276028953450172216149137854069680579265275711562138924788277910378730414601387783339505782420188408496231931176049904663087259218671864458249420125248025428068810526978493236674191168715209842375859250076220260321674422876570598916326981445600489257304705737359468162303475101887112128952656669227119896344624352130024252869738648415493337024749441115793349306343702110261774568136556366580014955740759042485854835241536666121273350840209901556324488905296570341392852561447601869892919250063302927864691899112397005734315449528631214887262236367294565238410919183987663448088441257010255727972327378140939106774619346185446292416303123957194806464066039375048610436044925983059296403642199791204221713069798219082587026147838306389811977297429855321886473271390284390772917243250998900810271486442566886859257451876311444808820708633483606652932760936278770771956899553985936237184484194593287923333432294638906434416985308952301700591830598682293483584875836396043523652961985167287363015675034458932602010052999760893004457562769393105526685595615124607679571739128030553447669130210883226847595826297420908101465976939220540574802519671197185202761372837593392906426501078034683242620211973477128614824762172239287176377950442805380310502651135148278213054562627586443823049252906694056102186674898654374867545217506828230935721973311567416091219091751852174038290347493694372748148667952124082360234300180156677665943181331772193793874027089093881519479112414888757953496868501123999317165631910424314308979055318930991088363246242877671550049564235547528375774255667542839003686405034924932484830918603000582213215629860439588481505890841852130148408708502757512273252830587044623120078414796314773415894389885546958836332796648563310180918829925367574252347956374025526717725995172842759661945925271716886333795406901488540748630085456662034549267687554002542652409913720996933219859691936046556876443824699057384339719112802835433663398686024043481636095946319842251374417533218924384001890363516672549932046281204602704863879228618711581950864487336893971045258561785739143690272724199606093937299810178057931370352687517610819558211746695613085874697563747997068307997133017049931279234114496280570440568565305156872416718877154706345247560675987703069449137083600854552283516359648696024404042702926396396439329155816576964967409899517152680411097220425157903800134538082782994046977317641268120282361055623618503830268622066121983619625859735728129487150422840285315110398479975819464462899165298173991074886403875922128795294021059708783570180494231536552954070152833672404424269269007347787619477094486879861403598886375640439748403406066995583272704329070511282891871792596361255613336358380205582192131666865308626051477381393345753436967575182570422356110951853770746257350842016335995709294516341881937876501361812746722272813456432163902523113404590737799236273071538955519657734163899378544802557430079555612955572733681161237425409213631033234768724042304359462139714792993822010623959369549110001227518401501238925010164119346653927104499837080488581079883307490752580934698642859951921773714134044194464197273010471175637756631597358689248845664802034429133218122504920768888127655152345509816688756557021533013235881690560446034915384455465256538085908504033423715071519192594340460199875742570305581104230243906088646662770428107937538051349952913121604472186880904168277055421738335377941956008599968820464786182056146996060074159617957060982428106007300395068021059099730750059490861352620017514557028745360290006144392577222912897232501382415987335551364341155416991485698113504550475824773708672153100570045884441033472395679823903458295932147725254400010767899780629248527808293372354760972500088064075838146536438846897134335235276739107143083973395271838161491168027608621041234453283404600338479719085935038991130898789988781536317612373275509816225865070645108209225423583424956950659377146417622507796276505465149835775537880593326427459860926687243744429865072824348286211152045476821207473412601722103510511020127958690083413560350950010837195979537341312241318064138628153026369155234710569744626842293334019912184115156699269221781404984889458855127231287332650830676458566947339307724123257766528060868103935204064577988110672272709698521598742904426804909501191910572007983129435489050938356831162530838872529521273743726809004389844420432956715120531519374668378496432469081052080975266583812987676899089905414999995458165169412112725366261626293992277601633873867471968556758579636351733106850878366489017467637578515687821491978878103609684634187092744695915794982258733998427922930801697076128786449098586729890454718659004865722795106440946097540021986169784706504876439497694421454649276078055023564998717057911994951508623461389463462596963634982134931757312660508510205855934890255709625594504088979524962069439931373156045901993876864447735321785810517350567703905438918608089611811278399396420111585298090586911154014501964071036217420189759453067971293429813675928560356543276785586027616207379396057156548676520925084226123403737263853041642557244797349979843929765305030266892726473605008589705682986943242190549496494392690405716679269185928612687748144291530307327849757375085693698713454283188183475654525878364176751640790095673311577795954914193243181901266079263574643774061226046174539529320925201800291110376703370674492997930948246155904539078150449858015510684477551493934883766229579789857079759406871756235711581862884259415571717800220639874896476697118147055637637799663837501229578104998012165673200203199153665230590305088041153973953479480330359237611595450671971325563321042820261545667797310727846449784848611411173329512558962227500609349821760096561501062216755892425619029551702052990137897335449759792037110394711528356899691496264261385518916618180842661682046816921436624996823918535794651880157575090841001986462275824870675146237605021583999052064965216348667465083330489950570290651771862483406227435043192383541510425466723125763630707242312113944136844750394096579175530218831349046747493323984203587899567403438872938902452210082935392950563297237198227710441001058719876925652338372727267752596343184111207409984400783205724347910541797661428643008367804158670640906384657877430921583511882739959180871719542706468849216662584308465838870589330057961407305243436550019368983284557118656132090071664843557345764330246297977565965753495087195440985880150878446650448141790714291578845848546874790944772946140071514234442726706309170251630581192793568225304962072905238105620658547538923315707159601815803470077324508962317029919172179209443938520741466762816243914941598826972653293560654970011450570122230674702953863631660937762817658558113546617292297128422842354628793509793580544263961960301226233966022999182119622803333215396408743909144920591056423890930816424232132053697199995362155861953644243760597063095341070061179103974949236579381724573674406915013532918738976357920132631679767491200068970729417716028081125565227325057483535834790558984682741101394006134838750066818088519916979479579302542542411377881230526141870104953413316950421718797647358635338067464024140251077080640714130625832700177599039919695688356567634709937836014455258952039305264851705298640171270302275234652234887358853782623652415272913630484165151223137780736706272091916430625776033501120893093438255854714979254997102543593331307558829607608352562779821114774117865993614784084931436749188391003063024531485864272590178810855230480793924101430641468097379715565120078758284088877321848443763599672758044029420756569043719886483884112941699132644315934989484726284411167559171007165361628107983930737131665625834762245037212025032081762523544589183862867943566226251182697439604315999879303657962681493761569241476917055234885910990826721401802701464856752333182746854370253327613418782796037906680108320735228176425636067888701912537317102454189763118767703711517891812031204342873223481368381828350207936492337331579095543865373327115278354068862355999271585758029877939757929070871334116372466498111954659922457775139164908564634983983858441801867854143000895368633147870633159884994797329971029318018104210348976269508667762064719169266654580826689206280800828263980816946390026353979375960588753452120186417494107921726361185630069680493762636189898569642933877717457713811816713747479675237829790159960398641962581553090822822258897040970991131267123814857550346046749015028062255341672089307871894948325390184167428574268756225862640352195040531926157529840687993874317458568859502661672226517636411948902277647969412940166472220346989077539174707646561103173910383953236159272952863240069748017515189208468168128474518751183952249525713660803531126406551895354458539411272590810731458017879234644251925773000040911962253960106011750258191832008254018002307791487482976860559592762477156224115128149364131842014673562274158010351391280777250919212748404086626564070513976523447382844882687886029910541092911494798198856089686964732779893711364303180340854608801574912933941984738041275925523129710923345191761678726680758524627580400291289808426241839843423044576340128243662427329927797534480062492896411261242160319495958800326925249946449481319144982949202467298425607403460058335048614840068913511061290219958628674721671122068646427090670796206506771765774780750816230841388114399118527678233130997918472616776169118116633702354622416160237399803467296992933652610893052050331458764438583984006178412554329256385870005940195279540355245082410858992801073145724499259453022919408644154271600483309924493915459344421113448516928517247633570777071651986162599338992264065336631731503160171920380886350004086654586049298336483354495610496767440039866267758375180620964735761427509787045626668807277819904507599973979790739269027437089058912133727816672527039380825912781851974319282158498234095824335454589238334051211060150418823491647532408658420775340124425548670552801951084019559507048520438035417446247661837474542067671268648011950618871639285524217771920348402414578279869819832354495113773788147476304898035471035580382971722679218185823299133582067553935199515322968912710278017310602523114781294512344057586781667395481505101586423438512227281267986088536045722912042501695633637434446606539792816433332103360059962182140729295741625855928221836435338702354606481128990222937726893775759659464834935832859132321048187921539046811813396378487289428183172070585537067716710342477449128900996493984006563634990306732542865728126290174743633518744102048225121167779009699514316374924846680228023884910455144594646129950126865034318217574907443248130165986909742216984366616236209581813266268105789197429290943585483334257262758262019492457499213152613640818047235998698027240948587170337095043081668277097256614151456066812462470861446586607606027188516698899293577041588608230245973452081405222383097648148914921862817621764567971387489351359164623506254070442595425436482455894373519321814408979698517693271946569726372160992522732046180474603728748588498834291712572007302029271810390382097296066956409326965966627668735398247385293358661111066422669432991595611599003541472686518262881756194451603947680244737310476615360997730140029145664596807129745085189507433844765121974776924620080839399643296212777067808776121201197330091002313246783832215305719280921729816716419225167914918783075407731231380729778576579147921919693430830305301244628961049919031598614784344303369687732623701202473109934344363598202912064999518198146514799181678004233071729685962274291318897143670405027481245260915273290293543236374278429834941238428450543138371983678486399313554456109861870230785396580851127270316519651122850913443931018743766611129347309395978493934136113026592552127404474863796040519766496539093190908860559526467722212371519968467490563887167958130489704467927897609969759630867577601858466694370261056666219776894349183929941163485055518193326014288299625822741573244472619920177494357050978332102170256241079279522404565840940153064172795476209277715687245097649756613108368300378547579910434091824857377855415906807535262157399368639884171653951708882819422652260938212317804113131847826383249095704271315263991997193348341006863076534623236742259821157735003229678155667041350622980970209604929908795561676843294780202180181663677062530407514196579255877638432621248005787659238888570654361604215345759059530859887850524937516424069924028655336100737354057170150975204308567059782003281058956397596373366752041980467281959685064067240069283211411200330879287922493008062514891767518087468700323038597667677469514967421765385190739042419275060853127549228629207815808338488629590773256245167322665100877050073322078926696842634267775716015401333336706389669040204267108153787760084271816631582661023896459607405220875418664818760585483217061008845984521039396620831719643594562440385741029004347621120686031581958754748536432868644468876934996200825736197034914151307330441325851834987271851268851425526720773726501118933575927114696029049814149198294985342594125363941418689140446581504577874773612918499871727291760378715589238121451636493826887380828103473694623460900596985783278142932107012672526948808052111494899118794792158400834693459046637218700679414482017415072078905741152678726485820715838012239057323209022835638806257780355467257953468360091778348155983162047174807326524121418757921230260161580329251023592353956047067613801010938732339997652059566158134172984188779482818924875485174466648546418974321293605721506766783325618469499269978525869630127322816616151217809760160274385154417225819664023980792033131780933539144221700043806244525708340143823533150453687442054987077920724664058099667121806691383466176061710877932071282649326798229850502494050895703778770576680870973326905653812530788974535999309628456690004854044959956467423237791965033707080115111758445372338243058367547520721828205751964856429264965026675453844896488141821473839349636454148337836972407274201080576884852436607586554876093961654532375472004398984502826696211131425251392528129765565294847568481420785591454550468198570806704685619573468851922004922503175245411476959322485552890345104774055731498014521202063036107478804191380012906456783923193750104370180984489993840494388806518080095999464987856224006890492408739973186923165647046902516910986704401006679032910707872737042837757399440020931563766233796086719479220335413866128849459886114045820180388643591651967404000041979531273834072775741567217333872136794493853569288302042635206138186623097585682255984023543773960870487447326927997772592347703712899393511304002595766826933985332295511688021027985058203919508018485639287683843508523960720746193246505481998739499582660108077443857687154378332352195856785651741855290455150678685093777822267675548688945665007679492575547637737460259674608286039453546843768760513710904647565110053277908191385557781109023624197040827481077180793224279321452687244119663657451938979805131387224783969127811546311010300234554228278029565793676307604538837307532339027331629431407610985432520768581774573789483728547424028660375068713884813770325046570870696918592271259618097562483699451134460134042727417196201542136286300351974791943719776689057413530325015561714561646024166577315885485188369802784553566160883249647509650346145064193621249894961933028930367543381021003602709543829630173663874732712940686444408846728083674985584679883591149406452051189693921144082592756923481790743153036392907664724225464601983180739576078539747960389068966343752620405305116541582413421597532381041166755624587469080438856292278962157876374910775041080905266563435775857206851683784559422207198276456522913890608635339700412879113501924126110473210745499957844699468378323456777873265144842732356766349560198987034719752724256318530127330969905033422567165646177500900562794240579829830096799039912041125384753605172520673587476136981485758520989886913813017466188743126540008598018979876720763750240671063352160870309917299689525564035988406713792735981127269633289581198122965042221352926777510893550050246281941021254977300947292599218578801575759507610573060296515359744188525960265292019313302522311811829287922389932950804656252566392671200553391317599186110069021485483150135436355358948391699555595855967917635191066895063920213256590096052685522999622771820413658427002229507910158255400758861037855091927349310739689812356614834478966335419714765655739389473788914867199404798880444497388290394577317106528662824192495383864853403928282274560962945665434100368460843405661210468331180865740930480641647287669647054297078748124217848838339218294072117783270746131516905788491794746853171844872567006689047295227234189628313247008092720953202872747500939497327794502288964228527625638238805290256317836586912253232295489585171986045414246298217663113173556149778126126503051251087995896442476521395339860446632976387024314893293559954971544323148630705712901697190101960743673766185021290059596508418159396344805556677217363821092814868831040407775907893930456176408171175353710157482682633194547839938329686482321275022971208661274011174407663736917802241989034511930269312463853512122180563686567136937784820911079754642091253736137552508823446008428885667509119179082967138711956275958127142302963394891776901017832283794269473422305656971408834537175646580525281565723222937792268026216881449103044240648820160452032071300082099903464706728394231922421242021386869028689653549632636774446685354010936830224044665076456139577601013726383941675807177238730089251528381978960031460016774544443103479785863040148503217160081389514314783695113004814979311399533382976145339170698695811094005125272601329388408647544844989527985456480172622609298118692499224637133673352643794553774399160721633563153231524111872815477352957350028739382964624430320800290196855319140901087441429162004181662656943365795924508582134304458798006135005247778458426966627524393450794190734696948706898412003330793190804361527102954348092625336869029979027407519252217138884764170111651300335187011048463690517442709014492900508295131202639842454034834445915349391512393181198224595540615868094471975536070341360966013598300750957447883941146841476163676589143319009690447398062944183445964136793912651290648989779923116800448342193159276630323384165364673495223162681541866084432205144176986378414705378261510055428074981338102326115972321243289121329302589522543297836447186374065035055201766684078571635535306160286908526749475393729551821782632692619072185461488705850605026906922499653339676291493314077935398492180445560390074536959777421761458257539387784207960991046491706240687058772162430578245746338462166932738183262806777196498132972065940056999290323548233762522768332320277615268199983525203729970664715073444192942361347261798354381406888685865524829575280637797706883514896271445817521260671764690558778135040724340566402042512932240895694704182379392722553511678936703259811548051092355953587869923720655760149254108729024446193988910576256015540338067920428758279730851544823206626605876785683539401576970604936351698950008500434914702845790829100734010243032605244209155717100724206269349819960385813819801078169839980811565866020832310835000627651783632486399430610211728668540366164512048882728176471378013482149057252397915577608091632652175273077238057940918342893353265153698839000806694975352366357240179536557495075333404307448499218237199646377775115279676445157847307455123234990769656403158096623739547794681213956382278992741548261500162948121642042372907137413309403575195364911619220527220791677656197845028296441670652200099268496276978805152342159575450635022680317344317170989521266197441614976339699718557496701908138937772587244165691892866675401161233305365939080596435097750315991171311716528179895335503732372156190325208061579949934638127419397464093110895627319719755677612449931829419103873439653724521147112741608978804888400244695590907218627840250630183490694435374780501898992237864525922116995282668052325397521634010211488419348225194785627046695908059971737212433863869386754036303977683896924781517045092826173495690326348641614075155782921386382746149244548060630866368754585091525491855100063885518245723685473549871087837896379685463560259318894852310510924170260506352609297704942198876330033414451587348984392080168498188455435692771232536679170399459159281501003202683995331789061559367563060089185260077209639926971759537831051883391384854886815725008896530078947431106947362009668777008607408496120604123188294497621665862679111658200339594482539344885612847725163576422381934426595013299447456263477720198229733827286883682658176795610474631872494328938646567274581266768267994266318512992862556642700936805916087733666873458184430106233523619025212653208748801903621761835424785332938117504931157143636955749723917846842877988975028441321873924882376303069167538296751352504981739568937809150365210074488524467273949439870302259827871395338068902819896470804029745105943130111055594369462742222405770613626723582793475408741722474282984980442284016772180243476092363630660909678528960666879226238459251299861400791023911948099422460592798998774958489879863743939501657594006806097097187990601154809468547743384621542090065713762712826893141996412291488255376058676283691075771534448593522760009070918859338598672915520943200626995644767929474437239531721137265168632297906988169452862170253171735874293174935989140893329752367622802834991600374570148180687364093491772132326796271572824815530723322802930305499721426936806249383505000815811737548729021468796909391906179067454147466968787575179811095450068048427104522363576735483983537214367335533250072785209239566526467815202470731543784873070233767513713625044370736480938093078138764624239619648620181731211427449656048484739458212363346566249214937984650335498571929675894180247913965776935717961827190407868664156772222888823615331169860646589408119422631809296401985585171307900515275677848497472814940158623668644760075848493561096631680626116269825840354783354202774135432829965654980142809443091223175837591488770578253054796523952892559618692691643408686708326670629029236344660721124946824461979562757911679950934350868132817386708901741238378102922841983399193123388204839571413748431459979130924934995336468109422266407253768654405671688689971731427764181390779389105972986067946868714563034471629117040196605320684122121005956413219976453482497687754501182829501714063385433324459211996657314690268206655663732878539000238354412406430202639396246674484464665806134830108849318041712411407684124907537087612601998404706434468127910530707304613004824067311641496296190040306567614839028283474033312390300849109897150358099541919859702640413056714095746458359842010761276127407214677522132522030595393835436276948337985788772253621137508539116340606569965387135020495459753672860382225131059313630669777849476569193328011651033516551315141190120998369898848205364183071621177844148307530560435674410475156864272614156943804349912075028337520390701170565120269066735745925180702575923194565573209858780281159608260703648997393877601954094827082142222596101163991256714285943908934234771841725266231091538446060366887766609347061856835722805824315406450370654798353539268029137755831075165883303434305703082958894727977996062308382578535763052100849538649478968574826044595993586763715140859522218948922655835455837965075441158372462136481731682423507877434826834124252642390488372346342286983775945297650263022653978532948627823374478692903944176466984315966675084354620329152317698765560922118982062443415285231202476947584032328867582962467888030736222055407791385447241311882101978480362001226379114793975675595763154947962064670833435370804316758495709689596138476466659986832464875686313546419409174643281064275716140682838870075625496342478456502734057786937715477121174754993966631427710334628161457446393798144179469422164051731103946489028848458130062011259001313430305048079367785465746889130611160506108634999095190510819592920290234572096097305386541412523120781302773622724518421906486107059762024381637947541994247808725868034615416474763820496676212373500221792171819722113763541843305252338119597167427755685965677564629307443418400650109640742569511323839797377213828845533142822497455598053793626528091393103718192245643405811192440043361549777383222875416136783984090169553181408945626441139040667755887943588041808575787548864208738189907635351775570681926776717527265181316442961329788027994248174257333004337915421428035118709748427212744001038118591417062606882694500843214622913489156930222273097139552731267674779397975143709144128382935175325910367625361664654380927416757384980223541852199907661225307489402488671901369276901993613256207478808634377543449359903851262863027091964855782655187318256315290080288865927666007178999228197597427313432641357157596734174110904731193439406823768314892186725231349384663708499505010427483390142938684087183651884956365978741030355611438100338643568541382313264823677841187110362328867565761770841513262654449477329536086120008756053225127003804149256263274952527633373837244972965728499722360629703917058424894686321539111637341360339253815073614581521509212565830174734141664303773990230221981163395121080562428318145527418462610252943820934550165261379049433241257936473497304292180507367814263193870853741738393416103821656307839105408121779742569224854861464907994502283801558673046232225479716580677595574512415386667083734648432767728998680839573960109402765790134432951345279596428172464662125038476350386087696063284167474270147477770764045780090550303066497271589479338832038613842291038491352799796166503634426511521167517495234224432365134912596431279831934640706121839182422541301506613657108288579472858481843064680825810321884016861638698534575041487061339667508796777431989168506600249563380944104548540194712270247114801757189457556369377080644659228473659514981759181352436457698791505692268633586269593092566966909032966620770983272309073292329262484613284256529346060690542261744667342267205628372034955782821846543575411178963304384695715226750558100733844597136706297051858339212883217856077138027898786081380476814349955013657164856779510284646740107581256741799094334513469188544108038221735598296116751593242173573138760316281292311051039862656622523137910896995723011272293072587946345382040619286791585245390334175187911476945895317128012944785214785892497595806856131324224820124795413991914254653921573508474983559425931609825623165323671305646193858380950917493815986696816332597728454720979146085166205268910862023378733480185972025621426638278183535645720509445171042416545437828551912061069846999113199265483591697191540656106907096462629241097923345095658518754037444543134955692007401832728373294317031365477608569413741533291669352241201801507084627971114524920155184522348351123689730674774815805561000380009476730535936599080893478901324870725800654668669159283194263920772570443099035551188061028781368907521382784246834324310281875890796658275737180191077816298417584189327834096808260948611762961825180288223036745504384411735529720997908388391594821194125921166347321069692987285057440154608590657104067632472921715227810216919123811430443044027373370551773032399946115260821409271262526897810299340019426676975602267755221936273649067903962098042407428433355440216275891017100274445245805448266177390989795618679122724032174582505703879219315166835935047253634622901522169567402181382964553613328819546494068541216210637193096067931982455499736620378453375608358333084105300244930502109897077698932728051590774589027893406205526596476600203325177129013239040876809302912252475476384634521577868405536063853159698955970422930220083509013185706084402574423093245390382757871455046564849724761614568844991940969214229161379454039382265469357220690034454494285974962078053067345754548328766348667607149541229333481489655997552005020740966101228483781375977822346635848984266353598372496191030752335419605186989734451119980104584201937041507986296723347431155720800767304400896956823863216375519034054454560007298968041088887688809152050018400085353732723152080336229920359361782047770613687929540393007890792537905740225809364313797821487014243301940604992033164908372164828237165082016270438776788541322354911194953236443780110936878248085364225723207620451792774787333809845778520807291792641077296438410054328261929753393731256783005177372274840288962606450519833126666899752062663131389606527985588429929962716321219795390228502687020692128168377786338157441394987565825009925528436188879555660375205049375816954674333166830625217954233699590548837349619141038939378167413225450145479620269534141897104177317543889113393154241766712021410282866996535016607447985946583361753230516011936466241606094758053797749165958314562439760211974519728395169222242841146948972327106094401249138813809301412717294659191972337383750261113575561265042808923950182156741136811757540139331096891560217114157952116048415913662174635432245353655705213212368429868440849493146138217706729697887212260410716851423724856260548820615096327444953045029408711731933282280487107043447142793932574779929972302334499477151529944619373024363804259651384887353106133106845593345175873115098485286936467767358075751966195129890832938738241601235253348796572528451164792099235864917418355074160302836079806065449114992421484197932861949723283585666353383024710582166030394564747716095391276342793844032345406414534949493578694374232886780557973513721580722670411600037149799460924967501483959082572108772576342210664296003802123875257817771584270896505943485750007710779153577615551667045414060064136740053078538203247021359505203158200923543881241303993910493656453097358185757472249590113740725933018766635740500473800559484756626456949352579903684403638460990182602166073600382689618081779031923708311432164204756431933138506186899261747457936517450398185243475155699153488123136476971118071043094166716452724249405157170014931639769820052965219929145598681688322747222168386619657959338310770005925943884154791289616786556686413586527362423009867260902074391848627345939990794065272458864372170180288312818392920135080008892639775849928199799910165180378479348058129418434478407175664127843361664622860508101763096857260787897691938532670163047394425508258110954847816456997458554256965418269328578130580033693331053780454475458578079677518207053170393024871477119678253990142304689979244362989229008239876252655799023038799590325453932581210898323513708660827607016637589706464663951722597928856977149680551661399347613121848635441664077576692181968809733027388005354241354042880364258590281999350334616758137690642621594090719446368194527846832501847015769662323341090201045201914116858222180183358694789307346913912074872769160974715749170387360614804448583400556316729688697225606449133590643137761951618178894644004795730566031999148993407292792331295450313636382694626247021913116775569265851760261398047540696513950619991095596990485703734677930380528030119390629442367157178390234521714651350005103377557537166547354283653009364223334624656452393426859064873359150996727505761452033601746293898904375983206922047434583202185297337381748729516231912384414256709676700274076265315094728813549837129791565377585318910226748769151974547468450137529683283981690494784017479987759700974686853399210375501525062833689278240997063974225099589412097748066644935411806773728338804169998617387334166017587149668664923563722516136583478682911975020165637517800942871838029095721036304211183106165179169474300631540027587649890723526654993598071409641432040740753595559114915258228456320502300942952942402287283896728610174380920411859384092531068866398095632691430786726202799426459891139044423213569330689259147507379768092873670299962446420748633088664674110656357550785171065166744068143999468160323433600435127097221056253088936025905561957844868511304911580772196077633668578818781642956548067097269193341112693728998083110902060798546692094522469570678462969966779600473425013656755415929197708289842368056796520690214168391522162887470945176807460658869191262002597733450621377397181581424069541177554876327574686059499617397710934258323336381903365934686533797423945433855178319678520089695600016405157231423247591712092000329395217195840780586695744260453280838753157237271716484222725803787322574951644826470879549661493703514943704377694764308800004904321626523042935771931481895730371195512521163174135126570759775013187885482342379196212258285786212530145516905392079216301925577920054972769751847098558551531163909771176921418999989443512542791065753221735139525703492529992813088226355592643671014669595389092869784320634793782950497800629095995710061563869594356343529026296849381405683165677970810845660251165086116467977831083086624118685965756211991726401489517086344207801874291305139110236910005455008762128956062954148510196461510138441159915678331022866939376052052246100374451389814962291888171390032455867741567032167975721379631832375548350307310445775169969821514390003936043790594966913865628744619760039452074156447699583538524036332737193387654357815935383549284651161095375130389408803936869590782030871967002325791865835416456531159566088226557997498223233351322263599030775280621712357340796704116940790738823399219335500392958496186222268592617209826145051503905728073562042394297455729207405937421872605098950062907945821967583636601414392311750187074780408458641060469798943416823455696018470501178987144850409607026712354120473142788257473965038059230957087686136047275318372078163171103034114729199973426258916943111684481185005032594269841994266785054154606421111982109768673121359418618177009325903977205531536705807479262492154920021210189452246810876300065017043213096692771235482582880174968279777535183682644468428079613030280708811762707059364738150850750534032766301239271861941013446230527083512652937202169624451630319864955927456189043688244123963323501306251280548710734797828491594854855863458263067076488894261723112568648316310981363737681289562791617489073297431866604407662624960449133095386399188144456745367996605838372775634316875119803710921623426000381671372601174673270864500685019170196057479442400408775994706612296366735209237661953645274173155283260263256315401732589167052578633514559478744273687867590617889130729646948135521599884114517898816864851570288414144769449649351605844563812609279901325762429048785995286138304600193519774402882967387529924082248373499154447697356257367823639260684048319243576663934149527751288930603304590566487477876254746261106753276495015314550211608998206392085056470926298924707730701622773579967170689283124327480600782803132481705594209073252234568445431724976019944366428657719067417082239769041012644761788197429040012876634236695366045483478634878466630034860568058885243486507241766842041834996711885789399895434067110811739922713588059543612985491297343297006965002340816357344847257913329316365585880616902070350437660106279941638127114200108474735325266069603929036477745460426896074746650723471495488041035364998811389916239910415075965534378120645247634226525748259098281736588815333507305282312068641732981857012781941976143945659086479121713663669425002702773175947583992796575269223475015948288089259116103838258052489047062115106819756211473435536927622622566439854845972233626278998470261151120983588649047840707632875352459961762857001748038876051449888901017121551434329536318890820272397739335880616896356615677221535455958896325382140002684421453039574315452830804859392769899124702413384015251484377182916948126175401814189189197163491192984722212860337475952696754453714980382561053153356736162690693496162028178901582149865136730925296460023225924656152034745832342532357054844495818038958573922097478152355407673881128322949305709076172856164722131700017940002267347774413487602693765678265510617364721338664600945608302566058171711537815447833344656382318844352947037481518528984357856155891148195815347581625668201262723333668527738807578395123278192665022747517317184763509019981891972215228226459217949716190624531311998355154307739874977052198966980388850421993681678603060324091345992122651455096275615673817617443556734576531716229129807603288392484781982423869409846122448408521013752142991698303643815337740033421288017107761963677830947085547735789180334192880794088486352770522775249790056164411995398987077526832211115293107935284218684491114174992458838835650489322645407957607773316010810941481220828350959930402061885467329057728709776171468796560951868223712267711075369881478543799200451216346499672285153015546517773503156983399940417503290715658463736753838387488117816762871273469546557976154880774524262454999490942478422911600246898555157927295635344838046710351827454423481562865576386499451792119059699134252617201418697314421109126374526194198539778285448584344550140719810251270790035559408550665956041376913913110963723412416440864940800689325894175718999644303292721415306499650183031064909003685140507469862980729502518302123556728827433343780396140076975144939242261145802512413515956157590918646171180403696447020529542091616030218691750514354355364467049758323213724873890646676214413885041893681525702558519102094734490308215123624775014702813392726605597068210669961466246808296399881743597006935743828371062821251919147948479271523814333358345131319283313467352015903231099015458133427187543262664079081219110081874462911797697278671301764463027515671571844962965080439385784065854590254343981369330901602833091316549907062668424219231072693626368461053735676004961517658110697844907840144234655803453755515746999964106613965837955590535341817799988528334882333241523660089004340709234751257446298900691202598897710238732286300202378288993544161644822760542321101150265941871154523588184044097483778044495646294114168590787692618312564972355322301413274850606839540357630960629040762687613835167794085999143369762483853069841316076555488968873089429701960482797806537948097378043015942845682779637590228712223011860567439990949593432012432022318534764793582065290421139843411911093524053192226884358577051860740563076005929413401912064214938525644896355015938020835040416641023895912921939195000370292911871899506488615859621953056745092312331047081436903505152483459609649860902346660961854508793831772688345703178365912162533751094194070550606532640894831909621435615756628248171951165435122945016704650661212387950186731556360731725317295403807375773640224107552591022661831895741083039085771424422586736696247685980950516915821931380320231910779825904648324826404069371938233592358171103386724975187801457229853037724072219613302084847732203872086087325570307202001740173982282292602615765388014567951643288116464115826017745332680022550723994614026049112645345387778266639351893435598875726084896816949282620403113222414005470951488062390732280127750433318674596291616886771749763936058606102577375737430313879361985324898865369704947692595541026030183452035084605654793624845558132002031914838034452950172045311112510247628244027610760152527675289969682143498386071384610411356255758768243779917030178692115113227822445473511588117166641973614698905392870750237972005701710801864894325578119194250322790314523800307932638957104993145149154266369819238652673172572078112385753798295950876386578188616846436304830118630513010299077256530028575768512771944924072739781859484856635061270311967040828711906227016148186083124822872163060604965800525980106642808063996079874790710315744879722277685349418863190475625685235359508651399822430888237354126521050781493559427632896921967999253783481998796238060574668140734302519066102081028031000151895981595266616541166854147354916901749069031262529422696920948007453976972949573899677660330744467009961708691894635416275512060728671401481475443608336833659588526493148307262012370659485979702108766982782165232473783915916332152274091257003159365572394583914347458879077688849955313231936524554407571997535178500696076840657115131200959435264624084094225176017124862372901494449696553385431054634832946746170074258385935799140035689277745411463698896461200940707915108436125346343531371985784200138853851181765824761133302750297906389361876797952868491668089167711136640562329295143067616144553766534141887378417822767431697943552580126390486863094420361009009292405546108419648298810235398503161124936278730512114200546274446364010992122271623271602033584453646385246660098787426298829156859401938537877172384404714583032883809459080996082722070521509881966068773166193210015855003451762363725287250667112713874793665167465038713068600278345524174318895324203151213536585386434161856764497776996447740496433034939330186998776162161641810920437026377640398299684146341730583072171665300866083456460296268357576023726215148059107139442601120834564029354154399093073409445226900124938049799889619218719578072801206257713761286404593120806016807298018455733631261925331367413626804068739333485696116519224326146698051600494244972246149428795137321013303800127169035870737786610529662346680698440953159871247407557006012109032572132678208915846199703441944867941254923354501021896566408444223851298948678410911104184578475418032588340854150983509540198057442796409882667086135866659026428965810491315021358259437021048876089067917947693982727963200389255986859030434390919861482590416401910149673872559686225058233742145599473321400057339329816529618729942168952953689991520337156246496945845829142278794941115398323474609309851645393119268598755826295299934349575534909105162666199689260177963830317281899855880541035578441947385072777725126960977968584772549049607275353194055159643859363940735273300254113012302420516244129126138965689495053760551469443452846424616228460766844847183325248045513490053620693649725836210017024079519220979431132800184131452633794558103284077615099756675115035671775728193455917929347588856274488850677200869918477076982795162779588958503291643300578789107005848045820409989911186108988709698103510855281443939067483577175326297894879912026209981949645356923146444044927907453329509546742588235972640981406194172713878235760615746588226943569365762100794130693938718320320403254832443666644331826428154055005393799140208846876070991245302230604189371130465676374717329398883219322055628792917130428676590573543960427398503288136343346199248064670426425584678740303447222840794886678579337502283452329199550924578695604078635040546372812907569063607609485076572046131893694177955747685260003390043389199114126321301841258000229885121925624203367751467109220741880118458728406034043497440669190907097683833567796319909599724021503299889120503269916038822050787740348885679903210592139649376939045054453872447483698441748106722302642444037542177023509763456744598926963408395032883790198098764018241366437945649331844345919967501496009303601973929009198754726525409965060027302205020070410481249016257457022530221836374479968456924016983795257899130453718481034110734050953500269845094932462799357861616102155671100985917398263342380673306771074480463555129829660604932035099664007835292825652886645014680684614236946347595284622961730425731823620565550435113815663504538566584285954755560672941352453509124410696286627761602542830408848718140304739307227141348190566383301166127157290761467360662988008479358939945313567417859291938380371402085773232355962124314769555908366974693923194579661594122995074730812235801581893460444725677569013450306532680327543955506124883858219978052772088488599365845063984897193900394126258766245388945590132378129418935356209647316927244723375033708608632951061666091851015786006393239411934088967658136370686448744922789929711081745203093890075649698268970798988136754136745431476434598029649527753079889799223409240105032496704979843545566853343199597376557518697151736285455611699527360573402948619968374024517015188222017339402990820084308314501138133376015023411680902374728550743080838963196448071816653819013122414905394209794125917970983356227523842624114518424169630603217259178396500454991151559801159947387469547832380833449827503349385491505760109289937759580446819247306759453955224007174785367216499188112071701981061135108740049184481705756492266715125249291358936763869088542377050693137966337051601622291676639014580716504340794425230536772633875448404827613212954395295573759073759865346971118692829650080350014399811852907718327026869313498667559854636435937690748478163047040836610948302455074804799512551407377839602271992276001321427246257454722531963716930350152106712993624569654901708222719434084981808936683107394390972329993045598945068477564778288317456631293007232983148021067442147290568129384705836130183425424545219775468144198247343933103768388850369769337618431736783257389115540810664858057200632838939470381728568398899805506859835832830923934824437393888214576225915773823690573918841706349964179783831198341800501401288482958890669050083949950636364399393909695970445041790650359816984267931043592489732247856096458243701147323605505539847432913506693369435732645888771543308586190837700884625031054252970586283995405926837001860684337919910259767572729396217556879095230029847914315674611386498178015916339903932777979538219755591348125340417287139553547111543661645039099843770134713475309216248905297646138766760393456111035556055888848064162798254959575375767008162457098627944309158595212984296345098785002203216667403230590724370444582602808784514562387014112988324510032300519369458049443501646326650676476346294583103242197529822747929380917051098218949659051910795155942164609248929274299428251972467965864201107380107651923723995928541486140266642788267659943758542998337944304713093241046773003830634798067213797453473722157508716490766188662412934077477584441254338894543785876179584152994767618299241833868658163767622331298567031189547622879217214546629315467585595439957704483532454843400285850424925917352648555176554485265098975044408667144393323781123242186670748426124879338399975276499585681421791358575446916009631798288160018167180833639365551293389108749051845880086905983322636812119504286132872132725814015523954914402294386784585634965978503048611967751492967766659947929427225431347961676192856162568987158722480059248684149310048652318004127773415890319291926948042741032844742491133796227821735264431105898313672489717451265685096103843473759229533339073202697036977281703725004658973407104540593038090189242183393085370294780219076256389467176711104498652479020701539467763167550977463096556844780558651602423503576330155936018121287676198564594363614004327272812065841979706461996946599132474544525812782925939863574216892436986442273557764304911386877375112668884838027859938175125409814057047152061127767936241993392062659656565913992212339025695741313044643414927253952806001030006365333339234190685448007597111977570856198414620183198570774206483869266698140755317832802260858202776558182613983058941366882902676529013036100196987778242141836274011073287909994188390799703573323882386877453946392631814053763488850610277672770097117173958755438553339317279503182918802699973007767168629894350651102877044193460437856868205068956945319235699140795925227543456418658408842048167736476871605254786139870873588142881734409319543278304684811729250197917120477786602416542452241456113771047904919241919227236385446672365303597396403000816502528235638518417076788847470336079573511850472019495352453246745371132666812176230858243576194315008364985737242825221923432738480591320818156467166891156978647016060009538746733009151363276267081364291369674772902268886305818603244257633031709035190127480093318562813921775913336895383810376956503538879101044517392001637793763039152454801553159751455037051897660596497250100092365801672941522797434866941006318863504090500824299540968010793297030287114309010625078686006634224996430234690249489450992874453211838643131906971843906958052846445580653278282405602564680036051803906224653783966166134163668859962387367885272425319885026755351210645616140983483128730116512868831827387876858560212550769352353608309047391164163633825722650056439215355244801259421473076655654857495605407116944331468328942327079112920662240773556252615466727196398161350801948500770605879943042355407986745444463573624632508669902647716716156830260456469528280655077988280290929800675628162887607452094125977215914574035714549903893225785114289106318074531492044328205066510743058907284210400402971484418156286455537052576408429710833184777401688092288614703982369470070999402666895165781813889729278617826490089455048099754081252100668394150189616686183143157290345618838733596146413219968196245098396804761729415645561345562737889276367500576987224537637845367804399139725978981139270925309816554232878607882000351304738117449655495634736367489389773072079629124446074862247912491540302147858807782958167927900645551097124864099099219637052007184791587001462046616774397353409083765515193139908154907467809026619278853386838345830128211205160086730649503612475847414220786434713369135099403612569162691246197356614077066572522644618381174854729010759094252661887862899302021994527119128225616830422054140351165922230762947034653133725117416067564701776192567328090366669594692828289447043743724451724929500247323357250773493394957713652139537904510195037010839928639101139543767251348249858811660677055530125095612632417393672013530602739606778322039083602383698101995055445928545488912409215499234508557134792266157543920028059535865257096754768795449158518204455076817453259045371887097082707093205706942453072927995131713157283051124814158223779980310740848566521581599443837360241773626689143352191091950334668829161836361736375679853276597748214441336967943736401651647512988469948732941580484182680584021914215643212224616800171523246997798159554667810994363605450555440409238125630912862079968910593291462023691894876647902926299224461604713767908820833178494634467247899278097219631555188328499399676180222695788906658079353625974731855896865943044550102754078970972738063323617973272922419987488037575548454781210454267696076983809114046467444426820488476149756169062785287152345133209913210574800462424034199502183938682484347508321482496336304715282189182720836839556843568611833388832200881009717226900435091095293476947728105521941776736168232849604421697063747237024471217643258880693708721060825456304311524692480376385350878509012186876647682275524370912634282128102210129118518867500747226655970608755205591840420314188259060610299593691920213297717017894553542824936714334557090936286623733828303260746883778530057344567840473045628755827978288261802149336234730665915068859761934263293906850809883947253151408263428469867666452458458738241483070652134227978739542951034473887129663813637108359579392603602124143668353432968067457427632396016663316715266266621236357206448721569982905514433334383042000726472651444939167583138424551996956121505563119220887589185539269021271390001675605813291453119940866776542796367489495997901835153934220731306045247380309103093068927369345398472384064962691696158938851925197893378512324424309377234527483943154099178093172889515477570881130166420833960705846407766610625450662448716467938743600676702718012809491172381897958704711200866978727293625017411345793536162991166728148523599295752650418082354917383944281162848053047615639971833659132825638809141871399073922934147945697038383292563692747785483937585859036402098249477819922030503829005578512784209029961665893387383922067448909890187521854521164011046890424512672291087385109594229265786733447299253690970435822468795820911600645732245017241403545456143304216490474014247576378784674279719421535400829362559957151788305384198102069797743923466367864890306535790400230829035021111183978263100846528818018043283954881071555400978507140049641344697973020614322011158136569636440979047073670325671144763989234583236531701461229979600615138730129523954849899798024475202210528387073666188862322109012649843770977242313609715010773134238873008854446766264169594364355389178456932796427055858034317037303818742964656495949723043520588689971634077976218536275208788022335341949172138618882775544888478878557057748885567852440940106726462158985244854707349560090369895235422131065691714192959317983424000347568966613992438332886912455691481118597278122430874146840566302571141943941404615255572478149204163561321219702082264353458576039540179200588884547828876136393575250217099773794557900684375885494058854343909162136319542916450169547338494750515471242489232414951357378432982039026725652410218195451920447272758694858075490082647733118831311702965613205015477048873692355358276049200589738729115022610205768864359306200610934325026796079616063468066522664954404181334458723031288001713092455392896170643541788744474831237667655724225499838821723284982175704940109817901204749770066633732590728250862244352395941475066629791741405029497401693817154468705747755601647013574052539621878188148540845662078974886606250379171374017145851442954999453387224626377362031969198264822568862952791993524664476247283860084171363179988456993519618094926705987033079543616341238548254567521688442994333753508097085720895704119910833522881687418516373185107157170212839819728664079113417347936834953974564826000738208025383675409741505246270442670372372065539763617873103176797696146843316977661656829912413966371454683194015557235840848648553157828335599771320198255140495209761997326085958981016831549868107984897555879533047074328124722026682498561968245366244431834063538217007552127582488939156695385135503611452711036145719423980520416176374487648658553690919571736892276631299300297869294265868993616434391563778236267840705431640097194053591416816719708487996958743232871596278809105209396068332241387380373270349102129102094370240210380634105916473672610735512260241407566790571057785983158320554293849833350693902848711936680736739480937182070331162285494760519967818028097306903193962136494827827179361672227073812757551355220797702481516912460732695446756940775035145771959019755795853407011065450359460281727160312579270092587668166559334040172366491845826934234774354828782402124882278277219826326700242065984987388893648452491058331961489640574690468143027671755673889157092073445871100894851240876961938538409433497495716670300226593481612289171134831709368452897814455670611879901731208952562930829277101863193074118727119959567242182377980713726648137253640393393207882357204360288516166439663235901180935326669566456716430522232930740305789075081612832723069785443148471395523125658317423966504396577907199282254422320688648273845553561064778478900412074055447520360321881809764907976178773365518183295941338243895404232989969263307649838422107806498082399365452169735091952898519770765242019854578358932145112186772160242991001315110384409562261272633484283482893832027217055289364322311196769488091264643791432402997060447361586687576893243868752872314722069381286080427013126955132734271315239087374912130031048215526263738014285218798813642213223652768389988653270901677978431082739394630839060249958324089002523616211044620445571145393128211261737319371628581714712061686877491610506068835999041500918578327239860317289328754138107325693322473684375567683024754523876094268079984601510163497380777024716563548961543380502965915979402524799317989761885191731247304439912982675006348410851740930916489568106427658061053646186010941933622331418770613205881268952689092428249291657120565652036711136126941418714391008904551144814005404777349896436235653515435614132393599149487422380631831477651622359966007045171923797246404650704121011409223885959161071109506677829751895142810209021793857188213845974404629232789927280008688299071164442146887830803835813426524855614793124158875754413964411048715940361102879208715078388241656614296221999499753934299674018255503843147931379031020183920693369304669193576732667512355800047259438889210344823392876213547595740895621182715947815562956365136445787630674754570661888287629237048986961922412569612212887256683263577483582115301061965716254107569447706138576487102545692114741843025382840013657970765242298572563819531565042721164580228422896243957192803884437109016924029479767548754156906652921402280174661800332131896791457058456759050654938518771911446615967708967224442268879099463079022901099882185309505712250137694287166752633211173124166362435774624557281489819399854196417715617032851123744415471145148531981559960608616647830768342370600223772178873053641488830145363503088529591433033840181997936635271106101597050153649658957158761850892688414753284706336632019315348920887172637621980151350842016606135939796612450914497561331967154745753677236973806601911045509481837996255743570932972727720569189872100902857880496550438560711399679556843130635987490096481280825833067314029974079333922719583502002304378762976855016988661332532805136134929298618310588836222357677903040651360474616857499055324682058215212686185311987702530192087176167588075528211725229273212519269309965905334291579575745528451875415060016715956144337483547932142548678026149060753200331037343951163247368857794774631512546135509668040751123715258555848011489974777285929824982904642299576543944176535078611934706098436568355175047343976545283241184742150522318573413648536705658634677314386259748079761448174329880729074047949488879034380485791031505704607336597880157556953164059241230063183177166120322643057792978292489107259136121689216433096676041988478151204899886553439960105317414650453125370121316505468450179427033204117278384304700507457203421548466472894046770449074722367105055154569057824890083929368572192250289666360522393163899169299462788479991958210620725693522089533083356388182355259936421704062721593426027072029977344910725149393112969006594266090094086021486838738520793171937992444035294007088895069174972261169876281824968965290426841689861769961708282605902410554465864543835730915858528917320710194784246563646287082406218941615987236716554418691661965535612186387296815924712922169471732340658488686167077226309494397068627627996847564306540816897992420794967197073159990229373068898429868485348789868676654659101004206913993096916671659842052486281103809429636831274727475972745188619656765588540012080957966248712793995162004206951572508203359918627020383906733447323746568886775449993992524467796338476757944578309592943388030739308879605055418932596452116196897316919535094197301969716200922006955040631307298708681325483242730688651253717005279425263088022635865352933653458816650127905367552832355656156466582141843573589940880323790359750312038786148757447379589698035343598926421391072866107908279186145404416298636481018714807181596393294989296622381556501618054615045580608100238351028949627344819730164733651759706789296535409757547627988593941843583815661429387613154215436618810571615124882470257905252051070861068974814791642574263293213672242731044170814756997723219934689543795822886614445638081427365545861119303176061404509530247670920094360622919097955522878146469442423547099204934016341946002237070687491024784685553542909899667283298417006721012437822517131358001060369799670097783896055467971927722404616108584998617702132127401610006163586824477222339820163242321171826034413703926978849203847924931422388268168735837700606223265906304015219830995270435421128326063868682705338801352069820721083753848630394676419314067850277802610964009506096078580431663077646434080326676018658227684843221415239557220547269081825269609381997812084883475259264009908464794115276608606269779427500733759339918888456391266697483205006208026470851537374197277945367579850422591713187710578811964781669768910458104432599455973260984710290845029754483905878753837585459117425329640481887103305321203224100308939142968411852367851348813201081896100329898625374166460354329995583332857816525585320836477848056589381301831385859734573466613610272938892075743150304680189406331165303033581733288448952383054590435110835355837558082709382093965737812495062622993687406055516934989129682622723132196579329505326967790403429826007767034268056848534474936117588951876982593523525161613603261297222158692541315138228266313130703201499680418254625777363348927882619902386330554545647417886083890778084081522750426369035175939494809985476359720674896375712520370339799210788341951391750369743943304722724089677152563476130156099739173868715352261711404947122778062859767663664409741698023381475612395861050670977448980424477107042827560214967358949291445862110147244141734653388382773402059341176239928171078087407592178559608708961481861463638988274892205288534499930977105496302301074364545344137586688872261883886904072772133010259565788778160264598155351548842329486940009946489031409141771143451348946435534024166972839293282640795928255851532019886980684023917301717703947538912247699993911438544874174372599552262153457671196690614217474211907247642995006271442103891922189851871284060955058384662760202139144727356173852746445887364324353643492097547720556209940225687448223522504720439133203530990537127465897200438435184742420838556977032813774889065981263788308716038589935567010215542666738468358795407712003045102125853347775951663793938665943016071174815658305996646299870259364889349714601342128425606458806830427133498190456834322045771492552157354034785334138427516021188254123292450742573415091135284859689999275492145143119922700406577838179660508856982875633447089955158896185608715070623523037439544638017206779549824080029570016663897109395335248405049664517732819661163607683522472531736023347075359797197533518536488047326119695162204603907040832728650999165878157545264864257186262819580588742603938619453694733164333484386030211358947928545471440963137891287992942952620726678607776735175151798662761030051263963428322626551908066231409456680558327295868341797403394506528497446312195235465977210067174452604810511712926198047558131963381681443090814843907687805295943687573848106589436846346970296467931442300728979539862165323990564005171746618707408572839971955735672588446312473399812791223778548941385313570937673031702426344435052365474487336523897180959200559813750629325707403823058594046179164932621941288554140719638892674251839969486552837879591549041110785502885299903358906562534370415242391800420626412356013139374232821561978756570890208300424534116830753253591493921328498479491585548701289034548389338693288967582836288726983655895530498993766421253879820886010115224721842242323279969665146422488788686140885379690308377910292950342325630338044651494971795788272597178803348102337980507583737273013122812011608152989169385643868242706125641180968933044811834867811829943630755640581069369222129100737902016556356612692249916676131090770803436056300681344810551386780704063868093388310454502923237836648250007313906427067076428813857462284844206825432570930824013067976355328588515458177524589568650201612538871709268094685270418951089487890654362176357283347165787424990048080713893629414124926368626253030640091856478290076135307234655803251933280889775647359950400979114440961042249163310250669402418259257983696212454333471232378474806427167687077026401234054066780945321096556520992509104234574335313470094285407787799932180971277072930418845744982577459533193190933408568946698749686412779166522385800554648886523464142376912861593402313082217153199680738389794281551247623187696324657467504791706606529506825222497548493288187423515088938952538203720440156534559879518498998015966328872458174823309513644231098318751652186789139723017034554639669724478806712970045174593907303326940602895734540821730112832349077209559291025824780551928245604288682904428747607282927402354507863949365888755267765869349364141143003868203742373055046952266178412546579782338763330443713354677873116211987830065000150534943057193042043631108605961152680643008651745308107434935912326895923156428496233400921994151672493640786176269162314727888451217934317237685266256288353229254508088595958861156566471192735716309215737299918447902505371023016616021892192873054392757054736261174564557846606989044986249542451560942801115538878869040954380450659341928576994001078177603802916733040952250365145578955073640903135717893982008753845785411081954210190596832972145850207132219775015522944391751435780369167094013819498328028693853600688893321425204222276778563806509951863611845898421631876690523596124802764859611677195103287562644112592083799903081085016358190742576589372304138438215955804302020849905875977159202302580994644920319906242422092802147135000191775501969210528498466155096262436258449706339221266662260166094043233049073238863461122173657886012144345396940197041935348665306253857860314402499249678544840757256512827271586082608412538651294860197120313039901544651334744932784043915010013483752240202250627675539717665968043267979761787231084858483987374592705492341810546909364392104651532482319238583205263970723355176613989061263773182550111968839428047138666206737233482027922333922011205272236303248586608391407249363909231560989696195313611049850075440741269392876671864984671158420182720742843285121485206910030538251293684012218195044811116722446990991849819525283044924703300871714600058283606650157527310834585327189769354467451014089414980115715545854455808977956960335383521536896188647013584944978178216431597323879892272698642734651441884614343919226412245040446031302995808462105307530411752429985164968437179047343997535245140675463637205831984852155285021566851361253089727589418448027409308638857622922556143546068969336803907795927069410049537151609750239847180740826784302199520159347639707064472158026447053186151074957583298235541643204911065663804943138526661799079529103719922619177880367936829946290771415362242404992614986578979934480448713209166983470737160964427404590437799998958085748226075917110490187705957763456165598597140764529393876326854199336626047311633503918927394188221188898743573246019840174440548677237184950714815922898558695783492745987196456672633729687272469188996113925374193173657385493150512357249267724857360328963100306614837006236442442355424062122200181003084867932846216672611704858813440721394230021873572549126604716198592869600426739617189094154147014165904523237899528989707283124788208745576770000209532719350487150787934512065803070050683492525744833998383837436683369230375254190213449002237189107498239713453513080403126706626843885898020718666744307271524103411440586909371011157204727421707550692105704268594751219860621368267968564652113877893887385389560240365258276288792870774958779499629132159450104112570278529256772706180810350246516328129146822708213919555036215383387935290945440424872053336179352563970914099690651515685297918248552333620676908518069818679445873044839842702693614053735368557371679804716680241581799710524871916435392738049353940062734805188126818802696311268484141192549469227788675871610010001423283797011529009094927310977943937028011081985050063276232896924699109686179348207443733671036672741227945558586865767671950699854501955341533059732355090033254045576112371660726943455625588551600743914720607266696895140783476880688070957151970581825490317948783401230205520299768937705331956308398239897849019951253569176404015251355307260242695002371050557866653469392812369346578948337329931475393211625110386249620473113899018502173819906898209251475220563820065306894184467586186942531830185411871870563521468246383203778751033306057012434395007117452138713925293186539362804420446604287072571193387787026279124376270983713419936565546638142714235980831726763119349407728093685011826388596705946877966689190803557003475762831604774526539743752385326390553768471761601342385665724349908238643887614470397360196394495122585129565749771983253170639974787878367824423455304690152297272279429807740401356190563948943544407630093433307378814713978534478538773499334575505078482395716668466508245312722705597983258554020764096940882782271978879967260482574718724637624522096968060109776927249658341082540531959895089724212076649051196419714997872017481617155482330888498560655186206741313162531629419955285711867827312530085196570427621351498172973834618067892644000024624713018232428635702089811886773883401775184094076395310656859786351747589742710889534075165973297360745222253507917482027055876751668209341691631438936756443053550440301394377654096943405911327152860358478095045129298938568159337379435631537875586034922209612781435614371259604227795526437762672241875425614951974511598884036473753058730811480519262726055750920137293132740955133757247145007777016265825653949988500526689542777083067799494488814823573672955014356503316476251517830445222960412932370100781508407763942627726093096125170465799690393487738984214107912705365704002816431161973215069235116379562928307571066308822581622414851758302502887275849865304260595993018155225919089865251549005120730264874834008377590485460868073898105342501011782236296301525086609318157969583410818660347940240688923653200121987768199828778844859172453705907565930208786272051236833132443661250931803854723538241456771821421841999469562793631404942215340248344698232474707026131897801312960015965119951980062722034106268176430186981127786020687720189613083486273250443687174031885433554329022659580742885756215870894802221602561533315233417643708745367910148494149456134707970077002130701671507361724543660240795375537187278944841477372897100491176827851069925520248610387769475421682795443119111652508102714442777002099500101092308255486310099371529497291646015251624715716234578487300302533448198568976497225920747058846857134562551254819941674047340790325215946036551291766002919696144357012146413361307751171595206821830582009623038738942369499614020233286333489221985756033324158912888170867916710478727222423201287233038403597343649520000982147254827055897618123668476446468270681696680599307007086071132440995169701259096063304151115433120623760444153520836923284279048915974886938992998461851728566184892713458839786282717743895551132860677500269206238347688034092400015110707197102745886169425061039862945508648129578503488336091220513614523376384326813183961485351290693136951004963533949855719596506221924724619407907092336974295485187748150916664106083055812630573419832016511988832264623642111123675015164900040679230928794693387024580847296774586074079118395836549782693168424328320162238849391092736475762756762141460076462128875777866992851889993364009695464535632456312470120085255747109852291870972245005671588394447830088505332937694974462122129876241019439700030998259007001682157967354934994229300789396780305547154202356915299639597109308944204290236022148590739247343929322614277257543207163368068747548233615260906477492796172409240832060942692263331174757839139485221732966500158512548713140785522005749500104178333645908301687326427631633969157321598225979849015619293486300471852249556779930445913218877039361857795374157401815546845088984544197801773796183571126802861433240063236068798735666465084053478940532506268385353296443155109221700346857182034947976038782783840605084607887031084214143303090911453481009983069306379677011821201916150530699522915249735452406576168143502388745003355777209002310732677451867042985150106895693341257719578574987904694892163551851727017388007998744364745504162568583716416271243860655279928594932217454984845751174458011333245987184837000975234582858554718385541703015990529636498533251500791833624709329410275526545047613389466200181099415352614646725487134714318214033471367738530620522319838878422796671405963830544312104210586681305729660140493853702132524956570771751625034571584367062116991104918258394723258687851103176223975897637071595007112932744768095919504981529768596478670098024070239794717514907156149663678060698794492143197189100891078555773940602337284792070045800820059808208158324976598706821596416160840763738713897670038046321288386584256468393001414863852812953095294046595459985708988488195528314649299387710915032811483947021299934094172416798116348779436278752389604050575194079787483053499506807815376628733773232255338924752294406607560125966014225695601048719843887557909361307256311267143518009155873088587601678681998217666400682391385517573231585620809450693925679389394410120794965167006113364292329642380600624312488421540132791740426633667933681423893304335702700200863787653644386041563828043485179921262143308809599531140573624217622546181267094007290267588782472372802526276825763934550257985201159215756567234367761667582241625986257504391521941425647313719272230388978762353575783738724314616076869549382245574569690932193222641379660337930295700000839477506154805930675639390019666237606398416851890442001203451636847980316939234543940760709220281040726055638656283119272774015840446793257352928964406502622439468947923353737405336975801636535743711395798319777799579284741646945582838448467802522354152075446655839472834459499824048099754662345071803620741302312093806331495791666080273872579152156377631177254419435963662523780900964384291945582495558756558891599376288999635943348637872175992552776152128009946159468988596760068165121330303840306738275694619048359452885225260985720177158861464435621374935038962289555912849182460200437550062782128592020080137208144192728154655973253739883468588768129337454979094227069085022999201562924919455705231499053737257077883010168661640903556302005527986402341491518564586641951402947849448173559230949099061779179710085264488269567347343648452683818114071411644723928712650682142289416585368588318750861219784215652886552233362812798315613659451813218508970893761970056293269638625126784682177994657957586185781720537879010848925217879676989516679967616806896907523276413163081193873337878704188394979854235635183391361145735374779349532788189324464050263544284005199999162829059626506372565836228663985853392766913695876538513396789453961441827804774922629790956261672082641040597272675018813205455047916778261030558296296682724521976132016539962083576282490413108945484937805251011645311287150912685698883060269869371415174974110319727847610390601780557020648501741081248330052087491345794875565132960632748843270085312918282704424767381587013250776459562589419574408942532620571311726678420306513600798821652300113139776301886785992360679433128010984819206052031233530078610265214679406605666161989060848641576249215457816748992304445832526489246834610408578264876633882088356196588109783653877398551582886285752908736152112914373351071729859870132689193525490373175621620569272190809523133319786695432197667615193099153822939451807835708407895120349408689622054268396768301667423435397735278376113679129835262105605857054407200954031827964871195407093838350114469487334880461877611215957802419334861330060037960095017712690366351235755417873589368772982815733331194758200441030218997244772083420535554448127730103494227083152656979233346646531142917128090913031452207242300474967574535915715117591309210477782359949818674723386676739044134075059064547835677669003075479901947940262134286041331126368119781561631797171304487360806320886548792993970771346251659542389674394234335929107022049004916375450743182926019454960163080833996948766971821041380014754500935987818551439104710795089053101346584383907851020881530437229763460074554234050996322651992520838680520052785782005257233734847564137802602150514838114769084642159298855468567578386425198400116098927303767004192923462512840828878982544806305922922602686634401126753070307849813721351643193616185598426903367563583373533036400737549150301965393386817948401210073110990468584420877773652943443486186533448829359185868674014914707700496005511632406218028368818110458548026083198049943494842704052496149052122107196184838003466886227167506513453214978394342064342536837902072831218773655073400899627779505948032563570259569127403882663401087865460332022435549451932908481977320793025697994501632515453382759470419983852833200658339947811905412265101326019342576488493130434184655574527682912164697176003738140194997730142042491064327108120814215353139393988240008911990942060344726169711420158970110996859486219433926810926815129422694565445474674016205233563257445969592962709625779168872749276862134133518224640702604490417761691353431347363370431734399660214767001556087585906528184807849583636693359175597237288355764718903657791284980481509953225201460833295539832687585569213138385845065926198803102458971380583695607188328690075884880569149163603803524377098716287045052762631893832250020413435294232368992777989416074161620338401179401580622206984890755945032982383143224579621208480213284187673357861014176343359032321009195831045635508384713754681516335740495621945116436051684746402344002138293309301952064524708761386166700504322641189480060208462198817921427476561872530627538387875408446458850086663780713169491853621675672288123102549559760448602695146037483793232174524879996892106381536269130376409749226496156183121525848746117564044481036474772546953589477621593855344396503838469554607853623817089490705947670664412747395030531226717819610363897922684079881942666880213951150315861309554339580269508039203718140463138333714947357354112749221242278050224128814496063304216067296634141035522596381199535277061310392176568493551667053204520158970115349322854721813660879191169982419105391179003212909792725252632437443593733444721443038506468303803521579750934096077961230122378064563983507772053770809380378606918870556126681594781774260084380363237208454759596621914625725595229689440164691552575233548541837016101569095092309485054986812125941379730888315322904210121877476069494625293731018933605134657106265984645711462388592377495824147952646271012090782663697456795299310698756545903385456352082153865913133134787386482656002285840098503510315806913502775108436729892832696063936298846122265599604373495222935808332312556107384933844465348653341250830087027322934150417599203653307626085885771459127699403518992216743756342336939893787023644794861469399705696914403157688123863841348773511837491001932349145435147269206724156977649347135026827197698800088118995890287246949796090471711590594684556362616501083799761444170122399024021976427557865395937957677502376762755776669077627145120404165947009231915995061385746605614368275743254202181971103234975912063794207063083432215068789997765547015845802356202609391068154753181855124845970733009900317108890290211151655588817106805440288933477908307074100115798295179739454030380521006664841806158328778283054270622775263658007147222973486221746272201576130329094538375859450580111252474595500195094889610458594392315335038286923931228448946083028140570983436891660718189081162074430204879766845335066887591818130174395182198986143493697731511462782871783773185913420145095455676119393498007590585720932902699243677751908913239866881911213740164047582021352266336242570377712570170222728095549604529025602363099525137753895326273292520384007187356351603815403113984020109217833053123439383391992393088317911483873787268761739194408484820114591834014340261410543601838100043207244282947387298861289554014912717202337006424414694940161683069661729715001864785955728979082055228575104332924833271514802407094195811441332117288976578620317342066424263962048914304465407718538512248445376973161011318408683964162529854763587628753418952373440995278116802247449246637572715887408064254750185580861280761087453753845818826981353655777351894449901853846042454967549754741875205566352433401052576704055344997353752508312929775954924194115187401604137229498134656456696513098673250075794244425831640524795514477114189448711152272584329025266949815437132805639027378464653334918385283669268198144228073158565159081399154717224796949222638482043380861989028379823920258788255462150593721655096562153434082782106393526115886050121895854358178478179661183046227832448375604155245716186189763333730319727570126229882986271478883326774050110863010420069937782738863884325624336723190266169399028323133694087931079798832538439605492233454283364092366895952065412656490029010945874453572058552500028509337572615075953055687071690927269793827569400865839620084025582821655771071890202267791303914128039341158051809184750611189327303429533228558820222447743958381125615289811742895052040558748553393694972400327021125466925938324051944098069780785364749861584115507554260909095626105469698466862902784963690093093476600279630278314487675141426255984438504957397990069505546974292740157686360501728148246458205906860983440855301994613376910711572408037375968581881274524242889880400835849720187365637663531099188966539886055408856902640024332824691332950839086236268085523700993608418565809744811316443758649153256376200152157844225228599459656524256407949199681476293189418660850784004399333378214499562137743416836385515584213258597343164815843402959323745454540335750932672023924619699712966529756969885414317927137566463057809317812857564161470652787796970446817557235399294017139081981666472712546353144242695002833743268025437771754744579615102833390867278190228391938809987876210800901669324770280192465060500399169964766780816479757141955380710255595719040960454339683281418877931126776010471375662495947722686119291255170691955365198625129654279291809153684179283162972903951969774608782185185142824565230510301468513247390800075997118674440995244161164288691904153149949727796698747468179498768396425089584722394853821770143015641027628910433909264842312964969744949272324242886235770629709256358907845086312122889497082391917154362785649802481061155184502735095905707559914244362965828794797614398418016222485219691899397691058746190310643561891250530385598850222141179131136044015772913913715554804087238783138971258958848178749412673056934832451913320446040223530016501463445597396645419412796421883995311569856643088053077209886802371916328988255041652437366222966024924875717435770766672352604856904250083947943224245757629161861165120819052827686675929629100550847828604222430412173578322025676587325269587661697669957304664997574367783432522068367181758251082528737734802174803511584227116319681591563200854275347088375161935287315450543126942773672044658012839063781452718037877483190983315515546487251583907728343263218379058477064055380813408967662361619306415356471325642133959657642703501254155599306631379109944592944643587830989995808794304214725874342289295457310597013807582016134538716832302399295704137505736771726920346379724423597202898423788391883043984966848215765994922499481713501456101589485577037961684736751907386700025419693175510897764808589479577306651394008979244595235914474807995809772266256021806399490829093767308248400298256959310734411265411300955053917460339086570640886019208325666521614137588284434482787684655681528420070804209257019811543712087138145699854101550133218391967752932866511948307857924809480873390837756527832477002578882667628600344159027869698378069653313005348945490466366946326727793715293355467116177764553182960196208210946509568692267889183707065337909740105445650280899324762171573799747026561688526372653936997776035735192134850677757561382784807731157710778699819721459398603226013795823420684952426028221945452298973023672670103033800107054983339147974387598831467940956391560377299788802031226020398977242674806435631342794597267006559636013871524821122884055318542544140604825934865336528329931623901858413780013967731875868197502523626206709576626244583460486468585840230575047404276118529560050052178285456145365781050562993519562853968936548675311637773924970512331213636085260661561729225033803739748869824861137304807848647109262423715483746547669622627736848430031301336515675643947170465467841946116787810107302384022596772680290204184775684109026223252822221622306834766598988819007772013579539578095237762598861186891024126901106609755522484339661789543416736385939712953271226555547792753657041740939507378125862689764254443839899498292194867411765324940560166376495088218883216043036644861547022943561241307320747772876859035993142749771784968565139444842905742085748410917403575839430397464366547619413526294988862059389751974170043486601187282891282717901458632051776850152575706270292652721207060975383249386568823104707841885073092962526252024454838628394810948895287818596375465915461766200237139486325796860545791606259054585788332120177403622675637187474064989334607266207104441102716360347508330197041609576792818465829239296040199759466186878037601805687500651860597517065773880564256082269723285853351638250707537632056415817158204701503738983823466619726854649839208598216802015377443765282648724157130058136830886636660388100085120552623745067159943723772023305079838010246906031216283112474660736235580867585902218475208498067374221572286104554120501540534195339182511072187458881282893135330881635551371514239998014577629902221677385227767836637379060497395456840503839342406804579898626600769394933872652905533672002570613895516413262039972459289099999880702243830479430679686911936294767312959636755405798457466788074890964595225613693199551496285699986685894286070700490146205405577443059505533627017718484809603375709648026348611459391127406751862245582608286017059337522711258387379017463046118917561573740098077219234491514503869288918425111670575867600218959519807822702711892960523639759397043671541014566240104684488024462432199564481461873932655944197324799311432177801073292378386655314171695435118824621488163157243179062649293244493036774259150320764691758181235072094369763875941666892023164723842336377790334261263612069301076182492552825017510646116974651598405066926328165142689407646895941326311019251258889125806395830317832616654850778063903271215338901835276218469459967773260977901586646787011800799933199482089947785015674033695044627183871832686374691135754500298767687837870679678337981099503179523932073472475454910685255896508565568846248049939566247904660217450908941416164169153827932813208119810935190334140937036860588652629068538822728127318934482035505363867848001967388969786077414115934999114439156300421894115442191012320641947774006041649427712066407214429378568843503234384018329923353394059872997680709178942443444064104804507850844736326204336480807714667548894454852269507389276524201661146306937727127538180121989891094527296913497227193238520218259568647625049471223919429495672509359663671906550718759066820214781018793386494755951727535756398297197568546384634391929955534583280663396534153450519089378969655289881924259623664770242395567836571263798406143505955321467187137834869150480280411364160726928638320497983187758964178006408268149511873203816318927935775330108773323288139100301555218861783736463573788395596785616412559240617604478096965879506028131703849658477483769441267229027802452641171001760481773973849715421423881813921817192122218868509897518748884046809501737198752983922714834249204351903244790386803996160855299151891443157905446178735882157723924402865930345910225797654124331784884922888873914656020156866783137033069189516725239180119163390411983022772200680492941379916107152853616129313602780645999726803632101426947175490436072196702274997448436445321326905531397825828955874783839991955566160540135437860928439638142734459517749449860236035139048770238244876136938777359273113470663392368607289199589777746554907430009778225835742798908783017574448105025321574759011789691514200113904653079918412401883671695871491750226316995611036965412298996612957073007306319091462644020891431212424301628379045725579582061214576088216468973905196263027221143000759143821183757473069982703039351867369232429897423770481480804244592814035673057825937661495624567209819092010943746221312345542176203259828262841028063195804519196676854651585272201653285124696008186897499498070421914195289586073870474263853979189983940648133964123072706263902708229906400920983577823245129240697694867295136760144071790976103466406619187577480059520943704219557275068261691746864191039007427775769655477972231270106439524106840626972571057008905109422302507386132389290961980549061501597382341833367827645390583411198656414736737255322859843738170135709513516995042600553626236031017419609285110366270156567614941453209069207580181848449511197201004347283682076222244166328702946132610880924652345522646773489790082323658024830674646049057213214114296208576661585313716431756290106008020680577524684428244829396034559067657243349624635426223867835957567626231548091711553568616260900439419300648910518658905782414384596419627776979017758955940594539087462374159284549745290618152263850878950687684745487945970752418757863970123980419019255592731965988459468910842685896662144314384601459086985782721193975612208632161433014773483664039101930640685405534267505043291845715865923627722300046911243056958609397746934426585906935194120435228042997091196881547980836142960463455550534733465062195920249261941353744753223665436451864521487216195376163024052438316821482472114494386757873857628304523460589180334539286604267985384337469499194135116941538148814473720507054475600766686398154031028779752019254986017451703278166235050102036350349028267151442931472511211084105193334681331987158849227812272071125892200277880393529634240317982049488460904845994768707829766331167809567927189346422054370788669198358985056272645811991610734869438907901423555809923617179275547354810725071982142036363437448224901784255907172372004072103713242186048683965381458436000140842695064175831408202803546351638549493067201905368927389274309044472957802193434741040814163413436735543035048070592876786234220918564055088148837410085492282812352088159036086041181331780911308205564090536855126203344594945972346567681114983749463687437878067114836085290419970989370802852817238899427417050010448940631223444469696249201566934069693709351762732869615324718674946827588289198564341192303938344765096448611123912537659574229761272913088392041056895702263000099151777372808642066752183814125696131271313201594179085459441728412708626501058047798836742189798118891270611320793377014271508457496286060755624433679931585583579885746832449895272463020138555370248339029157465436629950561170023742537403646466498270511524803422618487093497875688087813362916852359856860164714395033933641416800510699028508630529794051123757691798943556961897217511152417104779384123733702742724010540848472948004768300474986622037819680234890204741680735525147283957400224034531250356052457751609634893056351739831255505223422882205744137946819135798456678210863327651074615919213378974929188178981487851797563687143177083791548048031560626384436869579682781915390657085168408521653207741061197586652557435078168886380664875387596139852256829611476800159735665655854132378055214004667976494327363138146463719676707280824568967867214116148913209343856012634250685239461998861336227918415918172985557084444647986689796176967578828854866619954751698745247627661908185546511481344647267355206055362280454985488952246774085737961572852862933210622326406415953018335389560421045033887331115490860931168447982174714009286177659395151188479961138920797972233821408128332761876215142979114600450356209786576899722423075728266590711405256887232570099026218719128208048996412394056738174957560558818733477106914058752699308396454605100406938651490165309548149421678811404449144306521160884752354733577697600827285597779827509765932991795837395497286757856486852097676467551833656089878851924979282946479713157067176659783199803926754632646671136559866380532342678417080217589322996558637144237737198067755445065936372727678613541550907445951192771274618574826948373040910292626526167283266498847767456889489583406733478200009628674049088250240939292139361309568635575304692096671560350635308287800247468314040831855872083863782447944970566086806389809993380305252529653706098729524609897889561827733972383190554864938460650356276256862484404512389824920956216700490865967279437814702709267171077919449120316048476352642451327244913962286600897696312132081297581198504928915754456607633661210783857494326229662646166051496829441286872454105947658242625741552756012227803096436492899090215862822703438114565986819684449527043636687041325926158206062299737219307462754509132043068797508098757380231214651946392547932412077253278374002224002810733813995530109530421223789949694442642290378806344361583866056275796733718312762798962353382490365794147388262499527144461844181878307184268994631050426208601873889671516767443259564715502259528627691136333034478195438173941950427591016386499691070279142357723297706946326398033269967630554625823533430540513445074077765851392520213786705094551339490020699297233611887645387088600698475638284252128369473451465367300985381305331434037735786883187581041846352359102548584099607852415035745879221024419929104253438291160565843356578900845999623674306174415636453487810016079797525134851885876774279275869322274080209994709849203551353945721864241110814349335474155051910162972454082524808238946839733131165193646910810522844658479135147880783393602012177098135138000610222050264545572504780316174317250326107461120958447558370047240393816926698864936747796560180218374400429454365573921313022914017222682974153211848597970632854564906592489223799165506877098552203381104874256847558404173678795606944274865601241054880643858537433630026826225426176768542822711540709896571330653409674483049673752436199727653254547796685693553802107669270873175496915832396431738140493206549390224294644428103951604411870213027686570375054552122294672969550626610021475179108362901347322349587768454066604023591650385198502165806644463113967387793868655236094362865421125227644836881114176718594336812576574257609254134387001485263686366981438584703459827805763318490403230261735444945623106707549128784794258746704141086588182910252770951535199615180862069975306971363320935349768524821958004168133077962300667669426256661696495087700014037717304837518577327257472267783327332219903155431120019920872270094350186031403831139561414078115469399688359932420790589592994482826117717232049934629782629081808099130941716033351287241133698121637214461708271405689218783551514722586057147018879191381883297277695571789929547362210924263884179744711191621465602317616546932983624239919818929008405016536404394289590238187965662911981913448486704196671676388972537765044832540963398776008288951290105518757782616610421082930696329465927973591255083894656622068718492719567748199508731829583039320226807107383004000241212790602648055662349325913077079551577034085871353807637044953208078838029775821822869479556906526731767967274241260156414483348893650631607650274194771173193256958996274197548371102441732449219648565509293444443226353906829218620106964978465840462072344358735085538253645452279704547071715467370441793997929178706286980941709497974607692322168965298535687234604277475557189532395229747113751066098072553299955280207586983482988171201596602998932104339259872495917248979733724958843954454588726020910135230409493754606518000445024484844010096122705900800786019938953924245694927983678398742777238619954546817684210622167909558425339641224684617246483888198243365316741961407358939698334504763742111773302391923176405259342012462701067657789261029250949889637577732509012418986544173840024182746287059955842142542441350955088807250768675684149501924483472056555840706890675111168264662941484735602611073065397466098174060223137164883939575181871240787259298860301320914827436987011672647897472143540806453535403030969831950205082230642712747773680585614230576919239911551505039655520761455899947029422021753823774373670359629139275037195119488129904590784892019107482004872766022760787717057804519470410129874957425577594029894451173626116153145600713339570072270450056831554334334853410385588383734752655554932294266178147779596520360365447200223853361658988058179709650446996831001629812573115728860316346904510400154889164921414784130781627208456976195899519667081059649592486393006732441492495145855663114230443057192207210819383541657656771706405896463451935088221483896454364924235947720291214941690921876193459197364364381682257696555560278527424475073490698398261867320910568777421028601666207083953974434602160389452607903710792883256364691362263470733252613248903748740093874697000303039908553508607697992791557907228225443887143175216369099541444159064873103173654594839021610434745399183766157523497218166609206727129962856429809530426163617266816753342762066592714351659105571082588599570918307468732863123923836179098754768191010262037836034252178507027782219096525125300951619085518886200505924048109826500895800849643461489621416768829622133515648272289739511232238719327342707985562137264544669790726759835876016789831094485263586768933711048108296535863053114013334550000891690677995209546120338401642720444288603877703888371625060244135550481836891478910469506473737610529240586250977540489184760836422314435685625405916047181564469216329600360920014984938406709464680430733455798096303604162446041843240253874650096304603130707011752188917860835311483823534274117622961952383587469076231758618854745126232771493828304608411364281466968197268963166501317065220003196320290428192847846943545880109344928073609500353759729510774063425809005464987279229182821774664376215592062256763254992919412869291032574007289059018385289328513337369369956424525563001667989715566485754471401393203132270494441622654678288203387250691702622193555751777342901840898159743772675907410768576082134922849465666352884716648965674646364693080296847596710978791416252457078045627095588619362854760495460448470477732736248471842079452688742181428961487465922717023341765424410357161661081405236581175556935915383786268272626028090698919778669280716539727240986275604661381947391956230025789946731594913208198471587334859469513723014126501726745937637757810294897306296007861340569185486315360346013764105962266712783932372234390564040489205121957449689731227957181904247343344417803142791811866126467742326100148833264673999184419945235765322392552718993823040170258479566672640883235714322006486472842498294874536121890905812199801458857533346499857162722647426967853268543004655374273563621021524476003119629221959462473351394571561810482352526321727055462508185691235931727154040508853620370712573272864626739654774342063613597656066651281798023645897905949359764103834098176293471213255482089284534620353837154034157640568536406020212086202524364642602268307341700272184406364429141330221177034213206591110751204225982969640507211703444590743773663173915109451924162959091721019330184669063055908578919181842284545435908022872134120242134082740919990080030302568737198506041560789047426932179179614151470930420401387743068257045408746317555718228797777203916651189129264658333877003514936974011609214055316035328959210643699031839900644169983731884900907862946311405318622173152375315118306674233196561764644943206518308934024948203528393580638268979323020165236119959867536580667257775589973073195556559107956898199918204344950096925208173375019440342923415319105741066480534865090184344669049628883213365558412573327068109254128102249811387979470110809225845559879292566002819934146299953283045464387694204119728559955213698600911559369688986047612524813121248514605271538289451536148336111256052692661292065671867134984711126406731371229520223329433132494371162450081062313018755953836200415984435754231129399839992583094681668144702165352890025528193924425540950142225655064236358167914909320760516948156901387508854134157701117658928025408358931652890908290337143011300169006124743997232960217313024878370809256120251439263252050597087456051189739809208062159739561199666939009876010032025789900766410225137388446389031676001396212289154472112256744354717239164627172632303631452212145877360298997567753630778150393482176751394280495667086988940657272229439772108581312166030696956624364723251841808310094045309138600332444018365967930645712942526263596800716529057226371803361080630755887272650129661663070339431287116293115159668612862149517523799639767322944135047425696563387086836686693414196788303107712919059514701304771132388614347302769984617510482656791041433762455902200872102193365050745707036594096876160695314817871689715072769713288225017410101031491578149677227929378128653759491543485166322391752886975433822148351923991498477941485652437337457091709257499029638104458099199933441128015856265454210210365047896978819393815755414735004158946566517331341699577492444057483548421333257366042334201585474105587809049597144267355064925460202315792563062289984139208108736406721450560562460087092003207844208498481023523298719336656236785624366674964065921053322508483973282131423234770523673033385363542092976414214554682826645242324636206268459096323820601648781018482389579173497994619980293457004048167986195022671434782564659896904625963910792866591116049639039219175186800770920742531926488502302463140875989239508168744230859657601560876576477173727127610946164253556528260156353298637602431292082807750438208288590621521512488778060817510397760338260016972679553994779666426877889162557515989743916486889449641926120354701583451760141814579847389015904426046071030544521790600796781939657570250644763284546572653353501112770359512807729762541011621075241260417476004938216487686955815773025563037197866390077018889852196013880411715911890842371584659334469115800214927856047789482819860341868065783006730699897924454789681767195916496517741153102534521616190935830694978462905448717621991477587971361170137793606196203485425413617631105327056873271832215510316436331859713512374226963389037024462073184466218081603825588922277063218836989251347619472067299657791425984279447749657845013161241787056707874111881138773144058590266904664863603917972958350527516346026103962895869831443081542961890999291439383704939279205204592337323938506896775285410441259827608090451560764477311653276290366292918598856327216395155167060290858280145534894634472134020508782978558923643181063693798370595809664683061905893784260714067128374941720601063510676434203146969370814017942485666737615806465294360847711463193484060062197468769404896513307252329365379380273359963425611371475446906662947515707692223483668703555762388459498594282378871469713263812857736266606673036939262390345594858000803064976409909666124825198927819084012758684657296480724838365078650245521894636469395314694198922096145576343107595461821132852842579680879725516623576744195475185239441179812387308382590763034371475475768785149800737778466567338398110053685317404156473136774436562561330201883691856064260381747258272489749137936482681677771266093009894980900437986942445808590410615478870763084028478842523063517700599479583130866726447546506125749194083384216095955043505667641904838923728268602941019322363126546699052372699171322128793268777297465499067501352563081464001575386198843048776381021854979217129870403785934189650037411993442096572699959465397808600579580503116640379889234712598700012665731428704577063758743005165632583446646365156295735189750562694423227810238851709622641192150480145369387546580943507447080924596208595494050349590654368167284354543004283504697799703732696036564761334255752626217829632639694803036239598593939206664054177450566572441531757014447644292860977062948034330595491538735136739070338504723621678725927580702067389139585226511870911422948828168206570219361510308920006312464509785819863964438404619086156165169029575626173180444100227258485170661582130271010464803347656471063014796922786983747684780842397641372497730695372226284031410874270764133079487652080538684072807853923972042043846884371153404037731384537277279080512567530969276500938862339462143822874577375895615692709261050641425990110317103186277307614389133243618367642047019856558432040063793416507220002703603865161067990411640000217879318047281558851129428999726479261778986155818756250483686435714795954996881285630188730001678532113763160859831398112455049442265680932720565428442254620573984457222529627815788521533980497890371128286187843709841119055124402253940699848012133514233987162539029439536691370446412277211931992161829721408765951796109348198424715512940592839770197870488388053308209195898219707968003930079599287125979675610521559564442295512411746086376169390524235077096702958222730867879991506746424336963206668737626115018543360538187733693803733638400630609200508870941231560282029042524263459631319306877042747175559424996912136484382363350258122865408531120309710247382241798477888568349058157276528529317092894240470262468820127416099157643983082289662495461339150919734381258341068919068159466108273105880491682034163148925545947000913210173366726606050668180465194738151037429368131125566459705075229520360768914252754757195494024238276100995440989009247449463898066552639475942451612652839348476369420672137304518865369436892012783920963773935970959365909266705022437035507641439441705601918652224448937212211071165825056399779506540932082239745788046553808495313063962076422083513283672812139812436769517119465342405165477538226315018742918406524542097954090251004335866546498019813856548083448904160146123779247862975156694444737643877070998725490186506805157504707447678169083996198165165795816100630297316428831131888037159724066148582160637507813849465944439291309865259441405619049804631859118286321108772959624364564553725516172984446673353749529507756646886248796777690442846175811437910973651473839568201405815187585751888856610052299917336677013432712804088411535752827880623979619356063658453576353467847654278855241476343152035187329570500975886575089733100044538935053461402546570024261337225102270937600613092965679959096636149271337387571821686161307073001188597573350385013713813395952302865582388165164548732386601288162399017813509426974017644424205282821467573254296448057193401658140170648721110488118583360768492021935772190445058179093958348856161463326480383997145099402386336657873966898550024515742650657950751935263854156891806565253956769545519957125802831308213760286179390476359564331818989651120664233423640526293396107417214148150937913655793230982168504178468885251234488441020001171478993215355676253110983623375988654534621980575421763030678638581378315361616031285514842407555269820215269229687514615933613738222141167699466176137960273238081407351671076115500757435039465582561756890945913791754933747385897509853138949372970054471175054827094553398052171592564861893498263908994379945221562325674380791054420336854388352428818270879145368844493968731429854558144287486460971920694980439318492490746464313802455467260771875368983874702356783211714516237309566889542352386576294165528307750777394321720438088320530450433171979496335271192309066400378935967024100270100889473969736986205142244047874242069377673609612812627398429044711505244695506554394809886441095341450827344922288335037663058522348055327947822042695234750367991289896970871770624377699947832333515533398832658667739893857017337775957057392132007661860984263399918733748468234380075276891580839219839012239368999690203467835302117124304905208659996819519657694548466378855001759923497909433968656540203536261592577903515951552880454590823241970699549003974104066801189262685793456409095894851240173713146749438470701514871783428753713010274427865409654907968617391976456545127477642718733670725977406544349800048569349913979980020038699097824219590450479252791610988172627934249826762388079451364478303595339933702290111731350953140015223896339930587705474966940895142945968587796247957116647530596461875208459146748730768753853692648651124005308383519425275192417948076461222896701860006757764119304935126351439291917644236457282040938226587946541384709105248199555721146711767785077741901801131374653648896975832826650977358911825710086635856058008690728209162434677375468064046756200847856189609272715635605769879927234417405992775664907121894233043772412638061369003164276214538546332495022914528833712695874278661381457963185565163812009299237980496860757233130673499367237196843000942209408026529573007903038234923133214234365530825978293593309938866934630240966079146626756970360711020050899065248625516702982967798396743962747306789565800490851739675216661513431738083835391332183494938340280380157475228650807307011591825662692325005852054046321946234874409952382176619296740273585439837829282174436537083193338624610954172047082743951211017873241056152195981341219544322426757657627903120853191823981530002514426393711148496373252111126835370386299435555023823459867197927553850377801590771929962966394239179622605954214219895090539173357450505121764569516485384565293061657636822678714969908188995332295745920102940229945125209798597316856540196812684554680147180854507944771073388447604453971953145622324952628801018388087726054800066965730999699198776660045349054565484245621506884305409988781574351317552935422703618544261217022631181675052590491834255518949372078326088802984831106831237015028341418937465623681972627673207355335952526457545117560883215168857531990617304415803922655913061790758385586814662657260500178488834889385597319993847114854185526966119339364599069516278609451722133421410554803769360259822093623940989260407623714718259152786981640976671780628876637759100428785034067675527091400278501786570240539678231920781383620379701337267462835244796017128272073331246175921100118209170828176123200934874638214193982496025404514807029194571910824865653736764990194697083267971870936608610396161371550333005385023607094472588508839998405544508404562006634493806353618002572900357007249997601979158878946767083744819592113500398697195181285900277794723102873248755346775047363607029123016498490482035322614808563432266019490491224577984977733648165985186084712580985618581996324606864987576701924569139720096733800556929721941559245517381511532841169969353937192330727762011741835887880242700553136992694224753884795761336927238876292082530283116853069708848372087948817925656330865912791636432112621460454801618000742793157491920941643022009244720179633663505273914187231014757416521414944786885274495348747822378420117687377306814916528042914079770481035940403772037518155274344463078295387867586327223937375484039362567636660490743864986037259350109201308836028499580434334672972845510551024453666335933063870135409202099104043491336840536456883570723040692351656837357356458308702917996200704944533171216319343867766356738953078973501992278353542518208954751584251399243375373879316520462196655719895348611464342998169664467208213779443565128854379390526296993869396700618147994683893039127467810186098632459444039109827678783910152244581780235226964079048570177152349313827053564429322715099020547803828428704319855126463321229751842792637499394680193392112428415152469400951038001874406891950447954420971896139178853871219826762102236609819457023304522609364272519535301317370003684219226304399760622218501084845762765384951957061648840456782957530994689348927251721342622401976388222155155144789153318260427591887070192785498613020005875509637232795117537287284439547744833038345373939738421048251926308035286549545032268991118338514583563936889142850144959199317965885096085213587677843457695720400686106015492397671946548153752245268474506821942278602923288255932030463312230000979359097246348349611052937757009791978117543887527816529290178786468508224315669535891068904118454389528985674508853595671222291517036056067738159926580752424201008286583265851523428293840381050265241940847657983905997859005205102822298854942739771225495438415630922402838673615666733920444352918901003529400648708312499018510119692711061225980038899076770532897888476869015143490914597273471118926511839754188790162782246749959527060254418239642106267601141623717883064150099444097554240962755435093345186548540010330237185395132312973696213052739130310226620473149880737624699858904495528577500748686245157628686683432673720556242170386552765011621581242467600193598464783417129724795046007583839359908824876589109119363667137502781292237415668057054532394799110461680116361067783319412504115847847002424471056477810278389135691395713465616699091228759058666957998174571691245298187887222326421197688475591317154481602332569075556713550204568936936301101637009608874939174932988195302445614641094160624101625365186537387704752471772174836088474135435860848154425524778495221192418987021941921829447044067653610723995390295333209759592653430098165681747640444164244391299975776920231353411365916530195316694241628814333697537424184096490253728724406420645375739101253953592007544339436561462266850392106780596952157009953784634071464842270834554167215242255006224695447787466825116548191679310442544960628188100391112339222381570236209353573585248042336822566252902537672127636529509918834669440922799679979324773381323616464069451925401548502703696317864351246459205573833246901570025907165352594681779705505321837245372164826837735268528746715906402220901842434393099103879092958094540212276450176338426157769803103028227069153714056610930608951025329115690954189477425007744553894257574408909723733763097249505784256096088411131112672519375128958449719396939886418093538634807811709262049467626253976347509500398266253061772817743679223395283545889844628058085813932919262139715451984089602402545436597537919718186291091665130152058622204274517591035559065994183104332306755395490429926688239192038570679046926652225694423905634773775934033084728709875575830982786352764173151544203207027963953057615107665065803698795060486112069292566168436889916311193173302443905559833487850892615544893341639574338979838774643180565786659684028202371936413028793599497294966946559652812628615316198460074338529971807276888637401559558503047496433329776065424090677236233711274316149260094243347336128650040507136905035404166584775667371265536539342795711719470312306121970792438557280058147580044443969067051896530149416123003781931019302302111168327261600167264555536034547160614901157128714668180654283890068419041981893148519593114491253603149037714557570317107117046830375071980242847151400108213537805083337833739490226497558648145377083024856936411851456142994532628177056079760610745592499268577908923561429315138961571786588241356140187486507749284206959531448968512691596030616845729460291661176849634398052354138801211793957241714322369382690188397427062656328678481336441492781160664015278738129823727792966367079155738219531041632576367720793725690168371708653031336401968453842202401689405154122012758417976040353659892682890830747570704499146206678385492258013519249345119948602639002066765832354361811962341158890743024389965729485083456376637908105786348596208104270982560857889049205495432713246999151726225036650164079538462094402559872458555348115589834855845653430172782910966342885758570450617925681321392490581214412269547346203299235491466397358038132206932222079703470237723002158964626837204470385780706443784114232709811851582661978527942663266714250671001229223573773369239084854713838889490767818603094929276571922217251674529882145981512074507998962069351839224983566262850279873970960662479029359211743105776236933241491135317400991542596155135883705169258545465327154053754387715855551510293187877900516988388528357651412781427074403859855873744529276623147992789607885366076788497729401011837140849819073891130924702847495162238802723768365304868040647185640557290858713288821430547090089843301925920124864771561735132001214202538718907912763168729977097814095508399728666160393376339627399462532175525584421618947453678554071406348067250048298791612441716571803774772902601625974069989349355706999875069435453226331836204937569150178231714336580287683706440403903961588101236921040130573164552977406893197744934305742007140648980957498669779503587317590372638918681960575882384384555879129798863523220596944766164453063866269224948637075271536101274157906990953807901752834421210426748265421214362747500918406823840085315643508375031884529907074538332613710496169717294651360554734131896683267682072196252482996019203219042588459487607909760524170362672595493993415313097123059105194856616515865379041651156558174714559976726422501411522564870753390135990688856461732202830506333760394030581461630876871550955433409258159504503249625704380096453231555128389940430589469143702598800188435270328102839213675466045684593824549814269069932630469922186412349215819803682241380263211186896226852074679816397058554868202692621376727219737516230254407453362562538671445654844755477380326227752329493338270697732926402712340993518480285577385816525039172129183085324737090389010942354628864997645365409296085550440252303168448304731427055017187502706816355317788033281175734776124922221991072215914402081411524779758675948269299569603914719171513336107309659180777539107987041806162108122997867590705268784027998386248881629168292416636216453821024203220906678290686701831661122379371575065859449752691261070200963697152502665232707937158185315762071479650886269718221142531631339695409376305413936867095063707933169347029835640720112978347010912456558573179840639882091962292129380656493310691412693460660063816271214230516570937000918340518889212517943351242105405494569581854339917440176135485705139354756975215913244737578760551100307999713216901604698304356879559073650248248168815002524444974263370456527559597073814421947593774409467152387660886294667679016666282194866788341102555309085820786424026813926003561562647904807586200326174108736474577776871719139875526461982860291894087884159815456630433963476485221904030431032749139872078545875889069589236270867780343238044012589480690242746798547563997010383725622447554299765393836240245998471033028723745494401450876798892889193082652692223949203529561267272156473539303501883516632824086796374799767392315520175356757778769381023197421767586199056719890392654097903701445454661926051124589864318056954858229589435111445660246499391113499126941397198969867645929519774362894044077632048176909333151390484846550293152736250801817613855406777176788580274432549193382895343466558909350624443934481298703919833987827243848657158146401435802398102528761967159569200224580763364946306828007177978569320667321519358284646588268843301361853680727050722310611989105612000460641025803498155169604874665641539898908247735320217589199617944268338774274118275208993120071060996362208317206832365439144656458341852127303648685061590746321560375702952645580712722658705065676473003241442413150206252811723291250708490620291462168191659332974175914073246897457424669921886169051982615285514317155824704462975854511848553475150816794558774779222477429163738624683507475395349260744422825603978394341884944749011066495053238136456591415577282434376745804200770400098630828821215779161694973625090040088026539515920506003581774752924849766502970123366868667004232541754143340701005133605740347879522217580995107292601595352723355652656067380392292415158094850673284520829575337087379853668058839557968411605666504847174220337700130362245878841486124350895780410831368963041145912132519573982793889536701015849128332615841249784240369034243131914458670750359249696245194472048618376654940719415668853783387455463652482193386694545707751026132366625122382749568784752838204899375864270983137821813055982242373470177960556050386845083015508183508464402087029217994528050476519642699793629059426064003076610100851340094096919051559623903413010495803639780830199694575952811750155643802418874591903862007865738429334334464292959249687240906669470496180091967303493377344324728714121787416647658619657886876671830097850541022351348913559075484955060866202742181531056227708348502613215757019748899619656745864657204510197270697569400519768878616919598688756642519220564152695381169064524509209252825744547524780355388293245410932485240452603914785820922115108406099049124401087109477348728602325363059676283121190592432884199583591342141179446704406019386177748138340053723051919908324212108737632940618321865580343021891408675515003693950237905543323768549204098005485786793590343214803367670905883032760477078218330862388230034251029302408792248537297695015065721555722964796373755160323028236565741977139196357225595152274451095865083281813666123784209845828889995633174875928505241771941278020621071474336553673094904592696465794606730635583447443426490169859091096848104104294450230609386767844611355647313686385692912268684364789530883389716499352525909035769494291160601162294258026571160640918863077777476528396051763572193088136650141200388457282293602396441019714174052870342005961323086450864633903613686147199998997207474285559926309866785771121752537963341451497506333926866090783336997184677940648985420042930892545092085889857513375063254371163111787350257083249989167208388156883327090875988846616779578687019371286330352651236835915415605274239408139742227903410283412257411554194562061059800912779446902805526737808042419017882504078968113013188467027972130202046872878777256492659300783731323266159653897364552474939668499848462953553349677017265053113988887889039571006765769010349220918449090717916019763117475675889689018154216210181792066540194007846550409557473998091480732911743286784798783720286859405467931618268440066750708917930050065397744213627293271668326159569667017742182772803343024060020442211769851691218089810876523287215973699995568647488887180945157991376912778277234142318241648984479617714315346608354927052339753841717845579584868748741059619963915848173624858859559754528502855463420607655100540020511876274388316722190814934345414119199209522308455103193263063447493138428195341891047340538959970895750118563541654071320911928501207881195831154385489000333107685019078075489293307099018728782482100779886094990378009584222965907991306250796392570508576685178320083592885279812750337712841010859824330369777798329375037484571743293848261548417837763226748498084820617344386470062269770619100498349999679938217117345749233576130591328112110376840176915907655743419366298765246246947970427156408784335935126114106529303625078816579148206291535578159381323620804025948545311042611802623115559524476693909029099203449182405312375792926178320953182219022136002512049526633336911290525435560828764003699081846553301915727395525486355171251643205170275977540796300991135302092044672083054031710301888351609973647913026207046676191095826684134023857737030115814254738430838536603988829632709066725709463642561630101615436726751659026987070230460128489609093655600990431221705828510767941010335657347563049756350309014082565202945426764301819795732810253905074466045700612022084126160819045390747754171591815664062374397708965968343368557024319856319011316344312785379433746209025611098232782353757777773424466128541241938635856209468505620635245069275315906926893477407325144375710297476936500593469328234614648203535638189114734822039706309855169547113615459368242844591753806729943613008499308182552395263366937391896320798013649382017350100820196976987757574406259818664991257114624552459115121598659714435178780950381344688161253160251967319928187722246615556427741488429049427673799827572159453347204997912082691303160333724708709805845895565791384543494040480302391354046447342323862947469045683387328950835235390524249845134141678448971589694228907981076048583557231989808610740158385287468982347026009379598199855345036574924155468130533348352134185240289810242374921201743087437745154256403282187828397922082200917519938201260122150552418232439758320147269604629587179256100382304963681982445661757438983561553794867797518414917789961101536365718880299325525539972375632891082151494950484148479601442507945298533653518009764546117094212633408839594430743539914447013151038982354568847542080058176156811213284050066264409484385901494412901314431795074779525526601308319079348791897988539410425439790607381049009727206598178540172452906561094679318888470899505225587542399560310631352644194050087856397376101396690639569459097212014257435103527058983610982573909185721673967547307552467119674033639645993616746816920298116259968473969651792448673619372133425125400221958353365282035567659511517735684340575062760800286685044748674069353079926012486336009507696843343613692473456435579505439966324346017952017373032255303824164856719571395292375101068624011832971606033787995448236439575002810355076059488167508996167783000672010301713522300847604092577797632156340732251898296293632684970570424180197491222511745594636263312983473205210302739123714713955977774497610513486172473736436124055984172999867602531604505157661869683633036536297802508613233568911602420497652422361905635687330160242988112356611390005553991343642415881515352085225783190951035852347627025860567242314058093826269246338573026081724834278959621666833524805879965002552678442829714932112685583506713482576185765631322669030643785788024492807230440708170937368129683755161050820981545911341931503664747580701722613654083331433134322247690246853610396281880959879520308426723261850680716522277195211360704228129809740467410691537409593066421144278210987766241039371317329750734439468152363152925982318014349371240675855137375542085177024559891422513924097932282265551220063222649834797373395838355665103654246918379453578826117065579553789311734402143309113536260260100721688018021611090478218785293904707067871239096565144038146090669367666817975563772223878136848688159714988135532242395096128650180280109868559051420890464167534423883330961788965587211299993249341131783435674140139412802555574660298971178963082299483216413910653545908110960883257989287536321162147982510986849864178490239464742024130453282088497963911440942109989490017286059254585327998969567700411959209943090021640153690105011867502647927601278991453452265449016860813681625285625333588414003366755854520563304170846469555004693278665699228359913507405679228606559956630666144310352384717184614720730210774387564322573689552188088490222837835066353931855435098970019677914289793962327348291134970729953802670731318173756711890428859113514980904896625841764550364132247334259969389011329675474043299761242322965473914683257898048027441473045427322150102300090854493613223710740433990380775105394445733231391031375038323323447007492925249751715892397361754141843414442773509623974405717122711096309458078046687239835129383559290699800672983186593262262957509908573183893390493839887270747671265236379226903361033202139801293038871111550732698532381969095373928906649160211291721714858313916954059041137685858422214246707286694082512228046585757165630506591850531583276859887730779216337893040109806509685395285995414801811040193372227107682484216666507012288828268567483809494043380940956863182602790678367059015182685796360912974331392230806714814967788140361935194841185964984587469515689437402072328557137216978471381567119476094709964161823391284277119762544294773737257679303453011835043966563824900364657526051207527469394927628298492633167423189503744773140286243313882848222405793447744757983016487151533137214960847950854491556295344541202768469807146287955905596766143919571312618687817049752453392534935727841105963530842979332188531669455964837716846332459403686375252043167904988237356693593209195504413609852726059084647884307111265745915475475647455620442631867834156789588245585121625143882084658696143173539786459289036201573297449952995385961219879253176528594114418588229358103207914922673465962743235815327202005655193747853922250500226473693877385605223597937993542451362957446626144507183413431255871001608953817048370549530975513956579159862711506748778762255096441502063765421462605275331956612778388700748801563390146778645328760680510314326615089973250127952517044146392576856858222059419826820193642349171682848953640275499138650765321603139789384025827463494864867597608214194267579297114433511205684030572888942343329898327933840442018170372704888769083127965320864815930156774934696836035711540084481659494432493926513696309519717362569748224136515798421697977374575935274772926435906901930805272122344274295387092435631957420024787001196895768376768983914805105869405096471638632608869299643986742337689061715917416241043399890836767724210050977155045284305100545343147475306646369381805913967002552001096016993688721976396021681240297905499569099800117167477713710895046427357826501720488477676401558094202738484591880710740931399814828166872912186619834393288505898682816123963163779017143101948597683476923041410936737872859549690686029500440531453125951365250992784078400921653930577402244700054502471045352705169309222106968912956519745326969496905153009398067902319919405984459741411359682547797440829924652259434426479628753390314704396100521696427717077472275855707852912186118991702470906566517553002673351306528383682727095773542731693982755479332078233761778930440332537859090844627501462292981236104806070483766740755776677108362841499320767805912817269371728142144324192060624806695326719105673300020381313727217170164863889554597166317141950126374288974662204785558738467605254503679411796264335089311891112673464139269213013991185573546354620590487152458914878468188954061619764680057906262080337740382988084505354941515511491697877910662443571854656976459338292326244716609025088591042542739731011284851543068338442856869335668929840467735165472082304056240648041422342151657475470512284840180427577780568366877963426050414001713660418109089863822533787285649114976603595448915701350505888491790350898268048608809676526509069055025078822427483233340466386933668187256971236719515996052132974002013938111398247075100806590169268897516848278948231930130464659111297892105219984449086352649709507556218542450426653826024615451537439890094169141778474762653119919478242904870361736305223836625785918725255951881780161359602093649905082538308744189581019473643317106760854603655279350585679679588462078505689783292396666258154479626128723082670753992271381645122490582291004369371017493188362282595321890668195077089036128510043935931728486620869326733651251261881389606939749047202318821671169526720425107121787892920817477717566289676132992664200793699046911767764249111671227665318511516903239850039650035759769200676411640356723445816867751261951118223946725354635551792757054877463793014396948249276764556215881921736615352717598506373084629297716401049839319024945431029880682782633456143187192385475672246914135223670893276781692412358176623269991707234298839808231656696935320766830134133121796778330211571837399973809777163156834279272816882335104981605124144214443426736996288104788805905632483035198104211062289918424792582810429425187051666579838980120257102792725382834127137515850099296876336645083743364648040921737750725688203655778865992379347073319837490076849181198840730661295455664127311619768773670504416954187937648416654432566744430625734848926503633408482058121446502891399835586228740598560620829811007802019723556904035004105742021584549847602389154415695649633151031540291953021130628881540191480620301362521350683940233037403997725641320911941887240735901864205384678756730281150915470909544650907035167740193576198657432580655070919107521836154985543158984598192428626485671880131380832380017043876254694738856924291927478507292304582920782179992623195165392850097468655329950425565802750678466883734625297485370041417417203633472826465927251211637639183125792553698576420162843495362979142921329901344927177818010374705066969452790873251272516016481046819860380085839192262783739439672527473587284781197067749603385515643430269822426065761289932058956052211055461432734112613984789156953708986684121851803199214091887684983394881163719706676086969096379245909777987363800006366891881777460475885682439729372587055179304024978682922019706412613678350955784058485482411631836479571297730649092756870798987846969600474780762890025955346564369969170504143178467608125667647868756982306940620811809327385090372469046828374912775277876670472476056572898387624256301351405533902206385947182958738646970840857730868987249102592158183477856618220881440586209109256926895468344393404386152037972026142458643719850057456482030816619052792350386165349399809935543475319724195153170339640495240842426087243431885553032309908449725015679770892988622728195992900445691195686976501149069289832642398232291560264727396276724309911962624363365647930528320169529329388754169098392813950933799968304600467909652670937696028736337681360101959869738563940728185163861891251943352343959173715947841914410511704468152447182128787841127571407727818581645246297265066165183315251311067933173933453543889982474822634925735100888413858641092542214632021599965256137963597454473768332343909461307066316252294658193860978797825424587020841003958229545652310421759598193456424450943376919665066731180340125824764498892852615247462175931871813117873266663011046124425099141858530612195017868789748793507774086429616240713884790136012466255106333800955269989965648731064025254923848364642441774727120513926283437930365580841746663888224757369914534622534151731242711245272613266847163229997797689493658675410539172241490898718292831217687360977569081767991053987650901289170188569333929760157637477225264009401194505219018557801272054295441066744356755679549095811318975001586586377728756531177097787402974606320658563382199669301274235221237817969237179372265006446123374229713223713318609998326027209752505295254630265842238698746411125027249497362922572136086707974124707138589848299338883868909847190595950975128975939685973120793281878376458697386889283572636496601444222967284218742599411539155069830326705349956067618936348191465461469287345027619395625924892292424406344729308472765840125269709868525748787760555734397178628948361451554789601177013764444004964482746962225552979219166697977071169700850949849220031349431713304379505544645870772642813836193829222490356450732131712364927932961017189631667970821600089192400417223785344528618443979421406610159726727130556729595876860456630796653444712827193755372957706706956080808638798424959776416933450669651036790961356992733983036586347646451058607693820574169330482929852041183463364716787602798665369174498208963410587941233936856432630660392337880381063369209819372158834455796531353700234653234834813634528563070307890623001401033131787295184509890535688271780341843141583109077621300052058909272003815966774246980793812911329005006779309356443112964093668477935258636086991031824110675572028453426291348226019829857897866032051085327940709587162695005701833424764803423117298006196918615781986197642128184813291442127427598127878165835193904368607098743452454538193352481837214658411267994666826294082725658840170548089275629360548478587604844136045405006153855954700054450046337468622713481782359936563996598651666805813799324943624974478807409266815709958075561245725833565448529323541816072456926389189524547448406749173043761604915387510219899876903467553349200054262227058687548805029973141287410397057966105194264860990787055180516712855617360421036113123839766005460012053627157428985148411641602790993468070766265730455674815390373962978027423159800201206462976356882309495279344702690614877503429215388484719553693278408178410077983991236898171124803297810778457061713765996892309227665288022269171434639525814441968784702795430494518558206732475635738394939542127194451320225755523284748637298650845726680719078333142873218050537140120163173057090497972629611455690910670083067742897100591119982560804584760275212029048620446637656019804515763524697249417135873318731039007842374217101825891828842734515336104971227595035426977655184965266955076018297894281415999334453145946450691747718566427560022546920668999112292278049906178310678897754798310015639114719524915075923125427215255647315844978168665525933074816684732961541243485764116611507113911204985353398359541864107910574547909027352095322626733284856308909764343642447533788423326734742635109107116199132838257622096145970197332182465971897421878823798030148746063680954205642497354525086686628806982430664558994832289810068841856501690355630087026675339141074202831031540714675967082055057004851386807791598506167751052306566954399156507043968610372542805931208592624682081086087301296705999323782344008016795454018387687711533424270631391644948688580131507412595650580492966502780160995552104293239715222645125720063632118744187749449155451188684904108798988085478804875201537576975370182671256765016120766526164936960323618339070800354813690012586611224028208423710023727091057384351953479645694245453854505716039955618475414268197326504059123266586982896221927162073986150185576647301883189524979892194762146087605806240450411879072666764632347515149804168619282201083262454418607300687608352873025690417352125269097242868827314995527434187207629080815774456418485047877759572522848544440680086919565617128565587239023558160445229135666443455837024148713165242632330041017290715971058497419914445118085307666734784038789745274639900815416253524832357588869944393133246760734255804461008966342986622933166732681977300530270277161395568006839148623747837169270095470973539699253496035758378773071423250790812586958262655336600521555344568143736969846496558203252805544280463938278550547067268545747971693014391319281326460932283064699535107312459953289087120605261005105866941415837529666652821835182926450018839755358963926015777823646666729616192027303423859365965963713633649011585734555245632509567352038757795228338133592164013989908721847337066048200557592752189298032728321786253535598119923522192214548858248051169381151777554810091494097615912663470753913996686692784274536789162785337380345776499082263359969508718003502769402285750795544608501971309044064853171462381525462881123798876493049640118796764150663758122519730285411084667344498533773197652879448739034812837956493485936380712000784144959576064624654384932195268804046151109166739072114286704719147020323194240837023731101049225323339892763055740664901023887665730373348738960704687105627133242884060200942589778159635542034096218756431059367806526441022691413411232487736608995422639761589322366033595722700760265415390441119340556219868937053978496477144195575519364500650719887209087829537243935813800092993802346445314822615731298993780228338084294539446252077680484073608541788757468678756049892705929655512207000054299426511319401687339557029435640930195032008012363497738379387067932108419700046579812806714971659815129134877537488514717766339289798086488613709705655937314511830264637288689158153209133506350150407276854911350418046416213664094676720333564371539517974460511135875288944301107355365476739031496457522279431346006513713325017860590143203848145014061817255395541706282353373415883445622851917262602643589993363184648160392579084685188252110225734845679505739437343694639655887467910714807959893664787228750347594301123107273745504251314192217313256148707226685303132116431579301923477345713579581510927061928770601195211486848892479408453327514558539086702806049200548679724944441917587436495293606678882743888872393221902486642184467169770624172568354672122253686449869474053119809781899487780761602847773816447682079611436372100856146567534869082156507688744341655147521644024143666793563814207060879723555923970669951294512028347033735765088898182597636928153923455236640705279548461088708981722252062333218450479780301709649531441421068071804295377391879239182572627359910344236738724860286927753333065604674927153268416942300529868727043106612826371952995344306783349296645833442581128433472183225636003912721201407542436291894284255776122010688717862548833086843487637372551676112320371411972065849971928739232968533194887765813504843170733122750499305037832370115689920623888460131667233734511202079239981782736006254310736291696144226412615154203872587774743862381767256337795739223036645239422403090347872996001730884286338959900731096882160325229575846195926631500661997986976428404243266598280250834323583724579097129396000165241122511618881734867036020079959647269559574136602004448643443952422412875507984328700298475916043243104722912527129352306771929295987153360496343326074225790567057110939330741929571172792777157448684271606306546851901241092922846207213133633240914934150078793068054724430448262848787902948746421691415225708040084141862790938784882786809756026176044567800300703076098472957372318205132630508345549057908829706109663736073887492005296839786481001669674753848009970632092782517940047087840722106324318525167418294898603026287650793216655973497346227805852416884695228133848701900336853077449465645221585097822590993991361778730640191737144445257679930625890115687976910310193575009510304956097343884862378653386915690480557254159126581574563189721780568089528128852580908674119616834568288444080736711826083805485722600785006350797605231550142559270346197510110413420356410136558462708966522945722066109606410865916902903073128161411402063801689219807221141645177465596933203873831651469670671248027204005316337371416998186982719529424164702185672175012442787654124393799180922463850432788813101547327469113672253065240719122711504058752341602552240340951693482128027653175443048933308835367562548835804296723150431677180098870395486268438510873356337750966387932698736556770306854413837532848476917590968755063259193923856245667902595139591884056053848245301108749068278343571886145766253456328562993789101939978476220872083711040730981993320509613628836227347352967737902222867445550246166279063319424943569519467125979639249768664373266778273641971217033412517944511674085162578443450469059386301532044503960727944546323743749321606447428854649088977543843522621190308421148279228640528537944517994603408225440207036300584812630333319217830621167835270176896929059949559003318959767221335830607370425349324491889513737369713470516459845824835026280294992081821255350564159676520191380294517844658275919226723393747306432205982829340141752469392171413817984306053664148219630266925467549517720453985822350251262128195106880081628144286189683131630843473459120743450387817699063113863366899778869437804868531280320456698999059579014782548988316058284161092486120868935267298512277791551409421097778049709393776916842931968998073811576189479560227370567516279048940672609625878333204079901482491151475280852176955252861220768060094622042138413040818362136830394344683745557736509956138078871316965748297176768012301708896947645710939822901406280434438604530083557307438666940173383505586701263226705468589688118047707723426227930555742846617318039282098484484929627216050661912768917341790003610929582256761493710294407470627294872090625569156830310577630858492024347339967630271428111724374509583399314944348368862020256501144494311249891789036710760387657827337966489304421360304976062808195958962466019741984937639587763279431269976108473529258094344303562064959422352531689050498654834058267504805244841797124321874139491023594796746961010720653761490098908589065786803815496036687671246081434028916944385307330099365442668235831992693785040784038605505712426151127095653272433362595993144356588209756784066509946693686559126589603503749895099676954726732339210850151329190762825818025712291152572828768700498790712416694465333945034148846247546663970833975732534536721456897277096955210340679151343044990443834268953308097546181575401850197414899063606106670685378869956225029490725531767214867955206840952912461771987267625917256150447357782882483254881261648390322108762554371251563272110220958923495221575238981110109185313083133786180403164887895209200722984739910982857613917250483348139034482249618681554005406308981699833827599361033035044575022897653499812497182623372679325743753354752765434799620058601784706832988292041274152197301364575061054709809784933544852093862800264612194521573789958205965979551522443385682236953473942023840272744342479779921220137880115788149206821693462350878358399716274782300912186333211134682847015015732867095165482717235676458056538857679940808576979724822609282779068234335608589476535690529480824273845719817412885314036422114798663287475459923014485218221790284998893300813751455062034208401752845996964767374674896824637143251257151026130508241471830941672327357735571390492158479703233579748336493947409056941953025265505577136530951776736592678880438705311816289247837210699071354419652877068710135449475219803795224947467649302974302186146113021846055024114423207661249204424193116589150792640491569800971553286069575274959124707994140603738229187378133746088047063679116636177617971643695580642168230924077729966260899193442793244102775480453655311300025832791698911111579104624000867759871321915859937144095777911637331541613675385210087993136582451194235252033630344495890929787736756020666224120319583475669339719279993752724677194972009771329499324596808333310463526714777261468914540928331608396223913514183496195980571033480710058529558969935477672191672119008256846562802147022432461495347840483534538522449201670694117668545471407537648938218691860690289490321477227674031700196186537980892923469650754900321335046016021042386999272404267441325979519605720943107487898897950962175844843303857099239874457133689692445834991058877864743967224774248359503518194860264789930885413897778181703784166028606061994885624931497503515914375779279710107710565829981916172219181100287372061985747720833725672314959914158444734036907934858122137876471064969528946039626759253182735534259004193981118607936072609286858672347231654965626099425571092660081775651107692934588095767646957827394948948302018132534767594106131628149959118918438298529536025370212493905912141969014181212833334400371488508324743293779836992559482570185402131534398972291786901683111976712890286386922679736713319435631818124666597009899065864805736431248247317449601878448794865956171841986352444627746339299301781702388170369393529540012256416751013342799304295116755010339432592246996092301112441960613748938636937688738785350009426284478003850883708315863381142920705352103225980954314572242439650360316828345453708146020967300614972355838627812261603760437485467789077408210998619281184419800885210460472972014832383771068862239506205427530554764716784466930081902706661157522167530296496641334260730803938428686194669400107401422781104110334822059616067898134467481503644436953074643751134385447237793553229188803684990183760121452277584840167872977860492638444989855353684617988315577104367601998237314108363594481388584288667052732780952848304248339707595693168186671336690794148203860955110204872188605497037680380587653152055537613785787580995175232218852959689519709298240990854585016693750196029835841528747492498176284217396030471382990488776709361536059438072885331367099462191591459303669524455294938378291940574364428118847207914517189091924774529600119539038028790026874704403617641789502421955324199838276297415327412821114560105001133063377663764674787724325167925428883980185306169197173600659253716149832814055658796815269382316146922870203726165103744148068835413439643295218324225345687908091253636883110522724275490077484131019567491039251692850170009287230829268006921989705948775554531585938173652119513585960850083565979400335892119841178694703233766599125433207604178900828257105433888670063054534941202320500432441643739039855795358407229420847037574293863590152078930295159456385236599342193919473142242955055051722981642867370498329542239453871522297506430592897546961142986177573996697976398409681390283780604514908500228896339961432553471526430461602358683233864275434947783697110867829081022042288299054354561124233379991396264068856771726989991572021647325786392866939705628652772771043663094189333408043220883867898266690917425071724172847212071403542884795989731430046100567415550777552533197854320029576319484072003064738666454927206482924733063248437620882223182349554728717030222841414987557693344482728615867535708337308965355265500927308403476633368123769810574972689811978896346006545475230672007590009040139859033171368405116968103970781840409483454626199883360604181929583142383496786753385682930372927122236171023117473910027175542706768421306688602265338603244135334999753157493821768264519609036575784575294792688266365704996058695509707393724777627951125149128542888597822703871332470440522454116883900520733286676762332001819134389331600121916176647987146151571736230780863684367240908787873081829147618126215051322370440925190641356743713027015422787169793207188844758386355299038736462666422445833574356196680894392366878781251131165724855761775851677554336496438966600757699661762587348469567539665810638043642513414219977761909558443079106156947280820234738439296437632685330754780629833135766338335021471443636298254104396861746418967153522384892171830363240067434833962914496788500506158568796306891006270973125763672435479912888662853871768802568294777148543913403684998106840147488555447959629832130734839137659634492872370018839208360632561913635557306089571121924457608228760343604015857605463482466189182992956919295968750726193706843974866961428383490385049474057539848564535752794155251986847779666495509314277323816776118420652371077563130162626130558305168251468389009730644023797911936827126884140040955057931654177714090500547007953166220528019906051872378540535903566263209485639021902487231394005580732556881719455547005075213060054716823632952671581263006757287592390147296886263782569681574269855070870768581097060474111759737719282133012760807035666825504193844844278719598634760539470419131507394731856240932230789476415749231947002211722631857871869216849854910233740344144341776838336295739776750371785197103153233973937447888205750862498121295708244008838258237219165378167033279139601605913821705858125950419269993491721920102464151496612967126989257709480770541888099391330497500576507585677201918020776947971358837992815334312268104261051698354074300127545454265076931483277337024098849725747554905759380019824240188456216847744906529876744698762796716348020032395696569670059514131550860530585743087246159927922172485843386161110818511721267878472822234238878157778863195264838942463071105061457495281483064019968587701924035547914514087709748000662387724430934627327189998967353250091214170774228954064267795724473126420703159757064560811753955662769405033556487783808493364070152854099718864180895006990785478963404643183311951163076912909678743381895035823720803725603255924538966448985393890704559587289450167649825583873397175278689903558392829609643602533969417182218484629146505503519358409766624253746446965213154265213444280358853176000620304926902564272685053007243258415580699794770205459882300681136792568074294696904646316416475886705744715635303701727125936723574415211761621569824062589710076371724419628157898217405690239946711482798106319378897328540302733031321688085038371494089342254648047059933208848635301648000992142830870420319918902371590096098255131719756612296207804456911998414840947502147004294283869298194572540870150166447153544384037587041011690363213254286093720262139952811710562370196923904867864348009123949223632127682838458936542980572839712145498294721081375917445097859928918640794384684201800996706794217227090909395708154233025735903009232590633919295421949514227830110132730368318353624950683833770902338487279444636738972595397225261098790484993689684504320973449315628024450910543100536962201399618141549362156693875386322704356054038587868240735400725721211911247155780532059409403589626046847242147212837382014737148506051026401354204519089740074063316551118898427081778664891260360725279914827146702195034582212418586290245845058172689960623537412898142996340740432126593832337108540961170801172044052625876537245883410186946209330687256641012970959544886792081820300962326118924433291956814318357148019460024872453301793979559343490975997358770767213281543933532427994898019260728987977166284434884078122174611918925176308642885167222727303916890637420655784489408742801950157771838913245456705696325139464288905335267210734670150435537493610933083408608704447100566229534573039133975793199208561906364519411872312704308305314914825315245854104852737137023146968774240704338168260534306888595150850694277638566715283480670134965845486120731797484510364537080858606472389776698075976816119704677320466830280710544822276103933634114592407815958866193001726955072212716479800565115598180658347325684595057933860294998843966827787293068632993157134258429408420215915023335813261076039341965460575676284905833491128652028366216952457970487445108831954810826929409961314442626672160436280951235367499999370777063199540713040996226631478147412177642816124275765859186836587024881801946437233720836695203626709300774986455840492932359951551129415162552399890234393758313096053883328698859421299346773082973886998808911678893945404855374483765584894929608094102515186831452224766432915660049206827917306288459725385353028088305068335407495631100415247985420790543797107013919185669780099615718484852972364213200842140429450232112552709620763894527231221837854449412277990016784397303750004297658761475207192121028314491105643754983833961363748023532772161482534029180892277816460462547116144056788396341867930415349868455953258301553559640732164526107437156226874402921691657743744022661284647322558444338661158123144625130719669677561036978754999152264150909894901414004404754482232357337748145290450507103500608429613362787587664226643181426879966516020286579041025755983310694019858508650527120825811155992890711271749621405498353250864070882248153468622182859037556537394360710625835209341759665984499753535818016882302782529603296974367323795574793303022919072426697638458946178986829036313995609295540311241613863920148914329143829226486284569639540876944552210783746060477071320056755297362876518617689552500370300218867107047125011109917405331537688154515554037194741237160737067512176803111461105694664695818056242010004216748717589602527218772401324091971167214933129755340666751911351880014732357658321576848147261989835774980269639593287628468413334276433934281160845369596136787056175082695609494649209323562191926385059419686789172270892341505139949225784932225811715037540979454863767900283459787215223137157164031419895767684623555395832534867500067122709241438273209497851785238344350540391439066010568805493050376183990886427730864471774152658094195761279886274651910088231692192293408933249174303722139292649412165372772828629560374286878866766555928188318687192103619749945876148993944997791100081301192548372185642049438098315443465921320447232517335703159513392337512024415382669605789994567917468421193308782167462423249997143827282450987238672910249255468172552862149117792967961713228093734368781083111089937380126213255215806469050735318029922714756121165945277577928360535704714282076537395033491840727849845006710486315654424084256842100827440329918610297901576935226637074621841089928157024133679053749858358958829411210979805035666165326200891104236294386347781552957366114863781404017825025259062329483384383242030978137687300818944688889887629357320540000918656710669365393682362719711083924025819834348465078168033069994860204413763584455059521925272624072980523220014486286902118791723296122872291203020510191697696929737134099907935520468908205280855447011926602080354564398191949720750429413099242390941281837014588945073317800830611464368709992998438268824254208743022180290958741777285927893475231737559245654427119876549361615985032333964384394782409955144496737691316782246576994102719321299649578412797164025875034549442881623179608543074794447959203902017430067586538254775260013163148833586997841759146474172811285983459434757741409198253568967292594871164392618566566386866593840885743877085869024302533205754436777351352076857120559142594630805726684644773432083089397751092460481608239281860546878661496295548756961179507459109439293319104332649897684608225914569182773925757021437276558336960647758807078933131240125237072110952833319895381971536786076192318681986322630709213033279458638369410388723229604271465908370495101006129425151875330315947299367191891350283140478449515240400782671330537553867552367352037939661822707694900770233281746117828266995334632264114063485084863947642317709380263882971382186823766088471819039746018410491695986369058728305992546196943207837371707389399837760541714277924467065043857771035021221519452897937501134032182368668017538496504611525439049275142881936808051584227588608267414183172771889300144714137574229167824899169098049261157653806405874380277288747138008758784947633366599453023868793433775835692797263054043441635848964309409700513763966453464141785504504664702386837216285185934437848674594018894288147867220437189930862312695587075140042340687119098645965425023247826095520946588214515794826147671241588979014762293206075343731252585519966994217553884956444071507222054406731103618595702452065746629187080557844774583564137029581916814320529793376081688984784937513410626747977373886315697439224108427705226018546019848114547840306329610711092330701942123239918555878978136224646328413518324232277964396296626394559617771376696221949384827392761682165610272032596976149817925180406336463292497667161772666639806169059517096053325956788225900494007069572609009417219058666978935353777300307147928188004918448127665211478013728725149579740192672523275061200721167035046897790982273251509839308394196745741762410831573283980951698690285725947177428812287785802242074597178356555944058027249052517919109239178583648949484418406244054316583186127878286949836462397043810425425042188441100401491076309071994104337410778765263689884172322760599370618552836348443413693849612909405017588322587385965785922281710313044003482391978706861002958805856379924866675669834490938822495427787870263690362921121324028291294663403472423381232413981185679845564673444761467058891045349336154902136433172561335814208729049703651555837488408492190000940738021922409495547523817874704142660732509735093238810867904440671496569913481502806642628096873008740360952025400346853009245735418437491815381845038809608415542802664504307896198240242862441501496242206844888720161546778327356079415047613949830808585789640917610459708253235890443033407961247412741135238840012698365141994966737033857382979899659554653932363499765829178407071501148405339244146278323490257746077108220786353118188721514209401169371763798460672583353493097589035465540410868272665624245703539666105907158848673481924662782829848449491905617650067189291405923989592475033606640014873368247437289445942443680681996690268172507982414972346407520101780491964665926290800090897491377392600365084396702516171680523171542508858598540536946039002777535571158462822125471614326392847798803578829211424187473853191136891801407995089573889561374397316206820877216072619073047044081120180576078938708569555758005790307058355150847659710120282740793638843706697274163967771573998258366425328284017197419710727287973647257644323118932636278250209883144897169991644479483853337071230894798221944747308199545660124971834562303441735376475329607926011122972102319912961878036706529577871165620727563998103699868844582187943350777163537129670005467863889939340651735526471981464823408870554376800531284344863176590329162517245843217008970257901489952598766962155416021723080918326068932099307495790271016810681827816057769084007539156758544908284873601558795927025390676844257884790860881151007538940327992418983519123445819899752231397111433442122332349362815956635317298585289843475321173343676427531708838780353726034889493859756595294798063352739717452564142168538311869918560287831758772565994683270286520891779333437423785648190919835790432715242731585881616418586926386080469120194023324937923697497656500631493534070570729908220412009811939417578877739735297416375448931573754586339155059829026093777156809830731301715806163793369333480741543377444345854677762702856521986939529924759588318504060855930791596202102442852673675023784175045274094478211551624354979953867360690838330012584187640545898120014060483030206431158512213467686202603994111288617872960371665410280547159461607083293009185257793976958137815444568784894950219829544495292618814270834171214398499442162212847092546875650210046789377579818309701544155189936171456195441457578324946954700384683859111392523439667339522694072588192487412756479977954213838677132425921715080839197341110138914376583457602050350069827494929917429396287011912270505919091840475798297343559953026055492332714527688587046002404143782978570911277747870425945587508744716786130621097108862690502447992057550333629986408895820151763393946456332712873329587308298591688534794471079092826297896605941318041763328920579202489357218829750993294008362896753238982049447253895729663088652946551870663901722635196754610236402486276686734369841093593339241467064648704754302845457099049413437033468582947302209381567989316064329717080472479744286430127845934576579170809392763971604268082332169952478487850754151793202887145653658910087674229896951433671826546141154120035991087302098449699184154929510869459613059095293697272579630206234586868118766796495780495235785307629382727672541721795833270353222708546485704524043185895969744171678246613833610953760621991242996618492390889744083768106104436663331059128465940912657370609092957152025497276406241579697079970918275264720756514436445480124145207007548962593028788373529799502336429631472356432875449583222812804107562065526246501930140440662760043973009800888015351770547387822823403056583609950753705078795308762676012802702015075064522314039236716861485237908064066203669659221204644309273984906367094665168643468002351880832784424601123119691070439084537159925959129564765260177122826703475938509868709219760134553969959824244186950332896150400934955432397839259656583349699072853028930693942877611135974946633881958520979406806815072786669004790853324410544467624715603223771048785254543980166451572084407631850000146814728283142670658777658998170756738413748341549686785611249109085463437122622126761846120963418510850382859664191960627870379989283053908932768174290246504318265125238336671926747531742146625267653422630131146323737653045069638826597757084974897269311166581472486166757458317572524250658248594392593429235310401032018696336671264481161264297077255827531423029989186443327971080815714356858179662711983538881355231152607723961640749045547494306899857084606439471919002352527621030583448575609035364089430100643663734125048497067022463833470047405489631067567722076322480818805074747856040355653623107001980986106041928447567846725522155867518910886511494436391853166205219259685478131848306954120293355591294972294950704193485507997377550095235357539862094524899236101347922466111099566250837244085927526166728635113669420170487710587375702617992804260357609782493741826025923208139574719072911657863530428163636458356636700389185675054152949518810140704854691237575857236420316720944697952482662399621047365290168937412574802473759531725391058975704038239854224035338435643555712558880018203866722263252399219881590475537061052719037832400085629409522375179048444023433467604144940764648995130651754431278931770164742859527756073802714881382517016506246890896690382946025431017584500009074495053027790689583025575597512086263757154763469569379268045152694189154149694514990512094033644508808869326317476546286461151540422369378915591856198603091443856722301586699510172629481816316195751738619833925993613178224674948751917349235306634687126799079089471658386661135756736059776984693852691888972575156035467830319167806489407492363076654861450829508465913544347428866267789137719568776857085631629120486265995417498952276924692202290068053388859395643004141336773719057937676057879439720143933044025667667231410058562705165176688090262101512804304503796551963886585277990098168889979009440923966345620046436678757194685264219991316291339984302941420777508946863345318106746851138797118671440143095132950019960076979061058506807241102240142344422169934483709530416811949288219305210174731492408491480699203053031502535816337501331124858814315927227019042936529313905980925529380123463937438149458410506468777614185138380611529391173136103704155248383703549717367661184486667651375031522525048502297601005285565440786536411077659658712453376878374851463225267111393291727924445895746089446202264017084017296198682364343606235422202486532636631292339474019106553457132433021796211146000480240078313392338560935473674402864939267474520825950400715676861149055935789642696845420968034590965919134942031947460782437497978955037785366385007356962842425939636288147678057291579701417056834559006347749891697201253292228375074752429999629061365421471176185606409797045338003147124218108086754200234219818557983336959140806391065693338214885834242725790558364068980675512204017086048739295501147464339258298258598370320518027266092760095804971561331178258411124605178464477621674147402705133036726711203523695541924304330491986846378940325631112271159681423741949948684420486827893054807670432508055158753507842574582504562460096112336914213964595400979141918548686704999717166354923347913117293249705082598156775825832221687969875448321423586615515766387701792354477993039144452883931708790077896108644667599217214344897832791099213351055248770841355165735218370172742029041096787849495697380254292783332085348767458887705168144496515419751844496791258129677982008697001024112775779634116138297670911596642956076082157155320926186596803342734439534429131153969769560671811497562060146818060424829963899194587276217672650359350165950298746755771974809586411449862740970257199641399545656080514570337023983643677885137947167343466051184263736643522862547826334382307357561453679549895369260561296304826654043741459847824096446549842068001758867791763403901378833074834074596494801335005418453211235464174088379213844820579962065456831020605101169859430620319120022060125229909647653134470332257338536375379409390883027646634656535414693119803465644587548334494822052495729179155827938995838296947026397158932709337864762941627556676669236138456857213248521668457519098036069788985433138744519405788056593770960196698127417832570494026527572980986049523723809802466209451013145105181408055574560541213317134809150582190027661067440895539665442358854558913610813532615168262313364726290873604206824766179000209668258223912396814238365968080920064811569136870408106618125628162125815734096684067203588059901908748532226757882794955466478251794086233649968185237325540244629646280193400181896835776163276748578229162607274737569568165065737029947045257308780487941576394490824787763557771105753149370320426431207139216744917863502581251008462170262076086782993415058192514876841314262164381624241208069487809932747751078644272984306922001029496871173663444735867246387591124144489965179011601766357479696385702906040751406101322333758301358693978543399350463435990540746812149765008162354748647271702259518125035762856346103125342756270919510947188291110540779314744909755626569646238427594426960216749409969631544611765202023249091414692831189143885789376230692532880954704642807915115805156363023142443792912188891188474789641146118557679800337705759347449164329170861860573361158615614420784732035413895929664780559478786665179928407361809665905705884840817298044513049845757612018782590649314496027433652530936348488274039804280924783928425008145760180446318193809072462978139871499667290277986638591853390241149444267331093765940047764167268511458944939059989728339032466423268393057347087903692815933627030704112095159518277848070125872699415698565921107892275805295189125582470548538941729463342875331909981821080790749520699946286774861002255014051356924857118585281067305166124714943079660096432975789775600810768683528220078242019436255079699088170573268775189908350804120053770625124384667361801827053774404165520841359177883961788762918276158348022853557016399300150452580908620286966198201166110463958662121648040888901025917707832610953167357312439499710053294394347448769378776471784669599306767991859921736220418996496567280850862384516928895613853425100462691933582981905600941961229085921116408513288536845730527252961959318583473842010899128245182762706852226534139807933549020083248128397033927856553377452222446667475080894339226360914934701936887579794666259127780665994720925017060560160412564403935767746754511859811597912487686357184250770651054479114664320275777116858759203032246343268679831506065960095808605878198119640558820817293353090504124081667792765747852469440726652822591244146525034033681222572622785516564475402124211673514959883802255815163380561140574086460328647508805276465260724959284043661119249252944912480806396316438049903347589289234707895710938798400958576152825056869947582996768775090256048510309708996858343453928993642557572335116400551778634357107626209672410183658529977978526710726762140981901929384352067444341913241741835056647944142140484821915734252139512786482480048459518517274571016285468062969425180218291783209642458186189778549307115019557062169382947526558379392100723019334807420890858108921242517105128942117289649932360757781704058494325044640838585347910290802716567321254655365791725283763154814986085299442782269816383446044101633909468329920959382064967368306973576523778055104058464911837100975044075911424705899105236002335450053017343561846107924086835945990743268336721306073856031591410147287727284845138839847618402745251442442816138596122989912071510774952994656962069196450040310032041864390224284435829879872475827525130263973442530313325167907185971699585786309731758339259332849097366378831702456998150074743293442719584526424121131050251832674312641897201128781458033954704421979614288734328102045732383180669792379559024289894617843619626320000734764117556426384797509072284927520444419219366353445903608030319493708361480682777900864980777261196759003865307924691798993009386538170404069238375317657040727891040630503988313198518524898925004687436061067884957816229674299153222834887684494253986897433919701867904136253640971268173537395218206673597019985169500921155734012772746134695859263368264734614366852552054966048345820977624985205996012378651736689130538002017278808217778107321774035954807234108989555724596719660199757963778957167775410542893889693631791827056575899798212150140258770323529426208891726980750404108682418948097735362235253901907050297369334563654816665229521853358588398089208123234745256003001693702847477982649690159195164903974243337376079723294092608677334838741643800940902977837127225675915060842405578233140730335535256626218360117604206756916388915651545202755563549492738113664973233270324199795745001542051517323566957027390952245606490343736800184617536223353308838051530230700526646683302743472290349145856558605217137405858139947203658788824411978068588399964660428999637246360460134952067502585647193977068146264115546435792592353001292854000489253061744898706193345467206298726601114137624199309842716652265608659055321543606136203925802613020489852648437046827479912558548953488862600768591223517900364151148761797710057398182581005516772259971628630854461152409835524320741049402449394446575035708061458568207566646151485097633057387981151527288095379900203414569092655325439185033837020017806211529981536965408873793319354827144677222251235468919617983948775520380484022472932443206318733421781186202874972494761019979124662634469813390796413776711148167296833249857883643134931295942025454039322673479864585818495144026579022553451348141136960559931325128238330755212733297293863337629303764164610123526535390345208344240505410182270347230026508818055208914780529123967216777616600772714953678596674524922438186231613497723368845504288717930809783455611702755619812121124403538044684734409638621517588771905437877423055726935655733824730749243560331542807787169259719603065217427621032079869342658700798274126245242838874306579621427341655921990060089392550147344171983204358905831179745341606793649842616538319681198041477938580418549747326803434559611724327810371942852010764876578962194908298242646076276470937217674202649799066851821922490867984968381583221394764937856499360857322717329683304900495468454579308743195094563532705901300489504288688138144324793400941621826464885842115998894704869175908732236965416196568166425994144184958656090140794177779213082771578444710407930421214588018309356768899903555547673284448365172885885376907756771363615545112404984047094857656538004239281101134944585235077665947867945614425941822966277961785168285510774372095262015571870828393529718120203373648719810570657508233367493044741463712588502583389508707499591132428874354349273071683816789823194901338594041807074959503763933195011449790415624279642333971043464196032376421422788181509194107717371816090132116008596981910061484099904041967127719226831539876407365417130294252125867325626330674800555102783188895578349117086722375243614453445952932707952876112145454131664391717722812797337832691759399851239186468572771665341903915275950331500044981876403690400098146039505380085289261213686508648083728236766674997479659206549497928443494839441510257502950154326134801181791220068471195728680684521019708069080612220096859454490076893605707607214463807077523238579827037974575290536858598346013364441696991866875052652652485824341531538765802290132361444738879459287212004086066987329451809439299904297995872606850187736236991298860865146236586497254535741616044543293004862360643878884941888762547503827802815827832650166573755038798247542002580575759694231256670596773867193944604476294300532956088490422168304869190602568333084872756121571666593852644409471058973905472554083638970702292940294558266384575202039743612359883179976977122228526336764344023170304239429668301136862119821988808848361077977920755788553433087762388638124913124982873518113963648874518386515956518615931589384654102768618025084986179464778535096738686222322087204825156570375286627850057679329978409345614080566136961435674065716431598184242567202740771247886158752341513089248345152691241323099501550750519599059740672176670638399062027971322540195357824203386928658477103389080345360373630878994991493899248315249315331679482938113768716617771874607710760090302724336157917178429180722406058208326308762205031230481667741128362186378623186494024569172480549192553710860359281945345352164510290806580045637016670096825478050022833258274912811390097022797968401154726583050928763299819645476107900651241791629879327303855079611765623928683186367736832813580845664676776063076223630386239802934738181046448331422878922686949183895921524417783192892107071393528618911933748111276017060999361004219130573312348101891781599008054655441060797595016462020280829303254021765240955948616175250585226959790428967477274991709698503231888311033637657335565535420667519418185667472256869922425133346535303651411982271115526108342618284693092530989170254522460593414667819808069335751056919828595878523661282682798093000019295653802153549717855853346204550205579373540455503280448728224503841273504136892821526334691932344120897885425651152930131224143436451754605412228631612626994630913401488533138354512057710916324002542952346934897535173357610660589628508073925696259329289465898254651774661324329108136914799311440013847970576084775270526586034237016947133667760669049796720119937591274256577148270968029346990921958060544491912951957709186043368163851394531926437838564283716257363786850483083620398011102326788041188718143661828435650304868675714505868504998243223421784353802155300192182811132854819541142630145482006106300449356191119257837731308821784016141172981777946242551726071466848802168409501512292703797357983868651531214456087304184508839765641399450385080691061918075358310799768076740509649306813447330188240626312139132703753943560284061722488707645494257219190887741807694423809757545199896580021877607150299722915011113762533943794853488430035928593135183549306797269535742070744508308376550761576651980735716143605393146956005564656255617083741479326135183110368100386159323307127282853947938232722529128367173429654229859505578032477563763835646373818894790411048665724387237531396795699035694551522669416684992626135513371443221292639697055436386189120540774727601510216549498504020462073805305057782316376207960446649554859879342132843066991437639624571255171643066314267189007722448625518484057365953150598906779167298694864435929982404519410069368410109677686805620947224304244832767619460570064763013122770734851731750793045471888019975243225272227016437860132448028772988623936239781948869069335344004280889147747643229629229785819912926759631542390566188864938982336556409737196045293697030611247777358996019591866894788170531166687038718644599601918395716292018680679767677108424565599382606354689703240643051425531900082922063569321854735193200955122832423327009448853569562560660825026537979815126013691089318143624083190395101859658639296296094837068852405165823533549329784885917128795244019316951610901724138294011356594359118351929247716007129550250065597919292770347924828244958729645414122473033145882893806906792777846567741862174638009875739524767980113100413217279916196088055988591797753459333787961554484492898811551496576387920257508545669445418221989882704505781451033675769515618192518772668064958736444361277620002013600885870704456290136117963471223597874565248598261387486629033502815704081173020565655618177461289203832299544120691871256205291534203898471768905620716609508719016871413400783452316716544227071514993813815386098307319201771995506359011954640956903354362229160380007144371594239367807916980691744160215302788660997014999464108601801130284377256724044194021411927778323975374926648312155091394236830706550949529885059332734078103922897591023855983124716137401308983789803384151851841542433843931646528732432480882881330436896159075165381413766817826983357681414524686271609071153612887265048358393433351168938072222097107834632458688127025281137792888034343304031339652753122930960846621411725158261287696552210371917754566196751505112490465021587580486023128792081592334265899003377746665408424408624945458746932647334748359668600372225378914509506464737292237190049532582729141998406062377786744908097113117591484985833083673410600806260663287840679461204495696030591213645591771574736817900871760820988057784883812827566618904916211017516549437271277878839757156182481747896528499871618419121992128779986358905042363492779366357168088831658895583787392300670686564331589514441850493384847889386351033885713945243555366168857017428848861725771568301978162147466261276413235206266904014626087569720278247643828597541980901659852435455243150165181533684104682483973779890353301499906372325535367163175309032067600413205040487740166129019092273314740945939197093075710463059393731991340954106028625673785317980651549725929322161303815304628844791113579559480232073799252662585234493101521824625638319756205259382130858724608371235546260430798177336145980777998826283913422943435232566484286229649303974748036205944367126116547892318756985902538641887313492809586412921196908488151475417273238765457513325526659754578280596146611008381432446005253686320400464774197365973179434904180929784906535381128762867576196139069142196592732494037043939877831170339078848829126831994550636353295782686326899789619157635924060342237696552344941282665562443441191194358442440663607909008461791211742894646091116557037843741323231407724214279438382762831333969698020885615899095540814726105183660500536513789450979674271228039597430852023628983612412957672280713595006142271134710644710911062460041802888794012623084810645939866572714960947449565648385502705686414942143767503423594044262263378668360006018641615047990900241732931896775490186086046714533145973332616741271660720855458891406520614302090993359058426166925895857845891783864226302983737547958318517193926408819937409653634343534275244364831016758191878934309313110560830683896669311521698836241884772196205758760253539200872441682359402305159434593816527313319748446759985648785107123353025194190232816288656449866957971862480747273194156981842497263740816769406749972460934777089767677133136169217854472229195751218357747802900811216629917511946368519341449948560838378644940446257103136155244164530411183880042431972806279209347456456035916267422742179201988608058844460955443027844238105462000982968626938206164439350546496510901950188866440789634544720656723653110688674659085960680008442219488932322458232021220050431889955006711428673348207570644235342522491769287878064728844769164804110713326669752740001802906953148679767165800015988721678591711660989782889499308556439866733567700684312967199173401910490888689011721127814016886943566472897649708759149757290979943893695484918267693270076563914567044576175078516796589188965522339243176785206780793713558588831461950676057602180549719743606864348821674045104706725560174879624749364896106181962683037554103795698143982142003328640756895017293852632648590121236610893826033543346426600371082320195538940719969894848050284799808781294041077784202339776667293755579393828695398953511171144854724416446402070809435383521691109393123302679131214724050144749489256705605691871177986883999667755055319674502550819928169804237652678029071360050096674371150308632950205537495295730456981807998619908561616327874407389048706219480532140976973609588810460204392144917226144535697285751798663141968114861294386197394461512024678617117340866863967534587359293995040004267672310125505637069467351869240567358913439843626811305607599080633477491961169088054840750048009339920511779691780328190913581141411225094836230786350035701562375476224230371766060985585451247792067076347023191201121560067200601911584102196286469603485445973408542627234930410449219604057248828586464636472893668874422332615198263817199424165307923457686354084839298912637508166613989075998942347844367114489243371954562464402184961513839517101779040148488066683429851107880659410754305147019838679918907609212831118321809999770550586221370372182659549379468511298708350694644040586925528866063228382039962802272437044183510848315237766326634039703032787346399613772384984945915467628665085063126845959138444054857942679964510050307852913763636498822773369933326097786415391624920716982189070274038463669454146985817246684607852574144560793121843717375956234121979750915252991878334354521047349962980645988241370988988845076965948370066779385378232855168466839434657006685941355344798227520611973007352999809630433748406685409657520455099476651141380583545244862505851129180281719386007203110725951840744462636308453844309239271587797529586529624498613366310104146197608661722006568132276563108585390297980645409618135118102129107839394375132124821881949652362810236232579428280874650141527739245166438031460373108354698935032644414931305387901309402235070969596289607546685770551521250605867040539138053311982024895456480458843561243293461914502718586647715965628996821570234481407991391229124389003936248146201124135205650020884617762735845995264482265601385812426579825716025386593657145643701154451053802809866678646274285524407904347361355523805835392010952210950999220707377656958706323329066770712329393083362124552283288519300428817523188774269128281876774819827985982180945187947473006523053769712988461176008626130243843959940940129407747656213481819297189166813536368115464210727133035314451517449493356342390990328223256677251271150071910029744871411199419138258402551963960865158636873660905391585061411819914528224268521269787114257494622140351666678284298153984517488117878677246013510618772709286405437866413327751075986226118798658646872141478036143618120462427972597801712555473424444008803163979217069272432636179680629649694123795605154896834174861538929198632143302877364815686438635713956869135563020793020195598600260325070236527405277669465573909914649974700775500612162101468137737933278721902859469563165319173652729012347645194525520251978381888010027834039636880383932394314258852093205780501770783642360058945582617692473782130069287201715064713360514719833944713305610107034625319969194125322200628712214301934131730033492580750359708490953048848157526673978270491314289056040424428159152029798449281149344370883601167722779700240451734225490664379065234051713013969323262587241018140952113436384833496346203745866165452433646088605536394305799694610231928707304063042801525675907747784804387534754186720424276482039507623289584500096611563179676571007562688852736271641610302288575039042586852476050087355031537800511716988491931930958062177489312890918089349378705506554233411802179744146344915217659589331802856148820371747775318853093509522782011367698092388466138455887099558201190017572659586965244223691300895522682438030189852772192904669354768249256567616239360630364734833810097709407787121688106826226221395812856261693086453736961231871029715845102556243400423401496120141937528143915529200281371943292021127310939781787044655024710019317278084610180439069559842818422495077321207298078403695609514229925026620574834680966031485447205515100059482209634010723562848325186729283335552902712597496810586773038272885077953838941041971317655681037010537527049937485940904933322980435590762187064386375473699604006344746795822972290025849689627260862082326302909650976542080694513082770095943910656283929625314838080217251355249261031974142810024787399378966970721588995229243548152580246196949348154460300154153284107187530762329595214434682946308890468734242320457491433503850887088435170868877185320573298397372185511210959478534133367698851099246722861151154703346677921178944200605102486431087419309316659090837642164738437022241591024156680557041746659639578653786635417062955314466405252055389036987013763008619443675977828549207743283087814279508118281898963339091879546662119319704116961207652625923372975139623266561506164775358146948595992645273475968502026036084639744721890485674845744301847303512900526757020654803805849817480055089258149055191842776079309308785126018931624441688203900050472921254342676908161582713934812714384671542532322473904446630823099530965012048770142405535944847769772831662416254138577877179556853876764063397527731144621725312864059402102081721702369428393503854718280551540912649712791439074986207048458644586885783153772661395826287242683477471428949913303977551785257871670882943939311099551674926067885206259825602708751706471730883386950204378802922496863770064028885177606159015959750592634645052114012614735348426448678925281376919633401609907726670023524051985113405341601872436935519809760979006397351732190024262936294140097528358733856289769385140426172568132788441202675562081455565998885657626193411148782275602242623762577065346614940479053044757094193348601778800951239763041909357409945649324707895996779919108186162367474132685221963592085553664081534202471032070603926706741020361926146580631942632978898307989130683220816394140758457626362362423610434624221392198868958050858819638554795947702646503723451194106462416994189964934228684240043461908317260008766936076648696556884310758166348092749355904115497693556226557134289211038215918641960705518734830363464744327276222256376534269469741483756541062562156447955800502360867948072061645845371974292478074455635397054631431363301460487378478035634945970362951480080818708319948121121948481756985174099133338534380583075279176703147077191124400506705211892471366989149389762158135364789854455200931431304270550994554623219631452467005388907526678152144023674051960471481351690690610557945125955160114730731168567784255144466355279484826699749191405951502835373789696507020449349023226426917562602173146480161396395741272656395307561080439422836887069931124850890058089004510435144192027165777445164815133510591347293055076718422004487983898871709629768803951770162379659493527174885237438145591584854681574377912882596218988705936931143414594100286007262715109991231917765819028465683191944347118826954150086836370161537688669425689148025397466854638149990841434901152943685983425544715853023253287548545463944193585173954935335886959462482508094546302136516893130818869698184746026951907001402885389708115993734286556017212418780459433434726897290342871337855657634191033551430313096313232668750913243540855529249475156275872696583472098479864520503781341891979909179811668172677412141673129295976481028734262002347748290595434595800107245818798857694650010765606050259621301840628888112891874280228705670969067874612613259985136438909687747407422006944173429059038518198339853014330137676737628614783446165560306589431569777050518170858074092549084893764621330979302268388207125302085067605612568060852808753258578205057255116092530189895529288131353041339278628847919305405423309202091425500155157071598923912156464487456742652059785290216803780680150057323495270328402585416891045931973761356973187978612496332202362067167754436636718477648236084267945914056015696923091402105199537646422587925646863819881737899834268534490087220140635072727680332083317708430270945627026409723806293585691573538726486251020081723292863900342717457921607543492740115415827173057593564400828058646607677071341103996857986035278474561698711157848766180503514619793774139544398704810037684033775680612141309470358953570700544172164937050277893245416954155990076489235045509702323463759810620118039192284078832442598515666326779307813474238081641245866801963664176797665793091889386099744107351797719933760984896781335793650864782994841049674519109664282496351796566967616168293103490906428551417086712573542870138493231558152138409145935365083125177803762615337211004896750110840180870457955586001636667475454623330962938418070780278651872894749994308471064930849853558626081512036220607186369327214221283244159121805435323994862342360621595032282041775539593600601207921045658212811754407649246088491186917208415249286508406137344539272640337008111090534962499464804822190524148041013852986155008844344580570527801540600317882856364690857785022664604612049153508276429933767200023405105723693987286609251319589999015791714001028869999262316865034179489233673046849787498853462378462451364170259371726515673683208794641182731619427884180508193259699761418719856233488037535996796990559853442123780463866590648983230687751915856200836907515270056544347823566986748954153254054123203087293084891228052323037698367871148758583443691789569389612583868154363894946718629356762787239484875539769129419848779731829708750141069903270957006973976975991927475856624584564637700349297379653273808499087662489628994238259575561977196402877338344757716299930785472213456579223180268642191260484926403174409859593997254946245693233002167991117092414262720567892197217236181136674836479797815260870498808221373255496027780423757279042522802216629535286134801416093167743111257875953307184927770735705706640935057738538312727214326697693213123172649673498977404090083053631405689362193936002070405151640781196373750314210273704276480359745428249413112965063657914796374439089417055787236944660192109415596090997656995574557937935369492957698765192950422797674859554431290499362190937823437064470764029532092191990609816286424866827322147038051418809976539570683826966322976753365969933857645727637984451794425601042035484457646181691213933085194644122176091742751362557297761641393508425380738483617767738764324698307458575237834720910132260709329890459135931743881193973265869424082491157365422771449333665162980489384019317135432494629461576430709599935424852263349652343831775125232762967258307971282461185170382653702122532538164701900510783334915550589682179107535430288966694883258481978973767020336013837324472875312692386746254890529374365451896814863574614951198092320201956031754739142984231761187121988932653390683707281534975130866111560507868655925149290906838373536876125426717200560112824836390553588146350683781362296009644615394811128417063476690710793583634561919903927644872509720031167486045246775584899436158581010728320592269738983544425007020571501724320074176818946537812718854598939659438099379481399203072318214236165417191088793985181623978400050189718997208968313397982513536573889095138409306394556469050742966942488276963797202659624971856602366350338023107122319791286194249836039728502031788124206462581164472335808999388555211515537690576598808058964790123193354071196566540859712981137590133883020786442917561399350913715267571301589278394018705754362802732832580575878560936521885408164834204188876776870407537065613282097365312717390345483226758334827514829998537116795261795077141931085679987251359355598638908987700453507113079271412219764316772621845963614211399694368866678728924124763570574634256643021594100454620253540237645368623060384118640561370231474690510078879907283921554812622030477956547098152990342570693098844098388857097123404871422790482518732847578622530261638547086632282641250583650416615441784803688188038849335066773977216146674399758534990106976334954358490760422816826349061496774287208745991626123896212240728413362577939350000647665952228369946961903667483485643067836699918671932250333095248089738552611832191968577608340283610190571825269867718969729229896881717762565804982168421938333810457268264735847978197351673291354699532499399006957872582628867170480867780630764968764424756469711215331125254624983480208587033204478418389375693191088932791731849258953353126878745767692139230893150588831756732789302020942232894747068949017270633796262914407428413649833748550773477117377569773299934732416418833376605033990622841926318226450373040195082518836799631521108777972072962706205086000124381362655685273528414490528714976322579740354083505386403081588373477312989658830780485270009859404444481115660165123745055763783674272484047702150338379599688043314637215781047156316235009220144079913833175765212305384554491013956875316502905283016218433574616512430117802506074108283800744809571889713053657646536337085404875346303620471438303017359058029481601910513245938280821846340480350180421380309229281050199487671242909934940916142143668446282474225421931726077992235039364144132695145589468196208686063955014594037685138486235748111814224343671655877585390157414932283382695575851816780275182793925248758747203249292924314982076242368158072800204212450651724020863205890304321653055404742388205458921269923023427344823589510863233597824795720710733629664660323733155133435104822022969285313930909331701494265204044638542375491015720455635147586271031081956303583108031513588254135407989704060578550126318589409836833590202593568317864206870407154561262457913867007248138304987430065675589870642128841977303266230018037371281239266111882544751473593412679085115507080117298768212346885857139770898802045696804535602766066392225490144271402402020382412849450790856310354476743749063749719964600356629008113878667546421370115306942453798615064374625087646132828063512680583245295791207710417344528419382073922261700134382212060852702540411838546167829664701854403080017022047488654719143663819243771255507120084952423711411801486517000484527354040017187681284707489123784999985421007636057625242082535774972995503641290377781204658507973606722316190837500235990499364924911618203655724016571102055949889804399845027896921731189984717958214375881432486939496678480330084765964060569513217365376736886406133481533514858458979915447208695211286531506722725756562627910044435000141950820394936494424971282526802647850758923879187346420137392734554245851946993745778582207144035153340534822312685549875740638716190479374903953153212522929989367138624764007250487702046861347208186630865256576568964126064232816750582390158956352621357677486906615957183674195379753133488533401680051780932280526684748095435599615082470016242453279944304155281315516546983074305165398249652529228333054733075757411085952752377787606298862042172761857160918630967587347240367700095747109069356102213419326647343593227455440353925943353684393080269149595018530276869503636905203457480508685071367924211205996722763992813855603238817461389624212943223745718816287437589895087165760322885783232467982798501850636819967852032741540616503056546374933053013943670569666498800432942646743398179435343165170599054945869254472236039586503816214031641017787786749765466023125594302020192252172831040316783303051751803353330050480198820124958089749593030675883913358850782610473563941396869730047624217421664922860212143442243822732989747628990195951418012730431617300256292014503637473724454779565021582853874256640169008455748332328535810041793941753750357817911560879860482967678093509521856715409191906397047206346725230473161557362726111136375960453205948871163155840842901554195450062239144009226349260150049612836822349637996633245039120170168597167209298305426494998957749389164384924293219589077619307301518271329273875287966560874378729360379803791881060991449216987226922805838004108937021428202366581738828625753541055353633007051232147020219027408280579592073022511850248549320598969751508292674955601872310761458848391303772695833980598189002561940077514595998009142502303882020451763690092011540997912911048695957700797298061618868011347920525904404491519072506128019961541789376134948374608432300420202358068563814962523799883468772751287118497685202182151462895631896897505764814806389942908868452473624907584599280150999295361735377982003913955301325862456927981427263911750086956943731453930229190926886752382187767691866550698074405460731968971206376338606555642955098500411278390470890879475650313193446668075901373548329848536983360426095485972936915587198003784370592326530846581037469478425351044506337157528445432087405764459052742397595377029457743591428008348878532091154468651851653115229062232987449540629378714874265998233300899888809052578718400313472147796452240831326452718902440767444146540611153162389502116864894317350562462372749028555852527017320414039869201277017721970753496123318902994155333576349156464409641181473045947711886871301085406318923440876487187706811085822971368206753728699315245398972098014970112409031385551681980460682431639948388347114051691148497498993269659795658663125043846103132003730243017546105198543816131258485770543354280199723108619902660115838909668616221731219972603546127585097961382771470864837824060996974147816259622706307920185105157184025579590482883207147255979318170906304496260186310696640310801035751581623679857533617740051934464568708731374815112198219655243315177486469475610378593015536785946854176909732598007643070742955277934577816072115478149166879770585896502730910067670100527495224090596493711096682717691872675844440463474234200605907777118185042930689245978255165106763203928969567411322520734462660820946981366646153924243174344683597522509933268510830245348915690145122092848404561496240304086234132831118381297842603268713290665789328237555326697173811791490468946705206709705806063198186743087018250097997396637081714021049348759679554731080262738126378321743451661796136926622381616132316476668452005223285590456127205323312400479881863923561735472311514358044225150399154948608507939434049052009118063000743542848153616658428976231164797679980216655920889775053050759404050866753792054710761949312693084200771989599217341002240254549080821690406832023756345447415786658000912110592216841450926777967151912033353059864283595694574484477981520431789607065373192932456685916287524929927613817078350159216261680517855028317726584373921717344195921207682387068180017140389457844225883573324451940761638113222031059079342841000668284381455613135378097596947676147641792185752531384594365763629151099944649290267534356987042054226325568615321705386053699559448146939969719936109397637761860651789262420936762352683579212986651508666977973039761858871083875648308153192409204898880234463065976360022800824232410548798485403691166373007894113713695874346374592022425068732638384115145659162977850237257448472268581061461456797140893629363736212711191843682822029181531694289918151363300639833547706875389293655247824575354651741030507721864957231844679775194885966936037070320095845610415025543483187816762890934774093357656405283495037579656281466837079727191525482477625855653132102929093711354576943680073701201537678685668839889443112485997768726060510466463430907963469086261306063993300020288866393709376024758175379136103818183474738714838876373788266389718587582458260354339615565759669090826985400837446490520327269321919613618424589598129521990021343946805519499543906892091955499292847307738795024962430684397564184188083724892751343656992668222343011320445547413172771066483595841699292183857920885353049385771151519147244181938423357977349584481194085078810133325675048343693787252437724501719157637540230057636886913762658137935659312544241746293957619933459233849350051077740173803937269490625061612181315990996771633691243437174893113435831835232538252548500260573517279553207475937682279482424875895223999948727200140069314705512567647103575728813071313964068356868621788321632454279804449007723249811704318894160949733422297448595792838047711204320913201155093005735573775608515899450361918262980768671188129224384761490647544729614329174813173553999355925660057547884725819066744362747814486800012024250313695751058025427236668147527678099308046784379260627544703225656474534886775391118317363602340980312928852540461104644364688807211182883069739950007476795019847951683040002543930365748959428546871137696274645370768244197159879417634615883563241141551893399759891519743157925110309064950179436746561162485417185246145230812663975520676857400175055869318940698740873079456082104580187450516531245663913583773052467450021297599073375390857530137733827664294602744882461458758240046321844662566165297968865017178867543389671015100099423214295383251144970755430424329223225677387728252653442799322956971643587959011647770539531211965642893627172626458183400255736422236001483711984379952196586954867715151143272930349851118173206078873231640173549571931448236835212348260426836506556089348560008891392420646300048256486028040264687660233047471232427947683204386940257110308088926389450287712124923531018228488464590346799849672124010158750567332477293660637243490251927604463444540955820952716013818513299537689117858154257600255942780600591357899857364307259973568838751959883319121307411280695415475247625125280828934269111165919984091337848536645461212732481391557791771620982576327247337573736137087360663544242040017953383303837548570215490906685284380212036048340869311521575912274845994794829797602994754205000060626474455825348889433301369914068003909602576117064389281876251070849261303101096581833775576671234624395482312973922877431271031640580003710104253758743738604290213493536864559629026230080460456573844107885927908916184689130502108922255506951020714667831829884741155532562640689092942671630284658142889345112373539241653279726558188287276957698683861217764815846146995469424389706319039729832065512671666540058481866120673496171637390783781423825605301161615928613076225959256497696224612419904048587674945294995742975410522024638286915015864341548872574511316230408483329604086797013759075311967814363365994712222277412607279616224194243253945422426666601986460963912264114901140387405222922158665053267277835088009980606210460317181107206947887282541048172388153898925289779866660406148689167947129514094541136170357329690201491002857744780278898612022655234321409446258948270822450183886765252233952253129174940485404750153986446983904700145029024397074274254409488902003965537352051539228191873591819786014504121676328694624882618067253728492605885333372536026439667168765686952044405519665689446825886592329052949342854540261922445982231820058152222774050721642076420905041241759972009668873435723302746590309569573416873613412918144653203154278137411307229395426216085966449655698715093571719689135431467799649838380553685328895867421620607875769113157152503310612574007536522048866448323238618014119272948692652671585572959431291352730689540680885048437095645622253822456231465567125332937894313301861835930044744191929252772813705215885410660274943140621217795945618134787367333097830775012405599950983295405765365159278207143208712613185502912883599129848074146451776684608343925917467142386580597900718778187512000653942423648496226745866089813178205922157797202999279529497282391667188859133440328091435429174217154807139705307062524447546275755993048770519430765978462402036889121803921660304659104483819136224469329544970937011914316876609127823640224640237262560882138587205429237169963795890240364311873207894268133281200641466590973080439432725215329951517236837665177929400687474509577781605880129567306315322998929244664533989981258291682508159343512926002638942772584720360759948297364291683645989738096909833929549234276337378949236941555166444291814812436168306462226892918512418608291724126430089795845916492851512881937948813200595335656857885991069942503913786170105042210517144056370263490046938871138989531612965360267734752225425676269082140667154565955569070379662235688224601770100884370448432397911708537599411487725526747231269629022742410042872768101503185622506141938529503976084319436159456404767557629609020026480625602962385013997253217983379564279796449282095913535510872664478870484493743528856448337625440455893911882131171892376972359803731680237494072316406155157194275432278176144193932761669738311018350618588630856382217255778963481778877411394249785131355033932172009931511826372488599133210560121406473946769398353438514682850413674405450959852358937775871077842654061223945849604127883559574009053206663987365149816713360703610865980157240306294548049400367223864604965652594415972544217068005740149546834014645263482684516829999937278466773525062690781560099198903548856136612462644597511665723113971040338844050722179812950434049300567234062346639411732253787317146774740566397857000112580193540206131877825770538840026391912054894825244430562626313791914355460821187303933321874965198060050244282206143282767676573140312899931928071656388718566333352334933028910047850140083828627570579864897029100840576643735260619296300611752908847218068579369128207749001021446432751710976269199644969505177091786437613255612725498396628250480517666755084712073023067850665552201626380868337725230235528422801627340118351774493567598076971269376846825282108145007739103128533938383075407288017814321155596000738023645851717756138698620438665616818051618857528656603910372108644929252478497182980051256418875877632619005699280287007013439246726906711274271053303019072040401249071100076125803841053044144139941412550336690347401795989998415686696339299309688402743543296965229963265162746637242117286086153184556287396699968244957911005142680355065405050998423329463030145073470578105636498587745208041186018275634843671620477724542987049996514519228141321965454784597960863003413861999053062502856396533054317917369923631662842461426385693750525705072765020104953485787407861189485035144956465495990754597563065977260926167458171420925942323929208139484099690573711301138543694333504443560976148169036662579808243207946443637343211682016477966971634908502510541079888588439018114400780459699733940096062386868177081076727327828682261418995394779174480650041843813806309123948913512932358194678887871472580321070733262189350772647328591807036793752426029106931057481029699448194832002658659430475460539683587129966313527881347615081613594586941195750135710293102901871314424766240724170331787356978956947272351407327816156588985445041960786081921803261696908344282709570928203009624628348731544861010529001124475859221740753713231473148486884305946687771989841398415982820326593750076369522685121806403663643581893098338631207478718391335096980652730905787277339725602067047818503284382445942904972924676516969904513931933311428332433790939892781581762770129599995719446106751624975684162518122404235857464442171280767664341280158737428367120600240847758667904628738796859007198068484179627850774403869004706670615745674480990735004158054290333237641212933264638265908017891126780342788431876175517436508530777574676867461903450243641028806012891379079222304960415841876182992005591395819334746395580565359453514531978881041999632542060754116919149028350404706153010488967807166599573378033914890079825638611311324767849214795422864974603563046492629053583928248558959477635894970186653933536249373783533623569332897977079489558606406166902566461644979991447819721665197080353276937818970153822418456970819396080442065589136038558805580762976187860003679303175212648476690002031217674800979405775568009269640610939596621973375740944174546472721142800184073510568532448866431165031396420333737472231204200065353462874526906610811239609580515927925377367617293077603942583243163957458683765274076691600050484631574476401236642261845539180317736187675270275451235975503150060535797503397320920694527468834134244614928646948053436506100647386246112620814764347511289997584092216939183671312561659852831579569221359289607327461664306693651038976033430065957304381678071497318178308344468634214182258764538858945532010732129449189873762532157455483648818265759811920241694644008013912810214536251242936350643224844011931923575789698542475696382446511129584002574141871639618397676209899828357329584164268561519709642908623673373297554890428242220205619499684959555377799044425164447180434483620795341021745806315272938896814684254715817560489125215273560722054533989284208670606309651117889633563605330053261002248539306262733436828756054121225132220329790974946866903378828454280591430589130638238533264413229072346216550819994166499755716646848606791181493838880492982840206030883565408202548768572274816306791229454674455790587818716092789767418838655749749795294341829022831583401942719163826332613940350701740167648823434149153042635873074550701485160118757563916409524098490123706160211670653596415456770584208103052948372774937400758886841842411333355170782968563818389331407080365282326244206074299855205235929430119750368296044494819369409567300625664942840093177316102041377292663107781331023227351199876080414375759021152793333392243508763177863171326575913963146450135239107912132718242179121227486527727235682700777588568730641767342164178192801054989015558236326269668667573351523602973263347664283294026078900479903142231410299686088467702265105113286883771570230405273917808560776846770656113376200063985303017596997305456184683661961271134500225782467460433159905369442763717782280046303444835367464126190082247530130519396050349744970192094472598572164694158710350098715180306681403547882443247074094951925719958235524847901542938228632569379644111019703020783427748048474521832307512544851263440123568026991741725080900061303612514613206175825357180657835948505116522395406642225579682977809804331519063409809130733573493575678553900789403559203256762352195076812932985932372909385252470401639595791048164432330971375850794434113990681602217289072962109018102626898390158897508689038800568105632908257900737306461506898342261624946611902235287155347231835213759485472734005809273477542848667417071448393284805727919620109248008701438722694467907211276237551178712592758951806157504025955747340071181549344285797515542018122679736022670679437941927883925612366522176926310221814261564884036727534434802933296525457903891050307848494100727320681826243305839791608860339156898532950818484032173211897506056567661550959846285057733689650368241672718132596406447536485879497343521500962576113190392927953572691581677224419099127264881029073077057213150353102048607344990842802057368393549271436777639972878387893129869823069291867523267786594305105143117550406479371646673508576142197967570157693722654320279680036762112079208621913645033206187811185496093511566809714734682916812694657608620432477725455761244281034883974528966790833807257000683608572836483209495769096735260200344438735837098868462857259933610572373725784495038608151320922854707429734804872079180984926267890948743179388830068082085743196501139880082574020408499012456261753713035880277694518053883503887975407087920565711358799852920873171123368590665616505883883421709718814705757075596108080625328721790119448053783148312493146360451945403016158432229438468985128905171810723431327685330108295808272506853111781360286197438130847427667258305295126807256128017168480069965410812687706387245958833487447174848022433620044089504653079392480589773556851356438119317750812409705816860626828031954972669456830821319028702391308407836229110057491357437369995183840759051391704682943596264710063346838015802050308648630897680340144543908180327302993998297500966725728511230244546208290853700350223522509318462759153711634036055751304407162589522781810476436068035332073193660110437419870648355997572759650839641369316169636264206078812498237075541211776305809447753606359494061388320846524887974517257540461140957857260503212823671306913983749142176011640537264921870718883292721349407562085930885807922575776055489692070262663820842656004442071072202628080462714909465584457489751847812402567231117654116147631035209472917810184505324723245878411072840546375749272166426612796698102884394065063270695736137556431566193305959643616364507723125784795873491785702420238940362504903226601217607844978850313938102231222432804777269590473303771524492651935540228340349390183520550755898193041765591327353456552599785436940848519121275207469805023573809797155150104380733941379772892881144462360707365085147357122206789827678342190419863374085737705542698009422433933166425621241379960955651910318290284728213618651568025647033263341163711378003917027538128930491775040990350062410258688908881862143883572158368123376573599596695498979335842161176822772936467544580339459659663918498942178884696920916657953810977050751665019944327101567310429185762706570896690361584633386741705092493983966513867973965719952290969563838398701676254824129915498139588162353667354730821873865716781322847893918222218447040610001221307638674570127038093147426949487185981363591028275669987634563025147684866135989832882670499890338895355940522670896683423822544701960792174175440625816320170393567097184249512792299648763431836266269821837226520419882144266418461324723752445187210773238165523481030992012133657459603847152496492962723822614841665999752300918996201134107771400937686748581522739502999368687662575333637249551381856333489230636120267173820728566408563418785715944214087186973049585400112119428618920092908190298858323531012401470086425372248523678487493041460850406786091268857322329829555573564208189706089274467748017668612862291604560585776780470925490981570579567441762643384089443722293945136739642043900860769126259813939555412259508776211935485900530262679600402185226872266921859717659675974769566254984770719679466816485635288899646286826653680676584911536591033849813351482703982393832999473349588463339133349348126882814703747421610578446978593185011451989016643060104727384643192435402291768789721156667485850670168780181971290247268787047538566187964860124601782797329635439503384638082988458025428344574144998542841499335678633416071003677740759472260506043908780461567988531051171201801769292369250035951910932433388972184646258776074362427485160336208174329042837166524555712988701881979675186817760644320922649206283401798668692384440383204590844565992832801748386267932129245549467923962297088302425203135920876322415164411037189251557574586467189389483439517076739782207833590040479910849357955292998923351295848751799757832203867194126321463911814693305735016205641052516361710198054246041378406793255357950450201155354488261781439626241264703274211090940001761632529593286639532740830886592683832633734384027850440261252922602937271385838953424315280774180295838492643948828627312097844427015147614878521194350381263512359987218193823891658771611033908220590797404217896162638423907450004482642907981957236345726988282652669269048502170548249589087978415258827946877743957840724597379801853206378764251758595155178081600820728141196504712133199937646615361692636922027682950604572231080717141219184063976899670214584184990259199309020547784825641814152379673070791213795156306600181181047241423199782416412629352779374681699217037516575179938081143209116302752542003297795447437122907874960527842351250347237450000224919407569437051003050374591822086211174333343730505223550689676342133405867073279254813057139774696570307238401513393493375162411414432866392233844338899750793547810711489090420426087314749149868882790347556850724840533114958308072334466351950353346976401501404564944923675859490421190030909631053274509929217393356205246168112505295908177321648263984974763527840987939467126817917610916031482268719052863183276968490756719600895941953403077267072548817732603040671866267398939574616461591258691151433424554276454397144355574364739801442135476498285087806685809424059076381787378837484545914333831792224146919747035299646889398958476821567159494306977896792364179601366059508533477643326649551439203902147311982671528562391611322604575382522585858626399846420457200373339931303629791358285287125781727120660946621295568955872505839674972465894309212382413066691756774958268958465544727560456692242917027256451103784466898423445330903027098007190852321018199744547461332458583141289560089668905138456043385751421255281119728736591428272152445274517354435948463491500930013849323277552979691556602079001585954476690550015828211301687364226492949509042862089891734324381385147479355236098207577835367864699776737426970224112974520482206139782474812394612515694453308238556986388086535671329629205678139325250564630668555526862485395329544094417548619124933422588882192859448017101067413146893782550710676883506143030016591318466942694236545182155435382684092613085315048661291140298318151155467728430674405662772033230770774034576203869493986170700254266157374558211848451169417312285617831742176580803631593525350866435258758979372154826125346469463947656675016866058043555903420371294809013274009451117508048184910105761465667423838676916790045661857623626635907166046429456157006849892901954521655550517339442709348459698963348089769471243629363231811685369262357549316953582205556526323334506199351969517357542121737760215183886277739932745054789140836685198607403153935853891453296015811296179159820843265946334958770458601883793730914514614302524615898086634760260806830846840037371877312687849568500939738736801346550424641052262840813602601263359398354421755115345462327451989621207882745780733331073594663839924387102301857278100787444985408175461404101957462768658597639233744284597850575772515405448133968590531094714663475505242396338294947939893174183377445063918813081558713345676685511253557690399499055517405561664045269270586145436178842534366677942357944633216820141373601287375272891902618555684972399731881835833609598788582984765576667837546600204084748591819320239948343915506265549869767245504644002645278183510000668273253440045225148121521127133109325924419623721060950515790377275476807765936323754469483922308524608220696368526562315095682905334929146571101731024634271197176890583358044793185594520479808580227169888109321444408952826244121576741226595886286306846581233160232724911142163692474558101972451976067734692784885302540021315008463998582581918971143399009609665628358948769807822470870922501038362384732641617207343592623248613415640234956823223893422268277940433302169873561432270530958116919122660056625422000059369556803663993170950901540660017592997282467040812931103898961995368937474187294431534705073140349586087313822826797565005847404820067265309929080942333171500443380782371135424139774103356620701702841856777249042829337898443090479838039031382463019587701125446667871340050812054266756000006871590920817961564580528217135541865575363898075678259560023449977118196436873934786739367519088554399460602490439001797608565284182031957458545219989954786780293417703341642923805020860012045537561138861237756106676662736030010177496886518830456172382651594811995113310211481500436138518588104206881097008432756583974291977313253189568578619642600464734728045238623682515260923481535457475733064873571020095198108711745549196600495896634283924661948854871520166419021600180450597369186208817126708544570978712534626889585268209014300999430367564157088186451695156769969249844396634729615608186592237576842037261501404886271013585867781174638981450685190167856031897068237504914271996001316250949553722706363709329159645750265038452045239100724538654035473292115902767787582601501282166466599509876837427019722888758863302562072177391312062257586873795582035394969671412202315031122360017979752456304264325057875117175134018576358552936008598706440498433610639597309746513954511750248962600203862726875528915612025140960284976656418410731797147287561709542862463131025592373188271664640700104834981714335276236133650895798896005511391670584120051886599868560650007760509558449716499677524934465039194571785566396141042933044415708912291117098367080273507267821417533080862278864975245528100836064162945362112444177917836837503232998796231516615831190432153935051054171499387903624241032613427770021035470477947212661728056305484838871565583522048690321151189942082066263975124931296512219126911637741799731711091063343186256269274029883457540170560252580983769363059773961487465490737732283679541381768243970225932694101659974937074561086873876835203226944841051443156728099603306842229077590274464615830785341488993961336391251053579531027449798357484015206504867073600504125611851216897399597530484433334358990564836923824357376905382177779549421884208261428667878993869821061123184289035898179089087550425777878466576698776676493125640190463459587364838074683979740715743352478902490703161287715763997586370120074189455155108920987781591569195265266165189793285393481521782298877903966695701756149977164426751797572903472292384656975773180443398792122296977329701029765240076977693512069179290468621181639193872408622110432478735212101174593258783108949403771768499354497127191869287554087752308398934788676921635389940171043708736812623842369624206852087109414447230401485263009646993011349283347170431938750487841990374255889008825344821483335810189905089362470202943729318658424305369377580151103592576658106278193562726726639238911066678929381280151732411598747103959388873649485396041986743107002324548476522171776514789345050369715458547770523295219816105347983603831516925922521617041478553411050296187685166691373919354813191944261408689397841037218827235710057642087793166256637125753971131767067608934922955135695745335938202071289165304794943685838428097641612752070241456340316036737219048835247025103104298061988893490339710288642275818323324574061652951973611363041014692198323483404516378639706827581986497344778722243111140521930993988702039607693352666560807760202142879383517724780360114367210037280373527062604447944810374671151449080887079855552594811277295542748027294523185105019473604731869066205250067602446874760728931845562264927162789048460706001832438835215794389682658796401075799821087217144135484143162840647431717250157769495754342028147670464071272856309227356784209536737665164677717125340043886589152882895846365518787543240819144600955769323467993117842925300528196798047944436139186446075822791311778653781614932649151228337266369100207663336069988232357867495545944585053116419450804808814987582876345035296867037279951986033529638043893488483613252270950039218153792575509705617447477192784816293655679041257197535327801708155592187447721327465450533585837753567012031941134780184107202059244549535617251304290784099559374750895884071631465522843167649140169345276825284858529092655425895572523942343728619376513049928642974064330143027532550532128823800632739008129523083298249261859562087495039259721505724490493579198799062597581149804005737450040454454305961674200498612278731961959429480191331015246381834909777490252157777064693838151492874044871302774880166152931476841690384303636402027272964948612786254169973317526021555474875670561794864600067100720595193750260917364213000755325561649259086328261511605770419530224085573669366525191206017714475737623404487667958138323375797981232890135164393400360728872574874166935414518276324720835604635669489855249806169348956675305434777493482448034177271990470007895246877526619875618496604116511577829127430729909468799166892012506217768561986144724703234474003826331861097859288637735547965558007505073281224115282392395514316220368211811436566915620830173963849213512314542040006056621426346277028204318861326845469813760722283141661961614018561768774886296438927304562493473150823536044037308613152640113367474358350222412428899146669480572981751186068462777034113206043325203443208789247626672269891645576869468561421155946866966920691525216942445034361564940101813245650621864661347190518721620454342034603092514111932491141015400877517546732945210308124921907434691426910905618327361081187494595026645350527960810813270511986129090965361577742707992043533474099338723083620869178699044564433443142535389588419436762358962614491772763390931619948270785398521364944831867552403446170492983836571366338553572301086917792296476188510745448127238023936515105419160731355035318883232316550013337492973057457156960806519411647512363995662473292299718941209992105748086347796958850682494171343948500648854381396233829433032513467142974603523465423642009612876615675399746121463245471456552172656729337477675026219779679129532626599477559553344422582789912006709223547083564101944117852898784624466989945459956861334841372438915850235478504490590194143829470011736252675138485164373077634752643875413168303762490480991112453848971531919021768042862765700720417324471532669293314172710291264690679748286722199811205425049582846538158248108245784987043252418881172276820614101389566216600816034550544045524489325303887799328759354467217331058738651830390714757790707827126937897722909946695029899945982787390957186707359517068713192301739076573277378730396515688058682372744296273622763044442703435013996186281708514617396564203108680521047839333474117910502391723134066916336064751342978084850088005459691811998600010784811401537229979793577960631058857880720454405776537134032073839589210778136004277563103548233701775620509842429806253554459201316178859262955645953647159177492083180215066691704132307994546572089932969970106088837974349315648097537341817912994475464125566586869528023784141222347514108472260731745551830954997224179694934552786957703085261042160730730320089298810339300841700117037465616232942838072479346826647835395970894618464745108342444428344103794124321734434391482893739533266229204951107530051514156764668177054054563936242775208244671329070013604245831746881366064339160587826558731009744872848719845665680696922156247165998690214176014316680711376348849144865688962515043800957646845376313084999575785075943054034926004649773538252145307592453907163256198757782139890727355938259934472562748211632036496897210587194717547533119990412204978625653996321842001362876201694929696539451352695752499204949545727265220316958468843647186342958484738438059533097460174353808030930572717806104355112043193811436022676457350910496088465280036938566768194299538958867117401339654502755141071503225298133700021657580092165333380380342294956005146028718638312845359986292777423400808918277093714691350774131856586767315539311640536126433750777766911709869199756129640731997682984625110477562563434094120283832265870592746615019514595937562245078149672676906165904862037380104213422189539256139041331915799668047135045453002284718403671284024538211195407528958333197934425910095285037368054499052725843081299199052553274764548967443267646145500276345272066969159337967096428156963433500242713738427679976354441367710454686082432203599376416436853876433040846054221900959255234363686832133102958756846908239646466860036974687475000326391609191586023286683629984695248652070636605040006881910078004955556029261312517442674048899025001803266685344586571917505833611791057164716542999166535612362917959179510622143313895346767888696187351131083237887592336158405910426213246681747059692796183468214570153397835193185750852586729803336673103487100152948469921880619690588940696244905527405751852447518274584268888351090758797829603052049896153461251498395594210515506842715227422713282049951115436029682599267695174553360312788564900255116134080383420834402943683958215037838659962700742313909161789644009231099630694965050672305864368958545402371151884709669493439810684163989242517870532400775557856543862992075531764214334510135204692021818496805489487252954369125925957689126109997217889124942461668092016410502676375228858784397603108109546256364719512365184468424370481867579870492558430450289492359227068574835007347511795145989325292654668056811429235689125283063524707621269447454853316590348005462130077987487801583306753425442171318830291993542944660709976298451066344465488782559579618720122509779812785030487593095057929097704988254101667463940995419235168902957055127826258863143676275122638169576708853756957566803285671498787453044837668594621971238383641381940176524471738427825079382304002505127629565343161930179874990490861301556130279754317080695413995321962901208488927985667637669235453295517414649594703073105080817748791449525974321901359120782062286584699602537578775062252681166241961329469184388739398645363308707495101289746561910984372747721679858909998725263766330339544449491082630247380135565926983819381948756587775304047525186435498864890087634939275325177257627867768927741921745180043158588346582598408857062117540883721336936857303689757260808365549908480541439030000700977600047527964427438022563063669082854335152475668582724958749063522763061211563216413286510456655340245556734961868921116240127733520947490460358095589033762796273208656386810046452794843261021798630799702792973913728063953480083117285997442095926739644322016076554076481245708663332243439984848395191705949689723053908961341169636387286308149368365537779295470950338450401010113487097334352793102286466533084316314785577702738951087441133153303480776342067262647566039811614177256899929904229505670314863149381832741291288889684049688572500658727979688427889839403314839450509492979496380411604835081522013181988615343209738949983539409523552991563728129318219076880892428021102244025716447033991882475972672271832236827085510224025831870638546351645587315231673693930224513022800885904851538939230923739971165243001160762470747772886711612558624135658903211414535242029342978573215375880408193485257871181144236939300218049725548464378741021069650406317739459401664774428897909826850937366161730477959463008837799489957991351503142531954836857823067984509758679854164998419299058046339222257965988553936360583003258692997629500577340219180391599414648625238753004340139083138409551889807118071707485837159570647338820431934541586596731093000183916879670401086524547737897437807161555505247650772850234082467152557281665370922789078050129764540640968021483899055961892857774942841464412374434761349910895357520856282572616692925204453556823656516794186615792024176522002690282557493267242517542749901794503251313323143201869457501040611340922541764228208463671439941070977825198475416681005183963709253688537682888889666296026368348937220938460856545354591743928554563965746260594141532451041342518823059333087337510732407239010589842809029296003610282943571339211340357101972000574423066985373014518855370860739997556543948672574757157321021875209751588569495922624879970167120033053432110963022548449750462026364027793613551361124911787583849962488599768262524390601257075511536162799270832520931514520543107699316870334369940298029180648289184227722333879991002393393395926570943433339175613575168283691002996987541299997555523063968660709886126259924589132096828372367367547234149202170709601011237816048490257309111967666305000047564585644808065700818384845320997759452762155787808770003639341800032359821743287552859197601857535878458193668815880830386376198316028862681764065351564875034680829809278773951314942367867135679289884015365256298363653062859886160087078822189229965008607615956269370253571563996457072753415514185444380913686853442043207103270668125809411650981220745578579638191131431573166967020445882585266040115946565107948055022562948797658052883931615290059725307207317058455438635415896988692581576128393548443131445938433997250879379406812618049876398231730462461723196841153966157771993805913842894818566865595146468051712710657943705871866542954472535896087051761051313763640882492982861077666470720823571004084210994275984649837916167160311239963470106970859977611050261103218093288157261986361473849419506482434606812296207128068433783115839873017378653738864437219101306129700913576165564119499605723220885277338433422103117194122112131902699900518251933425377729115737163771379890952199753881623426437786671226661801105397808102006861222205497942539681882970991709182381294373094029705496279910578174434015297099358384066484843463051601090636223325178629019004634607793776539135830543621382618246319455604288971369132631458652233570722865269126456135362424932927791724918364996806828429942200948581254120391103727717064623326415205474304414713526722401153186489739086702128668566441004605105747318869447233459367319203015171676613695229160080086016399263049797655855978692334363109352734693855017132297540790759574045888174140797155559522477304297279780774011772089221895848136738818736007993437589875134237036225039964864890737889614684626580523725574941106588820858792240440628220019647824538536371721016372881615536467662252366990948401088699509785162275754719973732737379978044151071155130000169008724137647188130534030779689091036232751913008743630816288516153673599564818668481462736984807365633942455209057236748741208808915449062826872594204227405156965200137556732108757757547743563334900569819624189372215745825462117059746176147318934781644445182529851170398762325837225857067776468212254916981690339315033824908794650059028467052284105539297776431218772152103974257761596848088653723576673669592618095778340464569633812908542997381924585272679359790967633247977529310993356078850149696531162874121113453286756539256188621003010204593323334248189599253458964642098802218893208313712021328011030859656096137006927044193630073500518505879110407461432087390578175833904073531261176671994537800062096574611650624786409771413713740908961507814803970923673625694561720031679853503888209909458447642435707549607883803505587476828780679932403191592214827887527107985201853517978273708383544391710055841888425849527595854104961245056254472858442678754243224793710654519312919156114345576416437269405987764186745164419960382138249859491012047754276711559473421434925401681677853816124560261231260925746957487997839172551011765699840264540927313651829321416996820073311544766714828334906043351539863583980467549824880069317721482271681313120172690098909665944477941992418387216088716439994122627903247514886607033320455146264783349419657884523698663713949372670557924895735893292732968962230632753606479127446041969428404955611541238310681079413649934826899602380130785016275512451139226232036933565288957561038508979996226246880604169983142977973849476890779800885308032078590241189452762249306165975121305279173387783473489749613383205771564578453889319563200655315930131270930631447524122832194981445081645840465887062865968008970022504613325754111908833238961254444246552629302575070836230409861272282347090044393766186897586731898184423075598709413647500330749793875249498896272995612098478166163418847054693634259725573320427049467602855559686029937358380136598887623498969206084400431805536241665562317188218896775462346956091864578310038316178547866564043059680463387270681866148845592320670207764324553223088781066318630592487889190870868351563276461795184517640253856353131677450146214174793126944565407238625720669915570705459774935915179868485584554812172445199401812519349978722465036149531445149136291115454569790279244262016796588203629118695807875833727670179182148226706957252788194008096871372398173572003134067999983059435118207041336105326805438673079975062884348818727790509167447345199430675404844011512125018753103931796886120214654846906656993903439670839445011947817110480385189628005262137083488484685588926990680871359786860289781032390500164824225381720823215756650063386681875813751184621769595004234444100115962731697074912530253023683592450329663579572796404268966328685418355268013162936832766662336151978919042436447572471717756743507760198023412891964115235944112034211838856295780031596559605301823361307145476442267679279873604318134919855257636811142261136246668977455827453387783110887913293077326045405459310903876363258041869987351102532590611212466039491446316631943096904948371504050144299704090370346921079868686986882776854254741695837730082781477764251108591842551063663861053172214878399504965646050152626606064801088941408096263868294628929608135493156662760966574742655775734814292354596805747340004322255166645044413327895885394588712135174430613859648571596659677023746159813409284347082743901566397813474312579008269747544621842684246258010220444806597471108727275050169188373642609653250103097052298814648237388168731358038210328480806611017549652639898456300476195866237269770304343698062634659401887501482527865291185779885910689959463051786945146067126450031602442164660354160113360846005426829611170150569684868694381600126121934574965018113010321684685283701168603276266460827969816421867811796027084815076931097290202254371854746599385283980112161898508644925548140725788158535988449435484387623201900731574411514097761481603267956305435782874661787837780914588887084748010923572086836613182891809463718871871295431441589901218541133493833453525467904111434278550940824712156263921188096050450991318342088461629434398992281794773459220058332184361153287037418834395893514738083950110031037596818266347936933400943281287687998527272982688348702463187690148228891818236424988129379313181139185063690382869019706469196313356623516384955022768937986869997887482357279002029908553406083044425272502052585383553563071594365347396620123738043523253983099223747368288029129734500122385401094194353243828392186751311399700951502562916650613811259672170542047586538047567037561470332019857867671323534347951051847218675940563170147891532169383136727554496687088038237812000991827950659355717321197049526555665262092140376579300898088768039806613034101439530826687175565394029121750646957593387196249638239959480011906356963998416895316315589925858780187028783087558708119279540078476860202307401711305819477574666414007907763322304652021856188268784410337534005809258506169433708313672367155001498718271038109568329177768887371077566329542901865602270373411758119895248846952159326862403918675654019657242576776446557571586054464344809889368483207125061822306782646627650874042460090689442473509303764458667941389437740500741199589049314444033030784894584509715678327968819164669568942002192443116691526567518502921215503191848020513564123832235142848365770310894299529350446160242215514217384392086240170963356011700984190249579952917559872761903034721888223477808336997424591949263190937085923709663165852341093948532748873904650767911758309612572033029910876489166735143024680417041476524901465354370179031078708086092037167939435174438513026941151129435532209372135704677252256860762874599420482855092916271125706523766055491245404252091686981512497826441430973947480443800250817688195035473031779317546898581140088320999249205488585644187778758890895500317689091984073350839912243897254237441279562776452507868054506265852993361365135904751464905221610970367756689723240241305996767758091544142419506324666567488752166134963991772837388896224280031530922109519483287672757252644757812308605349458376070130195352513815574467636800281837707909296027767320744881671446276021830271596273001607788726908135705730764736545017223984029252408547599002383928969042532670450042720643832312621150261061084356117351833709697154906953239597551530995962389105805446177708554990343536869199946845074770207469423215673990520307339365082563081351321806389237395336554399295934627388325934122208186991602238037407451996535312941619137111936439234074688398823204361529459425126250441168130871069044289219233783935640385657409407010190966947101504891626447151571430297087603487121921631108042510907654842183614483959036615217857607688725371412678182890144911359937860931317027504973042708348331336486398137632015739200540730125701664226275389187246739469356563942826684743688168980229097375514257854816314709097576685771637467327002168477380198487258201455849645094698756827770461835741571012038396735056855282044196564193782293126221460474559220978378182643635754341893350242844846216955546835635904671176005548574266606894099745368611781179140098389667050241876046477827509305495838919461313379257199464935196393304118352002545338063987512984922364847045740446528505516772732889994637838229367009042157793195250588774965010201563747829604329667071370767749358196676339277574282318169447846572763058522250683147181600819576647411459445096996663329071248390838891667065197136273205082230063763991592159157902777574642543380689734082229079407553028863466426632741976205475240207461197303598413971652138598411174501991820471257076276275887769973142013275138221417153508801913300804978171482403128467446787340345836230467540360615248038023872652831054258684757598541789577223984349463210462531676168900486219728980279680071044150555137855391648997490995438479114151358337500186966369143335543597699869380202144824874593665277970249632864548383417899741001128727098155177036768289544591351929721277557150882831526373618926130239754795882638454789006366841395397515336467244294506219915907676034847011551736784458754411447486379038913080482487437605429083485478391625508446034673133689365195747899814234540764108909834190249392829445337657440593551874165687969829519577226220779779499983416033731046087730909061883923962203356159815150632435139275186308019741853397219420594038834025360753111714828932604718257857909453445592558557290280639749234602996550004969201301377229993017522361945652984834976634832464635192263291990787400212263796664883196105493886091857600278317981107010757887025691094344373732759737461926463580607043040975804135424899927313442315205971395195191837386338091162075458068828477879998326556492134584164855464441927735648907769323476806169292978508322214088955925980749923169501067261456082251251973853300371474404788578791241335372396622345379431073526404134035934400369711075567574764163161470075110321425531335076763263640137828013168099085892344744045670772313123958490023370970851191599053399499302075749744188095897890308904276317259322933021537689651145486416860816707260517000114169562575891796345417098313145347609567851917376661485484191044692057798391369781976574787048251076086058638035277270369927021115594595395551904722393158330749064108044030625162222932607412518715553215281201038388871334598032176902380073854430119198400873972336011034506786253428658515829535068657867594211914291930649854850754222821040032904346975671026796582486062378664041481623522867519019748730478832573721055878276981733124757937332904880889682560225902679314940800382292005559677117181011072888503739062879723971538006881181808914877188476920735334212306861289364804909569232808652306880127512137665833881990178118615816644628545449735747011260681021012423593573379471200635401729985995991954701661493536055921171547114766133092076257870097746944448395652907244416142538935776455219516099740824870564868398010944405967459103058471165865944128191017144103935345102302494815148931577441117735054020303940697335060073887616598572366414388251009408946945876755977654748493317570417160378998455933169682781590742159619759122284822034161789419652027103881876888600348705391815507962091579557294637925799803384389915280420004028646734156806011477249835398636359211036729857318678742917119028276560107644961038843783635890809952213903434303046038613327788274765265172973895867563303566413121718841398116598253733928626048211612866281309176911107641187643375659920979327571249098908112089252234652126521609424726416649148669735488431157458683112521439243131678677547723505009393536944002909830676972975377515483664022277483141837760229238027009522943744110420579503172741456266501439807733886666137131385859004339527636598824662603578219937815732935248651949868506840318776509559994582672717880325766433190041334070459771241650147787872827784014922149330732907386392597179419103493896708578572221148251708012630509299921488565012165396539054573286454777787473771540744384219128106653281797321211329142933649671647008962259911220887633864009790761194179435583465361316853739430309595325688841132291532171855172785118469655017170643070558584581117344864078017493744351684403381191241086512519813547951709185307310291199510191789395357394182089879138750471588195122078396532738977526695054216558016273217843166984395210876802749402781702439165556270188417745379963831761222575456381205851283433529628497772270048280645150807197906820485769713696932303611928734530887312683021026839886891583830068346674590745128193468032401617499994139831756922450307457445573841663213469965444722375361202493726188940687064371531219869765702969116331984474784584362704059432151372605954051660281519567855437862182326933238582759935758649794277460962908135417734799496072653370264365567994964182634050500742220268386365807123588011963092706501179323287439129465160899986258389125701105953653204227579208711771965575179404460042627871355820345967844983221956276356001090271799962767158963561185528829202561210516033542833013238574593534268726564823393343483467595578196336070367469783741178719791952335909307312473595032350989403028775743994960075687941030619952237073966670475277730662112893651869890676836172433467462734284355639392544241558529572111239860456278747237665645326113275747133609104589292606623379782945728964495827022154648667293641648630113253012481024319599236682395586072087143951981266607799217576148364346020881584558188911250227802361316307673077174290430778591848058296708692151279665075993496069170285497776168418557480390932406205121655283308591724428625151913576300787753840513109378856662113861415839992801717170319979396668476082494760726683279042299734268334007658821538296926532047268866492008671088245036111134024229933010494649971665328066731131316771708035176909244512415793948816852488252194789873226684268904500112650983070411672021698796616923220478505493151594993063278053676491224723244266174533569411722320419673186767748081225878383021288503990095336680081480455309514685035606734733053212921910704883202845819335789008090422410528044232323331998484823528205417997785506585061704576854737856899772513507642509790469954040352884382700399357183600522334595504751045821463914820798837800835145011253659990542663611122272934518890969967807327212968522324920773848019157039636253856550950469116921389327129282822397959864089051002503889930108969457104751395213143099620575788826299203377213502381366119585426221793496887969262023700483197236696510445379823790631188881112625252432589053952564649530362674772125832698057212992770726636141709978804687402751650916592672030623784343583866409759366483575811000226715011479534441789138215526719524667192469010938964769028741585926182498331946191225513171407638383301560622339004151246071516154714178243355117040288937292822932805451550234395704798182719628836131233733614868864167690898682314089741822880855514594454231393473968727298487272399211020904864639762854276591430932300643649030622567430081114623783699475218709350547597273541592015084796878217764232618926544828587968758045183497224039198699971802481258612022796312067263150627260925749473008996246830077230335756121626415510242749382097803121594404533601502525360995613752613410599113178595678417808869993050670567524042930078537888163113182349007781364459324176507605781085245319479874070689595040571383811524549643428331629100169225203469574505648329126635733481529817369605699888478950246230527380996965270459696524958812709885514658707200143653705252428217972350137743372348782409450060066623216833189340621441789600840217769506366666372896313095406485817050212514069368884448129060678848671558223111542389482515092936316852234406854098735082010523675278816845753001623920849914857102161999769369228492803029383271151354113053062372465239055929711092598877341981750479992254120650393829172292140952966278194557494935932633467417943649307792715360131066272140218185276832257014804048286529196590087795050440857779838271977564611692668164052962115359848795312456783657424061599153133540192443807945459244458313940525508358697831668551007653677183548678814956558310465451647723951986467763007671918072973130283973755982394918544913626851997605026652333154731128493045260443074616285816071602460726647595365936712317598817643387395957144756992550571968698398719550814992400305920319588952728208012067026924515779373108594130799709490452234442974550201804667427925022304054359729323224112330443246270372617819786087354757080355878425263051959783032876416715183022954256955196935367222859408999644120038947059200212433540843233391547008072476097747121186649160156759988822807882497077827021699135044309014061744623423930484335055667890681803489070817637096421833172261842987481364713257520143860901796147958386563688355329173932445625899733851023983556370925182080936380536708675298533086355313166671856291752616040685150834483593010645761506577681380434389919282826612917466597773208936556592862385993611322533235213568071793113540262657162052066716909189777509525693046802490903116825531308157997361191874222587764971771512425724966524542961351065770028062898589159451943929221044445599227948855437377708471470021768630546721471855051836234134551511337296352659858735213396812864483323126804047047634444768040027407548697452139224535426029948724615226089613978205354399048508832051789850218763646969888666855399256696644025602053125489397844589731100099034829556182775277809141011020327555292076924493338076652606359229006643585223471743395046812398161471103225610590373530269710791447571714977115820247622993243609902680902193045954658578323294546852612003582428995522133969548136792673143109490186267973084201698393810929670890118141189748482726770343701953522188068545665530984663701406563395000754189390844356491207636483207874491815152181817815658825064642881525188976425784617738650316360794244075224849258633862421238611476437911630522031384878356637594482581693924357562223745425781122761303568191592820259127718346734456209756052049742476200466309881214239605223481048630973958811788723662786262673415482347632477063244498395451083365916988963496993737533903539693130521024134113955174058841540185407674475505372969081401473950135920241830261050517942470140588019965748715465854170250403503418848025745305638836145543887254295975262875381884908952781977189375441467902774927383546678055419490913131249411909606835239960399531820257498172405611320380530735450044757862492854433338902445722847145385261311675012663453084555068344225576605602345833482507103542745827860714579882207865375418345531133368706504600702152835227927326890723617019063429886860549244525722807233064509131219055022135076502116799514321847062476487890315613905064145663852098079343118223280133673229298420835550198671910821818318661493898386423255380736681412524859427414556998788699333201170389838652051883080685768379645296732860374435734839386923416419252558594685281941619271346695714069696049451291879218652667669816350648251872134015413146610987683710873138716773665164513606262108628697640251291620894133526278956982684423782580002030446254244508714858273993012736023652468377581531152164151920757430556653744972317272308806262054913933142633757969643504203473947307590041646245383740660658134003307969575642389658487078466372089436726484995677427585697207063404499660741293790054838518089822729014198985523851483275970158015827524076731394824921618262755457098163672765882096405436100357437785874124995908853489030292496095740975486362566501097789231874615661974934128402185603050997343396443494064704433601786939071534525617701186525468369117131253257990604525340336984807364975481629757116592190809751987412641810300979772675817580084485111351893542910374168607343211551546537606929512015927536540147934112646667787208372108128777331389553172825879759327050731290294296056318246815939476726201571296175891685862512466690753302797603467454432320788723647826358793834445214396664622786596411478348439234072995862249100338708712358099195444382012204451665992723689946265236514821035771625494315239787928344287834156172680398369428596471375640584798876564673745313030356893775737539418332336766608196858583535610540819738219531446527374989614676231568429142016044025508873496184647508133456017826006430817263859533133280193291724629023524693129224348603748798465237508299899172198318294001361143297636983968045374416091599516254240875479902312713227434338782666920908682093580568311774816666447885503621987047253818052398777178097732460557680606587605335373548797175096211445826236156097601162122806301724106552360157804425286300952800165261961188418959072885390999508292080174280426172534260845274446790631671885495975141060178731817484810673022605115781618713782660140422601843844894429350720561734249989592632763531004945665511036372040379509744201160344805766016213025099052651635212319691503788798228690209044017449654143117057621440659704016410359649745829805131499942208382432558212805664510705509153466803008157277366300908760425413087433214336031471895778672061982792929997629421332069259512940851479951453375899870152303216391133794171841038928400502937610164798416776666737369859103712071701925284092503219016523778487834566354537020778894131237155500536291956822584194759697081833952906174515843424724662734461087550639469881387182400451367741856224154856812338888972433138565342866231395344740750024520035925772512494901392982307330610033936444911425790454775058555842433129728836112517170280730878677260817493121001314979609958079092929649022514752003403010534251215952952703520744422801048370495043064297154097012111277981895853408647353235741238174334508176853829344803230792465243614255112683976064369963218031976571316892216098891763457012110917005771303830819577296502159833020581187135157756978096083753415597471251045968482459499861544977933079356609926649472947879049959193050859165861118044830272994885010604839052615522097191631795740982508432204490784277156017222849803023294623999404256145436758521771239751447901254306288838186942499204850300450749701660880090544130272004894771759445755784042168802688796697640152836364321755629892364861126009298153770533967194776300391662096162458803662657809491015618618179044483052723647284883601251380459679679872015711987885107029206016056851407497540847145296527990541336059181630840612011865791860425385343401130994027335691232893614574761860304030237387990947257545272558422655980784977336081701828762813770005610941563080822245648585607316608784468971917278748181395252212216938518573462220597461204978862826135531084802064753000918898618836446075039020501268934027145522693753439650118102578804647290071099998445936389474581263875074769086023169590648027756279274499743916821640420205005674646244259479061696196439720782515713870865506315104812318198810563699318564143730194122958947355219813243867296914623320326932148705091985609639293906140407107919938044165039761687694298860433411689638254489192729353817872345452702413408911332054929968664032693974487907176302414351501938925921670626454527374599699918988743187983151574396743877906622968540048085879047783487743313673954870298035611152431079889773907587595999875344733340647196825751964008385310362065061580871233838235394721366789750478687817413111443242525530930467254477894378972240820491965144480368553161400209267617482788876023117024572009348645136314188364278992547997928591093672700807311628876726698302982532430453538813157331981070103395096208058662283607032097039301812713215746039321517399343235073397055315933177309310649285723456016653333972475858994971501358678097864913115333180837753764562935091669818305681031826857167864747266226113209033055214265188102156866266277163700264867752756425783602281792998215065334981251488865465427113648048029718707015605921741922630761044769905528338684873911901543904382880066323706403023731468718099786818280367539658826689957313542065809787152692352103921320770216469012196011934731279097762776123519289077715151130045008839164159862022065379754507176591019303439796594805896296037259446913345296589969218034971328778940345777671144809045867190698584669460202268161810547198860787234701507099127654437637126286911563617263244353393871744899005002745546044394578513656699908070028936619013772931504924762313251226500687371309570080554195812525609959500557141884738062006107592949619862762062739336452452373884019069895828131940858635134110772354210217092055929485708526621306923711740404586396836609862411026053460535406592336784674284665430153738172437071030057209486595231177145399777352388910360943014982670406555534105647798729456572958075293392600476269462261746364192780055869102682668380544527681416773474646813567882040931357701511651323824234160653812167387280222831984243744380918792034692306192090369025536950230579687271805660352033121601349249547184597044172179379640370788106536432499710586771116394147435218184333821823884624154517130183195921635729602137067478017538535780640838626819905318160986366841774333473526277219458491336397806942628132775672650318759198528725091268561772687839174998720181429314217956911783267015686207308641993182660430565496237313908852698716900391829563346920276673040676705002479113235143390366711785214884007686255798787411290390181619561990993484944375999976338863443125326269253211773110705232677673592185127898555864799224151929452110485176290282521487930208078766155038827324649167927038198692575379333490536056226263263694160681038542559051032462626252055807143286832841984885570917345261998052588999199925024862260630685701923010403512763327829357274330425614011309365813066451851840034053915976709932268852991117835011095518864885505140448722618741877833723707321854200811140533532147294684942408879000841396892401242365041605896031791452522758062154060302316432769440907577178291826956718894686876812264183646300059698656098976976351909238994469705258649580136042146466422020147416947166218895714369200579626987126909946175670345718344417868343950216689721061141723897507772724597826326349092371873465296940124760881695936342699400574132944032620910745141931749264690804869862050756444990811931173298364364317078467011961651087408094937672573817987613311103270202301808304355938077131638891215648028675868701364127531815186337563820303590628265129760623135336244529769019223338662509728163482127473067913528181643615626389530967619751523354716575588485741885813197698880108363799558066159416803942368443290711559778699558749196754005437127019527652475824911428745633347506735356394204342355468655657722796191083732058786461865298844395913073025202359976235930176873017670610557896913217390017994221446182818493199329334173351669160388795399999697153917465342456376071452416055885429615434525812677190631186603986598015784521114823547129930107555931219178694595304771197687449473227670174729341487626795880576126769605105332244776860920034706139024274032291599170163555602861576247874641968834741565971505267043296152613348734929564870798205385160626184134628083844044580794526334312066510588890954671486878827539059738785617466991747875742318872090007183610257057587097085925231815781241337096379418236348200968017336119217438000861474704144598396547798682928078534389046097255169328159872762239692017771468341503534930405940784109327222895166732230755903114831024976610749881303360602256804523215895299731267477733889846515983505889841861497113295438946274792010512648443674754554957971033388962457459093949375827530568694236779304824288892883468498967380235163589344986778869072436358036790433020614150812423056900553273396657249683401143881586979638283253092590754452244011616718165706786881228463639193880197097190494610824061451149459997013469795889790075881371786672901404864858129989879107201494052573028161729214651920677066673958923460956528517305270817709193217338435134122217905307929946918126468157945899779567419486113610654499218122943080119185803514177139369006392002551476443553719054727235600939044233703409628952033321720854919818020778054339790013085076706724442499282029632662661711962930918147076254940087592427800668414120220219716843582755170754194050806365468417168517789876476620643825080406208156872016197384991003228847658427841036025622936174451311758559613692569111324375371308990700996813259266847620037644284437299029707526792538505696683951689863322684102581828619249138471119591269519249175571121162931168089849489032977721375319297155380902620509695321286762738185814874045143968429112747151218226715122673596124167708874326133565318751755318347049916589314470484616493440948512175921128983403542052536279617849567048021313689288045809142460448546124722508616749683526410658776045952670808941577014863541403548298700645785551132138600440742561078814963223056620695197734258867683506020432963256566698306693926540192519492701047423085701250691084145845798938336118181790723594416566564038665277772949884686841377696443165278298787740492964111567467693207385331786829577011817839822532013129983419891221926370341903296046698808206399550915609014152058262702066758336822204517464313337349231521365268987138687140497289112022117154213483973284030643475095706876214652109660044019874537009277662171734280286297258336354698930344955959620592264761335593827818517566731416750259658450820183209098613034489295389608107632351051137090463515227525184902114849565624616485732081433503168453809145631434285536133593738217758355615472401063065715814772136298735048047292466950656616213638279835431865897250346520325257349874806189605814310242948254818267785569321867243965069911296090170398255977623850457985636308905719218872466565885996098788738165432555164154300042362359991035510639394314920359759751621684879767072459904551892484157864291507383149657652962333152097563588159841212581336612198863506372361264416022391692392940090743022214087689275479208095070883690853978764312637281259340424955086145351824240097876555545885402516197389403696928049614261879980703900596784679464308351109598208942749103158337795104044812312138243029062139821420955172673451902200032439601866000060835755300019133114663651746998095824248981186198529528872641566539227891521750066732593538058429063208829879118484089097708295536605231384031314224945436787752764707239472514182736840235793226961062828160831186042808318759816628346828565867753684004490556527873160314776250197787449211641991198102111737675904664247377147200596133004438759619173880195608036121193087247476176766859077949933134859289297359757734415012545754035400065343275151031741839019485229246997347831506285410227902125891750110449996537141820881278749523492711583948786760467616739450156803670582029699408319511830116964287910462342607560615916377270441708253494695665642501646388636970775882521896740117191420039714078275497697645371122567778767258206124256543453689614795457064671362677574632873590147934518389288053907882517747047808922192739379261727704271844112985764579036838025067721588235344495270711839703115053781885081957445539675594447283521414922612571947009458617570637859807517981566716338474302791927962539385565314841638185479100211787782577792929271008380592240226711188778421462245280223647799179904017388930701259357302975404209614551288939630065354631871614044611643281043043823241631872217050781221023006250733254919757163823742967357544630180964987681739774710434044520904005759184125500092618505642083355923457235143743409861622703970335616856167863603948015041332779869599848472589639985058739904504751606646493662621834610566224944533946781401284063454886468808913498225622531600701929093603591915710571878682952923019237141413189868742937081856958009649741180728357066763106771037355072208140446621846698320740368496828774175336457790545645735050348923160712823277716409374077656714818263536419693062924624535143022151960196001642606687587562896400261556641638921920152868078679987668070344228392647486302623454981754358685645217181794393093608751048105486293946624950565694255901378341961528455424803797133603444334126034642728462415296289424068573878293578282232154451487121215849061862263605595472001613195553798429490242564573107317676956064901845498024685461614577945969941725172588400796651743056732811715359722229407770041628962189936515266312444925987346595127583729539855367202269639685336793868100871055120485646615308564374605028020601079282918485056147988648102703063176367306888404149311929704751858015049029177780413643037175087436102554190330430346604980169652857336631920024581569068731699290233314614375127946401884461639556652303627209803107762640252466995882850521074191576309654526373506861615663457510471582686772855961365115060667904050144573726906715892206278738271280580048347726396924443197623826821193618986860709285367632001758277212462488242658028872806051481627136499235781814917561480100018290806552726089663996705590327739597901140182111108138662540932706304777411448564214528919352645384408019788791293093884184841887848557732728384472927208313011312684756092479860735361680366111553739682007974474302789572361802518153427541858644685868869940417773526094130970811110208648845312045199363278743068319007423440402869783052309712667297864039505435938835161596505705714119759162528894045046478190112607857756503353265683467273889932487698043118527904945054849236227352261794870115798827554128851023010276399989114020668362105743078373657873788912934784184057607873459298784906766404720450656674467026754237768409624924726562157055589193755275087737691891192400560114984005507941257001800386935444306447204314111845775512253938312124135455733824863985687111755886323385886255475270078599261009801788296391998261087749082329722158516617990582618292512840116913120852378642669407428090739471784415406846162448970443036347212404105810401856033651460912817354432647339087411482289091965750779496244148017968984985391690016191623470750105358794030421727985591241700893201988872682867277258458555969934303131271678991227326601923329751056997124395825891673060577797474131337685192146742011568724726749027626711516142198073180905803053847249891576505895660678276330597377974580125470925283110886736749236943586007020725160951757553423172639602964892166687763781384105390223755658596400198537307460446124164738291462104366132915305142222992291961340973632505034411159265346511973644559743025292546686204310787587377339406337010579208924982894507708287661697914426900501497244453359680409224821143976387805773894173144949362407070570253310634414523970993974061456783415696442978034222971868934302221244205164259740744492901926029223819090177302807379447480651361105595259962423748823560730769400748820978418777856717441359513428863521891190339649581617767846340172749266811710346549710707645967793656128678235395795290388918827571107821718189792227293986758667246865310263136725019114946538653393083187348362596509699261072132541601191773081973214306023898646342450280488059484252262178642924581505158772957554596317919343235393364666190868510349707805444907340278246161539990304537547512143484990878302177559421519983778801562387130594062092141400391465164150061813527499711540394238810848805995804088695481848694185473212799572863002112563021670369238250046366542519722370768011899102028800674775309825791120857075228736851286139799511951670699604944099238825785890515024675360199711093442013751899616348129573196696493806289778777605011229251101313079218624465781084850397197327942596374645665987261845894524880939520304088446550288806364390924662090770006301329001673806122429006622301473576316511773436720608740254291376528361758565799563977325719507794409704506729293437497111090190755699657676472224861855532264571900943272314180668260278401077849744441817509487837950909222576269044634330732376412008434023243424464010932367900004223902665037802918081872582956692462979875392052687612764247523822295891416144843136578104071168028573627669231401349469431044442144401020101009280976031712060438816674054476167319392292954229180428204595665956174536394391009027111446887479153180259888434347273214853811725428589803492610034344242386235355258236968649394359002325499769917268050172858560500992658384503244780481429018390789417657587075494014657689613823944713115024821881494864813030922857848774183468716285079231502115975779874036080737107574563987438520990041499558901869470247071167433356031836316305736372651745324217716056144878119152979689134064384459559350003964372100487468472374312103608459039587305759085003870567336022267887663331886648792293702221657430989522772963564538439283883658325160933584464632956045195677008452848538276027222018077241471527854999225210476145453501364263003446644777965051350068869141228136532933674861711728362994892767685439038853319452744945575559115454648526688453388384460894815338834120466857060755880216041326313022238153940222572711268062096576595915473887781072961695472864595342929899380367423488521162323166964725433745684022839904113924435782002134506137415221011220800772086989063251641866420637422387641967416211588757306152940397114229799917257321619441271558731890795330913482445087269722741222637781682858666593875288704966694067947008808012311211476082203058244580450943974409058906760460052580940201322571079364097382343733288137149586882676302112131930553641153697954921031667207636084544018095454706709754088067692834603403523806938665660998459854537341142835105619956088169083829076704112794953031054708873855724039765472706330604528070372335298814042688538441352058807935374634495823850513007524769665557042343348515003822790092110749954048151521709413041216533772452624073531180795383962581824365222881513772247791541989713193173379479118499913358644467612547357451120222016382277696860882720443605771039740810320946374811443189465145595407011948750981004992433780629473247143074769432105458665559691608501427314992322702651431002176005583102230217157621091180187616699809947738426511355405413875387526488979701945518219537645171328351445311146428743977372680941766823994357232172781093782741125544303103334866199608094836573845931887116776181216200214282377696841017399198742132740713000981343461461356879205847295159233472546338796584392536676909011800663197027434152931420144687842263838379236631980588138836080721321367180078559720545086406790604123145139165596598493195522263547940327615611998711310082430394530233526647566834325098778184942514887892432909740957434992392151115619691381083744148514738422788436369953717432345804212578312395001857220848858933638884314545630811743497420537249361998535786292788595425601778669008946249792986128784115196931691557271611663318873425835497610879553265119110672808069720083068133223727100107140961080882374279070001962152359835419341185531628838840920278540960750154746354037676111773436868553547280782517572676019294076549704502154635196623448460821341773089468786253993757819785020330658009631427802024075553615598984204527416787756415252910755418076052602648284381401713775102700909078930782719601165247146743439088557145702336267328269203622537114708605163360448465776078311581486293916124060040054501872443555967552236839675250288962906221394479898629651213410339518186822893952495507882557417147589662003562741400698158579332752040944068924564544530698328348263900626136216892963008903365625790810978587174842288823723687459790179845485657086081650008929453011518338700573816835514627642114101136573353009446530886473414401639387778414440395460288848368319179083730856463102089971887595480109512632153799172433900941746548475505406576742976331652826042854666198145141334896939878762257376054352054087179700717524596282573951214217765560546869513414416114697748719800819895170031068972984824570500461183666081273767310398454908047001970139900564563494261592151735946442651994895875008253691499803305662679085696634490179828324233822790522579567216547799731304089071206441973203332528035324530405607059907654187252330861475016568630657689718334459900928970528280571531025030799167951711624613339073130465412263435836799135784361013693776448626607854323730843646100652350643920293157405858444594269454891235663047122938686562318139096468951733053613222151672328283434489624987470482775744192228104534367163231756620191226157658617635676027200814773189207678075923279392705067610444415231274734014850821593714595307632501753131367503300731033553187756532023329231703393042102307258248326561267600524454062907453428820619048498999681871990765041320089109033183805163517637118588507541667738907298152142662249916967024120646139711410538982331211505701881576860179033165338052764117341091019031330975693249106712030827966881290347119761890567113700406329636785668779903679084210666840418807229938018464673278504436654564326624001364967002431248743016678809150650234964963442256370772381220326047792864596271636487992903110530282597214537304431079383063916529947925955784533499913644080825863231832478276343199586511746686509496749664932216442860736130036232891349646108500011959773899625010524949618336534114001059404079580282170439597948145226062057327364200291141998996279306445719756872494144561667427675705207630482482058163890553325546821791816340538335379720705462306425895258484822085104054123243510872569127527674824598297224753391037663263862452948864014360876380619131643238251827555929180302734090934120998755289431196880189458525708339016872716348255805924560233234506699410900926235387867698270177488109932570693263969499187030649145175889728723613798443077038864754453785585523617562862065430707387638437365981201184766679306070300429136201624479990528483083489784561752447118522654952807889790896942621377830967326998347472825193233837064547982596849695020507177769959413718543765265571706731017780448310835723077517089385068730548449376866590198816024269393354373579325116477253446085983341418373829589010173881319451889280513501463413235912515434434648380137902092546423681675175614791006142282614703198124209769539525351256319313448268003870031929025130294506263567240189925031969953120505841509869588656407381759085828303708100475193176732020885364061455022023252377605856031627094228023250600820304722786579734600040242516146650953111996776849186614002746954868006294395232376620448132334071304438178685011571358614532358373197619145838256958713618003370530460185443850770311328062458747959474170107521901918805943340400624328234482281707744149578896635499462921054420961471168034662139485529321851881255267235155872831413752033243083302626958204132928199269512995362788104969640319339486114716674799211145748464782691263642287688591336900978322001443168985999426536180565931745029925560337214100905364839455380528753719135436649499919785344521477119206688790677710494752543260360593977730502382411935732207983796035603990080770138115110713858911993741050539653733070094459770430035282131667906291817176147029660761882278526421754902693040426774036427875042190949307007076834434481296688775509289249806287202099146382687007243180216782673492019812065771089448079611893758172637774829209111278151462417335293250998528045589773201664620713201411414640676973582410354026767612341588544202658760184420297223897512423726817285344333548515850196046082134697809145001626911480459594883341234190104314916319439100557051795077929722940925021761699240524662229835050900167461907445386457891729853068276384507440614522529608061354370730744784017976845831209064978010644633298601926000084197590851347922899047905516366056909564835114911702995768925027681536918917544616202066179352012250054667815087703475434352359687348647122897943469898989651309362897036274407301068565984776986589005562478899347121617041425663739950824271476216552742299140190404980313959810841885306558020602512970057700011451703428659636602178980141107624780181785187323335390854971572714490287202423626110210398027304613777864154395226624255518180313872317185370160165087708068550542868466758750343120433370176725788461447833085112074220380774484655467224154443709929571518632805966617253796012319331804508745366089505499622196763838784185082852676324137894556069890380184206522411528147548886646781639255148931862312386670435090717900578830192885613401309851969080239048705051130209347332771934939295066432396477388087073894973133414023034382774124463870834764338493426416423802986522993824936125106954504819477356605059322381786909572597304962485272200778576569390213879933735341279689300782265323429855183636923075305991989461130646941527419730813172044167180880365474867155411261165360178049030319468565840303630282502950847466222739949063331414319880894418384751330904872899242710437591053029856082392923621631258694480692893803352629563533315250596506884487337602741828359108707011334191947410270653719445118451035890504261433856341041363300510352692797469044657845361867527740624621760383141042359088047082326994180988452871592340033884049993597349364237822206680468387302401391118224619400562906661499717748645808583741574336890800346163645700032494470340514183496608850201669581102480197938660759417411564183760381252745937378751591926279958427668662087849604644888274446014745097415496046201869698254964454525522679052832755720509202869409066237779102122718522844125676314306255993109020900685482423952796029567639781874729580250700903245689434179896347432606768331746053366477398956365783256547631854052142444133781934124557243839992888983047885989620076260581234956078486837346229039231292676977098724575933101857220382017638135866860710850472996717816440085156340392675110027035042443539133644773294338985909814794179046344941226585813839139720539229471279940103646754058527955185990210510978135750674800300272719274222671357077448317166532823543305146629687190177211696070114950528541177532011774770392868429022808588570346803151487624145083954685661236568111818979998738530035121987893345902643021445871434403586425692511082508031029315397697206815863035281562287616652930275026400424987640037546583451030986594666715295271789807814065836936558526553411652464658032448354979104787325641945329708665336494025273102645708993490142114090448139985438117933237230413239246595706655432038861837423882127444410434192969551862510755039281880759840174931948215273273831731047070317969942145475872735695869343269168064369604438927993478432256873074761625450751703127065221492526286508432631961845911301431341468821805019599053121595862457926931666099481976918620087552979519746436941173541004780099427967365631615749405569065844694286118354140070145187145592581708461603975255387582904012822614475557028434536331505448689442949330472497957839892717057144963884334946866509202976617355647588091921803079978367278255505643321335150440899395330681086261021854003637189785576567598814006220222184645099537516075277291471056944021845120839376847914314469258007467909822864055843258464257568002926533514801320846546844995855895676736835138791913866973594488880946890949929883200523428215253673234970291274017030502192951901793543027128571540409082453209416228981041434765248873727896179246700662190693038645874794784342501553131131457415001703756849618591206441840356245615279263727976136535510670058917644601523563073520957497750306451070957958200802870959649753636208776138275919158495161915985885218739052079341624650998259591519623462008603032821793749272669475239720462837278357699645710162318618745197976105221098869157670036725008377749583285266961999850987418194024935537550268065779080416932640364383076535583405591942505473302147751603068694344778765737820636961123472660978922764863533767105768210370496558595846368110107376449363998265045163660697074103830594622311413424234921588187997719242553906770245462630471252637704432917226177011462979748138154885685827767555014742823367093711957574532506361659850193809000617436015821332400428954304218951810543683472117342018644648098377397630506707118041405516214373052309673841382431324361731991025008256046312977752763831974360346719006707038923535128041635283671175356130828340537839206822283990657687138664528076188812625362189911918806736448125006102073855189998261318826355346004742890750953211273136539837211022723256915455219937763803062187080825366968689837621139175954289475019412430427993661921969668974604324955719324200374653492928180417902035891080648166411444456818263624620116273920502550297932242803450262881934660433649782294979912090466019981564166220446107392134397593292347497361993410594442130113146745608112455580345250227738672292342884953398209966913289574369273534180633210418556708441420184032864484398453718914978366746554271164886515212245222678249952426571566996102050157460811464082204086634137449923489194319909865889043714129906838881387341467259893118494246437430587749480836919320877122149149015790726603783512211602861333636636371582291983468342079291324266920323965287951697811309081746863313888599652678214430370820327658364446047854712785721629218997555299579464751777386954474454564635470318906940539208234578448975210761675846815376561290311663761117910813468385229456023872606515093117994956546188632873637718631515429307814909270410726037596422922034893600885920670816814905293231571569223673378326559737657897641223910308106481421397205721158497929193215839591571987152153506541623232920864654162058750762548387487113390329230964979226928074973564016966013972549780430118625862906596437680068315367570920283287872278804275813052273110857185293197261000686285389038864408385218937795597043991807448464063675307075223817423169543428097899491386745506132185925532000425190397846035750249709870189170917723140615241301907218500910820376373711112871147042198765231799957636842677184845439485066261231509289901020112108608549749062909047339814224978162460480141334121160878087035473730637960357318786582961782609419541871212409148848539692890932580397010281251325686949582494385250197160359614888895972228855543056867847820078406012773091206542368455426627126825464724609406716784314163522083629536836632083711250707209296446850288489649255118426930649156621338676500962943795426967432644477447083341505325226879905968951359989010177150042171713200647259690750025456792787061234849305331360096098795397710404317346279352540952179727758065762618898606379140656749346155505393218815609310149871064808462918442540197953326195983642714914733692325346662886683798816666744344987211047817244052013494308387713981627953599916236536817601379786346402976230101709109127931061796235919301689002986097450136148573387102804402201589736653834742854192469822300362781902211235776079826374024089752979528893229273337424434601227598731720776587375954889382215442403991184324729738645128686279475407344191070685046489234404066508574376360272506214480301255779118137557831237455134538411486616751032014965640047896816285614547779660871150836028772676395521822512681783661271553224351396426944106668303515804494425425817473674664196455961278993360016847751246978674606929772243930193528770127963252721253258842836128618119833136908656131242068274688335188348335807942224984679691958118697269247219287048913070119738607490900124284843108553997771190680224637351823487699798752229784506616126213106593089574848503901542878623281465221225963479229313595835429268883588773273289871328273935773900632515613794131237368552596832574723184589249337915672491569083763137835993305176317003522262058743194370438654281883360049578554052871064467180170222861524822931109228075726585015848168253001467671908030881501919286921796336369220153657633520006053656500892442415387714021790698438408280904859156614137438879259367832062243237239010459306298890643668874895166231773468191885744573190206151035571492091554948465263139705301243451507404324795566135918484276959749106068919192467756775491944245676005155880396007688730868541674150616209999851601143823806128949322173803643790852619844635098244543437308581349987762837715286909630871168097374175686528087079691376243980229666149820998166679356202752835695447862567130553307696661196180193645192281329739239715811729220741427979615016306262959859724953845261263253543415403709035664684231027661341665919006109577400513155168443569500836551730339763520720311886206845576091581607070738267268255088164306398307043473080333829946994954457995892381479589677101583059132028744963909671916810087203342616914685521950482439585114274715628550144767866669684688601452366491052063410423318036654784099118285302354589139371134659726916556969149517880626572923809959339084009860039214805202291007265978100257438556375867611878869844951476561074933038521846589340762458935212590963015061865550702484430712504808603390155940015271889886480610063221196671636162244024577688760559096240586576662206332096655656007567189331253011478092673576150124916724547534646720582971259943117912407371027446746105162328024612986825377626799899900518791863622553584951599968241494353957653171222768810377278255102748337140549575967127368441851949662174385928835410137936587749635897066698796673931200140318053306733844893543164144838908037162996836597358697391657633265221656528740872656374326148417051886693097885467592291113627336276779057507614469726820929632018219859026358366070034634340151074063788226517862742855365710360151103539136349606520472844639397977540673196616861969765294300413754579207399338368623292390798820368158221642003439082471015846879541855386262825365365004294003964574951667003680057545445345954000923545012489239135905880289645005250581512802621657230975245934656469509851037719157057800734899672269336302402630904753858677326798744439142244834115456759566843012857936405410343058669887368935465283896468788338249198016045660444205077540448219536680457783109488523297210174114045083879402535996542094153080493395403301265863382102088728101477013793121085769407972852969169468515778877465791775925769536863934845078507840818883716243252272252770642012806661904124480683449945958560694019214315865170397245622268167949925142505988972621089601462065290396207470805916275100895969115808155128890794342609945263722813192088795310564095602502191993397062689443874306955152339548790833441051280295941859871430392066648573708399622935431914682077173268850556482524610907625354251365764315474467897969214314242740902247244216791489278897450435576625881067260969221769524882417271389425029699939857392789323894381299177998632004125278438728147206229863804708603051178029863486821069706748308054450035052023172278968799432397761830276810336270757226091445115201171286839290375961393484715388991844202261134981028484121191179641856368399296445910833187251712401235210947699829478867219988447034342625196990326343744358247981977896847404430897444919974158009205822697924475606512769917654296231184312686437638440752153059210058091204782731723722004602391226659161388300546824819882991110179404153264095251293393046474592394791265639112330354093700282088904500905911190826649939015855858280162899966290829875882017562525426285084439525167230293963900406175819083962123770688817418439155718110728239491715255783376126556557228827481904603234919567023560601937680608729179490998111154754936527349773910990025617077074404810891636316765483921221947835612029741113136371187070911215078720695024522167339029039967947149346082635290991183607479566536700787316182830909151110586954876457398170065751763003466643229768726303880619207205950550744441393829815535046779197244234650177488929598426341907283397213846130137162717506213497689026993674588145253991264410527822711959141056218300504189897743140909407676981056440000488584173951536799861574257220956999848131919986174377074220056755344772155337382855793438508749344963576289623277330134062980222255191233141803322697236388421205595509446697620471026751199705467181382096824079448829132028659376362691724546285694364915002370919990730322453084624979301135015426675616338868974668871338975226551121073430203586037455606006698255654549860385661748544112268969116531463284350616607731106785413728324472391769121861320958753330034588030805693615477454744300549250314440589457311163960860210618176030191632527577708369418693814978099321270547324403382021399761780662865924355491017234498747570100069275074918322331981495538305196150250357139447762457954068185142646505240409430307978658061082149485088068628450878265637006922293119854663459527426060870103245581777612883562932338011712628360627354445205033674693755416861897281200014275283868981028341420438492995789310234844134539273602752517924433855905119426708100956495894171183390375287678686286064334334340077406591272308108707606059189136824146729818299569895940265093668050558232677727678378741064275740430330663825166514782820938385775107989804163124660383523488947254361753567303857222839732032016965299387521954195874063194092241546471414298389789314837230166480307700602650522602645352418744476184855404552088970099978312963998917023663002034774752390861430751941260076669633670393099737396466662222170690643541768050196531412932231822671375985904976574389691470102478526258558192170440191154947444402319883098803569789385372286521169093626628215434579152108250646992030018174223350258021974180360144339504412856852940671771140595757598907577668215095357898803751573822857501336837006835833131181944805757980259873239308599742669607211518143371948836786786754703178253282418951332895389000218174904255644307064373100607976529374783400742924846215728263685910679803957816308572602253071253908221766223903343615995959800400093792429501752950566294250890639975355273080079370102660989802821016926276895035116282510513600313318139701609988508370489167859076820076248466476867079804028591437539495499062279083522689895189761497582450192692108648198006266268656499477102586756597212580521621309434779712206281111400041455590815265577784126387436939032555449006372125560545008554661041690349393411109542372958487794415095742763093627160363314797213305718915260435626001396275473375515745071335013946691300116546708001286026313012357969415068964543237693102203058868081177198943382198356462537393859106748862342759759393523596369638101878781912819406049701743331734836111949507589513293261767705897068648105240251724008108119967580239628311602001660859864486737106333529935321038114096867379623389016883249046536486484588771047126914452326720233749264568519043969541686571159890336688342984924148598134900017958224046634678894855777517706387791642281100366216709050202608933368779020026572119839342078847213727060961998332693552461337056672765745451115316279491387969024104589937537398214354994072255564076839176280452115536479737145936783368086848559024489491671557330479935128744080555961274103658653686869299474985912580469005351395988899663497708767552951641098772634270462545733115370665036050686360804414692150093039841604473223742697669773972437407577497062842196872157282022455341989103601764467598428693831001452335725713391588952608132793056421408425987319443998801295908951022923630272174563157913307533471992147977035580542104079058790851208514278732714245785631947855861380516377988328949487690415701994974557030839345670134189060135299143079755155889625174396781578699122978946051036652555091607761797275712755826392327845683496087361334299081208310237471595639628912575362946556944284535565448096497039883945139479549000816329237641253298423805904880539268575597644252312294585817055808404863453119419720105546762267923193500511582772916680582088078687401657830313715003815569679147633390356289826641629600615435466972001817245579912955928472244993824942699267051836750157070953989426993461928250888940794609325540022275610491206442037024843007783208220140518305536145879719291029892046274651657093902332869994510848560121197679184219030152151335193598881594054233833430989653365522296556646844120270499666621853530222360929760316465192953609230530729280418733973683583908387553092052927752633113042841977401901556788959954215065600850967771450259914877457636756795937553333226595476952954050810521751483926132107386412384172997056348422107608838106324925188478936406321338389612369776814319444191864798530802425733188649482015874227293425782548449776531176831637383944332530683971107317815133172944601724319658663852509663736143807962634777271950786805009736689375395880591552827168981432558614488274071770904320330990218205595795476112261005717761876124116524291890266703248620949756053834773614454174976978160817885504542619341429385831539950079665560809439336181029077888309118586589278927230507404934622529868881272488194121586579728922138308667604744025752794942824996974600074353269182830372579195068618399786258231495331223070206659862024061262015691002799322966978556810251127463967140649255628338978510261071838538062046221490640463666351689785951877924417292779288635232230556092804742091432212902953716546859946532140874082589472298593055709393969067116352403383696382967796694226239098751234513500892157200063213110238098429192779338862565026897693512013173529370137606329386437990232867091803697544453983892560521729794359882306710662730206236493159199517463511691198446806574319261860326898296419899581137468909693922125560127263114469839325753753233301304064579698584139437138008829536196998861009865619061003422491819261735872085931887087629173657988619999042518437653785084079592029518069566958972956229999947988486976294242269083215145449371099929331740730036941498477438900686715610799619509803502027790574191082483268911026640666805582774661515692083413460866372874426450536210950676516127753624018323920705401396424879758407767254882811087231265117810530135310551159925433582418658947832462019680267749987921808560089894731828982344681700211258817101062424234006227121690919800858098259172335953012092972563369852585097706402599924885388688367101581071788633242898282642529572879463297096975938981441327271083083034429166220638891069633961498460355505044712479172580009119008996773278373988537020529507663975647145794908847490912913457152273316888883149959781426360792095164677835055056754040209691391445432097559278419628227475438042674448231408028594982450856972767285925475759334820526035392332803508612095032822674601947360920390298591560157406800061299085204959121614567307440378155461943281361360775369910062390129771792513441064665222884059322689992345399158561388757366248456143258870344383342054973310501775330668234161287855424163847096949234739443214135659315123036521288093843383774995317252174303167480325034449237226594977237627417083280585468127537691106222506872679200518483189566521531925413458630000164132761862519354234637213930905560715009936934527158893937163071999590840265124679370471471876737625050407346389089712635716559906085047672171617152115974121717988734402687625787296822848079132642963447010729462883976941989105748392302526012619224297580582275252291060671392903050509625205415102192911271823725656271878011539969166763834004108308984668307269682193588500350573854235849984105410057347611616824131024846380610418221681543943499818295103214128730168245742885618602662307249506873582775919293951372542016445727400442396784558955481036507432451073187728514497952891109588332644690368680980130083682913024718760898997559429011650962513249521077761189762639673346419460234546019776024228841801029137161979227919527516271917622943792881148176600725847914894358330069734209632989993413027939986544670916616548585402577548315360918509261045495957576134338696100501977777508045708164115494981399070246515533546423305763981729772571482133009900070160656852142929478574081011105660769858971266500319265953622395437492428620346918165181605335125810934283735807819566570446625646373941548603617968089769795469585751257745150668365922933338207134833994303015353243099696637255534736920133840143044049285074963490532413950817471231642635964575628831016927751265838091993152312074178760585073102780807864430940805350427867358857177653116851356765353727147320933634104915189839363393776736239234215189978394163263185259871718673548421373844592913761856150802392169107197777269203366943627182713606946066069096380263275241909915612214923442285549043610723733384543297816636170835663040815804621438435577301769367408162165184354268835026372387038275575959374552895859947904263506372675443203155610580556066366478351004841293946530119302623738106618185988633290013386769881680940493682140355321051421754110351928176015054697179688646625201694355149376185364594654759698181285365582844099950341956837102469478110602758926276035460440865249715385369375449836067258451126464222086535667745792769933528211049906033302658135906446329855136766633120394935183015515702247410005953702796500917305787843700929694595433965043669357412317667746429310907274093278188308294777532396186500712873529023785131133371822041290627599247388471416572899151153125756876712839616630741757317977059118483209614559387426713527392117553195190246355265869288851640856165980717808093699581246110126167898275846140031523520604679090620298131303138046960216859061657036423900927548713818412790456508800866909102811026967765152135840609724542853903295390786388757518423755500677597275713321423911633549754434596277626580258699300800761143516028342161329370770052340387552718204603249578018642332949764605218303748172644846099503520164811657516172241081621966194807537891500949414227751746699739455250596276889012794885884126661580691907844116110982745284946184047014385999707572884602791501925740779174958857422714104843772058138824701808727056773743606686719338097240357693408776566041399000655761443863490953815860388260728187111680812227186036627266366703298562844596390645581798357675884332716055581072813757736885667794519082764211587417256165468209415327825737432592147183680941390366435666146040374175584447501756673013737591474263252847871059484057270836498186470716192471657907503321467917802436939230189117190152382849887937391128163227745630312782188449966166856169501455013906818814971783583887835843769455345471652160028157169240067544884134630382194600551338911076600778448219735076525781968331858609126534848442362917118203450454027318252204835606682681761746318769089160032576419811839932175675751332095957113503765848143786170354545958470158849894755720631194918511196849600331530312311573127376762094873305132539683207181274366969267950941817541956478544247661334856396509767018850593180855410880278744515744650087978428053730734750090720904821828583928198772388218621915852910216161153487596026567650763263693586934426582023672436441139065258450751948738571593671905958921579879789970302631922971907146367312640795230921273122528800966358747825773663804464509916584001655951891865455363913559905870388956368686853583779335650905097452817086889740982370746082748098022573534664874461077726553019279500543635432426285987989946738746370798423033345663504701416951155345543612959993851987959620008666540969016354379202737133907384222629330211763827709694961150569432705177226635720988000438432843870108545467196468077366208959442020881618880124892495002288420846295990055610952444822989704183571641945631089266503230332306630388608919666504440246290479991152948552605232756459148821177991387098997786561571978304936569350043622252957178226154360847712332106300554217049979177102266851980021257920604999534657469290986314055074391044483685671546741035579956246003642766659970737626184997062888233237551822887252427481657954071748784496806581356035590698813483867757242367111358624918469935996359918148634011481381704040437350278812445466456901010578113960647798633617722985435003294648339231205753559017195803035652441728407177296019972867827078989639761303233138017415759976617416390337218970730951502553581895443491102944658208965026086371752107395678166095740884640460002649885422542061864479913822682437183091890307701899164114913936581338976936501929095286035174856169560295199024518845082222369463461687476239808968309087475004716847199110171265064139086401679258069515230130795307154802695280993502791358336080299869958071378265661402989063115785073351205868086035300150426953351708267779031010977738755539755025728621090966123843514612624658981270240338590291613770967679374054511911103736532298399311641272259607299127762924347575593182393766673097803084935216253162841256798829598090100292980694855384449391408589244746847908116654502353351274088410052609897096511698149286849122740117302759259441133541316412137250249633602311709278769269162958043927501790496747349229598611463736636021833591045521444041725323144417642544967435108483321349501757620943590790540339528591966567472537652408027692125025680472157892685838305578917478477062888047116339909309723044909598943742300170804453769804876680692467805911633064525032334573770025332157888719475630671779439740343531854087712728121203959497980800496386886312415507885577009086034444154696253253043382612150474490770536104536765685716368758825569922200413050236753547020243313919705814915086247578652866022131113901649571141769292627332171553030528537207379337766867061301367941168901658820434561217149160671372792100395026297433126193628244920201611877685901696021327144463254980649199915132899063578928038859304723670746780656857805186507069366476969724276104731258945437291552538267002834850298487376378717283741740697002807352015134315312054371050204153137863330840902127874267056298890437598813318689055406874941268604796759260054418044863237044269043823716110181274943415918872118857280098109488328614357940576405501554021439233408235859128041035583181669788774507485885076647730892922298984790576275338822061550653378710945490879994450570500043745752259612299625026826985159506030970314057148255627912782804789078716010257874485723194697446465666644475097381796988122877168519578696375328832915405600685637874149688790936126913838686765540591635826479128398393072143751669455799091851125296118152935677794647383385186513750530855484972748615104955633367451055929362360009678295697793682752930706348287329373051995386958555252303968960440061437180871647960447187948873349463156720636942597665667429714262125495673404001089805464275327000316076969242540897981546293387678932338436051147838892041496779856599570128440517188011257244420692194833756155557643343319562737832136516626350867267233081052951411701731859469442977875522847022159881806777322849818252961910044283909121644658772145990271827244694607813189076030249629713314318602017290904123914397356179834450123264001146076732119748540751740965100377415868025746694161966794972116035928870657417844212857451964483802097463205654162054781038386836800311903494271226157073355698616919604420459445593301161152735072669397436381134620840078510224626754853532855268975920537162294062631201696153482790364677060494323032819104269003117280388926823310591531264231874925949170616453580317329893324744973519059963681283194974958026513744133965791269604044748139764673731829610743052695840447382907963517009343971602269180763533972693306964223522219602323169273340770959396659806139154667892805631673973234575577064048651181688538051157648729913663250781809235878341761511479441068374073905526770230228210316701821422436782384823161267085428091364789175625792558466413617933613918108801956979682084515450173008660445085003285400406165576300273031102855244740280484643142348519188054645797904156121346975102862602478454745881852057438634885969760856162900597228795945612244038197473128399591778839328633196688088446367559590173052957441943024782008089685020817722878730380564775335217530541643977368606567352396822563375594574865697028111803588419793500210995454735382683059632181777470422681106403324971084288051883679368438669712630662524473938903454067392077258249748547524434081468683445851103007326063667431049663322834699037580747118826278350122889769256251899685958298174286706695885651810302545578672453963255235558757253276008309725422818467514011205403604615584473849863478875100109200228490572941388728007934696461861585769957576897370364007084829515937010599674495417085253325917378129223625352422274021740289811666068966881231689146800932780934104668300009459937168440358080823160547933868362102475612376055503563924958770708784134655510861120358237163972088093388932476272006749509750407890702665409185179221581482582512916836723056865096524133693442575800100041402408530458789568750074340335945954848964448028805569696123944273795551713053407274792655537787783457209699781785026469646222636642292338840629038684697050369650957824322675704669569510642983111942250439172827163047829823104313844008948623577021364557078042187544637479179470004050672625625823743388691179940183856465351095748576519189580101293165423533666146772302776793787559106026742725486717649452950750505979875321249335331737877321474605787986200119556116556159230084379103670825130912474369186296160492991961246836826796853750217474602626829462124246291768952341237388481102224978907724473351703782957518678814196484511262053302202724745128101835550311781464641218997844824565645153897325460217034742415923860653910217681528693985706935836775561222186954826525582906498254134260912086983649988645251151597789612522618872803644835276528386780370465859056973875068529758679971726765173655753535266342374636633226448820826298916976264412815522956487050261915006197521070145397708582130913278986483290312505844420153676455589845385978712555118847172881227114670590500201295121258553865482409423990888225748310327767854789874918765786054771053481989394587727533046261079417981230883543383965132642197892959405792011943254163616487479240960396954484775109353496158742347259857715751146267424391172503112447802874335961826409474878042473121022531113344387461003182881540449539271116381206171011711815927005588239342005692550618772234880401774126355935763769810869827253974289071500183450029024845185297473128549242631854545302361101429557270162031468016190302792769877585126825326560378336432494693204853769298471016163477568946968339967295963386054303854364634851003728538184764126999003612622885659246005633622558347740811644963956249864633142124148271400684129695028753515876065498893727676226060988039751192722185951799672514137170531107601367786591169326855987680730753850545997986298614874716346446175613928094528399087678409955313480417273796485206084099973728336875361411312023634069253230306476435937576886168927319227209155992100093296787491677712354727586974862811392070492328079016824793973482660480645509796658433961697887963458965347828089952370467568529023098108008879275470881372797655605305094181634996503088127197197517054219822231623232955242118644362208920753013529964960311498538252162207870065505809201304151796127960799370346715888503417791204692512840056500479672923386244701080965904097129692365347775644166654730405431942065522306694616875607529781804571183643220739211265914877033657096621287285113001688685343311639000108421771462295482753527339033849773879972371353146182082572065334508017978355641913360748144339260427116266093893902297385134828058725883706044286387612286845267299530001482464422838512243869870139309204343820460166968199099001156966587412590665896076369479335716360548544203305807491742966788845069957906975610881300286415259377550169184034420657760353675556049359343024117885979847053467610722002628613863595206352901202965011212027648255754670113404189997174893790651864530264126595716283468419583065842868536080200307926618292485688704409446522667404871471898490465750431309086111799334143150387405480539183423667212279976951532743421621108813200501521000188491414695014814129578821647459141423381488059667049979797179401362871750665289205813574355432107024211305815828950729001173982613330299496513491345301487662770427973241471983328605861631836524648646546075362996497068389075275445741751694079189613895831605795807410544557840284784871289404941985242064836508668828501793304857263923610727508946111400556780936816490815878515864465541184805239066364314276003427966667091831005085031662997029774992438436421843756403060956298028924996812605488149520758380108710156668058722919135602224539311238723421248691930078268960126591638706657778294029334490836006048362934010756854736897496470642719656501536644003315458947942401892154661191525823949356896180926581367405942381995196758709825486638397275237168229575267280956579782978714015712274526442141425326654829865063236890547650976072873558720118239445585352516849186015307656857213057642292849647083623835114302777338783420756029340097889133547188845347304334332449718182802627952527237928872601785253416496845555487934275584645026741655686451819234315253530392547624364767960240876672301233790367413933573451711485563848531945326340219190676941827244457584618832040318130970988165416569149258786352342889516808368384918657380997946723636703093434793378141834568590232603655421979396070951516781552074118644714850217112656261960537958541452984158195506398994316426626952254441940282397033283736662810386761091679973215063851923288379177113391911472883185773497214458479221083107955041596736753773442776742237538076873667048197223102774025975305678612686432987038226696546197777626888834760514374500750015709276591745814155608734564627318373767865742294153708894242538030667095057196477060804159148016406405633796465545395420307410117247758002884148009650212918488682170833325678432109216902110369147553082858169423024818752731432265332425750329402659541822181011539189992221608421820248880794953528346997262955437151950697691869483274768218953572015081103465718492960053109205453115285565187766293241325921988985830515079481454489291463554609266403088292153534881151026463587674163191795034539914857430481306447207171768791076956886655662429957549387108475783794969882937992608041279265583799277460814284406635300960283604459973138548624817600107184385657558757045673493328682880229439455961903400021959195797782049474664907239234238599201422843443017763543373733177459986087682778073360548621039218095694018874748715922300313786256985959821121552504669735861412021371053709274354622545919974270503031670686975602430290275731011452888867113582486431237310774260603170882932033271086797081543380536723617403613704098277524077566372054145401415639150176892972118296889817061688670288113567618799886176198794641422316743162102181246157193795356861375863713270392272956578832173401339409433004974584750715516386750668230116801244790068447762778274053822790812860193225988332158253328506419234138009064630839031816827475988147761320469660955908374975655299052909954631460431488101611289913846639266412898348857165859705453132510360387777977449595393995245806110456770362553248060992781105609963435180099659205110532775697495696342895713008895106231279415098168995553937737816917900167804460453927449037551600603360226406530062855278775291304152000090118993818500233248620575728367783219618829301060581082678413845180709679868765273745038645883929266558569686165607070267083741770920903054445449678369276333166759371157637250961861856931117981714467866039182263945606086158381084873872774560833326544839822590753697046892135225756433080521129400990885454809582303776575696041926116562604468813428172969704976072297262481813990332935814956407017143917151387503135443355542451981249969139195255187634106437934934505248032299476635225596539288287275127686769504576207824195073661748580172189483885498451229345615177535704428011281281763828266735298646787408899572683384538620268030227996813934721250034806062297498633988524673445450271120855044527510060018263739916603646329131406091736575841397658519431748086318484335346184819779649712824175192772466292624875173817732987267709826732163501612996957967603204229052148065866583645761343615803066411092145182483094619803990617560053276202030774636172819421816721331627169234732578115996574926741038719745574884966535321095293662861559531786866750445617090670240952281571215100922632885063604590765900663795686058009096848260660096918100933551270725445114274352980587473796663861018806978362397144207624020419266250424062614854071274774432883290780657644850548475030078880861136391656384533307752259820743834939045358009512203708915836490764921555503845321865304217575207772798666094353516002214694012606399048825137296453362614164615510718242825381653250408328156065275598372593245583704488814141141380150331758438457561727460219709985514224331124450135920820433459668083676463578175924070871233997368130175601536043415065525744371628137763081071797425600432139367499202061957963953165486512287343368125790825605225948615998943275552662771842262178577714414394036461281229094952912241821598034484620800328029840704919466326299207051966606501676191824773928017366782701992420015620546501480322843019238487004877454658961038312125502609253901334376938976126775298441804018493776525573838032125518393624301372612036442760941391175482251186155599728263695295097060361154585189819943334489278973918295482192117232913058779806789250883159917023207818255905229762173436626932055074827263679400967481175962647776641438248047456890231362897256417341877515340130701428733496541452135256238526483394323102440186148970675166648851753897835806609336964068894291544692066898290568407814353192730725539724826365774082543784572797938153605041013937393769602165660894009864172557900121974082912622008403092070777314412516312251017234059269172356532101855495209497622380981610856070561975442197117056311832415660628031336410245162665426374896509367361334516782218565651638497280668564517468017777466642393618589162325795005755898184155313039422509092993893072757874265876999908550039250065204128544377796904398432855604576493478702582970087752642625420904780642946458850528583900712490467539670601886689876111864205708663899529787732205132712038747298551935419394891353566080976843887722617520989561125670315081727711980735316225867240552742244356255912230629441797307249342747033858347695867892511685515530823852057361872338252163315171334874683820922503087546820158027925945452318884612411272950766922277019516103940715005584549181103986817310064654167758589273742301327448968409019077268004696490647706492941122880894549794769951922835461859960234618116169083557745340814125415670577857891992171831827704174876281273108041114678153236527682392677243122884913452613722138307932040444556567363209444043985174041735568647491457041941198234347508451556476106015268498649249385661910977134652456513890107352534861808137301131179730982421492497074135600770854028511630820960717352573487215846101941818699728476323896460848825298349311678176403299532009179041894099515054884686780642070013297657302404072695829109724627971833520340837230948000086307491603207171760323279020232247908174689195728068990014087022237497155008596373624265686126814413984048644195645809066294941462453024391782464200768161973292252943452838567351970881361366407751788579681240801651658278858329978120260936431364635999354555369957706404778371167921626868453002454911760756740133843661409353295088747238593143757628167635421042088476536756598004098156372049691324632302828273910377953242748077311007089394174441118162847836983023254230878447832658606566513471907631972948690173191927712190679425317546841254026270568842658007730915800984335041433825555130367474187037749647794051797335495431795415104541090589019868774573860502554454901905499188460095773425116758147211407307535943271137598314413783053082104022080564834636803237111694166581251715035131276016436847615318544606579160058003105297737742496083139613893272775347957346801350533196052508117219885464061142184994989554578803770803535548552186219535170084278564342749925221734084328735496516542895473868498738171541646835268827192765097653973521495842575903201364724890163345775927929040224591754940829470538473065518588735629225278285732376689789449414991192667881377598069146104107473407507356366034516434759149535889269006427688082608005509376449742750501952653694358439579501657165927265393996500241274323800830656524706063552556317777635572091638298940422073507169895369559712186062674845943847136014934914765119020824816659769842114935118798087490004041704043948640989022889581066765920719918610059420168983672613597081059506857912758960079419208342170706824556463080003770832837809872489591790700133112744742087810873623491094230260654618574162646105962672141047740923227038018856927826658908214545523233702927519187426011420866800019083892244312137754695099772085189244523114411675716171270307051321806248350833489869263496303393525098952879265151314759521390865521142047464011980880644730740008374437958171241095546648969630990991691535398962840152009213422452560310487321479994711094999992049604759991570505355284923850867887068072233845166877843204380507199329944669942312429709306499499587660184263205377105585127787169024444641398308817116194936273006061275032940054898923898792856416665838186500955593832969310518214971711785144265030145440444143513455282929698038252215752866657496540457485842201978528113543003515015875186701516505074982361560267185828516298481508417663975823886950207598096163842452941118615238135026323884637455291053954241431878906546477446970542547584753303435657331066532611831928863132959753556261740525500220327233032581483275325416298886840346121727937335609976974351386483252692678123680804214850601907499742981056636030243633602706640348878373554055794183583098991719740402062650268294934869223118544096566221294861939849734941755236955451183617969452188825142002560159698445459938164603837795486324304251333340830911957870728027750250496299197824310454144295655636239991547827095193304899125783645306001324365770654985904363192255511542730918631241780433693216498952600645291188756873588500582753605480495614008211171950883310116109538039240222995941704790055724680770647083667028272679221443102473926383062200428489953571507519199520151687448070215696906273753679172373779914599716831898931650460633221046732724396238775532108397380894889375415625599250666258349195066938624187183208214265548144060427184243811360474416041396233324804600337817858688829603423950605571316905000987730437429896396628022195223322952228382885978409383214019202362428677127119322515133102230815592023794782355283970146740639703807038620939788411392726332335744544237330537266535157705245907235528259809718609172401587375586725413137894868320040799822618810282997659738381681716541669284124109702454543947539227974312127022443428776979767290851763862474785324816842394504083927501499130219258817217849548898789647791822532232439103994943082562855914632182568887225923921235094517201014707023645780869039158792388365004757522347175265336914493714519037352013051611214135067389624884677968962372650518755048375857161744033205871285293582506220520646956655591344673034183930358038541524624320649229636928028389174516741161780965137132040795713710840535365107079024148308525749992810908814027754163188388806580820204276157349208004750497943990735588147582922005835525206455271739997443860138010486253254629808849313954716987712636458115787243661998089504558177798828148084913637841682188363977288839512300479347827036101118389233237102045724915900303434726163930570986861569518191009805214810480680574173659243168470205568468351837313309217014458286066463347559130582741847548527862881341460700560851738170749791182207410333334654943168329871147698652241666160816555839463342167830941435554700764783904645831407502156087893857199358460282724703088327046156143918301448477186854578024628442797273392577563858621626797699030481702892591637194329528820751218611808765493646980561667581480056967014652649765417704420382177412408899291202712657263414740386076327855046079957229218605274103611159661445656647307134041097269566896118336274671249469753302083153362396619956664693597638759664346498416213426154272899127316253630226369273399203999523261705561738724570403980465587617994934399428817101646048777880338121978808992661182089255883316612534745611363535932416709609569022928496073975082969942695338625877599653275452799786211971377599335206805134855607638293872174597450426601598900199880403198178990071495402608655440524497865918669888737073377689201618602794918109650597000562197891958602525115958713071969014477305829241286349360455284672588795776328355303635163435856138889079041825632356262219696998042500467761154078573734361643586290429390002968768321157318065230577427249724978008835229943232200182505697331946073751060621304814813391490887291491353396269837850353855793746563896007634309914323307741087662192689705118652233300241953756255982438085273793965557606920100880004415847216408028356130451533173052515026584452765677049988763564335511073035658450392653641647879596136164613175686837606181977790955870666821262640281244000133035834811849600695455724562603059854426856285772572969164898620090737295821271872258522294572042949975248899314000600690893782530745069064848926805560550837471582202294230499951874268259157723399953249598160941862141962278799441183649653280071175968209161819862937277071740528624380318881129694519828462725625197991541663536742847944318962290900091322396500322038382508700405514287951430270046629775244349227180480696698960671697446061340692242005398947242967054999525666574821310472507477371085007740696857117493068683027676292807039666090693589185872687880718586277833570427298402687818098912813446833052586466898299048011802119818399938736960004295479847093795743567305663864183196015441528737492287504639280497796364127327875491318176484146985169917621436725887694024422394728364628816180671487017573812321226615468375002998010282056460099507485897898179191855612211029196313383188794471882022563906226229962652581170113990149030126574334639092119800930179207122201770667803498034837926415018132791036843938857935434966268571194144402180446495756972625728162870582900324254798770090664691937587230708080554859527635818191176260195742333658888297602067318272306991708142605092195281663732080187913771370617347689596448080045529315514750583625736500269552667183002719455676068999049510365495859303938336376325434113685735714489024313219246707924164334395708181277943743999225170952792662352734733135616655296126873760465683979108846313001474496660950560761747163785640775504626148185650433078798503208193142523005236221022177487650591285507905522532961429880022179737458681695219293218011133906355375041320343761640745444536896919127577011343779245360450860023541639268354938022068651731703990507675765186264814233548026688253755942557346148954235996968731087950426400352883669754041112839404577763358451909617082024396041822110612664095764251359110558828259128615939201280484404887303390673499098196843598157304083482769597293829259592132980000575381135930128460237330706928974904024193265344210484258492554636116526547043203989619340753597160581669991767437189050285163752990861357103197230886255059629757758603657022036722933746650588198476269042245135918720580887100313455251943544318316278723476506338949915660140817913424708714624836906437256816325959356266783384087534362747722133836740938452559547436772893105367588716544162432831740800889328504010160945423729136407196923958412111442095802271371402057710193940385157301770351028716690991142263572242168495356152669629065008189851883168168652185811452365933216065673784896499511646667240424983707435860093417223123779631135500007418983496738105927695496939533893836843883220418369791413115295537872300836628070313156378712929006625125374340754695883709015707813454004777439453805267624916571799589243735885673066824292544612039318853774733473036797295904676128822124194275338016089473896435648359006212628343220076292257647502377929855031376690229037536906602691705148719302081245625834095226721236673324630232595611841035351489082293334217424699748346789827086814620879234193073653828625569767635831704975969351878226947470079502603601242297545194006487105545611183825074818561989458355983757222164136350698483393416149385969788130550962925641975160939482089099133780903229327853325937512588391453055457233705780555874707558838667533509382253373824651746971269375958366490471605734134008812260454271770117326068207450408085503462687942389715691553498790331722174017553363975109915189993312768817571486494120932658287331180690488229676946662429558487814969203429219554194719413015934509446737609579159553169806473817793868417597060432395950417917830352770585660691551916812118404574159422109370390634290639419025290555771339092077253140158811005268171938486836142477270750185125575497097299806159793020245863540894665199139459487038882446757666646578511741210665878371180086916217492909773810821224542012111314980480187585044534892756230459750240516068440712588050910344466654555052392330654924910843658546994347717425188270726677872046325831655739950592956348898029472917548544971122035012008524377381883617893981448053690629287000902278052568161769166413505805267867436992104089041316248424057782457684379696397476952939446921408024529647288976221921387565752420165431998923389996072870770447312759902998414951383177435819395885721622713464333264606733542701503635291308099392061246025991413525717396909823472832809570697960715855134615975606458353742958468456115474247934475063244984597977401823957545532166783478332873964960020284791730368602714032683176747496653106160950574876401399118439158357002670704646960925945342975585145862703454079991122883805977704889448941683079786053176160507002940310367836037032658976444568091831269438640423217878229092071391630543893445708499919617654212264750535116570973354741039580057893249954427802054185839627742477888001891087631978352218239471576844316070537952311090174016169479325476130142957504320365982629676304129982210422660906570635102713366983032489530552574555946027128615026408799883855295627532831703207630005743311921789846013127337385767756840345916405765048277895506692690210061263779401605910121180716106573592521877096243794723977032752311834749941393616563852225708164628158506806178125758207154465032487577667250803210058462495090421651083524154066339001716387336426329597245213045419152415507684167073898406448254736703904870027524773745603000481651149294760185157876084683887037717974176007803506093633043399881357139119015613991406545677303510119489388994150073956931566667303858505298213818641885368123300338700456920679971642754040302598198032932537340551329402625848954879816985809838455739872455726521463470688639986889864757899515906287381428858380525247676838736986189522544828699206110753600744224108554900465274333029412149139414898463230546304399106111306089496302775918152809364625229274416394212061440597838638572364886707952540273315540957785730375644161491816179747706424368088445118474796979471033785697818147138252847663825137328670484423664988349884659508226970000676498332384570638265531852424822500122090068203648627949279286535557643753898908886004182907268610506720176610156962844612127167410974793354221976502896535475009346237910793265962068291216703739877372689907781836563970593217990571266031529290708203214026740385402409934772955305476837409647202520989429286607379669285932488115308214704506951824071430954324972139340618757967085417282003693114432959273946478784816387596860177267159837807486109478821698442253484202860527990284765657209794321047645863044087945026385474919224709796716577635502664459405223912815149948334038033101427977613986545297933375442357559764478815026179264928167704297582071337456934997714199959692645843618342982421224486043721933212254170067773033927038246914141668784676252036258483220880015695383976805917911532371249783438329886420312425847738003580314326294890835453138978597402463575618083805532531307607427030508081598061252503280507877315884783043674226479619541553999172771651064370163862662299892769129912111174688131556147193112104887714424230917234718519855261854087368995116632476373112036078630522450479208787227530224855220400313797094421003105525166313151769415184590970950606584432544953422065355781274810072765755505249932520408031354035503361932921805565189001612850372190175719424993611733602679884960794581618093666173391616717213489589234440773538147362974040496662804537716816039310327962490618668516693457680784948363371593193745946234658654196838944336486608432395555717721465406209924645256524998015703022640490664029849135734416274592319944297612795972878239296702340532612913589959599614353897626201275416096209891340779329350413988841816581909175402804125472270083462451788116607235667527075533250569967268372086036976767669271322539571858654937319080332031375173087608971622711104940466443398021563666737266853050593473456018305150035589516643877176080302660325491823499657614422561160233186192800208043149046244603557342224478177241462879489237200515024091122138428907102535525735009249221370077718044611059926416053602880949161194670092417546836091471105188417711784531016966290999486794538198874001129250098921045032812968715217651345083721671771185573133903461806342831073051556142218072605615222230813211099242941065784677915614412934788576580630170923022998282287400226760603237769766590021489321132301646919813801411164523972767131172262274239105509762292849239739667600578375583268011590204017769163096819608139209059704149572769919864849067672324363697299336879699212569101774612015452352802084112127942860323092463547605966930761633950279888300277736028419318280973524233945534371997645309467763483170154065873572636352344457609479647364899784351654697552752154408979599174281513527669869222952273370672523520398781246251436732972015607611431445397050131115020035693733042713804489784622036763279444513101137316273463255121513828621049316993334985147387409234767193888528739925920156618586483943597140688213371273644451515835314123679683788436809575002347807120194076280828370775137596594153472038315286570407193174974139093663291204346428200103891687656918865669763435098730713473033216056348572639331824923686946966054552374850997829051369891611527315357700913022131549133981847317619908381063266033920393460134888806840778538967038544089698864029581259100263706922707428064170477784254946123031992971954716763160927811297726693507521439296272616244876997490362128276734789216825627916739722741508843981746881209311436585833658955089811909685468982334798028867778446171793216040924674836567292451294215399399267492352607636178740698195948261370730203886338067861797372098028185167050374418967830103188467160559987896887295765677744736268069853116489444578806008587409851097670375393055249945012224519518114406465498133186437801472488618961936537183528900026755136898542892482015110589228894399661589552508296313831654726025623783889130806661631796113977856855749001640018414706318614833210967451039904012468099750668577473416569847579957338169804801638037013881806258829996386130207317720122624109320334732276564220268958513052553863446072625221044578947904344841920798863323337843976185136542199303250216160297212363036070744604752201895956018030159142048202137806096102278515229718219289045869266723633307899374858282336440168137187654361605406882131167737889431808555740193734011032282497816646050622665539899160260962943424841267395240017426016113842734914506152048348078799699613121331050101167254914789504691731688210608949624378725031351034206140445595407560070085846657886676792806033600275575956108659256544726654160673281836166271589669137671483535825729567285269881734590477417606103595426348362097312558587524486169926370881283790924346529722873579831615227345439919693339095896820026211509130614809244973782070672337721153871081590317466574679532643480309311411857612696710246688666878782702215534929364072249619871896430212832620603927216678871002215113749956494388001743110743585104342759091595502770630387745314838609441292926405563131677152909614292540340398637300394769138977906094423944364984852184995372882052352151942441033891765647000032070256912808233901591278594892160382694060218059653491315978311344381205396628329769252958260006777655801416779925172486373028727507166913709186147414583007157749017042157894436656539117351389379605565946324492578127885410844774196837087024289302527299959002359717864869572679313020519573492093928824864676141881325916004662720715655513645056492274618784197328749494793662401856981039417261130506577238003120010725847034373157499163567442955706691579552390129837588379379386460394834285974631694799895444813821618723441397086143579588926971710513130536663855501474299799691168802674273486495952406792796785623522678071054704563617855674341099335389420084866194205640666888624829553171816961494510363805255047765397250667588094278686534344302033222939165212172353048441793397388211893291981809964757908460518144594226378247282291388578954804357072322956694094490061398935609718285824168443610319814951902884484158826381940234611212377258067933168005938141754980044934459351894519648443355842291036589953462728530362502494149913127143314482068783154361668067115439893688844467622135103186537960189576690000913839509446865886786729976154241248934987927693099638082612374753388550801097449436209373791831742253441222681316305091405341027615674965174090782464584556176261282527895411257515106436850311557174864112092123698022227510974646134263337693554984094204152976890007329947396026037569373242406360756646292341521385241600825655464829812586401388666668963609610009323066836528145875825067193109973548516573263631156303135551960331917003491216066550992762397085640225150134283065228317117026698485802452943651747824661969057679583645209449767085110236800140800086011417878256254247436506952152043978271476339099192708805964202763094731375193663678815802371299186821182982988782809299531776430529153114624663997961916112407385978172543327193954578453026723644837169379235710063498853757719654997882428156312052634618200461008882962119380833741649247331067871222941536295077152735373469915639840202732429235315526407024970692871983094157867693447735365791222997846510588207820644198854578571403402886848337982805114236808654527898642221922068711464089667826989038371236328984595983445843895161487911834582993016358853162136082523893768931233782031035650454338663685432217778874555996807967681244870120799562937401761526751813823445851542266867265859354450955171986094956287854462571121572387124636035972381841346140235728281487744392429222448229863245775314126012735554753648348650097376828664802656654199895009503913193947699796456227570819008508732688227238922151880893697148151577577533851918240410462050775421972498957091692314597111508195440620667603256982553727841619535179114130435036967532821037935342678498284942667498009505663309823434470616529253118910964788667911396515040306042788841939523786323739775333432723098434972129427848754926583212442631345949082903422480352790572016304475857022585509965182634754821747781749694196369314324975177330417646697466924343635445560073328313726718802890268413393167882287885719875104051998373262308056470566305873593956299681839125953438169589396209348830843189152099253081091856495646657858155530078181792391418572269316680032037609105323302450939556506384480324481029703393640474648434595731489537700495949846062494596042551242954439797314644252090182089892404055095518529298457821347521109595766935388658843659773107898233043825610331401129717971156766587806823895135977779086940440547650200853305765239937967020466786095611718575793745573754658745809894299954210068668054339092316195846775945649417395776814998631012066177907907192924523082624503510122922493940842324968168876600555009988405423749340861034011056309580029297761304690128449187935569123066542595623350288742206117980219213580452169974271535831541473982199551745224775517115025073178645644240389033049800258080381647259072796601767375341907702932829494758929935097420513534922729501981975994925346731045194438477711937920697526528609233926962706961173995498137814577544084355835610397129991714402481097936252461267496480719597322122371651806875615792825815064437582011856434453306316235106329842314250319981642153380257207309553529968717364834696317007305011520927222270903356629943327846748192150324257025873531190953152538219735671923785417958018921387821568278239560853598271320540367806440650820981403167810148556228139175684632154927641563927236633292555947696434288734825098532827689558293596826079216942667438969694293207337435017900257848338878003763125998103722511471739621198234955504699617501375730660862761326851127599785880840600275078340809059864375795065002065319735328266854001825462580097965784952169848342311611429706815583406798765356096661321125406421268139531230022104340692492115686516318877786798986527626660413697304543627886929878081349175033254411210091081172693772278156067110190855569564625461893732131527624385636884898682924472680745700963715082783819429561861866944845969380714829325062422172106048092025380559731324370088790755695455584479477105027052508979500566981526413917006068413058897813931678282866799194316319460340489349533255344756705621871335800138400414807305554471803577501087224071299534502082817252931912167219208164497782304449312440478047589221902190160307317952811828123370039683998860294126268469412064401849976770205846610630235292858045633540015300105501722957662271382813756532006452778953918417517266456977645903113204225126040802232976200519922237115514615723234948261296976224001234814231168336478898467562212777586935501112261967031809244286655910538251965319966610789376746300571394578335094042010965452067232309809326688151328843764173364382529207200997723591936021954128890525923731715255276956581447865038934335585177394165250680529996183285045992693662884767768760648433555062254269910762780279296090527085997528743770627013738299009091149546752132071935079319348131217282055993341279878838680379275126694796454298612385582316781795129800621843540590540780770167777825995921298042249445746029817591080327825685171767622732913819591171834233591979538480627895846591812507819896855273573329977427555152452313965372570174746958449537456373227982772034562629473230402881817586121561952285233530068564339515448582899200288320999753952026273543128069577727585751976377680032984229960447169385346586876865667643766102644341152061602752429380970707464264493561043494377324366850115236225544128256690916060275034552973735841278986126819471899795928600684852079140506542541112490223185088350136964933338516096529420415132976480886391748061185738960602824593096885609128061431652078741196166774025960725796165530317528676982780258227693224205512544098713631992358636610520792408960232004175642029766596301496921068648083076315680866017846180459408577306099912998350503540474663541695321790302105466262689302260536306441023033330382748410753974313631648441736860646100287933463342450539009802627403287163485205713644477697867972682929762237522504477911613030437954306479692472726964926518791806280742659552265302991859747195963704245793586663272500982964443242314385179169855647914195332604854960664186855452709859197596409520819676275989607102653634270110159935750255852509660954471984703925398454429455569122379758325322512311374534100218951756455617756933452849898471301255004039767122142945403271159332256160971154778357010563299806617096267496914946880073352792917279502352884217850663627444704902029141292000804183060753787567318427188691857872436598237761578155054936476253915031081870241435643158586591728469395731697339975821529553491430714891661101725721062850338300675066017250868925283841198221344951167859458409049686319618648257450971273734315358156505152084092158544789163665576380228158575597188173424517122674347137116439966760866704700370845672527905936920149538663908533793434066708707309102632423067936279736968069875510391100585154369721405686944007646352645298697602282824444436429061013444234388817308162877921266294473136195418590265323323543880809037805025519791642165740863778166793676875834793282785347960892908553894689936148307474094894826493391270713778259484634407658116212615366519456011726929945400450351797847373596469807252786747825273570089903775274041927931257068188726585271108514256578112841054909773458188220694986686717715109191106283411362023134319529191682166938219431609897176778768017386473667135547429977399548568215115254339456791938212376617486911369761555974469150593081579984673667917005420029244708548034107425963220833374529390605864404937058778124533862574133654316690299515972455485981202220750135581231075992518872455630016273384290191862451824201185134537176840264420205745943022789322265065634130028605417515439084906458010376754771579396094166134786389713750222998623340440228282033331638199387864552342729534599133158796934228017609360696820283324443381708934858338248990939685717646997552179905225921479190048723312754199093929681988632087284258907444567801561079773986310011679494434981051411571502532590254148985749441246458568044908798906630578389221931936962904686359644078634401032009508114742451545501338643828294276656333560105586956713128322507767991259873006768771598622342119911843854349395750801313077091428614528298549387108637909301356369366593604422369695440224832126150580369391759630844208524828840861858572383108612014181633679688732684744213975200471115785088141462927051261584835623137304491391232148623304998489431604708328470295563738687840942094849651227792480601767611694939631095832061892067550806211088194282129916790044478805590760762682563716149859245802487990779121784679808078410528569503949645470202839006386984650010508324999539022656416381904657569358794974710003216718942459707843825060115603406326978824934703964156183149898379367432308149984556798826543724998430176412252606677340610413198407460414741735925944701544887959918775204668363337905931959620207070889072152033196843544442776211011183162481394030900513354598331271695856418678383547935151049742894314992046163072670334205980119195735935390558003646775659501594294203734697925432528387484950674722027324951318468073888459241351468946396775203351298195290939485956320409104383408121839692765858885872984786552686218729091876419428717130275281685097559179552004129730218264885233748148697033073357178760499974101562195562157444422431710880671849898548790657682536922592267320724526119703150975931002869803335353952323605082292602270680403298490057201572220343074156120753281950074899363156353470816953412886486112569242975292165943280640629213232492414557318295749098459082755912185560088168045669829753775739701280569044039191335189020123065229311681250142566014653125179257139126758050211635825868609397183786105886341748139416031393937252822834823760045600299741728175457919467989095330936313801355543345809979752461670038040580693267204848795143103500661101967651249292885006788611258535988799658421618805661405016557501302246420799643131681300678409619561635391636318816052382767006020402676356229215571721138058532979844181541364265075178111613165553314811608154214542022712332524036040157214889455908828493980138785547290796698869516123310187069707144192312863751271799927114597226783934995671852928478109583874896409910360576354256757439952902646042802038776251891558626906722374518585476187499146586219141108442869016220798151296556078541446454270421823046027388625790159825877288090093573548638297094645771404697649523976287166036651074511948451037735610455528450157615331109034346298236956004131984761188763355974922430024620578762957623449054976192454473723130818760968152738814290659635316531502884300440622119530724323063542066730179486608665612874830195213186705163578624680359551243853238995177926672475463890493008344071241020794059663926051038234722477183580817647186026428446544361921448838063443676874377618266719053295444882570270269336625335399107280600437107652858463049725558858266527298805092545044420831733223189883635487676165205162156839213711250597786865164784426518130640213580462805169892894213913373328601693999149304033255911662209205432978435914281140108418978905923637361734659422514364108119560256705186115309641391261996183306213950239461327695531283571847198060855251687216171901766608811565654463131366705354710568904748558059492627088345887534150225089572521795128264477162103422707461363871293380613925986089297923499004390849888667899010488689458415435949046972110557606722610620433497534699370130870811369111276231820748500807105770565541289210487754781070643353848724542785521415741599107537369869824178049598986115537424764760674748195917707096008014553269415986890930231422204649896407702083946857086562091287683594667099347897541952078827076429020116953119214996266590223871722097632939396218321959335741120858801972943892135576450254632787523058650905596051537277099375692233221448337154214938067531847411274088981908192979509513618539115074114598691261115292164709387051531795386880995864903084546838542746244470931351416258614812045171112415168830196732574005798857045872665471249509645469519547429687664863505507496222203840098844316958775792579817276989104191092091271450125637776059637151039529421136092652492670043313264898612751425141866994878286706543105999178991415173574448753229067965062713402184766522803486842613175969682504282862164519116711437960838075233769776024845843879533400820125447057057878629929356912172724762726753094625620303327083663092724230527723755208446033745321921582180036523320644316217227737305165801404588440639901633630182170291206927454362271033520707625089086008334537267233950214426441855707366770918877640337466589620742985985755531967301852760268098653958225446992249637268431164023450757715514004024720295016877938843938597793829595768963989697473230601939657169347955183706970763681926848919819467680368130180995103067206226042447212440251907625659982165289069638991248625014360783980604834915066370089820801195934519662775430014567868314398152809540918559898383229014932850045983595951935094467376010353545989565384199767417984987123954801356977360298318224693179210792233996853583109483709163022779321310991074781783076225413155048552238899110420604723429579886459073943623239249884999092979458098497406687802992677095371127142977754873905151844230245850891845124822607398484047785529586631535861040389475721814889770264744773058125749862802929126187908474784468312088157874887988528443641978142416938163557051977763486499104110143352826895855628675432495689972790357794969935251084766916424409513892985255502167016782601562277577780468954129338206134461473402529669607098890692290055152930429502565553423777655673579939093372721174062612015497999835455030034329659850430097339526852748748260514323051273717488115457360235657334977062757914865028108815148393306377796838718856110972955324276321391038417063210301618484815118148084421260595875794311675525261612293992434001198315704183234384567681823958594001682625001249555134513523917138738317835759894582719535804420532394009393063065502281740377953992320805786892597722479282482079455191960685004434766064300614981643917698637982089898907700853105370219046828643399451393761856476448841661530604163805689380498382797771759861643422427532264982168521661151727901420964417299680304151350618546904422488710341833544500539368091746003254079524468481945896525277809053492721732453645921037945898511551253746173455304835499389575580183732295467914959489044532307707400487304613422907183747467915176818170364479798505074243043903557196749256076859671922656571423957273012398887616820135897666452688596780678897999786397082430253695531837084322355597658020704355470320004298641701042710183219880213826082074951395850129752610306237924938345018377810325485852804976196553953338460575967101648811353786549682883343263010003670240165546334886253015516358666114962953765455268425070611410719572520110287802787677768880185176677603238854806324194486588304645932417480499044687104776389104322688738935925630037856285787839737716763085679767831257898955665394601640702850862004462260853989981502225489198485322366109485592383257950392926411266583968904940173949052322103870463514201680349790731883800374291502328327629080405334698722092324684562982681355171373300111195324799971801059977838512338710997374965002075963982934266489405631170269789288933964894525890987662824785825452608960470557984172826446903866294832014489898810618066039889405830936854718859020434845967885578840184193715596108183190404160586134606151462153167121264939925273445513758488737646551259651544263626255439706299354001702869615541746198358216917740304609227190776073558851710602575023790140208313449080720255079040572031265520448485121899997945144011185835760883438023312481785489162621129090965161641704667398515502245745120861722033319951383303570882942835031943339600576122231656302058082545128389002301353809126076564203644864658840580638027153159087583666754049593938993272201339267526548781815440769480171264565084045845517906781139785734497134511810735251748613560928819002528519337866562080238321121856025668594492283153061012554213102155205805504216264497219940695125108559920238823457040876487884241838232189881857350481252143376955445635755291796028651748653490178372063774508612611780468352891665125105481741857805063718444859971298865271506794388336128595138538193716784884811687499862579347954138246145365091383677936086072243228389040791614565272537279943940448570650505039029977543705794530407944799862761897620829679374092682238684810023919408542052045682348827874464388686467263742832057359982339087915462578102631906292673395042511466707282563185400867366942605826582372521079157225078100333906413962471951380744715335360103674236014595175485215574959660317331028969980897790739194267733563395261083475257053132330128731216310417627929671700410273734365144758040165829075268446023114110649983735762107206290367303442413043155107960188505356303667672893564755932202241966978030925438036200449171956618043864916185434163852720861930638581157312767984393670899174789346999895454310480451198381980990860577273870555588326185036163734218683461617023348722341876149992421998347100520533389207944107525265674926240001216254041454888226631486018708590620178847806595258914436863996377747337809599816832143154909916485980114776383337014566757073090247073744173229606215883019317800509943654724167938396973084204742711638913749970687203410013248022443100536052647675713479421319250200943036776957709122040166998642667578900714719206687864512482073895345245079488928726546765747917907676544300955596453968801560426291671140308652004821673722292595631169418046112245132288975296412987885633942029552393684280516877058498234694907162441129574951598922850648435762737633159364160855964586430339149684298933678696824528674295563185427574466963192829157594786778581753790131238500666299321285587435936903397564152846992091068732930194113033650705939600738406985852388435133912006390361526428902744073437350117795446764708771695090033944268535871141774517597835767539618247945501533714533854884423300136394309468230615696231097249426760617654321319771866124103850831839018969534568757018991426796896715087299143646675334181097561176548554559701288123864252475830213058035195980104201646554852666024684360459860208839639623339970315031262371136164736668262468922400030789084370182387333750723033255849568663376406751340223901325888777582370147904052067224131870537082813440566434492871446753492928440462584341789679597322912469938497256701376361388623668005772752939211570724884877014165394602743620104759281500961069395637876324023996423162578265622526160988095939221979407247146404695777496090101354985977709429401686077911466513460203314099673283621686368345077566674211121775423902090637188030354180780168229221928067705764323618355516140627097493399174865152350648602086163498506200376848949115252838280764344933812030270982711653972247584032408395102369109424275376842861097847587281859122042758614405865967297898159591967181345153741454765900200911454786027309662945112441666103458352426374509650911018415372217113464591986156203745753337979798000550701789258582962151241371267358835131666316217985370362174305472632874256632119989449567519927883728666621455155584871267672051383950916087278351573606726208149243758687409841307334985950167630986812034247705557580540883954264957180278640407586792710109026796556840830269100957389963699681282261151854487541683495654876362060579103784906588216890166881932256693997084009361733438917516826141128228695679352711391669129244465778656827734428848811518815864690064336474827847000714596785993790836726517030429133069337731103240014769417067001020669988698047544911350383354316411066556726197049307405116068608185406308826109062401399709305975672596725405032693524099183757195942415499603545506627806881769272855171697666242096223755068028555297596444082791860389842691030645613912937985296950175796872713102632675812013522058650589898752381866889950425699904602680678070902630559160310391279873274191013843599331241358571236989048351124548316310592978134662479420789701856292669153296757287587845677904809258061379938182253302102116936334938645256753032512883592458863028414858964762550247558389160724015329938121720549578899642382850003825093184323121117717715505330113072148858769238781216928110127520653565958587715713783783566885041763325073336099689232602387111523229715510338767140181380655595058812061754531648465374734507514558938804405241278705590370622012759163816317733521485278783290798157429814027345428731442313289135069789520735265856616776775173228874767668751417162633388704092918603210725440447606387623521003327590573239289634475276784641686611389386495838310094657319985442674408655558142549722021455878538009520408091744634149500583767597760683670918829855120996091627137979492236434357845084963954078153567382632165615896671907545334253654209408825989713077356336917462261319777885578224262315649684695886301391775266627026636222070183378477207317138776280533401523943521095842195268273953042339834233657904875138577993349064724717211248151216465198176974970110512172022359675762445341426192488325147187816127991906853304567512246144410056448469222915653967253202397727451713839414965362130738382767687584790211070540400341097646725655934216152984520135362194529860742814081778902485186650561852998989912879538613756585333500739266257464274917665676746046681483752202458381108122746278777343824037306555780495170706232825551650598779413964409925701212971725974118440670836702896650182344536481249725958432529209225338742210538281595509594626869491329656931986596108444726890628892470575108468500586147272199462578278604968808087518840314327233934338188145718144413628780222791374407391573737809788164083143321234067357729216751477333325332013468386649455905961303112995660657796965378828312920987947368883184605674787777119963836563296380599734343988192188455298815081676081884843892303340739029783067085090116440006991702518466270769101077363179654872037897025913435330463882749851171519753035328921795060590455999882421169321771126464247348807472362183530772025880750123188437262475677921116473289677619919046149261310251105065309201214806515367432118525261658531748893331070018473201723239045163912084185799426533650479853653566247954321854365486114035803287627335744452600532677432180689086529871787842477816494044567474944194640449515399255234342376088202255226983357845764048513427944144545212840888287894215593534820504943103360951906388792003364805099440728199191975634970349622514602148827593484370028837329148864592756114244782787617433819571990951757859934051918915266938472809672503132525278448424422829890634377118858975365212911302329586068267699841169992590145323012386556799379683461819469534276757172824804050643462664123817522265537442396292601438209357757433132023059135657331331061654230205676698109788232117889471954160903937674877647557160553303288063836721450539152105810983977528294717139485811186304118256196422520105756792214745848564208746365487703506266988750324032486689382757632045323239171511892565899476711456733563193091152687259148408114713246885045669086120902711474102822309403272228519223865269649271474111579289627944871786857261759351710409054185569572227204826034314176854247163359147753519136473312532363432698288782707786197029454718248332901306755936061578983094236196658947829626886800455326422891168642172593407548802310407807117059688989311011703223767362507485556236106869989629988843980514001494813530280441443222761538335437721616816924027231568315714741739053892043285457223839472013785324564922809743052632625362667690088623135640053589884738239991815040041242679200136622042322800574719363406867078980464115250742547337006095464214685983708461480835494083469008936604673146267675161711386345860530108268019259776247229195767516995093938900063377343124068362372683770223767020524546172947130477481775561304122409871479305507662100373685683989127263032192744471495681047557937533595625864901179629804985946135491875965225452261989365568989870332681978219727370786314302630256328327103329962200995188623218748381384646087024635982258672864762987589413165729314735187174102132990698770993610595032148780956298397224143739552185995133833121951774456666912883315166364812497169371594750792308125599236782092351820659434772286792649356119748129094367668260242628184231612986783503730416514164657390965256651505052071295121980536750954013356331169103575285807462702097332398803532280261438549533511334181514472517485641490074497798120820140988676546730709190232069605500023756044188263791919070517789655777882907396248213295792853742040966244603585534293134174124960090336687743745582971434195415461703633722327310195757667800640517179186154797407603283127824345576176631738710093235218150997513984204773010684969900962001417361010450881675697312752984002496348798239551329783066556717657803739538000066570636334025920100606670015177318013889971879750512870622314893345129137003614000488263312560823857585152760355866629762409613574976648712191208030940566460672728868340477331055417613285775589305041052809411064138870200867553508257079938479791406379771239716005401483162880423240282758223394891787639523338610448965280601488953111074523268307043472064386563206384574222886936763456554225294412447502633683764914371311208316550200780294016084110180228223138237557725275281826095111220713693563677637055293237797169177982087576711111375737039129426387655781461924352922526027301768222197304617101216143936793113715651383247942838470715873087732527522205256498884012396310375114699843860380650639180248818168156775805713089603385729385454342668607866568293792682764291856778447995469708352445439257384206547318488192407649674518366706175945574848591666953966108695625540898171628105286286586668651207663952430260783081329443786241739205520305307625025368643005816983162132299823954894656923801620817712121230317428011101294881974847467518623390747704323246008169802223164042987468442012958933735909621075348306377105456831036758244269050207008460417623474219806541073599375786040005014284895460059116003608279256320594515828839623489516937192030706206579824093129578289139734709738074844197765231854434795455106594885214177437074473835463225979201002378469424822439604296233481752681419347262025950673395506514919460834958815694148055146212452644981491051107343908416964199745930525253524119365056088136814391682709234734679652712469031247645621889069022393473910159939020285270152416736412607919079637530926234735885643687339048741626688228002658425198146641713890451355001841286396576560498666600502155717106993195370350402116957488506824271306393492157005895256497751842435845184308724220879549387769489902512601864765190864852441082796944422299049511463829165891406782602883581080700231678412213127479208431746047900908941513668825656866342744377604452762789138888197057933627606755717860064707670714528535195523778451844867106578770786488191374162585716967124705495039417356853781993851065130835182738306582204700445174168491551489623993051370761293440930115983359861815127696959027607047178384485103759624120622417661872749298939051351357417096406730540227002728539599478857608575531649283973027853854889129072173123127291785603593999720055689012231717470765066313312188331773201567377683393732291421895959372683887748278879830664054675633466008629940579745386225552534340873887352439576258663212801165626212804201624806490185346918699845383904945925026927793420885239334110071559411174390512891079817003692077318245067261609882025281005353216614924635447467593216378452510573739035098321369962464584332327792174945353234275912910725619690006621764156117355575080029823003142097231986629433642259006427303324626472400266300356408041128520210430179602232221912251017161718555809216312977333436125240568432074969614429969952174552614181772721964639886729712414308338994520081793022249513034235416200507464097587517731446470926708478997143192876291447365602682684773264475267161205832432721610765874399614315656109048351614651238907528821397870074702961573800804559624490118522398258582793643210204528969040099782913479151397066547839126847054725627167216403339574491980489958785334958273079601253349459037509571278354690546023869399391672967594870594561173843337943221207415576747369974326094996851855768109166013043411630594809681849297905396354423730363909166776948913569189542959719656456678959176473594597892871931685557633888914914036720172792156962814026549586738905036190147897556961823937224394364903055936358264057180777164687884231792299946534148818784128220367542568903565921244190374681656007678508499582057865475596364950882752089882974593557607188536711681139649775561524771406179978487749371502299113220897964406585430813999664383423141447803429752925087597819375148060735833322532526010211615556634674152079556183849570407163766266745975504073068367622519795260186444971135731149411150181876239817426303116001889940764837634316912601241773815727138758229535637601167882162644653324734119931245304873801689116330297632965571792817084580958108326286678932858509682513967109834786832562661936803874678988528690992618704192588252984059010734383295492888575026454296824174750789137991932746914840340228732007516612609758208985362994111123406288709128014843103610223990893059591925014187078245988049970371985744199897403062722489280810369454771714286527842674725897104875546390311335230690016018464055277483225716043037992117891649191063140059305265950037000572240336008054143796844050985792893717666595981418011052676274620367484217617938358498583133499521466503894672928075974863611208080707769475653476651693054111284296585920733730365871416847512881095186130459773216053519019083988633238299936737029665418793265960894986785745887791373728161568253605250302110918225199209021560456321859652730654836554619853469822628513783941596882993143541853664406224734382118130263702864084998628162133253440578636955173592049776823470066952084598992718791321173081751795414780385857834447660833288185922385233327242872916750187605756186713316032505240701980787639747091386091746362710142704332581237445171693607484167988701790591564500085771314701596426942743758245283280329855770325984534023794820940722040254823370470136839033835918746464349079035113900916003401296949002720062036393154116710964693715251315306299990364173862921161445578909558859249826764059851114889891366028358304814320705203149993188559132653930948240681638932238240170126859185913064565485876954987334183649819986120423726687586118470906384465042342855132959590683173862174547646723136491465258803038436509870679497472649384774732902165467791123705710615977461415332686678115139374095492776455998072336424218160542049789201128023424978258519923973326310524167839179247577608499121455193817797070961742493063116768851114695012170445943733088302250082323452672818726605431572714018216594933550385600862787804625592926478815153550757969319574092163119856320380790208375705019766044713452054298506430100933004504018375081073397498928149067017275113744188541114427902112958246833234022394576279989179403888256539173710324840739719522341042903340292640211403064857027178076374037380057921733743716562035025568126773090038693012256222973202119748863117126611272570732448393715195352461623895837054102217818507161047043643653909012419543610261788547415973260030862951047224448523054577401813440703838906177233385304500526817341913516011156420331216924248939466693935619115840778726876116867860896592871126411057691185078220935748702249876786195079454373506620623993144356451469762034633095722607638055382974951878072408642835625309893650304919609765080491505267502047407923600530744889128111256355601211121878357993585589697258431719717166474000036246755416086447499102510274612623407257190240352044615478480769102366498774408855517636941906605643923566696996786420365813898855559754177450058408613659778141084954047599397931849031100155226376130887517126940726431502969905049179057822522036375580509435828346820342475578371097561337715860020407296420140495075042813366421668546851645689495215752354407856794813963570312723812462939046099536994931196356255761455616070584720632772590040912830100548350246922292387673244913277991410220172104266944372191052449639073505062849313139220771689841338162264021103015187506827962845316594798227102792033593728689054545801062306205740777479871821699529068552078675049228272813239129907596035285195122156165682184432390564358759812164060826673281227077722555533277108009551472973256184261313533731975210539242412510477778430316544066594511820677159280405496133679290979755699224061216521532472694180158724065325056018800548509643648350839365266500348344546865709399507702668642158772916491049661099709644132048468120813216616361848918491680605802941654757215570752764964207142294258161265654918566219956224119335783518547258000289872763938405964539102375342933205862462101563382088754332470629014969570717203623177754361480066021031614116514457269767929199124279132296993068805954725872129969872852075614245774106365251460798031740208232654914356506475330444663734297903128864678000211885699677957779136787993719255991362196337163186927586547467321862228504383909250380638928115147817609563908343890477799006342896307681036345229521965912380372908393484833877243004552051868724106889695971315706549088938203036926149711556024306445222133700596577240373557947115776080177410466339665402823575629756794598892238245324201680681463487953118458059325893131346212309967790857302527397619818655517197571852771270153045063431008391000841705485601214308269593047414185655688386578885322160022149888364045528040881263348244134085380020412618894900155908773305054241457261610769473541601317909213348203987083146447847238190732390555700016819548382877849079107386825998018693733619768546032752911377443938468110585414035906459384594961434192559551226854188174496154449241885886867933919312002617386811744497729627996105577212534106663936023908914041652807585208528644111758438647922007344282200456855545952373515526275243453876307350740774970302095962645049814466444940629003474053206003093958894483008462996860186614338758565330917295878502300439303429002641238723389367771962165818759122118773642876890116238122452476723966902408800331965316973136866104103800098893989790852627143359326017770955673656635140197496856089484017747526362755933586161998661599039564938600943178015514242608517644122246973384228171211095613367734616206217836779783655466757646004185335614773802938064110130654024014724865699850200465530397488451841048661321663802530014652231605804828750969489416838206676594865482641737323385228950102923895851961724483902494700818854417044531249827635775744495222244852731542613527898047309887414460753315364771670284033095560086489410398686241725840475093934084532442910071853106473781394626842096860049768915600534776628132495207887267571668603313965731464956028158128437097636382341537820899497895961955165283558843671004756818540373190385702529109894257476228070343956482374619837412793957459772583421772067618695373629998723094577763747955582483801710758614695337956498019818477074772158820686946769299101741312685960839619808293537723499901064648773032178487504667256960226139530270141054417152593048021417645439053190629810497014152517542452913578430427156224070633896291273412903358781411468006606030917937039127046419895166938027937916105620468634511820847135322253565209751072873415595356658376291348965290778074708650295480096561002941013588448690200632458477785215635009613458379232604767425267792796466295529845943445589757310046600441733336310098954806073963354580652986102999508511195084328125418755122234509008905778036490468036327482602123223475014537169446971658776786649661626984847819376603081244194444684937484684361608593185977719757213822122310345888321600842842377658016749422068084938048708443764985008233281036799290176615878218631372084013613091560539234302987694639995417214163753513194029300075039516587828384388559990504431595126506891916922555555531121419979981857207759498609635002012908336958173725118677601584895770882887960439567735019067506670446116632103016272842480000941916731055942646471387169469909857608897997925927601042707976617586098664506599685037793177247631082846123253079543074466958912389843171110942693224558922585733972785252127973113838623150917460143559351321743869764955024497054414659699576453675929015403339641866042923164304042878399563345929090258289095788658615209479722763718478845992859433238574512188420892899649349874188895700935954254698120835044883098970412113273873043633155581932492806521793395350191506514604071931111160056068114586633405643676520654038093160868044738849137222277116320483478946270424783998985560050811316819295003397777247081357576886421027994755652331941012241325629244712192534887763505887968257678492439573583202034166882203266193711561620018518415160493937900980087191638399767791171905595417756979035195592531777021548710435054501400274187201051709631381393887022408372246239934019307140426050533970079852768903506407489374437795853634629216297758742099182939690656200459221715342867517367839457758158950632922801933836810908482042989936845414696540668952691079775714665860807500600100809304754817329820011783797509135977790249155640934278522216135253666221086877952441695041971237071313039993757313217032640195783101633729023457492327719710769532252021504987073559515916517131358490266410219633457130111778568496150420280051543330839031314143417334257906773007360037223941311276490759845566581770915850092239837726823082990680852703098135702856456085951485873442486104566878629277328471776498693122967500781638269731338264187645454403994045620390028250739979863468686198706030483176269045637792798571037227559786714385255116249562301597890766334360002048349604760661171848847815723991145308394899387532040085473059172850597950865182469775937397827126083788379859807386102042551109832281349829042921954114656016627479753968992793282444466315150076471152362385079232112667507125987286880511553222674865310004094938138606066558079619076755273723152574468876410978153588772465426487514642768420530613604628128520947708942849236718375269780602698110784461178876253533332294829781171291928981959841715256972665484848132802734730865529924276557008068561077626943844195316746801389043513223758150743707794067247541384332470703246792782094521560877536529979103449743883185240579676902327454737046745985232529318148178498553100503028989848695873819509127151927388301868039531844182019499196702528351395232134389331702562927480926468198343895847564173701547038123929734067311548260423003358492611513079413733570505428395364143513548702234342940897236540678655146279474161366721650077788862136442855173457179454446472236772162417788173374589957410117706127131870424870614563615336026868170404509710619507387470962417068016400834871507018621605764375344722630556692158781536725545858967294982657751340790779685669356610010732675755044858868515298470130153426502181666933759271106679753084940157965069309690900564633256177790762983800585841791606917468679239293442658121125073773602632558585601458419703183980827521606317896311779886516506996776285832735249864995244172375454880562186778935237773472184468087289939101566493036881834082154780333717470916682491425946037809765492764581108146107710985978223486068627162113673129800742228132238213475598938533014288678887799210724541434274137522869049310472951305532624820455495971209917279623701590913991987969071466076561932039935506182657903646670189175573957342454238117725712284956074004642038861744547178013650834176686940723218545155786223777449647811815035266332695120838798733862211216215852445520148080236364284492084511345653640432737574943411929103096253098295456033252295668176871867720574956355049874410160039135314829042517286772433868449319246747843451552527571567244547528206425699181252096699041271084974995367053717225425826911288958993070213261300135719413146703562976828693176623274458202486848158683188048931998395154106993543016625693492754873309799611692093878122168224911205154349255340188466152692206869269379733764561408204234737135263625109829255290656092071673598609289072044212124237873725995441906137401615241226846179190252227271251704488636254263116473399781374239954372386359352807133717585647294867977711790585802064290971101990218466565942854135288639939830089804486806749497700259124314571773304551401432260387411422411182198116232932353838902455643674865409502252521964545205994705233457894781527125815879668863721383597563461934643561215042678039207235323536144921103846295218542877936159930412968074003635239902262566839943349860689308776364374726470026984101855475700188435626204667309375538743422651535101375843168628630170643038855230488644666230058392133678949762295745770054297643229797783595996521479829064429541645044989594133910551728363676740831663782206000641989584389136696093683669437016415014432039109264532361065401090752709544994541681560071221408547620231173893486918752646851225304852321013623078936349385883008325053085042631763699173559140644177109752396938770983025518828267336088605522086510353883356173137105360218337209456640823677294154414948202958882526833854532990242132475764673697445478300399610554211662558891899424537994962864249756542533956841388922178756343134110724681122423516287601794260416877011009051755291045160944218667955916647659228716945986669058963636256459028208909625998507975975539964371430394409908313530803006020161435852081693562516085386074035510961408999689214059619700583940983920107241612864928921586802437182089103136848433282038392327297286001449125555495912670197670960382395534917198091947956130810205962713406808994254077995322302774764679605810989832491232588916177067916896572718024779140427527107376165974177782026955110676632864468433902738346300540529099450133574089055498884159063202111617551819027729758162100453357824299044364669924928744307629544708753815581226894712119276256387002531786451014035352503583369761647708712190455535413669028268722889302041169453414923769340574904318873918909555511555102190989713654197707598863467427310588203625746353624083199159916703998503135563866251850949964497262777327557452303353176808258097814236420902033043235420598952412381481323529618615942233589409846971972976022787937978329985890920746258974240356887186591056340601828938015825361819776579417496768606893197174628833529698953371053185908890375712189279746571535941625328285411933146195414096192835716087581588992362147143863906388101826492557335047860627448686030294331124282877684642111074080812989987825504163974985234297170971832812285589097365247871159735333427980897121286681274722094792347299622613282484945247055681734113166263442822989797096725719001643625562875551513809710114052062641199041383807659315285241579094330856906238698542112926468592517736400175745827896888593485660444344783582561596793747832459641901753837378071801953913009949539082559791590431973067836935522461487223092560445410281450467612448323650760287774904127264330741036803594107986125792093799112838429540261715514209326617052954414084332375963509683248678424950109573490884316993628674525174310016171309872578931558226720362089842471250994453286402775545595727057495882012545913518145507727520284620859394882018740315129461961556983794350472610504715089837226316071762900474406892220808006654296819423424852913901447760971587372008703039679337620795038972378757608139485243540938671182967848122451625438082498990218375058563688849445528987135263677639130665270520115462641530106801301001115615088328012355038389559726924172053633200706265075071667230441666571661695142298536354846880320185839209069023427757348318108676534138690435043378076286507227389997362388881721013505349216894358692808227919412166108344735477866142025184874969356466756167112844188495674993125847569442618868918856599552250731282503346858335939452842826266082083888770039714877574373451508924780775360314536598250746342222900958038628649990510968499019032257225317697885099606696647424316453601185802121225319641901163601022874097974681752787958675933672850060528532109810780975853821360954234635274663763504426542916688802402327789926630600937819880103463814755025557956075921995570031222024500930306026932426412353636127520949515483721262194584037858003526623126929193626580120737750212933118315851274067893521718681177320515633338723452829236844743230590745332918866317688732612721826164973122150197087791729118875502024223862407553782204543886942346887391650426321126033003346317714394728109946002365767280593304319832224711552481846877871335619952846083242322536178900254717117096611252601592968607592912647387032360226072557708303124046001524759374079617556299750525251800066280425545268040607801813056185349932915168001501630146446988076831512982124012800655577549676619962812030369089526450362731576271971573814875707152957463526588836258527613258385965701715755376908913353590694320493168554456128215689107418004122467565660514615145598636789588608340886752937441863637854224395032680640253451506377111185245738869114185980932841740648340437550430936000651270673486356117300809052859579742964925674171864147760837406776245840665671369528050390433084918493534591666627856910843931415614497751608477100260516515863909314916816657617864591591319624428935697807568504965211820151436437022748818066542003112706832573681942452455202516171404794072728031850303965043289895804825022032318213203869846557675452409409868140342446304325623310035447189870555375927800043459858133980846047397252521641648964715583152368340015257052106843568117462984451417417636146724269576956983031730699305670083961231008036234536061820884110764268551644357347189123592914678371319620609073273175080621852320869663830745973843847375201188555529120569255659725636600054487119984283242753670398844948713158384516427193728905117362689816834115421914723572203727156740184323256602505042847071579596297514278656633219391492666016090568033111190394702902220280315942720160621622186462857280870357161633416994724304296997626534826300314646025134178976107337515877558760930284673100020691109321233803431095212519110127614844483084545872524075538545685354195784854928858363603871391031199227758626352354479736603642715827470380989433450185113050909550014070185304189984927276275935496434166191340047905896921728920098851348496123125167354915319274079344858703362102344517444618663891544698062560640428757057755058190293030883852095941967310150381824484893340031526316825697862568086568289723068583450713527729970768232912137712846918298059634435554904337054099961782781052287215350371444775296732381893170475828099952072727492554221652421315085198412171136828437401798186986651205313978510120526823800368347880853343777921366391932607303318710638468891284330156156205554855103426368993734010321975258422334420686212024207625333851188777069867658538051965568467964861102548891591824028997464732683172341347748610774516326098876457113697003419864197372072234390744815764293426953952097357724834535505783818195355198966910654229312652803860479436394181472899788154044797554151024361036022431321968636489547491866023228178260731984297768330339933212282870339563664015786365146829666712677012783242666999776579031200810214087043703593188090018077520709419798252697531137983935650044134738156453868506002232112657541427789089587254074286300031365511411593908370803579292420050895907147194972432508304483892099719728090178538258835315083824278883555005011314516500053323020591810510391919272741580280315893071546223941457541425746934624707804105794924504323840868967290022208789069956197643419773593099928034724584286675554732726860326556226145590639584511241485217333502910358392855793719709396252270882815674636897966171972484825282181102863469239098867505456962516593973350554390680743888086217133196034444290668974683342941371829210419841308813283438665587296446174967953391966654070372862069847902627602072796289893201387481830448424031375515407204695922464815318582339604873588576817967373969325591834716250526664123454460596017272226832041747160505961817841095562570383478398277976878377846786937581205953364527093421901888152976189758074775027850781803066958189888211449650920537356365227829360162932275229102914033601532573408617152023230513091884766229810440411088954147282588577610302346362050691911632034395064765507047517364985964458574378202257654315841099224471769638154920847984401435835195955166426541430643127970078833742630754028902490870371250376498161044974089886078265373619326392428231224868940501092918870928741562253464699721923440311363296208472697523088469837695908676854831619194533177490106008958213523084339365591818557478534908573297944634440156239026530729725938199975727811694975829845018802897858794542371752488557523488503163890930440679850650427525664827071177965437546185962521804801599556400927061863682276378792161907755883321296853363110795944558808367165421961030302226518051428580058422297068602777046389240307543709208465118730221691913641373134417645808496577248935864946043031836525784485107513051206237790511253667461436423047862713221684156627601413649908818749763538089355139336558395755480054537462181041238727386898355624187140515836698032541056626445891798668098600675733176534856702664830274691643632603565918147969868972993928519462646009783817072494021636383292248893434455129672288547886573197653493378012048317238313089458739967469339462460924098350745943183110817682418531815182702063921756463304809117595773778107944917178062525201968591596348799066690036792218915205315890018167414796014823317823302627978272615194408083708083581542455005352895429081472181393315529885160169784933012576823751308776836755532319838856978032508518683294007869048085228893324690883079505774154532300905394274716208267745642983634908052268039926524473941140397276737927608322632346802734555882783489963351952400874240819124777372685137906627427945932959127265806870153168802280525419625297877757202547865309597973552358572539195356272796832779517198502181186951530083238304250207415761931452668790586376101799198229502319210413614093972460169906841323187753547740895165568429870284507016912027291211913809654526269592139430776462824684923705454655132332324117470502444845733853278906772554013464745626633156759478164711975114090563078806179707083192607121853361374907266317107080926493648616597598478387632819753738386113137624810089550568513062945404573002752944852842342476168939954410619008777177083803150889215848733699945654982984469825789818302707089897414000977697942465323565427472075207302591724549105750087271194084882924606505227822267253140708479440239903546158991967006912431977224076877791865302069660324795153633717989982137986267965145709202849240766688357387810965967025061621955928037787389836175553299170091251182189431096764979321504337110129918243611614544311656559617879894800895787638442188876189265220390316344460053770595780858270831896520269093983706007035084922955560633391482728862437666351554647964327907023494412488300232131025225550674625952237855124083120576344267543285439779431146636152698487079442156363033760046446958016794807674895177828008757932010464731469680562809317508777686422449283678320189490438269921858256807173271665583711434181197264338069743114916031434954415454441407786803525642753113016091304252718292459518639396403166599937659921368124484538297598472042629192529068388495456122205010752655210819904137814429466812996995591667574097211719506899345890531656367710942124614937431581675826643396790334417054465154596872332411844625328899921484336385098414309019820440146051499148502568995440005002474090829187744357768798146594682149912787869042552895388672496049922984268810972158990695748071562713354852153373096271119943623470531685851627680809032279593479664772515711534150979450078099784793161572970975500980770348793133902237499014176745499245426752041226904614605278448505798251823341212521952833669501369743764614027607630522343836797961720772586515871017727810018895079791884805224307324217639570828253834586532856209204900488436751328101805833254389356818767607336802655961034721610655892531972840841348273126301615852370145753507581275292592566632416614591151673580288158537159284320934626536461171204575055958315059295303677430519234819269007230748201310974670759624682239805135314309162515556501237067588706457480597772086424318826299506924169293950576900387021856117703832091870291512589835983345979998389616236576863185801619176491517153967415193072703813327119251126214839498388615314219645392178913719248940355624497023978747367006324188289893344408218193162553074508557897458063449737741033476785572252249155645011717455342535367841738062667909812614149587947390558303575911804151759406270959376699660907777617489855530166600273889094248062942911926551271005944871424862430803095898947271263009560232722149637551834934274593913624609989807685981322526134877777722494737702845700403010412078469914170674789886463955882252373609530823524742363708442712197570590979843652787856350586973983628831850660115159221869815771685855759865263547243281143342967211614964496455085228613546997489432809309892405908660989386264098873694903997640301789578929257255594957507474966918672434608211199320984799003042770687313313242870174159696214363681010161224768975356485773576741691690267484140208330455785704675770725561098047640190999751353445308452166856972790283638898954131012053985001915771584642520615947764782125796466833056316449228123867518730297557964410462979959661244739690937889332679852632530213158930257998954695799539846820787117998837149516141839982442166587416045067139910307782054450640359941993300281829205638399498731931995251818543012486952382454659769449046755666467059148487193461152791041961524111190116152586956411359206320147029018458411199006965408720098404652527076228200089670933429139043908777873272096397787377300366189083369824434847311980704298141081550826742012369161764243484335503078036475416974794543242169748176929733133900479530991289508998035342297806648218937992729939118413113295976736189676561738656715472749256217064118462592191490228032591017955018127485771829752413726171285013273712816190619105988785769000048120896276661912246247587673326535630650280741633121281868692471067235949250460465508752278073502490737062507834583028505578268376347939934566630389163412641828835868956420957081915070440343714404995398730107223344065299865163826116795794839109982258131832261103170958408474968978624642018184157402307032385814645571059349730215361786234280782479033095780791772315728394441369051673587413992425353221645633171973002720819642618641960763801972287231645144532250431408175859928331535482907857227542211864595058000459949052368848536251865249771365236267020821960063563644927346376981043224506122208245234827788602252339744979718622464766146401502357550355328695791685754384001096608662237379913812057704347751942931018986311571184440526857928396010268619216065685106652797367979188879545168236508963836726981070840941159743491933640098676150126179574517367524547467155901508601565504382182503214191105399982393092301536693981010969859396891703988317971192728847219506023254468421835376117694119552321341293555938304394648571452444847458722599128867091536312689800448131843386922132124801061014983402706875652135688624970037826572845807571973955962489512732074350151789918289575519873688763674802675062551974812734605342103786172115415794182398052889898415980558012426577158286707137821269917466012567174741637062581889350012155411061400369139263024446705453707812600657461516581227330403933025012305373358810455094944661690444576963763102616117294871655985418624089332364843060716551529569482885971983067515051149556170022004730395943037316955617747159709567887885079149723326271078633480032347944671156975090585556137744001911238821123912872556914777028820768551040630911088401603206460285306744094675292804352739628458638596289092054706746617608191065680886171146553786909279092314401690293798525605256446218555398657444720530736767463233097918868161129266732922088139150324039360906607730169168398473260836005420805762620313237138355691475142115094174901375186576611524461741917170753996405402960641109706605914432231731760783617392554995820964865007025392045424851668590490087749043435923501902386167010955753104018492376743903141191055706248467029455824153805695936244056188821821685489979276644971654744899073977976918656231094879260138646238728420169404628138765594873556396613643949329563266536284472095253467410912615597468046168326484392742064557188351124993586597411278757807823200708905341209770566092871355696707326648509181711650898371296407588829897835716174034888658155054381026084157730327057577907233232757744334503250973871291797956650656873663996586744973265745540142117388597786186662491702354332667907408607302894300178312593563943461692641980940144461466145316665763871921121074128302065995884077635739578560478479546898972232190514724419736501500059811601704692866653945927060017443968049121794180428232630304354762758451504190773060078004155636833365284510609175495356158080534779135860308096190622471619655118636036113938394734209169265878722659614591314027222388917792254215943289658355805337002763178469889221567631012699858273259915978419919417599748295242453139119987304394580494309980130105368360202010522069374966512742826261689564080233940240455373455592836494420488528895800262634673658664148678402123434602497027305542623900985610345839428945009420091473606846965356420519162441954572551196058276382446625269442924766824305244439342515026313879564805470822284159564110402799902654959669955682153680746503443837962181140774128671432625791806248859484786886780500518386278561712084428391461249096081654190344347310645087921110114306721981793625560391333570694294207814896119474470752935498202002392448192359038738853766885589425809833015563887241255643164857124609455942365498320576399689547744678520021243963770146719411714938393674007312766135638995241241393325883777840438071851655744613606121576958110945028994917393961272694457890374685012583824650068391280616611308197925025721974395663514821162276076310767494754116465899376726912683669699223765227648156070797481935824520125204631563469251496066362558364037095520336244756301101565888990288419246053439148947169985565424419011834549681923886167386569843401631963454987424232434074724140230613866189943415609252011383679308453900135260889269443077946650626886048678190848424600725078671290101003997203955036994667013322465237519449745453216064926677312016244267492185760582629754338005554571177500225429361974808784023357929325022129809028321631936300806337199179572053525440358229111468185821225886012041423865725383245796734401165103604214666874532559141774371196132663578161205122873544794398083250619605511045554248381722914861924862698383653809298602676301864297946229856154847747850103331306120061720364294903110757592198299309053940628810229841354258142943217585507544637295843223521355894705371591439789353346851679087994245908123322586514160203204993527285305699423881049282801274910705816605330743336400153773271284538349132595420917659001454569761648048829798017443100616238475822428256200440378564661440750669577380169854061023249694536186890618302946728726792032302216925629635027644688683096109068145692425915850133766549236971898901052278812225226668005928226039764991639408072686975867279569623543312533432838866414501599474612065926239626970932499117996952569965674901365398936683287053232097153469322185997279731000657868017223614866131788057193771214997957203914936715522750379409364247822699888816352863909309625483201310072068683045121983001445271012966792814293108954168093172072048342809638548006054317100927939021108167502000542495774782642152679245243950850721978674929895409417160959688115555092751580415788176363667766206199403241058486120636838570194477985924024334715757969109352148098539974334554654188846315768090684594204107119990008532558316985278290185424462429502337271931912304521749229982412270806687829804082263958442580338179042577489204462697829939265128328082253030571694268301767904837873746343667104158435285389215763439147123726908869881034315810803535473850444121279723908103104473531563320400745366596945376608682155044781941081953771297124563915209742030525505313864076208146239810416208487865638041298029629290605676234175505794617233906565702289840118151839345945467143765093066005651645522650787766147027307919980298015508926862062275650977547591477825379194410967922834362735097691020868297591213802503783186349894669336258666590626828169335917931085827663864203845386929432445058547303319116343257003941718117408195803961193058299274644917328473138582569560098142404585526808730929142933311210901252305159796297998420402642995412040201635952556962300985623153628249559051439533644087755583000487951268178831609061288947467046682403811643773243714426543988954697260336218039460021434151588814939403267497476067277598454300165797945229906260251580647620703964828826428583737250590685261418253730457855644365282987628096344945762535742385648853439453150617816182829248448001916241533241285991655670921219177750986654345252180520902907034147551042206459928182206662136764952572027687928120928237112124173270956760568181069053033974348835282248300966055860909691578824231805171663290105697513780055451308940200849808142831271395462418738288007909357041732720339679105153899180865485477231461443369122825557530441733148378157932487930150030114408815667601538204348856265499624528095071300383081845601474159090382793072824833310193129156725945666254700767790385741500275989989451989852185631409665762740028240121408668934219038422074699962272264671466150752672610866773734601323208025839945907415001059996509737436326671334378246843336731344548552887069138464514857562890295262203916546954518970004024649428103512581290666272127615536613832617820114563052023274709519622729118895922079359598663445926689651647633982607862817079262580526203827669094716730134329065835421845002922941630626940207794871106123957812976899569905147363998472615710520805535928297950536660471012408825147301488404909568063694085152364397045858343456442036667351694093093515460913230430189176499104184636361808286046418725502980057088707548199418790514190625808409282967338476700750197570309540966980313495678986470207115857651719817709371076224725622648162164599764485956032103850024404287647477041416639464792680286623868951390135170959323481782758643520429003162892772081076146388946958661925078530680159703346527197298905141317341982099357420524015531248331715934912670393434792139478449922577972512619288588876574673904197527491839502893459497031016319927725446677540042109459990468360629603916830284073794460463247822853074360485514058938448847875041309191929971364102482597549818416287891780029393950154794878641899866981333287117979331588711566391243859018068807614573364935774422464271221692910216984240305349654626166198251047710064368027034985324891067736835924331830997888954637683575981430759904236064225356469746589047766128276480770388956981589935389177409348778071855470117361588964788814078684121085505564799568506050447965055881319641810286003953254868052872907838875738256465818617809553675664162296259439652814849882527875943329312040321793965243652893110393531194669584326256780558097903830083011266124652662702484696544320066962971677403387473291104481329297974525581932467387643575905652469333164118360850283081870682719326405700740578863816246141246844933150730816544745168776026584090207532774849014678962470772569954164306994190495923722941227289247933501808966593187735234398003402637284332441529957260546157905671332543879145692362038484471540833488086999832362322247247406501101448556947522115657447747827021781170706243770957680145949381966878423371968716719188131876385213888109923179075663785921922899721164659876975885692572779999153559805156130358493974268770995105917907437298573425077800499652740999377994427280412829659810368639387593541214824325883572543209983912946048489367375038264954559225643962094638967323879356332149977876457971581610400996905983223966937312366544945518378580165574361787539579334012867501228231031262130864355869146677850603272694681913149800187927366417812647686016900737378722607923191955251083655535539875650018252617362769751868338576371983149822807539253784894979982601824627480872842010424433826201650568022383352407665667321760906801447804091963355740392433694640965848688936252828411641185245190297484623274941401168172641682604283185671327844951457217629873609605030127061825325722227982731549364129967819679989173389483482111285724642898903570414794482845715250491722227289963320303817908908778568827391487876792948535086378393873193923175636298304349560735047090144378200680451988916510586755084872010042650717676500847739358189892702862457515319940112705853395082403296453908605373162421036641740461382979627114261245293522900794686308338528801892987653879927318362343361544494787814570716960770635999460962071829702505541184096769474434574675036077136817918280257179195038736449698031350514374714263805639268982618974042599566724511379341616205559575891802443087532975075132738028029343817435820648770715319421942185528733568199770028474177590404735817252662895665561695763862806234321862170238066730989166259973290661957610187398455410919842622448486477818288752083158993976104235293217605857090940731517268174018412225019848785351283714581893171673779663369652708776751554630673855914371330074398731799379416498989079850947924536258612013438010141701085736573184680210197085467234534802196484219981055861096046628772047807501060634450138452055596351602143400891966951207623684907191793428820891322423522017777368582499753721783320947131350720737532572612492705296612007625873016484316674820335452798845255363715130079677956515764096529849262804513786748715167068809354028848348450749226450595873016391157122209356272139170011405607600469595465565933043100777397004833740648179597979113947050353142086834033429592069411092846794046776659008226575580517315980262688072840175854928084782509937813599330175194625336409774100989328864255940905748172137877637307308960687030841997775233768014881423219169118872439261968042915540321670386075729078700744113859855235523974702973558099688382214592332951688467635201132550796440286347874879544256011360237992371846501112913807064009206878809548671944035821174610714455949483961682978656398950922659836970301970270127836900297765221506498455117642023100224418768204119456187019069127734245859139462828370918065006910342179007068603191311491145686548194001256800704860683566084848753147646429166833896844627820915984459612371001755507822404503246868036040414223760301158880723154418199107265256615538777446570481981886382321624333922828869034538543900802323510721262320882898319286462977923627618063342443432351433743341754619705123628269988261792385020805238763050746941531353651729107400952505169312987670746919405961117017247501863639102782198148080301054195760425217497438614683771595361765069598819375718348011145022537135698941970000841772724703745761837914343999787346579114968155037131824502220262359996320285325073065604759559445144149380823188697287429346672579967497552845793767761956886208512064006907727422345356859329430578755476446643827665956313457502112414682611791006125678344724462967556905781033782268453288962411079822246778589149775898829817535240936595320691932123068895757268174602891573235366582275238359379738653043264255571599370285711408708885748782803461471274584262674877660888187489365177123757166625090432990165247218543634135999341073647505698082130900102834801854723088695802355124437511821749926382577626536192200034063786226742515381548752029826719488170915057661080769014865441478710757104738933326054060429676682099318864473195456481363426526216735826446167946507943070416138400124223404887554223020751918705603072413480067423629125040099531971046527077915556093432865814481610027289862452233814053425652021336163837795397122773191401055844119068344259493293815722103295064550376419697914265870380370896507219205170171619460336703893124301956573131180059642976131662422293530334169434576809550666721450468459471629589216166173113413018741175426298235780771754236770874864571175608844950032091258955365240252315730100540905783009790234808182232343543363094145929826702804170732831596387545045139238730734826791861763576030785565899759101540836347772616239702152713698537777632086359701975666882698814210821602556614132066199913056206245353720167161732534474198096252872600576608790916055093088343695219264821577237131658679591361989278293958878921910331200375424926969276579736086950552975631276782661208111432205061727900659466898012626163032969753381578517361861635135576900865961777690041845056428195978667458674133764546438921939836984796289854239746047659965866259257025845579865590681948882930196703289081265089510476324167736294813433575597467102343579041608709023328357758400391818125486115863602920714849946000548498641903301667691937621974179925393810209635098492201278984609673140911929471711297032470354346551616168096176587316349970829833975018580586486331633806768267396050617335809113719993482718754866580554716213929718407773284114863201150554227391855813144712271697658119535540833696349598554108189617458749442859255452733580777951322841187065033550874864672910150536583763252650460840819365061983751697975366216116000196255964421480961968838424807113898670604790478982331952524133755219565176772690648476170055595719427926599148772946051727185754001561207681510924816774708506519212457327462108915668516789930737646407884479761751109021157002478218667067332364040466005074213310089768053787964524152041787411789433919647128868583675617816346297534457027774283837240301811137796121938820660087548343140815052162131807163071393057026439675775756414092190590998081332146636924644827964473309025409394820087387188785505813513431909529632000630881377370803131516708830420204062560898353033188260761435920864872837372511870070494607713075600134330683914155602745897045318745204254580968017382389977288984607414377604494247859781466866828390816059707772311078138235551988916727297003911477170838512527219631695045148554415985674450860827000151875661335818619253849255818492941902083520996933132272594815749950848248364852958030836934352168626989053620231304924641365048506739277554946684835482485317017225068525989046561602113184581524626751124245326091065866313233485804233992987287780098377972675255913806705770461512784224588064464364000661832810549603115634447267191209446711929263843191579406010093308988712008339226724065985874290813090815518975895339228626283601677569094378838266258560825984651919215999758295393651692933478479780411928492504734825624232312055672992543607584417121204068004540039222111423504022247557421915483647157447217606872203362954888167446747986947636982460729600424209427813050315379533933003617842940069084104349835833616382242053686401220228519002847990288110482412072411490761560208615647564967756839998936789286247249170946592395029904307106398438920727123136102253300884205500697910351517165279111303105201718638623857710818560114628495037474164247039612368454595533132783002724465690263899713609681811637786621290489611864553767502705677595034479251012901241365550597524855327620428916395678359987064667461208493183419092527082187940766014159177681060951508588003884593509497461588966252540778072288283336246234216991092888391058202587981894820860171803486295969900556840251800543188841025435110727963339849928488940492026646229346259481610065363284666457178781729347912225343475375827680228812255167040723433779013731308868725096738502143964437058734361620536100063149419316245124683099337233142067025398748383063669785185707276332728835338513120013944024981066895813990583351918941416883934031428682920444233648605179295597094408747234409485563218652904538344660082593206606630719241930347473699774649545031695646055760834767404543262201048284378675856522611481423025671880628708363197753091270976061535058349989087773653635847454620635898646082302927695102162448807786870240073212363364629487490671806109313286845576160661681255274125462577111663664862524617899341134467685231145847356290967843991312470573206374427272628481926115394931501628542960051511976594396890537177207663959439020838227242314307144328066888084173933974959829416355529379783792753537812831732628939022943612429770193162598856062773345139856612376526632163573596756454337822542492084261691637765780702949057785971540090767293491514902635215920302356203837427546550923144247256151032485217790972389917241651957760505825739903802280442941135714879882170554429896248999892131123607944493970225142709560597682613507215366143572548316527615719715108880657706522252488803803234965022959047462849760430429160932322530322168895723061115022929419814731778285759302645995729662958138440072539182783907445137463976746667481085156016615629205583211197135648134461189360040489127422172466832373022418211563814009637270375073019254555517472084561374487559427337786364207285913953949974574140655657424544600152883959138649708900504798379763247787080047673982944681704696582914883307588251828194725592590382998783693669611738087365744512325329811612887900920541916911978950215489257560990612981009337668405158069867179418311906896042373602463434177597216126851095060245300222687520125040929307663738828568724215271455014587587933301155554555918928239558483401061909680371373728970260802133825419625393154463378629845691543642377919571370847631882840857119545605781589949778299143628520176145640108955202126883418312816757342097624325774358634386560979429622333204277087079098663814007488494486506603116687257462869620928614436555052119298340670616184241700889295325703290017559935689228640525935056703016684941673820471682905903975210261784848953533109497105320750244477544631976432248392820196489158901622123072757034591240051900175406090562574004310794997483502580226641859489139765569784677282940672570177756948722693910074212639970145126244068787323820870599686013486333887688588525389726596231854047724453867634559323672843069908355604148459113608055407359178961130396104986768817243256758435908841348037003733588432752578952596731864579051138913754494036672245800953507956507206135987514292146288699713482529211236049609658275105840937152183261649042410415200926232463867703729839516145430454638473116651074032371057290972309570725451834064701902846922969698939355881970466305496546569767478476777316040210674704441253345762673437105424737340271633786739029155607833390182691252670038788304320510965728137518059763251354476543425175488025653126760629523675517757608826871856301961281545080938640731317599298502758594393858034956320730539164033768785501081067262628493370612260469993970127641376062988670476369210403398452911299201487952613941937824270457577510580500945976918621029976373439147023659532733009518557178086762355845888418624884539658652219337658741208714396065057248733672012310752091020982323278537803297851095837903547691130375078304198982869225798354489366364924566598358196042901468707030530543653211045905406950564917094501307954961083904549883331824468516681050882472995431449235209885111909825306876476166591820593640796178393464672799558205079799351584349504809126119782632345042720170737877867876107044357602682365089466738401413459191698336622538316998328703725837228913291441690081126155193628095054167655777813019857948884108010649637653082811091071438157155386995149370073407139000326703703263825643837740083910247104607955780332753648908686399801622559516615857739238664211222966195877378347651764818830109954605974172479692012535238014350091235307441451686371163343808484069668119875784887925562869437276995716470292713633038499432564937549368981507035815784880218730100972167603819664070061845711855960936822996610813839930131107522918970814268398166821818813617046341345289793279728358015661070158801059838405836159661398990105099433129333742052429071241489850493142338690503188625679723525642405067126499768025444561209491248307531858026447502049564833231060238066338601125656744269306820011809463121039778119318872388913528523704075968974119741461556783667675069272545433955266456378591384107879962386917094929349795244336700956014307622757117141080174586923184708526283344959363175978108505197993906643757350478097216421064035331061185521776986903075407630260026536102636573512933091426346446663837722009454209114009075341278876940736660565754409786699191912124846311190777777833868029673562126925456506867890264862136320495221447746085809032776033533401828650646871424194120117572773890046872109053204837282231768952511809004483695610783657296217030325013061770240711688038085585859932152317001119209758058512825127425145531188667412821968580201216331136574990422210515505304884037703908588733044577571867988111759981572211348092555090139629689101714264587364557496518993203408178255464176153667613580720876799941116789480211776914467981693488380896036095430443470059384191725239434419713960775600489804823064016453220832091670477530374411148210157242532038383357979196004581761895855617983538597683624324425131034540636198669262866298773927181335620357850707820034775617686945374824243282148265770439025410192662547338212102254890032896173164040155780317265212324070092906779432320402316618914178573913524100341994885678828783091745557175165960050558766864642233597089695445100777278040930019871018253677693314728093418491972940479206948310695751335908265873617134261137920971712452400332625676539908938651528692770616933630932910998454387156813761952796461152287194784668824762830161432439334623930414727107409521205022126119663673770197782140400005455222616874657095912745636168265662967308120276448359762325157249792981400168291053520085845384662678493320400071652393881312327116311529619601730265042003312741275778252021578529051452972861033945712346604354727461983848413143385507111895609725298899570838603554166508563080783808074486295793498761065507884891477355497339978032708058956358948066966632620018803995816762985967983415954322533817853088146145619460368880159651320865345052956116868033237744640103808024120484217910929804542706931333893759394028518948490052191215590682310708176317410763706115570252273971942991519245455324316569602989736635800913206519637885629485136129569287872124189218676971654399663997804591749085201580914335019913863163399377719624615789341268690138430193390708557308788032686902809629613162552885300261981390119647464535861815771580982265758411949033464006235087606024325656781676615944578742566180848766497492304348429256723634944990582836780950181482428482196153932683266073285587630880135415950296160237905114941526584798974939337451072999654370385786818840373766725619227734729678667891436255941778720781614042342159647899598931098651266118846332651801766718447284004937487888537382647901105630493283156902620402297705050718620059618268968271859913203960361926025629253813154749713304757229722185806783071930673128155625809194182399642933896584578790263440450840306823715350204601001002300769670326382417590083968370861192553308164636745061834659805327459294628692987516474552413128773643319564341000670034928276171458151913154077307627314661188901036046299011595762496724118036347740473188707221385540964168117653580812963639059433145092069063717980565137798412525083790455660047422733549812533291368856374124525853920976640219101377486151313298441263403072673494688723275891281989959451005895666296003606135247955756072423121780063159156393812565633085842284920027001822776729315288211657143765241148355355773573358895759689655688529181296751636126474686105815578727901791419725832927087992874144844793405511115177016016142031978613073793603622106007112679649886710415353811848820451687353280651273926083763670422736937382338484935383185049793201821184881242312438999311423186963702991647958066180961403983466501474675406462352296373477324815060726270302855335027384868164459588862670127876967069194757542225897630769368106274434408029941799197894844289301420931823810124401330751837285086567095820413695876198329991802044991291118911067082174238835962808738460440948030398414784078163542247599149212722124838828344570878105374095963326287576443100182129439623531801323428199029622322688273982097572973593900927860099996420077054396026779513044473269417060570825046417507671334643351795384380712644415419269878418700580030240631399818829640067128815461126324978882129534402450973471807655804600333963057600435380670024505853935574166694012583234641062884514230826330118919822033346151114474640693910652916265585586229927687397642435636098315245528485983102875563192187641105323675874010028848926957951883887728102417460137485043701844443465729091997287873217183725915333395110151777173207393463299221632296062928481455942893342698002006638011406606211597540704759114121577364263244880737192465891370599405429680055705662464804011953489272792145705341243508754085425383759674007806380636780057019321683855693982686064461901466117496833032506226753052577615471185772092211679366063297474878570101501777339472255741374752996416257554028916667276829567216780243913899553645265531259257691728318835299931158599109107139192400895312609110664378225221291154883358915985194004488075051003224529660007493052198414869664531145681504458761276090037345509946482919846192547064315234542140600155193575917726285185003018281682514745868100147544305055743711180038226109160421975472284739772704071020065175498972281777219647021620469698417880067554611498239793382315322939676431066011252949152068561064509083877166473122131387278262516741662590670985653342523046743776902484011289288751861040083597983497359020328694421014674952290314697239481638034004459572724748436248281964666100110148482419057096189356487189301227958354628983149592255043265141737532440669537426371142541466122093227021110090951007722859789669642449873982027016782404390237424870985550173466186883403032518754638759648102173209705721034166667707899415669192427865123745573560727390622498328818025516454302738963882443554778585101838107748022814035764006681135575679349278415314835710828756942776279333055077053198100174752685598695110743130758172307313175574294093027081074162605742919725134972154852119026423000927890393768167790426630689520169038612790860315345069527004105512469816767829020891757144442768344258950216677514037390342317503640361977808359156868884407925491769526608851637507989670499404588627587001959962894584055129321181309750943966638154108730128148361464810196183879400268533021692816728163558296757274275670002424358198161354682025227396521358685168639675721041845162728702862318142551767047946522586588770721489544836883655181067952262950286693193097836195542057326787505890212323415777824352161130846682825808418757458218243232023173761307718669813438256674122602785445741377317093377290814997078330606715656986559447990148793127623905114140428776807802505011409119990227253956866145626126297435881286367567545869337564003530263081066557385508458466287662018312119756748517200500413107650911862895367530077070021072888919722254029930894384851795678511497056419043104659681089636954904389729650777193812600664313932171800622529059795874844543468854690002782110088617689603765933169579121275633566962423821574630473599345382794644767031870762297613989114171476121506639734506133328462413107643788393457085259277397392749209478923085287111494941445630079056796318573649217869427223236190573857087131622754258977741908650558135246074175305301552456807067950637190601599621324916091612681049843256511829442157075460387277225991640038520124884170230576167609395944662271106278379797882430340450226671416995650200333197526164555106058266269200140747629420799681365185231896437620218338043599997036573106549645870741319056118093407929340906527659665131110658930432746918128778863337484055171004435560138783172744833508465558081082226031398001974040047022164764039049309518436998765677525791371437949802423774126791032305396409271035863986824722176641280061603793726470153915220433747846087520858852885048858131081189376244973600425254315493274111323332271911265648291431129009344107132993680624760414861454776775515492676736348544762926519485339233580236979173816402776269062660204033769340483994030772939193689925301778645943019762636315987818187816424786289493776953332658365769785307169003808072418625053805115991748087661491736534594178703785743877225319124372614055750142735411565290821372904019889454844370661717139068163763835827213969743240645782530386811133439358452919816623099884607476761614222165904035146014182064607285426095712148736323974953044565327992020806070902330341594973458919561798462654025587453628107503016262118133270672857189111944486218648161575248987688172868816050631140277913839382777726492854369474036762819297785413374551089673004085192694796485963421242552377680934327651874808861577381680839582759425450267873679297893716146588047522695513019859950634092543282472583870127291499743286675538033984002960495785342869770371018178538132879759918722971082359845140075322439341268336367596698744167732894534117455120823797685695358133634673441123286468132045969511082708493054006904141022529358698958259528529947814698022682445748459840937802476267909424648494510872307903684637396592749504231067860618812720583089796724014133240434548306138210331718655365606702336686876493253992011413353163738042830225093453745253841640613646465407166058751353668393837366506661307476473283359426743250933067310045835261713278988328694189254762817001202289460744584481780196513863599834913780459535634969015268788236245331376356219040839782352022874264028518257841789036052343991116263030043611687138997249698748550011382749177850321051905022528635684135855587173548913983998307659505612593137374706409339545125586367737114521476172357960002258348105452693098473488348879774721524561165744106937556989038110779048184901610813251619079419102665630592068113518766345121015948322250542529379937643706152740715617645061619399683164100001437841363225806083877333169258184059583487569595959764144854379198385733896910682882573014496612558345308481023020874399914894868574933983139407889675528079361513219425130227089225153490098226742522764319144933560659464732082515058338991796207062485446812752486113771097650588376677311844052248876319416867935201006768816285713268708011312527065902255944260257666739293446629308649121390766916869299883413188454276970426439278660169717892694776813237619101548044402788017108922307957592336639620783811491897104051371607297137349277317555969765955004509935963954561554910700374106071646445530245644113766206215480266366430176730782889107396498261468632576302275869317870669155269628793554498692818178963467348262300196101569108717299158213200911144908729270756835399388251217240695505621735084784264094833392046053435098336176124514541387743329904861019321815151758212993618447615493550115314399338934002317199410165487683116020896666764498259465640201629855029861075782388680831196634260816628042842777672028007906093215139916321444264792248038917197782775000628053745429498214473688497679332581363628875118320833810405556848985996532246716586622579955899347462179155663323760879343091511592930044838094559280199855379992133553825402750035052500561281513331054782973838053238541800475134515330361668422503001092345733170394894908798948456667723050982634533174911043759550590218962950599845317262895995676346588824140017234260499446238372310130373322740057865320597393654725622897654112111292957927151716541359631451830721842059554161177763362164746608572943533867373777598230783791195311319364511798092630690651859686783108362182342281527904194090054294589849242180747251126669177826856895608911982758583023815409692298907657624191824515638132814862217580709402443938119983116464551956291575749546765550449925677280793384784969341971256482225445518069248475651060828340335604021912599240780274332058719137971781463744780842903425002921474305405485482626682920791832474202385376211218522089948024937686565662092123192139104060078983689521702344823894177865652056646347615604170011498500623120254944629048293872599917878554051230789854076801983838876083833416691180518567115099084356300736803009618194341087327180308500071594575421397367506503748516665371249215641498857677418004669272330128846436573537938884039388005078244882500959172138958666056064339593564775998822221624711776169209749376129354511872820119345949794222473981085321220826394568557139906405815452212572241933717716499606701141236167684404472372954129348771382713136894336472881346491876126510757909810429232638434793786136295938867275817940495519295942655163688758408702356783920745242689332508731888364065107626723161539881551775164097251778650931757394922637969009632007646423316334234954337668593760507169422698762078826081025064085976043289399148340318413208554299782684710030860507715796109839438543931053135119562603479243485927435858636100365894546675063593757022775048120247562682407975436887185243464247145331968071409467687852894928313989443446360155189467659853506805705257774013905627124178777704038176712804500646198856782380557531964750330621864796080368750648171655818547402407456388683918968310108869929199389880963459949968450679783696872841701490203116335341663457473387135754908479401448950095662952736328908690192344578736738782233836708244563115359771426797725943420582401409417245922924322319261390530073207530979308135472752798362763801450235819190895774559831309686188788993796947579488948814483084443299199358460496897076665499468236064653694012095626392852897361958333009467225099671238479271059154520868308101009675495760319196927421655856390225054208724102856991738757480563943508799622418755241433174226537688760505011680905697422010499016476611552825138249396887343636463530661283158964559711981724987858643503952668949080525439160743618268934685535157591184871719812924907124480875650532664685471144947387784215565799240386184022462903390054999190233378939943361037067688036314687474238034397080321267533615854500130138217130822306783303835402433623446576244150697183350674142482633530561144187113640516610741323399735494089585499509508587166070457762184884010969163815853474774830707054464730453115821125296500564238628300723343716798172329706909601888460615446393086083979243062780764953826236134144520566971849562207412512063096010423439647181971386291911799032505214117404192338369063011572825981763707260972138596701243800992689421539770164667368324939130191932132279824553525576574506024382141383950639262796329552267529385507320960688883634072882042502634185064129465667156114011386474617419673443804497697326499183298661830739494092157572109198728774747868356074254951695184865127092267030847942293498018610025584894047568727060318302205471349868530547839509726530003066602300941011123422001871252417329292864803095442993122256439340214840150680434575931605008445085451104230294562371375468674628263699913216739662450760372132813876990888814984896402866483679292640318422105889829987878794174526397832203356285386966338445917959139652045601478308917553429840640610686609164238985036595921791387246246805747912265059945883911222822747395522614230249552064646415210376674350773844837792258226800097494665418285884598016881605872992646709646235756942123405131251923617663305403047423051937509011144998801744601355836232165306407440016413960970892675393430795385280900527141857277248406240313160422944071475076437397619297913933406853919968849539958507921632339292359338915990198546516910910454425539011864574167103569512481016173507081886223192507632677628197097059628924886235614278528965304024377790917277352371595102581676571327310292793923222004491889829525657924713955124950630905381965172291198758320023183354437783337848359791582907110093476686904601975465971970610828734579355517826497469237610170008959552768833168581883340307476685964147037188412684371353003750921531764948923979327287914364941918537035708232899763070442884233399951595087775763849193115297029589225724017916151894618252872522968586596050155642642376358828742311263020998415792224885841754899931724003507833578437969891555678860932597091247997627236994614725599361802995443193678119226729372682845172421723483749223919516587500595010990924401889343368615089739715139821795013888049200568203014904574742206286246935047112485507501036282171774546548180989752364709218288224305433885383091052361515292659109570875304421663121787224253972355381959144597373338778845903213716515065401559458869714097548832726302226556914536233946093478474878228641212082902475217945394593467182145122754939604310198310689901843020503576504493155694939927685683158619112562538445464483293803062313158558702227580746580942745209953042220694265220230431859860548185016821447424664026454486094954423969769654719578534355229875455355162558301744739726664107481925255225619197297869625561212343474613993076738147782885244755458978190035211250443061801996474702053732650730311644847729342417099062161210723732772392710808652725178188364998995794499578304729912137986986473880808458703963844806224231285862492749673608960190997648098068368808386635009239592467757495393046943117969557720843189908486905403864763088303323923616733954536436574288622338256153624342999950894652637981208880389500414194866863819627958183058972131859618823393467060622510415260590111953264958708990427327554654616543164688599569431229024519935060471762780504381333906578768853448055933411904624060280067924105857375254042380461594507667675733783318693800137305953695803587386478978189367914152798157420390571718943617053525636425940416577707515673601740607828710205939401992686832489154959839930328009713884080293682455303465809452705950503268968553675710573862063258632149506546515717158494111958224525566687018395118763325396481118741353474924543880063153632813434615949122507290096532062596022749711299190851975667642007743233391257876071984924064273520836162765011617661915187530226838804343700938274642965335840105795453475107737786860670048112028077246802552532973967871304149529368228588533533436754633156778768855471491892620944671180939826884878536845698109625777786624175243780991520440992484642733305594514147291372745445556794456236567749203655806252651480207053991659693777207526158105101102254997425797156440295730393941387305238926254882112680028714389729688095123987252813298584594792386824170591515222198053961907526728009519408213621350133200974694758304475561579589817237825240504916998220432133774739526591212024391705680609952356275067195139512703370082478192829202265258219253127363490444725338953975729170318128575751927480500041293438909051477499236300410457156385871332087619352117127270749078103815847565968214094553229611884738781645048493682228717975275088391926845580267537893436198917607546450226324735592175845861244675997700388938450148742462567282001734938064888855886592038644893522053883497593487956811833958670114947168947914273770598720659790077081716675497364430001230239894556737371373731006616814453443735163833431057618813584853080519667500295646567541643524954181425100219226524996082294327424021480415764774912628028426243426508534647641952013222776044119130192845834767591897707973324174733949738836313282692705426972444456373126866095715253265207683620532253153081783531968899519514840951302676347475156186910432159054526844466255874161278891717598100258156905602251175399866876009895542683611204212133585332237459754014312120872412632700271576592946891454033284739869981240449272938872978745417334271278828997977326875720748164926414520934817072744423700875098961570682326144874577306450080129547149345039056797040866758096472264529966667524682597224844157744562880152679840385352448568438360579304205717925577068892129432223048339267609561280549290110037784866020989243984367475079144479476390628087652082680961043535082668292285183222688762323281484230497531245748298893009860794305466566338754621792203891789901335108954866223091938005010307107103094119713205321196559701812918590106393044365878571662751500402728312814675091331368137906334416608940446510650337510028598111912083516580205439491740333765794819022116203929971606512308169024495564269510252767244856496039360388166744656608299135308068130871172132719810723847634951708513794149665647749806795623354327577687038178357135221759279400564904140603453106032307743896722167286676160623427499235951067236872354136923266005346406986818275202543841916973993525965088391334719132244995060588648554001027539336380571855876997751770631293523244399692741732619160686898186076243720464928129917176456840857474256648611125830385768489989191338904887330028963177285462526645550231516695995701822866706618128009413381033310980441898634270287244772229011244143214412528253914909506234689472396424850719144624587163104992429288313805709505952077711279624152218745372837981130123924467308612811173449696343362489653712047579291732541922509892547445856462305606389578546855570644123089979368282286899512179231600279697828957099570598977085831127834485086228537719687015771987007429541259289053007545560870117162934795047298483414980482528706358526040365425663961386059971125747970861842122228080015870247078886439801284875870315652301434929164503986865153557210768026194223452447528563712246370880412341785013287904939129229375829276366634931963281464737663463080457819203395548391600712256185334189916122773931368896917488948942586226133733855902733839244744522063527716295070406245314226754896407234505099358924956850670998593032465604330686049477586547561580649613019126263492710036028406413434867017000576985088622423580903226455403153361666282450876339004909599624582500980056243860555297317339374987498155845699119644483640390584015949309466401921647698870675755835762725692509499580845078697870910489241214445877896851308775081530447517285439510240567608299234897072011436767055731517763354185663225930336458943705837905854443926942798875923153973704454365812664203647307775999367179285218021342916763660759549860293688892533183487815217738858558390936607859086242168840185923856715648463030476801845578768650446989915310992239184396004984746932890180466476737740716250382289829501526553708415828015202198802206252338077347312525048858384049279178137739288304364095163860769319765918104928105864422595885471003153366147890477248536744123388838925965480377676900736784163675432946763984636643847096309101565328559377569197975404794799160640162089856056064438889928329534322634077073502643052226859525444093917302944839698526016796977068193853030086567820385953723494522420311448895656590650329167211250559189579816615241547562645452985234145258927404580531173856728092012051632511035093813683834326775686988641531726729515731691572395773067061329598123647735381035597354260646296576312375463767505558589969712571792149533378541836811815049886446165936561638417832783424425417652692719930586901414491608970136622086305865369252061610299792337504580809389710840751962630322885023669891133088016808279924479711168258700057298482715911839391147141584004741098718184440972684938695247857657925651302105903787678650774134618604814781957671016405385151271478563464156264569891068717974101251051037903659089031446032752949712209463378591630273489477412461023743114590081217144980522286980239337110917679394888478700346001867963827392821062944057948981884886888059791657605285575832103611602747492988556145745550700617946734065980805699443449772293265805120754162609258467747043179021746370526246360387593530048288891704830270334190690218217439168191074350643659119888307995502532573908628600798557199366954001631496146426160529821987446105968486362467280811400286716082345773621138282408181592062070433098110565100483330965711483106817706343606759541603521821928670597341202852277063246220038429510962959940758304069718896930898163214855431852641956014288182697896578309774865078129595567972520457881126391603478619971983229050737177876090221365999556905600400911942907828937079746130053156359255172794374580818501113702344113567719688761333117538831154739589542102405168151694847017778503072297938303979339067024769799340067081663696694365657200537206271663225262691052970025187913899060737603718113928747479473352218714472740710182460815553847023077699092233897546067873806042686326940316053905695171798028175323297302676734236066877783369791081390342926185009850413297007015347247213934910636090451386488529990378169775331220927950410225578795105122845660073430325359596977557524178687604432545816161320768546343167029783604251940533432925410325948265862163258193472277402544265512388233661949287590811030090547457207768012008500501563232734251820637644234235067982544217623661678691989531584813956190136100465145699417503439864118733534356589209852572650133716161340198120239805690477177641015113862937690270476060086848965482195085145414402462092468766800402600531176531059492853113722520853623546667675919097468427827141920885277635696305272160320452281013517646456378026412756166241093601024940421514663309859661576198545592152734761369233683973899728957617460313221254522905432668396717895874010028369819619885272911386542286832678916239227835463115029196839060313247774712497743553783807346568444275992609265146508026263384882769002952024346574033979920788112889804531288182557485862972997111779039279298638225143269695805091262076561896591064290600530587113612254518308023689706433627598766738688332277054189845677230802340966285071833046007568808760516815111791662225827324729716417451788873338435737137753065418419566360188632246270059105813011504388681587772083126906130101399380814049470236576555666252131515537090655680457668351649543765132232162924795471928533135580827358150669886644132310659669670495312854721670167957954965969786009227291880649910821288104711829172376319067131617905056070118694488189347801421556812059541499047189733954842015211204842023046289542365367256824191777193376279940811366849470615809003661000842016643490528301514025683684281954196609537249454058700955728512282370964788262940424247441890334851551942854761512019892075353310613873409316890661915602772077859259974128571319814064363264191981433180888018285485358708753432205236507624816417103458205555702601549497290464621253879278626118998778315893585982371623475579079174568465117490487927913040461161583823751401249498002108737851327013777409134836814380904122513141229056885052718653914750596935654456666407944585236043858877485452817637204357713030415463010664103924158557480385139029532359577725857052260435994195362656386371416660053473313284277869219884504641681848599730150936790664175853867045778490777390694714447461789725865763871706264447565381197841288907513651748972263011626709824920151388165053615204181947747559193269204469118244239743553161875772041336395341480631504768513994639357379171032561184638216293912842845432282295839633802656765935204618051894857539259686501074033188971114431654497151081296612906462703260562971062897105419736882343027248720499144756142395871529911952628440985154570282868616931438229332770638951492923057927236997904935308215131805127116813370507706442439555336066960071024133128365021250795817286287653862398134711737163685651330632463828133241790730670334975361513885337767004924681865438517941783106356201728986755314319705417838147464029108483675779513468180478161395610537953762153558578455382353730449491614227846774632062161413313332507570794745784228673733688114406164537382609644799740876365119511569268404582294571474892255537057353210112791668235854205139644552582668829974689871713183149492209560468259039032822847670781674640135162254282119160296290145386937100626311389484835278933274286111348585916206709323179320905412106269153222325262939230850077060761365039491198548835643037048069699237343606098754144439438839246032117907495843119596373773346890131050660217664000572860760306869371860303296485005476032508666999248184371224035993930721829777618844857298379560019038838533383606232788468809656946347773855065909880067317797432946633815357708627046112599292413254061717996606209704302861735945635231169441425823562674193173731904207726778780758440889305745265873261157233916347066826610794763539668455382214568690519469322100144515508971533333413694474291503140488365937907819070159219491385337199104814782234460655898243624429480391101538575683526747695630660110775161496922159856120351170625614042288065016564792613451418826490110890982204238154312243339451069014745355883783041734433319561898978770736018340348638958371152786728288293461060041243680722565706267680245150594139054938287485412043246985311387613977519743521077397376291745511448718402527229052529911137783483265263559520742835697367280263220749351852310551549667869800672258707847900149823609347896358671252339113622543055659726842982517709385705524763665371996900960509323697263510179270761975112733145482858067830618570361749956426664631366313141901198174419795222574912628861084474677224931568147854308387818943229408725184513125540070791641535952970132792650652639801972246252728708823960288225894097731546448694187731118173903467815806082647791431263270227657917275452976214286294393722841320644857270721546943112146400994718049199604357343037066676945613176081610844183877361387116294043803987688952870444428827100081135387244887130110137448657538623678851507549996820788556080979839114925106877024825965632913388045911012978330848876595223447674464456332605339088724919640539094514281289697522731717650777608197978253859627183484405514497155139410748658892005101293875937116523795661738201296449288899847840093907591247281809293011555098077458586779824206438671235502530578626828824834062088670061717691166848100950427204584076716153963579872260687853325961084154589785510488486220105389437421005605489066380431997704329657769340370206560705438611334098650386977549186154149112554062955544682688390531460710413593921881285884115814775845603538217050610621623884755659117654210547818616717560907046898694801545448947751624050263025016474271448784179931903007219416797335554939812774028507054346755924180868301237873081226846456076118237201671148843719604766751380608336090267836505472351323278940046009555530997893728560598287325558957147193924145623084892013154873962625290607085772196481817459015246075852298575243459879678738785880342482986868197729289970817904550812074099330557624294512614458729260600112632183310850014331928700969845299276206750566247899786680362424045384485387007898085647345438341044241273323436020977404358157601835045784548708150907332169061560415006822203081903763163525720693599700563083360549058794463384160014010623361194582595962062568067707811830383559064276144318111161931205777552990775009384065885946923283744524207237192013644366335882827516235587171544425174359418794287554302306303713873137134570353199914668989945634818590079506675659116898937198580234654719276801974712606503658653016095753118234810240872783783226545483788486821194389555858015575317452702998664224650667037769869904317789230182068153286821014312478359179133070079138251851850706300785298704438338417120451126133871658546836609039103338753724659655791799233894289180859280266949308225415202372786738166083895737854789502150273248213562778525922553319634593626297780077364124883560104363657138386173088819519545701290259642764031576136640561369203283361823479519045009043138437900080644194076402811561240246220316295492434921735767774826483172402128866309704000851994109628782705435713627002276813794211680787792442103825202480779961030407090162093632860577863670850269214302881187968065061339678774574066394493145118478353196573203891398272474670820769569629293136090142452692798933501744012260903977647443136523293204419438669708489108752737105747151128722163398914307566629122009198714405543802999752218585277864000341380959232917503985655792787102790439222060164047601301227108133802403096699183069645007386286081438617845596082149009310994393648068164909476932329366622297008922763107505882952819110115641488855747476707461716527163349502210510960837773275767680261263377586589495289434469512879172334936006994550946757191975363029929634645018935647620835285392234189750300933682382568160641141627842511711987395761648818620444725262844322648654029438592677676862383862391380902026302071970306128885774357362374377701038799059779895102353516956014813069738902058113018678909521712018242217777172470375779152592366741362951057661378559061808848444627070592028434415058915865537480059741043753494734349085450004614933759297985036925170629381688221596320510441267045598404201426997038092617344388225720464151908495139110209107296062360772299732256930094043848832331301443214393831482481668545953304370393854896276454802744913809670448930783202737100192948103411617127484040251329060222717064388368512424582147839126628998404708139839499215284165977233408640643155773428454041972772224985813774059568294232813426695354422829940182950389785476367347036781138687663735666357564522669325049670246458262099690022244087319040896639333094669614488614832251959398537840488992225540646776529015583528997501771702946311276698923714902040352052120764987022974838678608414021619980714514973772433256734590459144561073146345882393710975289991554353896739024615908233757383731350157850699388557893763747208392370027465870722870707360032742458810004007164441919982444440119684089411337940031027741048391636506793040805491524278091477154531210980538477051360248098443729278182342055019620240993361528690449253789435549369760841180871209501363380184456387545811314229202756086727046364809586749371953956332064844854667528400670281404464383700887613733400012846519990847281472139035212891833250829336912329975784074340340974071932495055886517389048480282222535941489702374142304524347810254198603998577450968413910535849593681682501316504730470633488180251893163713428515920210798111764382606936415371369376977582713272715276143333703458289616853322862963283584705057380371607627591298107947413066449803835571867757263435013562696707678933594676336306188754395203499857791197857565288030528806923002240787615513683101912312132652721391919478834497091511979894817106171706279736436141266405704712812643149443698928320846718709587644679003100140388300008170721183654347428270563820127274261444756690693804454738948637091845224659981942770894630028471348336136070515466180663853990536294035346012774261303286441834739978362377690074985318046588867872057861650130819484875946910230245721427688547145739572391859051639925178478833111553706086384231399980112390470947659389894544294020531533799469139032484217870412653175999109196266153395757387802293338553918988948049478095307664777764743013596277500275001462219977083708630892074654478276235656411910899496280632653449940652713966374147691776075378219515555736223514825936677137775769196639822007267900645885954429945063729692047796977655524018973817811107268029061377181763638370922885029126534391894800778226018799248957124121562262231132229859779718107201104788322267918640505556137300655352632317960761175431518225816969698200698420538061127711279449733746393663562321680380391849568026203342302073284069459863803171095787740668742153090306867884153369312125029771149336309103109088736526334763130901560214013550563839966008365607537353365553391328239465537330143603097695633935720040570297666834789680799503589670171742044938062706811259451440086254876436887252114138060463053902055456585547183485631271080742330308618136890269718979529019005652761865078090821056842929621987492153819557401849817170523794548195249284037212020079283839180946448548647064620685397429262762931800386738177853609025532249182221061357361165564883688379207288053361011928690261045500548772455125710513393785940982493005132062025937605719985277184862937084936688665194951990275516675463404839265905230973189247424448863274563525164160849730203803824633290979688375744818080393485344682381387573472093875276229697586150129107255087733751006897261716523116528631742545871067804643573977305866893600276019676652657439670750353301980641747796649936816699406401343898502444775696446308376846013284153944245938146593463688225581967878679961044042074351561457715778228392283864399130059705552115084988854083323607470688416150607486565656229332194964484328135488407042827128468865455964518655220523178030790839920657649989345764504667212701296166608328716232691370123505201332369104391484433264829271340664286742119430199321888621235879611351968278025987823014282344906150357464581725637734452543037306176790120264633217136893842545951351644235626464546432742559690791074124508420353888211480134368740267889191878117971513637979526780181375411337887994135149580588814245026585597627547648271327119603087566552113177405070122807098885432678532983618327076899690730376176133359594723919537498393004616906340008804616182906568975244310378764349723446911528529510979387996042649973008999637522710830438331113026715050388927224261073925426612850650353243468911507673857540247502760956640159523131639592008982039425958729335507476871775550526105929166926974318105857691428383934378412473792417011419939030983420597345379858849100994199872637179545952579109322556586442789007627619859914275354988882709776962591515944728431507021959686009981132787059428453379999150044107143521096749466988467624635624660768010429160951847581002465278799780082337189777731077373780960986517569700803692290383191579321894697615548491821193879978560769909274060913331910805571279968674376752633827384043491850079478423846152252060642939354866834599735034978997766715678540724192266101841686118858616918756741042485763342563968058295654431503814324634837419731634418084848229535077651233186604783688727547432940470833162699791995860971682226379829039893685166144102582113069560730839634576811879968986452103191588954081019595938861691806312254773143021874912095686049055642967999065128783920762388262009141667703531820439407286728476933943550263614532652614073135588117667785145402538303536517299265177616540805899263456960366338236886496383754058079085778212572284839439359704413942212049450272158271730732973916359232523144777256229076326861852953909973752602846472467554682490715100025603636273909149174602075361301518563678529328750562150558756977554664776342283484368246362059491523518104148488344468964004070404939320646928085500634961982470978368306633581371316502672728258267325275915079206960217225045341645308871645239359707308449515745716525787729093000532291108810469699536830933668557568150251668868474200947436213058369087335310044567050498240153752502046321338716065925789629367593860544978763679777602337996254612546996045280998353726234369182614100571616892473408336448366862754359517329655596549336538783152691671437340471394221655461461561714764055972482500571784115865497997505960109929307499141921113100335122907856969290870664384781617892492600038523189981628869145593172945554776681859256678669914235556589371863643630767604081261678565068240880141472939696472294763048381400003816615531181129232138702983469828325334636625026971717532668110400546496450864741385894174997964492511633735179448299773520883229598449769436935641022954972680897136786026275287306766485493300716567233586771772763996456157229806979594070302635307903701250852903101167850115707319361802556132801141964595705394054177541652582089673388549262350603883780330762238061538656423396244900916397618758497005370704045840615531914494845180020589699948013182636522372189498860516150376553140730602484250880473081915189659005730943543704819799947410555951446975300501454366550344315579135220432177373860753704675351477993587973643754621177387758444653993723667423746838176801527929069950172574428067658767233814010170689084888979726818406757265365404621123949831798212052782837149963530351693433055684746087381474388704923237391569677903900678135399843109184890911735236893696890880160332763747904013372479921751449275107060289795472726126634705951302586273189305231430483780502142247576766172914666667522093949555312064152059502233493375102384202508678605860856738087875374868049628813831606346557749979049721640017042224460223883749585988428891887024675982276120397874963361679102310361001421453909792498480648042743862608294776550653621568506687276372936541103807329732780214005559912340409338080249313244088162405223022962066393926008538743940712278143889228310463042854988584151202879469705437865037387943842984370966180317791531775956775209776468199347349984531730818222445011479006058287106249099059364091448921166212890728988527013157279983641260178680915846173063296390700994844739402021488512112929193351642834350770413246079177481581664777776618624247725528852585292035667364936612328269542324864695786604005255421531219672115455656131422348616986481044435830040810549829549365859574870235786708083463948842355905766061182433510639043543220280189985738948546548068542607150935038918764061563362940175586817033836020030504123514544535390446390712372408011995482058577764183482590565928792989744678354676146770215999190967589484033790192172464472046786177540027810749218695465274526913388543144758076289556781779366453119995628519706703366288069181715638132822323248911125311222380157978118196783960558624940379347753719287811591932675598114805773869173847983374159136843187391959433474801373320756753460209220140220739987471309921074856667696713339790960704476767254848222053663075221158248367436908744458090104053897845342559551221596741608510487138862019025839096646098335159064800298487447931329497047741266324388705123707029326229266872704146768217116381241052379038362967401268929937978416467376800211878964600007487449204890229299681035134979182951288628842580243726906811399591876854761224337432811636748357701943424727967780036081137094839567018537163492659968617601280790021460432985926729711915032588082854677524515979682199499779177853991381751520668578880456598321554733501055035621109295061918870002038625057682100555509940259768720803158763357529758802792946743353504968993558056493797604774839995645964476368953639973496093504363293076442092681267378580411015185549896244972710681340371594589961957371054869956664395483189704528672180944306119718690702882056470272053048268017887841995202113636019197314234679977864808126810570536174650788070075781798343363226683965378121399476773046677637139312772715535385737995021004437609148886537845531740297104816470961431982165124412179585838663181974488123661223094763744027072196843237470338126683774683216662724863551683103232097583159704855449337796525570350719904403499636206041642416806815373364449176267084533444932242237111030486152727147859235073661783708185917355435284022644078542775603559465990448905454982618830886556507943951953024785389040380247193936490556646022377160810496784110048184961750333725481715763260037776704517238178454363433226918320333921229095413481741715812597008348185424248819866747660521609649490885781422895115317717750699260601915194159732117766645365798567057395464128148881123808447448723117780704145360347115243879989146611629485873060513246114868117750078108408252889673780402712938213673585746606529928767085437764888451803779995454032084726288157022851366494957051718109765312895821610845000784946440607510072700097652247456621831865296873588644097497204324821053391095201614152344838241312507895435725252270406998417472277821886481775163732023260487258245566484569775399977863938802614850242698635471307436575754052174228991816109873280648208015939236709620926962882561240654726207731867787812200947312143995200564191251635104275060233072901143275128356749285339301690702526935348837622730502023374797530820835838442317831654819348260338029028056541440350127751345763430074756050700681390073297322796259920112912479680982421721919525073520874031970028401593979383248535144243910457282487454164629805703391108827221700724472241636712315252206359478737555905165792739862774245532350099433582042264072758959340124415291608366842773828988918660458863746464705146672611397273673827889255280768368447296019786925563559224157943535694705075931063259606462427324595213276525623658118833821993950330852607794980175229987122787023769437380250660328698220781166869652668018615333765142015041487913991551069773058180545620957706508656253948924535887459145673173736765888100377372273628706109238547560971224901914884261034415808715167006885513564142677805461704541515182303837864967028289170351703038418470342771424253127188470639839637812375812797968864501966802644513399339636833314162621027593291959245249734661469855500830276418724023236737731529798202372656701259559411620153015591496848476637185405381857710071022046840713092436492234692527215136227144448550165832380611203265172462217580264777686071906607926243381309644749083026884548685504022531840538455815011277933122182743702038239964348141305960103683020215728889378357827525284508314338548270854532172238213140556997578550365657217960431667742399471575023169255263807255791964531636434061940100987215030758757146026020733183912903469578947470395629518103126018929423403675241293811684724758238999846174897352475544736417772965033966289057096634392184809576098911874440090941589104487184588335733523995700989977332328042447200273438028546144115527976533497216847979684436968559623232203827237981903371288864284771913712434746365090516782300721584038468773228271026274280775770333801830831961910984179112128683162139405111629536682340940716810668401695036968573309428337818568354115826251058647927384548081477452325592124906332549652508832310795505366697917581768658533730357715408248262117489497285345145510113694401953519812199281470457456736793312866219480750106522809886738912782105522484358045101291673678547787885918494387918584809452752269565493040964469575011268924408474352371047940850327725491127594182839389302965740145571410139694534533044029566522752480850000284834043947471364417256389889123427753733458791411082431612417346750875108814522708653265307576168980664631935593913438048369967925249292495325411569244356861308585861985561572366136722500374981924807747062366118712218280580507226066440566230145817511826892676624606698519591909019075672562804302492458709350802813479510750781990079575554576758295681521656729272580568405451470181318033724910036478015008969532269513675529426440601752976569643889679387323212326138998238070254549288561556194850191001228100056238697139227138864874125651860674726144422807374633436371672652089032368470796269990984570617969362066041957682686339594675992491015906926589108564698182915643001686336874706238863007998871391649402687320629763982863222405484455280021468153021894547532639440715513838329648182482408068579382640150643037144110760813261588983034885355244927136520887553481396945398188306372546918835025644120906961494046673804541828704149981856467913847543558223011342762943727920530392413186850580258260732003657928043556084089505119483230844958362530836300164545796919157758428448963430556017380177737198535699131030403678863514107451436916274206225744186511539958890886883871928423785640195824834487483790984693309679955152834457512696851338347619141113368106183307387222380614006074815436288982428834328712125932272079336178449385820158162172324369674024497655283323858285005582752948289573760088448423733724079910849470842735369183663604594093406703299893140266272827061236078800239598859233684282405712850664668556956047182545103644738997696712382088646450008452404490192939257378860572497953126860835667397983326815588519192119539311726521763040764949126159953808923820331511755778416743260053829815174585616401373206791566810073998251933702550169981755221574240868717309983946227635055264513832140924341629275209938208572542928266515886825254387290282272938615521441012221756581450106033114770369723322343734158107092850321764866043815956926401350422489008429320899401070687538536238720509883006768807163461184662799164063914765113004234943306927578417796352308831609396523913558586394139153733987828016030846369761175457742126354687694423580468825519750529381782900105296298879590467589775105499392204241446154384588115656611781470684522259470139214648829864972838745024985967582475713311952241547057399130590145182251641736361208923099336312513470474938947579903748712054096947179469911654560259338858026039153267472912879481447142294930280464900103582122162772861832041809105992926191108438020080526865807557824320644800127569190053219019409965455072458730057712693554973163042350588146078337918549572355627089834621208088938568692565386756458553800010083946875415126647949228164116642129002765553213535795271109987125002316995822374475747181437283725113449920402526806452621439665968164016748514817222814139688294028680713001420723469397444609271053281958971517541928398783814710127267574150703680691561979866601094031643233907591636430178658859171119798967218665176797388853167984806123586620356213515397427881337422778585646430707965254152784187685328801124048697923688266250723370133472609586021621495022139372901852245981401591914852403760370665164384785411092099748849628147228026338304609502334437033728457188044955438373796801405807313341737096151490494714162823616495336312871458784893672524483747720088125020854928202595101929005767406711346198973991309697516566244164184122745456339075295096072473133947183014580632215155883556910224735351108682211599438099769833113530782047636467056745089135643615185038618435330558649091386496281158011915200335263153186300474525242206100901203999767501568983223597332952157654849417266707315186593931690459061834244046747768887836226386101804214119590368447961081300573697390800618702568598730452607881915580913311121614909393820774338985826438636079124990066779065308564434859255476106179759663679655999699324792355426095317479947056355941795019276059579564453500236029899778672177486598440800061384066698637111655623385484211094476555476905133339881043340946900914668685802853902881514930674242574541513655296602297026154155888686020053593396323266963306133946395917116267590333876428353049665947060871626592146836186121608665463412555656611705882959918262754802022892930281764147418871045443445602629056664315314572880627455771426592908155631607117403876226055609683645863172253248284212123980334800332572350647185902406188808690541880533496082929269567032915003733194255593984390354722813801679387602561560738670577867664117355077307800368699825953061738184406747986060638173578737060318446315725577198477153307986431519879042156890727044171053418112778165331726156391812290797191529502721083875205893154726546567472709605682595579714168027483966658940867113706585926469614994031607862550693851124370430972819625307706086946231225594792366433321259865558639427198497118981854374649653518730046314718421948978954462200203932619894578945334175625616734194791965810715893970481610617657576441550649521769740251750454589561749822750179811555991037107836357738494394695141860547448096915803081319347208398377884537041490609191734454381592850168384591550288037905948294453813042199302930944572533002694498597717484146148241320496686357093074385183122152549705022701973592886607722117724246895442582205397574996629904963056228976188122927810585524459862567860965257423071145579323702954632985396951798726860401855947375846568500539631066165850083940830483393289836689539833502393456743172886360401045446047883073861132978296489201020239114945567850129027923102764148268159197629238503174104934588867163382615539407967984741203211225013660590335260048386522400431976301698414113879990931629035017780436511177519880644325179540142170464581004689489992589889279884750425058973946178562122329789997044030350244057003263952171101450018198571266739990105300911699334621416335011425921082048200683862616468102685577589076459000255297398032442139991071904087797351743262353436818404837398223494188520167880103595709363537831170065117856260895692161665473877658125925325517160757391179110388333917536361406298014714270224617845390310909432309655772284959656233323096857472199964615266977672932331369623240336759832082342090424209196909232786436580035872700936626679183666396550907770055341359736849336249233246010809592570256468847559419836052124590762079202698176038064596245983135288084847919794360492113398145627595868840311548813931921525530321417705740607263686298631739989681731736648251074934867449948970246744037154966997448713654698666423859829454744334325108266485143990164860556476142938150794478292172409576377732996370801591461723569603769296142247149673480402751303656671971572977190249506094932042189894678002257577639040533118187896296125286426619782022607269823778902612787083717330505191865538162544035277046886545824784498010931476660569423363166686533592649158995326957979446358976338966503188200724519936208664435750732293329999984900680475709624167812440096450900997843938832966945905810221211722944435104427587519821333687219747576563519191605108492519479117937141029023627648858670854828428390700862131375741110485512312342645247465377661959648955650570811819109997505667676061317612709537492699297337342986214829566014573396706672130534764031185679013372185792090518773622406313859701954310261381027788110113392280093283531822932598657226792351599005279951891203532070761186374360384939080163016251784462644384500037239117170827748320690804541774801269914999732120916136699622004885768234864892684242453014841895913132955399131033775699032711739447335718536921293927211294679722807361116945755498487553264873566337531029477298797637782796635378162586830096326674885012397911223580775395531953256930519416666936000283074200446228824830202400644018793103305840071237718915550623872514417553245122391717894755365323979703750376835390657725946243559309089550774715829372062079720502207131670227625208375825966349113879993348349084039918119945606117098349660470153049545137250622027637314646890978908854032007328852048680348174104840591446280134060336021846774520513549626033976415076923589291729811730416688227538243574690841240239043768140571212265289186768201883821145219069048914720506692308851759215683796407128638376005268958329025052779211676323722473433884219375639082514863182093556368858515454571618324415397425148974433974401274604527452557922019800383777748555137080009876296440284451325246898262964085622853601398081229306483734657782063386080609030418667245705510554141297339628353474847858897982076222789086983272850238539238809835833511216234164610191774513980889879034820119186465252682777033678624635686996049156918231142138774123018530913909322461321435812347668332369713891746201996386454897424322432294496492942380178878954324534569050091673291731151275023024557891536321374103133094827864839812919484233335673499627714405002184537843695934400609123388892751278094131412760707173290789559194133268519416228262587469985214972161242332203399609585476559988051787393527285550941016277168081283561484647326578622562335132720198937224401011186644284320743029919758634903666287512443949131212318481939509829662838907083686072737743335030158575873260325247094140420810754294596882347068911507671129295807669751912405157121796375294688722546396492554169451937896478754507799995678573006269715058040738336406401657796283036986157303159736065727809215390985734187153321145146399752922096436640690558461848529370928110062272968449841623143858179859817287928288354352547246448966732131248895903655798963360141082642717570972041691038594793473436627057704143789929482661462084327359033893966229567948112599157550529537622380385291732787008046962547117959009967278912759160480367141038114066749878232824350634055460068240324351412248017574793282674736669566741396843928096161944999834295829100114491316704434097824642839815454741363754126070943121904578841239635122601103089637687922045101274413620666857350192411256203496210879728194613802958415346951145614262136479304054728758582993802287096788867654502744636384243059764640479387752998123931195727224445877813298414457638103571497471019668253037651312113357952631302624337704401840618550026280698567647208330535389913445847109711731783855572684271013540683720934005148967050829144674578028758323543699823789728233280504300903729596893330396261289557567899990690378829423804202166177654514743645514938026663345526698869132813029044833114713546633849659112878267266092124505703982143020957386547380538663859405918075116660234882631302511741593029014922305370784305058965295490180389794902060267101793364470337299089551657281064916566493862573858819609778844096229714279566935154370745836925564850724496098280369491006174999935360234346812570378321098743196072349908514968977806565711345288901523458211379994110096504980343457755269822809794382470693763103516508649097386703250897058142201502050347345663283499624387968435827572682554922620747071249555024340423905593095281331394660815811281951957353103136357333728704042657999595145126124260034321087073519113534005549346374407873638060348768990980906298885725237849074596946252818064560288033603282664536330033185668455201725480081874160817692438028381171355440686565332318081182324921446930900679777819590909511355829300443695325892101234233679494605438347238705395077572013772594705235924576928211018379495634306130974512223641527940195556012856887004517953581796992060393241011500292199995332259466500871080754692911787087810957322716510392407866956776598707814047649833769611347090646252167101135233799625236532706014870508950649373916904647231915188887093144156961410274278697842686489576738665641679486601034281696103363022808658334861890586135969036220568666653684180510612573946972399448334496941656528071039752636813361544237677534814357417461407214903671054637315983693554482172205388733617347611635649166627971534885267716171225402415515350707379970312405448174194394230110376342224288660442470706818585472844065094402126242827416975709294928424922812429502510551244544178695575371221351018398904399064376116698739924656749786108581456955008067110383217720502662318758306253910945345958887372801954892818778808977421594745452331945750929262879766344845495502919939968479552791954017539655870469472264648800477261193373872808302603050325349587347897038403988132270495391133568417544802481123957753342800224355503732205624678900279647869424742250603880102304598998009153310428116662032416215333741776548507084396948066221295542126987982405385158115546161132194290613930032838624731414325547664541858411653345699182055995273915648907854255315203858775674275861869159505986767290785457041354707755392353056130365208082600542436347491928333852575563984503804997238252415366094439974465717278420072838130247244692962989902316758236310486330680316964263346018212763961045302131037225220238681822760296867277167128318207883200039307791051193878948620731818083225141701260111956456247072898467271982961561102439161942065136828454822662512518267166486498564533653393290801189777044962220474589007119080862264875633850753916215769731895912145492205128293572584806597163406520888342431832363565438730783410531001115219795098931966581496399436117709790115201666823520751480172357418635232518454726090077387211015929967048898799879978402784843954352559461870801799361697417811566096868279736055547319159404022432993822621314542478266481487494167979577994507347323611858090099588994119298770277281681189546091283779423221346851306373283548495572357513754372597069543527710081820792734966206901187448861909321400043751470109829233562996281744800429329553349160215256909507875034452351662378528234826558567526372192939140466390477166805991527283588345621932047526508315638163004594026064286163667851139181414834777598431337696991074657000537139408745789744483422448880280628354093826064229663627762084502051107039154009027214982677790332720935359895002845803889692137237250307478409997097041991678829767496357617629415810712139916436658990974185424239027593297402939587578046983021774251213566470340614466893006267725413805448962684444807111120938371210635948307069139929536850243901043364972114735938090455610592364036632635211468698895921724049585648434747602379250141299695863846272798776528949775193028859351099108648189511665323792957662088663610755936660075053041720543653163251933435352165661431845253710615575112340108133597427063790535831591661029699593568935901523902750016685590065190551502308837856425732061967521643965808437729739922454147572679914891229317894345986238136901225465523988728718274088972425766323699883639309308849827413913481257979007126081615184340088103557616136452224703323415352956051519056258526894518146992691527223559642430735277311640800985197372499511812558146428541695653051885142593168507627101274696976423019511894563623313316976762418499356584669571959418936256489109218598701859027315228905274331832514727733146380894624971015944687057004467898740820564712882989536404428721946174950842191014900235137521725376773399081839051004016322465316406837634341234877744412825964942137736027977384255051545296260208827900970564998730183888002299156496048931897880600113541872550892056061867296566259632491729625508442969872784846709563912024524972900544776453175776461301717594491320413265856799735022572733893145647183919732255723460299207832882239019759779786051999770608223738521574941591198489093186470077727826725068467240959062720601932550138581311452598761543061725568042985722981492352552108832433368806858241929243053961275410962085364211150955021146051696834656120512877124510964754112759773462452001244571180423823847650937799552496071412326984435379232565719363108602693654217099582677309070678906837908471827083022031554272963209277813983786212919162386960860324740441041339076152546069196195417788355841738525694973407580435112971306796754034121628352356073946882115939585643379930293831063001079815038077207339396674380978808711437981354828348290088551124592190786608989593555596121124929622709669996999806082850953923725270789004698037420284065961559843576490583042587790041522847340570190048779642211448217141254974012419505832312885449481815935269883107085736730615425085324485190502195510373994983653631270580772581889946113837102716153299036868521743599535776124961589572667996265819357697132810140010653792544998813089552664298953132450537467022497412100357081640396199061813811437291697745024391032017083697840939118751762305464886822076716445299446399262731303620128999499221734691039341079475900559135039488058828263723638582349314610872424267809829168462764951906133924709595214262255673157188616637182511092229770463802780718211693367956507489635993866175758440631362910529788646351354150223977111699555496472759684856011550428973903197318547398697592141205364122506392200995618685839324450369667957165726062085534816293364835943653831866570542849624307400332037145706280184918397790680648835393843965645771191812007593351796441277812075853345021517473764608518816333492262811246020865223543941620899961329746700141952866575849069118836765112674771540855863430745285238919403359352013675484064897963652225170332206915189147218174906327658000351299626698408355980283256104675458770941215046920125969497771363260834185760026329570461153184165025585225256859939658395210854659046396877903492386944617497351791128598141900890990114700376970032532158204548426836201309432858809699948581678106612286239734128879733593277485921681837525957595402858777402014509593295076310603331369830088214476564845278031209738295653689527939430084031262069344906748706426789246136844548271106668246708191798339548825260691021902451466699219865137903903237644362880919437043539356202337192098659261387479026620063368895778628743431829717636728793692126946689864648872199740433595172428483069615617244580150373471686120831670414294957468404942719299027770144126835147186140130482309077379229191133048054676755879749894108565352058930901527097030973338990691885077129918699377334716099379069729854283549704592468025754257049668344959725168659691007642395876378013327352784268640756307012952866380278910120231627060863745894218212219277501469416391458121175507377520889563421680572587749168813284686686175646652361241587723508190228015702335970331782863353717516741520645113468881964410750585262848234837909022448356906831195423451601399544014448325960283925858706876033541011321183073290978365789967569130949146755058380755458396993712165623570364825306473194250466876038205630480363664240311790844755811165048796593511541332276322756295500230476138563197357259838111907100523086526075872993327787393437449447233830046387364078798202470444471794218896861384667818192777637265449885509368543536351083069465165395201464333760407438492537894424663458668056997741160961939525277691461624059788971978255480029493851678558856957506831731894403584335773058592821523215392131933207836929062081209421858925080729404675015674521730820084713709427455736173812171361252007334317374494879039588836283591767522953854878595817193282137891569482231121755652762878108020187981916534471321305288864677518767355782675403200417961166373568681310552251000634252960996207478101655070875742886739887159669381202250283472007469636585880153614770264088962862786084809254387666542535253358879249846620680313563971315074207466466126589517007683338316848107734002914429644648335721669179952794464213074894020276154730882480129879135082364031262386762708197585465947283074071665789668827389105830254293131194416768826433335677452584930750182563707640337478497782677822593776347199210701150369389507616966616847743587036102133771466890336354037786124259094081015661249525863756028564262604416932545678735115598665385047365137065245717890839840620218140719186257262705222144563205348569731148084315541972292135338131832000670978369734213596126018241673700314904249506191471743705070904096346723245149762274226857916692388751856505185991895560647507932657878307674570689346753306603692783688770100979236831018007653655700834495983691581200150212690178877708757885442346215667103448236220601664235634469343628423500342380845667313528531575249401933057294746057431241138959620967947924864741906915412355122008331888883697629793370919502112829577361654864409693697224896443739567222467830509214856583699644888553398229556623720233887611969567224296556512218795751654613858011795250271062885293153198742124142321972821489353082642830730387719637281082117699016490764622212574502009153472142283755716644887481003630542466413891477831199822771591522637564173989935398726814138874187472646715662584547489214165215407629105913691300616686239700711514934751241500774247555482981797521452677345783392141814361856422120112891334558244475172450591199455661555842884002560554084013211792667491287952330897248902539113630199787946464811938961044438184780552672248242411580874663963436981801311393315994885056947452962836696942915480034640516878598125224211059813482684963060064683727839414894762567267497298134372622188249200357729031864598883892487976153606719906350602293086718511616335874844986095578703460088019648526155871377975431543031529237207101483534366699613975002448290215528104175664841634156141410786392377472312197320853489486385619784027786449907717293533103945422073764116135302471136276807861742663761853046625949481218243075871111330481118415855194959470937838355160345066522550507692967755010763839957745468829113518214324734973425078787499965062238788374028770324686810691889357609388717311263245969649880806179139490579753155316469776240405985363384223194343363580202883689374456669240798573514796097643574363889276044013259842721147374467168086067428269432876607028341780665010697784807741867298063219881164485735002297061675150708012714880865339096533900375745782945892168920794417462456239497101985304806724500772339491867010144798463791041218821311871661299651450506589468375351812673977237301586716105432994418975477617045004132665798939720709110307969236752133969260595581048062107722180720801967003202136190703767303095635814123708518527557107620738989667899830817756687422770676169560027143210392139469451202679273192792730452758016687436528375452579308024906901877614999993063741165756321317688360170668716763344757586097444035638827548680705162397323211572167928786396200286651993937660775611287908369028140604757469474662232746184068790319973535337025387792553563510367213243865106378731209363842346428459646312101013371069099178783185519070832675217171826330609581803112865500247363364241778496857807247976082289716331123459713489292819867120885488411692706226342532946005719819031903707413183590816109494506142695615806825048914030507747324221220791880262216798937216814578234939321028366997503756625533934867250841120201912999495813960409603223731675915397848233896634814839559423375239600536484002396657920256854611081623740818880140050238467135294506640703548346822847417966405785064926730735216471430690153893801074878109766348072849949091796484712568372325328674703293837627550689695603449780695024070053104897950843254233377217532676978356204368472058051146695534901953138586401147439747141458282803016399249010021503349677148573905821345726206555038262149085081439080224055735915473312296396280087825647263050512432245624680979172151716371912998449325666063959561341931103291461203680516293831894064410612300661283468229509961660538090454442228170237126045146421196184681590709190892670916279270358481412128987045993290706864685313859512841023617230596844646427318821853559867275815873037511625565606144355752664327102278078848264610798750637221420165142935035308355888318209461844150924255783627331838527822059151939335348881956211677911673537359666551078866666947323634294381009261577170537113114629162884134336741181896374083299958272197890814414088820528913151695133094460460364729423474418910880156748774276555654529674140045603581963028864740006288583599812778913870176113705284710924534238559946205086558672415331609139704349318054312239104446417948755458436907789807004689439064698124514911133275747458342077501871075835509876616956537235162078213966208287804749284044058603828941825125746005546957660020570730255426757681147844038927516670296474833739800967259929009334918508271097120142937931631492827366357585184095624341006750221200677407823598613717299953596705406098338428040663126662875944614278780035852510615860590932633793507225944185988112837924512608524763757422619790934296935833022296325266631354343074337774283565680242884744674389227808264954636192446158904832391367372681525908360386853605424867459598392481442608570270667695216387387015130269443822252620291467577955405478096781230745897139856976864878924175521227218688534631759661298837128447581137876116125452762209363134189184943759792378864543507058395407034338953680719292369409431202256470941676591503818982675143369207741630892566645470781776532339024559096847313099792309601755526707494191853377887866088046068119851029651513112372333074496444371252930861059311507329009014392127222962327646605122061201082341243237080966598017763584029091668001196251887943588800228418951136797150955175587606066656977515539609277136230254603192372773071895011828592951068742370315948741964489569480888952287427178349927108731086497941509794590410951718370797745899279221258132298089616582305214132253267608123794868336915105466975951600387498891497734918865899148660115887908577657564173477445066485852423378292029367941007584333766440744469708777189193458333162568493467510542017003990939306360498367493304345352877628461208395973127112773631674003547003904960994696117244199660434948874020107712907708762866664275919285518016067168305984301791709373500034437895434624089977199437525899505572960328886656721837700489256082620719160407077998982827005243334944696368241325651704867469370612708666153160484026679753568230250383224497062684019498363929733785940462463040768138307058762079027818957922275380663031080915270582674981590740138410135028246015790284455135379296419790858567074573242728918596097915217531749332572659195341300961403009665986012240113710422278736336839276039084956067082630737571067698961605981867942192449203627757850460675957134435896575318880352197603189967320494307951902979365021329061281431475397008552848679347636786810183995685829575390236292022144010569985394415741670369648001743024624734839438280787077683283570329088598182607000083606487807440126315514159622597431392418291870198686804070429486878805103735334271992588548940283826548120157495581346017804288290082034569445193289973896517712527031954731269099503499749193621201251713536818676148804291432942123788906687176580942748337617742100235490969673750295358778750237827340623640127763495160318658235876421589067622871264315837566608799668828818389441051442393389648891406805511871455482277348575030299557355180707309763175720001684813400270252842846985487867967668409463434287812335357403734143573334755278988581750087921020425801533789453733160123839579159019929682754361796724255145994174778664375378819679778477587586337464391401845654329841826877399661198751674666323238076019490268352950844579225729778821343665179017605125230722453124273938829343537434227570027089507539599711805053089087647568422305614399228229118064199638646623468622351710454929466033488213315901791121745615753997650969501427959068577491244872196836701306557632023947534615392118330915283603032681692862468985075079009035472665397183585181661646423485194299821442822432041842486012509669526104815359622330340103666694223121458762530989633330250648917899717863237297448096993142706437486143592029573624480911360222577955836831705945901165344354322285164838801528635705514465468408279345392530065624890997270304873275506776012554721554450419765091237047844560662161891753461337549548966158363109491091288857055590735768395335792388124706455631458545841267051041353413185755398860107966627578459250776739390523827604328789174379550466580822844584527458960225549923875415196930003321085444521481324553713484819239737883357138864806436488013936700143591218493411891943351845995145894770665965901774788014284495010879302261602981476918617149362014587335931443859873353076702110038352155454723288985326380586558006701314917890460361705190077314902182072912698256457363331908457040418860242025173753634723028589033457995690538667165548052368230622551500471186671641825871931368597045849868045790305728416487715967527399960287404931110254844713918672760219856954889381312482460287450318288890966167866279705339330662152741694185852020950495832718839655635433227387928790051030083527522648634047632568331377148551202716283141944547189827701187301255173767161809297850615281491497470954317791114112161729136673542260119044296124783238984975515436588829088782304128868283774578875672743505258821538644740499437616601012625516872169034587130077018233346057395799356249618408750009207657288220128738247596423079882106572300860465642056551908732929868108355635021237637439190157220230607646900270632675900303720836287338373746848586902607364651461713115688997842077302727585028595203582499118591071016606250883076967134733144007675130077202237742754139698364943068724283369264929130527633881467079334921697397548182394778931749213689653674120318970481731043447201260636479208263443042446272070585712607890527171658533920879036727778963389096309426807827172358110803061873037182534004168345338091039580942757207500605906132456925131804556118588407427295833607368920073428475303204940727339126435375579763240882998537409164041750483666374892497135500320402653061082996523340197255981380494623181627488169121441177355484324790568569553190873186945572910124028197903772272506047844290628597491591637840236795942151875509151902299065405732782435797762240222528061827744375015467631956739339391478522192952040617631654089145108340425382659495848783664227987700751139639058468106481069134275422649168913598841872241294822267787010338768170235481041155681538647651298007181205162956467318331380217800377836034008474858636829624496598612488130813546931580724079193620319052576540160762764726271172183631150116870224789178714287112013584622104898266499888583983131877283477674867932166623438983132551024889205923208349870111040265722594394543776038175629647693336633046767338370056981752627322202098357618480322687922668483798809095173673761035475046479100185372035456725477726702780312864217972377954012568573917649514383084936742460491518454979295959278380252201618367855059095902772968965898787633203819303857071847109595378377229681591254722242189909443659317319415859537219830499593046446433984697523442641366709668606946339093779362066417657436870605430574403088742226957158959395439234711575223184437725743267376768724215368075373531074736736297006092003113339215986170537006558077153776476157197210101709145936070745123883405959133182882076963280381756376661333675821591217315753948730084282287368340401030114962006127395756018356390213113096941273245880648641928943726257191011273321295604810657173199338956073433437518708706610878219217052511789575381684086582150436762415404562121015482798563679497559884032649173354880457170934167781729397291201411725720498896594504443071428741922137948553527485200679593032404223480255625953517794638329002628096737277280820034903364772003221467233361911294866262985615988794644670655481138316641191312567790693981821880941838571130096930677377567115973002917156882717723815436553963238154892041348557001974275891275272513834935734763855417269076995653368978064317242649850232812335398193085414027449738375290625514603301100564824687240014881365186526623849689646688288967635174417629930706562236191724466856788257377205456857144717298004639353997102696481872836032444308837464604398957982172091230997637379816082992617731178665200521322422117453562229799293350812119353310447175048494079877076701728137088336290717101040022342394547079154811053515414595965868297782483825886157301484682627151554850041332967172512283467215601898547361894497995333818716636356372130107763723345731485546286700293419660767109893146639033705866656033548944488860267110046395368514037465129470947501994515002023435661907691525542281104520414261940561344404751286347759050046328200150950825891204370737044441036147508149665660976874675306820255426325059197742850390234115234940501060610224714507396727682168462836636326721463186882599944282538003621183881403239452934144066106981248386302647815902670718356121953147692247412333713872075862906251429282050635890138733750781153702457674782965211827385850848733944905596755499467723576144426064739836291612958996124697599410657377476216845485473531349663787986521836562818381741754976660659642290280540001924547715602125609333791968152994245921578503087374092167766816388620926406204802232430406085833497468840694104540415397595601363836626668566139583802871562429753068077093725479966049974969870830231201187503604976514323233494782838009342649785780425966874660284085102229854619823606963487574010983530728580087203802427320374249847016807368024807680970968481068421477022579418866670262847306984338895297689234080203794295327972174235857759629697349597372934134649167772536048142356700729766319908311583229324807162784786650479645039738901005441000764541273127600923634324635841076635116380163969268546066746260528118244488482172881293137805965214293428478857092310649426339716343293747354630566145599466050013889158909422455847391177952085498979831228896922101874021245529245878557406108848172779290397851597519872112308226275579885336769607859237725791449051882619972580574511606428965423691054473069159421544955289125915646112349097674200347651511433892193121188503005938014162561911970062534156355305604374015775141774139678142248351807538528761672836828579545994154904639196164951308332903031961470831560864569759070587466067107421628803929378834621970483722981112144649503583634883073158612291708245037840379259742239461971807573765083038956429472722239309961145863076595362421612417031504082048837692149932175904365303941782256283896968204629594264965469107071323309592997590915485014080756531555414211730378097090757349988322715408532795922374567896253195060160594364212423578322049934529171439931409487167742518338664279902959938226930333902439512314439509109601066434502821651624381179867739780671319145172953893895250193479388026238816246901534892374937177163344210985402279007288843718162996842486313174003642684068259283393206823042800178559001028836911979361870923422632309951442607374070109164333507081881689620517796972632105754283829556446518962778311729538344132741242105933663577806476485049643665155764576188643050288915547236328658965220313478602240817585195107924996491176260217078102384316356387943054726626803183746649553054003817640983786171989382679512226019718889996206039554845813822722227201425957607476618542176290859582742708648337076882545120630173983587548820490686266369660914332870343929673770903374237775893957487882144596649063621266264287719656637295531653219086888060705070822630962279743143150571015587499715194437488987226136625985630315391277372039897436136451779001609911598707571127424042548386236186980092894022760008259086483321317103083411682162214431255664786569529388543646021395085903028428694864200240451888000246879607561643716673667946862135786191001468725576635917235904810449318016430541002248333044216026203625961925037640660859931541557784745165895223825155968133741099908877557696376719691852286547245277464290965612731514098316456520105641846235867368128489157505175538358258589190451092884926822015278513118492824174219550393127181785144200502448241355263203938361073629345054431376335855513004081682394401718710890463361756580156382776221275265548341712870447546752147677766976714407038843138794283531813427372277777110542974299109208977260807095089465814696374213690098409880033532628224436684502912465401627485541801767049802807001734235980162533315502477173095362318694964923284342036066185264010851492237008717942581024917413644055339962761202329737498856008630722777941962953036572884062194971797708318784082768164523123590483822705378455483068068794962169446680905899978743327510758443132398441469786593064215665604437626350153090011667168480614576553507191580758663491878000107362860676730998739290226514270139004872918088233621978767101047119646721560057427436471620588258952879013880022564996840806111808326281139385070140509487957632862090699979431258252846333952121984999120150446221160141147139489579859861876729583091117386553142860231239734696326778587196760739731856556555054172433836346873452235763702645402919104459783523993338906509595224636764241130261917964073021238160073003467493993659365024159824691914684264676363890052452257544898193332273564969802440568778212527195660033872348224181840468166084135598387750184647361928267451197538757174334774353961746580372085262028541726831740130123028360343865448073961284352384441713093825514208502867960371659456973258440707645370466267787621398906162235684478442048243859654534153771386224644738899014536864316765354804688308173668584900304532555974301247877197778193140446605574516321831354167670223861521539731834482770996429937620305915615548998363157465338607582302393199856897412733864897477322365427695084685438942147844889704174186586349498802507745710769737672858255137283571064103839878823553826491415469940626283342366396650721390041627785735753912106163763336414338760306529838167450424683361467386345985466822516937214639588479821256164868175385373407608040677745833207090395432364587177903131099090963495357838072268041976670077864295096080540874292982348813308313783319431485260230888996470502313767586937021577408776740118107414347911388192899186660518318204473102078795592854576880479093032708548481739929137304357042074038406039690286585668363177098859311663914925678410907293342785897739934084781917622289012561584185780784452894941360760790046306091335461621608633957746899533494465191342160694589434217412670847775086495791828580792940309015774967800403700701202023087368144387725227066403888593827698711680088176107761882783801998751767466080375928541620162994748086328540683176418393874926424630183242884124843962516533876280742050703575880295685435686720015634974551406521743943111891312951757103963584802509830941974423409544876808049750926967327053343850196380932868573498985820594526780192468408184591785752656466169642407696085997324685622240236884792216009082858096398270993517259117502884060276563551734681448153076505336952388984973413597396356925435432305991493736188678321209816828817908904632088325940167478378112338637277156917142317162745843676662663101816107616397996218292682294410224459828024746995399259019497195902940352059413332147838019401916191212809251423095568058814876097163572069220006577409951745341511776123543551372738055918246273714597436937929561362220217846693834106499181469690272697397141874433221234657898723854028952595982347033860340200141659992849399657438657316389895843035504034638647004005020999342435083250724678136810015542088045323939051573799824677532551927053773811912165659318727238491850917718801191593863637484793290438697683290817249325686528075611227196031286549242687071421169856996747784862027639774076055935625939562064221886013441709761567349910965253995824085815270309227529310229297613327448492042251302339439590328180501828895914071003966819595727817810471000445337536511657352927465223520863253649050911974141760708012327575067040038717497936118114303466080143258665811708741881488670624317480775745810571343383790029252667491995165653505712988984982576134110514107429701767383560070875054920270240815037413844986989356534215344657132560250901398924852740621319341579619489849375040495591823968236174404484783933759092970839976054728631481322783079644418296174181804096719499110638765243985456714250829354453968215755292732264065963163206758453424510561938010597391040259132007851758648146356145329762775438666928554575265021725600568063281727606874017724318861159514996799736936116453426023590860062469201558920579278227756085125833246670631943424220222434381245140706636912381540368749935550794798532231426805313294255580391741194520951088430165768976636670756940838291240242233740970168338112451085129894993356402502698588909072174090899190336854210847991650539051324667861984680380283958627123329165405866949480961457823182529022233351847729669035350907149317785302859777083372152739651426478401079289962710080313847581562189410993879260090467582027802285894267266581815766956714033512441574836826630625743667913685352848458044398072406917498112632513892637094970390105050167293292221754308408716892618028598022675923201157886775044370900202575654191238105727215039895099991277635452527383634803399230572225632877193759873289294430721683807172195723232628511521774934245976563323397215186264315129455652067849663114035258143394629391442960901780417276270721453720070072999396336789866303915110988756778039834930644370232428486782232360459866083532208006951208334038170921941231720521015766679733000169232749148608384937033139234829160242098283535033202172505832316529308206591086321744023266327885664479830107392556530734488655355698576218556875649782255843359020798557990080876664092951987323842894869725802314317458719158898366187127701612787549437114107650619185232501382930047708283606015803615057016484399398743366425192440679661644066705566312564293541277420853298427438856398458284742358849947289425303292205954443585410213970006440268966591263454412900765444994070517128851802607815443069962286815971193422969941276685382874324960681594703931003560100519438595129594227193154816021902875094820428075342607190337093915637465128944923926228334928076603328222883882167320335081127717526030668713904984130310614687482118052779734902184890036563294809589477163910890601285378413049623318662262209401843984913165308510070992092339688104789021843449932016769696045354584464288464303618189589780129083755042621751351805189628923477916219152263018715793388041485263868848996914455424737124587484255154411490814020152652619408840113592342940955036768528886214178376813715850171692162022340711280175600791423476052596383025068600555692131395855551383157564108776004367438097662375831549048655506680611776740175080845138934185287951301715562856085423221343744469616226841401901498852306547265218321675173276816636921446006906177731196616024346484190543464978665876591915463887111903024025353578441638709818170976675926165904535683548807238161651709800302316189187357093285044272326650630991804086974691484660405968860633230758208018440017184212134659151880144189801437012975804568443996770732373371803025320167915529538467341408479745876755884227871086687150340119972115134118252004981139347500037525398465382497434464543044502912125685265300170173228290286862885985319067026143838785819894725774830398929253333406231639767175507594798447502008071953181393795721953895208909560204730623808074032447438389885918963966494670230792726985721772791513510552438801371315215280775999865895772589168212955205227415586099048720864598181458021608522247615938940096755995721857047699280206976199223412475423815023901493763822254425926113091293850434732234157335120754113728759007090028627385311746132821253272044837803028613965770523919073758412421948698946917554892503415799318443687085619389494235554125413756515807773056245647130210351852289492095979300461810251807421763280050043421626407471632113673002728255538716177427077664029330125169923335312710040374750631878832494821579787376486209527483546145277511627694206300685054483756491956464187865401493778884425537923017112177343889716526484142596809799020914138722067934150497723091842776152287468512503201159768631426531340004949834075713248311256755544351575824273011523765386248809095425955393083354888708406358177969888111903203002836427706144206637723545984244921921646246618902499593079957383923777513411383499457677543986842015154968205349798580242890489282075008657666151013033803718104173451800260403603703055349150471723492150680940433299227933711585152448023948426244318760341682754161189315339965216031117209486814641557295401998080523067052983089561330222967569968115066430967714536642070071898161438881301161112869305378294146271408274915157229056547497055510279634690399669481883337050604231683015134932557479128541042619618060779598333814468179563793459855677000437629516080041848363305794335266997294228697773778012129511668573349015698799450940605209231007071021897210462329401594356721208052111336493693867686813946049838456389498729866459414537509517738513585464974906946753722140324748293139206988520135906523387544814463624196005664633433901548702109024660906040593254838667751828718930071964374203529735711093009114985418986983817500591749205600933628451776105280996336454754267716487197832178477465805049163999473262772417418207566591616925570837874868861646486490745341400806972249388505400946386852274109282519488942253042006419376986571389862774594910908326420818713278660053339912324863232581604966550930455855612034469651453728748936918235208106732326787745518933446650353882280399989235510988542846733889403533506069602208268190394633541541521102788650669704545192328200758274942285095067651806932312849272698120045840771564812444901976160444656197358312241928361848572099647590865386122924308477041499756740742905921137482574051041992446444496131934277202627186567400028015684886104717640812905268864700416215333692974136143918700676864246063470616616910666081212553045085587973094257780925771026117752381101930071075252095297192248880442521867528352864870137599509987465632959686777593721336226339230554326013671281360114837536816027268499397868243141159127732693586760498940455035709733195356754213034852031103783698786795967161215795635510522963021457877877198488919140675345399710110141358029136646752650264173648570486105810134618727500624876987232095594095366489821809679860907297345159184826663956116632256359300237259874333923333994668600232691556832809781054569110798049550972626328192202784520060073357338375583220138116213407517692229950265738267151981406694824029552298921460693137056576606987560367333435016643844575516541552537212004774106940269462762832769164089876420869898329843703447422202293677779989638315664623141151139097210926168298338038871169251717980874314919009015969771279111182805923689047277264825557898823442821388897642201488074069142251854948977994290134846016260113902477459675427431333886554989826885801544036610095840661218759020027714338122874099836099514473493313852646911382947208048446002010640316947076619189295635243414432780924670328884979218661275136580898983439664834153567807415116738358468923929833388654035455714459392577138535054106854543074188000772819311475111051265398500734089369917956490683523549038983541243885998989267511854681251417936000360937511853299392360595770896857442601792537530310476964074197050669524207451831153242545563429195615968866264876603437136712344745552387469871498992995047958127584052471869214243759464176463162421304193269678317449469190265450970922334929181364817151608697088736507747708884796185478890460199460956339803196819043935899949158457346574592961451412682476562920045208351789624065385388496766356000040125670183219706491169385428608764572907088744051822935801180126389056846969464007710598014341032878711237418786654528209197656674938363213797859604761516675453103547909093303387001660004393446870985196483809148886300561751274433881990594520119199673454234738344206017836060620310094215645112910692669113547783706762456029129107139766142179377898686729020395677118973689230428928632555093234938243177631503475208750917437206199067371233349866739884593235144538100214821419713976898504131269479557762303940153623331750909091884735933162133006621246117390229542346022357321118027069827690159431448204085398156724866650193820665427890777070839375609566873217716257908393039690302327899282023900679913378451910804704734421817045627776283895984233257221113102743105539497940114141169049150353475804856910760509163568433234952880235476813609513928197212735445992701095374235765063530186658675416159632009620741215338078526659426635914049589652246160854676330085672013754254142544421559983688374431415020448672736820367518212833975004042352265557012263550933241893369077351435067431893022968820015945782385457785541586604371145680579367219839996178243834323599958143429661484851961089657511951833577106146386104738393963769555018281511443858571220073979610685960494567723954749023952236363868071833797630371401637552344314236858546635888738483025929667389728278279774350468393685058150672760366496785067988935956428674491681133076015520314734807095242141652100957366692323352983919284363132098613752034503907380832009634308063708914322026566104773694098398288269280729196095708267669258708337005885106622454801899428520843263560182687467137494913268813167140017876339945711702813050110944281002325560314622771776100362264424513269497494330219445440449537406501096513485992811704053275319777063352819570600033887720698378137397349663446677694030873347016454751403470423491290402724591503610496735950525473864726848940941958275526017774995013856788114555554818331911441274183941273034663072173673211458954459048681900344177009468142060837618891886278236488890910759577154796999543451776374872895650065121339576265694129283031857548445474907733943562056048167364581019829971665739231612975220305982914458495567803755537380633648485628744947519633220251060244737289030071034014713406556601056982629720704470512492866277639975558088776356776900222530257505253448858648255050608639596443075019679819730555526673702862149326316570936142504074611003379608693564538150808753307751645574221726020815589003400313388124884716486500112314225543225107702207980926277969585126583208041336546018093599779631299080827681175028208784187555384134447411529651571927926221158175090611389918171069804475719896566060493120354360766245764872782656246001185276584449659363255111550404324410842345860444159750045826237278783801212997376613963397195615744859345816676096101068699820096043992015740278894063788290200011385873429437691927072769193405222187350141449462870262814314496487726921676804465222106955724750448143950963964146248072949570264378469830515169940275349396984215166378746345678372250828182008184361524541411314138947190306433006666084341313822062624235649604277504960080843905514404948110334297523532110259910583661750453892643507027193900544297450867444695782007972373317712705277162152639716565825917462589383804556081934215978449002730454971384139378072108165120411648887751783161975091491031720281405609694615939815173537724358480525311032330647289633262544335709153094700102530827029383017287378044435725345517493510702392894645968412701333980497011750155583195561462764204017412008041811266632675667064613771499594926760618771886562392726050647771634322357637706990561931981905775190797120513746264943664715522684221776003453936639808904625689632710219180332152726402938036187469358865349856669561660635119380604310471293948959147638382260528029093153486567371330457759479966458184917760738093624030679333685370040440316164112263254723211625984368216632006389901346123346170306682269976396830041493695965450605432842606133386052213509910997416501732444038631192437115648863481630951040412436883357562957884668208467671621663278063065779459740835157189014216781522004132769573909975726096550275350381549843176192347417266854914301064610871387100161225196428860517466781279865465363776846299478872258277054826653192603229223482155625918667999495559119440282540106993388006517225051182684981040663044863974205862058027960415161072748925095325618772024397690088107287982739127688720110165739364809645156172554225742378085197501286938888736442604731747931397706670828192608320541693502188788728119976727931855924304818200644105371297074911288536762924777585176544665316759220562638579810884909268392090769605710526937945837448842735043444619229292829369847257663110508100093694597288235566788541394406366062912780641338613300412788836192267083669382757164462266808503973550927957345521178342400193963638732144873176463260600418010936835805946895442143215707892403059864146474774392687295520519850138634881703150877389492402637721153290973462760631042526057884606901130519598437849511761533311776444165015022604200229941084768983998454775545456860177746206365872443779865731909905451483774069341335626233117426771802741424019289012944189196384597061006468054415837338051967078286274612310789051259177612582569354447008689417658600220165883718257977739730186376135918424734149696293405356070215486074349947617639251129678089814025247238729837149922183631415792365756664379580103865147726900787729894411955480441414693483773518925642631747756090219277600014103743506679994840672640593745275325840760677613296124246512524439037979631988552394505186294594943610620503227359340856104229482322958249332397180311731958877006874740226116976797268147305936151590868743443153168014850337314198106197491024257124708508361476831248957908522770187034055396590265339616708562168219827996996820541452518629062554633585409479951798042413605875860737823670961770851949744564577329553882441798537519884634403676166302320687973270150947470808298261492775146610486637425242188819307395442626352944758844922484483644221551244223715849301805249639305948123793605800770543117039937617280222568465533742882307916917930057116052823106230160250222318286232924058777429367973946226723423892400827986642278699742888724505198388846965491201379081298751465046915299193246788543839753857577105072460913740559321402591307058472257870043134581406542670138514663838347127927839190264747951458498806420709308404169243778632808755865860756937583465301326297194753360480928294844621804229002301748911917845397796235204306098683545182785747162789336857283384315635509686027275312773255860499930922442820927849145916406099330852062500299120215500201546720134486117577402612785275718647987151228375651088622300124938919465102266193273482185957780128696191712317145315785515242591259090382772815962159395197186910224913199041735750541245041593199472043107079493048622921923133867062660177841444895277552839006357975568178422361114173050911772786066448196758046183427465152514938614971735879121013831416944539827743593413502854537523831103260644668847756507846982505125002762253240970738094350686353843391927849492420148252003628414664869323825197042003440148303123611917037994858498541221171382328728436277697680577374298398699332229106349016702048034087970548870452712884175876253289024380322461972948346968912086795527931698961554387581810095075763121957433449110322639044458945439058168514778814200945567768160928762026139212758513418253006630454306895559556874075000667410242838456126888310886461421089801782359446826918802405031375024965993219560816694475484593212705420091217775460956676073196444497488046622214957966170250920687368326908853070393828815585569624029535338207339603915091731013186389925841487637269425656503898105987635985119572670470276633168134021402287609785973354620238769440604016513439307730533731181609873729600434851657549750742321487541635152024136605599572707714493146210577476103483288526741409744858970607884828833857672900476284380145692973636121228411714234482532695869888903563590195203293839546202127021060565781895505507801373718497379345642315900800968095177776068329434884228132438680410147876363924400697467911005746341353410257712944773694251308204274337227865680694410438733179946354337359058461776483760502874268564722736779026748035174625147335423859430561756926665345645609027684641782340054423759609815026813586315479400029949554197371782144288371851599909376511334640159152643347707246650544364560199500312441357870575722886938975019180053133581505603445511008769864450683382163298026845963890950790758185191196518142093266251077298486450184491758817333991306507631224100253263324903021936762007051464218927182060511188122291722122984503108225512277609760476338541236515752669726332844834115762745230409887919647243413769042482027717953543161128573290311696661429472240473931508648081259215585870686276452924779517054615480459490600633079027112834529993174825736530853214476031861471934804392059901975088484731031133474948908124803193481517867595247567083488460189081435538675471697926336657260191882613361551987100520869349568068300137067071014582442687419476249973992726184465062443433767633562798651253990926204568949268831324079798011798444268400317633913075975631077717624938873765691935176638041663248665974148640984227772235129444290614537713549217723593227663796822877886653432919405602873320959421756388476765506147114767192367991874760187429087396808197210133292721796072715223121444614157897406261115598042528167264798992337436002282183201628185878570416720599377970206555314522690808455268894961192285511289912621607343869029087539023764129614644150688120388383504030080399646792979161966660703792746261542690151274750906686554336395171561966398689330967995727788371174873428314884555581507943788680257813602870987819388676033085283034486997144269718008743636792006037458333467873405000241473140778836872750477363913901436817156635525000333704400161374772264032220890029962498055251700062840561504092584836810076490593793331305806204754277863631175952623997076159892698882963647677568622262629579958873471307863075301317058103504838694613223683376252472017973062134909622987636063332422692061366517038525638489564420614360190670008994413401678952516579562854493185539952744402724022788951850334202152245583844110440004519999888060721134134583339144965446045411618681546646583630050907255207198547629406347201565491201446185249708064739888418972845084129136554597485890736685045922468439265907372662261913012013367833867586998057009646882869158887697862139478771644011157869496284369042332102516289980142821823717827199877673736461948496691092738895863532991585501276290490633664926143816027366316505218405689493473595678518774714932613939641302546446341541720022283650842627763920677640061150075622242551161525027563172645240668947245678867793376861647156951488827680078556708000637382453977752224065746497114810772233079337390379005398153710462021185276468898234978604975315665004761951772822717076603613338009253334987591417372878554970224453556085884522621269453744727811806375638451021068292678618033241384454712719519659660090552773012011003810251756643403370797557190493033577360868157287595485745664505559119597612913118333844227574441434850651545780784656197030967662047288340641739341195304104334955297495179609569912246930845170177903571342141652932166656373410046910812495792278552895323234067759352664979872640990466194199192326672852228906825600550970405293855537242232196557326818768185827553901232518559161001483340773259718784767273789735155504456239598154376831641639414400493028973918692396484829502232239450744275726622156424038960276552482914124975002724022460699793280633846361778407841432787791848828668363051405858276750282298817888020564363833912176122029090978466657360240724460796490584950609206815328463957307368965610402701265372172564470383800947031200343365686280889928287648875872621778917716384591147038195351171260582770622336101076393654878664208349229612287843602160781574368719589714124413447168963909433815807470848225055551971811773078441536601327429503230859855495476950481937390310515639081973755469146134625378613120032183774602685976000786005238524015140366277871148598302437446734420591628083819411370933850102765867042501428697290327810994264063598082333604301784053533008900351070936279921263018907382887607671003026864728383376594834535564347144796575775430999306314494338238360003783433230520573982780013834296886353963164079102178311096456077793454960103318454472214975746044923242488260792962365061872371564926718233744427823450818765540347473053934981471637463605842823085934475539406954926962666151820537962460798292377074608186745164017887779564625082851185103471427427782333258091574201824779956984559088139320814442759135750490358197574922857994074872495124978037719770086062874542896816236603987583163993255111521536741528908805121299061387454327046515534899016910020368732852825094955575763171050410537239251505497071477709963390345684247565499477891089068618295208480034625674981068394183589695414791078226865946620674787950604781391255502785328613388901210928816190053481136412840843463184871125378540430458053787865776453915831952713404321953036755407271418447747637768200982331222649303541716843874246193190901355591955355681996202408038501283988252086690762766568973285424146820931666814168049680059341360464214251756636560236540657086948339806155670570625257992109680223455073955002758319305896523311371920573425065326587245760574161811214214659984798387642304588192472814593584306833000914126164445832041744511730691051242033211241192759039822061560571635120805662881643375418988444747577385483952997532885356846542499537690165137868649381371467728694421298214878479814548850489864838131733189804060813454862685291739481463220002520336755813526351758266223776146872866042828495577714996385770270343895396026600017094885748020024332341849384626274337781868586040655452812198614251705926439939095571063528767616359066955435382355906281536708489099042339702315825450378374218550666739211260712026232153708586215220127375240432493899544415389726865446807344632378253310206943622696231849101701630817136777099798202832774341234109533630322453855726953324128536435906752955027005190583212832578794400587528060181831512955084718163009829236501143582380935149079927288145732012499984677463831578824237348610286630547805257932910906494144477069276585261229103007963383020633807677077212516456546231563514909153677504453126752584271757958981129762142169517652620681116160317448120493331458044842213767470114678370035299005950501547578146285335759539182711270013076661446655362151302303386507115071368858817569896151559939819631771520833112578173315124849337335491756474414560036112126044777215935236483549508365802884848909392541438101381964496883840127963319312082554580591525928355358822367782903462112113579102424587315059537767860221529278827525609957640161221072133924684630194606348946908153675635680835827250631972881536172254167244245639083351519627059277721122194702038855376041261704975205527618844173875967055310534076753519990361133673493121671728807164706415574115336915461774741832350378086096286950029252764537466676366332785085523833590677918717680892609653838039007995607725187836342847104894835715695598863723907985409306659395159725526677080844876325524616929028028544111629427860550867180571408828033355562166386286223100951294400566847448702539956188821270317483486399575813288331201159400381562125772156842665263155592135715695912781452856941033720387958314979145184653501397807400530068794753596916588021835001794056232141988444837732281615734071356441835141500838223608433560653759786201913205853548335118079721964186614637891585051536447468623895691698687660789414291791248846586150040062820335754979327664233869063833602157306716212810050906503323907216164579279894300684718817528435909576067243102705066930041451657326855035607089630798319049315419573065133143781247786757520658149028854399666343290141533696261896777221733002243856532001776241752214223490295380339264919746570585316840247696540706555422501891148683299849697198566419134626610639959718483048158972503139516676845680307853707315696291109166465025434646601889432716814850358251108538289288200190554835506603347766818296779752482392980814790997055304873778922106378408217106050158484599001050263505159537035515353675386056252378383251383223677008175435694997369413941554846815927603623583780136108101832724868119152799868720237982391357904397977001832904140736562620610284556035726778160971488794982585567875870782042866304311024853183488823792902268327225246999236251775145573448711941375880626227181645503005421992561749586993729085678874220366043111076286480645658724629231230737222455097326812720037542298638796369329933571825253710218296005051203734508265044394997960281724294390283338106743907413479546013639196529791850045922900161468683629865197490684142550524775464361771428395638000670878219521119711267385057848560165940370408391701997120137458602471321036945662544040076939329175590388434768923202507519571159177882676925848017153369382188928638282857657933907081461006469331123618867823948560033263572871801035613658567023036287746988937681836444104496985897580196607897658547041288144334384738215317830905403707285745349838673192235927688265343593556304843127552397023976194550830183162217940927488446297322713624285267487132566352370343828408593300204424412320443700729749650724729803944180772589041826468420482570734599565808577623761466731691125748298638568073578434461701679953026063793331459898746090199535599225410341039284286344600574246683224495096235039704993853191324483571649993285122054834483963808020655868832397558605207077433690912221155560246115674718757701993341209726775769628328955919969379178648485621996699092200439443313368484781276606213315465823831758514754853839216732831764808893886391028570999836714841899290157623339607608062912849899888619984645230205220867975850602145162784808615876604666077172076810281729233755694241119059178683258912316796786458177440446356832310841715005648869131877355316636849092366346153563167439138629239330874830185083435383993377865034510687393015298949995430744295406193891971867588800118899252146530757486673227248897240832136309219396966624366524306697981497531004356417223028799482574886596583874895507296223017125240324901786801376719671013646732207154053694857138597403819189087616224240172694448067439801877407447383540369908782622558177662471814068957457582910176844889574876682596332486756533189973162672880668239776398237341891626800509238258986153351498554123494546360287430594909113317049882794358133122211312404600298342122502868849386881050068479824498311182171884920972875457542882493632975402951374417321039176450488440573193910461799218495985754572348730092926014931494884686526610433645101198149079850092910584845041316844916245105891012730810718174173177911783805638845987936672012491548766994861315156577589223007166407004913542531426101641359298576541254752312419220339142674937781762769291287906445344828542567406320915559996419280351918817347988634029686942895368693524921094509674775576687218252398512007321963152739584025000752515874838474108125519981884509939622246296385923079205573786873312482778993174044269558906826631904325850211341442721312752787810475317006273507281662541901083434687512459590663882770996010276102149172115038624493016861005822311052556248453544268267995724310125970358251973655663867945074533492197518923385187224615875680469088299465673432562567345590080006274835786182561557419427864837504528602409426888460565181092202862563898518104714515179946355486466528814865155972694264835868714436274945159256383778840864807892314435298528892911421048833610599937273379960769136172926485928609417204221298738275412279462415603093442790459031347678286210590059044111881596539524379209162631645337222278182998554237353594367079769710961683486223031489666523552729136091559416351227569391629633700009550907406325288214909921460307611292396798825724569803926202243473517409470401594485020299399506918345178582535047818161767408933682801912877607624523668610599423951640183416265707887179634002828120445882720878341029749345891178423417523275868910022812663938491640739826982964870933064159362335593910650041608273087399194184864740056944588761273101701691966173619159279768171969893639519378806013922948418392805361539765407004126080396321725147222532752321030028724235924074230328170561933273692985481161086685028983587848292152244661202596085955599032157788855730626812395182415925396023847200493405280063218777581705664332263561446910731111349309653042806599696197431351904166054945284047909851394445802597779679621765487205367578151189239312638145630259524183809915593116225855021069045916286987849997662009423248307610625319360664343203572140701721678546884338618469968424269623294303451151593224294355911088098510832995083633582830163014718078857489297249527336873935058827507720779733389468380699425425243768228360222429384651136782822463923878833482543049242780260931071801541919624719145502618439947921444493680325575151841887701202086392333141330801996754083652542966832559036208891976935592049135539216796690022503983804380359026064744396878852718874319951253575793622062009708499737447180234522407721198738552512942818640399932626973525322537032485144734900388872383166648146116279202111347919772600442081959838658933120057297739933608954882708426549234912256096857291275448632066211358488649379000085666703705041296851813983069368001309579740319765462689167192893500407042360839912543976269565353236465878128324113339597957101977677009637818500129882242195113475620738560107158168626782038231047175947013168411435120582316339926666154404624790090067455175294735970056836120059991058240861171977480476024641184278124403443891490352654163064182152065262544066801858620995546703613104261469783631923822468465335071826288589415632763284748654212718206889573111231021417895709044054035916600100176126588528804067193965029170961172123487950767136629415821369965322634537547222172993140003641988287551188218618383649654961215115963787428863259289038557887275719575752854575294630415519300818582114119054981974920903829944720232491658099733924075145706881714051730395475187526999471802918273452402871905346689545946006083912725111238370309490337727913083378942012248160377862304627087372936898007149603413040363889598713836902046125251368157175736974890470808960461687045404776928520021567068504191044707535143718875945920800279295953175002075814170161856699611523777747430059909717888181776065810071488488502261380664708103945724725627976123694849934404882501317672520195861020450838423989488933056661826116837071217455605332972693265695032572660201273270926667054235145376767511395127022327561257242417879840738705104555690423542221498686049283094901596671642293599809942160869326582786735728826115739868872194696785001420061959189997677770232312032914126569232895365231171025034818684270247787637816991336589642554651242965811362577968173899775544376917389017716803674875066105769885023626970304761776815157777095640696780491851691080146208710059787152690757480913422160622996020562740568333258604881726176034673938341781671974317319847410048186077810001689769931086933056614320263153334644073228974519785357671049785907859979547531107408906145138941369529087936758702325682922719035204945401922299626724198104860993847242986167060885303316871301293156895299670160716484011682193829777872479146618730308571417262332584653536342842845597454814457690365250150638572647445408143101745258443088460176769371478153006213139120017619511806632832554978067738189006473803576928344128138129096036099064223647553398933289355681361607582977269769929823076123289788579170249998851566882105478882196683656692946184933201465816611812509531201702400170894731131978727073707869302510533473089566309101153367827634860889348076414494720481702946844129003483619943252591667270093498752652711828172071328378143662626312801900339143249391140421268606826106286389362521097144207783282520962965515436349821027303025304769791708883751088558927592869675273488480827505676700617784478482010672369113789163207148489216739292215658822050325180022659682467284705612313429993826493199498079937503075908662323945449984899441764279806736635408052836315708723201306618988224562934262055147207367972919003021277294125355569118141244282952248775220533788411072671971923735155107107197852192761087943625273691890745441759715108629327894133875624775603479062518161471283920602076961388620399761157465775779021878032858448019389194347258908750801662662280506207173777509118355101282551425858875195511956224348816204897981842360721080868799845135442031274582330703824220520501916204747385721705368518240169409682272147899619816661858787508701848133541521330055350602237711014851440030107208773392953883790899830221099260669198498169609608191644457372542938528147825633623655968723272901256107191804718345749260780184517892833922990506989743338035092890399764843389598121490442587862985039694800052152851393378158967733640212745654985646927895354094926942985131918465727476500408576605489743387992651292145182327818047033998759879883292625335572345323400284683240264983449693871879996004015927368728482078060713482116950581123138828397788161136223588696975300809203594875538029270735414855613055765770641394091805654324746043124534486516247030009888871035297966807976250570452423278875059066002077196812141953337374876483599809287545008709799513221281822028743567404697864406298068394904217452661971076779398307406195873884973045561973424818122761210323194228503975762600867051049277533888918682497292124308904226375318100428683408492254745935866932512116592901007543420591762747599180384816757058954429006217634496910435042884291845839932091305129820223665987375955091800710670844194530896131210672828324797871563960303942472249340685180274651906709098338562006471151307588133405424322978007352475449018632784030762304755550153565267992698842375271094417110211844098432608712226790006463606308794285170798302964702158204627022178654079684699387592680881754060129788135429286523973529102185530881510405792958829518788814038368859435946878018255572335051191629742364941012827132177417839766666792650725055930812116885334395834992896535611946544795862366151256284131929565720684828864182989331396104770303443754840310214180690769079787195924616103793289329127178250246452227412402383066595537271360222823837218192722918226755852215078207328594857162676051947138704818235665349490657124102074065582565468352321899605595345835805752183120401018327127523466750789034245268241128929678439102522972102361626905089957931523880845833524050497885690107045023851048712583335957410437426748026550844462111211992909791855903748511085916645814309899070800050730516528466665706509349402403005297441324595031179596873556301491285811964888729135910473069361285592797768570646620621034585567603318718428607898461076600299763242917227591307581267565668630141466475096049898298734175332083883535910920863092432289481804852280068115859289009986064081385379781704353029013725726522920454629083868863377399247951279015109662076115371799347404960031867455250205028699134720301862482562475027461518620803570283954578414544935259521983933994200387153262242561413246786005272698465124939476522009741374951182919745001783198038194494844276345066831925979429999739564923075432271887723267516212320637489541791898448417628282790706357850895867632487291500159379580951383432128098990792934052424128314030182309322107598670267402671879759659713570311171500717067317605818625266860558722455236952060274391452846216846478802279909061621850079094346837216198078973520129664536110625177384847754041079101523595931669590040880838820416812188562625395025249309780495094508408737620100592287280026423497525050493832855915735244918362472334241058368244303803419842458568459403396487231670059282378295900771089755336323887948059228211357353874056593970050003520863735220454174209103293927720251014465911948050545789291448110693076021919389016876373473308823265923762721889682746593211687818397815604476722995884782499072303288881230702240234324870718878998756051043313233830603620048274800217570652543809994956339698285322019994071721807796795263051040308361294996852120386777984171140570237983454471176129436732942458794449300317138070194391706504820092131100482989987308942137858994265405458992399873886703351826115830673656141553933986721322157597752364646894419391149072828645387936581258729316523880547486167594693373155412175570457743634977082558247197085707232996869334938196615292837903396732928939594140354551973949749482367158904625737498887989790368430775073248909997908509792703554967739891428898190604271660548007554271793235001182178233278029023048326833056402452757166174722937131536525847224109317342834432243364992123729351487944185087115873996441759051932364282566527128339407666501374557163984869605106100985092573018487655621125699966012414085502446883220903978979482699556260676642721386916038310492463463446331036952634232986412532086173213677699447093888847007043668466735499290723349236891243990010737467011799259732751336163432839167196223338406107533960412312976451976055713357365002018089812074992010821749995890898233698319885709023718541289573484036161873716753376533410544283079947513579218698985665714534630593045335431074937908135706730993404390017037046919729329638442596746138255498170196059157185421970251062485637032884772286192868379321901658887983883179343556809316348874853660095152602882040011888839050646369666201341978852092962570737411899347223275550031094718011998563294491593938632808036573521477053395682725119358737926769412817278118365693377171348440325767247978448958233484469211506705106821190789973782689934561425225510573359876109068877733486788199850103335846182890231727381128246110830001341498268208519432088002057996854410835719979403260058086475090698313511261690007198412861807916706603191359237679481719352819642005782673553966043031848432571948594407634647161980358970893138095741432861780333816613985370749848038824209823936287146913727913997708386348649774601300999080268632234712712607825975400306531759429990415085069203260042803749690349546850615035126167582616794480137705351470662527543598161195948648951429838810238059679879222063484860493238501076292726550303264659498022581400335247242398132999146181309344811555205417441809637717012945801333561415402340846112060376444956557356666533198967576039833534184765931427194253309715724013794704862430622533808561823168183152846212626335571596356003141980997132846265247331431380802654560497223051535252803743795610352018192858325818530302751512592094177434091498671765762541781088272075040464865052532366156209806681645649782140238714817114733352842275779868367185327072580738981599748132082741147365666411218559180011135316541845220644446168581359548601908456628221468297555786481350659463290113141258829250076098433402968855585866784247118783557454075550427517888961928827551368312889984919645622346252909733149623468037913939206517311495180195911603524476366163932810827196749849427170786432961360274223939630182649593651724131834098155454350318986349732958359062158936218956068132499539150451605883530598565890066067997458300351178182736883326534352094260570401456003104929131711806593336672759199378945390745286457206497625525126619709111456643274372306795718968112001475045813873085359680902316269000095047173601216273698816384137613916864131101428720226944780029591551516230651621244229467880602739832496177685218641661876913180628096462509070905365767963926349335293955815121892287709748823526637995193062734748803854501865519875453664951183020510037906874757482028335488210584310716753915315966546973854481457573508658473264941716655652113138474223037051820528218319404710215723152889736304896379033105257933100564813279374666859093783589788623867574361238377541886159370170267987224357602045695066744281140541309252547609499149986685508072709541255257915829544829625513488930685771436582439383790558262841263456403507502168349839053779426575495786390173079852608609496464107596360302340953910364367370635796439803800346848093024648718824941530991970029682821364065711622050551787569434419257860865270747034350974881578092806663041728141181698199520509139277023342801791714462900900773663088516147146352113266709103448681725066772962292750180059161347384964305708703359166915381877784966363485928473672974760705237534808836202697382908268621615300440963005899890646828632924293032758284240281716953880621604984539467983074930201738554387903169541387824846198458199500462724661813512182000122521608645266557120975508828606250769673294262764123918154586827256235595537751190649652014130524427477250872162706494629169876136239865272304369596626900128543373901808054087484495203590371630118608593359608829507710517145838072481776866134560803645871507579846230606412024971337310554522489342261047971559642200784640476496275539879034650288890143830893541556182606247170904218982827143938195223324257616335057474899066536509884871628826632528762901774230534330246140617087776695747122159234015657997473958309844172829844132431226296019954167631576716455096593206455650214085270434114567457228567371073452530503786033257336091426208219778149626588065256184360276107184069641643103760146849870119625392550945441792290496755519275371618564635634833733905228031540991673438727113032098006633237353394523403024022529624614220490775377117374231452209290076276497661293661422901038532277871617202328100720758226102642383796289474260883130640355726014868817787510965327236915299493017490485694305089843235924570834701216952701892194394823957628324429156686267078419497454955529587020179961810427278023808114140482184937665386047201485453393564298997292769563472716735230306761717714470694783517670943124007500347421827523756089498126312812185419312294957737080591069708569270155636410678285132139446189955857824684362751004797909914026027204078317998781880778626660435960462400180102499803881475067150614347098035311476483554844163057221538196922079927857233920954869730606470691648092655904498029132976841071150972557754637864248407512325785093621088888901391289822414204678429127496443120638513178164185083537164455421200934087701847798773220606394715124689434118574634507319952447732238694289824207108495077939972757520749227608061780475464685426235387878084506185806975132342523258147225949009037525472565930118684809669537913537088022659605801691639692038658453331368737431005140430164415374793295584402739711539959511273997156471526340410484845245512347930788062918403653675158294469581384387203704429863115431126769941948745254408285629323121717133608082213839898601179530687449008323006107335989977369708153991497026771098454910658925972060315916471303428697783131660142892837425754805613176238667707551286370149119798941726094621019982832260212841026500557092556621568954416258913806864581915920052460793316094837848567682356262853599807929216830446709920442307261202123430537256703944251894376313673849123226422227886998805429917306895819621253779611147852001693253404731608324754271558298670321612005928735339433517725184102973383474963606993385116525891392874541709014018649831530747196594444863548341185436229303216952152371938148117026044773876216404888483444108049416012215743672236131685054239770017187519910175471546924808055734834667788894764426899237784964963068838344270636865338006259042762496361529274678524345162952533955644364110139434678819074400793071935654396447444999273954444863230922346451020220143913765966313881028691311505302582580328089500944598495986136967199468902881750782245924183321199187316051335210313726556453187472328666152238518006450989974144891298767905040879041423677891920104718381102359653363371044182854664501387982810078416095552317590027949017857974580935939067392808992852615677968674614744957479902023137318618554720462520260154757856649440085854789245288402220045484415609810999564997113465087823922695228365081156652299341396835970372511039857159875742340700953312428793941500724734254673588508754066549291455062653417416803800539947488607585636763694553680945709455950690465350542063451833847572260471540884470720079379691493498843129352912210382158010549826277711047231008775485462300042193419081791725691293352180895036852893523665906628341267390587625177321118434591058922922345089263222742521647456090450607328225883466585472392198104758576013879298870466713783142331056409494328131643092124036643202353564242108067695566808651286134198248494892916361328216103258828828386449895323981585710161786678550961797426667567841176960841036987916712006235085310685047951695853880296391953178472515427303333013496040955944818959815873515195933168094615506185197880921732565465619237819088022311499178770596920664016799041453387890680414369887571506712125352153714115287478432033245626432134482694108156748626613459017648586091066718032321026793293246952768880000936741388339789504308938402959991515606406703491613288503858915464422660629685314200911271081024723936697557302881434729699876060253235750837672723624100773818873093727871959908241703734191213756854532953233195001594838779739727841341465975282380316545397131526454894614579308614667958938548011683383669471034754799560860267587617523241269893469994919197367034519911557457122511616888162486234694210158892452903647505959657358391493521729806746594852696184851179814682576920289014687065805445060086159682126344938495106766580161887519507706708087973524913777779665220876324240097224615472894866459514136737076051067626585680248068248787795523580054720031215264672777986719393805043476690939488157882821302952023294395884504361314571950640508144346415263470138959538376031472878060291247428247926411808476736178302904682290665077855983530592768494195135480493049220793164817207540148939680824193443452056204618248563716484285262233864751312055485650845524974064737622986089641120717951394453331918451042452425520313646538684442815769327240173378266490639401550924021573800776721620795610694856129185794098754125655362779399394504910527992178390764127995596415962045838399015974081311301683951358396673871327295589060408142228073305750434251796880574206400533350991413311041638062970583145182259547628742249701614182861949371471110669601898798738222360649147215715922452740835089062814569096947421668273135810863695166630705774393196990004594817721637320192574667891294440396440940120328291689854283113007206100430968216088727364253036234004719932897248579597037971178355446968763475081236179687001680638296461927245736501464057309929541791414834459335292496583082410759396968339570621475954179293631052418613699230064742826580374912443161605344109489697866673737587686548689691951279712096890673027824129490527729575071546885975689458255397789058060326331221719751655096737928683064781274208728750603807839194983493544839090787439284200719705878429664621033217571951559680913178758812326461672500243560215255166378993003210778590757902835552459121474102246569545381239049013410143878741509213733219173227652873004798565697913768255702636845795058295919133013546774993412609300701086812694338416301148375111235930168913845780251480858079557781246618242959912649469097462149573717054238018883579715629946442352629340921650621463707352338177220683794401376548660800250981937796915131119917911359397710854703681847053587980631706040038314226854727545424513439217944653899939141145916861058777946003171706607880890050418049365522274377498108961628849532973316399378591523317023909561059682370040713557294793217620444825292426118224442339013453596208218290773431938353940297623638305366982894940759790721393013821411326288632075707835633405193512569468719935945294059590567502410864732480784151783479768032030550045252022050166390605916548249668029935492872588224225772402347694403005896651561089880107746090638178884466276489204994742101181822562959893749106135312005805050557259914220936326529275414537230745939930370337998271894314631512720617884589676743125029179894524471906640259428932175298890655495122515476428487694492873072736180288467138632636227215777059879588279621670597841958644693239191758669162787631243203408118574706380356815574655625779216702921622566691832314513243062037610267520607634285672066819861704023108949510451113758775300991411529777388589605834426253664259003212771593653059182082791986546578591013382340075977113710240575726998509424011080637394193410199372643563671965052572566644062852761614153164489334305966618259283653810945190372752105390267129827285977338613606532892782619256598484216104151585324237052621482426639753148588030977596726252236414408639006023421713632261179593909292098791387452259340448191803261205468304392015140215289151196536122905533655759006589831070443222983812487413499152785408451356981140173563964437393782693877831710597633683382254196109872055136124761852365292832916712344054883805937645114374713605906228926001374861287887209317617709646754005037250710546210389222772514436357624502000814272284825496000209826431817716830115903595257385191484302401290401685213158154570591014169693943532716348409766514179792006587685057447791747965441032518374294663205827007169478494645799142590197269403965027950792713892963966359339435331239090966326896327859243998992176819583933383383811638682121980849844451758634949547143989494331378239641559446635634749682270387667735950441536194315174061898500339856673032061338023620558266579239064678166979942608643758031640894015101699780323072515063660160830050866337580462424173188046281878349910885181403611162150404204046808241261072729107963118743112461727542642512727590521870191940240220730161275863695320756989581786932765458928346578229655800267522377808006546494838885037676851196429677042959454073352598336283538356089022445909118459477460687426697188389257080542951755840141895618694617517006950635408913796816100944660629071745561593885525756014264605825285823910208536347948255919331454301679731164504707619819326654593527061523988263947085761931282639516967646931927806855679030944214583312396915618154846072718614173290664706191473420313420548815884273956467307550491913177666527794605611033905471664942661602187100686918982061284373303625203081875881800037091427132956727365549962901071622629210897579936483379891680067113351707525051561121640288474808599852891523990471695908961697611423788591481792063588775709701467612591069721230497847564933032755714435724165454487440863412290771808468208930947033467378418185391144019229793592099077995317252472732787169612289922821330922781879761776821122235029155192426759580654998829866205976483047812201260120027078250386360415847028094202228218925686677753705818792599524733686882213012899425067527142112854567821553431929603244007603507947757270943805983357902558579936409253041049209543776010486225354388287028018158748595759810160995228237403666726304206070571598428287586472097800485804757503014806365438891684805843749319909306299098964887193522740748641688441451287115013081331344250308963920664287807207247115416808877085400377678437486481097792832900646731631456474529869142330566958967244210413363597755648308276261541820062725757176179309910875629741409605494765027734372585921074231169764440413100699783250531808839049556511758659683655828763841077322763506085422206414144376597790278645526731706061939703911173239723545700250965020865184407139054845135781800117221898927823412511996417003962241387756817264829002980710977950024987305922210915960801232630949096453275737106105754882102926506470770613530430494563916815387670402054754534324119875943416695206081343169821059530638707909118405156424629940221133510258485456205964391422477500977048940213425912430903902431635630245082938307370678526343162084256820063734158576341984654258517604693702771544176882705555533761794511088718570864034179452904607496498400677259669833223182098240648118884232246712328021603885264513952359933870444723408335642883083655294890286133716181365608438126823175990530978959488075709094900316890834015709362428150277160485398678668595709312127581262614833875563452398052676280333031823365237705409834811670010154086998853757612829548251416233677184301451953729207515537452979690308026593718369165141295300320847821586148592158215995712350929127911075695327674833032852193874180835733367461199001190742697777124298684739882118907674947631118751560970060698756043682552975428618845492743529805835186271945754455977433478273827250836645107298859440084047015796453584431822765913494476001661533952611413815662584475152469487673465548721962195116418899844530998229952691441600587479408288431076980923219808557945808973708970117610410095003938702246396145851571790964347779612778599069005155023867601076778136347843714948559278193528205861689347131980366605409676217140570704593243482019808191727023677266229378972348193177866437887693156358024812754809042804098211570530104343136041154058248496881360783086541964290753300838367358953953146907443565912275723206504798349597176844926847166122285346406633458155115119358312006529134676278139154491587739875646429624580624394326667592885580955622055039157451894357801006123600760468816432818179466618694561635248946373697850180073861104021643153885652244359024861009009439781245892873084551217178308599477948702497830631808091819536942627065656220949227121801777388942335222106849012959803409091469427698265144870946803310402985042607196196460705676838012299725062585416446155981689705301522485074811531510291962911446734815723179407220951447861430103558809801497029218375715061971025146666428584158137613352912568011289146520058176256775813492741387812006586891247377502646380775466644058169666894304242068348352293742183942112682283854288911951921894807571522650449826034807783376930165077584331651667680328069450078105831411786522100600299919952795181629611055219370155762207576012294456839736974992684835935784680221465856750195134506900240966374819844358480010802710281371700325276482372617516199083405340756706910007692489645983105625203177251655461778908549563105849119678980791101167165624383124679238643983106085110038361882206752558798850147628406598993874901331083923021093669385887959367197537231356430886497720531630671710648729080284912313682082775965860743612076518630611765650622046899565828560064574004546478589661112727158728271938185124808651081983671822303987311646873582015698257998133100864012241749456771739832475564617248436082887597211784229785671608752908775047348552634062537089541596013568233547184239979712261858405042998761118912448133265272645898807741316434335795007894127481197508976078914203030504832505912267830181103434866864306207339891435981793223169528497165991474557534088269296456961801387541689293138603750681087447160639095223407178787448964500627321170514771398153114095353859047365905041379100105357413676035870375665929212643073752386414857852060777195233538907012544819380305468110993427235213002236401049518350440622254025334684745415917253485785974254439562345069386591173521701604586227799153038215531975890201819809609611748843575683969520520002482162155284533996758868949830344854940737748377310557823661852513659214340164738117068294930734440011227374590539281268333325870563482603222287194465646827164699993797724643849916922168739295269489579942526562246452274702164668581254761588653945592510190488008001852851226139682433118900275172032275121432340388336270610693552188796362641952668640891747904899450147033648887804852265728626116629173385308154351565057691135830676356471792164966550192847457187154377934581498709469273427791749228828897538808766046930718406944080549214478717028442030443592798221726140823532713273475235761175272080255887238823559386775143339967020653794235562153282970221271647334944631152250203118249799753753718417736389044295223164305037792593731476426378428500884683645012522453796422015394058577291327198520311770037059443693030154831008597411316899851677394599004307652078074329479360063908651004809732724414711876509335955432550048694339399547421087048616742387198057989220715254091695500437911052094011342950166460707000767384261138949178986298531634418178235998952186469932345953761224671552360162219917450952958224496481839320662155406565821539249622137784571191952674169911237779553793273916510366444143715378376643940848565661838196310142266924938755708459283273034080092180947731383070637132172475806994547074278234753741235787471150953841317500385598776175501499245402893660361456857559817478901758313185704884097534722827332301080754767413130209503412680524429581768010443923051423740736852863510136328535510081834421740800680428460550002444118946918308449344146010203457520521169990227700592625410462692653887448949577531352826705503508627591181951926967970670180031315556539744814295633281777479100869033074651906997789761135596481657624376249981701670501738284935387884388340557959017061732072026330607002433861072233144267800522567391624368183547138083645507775944017842822199667860046250127875413413954463430146951737317050832508518998921600435866844734094931193739669204996390760522987525632464707221872294026872682468503077116688567849542874662655615814561816053403890701972863197251685155558053149586391410366360181280487721062528977501035274269912189130125186705587326348302406326015154921978233598713432213049721156967945042406390569597984236892812000591713194059620975436553945532914934270045844666187424733999306863208910025950000417481895514494247620663931587620173965409266014228714002864394417719105620656950570418978407001760042611573792141235344143357428523079521247013093085539379630603010761307086820299136211066915602049608187901384178921743631667929491922859348600113416301919788512569156822271659788548467914642978252336459005575340720476185736629129862295313827484407024584097022986923332145498218661441864622199128189979744827162101937106108864156713249515048871576005339544550054099301151735235986916013182666595223618833781875586865026725689292215278957778863903572609816618035334765317401191318633635497296205438572552886433752537609193985843129880773985598532708097685522989905598071795612171632536982108460576588933718913953585586409031661640391673738739847424056300446556342286430733274368443064777099094624940194517290632668341563236378432914740579328512588799987365198905474184479338124351125700071177279834191113007086056668666511095016954351272088757943016070000944504937319588653674007972481472334312107732407529804256054328202122209357648511509905248000280208793752803262607169442034842220049231029069168527562009622886656234370047671801671768955825050129871129746240881177448702196724013230361107724586044029835943695064479321572431101859638288924748649694767092804592396955669744592534949241461901790273524924618646148780321023924782850287582991708418338421716430317152717125408291144014621138650558945526833985920755674324458114703706394279565490158532794022469588885077032972783164251964768294057054065471509969309906269854009899556880308974991151199069503243211176560867120271597980779364228807936360159328923820647728131392461807600646154626976408384267431009271492272499907704154094863084517224676282479873281278364265551335731674271720893687573173494898383632310523371900560309049099738387613614411813809985285935309006791528408283234769155261521880683222386363153639936188883032190313252390818775711854289395995020013990736978967222346575760090342422300241697050813790418632773721264767232759091218006819244114304400743273521960560722589578522381048633960853923913002319574117039155791013789300071335851177217336304376993699540451845503125050275783394784883538181161218212721376925223634954273809790796431728188945977496863058783723754930333190445012621131936515322260022985421549359262950661329762017646624307243843296940977193781729237086399834151212178776476065444916677963327061423573976426657880102104504120740640422180117755245343823935028567773085414302904500768879401609326098756127500393664214385044368749537078368684591062047974603375127398432829052745239268639138698174857441949890973830345317318813220665716820113671857521932402092446565612350163586798008783160485177157068345931018624601662571584039198340662610105821907964864959537527616582546358894191517653016435342844449723679399611781070305203169373992827177636769118024078423090824010145249324847691442400575453993529139963618146864968974513201721005930909521164001036534070308423476845483431444456005324571102288849465352755248086500126432048027928822246921938793229375364088572484360635024171956528573203663902855219994152946875199928192646034205338291797392953243826419869869829642894064839170179480196899556490753718694455117286420843051434450231867566881879666502102147295535549361256799456369060769861254540041934489921750653817214132822671615212535092442885135793312683698212080878079386635236342654304642472763886747375569025361546978131260838710727493628326117184394425182223492880334032624053005231539594831771626388435398777321420303088618413339848516130020242702505971920460855173897549167856584012672070843870411185138517898291016604828266994189073243935405977211628312455748138575344390811610991407884459015076606241826143926703531557556284830750075234258161592492195969258749365204076438802939738659589012544690838973059234968890664128315103291190743656618487985560612917846699602633958601960662209809128036607139811405888510314886858060207472130108411980519521759216438809811042707037934167401818987353526660624067543465991019665408296216047414516459502138052335694648775211970063337949391180676349249703320672582188845707647821334957633510988953156555844314688426943844832725701087128894181562949184358583456977470795041381096760960466779568720319647783508849441545848368573119621073316291797049395895561406404641123134921794811358430611125598429548044843895231367007283598589323487225357312398480561656181562499197493047108641238504811671596670156158862950663627664990581338907883372720928240140472454802432719516994520977244620464150912638977386576936756208079189201915893553189159106739714151089141246144013148276811385469241002230194750460921336317835796784102501480671628767209698486345685635194572228909027448891100760784556644653762047489627461047826156736505907964901481830684301450900030237309480858017083335689106386104434811414956451786898420936435814814095320323649375557548010948646620870319401582160207794058009629300646829793011951657961745159652523392982133144862914725090561534296320556413506624486320817754187574673953331887727286066270612535524537781852659969515626709136686068150763991912679404103492367717670418022511275573997527701925720606844794699180967291266908054716185198040485473266851825123873225869062173646219318051605957727094659796954886078627848006975313654625484925242072723501544603269226635117265540502402685046733673229831117573376743463625951401424892648376270844542055184432176659944465353884308155256528260673197270162039627013064992010612470535540493817834672830483824709092668954637565493866449985156003959309389537235261534656505752904447267101470788135069414534092841481334547295605379540442142119893627841995623580269841402744862226608920620240563748758661125106206584268153540649670082991136358829761481871519998636608901397093442731788621505893987745592699508715859226790587456526468003733896842472904766364583080643790717962814165184957598776056402383905537198770459915993377253363431889759166041228775369088438257259024196223332471050123232286195730099431314832740337846493649023922371054418509478444015718437837970550742347187593214896541861393111824462437106896612179696220633650564820100361879348604004269235698810281441091192760090901245140840380454632328803779343035030284545552706073933949833400384376493745139138071669622861426803394802201668636674451297836315264245011634056592524872833009165441098104935973551440049225214874875013214918259533338015790693365490326593745601661338591348298969383013177951493471772016475963233340238741033159161295058893593670537583934659436326628964163531768983187077602089543831410340434621672755365076387591943070211164789498925911763619273107347378423091122719965755296224668073383416271209318606563379988601373437350195352781652757326583504307419055977502125379089520172648879172520444407803705389185694551512352800140195468148913666765597217734596929157629399048017718956066019806661741010259880847696035865634326433554596500330963496623897266012887136299808854763100966357191446831924137065787594689332947970410530859473556088741304205283479856442359175560945766244238599839811014074989990650169543116865584830864058468332090140818164465971871331928466191891430204123141656105181240425894322321236797593694951528654074231795935580236813399983232183488744270891610817014630379174877143711136380458968510753691882821161432885253575500148825786483741466150437214610270970358760432580427614227210994408758877245245805806564987517331088956591786713063038655755674928593219374424055429563327083053671787818053704118393069806778895096678904090545478164682610895132119548843529203236205252563439597600353837875418587893769716400637890775596419789460506408281358584804847207791724599601750094413751068178867389893839247662030695354798089896770069763623067164080426966967719964344253535802398866140813862347806927834829275787586746108758628134935139733834898436436569969065403848777428035290851993361381651620302877682805700262213818133981647467219297795545335141222460440685388198189825318390598640668899675818764648765344734745385293592523989469418068081956104982232779138294424880730389453094859729360663854604425953731152585284185423657328977041685017068353150090273778862632591441367283623953159480950657045691835350305960274831873063358447910341351428750456776093005651905567993345107554361302276807969654267607842089112361994071887503823618198307665090042652680370367953183564226526841209752291105099431145453122634035925737942546420224784494909387867108502998763521877629407310140756690919019424943765294611521253867896855281678983032051147547856032175232107399809326000097901084858395512944089112604554300929159268437702838893529558720171688458055359830929941193705418136402273397960094105854756090381277633533423692041834055784909766794421736562848732073015010414310073569162952795620200694760228269706565668767107790399249029215657591172017506741351177157199942677436643704910937393179238434320888215483914264054112098383104522000838631455960161663250085078094429688978267999745740863859842015881216040382213808150369824954855801895025752693226302673605039752050565502579727353671972677687251575189884803873122364212645786793186697194655287787333559890146552123594225308316480626524800669337833323266922233251419231219970157122784894607262687199590801438716581872656702359498108090190888575525829663655528349789034473744860444187238887109353139580487792353545156749550544058368452045001431308680888964333231286442342687705356276354628694144933378201562601891956976729877640633119242842248990571752654278056648751092843505374609772046013664275829209758311593608583724277752901455698769044157336510379283185813094637255979060786238009087648702227956415518725866372607781406789364231226221644091257844399563817041967989939940595298939165558624461141507796614994765036709260546295464424473363354972229311810107648261420849404089392284218947295886387079858663047850173630171755376240136617558265076086809071098150623580035025140517389709057512732836832672153063463851299683571505403705725850769320233538707041985952415467261066734314686562224199847302667730482910987840331146156342071976274455469955388278397378674580887809094205315048794882973613540848233875612158134814729482124694076334545277478356043869518745948733240731633187517611522100579192198080502214925425547300885558395380097463359167423566431260957948319609380169918689281709271795860138007961023176448241025533027681338538238479547758980290768746728131918836655889864125770924160123937940032259196423175656744917408690842903641246060766997374355753133921931884596303720641950008826977562487042145404495444867461985196810804211098968905092211566520408571931774614243397994780054140668120933846349720929844752285617168206911334930888215975125902128847358707375243706826402140904574718087729788488870107144969354546937822829637232277123233517669987504785846144382366354647249221811256261384090142883101013074885994833534671934384690011886827892376185098226999836068601499685497368201607768251197513613427459889425987418652807101128575108190523687391999601896075238196679806173383587753869140912791585591157643363023651654886044360805144457430759109501598399308221208206113710564757554906570205809585245940369650785751347610234297236829492808180776481216022563303771416774805928206678645788526364343958194667176935232014880435587531539625390219270679878888718457440338886306604103633798789380274730508801164697288298732797408117691408103545031925175358362478964976574600683652616620512254932295007030988815653786907617347614817591489176085512517297473501154437953381063564412698030239989838108878635728762206967550993962460908920980080774270068885880511250046489292257327274497965821221519532909584860925163177826276267705354318976205990510050723419610972414054973535854256057698309996797962751006761024650768124725981845628729552642736417821710892582082388237922518307524488868044500554936633377668239843681597619117873744104759227848492991023188674146144709446255571312886835792169338283223060348765576328230252193496209193249126600925474592750676268402100827477427161073216628097605471592166745353843857285956149567766144234183000209001120955227329572751627348923392159313893471476678152297218013657058803291182776708355029990183515410248249159852520539158082675654328286406277051059002186470564648951174305676256207842556737567114706328468402819151802295336573234674381032714561707114326912742338069404702833170521036165817961255510519011906102413582061157528513930322709405850502940784722332766551138202527547785326287273166252729295304599137776422326390022239269735767990844448667855445179942711305304139565424456484402096435826358321702930637155772270339212145847971276899754512157573327563005598229876879908611791929107914429017107282938311214204313511392223987794991464739180337097587479683638596348809968152564931877903754519235926234839600108186557285522099165467280189318880077037210730574938866646021975154529028292122570737223887788456836602960249830809671984117431269482885805643209228462986469208932281179544824715378707863875077522536189331848374845680919557587233899142541042851487976348929009958665046370962063327476355058662570350369298824718837942995714957333851074343165990329513251060530560648195549744849083378153731728346921526432869166043305053165168333044247053219994892120749013506188504998026540750260934168806150514854401342684476445666836229640493947653964166370041282506482494309107066549358862030710730643047359050661004565396006662663331955967891676002239706348184996442590718273398582908258702400682265316368084733548873153886431277854463006736739868089852590761819924402579195691795392914863029839626214732541274605066351484933083117340647827844094918578549736744110572879413683638465099082493753793098767135218105051483860673394060114423165179346809943774993542473188915206016992140914503967952457288172270550177597142951051883664925191996605956986098021248974581878793370335491509891475987754640179457327703261584549759847519377161684274538519196294466724738130799200126662245038376830714374046849402802069713093162825561911134850068810393577165665788190920809649597780130914259357517769039114094076697424973260630060219824367898775278620973693732130755728591007746600618924865855352761779022703436688397771516898786892708822029661754552077401420754991085499698126546611766576654699559396806296807196750400389874928134584177464176913111769523428408902229719523070511785027964272368669734214291429504599574308484721560834388466137552471719881967527149223180337309014994333118302858741629300174341715009439854556140537232384428905290833613110807011502809345283447763602652529666062315784801499490761399351826708078920819081917494195256145289994847772608748543770209224655928836583215114936578612837890695290402604672854886622331232847823463241392381093368150623589049665199469115607265409661108614411300749263069223638096090443628036525209135242232580389032961723648904272746832738739451313412195764421464989228357736272828131536337662934401032818735162053134743605108902177130210833884924393462935651425891053302127659507166461218533553572583393081884113132620186051813373193939337102396213861709908821708436777465953113826372290477376253243885058027963517038780966551520275005255352250881690205562458923758567420508401574569655912010241682170421092820825128817579277888728602675592136144750051394459164550870309051784761030324750237279917837161658255080531991401367569034480318837770101912229134166835935552272163089787278769374857855935462768903755189895098096209331723739918915280790326871545021305642631503847440585438528039680218243662915422320435515559660359042650755584778409254362098187794509738400425472759643134467966782984740288792743885823967421851575458565528855872212491221207334314514914695514171348961913977829978933427734048958038934000920735305450140838777049899414174310335015431509620613183295499829655479349764261411458620523340137785907629703591279105758801609400906564413644035874941097642184289335516571569298114752791155776358243926516906596084866895217389762790114274073855978937921519615652184902623295189234234446746058248148529233432593988637206633932880623331684944313350101535305673137227552305627415093639720969209905707334423629462132817039724323029328038298408451551991987963142288153544886073639431741558591202634133907073474775965677821263038341161609530903322607838089450500346715355156267801515224602882856966885786873247108337231346465131768455509343632669356748079366158266529673133324892744864611152870881615012620825028366637940029896774870751056483294211305585760594702407830167227131970801304064647925073961369217593082446469006696688245548425256868649379017215322865328766049614489124593352005408975233557722530530527712718256067701014427318200752667044280843963834653237393551775169323357055362370895798189390624550498657960113752076285881984087388295112658992774581219937165225893122014754405587712129409664059428132447697814716243710765321385166062772844584911148328394099213590288276776233834827685707862589916200774929941678110592513450390755301822023637208539106119288257014231149224610433981181214687214242272646604120491906627069888997433110595693586037760258021063467745982098610356016947244610792742403205207773050257513383291274105227576958844810028799453152393472432433749763906396597345964425775273359657597636035858595133206839001482670811895391262547685096565639836857258328074122914347027401582942853998309690144161294750758736370268472266632158452164557328026845547160524711394598387209394057001927394522136774047112034426572389649053089833137533272272782571409898406474499907156706204948309059905914233176743401273684034818247989097030900982304405702733455902383770635183903446458788148912460414162935628352264228005629640508579643291814776601024387997735282647565216323470123223899739027970298273093909489333383028484016880803344180449279218717899831590544459368140364656891059077522295902222132853222620772257634977008282784169739613406464460105284915187750514426585351762582127276966067580342207158597045276166130637422859035826292566588671461890079719462247732861365810611873733958952180865356175852546737072267799176872302406019679728186143739583512936937079271800059153987019543877563892510764625308471195186908230227966706050725027111471217698523377584988711450199342205956367275984612255391446394091197503060766385698305259971550885575525229354064385398216967530791020120856531655955740335937105945169658919302647983994852753001525966545482683278766695265971063008020019622111846111411292971938794773575948143114961207765400635438341999003287187026813709212419398430774271323840473148431447847112796917860213452257605458704280041991099691675868931009874069019002126030587948660780526151447149157231024358819838057676230426034587034297976143512725512023677795616344532726317158958986654799452231357456325301334401710513355090391865579149345981199315501333452168196560175345868331157524015801048091952457250224072523383974662226105135382904481698384296126822270526661358509918161933711556158079345036865197620498479414633617074263735611083965800716669840354037037959977552497314237094523002362551304410267123269170771268475467262961299675537652758793251732031210194812419321527925832720487630835392699826881449333915726837697388618436215285930417931074626293275889239381088886461796017015766403607501696020100370000844622772587949923653930800472462266860654428913196957961919391237133293940952771854690847879877097113317067265418151491003084284646058286253056024506009141188992146567008920874886081472400082983842939271252171848852465562200173496022982832754152119969663414758134281254465555372155951567856520006894116570147186812506064689640423766177319411160207704860984501998378153753446069600909179359297567903965864816643644488330356278531375309239270817064668467202927537382955422606856918387577971540435137716542145708244455314149194055002670088277236056288809858365527332329564116771934891827896276579598058820956899920361497569579945405551710704675927733133899745462133945183311655833018667917373441881065523432088068558990293390386342883327940909520976687340295985383605400420359056567672798905202937094661421033515978123768839239701727478508891084215656794528810394349312684147238577719862816202550908061105037421137928782122396785934986158483255983448838026467585417173971397611580864331823940587918230086274906936927544970944529703217176644962733534630293012429542054162056073523618298695569298989419776193583663199962002608009656056361843420082222313520485194086717445579094318950504625928896690869215306447815323736002171713146190767499082744654015554726425693391025880158622431710516991378496684042024708464797357588114677982038278349817048870298454082683261755903265414001850700497059557651611113730326423562999686682623506769711492255865463438453242402575836363647677100651246116675329539656506099280141442628750192033275029245861645116801691088135764902846826440434238986731839526786239295705843092142271126862856008520492309033436039816298466126680770782234728053653193835807126904851683525945641661995119758255170119851538684883887882308117476542342937086754166103871194151628068334423440484865668903510720055993263992784297212192037227111637885064740352374186144989752351903320644271178269600108229993193101239415110001402316843979926278726766265929964716980859792739870756152620738431850594262176414835441712664781883882381198962365375943095587439370435539878660941186112084702274588659442905058420941244345722427253152175796263417662350320621817892784640009384009333959293806460875492003494064411633059463658412000567311667166108021269277881748862536079173935237291063112698841124512501625771071053614294531352932347969061740915306627981262218292893444288508650714951876925602990002337016035652659370713893364354847379236922385853243138036849572141387278146403916340640383518495757198423647460756585868885260070872594778625019127977783370136917806383553317569463401981956784202569306343088158776436796475124162595974183328948034269746105302392029453429814608172472402027158281343137157951997802827337813526062855469225194803161714913823616209793816766408750600727477178053372628486975815476972323103138076421072430164817214849275255379343492575094064877686405408486188519277367102547355116741650767238247834987568812160817767411911139159532193178149056042885556905917780900034082263931676561520957808920110065962156479085595965206893615314532142969571216419805183050059896747202463870795855714328601684361064868247232301554276276938823450387755894534188292249474234761372789658889806851000702031928489117972378098275183265154724802604732741132740895607464308820638541684227983388517681262668188032834177721924838405428222265567188438059313659838856169119842873381635662536920091479742116482101405796492682336102910315362625136356518543354988947013323415111107067520430292943674499132387651674483019569391030194495929026529424695783378267720845297839858946075484220364595215650408794150309527012464434445868657115924804990718328563805678682109835529284384026379214331721371443673341261674044001109538900191444726643266451645461467538788915154818360100231178784451234868142078357265349917684521087104088231666459030592651580096782144627678247559812272091499667130048795548337295319622195244539813748833539135729866859722223031833239467091121551282812610586342206551286057656409633744531204289622522835365243347211573587180930231190890954462657057739865792674222881771442139843551964967660710141981792068819897025158094049142712363263199513561097666948034781126918860130886116267794607275019153645092698814249720359928787031538044315359429099544618769907985146249197645799676743460241181231691452352497027945130353802037575312991198055021013477519675950728020440894157249029663165181384484797474170842410204084541718919912335410468915203617470622078746870292147899140584914216021441758069955524774730868753805284763669075510508409884731419756356496312028968477206953227112388016480021414028772764001627554165906012075553341188758874640942298209196416029211072033176612741873314694150001705684155088884445998491808392948243325056984331805492041955306156185474772750218698385928716990370331650402578733574512558600214921879007803102696330395229036298802792861981117979308058119937801183313850597601109042726304821868595880673348170068854432581959959847599833550422338471004560005020633710867356883323021112172149321903087380932223339477999635488088638871636867364058554157212639063491228900736873771179798543214248441777424328954957751918127417496232229453578542094946872958185256594943639190530838030390804794656685596678724022774650738668468231819220098745386551106678333218251429022800872177497786312663420513508763020633965786847181448621245059475382017289831052061904870814493689039838936011402691360674086697448352981692079095167119833227350632400938887623340983872005880230447513091167317431044493207961683603427041200194219818467708411516170335160653451122711998000828248819015202453349432463576462228076720506233212666862403448934916162965878164026105928413210093707421684323149822755264767009764800878112712058761380459637081563396928259027094729445685019717889965331354430209937577904860457794283217449968055571092428002367970977846327889221673406935574579699751886895735930967537912447053221388258858444878007939528166564327635961531814274373590367575171013017306072484169275509626899921390746420904006045491181413731754223581776294895511275793447045942267165621631875647549378698729651123908037780967594277363693499003253228792796251611054330719921585060503797555826704338960975475998542338190411519678910051075762579205828687188621272086438945950982922159414270137082958414024668162043822798714725034866299415176729089403262200569174938944417172900037806437637807315301988143873222786714892656275403009700180738144783493345516394743298898439263453127211789970239634936989785256815100486384014284157509411837510064953082854254334273818161933296963848418513162324421127629438677050019626033941890507433241675540802528686465507025568173371388051552510788083730742082702808098359938300796089884873608470165342420727498433573976202656697667403713771124731041264379392465744171320557310769832849359858591974758350751278734854900151120280972978101845308798147771825030464835163551185797391081742996243293387456197498260748817872580760396677182540985186291355760181816908188451022508212347188163693643201611256262079118974372116024891914045487289914211753589740858152287595621731671108002043002891830668272149531041005547725662168523337011998907086640379922663656247132002168292987454383669682332531754288871032361851209845102568685213314610468478847269995931218071013557130811693185535502746990962260569948181556710120086565306723732638915894691975308628038559888556120196151314154901898682211780750235731518778598927421155747581986833807347309145332106797805786228549013841761143290724457242310296206183745536745620987395854944381582100937184586058126937000890951056070817427049462746924720263865772099760721474228415649225835119259758810518487935499657730198360893355527455540982433899361986628849787598665532475754773611775516402026154770326252096967950276617197697993211967740184976797685260885963727323358198387890783970520794422398315656238291159911176517930035155791144771951513517112111200806549458464552590825563702970375846046576144331154564761022062182832416191391415308764897605405822628149059400755149355951569990141523669273558392210758570314967515805074961348527872976837460027900832015342907151013322924045839262259259905728286935568264018645752624957043127058029248222336143007378136913937979424766752194248074425471835512795571383637782648111070288173057760042576221310960113998121069762853363504230552240551494946090265143519828629037978241680687780491558525756832647664332794224160815616408796317928958501223252909855910310928145899846771630137562594369414120469485182320280592049026224186917287927635084732753850842767623366929555801673679548136068825381796636256429078746869856664792528484704597127974002633688624798215412866428868671481886885816416885009192223279806359653005723332522396863648552207549127023903368805960796001850365542777635827420778809907124391423947053765628085705774726217806115663113891974820992571889292890598067675918763723562592218883501778252295158492453716998972021169991820978338491266736857980515462269131821472988216295094378758253294879297235744747383317966391600045512765792511663203688392293382295447999886519078138728669869763408460167128115564727698573394278449012182908393474210705021855573480880791711052111184331706692939532674402436839121242209462634425199564487694847103369506421859564145111458752875157147944653597686011044141088049626630897069965014239920356401825669357654112804705448611046081822377460706890773341915911246344683313698704777480736027580676876176155297003805575722406497938351601773104438655462776088091662367573547835714749991953625140994937986573956057897655771851231621389394139621018123653352237071867180465386180493345861080564881675245649361418378691132553715267825863431696083941444957336407653068085440524523819153855682263754700675488992013827124417269234645814339386898832768538209362774711951631608681188254053609570293459690761771009754056319265041344362414414321117594795471672678812293776979655772699269688283170547306323472395981027934476470375703390503750366761475502266291305533098627052054281505357666731930150293848453620589191648411543726363616248520807806923161289719262550200321646224639508988055837947216460799619969684970807054889039282737362523170902487211314118639915495414115971768661967013720799571434379201509296515155244753549926640511292682320613099843956382505205807510108680333030097399212822151584199812187110689315988005428901219727748060364751982966560632196339289779221500074985551921208302612603689044118367094137717383143180020984925011230691732913148600269131707737989364441138089399741080084547342928789800606499282169939495213096375752321906024237308806883732547444491156284605312260697360401272854343505782733446525217462406143134382376977118701000753693548209248246578686579368159410620125741519620315463179740165579151254325937081153960991482022784220879530282950870407183384787691907533205227568542529072949941422056427365792446926964340895610209969194949354874753958849309644698695503563298771567435802495495940540375143556943156953273124698446988398988673901831379714564225267546619037388447350768452821274727859762557537215438852743110783175548793402624182837172398168643032870883504979088372177261796975497499776230089241359937943042482536779218489453807566681518550648025358073886028593033584656152265321388513401822090579016864370309054401786364581366990817126882354797648239064256595927633097381181223512173200013005209825288100604520446417529508061100064433815186820357110500864978320786177656287794646963003774714828883217002439963400042756099888320815481852917717938999780260326296512500953924390725570870329222714233027904834756970206994903205594607917999474044624626678034829447676019866358396005454482390161187732799420567117470036057159862204302041559051019043008545653251273913300235849870426177071499068880590578256740570949848772103759793896180124913005517954143198004190388230008065436940396186177257754422335259469589803377988867235122536431285843712486630667304292092333515783402632132397113729121185523114188788186841422909199234814565136450426533704823807532571095509229913577501233172338211710299297534718035844884937173834820957631842574334293554983429736151502809861463128822780422497170708957028026923781851223000674328732266469684572077669675752376160561377132701803706100918930086989926444942127693152339502738993729421499252636324146160095136292342185462632032749099829783178059413918252652922479119582430255377545278010784630956350904907939617154156602830198850703658863240481464531821248588578750252372146241666289576071836621015221151129772459941377802717619699146306241115897217203179814864772604822453653636247831898381505257078301876592290652207678345236299755340038589962762673239405392823414395408080062900299177718528236205172144950374491156977836505801499992287044348173702939795834810299574834136134750631454366746033244437583648487079980121987216299887647196553376134685913038166598698759024697723914205855505021334509450364765143038108776391490626567774484408220832560289473644099391730706791415453776794231640664169072809625102182174484237862629786873567235140138869074576216641657972845770619191905501819175991618992868502789056491357980375646320897001269437876848359266703168958068780654479671500332376293352972175222634089605682588651438077444058425411306613327654552494500240847881301904739714753718500158392202066253339141723519282681782992735298979650306869679945828239522706217050873451911714939504781604253040541333651057610724214582287964331439396665013418803388539514057649955307084622832665226324796114515248266310072343178716559612928395560297735603217322321780320748157458640334819577799654090344701137424104004201216480086986372476040686444032870680203704525691529581443740445995268664114053108506937933180654420686509112020469678689863428670070076765687820556414769607989174901033103743414573069117031282063676394999182964461082899643297184931013708168699326161568213769131418125735072965381772928696852976175776518663386509096338636762485594714696090613915780821921907248528963026738657224168210959932974346732595868179880021243403179717483982205560760239275553524892028644565042157601180189749114582860524047169654026134581355438150463245752260005676696299594940696762404765610120735103245366088390265799854077444392350119770132851878569035610305853028284065438760269549165837684045491330691595008911289088989077038220684969593426755514331765308009828665736996143054898795228584709919914448191826680805734474389718493408736809332763958852608485220086329129202071290439946939085885687563462566014638713911130424512050078967618284628812360469688019454478771498301054837277465169706346980204842609755822891248187348924476053399399475338900051544544970524244012009919619953102215518930447960790603099602548959811663554093523380608763616021771243519059990435522410625053634759811974907382507266265401264708199730444466443497780362098226201988599346033674395591510996807845149407155675813813022237493675248344948266861482428207269711655168749068077495940191301507223722833317455510120768438360347459187298679811845833451650548093239961154473172302962279359585661288068945294161697597460827790198473242666026176157880776801316556611242680558461572269498998049796586295597090303787280289191474927164726723746389927950663786984130802999723313921458621466083372445383343656274294428104368512556062122441125613246369696881922533631352957216479184763181706677669331825860679816500196391723750249742875287805404602675313165424787985415250417214310859834950390165343297421873438718351426237268295644547661957132332896173666491882975467255200560033733289109304232608352567290918004911376686431702911355948552361960108311330864175052541820089904186184326551767469931410235903827377736369918291311195677234947322408429028645984422859463297696130367485670200500731071723783072285267694677053723222780087378325330061902914464069100994497748453280580327634794146142007339790377533467387712660947296110461182807090240201718951972093873488772346176086756833568667142727199330723902405432660130993540053095999849436572338302944736254967955260318363813770093706805070325680923761882482935483549959542901347986430638003074889473898984109738549531841040921676985520006001755121874972581800514765210207529750218889722133480901512837092159350686060700314866838973461383136324636165675375635995886773978938202693356414631351811959990076069513979436469948988362711956520609495772375556179410512172813054971080209264280005607975895610596966346239756989329844238720427211304614359506840443141609823602587945025557717973080603927899649897679796337356448984531323209921200364724667412813999159546493369869992498768361800767007821524179290083261563737006307650982819704923776979979074047430826274989752336590299246664533999293011312400551318127195341119275809945097049565667824847337814538008930761891057031106841666434273328897264643727787656518549073536645737994133693694851227734904913538762176132833456259589665196317717050683481128568352651089510057878052519461810279702525970997528848835620236193149807724312371931080053687311464135884402118021608787057263861717801865583531362792549249900878595839089762894017929485611896284623617148771361343781225373484309878626670476510986045540479831053277853246868022854988994624513638244182022546163580471261345034392811748516303170055150468581612974809145088990885311866828348893346569279465729356372929648391052953888994875728372225191992645269312545096486982213611665996561236462138745132598311639559924441292098780430170712280708141741950858421609565334724824556514433085088650695124004418959074518192874125478776155675814822002400414237611107444813457139165779876018910404588847742510955214643275511354359030481926902646788276850163061859747962937228854582932563194282467895669343339020666854160887588906915418946634193656819023386514277124334652273879198909076271398583473917312979368883035581119435909952028571909434858609048180257434178451703832891423047639255255956669878604426660805832639896007428338887709143221837655399820837326523609934962745161112704389437781484187087352778485297365249118167976019175127992907773861931169240107763864878099551628736522527137145675459551076895743823696236235817625125348053797322535552638938301399341703344030518592494997100796440673879750476093235113593399586502947397690815354513570788748770029277460438586073829600985603391066035234418916185182458095121906761411377383315455262186084023543058163620145168569128441535924571227511892914044610469580267397819747561787612063235630594629235019303351695803588378340611385630599134895298485265761809273904700772647148367873151046280588257316286428156896410454711321199172563686258717525489375476377599579406658964858401667879585896888265847925978283533753683764635901116774573148312059929775639297418401297979334107150757767119260663928950595568488029456375671933535248504612520143684209389236734061925129394304996192278270188802628945157771623074125094546103842843977953354334854614017037947334813981479499462140079267866547660153559122328674956105939234093658572870689320006628325063573450396748252201722154930864582327092357320697595975222498739905007431257934434903054826241293127595667684369003193647575313557457437950973112095548871951407497832635027121493304481204445571312297053101206656591942280860129402642798298802023744393423829736512809866398479642045081068576764440888888253358471037605402254310260382157821754779388337920148856096685357701260509126081299903682570488739883787911996852250958823720750796460737899104771768092985102035113724622707932029832290008410382162958421473288494947957254535638937182353947789276060911292971733638953644936547956621601395037005711413714992993660157682131625922749078210713883397198576448862312309900422960957783285113574175079300872749967838895638984602788244172394125679529142215663074335664252468058876603656090796994547593413151077980604110984791432420175588357785690077060844339669276974336623896384618653570052836669726061081514968026382965388832105286574961285736789985169679612062836487714044624804736353947574761758329617861836305593974622372916762961226647766268657499829621954140808157138333181360810360321235109281110969656200096133671559516014593068557295788256513550149790100844582791221835758810847368787820286913012449844211578979594384613888032637500894602511261651840281254565945515316462098255930223857316803458221155775722405057061143805982784044719457614407440824492563639451325119099308177114676004307703783662321517802785535531874682839825571879156319646477050317736917492335819534772306161059122135863721940058115942362158945038748837130003232569517033089239184154167584168886021643447157712486686486093027837311588249100620383567651096210899949747198427192589862104397774933201747683642683940907263032904996683692735587119050257306353652186637159668022933214642004069007030647266841053240220948136766364721956610493425700572796946702909458619301532004864312847476578614020750922680037660765679347349474391481201492483781400344455934134908045500908528281389107187417251880267379807410283057365018103458677656153612346574116826569465650226120638523195124946145780999282904793955403930181669265710376153871674599178687560138595517631601401401976333174213400774491790434210739640474318704949133659713278020243315570502472418593659437265587190860935734856039681684292416342505939982831039089906443981249922566515190327053870397961720544853294101542235134467637993442654813856285776541716202923060874271112228805092508319489071474254797599885906527303731183381952917459318155319474323742242018866324126550216788248816310353752764886453210269161709452748603528771205462633882813079548124072014074365127009893058437860835363661668943902378227168246571588555406999913993473895168160207535490987324279487266909385760057806870833284187026444583174269815883571632783741939403856424138399328248486647861580756429795057940498736671462346936389641349816012183294192367321564732615916156954480393011258697649965656957952444899843230128566458559902693591311732499746729629135053033400747505807174983213470171293543263777840580614641242351889899935094746920649329206448464408478725510047840268995418883216986427475300831768960857560385381926974339240858522998710610421849306784049235420682713817609211764620844762901586683507134951157652534222944450061118395192490482788420359101657574913140208034237812737937295373130286288455160335709158367537751311979817680483654208172313881974688590964168310764524770096142029167707894043278133635153817915452172847647536532040765067438159365247694062917994798741690315599881692922470492248268195188628298111410818050727624355444986208468851318952079132458522331809945740679875789284863595302968007820354761796266863418888068545682576687066676165600399837016390067120116334384547790405514731574528306533345822990340508943774897622589843023042093396782749584488413671836099791505263785626167298991005270017214983259175638378937098953124778444742886865730071885683548192922061786293956661864494224833865037620387262945534263363646920073532377792222360585406387723969622429228652298250262254598918463714851625971913866767574230143450346400918379728770592896491044481779112570236185976561636386919367029702792962340214940202626707301608049256499885340887609688342054440001376437187045872625388981680383275484849021321914680823414690905961659917992935803093837295503359170561474986071118686510971356434544036735135363856698691565396690510145793270257105872372877801877146630590933433247134060779274710670849968110358225204701869988889732746702679179285648125569494429108103413724289275575156181995488534171708116122018451050012470910905900250844452303210697120566709584466471976392248192989383446734507332179060715163908124585787809067525419067248874038142230578878793317575593914676471479947324106128277779491005167226406594707533530072721752941451861590004938112473459692431016514544455251840341925615367513813721783739512110664305372754755736130931632930625359434522698330125190099827322060321893606709646138434319630016344430765129763759706038339976266558600888237936521588312799895128069000943466775416720466025275624062764304848914058753075362844153526887555651130266677538537441664996572678447737503980057041618709684668877535752509425845041316105445774574864137854674954714060293208030269265216567232077566037866071510130673240564024926793707785250263660041143656212530855243084993019699329857371106863270193054971082756905786546359539147531983353953510548785905963843823853564828065271413186535077304222744295547742510956678131621191145782213585055570166560362716900295880265716006932260491882263640707444282011540583087419921201889956842693346896352669540518150765354752143140574771644703226130466476887952863745359090141169666954977090080214419944554274750462893681165266911668074977531439680230368574889524668284384777588841478174600685351051076836289174074236837552147969856093554963210086481559174672240765032192565070634849115042884317995956937844984980805730705991653276978605380060006931013914025864565758596836580227177923480543113897447459213082512492826138566222272877892097670197606341343476913092317207361444302681325968458357088302211287800396684521918342420439348614695124112402070740242008041024831277894249751799244356420081495865993430651937767548796144798497311445825178043106563674672712787303217446611089730538148197593439388656860473096419793022674022220878346442221461657253511609195296467230852592529263061898510498068022377670266580829321275919527598243118961575148920056162764206193358592426600105808371706508110752295327423893544479998273405040702763089817236990567219462441424300258985774440268049365765861546514279203504813419456529033550483919842153131400077387575263034730510898502941164113659192513837643884585695487394910386324716295704469555496816632931422962729746485289571305796855219553336233644630211419102661436148627657584786535878361103983410780491890079932079274691775562568762664401138726820001056331661675651424339140898618480328313009906281920964986827686062447271278650559516478441602213528070627624699137227098988156693288449933192561445128274890383672711195499161240051221771017743607303857613481984831088267736518123162095944598488071022060629153216386356663013606870309609148834708709583427663395621324044037412361101855614021752710511651484144975376289685926927286851388743261622123616521843587491279999410428346017747467896081506896040628030610621591008125923329096669365725761563117423119090102134252915057486357015893916006423673690233920940974282861768175728880179388701377279716395556464165324824214628245662001637636136522428831442345825336663818545534940153082384074902653916883910337223157098031875219470149573053075122345568142134197436116852162709799733136562905775264096399271452904117254653425362286652239001020080688776197361972664188285556007847768616418460819963641051855545046433891959193673131361726351147203719162193580056583341482852867606461678569631053915701518952867460233309410242809807523349020319718663071749967842383920393935618567449419349584274470376358135473585533622472476502643078421578656265144380237213756512641181542041638324723803677902155260097289683648300555386508169186987304447815201763600573474393110087280022755695061561709137904113685667609005758374804804545975607339711644513169145203596191202214115418689263949589858464922490866477702533519022796904479059490977728513545040396697364693636946337258943455469992023194623944676213825073019695779720555440890372865533872981261001766844269862578479537663010394054643733696003113121344568490513949766923443429398698164378909829494869589624013965864539540605967466265148805075015809406476913628451829476515671752280196157746649485377625657786886476202099381939943561629838136207907048461830705857366750857593151314742520492211500344841465986828395674355526495641801175047565535725501248849610893038380377354059525026087811098960842773207329237176035083175357024248930162280334722323378387047833497127960171820212456155705721948547059453796780238382821612230457287294930079641055353574934511810976490898498327825006466544184023256984843262724510197423840404695295480209754252802143882581353715596295220602652433727861412876655967482813514701952100956605093988348253673596465468331713011220601367458168057681642336142744857659206060107879146172287989637462607595585822202986086721386221166030282424543314168451829881512345043919453149864125154068823622947129236604711830817909265676585020548198729678264695459678535604254068386285803436100219108927681201775915639959506661191382852111196359687851790646528208430655332483036518284669321050281898831080296873950067075496635856333084349461038319135763653815612293036532991025993120687126034644376347018171370940294448800960216315617503565277366374795563247528551223273134279478150002383466815977370049030536693442958461849149658457137934038317687020344072169420683183089794171908196135577814482907343899918311344490845389341825595935328863336236580176901033853692043717809753348436574123174018957661708086518980829522540512891621664334057446498753169801922656090836116905170195313163680949092318118870547834447209957269903385353446045899081103470166503184578899948910543329570932174349049952463284978539807561488413228037246984813315357376651504219154964908669273820519311148407958419331490876769937136337165283306787373191600675505577854864446302329161946716130088696087476420722881577062618877589211858047063600536820980839719861488666357309879509556887306393388473511503792875793102942369553451861585343133863356383783328476961413722972595287512434826210765218468647029206949969015411407439711191164647240657087026929940204270143886255667128345242995135693869024665324017106527639412608937584457021551055238415419349692669652235242951610615108017347934933651388564928125058158611032967718384108875819874615682970295123685563988871579943364683303494173575135590488820362191579900732683691211281510078008027278205445643677298377707273562211003411117876832248522136142045242222271134256164513692647916347678887566395516983636745495395496360309119674045170545390633256871543166041786537814235177236580945279467732988909677485540982179557426563768628643431588771733735685975160248329293138077703235235353652467585445895221332880294731060944269773376021861418781726864300615559980490214385650785933542780969507167734816597229295324484375528595241954191584599454942802398676005407561054635376456728050791694631693889240617468644865067745409809322036109964813372571398401639445774095415270427740345747960212578797911225813175161234652313992196669930454603461607188342703046974830941333396628998880417405851543810862474017609110680924130593253576373287452906845830957024285289371526896566935811627440229624280588563464910966359383308951604056117874065005964186597006757241192990699345218146701595267962296578585055548774165739108452771144203318128714767185913473352433664342713052494412135820640846381864577725318436175079951265811459155324498265964915887386552251065726700372497982223744936095005790940997823073814266317357185774315024892925317403566769419185734094499223421695651174994190877450900221644996940498354491079102835480931973919227654300279479487259496711956000364037155893431746036047070064990674414216463641097934981514915472817804596957010048634549746304764558193049663750211339919970983023976704309173888783374956381659222531031420816914606387006350247796461250368521649349894978000544586365664633300758365787100255412241957653712588351545660523509804907006277200447135449832172900144326831773086408543999106766538194596100085887435149889905036223163282830648953241290398940458072406588949329799477258897052383027883255066644836429544146201305860678873451701065068652654119455574736425314449981199486930767072502486347025022070267245844276351997123603434202834225580933621757773642929991110227171541737583742068496154660146682827521138430669907075712355617750905985382408165212036397288153031336373456554741108905037100549118895313920476507090957403435853622023169787039663177384753509509934820352721969330344978085137050298447159925725753973546338783449944956014184639833741882284290004538233501176580126328317505557748878235847082996050756457310297427340633749618409973608070660621525036743760039840380739627236707684705241052227302084256399485774499376377635167723576539537368757223443658975446040740814710546740435128976979598730170681780196114977345229366269299784479213482181207469775330872831709790982045230065895696330521973975352573772846298353624401227099699534178569973972235985490511463930032437169050901522029916510197692118770762908194089448700123663003663351872695669433277947895064429737488159176671160264303921087648703043838636595574503006085025700489564302475552833472359461714407845129009709244474033158222843587994943679787530679402510883691972627502997417802569516939802584284817175334037718066367050168095232374397050216658644034275213749646132660880453329049806400160665640316217541444440414667331207097761371174529563867928135236503484753249020827295266561282526048320800846297857353564019958352964251867638071498104604335785916756342363999028694319831169386545332190544900473346583726783931497865420191960699908646690857717570969494870747822163239742574588835035983678376478202451249054947435976553404716999838700932237386244411804848782266544639595293039782549432802554728903683711959562055578742034479290649307863432103648514114292680903985236992040022222392994317908951168991347581765009256650035821160472587781597913616516805027017329028234907462458653959552334212251267181139144120010300360753669037009488131602626937875959737881614483521110301464959477413499475734761605830080999358110817332863062253079259400768723324365896910588856203271883997511132208036270982153150158584759311815091932878415627515698263908714709934643334696846035345612929844402475438048128727568195629753629906245420811251360224423420361502135449123556062888154825644657582214988164489077712455254417158938259286734060135040400148739094124592170876098370647995583416886438950590366955624019663783521501144211324659258988945013859280333570041257613489954108428273241772061609707551177211261177230928938448373725032773266019113086471979173430436983778539979793429909801814738771861929377906931151696460610766973269415518836841945493452242918102176868885209186179589466783819440545461255712319575112837214564511999970519749485328723155855966809031253954319607732163331724421397228847632018372538525427745597993717539962035568443023527152610980596018395866866284545792516403843462026492619210466412238080791277926209886095633664445494562911967236144571094667411152188336994190134346945255893188848079722747623481448314146928684008035329057508598937061055617361785860246089866959579107984783564643510522759715685304999192508988780224276517865434905068304888974630577300287301460857447410835018790123679939748921657203573780601040016331827250394775714321166816773173974986450939189161055981106080940187629500294261616944930943757682252572033751880012744397800735238498124245043562569266481140888053260918659351481578345031623525606415945429315318659725602867203003532434334120681015310662988242242527430998764473862504075384751524652380607387953949533615540417100137642657700144911373990005712787236850821763095873613709813517631721234862076173751686767911784727818335282589786370280573650834448354718177571294179531887738966073337802153795940071886257826873692362875890618273557938246273853031093994064179431806001924068873741236836251736402683380172344975134264078277644494390045121358297904548105750746683641813919000952533427378115137372781184010428687813015580556995286209024155797088832202386903700619488918247157498705550279670610348511927721309231521113001722843966217993138635615811660968752019378125605277942458182280784915441656940207302459382824038064152490097683236110712550134351884670871332226172708434752749275617070254932314896916820103314053652668474286300796620621919339738991343585009273329927069678272926406036674357047999723764437895282979381393184621296900982307238490064826223463900926907940828927142180022326487460542494887270649956636888403893014426490866294677325059667070759544819452169686453305582758590016816977769283813164714308641891522149794967138793699639389358601626686146588223615536680777468104875538037505314963400496834737651118738275602555817322443892347025577046720991182712642845544144290032866388732879070841239971973459438575945822649502611185039329186447884934596665401528389763546898162331130616222139197535772655318482175748304466639790865777277045249302668678714966580034046296968695570517049660750066563840441801652242157796175521933114212868430492399741355706134839945115527072103602540694389474699340649620378861415247012538698052073047641440077276626315873173065729918620276239763126802264256553387681560058530319889204194537226485434443327735998345352619923993337201334311800787283427800882341265889546384912049109357829606978465600604895757502603536590674369674483828024530562277354553643944382837406999926811392893541018887965315848304519488655845311876433473937316614681539735399894503458668394481313734321937658109777895234716882262205531983840637238097783284592099914368557176561127239389957158928139464583264034694449726502064454584746728702889012982797421060450921446136208343602831569707890650101525563863870080065519889385564466425126767639963654208844104321543708987701889601057535410959036090757269895836754283426179301580525446980426050203538560456461820014355950849656388908953757294120020978546328626065668968145209509115344944442253995807419606263022012611009421607252038824658041305398971283599086678151257895695689439499114970959968532736512658742240026606577351500497525511116346188919861280457228238209729898689266677167085813622984902533510496895837091017882959582336918151275820138800909012341153846922570318997330634043998759985234306935575287746834045669633093937800857545311983704422602773849310316918057720579305091578423107777464707986925954638447774701444183850326153232887650916727231157413158938369506273320439665135250016218137361584334845683003332159063291191948695787478842093484689702910374327147181072868670900954794943999711838849867499290916902465794779840581279503375023652144973804239662891574431924633355845569623445594605049085821001884797846431870246717078548500084947336317435248867810935740114170527830516751698964802124218333076502502674668630215665724472485118355671961831825011222114121127120850438021713206710430766707481196467932020279553214101517989867778654726917375929562097879620853098445960649966259118538810125793682945952988492881157016031746631740547036023517662919665207308236882331844185270156901244393029277629483811316577370563399076157992956997438923294502137004017154253723582112731657565544354668708933060465496818840441023025614409362688419504459866312631913224315372435685802151549367851564895023085351548234798585871084644391577517158732823407656786421036685202818574471430220565757877454073539243409636878800529908278908791332253523815269320851323694789426688316202871640510586249927568421038795555792946405244098127438047068716090811555835737740739031047388268557729806071151658455236293842616652793961241400862285554093627240581284276839632732146708759644419185498996120652558164749244507047131767031653136064567161831554838056993033566776703493415252702181245093901372685202174949915389668361132779843860018454410649468107930564304339926018324445615215060911793865826885712388391099894687050241893186508359428341989295617247680609444670112495927466700889619611455914065194946279515516102575399377507740222997195007024411198258066801123467023358105692016052491735537668311224432759963875519224892602603283430173407748922224369320032518683581931833760583130215042755071862372020687909574979739790698458060541955892663812505365783765353796250611898518487042740880840313384034491001028118839602083671166950084980338597831532215916724021774024898626059775142328338598165258376695250729398727726119108581725584576963148488091334477938911596528917148804565129590371122662571826108313386098130251362437090083729567800409954141926141234761869451119269704093996190149105795782904301535495062436992923017764567255723736064827992150986899364190163971190354924249035005089759021763385445955393707227455192994882998070899442148467775550517722519753173631656756221073348022533375902789164461898629762805082510365861692212357986581501538029762424734441888910046451156794085027130328617500891959225666352284358761089754738282236377137886746174082334409892047082798860832161420675257587711710585160078697155371990948478893503142943361884327690061661325097082057505045954569168781596789793194174246671129173243844207895662360213163298159002549047938081727226966912970535309416179913737563365898888125386113432029914615924944226187799911805938360468370960004879023653558353009628986850170559640446004345631781218228582376254237026650224403945772012748235197171587627530267128133691766201765700154955846417998290874510144059336689454335828849195799232569592260730785220631321265139488533132800981942167103272364061592890063231803447179969313204746329262311362766999868453590526174363675900278635849058908740429392171566627670196181283104776304102335944922502438211150544650217964017845039114127544625210780605279823811814152680097312747636292726425377925987026765970611131908919407451966708050977457409618348844379576448843017827042696166365573878028567984548465999838803658013788931762477188284118921485777475349797330538427965513581371095934820545083441418279909260145995016172084105117195337873386697562244523693448089656087974134636981805935037405501466339932715417465053192895554567926787627116231781949849082616736701374179633142893896869605179362525316492608847838757058803505578432941305071485558815995776677361537010770977516319762088191538280157052381234879296476591064829325625015212523722792255632675039398392772862642547458096937696292141565422673641103906127351810851956295783837968433700243051175231312155844601932921046097161937007756369963911819304507523320165435278145787306409997815848567450687084524667593687308676245250237278297932504318871489926521386834351787447291995619876937122788411633103388370012739573350654334646983279636936486714848535974742696729319992763115821659594837911914848397864740555655233497579805185523892338248954723318459751657215407443454107974191233936741803452635135292411711565833930246035770372682856618829973797140930376153408430403957223644540104591931192633224571214931223827693825992365663743098041200183110365921798366945847337820927088984214774225553974860343422977480603891213473925940091733868928309755359910552025257921869137832893810463339884727841529681525845153701956955065649563583530683743712922053733918405058155086429404239059052099422880304249804471416924033957528097254022830390805375570674764609128585195830762414911178413786978952386395133963924190563430060656446261126026418843582480792269738320310488888252529740497794081203533917510260000189304549941451339782084679932814721514214730508779071162708876985008414105591592576015375014101076834964583306188847347931674072204602656841081658432202220720207214547896186285028930794128760974752063112479955196934616929370259134949360675804888536410628656053493937822484204649304449066159572778694492427896239406220536644632877705201715120657372269493955853147872188699100871920848181494446596940183493961287239262239235449334203427055763662728055577533586275446397430508207127984630766264263728075143360034996221694500876351879251524030733181496887066309475986168003118737861273385066393198476907739386677478560213001330172730152736823883954531511040980055578412134382897892394386288082013063804152641243716464442692844978587286047934136828610347743634659690240456533544379484448330178244075165598846968723515498194716039342582769287942783924642392976725635961341182116197242021019974199946717865200852960818440433640846927569453810975005149254552875583889839059890892306706252052377361873539549202106475528258069758748392128251744274247605089126859953927315974161545238154537015109565475619101215265510961113242419001643241308393241926929287511226173737784472110335286707629592147127382438076931715373614531212258588483493939150362963810570803156717999104723512067315912368732115302014196666690285817555884603693941938458684224434474676223795133116526716493852187203777353274194513222663814051958404940217973458814580660028802993674615028633336349673968428523020672362009340561253428575680913602270086669145420248887461337535025981712593650468395496105472618962841847984845188250983146324904442701208792522243938558225169079807404752309450754580462456842531781089996222473792583021665963783526185931380280354678067770221920263636703990431156823418567862493538781604325457037641336820348929172317980622558415914099705056068846916001601339616667379742068358016253880905760301212679295145053775152770773336545461798853814231063643874647199290416229797732173505433692578865117798202435156198774185251422432152101740669211788693058510021132711697860755279106553456952957725855420960816876945252308189443206680326377664621351287985968756306010271100645369374311532996968059294382282385544860526241230053211073640070383803279519693533050798434490180694121164691991878916099397679422990619903648712821557240377854858203796995543163159428348271283772510637399791758218406881732368493814413208413067218544236179011349805009183801631467645528551629805771546723273733353403001991132648565366228751606548597755769675730741691512404765437388639577782150867521648761241807695573720860687950933390791565350852760523002954240772666297288725287426216838521981804029786153556163737348630794213529179324157217150880546521186636289162175895097342212646983546347562868545063511905114080483119570975500494692060982119146395000698752911286131276042461948978755642140256542529465546021631933362607660380835125453049704271408666120110826174211193769570546071790501024198249869445079485966150559652679780541994606302718641145465110746236485650219049423915574720446973573252917073065711245803920717334754605565826575870188615833000644599593619369845352811811456113990886055502038791775260539717536186161146925994279058216314929667817013158308155960847042012216470057465601099769684123072486114743989082272150602557202511569749988411497095287069779616812190836079809022824589034412980296767111246422587242501286144267474841538765748689202372600959920207604064584052306906905734305040773747341647894484834495303875344346671900152068420417344015935381515810138985460064640050063289071084208733558148769500603328340009336216509557470868826510023224673746570677951439495309233553776892239695832297266350249000849061246325753411866508438864852298954982036606225281348728896788844395072148280594537669332594416386142259597395244391117979098669293363158711134705945105363133749198954652152606754759936353441212684817350647710442611751242785287779333161029936789178200156750731694755022701968235944639433441506410080944135766630104697358991048700779906695047786126714163318002538849164092610069295618940221000216307191306938830824007958952130515909564716515786295152779627107926745176580192037250332087427588828788704324741973372586936732200617297071938988935250813215208773195290089923484537913379469119210351294643319213453099216896397106330295684966596699521322048145550075821123121173827079831992243779703482089700594726288377295519788063687612166288304413033832340823801758846045201666036583999343986501862659802133642707536664118916317609717219794100356999903662935166257806487577749675720477392834852833573929271920391708701024917308590649808777464517031120732683426444524085713153694980093531322889677532711924478314676132049188520734611821966035377100828116711663021925430901915885706464431690988317621722070603581001948637600152698188100931377949645331805341020697078207358070686054330384204860462420613704362155644718736018113396869231627536024451401977491820444736144517300388943310434639230581205729131145774450794582098222502710587261361773348442143842652376156420371279933452141661011627921418720265486146301675810587516200647984487555793746967486788538542816540616829711525987677506633445137641342207352712236165318535617073225897143318406982218182372874208585474132074491203378715228522213830529975491233496835567025349665964810921775917918806679341107672266379697942677152463036248989905927755168406376088866744906475044590459040662431737686969980885517623594354874995061300779780186167267363575501337389051263457420090906064222836114719867042689570555239309084575679808111637881640611890903558611028625082818019929343238371610788535135808297200064479559218436104903865187063109293243499128846141705482324247353480743204557461921707010505528511055593297275076978021822090356692272815231031101696614600182284486706772517991309769672029941252015989725260574511727213424983701911035314552405796371441510386850724381935615671095497048566501316409905223486412694548148374722605407804923759342175812553102457177329391512521397247014174470747159859751236036848428723797240904627410853582153102843501924612181892248273983668931357133910373749499269564801136432957487824265782997754641488708050726732341571444772340076726095706344295577549284269841914620722791120781427346976562885425956388268477246138483346915484707269891504919448477397277784023443944257674432015121884916659448899256967497617960743311061485043624961079079529314276357693995697984381553502903013591147786407364158586159967886474689680423427689785733246411187871025510168640650287778757789301407789220982971560006925078541272841670906726685582551616487280624951625336566467858053328107628146619723468158327625667415132665047895800116037378620642544293399952469728866090105278125369868013169411006873516592572241540529391646356432697592036827989888626825591866581500706438969737022208365850886921394715475519585648930286279937284701737034089568403831165300763407662093200643777950205246849804303192751450990846697650521196804214768055921319630972938713167383853927133686153551323610769705330722328187731458147660326397859607955761839663320729152162072027419498717846224062906339651095264610052227551273479364415647541264989768658703183414649672469282562088925743933770695489301523877456271915556626660146519972807177587749058358516919486689067111574050929763715638267349366182562760061874223008235870697851634792608353235420951341246422984512585477454637770892588259874590502163926693440229155251174842490373470710579736464056438343770414387489960306966397778594252305625394023637038375463880361369894505986887698039140163617291704558550889462663566100710082366675872602968057257704659852577495548196976852915664481229496310709044678650869148513086551057187348609197135318906546024347858475966970876245422090279095486031974194243071775063186195853205542405085032509392101829444927020857641563915657856960311552778610864276915044165025935256029096045179791851371697984666969857332776795914806150547750577686285939913436395485659285995358307051357412808676097815957583099712994329261887084078965780640933302365312824773445299283638004993318234014269846887861356038186207424715959083140501989889869859526512380576791659198223872531688062658160169025881636599016059282727471204829077764262968912406139849717238210625900686691544270240355090416882880348887454687061481634707577404384915977552842043405180771365746820080118021414887940192572888597078677709364421207898676741546125813346868566948572252758774397170394767239607270984616847461167333908311471428826207168466959798223939067388317623872115800134365582074702346257892425106906362569570145242663239283257339669554457346526482591443180376188260180044209694495186270919526908132379245733594465677588816353208090232052286478302264129986856620563909806871444410660260377130645952445158189501978110886636850601245948685225486797298476106510539797621373985949383031850194976517996389380689657807068237823215640300701148597350782239262682449590663167230150591366446436526967035761443472812161776406116531257230166966900139594948334188084798975558005732657565822807199055272084785175478048883101085051828836304436228613780935569842385302937072733304570029583617925363971905875462494124659502065104843117852590132335883942677148994494249116759010500520893371418785160400964358131472680050157340570649136708940175862254019383077094662568996546533931147718889400816364953995704465498213028731894619827092573805319709624187794667953024503833123480959494571132378633236022250348017329370295560895811447855033484026717752641646310398769041275172190402390297432672561695994728535776824701273373743905646003041077334669445747836733899646953930151665652592326191135274568274915643370088053344422151319859893039313946651228429004457063137832074067889100169744192313037233632361763000748829081362214301747670950664122983405749723925268091609368552350538165213849384660704339178613841533084391095294923872840300129946453722875917297524630618503351539349905285215009596427608330111075584296773376519821810626439489180720436220247138944992030967347193230061083469807057828823762038412041021989107796514957583414356037793094804869856852934037607929232077586887058770277922574086169581924091858596454026763272103865243594962922035794522593055596881063647038676873226969610537978855374943432610371510698393070857526754974950488410040827467175194874933573881637189847156357113439077234107406599561005464598165257557336246257781099666825470175176885401265492223781294025686264755744232546007315648936637212680885514251280572911032975845080409852846618332608726052021320956802781894464258326925237412523508237711426087370142313038596295797105284761117786601348667045934295365821788915003712498998667829587540691935983251557434027675938886107209227121611996638141348615507547079860360403148240036748787543388790397022133177480143670557542436022442202180750005534572314006015165013657467288176738680516687145142912166382296689602254950509241861643495756192639442969404115597875925198521254083259667272217939519656356721341688111719052411996865829102258608649380325353137662130213215006185994292633893394671800783465893129190317228809627908896032294720083859666428611329098110073618630135995887226440732539218757818206541907160537039509827373050238188424050253767548478503544131068379400548383432426843137050882931141783867275422287360248292299409054997535189214237902110289388419704673320331447219459890199697209018617872293731914943336933523284836327586243915494268684204124629574264913835439460434057244639596659353635611009094065816901304048922388068393913470869223447586447545483135224335089626356836631731475054895206557775330753168944534798805875079227983459482335776261763730032284521284831521408563165757949120711769775706443457007097936844876014250417131601136248514523015382140765043583427127467379133277332133141749034885569785054465342780693470885871083914622406093294814259784142736470007159450136178468455264677287243754377911207567832301916446786813594099566796731266398571700456513521963058539675941133831942398382784657415392472345799045501834724865694467941442008730142054993210095564436318402788680255370772267839875746760866761003595562474399643707019620923316028781462731556252497064313516310057637246250110121341711080624127365906654007729891596536491445416962316588008619866833669402530795059170409662365811713061524407332049566477600581587725360335154412033864540552826183064480682414857000330794692985728524024720409463892596528236173112774462228276163564216688772119685455913069428959949657947230796327355031978534052340678629542719925148868329702880120834352624718301797890896572259833166745680607397236700094140048471749886988167381026113886793192417963893415176853806464777939686093846476377043623717224307204878477315428294412912899538079042506143882632821261751403490720817511971207092984680865233471878583960673307027320597253432484629437612216675808795021320391711267602993593287041883153115012444719316963393047993120371528652749186524321957826811237216792847720291204530441797512946391593243169741643686159796900960389020394049195524101534161259203008697123018031206980784864251263715868241501751320367798462360348522575894492238704830692582116138792161215780282187510834230029651334450029603594970185812764875192433788968823757197370508777864827787472059548467922860773263159063439889587641147512146039736831232423173342033300505384551759248416070184931125347322338708950118810310301837934671770069213727297973570870417265276052284494706685122927542894199467567171094939811574541692515430493346876639501607785770523367955036384228128499398331388738915107974612799004979269866329666805800701517280348951671012429689744162869903453544664913223772247370935379739701853207362108440836187709619102621563165312203603625377722470935951906133691132578569989294498543950856070959390348099862650847454338371729587612947163921381002787888864534653109142857624896291936981282197579667769343127894822282887019907957941369075148475201871206905852230990167444910117312475269598932051316171323253700443683608496858374340896873439880263785004658627846588290198444602910174969325451231681764496571669490691497464777354435817393318170844439448227830498382748410083750254195710493943736925239005058829709814085023076612747853535082087643946875494825532961537068722143531764471163495177071430053302670762291419087042247496750185754956532892632569786161865472727043409322489812654320482881498148055761257571722387892458046756401336473554760826367841034308111284015587467348712413951164530483395596216883747586376604017684214849502161354140906931846626222689664367337050563007251497877280509224113553631456481644742852299512354545513933956797926311419687737036639583538044886921410423639004461784773690709467489524043846469672449176184944514182001449143376512657303936078172836140746699690132285665156859744560756999907872917688057483161297803578283521566080097257196853822162145104114712861413983294542524307237538233683116043785115583032638051659093965531210168680368868558403088400244121242338967817899738913444051914308455931621557214376439061453749012967320145264098771557166320360245304057404504745140611747296429884420312885006739972215870810364360746354398203421521769875127820848539558555138232758665638450613522305683176802826586932097058775660475626719087553356480180407759402043229122489376668354285063084742868450348370459454926034411608179121762079909646351371094159270804136589584525044965283836425586924587651963052447021655265379271170487193442906875530583283858817116250622748549798363012371753723950815671929419176129759190689673859580968837342649328975610840788103984142084213370889995442838783140269875552741661340282674791018314254513895214821986705633122925889818588368228791174534184123131494620912535601025031839469616778072298062500524236654769017637929352675434221300527981603466539701879500808403239977685521921521225798257930127828160493048400449671753003299473181676282399687381452168775247009614778103948390507973423707316281700016580798353434966931720945062255721473372573562072929345480998417446580387259992824832616771088066622763690282468462868843007879996124888449378391996359864276431974882084777279714695191709275933149227694301851004818725381282358596168787199858771228781735183596572508385166085841244637751778281864584280660353179951262187712084103464153946810373756474834550976682532098987445528329999610923570813651127277085157922077294445951972623253564712311826156524577605266077996928911804045170162690561798255564769407143310552024167005102871257709009408713831742434364753213556904899668151065275296103573670282212877274063958954812004303258494624031493620479287441336533330918909446884195919598897526558800310171185805350012083013967496818922558066413060709491293768155642218509290601383661977493312011063447647537280864287199754555743776709471113798942107264482734268854180064573606808065988503791829454483517064654887828230094321553248250272904396065104094830880114617126731064978896214472089219653875334905980169165077927063791748543132547649493950382203832475021590829738127256857143563191259563458404587221932938147199768520031678500989717337891491886183578890192081945793775190898108977695724666164895674732587390715615659618810937537099296028712838416191405706662462490730176281705041288747539639521400785979085507537315986339374955300223392426428539544490296015617198267974412270993300482514510196499164547663293635178356123474918371003224981446962022017544533721565373564263439951666041356106350392858110991543413949287527876656886045662414594933912639735776776935609286279196400727228335012678741196779802617446771842276448493485156554722022727727738456140815889458033960162524318879824307432771409965737355134471689193070851214599105174110870763628437539830507911988300017974843228962023227407734283662730850634862828314600336224541614629388977330919808885039656923562142743952694595988753221512280788947636379748250507507943423442819780999777106002624050258888613444316556151556170654226866700560013276472167435769497817720454816724538124523363750709574006101304733358822660167886287681096627187866348365300812736291100584798535042077437099930118716207835453605636694827953245369216761723466952802640646759885287970253309578794838438292362992268783078164371778145143953376868684347191482089538558593414070281538318599308108143022074461556885226725083033092685885025559602685374401493034381345573559964695121624529127689702461816767450420091813067228794137807672534971934834688856566587101078317901631353483624273201532310502575302183921529248391311018800979194146626502383616832837360836650311601801177317689664855229697196309591619264885705228437801038224528420010448735457150566688049455053527594172894362913275403375875108193745855620456798398575662128562054724345233033722276862968838987218433581071703329702261061005069217748731640435773268914215453360311866968157127846132665368011450775442499534617715312570776387083913567332572882438099213873067649221326557612546183560563975443632557895498847819748171211728121085192322388876484699075985136915357207924757500194085711881271678282347044635581159618539124089729192494705742178908385069016765734113953069279521204339906427734673721171625844819152176894518416179949070970729286286966269359000839535980204370869157002037299731678611704224032133605971929603627347818976460005455243638061964948847925329741209582917288371112138670524260069466276859534304332755406176290511234930061045504217335903996992182304626960266317925901588683664596417258105851450844874936175866775778736886549794354029250903444165112686489441340679768819639413265257164525976506609858721974594125777768867850600333598642607931250654049051337159176383828529427662059842116739833299043463080945376222853954672190930709449157677840885339366174011934679085635010160906700126905817851743762021211223242269910013014755295948908472152536635685774581764274833226946567964125912216884017048043330555341048954726542971712979619537519327502380886284624508435362315118708211075139357465938710739148592585302922551897412584605883951184389761857057513712811058045597092869633924879187623407123157173528946871850201628389479415593657285800657781431427349556615547262124059666775297926041955291233309080023677886275150805247498387485974576703281310129856321077139681297074264448236511356764637471298388344675649854596489119009375462184626347099016818884304415120811810120679621110644209594842165993993559526354798488604824039859693943674277529991869013608961676309833923716303403984674936116864814141178848768133283909329759177864340769738638723021383069402788239714525626333633129073091510317619287359460292970458052693815440757048322290518952871496148752690807393565684797252787380713813162176804449315504015714868139292250879937354801105432078554374112002512883670535597783230101679457811336566729303052556594989917406831182051439049500414104197088459022194769422056693909649853829738715669754730886082308775540192475878711400420354773239216341007561284742769899692569023134947535114096367050876906348906113001006283486053738818761928315218157726703583802453120307555218856861647294071483680885607687936164735732009579910440078962937518834211977405870374094037569363348591671968587406185332874974946795880032661024646345036318080014211504097591512123208473839957335395483249568348428840310201014986289080603108500878916785163096254190331194073762640212926364664425774420021973210157269746892996757550906463115799407230467521402320509794377546550330142788035333276681097986725175087701613649631747057876686318413999588113814698291467058578392779564012313940886950722589479196895315163999028117210489501963699828340561113262241878670507369306397805315601718592472188413068835882261399922274491708504619384215398018499700745492741107101678826737048228690706163638786667637008651428622608285283993975991176706827290251563817416719253124589536853273516040219018784727488602479954237100583343992447213589544811063347006927497266162005414562687399099542134812297709118505135307845156125988804300135264315079189909191245249596873238711375624482186224895599131242532638664594971537104466812438456236702159760667269508793241678113294613146026275901060202501761563366228151108936521902829187327557573473952545787167698241950383092202192068319635371470368253390696041732989594316361994686324332986355873830099389324153769906546481119236142533016566405622052791963865372697384197712035153191371633847788860618373469957685485145241225189097018851662644812661718117410670579615691326541247928407671542928651182618853826512690860234259551941069781124862356959724404274144721923413895437700480428383225378797868609395223499200255095105901950224276352203388891086029360475073359974330518661172579865735150705904188974252908451421388547226562614921476285842278563522142089498295391779872810581350293413930326729802859011016566629061139170113923947880326557843151274470849510762487307385753899524199230919215634372826002369341505293525724828804456151550171353525960990616834415504189186531603793801572594438161113174526100771354914235773193262221177468010383683260200772263161699790457364752395275576317318459366347892567590451985018608136802606958037775142725517338612649392805210534642948846066874848193282469983817297042459044545111531405335408094059530940781241161811346068341380221737841933884318153204407586846209713683578048239925178860848656522352187842043992982159010034828605136263128783286514688811879563798514960384500469946006823586141295899056339025129869290288432871368862870792860513641808442661131755041573014676764549412995893797483465904904315449228637149144493800707285384884354387714848077986437589724408934816373372173268204680657203903286694037112723103708149247575450604330804585521065836696892506318032406811235766817132750009481245724927642957560458743072290701290250454534949981573073925214212209087998087166082126705049852610338497838646607359216359871619577351892708649155251545898718893395307538835968474888544175657321865069527600328761422714500187103260339958993880417906177845061010868684217947805955679437695210682667016311303157315347074428795902750691771202913468682084136381510539739571086834287676922166101852572371727027534130774188280506391945771476979326389871846160975856458821639252024368888175630704885497644622425492082157608980099407992988642563274533893650915754202827563928608141720189359862490631991456938980346124969609543091436932569258042403963832680632813905300538163429077106105878313396043936038745143357498036832369141997997423140694205894577315834922301836323302138632636054343740326586474996735047202633635545134643487636735275536661683770142175243689502290795376206955218036574674491649925960006420896920465838154022472389985933605547263260854049645239638658791076716300222800615863806009096412520559856676768627301533704867448894979014667465150688057386671694390238905169527535857791022331156305014644643781424709731467471011476554466512847096328159780056059792797105935152051321705735693126553129748726109824729629407165791203468248477628790690656441780660739772899517791614274862435784452162008479743430560906431193571350574327762486863928550033237628073782635680441822410278359873100244498187454144045596152671380614623369784581164294755387888924266201491135034394875679597006224024255275231810830692158538803759535290813357726965734892801376330068095285200113131571773834377022567582311391545329195542365741165761953343490443567239373759084942332456325728024620379611102974410304185755728458003380421969644384669953433973656811169443743123753709093062888088027652664499323062210774226203754937202340667626291961432741075551077987976290629029161652852922722459625452304509765476646232330204488239124751346566047807069601442344209645630355593708356308527901914093425136260912773935602282867891931887650646224193087317016180565806809497838353958007927500984706439599680107287603562316486444217228987883073963230880166235099509002916702489497933633259856149608606018258302681721662982078328966744158049256764435184063130058360119869094303593142440360173458813122120277108131663550843994307638725920013512990261119050825014554591409966758941914066683873765661488584117582320040857931896473800654129947332838312699181132624844068481946434035685827351841179554761394652652498836020933181158468259534168382104951354038034220759963869910210514806684093924715991944866597091633889586642563427804269523251636256948991099529322692257165339635850301690733518964832664634757650285055840070799173227797156522364493209133752898729458500768106942176373414781226064119302669645620655424357184481704885350488766342646076632210556309064799334499072409077471682131447258332115466805104917920597179863506899472406200374504301318342842154837267268606819030254119172040099950913806531173352312807482757919638178445049661702137964755357113320533405930348474163298464755053755872933925234856261077048821404050794940926086338401066366451587634186886763448575909626267983038390783443598918998707751624975894719332496760426956517636688124235941891664441430324319570889243180699162582371366585546955554701646815334430008203305570158940234662811927889859937664188341971265838818079128918247432748286677502948073812103412431697454102112757304352751399627490932793925529066335670455732494990715754651552840374345056255460355965919345628857599396439117508844294021029675000103760421746401739284227642064125721698794076857581171475788223979578879728286506577003664804798319628091734379171987429620645348334003741027372824986162962019286159562957359598612992046730261349108520726248968930605853971493076756515186723244833003538186105477841479736165651165087871381730491392212480105377821801063002887922563440218515520352718820525185098341721383639622164895018792351051165273547332123777514809999971605615504082377925610469306405187542013036914952742824516077829642519505545178464282836430502488155644032171811229490880874527397493232701696188096425668178880027046807884771533027576471007739627264566932868684631120589042095715264977200940965231129953059178889663100655304098078969413274219524360223114711365672276367479867289174204362513354186073651663115879844593247115745693400564248201836573401759859620860761557557488021719817232263270004836555761932291344451354285670268638167996817241003705273469715076430131543835313754170525555994060089769471830747538237566481234209211343720665874175631925593344388305479789093044194171473952730520650783175526257702446505944689943574378676340248405613804130574825560048364093103746892020960121030025178565714853502548984357263863984601787979956022294701540770573285767476856274812780338239780526631008914616824147082682125085129027430785535099290655632087094574818382082378955143674258573820412451994296793432321137153310488839561082288283063361789583702615082704959624714180254892914668425725901290676777834407038133436731563989571279043926108085593498662646537599362805628720232629703099422345067894109794414544673524041152010129053163535525613875678808719274493322486403372707806352042390629526458834078854677067090446787842941047296992353677268992387769079689645762673696288365660761023389654766799208279066805772667586714413212284548819166393893987075461193691263325869384016383101283620671071107155388128722068545059146058981139022361379196365693325706953935858893540047212994040103567783522347536024965693799902587793533812309260185024988009552442574308356723446270195994389553732996582916438565544174144641873676724206026518743556825551139494234081603994661324177312041373568583645804702648700674107115290702392477918881186517202404001179967101312565750222071171336569499153825730766537265683697219414616404085113298710083364947144014161169380853541361130990008647940811742325913382856720676763630757826395876644538033466610721821246952056909113985316062215479821852977387622089190594782137461539702746401142861326723510257755617690848710979438860157074028426216740792079275508113420065863767405403855226268974570044630091341741321715357324762480564097717313144867183440200888580481584087573284976317342985914137127704636815739865899690282960125249402916116981614546742594719826682307931073413363787305231022695761689712192169497704789430753297115242642073488062889155320303412401129408941885139771997806591730329980429671814893096104582519924835135846467488100741081271529343912586509013543782735227988972033254204637950493005171388321810051616221617405043387107160610520538352832006794020125093258255311413349910934265313318180673544706505717698617201868732825769351270694560388438246560045317468399609220594258854204289277507668395235852375459263580305341274465946393903156763491858703335391282100058566693192828825871988393968526904514388992630922839743493995689857971133370514235789595358930748350348321051290677351244055171200741781378977363979947530229560701799448432389761910908580405463840286508410470063522628990778498574224368385865366358686490948005464601840938313358858262935035341253685333604508449850967101665542541942310088357068758087745792928292087344449192883883496533960042705198095402165373071160823263921137520501069846322511627978451596228549831543440365937363364232054214309209193353634268452765503960856694370237585494308185012512379081076859844971171864965881842518852513363421761291355479353301635712607985982773101430579550654919886345142408935720953095324852798268055905250619692564660211584188330413605212656343039489873161390224235025453235776728814230541641053685835339719439299030519812260659322836960578772459679732511399335918755259059426232183512630910101635861540569420674239327627736446767415669256614188753208890303460862209150785962010867430783077002653055912668120009424059057304219512128555065581388359746905555394181684381764148135519574996327842711473143862469081440777175653165255713170783016179931077281874177302427022683266470985604454480392812204596487237382133775771749230298574609875314695210579563273261004276749559487615428747995944709465815937391127391026453113076111836758583712740497720317957939333437493579691501046797215329131087125633091663836408227224649647502507845396182298661157217724631941413462583017313275741651547547106370464678157190896867194153681610053811155311653358488025225423916531670141186170340551909534827284242229434816731936417564694446532222117296107271554268574287316251958072672361582281796503514264162248649983614890703197758549989375279681415610471517178659836766566585702820233803751716641190137326381828323083189088969429048460152026216150680280763996504678999134114229242449749030563502935636119960376353048876792454173592761015619139810163130738472380842818217788209258885794193315660609694583597295030381137552550554574481204866215983328472427818771875871584443745900587686907630801126913100885586666571492927305826558435643520429532629929513757098179414599238117456812481929181738271753779203985338389101733664566931235300527903874016066967616818409131263801246291768266728626864320020621629214758596623530840296651613878325003600041696761388208811204189136702374995647075586225911283728855026345308959534852286742636454608207073635978052791781978207404933361456742483533861570593121554675718933418338128435944396576616926174833476122061182265748068000711811151353320385140102148266043008549964993458243825370331720421390879593158317426962769924038327086441621968607016826777405524612462701283192493342424399072204520396565963944493184274946307454014046164297951628836194471133905055997458179270549289667636353207878557798180095876600101948936197738945455449986748520023500698678200554281113108091009577814256066511019452601508150401523916461412057802854028963875948107068149546324222689903429422549659200080295757015769259853944667080388510487035417842236500777247370741357266765745684136581769158199285911283857915048460627227131487853531667932356158736885090432814598465527028332997354227917031278598814673061255709680017337612086081437810130461275153767518026538803253199935980518769420039949629328447146916123918917243299734620920093165008236733257116275778335291391479545188741714802122770776900946704038272762031841178047609756503501509977090002901295559170222854955579974378460220452301815119862426910990093281469589648628959994442350806175361821463763420042254195017452757836863358861664861792160712373227771359389055673008849786516807179361782795646774902159975911894118292182450615698632422544260947748853178280281456802448714641846428740961429393699003099657147763187884395075829279635359635804099920128792865312988790374475150847678624055880309919570215843087633726472639431729728324807053328956093486327326505555142636184277855006148422512216868056505937849492131551091694935969514713630929691309647923031884201245283419973627798435708011199341089173497426528744572068315785487678234524940540235222442774129973386512247618001022144854209504426087029832152469196827150700333153936457547681320706342419500390890065027594028488000645843553230682587343056916772536894781178581155717944255717435316486268624179632966361481972245528538703735749575861583174198770017321722640582064917581037657574955954420968247449409216535553307213760770578886717793328863746598207975740894440500430293766928942119575227578137488213819140199241843373592098662630259633120163716691333252404747088592421229722714463951376105010802841863448650758722848184648585172241379043638129890564674823208957293657459201679662761079447950804153096681024268524179336522572685972485209877735348934164335717710047487418441894371947338165652866558746517198772866841721244292905886692699321179289919943626560987900843537230256002587135645606617823496585469778499587080510516991449770565891251807146911304767218940891704494985229610316128702369792351390086902843262248914674699968116007518216672923262412802466919095147850187777107556574988869425006637247505317011772902109049659629702957833097304149844649733725328744414910684172779489386429108483225674952109063156518681432041986266785201471657699669423942033031701996567217775055050228514590975656365152629531869405545158818067376595560832058959071006383490019337981008242711101502132637661035515681343784694273376330225817460134613474854911690045057125186405635284100568829756514530523545396256930101979348206865333824876128377862491599188986322080695002152328806931958277086319542364569805141161208627989654543137276706311300673929413446611118033303056335895993680049531827763573941165568840646503248931941750467953536986538934804689461191479905347988206563290447400262878726483385843679038571729602821985617259952222177458790319993644296627067631136903292509466007758565290411734833920760765584745800753116105944794101921676024751142007818906691918650352342337167582786259211225285809296389156604918967437961085772102776297794657937047979353986828066439486054320158752360257836506166339300399696695963636510439559458843169353907958571500719139695825265575003085122033132816998554734321761661590292463219034936700980589788141137524800316993949229053568078810965051893664338866024882667102584875205123872542781566921790205107154313605660521140496925074239492564055733631134882377889622450462738359192530923009635088148147567819846459597318942724697777214254339138017016385667964590576746518764602960271675098732431244561616139284038302237126570233018008581804970249551109471396127361467260703350457724567110290893069729316600820139513952395622702375897657600273376961394966666522997690213479096744868685127341902529948364165714301651655834849000505371087479659119178164573869742636942375713640226276230029572110008775890246635461081297497382144193181395989440162186768760524535771660604099566868185742366358907687844654923081019263726227602629643646420239040140541261257321330317492888854719338913129284451857014403786609676568351980218669589952667553155286587320291681994716566594761450328087838254012380780058098668985874816380415115667667032626747498063676323759569841533623312866024987577350714950070668149018570987287314345929874340594510824424483045484435899730109676640717616237219607995844387195752740327840307770590663635452342960831199710619143703125828194622806721118937301673228389553169274270210846153965787501149489342791516078732061018571220821614648624645735687013508482406997043843993326145723436674176646408293907943114392987235369222217904062358703033147192554944259741044993603934102210504185963128137789612388845305041064590196168879353797496745137058821651099155580592868830809152423001327071166294925869881210692559490609620897489104371831632162266049002803842960178629742297164792769188585575796562753212181609425355349027142230842227828375796894270162934235124845086033373837508344478331417294895212360743094735270809646589983839617068570069106856851374355567491632468564956399218971712699914971193018944688960248093732298516034678427355154117946793090638160824284255154669872011251408404499610052279025424326557785622474121040172440714836832986458441937454370763137634710272374829494638439563837863547395125078902810220239158271831683973567521315667380597628099158929005790355733998645500536132080758017114678863493156656382648837784200207283372477149923125189376951758955787818960927547275236125030213401781120970267026906965947764183020621547337274631858552616655011674414632294684765697098874894253844833182551775569479978932176882608084775876070296852737696767579438535039028520465999306620026246135128027757401167178449698689414801380341742207172301154815552797855520987105480145931091214528528882026668609528051507571412600841815319957432261615023647775672125466274843771529433666800838524002337871295950074124223736460919913354501374337397616420030182040325995839103344527265409401953903813860689158208769632567912727108035030125274580302722134534521058608484784686157523226304149065493043357483616958287645609378234770218704746646809071778157652299476021071492983493591750382530803910687197460852571951024742181893181217913372080335605940373983515462010417956444570582528906858671439296389624586652393877742971093385469343245204014021235524012241877188599498175107645024373206943118811649167522349461896703419474933004740566265500070309657138706596015383825227959695587207879489073276452644415304029208052495674375171574797392618334446769355241284830129989845374141325264674462125554600680371045901433599777219972553190511183988580587652078995364612066937904635186062234805729630055086866557814620235649330670820564518295464990037375091571476061238968493476814656106213379840756568316416943796569754139101596329348402733164207926671110593566239157920092810809094742870494336244261622280416849932043361866663036276170421954467532597077440992347723323853408321358020502248051971370353416529212494741582104721850327449926441172155138324697141976711025701141583611177117741839399628208303795009034674231497854971804303280349300648920993894194061588064013971574556124352013972250997193913252221474143811139569888699739197002413463353541343848661719998741695632699314429523369522948719904636156226809420445672682529065664915198106447763301957076843466552946748830037079990273985475168379215489740050371646372811333060788072835093878674882503494246741080844120797007096989712756280825548852341366160319012958014693281069415223413706993434329248416653561735337625459683302263633466289500022536051993323558263387083720368576320624961801278634081351023548855638812933006729088225826122839733985254967514175384974540768290081757119852404499469009793084316500306847087134299219657785102269449590382276957189140426905763779171805514199761206357001210989962270354330715102377740357579300484668678455609764177714709386046838138646887237730563715468943219522842618225225177162760830711351553509107527367465023417087677784883341050629305658784261244314684443567576408811225878721418554020236443021525901372115562359457928081516953045338909340739264376321065767119288650030947701545461573685720351233493557712575515584268575951210052474356257733172337568205470576188893452673091586909434149631116144409694071549604036176859221740984011303840800980917578825605965083910715845324559564786041058433344414697916148233030005198217463203227537330424709737380331190111182696078353128167871342590753836334160098913084668422131765092023183936166901527904799714677463263467445982165099078989506721195042554874776959016406052325282360516875248935002157438567561840033264713073684852092788226551873033863516906419563495283570082703955552920169251908391643011228718700774565213160709030813275447187644756749796444665175415072338915726489767761460804519990499907240968162321289841618035060433290156952134044757339543999818032955955236298601210851477835364806959175768151677907129674109661310729684133167196516707497645862851251007078099969586178028355318018112342064038786875718615053579444387575462212618862970629053644486691895961741275715138510301572643106313512853100302423587258050125049355513553873234121801200474315638487130152353495781798573645518100953548350270690893622597656649426672198019973966979694958297451762939486773897842229421614893961440970911987177256590213094082494598215262654899765568541989052516198463852599194022938229574529201720552314003670161106107914942094041010764793546141265030857158063582296331295586943584485692113973501322110781746096908995721675145039377458407470038131514354466248069994585287332181479272457058613659198542680619189128551981750161154563923178179733928306058537901865403710057552099930070135703921372032028163793616908660783921341824222413397962901127814885594487205598827320701298374998873824266464222207993505038774293103135416820225350161239599846184884316679877641999211266180623865056946255564425721594402262745248883998408486401142865619751262794917074084911804251343769619427157251293501153328711908977461900404349629779642313708864049049019134998277024759226716521271914787800091472047744066960781876305409813320542560346033299308571233700708225855959772626607152850611252846725169771636191277586313682682618071338883792587333536083097462194668795279079096861748065233908983851539028717553029260548713066473697940501808048887669016769059963351798558935014306724860659020272557682005305313060103535981149397226774615448748511272311278141402677625665999732008034648332573754186635954193305007773433123435376572107500385257012735585071891666206646870875163585939469271069086729078626177888644387779754526585428539659467368831741899473063945156040506800338938691586320001285052977750633667319908396646580309560176884871969700898344627553341697246122928174405848500377826408642054254627519238355428413490305146404621333938734616291842873075683016504897283657313102759160689321004987510143275688753782988614137694953522029353028775388214198640844409131288970423136132482739017724301464547529616676782334821034062052671113566884799181219625839863025340658764435694595423252499304874100617951616029409451691697913380534417165033149204171421158598381389080308814236902646477650051386940188717811204473096503643819517879708109771032628932185195903503136540710107352418752620777632171963603947944507684951689809113065677441314008084234898373592700028088951702071041408290366874483344648008270006003527505125752608789566233905020525573173666046805154341581437258337611138665270669003475283425954852652118047420339519151751493398575123447129744926293360012390578163486213596316097051035118756254060679803207140439028287156102275349285167102681979567615468500047580628315473166298689237435177635883436817742379098070408853547423437698547702882357681481324220749987107870627793692812800256990576283428796921770506894846046238634925092228135416273188248785851762022244695808560037953487826687187257704494499243192081521520918702562874649224878230704568414675662344916799583331108979382072860775515132727302386314112279757871834993179185379785159408719253003994667907285894758272633388593444108446978059617760083318102191951798065101012860387943227925154758456107979429647438641140071030965330785720221784550543241773695681081538705122216485255840032604515891627077698922333092417481305196583770060739385583863848959043994273442439206807853899731370232028332511372199679173100348087126634254144517870218311218861887437559318005546049227398964133872301144444978484432305545959541344546178929930321882729234842425136455370328396600589326246623224276599142106093007486912081267332953585466017395041707869861775464937977354550716296226618813958282231379312285098900890177805991936916443991730003753298026046699336712940708759523407820782292991427287731803326960918410076668172651032915794195942002497631388162540538041662035993565514702201181473249260581698086862119724737070546002179329959310823282026953310821632632855783660817187564173696822150050641227543946216096770514603403336030807984343527428464088841620122554645251495615846627205243902642925795783637706073432529297799479750000275716512886612060470542417543192057280869808515224528695709421185989107055031027160793303926132051557046617379832865142253355004671027068111749731184123990683373289405436357512405502684009840008404085975312201663360852633991356482967663389775081498162064878130847513317763501565052325914592637501716018935639760603723525114896073221020491467446814812927491693997020401066418541173168446028187943063107205951733694036622262480487680814549904928999724546466962339558576342462973326367942489193545220057139685717854229100369970562493461885353380330070258954357985567277830690338006176965441350353855784321777908715304108994899555057106948592416545669773634435371284403220863102688751241338291484590417175685414600037263946154980972146892434962417802850380282826761480990416599124768257179571369781355492057976277264204495115563125907887707262497940019874294668635858431216704135410270251241127264166632883089400653618251876000477636715746024643154101098521082867415722108312988630813333482208099725210098808085899968796916191801654683351527136843292177107950346795160827620815020418252090657379372339816059794508151703757436558902796673158115004047398527742519288353969557186332166303986358646474252021090443338850372119051152077783452884186266139707741878700451955091252154394294707811065825417679353334661514983310331731585021870425815310865654308722923180898544533702188839765746269366185433752623289047359930665638255374962810172902234374022740652844364238622372791094397794692376219496349978794596579520972496404385032594620536444136111014937347823068928831488030949983594246712352189693150297624352539695606210829075406922391024943692117825710478861612339647160473621858338352015485607589831047395047844863939412290514182068307052443127430410561911907362130699516504539989407444416971678990106650063056763786486882339273878118133983800930965506113621097817073101688412911289750203807855581005495023441484452526586210027732248848848575989889959993207061252197306249753833622842415707293817616669095111340155179295348367624005683078435730275749941458539654287150911418818830355676655532444360223291362000930462025390355150826015629912528108446557703254381732184690835852500810534249712662633443539272314948010852758854883537157945905158841074806596333019971449105481293077172204517735525429790249717618307733252302463423272449032799275989916200817017139414233526611462850311061840320111349690280288902901911707210985158481821255597754051720911275410949066831822856281469049639593469869449079264482127677587341026587795883509751557804232773872570867592706434461709211537987421905854935758346528037548564319917200962855616587513511936412198071155721064429841947760529906901256995705830291817683192307813631265440847400249167518596632510746308074014384764575899624720130854050919818716459494677859196528419698625340093560524162392050232035968827701376500059723808647452389943133733386891831910728583692578034374046354703590625374903972795994545138197428267894008359185656024382832726024655027399621159018663256786513108009768959560688759797425527141076469625323642887770058815972155604291748333535123266169139078566524580730868040692058666960565991732844511907457697522343913411748754247792591224486514418780970192751308507911625936666859955687191256873079649025799252919622246057355477047640763389212247197254206935963151795228586081922599444069986380261448914391901071877726382679492792660924352255428844947025567839941483545148593247626383466918512483564591546119404212436522957434123101219657222587168570751923434004808369256777766078496374088042275580247184293598791767673531343773948994398243465329981412348867090074045934044062037588283333808952634572539252369341521583298572130553570037111620840768748539033842370926840476419530253394682526555226419998787281182424502438791166421623996766204272989721271694505509970431171094556874134191234792999279889840966267701972181570369080673547095982566954008887830112788461935927843108072242873396110954219449139511050819667485022772384407679722027726092536435968365349009165234095696153827132417295898174127448070380274354153347411203417896129584060566302234132820253674751055219553164026274571994687646901526783508803876432524093686478364919125474767755723903281867604632772245131900481705544188644806060488714373861267921437694634240583450897338714255223871459090969626996243214060027701688754577752913391118379880341743653792144001396181800509646092153211880781525596595174103882138220047782047589977562078222929793395326872146735608896972053955107911352882314756706637722946170218292983635049637837599454066543051703908061018989355252418628031219395304249573005092163857781880989622897574631373498492024660486369522150334807580240025704385422378280887052332731825181273363630934054802621552579000962632187259266036214330920000493575870236585281497656408778105873226301153820999662633395227376872543242120220602660171851944288849581226348036208168518559451005043632222761825497382824348174845944337101252278533315129779913039462480071153695199263733500288417663890232992643135700087340735519291599722398180954015313946585573181839614311358367432576802161101635430804657934412983196415956474725800017461805174223837936269209040636400549081148130616253226194529065441319370620007534240104296816703641240835748783885305177292690338681769964800499487402836229212426319235202925235191197131719760631962250758110467238356648247258933845975885113139077239653363225863989066168514085794467795747520633588355368375337188697223414363973347772635053872894997240909681943992548997692059101411981289522947214400881340381828028981336261255739790836059967827657468949000997754799255488966055183236890642630881407612669250978246124490784179346960737445019765669759138171702870182421226277834477550632254690527929053791906088935495218348593954956575731774436610817087801390937456676334913687471089883061485904895423866526245194541369075301974802973429802493150710775991696010465264180576732062143572303182259522035251398870709663402489649992587035489042222988617348887926508730905595274487079941393620878312047237092297985834347477783432779881419754641270268433424270570584415732506543944804685135470035031699018437785142030003942512597850242071897061932857756774771870868883573961210640408228134711578860141247249811925110030376457357535811609350710143526466089178068953932550493093944819933593108655094063279945987557682739445945562195373698906324561795187868899881875483088654374134052632980974288075464610595430100928517361059137876383065725640509572408518367424775442160531086336663742189502374031384180975554182668987035187211157778002627522285031759792718457687438745776979760541370620702358618638618511623595318030295069334365909192423107935305312014125454289310632511931938021873220985768633102488395274954054637905908152181359554198324325772692600111362743092770703354434385139169243395209616278133761767486359710704429831173290240019615190781979409720517063955289402662252595248382865274277006087936424739227984480127401616566617628329163690575371370650132356429753483738953656484690439893602582936306300331913153393293474812029162275467984682049445041076751686801109500490522225153159240972063335093039461173105279701742852555105781743672266046332061454592692361822648768219965044755624987438162538365540297900412986567575017080633444742280844937406836820039006311615039918757809986371151049518446749598700667404415289982925052862935617574421345493603604198691038109378287707494950301192153111758870810266381617226154390523571671109082183143716109500560796323451894954293130386326396338409295184724830618583481363485275830551899277297550279027903193650629150944233532179108216712724337779251533297031764600364941615934429945773822160694117899359475623950278282052774873635118057601748144816140087191942126093300387528764212323570358229312481169853511770702950607988635658827624581978325668542858687366073117227780179431937333551329689550324773010165154497870948034476584549633491198272720202572322048534959583512825147283653665671072763948794411817301105093865669098140875715362709857608616351865761998524649274822438388413215290632808760715327872352477404706490809510102616439250411928289511141029579729808186995066179145366239047077370997821964655860437184132424635356329246611514594873491158907841814248815600870656324570685930106525630635147560233397466099035311166036051043081495240526475552098325562295888680159724832277722135735586622370557600221210270867589111107290958395061421778057734133159587450721770265694283184583146904170306000182636683712379953741890895149966241944754930183531642007300352326944020838160191149476505033844334596031687751866014752259947611429673769955888384879813972973034676772232376983193452278034021532269992433602582055868339992925627155763615132764864860753928178956681006905597146643885635030503867416985722539635198149090642053135277468730362968064803907562939482833351435319994572616960599221630941257580909280950925647638304913464961817131071553396369862097758970859770763398373559133691870708763831267199317499011867324826937421157612679947410449182096608025328156320833604339009506384658670745211847984649747220950115301717180567325151003855056251793599008390330993285381114918743534936174407479649736279472697850823836056788406491959418022526729991884320410025015735694437243084885827446127185706506174460491284381316010845165127614914544410966974568311186425064243743205629443177039883847338219574233253907520689759593757810137089693848438258328138465726314571969575707628480707229892126475065134879516513958147448122574195251077402482896813101172702508091676499324941478236322279777815080880293356513901624463410681910029706965770761979594808078729823067660759647908252876630446242616474928481616396146862794003084961919321529366519117437053821670453134570641394550928403441531648680728463727857398047383201045103699308280403172700438921942310636593011957171810044192907933639741233807670696901381593471568682052636606155540894669471302822205478070046344079922544608737324816281382484249901224704953099052409862251344712154061166776699515491186324179984187063185449890035889823746700291654485795995133644076843497473896065853579735533439664147674106777363302966837957834474733306808420636074349974764303091455011960094813418633352905457517941823732024780405189023730281891035299285455324331768156721625434595350267322653819765571268502130718999718583949351740221791743655358068006708933602184947051620046011045107521559054911356346277947111835952579017357801160317946173397369982224292523354055839916320702311063761391168359634985742565208368395118419961623349507698788079123727420474006849917869617412369420264149025682955616580103705550400880660422189542178881714300891526848086307779634241213049086695734201859680635056498611471808936673459478293909797570713717315343356510349457647905502616497538308038821457305882031549336952116301836462125775146809583941774392908338230254927869808635657723853057509638086544697046436405832464316844820700821424750221369152740852297474841720426884648027571516068059426049672641226218032132436508423609626027243067554932937834394093443299344313753683409498316573118988994220787743547527854311073729240539007588829722013716605708790709448279030829654602550016125077618962607621707235191835788555869015427403532954826027028453547360735445844231148022147000177861662223423195886709695799422615778531129957289680457332435253082611032699288184773829351141422063092113595082479768375050901200127848805457525400821919188850859002215123604304380429331606971909869519553738000333772096006584584076313569346061287311345599900552483084001151399888749843553628992351012396285989612614879277402942555011164808629930309353276970338425050832433374876971868487699165421490633108974042634033165976853710087121255829104582939950086129733762331996968226265336196140586558436260201052369315785450978126147866290956076204976716945517185681677664366924350326859174778453020538008758629157512656431596303434823306376689727333594373282607035055900472089859621511792734599535566915786634079452418069531929793487438162117263380209173539127396076033202089253953221488559053719579389479798660538487214285429286502968248010922962722687535786993854124023773056052780120538800160006014571882609763878169207881768616379932657648110949482227640139862230631732988755194096109727759594096347295257082737385321459595662156014210201211879507238912013690106474738715194374454577899322614937039894548466789961980894428581699883355264178601614727940008986463748547172206704692331793075342789391914955707603054867385370936249631171576320252855293031560075017294112615822886121320077933169262767389955701615625014218777217534004607614717113359863673374022810505844200859686442845472996581160143609746568368409099107943320521253845908481453129167354794725464040059805315871982125693204479847932904452188208328959583135350884888624631235511118637961452128182621747164724651773074846210007814562882466780448327661233568136597352669983327623276930678151944738073714758297965501668239632269418167241032153737862229095787616837127060135203393956420592547994704225459966146613180493784359406090894897533239302455858439435632438739258944409245663136940104509822029366020426798439456234903902641472435001076339086864209761230415963692602987918868359045793623378900678474803263988988064170909927793599111273861570631063004343796328676419246622056078599882192468824837654099045437399224370939056411521398684302029616872898715695237449682921121842301587739172324371407041693599241554073583128518340101943323199579208179976769793282070248577106513301043374206551717431792329219682871921146264253178079525515130724455475313739380569097746327178228506036607368890441199522731198903107126179049802626044665240956380333785739864686427966016834492888004356998889795577902397387235360842872492809344973430302546359075328209715692938272757407627941284007593441933930567397259887815075668121651113923790923803707929298184653763766622739646758758336619163742839832413761871528718844339177956805733388774110419377631213135470034184589748499108887901911484133085240491270540761990618306716546971876932020335054784291191614991594729445704597366029718960807334961394583181977928619420631263958074762495149413008473324623502298898926068381010483793501335106345704991450692302014104882779964101480287101553738081976706470124093860434240709783256495636988226616133272807642758369909840214005348242360013664026791660598232436745269010223174152397383226161310166116013915368945237786699548019464676078529960755514883956611402515685818940126077931991665254023003744476461761105568483610922509876630624709405728853151598678729778586011744726562295419184447452127699707621713850790047476251541282232917863242842378881630047930353514526002614537193345154509248396935668530219588344620985010578746514403934190589333186563600200857345512031637401682462209513202646906177497505752639938218926841536494985864024240114605154896610684633050804979635338792181056753276919973711077517597736636285560517707426559283282044345965263424791633283739963874109320267065849825091607292959768590822400337731006465080508205120683828415987873479194068158184171477608025889274900384205878670254181353805130453370197735780540057621138265100582840998114959967196540200559126427245248960719583675924868596022003799257867685857060368685227978997027082326181964630644726524710322260633480543258570286135346754335670342943831125591437399165611960829567633227111408903465597064331408818543664770241118360787904828004781271542507048644700809033496127212848331166036357515082157221745519266666556822974358159406190739402008777697995915321614863455264304367882143535554625885280746596192690444072106001859241324439205160552974931925254338572375905233449926184384962812284372487997369943678084246006248763417865173722980352899716460421165328199605996032815967648744737977552188388711272543909921748867610585539486502639652498648864193922838639262606962091935452053772145274719823891150879978640084908075758064467759749436845894112086762904103971320240714849678066786810063330308230990870164219872364843157655236908017288197435073292340777248570481301607330998907328145471013316302901517763102831955247099206833185958961527483409746488537273085536960453568204253719830288391292075179482344473936329718186364618996773706273272845494433558506898018060659615284470446073358018574219715089759701076712171609244216245938108991277606833377156142573512901621538392062750545559861594794204877533660634551576322670549964809451116524427316655381381183940370766181886688681966411242775731514738190698648357012813393924966451176747267171548250168278990244365918661699288065828096507454837733996412220057831662918611434389432693663829748698901479595052831602445758583239681034692974842949059024054229870339846120975174097333482934824015932135800233410507261846559650634636925722799609630424307037005914441083916411652993092162917626752703473152387274577464322216475808521685735020112984231065747288017940676422108245668334570507698474266941229115885567758528067535078368956512493278704936269894717553896583072123687196713507742977783854746005403037651890219433219707959855180503705272342645611953845603400211092716055412036604773623616446426978900393734808067071417591667302246451256725298495945830661025193994344828153931560768507650344628683787008574966311700682204176299263610145032291847938535482439876242927412177169295882149614495404691261561675572452923017188385956024586691767946634806801267082600726943591375810357311366328241726653769724293454050227917905329281547458050494290363320032146733567843588318593882934686499545863624391106880051893605322738438392501631708091488397966856111481674571850377570816793393363498472725739032823847618551454172501107088844427741774125885662565368115188068591092493214694530145890383311396434906915505272647505704917451103466382992986414166741106321529240743394986916387125506584668303634804527317415232139141699555464784766900070595127951550329360365466404145079361404299593145705461263489071741112385754959004321721995235327728695377131327459413454750831931644043025359060136645784125075960456123136261381316240264388511591101946363259681300797720769333024594285890853817949317740972927451969938377709942042236352032571872300021113548905362472856004606611021507875275941325137856197826627073821931489041226928091749416895949047860723175304299731919032094088342719395920495387639852154350226496763347895426463575914628836134175694636654508068932377243242746807053144318858391379888118092956800304431134434994261745672499335810007805420208897966021599575410933865554260229597981789897510982612146048748611141081511886285077164684485088634125697400019347253719219155224441213077978968038893866358768188349803155202233789683546626227300759364094221498055489928888774985172046201485834913898613434435152193679306140629461914180381403257629726081287903478588109617477153223648347102799739955145390421568734862781736610619391082033445347523875056260353885468396780096725018053205143256457857600544611453002128893331187033529224338921471302514099539823935438394160379967405556562232254587363452719130222400682026838554043376445779703944041387946937180744637337039056009075334244040765771816687797100921914690117448530011276024938299466152003819795781389947613109274637065092060597258914480876925613310027374041470731149301410159985288679644600933885335128193928645960495389224497187034935136766350803079886528360430301062925304867184553407528672374150528217487433520399327486884408739600919218455722970763451980730904680958922298969898988965043393633220781875132738611931333988577853316794439626558702688244573516281095945962354087290334602666814448770967010590377130334168663645700026593165919841894181538373727766151771457167006205074256938706726455292903656974478200649051335597149863619926285354899865979127326933661724803092575705334189742787817120605104927931777062668072292982283747241429989461623847913477099998899438268605878510448159578695969114441468218742131778444238254376602551466823584578814033998040844824386649025442800336635637680261013833659076497929548662821062504476590211622718324565151754004929359989078180746843418747121128881350858837250647847434558978246756953147958485433914159076918559143196567088964387775536690023101250014792209552722813697549771063116354559582822310705408994761164785057151004498017552775167624207012702231506260907102595479881262701957030134473575566965105100474709229132780765529210849206489220864603527197820581166900958923965234618924226145944983003774784234569784623121155798102990851595411983709402090421969599598952425588628780587560699697298275318853668664602432498553562460321048765792471698436959435236095919860158010253549703526336295352380942472610211911793462280018486230827484681187608725231866355037399373260882399121345218144524970904167539667161349674027441117294071812607472879392959250629581371681777514135594182096598460220415423059839715777344131989199873262781219979988964207158975266111920260475401805071304160875084447314303355437410522160862624178856235103796319684005811340004080754182157394190851306312086896167201510426094581587029992096679173649410780394803797186426762200772376078986320309976204685080771728091450711398992842169507921777368269861284132092509514297715453099943637265348363391206134904890928324762649935245938636898214488021959376305865853973534568860355883158739588295574785754665448267123499782881275692264745693197202900155318192744169312607785023320064300310606790039275970873043301430793920504690812009001798298335034695664950110831129809395461490965354680553334411934750176678863549218498226694865565343868819833553003414209118440872469539799177151154581704668459188087759980279216897113775695898330701649716990100589169435122657431236440328462081755644263489009285914272065889148210614344827181683789806714898974635315367253856279349938205742807572218045246402679259880311010934738014869167713483954597043100792367098438761564017337918374215607706243769919459081832265836987820793871117636309784101855194946471532933174815360848475989504621161898585197530532737336536817271458644921115042757966496141621329282017594943775053853866536066481027278827491511738459322743954811384088612837457726006902359278331952751807096735127920785263739961881431045846200836141561707367349922039514077509028293021662635401937292958382053328211372513145096550803762010692365363915393299196266119928657967459406418400066908975990836577760264780979201313255609201912739478886487642972428562346409054093433321759654801425028714865544051495022982988829878975596140940643677887916199724641620024197292428791054971282592607961245483375699552424076801862463022670936249942936176255175593938041941451881071865114105910772040707965620325662295955845993855015116511564531243827471679247917661280093214740978654727436343710676306336470002459881862279813511043240322965901166343179975936633996649725594550353237583088371888466728603248163976994702043722985722245555157124486971191672931819835393418134198179861263963712141321468925229458341614242511770901454538415586037161919633396519980621069729198110238749764629440896073255935394316894275531740232439113261707160200320443828640416595139872650535514402342230296891781191525851894615222281541392430793039590563456988652248510100117637412694117067416667202097545543575720745635375353442450882698550095420138298322105164938957929205646731141158662276727477269412103544719244418483548181933946777652028376653857279850467256351574427338361195947407852111877902645704795445516732077485590210755788089307697580902500466361746503926658131546480885837698128024757739919846446791184437940968345916949330575982149281602632159451841539196526399878963756036435760488839230428747455754642459703638869014625042541657209220220784820315496447894016731023303840585374117336137171803624790525905250009124270437012421191298400717514963705961797555178883947346623376922189632615314838224350556819215087912704735291931859119919590999671841843319950176619001886552903098057835970169400201397195646055050654621220790176348545547426534804421828083939127223853036547586331653815122658722702218592138026437951113655021767250401465054209909880321854366894863422705302001180054190386280262812544990804298853830531925313068505163127810555130546904133578008779050254929704029893725741787358250543682313327242925305107301957406081449109854811385014699607943769622948445982473934757033045270413962657966103980483535890357503772079673187609196375178838592350970363693023905863428151263733025990583582850076687705820452821520028289550062483579468955838444071470388550531282448855848660465331683938633674273888559868833071309241587720562175532203415332902395344394210734664480235235587480556210019295183534874502657928511659714797059591974600716546641068920629269039907450646000731487885292205357292041079558637001529262169467865462922813189895181698880836692760241540516092371975824017814432461716047495047346339732268513078716877486540534739871625383866189785865137912613160296362718172163128238901361400676518295057512123422988962459044886922957900666431585458544839339079976321779926912234459855882596490126926079361863241413600714964485296114283302830899978552393945189416879083406796425323750702245024375584388251200166012182442089769868725362153023930604748421542267293353796294473534076909261600125053557485074894285931062029023057335250380359106814546173960075084297654949797614725526632029350221624942435865774383442908825757179288079868573254590425878140877035119996281414308466920030579164785294837328042735368143584584607787399453748003537923758385574784368090477785179016670484580341809631588230819354068840547943070658735133646059699328845966340051546813393868234836239244155425239204933224993584975450683027830611840135507404984980023183774509521937848349097694767141761845654400397614640223632751223054323695835492144732248732836777550306979936878845101175233250552678511275304469138118863387568495398607225433484097118158205207633243093879682252762702332681882564617079571076629939141259085979283561074220915446864597435232065171776208449736752589126976977119156429844753894872322348909625355039371001029784154546622577890142018056968994417320069855246938170117202549272821500661463156011663401557027749492260377991388703281612512466329911144048428938965425064102945626374196710226804676736621636760177648263329670143926869429339850538324586704045732726144582771112547270068190858848121932344187890028348351047564192971346759927954959526769670185271408736624018299841811689543297593904224433033841555529002628480377251058798188169720749879463272416047147285861213387421999880651412313910861363687146000791087461680456868089267014801787114728959596167325195955483813856186736516017832783025124854542219701785805070482279899570871105191202417585138711337481473263858292355408570035024022903360669641691566410733216243214233020739767808805385623484310284498107941317576145603482415026821817841076297145937189981390604712504551457598300886718263072757884433374249634965921093852834189072446799331893832434387916196991273082896679011705872652631152210577336581860584892746831318805110601033792378714325104494979590616115413509401187951680478417498898691781146169234263977473117875992918830015325338018514823885549769178066086270372694231084924769966545481193887112337167485293248496587161233961355221093595028589510203647994172128459880851532170390063861106431744579479947546618094806820568339043660996101500062573453365473320914578745621632304890566562092556892889330006302495286849236768100688341042606657885564285408100044217850708922034369042320643472450227242928035936315492792145627214949284586814178052305647805879299327878608923307770101473356771928848191870848290080573612887265048769833224353524201437994303263842915771349510482422810753571562140522591537719259652952344801018438848057658481800458653717141431550255984230149075769368511898832783309064409761332469702996414051298798097910101363990847563119080038453964741467985860261077896730712568403621927328102813536181013064388708511889741067203497994601687685183436090376681272111586227095958593910400157333170433861105051572178691851495005419808129964299224746848084248182823625757094268834535562978254725486393484613820908174590434273873515377347826815871911428342857951858689003453950341547131380088343175199624628307046576257443193198636286130532779287974079121704576269891467693611192511647039549703741634675163320564310526335488700050008093922720761489362743954283935674735896179468111655440271332244895048146212289202396533527637534538606960396534339607664246550739049120583243233669472565191213268705807614634008621519710751920211568698049911674781570858321377632599135763763471686352651916374186597812026766264822387648314796259048232839917337797070450504004022218838497561663200029429750503675061438927625555332513790516183331123983376409168121315146189284094741127237422998266916505396699139163032573342934354115455024043947974425681491038974002828801886722325485706302501558337208917620117855840735885379649758438472216175511606300826093079115155791662425866924896919445472386949223962195348611306790405658857935765715070289578787646283743121452703986310177080373801454619768739874477084201647423305403407636882313415030363207419221791454648989607968058282171646856024607466479337465812114462809598228165248027240739757999570368304241198363776027654413670810548340378348157745392317337814928157921211091856448269199392083471583932291395067457566222074197743906031062351417053074471417882614618214625078906270979219515310264399293251353580393208044561299632542724587777462831720994762386235012046639203841829603496271549856174572019550429472279823881340799548404233330487446728210960691689928738692563679008643386314394634228296829196271530899577455054509251877329053869708454370233544531477016911098119796419367244608326487202636734177908899894260889314662382582334754387327767472824038517143733601376878877306227507801983761251914181802169389764019338474713095792782687952102692438248988852930214670184375085868743923749899382083995089956640068677686779094793732998238758489496638596162429897887234573584941174862114898178038824938846325154755016263299842244041922484797746288999906107316376778596509505413192428697616483113420305534477167806452638320420854651011396962967076198145095361382955387178700048719167501133187064603502067035355981982844767393852338062895618752667089896228641152289766765986723826475714220746563016023335008429480634674659684627803168174149595785463641325815097126492578299647291883757107421411217062593043150715540818743961577598080125843767144710786613404309516050107305441888496487159685257506326423680804575508772033768015046825056761125360105314539600086713474878412970344926722068036618652366620147138086391863913358776871076852465462679649441878394296063388736703130105365933666321896101369235906339152744979321205536481356747688040398541564088122998498779568509535226912310170012151361361227871766609386058885181454253756468586607543790459929235032513902426081826936755490101706214225135651956001314160541175579195082676426341393296256032349069726338476726758032871830795156450093554503626118016099209675250730880280346664465605537466272586580803861140892295461764674482706111900996005777185785964157822498670687480613977833986586450595445954089442544947561250252732381649300444934387646202075712964132187397454486219118272415086192174200824391800221312913073631860668310636965189211257263127438703085641825632597051838332845509728880835310107603990671491852482312204405121397290441243010216470976753602171631024119476987296289183365964489345662176965717210412334933469474790337920561405382621504291378072492243200736996885233657688805971838922189739264965778874295250903404069489743362800480998709262636996470962666536109427031054127633929844466893283491139452095909933903520473508054796546897197736464083312138595533242013626489167197812541300604294158707076455828165391143271257917580719442147714118552226269903631609357164268636808030771921477449766313813752465722086352181179265298239592687223786931490879498164429477700620871555170746922956976960850552966599938190779543642754881592447535147138923985890005507376860497177243080433783721384508983575983034138817675926474578827735223639735758485443891727194784860480937141335988074572899391671725491713438773820430084997480440342570994263360473536463695963236469038504861779081925380259173445326117495935920484043615455219124027703328566595756190331756310080493462115066991862397810771176031430002127941810878126533434303699308619670605244971678542632197498986782923219153595434310083489038252279724072750221040123948533022016784676542247526434312520727139944885930055541376315816718708167602324927153478579827231885267370983159335732109777904070859131541180454927038404095014942139520666920249892434682733778462034648645256548239482638129045759242946011215896043711573738658588662211269792304521886763145884724575002081724671577104716453152929051809736141619176074953593706311734250884664328257229672482183689722401852928206843693888095162014974950128169858759739573859405990507487399134849824077897789917331325416217353004961410134236231314074991179883818945073094737132202408126969909415552608180563729286442080161895362317713738530601220037671513354265595493694909397578691066837014774024403150665286876384840785779215501584433181095389249661022666292284559904818130421491707253795258836532732754196969260486871310144198880221798009421736104642767340416673262896058855464335920653304641341546760446181898917347602849433486504391073232454331558388230221279027563738688486986034638346117245589633493719402976113133981057407051209740636675667394139608767112100532212834431854750656592791240880615230096753929248797452696102926912248139867219050145513607948172309444869392569103256874272357037673601620241600908521174931831429282955626000577749356244531378977085037445398251536045623360169528482848248801634735789346246313032826225092150984973631587370830955295551137701584768190387609106497581874130371419914803529678890386330542970687634647798121741140587271554018901262547576134647256655292373032056099586563891088089940338699965192084685010709752407777175062311414530002087577540540713436275755341221725507918882590754053444477930896132246451558818009121596685438411584760333446371790922378254409963950101986363440959401985606421044425470670297559557044490688999601623636605659123829228850689464942626942995188111364001605777722217975802393706273346587571962759287941021317665797857578902602817158438177546568637472011675873775449776897907637295574724154588968484780378736791528596303541163166869837950846829788607124054727000950695857656704715333600152110076436683094536492365184645483255072573038484311898298155085684936905746329209081672792408224832796663297020520401320673395689858332609457013315701253220375311552799402707849884457863179494137382676854325749812688495408007678034582983943406563729028363844826936800469525119710658091465072405156509053355832595226489909601745838700807604560981438444729834340268253799464524415382880790786833727100149767087928027676598430648211693773058686084577964334211798608144783767020191166143623638106830101078783523594207798472731271085044447980664536614390163447793339209075979372921864146747929298338132779615195543211880892499332621226195654057185120306955933660622646493470064467855432712324288470804063730629887681118844379721031408767479811863709771088490953910930517286256086691881235632749372571681628625851694495348224277566723742539841880211481434386233111854809136874042883489960282487043076562129405346399588511475266066795305544664342293807606525523220217010751990949269584830286915574279044819675457442286250007928136803509200389513189207685085931954086695109082785811502435839280606457448972712911063256813123382532160177218511811899100972704426916794322205841040423825534436411080028566235981661516915356448890483287345617066414684736681464820354728396676050168342960376847231232975337015059238951189132938449628447285408829452840716499085727578446764362599353537358333005347638301548897117829131768514868620585295647976194229167261177021605220014496317684896069600383706777101560746195308809667748034737901206268351040532129354359526690406078095891189959164863418543625162682831805315270108425835388692316928536318581100564567315835963646648402850339124282982314399837014486742922527775754771084628799381901933731297690983991404716646111761638454690511738794097030360366193844542345171597381240076259822199063955925006936765845200084988021538209953705973178469978701454616697803300231501646680158895550932284751287439722170043903161217685515729283265530482522945448390005801146140428170032814793239636797966790924593177608071225028652398975955258690747336334399336908071527590782470179094919555470228115539039099674983843645448033299140012064318512651366298136341430996399924598468091436929439445455433160259230804298328995282651512123977765991404742818265982061393861497266441568188182983287148115189405339920675100000317710896405247611686015923851011232657245218611866625905568417270318808886641072707866921259539935602977394647525968178071697914444813263009470906339501740441727154574352894845405978050588294669992645075664987112666770852659398904245859073584938411756900442073317278016130179361843610110757823707094784249202113452426433722554691176209132587060090755174822758121830111077703910396257935653332781753061458154326617004915908176990834246639560043225748455220351469210112672121749435909456692730439031222485283396741343842564149956582066159964763636117283854806536198434560512796366113538012399833699067887987080265424564041254998554836998948557068395933189369056761468276867128291796113894725888847808010509887486767215062586440781405852086999929237114968751170291116929828821623916127565062896416669377777451423974429857302010826099775977195389180008212173142576475652328435966408417805320103217389153490795358992438071458763943375299610211837011566568770314780640462138967925286776751536173998973845403897789672976713000390288359853059695848882243365254911388653006922848447757716145684796904036865826886879261066657750056981496977493747278425392953545869986936162996957132389174485715031029844150941037451301918672371468230914198183956754287055693201275614491621560755553947789835988571324777388505724740373552184959394882003045165519971211630230366171340969853853104774292466295620767540783172282634594924351051139904589086225548101391128070496539573287263442806619447867539418863133532171392661789754500538130085474606729009328639089240866885521808086184344901276284539956472709781995349427529846056879216667445001043951862850116230381165518583504405932239876819755219499728134398094566963513166252883498169404516794469392557166644616505131116532327271476991183898573703735647402931851779542340265473766226037893394939712709246068834213766127402678840747841781396294639142887395926221028069503273047334351768520751520348239555707922007063107444244402494476625522481528231576385767562488401567738845074032606524034562938605250033898194622495149777797468926333876965192497144230414995163805605665568606659101811742896899959406423470345553144150075802320644978774575736203796712185560823355025686263170261944129912487271341646613809952313447990558370679425203133237001969240154351925543481761387307197673288274571248100945512357198881553689313787986858562149220236669988545893688806790358869733261920890254661410980421713901293413933738328253987504412096950020719595245010164530317841423662851828816473507684610658189485391613425766030818804726590839440824432447748071748152356934443840471463526931808819840044694416694947215605735679676885115664304502734194684472896359789136070643842179056165731860495524618928975746799487075560848489998543714651379370767391797747661068183031664427358105042478069900501335934751185558819439042798479786649471657028063829518961253340516887444599071706047315829765540541176062852394748254325890016242973331072635828524517413954178996206584216016767112782971972289559480818979108920569435594480706386665123615019843436460518384358980119355517868789298519400008356658662597178885421074833762974897986513447492125983836385588673799496232138525481272167460721067778855204377091503418314249378223832728953017590795109946680171026587256105803810174472949544379897628858285986463041750933486447412201639509016649835628226485094280193632321124482903356192421201202997088474037097602645644456304940080603072039955874678610089507549220824513714115230711086099451931756491788041109367270070182760450817738127440376821743705548313171907466589251175815709721040364785387815035250280187719469698415845759593042787355373590633531665931726577233006610409407030400735676671729527164539333942857369216900948994138120297173142260995536219945805221457836709426705550185979029832631225241285404504999006226898330770116556821256686952793745936381759631151358676900052201646540007083311164085147920896102223164872614186858807890001392843998959853826607961452863484840072542563897208447252235792055042552464662893830415744591845663573207580754625056445991733799084545483599860456383095603752246100360788539443896860777066274043081314855796981995895078880738228696347995936868913917284729747349038407139608799818953723177058660332732511823569484920072446605144845721396529709938097931023755917692212644621532691278069902217591641059841985293790499161062161573994690747036466054558848211626855017908547682785728657247800880463723469339815677805247027973565916643727936467595612215161145691887374599082172608802938366771756431077459191989938951037911446610906469029645824609831813756332351134991850423350588736565005077046946882000710804567279867788178830054771291673617031661114725509163138117545972326513813748853725448335500965195442333918342094670600831531122278432579946966853798451381731816606258787182690625523514687699153111325453130296830718521814240732794419403247268415630075683775424578011700988808549411177994216254397406968665889705899860270596801356666882555451748938933174563225852623816649831551165416585588423750909093942684508457143148119356401110643632385118936934524529479240666475756314770098154274771549807444147195755218985315145329395270348152684003981008548034784554432436391289323108628035414141964992964328484941254985830007402388565384996085257076339218087779389696333078763582036274000422522841586912832279467125666162846543197324545981562969443618659589108303327532567727110781545727345220566114687838139692048483234720688391531804394122447815096962405789214196760216958971381652479652767250272064622851730067131403188762219500062052855035828783471178271264090959816423260304392441812528209166699736583268000117091340423864772303869515703374742615970391555552695704494019445150072234803317962249584607698532994652783588851840725984824776838312684612975085498294642805981674797260715965215678938383561579448335291684809236108674716576585119326995597925386726248390512433787820351890856699116149217669037812617161598533167627620285773863436841541405768418650441224984166642852925012574903698671783603921162551799762840293296859003581180871555004510291269512543015105446929327777176525059440871250250533230931310289675006148175610938105998743429929822373177099389652431914386515561899958550125730066323663781439746349676287843643160933748530128560260560623824645511354574547538518932038631919006668948712475683102079974260769520774799393977282728044226701448162870243965757124968093774611252072443902620851663627482278691730137210626456614128308136479815180876713593099510809878427255457661753211226579487294822310544512146306416609904777951866866062961079272169244706199711940467642507104885643668900061032264924388812186927440841705052293192246607473974565441205515504252887179094212806645348071883882620729960107238533101457135610014903803659981851008837439973246243702569662212608674589089389957356172534948237490477432159166510716334754297307723805955910732325605932954789234113967221575613086186987053714904403163269313583945457470012919404252901444147549262371797920655678683670994471766451399417113531217632298096233212499733884114288935785893428960848647492493278150251177755213409215390436751187672908303701438533333525753981839771401850390261473243765920882679209998128124699234727872429490393583644850976066165097573186570281200814793816175202099432233209423185088779692205805505593517047527306746041577603387078825392494904490716087119196456609076267206060311713306744099304276218405855236875119779925317666390647916963760786157614133216319549348886989226306880482816307558224757877736714855180744247354312618882749883926571936702712642804038209408723300082129801001932118235355837869799870999493011363559685439466527049258262665453852105990425015458566659479600703689966524205052946228294226065578021330041085985734318903876963721289846789688286229902348672166379260979072155984336289848870987223189306976579923804207539085584469189698963077389885855350197051245655790733331479079091911514547520457230884709665726520818450244024266613385648404431238077343571689690751182457498884111744331652468409882575381943338440994387908322298405851374268845706713269537556039590132252802187588050338109781879125911203692060374953588796033454971291206873783853544783739142827440516262144571128218869410917073653252067783816175991036801477355729192709019607470109218499610800026294712391591837071895179509179384566925999688436860783605696596055774111841513095085751980661613721713614920072457378507598068097199348201630215111301421287673686918635345976219046735824379991470352962998913814339729928657450713137777867916757446396495761332623796106853327867735310402864913592066139066592002526646679055755031710227536270847583586214761057706800860410314121832696045333078500013295684689766307756974444295138114612310261487513882451331268914529833509530621666432400537456891984002564410141228418300485743450538572974793130653403066631775683479129146779876219593136513640438699005045516510681392279444676682551705283392319874896786230779075621547320636358096583525595292302900774522363297559053541022104159204350999708313771857272044944307373950070212483509157243441530736651228499562772768218882700461391271956862249826628116202846123185181947306937210956344681144578782399433075380855393909605505670033874120017518651740353889384127161567936686242247798783347814127364680081592670082521296332054985061228796650676112614146092970818927856683077674745760548771558924267800408928761206741092620743272902887070474770906249943292318626395256473827251362303611661686907406944567897999657215532666950138317448659063118075445214701461375303639239307141266602877356144735318422414359193307466373892294181458408810282614472929431583463080523980829435304673558949645444979799784415136325982618579111121510795300538945531252011093306667422757219255541309684085953511192032211757101068247318428375401999096854521380286989377743861401804234736233795029100234444498708828310987403763710625561800781762811860261130664393158132075004792520952765099999914453921535944892258067417825236392086337605729889919984142234640895486696344212291310561317954562061173504080245856046100344909567458100198680292078163797314719924038479067726398212151152920605396540795991389959625513895787951918323616893808282965135744831165625186698067798147204711819508912200177074431528424352629711896464920230331676261427514857879976797124552894676928754782951412511715242694610346757912192722553846011756892423834379399099831195085986869115788155328865604599528389561697104601566478479403264609458327361292089376146629927097209634048063493724563139183220444222208064887702058191548626483812855349433354707370039079824552704618176494684252250039942730103809185829365418899296527482338157484694373462975154077231665865686474283905595306944403471542088666125038215940972848489556932359504378535025868422264542407257836295477822501577817275971841861279397651999464621011173325361282121951867566591434345230475424478019040637900062526058262604383673153435210275697960396882208089597094938877495599834696583988893683422418278979396645684214732615099318855668262283538511725812907808846217436538912378642453239354093208248986686604751699602180063624065177412282893966935277409285750822347671712612257251684661007812134179416187580023560059143606825519132492207680682423655489550093476502754552343522842895344260753162303046073236535704895695767808188216906827605639198193277291415446372988259136957393904951963425237802696624965223581699955133440988881995071931271166333652926877020718832403861987636296716161679468866168950784667863542709387047395932548919972826053506467046663187571734139360878376662044466083895032504872557958968471943967663093075786456766475784289658997233814111294329629674648833992297126584747722602823714095439290329074402731299058529135404922161600128312462443036497481124771565457168600504087902536537615443599918178318584354632718691406418395457964574538483125499640254361126632632172243701374603367673588380799025963881043063839522128297850797091336080906428271466151488222722888588981139999497217618386416203542729480648074899995283607698065117779494803577767528764968004853655618367450999117015688083107793832523994862839095631101962126038071751604631723429278795102768667860784787242882340425475965123786376636713328533235953906838950052076918153373377459285929488414957065806496564474549442727275123119463632045287109321711348401329445639757312624475203272012936317431611263062094606472104338523209674896297720320275687198261322177297521125008370810166843251056053005630067566957563081528363476511177468658774358105808740563184346934538288964986340703577957591913677982032785710472308083558323989182278513988808160863003337002988451328221346294347181608389078946709678674353947629584736039057647118297602845697356479658157092881460624950818632963616406367956903364869486724250984269466572837567465778031960850094868296363460810697661256777964198354384059438339732569610014503234730623677860070900828411794906584410123499457257313454966232324095311128500370896873295614031466782523665934868251405185588012384286508668282602231508586644455173081322340388550012321415198331793581901485334169793765397006635180765590630031600308341541445623836043205973754022475291563693625463902924183982592800485942361466328402140367480951960475150724533984136240874275616032834870504094306391706077837618294742246475816540606336142603311137710009305770648394153855079493561306174734123500636320985949663370258572479834115150666215848480039568447456991511341080645564340555597858149320700527231841299922373597536347896043688568846247233570598712118014947546406895986247535858649820789442849151056275632940551997101075180062729599739678032733829934017347150673102523934022261091317486092558348648011485212816488317907129422041474259419115428574354133519845444966206898488425194419220009100753958613773873199572093298005539677461509574774230184325834679562547797195073950350923279854074247433810319064437257611697956567576671717898372789006224130155499437182762705212075962193860430883242035757675064467137244215174513025908902960091466132927137225643944241858552956765433248591866345973351592010580964693487748455612115360655570195010327888887491000746635993077862702271190391894991252298301254298530349848485490529582931005792957418099845779832135203407747152300268073368198444784004869636245971851633589187928668575734283489787481019314288080919780958351895033137070173594122262439275179463010635630040640718316547894602556787107601183559563013848917558760794309893673145695804210110982692444241141634316490505451792572165296131169139297639463026115816678902658580926911577473134805757823404873381241307561613577248309402559608335879199709988059566872865787114733554679922364904121603788466032479155975370532312299237235675059440118039365605794950875682246549102488783962623432634390241516942671509100569731377500942582933782445093586938362108119339597963917758441213473985986547241273788127446373061297128559640100666785973434924001161067428335582924794003111768488058942637896466959672134940197668938225657346718946349071026939554854940619982215405260750387699866083597110203999604410727135210906112319260868993314090994816810791929231818057668656501612434059318416828555349359143980211279928859841735079022804627086735967010239397904299541827599857017963346510259497568916291129903321474902154478157965481074945174936928542982481497403428337340169559534025545413918753587224451078312985590798225305520759149950627119910375644837114453719656744135998957202214132726740010449962934656939513383177350114534864968986738119691728111145424351526114243649418032103697862072097371393783969113064189671766810497259469358287041836324280363623883605156905977911312928084472491926673402241484950321952969925369145139772423534389691380308090372800232867101441513705731017317355005294231393978115150794833552205126320139871877260431650611191940613659800476964874160826109632204579168161476311173257958913642532258276676974850025900025538793549365749710574889523652116215460763198870262628558839791327270834548916457725386823687467744841457081610244634949354796545762811173393831600642761815224078149105811820812409010763040033214322903502697254048924966543488561387337804158858689453235675091160622240078863602092096443047794383677415896379502483171762593722266063795955096599096796625401007906619567768381826437183860581811564694111715137154650138206894943103546389280576484586991106668350682951427346734549640066699254321472022346577546458840237922760916860691245604925357641237507974287336788706159884539662422033082186155576142464587953407964924285192854858768683162409123306960446338448079482896492490527375849008423489707990566186986061826621018610822748596267936255641992521105388448377609113841334527098457441608655489922737933815853295980449808464394340368546845218232990109396418275803437731466881451414198022598213942808962819918169408042860455426587893877637374528061121169103368746739171065677751214205209754189445582405890198342495405165904860627744709617060332560345018571647491635045687935699807083636669381301520643304932062386779060920900386861962882672686119849427969504283297669544826518635002931721824024010842434288194900726755994467550869703143711571428875662190352213082347058284672586694598080190127103077822566326584566784374350867876433598600936311088343381065870730542810575060750603887446952068079158463779510142625488919838037991095610233882288510817563461846689448191952993429048495195829442801055646287249618173581872277164503728679744202244906383097349311250050073703972591278254323974262167111167800283453957371420076002054555625025415923785661092001279375686815056344857566834712249057317819924698442710069630987924341733225843897808079481314224764706109117476723963569522384636650814192822055480752230085338634202269517055331807093458033425580395930209451077946059080635040534741141710222134502185942736370026636717037500573172904781961289373545085117614777863045250030536901443410912287414875231814720171670095165906972458837650665955930399841270948189468626284970187758308344079394312471949687182619525295289958614959369091617937711487086907961731566631580736020991714125284920809204815641951860331776324934306221021806928470697186986303021589562554777732226367172940941474793551714060482779272843789233097542014573269303250459421499167412640507198328357672865468215189653748954874274076806469604740578910807572277218019325781730279291357660148586806717795233851771596177690782855318395166053922333975461244156789354944414781981490713249471088825074356102534765091408635245234380048816485704260080910579734564918571452451373799882765503944922432589935925696740467489654697334894601059588222185710948086717042576353850180470352037966891756000700310665441680316707513720836063898217483950397794325746561733035384453536748566882305318476350503112225197013640132838702759765492899626493677400805693076895293301096002945314674426738861094715836133871902156328218119923835073120458654618154369924348091136300219559005946578461709538251179175222688538673267558468364331351645219679690361565232946573145694863992366478472741795862258526105240020138116888548545624221274386739855207723155903682496318172295383628740349163885371379836430934723659708295446378311446559619286597537706289655548661933365908867458500109854473846384122921237728043440956322944320502971720445993143156957129315290772173806255948622272510841374702382297852816748854393180395211932629958073850279596993777670786486706956044464561748293604176241781317892217426447702983274030609787842272767587552219112730423702400566949904949225537596665777276424480280060424512611071584671788243086033995234090710118150182719993978608380914372745709087217182585212686275549507370465366684753393231057651509587839714784999158395604146073365225787588188789382749649111797665981802871946088575195051833269059257500616879887392160741961847948345380785390560435672157814556698484344878675440381011234930673159391783792825893291550448332344201898836164518598175063617154057154711760870195466239118236912741089072301247072556997492443021630444578071925422281675139721120216048248886106134802162476580960075936696187025232155426142173085412681154058222151062471207552618215896850832283396625838235975128308086391457755700237124948018201243895946885604590966431417182436069207746682831393148656078188247716785625802536644817289589834007705014076627646017041591037600211043842752455544989203685289053624147148531781358054691148275787019598054535471663825944694415172687744921766046386828574951283342944165727072246727316157441857294075994672775450550653611552949494704456323362504480180451393422939131634971577987101661632762503804922678392088517840293825580601136087605059232887485185994854775259331431462410960890560888843773618872986988736365998649976763845126219930292629018332691939345667637231699189858663197647247222196928795826299385345154820441936928755594456083475494062169638514852425231306504576611233997769971087631782334560476098079189253840927743680302286753543839981511133738161014942806835174142314418030615797090790406411678408720010259806446379765392263933198096679809563570596596536277213016594908157426735012226860084788481654878238680447199081706423916508472967790989740724323536229086344962702996462832533869292091866778450154105137817029037614676022913458550292139501108955186393435678682774595227876944195357607387018984670602967862178799693041266130566377162357351234919172175339585488596230444769329038716337738537691716669819277852073711093577211854087734106582540419694165341522525687574391553401092028841484972745672385037536435093627211220075290325835595093649249524282453979441086677589496425431235479864444094601790321803887725127424603573890472221853476025770910024834822309979309287766527054657026974763589497680183169719168948411255265836285814835670506884297666583153474360590331094608373845696394967883171556520233475892976385202757267655308124352332073497679340104819577253986503776138564431597008077579642701056575324678026263631589712748213044252822779397731631183575927367308069075699797127072862782544551981203607043768695221604811963808855791154811498228643581871571111947155871947530709693113691197035993130399626532410919083851082459170681133605341743504486605070859474091240237046526428797324926443163453791009518097193017238797353769907032008737814872482926953820472681699130742076154886678184062927966685819853308594051543288978923568812905255843536553199470823828931696524333558509388375767522827703462606435411687898455351671271798606136260487664851148010438609773650775506764839507447042669790537799066100427268408651938964950094810046366272550368827481994594847010354092279352156528710850180185783837467495782529877055874394243569617266388859388068919811598264873843349418461011598735200978207340608803341162269155774397972212920339555523057226100472906790414662282473306032511117256125734660263694799942513379709910309803348439360322238922686596303550233140817993611907399265234293522092605932174605731617794916467586541229347919511842765195611525566368159868629775242468649894443233602445946342731648597863182423285809067262078446222908421203303252498003643342978182994391773290292988980365559665598400474809932197371296198516189624552078108662844249631805547056391336524234268271793243640131979006928042268231998782958155737309981085672486754147674570867587036262229336366413373241231223641688002393136964157871173776585521465649661684842133922110994314326517214960113750856796565515640672277218484613421524231055483466350279867848615192028366388866667043403128955364101295232989713939667232655293734691739580499414579318353141119238313668818259284351901647214213524195555943507852035078749537855736145397246337460328217418671159290132890370343626768019089171835498876106128588923408553381533577299495203799217110643606222772109879890824950410443604114722579347196446356434157642695373983827949387208949400377879116795845688634436524171028182360246109019373305807174859866779385952460138561251346268715145535052026954600815322657654646678119360710857927074679028921640830250917687618464167386338502166539985881393229806831037379125905206189252124645779786502147387910074449357958781908195845317678572066090587789177622869747626979574666125631582313401640355178476434373994644883180413850107936860143067683881526787934331779298790985334254875916595823562888179605698765138994525694207384913892973870559896320431219903043689568258008912007106599391974273158727862174064904297471508730305330607973058186743752163038194113767192487320567353034452206308061617108329979864008457025261675930891892081942872319527153480137396094289480566953145149295863896465236871780517365066560187856820902170359605613620988718945116839620530207529563662132348895558976858540028996979108355687532814021355992482864521076255092166162612720144433795544536308634500588765213915566005719013026979059198160741735341524727291207000602882185665219980879834374631836049690886970852628934725237318835714068213152678252166210393986997958686726658616348475910777377550816733223313819392998934265468012595907617204626234963917542052000990863650556406534225466878499925327621149396453163848208959532534954570613390504312709493954200368446121058967691218026122204939521910795835954607003440014848749997307086195905158972197657863862788553645036784045046264140745887511437237544194734049358778396837742758150815079462836422631960150202702634381874144269255064822896248173611907339864221845067090277505486130088956811508354027266566554918346250271567239807906511717884395465927408812224716321983941644025341188288262414866301255803393135971853002807068640417752542830075912671878875424727638301017869605641323669808914930944157292648300505086988977443824605195210561721399715028890696253033325204440826026844228073614427132382184687900452308140982276617302507961137447624353978798232558062151507024770788022560589618308037446484972737311560541571503714664506187471590780001911389063628937482030433507431049850065108746539593868572981678468719911091494307452079286657599859042860247464343679579765291616033008391698719772395149599029609734350311705862507909148693285535290185936411637603757094713040903043831211374067511992459761228382622426016826962168735763853181985638502089180171228125502315016719884601877001137412480975395026170633782140346198229805777678122957634908603460932239377029900283622082658826550198074651545936597185840832897201532689757040730223769700105407238181478591408840888288043601814930988719317378933343532974694711703216665033814351475822606228434780398689860541270821224113011036371835175027139466480703905965527832685039949989158069619487285713759458441052108298794691881030409032114003597562248415250281591247562195704215425966478827950808292673827806683587459767173929494477444240780378012688870463899315439139058270682152217921068937818428279234855071434013504798867511968724848880859871308604049284179098463615675131281396487701155923931798160119420579389296002234415781887560546868370125487952278102191003746989258145002757725409302011132966959619780100310700872720554114052309677709512750837181548555741102770883432463746904981164113067174035524720360437795957985001855475883882237033762033232880439011411530566166705617493271134603929070202771931626197479131161466742362074131396535109577237001476718001124416677483662667806660337834398303161315403117415531011961077118812207043644324707447108864977939661912154064194562047810507918000394699464188796949471517195594789773047808905566713932202738622106945301540012936826947811131537068813810964530846869322130314789739484167366878772834895439910598905499096558310392599448236929510442800870363136258306286383863541471255890287321983359842511456022497364940933358006859011793600610390834305955499662165546659388700485976835314268990316505170868222624370854575405989572106870013231363809730397423066136790030786673226086237750885841197787093574587359277027080570580059009736663127983020911137634070349979599383757625317147066074468584845657585889610194060884720997769534879303041573332320735972093382896607457553432049007805500466828869912732135447218074331807413687584749275888513183220484329062671881647897715145986010854021072884268987699738499004540311613787904003508073586697141114926142813179183306272794497969489524242241674861618250426723358276641295270870825435736660142279391080556999026087290751555893873150161321689221819551152593374327647624142665680745617179043909494735312516400960321181240312531480348195160859160057059359904840939308559315507701939863721169763540833083381381643433625507728291736962363132014813762798261714122447726241831019370234770788591174593330116239013363373089209355667712150972160016379987864116738107912834231527202826297380750631475602227415790706432400237505333569612347459081167694932046358666960979984542274690219724337466689804887530515876360294003848557333723946978111694338292428643166619542451789829724468966070476059125738417287101951574889659125016214903356919521057989621037072595147069460475646802623273545745645893036835891444466098885593781908740696430881036034995057946454195090372189358508667733106024697251205379987845009831842488471033164050566344531675134187559829302255139178359766553394757236937928948807132819947862444283665661325220037725666465235009580398608227580611473632404364508178050077862478260884429196523848860966761521519478867673146907816842020095318416292253584908351909803046823038144843561438126387176225302795042099481304325266114295562305455754622855193569799191738051013130329737078403200046176168998813352160901488600179736107641583800608588122908854458859874059857382368926313649640219357384410245816806734957725380961243146598092230645795043730504582790832961291754644809604045585738873083679766635324585708283541735439223319404079329365673596096365335986942374272921674439164219638075684227386275852702652646805115294854801317829064963925485004439506598453032660755343486283739336807028095716225326436673108313209095784164082907071490149750427585997788836568556208637217466062763090070777867397665874326641485251213413589369999208622345904417717396187650708795348504384758862307675361547849514241537733143733887627234317109819673917297249383381442539471685986673515006443826221970622007764885446635760884872282601486646918032892272663531231779748152128805569426699781192899483262894051036520462191108794463719183605037289496510701846023989847619310308028820511631783218027964395096379538630719476638098476531795191672095916582308945649842944465832916599878146084498500838563925671612270716168216318855464206776727261411492912950475586727803635589902173877672277312790563876127234848847165147193143074796861782219573449190048277195300698055210627758039103784575064968184610220412464820098933670952178521511821495578332088933588065220670483173894095137360596242672016109079286823651918261819158429289356517697055512960443689895664051828719629521277235166774934333062065003612434234100051384492481122399064695693195924994680242532648275976426032138273822090779536996216619649651630664043771317380960900805550033671135904252350346431417082660301419720637849535738427889122683111436580754185147257400334289588255863321139053938599564028673849040876813107993256014296000972613925008695060863076349081819053825066557738959263601908789780965687643220380178242435947201787901223439804063703901973755979838785524556386578444816301662693541336302266176095401564982970328327929185824347108041747466607354006322110795508464650846275866642299995169472451268080362808759110519899561321656988425965140481217721007041026720111248824459299839738859774822145192909084990983461701964755424584743184819793893643841744873902010832221465732652718484105033244616671600199359281960568152889160633874071890536636816489893608026825648898167678830548734502391771842205751047500493574914209342370666836144229248987267549965649948727787961780774760841301060778617882505232783071301727012017771924041345004947210946165720501686335718781322432411970738532780710581319285717605958330174241837416939315789874118285882025046337883643432359179702764913904079633395422089990407610414235988343801220755629432447035056418770576569859864174894764087138127044737154478879403059999134315517426896137883576574502544921664698495916249159720991328103900649943956795651206878959866208661560106386850445096092245235213369324805655214737167679232065204180726277467984583445649249087114578318129579137658585131828655535086944793634363743484217331850656670911271046874752301553091648983389013237927926825504286577659733253100117221632555344705354231885970079628883277635121374122410286090707071291327458868687626137680367603903029919495602050429770692955843159316240891391866009809402743924040564374565347004965091158537054121831514371723037529275575264237570889881054170731271573603638863408379134422432754655789291284870317381600221107541916065768256744559226348648417820006440987059410212549320540954948561534541655880766694367212245963785127598519228951998259542535228067833229407621974788489408109927929024274583966498805822624263727837480723715113079174969806311177696850379481748075270131696065098939622364173911566294608102517188845991656183773926390344095704178712194540259357199390484327632753387048636106602608786220539569720129676896223835472256746301776228965477239322605239349650481911300582847350070178501537968778144440254278318822415769917298688821519250459745584514784880812439171827327836192335683955428419075782646504904967583424793557382258788450381209175662998271753809798698185156485711472288181438727290689312311400803026268193763861524017086946860328442051097102008091872057024997620959516941914161758541591250777522365503437154338991396888512997297810055178773450848090201815039743650135376594603059826597398603673996255222022544720350012804063180794685260748415890463028322235810377724077856954837139424003507958487763383266827728770350195522646696036623534626987105691992409846134418215488727018192473437453371967978701199844825148591579640138413637836236940457100524051300666173270790452799622217936574688713926399675701252569966829887370902500442966188029875430643051340731371310728449622998601379636192773419776936604915282118277011028172482788882397911422932857158135267408891460410709459124296694729754721602709722805121985451829558873244025668608510161950727533793363572804339935060298911949369669997496610275165650816872115096581056558472554297513532822978871198558732910766974357860479619746264315610845244951363822045579158768889109931634967728671624148950775703734390519824837082553073087194746637829360801692238982944218584009010060760452821423842078734690565336704828767090098108538449133303982529121186111019196581830366122854752899262523273286644339075654876783861881242012862307338947614493812927607968299718766639082543825654781768597235976156342637111661844744625764855991118228457829925193428885273989584100786809864908953961824749858669189956320536850568909233652005605423747436877918246281411665251752696125119227243830034549817868481737804485722636629309981802528551014271978170608382365703505755197997334070625691432566855925660899351477140207193362250099351372025421905208281380967133161789920807828674586941557641778847713835897092329232646607033020426868484985272787222445290261645341416438688767446528571250340781243473191237444113318446332321643410350767417315190702888094052749220828053237117428464659346078069299706892642426995813514060940148963181073571619843161339723788869888326063187818937857612478899045363351228245728191853079767885385347824109841304411263937863075206384851151057343471823599862822092558801005066637707949880167045808278944803042697515011459504916881435930386911273915877673237160230711598471566592929297537484600352199859797715252582821924319761326216665345701799145776211931485095127320101737275903972109613841959354417308749074350874351530235926132359923741109360019574705245543486606059279719322371585083386349000588670176354151518614629715665121825069295368362391370099194116988842396491353528350483796278561585232548603514307628656711719356911126446032710794412268178907699777896988316758341462182021174441482115600301687864488467183686373371054023267554879416946027530250820702995626851888706935831154492037507582182364318055791187986211070082160989953212261102000793731672655524431038848745697779430166978126803664824602586941486028079341148483940960080640643651362909981304301383236695243827778843961695602942409904059284029695902275254268884513653432430209794256730614247112291982313542132681768686129858991292132888910279266333993334166463220611197160529607977912317900341173079100018308306348400693392946846353709025852945688276988308751961521894308073117560510591658566543080893548206023038296513805795141196227163425639828972342931735561427831439898999699437873323044725011785181808676843764890085717113655285488517508507704824827458326176744427708007627038383061956637545519515361284887263657727937833269454553244994345476089391605953395985807449084154285878760643014360834448465276436946382177163542769873701690524008253849821617251643796512738999987972344775145623579625041389318495981517489287217584600444203821319323135453641733042800421967012711386274554487356778926326482958352066796786199522906263428831658579563791816347352307147984526992745967963101344491239867916140493263536901854293870720052496586863437151613951249753824428888927792283435834221468581181644731816967711382162517799808604723127282472726451946619235738848287512544143861714085979755856030497362987430648187057877896994373429714473214991488480840759140999440184408418985125536518005839982949804191661530977615029270834274514185645374509035710198552539125447269537280324316495667736087120443993582577907098079009589890747391793817830903940877643992178455927929013487076542295425417972394429493405964879507639716125058282238870254811961737959754398520108521102211452998607976234294622547414049089506524111112675737654376373937518748982167394874725705628807620536079063560948148788252340919936102160217984446292884883117208009408912590128616102838373066957492407339284686706797558612687936860511743144719694225739112733388334008756575651639132867656638685891071807131442432648765624608195189819118541663749537297365214028032585472001553425660887943285382669363493971255469583550288045360333127940336916415705927499393849472625849923938028027984929262038867827940127419361354505996841818557293487880175444539576303772101240607325623457850079935191801748386308209893276242125541369011810912335845643556872348947927241543353020211400436322334205918925102202606368320519264759085903172565816226622655404759151328671469708661387911797275941374212079201543702890855030202959365734086953241192976114383471240968674196858417647623861670352306061064420657073416521706037800126661594385276328162550772705033051860969796540712394594117765623214595565362016728083539712658574883622850336266473728357539598526389270791500581897622763752663218091457078888304028416034248861973767244889256537550227640777643384502715046979226835258477708799457823907562910790300056223157180931470849162788493044592751597772269945769371392306419893187907530844433033059255754658811462340688838422654624247835249812356738099288186364065966254146990331944130366481597517057390004188672410067873500454260033550368908116739382519251477675117471392974188697096570156714116140073857569197369732365840646645225854437318184057077467907555760497895209384608161920868398322711959873578806432774069343989227492563193764487393315506038728689786688934593136326322957539477725850563108648776196685782199738493627409164178274041046638404426944372118452245663130821600722770025968627593188221128712849178825149985181130490851965152763135397277977595614980872772486068216578874422553477399755809353647869476022612803602143335745216059061069626544855001052736668306610210273362290892987230103814082947392504873239968993387674190538074964025229706772004456112393248573906573463045479379290406160929420735717199376605225287563402261575194226839637915905946340314947653685304879527673416252375071474680336550643080687069442500387637588517742827890016826419398629574829329585321800205871896114471888766320841687625584775207591917547547026382214626202772392956401633794512157556715468548158058980408031296171822896609201238645728118929513871936092422157897630162161675192204654626682178507787531190738351179044167670116373973889530413830220216042128747058984160650402225505248887368216805330299730653371332226865650002321658646066712964202252838716783600092204483887493463272613694440567268472080898950353094854704169304604142898674518043132374410422199569842326645531157113792253571450864330062988521655114993481054430892725003311063634593841800543011556088111330206923215238652323041236103717317897019592739083595954349116453992044858809463221664110347533894148243361436832914540702004488297555011688881400274817711062807057823471892086990963452321650056653869050869513597401869053863739545005031906138893446816670821305424425809426333093364493460346698769976127135034651223385149347340768866097885625290071714475114513916660501356912321962598004874137924287691915844697174973972756704057257585189532529238595816964100402816664530450156095159146871000374400705389605391013849372473407108256389111193517775866415838176119370601623352102171975779458474233593379110341024559271345127718000489805921331028444052446361716003391853705821198060622526927972251641096244738469003835056733774971952513517262233089316369099158513139876651990538170465037743069136034180948158496908370993275021458589866105082376519759444438514529197137859708792806451536193031553231139348058402644771681277042815288288001976228892531916984521508246591659876189837798064985898934256814314112241578667351809979715935766464816938199265094953620787903040576921311324635731964667688426265140725236353035340519089810934592166232651757748373382669150587438896531190742331630045788337806704303331136315787586484935896667033381861107664117305122082541118202651794525872123860314196899439385812692928573365325046589115984000525227219597699404273763909657636470982154630497037991855781039277243661694916506026622185105208737696775786796560934764793260772098676680764256733758903861326939947275451447044013758467648998675069086654510088197526082159088357721075967175707728031596280299585027951833031047499950127955215728835202869570175587265465099128335005463933604356432324185758861118119872303335935319803477990961418393429021337712014116476437448348057093594256351331826446546714463520362627198195490289357114873523735963320202313388193912501729069520182820211372289129919454346877285951729407108605061533027221978612979467300516930466370943149559845766208688087781912699291394237978243387666089646212226088440270385601522054161014740210289495399086469579089604442224675800863693963924782084779936928718221752368489588263474758725149377295361333729420442918886803701442966125366948307436172848242630870298014212220757934511458020665900230986655016785238945864715233104918681678807351466139003234696901657310831602292004470945518481810057389952536283790952253778031155091494002049555636658898450642515774151322404328937638143657901530688055087857281353884646667246163804735622570594471892398929749391768826399452994121086716025608925068191206672626817129798369138222301548435569807932125685267081898009708315427713315261077912149210384861413532060625950949248630864101599821818351395219083404572036301979245395829955217508765884664888289682666646773282152702178117115420274335005978585350038638926706237575303963260767701725487627907133283529680532651946324572252308289610773156897005401182044995066732094652193316899176508536251753966041665542653558139590348975275807973104818467079698407737899125621845815521262042377231003686837802896837046920759315660818827849517755817155776039346054566589575452353052433910227119789852790534229903301424969619306829127570549160836501636333893840230254043441588194235564393315277455282476334399748031634242824668438080632081346626825790071112574066630079617876925515437066705113765829357772781103421515457215550210981479520771025600765596241519611813013757623555782184430729902327424432031610692958457111045397983484644290959206599892349677249530567462334206813278884275933890580220773333208191022359680671083921695890577899855775468093635439718267259004627708337457068900866111990643966638849720241843093284750786945369264871205803714597454735441903128696109843185686971902220659282184833660353209327634412421918105670804979795006743812218610877454092056862523515940176682051448493084648169154227264840302480417216669310134331009941884188547016836443694436283676786927603123396858519702778556147156499623349250557618835113071002561297409544374842388376146851327302889161363007993086517761452508342654186770485746910178490421737891914729846391697108538724224629738663149928593751330114218000729748387077860247186232950410188036540455891119150668534262282938112368033721438138414131891691991068650789063934503059426603406544179440204030857221055592277596113994152174517203431001202343243784897739948469919566566063618648387765214491077808786619069127090091939669316029327799405202074689900860146054114894610162621193924017570776864619883450807108225398601762787344668388255926777909075722284787142488410704544153854934111554012523051859206378655492472966366119233832654156539301999688230780155733455312537538686374396108869624249339065324966780749988042893641260651422680908146128658673663791179725393505684514554562621128212565905774822045583926077964023120050143513813618968897797482567771634268266964624834366060806778509008148281168909439798274577452291510774063488394137270176950140631710318660800901691928468849210303656019511348124572440067582486153897278868545683744929876567701333876344148237865191946208913311897567911343297515576051875716017081778157910811063920325981021481719446803291776730602190673669707274851600117288605488178766525107732849731555086140317024746653438741003375281590143674360571013447652437269361618377293303964699147818872941150978872417896529950503135211053445576374613829303990912364869647714061616090075047712265794345550960395443697195254934880421884285356921955564236750187737809399467123582030465915883434341747247935444463298651809771082919641784731831094126063317553536402865753626823646259377882206314019880644250563851282788593320013417500661571694550742729651651207287861565651145693469419385614537845970370057018249227386927724681460625332229628678090170277779490276854883054412941988937474713457455500986949933769017169010135967556931548698556508749753435184487031511168782921772331245141782676318904132183910208794971062122339045516274278716879105398084641162654879759519739033813535224054485131080398742827326981074073721035714374646100890624678155947545398810941114509648295422238184494579677770161822787363219263393200722405914831517902646089331180903005559932716166474913322205658934489005860335827897461169577839405548545048343641008121430888897376040406100450632330163629825767868221705018944562814820733867807465388869719616154398617695288092687906430399570797022635139093745096501860640255682781357693223185644194990443629867813952026687316138041455581523823872582849843728405265017263185242339391567456662742731084190282812291511844248339416091235011767693824370495635094087803884023177318630990640851931712264250184211768975387600115226555791359681348414658274506712208174379118992207500906899539883296350560529998589666096191093061414778151345143145931607231984378686075053250165024239133883787290434629844556302836781460238281121936317082477903120602649520858344467617999383981563172813186151971999527083513296472503100113273305345444508033121584182884646010139313847469275820060131416246408987894178496396559519235378054791728437700071140547597414080380973485090360792087891460719408724073193568862578008730109566347412791129796411048538971057249846664012350293156517872987202363332035390816844814347087552135027720965794533373727931246829739079052072196982243180069897567954354304765996054186410433252996861068030672262844495977283588612091682786750863616769473218552906559843554812298400394464404036748486100150067906386281230053720215212236710488566876268932400256686372335493996410698706438243351698337877297620646552110887320299927211766841810706596093594815499909574176262383584105177371995629407252591735913355189964811494615189414280222894562347849983477168240406018824861484547720409444985387733994181266753990538513284967699485850723769503595980334501016440059454431202720739640483436767929297743755358360030807083115126973888274851276147253607718698119342270708573077211228259392522820818216423540734457805908880283275571536567431443993511468114391952934363046478026900858660580005402900149162781425801117843543384138830170234635989768563912142509623902796240766215082671920505578605906353929453588014463243371188955588520867645338839926906698316147172979971954145709878324926680690370555637013420336374937033000251381839540325383983752253511363602981226695334704119163486457537343903623753365144382973954291541063712859634962519197187166970522177796508640357932273734431487145649054500993499052526235100530661601357244551202671623137724052423688577296933681949242477481426988601819267406583810599210383356319147345346089008817037525928028540731342837700880614478328009658302739755285590661096094379778458117883394227746638684961074085283933796568440551212881548523340031893260808356924843625245783034516462042736094222569493134529419002764221492014960773843873160823264157117012254409655553390853657943102767473380300624093264201100256811370514758553176511852805942210795306202941790420888490429531071201657962809849630290832403836659673705115602274054037097436529929015159576488243532606004021720685726729172997692656030170133840738055138696579150246730468709748059406275407714754820108619242531456272049362542643003613367453776227985291048747384732742380024010399941443365616836129283487956021580404579631720861242526932667624213021645414643636751571165309114694848526640218857893440448507406892229678620049424495051959432206133063463928887762717043141561553250153927509351242358476072107372224779218658911300957256543341722185520379397387997447369949840808590428267064132426906382480676367472750269135805587536241726599368286826830817569282017924588927119452714328844523402775128266355980062181723474936915281024692487128067510008370630941799499493530955053173832319464943882515211147996183177352399830020397140460303334705571071313226194425480883606833135467757380047094053668024209375955007321868903816708105252971602309927242625208168308175216695899466942203191443297068009892193480458179250930734244936397365548570856353460677325065704392287204454311511588630628075329188120831048857836354593506244893867615979550360893141348646668475249404334510270661901986291417987889417219884749644083811746394936286303721046171605943189205871154577109634459015878035549996264371010640270714983231521380515680226413396748761764236477114887425645206377464229289152680665848411026753618360439704220863191314220985508556187302384647287624265163514155549474895398452828267417545031778660736827086058297675991618521611523165947788963639865619104666233021955130673498555546822562489769686170651865762006986183858957234803115989303768983270607369915199367326246177245972615901277772171790502984856804400087488350076446262929608119411341597673750146165646770453070395710349246120361520097061776107792536509618509974279463803691851285871821814235168009548879807653858620004911919294489687561285729039451192268305795300632133850537740845489087458425381885583860658243880938315371263259655414535046578070140466697081410336046469532851969589320076251600354550975732072131042909051995528521053429888026949456865964330234321089293307906642772231861759292461358290622944308147461597375998778863001198644548335474673160749569262608584413733144708340252870173935602434604153358723933816944763304412201850778194690317013604313858870332186774848006282080439223708109487194703311018076726288189717914554838939150208658130706839725520917809679076547593567078868074711173180399060800059259800405177590316049610166514060616698941724275538374366833953344307513847757180454716396000639184634691332446940780702457388887845347127889291431534580667404998011538213601127499938523801808632619569022443892963628654858251219702004997463753017720195461046275321402885802137745260740728692684143597542524468371493615155051781212742257241142990528812084586313996097433890136822602696603710875153872554841959528096171226683569373016216473803478752684089874763668574921352908076777171819325914560464631569821826816109708279807880646541292649611983856949815012239301354622988020271865174517597770757771455620743929921591519115911378230280597446373221590759754252017732225274468938355737505800498280047124941197350456028710900250830186810211629124136701340652924492364266997884395676627514465376626811874065295207993047939457615550556850596307941951291672514727172391631299769348018969065503887958581172865750054039415027808200094682899810910123508916990672294006521863354488966062828915530773765702851110090990243064085806195499226383259329415382548254545027384855953750092326212998518415364898281121552165979233449832152443789274466652795593965691929564610155003439255709092453561533014682888079049201865915149345847181230243700430810179596826910273392402127094617409277543438820484358679979788023901269730481669913655669437229875669884146339561365720019298203172076446131987587834318377140384036322752700954963711576555459381561904479162151569759239731346155530502134348377637814033297324891808900802686416935978981841686012580584191618472829685449089768946018718989315928611729910927945864950897630169148344432000370925788611116187955279165788464529092562335591725970606223197419461652717310749522808240260146317774012319926705511528114715391151057276116216663208251421529809920753868429140866466350639863151509303145099443466752600741493967916257617583534674040496053854922746610544350090661958846499331454978298913787787946408508815435639057369193909186245631372528237082125576442551718426422163351166096094735968010384391724886430746883272104619288484453881743471246439020063889130728454568296267673423611664326545696774533315559510536521833194275269740815909694243030393608517046133829474773131605037925354780672637228336020178243530986795872758142545575317021879465299679562941887941028555688980104706722775873039053059709358666711285361839966501831056675620047455498926005354402326651308987043856362558773152788849444540987289091574877052603243408410040191648496604273358789088141287428538994005021902051723749707477426198162634070636333611233183024667881838527877783666495665530620492630538029872757336209665578233450902085037168475503253805124735927255040893161947755617203768443084910620651006512719316430210417102640318154794528805698937935315618868056536632671396552862904949812749839985027559539716726591582080035133902782331250325449675198144617261778197439470926794233305930347202017147218335164677473826516450090735665837974965135852414729319492227577027721544509867578556118363229887115609781153008108109166779577993665922055901733162623146410148135464832155288074219816319402556184350536444630316578241387121096768945564657479350533980393846396988910780103249873438470682161856153822093527896140854643051326517505475458605301051071639235732075474940003288402999611542734737682862681162475162155090973032649829954249053513600394525347706814744109742401602546699040863773297748623711130506312793127718917282888105841107041062606921177351083226633137000267226393553553430967883307480986284798102502101968948717023520313665320528504931807083020066859226570972230610320303720010484240958476995363474776131761166766656049860720089550232513579726103616772265064456275935924911934039790475987552706539764831386933293118243656110975726728724109884312614746608214856431116802387268095267505670802332191081624976681722606831575311522179090717355581977677921557639823879888512533760256087590232001894499944828367779241444083896174461794481430141945320207319976942458373448221872623170525061054415328827469501084701565490244722118574277090172715240813570041071987476891725139221256168782053022753475299499790717680660228553297185936280664103623577609528795251150075679935961941520592574635542970492181551555312344423013418543024711232905901062289252730977492406172217729282807402369819791734872542614227622048350696461061627800964893736933295546417726457996231672515146340960382039924325584170133827104034479667524103329143083369440105621831495582743383410014146757493375785544390404814770129129542683257962410149428507331364646010704422750936856111877613957228059074853417992738297116018391051100456367362030674684956775744481214986593120500519952649005563828285671523005736967168184947496040364792709750783809899281753097153544580288007801609798152978713601472671868230349365544893397862605840027725685754720178140575791460238919924158903306280137849856918364619037081802263779070838042743295316190179752134612019684356450026379343960171296582804760440439030644504661392646943992307965285845866426032979066530185747325541326937609210948080132991397582281188693672077064986889132817147676317333629465078555952741070528980281170811561276971563068222584785207955610103382817604854673844732762988036497768064453757464875236754490056085191919557803591150655162836766151414654211648539251396344491473559168500689372913376161186142909036286498097645222067964925652159798226128228794430710427751741079153425360442776097661525224094534747998808231540547483769293870297841655979128216724776674400834278840084491529298229384742602419278145693295976087014490495032852597730808092614474227557353927200160089798612237698917455424826266885561181832581672630284839996704971487969348942484196741529886301062467641345659245313623954889096481275422297996545504206034734037735750519825563589671917092466024169766088919006030447010863404129988707707167563198433143948759100944761865554153631503141498862776090492382396712618953868355002277448296769568343604017641601824850263423807599867121501466796556377482038340848007235043756321126148539381119993784822551214890233736005625239809850555596079008702246916177507154905444855494703647672661581896908999895104874528680177072769511359539736882576740317742226589045704755325802958596936162224743042998779372029967325987036104865412778188369529256649946722065400539927304918831385600785916709909510064437468031749592093747525223607664629512162099745305422053456999909806898778178864719624197459514118342990207834857521335439929903980068749069176383422360560322267293798590707673443022343164958621565669845352263487865859110141616297438934905438679606284223461564132172655353324313644078994454890542164995441584906053045830942173127851879268783260690025433039802353102305297892663031427378221076263279543287809199722830820273581571392934920609741435182052666247313144443227881666328220587946000448328544849562230838493457999958807041175766403945295418132304279710127824553514758543326837561705653839144787010343329885006532492161486682492447388024089703113182667005958194964356569031370784647345733955873319986676424292718541326719409813653729950208556161474858147242578425243447168467743564311147929367772914916030436672148970111816044338994440719878372446191048208782226487492021113710078684540538444748374861007683684906103829843137565025685792891466165247921249411441996082954119218089648542711805217148234657683170517385775557211612873651988314791785885901892312857483835806810760287484675078303095909781499633271285477380120713288215683095989325584938401054995663779946594982889266291458094088898422138553086697829519904328624397794790837981992390618642555398059642185463027649610937662143662796659824603895372285032325439649155774878657200165808015407642694544118665405955556141577262062796016487789347015304728012867581279643879974362165883239879330174911553476940789301019868274569170098346493030518092244669476814707237031990566793189432108186875160668790654346059799552102642559959074776442317912179118259486192847714840864286323478424206103308097597709352228782845017561734907573330879827735151209129266362718332594970621084175539033870848552372270795153516817363983319180879681099071929896725047006068500431110832795957013071017913722363392956053444210512707588448497647406270865194569679837172755660074561004895600763848577615083171073295968989598708177743447585247244178341917637368412295590198522910332425810003622159321111048006286894425422824155896080448438797253509998107521940541418964631213218213302512881303279302837515863627571300998361671284381027769494421270984187103361498822227605201535518558415363586957570294692676338114642005932503907316880808637924339967523304778073681579060635830929360176633555477554187689880146820745635824117899964024730049556076685022444621963552439327759613841589979646698579510187354861851591012545674859543469117007008407526108589119588768722304601052576008274281327129672161898543855730737285269766188829688739153912694802374872831892633019174982921595951876530684776320316807593736542942118600448318759128531627999741242876831296102309182741635802381388206178513186910332685346665021135394297895989663502809075731351811574728551866976616135930139990979113405092463789255532979711461408829586544615885025639120298496269379812836371332456316853120096681803809638663038231216272497967616808102244607999837632804180472377866102347935356825169014596550805986620406177889500230137009520020851418264466920591920779545485693840687497054105793121003903854346254725292591024735257550864381851945161146075635308134033583083300271165543264904237431953907366594193477589852858335976723995448505111724088837138729897186280641667678593101455807035386453624944102759479923126582248916850490424359885768792550759582456309481478354177601049633061251573705781570394774928509756723673313474653802361883558281650649527725739248913593093869308963190555492574036870844866928938718707881729353249382434868981744802865571354681212363740841065567488922744265112503292245955910677224337979281175019093846544385777518618394227255476033725210162127629152296243884934730419370014632224220125292338695440775595548680015742530070279547314688214794656865459445146468694510475763087798360216402634576959524132565027025175441278981821592495033476478270855681526139000855966596268378970729944557633276586691301355459749504987052619420740850378936682144288772772650452165865317570165216761083214517108420664592228607918212661602949066312243656110087927827648952115985009796412074437706401493042729408476173464463746942845669633786496917571889764069320183127614309653132575101821190188809867136783110292883950988368044213500436206621265607531948186496979580394599264733865873700945391542711179139299200725120312146432513273777363419931780654210300576867426283741723156008894149866152497658003270667775450968530491513316612766882681447638679477886376812354828425610813345075388652240008285114488802398679729246785055065097857611309628431694718955423697048442543727051088870789947944983325405302486265010794552453174583183603049216414165785705136115203782328210211808695225619953625333990535540242879743250724379639975719486788449062452986015722988524842256024284854415907666839027986951154938548107140317287640922592710327834638635534178756550005923936547540739701612146949204556166158365067253620271852361931874507391672628774828518026142227984823868246051228498530294387330606029432830293068431935638681979887207091544462160702768733340843252084563856476829379173742687364669554191245781691345451326377821404586395640290935848516044813206878866772513028044278993914003666328927236347917504933497459588312263331491283738245702571240020077900369191594836500493819136291311731186282786465309464617114218975120604275064940907479721351065465814067072093827744194899483415023162830721382379897213365813654665976024834463929297038999075185001905045407771293015556079682614335183024478196014523987570315981686409771245993222943224618698431641890471566711018760113574335535019734155476544532384576810510211120209141765325563693230439815156903407193145156210452120651506034470820961054572524369742304219754305904455366279454703601790251595075000511113615162507715672913702685708416537119478705344441758970523302763208347796652597780854547123754465282839429580416648329661954954686552448875832959178307976619195110062986786004068051766775701175135061884875222606020435206314180144066063990705691351376939919034639749370228520151261198008404879613886708823267595697206199213752224702167127064408265773237219546728493568237128996543083765266439879477258004231576804677531171961105272598975990828008042715842174029748398581787360016798091686972135195792719277876955776323501262077987757798472267717490637321853726690846481363943714187282758990501170667774285059312137891657381167991258658712301108271461090080561927177135583483276537848316859658614675526754711284937638069154608361420798056954058352275622664924741068188368072282266330299278714829484270610794170310429321136283171524141890208230448220789576926026910393933090773970936904163730253276881396281026381424646199419158373370500944161457143598665174934641295196082437213532851141176105224269788109410412670117101745585233217660826443765397460909881914839516690114950104135857571639843120437285217822966581910139707650961098195998301781469588959311003964190187694485709011299429103557117894348719062623266823626325657203205170844758215836373162607208982610727898799519482521984899464682586027597934800106556958002969525987948297629732172589679239832232142531112420752346003619202802049777017673104680830268921040605519481868524794739512543958365099760289256231595750083898949415523925413107932109237658994083463278806150618829986881270931806686166180845742610623910737438919828032780796002388474105847872713561176902290228535309336410049972633874852533239153514116546079461475723605174834189605811941182897669647876962617191249474048424562038802848768358437328154327978113207271373880168017025610583248471469880099029548410725610639662809805913076684015292912612166789871225115477222089565450654917369656985277260580788720808685599161548732949049698334215226748449753903076469075883395726508968566212604941075294218553456682110036191538100364952081372074819423175223361042359460572240067152693888589272888959513356971615231610558983114858649483331652264503865182351739733795410208775175956499641951671811911608098304629254340584826770475010013587787456676447407878888132010617630724028602349500585816150720265182885833094209505805338630713118105678968503259145907226189853933394767612367697094532538254187627768648346382818123851045622645740855812938312619022797368372801955454012455671710763279510762612771456288943840932705318090221102758697869207078603331417603049202035387187068368273728244038808520788896956273467190929700165992337037214631016492475831868020033782383026821664145674195828594897492577078082039674393985103870212097395065485918412437245919308327249567947613412890698237404518110312887415939825945921393567146862090483748293888075038891852963961842406347368822039675145582037419887690621863443054783323792395619109871051348169166693406778049900778617269352381043928693793388396244341831328404607787956756547314358906762474858434123894795487427131109406033389327352750597442585648219727019440146767071019043006715922719715330907118769376065161622364170478777547943596281135500113522342060125672084731715855907591873106851601758996095920260720941985402491164302835900134870308002670068345036998779266502287633739367816921121075859247927678988639607661836191270010605295007407106279987699320603399686200808348979823938142904122276240532609803325033430425184608220806917211726298596788867025770573594827458808930054564151699680396762021711736856206207184548047512605325149900601737170207914848642874797427448303762852981942224537571417887500572409552323227293974695060758235997974315137650685652219885750634684982651502873340136179479797700402383296267094742760405166523642614721176897894250675082243014297157248108146715101017837412733459886994649555132687176616499667337876998113684822735103351313579777907070919088911038749750588757257528639752650411912736947726984809500817364079740290655393953903998240006671688531637001657445383920930740524969068261703616904091755912446803124279374534678206791808631405724787982139878741056915588302048282489412997303795556708868218409253470754732103138615885601799445695695804956471016875961459489155400472923557709318063445870610867777758260025003945649409675689581383512869781885616281929053679082942455583058234802198795390467768492865291586900450933807008986433699110467489443818322472858792379029114260283346525955109643785203284196178788929429823269620140161481037426123924687141883873222533248851312015802340773447673593473172244646490535232916015706528447735054203477669430099105114691030660681788233712071905796933053534896401101369247069557232610935513532372084033036907828297257614081160207269565584465474986679436890334332057538177057460466037463799054444196690272715175806585690310109361806529020348941479220027765129198679612401705136284401824745810792500653072089958278274348121541621114180981040547900451325205157978747160923334175952741765983858209749997513955745274855315444835270999964369703425092240751155201889510243701505909314884989336589147765454482680255585458507858904865571409422380381389084316219365218299970415754880402773150593849723042794700917665943277655139458276744238391706741757985220542122492290976746662745302630417256482510795203571209782064935390332087156694460759023822456989484932198406831758715462673102817754902303084218177077962413721614199510548346029820997246757257454899936722986126132071149443143795296087763412584660093474478772567751970244820277697838510437255332879917683427284083119926768826341152920107585694635707023152439451409977143909534203381392371678984179497978705347678485992314951105277010112192154518732641195493476301967661584731564497345233822331024999664116273141239413755236183707105743562000931145770370323538624388856017217964275099222189976931854098183680976908640453327889681350795790149400934281517774375627390682006431144967029844387920607599398109082472468238873804033773189020352560448800905327704711722432799156941051485582432585349098512390204527216923577924644805925519141985686568822557731894407996646588002311208236622860861713490714484409320375894675895484320988557162808043290000667620835570643583756500920716439588387012785114375979534473949422402087719730968347050340537028637029876609293196590971479661568432922202208021812200270878909304656576445156671839411074708382287199181119743572835773964697307524295687001803933056644538622155869390401209239789411966482044286279580786045080783480174857078710887583280812410005897563612470163017768777207590952059120668005942226710539340604152031208527435178452314604866736549289460693144217743994018112681593303864317662626195139490948908349457806015066593050672710061958913386600470711132364011120880281848046121492984935540845927580620311212632149645678265751530297948702714474266988494420823696434313658099852183010739987013105396716353792848291573652572267873780280240025843675439358578992013321296252403869680414052113623027358104991831269636796289079470781293740087557083951129904796869619388697888949344248686859432701965206536641902557433912383553498477688155001087872380633248544822321536370973551136654549958865485991312680067580201501451414042206031129677647587030827975775028121124425219311566507362484723394673449062868076350276124656951510012423250423083206532424715979125481401102149380563061375060490121907737031575479185104783672106975724984734714737468036753044535019551661779765559037896191551292919765332345717997482683114176147328359194084744138387990480996787381358440533744852078876411737357824470900689994437623440818977758700639619406176327415977514815225429548707057030091516086996150703593097699279670665864772543244045181852141297129309140428600424740000935847837606940471263289817325240837383648363181047862092603600554264945357989101422037861509525845409190742896818233214637502254828497209520587464943848216889057687960447644017387140327015770093731530425887910242031064192475861471749447574598447076150619947145332116633981265377159835766995617850789165751330830636465712667458632544501588022448962606799988012120335053820127259070373373731886175594247906365307929599017427493847481075793400517067895581609920942806217208140137243713701512471880395990470464967984220044782544193626926877966014140987091680109766640265147288859843363740468891616979219347583606354675205427810379103533839629868189214385958435693873813259568557604800088351109730698770928451178474479670495434823990434818175730079240811277781485324083124627608983416009235221919770946647501484131576591999756550282279838242838770114816625630334308022048586494922468188506394153739554779668790003726797837690619189765549741526770100014163903596557358779242470445991513611976218127733803248687327895754778016891817820847082245184194113537699535707314425428580410829684504141588742414119919479239697573848176268490240699909393983405482328294563581633679131240725304559567845890336707605946659704723985025791107791914435588103558736724098434644232420150239017707400087277551734627733383850058205038310916509371845175785268786825763144865105346756681369167892609494453588978099732209026825282558758195875246038651997818266085487686566745870189680253535142385435138133626568079532634214547797612935079720306252497601309914492411933408284323464874000765046554466422475449895478798133590930073914760273172404252031268120693601246579456288056978948008764100072546352865418685393729526231389624313389571231932754354445670583075070057142471204160507448926432190899431133656346980719147686703431060280025530868571340810385236996831923287005213083759156154459661346461266978843234212290416758899142050290237203910895983616448778210768680788621854041927663467974869491316412605458053273467792638692541247116715645171458658000919826120627532074688799532934991718902815129011737248273568544358241026467166691154629559025884054672921418438275527398994992440796905066605991514706491615789485899433442257459916242670319318600821720561489415667420656614599072041478072901228840436690822757155663554962053857991683899836318815491054886438056743593310761088505416942293779548546907235524155259852279576807524005956383668846683709541393441230642480669233345499037237288962346499033666787914190539812243363960688456683388444117070333595078682117711212524626550390119084591138039070322363207925795090857523338603152742681309978467741462203415319289741624689816724740913331733938079700972360310636952103881493867192384307136597923968281685838918190695338860724332716199730777804229895782170085616309944399367010158208569965504587244710326243726463949960177492853805731345062384683288227439271662501506598050078647341028016347752900364976356749174300050576953342547632780455643354166853880142306322814236388029444088947776847024765357954556099351129106345675656605376369593592430980564351299355156737547786249090226995810466885071663717351914262113485259738704367176848333799484177462930155630336881242398595071210443933026993511715453806095265274274136336191149224432363693918022193959165002639749050477238726746126707338582593445012316606620773128966572296940543384788214646697474622615279615045027622540010990638315230063686068229736009219676077525927474288496979125487325799192350930505051352004627452446135843193918400401062818423091133640013299411075052018763450810557424573537987836145337270782397841309447982687536635137384278962150117491239099909608738006840189644207914749911524348115137482652253478497442634606983241761294631988272743529184714184079896824525229693493028515802413366445316257979240752802469700926386200981998844571503630960926382760263697199865874180979730862155701550632473703575239314707920318948020086594471794135839919390636592923511763570227438457607386481367350763410402747959414158974674812278471245909372997324384715868020248879264308404657372683713932657568030198951916025134855295459532063756156006387990424337078483382216770668536384811019978328897119592252572220548600828994516111011913890407300917018893707696657451443815680939628223040850621410608318893788925172346358117100342206103291144519358878501006936989318476079810857523427219053284395763027713470560315335358640388628469816032127247798251326814580872225574910329780429138144451053782950486431907334123376465823220006124987007067112143236027054452080127437795384081947873900526803631094317441112440586675764294820254011489690392449257207346700661191748946933581402406343805445842010645633139996296363524026565089111914268433389548289725666268007609176146481164428826460280228228108374250846305328911329310041170279917182036362854022441210591515625586921417260250916061264180945584822293357972534197291251654658027971416021371997117829321215788468973426938691672446309541710538330280757661307379909221131241570319476755813752737948835884386828297963715234360640701225785580492202604585844673208414747790150540280687836973312124353244630661448230383125940728658185053708460033164555990698215620828753115509745551023732431047942878707210869053846067622491889816257471460962445343789768485307285707313574515678135432408894652798805080287191939933880419765239621002583059478494777745658244610440725038594981528776738107695584388982390497042369558291661254344466275146347745130799595967832603554722652623461844134597428604563525393024282851718359081407419364428915283295271373320368857875222208499958114691963365742465485084408971059538969506664143868995350926292048792054482844279372408167140493132210431500370530050782051284046943724289413429168204657288563335461375394574758034644671882536714326080629835103190994626501971632460726074197126939930476554916540508634795656427640102380751873251618403365941001663743953151687807630338950519291153402604699564257380961487181357700166996475659533081744231559507040098798505534134092546149418625394343208861492150872366686982629056618598489227693079793366559801857277113121165812117961100585040046937774985972991552472965525365498339005893019991438483512364123009162050463011252127076053826260903829500459683831583029500715745448710416089430661148209724913518355954519580634787227685423798176552709850939350867666852158365385287160383342708072734862272825438601381395490581107395567175777513943290027228175779408279320219195928689587818600349233221904250023220175637728589392779719950833251865118360807916628511826362819216828530967586439288823698627601992514764301867267724111572074516657687519779373369955415204887552937200799165139246225408125088850582069776290700499882570691372536654267967895430382690524291086385966990019331838354123066148881134420917055119540517207346895185387965829587657524614756699498313700611209110254498494012185860582928766032713663264955563322927490864453749779350982089437960042402265449939770152308622242210423087539310180524685161860177073021798069197929060715382206929325669695374176855968431009150274349003633195564314634478807663594780430157268752086324834849549353132982487046471720923229775617027846306127155378896392227984449911848355723896198720697890745166239627869352939782527614807015508879368290246947374204906320605481263747738378699818765314984057403195681709989047747351487566473427536732931424038841288767629396048992607475637761393069211840184003964319047602435027756901344879795947721413599749812018970344276588945113129416110127588700411184001134802602299284777501281979634677013713051862151110550354233119309539888801206703412754288657512926819884680187867167517037266989837981972722738908964269488976826424419223156866116117867903104289353439394196215532114296170083456487812942540240325102339691920191461784227408934870654640451450471269182719641847706975705974361486856415420920671706940635712733086567650095117394089527003328096467220738524794050737569605249381715751525811655014394585614636884557966995085825471167728361324484379984695650238306099883383811636768182612756464633719636970291252634097079595400964359181148595200221396395187707430558242652123623590393196358956597174812006903640078463249394456027412551680576953633577860459378606535237103816194830104302861114234017549172383244705062875528744591745758620525864679325683558124800882489087708890707015202908649906994730119405372567171937227846189934276585790037666824338705262190204048905187476214006303900373103648915163099452148412901941798086699733653788383387069581024572626224861517411286263553271158410055734646666310042561989635523441719131372662126070343177526986653150498181028625424217699880069862572908998349486363613766181765265457923890848664438745507959877109245479284090009738807133392416312394284627245300204786921808203209470006955181721124764023033750116778475015998925538455068128877289713116025639483686904589632079803342748690344357532462160862555280573367023097592602084401837188948175625117956917932423409025344571754083965183669104884659209510006468937522708036248416939074918043908179719876636442670589394568724555744460692834485234557492596040260606175950813026947845404254328087359229715482773951638413690191570467659749433944232473234128782198640985194615071026861568453622851156400137250167219078816967617472639025967813827787057458137831370426825584980740116799942132480355137652941565015621925881729300553669595311061532870650431023433096709086078638967017325589724004130185114781573784160347017921459512374340199313020719301044033277221344780941354335811599835077257653641928129669941255780074719515110172366894849279179727476757894047322343080799920431331073591841450640466182241982092366554164258224331714958458318673353107197103825289125935814493893358848466676504321713056437978886807522963452224727624073484026967632173995671056384922672708095315066112557584742687781323028798713391431705999917409147914951681304444658008339533299975763531583099620609539064392104172515372762081994477341241887069968497549141036681580781580966162739528983010935344838027521675018725974380090669898627087464554621974609903074262346837620043014433846780893817810889326076076540427669718999689559947232727111285381524659843648839867662752783297266181600786585229234616309021813652979467587543704879676044591791719028702363882310699999218980239456962611288399659734718847566385837879794699596027767905213314054849273061422447832327061886353149174231883694701893108122811191493469189266252695979119662162435464816414527585736341550536361203289955945626879249251736361928453116540549200360315428289927603790571064020701283482491800500487883327876432306439649237450199774905997255751880455483569893485738850490674862432342872563982020376694197836628810889422939841882440174671666583810355367742676325696332242326429500453411785453721045240292563164133348344337424241821055015143900450608533300068468838020678386942166509705859461333860454210796939381155373040064199437841060329029312674970046208518758209512338067814874801896482228817425099103547769818724940827309857875429018244940839495510460714229509778921420756382570453358563239676277004572161949689400568686229729382605442466968902463883671831915221909036162290339723976879829060496096254193928943111606161437044247331253433831941399067091340459018780687882142196762352465030717242696968490435354868975226788282630606730267689080984712911297588730003732753372402810783728421235741455451182841739348114346519904409548277294765553713222364002914688001819662261919890025632493688807912401362847780569007038860947956349839807060812689439682187159298654539549197838690767193495621565167934504610947857678554076069089450727973581252504729639827542236952598107489839105292296417196508135900125452262498127885429900777457536534971207069879351706887721734424664625535988448819680924474641144360245708428456521550663468559573858401234169010177984086472066743878966355801902009273594317555693189080087825990224797472652034481298299993905435930621774379202980337121127291940947947080633150791111231107347642249088480029619294544386076529227025083468633104424486541645183983201327589706552617482321625392065070024185351930932472399587757424602009726697175885559567162482748091996427576641740109270580720078187442703715551052504514319434735090722535922371937302419603125320409845151722063687131075068317005816089297283159962445548050952041158206289443147476159925607535503424249799892330506634013088511549092023387256502530011228425137792988845989304532637409025671538317681117055226740304630609720018118133730646730851166820046234746107774733563980455066952084925857958058459882745998589081980533399934466126982571621980300153390935021019151114721432197380911489455760397098007842385556177412115812662730946986357284304671591146376887942384088892638120629579960357132051444858298985575829405022855771050020041125492077307963363745148635568391637932740217891312832848216912527936753888915678955840241095026395684393768583639396534071184833988918078753614779626442220116075545599262904929075084488693944228376042386249933504894623182380979356900083001175622484905637745878865213509704003133354890560844062875571287981213653101396261106386063243001475173016922513999578118193244512468728531342750991662901351136192676074137977189905133120584315652450365518132425060555478368986567218197158385379645325659315701384540744386104537093301660166971298519213935757747661610670110951346163042088226866307567996354160272639074584340503468282302226337537131144212217908367106853018103160839914651116156954674536789182511360618803552403380533329723084916651209518662436242032001120892522057878468230919899791937338621823283217570462636517965576805028210028069205176619631546855510317329925743059560294517823260572180315727117079031367071973531734716480293146279830609281240430717881314755402002530248326137935569739018275084487583122236205361479480414269442983617182055291036469405103246404959194655099715131094709162585085452012416563745928138193260140003318409049788514525477897611408591822278099706935290930427192853979663339483070303382862900091608632054731246711931672075642223905624711351789129854742541908130298620053259462535698803431658827482067830247843097623601866261358064205537316699111977348495328610202433634859087200736196520197695805429196466371132404188636347266165511550131521174403001032932777483538969779623879697780365997556087338719383430193482741666531414098300890147917869313202438952567131963620203023325890995628658476331545322881941664819764539769327408795371006661910481567177936901274172055460177954289879160046963608158325461934418658226584725716699490345294796182580961435177021521776003273103065745730363756430034703891382562285627522816429043810907824363284856837422146651331700958755138963493568170576339128793246858509611828082635497659641971832002052006024921477145087079675366755112784262183275692780398562702423002730007158422930646309194434816619956524658037787453991328144125234076263496965906212371557053134507360956176170911859294620888657817758343446002302599892134144752694853529716535441626812729734673638139441339611033358919411207641005703099591379962597688172345178881500152978265838428487698442884352536247364913179792626562217518834056112303587034842432197537420119896351255886545266400354102892235792726189962129534506107494096952561277494029534190121644960312502237624074311597590586787386122640722827765364959122846648793858699099740780152018377199581517114052291153616162296981207629495094645898363850907702203424258850239561837365940423223535240851118102073109044133326349120602944530276090806756944564010069530286265120577350108183615199224125917472605277314807187787531357684405015738337885165444790834582009754524857076760494991617941390889037177651622160297576941273627458468922410094103071805127611584510592520709545589849225769417260686115630983866507155280592496819706272750345923202525842923137289484834035886766479365756179168971082421895609281129965482445343360723022126297072994502262208828189991763751672850073812180907144248139049573895697912766348608795019425904359227175596947795854362356252090064188595622132709654876428127942493003917468915924138730401384336394759729132321761334715731844907790905560237002865376927684992555447415336286063818138059217613027411428892251722715246826311545611274109606165754767310251463017592691840583528238688148440690236301825323828084777924332701995882930610748158311548052423740111276734718455909174920601121040364208670400676791631290301226598226761722083378414207161239041972489057471731751135301909028780585460034758535480010620339364212981832271512944907156613995193040283422079630429925720837749530947394584927144465807004201212924020860613631097478418402959266678828387195267492101746590509588535423914778361972255064025950143975422184661812096562652798767217119013102989012104998430517742681489380463360163257939917827242395747948062569880093506133649576684254666265262727548701819037272113052267005820619630233875675876811735432366918208077412004609827085373506041648561568516605573907300835677261414320300446725664768975357155872114716476989775289828839366044189230036862989018271073903230254627318529135058928119580607327160555129333672383840009954960523397622253306979433359591492410762323459294576007811435458443778781185707679909970942282473804953630155312583423415741524962238441841746375331128665469269295432285906658929545512819193084756694088287758125648312643209364294738361256566198125750387221660630451473850403757883588838030457200965750421972395549016702955610755563062171885670714766251768342931150525349645755731911602183120273588757494163676148051946975572600272453327551531458857474381229666724274493666692026067536740011452923314385106456219943043692341388164223750013286657350762027950751759136143688092444401713384269153940331874183818982667208466919397474712602827788906546673012978004652463998034235494134622247376766034268243825159729447168099417794707944177085855932048194728058493048024563285173351835157702050261396256404114411398186267704215099646978019698376902842902471700665950026030342609647323174443210191583700779287887467680349579652294260580682026531268019748551411380203482360861696266965744215342179183854747425513699817897075198310468969569503433488234130309728948079811090806058425956964223116227145106047661041229553944105308850359001638513127223724888802420991892302035889768345499594988925193206580280244570436630519444684438532564631315059385911660311824546863899720860972193121718711971665853259816704262291733408879292790190997654034645898389006605514171459459259440007152762343903162277910681987173126486792787709362641080644036915625478471607903425935174454838036131105963866782304285031595003427684934803998003929895977816895978339519021976320927892019533559972368760984130945626948364604139708926972400232432097872127727986558973450742738275641272440147946203929663813498912550936864417058981233789454476089954833933079515733447577244418516187657237302042878501397983388710898902507691913860680449805288106704396054633297850951361590983952251182671362558084912513992794218979344805124874775266218134878356372442237213189511439677229288963563180150968873807180081981282428818571785473811844558916193872925168048215021442927019973623043466997605418159530208648109674728879143618288704232731152547915313578229655918008138372214070495270059521886520043039849671104012899868758582302852180457706592335624238530404230838131607967124129082006267261098546990397460346128595110049847365675544902992345194859573032248083710236279537202993989590851650866653413035199145425137632218355328150497210578645046157238692545351098905265819589078339054773493257082527139182408173735908406258262154827582212869719593525317038545791181927184139649378988157484710230916639408469075765586716361752849390574128564371018407071546131789406007023843570075735959492580801688706352448458048940085931270604304865622502135553064062119147551927596608760558209254197150420506101410317115567054399509504996633874806506102615071223666355789417043251047148074984796099546491482548519155689780755389904965670551684678341446350322857781773158183166052297857454870517216660668779703606061809230176333518967528485408093914231741829571156623619840375916322101414081906803552997918918466713870794437600144516118730825987411147450610788886692654277261575440185938891880533686436806430513936669789410404798416788650571959158017512080347159694875163193324290621498347091771298543133198683850868085982541560468305592536683772180703865467145720266528229685820812682543028799221349886904434378534060557055072126853528620924199624398162253600312770707094827325669078210572961515080545278807315212460432260367630309361053020223003342025252796027667939471636277311713974680261552156602094488308234413520197216011194027233037158606984576588787125283787449934950601392226511967549596102095950975055927887091559044319151844038259618137131403649478285698458864716115620702039135455753080329963330120038431229635850983302935959185800360258893497570139261779503951997774787419311360329573309829269514563196771888889697446112065419168907198456092067260450893039229347668766134634991132362064449407650259123086134141611936647224469536069610747247860859005539081232854712453715464604989894549670586665294614646229862273550687074199998823066392241153340558796393795957162651060567904083122091635859642347032739594766845201408733265403338728695064170251558295028279500851276174614271217652078366905996916260452467320759128643436565262969379403902470602477077174357703910665427619350817514611889003358110525043412771433589662496869628007272487629613999249368888357433176466059306728246336746633710507588381942058615845663560617228972527626978130897048950885747412345919089783699476431109071284429834519534341270439593559537658429791939238387205579286233606521277324029783549831734586049787991548801032574076494105477488358824904030980835887864948348307302211951297510063042941606611453043809126518238705702846848040025098159712617291886405193997079378861739207992546158050867679986462366281217951327525113152160061378770667684300761251607918924849130370109293716422604013373316065634375140825048571312702306886984910539694624661819999251170110583890022956445847042737290818516698491592741072049247854144119421267838984794556001854808674302810709721696438926003297137900429864147780879232172275010592624852309597534728688938927773380207013436611758689438396862399019802272835092158581942891478977392442327995181913470625782912984878456649833763134725372461259431311267088429652971430924787664255608960250229516596592227392218317578660342909533300871576178952694054882634827046019700002319130904948974610226049651010137350951775736530594574717135929442740860932818878837170745111410830972002566673069649985794720044039381461080112247954561130601128990540312466157417086411389065397854379173382158710865839087431396757438776337033853589639136484618861940618243090525862217630456864693626347044246703643719186942870659567510387756721890888366259395095484520706635449588983032605603793092287611117852175913133447729638146515763211453474528065561040853044203931019437061423000055486378751140325408702335525026120743512820923242736946930063804847999904810289957840079376458622811450979699470541665823458340079138854265666444985377025761419399954711192000652987600843259233613071060151921348511870921878756140127506744577023293521860525422136774523382700298881696834169558001351678581287688468629120297410703034292347818023961255401408921071832819191701834987712033009648221344940484678374531817195236404203027594942930768442270237478772151159766642492084571766212324069172698182660435920137891523003400895894249991137517796005315895884248034448477464772581905547395141210006827200410594814011996162022323784540583453489296780924951582610597847161056297029597352858441736745197403866029883902307084223854114735751390463187408949927299488930454141324860398054971630887129997849372897029667909893131912166111883283660814828370322481665050299201610236401754934127323504036039401485211359915386599206145402958114999899211819701702550233339190775674242941566283578395279342875641296448571398438965816303087946380510277571765467688361935753726924330751335232449506500271799946902256345396540414588553093738673606605741841690276620534161898215408201407305896804012578947178532082140513735435130146503853585673593172626709281775381742795314165772708425879456104705946742713099618704673731824738090963020564410525797424210813956162268463963541342930644646485542063755306421350207971836146571646467232359772947527489955676975328021456163159432264103264597325018027019943184804988086544673787317126509686707110390229782264253577406381261604842632767088655113737581018544784175811017785405528650763033865638015404288034024626251249988337197204465135842839753870997111262372663926680228495411332597452875910968714526222242503604107651486521876539804230866643182224054277286349803656501241243869873467850904812390846260390194249960328095983558451387070475667398176881496967550548971947049491309906763442571588521303526784554748477221519963377482380865833387438885571194609167469456483769205741116402210772907881991873171133281972760625303854205780188958665942120467366012748038285826600365249688255369793676717518842253328397681963619986037313384116038757274135962271624584580246990408774614850019598313254675839055637869608234686552377982302713658772050170187493725588042706230890648270720480505000633600362921396779034127287135996853244137168447595710508235694202470199474988309655244301158902687869450643398679852614140298548248418346678399682611902250199761247541200279868286738571134701297019106470498348334620365592918558183158949726090613788330270865673976165270667124218898140140962030890646795003143395027527240459657627975513313675859575126535144799479385283747996510866923282851237085106377861673179549907190241380521702512960329040478214299692158087727925675046739695619502946263122528412369547952006987291680012568203035276019595855617714770968653475963296340934584514022456760358547715318950444956548141566455877679313994851054978302967418137416111635980916860436117703918159729967203742772611216009501697671652046316359564442916010004487452447643519987957809842347324022243201592286533032553534858647366210720548311645522065044602044714013586151035711675305468985586415677679644591538585732755183333387340748571521318081317434839849475599631175480474281205152250596139963926771003073153863798178610895005230144116933046414190029307498897277945099096615726067535451694088632824855959842013484190054701657099140281568994540511516172755908406249862165578813731570007412115210326007617381494272078994010320310876988309302567654831500888851850632129278497627443260400734642115133139233551657764891204254554396031125291188033446994502635072914502187228908593161017407222410853329655083847724329212102481311239147560761437146780775799832182292441804694185934622510219441229817796320905398851257953866726755981545897133318184261936378552975392731035046842263041411909139514761330919205633448352260665368935819345648694769730448225169755558534464829538978579416831950470408820491788710552944828463507745162311920375307482263610677197681817996279027536985971798538807860828374607478282262016043850002878219875264221746405811720778036315541736471556232045243710009879563938631793395908678660549815662095240002897509435543513603065157952135817650590093901919491478488495846052723495225281200016657547087500242555560044081466487199995674958337994821972325280781444394679779104010485910822711601900880302009884723902699971624958175617486993753211607193317117064717558307614753834553800590737547860205494439728667249063600123336999702789493413709439007782806413083603071788919373598414883914521396844103379846158619592367626357032607996883473148524797079500754001944329955478739320836911305122557224330997933782841319225759078625638294420394662594586890319915010927455041899165247427156625011943102236423740206396770987055694081538328790050532179167816708383917510954006783196972047527943048330249837814299360149677920256240926297686516833925381484058867523283727609782614077707942096412417532210825305054557203316196808890452316622547150312904061296866982817058242859111956775067308068502428549487485814167813561514651531816569207717545377278255291976441854527722112595171879866571528730378151184500599314805744122102246265502893399331374982511201164712162037014476729020024115719474217490753272863850462561422744655736839383464957182615876058855630115260117562759146931595525062727912121229353891213394616282024569829355427739848386799406615294818368427998767853721263599133919242998896297280033399723035990997199002369930715942399174388441437731063484405628090762311306151388044897884223379473647468212822046512575376584438018497283225265485197858578664558664749097084454700066728019936091559113134487413805467447032267896624869988310220226305789381407571731784898206376221137568068275055283618033755271927743299728931990748953680257462969508934720585510679627841827335948416190904775241736540292248150956630892976249433164390901818598907508952055258911171909593242052900690766569532778192751607789556359991452134275169359057391745024945886425885319598176328179725670636445461150479813479625414463113376150779972938005094551160309800839970007640447411681048881339735019242594096670044597220801485432900665233356286103044222411118842837358134052115344985909037944263192981068239816555908893089331563485234740485257396794878480926605503748348011944892222051142451017696637400050665088701830743869711905990506639491800235841798893750464423534221831581425435109645139320328400675829542670089046606136331695476703400355071211435283182917792565492091318802220491231459620872999557756830246592008427184058045772832874408458222435707946138337211434619995161446194603438618699488746573012142455043136587918348893773501428046419948840240604173630413045603814909206070183015318966628600303694945865763245614364859823319611529824728895691027650968777373317507287896239447165567638157905323437672540570513473195957980997103867426021852470477000877160231755083040829931139701385796647733497608260634764024813379945717331110315522477776952670556332291052826300050591764667076925086935722694672213967129956493802589786249888324789772587351604616086021566731294118915694612320683797278621419977014233691359283712724221048138757514554242315748211609113351033455553814112331478486606077232465668314029119707733785229597692382761822976588774474022812527684733730297711501870968769062805238522157880724951500472857697809512974146698022926089744593504895455347927686725620230533636068452504061694898788678609138170634781482762586678713826996557987661952800264039947577882903403501561636104324804779244198046182251708769445873806816576398631503245728068210079693096465427373802980435518103886394598487177453876339937153509422147303284846878665429618375969296107186631239686247984434314939213975681849732523520258371860149733449474754649926410670853371130546647986951388553406646293751779748073446159311602892092284003581796697833264370970943132664894134861405062681932202908234019533455708187954908223606418310745732016740363185795360404576066985211272760075177669107713164787203319651876017353531755693150154324388821322173679656212855461987623006550941563968697261248854606048866053094417150613161203207883099083106367402822992408871566544090480541462578825056233772717520008126738823755527430224579664499176922445446003249084128504617030242258594654101850699336156053401328354372310817164788964122859826148671408602082104987401088148941523252526138965622309718747999555349970820149789242847334626851899816570121849263586755018998600889949429048387511623100571833072512346146712026075622553221942584690469256095245774244571631126922143558014201911537390632646996643034472804191588621196215062913944682836444989653651733234357012499098689517497713730741311768746621981067649134695760655016415345949947424072388161529395192492897857269743069311353722148082624033563539183908128978192938537956817504989014151935386694906340160208111235397836550692465118277528924990165805401907910055496084053835613823493912983392264601791481036782814770379221958756461989648015117281654314043622931955860570818313758412234158364179511284929357016057922522420260265473702745260238298445268192566189275451001042605863417509623100192037165333902355126093900344424148978218889318368306123897004610222138509997817171743328358121851966148351286371150741908932561678939750895543310433293250814817951495694650355916840901927339035454165986249003561944051994671957908709953792115189949044735845201464954802121660057815076783203723547899119222339286862938924129143485688167308204812821892615118235580456901238896124207263884818509615994836615276853264843246573356694491664994697788827182085292013461089477286525713345907231402052890834686369936098778886365185115256609765812789803000290703559809675862895703987168467732006520201979870864704429703181933234852414160000529031784633882222689236934560769557140020154338021237240664486906658675953047567841291925939929804767247903292212143738294677030708604043583254591655049117605422144128157639046722490139626191888743807923264953605938210728615241713063696019091301843627015492268384088598406682327781161341193749006901555955581672927357721477214888859583277676111964436218604761265385497036032756468125731275690768851710490096088641305537577262858406639020672696615280979557033627224409673443092512148959430499491123701148054092828079754616679097744257131492585328681844755284185878282868087597730180702277804958729768128648324097950432266209476869462971918605479739381251966998590207444764401649414826971791505827450873858021056371091388669373903206570549351833936839905775835717610149108597998830879863058338086419430681989102261122921897871192444360647275727998398273468419681301547112894323548535170362649413692410400942237254398995459147591316516732612615835980541743672574300510962238195731864683034276087887495173971396877432960999702344043426309974722391666875375148926321611925274747476747309935191282469006390506408284248638147102335574853327326712088107841397348418144291068819580490845020532566410635769830276104253255615555046355982873577331451358834276792695351526139459721298900685219916150918317064547624973492616616455115674291658830724349142616277716374333633666252705974850744176943815798746242806393861448462603815097576734349694330481587988539744173958148599374046966238490452379184911877458515284924182533846715377534154922853832817236042907261828849843572740948743497162454256775284107565338453066889111335912317552859042514728067369071876201435633142043788984476808966785155643281013635060755507409716028826813263488818905219161563973017925826327204666890452658813641507097532229012275630982073466726177527187932046166613785220213188889204400310843423986137917606987411898245527191492858779332508112295083614767030195324191711298950324663063487777008686078140274525453400299137737717285830975353770651298692118287505429826614678982606525672610723833077943807380612071773067305551300168075879657678459696646234919774443273840344433967111439368120375214897782676861476402897693257550394596646427535574041276168909518330221840826724007267262500060118438887086186042141471854311300718376326926212742226508776377045462356850465910072059345895230450982169668472575795737798310978024275493578403619628683422040998820464046568614515268588096182338124721310466416875435906609951831469745881479891210996640819182579185594696487224581769625616864144473922513212850794407118388354147043066594876045098985584862240466415031424639941672546805839640676755177924752649247719913459235031440992412583809276891469399214246461939608104186286425783104643931719498842694681165826452949203003980767485084086718018636549174479488086747623103690083338058730753912562296473864990970584476352081349824232885275892545377946897575994563383058039017042929165660686287851639312946412045013683012607590243896998983703131648958125017898768999168619263049592976526459544923425484099544050015555538299368130669587358211582719817882132171148105200330450185355161157567177850772100947525187126843612091674235255751046400642088314841009997994256534576171318877859295791723158437236840358226356503046819121132699635039504563529898219338332553546099153723612501108088371894458119719669907171606705778418614593019047664828755812728096745662452147811737029455514126885706727209132097780007498589232704419492611008117393220251892572385883921209267200024029462062044853815801145298081942091642696264984121517157658933775336443671558896400086055211102976308415895860110119582732582979719176023653765941547448047138949095103726369163048786674897875812865814950307087740100960362186064330871928668282836208039545174071044858723924645071767552761472001945525378299228730171875625777599562166052437989203015409557839027115025828839899796808429519788756857247845632091394441732698370480749131872726043717563963434450991991569936649766570676590151757420812142616531261390932886328846896337490801619346001029177727007615427867198444781480871899506766093626710775865446180606157377728990436204385815441405636942140138248347488917619424153586488074747564947271200789745834028611712360056125470742190277018249513403006692174493023015450912190840415952584686995134333781949420510326149912814220854036631293581470028760867444143175991771004843190641149635991029503790485337406038499267157501242689617049795186576749335262123033904018351099378629253147770873743417286074092548967945893051942900793639894093765350217210689419544237448245602178736689701751459951806098928827144902041560140328496304154462142851059038985340023674174206091691855839023937135907043204449838879648824805694811125801274604134428369922870167671120959490703632293024509885828326648464642001606225377942282050276340357836589857169768755080838596527328444276397795407450175413653818713141521947327450691059789314303443544446417713187146806078894032039217959899198802649036726149594985866915178611707883911716438661458262130132963039392768421247626816994550573194378720423496811273040882340276262405269984411822001524072001431414649678110504133564599276012102433249380000961276345119402180332993430032759233677700698174405075476224496070127295924753767849975614779452739037178086192686803404097894865125145626787815199517926626441563400155018654257597591028338248764209015586482922447437985970671979691011128510280015696737500713670679825741092173869143612481276587824031044163235355954834092779215333960813466341531027656442854271921864982124617067111739452318830296009680501387205636313796262753819572393807930163706080568395449988579819863813052744530551059599610066497312433866014530699153699997240970779683597335281093292785428751201376097163800007058930052311947986617925079339252444628772914443619243947125665204328615560591929934906374243548496853517023789524235149131391721515877631135494632349810772470450741917713503880887494062588940315797254579714046006911779393982902491362357480799745222891529865811067314601736792167346784346619421788276793080994037033213240441793517611152248464482025926940251141788348111687508139251655397732357629917561252871003457758666541240738886823250116204252156905015597838808916770549729293744446440080333008899030401742983672652108989831865035361079318357529173200454953603519288716538699502308752749683090508523900205660966103139726611924544244702962288181124587737031984586948730382707134099010222729361784069340243495733882072296718831132733385276964921978905952888467921114076067255723975329203736880357779990725841394734327599837362645593128809750512100620828920081518331728801026149185365323448973847906865399747133809051009313480730375761322189989654969940102160341899855261435931157236617429339294980125090670958651364171385117765043748803526744378417854182827816718829255138870671837616554282059635413973492535754393236379637461872171873814919858606910268782203886623194500074171681629346858172840589246682045213011754836237211471038525149754147032478046884118634494492119500567950327159009153523465539001271494843524956385781617858634439953845929738496465770329777031426034706633859569392439472560993035291751981075675764278862046877969322280578925852069266408915327825038389220981651338376629762990191284170115035306687530968621846907750438780307414402990853813215195696090879805161591853966299361983417507429068954982346903543158498010090424845954864854491160506471782465079460871727941091363899865868016321484387440463790811000210853924336142451348352870461566547625409346929317250789266858322143034813711509950144466076109882012781058882700913525627446071085789482178349102402213249784401855532367150469948149711641062376778548287706847646778028030039727041121567986492113161285008811953004773749406003401842623964840264518629996183140459988982370313003084399474260349313995269476065826187216570685126568852313443443260601924842145707731657458118741327331295364503288222573741646380045725750837774136844928437881791845826786756736216808249623165386435397471161646854774724638113365307562494433897485096622100309666906981489749406936482759295925980747305236745681181461582135498852131409534423573489771429433885945738673626554574261059369951106998579056651704884854395682255812109148937344465810389752330549678751814096004267955864239957069079725873622500483284824443593169803370514880839519053532132155071474658428984978270447430629627020186493865533916516616729680896585377190344643652806036338412610422876234057564995464642778052527673461750506743974204396692596921881733022179705397632008542821699635038955204322739734311183016904709565102995406707252962987868588511101213285329144155381374262902156108915206193371515151316792708987998871640314586143203247705067861365657965920156660093748660759807848488760483417258955991853302598574818258529595117197125494345976703098852932463985568977455817018422088238997474065291432610028610144016505357265309685480107627949183087338151914608710514623622861630480949311458751392859455173445634690180957812038509899640570979112468368968896115119170052837197000547407832420553394963478489324740532661418395986665204033889014776330807060525277318828252429703129242531447965693079644073321081079914594038275419451035678831867825984604819458043483057543706872949197944367707650986723890714985355457891962430717113935110042781873323940977286760207404562406832809986024244277618316099048333177696637112269135106433168007716300619217477989234173689636059415351551963629593502043462549580036966669106473295810089128045598269484382440752228457882152029971196718989606153064757093641571760616133076254190615295523607139229354318231305152082431799367030816741311801132523027215272373776820207754894175528059254769999250539116656579066372575952266947377446046664419397489411514059897419304344764872924742647927877288547340448596197191040435144828546665706407860839061498502059888994910216132792182597725540265717210669704159562741657001228894394491626630144393423407253286447267217996564975122169894412910754086596266014845411543329810058694298160106573569107541410792470345794054414159485786164876958633259494945935974649427581174231037552612499783679407759292136439372943576359982253337151619094026769194150230001572272043833884423002469665366960876399762927078697809224025558758060185386876060084327955101703385547809107132402290915459866413202838623722855892040938502746464483202647719201862810957954333154087744158517701978566837670453530173071043610132569821834751730292211994061134310560231648499614073597379292139663979465839617344177909107810408169437318085333829539452250238453367797536637000775822776385348592313347511766240661546805106531944092085829236870476067240798310123107645132021107822546848101452647327296260485623208636784121826548546702184643277644817697517211912189886335010363231189388592406858706190162624027023759372702855411538786547302395726411021329762420375627603949038228475372700510883953438045871329930241996120499767083559743845163344735578635802189059009669941448471770644761368542102594348071051381571400792869134699155472481481876141072659329344603011925573851680367821170739026241226060720505433040383911530485875850857313427445846977154895454695178839811504126069612109313290438539211189413831550825105624471289674473685321205633974816800931460754319630700219160706496801273447916578994747297362299615438497483217134778235750956814502278759260368402762834803639903849909657963270435351347039430349363648222672004407932295392203052109300332092336919642066870045740457432546704400747610273036428419461901001300282450981989028383414430660285953455921804699362529123955432447347188395441694215514490744811431867569351033091539234653220411442839314786273056388858155991662505705206494678296474551461808762241482525037572403172267832381568136234211064943151294673289531989452659023808704729522911414152131185215298595297197598239990754112182216759398626742153138107506165683784981451275626950850086127860690003210659254166483003273813756432562511538685907926162880615528960202719198814022219416575315371974703226382090152021587825552067265804559119869010636531975863985872076504381394205271340299818134247971726681021166386772946273138280110720657419556677498237836119553391818292242814072886241827296310864568963864934000298573850699872512737268018496838460270668067419674788120730240707187023461227563484137092891410848677379670933867014601104856677868578611765055257528686691214212025023028412746321228741169458060029471550225077769511276119676810896047811265805012170452059050661097572724214088261287041270398877031464134899506697385218385052213801472207454986605195393011891121939522623238859599715543787273877182390886758844588638971647258372129070644537263308953569233974295146368479608541556579496079554315824710510337098397419968385812375169368721598715747970664469413306813135948463944251781106550279077368669111602213281485783308415638621907994348856545861080661218528234295932326498465165539827178439113360704001259163664151528052017494515804742954422884591411229447542399959279295037510931964327693845889189067253058341922217369404578960765729752299567374807725363655823660630884080427620256280586933928798525789356162399368847067132928288477943630505621952010914808759286753059642343259302468274337272275379818109292693677759767605837780335063645238936182199360213624548900160175045428042748872912167338804577120405400287573234703319464409209914143892370708273986622140784192610952448646391312636083742382206239341458373553123981101921177438649768587508608282104846004129688156012245251384228313718369298481861613039730872969174960203640855598887486579406761532028494360155286240998628701294564316261766667011713439889620491345534734867991152528061194835800599344349396275081941754324333950603086440296254476458566232409511922854439109185731204774972899373053914143698640582248389523791348771914000749037181180329830620645940266611069883891165559376385640330076610830356832060801068278873423517714858510633399693533781148747599444739501553115547785791575273342436326933085598217172707625788529745978087177638773990824739052980681995246359812238439120843047507061482941313043845636970697905108196247483934970139696905539271162080195481911279207716443151932381279482470662726038134226637453228559983876261132275064949275069627122348083327048628117507043138059166866584446939762606391922490362603174762125105281978124304459095219457676046430897996476963241582802744801885056023195805204790154809701493883185146342537289059126252437940786157693605086714262169915596663737868915804165467544574424332067613265516729193501352296268604194461219138263041033496692565619662059038868856141343847817137455426223527533423684947418803337785526717678770363250891864047771014663796527264788356737993708723605869925297563099941001467823488888328903153788635214792704647968960243928503170212115502476233408870332465602378252139625542699021049770216894785128573320225497193940056329376077490381455499188015359589013440526920675116799281660308660447042768493474920810082195116427473923831097108075680613345737213792193938618802063355957385734540626846970807154780994320961493763666192957215706623319035263631689717604055689396387833613783927894030468454382386211982680902606543236899094111461446060409875342473315516179621259232496462825627726868522514940249095013909667959591057839411363003820334625925881370037728428368823970963309617419369316539828542507010635319981421346310197818334661537947575972918234759190146347053631299127019858419451718431114665202148288976440400083915155136438918969543769457482782719067617324422649655151697058059305828347327721784497937845087795978082820940869729653527331332495516121182933715754758116919607239233323498115138908786996164642910219558174318263753858438574933734381528714129526859426491377120036040561862826234378711557487568081051145489955106928248519963084597442506052093476870703775511517934993511650599336787095394672881239574095999951913066628920153071073393326162193789063897167998203939998945692487124893882407517500062072207205213894361807246157355807115671543849436773354334128862823554384406543017643842325106177437942373450432556300484064763448291848208801233223847722086482685088450751335572739111369836155619081964177717198316056454690589711573707437862463434287578679044158942224527155315199822021291864832112457428319416052556374509976097545324339538827225563158494122574396139278819851301534821431775518900382592645812713588667589165030188548826728618840506502544889336012811654446653041833016838887574944034383557957770896651379045806615746589939351794078114674362943429610757896325525792330742638772880120167819636279268187507703296523125385347295401472750686857945486124182655184797358785551447501697204613364071252880966331781261214587379123037602544964649454862518466261003123795249771894980004054722784489256626662699951255605543063067851817082295046260235372989403872901424526002749238726601679415180466725836480259541016646471807502725760944303324306709855141198554038819759331983822798904860667455434297737538050763585974843843380439927035194138258358132592502965766664236804414076457884515126511022483143477874243644999332277601112588930279861230719718952391745532040070104049595938834571175544553634272597712389413496603993295705707099467074988698384940590946191400630304862644997351692361285072880892422903597581289119671547909570292413886306690023999253200861949251682657628613514374518061460054447668820187524690392616336686946256857608454095968431438021911592730804030075136568448110267130655323643615541078428386933860860876202186223237318918089433097020195172079851770702544524596797408386072953589531696224447072164622854224705012585909407923103035418838675753349454677616193047921339966845616724328129359045010753742570880263754696599485326108321424970580440504685502290483139263457260962868119370969548318121287487857235067093493106769128434686511932882734511884749205482037210082131083605340245623810771418330416802331509884089379860666619703346440017604051159218834017450986057319868874757781403257974758385789584168575550349111834010763517079159313603028105631967000067267798373076896311503559952719343980921157905727740258667149063251275911100288740214281693144682169848651591759457898230853143380509468826189403048748690387495193884438343623232846567645374306342088445004583605291957001913400114495578484795027063535324427234928070129662755566479372142704956785839882416645643273851414841923830265482334531678058082660168056050092537264449771437081093709110028635081965540988567508784359481129043748121725644565864206896055366097501502184944487805973225895746825180790675718233244458923337230272963903307758298419365104330458900242183020899589476194333705631716471214503610807333294474675748190444998787618228475507389927595833405242568732860047350830000798838030020396423855037464077796818086117520070818618693755734597872297854870682866508712700674466427581355827847506961526710849944562568403307673572313247421126592981081602289134929476671136970601666861855502826870617130931054977179292956594312264951967939746938326264308409232725284400209907487495378747741072854554766274019657857949680566698950801336113863900738322246597949024746376813146937576282442546252794433536237698317771889857609058962100691741246387922172108345807788336433052460293433737615625516650849667560805806248328923359092743635911142643198766800631798710501877890251275729452418959495172540867351109964848109868615891023604236890406702294443500612416119832354408636435273317393573512307277959791197699371839535197025429267974203953523249945250737204446745879666748726544826622718528840200648668921974306447663873192987261468663094035210097451707597554618995299351845365411345889542762294161462863150239224307228627656639466338871880284758843098169657682732765574894700306898515099780511193474296667944515583412892066780192283384971333803281333830201825599395239140061003490485291859143251465618916272669570876522159266349619110136207332940414657686226805821699555208176303788746149534767065191541525232368200795149647948878192895838324202267687860124238030652952954756513002529973740671132705508845129431808402080884810891728519630584897477408999228893174409769257305854741508910803718095542707633760520435825818148804466742343520927921924601348074305743311002150848135167647049216726445660282029538931391568855646704576613959856709543013700028717191256559099774653838610972931150195743267246034355576709241531452454887373201756478389605719370120467173218037278646204878232958743543945490279349521123972063878789641270437322270009092938838284746106378723157356422320124981887675788391323866785234396778622146476157655490753239367958406316412728927955349362665281902320784793764706188047698583242144338449746811378001392857279483458613706436763262756380891812032501408174839998541261727419403421700717337963010163079839314883667904381968887668672935828857910837833692092033608459353767574803810274252798580449872360854710704669720618356896081099971269316687691197311253047355634024781819144631126342337435521705379150089906946044196895131845518049060196028277275894408722712188713332812387718373498324164993598851692577524739319408431408615800284510047218672561782709115958650949307244364606443258004361942072829739338004266083666144139518069069293102009638274630299698264931390628729794910456979091740117016185895529706460217588067160917505866712184480471216852488598310877193940774603805338809995105801841466918354212485626768240317101040548909291758565703078371020660080203015614761191386783565355761164284442048219970284132945265978108160367210949834061516243558653662412592852805531114680310650015441258596665675199045434331518657498298174661824044051043787341419158963747576005414329832971461350492266176468273079452022041550699728638619461276877586183796956767531835584539107677515826256291665376076886243941680651139989680755313516028312597116374457349103582344180572187698799793837735549845861043279284087185345779442297456131909085060475136476039750290146558732853851396405767475651721837151641750222817543932432952000271535019638481367883012601968486218473885570786435551449856856825163790966368796681428554419697654547508119055657736001472626037318491591059725080979931783159743865608373824428326007989796636995558598755346745794766175819044338075220530041923459666763037512271917896510065000085664945976135200303425412644674223021880665385851480031780049457179569447230691305742239737879106210452252138619142822213301419702546615446708747306103888019535488278371888816192103612208814956113119495160077332680417772122090909132104675037258273301226867351476602617435463576817758913082995782699735868176888516188428220817753780392126406819768196274853416470885039034009997817053643904382426651149543341745035667869475196878824009990505808486890132750426528628398737327090251155369976052473305855012548416352702458480647516592395388687692992113720713626138286840655366777935226108209382061667472173882636975277195229151677343477980264122266794452223882381057509148031372108451198202127303225700837373159001019703385718265141384264830268338280109889553795576498672689624272700391721657195128505432542771737835510304012002430467547100029134669948430717105583152010370376495288989188826566171358089209340782643992521351883947770574494174778918365688492721229647615347228727205054769482324800348270846907160192611637987252070199200146616304846136480569975546568283112597551502112464514036237258570206979046311607068997579478940970751131761325805419862974465203785856217138113026171054113662718271649623431123707747923878185387532329273869156543835066492182703586330374193629089223530254032862028053227881030052812678857250409730383537645588300922527717168762686759612414785498994175974663332661078833952067105828192910537364446045402148050725828923204098119491969413313034296399590099033241679004723523618711890193575339562636205611661269934766449488335257837363139699182890560552613222787360666889177590818254261203109124620499144077064915891752644415461640877054918414500373382761578519876621746399448427546588307997485439238645453406511927050117109497030132323498129733121154103638362726447501656315619362099530860854694083102607498605015435432513598984316984056264677212958911045326039800386375499503474979455670253589775670786425556201573190813806786652339088410370516967573025654853282815598641345389897672204132367141268143324855831918635288990116357070006944145237101721638862444562926495465872395208992023152617077676868440584081366972781046583667574402025477040301120691855810516406589348495804594652121878526259254732467185244112575230211835681396835224515918773360714716394791011037725675395856638018226277164388693498153125737911791303661186861367106670562939352547092851837768163559168867341842650181976288542772867320584020264494583576089971277340720687632568297851136452469488288298175023265750427817224147882405823319591648627404041869744774879981526228165922653080332345461934952592316365346574357171735086680792165559934291238964586211598850417856243851207793991765762489592654154750464150523914581563380322978704638864479020403043703859744936979488755365283177878751391986220993275072230094440570858533647354229928230583320374368433945001423967685623304356642989851538228198666970986704259229075148994253753503973079714310264503024132272629335847791728111040783913586851399381936759862860783239706797062318816291294965917258728839666508376248423209165308539633382250400829794465210696614760949545361333220757902156819309219902366258234729370298522409194595866295812935890237863339911959070836204634113390631716218097999594701534179466059096999584454060882538713460529140003691389094075406057182630993793465728954724408329159016561568434267250434176185145855481131444741981856689814755144640595973114272712118672223652823622920402563167530914905373432135425883322793557267561802987140121016349643192146489695290335863094208312404695761108601271687267571235086170706494258923333597825428871321351994147961342864507021860624101516932106918865921615631898779369664848561871684127465775576502082059338564595947255105592800679502749342564664871591711712180460818143221442472790246095179715362705518841192163444023342588451963235684306039445984552671040361478231887000809646557950332458308895144234598037005675411081319682080684167352908218694426860305826088909960602768967017949109048076499996981389594934068631193640891302705531126956685042339967518421216461681499638568949904932556229608076441791853922732206760347691068203908719619504141886690126713244944688833238911973935810697387756746799028803435349329166833358322706309626693453859379192129171685596159197952927776919400571798453673334958807377528177830768248451490992764788183258977748726358831122520963197222750420251597081066677314775772338697964298476007996731661627554097234718695727673332256655272402296954403242345707125348460996292540911745087319434448377963068659431393801426443917155908625106081815672745262426162134962194937548533658187360121188642654719676675408089846352897678653119807543436157391879073949890937454675305051965277211990298363519039891947807924562141060376330668097209621940406086819678303581739484880029960061840603725867739413522136778807794195566274642175500317085537145764013427004764406883105962028921149634727394279058095556837913010437085932010591023655945429747726052921260754540066780778812055269751241627986168503320972801300339194446205031168803355213209170630410299213552341713308592328487810700687180470676839118804706981244572561508949549462121750436460954637875619701431325466737198597926993456368943862307846291224264510970798939863822954374503049948812948951588143725614202734529554688440702380414462920446578945131324373288364124408181802423508415475559375811200814272628728515306950428663317890510883953760627869655715529177646692607805338844246689232131475889407694130561170125325566964164264490582867468433248257028154844226195375584893345754546786684704359802023248524976864374195718213058043067885650964193331467337898267666952386216815086210809205926282413890931514295103843061758613715138794409987213977682084120439921574775588643816814912895162902336710316047349724769527204895660225405974063159390226433429634539034297094124662937290967240556913233969194716113245398569940734465515617335238031245751050284249527033537109543773238237309440068932847820028722245984790964001865955173444225068762259760951458514823414503693689933467870015089136856115004826290151482120828663284658387807853511921532759476234426983030528420968855344387733227779640019182124409140550275476365822427262859931804546188201898920648128209964787703902693513260894989217079522030481022767391733328121509033800803201982019727240546436979616755165440158108497192272659586646883491438667321653183822570058657663650644577365375389564121791206689180427360780738000759510834168571461866418695879862180661774694003598109565141244005933216718658992000085987459821619786164287758468797648794002041111525222382243269528773282594537612844326394462002315734516289173866407389907973691562832673366747496696841824623275425398142706042085890153535752272613069355134850943134617755867518808352022970141579297475987992637549990131795014357072358222605734776498251673769994675659735299217812244504022676387278536800354127836950081293111890264990652049313808623407515380162486723980897261760852404935080093125669298017428677187158220345218536117429900087564072679839593182617629603305405749968071808833969284462925646683500791169315653483886278810447931576430337581376612872702715120895298339015701985426557274130392828506087861117546518332367088698284214025320374281606071445223978018867609844122358246425145831213390625063218941838466368710451920948716589153436739156255270678880762419100478837846031260203910946153314270894502585772625361556961254534669458103884578628235630863161393344591691081541821558230956177534686443682124267313659900318241780612073450968478845122141907884579962867431433773754355964166469905028099942046327795499689985264850490414990596766643912423690535474170137684634058579325203920217719104030394662792909264560922062842907071319656432316520835418429437757312555582063021588748060766668181913990557577760380990688572726584023592998258390387273965185720731210798705610786900692387842319540062172476803023865581654295192665981309025327023049281499625766077115206396967408933773383803730142926438258431274253021238818925071562474567083132029135983896383700979387149433114391091925231158276527456111787703024669023856729063719700246545542030476729023174842995319049442211525260167835689910580524825480155329266399479865618706924546286536119371268399138903342327677521954919793364935435170454743467891475337941289498568648831996922069214259998629911701705695576130542451864577771003828221963175555032643067184792794616671554613179932322954984417173005569724645597742475694208276125065093053103923187581176462675314306168817844240793554648860009834890967416419471544589307576207425108573639518481867205857434500662736292263351112907563835144443295298625988261162181945023563846154806722023956488501251225336365256201675264578385118081095069503807028396828625391184797464586575376385827795908942331154805346070161409113114221452417782183090090504520694800374578068299093447378971127607415485716142817720437412286185873431815047807092361410570269471270784231775863524583866632827714867453912333409680791863881320130248449313449022981589002940961084791617121020660501228020403177518443304575875939235611304902160367929510263856276117925691709066923206611305305689143422357568469822860691345306690135654882647173246659207164926743045763903154660822492612518142781423290557165074719468996279598180717323252203277345644666345551858161336369824801230751714890698205290564828629321173882337493618079643782563562854472534053845762155166531297481816246841062562658258039769778546791419117516194673727539565385958305356924198979730770128774542977240814045593063612027026609884837544782756482436919404608992327985244453966769309920801391734643433918771666606708450701793628731015774568899275265999069877031933630373865879800879325503150081025921140063490063849614258146214428239873191295862509299964773499282567524046605400629790114852386297985110274509360181589176419625411525896800381239749448967433853280068609752975941805151169635477824243405637289397515863190100359401325144659689595307016371506680580580395965836170467446017714828241879434966056058887673522785512936763793737085086059459697910201103444193422826587393519648379792613476512484018311718467225088080764046379867356530362320881021644288486523736879625115382557342226158515543468638084103169891645464878614762477201523889591734650213985006018717019853088574195134950597395499017013936812019905894573395107147187314474748391373375286884801139713341718035221221253527683392562947804378471347883725487260986897800015522949574216816371056013844751350532186923660462860738646657620457643220976761805935172153035899183246816152447514165779262464486671402396852030480584096341908633793264437871680747361829632647559020197795515628777196352214317721728309293219177510484800452817917282623749418676437975726864604769147894538463033171978277952539744414651496965399903689930664379148974197941470485496711915605675730227664953283502989027631655254317654904500205078923164915611018091047861728167498066578810516745420647134589111916385004904183317039905758591166012189404975785493213519951081183239434097003011087984542408219248793334145737688010589656925430605076005495220006884786335736634365102156490572498694421705394792129494194434193817442756216545053687637913423173715405026629830031782094449723459128367480751620939026791242087786508917811552016377672632830220949009700942416719086836023733215424799559773348378546441644801452825977524424346482514789354417289651174466874773917855107998235505614974666975651216620554318459177741271196204767113431518465294817652421779564327603496400105975782270862098597951975633593471619023312736397990921390812387349985845087563160922761043130178594534727593416406844315995169878701747265071184510590822780310423264366242600836271252752930506343413264777323444091201070112927518583418644681662076988963426605288991489498563667118655435728465916357604812759393950584519913112672470712488554762612195516642851923350995186951465733565472602723395094734480132345367617729623456935205603062578584712559141663640649662489463620186361832729282893821353042419417286591174058898122382081174912423508604940435425141725770428868424057230765835571834651921770577130915304545838797004358287251147269834698072294270067638551496039594843455910837094790818797817113340446391954999015184947952715100445220070254654738852413151437069774670271298828680943987037275277217919752772639938594528903144149278795461190495852265979709767906307199762269147259944893380589613834951785583080577481058418433391435584435547127012350996292459831108296353995896472641805648496005250861145194287986416541166938405928838715749085453960041923470295844591285604383536501993553669864356701664373896441568932807536679601812297415712921350207304301501267072494430586445310582893888177763351351118357905334465343113557068459236588073307114352442739528559820187981994092684511155252065963274067919932354385412618593358913575179911754786262825023027274497929466762603148220886939310666944768734651213405920714364979644851129924452030295278109912934931875108676195297295994792928097639395330720398337513832786168956453143751660834903319047813301863691497789280186983133445991767958485879834120768900147201965357159481499149198027151180879324544962062070669945022825646166744178828620160239082566222688874570318405705681953985787344070504052612378986125575839770845912819131381375037296882217414121184151296760102940972223620058149559970063858982509882722864150808927000159643632463321982511892206817286001187526058772942926648037961879341084581850939631253717400827955161977814053135390789495205147179023806274473706070702658320141940734918242672084122283707930470036365669679521557590607808831573939329638840789513621225622040391656683436184473665114672577961687998971443221328962831043068413261528744801599349097820157927706017061079667947403955730521827339378722945327884222179211095775515303980316273629299255727430521729860280231075084825900799211709545067727782164853744412113145389409180772914406778902159393480984192686581923314839534463102683408155974281661781076665025549215718377521419872750870378293025138068424182971029233367916402615166560540046536323478811308593790131742117003981536138955090365314383892724694772557846584873035267339143370132570067539846947321017734381674503112529871158825092249751567567413641801656041185527008901325840783857595569543591901881165731091904580059587302695677196907707047880542521692009358765935143215416277988961230136792871542414474414277585464749859825312705670860395482666378179236999292745040760472638391845682866973294468643903579793837926030255486454306655238926165670981497671602817952207190515143000027462417733928875338229746834219913741014451656697967779812570410306653008524745527726828838037040523376127478773218574699401266188954924068433095781489903048229581378093976536294093756978604406390553538435256840116991640957497176990202817620524306013963164868124186667977723682866571093543789249934082133437745195303823709969410293021775221546328945864236548535443975651794906758111182627420261878211973349090370252011182620001533867679571352490458584626762928808629069697292206057348166206360807760489400103872417060860890381097735519238395150368969961394832575966668923531217328930239823564130459068120210510926594423190096555906092383207742732190540684266011116973447944625924461586370900993374346976621468881122752222763661374347047207180316504521965940831210468892763735127497359607335086678787486302637808903320043490570997773332563985379173231272184121211076577462748768000798953013650157346385729960204359040251486313723680574245436418944610747141345224893882606538449660886182140249838326736704102094369678559131465496059986587217574623648033682209025864759912619859499768366345871131998400837304811256889102089983194387825490563829534534627999062059100569290682071600308811697125090981659594912079922458839810941009410109066546383664217171151206285100742262559292487410420722599445509270053803350352684981586271327831996882334239813873613690097740135789747965338201354053984239859215514117247643735144297455963232152851983389059185166938955866214133592620493833617278071875673300429867067932193916708001331972544276160473832420343759692494540403930560898697011877790105956606209660405192466814023987509221740546009636546673941512293555841440029735533654806961967283055533618228962098883604382990151889125832078618311158540074457268886970341945350538336056117829686853653179133752629802867856586975582001334307542452327705091485433376757315306997293510839446855904266414492685350912494657572505882274344432833596009355518085127568371620737269823180938849236671739793656766566396370181132262772709526129279383054877752833760155330023907111790483186589854588266689522539616285612347197428283377651296699866303988204744565332835987858544512950579084879836298350453337881266101931332053692631659979996897008161340792850206315717759011864544866374947285249656992645147145066275990726640300527242940822644886271942540484502367578727225147547553645413755743366332227931373743356792210576487407672009031770723517433319004032015166396648042134790108714236855971943722776028845252430851844907691493167964297744243489276292954899761171403739483768726646839587767975441082399499678038775035884083683721213099524596987534184821329888202429151359424189518706593367167217716358444111862114772539720396922632960852303885128777798678158890566638006195471445134056578094118066333935931757771420731344498051383165312352833244557434296004555416416141635205636255859383348227953517011685907201643162753852045854408637647668733576575536299699775851620132820205286790422847949560477698560141942754552990712806214056851274461638226370104914013274335047818875326622412859905507762603133358241772528212589632900002111859787836975272783109220938910264443990583209774245576703483989796908825816598973784497202593533677830905847038298848434328477748340077505369791858613240042496119143285291784500963949219698359408760898673196791115717145254851341197253499572750733286597544542307314951641350733025985066411971547290824703185091242082607859882305863349303110633419829080988107919386473163205064376442714815886852038217469424066517522299985049973484745426266020218946744242526377493322917574947194568073055458724732775302832933694966632242941197995076550028783675623008344024903703288337253497552494375324137890084484133523810264692079464471026801515532140739207119177553049540477141958476799803638755851505575594848576224844108431592999779231506704247391074325379092371480263939203262777754286330669905177437139570963845575275034405046727358877695903494208583582558736187123407659987191509106418722500165934429591832180672795949601751798742611365682417070784633922131257143076160076899217115086781585916214965460231186190473497111214336630462621428669910609551105643308164815686999666128065410920380964455328503168161674372581072832621934878406792336087044023007727248506495312251148096458605961944370128937255647786773994237379195227740999103617890699249944062777304462635896826783628398193538645288628280980299156226152411729222792026514091950278512502273736680822529202218865692611130517980463488137565668204307492916418226689842414282584509110056907277927742769932995123029354146668556532926288592652665304106335171191706018868586956685755646051227964404728665019370229740712126376553868522367164632204065226827613562827819236016416796066069424612074511158581966651989657830803391759035692992605881451444603097783701325278830288229223284791609789104664445892525926265820728490561757029873456312485276899002896877317203559158051959190218852882832088956198026645949217777006814861731043728516027053701773750657044618767008654434898567087533034382736381857250784796440876974724599643264271138155649954059263190568744831873767811803221031631552586961703295339455455301611700229281073389502685424211659969997912748745501107778856031451704604614425142840051799747171700373356979278820331894884800501354318340232378867446504722237437808806086300445625297543656396662305765158226885920913977337478560997520411873410068186725545865058936837139148664814079848988303393998186385727029400458681556392841634294649595080984754675924365092277177507239436106267708582827072422554402248727244783903526306061056678499432470323336900567238765234998277562449956102223470919335132413039821579842320265965094195510034993436360618344454233822417350874750681204776547340010252843278976871578024001458447868455114994479386717687688786689040398035855528563210025873465625372598276166771082475964719587445033058832212950404463308969562678844854926759758823273475165482574692198896895824393860502625045972882017386282167460785290313616980703001693170570436044660964163980761174121437163498384595028905125266924930132148772244388290081555718724484997652087595105677417638070701673577085594979575437278150854154058527603820773834224647747936693584565014574448142424380088146688579497267517591253963002579464803613373107858899935328470518341897060341918932196862357917825944062451142716401932853012389013804416370738964680945567231178836941816633935829597581133840517987583111912106308106851333848304642069282212990359308316542656424773094343070154538890484288438211810741901357208020346938112103367840628545934548832982957876165590073048077481347215559843224558661332514284777299886016063153498053706700022372277530190937622207568120634636555196289705977865153445342354027537530758957915264016519727375071142082945473290888217767622315742004361502223052874992649607526966169875451004930216525851781032115502513866255487517726484616751245394909062712525207769893517454690810946178783989381767382040511030133306393666548310171074492282540347578356467638891076581915613650813677504492536120128464883202304184949665392698446917857805122175611554269039549855071560077504662486308618756789307239294568781551667359885071328875604249557142205125262671421080153769279121941695777631267924194733088455507808012897521724482604161149864356612386773590273771523592271343465769623784325401067473652185750233110080752720639655204327670394318004428398542337114339467588311781766293101342243500226389842412655251808293832129063307325844483192315077150424619312324329359831095921986952947798913270802984774199231961757733413232973452895659915586971830743281780384190091491925233696905861463502425739759410669822993646236784602543195358012165879252916470633141303864618668899737505805536839223646322721670691386671135276198913283339871350073030082768505423257873720476359798112127009800821272516952367491945846696826757832094880098663996232565635218709415569106946527252539617473002026487304380501215690253381700140873737784146125164981088894983131267116538673942301704182098767081799192333154142570845398286356631785603336353872534795255672620269839642250427425667536667498196376473933557361288381546412890027311254077553595451458035657473353705803474708950533844231083646348600352281745626139593795770680028065684481807213919172084552288538246116361247691264716773114347940164796653015653875358804307441353676704762978055375955479482084310718500570254359480502529024889255556910739279024965027833742299621911337089426997078659051867659777850693266034618886578851380353518507693186009160719786552466886057351208125966396130366949325652173952052123656398537946740657740818611177685224548059169089788045787609787525549083390129153585857297401678067439995937561393144236350860350620757181769975572739498414470286058623695151932668602692168832906284646186007728552165766726256425110973077869154347615831516150768722784034280118416789441338770492379273555705911004067193286860132642726200976216901381650807925443364389281857841270546734349507508592437200819423923671889334932963062158065191477721774449243313777744863349300133425373732180249238556377545858687906219149925056764600812838298097748608651662980714123631913786757605074061021412100073195547715907436987733393401385791192748508655111302296268276212498062332617405865192298902761496473986590681675451555277498094661231619344810466569396435616732985163881441365945693724855910456647315503763271967924184857683701875832607307898031902944080910151104182088462432089001319477622256974596862764522936670837100553999269290297328892911139779312438648908057360361424396859714266471918299238301719270622339848674778043094916011105376343781900406337911668769589458031114978341962010618675112874948459471864073164334375107267137954402713982750565525159097693463147055282705418603310856631267135068340918245945045113826051817995991371607382862020071488562052230539636653414966772043955692494530822818627951399270539708623319032073977128234209395334809823424701410747774573645562676748423351440091123424461472119526474727980977303151533044475054212842587197221240676355211390100473117872179863790183378335189932685018487322191176620460955519605327692452690591425455551727527898949402191147493953570785816336284405806574989283318507070406222260777095713324556249357260134251618874780743732638953754197068734043511726174232287642008878228999724064782020749764709008360357058036838597484294394446044451527825180796779932257603654055884296276467007415679162368127306486275799565216975621056846424177263947381872805843641107071758163128261071370480271531929191522417332728615425154035652974516445651397631771046038520687959633868434146313074033823547409423231181990841782644911150551053716484919015400594726060487395290273944196954138126828868280947984384532953338323461203718736440992248968675301900657999575821842985266290084917089645274150220296824521580595973197425412651317439796652637703192853522050347005531700375234333308690806144067311055656094843410736085506796761987939806972339187440856589059866546284655751897319811076700030107443886383987699117330109774126040464310754407731849013544966653711566463924010017748165405130671721437325598282363152461263418300503515488661324752058022104425464614900857377363006014314772795101932440406634236362893534874321176362811165578206124736334636757571201301542737192672750407649579266820781590290782835699905434270711933873150482548431531693659437706827170055179962647668379418182092340278618084507679487849070722304618613517255197268492996685137984319281913658625369399069221191862252789542604230859388646785334825682936997449943315570074885541973443018759270634027648792516271369231220970205426129573913265757176159506893289625642851495713580313894908312561858206356410854511837387826996231653876109976843322793827507523250417936305824049891128623497186316193670085569067303450608256095302235459644099605630864342431377697379398162049676937250100405542601646752213584090477123037419191274839437742988984328594992421480535022826652538192950703998077518493532284924141486954533943122602301761109103406782120749925141929542240213881347965604030333750561598676707153433189252186462791032944716901766287807552601532056360255107248632129791010225970925781952373466350696389054745334904233886380354532239946504245593848897922011760461581690412190513565713306270360068629502665932980203956204921321277306409821725293221875493357282278888546408193329298419761148003107324702895717705492798238771284203069139126861514450525632805617322797575835278309733824018175603821360592332222190599934938913545727243915940365061743858452046357411244518511826432995071895627027721898036744840319559292478265326226353395758268678480909156635753970646941219798565814342970385607702673531062763840184103130412663637513919186503127342248216160594421598102329340381053102403812749803936874903898440365093955215875312411220552479856907904501602124679348829527951797899230751252218542205322250846263166978661829423054773048455315916121806227512397178695681403716734161889229088190074745551229604550294270166504149976864736760946357886583059822311464297497173973960619181196885098733721710570818367015716242241135585090607394025022356983424198977269260600650555801244912517144467861923999370445610858668056888297221750238320658531403105281560585213584377135575162078969230557588684173448152775378156709304375065219760020358879146072662564428302209710274163510917064296197424792228360479572657078915783426226962734687323020160555883640543529316439088316471984735706506021054449397370175030768261786726843206128173879925943716644244091837217244737148700723967134222874160318601075930483705313152445832624898263006949381399421347718849194792312098535345436404718378244226883592793559367793547432212574116531822809131572050029713040515939316671886007245591866185229858007891178349686176287402810388496186951898559523641260024445253828349294005151128946985932065644313269281406365740505658631965702231659794302289362416325009816956463621138359041562581608122430495629759671791712892463418708334778785714623538341522685496518027808402320848877169916457819841267851804970798624166203726742765345625726067343287907855733376263734781766632987732430034299935156434435821583959007749457553617999577522945255453998883437733931203294070908614830288752962274213481080072802781590455208329260181020464860304256763931200129797772086872771621353348808107797802553057446702529382308055933276645129389696277987571189232855047669274644613062173464956322433544476963942809998015218340546133405235473558882256780113647689908989365312285009289222286968982972364560768723938400083291241687040217582008224326605849917310325126050610923772822248247661566912076599207429877136987633455021399895182718270334718220522568297332578051036636333622616921724806870408010808326228971046563707588446387026151311597431703407756052230280745089846491062306436456237754295047525256589383065038789303064133870466113814406081277104532848114184053508380920858155850161608948401935343585239878657750897751479649924200991625759346229995546741828604874040447109845420525067008986270838137186797431035126911149489039293742210117080440966397326383841060102357316492776120332145199074635346563684347338551320379659344693758452231679072986869230383261790403203652554040907294963717243197931540487053310493777685415370126925402330234961692805705927591678007565461376598036615822276094103838041474014661001245243737091988803165309619350002539264950620344949193139662723259118969779254115673121102055874971651449333290331925881547409855546586904508685067268785329097962133082158943475109009588684090866579107945152314600356748445143027893429985595377088882394018992416662010956304325539859666485336347469987780429678528919260171733840035926770054163697624614094302900046302024535245583050044804928292719766469235909272081471778003029579687993169365862352214401503814636540648310233527380317688931097835335375610803017184880651604910624424626524780476978335840330784225560040410980414466365850721427668877775813425057152262701952714866304076575018635438734604302142101371008848765910030580143058707466751577909426198654022777677217763279758504051958082187343802761190463586972108329776696646326067602593591022921142601350905632838730764334575277573698697846379329688596841103253894909696310273349943401932843321563775831670686552930418391032814861983449184814386435858849512462370761292642082946441024974306647413727578719716593996345783494286850345411270182684209321780933014701764015167987411216099784346736325375436592615215295886825814745840308444450309221451074064863138435339398369608136356860888187535402499282710701849821866109531712051347111456080522482945355088980391423917852597196726324982066149665507621638643815123364507786743015350157197515247283794920242403605208413737977528856222361279643860568431003898925539919945089506799576602088667485627053822759589787449347165803415377845466441425368030041969581911974258951745250656398005140025328067666530886078927318125465414866786208162703761393989833008937548318034383126905596132642798877132849091275500482340786986643210247103527994103131205217735416299016462527187122462528846862310297672284888776565075169578294919698521257381890098366963173959418527295815234743428232893913481785957960058719289476339801892793365040565697463625489368459911848723443705088235935137413230707270320999178750389059636605963274977981360009191019746317872989116940167853636475799469219733542819017445602274735559292822702864876354380604469256114829395623401145029011654949593085559346915755262344268618038715431354535409677401480943260223429249348797584559528931405366047405943287865078063440539110103861499926849218338691213644627680926328372934726495721466272421524961661188201980491284929585921095035140897152734861647780530687072114357416203892678807985542767993395571645099164618381313005656032630207301236600473983097388855776402844164899830661255440999480118445336368639440074291895842700885070003807591023086067170592296101292441716995246530478504927599084282597422482524140795849211301891602643843430999705156358409820999658063111932541494089373546197157470675562257023309024892734320142654515258182276422082399982999027245176314351137131080715930398310661035964660824763378285175553805108155644167109622834712130041819072932984871211326781384473751434866566423954721904350082363855503552069920558343135542414197515449063910862530744579662482759251957521173797969937052779867417957579640161079319181553615925293023462447782383296733621568646927751728803965224366597418887849405294655996126435025626352776525241094992973461053068364729736975248363484421334691276018656607247332272995294043529412785797285363500544656042705021378813168325441673185378669841065264010603171257938267302435140971284686149979686143175454982888295582298116947085561843481741592061738082751513796059222173169810781180523855369100407622761975628736066005820421596699297377926172407789476974751849238898208894392940986690205898601718200867620436311656758597575044769262473900365809673566444385770995281862731674986905134925839378623164997108904183743893261970043704414570573003875885442242494487660842000428582571070718830518404297303437529497276963677252861471698570226693807898290080481503069977061851452685724739083117021518837586388988945947933981419915104347860675162960349863416571919841783975972246817035250689452453683780062784304818695218350173486003604354913175584712590167979075324715683969340780779543605459666463216431173837146778307004637685039359784002993121326111804505444158671737644921091436639242529768700952848619876654789616152037208098247653123568578678254987808244524328408212746965806057657804705220886277301510781131795049625231395707239038677335494273436529979024548772991811992981664227456842861286851596634051216824197931364748054257114113195776709136772543162348914964222327675803327809411925938160176542826147776844385613978434798184454469165624847789986823426006475923718338437590161141314521647914863371233382026623433266837172019855676516454665521002899209637161736771140779460558583742334561870577527136799842616993537428200732809005082972336407510027417417358586000768923887161863870990381198261521939964711145879649186139346851449634785974142074414275909856509750759543580859497394428724855726286243652659859266022221934882872291570933730042414826148624881386595606374128932842137343464554542000771154173194508291731315213833556406930850826841357457853031066662220106238611159595573835014909284735084281006622137308550335235241231854435547829001109526752124879028063594843050167651217594813159716017389232391031636798905564051294024608745733987376547460943138714553049399801305113023209721434507649949511650870075581326536097544020156751255882076582431785170241414639865099901332395491703478787738205956616109629705350195262772906646392792619516393071072595580248937745148779751094592081875044788125266367982100591831686528516157526527815314169860042951949931593343283604764480674064458340676327161414563931259442530151903045532884356271275783143792257665320697014446498681109655207921172383850782274320985509297678689067407924528291788454009120699611418775278411765560634898431183211280336384901568242393973512892799397244858444212832177868312026516116538720772083795563453788061884482861570060102483811483475032110076297228507118372625629694291234101534987507313252900578652683180176625142734478351542554961700685325427555820214376713754715463993641276386501048413226816583520049258856339812841126992819188921019299464762317216398423338720652419049918960346427915961656344159736889351685020191557775102527361623688949675355352580064738392892815845070337070528876643091912904491241758953441834076254864204384288270062419973426417734286541403756233953710099486229228623268704712816979146352841533216282621103673693812112503957380344748339471221767440274871510109136934664822732501843107556241862563718853509508712993062100479950489784022439391327652569570996199326147720700105274516338874015716790032027055237845789281583936909015624216867340266508635797145382799027694415994808659161125012132721997295508401973024810911200566762902057841181743184952448446982634994869350636940224087293363720512785809450656313524077082956400036907407742793000893712561035152562841718807034646674406596897199725860948560589459607876221957668295601917818832892200732938270021578054572792757727639353394239515849571877233340838072861351675797499714941694290586369068738133910049457226657360229830464229997222601860562665114337516085626423879583965685237051224465881993787294443842267475147524753911657152539854049324062999369453198562368907428663018539870944489609869026005400856963327904809205632128303458190472828621400943463024448369816393406096035061837995028063914170635134986264794385677355436774868934796856932274405552262280974172620324743923550854254624289225629673172819755491759584671561676154227511291476890237673342437152742867877425539337665513380188714334040690071669174441123962165725796127584995031535094661708843260572962226996688383767706977767968884067909436941507787852792504282034598425184605109324149501043248213614873630299080130114786873403368239990923004401512564024572495676501928801288770905960160381008687278721495745357437977490146934438156406633802396828047980019140240028875888657552238530313357102719335019209183999326309631321456855537539400815656977852493204308685748464577734110574244801070257324545943864053759286350587144219406794387927602807160821372329052458543804014358652879852967919629712261002811228845579623519526584996374291307939438261746671910230006159376189705701961549345430339618179523740433894674838885527464172475473457444994042387233954278815024508395150188076872185176720350062133057398974264577976795433726958666521923180628884370534012520704577807969459569508647758718603253162221344007317839789737430618990715287881770166238248167703110110805588239605371484401373518993643178550133801892956940056807421053511869504973416412483840838553564984642319281192174365069903961782693626552895628363501061997164938004000514520614122685355606949185882458677329583005327902538609014396379217012039398601487889751110743659413133906286116515122205848623786027571622819510107462874362955269042627999188594104044425724541131474481009228170557006280782625342332784791287403701406971851012119358183132704993334285701957186433354088405620050982611917383312135987488069359528963025845448015135620904791312844454567412669166273356481567065781480153195448185335720031285706818428579349957038014609378944947382874469033409052500939875630357967311462606924582962853537911148228112257969998195475334277330370709860974469695786299348682132436821289718918375453872528082154804257184528566377431470835866208730955311308880371289852097001752396187984694604409057144618786778970380144479643727621325319506039925194563325983020091502095415116210146069964322226020138142827908740136709263696182514519828267375726268367999728437992691272220792230667296672928692382711827659499266114485363486899506356479596441077732414126728249161346836951128610240431311156795410489087123807110589687677478143513153330043459370232902027564909164985088908476207113712179181767794346620806408842809715851584865199488080856982262071442883653080224915936244753750307107075976080735782960475604614821507195984182541612601946756236450766091372449890364652366555407342103378677116889612141282946749415192066186353940161419427518468581130868158358157013378414796193959511233732655668051057935441226301887867747379553392524509635306179089238392072197343745538454047335848121531802906378862315569261530269883381624569853246298391001973044834437946524515948079677500369824730798537166401396915126174371764300924998120088652003468568647301643755273571374460776063716367111181173905955136967641073707513467632577351470987786346223072951499157136415404846934356400463232687069030679196897290822574374912321528828537856427037950672790446247084994178070063774411269291277374734927026129481815706476574508139267768665308418960928219565479569408545334521896368624229657420334509371274595792555443870917564300904524844495969264074548196571033747933259540762626638398734671419844530530699733086743815405849059667926773167779434728667948502948039137605951448603479508307954331078966849938286054727921666854252051278941320591665043584354433153885759730006243367760580034556829149001357860247226020472341600320321382485016874073321753942392766024311845468123784308966332956749567847298089532709357297606222849785103122023621457676725758972063151954703330367978454586890187739967255291186120897412426775131561531754892989149326890905327002478881407704546960199007982411113919123957620727690024878343330718895438543270405193934969280086240616477562985010094681781580275565391487258839243040800751991043244670837444311855019204170469216007843337129585552628662556408746184436642396220561221402435449873741457565542117130516309311297590975469184208586893196409772709827177392803260248722523356209615947124406722213831572988482383491541762681218347867212801520342668107902744966014316007838734180402467441009034349792572457846312587031574747861181778912601022809819654191129901233492659227154877598555547675106737273531627039767369365510881372161016188828683401454892836110484138818530626313570142038324369802116746678069197615761344618452359286418375668264928090872009002506144203548113541849889546440306332036198547448569992519874355946450850609778770932522682553830469297298655563079575715730568315970975175695243407153047311386681199270320417622154516713597700472092852647206661582243026808189584548702510005449130236332213933400427156948804602253276176257253908699046924532344421124839534063961781283279250039745379467034527388228557913288892643822087698456914579381260212759735542457765338815040156667248741545476455198157740276796851974352732221612846440494110497914057103138748039352384044845994309430651993834855912618944144082959882101223584191898873341179859780828422783050958151316554483517122534774279780870326982274660112388740464438150921887051370576972039323029334131085130969574375243836618476646237103696046520248909463399916067095088881011917791943416332488453119530629485147141095822942826359611319666368751079178960597854635692991896364297052945944650539560799079336951604056773504652620273807358672164882943229265577943110493877508399043692597735931550102225396685429505311224999693038994963586303196105387843937176742695340700710291609880891194379194596897323341676043034158167422477203659665856431734739011462944746150829195858117213600358933028606992727755369565702444281118630838305785655617669548952333799008309583581297971440471637880047184329089825115649991139786247444059721559606702761370958575229725820949637811612098489540077600381603915156836623323337508152171757286074023636906437669048294133258660068118830888129630075494740613896783429651610500109636363500429714943723225287072255892268539010176795016555343474287906081296093464877244602301074327957867713549880183217027843972456525642750398485698286272504854772751509306298853806643701345620033484383323485372313026528736590469803012507030919435644970590633157184640293467204083420882785578289751781081283956058414275771481064379384774496448748418531030052474563735315093139121659674714141542897253494915008035713434186935186840712169591528610029191669023848331908755746342622283262484097684891478948424033635713701670362190350582525260518020494665508567692285294620320027829568981023283612422473139619018434222900648117056774915947245285585900022672098445375364928547843217935335943231552306182804261726985604118644885610433606467161882567083030511682164225090893410437535757087487531715829056520762932475125779500722463834348891135929473492472473251414780216339127975466284600400987523567591635747561625677945475340820539356022665748983201597894207536113545562273004025829140671283835379275855453541626955777774708688849690049584806280398201827454013450560076694209857614745730270859253422882859865314295335251937932744341887853146333924973327236148769646189044928009160294755075732891906409937357654128083052133923694172365744020190969593453161140250256013932856797857856023859091400326161425793072144362008373878700171896454458333765752239582081436430973277896485618477845186120328925120225766886783203663464232281734300268332758843781010361567033836675110305460611484680762060684754841789416245555973961978192579086560713566537809586613824468678626141217819696397616618106349046811574448577184913341165165547120158731130534622057689150758964492333388883387574348318060116890494432150855344087885022665037019851193353879572337653847484762007315586279707307575861460932445125177764216983594316951320122292767584282778272024371002393370168492589847526080827868109051119495140050307529323667701718243054937938094667266089330058294064491568220699069194134770960543236890611550834829490434861918232898686207905763744395547078518067780307956208604106448776280380487872024148586680704269179702325827305620401729103935377867171300455090702428104776663559143779964047636774473722348435467262716682590616893557956477945373514622426049431725236906409828372254080694179558384788254063071697450589177573099135896807484237080487939113658575087606324068867492789902883248150774025264937601840311646217562292921549676227055657972478575693427772232266462744853522995660043854703475838457027404961695367816929047333649034058483795005072091760473360125151181169188629666694417217039630781541199592841511240632296397019465635069426800234658221039319438544613195550110916745337686218213479771820906364058715580977915937753971611381417245915139189802889755335582702827261500492829615068281912983734277417626072653128156430856426834517381491926820931908842839749161424392517063943404032168084246506452300255624965918758590968453035630076689104102572724723207640370720799189489535481558616506666746380715582301217647633464664385495311689154112663500674426514845147876794186812218545341952340907392649849451866614174314612949488875183975017809929419115626385890283939364865854204447411227686519695697834462869860335432975489061806602119149135743559213324795566332034710333061850374775741705200830637073542824320268039368076542758437244983514648292244945564013292483532755252822922233155808439421882797591352056652446475364730587299934096515021100129744409208624962917420347213448579352933574708095044531574008961063523575750238054319908695289058642313542607443486166279644096268619971353040229472167509542197875183687837076322818553193773233760495545036346860082404656437070106901736340674168558974153457512830544529588360437033059052770821767019552358379607193306615620589886342387438160921089922355001252007695959943247026388600729500413663911056266846526683574939107391461896873032076602816575133156560529059485386793333751307343042081247268726695222359679506875079306096340204994751423567063040945704106082124514418922044785456585681161357335661749768296332688951078186792149662223310951405863519334520272659542641545948728289655984448488778588518972368815226104372153234035306347719358865145326463887361860778566757830310798504979644085071434583602593347288100109271832753811050110083009616784373071917771879228274442068566394105205087474177694732689648686732418853178791389855267125766246575414246060584949435435270121915858207799373689944803147280342619114324642466616616105615049159460266009537592216079483910833458472018569141649984669879212988194569439033475593116984255082642585051399803746413864057809458418564459434621887333732486083287120947557777306078734583630358597903271797824213895585065028608560735337120759513849238052718614583012753494707032793172882773577748924650854494312103880707671863753709771386013690727446719916963050413955298973257198706346747744055350229270295590854046202160731803015434884806618662569060578473871078113178425622667683623171054098568535002050774912361537461060120053373707170156565742072665569389441779305453713161021646046593690406237497749394603950624377889863655041772022307653534189080534394501884830207217712788796214087332297697199757435183139077779222985937180025947703154713824928810274939089277379747218380846394248243523217709927887726015821664248904430403684496063330487481440338890701439077036689861323312151943573141329594026212908088914229894939937956766355929602401615404270171561365909149342743427183665026354133189013740734340650433066978532719501466676872796438034827492836606283276196954941951363861999373910818633368525205327560888600030110336776222638331653218885384003247548173356139877182185967231431013891929125775955133220015440907581443577235901278005102526300888492750330215000519180055771428173223225471013422435295097845163412843099874662165137019067452280757491577102139043138967834593339959307625153436184685136192636013053176357688036584444647973886315811398481100130580372140782980683709782422249478690146421615694449376896291987839203810052558966313170353133066068484504620367836902143564697675647254514591024224660921632278373758112192326917725104960599921470792535834868617549567136894770385748101459786972497675917482310870994438990757346226801017599899589236200600134723252728178132433262666936035981216238684230174506395477092310693382186748637822011114218976269790012095101800124687379992922219866405894913530171420005059121844986541941145658790074647918235691658418255055841420292873078794495576017226903845470152901809739412400169845345793545442972007725773162210892472832036055604110895495636616573356076729226130701980041737484369484133902177173419956204060717425760490387426085465674567361943523190800428635933219004866350688468566387876838956389009207917006482824903277360253550664238793628547163132940776609633977267027615659285855325539205679004464404727212007941845600189583506226593473928911896005640340453057962586699374022240619750915043175380805698394447996759922754339143341540295072938401785733489095007395496511988699917543847745216778593731911114941203168003340187538521712685730143822716283985659035457380315894396363321293292858492001054831291417874666445516305740532065238165867533490500388407104364264628838071265586502768915755243939335468785203989981752496224001015731540900567554721878500776463059748199289801583352873935262999430756547968390742895607939839239630339969575530995636596413976744784087971098940497132528303776665882412704247648976676560789076730274667380133710278886870338661406639100011867498990479509068660221425174962254749681881754735796269659121896892141936849738273024555558411567108798707575210906811032042315122896954253715256538238602550428013649749807713345571275678237025033903383711706624197426505048927545771769916918991388766874296830752900082597864909179627494665113330921388495428712064495228034865182427874787310830089122360314409098315731590956599782132192950799844863501335621803817416400609830039044601199064973749914739391887274019024272460390004235957508479119875612235900175298593826231684984835741106556985418896665266022885013529048952418158996633134830006381244921008304347601248093502023660395570254597905448361238132421576488841737963120089270104150359765830974377149854571484242091853165504368678714341700305080496642498290971811029231372915940629382065598532415899042770889679401421607951839871514666185249751620790106262411420354717170600718875160411594406939532345810197418396850423863252643406466929199369472515576703449741661512354936282274020553511623043101836164800637551371665697752792999827326083335445833736432514766135935023305967544233902524165346884714175283128410551288267054284724222113548034689804967650109999894435822469255500299610338502357104505943485462171659159603214158565158945493072125171225784485441853503664885257552871332131484495497748429690774669309204904597294895540840316247440901587269924103964860164945058380269007836346497341625375234111427815052523431645210560069647594287448081186320048655447175013518629247215367035257627729138430106957657019126358621024657551712753012653743391430117270860539151659585735904169170354798545942144132938725869805891342316657540460818129134657232136421993035765877626386934076123003620102796494476741668606569903410565769605362234165174647062016909572097589762579091661896802822609542577980559702480581356077290634462175716333536457089803992860296212029666790594792538825593006708945343610625269807501975464203027783814962220986889148421716397446472058234538930540233129298080013478993111341527966394117322597317419194578932871552764492613202915881803729337418336707051220347425575943983693117590678288360655705205182294001643420516121697262308672697058251450136035821724722760171066699585887220769138302984713956113009181327673130396622375096218093301618887052489052712878881888358434115598658082681693513350445164381798844923190224430283452689089544056459029797557653015190481244739627003087903171129798235669131741194678153595002229327801450963300937561171597173054944326934099752812779706400674526575909194848463892134476544257698602969389318821058625267578542729561121375198182832267085542562641177276542204215441794644499823221813782863334671060656373868245222850537840758084619454809021651104593659852534783295102701590024081238057663253525493897179435171892095120192885557856267335531602940042535065379358450097954132355808599969406072844651875100153959247843849907708191081420178993618789144451683928480807858988381735440113494936686211155152032790533689222615846422885572903976446505312319125867082339433815878521277442067747179660521965179974143863231960954797840111189857856822808306190938068624499942830742217492797596457448130519609598665166855905197510966796798981275297473603606071468697876782255675535506245336982240594254080260420868899291242645173168742786673733248684790155097414357558360191677568135957822830687225208096407739045139817860921325153865166180554573874241389769220231226282267474792722441224259640456519954371920752339964963118245399233823700807071716724847668336746035999746175182372790842221787384745872998766636318287861073107757057596469210632279702931840291725846404265010597253312389013517962532912977234965848226139783159084758004064401345332533350059942504063405405919380396012812205889693995247126484928075471675899949919688841990407191286820595976672822507182324440502809658557383353366860860969868462953727257247386473605427783947321448118664589045185758731623588662105536396456880478224892508321505593570367921406267669714292857877793321786744859785552299617595080581823527604165697806358769257899820114230866368814683473501677087431755520338583101460018788029959043324875578462804511128121541503821525590213375676426344140551779827493072313586784792007902233344084808607760151614362810417902172006926516265167958497896233966159622534336186716888255818467106661957528657162691945955283718976262183263594657332258834559051066626564169748789223734618514935535242033543285819370869801221599566928847213319682176583263816025596288106857962363496802581629163320132868633795697809411943591852480930237020979475805003974213983900326852979062350706300770863758864176162703389833440786500129003796724987591999913667179275402327632347054471560699463238441707718126170093330561225450399705657992100220986744411496631958882345439999209182228755374972465329474283125851121070587939107036730764076963465681591736816195796938869425414596002720402265169442453690378356301587060856539257655580423619681037612733038064270212395889365097205954655542226645373848198053684903218593843361937621527060346757085520297081593986240000074867043295030046877637057022945071292340755542781575281663398732903467730435408690252952547287013786742226406619502290905376850404183203851383788760427171085418432174679528312274620792394653275692944233033703434630911152178622071275648955804053812080334145521852850072666892987566052120758615995243426469711354179551165216928260629432158937301463352627674508031516712624802570254401627398791638232857160527910613575762300820233233620122667852186951723222766691632688162464337190227566116566131036737080488089358691334542019426062521893974967485654567235275940793391364244285479949709960001558642236613890252938420731349695201154376283714099443223737542925202184161591095964920561320886630490623002118132139499992309702515898217312515748174065517540272573101931729311525441245673462444495072289529864105068787775796852142214503910317081850228089371744253822634849054720850197293643159691504696840528495525090022546750014634644496691422163735539240443792148325355778465597536026845090595829260828396839571165522972730333955265991420712956300915829259206461450031401873650543356795824438392299964236343222520713968275201116991662749772233675440666974309495063934687949912512436729114158705125783408395190950508043837482361465815071652276544596023989588430808095906735605724215032725358297589859277741186649460924314547377969892437234628361179689781557979866110310692502340799963816333514074217340881473031370333455075667738188684462133474250272738459393613850629598298779817407603971665692563563155187634456564648326693784731381502450791893791858523110657693990836407659844372511565663174088674720695162178307145201628750513337525759090274540043576782767022697127349290989710096164991511269995907910247580653943398594906622384497182626532713343065166652179276780343845289868360196466712981827985118085735951668678629719758887695362443460817996468986670060107978870947934855237304260668523438541627867616337404071103281113681057804637513472609724425780749686798826122336987243097294878525377977414785407112865514810821608186918117725173376240053030621879221513589947766793370310833339894920250830459143038345897432948813438130229825590293726446699769466076503507208345747471438341372419625903062675351967269698097973502681501925536685442101945102404207235070850261860956884326791468805980210798172259368870597341033647871410236506051282127574522104081756165823588530719830754781123005969175088860275347262406041468294936099616887001824418662631819275286813705314669822490795311660992097722063745288112924052580405742153730150232392393561686975207608599758800920332566662467068946290452498201783725858645456587245899291677931185552938427216231774868442569853033204023347488676596967915242742380911401358397018191968574880160441851063891259984827061602473905272118266169992339673305877299187038389884706120369647946749805585491954389992646393935425575127641636453888146831285820071421842141548923229331565677455285497951216175705138373021110874576847551909056641165089587791592089319760133698260483499439621620797307191367879654043112079636381160734454771421109011842343780919368422692718346984825285802325296729175104745319945733424787846267997091189654526765146590792725756404165215070965793555761733528001944006608650989967514665225271491802638894127522890564617570701577875558272396704301496935233534527675348770403183192023343759141668823172908378247420234332187666023351849048949141443280955673097173552053128076623844242348691263363392023525008268325777645371620202964657136154866125256257830153204366138772976005827511851833718286005213093891979605018377488575123551459601643483075708916234719142471083418880230554631422807203118074336471647787650632164683565040834816340993332691346313162033831942856550307731101163713926206576499163077357679426124417177544184780379043293237540902207056687670443431407409709014002003618094484561531608522262902529437132314809871525585506237067838312807951497426529006086236478144734331455158571528877034234926752671130512555004203822025154655793408896732711216773495988708274061072216170508585200648097929364214218848441967756352286194937389358868021614408577149639493865285528096187230010418942586442967638892456687326439731734708245625334347572570231365555484283913812667616982583193411764986758287445035572496929077523356184276782288268975121030025978673556081643328073346513880291221143556871016862329864919621739060381412497787772914890841383719142487767223522535442765862574110953469264977563133959065133589317555684307065519307831207535045645043481683933625787271086650862278679336737057145555156388370555676365069996810785748647524802806512807106803590470185056054914600905192430857267986092207347159545561486679550928421092380202807769418060781742499347975540154464041089700932415553656161774306892242741009041529931336278662332492991273238763549840298401443373253994125756036973160532329673439302956442127424906270031727528581992482843002704366854902374619778051310125501573347403558424475287148817471161836605404963881188330552844416240674570635802760708581857478242475201594845219487057126644967668536720977068802963795870327550203446110639349049289037601209078981034072628663842634926922942735603945172224276398924839404382733874583056593702894357119243500340571079437695982169717068644255447604354245327423380871744385254281549840976786912980413092965510743712436980569270168543324576814464165062028016734027036648396174029566465378355828966839278578443236061969499496374137311463137412086021700304109872765802002016736558748472249837236336521063270230040195953702877698384354604474233211173634813929030587843072373027875708284641290618659312808924573623839110988200462570994222777248621622839265650491102622819155282546262309031708176354466407274586164742220471217797317583472496736011420888487489588077834101289898273490249432174417845099915141576833731025864100609397973481065840802121557969226856817551659715524749869662404194017633651667256920366644767144468437302060865478749431537952759112300664234567399830515916863857828123768767872852863796113825044673705928578375036867561078463021273046872270846916335275368687274116744253510720590761729696470016101874761054615677944993133979623382827023423613858008440713145519971178985064849241307517461772875409870442552486174421245237550512534028092899277703081963886338163476179474768669110590841786393576374462793588646220819976642892177042976288709553179366788918060106596835655392601299164570217379550831650180383177733059889336369185834585888446856846610276545852885690344975691093808468774348317647123417447596935134781179527419615192611812385704298014641781341730925078323267992783943327811034022123667070008605608104779998875077748227454247465904502939338097169818523946655550389865904779774371663521223620313935164931594161718197370946363014930276717475101515353985449753081753072530325829916711299066391845604496433506609589863829003191147094858000105994696965217445757021451814384142062828736434222430589983234585808639029177720350077100384672047447367769004549681199943150065059401078691333983495929743290502224394763123094943793225134159263032408954842405993302986709715461239806929338005980796479516873624348628141535041688917677178708790139770799141783117407381468838657250092118970715748704982874715364201258139865651528941722180798716806407590296919893689029391498586170001858143313796648210734980835427641824404166027509586662870872927422453100326063720220281979274912902824144780265830388445630061119496485034407986188255173749855538318072138035740578575639320251200346018221730508783812394421562859115692635359861529903977087175364502955148033541730315775757222409117643993486912027972158328922288122314906490014114470307569222536569178101070814422788719907281247343816702452874914740392686386673506930141730591500324198971201459237142409258231392384554570520437898123155682647949909190159276696005539219261599028041927315851963912702568319116534174146034896469075548071538178654213898227845585838062408727275163609933150591143599524405523503905675335702569596960296806450895740864930156560677411757400430047576261938142460171622816258483247629791745826670248443249098255248734574654458668814037258265976259304523809366866517627898973929704312982317758615779708599878154350366300859684212199279956649596948459448736904929000938295943270800785961033193853120042915019440424317579988467200969883420470895772872668142781159600873075502405708439959735998296768437225450751889025344701991590328647194711983431607701877276860996356367969990326676921706055864182035381534391201409528660871846620637715880302537618110908923961560770829197159380003565233571460339167280201944529993724878638095798482079321418887358859541047466828373824391500614891407807166904369254958011336314022222395612497561260622105725373658007696135752030298086524668200388805575498010417307125745518029373762763330703374409407136787157879070646428316442579552712011041399907372550486650262456390026385216054992624936243395939606377162710918317864936406613540981520875494515796836916773234942840507392022284459126589788493615328516081598451907700496058665035704192708377433761364178101625646545566139059201209904220448895851422161744172566007172698054075049813144328421889945643802012522095879455287957500186034949793138491259105100745586615045672687534048049997424822796000792141824420942739058283893227939141170907191704941959378134257899549230197623104403616403908647260614789309558599105800852471142876910358059233061723827616188259692444069272902125771411757929006583983943596766193049881461722133265862502487980226148670943618359553082091101340650868472556961599524191578841141152040319905776289584391752076830962954624747861765374419990444802134907593063655949795425638317177797158135027920673108644944274460507479045374978923504191235898100533558173429708223724768174490191955638369605992394300371192118145347854466893562799044082692427349199889829423812087505332633600863992699714734120825743249746045159428065740523850795854475633952276958861108379533687033503640692467992226067569610643249706447085213449639005813884102973600467209162361629312700513354402790770853944030315703136099503953489245069630221678460573046141398870670188008460810056096564815610271911710864249099320691573016906868691787437700431598960600240674318782008488941113905230497245369376779147964136469082503258164441707782457251063557819270840807449990523903646571408575194837905785298714914218567695960243982665265498281657888263923641668479705142117918110397941092930025456272854708047141368199857844617489497412097339048260961340632812456086266627411467355935456594350279537388785147414999678893227542121243635621408334761642688491282001098302199186560714656368660547677115418691671374799165998336758396584070296479312363863475241502491075142174649326178027982509670169586792486783196896718984121204437813387390011526792408417013726469372451570479567214832418820662989294485733647074144646028473887294473797521569663990847411549518175318076486634221518842677896473038275147709694459500754624525154657509635343910134536525702976617365220314091186297548052017258311784237948728478416876050178781288344160517482560695907210866583928547116090992927200187405043970401229514965188082312422719921079056086265462957251213258352894829904698299298580283939132324683997462251568464786001792815989057642830847683456990143344651877831688996853692287050009617271041721047298070410853258352405591601799522686777198043451833594084178800746856294379413354200160250751545346149104357505036711695015709760153911429845984746766223358409250009097682839508269954628407155752075940781104472133523531260025640287045038347949664049729459655354364650477072820423761872073343227992861159119218930981477098679023436232748772026404371773497059772272359349834430758664865329915739000010881141210689728988271520639678332663210469552685280612824084218490827652451651722683928495818278150331818529259547208546733463508317942236739197425309828621650537206608247081026966316387526031985050419198392808570782379197297901396427175385691522303731839797231536521496655075690247834662147821141775917917834913912700444388386787162568729992527077717158038324345402889104765248385210405606509065862015613676358170393512015130564334514398435378784880594802429725242127025386191992051472773710733458358918766060014599968489332939876784812292051462079053519395427367249789977002401837613652682720089791484641489745228972184262101343853233892892225443122387958845814923512850618866314420659663884831576101262444562714731689294794771081859525971668377281842945154038011431201667048741758161442075203161560747902652356382718460795536476579289245743269880555530151507717463756864675697631159930242428209976043911787734270505876129522009241014989575244224520846140399490991748630916334718025069058579546026047200596055370167200294105121329481672907347048161708192330313805414218923333294104328580194608789493859386144386130057415992325835445080511630122297035897589728714862802096399044698429989741596095888429623268534109003357652390153059759176602793863125144428614859804896653896159242808346619120427968951858981927526934137563168097855857828914790700748661306939400736423179182797910619056488224060578455884672203611327964104527339216570885312923031736206539535659442484440211593363571379532651054839476659629785516890016279984753458377974868270234723241095771839292713569508284730829653021533492035820510411375354843025160391707240105197180975289534194119378230008202772579463347177033345659373058310475652659192535157154754625445456742660247787045906169180274589100316419023582609620917901685441773762824363962619785992974245674235013586060123884551196458321998364779488025239210845273273013501624256702474409711428839970747502690608770470113755862973803319158042521788500501548884634539084215694896473376830082298814494576660841055673450016910247593251099525901345520525231221704620482926186654594506105789551367631401946278542854578982807162518532411916183584161986725051657585822967548591384472542958203800104459315372991958907390706309903433702526486772838770576641078724587170611638277847399027871722241615831732378727645342698383162595682164449794004992350312665276566735705503697039115294321278353270162738727469753902993662619417805019476221008812750750732282327520821870768343238289246418146548075379396175817580332324898309954798495912866629882920485480374679462196564660050781144980699897525958926133142610065388120004593975254536465920475380076738524271563388281275585083673739052875394442783078460223380043411212932574753708179499588413910046154739198057716048452307168174052874596892310174374381975864584658278690080270714102391423611148440728570873690605945516862090077359668291078746072945249077710337644307836960416485571327240984897326620507661916001373532125007434518881480947991780146861719341310205694759695421966009039704957932747487403254260193162097719581832271860409723293719281782871672246988481311507490113555491163716930124025032537707937820567443850469688464668689186798836769020903959497397195757493597717613699348331378571307119611893840308284110641225698361023939337561971229761504259210951511868164232377520599248908128981216456195119112339446142451983477442434461143836691968887796895068763563414734568109439072811382431715349723001947599707240197645242946582542950890035338284717168854585736964281990997956024015686185333986623341864063917517314418432593232101619978381794263923301393587766340308440790053765691623558265298034049791151381452841144412068652714409956225564451285092033339666783612456775362884057788713687750129356424550683377016068326835193154183686316906562404846974885183997568431120186950781634445361006066818718427777247012354721149306721900324286053508095998738869206522097093713495317407614123123413096898450583610776202148879631438008639450705260444814072121724805802533185543384519854692138265585518001058809414180996256124164629852412640220360401476116330815248473470646198149063052563060967172572843394409445078966903490374757518828021594017506795530663668353618862901365070288647926928102813232916353212979803895487906561357542593510498816095958225448812286411152035950746365858949235309549983486310664800719747928376002447555171313216383765077050375356831599486580724309071300047940846585307164426141741004208495051998990254082222322083740303508770593048661958682643945150114488147073454972363609571864332455684314149484396172117841820004318107683397740181418559245332735524609634853112296926234404758488011215700217034918499558172003213694569055225267131413312968273445028766911456074704972124588019124126004638145790460751693326660972175745698901105973599933785807757245843016598926130673513702711245123028850941128071860104017421288038146252599531180189860030428600275254265266729903191030115364837919830214235735202374597300943995681871100905345602129194499499589822994940283965141658893377735010651042213338227961283637981106615609077176725675793880607585319291809825680226629324839250465097514217299278940137107899135758554339048967046514213273392873241261603588084519269207869330256139562364874153833647604499350672508119153063774609252075861834432404600369103177250859359720054418653506295931457200718650096718492932805365537717089009463678586883933374889638263554429573563675792125875363423292237975619614164620825654495143299282649370550022438097077191292288541953554600199163065656468703159313565638189809838519804274321806534533678448884235870384190495882137264053566016523044758215514062920830878610903984323677363481708142845673428221843831980671308697750853551574039210249300701498115897589650828959963969455585209187351342377454825463041690041871468026888159686714082110943511440203869686128154364387062844941629325517162059029255644653065825448141677564086600058275937882557958356954533343398915906284678511160317067948576377873599400522732384914446788813787184354609459882279716922521870319603911994867253808768912267837737727076358554325523581488882577590543557038908367051322438559318875112078077907906759895914913097956918654823597998556982864993085976326295538358305908050476391556342629397704630747104000602876543293982067530007022483890328715460948670113350574671990550259601804569089133477392953975833346218690110098177186609283477031836220364981306965208873043510075677678968199557369929782844783528842993674840319122046837271051510303019711511721693470361904663434934933450578877664295062620393430837943474328349933167146425074753714814549900728991155974613613363856547316261105348053014021850630742306946630137862229227142085871343392259779136966610214080205784759042789086329384474106550856537156934690028818574698550321188217638166978954842030979356700381579764477819770157075618872044369721210715387514410108037267382109371707502042389086134579384606174914668101506119536120883721823032593536634435427273397181433145723315930529054850391754037477314015548659457728451936921050252574995328556987993404172843967976299293577891439074060372856182276616020079370554481499546881127314055822149972229983127298591931248938681938007471300642336674032938050598809772930639046451344234303722289605265838316282914433181158641241574276713500224204936540229631287738721818320140175772230227553791187444093933934476436093066512946805936150853595270582949623524061364259883525197523125669281151196494517865391779468340025077732099097499386434454101729612362559071905824748934497668775474992875336123510274239561385225390473035782772801226723579937215474703666269251705184828350435443525215167275901800350592264837409342531002307091625934810967899793280775502403978994374658009544862383408907826609234577318114733952706001919755574106652425031425104236672342937108989088015687458274844472210481234749499754945669500032735662334237645031109159071003620668206708988488073987163079597900247026094994818167074284647361961877215772585005468641847846122464983708701854003498333950081475154945946947429836296940483420151063293465602158305525187745910068697967230396521543006755137500669409674524763026987881499012452592604034052734193148981606032815037234721361482060512431182714777709508161184860001630280759146162987387714976655959132857043157742321321426148985245635230245216214731961655149762330150573544316740655154512212790281214723555048035968041884823409249069131551510004020674011097118841818289099222439699936933137523168330553322536258112005250308332987495959816188710367981752008478733678044477233576646451012469022983670949320327707677150628406125143966659739703561074145239882823552293997509475729435230060483531670208829419714425468367404066216722714086799179171429783109774657998100447751449810977504298388987777430333405692208125498321739729282052877552042705730919584424994543301599808991884492990330680013833216025272066053078730575633133676763277570025572158657910452911641642838073324975429798305395537796079536456498773458770671591575253397659685614925045524943998264836933820252265444467409745325098470357660168651117262875260485723327833991573079193152758409464387096513272244099704088759862558448935967191469763402798290190712454077772545715997131426089027393541039309902717290564720714381426302544989582514907247447668254553261114075968466571393712161065021787927118340487076911234926726141663933957439441850151831465465017558591667425959483007613652897117288947014578923439791016484909798623503983873279131700900296888596710239784346791084486915199329891545731824680723540857845704877886237318126033190288304223270453886462140505310203577332984482308230311960530025662301760059879737417031592800263028727709534360700010329041826098727937944158799808636491926730193073155015654369146096486148500580509280542668802897008108847688522118919359636694203644107930560986937756299357067110221204636575619261337495143407471253839490980838167160092321576536207461019329827076711963327852784346690219573130625606530454691728952578611677915663527322389050528144765582276017812388760105250233447027392344427444409205379158891459119542691104398842744070485536641421399366315010355755731724765402098890565679885495835160464369809016256343077452055208643343246117766599506533445616383182031075992874464285494361610996144627289403166344333481294565880954681341220916466192827294236043720071281816576420072643069239827744770812378604794838088859361557407482792313500497623288177878999839468695311056878010518294361035224446217026485777568523905028739960461002828254313289024074318896360972900620527702585925053482976700773701173553666661010752413332815316604210035859602175022447703300612130770938399909005402156842894389248756260478155115567443792745804604323193980144079169693533728011539894454646914679789838392081045545940737415460667064081257315589655976358039324413049041594368055051991502297225655478180615328374353031143335837163758194513446038214819481258251323201642697470866727260248373526448924874973721831310185399509880740142733703829998717252927708260361639408385291628759989092558160014577192783278605299702361320141484248784685811170349469333501957094054676675985345405317015248087675146299115394452457143250050311010423602428710171309994431455609855155321494934681539303121049541863417723588717945374814448489252273765882170752014642666690364397525893065179099970147832487400074802484047992202836706839089105347969798359219909939186580435777865208631310034478725340524141870981973479684298867427873520819874580172685298227870184997315364439955302076019490620903602339042360582091886630284810791741102892600767881804885920881347854850510450728885134114584762973691069096739522216260475831726927678414018987050153109199811835535336336594107569471427995205269547822577094690407542034102688585800400880269905997234414717680835463601429737487469730251844376606691993315949357515703260885870808604529535245019823907968732511421172764124581888831349170007255899739006762621354212820358644213574594221880145552946827208081151090304470879851507733470831499952007789974751690498686767011202953856288737022543850477020988983774505214934702884354160147434541697907104236121926199678537662564183969887626065881309548771112566629420635835455504632329408615990591954119317262487702283742003583648659077176755247491575629905232201027881661977233329167505408861426997969544592544477143747573048760690277632372718908584101704306925286277149087843943954428173697031558316501192728975014451204774625439217688965725691211491509606078825477571202283172677732712056855152959486878021840724509452474394418819131993258894670233398908669447603635334342148171693282053924772526452728606406251614779926237948894830781086423771554791303859155687691609493257546735251614263758852394140130439468251494209323091860215117097345027694598470838851163133282899646417299521744401020024423583457175119388092857054461707059898066739918525613554167406781234369534189185624313329929499931429428152617496798936319849940461863717212534506234323498581585859531254289771845474685895425444157526041110099372823017241423858542726395192104450226258057451345040086511670198022076082558565714136070154447212793665666571694690219504278253747096832999592086671916087168142096638469028496846049536199996222287545550145805011314653690081707946085891843853061880055099241440859451157043778676341328363155632254293219063299487782099865769086045293658387719115545062545815129087346400798493969329175577770311968608632461294973539243914010164419769563546810070318335917047313222933325940070197894449902073812063561726379648535380265051524767376170590709499174385686686685670863803884521672455714079550004715801746970630688163259747083349061640854561110712737005789621832593189763939800448004260156992275534090114490761740420269376041517116863744563792201245071558569179818719072883039592322911549097542109422804045478889287048859240030844087108751702021893989720330652777837076772789205746126358606598443623749668394708855625800540721029072211671521709455095395735520795184538519832471761707836107390679627614200339475544834614685677865413200106069905454291410092139430691299706269343011572125380858449013616953164411701795190893267869839430885379599527813144544253179043298944523034970559263791339778611414650894384872043629766380724790091030082511327588303074948390270241008471207802952335193763435940579136019822409289942474986203956185177488079901780474832419775551873634672868240099042714307220610960797712667161156703376088814161504968268244442244628615914382620664176709618525385895804236549899839255152522593492177414345648057324257165836249153877176653643297585952134080694627450076413396104799009643282794090532221092332058436589044647209321002641946126379946030164850240436441089235799982713689883178531681731558082477874378850569394729096048872655284542499322279196536445743234415313730388399286054977895818348510284836620727693992447772826026707508989593809526423749778599066477932800944000361608930163643750532160009007632668924893605578873061987766904389774704132429253642548767745499847250045287063491985660326559865309121288250251826631515428808242663176143988236408272721220225368093516672059975356352121889067598732149419371092044124561535758460017770752282724010236882860964813208927829686750929202785751806359314534026158167110060787699088996339052503370620274120712472450071961697033267039935175768075667364913692708621695210242330240743060781065383324254202759649560771006026903737818520613894571610394377658125694948014093000873563015810683532078875023489318538990751462867056741081865306424460383482842011040210868935938292772223097430475303903184468737095109763320678693059566034475974171547782855457550676169485627590315114412103063820264305803798425644325322591133115169949427346452193137836915810156897425729526309423319848396427062459325735524510539563405662616984651710271591250266956209914112856519025190477842348523143583942254115489548518839521201996670086216233883164908952009257031149893169595935434718951941000683043830240919702482157344772876266219891817117769441918433209176565982525826076753393190169752688148532560017461005141119765903700085467584352779621879071717818478235224715720094212291955277212158907605450235554771938683283624971582261142498273034910010279004931401034705065540900599095438566160392682599940415583267718503776807688206544295791193269181024180155224572299157036261689111039679231798216188890662023682066526105367105524896739085002390999072181931964310293407638452527618244313869558328832646778174010610617229593826889956152275473060156364480112705107227546474919897366321194781377195486191856000893322518882507424341436419352603384546379146565772289083185935478339202514371666495720276714896007366648028363230854062460958285279060986931588054899704578908340577413390138379115173037916999573922415665359954184180347902388414680808076976322100536563103943296753365778326756023453954806898246302080588185647011152174414479088572517519674686800898990999631092208148277988385486484628194805998536464627532103912592771520970264036449268375051014427973914993832111782706786033048765597299912789291628110349396367404432308899272143691723275259412802566309577587718209320740961800039853197823758097058186096476775112000117736627439569119531995198838834637645510892103466144860498160510269165365014470046035617937220896246952176371423523731797619048933115001990900050340618736671590906104070801631999872371942002766485447801462408161270216497225264380572918000704237789012801985562841006646972307067776440969585924611422208500008629839073748545590663709621750080125125915291594248817883267322946308829987932944370207629343219716935110084074022842103845232088271929620912767925171994625827546261247144141270972277260384352805529934816706243779442040828433539189097592144194450491642435044508600028738278766037244003172150049240983866722212040674923307840610241007940249935204477747233442547379434787637605659931086915474560336980663362197915132965960099218724880957060009101110643226953398569739474233446538450100532140684985689070526370172141237264029978600930393348131533467353002456652991783913048820334930122348407994265907824661902441594087446712922823538154870589408312911804441327660454059603071123916139561325152849596888783706590534480191807241741899468216353132231722127529752903367280764479532092141473375972663135453840443189698035084237470243100007280495950918352526557604401927395811770452817968752757810984503852193981627208919185972219286551448664013803298646663309973276011842150729274063046953072621066367741152748299793334567345100656593051507957335795375021647752893318998783008271893522698598073877164531394740908213060162139419156136515147106051932993790059908015163143463494091484281716953408409284645348253152437905823573912628494215723480754484917739706951500574449025996667902641520704828393468815033216285889898622364390864482502301396094815225786436884706865362915426418081148334734297496697089800338411205870534367198176562437465568618460649570962281024573912214108730277277073498602076782303243615764014795574669171559751330923527119247195333142631887657739681976977579257073616054670002112989755830963254128536120471048774132116629437357998369750307091967506528920698985830676176406552183139813009269204480716582693002606326228869453354649953786697997478656679352065811769192781141036413128723458567892278983830450418990089065541147725370353970963690727145697061406084987737676248744589905045311623622084713437427438386512739557654712925385764417902980335245357447729357911173140997407441118537684241769118123643027509078117540493949882607019708033596164533319239136220293440740649742974739208924007922273078012915334853840482661028759745135537787926387324542548446447181839722866293182947519444862450065404755328841430969574324556771638275659630250074712611066830066435394480837000356182717620507946904522897774378432675300665551810721561329117938487433239949877696342010142890969171339042162415206679773940745887618110307319362736344648357038562864117873454231291784537392720592729455367635389578786306526339498516677820101400350143842957557880341082209829637421993340704577602522269578124672176883939617722945944738020324415064391294250180987628606992703685660456475432890203509416150144101952165356507553038158858181952937737179266303486614581412943782364460627826132559786328178205193875862049903044066213927551862146315319122679545662574287011643152588939164260470792847817634431256971800813643561605201450332969477878108035596747799806260418465192119503673785796634878189253390507580653186062323840312965699005740553906592936350099220437227927947908889421535863890350678757383370872689082390949653778029961223443983445028054067798160751946478538977470373962032225213436904404288239657782958392735678157737799256636327101227767382146346295298558680589810914312295250072893646275665119050604244535337330881134469687655562983141479124918490292913212616868643828932867473971795891315726629382055276550361973140325487532235902223852607731939876087759150933536203666186194247630816814794504972362605905524926625565980765143214854534546080572280232426899259346403048591626290307180052943042096355636562582394580176449302779467940545959422219242642045499237614025930231030561967238136725682324185868124255204030548997155402146797922058985870747986617747054475904987154813137768388634917700705434247843777829252625506955075139805382098435375262815652372689612423087012362471123178057839986967581049503283220018041745219301595160033429325151705141349463146444674551825394040609688317390375294772480513517366328686876194792360969728725101487044726558729801693373586694795254359675767802933974878047503178026341673853809401313159827774969618741963213476789669094793377588903802225557222413768944065605923999922021298676890957137183835516534529296694939779234105911111311381169082962078506912189158622487518593760780856875000785223243289116736392068804531618017187006852314765393143825399069767215841654968558519515944545891105224728634461056555373899847546953273887905289636221717177980043924590128421681011732499781025946624671354762507434850241990516414413484593408620087041243972836687775804226007828132477502659419797326001480615120336682100781903401982213497652879451916401920901938621814187022335456331411042656385187088816914814792622046339852226084192608042753072794314306170748998964847574611553486201635249622069225848197880728364000245551482087044462555581343375912943392984259507146535504799901325063382118156443586300598185258125737540287646050029750217504430762602659163546631142950379112194561888070877841803720789212709806932983073048814580465999306792471209370030110541282105313251411028212848986473673418982880850019293684245420371361308184190534593012571597736713965731972056867222191328592418898139717702484613640103354120912471187983326588922121982792685717080373077488583646962760265904118862902173296479836949556940623698433281122834106614023662311170200770233785857228293053958090663950695217548692512215486452459107020733778226882106920946408084785074655757951155161101662253527209053181737517402891538423623867495774250838260191138897167294137873962978427444201083806925501997518418868936433131104506504376896266345333569286033906146595372162299574023577279500040398642253095379280921293277272908888343795212473878984332310525768705393530791379321414267382498222622058537073641976188340472727671502124116137585862573899855635375359120687071084199293758243646094872640150638101200259628634658486364707108463310017889937043604567591070024102057572329340446885643296005934081503564092263442730057150620181920337996948481735600972639100236841908170212663941757939730918328261097028328589230014117540281926824008518937091891235696861532843059987564829199408564655137072124718575793697702904234547448559333840242275035372342957066195289628744503800058273488221721282211939821774531466064176739617343934527750937947499732261300015303471723494825921032880010039486133320346477675825782488124028026842541326458533402837661625042058952743235159445378272292570512786203814379327872127805802903796281873001717114762461043973972688313324581538566858919166648543687495137938034216794989368076760423636430192340591172308219059385115083943182180625516067433839247795249310428051430545525115028151118681256131521001701312477621477070634678509875312672028113882460240383847219354845142604602107325960085943138018937763649314448214534466863520430103986253580510794252637722997040127781896544750785582201452482942677003646511326429878713864087725178178934851463364905702253577190537258654681602186234449484698087474594072641036808593108412524482152167122240234592717980138302326861667418022051041265074694479814982125946300712063578517605084184749791583793880408701857020986556778561328760621029389840842512224134580548974964447637169702914055547858778871519939412900860351563439410088095201345190838693153986895604345453347102733379053033980429065833285549362233062516937757170544946872254733213172739887468450542686118410119375862771192305113833902453522373130203503977366568120616952624282130081232401764140135823053210675168436738872255423595017987646822779918288022590956489147069186113698195994580767830106821740682821394727331165341711179625759656810153527098113773870433803027744789785673657141897716980084585828509547484299769888937524362778045042934134063678792757352795536756424381100128111053142088417152214843581019083706083663136803527164180458566784163575556281061216628279405386886465313296682224789906251887980533772394443771522806119666868908122028759584097243680709007452946278288254114293794797615639652565046331140823707354103442495469771724443250593828917474020733861446804630878342694313343730250373857152721812717935429924302029292918632510655105727696580529463179743581574798316565765177674616393345455671630141408523944289913169370052043733057555964095731267144873446811983813342656048522631626245257231819648345716320961414444917830232891689233742955090034283486118734297584226968195522087757757805085140655523269783950061002986378931674496852965654166975852152518351884850575182379347801426692701844186448201451518519765893689349572648292329530690567376319994988948825041204636184845466892377380458182955674203580114337560767039041435138577522328924237285128011914926635145647375725551921742931055958667336778668131041919886514422715902382238693923662855077235783063534922012146711574535600005119643196337542899662874232195046671017271183718217867229689397448322632919763339703721538693087754990829204488898623735046196131216010294807203114971677546087852121047590271661547036218444525550254900971896271706911197783533281831247899700121708421716145170240472115247540993025794498325951369605162472007948916372314780387191305172362632248818711096090619167476398145213949132397487566895508555729342221886852046824633148978588592138237613325003296446696275470699642000023995084082593207331589334590749401809819492672158878656325901134207353761621326462433810278528276238057772994989506991130324497512373392646926465561688022069350629624075510428304589934326330281649651405935029754698257042948796805979414295104849949691133659425904907738598595278306432827467831427344343949260244989383714631737501364636940483548547814532094040003393742894489433890419969800740560623606025162893905711686290846889749559543356667452399119247359123016104961019449941409332413566435585207071052593970548349849165555275032482402639432702731655603700606999523010890974829556061698137141955713706832137757292679869587944357193610403091265959903661228413426211521458379820102749188324456965318080211715416620756864180059980776168082380657441291755102480821201173368022082092390359575653672597449767688139386942383290374889985859490113280411619660519818224546318140121643949135704940669350673034310229718290544288468770048700263435459844799284095293501135312489057597154488418501994025524426373126682486040161402536714893247186952168059385408249823719640884966088316921221290162233409710307777062906880036814081194793604053049196527872834767074957723995640914095452218122359828245809290790370059084515620847867513787563917919632921081028401519608221978779691297654517571620309037275134172516107513763471737306593150131093833946363643102163823455002383492691707627306302218684853544225300825474696253847794629180573763908194792592575026828162682901443721386996801915299195310132847779452145352179553247616736152755039371539851283560467711528626177501063932807778060309001279696680905849426586526481312026373395685599297998162558250527859405227481238036435273167557360444960391514378303583983486872809267027960360427703347847281616579069202464938814977677106194895448679261879523654795263755747330428913258246670602001289581126583798311150891336812111941385263557624365762667131475942769644935420683162157491381207576494168422724947860179661838774892691131865988816185196053752626066765948189089736029774607258560126671002716320622217660336593809018563701288287593548720173821610526940618760592476587771913493707972830749237159574033577481066116441705006163459288356200749692886030225444004607980099436045980502945835136644310879360111967697655420419264343273451765443702324640621046278432798747305464115512957317194402697774481969595171130813184559006215711775381220387341729484200606802176897250119521089521284439946322520570948919103161006809149905549010205041993930682510156417274941769689394409978255643887942589201919854905057050569566251065997891541757562098096172274834192033257690422761917439788876403760012284748897711364846947448011654586255965376582300173964330544713144216665164731633558390637342976109259451513315090681745502684682632690635536275940285075321863638911351705113352450977885117099555021658505796793171937792580737038171237528623777188634587000276630249792746070622837999575361058791331252326247092609952956157211002333693220833199726747408389775271884746883706631519427510291086549118445261668655502201864770959997751818778889030556244811136713807366456473713703488459664612301976988237814147117224802154216245495301302228262892012853996177837034599812438529198401860432090581977413526078894174595398411582969995436037664844411485344449020496833913242492069022474813160946309943850416241408543860204038742273303357171279830836564398021956668718360234148269211112859743009865541077866023868859737554972654474406267121584880790154502273839459855040398702608112352322798148070186692479466618321155805051024178959764739896975845800870656374987117898998476472010920158827176610314003427368826919286552474353778473739308607187237356890449254452673495583946490335605888077253218367662499491662717001267480342633653722325667112699164022557047009313660491226077216192608746335900666056946122143378538584498737775476487555767620042713590503451578216122972064458875475967961779807970314156408395708526855991705865469979024000863505480865708310790315652449922355581383507213950315585278055483410669239416908729432381539049378854727684317664721378844028764889211000601974301685839278139193690139374610954201862664680218284396966285388718559857834361486527044408986701734348145196705194803482140618301722936469811920965071950627608595766334866627686608183328363954346251831733721507246960592864174894922734472589639725337068817936762247753331337878162779258096667654499351607670803214798473748951322205533431771604542367458449310784178203020089238275564804805538624419321273394689568586726781939671167777493472138633524451297622557549149057286241394044246740555065924204303421255073848346081476767433413603525640536325742816299357669853695302245742606095550728848059442049599136434131498338123574678682206822133039516594044265433272681389809462655122263161187581673892751292405452491569765040159719461891224906595787522595532295929468334722899326834121925737897680927023838832447474159512704996955846791239809869271914973884263641371569881849158125570029083734709107539414222713781887775011007089040982188909974291248457905508111924304522349886175337740619157577455288883174829489456059568107191393210260931199922364107560321942273265063424229727761138946562936331641272708276942853514771762991651721348931942427770165842576731523692329549339057831694292641044543073667392172717237631270256493692721651496875868750394495370907791319068178080923648345169763623486650834226688829372308681960840752606294588435139028824778730966969069491859612575817099827003081616578419497599519916566770979099301285211804155556838681668545626049768857571045618156273195089449657741033117742111584533739503309200103319229602331753917915404574108847480835986833382385853152113063937774029048227586946073444797536810586014636238706862755693784731766962346166834211631654555942717294576011729152843235212395238547290967194854845818504111375481133528909079100739417671764497047181908937280443053578750026405775795174472670200389651147514527315845980972920211627112175713513660520277088223290811058510240112593335444447441491401739881357950988673375526277796455046218464770679352106207469778102532742842822795732939669684841404945532741627284508557880561726644510504983423523197059103575130625695483312181506103500423601383606819976788900010923643803970074249357083177965843902623898448172224045926114179651993814638955313097842628065104314634363273711904326288535675903495883248150907916504363471836848697231573870185633124088708089056707887957288273570313622630657841912165297728802453019988736641296939432202063223639011469256112191069005264887071554596466684103764127814325898571970972014963521846771211959438575550907324620958765820135354462457285952077422096101877115497204050073363055166907680940062965558213324723402596798758081479980637830601070787136214468067331788552512951287267033789083227474421941509459409564922641459196375146487549381445698913583635630391344659488538103931164782241699360007890145117661164916896950247868130844197420491056507403518508811478393892118807943700755745497846684501705759932774351212355046469518011309696355695480635905301779412648376584882199293440278721620588504832892775735404494783733814999642209084960522282721069004633564455556862093135901746310534652998213271570507790377793740444366567131045802345042146389903851191806978393936258454454246127614001582473053767049140238849672512868105207685524405967797239858710025425215261809751574693998776638706063185474191906722645302604246803951844524410840755376854037582088449859773735902558052120939766402138846267608639055899252366889524094633756778455289882880636328436370331926780731363538123960177748701825350451886408668730276314078133690553859551677422518108363320569576605658357477921766507606031874948957766247998809422051754139155247088727464814022550352619467562348041580198701624215553310577325723153293863869989301183230477134500822549738813672495526907959535546076407446462159964910927514482737613319782155923980964518363505552946223248689605895027164204696128659940182374402178015857703007880529415439705681642415810376873027123474389086803186007428062948758130254214273474747223067716876036274230969793575525922990864437448918572578414499175743512695287335756600432163634124897577901872812607455880303942060261261462333219352932459108138033535781825535347324228450278991843824613302208315227954109201550093106786787268347480165444993464498242040897872691345577226941739119972888805241895050203923953995981490788115098468866590593763175715426520828487159244852141237814404717659507988380434723161759969991922025613893055861785849643054484629865420326122463015000919287179395259901923484340126581911450433906409036975797626813594663145197105357208594447201114293617831894143431121933288251304022663542934209898503233731669447504787001861565566190576170666715270561020595092169319324829488744630780215333718880823370393064999774230090868707008482388790728410537084590684108190161554426049995498019976902064608120493745931969217449556867996814594520783139086408222964094425410113227323695047957606698667117343698148358362167088884592057593935800493273361946552578732077741578985898185836095856097005417652782545549015396749785607105020070920780212592158227158497112169520155750436364438261546114634653027019106502269565692389883201394487768656477008510735078233178159059344991750858124243222676326092112625727414959415306188735918327076402760219193674320353325745198710509804919651323260733740262473011372870267139783633481245530815548395071531406820384960283916120131768101825928195584011098400909574705910571082019153560279036640793551763490757340097992185216932295600991310160904463399478364392139279267968080761029304512728823665908972127179178828592840418622227425223595437417527888136472002232957059470729956083842751426305429344282174736426887519838820760878826762141113693988304498953288026395006817348749054846068507455898878586968719956791139905037180269456258836041725954525196525728791155405111885741393143239335740695916514860785599088353477649001525039395953807406696858834567843445095099682091052920188689026178726727601126000503854901193789249684012929413290185770070554052028141494965696908413215160518397436423733254997220280834064637188233866520452205484291928337759948972704880720593622087321742986332996502906106285195346392727125727007490337805422340380898028523079970255154484843969384319699532413860958073901124560901963949486761311948728113814153150008869541790090936604797866011097255831616973671457673243837535266575281351291796664527041732213707261021636168232776155800509791638508680550424369162106116337846443804402757129854245205891740986079462747875579929174218755570796419175537655361737118110674955034339345452430837965423410392503453827959317460829449088853358944377349942612354305387089648389272164672485942220693255515833037838464074476696453760320459706610734005499797712254759537181323309189135119419862469051132929311088052436524032346388668038769621568960639380768020246053245658656232969071759040513312673981875501121648807640446013629722547733526910153964304064630673129986954655838885129134107041608413825531983488211321633797929171932083892608282087404095885146220631460377055716770546016803135328873509111321891606152812064001991215723440772705240985986621903245494352593429099212256582647259794227682749923642739093741376810761148414207660193679880379352170449403625807842077217917885696334182806036052939772806162734694763223038647539108685573529376181085533014207461888967178641609632924471942717641258492105823158045774919058294663537710307105845925510849226900430714549844481759280158224114054145259626033844457452750837650254953448585110949324020311426524944343139458459882856910259794397789385026547324286096743649327437969156153196095165767858759431879535776978429360788005007754917035827054952775598570148658174972387405986547200398704597349462024845426015929474175557466675154952900143840530896270779570584748746334793733675953115469182601865837035270050205280852290384782180439679315630657235263066113568636206287571291608299969810980643910442955226550680687200328040389396082720820300108287432314410676571545261923294296618048120472183113275320535858388416805286239784333089956217819035816880860880218329949200613210383507934703823390917810296519160546397019075099994545883983344052178018844007534163844981878594760095529868908031715516231704456208786483300855627843383426385125178772820942411322120300390603810441983781044419559500688916388100454872397222506188329430078354324358304609755644188478656219165085571775969969812530349116664196570365405733925972788061356983319395685484751161936262139751264435799955419976905965108888948218666665037621060933582975692965354671394070400938527992043962381012459473449764042279109641953759422975203732599204725791797192872844205400133146412264759966402262463175523162709295517469815207598790347945528451519615310926996349597135575142811758007748503935043849048587001176690998186629966175921945067574023179095061818058380585627654692649637840434056017035229609617695066757485942516596231956693713220665952976239437748450547519427194251962047079148976765538068579814471413492124578537939881553424075278701571162432487087166318245979143945015911542150083181687769133165613874318679157511488106291372001470793471774635132900673061445928789175294263923788620740022942781177112584090071961419303619603790521963197414097059089878814164127401852685823951834583809666182700205050839123239547549050343933045180238270996837002144438769918626514458555448261941417493677523895944192582176951131467562185958446124450436250935474969017591548895084491883555395082035471236387033594565736421316645786196417772539919234659687401446236075989575632829508691329319816163773115000518717962789241207796261350333527420404184260558273303130350565393954088439276771779198706892978743233640480305714836490073341516115736547646736727096047266134383273134476834021104521770927001783322418785679744790362302810228811146684719681209711562728060538716116320493763063590797161461238661673375215350474634391811374120157693489124621988811460883648268302942275580656703575434770362100882860710758859142920648594566239927085254037565279579396876918624525994911458221413342005707578163808290615981720261796468595472786145874454926024199079062110662885029146155201687066896484938314337704198773682942089950255587099096883003140748059155254062584601367939157299395697560861162270208106898004945159019955382193568311829144776526550077885943738226333696616928584748440801641652279204734141769891926414683016624075898800823338197525052277307696890661589511448787763445677392195263169320632886663700083763868966443778410153637105393930618336155823632903597392952834450460773088874336471043415725845205919301896526216645452785798836277584763382935502618647978217284883948514828646875126382313088056486002394435127388446967144064008022214090528871531122836661848369724607549102011187469904338785910611639972010928716856636549302000204090258388647692977072417976793357300802083674752469105563769564793251692937453681773043381922722330916376592230280390962708094094782212309573025545478587420833646699836631484984398965099556076093405656393917452097826327573140052102878913473952176190837882163309173868072984187070792098622012367819544496742552115326437213431863251925921678314728550691956270666412766162660413447347353827215579829348080212115600094331181941734694828119817046517789895186958761542322019682446515391984801402158862859742065680363734829961978962683232628780832832374472975004574035191778878398968995493956771223907243798758186659537833110130801228222595221523426298980009497177071790132470568336208621760223479367387351707603854074574084238073535393205646050676119032249837487091374241343113239534657389039110720952215245087297243020759426814129783958208086751375514833519675419837035660335396652179007970305759759805963037589747347934146550866089769010321241853490019436952659306140211701259365107830603472966926310582821347688917623761756049535845158064480523475401609728613396604976451067434641084851032872064797492227635049791374885794493107425196446586771615692522320993965970057252574855694607029019375530908875849197947738398182667042635166525840442570032023244644102037801939160793910459096045979018210324376011753293064312924709578423789625200340010893574363896592282774565985237559568460512520330083802636142482834208942226160607710578007843077548867488932206007642812801397063479125268329971691082355321823177145347214294905786611511577124952860356663047655007942957864784676246419517504322162373261881158643632893287181164449840550822561051009780092767553988890525169352550074821008536572846180441953985214180980417470344967391174327345089728364551627286709638609123431518095122320503709335380534909443201302309575804876953145936233031844541494371985202953299388966749830532089867841402207463948595040844501222229364868479245207613118902482785079600644678308071048509728530854070589436626990589876658479292015347273432948731505335578976602658165122496509072905520007685177400635147610588747038542465532812272481209224550539154165449491108926693406149451528177891243483478022829678206716812533987965267708537883987087551194897697498236605162068091738313335039354777184576226948321973497671540418802813379066896675021983011462206706514862241696998032176336957916757493036746099421513419057932938042881070162783904533382442166040715820502894721250086442463826469601886254360302350699047311768771252949672916444526609899079399639829518544945102229576723016425610061923672627387510381781145659029374378950755466503318683486053109713056379982406482223651517031037477013069591252861049532349210258529292214219254993291397603760769661528579697710926529801920957563768971128044570724092314119113597717591377088802769286981268650603852476894176039351259010375568706910022799730436783092907825775810119689173280226598664516140781097046997713578784664916266811262103344405668978360803769030415048836301542369144543730599473468850596551856415812803174439947748223186129878164682357635191129150139385515086305282217438384949500749132656701887360191496389222226035651883083676790212923335574049444819398999618127901934605350226400954989232300682950744382430786016429589485615690382754868537975854361546494398079142540289434732129630455265733079432418817061842935058388189751108068378427261907562068084715774658791223599453909732724586106286434045678614449468508550707949315621491671796303316795607328649612060707233908721896894436880408001526576858606719582509113571840470686173355866704892547702846366541801022438649142829137710315719876806002308712819243093553776246192948485878246606581343157430622198297017881147895666569275290620501817280951593034588292078847374957290740339521265871683607766835957020802704424897283857717651857406109825922165877654708320906413079579065930805944211253557243922369794089871016291777449709177709130418447599584140066884413889231290588363133420418205802786545578843833483507793458131724946656319563211504479243306855471093525035539980967756335464404187146868391369596102782103790084097895016949572117642917920084609994423523288506468173496530834412050081440035202153816294340077888022088327741951321198940672845839777425503682378110484519940716008489198054569107469626490303347075752669597886797210194913226988289767346672754445699548789350280043605822153882224664286419892966407570163962100682933507598051081804916786876367960018262637005076796043107878465766403538682057122212179362764331861639413482547764381055957440532252238236527990672333843323870068446950546985135890501760148799057314681866719475814940522707089343597402180816638424266999130410374956788822249871752857167582277101404611404361463513334060895079329412888872520111410045587286560636597791838616316999748760667997536909618275375095511767980341922988738460728813065854640518765175470575855477178639018761198693914532126667135400179092893605782907104635729546552078864594865969981286120150559215905684725053205606375264165933769136411955076085140383441516863456153694434150881121071788868852068740853518154339994965466295798999958625245825970730400874014653970454665699393687196002734760371301064083230651257141478135439900887406625806223294005097115907308647248316904675325634917852014123872448866978121040771087909905183279715158420904318861911559414008382342983449932426736527006922014324711953351420780644463938214550620619286324364400961061410325546855925526322067687457728791695379566026211145469349942031871653058942293901312124961080823283417837663067922227303855559048431850671580648344085473855405345629051086550195080117135955408051463395331496924971525894156644909158528690380918572923627389643511438625456986180809879492226478393861537531808097793154896498022166249112635815245897278485591923496894582192700741793728492024272240275209088479505825345676173163198289965835879328440214684575535302153925688193789225401483035448905086064045251004577455287567121738683365489302622212698768030032989227731075156632288978262132187179744034390465062557673946917085423089403244939294759446972805928564343641179405003019358050234043773955262697853458309495185143578571931294760260978859770349885478709465603011075510867160668732664628251122144739332752480790606528377771720313907643977888309714744392526354870568344523349178238833879352470868114892626607846728717861802436239889428733410410971131441766520411747295907587890155920398464314464081468040063553541162067689662156468771640172826666674475529298936386919662857595879341255480859438297190274221015503450709761934853562944961693665338929065519862843713334012981282310065513682437853048013512682671548041138541664546980708620616896558798085739582356026650669221089003469952867732034837993348305750851293640734688472388718319678321021760125550256307338424204008910479851828694740416838584203017228089658479613460282151702649881060708008725811615933041820868735053906650078632533036566812232751583392774294311240820874082082182418051081159689538810648721833377871822396372153876347760026179911705334475714428956237819918487789227723012963770554107176113571032928489267394681071416121779343756575484111327427042437208253286772081154288508612199106154834247733556217047296089312050938691689448927790554298909301099635806243446224205833672906038525721536891483572701260889043709854757697710260113172628092859032350248127935286467709662231675005872805151850683780087803202793229096211667465755019568206152850884850528463531719928956167103046702320269314649089166131444487169840205006555264158208743587834914686808419334122620469584504770694209414646798646246367746248765455998405466416523439037594730207143004437672597916133421094990293618348851395382836365051556241698759983445486687904630001060328596823083095499776350555550236696952133641975187404296629927222622916127282330804763712596955916786209167870642950708210600543211127300279009059715435957584262045966314963773540937912577129328830875455808005724354679454923120593607011652555636389209124410658794498358022825637930358148285884785622546557009047005928215929543301230659434771946385271106767946833246499901473425215341573695115249644789589492338130364023219539152266804427144114634236803078057073285407444214757492282913602116816059010259235071581695477704630673083134930174606427555882381809484257834576409554399369557324385058022497756209970595362491651900192915372796622342109902811395200181751229062941730549422641468008630903842974294229830589617896922531331256435312185267824576792384867823078261734587487208089572842540025200215990926803536894388655995216876745354086869561245160780185191209669279627426540057772873742817063968794901926192712911239430007543285669206980159733730994624596933073736870983827959408057339019771167168288825974138941724353139148984040752117281763492515969437335140010580610293323281095381079992556938845572289345806003306044500550602534069251710957870242764047892736417072144940276233409940873430088052161590839457351587498075660774446250873254953434649126865246813963366536391471723542721548312713139001512385487880997788490196803701773292437840440660610133695434943348111188947964596932746009207872560903127548351578331609780259558987397281528270074394330656669733632674013672668882824738976798772325173080888889325801832143648508929929113490337023659636950652483572880331519880700580853850495045229539932887065096707008271336308409010371286319064413069474606441014450279331701508497380942181619645829544068239647389894605034627172582614292950335995185058509343593681654684816010680010974862762124230683042762900413737216635774905129384757008079992856442992129791506514897336305129908182337923512462938779644131488837466722847663533985277262970393413822712643415221491835443219835830249567090504042528394817523377604535390837378636821508385091258672827715243762083738477536156475101394077260797979601861333520212534429608681512472979563045021309339912460412885434385611803454857199631814755733479045125326177599531583070552237200515957977497050027857972718469590514311387119659233772788431797659406772705530523600499235176482450785946457565757005338741897726364895119131766795378459160007586434003552591846662074248898256256278291346019426258547596383085145836156832741160316056915994717301625542258999058565979996051336163692633168503748609171307728189347284693585558315245073700945807672595515207096938939798739295306442026297772261969026567189212847751505110855421020718404161891079813208529437959049727271298360597961144453080382852589401212339620894082808892239258932946847744758009658637314953276615548968826210102197458350839981857968038971529264296545905445085437354769354193416924213931576790758561370662373845300545012939439026108091949117449547927341626264921977990971173561474263347507821902561745744112457624006807543899063660938207907280391305656291837625487581018821009708297897299501534378122076397431521585988674154555552506319458514172927500602611963042600154574027328641991433820704747301410889343902874980748753632916739235567495777947515257460974411288552319011330445678468115241124196638066050237742078451863533735538184959155907719805837868177365601442009124852980576344041435766062569740489216280287949150187474289792016552644008557370063051747806729994739463672953911605473756695120200777621472013570112879079887032078325223871320548931831407969548616649468705192045566415861703240037677878235051970572411743050803386615714550874759510592341675604569973004695954391752808661075379758732696763905700821324340789111023518999194340562840818529402587216936129851745544783909458237874761762077108934986722197285188562124576152646222042365089788408038389196473855923747161919903425140188716190200002375545728674108693271584249425083886562587744678357418237871664443534941092277025646982118181630875703151378768183520819373853926604467142201385718723574769216398705046140073639045365765742711048883994672983333509592616457255765255725592183999341767860972275936658857556288437212918947454477677104315001203085410376088218868003790857815968594927589573103584569778094666130708933203993347805912752301755802427492975460388556254058022259204851392645342627130385992341106465407404520632936394366518742578350876038566830511384499206958925397803112365935263760519232946191987453429910939357558250239635851918924376827050468086941698855051484501310000702510735306205406127503268099325217979516475871205722469983115141235188811641388285814166106477701295795350725043536734623193552907230288666743435017695761014295226090689836710667163598979770002986795139991230589808673411077927910169074338886111919984511799665946764257445236072401608991808783408680131230130231015997950180637808404107875535683110785097039150821016149773616693343644776029059349610785323586135919098222615954980110219415945709240180127650845886611778771774212310076586163156281689332471698818462645396295355648635298688714813559696425092232706204945392445049084706391157147373337462048493220507661506735783229401369535814288658574923527112383515794350188854607507230001124933867755561461636320983782201017536414980416045659531076192645544398522868466361403593676833033440359159169224366669343227566096733132505424440667955608967178945812964362277704895916072500268065717862785123044478497983099173093999247502724970633258517825088466901144099084783493664118222686985149259652939950449598365343025319467998880404015883430899995757916344369927965538030954096081253753459500890919242368767045157537570668906808732685388837925390154426435923809110652658189756491015484253277109818394597113759893157304499461406734160079778795524991016029511150271461732852622492188223992288910250006356742623776115274311533036134065195522125690070096279311602254353725949000973312735305552838126184242849113539592360040350607307880834866005397460885369087873129908990931410918056707286372480078661232272924599669135390175219527259666266810082618275476795335681999888581584760973892838638688851795355719205189472346998583367272627948874905805105255785308269581197404067359391564389576349550640853434643665550396167990876311502146385407808807205471629662465009670252231575826312015826857108476490649113812153357562530498108550303384157939791247084989526129573430008098330928263216241694452695186426846261193132684814162611362418271933346200177713798357450053466378529174938492017595899683896034048071645834104070709591852742632620310680437574954315095767727776649539586944019362234232105593798278574249930424684777962085477903225029320626779404007240068068535656888037954033365399127575319992812394908876194424860525239317912752797826246406149021137206206923100995553929611033366270132742524443279393994729136599394071922599574966932363046420577904129762338553062754951439842242158564059590056114994889224326062966415881527401526111120834482337914204011603163411540526277477745227040482878322561406219670478491666877865194791481924903900468236948286016393160058153874339174598177681682644112076993870620674090496812669810272905582194944782266308346838951710323290697737576080034449620059697796837549223796687921697322686634531327698285077599030148798657017329655977802213973923115421499149887406190360984212405825290424473753625333539843633868240631305394710722383736266542374110852000908205378101656973486757274023901007273330383863354089772568237942222220166316543996122994553511988298576760340918882566968286440908936830914536702039556757731169086777509259178038897883643194368235563894408819670063497838165192427777665102173201683260324331074850463321838121787448349404768621349631568541212447115680428530727325191286596815205745157307417277517298457890018760183029233883517735264146595518124019107532936345909262407212803103802131587127413726811295828079804458859330727097165435931379665108876188293246510215889827560249324244994948411128074396840084399073401849509782377006848912441797775521583056399076168236022412914332296911310861509268165745327088102580481217065125687141900085283435208962149909291908040691688968839104992124604729642495923212910203302731780388065356795119017890725641662501246224295831703109534129999226698336183854774756746566019951517136114886783211628502570977073936668262161087168554632575961397563828837004973948733708248654676835086856334656918853569325736210271023232913202461169216525348756027701086570091617391805223974512861070355944743786019199249344370925531608562371432008984820469631852321156155828073298727494666637580337227304733742101116445034053857636801375924967024488904523501327458779350574333538535520604278426779135873610300486722108494653198635152321240728535234206685374456264915439458333277007166731766825365701690868941524198315263480000721055906556971358472388847285316024844298055382877180391276760906509814353071743869310194607754714823747047476785586950184593153615457779161407113546509605543529133898841126627157643123609942268926883630210680134855432192931988699462625876574113578307033686502853427471182177881478041517023828108336035904911878409883929709324547339025392483869621330435495504432517918299004743949382486669569016424282757693842494654914223949944292707446243590091362334985437539678405152539482495847723587989752111561254934291762999382243510991388022604055362989197110166467419131850900805229177474283425320264594866009214037414392246529729327904362040775377951480301893434070236345624027668168431697328877100998044540591734891847325982065501207196009157516077196108293153052514153471339850436143300668540483811227657704667128975820683438198718868314106979426513014788997167728792179163931703820565094762441038239271680957269435264228517234300428223619008968465810431005941753361629878049857579075291423128633255582243193565108009905586882170637680879577898497817103134543268768769444913349225459677550427403256505406014846722411128085527857303384487074176744503123206254068952458279892206146776280032936628546132173177372025373377825793490716356248555528527417003833925516789163813072121901524942305711200962945050175236544746348126711401024219066563932558958007589753562793455287842643675627268877296248322383286596695048269224920596070533320715741913293094074745216555253105409922229543620759594020334967009048597833208488120479757647977470597600965967083605551773223652713980980452251409366402229565264986331844083575354699319060126947919706927963533076910733885744406134061870029301337820977815124272946036167166936513379893171219942014829577648873743436259038456855689381040619344517494034922938769186536735406435463159584496084064404294087054617743142178026046119501956151180463421559345268052640362491513814465709003688154708562746399957365485227212138689481972741080636969854189691139435572646980130538307576561762516191900986904457990037759840944535637333112396281487981685043118351166148107350351008376119931749352978040025854824413863103554656846866132472393867059608259173143522228717174485079412483262829526124051962556380447980265180673592011655541977856154921357935838620030377906661063323198524780876444890107453780762954458805566616131225007623736837445509005642806745550611865272735817546087864341195074879185234844479278914958654497282259625879227428765764962466308426009423869314003634570504385772915509206026902515223690269771328076005818436737446235759724391079463517569235103729987158677461542371588161921961516446476411117170320771311198223409523927360113245548044014536033459931740177436871688337497113347897233183025414598151162021535087732186532193050017916100372435849750897409937463886201753481715390369379442880113571315965532582599602401838130078695068403882227669166526881443067851561212587950762517824278709987871677027216307302514224556703442684685137170654016982703906945487496251289836216730463434795501132896326658201377769241862767443818617487939201991993912989071306712963188023527870738624818117037751926590340441872768120083928944018118248409807769192041651270810497024394783921925816050198957467829852460644863438232009474237935851708319104959904380867946611292279483883629435956170159419431973782511183367749272019804756780254155565380726850908233936202328748307684818380477803195876615696542947232545626817129684797454503900050445913578775358152510762106958754816361040397347576359254010044245976782224657075679615810421256568974589688103476566782818829687640986892038164171037286002702913309024134321882577919384350661653742081147843307301930321011547947119599399881702962438043153574305444176789082951961324619283796917553877690310174324035913115346380371788217774195839978550772815501265201265569937376458948063347526547746291193332109225753989198678737456734474034734508057741966077767247785034769457766003186079654449916848768227067956250571605199665715266239032517592949993142744841411652551755944581318565023016655320242601130061529461042704980519136297621079207444606518290055926761432228937315166300701529585520329235276768033006247267412041664253365757311316541665869162821843831963997674015204989535699894882042153200791476451717896898029226052806824230559728372246270049106551590290927077834572176668412805268121876628919800995947286144279897275339321177071054531655186210173726675509917271988149221678744658468421873906495862094404622494813208333390080267124499120626726275267804927260687961589395083607079527848854562284185447874750967835980884149152204814111558957562241495321952703148793546951161153144287728464086625583912829728307864852105541076504239764417512382432519391780462026810398906430172018467128847827279528024168683450178219548855398140093098331934701327496988780995052721216619926681704944997722093206201989960854197982889489104631072142474255351998487928617096320585414621038845905618509251563840814970246731335448937512230791951283996639709372378944370332389478919051660169170129692002497523074516624239234013778061342275324398178080152102054194090655496315890043083197613310948010762693607898369594080681827553325870878121815297316289626884585234298429541567622797695555370925494336461628178847309153512530655256000706105638178029607020146342422330614253832486622106944829705297311190408699710424365334824652762710189644817326539391691251915591307337966224039258397488769152284993357257188712997899677855651160567451941166875392710897581704025368527908007765408335400378867925825964251741648460991444578342425698797895127773293609080257434914341491821490954720389785273686392973341592311746559937695838551347758239926482959954299131722133292176811422091369091449226145051188253564450409644617326015109324607800509548891220253874890448412333725642183596861472370645182413881360101767107103287234032974343086395812718219181179823427218964066444003821531718748425438297816245426817644130142621812848169688738481901466382538821394833043384624802452098599694122129889081551088983192232567668030911117387855538019714282443777831650052306958307598166252231203981977489911349578051532509866007372426260641765848170662311151790057120980810614855023098096283902308604597108076138391701542202141077103896161824970769852333958049402445494684193231399223526647107160359364852103067398050033898613448551540951515755344485149921178038668216673053469195878070253272455758797687789370300891685503675957895110365961289982177441009307968338492249647993004382214911462359143763427347316891281102010622575977167695606684719804634808546481748395736265820495519578657433698111181419118844505652181975010160756887013734545641625698181428067139245944100803125823951179481775205411342470741334788729238392442189411902429231781404817333187428517101363560147852836855093020617490190507227110377927886115949245496326325052275276607689118244622689610135723739882827046741955786190657532374745898886804574697444004240129410937353299460757524761920549082294505915912192778619867492378653148200723964439993045312237097046815799232122607129234900483814758768224621433108995879177508047037293987300065464184311913743625252898849794500134144750345761259982662776632622632623637231248077617385059395120491746937622707841554414278134138662597153412303674571365452286450574382065173781458922725451433169596923008228891830134196906890749103175089141121645460305838862528412539945742942727931415459041148186394798008983700927924335310398562713739808998936260524282814839682738873628914344781089697916037148851854784160224021029272323586231163453746208914308418222551506820935497545756844981721238703499121648310877305587699167251443191230127526648421189212276912328615378422770628132943337036447037774604932797756973476426434850626680303991870292793425403752146877736057826003563349129746162965893656236706773396703552003831244856778805968186173600799794845943965797475452220269339910325985642671564651590864353236917986595007842822294419478527589616952207152562427532751963009893378061411899876259702880248454574740938279892252984797511889656856720301217077949891843574865637411623901143215552164850617148990045256827210979179108128356941360735854174969042493615784707683036058211210186886340204335005566966401392593792912446355130604054766226430525692856297732200696057690538080192308610595318264527067025500028912878159468537477924277459743471032343099182918476359228204811843139343288604678951090879458386146728165528815339486592684772896975266146111524431145351084750135476426721618795452510889460844920498571206571324329251009456048093332574639021137409509625105866389214232890311675433767071113716963821359394722384366153011136419835553839597255226266867399346872064202417912734069978853881457905960879833866371338030936860025067007332522503239967274712970688905524324608581865365553262848465786185499623379152212481986941330986079328757968823305656333468517665570820986542402577650393624616464232143859152058395558632458687673860371810904789551612264877109955016945209460197371837266801331457570350204030997502089748510391105835378734259387211432094164849956760892440338134410038428731358893629506450722117130169044802038492173525956346256078240222100112938869927156492863689810844197547745877378406626361310888819691571561441703793909626276738542649598685297999460849267932906050361223856882542931143712976450508370292309211015113364557220084401678233845664323966006987463069122784787044806945430775504539535347572582766543837088083250138186689017869499819570078960231046648822480764041683676914603538142364610551798123136243531933358188448290198196865191382507466201113574814057605240399053999005126334682824304102386992706746608339494416113400230212313803963711250848682954710416962219877760734605149303649899927024790463709459184864972234253300864383239060267702471737980867486883067000899567818133430397086864905631482945632184881725411666989850254883878526096692618908540442087975250218372963986269299959298985255243623065404128063193446557297435345286602864112157320151825211338217876520463275781356308763477678115353480739004277544163501309410564872464270637117349370207249829112653239254877141564982509683669098782523398061214510145312231142192470070776955382547326440333887139648478703725582441616756901497438478760549132870917820368142284477415439868680784923192500452807273925982015875178695574967798320330276713926113913791586299584434153863533252895575667381625323047023160606748386704691802042417709336178601045094061702156962671790487916346828188349583319770709470690793845414379882337468227331844949392862054946275906883760587113477925633848473166300400857122891619575449185401224647164820012600249374877781859819404937524939439090072677922798867304906594587122843275400509604838132472536025757888736831456403804750187292949427871191615456101507140537532356354195694979763272187952762360375431042491519951025639150585596556130893643717302360598623244911529289746862289734989593645568731020452846173010709208067480210873272568885295554417108375921565504287009197464988986615729444619222245115479685126158651852344072329633879356130200399013582429914170686408383696085329728500771433717713700349993028590841480745394144980196033177467624146868616527856522428694729951856464208005158708988988011944578939676743028809424249010868773321703236098746523260808043512556789585151231776165979950445238431035929946697250822447111993853242104595214294749428363967809551234452360079520964507421742277360719136809095106261511443253567226808682182552853386986922481293468497909521942811105932998404526909839023996305566842758334603818294566121436511392494496181183503941668317683359827594820874693094439202027721818722818949636574020233781905495985396410100816169788288496803698711670445677115346955305100721024895015948804429176646358458189331457030466947246066537971804402035939459913289177016490683864934094825106862722671748239205016328222927152031096817289550354954243963752336441639032836830312757061430075812439929717274410853758499716399313398125295214231278618419537523627207131909116704613301262828619949766930629789505355685930670693412969930340079453963082296916500097187196171936214654966790474414484456759059075531593736788480165856848952393078341345930812761686498614606112585725388110613119583640453021488899572075590680589958347843484770588647486959181745214965202585278215826636601861273555883481900372486840796484587599104639914685524758198598630218691964607170395447732849681356758573027675731416163292263238222816222772017656645775161244227903344644030105977918058907118822000422713243792413623365368708541574811731360391857429987697998071809991878161825211002755424959029851693660344437671413193858979246642599368682085792016215246640899307628594556664312530116226582186654001069439892287078151189207713328849229768382567940011585772002663685343545066885868013240601256993631825978975606467731779118046012295294282730765149594282860869041208544670950318423888965666450198472717816476031456345463260998580474607575068697929101293502025694392782974100506660041980071598286891789191019707813677324554102057579062198629391389231945124474576072833989363715996678556501485413830820306176776635523209779299573714666821517087596010629749671283684380154768417488348707276367497004591126769427216089829200016017665900277283636280361037818708697541035679931225332172885455156197583505923981853395632027765946928716264404948280111607222834580234223377626833295524838988552346977126385619990603713833605935592227029395058965287631351826125593894026753732453161887711660636673588702901090830436639707047856903603662185412277437027820511581438013142307069825448066245667249506581759947742072442004484004495012951468783447799239235595658982263418481465256517429743060418560802527064586509956876978356422826988041232867245858397780202198161269972424787495383336419143982346969540746900578825424165575493023087026875303751048185764521866858774889238586595204015862517117742715412007177832180620179189462153011799909594033438006405660329223279304377609784189535455397427558131194296064113789141198127099022063163193928242838396547559605703124255494385065868209019082636390780903863917020589832374603248697259813881280207898964353668721276813430102725015732602508857504412412650286959255841788965815060837422181857467573213083509662488867671091472522266316826152752648081182490052736185645751302971062234807066723216789371822794911109486551367461047170285084607404669636234733434904272237841760572933129864267382129379008926825339559844434969636490148847454996946364672986437472414265332259661545505586207018684535035329062293314012005992873808734104059013707242884890252306932733336995710166401366956269693851760038124721563856214605447538888195175058188424857755318680373615914341863511560619106400756741894115358681956403457710460228739110995304195978688476751473323518061307014987119630578116528195440963499097685357176886239977107055430530790765247928644440070455070073177576246922365441072342522125648010431183302386539954338967327414861058705834126380791377345350887008531300307547195416493185444194929322800618236054783513363544217600604359928839237238716641922864180342217599926180313794784503412122160421766720959973968311957078207279019115481239639036693038369036584335823257096204659126616870834521603290693014587925696205036307016339713000077420091083564502992290906576659635187163846575952845242175717203050066454459767401761303333078464826124785227373932478780807543729815659201788731328066342250259286769719991258703729826401271939773354139144715202727901620802206681328574592298484888976265441529130585973192741974172102204238871920375391705443486352074653179695933783208038811193386441341470002005140733447608951503179791413676277099616653799920421711153688692307093936042662716892809872050486345224557619915072327975464600855680917551188447284109160514148161050273203409880799316979423732546199767104083546306875254908569730092539785762148776707705757270782000530626980719585546117476267693568814234645667352018863802522218588575148757100394241656523140498834809037241668168528173637448664012915719263589544087174275767756641249404519077753271694884315061047514720558004635758193708601255173086172825478390672517465403571551990310038667026459201555464422675994435138014875322034791020554686422672381087312299023988323991696079206535892130535011244013066379146040388039765161891826747612737172523283311775235028326654427631318415592590329426870457382529954072057463107915691836379367092786221028627612841858847511540966038813525287257573736829812437392818451228089653520962671062684047753267308500179544013528585378381830007447512098109460621387116118822362958285288735848362996282116951240964859190734954411986618018198405130018670282831261415633336447822371708853417991973931056910554030074913916136007023127985047246428623780218815748229781052600348855541710810681128102436191427325645744752754899510384752759147458483098769199374972339033543308966333889919434037158753376979477811682199727450176105392112166034217795855918505281891151459277404945668500469989483455947121938110427448472743404153694795362299931919389618676685010864139376043111640407128403829542729190443793170708179418971022394933079660345344420239249410942094449209575380051709188339714474011398252709078560429542501175850348155875170242413781454470219241608192287882850125581635078241662298921400834784471210826151143173083280564662221204966218450591168760088141568821279525944786496718703112982147018465381226503235910085714444570896768639106871530348608562271909003666484146385196749818796524606622945057988142832951786553208049717053052345529926650649242424688935286728928965557116858224333580446939884009068760535107218643723969376260927051492628739371714370091945631536002595317470147696977231001227460205185630152884902344926924467938282445867517652056452766880457272835508790223270917493141483184767168915681651414779683687661940034648563650093207256121936238055289398674228915678563896350350001954067093037284827783412887551149876180905320404314009051859478616316396902420079225064878472088207284954851339622418237969752136808959502968615192665194356950255527909551941940189757941919579357614631261287092293979434903076612471390812356167121162488041380315092852679092934881329414430081718915792780220516403057294605805264295628658340734044437724839351812437778087224283597164692466268448167021831353232184005812903357493505999511179849923638954418324410366200930532588937484029299097854927222183655286156488016214871735981109936189115279107948529189392218400703861040665760590716701388414811238485937739360009537374910711013953614865556582439277563707213140611809941003685858938836328439718970328241939612805129809652126921943335102338617469347202720197223171225305632838174339233006701790757058739201557885844296002273526677594558472181621480039889960540027368827518187425457562278688518403021876226696958535620033401314953540718707078346511267456826756878634908999854710603710906924463179646464326993273970116458952265960880612356447492559119223431500012253883229389207899296229681789608884484250018118940455374915055205057100617975974052241476454714526892364301796190271164935766323459881557713123016582582729167107360916969351432224674669836934171073591474559975640728956847484332203519709969239042290140314479819234673535743819388497056088425163742698055165739239708250067956512339253598416138648490925143141984230610105860709443193370464379673217453480989227037806427657188919423474434643728304656270450263392355107548337355677884360085541778112857683220344224472890833887009092625155991420563667794374355047227224917927834010466295562913151519966165369819216728830326458831816087280724230430827064893823493022174366534530147583221560214644316795256379198676372804349695430715524064292137439771433491856201012805791038946066120190928210354080216941286470057118100719478500300615186125541275437230477172201161358300532895463443195378422471006406103347969966776081994847170881630958659045378324380787116483665292786816774809005747376092889424504922210215210444912551996056379986540482879406387320525994372227042912137652025361461938682830893987756725678388752254911266742365495494797550305457032421798412337630834385216226928478341849409071475251941264911561083688647399559981823149201689722044783823403484323257430341482486717126228428140767332844254539974219998258857231899816307454886282811118395095036397608063182766023206449422302529828568197081318463570839086746023814163588013058045970870464091705182053570038305994489379602782764916197020921119216901214397990318587318511973671392763344594204690400915630400406766266408085001115332194299278740915771764098445328455643137533781062153837571378355141531837478868874800132893898021793899363659389876708758504650947949347069367956164583385437358611701302118513416925281208506774909405381168496802704072924351419494047277113294692347433135441741151261870379160556810708140288808978484154005057549670100164234386742747060260805880497989959635394575533309790836823113507438090971805465110414634428337838632011333084597894404506418076715375678243509565641718541071550818888557337905687776830903963732551962751176656325909108284608745471313513569698893435834593321508568616557525904437898215112093681619741693762392256527499373085918669000252031524603123755045805872961100043319772627771722372661853659804066562113909433231389617668511856185882903490154887448781852794530074672009910295197933155349068155612540694270281847865479965859580640560802446926211401201306947710201726148261076126437830920341660536060408926359398381618748274999825094988570724327388873142722398960880316471335068896170030611577408920881649774358556857364041250554407354156671687851222398719856511236496849479132559562080450386538110568590683960513022205191496675786183926901901142928402971694713636556564348247336562008503205572294436473334211638174920416519336341433522643519625244219824053790819092116118317152440080753260390280325511102954487011065253384352419764256043288442645994520319553261897159447322729338710470866651025261533310490043797445785090674718081082469573798314892894895290408095729767423270217017784224222515557081163826779258205130212238132372343737706804639227872631358349248194395079557657829882415205206236284466450401816001792351658343402679838148685708502349427967290481856303871622110650359723146196310779539414765348075943666645452561050719238337876624390418321912326556661527254045009835563768753475888521876923827615636109596271494079150018708930043014713451786546740993005192467187474104122719809961874532255573428944672207305792907668573098059291894152525928036437252289870559421404457574848220843650445461261651440531824458858158330276068565077271289094987814584168336744646790321848436957526475468375622970890759344888415735203492519590394741513010088266934548943233284171146655580274338827504446555873878179240717976601093260338458183158816212512397900950617580861013077162095036040226336932968776661890379809985628215533189782090705416020536677366519284972350784981783975086815138135092981198015346831238648272973647600381458419985245332156227132662156835180914789794833371514652313626589713489042254788897991016440133630646690593838455640468290271925456553195231582923252506983246444163411574818863134616224021122729245195768195668285479060326171676019547442430045153179541969250446597330464188886362515319113931750118754609059690656492896419717962258813548588863820984385151539327746890442416154897161672411008846057070978373766816146648648937676973961665063239560452113216851894432725796828881180973786472663906716318622143617747980319110667573485328682864171805317351816887268906826655600812313374689432472023727077114227222732582334233262678318496485052347604136479300813197391542318370406391595484624681862982408767308909092258676709361147839062684763713479580647496870600298211564460144863425752625327759923307731928063444837177914026979206802826937715700339999788259129620917468026687847101515649427324394999010979658706983398496493970025385122983651718934304828325338703547487385068123518342255011670014151050283118557787110543338915366222367184618912528957725264752652872278484337241009080206284669472605798944122676796154096531226341862183096900212011474353814879178215345755346602872369841123905961191191882581197042193337857731674851112046853241802323591779001500907744915935976793569823057698659690548337924705635512389425276974456608091824973879975479943542031242558624829063935121629665624756736701174540944919525334063608841046768766996229222759592876271669396785250890694193873469383530399246645424978753769990137733045200792980161852193402676616502230472376120307462631557567111682754321643950629721995492042042111156911538656087669850329700954996178737276762070108081933318621402592444353601749613895629674700633435624521505337471863136396096918121793152315419370008526677287411851048673693610425550519437950047580829976003136657558874826332007035726164420611059509730666479376638607927548321728412008682804347968644946233756624823924992352159736350805240468234376713300222623359997363840847342067391519007151603794716343238577504768399351402198757469695881441534437985949324841795644075596615420205382912933514569719014760952386269941496601819148476971959939965375722458212911076961716271044289865307551791719290434353298990949811866073346161744949561758640288441474761924329633842157622459213967652307730865795772771283051350547874413503496240612432765796744413642896421908096126617824298693509253570991927677619797796831575601620134671569020964100559284935120619737891338649087133234511895584293921432920808695186125518334067100922193218167147862011646927495426255314614478766394417292056086718199176041305255360027895781852632910097926440918956513312913501615988283810003838767493234821309441752923164973515952045672272560155412519687465746560729884150352075245443405753051092198592548053732997037294517232022350785030616582621663634917258848327526536216980818994065022848783180396244348785599160558043042568115480455426458708660867781888174169453355495739739293097161897061739440118857424785079566918973351502205694625568901385671532567720004808075121604201600538979733733020223626032616904617698234794326640858709556219953443746777410039770681783520319371137024445966381082416191556609086368563082254774925412932903076112023517499959254073923289411371509838275185893676606416588395556337524192403311165728383961250532996209994979530276617618083368119708368937357376450627269447955478580540154007158008140404990583229319682636700620145198657596390048922221755504025572969583031427413842321072508056761633896994377641762185640124049660381116229800805317381815141410839431079925968974020057949671320298215398025018278799124508961876584702150178282344010173836444490660031878521193827739812436878974099761139110427313155799135987925730809884426600720513682930161682824004594322109818624784301476861044506728711124463781989678249978822125053496481136554429261742552393791692440372457396801154475048962920754747910861298557504531505334199236645532808308257806827028364037941666847441971781467866114188150503876438632116049565568591269275376053445236608404555807518653457499847365626168980330430332805394479701974491110864238519570201962124272329822052580582707129432790112076753271315047930960688519855654266116136955392757423402846706285257817760091022147392118649157797842742199876261812444631887792856715703163285651216046684633439075037445822863570489217286653689558975508774029494889285605044344628672681575269990810266909419315302751796241287004160925415499973884708301294688306982026120689655803156135465541567159362243758441705519442688852290646674844367098279202746982159701810952424717302954664817744360188812901193365597755551277799912136292518660646499144144657890205444485860082286477211507987515487419468301259310708136330485269634110722446320797922031501014491387503754271398575220080675114174236992245310531267365644618760546831980879952299745053143355374110839903808922103273998037914278594503138749783099297869258085139786349925586227505388755860758630445540454943361011500913056948653420988415269271064494011253412793839281391550117476838821387647125275000701445038842926817035697709663551232556317144500757527020490747919645339515026647870254991820122010151111609509296480819593745081926267249459134610839791027161362022528480081342303640900394904132461966628091091931584956463905560388130652955811601330772042654429685091043528301837773157553831917333018631530552171877975935101806601710372074404364883047163958330227918349691452651700334116236369266547706287269728201701486439110162854241713204907001665980978026521859965946451540363033866734813188541328231817196974048888930827794512782930328216293636056226875225011298035976005487744984963329596391235469810336820702696582389855587114367711444817544727601478599438524836189989241203151763679355757127408955535640716865061978875218893465597950394891185419003381252927859078095108158651235206685380321604212246534202940529224800957674628747534123649502154147465184140830126094368538645636999654828684996900227323789795899978836650163796783923660118504461901325017357874203517353182120486039952949349719580034967304120723516573288421753070618794271151224907952247908452345992957331755986418240239568572842966816341246945608288661069795031868334404750895262205317244391325328779305488486260714494132407906902029273750400798337571935853526763479489521626794748902039807661514901907072121039434061947338439013096839627348807441827547586173559378962029490198363392223774540030046250689253806097237138599672780761683683721444796008298217916278476910790252470071352186750287263818469373165855408337430987950059026560422291407681720420648286104425523097787340827008933812686390795758955531221777899899142567645254248960041449354962735368618729494598417490920545207034207882184821113468309943238643521279548855483367068053710898873624920629904932528917186015174525579476549932614155358783085184661516462526225194361404573643692931138426535002470751325929515025264349445195933134268062078688900951241659553011661066830009840218498878069007244550689636670163764979761301624993496666726447176915487773111467541886678825922961498665591347955964901804553079365492356333993290078283420957716951302629322411676819953213168741146528714923944654236796387147435963079168201325834253988656923206381060474202275656951983526115258546224021346914520821567506004612576946173844514958852012984088408817326395139286481256515807996787317722202928390388606100910434907210523311018142920053319716959613256675159429061499896725797659127298026858365510168858620146280101269098181641963207850709980940975447080633234801279518849479924220127271848137038328946057344805772765032940227961317596947339406911750556953854122186820996342918671279304925447494962487798527183363369633190057912596811863834262768811113229353729778048325775000952503957904332775758720705486030546878097916379029493113925811378344255974275435403260285690711536176318507577553147278135778441994857626168236379714790415845380647891537704563113428159299945840452409424092047501295581285768471978824826942790639483812283695139674971471179369035119846044601359862960816869554798585041103290687345529395626854231780279990997607782288424616010860439286701095939167256616858840550434735061721841919555667010048506218612784610565218844730545179565363684073296245271643755328728372262953732153634909220624440450251061721925402028645659771001649173316167188463290661366741178270602667601762003730151703904386875464662417359946647816568735031121198139060340688090990058354034405245044344855248232400081716009809398704317223706122124137754428315868197751503548683588141797743446169191433039142968827079816481052063362857705619553108462241599144442148994079959709338838066115134725428410791870886066334559870705529744551652906289603209994192350157230699620425224228753222121293862484741685733203867867486313895711120746176577111517711760405493285114388497058950523653588132156287638173173924813381631559761578417864659443036688369747166957855199124417333283176283267016216098378405002230507021835990128760979444238427661612635233117424551698019884901197286813053527715256000832811026490812010717550287008795939878216309631620765769350678904061019401978647184964598215964085743123127311145372860027987597450335727688299952840645501919677185463369963588846228987327140366425780809219337565185178404778646717750838925454716385833450237070195452875601954291051940371703618938852749948300582956069067650013248070332366956981442615543257576384139706525859321024437871761622343595799284077597824547138722280558239028543010219385656461009790884942422715577160135658332383847831022785643431334849665473146575999809189943473796787974592673615901800346130165906127399316115853950917308582234919071092272184505007778016524968953798582493611148115313358489340035642031394731760501412213070531156783727200651352378070847205660255179521634924642161769192382050108780673837205872815373451951180163482656729496142191645223662035995044891544997310330387916948556874605632041925440531830457978093587950877826186851065284116124946710048591159667764671650201750664670380488774490246701467022775985632830143490017792202708320058272072234425047537566260288357783130457554081280479992426473797136549377851867728712042622276960296628420892025882846896218232806523243910477071382619589771087108573340787958096894694749167924374327779537439150567113493689403424436904121606136626405829272160310111752428273800529851804667588090539120099822815128896673906372525012604877778365692195848773104745285889385009715405641095934558658234672618880471094142958798390579128326623510206280237618252216071270551924565825464539986911911828833237425761482693442334538173543907338505827903766916545270579496373052515396559872641298460057263919097416659172190504571153328243021157195842240445249912196152168628350067197283794644295916929890021987160185111359231950661363736765841672106689640386083955750225465594996866460376486289399558040731391513449449386630367464146079669953569108554838150677660820240520234677917358428796142008684267451410637688845979544075924755761380261208963076141928180734057785690709909694555093306721283248062254844544879328758919667496411965827513042379428812052844858927179534942577261394390433017877367377900000400564828494947536320749585025262990570564655701403168176899106937185163011323839652005262231449286351952529592647757900725833680276882129057515934625436993455190619658495541680066527162269992085050647686991728556987101183285369421061818756311775104290978248802246326532023952600740353551904001172604276883048916673807086811760844716693036862814317402853087840262861542845862243188474289657933513029423916208208939816790516573710979382197713199729839421546692261454686351266683293875938779605043322375249798751369841022405071967166459944043137158213138174186991225222848970856789654970342268246703877754703353802256217254174482468120823791006173663144763886831411104466236967865024152145307350659781860409252191528956213690093717145754840727017032181079209178941486541291974333288342755144072310473988703353023692900612244746935963607191435448692887464048811458285036570388770036043949990823150422189667588618738797969994786833849860220276991331710406014614501861803006295381853843796844178879593296000086983389961728387561704186316707812111246705725986754854171590620318766218564512764177476252718239393226005976022588628905385624486576692397946977751646671746980697932716822964250007832227539277085994161685595000053476838608306431359080850266621924631837681563696759947517592759493168797068413302553688429451074361086286771088251288369694471877902169426398558726857735579195757923886486264575873243247120875524975285586917485565070124765474003363532650574878022404243408956358302869587359911736907516153866095645321038648921910195130465111734573070536113034278827991032156456757921217868976575205048295048534925402924458783924467128824412446489931332155914893725062368239146657711248748727888830133169009877662704381018927287590572972029236574297099801377077509714712505477251540290066388510367145621152129202591068384733720712742205195961376977518079191927564329922276167268172157405370157057662858992743524033969511811530869045365544040740085441219414996018935994325142863791533902008766450267083348385982282197205290658332633721380260561346431380466572256591252909952228950508296526995732301545205241912941914765937044812525263694941314011039881787472051743088877526936677074925661289626959478033257121655770392849183597905406450723974340838140327545363426175019497570075765273858353068294943771015360140319712612037790259065798634088089170339505311316238347580669710996623973526844724834354013379657694713806776821486531205809426574002041421863148969418727316968586234787169882784332992065572504415516264300743002428076896137774084962457671220970128199616134571892833112742078588481138943552740781028980892929464173737474347832041649645863358789099060547430894955388875189419243363769126799736294393481717189703443627688283466996001098882096070415377389485610370748388412681101372243823037052133410601136562021558750061586870689492791951984998540344537958608388973328160187055222956834781005255846897533328117125135441191193590717841403487636003552334117998649558718381258912292416989643808319049597868165100778585895643381051657445334714202551638675195319226859382413853951632060453859291446475110526224129528767617015987110376221399472171633955732195840899928822504172531188548277248013124288180053445936625731083755572240820590174251764884524253772073974169821120445044563097241046355651515528855773787108334881477072255593334919562607843030563596860790109549190654949927309927831956709645408238974402983381484372702244013196169840928715106894184249318292234802804828676935880064723764280966556789953963019187188308215620901534117377717158336243267372269858411650190251797248654538777277332575408555317897583693534201200242494417355791744675834817930628915999891293173625206416547287465959823053544700912655219387917508029035091962154283004063904004075068311148986687640408653011985155186148095144720405635379848007664258490257609740607869641890501910615789644468517987839697101927113181728080194987295587809492883438008105667673092195453463571081320587251722248120286037278342358865369390135964519343561827540482223348935122517649525911884310039158445556137028578736597083155175673510011433548007626551240079370621181929785327190346672270724666385547611822609318117465707008714987416124626334058455930668077599784537030035263317068963111112170139920403312504668545142763537649721071872756329465045558505718320835259289334677070356577990911044296088178290610391714710031055583542405472464832349562985145405622480734999502879714742006242899576302816987968089431145302380353393860898242516086236020592418131871902389960038728649845688632566623228699974723127153043888150404371479535558315906928029811758589312437426593827034538387382245197943750531194943605758480859141435981058653679506002147679945285696887299389588065059026964654896759938143688014150740082909562624833868012143944492571657183216735762621124753578440932045893407496410963147663204881008664320782982257575414605714553147748542421847986974244254398665699180915473772356110551937052958166974665946501964523314179430853070445071824947511536785173916853408955296783220658604212518017032184013613767961032797001731695423883723615164274160059960795328028255636003269248521366502226550461472848053380557842277400655268290259233675522310673108663183437489982180238645604114232659026133336181102868201118402230553518160718397185509103628083042280375771621559101170786112008627033519055124783821531020293197388065614770753384096672507699415551914549461221072671797006753973547390769719477294276198595176783597147954091967126770699388042529074509056083807921594415203963796254851080353756024679088078028445527179568836736497772418838946369327399285168579865105544805739383361657977686613273276549771388080977451863590344735730931456607443378205845030907028308123216121509086550054328653466503273792400851017747345243288627080141561770585012598384697075276810552784638777762748655481905855611121475900543885565580001727106833288323411247320731052708425715333923777121275517716210439462564680990746488259002814735172164789367367844483654433457627851425091778295957419331910042421205322242108327944455630045074590754216011083161807197299900169388158253362544543367475839611283274815401983444078413689763536962870273990437182927237771002962646956432337383635565541675248989065247757562601224823183709113598165300000472982396926805145824525812985201581458625217752845283538205537201874556541201238162806507300517303050411887173600977178965515846245157997313560060600655511911553827154010307244704753441771256423311081339023647686648336755856129116776115520392302734366023695117637262178193631093162507351843079540379639310970517263780307606779392617040811307379901361120313161996576636977635045154651491583963082802741525078899855579252784212184767114388186133221852246344856932381468561137462592192923622587783288213158020190317920133893168617077267780179112015049168176358583415692000043524463498777473064455321073001014611341072456764777641389900848850046655577428387998286834954098630157900073796902274658156862006515655320369401882009393108654704084361284635901970026724913207957771002640897858057039136261453416874422299651148077673257672085807782958765363487166966266614306095912822575202983281362472043268933927653011552674860443708707262737792530740029534350592411006144087739594891147327088205788631218658121407434528213320537776904131459526520099262575354852260444691441393961933834209169503382420347660380373575700329554378070841909308265556304457017591938235604288790426030946472253068221587568173514750065843641512910203218884787945322654954556076305011573435808766166838498101666209998460381284913777886915912475678014753342497419885406765968734859765458192840672824514127784742706278640380951873970169761671861634841317710033621167616360601281987797918640302129166449036786830325345347606017271070638589397654449809110947574983169715862349113599869083281206016308950717311848302095234010811298544630049557901195058881265409582777827247023574069283901213207709740871771978899324183854469647064648692545796160254647257755011945302397544019103364683444870113756696697735368600028579236158299563223918126997571045225285124115961625258294367627405852845315037950652854077384446368742117437190304631563875983243265295124026478042878625855262771718644195734638032991259307616666389363976763124328837581321009058369200998276983528974100150681270425601960255264315180179214403938034560136586009502367398359357558941157100052254551400687094371954571598545202964922461853842751693635365595091295900068839793901668020707496520333673193951287071428074190242560024568134545419820454155349256288539571612372941619582157097670772694282323805992245555948301991959898457446815706564407684000343897310380836376999049702854424322444938995432175273713663028854197905955151338000086541895847702905192777068706760033885720330161064519614340329276125490626976403302346163834380768509405992862004744442445466600542460672030184969378858157749856199041236060710520003428572861126927345716942118505192249480106895731299992943665251723937643572268612056370829662568580130780243226598863621754651878962659782500963411808744900846102964876652096676089577194018758993716587714591853529372822809887310707593524203598465307659218287424775105158948837177105351454628341260240770558491200604492611959825523165229957591582579615020378496514761849957110167486258366298307723759507225529068066414526467464133256705437842794827405568606701615772313771715735405967316663757993016699671435795608978061259977706195583234220437223286635896655199682579473571413595659877293877160749406925237918401051226287318986898442756507883799800857838452830963087743304718145188419005865169414542252672756980344710086598221499730269344695588799040212430664973729460500253966668754095686540243164808116605741207019104482242333974003613369273428643358430738584149456196179357330050114786486586667270705013346273733082851262960834908615153005149103047977490049017323679519138883241938849944113038671003648841031139496832647710826100291467492908864191891496272789091141619223773618742761522849292024830820513588882393763544585446268859239726205494971134939636715531228161053827867287338935281303857317364487473722941451372175676641607437975802812927639483988345681288275709766751155163863663081956699922841672051129299327310193471219249380174740679729332990569012993891161859647888095496146034860216371910055800941416140785500044509620104240413254742164660393471543861464086804663622487054003630820317734559618535214027314102789565156721896111622403275611348949227977124416096094757989520761911065252454250846677327499445638830413739681418979451100649398277534897024695852994620693422946767848565975230460464670418220884495503426574393491487110458686104346526984157641476356747426441563514925989896373417068708941978363779898642047574503615849961179002626837138903460185369089101759661117740968866301035004003651383272825109923655294279791409498328022196653617686843674680160458414386241385582537933764818613648308695940803160958536164695079635797704226940274126082474555306258813729099136160533977576052218504271498317286953145881870829154340540349699739010605089468715161409127746910420519580688924297841360602210655857484599816388384239719540676881338473969844007053050116535613099046634158524689744461718144964057276488654883621012938519760150373202062509008131658155402920616386668497083359167468862240533844911758808067856909944107160499159974723461248167162794018971246070974966698203912141028823262565243390504441335914797631501067756888477394391676715639966290959328440191990044552962169361154856537788144888884063874581510624197399776579558708172935285075186057339563609651187351403877480668246740580427401573685016104230263417464408050550514651974590404438748363490771407173725711747275938054971473133141875788316415770994094322655892316453405092341757000798112958590961620305629174399063810890992522086864373831591904448096530297454257593605333006751208348651175249565185515292155707864029121016214074138510131550443318662833353647856706454757031895290504763717893946997135537578319057781366899185922719420109647884536201456504498184726408829902124427410733331863440130039991951346903024037223228626893087979285593610046914333294676078117240696930386424094197701507881973747080457075893435043312839204407485085587223989046246163694006742698468710671488689894548397265411594798546289955226394784464450782118452119702322238518359905141195427754512916033893913796267755491876945164139656096963865446840019832160871078070441977434146166692077132386633232496970085184268415497083063064721686226760046297546001160007966334698085317836115832475896599902426421318708625274761677967925419336422428506048727877907231141373431173881651684859514719661417474052192063969599811555511469286738409651608335395890926536212951098655300333475247020371684322508120222042991933733223211983301599436415182682319473053922146357848425347637795923449070513335002395704046017988519931152168665342028561017343498493340204707090330002080047360489426519014087130956141037088493630752410548516370836205543612920675018498423758717206159203702005010526814330494945451311245650115952981570735028626412432388772600295967665996252129859881492759527312111099201778133691808251531727980200738153189190367666952527179219189244542391725002098409317847707477309117092007227124886054554584699647444127646326006209110900787278466805836957570733063969690476578235459522252192815576815837728244939878046979932332805537952658335025120917194832100826720926304026059909777781904031050043915247871570570613379212291515536522059675753105789420530657058783463724413455609132102005222170225805037448649939017572855211305458103031526129020762872162365652794268621575568461425748275223094388097301996108079552651452286829073982192699764359981150347650164577010649197635403376391402515929591294556905268146605060068410508241982466639968172360602293553897620005913102561243015278901568656902287916941069111958123664886339852225703879525840146337381573026241645601144477457912540493577744443307898971144149449534411670421246054946225394540243836450776082886561684856780349206282849446859552632560239205739296155654960047817177724982239863345254180213255265974088508752412897847980768787905838969976741687567163325850140026331381266540007445910682360049159934776183361579466127980072526112472387614727429936169310406726645802535518381189220928234867596801494676157507592662211268006042773658591283899357001709458054849288195734742126869746269113813732190120128510182564310600235151131849319154274312259849020069265139721606141684518208338419445880191420599819134567981984326502679356588629656500095856339260111278128704911232231274113535017466459444368136528616909845632182741344258093199694564468651008842239065079104273130858291380440724451531962288569024374863103462472301785795606577849526470970330592172390264946590637430187455723144083021856798625734267671337501074507323372786107723552864216373092074773124602360967040700522427068050476660444620629708748317893237515902516562534747013414850143360927911237937879922239206672098653738253047363959689476522118823769286045671694127262888550250442219897920501974553741695257572183120590969026808308834051248756321672406601630415653109809736198593592397774157668641746096885538248738712639421931146874705256678860615551913080158650181596716770805769350270660856096356643792786413400639502033195783863597568547532106574318767379847960330309616003472906806969331499875703405731997090269706051530290823025502393998553035079269475247691004525840146585624372250488658359878179615398941947771163025458822883855857064399495177336579686430910367920131989457653858083807063415241079731722288111688479443207857114034814879861968806163544760742864264695744900871988355632198249563708663270007442366850309387205419267077769783044549162806802986607891321832270085391343035463787945143501336604587061560752366482814002853553281238171293067228054500040506870515759421353720448585170399796954778539012845082007342126483837895320838390119396981385654789632398334737986001383162156547358585692195472169629230433439740362314701808289920058335919315581983580923558285063695104338500269413864500327371085374360460329885008339380775960579941550348444310437246745679449447877028811667614838080607057150491866333370078381906103077518080013814012400574065996293139355090637769971132835147697817749724095098814907904412941757000670414961003661940633930364622400012150298226820944197832582797118999110711279747572043480111814545317524504621300468469506567682982247618201711595430879618950840148602338382451213838247480795586294476917427660163069052058763072748514595809454554003437115662693257347253673929749947717046510673356910887684599058795216000271411840141585996721149668566237699608082765634035314487349439102491118890838847452569261031119194344983341268561360545615284988932928942681799316548479787782107482852339292482100481554251485988538687824949022936274370748683402976182811844323470593716599076617624998238764611086619415903144690106516582782172547323544477975658389250352240270764994383691854391229799939560040755844284997147432638261675489588163095123579427759740307262252566308787830552903530591739102551570160967448176627963548781895332088382581941890185576360242846215381371207213937531381001027702061301970845007603493842482130989706817710166509051862578761829469012553843935474636461124479887865133178874846340597662852599341381582196533235141721981423045480342061381680314635037966791353489715956156770034642773544798228577335863166950430741800933132219039106023295702661218300999510450707597745112288777864872161247896762603660985647185844191490130198126107422014958690225222903032473686266029737821415731750978993925774114666492089390107490284951032974110255014187900933823598873663394922799787527450897052565762526061090703575924869626896297986859514052081053275740878004238105378092186073209804922124830925340004312014596836733336718586585975581738863536686849106723947955260537990492204137258491762097404136367680647759512012421264371602082380079871084852964600718660492082558148529536842673341807156236143076612030165294680596958362137184542429938027489400093218282710110906613795619353068981750473216933654272861057615404743628614379166167233789908751770434397195934701915452418823845974919890283604297753043982846308232759657803256706291860005084948005906516611295910415124748894157698799736698212597068634978108194337309965703962330827457109795926530122154387260088839357919620459003808540561506531546945889296141055067381150268984728300803927810081640596852847763189541345421960166454151251063100963602600672540697367539477132706179317452075008060638572674859573491750099901863214993366652693546274965646536571221471608846726871784286084707354834442494781365613455917689389403498821641206273635235463144049655348623092844354007194075364542985639712518433953601468933417443734816386111758788622293435378493200874663214011794384486947998150614290023163611680281491549163944453300886428728096647424621299987610987622120314333241571655336258985230759539879664023046810210228187813868505768224243833394986901364935432855687362711832305879448286902160123041752094674574440188195971044115071437321973572800122781055134493727742096775127403489390685996718627805528096860208885417163105839790896338994730567585723415326723756192985838989943495980975759489112959875845578070316506611534359768790487827746710484012627926602356142437157756122025442912219213206893983970573756448413312114577074357292041689551845572156499203160932116931053772239543387950395494903452037048122349309985979732828377769194171154448631127440275359429241624302213851568945348360847289307182330502051663940954596780149714559866811498052581561559137158971527419644751763631120442762312398759883423089310328447340446648108755612707536601286804952303933449180447630947100063406437089898093493846075621562951729765683923517178043466140207530937200366641224818099457825865612456795259270169961783868769970315690795880122961720738499327549819963050032175893912887345732126859858068266351770805707309636781383180816680051738238322018266789797768884686469632460888839115670710339794344018405289722583319541503933209765127833122840089861678255289448003921202887145916451913378879407950665459834751539444411961241804977340077322049993411089199656104097724119416050758923623786713481213310007947223747644027394691397925699108356227197361521170679556340246983052468089748836070362586639514171748542720194727491528151921274715787849963086449016873402708611292679150132116488995550198250142368023962423512289435326794955776820837049054288710237681836696845834528911869591344212000712059142630666176790359645345203692065609169184613074376214092333355205849195827558645447785274503938329656806268164682649109793513188536371195343437912796788410045208800747190882003337581306102899902698864569137252128063588299108343755287991923107296937837587584086108372590143732222595013270343098656931755833513401804828921499165588914223221646645024379050439900110103672648313917301226204414013152775112831514001423045001566858328451238996393779848399067668996880019019375376706496121218160703278465035902044538395370057059227354953741447285017253427099372743964374166132623486409830325372275801248797003575722402073628818004652663537690438586489318118797113918795563589650671772477729275088283255807675567932498410780194747152511655249561019448477725399598880539499583229425961728956135344714215768178180070067361907513787522245002928191412250478950134756897742808689998513594033755063604347207575507197488732045436460323052456066264371425829750404455024229097221757713878423896800529963282275404745908512269300237208254680522781032994648470988850582876926856620430768309861912355224006584838942323773702014255468054876840310637406179995969723926373049482713660870794154336194868672705809458463944060321655035384708811487577338317094258301178786004263614444263837494691387021754944109823276394378591335305055348847120922978977741660193462638348153065128872612694805207408497734558907266414586589744370407050756272225504178859888846603254878772236608146487291887251790772125575065747318759972210934650765559700492123673644943750574620935499395221860976784674168631589876714861157371134748701323678073969719465019083323197615092662889043143973234676844335297344075573760882534370745328823877778720005003556526517881271154069091583089953553701628450515559778275782975422301379909688674355432585258151488123925384631938890841466473617466602624691613976667054364910022991195536853055622354829474126224817619430097595031029309187142267412757468827826784727786176959396074493472596594600554232822191156044294100333482135202478687308421549077516857818089532345612614277752657761808962340145984084111595984533279217851842695314931405291694861306075610551069768374025038817825738120762883591232772979390302415979429321316604703634220824600518036440452715488017173728311913138079284922647609145873912220500432700974091144388203668119643114487058128084494184702914908415904165742858520579838131137020306173615590087109810174274225335777623725284540680053602834217856833022804466502763078088012760054402469806285357515918864563165778524299693250350411676685708934662036533182745375239735309791920737558471235258646011623491441595447698861463405092222734034949921434395023102278530273272701910396539096322629884610072627166635016344155766515417175203036990414086978293436739172018460156234670872409455658027590194008018726569967530876471032912261010226948681022955784993861433979128345937135724470456958533327263473751877725643850858574116999195290317415033684619507206364812085717185548960288351208804117636265159695478223683521953329506126116711420718402992000019489066800437030289755552933906728236633883285715157619644679566549410159973649302049102519386947627628914186196248240903989342186862285539987070433063512554530374403804669607756914382922550156019398513311109649170548530667839073902940472499459701262593801434519737420993237020102322377696244348057294219031514154133623513258220506676893991967779219123607020163766916539397052719892493993177389091560936757343773247675012672278890387136235691888047639725511521137068289160521533420148287946092315439437301791531840726221641623496241861944498462713964581471818626596493280014327619381518255754749741545779077440559003337476343111229854441436009438034299829053274193276243571509056494769735071498908774487926311784415922196249333763796876809482881260335659429172899481490833186259052775521064537176611995099589015626122746531196703951769478553879836704448882729158054581027758027631007836707008253054434054621668264379243046921075227324570150141253992563256223246605570248372782883237797964591304047352464601797785243226931098225299213240460479579988786000830815988508367968068000356928089666284053972617701926670144161187672098738043405400373195655676697747424630251381549056624210140046394339989236042712890733904809959925734900750462617641155611382837380342713893981704895468473274424002590023963471971240748129406086594574450426798227130758171985194300240339867367009853428910344383582337260207595919109287506215055179138774508048246822295790717859174457417565932971180364221016820596133572734575341109524040748439594781375717090875295389854910475033351188206945409240344783548581556058475318829666402716540108366269783257903663242859570202359144287122603444714554375514943157742731297192219670770649050869288496782608234977212283942155193865885394894656384685523715677757387622450577771727964334134362635726269612889472241611058350071117422474621119725871156520383967994665801823249236565478887151873881166080916168446486667951562498947544669916227357678576839148978956562609245130180483525660227903738180083810596270353410222340781895520959541626638115481512063973116462335337291384272265827898779721981595816035873737512626021260986050692116487319732111039101698468998718542156379118741617072665655260377136878399947997944368305714683989407126993152544391185717470634256753782811519301359203900325444958905217887647050099311535157040794447410763670043972920659758363212334049895222747550405574746043687972942084193274388588907871802046647707523424099496936943804442985877496156286794962903912430859691483096795003368075455969804198598188094936432029790200515304388125310704481910076729998465622523010329293528279426864823763050621047934412499234825234640063367233495840293773289769952601245361460363995279146603537265767623339752182255988108149155245351937014498582300760218588665955068361688799949882787924051104699766932884553398617043464300416138651758588529569472983179295732006800339576361477841736019230977171697891625220475878268324392382226830516073810350868248819573633827794597076727047451649777606493743445570102296426919483474721225404733894035412681016434903584224348941890108789090877820302962863884618456029173936264017891950790012898242799695389068321606970764726782369896612248438652939159987246668352957637569338678476219445227733247041620096455196305403516880825217116393560241353862745780361260222244049364360189751488811985709893778570363747157603614903852988366344419331317533120417714210973628869390816759798209716304882094316900836545989113599928486005584390292517953410659542556533186364664805446816209829839151074254383253467714688059882407028254869617464670664439933261128413959129132731375916938768875254174812239323189592138407805786001100350017558759525279312870137245600997116523249584202575501028640005794695035011509501477913917375244548088668644391182908565318337180531267560086134490574956996272689062112065434736572348615886016599475598384715018162579485943337682002707027221567783347730318814431238794600116810105049124692959567075662425677189125544678435409519308028213512979469597207542032954006150331155921652244353963853624289554590261508844296609676170052062508803903541228676034611059726303094131393443496621961148582035032610198690624693755361902875436838064102103151926719298579067049430202908371382702871742652791413404299179612259511098844251007836265234327108477866488487757594221982855380359775512936577292219609651734739184859453757948440143813627255053926333070068727698373025280344307936459600172348673112858136896029957629647425706021284359635646527339470931759424872754251271744302003836972156523443099423636711469197006648887589184161694863115847314961763397336429345668255128757052503590483463248563982134777107715373616294492042637086217834543634688412122793151744639602558120208998596702104700741253686715237344609713240726327367495853575957918745358308218851387596600033332407405258085740884839324250640063932542725530672150183920123237802231003326569036739560536540112554658657389217529861949269440203233500086112096281098251678656064768187142016012709914427649979996323061852419403423027028817466809632913666792068128347984059141547088487324487889736825816878083030409068142751408385766316737238682585425807273810195266299677707078483778005507689873258623138794020938044351882009186025811850621143330503194482360756139329291767187649496130245189345429589514744584391440109531677837401124739342415818683635336787611073638805276200269768003397093922540092519186509001148369183494216262947449864448363878460722823686160412262511946363752970772059392730519429284851577866477627850969653859458953354501240543853478526309952285946968737495893075841933856590036385091304174630778082637299655749676397428230618841666096773586865784119427457381024155583572538859373985006427115716134470289035079468509703252030311501513717836392944526082639366723616440193331463260044228393556618405559762930045452693155071375079352029278118551286545670558983214563650423233158404412757683793659988620020624290595134792324394029061198765467492632611672545289895379868432306183452198416753623190627650234815110559872633607280517305313146382328632555978004905728539889275649205099218918309100252668497450254617924102280644934267007343915004507129576459923375540715262910006069136135626671008457984640537225999331786976585061233834633901455647785152871213626657613240534769869911002036563539429336575535438577212967503388605111139569675317385786965873297986111342597225998331703752366146256049413233808142186677043695166837642853326138821497962336252413737503863274120107690692932939052270871616842403996060724497910884138170095555586402920708110135653257305046743351602344705755546174275001039927636208974917516158601098811698193499485195208659784926026762325805049638002579417241920204278718889833008270440727087630052689506643011459580397832105772617829257333119008562487323828623056063675658394585138087471497400391959057717352080370136723559508752707513652578944143491382652269094650014194622453263562858023941443800368642527334143266228928708829485902859053189413069470576113322886942000689857588611032660396705769897711362411026152206929738504962231556767965220217496295900412854383864240388751123113525162290432374413936481225088947381252248517719475372635273518100445568930324006216312831533668324098560936954227277258761595269264116364424742849215575127840441929010991774206435014053819507065089124344887535022157198909457093261669196273231786558897304953081411467882083768181459032495099658189049738761885067393629007019647557995219415843650710866978858248302802926536633776868886395292979853359541327001873319267849695071617427247382168414229027356110604479257265499990189157684815429356607250702172783426989621710290008800387509938257087303113617276096368631499524341962378569703250581059629152435103001687643614987347825103133247889735900395375992694415909467745069698704403926241690355990345953413625489415623460221445854915760000615128609676841832636124426449187556785528116186583473170569320925055892149434496626510811300407557245377221032576318349757670923197528548027139249028085712999486502969070375399723126440741894302668832828336697783806251868155541013355328856265643009071856737184808551421681048638065924051056318976378488601503828355663098137869287264091765455039869976259923906330157272768525270856403338250215960697364875463382924736239865399563757443444584250323825077104618394490209706600916989069935857777850181079978314206463380239503765699881837194557903389016881692012955050810390670283989331558699139044184394678635655697586883828321376302279731167629374847349443488623542079252259813657260635851767339028453806795946654042906091138861498519413649539271215077581522422283282833296253301506477323049971930410931243839927526866390203656679517607511371306947649377694900905952158793151004906723135675026876418074348570240154863897991402824981837281443896485901132342018305024874383896313933684539985454176944957402966195117156119351496931132276408151517243278833433428250831462983980113337096785207759278644527485924478796806473809771356828076598310897051123512240690032784768794820880596995467468513906452721603847425804768487703493610956406409137542590526163352194036062701111553884101167791566578051977717459545691013555459911120502783322608521802155990322267228664313695411303020662326926182438535299075043963530068203836373809561659101266657835511677398573296933703281290511074034749927930161228776128860579283668131457503663235073044710366207006299569100694246932087890032267185067297434934757706033239968032766270007360225351195285017156583105106130417878475003972028314593097760874853858757951661047830227559604992421808126301924745171568190421482110606838289715141750396521638210177515590841651239740155700396028894762439717913468368312975522710332008724552357497431157070931483891857352524705561264528795908497694492554529767289385635874616894218240287828351491425490968159803906589448876270262633988162485468220662412015859943695129333630103633540700291773237633567363074888891593721566995584269136084958001981495609477742781386831557353022066413309800612727485709554607101956028415879435364617784052659673284583883909211436037981273509897047548346098500825244214895411505061263894864645251023334198956284668557251075965246106476926220405686860725719098570126923458014721371816209871350619601677875737373335975266263717750663010388797114665301521184217888665389597548329294112948386364032743879118063252085016439503075046692154989546259499718332989515686522530162599903815676587573510262947980141344361936819422600066818832452188524099674633807187979373088270398264053550371101939295772563768512611248218153884501617163934312235664168363803345514354003429400229726491986772573764173325020571831241047804401914886082225047143568253726959142089457829458870777254623524030588768463929076846041190632914960958101637901056443187483756823445797956962014877856493940554525222357555551122742148029080742840779283355012844371484311097336700512167260728391808980733772281848763963790853327945867267995369498311977423177931979959778244820110813842451947432628340068422094488580993660657284110207640584209586772061726761085405519312454777652737302555550370850670467181554414891841014089219471363505208169063797794595802029519991812103522795179719649932630204825112259329163366726353711505253895958454256435537931527208989706725578625502655843999530977081373303080873630418249290953295811601640009251086432453512619685089142736909168827732043289169082114565862740945975618372352560502132830043376168817232079470770855592132407778383557916544108596947281204286627957229829714539287234943686176349286389666360707719801098280710472898146709263623491500271461051779168407714614627776291557284800312909037113996388281466859257343234914200199675687647914012620015547055065244954664076951889724957238220400195071312022827498302533295334984370115347940808280712486007206032702197739801584495490644726728659549479988335033702461856870722661331747020910980962550396629822793834114784341697810705202346890194295571702520747472426435571664353217312771501528324359228805207289993576236310839910010296977422448126175143929579385441938819192253473354269340162467724899836865788991296210699101059324826181790113344260296913397621551647285516411130457092102011613061398514870879544970905984190924432620443135760328953762264334090950162238685454954364627497507220955914907464415389907474325350065079077383252570702087580874423079470131105280152803340542139045166172814463086425590197932720907168353935918443857697017112015942135342380957478207949657280796221891743939142083589388641456334640716652187440412144929081625560645680595309476862315486524679806203992633124217492480091354308094729766821701199035161574458694913897084769721368106745670095026972903438753150266917775334034474564595445871129452484360968468319564830100473678099286247568452232407259586377497985197756693044086845278034315495339875049915390354823626691248099348674501170253303470596102964152196875532050539879704069153650429773350260961795612066988076359764532664601887697420560287299269217931102221857356038891599187461581004511049486716872661955325234039595421585677157904338367562135775977859281319132609233729952632917939311990461743969855146355582108516799544063982775994297020306079190547503966778451097069223153522837681645821664792992026942677554486921099283597154109309635519173041895562874451980282343005993435992064946534033717005332517289142461878558046744702796159353467318273202052429890396185098718244054164213254417111373447019087610303012777658279353872930167693642972200705170548762533088813472186996133991909265916102743368778296155390531953647325971165431263147730035106614755727364114747235441540659922304879451269200611149445563180138432242263091127325487516358842228545510862809056115765596261094795012836479010329224363567902019203487442550631359995431424166655881678662291880720182567490452097105243756413027067590909522255983241759944882476606871149353451228664558699924575798596398334492154035867227811715242968271608553571599258943139199130502357997899675640002199601885446120180144375506228228106419661991365473521623700103762977045703685941002534934817003414426336693875554074747758560173370258761546678368685449775452621987298741600772601208186480036803120172767982216530757829887638770123840303050655574954159675653722610166481010643508828377145834111520715800054209789257909910346596245336763955068602147913741918775955195364670628642845835956616633707976139949874578968116936990729629401636766644083256952061230225104268897087379485645643801815836183699702847768476601398141845809089044178429825497394724209264071231521196941952644340042010959661282483273917236136381349972227442531311166573276506229072380105625261867768985709877039470297495091401628960808148127370993729967416366308935216955933553740041721523759456973565387137122666414090467883782812366148975418015523533986113948008234347121562203331551508110111607779526473967397721213670013404342718294223256848770376260721671286047359042475227688669789278394772023216723545339077847535944119360129603333436008544508827601980899647261887437878405232837304057510549971106524237316539645311129444318741416721495555215691139137016003225071029909695689818434702658518203028888925829250005058278789624462945384407680473881119358017030077257498409173925260156847729807325188750384978663954601939196129106281750290861061125342979488245367815549319728282349231587365680913813031406214635906960958709051276174911086632171833319701495082276865430399907442586722738060195494942174079667948588676054373811300919402458985285412396271204802906190315530273341244320788524995057488206273489028850910098229133126530828008884897324150511188801819797787926335504523845643860330975813242292921478420466912625353304790756752982425103605215432262982954118747929993023446702817908920122782213004534264986295129629641057275583749069475596480049554579786899101708334196682724486936748058894419368608487626054069730471258555624707563951920273581670605179252902959720024739995169930671655251391829078233008658109098837374476096627296117940218366963031597958308751974458882589670134778331833844393892607128078894745924315820778755592178508689663484348762880154961173419805310586408658841251034079204920263911622977539227120022931122417429090479181794014345366014274458463818291934133145283000598295074660613130020364982520768683781783163944575941873225914991653039389929282054945296573044785759806822120691178621726738154742291984054868108775944728074267232710903111114609257790574422242585382534890931364671507638471623060687339917491474004563794694433804089076407342792384373971795728893910177406222446199518916715330478617368501340320776765352687301714850667755773487654222990776204759794443447465900100616163011109850195835337249194774749140499893464322551285262491526217213431162373775279204103119361710209465098019003106268861146875039991509234091970476008448220154839455797837831262413628309570209481040300078621205777082523539774307179500320774542756404786223907449378470478339822621630655097195515742263109529513828033355726640774316061053454310452651537682026949985139653139077532700384393600413233433459100502706920190187935247265696085539225072360931771636794507722167815107182638969693065108842424713564496117440106810921972741974623606702041605130108833226556396099440536418789303374893848911895441837374785874821101228103613096915198535657313583082840740769780248526422390270369348094410387089395963027126966025576316688273390499939840608336490528351958677389077348951474380612065700924533455193512570382141275569557359329577863741909119104876192560086459597303100861140876020866370282603805720200614006791012668485893564971215980192425344441978234680479244297695408911205640652123347374528954778080939533037978496552536931139082145025600644308880870715815069833365318018381994879807402433270924714803843449909702574502129166891346197168171009649716831970514968682704017144686971664113467693491103225311083906863483160337259223617929993033462385031978746363785192826987010746747278958166069577857142610034975911117809202049050060249118717898397214926758152393671591728451986255569003307333692273329827886743515744990941197416190009679546411894602984493075012969440745761863799720686608967348712906935157901132988677497414352892463321821460715570518111197132855686279859346628558100401062685473170146196200863963652503888968883370283551344005254294993235572519738450710906270976764621585266440257678071909430936824439482651889438296605589840409482998409130190233254847072784917105936977116443498070673664659499357982746746858522540573509012434768970752836570858016994515254343460330226975211914549884894426084246542137524866442218767623947242299126115088581056813897941361899528417578778501105815886284275212942328075082835728788932793253807911411950874053821076319044901429063223513138765444043882646747090445012182716220690472469423357153751317758913716564242184355221434147653267694732461898466161863078905419335480625035109081279716308021604048941823609784870001233392065609690435054090804894671055258776228550425864672769218501347887212245424365980665673023765056299548638998937559735236254764656199060321806719905747849008622719788261047352094294054446054677889730165193885737112065573587330312949463825871609628925862955981375444207574936212850586469079718753468927091529065190669339016109185156765859545165150679511045326698049444122513028124006989033257641662388015772407829880174480297555782999375096990264989830289011504019076546625494978527749371836478079493518142218029168156781736625089959573049205865210779061560743504870242437541698932305909360848652031028423950910034016711866281786846544134573258284299033391896236593648583494238498335256779987552260604704087081238348952166487720740997972832362690343727657403571937272932254841727084194193548882104160394982872936396746506271787766829117089370534498222304271935665954571440773112181685137080664430473123722163822893735151985888639089966564412270995362353264395616329477840286850479996598012607877624668365485868994981526420815307093248676118779784235305552085971468585641401891233287776676009562983745909644850605654711474175319229617944179671670845997997253571417330041842853120691095841143827026200008685440156759199760454798455190614858585486988567117783874517744087604618325699085708256811114757116084254161532626981040398204468917288896807452259352854122715071061327244530423511848226798101343066267259657751629412747570760387732834767997379793502547386932421834143843417714956221586837781379018435904395775800887431927035248288662963559373429228515874759319037672976172635420493614708010039487541755807257661141273975285594418900749623195488920863358379828028056655562203291658841374417692624966869633276501515410532684067695374002846750220734027717217750767707779135518934327961776933555525651119942881445412926047695773726115122892691425409614963193104685426676773152818838510254579599374131639910006275194496997029664218492180001099822920419823789269622405299116691340564268723364210044170689507994860986427674340236341162941189348487140556997570826947442901427488876493839068363071962908501911462912574207282109469508511069728231504508889300462576539902094268952723983964835618313092011876282527582661255823268963064341220584194942831466345032510574708526040742240779529624843792725894966288930132893404186761299808821718746405017554403291803078769392082497441379615917057922685408745100670586742387845870925639412746592681256712647165785537562576794932373173750362390118881895815919584275253133287885438736451391222614500604944924902157492058448354414597933161009327977513485188411482598705359545135022927430953405107966026634859685966299697144791237690051404227325973050231433085489084827222977240880333260155112070239704703259667475245703515047042092888581613924368781216636957112000717181571698994592017036251210355951447498520441159803476038436597498729468259743166499626249195691656125999005140242255320434514490448478160758675341741531709701363399822279043950903641234589018179816022910099609363134091576377561645451586345182563354121816505883543758954629661725836127822611967859889672345840073315437221413566395246427903851750438636455832863000771008998279007697567597772710264422778103461853604578387176566493777340719755689625608297304158349077711400733261720410899238826077372673904142596292489756771586010674701229621076134284203903238228706519850827602433441381961426520409675745730118251176349690638783111165522197713678235882640629603667211297432168950204948727312147783901550637237866589224856517934945406338336467724275017935298177938187227958147144661426966265786877332867006447525042889968625453935041158986522929819528600528999314392673714373058443756647650605541788683302198605318038848336402672583462331487432328742459119008832649880876178129986647617056194495342872772684569614824387016538813147353066987399847268700655908087472149334304543238768581141211472476452564810756877075619128122621407881561313175805751451161722522303094473341617233194698507941826602616682482698137806051798479502813095063468341848148396561313279614696180713925654996020289235841496406492995948198136817654554636181426517791868545040208631346040049818647609125325549832915387473240772516357547566991983371700061690781817176951348761733548911949188527259045350615606804309994640433850457681305246251120894141672129694013773656761391397297395364308769719320011158553473342178669563907866899085023858754201556182244712837025610347731084145124835921283515471563176385246238201882698766361220195692034815906527282265594599416927172224813749538213391386627718709916746563855745578871631878080763462418429614687739545819031670840685257053719413528471621875200436703365358541735711634313273162595293897100916098124084468751317809302349326294984253560627116650572470197978398133341697488479797950520892932840286226753838494844268854161563819259781859049908988568345933780329153630714962477312899590292988583137531267132415859849513604980674852990951805315325594165977522310923993007612656116694210055440602468895578901864036473702311484856340266750785661980119575551168258980577775786946499269143957175989716052063827705161688674463368437784730973236914260761257825288021188972702568658832566008616879853629368605230416366762753986795567956032917472882155237343465082347160451929978937919152166533335143293692110812762413554679013256641460936970692132924087630454656903747070465403895039602194131959526302106681470231758390806052612097666898588017384051014394926158879264175007790925244983952008820704807095102085722482391266669539431976838608584052258774226150145574193699193462317401684271153334966233252337386366128868667082359964356163410568274249095856341773515586576221798040671666282035074599352668691299919414625309738599364266893255209925848062201661302593848956583866307507314679618632927412177163291825582497157912222512094056652717625516915858328910280803630072427431618047826351108484007327531700046574920746125806279506763968348892222488800723837939853393983400407187691438648036009366952021942103379833266582504684290855770708958315655381514286074737197970826872525370621859271041417646472378972017268345506988124297145347252354850630014299886561335219502022850275317097719840400597884335603396126223985169463320433498338406718177455361185634980057497161779691318091559254077643950324314608032840001871727965168783232294066442231617341814284563941082515090676034883269920882805492909705439067201155883975444556682691581655898597975893788744198203207627784453545120000399603531474010025871785076709703627962484236223213159318895252368102165057169204581385453625840009819767128246812128201504365501568254203294903798731805140469282292041263650488879311926099226638924668355069688449881831169651645380543507589370341183636861228765330773892222322529671005114617734632106334808133964916263380788981606033627955788725208510003234245770192802503994195728216051087144516760572214241626772498248443095362173367077760281729833723263640018549269886884346930040820111039153671918491378361442937634591137979603157869857536093553357780208850412763501437749295871907872362589971007147411058284460747496327370258731240017400081691139342942612413097460446702645317213209114571261393539589956131798717884120418432221742091959750823327186846075537226568819574763192069270807973525599590430281522507472389496865389351968498313673686242502151068068706888945851726783956035833109283612005315916605259911221582311728949916802567944836916534476521498726681999672303581350008463267990794942348688075599377067187676188964861647204878248554918421834851103013625027574455217213371333667133000117158328661611913049324238877523529605839912133440995967519094723781799580182190476322215533607799508664538219936692122320313811314387845105321010158480108044180590216267777663576257993529323324194218480591456858287587469528870692937918644973747259659502096505042548006204538840273264363132471099219084931591476680134416557318579175279801820599849915608386314119884736375598175201938947881225254497924511780250155311890087377024343788299694379304011349756577757836009072466545205950639975429367645822978139133919719635532239015658820205117826444282656168379860800937064686443687643715116878704317772431551047899053805561287283647782050453069958446251421569981289251062428378221467318087366458136772273276501688506739586200212233079199676358902551612182510883807721932906157557365790432123740439418073722956820314036525876313066074133667401230239918061563560558542325316669858329000930231263505766364941603080458524585891061400162430875396231775836144110975812178971915113454445994561571132878838727248643712449355181964862556004009972824483105953097602284894626128560733425631614796488395884895566898088606382152912016920324513790515108009464727014823220021370460701882625657344264167737287126691339369055183076963612353826495293366811555187720326127653092140834262684727651229953856667386384334047683779346375425359562433687779514800741747767274907495628822633084880039222686672199322431373969260937628887965042498973944597282002739659323914813585234273532444812831182161093276328285626977984791628946930731563881138540185420042265056892832969278376104946860989285226739163268361836654340166006160177389223491459020782007082863551749226818726683680547228932803139798509575321636348316030917474965279316651056404583435914422932634709215430862422771901379123673226605747296287207206966150280611587353377443563182992480003605879093273609845259244416818074916577808447284131796595896424468504338997711895452140932076527023435404004445704101964116179461339401253233244579404862168599225148061321596078538870005085804462704068445831214351730401377928546099749094160941037455820794179633100204831224715516615678563704158045633607266122300053517497761402259109391722275157627063262798725828950701347730406378740820516290129415974770666575556935820721431839671620825286419856751420451273796125983261739076016953981263889065921050107764772969689802922873471996413601608023792753683878424654596514859242508202175779106004231041021976994885806261345835783185004436698718650270597540183921620348613943317050485473861374188022003358118822842298103110580316058640189675677734466698391790170931188742293095654247132280099644854508679610694367258333400552315334905589002642906038502112649652494843766216087945120152413501282779989462028889310806269474992188160095447840280298679421474990932245426323348576526761125679448209890468658254627743749503662509121916808080993051177071164450904319704259874774100896503459371216894560915237661155710210957871782454372850696794249589347099896285771744371579869110518264574855877347743759371956361144586987144175429542035781098905594011142579957567272278239652582602822047580704445433119893945524183513712081513021893085538145909231350057148509484213272989799420422191181307450965140127746435631266517347973037459131022656118686508406869177537333581244407437018867382264043398935266206480824712809550685108488735425315813274450924222862727432419572070705082864691003932883872808044798444442727963018918062717957020194768547891373464242077726399421840210727688165588158611165148202021095411109909483876159309122686180441622611876469974136000794806098116062820356072003184645998307050767167636127170510775588678673795791170507161956912300974716086120673520186861976614710749329231110414576020527250715735612064353861425046694933568825339078590746219893912689798014620457461139814593188091853544360206260399115299387594606665825497929961149395805415175932447061831981203243432827217826935676964112228507429871458912845215468109430955096846392900930310094345001970109838172797480000908772963764617432844206393224121493014180682727689793098437438585370805150330193720655692288210092841608560129639672884342670093454111939044051188837301073137037635976930114928103314195980126503854515237910754286334010431621493668817088643923044062216108206504135357929789335686660603558015032401381258186961263652914119863925210497486000703109239525522401438745982307267994235187204934268932857738342553844733325275812956027025242459869279837348711669927645184953868622702101695322786063709667168721831177565261787248828201806570517362923064089014677918599750575985070655552585072183981728722518994335575017054437798696725109377725797434719995356465454756339760946885018918809858966832573370046160910023986767965918502535796927457860708370271735327857769734187005689942761454671180649454771157538564506305576707519754142070803080289616753110429720523052766188084279798592925014757637092021561878390527734371057639012096992747035317048178049906206643891385105096171921853417545516418031720877898952829627745721480745836087165382190505444337596005547093757610470297332007089547977262784123309110184592047133217251497031342126688857377199270957455104209627748322813864522867890163998350096473383194701587096953791646820122663437944247894175969777688534995533279177339097936305497255820653116200722038113162380432702582312796543794581758717973065361801222140830466744641974538897536953996242669308002511962541521992178038882372574125542222279589977693439167713206256600319371613383308799040079477078641548791441407346640891070959703095865700405213116664298994718466040794913827399109960319312477890498084535521023213237095005640218376791433089397297292917088757103211254660338391307463454805278216391416923636291634318634456281674178392088101850003476301396400871927307265531478535795690014459175670986255000291816993901747020775804309069313729517991105900918476325036640114246940077309768199442214908918611635508115842303607831125596432855630411107787763665922441335247094185455528896231413971720093381530145731398963663507533847811386814549555463932831019540599562639388951808778766848389162564158240406894269492676496697568636852543081751950377767161465807340526860109962201483374714670314097732436592432155233539463291697204660472570782216321322422804664397084920276371870654295713877514117149278783738832126904205803035063472632956545643615106769235569931585666928675194513085109670978017187504757334166609071054601650383410229523898931374755665810279191056569862255133683627971344983018920734820103290198875785507761836327157112042836490491555572157941086295394268264845732472974370343750793738891285916483735389757041852871849526406550956863819557136028086413767345973409755786758063323332542995169194594283013376164322622691896515480246451725415227036301305188039231124313415561991464209759134622809818143823948574438253164250145554570653376992737713750895633709935094875333699106279925301857469319833739071028557441416027374553131292407169192476485591019076117495995228428928573768737699184451621923215367743359993798153638286907846201097813229368428811933867868498493120698424090502784800602711938991581065283016830354240238905553240721347483358680851491171700337462394456935288431809888819951474529586626825754911388227937921955023591695921552712176233321740556809420229317109258070916499007940595684695193160005307688867398260858137190742282530173442799131280023488403801433449945191171107424445121538394680387767560468980981012908941777307101892432246524687924371098096099428443124244046838153733720743726629918644136272305078876382784739600902761641765328765616887166194835843857660652315816374738381453399823802307840005641295650239338629202281654777563160394187532450247994759616246091001171512112682256114699321034155041092949164449145897756652933325336731732276457396957565705252449589973713994750450582396825913634488143861985893826442165707936086522408695748437710876719294625290445623055868234613318714729311147534639448594915612502930345547452095581743936828859587752130275267214972693609619733474134947500166717913208964510266584870530663638259033800197384046706405342779757335540382609300875046618884483699565815367275788905450793229883650443381980920925613740033446500316093304558472239470954805437969252430983889746775891865313041158259461310631242926925719922377481979892244257540086183335414842047650295713820676962699920842916501135648986480561748762369688883407442096556931065720757569464033140016144301320578199851268794270143834033553863115118101101495596183609711622398861318345846108582357046601273881022076272275179891297170518987994851691806420115214223066992734466851685358060794880476109694844066989947563639772588794926202963330116490708853730272835150493917267738935965335068192990833434783455051153711080758683865409231074072567314049104513242519698712253347256951997645244124658965095805321995028134559569890744836127957031719725580967312864440684908888833045559189882008339933460788837033944000639463119053147168040912173955752388390823107632729287509176137131948353481404237625455060877326536740135221767627248870880972619637100562707081058688765417010985284251002396834968244881629842645756109091928225883352547394307665048397025339588253159708074301757254419891458925829485968235933882021867932780388919185438575312175143328905672269547704644622222190322920404032497727551291896929316804889316552476655499065782586225218720036498408463195379640309924045023404753779171471355265906436318821622138318979660986463663380049118265853408684011799980286027830745200938277136016465938786137521165233304265797858102881808046128518808613164906277749573634227087247088038910833203970476024952755602240639877221105900650121551806570671760588698019524009477252788768543922418584268620867018891333898702487623937988050754922837678733893345694843586428056074671419808001415108237662119432049419239458918990144283755215765230455704799449858854680280325087414716445753356435506865714661606982517637256448295206559087217484655205693149135167337036889773015585058920278148841502877756189664734483617371063762783110568788000220255941034954736569118810589922343533313478876045595217407142186924019239210144196783808501765140696111570041745464696265166351019899428006665434858055272436024855398088717490876467137667653294897376304259473919851597303627648630141274592416832692453569794992470827202354570758646468849451487879773400902817032495747787324167405922780067282573275937714206183843179505890727966929234282126056514400873617893456404781700117528887741828578964966648795022184483485039414869974651658006219336561039620653108802106146077877276293177906546290999432869095148409225228514050855899174055564655810156636724916148864677012532237189779467493683487186868418868789368168213472899670164249949739432316514201505045514303052307635536807471516150040703628907081581939828023587778473005235723235839045243709574082330277904135987726598747521846178568565081421931001533450867704938384689701577194371925511505066466133852090826501231686292944069024973711089505217057827269462275116270642566478364742503071494858305183259657857506227519917930555406164020855943689081868526725286682796259597926038326211527719808941785158214007847466010519243247727720043098574441810285210331043118409748879783965655564050648795352341347203634371376902616053273375572392306414812373877297745707614887114234243102797117998449218756255491386677668187867557604203622323816457147481373060933675295267870718122641933933238212954409686053653419369237372275615428934749949256372043010453442802934522696412425377405779564616648192063501546647056069447474288927969672054904692527769041623330156745714557157833715031409350334918373851186304020140070510648970830808645438109016569559694736842140844044314171612432801495576323150820041559540146216923901499725718709204403686592912920335154885769612222219602361089079946655962506473503301911979988462364030478824244374392407817128557883868677252271777766624329732050000282166592335850879662918299323563623818503661639254641553926815841634435765497841575300639439887915097715629728612537144250747631951645936706587636931903289768991853614171731806270314693685908003866855147183893364781958698603076308577178083919955940176436178214185191089907233411451604451077643466410438784888785045084492134829017851793222004611283253051365382481840135710595584116146263232014589170071368453066549004796109603243350303100712108960974899816582935177225583241010317530968719785326897090250227864095665442867593998530421832474317057200625910177070231529482744122781762605273635196200461463791122111213514416906102437675952479641329985241886021949736979419283518572876732613334563068196720061078026585172413430547126832105379730860664708824981670400184458174131877775051837900710823767488028013641153979884466898808531192418244035312008183428048757732375500851946155327007312926916546081554111658901295459671226790226069170981618456137020686849893355777574787442821933472244260323038312538075590006935079440842287945963391148151761102198772303939824235852620673968051399726251751812368573984750841018927699545841008305761761890009203642452394697887411171465279417757555234076253721836948801598950173792598736129531256551070021101060061876564562478350704388576543457136515005334318268978623469251556849573142505865844216201564607053221704185912526820702289991478559315194011885583567858537931091829215290936053221309412929987123695256591925958803604675536735102200820940294582987467409007205729209884674094316217251885691190743826767371371652955174901073709215409243148527817067767020716041681362352942926631684355677709624173345532626833313831981369461817751148441928535006523436870925812161407590854407842413966775395534490200536035774824324989304525160791481869788316261014957339294302849760873383872796025585074945130405556664509532196807010983014130240381904959180143905610975965589800943452328883711251054047114434563004220499038223076092836919522383412767192387679125764759351297548614417814016330194825962352202652694795038982713348918446879189261008094695614460222425179040892206094743334709649531201688500522952807475982979798024214559544415112644349120635293088570627400994069737402289107685048009035142105178537517551079772492017289352567249879515249348538491856811036902226627897038915656555608389522729099305949409626438223734190265386420905546155920278671036339460649990668456508364196442006939540072631637336271027876041398054040827036459590801011063349139996321766112804035106620319241997162964686967669755184153453342581868911513899112930903687123713966685105725918893302483702481385533029735534684520012354477528652674595240207577861918489460134334494006726597398770943661247847369952342356113641781268752412655409441674968084027108019678897721425725539969447491771898576828509039460579873196111247999074338050736278943386913823003461844192638735434576305581548845923443458257569156751749094378867573588903405628213242092547914893552644196417853652450717389296204212227496982386568902611642832597823505149013719244892493845314876862140665732906307310339442461276337526721689366175924048795719662537197993361537546762248244503467075257021698274791153451622488116299303176011600243295049247923486913060756107320819665102570010622642410579742807363939677786367013045759815240551308222230110736750006320968543296895821993257410866255735529800206375396464516982777424788557107730167711663772481988303327435208904003848683667010066062430022040352191300146415651337754896173604230468236713159324701479322090411253032334416201488175258139053261241434504924727332166048573877188638762141205390939138921487391239961553237195603014017077661775947281686264943988275960029413850507998657661775729134347043494350852525681095025410982584737086479173657233419456288309416579980759751311368310963905841786536883365795826659075496477243182862434243466854889253471234961362283544428598862349598187072266116079208691726640418123254324776511141736150084228176327754312721976130395959090933456152576305818936666060926423788293664779446149340115089842614605187608934174199099598228737370597858841318504617579806104328223878665106463074956980042794377459216711098835852487044827255002497403081153150485432931588621870936687822886098294233624806836484981146991608130508520496116478761970230582099720720513670320661399157874619234754911445542738134400701409692310724863773927441186977559324935913726583399848868587087530658870289993000581129299137356002128349988349579641724353720491052274196644491599638297682986270468253689497710538328143953449259352147064017784435719004794279237496840299218580825211785971475619293826180373392818121682405101323743664317451559802982770279680826800418022962779042822285600169295094860841678957079220811797709910294516413379875156050963069229037967168628634941719250450007482475685361874049437100300428890818669048115099397122419247909189280538297113004623311355992439985872123847820805516515582244834661283358935876605328599831459027492567977342763240729193494337135337192447341652203029066006548939244834131615141378654167121395590768862765820663155213569320057664418987210991566673531652401633162658328560934479513329378168713067956964656968621604666767160880456068388834053597048328472682727491068658163034011633762559734926598899466744991202455821806724271620243237914979547617644826206448300724779949693452309152044825080382831289444066046650277698233193353129690098370350819323836358344883958323653914883320237376112484651494487766098062070422558347509148602134197111937135319167104614891325250633551418947190934909595837012297097926730536648673336615869539236061706477029671068349148012615077003479474261799287113505873591503214414727392094471648820739351083057844223081800809868147320879279337195728585528241056475302932781406487367932363244202879245882298970740009151935189728822202478707227377978909642283623370757036760243859176938931084557214868421007345110202150794864267083072189292993671023538157580933587242988094534150225610866901165869748473258042407682885317212321727809896964254255680684426010684347263033031900278370853657959799230192946849484498121925106004741746960504018319571972336412455003566927608483874702443099607563764809458072262462416773106436810082012338485246198220798346232135977130696841835356769574755952224907393740243890103068882026021055134754692529152921948462350074330522521502499956117573364671416583242006269896028262257308723381632744420892069477767010252051004158804091056777929973111170499628779767643843310544932503822316703941229153815532213591572867641260137292005188164057376162512784306778766490719583405137266698175706972875036498817899143550666721891105575093539826493224495398245679643333097339390926181303096193882069201021906778772692292214070562779082719010405065057379348453561964830829941321449576373977915760350642874718772177497877107141263304037779171517555584567919546380995740112917380676733591511095867743579770582643421350105994191173840851031965743621351629976482544795597809783474528906614159906879977903447972928458438172241780695994013960139855667140330305354162373191104600195949034853710833436970365263738009446074529768207180812960678646329368577116881050749922574677793309815505029768401414540839517449104769752182462804119391393166163870678220060824053972108541840943223354578423758031245623032418234531542366314493583196783655678318458516575555931880907838579173364268210097760768389061886409236395063647193640069521125474454962511642605289336842298803383659113684400905292242246506204304243104816389323956324866843719062098934867909038308128646357482289156170446687659658146162246932690073489484378051704504302968971389995275073720545364375806151251332844441953618538533074492352833451363624283402877384580207946718360011232941075589479832675075040832105662390139466402794552846349263064357197528032490693456018028166209930049842157790779026200020326308931038214594857661755293632140163934918284595687878571371947517427918571511923530570028686537726874132908808084495926648671640091568319944030502713114269579525577867657821632602964373270864797341091524418590307252708964763083805833362816855856115797388386975171167449153456957372614519817747709309310128907856469249957938234943933943437584705992445606838754651361876561269235953372553486029947472719265093627294958231351309400116243608667107874664622900493756984964305753739987937115651780628139144606908810249030639074521431091104253794031206765340308694424958985151232593895303838649078758283521273854796458786080146161019432639839150737051331485730184302646852024951034375849023566071353595177372251830991485774695529965665211923275102071593455239113454044389152985838539696788305422330212515598903109748983031487551637825999424146310349019259015095802488837509321473778147212176196956378360248768668869344084723051708686125970089882894943342101822372008427412291112860034161082586137099555463472992682893875216086444653505527878810649795744529542312589628818522399246841577359324048040124318252557238351373018735282401263795031947824872625086843255508150296945776997983497233585433432944822291335997984444928180388122245523964048696666477069390279191607082170337725743450609452638715843020341387851622445990377810533937897518581185244156616693070755016050006115204315879147352154982850301820828453332131606696894335178337610294975564296342110349476239795547672415251776613403383840614675817654490842813650223131436213562583443368722055437118888751496658282092366987893461411407085070062666945443066401696002973464165473671439746597836080136355836314876857915470197867699269070436718152493853746970601007954816632895468910173145253573524242759206412790705548696577984949320719831289430457979496257859004952427808388515095649059054147050068042136873846911139103746945582278743591170665423070073417780430730269844350927354351341441001194276515736261649237757713968814707836472309443379550128380964763315524858875962887492130445026041113321038259206228472517297630627787231016270426690803589023199800088593010324414869172232923374503370904538336002402032492152279314504209465860724768575762481283980329849885197312172015022281985322368930947642892542298564756053879003111270336777328536646846997461485727560368041130079278756700089748764202541279352600243227338829519914053131050970907112718299623663504891470660443947727639928888312009775293023389756754060369652037914027129094284346713083433761036469740291465022282251262578787300516807504815602008366218617437468404766515712141128466515587751132516721674820407218830468706877490235931053564116096425335773007533935365972979497785431351457075723645943419350881415050998411144214958472948235028482352545872728157859523466403919222280732701685822052643188978999697660645831878065612837086929765267639929011001495171112334107996816378319042341930450431779207913277582186945754704403715977812906602425964998497710842799070028948862955307107155522244387397695263460643993971188574835324612695047817514844063006436241286456783510555338446193473790782486937409378054089375540023276413118834488457966378603955354891829441363883985864296482996429015310634022874330304165428541102931044392547432048639573488168729119882604877230486256488414768034900984749694590831173244592315015028593684133463673297893456804481787704981812003405742291991390032594311517679635823281872468183301145126361504167486032765869379202114099899383107273606153738281382874474344836641819830229796484710786008599994188559289260542295399439187562303942628601137362978673731620060931558275550472380556722723052307438851312800467081665108180331866303679139778096016875553571218675554398661434054313093492371057262001737770625126750418436722920594052588965746191809185910041331745154086342099181880344390164846367099856935951917379993092291180899727223799384608050833349629590505738117016220312017243700917935032165599397946241037523614018776017401669338567907023262573853141631114751591982332930647586071101501372394891559624181404509817106296801544315866215984610296282932563317840237923175959132912549659853354041322805263904165225879503903220946364616656273242547133135956496900916211494358654230027100511356050294636920996782534752526645668924463120799426540180053039079757670929589983679974105910827356643220926996493825160762666533986925982339254562777629136034238870273375999722057632735207834879640005345485238585768506521755054189719347915558972056625402885508059005641924513846965028536143502615553467495856014597553947765418708695329766086332703545867001592838307773504806635290834777198190665863898183498879729545837674924943542048862445596106355590611730539172866351796899694461788928911710324858961182461476762093092944302227977582103387680865410220001604854668671068255041796682844798009363632565310936529808564429726365566538402468546899640803442798826260156298408396823085025126039546554954560827056543260462865408604382040752550885167262874107972474759642617569577966486921718077101651549976933298087197362267488618693932604428468954081361110764124942218559405138341146501554649662270935335690790898414137222215718618314750454363544166963170840814215598742515366704647637598205845187645624903480665729286857181184611953883073028210520498233268273037945077368644401261167158636459217022074639419418853748330760875809216791768205085412841449779451857589518606110933431644428547470175708614550284852665720196793748556284109090851976614475184572900896787638240846022045186272709759964093191688508752745783033887951098660922530601215136888339014171247010420131866848420091489283879967415884222162534895990457876949562948578852810947010358782357023728593133523823931770926094618644798992595615848260977792916606576774571531817896600601628834538372674396857765518156454723826296489945378756109422012767561868677055452774548896823487734995976090707288402024324827289632097221052658509070898769222999944257318877185263812290049773257742222381407622044988664150999494294957067904508103906055823636673754466983190473080897081905391282461432724147282307143300792412877767232508256853810484620016064241822151496479962257545659666409252689982257488613258567515948575946816084386364936470579634250987832822277697755728894200960992105347010371368222926730646012108088236144145414642011758315015118674773649358193058045527148785767185987868366149846364918819919917715334005519224741758816457188071141147288793417784472955563992382173715544639045478438775662990680403772414419851693852306616105740793158930834994318461275906871725154478346423070691757003233736557813305803060822431176302712770162731778187846916847045324954976374258745500172803542708860423332129500793638177478114079724706998312564236273440585559203999675431476458441220095231475427393798834836807958029661084493503481702221050004255734190723494243153669408533911642200255231062077815842004625628350454221437702027213140859186225975796157878798833771402245115849899747047072320338898369904557662166406731931735723682408983859837956972192752005009015844559868237231358151902699923877866394393850575021572560337055387730093236708953655257852587729995992671059175258893545683537249993194106879899444455714301526653182345268135448644322168756027227817808240803250097040659163235796817827427432438863029242079088783446973745988523765700434497816622504082334238636387151026689095571070754611858871840401040450832449302695326712402619698806968221930165100149628533091670621807401216333960015848780309737021812684537560825328964385705658196425968021204279972359628075352020208959310504087537717747227137436128866104350193539527705679807692157295495508040782622600353883527035019186522928358158678715793342381172717207812117852973112841347557356677268494255020551396233686273497678100412236718578357640884737633859521483516657090844748657865043844757683047968014313044626756562242664315831675058122835768093746626344460548960293387405564724967035960207128183128428196131073271583922929145356555553251501911904764078955117263156660478783270361921268093408588622394154724271927694415164312538549818081756286300011769057647863960785323979090549359844364425956360712770635292533427026650558914151539751214330336719850514980589047443361677518916901508119681864544059629942494755322005011709354985944852328738283163658341977840449921473902948825596106040377691956952895625491629843342516671763257357513276737647628197378056982004068770515100249470462516763918124258396833279442484020416728203876129119471569253550772798040773396643666439353053582026411014314103770964308194758285115218684119686409805630369241340776131252022635263459578308189289853453224738382116647542915440064709283468159224132498027203778361970955787936204663772717800033020919029614534070462923035732248184792339000577327967092639756066167690551000230276125629955105900806046191737534752191658179070920576410378073635272782194741126245001045307889372978699828553659137316846400844476225926161481493952450346299995734445929459768368509830030740826716407201620529121518061979734732719824456637614883893174881683807355981483151519049555551248604032361049173356493891728527729964846723941281572956705042893533226469237686725968126228991693865219207301109286494473693241728198745427487276337148867764563507575925164498850637235982610245510150886492869694772234711601853964411086878719048134648601110424662979116652648139205177992000365614245780092173596298258332736131807648752710800794595281412750356617726495059614113858525561072192440827289604866905195381135527843063361836185096609036014195036811595981742797556659516615758150511903530572503191513736347618288201509575697899401076508013864575143119551141227238059468183803799544555123015163440769910215077348518161883981416254137836016841507690764646885657329861858915034022738740650302148393371822655281182566915774414830339634002512970783299028912086173392274632402099689210539579839253695968474652642111473087269380431600632480104745051109985444137905942563598713196719778260210612634524801617281529398975677306345180651059641177452703784686489448145734988682026851903280205825837678422120716421909472672552468289586518649355320730059957147718788929471688604370436822068235939878584886436603615346757850275362867103962921947639922980490867267623777447275339461671689758429460926803175030706819372271881278639278050403022833262057633985198873645545542643566737792064412797849787652099033916041896464562984066403256305315074308677733526465749286847038514770381752452717325792277425069090827623230823800677792633888301480751240566765336512077575106281106164268019767203321690602275219581723119114253072185306452961692004338676226442263220039533197264051935794604785702248029463784039146935898126767238687008247617994160230689322133864331831923649748456661895677321819198657175268359242877517701300964293943004149275216015227439705295885679552665583377171965492191372428732236751174199623079650143785596851028709641789862374938884201455694990856437476967925066691336154533749059585870145891037656647331390733245237784916618107667042940271010978070663621976915248321291918484457639212518201146135380042036615839228392661323680883131277561539523158591677580253488403377097805629130094312947867616736784840699694936639761312314067040749760292787253194048577514841831389849519025567724750535856990210282282866089521180767617437659394725796199373601517671614486902695095614537260776892584427843617284912918909452539730817614406876325539688331762347977251972878374849889810489206794041228032124049830792637203488351049115155177128544880187624610523241055705031184161186527021519602276174024646160980906293311950097842922243436273568534535867186819945967748623232863248378441607820051159840937205557605506187068767749870541472186416432412638846783921506579653786692056549781338386572051063442235824884377532127301065372776134346985775406508294231690842107002319006409825195336104743166159821982917041081672174258852133554877714472936762651743930250388124518612804571385560914245774019623914906118376832946900519304869200196655602287549164789416633752773565756439560525437090566347230736716726528494493975009845909620424345639519693669772809072173941123228083228702189945910747679349431268206411389287402213218153244291528532513899252802788688052730707246309245618214914248305216524117852150617830182272098100961341282256327440505121306099118109791526003155020965833167069291101974158520576504278932696980165665503950116151945298698694114650291385555426550863031507442656818733121445991944314809319208221643257674602433898866116833940416369627755726602235095174859991298582653766363678771883686564139061962814674187557090067053367223427862776917638145641428744326723729631874135442727295147840063052413285356510419038583738087020548898002208151840658634544913222028957674444545834125742419746483313857910182908927580736308802060169498488858917880054967467451658771273313336411901677568277172933465238673756899045547821076986299671879287671397916232049678990701187940797181989575671678100673252193676264818762293090521631618444106029811292676591992694879812539676970695870212478494990817372967040874937624037195730158508443577311438678210917573768647165497455132451607655344249699712880263995817415733858038245934817072692644243699596097089056905213679242737758049792053053032028296114691729173057202509781938758504414061925860868644997389088595763427576626240392907959722959438670531581649327464308104504731404358534182085816258368937949445491970848962946652174358675693212403787160653521430585987385054247581441297975789061534488051588784432843322150646760862113025425607258792776497099597546464499610122547718352152891489485602848195623050572775969562819884137472040988608609634832842169235251623630904351241830222335437283791406856083975451217958784464588398177253908198818948621645332121588161554271244878646034654263163877415950352539792303311857463260666810274536201152615149010150517394583983590122004421378500198905819464386412069814780619575424360505306149973929983859511741066026703471381503060386168128432076899420279190469679539681513634470192101120726686711904040587630326226195223359332310142772368376569928022714578010860509947297015346180726097407962633674311164052305668564247869864776504811654259909613166638086537235752665777957316731702765804400211758945463475641783579933540961758044813644504631625588789327884200169138170122486040490284487478124389344288210619385108689244224409637316311511677006459014059775946668201457002182702831471724119227900122268525318156183741030105668275941497792235324785152861037128878568869379107780819894676716549065393617415552462639818216645031794374129219385601232771961369506474643090330833353117511761009808912190690325944036887315606697127995349420182443134778326685604467770959855405482984178126176766446708104590319186535002762255785835606681069551820133704991710874552941781708938980596967396941692497620882217007226131173605759191856681323189123275508464187936951718907380781759866754592471248490956928126887279478643006259358443981498594552850176139371556292292290852791517341320474360587968147359967085975182826575477818522168785665099524425813775561808126447454485899809565888534333963461887774014791086550437645849548840597410920236555199813849281939408489624630883177248578982351598057080796702568899056792670338131562157564237257356699719282607079594474014969450638927628071852941089470949607266936469903905966680007917281378249713679143120549609726791826860420503530418910268208692541266920141696116986999639112170815902975132093765562830326228872966193333405801059250355485549368295700137968934086167401801892480245789155086895251853713080721709031672536607354099453980946305142318675767606441600637588797868846165463173431647201354246480090942399882535845127073454791940567672310578524173187828611080991836520248615582066490512854087727908347616936533497405681550742098313075807880897355504796172257471743833667190469931838707684989851768996049873207206223783629197388942848128285089697712956363322842883876677841628246648476567339972476690717045732818635165036505370486880290237765830990883264467299741647222324540343381367961338879864111679373466327687346643841035648210390096940267408606852692390220467630426663831706445355903733537626464066310189200459194291283999968763109612308291939929000835277132194554616996418755169948237698862446691193007410896261458003512544094675037654215530278790822461023219045948439555165492857360118065940275371534118295990040484446513549219019741472904538567087648839741802305656675954306641068961679017535348808755652526418903126729339487404718941469794031713143511965637685951960804261871449259377528042411566570725892510778832520285423407117890285535548545635238128057135210739585080449646797837698480170880714468690672430502919341615111278930162396081917965513501833390881081107922596816713604466991190621597019803841533355868725448960466189177197761569367834317386218792577146413394082538713260450499303075174985652531993667091600065492171069709804646995557186412202096301199155179656108696593393629175823401443471739306154704695376440675917370726402577584983207414038453987739667809701060555720559581343982408076296405631256241675654088798000881847708357241082723554685804780473001016166609842237831640344998885379810676251507943367352620080860161519055403923809108887993945222808383292782526208257102793915252254441708397984794378059002969794790571839233742651360874066920827766565843742870809948845150969148207600899789123572124383032915180558267695818575544483827439066953121199084026779532172640218024740437004835186046000095605331016349569566050148226838155996623178638735376065200487717392374837846458475326869343986451491061323170105824316646219866333942397771587648108577169217116016220414677724133220064599924844830516095836401341706615387694795486020462216695590780970523898023852366033607748670619635789218489648469909817054574845534006744007369884830187819922632882181743315235027676365885839269779768266327244228340598264704489570172819447898759796294337794560079417039255881912926908267995153213132595230372686062059975426380659643126341509433929210719666559899378676589831342894892061932751387429563255938971092680248732133650038319050869494898062815021579788282230414574298664197162523078952661587479168860155886425653530453633255293591536062052739824809718193380472551822731838292975310370819804563377828406533837243238081305109761092026226908316122891987075844045457875247090419414229865826167077877125333260592294559117795488489809028006201426606589811982125366127971090601219286851694906624063114799048005555256802381646298558757603259999926503611064400640742989074831760489292077288739190157612296158538982910743403253300290161611187668260182422463269879273195205571609099186663764588813340596002370899442843677129804232839650655986483203184676881135800427808077861603182984373230045846198384219554927758204566629370870374160754716123182866517791762790215603272288311337713619655165920832690275009324573989132758895607020546500122132177706696571460331159181231914906180529326048357611077987052255209830413692282503680475969134076797665926681474806979004846787722426644457276538223270110658046034699342009495920566714851043373984791677685693728912675212298621918478035448198834063819412535479638506264882767463415200689189052432635018728042294845719593725289557048066811837407850764313423736496888856558280211025334185140672333966812546390518940355842863123291254999447947549844841320402932299595172225373677462284743570079590880790114163520937179566735856535815293018550899547478757464607783939669335637849308469039152460658456101656070071464644136424818176713128073044872493344366842978652900893587474112100895723692095616784688881999921383735519299120815322224179336613575010523385504972616348962781891681753102226761774074043012680549380378374651127738226554904381589901048721380444430756755406744161446277179222440328424066526560843741339423210722080187102082128237126207944460006841259150640417376938076823849817075302327417000206233054004371744825371496180403571059123403993932639155731819981714007687936791897042432663952812021377109779686508622359647311843851394320636312941243242313117947018878715054137788690766391335980065018638496025152586305564266402998305156719071162007982303489389147577006830683374481012017924385476792821243147098614774977498733749113732262166982610280436874956228643040845718380440339693893594874894090938207833289165449755808306254470001490508834867007384156435043785215671105763730311176612657099321689185701300728276453606855475824164936630690315847744008662384718885472829309072869246236990131593975266676413557741078910934822463746048160730843449532874813811403100737103072103276257812023705712058413634478369527801241038929656436445915321056451649430182014419525497729816814418469883607300796365969745711789150523441000222222894549680874926719679268950895813102519881164116648829586968012283672057007023331917696652875445107371056026661082297009039921220952182609074294751391299889243773153408777889881815716021058449612112782893340178273421776469423120723734940802418059500485123462129931637432544190356158301082801678325107133709636728610357076439757780710606147254619183754941123004295920614167157655252969004589520520957092954984871769166805285280436154973703534641477531262628998271456324858045999687657802075451309458158948538414872513536980355265405810600732661666823169565478463923869693887692597844191248517348297852356242041999481429432988624354918717937249195521058861424496857875551728057265867228006719199882204443909613491265025797515424230360838976377231586318676394382004106256094080145952419938344110860208197018363808923788196403589023455603991055996262195586816437666651165686102582198962115847951441522736482846024670400764218387614410998373496146083382834032255214778314698474021280508217616093151101049861179799613825909463306254343811857978008001856985784810001434927153228413629199602774094273789628168345608050413337869193269415107523165984788664503310606317982284759687200993015172548235490696503462912243723865789099201917532985067543834892315409102385170408124532866290227028782857981247820438708539397231469558775067001224858588777016646468407634312954758044534118678667432095421788524450612814343915477119209398761680726538056442646579235846591141489644252096904487158947552117711746922632891952067995045297963107131403018955145709398729689796426222054744553398140394594019685022620151963405578420720443987914858681089065274798604423830889338279432750310033378661284114065087465729401087561971790909215034198896854916146232782687545917009006466431785400347965744175705466461899385354915307259940034162394703622019545516876759483499491030111284958228105685258992691988720601843267755950484083869262864377430214105970762250568192883493166859385221704809455973431552298291378552485891876712280564454687453860003737584947766395818753500422420332395897611430809836345064780679152629776032823776398505761196356377358758104413509286382220211972419271042757675816244453393214535040797613809481589257659396556755737977711150765446567226015323508276969964720855471934028053301531581941151492453542267343662872703731099465630041040975466900296614468832852877671669339722960845373335202973072625313684940288048839036531420209739813818993319909215249261343953100156258253121755306172134140707501667706129780211886760476089490220282666010568689933686673759550526015382317646588577213409521071108053712505576705824845047391761336862197779952975916839553667742844794980348261710870575583230310666086987288837270912953821590098493315706433881782365053400277006514980889337164736872541767315718048637392340804718340774650370105572591976892977479869871647326584357016123689683799862489904233283322720860452109379043421165903623364962836793432020245642489127586952773833368923131179618009867080313328278697914135670542356594200662339150204014489705806546740969783354892650468387166062902372575208709510677495274499847352244685925071408672252858933939095362019051363169419835953840754536140466993719373775289545019764728812589811158312728957251622269200499326036280087535155545470631995528851547521658443009274933855820353665624767961087725401713564067207792384388870653693020282303508566401688778962750450172374217685173093778909589765170004022184565392725628483818607215800642015147248284477388484024382886565567079617279306431586936465959189644080576550144962417541508826308158163829004159965796065020394944211885105510263386869966924527440044956119839153979806812003948493335288524397129716666737109476019416736664977077177911704217910799304863860900766772647010784420135886494527194918538487315592024453067205077405413724167271005492707575267017161878649170473531244938967651543609716022982379139007090736351731429007700810352146700568609161664655297459888694708238401549111898649551919229856816987955412169765936641915505959322023426537072682318318383316749724780772927339313130832575842162797021322558127361294671495810408024929486959851218747138718911795095452121172417379593341414206010821483884620044353344884443718233729426244525304245752899009713951831556631090556294802275508748246946735173669129807264728086959879376460445052626182396656397843297872266879079556326456462196619661886729339169063609962323804264392036070045065691701233270296867142566151044026215895245707160689240375440154949533101204630860607066244052572101119371329914047194107571680419583177103388780969184588544284230218905783227311147214815981323898373960796066015646827502684820146869453033647387142905997266325892884491299083440467321314567938025496576663968032159019069923660345610562006439193840398684171068126752551309855472828070610412945437494008437581973659480093787170544363077086546154783661605064454198339227690513707905655855318192823731191034041116579687232966355678549947829715494750464042547750244009911437455479284605754913893409885694646169304954173847822469404840217986052795923829328565094486027891691222589058703184582848937736469637334384406885672630331866874545698012975649628687482720214006293984076092505946145114920582992263444723144153900679740877235728752431657526863222740614328809113651226159987453405931888317420876189874991832307041590376341577639568921141846950230356294416300042237283011595943798066336828361118023321694455303452749964777520646659294254470248432483122475391588374145889925553188913406818992385492256414520898693090231199539393034805849722480959140396039277118294107364277355339129181734434554078148116799121613888747873821447150876198281415827653131476108209364674146578348687626302179337803975091877104148853456558159618104812309500798244225915206383331421225215332131837653598251722802802564092559092038571804065396918526313495843573893215147567870356514224569477820077438077133382579120322461527369933409351578092091673117155837801145329717212328386806858547156736296148484924035184319019839633422942379025686868739003578254417100912610313805074197485462313084633458142627540679343160971571776925533725017995617853231251719748952132873927348296379225154509430132724847569386766841199742443004349292166944505731731585976930060333906816409901123305448338246816895748678820057373575221712958916568916540228165585803190373308734923178500048731085253226089355912935943890722887863349788758282870796123268467394865775198582962414808256090614333259091248542818574423597853326576433778647534396842850532420555204140922858355881944789087965336455837401469333628818306251679555618959537274718867323254970378568176506001405049305833146151586748440481708933267118195414739575512219345497544612351787773169282203240993581244004427834382567183434267290775685004860212669754998950801156910471090233219225744589371330764792342365204153391152023054855843810685106031480960184606251020504087975473018602597298754525012058880771305592145061863678386648455109396339637705927623870896485199006476668226470951502101393225032957340605473363191224994426796931984573030925960225628442442460916962082260969319646241282787819088741273986193267631044633916675786124039787281929421189340576063818923737383405041508556361206347794787839392420718821051988319756599655223481919454791652135847446988745114286639308464972969747304260825254355656441689939366270003143120601314214614168117373779646661523328496338677580633525282893084578045191796481968549692110575593806616013225039454980344717823780223641669729814831882586322463855701251123933351219352455068454691367328282863292483865482585516228779066774074888041268717058787743326038929604943281849031618986107066408867022065553587996575595196554555607281516020662074648523875094107314511602729526602631690537985390237952684594687488522985424903013664487478898292743141629580349907448892184452052228833841602449218088908391152156324574101148646607430317005487055657322934503043767371552944689626035460658367682771798708809800627880376239917592317545734446758196620676333824884209785471671560655127184331104110436400581831957576866841199515091640374208314737042881781015447271553585257854202975630605908090528985879991528891996487198862940556046191198704391487528206605815408929735840157526819725445854899380036396508588935129038719032123663925938712011964857017692329663824342065801513824505259772408850797935312761082523437527001950683888204670754318021615907413914638932368936563201295365961882156409610552370312279078267659017045158632704007743654044451472066823562465730247109648307350018706514565573108590849764889520251552693391394193441425472720981807722949173242291263370332356804817143522149272094061650929828677783793583443845021063077104779601657420154031838018537422813775582797474070440558766301210460961792425898257454488742365309002689869643210737517478491383364839661334823306888635572500422935238866781845459638005387283343144201589972434139556515826907721587267643069743407767356505063925269610449079380781436797949557024421452150977771735980846040084248462490786024872006586574731252113008831169546188506136762296375410189512599212876763580922904216083071024909304676625745240879091480385410215616567667480446334014384868359645002432355364442269050194734263855655574298367042080405721924719223277976407793037972009452735398972327607992726983696759850376664552038697701082018309325801590854236302964883283765863774442632994125271640680487330485386307370325276927037520273546341564001346474786993423759763869780443114875778619135697676103678816970235866764245932092072957370706075149525351732023405896896922061458877381050193637005698575491723543031858400290739965470656137893898975919138051796395847041350886771520878285102414189576130182699498125377764365139516479412372888637866747510314831040854711829818196979058392440048832779494791896409647266316386417841659400124438398874448484300470178171110360176423139203174008489947176025163187170484701952431485244558517384842285083807334238248369456800160821760702071699180694310721302129656495955325767566144093897269583540210202196339264436336798665945185031265831314119290794143327665160994779277788009653262097043064679700200521193693582869752566942197868862747065252975286823798397595060203493141433666232309050439491752695400358358456627024270355605816979969835900976109157568256307534566665028937614406288352035023483424083738980586271920513851141348163957934414449584347977107221998404796558081554564519284818984189507807557989103570996852281754151045368774155878098767227194021443034311805234292593831000542092727095836660751491066241298740294035318418950411567330485650410357502349526847733404498846939801833556252232798582225437416131018364858584436201755417215218913536357084636023287200173328586803713096226559155783401615666132926454419312549690906351335540116191595089013809272563924627177083521982227873163873886033942465821664075665369204907581001002944163103327538155486555191435323063032689129242899921160435013449528492875530519276417414126801882312411053795487802621891377831748995888792150538658913875125117821232173320932111627572150704500776246708268556225681285736145132491176920921790231302198932396027922607978759799579488903577426059049567342420834589630653383040570879554491860612089843893668153056725196194822637209319080810731900287762941459163206696365316489122880130828860932179715097717257611685949311242433767034649735473632675609726214267685351499803617813481491784619722926210277822508210014614011356465591797430898245586122815529801693789229854483958382409954392526800479872969160606813403022972402168943748066836361492106632455655471870669432718205817348709689369452337045286912968907466133294859427534578459376724621949474037374883835080480277551274842766964727822416004954246915031461394824591469104498767235963532930597929762324050201854179822723948696212863557542723287394242477792699701667757905698460084867982877886329282356203628756317114603553371417017222296836531473792832877307360812924653202075768121996974275683591041354484073930092455914520615504125641846980954480220803446339061811370146939322422357211548877200452797124196568002018918742325938663161980361995904738327850133047417366009119815279368833404284423677621542204965433475524302258334469340557973352919437978631003368746424109983842820773122048519118617115685869534851667209318430674860216293873559113451123522149533757043168807338061291449185717573538602126632339451563632786112175841404339535681340307618730625581694545171803076063534390500584279718335646235925044480289626824783717062540802487109329977959207086701251403316326741290495912359039677829403078645165962290471749185876068365820355571079636334278323082088394801861938268451697647914715266070323361779949072043811442278247112817768145452422512366031968625543586535871588526772367605559321326569617605666068759004326475643671358145763910013409622041785896973920139121016347113232517412436166103010590056129286653994735222706104624573674917126782435957879717335438252010354855608050474245440714295632100009188453209534398231189140148112084553962472339264070111414119766594129392615595895819105592866137393806426924622852965613699661776743681901789025377004151442830936940828111589324518280306516457963855138482959175759791943581374709367716040341009319228934015117209771530784807502445059070251193282307136614315212581628620263232903466310767862485417876475025993238990682780674679115932415705648881142727722229302078986471087808486050130932813469613252775532819273019329362957148805654528553832326984658915425676370004569781640065749936291127983043056282719491416478765056245151186325193751890421818448234027633541534529401921428658677627054895600649579775818675202885339658765466027479905757384706535572955778413123026297754469901001418963411396097654975753888833585690274228973396086934838835560869564920001942284422685210298607020475381814708139187333974431323821291219402503798496553838805477536056996606640584889466329145084574449244672603496657035610007375543942326967880439493279060902265527904675035083695637286937063380729166815251911792105839179873636171960280131818145813015457732500851670420877892809651741696416024802016501797800675418786273225960373160127948114014689440747605996766848695666361882507482268218618454430898862242641744526750016072924839314120566902445423909942977075041704761433620448241375522892002873145987276605795687082658940230120420666618753064699990684975216086643315987322924296431398657052813291749341159064077374832901238116532990042100317033572940579474253865656344587818693838694695276065438740974812357761111950240536705072198189038004079493783687266317838262385878298873672268481518859635419141046241755337546046833365405723556341412927230764938313096593436698273171571666098719777241140962401039930411532380561825240119210107328771788350549329139019442820797258510121118068480662727269432311560370756180274770524758557009457112355849587321679102873897125305801616063963846791368902916960949673568448654584149710364604323671259258299318050986138477581806415898293749268307478568573677823523686744409985049113677571728968734481651996818055123355298270768252112021339461502300015668552067247140166654900638535700228964233520366324143002061531635103734219446642179695123727874290482173100773808262750025184342854385966251896130203801899066419294364201276917049618018104796368743043259610884602476594586696076687467611811735169398523487728306449275565788000567217579365700224474562323271310082305605943227024741124841529043685186185548875915555746120661228905293997273355920014919117469315049357738342112050543021325629816172035030546752245619860288732473470425322988185644852004381718344189591744953100075312674583281989186822536887668501960162777068722653921246861432345319588799022139481644472740615280089054374811398285258647234668760943752404030337591944375551728863772885551007256278379278966622173995571980046859645998609689978069497086932421279167706629776799789201740907284020979683309512428303798733161809093532064423907025563423194753136869605159924834824456940319897093029379505176345774476821241947509532650509186215601214150387833817369556037660851432959491030673466750258554283989747028103766913528694480481102226412937167250215001492288372540146658870451314123957487516403917072498549012277781004158539446431617864779529337904177987646225173801614212403438487149464068592405147809482365042446709674598984665593008251937138976029372593190771563326502405927677072000426936896412403107613175606266274781839481252383317113057979854640095374179861105034466507415509670253588237620803631940097308678255259504251715480585991486796562976959987917438306271488845088526008939907552391023254834668999199839951524581661392597679574445806354714653920806776979998612373958982811627081101316841277030475156533416545068231811776892409391824433135707482347218438613891619055389086783059367586115625706209257062566542878574904544240634844958124120522786353745711351668046672564119677206641571161138228980692375761075704981686886794268442724047437233687450467533239234892381926023798958016111863136914565642780235839023057110240370376478934160403379756799376534808938334247093801180898781984770620882565260098219228741031373418875779522473545681877245966330616551233580492845646307850978246183059807890028774570312405845627525910538266491908514972025408446130222658050724228198511145241894650580133205656885510670936484367767524944751358768733083588693074534719894792143661838057697465277402936171440660421753009230652225358181739173864501648930185704569852805213486476145703619816529792368044043447839549106958029635761059716083885406806145580596428196813733136354710698058979794585300335658473589685002966357240973113566643858003558417595621694473910599898347508882226511958699882786921308912771416139631855136589463139735477505696051251529097812276140847168902290423822413372132311584493834429193537039715345579200783606024421371281830455171961937280257451017662951532403390916323965578197723010275197266929866489451569782046716115414553223892056926706219719318385723214000347709131293335784719678034997869608034413221842455574185354813014040402614326439067811507220858564242758834241798657867297111352971465604255250527348634397761043479320668387385937201304771369419300808409725892137416749308921636169765827906666910849390070310050166654727748862335703804710059790368562822873177188297880325518422620982965528604830391411662877996846082791404996312918544251509911255889075132881415028812003509289705163448442952049342798240753310240974393389645042919729143833097725853905780180913166995648705489256509325164899226777796524447400497471558603680498635006800536838796308837689221072023367445489858700623277722413036966036288831573710482332320566974565765139025364602686614165879757317036284588268504326805535969949610333433307764219997721761546785958968284813628702092683573054981904258777068372823139433568517401359165824964452154899386539075681368516886391381834851089363837644287087626554392979819099039566173090815362093047351570794208520450497936033120844148893498870259981687168576679991542035263571011442106430753436546633652421018922544525830716832235499204215927255055675438633424063340744499847906644586773660817387312512962191329799449727966358201183250473774290842698226257243812840579122402975370031402478618395012461810213433672497185863080757549646813048965846118431161265560250647227045712400367271431919463934978375565108340297676040506710487836669105496539209459753201507235784125508560316960762601358158267408561935080688595077452432843522783908472309859784444909637634467509861386386031197016240364585904017410936719211485180050187708886821883084739582418741956387516854559530031747891350026579796248295667599560419364142197611564293548599226705304868624439618898844827783193128055014333598587138734949603989542133018981981572400249818932836077786718544882785534893757944034589698678259047173090936486311763661420419061578359478203257372634578799274479927600478756741435199997203408983368225745584805720655261358761378028891768992528835124117580869423464851612973238777831054346064865498505146371289091448079850609879607812370406728088155960669809363572048772032357066167465921858676251450705037177526218026527346558303930279836719647721059971105325529690090415317014005393169553979273227730875544380514325716483287144455405269458331182863784213818588313540888712354409842501349694316617057256189925935994709441338614476306889311520749922307531405926655504639759605512796962501041418879884356899212969705365861266420838228635859163462337853697147994480928271660695007156354183396916203086399435535037153392277634561998701175118281169127106899419827580673343768266447315570888597920262840366138453662570948636343646125700514118816877564609029595049115295526503895746295251020551693868694286418528292584573249539119912259211333088297946236327886936233913566187712479636981462154849285666523551914780246124655546986145430073907915023415810980662404936553802769359349404182168167058600677042005642666404123502779203123208678481030340852514034756301042107778667005335350707754179494725942025476630090913002777223447934698678843284039458447270655157824313220593340148835540566763569210118729184942439481871656547420808287757549569178843931692248754929189132392062876567947817678073876188157343100470122864910927027833757484981180968766242583939706855264331990154128104566723906068824298677273405923878955494800921998864459010992863373832078496262355232090115281996732127105965051946647687108694969451972065933444418325487278130377533737641590655251923161267307549565424790855629477534916164391099823207261694442967073242236003263927291030477375584259945657890712776408582469824776608768405205106135255576593384273097728489898721666026089013221687122147414704871345929773619283185956773882598819129087358009354507285836426346372242808258486051397373498059271113510278249666021259093207615313216851905669358392961831377703645864286388503129971150418210123621617026938081017680294306848317787103580313733203203884797934900651040717400753631627050979894354694423077919165024427459817039227304536534162638470262433517008342961844865198826989803872325289660811262622247906330473530359542078786027453541535265600028619133856612782426549142112541614686870831480135181813964920801177363253583275293628501844439796512431528390146284673473002226376325158172594525093374114035865817482647418032492136148518723476798520711526248667443850478779204692438808136959183320696318663268501224371385326443619988187126062305277556554910377511417510595809023137930696517158830185552459802149184566851746577588149666672569550475813889893949821885690300123601185723042654953735364796720140336721009478919690718426309284597833136308881660982048395141538126850927642263759168936154038268882334706081894044549317678970526879796770247066228019761499264833041311685586050502449968978075230864647824814349170285743535561222469511100960777514450085164293864685850556905154091009588541944727377635009784477375658561222973999317062623666526069339477808721875515412528312600857980377544877123517877470956114318235383396779296645960877141697555871556521457903834310403430729217011338497577790864427873409663549316551044599524823646145662766908628790199522368282706904808559022058700688032256683699997353033015352596311046430237727068799863170793647926544638590628989259584471081353594448932259439930281437628964808053882647000727639852669040841590634834888782549019903083614583785796372980345312185765130455798988044879467512919968805334707173060549593433667025269398009006498876098654561289788450182755991177156730971389652631953197181913708237311409650369085893967105087326516980603211965632796241380445821065613713163843094141331636287579348723495939769359268923513114225076555533798172890921700624553937955157141870628978230746094632843833218746520110729998211502887383649483431376970893418940299452408174481922429460785246519279239747152277986036226208167087546534872886125866580960144457123934060518650161666782472348702524314800930419821161176414491787849321368529604225155018776862353237536539529742250836502156495890206247766824924771036984804943414676139874641946450303324785781212738858856953611419796556671284419904778975961079972877839070770385886672240880614992321492898133752405617324050871119486388106928972417881035348119617000064008034543586380598818594204569210145447341679200220311729487698646179395691301688779852042156009844531280281430955070914827527498534447568864837269053897156212907580702193300494060240191670394178813786351207948840045616269940875174740681794026646829565716896435781297017603395085509360539993348087329503259677811294858465620350372062156004690394430623182071646460946509617615543345614861904978822958935412910922464654079339669260802746661574165311972971552589354287720173115208483016696283394795022309754850245015384574506384061903676615310377428810068647419563920470993234826498040196345830878337924386502513004871343265854879582802551450278652616000833304760545951492629730343184940087229497609524345427001134473921186029919549679552340487902526795797413026432333165985621607579464107635626266422075415454349325572542640781420141905155248732269271446512868687370524355209596538653000197314139386118499045251356587638239908268345197306575253315029989619176089431996926491778706869053921153384085597534982907098745939217311942622621734086416175054630485366079320614132307004966403447326741231179986630722361215250747726465073381505705757155464530436860360986791939731404016096268166641047007525910533344831973670766842861692379585900010740384270531729701501670671915458705413102380061945736360657152759757613745642801210763031957583900763796653954835370547110116968087514722939696783047800865669124998171806804903014704709357659927336438614764548727031283125455653290320287325964504134938580925595687064877882276428139354967699091700933459546051020817472407954860801863157127413213068129258823548635041803774065342262457323838057928515293268488537542894102356512418794346519850006536351196242317899275273928510202991932325011000368627496322736990055958769337021944140821270246361277912505187408976739514790083541817652686052526361177120745471667706189262273532068157285921860959633952428952564633380695231746953714968133736412288600603128971358364427210858929626220477441396829940647463993143520649237844001671647245843434318900655698239821757208417187969447143461587303685516194495493718768985748329794763733092550432517184942260871517644773373036863242474019591778999834578677804019243563013088653710117190023778904923122506465035868003170415216713118078403299908439928281617444776363229627380656130533887811815157746427191722304783432656406428567614815289871340465614064176771423516350745971823115807824189064153963201494331975898612430019202260458346615698709279114984778691329728973348354125222685962074466675611849574994955741451765175803908452428228996023335379428220895816476844606390884875349253469700340297004229016525893147597202058356959210218925381902881170356743049098748943553885217953926413365908256318951001348392653784642544462982547004136357837068966010386960949891390450610922357676491054153152801390496892511579474233448343772450187743822257302195854879653838010031701864201569528825926364146152479702944401025942795381912922014924225008005147290623773352245038378310233278389326755639584738799117936480359662088885125908361296342716717045763930114529487690048363637123954518433849754152869525223164513755077500357428299070054836053188699183727938119258842173363351485265101727695600280348929067949973733781673325054112351547031403701987537106171456359570786517673194456090288906580782006309764907587530742927263023221120984558305655225077335938530540630665998764493117478754604013420826422987877614790699183718461796285607311476741793207470151929724396261621833644773359568585259733326820646427813614510098352079343897150149848564150390912514304431882158544904219714904002425812984377998042245541681561941710467956434951755824991815644284838971843841850276647661929927548567178085493920565372686689389868532553269946897358717218911863687315503103834229323231349950619206043147514078493463130507647114391544269506273485241785371087837954689237462712250039829108639453085651858317595676239376458574068329838870839572730108403969215583017149068776698258879997721789686163661034667790185605771243926402265818421683151608281625977426456541468814116497544370486050682309884315503277199352122809256061336985259853438730381012860825962241505898152912776951496268294222729141770251290165425053452253130336330398978544299056062268242546370016550819426294074643584173069375655593878373523520815174079408605742350687138140018797242097822913944641480958953780838690851337037256491192594911932470353044274393484163955928501236381836071860053554178070813274013261096107467447427169855434403122860496161576701990954364787262523614854293735545205059844369115077816143549640541280416593206479496113416870653776554022044594965070453895518045394724223391859722589443532841876755564771080980486340515195274316587213235724453789438168538502517554389124857575894200494981002939512937172738641675308978387442645961700896672481665134296914162682037417705823372628968274145971500035987639563048541571824868675452935980007799074282357856931189356695671188138454963262105616631844282852032891829801133585301172800063740761998298077148487462400426820925883770916053586319519219683330289477929631484592466692585304632082320456575393741166678687726049863650841326523923673686603986103723405090232509572156512052971635618033100128209730192803407148309122625019644820543940469911893408138775712443431838932735388635657349459145904397610383624078868092671810968989063038799990530331461763541786389324382243302059928518256635122318017594411575760954323822788380829418617713530657182661183398096378210414794356871980853179696904607627996532623935605179790367472934077043654051458699412138866798414288466168696948264803307478765266369837892605977057474196416181786537962504440761892219659602038109789061389216503185245501112886355311852769186973496468317851330988097559266022326539313534452565222112333964454592111701375576780342085221778610145537628318295442228097655601688964572427143410065480882753321788876465585075129605226881342430784922068229803775320544037201788879543909085604243732274738118872314977941773198170341176126667608428273117375973177391943321494522605730442319006826417510477704055786925464467998638087778113921833305100819142840444132148453545975394222010871429854285473400499850917696800938538299303500564903618423695651998312809549842534531398424618276830264875598691882740407777862932831734731577491502907800146630796080726393545227049731887042105098173450271074523329467748774684517822357328453472247215158104382286660297280224587172588443579575259884805747167262134361418913299904830836755031410158659448739913514682543256024949364844172114921579874151593865493493221338629495909445434429368749991606709099639538946391905406955029363913174943966286899202691238324693241804897978307645114729208663037582820154376270267189589392262111807864782000185705916839486168974074921156745162561814442753878480642942020107455334965829668148515812039988657540154917313400875406872629425067075838902026463438286604381487653038327601761885066162846943064371493507256871561506984227165688924262476889672952781929633305751471420262886023199142306554739940844629919694450468310396147507401623530733091291879383973523548602369416794904635662375125841548854625427901566152468818891790544708892156280805422910008836829975282699239075113649182553395320577696026795050358082536408744297310386886747521365537725418038756514605632913554665948016775467633202546961225944879319197676030327904691292610979541236504275402666089580031388361494540845519234096383024898244566471356498159636623432241427525004669587746794123991060514574333053082093410670959824693296479504597312945685365431215219178156691223952811448427432224942378109747054127101398011481867313945000571710844709726200275382764163090998066187495546932120555955665494644204163931937053770772471638585167852893207255657274390681081448850017089860115573441779304417422371774267399621659178307582385604167436779624756175704266423470627872287649974167224753251377395124972581728416942732062848722933428544334892707422214446040929732969586836764085391052751603238242830106830153604922928219555666786652703193160368098357604478169526383629037458155846660918192550310233363448821773881266850506178576990088580663635958100687298753438861065378187401463692474223618094980163493544000405521693289576082308560871341807132934956301564323047516618879222530898022266349466290819508495139098624604341213451883158388660243318676896829826466623615247183285600532721023769900176069251760449006144183208086153361248289148118224314409694012804494965833502778085649811668469254181209151511416078271548235664810084771087088800287433206597145106367073270567517412863101113889284610713351176076651728074411076626282774271949613340340180440067318582691689225343530588274994764545129932043051375337006025088729432378193521364317791901813788901401028194384560949477964241775697260893938729910695963695927671060912867381298861318404553409501924339912638245270492269150296318185147697900519348604943351744970242838015767895138220111284337580117600226821964824730605562738711257875373976121021583992028766431773679323876977995892528018062441970348147008038290172566093431358043776293865774730282536784551365372883327940325474859878142797287817727596471040606950235184383011285891643347200581347389249570212697646498863920951761472597317299889589858602683402041902603286744280058807853158820122528599272404794445222879093680308269968880753206136630661421476288323646856737789487697778652159508221965158570120986642626075447481735398917222740736106790409477698487800593530416783295473445887610922153774865155647951028387757075308247502328020870467459190169963619692465897858031833888858929006502197372875705268046478937952289303115862435160106655920466579629262522014278175049306226883671650830842624172285229464198717497361443043522044343496077474230512825667625508432237036369222739546180679904492705298636590784550565780822145106697582050105513126476788406191053677659542262055916643575225401914006165688743882110256798275410837485491521855772033733491237210370698367010375354277176713401485901063045582253007267237410306572771124980996104302149878495249932922698701316959565759674747910138020780461796602016761893297108809047311120483605427034179434382664549486654521992071798819974709712310837695440034847539319990309130463621650108489892152973434615832974612776297634041118089670661347989013088573175248458011115995104610948052790182733790926247300872324909187484501785316353846235274339137825556704718605553028969606228397914315040513635755605409614111344018692555764613232090923300565876651219141327933645499932346234933232984320932954806274025378982125386058035388093027428412020353438388900109616133999062315118180635309788798759941339624030559816548479935708031675685233754402223275442634096336514765765055617980696227226472194658495677824420824342924466439091124846829559438953141886887789886455301471429951002797162606511112767176648941618596983931467483929296187752464571038506995760387158194671272089406067076539649956836077941208605082386877475500556686905272410351114599693110305621269857005674000465074249746107741786238587119587516978811769194907875601680280827696299812350083613451995510445282210438508369361812335514484075885742982345674334777535701228172608337697734410738995290208618507784032325582709615669887345694778267433037003267889880241235683468424636980777303768882840141494566903208464226437120030929363285704542984064464841670765301971054328164688767685877424979534919470074578712080799525642212271683441029280549179256518674183186989660016057555775456007703747998006937921075908169996661365733354071085000176559536366026909648227684679879584062113592837376142694049753644728995396076360876075011361310221960319208971835578811810132893895422660322250244472167689879185428552682438111468849828099534143179637454375329751676531212569875095630715147568624624671478701256560817659863074938885113794043077520509286666544702982877249177983268677851269708841631913167381410007583321171882900414569776925835905152998617000895109805622598888322095071318768057839036245335623766580720539873830071081208745533212735207175373811086655051172382067528229039632700173745111066577674126169018508849389002255505782844876847226754067370221283941975972513175928917140871936595540271130414257370594772921320081728071073690432926226097666588363135590845682837290257718644542005533476987689926952136671113060532592815515591984129315419837863943093192851020942691566797174004122830463201484169170872800690235651088585443221461039002581006290779749436398530800351517945777763500427201729890671202753499224507765872372592157339992657889240523285756812158875107748134116614368544499973760486932688899047018830702453636076614245335431523485043527736002103769681623237341478199411998536464727499682786761288922086394668044861280068243055910225206182391732686556593804274722532052883025274346158526790618864474074157456692049082211912263754202229335571574263968258572450054905978266591182153448590840144863850979327698527559952543880102333578013721809347206258506567486809798882843072510259896175920927988149602388902181308443602671657298173426559935572503584486776584176280892519426196037679762182195575647786675996205927269083058466471368695454511245699203645627967808619919918539410449960438592392294424654028921154063609397230802887229710060907496700063249744385903347912884747190471061283844778010215069089561686338546559519813061606600751673915688699556033460760781083144441023947593337930494984543921746544299061206380949471670614979464928076493629339912861432538911709644592197215816719964092817918858780322137930591665807630013151492359478370337076844166592704971368493091836215348525076920526275873541240049738377894839149032733378088502189066829680481477690607684748301892024038811837931162339533457044691927799544421720719477309626602322103003565357571022776108409438744236706537844968902553885335507956664994146176477116041097160224271519979464728988518492055813888853891447945725895087319768114143995555961853633096487969744614927599670719056241459150451041202128248484409187306573348063156324735591602395629927098961381149562980499874354757567878395772837713103200265575610526842475365133319790785865503572716217409193199442314430162779909684972421662253340809707229488524001077245212545975290814676776118691682264526587646680492370521435001567243183439037496025731361054439449795371058375756417467389529082077331605235275383145574046449998203916358720151535892538512716684154326000261891313359919132089452713637036472563680699266569486288414397808865756863460426186618985461288758934939051071699945147086952758012608897417059698681228023462603553492799501356334675385603785194963803797092928003576270213468599583018246553020465405456637216587130501094046339718294492720391203597223294870458457379023125693549146813012254054387308498610217123676502645266511463865366530060590772515245936853683885747873918449051872059909484823211033196215690373895505703491148949094497949616051169431698743254037433965442144763231334615211069188693041839266214484210711282325028539370468028356877635797694588250005289234811182939808998079488532012832976294810878693619367385305915163483411037589558226370876519404520255076034729799999235734629376667781417671359186801859140874774967694145088550628213022903630843161499430173048231855880103821602475625707576106363959200023570091471240207341742751765706302132219340315130508941361308966218772862494767069044292845092638696657394945087473879760003454994290806588067065638247220817523024704970334093799314957392122647737165135076507209797174628283133677427475012063766309888839727508757862675762364615556591305989348290321812604664649520287177817545741265502321930685851514233334701368632487588377072657890392550672667706509407058495048137777673457644142086060766632425193544683460132122124195616033786815697844324845352266845438482151822858817484339416124973286500223334060255787289847481931828513434277318838199037377215561141496206269173250611168653962314550186555354098389525107548114725569857908233216142165129768172070768974260283557870920838372306360994800089093650528709138107760820072935337092201060135091490536333910679492144813770994152003191448755452183983458465929178604591870408066147931796700684431925134270607629842764683065197923241679051091201184146096826269136330683322559644946028373431612856538653414202627021830019774669660941958277661684249611106823127728768013009482729163820024174887420652640951397419790190746070494968910009182359625066816064486155691405791826113322688074494852174374205350507143907664013163452530127186788847087898795706729896980935096692897005591094992402031643509100319001504353711195703789380936267287418812470626222665596555753510263483477994451364426504728668747824678224837051799393947535476238035238237883902517298819603343659982717631171031598420867494188286479575541027611790985870035342431224508343156746930946335655695799320404486534284579262038169476295976146737782862519254698528587951423679828529753886847170039348338208757979163382700869296930492334366588373969961307063668831804935447979489670723918953294906651425426506530000060619012960173701675620888153784495958920936756002385186554396518563177323081813187427341155838840302157459836421679652331383854748374711707546566829646885030866576636445565386067827948208920132909923532448694452931500028528180772777767749643920834063816614841637250569509650817295923832549145039558379952459849990529527034371454984047283007266129351516272815189561539641831402054992108014152093559354670897473902397909446072760031966558769903298944232834994455031474539581222281852268655392732827175303557386306062147459529972619168266392799932666883398373934104407342026250236972768764126486060459848192194091314238263027772191253733388588391887391753972975069055786341392127121472892652668019735112944330256573581149341420455902571640924374118180224930694254118981848397768295042602112363282798544360912481682397312907192829738750037514465892182480352334200700175954677041968857806248775684171518657390868201982839016047868616847998490123281476507746838912431080246174255399869032399984336349044859709587329665583064309003332843928454529333802672381335563236486172156547397635397497447906531590510987723110691692600750376532046642812936968619501755953570718522600762698612172719712727433033224846428138790773990306047722460921803865517207773352096223978920814050248258176364973449663985095572549735640538395245406185479250343211834385857827746767832675138548319930900799889325620602980879366654147104387864740698916789369873484138291392155822074488602869771017601306651427684726099751064541519892016605242037787134306711748495988191235392266753339276787855479667793499023696549528298330746587875770879200164420587357692215384639578702652275633973382385620287944795424084736333391666391600158834534039622923955323259568620871287836423113738900672157654325749831072278719881225321584029242257503426762483734967735650571344521575445803834368078912358513356762135000181350585122855632389908289381767831464274396816490511168993387078170812960185252040554511728074848101112191271524555390549218852636498957106628205622629709552039947324790121703870943089689412399526899538871656287804368117306118750607767641158264528011077819400931781025487028344304999283700469357725219795387100587856790596028883688983685168563969873844583352724431191164709842834714508297624925344782258880088866569786441473662614226630644812524194359701725146910971996968305180617556588955947417913034634049458402655803887181873423347557261992715270070663868730015814414916234713671028402946660574269433411629536550389707529810734664403779836792203233388368722798291200766459277159999434251836468238746389926393832886625066234538818267809232496816956746025737290547827210440254043841152660305626242823243295981685917007585503716443186408994850254944580843449335754704576372597185152365844015878647969594792498380435924134836487878587287798619826934561282573372690979366354931941340996471803471482065333886006606153397571218755973292917309238303990147500084404250231377131707604083095898193119933058861410858426261592422085129904727126712063744638578317085357537287267625618217101018859093937062491101143121898670194284900744419529521046489468845103171515874328127498655608174030683622308004017033607326867103631913257963853597842288589433989161370563240013476381111264041849656932052791459858559674566496142428766034075553873284006773863632323482501768298739123894184065950254149469118502129677789798224762790822384119521621175063621751338331250765297904925205223111665151114201200817089596732451629332049804631189183863998545280519458470754294185346833796818825788466305066770095211042731180487260158219458257890403625049362074607675281682889619356188274594283535361324047293803403060530002025903817156727640261515028821586926452542524982245677750527971754280651449593925607318607497103711621277657574169239077044906290876034832463202393849008289457793108676466909876456215433327420974028286643911979718241258803078925367582183487915970628136688778087411294307092463509250307057633208219983918513231702937180581274046269980630916955435743177386418152933478785952084412529577045500262486364935153965290439661183673171783142709132114065907781141328837312377670638032710040259072840604090442619885561445291509136518359026527982544443320909922625313656996728071202551393262508739890420801608291126741678276665348336329016921529210915451742614139714125748126717471608621052236921879481645442347096239694646593364947188275174818619507577198634467911050931717736857235243409329530943148180188743864056195398545734266292929766402216633936557025661757345568125887268271103368024136677182542545008714764053279515695392252845977838330792402996353094785454219121020785937024301326975329150496671577425226479403170943397148390493107041882849714519769293147212498355059071536582717960819288048008441004964360316176189353446888750612946570131187752579552732144990154598593641911214838009404276326244576518801764352461389754351901609565790589478790313654393710700696254876085199160950577654265162389366783693778424630978984071514042460204226929439302371214361203378772540450946123390949167039182932439100673424251430437671587315855624053705861141420747549954261417316284940569163164758792528057453145964460005124176229784847343058018045303682063702485358835829356706878247700103052128705500706764184612068551980999682709396927153048702212618146903428047111151807972591328640228895507017179896163462341237008226434901388179154596084188163687926612732325526672278543755279705174053151104073702770994303605207575656486157428598825426027677269247507552947820009016835433368156206316994829525920031986422668555227984878987792478136724061433818975251776428549534839201418953859605685206314813055091730707720530963255672713276617826110780940416023051047008817215461649217851038777965145828918690829210963902745460866581641527305263941152840541465136309750417862265707033448512132427393274221760068894013865434656480753702836403821907688666446086974934313371712311239694953163968993365105556396555026483540575769210337600570394894487677411851169710826862714005533725415614355651601534645366863688306334280442748758050985773398144005289215936034641125058325593315702269751734322422747271600221238636206631655645635525791874151187950356816248706628996488288718017450918060690471593236620476135383855216304759464037343709222222344206815082625070748613830058680477771551106383427333350545630592507049139082536675036500297065975483578537039522629756793095190747874389945359126559608908310540178778963152869853251926736555261691088931037006944563439457687769780965905847631547048004686737368305632552156971141282854119363214674408375331151664714640058465604014571876991087182160598845661500716732449818900776232477487669808037647814259143604441571427176450367933319626634088330875247681001926965117575179713116971426678045597571796685915417422035985294790115698381067482824270137734398703214033952717937175931817137951987390031303571201117214281161568570128798918673117366970570151293770015064655166120735038557467520966009735115475004641248751932095729649270530129557199529083670920797122734104606480444211757136094800535704181912954797701700750635960181982515835525823739828569014432885387859668074380248583855115889129826645566752157497495974185137845807444445648968444275954208171984408744575352198740382919997859607495430443536048522407856082707537367141996631083937634144435507532470948198660959551616228841320171073341945241811752102092556734949442337867857785907931048429971949635271921957906357836922903758494499553559147235478883982826240594934259045778118813150898656783763391173593916363128026944042816056211158882053801184434228222510554305805275047627974045158014724069329549288502799926846861335262478319546594563572074035418281950230850528136249539084356024700009969365157268831883836032415182143786963422415048541998342411559680344705519298556717226623621120301069492669117654923550407873814003418004931937376421506752968288246221026894127091025844680425210451207329264435279076559758854987811798788909050909594726048745527887460921079878214475987343291190211811159996662125285597504460454665159034444600401887299086132892191450679018018730361842523932806315185837453824922084880813196294722987246503351599757099066945348910284220702219401528844967656863339463824376610923426536921238680773997216555630387344106253258489494572924509019207910196668240652353527333668105314755280176690719033485354744733053854101168981808868101447001578305629824366814620517089153941764110110008698495149733083296243312966788159436932408487663434354700165979389802699871265492785427074231947737477783383304887178973135848760615260650352464698444702273064539164685372570641422160458206815820650634458029035888207695620225555044535923418274886872649108764442485859972177054445402594592320780722017001056422426848038260370465049330888067335138183565476820174642144436616602059555053610634322179877414764278620371229813200104829125329880554213547618914789583810297150575879424027387700482311189517883790982954761251538949034298521744423547587453805706633787149542209931025792693150524457241617125845213502861292709422239036632318302096038279635561276518309832218269391540971930002852587547649876823516991580761674324349120145461585345958471838952672708784232890896756215996039402414807665014566916522465614622679536503937728057976108066450405907212031921383368450490750234548053751120358738071486439251565967011163322860469044560290575186043577188740817005931041997305183483705772180465170740561663954314474059569452585450916613927628424067632525741344140161829253067953149590964346215189131813750764690456405758801669214644857245183166058093178918719884765498506686780497990369441202406929949890790071860135294331758277721819699807615080685333845033095727271481969638207724929335360975146941568370686661037886972592473328993160066174602659899335697034160944179314736151870694387879379542674270380490434984723012477556859062299956705686655985869261501023693775140244649598499663668961282961179922683245203465483286752851278048314184194240439510320917652626151657118142495855142385194936027290171033015961076774544863998500077081490290209102316917204778434742498356109636961746364844536533751055659156633558287881322012472849774737248724068845840891580457184386479159382898919724477319389477523230737218976064765609273285991398680017525868194560264723443718948381088037010268265907966969376989821231107080652503034688574915169256133241771920416909133993174063095451712468142227436332259502280170921965078904079174097070727246026393155583841803088107104299741434656883745510090944307628779462560618908590056124886754054023593558544274157441152208170250100362271200016195561991183747320330107932205162591923472797937520154489252778154029337535438970933911630369487869436620236914948307709291448988453784751245484341662573440190531062221712655186880395841291991122225686060265737447110505136563151716922813668688486356048742477796752643089023006013472682976348372313398937967266297273721577633070739241318696827110118417255039472314392992373084735199091987692901277678750784653345382417923777777524003065110505837166846239685280391115779698957676357126683256197633482828410508859438099548116107159547243905212153703590101534537669703530639949042112262266310289141379381335403690671240023338793029736089540458760987456878054460081215230801703874314692939583184039566492928471295380437429662385778448123923170518307932675597725719454029521500277346531136275456884286074199169132058160532953504272794637284874541569882260283987525064685100727168187201653566961852402325749660983034307515771628188859384513616466808148074222490851156971627484699071425356438986336930354594449445334039321656694153185951036889573737385821304397677663203155182162473742140290682462647115186970917576814696989230153300009781201798811226252358981423957693973313195322679041006931156529390395455414015529243669273008544083377137226392692964360981381895171940214492694366801502669111172707482789156676270447083636132808283528422456208535357082179459254489964994930173936383921236345070336569116084880647716125512255621884116688014705756316208083158280429667855124589070460528664033939098501392626885870900388782245637617321226641116748526578519579157738054581970509753521043949959440480251418289679302129829374668031394183497699369787051965157683194517782188719199724061612925412172733902988299949362545824787070805826058974180280856489643088660515189149909400186590716110816317711222441350321430562459500600500911950286183420714186623871609065961428946030132900521694383257694255244470031218728519665411535174824282881461246382282549749430432688018469479713860137439022773454417851091346050356530006755270051664629931625244662142419506490447116722103552146343683054555062202333029489745415525768247175378743168872137006346738350324412183208754166836166176197746596624262854604610713869020924454068631303423386245507161550472985372351506661812384534801459256073361859597267200379894618099304935402544983889403384021804533481712912319732923307886597867366091795145150252094442563911884855844422493764717527773661516533466860023135052109832427303791566172115195325474462295932743660672386307632994736055337891281652961392346368058700358362742725154409885927959240157677247714968905281344369621129480690671318209881445113586708699859201259232874296205694793010074154913338525392119430731683797441046401770499176663853294274749671532858236277982338747213566134640502759189213215600125688898738287929563141783650483238368009017486721821516878995847398776837658703083193128021383030277529247103318728589555397678456670892069204766019609879112340649860616674076643731594174029077874448999602349269533666361972595138086455534156928913638917791203046400111551904906724768115332226142724227005934098886509184812089507980799792495789589634779605357912898198943913567758084963001472858430565892415350957766697164864205755152877283238596740166175451497017170571820763388052623853193344079334754171818740229362593818990557990262685030995798937323413997459749084354704336169885745706038921237138466094572518338693077923305141458020459024381802380429188415317997399065734390998919961436321210500534748815293427161663499816401646643647779189876978724879045934027914945276014867286639679465312807900916726218658135495094989304173363688131388819865945444292553483671824002105526692605403003688616445578658763288626736301332466335681296765010383197885478077534255949800014927365421613641497568359156501871976718558321682531233171807799579255615723551882381606203526661633427376009479706947085101267863619069666168393475029411369979145425606523968628402832774904181287092674634605756445249366600773600288087517803643732468137014006627026971193539560319200734463786079965875039171943688937219913800347564442095794927049624884048073969213927859419870861556945934410691734899328365298523971093840821149536291505238472371434431254548367148542074953350894227180979691485735999694630705269647538907928331322965253920104729987204613090398539702011688181188968308263404288639732891687593913915330337516689159556284598223985853544183165465937867983899179945673344481933357859599801221107650870831305481903468001541070573143224219025459436267111893702591201993708350413132737714643675822482787700581335260024386116922584259739641087662574629842270545874224405011893730398766209989675663315903361789407121192125475728144260052477387140348879332044855878201332172105461176116806976928849135088004533525593450830608622920441778243889382525268424908328131540134882627347875811464394630230383059030311439276880536470663151380343185003401358606423749376025681893306603798208646554701318028630247345849247140541006534164382733077342563032501401647681086042877257078026389842494257540556238477767210978814295057930264814941584642919223985089849639348134062517373440392056139568572017304059500223570750482500280922580263983204800199278678913283192535738063570986186825555095714723985018973145593686737454373462481687143721101039924795494070417171741029835337564018041095084573298211527510684194609734721340672910186543563871833763922479772700751538242994595366436090623339193589838533566165485657926447366524767732879706727078107595868437276653086379993926946108095881059821906796016830333946289849386918313497818276145998637970082978333538228149886568355335698208744033634505351100589545499244457071700972903683828098231168870696800066727753802583716965730982476022204721776697896798558444354908469486460615304436683860509685453805451199878671804336011082957440392365888977512287368642749253574060474367631840070106005690648539577720404927608801992740713816219321189599707359213304022084110889470433970316485482478927816292888951948912575479126031124926775047924297322155510446517304801722862421296194029284477696235547253825928111872385182428094246932975098081417417533806935675053337252455779920288096198956815504870758844963306617396956540011249525984090657832879572909177326521170123127530773319254740430783551439766604102565547021196861552599590500883586188122245297901945297291410036748858701343055994695891239669916536968883225063098706627521014399514042577719961985766785313695638337820802731022367794826253378087049103986752981914591469696264101567426685150390065123652255623941050994894034206926038707680414503343241907080908655958544794227374602567480764521090331349302177513051214694592702453102087583271662466199665672661422023980289254908450218845005540878289082435217546682628399966876734927107533345737202613830303447454629471182104648757574721376039102349876822922373024626894744593461433901826527509245332400662061839179529945604888058348925397840110939448191119072137562000696647271981010246506961454835123133411474418802378993975127648034241925763307692597250151647490508563195430971143315008592831628777543031120357937901974616006759042948487550869756854579474063221790112117196421782764724475016062389555797757523162864509116509781143726185668257388222514585832303907788066634575306922479147552808508556548573066397916324199926758988831459926540826374615170646850391090193528549016838657422698752592400353107289390410658482426668680237847150429025267506233667994796234182303894211498143234509441081174638288694997856408051924869069413412385345707244070538983919629950185484984424171628871696231123390497359371794745091192061918719597203442302353521503141527907440456022971486880401937993829463474709461562975551923886197503469086037795292963237006216480717640299702624826524121575824939048990782338665750747716927040827303171922531634286116153628441693674879408407768649418364679463655506885501531841183384606030083128822629190605855114961715664050981754132122885761173031715199533845790733459326354346086783399787719161243328718919586690809372023461043752898680531517262843240015654932152817931344613312366081684904211828432611783264921706477346288863343269449896113151126960035707940442269857529384225101719251964696901831245441116493967839771531394549656998287609371551791671515613041428037262104071662157128176316276084451473069277103930840795673433199066320638734699154077181677726969495850123453222901385470740220795946070886239211333474379326660441835296913084012361135044992494232175524255697452147227583329039997875317657370684514842424861255108561729907299689503692501396689951103994530858830972278543113567157057030546038734730338953372426728147181655261678887122486735995590987668527220532352347378786461889458389364862653101530469781301633259350573480010790133978534647687474363615072624583828230794761042000139878692370400129075582760157105613805040169855605436457890154173876686316834614368214850400187429940487921064556386101153185658343662094965798552901902681201657074232608970710546902643774363908601227455010969148053289108367774909535340529412320618883138920295497545574648244762034699678381691567430064770314595340563551751738942598838111782187859497880721052575155850555500895076740682864973210568564528477136520597308276743736281960870905193032492689299018804801926192740184923909126908122230378340834074769395316255652178248408011301330006832510250078001766084824147267852383929216594585497442773424501474594586729706294493438153618821514610531673952476214187796269761176691262382126004495936257282000935883362457554351868603115659845152862798999478426564573212517444597883261479074654106092368769255603379486131579319106772798096689230363650543523381763816192092119822411593390727745229744599346901403163229939787820791274808654589897637775756022292596686669248225459073543093416560377189501496458607415321219314009899741113042367325443816691372977220254651443371774700182259625686907479522015302859690878106648797493530882675439509716954580452402658347237340965303867012503467833915055881363946221348660478313440602749596730819379476382074740872572104362947312099799374853647981925152911408527593336809687062269308600542417581322704354016022809163454920139408102817400406857840494289207810406922754158419486139240190662973858425030547950351468179474403527580602443847983602180873303421207511849013933244107151277913323288171356193509924858580117644243030862746292630362754885905991631863733464069305310607285057119557111554347484268733563546154401497076917712888053158727140639822083646711504336416865429214624018006001557285192298841100118469454950295135833530435821120039115722718310852757968086661886586222822427861075474644128556712364991233959008218536824232956065828860518711895407803595704635673389917996282067808176914834004623974116841602259305248618232112562354809988220373038457134436986552208769831005584224572920196253422915460643707929558559399424052648581918407821431948828157857436808055423642913069700116241026652807284495324999579900079465756010775225103664987767720579172738358052994372436356435164928172089059316808100298054577410831049544499855506627411938457768280946457184046848790427394560595358343429803922351217851690535780795330161279162850890291520166247373735073672629935446475659361017788876718966666588395916026198149770869411434869810617553483005606853603066254055127360470977986273774936915498704246873035903889215828253815948897397500946748666042596233279130895153515150410602278814736040322658696524608906572584624110757213840682591395004938446673135342490278619231239475840606841751792957790326907049465971538568325938067368177477044036339668084848451920160912114089006593551618409692791561228146572128230552620348534603524731034525833234513309221111795809557905612528213053708197539682080835029849269673882995118291096843132119374282822004011819723982039035161632295644468845110885507109146357906456350328709646196297996790913173216223910839053341687033820398198411003752474098575153139469525237710426079628850952460644643342833938769914915310858351643300985178908851950134874353882729283397607763427414821915147415686149886364544202818673154776958577831486733054358672343711054580033783383373883596136318476180812067674574279123958612832870205993774888116040007390907370410737622979201406501846370846406036793237840077808354008122393113216092336073596941406293590426534323471036643550214089506361438365536267687101021783684955120080000806577700989274481086106198236470101768068276671325420620062278374216697334837312011548225244683595208042117693495246473012699517497372609041124140555814917294153054664182523204046901190242079124508164523224845246123734658398220666372485663556927070177957994783825996268535994546441570430194274305756495957451156736001445380020233886846352990446345536173378914029965083565615109981135887971893006804849233479698732208925813787291802428613903969029971121915699773644300535231705663809011397398621673431100892110865184045668445872945389841566774310522188140300803259408635878667076958162806097431092917903342555701615943997267665145783749240751677964707654003593953629418983699691841315600285437498010711637382769533243454124711272459417880319528607711666866340502726109334104013288606344516967546897420762770952051664167942832618862288653397821823622315820504449678151388462968178525942644780984815388635490558112695055258767961013396823159340385758613075078011418632935668031850556623303290008268150494230805201373045978185529896222048786823730041946970249617213050886958756033434969569831614522582240594543506248947601708485476071134049773504605811956355377944066236785211414523199616345871818322156175899858761576861573500144367962669463268679951012321869467579562969353888937870658941460156996661975431743188615290737459805425896841515119832757672000321457058130892960654200451879811689087778962329961232452346576828646968451460788900544838213417423853509564353047270602891935161089005167614786861415061565609888193536661318725981305775836835282629191605688002029800500805807580307868728502190579999368081330434904368018707444807981319588254676596951042526869894390913883846762574369334889500658508000079513996057153258738154181982494438313239021337958171119170657753095873717250187163096687962972748008246548825508162570245367613291694574517091671507361825148874899897349043606880333844562534482067172350421784390405141869982521913555595351959846245958392837125607785108730408094318318964577132258279377998683123841404967929869671250377612141303923806653215303653708246787342808153514088247553025029185982893666111669406451565670263725724785443163486011735220136556038234293655458088632725318510605458785258967991355949390938050936812347969552579060565615245789434369177707408313313148353017750766297786653568528875958653977866174895218449620857609138922673518983050195275783958122424332221196929410552901977278619581717382848563539567728363646727889243262791086701290918149423656875461877553094462653951226029564182349796235610212891216490380407296841800560140925904427966381706022153973997272449096846676136208564518724741980589594531534546139072587759200803813039744935078288133909151966783272984952889676993791813043951610433980288170116719270458490993412038096998240171015980238932617822452657726352036500086735274311818871913669928916782697218361302543946593232876253272033192846410785037066201114665741456306459194694567557757293618572961489233142747030375377114527263282737549303793505975937390288914986829534787617199156757245901081066898995394937433536052471701390115823776897852851878043945777175744546869083121975203882125513201281086629245884743778619403517476885146951307576736178986811347454368881268439097183220003210404952319833982594529393377331750965475844763766966355968919152074370593641945382242142508735322376976347366100418550645891123160072083903646474979461013482557248292510890328726464623082256290342415499315297986766926932885897998193280285692603668866542389788594852248819499431851814360082268297218689851017117678761446354837509126338636825651297951203376119105593243207206029952920999316057653754934754254378541897944732213474067941676541876817631684012909305959422275992897291076053971955317337719458153268261442411532782981196036793520119297986395270979743329196680547063741359532533424676658568578221341294430510773592441698650615070935777934044556492813053746256152344087660026489975127827423094000045254335079879322339884791035394907595595368307969573422345538111368156918969771843728755042550984845324660951201114234325519627776940593612240926350700282722653600622444000010696940952614499457890272100823878113501404181092798124953161810008587914240897581836172401773339144311723877068033853183643365422098394503585085539139671305200080355450302673097660281528569692419532270364712758558642106991421862466097620666012672335602815623135064463163610955281729642724975331346908386898362606547564459893586754848313233677066163354864778030499025141512038738952752794262644582653111492427449688705626748769204635474348230169102680981941152239965888644790024135669433061515065889927865839856038204130987339569921919833663744598447300946390057525071588888966204497536618784303561865502591815113589699741967301455014726207670128653627147637178494545817801930279407751972257885557812323621124446344619128842802237620292350373206208150900564077611999940774114503648203182718715983626620653361356610819833517272594597330815720670205725312719356330643998312633863064784002692908993932003293011373504293415866439940938818841763915367368061896123428451302884783380856757674083782947797895021635543023587289750437457584806083238775245003776762206447751342735709886032273630328929738331725993772039787441511665175322881013544329026878213695455491735809421547671624842573417023528936915217472397490208916619849632130064677862665646224811123946388062033394851542150141235738778527836831626773322820424522184578709853734399439961524589322862980229934859160799916368324180583596202182735189735797956419106969112419743565577416150605217673563390099782448760239962875600839531327671056982971836495434590820992698751522573975254244225603134488666756302037680644792996714360768810909282236993439624733141611130743201412776964897785035771009126981532583837043016873876870551261003692846606276008391645528227677496250577059635861502811809448112492201865674239081162864802809302584328154059080689894884722608890231837294726966246386796779694029118947631902816440180292409840588275067084275667098161117405347219539798508584518103747006749167947557324399359856913278589325636686264103272574552320464351646578765987939563816674067958920276388305214804371227923152351508916743350283972935376476409076275880595283581984131292830164243151603003315922775472904921720639941976550310301204925041951861326740704026710240545512030723068498901553234177681856634688607498886229417018949047267069002468453373026156858936231253354092682862951681579579276992193056385980128792161354317755258974162148939883224890315553713274913179990224680378020928725187570559174016952973381100489548442837666882541721312071797292768625561078129653399852976906161543779442278716479975908097937678272505130830829580189782542457191266791179220320465500282597951859297714188132154639507118830741133451866719689498708941526457460310415884070045618482222406333309262393162022642105932793895535747483795982032681364134352723311388500640215144243033668853364998262213372174718684555335263012645547884450988768726387720548113862156175287541561948135420559145758955703769719995109546556878116105437062093941396025151833460091032071253700311107660853270309912596965929089496720742126656274769257423692095233928903065086037515039835967981336609010621776948332704701808058302815020708372058216185527747162827627257402193443133373516106525127178592495495092858793626827824150672773432916454798600376494141334856017698562536398289836528951546766131949019693727683431253066426671312659359594891501257793166058877768743899401111689862149024789841685355419509008826578691174916131449938678084802264476513822293236427132118750551596240686192934730492886136730250610359739717631788105327323716753528443707935204108255357653212121610984572530330829860268628469693939997218875935435118889132325908064729645745294260302691186188924902555678736990618533076768640524865741986382135704483432336189154248918637345620803771608177477202725041829548922581679377239055167583443585187604233942895914122081258177732999348108849289443770184229856898605212695856501115762216210060901657026396941888568636801616754039970109202441210664037221049613843897076207433064975049244774310399793232400946486898207331381457024391109400192026660785736257582135562569968601253634081845668315202611382279193974907370195865921539873430101761404327057590717073369389496934914447950732614117068375419171132619632114447463704431094970070736472259004981251672117141562048607857023402372911317444437369844193706207441424638374006060350963057959159153412306108004873756460936512341914712597871955168035999350525307711964562080258589565173046236934922505903990589136102798116664432320044403151506748120067746047361317683145367585964874599697232293337464861847923151195389588536662058852038060668946013475633548399959268365749624828144453067053554351407620405501351426397187772497394610857215947078902186558058183937079627747091699845298194371035983651955805093307189877845076622322165657465096324175420576956139646404457260666129052875599670049121943116327905406167325596168347849236490017436396067457799983022592070745700037731717103789612816788564532075032158435149802267702127504496265108747664176626524102612195226896687489574436402715372991116129362021547536662163341122038463063221766408920595906156241220289857693601906255807011593929672008872695727922325955290667089118664246748431396565714371907563971226803420862466281975742218508464864145501390594982180945729775605913714381134359879504966856771759265315704719535476702497824946778542827577758956795448674236318108029293578454498252279387522968019876281338408574112038707960381415354548466353655929781423842841083829331921853956136304267259958410696673966190918145003808887980611810117111220897902105587059566826438055457791548805418631285454186003102610985625704610330034328564888304945467833675930777428482797087563359603578602649190509286031064163118212060442694081306428410049677891417352598532016500154110087157939130005910797225183548312835366430263375122065156121338085805745204806753500570202577815339002658210481115749830034470781186492541219105248466999613582503702027331292465227907375857970921319354059448347600975259131090046725026570762360207868132806943341449409818600312441984866204808462794426823019044842835202967493408771799115551414749345249223544084474621979716041042770065577813763573175156096790994288113724295071993964087962378073268878908732335777962760754223031604677770711291857573490694488888349650883934211572703472090171178655469627932517951816221892862428028353802794295302818987256634375426732906786930335789059860014900627432328587623523074199250691278639899097512191676965121396641593802981252805085247128760102218402082293545960295072138034043234466159630396103439984460582178138866696314644597900541855607213781757710674139485140607450320068122265026773144399662399874621234311989458563339051438870275113550405741078279418114530212923656615063634932547177767383202660173493493815865126909456443221363202363613359626053022645585560995094018419474788360350022620242423925075211519468781833300492326671306022171385187475359082738404136186292480523933896137006873967502648991410633828851066087598880097737256263923102098902022084704488420953029437763477963819136938524114687821149131290838521722498876352407320561613032976417255125034394045473683105592054481616270119411592790337942105447211909038350941836216017328646286999229820861337647963931642210771529334931910649865636555764701587986277756628968732218506993518247413137097556401701447026171161395077941861230169917088385491329703500470136680684593813771641050050334581994860363141586292446801804473604054150189179903126230488002891738751023741802890754278499409178440627530792601971100275272049168825270405930967970660837281363184964576463148290556372654183829471065563805566557227630216842899519496223506041774226833021850497845256485595671384837661198534871289825387931463468057459267696040234382820641933007486332939759148041813758341699147670701320059415515936251912305209664796318828746753938128277675924057131762670041608354380490982369703880930771897246179187388427480407593946345696792836820742368608388857794307201759290134209438035982675278310937361212436959662974115682061457041318921042792763842943039648762821170337130631015501168305326483803178446880029738873601546771522107107387889677011977067712749418805582034058348076542351719601836297213344219986361702740491820615263969104485259540431248521207416243673615552935977151188747430949236420850774449797443437306361823262594095495001480874885127365274261044862183562993977704020095234106885275161301577840614260377207884932310725536234104204569336073992232992449484968418979450566255577744941885246878133302717768873774637791029116015150336523812119072452376464942962082409727712890602487017132611860565486636848893446588355813401398335618707707761423223435966653035026159528582521306300002263869988215504543368304973612656118845911194400962245942075651242336095583299157673139748004901758828543680444696101225977592117365843496688926434959349230625916208452700025281878529912796994952729501707287772795957064865873508276637083849439778571604112673905764143234957356184361794779744712522519035112588528566870112884239225394658654812180826965525836335522965069260722262915675381831534195621177721184857743089542519159230995170205029123718698657873628249192949591909252114322697270363910205310278493756511234996375689148386925738937344255667117186488629221621713200592594460303605767719544215323611716766357693361432401727551940018282851611690900087306740434414810634821981312113507025916264108123759893207167003270488498514038936405333614676870984225148437213451733624352344856424284940608464601210932605426065411236704058871487905002545089348780153163788796582762860057423098483659260362278030129559569761174633271939892359568878169811246870618992871475028473530087936518497465288754567745318808174653488415281274359319311744167474567207256167249343187528230855436151613192539483973366587673227880304751152997305144288592576705296463385967129292538371446870389579948958214892547972610278422198009404925563262041138876368293947723004550602021911556928603771269316035106635154826683227971087023870875085494873872989775736887211315136968750458943253344062576223774886724722074686593301327253800056377956378709709085220431843501471811047446036819537776339882762292312846708121888699733177777219201416625057132544113926430266022701209766673931839185026931198902586085664849384970828577029589898220280166041383341462561949606445872516480578038317148820421378256804496298915756790110368377886586618860371437447874779299499802952616535528024557763268073880860820706846923892146045309428296332908529062200423103672449994506367942611026707900513366368245554299797873406866330891292460582651095353025572496202530270525882858170328233026364995159731286297366201309629522440707322130245558226221871791912281344130511062936912768134001164844145336091730637676538906795713146521146734068702817625825208913384704750582487557756885226403151861730285087830089353098225229705829639058922425132148875698131664635673669996325538912888150857249861863967099625559239621039014338694132262980353118199059410884118819512217514346922183095561710119094325190117587862791877583748260011048350836803446398947059495925997956012465822226086593322323811661406073969850400931829238801067634442963424822138468954667855515065449149974282606986454889395243898179074004509689914345281113114878808362238669821958229293097664561671750519038021956620381302712873483432239711491549976842677975473752354865802524240243737132474474308629708022871402480183715992438103677214366987144819713199201226689883982385450203440128441554641990199407822797292813778064523159278811827344862160493383470174478020481419531734390449408009811626299374296851664620562681980933790740005741308719164650855649752761349774765042338250376702691498470830560373345942260744628712889193957728946382069905176476591781896529417901198751131604157790529868066903985213226602873616352625874560267193925910510146211189935334439794919854676910306660160601499274421100715079431578052056941191449086375245295341219207710483043566732216445758964190241522969572683995157939952818253686732266530789950978412135770705566499908286442762325116879478110080950803938368608715291794391690562235419682110255001489637527499870894511307300423879860893783829754378127364687621042934081389278001640766396848207469684873098146038559080250462268005598700942254538427849389273686532917886210754223569872815693503979051071113376437816629921277077407872670698060811486547824669916114755519732322474300145663622923918988782014349216527631413646889105819445241956086552565192729520724345579153347555349654404109549399689341403699045695940543421213189872974946483460524908168851706904747759823470493255786347426535408029401922208172496710490637481125720551982937904455408002693549725675046262377814331577977000771516516907449548539434892964209658313840231597028519460917229361490394067236583710620545541988167710512265111949895130137405423855636139452566371438694880268628700105727992702467087116592173249143406885695587059932084527094492703995439607448268816860162875417283990156635717078374895451113622928199137265145537683109222457411789820261812091214286326196274581258945134703307715541754891660783782284913224945932044699402763356567407653563876622712881029332214314721144924445084379017686619456596974251370497384904118012764241242579497155128514471886169841296680576801581098082267086433676767395769083833052463476737818098220049111583091344568721494905046900411435507832354722749449754489620997726900300945927260019959264922282441559290984168681574602854661173721507504236363281460578224614433839356771697129170543797808655089124674015901886569506711324610346415744671104847714589560623714913269765363748450064189114477617157797739556669772876592897126207731612383417579931710302600813911490570518438674819135859692959280161513773703550803602342702308005878703785902495159547196509415752180006077772032772036465179901764078966133263962941196427708148220070840078967485775946514482956663148637939949213030726598076234891457075836244157218833105709107189015912631366562871171186957896867153115072136638954765137863060845660206444816452626258076671411104207322857820154952265447641322769656024712748719038402230883962366222540545607437070615518661225128252243191418141085133893596894637945724769037746617014491125546783200362238940274809835513114120336374331836498583430660266111583180993691077520891787973553121473163174124876535280824757558655526819203385239176298385851443867464347903925676712602747976340848825939474222570162902243728625819713272563389130938316956211240394310580125913884561282426329300623254307647445560415257899280184315246125749236515820620673627068609183856574509617617356390882857061206688410195183845508980621988298354607581413566867135890385738438180068254249877314724207002345153665081441180528278994216851788129868341544609825932527371172555536371224008908962639457838055967381944628185529601588738686011095137676933072950095590580353164858628031861060688900956813247184914458072768077194246672948995162414768586482419018541525172328319254733899815544221386769490598359696523376959639829966507039940949722015220984711892175272293382849256124962693758910774697162294719218823206038094578246176413860257845004330502202960210071850632585543564689109030736169616082452081224539533576451718360550479571220222247906743652488840154500845486189416337282729181317978766316654376609165521767625959156500740910661892924222242628370136978505584047758687692286102264923351151053771517029075988307180242083453137053977971175783982386791781571854744977823860479918182079405530746644698622709308309078044353634619146174174480464269935068108790099923912906961352645125921993990890317428287270692769109034595075997012111799781412447264309784348686525165868820604637177849665189457145081458189286994298712370884867116063337510197004841253995802977413735174057236268436674708257954067656292248975987975636385334470278602919159683520476595122449293776235343454389542361175497819432484378586958964742477567387949724037962960141834922460378760340992694247911653896341529962491937503390706151852366398884155190080475900373495945192675080249412594974815797521820201701944132192595053498564876494894372345397922496967292193241473333511394641829817960838444802414526345753466875851560634580240857185023099613804230253292632187805026424665093687207178452598392258054519344405965033730451217418218882969535421178351701281669180967061923642736183394585357513261573013649147418590485967038159236276882566879727312307941541574275028769011360472959077367007944379041626254959226449297642769749378187341115584516414815834300798853348438160455869310440803393955161011556655579235898380249412503234218845069341403589186936461625601735141448560451690159374713783273137848071814243186586632273231280497849883940589046860461802002253858093165281311444765083251055783496656574857434662334284295107129002697978718202096054093331483087637013343170311915515532991542351486920068868697106647554052228645732415288754613057134671369751383326271394319012519207201792048018521480454309954299455264714338447537480984019073754890018722798912097492860398493208984470196445941043690720137219233327683846059877202802285900964770009355170861209216936999435406458438005849347912129073652649724538818280774136391790818266495955142727707550909661175669024536983290135222257048603103235574114312817879550007425173794642291148355593486322061349013157363939996894750520225838014976811933613125775850434374580174813978147270165455766268493511145123053806534555975932518910123385117939691627567357682674434060968682068900495078219737349289483066683017957163757784638338886147270891611773973669169066748346923907764512312556760964719709354075272067696477619025435276532667426798290839642398114851723934451898007069220628744410014213097788253251104438653813005819516752364745853162552099135990834410088483545296365629720635175317960214706641363037627920541015843414763868773331294242270522405851899719166780618272306091594134723118812393083268527130607841647576930471703046351666353494713783440131201746715205135288878039598386726034434357329019591113427767154528948065825155571323289266654433079523831398815337964781538518389149248007524175122380427340175951400054490008039569832347572964633769541968834854766061568947537414294016747173561210719021062059021772020220691028436293956272937107763344579096271545950144130751684567294453147639894317607427950269711775046120377206593310154380127046151043552250489684225592157469461693218516131373904658374661730225445951185315777144906484350059570680290564911150075615218428884746180558997962885705353370186310239464400701498030175146307138596723511563403080745516357788523179888426909449888695576777435207018627587449561820228810697018712368782046821552367380806908987742926419936714816989994984866561453758231544337414192820552497563731700076785968689110200360687523097928285352558563475740859516484999351465593967529598216021835237804861384215385230549161853323307250535034608392341311496538123875505684932032766912130107135161132308240953072884896696531532738461844548780822697771491594025370725292909057296873674518176068753622294763560506976246363967472598866787543883056008623482427163444014343226875081575429441229914410127765622719879802997743548319707590588615315035178608949880630335801594153159859716899711383721482018433725032172065552469031430482767763285878547781903086240269098640166702057337151847491454239017983129816074596740388793070832167686117711032078722124197982095807516572858488470819522356507560180877758637070168422504849139948668592961604505522295306635262347134502760288353634869922983127477050990514496648613272967138115022792781035544922081248994541143937482384184558105231371801539263135424153795287052690804662852958845889384566925246052030495935668562626245160308072537196458418787646277249094301082000102165636014397821581154520442487399754669000586174934510610320912880635959605641876890552238639113093890448080089951020127346964357399550414381909530742394031831167057434345387694745340082958250294892123822887020573474796622161773053742036465153159889054122815236367031268977399263736142302909545301628960252302625030235925123120473866754260528603791453784690550433525789849271430493310793992066333030647253964211966467452230391406465451986212477651811291524690649388720390642885621422469282014838369294703536532200500393740152722213431529195471499565679214329968149249324647144740361460884964124159515053698849034713354083743983015667944523101187584724220034506928835915156173369172883908510351192505013238017587726953220059710308273515745942373507195317609371387132193077997827178622722546550751275483484978931735277992200885987630330967012256324768200985057085234269116137349191641333175168376939342942421069828848857883178089278084430594473598841633015361768193175490078644865374768503173640007668573043803783317819454629377781110459847208682172786182920502881108107856942763470554878627969812414077757003051158527942902974698698786622614544964588188040385602786538989227957366334927653403301487103973371817140166281408003945015527634411828158328217913786447826870245690412859073807270712236040313156380378074948086129438712720738500958615815286611044916346946837714763001402342176551900420422520502441865442645157033447197887416577339525123152025309815226304078550002398918403361369123114126186120728935916305727781110510852989354493041950078769238347902202802567113018863852653274266829263878999832528369904734249947604003306640861564276232796966176621268334698899391902221421004291623530943662364070972087925565273677001932954560647505599488784653828889973020969015220543836700842270875764558017351933915658033604472119270641822762786286867998970188586920004984710068957534153676423554962748763745303033212878224868996202059760062084987944735873873417476940850268583867409229356818852610559916590153497615115177589581883999637210973573958664561213707960914743924932677052097248459888993793283406142651363434494709376789113037148438275027741985479602671477845664799394721759444105907951691208715776218157055701198296896296019534597423980872628522495348815254743513877613547157718811176023755468179786693971381132266050663783729969170000322178794268611530423314944956728621517271334004098890792294387317278748552245287069025972797726248842126028120913981880710958775816051989042663482312139693388332333259812857940970438002695563940266766165415193074285843675300574594199899102057209729033856872449236261001346910472110857052529421129174657124392555003085145860518118348796803103282437607719604940183441563645740038440185275642349693737022376963221032188358791246168898559923428924636840607451613332679792099545361392949681291019938576516951151846712070065294251715950394880511951337690617530365073065825429446772345762771414249727812547573233500908318849977625282370198400173781929243232824164003446757484740818454346091771947967538592315838719755676574678744005009827626644895188318988616951202236751422462827717497050712509650655772115397862905572335643618970813170720270937400538774735204393047810554981405843776269976390006855651843536835189048176362331998154769523176084567272585203608844647620841253479921064285674677720561078768947587465205372148140673270576866717818232822420474992015125449295821823226618662856142148708805317037171220322718471761617900523894470049726490992534491672783016398526495659754053639070297937454821454168531837541606931374508793002726593102869897331936797886988037755102207287965112535964094593301864423970928519689012901338583040700603906308715131010492647092909896232821733087076899043125599532157125822437007922797070799907151490393501171683234860952835419542559367888182268215314005932047798807182833434148947145499756589772228978677917224247526699540400561945984085692898478318511420934806705603726665982907570062079654347235238993291816113825851654650108413721305885502991483997548001335263684351100420771061820160629522737131489170881007668542916454141667173938635399102356588283841148859354182753769717572348178148274532865475545448525087400819475075586989903737638729956110028946712208010328884573293542336078236601746264989624119245250945499136625991826863354640378212816035965716253684220302555433237515045724068336515923915692006803150720440337356720043131248954899207030473450140964325098916399364294491004049875292612773427504210960407785221685452492341505582140060212269986904249156007629360935879106786536897259016515631697141592872578358091808558974771347266413832705064931665156003722189222764884776012288142588585173259629253615725456793291520801883212403493926351287553859184860379378504437621451396863790311167856122565874479674537148323530042692863786346383156844900787379962954555663375638297888971343099116254046577090501568108302895657904393833081089660345553958040496160155406089351915926629448200665676748112715322074452142310670136016011115549771019342190208292549041993067520758084381388694335668874307824814005463891906837838375430016617464067792385852962962943417387837303396378482345777398009565765207111542711937982211252651168512663579484962133838125876200514572706547477704423661588438639552110922923798347224455553966556319829202960722622437161590969714041784589113699969088211656731811839379997361304870610564751368171321879239904796520561725543532683679166333802705968420912690448585792072507422180163259972657787267804559858118838919946639122812584032710669596916381257215709117218432524510513851080125634840293982537879272014367359180103622768307418041734758400093441893668438175701047681800827787401839437039508188006068099966195401407574436508945423693858791449839317475102832400523466391935298292166446210526220515208669040012754320565352753898920327723132014224887987066167738841113357654198012541744585440816480472296253493827145536170935173325734497116695566060993826108431095531118654766337949656748151356926278335372749576573705668650105136842853720490684395335718782343806846883936362352415782472815211767693408943265112278904063846815222330812293224695004732447903325437286134709003114708144521688796638462278178204243837821838585679904705823570934025475017722714420028371050628542305287591094774300185396891036286742015249674835840643971036109413911353557488684600488430659349647581549775506737582015241775950377706748497391378656577698881895076635297072185105546125431558915723405103509412009700042260752750902354614940449592064162065791685809897778544609557861714491919479970512207000465449872728353290018385538799585525180297001249831902324800182412872630329343792513421765786107992174647777583762359825153901141707581198729232399181988071636932382485881762150752053595635238696550971562142697010845666196836807665637087606545882025120519800818389907929140597682140597320945356402701264409029491683409332977130931823157669491857742374939622400611864457050020169124303914004664270312778857729450779933452722612536439980315237212675411509948321200068681002215108070174021549037474380918182600579990982982152472298535242225060628963078928702951172979456012897656395235079370318554942681339090413884537589558651845998686703824771351156349539392976257660526279285043126421311003739933689205105527906690395905514436361242407237686648529116069216001989653882783049443530315439158944727764591776297909325763522318550420756181874635566637586531533215226398220746278075158916267690832859239478704225201687182660318913040912046121059534768398461435778791275396449350316316325513454627168689470529729776948374633526467144725293260516504846370990663774917796954120927792704496477498973035919662546434576826145720249265406854771620292439122088844110415336653195735732043559151915421946765842917502240709455466143559065145091214570731425988938542388261811737590103833168165162071160859699886748441946620897335183283744446815006440868069606855351879240366999489038479765827989019035482234525020514258000952446040938504842179262574301799478883237927390078121220279106892773339319948455263900383875169197589974621651154667069195225837286473950143462865705369195453684716926072696301657240738764193729385732861912057842531762715425663441016015543202141223644720538641434115577283354414988305841566366877839489821763306408546098564092271195408323142604533678238276029066716946752129577942477104448682459418987654583263035228693816752462793062020558329884433195292215712818089182580010247492415435034056738242009679566152438117231531000373483930119852923887673799412230102492321237384760522892728717597671961414523509023622687301043654143193655113890760252133091025837059354124023811471429261176207917777929106214779589739936313509061032085438430762240869993113540034234544649946961947901627984341236708760559998131462277614957561150265851141926068802928029365467491336543513240517122037623154626673690345922852765237796903493690162971485226742049573417103493839257180795797935396195076821194766796046687584466585346876806895742515666989922823246188543777461448220288516790434262103527130470709521028119633479920633183785520057442527957852331710357925520856184812906136383693061956436376829089413008502113568972179640238735555161748572601559419615521885471045422205919540550997826450984076143898537240292277374085650043032164822806513950532860731275361729345917059562483905651645092283495131441001742960060161517532877002110013819473173097348811466218439808972353621551454824438213729001761562948200249050903043916777409457325700931485923945899974320010960661842042449259827848287178751922576860856437773132933925854468345998443861500237952728068257388411792023391770941482086303219135020100019946642821287071775919595960353063837399819016563294072366432543466460082490421091019805589240481072517146652584659809708207901929726604827732774837741799297183142658440139402734749958437203637802590927266782068369626874002421267569166007834682706851912362527002739525450589519274210299793961011110406413813653370638666460199851676282289298166590455631825526820847386752211480853307443180188857881177712683778219101323098380587409944928314973674252657727091143309436995500512965204676232258375089098504718773960491251184717631579151733633245324415556379252565196045747837985406278484049492332593399044340260338580896705037114773712393475177625862001987257626568367093069542878663018336315543801228341110402594141232335618917003708104758998686395729878893298704017593909029796515406395849644640708549649445866274355878733062349362752175824963806356173582954402473633743062949065600506189738289739467513151648989212407792909149355615028848058867070751182862353852027962354932146500144839573694666611284731174457366255745744503906021150312642099481730264547331233160700305259261989185068539160038559017881897674504157868889253567289398602679594415530015069090285687869544847156866815493949003252215013750630028926389607278549200011183435055132039409975424302973805911570653938373454706777774669079703019432055842783356904088913069018753151292265073179093943333069568695412473793638335217203207162111902515668909054689359648185015720046340355542224651334208783499086477173830547627270837171560942886789657805450481234074827538477723503580892719405053547623299544711609271623424165277372813344039682708201238280462837113897684075806996717945759698516773004380677230412059022810682866291064177901265297950478589919435523831443202900023324757409190186880999869168184321560824301723230808843640246713627140993207651968047600910286182800972660582638781768632068286360041407087685103074866179966848047015965906132295176427028248220115068817215613873940548017648849709352025349946254674642218525947701214394345845812147343632587071313653063261582703641805785718908431248101680830665969971103606069254082375219315753524290003226041183881851080352940606965969677248774165103527940063614241822943164378731127549580766676272250147614563187966633803835104060970995227086293081853572963894557022036491856431935505134833049973940065499410534771158552918281555928155839420121981641209418169830864019817047514043004989213470854517693831669722980130681707100433727826756264003049754021278567965454152725052189363380768388822436497762599659774989009046685459097782126377943277316066167009938154364490904028909236163759321377012394836307456233081519385263778878789145805678900298950487839164250513732686621312252091166294575537384656490295307455102339156398313328223707920468921374403285767406827824542525536873474962998239812961371292892777647126861695251012864135109083192274523157423492593718416665992890915426618103703620216681836779756801757942274832353811461207632107639463184154149211266056742589920742441856950664500654500337630013625531700360915907680799062974007962852442722744460369354043392498559678570432808241788823057948059647471481685169790050067877616025576257339229416774250997546721834320091463782543632193788913991985627679099656756062465411872151916603215957801596145290656594334317371282371015310111195146786295756253685242408652902973140111258586733914463798904727361974957571816863749509281869799388626167208108184056421084691476471359481041237257056972448296745916417419285609961950250389945690908523626261898079295454309833294926160053835665704415445643439276998759649581949805020787267715114657155434170564839738879531117122396328030656219340682295560507345721680884582645917081051482699382680793643260693801351816459619987722071976586140872460282014046270967894241874138292949002345455876882325984529875879442049180064165628328252145196627878575044401635049635800678924702738595934059651584226753497867767154157364463829316130991068393014551080125437522242027822740653143197253479556793697558368323360043017371564472469896397450839950982469756726018143193541124486046536689511784376118530951102851656584214014576003206273845445332161937427881073629412788031883313142360162863061752416770241954321207975076775718714658432449002495993658792462486425480845796305975648861406282986327131284756852830476002086726991449641803932977733377790658218458932344935063567601609792450929285474128124099845723896291235062249447075966183119775614016534410173167483933427450450463047056588984478530987741525893946623898508515892556429317569264186944804725300566355173266044412739238487753764867126951113163701241745003077611503805979417626438406452649729345073103249659139537062764763647598109523211610204322860630346677486871850193765479628255954180990283771878439338887642909214182150209578005037757900143684274247446994061141881224019622019876643159462002238622774010566777348454259867506250306110620883544423720627194510914766253834709384415074918017447986235352524860930028942562059612191464437511243852632913161228300792727154294783158791738064818072961403538221740128155340820818527897750768178298222091215648055758125281466276858582316538734823443089254360283807455331084153804572016717534316524826384893742338496238910755713559158215952125562935037813342290751230154820079806907683661840703587942415349835824344650890185836675081135349610073946226293114206838898897300201045983264818870430376072028744138834076072646964660133557537840945483329546109325512202941140896038389873625281792945698617140573027619280344211587281086387339250108400965927866635136253025012937537912831112531774820515989450780351360205938439924950294323205594555595079241729719102045730073754698214995651750859357081020123847727378491599034233517357295654728286601095475366727355448731490630593780737751943181579726971345968854518917413219654967592627465837895287067618652461984642424262435907216975343739007358302578688458887147421645581953179585184502926846533659424276577002400526510959293137931512612867963834218234734588261740457460362611312081614296429794141835489254904030470807268363859485594723352446530589207642365421479184938358605634312300586997286068423893097517091589482526637188411158816065223416487041632117790832771537800551568658224719872085015804334820610404776760840455354130583417185575220067827204194805878097273900780409738971753084157933926875262532082083651663801970319027817023673003082231173513476576081935905062514919460623729459860221922045709669118106553039414157473510505329468236582514332115539592087290894374942290754039431486055330756978903279309150326960246882572752771475186633894130156273731593261683308757740784190414333570678517431025432489553947727237569851042756274391432251034550461650589867738338023681119682546941476946505471815863334087947090463920109364829675068308031661905836332087533431441568309927252588082337903151343235082461030879018562894637448524096319294454726142355753544472958523894254775278492184246859362851755285547358565035197304032523336482444029407420495922088918653709348475438012700988285541075034264819382857658031151010380838592170729843978076740766276786467785540238569393002532043491191758528278152924426703260128064389863248712989784078947339298036224909737904881307507803495956792550481828755089324629809534011359705534464304516957762201286749607228413106002143812167759580300474072193001027347349181825787961209526985982132260912373184975287807285272366650713741473943370029870341130832797804790323996873153126895868225997254533358103136524680486037833887318103529686877109961145033534157349769558065992513315475917176665069156608076160661291362957099184687192459633395500561751080934441224764865908364476753761562829389545041622138539042831654882753647180277712431071068738690063738769828083527578167759251891691313832901865137521932177753435159697825325919316603436181835302801204220235424214686393671363735830824210301073488299171878017741167339095073005146295347662861096223333113754108609479683663229987915011090264938111759704685055519915827856781956310441263800445683566887781276991514734724245809251651793567360700648156711735307898987154258016847451367254223358333877230231120734373121388784766888577222089681810410504157916613423188360810983956628345448321416734677147100140530700902243677388489745615021592139013476649818383664176468770796339315860563413983123626465299176469830695097342367056363752776411314358799733778952094761194229662066343671705450945351983805817863020169144809747457356544981596633692916018216657326283189504661774970658647077341477812321560050184980456667701711380391948182310053658894671864606273740566665733160934477343721939266088806365150121322907432557071274965796622112768294595718716061771811365785337859290796198245011401647554113012755472875753603721872731925246121652211855036559197241266114895396154347232116578265513209991840667536816734930705601023951355187956510965109460482354621038577018296367269005233673032665334900946513219871008310623021888325202866531126404444775881843730071890319656256855103384450748689575902927231086877672486996406701749001425095773842028784676074834115420424657958833487717399811971269609801720162458444828630053279134915159456193640880676111737711279302933089015132255448123588515387918514261620903489755460426717639420529367998732656002752003529571309750650787564396627632464374606760243490267245232706942030174776988049910647156713255309107167751728696637821662339699391024479198110975590982195239806609007926378681318735299500537145935271206641543962967992722774678731635397874529244037517447672587541159811577961064632005626125115321285148813291693337603538607768898592006488729184336864390637374890702817490299932902508174274321202082689595499407886000149742059187112635110877563034203001383996002558650575490709960743014445078314855251443807942604403502771304921783619453986202776295663318536991661594339834542078304154013831616674778776667670043953269864864398480802012576719925251586707572476005161807124650019889266104833033822572830472557259173418261173695634171271746246685927098448159161941664215852550691640300719003836946958312242527695365107874141636391343509656853296736276783497801595600403536000166897233956713004160753281680182124774726545639879785373936421915667524149638098383568949584519739694349998647874770786420485833797444870789649500868926773223706726740174299136314335157096342584831908898846290232473454195652421269875145597197688175495306611123057099888962498848783746018326112978608504226724990426758134658411032089311510031413834786051594894399418898324436177837112086913279495773742353796941668975820491444856204616827059702014797130740769810259835513130131512988475812531254919756488792559857631241992648472677225268063296657913993426366509738129763568045902757089605959382027554979249659106866174217394177152323752438050396466736770921743962833815327218017954829157845599983674731752181883188791361974417689660342556563059438204126875094757603703121888994348662494985220911599820970456646879474518977589319988816418455830352400628572802846091297709034551257757024565037054515354943674848799435232042291657823426691337436034467072042145462825409619747276994360148964561915209499406909466816646479467754601534989262290187389484505105596728721086640873415315909819555771273204992608074881763110181976878898787630273576930797439334823082808629394055150416598534412540924301417673989405674878486629281310224491158381627961581173855636003963480208963444883202379757032527976750717026362872052589267818354025082281986461589073978668551010499789318801773946366903584662571409951324208764379320129911554366472211219235676353113280985178739537315715859481524617359915410391524517970317152000535699579052928342896517154367332784430180277612190757364329634161564821647462762976466068627555928153332913863262284186298430967885077018823273240478293730523518520614275014620065656738724863704658094691447687142815340201350204902936126422335927505695862523615112872198811925203805053202249349990902329947942540462800132862250719185481595379051419492949040495100519110022736560811149975890668103777241881408082782714556592738555481041416496809775530212600125233988099699591605340291772008932857710770042011226270762030274906351459386570969077601796670862159816081528866934944742016694985347534344227327957115976487684193243419889944417582677986683557421402658612186448787967809975731536261288450763449022979661237008729887613454937864138706661273943975041805531907913946020117785026063378723210881606106328337768455415938468002538932634819865414303977382474284860045536281161151549871030996285625922763590945592152919648109216972223326094817667063882438668388195945624359331223035459640405539637826054177627712253461957781761786556341827209007825010276849420567571040912908100354238057979290784724907669759266620751260815683192128982452888291525888336690121208999999728089029841265101244660034177658444175830725864191926937533512800638804168815805825763551395565479424543124761098808742495934497386223702511840483735683542498954325951982852444196555688344811537045316343275514014310074888483231547700192341836581072099820735067313634058695197267978544572147070584560709727425316141314984314886035271394148924621479529388934792228237494942212804099843646043802690576418588933976880137505062440241446578423769866140367662720918045977497112366165947504826018803376146796643254382701213813245275277433220831876752861542065640129393469135793153945053262819693853601850924361792133360720887239215495256341090135048839017531476762488498935404717192096654494799001883052114856506342603667389768716295096539865976671898880072255735191173203664396040336836185809534438729963942048434375457439609826589977398098871001133006917025473023833376784720035231344325025357871822414910659747643514514018102681812214095650293296004474863815597953512672048149613572990562922746823172702736971390504294677140571225019243149434011303826822295886799229265465681711601548227361297473942599491285870337307230583563801079758719113067983802208846458092592569748143562704030974127630546617738919860170870883578048268953358146324870368069748312973647399666638171176244430854392718360536482823156467247575784273473194435287260336086473335453520993416054111061354370564257781434006945162750860086112051359245218496709589964724603583018756403717605399817993051669295056925069903716211616378685389785400306902101875624881890615854293143330447662075765820505858243960344795693572255351439239576988010833457680094960421341141560741125406130924783861035085944071849045218708329244664584844496153847791023515138272340210807684890519331084915658387095797831424696184615522574605312054647137381469159019385852576664398697130133315960564334754936089604390097849979037462504058323975015735141397463660912997905599030624797449852147258057502683519977537711554312391327388401206181652380720663915977853983318069632503668014020686680421317200853884022093756353892949007927954454825485562541714693478027383889228018342028380706567252782223061705959395262920556035599397437869869110251426745216091006447382340656976086196047159650157028155656913143823599794697435422556008685004811329227683292947605345451519781731623076123310681675488221228008740018339342463411064996299828439922552201217726339985667599636254481265748374995191111340683222636594044589614168348852885018260086517215449319936386394755463667820088588213848139302858947517968380241438040988043646161515765967571720869139767190138281193499105479467756579255839168451125329461766018349564836150086548830437636812830350478164194187712230431961156296174579682112845904870845145466530683585060328979558126517086875946483526038382529905705829009299468082224581484605561721383611989836275374903670976279633085016939428346398020910833787330467096012318806138439939598749585017381837350757430883900186764591743187034980367083148329220503091826712478640475384651022955691755044193373082144937090665911399488753855893396293716052882388346374169980360204594676955123839885039532972684128224296109071778358160098489212525383834167136397169532246397363288201017007792807690406333711518263039721791209768394859425074237028313050685256867475924179135506243051982714005403864441461466376572239776714424841995122425500108997525787912492388420992306433306264168166609464508294686342906045879592198321051632051512766810498804019678793521311446859960583356072990881153552622701414994933392370535866747495021209239351754469350956212880921058891864594973264992031448107139686048866000016630450802652838600361136828801550346275650268483257214412412918226040609239427044563399906957873755178643227082001786291376564206167125470383922480069346326174580435181424601115720872236148704400474786095888455144122607458551554092084013176495198198898541399915254719944016865991720558593306458185162361477753543619895205699153569606490947558107853508986590812968600299100381112498683176994517507835984669113587599249172193630914094020828894156555170227029290404628546112648143211098896064164763545912041716873704729319808161877410007530098723937787745956086931785619817186062127249824554796421045912056850902458166509020753511161992873393104874046077645366839791597613226848099364932703069522128736794647375099433907366210769101524051862650613757446310082637965146998929949995916547888662275938054885700331962869505509297737865258165867478001714074792556919165453393974454506414831349533213336835730001016035513495543301257463525523201320147602947916724175900960205415561704365447287412307058901793352852281553391405117107467882078354767504153668169499816213400990221293226053679733586107342672605075377195127290828002397775869061014637587684853319391805606410989187733588259574221053798687844133696995203416147420677035114072855195489330253150819832990476337302092682728098035010183587593643015125102027172133833300854168052575426781241519304091741700909015421584751949930195497971041161941784090938413378757466531062484904687587829252854076002751288958140779590158025596569446105920225724106491221328917044411985905627168026382645451252815710969384497293447676340623872399472317680186666915131863242029190994035909134194086242830119995280532523698792392630942504301807570983035443362320268889166084169076347725578847386007777264180002186487412225314492848667495373721812493835965761079356537524217221871859393057580750488283257884569722825635298956521383966192302747543340193134402483742328759347335065129133546509592803672725039158995385630249470212450063131382975182024037180081104972541644945951917549313060150682400714165639208735478625255211793744696603120399241571369001601643236549807846391056236486317242806870511727333990176592781907340544262670104757147373073488298097782698644664073275676314491249636421439944772242947259942893618844264591753869694698511329321652356455655942750639439655137484684397643504217616282182906462342149226778371426197438167170392890436714959438520903952851545917612307056740994737216427440466785661368858664295035744931164187784022891443191163670045980936792600142589831265737078303923227558361329732422090131426228553938199000151986800236284236255308374787276692193972036706789245540242325605184107297540063746206412455889990554331496304799093580889332242194073796658052769384784102573543659752935279619817630210426714934419435423385923749181445313214603373091258289286837139960460061792597065775612113109946715338402298686877685669572335355052012560045127815145771242418288406467148696667218456213917560784530812422196015105570245671858734245627243720672122862687348722738452877088843766658582361836014138136368699055782276413549199730537667885607198072056409247066934455957664419101471635795047841035044546216791985512952815283221544028281172343838730068366552961973308292007045963062152056258647367293864292650075547336190113166427896680916550184582211033899790743263496336712056438333665295174334767480114242535842590274609705994800671248820264338012505198496468225631904731815744368620105669178765423760427577642233251096975288163769971904546658581319004352168085971660048196411154623643215890658800265009581451690488908757274528376221372069286994451230570577994579709283307961655425962119445814927074373705759767611781635587723568969659226083639952226639282239974130228136929740681551367519435218208183248590559933203303561730685160721023629007354685389106730783456267202935422666860341605034644723272716145504670065922748998071950745330016280316562025034111601784602683400678730882101653522456420566089316318840481871237672064928037967954590910784719797520407566313685679948581984815508776488075508300102393103714274543032041585561179182799436538319368532653457435232500344520673046193794944941636894053461640113064742113906596652582884724469600988778336187549984582131530711209096847088281928944231372987424705522974784896410631558688000098384442972251382519587445479085944850578532095435032022165428345755250455173263894313977694078798873705894474570073057764533684818888689140127790752783545436684794990869331345165010691906164351668164658417206735251207602405706722933321149183994221526486805385721449755290238866967390170089770385876986560211592254426867571554700677800574877112867624923719183887333558041390839867969665270345951840612030374740450877022540268933731721344467829696943007530560681936574089914234578169447425360214876199383914753308399646316615539314378754094596619687037930921993315863751207607869169550657289755626155484506200558802175142124093975481831688417580821076664381282605972292538216632371229423011209594954654807650869912523554323620514701527493228820550051838253618669652735730490888862521777480153779827078501355459711102896354907503880852113024537951447714863420517240717615612932542159518337272369625806433849700826033281740061344285137796446057741358607048608502460829596683947519435052871243891767039110033917028179704923385126999753898107660874756497310351809654601273006473080308075414595864377764952401963613294197467676764791690591638733480956768391081846873576152540214014158737402872919648342058818435125056200504954345557231898809336422525342417559167785932855830009842130097336210673838410685558954119504248884425760363704002678198944344325710542560117465818583934608354785267728843693670225244255818533737621649515330391837177540789688052977239216843264617729170533967296060043070489553785127297513922594945538903891957688396174888427232130236285910679186680427742072050311969484411895653661808650886702593100001133342906773595513944866003624854971163565002524923487822221630705404784740787328758109708450614309016465208064381157854009474532327862148172716067685734427819166916602674003760580514375708638301869121080606092438058990641095916441154230982995513587788301959288708863813635979387929220843656687726586772725020716956029653607757919555401929331642309566177913415910269207553473958597930477393822659533748747381621301066298849455043835727978116365937350404968915482284131433361841822200691973674623806221023367121692186307464479109788314840787111276358028289412703761923588953163196448783792989964936856239095912879856668128483255803154837307372168114250188843493517191052391411517797077825113131861971948689412861988675286051259985807888684381172928464193126069182526690082929611660056774860105965944243536025113024979866242322251291595227180494897237167540792985139252082738560215751310746977348331617893754147423167942399143373883295075801770186203127754100189695454911386938122107781483430443571655586182455151847746615246883019906277597378137915049574533046357286780840716323692316673684244074153338660202835734985960986836824982471598063813915415022966512728365888709125241205158021280535941344476377492986742795809780437681702037383422056920815902656307965991026418401958704939027131579381900081963667778391796913772437172473433890582947498759957350046362669352962438399480827888430079353011728091840902908572262456733673730879797228335583833281195885662687812930269215231884524136397894352222404279705047544003787736377963032597503907813265580864444564468111621918723910337143016701795371413088623658482183541867749320223541725793598809618071591327365860632960982143101850645063063470778303707065536131086967404805793001797330169832657223727278577470875684456351200444795415499288918522048630779315373947642420457435152454688430048615740668115818522235618092850161256581495186484602959811852532322492528088186585758602927157510822918941690358706443079151962808899301041670806402836396080415382696877588669638422439069599051139804443012193996037825642860271499593848258734170879766148964740367005195151323477108393345347324193699602815822976112658994707234905272079262771894670481259913919145444296815437257180287824460093241038106734635620105507727989022349956861849342723738610294745076279437734046854101700748679633733119463444069570541185343335534532743827067264289353380565446131786962544193495720792609622146784689575757918930602300802692080191900912745497738558358051073506500381143302062637102429488068335461613081399395262144940145048838138406452842505400644491679882217387816821930910476609840054643800162194170057903620305326627259839029809494832494856450881624722087266736355367062208160433229796345307407598916436611976970882262902278638770694997979416267086815932485787319893866312333156514748951854758933036897440863119490170261507682171791252833177779580509413141321172312935408836337587850244183307132573375326319738056737722335376962765414772468066317396067544476569204394070829933057912998941963493116419877823620869131638497212272329276473431762229906647739785580779371527375402755156466151526582246606478740517780933255479084455137429336339966888883662192113990914447758402125371654923354690619438798215237913667598558641415061152172772772050878121250329498837120054330203898079742799332157406891404411565680302514632901246935531538158892619542966238104866785269242434144629095012783167420476807004566228965889544284120101301866245678131367996911753742611133267388619742481508956138638374938609239238983971570609459013363834238781326415510847299914806636643805071902228810214267130826433983331814255258060211998754180897348567093789909139191878396512536589111236350281122741412713288636221829183919070372225673747822090346567900364321068913163510263792412255284825941485337111012068919417399375993435582863164153566593127952920574945980297580996193184446395338296084689567265719840784321385734238149634047482969645296510626105162789761896094697237561701869620659348178347539525959956979741258803379387736790926597399403776936842289909139177196318012204695038179280433198215382951602626940213134631744745428038989023672438152568753673292289046024592433670277090752349215094350139567333881049837847966208829388254244257844972101088891996222993187505984398653880253747402544994188292936515020753704172947843623490872038367500440984472997940371230042031173272886695469403671492470716871903343853895186216790617925689104526559433814591854638403173853426881870921325412319105519583312047458093876629612388135580016201460567777720102466545043622969102247744828068270774655698493494227726349534726067731803824534800699039371380551027117439924513993439559705724115223503431482938973231214808386524682883740511012817720272395441538463509953637979057359962596930941632382800355868753207520041327638261561038140939902079012029768630004123573850001684897823888891517699800685857485215804907089565014300571546231532125248273720899330881440738101226705223415811844435040205439292764372672048612621492348139455600585334762403670535083446020401607959626954208710144226999097839595341286633774158421909951900857574575985131391196491905413275362318725335917199033820037696827875002661957275610782387505737083260205509941709943492359252166208827059400601525015441643347173374070636147699100454265599242062677361774471948939666557343202109171872722423786201476808944315104859840227391586507390186000241247449729014134408778599379896492238029769713383913004945669056044400520892838123201118116452349527276999347765745666136344867691623746706573021758029262686258692334030562054651306206799772905162140161821331169110614055712249678604235355799305610729117343372504962926313391513194887675062038834031788686058650684707418015662469069018897504581144100789160950947929488188492625708745915001176362627035246383403914729408077927478062720490308671428262925796335195149639832854574524294179003110561933424889634907042021040990554213660693780807331123602706061104639871470221882996203068382719127317064625861815871575524604182764000192535986899089825193451272190855667848893665900019814291886556533537305199432751446911459993981252283246615093333468184838941243504516292173058511244970551003190755263002937846142651320819721694072664142587877147173530249288019922520752048318687356187597492941394060866763934960835567425211576756950301024150964267701863782763031456918438799275410525990258999767183536158524652003016299652325451732270079143902344144798557889673544699464821084068901191331788461151933535581619433853127095191126665264150880189976402229957155507044256979184308152670215419440343011705930715326515533648050355284768764382149272508627902607474253776237309630859145335573401960231949046212974050320800947590797293978289008272267614551187227372788619087626836616571783051983168218420821590934013060776083214810796995398035619780692717299280476724233728185731602757805623497790809343717580242337827919960425293721003947737562159731729607197072016035954948798511179178777881726959703465430241181425604501725404595558795126568876059570681198181696656903032935088502999244813251975263089239865507073495036406189309816655988666756661157076796851672966662741457953824324367692800574658758269633673104263249143306965388308246516919039521578395666740100131025999505742838354183043367419316189030442991601286668345852341381053307301883960634701741212510212301424201923990727212821807491992476294019101541480197235415193020772731462430507209629011868348220140964992950762464606459888601041979385724168684188702608090805276118898873691054313187901944746288772222913282102425943558109095183009939515508983539865401774979344818180345758846881162047293658133866054634132086885261760627092684042956816278018104877768842960200202792275731269520027002959425240140426607625491801826493837675922195599229996418096784947170448258016512130331411160011695340332800332772622386347056148557339941943576522342590413081892409533491825828571717484864269484119426761608116391310104843392945835377351966704568911679909233226517760184279410105879228107618372620847791245112024136771717251508617995289440729915077436758680593945822388774520134284395124950658975503777879300048794723180402967756903965185220252378800723789795018290207652378073517051093047900260644865952548774491026347967953031611026004445437894417416686252862583808415092838726147917487804857980527577888819392783242319822024758477334753235539312343843688010976866282335491878607705109523807685512752029219550812279872620290580729237850854777527252487775454663373624587606479098114878480998024848084908261593556004632763297699601176875118674492198393995985246889745016661942976584406294123420354439472436512599858458829457703287814335400043431238916905648927963768694495943623634747524892336487404430646135386841884456258311500742097480685009895536789968136902670434653141035847806930920856081359916737763076250521181791789500588145597965214454724166637313144011612377752917737011466266795519343550309939689999184642226873278716655518214716304489894702458448457075012032858560359180972535148942127131300321182521525830221921043375400441073887488314041313887729876639974338341611796966101176741619263820360294810023096798699783573662351078267972924829982601574755138701441598965622903819535657529069455310456862205464882381678523801145552093408332958493544552783406328656280933540412494212276094973764911976348931125174464934212735571506131629453416392988552035553803708837442595327352643984667227973230006394012304425786416324748835875392430528635279583293887648813478932347444235112274205875501136209570498755769760839205875256589913795696145079218214036562803148168823107553455085931143974544873796050185913659669701217012782257734647107704665264332687865821966964379967656833955311397099055335169595027346099036555574775650722989151029050734340891640623413502425689468372307861195858782550563628549154122077010588468670320126625537756139188371716575924000327268599852709320782228433456179358962359520108287129948568969338226609308613260977522823884871889617424877028218241314903487392319022055347391722726188326562112670572624025833112370401640979415827242221157409175711307691250882258487245990989092137647269741030195264617461942803329887500307534750056066494043693616903362787515054045362239165649194268017689063580462067480714934028059673039929294758399826471152716467074724185822676134526419640809373854798127120325215265897550558436431032194467320595521697638239641851275778599497138888837727964863793209136385414280295535623258390394909149324526298443478115690302894015392599751980877928839677844003956119159111820489978922349923282890154410633942138702051067155981589109843072058832861871013149759153095763197309089454427569803534857474016342040717865921703190551354098428366830198085199024723195814961357915314362695622214271000584912838874192679654920415440906802439145121527982372004290100360904208742360440985455285055604500671826520981133150127508912330863727898702376394670617493780375319255090894082973160159208301063740046319528488152560013861972884651959291590482765206869032453780302679468907747912568538295330732732321207654269556160006383192745552992314131060787329229475875886685322936487535249599757238811565287462107632427697875170047625350993258464821017743021141596500938128962426992884948070176494444159431441578947508527000789886418664622057209486027849179745220260065152380584639513417664191478029869118507546523664275141954305549332378503432466946987580879281978204432469048813494813222747400077071676366980433741759046809324727108130049301176184322667923898786829437125661503958520094490891421439557158630989827599109193551313437783577391068384990844492259850123384941676092104350036288231032252084491220778260129644265598132057230123184252630100615807274710409467578427854419222585362084433646835922463582540464503349610040720892265091364240586746586008078411007203387560325959135819474038532226144383262343189889032846028628796521999891077925482825469443617354429650188625607161988839412996625883643770955872037633188018947275899964448365667165886315855943709466612052163590814293858192133968169538302807404176601528812533917995031179908652198389168384605050370199926725990239642806977624233158973106358101310053235972333830878896694712839300617618520815529497182202146123772545548825492822552207011161673248658597553669423237320748830705265860865209255322413554235917587273361994829245600708349066683262164826413553407521992284473183620324227801647433271390704283748372800264981788831778387825549812648895636766181499353381449913927361479516584023787043376606524114226741472218699034595157121511206890912971704960251313666563913907451810411333098354786959970153480189924098878687589219867902517367937141597949206556339055881277183782468170524298208612419634289941082292499048033937315639133969721035285547354798388218862226175108298174367739213224317041165772105119868334452544085502369096558586559295080207774211739676426833941008744660104686046060166269237646760423200067298632828737212000890815084112689381886706336068279466948765498437972929276297116222280346804172858628558657273314303115329952462705829163363488950929029850319083092716811353584345380576543637898188994448916984854500426244728760222266412515761840587750314015929780967761639433356550451099462950818174712082728521096803501850095488794119074418267960196313988966424399033748885004349707179119675255485712666397067006639341464090602199016576715163544341829456238938473796539578052262868056600153476534858677079078030790120832363615451369775763848175532942269434405675944545427171125510122364855045566245241912355562507606568054316529470216973281206108814706734695232383146365410077636249209159387008025119254683806251312509709589840023445739545806952884511740002417533266980929585796054261814554476359722710833982453563220586965081439984751101815196591623636303161118219619914955744490258487677472883458496886403505582896257412476953180199173804811553356734829657831318540540061691707191745031600322357610450691796323788712087622465413617433087019630592802774439088683064801658963343838256752845023105766839959122387954038429331739589845942793077438439134561029917828996765537276082208994862815363766707852607673458787896137677992143810947042715719946025463175564977386526716174857837887777185399396498713936201446116019785527772134728030056349789192488540735735858615241745343324003829052251398637587635032318526702862430999201573855699231703688344088430601656132871678120297203100552516936285753424267635721842630054128081423990712601439322514258966630203225638699230464369723479159327743446838314079155614805397465955013447498014703195452410058860045524249873539542102431058448759841297216663098918890978042705973975504986290518357721623832962107746222605084123228471957467443786513365475387024559461709849712410821957246266958999517924790120635523461834445029020694529460731455641215289165510082874437917148231925897199553702258548270055364288296723140791830861917102319889161455977497953759797835717370800187648092547722966524280406529676265583155092221006470646889503295259771006044517946131585574987515055273381243987877090645029346167528192236994285944211453799321773839528856288281978446405913711925164160563677198835666873241923361867259339933605099593882841035526917548926198507163162902370954185111623310169527307573569112881368934557355143859528840500947991296147633617083354712750177580292010978840840415576145860965993152864073032820368735878979517933252724189934797714359694072624971850582238833068437727232153278027263514588284968224980243220062368162950650697497035592869807988745843842242561449495572402415291115991541965289948708157964187019847354993520956063219039034297326204849302469615522110691772921970535154354973589823809939349607996455441188410911664719218817763921152896657953963044291295410761037906130683517522768686023323633025311678962984357803134321971984861835809074095226851746898735588156150576840355025555231022860974077219021404591797596331884092593777711644752384394814924987783560232437390222142382694808278429867869858605957968387001085870553218117942924623439458656993615486769447579491705003401082231049040896529014803491451770866585646070258911647085224910282291792459322444344985613548339167154181583312620785276129747330756807912041141797425919411558417779210330624237579353138534613712776774665949401919215310599011883017981495281178673674865724836987241584122238234806634666792726568554075131446647372298555594280022720868153554394886785379946999508052162147642239049969740470130212455328489640512560130954171114476200218773463851383247819873544071036036983416671926058096094031899221248956100602799181264588026953319731114108231770510423706761777947240194678086424704047660163737961968059775143036985082271890719695635337854845588436818931118527923665335846619219421753762589121063655379339378875882037160800381907216119128760102792997515946729610107737314987033671088075675019117551546400716218178079752052567643978314730694679372787002098273825854348090490884644164879407284866500648030161158045515148346372411870283212885625699788665096291382724953463239234223037725605448499991755431664956415854330992544541417743113259479130588511874864561109132667031131595687591043982700770545269004847680266532034591595888442118601876860832966467368903203534260093727808562899482676273967794836225291894318878392708820953028350379690507322790578072157660663615028100264974115006666958079903904468131880450478527485801796204546678978457443550869852996425556579752089660427763776295657733345589581392209423880433576729496481947240043969074141296277624813577996619468132450367708381653745877466906011030643061446022190233095250404839875430721210960143809428360596118611097629277506282013248593289846102175732654724573501875485008729637328373534447201533345278261350368650649260003024379045253166449852960742687355524048790260539152170604579623867981088898449920686434971867274184665730800794145261426501245337331094759664011858406955110406279239773418452426842169203818083974814532422740387013433678382913839979503745068512334222875421392964665136755464609938717676040240736321897059285043414222690456537934870919005368433589158938055887531491848659684993448521017989476012875115673953464612695599305869625719932481664702805882182135623878281019503944050612175585952512888091512766205001777110194636845580492779204777515051898876206530575029903800925305067209831550969153302521539889771074392736297510877401885298759051377394056915429606862102327215913130562608653204887045141333931450742517088895339903167617915440661987255268974792919256864819384652343283619028275577845702526040138310227712341196400504927177880671482966245491926696498551579790356285002257492273992297941216476972075547565890352955302390226297596350468780824708424851983067068930245037125388168045178221673861477693537505608345315893609031385846271562040178703330404302161196098458037299412161210856285427047174491710302633406496503572791830383313198677863409710283084102276402453738780492041924955620780077492264850731984585586653699612458866838012589408430905847628315775402377035298017324712213609560265787267297262378130348379895125219015106266589824588447693964993826197921796237005964463110106403558742095636849796779230720556335874337441440481914215188325538881959752217473178560298432520300379782622075506500657016299272796412505239679959215741692739404751911249553001638442962962411161009038146910827037428304723258820800030360878399835728712602965225075938961723989215231674404028646968581498509206526946309189954647359905807442941067231365961579808371503254345067882995294763491359736903647423943131464662624411180968014498033457314434089774044059935874715247624815556719174190861661241137417879227826962094090191504078976550464837557981192168273544892826592850374799588154173590292115932717683526427367621006767556724685790759753883218769059743533005904922590274369974546632141745377217310304069846444098945111522434512162585052347597170836349300463576400826528818164278401914925393717409557834080450839395908844615167970483047193724149127135688812443054503580965302530790538444306552328288188112511216117848072798376701238165761213120608302092412281695615460670057526744732920461356568623756126807732416139293488051790238847450210396875190845297413135151848601310336646988498233210675801180826922928951895948010831517314392351932202058103432730461488634096912548481294546969470930477526000361704921787047218155323592614188386650150956872682398591689995889389921635697528031268898122543791905609164588111246788770570781880153141704650960779007389355587353710959308605791297590651770479983849065690881433420313522632540925375148581556690446286894775424406088825463046877895420425572905414108689089700021316627123533027078266837346897500579264279471164060202694548160149788858671000274593900599910318529501699940675008484524250189417455291157686464650345116615816850495382749200660151170942710732273033803373421360741616010724874238917398253735178448005185841480965991379592861752627585994896065195669172101642884279959386620503788778333163303009391816959762343052307248896256282604563173308297291949593308724925670941677527669637370249499660691385028576005031036392945449895747244776301621856371747537693004854245576125912924439875324312271515502415115812974950825909801158075114149661362311260299788975534590113008895938139556647134979047853729541313642489306305775760033963923721333514400834742689402664163662292605752727108394394806983220854442145567349984081500816376022568218411846431865370300643326229346655595796711746206524482219330201911715692444581124240639651842147136599529483076200798945373238519541381046714483811095037139237023164530918644161899913214764986603066381985047290831304107421238917935061198502494561812118925142509848642725860216831467219535246113976360532382878311788402667167366272910211389733934973232091855491188682499122682612725151365850093714244905467512567234461524451240735833701738047763699639502431805227878737889061181761622828428868243461433164217687839472340587431833260183249984384393530060031588432600384275179874542295044228980206425729622283441806964405020400783831365355281292650933963383984106818258675629364225790149194216726452094608817054008492292156402944266731062755106352983003007779015192664024477959896473363882680517047478446118316214304296938497531788169283151485868559143540909240668970291092763452690238581284347424026127627993286012829515224942476058169136496296734068459071231276956096858389029840696596617768611101890192827702706435761062799665974964793014091480726185509914921084592751955073949172369229952263304861802336338297626163533528607757259700329279338448260287574270265464354367718403767983360087786659095506201044848708734354329695172535747753881715133678856842038694855217011144880926307992771133205508454003142919335304533528451254157534533159180848443275971414288351540549183101432043090912882006855758423679080972457449723787297030845227502327327219403568152955222394350383411708087848972415187715124556117273623799121856633426822287471825031652315816091687530537589987283370807775566199138158992320878786207275688909710964708256808424990463803692640841652428345512268471417818185799507906172726351746406926623569716287131232998032563108180925880659481475749644907715146448599021340210530434401440975808069518870689573953974329785734360252065380231710152403491347897168294012803846081168323043944461293160403161520777512336641195715415799875343979712293434277667108886013419278797110218829615895147363807570435414406561265686505616329536399886676527868227985061919588086610218100807808000124639409022467274683289393943179922343499272966936570948114654160627784424667089054454119261341426587183923056349755688919001474838399051109713083028583673739823806134948823365995681128303223788991962950517654641841424987862147354843061831688244974421444074655870388734209770079882617887541370256836150500330876906779880665155297708541556523706696057472072281733608264253600016416310717127030626067321183538653705424889969984352636194346186142882942728897743066933557596688001057069497947157380153669673260103913539053443783323177999505231188794378766440426079773981793092229829709008227100204689093884688559718835656152933244666664349482104628329147337633922628985220863842132253458832346323416698095719617605986965624639207070546202797893661270576228151581508869314051966107462702272541045147379915620889372323420015100855299687261046106849377439243476105077851777527251544270545987307624455104260581681977491267697006421897338491958896429278032154455179247324309260814824201092163005164634300007177267579565925383852233276825376823587521119182012726287790616932409640694895826569394255188135889561050935436792920346890469920068413422362449882546259054084506677689930687058123525910191220769757400937022706668857480285234531620019370019338526986981334083054938231453211502315490330610473092581634621251423600159335308351542582099430307877445668891493814514130796669148510542993592692608033486734772802048760562454576972506759612790238518369458246831206483962971948809526482492587702814239812336929009868530601246574941300737290293496490341144157988006781919437563210170969377792212680248980308605233004302419990422246681592792495685738218717135521681042371566806357989318751098455421821294121146001667021868779034015957276750687570031591922249426206472816548163972206734070777750225106930711715576603026595681789492715830925451225778667757071547425677418579885088152105836690061485983115971774907349767247320391723190915533426811807108706237738604706490250052945695665186127430572116070054733385312769487699159848205292566815942502360459702270496011080047638392621290016882839086166703502658167368266501145863746230065156839040522886865389124902907675183815348222951169002435033581233078847330032920224759189974136899811157459636582808333241947695707154058136280534368091793170408349987153725316102065894941379690430638102990580346873001142782217443735749069685607446988849981131974442762230055015208753614623346513334151968879112921316442140261169733358083904639644507814439260091452749706069721257503675096851076475522949588752822794843903642231306327358582090881175886524237895347322867427337330011580909881139790398939290782049644204851444546403342526514864799575685680887324438927760440349940452956853094279229884648993614384526741923524483029126792813246513227149300923124561814380097551245768336466395680201209150030001572246558129283196196989375429923582206644057602218631003038433779636812234729540335511801537495670472308685401720713266558648238549757225882469337582978448616112970870442009923478987747219005593414928434288898816845448163912194083983230931004898034267084774274649028458772230435759674496668678405980176987322229055457432961995878894595843615309424478119953440238034908413569873250048578678269205243188173396449377806050011917566607405276517863603963914087246470663995381906994274632883990056952564420654251238458513346921786321287159382619489016492202152388738477181363403623140254718133921293962288915223340087727941895410722487124948647205634209251901556016561331541000960756060280526389370318803503723246988140622302585634777604875930647086782963575693556894595355288838994781127776019674628673249961638888374299456099308183579106016849482106586971233116981037271435446716644381919063187759815488397757986060459942110767589652839854911517679385757747339577171156358515347617645200293456851099953374210142121459389709720019342457027466973471781858900350825589895498267338725454160276690892081930653972653051845214928391718185542860590998372000476748466027710542106902149067155247576689920382560390251854025885161070562667189076017837377423947984480037815265137600676246850840276637384358531397593969138919263995625198265273869949868948577329205731692462007213562924998716521318630008385797402352425120136538707387937610738789681255411594029614158284933408968491730439356787971495428649666141578374056115477584984571902379494718849058796545065575033380875328790826684637271971501567323902668874289568909967204280567135327217511385399624251726895690977490780371533934294438583401376055698638230333542307116211273597451859573383422666824468504749608478336775776759337454932439069807171744458077068109494586119428745362148887471166683572200934842075384454525531110795696714475648452068834742660629124705676903818559544115662443549895786793185076566091484024004637627649454296830577322555550533514768593746854666176142905303170593201177566769550413439624193142227656742450071037977769389040891088893949993169557097556691641912213564712446449032034922334406385269003281518694654219176292984187657390662669529994653233185960166890265803119549349710403009632492691924733406180157175931253176591891503969063293360187805709471436743966727293278308514484918737827454019650085014425427881854753234927186456003637352198350586946214940120513104967826098844782815975804213599765176264314288648047995464883570049288539260080651286452018525292813932206267217735520756082792651139747326433289527302380558184045078971710173804493033787084468184852416363083738081337154349365582802027351518589159262230829701314335555404284124634228685763796957517276211118987611581192428471515982860474591906646297042003080861981482608885003282605289978199379652570532447671264094788870792094206083858847640242166249553849439791779672424524197350196494131275954002313264286869096063715743451691651126264604696904146065124569202895418908027405704752508635408026971983163149788122196676067698524941534960349893230248377774751583268575347947545347069280430381700641695871466866794095746320603927007386988152003612315202819740101292672465746951541455419376733159816799795933777418196680131937094139217258984911161007048573760287446049440756205519430694303884789288113517343755896655644502447870743419977024323627325528779597364031698546233935705644081746513673585936654460618065547131828724752537410072298844137603245183998975256607805654528060591129652672538807930371836653061381056574568347040616207149161165223903716572486059610531337548098770231010718166040770701531034995711100164064508626948583062494039816796935960472986254470557332358147231045207182093016167117635053873509424462650437274973152553023591375187197611871492794915785117586597605650183972244348851429104534801213012812393723231933139558542809125663221672669342808627072667228308196032982419966925569148004941309319840397867457482182869435703556699263546351676976182794831664514494706738941345937174682582482304998980740971120769204864064965355918319015755496480468727917236414087877396254708870737228964214420007458569400901795084885393315231058102926659279622789984038666654964588811597812163712954465486852871351115502276760228593263218926815238292448219187422479140583022226570690546193888973502970997212604918062766879622046307454689912572387160836502850776191145318448756040941465208778130783441913709492764963904258353455777685931166508430816734278578485141824343580847884297300459034844381490075340560859482534147487894565164714961112481891608631795541062323630945836054388544898514436082791318558140687930739312294365860021702677123108480962327496782193562381424017143767051131975207508941884851044816930788711505558646453562365466675990400889560905543808014986072684506056237573186193677575534540032948775467170840852618403363144735932857896731469741387317868453273348904293937899477761382250989891578093370531102888279743568253315552795909731031137990850403028665876185712961813801059176517389051386462368165555122871275373374907439247361805906588514766436478383260565656384109371857483369476826240467985695869491012335491570294234139742512654996541167495714785012313138228296214042029835558383578676655804362479697030937326159363566404270587487338123074084810647858591179322818411656456392015365556881871684638787587362020785800318967332692973758349188746633913582634987706986287465208611521094779802782330290783757986699211697683288574709913229503871723254635567685347491548554180672389551037102557759153500509555763581170597756671664501408079023909937282923972534327727727439931651172193904646120736021514047798705376138794657717705991183424693913191179041510673649827423886402052093842053870528468817946960411018293760920644885884260195092983769183837614599627019532886656526520934456523791985089721602623463509069887111505671347428803192856127776303794888085460531957133050194848516107587864274791471425723686538198219138959058478536270429094345971151603056398941715107661509617864499807850470327278026324853358958637302649579092275187677622434382823533751607926394271866047674073976730600488649406539231700422066563783251810325947296340616152611267031676186325237425924379909394131079492630497706676544205964811063836588850108437961693108286458137018304438701199308768248578812248824242528133329903546073205141531525499220158661661121995738005773902835491876988585874571959195668236265645949983432281666909106326887552609222031002280697543463194685632965811177852001671323245386477980513478136367415594090182427884007779222181910947832763239872530431058416997419418891853608803965524407698216431606568355694499438359396224032790307332466113260187181234343636473125586021682733871729840072268424053437878386345755730012117286221200773735015532637131386595142254870324444771225788161110558498355002595857901604898083858530848966156253341817741237704788170733587202749853270013987244464178397671610937928595145299565161152063186832223315424716976430576822436014275190340770845692377057859370281600370090824084643857126710618105833549807118243260224228105370113237177793859056008477699478205314387561553868167179762049328822766052443941629574817129771011627442313558460467684412987656900910421335275133811088212128042489750744126518635382047330756873724306899035152302906942370450675571594443731591427682741908030730469844712474626173207562317251989068967110639589052295772853750535171458291060160267575965901753632526524567417507428958656550360760530263133356811699344236255040150787236820200197886373186621393604044721222240024780628518725304031855638517609055514103293811668447710853830754901156632402164547624109275836166281827264674830123814417074807074886028497928315331769961247598075958395550850514736271999899602927508842049497494711903153763876675864395358160774343269593819945012159428584377369736728047751103749269365419870996560795996494936122172719733642558316931248304533550610054049719271011984270982700370809154214287994159299706869454028764436094883153827348682991863612408319985790678762063173387754941238053159580098976602847134006289186366564430642027689898946849247663867840200670443828116476460310103885947538761248978280414844491547387752860269433603365486540811297307469519840494001314000808332713103836174698088025090194553209018752170344828421039208454193247234574875530016140906550896253693404052958711047167757357467581623689827553792009127228447574742679640643363247812247323507530622558406597373882860607895464065185875868731437310024671584732799252904648392255515119501143448345582178921462717928668756646246435175936957550699981030938550588384070906869532897263634374447196296708251018788049226747070819482296408087688497255841453727099862401962443563709941000837224455735108597861596765079460169720953308447838545304356241442120792196007083151187518310939998739729950502523425640823766716625375120590340097669632668327990343109360258886472188380273048423290525598925478794274694685053175377574036349768706756007284762887445028871424434285828673680251329388526497759680709517328325854686137094166683450238027062805839923803370157076564872029148362101857323600858740921201219243543039723881386557267325648837643444202247724542302359316423692081768003332290771736177294905268822492530339507597251869044879169375342155113168604352100218087417477680416732831979991014395960877994165832400934495606356254576011283237870836870071667301817433696473782212067594418847760098011898466866184542326734600494740342178473999476551678035128716837253196665988501637639558544739942429782664785440055201315734474570411873998884860716013233168571994335908952484673753451533483928282759797351336470732465633428168043639592219094761493430142672247709577831344214221518956736081345370643750607187699548508081063044546166615406947964711070853123539093111443324134342917000160133416487286455619005592495514820565097965391237906529582559346682975701647369711268130133087763797226666408265359940505920580876596645247747999922935746585818671073800967421052264804529492217010514350003120348556382109169990373113180340308878208043795679319950195821796967608611029195877009938740942412313233664188035239241035177123071477779886015823730390954396778178470993911470664872876768809936875201100611936601285579997049647388553618332815561812096880082178365169926907200888954882150219904200986567408211064515037310482711633892512899240059931970769922750886992341409963100722652649422278201578182878987453749703076204238075782549481533623297801310081281594043304548138889672629214317495904593624143372440490931097730762783979442377558795751452121119295834549799182372713821532838747970724138382080820189148551959732878073522918323410122368645600516442883271698659584855610033250473840570197282038326840144727645712867190137338150638903624737082922396780850161556495281396980821846590345275907203982254494038778703261201705577094620242691615924978296012679494319652817615206600221228340851270252423771387904867759873358978536961025118379663257811357847523099847002713708507534323977304870896848413148017735273627917708929951712805279094005010750078423561737199825988145211465079407345427533865806941713201793211957895622820259227911430198313007924702308512531264482304484862375764135775732755344797808466560774855360575213654621177955627162154761976037743355543952406598347589379205577850165194521783378909777606233475572497580486086908857782959078180592662061525672780467837116677845064436847632994646155018250785644332925255431959911703173000898048788607431195586101261161244101245889827797552086236230198036530194623846902989522670920043755246951546944300400354372841485189446792395818905911727949757451747138761771930319043922341885690427026247479917104318095895039531820483276779734195608120614096744164928145408569086300010672749175564940992637995667510413065163967875923258289882288576545139628035689523267985353332874825352875674706603485756044138679503893047829652090198845689220596146340979372664023399268192554396714047209080134135009733704532541934260098196639318745224049263592511467309328366831165077882823165635798635629319428161373798699923952038157409287485001237256854544147556878381854639975521158009913656521556131956229793885672748896129379063347910822934477279134447206840418117930102633468671300682313638956366703730499956081832610158954421745502574492270782384944135388315958773232585550815235037546630135816828297848710097745893271406588413492307695565763598458963203829508851874390630576886457529853529891555204169602188984493829230734281619307173656966349695883280817413042051374129896284375141122802028842408779171806866644562599574686689351233569935100861989680039496583205084976877149102867786268718988351715867417898214320818014733784155802975801787624009408098921508442753840779381511548219151225539730769211771174116625383597375190972434761204576804568118699919473061866602374864584197308314921176338604031696608026689156995114706904409862294493448882326371674148157773943152576591820568349288059746393343876404215874594734223927833011493534940534293216136178640360291537393013955280345973978582417739148363099663555093543682266616926140286394087770820292035251127407557600767354696568255315526296799631878009470537677792982093030005688199755414336139836944206310726699393538772110829336946759666964982679159769546119478722404492435351187111419232437065603453643419426639797273749067303570806420017202018708658319966464714481791856832296219499045226573498030629012151470514939345271877017170145979806581169583874660395061963054991843557350415092638125758239077342509768975456636862908286173544369089004330327294857587969162240970517611552828077244042004025941578455041112650542963069685466277766340959859441779405769670203211075737553159852603676853878930920712946651919094334724835159369967545770172249615730180804618386542796082968790866220639107398603636011117897022651409245945162669858450120716736389501615856884468963775266309587004344037249349715398257253063166557973371472517594455779339622669200618156488013558313763251113613446962575217235816170952063239417267410939012952406520703188708639269571875289080954928040946271629670524356077014179614267147310295587340887185282788008429553797617824408948202360657584402064390697130149970521704667527496491349619231565878829829523162377608450143767398386244126853449237331206611555236541398601691575465433854283312973959337199553557771481343735433902796587762123893412664984594761872315018631416170687714549819360074036196215781458390576709098970707633360286641794288140193423046297289322092334659530118135200263097363720183828654304701236517052116433237680046651631422676074324823747815061934677045542891760414280337730822604415752413280061511487240978202776456998477192211141054684373467048064096650795355378443896857456766790221630931445668586114153965090593163337564666748533653887412123080175969773429033517774523413413689249812661906142653042202310968580470704185256924327645880154596338161734983375899294579740398275740424104905807567226248737515962802273519228032628440883138946128434591457614173030263703854151809626168749122525933164328819580629799952611984961153616439057911250336880415600160306178028496042745616259888416376098387331939908784930059108766853540899827163936667596961443176075970769274681821715149354910916382033249818042393599660457555530798448457138546950685128451288823160729892859435685984841524096258816919313431596059841326605044398656861859618202734841731861343803852786899554554756363060658642352333054466333040857175113656437503889843525616600878118280020294571392472800883268720614091152956063138406657159602954045969613645913644400062724112135452302295223496169496740589298742356961068141501052325729681493005833424089961602264513913821136828327879984478530420334005776574095230569987374965687324876249842323511966248255794579323816143224314251716088479804676932905167028132424265033286614325708539344744523302567412360505226905774219389229038043943360991157090242301498347511268285413536406353835905212104392397940693904074159453382890340585040119727049244413861703621519061456159709108396287790793792710865001921638299192842490256803571867723592330027694389847484344345152871299400636947905218403315246350573931803780294059447370295693055273885312592110877576418064840113595633290580073043227656172211487611749962480003402071942284594616683473280169290632842032227475902816438516492679720660388882979268674530001674615793517112654880652587993299565675707329347960861772184414897296607969860456997248729103170943034100402417082926250395435960149763843409622186771212560174361357932672086156377067183758430135014896424848734783483857827903943630156812088888866580130872876464996794699923914826313372134696838378690314488539787918711256197369362980972854915704136975455051852176903299202989764116149955208148306072907540117624887374987291795580189609416020362704719919229201873261113461596559122422007467764353578835638663525083322842686816662187366310896484875200621161490357538506611208789442199675956989923445846310644950129338802194861494564381141233904150824514522311430539428027088496809888456148999182201102811336475526202784299797004666690877633671442812050770645100552612105355619740829142655975619861940859376559954960091110838548082311310899967826208140909009384270001891119391274764456926516786345990242583985701857644671609560750506168767014531875017135720161613767803834564222974929032201507288866683261064933339791078530032870403542687929647746535596421456720771854623763386483471133091625995450404178025808373845115305797872434457898703419954949291831636346752874113604005468638754191723706673959501771992165712938486880551337887964102318922633590159856062517143715497533214185689459456211022836258188469887537247946351669212908353244383764546621650922168411143226797456615734816400914494910252541660327025774944741976273198602194520029489748525149736491605091921569458631226188726377215552943939494916565382901008408988024671393750734758672041568349226259075639544697961159382262348476972551967902133519817694525782194676122842142460600263520532732466545164352936226679947879468385666906724225465099315467011288314434179134990939515727072730311351580486705288748794389280192712024532438887036229494682456930332944328831645522982530412026369618203150028392757005127293184801863313474671501173371579794385151006669074788137435068321442250664591130922591507479015657169563646605593810201447862569394633747495285744974087906241978782893003537390721443631822668154467985778064708437782437007583025589049893819367947830286402030108468085401733029536774899482358342228431711201638886007192114568105016438409674662441754023355112256043054549372839253558929276506953498800772872878368885970085579080278236817481572734983865690614854737473564176421281782667301955108322745649981471439414818757116974130280818527891749430570615116268310216156100039240675941677429701554403720351981217015106580374743676340124047284523290876498712775640006011286793332212107701001880920429523176473554401035020996748083345547668446939994442239483530756605851810694475796898528009028222948443033275228023231611012634450743561971327333324730195836530073442272806901370792220417221600041891896666304378967483406112529518401818623810502785600280877458080584384391387193554637978711464498126386974731202305872077384731368059834998755592910827410019587454826871997265886161922060365852317544769139049245967505685530645119573883526987429219281313184643301183945509062446441274571929595695257760318437999630378084453732212346521371247834145951378761922212526620703910418407633547403652465613552225056714945258938593664117275735802589898530960285452557287722769887862626800570986221581301943254535100961405746819587184641164524380916382260407359816208002044301532326225601611518380225442646837598295967485734151666686834288558272754164479855218813172045781850060725516416039058255077600772846852251159959961906301635063313164426910130934071710498798885812069641140696165217781336192193053272443357753188371562774721005359636915153001542521174791080670005070517389632525920978155043672152384754099837706800537055800406469816368069844510237735882640245533433542546132544440075932413584063098025089264185489811289986585033803654496590547162352729251646554359552150564375576272872689726231077347379314252781584771344438653320374894122909111809121789917882562590942580198467267238487763063320972184687311485380095853628484315246341852533463285288380634058466767607289625345010891956199762374594540904163365667616483269940846070529404107044313750475930442317126373718048465206745524683025719564228586168360680414353346489516907590257703119312950974206992245983510390503027431558555718774971662275021939998866324050352719997010131918398307577173515754854753772955167896530921178065846076028994167581183237669400191329179438297684603307950226751458349665850104907236936421036828637534363153848606518279636307216841934221088685828604551016487827796514341582044476500432540134251758066291488412181174645479212286490075228762331627423903965301345644969242007927190100356506088544319789231874048810569175085237141893816318360926238471458359381923452306649343796844468859860474722952636488638711630117408796298186977267260269705424938970735526838491804857728993165184912365259912125900120298161512761291439439579090089087534614107967368413138809400262687050252846415305192355213635267583206543484254872605534421363022653664069102881381943778808206262785550517797019216254938084265727475836046362001642915591600168007055735370438039939179229843828717722539582722362397635969850577747620714606825092732972503365185000259161666732179025209532646674862535605435577689594708136590381383408554606102412651824355375106463073257245235406682307403994485104459208476376615173225073617875396174825805464372470245935435535424678884830673073250801353282086663050472894448906449604837517526444288159541591520375527667898924467201138812034993304373125572828827861658773800346530909944119998031894593902659231894427579076212519963112775809892143726265484611695808079497649746691062612720055803515273655413953192664181911986975998272367019908249592279926247979773711478858676018581195279826832460430811088805135002443052115352950731742011031401822537722399748295617261405760502056878129242347558190790246795793097110189988925008313328753665685813882817772666567653158281369880798867780467673725374906368797285571284622786542114827317407663767204031123094691452568940054615563410809104559938014858637854331702169146280656933713584431077768829757767312471722732592348556697895174761935453706555816090673744605154819008092819210447912520174754370935614802643650566352847614654677423761665935394319216563657003123217625528432542837777746452210724750566240879735467787883213383606258631557199898855973965032552114768196382664184145314684230467027982466140471791943045875382540532497395280347051910202019763694472454046959941233704185494109455485925876094869661825040118283784393380701391116350376727284443178893512318600037161451949714772010838275868908701146167468324903680208608707662005318337870101072446786430950945163070506846582392691038613066354443593107841889969748234017791699695484745803762816994915361250852084327382794707617611275396737864411181865288377892291845897833129849214742449587623133854606184572779812451872816473743957985090109910571835916900927461341115844778843115165611386353260816909277072475230151181105030337384351242602411407224039568858621935730495333717829858742893425491902125401313504130194993743818009011675090408374177748813675480843573867422965394266572869944798468390658965138752263069664306365214004903663944881546035167875320928851927616556824930762532614653734262868824538112749758733242289711021903430354522676184257801681603284722954955596825275118744784712112154121508739720386486683048140905352919599983517429746919996794615308573707667465117183457039293822701014063547915303991034975854162472876159203800711898422191020747213384653174748787183429645791115727146538889765254435498058953818473420427156218159497299113154398475978523259522758428288247874648437623187443619703415597856182804919983437454071235594895906629670671001673102694669397425825335337183985446330326144271393957373067333092724632262285853977437109284660359363468334308257459147332180469242809340003298731426871825820259788048077595942299620657048464880935056379434726117614225877928544529306428645093883809801370125413374428822736759541069248629176319381183991956462387414201987188659086319196071033963499274690675657709202710753451264107876714251613480700605608412734737176705302557220251385257671517783691252944122175430092944300505724117128686559253134831524630210557276865733908386387974842098770620454981915890198358514628663631479639972469391198219917745865293926468747103252990675153447441680043057555734592539968721551828214295447513945702901876830331638483017745683084159822123931029379488014505246497241893220078628548514867158710750485153234055755003036147897529117825771619711246959948766928738287512029517110989643749049287409280689752913142806960458309974676962370800945524628125617093797161549411885692171934362163964225244832741625013223660917849769867826523148305048494069262280152173966308377207690214689312879032456260942698420485610094610338190107848889703164708576863030090169994647555977150830841964578631236211872318687163343913235192648828516491795602476530679158621037048665094631668620934774306913622484364634594658057817078576945412274305916904302482983062702168129441499100177290826574100763696589802349548135206528964502564616039468163484841919034315193396174558997597784743612077312502813445214611353131084827776604900875923224758415540746824345050160213169764630671771384818242434358947535404769744984118025566493886304003936101969361036758411738714094650946609307142958201554530404351213558636239352854515333701645058000511637116274492901298194635904758875838577209456109567654514030168656343889943713096369185844034635564534494220017650232492630613771527597575900227609545601606852607104909133027043533030863302791559608833775828393281689067661187203283595251571438286516117909130302963880102933036788493648213878821797778045864202724941821764392112657780591947087388678978406824133381729557542194273507589212122616277013240497117522677256478407628123483600701134292976973462291235455229215891558858353160736014223101092040791482524090040751032783542954971889820599187148137304774998746927037268491597668324398530923298705803576847465528830050929988579360823763747704865406170793494939048204033970612214795121891563436146834592834550619577709526194789968727570398119077270826105487012951050399693171998679803588273451599284547864521191977748464429982551976466021024356072238174427212362203047012616749177329883763861044115790617580669439243861193767050718595285708637209174086977396006884446461939970833752062217801185550484206355632416735119182413823059555276765416836594062134013308982755348823057736987710687350970953386715197325983647909829268888854767585398845327456146036354440255856313449410160124751532755003534448361090060262367930864495018832717720415882932467231022793771009285736550649465163379600383824351326659115745006877797795049459904293519408714354270823810331983055852654569327004484348952652270782784277739678256521982069594571871466146122448076543474459651557110295821325803897469131634118557279323227229907036372151870609485604448900538078648220014950585438583171818890327140789777676556035617209825108241850437229092728676241409421228228458499648518947571210492467475809710348659282828457085014753197214100836450397085870579200004273330261285052167537928945056071017075588103571122513481128737207209430785683481443003760680142456850318491175723600534278503974506421021550148197315452456011854526016001937712348998829523395618391402580540456819984672704296983654419374270036177148715550044802095234050196861615145534336439611542432207188064915571689200217589411343990251018289181226768065705386939596038045371026125578808513815777952526495738405869835331850460636183787975616191431879828288555222077507265655960618027867344906743476731935557631473845651836681698400379575679648541601687460307808446530062814231227749687827836102354695243543694877531167086752000331290503572899583333056178950188884917790692937781663087563916927310832199819703852253420918171332485866279565181670839793485012356093148074876101221632679747764883944332235611074870973315119779207213113353311571184478169225994413444990588551642117051900963124421219392280660296457777980471811023388550758510608883522419981191643524407913685476939156757259434548179816293293499108227469316714447498014901239269520324316530455075080972964887730847850247683734225953017831130809614585449621913209696999674384981357708526325820819270884970141592968088447184676988606049694441686012187423358264699593477198734022272485969600933909574030036656982875595199035719236007178780888053985852957977494076700108912589121159093721795790394621135368380003593254903236722233203400935398607791044287350350914063588615286613320883429047045329587613470889651359717193538922577183818967112788672039703323573802944407231388426057853125786617668469990827643679357087263024866717673011886339748492777788446354982010138846795215075807920867781066761586778401831858156388521678737510186866754804026872006612907332861705927074879856041782628636227353852053109330198065796845613224754200861087429170088716450577798044953845477935327299963948439010792225421330404380412603659720162131947716193615583915896881214096714127286669114370995013773254412757869642491785723053364357253067377250260429417463063929379345004890060938556878417462956171742706130980323340299734064672002026278087330127252060990519065606584079622753294028357875564979563132138726621544104435072154729769268345636724319141836002298805813605811157036243028323603119752193721720698668685686982005172628548768175409080078305520074459987721121903810551389442424555659822095303909669932417002097465180773664508347446734783994272106183017871338085309101762407154023083162794632763587044068291563262299519677539675250099315991604607525926979327094907910657821870040332274387023647813576254675293286561878834385985546506941102876629825097685683971210302103174531164560110823633892950516789234069021822415079721508610233274537817625778854409098810433346831991656018136361165599921234487957692786861323853015386172519502562044010327665871690960890461445478733444926855872881452586557997679645279911264544908576058558577913866112599235902289262495883275023481626998013902019323439565089221703513311498977270448457378065881399652489815369222495631756425774213585387091529095231818071068395968671772214931145687022070476377238108550679015369477922459524191887654945374939030503541543699403822724741840627339352257045981289776533009057616066354939941409328421772740502960208252065186571067329428403292630263002873958179019347647150203211848566813284396301683315015943163949488910122812508292255946874229641091479901473695114699201527737743178019672665236859842364262937669160426661523324044100510682667320324201606483147012519979766547676782817743513517696974188119325641541285561322800699241060930860848556771006372604424852380360590148105916485978830395460247256496093217624051411531557190622824828084005625321413410532785743210498361845804833681590360283483383326784980494723370791207778127767621163854731864165567111996102523275783682974756083031532504172185959129340604513493258783001744528536163577326117459273970243339867081834528886982356131118226151416408908432733214887419835420346951359504668090359264229856716627754879367438359505934393189292201655790314455762313552035950203508712925543568062743771660317992333537597268129656363848049685477912777537164096119620922485286167078988431209940486861094580407527432918769623844681425033325955883138401654550376323755540995546408016713052093226318026068399321491414448858916650566129814470022169517295970885476965713365375589595665094428575870254322435072601428889505565747581265202330442399027341779741560098859225402412690769965579283827165638929535902237276778216148413398546923859783049935535490587731620009482456964650996779195127586621815910936852081512606534972511344379161779438893832937869901978816089566405271341896555559985449664344448629805407990154595625616852491655266557742043123589176972182619239176305158541602313151586510924555237582959473579352973546875138892027138379937298109402600267884456263640403622646153407540536530064464761839360380194895755029587150038577480832860176601919622978788317603157048645407345350142539925518962046242350956671068653649590484145089652354628955715651203741334677965710674240718369435287935934872427972718999982874927290638650034609814337258127247979861555801399319282625464955983533087395661074082925120081164330996268896223129898831456818064074566255336671990131159658753324148487351841684925057987688580567333074704591602936591122348637098396248064162487744960687210260228221500891427589515732060614827379169934550232583301137560526543337319608929665032021007068958716880843454868902273123013110537631044244667948280792101018355561754377547388546571044136868654336481539370620170873565463992293805229174791206191903540180899820590382478819226440589895543470887835670678394952808585925781153028075927495209418022941196377249121578159699774962387027206345739079671766592584918503940706055855115501648646214046369446506075633455421765736213468181271525980634736861183067226210870731799509846480160206077650311106435885987598805658690221734106906446122998654424048967688181045562041631555147646565547133366899467085435693004878546426688480606541146983255167129480414415770016983257421912593386290732118937465744487373538172873529631921295045546256386026127461353727948970009639639199486277097859415077782400133723275303903910692501065404708364206554982762737571701897661716478342268635131799092082486051172045624810270632181764308442217188921968069203149494035024770452666338064657156835275869191874295351998668820675890506807617703939562186898981427051258003775823682909182912692709448339098652289619429845559782036638172854810427972407612093157356629697706156960989342454943460069882701412954243253365988221357358759855434299162684623639124776521632691602520137891189245617705731447802639787348171383942694455521325603856921996628321723435966609138530418209801689933556646917763713765346180636232293364660935148032696416508005259040743801142924418190328330334137328462436848472076346229460441705893589124433364850870778116405213102271466488495895458115347516488829931767232183880922245420020825109331596891634167387869329082017813632656037807608507470189890071148291460966862351976116917765115015934087910255995105929043021153419927849043877280294362679894402955631655321748436297829505378638017027277697439072712197859946175537027208584607311770103785478160886360337727043295357418678516047296237057518778640036729560557252593141619286712611360880791714304377551532366473741533079685753081721155073292251880576388022983302924879164559497170910675300399712808520480210572560741915225245905085944614427446353769214985195427786381115068356112094895105316161613257159015167258430014339555381376854553938349081288281537744234460493155635655129995796668354010071322765550985040611661879598072058133936315535963279272041938295938898591534821203102023161421506638937750728000127706586015610396926204107450522483828677420348122815754128806334167415559364166718487350303727255785813221206532877263777410922265327602561900020790249270081464983140143147919705873578125506316262369059309736219204317679678672834617506837559233628429437698492087616383360688075051024907377168635168233966483936895579954030461032253828594459339992013344988026731234763587712047111569710799401770540791001212322229371268839301863649663726769197822216573333632272672416248568009787561200217901011626212087320807501629579708621662496265862247577222563096864432615995655916888172830689229864289945150918312783281146991876970711000897632621347335530897579109592013265867917649839417889549487923506602500227197673618653278556007779802754602742899621983523610396884613733024572921034481786104542704909372213102831128734402041825203495518892301851526114501909842931916099295799975995652030688469063586866032002057308911153724395868265594239328255008491373057498423948813667875091678114539363442055213190140266201964874473180282668694714972595448569432319809784212006682375417056219229165915336226002055969548751590328395706971266391117595739562527450841810721852226577337162219472083920962101735253671558448189058402708508610506355908267478005933647654601724698132367279797616190218370430760614270453744374514142904728431354236677595031506250275874167950185389708265400567799887384157156327462318234513648100589147153929615916728097940468487451682828238615227568964666209597911410704456019256938328618024382377027295120044360806984998777890639017500403610375448678826164875928739862261770552973313927799024940723245354446259126482727994596892029404479369976711765046366140971507352546077949416004172005491083050492374925233019016582028037845537726960058139020379499114042050334331579089704451284732179671947376643547838862070927805758600377074156608932812280703235663936715128252233662082169564693651913369422660145572705743842222601329549902409423007175836742083719639391528858913321628105537221348805671836765162324616591445957729275193623987272980572216970961113688715551122993515932068465919680664167225886792114251868743487134589201106875839667176412832731925587249602325110048064604181471684778490595775778202991122453945490773989339340008885280886988847746425676777951361197844619519899121404322430024717416982833613238324890506311032194657639791936604930158972064329537136405141330121049175255331149876661818040031770494300527225156587122227433788431357442540988998541709286295785202767768986373882852927168328826537070743322573522999194097464597603056708520368976054043524922517700255617343521315285226064023829337956986221876976989081299304326749387256433883236941960243526277892611134379997556166814352353569661168783117895849427334562089267502745105207056278125028255184100178786839275461491123094112564086632299845661683919259175214962786031220588305508148491708043596917207335565124295796626712867147932239187155491724801822477588653213453769977189836418224124947807994203175293841566509743433093441543805591571628665465509736020861941335217054941757115955683501643925142314772035751302342096935730617071832271650859871468481484786245412655592243011814546261318135412728943586830949828935189696114395776766171885579570639120809753932993129527527107488684915220428428257355286807319978120189677714563097000640925407482439080013483500070765841060496571342427162285958916935949579096801150201376197810114312483828380389390471122315548374441503404702493819994764924258487643650387884111864486620908706074325317768702184899135128055004432178678296893531691902590759602169640885645086313497833794168018077503952760361664556358316524339016237695153457419245823501693284551829206278442729549832770784427805226452425141985178088440062230213537892217266534065303201157629612460638289655708576318306852031679880333134768526466771472292907484158082676293098512026813058250158802819445778808144680369822795593154525147762188717867036686170813534881220665779492330961273991885239602361226909913937026178123572197606147200023762564967908833591920552983592414182436838273058453078219908472313321241645436713246681289952284426932769675600196290981102704082554980533550801378675698800499811545713838860251675632525963736296785965554398873502910219186068753655943037773429137527556972684291330784590134625451716283714995753290054456564632561018590645134589817744604422377596237185233503139702814155757894540910222485993171936621540082135834789615458607115218519109246378908712288798749929462416956038876214381587547444228977724827624839944712693851871500378161495681181016716753491686044017869910484445799720734732835928898300098937872315399996118716813935822779730810630374217901050382802226694938291529467033544805401674740979783959753040580438187717906718759714271990490779650795867278334330700287685932121586615240239768311275488005667536743881284016957017286932333977722513612395115213432986408374395557170336367946914133471522068010759134711097328108345318262139586517506796034225456733086512108351404712630004405464456545119001257916667804064453206240994215428339328997929586041432241624872158441236076077466161849097009308964625919608224176872635773475682728698029375793837421396084944116332310788969156169467456548055262372229760844469815461322515010740654693119723931937573286267231352654890375793637559181577202834767476213253773567046859646276951373041859539024053308227699696931281687281284821860087028214339010171557703036886587530882129719650548205881634603688025766119769312836096037973442570693311688737399238095666376159976180764324811385340594541557096806250409635809115718165532289251999790016043316152310183737690265964979415103305695688191774352445449747316183580946554662223774125606246282411000381055199823662734421871841755108909770440644515664997273211821822093176651469733923514846112487341668200850798812195184522531481899699603880229630999081412073606737862408312470277769662251706481541842358355110219238537944229038154108784237367723802616919945166257833466708185596158897016538800930438101644887582951123682103314701429888320719932528663409408023334132067028805695483815441875117448626497286587990100733632150860532508503241031942797874061939061852648904166001387104165745815322649555757707725197366076402950740876639377148964764132745881082978191465399010851136416268258276279655762485302166710600010318710923572254484096485531302903125014084418320678306227170530891047466607227891881469612143903510395393969943954668215937097143486590800284629531816722488284484961813633070640205377135209055349829788183945373190406163370474889339232159909860843122076525751797121318242447550159308896893208830704866824763084749573385697201628109444137480883342144575636819261911860295238202594730467151279720391692099883120547901445498162771608991043841447732764159279036419800599494802617445595413598313631809711146252792147379443277870707085945311884059467005225055768633278550678361113782564656848642282037786662648965289038250356212320550952531417262485695093613574112673782358213778313183255338579233181157114079134038939814551251375043614203440651055362244894102764411590501511595915112913300726239278530733902501292220849456626081611553946773058275625538904564138565803325505960087903562671534834170926368583728365841168905922267292146600832235480582488835463924014489402159864261305886838910468971718680484154872135981300192906582362264427115941899652998067171702389497215037222558207591857913251723355396393789510623092607243001157462484888527127944153265795714076972913162434484207661163468236242234412110946287923353988995193022143223625597128695245310092394776697353296670674910700474465839275372350719646793443212383704928817914127713831865447054573877711779018677436971469967054911674779888764063697356736075683778486174843391405885973195735677679291194032445696447924124139642922210842751665867826658818633205506036376813292833891786495464057242497060419835136657766205757549975232258178300726806949035850054815193174164575045865097747265874855353242740244835739589281483265246017344558713553459760783574478213167887790789744304258430138050924269267788810797692547434509875965616096164564579320164377970092031328157116466044710804301938355670223485697727682814335626299605133855951776318770768687971317137415105411665641096313859610107652884554349904985749075207113922287788489166754064952121857890360796798540141405843447904871086956948079337623578777467884230705557697566022947406308965050465029426677668317118967796058711859016185470879082851394080631030668019638315584162053423611944112898086530956425998346576027536626220072473534608085599729398939137582538570003256048705768691079471372108577317272239747079322218632834908164754263106393416339785822151944315677859992626201093792225419740653541254550702136727286852882102496449985958390459347310605326894460521913695423677758658376778935616923809165632624885763212688794094955872148175688063396349287594311535924875127711065124029205151377074639412196514144620629475979886206811540713598952767255463267465346502189794495681701164888517469122900998772535840147547817528416996491424380845802353283285956896436570363488786070683672818805656705591983768875804639477244082723716588085966852766722070038328928307606956831532766092643497332691823342604972282884135097418623884100922032071124730424143836405181718134942220541630558868635289743291213886612314854498925665509321334508042362950786563778208363942396510378586977260907540234281795495154594667949692607144492586527234810279682860721890986823061854025959381790781088123463527398442086910142843704222816505707420801604233883670851518890895293033023412896777927965514158183103631583627928694326287599688809767674313945510898346516678835424255860771810294732640509599299141334750948854433831532337911088746653519636436442650823271619510442423817188903504762364297256909449303602340873244558879371008092033039346035831399153918606792730250831760581742721007371005380177910796960352570006885048620617265972245858101249193524643214132864648053064510784770784065264322095558015103755011854910141744555293209480733970127021474196504168398486419005583642547482361407165102740381143419816653517169856824894081757621214115533767212446655822482943663123898006456424358951041279867048921812589127917387245357947044856799723368461862842363209266677140039585382703109936436541525809893564152345741376430302418544993774704821877987072059728132193944611584726252411957473066898152805616673757769281346682181117253587377889167385067616182488711591146023161398300411391030576306868221338534160817740957295911417068066871758730260405392352445019967387552001293436754606687084443291675162074409882864638327415287531256469382198253054951084162850987567170221236302768394146707749023080456015711527623669557988621753938918446926290035982843504559692025979933137505530816923747870690568684444323986229906666733750168332331130307310548851150621938758928026787728096078372723470379628560761352802972071245181298900054138949774334280233381486513527461901821762317997837442806669855846927137053505239919397342887877088890931762563950240013505173647949080735290798240420651605470914431029720567758182308161741840670615522865803600733707540525747879120212776496977425761727979871798129904376982241184515227195895344507787992818623786220444170119175792679526753187315863567490075086172444241001893869793623678293027864730950020559283435889971082263680047383287001360036511796140428595721619778998697643767150350738407861393857818868277474835761272129331771041595573743625981156481811693059135024460227126824443748904407102193415449048667108748507878716138391017417265556668147119374241901322697235337571132740468539525058686326691336878443061972388673947679112841226447930363436261846016220976791562552034310310038678957678048593634596191868678603218912848844059226338742160880483687071258424571954938669879463689115766324637476663759283495426986497346149408284622043984494210046924325772378644610646437563313702559776562331959550825792116975276209251308276972264312496721379256661449315163871372319081477353846440611143160706744947908930704948434397676276588880511300063566354209291240499794019878604716165986624308520528132451879674203400856904928778793843581598403567381703416100387641011513646068695230879212317002432795498260587615218180749503566628530749317056270277720969920487715780647116412835547546012085905488953150936571654444887781030586914097740922367515272855368238776364309336876813921586516375231690107717756488767216078509415913834805829462439682095511150471390700360543768780228192985425043094653201472108352205560947618788711245833575848890409652341610776670376996707075729919233159893309868150931745539632954717856517099021132325218571040512187863367044313825975571461614739572586926554857058302130561151010716384274607995159852557213306918146746364649905552254403151277658385089355036473895306031712449403461814716370793187348048664717628111864312201311173455449419950307276083034592220591893751388762027126018054349635273388587900583127028878931829863662226911468641264388487587048609887687685850535724190026521386781496680086687295549897947299490926987292752397593064411657109263462274568899365751403745543938882254482434721224123129650060378407446417821789491269624616566405685957273369586011784073208454211460348573667147712212812808817135186132216602650657663966625390834316662533530523114978110699878519908665556686810687746535910210939935134236801825956447646461376245949933055461477096832364557706034474163452234396181013255777562638827917209452431274121952940271269964350320401459634143907855379961346579202077382532723133051289162128754071925198775708007852487836633680918416797280078943120598115211843270290579911661942617998673213658212732914190367974541748328523547885100141495372687850703915094119962184553832890982899426603989241378787894714862702029143358255556193306992754406368544773244225818094518965626706995749538295171901547146721839631841910840716612287637599304585196883522837063085199161148272744623990979334969853872374037034001786432668398587713965849160681312227682474929662660371567770495762158682341011893562746457695703245325359935412544228707278413416632019145669494805972955979289919028701033299829339343719317993407516303405798478834231710607515054065335950996736886359316799317349890444271212479605515175526071474987909411298391499648720464740071877841002901016643723297750833044026610945589090030706466076028952362372280079598693240859820710607268526887935539621595066040607287321097138350064027948820428639251468066316332602568913233478555454883474150600485746637835668689340615889226554033423143363017455137692141960244180309197626218819619670530234573702652681442932869690860676181527278640598516739567508103126699323510871849938324943239115706087551795881801465207700253721809779378437747322874758826435777793921105268063802863262431004017023789522587147018238821191586089259545372054627291765970534702411488502388692607720930879467668968566707580405704684816712013541570718205601495073995443990627675232263371273210102450409043009604315153196185038982620475371430681384139310762995374466215106430020442020404738119354124142153308927211922176487767976962775033563539502868221447612380945563218282258213336161781475872068866408096388901486644094190019377285091704105882338170040441269529983441722849222901288025569483009828902661441389081323812870418086654560547550227350911635880260913982609041764588831192134027156005303133034570077738961439130252647959569422162051777221016813939659501954158172348657721575754814299319280181718336457059348979286045998909364480988949571164212955304877964473246802205158231858463387182546251104465288989309537341923606933848032978794374175756640636222660210512233100885563084060688029822755168553726217645270490637062627240800682648514729992068680438345539476887253984377787547094612654839988626950973009525876786314665182592296565990901395660053434914598348126415253693592591296012858166583523896581315317140325074873014862339624065461339114088552538447151491025062908254196193279309149427310487748928526769371754609119588348940416505375413018683955762694893735080270043627237191936699062041065013662616298350870269491295701144189395636975406928696637700911218269775292917286759697294234345615418740648559061473646370756962982826238092954950687331992608999302166358751613608679220482973446837405743451507028468232907976118097509134716110700305083183717907150595234896982218688541919242831205719262495537710906986687222800346726941106644779202349763978056729577621238499264777502028609434931384211413169540114035795845851503163163001858588139842748711832442681320070774999855216076754455712117751118994859034098921884060948331086710571001730826862010991476386459899939394457068649244944035838065239660349085305211085853244785539640532714775221979897073531572879823626444847903198226365406061370000063634505233251924121664466624316101885324952629613265563233775813039645681405689256807281037891804753517933717503785329781122619796904050997846190116294936738412919432658154010757377561251156673708180446121434671924007335585533249732436380477233044584851635721845041983101065289044988205434364617310793016217077539160200327527577423512005298875562257390156376152807589715310388451006244871381402311635455675320744390877368102624742684970907724312448608137012561985593285475590839757628206641743363317650933340726852354558505053275393363081972986256245413680314237529401262694290626138640498418583020162732215010087879527496736783377874601509780139438327292327023351812561169523028581971377700191492588893857066713840284311697156078014570612070697907641354187153940905235960910653353734443057336843861876656734663089982441842203570289751608257104955005930691134537332539623383350453602330209682743931349575288800024765484374430559459866091326841628451395476693281989606913175615221331357788395443405350905689514052864906087194822595424597486851177088068232566244685713591690790372972310546860240336143229464912285797977935349556122958580568848798461332001610218412839700066366191244521776104301859796948279346496272921460834433896532493698497901265513604821216170620173120139611754725089611477722338514362541865942749200900882673810668431403799703983358200453476681228751092307053115025109624278739754682576169401700949023967575973946061928624576422508093072994612031517393101824764232824991665330546327472606812133202014306482979553193875866719494439523750116308617072466108669370927425267065924179787016835994004590042229569531321035047888587650815041003544228340297980982746062843595426037572798584832996897544567727721756975376151986911902325737449768257992706352207337618488012907604503493823520234736813649644493745232695578205067189832127940048229244653777496309871688689449901442980520271836412916920905755522638271783366984593756446021047652518073868749927050446504296992925022481582323105388021752795117555458989554807469942924377973293297427145694317769544065558005012666887890023540220176697777295299231458180881229169530885078498083225187294853552031871465468264514380652877895679506572273042588422076435210237842677641468536781346303512730666530326088107679633889123936152645400118718188485136510623695041294373528531776801486737390944549503184243188465678038988764464884597285088442017649955409766903038509914946322557700299071948576998541710677486675200169731006949897072749989115260863267966609625213569342510039201782824579021442331570092712186288645378226906503829617188730454790169118116783079823252367428477063485036141486750874183837997218707862304124730221225198126348669063759236287520543456078297514906287943403485084184060849575551171240640833171008625943541946069722250893417331602155646072918217922612214133276763993853556611585646605264045320983235686478122442025602281392495588054695343052474690770772431460695542275622874541237210817920055984326146257251289092748310766501987238900024993008307654148534106309094987024788628269303469872012554793488877037951214488894928317284702463026039757435240127070622060565050607604679865313273313331190106023774479103780502597556853330532133607098981628141506263514737232873726389322082195972171863356096936909935184813230890428905537776004511677643912555136666212662077304608607349093512961248771857083015425811684004553182444807924785526442825759380072148472749663543016552641491757409903510656572450787057378799053870898550151470088376098723105079541053066823722327341746368023792425757350110238164641832933795659808023444875230443626511245709488326117492672877068047285136410428288103939192055775644383470181053447977771811871278399298721105977350608870561043319278127378906798439622667094408410862891799079771782723850377679730559131300566695874460150811820480288464247268581262533565362015788645640244332412321583157947376754182036839135545349239312070035232992667630606743468355351052023543857248736070562860780275240999638887302820093990493410423783276803669713431895662274160192489896452780784089534963195821581086917045807684239747677959784725963315957583166117190576128737507288329739086653239140943677579598252366569013521463533136212522048960692111198673360294169166336838707627992132279783701728853274003957607353485504482733132013525935906902417220948684355891924963881456050433703043106858495307719841796286972039616191366759238099327563018710647326115074570015083544117938942468313931683986981369234973248471235573964336936084908990625729115265537650582812855848849555029022925737615727033732988857173231062679690230453509470594667521619740243068257478767482977028442521651919326897065938974452057906407448767317302124511289544562182699081385988713447315540591384102310426017579945563642790210065116953884194392131169481103043465464119639158337780383237162817332707727319619155487160100580257988923859783671418974405081286494597785586617421242215856438436298490518537150778330644653192384504636709271948551622065144394294113025325530509783080613137031924402509423532416581767530021251541947624130173203919160072647392620383025195292042007000638969426245765978826537829575336073612474229790760630873717110065294927921457331432780384776882637767012401990355706961172485711648444277429725112212013777641000703009342508666784917099290732772264936252028600887507271456074742331257773691606530033440316388029491943521843993608156881524182356345555587102976750527446499522627418763749962058770196266330459147399506227665776286352163300445063295158447766499977005862902505983807330569568837918124628264025917521229420160112720205538396900880494932871541454519814587106701983716436560422195544739337392056146317524352619103967195124357004396621104414021168309322747329120138281153761826654603852826229358462525615520323687131585755728375086669070176654471147643940787718911340398992670558806201012345490343619957395290858432511418065163770498669034873331563165583000544888049785295221691179686268307053309404844576948110929868952112868237958653961031454283988813577277184810541345616030120319401383898813741081699954775148061800550927937512242077601189848104074690356378265467996415354556928209260404638911191325100865107779417798258365179411482096288542228692029481602463884897883441791843491507364025199582084957887260929104320396142942806112036049748430750740893788141858079570332723257811451437937112654146429626035050955067251088204147985097866522264187204968958579982037143804721143315938299132433978157404979936233375073303163649125122666381383793084492935856906158474474695747913155383813660915239203727822903788950894014529791783995778636336319133732695004514517104191861630203658968574650985573747425938909576083404255476240323771800978379322607941847837910487427849455271718177614265637621156717323712388630475852584753628798981316505194757108366958448744416856230900624652456649405637696332232495669297618641961410632931205597750351055422969945812625697170650946084771905825074828808590080377421623822037164766242936573386300992656774499101738512883715863136497613910564844151204200104052775769964559618085629227739571148262498912420708873967595561659644775998906690370955449279993073657770326047138045256194150449390655119468611132176614497550937975815867336529904252207866100543804485908204739794144509619703762367013652434359726602260221029943131763966603749989630150545448774934249814400254576422902720984074911378032937347666839283581158303861195193832928188653151954187882278992544171718095951656339156890840309406561398645717156940235346130827133522036212409159985186805679103701778676539113827017944922595171466087011227400114634403111232975772697079833977910511515194858916893826999314637473208321021358392825818058264789063583415523108198324965092622006498794124495549383558967945967519983053893941468977069308035679347511187601329685558436115193324549698363095202257687516736484573634062747733171659567858431986387670845872481008656195453890210051515297830068474733944833185015341104003870824085278634135994419455536656672561341892365811588175276952461302899642516581333195894856373731685427976891041199517813241927648032865393868195517406870938247706712330539754486274945240118652260461808840861114930443969870182244535598502971539307723023653812107561688130259607807383224142669413740551896040346080776613750357035384231989772255618191469207364751704053027948293283701455993150959866514255589137544974782880466629049888781604326220918787257248140801644540493953288634828647746170736419527927780218529659710193449601933091027091208836011020312159904709120094371575490590947933321704211392544842847395879819949962322598824755768147400024586408393091814629152251556986112686562945297135301757404176677425158709249233266840594599492246662393153387646577956679087915369072479473994723517618370188088227264185115943053676478978221987233060396764879764022386245594120489725029814884060783046403690697418769799745224471109969588639858433615887494391658497781408749543591077039128974643418597772509840376713053574882745085555723969916996494038434243341749134788619673201449800858839761748775130655016063052216688763868438982964899898405055714998786803138357844979585105703474149880927830683136528705357486953307544870867830348261360826242539766732563491305085569683483375576726765395020087725748119653741559779825117698510623680591826900587066858963658743977624575318423172553631274159107727446976596931467993074787493337103547475114386542226882289716814602530896329206023877986023223571105965752139065935409517855885502854933536253613420098120262345992225533895455599939093858622779845736245604286689615207503143515427971829222366121350404623639148054027931241368208549900493976356382938813105598928418599891876024066550199740522497318467424380187739702160214237642567045738520647090517660751616961066934688955816942120297993668500403083700854540479567899192565492190590993432081650688889886562282472496642768747952379681701619194366023078489325843342721572154657511803653916123864225655365295671962362507878715685593157280001667530928363394034113842354206438335059456749754634026819489173123458680043153180877019639224290789493807666386813877470651894396696460806827427319619980127658458013851803388743140593064923578885761144121458278382991732134190606047336674494678191082403461978786671958733117303614973168390750774582101211425076244666544758532568188609380250009934239459330795526625558537709017979271970643434663568986444021775018472469128081814622127071598417196424826405261978839196905438540218336968000440639547102458470679722681723696810314550624696351447574334971859507495264402228537694315010358365251383392129946989530094505331724819357833264057807025292495487269729521796211795913083424997399131152359926014088002429756043522278873627519519892901417098986253893270997652478547104968506742410285041847833306301043684339263822108575428513923050317896362220598725957802529790440371046534323167146764674015389312217006878917571082202305047839519642986774773769934674984465214355087280234468634913616212441348315317126591633868800244141648053010809079764836350226160953842005751765067402742578509674580702931317037602543955338129620253870698132490487898275782873595985882377491438692045298478844746942059062323767390971884195561841155379813096158344809297986782325808656335687373333806959203702157292982675855420957207497202470396564388042101159603353461417170423915794043043109404090256028391190264393765474746103305795639910471990246842328237540926799216501078175585856320229916465597045507547368360281809735581362245405615626374613920503134162297909715845170259348081844050879619981456233201289663979845625223585917928842918764620990977250417454550683323955301511898424306062586341715205938867985795540166829031114765555316392473182407727440201991001002554353422634744523880832406002874922117730291776523404012739968412627669269171662402944280461441772161722810548037774075052138803274236420866880369657977656104066176764666932299769409756452302703292184845370242221099533129458979161793915280446098065746215575988999821155490226756993942885957219577103086327279271422249692711557541536476201363176437600251184267299643371600364844338471518509367207469718854989471593015077948606829819951800026419030835818692589328210852528893187022122127088194309523917791669483486348578264133973951631790094250697211420837255476208597570187809631896742950703342319265475157961679874967145240533289974935277525224222301015367606570105348243369521101088231478275016137809019064002421658625577854388876378348926293887869080923986294735515038336528991103253885971063898428598784680135359554488535866648100764970291433647234952581422049351361252639438905477419707755922252613497606974496131423651287699998732005008018489939270595456830825060701267211496595682010271074979050672184480578611444700630120154336419026997077247467149476210076310716392805578517681561291872707616569362686778961108334303681141561455202366719292899230360911549608045883625178261521103508402032437629669735158741389764338657061139897979496688446003372614350902725715212906177462145960436184958568408462733750992651441645866884542013944170931809209409143961747299810018622923734717249232243575642868760782144540301211013044071565143036230424778747957896650742237497841966084592272779007430547547175643672399444028450825989369951589491988948683963546944381761133669822231726222367923179142904522026343694718248558661912090909105582356195838864245703615741290635020590585505576467153914545242300447016422444832090769034266838604326748183850973305623443561101151489397826625417607007087148692806496771481512493550902741612824107086507998307936780978538454621118090643136787562775514135349984856523108138937633186148182405504444463241540945400507171985601010389897139840638867984185189232087801508742371523725141053734871638051244586206287896072366100208705349440297998325997249732456919755347047523275636523531192271062436160973363077523921813847046425442213854261484967803905546769906425296720511924595604528180017721250438310763089766779340955899861325688161619171917769024390012648752083551517239678936739864348106193517549091224747318134813083319608092738674947946858696452596480599559613885955108307561732720077343666065745833616980268837788184896429112984371533781406684634461418230616639830761595414472328188300372810925362782366679990264175725735006129991975827475934543343287538664406443728462354349219752014611794666357918379667727454342316160611503748426423146222854188545901961780529247892597680650843688578843831095776243728920940756194984219973848316762176122039720561276045631348873772933545124982784654829498303134205353601265558525120247003583743159177197735766730156251229843551816796084052356467559473086124095002942501470766832179025100373517454973871623087254139280584195448549596346162895474062382638551526872517161209240523570049145450333493590433820837063811478937403315502353089075416944282982046691858687827880563424884936868562138211861743432655627390350925485412198211325520046927546853147467267473489639520285695799561809537627779504777393148682575636793247539125617134785156015081918152859476541108958500071796602801960695875951944001262578897187001953218084805980739513920459565313870180856791233735221316469629576936452991555010807989731433812748811093074027826246499431245184911041150217781959883294719536795561644597125780779276913183009414413606735230617530545762856082774110812467675604749313527241671225166617402021006395589983843902502670253411763540280157344531710903876883295083333029795199200615025802879169494504038688520410508358382262355287129120004979756656803057482504586335500241416929273581008698586183105267279374682574138418219577668102939530711049615271998257422997869444751002962304965769750879662422960353904124628271827459523234607806386944162369495469696752980408806834611831188496358809423891072266296759437802539017511161354881392437972796787884027465312597304634285638271490820072975975666021969749437582707124654013536727024576802508624206719615482722765977003732033580311115816606346240425960681422703388511506506772328949752361212424726668286407236940086649905879152765801742134047603833693560687536708051632161409549496599063955212694934274408684427122152992381915943490081561290722861048633951258933890058854410358041851199212691324833555290170549398759435078691681379805586764102336458717684204180497085023641622523373633245439260312463802933936198740452943109503517404305083610986811881109544536960408375666168635248968086515563238719252928537594513383735391385150401968501551631135336201748660877383828646267415533347749326029736778479549507272910638245209952876401361349011365220055186263610133863947269623400473571663002912987994354568968424147096017318869781577323132622914590801226167004569219527975773466589107875682226048889568952496994026942205878340714437429268363335253403832830987774670400658480269758379981448387069240553611416847117251757465551608519732456717992224592849416501811006148787065272738879497782684198155662050883404456228292455262545850727343014875151034415216863589545549654392517434567133320959218620618028054372393237576637171049526857737690374152956515510672441296909748823335182612735064349794534251018697452655841565750199668088827665260099145761061703100447198367743238548296955808739665257787811836441995266847739703400324009799535773430241268531321310074307895773949400738660594174117127849131938184342314658565174435320475034114809390726677351838264861999548307681970344377823665778945262445240601981277776534016565177324667283965787123915358640260386669743038535725539620342145115875554540076738573082592622408259831590830894394454892150957429038739173245359274316526721578546308252058483762067739793650020235735328133359780216834117098845431098436266310799647193935854456714076137028310907204236740805206417039156213092039274339286355921345905008830691196484194819184899568657056660665119912322658869429593245196299703017750527093294008237114996829982994098815063452060717912740293164902541307171455719728939160176866033503375713064458940257147171795773717234595898931345139377371308206330262794622362348272859857450619357670020431092171953229090776781101378814783279371201976659311217428869928730219688556299697196792505942473457582118586339639582409992872722090819678499650911903609931801241844523498708249240838529827043622443916315292734954245348994585734358118947101808436710910231444691336912385215288896574028816207613690073239454710081352924330492563228001204564805745965758665955069866037593476536636101930963888758387534035849640807872763156445958442403410433587898078034474432410321969192323476334062617491409180386591434084789469383780135779444807762846332772049019904371022758573153733632138494666729028329077356431590305746512813700288894355891074948373802393806034404015356626569549690176811286802228178876240845907852459715832678884397801744938631294301891822544303334790276434539080647607531037876775485824091791646231327129099126986155923512193026181818311453799042924349507514524269169618211868647356592441585712316107607629677238273655694325639726815135871146322634073857747133144750366382703308169951110941966588767848184261099235980269784864705093549157779467018772814064345821282780111248342809306828707394836967692067094319914530471121025852386313172150405469759704973875710125865613174997460094115317113303684089122126180448850947776085994778238905274205075494518651130082297438253309436985233622359025539050424084110993045625722519179808866695232538041419494784469921747923518194735148726018326626716599316257181961891319378507518087624261180490145091360001101010881171235635121846962789490855746019305247830749109840609995343993338519042787698226228976133192194399501780129665355720149454473255106381402448709096114847000049410011669887030467578309811615718908289976693178229613307763608789531703829155777823144381433944748685860164527951371396897483567453742549164941506446041380398098642314386902616985972140137359384284052888961990649492857885982519561003246675132667869398942078328420591340541993136555266619940807079527513625762910350780694316041236158466266330925883343605812177364350860649451702495259584987273125783857567414051306455304900828077953126150014159832657537647487361972963735412714143646913179693885561527879090047166114831944989850636984023534487015843632704236708523962992463073934627403373448206287281458081689157477311045760215383839366636900973400278457818312919229160476184968496042690300796112650824258010615229502286291765639318515419891807582846717225024102265868154578960271539897358825361562683634356702831197893870776649074910456688210903383634316483837550067900419182425026894098604827577841628439187679623942096284418223812902555490466070447615436589060813678872193396300156545557206633614553667257305727459602107756584889838937437110086329485089094685269411328549828422483205514158431542551644331618695092382785747140114865706127975718857602022269954022135085831785974526397015976669689188491062301323708905882815936820277680160823849363243166439375596546000521166602640354489211968363598158074118681760452092983193170877815947147186707974800000609352103631892869890961868710784795627763161704577890545141545650714820278131257377222351551882143917208204561166001028061050821129536783628486529566879877442051906189368389795518260552563655920452613353478109758529483163514105286663179546781612794193504252922372315370206231735205680475330659973566507437317271662920890765191880119315275596097965019794577275818171293629183829394152847384250844013095682992029087468053674076866707322352500537067305943073875552356585379080708395065942179509600630392572198041280020351296403640672802180302895061121940842979061260707198883424325913776303976309839679432340119379750905238693287505955076111906507854853288688084777391471082836398600593384824316148641281686814638849726768764594342475758084653793905813789138860137162606053279760806767321213092519058351777456586476063276284568234316066650261087771353405862929257722362169605914057357664358089936233249321018796780003738413070983486963179548925235302091688634222521983650708396992426555392002470954941568109921715870630190268849655130763087337150001207352850205604053446925629537896234922203029202094437604665875108227108877538010319606351758240610942970456507004968115473315105690870689262839796668504194631340848842625711984336504525357275423519924122288783524402552228256364999372369792983490546409683301408649253521496400258421882054995779387303172220085964099518231398130672762109136006338163147498711861498621347718784064207435997301493322628399874163048460731579191604342248303043141893711125032533415030343924570474862317046322420434515607963585237744803827434056568585786471007669304326329474661696426917638465717601770484216955709077028147976806219411670974099311311150319408177328083653887152440365488244475313241334930057511976373772815149598097025079226336983598632170599324467061045167729238893380071363255758808339619521618910817031284973674116577812305126079270187928637665644143734691979408019051921096246995344748939023613612112298320706074689125565965993146866943013271320885961254863919720793811258595424587425831339337516214382409392367775246660382961053081097996154600746873169981544941061322276261563592137916617387957575177825001336627098947551752231116150631900421073767431301893176018417766869681713619700226309370863928903672600318274169142985774925958324075491101157675654602240068961063388056060109287298757074281447580276016632466624367385695477802946316944111174749446262989898210042839956287869021895798285466044260650073675994659774725988823821217457911504809842820643520825756641735872630357512797934083203547396859067664380731540095817532672200614588331944732748128224424946391358044031368122049388235763498422209022165661729528786449179736400272763444762775031453498649999278948889133204722868712487174614652852385604934136682753841241311387482193081222295510474940402065813267308571573353167595652863777870892188206726691840798850222803743547026676674776322169437574718692499054958686346968903010873298040520153685830392009140534634847225070046441347403006651115532462007975142138284681498494476108121241203727681829473617646250055772878957253251118675496900645679371569309862922061116500241163647710592283654033306665673857964485163314552139901908867829571383433370079342691153975036605216908619911913492948877335546158331728601790156687462045839497923823980675089125131326461914961881174529493250651508365361894883328731405977933861657496107033305215537132865304568030545408301463370235266833200994022986892247177923922557744331430041367259155645618586536232295837048102059605689103042948159294521868926448492141999448641173335002192996307580462404946557527507141479814332835256103149762452269831015219644585070364361697230512992535606858766807671870432131361145053429450677465165877502163662018345918295482729089875334514495694990978440566502364896448362407856557212192239995187722773612884923599024857730787726607658142090823958101013094862735936041902691602001455501573210628871450404117813265965643921489777299819534853821247447456574179223169536039899800646376948320334205802579076144087887022374057675055132140545040945352842149819388365518120706192443720568958516966195464998096599967664909523925985711624428347742053604443173153293831078137587297912925597203265921685418486700680107505355121814094576771669994585536631246658576419033731134251623307489725364919828404530764436421631202201862070003735483986020750804618271343430625055927274406148326786016998094215861798756347124915574056451273763275242158871516546659565704519770836164822277183162394059305116723739886369685128403973861817410942914146555335436270896500834347284449061515852951711366857411521517980826636101342232348015069315486725508342357227631311376478713455158387676310365978726399443881044412637075199966016389705177552122566148033024503267654009939610737183984905006891260485119791022610171730262891610269376548483467905780817526467704223296607978808151968138997772001152249861350963569716618302372590931106455172627723475388070638276139851359315964333740559888297924051909602063952691381086609082067125719891987766037337083501804105933204821558457110974807311732117126633688067549130040533483098161018629157912539557385581554955622257247018493024134179795049335150054453994714466812202149525812868804556560975028661805411554560540991499313048483566889654314579577931869759610320930944416587517494866399363661752951781685555302901825195555488964261495783451142789752387683086400784252553128269781684814581112530250091985344400056395176887772006287243258177580456506205091000911502525992569583961051296332267554149078782564493907043325802872371614862805535005222983183955795965405648755040391980149452100225761356286636563629643114709277945716355174627448063174047163304674328516539208601741705975304600653699796904698615005888514931008288662532256420934417105511167538894393987202235214149331986909934272668574397422455625413626797326203687427309851769727824668406683114065120624784174939475478811463215296631863905946417202262756831381813417145118863413317215202531622801562121433431494973364294555574398931213553090810192775389619609155733242933211790948885763292821828561469148930844655482158355194773387011707307429211366072391869405993347473416698402409375225666157948115995713298138509244878477081970420126081550434353291266351148039740384243544181558510492546865268923766465177900558521216198145232932367573779807548266926227550432662279411056239236988564204594965788823339645687683229790668105070711756816377110097620376037909142504524229952904413937486294275316207504948302887855638810847177973262648206279543561144470276643935490072582172670165297155564936627063860459436238479071444105986736572080378674229978533642530389180541052767196708552256501751304592610810535739787324312459902513539452565859932976025217570537951848003385465217419308647155833793828323598600597276115775200454347967608210241589977759262414637801342253391633670541582229484056086903134765020518092616156812734278892695775331198306766078139882916625347498602265153862452621311791353869061719117109425134644205598302687067270163957030914664986135354878299718459044527474089237719250648692436112425195813161048157228315629624657706693926873413748613910694816800748239643102107564428685607213686907166084516635575369596905403796834545158298300912838636770850757228656164579054498090541394760757770275622520793452886621323891810559312969179339835027014581640607778115122359229140740691181563226170281726570778705244116745961809684014547726754798172491404309462366170766811564249055744256122429401244991860415714169441801480117774135798551846795973930985136628938302292453492484965223009685212464255662412101481189255722543457183526917429143516860951836150074597616121636679789561170359682189747763991862105862255480167559726847262570400777414502076562228736631953329563928470674028890499751195494991346854246549054253874934620779787197399535210419035194147497242514251604740218350508926463321790118556767547079257526166920893266833600626566444457428750430555288159336686825414107638066927706193287894733607361699649735774804447372190625273354029488326811890819175383291122962773386746126108186511793950682195955751404480959768565657497194576124245101228511728512945460660576974042903138359257558481319069883255416758559811432723485312961408285547127848983989373715354358434152009543860270781356911293777376837220603361272815188362958836157629388357833272675977931678444577715807787446028412187911533503893992896825116188617707004830393138233032199342637918256731016956476479513266475797533225797964039500272567505971450489448853027676761140145454140116985865492469926734858243557514546150861368753366810244821355248749611787596316130141861027739597220422445879259289237616033788323305467050407274732936364908325043061102515833183935748576048646544708808879652713371079091309843410281361127715201381315548950194853736932134624105327751168741661102844562659593725625633292448281114366125996472573113017975425340911854536308899637361863317528502995184509270397416562315303210701830604199675067538269253724219405420169422530875548732877770445524412195242902343438533235835048219974800881002673838106078601541840360570439217387340180240453553970886554459379025211771520241725785594069808334230414260066933485695623135035252310452229317052137030240798611812140338154889194828030030518775329535161143987701988012505129458278426972085504395787664901754868354638188880686689313065412706751609165485558787515183821574828749548873187769693299410414892270958062311500513524524947099536877885884665842521316684198654400112143398227959929569361652770354752028178197955667980446651517525980595403714415665476500891025051212421221084914590746872134540015736879286528744203895407834625080175417863115497139863120880418824297962725045958813938452070254919285460160863684852921938692638850674622607663686270044407144034899560092890325172119905082104201936885521589928643183574224750419101223932267934087259563974927970321949695356574346608681122913705045566947372536344295881714843039794711191088251673791838703161953537827710839308542989120005039967364419715344449076196044625985651228759053509235444943662444584609989869469442497513180660758543854803888636727371669243371125546451367929416557936771094979926443078642129663077494279546053141119216895624778408704514968496721081727313303871906924489799030253364450471409254679692570726301228941806740724362896375280357024691862062216078986231137406641967067658174771907876395291662459948409625024826119848523560478061396177609876961090674162903530119947399275706915479449002511374531484244458308856755154321644615403276671053631178918665284051356993067054018012288255017030222317751489910721707885521627101438059773400328130991276416224992374132231885261783658691881553808069847460710127430781631123289714358899813167265973793369832434818733909696244820885514472141114524787080063752877828123518012317396636474984497848379819520715646414045298235144028468051727023881492414656443816578801131586058919476484581313313530318646539961321330542155065659777277100959631445131689604566983048268166842047809472685437570794589903559440029525585246286649950459826527773736259452785764504673881069399132646284931917302857935281635399112081752137185865321690594388454021260441565781481803459578160648901608569642808791668636806888384939342047608361673346498343222085440826342335770631471690898055359909199827111986430551993179524533321950179109355861627650289122609592345656551993290311320100050409252116365590493137692734356724567629302014934968397925913538765409728711961048465080672801657716588064888011229222830630739700939671490568432448097672563175043309424603737587381401656381913802113495775370030488040200088223614345591946243944402671680878228105275435979273679803490918825070908592693611327281474825201582560859541156379739734493066818895548697873559179348278724270042916145197192806230259792572503145957656178718213839704603638168494812724970166512295857080496057594906581555759968109584691783773928216465534211647196360597671509015183836519076446088260923174190324995941055282510964232026284165601832889754543585936774533496795891278178163187445860516497495128484690243027484780441479921862618443635487661682055745781118635188445810135276939964418706877567272462799472245839106349470412855391546983415203841538625430136031878924076858953240448676709697693512656592546540162814514353098716004404428058299039675215957614455928551719281665019674021220441842985733894512756127799544668119664545206885125080340897338411126376239538227201616555788921038538833808422602117213143434736195027903849816369137080636249042203464349306785769675073213736340505060797128534329000963135040456989952999863016327734424257299182043858309461756699115804414570028825950311699638444103204494378695536638531516991992678481559642940358389719408137029839603248872218072206902248678675587783696463152415505048929644764824613280733406293410723496165017836876152174968282535086150374623349474271893825362663953955162447477557802697119456832991958414437612069570799957758250996674493579787095206457281238699966510403193321590995900405794296302406011608854559125053972068474750236259451195734488719198698195334361974365006386068453013939061322347577328204524969583595943872837494842642911168461493762142363185412060389996505718892162144766874892549945846122034148185541398412774136298956372499285597721202569432054873109813019134238123260448017470040609043820655346700879500549343211366547908244217235357625421318706660186848149721303877099921422224110355227941833101810959620557360665989055901153990000354943184422152466045029710034871813133163579128155785913018102887450058749479816991274184037916237648113614946843257842864607221386516676804957404760544658015540610314275132828121370655315946990451689175484039505893712449712681855983249411148697455206585529386268541047715287208677378472332929680339921291062222004497609053976227621816519395988107341473709119222715092404992706315833835258077812523740572150907457629671155749057186457073005575723529607746614722351510739053662065590596509438870705003355120867296895157595007323918305329675171839069712148610203204855112985778776442325975447489076480526161348921460115752418900961505750669415627559371818519453236342245846450796526486878246975071704051736964688000318982679135308151334479480929829100222965603573323897414141001483064227924678576367353833087497009532574367289987361112597804901875992300718405673948153523330294534222617195311649881813284388663454392681240311004792048677142694391477473981991171832702050090854016376728281277334753284512400476192466804434374612456006067970393354533518103384272951356547263724566926361056607840359247288402779719869884761292089975528882135579934245114266249796714266015010779933543742578273853983983732382106238288102016898305124625409621974039642681182770847463361765637965391962885652071345475020937842444363196920105013093590334313699664765162134555166637907854480192418766068224434517705436151285314130215053916463120373528417611947504769315574446836536400029306895953480994689883018393784011689212592004444679440222192292339306843950007536520963200062787605939700305947812041706775263825587593455309830473431624927876008242235292986084328908567594787252978817571499371705771410995599776493949313522418712780508712842264938548135819622888122559851901572885910071917000046788116999708162399072524607054512342709693729395743073786985223010078859299463594910398234597517751094019521950703429605694204837091679223268773958982502766461590187845807723769180755578354653064847458446908200363109500335383328905142596966150263910193371070150439312277575951818018224509348128211165754643291253784389594111209659826402669945906699829550601771068151181365246944272436395333630961841586763588395945269515943512416523170337135270761063374069618759047536441627293097368252686084302268125435297081891958779818335710360502123020877502845244070188411865129293830671983287104671521806340673017546251578630957575715019770677302265593235398598709305507065515506195642147234289369051173914570592216045722622003461712990805173328428442044709633427874893601131167229237739369965362622475832514430275572654237823565293459108871690915459043859428692991301240343895629079093125926950139342307253144060161663808998372957177107832744894426634990474388746605896094235438084673067588546664775367883999710918641570886146554657765589186331701924010999741064524838298284867029253481348977664968829068950268627085904652485177060700281785464984869917154075195436646730426968396518034066516565465114300664379158455917449152203867503208722539429428225371149028759906421168162985797368516216799562621276651502141881867582249116494473046326444558214168909887845909675513047101049439440827773722990761716363193730437897222713319116019134767467370011537282026526480907669685072930925823556409656645733106320488337983847620978407357953011632922544507850078826354668808857763577581673707199465076698320763730781320937190273235794612723054882950536176348531082449328521766440078988612386345126597915703979370938357119900092136161389931574353997168502808667975879960940853091010552629761281695719332323274597128787446186255331297408845099798205005255701469750912525683712129005664927726815294045169166755042359657032893535033348583810571029279241487643407185002273016222097261172190046616854629551096945956884402102221267880192406835769235595398611625261251713727183930867144291118702765301158827137755910068755306167327188391758048792000688556902865502125221400585404023729956959793985934185484638241316009680108888613871171956476760187081680455801643339474684266489886360280585839313749817449869730002793733533337994675867862400471959695976319736229842923710493708978153385925940538785619725251121270033993629700476975811606240216242195663514888761183191328196221989202241763069732785022657826200180938631282183214002297877646267087465924297391130715057927890051215595227080997944639640607186172795162803208386769749180337250500203727019370796622979090689695922319672298727405808318915783290207169755533124661707532203521830272297075912207541120522681092188623348914745399153417525633202400616550753599358601642882599139904895239866961622420736745965523257293249744822391991589010004430305633976360354742452116105344632337438658735292300989722276647308032620493399639611469710611912429894806110497216051179985015214611658343537104352532523883590218650833137778776413791835146087400522574519155030819664337113872981916870067505925875453033291884459684215565109757417658794020852123010518836610089599779219858840290031937836432027543734552899715864688645619984700548007056523422948219690778059496882508647352889823988041071930491944054015264870340066436069796043952429668109939782956164688093111871731734247548611103843604178028980504221267125455988989893172404610132442009634537872973824963620688137432846966655757560812618543506394142299024299798609920023896521107802251674908393325960419504967356357701177864258085803884744463187128651257472480550316929766851669904864674950326077135812955801770481219152596469294225969838451152305041872825102631865761059598322745506916361340780971465673584175411706180004796003288477181445207681094053537886279890930694555986102753959955655958457755585311089748376022222351118356884816436942380004435819490877468097421963651343726457720725257585426596933116222351660993139646303858045106833578932800336015557012137748342707499310448914206155657609865247881070221914875307794981961013254364437946058840142825372054808376976755334036016866658522563205575687716217373372758265122150992223529940877622947640562105939558412587271198871201966624723507206900327984920964510966619555700292511575607550970912479942183112249440962473763919554372000157693122861566891811702548317596203394330832775496947762384298562790604600773519557323130107496450576038783239040337064252070321258025513385979537953739070291985076223585051213310160908008181298554643739750890081527162286736337848661049707813226468711694731079583351730708929724564287758011403068743058778644865226155700388855484472724554780721704902505763390474937967150469532219818997360178528655057309670898925361335190502292024509221280751575780408959376695882080701586212846076542072838792601659233054738865113294689188886613104458002630010485196774925460272968496343873823151542226971839899468412783419050916390435316734727833556148339620235858567502826697781186198041285667326748696051646188250946504236849190405939873571186735297466877136424518267196256548094180741463610953637368593407058424187761572229408882469990180265855227073183034459008873443739792614661616789165317130781443359490452833079276176258938011044931327757854294122702463099168487618084144347212600392834738992112551485326230421674524967957650193329245426368472005269944590992211275757929610239450492370495165112983558449211760595912970749926267236839635644925532617356495444928500677738399940063231513766705931606361473822721763495017338987696030907631794558155683841827182396749592074083290749047258471207317612333953241356071160550064846354216100484084044201461356490571585449157411938524704419074826050618084861709972687341674081884091731769359731622480904484119795872019242166217786286200787525561196493499710703988766587002136329951958887985164217089022375902787285172684083361927097519081872096079873009728628635358734401951611506875718552192721173215268291827979230431143171458625594819664935813554048810149409208424388946584638296870760801342707657754862659004316536035163797454755556797593191805411511954056442478057142490846705880198770341988168591427264646664113412528456564391370764901174813919518895780662972799293211842864355127876774429486167826187548644167221594607171554057376449259719887190660174638043295480411445333154848622896999419887574707446466537629270567729568513056296639414433244104016211472815823652198337204433498904826255749324582440322154228735547240555797671604440701710926836807383897356339335815132294714645410133606603470664349619726292553230496747204084232956973457060230110583424251919126736397259842923677171980820251067384487511080520249278680086698390777279002286593633055911835605418633087305270008108931512750794073911539448857051875506819956188898422868949485720747824238221685628337583222247331437220245391134001775777949606395421199152873234119747716740936643543765333258522592698501435714114427892965588570209065373101714216465923623418884536380724407282492914404555697125149728742690152926980073274458753218318747908468701990411278673875274214633629728475432982202893948576125233034914756169555116830162110574900787670646704840597888591893287876978806718641138792948445630330161871349156133954943720204252166978533674374972132664176040142200878289039370100858084631850706547927426974786447157834503193265724612312627706343968946762292857607925603427015028850186772653608176687782393231088302623387815069782259935551175490955460989337548056625340992978205677862263419420651826080707938884378458549263645010073683238331500940805274902429820954072686304376408936465598376295354622169406200404572118018847019859311164098525260514521328177702757707902150150641397792750675598497973485436004703980581876481710977836254658556431320490579902179987363441998386874047017849829367317231069771769530463815902934122217277230067586831031680307959380020768056428229750346530678902390191977528701386530610619931444360076310414975660038387993902491596236455930330812983064015060055009817347126656417896893611892404906841223236105316606851250895758088652446509025165471229263430887045086302111217892112140302841829713706589913479834086190182638649178167362827193015309980520302376280710518714958745648110200966444873259866117643843696397038314683308849914032417435130797870118039708478139657224275790925028013067277189164528815056609304296494236188550270028691655462992850780846736591481088267873055227755144384113021347912712357042699232043115611779288464002339198907570978877354666232705015121977822450446139630423944814205179617216219769297527822532781784115209325212955299758083359310884169115276918564096012942785571361168504522721362964458986761619433500475962497269773718814766382370464751143784848811861406982254052949788216896738391505985687732815049407216428928313140437976382449871778474404972058017544037184664731103924960735156804800894448818282493864275919269318570781097585156917369456254065734374672333012686390042248646202494088256980843167896219396192229510333005743511507209623731990586602427129122223973587652109746698712771039733117433188618244366735588740365009759623985925489287370749121318880422902246749504384314628629926097176423634736578993335821730262647830241124602008754399529562702071269084482303563461970506142915430168929227887218305603013263726965147158243686086496739356339414586670274811661708976787714074925342442117469914879916201679007098288604724300988206339056619962796948764669300156204562030532834023779749419376828186536386203982890584869183017692691768453627415032000537929154631249212053586378015594866443416699759016492997596922959216562915639062041913531105152494524680947209561797146018451293242586908140918606825670569200646841642249033947481800995300993376031088346008903481915123436855252513875204660940510600810324209322965345673841623478806103776304070879746418759680979923106633324979716534399918724043502026263557487268090046621276041205799516940432688688299286276584068610247911772957145152498226515777899031822819725257772994650422990512069110193016766353997685071749523665699604729152185724045023287278772286616737244247361662068605978057858943688563241693127867077912085100189149041486152706053225352490766501965520523966425171801275712458616456791518429796113666863227388347042147240308455461468012718504343319802898067972577949067028667329069109062327766783861462018432357475535775718984319733872084923127607115243620269774932025305972481221477495548751366862911615958900326402496463047955264251916271973648208263561371766810281753707223348381778962441934624496440978048947283386623975666061644445862833304706586556410170027275714459628402177093967127072108705122319854808057284883549736736120646871161925006331867034228061095015928078473075865713882751192430868154701476897846584189293989918255934535088236912095114251404787398846331033895603729025283273119287393955128696224023605739755298188840928850015204485036103128589068290283820899190422407093920957810542691470415381363312732546210046628074096235180029886917665922365964148012273638613744832753063277796227351485085501001789292194864735930601673304411620265206104810602365756179551827665969650844154824939620922365086583786363458376044965894791302154647300104668350589971757958907345546952489080060820218564776171639945425491386968153511256696502860829586966256729044764371144126839283944467442112508287200618695567865456214122320567089113372386243992839235897559872500932327885246072033988699979496398203742331811606940902286698915891786734111048370547893109467797578774531643580816513561517273590945522517823919710797028891741369765648529800201522715269224413799225003052820241737276249116980366017087208372962302792291175757200681517115052642486694913687756657127537431099945951139074320498059690878577611786279373963048544913538075402549254838646397167959941618064823888104082722385007992916858435764810699124479589182669180713601146665351468789783975891726012028925139940538941582952431249453848376383226424099074763094257158547179524360324975343461923787740588891326055376920067252398300775126478469157251327013513068561709768698130191700356861936397285363455645279035310591946499605827670629744054204503101501257122895053942874966840328297622611648052878466528892756888965810732825901387649204070547952280602584284219625700795260992538568847870734089409098203763405186320196646835810136588029484448279277468941206670892531439142424428284775958650455096810666633928642137761268269208691078205546282280058258704830354784999846219124197027803677200741202076964607635008902085259141107777107912757948163210030312678122108223668692489891243387545776991235036008608313360914656875575094000429829685233452402114080898774534351260468162887299994153393742612409804428181812576609072161983949972135356385506135095744480002632165428751302382657004118326395423410798438923287198184178957414797318140957881981132594733506000489040402663786280602523456887991606130453958403384326984702279716792137858647727809600247880599309781477644829132948623713343859076385642226959418478101976524682436622639886106759632757824524894561126286198745988065959769028622455396099580572785392274499943243638548540320823697232436441006147767168319378570557226907908637854706292577280458719738335737149379970674403239844415413154409314449497602553095469960193680320314754582294270572276978989556078284159748448655239290211812725131333499849879028318287856910818552630195348229097661079778508229467096983203606046381239821303592464681813477633553560594111709271554866659076507352135450861575008711677707899678418361858304125910680843820422672978302041033599647376532119130841557832616383740191747231644800652487766005973238631291464831075135894120847304413323372396118427197424287386159261245847195118191568362384541813725515623248424938797410458785141282984473615489336294619877803038718656596223119761084103819362121070058506881930752194172129347861675796169907123581490012198234758731192658596973469571306141090447777783029865625821688924965436806345554475867621462545457974443845699088772543814964488654580484017495577011588419868804070958941156892930427626011372732456186459959143483114314911017204894237016117969534237182386566857017485928034737618911014945434274655596364498732128326490968402288257330008519997197778659176285479810440336759066332474224945015067566716263020522433755388694141249902484323382841921653844260318882651959764182635698796270067321897907700818467189851867230417139583501418949755887223044646484587084297705524987428899566407866608584614149678802571934133124361798982877511533948114098852287205023148590969212518387854333002942114727088048964594700927761793968794366403576140001892188356993987437992000942211110494072713058596446373827311052317332315598414724567440472382209629303082963984713225849889584638804545278832191430030649349704154035869407217599345001107520090023527950894460904501772484926764229479773328595678933872358862495854389335622380774716583890074462670950548982372323786049513093549360927083318707948625461777149699224856530573385499982929767884260788999049384358257792261994337935709574502172525444348701173743520320851356020215163259000207784267117322952276676574346027262073494590670104316522590828332359823709422939582114366046775978051780246373325596576058787897220873801158264547405615722296392346337585790497478102243057500618583773676350000597392783585831409774485778909916897732005249177620208330908298852938029633741723458456452886807454935771593417593684134585694244553707591930942593053845367726793126310880047672475204184785493377557694920458297975732521914318363715230257364591217164883488995975622626637302864042511196300773678102040117055822641393650499742855942652408292339243989124263536451387027520895758243213849322467002352255206953074280011106773929259682101130334197040848253638894898654326222551830783065692517912094219294760123208151302787460692456752982388550442399894894578036073955212660213447517678492476578816326767054131701766747486600801934731900595020362874667822481967096695261060807700783639424329814182301772107432619662278907860200144654446411889028216015290157151632444599668894839179022856001227851674949024765123418094774039676581158728164852020434886752759425380819440562570168882596879629907500825230740060968780801253312743737289691013186111724999651655406198628732761370479949753889858381463815397310042380752909212920788381023658451344099011803992572063308946399986828174343225441527863489824583396506154700514433139575992027812895986634809566641546029511400610704385089868249704568700180898084822743621544653234655081707103540970335557872552031948707051747258856613407963112100853756049426739395333516503037740090321925942568397483510947754165215767418683722792062876158267412065363039079116441052798334203955258117794185220493737884911974480343205649193915335503486518230047221853093186111262342999353476384527211524382021992122581392264923943076174940483081032502163072655013175250139705910369581950649229265791101427620429806182189278643420128988701903076822797604845718253706363324557670296053601537423320703093090956191142329933252057508432933246531735034207834983960574851261956319681553564641812685116152379335951783897803811113712759007190238143641895309589599143350089512535770897304844523854698054627152230220059971857657373622486332302262028455741565862483530034833560263765161012052329059291410359894286223574538223157169471942048552570953959954011612994344755568160260175548696264907545878231509108465816889338072068685642289184935964953161157584812243988931360367746704053751925862656463165774068084516386135404959682592863047508487067307386846523025508754723993274742067895268102250464062674522201754098347335493010008185972056291277569958535783167653436871118747451093485048306449188109518925091531075472350721303982582038562743773127741182543565404197996673582145312763419254956079011576703884228818961295704177013192022887173593827503344022135348879657833940242310035509936963618375716323514481938057295774067768911503450675252578805636377313178941611107026441670398246100862435725570297547164528478183079293602117738703844904457178986508983286552207804143088716951003051687010144635448411992872836454805382561714195191578628247446109546145517505252438588439419356725330279787828841705491585382980971269841604596103301531761405535904047589831009631183987262943021218548635430244478680333696901049812976012469709569478441844780208936320305906469155817433101480693757373885039624536660600830278022908790992601910351057273036464989359772979496942333723974332209186809587406768522818309084083963218771975875513512960607511024641559294804723552985046201203548188742821645323295084493995561418012432213234789871745588218471745925089001885256562816250580352029040293808867774487256096904215866089164257404433980543704479421695578873004784720635501048196514607064802905189446875462549438020280356240678501237605236519378499187901471797060727124783160379889198611797284895904546643346094060995743466125594002502072699206377703166049170273230293296859201705221247623873069065210350979556480345037078955963546332778371960383706322925133296987912816255902934312655922558533188523954860015672207120030931232105953342462571544254239074512818959160004147224041411510099041894286867739219118723665770799658968318456164347453852566691556411742921814403798897249139125433782723430027563280217160223219183725629317573707323305577473927526346986233790857377115381501816294822133639657772002975185821537021149493837628313405897609601152948031108096072004246885244997972327676286151680878733124783905791138284340198319354760255539476831022351553831762232107507366907106600944795948158366834466134122421989266358161131205149676066846203329095148490835083082972034389592859617720941580817064782915069017346258776760568204454275181588369805637626902015997515670729461874447926203384900952980656417650883694773300430354917302706769997763993822283138934311258623988360735578037018520216915214334902098557296123309233838581056547878110846126866477830778351282985766729647366293456867133351717419221426180022136726356814166743535465312183894306935733068369213796824092228402836146412471830449888840689437708857764639530765309779022103413270910490410909850331928430203224826474178797320169976435801430506869328317148913003882242240548924099364561384373975751742105063424031900030281626118983567119903745125590696545218603880954681476044359403238884381283091910000093221358180542231114645469896647124134980038515363301570979410461058208348276688779750587363655097568600936815619158441036204205594081777006899806908562862257365809148029618298906054805775436122469171836063073549917542141816128742996514818395827709840073635653608680942178217690254595839804239200471907211995832377637639323142906582514497880066829971311525244775904385680567987057560017399148488433434817838943025542947138304673108605886780777835503180807523151841919914690477149442442522960270100479829352776875914227745754882266314309414009988744927948375827370711183209581131924044323817316865962791382297226451591258900223238939742909331760731588752406392570274315535734457212277490022305426918235174394769851322681013456036146013473787616478973068512383058631294572541629914826691085336972466354509700663524564559503921829320487314069731290880987345390072825513441667694106660512078049253775922594105124066530275159310449462419689428656386154958679655720368062223808918801140618287929976211993906801371153769776358246983171336986012242477364061196897257451078542596955643848865411284031999905926815365023416113059547458979577460195677977660200745723924113496133187118130224727964055242207799657008207977379712879515957661124974038022530319404284900122099701502500979499426727482740518242404442842134473451077423094637955812959117461869302186128087968956375107861053992441201692741021677548537500011720689960752742000798168829113676933755534025331138947243579722669228961904276129119294614163466509167050676895511504345750910575929520871335718791100052994991994637078687314586546469216594556091226076669626187848284909069008758693669072668233873034485397005601295384854718197077176321200538805999570126078703262773340531481114853678526671682658308343139633776262891881747807533919882603601944710990262094584215800808382609305542051189985372906977462357479543368863620768662966909954112823581944995915794060022631194058555690310483636631614793090229131318348343931068654074337297209041117929933934398083621933574209844445513695823983031795875944726128407957971073174764687288216443795814284630684711238651231163999565932000746427649887787079036403665859480976973658616754280159024165363742181093108904682171704871644664210950852844016114085196852910094908913979911128097570488277855417381174223805949965706819286908080310776679114118356021012485153966313173364994985213321724952074096276340581237804594305730677908660111589483343758018173298705290294725164377959741500730314688002420662179368764722703504605159550288882106245340451338813921694932486858305018623605399611334731362834849836448990471516730932878130417231219746469067972748968639586153096775224713959553188787359968256073654792433862854011381756856791608128951306869054127223344485773004616135371374294013266966004980960790616272183803316825816476964927955990316805752662168449071855625909517750836246700118829353949438932756130144367919768249836651089909054389970940887928827197539178697750519057426908440352988174778777820893169084537585326376192746779003243852701120041050610468240729564789013974398327596947214454059942310263064431843047468718250420988840542710137643303235079774172728216608675994674089347691480104569009830032406026474552149020496345342239191490603362083187053084649870120230428029985630598820183288990719559936056728476530450755043343968881704995696389128879119502333986999512915409013556934263851046325881381873172302446834452349514227655599667062550360230307557089999160285238300421108986263968683587457222411731060244911867028101279438830063978532065874741443426696971857615330527327348384816079622632664077659094873079432027845624294986125419732144190077994970928021790878473735614152729173936873567879978830119605020406713407880289763538982008543970277514912143834877527313074541976003837928762026500572088504923448713878080610257829897296074212990877100567610514912213664773871864266153549962600600303966765866101802740466440531115787904548196797281231258892796392510671647199581301317007383997729908200408387826860889971157602393462507521867555916441151426695144500437892953657421788402059130541678449576905692292980522485911440648050375224557391723793922341332811421187005159207308434581581456829153193267828324449108295534762618977554120514676547772976724295295762169871897832695198043851525766925115515118923019675891969318277469776401883771002860741660228606577152432631067060908742276589941328083660341967669234850040239852890842024272001173645061841322842026964457994342693225351181517964790931945935232464766874121544737445810624126638151483401709269285426385521774845103442095146152114026390042233312572492150652169687202217824343290422555260688534722152119077202185633965168205333684426099698595918014929772162261614890324489754218621193886447915375498064304695638026406423747779394226152492802307865024785272870973712870969258193340737107857947506275616765986447969195166446978580885806100191967444994018904453058555982769009482031781448955245226340022464861739618532044646471008623203602586011573777110438637205747478617285778693461790218637564955413117584915905131363835563350470261041306454422998392325873961969176298204319833581835562541042372099245182269120960952235576572267017457116957007053073777332417440948839854120917659121810525357577306148044333394411078234037451396975850001218348362896615179247468247972033120354823532381446797344218688760981772764387453382239260447412635944491115217247786130039133644788563672772649302589018714003464688010625283012814987047208876051654637480321797703468687796659288117177121415701268823651523245611691181183025856780153909744163971367591869038081712827642112175511997851317246136942350043464965402355499712218480423239902315778152642599846632283305996460837969496922016639566829680513363737701385919110983241175725352137254300420067890320020125564144561477241469347032016113139323335190998797835360064792989226480998493685353880238916546581508991088690140175043272528149108913947787005041681767490136414921762336865160442539359305249169413165841634895690100002445346276047456133537209990625250696395752120652726583106633092024063242768707046889283602776713042050578620851857323111310362218547251434783484087489657553631990313018027909717393036671441190177017572500104968531668990229004481681112327369802139899754151989434550654298431973696658790398007636822426307306401099580373031444033043742352734693533658084652558475387521293087849353732497792174379205280208702970871980651516222499818762122762272577810707766743714946922109288524272486152397555462607975082169962826943695810400476831458370045782830293541624316185538100805538956140127804023114450360386687294705484463065114271652880589248500470144535133645043747397609009027736551082774736633034737425481453930478915911710502484778998849354327973357393297233742562655214107865773865102070481985547652611771483914873343227802701089976314216438558405391053458809692164348674972685649299232888901383549398453697533123552959182344458598887332870455015588381532379998834521399665461546223873567429526402020382466943347186611538075634365732780851693000122570196386508538880015655617227100565662379334840885045816684419011661028227046396190285764131158106983761472088778422106516606061680648534569507438793744385387431758754149512487850941692221896936826346464834956873901487485643671081070546086866500716242196789817371706823220665667143772657246466743827389011073826747884065598760273971331893903838355193589617414497042839413365519708192777567420029902718104778689932582333713722882903308266289315206815679014108753496092868891967227399776607581056425697400730268009520345099649048634300809204868839731776712788640284144599053751086559206649498377071844217222202886329547219534776055940546860445729323425974507388461146430968225570461879529344211453137933295418090142485688750168120520120101675688856174800214062366183698038303932739943894547871595993322297635819913279808492166369652148392593258756128044092021705198028495452180738304426663121871422765277231971295345077262685674370141882798950319309055993758907001811773821807987691174291467078446484965392621128532136172487617586978177228950926528259884608796623274887102048415224661806829484436194377126910814320316503626687383456540755108835319933546941465107993180097085916982340829412287251188390072476464974620703892827059766053304589646762509512636539158574588780017946097244601639353495529108395338051270589261795643859156972427308450733405208417978141741656771208297777908514448134560425190177595403458573018806185560451867696689317407160455926452769530607014106219203805757123429034887022651796768403963690688810221003920183381660211521261428547507299429496436358341720579250256314947872399872279993982139392243645357355935785518542233535923016933510873235366907327402961483924344901830687621298949233640841682521191550352972579615660636303685245863880246346667496228871973660765163524912105737865933664202927200619982316715877060611758844479050104286032749730039095815325445200447757313849164216662042649815650921316124997578381623245571000568865767860717141888569853100660241632046858217995064491526349609449667334244364021698672577589783923753678916954039403511102913549196697194816494198500728010689795501717867162152991759279957253652925708344838262752344490812260553362672554618533570871166080072650186266513650736684771195139831851332614137604934549234703361343672007069013755874507369776493253258484707985299875161366113692395573732261976001682851187359693256066214076187257075731705320288888195482358049841315563211833346074860036511870180605459564837059300182580558000524875367071523813202530834360302171436295983243496664411315385572699816964830439666778118477873176027595226282868012140712310381899564651407315460532033597383371696214312589014604039868848533418475530449423056590994864068543409335309982915786570411003635635306145177620252140003837216038374938523624009022090250332281734831298382738734656049256010597274248387789156592877427118345036174000021911380647849925273291945039359326869807308132086577325865406311109642310019773921948366254504207187552994724334340419511272600512596905626626898893138250096722589749499875946687447850227663251822187618734713002439782398221572037581185497856604607292296914471198919140544928001833266382492486181573830190219829907091745098615414235988644212067493488585576336595591774000382062105680046565558046752653794625321442381073991954902456142729321472989344581244169498693976475408865027535663000357571585597033743233859568768554634508904440798654170865177882679909723601080843696407206491902564025714798938947453565275895686306497795232064262445554626821380784149613738321243623236268070039725893064336145683294276291023646078748607336179035539826943146706287464074451883120949432108490778664913441033705737106378256475920098886457910813905809280158201278551316910627874297816791183570898662310479999390281913219529215323390277400268166594183625044256291195294573910049505235777882707617138750637590704358287632973042973832163169696879539335151236866031997090740411832556729506529325468063906671625314618093309157801336584792465959567150220392388635686518211149073363931075895547960889232294992811957612778958654480652844986659076526371109445604829649820315324626996354071984592120961269044656372909571529959818937366236533863869604818266918513232326470684275160052239159994000624362772197269206919780592560641602958883771306038224316483152762398314587405389199186366151400387539052698588814374297020741697750640101171855567500812544330145873839197017751572987172023282185122673325377275332021560034049966696610723412881216104147770106675824249011255463815860655854420775540575765047939771191482218587247990520985822110023823957042425524245372476406987561833537155320297035066144334371211406127000542508622159934668376616093717779516109431065277300370671662870294476067962836582445421088333165709606900162281169161548117012284601958745636703727224812222087467433072838032083714379124698996194525881398938952139770391261669048496369698010728771899201262869916771060668762290924141589348414790894090230320727782473406682306471601820314972255465200956126840652238883490985911325115065850048552713757185268333832357292444105967441427562620355402599130233739204414397954978263845540807490467537158800883598905616019501813140075701210834169764726602854409371815829519276567319844138824015913882949501849252900258977616385922999997535613284349362070039647164377113816421812610072877567106906338045142687545829657657440096477074562754726242865572125815008453473296593253135174287098374323989275850360161029196641308575791727348350653223127429070772993349090383081908635031717124854311113465608743226704321629875512982743523839456447622969022517917244364529961381127727812450459932152401375161195268247749910548907846431379493940653970506076059562325351904232794075656874156204692322970222808817052009071014378247363966874842403967206857114188859241096020350060160050427698354617818332903916770014136289846739600424247822701379631739631554904156312298476571504185787785818882326036000930615512068454749767292409031436382727047591059065846484249888082661593154361809651094224341179991576301161180733882985698867980054379027707971843186500508869167505393705838750595028674124426314821106640878812414246248317149541038999475333234581356234568808969634644000012889243528552170778263498783122031859213522935794105462746698356186573892835245451865638107990821613808472738054869098200278444052255120996876226770771017338231206036099116290187249292153475084388878319657505954572669773445514597386354209001346586686293263012063327152771353728297123105875978389115225895902657880963140416877921204235588940169106043208734168026735934324199558125097838274604360279761166423583900294075567528661737279182942417799272108483302520563824910177094073491197713745048342249200499363780747356548541496581383282408069570347703731697429591769368549330650670475056328684030997299746740171654946817170572994210499060791432343097780675856775359017663211764556151968891900898041756954190473569243459660496492393763502960552079777001033117636124802077364869357621002088031460209170216014239982756492623132212395577792384357863328015882600720796475688727543233568181720691591866572814237182035073531258242806060563816499141720816018979206191422548709730270207692738678259158555995336500826164406289998489680758690709365621883305406712282456309332559506807554003500158582618432821843697515690636438850258672450221648979397345779697328786792239433812219314485291567226688116967404138223001090781905866591551505054466415860991454512686759874128102391780387940248582407525466835987363730566349881019281613462035432987670633209107032992201721459191010306636635754667613518139215235170908811706890254543792537803108455266369951326518297669313497504676403450368077765165525855730046086782519896547435795120936949574301503756675525281193224779459476632249438682068426443311807711728930526362707537488497894438368984269547513934031458204645507576102842785892609952857213536333580404970390640861127493855865719839368359871146295805908304358294473678603889708979484642954384777881346366087817840650521040561932741701113837259726105101367337066818106336416373015903120291684566287922750447148762172216838491105933557093519281282373506618387248799541816345332679761679413053560338729183821073506638127579841306685491301423514901136593507133728290682295719936165986716510401565263839059511715797503545096706894604078326510387170623302723260700598507582391336023314474058693074407792168264546026854048938703690984068499370901557553951053982080484015908296763268716120703927380410837894104016431009617194578058445847357778000720893222257581510007900409382288470767916010411939756209003908932226212157355138757611419231898569651228872741193768482483564105603888550640091256338123768694789412060725789419815515412269412265326999044387843172814543874400325809498566861539296791420190866223552736159758603585080890583951551729863795294458528137480172510477549460096526604686913249377145386964404102073942050834066667405070637178333979178993360809825187272859252064294240518622575271431433551730347613172821229707204249017123350158832736585628069145693940916433316238103898258665633958652043617317087788189766256554073673494363862072062764343030227609908345087918656544689189376088127970480210712044137415153081262966754264479133887778134509947657489531946155446961423801687373111639520813103283092904263396853534265165635640785854445764897888181630550876074984104816413100970871141802344150403493671632560603028168235207042447664878463938751987140490619389887026561710409214926676070559412893719340827435486183408719188961681847856967912952419438337470967237937694436871186613404791698604874092962182346302729828430942864770828300994993741056659688597545258334076015513696738393921211600872074732454360661359163928931886401756066394080542702973398086823828709936595194607514988474133256717748524301835709696317590695221913044102600710492250880018152541562760377647809213905180919684909493526299467186322523023084350206616353055399035989785220138815346967857794503845433245154601546676976512101244918743760062124805001600737312116400093774068602416184028049882840314160289642511911576554009879648352788666235449152490595836549024263078536752186469237078148111153095992372195017463445391103835450653152767039930606531227635007173186965944010199688201010328908151253148992243744543967130111627802144821277882156942762217500303629112260572040398686677903144255236971857992405352254003257332648459745307900662226767583670532208185489024102972944070456044264180050680526892709144738098934197465179041896128526578806575255978817765639897996577663909315524155444793377973644561795466170424090084168600886703122165490553397140147178707495820453243561430618550517597610726928248038035547633528243742874477276417766709821006145344526960394269635389249124893592109556443981615297864399391919361445598097070476389389214322798845631564691672680148908387728155439412554906314820098014492657654645021509471256198195159172766109285249699645203896428369333999113691310377644085860172799105829983158841025666144000827303860469439608022318526012533323856427906194891332786029085592560864191425481623018319651747965593508418446564112006024304695017283728368089075465662065231535150262984079365512301673406942911273123569266505030485643879440172564771126088429777857040551582036225829710076592153312086860001846542754120687222807947218578324137825763197771377875327166095928525054260916359936172076993645302756908698407525129270782578567398765957009752366105053087333824910717431758812468698335226840619660857607673095270300924152561059939643578435438635821697098353736013335432458866098367671493416721689105125381544342916147178411798495465028569386345136482617056884665399150005594994582250201871031693335941099521940357548594671395661166713269263503489164838240132522783457357653807991310979261581763108719991905544133288940011182752317939367870693003004852334533330651634843774639069030746094267281825424255658333746305570462986540384679192077443495481201831675540895311812452470520519781520050313160154094740153416842263910908693933511835627895069116118406496159485298563792660404961277112972151426581327455127493283075674814447663409643046212541024952547618319673067266729779955024028525541197379658522770307420849469847518087797772699322607566609464127465020867496924489448620535853162341524530624766869312588735079518695908621998137483261474140871203291343718450526645298583759084676537172976959907169325833478378405890277295835532685081479854135612135567328085511117096694855370415112538986664801816304160843754195791751319775376486404022025908706088138213338436296428264035421967443898080912308176118258191983322463136925086815187416580949682197565610862025465104379130067418430028059025596396587194160901642885822005562955660809621100209282883589416882817204475660021768412715251916117614532582876338948766859733975437995623287469364155727361758984192668961622397851999148192905207137833692718297984337577563432524677644662201183710005336502733260495948153595681869557913899712957909415493914669666214644387249933157326281534593007400234977890720103708988131579235838512189414934029174914942861523270457493910476411783583410717158685629546342915012796730060854121397306957480484143804954144668379589208392926951160407382834229989557758344705337437936058823739536040659016621600981522173018494806328348252508178882914177007808600783020468571857192688323037975601286221422947312082103176210535460790503789230283148296568895774057573600034478195481348670270224738587487486491791161078382847749770300141801773598563554083370103338216483393256940285445713775384804602863132741748752401433116248319332413987527513924794977721735399469341643125198480158654829041926738419090823274772527717037547169771111744924491878837260248839204875297786070430770746087023596689442003030790992588240326620293868404418270791328402309677369605265416759909694767768498014017431928382813689634472124870115974581898289031325238857734944164863931153342739508705465897706740774581456102139333745142456985986570856540287577272985721596312592177809120286213174223943199962488495940190514250364555590087567478427826777572591331168554050079364330353115245476469571220148418478825810270361633070657297291802603787255857401912921988630299773173494853153986857524767900292407246739672694508327945542074797441008233572087428750878101934732840293872522409767384071893806628594315731540660820292717817715182341849268280566964909681867211946881437793206625957456129681378856691534110432716473051411488603475047010650209293149762149227055872675484016509728660974173302212084477129347813529881209911461898142720761680179617898325864509358507117222311724629299838700998359762502519618907333317379589407094401224534293181184935124247181673259986886828612284012693338509543860141203650792242436944454878264949079983538209448904226680894124753960837446669520948642798514518550952242155277530491008600630953373834823519246386184425273710947306738923295384610837691078542833706931936241741006277308339006576720468613927701629735100027012455533657024946101433717152766378836706806248483754506920699251831225349075726105591436428215820898768586338599688032163822255950671672310468916435138666021436590897275854132814412423839505282541498736036331743594636135641572097623507381791735421640452553739917949583564048838618810712912634046758606820819315994050058005752362066174405897444022223939672425013591084759883123222873285604386280129309769756776010920916732715313725569910422523596070947655629492544797193321510159734110213135543903630037046521191742447200751053360063641753023509845526758719494159213720982190464547856630472048882930864311954605040063736368964908934645970089670147236191471685965486557338871749477428026124555193999768223603401389830383942849666788276403948169298349173415638670618625604330096046863399260399034002747728382379816612075470247360902262761748602123933756419883446406078248390156486003425241224688262094443314400194109841965717377578075231032012539054268401338813190627343600094542844752452376116733793228502259661885326359712800353599343436051335206463709127172324317166311275127700027410929191908195866337451565004923715280782542798996164011052234551077420413832779968522842742957205564952372537922748762284115082165658541970533747446278911691387759617749356035946656797868543453339217825146772667747435879365849399490181115963456874552703923339909574614099783029073516417671349899044842668898828546506778337484949954299407874697358011798250927308953126099042679677008702386116069748313874243648468257849112652138409283719593822642705028819297455703380359190542708714652936877521035729624497490489250282488464067174628193420544684225107266978542358847033736216385983132216665047265849557585816944655147567632633042067458780564626252993917017394794354027373619900957925730687617276325122928979738308641809292113476585906021291963419882955878969439238501667379267708864616265407725701447719543398754382021767329942543558221739836431769285738973357117184773603925055490401351265491329367074382302557855714835421163729823256441564966820145735665229850924113328349895519973750735349776451976027826136371110319351105214091499304555174979297110894598061749942799300755305491536233757001138641472283218061699129756090686670231244256128262957255961411132750441589336840130800098669806794807170488003210228290749537356462755528386650337078238050652175464635597368706080914596692047747115615199519388063890937313304102512483787857121318051586420805506279785116636474802344840159961378062267388929170222576682900915703666277549120059344334072610991858768678238314685275147226312707476632924390662400091783911566032769291675994916396666637623408488976140009601221455617142509619776819349271313017457029811363116322321749316353350241057378076944667536500368683550773263534855104100881430819836861557947643732621839075778190022665318287098596989620443538009242850922454812995345304377380934375675416786248014682026311099027901723326046841954686511573393580371483232509472659398830420114171856533549764769075906127597504137094639135347406948813713655854623694342504389808747400336668959508527654772559882879788461132970298077559716980185770277845400997539891884228383690561926760817967625324361251705193570559656554772094637711318172257660170105808244217967979267597481609398314264094777557359500327082282942229872799528609782787320857105206603769032385875522292010250442860326117953337997469133968669414199080722782633889402039009578459817036157039242389342680502999918544024664637340205308542213182488694069597940663239719172009897684320510920919826529957796174666230290284020744465380923026481532723288292277502648910324758149223046640862764885083799376826168333459091980113693805353770912939827808469090803356793722653171249938387003404406415462388925025855146307301150920397669201063959435021443129826111450807512023807980004764479730051391503718063129683400171079246886753988057759798496520305388632199507456461657840823929566573110505609238527145631281471222078963606984443555106984122005617195834520808658099837292360520307205125272625018430677680123436367811682906707989851401570494014349019560539933805012307063432088325728833569285325216820060933768972612920754196582289979032418781278174705970316883115674044167711376203775133244115560739441073294543400521911458874822345086316351433645735246356465198161332046631837146082641681323369725986941672479862413690907292319156310141643050590606938413021740938602690496452550372196869265031100987905617976277572000736442263410081865995038271193097413320661682598931912834955590731516574249808940795975536972880828180128151174899811167879371018689745798753861844287859700717666760030138941454981051469086463540672015226539234170248317347977163165688282418220620073571568166666814062205236456689325431385320845400169491582605969244941569037282985675360785714215159397258077060423542347664404330367720516148823816137012321437649270440944776800592731430440205144274529563198344251866490947164249422899794073625711882376646394440247800176937086792838672575782886071355782840478946499951532775224748360155307012658194501528547559956742682633973138640754228638214527449215036162571527563157052441094693599854724417678805877270102966060938953302908578812202203004822160745427775648371878485275891931228998811283317840655591610039809172847373412199335605038696102450352403303573997297746857593851087054489809718451377228705438447650352920291896061412994741313098340095667871490515413243024092118157181317246346779169754644633322584806224803659754856238812215958378797561894614148639896308389501993129337711433906663481488693827918456413364353098325896462151575680131460764914257746713264444670813646639926325811422354397564488062573383534426401070885841276278638151149684236716002439156480830948507914264347076602184313700667359392239142747557550167903496702236348116102175371943443207356368501585405062235739430170939347987635332939535603850296790708526108290538129639637646691332669975287927673136174047906842064104731779650677519073973517164548953274731531204844241521796251111519812483405270040306278537448526785417243080823749095806735233913864845709101688413244959072458478199827365982769074264246793454933538495227006347313800267416016046859848946988949401690811732592408383415280696295361880797691960245440528344123691991793113905864710535997660534582649858695626237374764996954476068024967495222216271092877824007841322882501885442542723745692543300625724260773572830346627313304654619542087794112796077500862564709056510236595842374009496760120531347347345858691572554036484505016114539365380029810537479260185384996249294656426893307047089473889483125903729452387752868878955405723624410232660512560886849819096781196896795004447176546991663933053666250522180151588206835997490236615396684523564064496766128293363652825898214536673284955073658996486803166577847745901428904013519133120565992627914927167965814619395054684311982247671801311475454481070594072163662688528788579612406903005473907239354279096230311575728703592418245787828293561174461693894865421911466206742523161587508785772703934126352556102279047243607445230253742305428355636715115569172015135615172608470903620422386676277908400011900748569519094633636774180734860811855434102858246438668099571736337238179142092757487604126154590513073475145305146392490436756617021340575307939762891301467388468771191200927563086006691969783223742980026175691236333122211580900647306467468656215259571966757204896391090014482429327296909420886728521906564350769701874669058133594026440347149598464120437536168098861504453064492420012690280602068599706371355926104278538575693753543910057427986480287297131826127622196325477889307673495528698771014765478138104742638738539982387822670457070836986618166838655869831322453831502031217944819926023314156653433379825513086000128565651526993543903458113813792703196817254457257205082715530221030625984489708672237803630629507775052076164426103071941278870454662105271962874406754810946086329482743719942178132440576128899965000061349109798193275055872526296152177887885646966337815250931884064604474536277303156218909635440759213680877490492374504376536643121757030778239575137744965178061663632946865114812052961735598719932329399745257056428231375184400659933657072654435042096560386782890941232735212784551525321855173078886607016751097084450041044080604259864948918698865016485527110021462869996774183845420118552126459074936338932972167195400850529584258652015757170123759512532145583818848708728874913281299518394093655735104030152871595219693282258921371185581840194322096101531860902899067313541182351350628939413402859576899561154967395984945560734864136923266082585025027468309616374413503565309884136659958634113244035074307643522171301384949016515193869549596623825644411734048823771841435895230231064177638402630568808873910279192085323763932029631787490223218976879883762369875977205143520738980810492254614077910038043534032812885746473356630951931440433667712966743010675064889330022378774145973164624773782188743263946446944686101047478279968264769573855674872537618602800223361279022298249259821896928126129529028132485032275593720377660325096622521182373119782463193380813617557418412114609362770007028528391232201484031356068788968941786787768822208966068426823524316622537427180796676140597938207218377756283661134492051743945084248789727674735147771679407500226924493188363699019465690355066675556497575604389643344440283674678912618446371043356696446864442009234326450219605106621029852034709911016516569276672731294751620408600249921726073761685540735404448987184644283454839898430163194502723172169030563838322046686535289835585966640388356640187391350839700538253454818614404894605524556330519940483165472014724873968381879446387024110955552293906316275892608807971693581706840502792330745797106301544398321452929695604930874128063812002055187433918855682212309396846802031579385700212079949916668832171161797178891175747414999207780744026950006932659668438196111244334869173131312659618087192090721798098574713736943475759093224842163942393226754952872368165428322178852486041108088243467805113353560565923881941797161734355225889333538153914596033092792400658647005585774821818497994613302394779414248877145507749189052671340894685892845028674480692315332189562729136856986574297794409467189696502163198925048192253695296326991690457005286140847043985396728515211437506423591336413324321794119904616095097476151631309565871785524237821458305555996450371590951608886281067955084969040182089343221402745498797436103793620537434429457904803635611403257535564743967405601535309676588420223325713526890758662508432453704256161590938531664433699401296436649786429880666868315147628636656977043293998438655121554561459877931992379089618977644712434154359144634802828700382248705249988098570776734701917475583757495369641447595323182420981377052424982097508465936121331817154915188130915310302197974056765221340122238495379190082045740813904863269163462378462651624788229965960374093378645986494153186360405088043220925480244679808226822045282414185120189864829846246733831706352790546039311271099713853676747454889047185308466468395061929214504242323903752933703429012011727015185629000804864770891207205334730386237523358288053928374271662488403847413148191455540145766196622818551043300961186551911705507022534732180644957883112653320137779405480854369277457520574749423275923324366708009132527207787007495759454246266208487259377711729326030345306418031607386672726559822845465771889874039699710905708548841561876723662448703164247044028722199750993227205888164497135626261490577486243098673376891088017160909932770424509042287182292957764648627729928266027331172223519005896501834919899673146491887013198120453921515015000603814310705241607800330523770399020766606380240880467562065877110459080258410294871564943297688356222548264003044636858498299024315713183685050739495584046847637015746539304440994196343948436352972579148940289323892449105948166526693951345712339223578198200366324809062287221155447753097080766393344175213249181159573188779393847888727104020881119934821147557943494815109887807923824862169575432226434084650575960705761891219953597242407668274452452703925268163392227860312531925896727117014001004915023658589303508273275159140389408785123362498219115948544537739789051083966284547702196277526872365193524758693495486647659487942648370207000013333739311037965049548532650762622496165154459368791878181952202952442775792076392097417595588371394937057713228120783730887222860568431840172512768989888723839047602950391939000144267453933084264861120971069274600775620244114541397752231020169352168318274285550264108422072054517103154328711680456647121591013234912849961569214929110433586847337356810984284425838706051217107011878712279616401823521523070471612653965347633613272899609166571097460943336892208752600470595473833497926379347278317469231994413335197415927236177438177546868021245144239000148854290124069315501975934452982755059431651635003341889055622875145196675136759367697833717522686861876500682160044629052653869024296223146593228450104101973770399296885360502723650523288618814934970102758354114746495854776257475550014770753874942820183402511786143101237147480707501151196720207799067528628416780766854564652940840096485392195108621837898646574927236135131276623676855730142636316138421084990505890892857217259540629575001898347317872473978653007128637810326694298530412447462022998469262387349903018717507497262985384850018659564872925914318430832724972145136865549053470078423054919494803494003538192744941381284983281292775787142381597418918180611770823265696401559674999805454477513876171756677672193837976098694341798700169354710945652855696011474690545371374979445048694208313769449718883266050627435688294539961044923473161558050617804305784509669201888983236578704030924965454820294598843437834135663177185673380955555892791736949961724701591729924136883887427168064348023334050804951473730074301879077031470331713167638611413439650300650273882829864732791105690380654751487948947194230780660479723887021143944697405725880909224566360078390344485660167732908571623516277875083171591597398595590191871879917091472814139436002603337333257255710649709058714549286658083819387417468808164246153232439854934420136939085738856122759015611431390800686541626347602458889879139425036141011082936348664468992276379461670768930844401811188054538785986103720914863795203272963916318976383106890848480299332191607725445709376464148033438595619316788874016574350142257134336141540080062588535693700278006309804913113469952100342363106810828895964259574758265927615858296377987937783990579948481158923037509590796213628032838794044702039628812060845379818601442732963890294227171707931828039314460964065749661253608332388658712948272609510378278892197853965704735442728956269317201105342120915315338196733553491729432228578249190268099269715798115427572828401369893077262270527719005749049210505070491708498253429618786478050344191064265930960591337845644033928445441254944585995199340787390669594789192120381897150472848202578510629513861161838212875358580751082643973951529685497871056273613305207214611465793547684100061930677572799699947085999334844566413193959369287756100060084019532656439447803386752817379437600729148211544781321348381315038741197460047407953689603330682693324669127766725996939313065826172823079483498492633883794290386351060492556324362155657345516400827325664514362859509823179286001076640952758577638573291759773663473102899214600978634641612096515024155128930371054990598886971318914743808559402525446303116429251854751851279032242901085127968982530250545108563182122056067086238057115280404045333372030088259640559488685406905010562001953732421798335968638948720988348752371839858571133869900069889426124364572447446290742787849609953114804167605709806491352450081416426221709237509393212175306773332642427711921042612515013320605922662444612193235516082937203322934424817240264987927061225399938926612329519866287048700563372681690896262432444495816397230509462983972340655291058081926807607906063765419927699380850545290307031100582682203037347596111570808354532558885672326516981855098512103647851522629493934896995918977459951097173468543879277131995778881021130038286237125390545499217601314907922420421609791237303500589872373979402293149808789899982629188440205432780975157352958762629418552393341196614818146680789735564258689229450627548386383548193576217655645676475915979769164832851880024110717726361721282096358751201273786782973570532338870367405161284317393632126882237310329667982753034372430326259937926238800042652309594344361185489348875689225103280630036688186776190433986634672232698078849597357927376680633915177528826189930314024875890049260878268707703589253780062046674842504827898048812312137429380394753278017506860130631780873136554061035431374109962322223904350233301591801705429807818603360757373425913294705843559212615077926944115238102471256352144456289748560807066324604473262767877527235761216513314411215024714989387496850501598366758635695509779920143547917736488086826255516774787953886758091577362268994708177681479258009071939152493175816335132233835020592683291763120125817887849033451067353040497912612669326590126574442676512836087417563567282962619792315113052616706158983038092750719944239346259111934361181575474049078570711667831694493664287954878764179136906358126786218473490569319873469131365501079902356791765550682190061979171033617457260177387323410366284933214187823142478416510285255643273432600001149251061522408240814917335675958223787501916882302398279982267100775132831278297552989047319288619432952300698245022322377074643837298516594193870848992117081111143257783417794410929021358007033030747832045550405005432826606260352836735510879311932842376297735235988577654125087535383946194018159902170326947366248326165255705710063576085296337255793585342218798592144344435304635873472485347246489264683747521952287632683454102326604356829569995850259754068049594582976723993712312384843455632532822934928915082648132761640359273424788754629862506155157819352506062857233984924981054153115697768317987746721040647147040884202099921553724298838505403610653518642666394909261827251638935318422069914905496493013240429364587495100066083348876885780101767351590668083174595361058272299929642149563092961624948443989605385159441064866019897677185730857859549465528595966237193826420050606708076566200108877789239765373921216293977391354264188399322928423528220863554621767232555853668070307948300188992896538828579211314891688546981774416598333430870848542961377360038653918886558109103850631586792206290685854967311545623570974946991564355825174607412715167530724419227463032244833429976421449278759071479563209509395821209927100689735873237438595701580838771021312886339585159935430621834374442903788989308905914936390928188814954226637419965952848530702869306023147396282315986287700691684207603812979994599280863689735725565971587777109323743336807798691032761173903697301647380878319761236831271163693793223880956116393248248452272529114673600316902340426604267584860240597464488380850370000625012154775823664035980730030228582868518009347617421302954395377695843277141943490352984499772008337914843506734897965121935725146573524407286524742300954902180057265026391609826750873910839541518088418429158480849730647068536817676288369291646612268898519754182284256585657544723606400463755275140021430399176677091002497439616909547891402666474658369161694753147423741362416795208571186169126041029895830391487795995961259150041300019067889229223325685780572798372283913213580381633135550130380551103567013599923560910250787349136354500049225169460499920845877651676946297319714893460219367187921982510922405603014328561275352056680331948801713243636067663074190611539416611417760568706534575542819489253079042646129314637966747899888076741493042321816227956026525838050853226780600454662751883049979934505253882743362669649002940589877213731737664834259260526405725118074742382429721196521458415410434995739941769463393650697610993377351954102945485559790326175961217188009031857252802141604895526702059300884904222979066798844458276050333462967858523782567724539117320719349617868140221013889630260698102818586485907829758220853559469474449449129033767779882183374990463627657677664236595781108142586825319547903871245188788604444159074648344280592759304154261708190633909340544114749578178084359256169158410979584825285944256491634509393764995694232046512080266824756185511975714571668501025527163743268428233705403983603166289959381812282115782640880195624742794863606729092708027663277524116019405849087057157080657879067312009901954724958972425403251479396126530245452368689907891100204917625105576215682169805585027708834579194183966574922577355761239507043057066944940352654163356418551908841713251711426717880873262668362504102540566917949959545399531338549888744496978249631221203484408187901295252221885003935996512885708428811440286564397932925023587228588348146185108617067683115847004508843025375839856098277412725092978522802883815876199624515712926316173782377315177998160383017749667267752894775794563631828210199221522491717965075277106671393950211748888165663182041103827634815216321635970650019688284324816992584320866886260261118379156953050794331035705604789669756136108266824734456401238544232659784777535099391516262808086484455325257826772904529277391396946158658431087035688302758230258820996836349553827601512570895672279269048873465687329180142710610854697755878685973697481535172161070548084698089271899905348621869943088288405518249055750667773007568515836841952569582141212847389970028906111632607458722799414534732478434864290312329195115256027322690289114972636173816405586606106557455308163323108813698856874649515292133694393628469375568279383894297327071368533559005433927588414630370437701086971428663815464803687348081292341658499613865369607118380219261476782707799188672787052180313124588645065988648079043117493899409908236317149322068977087198995096913451164020258850336728216589318021665844535413536747403271866498884332036124916824316203076826605462234294688681563176812257435349116919965307570326349836564726679064705044191014654621653097227143829693072030680763435953361038246800702475186035465509958500029276130651835908628845822813971891160698086012524229064056929616994196145448434475656083382248989410751001289514473951686012396075498061959060327968653513515474940435227477344394945575866348844277284642040574215106686522356040208522002548469905312011593984903919175064100955151825509817846851151236831297699152030479655834239679058933649176478973811869626607483651729206213779804747734985001965556886993676706874154369323008488453480662374942544498182369186681649789188828108762497767498392671747840197271058455594033414417513512739637823718422640844631640163289586345681477540193060260353733267504323475901964225816794808210772248861756115061776407151713414338792883847257007148200618214494910679711741725149315267248665649934798380035265572770990942369461558508831936660325124809970150021955314566003282920317095554364172894193766668901765300187721046082553466262906463468201986796683860767334640872227853371919537042208144458982807865070968894197408959944441832610772522983616282576200642199391109121898875772912771110494169231692725337267432088117511766903752863227428208648415299901706541340174028703623219273658744847306997980611856611120400675863439141940203235445479482319832141223212908464343459790242487662957584390483054015336712815739775582588913502621343459995431894988830947262633952357041113669201747938559317583669807189527346297775185617564680277502209030158799347954991493810713967812069066945450889692838498607756665753308543231046926636756242169653812988350188068849151298619834948356549053998164723041027485340951588941126370039192711047530711533880154175375249961293387501566151052188087646105450892850107733911713692966365258600705027360724030137951064966470221554171929151691138520101578418858241294968122024944723611527973958515834174837785718962880944680363761658834318491706515578093835748726793785725962749965385345919415896074833005620936047608201115536009207906571174482856882741255369333726534794267996342093640836748364253778574294244173649596706872162580021327672645195462345479288640445973474185353975868722020665223349194030910969441202137128426750762636097300184326011322496129189217099167035418071914007083741644595360920839139462547758850204864849174507460378522281852076277002610462444328911210827607287808303794662746845981253261241244954446594582607524951034423766144340544149615397457712999032761531170837718135948179227813682765270449506198686178428889622064941783296522556318751080608607494661661929112264884017097363002098333488585277016331753833284859745088975254685200713187403570392966625472321761282189326313382909122015428412951544054666745111746989658126346713563057491475058803940227627147153176426475883643578029958166783953767582445071055152675679842424731794206261902660344063581079289335446743841885324973675899915685372838925384237155631106612691899182503190727229695090178214963912371913117779314044569804796035421422264274792108175306607923703576082852066609386268240054537516874466868554909416071413933741014092941687618506886908777299428873322475347425107570459030483288411169005113561654797300235544278430097758932392512811918997573470061121300248107951937899667691126462132879924863830267725011643146072366226265185630150792830645700373973965674918789741095327626897095955581164550472619579373491589948101642380355290164629586416569408624886657283533591701450789670193096471756567529552968337335691899233327319517365725445693289125320713094820815566576547729003507093850176114541413483898325677248985894463936157126901544425169336780164605798231165231464906053381604836765941564265027972437769716610237885846915588065683300479945554064170604977685671723587868269995788074259603694165041137531849710576479848035114819183814306355578616165429650120239501794634925680819292091771877212791941815915212605863223001315085769710695182980428842655279553827116083923376557745018766352335620540148967012346684614683263838627108366911648062852854766112918692332833242474095985689460417952307342242877446009878427902767268323106610639407008700041031508032030924901810529310578842681322196675287080696440404236032084303985380924086395804154493838350031433066990537649136045353504301508025519768801173937025588513733690132374440230020879988554345098666238075268134942165422955638201973398912517861731903057540583488480665665381928864178401154964820748407550328527978070473863856784220931115672875182621539637567066241306259924821530868613811871545796498148001054868700971014237810119291457922944909807224396753482835147015374572660518895398901903944994513840367772623353541260739485772623518134013081799771506846344094172247176343900176706018995730094978055557235773620508514893392623624345389798440860834532736478497700783868503190629870912883866678095055101687477566324089295853910703451773821170346913503608434860480841747160229537901762338862286004497877933064827117696906540516037238901476942071324481707532352415715260175476114196409038499097558987645949914432638714736379712656036901841095380741918474253545788238958690436744833697828942718915142688256691054827104150510998841877340946061578840781203004069076171325359142184477473899919222020875713785822636795824643919636193161382620258471540457050376073138014145263557572262514039288051472265117226730941696718404159182481434792830743593532014693715596722568388941591354693572202911721948064616560389294747174378144578072483051991706286544806114955546878429282451838039201603092717156864181523395238614366992704050402657833805420251804966009312984440655434409584972118982800789648662062386350204178271415322675778774891962396828057539407943490726984953217440477496379970098756776972999386671098114687987966518319971977008642100708164873000409084075109397686397559883642511184458254034309199149339699644294398009288066288413912625538743912095545522251602702088224065233529994363782606729827176706413636347939361886399774143345751125705006230307458600004590846651956073173963764957813311025650837421767525026169376295885513268950725664902223269697041072375662060764359785324705195691208904699946342975624286013853542798394195434695978505163476373264736644715699596200545421568972371159935763486903593151169569158494723395435494308311832112654951510124861737061920438735101275583585308293541332274468945102347219967305808986886114787074595400907200104256162468143417866771004069207157356624729372567529146358308409654527775715530906686278975646359051437056079168757207459384155309357387909827580722354150291975246383221729051014711531457454038052806983239412933800829921677397936389408145002916753067561633408923561076467070350870688268678662437629188509622458271983559882684233492520691509177715257211585082419663966529470051292217393260477189503584307829786348856330048881376187222339527193514588047778561352856919158599629278019243498587921680597862631944042783874864079950327760976096577808525662872273131916011908240185234162428823078354323651715881982747025300484352224933591077296278030594546916872252003840032789270861115121359157792739946894196502774122490640586827832778662767091178020338038582444332761610718099841171661199473975465825412269122536741698830719035987172605281502660486273468146972838230837365917604118962577885498141838263200065292354283609943941706956109345458677291580763632552069248077496034943189689442912745213650829831063830813331364933343182399825291704533576915114361386302012930167598415402306112383640056405182789768113446067937750681663338983989510188393416396447829214551683388906677631498202525248644166837020671705359477569181690852094642776011159087474245151884893942227559746953659920288510916037651203755057462446641894476899635078755311594653838833007194797313603620582237583948929994854603583876840259136141696801861086695852014187757228483025366289974849032602834729502953697917011065425565577125944863615128976782073644919849696135483462021819939812210520980892105290461139022427850443794527919764024256003992376601310656161357486201836068459698548344401717249609502251052588144898127939868890325042670198760424600089734594471711697058261559581999149898660794028394522068738799703109188375389713204981975193907127775459166124228734404340889084254169816814413400228397785068130841493444549880743576173797680371833635764931641015595761200912247001843762441036826942983153104001167609792622260275427271892288002255362115941526100843685982531404248326679463294537210524755254841222869046258707249095499381260796493261973727331138709081060659474667174607026145027702005526923788370631208383698321802846722419600541006554090530924668978684175638175288644876077828909905175461412811980157933340799104060585891172346357781685838779840899755924626870348805140777917485520601479104153839527623851325662879559695387506896176872570019207013096282461581449839095172424862046323562033803518038739425146219083186184817784980452639064179018137201149917918497544760627998584762557716947749455841703368343772751267293259128371542755342450178540737951607888956763694511269134022686680571952505847412791383262096755122168359553307391319995111511886950780168453642909393356108298283913865584227856061649433211859191957449527699485165442386857090281605928798693602601122261843190269899165658950593978541077611505675008927975273056044738714922924159772559752851607693375269837520632095164767448414411274642317535042442877958436112309667381413260666819867199614492957879022269777775276129569383724544855819708680024960966983169391097340043144335801498057173804367166758967588274611073510106250128920566702769620947205138672832021145410001187913048261754004679444606528411611081896464589238217979040018827498635571632595819239229595269526730691393846692151430540647403927362024551637570655890305107587399854952297403114781392172859419373120556618509462979346771763906141689706165583445206871392680151329767252626621123718284114506294129427888426584709653705905474615541253629931392261007891296062876976830717220988862749818594740246868980574497656210084071733777645106771635514280727594138047353694750585920309700337506203676303016043412606679280877976136324602397788344953950209027643187486170907639325245577941289249494640050541639787672337317135740791518945469093343840350812432246110806680984888021459054566293692507677057001846751771487448288394633772268099962530592150162695727960241443902242541398348726533124672916518168492698123313893648336792625412803345747628336188093645560882143897965569390170510533472889058564571720933647989953499688422940159363235700017862033073620843740711290404755265260811351501813996619932450386742564649707654384730667665621978752969322898526788091112939284329966025082732114103209113966570309108783439154850321123247562204041175170971151972839408396202065689745684377755861264507091455511686197381480170197370424514090805041932626599314721982498067935542033400388843594548509358901297185638311161526028454805247316606429013487541624724793334397132852586383632705989425289789203251168665012485545102259394676592743787248090372520167481243034236687511727311872293232952740197442163944923505157838119251928945997590155648114272960167586187558894325601569206999319210299487626358081303674756961891017929613845528187653592783338247060773584895938961345512502493581444902750640171539638875055143027779341875875763233197148567514339555455157510526783520237638261422483006463516950622772746625589735238085654955227112606361353993525631290456072383999209773115127167057666936366061210389483758220166353171627248979959000799549616673165427409310811333837360980160593044365740620222208669798191818008662683013061292221735816725211378688698265161879409129341229383669694865649664585904920033036698575952739474931931039026020561338241836948387012907700283980411491382118340651715953949979420467958179454125015598636324010181632583238141864011521489801744955604412911813111338229339551583914413693350561394030447830989227574250588180893173820899169178717091468446389790452986203540247675691806545923958152767830524019036130571274409944961170367606703497867531813911336167963292323561729397736202787093111314910737749690393819542644431808560543213757512866477600652117991278734103597882281807705418745966916639908880951540837038519024169886680179623001380248781718000079776055215630869866827040114081144232758059414249244754612598762005956275287699360642258300810176135151405574280731038545185787768204854100955080856526283571565332476047428554411377125661823590843597378301271588798984643967373409805254959604211965182007330458869334035685738295524354023463550628939547232478680360318752276004545034367111498750865894169583647353916460139937266438896759920636284573553061371310167045427999716953754247143449147559779183866155067112590467698401041275697928465019193509727013224574221748834906882951836081045694905643847797224992434203474304167134364613733641458777341201592238260815505023877444683539332147858328439877941007908337256954538013258785730433019619040947990776387656399588559092868106454137607895244316745109713577398300380441625666303109699891487999407353391590978372141681259585571776436102194578942587358883036287337306129074614970615758815839182951869836679538417999007359297793387779567760481208804348584825192571578105243454070156439622560894086357049253343896115841419025141188377457577526998847129457073115633780422347385820481992515921376645634300329234531231628655123496222152006663009762924601015569820792400960727527329969530418611086950801378569741061844943028138290877314504178034624437202422551821343199749085472091298417196020766410770837479391280014128822908135195009161852113034576969008794093248420464100767967511397014167973269165095059467580223366447062469206381860124360563597757604888294098345231486205804963308128854605741415248236878528916544949038089713254729261543155223565921581561651324693469887216107385292305539881939398219906041433141125613559481234186334357082453122882660224214770526020908333676016797175169405777216617482687935040770336764762815960853874421882016603641069487800975231487387192216908162825098656850917473727728498894749582107305781951061653562957075795710558586793222167851121241565068177907894703080726080884506081163132775238372655189314790834364846265093646206425957922963232402954214911358851189607209700895953339808450127838637070577870752336744296838922912186946185834097056412076467792111513603890537325757062632319793951794201156240964632828756964772424100166221895534180060774294938577615647259970202653441076438994493162560892488179072298449754173153788377456352453010979336621060054598541334267282112920992826220837269683008614645684775768496195040079432151644743701393312397555995681497397538191777128656499903520395074000931089164584581325541219519656606641760849774501873668208444375550124148314313305152100347748038912285496999656172010626664856000902874164469477227660979208311913758983492069599914012313242081212931397966509124837193885593333008150265833430481346337055561603531081253787375834326885018391127866350355024240985529332700543323453574516603860977368962585364441423779991219219785198490079114878008709782392240645793235337799778313210589978135370803922866793404061593274900572415989661273191597570563972884234915356784072819895080509740181900976067330095938747364335164609605659997626848195094513782568320134173712660028871896639651886916234662330920711212981640915228780608792187284202721172471369376153480668644008171328039448458080461597828556553597862106443765056697135340399291946423908626685427913585406360902844240820491653774434046697958895361230627135800612566542648246126655475200901198763926066937584286332249933767162630042505262281900982171928789314030230308165635068722880765755045157667812133453610712542155305599616153964442419885370005455937702437187269332523164353710200616984220809972025201570299685428365207774357852695939599150678009549980205387645747485459935187627274662943555011449736089203533169736526856090743125939030885163119466782313959198127982610551711567479035449878160995744185487197198191409355533782697467946239913775566764638040626366162573325388357481952732097058920636348078987258911206599511556054037978385318142079445684446977749280802258392944500376219597089557386078081497031373166251721638780538763565290610610886760980643419522915901777140234184642243718316336487578840644559502817656879996653471325586849919253772490395324582431343014666181702630126539181084942147647736758117674905958304551784137586584584851171028293537955167841236191498313996947575245271122966648772035953013631469382623447713401696550117304630842793926340090997162973403116534506925850582440507469116684957161387620712718300781311697570977746922055899153449814257735689161376306953920396543967875589895963372526213378819300075119882048689715257011549651248114411208058555748299213240913190693929337893165386618479232233677123603085700789117965880105548678201467560997804275962486521126170949685075222096474558633666768048019093033696272264831973065086423350902625547450374137042787379381292994495209683880566518187806528094437861015295425182941002719981988435093134391405766299549217295199558467248704639459308015170963381188509655595985856992743369695540370076962123702500181833382602098603425604765549232934956400736054056073298871279525728155459517822979954613520919494424486328616277112233734828470166738556912131045753819186441279992784525141209857560512074395068625884849032403194573318640944039756362994569007160387880431186075882041103866080079087109137543493176404315561356478376353398363066751579026827114126065260985271844474412317341322266221059360160574072203913501298232598508078794097540741130628461022325464929786603862187328622052720911614730277551965362725532113033295611855239169445041576248240040198415449437074217948774452116999408885895386903874451669359650429557130229303325835187037776059120804193181188530013248894424910728594256474270529818570735006852224144394283506811638431789903722930830032957333242983780739876847775888377331211252497995433101528406812315950803537456261955672169646123280876561166743103525880780561098090506124459576530488469886170984421245457472986673835406129855277969046833541011051772407582312350706284309802643380310171826347406562212329782168113269942431415081897159593833016513739956480079829997393181022235672085395199570083512463597834935447578731311847649211741007389137701804637258489913889751189724689654750877973829622488597786121566369102343377667678457083639774931928202004752466999724207914431590527013729257945135181819138159620583783781272925844830875714803833598376254129890836322775066469160814574265152658148424091496791292718823480517063533672303710282263099992820167318774095887331107495276188601078977288466795007120116703062844155019394173121181676726182265122801035056059423087574678139789912667392999688618497787996857280448326418805612170487986454843408194254879513221110592517516770682781836779078625920023445034823781546491574271831043102891356718462964509429372486444098167294864832348151746389189537514965763145112648036273684623817718402374374119107365144829702147582638681319715292945021111373645161359136606221812124419840743057875189483986873051323468903915180697133527267127103884766276220663934693011289484328746343300697402249889595116867937691153022286834026672214894149014631965038369123179967743976455042330989452755290249569995493398014020907937884873365035312098190160794937519183599985133569235749441554773695594681492342642540843292723521230421405483369936845166093195662145171724114192791241886008388146231812310332039494703313124375568556266006848856794484630209266077932258288258619834503590095033871282342461480283076222127509434517113682533308546337215210505565692133980460628975584863181111055957536903144800529775670438424288965430795183927328349442894050379913194962064059521333951038561469142598367519651984870908324798754132045855036703274480391381995845258890014613567077501077602314709457012987640998905616856625252457412703389422909773765383531002132823105305242311212562379989616248788876042914370842514143594011916543828603057654141072724390694228518772094065239812507640769045058836240017056349579507284676323659723370462903171787979428539242124869839472109467688404983047810064858829214174968652140835347430919278130270361715577580343650195347447827999289503282060444413837752271807541978857678460396640177511181232787926071510524609711928276321637755701114228275611148363777127121933656911645718898304254631184682515490887933860793643674616125220108960906286070962860627551485757204335089604456981965323021179185454412287631585579682223341532003042395844115466014679856008270472767064894868496071379267919934611153297280908240130177335760275374100972574031981699091650185928878604460750868907712726843535623362671974448821642319132360083822186803996141156933498177786313649319038197528738364728284712804667056026830249905581735570037208365208470397936097463815526053261326186204982797268589674142594772567448656828958206854030477542111949874008906383401721317211143865763171277455436611990960898545859369191014431472080935229321262512138706745522437143723170662874302437610005837668410358415164302341455006929201226781541215532935558618228937323448210817667010794001846373803624713301307658929108590159435584456621063103393471280419405209847109875186170228806002975850279648002017531893227318617955323480214753534981244440577274657071070211702539501959813502393071838333519854363642112933326595806004663410592551665850923057247504618467093565058838442769408430329598212299245150081446541056654766355007530497496289536065488163851693689761589793581144626289269695898240352218786823811564102549732193906031694411020238932431689192529875825180768360971775323637332855162463302638457351838581810439452956075461218844539771238381693478321502545233683274336631597656782656588839077488118930151839316244081450834427970096965427751533214835637621707694928800520971784950202386470664635288731855189422191543250104352779257503385657751896830083186689922106939675959906795462502835628072772589763207648967532459456311048645314640600170504228541971781617267067094212351210229471789739047879855940965160485664021045269177477526704496613476982938399941622411234707048163176841290591509682119422123633565002235323954431339222854257112219013603163595605226592364321533916697036019170825338035973490854156825490634931077979800717196064762440002384279825401183507543589531658859131525482930527412531430478496274427551174000163789172320093299676680473854802698415164891556493408632375349248444664717059806603682717035492031085962039967661099802493080811860221645381836174114870816887765902302041790741640516294617544371982965253272541082784997320789343568474902759905449113221276784966116430107062674718025045608987181213822873168527208608340883283330681539566561376084624266916000876457955555738483328209472590494537124001642459870664994121367773920243297828930975837651795419631355039145891078835268151549505777348901730228537378253182373907218036453834233035556660698779322190421542339340928935865961130638832938185332391133448962206367541545326156300563447124526045008862154623182052517610209370542976159533340764156640967953389495206047033417446984078658219575757018913735853605076886180559152207341553759352100834474360441792129640384220855797794645827390116876303280948112392776214851293302396761248449114317388462201357902401070250580800194195287923421069270771960724518426121498297569368104302672549514030022378824175633180286551715576291628896703229197681924147091712123317536367303669753631906502432959157622191915991801905991199901524918060180521422606865625108318133627863838195246157931776206030291731494228368365397894087971769908605537962290362834389199829175263739186853010471108160611991640764083627411370332997976719003789930746227965006987530475802200150617994052649567471362062763286498731553525685888857075817855555913182488363009147143117038807619448208559670713891667998461221957624307279487516843218251142018687300643199516525050843983196282911658572465968143871730579174705909104744900751636091383359795712894854303810223909711912624614697744988626357850768996931561557514669299420692086712973484652087144614919242010615378628954749936558703002021446481031419381298603217155813686125491541399199271680330977442408309167931271305179334574880517601285728513609946365838242133349387411990738742181094635876567311007162460084432896989400843341647351439952119221610902491519955851747224901136431770393184851907908022664217179170757093536631572659118062283594368311183122134304868079056694522931902965984336512667109127985091447406566505478749380056414702042342803702572348347867532555551450135530960553587291458670408533508786279435329144591110999925543115485158430286299559762800687936379458952568942114159231559344427586722857086766664300597391917074785554643172104281480318638078852312995370651769168913311307410484345718757340159247124730725345909415828925337668386351679378374335244172225298196661362533223919783052724631151548723921969833873536558640379100139699823488123930332003929414927559330283742604316069241793155312215807062036656892809964566850903286240385055352722234463610215281848522023048295775644627067882812692050522565231342813112226745844262543861100601106481370069585420647435728803626370381348232308694123442827565126551494997862849330475946181528735174037364539853535847535222325430388801142673464036765466052605139574104760290463083813646907943104044496968183463668881945686888767155792748759848661145608469049575375063467116758529435074706270255805919399205636773479167247437651674157771758790359818667431366115490476206235892431052063062108025898585801442627692445909233451567906110631595267322044889873053611439225260021502865086952927188294932271961159290296549300034714892767752515205456540846306438963205550982414645570688029978740671874158096535946221891054234026392626447672977889010720547869775015088822919230857074951358627826479371298127638887029830886114217117417522749473585514855078347835927255867336097776767642608755079431141279916068432527352287865068748436610333769114307251324395945573654069864738975397111420356414729426894040815504113149703484254277889241430516338298744165925067178085235171865025455995840294909123475299920524022953381286972980447035720355811499139314988959049248475515666893500913960797432593116633278640114479621302664490170007370396483653923348370728759069685934126820677412979745877822691700272769658272604014836204527969816535981209613781369554182677975486831645457155557819279944854458013425435823088819993756594734444653767693600545895252117642372442027935407883442424774164826788483661358702449428874891956070460808086736258117604157580007194263459734988250884081648455160644005027424416187024649181965447730767677681714311716531276332696550992015886151777211461823931407581971698708343246494985708505336206442222295119545222253064191546732674219881167732466739031880304673212859669881254248595312543094941902928069283616016605326452326263254515857332720852727865362410831316389296095835273828994618052389548180710715827980528308699026674147367875826036064634050183528218186908692332521504922412724745802228968832506097726295505654929473471083000692410054604238042076727408273543220122371369155577113794187997750701362397399452158201816888803160339662584525425809397266114884568830660498951842568034756928130558401553766988137338151043190954697634876057264167732736586288376808262470554308462899858428512087280309860354200952651466809304033864046650279731129513301312678480125860734595055526110410186810970762751086218462410502868420223836678399865038498792805391051871278751889268957976012430229626280248114481141603174301599972260882400383683808370865416082795114912174443855210184571418009851336786364210872016492623085945825639850185083514914747831293557580694979266516162271274878251760356222573555857095067352561819507818290924076208883292548325871176612295748242210475270517520094166856195914406313284818267297621848215933373969460618417582381564708134930267269485560889461651797098892837291473293274983310318635864274738835356925455674528103938052569391728529607794256952405475286770224481103079380237519016261270000243425152808900292045926968429414436875398065339605678252384509848700637569392861417725185678402441630526957788749485266159614757009827756402949364726840297392845996866650304990151052170337314283813601981132773571826363080412000848992428700529365593162595376631575209141077497477363149748162187649841177606077288647874964277928878704727234198915777082413322411557238597232585285035867845816779724543227024690376934566110912506129508680294091932495359955626448736914806613485472147128323801500029056406968660544557678851791293540271630716142914442117070573224244434045552852050869674307172133535088931690175054945310208517759376484972869124121698436334399929803098932390600306687513575717622604236568995697654740694585348078844834749564657729367418863132291668717078560572288280655266208710340399821567106510337545791787571790027391109604545009618308902609315092767186394613178771669762863787704237398374138500147243499595290729299843936671272623589884129236615138871394396503751264378428005783287408386230888073978721404515105046831273322290782169378570333843030108489608846227360142184747359404602909704095452157697864572453884542111315157970274087896868555087660389585235110782177630178850157432190228861385954363280825541184971856403892268422859574752077171733307887982822402313879459097303734941779543230642550865204160378144465824008317672271141513284179839393499785957110419518099120004973453099496068092790545912623641090683165694083680847725603204996474099449766673773270751947144237238896172775538505355049881084031035973126239155124370266392324798398065393221401876912818866181595261351734551668336477508646585019677680140328777372500536438757327021090330591763550684699315362313978957479752340338013547687646755093715670602650860993032620649971809145311086276646134167171639983400555676457414273221260441311354818125716017004202599970071326416069977146797021408496571014272590384193353378165077835178614044446820429135749344147011022639293315499372398202632470838662438088175461391739733029072926075379734158943380712711184337324373308920428254261653586529514750251499697940986478159536323663798328756885617318058656594027532191241355634296682716649457083614589712048604723540107176520778087983963638444732249891426354861574949134007906522268796393130714659306498507385283067257758034664276299959321223458876287546095285445470334625526016075659375730443942051464016402075911259779520963092799169324250515821771373473564111601733857614228280708840305928664753666641258023395558169790330552889575251697335329576269176330376370446367287921168414317596009316403886358418343748175784607626258268630623729674389408344097943655418453777975938318723645901595161294857122855974567595174094303637921517694822562450216278462357091065842490839282927768617457697988494618979205758738722150223136638815988706376508366259027727439468016397248628525801728397555016998715000382637411637712726032736841102726582527308858694990008900117079801627930715805964871923784204922045288093501282664864553176341082873459393853878176602626981809068988715782315808212777458828433101556159579192534597523612878011615543003769086198980979799248291157036061396893576243745722653612728504785751676354551879925076798791685749790182212448486224885771883571066122141824013457382362144224839172409800811623178934497352543168215566605612233272525928073671231712390526239924107769142590317725876402276836892937626160459404247899039960317234132939532622016019930720306200163006985484467283109376927645947842362118719126887149309234643467193385386433436422357304066004712238922700444595170086779596453750942671798304623009716270311072112912911474296307161442610806567306998254728286355341499692568738634441427981305645934463765807221939619593985608496150803372276956218541187527845368252349601362069072422593060138233517376588016161343698272458197367864950768126981673469416137720479110972044238110309405112756918704884929198795547402756418015138549562999920672356247621893072806697490923884248565683791456544637930562473592639580938608828575459304046141273549198255863210187108364607679047823453348665733631308964074457022742090114234490341126990909389131409511013736001553980242168859009413154175285634454080813447752281774217121500341858137510241879438193800827305021131522255687253135429519266515723942829119482191452699411087077656210424368705903585749510992812570606972471695131994898015500212071726376655215414855351516899793854528834793746262663711635202919909756903555941419002666836122057269724825666148000737609062179418661764356663731300615278629738759954696450308007300546672324630055297035236559762892620842917225065306704852087135741387502646620397829933566840052368758095192470369513018918804470790598732704731292515094342651413730435206358220014633965170059598457660769448296934321108826200282983690945079914321713644471396363470232242874459440914092394382158334908373394066830643354314320861824272533354196411426220163005377602991236088674833282771334906671341323746205779340702233163597046472184203834623364881518740695607907658036174032983280158209072294461446686732017927701882151843888887047090664311993811093675607230933343108490474599179754685033301157698440821385796992611097962595618934591406509759503966656767165823212532971760800967145807514699381335742259236170871579636425426738597468016535676842046529099731428495990427692650083154992817019052612883580280959765619217749520576132848974886485796599867857442705211360829781386022562325668197754374825810180748280529844513696789558891656339686338812242747906797909531772998427201284400067800958693898219711061536900006754723694262956304735896632628617552755807232286798969350488461075584846234827241025135066973153014670699672952349592000374356295365445796238463277935611520795425266897034556499851348793435671647025650403141820350745507600842090531980257890748727621788825872253081886718749500756956061879159708048467170683781190634913917353878709405993694775419599134983805636465485540728129530873569502574217451931837808508235707943456749180718786601421148814429894220130292690366561271260725207957519792930036140979161206622377787945625350596832084518579614796103571891599170574494199966761656580844513969452449022627939505367120059786697035188536656760768234649547447759389196003475906464689752108651601170015272325731862024239302598052246073229144609150684469122797166787354026730313453619155110633456708766099287579840086032148987350497732165309255779701475461635821997399327771800479147130986338049543889649295801790386094441668414256584642516887492842519103235998979948462423645559373570141867586093844456376827695265114034594451613922544797916312742090682695035245010932712682593105104500625203186944319088516590484448154725712314709909025702833269910353746732403334186113224774747563677828862436830261877081954941963135935844730956594014209605977158041652622370955598285630108840464088294008450183614477111792193228402149169521910793440462620825890985739803936254754091713247499415606056613726282931384493571993210579392387068156177633370759754939630837227856435181975842216476164307812141047995451140605704811665080078734988458782954471254870782254283914536917612359657769099939230563482809543593064265983361531184463579349206322681397095298384833359780212426898673907582226812754864428734530966172234202475457356970949855445474589597300320424180234984529566952647577635557800617864113680226861982436368255382880526145181902500118131938211115365128849330693285324441417622277761180080331210254078835628657621773765131883379898675605263503323999841956535137996406539231542049599942712356099460089658855743028720021674660847619691958544585873002236223057306829982348385418220125646988812692247388517331910278998374055399553909976419958121394917291524305571758845036542587089547517732797079023633702604225219717828521398025642311839429134459815081330215384066619116212724982196642446898884747921164896980609457496376205417522321799786034486920501005476800302858862424222313929139620923492903580177981889574240838425341581036168935017889891768604263812192431605669855185535691711388732708736647938608755407983722082850784471037262322300106822250250872038774791025101752301212390283729748323451972959669024999088239201920586676259659031020257634881846993901522290350182125734760382668857926160569897845942239679034899322276060124994716536756086333129081476916914814194007572208518159480191217762427270215296215860107082098810067718074529399427834443819490923849806118508280898443657202243306216842278080887337877195165063688188251454894254286200217781936045795695570343595241404399404385530066296730156591864779383991183767231570528578353490755787539979925570540214710671769508364944451824000639942531035740102155418252079547027848523828928855630346336334539866132843868642496032390293148693589679677064043572699927719987910412263074879194735021135355085924425502005622040544349994369455882395244825461680868828210143750257436439522709147458225981576739307561092818711742719620432441259702312951480453314175077143014332118113229758638739372575860325435982452692183119590988528175723443915839938916874089473809184679498453627344500613163335471117444295501553646235496164317273104736177802547642243758357327212933620677935358785522439344050021379514509872474685959231879712545461113285084350030782663041380175642001246929272703470410578521087554780216877455374196525184159197164164871803279162955876516061127659086357026661878179619529216977666613796514491175931326945935037341357596259918815110146214132916153112715932340561054767748332962349796172758093405621049441384606270497141515947430357117102506717872047470671239765712752229024487083324100126335803016603686619411255463409163505436567780917580008471968138410398130439374208813593183749461159507636390028766159978193334513368009388386866431789517776499095960852034417754557592494318849325574336159170378745453957621160422201642561203103299250691468722197700930391826233516759685699423016754623669335855152841232275395637290308486308506242184623167934418488652799512135664282288897345275315695044470084306655187685406432424652481672274725640250980369881576451547712941708800027371100256671978412962436878440368173676614677649593530420832840145980785037858096733375250086771106118328672934578496271155826878121112593569046322292609096842917836689632920224542250731289606650292365193032678484417322146556171481604099252743305269802203273301074518701829260417191462163140492453741256069618436924005224246678732508065572856051929637529040952541601077587692303626780235901181326808580723579447722540521923234257185005436788549304263534110591823653377461972395191999614216165501851014633777534688714139395639728185226083284972605261263935552553195009207240659874021601743081476024186126836750458984006995474570720451800090954455791175958566788475942446069976824261796311754331002721305638470497828131480007666968769025164516774071600524238772854480516286345412639386188791286015125774923673312685866775108254828944965814898512967535383190975957566874374179814308951131561976739754075920276571360209423225904785548979900111009821260011655266578092167178984701594891532173134184889499238534240550470974382400368159135783977820036710641764114931255219668270541786513172606812254326279305890872108788221379158750997923608722692055690524195368815205668015960227016460997688665350237077099689057144583954155273635936496814991549124410283694333469508546611826943102879801433052681227698241813647489240974872687421071210337899336415355149531416206784265336062104544215333164520507822239314429483916519965785874056499281716136870976494711485935781169142621325214183622389111211251496411684434117527187509492980963307636533930387852021605242800597612877616707473599863221676547679272209923173035534871079945499575405861438765765750871621738432649608708821654717996910721949763046434865822728004067525851894533061644724998352866738938152364483814506421867501994345636536752128337627746846507737282906730176638524262087225132296550905143137527442870335152379877933898712584169432234221612701522682165049418799271406120398461594490143653505084911115107644097064736766086831482325445802397684049622830082181262066191779105379514308801978694196840771879643852944121476691386149859107153747240732860168522044027082831643734044509822677530643035971849202643176297026931576526997413062211749942669324624457418669857790555668845699711768753184426835105311919440233068084534106250544246110325937701075745392637129518953577866207810178427791133711637853808371128025981687574101756087171084219399726837464492343182283337703461711825666893000302425419225542296061155566954433587193731443278164406664510230440865712400473065918591930205589885493420194647009911041630214908853138868001335766986314393173969042379801709268754220571812257712407348001934288041115831931591987303380760860678516825255799408020123224540610869982760182795243769754552728635086395144207364995614340928358589531882112918093068780335983259231193547110718571640159706835741407290626587044269066700664797847560865996143569226317905700243913453238540864747250038528831888908811023677941689463527505071799364237871843756965735238432658947447396478803368601118930616560730596891043860473380753645451604147801305997776460396162673249992027907364103178653417113363432078796278504106100069296283377675908585871793545240765528134770824187687191241729100253207115305239075577999561803680738574958357860209102299572353419415765804231648924087626772142030995063408381610577275964028991267191396221369773361870227859643456492917189750935749511418952249555727983343786216530399289396368938102728881745769416937089295014269613947487667348629077850722171006131651546506146613969264302748244600896797659087197090413943021770580869636698172389397330719869176939444864708897071292200530017458797460587329190159016067138464395540752678680285718842801831299403278967289925181513605598995491919546444137417750451435348807783560126331590025784238308945345779558740396737606660328339308144587122340068511470542275607734384469203172864789835558991397502823800927350371166359218002359600615089721725157357674665845586049975007203082803279034427823895438350705816625025126425272800584687220551867562085408620655835745572627974226550136904772679473280747610149574260319572973709523407477354475012624799039370206149437107873755807462476269491216075306246076101737667414046161791392207569741837484965476026628746485513022840204867639126380576575622196125466730215722568671109696186416394037589405045627812830494635382580522031523156017867072636894665586462876062934874605955318236613372703780718150060838433388989059883475716841201925520965102114668259861069638318134331853403063718781465430762850763004504269371181965337952492793562610955527867414336947391849226897377784071932520145428607651000844901536623725683776020703043259228572690942405163537253936935033106798723699616821251551251960539794070049429632918613336383886555570195383164570295652978203059731196230173659217564613107284167698414477652338637928449658984818471755103187132046511956391174642096916993666168145439168165111687703610204108171335457080793579877632742562652784619907088746154344044369085242955228132513131632425231601726760398267738389124773389080185923850176886235462696948907011687514166757784696383566382948914748306917298022522237449309554401130648125902311506900180320258821095163034465024809018333903877390175122015870134718870409121940453603304715106090928929803957199549329185363722552629854504270012826508137595559163160418276316933652439331065587512549672752466320212053714467227047199552226487307782171016148343490599796596393861389052956270533926451599953872970118987378853317708066151237160931280961875116938257848942741851589905177729462216554907577439419325564065089878111352253853568899422781259907386719775012921388316265278612642575581021043870753618827151747889617775658557507197780441517611606602340825404953845189899241789952579096372176301202405903894199124456869883083671377040865885432363921505878700755193153070597621382916733827692613881577607472450663593706241247265837018408996361686634773607613969830769418227207925330581391695544294584307065483240769674032714922565204947836837265794308062117102109320303903904302241551588097520360635859609356344702370619478289427080264224868058279410031462609907709789674865999802920562200309617296006487575175490044204849287953666733005487119743357710830890939086000297360997046946114754065747611260166827051784272640138966407632566857827212663105134932379642669467528602999821475846311538671927243605001303622950041254779259871211596015054061044786182706703789946910105291106328794628844794480308726127015654545681587878142535521926975429516738138422108270447586387490667428463303164178702799847773868756547987458686390421258334136495777546773200885773573783775077321897080965196609148080623628038564751464712844403628491139595401283859310951150503810888838234733786088686648497386111030916907299204082497038380998931429600321028401592785955263294827923081040605874334868721662171682041149738520556404003289134869027552461731039831175674540934198182584054228467278772034910694287608102328326407104041328306650576041671070883018749181231234765335474516928663678534243261303842313745334903729827444418948321315749339111135499976328161101272284553378213901278465982818335438756349882123310672038766541619036025893292544673617106271471118382002257696322924028838446833385380400424593223083258696456412130426430719483047575693891966401129612849153855695541621924661109688103953482523376206566720625831045180533921400645114598029885344260209341212625874988068488879834170659890985866893351892501582706746804589499252798428303476944442142776141568826948985133263284625690345727398984298643126421653148774218711102682346741835253852133425270128827746873117564656469317190758742562586262439314942744314831546948789167398397275760887598814253934397031418747764966120486011740259015207746801248886327498202001332945564589029239644103121467794117482679586142499535128210712628863909399786581502096901382619365184113100197302331653384830515285287588458089543720294252633329721033772513172299063052146994795195587371349894162207222390786644552828330548095342363670549539454269948717846548992633262300009115946192452377757333420668212692847354043201109461814734762913495231242402878267130274835137855882274060295318967926026197954079645596136444964262781400370889410625715942837839639377074595699700780471423598723797436621042021348457009038633721270997564170338706058863178075667608022863089203652925270550108805557463482781803725432283187053146147001745325313844735753240593764133443135520424721589535475334232789146007725839758052342153409040708902823884851774012792473522643802204911117281022555180362229716267022787784467572161463734897628774620439261730160636155222917459584972707702570437447100515322082550359271205214151351783507569783637147193758985272432042577196352131552755043802740393102086869848013298483057421766407453459777390853014240262339975141733138272274866408063723130834058857197859493897381215849186187893492068352356703577494158623230873942129562229221641087388631536762715355260717069642966439049750697149882701602795048300232444704090205226701214031775951911434246506812508592099220251046632199194092197452671750258449540154520986684023231592109167496047955077332046005829714776725203523270408475858030225918712234447499733462453431929926233782878772190766902956531237665986070461951110660858514757678335715459925677996441841586125974114957247877785969589003271536322267750469210470135486171118719282156090506266604224979448940398960897607632915037038868304780493068176712510463607717834351918311398490818480482421402336874431450850960900391645393439638264600758139477507003375259153248534423154305958609930737093327705765842638712513933582148671564699137046411845755432587475055747248831309511002800800951302161735530663781266179387442486335918183601341971101401985807993382170300986693439229003682754435067041997308464809211862526875850332797049258057270992244895821994420600636638540094062017764504176731014061171458104944022999265921658011047017696547902824257406557622073789839985066707896078798266126735937267495918570048049180158491647571166993935560297093418156791687172008565707483385472630254911644565397436126624299711282020497562750794151762221322531728754009609000193535415252772143856451592087610568130835565620116869146139907001057935843029267598335201805948045190370240830703219897828785470487302827165008889485912894789978892325782254162251514979196738825827880848048954617436831612967999049774871813936905632802438952963068801812655784754360876184193624747288056108680757752989066392772847410307285600752771433944306210650022010186390737325498567567498447303172937625660122182243312435010786731731035775722591186554283594025902596840001373128781857916548535103727810015384787785859011959478894205750290075267045512552220867274703784914611784123903389337161840049276086935144113418046800702103810318477760022122964253582580817627043509423489651981298491930240586714588987487789355581996561521456142510126275390523861326186257100064134814462049745854500557252930078673664964492387327426845464713036107842626307672807470729950744266355458160047786819021481694990863879872381433544901028294261566789054265079251011383113451950373207381052812792295973869977477257641732039953977068002017876144729756483933190606367016105799193012200060036795714890089739318649893290323532788484969349240124439272851433586568570900867463349850896441397633641215678872256478784959695762151724894927088727708939330217460651604492355922996472368301720909674750144456318399997378976979044133183422777759402780793312270670623913115649863213351694394232005257170733473059918342029672063444798827996190869774080450872070068422984794595952730418545186484857618261122433499676893414328868742592096398958350865869927366688443339704971969813898885687821208349049631517235811961013061128679004610584118022492340570281348042582197500398886421599279656505161391485477037185869186426626241582614361054063116068652486882256132901469033801138957670468554028144983675499954713386704337117615331910643605176991894209390098844176936077305073479519826612946709957049365637351783146700675300662379238746032356466244116739735927549233034842495416091863015488903575663808621219155146523029872652581064700960925225618980547193252028589506306277035204999456176714858859760086437083519230945573234033322160681641902381471085171925068865493163252197315344047704905493112360626782281236432854016525648283232794751803273792815979391906359576383305405499165978909814138381797424813769514573525504105447048163090469009381205788972721816348461809667545180044674348255271046057345854697832643868278487168249520178747909876803941112555026201575210485640047532992778723235119651834110171065007379383197282385721971433161432276718259203781368656770499865527090656592957566522034859392893059432318763158101044821068724673052736742135307553410900223523703871558587958469489763250259599372910378984043787450334014250607109067917150738856531180010270573372685929357418832382302011958358920792026840323202020390092305167564786872443165603550294313773478746679799986581871636508888012723930289432801657764954915357790396928774657324582963495380044333484437369076037196270179067073057976303897711735811374306318957991626473874897720955764372915209582035142015568032357446117080883875361671597379351788557763848556200559411350444501180180879725106157709248505829918908475003361836244708319492256211484820149475393487695510630964887423495834835714909896476202897967876782535758869677213772940101091830454844379856861212390708263767733256304074735149909576860461581593569085308734908322427970248169528477431630008332402863553577170112511974275101415487237843954667604062358264913463680044737874465780901986939465343806649503932351883662409272431154657709007928714522630891116585046677336817927080147940896148201579538404946402202260399450196674406632661102189606142099630335141078901107827861364961810905079166793783517895714514420709091408780633502128795608656646490090930429900415228323310698749860205567180795800071788887507370878818767101664090513664374311000421822171158935520296279673013053057429911558488400114790001273204191982565336926719784003248174798847386252107358413109491152667175555929425397323927088273327417262332747190627690028981227388526987339707826761781741478140879825225316934694537068120614114556461630079413561313336158978637794876448296480165246469897810404619462492534099916004391078349084482584901161654748753997249126729487644219396719769993369339780894615286047468467531029418661343296151925656520610558587651337679307841453505071433477605242430543919781858226151084620821628225764705522830573652796272423657634822648930284992849047240474762682370243150674931304803081428540667796911900584417767406105869958779035728480614138161753403121934670576470566116403480324324699539527386582177799296012525387573091457558973641830686999039453362291336156876629879429702485717828686441121023233776560980808814588950608472619322801615698547456582845662725618526558172136748065759341491375250576999533712831582396938928357932153737262016479039512353851841778779149523787491050118145837801581255248346715520071459271666937941296000777174908103598211019935803995243010178042912791797097253960162522479960821563199742324560355674186576457580195196994623197822359704731816025562841120842017015372336431359367247042765568241342980488324139722562553296177499156262525195202387589700335950547536718394074509288592209888716410117466045997871092479797467486916529729512760082168347594238590540794353647542520794850113776622839939033453633483934281753605440535602521537535193242915598389399714555841550192946031343415960615262971080091104418360113896479179888761626411637966167694478043537927598228608091359513892777070014421972662906734987000898481498668664559269927630305317137626870446254732252847351592253747945352821145589191926199874015106393331816922088281901160576037075211561936349483575458841424633624254659049921655309302014628034495960230284542414698096413237418757001376867177667709520704802687053383655474838607665871442168250362260202259068600351695035644018894542292916969095707673808988489200751014291580224026011644562642910858412892721712086812419463069482484736549853004907847992868363976455945934899495097775039620206207640936716069041086497157308251055809845599303757808530950401037294753698999203217364751616668147705819269523263232617121455790902998971788779494881017927857368019520657688251876376205953433830591286676363660130385119328441593552843519191049492937388870106767478104522409634925266007480365008244643271091893585237195377346392877424951407432120094801596176364833915182570804120031353516383741444278278832507581430941768041873844368838231188702622562667316713818359761933065643693223570140468104732226284365436941092821167483273009853981217496060722551803990629406059534307430159753836469895334340404951358377703730423284374670423569340219467216625249942429250930904607044710562682386016908053311661544532829832159034103591694351294962310961527380294523237782266457431417991414389770693629677923093836943564739861726934577270932870360342179672790567227532676417352625572211061491512116542979206009938478436321832684006856824137789658346197068676427470911947977727163987616966519752721777373549364948916541450034015105474496628471380972530778929598068877044315512838633271831985104269643939292062752329399609372193683476932296959047803398104412805343904632529241151652472211040941784365773263097333602248116091280021707030146580729850118937530397190255152613082503194274114047417896742147604343457113869869101925294031478108372578461767664332238386668421193613448977961070342106390440128160817080231203257007024091610506081814352713928357779222684358366311340944709136481655628320399394300277181405676614135731901972024379133471423882277692476605382907032450258310440381537702308854813846517320082192806160892446746525993411237691595830051384315743142231492279170503768069602708036530021521568552641502856725867283839478036033822540056471411017223669753123174099015944568302206254748714699506860848393341177667605858571903899166159480469844786874018450881671459485364276651613112991985126460825187085295332166363949063272690501977848146205500188088089860812654909623353060386711863031400366524170826017799046016466656240281417560372521258424190000800071695475762492058750871560237870152482281121326007258394729940559955072025560185077839888918971885968773051976588310535796185363670021487252230228096631842053941594119624437664160296892067758326625951610613374944045879803971994618131646938482275286163662544688343839997402237137144498240177605340475300775588578320938436597216859759963349706284382898669749491249995764240265502777640469243187427585453476118669631265544718772477803982008848652122409259296223419222235774278068859814684855559856703393599354520143129433129306069618000137500492977042580644154868556506955194717398360886087524978333011956617656400126989894858483407849890466781742668729864355342487452603154575901481795003507094000561918155692530064451509498133877824099647667828215788335545234334659106631271554413374405912260337391180347000384978290650451014648090644100837038142499138795990986588040853739848850242469884901376531689599761601636841083235524831467394037591635934319953015774556912081918421761166672055073309518936977116839814841347886166904686550234321942680414083856524728838008076970258767797018452625689669315545664955229036641455837676579499271226509875609741869089286346455551487672445864102971662119261731495326019745965832798064434840809031311836835390877471993161533044637466792583388836109917503237985361141830179339639017287671033808559392331214757068115123627864944517378250144940851551301187292540438426952022443463468287656176134141737823387208948267991078420276458835656188982352192137258340768317683521572901765318130113663247108133031044706502903836544854610819541565247615895574553569291403593737954627615947197844148479848036030484586799805733339909381420387487180456906236171601965691190980302856142457757238468516970821844559970948605249330160470912863265673134331673298995410491825976424614575879234598170590298053913014469658517733016638427418239791856811168052825856281894913434215030164064071608985156961843820016111487489069328580953170699770937130570507546835344088886574676207293678264135863083575801997818967458075172851117542204006800548315669191013658486309601041438758614314259782678092634033505289887471734196817310430785682106515559760566966677966153677456888317647037806721852694635752853162189513976107965621150875964390769197871830883237808036097432170648959556837116703119346826984874691560364543492735867728977897916446666770250922140468787336846365880841770402755074503625099194300380954883824414845565227376823021204872673233093621718223234892112318270062346591180574009393548027323413429027306867593609057587487096564519772032487377645557177816915507476477231531711553376210651822776504721751395452506280587294751074107489720089242269147845126548824803027892047839345356505496992302576251624350179158775141347201130576507178937678108672072373960602008971223846163990305914696036114727666469959613192910060483634840209354465624815291829865708451786572451846744716725159282160616066483788244193048386349792587210550876042364221119512474085805838208384181974427670982300977508794081172901839816777646630937774883075801687325626861742651214720825778737777130466997083066371623871072225359687283517030500801239657139219311390746543445505196859702366177758194914332993057013221905480431593971160511202544766887073303175277311731662677501348416057883145934621777170556275094084120990376352386090146823194189690942869795725303663934911708743603025817130117607102433951814070037153193615795032424144913808507280100307777265786113613005401105859331545364906218217592423224586402985615725839947168413979208859013458881129390602150485926969552317335685851218306115927583404750721432209922994923061742922087274287244634514192394020042173321536524893723969107940314397839985731427044472559765228547045723498695666967802439815492851174456187787026437103109074838053613910845515871850291684438245424027391869139581778200791724994546425346878863781852651587082717615473597080938473642177652620922974247891781952687192025777467645753508331218380691686432426565646260492508098317738691667588874674744980517856820087724242615059308152764397558833286886788582425075919987222744244174086557845559061382203294519421122372803300055114386185666291087502043930921899285153536848239322191390928174346213531562075607823225966159840440701314528523942036396216994653675850278667009558520586172838930325669964827662615937809073915079683896380539298452951248753346783415010376503625989609493815682072967267275992497042716480365807155172956268990360611988211737610478854690955074555710535758350363962882109003642573677014844929709414998610754958652055856537171210287126405474815963223587732819092287815757769954436897561446431959277581191062929600398533346006895236882102261137190659082851032253499260580709523377687155822976655862711695166636832253486134514998478438862468576720012982859775697349798081709953951317506735046345638889608758152397994733546295857105295175151381700933390420993415046034687798757939210814837648828290823330693348739745138427189218196693300826005617033763934882628732603881353604522826286150900238703192643848438101899386237771883668459352779786274945818126344110065731771822923469947706579807735561697809569278455348705442578822074408118908748594655846653239350169205043044062306770019422997839575780655637055298266480110566704712241211607075387068834658287327757393422299833817773323377889068498780209922290242279009468863516451331455115700646284314006299430517157677134577775624080211511055508754357886054228849238107223460353759109593997146388826463033952831879590340497509720732959753617604884638544088789133167325291930588503579916563695028979607623899260219451220805995832014045327019967942858141631240337250706230968894448920001137090845731125105037520416377034115732869864748926331493485267811345386380334130218022424837471509143651356489108377451725505463716965943139774834349732770522736026994015443046321129552524810938424953309279099810484103629410536650948002879489653324459264296187483717804616740449343707814930899489598684860509235564247126639722779426159491698695996314107311143903608799317366045865032685678110714099318662339433825504689021089108552592375959366481559600450856447210713079710430271421538776306209710749772259129075179055594838034001648449574451982126512286362071319231104095636157278843187673316390714306327852587117235275468097062671965172974564960556971054899389592000470938787499932311453461742147281511981847285857125124297072380464728818169693157686015962780070566183267654869120611765989028353508077466449574351601533048251608321967537457070448287455541822671321095652672692505616515879609331249259569000472108433508796032201744418720582849228217798613026636960736036526824780618876368164899182635850599485842902604590656659960520994665492122021689364231702312988198510774418081710212064247246196883794298898661232530599740393860094169760943429483788741397017092640693037337929626481320877958420183415616433811730436531040601756994353069940237571200930080962163472242118903850684337184847889458170060345809000924338085197676056549156019738148556742169228032691588259661590697729493937905337804995330069474202723400151819088038999186102796146587183888215143410675151970710176382931555314581225734397565850568820619553131272344178575418214625431913065752374870156340714523601692787653618171817182686036773045517331556576117569177916218645514347999329312151538896622058932699704085537215385211187415365299089097126980040974077185516368660572823388465728588424995962161122673763907107330693973143914564826565286138709324408432295542396057802464388234504348985896418761888502429087427931208750136755636079398880897560420801990784492746174143083747936948442376809754232783867812356915550563603816762798132596815481975759704368744877749761320424843393462364501828320552443191549027576421917137026707722144277993884117862364428393316355491872998140290932060071886576165682051609910233571059067276612792618800735492282458478726530914410825944945449378332472924990869644711510558523747205747924766016450128434645767953882532137221781357135235023881369745649418799567389117755194818997525559273608707069575844756469773438352780767583758045325566576111665084948616407619570253651677889695300751687220319436416341183370782950885277153786618304317880909540139412303860158270658964291653526588049291723154560200055566074237570662909772404407966327358124775936778911894025642587929385523520109480792187137254230370952642140573356532411672940122031223961395815035194187204133504981168757057293612889419089950147869417760822944060318683256989443083713479080075517725441251823747920881383991878809393490594301195696722274832261722376450014564687239654118560305802054621168963473729212761951102822188036093370746987618441824277244718322489506630624306032517037715650131349489505959606322274505157110727716054313785559495945663851886108875584575236453873736325636839730630069108315587290701817347232383634134767998597460717391846240462935306016563743909485682245058991250520469987399586052014145220065725638117634229918731039936387797936802271249950744120017125080084385619005538504291026516473317866517249769044890939809624589173867021949877505139015643939280172095885327824913890786854069795696335144971586356813181879542534295151583022039176699025452144133539638388398186408006951329961591855635244120968976293133326649495008858596794368117177681470298820282149785316273804556014482457197505024465391086032890046066532674801660132957813624330124005731241954231320890003693579959440063325934473882788578252957913776863747368385611484290515296169089484255696556893421845846214639708448839000571492851500330593791388793450244301617510852874936818817693932724302238637642161179873681252279246945752374897211906587444567110623096465342825395901699671592545720631176616231043947776505863569491014980558059100768494158092431482065615151500192962974430251150890451922333369920889328736267080252142471250475916267072867054881982098294850319260828993646384291227356775743914450207380846266211541900413402877799643000328131924631223248610194465325829853743749884736912144896532011520394522661034991003497821275793493065819451488647931903216501764414826590437725157651347450998625656688858059649448074205948977172447630416915615354785807423342607431381095073875537053838080359081142896421226720929628761076827439496966555426986640255510111622798399662929185195533824591104985024593455652963190242311933375061231210713736005858035549749353159564756272434458173665661719087400125364062068841207682450316074127852580666862226143712511438541846883712058659761623657928672822990961794498481766212393658049425065486189927152348426034532350018072520952094326678907667121336421213028895531803389831556914409059896785016824331504860155689598248849498810411971423535350058662305383434715526955831945026943630415802975836004309173611988497629951514133955579040768450741187244433220157433337953947505245988618900460998998757029688021622325560272513354480268443601766267961401685690941494822378620949206593669422383472986721744619150974366410628019197162069525560562743640526694480787100922805957681923306291790145387552874252294973273646432281689670320932220267270022464289913974974822389715153981265321192958866033702785281684125322752413228354217482921365333236675295091470192406424051573455158499056073888756280137460494495759163268061153139564025729208145796485826064201848205938901243435471012783507108475436798475228092672142493272106054662557638165313893735478952722577430096864879744282766218914132615983699124961149161174543722233810580135973328923953428998375760841220546863006732864574376973146802221414640332110157210831890481685769006918618775327116631609582938550704054240751061056140596675548521272880849914299530912816582276758608137982982591183669910008569650334019428496522321512448245593637151244243112931441884066185822272909815778829056024194877002461453380534389169537352193150834827170540358965483494551161284101060301479219857204209842593015921456516333566660308054531303007132474755773669191563379567518707514963455716363591829358709014113496232125813777430308006932332675972662944307304097812119473835217199566436747620507734426459364211933229320788600186683941239872244089584961181207569882485643971953818823066459373296503825872999460247135855718523725225477721603690314688835385936464386290597408439676453305483735127600611553691866900838741736663065187644785241785005614927106225784424969538215422736552441928661667971323127961500254723958886683675724393352342972968060429367719789725972462179867738931924230396073507701612003580664863464961265426451136108415629339576027425245086102911812094537691048954115721699421120772348759259849224263466092701757709352156559503678812346738858980452093301204605005303430216227964593374330626846595158418232107897017737420330704846015029189196753715092799900083809553578267902818460937815854788406575494957592807523555322653885636447180048284251801996453634381626622673264985522469213263813586852465088896980095194649088459257302654773382687530267795160248400533378565300405304892967594163748705621629513788879162026790004166844714013457620932363775734033088030906185530087537004385575478373842844048457159880564743945430393784949382750447574785960682775346289863295562132184998416172052005571917296104198926296260006056935063649216132364013627094777401605349743046407822908660776450388101593122809401587123491840289297380073677293756469788315564825199974466558477960309868367090198040654847569886176479018484799281738504045762511241786282204871345679118134711307564087595274156201759599682307857235009412483620979877614851440440110888343804413661937011976557857622233498436448113542085887152020543990412103465349268035031710849269590535160979280512749146587385019345561481395527270505462239214638136148943660504790401977237073442517351719724149284561704516437589755256264236350655088200969335154026162402970521749114719948599657002504119297373208554543651591375166721359645482192888047097454802915503066376041847153860438994368360013836396426145592927682243768113974463278516497746446925314281818793457170424158942083459979029018298207885915183546800845351304329016785138338908049471667053957237661678540266147542986830161013766691163209496621828546793518244551453445525190538782369113026948984988890598241435000425420780298841126230064134559116922672485907491210160220108128070072423368285274813008270792455513390537987305690136919004253446015886763389171920645342217999471697031764572379266827400564645229146440087209860692467957589065424397510711218047431796147313511098258011696874529953941394286640587583047323340549150422751631192037029791177455241880572810794371751948176798470149405879496558592388468434048342653808606461605066632347842659032898740699805675879684714065801195733194803736454748399961718739593674672774160488211937868928478366285332085775020152823971662616841482808266844642159584966884460617102676003787038050273957853070699384396555655488532384979215548858390980842724898141968776451353777072616344676123022455745000724358557337260917299300693756065159969026507595061040491018731730665097215841711426613539229618722536237939546414629702030088827834403866010903560250762961346735434362633261776372534720094220855808845446455013447498038491499504376730277545111509603517280847993306847508244679121723931454669749722812158439357155183318710051282908362121114054777097254727568011824707640920291745170186038155027333473372638478812902007251641440571762960595850358222442634732357406026593104252052415539602433283970912455497579098121879566184246859188414065959311934360887265046998658768619736330341694359546154097245735797247369199275005594818077827480686274944791701830454481458356936988714353134060288511093131044423817199618870230428596758979768055199545031706119647913052543723815674055221705362111535447738221456872559447876843610137628916772862615220545942777264025680645448409731506769631186884518773892391684322767914577467722780653405988470019542808389508271223001108401394490929817426044379894688773022277760299421796115326546620163871023754858653120992436922226816281384770387190104708645119527844614987441957290015653379946944644311999592411203099053329982446360453757628193347857426296399248062251078812104921306776301762556264665406433488620910976262374551126913830387718867155398486237220385725873240086636029894251165566420179048973201252282034720043991726785796394674490282123257611950526305327112185009691712728857442720716497111771681705218609985175112210712426685136270157947114230351145244212761934075573503739797836143840085428864124925669781163966755917034249947439509308384901401941815282020310269666044502708400199969905667168924262331903308801181507642954143286916608397462244551312034861567430319323020273779317056343461202729008508206320649144181685652306936853872363483197612889520066814834734596420388466153999120962393734851530995674430328706192520431229877902004823638379793438729589031647658830114569039958946021508408939928977446850380585163193812915878178806167113551262489949225926070599239660946800962239622734060801710855541531219640077531143768914785240329644075720263423761744640013154772330898282494845213007567161868002194702229950263999468580718664367530920832989937407219127032501490996270236886459163492001136816662815490012361171513327731115505824559404150616217526097340152772794761089969938120008992406789210064007939960225707589062023058377609641123056458544409228831709250286843865650856493351139382117191619303355047166855195031724345386615145802619064512142831156514641724662312782246603842021189028732824829375129391328715279345167693025896440782533239113625481753773608431442530356754043526764271191668314730870750967646725146909912643664534939296758874604199293003715132726866793248155772017421396823160250706747279267835265615231609007674754310328764278222788585583851824245971605700474947859050291000385324733566095361171386268317128497299093483703082153135093472221995679985818823804746021865791436617874849086450003891702672607574995288838044334951852771575850211902871734768809519894771349003516704832777293972169347860101835991239117356687522860469180008171445035459798127925794449527980830931059756679926405596169800746125946971830928187054949291374803482182263014423732606048364291063540704915732930593644625091399559632398542217512866154935844317903592189125293233412092623967615920705832866747845833494665137751535133119447174786211823664387252288621649817298144747170897171644583356156387871883645324416794924099480064897887896146154175294844146817455819606302317093173030310374684467364192983782133310355211629183086977659962162222385788295217408451732139252688542468194335726960253746992710060179411942228424713946901966482717775275728686125988442283209216946825031499953141892608728150496330081841435287473772379138075800498105958343455437610700495181053520753225646808538130935665365501894966250937652046832118354136216035992956140881961697180005141399343350310823858450836392804576543638450008830843668520732316644092588990221919900466251954179792482854561498194132867326131831511984539489234862992876544177524124750288726421614642349129120467732769846774763025101073525927195001358990902521169926874574394238390579761081382987205931750388562157438740205550179412950624998221124490914291970672399836086810872013694312390739323577977752410267669969778536712612045261485907553635173291168892451338830625246373869699255098061588858770056029363094396954588775391964377269298153589004540535519969721937042781023102197579322022652197479162747652452595112617787843293029943653088657527002314163672151193231398957091453476790933547676710850059302115342768271152692206817588645582496704173186921567529604174426322558593678538179806607723997680684288896271826779160370863487940800978379888454215447767873251710912901876314834353874407876123257752953762772102658231431119412815882830015565351524043050110239685265350483322112316910878758229964635214579036934264774304905332296132798101251084255149199823440544360197947251631309674105941452622114994344450813403527485853784665612036050200717016648585560512441638750671076920271077649315123455081940431361004580331343435472152048634772655285796559718182958456723708553537480163772973975350869090357477284760523951536590666469016480275100090904790288632124899659479998858872995056864048067827855274105166557407652330112022095153246987379406568007910596329149863134203634622685730381965791081432367685828227241112987720080729057618929544256183791803694695178463356442598863396748790272895980368864883400004375440865352061308814689174454196522537023645914020292444602659699135296928088515884109912182470036234742710598968753055305537501280231220673492190495677739869190891391020462749113349878399260146539579402218586269224091270679442119737526794929395028596708086536077573245781839661584728030238753953770050005771906111079582937337800796271784448267180324626940959501133080293727540780788394214506253390140565035913546664372947460452048848157720702261802407677439503429008512883543847978865315638913173175103876401891305261165689375137698257486703833892838208682281209200261230754954870292413292881123312082143142706603121066753967687233665589484756669299280682883666091469527196923639164190118241499996729088416463267117670419948308141811999024468625090022413241984672751177102040247854695477414464286068773349429461394498298704344842713201901507243456929422249088978661430221167258146274310101716236069961409435876978909924635880791564747369945146016464823939309833146505493916038355255722844149327686306771155015814848933898047999213910697633358426414195667900044538912900399405280102031981518855684605732832151067984978893690055483487433927291792550252987628711167783950801341424886004379992679656000752223967257415867794600147951470708800295042283875803940579149345597778838801354518555823569783781137839953612989643979524043023105610010661674035565908989418728302884358065518036553507335668237550787073728338401416037059843304269038686625881424191267656310945360415267084708477811186680631197519990669043898050197472746209135137569147739661643048022802383504911881670270354158229552591743463362712052714995969311658824192691217562140338071351375633897725315551339015925002548183096536128947094883883447887763486544199954642664158863681225373858343694457561002539635176100751024554960215592290467076002264968515716873887111419718743418081787128451465334376668073436567030753514446838257944848325620711080365616827522641186885594815294909147183283081891141049066836039556763176669060675591565582038885026960527849584106668734661038086001757911031714311882457919084722325367573191656766948334723081280197484469577169726244957355392182457685124409451284550806805201474236107721383440971242002131854364070453997528024549822436992567973738604463922021317713903069105867662060557126085590472869894262800271911710738611182576383005838608041380470977535835645605113784653882655555353205632416895368481542126358149693561013812295533147204566130067236961040750860966964545236881584009215710687959440005160807562945684616719067015327823428025248685999121089807258061340512840643571152317502497880089873474457542279858947200343373081113588826256012558941497608720439457304495870987840162277790529142279186153365689244994647711982982838625073593606684775952671902249528190618197310718731652843336902086835318806410793576835904016524588463625339036502032003826643474664196392695894879918998689152729553593746914932442773965256134513696249616801958229823795979383031666136864911013242815791846010982257108429843601725757799039599234190691030775514655473676837007646341403528229566905765701676800504790170053482403700598679770030816307073088802406958557800237605821795489056636552363406796328241477321333069932072340967357712929398024560235924848778255433652444811713010289203603950582213562716821591229979848618481938317988282687156963555380526270412185433222765914590871586679041526952644297243446610734863836626982601271053899428184535714107074997047800307894481678549452910374684248426138535610662593974459488439158376532903650443351902646008954067166514145851417620769988728365521447519722056914465218036780774438767326961097614168853233578706833373199653754127775574574835428195601022836293345963519426837482412116710673875261286249642456332361304304784751866115209343793981837638494087245731543002719598568572111711109337002907637577496464008985407423393892678962113507451097230601067065215877035188608170583798555622217171482415046869741793477107768042837779137355872775277476601200414742604060893447456057318290432561082315504410146589122173434664029379290115779241476604746496148046150781335100379164794199879673180200035068593128685619657191158839305940059476226074698073789530928678785403242447478347046373382571883534476766485617762979827503447382539049503058475061208718100422912125713196413628994328718927222975079267401013076331471810182684359897038902012570321581383889694183488266274444169498166785785680749961933434477813752541432705298221697139767021208490201011020209935126606503869647453688047241777719323385806490576010774912247605852303024513094814659303487780063526651026991329593858741447124637303897946704672082536554022010450827336430286652763174922280606905871731555101724260652899428556224938797225639592142460907471882338669325962294191755045392525009336164342414988433971840619371215797105256375459596703103889285872379328931346402780181440119169388953586234914900365726289828509550319254387033874351357772943740511448601115718244997391731527122645682973201859912956307184416747500586507303754798193439690235713445062332173205845686337976290920461104515853767151202775895915141514272689942138842631389729491995626452906943019577991852373392858361495773288892262242554613658692493728744220896440364767301754203853701117366112172417016645314190988693828937722901881810110339651835844447469681673215837579051447723828371051146245002696743325502760065860330896338754076071620701087337239309559584571212090652807043954433915320376536345567818558872448497997013124479829446689633221943046542934007448332986272921943261511333057322731832299360631656405579242651224665536351153356296318792696199488057686624668124268511212472524105453823570578528869872709153158059718605406017872458803345713945081902182019423987724020717117349991537596795404962344629081835816424976430877229403622641763309344777348184308199015115162540832677864638445959495804115682287348173390049124218488167152898817542650123487847779526357918032178070184175917105033313785143215510255763750099789751365226305281277205844823836228092333779709278604093991437268700087043111205550038824884251037936268439219803107210607226441769236431006584232590291187054830239944062498639082634093116813375995394008105041436718636475643174694747086790035232753112582764369740231771445867652931280309770366444164906419575768428334613676018587979999915585530353213898573924185381182446150070121269849739162939972439434463633351543937801996619125135011329813214221608023037176440547706416759678479112186301817919771615868140718257306223778686544481803093516107617757405269978904393268106386019242150295437785675720069494824326217273681718556703252720943155142675742955675031538301305792378828104219695876088174095425405848868218300394169399228720329086008155566378100636460794492811260680518751575179601737809383246612065867755038131994420624463958921816508672466814447311681364401793726803344216155135916266908329872000982650479422763919542500262859415360029589311671880938122646208097723618783722454505139432209907697758232220115358210759677752687974547593212588494189233769470976431707737781470616639371880321831245369273521170407149076098423361210817098233080508475207855643669906064023750740008193399472536956274058402043470025370761994177377872959626381766019924400324225487036034670429892215452795459388445756535287433140332864944201766092623324385326147299672302736748247209014200485361541098593279488422406344408052943844704628385442878649455147970530860610598896842508401609922393097221457512693259191611660015843059285426902372728864027320044210048552276348652632499080622292948545192231795273488232087243466444060774829699049845728203524022424647737692680418855355508397340147018655911430619521723366275443532447418897900562014407533853925490754054674114482318663144796257098869920796075304012279501105685259795051025064028052242458517558767272672433871677671867262388289900979477668769832825242615257187404116561827001073848767542542072703895555504585765593947927041081853954136551434897745682225386642383133416192740746376012318318734594451608094894459986021637691247322555339944565434270038504660990748114892792065705592903402120402146820800505666494220770969533475638344607004434101989243995937887941132606550829181025908481459053109075006992513290189801526372050429778635971439669099713862646165496479835577932296344467603548132889735159044299047626036779983420237471829552654791954242814803519549979833916472356606403556588906916937244081722076714788731013430776904760272932829898002725452807118698812520307829252200630256414991017144801088619880150412797368115929312451760992145645476595816061816431604762392610097158730474208573815420135437783967743567552356787763650842434585773549442438160102208774862140332347549215513674877745609929008649214614608832413043553899164864032971231631759874809701640772483949849658898124535121195101071188982986218615965054938783342573128423823182952263539193986836043014091746872430266794150945596118609391090433965905824099536280094435677420311459846148386583651939208660919643516532617036054394290611098401091142096185192370833128722453689001877917853659242638574732542730068496307294217506644443139193486287604706649033177384137236134292601900321567019403080630584049600437176389555974043999612384151478686453735380957004315662590284574919712339520171281604683014471420945119173828706740321134956122113443749070528411673358240557488155746992910194058396997873643615949100157119002380729148306685518051344287655335505375327082102438039914888296100159387866987326272517646449742218426317872897590515160441712765948291254070191403525007585597399389040945524097753974077414093790753294643578549126602036113719580850293739973111523463455043923238572933959249268781924127556949002634075553969650760827203310302335563191010975697036945837894216452871095136907360745444405515933557734300710190394873640516448108388173646076252674861217120950317705252072930398986122881243747791296696187526058250201194613065470355615334119837452259818407499421146646990079031574494063634061468922233890513222458800728229730780558152115911218049393018867217638895555262098714413584118845992898238550581849483085044206915794828280189892504734163974780283503376276727427066433441418876889506470170934544444924834660320935721224902988395631749007875870976781769488997564904494026900776466232533388366646428277029129658745537085057362935699050990292012239743637230033009446227889443307437770352236944513146747079543397207996008172096877328638698821912861419076804981880077115743576005976446161211449323674847467687679003686114787788845977779730726134540335345879796489943963732492471509422824086700101875683220524384470413368778771625147005151121847817952291464992490058028325827585150049165089162173361478378602055563527807028037407607895773509582066444274285345702899355854089990621462642544492035789301953490348550477529649360634272799233992022217414796632090077896625697763185551553925185051721668218398808865322728390924580951331242288208578858692338894187566719385564788894616605463659108554518376490712199879554255524987840134561617143690954497538715178017007338206802401838672981317084109669595168360819985415902800890079362249959360892591681608650353463429546422988910143648072626797959048592272075287848781056003511145929877116542749036642729984784462397212183887402456713648942235884638211345109745800927751738244041397888138511881586024284976426668629337512464145608898747725408325717268405710043342402215596569943050968494683893505167446722044350937267435000301029495030623454031519236501638293404312889463646139784832345411526202119722493526847879186151874825775623557251865298830317886478630872095264555917323335887818471382029256884234587929107940991391233670303032126063749366199404395718515205747212612088380619151593264003983977881687511065997972424617161571979093457548368029698609919261101000803374720322481307882800664953595519932233752985483793790989164844855411014988298843887493359392332193442953476225176829916493671480371669874930564872889529295863200433422088671744245689881973507180394731725801036466596636772913088383898285423578785373013958857668455685222893696036615176473821715285659628759980156152632650892634415460474801739698922955106562870959269876622475059359723497404867545136550011591369860194523406939758243892648563621510011414429457468562001397828307421522736628576001665663655936344982967982409767759303699249253633815683088611515424843591137761488104096477619433011805652787327174155979552752279972461267534664503775030783029249988453472128469886333040901756365710626075773158457365185460308689621230234210143778914597386461980024042480809685920799227472668588690696366607866098378160448403893834984693857188407878175468615212260481515615303272270731201782695858058160465292515536719778086774433824322747936481306122618782909753749184918494134883702188507668077509532067647453683135020706623585548219005830238994351464013830668181543534410444262317424467145443124054606580644703073739361219231691655730668023044465577136216175548052646164497306176913997559977327832573205226974657052936634902228444283144212984033608020496635511418267049781112460422452757170620353837752174933977896556517828459373971087209299238855491320474247204505924936380397307151069541877567172835382627766869966329415878095029579513441423729218799618968731185321239379245016008524975749179766821999357941172526373950075020721739736389466826418305483408453023825993696577328309939847545355995194482124870317543836101389998981866750063789139468983670413847895382852654507099436086037481344615362588067380283685606534577452382531307670045662670730010216204089425979676350382425245299069700351851812558500889729010510042283865537447570676081979632924220771530065873412146370172049963557226437791350616780510194642648556972261626220037598373225664478064567251811657897497292643924131561008050393097096715318002678742630332678190855991404075059881882736304284429257045795580769791785322701149740705475705202003708417388927459366745953978953060736439303006725329589324594231026571041356004680709666506232546617448031974666774273771396829019758524871077656596468082608024149930853677385487211116267014030201589204369519345827131631922232716652237057508178966120782461487284458518296744123375253618252601410504034154833177506841739365221290845040560665857826818717304188954948718302965496906792623194733825098968507437600493276149558389943581212559046705152648165093997540920976076295735559711139919200533869196739021648942939130159183010936451676194086524660977130566458477475592872830189289884149307584823258199515131720801005205038984563486512127854297705421476183802138477814091654096620966897536160773911396114002267029203929213197477953253070527552499202317736897513617275241012282052334802701151914561608046556926864899570293309623999152260758196517862711877999495527214980914644737071034823793161096564943785669250352652240365790441618466699047447734196585192229322321010081922501953881474377638802279505905394791357734506731105881008355495640202841728622702652354080299716145322213130634895180333112543799128052987212161265967156077181680709554730622703638946410953835258938576889286831981755732831309154821583898328784031979836147181018605088169043762151575767861499466215217999352150815710097725639187805505453392481575611075178780639672709966088699434909053416304305319913977388467784485563169677296124228396892483821139714112016851702178223795360471263876723645566128946226158926103726561740557676996202634171370074918071501517698251529692634176024803102343663925316468541177528188180856202254116794052275854081562046433570562240217228154864321956944736580090997209322788352642234948669981384110521359816937031385641541551905650740564251924318993895387107213854688768416520517795782413274685694241774028181185711129871400914311580238369132569855601814526091812267143126269017691037654731833499148363837739040600487587744352315316918862118203667281584229412221147607730849899436685644964825125897464890383570097587804490014482063239094375566492849469839776012435714731968411589697486258676566182290762525579054568274838336084776202195600451741219776709006364996524327960478327564020724222065839584170363295175995168504800045029934044717848117867843101431461427020833594885896786144247402077835252330931250397016343072179533914125746279184257490648548419026939229978436384134987921543189319974327047742486882510845999419431679898191787735959272738405655694649151942781048522792236461453950024706967239201434664813899391163582750475859948838071500565448464553806722200413050648959293792175044763749256651121356392933581405852813967553953948679477919662453055063409356508629976967748773301788295193361144127854590562794808397822402200744378932860210979064153659762258481632702898385406978655061329891165777891589064135676228680848571114333495191750735518078171677615757449889275194974346248657208965753631266810232494331904368768957192208413870879263667813105073239698395652578994602949810697014867609005077221030512525313030732264678336286087816357640663505590694385521810672414375966786758813184038789517930844513219112567766651538053517267976914801717070551350283614957347529331298497507029332568263757731136174079967649003727226932325168173810327691254383055855871838429244398730562547194909952943085392487170998039809205213043975599916375155249292464642623153965229050383482938861361508712740222563636386781005250059789235937705137245074087751066538348758474604675419780267332002553249426849110324876391569515484064846687813305510622888882463712120199974504802971520604080675213582649319659068874192092856232170956205381210321691127758827104613036925110800085151615311834097611803812827780292650161140184622461065191067137631939250430723956400542962439597629420151612694297393362922161894385427831838346818898684607150688673672339027430356979420010658028578331123927647389167514632785666237445680097633547819343250440103075673923336377892046457540993361386955203132828237496269802461609590875058744247270190374244061046645739370871097300690573199968156648645226210648241739861420729933546365813881259042147814708673497108061230738049133717927743322515831606888697050999988316392470293287301396799469167426535642017479802594816543848900982353933250384215532066738119094666472636736610193348491615376270386722739585149564213388836290049018686939717614862166812354230892733088477079808509338007302587202801613161664366117106730957570116026416596101959399186422238950791116188119524028578786234852565367068754030129925746293669780697943717038041654305103250205779572295692942700010944281424385822722654755834933911865853783653803801021148451956294573540991447269820046519363819876511669158641582695813204252305600798627930140845220756206048031372300875116630464216654193687535302432255101382822723432117072965942833947705022848581417607213270693385518104369509485017419755502618855740772508796204309342709641315993049525752654199586135705845022731156469042829367519407517556841896296903882358902141345748957015159174167142256482706716581977295578255881989385422840674675348073192723594573866035253574886330598328954123701640697836946902827180870366072851342067035226329494618793792975329063893237989225216143667607839441883671944875376547147917427678262884394071067158739126804090191809362425752135538769962489062095691968323895120513411631336120941841375238839153705119214060333947264843256862172477858878728500055616936868421535567931209119239934466784428950816409947089709569264745521417337002763710000765841291958516846293317455982123168235179675106875774036975900323011784692471017172326278273570296324614055737290045470182913722177592507356894093564883860352440541498226061786899935979284950525257613298640912672458732752288371118829639016713013046056637382975951768060931039798571189244531505170381110889152136265609157618000733225717077912715288887196323709917744603646915154671761189520056796492120218441680984047832417565178698760224659514229192917543498896833405235411722732121900865885656418759403950564053530733116354929516929813601178844347874090034605067431103017039199133108354325262668225457697076201686024906879289812093247459663715098110463360264260271725459719255121607841704446772320022053586988303768282823811356104748460182641812458992761615530442616376411904848484456117200135574590809450240961585755248187812362482786526324785736250823958414448176402592839396606136093828360435603366841732500095788648176602951815959710778075493159192604898497816796071014715055115482097190516401540257673915459205338652677802451997073432113455360769493952880300198090772224052048759451827320098776037051592759823012615501852798730605855643217023402419494988993456670450842241330739673990430432339284383507265880894672808458510937954753011130127721978806891395693409268118106758468393574453915370832317545321766151439876135489253069806461045748296866440635629677580260664770168171983032520265692026505163441307999637763100811157333897905260774215775636051699716255529493234052236727891926750189560777864687857001720506178212388543927774537008634502304181201504845290472053990004348893670176153000736029307931049487784676611148707992371848871608001028459851867893580823385302241420177780267461095318833014855694602490654157759495977307847492099968196073025448952596699844715804450599859782030830733257154853565705340923547015088635030552067073823866368226675493650033589603484552319023312542397218776719260432637698534890710040651728680686016336198156867762694728550492730232778394073644050472756393726192091046884746622670838579768508744545701073129313631446522613255934835757606342408943197443883101697065678474842710218274100921020699699212314522032753910677850378452357661040198973346098342511747796519787622072785160188414939065939076118082700687141043676867819638812024600756661732833952908239700037061004112034691192860474399231320189708288469271496029719670112781665139431339209648636053232424047040878110462469907675439292794236820657545065881111651456449501162613348167368378314893091285994441303236250863732586855531229303883978852041090372099357063140307003850111145222410926445486237026948076722267113785352846904239944415064632144628432157058733215449496365928917552670695232662061946848836498345830149975635098430941317249162081398806934356868600173429807434723018766768281368434303333255063126048352494228298102768962900178938588466305480856506478879101243842007150892290060240114726239634389518698600672470590423964050060572022319961144823432128586057539524102848874499740884349947099419394458741007670555333310195310711161201457746360421427140437486931792900714531960502035553775797299627172185964409301133452521885745298635856436062392124137503357340126593389155807571270100429965224415263571508267803848421497806044972821213520916766234261121031311135468807701064334963714601502465839917284557181814994572770543462209661441767318026718323648622710723590513639128826095547350930137227706678000410172689093018255524390782508720067229709541177588393314302780354561091740324487236181390024301512859188026779043326547499878353146011415420925992443524117411088742030461944965122385339366565174864218010902154908128631912053881785567327054973053336206063748408792757577805954744588805749271092715913208527812510864593070745627008583747394202242714825785434389347763948256319371600471782329196489307348858560516467804680293297014202984225535174597294534645492649527842192322212169640869900430236946209179450119029269282677803419417967035754454483474721322160638219319712583257735946000160274293406030395778881602791299057310238958923890514933050781328369126681855272459938270410207847336654689661067248148344953008610852714967098317649967727344595531004935257488181554563104473362207722776918994453020383142265733397424301497779820588664141998419276034619239732034198684532823921797670092688340291309730039600878935458675590453801471751439826331012603430700138675495459993019484732238300155190049401473241043043487635084827490568026654249408729336230016752146501445136080335513419198313419996234105210685672169702795760951146705831336031843384445681453141752828429947477717435623760433282966191104010050966108800995807291464395745587024630871334763714162443164285075133177637480066552675430143437431407006479214860976070800913045017059534839946814958245061372612637089521704336020556882658482456169883753369282708678713611334478161589854840209763940382454398641068872750561621196836864306961716560614682692250088615066137012458779202222072465383665948300698172902386550001419410183138325667597245489766264222468106638425442794652754541464562405118109112153664889632579911085162083314051164558726398986029018065843762787786556110595701637082150867461664097501396181777983089075889405271111491144387255076631801532998691179077875795344275968318248009903420333245909897363322880070796591256876574565258285298738617574884992414816574503786750950556704184457667774760861917052790700133935307119592013162203823828212994674023527950110426937087339854282483946824043457087334826351694771129285372649470165609898670257016954920024601353498118040620597390708824164224316573181905367821908904357499091535171979185078750619357218496254508809862347366389784634836665558637216791063017158547564255454001938261428366562658273789616529375187285052022859676184334023459514173331970261831398626948070217438092094082543697614596592435780061028061218593333632690394059599686588020742969485312734546004239116438627975625021440103678063358399941145325073400214327134959932372064289481383845198100160537172233171404828604238182780826071965567456133858568882037841045084942858063088606369003122879078421005922014813850123672639543456433189478793818860220869969748477197727644519632110274394216930895207918695655927880922319138293356158298779549694182204913607191047899564824019325744139855033848718807352873103749107054298316289778255492605704007080283780453554376843854242165483403408521428072561215231430748085940131729143248952597128603414612053235132631545957852878676437255015366270237056083717076294825467098801420725476356942665552675650583083883001080444828809260723323855356583240113477635149123652220767742842331279942420391733003286033899274700366296746381357805129837199256805194509952038935254419814518017954831431790594919232819737988702841098989985839514554644844799892347171319699331535271394282890296587308372709473295510081558746923287425814126331791122644173513079610623661374223626224874498831345488223933561352190836602643397113654079756754389730396658950112402655983961612876740769114339597569743607150697988028434242163508788135027072210931565626547674179644522270301581143288616714432800815835534072373381579833824203593291210030232952193584584726447600103471022302570843172507497546368152583799533015730477836947922872692961143983973957882591883497203352016944173315261181577825411558061748226751854340474756355687032167332730719842016578383999245873476788615984312910688990657706182586811342453707387211642833737768853586752872066653785551112366808779285905672949873393571270748614998597692034805080250149604125513849285070633689665540828959618034332997343469243086254186260095070933779383968139362200533773024233310064719954707905014968760333297185020567546034873380741297963188843042244177286438237480803460889259390739415967818795845072556237660412069394223616350704997353884759371739437582412997154152866955808864830345199366866388565224412935087032604702871035437746750361510818011381970427159469645526258981895006739722270229921943153356737496697044786141489807287113012922658666503167739125513749423621729411345731104192138665606920828352542971891598147528302966163643842559786729623723687802984605642906800167124558371587407120468984592655503879975746830935493748365678513118069616701374836526910734846821637112490351725083858183288867735024204118316520903752995716043410688596463780464092069259104570356666368414873247701758533159652947949240084027121709209135863730918919159632938583245978312678681647435254729150945298450519891307089624168090640873474610866810374449988889118541482715754433645101448371680718514044606178923469017955131411346883346511923992272548288910867002777832106414034262727840827641030995868317308459197994401598181652504040508666469446546372210593675089151688728279655606281812649429126866090654581440714103132792900215479574365143908781382867675330060252578509485913047423598873155150190148274852045799762286280125372106746537080242536146086728083598535498235289678799586037752845748722565996472040339661924396752472718638704998667301855243761979893454128945550808119336476514015811686270795426316035888906982938536465860484794420029920646270137460602272268106919195187352399296189651888994774060094001744742951324844613859848195996986697157335686514979291231102738357234123939760099284074741021139190315866712189442606561602824761666551478252463370960306361819618040861844124351453735141170839794901523482317692534000717207031074280613743359713468592119324939287724340392949855590657581107608185254889039547409104967439735759292955755211416926755918405584721955509523093478727122420439253532758826983313797781958954411819964050361502902964230776364547535783950380378483228595935646564360263455316117241781611766685092475408579810924087771488977645654695541955894377966352237337244184750763557029211642745326796348326557893579447279808236293287516631698087856335059482088275836622742789648244930722014629826922019710871285838311384301410010689217073975415614149849976493678294661246626505919225392442842907630934763377842813829850849269425475989746292806309352782176203771945376739693194329775653224479523524713603314273328792603349817406207228561985521868050029388934065047124601231662137764747284802412654112747591862028212339796875888702335649537382855739352860664458766425843128636420314593438650955060617055638202464412992042471512647163493199156486716654759065185733907402869483640274172955628101067504983925821463232370290291475888950936657667529138606236758976731372487804558115782860433707159346416719258003799521004725898740203104763513475956523798328342836084635394914877108687064754624906797952698710277829320601504168428464649023185099943828446736614000856606052964330971956681828911336326039095734360265498615522187031552182033802453685406848230824212398874868339065644430311244443855083323038127937578151284580640195212500945060775378323115639550285603144576078816329866138339626264434237980738239589383213274316020729070917058084318294079930207340475948773251510748300003962929510097777881674987039245406988409916300134311157367019705710476082919874365173808171538301537858039033337049390421067129715029049503458198188031894663946506700217893044500198220356844602189823791705945531596281181814382559152390621578320606623776684485758268183206134290884972252132680374885129983754322055622363486439545934597754672120731709212043095895229173066052380256099948976031885630559083753360974996326552956900162024294845028355614843560116322377629197037046707657050712925154659306867631294700552195937056024627724431582197010646936637542613467964783528653201428437498653731009909099862718653772373375462252301588610825784347023530610809837026004565560946890708446276130631068347684805195464000089883891110870428038996291832692394719682657108364195583118032870003089055828612691013641622752747276160414212820870620333262829845783745630593764550753249198759891890422189066365942802130854599531536747941692247891080552255861590670202015648555434220210081303996849867055549767736212620925779340038736901034231592312149469161837270833525058098653963325856745204621178669513917273234177295360288971902730874543676778869560873174267593139177436693037164159682163951667677268564876343291449234044557709481198885370101555044624593600125581552810378831150170405879495143695251872668232211684292381236614055131906157849862579513645797391348883320154362350112117476959495743075967351781952520761042185204367836246888021738512471747657455314595181474964623727466497757033631654543317531271599023870026308310375936318433189356200112407768441126207929175681694214965424818202771286960903842508692578865278270971926611227436087786901219010832546918201837298782139309637613089202985220289223554966331754548625677629843616186412892646941784801970735178697495446649684167434899522736380954117341387547315989595070287317247702897844693980254338714381925023756537133691522760406191420455315710733456662592625174586070617508819890471545407928257369545138388584266785005192502590907017680050578737666487151262425553985201773921061960086892836457438173570065703593899481877860631012345769924544537182009191060145170760874136271702597933487288357155664167279805650281448191966547580595547294531953635634569451780108470692925232360866870686870770894123324329794521694103068681712157295186928408454774154419190409012313698446976713076321132963001743940237490021357617000080191216676961542356071572911788061553701550739478559239067675377265710916411481400631547642308737301987194986274583549643945106929760291623569575088001920756650247387938015824447131650860372717056939288812636369995895150024306594497925053689315029709301458223219087343895597607771017214334168276386941646881784408329396161066121824700510934580841332138887798622587365353690752633912763812612106638354915601666720448394015816378317793607123217118035552672422522210415214647395376285779757160415760405338280054670460996647495190020102438519936090173233129467496572422595471030756367446666612434238169685274705458514785911915242971265959887566906521812723884027340559665254617328562876081192212087023250759663120720082597585316223869223572756467307280730209857137173699634877869577407625863908204493179138728753306531317362978593465554836019336830861560256447614530674917057986711510198790693505589835953529910830772208316144737544167583127366945865262867038420809295013846701156626154355544405267430590303509077541714864307139966591442700635736784936665483023421243867341552392405800273188116313241920852125955179752348997074122695253572547252504627623639111314051619008084139021853766583958745327811471913929672457087544604544333925267296498317394178593052820107700802323700940696867400140786695619155481561467912585042057490044973514462773000136246440041272393485089165311776838167959863088588734526770484677049094474532533361858208294187879140058100797819906303382751587491814748889690966577571229514538419511371905650280130166034832398618338946079546726833650954349887646967317461541861507698373456722830349721569052662631623594106514650043395958404708290460949334079252095060974090207379894476086698695377125611919500587142505990089571429399533809423769299472827944828858997493727647283624000850820522619610533637726585339881620786035905029687531439692644509993912030334421961110777293149343159802268670838402689618099569252637277272313423978227437469574360821047177791284784711148135047661281535354102577427934237550879489352248427507169597209737622477035696764241539060976263893469974492841800205474294438416146373066864916612196021487372537718914111353633700308824439370972481029348824476540723332380116320112444726325262693940028125868732755590551579239465476914938582750476800241306291179254578217745191553562133860911558492678756803403586469627922080682298285437601102500903244820253598803574288116862082109244366300626399646500415406376966351175066421613011373573258634876996074505853116928228715850338022193571846985286743716129057125373568387433757347038278289923864340088023071144262263060120706281604876137061309476046290342310352261564208094414738568224732606464528571747477425762924753929468366568978716539693244415984457634774349009045259810447070368603387585586526372115495393294530121326067223546142070597783035541119408489615989713430614770510713123271389808182620815611509927750918295144840855659986513524257981360876483353300038988988530153162975921188735347774248248985108000730404660159199623806063204346858028517448059864359185796278754980793841420596282126061870620281685339759383185461638881475659688170063152219216704742755273725208338231944406253591213940688337342361155670872837974617470235989235108474887155391261636196283280184280717002203995512988860932591109271483816860710669060342962323114066280367466720270550121495086350894066206893034694142187511250004157528635276987607205604794720938753006662786706061809748915840805575858378809012914656690426147576026403447762338996409661317626389607139161421230539822150074878776437360031139100952601991836856161491452104787260301861856237381037711683232774027113943619066372492299486000626825542473831875083011837144120859335008459832561290102221919298223789407918593454182237094007360388284777503792722114461820402916996653862796941873099973064079226306619982826574489460917960984130748949146945635631781734127058574763184125300613395245453048569039269420085190790731949990741546233244042152045698200395999762285983724482532634735830366953942331324617407020264131794239472504302744788347025524806140625005104637345902665770012347585177190281607402207298668219137685583907012364448910144103717927536737196081233604463537870465455173080448366205225101084682712172960684475718712736335107891845409798996794242974120162583306608629662572990389672640914185858663819622602730572242887342447458742564455292359138595672056391204925541176771499638694060691054142419781218047484282289490510326856819547474174162722084279918678810482582123215545019573155871595656400933915353138174838136926605458049357839438331525508485307450510818099971077826548947876990996270116045116627750807257344172725499787346705806693354352533487422521078075695042707934626758134002566252473240958180863477328891135080051456575773213101371815077656086086316391014550237084842511081406064475321054049687186175076385027201413673906441543551035880108608180275698975901369715009880057124319047985948492956912268995729874131123092567867194945602600371638756035434688417225615904325885055370790328693963216437268704745142989468489911512173458930607496410800584665976194602441428207890973861806828107338592143653487031233059899048595309783382703245594993679659970770647885397437610542332963324173303400499793347062848244553829832606189129379609394214359890393580042410234761002996255623687329792597034645284625312076672306058619090085493699433836119101403432062647930953022786040691478458432846982452961205784768088434999475929318714971098368305418043356960637620885029022158659463660817215352117717680391650794981097428554009590085583230286197560805530065714720536547845558592034525519680168956653591656395581922626920416083047564938653412141409057703662026521177259066818670112809826901704128306998255970512247005961867037682147635650828373386676663829938593763289647106094497444712570554204513732439165833415580013293763346010458345586827117739655944986063940278242914776520770678675027148480501747710233694034698773811380529092673014940906191104758080748930385308110345418397281274906668486226146096247405394052097380380580085623541624111234703342260036682601222503881779011012098991627034433662378572925697171028696344298376949817246189625019998815999953288860729740432832172864412031578713213769018063072558987184615052816348065083592460774878590810184706728579798125103254404946537479836565441396599402609275007805068374907304055300389679523819287643034291242093194457338307583970396256697949233852664210370518312046878069416477432237867751277324006978454277727649857531409273588677647325159269884386808937518477760237789321039352920216046685677261412458631902678144678142075034245810374199468166295469959878798771371648377113988912815917495013687015486062334249961724613344524380407957828030370490457017708256816871749776835332027796981211907838836017791132028098010149814834979752248240248804300946419831709535690138623916615792554656008177469661081750755787815041602759157528087812540245997062085610393680897033376200609795042477553934481390453659755505264538935166797681350058865743360736091308206083397298584036535001142307762104969982014550489698531447036753369099398299484054223130500804105081681276272228303168482756649225294411948222795650044319609135966156381813143173825025034001828201489288991365284264871439645027410324567335446098664343668400356899763552683705190766511075963854947664283530913682865759880937649416140950079127231230371615825836480148666209548072544295888296267181202738335995252266756161900769714850771081977498793603930682154891926406623023960435010015436652416936268290080793397526926448470454631019911117170445037320450684805314844315736205141817103808920308455374914195282925830341992336468725316214179647638095177439769628143064244274511690041219463986911519662607002490773490644372851357566339853196182109906884503468769082969706308305027763357201444178926842810929747448280193243817864819446805237386165395952060249628514735866909354722830603944926550043505725943503531511386105787016815391170866396418738524804359545845446174834766042071791751756197703968158400112133496086682340719209625266350376135146141573085148306753652856082929343967051166169173508685808880291362920900089651969626653707561163242448772985458535772693508913659796612538375383303605787771528578193433465968369534590045337264247889391518306146924088772069410166184812071668688269329622187238285320490163319240125288601929216863025897481807073311045680249489759999377506558999061583164026045988553178396968621163435883547606300653629570080966798635514456082373649149129449281941332763771814301397153007279058523775767878500715270606761495361027028019490935920124149946011006783825008299192676599208250586433759723137810052641096138248534315126816702722330932965038929028627607113454225661812775766562886260653963896899263998030465513255121752442735278433798004434693001158432163525122273465300547660375013116394113632434915975761773397330881631427660899680381405756062618602917922400137317359752196706380086840208570462302271435306836503118607338979480987433409767790911797389326710538602073340101762030339405063402668088866330378770767808890440352104196642978192226242648259667777460093455267110159453783714165093596159108789600556122105175910338687051270048695602680642559060579280621738585808811442056239995090307659385765108950167586079450075579793125768533322076797473162424626708471368811627329734735726891627560999045060734482671215202397730775081014405278520203945759439143526158312836035400751008615427241923792337055932299515720354139010643583939465215049114701151755833036758451655326214658656960497319414757100639479681795583052654805732556276510234572724228267958072989525511090826182264769510087011562310021516284920654615389356475019834887541062422693370939957389335875050189972315249935179627105520726997695827672495389851742416237176517572165909088736454798942106128689378025852217333390863579017111883673822817718297073446818657886271651492487041276014038707332750766063032754516782219161712152533714731536015120050259350927460898690957227434642155344563951447533150831572482531180448692050874789102482028770654035032009781333636147986546262063031462217666173578358238768302896055607339518423726709554700111942464205183365678902070687498451108078003763437896268916992565640732527134301657126807623569760049448690396634840266670155605269802958497819862061753901073781062381304217746013673872192792409212055523904212366118860420465936482249989796528014039654971736186435697599252933066354982921916378550330035365551323750046103637201520996454884161221872455577935141366163916471448447702175783784371491025678055691220719234266510890000658013424801855668910411113113173018345826735722603594901604321436643177789985020267806573879936005158401986269593043311761097121263052864069878794052498805972432283293689256277284532858065526303258400803769149864222194616354231033716497125843421512980649023426685770327993070901811503257989833734187570711684468854921446986890903755156744715347999782866326606112419031080856160831156723147293697036858597667474917940348166834926370223840691708010903410224537779898046389940909834763811490242535772948390227425548657564212958865928441463969441320359853736112248493273295024126305421793152248047838397155996761216557641723846488097330269804102590846040074495918809285619153686546427330644407027495753538433716911790502138583941912913174049826426637546897890129211578093838128518608827844420085167412399727701698270304935882804487170620772417762684481051716396583314568931441340519919457091962601505557424294356837244354635510343458356386413516360675990160309521350067829972003941689386101219507312950990931680497427177310339026651266726074480608450046572840653793499033930162340802015772752864663767907487223298444208159658206693376926380752789521019693688840835647486100106192087243792566182902050065260324359366643857642089709835296071823252371627493613474711356137274817560721510446071841766548575952596293237334334326462461901205614072117400802940830753387170151394015590499243336611278285329450292471196916363011544184353449142950129534583140535755013289903934199291814125065012104622214069460857619844324731829650443715252205496392591949335083429068726614322413051857171640959609708114337083279472157871324700841410172921677554601258220711045148432222521656178346866692201301738584391662741679986864546765077934385062371586794420230715302624577437982220563574533254842795311792479913066631573611523063452705490285106593816182465806956355680814859592736600066616188247647106945261067611162821693005738717942482337629260310602942895669019331040351375554858662295590510815171330700395403262631089180508471862890604752783469976457109154932930226961593239628488445114192011729229294829879744870434448453894324252674600066419868534599338951369012641511712025875057733792361960591414945977328481750590644792347375785344870926197060424442781933860433757353748206711554689442202401424062502977038040789274105971575825485142241810340267073215890836253493575147132614337964371737428311672645554105382460739512612179644705768800141669861025262490020249210979761937366725669174017950286325980327255867450675833284895810669141828971688841120414363063411670474106556681979542586998280313031979430424909025700918024174001865195448209435379889977816370066573524356784171200832046021732610262130074994610009808532170456061880534923265794954090158849000799083976261548396361588231008217499869403550156373434228987044867063995322224252653314435408640939214952508175350738900045337420334743969138789880969695913370016642089517128325923394006934053072323601162951575926344315483390158956220327508124304479343288791557572945544746270718867822566528144110727947050471023474352448682492014785369896483338979199896564958408291497569359608674390391575397145627069410535463365528551389114653430785972233271755891285039819656503525612539694063655442153943662427032542890883861773338976229056883847827566556381245371596194468800217289437121010590594130919011208448559935500528108965427361772394088556369238762600060590483870346020707128242814346289375395005323112421500819452320332613042152023783225109988064917474637806175299316331860005055836636210885315446144858629228535590082546028465020806538792898868821376661633531348430450845688430326977546663863597437403262452995455617573867134201742433426198660502782600277362768719506172792944283841815878773685697517323466508052103502155774115286005921081510171547457497198709061793016343168265373475394783642669566013725838982945633382723138465063679980999372218004128887506125008997953034043913281347318126552607372821256477724916980494085186834017128338426536354886040232107779223070030200468369861850865196669776481624499274981199403901185382455460320862163540400856435062887726374878033755302146274123694641772358237210372980876106608105563349375110122975954301078051954402787813914879416140516466345437438504219783208250749447498956847241953979592105991129554625690024362444374067060053490836669470391152621847676586473880314344583244038845106463121906647194802857201646977200317374394920885837538108056963675777527291984243084030758565789736472083265863923259552871501645021275781699860985832568982640155573118434196926693541523592548973823979729629292743848616525427466891366080405398542198097713503404374806755906554646374499412704604268305535040109863763325280252268896607911914626195058875691841420388509434052688292505546759193977671228598721743206451461081088499176895717874105612218781790986078143600546656190209519868637429496652652032515103509899502450490685321443350882494454232147109061324660714633151749630533629436968695413228478463775775529160971074135809450140757917329343076938264648474284242852763199494727750484550466927478314556181761863807524794463163555275562518922667212425284813954390795220262925429912647081813812673692831124463378570404161803225826231017116412167877284059174624261254365943541853853345098195321824377305474296591334863656391597564417225860997562861802274617809084374433791117028025568451979151244766898240998237484547527799892713468582412595233585598679982485540758200672813670915536089707089331062191553619331639279260127443985519624023448005342813094552445983538351727806766789012840828990074609800412493939189539094626423459302193114378205150960958888534030666026823380038634212548986375385132746820136643954705897564640094934941947127524764850215185515439173619568187340984570171762838420830617771378266212952813886112493849760245191503046292109098979638367948264455571564587325414937654355718274144787656147202097376970763287992066065346583127450349330766246823242656435445699432750555682161068398411946796459772538522534345638696917626027144070191560658495816575727710304959706248909814576320428306028899319809811067049313880898829041662615841744596142463050213734427694421570111814112801996769195106509355883593906104166676660074145548920289838383992001157384278465153365604199269651705664819783245375216696318252011934873180483798357992245280581210975693801441647125210794856452274471157611013384593665042804839910756271858228617947812548737771217868598308957861349960139486567230489094568355100704200722303861646110308962022002692217477069479066612972004197098499971091868033907822045416216429691515282105197159381444654401288400440603381254032454370794216583229254277442197603538140474036016370232892534532258677765328468726380016545630895190367442164917686759395338027956899309040404004341238848698084380114245966788155502616414896973049319698384543765220169404971198446583187342085004598920691534655130543092280911424958827927654637296602304838167107934257029126055059000005462407052017272762894088269594908173620515488424823429712978162748331441692194066697037953323857705304681715916447353349541745845276364860707212026924576770545442786828007156321604145717692146335938464253422944673394418689763092307345569568646710852955623035880259550689642192407286252534239298205878560415702181395300710269756575754809857283665040519702595351634045693084986919458904611311992090182446050754688073568945250047103367970928549428322318341848918601678620637784041577220064024295373585109144292992134717404339117463384876195457739272445264350563328998306650719648372604729204575038383371279130114049953143323048470425047213810852899275554829487559563751538261608758945119242985772040775417920114607322247957259125345677419101769115528449501892383814102145933822253363154707313743187843839273676363852483175040035162247758074791287477162650524556298019008717313564469579116001401631252769241842399812006206526010908265468896866628604379052823049778105395476575390495293152459377570108220186692414857592587041469364462822019059696270722115567658674649928592383660645172640016955859151191591423554023859135852239308491671195189247731610737882358761850343148760651446343838506261315294083096433179836563618075585135806578335952611676445973256120516132257359636630901845146287850667568900202065107601320648672225819425157173119950875083665914124357807537614263690682467235749285020281668146553492971109756637825919324281503342373747931093215650226533246094624174925087225066319426040012785887945187275114079486314664151028259414486033274020084313213232730398250090428544654711301602280936300729814494791711723210521827297592843077421709928998961216007379556332339880317215828097330952649779587989026445599309885147912612748158108130441401307448662414506621959418735710859709147656433212547744708964009331203286417564488808740087240952864225305540072454915785635925992839443829165574919924457899860935025851120190058436725697422783181665817832275851982238161212999045867721295429052362181676246788218901598432269376371661969574480899486058039577558497629071290952296106076374197748328444041255935421228420678601078547208999202054696421321800856638638091934448387458344146675195140345577548248880238281233635386829732246378696242346428688100571462927319240766699015610611804642325460546934234612530962266001599866542098071343566522892358738070935034836400487259914596162575113973261081669683357838696779151717620903693773069703800311235268935768681809531371536206165844020417394456188113663611004265323696262184643421326036932335902322693781607343762115387316571334686749885400502001192719205729182129636901408148573888265355976247874708962926261834948148523754525788127926142899459970332094817898656480768008269698240044263105529117856128233176006802071140395073392655850969640965978687193870522662483237167113162338403956799143730225923435801989163686554930547328766828590236843658731842293926452667650416018611734710272282620441003221568788758320134780018458425365697516736373721797619537204524742443883175490637776760434957177036050343997887280213752590839305475641597617241311513352500692965936337755315238508566712019089374200539863015319534581247627003276197331868182347285240454820279243106148277275407745292168972263802592204658933494832221058380498349990040346232475296966399416216196606291205320838835281360977801543270927611807582873838534625929596971488604840297134282231676439060200008879523402082663435704299491199868293095097841821291542892290689930371154926669597719816278801129721708521535296597024773243193923846251300733051362697569295914458146379752224150172193333301479494753832866066349503177935349321967135339665791954969758287423463061931579094612109571804168400067558833517079020612856780681304298604878370187980192431436258818683050166765237294279435317161390921273967848887552801425205064321718934932748536503379470862830932547256680179030293666483345515829006499028900842630614805875424521046699583999090104314469582828280473655927014588893680069858018591454673446767924051048656206631859729916751464123665407380029996672059936603336844519019138874165888644164950731888354546742932173064075201523267076828112144103256025094822850369350050353019603862332286416195016935612430556110020152879382711326306269250491167200528805350034313016768252272722162208695125753579096987953050559599033205692051722667496974976733140743116677893914801459537835359322782959162374123492838784739849738607102167352642325183789539608750466248861883787455687494906622615061076543591753181370840846237238442300741220350258275411560108041960468550051150762650272009334669940431960580864842504730197410810927864277198047259947628814215928977339947751934568603986946450745032413115882141872870295502023998486384280630619020515911142242381054271885585505286814610976475561589809088692233966994442427221758994489864224237697748973344376782620684887710882538096829994817815233950000813827254068375301043528570570612847138802977338560190941184685754299863302249479604026556608442371812440776962729271180399561274041595056398212564961290521678028340937018859275305680506306166411174692493163187437150204082868090645981146958911693738608863296448266920468232754289408773390725066784257601946029925750632153481315497114805404154803915986974113852418690453024004764438376675777558756407068151809974892806013402965445873495119206266260514486639803085135014078846462620912561772617365608024699570713904758347472985541440302600257235935778695409219800735733897171123187456919768671519634523824780375777476134634322458721357954394107329038495689127216672417006038541772768158441134122469594584484711563919548042006537118838122306510344087165715056528094979408106782473825449890291942883524497473154718411746382372278977503657678070561921808427472055688514065714719688092340256431052503820174842910677377716573163387106667273679911398790874319923308002134504406877811634193633855947671777631250238399229456408738522171676852235124802170968562430233894259409802377310033414919405396295872428810230178355749566038570147522217428788169460760937679835820677551588775075990791693125544956829391443045425563346724799776415336154928395869076507772089754293401547660038147906692645664786638290898752688111918608620622239721314898347518474058353018855311791019653965413654492765409220394058989622967527084938050725875309079080989152827351215174709271301919828944111207026112624507397578259232886832391026326461388268725459584376352111996915630980339826098915184866782404737131376325217232187590168863256812504368691379036984471383370719808860816261500577458194587097513798741515179262675513924120466924636245440997656262756974521989524228237923075769232255891529271429340274352304831724341888896144577272930381421732346467256030515086084121447165816284955794083419144696953568940069167941899247382195754033807492589624238762893746468603761246549072130139197959827220960904255250832832522254145731062124972761698945803584177404410143786415559971746887143763352132647890904488277399247770712405799023697468909588721148915589381262746485597560434505689205951125177387123817114766904778102545222625620480161628263438050596809192487209864838085644443860475091267191094001980932441619877920496710649320763520480231265250783262761926598125148692671568235220857429385342396235862403756661572546171138092114448568541343500773631714394212628347652989750106810454875064437246573410136443203884555170752638774559760783925160896296730706651524413015359301152563516982095410079192166141990706893727505562135877805798986453331742699001973373546510034913329300647881859997648879292551161487871142123891709545286306298263605957474133183530051245426584333667294559608561925296608146262304074662111862191071525456468857609515893074813354934383101907494316699580579851245155336383640870702884717279131020684147549497541013026890249589066640289046843226061850354085268921131500889019415421340557142440868458884381862520424364037804749514730850452284241061503663881450688394935382212251346969005894439863804230904896030503393297495367544875739551721627007532386556334776135710103428153431418835613413686306370164805718197132772162650770365039462428181740703829181028837618850561780764610202609263202043822035126430131044867774593193696649186254989161651099882937028655520238257687678149742895665189824387991221783174549179310147885880402381832055167776161480418003369856033674751639191776211275585725309931079628333379124797198678744959180948434188627753189670946591101187231729255679141596036379316092978193746942486581446704211844405105770886469525176032655457837080899185777646984588420045930754189600722931678174021515285640009157399742720572204174639475762542445651726124792385053423268180439684242211540541980855206937208410227954249729660802430061660346004667256094140276790885413149906158928277947337361364598509848804964175202667370253712657633484082089814826524786586985307507651950505243592414685768416375396071770571146624810409061418192672882568845474570502889456237086028478243986186901451965461130851857506805341092496073317481516550016100815724724355588832956874235072033925039603743669940962187949354968590780991333544812761414796881619741773567276594569433187815983732280454008810775934684665725289125925228494509361592335264928992000838512232594408485323054154301984058146089179191873107963338081291666344984636042032042462377724148117451353395914929251138129943398133952592726073778496941834627126133763846743948524637961500728688448914805525710480927831900293898170356606616325852788382983436192683001440873694134860158971255385956219023186158946407603611167778952891656456539440802941836541227174773573831668720505238548088439516276612450318318536017678725458230588061603282122157454673004033416244547063703152573495774563552558421708004095933882762129002810624345624218267844238304956803594689652465527156537999703808354244776385503174742319205115860642144798231073808892988654543129695456348511143654505455758425462208992187942859457440196989890627034348079868939998993180732221933822057844828755220443069592990903638091266349765561334092482528844564482256834325170945998793266289351426592351201340197586892600132671454795494991576354586713036620957411619069218296453301236648813685585832499273062092435090175772372941661197897924317979957879711396342151263764270155969552865123959639381889347717213715246711296112034459294880677976961021550183847700503926465801980694912726709647732809411274659387203091205523388063214202087034126799879481655430741913107711442527166475573263762050147654841876310846915389509535802731984913717636089549993434290234715841660973282813613559109593738891406262410472216436882720558326278899786832024461680296079899558434555204021446245619177383613311692213906355757712923317140244571460688683568828954641357977439436706807530407228425744753622275179413410349579680165939855678877849341638976998546077043796667309536048537356194108650670282024479195694175562815413987872376377301156755355710188767523618445990995256555623540696296164559022467221779831866611562131793124186119506818444178200109998621851266442261949226702375799188141215795602943158516468541409994520610937164023685758077154993467953944394535914344441762684077632697012461094572969766852040771524371436320451312564410808711984714925672042547937521110166308522332021775195178436402391019017986898284063508425608603307100228041018028904208953876431201338147478007836822691284084084972566645489791772671495870983833900504631454612771293789224138665476274165157191353543148505541628850775152226150648627283865205260844058148666819607946947965337009428314898736129968141312484961328671953380812535249480255753691455493923405498388038308270143800148440103790972809729167654251000017229681055568739563508986926533517179685671207626933750976267907073774998129295652988541517265082524501583550474590748093015799155281147869567051790966237669967186821659094285736025400994551592528437396205726228984260313356958857053541445446141714530253863077663288928304311160459392813637416378451333645388024646156964832337583207084934172732877140972907297348173618937462484845814988976055790773999511747853456251836626240795279419444144844105826978952740335680483799052176098892137697603667370637150794018333569212894065611548558894826696748865429431540426972094652478659865036125390596371669886450572953251208808936776994759079746497821459171640871241979760778485921995742195194450456757606073027964031561060955430672408802548019493486117678170500696124074039772513645249143687379734722112030950109319528379552000296238338213847004804047656499168203070134061081702372233839197135952391256986237611319167484699637248155165584794730390103356270450731691251452773376576298332458057813218284835157451338819398914225264883505611017348065327052972618349654368544017436310992964972330811188889852329944952029879643385658744244884004974636449775519265032419476617716429954135303686467975982512189030010149080243922600469257719291540968931266214227091497836934043155517050079783604010041124708807841730478346033880797728021199109387553475762540793295141231883509932581167760899803325359491241669457547012535226778789259920283336817544418965975552246030315595291202541141280201254490970457241124310030392444899745703880404119518087889056318982753373352547826389629610787350138100819799809051272292950532753178945054325416781674126714804421142370775137135914984797344523624093158124458083637574852391055413853778553458048593625387164727685623324580528077132994943399185330354874596385421011195402800724418065256140109450844724633550430414617382930817794882375319887978826587619768044265407219872360717998244457350955068570529126125223008796951844590389764593318143520843276898586862898597332154308645512336674181427416740621526627696403293194191967988490792712540838314837570294276586742900549515766308729747462434425040497501801514895505705054418941971825930619779047095048928105051542410978793214529228394947519009901620285834347384426674717840190751343061750256903110578109682123589287751987873561297051186705063818550214913760364123721929642346411916938522843745468716078409559001287564573036655864513244922085165615233212240164595735545720873031804603927205053332917805349597035391727408740565817598816722445845906898530936217228734132242646583841409813054242527909825758661308940942692282745016655741463361661213460265974959196717825125173902869341798913143122712472185451296567087569013025955274502304824370397543532652143324257116657165101755532852405069086502514807457949082661508935890718820033695481441670099000323328322088513758225920224043897308710314832969768733747026438519939857588009201060623466933659435602077963742313148321693251942702734343844145870462195818508859916079867992251427078595266239679491894173565055891626895994893041991919783608842367897191075760070767657310786313903016161515987256415475252372467376433016573656143542034802687840040981916307399492977757993585773917140366422387330705369844424376216204299826145042246766896118102432482877467979643363461339760871755551114871215728819915353106440750835491669916489918484686470580341529505026436392727314354234949900018789355472434082194220502669591939675942136269108253523232320383961307068105630397684347381293519053775286207664690279022779318390389640904157770038778924461535423867152560846839162790275258142207650204538739092951502597320620751402702973000786721014476737815976979294111769412114849895376074129076218331346062409074903513890059450383014603547619974972085467915202972655339910935193952232091167591757997299102961565624596724602742435341377846739566790007599622406341486493125041872393118403948655964211198213785063573013409239914378796675572550545245414726435157270396411862876317840403350889067893451593347149968493986326968514269264927627425482399501744109339005680482282433822285065413165912592215573906321076670286065404080410036109438424350786446024749927428204193489875902427896832934728534603862097610162696041739824996996679933753415689545480855138446779632083667489250701883404872988044048314368112623855308460774540775698482612725176771296348820434801702924910105251464628104448627775772200606150052581228609764933930553324605402223112667635849581380355013666520560158142132816274458188294303166314133849834118444184274293999808215324959931183713354935401944567639868922893446576807063172742721510215608015689377522372492613557777170798060879938089427280401989760484157117759020680641115265232890347060719762099279204101011162108138137825229661268389687906047465636249631398382440926347268521314473686961877684939513434671070429193655933001447709444003532170398047390673089399418861560226985778958378018937321276504649060596889478331821842201705930861439609902531729505666858170325197157080176202814978610446580810732270118222793024909729716360870268190467844370860427933815364889694433704694292671477997793407194581515205389088261123576236396783393767230326529576224474249136531721974271266671153419980825616066727695216118121549167381944349382220665106250125455143409215272996402655812926605697642571856786992920656291513705143782966603798756535649137023931579959733061031190471132922363109711899020320425066248140625359643019506719961265671056088717133455427230293483519572666896619121498544704891832763904746934294014795745137421884371162517567171731682795155309891386809202656491916923965104817386255592758840400646874546526282754969822531220000149839572088220587768823732051022621813115239770919691347324550013235443447819366199636770653448237372378364946187235377020112441911059405931522548595666193253693509236881038085960768833036803990102834154767553657815059605083054939928511104676695107037514539337251284403182172040746223589234229029682697174312063074113767699446644188841234806645516504798470480414615301100862778925134110109614567995603637842992793485022000569564096201033167278764451267983417592156772371646694799851353264003520797618053566833138918026297637980395189038530540819052509626822577439179736067746314493779682248181050496946631853108196684287595650740938922579404153888230401604654553643480620144953224040675970907807575443979417498730721267295995520272715676053144952060836379555097122477744299313543547412320405118492001221136656700521158644432354980084543011716474312124657748894739504535830301911568351767015071926350627317191323428003838963337450306165011026509239935380702890106192244943498865931155950849023245799723166616673172248827983147005389766054026150001763547554357675692809405525939317654113519282237279879388654359170578530490726645654126911688152924733565079104861709724019010307291829935382500867717863398595800678022301267776369463551904608641442092745961323900736349450205782533135024593179287701017785578402958092478356219335828651255889796688706975615175553704113368624546653597647305967980378222555924011083490488349361768457430326208493327645109099295549746547484256654892847696787194187371950444454072091223479537975866157007704700376740583489565199379792731625575947019280986038136189946324665302811655711574684846041468812010219767194530557031326945366515437316312251170198209409400192749806744058229171963165816597640660778066934636228190107958617294527222733411865404301740050664238549936740794908711849608175990011681051315849158559235006011939699076422282686466536521209997332339530437125299541918038376143564866291089679414168056540155981424155522148285233576863230103148609463118806077729774008797233513875648033651121280784271830172894620581472361820896165621432714022251301293410594864416696417869638978742896595882709391177033971874463375259001571102368548521224066190146194190066360381468739918469631744386406404090426991376504950428283536091466310542071463048651700747138678619174013703189585245025155951419951700646254069498965680574749029642622550474801450105469733907754193066683519067919229852801199715182231273310493471756034863430810179646094749949037959462959302749342248218205795269343815841815031786102283172986184099610869778879872576324820941699533841639586093862623359429039643046157265101164310899510555401251076161932198852653329559554667961202889262226953590502833569968065985251727072220589212437413095543777698741175864160651413889725243611365189173657491540978738943834679642299930664172919541209522405670926605643319383685201931818294408893874733190797946931046787596869405217176996836693843218153495433308459121947329733791427890337351063867227782487180341862910294297304055213306792786775097076467933627068079173524862317914805010090641722520515032189111389608287748574821298782026935611366432521218294950581045372211201020950575104037628200536579374731689766962067417563705848842318610833443010173288282346075440064293350738378609295135989018337484869207365186217839381014112021903998878646487870643458104919922264423871790030456822423679281325560707337558302676037379250512226528656839785784983069739517941004530526045788229077645009644814797841638439647937084604706136365527352894086680873276323472746739547134321029277505675994872187679513846680507067149242688950517905211566929694576758604744069303885065490391664380648474710106922324448257114393968481722845292712378062501313987882526341558055439909742641034462959495460760018465057180648797040005843241029772896185216898304727945527567992780688152669667180092320464292243908698697474042005314285073757006581907772144350290279536319482780415100739587718912231203911482569263162438676288577959647408589599345577470000675819695680682851602794254278427893914607336430982198211563300023885713214878998476174453055461013752369088976513174751843250620975237112845914968236313819078478942914036206262775989259458532945518256613913549045096996380433823841238042827862246594924041652870506962152379108503972139716323918602399578020645814516253733416073942686218332159439285518520466438308039094185396451798697824092987368048247909132331580383878255466903383469856994707467739602843652583819835999230248631356265793481409587249361798444631412842514530761943465248667670844132114676025768588205448076803487639688050667231577766403123059572013035503444640164147496257086451818368287834145452148084690276527204697405544489878652711498369819725840003669108968529987031704677059651799875758473673349080857959045292600152228699649095266979547493942055076984611914827560355582205378398191626278097947659196730761573485248573247895207391167719327216789178892629825698662903205398126406549463338445685308347237349452072008953449384611642922023206689650679817158571723976896835252981269826912616949758159983778859610222806615191328335133403798182767264019398693632510244601845690440813873096447710855183681354000286158281702918102235611490552643807209852653336759718393916137394318090438388090308164125047801071147454361312854453858053670258713779478968570576733594595075755684093755214184388758470203330764029346135540017586822232464931912708438003507332893918296337948383363840132678957886545602468195564188577887417594481799527231780890748127871174876579160452370338146699625979144946743657222420676554496793392901055115689361047624563288506821533568661062135245546376265408714719233369575569703258726657798335413367420081589761376663822374961492888334044921251946549600092299714160350032358302993177196711730091929994330867118341790983028394828448440242320502126584541745372668964244029439025289246937775167616698394704404222658965365121690716514043386942346975808764146851256768310537954920263800453295481640151555428082337354618640321876902665818026464676039835178577149250882815749896324698533113234765765166565580874009898395917234827824249864089854281712282797840744749400819322826816935928937915268163574568102950627816102945041464707581526655128500476626513177922532187649815373585871134243330612630280371347162154784661031847766912476291210382736107177311898661311320783711520928511836685410981799683919434139908569853823818325116102823520214158361141112600652699293665351989993112407909424721887026371471560188624325288640973273641035718836494538137222948056782375975458971897480949142253829726169010470532204671802384995716321327598122979379813725062404118992587677507241652527992635377028188115500543167639842293653577448389011903848394363486139360101254173275679139179052607242259484636065541773678216631544656723400305519624542374420047157983305280584011070445754552770502003002438585386538729402832360988654730602107908995209389644767340463329868325260653415343562327691351918232337774532614703966746478946867607508418468644121403518983096011819422002312632346097399437246934095985949109917178416369523918495371330719909404932247610948664168272660665093615152479333445443650091835304706284991091680030082280274930080595846942401712141861870745010692269053213162379965094647120496179438183558556574393089936162587609520357780392484396791115274119151730993294438933555623054175518483833170775668694889399542654783778504632111310903663208158736861209866714368487650018008012237563472328634554314157433257307574530252979251588046095868611519231206277030319430954574642559511178292501031000889093334542631400855257572634113466252981047345688623977243606787190127235787047508868460320609219785701294619250014325254933602107324353067895101730134680670998439548985945013364053681734052656767259012780860357958989121815366789747589416759255828328342314892198901116249322055991751479209951809211820696255341438622108614381497538349436098653666472947304338921028804205938230397570644318578447241148858675533829659581732493449322996520109023293612579242310800096730116348066935537238952432278316016427301134901650384972118734475052202836479237486858534160461954726619484286601568489195011174012224855995844441591692716607499219737934178904441937133713162562555288362855066370251951249763839331469245282312720790523025369243119454053188247887373745161089366511905062263224961092928469934978972242415892233009193035824759571565516765089931386057143914385364207061346403325076610426509984727226534023961004094094213225958705103536249815319884599029080981223262929776715503839712824524271748250053141332092205537719248321331475732393575367711896491097973179554479015179743143736891982171953982943898257395682239197076646308287726232521135207622233486738392775060575831328449253958722123894315176495155016756854769152207750523516008512149544920962041981491482008318755234027694042944520102605129462612649826393378837934038995555680558993297403531536292248899300622104604939249841344026929295442677232195353490010455516767332621129188089945581077248230817418315845293150822334689649513644160648713030435948127125489964382888369855941308377864726488532318231481822602504859541559141244515463809825644176735013857569379972704445707861447721636364219196198262316961309564841789683876285037556800926904177871742601861925805224893464617891344777452625335952333585515115653495851489342016391585355313297344500014943915533546878800029906175017368052966972604487526178369389883337233797783209449482874209116535720434198422257114893915945301727558796996876965433024182529215904712483856056740822417623586184111389175433026229788724585917788525313823848521024625582270435189681820501453119400280001610160018985144487762577847013923522277886295591236212129894453283251096351184575689589344777728836762644426820518440236218198644456551621223470636993083348805846985138397528700053302090322747468295245233425032346531138074567049892057768360727025010487390428903417508345612926399589920883819862957322299729442978891809027054423328851528999415437976325437308220855548982457234548518740097642791308518413644114817812355080120792613820996730112613726170460959125581392214668724644229931727392943348762938664449385527419306400444075163477470357560275656490880296903950675418825884852077939438359299292635202719149424284056197780907098539712265505389324504330317950917049396333922553645926916573144480144551825342890267253331996807111631627271500718098010984114098518761403153748096400891170850627191962875707004617453006695699194952744067715066074295912262866558741224864716350065622720425533382738499249697684599940975658681247214828797282348234599548554881684965128660281197073115551865188989046232020082366622181493097468441654865776599349664258805752584824072939750972626984419052901570794868088202571730781997594539517285223210767101776794067245375614955929443454707470430224769653678913821752043938787638944535530340411019064436596094998130822499859987305458187689827232385756715196251181966793234774382158146680136219723920211704316811422191494237659871634757774411055741555412450708054807285984898256777327768387344205998393628940861792126847457300523203058432809423856774098445889997260079398594950838969579076271845776951547774128231040969463869717214349614380117031728891139834462227488295585086070575274059590211250226718317224767026614895825799159295232628642791177683343053955158831542921037099297568561837972654414465825978233486128659898401902948217065038655005198949246225249540286084423497865025890550357373969599639036737176675588122760802357407153091061616639467575855678892968818026743502054287122150936096067822761738714290080786244764194899409427761589163626877507902957341173476148737630929938751684434358746386845130758390624660725815986090049146576290635066652182424525199807114850822201091692269708061983547592119422113077294950881108329417298451987179146126719638330799993724452836178757086055776135216634757656935724400255915092212686105343470246536264305049290782430061478321370044080720546566100290104167199214496725273432892585111332340761228970085994580946459537704382278575255179318832581678251212343166396132794996440096866667632918491684578742660935718141836938096167889777169243812767913370529787544725981019413876114446235694891831578367019066169935079244044811095135614661749111404337890904404255382930176378957065701624182253489521803271892622351986162469831594743203654287877685335625689210343048014683176512124784673055928076833681106992436741730816288107309440622336299229300266546510091359117343117164902299452222561154434446853098221260775411567148623876638951629270336382738151021201115418105450659569272576323760598304126177742058127494150079007131575344933418310319861866599880754452081746255382665024481830812725246266273789712629460099246025101987661103132570239558514120864862567769297726044699512516815413196876366304644877660990554868546334818202712603186892479238270324897635354295330513059579485027310083693531233574347136827314051082501295357365714912734692030233718056163314618908154112190880847587684124529735346887919680713635741914965476173999326234989915349519218412258924498489596500259204094314823289792580459060517683073892989726103783817355478005363944487429921972261415375599197838338871034649069856915806492744332308420604919890074572986642041184461916214379695925441666909336688291415226047653177520153643401772229273658194495147085644709447174433673771237205143821940182570709339797062574495011252616362589640686086986940744187441220565617754419932840988900132728277113812699776551549508868035495599813361284343868011918870882010791804111102062608234359810762068262510840713665575553756817105902745115049548028558722676695324953434431050798429219806076718133844286275017685841559320437180171847938131634288975388835892661849507006514582281312503602962272422475437474148102097563608418808739396785549294812235475011365344559783162212772611658579512780274201401964166694115519243043081771043420901203802113391041881955305190763356599911578826836253665675836926714824871538183932908131313293483694080353270966087752906157591892784980834037104794033453427256332573401221984004604393661805423498538938508352143996568854507355075905459124918109529467293933435021160866930861540187630931624000021680579475093977202136916201296089808153367127102834395335549031893989155523583820169583695837463733912257382588142359822788264922918846315355550590054491954231872380959209941464201653884813454232083656258594557351633206376351025594068704056090532131517114482385866046157462190138809519160543277923660595594910153105463789960682257456877375958398683505713985937736153231050883239936714476215682844795872506725423686515220804684018522545427462777671977782717111209400846495553861953185993168573929126580981075044316715276515570961826902561773932395706830555701827935423268805305056120561352877836265296005889218218148442088307182019442438760797385075623980955588308131613781934347312224149914310595030393116124355359118437059710504192116458855144967938143920381863370252368807561570799988759450775086901372729973145424890699482472881350596271053022508332930996730358096002298153916074884199667668877266598011904421269028504762912629284334749823874377490374047211244503009322707173930286442151212295519268335223043872809397489600369775981978426842439231713513929785900047939996040721086373854609481486006855880179360136276596682293160952915166429187704616890281697038935045142216372031093109671814573890098374581291322044309588810915411061448668731246547439092838964922041385171130542010469619879271204548891150543429454500668547334211144521149706936096200010297737452879686216144381114050509380307427624655730911386569481465790923591826371286946114062795506693172329951034486231075847007483481611351039159111567089935579428123075352888990118248749880783517051117625144847625486548525827129886020839924831602974325421339863124254818214937308336250335373200987362974550352717641298811057994940271786372547636542091736575073809748759554672861411754005237159502467594463674117590135471490032736652371761275339158143782483894346318613564951326681799118007005370298290292993577098452794632281061529978827689169518400492757620306703653545678315076943547858282750647294152334134552611348154037029627756882514497447448053559908950138612287359977077806286550095083127274746178618604850689272651679828673177477081158089015423123284137699759188882890134072971789054933020484696915660575400730592635286882597999330299176612118285458680586670454683026153302796695535356777158603071549317494841145472109842054556790685820457650361454946629094193299986331433177167694921897159645969617043473490257250856969616859279059635083955753957079859601824003580077343245174006437918489564424726227077207301056094996067513966188440436498681327663876379623227715727651473048369644744917008480763943187901821056852055330550093674263997402623745501562451392626228697468392646432826759009733006624992539886468158618155486596686563560396913233372000033279368729436122546822424954902030476261326361884317046113445746263612492180921616151886006462767178400154783463086646035900599649390891341272652428239718294505906096589687388897638873842113209641810404376927657111965405492247983361697374091618068725931829897007641457515945208904689828799414934838908138254735942031686226172801729675541301901612264473486861630834833790040405844579914481348303625152446122344726487438804811500980928695321648710615348501085265350367026173763826494053040798086111232182154515579328977980408156489619506900850644947567923642111513869788690624994494920509141987776168755904533845929106758859678656029008754702772766110720261548537259641055713512802367973369234830253527953274586958795204162628022596073205607973340653928042722235602299937474383120359431091604114943902060418780303529722199017736703002466984681466595170743210833991618166991583283016428064034038778677824739105023710649747031115424373941471675742217658273315829586297161615144926409657130577875788236076317566845735459810598091909833485962041486132086446143258265988035331728912828951723935632469733538671680877917561200932686683322161896107698176229661326501810838283917429691769457230966416225424762227146069020182572165263452251612310572638965488812938363099608085771653990059684392687320271160910705515883084396458485980726042222184290309918062153463858807762386907485786272487445038432693139458845154106446939878315422266260585893668353456216417619794024168102050921628463468147088046793046201691348735083594019307549152548737140447826172984012089514821248476285091661582433902557628030563835167767232625213471647333000110204742726190135345889669656672327394862256726429692728071732785680418869493270685942292368210681808651540610106016468399792945805994342273598790745083829583206649560017362749356150763300787544048502757569158893187518420292594903376797656185620556489806854013334237705712455960172277074567559246455520739131042556386050806306146649541812607895934151086451391559976681618298526696219764205351095145770704210235335256836871953402288846997446281958474976580430839387624626213748781611272542832416845014187258631399590932089468576178397006737160573749383569121968646368603936465985560271811683157173241498295054070913483652545506982358036721985317057923228308044967515154811423123204716908100870683489840689547344304554721576448832854490254605443025180532897826168422149267697919801961510967383433783708560033568230472838158820477757415401800931688865198584088517500570660498438634453015295953406101464567963789199395457959164357820910457525980766904188462037811294042082357826532003214561897263924027390827491192384533534199620556297914401156943525478034924226245283363739606028795781473144090880176980813279774429910494224927326829642355112764963204142520574579163401552457053030584804485929372397885599800996469049090663271502160155806927943546739690759718817631355141621150913965851427548446867192837474834290325667042386345798586287820950278670682804196280251596413117611836556295825012137712133673020908744731987866826702655329197059600991716175018412791824152232330974760887122328627813619389830100406292130087734443962356645285799712808313256069779938877897123182408660222449300022898766729828193179259932435954846832468725820925600728574874504984964280027449651883783366943285497417464402009635649994424996131284985241461880510829075859074662573598481550432728406519774113386501351868362242590768301761942562662708425842809987933368114912658543705637852959873141635116591617549048843169386334730740716942530941573897895972555382237178088511788271568105819220573374455772682629157505388243387443500529689310313188601196421642150208575590715581515613516441461952416609963051961195541073230939597795527600777631515968065749311778877898254853368068572753606747120864692396673716293473504636352038570232095662890327185735384667819431838327540029074064656808065248869866384414724736538807971679878205298265966501447720298157416951133516829644537969626737241436544786131961120513291504159605737575361008300001817025678846472379375005421287142234150236105693456769089704002138468817426863599735374784236929219590379226582638944065212188262609625070987884805740085831223360297221982554653387513944256459569740423433047745773920958397084087409474406761440774827546057100053818996847230426247120841127512719025893081503698175197788135497390283500494008044147408150187509270939106159898217746584221604486491517382073119175268188790846547032527195417893938398687503519391646970062578390282291236850190111530329265828805219315194673854800967756961089147348628645724011008629587497879145814059057740348499259832040129046203807358262040345147888523070225263224208518461372029429559396540524309478007749602521236608901732316310169421390271347793148808399227689632170698211574140148999947902004935741895742162854309986246580781856593843677172364076420766824495473405766939534413749851184208342274408448201532425820132248388362640362150686036247076365085922300237881360511578970574623759167304943729381096465386125895796845827095213422107365738020460351279877850553477968480389610013132219121209017887665790589680338708141275844950981749696838556640116224275274807815987175334005204332729454857562751200477825954320440084703758148695712723096080596625326765043735110573740141593651829769976761658177535977823411843388195360383592179618658354038810552537777985361138303893394353978886876204156152601261559099821243649475872962967872417804694897985566054449399645439508299700614781358224606818221248721518017878408665165101622969183224714262968074065550525015800820409363206699834990535111304417473572886194696910852020034549009694149636959122225456194064378979725045416118584634616606077773002196074217233055283263844939842703089620566329266898639006084122875756826095729639899591594425059290630621802083140379782388047006890344730844357068198608029491246202123520397886457720987037271997804820708920350319048127643955580335125316658983010946464861151218793880871691895808899185099700206490320577224962331242124563695540301458062349397051386847082193871137369971328797687935299763065266203174178903449082818455973670652262232413575593939701508432093083494095187796664584017726288141760935257000780679514983318012320666600777716238454523619232836172895994054602831617162969869396135598612602350302012636913323802586209125870986352723731870787477745960589270621398687284126349808470922909012123353491110108530323936387812579536599106991371126638143640258392436345721444070020148779097473187043957120054340576733853248478197221741464013722372375453878089582399535930113878345360451033361681658737434097120278663311826241959828977222557308788726303814037649246328674581384117131860944052901980058887162411039218411443699122295779920770872831918406783123092013915357895247442676806981092640327059608199067279513418669469452283487068811244466625050774155692103167105888455124009030080366142458148554044892455504168771452325800173797989994252419158646908371309787959281007164890790396714684022441978695457651770016540550350900853307526521701469066581166070336638997235939805995324693108840887989574253601332083363272467254609933396553409206854797008765674415907384014150274379710425314026539567295632681190534657169429842070462495964969287431415906376806115923480141069781405032257180377316256351264416542099120982614058206944706340161417476962868991816376344480480028712275019452487331329835123481171692530082708904477536997569814983632907977704152471828398086172949503878336293528848818433731280758127288088120595832020334162993995653466983550028736018693732869962700015994400438090603602362048382101708682205788972175373184456998447610965626185448722388738632816401416020441242060438905233810790021234125290311286599654591239923319192947203746145451928154262283134985838175011457976830484564432911080184731266255898501310704298532805886934680054257544431679090289590842403652990829786805307649586695206052448559564917331131481600643998723615833059659591198882307189607766132998803512266321743662212732028155429175630942053196489779483529950168952134789393100787031104862041784117938211229087653910447181426892525013749016383107636775424724304861052021827982850868497213852249619000119916933535108996353602886369178901680075070471332398918294294796130483628293488528446214044744657949598844901343227343700401149556385140138290267112837582512123322981514327058332602316339048135097840058220291671817230347254731984429549043209609791784792136041702204816262909903837857367511849652768438041297627027928356800077052208725564233141980949832075841175424067303035283420978947878496502920341390070550427346261855764215973269841805741874219655496522702281493446052349961964672351448256959450097782296930214611196159409233879596789028513524443656974634203772593865858107608260155134546349912912369612868510370483694133224237116009712702298494721944903669693926700880920963449511441923647335791914625159979625371824074101970967608348022586647587858203917986003268220217392981839937763057766702514374707761799966526593026297503112347458714172052098672095542462605758141691698166435675870622739763755430803261176000318829615433830529283164331370154060706964109315408291500429614851772040260941141000194157022471995667038932510376448943947770604409422148354477149116422750313613083734834635147704244350253453588574499189594268651132106439178113817279422263009078285428266320742128488507983433570784657957624489370505095735564108071512525585447579078530119501003982613830368848228295911551104254945189116744307851131954654514569607593497207882624177379399274691945386888511786033467809266477482700516346972551679945714281844917318351237271870743760376341242899369641218430616413246907640814827378257152579229003608827632942094008097008970400160074683755500685021738743704473956721509810152641973812799064791729997872953640197818621797456705469379175321819161204470250870986756417266615162033820044576049730001526692709281483947826250796090326528915118926375935492580441308656195630106003961002307411034111009878292278976554120988887886009110818015623563847271417280468327962089069896939427609120395940998511942867388836116189959634890337294066169739476306286599076288579415178531224386406255534895181991148372206774461373697299055899245995387777866418073652354940002153016207907336742808790664065685515741445459553118642085887231660781444144119922148435573126224185561788539536656636585742811253874583633540509169015159505403520737828217735024800711441057626999881406839507515569345986726576609025641279506694365525198618657849819133045056724696124876363335120392369207961293607441137262999662466267712645917089854999753347257334809671503992673256277207250052280667826252155975143879022809880150579244973582736649144342675441756928855264621150283246243076422068200766765811496117293780865456506883976732621421520568369882014751664323208657185641645235514994407133345437856116376312943067456859433143523371862036341851363531993359380685243582213454332586860595438179738649140576544847490592079461626724943084465716204107150075966551433786018096720436120302899303127278666809613798239267033134411458722248275898012587193011046611702115758782329244110543037606629337664496615928214360644966459609261116536128138338915913097400691058026376951321258883597070461459982852712162169032713713985925320127550846151721933599128936139943146964550646779814304690255204045652830947156165474126921026560988802746030705436150011501996692061394890547942536299523438184875000220905337018673029654181044806544158150689163697897091620876926970579786592306696572870902872710135868323796604055404590999461161142931565061608020656925366006228860599245421750121256894645786568563801036116223790183454748152972129863802126954748191339559364503744524648832361961286083461621749286782405211396543632526455288165145068052669253811552636361200066740155009108459565052009916199934503788368117035515782175741977977755344286866980908690141469145397145025385625610588676602222244423887528041336371003528308668661505159509615190098374082736919962418941457746832662046978094028734505740686142630884524872680131376707902281254336143037437656181208334322132884783918538540650541513844405811765336663528486990600180871507193099871619809549066354522056362774624826967136106192836073857913662639936846602051275096778638749083265015710124769784064443589642143922636440589178895853155140694962566631639551621659811159572280013458893784163658906349896995356551826730010009101315255733752643442501825577512194115822587063127898108417684828971966591319961495650840990798082876540075117953062057857548695318969320718256310295781579013927655296759078144076316364304108920833711529961045839182652028099809338899015649408889743004855522993735080008049748953683175848442669744079062203462858593201919613575138736021562057948527647820985510120352736398237819548022199470861715716913198555468852011008004607842466853224846341760597212941326033860006797291683342943953778660946578938207161534870642285191181086442050506168696699601377403762642061407343434434732158323540234302345902327425361959245173493836418518936917297567340141465783048557720725740662024246622767589583260514996506841850980333439256234100357698656361542190944269021964451915245434126367515988061211410874359214237662297771144089986608493244710349527865953575325771417218965710375403991056085386534013876239063681747522589437150237703635028537112478214728688304828026361393677996378368376078380913082751406988355720883378413387187461025473634940572712800140821150982677478605530709941285911901943310053906895372135567637035317315939327887825566872041084905193830498545267625676566607812592422758547868738070364431274304111083099000955039113850337292526708998387024695102432130368820401975506157639974950376342020937536621850578206249806267026441711648950843797532484661311892705611012221311266654086645097248661652577301094827681523813396272465977271718726152912447553720529782109288245055331217124296513515968615299076551945904024558282395777128916672763904631754391222469542349573736907292614751496070054217211168044101049109336224586935254949073955112613093500590497111236422856612192305600536431840821110297713338192721845000150269119738164109722165161766530981473611770847570258704043731150693428944753383456682760295805437850411948847717394384050939895040974991739356470669948329062886014428536314346394356803013577334444350220383531944018290413740971673627089031389639150013337545485031977989137986036826540848289845062049810348842939579284018815875198096978451214174118435879464798311590265153618355567497200136224491869852922786514535563942556452163374731435937411379706863979979616847404326916056319902753033269106598503836162216936307705883873304125318301766730497678683395693266687256677136464556092651181870154926403516406038386017333070119135549640059013304051920945300458973796330741112493786743349722133005471414480653606179463523171526385050264470970741993192530123921003753456545481277644042124329446741061666082089612979786209634939254415172575979552688528863371590708633343732588965179121600997633533994489016958804521848121267753543028740740854371145348758883607060202809529795674072992540235133549838229215060697923452652409713563105394589514129527980242771655697302299982901181176881712832503040608806849679487808062862570614915686744090045974958267376320528376648617208948523875065475713107045340328026745256196798747052467766183581615289829203526101251734606168834340385738674349202761037366949056302712837747010307054572150298817298118066498824476298646299430636377546744038617893714275430661896415432348803144863849211669800012209100851313365981300365954001722117203275829609699900369437959974368878939693781081069439334312635901952046636528560516848420418380471812631597327833142984360175480685997682179948391028460081133997668935228145203817489441479204810881357502676745173818019799820508285122707897842385363799864967699701441010648010207212335473338191692686530565544215977503624476817382854481544539811940108316736958004893677234358264130755618037695057507704582396325323241649407289258608002092465911077482827773527473010250420864947828252671178731594980541485193423151571574682156575744905513887058793539553244343570241013133103047178083261057072025560469082327116343086373181761942818673016114969166892329184700591507985937215249658605506181931862631221225338783161375298082170155069611225409852413538621748951824409631753519771556381875774206656104562166340244068943209585497893901919868293225058113188952576612684421377225310166334589971924953675827960708987266425308061083124765270237019716916452630706576678466854422203097579103177620257588601240283277354131242701156288510137624891765135118826004461168643660414327737645831401302114840596307596404269804445572090110886039766563979239879617514354190788309410713989771765248979182871497478551283106077054032546341780472392870669693183377144069209978379067864525568799320194899599924130875590827409744279126636172757609735638848695263208108608877114506449708744316323042988597197199647347520970378941950025427214471319255247776353948832120611316018651960982703574910621989929820391686157389030142000393221249341074431119679480531604295049575064433494041002895946819015223654686315637603133111802847207307395999233835518391060648866114871050556960782688371616444864645653000810493215913320802003257521146278426176824135494917207014323139122141142261674129938296206094927819332201786030826469994549983943922845184573129183322218004175444703069862749808468274218316355851402760300249963615689487685625203746711762165492155225208527618231441630871248479948649915725893273022808309230542735899110309882222644666294515340360882351379786451549250866995810927353268493837313021356378714914014731020233630703946194965275010219467289511153765422172599236140718788001232330621294636950234163962841881790286143425597708907450497644176634978898752781646025005529813189224008136184936104440374156943880980371779318776941096898915893908555509513786682119581476809923924433902830908945302831703518579031031362414614550657359814170969128761916438021163433229884759900174373775684582039199426067344032137848496543563223794370848385942519193605379032205413616599937384885728856105011782314452931947759462552361486611431448869749736964485788564792300551889172234647676306932102379724346232891379486160602009082846033770180835539338219285650556588647566427081930428695784202435760622954994348515449759078728050568217902997995807051869499946893859864256505302939166234089760118736876812419994275178315587286260046155146139829241993812295698397272669771675379286599361571995780998382756199119127038932220952995075046151447741311910836110678025673627053722542655501889283165986138197779600856227627011989459505030363192468992970736158008416284541435600161326316164003599244993067358748199800430869243208667706343767993970744032583501597350645679497950354782916351827267488215100599582385255558169110005330671531192502946305370211918092255100643214623222839474740598009704202191761017771849031126097313927785935905302164013314382822806474865313642347152744730585642759783396555238816753616465025489915439867282409806390381407030267035813895807685639577780300514853029789732854213345342683966715857888425700094234608775098482014148108154637714005608722561058036293455510922754773930507266577819638944976760513709885338529825240522882578556507520353182173633372936028538276451162491659226482705892618735484138257422390165479906000185686037500196258543838298662432448044426447375510657482030588711794969401868106321905782579210498292505820653554171270854131712882622874775820025366550141230348167317167950142667137962836224372587536242526463517620475810332025646703218135229550752373797057000912602551011145002483379660927242055902106218207355470538326313606453312099252453479942363862696760287857785111160131105473706051756659570191743534538994172504641423289134634305039319226584515075119458304454038809865338128753478414765162988160968666955508410058580707014827941375078749695455472519240612876592034010410861989407213582788410582339439974303620278255985421598934737071198919793838085002662730253836479591580129662254701947785213267460351895580541103499275218552516784379825405014426464914736988994897003662861274224631291283729229332292623277802669091765387189221649522163546620693092656089282479164107045110729539277628765043801774555547141389569508756657582305434907939113884464537900226207446660929914400786769122728691068699531917379165666108562733841184379498151331984383886392863824511084562539610931343484870527982567185429867109728272102491480782180411379879358781789219932455444388126551779976447642627056563080270193334836430738685084609255706958258814065763822581591153289671848465497556314741259756870739001826899266503801640562978544507221225586805177426431919616743748758601646295404502374926879499734673328691571735416999721574542466387965918457829423813680875092537191204972150662456346868763793064364312961500974550832377474018995896152821294633321610096592982769393811496291890888794842184774106161872149263763545590019992528527627291385315502543537428437533094997757462266548021670521935282545790815896764520522733596462120618711888220167815213870958125803286661982600025021275250068562908998323489461214123883646589374724842637644609041831122815723198711239220032891191107297464097904684281347478244040089957059668252715954304477274449193160223642269853637094713830469031197687324206510036452707866830145376493300293942184753738115990096075080930744631229909184036188823316135625106005605409915074130915167556659233281477912951148945369792156001619283168848677219400555798395117545887950699499698943725678959956634616262886550557149197445641385086651883888045535159266508512081023256844685569527810637891384129405179103088191260118182086044183706106826124363964766600911597179848208875065441782885523724876145058709818167242099571278406035016158210138212849932932750589652026468615946343730992652761915485046685283262533146942279215721854726350910955759255072189517435212081963358161782641422999331126368821133663068534332412147469070572045644825680520658974580194013991872799025862710442982442786056632914895077079562876299231721161883043390352121882144557412630661901437545701872801609290576947492550875920944287264837105298042942916562634391105649585763045563139090083417653996787631996950795048258181833489765339806233407796148282159750942251414216451304834100354397016267522817495565135669615879643790831080088418175273421941127131024255295554066530073674051856773118973212662042189239815290723888641672879831034080907058911327709739964923842136266185440428835062915416895236644429083780863680150988327041923476855795743348852007843535439673907510832372211350270008279235466782159241286051229398315567871261008640571158581291247160734299818900461131192848716425308293665578049843236224575623897504680963932092052950385318599944724948065494101024377879381331264217495187593071542820303890801052688025668344288973381242741538769930641140552650365875438704878144894859317556639847429674509111132840389229725460513230298222557712471198756101792055373388930656908901331709142269924450631901451225216756344714656304349522046041266003201649369610041818461368127958968447662905808057222044925609260143408546515104880041241772123213044592377124117619959715481811272369850218490557728382412764245475308428907313348185267608847499823779854646501719364297608820211469058279596796683465142418750235847341579161651855281121365601816491911869941170539234677593624392930633867228911275935745468670011180377010295143652978707269809860278251810368319294132809417903655994840205311856707556184485941907406054222082568999287838608364159729826344605730167493170684713864520840190762175598331821395535680782836334890521529375135556281152094952559657294114704147186600267176154719069657997156727188523047339505858741881605229485195332425693084974722764346785367887647740807159353991604432422678693378929153050866307169291614740329741821432782993215625632916639808132882687084449448563879788436080078249281690554163012963841409844275281695163238210594074244688018416172783117764020450395760321334751338577091331362780592498352580992347114066273897974009612060732355799484765614663066308841031065352761570719336545474269728470653828607779955007425656330148039996381196467513707532199240933820415033681101228143363331960658770378601839331829683278682652885461260811676249220704898578539178730715588124839355843223959596147521124433150449379080438351709546216548384803785759118773699238138468931717769341039824387130121166236181191357009487625194871139413409700870368120571159462157412289161932556350614902619180991405741819689796522083650204606547137406292183741691512655077970682908249553715342922025991419510251413720163704771042979552822806652163140738658566458329794684025371018138605371990155776650940776782965135539091756621595721491845420873303411324627868804262503627479278271296386840993574072418096788625456721860814058267693849950639538819792270116777051804723705597800945737766502913716878075865314831102358596512897008582981744178344221467514861569095233055087492102456184965748838335306016780808771160551254571857196508736477407991181566842832662634802144385322084204295066158301120761333556275957721266886912605589923882936160039683910486332232986870587983956135982569045381874629047695961501464989867047161578043836818036359212709724224850207547847483535709901855444190863483565670910305589687445617374215941094946936107094287718940157078624571952129658714242537142472587257175494892863598884117471978943240213209010700132539889932531986303510970890157325402830909306219683100098706690907485014410562532025893351622456405136110298992543415856938135684488414455102356952097779204492366295616548748189880202694315771155571150703521490967380680445178052238224033578373096099918704161367987438473553785297598848662278452823728661241596038629305394866209577046804423167657466738664775368478096684938610668250373629648568705913131603346036725221568319200566726718171446151871596116401379415532171036209424857980570820222595640648973366875340995906740137631181800422143754748575284783201612605061348666342552106544113497349594289526184815130172011728286744004209968211313531908614696964822660139096619771093516025090994666503693292447419236447182837203809462208553732878958502388482246787555571779720664919791898709143973255988847794248099751831916115339820601847145489677801295677240707433473020926956232595252684449596642079257015430265728063775484677889332888636899285808653927667279466071773919048957031954913398098263104379817895740764600862677314735171924423296501375790304473995906564419005121862592637829782615005237977108343384744540619432364356042435329176915201159862016529256864608438342269514387944779326933174180025337963077386397650679261300062034895661368781193577265418761680104530622883327208468636935052299286844520551173173850603176999538438399345227823659816025619840144919195651908770377404809378560346142845609697221979279097533150219038521952638094626343467079495407848611965683453574023749099928842908864765784702872424960562337226654750083284300684396707777088818960972872124421505715395852820540927353832912052685591131273863163542296020383379161244873037160204109563866909676216013296732430989878017162535645433569108452588080948344229559223116413306016440622860086350096774135035288106356930524238859446303408554942697556094776047998169975715902566253731169601180044137292645568302582533717774205496245469910589434060970232281576062131906514736160873231505190540514370407938846569507964250768205146663310934894403131946877774309465354242247375207352591598327522632086369900595156123624704149352055119990120104085814304750944323024149680219697741511154282296703667559792324938467318828957683981234084509766249287943278722425165223497292796362801146535782292074566179088400136643274737334806910946163600191798378891803617195951869209985042098797284941252568320672946425454681543430111302396823088445520516392615311968965782356905067732801322325399208312707337753208776057937559376019375235212612896589236187882337275439570360705621825319618221066261305735565335239627870516994529092408731213090806748745301706005243755464950855887530655755761767415410593610039143771494946262324282432326852444113096690437521891185749133877791546273578699826291905924694846484262841427205905841716294748838919486150172349753746402151075045300765274841114376397270993037754897474525655849514768102385690397595363223013195556091752755538101796585934787062934979600168192608540467018167510105742539455598955980565979057255766678207815161744792790121157203549849560898030619542441471688535815040849869919837648132095403739165723386515393465292225848149458247366216567003283426222703148637967881554455126424221526636813517898897608757508619827423276593373325846986484292207632115527362150128014696837463411253766254123040308666940984047854720279508576671870535499023568165432287013757782924694145886391185833682402108429824459240790787652013150302182104871444540338486286024111234490653232363678628777881049687459285165715888055847937342583674095583849718660115278260263206144051753233288083661510000646891218991915220861324402610366431691239359860222481215248089729596787430196610492088759368743317231216534448279927722034081669311070835098191871996678554727852978025519068851674541348079894585219734514444921185085726740885386260440667234936399435255903669290871610861225761332834298752219789788154347173986697221559710124875719695904697373875269908864460555486362916338396570197943247318743834828433329490682549444882893387315732543452717390442082168102430538968085478380201331849277103434985560115898999928590349657976488776574947645573283970429077429556409406100724398668195839955938855964721303205636447184714185784180859425555940739517997903364522820333229283950311469882470008025917046776533495475015715059743097624244588748091961437382438658698024870451563160305768830687144408021350060045201612581032150479940740289688497752688355043933219542473776658928329903113712300215446945253316840331791529228598167490047187652746259011318607308414032447961124726050114887096088809824541588565102344514983994819285625142935348467969437677222537540599595602893818468514480822114012117234944573048241352239457528674464032984588773094265748251643621912122534414551781353095231954951391418848342141551463669433083482128171430827461892000518065643188041268071186245688998452949088381536864396458318498847643799228586771068989961488998924973795757582501936150119273154833037171869155173275289250535326436822072882558465059724561435355458943137286868542128248265765914868379380716145324341717985082634683919408392259746622435823256181798152733837450093607290279245211419548956312130484784205614482525798323433001543782815271981817588501238624202617717397705776659809798876239193569088092811796110916925971884668289965519641285004826578668488292778057589342388221948001172799459796611685692716534210144478442076926608132937188388109186878937480998170036884976630323711564389123170062676771641763266682744495443834433608403685912381808606894908871990143805747383521483400985819590979933784094540481349151525740227918281579081132697642902417929279745385115479113146787701673342692408701258387662168199116207685166960682338322819721083847006424146861790380005624198644258735702311415551926999412211488055957376151520678318459695307709817064114922846352318462150559027798343162078581672156591379450008113437192772341789579717437618467142841667003642894351482353541142785958568669639813377857782767782878056509854644034276425817532558672004883326761618436067388500005935527565086380858742654113850813148528581669635136533246963879264160495987256099769017711857500696487901718863404571503239175197159100442743978742157592831350582221518720694459971982742548265790058308678836738719244211174212537701816749340464716438946718832680434998770451573123818877293178492877051465336554505184861079677364520030636691325356661100491699503880611796535019037104425962127120347916886956865645396746410822544726471856166379076127165654942243217483794732760041752385908125448243078595110204809213822517315709110691773779674664091388557210531377254216833254071175246867533252212659559818868310622540861222847416941470036086560977382178103403510713942641382067198977573234480766267867269066738894590724899372398790346218724553111747976706936425332805376148621036856561616499009453533056015996632941228891671373715034217299330028405790969648064808490285139423085943604552165755952043555916290360607071841088701572533515769147841072756015944086959417681057835560501388791147084592686657352599622992920551243545688722085976757989388015378292441930823821297537451385554174061037520850347708636120701370485090253311867711509466152797566404526146120329849354466523695136993642753622437739331531578189942907222578439275088705145910690023537082119152618667878704125627628562694030936581726658013294375774349871098724707012227752443236179343281919295803239754864316425753168005977336283704775727930141097966791115327997862196315823527877530958594131277667938680643011872290751236905647385795202112547592537162986725805643219373374861986585613088556440663854818716811377373108180942184547926474411757475741639388635861353212560834618346215806435101076915804375504998008072768180998721979720662129545099413740976072193293419653536722707286730366453374404519447684198879784374600145761577150947808140594794293096218093488947291536685512369601183205148619165687797657031730302919509681220136759852959182876076040742916594415494650551822929186677849940577450958134113019890387766369831144335138505254535699253694881645261936407214953934003666314350872456090793395927835460883980595266608319583143940372727232165514316501055246692300236528188510312024903244997468439128834191119230386521487393243115400231656161493382457639195563328014386520660377277912016763295348879220969179354605950881915431896259160212611453950503776685697375381831554079073719732248992251010871945878505805710323075128464714158757684304376655610617910431790616729998146755766570610681262732259989194810647878704849120328667595552266086501373420146454632781557945106413146979172127897057172640777875811332687271277882060255940089155551005863112763995989163701458740141394502706050909884604574834050846640915751956756873106419479848070176772099644224005748185661797564639555179326312986045249886844198278931045793473196579403774815387382601513443184140334288091128598818581628876162136295080330809825625118561591726157399860329782825311339160568344511805197812411816355610961685782494407922740793211216658648946142466204227817353951176734604373524122922778579638305032245569947790744206260413952208704848295414216845045005712753534840817286681221824658071601374106143728242871856866118575612451864626617214748670473450912612459384713862532849418727955392748683884874567449450114907953064577548341455715755631286508298402862673018530586924255062807809472205146351752111703122315522870015066835250726396851633600257536643228735247204280233491171398357446172114074728097080958604577564665494596319357261432196872209843218098374594841224144936330617548469948932609653034421957582485241419944798399429911730261616510402017408728076276025300263352550831180088990136480306949126795506890424713318356670132579517660238196872444798477668660139124407097454179950111919533006420701700920009650854382972430787774999015995965309475259020866947668640925016217100797614161990398376613860094645177470529549065575052448690555774725232588825269639476363036528461532592125275950459091578545126022955781865850091077303054259306406819529214593287360352342756346245491691019382756855989572122484766515176712303191193318757697776677781909716830290934931185249003718003167729494205417823271570759865359003356912257128715103904999610794689769541616071520745497435483323170769943384482848676144495184467081836024277658691316832555447482463658659408036835852702479497351959821876790574008226850275289136562297697227053989980862284206541749493276802057454516552580592335772596011433298840879482184409165077535375599121282334424060976724542043010831190268033318219913886928476657020364319479895202964024853106001669339282696584773826994765084891402217670218569513562197001365035452840323912945779071687246054878584575945284762732352352603058944421529807796977504168057841497625319018705311030833611843812464316289658822924514635991766315837524877111635845483686469706679832758066983256335337811559842655226167979708857074025701728726295735233360931689268493133142533206221106717244757966019762843686522546842374887815914939603418185634054957744878529929078476992504680484494758225372796839797259022327988970072701971036937623326626528551674330790102715606605978356125706823865443614804391234907029776332843384244051512307707322296510845547117913882667279919639525565518951064280269214302349273746116451805035010434097956608794097665309395189989300863376956537226848351529447821762824695007603986802220950144522889651212214418068585478502930698101014294049816199290680194522546458154653217582047418641043414578272914227037742648678758123672591983866249666466227627346547720992877719253467875383702177821400344596599596091741417117237324364432076672901861971923760510014969447724345259692589309481054812495231642038615609586749907668828899536263229634632315415791590567680623939412890194020325097079288205403694961625882518290163322552834903178424062323324636988621231933253738387925901652038714317760202221254953754639714522352199385104307038224562552986806818221578443070923310674979943351150856776476742793049309675644479906713534632282336362019627322929071871044750629013627541383102998130173974131138906681072005031115228162591604601036804635061236759859650626158575478092510315086114436050378512763353469341515742287415085536157350672523661816671139595406787370585054801834267638638274325199202024701825426067149089579922373327965214084773867405003419319836618436539410399589045823252366462192269874318641573398585253585595293022330412425237136957492335971835322159789464931324699662795852770468596327626330873752237270829410875202467240584162019196947086242891843928368850054211511736723330140638530793098761440007823269042020473521317183843968841573428176129466593403656046779951353387927952790936757999489168319357290703269137774575864876895946228123266172259263557470637813016038538575531244338131715058259780160785657677214166706745737435815838037776118915315227342163788434850843909951955877173429680629977253269916862766076294446385666524549806049939727095101505102003946565317883131069888777111996023514512711726364662177210677008424437790209318009061302831941021758767106492178184803823732968441717680999348019852527114976731835831031951814770908991195982611880927165187637859620312810844131819633870063313247029458072164521604767303870368744071940746558531080311328646670032117545588018580622842310261371759544714930229243414088168711046640609000846603237533747686654534204874152660316526781307853195629734998334830223555830277761978501363376347851694584251663503778215570242751005344027153639300871150229011779600373718075330500986387160370998568713623077996018511511816589319017413120942066638196370410507352602246934564923485798599099558943007089187357249636373094764259671917120453925222511044636950665010438778701774717910673589220772152587064676169432105880036484628294826291149195951843354181975236711306951022711962805248913858817142786281122652835565909958068193819629131376734209970949674306027677259794447298956828023460128416190348276809866700867471379924703278844794619430401396525214097511145234203629533388823764308576673984159067645964802384817416963974209395557292984914861919088940764461861618192191218856234993749541482806124226873827318809310980192327058945830283901677664370330177262967392338806453100533829462855605806335653254941796665823837869831012817608756053880352314422448719434815764177422596937982641311718803352820594211650250565411636510315908719348964995790559526894469879752461497775767303824841234039451718079982609918485319624293699189356048653192715192726521431306946748286442595680665462787243364869880461316495772688814328816745148073450296375321048568305137818460815633476332067735556761793150871424299570290856803724531873040628392670898921167854464024768702814568139157479956407437203367693748637515933429182318764883941384546827255517633511230837325346877832916557605806526599513118577726821088724082386197816198450707147147287100622342499152702068683702258703356325414365817493691899161254696592008081517235126895997574384349066974779972009758497957130678526133312759317157662783073173340076520584306653046529079095431606881638198586899933243787975636792527133908757857807384287675339840878626126534027862740389553204430828940719794079695390625246792032114256151566101725782561417145318347404496606010799529714957751968757275861249304106454036161503808662065172905548865815334610364696476235072357573209673788146897901059965583734027065023731040058391869063860522427752805825443023619855208579076200073011016981929612930181018453528218124417762388746355305114023946347583712122203691687054131699610303111491289116149140066476301701392633947323999000727307425257033151295276989980121660872014724160263267780505633112902340792611271173766145717547391474836199002622387587235744332661814852629830041712955283740050918800589643138115665327086614433639830478248930170407751119198573877705368570848983027590874015695221654911934247598350323505918156798935065177054874457766132372778784430472674098981480551933861005443711155639777500888737663433862165817930470842074904459595550531994093431350616740216580317295916704533675600115424366425854986621416014314638855169681408253264101754415056461845986705367962443435605330445785894344919486965575839937371246401264299059281261550023011620917912920346514588091359358172135137397758476073692927533134512784843549297297269272330157587664777340034017390439297235490736709822232687644466114468314246998816142506425528938158451015696142024551236060550849215055093622506955233720297987916382573034052383813819653962292795215923338320567138850724995053625834083369508840462435293073853175611912501805586808194384279459847832412485809279758904888991370793294743086891758797929466499752840478107681593899466789340609219777890264574108737613954105560612246310670611378768861567341960190821826517735405616381738743531437679941010184105093226203642848086008984259303814261473369256983328109340863036810713941820534396333744003334392356736870200417857881001846651370804083965730159738168503946355690132953884795388698193026801095575443184694397912772359453984566152417072198470311275244965476206768677187022481677094888482440699607240481096847956145698944912746003429860920103018033596657378473072916602131365896685167586070279096371081696281034879003022636692217970788909212146135987670364547743613060833681220107290430647579965179682681141736139064002380796521502295993862960571132314969477485622461108133219799555774495739281628131334513108779128741014809911186512419045100752576465889819261293525569164152425172969139124780143566597305312449032952700213261931108092002823258945565265404452828996713736287381364034772171529350567348723276630077415408000611803021375289327120690061366536709833448043996628130932778319516186099893318657834788848328086727339636280044432202667977339429167059535749569224666517456528069222951949349454313466352812311380585152534309058846149324621710644786863846057648383112698222700404385273085510121755936904245997631287063620313478392762321104708884352909876888996405192748752414027092683178897296588212425344902706325916970443836416302890705677010006812961173088355347030392803391289864807127314260639217293644017372553124165045150761822474582951946871368018724562245182400651734611878296667002708566377798697075561365659117687375691323376911588305406018768597282252175143204097340456197664945738445254392121558970008896630958180660861951088029792194802696729299570018869488695772873884979956305818487865452786662326957041613968320450595108633552092120696241987873648146771449995064223487916142072616638156122019734070767724853312729320002367443268592631711257755980021506089310822446181157853928605862246134125524049456292605955939446999573811098752092058855715768476619724552270231750418106222385100582535423436877352754827421110312580093736960801330566753099903367121155160424463720951390615488413103617012782328555123889546461104593073555343663927171639700449245778810736213931470182255729807435447124335957834737222439326766244536120000687162705941416491147144749712180822313858265400518595102604657225264122862913396520546683318554610104444350719942720100292546366230002819522724553817941676626452229594952204973793168812653066055175276472286795455669624629461546893258103331332475975124478596547931144001212171192404908889912786802716240985174180153764353090254371252446913570815826643060541895376596962373210116856159873805509006349469339487381236721747877401404374447349520879184046435112310469293843210481482493882900450055135768724893767161925311247588199838272851877148153939866030020224881327453646500167969685104090756668257420637680361801902011912192902220973436557617672769094669614618391310485374403273453482311055814158134383639173811055608021732897905092798043263647546697626902318515903081545510335330697938951162212786973928402107449474113003497224710920169899670799413099178267853227147140437933431848452664891872082845929611199048419367045542885732079137802526893179023885268589729664157851414238738759554994849732377920311564857501477649640261837612703627256887802823833171606190542615673509625151264918255889870239340633581348197270395517386225854000084413670244575297733525072536934553849352576004017644300031575541833268006240296665734055068347878551901080569975188386865580970056604532447876562941410374506832345379435469265565662956723067351623357515988244729776064858288616243272691460415250075135316378532413795799482778508908192483449001728601291692790735767287905920674342083923322283083148083059565020412135831981603869090303406561819374684491671334140704943797556327312310125982007873579608259671915570040424953698050565977933237101187573173897328551941716621682477444383036804188878885300809501181620609673657874757352796294625853794357422042729665777220705761513779931526988700374073244723962412638906800948287846640546066581921127351253337516223799844218285019418037267345302687894543634305214429494171398199731728686854567521669738649251838279704935089691393746793885854101221930721773495910398758941500220283133426702981249792460566512912843353172465485330780493467822370005363828745031461327963891660222287666894637873872845686666062868646259865708849905901679456474124249521741888305640207732523832137590119950777164559714649169848956725341134022538793805803507693202601651699336792518381786388412670297206411419820927677874996422237002588363855061463082935155265953658258182427583227131975214984952594616236284334420050055870573946661368219758319441910527407088388953472820413631796957579171064596236044489514130246553837403782742759797816246513470016357463004838378939998966557653031344904665013157458688124914115419385447964380208861014546346621501674143295965012243371256341925042422468122062567974906964782818543651348399523051401441229668125359105525911557403908084969087688565510096291633971238791807035485379212733506673191173991728145412323039598062975628739709078772089625657511497994846459314520135020742175993189411160382298038164372527644330218927511449454940902121017447517718110519961475143121560878757962773511423213963392581879352797564802995527646396130911052698622273657589062599294008767162112821691400021046269940309872447050307275086069315067848808195677471143811915723339219426070045717990685658677971449897879091194316186363688932196021311439279026810686507021454757155032621823250981210389947466534638838970752385611302115437162430339595119546798551449790667943352519643741673080975853099228670242186699166263418138238349220957423456521159217439178848616286204593582255072185984246673110323336087988121667712370752862281128551732679406784759218165393874152927565908026787278440644998709147742037379577947441920403582212750793115066500977305087380012428603505956766198454422682762988813014584508795966664805841309945887400304626400235021476278921957212267989663650705426574212503178919609860877926340023955777456952052799740930009775210351312132086273082169635407664826572994181733595585661469315367848165909885334379009432949732754953260830054731367232602781821564310268551303414018374169396142950078087234371157847757792800876157454267065671247503038203042071058821637756166272966224956520899207721665994450000715534899539884836603817982372306580260057682985059067413978909832840108646005980905645363112487263715477622807573154559685041005514316524968533764539689214809552850294113958673970388864057853306954780767050067600951288518469842156224388926404164009595544799519075699484146512444498517942180749855133927852112522196273580443211245058890941818147647667505278620069030040567263950971578148657818468694834922871828946251959980237383975121078289772126040684955524865109023245229107078627818171714650669716840642620145527217909577036009993521662139579554317396672560474006777072853003930076993761632372990496395579892740557112281706775975978117513353266432748121348341830681869943159858045312290576967741040175314927312710925570020684358848262016730586889005621639715647960762109444551816682034845768782002371324395929256198713820273531603910786949299855630256252343246697942038655364153217460660628590427253251115358205927503074277559880879098346671271886433685977159953173122248045274468988499847372182401515724134841785165120951158690458072691447948139905179206038213426834645646938782987358574279533863521962440932179938322854877668057599211311571596814677331283474526258962031327331042154436966003461427083723004173067920170451725990107154851630510387799594208129371664277097865743350364179395742186110443329159577121349945496390224636129375377948114654453623909039507966007715472122020125967075559529839863734269918720672563196490009293540320188365232639087134959312363418751056564499828014043129525295605872527945019515978799742987978135365488592389953420924036321036579228462167795096003027845083585457509935875846252155425096970280412249549813393682051856113390167800779209928856447697995847728399871938978292117999185179124815666287169606009611864310765952028501715168778841802692587570721385800143241502504121454915482576914522757121514636343036583149912511480748498352130674071982343921139172036335453524691551428460659478621669556987315022965938821127684791720821626693696087124999543663957135876129942428033005289498984436052790355542313691122769270298895226426414841038524755952688983167623659783383601816252830786195739229048280505806894185302331508380878701904550614791913634720621199917094587710125364864846784992555872666587341709056039877444968355717884097987490622031594785181248477064843829314573108774837964796983563638311970240228968090757765955587513241296472252243033034549283554273944280199604384595917856108397516958524720503205608100216403087527728005181089648752974628630541817702632696542907502516555324473045987861146326628900734952459939801799566230067010536051212725695786190143975803280403096228935046628717482513840319991817652803774622391843415351371932580919400478201213134343371489926531228077035057585004909564289083752191793549273547964819331214128867367923528672152328765766568719899726189586891218859610429520967881223645756674391975726414912429008207085574288600623485360809383626211623331738017135596450508100414244234720652164927228756159094987592273642227762833535717718682795414332519625980456458227470818543157826731262202972491938755102858771921849430067500281240951123419086729922948613498637682141606552852053463347895591355759125492144970085639114485526987568098716530701973963542930520006102588156801652191290939739094730780251439701564937163501955556310636159985674834325818902232160640829235088888431038904417484069509195256171234371301143515810275767816365760972589393478009123398227143487901749681755752996937644074190803762719979191316443596119285325691610137265301548048924534908178624314511661583742566482712550109595520376753978366582311378848989992428779574595748169411615778270295446763181849075384878519686279310461019977943027280767857426296777413372014004700752957285410877057711130776230711492217201144112680653211484456541611105129910507001593032188104281869738156071615523101751533999741688263312929105642977777777762324516145957050437070053495018411278941614899713579885525713280035319899475453281434463239452168234376179721032380707205750209283663913814132981961717738466240211318461058919359473306271559553778858895930438525387740451038398235768888614913820340844403173535806292636220415919349238238134569483083531440876015874137521224048498882148326250811917641757594829744281769702350163146561295150313537549944227001313519740360353973572768356664481592419626071498982768924003786889279633469462899189664469991705460336660337170448782041222160723566815415154820622388901638731540444780099353230385069245628992894882675719911688440223488425448902006011180568882886983385101688438700718374050069329122555444927608032644473216483037923830103011335145662401987639973884933311771903364501630964623568492414875664145887439748736127446323789077886202895329858208824874757269760545924356046562272175049458187885297221479269058658756873362710764712491017774632615895432094637932375128405095797934212519469244075203148437769616294163435686961005277435167147378642689666478945767001037030684030949715177735693794956229748765623552702614234631105975348670505830499462287893241227840309632152816428497531638544126384749079638559085651696915990264419948112001663916810016251712177577754222454105721645095979041057952461975787294266105334785701072523828310161783601740361597004414626709279761908988882122505374177943955403174525037213250264649639586841748211674320530848967078034694513123200268420192103329601093561530838099353054185482963309898054197447235751789035730167045906147205837216228208680279408271401547048904008255866284102674134320040123376782814169084996569115444558873893977119289017859590414028208135456153772248367000198500608027730558755199658285474796568706551127133077539843746000715720455703376638987305721236569087383148285591327710518324663413179104332345024339741877523001253833312938549922059706868265775259725088302711346703821305681321720187779362613243787217091405477979437443932405975457400293296610565828801465408911458361991537560173941459765678398170957386906583435176844078477651617243184118509981349726557424402025556159845561255692919068448355394564315993942016124174247234981897809484161992359177436269071336913287484801487085511364048470174484321428169093001237109667619774042265142243184939753748564642202041160507636287364806776076762457204158241622709297816686781020962632901409387166994857105686805315278164573573094998746537657938693426381106713128826604285916851764416014625464892734656502143609050861353984791256375646447788996551064225410469477652470458291811887198191747238641227776367240926763145374286855400178449462000764903269060282171708644233407137327659280890177656339557659185651815336436058792536352463443594296206462733024316873022596046776667324258479964462173525208148131464368362979909290389943117388133444257484414074217664790187962543580345936315443587611894015349022932812556183832820565983744775375084045930605775323787321618054802308524706418085137628587372814326041792336511225544034496605749040884607418759994584208046339710090281983529154022680133333969429373894334523656576889334587154897779868032476255671316634615697736886707390656257080797307780386788013017565847694697598609388113891262738859017083340389733762357316244746353405943088652450968752276852861436295927619228130440127535980743603495035636897503768659906629815178044840602818737974657054029885688754400655844596708743350575566436144243111233911093933133578842776552944267141874844538853621703586693857158462859267765691417474789186270555804388793338860315591283659299534432988127125126629366283190943626664344139618835777374681638382799547023027178173837348079957271797773345106915328219563382537006671360157292799933519750022466634871227203039526040964446821418180353880060049775179506574623928938861397504992580446884359244831203840563597544581777207703118417160400134403201393418561863279551835805491348234308405998541332375731694150088456513288227700410774544517901999261894186033614689665069864731757789132443115096676160277526276775008367971554760386311764705482897631243571410098100742662415694000960358249456593369112970257362547097237679436955313259896833263534323563036367030344759336513598361565382242267269895317846661202807003904760234064575391970169988600743799592854386328284954283450564796481796928171246792056888788338734056131186080366688015061880940775770051683008182523631324857185395700613632651447126984698522518643828888389980178533251525275311471397724779574580377721758371148249753325911049543583413451105125347500036550961139819856064510397986128504561982874723276164036503195469873333191385261022628598790669661336143065152839430444670563633656192374662200467825848222535757722148696721306481850989791266337406143498482855754365897773557786017906904565337009965841753066936860453298191671984682859937281834828145419048516140670456220209680422741288911713886920955697098287705645405899618708919152759870164685110317483880865524871433132893663435511469061214806219812741683867705029086985191376798110250983295337126199999879477874687925407802031548435869364300189100007843414835395934384585677331269700485637267704843149128396255774579389042528557674097546404467824401704867008616944119479131107020644215664480150749826774197375454753666417427037055990064803476136203490893693163798885481360356593592784585005689603124166222546722794706740617642857618804768454832789139907754507963521368660440990037314286593591094270484784547447161191627899635360247503197885925077754425784269192484637089926553421811801295184353113346630968240149528550021152156136437583532268481641700286888125966814514483296328578528674695692409226468669166322540453832064189025736326312821903764835691335693829220702318093386992982071137802328299288922963000050301304011736346173085021422053777678974418814251832927242220280078175639989266297221068565971002737166677011046489245102081053646557120862578972313224682446407582901078124805639121104547176518994110398045489264983600566737464025596987485422616590320464196515026668338943912576435860784884822117776598391958257722419241756471749578832891545393888392295544763004932714808655778895008719093428263820145423549513449730151264286131716368611208133177896203505223411225267456542430734546648169130820726075534284933228673213862125686602276237469443341681548235646519648278637121416587174974362881705391034592512850055046594724350606205927061440357597333026701111454795554378912790314994179961087607768137428100723819319807292805150148702256706020833608495034918760338106912542926589821659686105648280884123717067512722651972180497305042378510227819512442685322826710875684801509938086237378512969008235453634275404263509520989136329380224604930441496704554873487192603791632621565967540674349647491489314229219986342134195594350868466398953184455585079703377245123070519762775663433021189016905578857081808671698831624766171077562931961523107738753173460778504840425149817793071740956549773150407212654740565534997810896316713048596494728718497077471698267844530674799376874176776577022595114364945213219950775513565411458449526283697046449655944535421521904670662449965790430248492051858937368558104490736356723056323326544624249025001389945122776357436079593637532927563612786091404144384874043195369919816813548569297508410175740206691847384808105521274268896833166050650829656962546695231408700295891294574303522770240015682492440513819216696108495340130975072452375641647165345815504814101497196971349501155807329349058705414466374633170529552137646942959747166009818905039059106216896975658224350264461601411649153691650883745505882991359476606265472248222995800293810739827286432510826785655791024052903996876569445017070927390323099178713701341053035242000358612989056401649248085814063279444405224065831787817470112113705420151047445351770817764624831268272967483420989395769129432069893844166607060984063961916210057466747425099168330037157375445920813761515661091916027377307889644354312088357701544169462288894173778022051551019967865978332725476527825848989949954123416328878457290406395631995967596612167793945056782790581417476660709693470952249020372685320554765018313970643765930882611429576995587296493005141342901508764626244045861042176486849844019552299182964619652283060417122015493808366109045595047844866844526894066771089075536481046284493971245158868408093041504329432439834812131469820135868913576115249370503492076603488707808912529054728940601036361212542268547875247326589636517004422209593804044374743881111086789975504321136057714058461677165035188633665720423694757035481669947214951008186787854023469009403818772284461281879010413148466853314195046798119530321380629013708731691607639592213187038522921618025161349846422841122559571277854978133942636292805044261510378482855477581607954185418146796117161900765317468681356602921256099359249366246338850043292617846644506796958714006446267052518831253999581075542575300885297609388327608268291968368935791435701241769048967818626621121394665767923452424472126834179853757884316081165053531905854224361549228813295114841494543400566352037402460653848491616523989948759528191734078038720713688229175764349598100276137974993796619535767564846908645839418191975273761321936765057889800785332315418365796239293154077927737376588795988709181684390685795109127277042925614058472851762601577782440602624023962607097475764630535646883751071414830276705355549425000553948013582157523953528574136687248995997809167915578534956935838472942445223726629490151867064760180101667195767578484907132330463791821565012837727153074079895012694877543670719783810040526424617647699426600466097505362714306403031598500845493661063736337734008614200966055850849929541012876833162253583615056507252513166116292310235392931133742140001411135029338570645209393208854228157825657298628155947824076400735220860643584847185046658425437722944541512083770169629313977428482243460221376672254660796615026547459239331197034969929452003533249155567509737453094239690400477088429028134122395953208544330737670952465192378019649739863404059836128825791924464844183212366304763879716128154063419159141868886301640528178148345491679788832959207062141046260536575393403434610138699566604249872458826941817515811023810755315719037500801088414478856536441091385917437133166102987692374989057699685225662385576927139120515106399900963875112382066201740974079851191350412271506017294704715095070173304269580717112042499781650702784296351736560452378300657432927258943647530200690995223578580847453127043901322694455565915429616521954200150060379746929355227249808912777413598592563657975904131737523962307287086332467169831014132425746385779666921309124921188098761329398677391035010618687360366001054223741632804352380893044173408628225016535808567964744886007444398452806158645353051803797791581744054841744678198277835004968568685543597113412929078993875230483350111886596271012736647493530525105491854307527290145094556108748280406794015677189274136827548335654769113433992653562060240025023809428160542889329138309880641131108674634149158639900580135392305604984758247092898906709535921351638141860361650853398637460518418429402637603397869469720029799966478831641048599935164326266720149012700691324373373676160482220737264414420715466642052599769818600465020592514983568251897358225663237582282963891864521785087269285843779317970565895123401100903501819900451093333329584600962529557602432178688032466425174295420614606294630583744593936270540609926771032976106421784772822479350418991250505935541855582116524865295299513090547184229664042360601896486830974039255314159469175216447072049317684727144340035494526638265219379471495099192880515833965340697292620722856537437362085936791236820740857984048020145789068352109495472369398994115035758604084649103291817035527954811917270805999255302434436500652155942065003105932148437682015879382436322579649846286620936893668865429186374321177517808517594759033346372952341140474533840449550900712652966878777444228996431610592539078156189955863022727973674989200387625154593576902219747499339928967508471536396828193552244486499799093332795226840313480633326333418038487498187356924499654843589232586581316163490258548249781921527425655061122682442135681385188109161994178065048741463443229305339105850928736516724685395250075885888696771287436489059631052444373812281640211814409175812988164756466476898857083303115742595276379488611205931944764464173037381206893960757599444821005961661659761882564209713136541773419410483455110445045149563606147887488503649904495562607716294164425870573399740442241278734373390401036534391818109863248039867473219887315158065333886706972712414157271634504132940972773964199650036315367114269556471450429153395142134201065365831456487112747995265921118844109131789906018680025850575118061433681094054348546809294470038483463241121641871696350592658063962727737695988387529519574108670418645383215773561544618515698531301052712287581572922368246748746535552052828056203260088446599069076753189325494636281181778215733406330405485543537127271696236553894009202630563546329507953144058224137121644157460413159546439527402047360212211745653073196201372357818369892699417018479904813426738392399098516135630743133346001391796051789212279621418735383994198404578107386112656425550913290039287750252339010290498287234378998336422392848287979368145776101756678634383886646189922274788720777634749928314787169451323773242711232786461831761170894864817143064967421721721876639261361063488959603392766382910283345508147620982705077358369520959233570899442554947198609459088334074084017075535118682633786251891298014100530896143232945463468260452075717454169723570924896046760926780289985138292443556363200279681487124474775409442874906458298145546463305410824873269899363520501518221058874925230486668146649617928669613168795334303033992103595645772790799985642062132030898277626170793653041790587933619735379090147433347686923977753743232629128287551995697088546514487934513071160190415557583010360086396714592770759123231242910090548331947087631510531089593983679141392248361153882222538332591030646906346458311577742153054962886914090658727891520842461519817551647893460467345851327376720214100713076367021419946386498183703620040893142958753197746924856788890233257885183765689196248627045411152697240776169070890097672037282884048797017547179964375358452313901366299463245513470728983066350903917748465866302912440223419769161626989723965390965550534237817491574488161652403081254933596633979249123461222057494029249286644438463928367098010322972810027142352222216029639450532530307292679458901740969833327357648925189451224744113088354484924595408463031003993217517075282768146453447223809849814800842965253383664081097405042949562195478941972339403014435418023436059938605643570703089129866075488361962757818547336258067389834254958938654098477286159308696838461240029580805704496037901323889190079220768894694700702629183938523232287396535113081479008350606490738797703481681900439164688790590715489319547367752239778271626273399651481185353654154471367278563342951769792593453303698693448875779012890483645809415442498958308223071187676374148964163968402191913340225945494333740131851271015469349219466771707830843451892996329334139314566046000900779530765593769707137226649874823751351600937207359245387954149890569566011266171614561200009104086822144109861531336503814250751209985258639364987838730612992696649785299494926870959206545637414309193685567799326079250599927648540751868321611091537313751355823672496294132713695466527057122250003293259918668053307624322515246985566844554560047219921782240702885854077870476157039861226088909941940424030217795855153143243343982456297371348144598076954383631575460328809057808125538050857905478787813502560762462073367662829938595747061455962684512672910628975117874098071526644486544214162178767732060017450928779379371880994833600455637287202091298243651404880772854191245600586495154434485013703377574233612392710542433782382245150646009571408097965418727974833314050121528545242230435734001103572749326509671965080526280253349582101687536564812427510027821592075824467288211475820105021226949630458115582940039997404787487637815529481717006356545911015513540686538620865955494291152984924561415393406555971467234250194917061762247373841055078423366550570165390191120165157921320384031506384375319969214837686864122354428477249995082805581632033181701724696152458081675499783549834628859322420168632990447167677124112462368198334379924222860184286834281080994361152855566466532650967456870635327027698832272894874473109668628771744066446472564233183773497078759022115482006374880884904263431606593690278923662052624324593521832866490860295572111651935876688271005650541008031491378412008562542607304157332356114490674766580052487879716010053782132524241043470593456314470282209652471762610322047850821068303612562182878314282804427301308847322972706967628461812427165819625551760422507777804578491711709937717827316126048698450959415187705264938743667134400247459690633228513532037589067210315532139583847955749368607979840474397874793742849048393672690621222690402086881919334246507015313040000355577275967482791776039637729138623076940553909091816186994891598774845435870752327321223836996705077792062057293845412332620376259392996127247995012145007755516564541283975297663710831819508669124637034363906109324144718350387647117024156221531466193511565441333861376876780294890457522657939498136483909204238932265869378662698069164222585962332915627329581315879694589419731253218848856705372392347140620292323957501706592906355040384092200203085785401229231136538283412812858393228424024096153387257492118067049591832006482721944567009105154683104969029727037487731609468617238020961478189470784491086333188211485519979706327765009510490211090273013198177645546104750993259555681336510502218229030920455851048868831568865340538836420049097396727562740520280980260790364676732176137180739523009188539095157355232247554675233027408717205094955379476839765856414426506203146223855342009522261402268423033898705689904873855828436020994065751584584517685408736358951484821730353163034189877454375876502208285562948533674716298922866942047898659021313126447711363802848396249243229810323343803650809101345608529134426440284068307052536742564468595883309484709371041323093254936982828073351920067913680089686060975975660357124296232838996898956516783616461983661973556518997776789648241834779797330916668109089589841618686096235918402545019341143954575785072779392632168255679098375945375358524660500317274784817765505362109218245743725114028350473201884973725592489475349285624448855506481342601564514305704471468004466846050720876208865084343135010159713531910237763229784755345861411938784381742859590702002305193276562152201294868280487438579653027649097823197815216384138423922231281775089531050305753710575598453437739785168304290286568510759813746341688374160918303759113137251064308960854256372770199154216126662840296416692564512098296368277992674636406033569745398008610861585976215743581045050368133266011648555610325256444085671372391515609743787274182365378443739034672879675122286952920102805625067746430590091385606316093288547451324175017048416390141266573940303616711999801548240946868901600039050598454424322363146046719595424013850859467484034770250246441898424529907364379877802335107063573454634485379565550738384088645743184531804177823273402011914532153621229077385389493375563893065002906610602999245470749478141942739843455006256750931822751911052581950933816444726972249008706232475935085275131442653898857831382309723722187121361681278479853901958161110257988684944408447731338521335503815155571119141651315117684156547144886944386694187897428596121607636166867163821151027963832414335136870024562584364888975236502003789485025807726935072938213028767997634019035554205760496041444783074205832899421079805229848301875278129077795297862814889747598035727389229891180582893766517837092647019516588386563831124672375622250064293883167688913516951619285601827963530841838692703106447752266984126332673932964733001068950851743179523903147163855233582019890460533189707410715617044557198157050512054046764157394113687588694999374644408154184159450701360823782997678957392245489802929217530802203292622937856525876304413836722627897764302597556403730001173635203245839315147298435922223900224585677440115474760555289000861925666077027341776091319270219207993021053162525906339337533878284775475002057347311436476142723956380189475836679665438153355167192633721318177368813616507942249328992479323386960304460373071189966397756143611528528946243736528113968600235778339169175310243684927419216921944763879438036349279843590536718849146649018915641118537612059729805612237331630756998830114130865801340569838630366664705504038188023513131082004393383741860503669234170887570907433427942022385700623193702840030888045929064763490033824843132786708214879666904278166128327924364217692904507702631706845604976981484921176932396639565451023637292168614450320768387680673291148644882033210172538900159114920583009737697915446077192904841348397232879867990406175065272492163232482373045901211519986221552725492608810640960509499442717091090016302975143553616926637487173891000014228557980674718909133666898880560021409901328164045753816584950020755675307256746395417189543702739982980686323923947988074090752204492205369573607174112729463876451964786791946443060636066711181323425810522579006662043870675644654327442485132468812987381805601185460122460774531571780945248262498185816662779279334213188368289778452284023585955498658020673838268400595785165270960913473309905655068395736886475622283001729122870764041870620827186457095490116629763660268978286978802966912135334735008196348108572051132219276042758443758654925245665728988840464598484257461364665983654571656050079208880317574914760523836945764489964125849123261070853520586317726671472501614749960258161417505248802283536193425353364324825645923896403730700500945891323416562918381211371930765143674593548194700904992296639459223539942863210803854869499374663913350591038915336706105493463990465742835186741293188565363419628763800361980000892899904453489815610116754779093399667933956330903604716820257261589256696421415921792104108577562179226698181942328031888371344964887910063478717702038449622726647348300926904983809100109911689486943157528060620914655189257432074817085246443099452525660304010765460494415064307894785603695829788982594345129490869452207096955211954355069371337533366617835989141082999788398846266718186293628470237490342037645357884436659311719395849955366293323810965717233763283831762502908690591104329921132623353007334379613620138313481236277661326017579637989785807392607155857769983351009144078180902392058486524737047385686177945796545102453796032269426951980477182120051527829258177862647704643320577219440153615615901467433621461149247935809210257564019977885097211135779132397303633897236176345369371001180548979373031071752892971639241943361720158409853962195236736875050925728767000570891886944809753709870065661383175881946936512975929370896207545360297298891024740886708224130803007697930238346308459206888856922572379279924238770285677634739751235802669944152285523511078326525970262008749873167049649776132479579590119410043138489358972918954687860125217444820624258111175317748667013045860274394532804030981886315767211543095741228506347767679716251026929126277564792137830987374182636441839842061683757640124917741367748442864293263311122962971362454386145232079345085226266913101428136212759173697277677563101689532547384543462881230160108725030982467296885632962493462472555585463072320901818750349918090253859263656250530570896360889999314608591028903142191874671938676629020380397941523080181157562676994222545528516672959402636994552750167914245270884839860679454169765831093567825971828245282540953813195221787232541553543815686867361949632298427351458296217273971224232021067364170665199644990092223895760079805015791023738389824678004651814844534482854146353367436378835305041905043984415599332701299230637995624294735328744421080680631008964314865718193947666288874537712331479206976415285536635759879988276870735089701785046974484459014227724093663620136656085543901801558279960427643225539758381659579651797543425344959472823873608004093776089745388315238206946905574509181497815505850546100789872761487131195070236368486007870613726707504810910825689371679152058994606700046453459836622899688059906155158152167243417257608233829471731729943402926836760917442083356048705349750290679489233639457860230729331104839368555414075761604193926131715933261065325377770810591643595929778813065457848864063360065327816633228765240879104515163868084242345164816524693911741132877213030401227046148373317034987160666103554855072275654043789501664468964460029062072898770787355506070861161247157577984387465571114455349892388816803385567648038001433307547195898264670376391504343065000415991422840619351408194051097779996940075342944970006646922728030552178122057592775314821440362252137019567492003558812300867464225877391847922618920624693233020780500273316507223999949642598052247081961208762329191514951166341026252841313795196507067771630654554881127150239353309581501862777313162292635366722074346587176608171908558610874064697156597544114911342945431516015419942942896546195557670368605627653713464706003397219403424842722009805045971554722842220279084307218132150268088101124321346025454569709631032885810144987963424649093071936889502864917238982467648251772133886635708614988248883365506036427348632535483004307048886499846788447382974120284750073932893997366566687422137906259671805471660503402796133894230886919408134472835279711895381094040071720548800652691132242935205531635310625821030006227501740524627378213005135073533547396486566196027358274076297481664151985255653159705649750815055231098730969957228575327598109345483500422442848562716604188971446387334249583203087905532466653910418809001930803493568254225057017139051502942262666396618832798644633186127176265832990352416738501934965222638728745655370169186079614393223875957440572125121907765130755396841614501863278210100208818574291145419209016613399566610072103502973642821663334617503500836875738032410228303969599106248892090109653148780641434357135557084239162869786144176667600310065884739124423730057454727705524811063007600609288161840305892436781872764584232521822403094816650081569900310132064080056536889670354340957228591150809520746629378881416243332070336868985699147002978371795728320561381247662777043881186972196313294510314579303744851980516869899641947645477378577695502824213132115473124019438535103105201107951810884788741455192006500221932562907517879808977376665404910444255513703094817723757689351722642974571802967978489999711407235487635767972572740425808572502719592200632230098948208787689996758448636495813148449481058840401353364413707142819945425464940611973696618606982560465415797702661195171732617621135963190898715746916598020335159564932753700258342493097795933569274070059310221287968014451380342523264274673454869055714823460656852771640416964362792442601538359597402505095856965611098000756318503082890135091903018137100861071206945397078613963597690146674975836154042153099087360136625665092986004953155591579285564004415665003237645046556690814214297177967277127628210908582343300276108166905945506363695321172332410128851404361053898806979051624944109590730107865381912856899859086701350898658880273693362590874889114753527344375111586877924956123788068250419639698994000848934688340729331938523731607147360563095903627120122136762525276823153790492173773575377931265941633737571038791913217798319545423880294629423659948419792289453476939571784957204947903111588355188541271485548161154552214051465745433976515334616971675092937848373172344415162049198403434756568034100180702426813902236018234576511493839919788540428716128213805203561083335118928582186957505562437899835933522861123502526492935149920772387610046530592663465662753995779545586393227176681161919382425697569514019217146950355267363374073176046271778712275482967616613559024391063816728028089605334146868862496545373910200581353056878643252801834016307954713823906248624904836715868129073661089279759458336947030965361408529045001542160429533948228812262811351714095730336568781045194500173268321243764294855797990539667437449219912594958601834311762843980054070299129562259820588219584696776882814800001941883210325150786188119632828860115837587173361543956543412613884232267771054990992344770120715172142551008413883654997502483908429547038438465819851188008355998798494713950221337823058226747985349786703221665164303337853693216619300349574733367786491105345539993128084261157181180312941403515591976849906672483768296812010307917854609148204202954491733246968406512871505007124153857489493794637702312213222863894417165710558759617694263585623245122778163592224010261446383649154976980827660379560673205425471169030484136371075209439758668088850694511846138545699497678939912576808243164099513532762569568774010417988511597418530978524708321155903608246210544004768642637116795616896561839510388235629318066299152930297827563618337002489977856615969704491670223870928122576684644934801335346197433638021307382516812012377049727228791648078678491981177944778437417771936028668549779139518750108749499499999096966536555559882395491398223255542337625007483297324147713998430224211369705341540616956555268295606111988459495809766460852685982578499408599214884186963783794366914413379119163390804645651936258926692358396212409188487634675278376685250750462166834302870669555500623078881342666134074933550183571893447062429963002155947697257108973433666030708764391449397910639986190688672002408878035519995232010913855317043570240304406317237759036691595455852677579487736358152078916318285653616635885715112097684277013825130385196344142269543764846347643014626810152489548564767102283522865695671075669854695862906274266145585550195616386219290432785691161093634686859361139394156658930602622847775639714040926522717180142805189521698613039780233787207918649595600007512116157291657827645135821548343757231967100416572082232146003649374369217184629827872996672631368052696808187864835477589474051068735468216244848457359047322471071410779384328213801692886974082871216463872679840549252636061709665395721556406473783076508025835836610929749311977326899900272244465718825223417970214627088500820499312090056151316780585990029729387973286122861337140361977933233004844285609171715243556789135830834095819351164134236442900610521666646546178204923968009090476868292737744059866152628431705370307352880016270445854477747897998245864049535706053393588201927118527822209652386345439150576951718714415929865208591748342443507790391954252765261058194281872330320481851396562169787540840635944154207213926877603387816820748294936334844474336593243596353792138510324607633268834128739508525018537638243104428633020128400375850996091906399371278717745202501678312053330301002747040170023863204799811645350968386095110582765846633038716743210116685238512205295080506637595267851927021984598827568540028668659097249011074869988905186013800591164651889719188776409641432827561837227319588460043198186505132626027318847930581925464941376837459707716525104507090426370060224027371924065550983688106198397085639744309800656104531288258527208988502613079446860291897137746589229342622892279498048656880323698112324654206227972415189769154465670622169392833971816161225305573324545537469727656300324607627780739008582529365935052138988677486738639595158215080502364163545116447256166508074019622091741534433261607944220677641431237107922513199914569016879116475509924355284296392704178241621475460516417669462974457862162932769268004913194230456207045287296116865717151667211493635938809206062462045603403407164240388891042782434824690996876389530870163494439167400510872431383585717920373475502893534253719842342507254926760429450652041783920595600617154706460280248585021464450218036559207974767996335892002793084724742605608742113291098503201680541723590224912808947042588174096341510077827698664480953907387548423494249615605844559053415321669724843025004782609534017827830237128747923214942143614133775499213243122593204438810064159132858001138049576418182522937828131146365559946472680911998366356173343965422199132280638509365781884292983269690850829140803834830502472407773117950688576073453851267477747786092417408798786946043429030316638342946730874367557734331932425886285144745517615414787969676682918550185415968902546572480952445609597254742074125696495061985256679685105771079561611311810251254636194795999809222498699139925513645462714133372406638158675867906237466811344275589499645476988976989285507230208759046578548137954846829034847771542239911359753660897851595256203146904193040563696988473541566714790131156422424053449290219244050823659611418939369274061745628818046997398210850284224201302445418656064541091976367518903098567398136548721764847815541227188562647978749770243842507015635000465610767772454790109490016525466099622920433334956059546148632570468066233256872630938657603539934286048929390648144930117437061486171732453155257832768778282892308863873759904712765040227636488550793388508527947392323493964158328589715801085605199348654706750259989354533883727419507425269277040821568156917794027907858945832478398815282467780756289292484073327699236059966242962039458591684164693905334123440120431711832181180059552572251469172236545095594412297517962218530262973695048332259972389227465202661650756203085869089255949810770104485192285646753530493544552945046825351904721501415951996891944076865236495241515414073732237163015629365367584363027335414037687952091479920591640954438147941389999636357238851959469845979231821820092236385643357998642959581141193241389034483662806031936891730160997599867203105197425364395837229472063505826850709225955896853804490971046000945388121678548347375432561218695894549465963231667045614266288075201226172515138085598543596560234333287092302126106475452567964908144498069290699865179171139783992171781413224416797129556195680878978025242465759746266404870186218268949767040885415093771382309252685397840875562196736150247658903087808718202800764231997603942308350154726100031741684227013921527438140905049377632174555607074105728332731060437888392135459749344310856319509401877641883234361188495435567778765100326477926684670123007090559416722988023285064486435279809518960008987798957778603377602103704355245952802691378376981588481555751769328741267383198753134440371916504166931370634540301518540151268157880965054956018258118512570973063009662728500836984441400063760180738996502518138924454855262190551109865591815178224397919342036100354810071397397350001499321014746161785657722222105311841016530879332959595320996999192901224921415528717054272992780424998436912629529976454382462617774960133583464551497082113324153712762058608023826110512747690790428630398090203499408113469379360323110155708303309671147113383367235371624784261978594831357224079603106307551078707939745852302365234519527925650991307381591407328712163070603177192789201817291996861577448072607753020759078798322598407951943106085724809839450626042621955065928517248582367125680836080099947915361308674256015187543787881127160723877487419259517496419654878770975751441394960746757683079317456584819773880269043273623664220656014700154302213273429641702403926448237855545455715914567433459847768341546904411615147990256501001787138819194425593176184689010700755804759090106168540065557632011195988067737502325584413267881647579738548762980545837137225329911839650765566846510979690401377322598644425098869270121954172987205684062444601697623968101919659403573990321237970288713574526866788162146482633865267798296381520737106808431252435599346536305061026050253049628014262162119726578961936710776233090857835700641772911439279501660747626089153583629521159998411876516029518320153210852055135665711215462617945489877817917332451352007448171834618065380168906000076403609430927829364540174349636441196600914238805278574024876066627294750125887544971693656267197221616466430524662505565572289989977669284645626077778927541440897352883246662928997090697768711595466434140871332706104891660721511638721691303143628449358629142672402889945518567841171655782215901186593741678245457758841470990943855587695319486739764915271060554461596623974576134865916165153544600797784105153540400213295126567140376868313843594546767036459865311433725159315357314433361790745093458376960037642586696096927249512511857956131808316262438586037017010262104308582562689312066071577584650925411077673280223137958469820731899353220645942962686219457416507684853215477490069124009544812288951396343280964350265169557926669702005486868826095710470139891385400210270120765699027317078101669716485287746149913419666697696857030136317323309192343437504302564354286967846016931350601945778215118653936340790038705630667509262390728749459117347213914135395013933669351234300048677084014194276415328992093390856297433918402042099676618027819732310349452029644185442445302827601159042367002596864637643245825053576528278288634191531389439231131035788752630029810477603125738458869657580222749074884353479042668195746645952681733918865927405467559470717304719420952825468885173732642284789595262278962791142605100156585237818415176417385079287897619035199408803417336839710603439515734847034382475280239342082204390383637023777633741074735604935279802432668092321099705430709426919178598893646333289839165341412502109034865461420382098616474908493109430656009192998728633257716359208341238056297785815074400202205702216029680355590320242733362952957772349787901888051086452725244740507027224734496552561157176881205907799134386861259810254318638545066725173012283029430478746062870739886111805034101854717160507774277622686252899778409963883714843704034275823989074750846451515735652774066076583189805341071082644961457342052932823125727557033283056248991301847842601765301767664284516791878160860587555711487772354634381191336872578217041154429519633228016937447560255655167253188457864195145249844010197355535843321997500701159305009254152551337170316401803384266943141790840511276330009159325495254563204590460096282686282024608800983976051860421479574496480933709297145225194170481488590386916103396993338378544286187780297513914410162463997455573112315906844588215228657049180290440540040248309439982215065630978911920211870730252887972333802640212231886782791669645142205109465023729704175359058553426525101835705388444587854842222432585987309144394679174936431168190839734159761934098290080263454498378801536547474711270032222322532331899663951037105061320707033753025602380537030933140640852632996054512055803988837429074640984311830811945526412816745307284479857572862357079629616864615523991467341720809704154927587639460865519826726111121935907010588672037139860038619425529536802273016129050433752440727363932412992188968970964583464857357680603613943990777309957900535406328995615652300930418365387964472709633094863417165367639575881426351004439524657703914890224536770063547644096282790970403076914994956913798871469810075831585800414175989351302709504217260611945878006037223808356707072188440384250237852943440831569506818167114513801554699542610231008815338445949500669943346233537065507905556134760187610701571828748809107569281762349668754209599565061869186962441590323376421962661450014744513189859006599869460871403146572759024531819587057257043693362640205759725517391144351383282035684034396450751317156018983198450863728033556931950364741313062858330841505062145517039830632694008405039395370278337252910465777309316597754634752785983887645021805714039719926996496072663868982719079351953556928234309375947337634055277801499823146414850727769610042982461610870771211135212936101655220299921157927235601801286153092596054606844311668501298915504510981494179789898744403234034402785930550188910624667605691917274861513698768795797083897645361431793575816045967422600806661780313669360957843519206513286613944460493174008913471079709257344766108907803004732333805501952056252909581888200327322527900182560752736113833269416527837700326048769597674832246783758668505905125572463098218142681036567703682111139564470326908723036480564619787171363224328258473528950370536692415008650246698011836747906414601110755331248359563054307492715824079864584891367828041549731968039105809731567663927883748094341056377865650099544715948920189931194056326630309495137750098994482490955628479686275449068059613150769713352491320625223621593673269881025824584488645174382697592510918469126915672412689576628998174634679460835014645309460688226102914704463301451941450074191922933420291640116952627662853580454925456585608004513921312639160043501559649300740929908805558938433235650181807887558473415560283262072311297498262956152803461443217049439865920142510056750035434786194705257455370723465849001449173870531987326188773918032984737254557921970935385286709342659947884376802535191813716338419384404273769119271721714608270229714528017872507764960718948374921324993232877360958460879202072738897175745623602881784374165230304760695620277121292129444886680626077738430325547236032353445121074933925249064930854791255895871353847720732823838019008587758127002476337068825874114708197731105099575555125078493004820614068276726056801664636689796638544691986811738151251775758021347252547636955083329056482223434996631535057066274904536681859269954192456487919908906827977478612075456786302439159977284905109284945610437221292230865309843138701386505845564108488878015922320447036580657385195700467370177102831639965970631897127203858388083779354890095907143289977460299601100629133062409292755360205323717583012177569544843680726471222046345660376520617142555810317818942265055023050974075401306911538806449204372719391634168246052468433367269088139394969672206351446842236528228662040762182107594686944349040862388237325008472631886489642941550494765558275115170613229438462125163409572695243757689912067598272706781697472007732698561158125907404023040797985496807499606104802579917985841685812822726375363604595783662572081734101812902199019360070958411698778180213752297909541083582335950806809080370194002799405103111039419439067506752100953009367110726546626849385370009321081622226848620007602586510458949815782244882782028266844350225599363882144800541388804037025853209202209877601688099838401177479803963415588037882342225968616608427084239406802335438580989970090681802741196083886655312619115509194422816216724218346674972269889341826508496896702843982560546942097146342840560159096483420672124561483197719397882187162855745460488592649252774690896777967935884824439722708623302791800494680891775937303160130573523895070272337416771056141422670546519822387175897581659902976861843915931573994620479402122106827810909255219515543286912757857716429346660444456129929661792966478845500324816879091649761183271712787835793399071920512298503577689894069799008523845439168465854117249740517644361660911643957174493351467327228896291069100079171911267969812934976385007784704995609866305689815450949346093438849584112317712668163743024133671851565025639608992178042171301364749496311074043732640673459117685765309487582452774803193491190591158081926709006017965930544606545816247452821706482514621699724162885582562878999172328101570120897001775293104755761313293065683038308945180650075964882874796768831165062353163579183473556753231671934790826247002760909879397148800710039947513437121100163011602076712116173645734514299807334198498179159267552173670775433322954381894131353309205982532265425414632056227893731543740918882660741681889390030232478599465561527156090180095837522846139229576564145840140494972967084491279821173176231392907178758280197615969689407797249214110985833415517097375405835495780037027047025717762592240272111499917517155371766855553966807387432795366352694394786233788097832171886343864120794508627541956300845726535605487272107601205180095712861840598204947297218317398284838730822159870367476308960434344637858325185377079666532181190734854903284959911547583720214955382721099231029002860531114002081011398474510463155233850470751666914363181979814195048021037271906362738048517046758924128417723609599613391866323521630666417573319604296416132473493951734057593234802841844669765123805501888954707544519768153825160448288908374683847825253933131212631970272634551410747236842982886330422148139199425185820389550681434217699571672309701447658474070486874122498614104382558354994006725455232304987818674405777025536646984847128969702059803294651292084174820890898720517026832634770120343802093035485371949450880607950970269682009450304040278275576428481981040221832896577612102690588496961926226787960744248310130038731002117139733152448554141288001623246702807379207880122527553274051798695342699861781500030768497162505213299867425657483328368936440149989075942806261077255616507369293488027213510652637390256524059561486373027120451815270134668667625957693000111187486764347178224262517405986131806540259327315830132757595269178785876438760750128392128433611013469265920955656850550421932208905176384485943161506331614296967613117615014646080510126613666414003940726837720050562225086721564878916123150050419498929467704514673340613333055328484119489359086738648061014452368856927302513738261149781792407932560336397045460610940373870838093469849281777319411779190567907001432756957490600631163103607454881281496120437322448413526833120063892793941748892159037818599641032678564277217214582782392864852498176874894851345455697690313089491566331445497714912098066882997553351202775899194781523472927653693942314988097201274243241880611093755516071047381721489857358109826082328969092105310187755833811221117278262603688244193392466325702921442372684215674003525273566798422369505105309964729417037840112741332671792932677350007524541985145368596355752790281967398132132015235269653759939445135390831265812914106996033762706379984150074661851016162463123294922005437952183753322669324356024339953430543596775163911935581232647211877277559077679449315764071872944738533596265942975286641620851982160755915991765833749963044865535500712932898233795197477469964746630937687385705026825722637548772058909565543117307218399743666484893900502613878373952184760769630253876460518747811655678527085869782191620612529935367618520187680839025236810732521985833376783985824449189592615514421527526653864384375995646548303948444986585437874199675070763085292167790159505757090152182371885869090037702695127527811852452667481606264585897516793013769332835614777303330245748934057254083987292539011806143323469352939382957159231597076965565140745380272466230283337052457547533284024516315579331694573171952639903582050853517000562984344339526751577994806162721537900106365977212139135575800726268137405546818471174654898649425688846770546289093738052924531306492775261565779603441587465374525783148149379294831463119749195956168135824257854967393690113655799658625031693715370450183601288744135182872652515524067036538977719860782091757411253285593555637653960708582033799276690062372271461083551385527655199242236037717591479787006046841445912834785679925634059570574062541360000581116571895263713151760009362035703104921819521175884365748830559466660944799323849128584201338110931507747765412467875227661292116940434525665704124677914938456951285164587773853738118798156340874881703971037866712440737874299232906402561785723810223235081185011107654540846967647793939520166420894898132758368813276377986589774135633595749637442635365956967035700574161423676443100667441789231919147312738313710502741177791429554786261303998590227773135412075274459812813130927568264163856030025347684267891871538867594922779832254995465210556543652988686214377439650682893285413721585123963857845258857917162207132966096041728180546943684439823867702791925822853222590245691630821038793917224265940074924462348965011582667232010728042546341672131565649438861968419898814160898163685434520442795150253641363508160931757092321981743355214101603806945714182107404744504090908070710195893074810683437699402194292832249522609909669877062158653389750544686546101110991474001817632647241883496875909733079924650803228935037342648947944541600683743743138360465379704384081320443663892028634005393625286584817870280976312320758551267351615769425357441770735700078133979694340827164109011908124639278530597706242942467986204806035973935121997868190194116063387891434492888780861246833433225962274447008929710978514393709176244375156811930369177060227978059524467867295948999040876219777113814392000482046704278893401978841806443872735051635105851688594517300998388421404463695634630212671215584997404766557492224910870133863963359157584660014199178943241787045686849719975676697118312982823790656427255643190559485546886685422432924220159689079438241984649466596005951740095999785944616996000324615508729510739398833449619432116805526882880290876132117802628954000271860704449762663309767984876010560207695228712253466787374039323941188779041886281818639780132800787272532401640804925108166569416542545773339664645874532825039992251172030323235317269478260163258925803006320320422725977827122988444427620796690029159335049807649120216490980448387208033429876023368542967994587715048097981342612899554621839273706415334099820253954569072426481778399268485382784387380300373748947923412529366028880558440664150690788505788257892004318822514267307075386599682053949446640782530752436434335764610140240061558265398340300963046175229860267664328663307961232499397829781987005683823581338857159645678429806370157493210582002539516071671590519109173191080880590244755249277354334480762902532776940574026446292298796886728874190409772724097451316213623488567681925335239624850005427062834685172891144728191265354837885089403007623741654507989691172481268900190830391615903880699681161155579452007733765080796019428561776811852506710983820364216204582660302919636003629825750379847319656100881156467485824150808572492250217200390753791931020807711784779016368942151526573836900503863537448083328147810714725099300719390397259413073468826170654914220641354358229350185963367636840817094873801469392035762806940100727369812347190878085660680524308768814528299404403400878797420795806529199274344472954091630666918959309123559734859307869454248741350828232083199287971647577393771552098338337269320651204164476293587611067854127652298254199046851111368004981202554088887464066410278647488396066141005991187679043718134107630195543513260467422164237989029727283139018656684515812079382635412764074618614913281604438062211507623548813651151796488362697155116587406097374599119611658148560596748273665456735068745612624473484715894553379333200962082240506140002341882789386241324484093336844640065767999011571024663137591118768434708721388352744362036318907012108000773991641560938921724102625226982782413411119042327643019600835460975319945332499881843334254299963075189662760801435466663533345396041358503160148580424157267105602241302760047923127141775866073677316111681838610796294469757755025496188892750262907706829797372241286684991394823816949636959605928093223159802501221762278252827548998221828899696090275986375648989015722817851536177503649233539622186338348106988961655247978120519236556865168428848374918914043886016031720964305559128958902355130180953422883942592969276055798823603069433351437408367386479373444321293464895845814790283164576765322175953765787426330250856391950934824813842764894694889166455396922471195950808766636609728528796015850880577369707194657454446796618966512836862988207812031395401048846182381564856857840106875165495988395615401098884877374945788092753258655840005180372918661543549707656324997181069055449623335239023183828971227144667685229275855726727656323819030756198057736934989341790241262127613386527941333407448888439183322762446119205014440123821843257901097399699142818569593859126040083230456130762469029531116755185928054747329310257304311733437046215534208453489829924474797375751323166488828652919601656338147258705857757264204055096658817618193872118570555597775888636437404717386833815136319222647894462775816526479019158799191398772256717980141625621173267662316998087002084035876906782541423851188052098828853531153027981029021234254875054388295076356571347812193999858554288905056815993877630374972166799513260810333224951939768375440264012743929723410057623553842592046355579583607203736803147983695820321701826356194409496521713652984081994861007091902022210778036156301421530806024504653223079874951058691925999344357311522274800713454800910218031061651048627382307121986554302202423144436325004303277511445606799996907390634218955304396990782921218854505195597695703075094059471057144938016914203227248633366478330115102953183738837743774258418975838575649507988830085879990657400179730157555878566268239389846096016374422439311501709995461749290861571722413666506867158520788730141156775321507263078526600849928489022225331934597362820299180771588570999814474820661099780332504662924509950215215590264770763296642596530060770012422548157332861210166704079757229714540247407272789579163649367454676009410343972996548364345358716995606216535716360967072127434647578954925372389123309156879960835066186641162640430007570477601949572140539655244942665946785222704482402212048763732636855365593670849536922598916837915384264691738115509347955502703200554933732966184899111335502772450944429956504381616307963414903888698793437441065630729366985355765240767052064416261511746418353733418017875699634935640992977893303407249943287742811119832836702914139865444779472889271583545474479000705006305148595031824789452873801914340684516379811029441895598212603791693959387598087734819688526649575103191384132216141917188261602959546331595640315713415582642077867905096762900966460067280059191091385561813510834005577167413319594985094346156100215989457799150234535718256885162125455252579018135297050609938983626773052788090649076567990647781844432424326466958897233460823671802555003851155363755193326999487172618765630870904569481359266462509755716026466127373322970090989195751446288574154988379384661986947136662718048504218344787541155469808528642962942039460823132522885437613536848925496956881202980215221298693012359831869451916222100188414890771252291795291998115542429766113908680935527097704051710160899734929015837205835472577969497419569260322907033895677769053590211119441227586347905844044699442956959641061585481648677057980206630380823623267221768018823919707790616853350297748881717179072957097151027091879594036126234988080277681843444191599714532992753408229120127621965591807436611419720865398226077477542890384719312695352403249159628417255629897445513902064349210497684856572622582688447433648493519647224215766218078921400623877905095886037371291372728117490552756918726028849881238293992015972463671942530623831535966495619312320281313377371559918504689958546601913295644372936212907979824880127142598775877421449845563656948860825994260795425299262984679493015887248683421202020401057050984102519466522321074386814271268082056990783298997381704317504530988670607463916632555140054629341140077346020494969136952892931610883972679166618294615579727058498220253739986427729344692962725476593379255287934867710591039626808189268084215295198526220109949190518037985001946453529281572713785113040809448774912924323323119012872452679376563729609779660244846541774344601159032589246507078268391805257963800500144660458924446861808550998769447206801926112423857527201988040618039842535419099042193874180842845521077169934459527824409180625818059076485190158346032643254154944148996447493998811841424469447404386922724505343085810078620115620330561354960879053824084427222494672763556803912133158430204706172593262506094217656737791870271443894123007112708298975754730738389273682599372557079277814264512560510525876752070204133768833127715284967816952848697085580677504043611455900953795676339076566457218115872430473031482590975993878685768637686456158143381861042462027944478414204227202732293624921428507598365060443899233422370760161582339010398136395108402039856700580430862794033963218105527753938808986607680376603826239411127713635842852562522576206494373442972158335525495326095853197138763888717401077130996661180630100462077476894673494478009567384287451150119191729466974615796525825069627925700087496062784052904820785311405528644008014421673075761952570790572473851315396784653608046617519567448512736781485667628901848472281421957709894623777343718391351107440063534546409248165117848157304074272449802716686805483000769018994018682492664380779437889764220468108228588008281727729575392314935713096740808653471904043634319061927037768334292917256824069571567333178826549567445545017877699087099487428546591625277156686697978378273598437628343773060012104368245194815887055318384693302741928974947746205352493812212114560287975327040857812941818219134441836524751085662047204014309207499334942323856258560662786915265300674430876172727444706263534002427338765793474356664397870538335168248382135637386045079611672818765597641463066336578448582113389539446666584889351408584908907056664234620088626637552838061225261740677115061536474814865876960090591430698016216024442988194335192169160615492218285742304738879853918895144793810848196690908192739288569978255691485489334879378807606866923573268206941977168833549753563439447237031754433211855256875900504920941150164481165304735122373568301105183031477294591851901844154625760190168166866949436467863711874967734922675079061995659075484033952790136910363202382641926708810613056676267779115968229778738444181792793434018390552736733505175420175534452728319724225408347535775962804159898560221067676768767266930336037448189771235297214394503092225862806786080884575455902624409226896553367031866199222230822942207267788810291044609290781276208859940896822400234965091019220627789606876842732398995343907634870329057403075665784273566708109767901803603651435662512973633678310956417207671995225556251854670930021489219354853556347229415649928527872920438817985783964714530493115289290023218229314543107423859641707268876052344782700277536598631510578541117528040426538822723164471129991802137285881520250574414721550931069680913702731961191167741146966258399943513863114014733530576863753835781412273145215702597118102396492561925834850020610032294432741335897833683528915810127874188860472801579803666973565920221806861192874731363569471374261777823441569159526636741014341448548362078418364438235732340837878034737323146835485258512819797420829522866197511116464879720951338533200016086910723403019573359349150272759061611877138391100625218829690065655145263089098459365310834139704410753606998805414956841281394803208016245588803797431524900835556523921929098381742356804475703319344514238182274973098313130797213719294243589943887639480619221349244367610660964732520214844105624331084968428814947310318531791762966000510743965816847411518537271933320823543861974700175960971672245252568249497152401596826199610116388957321304943954191266939322382477033154949034469798163886145222215589410048502593919836224350752020692925386719315262662981232588367597646531366885589423807745767616511513528401923578100165194527266653547286611823284239413788310813770873807600006552557100815890778130525658390071583683363204396794447857009097628159368272501521308826528975417251058202480489139422340561515016969160188267988028330646743189011188711933471918879032871590035647283148581569538893582887463345964289436064139388938712906383714098577452914191958589517884760011418822120260291551720944872666166562845325416712345953835380717155766339370822583944889679173059712769504495336961019046112818771107756187316832865545984700918868679569325217982157573823886441942764741435185645641487163238262594466247082251425906932664841579853396783854928913284622597421257426958866607772128924849997997708142746667318727173900519098053848866612804356001386893005459402709796630925650584118845609473400087282877567677324469215748630998017161793262130181197637212424000416891263154117537949551077351558091974178965739345608565330626879645145770617800767258996353974126546434739394120334412747440094905704803460843903040270506027738022677798687507539947975468237955752637033439480242958574443054136483653293854844864546437317280738446123998388553395712915887133268134524592690304749491219378398038835768308908187391261143236390794972421090907144222224627729461879910889290847791409229461317608480143554993774596083092805569330649162595135735984956197343116298414444056072411015358803776761714177684611589296442660821910309773052373555674061421057009688364883812971558250235193846477535101847123977947439555090859985083170550383753737052327945393289233226648365454265272078727409702921748137437069165655954995585335756264350218832564679542537975346268826274238236065164458720825737464653442755282280502818061501054404762943203252672711887418026072299510532471705012829915688399121908320713014008928017232594516211730696227528478619006086845542301481498217811525726323365162136499772742975232717200147873859236945157764175747481173493093007343529681767081356299968922298468941230431863085312532483688885014262175794595009853099888683056721819479952444767812421432748529762291196969419614328937143873338205636220426078775336505286740056515192619404247419985954275451689656242961611133110001302239079617650903142391017268467120925366545648917418234205611813201874224526357914072011732350967462552853308417931650918082604255605052504187429258112773339455173548666934389985045761645945098684874135189561125514797338721873149202571227170583710822896725043012346618319905433919640162084904728961984128135030720422125774661445094585534162730806511649156473536114881388944485377527021516409759194845226311958835114398473933630071648736081916459396475933069627446790250610790304687317971122183178040197755014034233854970048162933242252933377074590893148337822785535013716899893744832877842457996170295611039387723397337062430553537460603658117420788716838553415830901251191773010580678149935362532784145424949037730399482694118144222441818613693492533568506225385004890260705127849628749288102050547139047294824203078941578555593222256433546207345899398139754086552973949171147437839947810865268879992573313880607794622210427131455441316990397131739343927955493643210873816683198595606958496359885447834598015757327846504822918878581009279487666828024909499433252359571645222342506777486937193591100881357289866688064569858971585963383659623601296345644001461039409040089573084268050122770300387473212202310170933011233740868842603626676830657979626879458188849557240352202847678782162192082338010092455965988770711838637746500695716284454724401494676897192769582856193663940198789037406301961501512372477114254649044587830950650329910268423686629226337135389757647450529918171106251578379151647661598367171223893600304114626328895438976765963429433215342751035122280055054068246260125960737965246459124499861461034596964830286523982986421321476582778474433558152557232339342863149321131404558096351555183814644986857660442830138852997050276556368752460808909597942105849132758408459737942351254143656825646780333851829902209180520769696175065279328799771763958996906893935866124693931560829554822493864326789885365812632206528311190571500647245277894109901080488934886890403918422033411798065688508668274574243102072190149288293529105283652405875638619304796421967309369806765094133030105294380771567747330648015085557510650911060261679063477476924463319846255099035137392295221606716019868999790450834467071920002019753692854254294419545427370171456365123590162937440601035575707885819675411263550865388182813905530541346398745322589095274610624863954428354642915602794568130336156875880895087444309460557738206929980334200599430858972886428833557223816673530618421206892135544145936671715331481541036234367227908590304140384157456612988116769029814803701374570361979793146621703687595539271070781628492969928354197341403470384263821595989549821096625324195674582093524817011874244278644901691088895825076977837203162466485681559726768185789802463414796197956921305518860554491525434788642008786896165872446248826302897229388510715592384804803498615949623152068458719698758450273734780478945808757274823270944608327611519994962723231159987987871646718055956876282934003851656064481929546334351494277207796889286696331786612095503520031434788923236350549222151402195756314523618427744405306657320045693951142825232403977801017832468526937071179935332755489795868168862051327528943209118122695705117893445419106319029075313150122232566236198410805335855997258827463266047883440306877202768974431841123904140319542230275384362755004949442138515595009222883842039933156676903950201242409639645625068933794305680546040859197636594119753154187433033321185151365732731595641066351564832023033456076329170517613920492106991253421863804815757915953688707291524903129689530175882068167634060176986089277743189987098261845097646304680357554150840921149723860406556177619756900277780451345979631681424460851849865995955564958799507466849608592113578538926050040688348670687450818845414220145586603137782520218859614834359711481708687234075246310764683684031984688098324877556487554137687656235394659244282555101256022731031843463256266965408551824207140758752001870381696496241377816108616550825946670324084250557489546996888118173492237166828195374596202515328840276637751281282755240867008055430360082362910590835079346227642499405663123061401892123399342767852992696604872689243625090623612952176894930569489282500726420084455617300831670938265788737048683053214131846802466105230585607864082900767032672760795866551790023370499693804167425443101786546358478098952852213143834989577927655467161629993879376514118687599178271366890661965158137951910628035968480255140088371582974554657280194764572326352270457737287824271887641404294745449794781095614392365399185578340265864935240781125128893426933355149744043519777274491558153848793663982553049774746136916750728305747221089519135135495600387956958844692357006987731193246846470392613966357975298850367808378695390827935419910624335617446381957246180978281377721817356228267790230930414926706468584468872797863470246613383240940800028596606968589966467763021329538668168115050711150890475325968684112746063083390271919075209950098433947133008373794685566468433064093409152385752174681731401061508248398699533389815633678929736352685133903709646822112004280059855638846671464028080929710404168612318683915617063406187700669632166217937597855825274794658698757406966431811812033113697025154865458950870503631410266498513124630395426332130644624494640637303670099426039593347022223820115738235518273518146431366064548882973625247979367048635138982448386126734293213761147749410820657155497934993672493622668142438169605618597255417212843486500585383704381724020680082791839005055059621776712403318373998659719650321916284470476409424574660452819938509789588840640997971462536186138964072249021048006756223574459567447102138622956785563252810616574194300423148365163546978784280874178265643669841966513305909848388248167887789738280333490560969509570627166645176967277542429131154642959811864631978660329873665581101030067750959193600330456747057542568398587018167345371242330963809273265343068168860225803994656429134237750057389631359708381178198785020187435658570669577782966867200881237219252715139896968118251341909964032068272662245157046037289222782197340737463727324496859028273750186469616633882160760458842382357846612851033340582790887748794638306009985798678120506979471280576986202026452049268397009789947784959215767782551792578233002653113954669908950990324973099624882857105060743112182191863135641437316642125781496228342723638642060365602025575821876316726161639412933534866980099642116405385842129992528865037177419344016850478886585800227144130050392070166598504276422685800264612411069036683802698732092001726170785584481626115771496005128086699671648795834057724574213171613154078686983721955204336812935865355115591599643072604572725351412733461928795676318176400906584430815370129738138876136766827595478950753765161009750791351834025096380892911815227513085294939036646645741624881513746869308500734199177923543877483025460131004164110279836112369348424895874329019846861784212456569821609421098154664381971009941783945215022871285219483800900220864726318617145775940799227454780980512132695349922205264987994884392183612016023147076690754411930049288049178308318511399311149849205145115227269545893472026742708826989753233629889861568674549031727857714880367649343868230650336635538266965077024092798819928896092794744295922473635171060985746517989414438836467846170857080788566258925940404568677891717217408237969974680538379297747580928469157119585700066646702325600609689242082098889018514170077069982763356076604834577190378391784084831378990117557546720488729286113763176643600109182689921416679877509818044462535209359310443848954521780076351735134547829500063161720655710262587865551750353048264554720801678472456273995806432570437699719331584145022211481379983633134132415569276234711381548358595748415518118336671557086100644434706366734928468029508239597582200012281122542341796940759229522227889526548595240829452477477446831665734854728612613215183375211472084398174342156362034190655658544493576429721019666771956866991963247145531876776092624247067859490191228626239886827843137481346742565275300818877556843548168665340908641291381018802734877104572708663099573318713250231320338640246928566066282813301511242219939592897347757109006264422765188707280341843578055068132260425871276491060964617827718194587028471799081363546095573062430835854259766455511920714520184122917196458952236440090875897817425793505909376843424697890965090076722300134165258513228659396111679600425730040948517880498662245930753636704124853980762484549580445448114131170462025803943128664749395443286133775235694251729995822526781536485501034557857506004684992418853670799069601429466785133176170484901005132875579374006047469582093193706125415483743046520464855779320689798995106911099668658885705126104094031542987207674249726367782980016013920300629122188556006147655295832247987591331199662349474215545791625657287525212119502538993017997198907189539121086844158822696594303351139850478293278961400124916228451094207348067736367098946614005436292672734062172585301574274190303552555114706671896541132989735730457776531004864747088873064638264083754167810168440748440398779012403457665407599416397583339786583421527512340144595571595930560339745669427473080708740425329277345148686583926881389742961720529493818153348769199750614273635338189967684429089591634018706827639277975951309892151478391301010060891541609052978288170181749836407191712214198410160480525525579562497947561683969439441005140469683836706989671938411395599858100019251348393341578688288863296129525320189408002922311248556350924492958948694530804966548705013769485518071717598947220137508232613810463693600421227811894881128089694755309819936433998367092632432186065213922923971067924468907772774935604310682970614970558706541724374161133323257245624623251727719542491922391265389231678693315977674623646678347733443355570637242878342981371410323426230609805415998249033675623922036367142650539805342700808528543579997133104644722920103642639432314202131638235912265334474149719759414686808716295060267546522990513148303825986808114784188844928649345934190757068415683582460277631579004078353341291791498719539257984440455423125202366311035420956084124997896343428693428159162897559923368274313697808918315748666914096690649507339386434476289010219321769283763584678661473330386549874305612127870845153859791496682858406542335047789176430838779590632339879672122622445907872679302520972963015881223589319469745230239831985449214904512086960760276584653235455315790932457139835152478088555189521452606914852206499244969066699904347603764013278203099871613463806868778198051644572176914520337865647522579160814820663446215818574446358224443948774721164834843008634406256317982547032949831616372229043139850860214806269902487873813635241111958058486198447752835157410314655628346475233910247172393700375139424666740586049640477928575612624132291816047849956842167067199746222352701420312750599546041138336419369362105963976523703099874385477604918381107356277432726825115756499023401707297518066559877806199526733127181363366615645017678076451880251050461011455424657088772175208683362753264743589778401452331600420144143914601085003662967753173436024336760620735831701403510951561720354361800266217131685181937403672089022631457775792905894198273716822104916276596618891878499043877752613584458849767813064331534831513043527411331790997609810522586651245475621639455297104533860994512232708344430112935959764285905104239414924194804515652325375382368363060504171231738971489730919945912056719476196690906704073909629881775054322862443683916978239959496817879463649705201523963432074341442837535347915171150208765506343347753700575383354081500583315026565641692379328788637369537083124336399782950631904821035345269084022560466470739274153878251421467313769958867579007916420413757118758529077772790022852269632530464781077730265322428853801321830966107546597642595491717582416407040789887140860990281389747604071264018776994894866562418151137255106885948342855373674438079720095311504987732545652222601476449662546174641468983778839606510181710406894728334628220728888350773702314686744804805102166085813391804901984183675869074733827498963137114986131242116035404058954280879088900579984060583430189343574225737856290834684339447088132369493441459873491505277588012488270816640790459113133127184742634893961747181781151178974954320718096990754669320885239126206588745822270562607279322650478590978002477683539705388000659598132156486713408165361855008880118154796065354906104051675349276105240342136308642232227018214572110483208620801932893505692002505717792154230361643381534846581973465967879448711322868025390774831849040120250306748974556847806672638533544498410164122041979402250588136414013035780341596471607170874213057334634599519387330880707606402800737003730602661758541786827168850491258370985612067782477952271740244596138864285758532832900372790753287155737567202857645072840301217686577904958343432130726757874795496176693217267997945585026839032171363335786705515383279775548085617076691257946904584226414010009516936460619839591169049666874596070705145708975812409391546484731509920533120821988090138050820874352220484488169769309956708074293926726971054698283511388842179097160179447974829024718634306811182613390203098918606654708131881895503895100805537686439619738403912199419084872845441794155709642351123592596506988185827668209554495337567533338706762825687489813216911464552755358514645679518562305720829838316727663601949666222057843116664000972681190327401968087742891929671478820952582190253241945015472530698798346343683495092662031435853381652759329040957122585124122598368163889374054418121753111410027072470500992470380979354074610891425588527124876246182337591712086561376810391093116391217713409278511035744476184402225672702475997980768199834534691275712813840055487205290663202341053387900746544631232072335532417643402240225705787081182193543023090771809318500966553609511443585584384516253974035438511150695581497416416693713570004519236458100102058306515293458042653214520493496292503595147998256462779525706975457697915892832296333989731494141774582795780365038379880892214717600472888287574344924843093387999257767748746702765396430771477855093934045657831596284339873643131153743694400744505996969947998072399433762045632136161619478897332716861929662064486183949291334345947694734785722969039058321577888447186684453716214007049131419316297502812989447176511004507564165924800868590224361427729406124292447105370167125836105969296075826956240813460020959906049040601285449114676012082579197772767735734744966601483942283355250267778482403168453990413685624996206364874700438882076637911335938318975396343843102946578196679270489222449164056350962454766570353666826137779566145523496882238040560188539305712751956505479290128977992066921927444203270679010886010341753800120285851942978768319819484765591988810125427185272086390735407075589447787117308323879234268333624976024326191235328265243339083402426381809661484731370625021765693945564914161827503292434864558048540285494813410672112058945564918805897903544350008296125131731419092139832886872883166073049792696189133098030921608553077291994381084030184571603760194821846056129157582936689508605366433580468159577692133887081010931857398107109070499565286571782863775075416827007849964040195194478398322712907808455336135761176611088199732062349655034591082028800632387703566395278035204655760484871310257291928970006718961789879597374714712697751472009812092922275484388464286851918502498112188362339674408829927842400159563291201777274859778521176383125091789099984639035549402016504833198498454624441954558645124736736714924677241066035183270125509119298860263032421794923913268681974007134346879221223233424746327357471637901777840465907204069815855352695360160468467266290183510763154938329511900352978787032244506702903359825078076449285471573499914065182268861291245688196885719751224380675443499827015051196115392869499567345246461749085958542519509452865144720207626934347640135423513864242900533606295104737211895634198003697226326380140679935302281041370229725113242151313273963720420762082045367633317504768349181244567056195877671850104305203407115038826428275938974696594918274281272881890712284723192582300386025787560999057365489813829322429518603788853452907788290970043746850177889417675221502373688712941550485203412190412991131984981923739385067341762904979927072491929360741439921752553747089366092985321966724506048131606225497470106073691959037558079303830060690180407384547805478615483598827769460893094579503071218655089137568547714394335529966789518726759389388942886432467782905047491802096709342018386432156881779571916590715233512347130389956878487797133997118954448216469834494631071531759730083485891854061091529137931410150194615048966834213117367381758452916190644709546883878214332970672792187994533039454426536411391441162109879624413495202259855006684284514513273600428750915016982435303114768738151115875039498501234496427459764830458715199122634773941713632484561580289337690396882899174516269358479117495223856657933760712464750804417464592202155147166008875912971158079029379169884629761590147852484456162228171694290855891028575562970948586191631066434889829886931459689660860760318943498963571932683049059293775828615290697105957991941986944577585562475451021045845588390581355045388112503455516342569185487660242041208258003862131607507439918559440286186530276111318254454880471519678535056541218442222054808380295466194715850046919899740985354291402690946427531580985645475571618264386586121793028840379478307626678214454141282363940672441777390165707070028704710151192389430263988700908128268122940660814274807926013972657177565213224488954863971222784345224132968415639318707672039333295210235214121046636418605213722727863946048469708286632380440373017619430857929574461492736960052690805931365940797391764575705879684084125749054759728078665327444728617914406675416839566121052571518662625197614492740259968668935537085124154601738638711483343119266736606258497543694636634874375312771206583554620361663057312083828421663194467676014854484109794608591301814646666157374251725732906023417830777616198597629417647653359725570450801454841107369094770897777542779238056775672825262629482326355489048339673745602053103654284364927411739243743741929536191296007581326729987547102893855265686878096871176550929044988913275146263739842311071658317095638209942538278535996793363526616624175569975453156252295755657960087302618936502212409971630276081168148972910251807705847122354550300030513321948803768386185708636270555810315909574447320987244088770918004457849186926722450327926520626788065829176686725289475103939635784077114259814778085914169274019881760368913585388766810999600522856450435246897839923151392019590996350552586256189352440924955507639837742121141121644699947621597995916254688830211569261192655909047669648139003851258447263407240156827942029360264146580402262460191506404250757817235946910727060703558736362197915225364909407182608990671308277527024943348984771650513982214321880574370595964906838894273441285942415739141196797789163600764175411831190686132973390476763700125567042952891019714430326580522666488028297260348989848544544123383238839205259396957980308375196107507603228199982908844118350343377508494161705862196258341022414805722268950605335206772973118215215576382203862273031926375361471760255153600092472888858198987667730600605883140169607729961255387282248605086025711960005142896591742084176874351274841964602724828068899688067914287406012125348323901791956040286887913607787719228304221928761210100669808925935395288680922757869534502540012866230787651118118887705378787206236542509922133452480760227050665299438125605273681053897247087423403997783403088806800985840279598028905211013042233824489014145626312193388199895596515165554036448762954020234764791224251804371653413880488977288712642530949024957953815883660764202447818986988692911732533097773279779929117216000739624055626167717115724527088955542622764938530510691867386520775058388110206546309924154882300402009247368091804195853125617049210181116552523547303918296889611659876121223208415781841307678620466323441760103080955582783825688455597009582729658388844923813439609906945082199626345230360065036735330054261692482680172282924991886482972301533449036710229158835774181709915622178205568430893055152559265181950725161837503478483971392598431269115051380071059250280517701701158108237430444299415152164285334925543224535607881050566843561775249292764492204485623148699779498200955143483667300755783003180509354300412894367101021940030277202092480180863714189049781549150155965568185306918686491417100186525874171012840426587644713978554685236613044533206695971468791809690001259881693856653308945498562652958163012329707408310848001176474210154842603997506975318584497931687304083878487578815978167396883099675005205541155999792656749109877097260462587311625193171389792371414513227471964273212906366660902665279515843223426084352845245065651203670993596624598988405566408670537391126016352436472702404702977551435659429643043940261043847537287265427639064942132116089488297064472572238666390408627848787150032019139596660321032338440053400739452574248715619920388552280373001945501797783997270868020478716247635969965429113817947772890781772647605763017250433102223820538582874297833349839933478569683492023769756591878616852323566296733559822383955042028266623369397150102755818989975953336693650546159846352071731892071747181043360245582174422402038805751669679386014980973325822409900731969363428230663636156952971205147107917164015877142308904277070942514140227907831900467588721439824306360147911529535482418183944467237168742434116928428593757856716549094581084838362586998190442555241873630319692251152751379762271852522371906975441159593813522317795563604151885871338371310868205204523181748674902634857049305136554121760489331870704392113255232527628529033161288491251855123371235101022564704626708255914623260178821711791460421711645947107814185083408066382254525384650388966113373751239890764986504035207143193937529159757141021187374024822450937588082188465745294225085262111218388443676143840979955407966893648409345914293997211732041053169158833263539432872951488840543618037418942667936499691466310107716222442833599937394054959601270317732519130086410036868462439686408205962000484929944339648070195509094379862078288512861512342992958674343984060367927637460338189570203307580460654491786551920891670478183282581047315625532902013126491328326770935437763434154917716275319695061262952165154298925639695879172170097723629309230589626146379044199313314886298900962313854907397605739103399214490939682953558686570488673394055946352166103783973812467836687670918446279804552139319596197586184899183813809218099691144607225538483648969229112890828446966315324220441404981744699525692834031734930712196357824586406256402982632334874068205193745003172052712078608576126415455151137312177126988257738416782059505215074830393455615906435478519625837323375677736060306347373106021481274779668563697146527531869206498138605575581337661934407161771014848960916300332394679352490894904474812369765167744689247646364835361806700705995242937824304325879363944688202130035909618698761158064383057764752433122875139909431692333377689665054958035511368146353956247931620633374896478937405034006946369266756427368775974755554481094910825301888712380443153578694641783415128329004468225064319733990055164019515474510833010383250984498685614456860661562698901244833777454281931990829159204828160511412807065662063799583436257950343542362954408964619012380314614983657554120479388207313220676716745213158634347687229859033334252247822919557108650648631250729186372664225443609993367433836142375657715414146569015560481966003890555772936191056462756495487157625921747665497876065585492873242941174339412911988475255363312662903302985735294616973912165433467594794288661981061144445874378237571909963112449393066482627615023235532344660891092879599589612983819436791824448348617650986726461559704146221478264748890892796399952217714249686428997374702140490530921978466453348056097168745110917978902291399581042294913822473461024399225932634731881486105264025830915592424635734520706243502675242014842392955478456333424414421490171647240596552130120582033046413939270428655643521524383225491227478308268234153681077732400422792273378954834996763152600579412237816304065099374810112727932704212150667247813122014665437327058343802208272295543564901827863616440813272615954495813031621869648951217685662817583549520245580129192371448568185908564476971450487951131787887417001361022107031019674424985023264425440666066536151535978591993911473375157505414570643655427144931527059907767627324487866395851315430544392232444194083692262145032453714894621445537986942047152640566514641404317021245804849482212007572628332608032027164464384090257801794256574623141206932012310991824302364699605962678760547050596049102657093024314919833938194164742435447392205423377614644551698562414877064951079828238137151841569564679446596331695824229165033412953715895489388779079918096349495957381944140615282535414086586903763259373372289159613467284596872076397279909112204907145366727162612673067095655002126283020314711114438548541639472313924089415449437896978943387606296903533994146597820684858257100927215840150215374794809397858522945217117977520997188980802964285983951979639706786654818523003600640607534878626267524612345563381385489335412223237154065481325159566525945511637663210039492933154908033006223416572965036264678597739524038705567378294216278262861861315182723582284349766964943543849386530041222848018068625440383090438302259138400398046528477987234645666899374245225695892956252647935357817557945748585782602712460661989121820618488748749965526893392845809041093960482153706307908744646024573955851408062518253868391160428407032040136552823945973203096813877584143874457274414845602594079372363338821133371010311589854419557483127928215110832026299284767375688727506639700225848061317402514543052412273292313690692048400752838483958042120899854675821175724618368800035954044529616170274901518957767595709007389214133140087865512147070809231817087586413796019293504320033702922049785014009384254565903891660407474820227242762800790031660269310530878967345721312516252727991047745841886712227942438298900166725438292753357487666391647316119469650810166319284812255835442833816190578333111358653536186446338605173347675633858682562435587186352937854731784390831864226259381120376383243494615921656629142150567484331339460505200890658260922054091239749102420180487789914217257973673279625454310781595275048220481964042677506898280249756474106941468473489252312128280362104875484292994098798441517223357049900313487999936640543908842685647262291637550383310434235695298918225391770809690442461672190377893301768519870603154221975590973213500842347429837335033833341056977463093124670897140532976156474578603449424212241583873791661894674208847274747588535463465273615655275881127178124178439464608452599378784685044189692994554032656838860328030785839794198808516636817652023846250289431332895687644491600956054465192673069544581500228465047752904396874441090790651085291520435250508569761687899062990859181742759696332682385463614775621067905148520644743241703320732543181130593754137600293689158764267784499855393045040673448135593883271551201446402804707178802833614300362737800389009262542286014952092967562476557739283868560528447604107787951334811767606382028277871468896798882391403611434537435812572214741937853475804103552709832070876160162543245500537415996493386785695374664911147562561198026181148980244920023940155953541495965749836944904591100637328969297370788413648747387599014739085184098935749070141382147824502424418875051965458675731118521081016569754281083464060554953933627429902170760427656761951081581456893682778303456918531998577661510027510489745357638651267009995010158961699295479473859668309817457879715790728114490334904993779376912964743959656295309899499507014680115115560727451261520200669425440145975722487780856207890888085929801615950559088325923330419557072549447612580339551592468052283946704686774168694444830029950903244418791624368238422346409559060810840851026027827308008058554298118108677401838076489723993457344759751819256465442781201788767415214569413156595066171786594993300343445273808282867047980410956605548247978907072955293092954050835053356087714815702144115904299865033652889018028956146875809897966842298221121726937042580429041292965443845955587815046780824360938848212838451094139951735857575705655872227019797308033450654268834680145187389528779764361819697186035543505787382118133823378489609878947446765740128620459820188690186180627093535082321213524662124315366082891571264132334799818231905685605701048903250471689024886607885835104761716609898554382207238951043626594264694671912597337430957378410058942317546396501389259147642354213233480084947806316588260673377760212400971918116743772258021543884959132278430195413514696512061091908217090710500124491666328068904164958507560611129403782824670056742423930807100388730795704437925760618981632963373529850707879195225703637931212138426404950756224566932443893479479339226549633620464764939976777265181355006128878935636950044578156497053635642474697131646096325549035251399264260797949647475985446445827152346935354990284916592575881729329388322838488763707314655936697218732340333908680118126876652776438869483022604227087649355145600652469308448876086081340715689737577569512924122274737024112402314927207473134066964037548315229993220493679593981807830629649631679535387007241386354009099819947653790990179331600827044869538807894778935191749548454142177103668477785026722735168629258604602447717303644315925927534671863288001298907677374921845455474014925073931420019081696310555942375361888677130989125314089990222401121233698550538087940187978249431238296238162250509669009528021750827399784876923720705005696619396545937849278348685925601946577697034643726569131498503384153882351143098610640683336960481955558007311906436142398929655604477551847346094302559437470101801539889365830605760874419775609473546636581099138329003238128210060124436852956578281947723463384721329329596614470123232853775936245476739351627752877331033303918527175002224839905994071439781121454301485276829984018091769422604465907568390607970168390021025023299029416614532378062878190067778037429146347338136832990294378415445440109364870253370501756417824893488353654704723434384677862537485725888904678480911331503284247510729317029378817882871197815913148783026165112035640239177705351255141206720562640386904211869663789086565441943489897560570662744744809341786249695501869608118826075442260441487345170658761942674009094926865924935665420099818224587210001869119412524871460863994092862199721586088174493270677404631291271742741543728100710449667335383074539928654106070244595742292990147682217476415690725947065152834863759642047974559685569112998941595722994963549698687829823458935849747974923071290149141270039982130845546722140536682850350608269279707835925287612864111342473350226894348971190718022868401382315822218497933085449353112866571883016697953868044679917461721890703679269347288125606824731602706477198409798528083750544512291787462088376049764617685513460154369101211287023148224031124053591197916896973767488782401478754295378252034788800175922423805883017796297802191080977049062106948717977349173686351516884440326219914105724731359908528583243157683428694689404135225487903288835671395771965288204879119315159788271474446569293464456792659307559261613349265035619677926956520386261955872312067813896905263583412880289565916023492709590576984194201567437646753916755174079672093366606457220724881655292267150109809583708334686339299388452542543570127572787659942429603534944932293869984714501087550674551197198255583657157995257090706571034174006407177283296634964992728350954487139587539789132695870807613280439422357290633183610242042985257245525833157243231624500383741183259970957956180765982355809404643227881854557587974863083285994655583209096337139013951706599012482390685747716399452977730293290034286851656959285652294861604156576372265175129037576229216736254257994698151975503814406145782550574087781025820316045496885420230029137976373243477233289605118593222114775335648874681874651374145137087014783991847073574792669918307305571858308441872830784347645816268564919463861210235478846187248785205350630320015165387052151787696956523235814711223505575296783150667597488952362918492510302066004145168583603823871066426880586691184168666765769644038095679310939136969623272701703243310026900111132546801300636779972035541193451564866647314695446701833945626305731604947037991288578864333984186069949046340677224908244481568267228433477378031260373989333521939222814969587976155520850896763920992595584382154914078058537120351896174254631454499045172110835943297525487052355379802708179240935959801583723888476338518934318295683904605597263977710055674798867882661148138582672073591277063462566536255493216206582440540389187437315721246138558075090277731473579034096922764650483533052618629420721770681929481787505122925344784973462906288276403002758484646024064887772776200687038672086269792405521326718364757172067717018561603895226969079843440722894113310815873192427717479617849333194037562898246479831979214285600182079493947178293698353841228994059623326180634671670498163771094388054076444126258453043364593182091162173324150238434846077091562695712039756227112644002948314445309730671736907021070416774522909846789838599597062132702317580548488676056055093857334831415728072443916213420417422284935820151595189731205373610933935453295621042286374522043606235234990982423464590501340071724826588051820059564861616195699263289945520145970115425734173501040406079539017480304705230592167772972498976050314241097928292229284947741403640798821730326070561974685833629576611774459572303989563371611365073583806021431607311832246220901126047912644689305048657676727717910190941763612316750956846887713443750900761708927040513469449929209302639968009614606951925369795210056437945707359885270816283350273448639813561427875478658998775669724102132277917585207198302194404587785567737403591203401508602215695447943869983641422973363507053125852570793328269689877858954818082636604239211667692245163135756683634396777806284581127678073750044207053413956794331044296797713863490486472334488257822761514227521044751797097438857225362618577037740616263312286048526138469287092673303082192745175103348301800422256799896744440003534523362207522907253411697678204412525087723960717324686906285189502643343631223848972909018460628019083261516365542368838265182257255847176966786568725927401859198573545909514101901495642574171840712293089985685121862498125576804556084431273004720974124927951903971736082984967021068960262883447807155177548817717553193824022199391287413526871830114018842361172487056990441727065165558601759409105193302827700426052941659059193296995410269849044576706921736649024049541054003028547264196814090102385524715149593031465687103585082015509188245649056986138577207711363356409788588931891108673328345629191935428745354263960241110637599576582357604806944566058221143062876078878415710597917449741905754699934415646325781243920332368099773908380252276610801854167534611633876860854091607510009244461436493575068083870347213704668126033029293461401463788865007539519476186142521464756072123892452681999993620563955540484359292465691363903354427753638755965185778507670514900028490403579142621883295426847199924212631794272379040422186279179131164825437669221240545959271489922851462170366079805865577777427975978878726673494073488088409123291184820774879592498955160001483768033542448361265869397380797444016943079961380662343316055440744673877628988119949722851564667725483072904532344099287808846957557669986714150849084336369526278609393350326667457065293483269298662783371534084626215551177130822890200224529480772726713747370574390338881614968013197746085203315183130910925071343896109468732873495698082248301864979560981868295548331544663604340674133187419361246522722957449524618993414174508476040919802463004665138450779375341384563159141999016426114840588796483748077806007996308705117851881033829161939306940831573283288783384601288038444253043485625515520714152306101510407407334914895575989519583642242735392566696454500971551592674226477232246128236655888191729930744939807858258470562818987891132381426533737095500306460285074159490469639093458955673066409642037474735045040376280588397922900261036798362259065267860505171095993508699875884429704776332008986569872672828386630615553509961515070236505494005556962187823309525533145292456593309054658772195403230873914447634066510930431700860716231424000378642777474113149740863632707084358001865417356645436547743943026012012509469755666932362695467717395899047417751011487935872633916825251522296297843570844555638656392638505561860831990328246755777961334495180401919600128041705240580092820709568005864107408884189402428240661594006076849731745250033609834560453948333649225989373159931599745986280825552063600590421783252176537186945813549600041251875157321785700584495236126049421495632679443197728001326823259708691020255507776394309384472823401243092850112257639382007612172914687471009430206472885506601877552962304530015760076172524073009600417421610411857719235895052612560412399968943994061966893643554668091111632044890774697089330401930978574592198022564564937342909544163101352271948065442418899099383854082926924062241986119960633044125130571151819048639008259545026139479998729418159838218646922145747643233997482008448863907466793916551940084867046266963933168013685380957359590083066571815223137868760564281064513657672088332566432889264445332678038050828602426113470010818768267473768047120788464754607520235697197231260751647985956294783288588882307270984340214631130953862923153093389199670263381675136317779600492371885884502543165582149040031536348876297649741934460436647061619222193914632584741805120887697077209283141154534233398429764334136998494703485437894550609713561905297354741006061087209454940418833533868424320641378123818885413497980933658585266254013688311387075370412039425326222922319079817011947877483489948009489612822200839646707977976696226291562329297256782356984029816206573076172630782648220051976068478300364567597802331797859269412112924537982164959985241173634231931384538218449490225011143045398965402449239810370520715602599108517176036547712245243022793376535338957929004474078265704920340306988524257818667103334726894034424083046116871421309257819874914536913070439423859338641496229183874656923750472393169604020280080062157647610976410709940050048528351418053655194839428439814233912088729713813130985215681706083689367270221136257533089324936193069684039346584311521129194447245786385409079109366613453772958738451569346956423864783033674251464111547574288435447926000092553608131458494107283250440978789511715917007041158045403651964611649971380773532387479041413807005358411938701971952963288647888385375185528480071374853543185728378657332850015239246942974496301422767068210181261466627935804789294047245304643579810900635517440825797970582730388229753801718005925218618691302272194628876358771187915065282795093077360018497218662711094243610426778091181124936701853139426520088218803320366770538330733899868150467692520257374524857310930114386512921341662690454878615414574453509810161943003876491537311538091182080463935358083469646992961741122641033443474164861032334333775880871207421396565458252489410860462658949521912122153754571598051553719206834292500230679776091038006238128718933684629880898676171904364509912014565427683401535007917312481926975432279427055134268937728883044090309779472178023599451690003388171201993771561506790982805186415595027853987128820292685982968051344936474017543524305098912756102781618023689249050271576281236496017019438040416575560244244014136218248995841635914112126246792219500414586355828613010870690139523435288763310683637444449482355729198292118484531982513625562962633527486973714112508248673129072437736630923045158509331317011160169632135301161066476991062211700230358473182161316047325544260464050730435095745638949492828047047967591456782547697907319497392967286152567725865038689275058814713922363497139409469425501573873918669728466585075408867961351304396060955506071679522502531771127798329094487616537822202232232632453577486887046682833062039335816423911248205639170619626265811829454073145264598820678431311215527614882893181354507408718811583987120130844256865416352909242256730874899108605850016468906633121683321808334319291812244057103449715727725085790602862536205518681462384948615327492779038636010793452046649618406470236526849519734703085187157520681346533780382703657789167909934740752290317292644766497926465668746380744041363020297291486001053649262904338940947594557422498432474981999507519564448507740078778563477754952792891409338080110434995866805311846987775708953620688309358918400541519433315797785616108785876466951170616899497524700056028693764130986487520537336678057736313097264638690859124291708223612784533640568857992494021121839761512437433397693956965786852005937506433597003866819936582516623325804926198382428409700242981711642259226291524405615351946187539959690821523172002832858020029431321411443562618340415305644914636832002002298066289076291410287292205902653020464921995983055880407513118901567244566471096501825060088830624612668540237209161100573314231265763840585429578347518530575759280698583348876839046197875777866236417978039965409197359992774870115623597764011054103098937597799339351623983318689643291592980708923394725459017682402055340088359055018208974782886420161094537302101983846917213893660119603452218149889978288092854745190262091012349161358353982193460433157315296297583076435469737371526432835177003460500874433261645531178203269774122912152423190787277727590209998030916177140538236715766804080267347294752499432511445485755573180190195721260160903896297076651672274635112929931072909517842402815734217277036222772692601834531335237055562379812189996664602287137555959529970298479969134036977650918096097577313246162206503821643461447550612821279647233026010316981453525984359263137558520058551810217341412977579278769647587815399375766875982280230274072970328771673880149321544709771039269232058218641696748555711876708677755150411816122804515197055232512289987140625182681593407403641178937551554820717809355849995464584630390885454570774525246845955387169710467344746472223656936067093593362337592041306490926394546509649081505999688717276720303497561259669548566629074904242671037593328930903119502902234958928228410348666187561024938573117331468669314530663570486460353012196014795786827967229849874302558716058398773326178912177926925398343582031833604737135868238973162311156880225485465082561511784925511469475802008359930295195206709812077082103995194647052012656787661741147685236333207295939226814369483045152525272601222834407903698159727204193812502469346873542570865746017172362757103437830627526107741110048304348666453729569617087223789842578202841358023971287987250068602292554231026281130953496762127496923524650540596884836202474919562431782610302356802618038839548568150088396393131034623879052211060431615052007982014612474682999327763057307300809976509609603683533097759150211047860989873202628299119005664108917955942346109165046125285904678258366732452044880647858207687661514350306041358615428384225418938144993415239654141059480462646693774857125938300429325040690508049613331850373512662125643711533498861169742590523399004924439043037656179747435688614993619926254976143203291023505957223750465507846437843317222476731879013597572647445141676868337797526431311216596255691623601970338718108666764261333197609254672057950285128491753860133780503746081443562954576116707770107200690046701854886231361780311890351845729649445173884791943977029991273297212180653099784476925361878035205433680617685666763395881108132412062834827395299447197013268175387605686660061679318110356674584646574640356463500405250909540957878993154923737007243792132349197528616075934861917483967337301358391329828104329086757079096240963172617738907356174420615076057389627096440831692175872121486426928622858699835294590054706064018874014904074132920773899449430687219107217768172497022852117753075034738488496736697655522826403462390445796416086672497227391866116548581898105135127696819945835049746778660077480546121596362625713465670749500225523864532548520514240884577296376159173133123877727911294389933765955408248674640971333363247213267384244347515023507452349229081847483562464822045896442125317733632498725994773040922392349486183159744810453267241506415804749120093257772439254200318737052842824772598269227466659566840628592654637391122034814287494610160602800360346213794125964989413922509591094045963016573252859456123091926101085278858938147643476853243829064502029252299909910740699258814801573720560177315009227517623794977715013480066804062226716954557086269568748611079750659452687836732971023491685711351892080234911278619968164350353684116104582337228704607814865034826753793410534637349885922442501735745185225075376607158312607380482839046373175415021247713829700145181825056009997537945013063086573100970009900154255718223655589052513424003434032891435171774107723550357259125658204419813788682595342203546553683333649289469236058653013954993874993108824631387333312251030874453846740384685608103478696471071114934002217502826752600100552047419332803437792409146876029476286003189445990879193301304443587619246072068956916501301403927673817015320774099726413216357721277552577270241378128574463320429763519770873266812832879478503356979280320250078270226902935116419463328661022432923928902196545350263534826561003918462593993634195001735132643000220601481285068777753642191750240075652558152016052706150722718376805918673335512596351513946320098355016158062112608700642471520169115004430938882423123120072989156340832106143951035310716070474026737917423889747773685752273399647110905607955669061407628798748725652762481821015172590676379175846752858564385162289222180850596507962862896300550721718262374147336026702899129669007366138872896074435349128544389111361895954730213672806136609715649102472508595158671713839136650081781574672567727833964920756753233731915951721074932514440844366396938670443471618775296045548394452919054038701264198094227544170070804126315019214127110900794950867747204656464622280573711546939639284025677037654089857454257804268609468142515744308265922567053588454133482709824641805787560826857687823343296785248105427650576134576957195741525442268575468647946453451569546406467364967812673863535155867427840189608189265727023158132663251432267574097081508829091557761920805777174971394494880444573056764750317527861739394587327164642439137971143615163056256763626170174428659492674105296129141901540270571690879663367939808594370167623002898530327118704356168757412851271907118284205544273668189933567757218504782555976649894470867396472370388573089993194493143473345481081465325113114030282763814851080782073469797733405714329700733111150262554965119319530376719584420031271685756435257163589508857844279698021632339104374812415768340026236278771669522181922006880782513431663713220117781970840126188051572594882249542171758690160758429476974422267147346591126354615123661547532893008704061458244958790776926231653572757520702471538050935149448374410598179678748714292262543360066319536110693245135320637964223706544137389326019867158479929331922667115001010395417908857988973895199309262260149756271438508365798078220238949084692210430499724143273148213368848719920685786668557230551116784601290091783873939925838466738856747243741486353713835455529095343794421353958385105401224747047471718540231811668065748319577420161976735737220921256755378805093776826933754328861979186016855345228662939423376787347138720765439895181155151251152968219522393817854872438993395408556402754081804593761308502850728670652629873056882592924650907044701599324304225393379318492140614413727756965570723084945044905233141000496386054001080044185983147630459007218318516949592089479866708958565814110881687726752828991398560663425112257442156347991522153362347442095982376125029599655456145491197730341478206529333146137547968645910210045330358569103823211286502255539791573662935470080569735427523061663207051055532899396942103073079210599442610860215581579899252559407043238176056587486327990401725778496134412601210875389933947116305220139170846648012412118581151809173749631895701447780933569973154100699805479669859512023872408449582084995032161441774964795747687733462250913663512743005640438207444940598495608379401928760122688880221922693118900096195031891733793901789586610539865651775887135867674749115832012190590033570197087558660814195683031652347689962254422055608260310262654716298471222637792948398768165143398629519891429315696107053457820900357085562881876576630804533170593462514673314226020711816769391641939107089937632098645487247037722837267256009706415261675470086210134290796360687043519961848753177707103521958113642507750139498647993588966536078171357910548368073335108249799341628384637385420286714950131451993897738809303658557121825132065948076215190247298892651900717240958584851136558546788429801998976809573747910197973655748543225410352868225149994953504752844164546172647609292815375076094884324804940468583142625564221794780795218113072613392132812417828377094038762616945793656889902304140635722037215581216773622973648378912567955059511304147944166564876816336706517598476256276290240022035496903168408084263207038156417366518539916327186703152534858461088606839840126749727093852973271346191616534083775736166817115432839981266226868444564339741090523265905112350180980588999131817595135251729393796845152947319948529959217828325138737945617335712586030320952359738742262210257027450088956207824667174742540201213639692063490612214220088217890310925593527773054318166698891292928382192688445350522339921914653238626017693441085662740519401898162740199952494076938110738851445596385533204909828237940318681613978458633482342175761748109517453733935219387048633819842668448234601285771755745870791600481847563467906998317867664160636042210543167722671787359638118572714508353421503384274578866116639770056601065855529545976508391261445124462637366050036287132813860579559191833919411016109774513885350551111724584966044413705072600617088853176958595487910962226157809121516633232723330056195282781430977716738566279568167533926722015367748046528719153855990808871073951712884959271674435203603613145950504363764207917607710724164123633704413829180012027847704726710727984660469651074935145536700627171291394997145025114184740589821755948921571698864775043354910130249122789264391452173499232714372813266624615435973189017500241689656759549844515613615173039243707995838130334735410607808297279053151648701221548015137434648748938191779204198155222687898887079340233903910633145308301637436340648752592634238777425547202198797829001598209428384278385030397475209220683525695408375911549860494709503273049421234739441383909691467586776455081579875341222471197348357331733453598455061539388589937270632273766508881854384698963901063160734271509664589404884344268686488062972530789021818477104940767375682510639183522257663275163390106036158249764754482122783607707922689307292352442244366034385427864257500104719766151248531435054748561008271144153699922604355273823921243485359479566500586824908565473479570486414583911057572914140047104391164104771870714396121079347847870689362727676831978392550694788017471678542112363159061646097211266090314154068944212801830984703601322803331177979599700521171938136535386173581418219831458427527833584828395442562286235103017095824963835083484037080255948583838397738790815070207210004924859765158409901988959185371235606740428218598879503890729640228282965345860943369790179568791743637312694448496735018314402661279952684265432940309101465581631045061802642983895235445295295040312901518568668234232291123081764958963867716021916487411165300047886471652216526466681542420410916558256325044199622004434242581265677401725724069948660285492175862635672323133840306477023800584018365598210285813693881500463769582528879890139419063548272713687256337301228601093404544569750701231213663366339774250081555910553084144316787875635508544467676266669805409817504907370410300377517262120010072418713145993973465027493729269960239623158085701850475233579296958596865140209391503594803714426961505886144325575493511013600228710447867897013878149655549773608380366963895586380130344265269940438970536964315373241286795211001809493615771443273099929299312998841186514461032929472508845376074554132588951879753190696280629624155084513768103186882703343372289422452878821698383581200748238033463621566379341625579739111559414701816365944937987021997308243312917899701718286421268839386247537285400210756469676040280800411885877185192388017716092409740782477371869942729849417862362975407544596313151435556950857447827319365666613898276525153464213638879962803103941202264193710812013117544364962966136543027895101444868284748035042815313956607254414283222613102843820815612802165523919902485119012942211413917701362631699649454791360439307103109707638881362609791388689256104560738196992996823093808409593608848980306135217001653702673668450023212674057404943691436277940113985837572294066584262427564998702670153320848249662862410563969766188719037174933288738743477683018576881063023019087628187834546680014641234048104374197979574643336143189856771021895520825661475642939250957976236586758782114066527819675471996581493198409236814412789642117322635463626283003438752834712868098240827437638226219996558174508538153715611499226920253426055100613381026992874068841853672396232544644101260630077376368113056116525506397340028815568492053670391473013375757915973986919021740629307117883879896726163319892743736811716122372231799724797519771909911616157465630666507423876348831371419155133550165178593449199520339938141079382796707436997456750842755909217782994829936585652655734179597941165764819066961538357148434351112485971277209960929574478396266368476649641343155574546265174955097778097099374873560971963939747062936600776623725458768714107379783215404308039191493760274404221556785737036899219996876729487249464212616276887660677387407162923403588138311787662803702076723348909978157965888954644844326787854537344763987264125610342362078951027540115256072148494875851142084906463231569569554262164414278728878231588371528535717891837960420141823887053260806267813931762347482616966993423117817805942518191839732956610463870434619411508215529645399132794873675062330888352090526905544972610360591487793817923669133446612259044770231181085530663658725789609257240950881819024763030843313083355472650466111692748254340510266475926786305450330834058043304384716241471829659231109012173279624137349348540271322747089352178450608393309763498688513455691137726015945944070673986472283104234921360149552495953939603574993484589493077574079864346924761454885393774806490954489123898478397914097817626168167685000999009132114713900196839546092008589585083370385454716793846907859140109629092918072996544038557893049296477496000853980359234785068495010857227620398584140665042189350568369922893022363134756727386845979420209434592024883167479165240960025401228900402892446564055793313764867838185194208479004441533206068926396988661507552478589591569089928831661263525781488953640708856444214729442743414460623881231286268971699162747796383176430513290062273321925998737791520078577989884500368559991126526482630447729967978774200371665495338311354890498113326736059438390455027775874207842577899379330327228144640254588578285391176169748068487787038201353506956390227924080326569048124485356524617174221067151576164076293067454051212743261787498991451495799097365186288598262617802280394446107344650821312987843338254813702670188078878265710358082948425338864887707529784850567368788030012813940886350196410587427962669216621297319137828800689132570922326579153191572594552155020945868928510076203559438738141148172597111544435101507905559603095902329741829046337822863078855832034090357374063555489500859666692819121364891858630894259335381135994104093120250577298635736899666483274301959831692961393661974887547075662052195428744718252967151050654898994117420000249753287948792463648233747075672267945410624866557989633501367582258315790892064722206553034296457894130274083116976863939615201290059961892746866444237246224666966762320626273956802232424911548039535819147808757360914046150317073688403504722197934811347965635816110487405784445180260254839274618070629665465435303155372692910457298610338962771275199290223897945827890858873577595570296968222017446075392550767307382626476067149469232047794208339433499344225783775500421806864279344497462149584707286940881276335485606175755060683851888819039302005253526782623459272942743446494918541696543921679367897565863937993345346751825409935511976229113796324452545468347002180164971969239302611439888305422960780040197722160908555941380223895466334625692868650216950226763382689817928018029845498606256089441149416720303229373423168368443809174328789688883105310676775290914242964856254598520431290627511998380816504571027222393605343861083208946052877341562874520189991263018938674924883175851858830191035345410484417483727938660227660747392221872251867261453967316816880190500106898195638214937227871180546574041735971282751748970086311227466156580338992817713748646195055854760290526761370324779882155939303672372851626334576858341467639418320416211660042640704158982619949990599839067815274510645456714606222393924514818691410388119002390171078926108686011887649616989326160068053948766024757634951632971642082679130481225010606679369752411183461928563207615740541194247575839539439987770260261388954997768625872552764925288557515470729991120179132641261856076506754285619002795296339404922408060758078868085619697678449631683063581306298837209948608413516674055462501295446164718064640973994561565512556423917724829776707422437160470255614318961474856919986184320228263931501708165008779206388977869489469820826685408501738959605800272761696897891283521693719663706324834765989086657651876718274346398176274070861060485237492525000316347209745455785376662895279204211927127444001947074789885057746097951639823480845231147578869832691201517374181916248874790904265149513457834800016841939959578191766758250143771130924862090232803532778410323401609871125228286652317362457279139266755527261404245561427508297671316129930056573227682162091677164444349775916387165160514402319207389413706428666329810300105254848496782246398702416200932155938049421118470048236350277565876161699459962420498062046406809909146735004645181366515893825668016457111174054146647235419413807265594013038584080080073219945858143177322758986190387461981299296503097291905399918534974060200417416209300442758883859308734683004371903294728178550731137102522128624653053624859207227204872816248424322860334878110706071794361151918681136476142689040684245383531539021410143440317943949235935159263914629294996544145391739350147298923379733334648177605705007531775435508296019842502875724605255226942496974028590958750015359315386213582843319745157335411025944206696894951328734794686242292528962924170101405313297335314695454036759651996541609815493934024832385225393302881685119462745101006143932701755520488717234382136523126242734995792592465864263244891751771747029902714575521910828823020690927354158841280858285350553963428673218650740553923459723342302344099312181830315069281894818016817451250559039028167611675351562446374929897047850847047290079745151873840256550798967386533482334078095141646239299049104503268496889440653594712026756730638129349725730136676798427410393357607671244436067774793330173245084403965632095257381964548095905791987672918307645678315712326872330865890714212080270051746250866874382153089248451225992753684073566513162912953915604098541038504358341180159672405730509608892995559579016581516611188004579942362206461826943528721016723522074301543394359787888436945041693415239946209045790763157156980108321606976599835733772141105945453179954694787833265278911802045729561479821181490430864937503870937915350786670102780382214037753180115470579959081734554067211659133902579839876745085185972934142175632773620669588757401026291576259364155192777475282972156777040942171710678349935408332795053795483660930248809486915419429907609697190872735219689373557884161877417229178706737138751349468527587311664333103002877435290687044789612962860424264612817766430068283740266460131022164772589039276505067924379311276178277620035436930162573128275014052466396253924474212704615970753597882073919236635428467498896061859973471895473917380666183856277701680706011535262378149549260040424451897203688188875914541224202512575776337408338821960310417137969843535786867241915150034668572234529429897391316523183905993072463811296428066653467186186465472243808365421667738561902107321845181158600198977445669714423665900533653901892369386409255189489434929036241605267673211457774193083611865749665863688410763427475660996686233647353682463039068429001127069305481885865127836702306919118953121828627564098242204404286482997714513159546318402988572656568844522632096888962091760182850700790325917111215259490819775890758883220842808744184655222980613991699388886635553109074209844133074686544443090119097603431852645566086416131669991078551738561251492937328084066417125999894150180019059759471703953556808484557263481150135134405418038390246216194040220576793239306924016619942057702974638783248617817219853122233611620539148144868401701449812569942313207148774567599047761707048919624159854087607741176605170858251066989948720623167328084892248537699322451597760510196298488771387836847131991032755823001803839522547084327834073519943158998140008128277878977120339557055555396971725133939438275526244206010598528188846200128515325308588267547089696099443602507768537691501460537751664091504235176241027082765291100107307899032860775063163404876183703354618147160424136897551102601229490055491781993207465390029458574278291488825877027187887898516069118969829661627253737470641995769832052092077936688601420458864786464070271617530544877669079032014214078431180245902628589727261377513762100663744843064724702879462168297213975319630900166087278755258193416846514579156076956766385064792430220172107353799743845990893972286239923733507443724201229966599430606493505808836457159508062869259904437365234500559474208251819534585511996581762423226023501788332278361153965595722769720338367940598653751654835778693444578160743267553509429373937500101493389840896106361793762877763103108262465187196311509355936639324280149504332723793082472169265502240572877896565392508443883568133979652501371853944357692150247801484070189358773945437429676328485538391324623172578640267627646810789365906086298338163361570080776917194933285198078099470575266954036981497128835089228431733403362746992974783353384963541398986982340521090279763209739652335761062891381461940508523204777227804756404967293516278308795219848760854399617963591899796830487586389201245329285898543325462080331833892665056568928050862502016586996604239351701122085743615654129343784637899510831193464949126964555482267816773105822479492487041019969110135869527314827629349080380430223390547218147417120186758468432213976072983692947731718957064423384435430143983675736240922914601795200128363232149984973752952504328276768687120154676989021902325037745040317625068091790383570423596214320609353549162073682141922739577595338170210268168586074741481311445716312052989341402404552670396545306057394311240715794268391771868993918702606642082318375917171681696160581520485013505063214114043220722245988796316476863974840761813011516646163234177183708382703564962665615383715818379740372819972676410185775058271866955621853712599926050494413132479025344903838867981379588247672337947247379127315382781902588771247082002790526655727280660632049315690201429547910193257247716864682489863613225690465415597970304791796532154693163271197243900600685336328929975970821294183307327500975996566252719100136891364588210814518187234625613442528075926569989513325582836436611531677743211457918272264906614145369524729691849446869092794409428868048256585318127095228613597725832112172279208124563046468631006331899572186594507265227353965356150361411532386986736200048967265350970358227663436741883342036364922550922448733928831738153029365822899731968557097239087179641126802257201138990379507098843058323024267672642751944340822367635110029074929453942529404903307999722444450672893145208046236496242989023901719360297942629102569800503742125970396558108803231881972970566462288864869470095132173442971972609951606916177219097177206194735791378115328878808777129809495729726287329210062119551061618256829679252415250886382218986530996792230753911616832138476941833395841806484401631407991084216514626966522394701272668440069334557075516315064070698213437601011273219037242382198034775873760432488522771621485728275700220275997146501072928331321662978731931744519408832178403311395309414431636901075973379655324638966478166029998693261898109421768876286475360649812653534226449864774092027776110802397791457306724126663877516813615507596003750592472231412916773560967977491225543901303510990345529283571688536785189745264190137987762216703898339242962709428094640598505990706639432582743698574198808929519006277478327213571832602914703928378449511570795044092066574498022460853180321529424091514820712409217083197870784508252335550932284654041484252124238742551694755159614051978700862562031173312131852358354918787404123485503330416915487291295276778450807962075064648897893450342822145611568948736905235842351454436227208535330257275176134703734585735468910765129779649420297127148370649103377043334729344351603736867126846900580405518512835344150659252481577290411367629824152262260381672664864798532963234431344066761873193147319142979084959302408615356449925623759840363002442800877485324899491710901976465725221196085112101936878331515110672294620981619016340386340509929388874377593582707573389329048669963127315319218616318967316226633741799586773358322007918565392663625298564876202736982796889174176001253416941955587567390734075617730124199241693476579320761742903253294331830093289262665385600890116674004902066849682075832865428645822535719817525450970117105522479075716819885939567766766884810341657209284918687527746081681371409813437961316908954655678091283206903447301192029368845848469073782916245900196077733208902628534967730807464553060099931530670350440062015342365377563023976506190348161942845145081436178479743628643511604997828608177054090536108083575577388185175959624976842382279482059973401374999013846110016057269809117040334868459215419406020489997942488108369358806297319814896923996829178080724999686295522014049620517833239916062911445783690484470751865030962513678986574945610010417901171175744062296784919857996943271874114792562464902449350531617774727706719605811988663246718680360131383411670285552252843867283611059682029792173921686578720094515966948442332338296625035713098191448990633193289343844137096442523291019530000580936978429414038639456788487682807287023448833823410856037653570403240315813419078445298639595974130190583288708057845187846272577730421502102407991079948511161973831331982869412774957008750926074995091714420567715833859472953804107155221225285729035283801568812528082422046983536378041172263078809566740148393393751882990532365591154341607726917579912897802826632240085306603746405590911374485227739073128762869283671224672449755524464368116616994754920371946216132416941795161729739167851620598312622299462180586058139540888889565879989925252875256395964283415354831419588918306310218031939535928324378032606937244507089113843525554170769396897203898961474912842325142285220798778499431447065581315642010231334798308458486522882770077946941640612022566592508378400236050446635426915968526867814485065771522062407735843705605728209188226189903173328627413062148457951745456418942392474348214391088745170061673632744974326003831869868548514480663996823645333889186381141705731623982945380766896781525340070832415693762717101924533028244500617310881362029892303448911159788612905606772458303366554550845816099518832306005418305567239638364058736375772487049410380116957879277117788236940270474831820693177108611387323477059431663374479519108727929027526716581073029095477368171636034944956288902176089998067158539110156294336047238411962680985216156509093580699259238832559633426492803141538236331299820589651979968313683399151253793467316253451152987763483578717980629969927049624481358179509722423218739026700386594668169092585016633974832298289044300408339363461227740090911511326843676630790954154919942955692466479205101734783071328774168440600790511582866949937397110760701863544890314669766934705622722907194365979533632099786389056387950489632476679919196226276610422526010268389745829724977572232684606415926030071834363378290572394524900182420094469682892197840111869472202734155943104785523863513603885283596197894208067072552074336422651407287520806733665835599381610296163100111427028820987356001895145245980753817917257751402203939075149130737148555926649133186851277548825542056940962846462338767500469930657846229086337256234326642360822262072872844482445762660336291680707328888867607490223074095372693174872703166300732920939692226639658733140546441759538244795370153257639425280260919560762714210188190720275864988108383919062635816628256181819594331081688489102844002890635603050847492804317140834702103138511538073534479842571730804830055222055735405332361803485766245167307116158885121881239617466173879700741436661018720638292797492831043149199374541943891329370610899053116485114158902394613194370995802332473704010702221215330407714522343938746223022690086732495197726775760515661419392859122650308445980027362736344222778242182816022522515228870659307903703443314005118420331901994421300948123457111555659966605605158181624205914669359814895057858546554328894081252307648841754648876754655379669467635115061093745462500797037356812466755074404779477794493369871690227629930150200945463704690304798682333618305091938274238038080175389192401041235070735498426203165305049211901182441956415813509549465659641380699601657213870121568382196908967162530207885140891688009356953631803675409620640387943030387188975735921287773252283959848324590353164265783059545151723782501578571244265609094650182249154749307323950986295143431686700783611167128860876444883649861744535864065308370239044046035095805897381374854434280329309073794481519211005050274369209520770719058835986997636056254030533953220963931228404580401192850820666528680936669837473887254004164578001538045510459247705678327563372732954844978519752597852403157871841091225316873849765462833886957583865763324302582593141163040557128649011799334724424446754258752984401964120747156428425714047778045036191578517825874855709898983199226901010554122690587684733707690385945674507212202524394121495251213640156665455751014102711507040247250322926588543784383205692598752328937602024189282886497469879395018602175709837193898979704951902678376121804415055939798885381208008467960958272982673517229642250076083838749046916653082422586956147398798276413011863963251332400245523035476581639962406373073797947740757391960154706595421698237966151424546333481083058775653980620796012810836063500227039232961315237524023295815384301241017428855918695801190954826734225861483564004992345818301487526854426456292823826645901772202674761960937726496453587504600609646418407640460180277259173811476163284224324822204478802169527097364638000128241750410455180122056592861596505888603401292759331278753538084272092821919312200877509343414766801347079526476650326580518587355035196784090672550857933954951282522588829481192229525401709483689472013143241941972042524850262311314066717074133313164543729719958496580148739674675171025883940649454417566013108389194649206489409546510656789186448873845252099084146983440905318362148165003636076010280019659282160755422619270624246952613466405530812880302691773654245455148504185883197679415592250045327883567541934798830421842000117447895729708608210744545335779959441907356828591996249401507667832987313902382966977549082127572083953070405848667955593780297499942688511584243759011619772325916662837738000713998338940853664222144156189249658210244451463929118993953867882642592356196784469372504704841065553091246237359240393403481237626511866612253084204293108436564725879238861890293871761810221151753239328852477114355942911459320968479731603796722280846743479433732746846988902559801538272831445874570054211896210521743092536604263166018915073513149931422270662428875260313835789556894228075745276633572459653198074465754202639046288527420442844139326608061366866456113399515585140029865572209417311346294266443565311063383141903357040602097921792844534651366952381887176633589264689705645077235289180703886336841191880885011382226715238377015317761575999481494280689526385665791395905075948369156973032646936354720379308211710575823770586344219762735010896427395183238512192673894663171304051787370420718876913752917834459811076663864639808496268802045677139646022256660211680835194826281753236912765497008995189450114417083013290113353142890670875867065905008426687362958926875963246000888488076540016918277360921061880180260034698346068498075038349652935975563934046790167992229410406754553785731810288552673924689422548932127466403933239390553181022090805166355368542423538377614065613465703738964024000552104189276216490067753301961584592356267430188833188267150439626579029979551493428206950819087238201444060647716891213053014780720558804361090142829140768520481226468512463963920925789642895264260069540405835704992662916971146198624694496466447250695132895773479250629244208212013835792969149934700349834119720668597711434064554890835769750449708964651801371458194857777948985796028849731839552181300563570243229413925082902856739723256808445799107682550244459151863991454509900046440782037628325008185830977179676212644969511978761435480671462175233387878834903095258718085216605047001187183839072622522755167805210216391442374307359407710680023983573947575044665019215858832352305397095852694134390048086372361018296679202806738128190578928253036543451315422005503219482570319305406065783262748061313795361544735525880832059098783975444437426091813945505614061031990646961168031791746248315965266310709590638093000620882513226252622099381476089195847262025452541523268528073898340567177300849776473638293756860602315975706909156733852227703245972741217748238886092759347397292038970394008995714978176240263883725550632726927438796802715081723118947307136384907337532054018642075090535490552268899156178860054207280299403654864426684910833126211274902127899802598044494755067948845022931812927699680246956518597655760562041303240162301298488222895016801719480450479907093894423544421276439407672781547641778625248356246217735432691826893416131343168876943788461854991537663491424817612571295563017943410955437849351181091315059109736286527766202547326876426550933676124551060121359506177064248490328786241479221454729224208828171758544875410942254977225846161182007737806846744482299768458274817346248227380752448772300883142721334287821135207749089574829203590168395697911201961332789394866902561698589103992282146131327089572640347816740195392208800669247760134971085275119863603483766598519078044050044620827953261279193241003821070641964233955729993928394854832876960749315259959764528474540939362385726640911683783911795910008078096459172640599855867947367690434114609570225378094571650250258982716932749698476124516456989709598218798134959580161558121138416768251580040029512117132368222386495240170078639939419111230152371374022406014168393099170267470505576066636862143029029868923107270525333512626112641969720677688117176849920127508620964434581862256166976996962605081321415495836172403279799473229085757737675060956454095291057856541308082624555946078888997729518865441506184945176556315326698698746117912532434114917684537030409338004364110890003021781689258469356241661659083840102934491934127744065276091644598956836597218597412142780711726373333332129352337123020807186053234588941262290819339655712758440890200827987524322502358792961190774401335106967742084282831962301755155584204595167073432776928494783777323000228696293896518878237416681387708194493459105817780222391106081015644747475083324657742003553045165405294141639001555814648324336527353003091814159976864392873099845268536333666486523232843768384669536503766067742905472594450818223485734499705963033509403590284386854038142609030487615102224864497625789616285756962419524785082768796538535766521676042576634529703184746436168547597087894917202624773204246203212929327064611741283772965411867936513233271699141723883854187837249572267203552196627814595499843271492161377959629499712473797131824529352935136548020727568695779289091730074513244354019243273568437467554258682682656683452038981214503040133562322362667288761388418561741313479323341479223855708604874920017400323827487522973776388850370037656017917804742664113425463560809876983058010562076385729807254144673842898146235066617562542964784561253919190596256100687801997908464735099729237758731641406789770457112988560700792963499365364176244864268287448877903914426853690914877554147776218946551951363032923024002262792216479543193124409335285846729880733021529403396168963528982723217923290327836677798086245030068557767462667412821426032570796519282198522910015227245662309190466583792493683696036379883824808636891708271574102655263278244635902845900845347129504976289398933807065949013250060727172773920772745263597598904708827989669303103157254895816790134681141367154936850032120476643268223473704565724579211040225853395819095469109126469037412065739202103015446719050296332483025953736905889798574678685323866814100092710528237907374385050560425966988579188888525137488404228904334558600479371048872579854041920648456158266156325399657951459255497399920611342984646251421386016228364393781301816938949348491926287204103304047371299832428710557349265300125569309514871170238316050628666883112236931278210907826429243058376772000897216303618158937104300153066520822186051255402742426428529316246019118839293426954881640915246897877921675887225018977397258246792215954371092409370236229927234971297947496222890301697117905814317140777021926209426427446087177023167357037489179912195923175661563440113229758005770170350863611861060367647228671687231531505789631046713688303790371793687576637609316149887846703318638586308071716965589356187239969813368440192380895366588329500403406319957336782374826973011015598494519593232521342634308924039746124157691290297059935954615587672219776667519212082846639256647159650351447000649148676978993142804813344110306066967551490576131731489620717874968820387994905813034810866994841172308210279034166424027820344253719795469156033370391469399911437252737488892299305158598807165833953777309466369392307905286457353904923281442041236515851750956618241389627630802243204471021190908091196399823836147165928632261350033688587280646785118032788193319118942917732853680212051253393975625641520995912184921548976262567727247083271930516329521452515430815823658709474384415261862703496134030710783243706213583034652842485316344369381901727206278691350376156066161759949948804442677673162568278877839928222590569509087185591120390916048363053523232817894823691092336736928191745807938551492410239963541878111119526460559253816064346781243917525756925761404984533905964339537945586271593736112512903442472028514760415103929956701257819733130349911704877430530080536355722645569792092273845846506385244171065591070306516390002855776647749606960230866638252268365297981973831527065799270503484090856340995981560922843844794581921353355630386909889660466287791675490757536525745747420701602178516892719212092534240230611847358476112800053223988804505061669919411181608616368412852549623773512087112716747059735740759242940326301977847853607449896555467470237232328675294493881184460761276495320671762382354807071805014511278018783724463387482964003562475801972224957300082807973566414933827492683200045602858421973121403856075751088481870659446753961006249617994095164730010545617840068803127202063088151634750194213453972605481440625270689231650489387685030928393344279292452252966956777974949704122382852681714862871790273667511553865511173374214879968528881188427069640277910654926556703605783198062011323120627522165250463559465099258997401780369270021589799368499486082521712192448814271246182308672184781392223377486437007292802814700434156143717109094482757478606051844113056359512754941810506337410771934958476702971718891847714766162354382760007331182636516831263467526555336966598554206669265017029406585312891469495979829992382189586688956657950201523090552613308629579132622873447191144356228782186616506967134905186702424955288076743870712669148337176223589456349449172553482053863807519355180442960080056759684328495541817314220563003077366472845766989019657102939580816898134895865819145868423136369603356050091165467905326460424998575313767603025180860611675878456424200498719175364649793172752846831614097255481518290573243158566637367161397724983877370069119193185363805051498294946664877177312816736924827993655560888144092596877855495734752701966296434556617492465160447986753977110029047678747979609596905656038773597759372107986186613886724295522224162012052173804060429906466879241211442071708757356046595013648753303749326749279125738349594992471213177552903750779792235347161577740778735130471202421385360413480970450229338207413751106297756734463318400040543410495028093378224781946822390189773147006896618225218237828170182350509805393711824153080607852326288689868644848975556985458497274301946093497161744921794402504467561266000269098968538446891528712281454345838464744381855242263020378864636278826544422344573219016173880202774034599060801914093099314535211992238649303976806674185710228402351226235249779601323139526119967045767015049725554526537628771948614180603341642238047373005454152946649432764656823784381322717572285048827870022256921782293670436408913184994646576082512096891809430236559020914260463370449461128264068674200798978603358916354915835761157561961143980278098133596830298675492430737902198695840672087998453311219542531830023411845975207570288158429681158253110165620063555237197415282041135669161791455404500798943226707449342054668233606259834070985895413581693695746597146730535962425500662342243014076347624546840443810645482164854680908064277359722461153371011345130900825791571904988045944331647381408370983300355799849449653707831166611525553427835401244121563208697911383506114241878805476598026182561884678645640290616932248126954603584494913371848168909949673788278356483312976672117144476430968237826730338354525128399815406881462371444331043018045144515823463907873160005786001434777342544884067318277224739278702139596358750736601366706975145435961794240760601101061926951200823681598639624733611770843865648157111347593078953463690521221283562397790154173301658335569273333625013123925109335782273961938258473062536282582203063792635171560073351936394675083631964280803886062990752821843911988789520908473846728552765459922280306970426398392438844317707753343361585779878351015889920621007984792421333732477065976625791182472016796596219216493608099353234278403854853967706957739711728795223204917485722049704430978140932367816273968820583996331058923915294307461376804554923018875699862234569970511753111004178042582063912083302280806268141627746059114050360803598566773602777453426651611248922549540564044913377492886723271170958498132698982595569310084449428599412978057283463696697524353759170896360016189444980180879670956961551060031429337215292000005840898251797961630392611390115338512637060086214097147047022941175011735567971687374904665794146732872566383525575683490359303450323093211074844430755447983306749452001661957970062978243408324471325726747106520244639276060373860144573732033730767492618483657800440905023807701651195785030414400138065181848485114379002577041981228201457832351016772882533309808815945311234079618008139638288293810739061664285760890118217724944281137148077103166740264562007599089547680784965280429827105634702567979834462418269744022147367357102449988213708281887584222286751259323963377787337395179207897338454363855983086180650267687589166330241373507930550337698357424646897543463248576502150720342269948408402739363917485500322160094856315811246603219820600416207680254525736325242310664588155040089494091034248752723372140089772399750971769257939082960212661145109756773869531767038304978637238150479703651052806258539456411660994772902779934604153634771636633640288839396647670928129962383884355696002831278317660191416307927993961006580621277517447372239917527097808869974129772831543597111892941290601660300668020280046017993584129093599569453954730044630306241521897669271903933914397593864921113029298611197225142618575854320673745139179941762446121308297411880595941203987523403118576044462526739060027448055349681102041332103759880975771357816438339253245763169828800912532581029256664762400367546917304373083484385201924940008967056692019872528039719215844878192578298248428873990997293014691489499420035826952978075321159507813989302736191226670172424640757000907797472417072557119471892465967232310021740494183429633447432451627680566826461906858819742666693064742415371609159302909122269813035617539958943050466425928247318279090812062822118761536956133242903010790154799065500079830121197793368879325420745199134728124134359533856964978323938030885923852142713809076993460936137688387849236957845723699805214615618188934742609513165115144598022596838246115463326043464314548446858282275136539136298412099615905783625822033709052565754042766155327169005339044102251857873568902318220993502234628078126842864555672171001574225796187473443520567989039788532111444095284002866135947799147135190966034036787301411804737153826364076271266399397897873682482856506539948885368586161138452946670561182865864563077178477168981703661592627574942906766857502939645180445032940497999264594018867870672254393304392822433253475386976618234131592572539843983615178760841692869305618985743993737948317586146706036915557024800303829516633151505712640185323750667690820665195175213729419751799628320171179710872203449517542882051075057630645271830695261024443502061042439194287196370716789806292240023990119143055923295566199500234761670445258779400894057078351504740899974422313455037885173994878835511612064638761316175229585578315047537252364998557065715402836641328464236232996359876600044912424058635437601205216174018518921615042118481883440849496362083955259229199981303073466645433492673341951812986146023952131817272422775049578999386599634425756309050020015067085926661076489130500670458320349430456429314029486164189302509111930241041499879122760980439440501703664868849657169542278949113243202953429392776650520004639738410063074939881051402996738147639867648564336682427385993882899926711162717319453212862925125378306174197455000165028413712380340244353575173705747616320361966667634185385301234731173368352563248756742248599122032678341461529397457323174475981211344306436995187234858613728048111683914767196200393615260982792171807390359751674180355418486081974755556264424700373123339023873068007914555841192790960078659896392461765671211160520761495221696529151244060874274384924111326394212019624871956819743014223024116424717798524024963850723661340887299361849967333197269076711653440414972026420236995391268986250124187000187271936176103525345211202358141550373621215390117130053990055811381712433336171037595764576112565481792792747366499446973134497986525260062153150949439458460764967447428129415866705172668821538093058173734320852595298247061294054375380168410391565475414128624009588904648213031980258234047793419748450230979775499675161823768918096681320958935555074715835291424749020987180178973486976215869341081397124882026452367788283913854628956172235586712846808972175135613518585951146616211562424045907604707015826764954608401167136216758801612326386027111233096314900802489492624097834554424949421215654903301185925967697288342037484502876086407169180112761965792607232288309669930024449167167779530037272062946990117949296597294159936375908700115577609622332203696495277222823643912502046296541459928090618749579743159519369184046598727103131028000531804851407816590729115885217201331938838457239797128209834459198272786264368096894224962865530501760834871321112534079277440536728064801106992985376619055198820272277651651618654216488004390920778354405186168715467458163894898964188458515157383068513955667110846619307661015246527285673474570630283903570043204623093427419388524533775713681911429156355354987690307734356393454574416157632322357966927444889079712634029421344882054990518749145322329076740517825398573154367935347259577874346110398454076924101633394345431002935017641436036490782460205007574782385558539407737807302781570519141749803360055811785667986174302391353381327276140086676245951655787846703315469545947074401371868785814114307245911679458739062379991354108496328848326164697217498166593523624628578947738679067876689644918940777515567430208333660211558575944783484385567471031546239157815559540390836462147572693032235037347633108997850175070692367177518817750023862083275824865140500914669033732820356676527773962990162736051258838197396558446043210798034228062657931368730279046297882217651215748882629978611268898570300133984406364740723481712139371541537364886608477046125793131796335643488208628680298534283875579438699164884470267103928781946459367324806184122457979373632034134467451941858703788091816153259462268476867081227499277970378992325334164601439583532795379257464660873005203754473879224437027350673841437504962599079838041114548757688665353771718794041918050894140095291854529003704261788352830309848640230502262393106065938989284491798999669798903031124175632176550790162336219904588543499488255147911925730488512319009433114726160977536663632045158159095678543938381756787352179649976537377285576253726611776371486100427473982971572907349086034001439603036361721749842372557200386780792408289771784961025207763863464293348362869643154923187615632892270442591443493320908463613406443893832128422507516073767470101102655066578796589742980115633183375499317134904736029995401960553332745800554038930020139166130251834032860162837723329367690231530888194470400176335764351694380476083029937075479184297367452187662093351069834548882946698026761720340368032217456673838214535644229340641112477251695551771712294068896934258734601483618606324325774666447274572196624285780119411300894990836885347982361239005335550935888516079779955589981146597549566493592531782362764185451796651296041503561990676897795611439527763853548848177659170204143946569531326831240722091842885356672973003960475625267624219184154451166261400080223339414076332392928709413853714012242638545966094808309907929183923429588875378068887967915926280149735591504091948074878346059494943592964902161929598892196615841538546945117509875697462725920912860451334304788987985231056709014971580732661821044495348606199877673659656932890455536175422603352026693828247122775845925076053418159349999232598922989708314338089220735060322998730427085862588980464865453046414538609990271776287986297605726193165391298228372518243217651994641107421361615612128011655522441124306854948532875409190087214539747541083128540207714423625987578268903141451992137184194623785190553323805583507919814502149446446092638975608041289647021044220589615866853727271807214303043776829597765847231473752314597600321549769803797409927578041872444365867215408749109586146762987646499683052667708273071905648029401299691209577990658564176176639801457319165780082998267987487311222889662785276933738736880399750309368870301068689578264000273896271835629125001333614999301900838618829560453870951105315906612850356001761844646642942158449325787979990575087219685395465029267823373860485878060269789065640763483128315052540065117224620722102363186693996583021991001358358755381359011920235976101406979189834268796108830326415909227851250739348132459473339323635694095846707418767379881473217506832649660774983027834460896759933268763764371036786336822815368336755763649674811803182568027441936969430342448403091962913962837897930165596379912139578952007156043388131894412425113459937361895589192722079634749560268644919428007486816417175115915939633917765345567065149430882637447542968697617256766796215657563997911586972697150059824371155990156572799072851015042652213900604693426882390544092944374673205459020592414688503134126396999593597072020165832356539928360327975016372471278148227968981521503588041739239475785331899128907509947185358355202965624362910278639353715188728794458844467952012327730444783424176749112356268951056309122423608779804064174313019820879398410561254322165591911864245913474674255789709337546932777540956560463843596680863963202319100779925589678110566955193738880684768972987807613096275311137650272012071551542564371943261458041090932764080610398126039658521589496320645262545614098660636154214899421449968909461286293338425492765095947190015026526142201238336619887703380113216487146333180285129828577106361907323341022565162335366362634804377452407172916533636148554333127623992443456838310421063956160225452300232413598961959932284453044323508472994079938401124023091609073396053525680195697815956727863217498250306600570006589501601206048784244179207234843402846099905912719497092838573047320749277308575155597580783132069402386705053985398609948956889190909326947786635711501011020630866379359704254786783556533729980827557451880821665656043607497463158980329769935535962808294552917854906159976566863936807223406533753557760613951937752756012919446960134332226820941263169483764719237804816500358191405223385901568180803546651378965927006571016664135908694633878284174406817264660871288308383396080887685465507443834784128352737436759644778640860491114643680855186096464512962626397972903735032849468028340841592363976946400098526678503300055098698321942318624942927474156072216017207842408536660970122208177321008355669627334759594387735060469326957017871981443734099209587080837836232175611492648313094808401426310412327337244071598536413676545351698550334331811009567325226375336907324896763711565337747336893211697399257981731948237182222998975841549965992634132880294759741565912479606734193491274590092060674614634037427595031130926283300077203909689919897979081976772730097515334460872731136425445960032861163412220031636517099886881866443485785659470127103569004530746679941693371556004974917841528922156667695209530331281270525823875438011649908411304438913052249603954312911848842282435398925460583541824625306259174822379032185797234013304397056743524992693066304599609090642270380296812040325417109998211263705887958977724868179219241500243798411340346119092694696891649707378946317799601100445320164390567466509066315760131644032169524861245870028965614812766778479151701491512411195988644148903645061425539498081965968635248812165918246675588136959723250720653741964351071561773717335841237751413328436373348643435538416775105588407028945050707702938238938827412969444223747269314394821089780013659193326321919343096864939503488862093042173632428968822370361445508031480346155759639417685271624427374163074055470020285714793131150811873989416823388813983088130999568637377011948791341475955901602832509220142836182078192200533738135170010972055545605420494602865881103694520590699878631652438251438684684959746524812135811553491937074985434388115307471540413022313704065166788923149837585597979854373367138371777237810854904247414149228360023036410703882963358596889330514234833216805103650470178320983651932403372932178716569709160087118678312084180316893596142090500615857329041456321227554308193801075647227405929511538732241895613075503462754025344123258609670179541364819174256148633339382582079726348838927180687676827900557447839240232257418173290000945497216978207420767277278050862052261368911499957204293903204043840336245863666255820329806850289268944846288801957412771851151357259430135506306777252003544365526304734162052288940782230152140808166976893352169288479730437405764373258604827033039367585226787653361851695757070452128386745203502418040456894185589327825703205476820473545728054624785602145412488542852233214360015894682530154816523240391949099916101767766537337327739142524644775529202056159578145898580772476338598131255287750802330898152401937484941002369788471657366704278632483540933263592335293023451083518728686833770662397076033128796350272778935492741321146002454731678426267786597076148273174643545110802035059506570040672569645624257507983103599224420447524286502398301788529316695602569927412436820329618520898059141205383445777606872433315497680281686261986840001853194580280563222699518106536513301534504484279923372283363496725513886243891021282737660770281799334602373804636273446316302451257469629805985613254392056316965198278573734089877317131714712110670357399231069656396081939458345194469039815257900928298750355846853532171735388386674237870063192979249449604184673657174870198464421599322946979863458541488785968975839090044832957345729214501789259040210521617584260117316016794495662879288695841030034582528692069838492335776007508476559674864853378672320966463813918155635406400964175715298588820989841473113781459400094585412515644324237593651857438195446576679176602997311504617635943891432607270073802516693625018089414144231517912958479625865763633583832556880055210815963952107762389829481924620414869099364359892484071873585440766194039137688913915784773276620107442833366555819668789156474194837448771369132637561643681092642808954067996663831605363713926165582169484664567429102844998782577488546005723639878493459771319981243072910711835530123099222855434644954319670649482897190448593016535746993340262919254281546605137281771672748982668562373071767781958850772610600677159207906332265858329983214243729656376336483362418892523566641921105370861925837136348005489971837171834617105623055467255064769167199150997140305579580922246936966202735425449323295615389926600387959160622193725810274767774177143981724469598299296720293278739827741801803466069256056968622590844756961398132564687715061962712754657718620986390634269674433518891830147979531676089984617393450333206557609153827162113587467197522715065386002565542693811004961804749434961205792514026506165872128708001729829270807365188113626953384393265602429079491521260827485366947721626940236261660705277918560240508415736683648753879571284921923973824817145810630580988517407550898963627073342252493497227617265690991470746674941234925902642558718415282739822231563162827794367924844204356389246440842642604215124750274050287687449752770945463463536613875755358497521305755239059388541653543180091494208931483785474628740355117501948486877098178989867248382426175094098268767002202714818302943159977259504230988749241618696078479681132272043644253834408913177799417200823482159300269063729978241860962908180262711688279714557419755437292111998410171439173581960520065885323622642773210020614257793134114116724642282706110172663170576681986201481875564820839604502293982925996405807848080774854186713321405618202362913598786955388296545985583697035018929873766134183185574964696983704305216570397208682378631583571009150542319837798777847326425040897549434063034430239586806149139691288192328215149188800356367413932352733823253282077094786954818037831066538313226357605384649746243399533450958163729897360871297030451303922547535268698135879002635753722906632653442105624908083012941378292191841424838737155938454982316871436182185929860448024107270038495772131152242305698586089640268348099202910312825632158120080786001832939697433400911983772832882221183167249884231624789280612588974017449276812019872232908826121650186738130988480949285045513920085134307130288059313057160547692429406015026675641037736463725920282794920863223041707576065783555828937144631706816566538089603659377451948088496736919452072150074353996859664405692810496477744439534792759081730234410571371215391436812496458059139029025013835886494987839438662526273514303807704444060391532142378782418858112039865121462769699585816428294263675473054889294367330594911781334619162480718435842775034680589158253060310978193779759005597901791090629739693313215765858107880012048461851593301474086067079992433642183624619498613522015780168817288333701442335451687135717028870127634148041488152503225474424620266983085598205451117882219832760330614589033876788928956877051134639133192711304016692743464916729672585387200815128076552721696219894419025050906820332740995184876927290820358258587846309380475013082801890025541996431488167489252556458111640962746864500859975850459372618642581912481642725096964563575976718077391858574072426694183605883533286445781734555610117030334703902619144600543830471256183752317365970811641431730911823332624685920451646122858178107403923328659751364312142465628818898363569300694907708225928268766673421567838806820935122557386177205793810218783980203791737805269892767992697280027854299969781684378286452515731197167183979396929177969768302157193582861859312020595944546060743531556191630098934826226072620419088359947404619353939681138646363007903229396760353753545346726473377970477508642230297647225478094471137037893173926850726648780132403533672893194918235125302662247457869967444394422051375428451718500197395194309483763337390342813801975616376498589836420470857706461422624757495078218750619711234923194331807798000650606156654255981499868780572937903224846980073535119817709336376188720114447036272121512971045902912286408885469050464177625942754423691882252503028005676661477096190795702715249633800989988630230649612648730104121236649231116311306479111453981147222911713798198198746914111164246838767815916557175152254126504689871075403775919521311007344201889775717468141038448331755339514594084309766936345311963443802544708091702371533601110902231801128463369594068501978936451225109792679978202479247579463388905686894993775719692870032972181954302863955538217358346983395646383993625400236211833286627512553020157430834535757736062813776042659449200618700059985407785686854400502010642947107103070268959433440382580226095506401601167022493153684851906877324764424992092150310365594194634516400611499766137393369942207604658256465957903650245607920801885113961435918437483046907579942003663979857721942762989706904260835643263747796548752442068502528454086453505517416793468347735666608076676617084855288413656043584275435563456554500512486346521538380726314306118407224363735306574866919081787984079867444725240277387121966378422339116249228248470489915372291637319301479798644542744306249756125814108819505780386994031215470954157607351197466026698280215444553652664180993040747296164766183849280562472325116474722872287918010729306887800153911265870133375177846685053405581017902562162663889046350968795626445543491602781142327317363912748414234172160835083419676237704892235426069335147158958629647401944715807062896528904532160635730329058850932832634500507899883462610750222518285851088050946393755328546228563297497235092348938336543692381901115513648603427232389926991540102449781750259385041895694857810853362782553760877730587940652456990302526984489008718128559196672789446308516901262662979299588401671039285808071877979621118449552688902983163101723409742875642592335097501619096872674592715313942763184014553118357611006002588844074035519715999482740488364387550593571445903089185098139924304126379348596312558504546145259566479708839110744093649051740354108186800327113866623360585547122156363529945453462468779442781050473792822530182264236769871562392408980162593670805325637196684525480064161750947389322016736851503788310525108166914987497555704763911603080860896107744480699822784656158957659989435737279714314347314808630111314140694422335309994049323901545194214882960508814146811776600429629819320945351296268886123451446620071743071570248035036218253091302112181899577853167391282678318496484564086260166123717121055014735558351653300189564589991196399878336046417554546079441021333966635387163926266337833927396794523399347042554966084728347038866347099932038930043563881032103280466244976724491781541951896983981829043636423357236121697641053077626651912054868538755498237161880136888952297351343950703612795537552591591057797662561178294263799935976697049470912788097849127204515279310741779945449241384792840259624815862327531669082653151273885907695967019022830448327899958898141291231424353187330428182506291507581666401162455494768843884395762529401492406000295806239116501196499427347020886178552752133915155532512903778072066012000617469799408816190921538825651453911857028802896184036009198463158989707819475728724892254505341517905399828165352963054383364067905899379248907529539311054646957599813780369786515748135272911744204180220768180398031615600993823351604839713210633896277636670954496586924592432446228007070774894952864912157086282058909425018322697045958935730007900445214676760396693751157986130886339334605209783351554176779945862464849695031162517837257544405280599627943089535377878359184041908716368620956328987880930748720705638522888880406905206141433188785285654664192365941845797059913860408203423352237531192436197872730488746733372819089828444061873686548027246348166505022681843070766530093146616529355260695403705652921007942065935797415480050142825514307491957968276965525989422279306977443684171116006376245506262661912401811637288604703160144736891309836156840976010060305826660181572263292230544440861380299746906443693301063388418056344767397903374986236352445504423332974868284587808537745224963460976081304833245443695889346864759762340023125322113280510944409006100063148547356366245967727965419696322115717947039223021892180348408232731038559777467633780723892321494282869197087767622283346054929641878899822429067710190251027746556346275370107375260950105150582857821322107019624804297397223762122392146488664841422499836703419198870620681576229091754176844971575273139875094665596808735598178796781089278653364567245485829838869993582642874140723610957502210270828540597352651834340994320040780482729626752977516299098743498770648936285145034349693224909959598284130936925409820516492555889151229465526072745139087680967453117963846637545308998941143713345108128415679959680770604470672617640560012009346832412885461615476593350708311288826810911084495200619208570940949476052043206851597075136593920766317677589451917094055851196523255887199968932219290821169319926964115407808793471055468606024886938719328502665976784097702866164465814388455932831811011284843325648253703177077250093949936852860246762978891167694276020779701311792835637025040930351327282494278808254464282981655240043512812827314448656527042685404664610703344934813097015599213292136209075048295829038821321019659808305907506524028787154110084646017473350841290196958069967836641218028527112521720428356662710280887803261389183055093986156718758221803604405377454525390485726106116214657878593019825799310701902759785620093501279151725612463509871904476509953177491122797927673729966895430704476025740979098822006877234030231624658299398212251259648001780694060081402149218909584130988532904916310822480521980078648942512578735858923743927722846418524327288792068309833830880002704561280755211073877856222685027840320171377739890058873960798367336107761839731275572486216370086572576694300212106188468672398581349865954569566674238632689395219000812774347940897272683742119790634366364328999676177164536217478427622088850986011988467258582411264591960317949467981111929068765213099737024692520634292931115706154841885727642549811013773329263340327423504015500184153900791488737034593627079487610968013852867038846999577407875829657037467741737271432510984873039381212339012465409643088069472826360359176553138389991573233795341158780371137079382782550306887008119527366488109861327557782433969477571630547618191544661600261134257825581108558518680682277215649067811082281801069237404168864714753275034034092983390375210100418197860524627840392197066292935875384672349476626994839788126210774696077246345732633198895060298525634533074130180659966747847601795893237384327927543402548367587764338850744868576207784585701048683813605546307420361228844926440892603683505863582940278492493734926764588648319362227195237867877916399945591934804197774875659089886589710823339054729657664096281120118993864123552380211344946884447888696472933095632092755798537845457658828513138054931823198834024459672653054372336708000953220071285050373985245945410282901811209781501050346095579178940025670734856757756974984210664917586579319750922411874262410948164521757249685727212680203036907506212680668953478030671916539472973659457024666365672958637518206626449867552944695104805868881086597194758607409651570425192075995317107351580092708900453338649111186334096391575048985472975732149356753831074446577994464227769872244608881376695650550444894003091975901092940817075074010373632188657794078664289340889282308116026865842934114607075645765504206660648342965577191886740979655451335880031955759824101039858619087556698329228087879226624278034581244807951053796325333604646627750722088319668682742140169035426903080494261120791895554363695914709064737441304596338497379671998090872443367037689238273155073009965425335243319361076683660115028711539375633347015835342693580114379519240821542815132285331520207995978346478014817541718039116894744012166195560795495096648568070063049820959297276390703171030964354800223885594297756205136337005323338956253404458651099315894336847022620471656677005492619085440512874129910509260441021705065779664331375410764111662546967406493315870638947367466182002158038687627750407924677587934230469740455278763583653499222172090480126004786286152389189552825092008320172879630330978325630430418864194397341300875736079999197990573681579673202560716750581413692388001251388474280585762390714999290558645165990472884128532812455831685847839241201202069227402048368612849435134900458873888201982487275585839281719529415117444884150478250136912651715266102528208564247208685638608691239709517533675751493735293016781282898035360687382838482912512290157830098816973543911555907881242262625275930401001685286672914491325453414074779172554621969177587731422795199299775796977782162573978948042974341528606035516018521275442709859052781345550260823677316997329806482486042165462296297692304954010359139903353136763448468771227937331088234192299475494750285892873376955227867155490352117973716075993235131464383835473013749031523659052406746606334927158300552786883778545484303497864481485850014591626523420842103086547616736971992767335594222836805157779158546375559320252648870351751921910972233393903330836843933385395898626056982046678324069550306140915952933736116213723237052998130967926625355614615084352830307703267924768455878721840773041644110997223734615272264292869734907478825633358029745382408574961186090212627575580203583741431047418489049555887586739432351396052508004055704554849966622185923872970082265597157135132871659166977318668945559600823800470111965706246017458374772477050104004918314413569455232355112434581649240352066835368349861708112164562282421455017469643182053862331097845852866076277270888843795511551185697721733691554485503419264140613849303517651991571290190027162863441111143316264663102430158264428483972556332521829362160354152694818200765312973306559471587430534352257873670895112152886704972391917978193091873606557880707980453420421690861393954495944153868113784260758137368480527905126706376513858415705393841034240406399137348431643099261404094157961155397359365789136254190302507255611142943638661214866497825055869224587794450715988809020766323949525513306796364994938780044781405691177604843439232312478486530233524100490798588135548791519242109530776023895319222635765665957177793923772261322629716907301121572807481624087336388848002145540608824880492954731992577339858781061111030987170082307703799138348062593124257133667538579457867028035838810640429026651306380070533500342881475100562559648150017900511353438006095530585370706991093709115203707124300617450866610491532012878849597858593169550461285130157478690100173544616024527066904912305187616178309546095837574680687581461962466681896182123617136202425018200959586675494374011838507001506694266712391682761657517356448673189602380731052283932458567270300394554521996570230339256215710996810775679418051693153109392443466876773338890276996559524699734626712820506554456641091889966966621559865852537144654575880036366945655461908330881889825357414005348657002981794591599248741358026019691246919992801002241346359527944861042248992843489872092031228135549983369899186486088902096538295934538860476584936482651509879820144404663419624822020264408390483387777231539844175641956809211912337896047026168522771892567797724385386835809452124950506399455575940096420536947604018306229600187415756083392041195179390681514208220994368830356399100775610332691687559912985210394110140177920448624271527276666743269084070553545550839713597398701007314247862079444295626350500949412070890349481793732988596793840883949324670896769399538383285471228492301135948799667764422587786487759767914320862283114984555017671954698752325261927070081983031436860939841333717524075938336704796385560300987282184358823336277714791761860718013052891954620944400592531971170236010326805009264136188154969876776562876175226467493300234679226652332646842664504304971567981136417967484813364922015074463452533623565670803761973072686794299333874397076957312041049077490288322238229306721481377551224995559132821109314286357945626111806096377206333319126207419053068641527166952288139182174436669261280041247338535322868781821756276868535242334454295638806089573414850530854892762873497392831509233544736954104220023538111238601253161243753892558918150231831880253546165095331896094629443348707514654464065744696728952324984198127854093900665931505272050918267260594299276214764197003537861858177361582106954121915414477078607258974946019143861158471375729219766553886752892549266809550434164095447394169872229509461912495364993214687150447148173995732809629118926770510943685085688932902307440652480907372278729531330270746799450631000312274717890943556585648370525637193613922090115950883479720587653569509529628789456009700765996397335453001585888694427390574457011929753198517941570004642579269636466956045648654024230679481903435977732817000483945288442777033980770337449562259568506681200901739805817810700431222283364535019799397999007394718752894698015363695705840437077164013208153034991255106994097036169786577760424223451568878923926421820713192188313492028979394320628316858988322975026083719833440112761988795991030241438067130798372367724993846467563580701155948523777367899021901553450235987388411843620886609562455402940442339721585070669908258101201014636651248408174342741594396161048410269927505376525624498857398236615205709191648949099297294751993809069308152090901686995713724395072161385428017553489696868720785502170646226876557546652640590025120727650690155413141691046783229758639464597956202970839514615613210666059945356593952606593867620562557276590839801574517626467903492872743706944418111951806788068188443605970144307140913284054616824113313367087787199042574011442787505695417425609533581005646639963966193997377746562357566794453674131933207722353869389209695469909674053392612027688090991564946779985384040395108891862295957556200319079439821991658619484376662132095817295876024347449017919976701750339146808940746237806650186346897054171156540559277804020653676590572574142915178367599534151465969009011411327193885928289479596962785657942553545070526711487728620323154360157657038552025142854408242692218581375539686466332639594677823538741453386629038025267726088652871400140623033652334315800744591525825243518954431045557856013262325386719154716127599523550952464571051215278104038416394401723991129446412779769870973985034234464769670379777547427653337863461188488429927564925660624287581307277473065186782495521300297362058999053549393841410572256654478404323289326632851950086780938982314445798657332723269546165903101189674717980993606440363552494525295151877579362260813767556009502575361003734456749769498699021584816850261146102829208014642919863272590715193585384878666293420150176348527673229526216851385467166644880217566219054915435338225990068169001179577022663432391117144891223476094663782775630728397114825515766586077487114022550503786135608469216099370156939618274256023461557802521438499310580417011117107512158754085490548895692463842439239046029600152916419963046911022561218291287833701315664597377748137051912179206543818858385944941588716828810637322950644406300594520795982133165283493470611615940873492493491298977008754606968019693086257117722173518003395853215071790941721953168309969217356104491184190795887239352477978552585105868632373145550357885802263120853875490221934423525924847014542137341615528642656954454999048245819667899534693918440305765677486376475914112544113330744050783140894321722232236603186512850941836814100924141036443023291857005669894752845529137398806561370904099209324017981271406091654606960792866864770297699965568396432582707152985319314115025161839348324588467563321154973992188881255813061427245850668137197977003094901012336992072883261052891823397205586028438373763291396944020870944304131720792515760748716639485775759682357232924591813999749978832889852570893121338735821776179155225779535868260851780146657051223699234422879642002253285704605820565787729064466292523107144852584925517371376594882598537037644743456857025653139603345714780600036289160799220504565029172831227728113470709821902365135957167443603902640769951840140977316761987388642807750243600312029728160202046288162154867941608490132487974121781582327144339455581909528593632593558215411829082594161825239230437805181428213012592267327340086530541958864366270380379204613772923350763735340904604846214722353650523697496888232041782028326419797770273309039562807261285455567873350603252646307251388746324625706203185985939037735313795677173215151218924878770738677629167331130118425724702646439571802488416361703702685170682861193457058920236844717783426376482376853249633300668020889300454010380620368717055099887898640304842145950817788410098602745583722570147975242565863382698107496881048239395549145501111818003482254337553714650147464681327684967414091573190981457035694622623402645687356816136600667235478864792098927899699308653862523433026415784936853637368813161842109534671488073712713766557778037635693891143203014552113130253232222442547085167564192468286422043614122865191740498710289457240976460086359011804827681963739828553898857565131096991453449778237146875000073058607907517148556670432524802319366573735897392428048835251197341952419281385609948974856953644905008418919709851107499379861598905866309668456331063381495824763500185262593668457889770731520135275245432731311042520913221588010268042922209042685307334913032435151237327554777977784734551180812391932736015337584225547088660140326669665111876170913727424222283961218025935210682082458640320380714637452906073930449133301658042142132607611472465815126957427547507321429400684689407022894312092965168670898257436691929695306446464697991602103910295398628460513781812285606735619840485181744859972802584497019670815904479942644288040927705186428921525244205295635299764425529794546804127602816945600180913726355855646360068444176358131706000597770142497499784156363056952208363051740426365985916930624892396121161077741770793634018663493231983062921960145878523697310079751641470189764946444004482097930018726717019664204349738579312040364540807214201246915168657210711201195954812133422816202599071893517911216328100280333113788727472803250976392782041808416821499018570400721245239460794626634884722469824811210647236595178766823373112239180506071360990706011753246233377814058601104021896981762732898244639627145250148801371505470715906336277980946028163409013323711082745667813945258802007481904199937468757975943508419612333941677393426167364789657596390523766905699402737669724970984671471825522371027494741439348953012962380801797799014025972081935562499712199025379586744938712888854136841956731557804568413174474277885513237929029850341063303427370090737798680334256340206017199752395222128539821201955537310193957182791369205801670902360557785336982235379727588865106755666948119390637147887712797318478386210199016075814265025475101119567290077715929144824620607744400102759725667787598869572058919957548118448257366058079382516836638138357726765812727750279404786600871008332031626097682160733484873205775028811561551897120204921555439528940552012620553084167244032131568419825037016029699833646276506398346985231582677381497782061848243754238652664703225092715311035840066373459772508781117372971213143450045999112738922784147513016537616191623575533090988575715377179280908189652019414644768204350366359783187348846733471157580044683489996389360376324668979572560137729790837095057667556112659565220560594447129393300505428056602765454198363057783573691462367467357749622276492402580090993436730755140569212616285902524988946018895688128736397848055574812143148926995237187098357097441179121986855303786883844341302188998467269320902650413121553924824799889687853063247299743392615815593015172737811833763859172551979062992629011154029380679916301859558237715395379181490281795642845285999496364356116146178116851546996492141227638080684397195768784434630653108408768060389143732092918846938875216397713634865149170747886270066060382234065034038164344559162098703683883977691362864961042127851808440218473337902567103839813624851426334747436994337826440498772797119072544396367470474338795258462619582393009362148949040394919069716213578823477482108581756851300860053245522908746013513933702892524399610209645813941091616727392062317275881597105284207528425381818589054688395002927435082963648190044915998065079166907375611218591224828708757883467209239372337490286217011869386665734674554427819789569277776835890768727606195860295830385210036652466077905881700936413725543690730302589752401063525356916204124314224984493286087761242470204700721866799337542036833269777366788265886826091360837099997763604994051653408969875549245188680887682866415608039692901237607502865612382919722826052377457888474379771914456616192989593486657316553183639578362554068127531929926411876573781478269836224676663375121469438216681463942641655385607562384982560069436918406136463316824966202511975705992475142928129840098642985144663724722422840482511041521694486828023237318914792354105866102707435606762835493400748746721654550742903539607667952419515335957855914301997938245042025474845650961037945498397783209072846627275979128677186594558745209034415142451915686412789691644048943737014918428434828975815547112588461503833895181017444842287627015561672079524287985458490523017918894524393073148551200190012664113721379370342779496547639896761246266700019882876419694234490065981429254343423400353866838242705766357358904286233622234932701590945038011241225390342424655149240695219824956500562447953280025308339545124275375186985554818275593149503407238397291352803406656024999972874500287728974973098466772923211178437060373179822456346155533289831005405762332346810694028033591206799707823327137850103762874562157109483564805678331182987450683195318683126604947292332066382059185894238644966430946561794484105007772698783878897845200913556693377642739005667608359008869739309075889105489585257115795024662554845829062572368918973371931077392633046623202681459977469368135634184331646667121294168416182627456496991813648240906765477611770034564591010434879425502372827644736344203184601067532646277677377317625280438616607832778610203842106336122767632651576582112534386962517626615755108771681558338239712250869661375492396724454860766029276723198674745143042920245284547329726755041756395562734862602625455192474310043345339868548089542470074923024703096093207652628363706211704069148600645400946734881252837454847251728214509449233087131564116561546055074070857986304973340014410142239801641607185867138477140487619294815832650533817010958874383592792401696158910706547231917873951255900764226738570302442375650801831439642090673284322182125541485559628717493932863993213075325134753694840794836711460430346081449426876185943010997032111073602537732855705534285969730586738074938375382359148507822749436999531197175082953506794132015003510458361420654075441930307405428200183232560207278494701123609514357049892605025438047852462221801556663287983339160046859234169521500190397518234426189351396863920813600710439002405597169908258634642453765305069568971070966351792942765036316711757144211740973149744262803734662633620558793017364031760835130959747223363655994181438806270286559652539117081582631467397313541680997673265951957879568357843743232737378676446853341401085971925590188707082326784588819626467627501941697544345712606625078914053305975901270719792220423478480231375521167167739926372925653371140528659826518794475958385076619131514910909982507766731950042672129161269467299762717761764936364765052902037288971787447178202034127954569901060796908952857979994347919358950149258224035159917188279654755601654190246994673608920784505004253492332405374910001069236946860776148848476959579834870029302596202614091195940205751718386651165346228422016408929050066034504125912795513314695119602948825683340878080777070778012690050855015063324076190109500240995146999031108448252357590507901592308104081489755907622418447693468065260952810243096368000938402872127608725865935069222368421171314416582106167356360747623820260345207194554907942745668528285501795179072931995774131191950958177570274633655888450612189105069628490399469317792051186195967273175318556818820236924436935960777565176452124795470132558120222916573523505195882643367222549623130154780112246285948918272394416940733433530482581599046717460071186211909094837274730811635592026754268633438673442120895584470201583374663417091898468635416733216941772035191135664703158286109844082201102618011862689106242216548220584555590513976685468078211368944019445764869539954426273838793919115615414389214526032883054895485193772513915057446406088541781217762714320039733870584688907624450617831070153302051598109021401687152684226546788716775552831426914990580507123020719235550717307567911150561933590031047463937342621262243470506427658754000379065363678991958637230206450647239014525004769025635587633837055904737255366134324201573322022379657886426027317728181383473964670549286388482993334734346878130877236698582375370483975726072992546075404088122620031789466266074611205483839428351632820160022018212020275439192323494156105057671181397316659017520800429367446734348661200655490422771026605102441145931640921243688617477222629096117833188755766737601733189302397080072138394143464930220704145971719215929181651106825661638810747895929854222209205058778555389259817113445300868734936342922449043217781353354832501204844737145693598201631805870135434916619972056685501292495981917254968908578144808219852020243692316710920008755191305741009399476646065697464251438460126278642664343070429900168788844705042400998707403356398733057199178938216995851605814842504093966673663089023973336975088945482012438562566338933149568824997842036762127429570439683011491683658106895714757454861019548624205561396366731245423615065222382378511532638996915651587042317916289603557253809837362059159220936546894634001613065846346112370030248133088462092124154181368333940122703602142988495848547604718083010836613797517517880546441131978229091689285752281758427520477837875903820894312369275573665487606237876124735748268889446476299061671953348387988084694881270231174564495503814154991029856435054994994620922467662604663233379980288838498163063221339203496257493649845250914608522982801181466913554896388089083013872709123299578569264917169413231525197761663721515663378238648562339687499079902080382037674543784372675759600906078609052388849939242741122632605224728024909658451873627518305471243361323811246624881161014445727271227617499394113986412796919892172286660491917246455852649181337895236678597515063199748120956215391522479826388616600952706760395879290002677080434460592680078007505624800001394394550170270719539313124451778966594894007010936178559392845516896254105000393643909429604922986291910307912473785128173843467179929016387672418566346741202799659824843347993265988869015221292292463240536023574526914472149540664461717498376754297749233934370802268279370766326415856173346201318736221254270631654330860054039558363250222973417845540183321199708057990458915658048920675101646026445041202887008742554732877943735326321047919052360109139650103081132859425013611334426149205296070879536316487718895163198598798609933542856892224878180716591747821330776889415480761995021022275729323128562474813079227287023719739779407301922337899559779105862140037714963734916643529807908696956073830003080367301841199732713842060103182910508605050528915787101541306607383393447472562917080664427835255516945426959365703074390534512101587279822063440277086022478516694223417030194368667588392874357955243633254806847457295604682701294689223010661143854327551392171892427843360643073722047092307725103181625622152489248324684244090866054075701771195574013043518235369902498223095933872103059391525003888598449723334763306122705479058693461782251664037265456112313745231379707185316218505412324018580719007677332405794798972800905936333107731742546607999978559289276445855949555233948371320607693073129433980026720516793732481116976292253249304476410834381674558221955611808862341743545401332144102299415101126250524145437416253748683074569830863071079015362921653711936577821761858633958630477284906895139835989147311457004274488056478186218336196492723787943736603415234774342750441482124294646068412460340746454721709006001482062965787961407621386659085103042698307366614034255210738300312979818777716823951347939971797404444980791692811095827181280570196165972064435253074174635446057951786624724719994380853544112804974072639785305923913837228023059274367882160584106865183967092008058844796123034645829981670748992261334569895605535050279074090390075637887964150755548278662748994354280511821575783998026438361670211942961465887367788775792879196781847009645362880018641899226301012333088018933505832162023256175872896553997180140482783920542245950517669982391350742095690307309678672848032161280524220325239892690235179738064380955568067280532421978339400791101582554195386426326978902870924953943384975772614842028535439983106139870359759937594455251240850316550409441033268099764385468323692897620730659115857385894351277609057960725560469848227850536085179984303262477943746727884587309968569066742386798534352524238833684622714572586755021324577804953291143918079102786440125234550159296719964085170428247149274560796072716213490418810301858728323881280938948900643293526154660697984410706588635915693450825689971517275179957746892815564893998936111299096873762197806961530121410063036854862189118036718439123482081774197273451268923080020655397665004197124305214515804056595911281145258922572186045962011941070325216056321344837988751594172863943403441462242174005020889985239241522522841717421643038057487499709714533899398784699552805608794613365193426545159066436232503633843410344780176435750526768391815408059585671013227345348084756988142804573281695791559608317674816457303884662553365799193403186751480598171582640891789543692178603386182850573193659110709822583667573752355143113498193950886811856908784811244260824066471236458218543145505836363582206439855521937147189221020756205812762853242513832630294520884125394988248795457411484421566119300216519512956852621885057228134710971900369598453058316388984366705043766576864456378487845649011776693998798866729318592813886448480603142326885429033524877754477707432643607208419804210036970290890839213410419935225377511738771420676098577810585973572855227372519897505526716922562680384614705825860404964593305298634734679956651441435439035859773850836128979694253311852487854821227273333857767167799618594563065707654330013378255937610416696494354498728900916881310883150648913776628572520838075482833900584567405105340532817502245503743719227286569449880154154904640399423612781166661510603733627897971731306851009912344263695355324116690282535807593765816077586749118618895115950570591177235434985085666957435280651275413963491453988719029692992161968694131045206644986635569813031381022730746516055155992781812423703528486908716380621737804395897210148258773482836076974281852431605379751249404557228196770845800972945232136686294327064833587611264869606955786703054107479240827316994418874387821675443235393513550516878666313620454882579424401733471581411613266804289377361806164258253521202932214968552475984258939964316924932387228898021945874810063222012961343056650994346447145815801522839167646972899232428331536854514373150054523540017501468754951653274003269374161880782501502704755620850013319767750585440902130068438679646880168860428936602087988967674962978894253568074443200607037188340100722126768189237967284944663608208676218646086080284991159108468294382650645584608722496113267272938823887803786209243315598961767381253010378791584651573502677999137301960508863973013556800966975683505457728607367750127771879369757882760836096111569672784036681326667557354493335580978851316434711806063886327345282401319406407380594387048517062245308820784087319446830506404088843730438618461144821915977238333398727392229238633278329474460697553925055884250345738473752261678472335335721869909567577671705646970519249102272857822556277542743580585491967996635744397255921249510436901593340599729722403407122249591221427608115058589104828973540822571642772874833108386619985783847944455465534587665195569832918091394528144513233542842914418345399743515712510219538491772772227108942881995711607900537161647211905195545792730141194425117181024903479637426650409257564442914864199368257852718458016121984243372973084579956002043899574808234917625228595534393944386025463931380843883083071414640739254314462638287041407412849173831420923342707240689869853966944174314644187340884833951229966703564685660049137865271990893102722183135601341171531651919859918460340287958167661480879914896276746709474752509384544180187351744784517114843640100619549661697296605924381471338956484049116248748262717123112933819776377684378271196131052010395922186280394292382350486252384875288238406310670873242482299816567834991990537490419437993563023822903338350624591687676841772567185771021470542530525526037580448471588427419270289961207296701467460041447475770451959712512110694679842855436531933877567793834124626512295204585211104399831311783729046438893072057720289740071733491516405394590305799321307555472636383140958106688269511910573649684739508616433831006611030931737032526859716785684931865203968567827356309202599504240012263812787930428952238912895875152680602445143161572512532004072484356263267367532282922479747436159179676023159707804299491663700267530712302075934270085791331784516710164238847621287594549710675451221490229646328729380042979692472086230599104205408726773712982506703593112349959060323796337719124647558519442956721225978675006994543085969420458519666656259441573722325784782575742145191435610768387199069121292833507004383181022881087561387131843538430698483311054217815090837071276929285430400300239153087245939119453634861785562546567677750245420845621608921683061006027374151190836112874422632831649161386751147553258375130250997500516774804054484980448535790435774180479220781584850085877245135647610997123199467779594463195720405445900701633805905667163482390705840995802137939054764557085222818244455434929407460773445003348083565296314118729975448798711712076921065490149698900404432485917185524802440624669730649880556764558420230864714473759829290866603279427110713374085689344721336680906632792909790187656368219899128662536934925461113048608523313026078902905753332753565884629494042508325010715341240927757999053511962925135320339466903144723523571380290327836433314872298108337339488607923639450542995229080434489919453860794316730450607563498049652494804076018894361230831487253096077169303859629207046076400602860881686082020486465539437139710471010176883691947646559840323485467582471206474906854110393016171699949124947156953580624197259495045121666528274694164516335882485782515674143755614950551817333114050651050591944600800187682900001488902660344622320253630132378522836713078847372291736748195896381231704840571884603848021998255957418625171308360328800369896517140804014244546370447843751707143104637065331265298222967093144426412314098691883227932426181523658378286583512272352770960467814931650608805280880480769618598579328514972139350310108681248196307010112235540941493979127404313759252877838533708000650174947685538696439431976524317903237091533456096853573821444687501460035763411269186740063448510217047165638083884887214399429681853561947037014778231576629584464915262154350769719255455711481654007572909862025055286614698739889420659640195648108006167813531217856525641993345834046410579002599861760687709538193640174326818179529262786995005633359749358256942810523129671482453388389038642184565377510286335343129866734881585284032470478915525040932412714424517461401778640155567776813559414461910606006700827925729010361104685298128788762652632188002554276465881797686421691411203580621888897297742335163740409472270849728595216173034954754241544767647876834589367925930416641999861346494401465724075900698149368388910345688546238508835871524945856353525224156535536196571645786562397140565313265041583605649192582591405047565362791698274468027686531039249081677577193539445470672648788387585556509109211785826612876037248106628557351306163134776038967020726409430882280402448738985103498240487109122472878098170114093939957809236032935893039400817215122008918913656975097987921350447543251693213928670783561887594829983136603355043282058400942771125403401252766986057108431211266342095235611909386846711197813183423317411772757389793712283197533541725585693637514150959445715992209509026630787045117459246099885669409149564348123248318621269966892664546496337487502218356813146358916250399618160889444359917007349393080269658949114470213173282089699475960013703107679407798182108651375329044786577673164518089496246539565523189615150949633924454910355468622898451390595356033674460852085956516095615637953060102252178746340669449948639011395761847255403847977942462881433114714560848425608820480463502178557890396131208076735087230345573079455342834007056917090660008796968623458972337657026445897896301949890234499947809505228028970337575651116632670084665120643561407343849643779726638494589905544816404351127346424001779601507298826452872131705259767488455459403184159252170036588657407353625350975505851918476142401987672380081534169372617213762886694404515272070910968204870705662326137080633815771868602886401180669203255508194458544198400677359749121227740310819780776828716456723270739422633829480974479930306406969578609792013182124852418238548721951192929081629893776277226087649628217165754556268589445137124030417887250929448931598467948968404516926676287079620010483060516576105523730857468295937169282551230936163070474628410294442197646457780285222381737015230151276146347406862778202345054623333574000163892821378342410964603746878976429621421096514974634178699245569192298733134815963018126677456492823042902773062766075717896114360489334825774374964604280526582457899796439016707390450665901171152332017165455754283000212683640396476186799238504563934219061432758395625911218236351267213474233238928017279957319982887732138545212314489779608668896737480363608740968525306734511248247132059950775103052851487716120225864878751862043405607620339223142115795884112104679113783656542809334135842465678969533036345200816728385018152746210574038761309168420872390265659143214390825168681627326443205881656616168775697050873441491991018148774522320728678390272473353810144184462837437692408538080595959656394262270381111604943744622628011758038252237273177978620228676207204737647004872194579855935040624061472871333287950985857463003708802335003059602488065407847438671656950916936078668092674550865002937908613715568599111628071511205936292621739832179690217449380086711989218989278021004118353253667608392094915266645835897381868889041565097235598164121052922575169099502831351600116864701290024861441365868211070998120532770893176042390008351203566159652849591209943165671983854359786163462778310231415133933809954510332034672809467530298997737097524371608976514234041418607007347069513193876429572786880734399846663772197857430328351833582664201203278078092082524673394558384705580196175015793958836190020363625402663473314253280427229357271310541062742296676111449263698131276582189766439240388217089811344110231599209154288574583365981019608647320253511095545486257001390999837075058645115766592314427518822540783500388725367818065735189228219799165337345255817762854833249302198507069539710261768436655638491301741766420809798031644289030586088277504850078782193279435220040276239456942270858483640280653570864630145938380183170971815505291580674470767813769679836231830322893343533683091533322984994319367127649912569561792230420409972298927445128402680136145532396514329358889872622359727783659305570601735271700944231056023722948446086417021474791237860542916957719238558374135884117778956681131206970041653842948264757754240031468153187027742958961671413585015167971363132942915959340129228106830991087145559380782852082990759972136745385240509714958456143581692599476864092344007315385500236213264267497125167036952559266033281748518052679992799063217066383822214651204648761902047638327473989127455303495792517581810034900307968197172719535934422971864668560594994452678971297623003853240665393494979874416583182171730006592922025112416666206321173948535643863837324471870125997702170653288204690039638665420748621999459267636276536167354592801474466341820341691348693749590382791675972543477342308565581756067050078518556881267961160043856600273356876927346325972626315457249833897018959907155815168583524869558874781436716128095100712663783361675940040815821008743594448373533971585264034034992303220235933076991976916451491362955292313866185306996483578128303579890120765800264804166451188084965127468238685139270960484786491733268496553577386996135213573677358563637386393362443327071124040215299253755960034603226517210430450513894667081271161452752508561332211238889379600792479299938693846041319435478408790307351077194171214925437975712890515737993740332372828485636372371668936446251250440601159119931125883106598638629649064709588418606494965277964919870745294438961077064906751428326415719907290003729623746815738641420406932006670603581609305752349674563459392978085816857652678604541790587705301500168024101388514695632792995858312788438646799880182358796781306860389047798043116266500302763066487395452528702378020026007989461347429553628286944680513211668467312571672923813186917087664358805419691807189078447227347270184354895609684355902440394292713869026246305674182892583981415819530904840797578603650621622158338223969930196167389878522431500483298344714589758555092679897383957409332697279851374481324998121560884109878615755831390987125418503924996215622903473726522461390661725279934809386362169557360943666663475742311446180935374638473508359707520771134511450466881884601728445961616623966941897937494080356802339152548206784954769833700477760806791333887555071875686077125563709297097290451982721356023245574954098053858490946873619275312884713354620482067883308208722492667591289574771345419995434547860952205401089415181910885862897981642589835985451955724967183789857101904864374839289534935587134762850687820200859466881275478217124209035724432895762677301374529869328164827223571222919913648060207613761655260680172986843537624480447925566022239259155122796618131093684783275865905281186206060048708139411737717912347141338362938036785182526117113142429314013834522450129185394447094142275129807844317417392793407879053360307766976219149244630919642047040198934204501277677350269149903445061555631860307429250114563028792052783569636723676583525444158468071099883848854687691869792234131432275801925692847469742216819344580452279272077016199673452631211903801052505900968292142798255836705420893402300315219000673195467636237482127310615049956286398687093976610934217372659352125770076534236844496091548927517703202636569932905601954650226217164602205417858092233403231784285446212368242697495992755841175480208101739804208586814406935406429042163516134167309396053812304909173638386969420070297828870722779958641784163228620878762973503668448545605522136935126919068472760616672684704953637780611137525062727177978951794668997289469656733440534954878357452505601305479064951245106358939670898555636419749651336688786661473473316400335218815333770123764562967999789273014605561539807589005730046839455058965393454886815827094263315650475680333295167255443399199091803743060882096852976889122842601235879109478358242522372324244380013623156775385836904686655579950872267835607847710390098197470774061031226335711365318334635027257454766267864615533408232109418472907476803658543391471618688614901196527429685680377083341946298307976090400672962117863368594913743145640670529721903744854847655423908698447825607666220300706723933434926596750195797809402194210329763075079966271528520824006452404016396106293281999109251805239018502318553292255556589348235565422091551635563125348697393392133746015397288247407602551555025740256252433187602395537270177740800871881366718524324657154555275558041749418782560475665325053696195482871477701761516292181753197326353044501178585345718745378647367659644737914279241788171671820911767896826970063844002946746515177522702308776131644348819229098661391261201309018476016723124872891181789517003293781273631371612220125519924396783376767756861702580234570756715271764857779368573029944090747038788745800308357443299633735012820232893268958681452134321203749896806811259000874651950364545633342890112416337699733278282480916546985566554205539151741996841338946913846905179366139937030199882592476526499651727173887950251456467596491549698344746986195288615316598050197419849739799020062512062730047304292523042518645896782191002359520923876858351838676713141250298056015131305817987145271506179601693186063403758457723376910259928377766999771139955019807799010141219198782586570574611214173106105432086320591303108430656871204335958429961501652164345263631975986258347157989377945591896049175978038525670232432699218296850155000272760296032617177270453863225745200818246636096525793915568750323796951629729216687694477416829080977533524938252705739454404886721963856393263198165517934547471263530202440261374449710761643953270078450327871594902925567445270648437944755782364745258783212684740167762745149232013094607827832379109200586875388875231652096735397600150677850265023109661114824674858776952340761302147984681536503577964742073543112046390653672408449357119466637005335157119342271123262090228162785845944513987193863028262151957934598232789630589698106726844564632312626152262610831504399910693452685188864274388849474908922109510085817780745091202559341693941778790009661387112251332689107129771109732664790311046830748461150250846214319450842705223076506901432290868994382133061363349616277612640743897195489184578842701818527913837724637980268060247404250458225407966455983662441687465499673632162031571264424671925198499792725402976491038261339933287181897292602912632044097321159392236542598895241813536461422106713971165192324378240641259347072993005866436926891661327966889516338490054538705066854035366868288641854333127493171055348225155789701066135410061374850999541540092949539091976720254016525154982984521464724717911206637225647526558715866274933078404509467820555520933092329435692770384794803406166066598383067093459333047559701098900608881822225258963871212697680901561992441759442518539185703891269587012334126444077297997502794168214166881652161701307202512961342040805321985698342540399603503282841238527972117237113788005730243338342996649928170878178760195659167665678510007066934392407340716736412032876919843067879271504330523890929584800102668165967607476483951372487536745894721537452106837899811594405590008001567794269595981114372874397573214849448672848983683636052812311773463697763855019332183116757016107685505021751300449033566440581604238094738067404492891414046416965046596857970442312852540506835553099769049363156930954932889040793461405764043403283319870778433420317456624442453401637622807975323055121565051472501716173960779301826009216453677264524732597810226627652646024112187836821275332067636100600023669467843639804012644266408499257059568270721581109226947528414074354393915855404755649245682597107585293986365921081346188721073358785178853143082450492762708601636350445118092552294046889172605508119397553782881853207394563805823663706365189582002386722711038349922298112408786423971627737936525283296857680929465711586946177097204556593044638505322125344053051916623670361402986786413145576788714741327931631654381008692485579349900633603524997914206421271730484371112729102052792122369727561094279735329645416423318106888853483590377988055233962759102598350256200331619717051158148468314206286926204172411102043908264964362981737195245290204758641873591410614983922360876273245016689445089031093444970361240501705037733742596274624927791936193468342376234691799837267762705666790647705724020855948035941543197182641817542292049073134757305092002418799498829266116567453975639714907133988953689158704270603617946644499662385500076538257104614595849898644888425575527813261510820404228662026336249860941456038771317977157073039948534833799554854559678236962236152954905609739762587327205319693816483941860285088143962536861013519065786851454592995910913130714998774091429705096418598087804048465256004678463544366036446365557848468991311891033279380555646055433919543414024877808188032336896735125113591464465809723440096694516859624305682963080098981673211913401538933525000765931412718756151816724394131330475652636867361792172063965455109233819987506992047434171639572997392944842189580339016022107620777200098238712347002912902458287411917743542416497448896145253066315029594016879259378613339788892689851711785230494024621698173443963914167445415600867567500844686934043751104539159184158806036222109098714587538516195346902802578675035774010543121071193945130315165036682290474238576610902099493701278978111571025482461887061315378514771786178680468222939246450504159315467636153609877894102252242301995494720412817237068264208390798694314345013867477548952024415243035791360460762968085901539053242931287326792107266181527030095511910642483889976262472274070171197219601012934681220473399036462286811298182557860703889119847419452597771636095773009535073617056786752503402953971871686893527742063554264196510823201895278522537248935842569937312345853392258299682752966802321730430688372494573340293171277035548453375904113001225625291088713197238832340417484169424578626679010187372932797706138295815680851411821054414329930116141385095586284201830631484351984350901366827505795462466065805284809432873549204383128864783718472681102374390403023073155171695145606788618338167875325568394835906974081315677617303089402793141137777769292153589174721352506327255969251913905398778247121729490638378603324584373350359006063956796912571164276237380879787535187921209240665648313250497689588102976599914572369481928272106992816421249655436708187757533055788171151291816219362942573598945713939756706862667785381772691635613266605724300843438243318086137059512813252839764586534575977330861497735686481984321230125102216974012535955808472457659760859805066170972711557126207350720236429803105635732351503215856003804614885229582963477630930309860820323906808344542925760648540196546479413936389231364915722755774356208795545362572907071111122574661057102169935059187382841342758436984993193448553451339997288622445807860403040926836464794733658765691913608050486369452627192574120452465007664612889405052197682864528917031994411896844812269396429920285578786749518563030190784949830348427793758274891204507139087436328367415945218795557685605469521501844701596848437069719275543507898048237581043939132683997021389998034736840473327100185729845810095249339370304717367845853359115275504061987958747022330343727463860506713302164456233846923042131300493905238399786586129476429639860831644622318678757881089307014044174756381347469689880810382729351654852015372991656554596409145874219803255748904721616435403025815181722072124103433457221631623163885290498373835728733004238183259441869666722105668912698963602427839001539631394368456090692250283374554093262132111664453786977346803143874707462490942716073347815652753872897725257274399173552963344370208260546001610776825391910449830564080859797297208624488238458106963339623248156801673091829015945337315877253012861027946238400443136556642991642430122109702262786191150760622064293306413506863939751533187641164811889437378023793970777942460078233213320520283390757449037998494306110974770703280805049850425929351106913396561611898688474414757445530361881028882660916278526911936743720312197955459634141939955905079206438321466717372759572808278069746975597245484575037657703336118983293333077640450983041938840568815378662811070386267910833627979076751287953925107195888054169721274770601035413309948582550429385550350236645951109480640515149149584867660115737912434446998797070172020062376366134891345643485359480786784039515799087976594221164072976383992614662695666352917462878264135909929593804265195878361473917004552988553212036660530907736521642254650229638874332716634986978361544722833601922071316801884762192868705149651074237985532552990282607017353792282428219880993262650967509999219406106911877927684230549685527502286975221452347864693577329006816600600040576731061134583408847053964380783632379256458954273675849902624392917909073516209780841437021052191910390670109222128043847990590682946033226113552830129131323784522028868762797731374302432709016841652797389333940997506820598772134821609814593607333760185952390398041397925043497132872109837617172883676980728397184677043367129888756454168777989354511956007655897582845369360174119103294756398122839372795371476817858579179221198737548919059588750370606617729648033063035326172270100951075701829820506908364695692039868342749696531675156138249555302680515840554615326243670886918432858329756029223012158386511464871522429652900487104082462552959248787182276314182250306171756768890309768408003599075515489540036782284164335690807814470520126277397313136312446459348461624922788631325809294260274048994744094580869693245336446944508905046317501997660039360687126751011953379205110782385841602858649081547002392491783714691549260285848053061675568720836657031202835640008454727322778744430280013742658052479292754046733245512795296869872192536461278853520050472894887004481201512155339902926312594622794459410876236211664881951708116564509710860344387886748485597837203106248543623756628615409219462908163434853280225428171275628729802637393349029516209561062503476619624722311451883069127543836839127932002937795185956124168144494054885168068502654585579664595902483339503292490501077841502466433902897162640557333858364006082324994383770626060945382342487312628495549722980673578420604525346626325174846640311126368665143808572434998465647287182418515131356373238296899664848704679598876373536599190927577557864641149663309167247529316657184699499923789660390092121079026042216311223820097494510654923976989631912420741853983096716440038067602777368667208048222438106159227186641038130806053577059984495285197285536346189966434594128601855666100920451623556091161231973645811702693125320796644432805921587700929230646558197941755731169235147708071749871970393159498588529921898053798000358008182215913142777979491632870646071426359621802241451519516682896818329597031022037680995405944444909325419513204491096940946479251672172012408535672645351927017441739529910558680011629530781051484707685897044926465850040917763218900058149093959860242953237046811760950259133266101184749286083265785899977099939529157199273967470673663046143470684149675411092121291150248200853795290333017296627679831880646724840002997155191235829664066405734382328800865616524064147924124213574093925673096740630557306714658271817120988100035259473596404388770899472607600686731706515409367519839673628514248133275586327482524645438434240687541054137091620292781421694966096085709337616338809424895446310086606783618342299797162273139013788514703674660169360653792029569703868844605586674042335152348322990686193088968639371409313777268767220818421709412284348698420708812617822807969189334606255670093997388385050180149400108413914361721814933041161289471439270285317619805806258410428445557484238630466146094943741924663629334610647005141821935082213786497301599726500750591457740626483855920362054685963797774891094804861717570284315324557127569504696695696818377014888930018945654189144224542782878259858465136592949161966144187718013134363862330710052621569387422993119758773456350652098543119534116189528638471068376969753585215840913834134082932828060660660422066831373776108659246860730209244569925153288823450565948726883735591818291912375616117243080169748131502498984410332264286029728392074139317664691694844032363993227124951734104695724705554885499061576438731586256585546860722008858342472973474655898590939343061043650955457959975784388841397595395153362510410325797564696780231598714261806385758679001583573533710923749453463054179884797852803656952273256383214947966111919458497850723685570622612547704655869185323645919443337565587364476324485152729086707910452326346121298360629306757144619741111200350197793446977738732539587696898110326403769543257251598912399306753197515295364076803749105712710012611587720934647488641265895369877286218181962658556971885192070363326136812714133717942178189184595234279768930440436243389796777615945577227669246323583215163373924344016484960618499155332822918760729151452935582471348926829377138768742657499973755673146613512312452690414942557452736608664754281133401657985224441979110415702109286006933546962720573617906120740310922079283018849963640771603472555832900973613834491518350614473932373681117361754941250651904889247190483756851871115239650406101186392916046991521886609646558700065925665396700822356481095632694851589661225927288502271951297141466146813627111519519486352611198116286551904761518443787799076347974887815010344612404594306730547306273472232658803538368046599578660557058272321002449748642707429875278378671294858108227055441466462683252248614212226620416381994168209139705558697540552982655389905258818321477677146817728424677611878674376856649376700291807922354831402118055787168237724350900949539181445512116259526533123331495229525626339034985072998044804814661406355368582600382083712914656651706220445558949810765195106628814380271328834002935701790146423816420125096871831199986148925489380280865483777888913576091455952729429019187816290213714523417766624143289772902953124376986352438176741770496312221161656226165140531406674185163937451372997897306949927587188579478050660559063031088813317719156024258131010082910078205113287120241118329331112295587883491047392044078898678147412136202397597860486766469834639471341622583499982153687405060019652062112830134025507613311142253988500657610719491245725213870688974350339436717018299061815708838157901505006621315989363967391679255240653533566620675249024785762087304261783088907254738967673560619730665973286033467984235874089075573829684938046548906388065244830300961857247272075812951454437960888461988390095286691164893797517206762556754549502134522806345245712685241614909868325425129253911591617285722112793533728874415933096180335166874481313314232882521679847222248660833896723790987210714267635261918630297367453960655278707666819138193341807333774926994470912625195687073632818477102200481224158835790525227515250614071964958518423661613037133589704771744518465081966875589475925191841460616876801637072087176706956627323952312204595116735950553701767497573187903127404135301863301484908948238746664878589413578401347866273798195131651914663017586882761998254841762928157579715513363547144836553401845701666397695992093520639779418257029874052345496584764503341844122385152100898417838596184895657490586381111869009479958746386486472965599256916994634141087736153172858458236202471311208277714795947528389411816834673706797988909721449467677417204748117274419708604748941931300929380076915127822458836567675341627857999679640459702331540671913839723895461430249256118474890536512029034297349903394801840446277420281648445084470167529820467832576329536265271364432451954494632900301470534133640705579017350423899064025297170577176084892548415630366153043513955248020239101802573338685680967228083523696426078078862050786082625797847956717293981175302847959463736751761355083425090328706396308106844650191169071667072623115314275143659029307337211143612336004076813740904852360280107339335751598283225700130404775418887113471328646790660572000687825650991777860183547509526188230574284917069471906561914208528917322714942220199422743321280546160357909335543613081309058202623333722381061146825842066679678387256857769614686968901394936083396070110296150891747106117698580291230914870376614736551376136652866268619829093890228747676747138401944949226735051690505355543533935529683692696281660760469423687428563246615580133192226302507583029996563462349624040097984167415968128943469674054646659111250841289764233507369548823023955500186451919176801744837467123592906384531011330632034852665437904659215601236727445024362189711526623017816470439974093785517259503963067612768127638791523152573073378392073700370956113859453607928094492072443783719836545380938053414955311252599997572043351027600450839525254213246038855730456247828150009626085259851835978463221378767706753768311020594492548341140866927952429004802356931461726294377406344388767754962025123495242624262354757705551926790028813621486422458407306718219815795382023999049006451313698423116072765121227973107200706203970948162563764743438024113117664608147295663323494940658030159684413255663672347378356496956453003003716021434514044815614050318407926678177724305998844107671820428052464176176743755267332511114122383709648648911702911621424128787821409803667855608174041066677314407026602763340063840775962777899977375095742310799784257336983962933290351520127533453903884700186999140126582969245049022845895928736250409241583167972630425483817439307510600085264791803414372006108905858974695854780643790085280263554704665648312966594809802532983789576859148074408011494185785312111699711492015263783807173742340323573804962230753226330902817593280800726807293625884402631763166435510149825344098065052941959054759162910312667010381046030990785606408986290528180891078591679290718658172086551602341357507996937918623367126746569087578606480147105024666824414863448020441790755195422118067721757914959932553520225579302654414365092920758126998153747540499965658864472957857104115952091115034274737767452590538539839702793175329149952474429745626012054157703432420314473511085689589772293475763201717555188154352009349696304543780908269147954852365095672633339014402086386770684457527842214932486023271915549912923862575835529168737392387131061806306791172720060441742329493651870782275701973802768387196131957555505897068427117651583109944198231285579219834934578981862109199293169760503516924491579608132914827233173962027615998844777388603842064531427301923025167056094258119445493746639729036483201774191855781651807326771899039024342062469532350106524103107859302963114598495345564800382881211960354823522537394809091091294749769077331834730946146313349677797563825585965596213317809456341041535792088128965506413461058791535638436205887237325830516295033888538719060944597606613460446824054921057298301281208209946053987613949489123254197285239868476973689522102239517970630083642795266642858677792578618067409831141258371327531060642396143871542586219345431865447744975390186658499702814995091001754610397668656555199275735530437626464519575059139637578405216013464182633050748667250709185301602667403448481058358579803473243056053506836427713385267862160807542731051713501203960045660785164984774245580685523243206177914329280447192743195595426226153164378405884792105552667324941177295973905006094819044817100879163828893433161667618656477909743708664241577667076009732381938582886165045865933500428341998978664611163991797476501043787634134788561478745545153290357690583620235780622236084628274349768299751599029362046715422848384198120762883779731240345292670321201903818908011135060622181500807073460383034458080805752563370084616618043141182128836819941455870353891279110710345047631560755632464305829323539290601906963824071592617152584825078617461926336636158101138815345092540609265259572695544809996646006670008945985767173150477334747945929349719232468023687033700773779894837732994427815624403637125239810803608230704261346434015026149436205279233302817263187399695722874943555577791949212244165656162653875983552671216999965643174334959055591964074636245010905243907093737076986498093648123005873906957936905736716617566155915232110007175646281027271276927650324951538004033347904075100299580349239309911824502050240799761552866956991307575492120517381668766061175607871006333551134650811758470103033993081814111975792992718245294543327662408921438732838083556863444295080124029374149735254005511095094377162574819065879886778345208701650840769064723679855881135735912809216185915335824079037385571245549860317840830034551242226223329090330975551782671605984454701432264373646770853098782027877948826210935815210196331565199302366061546903540657379232851172518630472422524045231211165742242876638915813349027872889168250448773318850038591182062322212083849401584830884057150386516033702877769566235565086393617511932394928600802459726047195667639771396068271042030595942112598542258757970764968240289458849148775106994412415523849850792779953623454462291633360203520572131487669012952810020889070459546025824904388191033377817582050334276472499385644182070377950032954701653719323429887827096589661341141353803308279948816113519818658491037291513563209389097222025730278161117719926236519102961839136788045640456780919240120776562510713081661871491413472293825945420919435819000211388503494543524533633370979368424424369662683191869698637383058715885917697223793217966031104503077134273171122482048217819886715635237204188166602776651751564078983535833143790491062433864285142210341617685519804670106291418241793315145369257972101665293084946963388759517489449349271014683513219306064076048375108106317321051808070243597387539784698719088418838633204049408654356671316527242524843249539577891810550731623238652236610963169725114687373967370529385450317113466189900619925843206407489895848957639360165169211745666883567575695311222168666270705376719570318653537817128385175244014085841655271588745436540064525950169973394419044743518764419119096713290476532301664850733789193724358965684826324470321738810979597045445785539973778232400321977678405898246115799570397405861326967069768215436083936646270634626423023791991949956917120898739587980546689110608552028166548675299969241995079881402675087485266569256931271486815213707121428349740365543192089897060962522721031470625228621809982119062649631607096352837905722470834985091040639520672552580423944584729263748413377300663024466614512060020682428311746805227559041777950350209722558836889893969844821394478744443328447586386259312073181606418947923817915374450385411116947412142876546276590276183946571784321907050973835479470073478867244661351686136913094381226802398548040542881334035026841636022077913810986468722654911511492975184432772522594927315690803432695026666538228528970048438098702137484424259086263795985486160874531386262617156801122774594565412719635019009575732995230149760895567519875388146663939207237863807771231380775426346547490995542072373665715694518406523842462033117219377150383388615458635975217615724436848777014003881679207007490294650767039468236606908549432299251584969791246620001564234871804146208746973306273304651811767210640864424628773427821885650448808003521082220666871929782465126808107810933087508612395410484014792425892655518742367834835882972853471494892528827871465488421648405730882310643205663640395194309524269833732124837353165989416905650605724036387291107034343076147701960171291646003772173739797648626411736240876202527094602465059008160926051355066810207781049852126723165242904388264347418890170232370003018014056137981812257107561767641283690066729269907861186331099703718271413929188217196933976317114926878333333661483191011661954285338237009562600377812964989130365279400878751374373554355008893667948320128721581324108759519344561612362166749105252478049346425099980909085882814525163657681464808114678412406805570721915656590253477840692776250582905011744558166019984930485908754880214894703563744880008499255114400599184576648723283668734788855166543994927406468593050385477818125010543293972660066174606181088093907869111500089414539888682888165575806972970317133425621257981323017503027011674086144551970878432862262311801182566913915195322636427539296117713023800082804683305324801166942511436013517785116001755249224182619359161065870535675278276639720560908195886980506141074343175357336374038847702427574619287652483868126440728813882907384417462487554835721032625847635676995335140448335784575847249001556015098936072307662165350142305192898175633444595028570572678674352912365570346292631612592066392267794434752737430797912566472321056392333277720874195995593528937848706320917254214375804208976445365094901182582403940607563815671694554826907332205205235678690013299468507087938761263616642645525469172491093983165440727429785064573709764295362894252897673900601595678310951612242321339063455841953582466993763335667344197660053914024053233177197175703395337655856350992308846517509719348191995900363949937822196433641091942717713935297274699070481854473245172455471665691660885677304137203550601596691349488911160101747161679606118237896325160862906924530254114427671388592663014224127128035938108569331273331376516392564655645710180541454473235947879463038752893348496109529017864098293399586929112412565246114313331080386993773910009001086931143103907220023785823746104009622853014784883996200112561155895882476443044255840812212249940375218901028565964076226840502138519071008170702653643845053937869849641932089153524112807278254740761573611615805957209697705920436481422196679937936536242943966319078056744690432863448925444038782188971472982068394012194546698007599850331077170302514827609321850268104208906380775024811037158842350893510280997106142859953194136180649241440244406298804444337987937804411553504218837422066264799048316632558946142121304041511794107023932901498391968677028461856623214096263674514891473904557484154532989102000136031971809084932856878094783792332089875834209637779394616513629180582817403163418571784357857512712648692736812423667598952379511338328943537636663825883983163027428591539831826420310296293231218227813104175445440064079352825650971307186533558869665312659527805712526018099413160268079786091082581056386700644408460447516804643373367753752684376067040762047678892800043701835127873594751946796843732243326130016222104153334340367168397115616265220466825295345885567074458379193277638014503584820144446307458114143312911272180985116908342822429615224747109062352556357607071725808351792966604831698286615287954216992106557370667546231450040680604950658505659838657232968018811664718044401470692511120860736794730701245656380983622906632475304704652876955778971202276471345753918351959140320965278796454406869536328194532458418739428064989012221026804441458622116718712087744247173404620972667665160037490513544736882118656880399984560422999948721154166994765977736885072207448075117418286573191356745107878664685321894190296150139259550832396715476676095973738894400976925768499089555622325752167553811590613382769622878102359292434251595462545578026792640786600112242914837417616212235830567453100823789803968563667494194767117503277661698052682049917678864923034055183304946489378432821847769118406894660773906765010678974392260665128590207623625402029669444476786955163669097511990394860144469704271831197911118155483315331404234174763665544724767973139564714542143200355467659792930455956459902627188890646838558540757658635705417073929608729311436571904436734947613826944921149092259347576038505729356216136035073559821988485525583062856037765777315898346179575026858834307097888223156780197657996261975520723620589636167185379445190667709242342127166971126966595980737159280916869314713597618819629040444721164615201892354150403094675466121611762647006696449463733498357397884938725668075418111314776916224279286499316855088863227915261716383658708755161399100594034363013438179157065557201674012116977321443176211026883160866908182307646588302666973181427263442162898529776033022483375129276442225067333427517127902070528565475559912355384666064152837713073847820787223490031179710096329441956314989570213824593555639318386947798706478064903498501815496792246515795006028849497706902274440366388237097090035646294055189422430945589284093350345255973660392699492756356678899588867341568043167741966517955890822718273181166795768512028288514743843930828518534322107734517883830252180938121402903067299995897294162491829009543139393656654133828502816587735411506761375139433918473495697354016526426592105436838977074273538907862898434684215917318745319422127150314525852532971872224424649902330160050645477567827631252214335220699633136609514765950514123036323183838856568376082102624808719039701095269332696696231952004331912000108126065841839991133897485183060730261627899118862207729655193074079241864537336022115737163567494617426949478196060627529340835276132014156529669582158875769951623969269841933754588903855493766952122253900692828446283069099719886033594914483350983210055345787070238380828352465491912409748931364036803298226565420538799285930725922007736542408699965861771618782290949184808087160576750365283738003707821529686064220096745564063899422038360282087983465930251652633645903675764398437443606019261313628603093264722422257870302326887810857464550641463903973837546509335446454687973014786898910631570326079780164555632416101082018983783774311468764496683028848891780336036754649727562900711040843982522078039882798540019022752762678803085371243012404288881213504503090037409482199519667177701407919980970729325288200269332556991829121610797343806601971065130919994814012606565959552660725626167902901371679082909768553815319802641240297242672044163671577760003404049018794826829753462532450500300007320856475015129477422791067635769687021954770799483021983876184491132539510958910507279444857378854909503912335246993720976142665636338033656898244599540567571618053215265417607272398449860934815655016033790291862199461492782466162393570130115701641079283498101486110462076336146459246566765250439129366978147099948455868805123343915507388050378778180760024365342926563845456822218059866184527317028833592573994569960964084060025452189703524337478421374113281033922106058106304821352975252528621938420067801668921290815577000469830659384851946900124226269368759889344060946191949298949994614578938598315905090657955035743405903876309486427776788295951024375049807385398041280365303089032676945543615558864742685483979986294877597899123884120190240781202496980725311447095098971136303123889717338613320930438782988790270023639328916530091555672541333048045633146025301782781391180579491103316374132491977789646325730423162030586802699205764189715624833338778722026837381891420650410146227718579625387613349937060623552429859126593516882033618453259178959426019755906317551385375529874391197032390095172706442255908360487766673669982877011066832880071001860679397018211704774553336269683855348012897925853468421377759175453710947961894068367164981531189188713018139903552717069277569125667991897167714348803283644934056468971813834064032445633854994005228115444203897193244150129477618685672756844240687913377196600764824076581381145452489410457530696374910065587831562579347815773830666452822032521781818723259872441768937054378726037072081910409402170852757888463730890970241627362777359332224081930103449625747930066253831737504549116214551866455863152927400457428025931223246413874133355678509211662576794847635221204635534050083666732794486508628066479591658359594008846760029283448444269361269245696092516463778541009294769206872444411619737668448800939206074221152307747892550836168946059205280731247194766411695804007127953404970711305891454908681375141441786343090353143502429142674393911020454593543574359915767809452307518881870083690304855679517293628391079113152262544057764706295573029666962684501943098785613630798209387150714638115788388332154894016701580490465005498022483033958745314267496756048113793892290328867599501153042883443927738863311601760015549425767328842387958605159850900271807425632356159996418012936679214998605282953851910773400653811804259835277705033546847426638779433224574334289568243657048740078039762105503395583312237781219883069684856955615652773432497784078167342272771980272099201487299500644604489310775566990136509665865587551683786235082317106483966071653030400233907139358169738265905446611598085375625462349126480414381736317082007100608398833933064296182771938425568896243873253098256544069674819179627000932673135859069806631417340750394580694975245445358138843938443560401454640654055055434252379524761663636413250608154786166659159390070283533490928073107967127899986027416711448123899194228055491032381766660736171208760106177479967668114408272120291052792802141744508633694048015506870473144993991656726737060152237251646186701452609715407028409727447261353796838762646721979820032194759699039660053900631189926266513740997150415244398009047727623675963632149670421453021134483876275333426045743187719275655954479127844365993197269314610250667612505801653464073044553123744636626543250932816642916462247404964844645050052047312438370740188032312374971535142749394914891234259374513549705950598387371204272657538659951240821300678642654596359890273158944444215791850240046613136018543890402353703788831257974423647341321348207399138183867137936980630632082536885172417528921680233568144706492463286087086395107996437774873212179613156331381286106644646902465673303106619518544520308249897805604092560862466428616450209530823707406876474338250279688640660061143188922856136723899561192688652329138940412961274476968333909451171897322574185214131439768053695376757285670340403696396739819899333267587200547216918485428012219179038302972362156365236114782907694173044254542763751342594640751757971387905340722458278833614232380052605560988579455083385143962825801517685644193232421885716430535644524035908478063231720530971047011155529083545585698666117112765811327721098301810713532631104209226699191559799713585666030814004521066721987028206662179038843832564079937736436571053295196399542167632750974873347130905020376027171520218378872021898227165474399816817965643421478023364041505305635338742422128212155534377954826611583298546458564753526973741221180438734009177638512949099819643452938111006549301015037762937153247092867097769473763401507423953644874913524878364525944999119591034330973297753330567178039973731641999582417179174276652352730702021029572304124314795922371568766399848047147816018590544251652587396785444467055123224279749874014446301987991033933103497978135156770933717977216207752783492957684979123304274300443919158086067239842430784100375097141450971176912886284830072679694974489381801040783881132620745128113752884378749758034205765989088892278161120630923874501457518701449437896821601438986782061391788308126056921492363961784277286533852881341847903501495911286073258289229752658669452237415595186786417609030954358831096385589529914211712905605373121791353295079758993304337330377071701820179741007796516642874297372253310669619516155324720242947008713624306499252219143417953195166835725054658522570261766853823735261645148170117190459349196003321964175022869826408700091317722898713096043953552332948488750084489291730662542481493773261453710409782660369700570665708343354399390752369202611146151991616603753513849506406344138789629380556800601135803393835423975191479683960074314200865953088732153093058515808002511422029776265688513694441668398601820496543808763787737808360934256260553634230086676381778384293151328611045194356201591593750847854659436027152174869284006659752424583473061895593583739660319896086881623400674701280967188518605956352396231144210673636276092086295438865907832327566052298892415760413617950708054771773848288862207830098551536645879657149271260483855551552535029124857177123256405613526971534447239258965379603180993065695103885053742341915331457971464124447815235555825974458915280161841964319085651559719129709055154533709885795208505001836768964907684275191400600113344043631159884330281415355428982645698919882221027690916939697057645088975794234830441436339930174150992209982651167510964450526183415669948075738456582262425963454386291850170603874535172156850411020996084125411863244529883527061665790973859605396405510245881918273659330185382863985228886028001502393195116396729639309684822277363611474442989557401440813957460354142472804463624914024877160904894178844553867500753937377861650960043228698648513328721447940887988843868642929786940809376551851509561144890331530550892062503859777889781661225689931391992331650920675319239073260590716649455575290550628275104934514296700428708997209944559674225508186787937532803731442576460119203888606698988648999470120634216386112482716215458984647001930212385732918426980269156088202287740455233944236218297995159577891874450616532136216219234271114804199188975666523009321388755402524062386679658369208135235981545607985208878729641156767304494543003708665887802714434913932625558371780202026508964294419015844529694986855626626420318543011965631901645867761530772948738504994173617081821308409388372087308785190146679101533115457248344469066290738030625158741652743637039045264024250728927551756426343404284509233403370280337795531396283331510759859042579342161598631931564079904714496040188025497121785205197996045744989789555816493480478572935476744110131393340387815581467647485315353815583764338379862542393543723321951216630682494060470869612148096129928669033934641291601193383178624723455593334910181637862764766226514141869447100740723332427651691033835432445329400841882759813206451101667303153437688599504774029787181480826186536592911409668018059024208062621302380109491458936226949259867430428048302771619872257468078003770803898095323122363000820042441732423019975913975381302409159818161051537734351302945253359217138252333863312453540122598777121518782965818149208515552202749148682314169730679915244582415901991519748666151671202469745051592215417890422564611611979778637717937347936283425593207141750213028637407188379751970018501703630892759988883584658676350922931911634210651066036622809122252436954018362512438413271659625312944635286386527908994994984017281511197347887671172100084709600497076549532840362281052974554689140524420609198804391639680019153164385623357848304595385323744355635780943983551922340765790971640701604936978083077401857160982404738272633524334026915568359683249334977929315947911283141241517086251717935575111015412890839338713617791733507162140108293204767373069533269702407025824522684467363532549370619372353484860283283950520602448900453518900092015246442767589297076102415587523849209771309758458558442848304824946080561425497601685233892012929840972078770174557572549487015069736256978900384472426101393199875829079713504451897717194698166959933446505878096450489884389868079125840016575779329473909158181859764005348083120795568591537099024130429578773624096186228920036695166251097075863502693611497446039265480788593643881333144494641352235625775478258228485012751585254487940866318292916193993147108673699864024673364031921378191109466585932938169764750033480020255834573520130570909370239104973601769926228049135980549637040572768500328520960405325364258809974385544001736713134671887026081124121631925520732832999114181190478605965443648438040060725286866768210517432322238979277568825397623529847374549583978761660043773702496611556733653731075863379528505131819891956214780840222430985340907664031771747965934919562439680902069982610491068380010203348743732165557068992080332534646595383804756101465688871635631930053945719887936570676039135758812146363625456525697143231046943926163033390006684802523371908875516127221991475980536048632011054871970969431800767572523016808204504737982184803521402758942515386456681955853190238010840626147873849880424542158794624530973135475500011993615830301027369833546990513904086872051546612961597421997413235645555991540332790825878961688381363076769218241517215826333489939515273490413336234983187682695335662569540596539956612409765509668239195429625827702930779537053683730010114236637795843729320283554876247595332114193260815875318839324808212301572622945234621617540839100750008925249242879180231085877641872321406868025407615954762006252980330581496202615885753836789622719670434359331063450456160259889128595874229431072010331161583763897495601366517028551883505137045494701533598980709766934409531844533354137406293965158291367594480799865437796047793567929886034686259973413070668964440418967571717520596049639985659109582247095824080427402279083498019769664143237932866307645151797490088001530909442687697981388784320115045353182463743390627310942116676503223400163065550858049449209738286640237335176550682014312062749678633725681377124236227809296468181556538514321892545309991900635160744051876931344286049965672100677192531783654740117169102847361104536225462760200401334104466400877512699161164655999370130031362278785334090907362021527254849195742621785488950851597411984251032493205790116705716336718440319139883329537856436312015626625870010850512458740921978631347192155750251513481444775103931571505206581905641636261152662295484118509557916825396241454562346774883764387224349020089651536212358249601578582443941704967476423231606578001004950754196170113151111990441647399600698080628149270870810764547349934797691897419875609635259997361359806614620243995065510488867167301131962969128287068181934300489074429629956859616587673159656370414888243543774654024874266349772285475588543747271098685850232222537550197679461266602330043366453989738053977816304086329296705754545852635125986623039550059253128382478705851140816391023087459670678391310557260401959847698607108740420585730244909189812050127490560311872256954874100420209676072289546475347611609433535323005656874919903855748329804990428143713844545195500733761081316491648127044256349901178510348598177284043183474348380691929571404174794524425603702815360989843965958935738397206379835388747801110537446766368854359958717887656962086691454386743286830046674092798400876051055337773320215635417522623720774868896824293194083152187555074092874392855468666030906577833909221564461791915662657576627325988781075687419777409017543518594826602844504855933975970841171445877564897747743971367842302030463920599722858799713112532487907507680835835986241432969400791306382050368505482015211159382159498636019015154171321814653760976398771044780560511250707854899111212585873981384143783722899800156729076305323408984488052335720235036600372872778994857938635682878962553840300314584959543301510767329750846568964916510317658702892027237932634000079005635234404437752680435494430243391328017217512229879464090275359546112186304965211628685471746164213595090441798707903110132256518992457841400880463988141922080425654811003348125364406803090369165866553693077643290440592998825630400230796982676223416869808377114371078645291443203862116637936088373455017950870649736907238823617622143008685704725233043513813238108619269312234741851376943373960147489896794224105722673734105028959443613651666820028226700887897641880038170643704343904250958011843740399141308268842039729195069525481378425623596813288778407048704846176660079427818783074917202853889772502951655417521072829573524525599119475156181889363382318758688240951547718020783455422008617410258885236014071918418844126969784816571302688038134561861965709430278822618860488151272733257178092835017333813390234128244581945398191292047254898463640531911818861584176542049170216273906698480015876371998423983253183121127443909359650936859327818596178808770236426266951246584029486600359125334620180878601137941430980462757189967186365713454475041981328805556236297663191996026826174151574166558150275291435093679346918905630002479511861629568283849178942571963446731626942831219557246840337026413956213848195332638297533390367615679140035616883321270231184211048456430928520837170939060354501721698942598578506685223869693333190284809451862439200503547328606294869683073385588224479035986500702649866722965460861315102670943710694751743098679454001320438403264549114525245843778805208476093783612430288254180095655828069676395138156075226459070923776324227308141933062913382323570120524386336879780632766892373988195515223570292209802735167810123827068302096729951751015940251418104836051951179948581555814739892267611157294720517038968001217318208059297643245388170081497927690780352599198769181116947353136082803492471472184143291940574758591201856779782303478205952182607118872548551157074735553362833983409304965938252709572317371567332266190886525606014108630519856505229309015452627200455577704107737960318290570999116046489790371465231923690488984143008176640258614324866981746821437480330119559055919524682952889988760823029803052882884356948148717591749069848929997157078023535831483454923322146595412220526687496007466325425703574562843094661390346537355635069867899867576516723000989134499489462124761062552600207192563458708138706059818357266838166927716195067298949664632509591916810383481710262363190340631674676447973062244968184736393789927152552646349493003556325699906366470271392358506415026743294896939046949191812667281092192374305463460516190795498389915131299279889205817600698500311791286299569933798919543331482664001092244942972093892864170631904814374665777631745455487874605748938694987580159614246668731499895783432552360499550460931656016019240159900981515501976729681514000526132393417112296834223117406781647828108859892633708595633217607240724710334288601117738655276019680485853597700842294705999890518516885571427799335984792759170085348637223967093195434182690637989588252772519995511765645091311869353668851925180283594648398290813550627745429500801431145341323697251077299738822747746121197531764700221597616735798205356063053416588970299721457077955703800637388162390314758759568477183429750436422887130666400592967030693892582421291428720857625812385157110239059943451072466991671216959117592111210209467684254097859049293833627904005161614906677102424855623756041911891419327325445955975041305055036845794196716068214803985432347702434120949796379060171084324967300646910652827207151148216454871733456012307467755305878576060800743086501812245740957553721552024658002967916037022153529402993346667270634374146887744495909309532815104306061101016346396111654184359348837043174524741253440484972570250138540516533335319698102968799277169670621202573611240348755306444188265914434269248128178220933120792972096314650105457557631233312492446446312095275891139872475849404531514667007249767357467759437664512078664446929679122687230834992518814074344130323700442502868654835160353423481196260318535506271022196169455846186826373475714238905581150136179161752879191657582260895760038197333238133504196274699589532677802580098251205656952181834376666718268413767929247193453943213414214050074644889775122335373535151903426244472019955776426735557570339701335332981212016706954334179298794325764258060983006761838404657220347210072988416375033913121820737893515478901647720959185323300396917798351653763709571964017946664587442343591908422749908224189189212335266971166595504415967451747198004994793393216609394621097617455082377148228517790386129773845702447207913884100292052094962361531501502258852788969914896251849088084273660662246690249907024385141890692488925286981087490469301014000411568728328743393234744800599418248341211190410068578797523160164254453312976337499985721740207828396016917796821631438553337266345812250185269449009029590565507759542373077999595104824338220792829084456502580113591952970620526563876856022327595570951482647787420702305654164062610394698707497574548335715686495925167687091258538349341346310096594659320959794723115771361992415257447869600688193577222475872988725277624936630204237730588879852085213224045485724247459228679931337254842389473000463739118687342200396737361453263854306666200834565757889756256649413780580771256894995613788628734784496233919789001255135585549765832978133271002080984151193431830203439648463012697451245912270894250359720961535945808292544204809835730444042509120792650138903631395027155577531967802334782291980419510299096811028609053753101481855688654520925522462784525435979333892293565424508463396669345050116473788574969927387034831468919529233955525079222028271094245455937690769765467258374356978709622662154418207777858780532409841237240381701241458884809635965492481517013505421587882750959648575462341765113584377882123675499483788313578924955623318449678623355480179799977601159966392574679031790852349746613260353399819207386802133591444547394740173066484014241839731800434098966200951547989250338231460579115826850147508495761615131412968682890224674399242964103392574576464524510042061930190025934982701373796846978122903873668656287390775258460235015878197296707634764858192142936210130679938637734202780909640949765616396537156229419407841507627041295750175139739961493295817027465978770580335386586498820611906544845813944462566919726512061537173176982290498960629494984205557317391422680722147745288861619033492843939425070365944034507187975931130544283738210276855705385055554249442210659485321640262211565637049949895376511727950576459078741384071592685884609086992374969640764073702849432377334993095656747707201405504838647087358804761752128010270524235337806617029147841002026278397157590251938712369345531478986551776680985838292580946323341537482930442909047479491063182523910740556733081164605095307897186620237498868717633127912997419134312874669712095338306363401811697642470086806679189000503379138771683519390921272497909775264555299376321637227393956109976103482600142596926872225673194884203250534577875116799759951677365748421146406981607715498115937878654735777919331360559132912383935467998717255233543163690681343561154517486120170691793937832159984003018395656173153762134392580400795636824924868383439313675455143496788112937958039919670546631325922075057055719169293229613148224567058440073146945694354647567286696170537434112672188509997716860402454080528774628070427801471065191756877342411073498616887757371575336688803142056820711022973000198438885395359285832588326335612333955013583818166971792628994090301581418960429660336439582379801405794857592986865907992625133514802541993675608865379343689848952133152560518598521310251438258401589471965926276905757607987744282829618804172493925892029861247888522616092374648368308119503163615807986267539413439780175139476780854621775570044876395717287542153445785810088482109039549099505945237876050114549894901831467000531646173268136621573753584739595033771810180097466329663804488642882816706518049750326100417852229943111847372372466418260770781343779098332410633179962611227356860040428190109587799735530463246769772270629652544253022586602283761545046819088856489172436814219738154791058853997495800428659210233292923973124164804400337419767863144815612588686221403276277013906115618772986486905178451882785722837998492055617221958861241884247550660149641641240529980677153077296858432150667686007809696277187370076472119253742762121249985197438423317415822467640226644351085337584265227504683594143727746479998132356219741790699494083220784561386670469365389603595770476131835076077682964134808088397195354606013915545449114595694280128824947490238334683490663396130593222877655795679879408914285545105355714231988112811098179719937145549763893132273571494021834065000279549045961100113530133816488468089124680795325194776529714920333886418006922445092695504148256147013581565651776955023671512910388345216068016181947305483803537990053330029885702116388088409761169176583612036556477756174083690199386320574039709780795764242466004060049195317651143443327453257881868727868025299087284252613271270568449482163304596898016740305064645431206881780905610087201871121148233223415392648445776749965473197091631839805874026026669190422056321702680842390481976124546089581753472562971446624472966771761498446958777691369149596206916087044071900823205287898441315729443244130543550114576328959673805658919776203213768228851540174743616539953570669446579970978289849862616045539926354339179499414650674899772339558318956849846397325737039014115881840228185046914547591292048141366207116054332109055943503466097343670545786623477211933491357451656349991239118047233366197485833077864019271672679387542053307406774791165664570536557193516941224280155900200440241198609004232740359445600603290686245195475891670164128126053624298210358703432525232361036545676389185555004540812226630100812099677436051112454761245953908685235124400429438364996764052651804585957515158096904336247496037128441848884068279735182975390636872018970299264546365988593912897493330103987654285614973466510406533380666311295783078420063673542548317955405089237459039430652644897140922490235021695020131215120368083550020677282197545079872944034182282899059615257491014330029295046242181376619115763607990693648045129746311626934727147968205352334660893256229326143859265092285838132779250726829968442613498525645489430975943797496481682290837669326358528055717943209781859732327284946746846668865020452108368137741195507892364328356244978184625394266692638110584602666939033586099342959813888135449395706087926164706128145747224113068489481795032827235038727447987316865163021158781579152490801412960076383647374464968380361318235235552481407747356095433795850224989403715336036507642862670924327429912570577275026894966702890256484410196612837749366783440100982857552379585167423453109746265268889220236513175414824690858658639096870472309564846671608197002624651692644381401630514601263012477205921784442119507741459379988306495409617400608290698343136618427093359043059947704778421776117386167137935149396405978373855714496855296088666857537092448861904568953953808416452389487440053762409485288102738304813008490984932233416276054249999125437044905650322110838093833259388489555389155735915170253715278187705200498318664008704496463856947181474806805165190567653664117091591859568853402875601769278845071218024771920833782960028418233871976594177747896971858148888901168039283277674243494676790044706532959957886504500569062316298594978595044307560990431214216916220391239876323627097912885247194052772458135875512933876329236785296394842434857239094732653788068073810998526518323888033999717595840210917516207914847528851475664085353176275236333538398505094839439346556916926480563696541541368320361852755074725115200081550484672928393450231507418463644076029607742504595145874351850027744728147645365625387456925467722384326320987646074293682591550897291050980790430474508158305832298956943624291452198776189646007677581458253565360213863128950228332264334875174268077221467022383537372530262996740759818090172342277861741501021938392699119966605434937941062280720492129303216358122208835500773292686325832629612679908506560859126125472076215774626009990750760109089550732085388525950577028837250791884144030333567770427322405862331166185345333045237877071883360826261498537844162667159542263308148462884864633990988271407000940550081480820264410346326614937974676732542975479783442976409056360857823881507953834523303754899441260888392269711889305754895540695505774538487841515950311017281601236360552778638398021349879230323810484922874549153642594279504484557329312829625626380102971554148965544603988822750738141386385753713498294313213973003230175513839263462730650833222104553155450287449904488814422811308276029596672792636624571388491724812417735057732349172756944780776679233940942457641294999632463975273846200361006025330911318498331657929059401177697550657475147823494110692932530925149128938339665773462460695571043160661135877684007886809977084324202535770164932021607502871410318457317827513883240014435285617770892364281785293073980548066394739023711647092535989242949264029260967644498187131536656310149218064160283752175557869893094650654046891280653540446728678942706307975428265060031694857251251179719348044901484265149133144357958032267473686375574040720700962795584826206585070645038974349110792495858440585936379424776363530333791418056316094013987686703633463275681467975361429282828906225721766435033146743335348323643562899106109184891259993073867561747241175783763237648101114314082533908418999211144287963886251115385229722287790520807692842729710297506054793769292307424518918719527455125309349092531944481283095349377479398250011506015931214783144376826224482114269504666629308505777844175848317425426172749235270749582230828924214803077308291176255626757906138904889170063106009790166091232309982314101368506161713378018843566075176073584430007717177275783378751556915146278020349085850602513236799124559730765560060475899051056728889537463079387967332937611143003326973563257105475511628613441179522797681667789770326050280839684334223958828078589038712341595466503938322526425571257940016230162903878088718916204928513762509085641983998288209641997963435710313440983571754461417890919370182727447042092038208459701290090278207968072009304773717789664599535275501179960915270057145630439045016497224436867044527575912005086055986407442185443503434346843919186552068730731480594737734756923238136811311105543284429697172989981401481787686773229793522402649236529288227405241973562250476962858973798356510481329324580924427209934358282157929055738509219326908572964945981345280088881764490762873935430998102609878449589995565805918672511891700682377397358625950146299067880200006131859154726915203180324422760996833662049008042243568395100749663698478610815897368409817618956658006606135907373506558651735954587869462749647091651325445933064193617831253843920819629699604152770543802629658935997519851919064527107470854244065220995381788015987579049232695764960604894103585948143342733147746764970279781929281075740903922398288270430987245235897462644314740118530667929409250008978448696158267010591131560737003408584976926381970904411217189656109864678181346125089782397362892695596045043905262719752517768485946293893403821988912896857719114129941416314062983046480189487773085844489062592482595425141459814887081846229017665423299428449780250949264739551524486622217718345825307527627647840880859796181434428419742460288443193399498260834057098995700575335012155053541263541861865781389478137237137181091000842765864657968665507261862175683073672165757661287461526754895176237781382672656988577605833230010069859412731750303199033983494197154995442864524303192780470942383284083261508342627796590495189462503989042369765388183081438347516736734701725575923407415684442327199264752743698246646219467552834154059946642806560172808179529881576530633837883212674142801417229907312720703039839645898285121877963722944589772523764067479755637068472050619619891605536076927811578845633407052765339344527094257100007073292055494611875679051252917092529572022483309331167500221536868062191403344785897098471231234270745311437669907423333824623763616525276809831340502852222559272776866549050390875164567736783396908379237308767459068422842987674154379515395063555181398139736640393248894727946911784158129673720039775088024052074130283806525039723565500188242124308303913656744783078682885862003742883665268481647487058485576280044759539899515974893711620238763751691891394710735932937600103624001615693918255164852900841382223765506250563188785791252226832510485136195187758787790738211243788625581896259886667123499208864587682738208948035260064479136968590996921069887664563490523038152117148125095254396577272528254078824906951505143018928291636079848322764711626031353866568810447344223205523382515728223561575168196324412455584271801299541687629710706832667142977462172177605588666930604805084363696315247376097234396330060834809744785439209888231945306277944718170758506402004493314862014738030574756149710804682864912239016943289958778289779285726500107716988891864413272445071690769606402765557600944909295580823021127694265025755299537915890876309694019060948669732563237198242848417489544587236790011971136987070023409390894780383147232839783199004996322127272168146972218782756296924942253853274945807838698830902022848685787055157153916839015523678974051677976010255434731799831680783991806907278101574911866791347644065800052986900498031809611907110821093479985866544093420010090384314466613825670188531069840435481473078887358279749123649081061956138631559658190226187122895471381650207558514030939041826395736196711502551338482269637343584294419676749932472310614125055518620457034131135812712360704144153829441331910323154875131377847452980687314848235889488117900543223471176490594968578455761738327266052099968239315278457920145593840815372422189378757895993043595092616861028413351317696426344401296777695411705524381266553040818648713505113019714802936487823322116040651377828502248473278889510811961923641330934102139490182714188353467770612567053224755866978838431389955945803317510879548884867103632683530847529306945537646074813082186282631919136071824493007945303671879027635004281302868639325639761283617057369255785693135583699045565014711218000381718319187411992803031891650332618943347068361050141049853932599151645573622487815847895899729438532855745789150806997872344706602972859101987233991171719621067907442650946559343205842918859435773066028821391047286100713715816777850896494186912586288467707358404822829946829862692643488385674933836285018222485246933490209878394381353454024772995020146834572883425659246772922237836858787778132315963947851327824502865601168913670860104272988498152603963153261893292971625938744046923124861615690628466512810821639798358170489402315214776998061464206919777660168130485397587075628259216569888567835822590684075397469222084292851734717179122660240049515401034901351191568762893723262908409921045470656798558850292367799816492010850832894265927766101413063652796541876017405855631097004576765017603333618871611570679467676373021458629587800642422944493208211127412625783976702959813085770714811161989703979346376107978667918850110198481446145999814725893541809007229150978460270976874336517050808032226918781275453470856982640622099907234530497218170822782302824145520129106858310640745702375908122608188059911257992796969846600577962816748713084177437927167186419341650875313683441230581150564425947696156945403596283616763211578519507037703504315053388635284917156256852395555222680218671793228620274625641871238816152432359172830485191071141388612567304277935866338406239004192669965578047846028810451815220250923948189306010608706819618026106362267578796347775699895112895539474692618385603733988410974658155162905640946121313877548668285685866174757221508920557593372111734497069711175986875678058265846035983581635365290551610050628068067104639088720293056642860860001636150327680484451902055714223797893928648880739541814603685776479127677084770158966307993151762371065798926750456265262837531775496947858588680442667318683492023676801153157430694210115237621149709290315108287913712026251437421876967153077338344709042715604601307971847694057802433069110783213454808370643899409990363009628630333642110815397309689859028198167886292782445294835363498552018742375692862037443797054740120365614589891885744722807761867587051812473871361430952258488752476994801760064930604256019471602510601344746229399856878297354112332800099284247790638824042895559888227078448726648176081561674075600539262156590226542922645624114216543163729133077898881973326123159562592227341045941271961277074277138324076956381616972040049121958077786910480104368807047633306679103994883761944160539504397189779620085369054810905937695207021968511329200993682809227629505294297483509873898737864720897177794206012197143970837759074669999690806840618585211323215815829164483572466705654377498058837252473751777271535403468375949054394198000147938050370506231230576106107764322300210545674578574580306476139762137769947656313654474655183626054816619183246785852462668208901750593025822386413814138616422876968062750510239634952621414107757189602044999074044262905065809019817755589771997357190741467510390679913633035569837324305145794556124765020747196122991858815887941023202302964353622610896470131905242712175502788668171104645543318685195857554157736291784448895534317470206945608447321279563702296051828453427363621322511908182337101621002947405860851187612599168412149223174886511018976004020411022183072599891548931995025816809264526958854627596628012682972342196776497053731843873868367554887878745816744261557082508312409274814926438610031440290899067208152152818766432467056708229131597459833409034063514982063957928855762478571828011796836606627656118476882070353830992338548695187281273825259583012884394803824115949273874091633819488369700366503959004648644209473336246307024567173696631264955081214223532427099065269012742284316199090817166456722128893268035307983010263343085023267070108088397324762775615178005775563425623817434127110852155625012016181830506968903547587171338602870227938882008655414410033234688826243794193339184739590430774593319994880691559612668855600510978948141038236600559667915498188004503319772354593517074383549626830607413070722868416478426746627123321531899184131788311511003712645009834138975511965785844454151150946626829293647344168384135348682375057732169183436375864590247698617188326455689789631698333746243917763240445704087905631520883758923035266110494655829197271270737833486431456604348494935338960453807053264337676996215169623423908601330050587421044524151066481433737328639797832643681424451383570797445535542144389578218914053203990157812705105574279353279148251724393411339527164377383703096020390341258020043839649832061866972543424627543269650764317193310614562268558055843038117061679660503155864319879273353461107745032936048611571401501989774077413099700760395130297824183967923649426154893067249479893332801437084654481545630541533817859271398273014100252373513943133290280998998045697325286505543560524889468998187612300594511708617802661082290607509331334616003040087820465583053446078542310899305207008308747585340583509573742356086942672872990134712879482766155069307753455811691416848284988108059880218128420117975723165487217459846919914004005961395916050988069689747639093111983759390914234044338616087433311313748683354195115945463420944572160370506064944769504204167204948028398304301520308212221945225266535113987869817864741006622624056000688042788909064633714078997802189881251000009986587064317150710612979359738856170978927598936909980774413370517368540878011079068613923395035798465162075370950471596146741453915318218501145881901314360677837117480180110909417467398771535719230416825629526655310197329265877565180615068201413398601819117552990514105041857329372833978516806885514934831979731554797577072585589400378537310510779241873692105723501497637102416266242962733525700388911246088936447781399732029870030645832900846451803879289044656346621693286260971088817809135543720094111727048950295516169989561978502101815770672978628877746303418238648910352550494168976603986360437758970566913777327602414297708808078757549107572823376255632404053841483486905599112603821622994342926803732058863279867030893689463219690437480451569938594762474600564885303131805269105334333183862875442889543076333852308130906239460841585289575829704726235863257559469498698762382463359304976925379167793208343495010978084653026012222124636758933933299395673339673704578549430192746851555369432519156227105976597719178128178921840704871013934730785587248765295028008486463983301279712269924376580658505215639309003673749111730753481398078399487070591256947505620949938765717079595269905094825207381196605488531547137457424927816794396638384391873039476353860368092045849196470078231756240164122011069079750080143124222260232234086626801084177999297708338902279522135401664213876663471174744607926999817855929769517406519723612721479430564672091504967688922906736376258781538417018016412866628544115645875548515907323633674192666137544517368189625319852418491449677135175891742465827139046192114619663479987975281578283827228931841230535845990936554397588232987873870640566419642144945378489995581664151922854769674226045532861320248139670342804952164446768061776507734865673561303279286047055579813132041333520865058996015349508636337971832115888997264289070369565567031124471910080762579452340141057480284544842089625003937247023049697797285811350585201171189855546949087733844340602546197984822718459650787462458113468309726422997058582264733605056558879930698772585019942453597808938150170044224148620442690957831450384109370003986201202925080071065515251800777700985911516738405659685111035757117214658685644287763791521795243360721334348261135292132844240689779708138066580764789798520922016865485966905395082882194141477474076388395748425498712062411165548208292437852394058760601927543826926286640348968794938736952789807164582891379972740857291677045387961204651293750659879816011211202298266454409873108053161648474209919676065087030022794694205968485584488486383781862922342506573633466468637593526015275685736151140062480437125483467240899286009748674326721099843370967086256924516982851658322513826703210642025155798657473278970139385407789734464684163479971251006419348763014546114651311758565506359700512636282021912100202514759418289544699965108669838852764729389754250596313031132118038715196252021013518087762640046050150298901628679390952358370044544735211572350378544912738677128367854696225866565865964003345213215193827719952082767568241414694562415175834058366974139129970363217484006641938197251918730364696402103273544153746090498272435358516647768315327647965194366254229226411217106830016728755290734681229085921589973585957270390662958849833534611571049106619020428714434084527129129159016237314327149923979478167236377280466344759269587180888887458579794769762485685644800942485948736046479398681397826454249105405427928974426225018931330141975472186345018000649795008830492972034616088779313323266039939754508240424504678941468590260876126589018886613032890378872964143801795959608959892891335040103386417804755875568146391936037613859057153915839418752443849650757047307284033540733490131471051479561257685001142066214315669397803156590923768652811331713796365425302472300464485406198285725887578745059548080154406487793737503021748443873292748680352910528595797486164807827794264793378008643405910000512380910241166560720464004270224487505233551462827579166607298981254532270339284112104895067838426096302151858361128307992735841019502605970338700157464987123534225576276692486216278316242150991531996496161545375278937885969359158255235590207407744474321871444821558316261368884997288865407920011766186363071349465254303740252618361409439658219922068460505902979637637235298011200028936910679168480251376090025132785586932686825815424867992096573198326036123189021889754968949238412887762319813604866408537542783932012158666216041138869553135003498287249180762014000673019212008215525543826776850350347327465796415279029445326757525900648791429359508523780675859265482857034513043588175471309916352258996013743675481287799046087626359145401243377531940710949042681710930014976291344665758045367128926053305200407986556225403341737703734883910646922127349026960465585327011408792720112392561787949545798889935227833829020468270376889691801227192486210502892664100312146739802581616400918167000745537195519336688910668151345037895258052039567746457603500220445591156124744372835740093810208066245796453085256258115409129449802040677782222278577815386135293253834300579964422770046840052793664986808359449652524624160037361251886838230952113749979114790696112663745827580078091978300209873330802498197688508880365017843780493175170591554687383512500456158123275026574852598128627792932649063572095736516128032918753008388670472191795929378777461873578692920502755562710105764631655538637087728111135013913336960311313325849275670830042206625223534639159211917272140334264017998226959973659050322762314488887885228550132912787223193696579786986313154414038868667175929077506197494557550702345395784122368830679854010681446981933581375454430815103268267857527380538376938952521376163536680799496523505301235463237121813994812051232809024778031042726071475963096410783977835359049325362249118348015140019461356411450000614127773695882045239195739310402561777947174831021360778547767549464924056190431323326411819201487604142689185292185114477895108270480562896639800659025508038781275918054292337481574403133369846274237608335467180266579863985562661681334679819994960847935826999736827196459013473509350780006263333410296577137274055827002404391282853346043039405919998661742264762029700579495539517863660707962692241158432295529182787199936457778813930411056456606223175576896159483089547310111590413308794477801328374309924494711591123403492014357922941295841193663723010729207808838779838049734983064777244617705663385444979020596453203091279556078019271772476135679914945616688133934497203917857031396798047876656869832871256358814125090905545092508793918747012475919489611427983356039788608874436538355814938819020012257178232230149102313623820403109528629214201273907967482769017039345892893269333471762028779437484072364643758793328964538662123094129417208069462064591047858266450806313143280389568178737352284007308013297276292805750307501661851004009730122283169541994529705804773360191791840725170221678729902376391905439976139747546216259541467654576553165222791866394774198487036755944874215757153467665425225258122969437559927230731984337443435236232964009988787240368129433863061869024112343957333995552396348467625781734652081500716331435397664096572417874881122199099580238983973586220278889464046377412181213656354784521715680373035965946781067739425574584508499919660721182829898539805545997954405502447826866821313302683688928158749725915053600776824980398680824978246882589246625550231575192738337374998306868580330942761577867350064414627105784187517400260572696643372068143498894698413593265971359630511791315844040458713506450622568546633549398961420188924209502080045181529658634200543942299602700622650805473010664718858678692614115574093557758313711268369396626619806415250178620880706748935493814549518381689561590950761820625808085583730931454872965900524601945691389377821160411563584095927473669154794239232909928422026272777272135428896870960565104697191672414792714062973803705435267824146452303317254950015835295609653014914433343931740366668967526862721385664836389345463389888427027999182072662767900068429137869637827274233680785560202625794319087713603869436372820463377969859906737623006278955134683477119482586520412229340145952033645253161769581002625406487953946188493083254597567019687090796212553421696832189642262256969599609940645828079890765701902138493438313661543443090941159147344504874363159516964840089608192216711096075842119832663552994113866111597736787210489526710397261758791107010320540896633055759682419171366912368981558018200675543721832433116788209314336107754496022464911271743905753208587957551540857949275928879676055971909868163609418101242585739791168151172808758333654783135221017336537446478140438179196386523002342383256048140058192035857747412607476803015498193009533542699217234852278019724310375658683971540449657426025268133535437260287644577571473760109264033141185209009255202627031480611124683520600123881195504995918079425966022295603601052992643454246333551722313914187127473065803607955483428265763011182645162284555529600305958948371966372549449279501987778928853800723634247927767532414019434735365784627365172628085154560636766230532423584953576354234655583802907807372878259389203093152519814498668801828242827758783742347751992921704721639878859487045878782965440734403862910520045246746970862878483652025898796483531731840443027999170285763405301785661009582700880760699533997598937756232646197852015415525170812114940962232037868054510205424557534790744830017443559792880478154448563665552638528382000495235011008620812640106886628179257578574198720542305903358385296477274548355661249363060928438356988362700784476996668518769285665518614204519891138179709057520681075316421286405310521339624744207996345025016621110029440425683430468639182852982156658697551817912199474834160729179871578593569919693950928854797658724448496135212741185143159939124728661817638472622524140832014705904954077001934070335305229404619195509736435633843821357829688936626095656546736544185108139593529291671471844768273487114750189519346592076478214908802950718693899929385874056183944539283541176877182417964803875556719604326234488131269174433819696988320363894491379592960535747920559716111590861729986178484932810645044955185007617068916765047577496847482419015838703357989361318279264842792304184715877456262346431616240817608366925348891507859776758226597647505191937705886934527995523533702885371923238571774543394272470313152364807883121169849063581393784215833261083695248686420739804431351516815279080201550025608499890203436884263574507928765297542465531556119692025122728256565147780804462841904163645122632923355370209782087000134229347488326110519378967006197888238242557872571457773667966025303601489655969867603500042975136262641201764507651846726176297929503138052307087122707949661627122878043637276679029667144266929783585663596155429322439267472811488221766837398495681003898788376363918836306795079257990757803569788750028688997869630417346404075583269641092411220874630591663506194045741317609719737549299095369331524787494200422381833076672238193755199225146616440143130062999550347978375209401574472336211998951992315810867716526141856073080517244639946494160914943085205038557827381623252246065904411995908173885021921097825758802202236655046861243797112148576271538484693568040071547558353177736674319315760299911237588843765793192240097752004852763156551688659334741285805473910969261635498672715867840643485742048417686471276649484869811070716537465858165113372771973991038161927897050765458448089690651836824686157704457918389993395894738084799290801172062972102543093166325319304556619246747740390978725565444611513036855334088834120733158986738001970489734458798140049634676397639172270741012724565733470941767224753437410721137346742758263104864071816137285653163142377276068631651670802512607600276907649540221729331471600376762375323142449255335523577075203734406367622893328817165824816155195440246701052443853632563371003452999261909727400446218690054700599267927974503771499168090967814164737606444584852024445254905784296713871429132979539661554725247630329219082111376942901426054974838598974157511853987408879945034191318098016982466153329002804312569652556957328544228385332858800433244146465268358060337701275087493426113256204590163413997807876633883645294270887998028219222984882844769031993515582859859254283733274525790257597002020938005062401689941534791861516147989093333795663427368963236581026278931994293450470703288709733489865447472690022464230175377172267520835786485856644136204873223099280824458791054772786961480241330380680972565325018202615022995284500212924488492522467680913828793463978898832998303292994213455088144403593716813821548135934712791209995978974989801369314030385607841228250638675508262052508679492116209678664028138986601171953476385119898130079040470125065795974683892602455856396429142520220988154140381804421635261904860225731252516770892744155879002668174228953341094223241875027251164220222856669025027251991162112184779853490315901516531201518357803826714681013903583502429213410288124412414261404380931967643362268657401005200224471681229581445378879826027591354351043654150633570851447592725968581759987187412246475820798185064965847077528882620195287041422183929247043213880850354217914308885007940595155375679793029198838566612668096195601119916370358828810620536747701423514407525420198944838989861871358584458623136373877404107639306424847752211008595145277234708685189457537740597248644030634443575349624867548512945213384472119843195358001914906095720901077176279954210622336215546534518708857004920126868954901044475974635691148567046754788267311910310034744133914410691104490282022875331480924345553853368502510181224720243100415240064153340341217640467466706058376273388244124970548093643128025100215976888664951291666527208250180244136307224447179328849156305226690730058421452498313837385320155462174341126795740427782797932978234223703035968607292483782968188785486919644546599794201244057799002212419169769219326474492924731377772477064806502560428503400447006747586660589946603177432648612812910860693739771394316713270996063328237331667182680291125792705973825041880126327862409617599446612604020490500121021740421956197242666856635788207334292761685729093290647992539529168655838007324135376449768092079919486784308505038650974530143179766856485418108819242734705617180882851926413769519803564783103709251667339951105317949701610427271743800542650478432726802935287631733361297621826693247419239923327726133311399890746220944447818708711708674047739825223325152044217665229569606216813441093269658780083711902752302141248777169216580452078520144983331500624407139876497690972789727726846173425776336029693612745798918467392003152473961449444462836997102085110495621728377688452428522834436254401445158881449532741978739674737415081680998227631623945653457631123194977043277025917391599667399839087747553532215853809233918120535172907591756587824283723039842984861060714578798661269005721537537326059367057959259986990914115328814622430522686972582223517517166548563581948683381936454254335596607531109033933033441071240916929918482789161808299046139965232268172672171288382883979731431078806502855296219260198491495974075779317574510040402911137053287878086295906338227977718582716840948091190449923332030666593154665699627781209162347627440681166619790246214472237057836115297230593164542515067790182028204351068320768112432925976651729351777263770359591742015205234712276503464523024095663001896877781146427769987708388583869527320434560485193106259210861764387711174490128549818621593933701148901759702149553457640109836755950568892089492559405035739449645590317671635344208100723204012394015599153902235709722046662192467460123644242850523729940955337674480488610341435561513591696748425756735878540768959966801031426446559212886511028412114024751186957367231149099514025285526647220141055175143618547652688422514335184997253809676908121392066288773271087984282838746084329778962740319972802765818431590230907850367248001852512895234088474792073064473640511472813263578216711222279482784419010614123396068457155542401133270653691802190546365813310675635836336850381344172875864250611424997243613478249365084414641968510814059672997477018841824987427649826579405127018295182607292979561916181794842045160610384683043877770941400986328221428785672458783913428525026826416433320146091088925810351806798632491959688836851738502158141548796537732380979995791566732404317620535681877364727212908612916554023179821932464089925587949010373479472045655580161793139230283015607925641417585620254091261030240430284426554172560466281108765058847618569320487577071317599198844451989742270422331788263872791126360622685341684179177110412027715319206713274228104327712710012350965752821336141158384439392423852336595251662228765025202970478218532634778190473297196122732043482161193622058133572331653511693559016162325597268256820066374944158636737371811585892983573715941980793540419975015194853872364249707265918896155069151826322081915856089823570692856673724233090572546803588842308980001940895839880018797999314468911428413792359859483517090942145259027607831384075046431260844894136936564458176180705490081854285351381965749284103204615398024042855032579684485224798472012711277871238335715430701489369312761975915374743880608421092473334237536781911623601210768093676573134980341167937101612795554557667531030253023370902910871396861673722266429309608915220164170062787460203297912442537199244906165504123289312651291545266644401268040959712721888448141290224565651071937860043553365038717726474974513008928411062217224873035706500046182241465280375744819077695942799923154750542378388568106457750764936396879325289769515670578966610414660803800156252991645461081912249687731586824996660379651774603270372590795902454327082985634780609280002936992197788390289716395834039448617763308908170508485778650957457036729735297563548256522808931355287322645553068329188377924630977513997485743914485677239164537444926673743560055444613267340737597297789212981817479835383476562511579542374780204035433363708986969042745574462340775965758587611497189158758935279346957113963332622461077093683821657847869061728527115471480348347447890629516098934456764095135318211736911080012957300148956356398878465581821545362648666234064190327607064414797663859094805784532673296444599666547266562422597309886436826219253077610815164713923964894191240777384100913997727884699243869121114405225979360968320014113080440824887414977113506753100967287308899927817979291164006144887015214895376692391412285132869110990891879707637382902763229621814603960537847616754160880413068708365502873702501633152393599742994839153570634067774621959778454846464871001756116958641057897989750669737643804060732518913903856266427613495521335148280796917055976000677812991492911765359243660011814807072579320310972916630385657601294427728524589515972239483359375952826935892821273015873577915091161627575820998068615152446099992646891381056356672698223163055514535080568374937062028418400606781360151679969812440229091298029685360247736223172403841413790358138509665361775956015495430624005604203071267747458569961606967655348924371464763370603636053861952158413706699186828021993178577508781622438746488524198128640539606290476248120680752815078092232803828190229913573109343319649572815350282909011149577556870482653486504625875735088962383389069819779291723834872081796825363600866297577442711677640438966330308917761606315490955341651722171774960080566870552916032510121293656730767568329205316848910485350636393219873052784672438571950056110926182869137709075999084651274150661220436515271886441470301128804883133095461325253028380326538351788857554473079199668252682178956829873916559561421320247574760429239846184868692889291838119641339238141883220725663988232479179156623802186986544400964570318759154001301175439817214373741773741112069457329748678364123881831491807511424508203398301820202878037824158706698467097228169753634222751674433970939535749728862037021857889174158325627047652846668843676032778807286584001816078031382557990938581990375732259063198027405089435273032576248632208885947646143292033058523076183110739783386639358857426095632260979047961717127636056976403328365212417102271906051586659534938327784451072385531358867923498773287341112072407355102338598397367708940333440956827143915400161291332110497610054294506486902056929226810170826498392702796672410161939769793606245760605188132602336646301780242857591641115472116150545531015702595378037669588277370887332364146776411239421001230721330027027628325221788697404814895209032469260444451289421618806314048911429879855960843922379536580762488451448651891257126009244699347814239873151175576900752599256049887743442171618569478928033456093694667745797506726900320339348152662595314324182768848830115567555915743615012596802792057349437001423894715352530937950973049261614344733025569683513047518318050063066450553934755477133347182094116851595280775465152202307501001504920780342258581354264355749046090842710329194436460910040045289964809926853798638073578462170535341322856218943564646546056437741980659680434943976869618999482410871380225819540602231666739228126334932223449849348602090831394506509106592532520637662790365114171563458350939235783038696277012724579852685012677808881880957550743828666888427622598115501190818114701412854855995392122401056579698256530398502170723415716772540574822698055553089423800573927184088270271564532695253487333493380444695895141382889182778714390720470367003138362476542427235620283040855496394313977661471144076663629346411120907091241734749057547084334308445697986800315649884626676861335398003801471350813930732538585444638905159423307489846038935402526424847571462919137874769231956090121120119810998823020911232344746751674400078693753884930794502922844628156874619922685604449696797029040238577899797122843974968064604261725002590836809333462342747549160603254054737981831169438455484468611487239470084408030039215885232144397138409741157772087616950532813592989755922669837063742951617043539620991056495835520982594365609064093975537457206340643550652075680086146481227084453136959797938735628586299959679457592264489003907022967622272732593094448407955615071975048468035642429942565598104611553122836723945788781770267853097586269656215536810278552382882198709618470394554884538570204664755013098879450199564135805564384296021427404490357381732751975118847953628929518390148833050441013208084997315129158914207033872269988929948647581792542763169297399776056539775353930889154256311962305573476525826244079873190246362545864603185748957164456371345414272513781119895479840184240349932667553302844702642538727813488776684557543636627566185807571816107682748015147127675746707121192786976606510507477421193485441291118789876986193070021377895809368699989673024739893432948771434270542581765887196788289491682170950547002827260629083185672503428738662336898159562661141500880830873523202246879259676570284185524661061830339462706602240365899866944335997367857741617335255532893663460134844709848550210771256689283613023649624081939338651219959249386129348906168194667067791674406059963889336202477475548155422366285821275859003816734979709160641191069397913489810282548806286206223380394033456475153224739626262797315965653520491948373724415575566855930404219996239111801057337390984767270124535847697507129041010668188251993751447157930514678182854554497966728522907812650213968087218165720992177492817240595557104807905710529163166313900221138889819667817935526669417176184500977806055291635750579857168679483541350740437546148489421287734061268604641885209055793587324093790820640229201427038056283428951181440067320901123167972727157347417260467017455595168242117978968828463033514737268629757532330644262989137042157279726832055795055236002922738176806386291219601734816490330165415842887830806026509539006860138736221293577339413913697301197048249286491615981188046023351449311350461954104746031418357894855951500276084427533060054603744933939530920520788191283584203366452420264331173778848952809127384405601538386255669259463007546078247251445470819099355295454539139933595933157187636091641980412981071623269598000869374672483391044633538587656503137014934770643605815184420702227730432306157310670074278244236097469543948390151378588742998894440203459343485071985854424360534007112547969846319923306486624833745669764154498010991384364367714973685809898740248213265547609170073478167191316882360002748115148859862559745159103979459029354578225125784615902764578698347145834480091330571889509222274525553192342391093510720926950260633624156559022819750308890975965564799635655720522644898019111552883574648569642169851730318506258680449847001185648612272172894512233706856682712220253148244877046076260176236504810181929441451415477289165094182231755251460698983874348692447512023006645869178790316431621445150603425119009965787045384672423661032338936317206697378671277515407236551048619209236141064775884813646747961911209744271160339478061032662247455304909071979882113349407732745062541673071690332574574837488344615111554134052020675118150331323484307119470637453550077323689659742863595545400510834405360203759979771368459063144059546831358202672941065443397607687937738361465854281781511751563943222097041687024573568887235165412793706849135153212812879172304291684111080997534364181055670838000406725467158355828979792309404030799658351311368320949066326733033832358292395183768484497427422644123812955985828423100741024093902232037475405285735023801687001244604203852994502739363858180329785148136146915586952548441023535107221525362596188931662939195846269801469747308491866608696120826839037053935934936877300142027831309315691121464877159184257717235315694874912169631880447492164569927834147786006607350521064147876995591579456540555563140283272412488299651296416286180052619715470634533528916688631147869449767614601160484137043526864975906200641664377305659988068968927050340023072726220263857120246417096396617440877718624662265881061358733387862342143410327794337720016983804254977354170508568432605319664610510422632518534531787911861851790782138108166719588324569741969383060536116486972289457871671802497269091261623532102783700760910913495922390519745881147525533589542353797957066529851264770989191206292664054463332229606982385642041746007685907167119097083722086663488306006675870215373579001612201550461000033628192808433515647704723793661513136526521437481194015071510937877754630192122627060897765168381511174645404512520652509835462311628702099987463465462745667893389923780834688686354050641137731136922480981077800269834143337858799554409457716921179781557437742947444198308870435309453245212723463619310775649352839219866791328046984435762884562520750302620699842676681171015126226488464789516847856050655756119856503501356346983324215840550606339766853105102682920831235763418730898910613882792600960220558299226547525228699963662395721235197685963209816848400773915636804402355694725164277623110500650327692001014211492014877542560660845060102147018651438820266415657431114741073641132847540236960840104589755333868800413441888183377995568574528340615834056817291535438384254690229589160765392067268309567138971466230777104738464143738942479482845682635531442540639497375735895153489364193610105132293381637067520348575277236573456123886126015185822361535349557473828443862177941073485094330536495657009567304405026035065320552511297720339811303168232991674099329200537174857927399121304670755574254724407400265327764827117193929664939985163883061180803478954534974425605606693154110914495906142549339282718337186269882859150724813620681252812063010042815423922345068339135040960281222812935755201938810398388603836552619206881188644694615243580640339085466336452824526005939371975674431848695422454278452409909459762521774236617913476005832369859031084680668119180730738418404173870037110335773622240714423901001050148031976977121427547634189596494331107155403682548476276210981999220778122656023236927799241768284490044507890311920840608875515586065651092239063587437145436674166900537663145704197193485162420851272056504208009766646540065530014174804957708125019220269817782403534582474452839585796751627850368119989064229118016453678116881950345485896000239311781442780275791774195544664272998555867163772208400837067846544545581290004153729314895241378716882543889879051358223084781326554222656987055445578707783677841018120577495486269626089884110350232682619625765713985818260121094940419035938367437461612833951858305211033954716719522575248173463315597696968810522574745368061251344805598159195309049842282079645436365336717118069646972197297971838725134428941926161893821866221367241210194706544232968803839138964744785553881029989572304591149771975705014576571087350378605965460927936791208880871679456322520652903060681019425863830685392678750083841871692890620812939062260811271761061463757047321391821154449066281744786915695070680059431841746034489450288428747249425939216578315841657962765174395588290174205938820351070147626852462947925358994350826503608934539432851293456936319399277915667387492828188741412112735214735361032999924459819984306569011150868761868917662704840710788119639874937003704696178754342479989080781530739297593164785670709965283802225547222349653002226903954583780974527869686305639293333008150391311103484260023818717395704206554764924991739453151526549053953368216171810557882247964649373239916611947960830946077523744492118502824111951744689696025668245297377199112688411030342043364139645684335528946134757576514424963531892686321443869760740349352421882930979068065034434892305223652786743998224178290029687290031157812818868993004306384581037836670010955664191699028628176462671408488409080272823372051313055022953167988639333901949247425554195866918357372215335921273690710755635663688363089348505166313786927914454405247760601596390217781614078956367780239592085330973890183062807962497638868430259038996204248666571344908016520360653827488037425973370749297148919273894788781500518328342504647751800855546878914570211428516533877924926105417937164274662484118451677848562933160343412293047756640318299405375616494691484813129734637079787047300620649573028167943654359569979107109099736956727600148675630822065166928256526584518307272029415004340713781113057345137645508319173358768574285808640324651728071342307152831284149198768112723269017047399584133996914869708729862236817001848914415532116038969424422739414469628481767477232959003040226325158810624059269733037649191717695139230738154998786492922016474706176105385259535275882092253394466024493612790614782163998181217144795854401963486063819441302147652191911386440196904934966520311922279311491541429131908553759625039458634796498002266582046119242440293810878932322512660604844366593761286829727340603964218245652916914309513199993483474149491524040484996420851949536381574048871484628278599808830010116290957409613710664048887759850668401095776357111733056718890390506551003746421545704053113853341495371962735662299905172430736249883466035758411138932878993562340848259362434079635738113063937847862705125462331900159284517420163392999958065188907456427042263728896037100090548575435269947675289055467443451532893172832028344340271457164286234894408973185396919249358360704241807809722029055928179720943194580887311021781242261302924719032990158573269799249973619156450053663275939895445959979647017253614526723914581559940866783083892239110442454075577018773833305845576467605449239870603954029235062783232505988372908518247670536979202678088849876448742720522514177587004425575226881643631334140717801981119128248773724778754758186250719087772157744327053285432593730324515851991705217443317664243729713251235157330737016273113091768762053017536016861880106104985041484238181549548090636561384286146641276564120677956526899915727986296160641415548844624708716369943280510539069370724242391240862009156613855929612966440179292313813092481339316172371095661960799216757718873692108139267824504588566786345601663371156548818796642148478626736996387480476597190654781459146692861068541685903491377744430502061598730168706640957431135310151333575220665864069734335008023369622976206377301488178609922887699827205267173291006026554465702946997390980144329442170243926924716238092558186034597749251049665141129537646959578641235405647246659411749730135589340122273846669562757280623771869833426218323092309764947611855046921327954401481118591578470932666074034287934600226682030325396996905030206062766710026501920008704868809336983568186736372088191465076635944042688884379199400173251324973009471739404257166626436534525317101807477999798474491470319883956518435480826178181297976649478656239709068376487949684566531474433956207110900583010725809147610810493810109933032366451040154593823311299610867934030294134060442302918587323425597296136193999749571171335827022745512005097586948670359018432550712131866232897704396609363033458673607059222277009518878378769008239212661590854254354768343032270435741137818086080340460103957642941703219718552460679310830833123370324611537692182119930052087955137843838464696297862708534232683421062418894310878368150910652450750443469645079055515635073525069966646351047250718346566476387174763379064134035867816697539702147742846877163575595544665761137570352489462644021608685951853027934742571003312414145148710259981474819976928090913478214764989542297147565040947244876936852712379605442794112254884128558735808610231622650285465233609324478644836534550696457121487866369237667653778607133712853781854584838094774430972118021582641294334364782637294942688054968826594438132831982584733329526818651774251279662064616311032427275808873559538044704949996008344313707915113293774647718247129962864597344744954366383041560380823308013669994980422115094244377944277357669588998049082066001732263664993543457342530070517232831574712451150233989925220494688930840355305620082030780413425134475497871429674428581859150557197888348933185338158725895653281326332021881118336405469273079600740985606514923337520758635566655766675276447826651907106688108908905795440561022240290388819563849006060805209748205061628073586298397577668089055509671683090551412739851325388910290572288719277424823549797868778249421444214521684614803747905974898455674231545641399563400722711572951576099705643241372285994890030319949678508839709109197364424054838445271048580301741032527178707829150512495056795010518312868125798850068730780276595418744100447229027177650726142394838723113217686710321263101174686805672744225275563076468590147921442585778309428992981968515084211802048034926617959808667695319785873746387287459273643203937797374137512953222223001961527821291625657830606645638380348316469791947951214394630563702195554058154690630838929728697913007520836395170947846208887513532463225209857152253951128447902804221993868755508554768243628618434086487035057508802392282877408045536182439778094680784818656657146228842346128413696434910572956921577153352065413999652434291016721463918599017548378766211867476797469910306103705893104278632253319556167903333968661664655621773727174136219739597904305995470486028091480526145425923878328894357037349604074742245856511096962897339543317391952023654137773450640903770146252849714598641747611190712266004881670400340914411235725199146175711746857397165151986104102075285746677555756340486384998931176533054026751591782692303236655250963577391789091013953549850803340600612478041104398553941866245957955774408534128110069475731328067254879765227569627351210266092930177235765596939392256787077620893915703793416663859653658572779052935481269363466540312488278654668278891842137323348440632004721848641524590625682079656264446547298505885305448012960820116352230200459484798378038806339097459208299297841230334004568079461307130575336204936277757265185473727630155030312452891032074783712773421891952915861944337588838953374289621412951732214870488164648026627104945916825827391565849519972187251739813070714311585843790369229861910507618281919783695383415991534057490662326850443797608215465497670746926431113382802620410304855354804086736414234484817164160696922082460447362727211921225625881646797446900096761699305584819798926563536917111972673004271910206955255506086383327586565439498809790181966225763914129553247938000180777872825756582026092851428373970097177333155999291903852815950006872345802501614851334161061573308198338932386304405402304319313300337756963762088560006985550447196506523220594416496786869570254803172096542658338466740303376498156377322420298095881117778115913333884347740086099781085225991165394640257569647066356991186592514172396771303490850554071175310354074402631155387422331361308205694948607306918072149722584276462984237420714841211770620783413399789114698964789758055028706158786343012109936405629477063069656173448581210332192570107180448941682933902642228319621538388799063630272145672789056830868503606307103804928281945991816888339661254389415957706946436855252209586192728476249964098426693013666950486155162298636781789044895786658053326898236014915741009726975824809544868809192637201512885952381286455485004655676120136948499894836013793175108552311882856910384485839028847310985688386276639276790251898830258822489201928763886763745594435759148556336882315904803847857972651715971335234499913647099789129825000404005359372171105006458393450557524513864177061847913952339697561225669450665206415536382753172252669245668157528300163091828729721027956190325810476993631247545892988150174099848471399884187816008637642795339021596734314124627004209902516729000869700159781910536647277397064473854301456434449886857141984200917525362255505318675172227863414136910538009831026865425906950849287316461500556496630206562664415724239839335303366688074384546568802882407297847334680320858336560533743712433660721367737027143813421121031106673348347677581260686146795483409999911381393579246754592511920904922553757780515952544559558207559639825881440614836847055646904768274074534945280542230612272377974813561065020767828736071748276519840392187276581876778504483923909466086262912278577581512849637367635190635149048497776880740263279042144548928775768676207393152372839567972788853005110322272681660182897143240496244621042147211220326473640270137882820655766811081875285041813429252815043604735628033213271492403269691615658249841130583620849126010529131806030825916877764878155910591168224212752681685409445396929207948449676721902649111469523901131161116957195128766474613304336166687908603644095166374969737194764180559393570777059734655716590815839137110117745367705647888780979844724658822335691384720909913388376051442717023299765884915174451182478634414442966005713848757285230995779165896444673064704891211036720653612380822127109068725793172458769443629834705315253586754576781189147191620213022830302526922244136476511832375325666895234555187141123174003783681093830244246902276136266340501190764316474842291944423395125979648738035894878062835266339800157562160133053158227044511661388778494228812733171662597763667645583449050504629590893040118799926773961439872059102973099029496964744740216086106798888830258043575562325447742590699866999165165833123703253520621822525626404180099675823334792065676309467901788452171231980992857614205386261365386424542435365689455077804904519711260360398850843882782737638978361194412122382854780067703180276483002523378279695361794603530934219180454786493793845368746466651185545657311105658277676195716451902781214385092352813082546534575295154149742195156147934882657167721876308594810555644406799500319355775524915706673033573347751859362208167189168650888931943308998322482245607767907309275104997383099791589624883567779021032712042910424203228185960186915522639136273661099197493342223820506832093737020302128700842698274877953420755873953996632850860302345531051041047406564764065679891849874950435151698466781382629136739728974569864640059377234570874099134340291636632908785525007705830918237053923522448738663521980801553060291441297270404788880396285857804621275585311441587256114138998838952860153120232866782195394855034734719136454765375261511855754200288125948459476041347858848592826551386175961747359237245615382952505689551030297942322864491426762913096847144504173520326179522415244646343600039760867138657552092143916230300087176933739508188711941959716692517587000213925849632771254359474434046137721880508282682589888626309042007002596781352549751747233605779016605232319618354555252368741606185161728012881703616280352107560860604690069400468071621379498789251585171126289611257829610322980988875240067790804514649295052725230829953310455958782689484772230085552968265919360826872348839421244302373347721553211248923072934400616127511211912135920332525478096168421101844462024336209554436773223524845069723670068581703735687888034238518398285045001350919109793754615660989022780352320453479044708150881894732722202792562572350545676850935214666250328838441191832996206572746458230845323902336667298474864395924715079168264665117160209565970043642770536528652791816995648186128709283030247017153271993874085766944090288466506494699424569841541868121553419017517177249660010311453840004251452489450581387170400369300314143775082974535297710345947732261607742471014524015713608048248585509464395980507159621411691318268404460426361148254916851226532096040519164108557906140340237436633542801137597824765130561558218686939131888471844311570306321560981744807009705149375540017733752247104684197996143735812833269939662009722658066127888620008255267717669122622789330600135943617018461019866075472186036132094515402304666857275136704614576174060417804095444236525606984985480034337412099647311428989707651361879970773933264153197500120229583488724642602694125390569779600332307113809925718670165002142967468420062638533043220515211722309743871564899628397564474696195163453397662277509034666644384198607542938215419385978744795440636025357590148277630338250573226085034699985792866492497963395980515555707802483644605462749251626168543339324363586286769767749199816609525970264220192668238045357261288562525803977681814659504866437764034716562643173096388168115453194667437301708099897572046691947791987696334408360754719674886603842848509071730968829930615090001053970420112333355146694004497020517052485002575702744282190626430435506580587931075538800919954554020600018085757327142630079345117433875610847411858661280485904411287244126336350792023851858462211929557936428773919586908603101213075792103365163836868605649477507554813263562832090352293538954359596113422174372312569201461973521347137257279898888975982184731469178149160332163015941506703207887843355908960573345347652473698525537744470050593781396097216089796775807408422548063360940936813367794392649073931930425898644159399564714061361150504280378579862788913665420605773170679676368839102471568132125280730320223044781808259184174157056905559848934666368748786747085104508805174131722258340844652282225687300105444572539009336517504594992689335748363930425605496427878822749161279731563874040096074181694057664052409628538938106366750357248721979908428895236755488336854599065725260935392362761083459729127758056555363582073530519335889603308011960598096666912350118596344521833068034031866974104568545956634688992771085741231801057366199790654084806765453816103312843050535752039372361842036550221959931326409331491493233140139071425575679880096739164030844474165109472551059603694584580495505137525380498738232026137287135048650401216705634526049901514728692561264326094136451204400713657189299367342531159874603580112560452777854143662943756482856662060839299405748495895591555241415209519344320449575074904411091945991017262072357453874003867790523692665105196033472513553200156940626795045292551345775134406373326271482081996378902593852696744849234064014057267471462981331424388788524402730919609831064483895039961904844075231562340180163787235707374939321986608412069357001843416067190441360783929908348690127709127718867302160538750664169041445372201202194407589289273343104289568686469265043409349165065715728267205675342488943763193357152587485433473480422072849133224548795594511386433943130506914502762236473976893229980193492072191817203492000809848004826792783825507486316778142881696343151417140404921487030920902305946052773360619526978579863220462144576860473368029863047628179074812345208302436437370275552702522020812692025937679851462320454780407333774639088213987726456725337397301719800544541392829279728578596485332203425601724719400267861577200509299368173920539564451403293579969207886740732812506462675201578777978047512644667715949147702748746853011967877684611219073620369561518549141493107858120061426243635662082434922332904810454199174399582021684506012584752449929738683497147834722206503370107469084503139086052477095823614074249353784548311151949033430838066625128158393424101766130757039068169952641203905505594560641529381868433432418646136928782217220062651935314571197436481177371120033464644416659780556817430180525073791229162204989813226712114679485286485439168025357593130048809194469811526656043554979543351400689752666959051089488247072037605077326038035657608401849353635218724879150597446798309997506710670171583755562380712418253564417312873231609843771310618144101344199723274617756809164677473476957889788746826141224653871123748971574897951939192149755622909799670328543139716599151825609546378664103414715211741456051448441741895441045458415480892537251900233643160831856801555539429151880298627346305684414198428243675743749424621638000450011745661362768738924853843832439706970737159283119155161673427964243566995520288177278703307710676437114618132351900964317946268356858453511432974223377506946609333531170836814072398312809286945527631497601411518677343145931262758882888133829989616806058914982830034806578466122271640545809392107400177813537754844604891167941439846647398861498124434643458117012795790389480128559164710861901475278653724842587387981340589936619953633163623133327451600630066833428527937606299592696058447642315411484679442278263070080651922793894596322462092470956165911594832608614715869186078880803992383324339496126004190481176856631273584625542971805508274625329816583140111079170162950388983485133466844193687923809112015182272430196744284370442171353540939827504011028147181877204311378446046826305804195705673398485917465962345305335353651514151241549257327499887599356093023699195911723696487169203539350796012849626883656065070009205662075321988960900149851989903080929194366835190372686418713645598368229880144073022795176898561634775542419773045747458009031651688399018716922674428191177059889507032109418846908659772822459982469757882553949334292806886712108770333466035305968966411255340140640391899444048124120893420425095419029706508716446041126683729493500212975746722001762388565726357732521009806710697325036149572096923324661195725545426641422044909268119543940749641752513524038140719576099248125466723304573985621671126178650803497029980681366814262793857178370494103807864352548971187896511809561377382236024833970588825911327666296237282170095210701532282030251625066050510430274631566363255317275798613347948318584426619918235535884161944046844766397491783906994520789384082012728980914567558539230543299825458137442998454408308381992729551148933357730049703986442815873951638056553783738756995426266055942986776496576383103446439968910398808233121960793147732967871264219701332013040078416398641244697797444473964816445266974947268743757252850596714323933883099690236327086180044357188260234398121089457659439648301411030865989208911730463940503717242047512894869929762627569542256966309833068783976396510836288611315478682415075494267801440794101603717958214684232896511232470483405598073524213953615955898632959819898624864365303166934928365288786231324556065345977706520699515762680882315918684268622031417447781757732930175530659694776799251171662069902758811659445252555113428511139641120103359202591311104379029362782944819295329434398427795198715611245358800437117721847198226741925211727448713836224533880546904928074352414751204534114615495403604153509974903193732243215035999891917439305951826036363445512079918438486203894523710306012855400726688301080063745556925121264082714470713362247852030994691904979292925237947677190959100053726898594604592702081157682672917635257182010318634796905306898029306285810901178506216790916160197835884757366160923538507822170191744297983911383135352191128649861794364035118827378992733540708477507930848467645484300858222494871227958007073603752146607716360655507969464345073464822054664337456556836761206168950097328968626593454944971140427089461353610147656169211210124772936727289623393820254796673548019481014045660638803690115028118082154415935950607213739127940028373651543983428116120902977262949866326583857189755261341947967923644116282123005577549001205113358148757103937812494920679812510376424156544756688788083140916364403332139154895669709745946271578522901827077100411908341126347784930275674150832752137425676624446715081851562429480749705189120467540118536255722955709760775968841329982188284026515103780531130274012253791141336670554264040659157572006743483735964454767396038391914412350719606105680284461530754890888888411076788738468615407873444137083848734257133621188186489325814992034127237419687761305630530681904472865269558321010329364051234508050839694864099081322504756516273843044424237230485247745883652812711801196669252675259034314663844372944561865205581428032630364582221576987387734216144848179985261999067443544226016644181479794604327701898808709990059809193235995796377948252063749999384770438597551142495521007106768249215636846382175471603410161561118166658225800800458907309464172606074049628350313130874031855525119326594303022287153662853455613918295602954470502682262960673828038655176012147575400278667018737715008230333881644637489484509876279480188689107861597795024532794133811970122778904905701352227708028416192931081485078297662707313802670698167580967317716705261918502808940831164546286781777017529813251162995604614259262974248727315558582759872160090761659901615330999270754442464824995265080741550425538544123279492396641485524577825827954572843778130812386700448108254754384754060685292915673448113152206760189142487771277429693831914903387906970834616861328444668192057223298447105832072198685399090453384347928896611108713250639494617038854296098092491353192611487326849783368554204861189709120960614080033058832251364988203389183429848570656980739022200238377961607319860028786284396804597407152097281317656423376390482486926841713177754882798892098353232898445894842707252455766650659085589662744889533803888687677272398608610062293961104517289720037734481311002094577715540484615753048588851023226120955501283035617621293994014607053050882701029353333445814752459765663277435605438303034666682320877431009268165414173781170951406320044039999685959143149896894367514264997429205416872836773796150584084563851749818741206455925617596389142559236775552712495099815682333455777047469887300933476795787770888256612766076712429667036873763841921782448309503002269362947768179129475247249162017566418270436894776928157794400302673434690107274674403084919929397775154685322038429584768832243231727929431039812286891906734551497386049171411102835204789237397117099290519052889933734520835234117677050942500133383898191022593310087034036922382834133493963902082564503245003533927509928115396414497440348854962337240242823454562545033409802062755046115355255823705730405506267720664161140798408467863219890945129616659833327279314702371506030652862472008954813856378852847023879753896724394621050047819167103247184443953516041851152234801064016740510749900494401875708403336570745474071582462412673876732346906581664635361347307507283338569799613826896202494023216623410529770085713745686880668915197478985253432099217466789081096985860777863919592758955900783581493784934771407387218069295287762779907591574891445707785871413303283558272170223809015709466953078898021881869768287958770626834068520032137308100550288963888282430768067657318852324882502037978608304627664807248369606876189720845059090823714795700018246120593603832584530634644921179509054808708639175051648086337858914129253272884266336238678136246117917698168204236992843773431834904526119330095410896403663225687177586894318856062513603347899112733145684111485226005131283478527455173312460467383010804584871831066637698509281180194412230864597808483875302518551778537317146321967194254320161227979484656616966189344040146215193141286713415557549999723984127398325734245008698891576680307169738526516261002763233946157934822859712454639058189057062371230181993268571213558062257582839464947275757658684416842201860880717310672721810548758620595051707961177487605763800282372083222046336140821978629171247582198723304118799062808767849276996047434452402695835391130166925949280358224691363128183674730338154445222294058633943444986242204875501159184649358633524148239061529889685859130773184788105264266173486495304290823021962411568553280198123282250406552227249395816943490733262935089605588389379984735304019500629808863271376540036139667374097453216029840963762447029331381853769979816030894056651240703288194740875929625139572382962499454512705184857303961554534821758491400830225348320389515492328340455075220375360116146164168082073738592424184434656671150125405916433632560820517460288614600490858223357249179789539047703895242292647661927398277279533407691641083704560459076509847880478566084275427724917707022781648194810400513952195374307695482058819465648975688774651551995273084353882557638257933928250423112296494952439308642829462237269006110018389062210519615200229104652031013966015482805695730442596986577007555935940354312640800630215243828176691163989489617669886485850186909162553127538630729209146488218673612033307076915253504576678048516813271737594666063853033116617906590949977459774431917133994932982633978146705022800768520772845049373263207965443074804405615076637640949838357667098429087837238907135906413817855502426501761030321590722639379445142635247467889003691368945655406452796416469907479430606610425332215476156123446811957008876963750170630003595694496757590384383078898871764275478093281469505538811090927332086099552360366382571480715162328878450601869223815930079584742626258305200734395849462880470287308460414365945932949125383880631968264354304779938569779534665896545921757324083950689157699494086867444192163878052620296694335611740713860880838599945704155212365585099027474936627474489818331869462309397817024184866029724373854870062861129400763931972310513340789209303441913549404498346916543563987793858882355121495008867205686647046621656781679840511253731117246908444980445160492207659541056997200692701883307156283148354485959533956874315013692380919584218553550860026123214041499941368040723805881164084372878475699272314967515146879796496316940501121221160978240983663295154452567110198927351409028262371018224218711653634843683495416865386325392017316777692120971704978239776439730347747578674537493358310519462371079071234161907916679489830293362532474244054985599592938352772792809696942589993131592266882542017398484950665681189520805335178062785060516608482021778943476921415102186737682574692440516752994524824473099009977202352321314167292978156227225262601777507418500240010037000963457441240356552226111772127428793364771040312199112532550210379921747077794124036785537126191714964667815489265492506644464950461370499732565893947529821051337434345248648147774606557499863527783939544310929950490334074804132547704607259908085273859862819863879918046580756543924755076672582524591252535816811405943435946941442703409248826408831019903018801905240428933960991210979745253784200361213612826478884465687432383436980178308224390469423833781207268777792003391294516091245083804696636828288859196036750998542167162481965737338772497971161378325234770990993745185833984511905468170784198235089717789858630996096047507248239498609837323992655091720387413851848941614345088642224710964267061489778854814599509889811737426002429925899378748488981826877715146502887239409538149756529849698856672827935615587563610213046468575243575833253742178069677226719704170813036020519664254296391438244096016439600427850928345352233944548966233708362665374148828292649233392760858885561789403933130090662567150238211633410383412478443176869342103551394659482900129231542639053287879992738106765816269773505031435083205257971202093579313780551418985855448303978897883072546263815006577969156586956053134030340152283064173976113838038997331658631545095168191125866940045017382973994781334929449402829618351013649880219376515605039399010130020886260824379385716301855108106071990481435832539581776306360965400464925799523607339353416648851533487378713113377020652321049570957339381551623500105451793197787179881329103655452678038680164062388360848520032116612450358611861548948954969132576447964393132167514769195379553981915578814771528801374310043674313862297818169904953068323220837127282769756373512644981700369803084812222046126248137193562835603721039263389739438906700788224050293020340116954620586837441254824307290646043465898115947511574701983871107675480850254194923758421441330720448680879723088549371438919059909841339013745583938095980166696284937210576450579675923139619983168776711733398969858780629768718256232272983264826680209888928856509796132725693708926153868134259484736061095432093065668017198144568289727106589406860990898199439843359829159146965541374095894960683279161474077009432404995155302739514509170162345822365844614441876521188600311231145186582084806427270973823584317512162442752357820391149230620815340428042465604658760334407535564802684465450838849700923590537493758016405406067417891852222323347468311078737333169636176130005618739165869637149210562267592846618597427478740861837504465576947476253919141678304132586845986447544743432009410898482039005007501898924664874717752719503787420295271469443859783788509161047599309150728981182668279301300897655474736816013876179984854173405068717563131014748304717992657645652655399384331275290395317828624077100957824838599211457049668781164634986131791493409518247460098289881634970855753287737955964591794928833435292150543713567984059097906334155098937985429964865623439726452544888140850071224519157889356118429677009510153365755226852879487303049452154592873978060456307419904056814900837629298642191256383025650473112679716975773413372009574953849313690057622079023179148092713993357412007088715560061201721963912147684125379857052231223210588302564585714825072451356475253742665433931743361863891306231710316264290520604504603173521216896306740205363394792098393965908826251566096284569392367102415586970098891464385735571045382045178932509091110261989748862036927886237835708460635700267488201793064009277914480379976397636051473023289791569866517813269540730439906317707645782481548314863002477404368401312833158118978879430896848685140644278972423447896830373011793589711436968357778809883957424250557352749370335958887527030467086926551941641596063686289636884090890324038973237145932761718220422672986252246052990066337536532810374354580706403752970466986600408595678642757644957910271581877245170197438183971221161853198628139556697538646793242924539448749230050239348809744690645318897232823837023557282627435477597885727576968299639303481212412470315410259081671861016851764208754148806621656980323426233831509410833477341004302559836058919304510215661400981902938412261699062197873747642359271976199410903072573311888419329777859470798802032024721242274170934281406077685956095140156701468856042930156864453054769464276861893990638238814480484151706513743286327576615162498414962553790344076952464432055339086872017444192817852163043191331369977347310198192231378333858609154384563333256336876749082310112777241645865346772695559428622773804645269973100143061277757557171243490099133607788201814508664847085129141614706970227807029563327636011304604674054511175047369761406766998696402559849289565662327696901157796545099589091802175587477567156619837817719905224413046332186139464588585599033826875064717752052895427449954379225167312167243601872718635480482027843766716683465497724248033282430283091429855385732803447451464419682426684695829678986521735581263661359451105210404745241082100175217830188303640193801154305449699562545632209478265058810527886426163687819831803109844958793036818410123247678251542058908149326079293192233916631860133633706839070898158089167955788747275629164861829754418553451263296797221883080135812337342596961057347625768071247790817703214497801290584486016164457518097904430885196742849413470172503168315698506138798096835323760829391137609867422712810377066655595169082152262510395386830680380490727344920547131475722766279777959849390160730066806116278779950460470078473603436842219873323008959474271896471213336323990558205163643302065648291713438872004772317260229265372647859381515640040461377633396851243999560253821079518142696185072965676586114883135967118568694803778206646832183549139644004694341513406042296475164041576206470319485753588416351951067291463577180317176418945232821349821708572000138551441360357617869162986826340829166026899128333274461187769783033682124816809317429574551999161236354303917646669339882872548349075771455001541922782684618314017558760828700276183320889223370830600654858442982647295861609685491641119497544189902718303055653518561086907914683909282425254588155690334118376092986384488191944586027582349447901743738068539198466543732796072726901316852733692487844669827347644825015713030959723136555164591661225790048583432424800279843761562542335684958026524443224579483502893298461202175260737461486224275176612289702006767799135861894208660724521699315181427664806615909285073265657767730023514031173345220971497293716868914428333312865897452112948284205905960906050286781383420326251830812489747803420540808533686134642891308052473996685548252565543789770747053148710756908151300053945308598483701659687752351307662376113497006732656035401253278142542137511191917574652333708339518583135968593185624808064277284045132854775642084031146191931121101624348040139002209501521856112391543721930987799051576022629636133387255635757095273199030812926827003624636940562968716116432352623747487948135820438491236385640327049327456973063372326981213712739801505670051806792043428261518994059081783947878744093672518259576775560841275923965461742160373064930328436982704628847959312459451347879849410216580702136677725587947699131058515113186053969141311942218365273760517078169513022891352417885260471896043320403364281024694961529797924144546359520684659626093682431284540984718539714248854771238640390403685825445576443060543410731906243686959916269717128943973511253689006072584868297551683121806705588069708636721055789581400092548622857583345580133070564136269529435155402383774696555736536771993476503089619543493834116138910360051411685522327988433409347997318260128624620063971182072170119852545685411204067650451324420444070169933295600217544161362162199258379443294262805591545990245814694898080819070718289005375601105620934793546061482478283543767222702861907075880336373407423798257723344172529242838083940198702485771814103231986480820206213116591612500564297074103611698349322618891492878056174284320433487922329674288608930653889468819111581219983220554198285181845983236635825500595441179477757614564255552980084184468413046307947754559383153440348846694401718127416368600712757476896404352218811041641893021167528734742432789192169948696208145621644003667134639495696378407887210695636299319333899598364729196672799349414400230578743121252891114011486512854740035938679322712630117512158203848169567286449786304002922628932635063717812247730542474029379038057800568868275972581377481459582033050830158109361228597887523343414575380228220822299564636316565293743661515691787220008313954414398751648313055249886425712691759492913643106343998469678739092510170838066366171011627924409921927321722567704391698205165048803766907200447579092489544986260044679281294315779230667926113210078380869336660993669766312971616161951013679487999040308526497048482806408962611053503493630199911775711486860145058009103214129307350788412597471087590340236048921211129504331933595305099190362038988457355522111183780246947768654462615028584633544040470672173703841671270332461837959831493619563925633114657351519223185602189659948761469051433434155264455383028855444090905416674828657923113211772839824567274727605827606138161348781325443329247762491006089803150815860181091281791586864843914116663413179793889467211349811256081904565459766652406261172590255332242131798530561509221760835819012419568596928702360509454000526469367556284662457415595503058449485170776570902894621726707954318539978345187896480306175243759822717167161698401648756831619343434755195241726349670057311949479654678255995538853454135292268167400385344566873552859065934499068702672735763970358529986220120790350178680576001316819665787012102992548325092957438493959919749050787718187981164550904205541870759458380589512494841487751446617311422960402899011371778295586797576752209439532777606006115279112789468553286786352186649556267115522430212997533447445478914482416272598084832911885879517271307571111668201837801348552321236162940003738154102358527501650092778925339453342766651524460999540897089162202829474101793132417994974748691882475324004720437125622550090393096986801006517002100662798322290714259043172046707242870483117558201488059370271430874197059797941664267303429668825078221644540752691863579775916743228446127482550761849193724410449399637734471733055724725967979474135001666591748209072196150114486295509478300894707959233910761517818554496825638048557832492561228280784258260028191014507169736126842031577678277245054012799579702078488012816398243535952580563489493022047458074386276191758467768752939062954132757174090480011410709689598445694135216349287367552169323033444219211258099182894495236414666828206666718706147719803313682560394182663800965463853025864010097451601099928405472200306805071173938416425642559496338045621405233856024187780909643158352826518025941002393314757573368560913450029717774315592197034783540770349316355380540269963453811469419783944016874971834544589233821091854281902130927370054461188060172468858896291755051508879730418421770846656511489727774759010326574798867865037591566992985959073603708682146446667371995878458370283768190143109952978069932301836174536569793204253689469985508208918149453945362553385704134967542907090490946119076470546408637997847597128622354116387317441627112894719804701065364232997236178676577238854891799258884904610020312492586239922997920768170538503019039527533872467290192715442708915034564403064494112598547827818802862965189062898860812123266796289773543878204285222163089103134325685310712434597553773335560823581300215223540705591507406510116747010610975553888702238867977687092499836461608342352249257049462683276377945401685412074801570810598505455222512326230965364448120839432291272792242657083695252689809787910170339307806521641165748116541506462144740097553570526599879933860641916176206077925257679918343657046157649598129688048267118877854846576341772058569102112226245345880850540945417898174556263927705539062311458911908951624480086011880392328560629675922595014026080360014940440845502112843651198302549297642033065304247262239003043290711338544967963222977899278817219903365291670876929783143751258000503278747927073633303955542110889036572514768323790135369904679395074455010186007536886787052267919666474800971967878882483978684670633579781703904325483073201798151123428619216531964444087050477131475815420281836284791094822612008273110468635116034427023547841122642815124820830681451723751395304797529580895470506012281515986896941590991082204398388362125412909136531043078309431743403184873361510654225716977959214158729640535216586790775008424756890277005328488984389872847372712942509880611162858424653055626373156463849531987887714152140086599521747861265697743478270889788346949715939735193129037304751128598271218041403138587018630199002185227139900920957800199807865083366545506962844374837272871038951259476840159152372602635137391821384064026241201501944970434111766091468285931241455587136463395966985503009773642371136765539252059445549277433059861938096149892314323536503269917063923785561678492347531914137560350544789495952323850017857504712115317453113984941041821227631920139265286963602420563968258750796585772654670905601873500824949384981739067174580083260904886165906943403333542448337158990589014789868276845730031294328939893860233478085861144706056566055051667157904710797015675641899111675068158118889163969253091808646073713336791908988434564319413974956428804071392510558446444205498075479740162616665028882292326362697784594339427252422202725186079849113245224184720889836240141730421184820493594515571106224278660296643855645741646383494916480136829200856655474935847317560822041612444460912426606575097486748049574524905564536091380735061789870916355971637863007601504634094806021152873556665481618680532684774482365637814689144563045254006554627163477119283975638589199121924215692743399693300965143525231716862005481202305753569937069569570671928676550692312988516934092888269003335853790051947146754055979831017406266999377192894142635771334468536350217931524713777901027500733463370826635087315373088177363975160143853811565683813662691919111759318251489682491796961093317805377968100857673401237129300510435665534517066734457990319695424876045554877794868422239569916521885560707062902735489442836664335265086851708027705893026886299104423520398266473641704864132763416820622265690886329230867235390585534828072037087951598723573995975041016932964492708759206642206668616617670832672906271738203041910890364160865950036570388509791295562915168332851089918474068690928240880583468532314564413219658189077421465432260434591336217157402801899340442722193980322624176890576855060805683967511033481013681308175917384762962560359910860020462787751790541167315592711056348090955650825827396006461880934146065445331757521207327696443507405324512433882536421107338026553985121677250500912121433816538481696694075881830314532915853410255771587116772951171708556778719021325463900565357931354447347420860478654236552025947541196889382059827905821784494867256760077291293357707622520122550115703696815588634883732482225598429433563153351593574509509262073239266069285836208706181449604703130422310975398835400804669663950019608178961117238757012995960641544277106975527864690161255791461950381532939449001277094543549170302867339637834557501416489302161415379713752566536019365639958214853891138817583667745801100206554920303671908623633201789649128804782653144087636789106969498217344355333683171932277030073065780867014895601917065940028102373034243660876656605502680774192934295034090731405114692412020064568333184264944540501851586651955659984601435731752737334326131673950039218601215648281497720226586567903921758336624792396900861990193396512124670853694590116521334593931625092342068651370504114006688530942472979528632759219923114421574287924689079945338269932578701333408380087361906690823649481502826685517031006164909306776602110464043828729545457012754907540499437747511679917410861679078176366374983384646852326650798308718307829353920069298304422610613317240364163766912342799301425747835612280021820282715036643526506010701333717532644273587452771967168200733418069973479751527046555289856630402218060077809435858330942422033526208879881263751397364795525266036123845083751436252956156462105590926805255387788162477081630386133447627004985908589363607068622501311285775959228001712287697940806217520170179275878921704677294927663944729680256205161909807021455016993942389487921612856581203669556293473004403021860548575700290871405209665408379695523612080159765405232117055609872219221719874608431382591566114484811027935412524138629623404101476178414869052258463562289461206647730589800404805611679869383968910460394680396777738195470053976137450971225987358027363163752186176325476059054908622004809166408325472481994926814597253854274652196480223205620321834526638034710087904275693756393608388364164521520325667683668137630954717501219715019012299620682473132905210861456763844822590371970743437202192514307913635528464507674572054835113887244313972306711494561285091008439037855619286009235810359558320929253057347803543537405846460865800492702336658358555403073008923600212037689393203114953450879718545348344661257374668100466561849938615147465827400249195893305852655466055132376022065968396906370430410355902749975056234116936684886751140572908165424289268089185036620419820162560033581327258923137249134887773918080010168262938105395795510495937589510423122204591472553757468015093531935183808686268727857536002470275180648517521204725118170312076370312476025897337667280241942908661442668961924681085681011173491111643584235306629820627649280334644390981994082600021345210716378802875174175949461227448707684469184497437516201861206007049867226185116948323694296330703053685224194967806286245327891625798641734579155579771132430389745570166254559153972362170439019197222505747984278041926466161046918133803730181264105716870585825425591154026498803202287206570074649053163733071427598223141188037032655777764006698322816206333208122130728499895328220589226749402639435133784017490722736438469243282856896600267661021083356392523017675119101676322619300773086209257768574974401438281715493148190587051360811757214550980231096439701727804380609781071920059353018573865456618152717598010755504764126203352652648944455843243112254046975291229493222855212724037086255979432839605420773776390717764267474783983688531004395867054054745312710881824829984915327483928069270016176132769200646109191818140041288564589136197970723024590285297275158758097489279977953053289689697137343415001408946624141449607286128869124027897406543722066635164470614488174700321331370376942104807979315923543485258744558167214138509539306315336584894103721857943667806157048688811725718009900794480392067546162583004778499477525296393964802653849012487451367991735137402048316311923901021508922032275304321541852420462991273266756453007430118983192973628329737325897624148393756420017548773184888971461632959544927837688418939161387659629778979485106370537084866420359472022453627904111430480029636567990676084664183079098065509201736529821993045032011414029889466594740072851557875391350840759069830087953657242582371516413752500605298279759743425250366842692687211979180246109520083790125976677715132742602202855103276736383009680430988245475523603143930512482218233358078748714605689750093941775605267984546130089719471620794863455872866319297373340317308068128139768049636533542704220013451878496421330385438863286556518410276693822302270105770138883936611620848784787621282322738099948464699908449865830071070614510313490173170532469917845935137203251304182896968146965974239361233394598628754705754823644915218317421910874608211273965711487077369981803865475725217775583985158266986461017284028111742846382213912470814281349866861109853990395232521989140310106796215983010657721783754759951601480851148687420235438768914259821039691383364046876708848699512923800003842067690764899932354819134489211174517380741166454362665807398389973637057072864767201169808949170330356485218425554013756633022276244620757312378457290188230010322454036024276325202704649070392585105061313377207546051426599287661462913286313748814931853449406971168868080756364841142053041739531031046908986375079384199316310264121759625188001070887547395698806335639967117966603820273905596859301644567107034434480356615635238730198824106687850518361860947864928998465008814388294597961706007635333377692924004216011172748112376562820690290877009841842329752569693388986405751673365888347263232756404373245809086974478739406284217609985644864100902614557896741291504498536503896648056637047012559549529027457050823645190056025248071785165549680455318658544058311911469958141763494541644940462966288219097235853636190134040893049443797872691974710404317875750369368747637525435144971011708174603132712210775807901529265736286997071944776091447431533840629365246933000165611098404529753587504072064650103467484013195843606645600646422065321461097108052849545728932170455240220006943678309281763957623754690490345246227384025618496956455737217187157187168289369398488382143456822910699962720512762312811260980853935043555174997455374354815617038496646705856099782433093823109229726536047372582229925064110139074942310801688691979166942424955999452835189507046420269567268027350981411056226313864928034926292091663527095510497037601460817141987162452427913785149014251315186670855851312428028015390213418698822421282327534083353732677601369373701479200780870525067048231039264539673461285489636225800594131527618598294887409593231377660056339871893845781577818199712934816645421624465779754463064393066168808702671650081541185035777417159100271105723823054260594902850446616913573945886648093048547759089962117256144948403597601032162661137913937037796962374109758456928522531322479510747889199258267840291597908370812414383182909405538424642734026067267025932275730328689755028211043543634803577555669541462981785912175835099658856156760222343310829740381953936512528210320194730257929171161981895761555428296732032585483172330703926332381251393135100753323709080390590230199312114095389533990234612598878020848829881417524831054320944839497410837861886904427703419518142967854659990353381101955165455382391286211858664467285138303894218309008932018273461296695548664352362697845468425464597555965728784431366197073324746018073300310037150077904805836453405604084507910623585936012107241740051809147829250113569109401432162254453086601090454805025959322473017275177825604006695365159309213418849594994887241158701421552069875642341057009551762823338823121122091615360961633349843970452287334374118163049860890023046740781692284355737506805773493806942544440676548318839189161453264987135529306751151520153621345982445676789634770374669390042732778849112967169424908577392430717205870934675269567450342953475307600232360172200709421334864885530728720104481978374535912760712120790459272799354508031393893449323800305831539310818338675101516824518540116228548425089484462099671678455366943738656322105788966452129696970169507298300739123416048351913670389150790662185708518820772929005085484285274297531136596951410860253132675920605699829896072744023232367575223724088092250169412545592209809795419987088455118321986115192517192434276878278314702186521652333764138955897389857567107094323008202096166934497516977934974322141706660685834432177235010302268096664888244563333889647031230010840964442708791447794256470667260852611492796243801466674434125592553874861993523924922059422142874130333021017350784875913579792035424021509828772304344997086670367103715857116793718523685744705636029652012075735941672276196350678534314819785137993962662884027765066984501843018421045900053744256039212605690306049176527202206776764645901909630479330618379321070647274336965563002946101398837653974770822838723416703319398034496700926764091604702000043276411380914626689470278637356431336943437988975597616109266336366074541244296847258455979444924839562262575452287513506017323154607297636966067691651994203486525673493025599917461698694273603304669197633528574246889061840131105639716971163139090735338170360024055106432005288069367618498127990292875488391752442646083047284879136034774089166346096583615142376037950879354469365000484849159818520493731677091656029362578540471999588500799911666079437996996411199960248964893502799803238413550423333054492034749439971271206483772656313771996216204485804238536736296203633290006094364489514610307356484978063105004867246878215902362593020558558738776912467004696114394825437622317466973885761459440646564280499264679723889342779423118137983838354152370791646683840650146582996888939581776385983536986325966300314252328158158941082013979895412767695682632461306903491114541022249152430138615748146631364574820079526339680540190105940682271235627063508553556351979866619320621182396298139370432070831420593214957754663958210366923074197158857624307028306327140455030988148732756806528811184512339252470733072623171278147766908597577498886252777967819390500669526475318708664072635683288014614930185956218825985853954969436107148537376516055794494521281561549504368242692018892592293414889108008748017370590691097780361013265555899554631241189774446480248173619365230456906990296431216187789876755817622810484865811818451535574301300157831281676637172108796802630495907156070915888651102675432841091634510169968164121472687818354424360376049785878512644376076673109491421356724227706133053408666504333135661892253481175869301214931916925016272496275000031739123980518918613323899312499179994597285318602918238422081062436135786025427710300464056534582411868442973671838148492087555199171883222307607306163231232856027200460846408261886493977739057211778422651591084135222067150700936557163940787436309262912939153293981849271107211622742707208873686667158753605900057041510479301360643738061834963867967268788140725665055836512645304256245649752568523791578013027369652357883252447965936702754657759251411579829932175792048420751289662753910806114247790029676221445692692249450693863471434806685243825038443428797263164680558924878453544258173943264588749132238244925481160100291102898059835774371536215650873830612796426565230719216429801036168184896013296359922290493838038724282435164605463512669375359128263239738570303572069897851836169087722566229431703891786726895228575431230622583677495703943441868471489033840981415782268653568324386013082546820156851735015788860544068129200116360790378002086340909743029573319697111904674797253298847678468021263733564108321792084308443663801098549327528422545761875699533294691181756210166508104785750042017145135321530909363340880878174629257508266898507450710234388271795950071848586013689820541205094724802716210814551231687276892287090815780968766999392818670405216796542402515346424549650529674620861376062037098594222417099031137694779068927511617592082109032366221012490941070603753358849316215816832418281681330177882143999302155646599046268748500994526932576645368867170569529582177144537288513377887393010328161494949448568833579141079019464302331075795818283424638894344285591325086935165560419665864268644056512116892222908100438586678404144005291949825443641225004643265774383742115548938121517377113512827374569703518488272092112340158160471811316508760893352042635082950406828090361562100271594940678808121523119102821395379330311365746735177893989788678556688293361521459398094236059168849040607922245584764620240496453689213389805594736121533789592279502284237362669677007826056990523281999304349407406108936570805970283689531694433115547758203334150176521306487786573102065794328439158640782944151327377208519371360946597581355363039275442203980809703414256523134515368596903660944496874268167205848740209649427001729568897132715518743271351604011759298956063750196182572673130726484730851751288520780999863455498088380127999435065391873087017747414617539873484539814841382752997888446954034762608090660430646483295085727053965890985263071770357659433840251148667171183155735202611208322523674171085459170850975231974949404954194100231682241315065179750279851404323510283696522704133370464009200172063650159856889201506696561700955576778083950696652509724002776585965309613907638395200854203613087374729747038288605014718972776176267196536751652098206676018793693714565059739258551886059759791050063751522331316900345498461967653950142933676683094528774532780769631555241472060780718956417432099412477092287833896727547579437650601666412841742279633432765105657462825677262950729994062020922659330475250068854935918941893719293408568735860968235968551066302451759468188219005907729799480071308387039208596149549771688790765841035040315607305710521543575854617345697616190113860967108202594567469457388593976897180969490411718320246463366890206231871586690594623115240093673715657960429157963108073817355728876783525772508693135773367496421979686817595121545536799003822757121193624125266163488406207555865887384013151650741174349577079193166646482496875327697172196351545052516843883299712203545887890917303842945953562499294203937239436971912226303188687794151583845348814460597884445485284125208319578936761079360656630766475339975448364071396303556724996187009075639004064965092735583771693685190324559177074496068988442414195964094537916609379660076200242386189877418518215925176568549484412187578182158526536190177323212147800053633663473291015352848699797747371947761481742953887222596058686338831693423365627871175740611298443094981704655684907885608707199551067036807460662814722514500239203735569566301183941927862796275344664503269789184185469944463176793549506685057041444585355793195356632975474247564698740616591266291707537426943360569409056177265332650325882137844525452760455460468465450641837089412545758467084811719214563492285048603753606394876057703795459517127642746658622659625012528839570030549203204043067941051305716642267380848197959413138926918870936086091417184208065456680671789817162693543705689413375277108006291545177591463549239421971738717882728496188795095602490036498313388019218445262877954924313685268167942122247667374178935918088244457981450475804875333569919906068397437110236568221674282344338706125292683836801283316540530224778446132476257683136866724047074531877285548563703178514198442396507091285087147358764320296561382927096193688605147848553141274805721315261942035612341323543952629979734173085107292797146625744148199800293079908558952386357674643795588009440369225397943138364357875609388196773064689510198078576809946116021471691558515367994317217126339495779705478194487205065168878619145770198239911166787251442467506665861640872057347595768228751111063449597269787648416795439374056086286387401651070677590508560409537138986404143876114325496440766389229624080014599023641971150927757491510012598686394906544566635083608718876714562361693102374853960567051814422688377306635925778325259758948599516687250987329873611368533388064042465192681849892277513663210405643708857199130146380803140301685995613113647251624739932898383050163089550119152917431608494424277833339256629859173267165299969650119984604004597645344336413704729114917008626301806179408177288615001238240166715065838928264935358841248303361179974622018743119251445817835324273502569805984837089454391465953780443984169234391126871308509874965258576589106363904869582179155288535336270062083024872444383429250347142672493038443337351537026188221903228260830694330499704885036192996485524797508651259547840605380599375800323377875670255706915830706013803477754257595297514553990309452836303140921800819819344160606698116494435440429854068893703039968481615995648718875175472246874729991411962116991604444360947161443546189794565019969192977861181262503743075877022107327536021994859682367111333222779810915989711743480860185321551422530010646635598670546365077264629516136903293451709830161467427860676481587540994459827968178315534981531159575420624801211839690676114450203666125820885492819682783441278198758299162637270727356829627596657418971416384033233698704849179269111055774672560594813645974965844809272926681955649362729792017238092611039403306267664965742219854651875495876225294528307687890025940798433190547331595518507286801769520607466822558591331603085623600867665632637335537649696024255293059282155077122448408170167973963971936326909387252471293550709024392458024861920916891082116582403242279259640715891953316032597503905726309332434821176571024921314314687155065766459572516422966888836454025459439711070182543962683560026977409866535902480276454371812818061304227796454788454447260222528673378881563501564307999021927475466139751864213277069688149358009189362912178591910206754276626405872896649766623401164793378576686886968831085605911320633587639919888000066970775353192250947572230334437007459097446415554841110721197340818803386278325862922066989007810788878672708066639250465504704220027753398173439453831889559062621998089305103027951995203319218511704744240402811377355833677433508810945159085697998234341380853418073982106137052530438418876308841323890893643361740159281923715331896884287460703124459394224410121511295759203961469751855820706890461566767145372866083297604828825936679652820274322344910093900778005986169610262005256414680678899869397866226564348671970226246457636255745110511735196897454280357081623878312676508189205025124894834902986915416092846155061408362107398273721939630378603525194525703208772744068890301242989202233758502310387207547085098824637005474707920348876415785301686350896151880998485369594913135313240510900391635569913874568745737383360470227748559886652341781087131711445342613479796646542051717556931329081003563424608738374079086252760744048157674346586841566288844197557730861766982597504896790788358265609707703312265769326732975694586868690279250826054863690500571303894236193326083980869150300514596185714371448489021536424899766949707130650494618045248235747171722887686928178611163708460803807040782331327867212865676395171281735901327477286905340375899812577827725970757815699951609242743586097396329297666648210654006016498673532641362918285831544431919239846396892736454029281926155724777403737309785575518344971623333893390760605894499880124120337555782371082473873601007402621952844015661004594112794154022464376662390267867395042288799974582717399691547478272001372255917909997087209610495452027322137423553444726908822513148192232648547982078284920952187588691827168451786174859505715741610919009547247801898258005477594774467818608107041938540559788058003882609775228110815767939657278183836316905724802155497788507557182680924922784869169485387190746507432238456629207392835502916435559519127562471485623691716559751562338758175861764660800244601296476906415949552706991118738430432537269799575233534275832679100278014180369032761680511529198822609209729970649577926373236156287682792185792215295666030701934724596274034127074384499102145278124596943057550932463187931354983202189884610348721379417640456712255028901690913274364436718834151746332344208119764031414840734911775894249634683084288260289784073369235462553143378428934698654527353974935984398411560763222983528227958530799618659155587955823570737122861755500979277302456570864333661765156138832550380536721269920796690457056752149911645114395475463679466752754461644794648479392159923455469516062144400232977760996485555605786111850086798055728242118602261054177890593141896594603671026140990899240526085466142206759138909442721359939794830369237985884666643507943629747525604353914311495054392690745470040915535772951267151541663898083918320630152502581586441591582405441914479639340827942066162504412204989631180028859068249237715730330458885708493551925457628296892549726232843342837768186245491236486570343377371658663412900815167120816458936005186155127364313403608585576211232667673497829345910355550696540845432130398208555213119011075594828704706309042308314083285779747227623350736091662436264249176033709297651486751803640701540346482712287164554433821089844699417205652654052506941019111993369922791769030238133561000268099203914488163961944850132069510138118740637278076729927114368521207100086584678494567379852081815752199325386562719833862878435324470648154355741537624489099372216220717842411013948805148437505613869200737474755158403976146690626067568348661203510727170822248143139542829189475786328503977961286503405467178310767780826731608975370652324979809148498378959425257140212506173378496343958944275575750181570993848889165033181925503158137424847811024133399296117541386493360077284271316846999616480681160898525325871955608806285525157298941130648846778035281767626974734308750614645858565675575114113868564452548128989757575401157396013403816206274582910190143622866163793316663188945274926281690311511473731083859290962739789794718112648969828074165895445879294991667653657585370693485622545224175469615587061753929145879208631430978251349028726268900205554127875462248003541833769528041140420234324940710324362062056446971985040903259275162561251089435267801319820467489464181271264969377773670998828297815501241661364446749749730035514049342338216209182905523922898589076488014862670680408230763093707841013640031487641321313416116559851498353616300424071619212611258587911525878412229155031043580724785476873079384283237724340028757802634100945289169695044620172535072035173878502012022652873749217788488597865126338878059020767444302620437576035319377680189695138773374721601046232125363551330789386184501471885729121278021854713518541146654467720675460490622932899584345630069789951447434264501717833304067065012542682988299789183894714668814622508039003870261585588599120345865943294580500732864007225165370580876365851823969074317776154193480070822447112260790771953093192783802857875424773416459903488692564299787230359048055972288516712096394069430565156216925189623886037593247170700757405053766830683974056619502084634724180497308760902866855244971584742143164015936833266780149785407933983191612590142714728787014568609559677159882299303954542600570805671551294846025013380499185673612165813507965191007735890435221302834948747675627537276913336279305609110327345608121713178758227274160489066097315471267326976779979456612813462958444004167515074842238157075015171891974440066520307408467414807943420582075408261710047897503152074798830215097705654429215859052237866176975547416285845989109438747075594418276163398838399960132135928119593106224600470956426465899359612910662460408816540592048508953443078541287109273696372621627910902733264464356251185445080120136339086037917842677161164213551874454965584889030828377239456248291058733222632505608430131176702308003937388865663482436353168539791535220613475448878639936888518666989377970507204508390265506450495851856564913491906814818073108465399445571763958924878012727558554084577953624557192661999480801774436122405856890571101615519508787555180555014889422417799892024985112405094369567408698004042912459647593423786868441948269274571020117179695210763807968366595876840150758449793919721292230962547726344400431515679505820382703364373742928959554385010167269871825778241660634213353684716253741904819496417238459603882395768388380762330177217375510675691653588934856505036378049610219895147026128079649281588304890603682615661814532552389862748184870840999882994176238703256938437990659931308246931752656422019032060209501355873359406589739496668865500805562336935266703785977901767293645783618026270426948999078013514676389479697009931514315870329519985225525249377449060196861257221437630926038137879711690851560033027996252309964294956080546792404894795537835974734864562000129288324450450979958203856181645025146948592138469844641626421376169056292055563739985361654075038068853607936039483294707760774551996453029406681849343271521151584756746531584039457247953807925328861054887774545715486093814594649336871297618443284668928471387426030082188319567332059025277084515261235654430459401702529384651867662224889978308596968127744447489242266510839592425345112310971913522016376327937333553218392807627727900906954332804821295095980479902500768993212612702584921026016236104956901813284586425706954613997191746951651142493637535112650684855385848492326088719559569830403276321103138769032588726483276314112914631690119590100995384940248260878048415114191621507510402622495383534362283197529756444670704592591156569389652155323901473522403186757974600377911376931151024227023177410032265838214994617899393322171753426413774535280194944373589807787479667983016920608082427561354238594146035122989739542273796282425102603873344728992142067138727138042835925969099233609262234410565126060489462532452149333631863567300565789415131447503237398764534128776639943049110173001346952441911429331881345746427656570728716008458956859725563864679212322136454298164689405894430440537827208564121848738140239926976578529683107715083118953582727176760252944910418894087835634840706650953643656330617366518133491771664667224869248094558032184818916321782558520216333667956409053190140793613529868849495466622003547208659601404475889234436581862928162404271870269947589222349518542437731522357602354713207884397204328202040993326576251258415036740302626390083754351262268976734776827246634776464481843557574607264882468550119993980990409848842811203063916387002032327971878133757166362443159038015469456057179161462022561806522565641568398892232499856088339644350064713573909772598293885353494655910669405328256937170613358002298783151445188106205458559023705866056451631668958608302271040456932414293461842776412158374062178539292550196221469751085349179277263762269034784992973099506551957436979652441627027394895313860474139306873508786736066462615320805430621209286311841122100811773723965181873062213666115689379198530968495989353861546375527161728019195491705953010895737781179476538006797211469815501968702903777992006227857156364535513424570835109107151414481353499814847635117663074007325076237417667593588113602265433649840742969688196506568788360276895097930041448776798040840784409442837723265430136835004928831583720866128890504986983602154505123716209922678291376887013701160415973265742601964252245936927293715824336613116573868065747788324343605092806856656521245541176303746119195242536554968534427145499233756729324751438604462531804559705947067935532400145876717332481315027976089299412589186341250405961609347789397867939369672400466308170636785540915081336638702495676712892981581468648447605462946848936485817448872468682828842432669590225031328340717718783015536674597108975818913320258120706739000467226614822595124737767050231182061583192303910812346561913677229290182547283133368610895044261994751051141534917142657673322157381141382301729756038579015356196776095658633293357341203874668187184250538072848286727781901516196076507224990381861552821972354674233732342963037950411864445476867292129041490733563036334099504000551310964850766840096683569801260673673504731570606420162895694204991253699466181181392119240347433692044938952269170804766821508024429610012650911554622534683487927292409404132593201621951950951413366596061082620153349914967420922877991821278437475765776719763834225530933447867387602411623010211417642782853607673109457566879282497123503828377631190797276511304954582473108953119153647459668452680269620028305623914732922771761687851919680769237540554529099197557346083357389559676781567311186953478821030925263346703750586812619622122023934593645808814945378992134833003317068535514086565911891322942683848431442661792028235736034322864860504553256461185421710635756132419331478897678658674922964478086144222629578435952134871695715620480107974351910251170962243895631377633351840795546754137415371208788850563212647468429279910057302378973697389940781693106851853410459016105661438698416750310829038180368082981397771791986634394079750159293760026376219215968900987537664251322883292610427719192271815266703849144521481019027343516898645335875899018620795717857332169936269231848887710206591495462116934682307843050211408055624599228503641711166215603479975971931574381504069688112877669443387517336765124329160807102716805647443677874655084815475882931259975189557178352472347393877880120789503089663323978118633663624046183413156651718515343124625171847655417138329245593977574648556538543080598205779762884308727970246444224502134019679645657910274047150005803067226006523927506895342341685903171446795397035130502286481336643444288523424577912577038647280695290866860647529456909409171471359058872869804222534761760491416383752706929342568156993360142565407690338836886176445572544162130788334204431582836374314403938383068963965967591131174643110159731276128614706705012849737262585897459503546163720875817636961372196926197797384867714948092805886717192618680332173801636499655402947972847385442454918597468891364027719691641861337760967140817683645185781785798777640176322373874286247792690198969046660222402797868764419479173867879824030617336234331339568043554576138207631140107248886458090850918045255873615672418018940562610090886728696767476251518814960031353270493571961959465552353051677814399889022685760949338185430836995908705829620761500301867799619534782612651015964029285014043813827274234423580047531843365618571243437897736707863193860640023264807391495630289243821930307893490734424795452954980594391315275640904460351430980296422021262520148619268991039427345654218938172440710802710535014565857535422367833817660612059320846462919753420986601553653936555565004435550733748334418302967567378298985825068883328499897373171608559154221106470703511974488405656890378534366243810891151643597951075206557046098672869299951903525821701065473480742654178022427350707208508173815477321745515445873296130804344678981207294596590236752521410009197421975932937540768155089540767369477850317974801184592895780574714851991548107741111598113635038918010819765779965394204833461214149598267997257248933963052799467010656334004715219989939485167591065790843434954803083803265554795025853090527502609718242915465346250095406008854648234422840672518424283720449626959419471881416587450522384037407722740851247212528514111432168033940475287467704295233440742308106071075061631496534637730724587102288294159335433648752887765741806824166263277251891767126502490630338010001140409322436845120105617942302540657599538287408897554181580495442084418013690603858368951360010301703089925321130582479261777036290042349208265177728725955555846509637162734033448725946081049543189623848875031324170008858854516966365583908671897064698885132963597455298799238992468526385930221386134979354005348663642122726507586979278012135999643474314814069836580877167508557954354153839314061652861145088689638864460487672372602022794330309813080433472613779239032363472564907444695357388744872943364244254873512241243938857300915869248643696669288379127435665043292295763123682067086648434698037362084756209600413973338245334657677732782353646682351364145703382839323113466316026344675078741184270781942584189451007924785878619811071864063164718578113208197696128526377932011846753457472615023809176746070890477653295768131828292224216310427770868252760202389628952255431418927555216963094007075938418474197643631924004612492324102046913226007406023173120274426574335718676435717236962245051557198024446699905654254763219315376022543964562666261872685428421949614349521550714310962253436965368564768734108241236095171629253920918210472420830011546598764793203955981599941946128081568677025074442528173783596076545773044211272452510483206852828827867622519319564412131428295218433380228134576988688886281267027563865848164050141251083907354997796616238922026052053523849957540521255344015083616331435352864339129469117894269430811812836501054687075402550409437119422003325472170545200920388208458748483778203082032586146105203780148164978558375181347531597795994977504999234030347829252850728923392588451573660385713477971426103527684644776328807442321668505040955477449816950506178224358688731337413162195337893300517310554172588564562884653202133674292293353787302172045342619238396741663361187599845807296736188545987973838262769444415062103097657659735398314677341800919622597521979134794130158297605925716174680534400894868847979732348529907034091004278582233197203503998348702033194339864734649725359170339353992669332275180616559681256258731509949984855715388196300399348508707799752723145015886980921965016467077355015274529119741879989847261516109166773658013482406907541872458812865647947365272178372518473318825202581603068514266260249276934579615526339897531705800465035143104400048136639421575692132061971622482412449177731782114914832515350212423215601778143382577167987704285176149886082086609735016216260618984868846189505161433759990563363131460794870119054239884258643688268483640090676083896592183082530416767457466342397193025452518727757838955328670980746157706980398959025826970369886547003297213861718715292190217093712118926106780510795008032293467570527431126749700315263572037066864055549948040672376697041864523478068152815911914248445204516292060817007640125249294713673054648704167011174938645113005006470801915026327178608906353321274786258883401000376576054866632876396266951538713593789917284594170664617598012405434266245106483830768428222268436792248028482972892159740714496153671844422069929627713580537077352364294146832054124943445705340247604968624667557871383680091543373738926639403976171848100205235848760817469352391242112380979359690824787374454076116565415308187533426251776446437079505150589539179482129473382164471844155674976444089644014789821747125825475423604968302330657683521976058791941700215246345813268999687067483237274900575700662218787434528786070612723119206846957847065999238993940068754605776032192620880372321656281011583965479350779336305343189131546519897702259971827590110390950989754934347658863392266310399763623172502390881699596831441737921315232251439830419217690652026719045026170559725255258071205366215105882260261466577634027925125077759225353845868545702433254371211608489249519766921357124756428102507847810498647439522284426331768368385436651612368440710950033091971754426187734276990209273946738450877343087184640000681539146727859365295415942545932480720520441996772449148463286720268813566725042747373862130315134534162239346146564247641643565634446348824535076760679914920260981346952012206964929525413066621879372609441751857552240228057277507804822535844165320030238279849790703411089268344455222690486615883087179097330710948324884448818327204128699661441081552991916946905491919735872703838301102119413656835940270498784093635653163850094850425281020848905718952338248816017551417331648434169065579907004191649434296131479504659643487680449180146623116359342684215958759736888520423024596092118386933872147977924263197284115339006705183817621870947112124142286093039043798420008504850343020396437205692438250585705676111804523029312179731164516938066242002229438061291592524875488659239620314185283414575103980386281722852331161424072915018788355824573990494060857961431538517869811543013494177987862427781083234804404360528560672297915097947370797791538215813096581808178084574592016894533823871188053442422011470469999235776421713659857439811808888078848031772729047053975297101519085871405334546526847092203483457641362507994277545680760869039743130380783014165085868996489986029311203594909826995002799755045215463220055141524724028653977182723113652412620100182724932479320050258083326658240951011525458295131118387150652469841109578941614297625382870408107546268593811035510368195313999346579500647221656011195924653939459621949953962934441740701556649329396439966345905629221506342878868633612241847052239732246777641111412054513954068367789693304607506995419237437462715431241918057436044072552119513678329880149783181868143439094123836300288779548878148870623916774881493352462535509028511385353099442851431058367066993834672540576564637478694274850379191985592436801043464747382076708831216386713365155944138879217334399860807203534232168045279607764014036302822853503709954921505668810949652697980842175103578854131127676469806662777957854986909619606003965715703301697682173860882411314770340337124731770834560912907999559738915054824833561026018796958480124192439199219051226905664448223466157974984109219203128172368536489645064541028781769628357455732494549283726065148941319382379197481558528131501812467978692137008325147445347700893166954893329153066535689828256687696210640872316522473346326293310900469533200489684889075669787931584814086941814886526792388142020889929591497138904507136902523167923531651856671444817529322983508032545315305896194688556841698133027649581590953778558529595416117167777837526693304138606317366755259461346858700330181213713440265747753524506896017944853077245004930031736832283940999994072368117484042065880266488640125578083641261513238546986733604939245725487598856923698911861261580669516070947795739377162887121038644558897124526737541839731694794125885844350389300475953465692011315389349746389966223479796997656437395693573425669346625908402815725700919474472683247600163470094572561311999289121923456279143419334721675074686686122869800718785619813877477110208737596033975127480941099916898818901898763150963494631154141653574445733430801577136720161483621459003967522933820322204788610368148930687563805460885235299534509431692234122780672348122681238068107787873472302365941985616550483944349926077805998419953381523280549644322585128850847022960465986479747046330465589752730438226511275948762328934580369829880721112543964090699782625304128162610595737337085190833921130803629249969134247087518202085979474822047437313689953766878566024608297278219281819733125931370226400917314227530242417990480196664869419224220082984984897719645757320231845830777506015214403667264015723141874600277841177963646122642550244631628983239580296671720056095460302108476482322675773245043909495377112809434724624217328789707067438094056961764604910765151379170503157368721239604742217805798130384175363271851519734204623047940006244905498694543375369127147369333426327432312418243275241849660849385453601959934991585450368524363362851796242629913722622180009384042515201031627424456712407018752624964258807262963554879703578576640871039490067243570387991760726969096982365671163672705252520761217488074117597550023562733582701931609655029531967982814736213764190781208859911984192034384559756489102427577841248818902334180282740072237438791299186765815228063572001862610304056167264146205317504147927709227524666922548269280501100908970165354131565721263503876553567330344984774868549542226983737113011347930442625493113958123113836848862764031806898528349473942236454619717774614153736056242893867252780640338983674723235193609780930302647378750745037936642350325467402991381595008523094096775671554919212331543701416712624073661010718030030245207394086667901442732944916337399925229989087946487192530387728853035630003631198264242693818971222671380324684936004754288748536285056648809112619514717840155376844641826569349926896396732788954458345142021258372340196761054014216454877474818066998971738950553960399794900305499684946863280970604347498300089085138349865501345779964498860027709581087153037449965139081295253924219362640210503533827815293659757884479598042786677827051268857561365101706284607126924884395578232322958279735330242295476155425841616509968859390352871450391948586947438383816246183241481366523200999865115802558039058869887467947074304603615328448909114714202838582367678154432031174015757669381513487167264473317399628274910556617621869965723333020644599424502933920926889825063578549008441504967972297963755856563992513478867504540400245651562823011161184531803470030677310249755024134055666236890742525806043276831125228549559789670787757272991958335859121534161086928213284590824249358673423516411676442783837501824321261609328003737759939975530064549149484345105976289828790951865965546825182923499409650724250503272763862915015349737327597323347404611036256262634360332289611202318486627900356864937834812781871558560998265142879323906422118439291258625789988473144385739114074186976041914428301565369842501698080054648828275804039901613313226910480194914424844448649289915572816300168085404600549765521130011154449347284199259711975488444701209040218956259278410612419539803358411670529857749457014340709698362376001083918296970456509167559290710510170703292890846383621486072047291233913341892188168226798225823317984716089442610413249073718708825651777251622394258270788083513094367773172706254094222075729066070072573104598169429429804452758827131210860070712205572783998098750283668851446461751257203961245706865374710525144869553754970077316588118362278529642623911193165560354348028182963904885947469782911350432164627961958694909709172320915359793214120897396703067892186933850046817114280449810847255730262355106727732621424119022904520028657161621532852964834078393997356769764512937463251144481825635708234430831866809856112440134948792248033321581542546090306190378525811589326996075502233849430515483107764474950531888537368566657213270145985456008122545755603538972527618160095562868905964812095923700456698223496706142759501435816373882640123409750380551953952647467283555578555317286987464184235492366021093685508639380067930948247361189310300303790732628571243081822432827550389652046942522734221655327806770698622476225484594377789811611555890914869518297493733109942641244984496344369258687252921299002529623127060515025041156423221834914718186634432117848525435912532916006449672138824294397691894033406714196547757892002579327919350268343053177043097602959062544647581436075835297039177841947176279470642358388187495720888632976756992305289257693420977439644017739563448492073297650017653776693103315151934689180088688732922707416133081645531754842709335202784637521622233897622956703112217621445698511185161447873958163906275223532559586750807691608097127398629785190636976633550764014359849943700019752962380618437990822744014454703719366576527552748229708710382585617948980418131297813909013326037084818241994653926783918996795853618700205255517289511222029829450814229670722433957148697582009175890317663850783472031854297322571291140718849016504281040528034484988639948711997234345672622604837312944045271468953449323317879241567110825879088301121804284204528667427320047038079257512537283951841734247462628953233361306454697430095699923312721300755208215519719073335995774727218240588873008547273463891481240327206984968682215458984494910669672879949811803250698930982569501082965920541764291730947371655190285530149758803806419765804363275355403184272141488785987822147457894143338579401483304715442592896809937179550722178372052658094717103468682736146615222195408514848332589969806552995446075644200337086487407305092763561491765769394111778234580083021772415514810018562790081150222981964738417124287378064449430658483683404635739416512246830924686169336049031775402407858889370629416917503022486897777548012488855309940924413056209395240464605424438486435786927738369076429667573578151308236238882169285188195120731585961370331026921268162824538069246921790375169746230667557159382836301792564379752135386760290761299742638135140668976868056098244339940975211727029098979662305299028453769838942650503956108853841149087350347522893663518132785988008574603197706441231164655174717532860210988829035200471178161226850329461098781333552655832489926898561560707881285009579673244303527068521912661175620108714205740537671409517246859291718077000798257864090966202417364018419319439207824182128509328339756792948871937641213587420280133325017103304963854216221173144460797448776510333682193150025651739666691986141076861426758550251724168456935575042929350382495385564855666127306233120738570845172735395709765298305269674171076819602115135637880755852336996566625774806074438422171569824686551362673237109143223383598085877102440708171421872409654014096462515982342971175297114058834394510370039237218333789757284306084821649720733254923539946883864308338903326858629428147228293632079334647152703445046741450598548095582647683301457756123899894086872852746367204066173781997647202410979577712704758484554753658746230912112750174721700105596656331374954140405978773301665361768320069448278397239514466642982785042520535027469522761754125645796518468166364176176149421417896188156881027895922442023751862833424337263175275095789512871546254032107448322689561030996130929101884786151951626329644589809338265874938510684453310443611233633026780196948562684206997251667521264458102448435095277535997230949550391998437300901300466148936017658341752496309361785313150997899043529718099931061566375078319864810494050025700470401744356895557247470961935501804555624211747706845606005012993120298939293960735192468170903329332402826731661388822022522413853322516963825142701697445313414735460201631443222590450869301655491878558081184368369217305691104880466093148926847753440888097182561328986671570143439757906994363997069432904104910870723750991441383375295155751560620142512358891414201125884492995501847146406404263678469331849108563398923613948939171300871353204793595256289158635502142732717588568899954806537057112557510896977607383168323111804824555921186544033152169637782228971631312034512219636198805187198399927078816459491675378168000960338288620192155007510770586035382195374567850914408312588475623250302449544186409801654770879060459405086517063762491037982897810298527881806582347989546184795639790402082961372425293162798034739981516617995307649510484787262088012801569164183073563914709917904963616169171883004940254097281439297712707767668667082141291319519905951287850131043785490714879128101955694841506948963776144302277855581322927360642094725503073268252032025248967386814545342048624066721624074063891903696141696226488420238716620394167382417867773088435539702051528090484458308170995221917646666489702664298314793648015317325332412474693115792799611564752924781355036582520588609284731217649080254994222431607428306266384334346387223546483792120275283159729249988095699008299642243336675363335320877015219124396956976012843154426621189653901642724311507124930715937082280030244026095113470081336456644107365051517820990425643486417376063857722551993423194730089233883252472285301898651576681675106982044241992435065053795085713059056334911063870532717395198534935495861314835055588700673167596811331071433319991225892121111678436937106761918105474064406275050125435265295347319090941840412183479409636776669128402925041800592215877266403826490979562128986486085760645688484340942777653459833912047542170739395683677727437470858911602970093792201685592538830450712159242249092450562655059218725089182725825559055705056133457128727798122534938232193750575874999950247347556999052045964366878407356660582001459871017342932759504712519937602940276635630280358762552121639491389092820134810187297633235860656284566921586669900362510467391419118338384399498135968288298315908129372542446142220505087885008944288102958399729689750271211397592776772069136633964607634958167328663616679076015326406757747202250297652658603569416470813172399393882718418800723949892697480350617451485656503852859246564020610989196487274774938188505079040420621930875497111342428654464809056040080433731321709696404890675359209616843886399423861918574048990728581706071029378592919536886384913304838933625556525314452164642539105297545902584101132533193387116274634642577226900291285820255404721527625953258595265989564460810794920658761795881348695111304518869090446175057172584350902620481948773461295009290308506371431092670863156884199784822186043964425586882549299968556856787782282597869409857552364744793240640151714168750224436369202769241635942864530153457487030589030722934870273448461954146435122901541122937994443821693345593395253506014687239261586323114666273884436188029670563008925761068401064291457283188685635622561298479434868080736922383450124953040058535253942849761343525290357653437475502596772699340570424048753012460755706060221008291679402371149103092701531935923858526970426088318239917372251553374752920129714335907943393951236108235593507400623614367786734834176938297274635345074737825984200803407616687549741435100291263015923435578516458631898085222389466009846485787121381533714366753064078620801176612907312420648491520692593568935964151187823404494309789700208042662428471934766047727739893213923129863393771832199013328954500677409891602586886522240318266695025275397881008076301370151606823728917494753872429080791835522824816630606380088496411154913825261825660153159969251881436916149720363734150013586615689909999295236392840735895928912334899384759629176239151408772867445864427569487787066820743725860215343056312192802859050000873478164736274987559450614530346503850240452078931819713719892760388991920026976971513136614828584034420097449288393810860326924025784440658464775443766752362928709180613506163383728576923375582781069408914255259302279398633513466965828694067245378964168194163767715682592557875408677479604663723155988588605674546033843598548489780779447803949943871981135357347933271397134132481693632264112450285946766310129966380179437391731058071446876859286551636416113265195969417388372170321916802798815774298109198500551169440728827124788370374299610893136506749244400977867978621006267824134665432992976097306482083806630166781210388701730612774211643459668303608732350649359049700128388530618810745302688053867780743567542191017485742528246148755793500334591489331043359456462895909689618444983028343237396297115931379039082757126919266552845996931168076268101109447072226246367980253598489249589939765306084273102020720924495686781795775263622537677428493369212805348697451624571303105280030072186066459886541196399707309857562709393819291985081830492375361682534210630478707241676945784336162471427684752477927689070634942034700803157444786575929798748572353514905223733021445143194830250371985542855771020105782344921389639247008605924133158120868279010879800523666348849014274490892464389197028734529361802524157101696959833092091422970985174783353481160297917963323573583998981149464747258175914430893583514864250796187536724583935500847779371533636723317789778512080096856594414637297398834612493747827627700620135802516511862797472599370623542868338745823107224324372847809276324233104476094429970590869696611862548788573228946364652970873370947205734637911717158229404512717997747461998622564958755986480642382221116871967735792602437126434525744178511638585405139750563670079762832993833398409930870374610838296728005269322883732002384014776428925597890467616445275294723176233992238516618847315500377817440804253368908551371009929836769554593323359151768946560450266831171124866536834311786657297360762638681009114263996003859419717360892115236543137842508789998547609328028616887954114902426651173354303803341326123246559843548886682112287638181417623576194059886872299811689575717029961974307536077692100513238466213845749288620536243045467982305045745859693331122294809954299966546733355031132907646389183947214115865839305944687107916468685756004956814472705467337975303495077811793711681308524280818754268859297261768151941963607101982780319723327899599775641192906306494092812137734360058489061643991767719824599454308859185714031848411911193461452244368426945515487700107780312164601986067536012847583253836796899196816661120931228643252898278366354498117818716620616942604546231890879279868923508264953390651807116137222591157371184728765360064413453002402128516749944504069043056464218430265927070575451481244486128699532844697645345610418829718703295719223400952118979396950787676227026195790942643165323663053770524486103870741756972947789744740208828832548939236726631852966028698436822243692273900613320663580479314711856730264898062044976221297808771931226284601731368246038557888467108596502913439445566981581955369175600516087920534073103507362922316566988890430812184234013385633148915534100968575089412718574490592207084788165089532700862583445727185193211001229234683158855172360162749610714179180433329169150800235904621037080829176157297113515991929152246895255356059228194224387589067764165540363120864522007410277560663385249302471507137165315286317860641012511919572785849808152446539481840420443557499786586140965712518837243548264521556584866052146860611663316787489121179046720444067250542167010057842905469570776190842358410324093970840916537619679767573392403799310111341916045523060293802830728791979817245689582798008370205985814213243860829305829288538261505503699882837423315294895121004753948226897679785165958458324074670247147513002035489434946876347950256582469653358364516237621619215147159391921290561184468442610547168920562389863973858090622970100019146005750001203157619636170117030384352106608330902120900810864233856762523667447256460298621832022472354525555422806766293557214314863413009231053615771420479424277975301168521320753542944809116619001928756026402799127718892148003351375621815641827269012336622710584664706777737858040666812107752309632300295332717304429717754135596708689774280809990058442556884793389514680552433922993776123590881379657255397534498184335129421871099765918925806566612689706055125026686912738361023740634287673942646018247693041723280852475862340639493909366986990376634722403379704347570985366272447216647353853814766543176304550582488760960872953789172906547309050086607606470719028885193652551562612635300899280941108078372022444616498143193936210016981191362009237105145819865352238310772808566656275662703030343757860256260978766384419358448727787545330603177909100348180725571509727968577297084646840279266737157880542999934967550917187684100321392671578162180177322412398080189450350788150651647307285376335407893695622693720824997948320294105261449996379504663972559826753243429809328723812940503774687499664181440108520607059218737623985917749438698980055369129815924075646107512070362714772874664539398673787804572926370163936432635073001138421803770662400570452319899474896980745324022958592582340331364234583773513563520948067628140542001510723013877303707333289001132675926772731880334674957964347932475895028215710810623207296965717766500800019868887624266671159381491799033099977372105824565927989669890725796055837293578630113812886456346681584323912223912290533572097687633847782621216233871395619271833813880534750287369752616884378791819533587570192827456289962352905590715654718566219639042897896270682550050021600412972652902416402541344029496513088858280404025023339364848505193399573698664481460629266987617368615169827583007548042768526214700376399597988660017538438577934422750487005926631959799949554744924166756979014744467187788961323393783102080446761434515217162933714021041304293699957430648523707154933316374221262092212903556894675552785072507223574713416767079806278774879158632443610424520732036698076606862214186207186197416159371844080808210205618125991113034927487475564679335906658561908531036742384546418196180293535228340617911782841961062063031087193203328709744651899339420634403331125122214638753393987552611950393130825791539076372647737342242417702026124012649761470411603192995153091164587423594712623822870469225102922917531795232610119652855214524460959978656549817501869916041552456777011724010106575103209665827903576559986250082335971952260129335571115300639007027658938570294644806319867160497791202018551439843691742095001109950380358087642355403677058134337351706687305557199110965110457828971632131845955848845100717655877784280996127071197515825658904931281660364839545738681372227089602511133369468845686368655512520157121549210559256501173957118198516252613341958265764729277869278727856446272625409471807809057231649241266570875269449201364071284345220200384245431807560342491233116575923922485565982504818487569908777024287229536315509371430207488786010988168299189424043896844153240297129017511395008766185445602017262767961444786364326192240222961012551929377221396698816410969803387093663782724376125687294233158502168550365522175187986094767183822610650832912466417839461404415782818970793864512604020470090002740759656503198859468798415905191256985779496772937481479575034183978409120362905617135482626437839328819968915365833775658296785604685467477714628809172732724732565122989713330188094292465595242096495818820895033205089495617535505234774277748268122874275100586916373956159063662513341868849088033478600610170949506689398761025919570776078859432398776517207094838809574035292703989448038416940884039727228535614012638221598531138989522577688969037162853593529132491644986267693391204333740129330236022244907144232868240000611404257373493973653603080353155848378836049536462978269792072042939223845336956531408281383752607147207690897345635443733996092732563552253937800663865941437132048284525853640453285515936810638336680856641133320490716616935872111829080283654829761537843778323759392768913404962619496800136077761822515560749885654313747844640639140776304797761547526404023250503333253203270401068218615655143202671638281653995904276655014551321097904496749773842680340954573160051136941609816785836472762188510907251405056965372936681176405198946170455944048565373953620359065635739504793188372857172318554856278931592488712911605683646147783670938104441001458663648817153637307133692402521695350006133023300427604519798886257110933147663519006286857343192704123085196978066119999744270274347068815635771428357612755503891422725026841044134261592687268125543720930909700719169913642461636957316499833072294045290274074981817766209046947885570836168093640422959882529617987709508848430039982060673890067824756863689314477523701821236512581932994718694135992227298853752614076162140937606007293029804776565503258788880740249427454077582927171421398348241632694704530823596269269008250734122153967390279388180850434626472041225227169677755592739961787519138715045110868415057715226569566142914519041414430369400958531745386232837862783969606568021536537679961947901389901159385602066823044140290227437279587082846326966472406753614655249716542760775386442903575698158128825249230762490433637833308740331575814465964891250387064808361404669549032316906914900284813698528767611909651546365795949426863281077180673370513887241278768875132560474859302636691619939849593502855713814870516993964909618333153210007806485918738770842306974559902346557532712161004024290776407957510504520696549681057640942017411537266549347566469156051185873290052703350328897691842558159697877678428271664674964238516449795313192777042288602468660840340949398105661205757269916042233966857869930824302421852455248393476791530724064365553448662401840788998642990025712202865161681479524830159154677889498963700312297372713319205889611682681730443616082459817209544335104942452860579417397686992824630189620601217686653974747678446208240504432051639559153756052722477760974265615657438012179422805568031287549454165251442168645642373052795274991060354581646316981965531223046528642884399213927819283216737478203197314146722074792498494217351652889390635812672030167556772974005038782693966624331103455125758132794328032339585386095735704849444174953554500908379097455100778743217986785378404574200099816811947992857601745841052152418453154780483889639876636034520337530004874456723561290301463499094184173447824226738585248062196971835232700021438670671254677325832934754780223460069076823003967205565768986776942426256181635208667843495352815371105037533475758898031392694679921481881635864842116874074822792885208139267364224108195531748665400749970995117677618661530191453587635340776962842137543869222123545037701205293451194264257051831380240599349072494660374017378247230086893906507168783770238086942251145790256527211924278804502223195358285110808064828978213397367194202178595567596654530522219040995548617875337307977483852107276440942763519894262727430534221746385875329823249938247350309072962555567143221233982983721422619863223630928326092100048487948069605837630504548959913105532806511572681630890376462771573425321276837219726497426849420604024116938993223632114753974843165049165616939035141893891880709224450594724650969607857815301589531796918818791371422449558504891342198555346920045895204431328817583194461762683539671444338804772072600466414191220884850019205228312881865874034359258467791482203974365646965738330917220893856129092840051118530035756558225294484385438450640788954920825397900004606564460392568340119516312841645368459476347887242783590356003356915596839597733944824284457827846310727517193903028565527941223644257823980321274133922138846321808768641318507570207309921291269907399444050011901158764225859399466056556834089618656026967644050490175812368852760528870065830610981242321161169810993951454447107030056260402285549901820056077293076367304406814785376772378748705647585322916210900488278646788840529025552143184313274361657710395979670525556470667247752325092988606222582518920729941132586309706075864355381637726796956159234996817278419492640362937164239769958237883131205667358790461175998598503744263706011141684159128394488115164247039751173885922393107163147948942215229921665561026864372343669181608983118943140529982938047721729946391665579228782354800095832407436322370285709591807303335694112752981533815552641476586954850742965615939591560099303074009440344038358346051554296546566656067141645179285139836397125632575049661549540905149067721802867945791305934792780318376940201654744642888147685085182748096942669987995742146979919358521619750289571815568663082378520645651219255028028904557992023861604725360304680079667493847374212564410712095537148242524567510417964780394606915182406942811014371067618477353047797591128926933222044471232058909948901338959217862182838958814275164863460970417702011109529906964304045889972567356595345707705228676193919068629107196449238757888467801583231658325547878196568685971948747213176335448671008219587613973243947047006272307221538493647471942798288713190533485907152244998283640468243697731102193081523016110302379493738127068052078127326762834490993996649544917778073580097654094388501337852883934124630112069337937738231584915893307994949820598136182348821902249270497674142751960483629374456912841275198516411899947792625718908588104726688368383603642505657449602236503769441818144840844225044446897620175229047696479559202895839874307170027242051796690186477627843556450028575768804157277851389460631359258670431582187751345533816667161916191276567588420350664665158102339630472428070831247469610589379382160620115437937356901735160979974856625554888120367514739975715858687163835220236083768784541229345745150881040266885205964598156877834580729224047007876920810571279806832028434664980884339706270512465981423130726026062665553491169137783730699518545434114490812349264277622263191748749637874020205283191210187979883594848297673392075055559919190815172555223055849247194569160608244288794093593318809802575353836254654527118680838935359516024112968027965452946546227681303036528143979573377857295751390363125144885565194025897031678370654834298883274057956082050882202391429299431515046364276898065743586550065420106093765090573379067123727746648309448251133429751008564736692453472216870910820178974273013230027906869702222729875656694796218849526191078212398918849813704285020294567121493671844386631469630526988169029882927798759515260790939234292999787677470184879542857857306338834243705480919357825109657555909017549523158794324586071856010943139246359230842973602054302377780992206524947250790970325525929901889006704780044523747973763244766042459652486773896583284760043198984317220475244221876310415811672773288783634481653854601763113315799311816139033194260339953428807004385215664248337327316543623200640865927521317489588612735455109755442731961319814462526679038698436794968040417052074771247710798191819574078167558311288011307733252652403956156758381192406953864351876118901868251081297927596041787776892076867714649495371266491804181780566923065136421511221843302313862456859950649823926560826927751903830005572056414852280156477105713412565286272944194992915667279157220854993307392602459849377277532982665829950729632125938856564164564805134162773369573096609844849421879332399573603051572081364854988253346197446448124765780238734083427541260909264842360739003201461810182127232242275137715091350209817067186266723503845305782141308048417379740325272130080325610595862298329194515715824100171411556687577330923594841595927783616521442116024927826796524335038368285935886326929918310530517918525859662662680565105170819367021726553465338311417677952590162983824834314122654433156213309688292179206527007516899577392113370065169732758836932331175524724126911289000128856320745525985902869925620650937571201449713774982252627712890125270761234856109885882450842407293202418468174106249812955830797673966955695097810529667093325386219661078276430849163511429953798315519353419846283000370952393539617154513237925902444732789959917831122441723034021466709597171600793816653751354752621967042647844204792273993872029635712345046883000785341543741497302386435159084085482864555045958463716174438188721210689136102696984474721807178721861971214482399117559612903273923318459765179880447892962856533576345949802759385778569083266799407123509987195957246264546067782940001578279538430612407493451073628118368519572915284588785183170467551941020179497783153505703533254601554379722198973790827033557980559932992717245145647942432215022611976204685578669122101138493802489788011172032583865458493944887267270092436392709690549008566520831831859310732907713605136345920004280325189882121706755579034181135326320706449279412384412051453429026527825624060983481098178170577220863917163302523374113582904066501321909209262134814136074116494075727541651259347015377695747999575270886390852343404321797441303021382111852887807127457348912772551144625875914863836805515061764510601989715914940337687382523941735172466535201380402731739499600383049487543611738097421379206294041315430304371718403817562809485930679332921514523323939200063699489856102035941059982460312537447995050244264312750947276061756870657063211767192830383020483216243529805373598533490324394931312581142219223482900773937124695480108306059018385064024010521097585870921219894255007788405914088241118166025465319341062766746415252521682499619772663718246478336078910307013177850069443418859190904506938982447816395143739675195439134011157371560884067423471534061977575455162972772554222031072801606060216617155382077961771545158104800099144277230537027978441336805518015552959366057285257360647835096757243502957720869333750781358826817945569679629872040915945310063693408089688233563286590871837719271568829866506394394518673875251363997633786376445469730014928018919124581478262226731613019270793105469650668615649249705025995294567015081353246645535809824114406005511980041145905290633160398168047019476910213672594435672009061627421507804795130458209907139831228814422252900396019107828775746888320985595592443919411458525829087143672416171779770390059272634889238865690649975930389126475819666050501572589594398972901871698063119285159888785737903230083835355460926386333486203531331373090847304014841809084042388570953105489328879158694901854569304004240406101589270574464918528552360460304801493342593822103940772755409837345588580686207928399020099212775803295348922605987501665098242096561245805216925360832062386901178135690547736482117091193914074220566206986527111769679917056598160198341981722287703882283335169177166602807041716744276449220528345485522536979096105045261309950288475638878047699536367534466563118936717214259185408858057469019061738104649758800477954824476413006626577112795803891845184396888919798606463719804270740971532923929713705192335029076556644606563968675872613683199931826574010399650542931667675012053559244638708457958886748199446984854379928621524752451536838718677659117168005692182588288960680344048042510117628393737890127271525841344290940398090359418214552140825332152941675917217805794792922294772344376325933110240650522457557363336662875408303606532657284718268895227634420013405034022275931755796991316726719432919470136514729407954912949239226923629254526378605947288306399314948039442280364203912228205436955118251057558555626528795861306443157144785409700849457749274896811554162724018975358133460614035302505424134525355715449685405067558290365027735321109379320144894553105270063078499237365038903278427613775235076839571004020663507025243349325869997048607071340665089118709803796273524235254930490086387817320608794495232772600537376422003817877920383319801835131582419473247526111395828042417163846212900597032709828969904609990915894449406979158428225436837283185488370867572980414924295360902366882315787053130926452601157939462244350543211824441870863753345250430809587277702216534336044824014436796682868888529495750764092162359450758716698043850334569931005971911405073931228213046432685104858898936535740994048408758936948458572186367971091423257866533679430935015536080491117033837211810975778060564605116675546159204510314342879249495286783351868744468794393644325088024535711976296039664579762476138893518833086709835922957501198285463648366723173771440295299992584829580061436600678730913161332805647919100758491835646714441618085150751942552575758135750446044359178968859220102153284935995679123079550082213354940268326059710153842081165769156778192440580501309092195747318715351591475228053342067644072535753016769887215877830544965077892795421206799849318807927862471544667038887694225794734537711208566895085013775732365525854309268242457274114392774298993564939524320115789508121056343417556153571539402472042742995141965877423198917233111641469563754069047511535176805558669839331493117796508334824341175303373896165558992318581320849890239389382209337592253358773951200716068409914947026377761734226882707452068927002887641922272894020850765256695439583515030035799354937788771177735624367516607522206748995286791632303775373987320062601994197606729598762319219893993407179668916570993067733460467572056739545090789699637461944533027264847369704047243110577063944651456988430980475419205887596464723878904790343705665918492159070526875055150743483092032058186670336631783593145250033117369233273838412172493970513270727987943022924843350189067298555478012266469812290107739233367134109296284452074906187352725370119068271945499834408758041763151455808921459789979866945745279523265466935004618743221627643523606011983303731489495505477228654347144913447561559717865115274196532527162600089781054990626195871981027801613907426258886219273620936247968006861107328688277186990558333919492317464435205719940389606320480325280561447762857353920482380128911910801968141248880770249836159903999001197669023712650394686672456131205676089214775460062435713882081912428357527676963635765205001871466486570749486035162034723905992043760972376151960912111327223473959863123307158313970249878417120367293057001004669707577209368225360230513330450707191021247312582056168650796279910748569100778260342594614086342782179166108551461767964174955209375095441899050874078774429735787007551556276682261668324852021266221212736458230736528059357539270951647474435206839212075333804303793776083274504634520704761006867122746070227712832987825740117656116289299791726382251081821130796649126325295740399296356039326469756402208797260288566768499167793154837351012403131615226072141244346233028141008165146477420106076972220985775528678276275662707670284913655750959192114437877345124986383245647973808217563899477403262264217880855946639526641039387692616953348236593822630344244604135021996785607678444487268989890207506593505533345440818984003276682032319674167327854906342663486876453094710322209253752546343952939151673547984819082991732935359474766426565995616275256980451644785044650582557528863560053645961436002726889391514092377535622079852157651646239488664547188682146214781762542207256715773381831924210235159807954359027421994139018827640538274860321735481980652170976160747119259467447823081747709166553677667860273108380771897922109377955691303743682944499512592271146091280061741089325553137044363170998902535844085878011258509874943441588939157322893552910597884843926077532555151024286292693743592176672341489529102710962480971237570989576346103179237151614299333983036800729023277009513114249497258714249912218767747349542546934366159534683506390369161056665492498014952886864055163710948810184936440962418624268873998700180136502962331173755444823464430259741883578014775395838414973869707276307352780668823649739910088548713092828707937312313452816678655979704113568109087191231062979572072232156939065384251913966197343144933174256301888846994107671007879586355297093592582034225809447720881468640897888735608468787622078770308179720730572176325907160043752098565055764026684036973383473205397034299948560988801773569572863031629056949547698818066882286317348149152287648024896411890478934558971334316428628546953975701147244608657217890707195612816416846527892870491079442341203118772318177273996305605476996384952275982492456450912301993153452490090061394094415754830836151178301672249821052026681837084832684174325647700985357959250807659106163246191279946552160990104499156843070269746397793173859596057316181365054824952483266834087754450755060061088028377358921858220033029257004419743018471927927682645778955232074598125700388946267610082989526696673132495323636820848838455215111249158875067783465221142719887634383621830969073294635171618543582955481059450125658818508978196578047313761352552879474287394897964704161265580728621357972774097941601404613118482296196035797856313305637514646796841225608833461424486193231537324567781809710675835760232641121562104589689197806290654649197974819410535717821378967832390404104613787207851922066605639900354378264404589927535447959241111647598241102663740608270618389579470959771410845489022036604904350889277278873898108101533694309038618864517205267932164698690198193996887851066488622572745321461495344963625901794112590928436100163492992012641165095571834512016671275671624340630837112940759136154736890633340187048343803807398473858643467175306964345611291237290397791085588857823745903212262995318939104418054878439521099876753183907671887763747836134707501579518127527103665161301238910247423037805073662113920310795790231746344379720747832006713631436986382543121520751335879384391883382619400956455847522417127739858424493228675021871470142311507184769145725290096392576511558057661055601399480368216294247051796384761017006140972832479540954513716291203449505576368581586598984180581207409067269151073802915029974797515794592256326789730346486322711940442988950372426612284349048378008015068169306787683015830553720670388260094881203684247867895025191092882991380431881379430263600710992102876487634844094050939488217204560319573978016367877184818314287424651398240797193407513319798964341518083791807466117016954491647299839509793551232228454324938327869610761994872396551070179755455099780374479876262947873871072116634799446082800281782889797176858042242830705807179830138558479216448058744725257293679775336255385712225060271080472555900232335948765685940330610965068678681845249779795695525698962763353856081431833684011447344479973997199284360719183280931546150105328490127545167708061557090103069896791199138935832120746946830072455084899212895295699758421619466175738296816989697779145680648960768689802914025220671687713052441405497262368878473628561603481810901718057018714183208892108088603187830337002963792806707946114853515414950038237128163115596186794674079646330882489804345690026440170300045370974100386905310890479227992242444242526571976834756706240890437670421977696312127796410425333056764814228946609129002753927094066831012341703164742059037419163234584493501567956247916598508678722449226915031888459069044724980407298854144296103773449103935951736300984687342871254126693161019212305346622583838927666798460128743752910649862096869726324520448293518551502368732203254803954587995436284591851864677300445636460136281301271888134556618587057366506935156979596136417582001548553363564029512688092786882129133438718312782655622148691676921161668355374680266539856300418288955783401947144475195668240936203075966228922134478927573428348747521586072803323058058683761556738164522729303855916481052608007650682288137906480067168019102234691197576631848196853760451698392458734715056165719690724997773937149907678790899051691499630320907089393690619716017821937428307549747313457516745821292060033407773382790254555130292404413201182697543380779917587277153563476669941337020527223945521169277237951137738568995185524549234699091745995757887713180424848612573909608042362464126716899160277418808019359437679206182796769501926355525732117907776686375156574737326011469628132264160184805114340306130684305338143850398010242070615543902914260204386443171423589391184426402534400419111350200753298260176741806792138094617963738727985833807659056743260830601348924804031162120198610405491775554624860794722315189708584617517748759785472191624916717826791074128638909278458505788147207865539686028470891450475862754206950178565596398682675726050695721308618322412844682028798360472202222759715954547405993354903082006312001013528400654266206896934072000180171255831040518244780700602764410162860577688371111533102916440060045041453940111869826679990554105172466335149745619297259868834053355527220157620711797715864328689697199442452149405874161111617978473662412684705758098143215227207023613618068760822058355332391282477014076075304116649530702413479353496113844962344472880869596689089150837395106253948526284951637002453494271709986196725099831367766735869599420015507542952839275257771394823820993983167713442060865942806823534769899689601793227049380686860556382690981437851853426209407670418958058337636155614577070910515908822799901949903015209762216570216577321356698620496300395950231663473186752023515759467183138274688872151238561751277127015379798118855375379614879823151063264040083437792420031734630959641118089604885703883224460634073618311080785373118673450989437397262068556539370649536983022156017761474519584390867499243752826013215348313762109034999587218543888577401414217620593008626593620433968904031995130011312591169590931185184742363234071048770530143716635184652553733715131197283500444790237211703382825140446460178283480261261842247500544784378798315382423033260687065115772087379418986701907845537178482886625099719150648241167478050241022627525629800236688580600440139204327372328745335641153211542218459821045931858744448823141196091872161798782348145828607538156507356546597870374895915973334504392552157220308962083491829931315362705175557970840340611017728905353237254105420387475859479467179844916218639738019705674235702012812472116121201222081267065412119919771497480171721648160920858865412406507047166072793323488965634326806265894932160331221674228199184173028716544255422474739197621183369889906062416895307047805889995919419409147758595048480774942186616730184708175534549669619929407845484974939588442362653360339317064801966728433369866797978249648265222334738682826568136377504860578209175350118911890599072970790074770448904621357486210540885972601667413423076729211330015072638974348200918491856467454719038074979808899809453242837253435265397788208827619971996781287115992844224573026658074968272723952390543459521141835415744171852930005000384392195790028189493407591448321618728625890080667870527055718284541409443423539837025551119222313040583675210541243454039025921438596896282192763028209502715002500484056391929323272905571548434412498447774627347569279212803065713001959336550776593904206435243834545920771484199157832973715534994602073825069293570559020925258557959712568526607749704725872949796228875060085038611459459803550241657467251525300821041751354609291964431021988427672493998697685094412689580934217771952544110630528882325509747165836039426626590103477447904584493933345473033816834853886561942439750757431503038566242996703672262450670778660017498933043429488633117410924063987579395805390839322737437294275299709789224938540731109447427117009003737610322024361134333557795661036626835684447958755405996179684524256890120509667388980254378419713336383628130322869599254191061787869352350726342167509164576813498106813901020133342322364365302475858477687434343707185541616773335932301017387863867754042827632456487657952197983566920041026709274009496176501719227189721177696426287878440691024816889823499712156774522853261675814444310120795179859568399057073935377191240198140361252589631033849472600751076290814478530225804852670904427578392236440517789677048596771825392700501259102540547415221720207463566776063574412865922931751765736024058015892485473105127683699781072324392119296980972473721877070655651234154758225226415996442501740139957349476825199616276832812686936459358661482640770833984974190239819574842514776962581345028405928270169661687503683652707120643513404634002380085804527781029148031303889107249848991541878117261497734027457957861849752243393267916575470170768271656546163658522494666864140460103271039223106461483768042920509454055078767599924154023879714071454364769166107899911417717046825519571359557624536468475917180925892119629459073516098677513188149173345549510433637024929208071407968667490260982524322419187770959064776794506889655126159471239429313057582860596732178455749603435400665036467576221088424158161057990774523819807933184333296417818495205865168108531725369785448177985211108638368699653119753704492841206589873817430919314470150873256193325228928194565667349662978692228156260233825723788382063711868748019103103101070434792497028226759438228864624125216659609537035521914911401394412408574379990679518993380297097344772583339534807447725719863358110035846021585419856495156110123592485897554838564611491011726526708212632027708227487248849220580058124624073945589691502907165744046270962380463520816537509538076024216970654955837859994664025256883556590889288580311154398649513770679799705563085519475390625169247960886047567476672696981645407242422048033152810191301288585682395109079499962795069723114818814684083431756762025903288201219099014504951357500208182807247414004680886041150632189884071294305573498768845262301046088547875516577350016528791554907347011108526176596911327499266463483970442630342581963416209064066892631653974599319180023759249062211722745391345123346673390953979309434255277528846797134761077713630611822474031087777350262663508198606409487715899313520171597707286908118749431436494241254245765843337337997396367406963865380813414201064595998926817136094899724723997461839544067918237507484678131351857830147852861149318637999048700144159594419982116943537347421066233562104902079363085025311227008029525509427255547806340226464209079039053438956565315155517259527459701848811792962252182418877991767978199315928806860540161698461772319016549745947351980751376683506773716792739239710144329125438394182297586416390983299957774014441246736220636751717716864196051932765838602937061844377608244833521544126004716988571197464933810082470576099248267470341720615494251494924391673127591037919785465928656942898618468317746094683474255411302826178930927689752185467255951264748061013112590840139784126209751664106435409160564294895426094039761951687632846160861846822393663914977610589340525283399262734292799487525060296356635116910556473573107091797870336129084100128613938932698095854158029254105632201933607870970356356812272629732843780329673232481250346311520945262812401440741130729138449918394748739338060430777074972811811072081645847330253576823513046157555768851055562119790552043308288386062757759889054667033977988461323676539843703011668360016987499475909311888599665964938131237164706308756301577545746903332173655226628099693849847757468880214197752787603065094742250758232383311685712191237351580498765327156158406475671297289194971993008642209002462501564646792720033769710841920403121171723979546364995194922838604704372337594532724511903578473274516100129324279815050159453306734859607784200810563178793197189651664632808328161491948914708187048794548208788762567048513250754064818453353083505655841301116690419904411828696115843606206103038884364624401940345688461938184913566718395652006795905276855180989431289950272276512661735266739499233934563378965003476638875848365986210632736024351937178692493372806326575492443702971135479059019075962361206965563722187633368835698924043080272393236693119706825676116698541255870966486447018507619238369065023874174492204982401451984816736732071185048078404402577234153897061187202518390902702666857709620436558076567230971125197954285300534853231337146434700716708065513060784250901547212755666845317353123975156274709141105517126403657399511266316862625322464837020726697419186705314035725902357274137957741296001135700308926968854349302938848120958514273134583872385831241567365640346602205541234125940360959390925802505456314798270789727470584168430416550214333449399992861429820958832651688278727352145562191843818422762817381535418473116864026367801963924484451749460850402451358872876772642818067516376763040382628663523611198597142034852354564494989809743191042101611905508965450497282554972418014936623923611264691888501661170456968574770189516311283929958525267746021541000176598907090340228229138080787374118305804165157110503180437564888514487876365812828647041924621527545075797963796203490742736185163466378892087732123489791415787996658222474791186439329799089913824778647484750633390157074719775313426709680620676536998388871596130283499107855385004047090277062738900567829424947293830177321285182594234265648619827304001174860037077834467407489079015013580423194625123535780970784499769261592133152959015801319850906018315050192829302090467071362067806593225045310435893433912151733780155918059215336725045851382785167622753772304301867323708813342534638294914309987784839698739453756960824098671921200461977523233488882187454459229258845737270995241509399676065534804464352743020428950998465536065666914482221967517981883018165760749299602911187949706738762137477471379980340202482796189651142647081730740770948463607391892718212827094907460893622876600123697297998037868879237664378066089208970256595798373868083634857828148741384377574026511575840381806858134237563470251109437543994448671280469659039625063697880113800130327598130394676410497621111386514544305663738515879996578997543804808990291609677561471333394707328166469499563309324442219411869307925789984612197249033558098232884461205540588601388803122613209997895091137068537143285563728759795488689882881879843281042048019710701148819487638951183195692173011856093939170127000396056174192688917476450600163093962011527485819558681862191122729902754004632215540479902319172649446971154947246532559711359478277955099891476861587870253201526645306441582366814442190011578779429802541555625758992168297920681089602897608585129283506447671160729601150459408203875956034758788021986764048465216536102823855291962170685396134576175220240073352386086323449971103987519644319209778192785806841983927895959886588812729798495162433030064212957264572261111316169963077078625856494414966100554883291386402333045181488855765121112704307296577063223416894970586648510142564714712557618659984662887676048754079486911581278518510457628090419221594894794516619543461996546218015589906251465525977166723127548975840679136212396422826578456574523431581424032473761456637088153368069871909354793889974294049106447199944050708991608883989929545608142808522258409370426775270537102365045062340669332296450716999330743308417544052025121330856353367647737888460911818288161508209926921238039078101532301587904927190152591087377309365291440469692789371368176424697185922357110835727721064762035798495137988554314928351959351086497956397296472287461506977404227354873539932229595358590184491484256423410460677905381880391969239962084862737657729159682093327206711959381687174069352211271278681905111123254424190900679467097911395917736557756068492576837450414758994267284336723878182155873733000345192262534184858287411414670429788889860468382788192322387555562856012029647654758313181064127569752092876626942990282876627982124586599746514385785964818957482854417278542622643070013408660446121971684838093061988408970842452170706549561981271653669185374153601210299355513871919292999634307645201672777542928204907026963461835130325512716160524683907046870008529881203041443719862630940506239159842299184186349714672486545085933194550319604439043391971570046369094579052768129432306247070811789310196416019335387300445406999221587110124076865938856021820933857399069598969766741505730852869734136191782067827488910858535301823900106155489537236829041515037720058716331922641685889640187371675311653636536242754818777106458574140784551401429573123018203646733773354940487929694627072344200105694352071771226741444211514592598733785556144367080077301385201557632062954949447406932048641313648851654232287519141902022026285249882262332420700576692734258675115583430484500605330178496411203861724149047499757859083066029247420765291425692283504044224481121981735633709796274568047595234739742195947802487157551427463558754018980645291052096205461384299204505398234672555532850893217873462993413278963195330643586760234352982144940791245648168647542199541702027608755589078809562584115060563113289675285791275682622378863120746210745892609139338398912402216507821450539747765044705945499175382108965200058595706655726874004856525709561676025953648504880200576850178713186954222977519112812869894580776756587164981922928296704001785298672155071570993323268780035183486595841087182073832182848843468335445288321158974186946399999565537325703948981140651836405289936010341243339843247831023302114224984320079237862739656694806571612787628954449525970701075081701158149322217882245117249264234184713322366226104281410064548984717349623457538123647370311727180583369927956718526634382617521800466654983528908800143812041756380892037163548186084400513858334560845656202977738402878216501219609805120058163950718841170131466923488619020019365124836333199058684087496548253307076611799982511447053773685999998986920401712898687214771490528225712859934052260651539380397237761973608424715692397917248878188832668060081502180137165494203200287002521797088622776539528464678833976895555694816797149395017143383556476913140027976555963768740509989621712918803502812021567759773191993621585407781821761221068230351709023607591531736583325748866124848092636757018052631087870925783993380808523432383221316597686311554714733732866972198105510747401761585517618634987767556892714359444969388819028443131141484314951796938047524430691068028733483374163076047675934923484612309203281731796528549478789182760327740287951983392250287587751263524109950583534605258898827614788656817687936695726059502167412766365268803192271342495869448707039164003377564192472807302305208518475026610671929475672936147149775557607801089144400510537711398828874295510383404718610150578186761535925943395015745128516366622746164052365237937095183142025306735241406797493905882048436462740409839319011334638877937372848668952181516450643528326277798147161579545959986004175257824588269473011461752080676190371423046748214772921160595442451545938933853558926602265231540658082784236209503148488704059432513669653161404396279727523849820698596579156213180773868811610569674069527604258865274009224288722193229146384050088786231464695832026126387426040806267775932020110451999916893206265087322107923259072669811670352753064167831630810470658616249603301585245668714010506532224369051072854077738038022061924110588356657857645729665180905156851946486332617601662401175912005510015796701721852404901248729223854791497413603305013293987326835955226680286095257335477671097876413170626401941034160069670829078698463327469993518769907493905493755184128801779027743348773395548170749415366703172000927861928315548380589736769994013136537951534186246005579102382760741546027595530119873586970913472902744966580462350746559697029253411402371454374799836788429972226641652089050371421516818842979424294507864594638124069987937377096088744044510678560433610201201911629077440217813766060585497960882117479998193521157820723345851344218481635164258221249229909214962277554018773272508554283676827103085387535496050717931150036251088433126713925782499750266013977838451719148445884759560631445424024673245573023537101530641743159792976170569940376935144197687161443620835733578102732607688886413254900081295269238342422168064963129948131454122933905074225267216076050212536618034850327501218687807387443120296681099377692034165406098489249466689454094288450054863884818240657261155770490169728809508461014366935103714369838971305708809009911125344527078459246489784166965161997324655592497698588846673875066372248855159588164003133597306478609986656450646005769385009200433346449714405217778435419746052554615475648653042267610457758414459625824673257336452635091448161281717616928718487785125043603269160686250579082172302480246165032451428626821053083284040690414191130796660746875709023226232984021410112977688799085264208393960925343406036412999850352075693889421399950590597122963821787706578036125481503256928968079008865167068490468634117982281425861092125385733352372601413396900320191670911540874650908055795333789028758702352248231456672172463323070017851834473799059330217412605133369967626365490408535675602080091528555040262221118511466233367703738482789172341900315971479549634844078514542158595209514355803426665991547183894350202515031073145428029734362338515954125146503453038615415200381668882969780941918188076743613112320120948098321244921220202436899299967752296706462642270448203335328362080138360849663089000130813110421075868587382932449570385103043452993436663472080388559475171084342474125341734441947374084937115860616423162775141828129821138559000167509182829883420577559601245528544480192994333589930458418826303633610577752347204396802735908490232714499199294171148933167965657031096809314633042299258594196582945778982500854060633921071782252357044434570574840712005447620272654382781032405810017701642078669481639038766704567133603570816589044330506653173686349372647762666570265037662619324396728086620662903493076481254589665603239064101124729153805723055820652567775978376498766301612210853185142804946137600048523631875520144180272774363890475014739338530012132391230091170206507391554084064704343406540087077856024999840241733750945672713474108355036025626690503117194436883150687368431682037875540923100557060167286318964621835299562821613193600236651878425114120904608496572226742361478738695969759348113303138619711814097285713946967853378904939164724894949515665633004830486096389646586373284040297313290880228646273395469401034433214277593048291740813443165812818230613516249097122105429155667221344309137314989159935586970385668148722329825276564860166918972679579543637516696101997976889901356027592980025681755243953164503060455755941230672170701749196449187184557850361020349861060893653226850062037847239291323310211721925900263570596864388537407684609423959380729204633339176417593527032519470020530665976038758397522528222807527839550321931201322453464178189292675184846447052453789321331740318641095162685750990089898011171984145446589588778710903758561593793666323895550856140148691999675214536983349053898423576830010904104956150675095614803517666282285639237425759277354072886903224681678155045174500895508097856816683331934816718761207844690665538797585540762506695600628033232932584178362706347110403411306885483581627287349470623152497687927786856304136433451297222789815600074743684993628675790704217513599876547535397330055742236188581897061510528104885529989948648309922421989458346839309355070198981279765103381942772878292713867629878490229178692944248187685431838029568200584165980459501759399458124546565115164525868169785004616376048688371717284416663966389015293343415944302875798691917887886323079867485126812136050800579900734202726098525661069577033332848800098925331959276965464674505680688094729172322793136078173990314279813150053435285584413632283615451624263400424382788534977781614556903694790487635210451548032584720905530336941024409238562024315082276731462452616695648321411981857733039454113540278309083658519242504874203586850301518983218933869130866836406558223538930591492161927646162855736546177631233223408738728396049689763693128835518482881174176590335741027057076982516104784652372371099960153250779156994912622749835307136527132988033913275623415808757732538077363549039797989121501502922142118454128388317194416483785781426350601153725991927121748977362723020697937944092643965246999581317965731418700948104298286136460022440476978243365534344952490813451805064687288677404475325697844718291718534901093528607929829742704760915558171739909087527613122222301050075199297053333644002654884175509603862211593119133553348289006338544363431241648032197255013270271374647247863825483940110580716396767785630493787123475635761765596121891863872207137686012700155937903854077737794630605226878010782010488782865357592423406316449304765872903783829929492942731536029394681094207090043185935689788048602278075419614708647214290714933568583806749900439713600012624952056252088191847926321217783669128737179866902742611942177724308302157885609777970935087613258360321748171380690233365752087935849586179975193725671468705400861018185716047014107214212054340375197422787485980807252751380509174916839899817766477452863727584514121489192497702826144448127025865427032975615619175472523422723571816721282529141261446583599726961942225656662985482737967351873426269073571477928055825643260066173918739298072919736203112933876096343781537655088534584532521921898063872929418868514724786594450450345597019773989180542172741750160728794118717921249697319243622253900471461371469242539173223762957154976037159047806083153543839285114443105906181696156553524715805995465131353682887878578995700091901082213127558624255654766118216682180841683739080926063467225770384501396544842122616211404754182240892532199334113772952442775819242795414243919780735285935888711460919238599557499936053065241521238787883569208610867278690207533962500357488674298823625509155110440558560583801108205863141176880459299788228981943253410846260923202806256625896870424547146920097768363236599981647096118192793617981282330821366062155364775515262126462872199555759435021368296919003054177209102082048320741417127931616867000949932337045072282725107748184088158181699059439633840230653466044696327921584617295889581173916897080798423257287553550958708221713746760473769436297931043875015768937751186439102037079021501141841580256732858717515211117977400351039227358485385816605575098563344257068809949503873783359200464934264750090998034953403529778362592317402798395308248103507387468467782471048869946674070024052041857471862819485245283931081050153027306902396309745836847157278525075392606636681500910742431043820137708316844093717028798401430504806223593697811812986139126790891202367299256915749171852678309691717900900174801043142431387548175914748255574621260176027291928995655918850134324580623009204450250029446298596931283732831604371356462598182036494343004152338482445055634080170409375107245293591928364518348527254502420119843321323100010879478796593908492923624151321436908839644634043168630096361702519385130039469220915817034082101857293011233240754704289555504894795173060243229627748043683205466412709823077420332247371022677022768619732209309943808520787124751660478054759931101320787098337714910871231536867394176852588053640646151134013035515124871864379213690268654152203640577208857736742601902228403979383678874840391150378063099905660109561452431178698140196027564264119042448401850693177286938467822603619012049903448501748626905486119557765485933454762888364317896712327884558755088857841440511462939418672324016358433880126493814866804498032075714590426630028168998473565611568347605939545458306246363131668776764945100978761203531983903842148623102038387869352065083481883141691518323379482848159214898631523571089689574930481917167385254532591305253433028891252163180519436062376302513514138213971640421751310655517145014839015640990280284204617731271740291186838340977317191624733550944789049056509192951787959331919411006573350715684734175764739512279217962978348665153350582177278426116710994677465976118781950406358329866771566270730782192785526938414858316262917130789749748502016430823958007209453980992230138848792978297367642359419776741273097891298338248887135412974142383903685643496451137457697178845757328747006444741016208550572766398305354028304584599291395409963373738023116279442924813197029050090955465826877443679931063039671918306238089403119737703531167007507391324044504902051988047075048360889175151907366606856831142729566751135383212485082425638349293795114006986720781253839954267078041672804406079706158956637994251295241578887327453946613213456175146480099557304397907069816924468923588053021246730158303104434169665111468619673091971519279908934171357098087107440057594271777937814029917442585538246016722001639949523407994680494149274031080336070032636024414362890120316456592777763604265026665028260511405906869128072067947815835823071631114833944822097512797908058863725887056530706612739437650993641068011645273505431894122215511631819062431336010644789605457486162043972419626968172605476952728666306473724688557937915011604042477167686788178183709045099790220768708751784571209568411759765927079356206251189714208362948820884780894440825337220620901663802489687979555658789455957800276033931945400529850330727323381568774036880459460311652685698052954082287680114523104466957149860003850719508018598649872905334466481503194226416950847827061647409665206304183472577488218022721769077609500414904628575982991978959068977970330556327685689306783044084360514725819308104940391524036090828214775141558116469876983546980986710452824396209185496635985843318474463263585640246393916972738662110229027711696944688556522699508255673293292084105371357971166251641903004976033389766542162137853182138307190813087222631096822991393602670883381976079997963594851988131629522149495087456168839329949310567678283974519226244451859840092564065279815283690850102240130483317673766749129165568068994378938583157402460384787708210448543420237030039893403248627015935944670679994069107027556451770558868169036008534941161911638345686792122312221450671306563915859106663883872860322930403515740183847533560646602161509095279628743776728631528765425194289830374801154413670308719029512095767840031606275261221846767191699770888787418874555683588475313181677641530146853251918920039882860753992598627523860447635824079801188903730119962324973080910517592836844529272652663287393696737396322018220409896056588641111967524023942332307949862160455210561081706537656332922668983817011594517463893305540146083840215990240896870724771260799657102812699467926357016553767115312952701484509260245503706887746865745226708689865986806082020075317931008427278782922669319716856567735743087513616023425648048360150672963892233362329132848635821875192375321381342082537434677442588259427922046432256961307210936944288570987720800066548744220044911768746892057988011073474512448987444437464907936829721826102257413659298987159450270622122153489836950816960589683949587256260685661425423771640234159235049452760286256988920946673882137037820186768923847820167643444475164709985560930196829884018842648431401810037136411858488972822803922956376652675126440134307394162704520258081210915195173436666992667051954278806236777423335651459138791748827265847378416040968828227851197447018158070512354290491812076592792543103074178332571936036390854571008937207189193893840144230895596206097975923358650217384713406929317245720063408210128104899879404800392488298850885198614692081710381969605575318597994841742307279665051014141143840359690863716518196886995640386316001393325397363547737097539065857543815333602560210245709986119699785338225719334621311148750759040968820172763283730871374515538572781861314619232427008162741808286952269773634793347031295712567388713866554307081267483257387684911283379820503380647463658559176512723400091686796066599477517156069659289452558834746834898403481478680896648126144396639504567026496927166448294022225938640532414149773782188843206416720683674204958580301898747154905654621601536290576355020810879741775412496322601303628293073874807079854027561647618692858639897664177095038415787883715491926022548567956882006827202093936430165740332716820345640649524356514289425472188402916009732152816979639056002553570085249504687924859196718447887325547161993605190364452942380332234331937331561915004321729694329603463333953423240436913280729750019705404912132119604782551360994286541393559372292529122922859598127558753618530570409453450062240309020274033833849836234823062527695199541167997229572840090622168792033841030428749491772199071809025355101117015284734870656235182403826639170749694423604219982247327515393427098072720993553636092583123451114340542036487907470327889280350350367221404980571881810361148730303844903876453701611288192400284711798055663675436962298926529233645882010363255731413345874716763471053386914968152993007032396181026807183544461145434824688592958957189216572652844744232735407650920768544091314519013880327978183744015017480115283135123247419785508811139873332755190594712182900824695230088905266396242360175310721669776833635264529465533572111254134655929406634655703309943968941342187613287171592144034897905275598810610011883025290489328830916744269850130588878425734406757978530575766258570000875964994889604426016436315131661107175279200844785400774999296861853145735359590244226027748654869894233525863333910946588882555527367778286305436909840137270782936647669403044452811413926581719910614820930961730528687298165670526953892211351448502628007971835480329287632957787001763461191564782695517351751892149630938199335899746913798387995946836171803356960636446415122641783927616952292878211192488594984446164448733599391629690914642420353177791137368695790972014097603629517410119054020309162831357927743251242575750837874098230571143597202107759411836646796400905509355617024675015466011893151625192867858950890297714399961083405621931940411283383948095631678117621983564926554222829889818436474013258960425705658750865970265035436759203603096090366434321185334840250638341037621880907077677162861664717729368846696556533773312633665732327813391604040635444028668880818429594597092451749691529087331910829728850411427139359625985668820610967720797827282238856577179805264026127795299198372333870504870663366692168575938344096149509750579306890002425229527483919111246546989404046340871839414879184388712372666380990420845593084076109047881564454906630097487837669084144387056830607601574292205433936255873474294250482174491639113295041097345650371932660518513861245359476143137095593702120349644312200101485732483990815449935172388021773323989023142819386101925731313398189705065733684926541974338281166017763438601784768469915860566599624303828976073006243524291696621375127912783283516041317405639425355922601412141006783879776830479839419124458103674566518042954906491223887376567388463539141553145287101771723692343594235558692149705075241359402157186065048533671354179617288710408895610150508607112737653999302918980087594642544905894765763268188901491347015795547056728593650180028029667700205263112504105163620394689998246049768157774063038063041020994921141245019146421286328325299382016788645834511205894487000982716730146861226023442842107901534205533547384094048898100288577979650857006212784718732238569643343914995640603702366818426012305501797251116280283801974372779763598729054091174731249507298434383632731041802852848648885751365438792730887036519668658068574385075964853657633642747580524337988346302317189044991701427550447161117838363783995988760075834910559033375127328892770183448211088787158871458957407026044536844837923611168835101219820514304430286918190461820882750848320955755037178027825894525315176937583302955245081729808753614419161742255838348708114368330972288324668476791764478806776515108896761217808699095555958139644978906433735830331056098150993946282570870568995738348053258269159668430909568109454932311128785318331627061408219481819352277905925305866676085377215140031487993621498903991022057374223094431464374224970363572655693088528875211083352542020512719742235986872903116069530269742832291668213342126834309167118685446992142900186025132330460513557785536610160900884890516522549045476898880608073312388779414243606926462783233925281011420975721569473276378064124211607894725713131672027040147702920865273245085060949458993396113110738147389098707464844467504344063430472655801570068706600239350622979842849686007511614816495687219081518613040268722243276517033682495951265241737373844768127739610252403693874271973041384719384798401717888617932591003148971320261888837670010335616169414029659949036432152230355306966511796647370947777937326522410131025167746681573503614866857878567170146008754618151302874841205974265629117888575453236285716956152560016352211104733780221788303123602633844072694402976968270767187681923087565769647721484298341259303682421848679428921890285063872173155301830536577416089869369333897719079439382308947241917860320553477775697987706268951636097964048885138564409970981522229613770116491356802999277820017833046557877991071474414015784012162502722713800656355619084910682857605542118701795859506780793000806401115137144066325745917131526417109480693275484851352374513980890855590581027098515812606564539219820035080176376976289827211228103678187965292805262734536523524278403004715900983714132478114478917747054201332168858840112098893908476490063793550466956493483852441111220786840336207966740257302624866998157442485684756485839326289740838358218953459341391525147004220633080602813613762555106613802851640702684099600341704021034571549789779212394632256255632798391159118359556930003678015562691488408360832910260316694930292604563848937432958339297164620260984168463757340940938217758424437619254643296087122023552894428696995782829165413416864579487168335939936253235346818306810763316271211720467599115850207970651553407501426953310712103641385439441489917635557198505277004453828905415833838013596194295931152940498042007603203310773834178409762989107858492518184001513055648743405038651185444086361448137243412497344992941137405200720441702668128548658017881811554858202675161608489468288434391791829030911353184591463768393218777186328528868156983809372172001596487675475027991141605272773124922773815382559797890969850030315126254367726376127196044973642554747075063311928346124379435446364621129471277723002089745107043769344993869693741783856951710696021319871239262257269906809852253098268806736602935092757315415491793299438510599019517417059912707752931698357286149715974490280848716103515092670971217354721505075680007039781635060490030911618223390224176231478120986898513983288366551516281870710953121334572378104104711665723027593411335958218126556144984581973985799850954718883256933960804773059253584048306646874500544541786889072529630981100478214472684547527124952535338149199704719527436350225308550069277780830472578923622713609077667885644680704910348130898448830650974397516741706131155561809745855007882271123621239932782068475204401519159305889417848148886023857979879201149294417073255191643287499227465409792881388922744024652408032574656309940927594715153488373593769605658765392430034931704175293916782874741369728827121045285434925685122453249828443365811391635031429988229175114652255957172478523448936307189621285311358289314754251461175442551447073004446668527933116319155244940907064585240934593165563076552882299683142108364664584337027371630924320426772504809827153017098776935832806617259952599707256550310363834410506158536404518887659453585995612439013181980194735993848170856279010660454655579754244679477347842599810484882037571343884940471744328119307534787079512420107038909844090324058801735111566887770810005488905738652293666864039234849281615332111156381325305964718269718627053576726351471150230285712334106797298569265810193779958327366022116238475460746021983259649855701653629719145249128619995023005881282656767507112786546328005908853247272946254683286626720093223115201630406156532396114386134114666253866712718412945135127133229784613676355812984360053542281282797631813548429201462400542694124423458202130371224113719748705227294769481073723800430229871952687066245717224068411194438023625805033334503016993520276274795743026330833345888422075370890863499626875917284875386947520226260589794104959567057148332375560055407319694203079490562952975351135003337754657910613472726803887668890694872930824703249177854836485397496057070012898537930770194251869123055657734996374826383708115682485068609600192911226219391985925552381341381275332184975441371729937575080753762714902640650052840645033321173166345830962293532378322653592343125395756452853172388266778107265848614233266526993058011371626334314462340494811910467200611217442151786834550944896011522937467434327127383680960588033960651350807645183768825858991855379057493219234246668069231415301580412603824573091680360754781027677726445128381631340204400632568742867510829751121437786662417557849909147169106642965566921111299817874284485138739824602774750926244776922747015250115983702463156212397186157672172675033281910319292351584574696387762051909043496473998501372131438230040397370179577799046605573255256813738076818566057845592301337767351981071505898564990306266659168949127336520291934902081783859484889175338392234601441806415327237554701647781141591137140630560419763016529155148833458379554956916512449890637892383550925450177918376105815946751465080794704616231575495870759004715688002016757310063967648484828069464630325897262285430141516080079827035883907268430194345008555673669979733392524718835725450220349419347552798649215699699960763365098167480295840954698919973428310646366382219121612668222833195827966134825743775913032719959387163718355127778701508915537915874734321648903391539866240451339568595803615962513626097189947554450040401287483298579536070499791124897566901997191523872649824498215589172755764696843657858218647231454447658773494203312564422037197880589673522301766871321285382155805175886849798322421033944290592904772549874666925229892563031688666304826202141298273875583989025329225512225498783203606870377836697312359841287203448005178765494961193551360869683025236735098895615665792271807483354060317910431934887212168414769185206807402949433330923419952742667271517161671798675601027791843752470144519539361137528822621192401093569435500771172277498340873217880900300893167754814058809423697308782101392723591453064787174016404900940350135295554053034635608826797196299373681597800262434592350677966049055693380720936979389546008816168206408065908885014277073206384264666847963231365057084516946924594070119157648873799730507015088907330228289661081006895644910748636041309816711369029808200411856683382642839160360928682620675602220991292289533053567704671404414575128117109579586556967491787088335988717449210643894112651190952657219668204962382161842736452194010602180541912608595650968333522446368990132578544808192562904210524959046101672989305533901474517786907872815378891536539183652629977141979362508410920508224068656349676168094345780015200173407118085036802452044391771087713977992771325997427165199683174067190206888919394793261035856728645477407872192031153896185422637813632269989655941118609614373082877914293238961965635936138074622286201812875519484249365368264146458659803940527760906368844377394771046253694199559998205362180016397498054491104100026638010147599864574526370657982737252334062092740907575781138696482817988320895347952173758214594061321973946374982320999382542310737356574986442331584679299564994769413886212298098712971977372943269666863375998982895711298954437622763333794836557739626986437482849244301148291275864109735926441062679935071435523829493593981361191186327176042369173351948336899126313900295971693388501529000825571963631611153003810257855815046863156835526288032793324214600537264175352608791398813979442300481970822025766384439392786167951892208236253061480566025607802433153341806714999597463524654601482156460801724744467597045929283505377095282090180792829813940293566935616048429803908389867543799936042316339432110613947153300680268059169812049289194176945994202264810068384675159050021895221407075302729719414181184460959283032942962797668065380709289050306599984594024547279539533829491688203045092968451742089934293760921071213373645420577420309571294944542606847889902306093032100089776712715124002828648664366101917130432512847386983465558616864026449023344943457723016354296415847745765507209943460784888936406174563889909465289344014112740461194563748537764738506492915438409322258170709318115509605731130149034067548289937339896758068931348844083973849163432594417199445362860406927608269835281772806560440599588750000263747193888438293750137233543717615836211947855362618859152381246294254580890425148513336999067818191936016634396878030693193118673198215491839747445758636002294009803837265135557490536710348412008745677631192681274022637017916834882891934511374304603809263836840072297036481348382350476566056975935552425006388626024762897502052320492257827304672053344943148854977083513441779483369322960233877496825293392906380747589468065472818362952812960895179013182364803401386609857307388103371641218581984825657933022087771132059081062043125482562720004400299632015599886978559680261340958511173857127319969802072714169603625585678603093177244582377834646967617811422688263677004164500536652987084502542077412844146758288893706009796949093675284971834053204468936834910820532516105817223437306844193600710400523822368374954259231919439334084285754161624507442340449615156100962328961846352042367412707168811968947554125038199986879052458956552005041397746405208557754668424921134010527907612226787586082692941300558933046501381612358987062572902833309210624956002136944304695004220035987324024372227823443783463669620441276999834383302327853811747672575984764678735747854422012612118302423080649043744764818748333366915379288600959028741215741815124934451977989955561488086189067724965769217017773946613365399475636800224652373878396563860835503806190574147646993269259928680544779547541324860258573300786869022690621174874036944794335554786205682427077534362723297375536176428411009630712576269386439576963420344778461765634897504571904770700330876749159848899487617111388178181568287923443205749775154260865812627348954535530046587279467970831619207620781560405780297282285565354630910835360359161828694377731989198706714325352511914969432298244482257770409361211232630437289418952892979292000891668814669487993162198338791063241962451654786779994536351853889785122062843602305949935982948508844653943649573920792741305976647990495372943956423831518393621717116327704514883419760725650976189168967997186669260178430147327292789672866277592723407793006073071012036355258775166858419059476098243091871951285270911886054957313661004464365483685461919581969843401845274346989750205241120048848518947514858184015171039659549301368419396722779769570551278435851116306756405003386768411170810744429359881338936343041955919357613380542917185756285058978664004291986801262515879291111346418716408145395280194965188900712970520370081437745644838674409905935053828416328175800965897190316456317040519829457934775268781505236889342037535086974311716938878807792041442570272204735352782350742855291549082185455550953382517457904121384649894113945309191569514214503714142302898528234117934982090356089709720467086580186874103963812450150328762199800546061528418932648148855638627476942826903018117754012254290484774999198617008988135602763043343907861768401472745646492743649172632972527220052055895193303146743407609049455489403919243335245556969982038986254913212162057276836825214960295108549844762488489750396978978992981414887429250681886772192253919095992134653954852787723892011937740413733032205563194980169795067603012975002479835181809694881152486638985663561394137696641246971700228311121569748762189376628367686162940288720546840937296785045269382210519363069923621251954159760543803050360420064129575019757076464921455342172240113927521346416897131769127423111133141800806795629646103861822863948838295480983561305481492682535898654578517342519766002875946554868740588153992471153951430173326545483398725772875242266726590769834925911399642978786960012827819074340991269067355155261485039352691605552455865701196873664111803110675262824633618835701289387986645028775667375627739064586480541904137354019359072787112913897036227734166690242430418420443981277959084201637952070597497814821997212936175149214121492560994016687560130383659147548116848570210546395095318553517151737655071744668650133177582276084121117367736128400524620598508704399157240341424193153797689375513935292060668195179153504761428940289598836745751925823213253943243492212934997043012155123886319559670366849514473688470175255411102632729185759661473480083199877126159710755520496632585100476409679627755729521956642001188467815169609083125196263223700978576728597229846718975981644775632716621909398912835083237103637482621922175860600510777441766698482214009415555806409998590790976614553311794478132660695349419163465224807199828391549410410369542891984880623347623805367699003034861153849204400770720890815933411675980327126973637948176124221151971851743874130720610664956060999924080008627214794979857326704385150391830058595088565559675450678614009306735261905625262938848882093735346006426402424731069288151412574853769584554573076162011864925025884152202976100901281376001028313388271226607008776576373148095723993431959298937986513173863242482730678552712930486448766080380889790458256924435250528507682802073873643477367704525327283979342977852579647498206871804855888153407123712309530594283302745616447830155048499183472264376943497747075161319618151136175862856618131309083195982242460286636017466082414044779566805769271233956644548859754635684529150832486635840197333124489109824613819184464378774169318678851476343630459903377453364844840507497734481290629556679268365934135184031080104067059887669595842607585987170994999600256643763177604514321753897851319318682945847415656237033682523733284136759867713758592267420970237761102476715396986405906661222976952492945856343591177168482032610958119754161939580570610470742295304018238063354204879638414837092646566480486593345970159806722312840642933999703220122297109864694539342836867228315436120597755343662425532478782345193232891515903060583537860867187430078131086900348997051578645035936215963131592024064256343145213498532259838229631125171211090861190690423881519793984030893061332700148655847041805527132018525322546617047267718880633681692080134695538337126341109774077275204259166210349376326226795624851079538290190331936302364508339632204437170066467160391012471318668203780319564817722917336853105152036083263850006056503497975456794458473434511589359086886168312691898843924804377164099663539704468737803689345150327843269302377111871610877181845682898904240064527876154165462994291914166820718446505391884271082962760502905141502774627730936959835219612932354609693513264593967018368358523692062446285876797669052863718464769839585439206862207275783764506303845363027670362307397432623789640710933011883338526874340811466903836142556294547539479299003410863734796987760552980268556952589873515152716004016679510446145323705613036572303067838966357591133727854281077431308397220040602711799414744077332213725468070838720930396809093791406498765686964287302784644087679396994795129257416319446082038172508937448127695858995584829621490932977266964775100176794256841452040390833376530501271392322161422965056100093523757753665434177928440536771082632681761036238875670061844392792084318459212084505284213375727637161356673255645717764100925645847182444308745679848443289785629048795539319742102316174456715294312465582620135125503188538520700985834593355236533111138329130610471889379765053124262129810932996515544789450508945005385765077246516913727833401496107651042017704926944507746108044620470765813380585285539069904899463378706706637869286128447359614616608944275636732285931872304723893101916642983436111591446849245209457555466329565339007430220974264124480328101123614507032314751204041261350327993319223309189575825490966589885556911807826910806015488031603867995400774387568640486713974909670286249585552245631393624575396048948432946360367952260331914243505926453663520956121688181874332060313147549157389290408885656158960589513014474529825037994912346121220759881113351442442919004730147053663968453541671367329774011847014464599599122853632510413012719672239275529936044624517699221421746560629836853468166647626680976979097119737683493535587831053942460331264031132732078396102366950740185640834098175629830214230464989212344145684695240936779294296140934308746858727437723115594728375428672691337457868451297101710497623899158818738419422764419336362303042167362448005387855560102286548618074113964558725140197063239292096687363652284715127788491193543640136255326337092890722641902825536841532047519653993401886923106887220502945271166760639956154741616185029763656345958228733645758459162318471041282393023948086874869406024352278337216319583570252757063342213122292902732071557213675843138919972043990116319032516205082169085293557010316211773439305247245299786117138905526379963842648159147924593966370931936736477235483137055653010126182006363039375415320277387989699553624978120292455020051797298112000052627977131484563155007652522494937835059991530437297325571722159026828484819460928236184351519814703341173656963919913694034693344156085060234094499522092447232562290680427587616870308786465831694591138282912085472863359219753195284094753071529618563079223288037381030395918149134835966308862670947136671544559424506886381203411905048226358699328764051620102264742978094413082391033011049711055558585571180992643175886519672412603030522750568135274342686281494697442163423883819745960216086803053478666145743788926152559362118643729352353783632907028772514857594709571369753421604834186382262574197420935314659124477839369169374329744593729101004428190799748125746286873649192162479702891247012020489579354870015434647218352534088198518792449584355955655096982944067056351450080916502841438052990069389042004770054882369163249191992967864201544578570619362319345315945536639583345148583960079032527108344040802955850074135392689726214133914160538198034183408493356322047760324733123306298412740269027288186190097060104846317502079048596227931125599835031243331570492733791409915413769189250371294032390410443288719164388680927610050313903374699538684092524600877097912845857217574451002720551200034785204685009092984054955242134248578571100072679726740552067318998497684098196760621793413242134544757787429323847820948824744720463925989794569453349803403130660965659844647508597842405524146434880960489930273870192614178840213826654628122627328635910435424789499733345421742901836124422842164368522828132654231538236252935012245410220263212626419820664346424535312460608446941775964398970977522001015080063293726486159867925572511908170856411382048898613509238886484392686463409999175982771919022105276505826259205916967861165794624316158054223519870374429840478696935317112661139113926314227111887306873152212030943847916471694051955982249641374156228257995316100671383023337453322416111252072915108489678893265391269135415549318842961349938235589849948459568473885666034163370317924146892569383451114837437789850270466628472018474984967457211991163043078949932064630078061787038795071968698262022683817409973936950163662614301360270597424058468762316603612453592954234480818320116579361363334737014820367875666810354796861312030193626226027450091862900683142138771881839432003845629733401604483319535984801235236785341338902901222439307072450882275202373342646630062027825257793277761405224866615851033201662540810854463981615170756903601211229364884795807923750927297911196717152348474405628288938105976953974228098604364310805418237956402322872964329508297505868272408121805343104914604794260898823198576026002620536373538482762364571304844570125577029845914374039902189020250582560560523211028026558781517666348919010281615738399855811096168117291803549056679003071033067462018732155989829698362843682597217172374637309193969010566559380613299928102964328891042953390775493155842110615255806450169063416452282668256233668833397743957346211518355135090680219801597285949982633111340572095812251096529016995730226609550855199342084300024482364853549724020405046095014942304842971415238764323963470724298663170565468509939325498681022318254666971251210328922704059377623068687633151121656349262340873285230565783437504391677515148939937386058181880698046789213538171233043146590725243338540227566948399361357969272666373855016325941713069033599461239329047172865129170608860640253463743843065122402610223295499836435477830215496592714658474273861103183201135573895886445704681554611393825041258576477065828413075255828951641476997417936500828745066103470112783802130324362091852422196677197655563186585239280927125549784377856610131711532752808931514146493242228102235075741854195822364446479118203029690332575935231648711524580337454265160797469064934076554316957092681043047668199456182512917335775146352663255266236907932998460015816242125920682616707762293185707014032692810690888611373858016023388052847366381382945268177581650832722635780774573592154400344799826335772282850988234108389207276618518338144230737809644301185433349967747143953911924516573530406680976215505270723802095165715107303704081214842082222297654986755314170628657799876662345577552212651502437787271149768368886802281543191651275038725410895222940697125951864067472982940095860224304438819112152882683404012797469160609727180302682361747535160640383460805808760563639376685582921794883068778796488022722213065001019195924429170586978855835600942765001493436011548490785523995019501404645190621625080093903259205187709422360411825170639002210906720851463676377318327768518303956894941291211531759272255968626598995607455407906374165998490738052114426969954417141792055306578624238916286854308195133813117551084679205055132002649772740657992614689233874392262616268180609982384172953977823662768889487175460903155803172886369960925777696530738548880221815863467975829491405734921190237683279191179460943470268822796779785656068741728362943731122151670683927990654858525220485598097654716248720841855740961925630788541366609265745655156914634728988981485489423045283671981877912095955057889397663910040659927216212485189708497727196907178465192892701285299538196779218500621535427005589561622483579702896688448073624802984286662904325886212464312292293250727353472754350130913077381940671280550565797297550492237555581330466039012636832675680132996475639343972264996645489102957626013608369611713597149125075444443819050499552957534270159572622829644238555296152069579429825049035983703272928884339908096887926457602528098266199449388965287325406293104610337415775354639957118644705624193955316589727047041074182638466489764926993701507545772449679614634182795123948183768705486816550944846106523499133343740669137485388631559357170998776958290124698595774276449970405693789640265584457439728018087739138057401514821034166169425295854113392809891214484336745875389625973533750578796747021483409670475196057101108259141685623971616569344185877500877363097566648557091329861420373173702136681924572095871858443885842220945693281392833207412220481070566322038753758499319009040803503929819553944428460122220297397789083109551872777513160840261470694943354502896356037121327107227834354097738776185896096359835852906726838968466519822780225597695730030986179795288875798856465591895829184962453903717531622835486048785309956859884431411392531896934716660222983612141022318599381433157005066879051867200524881006524085102227849584570164468099946924612011320002039353521065151026979516138838321185452833940746812300950539072202814938244473514790062176968849740498757436192408591499873366660258415389449154414404236622849076430410013766735790966133286503057099720106711278090975261451557061250335364855939799069284127786958513818563890862263202236789617067535462161839321883071655653043469031320468158873152672773246088288950780927251659495389994998783178774898119946687037300455267086198472434934967236966642012349220460045926473904933908628523370624990616015744431402508172823244654602375088686910345938782646829427084006920187264974890557914916153881564551675353199023560048838717570811700874808057274792794013708431552843270191169985093845405161132905846757722427501260714290087851827471362815693703420310738003570841131177976100397941945326724589497668774051185131307022262153685831417503723695671643986123688431030919389998217139527639327919085506884998605036668277046300515599396963973194902247490585550330465147681978673588443788103593403687577609238534331829683264552321779082978513636883083856617869648825060314150045668214043008431684697758578220151413126993175759877944488372460030699758470673091325803708551587622976717245142347070471684064688432740036579808571299372887814272461778194330351756652639706916213816155384772409592797329303683891334362266828086364624205792972005861857697212639527842833622473883189898078733303996509092780827746926505768431634220367924525996389401363695490320015929571936099564853773151756927877311155902547731051787016715961958188800629030193245178968613569199943112108896430326892906578805089649072065670354858389123658159512342591700716938668895878815786973130993817202365708115820218842719224978983392718799765059922820952938213961900873687468646502503070437339686835538544841472855374814063517036732026091161427803838721841991389181752044226490867859865415987136852993040842978310926378475850023249768401078454512923888176198813128665332587234817563577705957667285300224942022229197681406467220125550578354854902366841790943838688929198796769664940396911466968806639143449692501965288747254640220039173124495524607396816774742442914940984339137330666816411523437927954178011663085235447905861924935340480046425019558393253155156829786377353897159435097862712580559714420788081717450177848938783546314743525168769789461455378346180936493916716274380671122866669453576330199850771248753403466751728859549523866651492070359896819756156014616345619681690011519279358707493692351359591430309927511588867561807623091703961797295502305882612837924501270381313972790596518775965878760194699771320615635941640694057797143294304449988827160789606575582297870917909411420421113326790401598232425059728774750005475815206670442603565350473187092991590000880403502849924256802393782913337101741022398399881552444640316872729905388244846924395529124543506653735265304447186326554065526031038475596564465118199506249929593191636251703547937121618382179095178071281751401948327309781875562791920562390580719655229509681425452719744992500276718129213771542837547618212489585039824178072600997056028955627801931734997002635848501238831499900472400894191987412349037721318081597395530232877328915514205060196925985561921824532423174560441624980464786353491491113456184881838687073866737423737440169107065490787111475706889826395710173873929903287534510630411351570718589786035230414020910500484934058144833629698180343172398856385731854496561659427189428679007092353216145886811073367295284821652100787146329973318300656729648881797221728756181887619434908864483339561175487226738031771605118391585924657938553104487285525948441041663011965600175810385199318347999855366478011261417735483912404056720590073784170151707404181416570324201361631827351403814246677665124575105444026440409176481006546391860704645812516040330723432455360184064068555782139662034377514356672967502605077150846884201379746453771671698767933833675123350716840014169539131982587703866184202711914433902675614329531084223345184958717282412482987933719550505754762637692624415665460484121947423457282279199334764099007871098962298806650907406656637379210967164579712079459931355153450011948829724748064341229391393046160144801221217646092259342754338843400883101077131869981104166019705204211244348453719458676952308294822299044802107327110530511245806813484378660808966151832429679291654100445867735932464235293376214449565000243001386013593691943119255860785633360731857274632215344902134841472698529654182747884697629069212524214722641877290022314686058705118194488253449349691852216222018788113808223343389030244525319017526892554492115775673629229490975167922544895237419519370203443252386701707054429784967611674826931118423781806355033842562038716570075827241293522472543400316776188541096782437310352689261241047959893215827086756986751773905161031999194325734389775609721169451127190704116832799944340501588355150260009598689959928361183590141688547631158490581826695227380212495571644062305139107653306404426884392596780994707098843275857872511841791712760951357896976728983867447184330542839906969259777624400216549692543871588121704546104893361239456085366087686229826950621230875168226729425069432005482506255754887375995203737656411894079050746471930655382761430063996085149855786350802570738968812264980608993699736112544980022579726814028636524163598212466279444104573962478931138301693227729974882440725840618486210513719982717592738097615780816825684229669044851960011581783109788690340057656006834026734488357722420578392483553648791595303133275117329240759101336051603373498154227992959599083189149626036096478494627583167483270789286738570990893560796913144405425964436237685439113123414611910233282088290068370320032181346045521418518953486205630883815856671210397135768508751178494274177301473747027510521776776792286923516051753257630153730796489571281463094436893562183008887441374529996319622092800852636424928761094851648977152922476542975670914480212127982339568554008868741336762119138047843272108368368969720769710715955184803522937211119943026461114974438468247795876353927150889878851999215844759268112116252827389788376539605349126592209013868679371112411097169999883834166369540984740035051669380330644957900622592365908274905494627154758427075601334436524356732352412842707359383793875615133873472549234803789720766556622120915976923892298270426229892284276355135952161160721792662693132907121313507405503815560842070005996599288231981692092955202330665053584613711453093051627885011847142772385991631446469152443161148150429067128011030508376107008574973040040239061475816254397687725947767477953809670631304934322559461528174441815831099183215903131115313054830658416649309708738478540870341801484676918378002931004164937290923589447346371676852238340544863525045478603508610150360852593576765212076303175276296853123847779856200027190824163368643730893692082283467497308718059415979891762128019490671673133993756616316525710531947043579920133093494151186733428331891750433327547601786925861882229756042766039641549980070944441580026800434154595539707629115343668535487455541704668609001097952212921656625544025949236844682266749867192113964088549108723895927111818268867675144016419619452258012691089936450661218769394578429270794003053270743679023126870965182532657361704237141087170550718413749749901066507802514082031120758732918064240102420322522050749788841263666230881984891699846394032638587479955910378061130773292815418177644625272073913325623682925989013278617788165192099752875837089847510713450776312378183364059872809341007563759692610936588246751389101546083657323602087159733120152485702251294056892869232963302924253920709757835306526894297204627453582572914773153026382199213432936246152722980847436962353796289706803614343332004265376776999601209685348692791310624405293061658678554133526058717503792650172119663150146731911102539297895807526283337946002364497369034800137354794157297977901128770040576108798863099479312613904141841717117626198034035090287955533661546490339773490043360722386344062167311793211206057920166596726808279281123968491882167454865926276960600262298320850321075976739015797863676313885611906388775290283201381495958941696695846265578435534557908503312308983367432043139353448745108396664422148652231615649356007154105550098915969875720928518570159787459157130628614920002360724886925668260739705908166448889143747971202348276017772080733784522689720767711142057279742995339976852641484471317937010237226882039334660318348378709026520695823895226649768007979794558185398021774961052236592698935117402757384317053423356522679698453887636882431156876601509641124073620682308981881492068660958258073117207715255593056334300672958773373735115429864297494040071786513882025477930494807755167721422720720173564094905309570202982325805797805039914599835555894475509275579419893238734300700249438440444737718362510887574193399399257373149334639881056497997728811313105134612348661543318373271977793165537032722886406366227001009564055451462855795062438137947991759606902919137565093361730197882314405897402862744427869415888100673188753042719354863444051028556036067862313253468641395041205151590207929253129237486420529368369729378388367223844736968605576245436744855147705305213105277617610279022833718447705872351263726728986107967625235656459100332915811882155486494139371326700950817030835456356639545070029974600187185936042879079124625916914476030795008598421291522437442631566524414182820022545982049157078463314952632623464144785964205091138320443690105850154191055707023316000003283217322479092236889202013449188286381852172769396901247309151927192540180058881696032178260723958069224438534755533214083231831938145852119787593641129036368413516169544521558271193866562459179267130080567888807857241650371926847775743218224530170295743253465246864338302015397451167399906376389200688826405231444479028184324837275125891285989422973074161944904111549864561346295461372518229994590975425483873530421679433054063580650433272705506185376760228935775142674792768788171464201460768085936371921285763924788247201025141363515058072888013854127668984119108590010455426605627421267208310087384657456832757912705944461433340620313665253029653562096180946926686894585671577685743745824952312358847968415232926078919656754649318817936316189040378327245236574762364931400701357461415251940465766293455643901598744060156912465725984991906721144545673891700876891840178289568483387486108044975947985834970661846501894745097172788486338467945385261152403177354340556517288886525805757983943997821693250546495283869707134691230168895090606168799690073713368036517800311636080505921366651624704286232327354786199547325667525578540572687613450846336464173931232728944197118184522498484551407629278248221673124383100160613201088857560442887915925511983092275584768053697779508641455218332323745235996030920623170620513374628823543112308847447150764087448875155907306319472135912884864950256074875209138473175390019497991059084411873764701092178163254187276199410905590707563489796436311177160408224616695024801625273181974874800394151231341512226787973668023200591246445326541094946170138894107715051353706338150829361873317544061129254444853900014963360911191081225503555404630244815090504641533453507914210234982083408761297443177282809060353158883422389720815260374194558402872372358860891622875333649763510285020625505622760850503499585458753382948019816635139432984273386040055207622450803993153430502002677516016204023595981989096953709278518622253134726825009012645124677371795281430694107077883137869516732796344711204824924903666046532315201386815359612805984488074474575206327191825233018207147526815694965308977966430782925169057517850465432630462924734447924375673832557183581468162930921518945002166369992673024032362286253055464826159063833788159044729934782502738967413838206084422722909327742121130330901209071277340411779273908436171377291866559903055435230910057267960539669648781958033496651362095717171046901805091314598245386692281899425458076729530621459317206127561274079888539436142809146049205542887754770231125849374323849694713691241428086767062974528949683610769106088581640473013599399719962136725893763597749546395369752001537916068903149841139921167517519370506017902629804836957245547210143421716421567666427966179139190988936411102452203341005700392292983016652406348119192344841527631835038053781237636495304823507439750619273733984621321723166294273929870693595158307194397411986936321897151214750781096003544607983608156487076941951831926083113053602542300931409355312561334465199487526975594586407122490412148072346395360388359022422649494174388437003363574486253453209226047807984595191639048808614657384515776316705063046803018610821247550496817664312958807009045606575194595888093714219819149365255240497267353528406499121410002213707096371939502105789351835068807103760483263710607932358327172837848830241022921239383198780583900374987342431877822216449589587371680609838361704689642718542912917505387635384970652069891352041320932121667847393799538960559732972122361365976072315476712574934064746012306073771542745536932658538187755218804953273186927905600534908028661362635273494457344218085613413480577668901707214734415471051099692334796691577137745363147553571855222540830595823209827772944448781001936632485458135182525471400232484106073410776799311355748749726617760171991136236594813048384792832187657681815440824705642238834944853261192944458296265970176148227121195254790133789047462747100978836847957260221033412657070551367337848265705819125461052924697320272036118748964869422398251382049133031404959820291794714847213728518810974612543127288296457227868968522864045449279764456340554088308687016693203479929085676314687418191485506584438591741342513273931222164757166741985483946917954262979842394540971377065123306742742283800445036029103949125889465793397957589970954505839455708471778634625341159017434742213845533559498695864545079323417371701103207127984225540354018484431014319520328052826064652304025973106161110264609314622633691005391002043410808856291162554417780704978893133389619599760344716711971896998891017171652405068866789996069740050088425626335515364377228967050355255224195608727783204856750053647136130197608540634954715279741081224703920793102904150561396748950688679530953026587831506389039325524733299432193904002635651601020019292726916777607431034395349608792059324282719982080089018366680882520826298385068524052613023958889603764180045579524022353364832050306113498222055760442428991834919369703571727200832508468866167896812571947755145817060153962039444471347786685625951827284699914374167063244406667720299641701406896807203387328636841086872198020693646395839378074336142700281497063778761319677279601540924429288638594536293751775145057855958113750108635638046352648974267300900143513629436401073335987532929508301297317567049229018812003172988325200120156940710416835918056604397329846908053018109648085082981424375294413941904750238196008396168214523366087941526428071884797417878586657352262309275367752226707163741609903679601554939619964757594096778821476507995545278086950881142682048051851433755012449482145541284241010911569210593137461446075135797671287207482497870325369897957401095904066266766140875091287522087878464787872804465756059346141988452906256587799981844389659614641341451806941164419707743221216316450963590939189396518850980163432958012725401267767255316179688682580995387974776679463716172623090787968023509941364422587927629430917846700267729150632840292105220544190704441250576572293857014263922182398225334386154841162954326077169521460996348772493644598858065125560801025246701775150130034795289179863713348214106985580865038463145919280444909004812123927668707286692673630326057564892226327357295875482783023828758349477209586660288451594648790027996199742551866865995091516125947189835538427054283520941451735112857867896297234121986017230888597959247754196471375201950414256903230464931319913151558445099020906648850925091332289655916432226536063116507840309112319012642290384602323854829436966180941394523134809727869751614592005945938227232162371417260279701741338023652310406005450048864140549348332411528237304230175439674011522203922771382722775362019265017864261823454485685720905797513145941351261599736300881903126956093118807749603339463918714846578822528866626571116171846487341150903690546296410370385766239893892743290228812331635836040026062292001448862561038763437307334539099688123526489110055601196634400036752894386762441204478340212394177096787338705891754161067256459454347533823328470337161336912619002904421982086986395247731191333694587238698516898253324960837895838081409644015273191715229582992095887580419078229303484098400058786630229703896510095278127652440988722726633105694262413451834900785893887271768839996672430117177934210836587605584050394028202851612706060676572777852809087932679241260590776757032611878972136972613261187823979945690085318286913843688226928957770504137184398178328700231350987659000437016881960020467856089154778840018321862180743542413377995918079400419014954061307865695144397881014852173899330609152325536026650808024569640606570288562907428797647164729705485992087830375580763173635681681052671184650152087322815490983484072376868732366495068573547313872775202072329155524781549679779953517266604914260066898683708154221229614029069370260692200921697272872348638028727335531552466630348188510556590140442768693053624060111891684235794144574896218741362715485233870275570006896364263978291652814058463226834359051399534594068595324855899370216411200920497752444622292298027157523355375107091748542094807760848284849917622178401558230582772801577381695989252587275403088543737860495811217956037631125445255655538219357831709905350237505347803972956721239790285780419134614263667445344705609948054555054506196375963833225408426025190903995914962859696790222252396620674300506544238959581106565988313755495321443207797865215972414348941586855317337860002531063007812614943480190380557704860356828858729059000931683456931503135274477645883504217127651419155806350272392318818550748983836321578493089800557188873706053654221954252507871798495491220313597112631909630770322493411343369403913468899745781417147245612753066475802991902591211265637271436365571956249659540774498523634824642573975900965866888451616855967463513196559899868262973499064897686827290328897543024972302750070793849356615453257961769592517845217479412607200524332835683915230206770829927089987365919544664598547144337162049738630594545669533922738810916572028259745034535192362585040927419744056530708891807462338720713817566920055839565194836457309072712826710820644539618966006762144723507911324609667620748841570947549745786196981937622772130404001844800152220680433494408260934260647465346099767771140692337543215762548537811442202510177071342960208159342330253096070151290417214328391988706696404110008706396713889581859102425819056849991530323571753342341800311919732422727103248496953630329814556147580509373046294344952714458984394716991548878335338599282364458166536957225167571037360039689345272436558895761518688216048431845633131525946669800333283151201846898977385344781362846453309986056991257618722883810122312117624123864805708144845198352144004111019423138643118728843267794375137932782386047100719862940848735578187054972038534389004087717684157498798837610765942280887359915243756704860992607607739824760796171885384113327441272417726621223406745255490046335101400183585762263919208359327715608544433000104434775667532176638370421384639204928748268624663274004373812682255041715940702324175850985029380120168918449414103421232266509182805797427182321866316807333981190463434838534901838215490348772296261230176993101000554744083668738805259696448961313689338582760881442767492831481314691803757459702247667029596191097750538927640939063502672654385279273254195785967130641116725519983613898830322237008946620350420847621701671286308684901238206189488344254878275362464309984594548780051471410530466531906636236925857555432268199565470739159447480313193180282503268736143756667278560930199309266033143797955315002396100064934403815197431794606478890914721711903389459668849839457405978723558091280587691702222184536998277328685705195655254168326623972182083744347240300108583158753493498674280442118876670407746925960825510455500338712752280220194291658922751865805990427234781928268488014834573151251688201809908485964520622339561240086591474150161725790126922361132282862236127604737032112184450025861997250973445495381524135846084092396932917312858363188935410428471167020962729892051254373847487378785480236323408129537305714563320514970797946792507658706876591509716635566622991358524379001592379026745113492391959737166101176288824995412604457565041041796701134881825789119014087821228011326571687485950574398062746547327606437931362762979199390997859754172828879575802095794101122109053854456246022585379113737823125803321028837931800653655287592388948672782239973167376129361380626315122079878968563784072925522485976799298356443617242300691116561381506623697581113597528517018103323614269984143928567276390655981573728729713244120473324979488194423823841626664409010461351947384645169587046017866716426451719768263932406646069706259818299345999578725419692762971756200867852168551386834303577600870894869326600796046201690691879699427424621975996680938837455389098438395876279076210285229398319060522880838014936723642441471112291626992569241188287487578443617437106175074865040143959429537130028166770566821116814923230979135149928204883445866043629621950267053118362983442519581650811966331952486895214867142685299119967620247909410648548390826778461161063602467570151332962338698765328910939052883502654093825882586376695502237667441812265759200228124991500075005157393339407382615941434763825862247142516720743225963721220050422933818775232135187354996328147541132948195637284106372585414818035539863001777118458465387376880182951776376607072246773121423449151948226005399904279204180140572910099921638320657364537661968388129082386388429180950068310550132729311792857221865831558762544950218265561689405807947948342108161771834131997839285467034819763142552390022350146683975199017947314389073572388172807661001193819875318451432079710658405940858840056300464155343915050789706241172892522807766970629365356072066390679527957892755697965993039887393149264832868433844077698797259395593005193999515050459698265472674054997170185661200755280834414423959975653747299189358860808589089398103360634355138603262459981632579272223782154258747480576444555641760170442472864928738225367986763832538214262768536599598939143337970027465435415205989567600380683918835045263581775582633705710032881283553658343959952777676043642077993689151982174773001274023626791412475556944061788110338386266769896066605870675197593982213818210359694147594388059425699459462137323732874451160655457911977352253099951440865459606307750602709281529944266152042492664095839789928734910501221069170244733095134101730172014840767675756484596202755340476786997558771708937398479243429244262068277154472050880714889591151065357092560111011756239269649754500828025880909727278449600886991351071096672455950245901212395303191888128668262172377300298131562719119186918362733084200094768115301869939169943171938593085336210733054986105649120308605293248384141332993497014132718919179963943349199821284299819008033383118268328101116707531398769938071381071080367816239642336649256756417631815490297103785186419059647773682557456632124421006179187957711312927096886436328487491985580750429687953866030209048279699374662269518989987368180662641878059314842503742075943219860218494647697472744762355511241888522992082673238333214690049599988942199259272499393847838080312370694471757017696266920054229688970676880763861446196173712685632066043957087965791822139200959550727138423442804820775404219985314733234398492296949568728329524975282324663270981823584847960891728877796149250946971232417821951006652590896494978747786680337503953171205446313691491970454344539269671149709560595247715489851277941666311279504903817261261435948741491009616455525296259175874825122401900555195034239528169558832296741675880625796254300729707551062008833563342089410651792054227561209401929079418759703450612641646822986894943124353028545318601208432628470898473949451825652112140337848606520706489440861435914134257556572993299243844430602848042803650756565748928985187260154679395198842325469568872654036564981112305918504646154300810976651934366701927652578816110826538484465722024458756001950662162082746831820854558902924297514042908351787184742376105088808328367547104974132744684364363244372531905930077830515129068383715193651593510848728776716628491453883331667084078498922771817096078691370819818502259322014956020796210089890016212904106237640235929665277707126684617356241539144334500120823121775831132886443712570490644808991399714071306234444586546276724877986974101508526654820412150429687560767293199872965432270345668328558456580618008004695486730100613804617463561785872139537949987488313796050285674136818630191919500815919181578779196411673162430576413555899141660869419402804034047145438689109820250497168926707981834303103512713382280733764746833655633629912285566404326201063933609332291318405688404986176721614207941260319501306964392566024787206022622123343596555475530170378296381983461969849295964084569870108646411714419545908759490543718342178004930498734232032045990846269331058697436432168999682953419907307395805356060186537715188421643163433592880145940705804803656440501117454097972624097996590276488764019139629949351968851505003512774071082097820169947561631788148211154911319551345905099700016064129069672549571573344229860627201153263349429115482626099007221023175646273095017840119122770308205355430082738929261886766550110008432703173718967595708761391419678412970711199401374146757924729311890077933697097424318354475917064478264696760795268578947885923627187993774413306283922224043689814700863563791953027158470430385788849854553954892007047909781411815543065677910564385941973723952633493595309361736627938618411406904322346980655135551183769530183978566970459168847823246212127872081226578839729671584018267372692007354482967431078438252626100643030983550797189045134335352707509655922788808622846821172258248738033099742374159291822042753602704607083308576069857958037531866974392361389341702020265370676348924700939306576255996331294933712426841717623744011843797242438293687979241855260442553448084699790197424261940578633235973052136339795938238458362707686893832432687371366814966263408322976355055085641077607187287531611917154860532866195348354515570883392645248083868707065475691223421324130039976623362568344690400053501257809176114853022689337285683518110953568905469977121001036634462757787928891045698406720152397170087774296278545966465633487519471239395655914719952112554452648361252826450667078224928189828350326251549700162927783496915267744222003863488123649955746213538870571088272246489677311807984427292637666568631402985993007414280603380696643588486919743204319396213964347098172672682588403249579369331370323652795290966290752144210868769709232803793095471704744050684144762835848900861286617080520553290916502841656311780682880395696609214971529362529520324976668337514109414982590512017638482723154557124241816631998153038738499435519277295721443708056037828952452773257344049651198261613062642733977803045083241643930154202889407536895564818715884802143995215037964624564657298716120703681047375846530536763222183463571459669001819387504302611606158078508906513521336394235946989735554990783088541938269796351379520996680979833608988951850224762020595322629885611499975353978015953569491999626760893282189462428723236983639816245361705809885011564307195687598077822736246927822749492319283021491493821780726340277485646054174009726624467436333138471928105576185203528488050533387952116950184548525596272243714261540043053408630897124846455899995209677948006894067283959129786485323995946956534970382207048378341208007124574539236566906832385260370230562924464821945944284136692831604393575719853868864566533423885582899532050865748452360426206131637616340672967983570043259627496928088092733805039181749078175996983181178300342489830616856307591206094593320162157646090761488129143876296937508610436496707150509197069683528834010115016489668221149164351725869924525503529092839620361885547183266852645257324338508573022399400699749850484189237595774943133563340826962854621502803755585582557050494617891955620910989824472344935264390931567196288155695461589122546398331650631935467829753455968440083747627457490044792016033697575198800158135316133842687518855978776213814260573841769902831241086632202398254764894884275346104632433207960513262727387691704883540090510150571665412555301067081720907614221086499949445241538277427107951404869304971226871928558798771355138010735488473742951543301151103135848053637749692879383714872379774552201157617125445571175054647740472160770261879849148511010915560824461024924348950584189892132130823590344251906138507684668846475254524030872321069406694369052506169154272114034113468209496424033805743256943117825614775198061366256898242148946152655289114072341894676931408650397228860186587299865498744792491780534939132553313131825842728593185867285927335420701378088793038531263567417938543570638986135820108233646581320104348636802641278481461003789479867032731931242297898845311753437245716958955400563035805888627955778883733868223162470117108176573002017888658777551562587251770184170788052979127828454378800977188652893997277464034577261707429697549725490438829504586380642522280211804655021971818135877959799380690211856744692583840665694496435183486492965332592447675188654190960542355356319564930487366765964482777704756344837497783355500193818243906681720066470678429913044231850149224600452607097594928119130691084052566740901525203309129607322216052040987957453183114099104265550734254657555052230940414797881727043236530666469076429469275696546889800025610957045716237630867979310281509179916089700715737938654571570273907626292628191267018380813611354636787109606232201816518646585333618424922381730921061142737356282673452226640161442992227335809117417967195783563569870988617826669738382865158245834616431017400814911553185179579906755229181375176330542333567730248233382072669295292559681883717902976651612622842796874539666365712627349558152854836696972519005480019726459888645509276765784219835929716661467613990796244430861370027262924036194692617160412243738890786786871628729198710774422421186301336035727030565353949815593679220681381511253248521508183854029979568686393432599871677790131612018698741002615953809963330403339646906595617413836122215258987827255950391499847467735206845591828097369625540647638865765312695099828938498708491672179009708450723041610630541963798934650268888874807748700983260938825378986835251723934223344971601825362032785729127515471448516492939978147250147165548950265904863149064976109471426676739247425620480369506961329556574450095497266185476485440097833541459850534921526593391168259698333238002401869006991458703667381056459373833841351929489907696761995763639528311391263935543021524577487222799600167034403915682886558683499034837455620463481371859800870883789429317434997991906048998488038583493042689772476274754999427623647681448697292589981901176338384977226471095281239763885643466797189581559102842986320494712219234104463856936222741887797410584330619482169694599154659426896639521789709123810988147224418838616833856015738750736370852248888067546112888386865551080796234907288254317022334892314096337830544733486402110650917880378654806704429808788392935850550559435384886785381744167464998889582544995214382428737128262730548967799004732917214420923483291713494227901648303207799955288277439054896242979873474202705412640614500562311357672941094050721035894918160855453472868391613305391825042449500796085400761333709979012015127671519220845231035147724790139915891978812064531177184592123109784739882383868533179881804820490430820598950754924126576138086598704313739494378552917825496002258200127328904346983513064689489021826979931627580614211603412614046783024859753817594057733168058035325507875285638740420800565217483642745055675151433111547657143718187724879512924786223423045126380214789481720856077283165574976119584719054130478267786563895477990466722636115411511604357601805240825085931499022340917643239983975642165857914148451451805090157916087250688358793486437020203990985623715586259487210725979638343321740742158895282209769008291013541761441939278859287650425633937322373819105577416668391471844410671970593056004820446944894591762891438207441180108937542375256995457125215993436477914884764198207126980540652886863355890517372287824544148666168960956395991900798014088457969269722609681764953709059627470726956779226226335534083844951591835609871511829913418193600663920857646413254819164694453889430775099371277848461150980981586487242856123344494680874556834126613869896285025199065118777964988270710420528376994876803996408150858148347579887525027778447973279127801382094407563609736492429988474824339307869981919291351994066569843953254493529408340011962580141211493430564824819352155713813636206364332962617645370561954692879244761468571941554557119755328936207009387498325089893338211979738523257174189813746233894515235137240806042054579745918092858149926499833185233181786014209929514272191977325933903108264905615078822328017289932778790988400316749801188530554168331473633230163464809797221565683092390523239109295885268120438554056119547049960689626475425009878664990015308448695200022971738144556573614873255353856534375447531660018105175874735412139816808100104321479060208360016012598728898824921063552899281595668018429222574053306934189926334384548574218467614867866862296387252734782921275558567508345993509840206079431556050946049655581561286528444698997328009067737243637585626768612234540646315086501910465127185250271383680781841678431979835160262503376428212889635738584431558657472609750732199397752893269032596985022232413287110858864988064688301853711024430430490997658930987530099446835441178538474231240642837671290129505672738360941637003197932348421654503000366874579756735965438604027960482940118646447695979770788522408421382873127551291248692339152819288353951234818459842900846296457421944372339872984622928029742106412837582691529295324506718161440807291778789097836150054768867706901140604324519063835507093326694504315604687392039608602142054688634421032376640988168751981915830559015011698260869205656205371781290080360693008262703803411107272334110125540100764543075969011613950309905306134936552381687781124255491422041890065537069121877622709632837014136100380945601264519808499581251505305905070667122778740736602845681330478617779559109586113775989129554472752594671160224160108545036492489748084276286580349522582319921672213793433451183875220265134157611053370875967982844080495546303107260449878108945002965340796320700221247127781375662979861529641337491745410216840201102536941087053793476651935659992058335725100460177360480446188644961004657286972336608983604031601604619109874460451442679928123133111518054590903689906857563035124281989837865895772581179613183915818385891008886972841705736130451336633048678075093467823504227093126410572709039416733460886919613179531266050158915909250621731293417445084128021062886797072713086183881666590965476365423516961703200335268196110541626168208324611438451439662282550978731821994551709153050977893488513428040709672907660355043089024455883328643723198820695563544364727109654842999361254502908399816330430631997926485962042645984892245046043208015841040505326337167326655914543579904102942293390947114376476689108344478945130602358267455504526229062076453814496930788138107096145347988764072942736547923561847942961828777082706545231779033105347037404035615492946449884967948504235420572807816447240903664526289723222476244480642441354220950363048048402271468094541964045793773024227085214260271140917882103376824115590169587505992437152036970473092347936189393543008495734213530404095145301995514755627540096745637807799861953056761741493126771999186234198744349898643702615160906263557076913906468311679339598656041409912062018142464952952347293848628005756563679200512626039901121161371553320487915062450676015600131595983118247190194216670062930782224468007838087531323275323312404301613695287143629684535319375024159678697371499925188833606242211367378765527849407130588505274356989435683453712124456138880577363027151933403662506194931848465840504791530749485565394593982941680466303201758118391584682640603471087122400772731901333164042279039032222282890508336078983699852938468207419739188550662921561855133982660601498691323404402807426773071400735450771415629148973017816950312490498454100240015912872235429801167443258183528110495215984904494059584186639177556973801445665589143356439815296550470680991322219165400762681819751741909931624092845950465752590341174112330429292192650241890817713248838970542101166819325800700669962485281488818157977508678705020690320401657957653116181094831211649949945277388890885935764582649123691039708792915628224146845264199139557709828759863033067023502929186560081643277936997954854985136690932780448679953762453796932970442608946995380847533276962993728107777379322526904910885311342971170583850971747099420380428732296805735974381680345421489811475399163698440014248246721650806693448564838085167205912475773401670010118387420769089486433386640299422477412902973459677348141277981435329579068568430043023749544382375002497020921672356187730623754039349931803956577236014092057588745115352790109267894683898628352090008976349955970762184890095906089823807329212064155764291718796552589013259092050386177709587003157609325235812526368564907173353721862755829130280319500409405305305331841648233730908617317266018610198577589685133467377840036362259502000705280747474262466925968466073083842358977014412532064654608535115055420439587866171590747623684651900106896444124622669522971108287564533208080779910496157408546642972338815286179264119087395709067873357365958977042599896158233521501636599283569506356092917054955502574096366823897897315729915586593428497771657423311848868094495541459370729246532052423444073014721825300574829754471999964667305325218250530590377047154041324893389313577794955718547832868767644786964350396647632904449354312348085910484624006162954030776396045104061948649548209102364148026091239685877983010193703695879290386454843392145717779243149265767150935356997719023552883745874186609949889754571975235829131174831534917179154389316139076323379907283534763956686282525516172009373476290864146572048901392020871852685238209658746744509946375798617226884426307303024908961027157654079145008199710386528409779304472920549846910419842617803081703285267544334282703931935842449789455312806418201358430710120288220547401279040280074674664485107946374129258365993873161648284580806435190288522894677937882765273914072385099014918585619278265173422129223882868150176949426841906324667522692849085168429296984181261298291356011955370476605923541485795020595815815833557709656356275978405072206140173809591178580428054261315840104237338933042565107019928790577960735473944207115125644841420696518614135632544600005849176752695485899812216996136760572738960920247990198745454578839419036113132508200036990263753864712387927917143747100689753043181183533860857066532616540992991945902330919693824659492690209014103759241853157099389978380769524107481576546980612627263251101114442779572946234283271598769169788796771011645948995486547260744906917031883019006484185235617013507104119880493016732070464498791619864836083010901423300479984677427045621466228898866646231477844712824376568184255327458854893207905454218453768128902514245799251857847403658917087194904587573938169253104459459998061288645490388622555758239161999384407337239047216900826952192003967068255810973155974332383513410010199109133793356396007684670945453142860560933465847642374235661463835514367051484418573220676211100752282253256421114174074407257448390104367229317950967934777566907637820272508039069432990718963254885922292148346944530228248024845985757372883063539841435560997861201927097356570633454724839502500493375273872357926169481642755623336579171459401863062223261756323164003960527635260354642327417685448468763364032475993665826202976776210013704118330905172085219540489120481391503979936827333448543104746983560532193262752470832080053575809565588471141069644959167512771600652642464833963366362745730641439476096384274413005080586340623098550261707265492746444424770829844523883074859425957911292430461900167714594084322444835798390931767558995147984124429294683678134711380261827843759387373275141875505131426931183226133468650083212495598197645698664551891280785312889530905221783898237439514084761374159449314280370562782258063127783758855386428743835556570040498623663102534672505829517560722052194321522125580021119502902426449051350683615912977176309742075932205423622573139023896167318568155366973654832575078457145515318752932326463888276459637318522939040165582156132021744429061182852913152208850409088202262087825392862737434793098931183812981950001906737092739242630823497472241752436376557975690672894123671341546788809228149207479356684653889036194426042660102842431648088665487898956778605149361347786884605620792898701534351870052071483936187730549276714757667954553236727361608495977050653878165416078545395014561626866877903336609922305066680550821921459425159978717810994462907918030812393991887320515186485115299435307973790259098345005942942148493814609730744379861810670376962232031473029029938078803210404181919376235146867493338283351185326436254520019329085734262015854397112756046521686938118784677463343492719211497470984205149015974395738067803234781184828692183302812663545577828192339698465751324070006383219051955361305026491131144271216210857987045149242827226723527195915394302208026115405624181539760565073889919790618114992646977126455167808455816717154767637037766740774424153595429803411263931295777082892958100180587437273129576503263880408138620993566138455962535626643343938104680238584362734159147281985901416142525548821044444538818079526667440258642061683651726877167936757789797831550822442546804177172673348265591773731206738037164626393377403218350471845186245845118532753535396835868840536745882517348218330790755209017187877390792119206554789387456444872530768727532943852524072656609241125857228339136228715747199680880507685934809805497948987494916913295071256014050761356247711880937118445979962926018501395799818564723275011843156716091159473890089117560989726796521635967160867463381779434690353732853940772168640961272123899383017403218718138809514653766855206268130514040214010691743114640098531430786453644429786294956589837097370220474820378944405612967635570152578686343011739699054041267032317945718995315890899593396841459823814861811090982363902988574160044839814139296997990720409789988252275774462972064684242445380806305331418502194916385803786901916916592292196639946137334354246654760148588179067425939102310297266560982372776833234521650915285572440249461262437918108495581651336958691178633743295210595264219091363473395734153114335277290781919725388363458922985853347806496282100746054128042192274478616385479459750112753323548394191806856976491731824252985505615807397544001092511066565914598913509173701940359806628551240394198866720559599925169338388260955658695541031344876738439704103045548551557123750314406696298166435572451118902311770583758825100583203969113780791813451331616395152118441332006771513387405812353005888257118226917207801564282532136937071414942036989265403595387506953063180463954407776458690649051942679967933540328883402498990122175149899504457268388332412516744977637645869508349257918562782383401504239133412308597542167780602092866654272558208590303632347512801405361874413569514927504271660761582849735877313576888788730654662681696945627332900585615504752982486267912092277245457454018064509030056638715162719963689574728739561539968963815436315359297607304009755795057074480746614184651314076813197265242306834153769616967309783690284310467739747503745454631533088479337275455666970907274655283262115881108943798132727265341403895331630347365335341842765558800000608595748989696651326924844653732247561350436585957420568088918826354472447519298370487809630673075121400512627549782569902952953496581803673037790483776686184413190291115040236222212910168538906841111902390048856970606324948413281207592154479117842462480565507879112245141062299335812915816011580661739639974366729937371931195159410096864081528027161039029800077975714524917134068701455087937072167100739521062595294504950087580122430911643717185982599350502928698527464899430556852943753910321562073205553681705216637851606184407491868712593283211260054073821576408043197322627820242634356902054558273322648596407468461608625832216031022699352877839537904234650897781111411191662378975399083324957478543495859553710780932451111695509085078163030831876130368263090624712397202868910536149116304354740797534416291607847368231350455805028003561468702831199961647113826190260125288780767630699157359872359254765971667429578380350473309331765993181323653943097776619279823011915072150545754239778174864026098346359583104497166454105554115369122636646160247821804154799564146563836287307503663609337706574334053520592497447391920930651828184443030824166803016301723089180142160495123402547710095347570826279001838981527876173362832839410814196603321994496744330000107352396839135791081481179572109070351331621299613547086775020481059796223249346075697829895700447963656578565725968599741910122025560789797174157651900849659192179423997408411550611577562812585849083463121031819652015262897076005775456429224838702340591248916501908169801757534552631672387366035138060104778729039865995654431899808722541960226103839340405285577482625017148548575740452399709284350930557065905605122658221866727728950369423136039199144960453598914615384027690362003095841457516635842917561368989154887918883475786315804717844624053405748460729675400840679129160242396128046657358917067284161652636216894157346335603238632167485690260707801780871913396182688114573297500388906678949030872387633611560138435995874727183833990115496221226460386471087535212127478318019564355350678921385538812972654161575052296502716639600687073014150950129889758115913875866254514214364574937262419598634434243548848355482648742320453408546476232321792524656080563727818494504293110845929365936514296150183124967057714143768251385676265116669388083764909559529073579686130881022604401948075312191727621481174117782255483436542452257283449917591070204172536003681906733255422884333414605488049890651693191640847406964424781343265829045015391720190398531209398691168122472859265225267643127111611182960941307466131793682262741635235718486471620598254896512688895396584363537535645579983364631332251101941119875861886625686927993119593788670656788013056247417780166816714245034482409307562000343156885871071362695976241825404510405629669336361639552119733273278261246537188379817137408679778569221097563302274067935582180211173141619993063497342799869755755290708447892276810196081343090028410659967154179481502380372307627662899401791207591530576695536584879096813925308512668531982459964862098240937736191034964598509662977058285325826022826934599622222609658382644651549344593230467630027276609035821004275282854554932787308056429638551946559022149203127603804375520241270463733652854005405460556983249799899504238369080899540230412644747907776386181286144973057768938224794049166869968827650819251329838921880761499192562297974086348436966089594093726885300086992781855114190052037878332237984403293452436943469166766360459972892232207222404924924432921192633399122436347156199713424045802594332599996044166356221217690439152278428555035383036556312484928789032438026069678864422439160075624995541502019330534321494112109193730441257273043396536694100411038899101899828732614841119586610085666306648979779152779144906970406984040313768060224386195419481188173403109682402551761296462481570423839499507542881697751265282243686293476928359141346629484299515312668931002475696499204223709437711699129204651732303072305618805645974079601164454990926955883738170545921815307007446141790078231250201298523985242761117268414620490655030675946270027183867996437709828714239510185866450887110832742759803708522904573063568197900556159190151403755533384291386474636270198895264705753086152357841309145628293048845628627544261744291432078985461363555206489528566350696901659483049370967025023038415658704852902332595756866747221314042156212667321727968191514909497068145481760063316631391962366941823152368040095150698468198718404894823880792008016252391204170264439574509046165279603076339107877712030480256466726068089537802259282649502649987612670359045444500891891449450797201052166663889063958030792052610829136451537290507216372154689431651499407879809740512398594045215007454307725346620032748642171432603947760604708280575811477037394410286208036238647224285070852299815560469771450996062177241517433863067714626194606343889513047719588848395810941740135132979922334678116390991893433929168878109343693968856752600857496305490764295819731511710805981161533146874860868200050288603235443950089888066370588610382238489248646840938675484451029546221177689854283301053822861937095694134440696917994131013472656753506367537538694029233619656490624985772935879339511073026592651486242097772821571453388705602196363299690229392055069421063955570888144170865965369638750197838847674405467232535792081511139157892740195074217636576424842598876402548089929748756162103665345810228203087874328715379788898642189106042896114893599105485973480437793727023574688038920128778537583723395903792377683264075692221340368327518878333292254561143761124551308441808863174729300264027623862754468140562841610421360082218610201710356933355328772810549924706305703691626337365211712660938935752808022785276249057673939242387170405028788768925754211215540555210274602410362586931401815103446243157648635807726241521894023090900565961070380027422781923881996939819035033483313774012547323234848062895900752998299574072216756645742742141565869254209204165242759868401589721717391703309424729693416443341919917716170444911832899543817606502293772453363836566013550063859181742524274389277715123275280908012755323333675360977863284384216671900823067639376408754659582038648174999634164033906585417148757529289367047992400778979300479391842886770625696575190154873902290325935544305301408505424285613167092157131075932338917321404639243215431098155841844759891695236328800380198155544336641470427509058426863490992314626758564877959659999585497567555179027121899017254699748172072171466825431540483857599852671123365590133243251787617565935360429304627320001467011902464543002533695113122927569866381894700546618373319215376789183818346630939872912008600196312608442328198415104649177628666332396516018676702356386518728966209106771222910597050660535774785580892797638156202977343784554792784366082697420894772327773123633330580406135419121215281477287138108120924308761121660863407091690446086992249305840716821889266232592569342880142224765791440452787529563210707621794489051842792582215136744915936055924918670840544220715268229811036976509595747880797947912232446848449710576879032260702485303549113335704690016474686186065282735649422777185612462582257757439593593619299535907040320073223767585606727053352192229420596677835239754831785607678744805615282952117262978726942089207400650957632779758873171010933577036187017230481293175353417861416418204163857813329708682333275876390616140785228341668072213623789094606748636923503110042786479460945179912229714943120798923676384818278791103841710126974723296683500251496561058967438021982239583050258318766401879130487982199281876599579556616599678722739879067617825720328202835116481512020752878476433135017849428831796588187047886535891906226373791429453747632620378903952792937325573011753350659780386048937302346305323182219372897122697342514237407344858092466794419535540802222006143474793853743891362223619416922775263214164020549976786588801200021893447653536351757129514143092931939691528054327191053242937734921105512722937356401003891241804062060235846857191101995781243810683913569123843993946033438721413475606544150927763506672339121267549483693708457675503397976165049125614940293935966804592471299612822649294889762335660729565478121488039970716799007110576239482040685316098767552329303611240838666026485485553768724467957294103622810420261800311623419151625132120859883828668110476612029695268188086132925768360212179120883565436589131609358427648203906254692636074093047464343425998867245965625740799051251273679476062007291337802339745489401846209863048725937928241667981593459848668306400635523692771044663095055815944747260120239451523915676275509810071239764707448361164869857661871429014948134222638281358265263529431847505442373681706639544293949583075743494666276129878817499735878897768724038468280390321476316961351426883754997355112767629542986052042444297413688620962468645221275293021495045743608722329916581631487760635613784743095864041660994335352713547526578690140345682410523613113145411994419376274446004306693540994498199609396403734737914902467254396680539904130726568957007122936889339185808769813299038747852910559448677674328271765020130464723343234167228392797938527577962138950679130802939696863189515219645707176067075190513973227682876712968706549942032372171451277260402251697035326291467277400748685447066596037969713571485126037883357187475719227613339290040835975640941163711463412760363388721121968333236880990650096327217561538365545418864401479457382258073714138565816333949412743165754377562699813889496471442212627601843697579488151068845556952869850411824778188067275291445354519172652727166829279218028326448074888399860108280909322095276203807429463453892145524668570575765522722212904046564124406273904139174624736120180249473608781886896405119705485262381874251663854755723478794032778364817261791847168025983512075976235956616054084629145383953018490087686164240265877918681648326724729231153395756192415268219962485738664784439977393221663084778235922007126890871033100586131530144918262447157403793623050086266539101882532777235320037777716382968043078298699518261726206148749772343558746599737172342795504784440504144194261239579316373502906109467801776874169816616254217419827534944278066430193592147425635932352398545716080268224343009494894632579342600433729264936327630258777950827179465949827757279399203519129067657257339605490057012416047646053396460678048922075972564281361287825573725759388058828023061218088079966932791291380588356695568129260453948591988101063835283851575707107278714843497392381714158934245358469468400858375435254702682224898303789577928294830984986603888208901630136382351154125129287856765639855808887271616795786630481136566216928009959108739009115606857751216369835918452486671096123425858365401092470362435782803554953162343832193372390664235110647852933300133308029986424932031579344004583004117173625297759456170719626976678320212776693582986773687058877952703796693289742282127128325007899251959464325463954004075308210819515264286614704007082310014505425308356686824401902309427557513533941541118774518283955229375395463914109427053109089199138920383159673659586234292809097145252099578986432733739912313176418673032350387456290036070818791947590188502962680440348202420402672406648976934474885449586578273058850030633962068631147254399809168752691670745142987954675997898059956170415169789024003202651384794851694485047331609505018273186594907649366862738665653289880499931266766989656960996127831116400967066458998948113059212746959853627747990880005094538752583653248058152002613376562860643715451917389037969264417015648053634988892410724615193149158431262233231578588047084773527754571790227192934357972814171520014174874748360220606725671481409958950726181309556911800552769210352182002433619705552469329398727727491868107124451982735555047558982818609005204117758099371043228111079056241124030878490821011298102688054470063275356913178870128026805193136202059060498993991887810432056324994163556770596478894340792211993487274906935687432621473525209264429279766224131327014731612759976571793779232937733154420649793345405457150705429360213513714704158156825917233281060506658641097666665909272693636506826826195921923198683768938251801008908352776869387488201510054977223876133632243212757182631261692261352237813501701413510917683961136179853826385135105942639613682944784812043702944830062335197991586057799693295611167918085403112222890589568758566072836735432871601258494704284846969767186692149319792471201401802460106443514960727873183627275800492695523666162482316943005871386723676551689157696956688173254677128637237424351666466442415983229613523199617636230063743477311712177367884086627539360582960088737516894862614106082694172415183370159859084235658755139139933529086319829024852563818268450595223374471929945961770654234182641662974839516194908543449349968801058814765037990633174254806360632841804297825641442907936764271058109944012866559004464292509064875616239047031146731560675786748482913552228500499618474370197148883479971111408812578394768515470359070328150530704790699432210175216531423289130902400221406558188964138155568899952342716981536514715100340657807296860139881381106291829053589363132207386786094881565625465355852047351175495544752084318403120035809762513173134302391894070424248870985387556372747265821785033134581750934075345914401225320021967282220574785047262989884774760588494788804520177871882269167273350172330887295184588385566278554864100514204060208952583781027287413038946899741784306249249408004630790115714128954923686525989723168846599064948178524434076370977790580846505918081683548191681431902306366699373458368197866528360040252618314970572612636882906451019182800961363893781114516236150903240456646111733430118053855577909533472823250376151203492584968729535190360693124098083141693460150431967279119076308930544847917848765992531800213546940917477337630601790907973588668471103148500241709089610045622903670484259780783579204841475745333140741880196966208298910481084131886268555971080936402591901919748098313467685034809189558308725487796615681053739115302262461410551814252336280924754447800014681940224589481329450221939302483039019087813145875999117504797342466997385367492286615316251322864048208416748212679603273228857733362049238506752192416594294713220028893344222568656066840269128227221107618837961710104874974054547711242393954016531436341984610859455519319157064339933128329273285095568604105583803201800057896475180445505468004536874746084197302576623642444398184975655399240381405264945643098786084582087542855218611303469221160542186999702575309396433231112405207014032496851514313555061461070097304142712224841027609731148251230105542108611837105803677134309185078395805859993190188366338003594904468443707190156971489999067701443091200034903097086465352867107301911223076194463334295864729126109012218100208594124335589014309250396112308904133310642423147323642738080424073307082560769701747134949638832419457558746398904993574773524818954520354743521456976958514740058224350018589030656013656308263551744731236156830357277390112149437078458157771268699113561382614796237568632127704872050726449563976681189848368258995890602116466148565823559446978297503375070811028185509380927163196312069705325592325554382119135176347934540186219397838537337229858103925920119704526203692038704136296567559883059006783202380092148342968884111786035972453014120843834413904853000503875942990866575746194595327274681727685833054067125601399521523228746564289559728593380695613017416768819106241069852409348330545914382524545208675621101885526751556435410410787206244142707078371418065410376737550808557256400263933088040199291966978906911001335035526245103619322197007721605073192621600143419722760318762012893484764673383206721431344789972388875270381936681527189032812820300927069355066463493680957195296280907583095356736422849972596938011002537355482706158895847455754839395812954111698345466853634286670892885470395647892704915965710756976229753237370182793508175237554794990187279642247654206526480283555340161633243397285693829192547345060777848787983097115966887719350669626379406670336546912688807499106113523604340798138153645007320515805831902516199537471366357318452332154034408029936402577957714763438017716914350749728896700871349678063655894419264993842021915255006625282292040374352384360562486451927528225318589710218847892117700146462247818347325984550715650000361274457247382652656129481383622498895854041028327751149353495421454109549000889485963824370890015150648721439811264750996406699227179099592468525503207668562850654945701750390778039270773522590726751690671034003720889680507909947045108210599139268384221285350253419558241358885538761448186652664159874649560669147833723919730646482999174472858719426835585232554202487565786619084283341996508346146259061400980710047694674223961146786322023544429432641504991745839032978317514891832860517941446500158222420501756228161998393448662884328842894814815715110449413755684272165047223102481452951235561865602640433832793014167850021053465286576254046709352974272196522123999290526460517144286528097679222892897726972076271170124578035501320474974374961322495274069463800245864339535684292172559302907890540027495610939558903419494827059270123223953386340219356091131660664745143965460929809048187299249157500113558533593685906554742311900918176749546378086367682151301898081163064495401222605240747596466488903055296677579063252792392857401630858298851229679689531614959397252925175001579925618397668281255836454356968112588211826324110355349337905205029085740321179950014661358180722156372407327781841045485736345333367027671183702847689893213533767709134053357544451687904843734011461853988209469570057021379207256676876835934271170143100360351253770875353012748592534814462550309794395715615775963516732312184181541338206843866922391008820450764507546268182786862222070015184045111375167273249945315552893272269040125924653442349339501299322031464979841454350436563776793150256725135069378122128249662857846428416338181558720904382903008321576198722855670470144807588784063874584281916581647037994380227608214034346248583154438194875373540832982170512781072784209535625107120494842348672602791381120058891027295429430088156563412585717123061527919389197412109305000162626478434348695827524090004466629394395144267968446012984345283848784757350169813061419213821885168223277915876332588836656083698216465782722989189093773849204161969555097055244829815549969207715385247458160180357785964835894904918753211989024596369201879327447683506977734170840472936348525819912902952275941110182396032587319217719330431594835117052438958624200260891929665970872636149070129267294585653187127299589526885837279745513691543091473442484496900638856441206777340064177431570865376409890488031222435709495408528419824156671805348250465827496130278189624894692822585860928945703823276686670528635118262020144623697691183928187122149957082311628027360349328646487112707697202411118902908302938771379056034842381344262841804300557717090234707897419063255556895530045100787852560607529654204752685219455670699611047812983886789807615342589525167797196590557657095625682312200848646975047618793886044934274975923551523051709041600278280940012748710263732840374372780599048883710102851429364669091924067053403699946885828390779229147844236495557206781130757036322031737082219348853824413667411514743115672498436526644511820452758802388530562940752545448173427810188808938235429439515546700004938561621911018941524836724794801857912688967639530837352016945106882413644183352452081677516862469894466940508642754709890698446231789273941650000664339977536704045175618920789140483824719538663046001073456809064642331445772455644123910788782196131951748491853294561772155493223256423071545316434404660841001088199096269690870082123000833205953664587872348178293665495516429084990485916639741276204058221164283079497496243305388307448776433740497518294944002778759768273944636809270986602524951981037675909956009442380083537686774344307779089822964776913965107587973451091149778629234737311278933531752488832745635497315222990336844177307001771391319899355844703649243410814166956497709545296829757777570418420208603215707665669971427333594247646057614605999944286091203186651775650579952713707319304701697252139060813536185431840365268428066101730330706265985247226143566038818105036042073553612826933014350783398805594859396300278446855453144338615128518865180178902883450513626968039299662194348815430235051025341215334335347203520345492683555546831453049127512354682263578964897593596085370686415074207168222514616605365424169222314903393635567415765014273883370052632199226964475138377231928057365502717477163085192058879841781710448976333054622008746618980728081458793401756765302378905708334288992984911391042110045188804060180934865776037159520821906759850886389231325321006477018602695191959478234981730187847443860635218957500240273108287064806573283506647209498136941181592752501879651378734083276508638242844087446994738342963986612681554080516543937140568770836556090697951635124738785127324410228156020043257761080123203334347299106941822629210413153231175957452663985454844877093693767140509881960016190319161050808914972788044565193271317476369185692156391065453466491725443137940585235172072019845261592180373289069810236467382835175103795829337570675460473784044717632170177463087055517473235778549569358708872153260770915842582784397488550128907455532865494781743508069417492883073562428126160564987450542082078480506708669743830834775158409112357139005052307671470085065222781958579669793366972423376927193682569383975300035879154707271009441825728791377278827359725455452272090026865768859186501722618091611989565647448197785549192004964961597758116021236934256599709047747471814918381926547774199241666118873843342057362802446139641777725111409037040886106262026637801399353886589461599689290372397235024845528359042858920381779410033598712489213461770557582995072439844064666004470766345327147996287030015519464029845824375020986527383747810879880414972957036030341282160342165541444766050903460887489715995068863567376932760526318355147116785222059233926356417301972065276686830384341498904406222059441200260082492768976535296181201603846691829240428753907257213796759878973310627258548314279400141676075882601127626753748811913193800095765267459628705948966835207371555819436496425238289432049466961565647493508383648733684600806061309032641950344981754234453856114567114286655730236065538260881765532966127349620492689945354569107760904221081349345841806654347088925202592726067791007261706096603209261048562006074955717450527591286405265689403472279115383799487745853116624001906924225787161123024848571092542681690987544146254059914168719823716237299049363345078176759176122974519445348441912142207661335336517511510744307625533950038206562225102068625145660413636210888874286741257235473508250710043615363743532149948930361129902924429651349914421483677164559126576896156073040816139202894820686747398945082137885912996301920260641771890270241373799407198641848823072662637454468105588635543247888403392681196885332818372158722803093939277238981389360177960146154597055508136498543551182508315092841734451395827710315068407735849655953759803046638891306184814542712743757192182683359637881278887550565946158408662090739098125900785081795351126882874515665750036054184987798685717806430449133323188952286363169971773344188514415626241274846624824046937672286594485087955526284132334500093783181543092291921738771759946553171931620187076918406244901746504499824149338895552050265673840269580090306737599278674798236208215249830642166986889611411017124923792062842374764164174580669238329116893673377313907563775284155856193586906064702161661339474448074413183784536008254075945890605788647893061411666959291969948996200956734961560187556600297362687760406924006760497523579525168939739206495258739591178324425293396643310786752510946019950372049099882205608690101779226452469278459646435185140472168977864117003582854455887846139945229708679029740827618192899727472074050372546839707869666592235938960430784774248987047142228996021667642192027432359165274138928900501179831179933512493269849066191638445054216221305053527671125301040259292856487808828881063028014415103421835039276003667008622839523235206887410452746243885344317300050644088200257730050118184080952389786476593420516226750208106129845966729136695034239543426855303884391877156480760955107838077195898683539141538591715275779516281214831604561345424422359379998489553428829330858957907553849967979642551948112340895624133307807621198017913403340281157896714204168099438000743182134874367000864790052399745770780986744569894931661679593084529271165413160024265589786486735683870884685506144162608896850113524834572682932283059140954761007873846562601955331414194121205382337421990906950557141532250122650834385830575718953228535095067528805130280510352078175322957423253805515157570043956629233923186865299118297574085574894475613420780860169596266602471242760071224344660088078562421086124386835333173273522852194245999758902884706028262703918472130877356729236311119605522574104169868183103828877161677917842903644444446846831025215189373816578075113746364717141731904490299442558113190366749660461187372067430450563224186699408476080513819162869942726489460312049072677988339950889829752461144832338009796691321891953591082549020274462649475957569987627275724628739598762558694957974571283189049286255542365342777337763548192068765797362756090518364485927259674561416668857469113219189653081302861406164112187964549422169156539368806317865096731947957241671066536881335906477608803648399025484218691794468200543633508928344340564061051695297012531009836527942177888526216911636331447390555759311793546614319677761942754746924515705464320114845563868979315332098340483647957489642878848137639579681939015815230690148549517651620873778172476207846902745534396059830659652115458364478043806183947487086589284373867322852231655194487793893381980615349253895492185356823494324268963062576219885371577202950461483708886689151696287847446937925986619637920302288932235825052053251850735626575006937052625965203394256332509594054170949522508723908620900187497883124735874140323589134475353373042905429666388550599734097231125202526480140760788284314922808156038768309097156301609579832279665577380446002649337295329015345470935624894789375442759865137614719244790733016620124755820918033054470678676570127222514434532444793043569427191776575884026907084532007515038571111734524924661139774259932565848514967007268697685504211567341304058048142951816597788070817670661578586983760094208334549502477201246016895458031176864326283951763364095822764899187700890927953264482204789483267699829145163326440220109148073239106424487687784220613812166714809261708312413166875909363308738642560022245411572234655852955367319061380442082495160847094495911987059976627135311760479684106758491127551300015032952488295740843586161324766481588745102213158737668362918095074300351800409350682169749572940279259954116713207873103963735982377159346482968243860155671942044706497484536420604625647713427214434127192311728637184429664737575753617445838625427072588429979633351276623012935318826834716761179577951185265864505453815116288078489789287685727434202307878162686134259570843937910524219153738202058012045274189989554328070515371067754687127379774383103481412797402710661323513904417314127072309844506850456513811979019487910593601099051142692527475595127088706574253189379815858337717000984067472689071177354586877476475553227838002310338206647300978874143615221663725719340543395400550250956781245386992264803409742650494841747702319633547205027534734346408384679877580603600368119266173873413795097779232839664004089184316423143894542078283403174326479159375636093851717986126466317835679660083514080265792462616766449872697471261002774852769899671406171925046592841237323559211772198871502667877328559276973418100298976740374889457724407049335821293477849163640560631722631990853335267467466888547325502743514395625482063856651408288180676356959852886920993294481168640189610746528249772236087209851951261910642811091736451335555221463101020677284153971285567353989475870039230648439026559934399714904535052477593104732766242601069578157459548225370851099580168598648726659126897514505441893301286591731521779045429219534439954471067992813956514701358995312101806990508219964315987613192408195851989249248256892852142585146131301722755491097015558256314385881593377557688167992662902156455135786925657006810886573946374805658740513657947679900390611550146918426656996795784840347988973265048004682477584232301592886442078736700375465448860533809306410873551626914023775481952145997816209734927426410805923248388267976447182024359514663419316530300346906179605870723801070601143199915942141387487256263439693837904658134094570544576353214931658322176472011447897404598558228742015827627034480414548695699735153551384280895686033186649484185155051106337833227968893653825974155417661945029271097301708417251228617302847021825755248470361756267046714155304048338881661777987098208119633848756932084998061000428065024540927533885738248114343944616007778340689179280296959646755128410427895375288456901956233523049601525974513804631142432393472902626119056139402880805256982750209681897358652722993376259423170473101831003136775425964250054170489984485280421822438640408525277258491685321662471915538766302130191058127473584531715360892817036030612260231262384487033227344440929465435811365391938708420583730111125323793314200501614949918076710553207694848143492322171583390556798007596818861245982549309563631083673141621648223514111746686846025469702630426404778662430525782699877700790078604595863827051062936271113674085388909781857252378057748302958422112767657509530813554174548824678997323466101081011953372303312821547712339329963058597211719543307617816902876423886369602568224616053499305019643017690711637441198678645294595785041663000718389046881234260405591289295448158381417520071754849317192518313340766005833915841326015698898719965049333354103621037988984747351414521780041413599663180749297671587154235642788351093001070917466382168146901313371417884483319030216616096048259430344512808393679100204997787193340890419971047829059803679177786374459525633270324125384845489281084914699782480408064382612410250613555635053277556930588928262489039199130850640452042031375555165003393763836628669348417552841490012790303800960938550075951457848696942866944020938318188505925137450176032694205618262897699379678648915130470265082039731514854039674625889501369360620020693056128028768140444367709166088630699247204626430726459532540334437672331864558762199760462131560098835473190354927946881147553467143079187244187577712965325397333839330227008499529819157511224641107685949374117082176837739022051477174428534269617715571950358556387530538526306347122831642880363115639198693939676941861136824296376849968095987389574281183123970740189784000565933899597713294103270752236437005474861274775928558620975980232486200465901439487005455136614935138721908711498218327593650988958540090541748045321699371971760335187333651468182185738709534564980233599419154995964889819790555449344393626218043688119154613140246820519286182728591352457134716357975203699453917875778913005744709593241978628574300170252595504332195533676044792440635523021267571091615751547376917676155565337614388705670140461662482541580417033694417169289542564379695750049328119254670413371700656085377689640785909032862415652600926770840711974787108879118575595589265835346005215974466899113226056979838424727750748284925498306185153034180426501009441356144828095439393337708460033638026418497765911157362409637466560465142746126661120296789983917938472866454294153211667693299485620245273137351820787043745318249795378906859891984460441033676001380098966058933750188694142896108458175816634675738446974523698236658166597016703944126061944092926604279064209886817451403084253274169448917254586600537006874110510597477813283584360951361004729619116835858153955408284812786801976720077936571820768490958275690857463244849826271541956505366728694502628115832591773413014302798110105052175679999668746311656335863079366120135390351791833907936594242735808935042833155694816030734354277638663718980278405544799836836656628554575367253717777077855417274433665612352313455628843137750587734117598423376911485564673503888019856862116902078737065480958958326156293954962132911922437022306435628587225485486667441709417934427461339656207582873773121273234056317964394567049277355483227031553499100275169378541778060351990149729563610371805986841340170007389540965096732095207648830875999939255739288762279238905893557677467528379003656873290167336652103138435595057225644749848263462739236736501100521417966953518487935544352190191800823483917609844242397442324230066676249979836085152836523887916840882044677464900656929538149303230442995992518390525490655088419826119633065471000700114442379555272583558144985268182578984363839354173145620863795805319837996285598307658087176182102341996161034976818581864993136578051818232536670427285411752524271902640917010595047779203367715715053979215055651394428036871383514083163658135785031768350940388788274381366488430736284307000079186027066712982247236124804183014814240670226439802839380907432577946552005993071725556890453957903551716154223604316056272286750696314344798571174657113352705651152220172863997700514312673393881415500146457693946436463034841095922744700141913179280893562264521290004538255544979625910278513090660236571978867467976242494215023637456538546026908469846648622489953229959031766263329465365511452465359211304284753333184551529410386307901432307308035750620733543036637647886141457027751581208587311903655599840767515277128221031296896031287745686591917208936809390331318940129956062999955971656573345259251246606671473102074274290413508230482083615547053635362107769122309792285420515411764473620708275882102754498846368055407345407475698243978096673704445393892557086796701883527184761582109358991608947593716478714125585907456332525869631778385383348956154362548446955924751338630272085783610039592823556410944050600993671943195440242376992379070277771807643875953856490538034837762491660724420809386719025900039672856796429803019101337389953518114829534563675844694902427845230684914967062114708805734357401617711298310638058771496965035124023461669810461751242311609453374484668038582422225307003917675970220176976342510586779154712248590513094750126132342386795636231000702324357337768589423363911486907336052202879595101998447293483319037325654485017202219819500526187314125169323630956595873859478213868469819175232295051964976210930437447016570697006046165276079671290116751721087636426989888207820016725704394977479433710366981916255541071537259288791506912298402430750126815871614339517538892548673189565565872294603953003205629280527509989453089409057436845160861494131431478489731275180749994893257628572068040777260786974480062065528093664352635355850067863844617698492968140300479639044517199293120218185697446959635001096807042307150729407687653461255257119202180916107131584270136517949740816512176943452670341589990144686015857046468079269654852680867042308540483537482826307663929110894598452971322469132386168787815706169305172776849795567752967800361481632697481699515923405013624910002185912108654293718980560566276965393888151246450317645789231349299722758143707434162173097572854802047430137274804884525434000623133779995853745103386454127157451735764486369787426451571576314144313124518795918351472141705510845090058095225240354790327779534647783810918289390161709375602987610007928366522075725442589633437939567410062797258955781406496965188562046161026109527311933117045444902237722302247359291637702567589254982758913947323053911027197682964054676035578737116024221748269472221240055657212495814225467014274421787929352949211026325433676813927786045344999813479029954558428457804200633802173654932110221169075080447529955454362538487616304315181615347840352049397895727382653198518991272522391343328575447899151051733733930575382632358204293531659810759069784189402483313157960414715697987344004256500380320300681724109421459159237049242890860464024416257159125748919939612824293823600755618350472024407329459809134432663278450133044437176161570100499971623659299145923836014904358574785625059420302393078019777012662903139219036843825418790342821704575464574244836899533146814311887386177463193907005523906750561071743701074458086682057612611099903561624837181171626863455392926323864868875279332625693126210092800705102233795863780474667257457870047197148983800537894341737963621336214404823488130112199437496335775302907878467015907786808554436810343358782099955156802752107616320697843286163290811166473465369930924434867915187754474752032788807687807869385591902651153517389026393694941744739373494788472339016618790970272980602030114039584948890816094614409246474524315410425421365931405528978109091401904777143530988157639411754574800589767409134606136688791429295332695307455234997709933005956054059859806628136041318864094655520037848798278820864417146792469809756931305329406649722306331529934435024098600081474067411352341929787417114272182546865140403273770886597186301576530411847434539179606485992198197042016999645165885244030373024509717103828424110751368596137045703487626303153962499808287291253993797281875008865173782825522712101816592391852890769750341175750642677048557387703115661346825441930556593280983106205755318012125861452765616161917235268801328216438300344946250048574789502037148621225072211725144363232728744837263035887059431874610645123963619297334634596795645684343827514059187586929869268102751510306472220912503253029574182298963217728947916543043224039662276276037627621391314189290962453493150369303920123830170455773793585775303073151864433046173617980662600398189573151235034290626220741723723668435062496045680155013358350329313792669531531738112369522204764155882349788848736462388853387486734955508106859541781867863932495795102224998589566386836130038935378274968747665902611992983852594350289764247216037469438857571781692390761942778091364582721857779190600327823789296425999237272335711977592444040889481492363434053785647824276220071435110905123881743117638955646699657849542248103076979817071574557179226056561041792463656654949259413334228148213825168883605466681471898815086453416301718796000288907654103441078804705206912813547676990077187837164481039370927724109306423586777895266725853286570011146514384073075754634631997510617634280935641552911079213014575859162093889558089313722225275993462965359976138844871011234766343191516933812296512400384983537202358994914414612153817396641426954015171098310140255106339375596149596444148451128558478118047899793295999559703884857071213487021650277268798209908975468849420280721121506992075735272176232591869164629755861937518971659036278310413206627386225198895546870162324949121189174516871930427666336809918059270704801659971322267945340083107181714160196942898404067563465150948109134817178324414773755229741320129113586019970884300341162171369632820508887365036965794104675654438918988553966918097290277549173972138521860837482832433405524129342678736905159744813805783783784575732473109328078921117500829246592010587009301395529107313817113913421088220734060194888179970222562002393650361997057737456222449802933800971003495405679400262650802064272601383999621652615930435934525245938940192971856291396161978985219314120116336707631575721342300611555327124114309548477048160028431097682127840127840648549536497244757331981669380416131383948396274201015649903940527488979069618578549015884367002033754939143637998191955464402714057003222632311145352477568601034492031981670482764262046749227116141316704523848444936141055926517522490197272265432994596598847559040249240416465094085213329145740699464351415890677478947711030429170286245620488734069078201672364692005574043657230596859042801090447077624683185665809825596333272705077987326809786354283775377533935022797193446717573604071569630517533580994974224015962466947143964030237652968078261451276734790847510750632253905942807562724942700062357320023143781842029333486084744286179949207941794617472947423611470018391880460160969571477008246045447862164281298546412997943261833237020712970861535139687825750526349907086236093610954290705509985978579000124383182665375076063132571365342277704288356277259929066145174052251544740340441597375399679384093982538772213014415598611583294488579483678394554058113530579699684871572605349806539458923054545674467194487094748434580551149683749277386817788243106757378255441017222282422623440277626875907281348640378197125694060416055815140610221633633415886941433339924859629154480414842944259461403302425809375087895720819585883273813595547575039439794493513024950225050697537590737283587675198662354449981810604729079741044725662474057971623984510927791994567495345211607845457790091557449506751109578304230352426115162856305116937802172825491766334149516257397387054554218675329539856962296192538690854255664493636766913524325953721306390846623717033062224442419813057347473570578957617105973033051816516548175430698702000798539222043322382676618318429635324450045263950764502778953844996954240915029348918171534221545992265553573112615518886871540215064013592586584899566981326392786223289059884789597058542143358990722339697961032317770390599969738225141310523119171468003074483160626448921578669690456488756999654118578984049290329306729854008146724387467803211716069418890678441595792235017441862256780864704385327282853830817842817359231351809919693464826212459662247138395923241403345572500837876758552648678624075826979121644307473769684550154091396755616943861841954900337793984990976711349133230113389294153232273618908130063404328340013805757711035823260241862339435306354703038627659430913873811643470574680570184497585476997393360327416563625919369238902591499131758801719131532990596458696016897344752327325683458480908431439670139287584337791735979774259069833846407759288754765201785342158409525632630423404045669928706389634842091005862484332824963567248922816044538781947972443763361774504314114716502665895111703466228805028182258604020501439651939441043922529766085361917855417681518009287915878846485401068521306500293115979035298125223107098207971693346449373536657822656725550829400165556838042291993369691859633929113324274532586717357147244338634598635451014669437514160627406944453608817482972047495237917614161824655952256016527398907801308793507188143820025082545558199509092791297576770942464473259488662264828998706769001851906535406606447158310532796600509282342972691178001737194040589420139994812803567984901193007663446163097073235260663569957358244522645750997978681079253986913377579585939957177879192976162443093501246888132897896193258925013975445789738489642979406709796584453998781713588223145417277098953647914059233304031618790080571423886524307925747224638351795629547693002874742568798266275525765071846130389623572884292455767350455496493122924609857812006030544292254545263672765334361365406127879503043074977421859830516719369503697098505543902103425045083439895427632682494869615082124742728480372002515123352851886842848685813038244818074319625464667439542002030344206601490700068489438560505836402136559020562339689945366992014826616892108482854572236869754305278940336955467203497360932333307203243084476075308577306261873786478478959604644050783393492768373861737545468991704318747660581217487581747856907651823534190417201016353058976556140507707735126480096603234351617770658407534286701508259570300184781582937718990130617765201125294099738931364631365494801521174025751187893930610557775454253465035978278699903643118811709703850345227502515325897500892185768948216892984223325296662747577462342470801009697184971485934746247479507630904718604097906985264284113873363861528237070038285864422642947055501444270190577635537945925595747878310633412118160738606311204123046703526812374641069770136500702631725406583964003563672966371446838411695663763539669319105630432511143621081902812544889185900240782021420688435114538498933259034023441113885819008424083229431324922425532709813874380208796821459944631628441784996859829365607663128031634222662046064316070235907263721571360738135736528670910580628397162398935355098719581920888383729043698378562088416563612002065265675389370952833017960811468293049798056337271940148734585732467962868464951380837776655305308417508015425713191580358321448973495559017454447389269725501628666567902742546054311833057156414855028729625442679338336400877968071503237566848224466220653160660695619828733419417485764686094484910838140441613066878552233165941745116308612040051864231451771438341539794153251836601044147553445297738101274308593296001563274220745384528952634099724957510296444378649573951099534336988052552809407550996220839773685942496165958033072937719279701617414323057138060405335276686195228829257652921603929142083028807579901276140359009044446479324551483619667576517245905031801495685646014024633213603479875658690379865046792019123832082716310158385925611897450820591275504366068461005463213572654396949148177885780010102347401232177881247933279906039373353269980854390529110435973501668208044389696768751497807024202212074800306211912181714373836417909846433183625014136328266460876821971503232448875181479782014606566242788719284910501750556125168195022921871965308929047777006653799112038851160281643693453454512198975634844593784447639730240749484046924795718628199690324538831581820408552417702401702636237403953201774089015843692083274023432060223473674268465431743796872266428765591666932947691370467418499254941548001359246953004855227920195680943071694820106434833724297511936582165319117539050055163711281388593190789580654595003398922573439464858263308780935886573443984485322105342812083420029440057513037361079188134562326505283770214611409707570065557833121306662709991547768386190418175023448997428347465838710474219303639479614436924741446048282381159518004579222041763149959490869017682871643321215141101247887878781729123788006180112823149670005921259918850618395190655402824069971422204985904998304244548648321790245299491523173652793101266603547293775679193970107167272194670193917194311351558200521311958109145340731501679891994677274628321840265439224708068530915082985900895791799402177890896084500570516979013740034411443280342594425254400489649734166446752023728659815216611588753046499289596779984845586066335762610453803800718012928545587447297477121309405865460744654790472829129683511219304681762561760363953603915299316774959657317937266873887018214502478927007825706750725234223391017709412421730951567181820336955521987398800184387383415570935226988344276762380295872437474282133540793641271810449277909559980572818844076866633792682814952994144304037814233572442103337538645070523048751434120531210623242864173341703169045003557591670016398245521956077832749950832666276365919665166590934683457560942285820372866505367785184939945689690799653654112762571156841581622417020544179077741787502266443341537666318446387348894097914500475915760758382215215743376855235377912685704705005147122994542468010217035859429470655253337368679185206975496800763071144944739590123511869302927007773619697557289906118152214932132141039609731637526916343006169843999243759489734909344197018299404626977466019868076638850381771821461759492758318754300109896262161001888856437679877348507420980321672029427575897837391500457778834328988817456460581083940544826489356041875259983918398086544154972713104899398583634515350040568725197377191001763612232152214386643670594386299960300973794026149977700701960543784961599388713114049988417683750586353279056259369784578137168258452035142901805440283587752238820092170191182780513611831005208368451212276186003298160020784148854629860897455269522023086901699145707704960430974564837601000154112674638271914292999686043675084509698910335273953971501601065836663036990606452528328383798774052465709974889917648166607188429282927387023193818578833507927291711727581469958196616284516722597145818928297030090677353264922869786325544581593179131727157461317040546543137279589934064603521127022310481496625204371943089743010447364385243121048559893519188979812256396367176167042754642463659610342246639910440150326185142669100791301694645311803614676462282249033540346781331529400906803740108077164959213921264069312608248911701858043969634035016914571344952742764429381332233994450621693567997585810875604983728763979578582933086419410177165904884654539709752729095242480335232278865721264502838885255682380965543791161262077597468189281566972084456690884520530581543585243309958756095022659527726493556999532875966077640667057533829961884980424179673030068019291516995895082929198505969642214995698257274387806947739626800155780565184709427759320415993393817361851797409558943483157766097413336231706453141760107324763436701744312507471915512515980325210741663694154757929232340469678587903194874492319217786683099340167444715256311366400763793225831816518725282274525652321104480161735259546495422343899245864190399979087765005863281405607693373678878421963169266230073192464937147491132969685776557690472227077591341147070053896574474667108203776644832710470974460054402605784694679112385988666448650396805228102496125473965953320678675453478356037320980998038134389349379409973230656176176049726893669605911313671408702843063067066923553069825812241084675571888331237221533046920184521967536845250316300171025092157339337150016601040772811216056864632074670210404104138155512641124471468058004499786135791983730010586056166138012307834748420210848416064280246840129096238611542898666958639023643189331962289671108413325579173744981011334618157461797390810028006041032088551114258415082825555841108501484512979830020202105522769031090909791855311720249866549842525403769003821805578104162303488857434454124357546032789687322305938850019201632584895968532487057737923258836089942679656223870058126921591725545865604201199570496382853730487895397214610468204110745371760450464330985543957764561943162271540317783086864236430367908744354785570622800181057504469278264990563159977867386768474383301844975224506781543101436276754340300552041491260717975904356984079790351467920287678130523543947327650963385199500997073805986680004639752646753793639829293914425027299736165096726885343805502586252472301568688728953580183927734078102886723835912887629657486275531817710776297259386323876217848375488244409258227469694699793033876056840144527295310240913427249089493877658062738911633311275178528337465304320608989550220517975148543427368884546790451353980142965353867269211223735432910292644831461875235316227326383318523624039550748866685135254263881868924261603068328989323128258270950617877747776124929101362103191911571225679612716165474896605672592325594634823422739122502422891434221207633118055381453230114877347097231052811035549864486818503717688991250571788630200203054078323450631614087832643378164686905103018296086461437787267664737350568673170046354326038541790868969390559397308322180982318497275982917466403839224012019319865902532029048263058166165515366726415883509694382858675519695874121219168999223451942496381406758081990089664246749036801649950690650578183282517388517838284900236726395513031457724336434936883548022151804903232941660623840085859845607907545762062992157811683515296073148160570788380369005774542881998467847676137155390156969888293659520814947223269142215077524100264322169040726108051648805123956196779559161843218199665848616855231456357251735125630488857529056320170691987063660422172713231827440057129446947207066471103888294805685532948390117378895425338472883303709414246003062347828513576390709103382923899008413575807537705762682678921685653974115186184029819299771941297163665847672777112781050450078124526637937656963570546386162033079456861870339320889880778348175988886133881590312996495767860215482873646534164863790085888742204439431745781928726752981851093780873108217593614868664063156877744516869932617593003905758629877772982576042886729917344081157691913018146422880917737539043654736791837874857326517369397338005563708328094145073874736797969411654771237428871033783049076633353988277405641265314613889488164055728924597589684489574676846980980606345624818319655891465670056421577881697542086901083246574686071360548564458319941874387066631028941167573975029818061351832817748776759181575643080224060184205413562391575165398752017911395947469337089556780406461117501604649222167766577688083134426773764913672805667140229990750429912657957848226886506617633466210891299654810443069736486419930463721936269638081820714079972971962221089659182849833399576011913325975696568025399296467638903191554586120130100715551432365957127425125705999552837789841570095126506692933735512121693597897524557213021233972016213562317240150628068069698251917705367455315699151939841628061777587150954975264081888018686565252847125657663479448490113327761482026470505436547307739328511851340691611984830355950818329923449452560388546448561258926930292372078198748532058891978900128338311098049794836555690885186296919467117574932796089350747236659732608482682618188731478764283929437183443953901818289325259186411806922733614414810149644836503834644392061433645214167003891947353489495155863361239309707652405228642903617059069310519990361933352880930862404314318880904102713307486480208364058057617382755596492352275831426496454050044219992816426067787288583087550373252893536150427202385586162130171434777434878397838241967980049832632549308099821843278044297928518214890865080282097639435472881300667579760440959252470384693266750224638020120186442843504416748710535751269138693138320470872414419605042934710805245691845161171564798501659700923112798133497671782311943722562300904565367790609034478952748149802834243473957404402212602917643382830725670670258648013806191273468360221756582606490663938789934510574857381684552060434071871324098442357685500517258174478615688644752102975975753236445831050908320743798949025611220761339690767424280624811125305741693806235210456279031295307810901535685590571176953878398423381060696794908339799787615040601477916532557221067994779665809245643503140935228884629396962967645026229482764866819168871391205864684793785373627108488769318807834865904077428002141013859717604577913649034458416425106907186516161310789125757937221602183964893931296234097512691609821958727896658929245282468797001415981826538318125606490937697213416299323931762845768765653258613231417126114828988198107391048961366739917460480497219401314455102350676360828619642013316254614863146739190045200274613592504301156201344124634457786652304840473918617223535893859884880168264532857451481542955023007090928013430946402477433506978836540299082629069777354425946233158181320172608384860403879677763734046426883560101013973724018073309364942147437307457536704488025318902136255378954217502890392006171756558833167506517728894660928158915692028764752110008379293074645107560400724820932483036108681144339534642216212861744287176009860375358936332994739145987819003617186787703986396947245911077729522691277334325198687485464215801325003658079007076556915397916649542557369618331234762665553836872644232628498167287115470902303995844344667495529154168347874553062049523311194081872134043922167914257284589911844611780275532432735434680704315885751165449248192248283746891469662255499547344833624801689216939636078798980435414689233451070422370100712641572081080745748104800603512529387298692279267849085875048762601902047264274143464025106189826833887625470610355864199342920853398770873926291105761006307771866380061524038381150624020540785993157956558128832168579544420553435181596137174312346903358231382992500790213937099805971425708758163610201178035744490413871457010679469215837836609751361077569269721447883380804474403341966910353514206993408474535663871783958095144204979745181740499387700689424616366266363872881311912986404663511889938941755205396913238867804304179555486671724763770789864233384979283872044124714333601030297605505308284447889791453000349355145730816229260643781379533895682056871366735508939328626211769675094887816624982364273703253142505712166692009505826428421944836856137710259693502726451516970726879271497907081590154119260955953522917734003576911630920413608388063467519344702462958608849685659841133876791069117486192280897412893721301643488744528745019753231492728046180695112264698122551858485893831704589600283353663689289795244184966190560024281883320972915801357134318936831720535571842697674761726338512876913161261108228144974857228914670607362561392560675216810672972946985018079686116916140048948034350603622302234391820039146226620871325547431068112205873659767735367827331610190772569458068127796901056167401861137313745747807605168790542224177531917660345214872692081043999886575037326161362574902881100105497793661508823975493118584652528370615533386992244470424730030556331461414997334788563913890904293702770169209182676496461286854602230002305809635779557430230214812102623990715954959611905561663052280513379593873038514139467355513158858415803661103214754723037497492720894746706265249923327000737089127865797341859477137369742610037522768219608003881763360238392878746712021888843732622488608365556121839570800916687803067449907986840566666519548074572291976029493749391741860844997907323877247943808188661230484177468782817175235845374871571594986424642792824174974402437460719448963776835996358733689008881924841684736933474810433342374596136033738904352645846806134033754076221619619151318666887416120049099314543323860656631760163676357073324943205291761304030163178446306972254774648968983588152454165616584505434126913310922036519432695608025252085094952533096391853333347408480212117139008117579943174121218475046346084933414971581828715170640306059128122524620088883295112651908477519766162007819282501556460192025800727098606052273965225451245657580462427100088389129237551881039856335545942808490463909304686579863521987383500681843875164902730298254905657664029567672396681109054082860278621399988739474293111416740175963097794928918369617928177762857627555587968117386503343325391971623563985196601666669064067965946148381646857361524115175215663196883206839596323369441810282358930034467223011169199054771866107123663858605844437967460253658559426846492388985720186672289288382204728144953964780129994749911191033622947021942880718311592704197862868074924057456827678005024242967090758543576672342450515160025947692743607604182114785834802397670514649063335559292118758263684186238293796314189754614496003275847123871699796437640379851607439840858980649326902192638713425854533855043106043984646257143770923813847873327027521682966009169694805998317416837208419467655406898373540544362334280697636701781154755303749500335648892333708584427865264976759126052915343797896798861656071211361402409380721597492594787190953958936433840325039234726897740691682928850355212997151615402388203507870039865868197054296117064521866887529366435159287573032577699626218254875022551688546050591189442565078953411474292305775689777984270891350336625270936278550128398625604358383143185251310408103292638712767108489966778207329526519800243381741544189077310068082395463336965203622418107751001506185098202276707790934238040896425313702338232598437844466500274570558048297785215405372408078754818851223947468263807416463993471859998946533365581220055680764165948484241994530433458394759308341516123115222364239357387007139231807977357152491595893897175786163965499877029341933060473872907682435897206745434262676203938387670782694443521935496155346109559018608020239819186582178662325517923990682311678776650488464297870121264607961900044758694123722019711502305108216658335552425574833091291108461775387134642058246783699486513806988308739031282092623465545427236309502926471327596443133896414631125175794870552301783302521969243040999577715329466775649657857012813997011820710559681877238385956520133549729096821950558384774819161945161013046243593191811660011640058987615667723799221376420387078956213239309677379919842106021527550773582347753554867691358274659862104686569531378864817418408420037517668820045228232103179250938057117975450535802509661620312753823925325259569774757123914869988490128258423244175036120497179964029857692081795264592790215550958541953826447828156365728406417258711935949897769127576054965997804485567675339537581677674837425410666427703723252295733646138964434235322597536370445278279847540440209287955394714517758090896372043715406532340990008918072594187449494095069276263078923165339500436391313869923789168057461980271262077177544655460725603293076693008755678145587157762141709944888305593798877657325750058400572538550808209548010471218263008298488201388831260253036366644660958607111640276077749069618912814972059131437973627281962021753868477549495981007824090089945139468548800162490265235996876912624081084559450594308199580495841842575785954763919003604582255830249195847339990863661841499170681665280828468781728794840665465423455623777820353997364404480553766197316991455810176675533906871545663955683388893830928012885693504663628824548066880604625559722312802635367805927894775242636738803111445278625156423235628761038089517750657715821761858490833398226710847304467444826365964030886606862290995073718147028773934500876916868615411732649315515459212835767865291667428702206386518656849385729051298234967664825242129080617941943735373191971091366398454222593965530007740467202142895267802043079094035857136340309884477244327199049636085401122043476438376314154585429398185335358641248175277660687354982855554082621210651218217911648103702536793919169994941658932830685963293064750054939215595548762998232025354729390835649411300622906026673580706430218317316533079846805750237050681307728223906962654863538710495463724008627904569648110587824276447597997111785373340651752257485370541782907633477091822995565902255670887103727676839901428309041747606676361495099398338343873944630461946750799332699207263258143600344500549049496385167849006572464685544938193807557401328728322535319327349924102374023061844353061663072205690376153990006011015745795191357925854203276469262232465924602805157111017751591244484328708824969761417166721123876949864172473566023349614834973485919190099283534589625418740998779205203450655927212253271645897739268828956076370849681980079111172614016682320733692007279679716986505106223394758366769348023488893106447020418580061412925646349543972780103985133004569214165174609306391015904138947994199914652401730662161731205126973739083820639532719850099781958940921351941955093583923066066869642016669961788178673042503024149303718479338253413600267104006675387396201626281210205898570392240675099814606589951251411397202166975132625688865421948901595267911807999837937776254387854954637470533401125650615918851057317857785966102490470359504921452790549995126901132458365413115717272660857694313454016721336000331937080037099357015819796311740978886476137037087252743824552888411984752676356627455412140338614442438980090138980768660425034719418675443101129935212981610504560264061425434702927914009107530158379245475167128451215968762196896037605239548237951392215996169393574386056905556156311197503473849530578641159732133196876203199846939959172717820799466708965867120675514205669034105684314931278444375330080432452648279577613643405392191822523905999107621678789184107734482109358159761385199868899510023987209269213861097411527617049636567448372784952069216152878096845620741410771349522444136309541259358769558731945041967369863773147406982515477093567367152888292632127965490530198481828261211879283675601683138739488128464071398041447919208560248992628072603026886502744385625348043020600985664613895818629487208193440883617974753881880304140671205617284524094157733030388023013983673160188438648568651082882674297536505137933267684210132496391210832644482271362426962920581905070245571765888328780035829892144389335594453244050587944810665561681869125598077338279795574198429294152115457245694490437909864792602592559052943186643078525243034907067861094791490646300128483769427653128959888623866330534383643500213163249817612393186251248638440286818297992625453129710172940840103672917755847571132895408192767561052049970021717083849672283981800534493207348413481169626099991963088881581640673720973703076831193285290745447923563809222876744338495306970626661027127834713216072650729044050697457560893835829684864781880688415182717470441989538314611018324251975438905809429906717522454888101412987985884004182003319609739792200521840044534469380457750142039375731302262166935075408268994893034083496024965034912988921392597870075019402196349541306591857726131212340763034080091174453631981647497998101704399402813825837867330850113557236622646297646915123041705378495256714186597332190408279610178824645859709527051255237636534510040734805371385537517410876467409568291854993646875756582511477727011146888833912157080739097367537504693105885566246093705191788710352600417190903519997049465021554794841209429124314866078348698529225039944986363987144623081193469971958687062878752475843921360064058214385885546815127871631565115045335235306702808954497394109713973247527227069131035152981592587474273776656084637003626022794304013559311382657540671054474253568388861174757226677895160991739708727328508771267375385468353838862543748224950971066191736978526434013180665490835313769386194507919523178279677868703632090256514994808886298160566895122617697034290407188290606005527589465078744436833082484581253697747886372813156526860363318065561876364189085447325499828362931008450711045196998371230825311581962402471514129371709470111396231680334332173801595495262496526759105740462419460014059726117671028888239277985047347108013231075896429133870997167522510991261304215680072959685291837560043773700421900478974971902221905485098540106245900944297120764794494293848577803374737271279244543991434225691888535339651500361407406378147861689916561601771693961852898204339833468257771292900889339626940100193409739227456336022348338895508292591898451078540811333474624523677518066787651732079941969248355172789001224888382131124045179711208232338685982819541479307033161316682640560252303043184488669524365974535064265720798181306495327390950658267106141386488097585876127617982246936688543039299305409154385056918861002214005187450695634632359979032283547841533599658113406404524515345134801447901989560638911376933631660326865663957731511565739646937272550537108494974696451989591589655408515984004679156274023814169678766570526986300129600911127502439632069944259175177382346272663633940677424489280399547457574239434061176032082499170611291764609536522135514644170110714618179337410423528613857029775998646928525066243679369835224184920255271406729158974427002174681028324651223755508107846606011413330738313245641307557481077862411477728271588717933636402794266186500935421913025258780882844839511679883092578418187341966779269472429292148092723586814013548323085499666213994481639232559313429279074073418428775256866781875736023931515301666216988183268569079288331335850739457966272586049563300614849572840034146022250483448084472591406668582465408044401441263759811172291522376991164196189762219493063187892366404014535328125277577646023676968884738560419241876026565248693114492694179569344832594678443941098369570533375683185020596417947830110208055691765615728830945908469289979934511645600941042078347016148889297345484423363143586403381617308645493136115289035514940075345313616670158647026378075001716064802198209136015154353546424589474757674574439414145114022164647683807527298366901912830364853701318872458607304460277434811443239503076956395627025147129355808358752756806810155615797113571131335602062849093720803694905949361168355678876547163824524696430677360648890244680479357011840802649581386412271696688812100433284386604173175851864260411023539092290550872425334471804805935111828438604131763420451998713418782839817653154448404418255423073859912437368864051288176597453052934511010251592486775511881220325510891502066522054140306615300651123622158280368293882975992466549402913602039022042181613175773559594974931279653247299372763275483312986540101797298064586278326395239339298477062882873229709875219955354138188506710744195277845187592622875826716473130525547622791533198545509178356966933138860497049174322729731219038213155448599690800987406249779214772474277396829702650814860105991570570362540160726834833776480629503126625829023885157017543710345438087980949230450808595892686637395952214712808957467281808371420981346064198742817369677213087308201529448451142521866981854323555448142684696301990411841827565781161471231816304557997999819285686730703185671339603163816706596640923568918911916819927232075915139889536489772260088742219014391401232383150606176954420279205774215926261346400047097069030363688760844882685722806218242442554391332323353418794578249443430394884555206075548676685955382037476769782288735132423128938236592264512602261851851092287603446478592201566080244651723355574706970269334860795347916090383160895995281265431473428890639365094736820989946265881434017793474571241683415303912934834284631142527953328256788670354260438231263831241272954378536987631914339340685865185981150104670986622474021528247768338027402373270880446382966515107004702547859857672200971230145682013442321005322359118176968000074776778559984824388355740453067873070809815259714106310953916060878262120272772537661652648554991543177441901286108486394348850591188696211758355918018896083932971955465084147780282799359496065020957823451729455049645479251834789045376840740720969157246089806882335860049745212649315945010114747625949456704081336262371070957099253501618227365531368065040363206954236708477972615184019233552228749450350565149618411083613561674191894086558881044739071696043298582485803685748331375606039431753133111015466674032021510907323540030423556404651589691857730103340093795381226563913269364790560202444191985887113894719896068199280523930490671597282141540277855734283526444075983772234478897602934732699200385983462911034734154300990396830481609411081248192484931353167990340784075692254892964385365309617277974348809439144534706228773352047738856968455269137059507136586685460643907221962132461415910433300454369052832255914958460679133160940920715771075451665578718053498602039659449842925841093133945619143030074697092559333809784165828405456429469622214684670215738035318799360261565359917228397113573078429147992463554753341464137473604383887745013193972039755782832386196522684714117791157406320057956728294015644698297715353774340688297878224046137547261334175491854550055154160822661346390228195226193462927429240344972625107506081154253482830719652171990886341460904709529872112836942022134185507329589437803990164552041643984219470764268708097576795556082313752817638424777537403112169681803332574878135248639724742489826050231940647019082679344465104233038684851220313844003902829030774118307503762878782720637568393818643438334960624942768441524464666671922997773318184358284850556121267646814693451537551747133904778069469363301150895384726810135689835215081444761110669581993359901477111627706074243672110734597991091880737356762140986662643858626858771345046125199344937823860259221274945617221172092628779827705463623794032029725734490831692664997700055159150206126386196757826559070676722042578080327996135066317087062623223471185500846112810381115984905243362731122004072988114552385201275674028432705557229565528569001491798687473620784313456725066647129395027572016942002548983898509784351072669455623945123396008069369057213372649621129873235743381192328517810933759743580806202879101156314160260963015817121342090743974374607105233217172164108549780210071415451769969731750001737694447889679934757706104384727567472988459718252044061652877002004138715086951633247187571983067346408436938159179323375634960053688608026551594679505098564516408252406122762672714482609568742728297405217649675572409661747142316015421827444597990781282333407640327081613698696062633243235556791247334592973015112547033708515147461339681310286359664803308622048811495258288193853532013190538093520310513914795637703461172027759048559249955643830140034964483452964396415685410765009377364722992614181542428928009467219215841114612257953868226991134047828083284276124236342544451047426445427392297760216715326437673343421790949135358600708495329541272853812695659277973566969723980365279983707352860386582577300793487661144003566132974217819052519918809215120811518448515402097847707719210940000729205148956647401985822793415675965337453620195715842829475051882151158090191400574115324846287851106145895311083402027399166396773654818188202644347068110883693382280662656633117705074982952332671381049940833476841711665684016163066783745638162214344897012011618194560357246305562247580640605293241034927374164232841743690110611117179202843251261598760411653040128699082433669729404551637833883600115668465437786863481291025578923600706999011816113089586462332529674221766851690072973218965358176601942851030534238549757271956515146282094211502895661908085080549276615292650629489673785108544539800676927405416545520568224523860600901042594268811376426696161544740299303849046823636755759465974117952922637569248512621051018946723080672783240060114158259401376585514999641875237668878556132279546222356474794433819785448971349568336768263975355158556093667681074602159285796635093400995778316743090255050620184170775240007372452985787010466921283139890784811666318738919145520841954704079966007167404878417388777619758049616790646330848105457318262280275740546895475354561538739522549514815718197856330402886458236661759631384578646503935103534970198338205612680860229647524379550954325817519936653272137529581412392589758770513132410173654928682085423988886488947997982732130636616174209306001093735945027887792624390419089061460622449883740332161616045963532482627514436682945102866675446193777293967722037605523950538992617216634702346910310180212863963818461401680197671855015252737547853685628601765276911933629193528709610978226883832584386172345642334811655751435297724682748907888145354621553370868289628098241431306735928127388813986537990673198769643077269651500216068103487846143346860979938383165383754580899096537974283663769138236773858373746903875774932400220515471202290465248538369987215904822953964895198301459285422791203555939226225451038925178518657710286894543483799299497913113643917598746417391675442963151166831820275794976293534876039584681790628298306140688418024696648263652643085248848292136830188021189043774128328956207373519342930752588799441814138307372733258683202001128782079746695042133816027450122476591856643771779914468931491381304691743642674590834952860785738841194050818592580789897736455193297546053344106233570916651598042913957596508758631206655027671318604373283251626536587195904038207189982728338821643280192648604515452239721563315801294750458826498898926386271407963698789211171002705774191029773783439261420784494996169847834756815703940386595537945912429116815277404214393729619494566497626927280734511093354829195492770949670394109990442503649813612644745393732586184070844021226955241549741053522147313821400270058595570954032174193949052310189352491640751860167654447300669634196285770232200351191478958934828688947402529299304285923200823032992458691623153749782725175987677899129693800667023865692725974097825020598025416488362511491821473003796324796666163279291024297404641114394000444055974922439465168387390078337189895390765901434717371851929857597840208242371695849518820708827692843093833623954440082086222399397552348259278378260991653538174816288709651737939854767661026028745825038303183300966043378343229858411800545458203890070452907516955343225710022513583684103674722326159156799127830231308419995873349797715272217787491409163321371402796718333465333734852422076484219045300654244884901777369340238741858981944344365321862158668312981294906905699312156790528462703085949888966160815879146232130839275212358848079812879981147765415081888714466998286776391794156502730568458288698421739210286109322660455164236620439256655896084105562073846651718893397834531473623250878138332451679338081322953094064853021593652705201257417173000027098014970574867770415374701652715427120765444773643941908459380046148141747129903913111110874483464124077400716180518678925558321820340916576001499372620043615046405097682276548114883553464429309540851098913545552432510940220313327757830500359539364644276457704344950583607092629474380443174830449200409964779832013098705218813540906086315160191283082330254105274168337452516755999205478351090284612111012631322322621095406958465973422220634850157369869958583991146147325215011783378386889466266627327802745962548956276064864185631775264708858662591679488524937695375743244116026942736631315158951276229550950375666921414382477575075786448825822683017462309612345019339985193689721391098977642693543094840392860527370892072243534254772785449523463204507849076934963209332627115513749370745531993463945160683380896542795185793299774280259659671198654144989431582214451539920687028856851667623062030174829214651536258550019082948414555334025517837404079712645640333567398346938788883111748869555435889488107994159665708397400367118454892277618797909010498744870434144010551157285884976222885200044055413497102528056717565654385033149452683434929548813883056564488785695776906846275646547682074929967144930117509421141262567761483184971477381490550888674833428552326746323507215444745578821261706984520222464729769194519812591118392392984177428933427306590486613320405982530570506065609423190811858253065000568757382389440514677280964096459135705818124332235684728560636880588988509736853659075602126004369990981385573061791509062636741737472764212586133378099641869678804727760076559210424806180452366199221088704534171104381165853523797555550495129159751231317798373745880506716382176150643916551731794256636669720534813617569873760494671499183674093765106454671289574774646081691346547702901948417800403582131442943458546862267626676992948693604628452162736963494776741994224868114088343972312596457072296750749640820239236387824300571684692301437591721275100174617103429208178377087994223993475129863565225816206469570227588207870931169685196509190229710089178395071935782406023242347477629372235517406257911754940983065494105943232768169173360148806645960872599129975275129654958307681402132354346360086950083489607856330266789807587982386829609383249494312618318594161193069016741742398502044698095695662549581204497522233908781381112835127652713822812280163799954902961168335940063008714706544567876175733243199798670626572331684021975049968666319816972171270276348436687148364739411308489734396097220813353304890305765510109919987916489683422037348675257947323538039361694302001284361630321478440021355673272222917499784771633487489483644089236980932294742216630975149683195380903987734025233927542253546218482624858724567476562464826692699680864110967039183164898028646372087453770687840775208743827211003171401113231004762474483227386247685675656706010156183455179062572879083816796212021404583669404000166995947728246417325658929232551785871950328103348484778269489497318324350344950218040353224752962782666806736864801212989452692667296993753908444820290698367545964707997380505452392585844632908280410689764493124653709886734424486813409519310599134130470356405908108824550727731174828193881537066392360893445515918736127289625330031605860530310962776244335384340786487128844222478076962400106055107235056885878663612916497392243751971937790306439780609993160994263242926068470749575738067725010800911069383243536778966379499390462669906876702538310813493187924054552390168076307494818080062031405444275567809462889488682695077960957598296200473264054813681615476383154362471001925417160301301951826213811108450792736340666985304794932225053442433527593852876800494768981709797332195934022039899389635710705294430700998796044688777526406848127819571026855422408698908546493703985359952802963032179006529168101005813018338732492942609562361208766670088719131465700441490888279346854514243387974599190341211535941038235191779772543451670603598164683457964938457434268486687139660902302867920309304358915168456838065564401732409618832674841961942901907931872695078846843049706902392114298866243182057538921396241611926380444550992351064573066033265306831016626541067014313131145129314318610019512839679769270838267765919018100535217560093560619636915896600700142132004370464356673711265728229662828718048958507753563732161948838756364186352358317612529330417473877868166517839876217914307370306225645073036230701125145607266282017800505190699774014133983769710623796321747153179400142617686350442584832015757657551355994878176749925403088160430989561648407543377278126140651922222527489552870718860496670191043280812801450733703850549408615922587461792657993658187402853209204133992844358315973115580759966400627765280183744142876081927091769348448538797057105638925617240094583094652514006625144538628130573290184663920185721650182243918921790652406565028561456987062925225849860942652850651265042524864748081825313784138831741327658508048743639191867924313489725311138275077011554375008982892207275772933480212065341953752395762345615187047451671139069541237118075921938399720008508792001559237961230765573047389321937686727787887826508998539892554450932077488115485196059276448561481105580919565586502121783381970476047853643431159355779774205910115822947555655559593155492555847052697797310274783650278992381641939375862552428210915603267986371767491866662307816935048005600662475621373368278039721212325785317814889402510452985509778539039504805961999763575086652947426355011473431368395500482228755539621803937087324109998481467226905751528819365870041316476208751994157401138236130160542688454058257902702745622287203905823356195657818273481873484019984283235599267716120086079393753333660964386943211132031085613928035731752616185195436587364064717912422274156259842560826744641432429337838239588797179742799255758444125670091977237046853829421236886577627417619086946336346272986689574812740784241289538533634289682197854630930593680618529119057187223662921626244356963451933358807024577080969146784560210234131821046668313402121661341787893744978005767926209854749473335407192994317978441999246103886826922327244880043237231645869712771788667293459016452103628052377152647394204123057777306730194043661066821230438154465607630450596392799282838844963769907139595795602384597359892611061965806904428096002886189771470724156561191539301611745483864183265567332094925293987121380143057703738526906494925400773806705190169065952717491592207827716554173823282694027235042820771799601749089496279148975142727365554249669263728975100321479995392310068796350125233623458308608218176808002392307707741617641104329772603135090784184304825211444575603706417199952578700478184850014465318901424316126251425771141545708099460066486026793705899371017893037089562871011062744646229280937288228407367326426532323747388110844132043145096571707540174110130038047162737841712572440477353560232157308020635540519619172686430176209984807874455523053610976638772596529735760897325247177114949504361848389752151021652205774549040291090609082961263816092376091932139319544403847237125991920786649022310724574305851342667630442620626735270616536378788681726985573120002971627434624226270537133302346575873039579861998398989882226757883694850385837216541849027533653352402476579116979583809475893159188573415550998004103024959381987821641051193656170372605234037555627521395983359525785261496743227437285512235230468119083831409015250178141268505616512005405480127528621371219974240402718656074123425215660232572388562039710251174721556689378209566087027961083754973287167854077500787831694146630519339909671025583068007175016524274850519894344983947789024433717120994874141271786696983534978748385764998227281165454083946809253423068672520157031815613244555457706582616568067934408435290940655602762494052952259427232254295915797499781949161316537270355156666463683841731224120118208120188329877096722681520292449902297116405700177283731141121899088509923413077566396616964906305891167020336672540599153618798049570840239751284360849148946917096225578890359498402745807359231665551764338442663512208031454194401917233664695288567685570646925783321555173066153014609874970106690545639213691061196051618311000829334533817551630092841795365182284644898530643858420521379984439476433887465843145712405947920280761763830333751962481062236156743794252751045153631931166118739683656268853328509593655197604137830293283353746718580070200998403361775570262436683237487051332310592591825883939084524661277439495050260058526532426725488324647895354999668756672837924348377509786693553745767575564240174590872595104001410515914031136487326773932417518114793943218304516592147025295563431933070486637974325188179417307137669036191342233540219990091032724279641954672463615520770111095072935019339553297937103720068373941941936765404008766204108002590396038678514535820671626374201966095650503446651125192212557488517173093471384101467779227656896031781415909988911635655143302630759010089190484428330123423445014342298623035464601787341149942886968184963582851228422665153244715933473727320520458219828907992023329080783784167693926787406536444274887555837193650286534020548319209594577559895833904076913427065560008246174472450784346892756434568010038925311189513348156864408715391951607102291654512734946049993084544908997585044080788222331859179285652446222492242070258037062860356771023483751983399252543001413138923570685482730554097516638881174751998681936847486308915258438241733556421379268705552301459384338023818018860523240051264901130058158819209468120593776422293491623383042734157066511632533462550725990227255941683282447780808598907103047470056981853568094979568602880390357668157011491567724491710060438284218075018587313054163711012114830867367979389900206052936969107560054108841289425814344672556662847588746294538136443313936228812980132240817454820586332234480338062612088554377732097602350108159161757065919162932914705269915177364077605392602365021715399985730500691584921239636422419108319681249051468115651397519124311406182168726071203911313813601714356190419152144920733964170324743233828049606406851953933723814114933812317639116659658028427888386682750203019681596368184819469169331943472994245349863427860138226098749385323090568385133442979969656506045497646868785545332656023918767994096609891708085634648945897553921509384392009094189908712698060924617934092389687552652352682983691100034888349952160353800641819284018993370185488291250480574025399250819446421879942353655225167279737128044480471050879808056554001792531462465937552607715881186793875959668836416838167990826900875662179101418412549016851266011746737217896264423225790438622036486363721608894983939865528968055298652442508389141077100331585699937025168007640755362141647666620520046876029400799994171046175120373794932558270941954667357707947872681058640495157524945219111246756217229987430103434296073835296641087011740022670750071511374656666524905955404370400217119364197820701145577050877843227446713998960180763664826071750351741880420934319832574498695042878898155215010916229834199684761698751383927445819332505662641545337450141751083609974116627468215927007358905980559633344996661468575383366059653309449447841814625054973146171271676777790040050721894190980892275922817145514102514705379198039301956671069683412732328826816034276671643408497927141254578110963507340367680829089774908763274780765986152677563868129160027173982333523503093532939556665198715112229903585351290792447458712814945722857932443925632057276541358120057593011588238681395061131987414161352462476964749356741063190901425454281327892459076750553184641650937070476239381362951242074758151856854853981378717380337407434838849453070644998961604146797039166949948644581201315209668537936398561474946968816157093581761616298223596246444132914500960676815673665582580337692172810772271075284559505059517790792578723840106573973846861419887359506948782818219969508595369658621346587538976003740590430422509199996761802268616177053917824608154760136816345641191993549496837065080067110406195228136396133201019337304783665128170287204491784535060250827205010730879459497474842991119970790558735411479673380136630382204842601675089356954221629825442038826294102290987737592789641342095696887381415656496335713713945113666172787141936463834283271588757145989296701476227867065600147160223314537232065612316281001350157754751180102776839296820600419520301275823214322016919306120265342981449012556504091024268906741004066359613823312732334086331653611394740818590336692973378686573307196699060318502760314373852638388938123719748013509200465629386613509553688555793991767912475812692702842218345803059578005889243588356056994514432510163269534627574667815526080488578870237808276602446360289866785955028995135688938770812562518948913980623563838333900289061998124565378253335181572586782039983973691149029281348044492214515963690771281583671546288248585548640249517263441041297750515839850862913713538747189447507606912905087665831576742746440813891332847592778954783288107204816301601671814242811690691551091613222303683508215554279909507832008625013990606751555753020930642184204651558400277593404098981009567287684526754508370457715965261920220455068350928443514604180987797999450244156188018248154356703400388205911778398990032200747418025081014405417084196988353320448554748279510929090190796092366787606552376382510112464483445484047916819455732791369029427965844159339690123127958408751324534440432931455603438848547565930741794278780244872165800719281111281981455935189911604070261205616457825763846061506968006626209396918125263283492515838279856870080647521930145652511800105820286335240299066769685011723005949502352393944244909515626097332634256123793112330730892302403026892261092527289166889985528985070742116321227670178057361565097472126877494540742064042263608953645445031098062536288837821951224136193560329988965706147661479481577652860447885217788911090768409950789233304226466298748379978684640963041788047376121572624737704784450230339794405351001315102239158676549147656732390905655884434646688727289819074136831598811920361970223949194117957449733274223830688215962990809818434124795032065136059784719016033063245692787507428725936008107052492151753332026924124142753174013902610594810962626403856227775605695438793553499106630371634121199095859415375188252224762315626857743231302165815249899310264931964063981050772662452289941346178565018567309622420473647231541671730317248098033999045657331038847018762749261266860164053073778430752404703587415366182198989996610328048337674614221351668795729081783299052255870762013476683755819369206961460552400619195887845989981128035304478646075705563145750987475375369707375280710035928594338693628399890260705976425173583185964413495656057336602491396725945470224121106969353330397013999528608908668026312668762286108247064398843738757354665896625365591838497347109146187107287697975220626486891401709035448178380054981805372999767277025767968913234120342640597235014272292904333792831731980769264061203708868585733722042427429160557447913383143753765011753161313532030704297113701943465951259696855114653704679238732028843163133910804409511245804743930735187400825567761030166512910054047990395776490113907769086629925096326873449016787730325794878521579810488983208259065636254568321035244484494465439730127264048345786261434450663485877741524360360349044638811616891746729596480584625291255713447576750173394309390154014825764159159047513175664532561108183504944529794787026414487067999695275532618134317586594790746205266016370242045299054509727196433307214333499184267998900089846519052745413458569173380268652783980859374125866813990065471512535726069990970122814106793340746070091892749643989418772765646925041994320060368105007969351179218971643390820347604295145033472929238046828170138008022606523844291744988617638539826718251020405840788047277908740914463071408013053645884739477739374804657730436075169581225400108011005453105044679563154931177371793702760752252875928352969160191130639930848994209233817049910042107155182065664015672601199681043801415092080450486954784586512863081798186030914904418702829516521841771600066652967826263816612178584196865283280175439592450266708965993468196326338768357142401195835904167040504166875952878504250575265008495958532433164822223872399120602564118215001845997745208755212601049933310786876851409342995730321070534217166424641798269381476922645302149936654227305647963595351787630581435276526219586953083688680197597089947514461432047049863876941482722119092892451539512386319544042952976484544827736438167571389856878206934619902156989722885351809094969286588027224213282902499059026026440892263794066809312807821038086845828994092194341482414926923621393228621398174241173248487089106780244912946277363828951672292210519516951658763303635192361353020017973128969853861918605116492739786688885943217771226431894831106006093629852089174449026678291858457314147945196868471591309775423253727426471471755153143084569659733984479987498268823496907503490628473939452527362990572074606788610194374076207932343654831320579636402038088286651506372760059861000737031459317777564755085399464613020526131305896836662920805726154609004603515460238885247685590265336994177864374222736082809449165863004121490597853993802551551882982817564831151279379245767075439514606244876507068230606353671743302643865361504877327212935386942878289783913618353628081571387894682477025701563797194819832131153552424208784970110703230203173571567238838491755192479146577592963493665121243266722502543637409476240803931887248514302126065372953065395193353669637351531076914919053209918822161245822873148432398523985630858827288417185524798770138262765476710865477432910099986210778338791926354275613888843579890263634141502174309919701572866713499531669303480928085398325957187716507554139289251102910398748671292702397379620050733328141247502162530374677880717679487728152353574786085057668947331263864138701102964809126595839200140987651519116595524124918932503579411362067664301962346229844409422977430513722669840168420893443781629881807346565368633617944344933680396408962145136819666820719083445108765462449786542037556506149676720204359491469925928882889109062319313035356619504060469863667822741462472938096542664760019451036119797240141850807920113266043541664130679489772107730250663348366387177056742659560227474686548979587575245197688960435236586234903556299692196194114693283379903106455763034158520505555534791075615761849254497150369983987067946752049690710035059001034183278484215254722437381666381973777126061691973248496480559065766102119889504352299292701543228940327750188338039245064868654024988203715978491653145651464465456482093884078634941270697609655912523002925363905269693350483722194418012888736770668136852143532504855150961344573218943024129656598677052248073599876597142368621182646219631122639764105737965046484413660025932202311263467443022255596369882360887828193406176498187338526235216847219311296971717538593107396663255759387994810508344583786172266155652741372920097724361951444163714197818280644171372376231342639411687234257986642528156780822627222131280278377689227043961475166941101141709675440921053841933745749696943022012982650871224749831940120824933194746378221873742249524369298225255397384096587000255263868802472764291946453202722867435671010972106912844167621106847901032210268995774165048473966802626526670335546138623683078885882079366709293069856484889828531853793712568636056623167640674016878593393677100326118352097556029595528044722930131656545497410363540160876270877645286031701978804763518422095102755956148948835064851102679213162890047935513722068136382996227604603625589479403287852497660004173541981288505275185425701541839571878755529677252582184665486365336819713327005701066081248443336932030465184653404444400586528440197012215632481732104450255498973564017041670584043254212000037038862587284463908385843826880161997429414238016299360824477955034771873535523384074713304461595906634460824263656919152082605110797228785695372018650127660320125969672814809278054110424885527869286580100144994019322212921460738858631787100823215178312381710117234022907085726681018080607432832842594955309527038597016696804354280821596421841063012426795492264058645269077957225791299913023894116964076872491732314878291329725298395950102129423929085691220489643936337721053693212116841398876252474652243278827666804401027756796583303951193191808953308876897498564847650251841342085246880697812746917708561999973381446122124877089777380650571526731248860787109806685281100688577653292385017347684671501258199152395729213155421908588001218633600137492289966680774832961717651425349800281380428416074768298881462297869171609188634770633275360443426518731946088461887280471149042820346806855518484258898248869493370604527188865596591532603976753234547094707442912251564219159320622671074261167654628126293863152879361765488191919884684771095431880511263681506589330368902840356546009112434697695455426444145096299121688392631188314740687085503209846215694596159833518199084314682895796515223982191977154018689315422509115122793216250270250474310372252966456473626740295585076616218900044000095771878001247561677934538235935798207261591821837658829403789581180013778136585083305190403127032045042829929744815392890146833137396948487743566083257112157052901118967902822800823762031677787593913912640504582696181365078477450966720271285273561247989346412181915164704746881163676443222328908012808351766825351192943021201907463120682220327623863304711032678470306524611408005363415813765459704412118090109635052965968877831426878993092573277215820699753056838017256907525266771636019916208629091815900984266708014545610388953059228930761615056713639909683069642721260545215603621468407719486743365567805509391243681908560991917810702214816912500901898454643945130925237013151051238575178294085635870937648467902658478779078158767803356399977752589993939107836423538037651164167119439516485282876615003153828282288781595048154817788228858715663700270903659992525857581075371490537822869246333578028685613799802425933947655251947598021111770491005188191341323559461010874519521760999161781297284692176249003505561035340967165213453193014500639424788464169131119162083564402281394162616727996375053822958473284212679908379359258955269956744800457794761599434827148247577945338243896995411162821554393649755973763836310469403722644819026109285487365480284275650044980075142892962740816747014353379692686805125327497480186803232058679259017736577005125788042990340214265943246621048593703163717264221103077859651159606484001866311948264943827379220303470860662174342891100136630967572656444141461056176381471784936352624876190104862484727187970391444837768150288204802337154777447975341767265359682836315153989013752083148842884974563448085500756426411776707861539369644752563415193261355642575183365665024614752658678995206943411811897723519308743460033405321658161343169255394354919565229329587633648649200448399488362178353729976134301634008108503279498494667514768049738436790206418001199187466445743119130998866061496101572634556097837858136517176962319353778837753101720111205427625085986722898798888484006679564370194949189641087596006792047574409877867004061065431189357970897016962655690326848386767181226308852417938961763824641494820179041075537752495376185832521262342760574035506943422955179272994499556315733988568257260467636535375617392596390102732741061740858592216601208999148394116522023269241754032476130879558027422581027051642744130023505696972857788920188383534311131534721654508291323512059472025592030303358630587465350882210424001119417927133932672836761788892275006035454006854485946943697772892802025116905746690769276273365812430592800797820630045854572370874529456289916719733895369149524808105246777677822188734179234287905729419570719807345933077457847247216205958503465134868760579842729907477625880075256480000971514887430328735686967420957838068326803888468388289038672846694791287649048138957452923037214190983846361654936763788995283708889235119124376513104142641897270247717574489898494746322275883946414980001088439124450519467384934685866758196266143477905217904028750513344504973847268369232393952774652282191077232461110132051517937285433452224615131296460631797230439492941375385770764159936845783461667795801853814469538579369046378255599424105855307660674840428411462389427327344500901512772054173347823531905083496477927637326823478115235465412286267694323563726251788971002984343918301758100644985570820715250213681054580369731252156559016371972845635907800371647076028282028679474788732542228049659706528271699872837446860807694244700443700581048631747694132233818799454191994827556432365978319544185780820568343812980233379087666221013934688589658271792970049180972034070013331150471437882170442854831594736574539224769651095394446371659059105264014018613859912941434989189659201487822453815299409944193596319439643136382922763149820142623290380343543945680187659650939853235472758997279307703694766349291637562038078404384922215671087330757249443988132849409605333110494598665103525513674756878356101551341046774492544980079111763513715719968503253138225944038664047588033890051822405464895971542782839251500602620203377485074664282840500193248726597381897719795424340115913279693065535346702102063728211717979195803188158550820281847785723110884188974529811813537179188153001281419245787424662876716409229625584562546559715643765482654250526438976993941610425895400337944856583432745500210626172059859991662327569327637195508222613513084437713488614006377371510754554843538885315395229362577653844038127340808519049720899792872576519971481993738890500500559592397194087742988584825658994889661339556087268678334802850031363566366811069283781705492591581545746100953497008826556682959262003482358676041093689207629870695280459970429246436333077818976852395881322574709105332953553137886521404736703693711305646030813280172728658889541460251883045181183422017350582582355413177271547230939391136089640101767258341579244377258891362002034096419913637472700940301057881729065435644583967292408959515168081964217719977035666246114348578600130503699439843136883266957030365344369474440242522939823135386384666694361011826078381494872643724843792371259952852153898660107042378496957706707565063322348313627476271858195829904653559868023534306973894172038216454680631195229233161415856037478442948053891270673544936289136915211599623261850829431896281583126481997271530728221321214538538992544981191218899753146661455224636766008720688642450696279981286558046245977313389987833996808893871139604722574650439266497929686623234724592307026545455146104146808349186415109874725638794827393269755931237754867928421751463974634015420712861353586938481036082691508496689285195029011490096889214707923756413855552775800804783978016249812306308110356312172095533683894097396378933437637366796707513606662414141526201453570072936122782376377641365796830764281804284892510211281517633918288048864343541814724462029584417880590127783932858008003949048792820601476026101752341331294803051471542205156631339185146568520742664237440769520729124571659590184341772856935537496341383948205509744706462846721263020903159215171591305998073444480012009854369660324815970482753513181429882969305445528456179517928320236057949580969528323708133355483184472723878140904724135265682962491236229867018551395072160698702373038945948460822042008698597445349387947797933746852248669767129952666087314972592933617799632842182090866159264792213465492872734045841962551971234250655588108633947306110819265355460360929831197968092286272602412626783242758670359827883788804136722602444794811059257330522847583832121748159959798986663319053729775939803923799838668700417762883614140900915259974264295150464409165070459220447149306489364424548708169164703148967702984868378209530820418537486755586024823787296659019275931485823368645242333039849306261097448799348030362436651524520574750365613996539427566871985075865123544228254305786799555080816070579693560870561342922644402358103641036245215084799043899409002886557486830351888439696999286596130530722057604476851438603967234426198572680111754092543866802607367910609884023086942275192941644147948709730006220496804899090500463161317864528474525938246969501940526416188417322126275521927162659874724000422824967968454475694525250225929688382147875751881299314733758241747727331789605653736102991756844889845697811131768159336602993067730367876066815715269745469479226470196902182678515846470725353923713462683121000528927988551032532173380247828096457779663475954824094795909807011432792241218098417055765734746277670570517292268513778166964996163641740134872275730142657094055745986361457579401458260790971854085168927070779438461636277027467750440730558399410762224597215381064084968762276858219606259391633544611810750505485889139414499667497460724202216833487089469466967989480013001588147763015954911901214539002181994081065457535099531759629279549656285790083573933456173796644821278805206046779184263095099926130327791517099505804668809174307617943677990884884167190662728832923434460107719997433078048066408299491640710315649813876479833069062448885376747459692589552908007875931951934532307130427889829225349489664227540074736888767478659489927930309561986389242132168805132705614704818538701497816240754407435864801177282046378238504931235240422522765765209036861097692726273052100481565960093320302934650543272756403929451283821918551323345410510393044902750783346156982317591058141310380939308676678428119167872127177516669393611880266345024943721032509643001620324374503812456552996954005037192344122194144717099730223755144863367107520390938174053358962955738144180876153308735500925938407329175974445286059738065211324815463507431713267163314562345820325395332754726408135073241861840743173573342390614804284673555751523441319994156468969329022456225756551310371491122915693041600716320564571479607070828266556229185089353405903068426558046772255754477660365215996475953615553343456689776089723379614858405814487679611586132134390288968410060907635442566603877799017195080157351078758248951687951873962222896709553129048607526478333553023048458225857458236482712275189597985265336380206971551704657284928761028969937676850802587895225795038569855576930687978108821483008612299551894084577104158572694652937564696922829380712299066011260249076793364626548410130599737257672322429643987912467462442307765389476848068177649531292807717781706351094219463695318836877905093129561486809874755925761583354818301053948567487362070383433094433001397964036542903651055256881831163392885588435889379231206051480849318133909086349351212893243874593493152852234641427870653574274199226196533000162532002383615016882652655019885919822774913428891388454394900941602582692128769103648149115115112259255126212126688124102550939367723056399725718454677938758732568999844127968504827421431327071370987639434200233393008739825231283032267577660617386470037051965256396469915882078089237350137538013991172622648494723394461960342300108605103941204707103759564448629881088888114724954611561275339236731935156554254467356617916346679012512594642006419680223306315897801900466823464989386280626422512638939786971207436346436178325602511111689904357639131155411996490060454418342200382764693113249026555308936500052209019874169364300391024427173998971369104251455084563048178506269889259497847460605116585235159710679532081375275420067076728691251459114211210974262183594890735116685400937080530543880487873634934989618934160896881839194558602752354328142019281158704434563986777878078555015987111119684192631428528108931945812464866207595183397424329889163269683539454343679478873987372146808339578729364184384286225735430001457274382036605514230734412907692608145309282538295724942171746615222844038145497329508023418843163198378729137862977350169867831108342262344364787589823343553241041353626640000020816804632224502767235224485225182836935896723384621620439374899037349805520836660886024174816787862205486754834189498105570918065789845545388203745396627372847493397604360872583040594677099716203818335061746285964967747379095096065799824003601066553939639242469989633703029911505670453380803126946206274785280181020839567012024353266065733584024196917558589442161756451058164965538769875819255954719148464094751591842712455271428157820426766903805830924342848478820797570855257297526131894923591325482181402953339017011914643064022563861881270111791603009497627621779346291054514590610015662570419396623108166856629648781195079267757649176646817598257142935144975069280076056700884310160122721646665043255285394598124830594412895109730691207998954953338598059300030571761861829499623824609101641586075241053798078045845136825350903859004350605695893569613381456689781643223350355892243101319257857838435257741193040336010775994527093439777932098044815064375014930190245307844370072135098442573120674320232460096331649549301544590418093319440808388849391766270206015512978256882537907140856933573708145814944262946234106896160879944754280029474214287694292157877836454697706337152286264609691603440098131335660515012663089928904489582462043213717267031376049318728530627765393778696704882663374412925812428324196492308048706640256579528965486416791342645629814284736989357508761970389256507292721919867633980536592651689165237298692860535196846309303650797846290061855599057615802298704101085568348823337437909597555178157827484453522964998443410640570462588077297299245073150799528762676148347758182372800785428996662600175324684820288888470102695831976572649526609551341743397352632849174048279872961874471520079587463262368291862423645584322411061155227274913800025972926677760404465365744853522582185451089783307295841026011302818650171896565658770089158349700236017906437179223038354136929421358302087812723073861906189923792857794437075445072711766619889647598393910820500679712699536532760702233261260677620254326213942293606537997773981930731347054257379720886152628892035730665168103300036706273051760510895758168995022449001939398973251981709757537787793198114341865694924801341403583946855512484620477136321793490289283719002284815681374379171493054489161113808610345486941553755110962274764823368727699379837202643530389261523856241623134278894535984602693751118524633558953585992617114266308249313820504198396415852845142698503873041298811881516407317961794955647899789415743100683728981171216082247789932693330516501118272031081109814276644296529251685069773008513329350977681021279555366928311954175541444929083416694344205843700085029212134388097715126331221797760322002656339293108703555124165316486225933674888531476249872597825477498509533853218960819623310627459558450938787380055604811939440202630890224563289711692026062465250441628334643986338352527580873324976164741655385071636012253036745756279397624613726434302629950453351236874989436594626496384152086566732180964835617344065436924416973652002065607648255817680246389908325365746208246455087723177367001595059500885742050481447924718089769933741714831426410658406273661302807206287057108967245799353244148615121700304014959936880114010424802186932714068246623538582700950089770088365169284285662989928287910936274959394814890647957881622589136273899317668306595535569569638719300873785220288985397880196824760188398015187807391697981663715961022645081466916937262871329307664167596417641425340243672680902771454727908182732172824038502201734492906898532518418663228429310449040163996577916145980913519058568392282744570472121772284129077607850926736688788820088627278473310525551642272461142854752241160353179996876153327814173244513973506927303130979427815709647871026423680807112645399038850571341095181054512859009211848074958789489742142152210123541066232806864829881292981260805251202960385798631189884007366766213329922252582803428084777893056311944951536964238520619490558468512761753450502278792407940961355228518557269966790355582104423966392161106567066052439794960964666575122654648675181899115426084982918231093663370771500517211070982605448435530942490371411057653352510024466686332432245685264815016330673082788224989119831232010508786778574216349283402030493270450263027192029181875764822279754618412559421554834699520739898219824578562765801618685034983693617328203751997871125555238217317417731084679998269476002240966702616343757566657666608685536063002925055391808513240794012076374275133143786924640378186149937371039767856722230806582416613552090175478126554664914938541779365470901931001561641093929590318592811208296960787252698059892715858711521413664436086070984653150932370115876631873552815492571620948119231481694287998692963329248532657845829187295471570787949866304057565226475762063265839470925088903944366927990868835841979333666899323440786219771199578062110863383693450638083635809927594595359839367525080694616119668508387718106829095634780975536002199189371477391827123601828245663643037215575293563079226990325852513473995350142031030438475459250652857433554680037960281869848464428784377603872607049901082552680697754904102229008082063115275682456205920501304362837136380727079871158643242672317157866628900098704347782591512763399347844649049367765898175367705012355085123680396562470703403185165836906248151163444362662589825464787327749185611213212008598645497307327555237605651741993837600332876051252167144628822555148247012345604729671380196088036145342729384387492869420591298642002971851291376449134361456255106976863679772159363977444861538710684347337776896960296816879421081449230836883513513904090333738930996656390361391046182739001821674142874411629712283464372149392425447989205439974376526414157776041111065487095104601792631185597422640150172696038934106483728511023453352260833994477476766435614716545311408791119577473935916845216140024213582631086749510428409654871534033948197591926546029882207855369140506762577583566743899702899645681163073321166535587683091426563556928925644616160447021743584048769213871494812769536114947460754889729309715384287024989690891314798195690492872948694034457590449440890710059620772633309488811970749285585216814372022489828530666552286335614169988348248387534255158262311889757911276072584810823685515370541981851263178958560317961038648526907645314600247766049392150739418831565545191329483706439553084390751258789517647023660560619051813548395476375838852256477057284123437420933175657183703487963762424498787131437190922851720918007730547753065120020374708491111392173292569040631439553866311093410516026703212915085191600027891627747648348656703261272740328124613145811268439514955719846074627282085615276820750356635104564022760822460154083687575919642789941462053261880123409140996574207679360589524780487350066268802863024041850642068889199612764129644252870807394654295090219259934842821743970099411214590720371165079106496798800654102599439301463320425398340019899355245470029027981689556571334236153188343646453894722391507629444391047730091714169297394029751802067006749233827736219880501328048203293865884831589256319188546798113223463692754390777827102832752510885530413790174128807484265993972831785719863832912666763443796757233858103576016743385639656219495140733913383897398706356075707175384458946805962669568402116407807643444961662937846213230616614369968880528677522560282716863215926435313480845451640027725160418485994544641432809092705990311617257371668849826858498788578184098950925858179514531593238659888711962967042445963391762445938584647736921288806681870397447332803134477091520004089911788745253700688049587445429137719732729409658360834326942103982716115050763524276920821444586143543054587202830566867789780135796528169337323084902347265557935464913223559666400633625947652469872365941386064037489543269698370171756347007338575852781269378611861470282152643478575085675416355895261402442194771535978544883735394327168579084070890272241399908123783028302685602848491849431502545622105511538726080790746225054262507986486153564228910884524965556528331308640969706435746715954860605981601170869558635566798509892806365253013731039837018256839677290359498589797626191035117427102586946877085499948645906652118317713321232058634736422928683732503606745386520306168639399655362786631113084384963746446349844419399481888528339617560061876409667411791812195726733846486703350946930017895477568123285692257605619867435529482431597624519069714290384466287906852830099542944299808961112338110436716180796983165586962226738806136910699442350427456710443178633712891604365783052519239335677250774202565981270269965710896316029640258637567816991255568512800168186424202098666093933617788398050560522283673585893821894270388368657569356206931905234609325126260978122714458840707209782570573591580020932849504273950941369635814395232629974576427724937775525007034016328183467544985084371891391306167164899033341360046674664749667732834589444716541475492736186697440320016446563841734451943208905925104905507804006980848266864399786725627472444164387324012866171478795842546511939215056983636775388133264104832545140600495086766170537960079671021098969505436742206422725538763684076969151858371285868245192666687067047719521428514214677920125490934817252978018598356069102637810932825105364060742587548712186363537022511191183972272905037660790954166640415604699805574724411766772224858405801557819292650682122777867155542331367086224693355838231591375417845601976042055684827418867649516082462359632367076236661956771526424436692993458222746787695441085448416401940659529241364859714391393901143202075757562592180197691387286675948711208092900828197712389749521130372381181535614021414452131809090319062528811425550486463561232491238845573823431283402883550966369617880796495558946538118693157276252759875510681533032941919386962787910057115013348005372867489725615517381803089974477643225800306032278730837734987311415914802475770260674286526043497782723051164832886137774731135448170042045818404072442313002464087103006958707569754005637587846758939400349880668525340055131514069727712469602478328136041238065600079432061153777053343785882218432668833049352822802944005572157278851514833149436673745689247178769571676903577425382922432047419734535657945313371350544740598681531771023369687737930104920854668747653890192038702058038906539231033937553737426749033868831749210747557655907625099374848920860039052217514762397320380274810469616929405181997770557635523797485308222783798841329600156511988719919775758752483461034742884892353380916677060164046595292299543269055464568317264485860654990001456646720289966232980245782916944955582347174043371412975008225836806784314455734180326736788999516523861690767925559732853812896760263937642492590796898788678839399618428239997665425253643683080617604489740682768011261305862713658841412244330027755487140961504181056618325378121042967879513532803371944729317168188557955959934012719265488867033152732286136774021032513509541303101845584757994097766302301308575418766907192142517836901262290321643544629288453435092131467254531786363831007539253693026628403321091027448779089369075105158345443148761739019094986886428272740239454683264869248354773688190791257517236823653171812123961930919459969457409130572345039577269363903320551668012259805925557344833729908139961001969542007598573633397210775522244971016766752022310184785132593441407425719114237960965853789015902237227794133334178773112848109845433224307019531501688755884735810205691581803396124556416630606791968254973053337922840550359432337922514302723858770982134984970638908381002418548703101185642972252652702937095608484132943469917620488609558030539997807559793009489688432728279916784389094312195435872832318351149744188525539136610645644578067853129720524527734829536348925925981885354880265740140859336126907477621123689542143984849463700691125071778833948947784482007962403841014576150906355174130241776012407858068149664623616982997192186985042159067546189904428281462774423534323717672582705705335160023266669323949643168596799638113496003451229352371345893566517329253075425305011237437917013776455697535367707287136247352572283301120391493260733654646900690334936915430180443750374168079991604809570263214421150453208185871994936077092590736567715963282393958316856796406589178482231443416682387323768138084750755968029590140266058357715298508638282973374746003027124212304497567947248604410407895772466203818662120105282928066852255385743498502255437576746444916027578622530724980917622799875852435056487235139201695131107240478553895603980912907706452057716099800075429660672059972000511400929915265901316356259416144211585491681923097218554784868326614457092573081314512179749313224632959193639356461945158579801948331533492777079574803870042942012145158704984349573466395261485893747703597285055659217171149510442233457849068594274417455436623977971275053394732901999428175356454824886679995210905647700037334613898529048596758923764149634429071138274192625043011298932431096021135411583736920441658688710324330861892487215401588593820506702222621406582305892377705687173308034695435598785790934277346730981352090175130638934861479853015279014222341835905627126798064074949441569812758279795597884184637742309822198128496909999030908563226222267448186762640024935640465953319387239018460489321457961307532266059380695902050634040835585484046041992686001218576111625548049401171418321501307238539854769250484616079092809217068943445807841248969128753158013731533702964975238047421610192294371566852763631883827215823015256957309687921899207625555646944120848139377083382851267972445729873600576083430627302362440703286199664601117577942616164939758444776990693898355761958981933247116222295124564400791504344756119146642978938380993780769005328969940608361432298339923000061157510308700990394642203879821661720870173993976395481047613979296208181556618620236613867925358140587847258987242736997996226716672787072014956501127823864061425960031256026267922456249768013014347972752069481531783852622288967373487623080082308287595291877043597780070353791066136306965888731935173555055388273132712182044221709445328549654701138388275838046166217123527635897948252864536490381655324230141656610297182093721521372719029749476203537843508139473058377476286118761686716067858312241534277053292871946080088497006308412404988384664132464615725689519842770834281559961309110893212788328531651564199619526603213846504029866951567122060353541610947456066081173472532192055320483780606114891772841959631472850330077772621167690701722602415693245162470211379572033789235967106312104780810859987555307455791668145306598754725972662083618262567110887940504851536297823429988496060410587525685087833291852234661221988441759222962397828623801531011038345657367179511950814662655153504810566833368873202359877985776190289108006709847941486790603337543214568386834161357827145103401412323220287953947295461578777813670870785917063846633961900972359732977756639881664332172596366202480723692940022269477764615795662929217048698670398651392478529425470355868914042329146495482764568375732441146348613970815698195254285463638036411260226916807924421599099578896219757018163820504557255424110762196035881000374623535887587100931537379019908265922516591686520813782134888690228627393358885050339580388963620745558646449116490657069304672203026781976573647112353979518058158851011865208926712128825251779406066384953365348870294398571165531491732386736518369224066154481463804559939472157962751840488313118668481462062688480045645689447311900356568497007148772400582311014293222154998594905125742293169292679259890900703330954164326643420694368925501020443737721564776945105019748016666457538874600138866196580085803584537869408254075761893108465542348578438825983415464868256228513797816840936300141640983572232218564300220608734506765205813328189947073796413378148146437853316363284750646508819268824946383283665274837163671815152673669876964064490430811842829922805755281200815646812766185128428378541094365203788092394376941486656083638087257070285273185356321526376723516500076751575962203983950762596055218266641085917321756100158922231315481691570283102422846312444993707078608984114095224982744069193592012934097947401692394235918562460882203977340274280340332414150193678542145153147168161327350800163263334630127783475844178614674903614190355987678981927904483736971370979210603926351310256550818278159126960988210411120119405686225970508881002258874664053108673911467366325034363296562579636178221722499034390193709143782535064347461410356434472594577264572848920226702379172358602958253288498735282928395130005683017825862217502053177048888763902858410285923307233069233272415883534647145311660259864649053537537241070012195857723744118173444831482560948378361426940740564075150635249473004688477987129778923907802736651555246657048518697908947967259158249685620405944426053698066163796530839720404588421837314918485843632655751947354655675761376946718436300061919339800680628061006313825234013580227897108683033873140853079654904363509344336843412192071207116745619835807295979446477521608603226717939927433219769281043857721893680075985408002321988708405643754219189594909379334504428990375284940419516721197534760232387713181789594190093719499164336943391952612736939122854183219397217799212597634183846892630925737749879263544223126171148018990467262676735109640424290954021655900717900426399468461474593675258649429385379911861037955669335627413908130167858058273640059309761294326879968724727549332908257465850764496983523114274650985100980829674013084690034093902236243227084766576835971930342260533318213159294435910197738904993410336823319853398408853153958882316216317713513870217942572636480448444564978540403003284686329542552518540046679580217963382214674388655032234440062825169186782839733526815561362785966978191198463969344249020479171008513670384650057060101848718022314055763761533737746979608598903769129950755555117437165573581127849924494786138326299887775049261231670222587888355581159816561772797208771215305698037107997889184980364773144773364018242959094762474381627279979362721120123891869839697388663321458193181313638794491806043945669264070642660942852731122056352833617454955935715093060566416237202698285607468055079708625157370889404867383650658298337714113204896629132202817191124303526757279076079756309348690316033156153092435530676570646990187357405097552804656784534130262247131794140460645029949301973557888872578968466699952231767724006149646583937079427539139036065876935372225337830534973125214746988951357880152165719231707746180028976816937166681532977017288964738126939788452107837629285159875786049296854034434979097256391392458456217695855148014152650590721086310950447810723570567249634295628456245016996105741032664405308219357332011915014584705349262499853555535385795207682687987057460134681016825869054977092448912693349644809353043232460453411461914235808354385411247746131127547442042224444179230124147346375164478540023176450055563930668801563696350212214614083174499140487533493954672972461248383894630179482252235184216215426961429794655384124076768237011181292292001250814654655685446256904046411963103376588313957014955327690154387358877979827592686711792252952328705666238294985809835129489278275258999467656784616378844409636272161583263794531203201542763844858768514074194043160301900904761171707258932898167470089310633743250223464788210378405013663794383302168684398459839508313227711526537625094530981417077282577401480735722113875938185743680167335399832527225529786721374964652975050728945337922643524262545238164664097598199972561789620645381386758389390712026081312138204381500805884308643587616936511243575544580717077789812229107748841844633431580949370689785862582050075840216588358608004940605999878714571656492439664363848580435107756439704410841510873640403094171033026249976568173200250359012321350272102566405187141276603538970268906977689332662678583120879126536451841753645090339194630291617818375779816886588347139519620253927815122985950851073761520050626687070600943254593870749098930237272384765026087801435443884040456238978075224739635936083708093090318383826546887845096746772237857952631126205004480605846222852261014767111125437678039092119664367774287196072453206855432076264692807656286782206441827175999212130518233137757785874431611318852618144722277888613017674470288060867768826801584589625332310157081647608467571934898061570172635454403303031809060067395614480769578755475873628787497533381389387776190092395800294718640035101659535463967586128487540169225599068642602182588894770820171330762143995218377808604085129759535076948090650350422369631059884843231857356958551459878233938595759005756338097861731291817606873390517270693819030613625372219754882556918278406170319431975969785361123749201912149184741636995034897433987154353539941576166580863860369724461900122756924426130169838410951639061452512051440449700284185133381625891388865766217950223291379997511837571888892915475555878544602477610659912133156458388833962636090877300984406277007350393684668659334166623416925247916262050535544933614391392116208911167733061903131895595541723395205348992118692952823608890798279734099605303603195452087764245786791394313555977253140120857546668278584406449093217151359456002806255749656878342152572064184690737882931413213399099649035689722475373324118994141761211335603522773974966973403871178378437309690735105529658633559764760485248242438150043576052352109420565456316127154925497274466080344142275733627966266734302563512322778655052777145037978633647906576062657917308026409164050478910979590119912449160509048722981297230836375869401968030240594717946782950122315960115629017065282913272473896585546669368953533551948829535561987587789353192800585089701786156459983295388973636948869849649053934647075457375707561119113140271945426377819743443579412863260139747085257778815445575461989678171664066598990830123188795452047646982221813825739802812539672342993457327148747489052862168104242102974451246386214602857570161652277246637994179948087528908717001090540397313092263780929744873561657709794970999951053416144695741710116530985376898661535031415219539590332032190773684280050820175631202017571156329954858491990469856370506342513191854039185430638981350167074567697235405368641205355032215789058288103253663343191578539994834524993156893761168092120591279983689800310301109651751244244843410917221699077771765782331336490330802259346457020032156692955772318724572376755313814978481661912273821003877721980976360118783805832206657868944989460808302574199683520838329244282027001249527302372078431288245382800187222636572062340930376755916948532023185459533258119067400624019399220073325884407765603712966573434759977426511961766893475433857421263826616838604619027025521844561059467700969389337419076833936840813530770086119595730297282988028235504586445666426019978378323197813584219895241018089132930855115481529289181875403040889518950074515547936901928839018686946024331815456915724245867347636500291360598492990494409875780979567451707974735327898389676807582428984301539059884885172658530484423941937477141726411266773649566366010366792400126286381370339077999648679342455643537051154229196433691802871104006686582868594501735665152295052325150641452120982661279167642672075141201192516321628624938045824352255640949040756149610624836844026114827601668260744850626196172870509575108547802682908111242906371557304528051453972870995299410858758138429555737217415125549848090764079767138658901039441983726499544913156514675459187479495359827651836224757854879598301759559238026954699729096193842872081937436108521993962200242208004092350439296392203558199943194401149019196497703541458535011196391071103858141768307664898513316876406131424592413989046249623426384554883078197611937105073648770636483610947048043617745507665278924845958504365628423994533752988755262645787485736182266295064307296756721844091266511493127001495083660084355381531124253039096165770460509198817484056067539634101471814574024490885134504152918360991216189287919388664037937977381134440872635749159377268684701380237395640980610522090660103485236656189847953128504813723951271048397421596627511774052099791350493629180045377269781854420264807248922524748132976127511961740543502930655021908390088996586193420511382261568912836491568152718675550170134232562077643770067297903095949405650267228944333672882079589491321132496586061432551932650870036952261712170720453227818625809049401895953180440797297336631389318655180101877562581357001293153426669988813414407647643999880156844774680323351278531647683802149698523030386142855684899743500806125311418013860580910907058081236292805454458469703258461628077139499868827570084716436993345186374816042592622989067491963086696873543072029939181131375527745505130045547938341272980007833532904509460605905886505872934901560661303812864406255470629797576744216773211754489984112288987610765810722500881694980485260429339677141309874210717338733851370281920069543635296353092956207402255977236625086619723983404947010506900671845581654764421509451233111113519632205657022787351346128004868433743414724416098969989354473571915552414541683790042300906144499298598458093159505291767073793285286465814089658442798713823869609379157205924626887674363823381182467180682923695586991986946940794934925122218923336474226622690717940028981259237278621692287103727632417463213267358446295333095217161664169276993518636703687318664432755958592850701409501331087956478376033834766237591549094044741567963959500020018102019772821711069162376897105524172630207448957427751248244838131536566035349192494300779233313332194234082016323134862644958245080582908773214100415857899672184651701489862051826453458542118898553945905645012040325419185320332024268430359097625776207015659012456650689687593835922554219273958871282012195722417427913586769199885727612824432329346231600670413511646023540323747725544327754588904223051554968639825653453191599027377457568364048871737844344095013914133227793401982517349272390307841633015962119338110075358899565047440042088822711905100986119605703569374783603208778333320151397557007831137102797459356182527476581903304372972958671656332323911531372700703902971359874534471611074533057932200203993624041212657862455921356412355138260284073360011720637356713022859736558798507760816938124870918009684493965974336749488600844452680774321104718061578742307062512927640573478771844449153842165357800799136170596943448543884867010397450268955689454439917590427388293590393124482099088045951157720205547704828285907332824843200694787550083613625366502855370906895320270341421205148950649069539163184562188407237195105946902017444424545287743906070711602499253965259219896500589580092352012342786171980342310082073752076543314402551451492693455237674787228181738096655878459508455381284663199722159030081151400684787641696180963230881983279522568872625647132097546481069116606298520518753199126125457254612192682442521951516887102021164960137002931031688062124221154629774712926284818299273736574612485427483729885093453802126395348459942698640492153042092844554027984777874188903146819884430145175866787748437971083221667755214603107911134255214423136219933529273556655476045198373847589836492651614346463891305704840517481663427143276052318179979313471612896633868586880319951655230834715914814598626747153300791792558993553205082681394355395429598203729495445480194978556546984562992559724545760273944322877745503261830084535280251038947232406270283316248870785525840555984683145435782597909909890232508917893881635390227840562181300715028859922381582029992825624346291658160791693645502019955568439709775129579791429729691096246694367398071282227192255582904787729354671063156762144430680616895346440791674286061784099224701187217398202264159063234991156898299083544277262141753888674433168069394065287539806090143734338987050749405233320168037475842319660937128304011455047268585904156192609644957344550244716726212652450459028706421542129653778081180435908239886301504275833598794920968635364391276552207058701171027760796426040850178775774001758274938202165123683858932603452852070005268814417053178939680201530123272937309658311103235210330614676862335931419121669247112389762146939173730768424809108386616011888865482558312812635240474586301741397922461419999367290961582263984138307624287799267804481341081275128739676171312452010923717033074022083244386168201757711779409247645641687968556473279607190134770355365779922703928859743462571344555377949640162378071523090921138066503724003715092045238679277107481601489017075045852034206619973369668407796099424771903787870859080999596793056142526410543370017215770818834609735229379261901637913230140371654153412485750878215248731700040921705315226271508851014900681146827277238841776613112432387280684400098626488285800878093043312580781260535233278667417998180019408920143753264858852154968973894633406023364453209382715973755372181764813103626176624265811316555299962030968898283784961436614336090880187046189596399639853959495148005611731428548798122755345263446985847769114698227198046291984290082638254427262674836561710154341630761515584166890233370098003418375737789264818606534578849438962873936791540063821571974511367913121683334482450465025418403031644366560437103606701499526185440707735577351959621721140533623383991746242691296404869341982153504656482641172783705507399675283295947195332422111474221674707330287314816025193906541039404086839802081703544358137221463678952044570286956735602860774135511067517642831509466654100974146627281185433013960300190017096329151857100310073389252591973984565153612907969216461196358937148218961104878830137817154819473174019423344428859354952679372202245890074306498122028793388498856004377525930757421083626484845366587227107616806804321797713167763496453584751445144889043791947381819554470701753246325506324223614340094407510138431390905278379252334571040281108992271960470083539902837660061280578040533324613969217594385402060312302814968427874343134359667667443413560253337214694662435050908067075870697693381212704563105343472321666993508507015999226159159356503555550991710413946217798250743530278668577026101149721069267987980097554656096335268899994376760855857968323799015825368944811670389024533926103190504651963726274976507321778563321373397356699165521723207633698546775431966568614213044834152656034855960176476186580515611151270395237752919926776353628699788666343011908239568758617979734274825380023435261372090067948798097709360242345717569226603287566604760268036043188087362519060110498791319518999557915508667284640267282112658352295682625437897346630240611802942558001778794280601784631193748091635969935888042434290589833197849741990661692385209494699357386688382699642146849173653886626917234448577567567269224709153184066922556087386772044804247834765255579141676079203045752801256016166443100635327288478907247477993518374454697897764204188990553556957674141305456633884683850412213977432716009685808996665641628305612576792134926458650418777445611012344788271040747839966890306857213007787904801942321945947108711600676716962839387363545390017853854411664550338600345447497402873207257436916538783074883597465266471268183837911774243080028181790494141926635061379074598003523118101136121659282408867940223650566635341058246041364843238855644350690951419872431196225477861939918080524756305299608699929782682911061364973680814095107059654604226078906997620229824684332929484046416528935778358754858895977230550814797523531661321861606624620282756625680825077824588993762817274976577362408435510481840150401873395584964034889462716785764293654827299982337311104422596879270281722444500826826216874705548587489314981980664125312340604155993788235581919941579948227571124328514727943180868441230553355541756348854071643855847816038525021117164439584886184396445721295813445198267359770414086482441388981205636840852671657871256136731418384169283111438257342786966921338890785969098967755403143072893687355985723976314523972233127700343150677361287361204420907873282776547882752902631103515076669051952653023357236597107493912892347689783245329860904195663354519230693891928958423114395971320215528316710815122150154698429845021539654052204692253379198751447497512034350610880440226532142144486251809196847211737731787943499405946002057569859870334440145771494671634476490461785216969394823538026919856204417211952970075672640780633182722485858960085042507846670019282790216379927093620329322669996594413658354399116464918697718495323742564990721269507387433482465804860220287279022268596481368020704845253515012963621567386327390284094432032277086211018191505094556716187651344367221208426900251576813366294853484201951492216793657308626362800343729147319463052793649736926280232530232872178007558052096462845816305960421586960622163783472147797182646555791163057954935254062426387308286909170460839646674331811026536472677097453266902435803286876936536248251768204285758837421222560298791735664601815736100255674323536050676641002893020412961136041148363194600470049767431408055455723718502095416990706730480461593462969870930152417374234253209903075256022644183085905205741750787178011083801586259994527918347597348548931569265268348116505534949362618740597399350509512319084439055702391149948849892091519638485922228561456185414053363526918344456911525625320475411990715599019712308102734502178591136250551553184107913933993915425772442070489308841904579806793249874258643010442913250773187840504843063880401673779423989683416526025295131544242111314405837366172340770310432915750193255855000619356545439837622097062629165012147515736868877881938889326027358952920372906996715539232406418616701021839747505670484072926172564734336756860771666873684365141273135193766549048296714838171464161364670418389389641246936686020246867502214915028714666570164451358452310485806352952079233613085325791547777689060257522926553130666334877752240169722621976142387410197370474978395820327535414084076171221675826896633705587920825636159133463807395506343206656258592357064399493445065084923305193453895566301887487018767575723680162192926147977866581916040211912114969228079653901334614145079199393634658329302144467318295599671372147544405616683533110671482637122155623891936812011506871449281739464447758797768794922104344680158039695092719880986327019604195622262619878905686403553546669708687403310796156605987093836084596099519932532106731687430000664034463431357545442377111408251154103218702811409466939101916284459919775499278827161025319553683515214785475810692955063564533264807588539772300076009783902132256727138651843381088177729880822166006606907631467445712918924299126513765095224378904000319760288069694805401266324577828274017014348339242120907717412051779454899073836481904260486621446617140918328023369351564817643175528994704259980602574594049731039615091928587779295971826208056022850725270188254580372643135386855738082529503061266693902517436940425422422453756593477645039085360429517021621081726763669218032425350016796826523254981948098615942567907550050301177687279429128985205423299967779195669060336456748065644916562514007560310776191279943846270269429715377606387407714167503218769423578427448922704245979025808613864721391291474103825853031767071375687121787339575232351117684099077518904521019084713454754841386560923759161965352772481965013167528292089008645305728453428016567815802586835748374193491104211880585220822672626671314730209425418826838316850551135576175428661981397324602024281915788365991106588791175983861937255094947583694861304234600134119222042239949095973113669425164993308124860557235881239350389191405171769277148649780469771802489659677949990321329873216304305200954387403736185886719559646183528626940840078283975161483409627656084520172083060076195871731777255761254882872896500036236393382426119588468044057591161014201818884978760276407283690587556463215240939917119076908140621116029487561305265012683488375178801941507942006964080899354435913711481002842755930037695930212573655841501917508344728977183335849330032424280552892688267765389532474396997717849343951640808232411544078393266090333608361725354279977377555917165032531521746924067197898160578406197312821825028705232048684982366477342599417254415361781901366454454878845339655349643048153929528354523724540665544200744441132610381292332379450987495667835364450632578953788910907580883044026821585499239312471253401932384554979008510305776892854524427389779953928579992050916609999591544333526094086477813028020297679212221613213239509281939965902867045244621913495053557049208776875383096784918179245341108652379328926809738962165952357306417514249409777216510845469388466570620450136014374327349597269199667606825411734570981235971417160294732484746523828234624595097385987865094020325962719284311032330635789302158861094952893705746607503485073356978859741416862227658454459370445222632923761650073723793078047681312847245831034304696293931962966648486647677681629584584306011781597209463986792853296206579156499082471172876565334806634231628978325248808151242457553783387868784553170940728607445252354002909872619132349835283895252959056504534396259377150610997480187588223339254914744792011089183707587032449386275447438247717688494555284437875763174991581889938219133775901387886468177364884584011157826868597368512743039168334308817931354173774247638804921535758044498483198514514803662752061448582643042299242785007018239341233452842973029092803353648225389303200090467946113785649539395386422759106885770785326958686279488855139132593446350495405293216999145017270070723849561174184358975558049343331301544115789218422110068989710388301819240875371105970464895305430732461878065696645207172496694252398634066030836135734458968147752943857980968255715185791354112373053130405404540694821322416925443368110403211483807605393250916525164069527838984975445139164155849221555361147875662258785603764804941076677144547720031842983275290431909669906037452514929867692748716981597442788247199578648702104570200601425038491976110251213228083853877453109345556726885228058067082468028201518981296805019891363741812449137225083383034368723760828755510376542819701240061107614583234185170672327711376829241687924348086405557448023096587681371250859786666477182217117980404074900920150400310545525026135252873463886018946743034816837094368007750553896882144091430211136481797907599859310155155916490277476912848643790130757941957137650475012368612715553731467209904546162936517903559523622693819593746508463285921802014716319252087027341933384401894451896939001557350557525199984725567973869998064753919172283155242612471446623402724405305249841982542426074066364116178651677940615564183088580461698635755858936805453529667431640092738126388666181942608422540032285079506646178628895143460922167835847677773667970415147269442383750458263813311755075987323952971715009717928143840341675411226804505871270537903767068027583352463474503901233722757265318178450654170630221630769085613641528603487276416727174181857061605594911513628643396898662781803492392406794418494590510508793935167320060691070433847335152665437313783503643825821520748433049235130520758489287243865736330334494923345177920381397167649038165808841679506505355906857556433569644853313496376847383672187322989062536373834986861254147381968832697711112382313879728102618802847716512160696901466944203553694269218560572693809571977745787998207090128993922094888450882959343599734344510661170220266092229604776014957136155671935895831711702894637652494884605268724416852205441626822487816365579074111463346265005252083751774017290504473771453164387745938641289397459984036563944069583521631501800110550053515438040495291901236272614636859380795672100134341841955518755662608375586831710202794797645267031685427479537119081741596692325943197910082225227459144499389354637587451599903095889710262484443146705827692054978477630731405913202694660086353607224703572607458473583600833451279505280953137268332863323885432384719366382914806380757422852218902295054497069954913498343733112704106495965362446813906944372742186465781659260542322592851797115341207866319828945523178305498747609651785360226398895152947265358498577328948406350133377974654980597517076314625306845205597014131557581363405819730343707633521185697062492052507063107862188094303096676925627489053487830461725400277761232400880038114518052704601797278183176730621384829094178702863640800095944464655378499365694882838265948147489171415485468634895077961871368897094083542379139014394766110805680914446878630067043451483504630585873662144432385642694348802538213375587457691501815909205828170399920332220394307014723569588623594444532415915783647120879767182348354267919657180425339074568535572284884053301220178575289074105254219462774995849540377930447485458532532652623076751872975593640780965180182497287401259414143975078463745190423126243482381040884832828382746998196402971060470798182373949620975755226857263283525670893813403662273377832302595004353866853298712915822116184539268654590162193485127958725700788654871242633009753112795141539076882726206718187885990792538340708800193655122809045758543585974803022552966822008905685077994954469853911353858714657289874624992553894786633062666035359254452921616170073202687018989828477544790145036826284629596872040529455572041011034474311419999124134187257923996573906658468877718366811278300609603292801278549978860689407473953054392078115626140695770959112041366166974772997328961803944627883462404867260271056787443302687651863629256763136820120373666874220861321987478707482634203669429140390173270541067254087481415171468592695295234537309824300119190265906971910592240792472691515897838998157249393530379180350933862347969976880691619944360089009814313250305926657981122045488702059733865599667535750321853261783872110521725292922708215864988653135844175871482257416267297082710054875869491376154628591640636034722426239194203161283520255901519155846034839015337531879311279556575363354447493752662788901539447059889532828495653898750539026975283272476110611266704047563814856578685417072281730005386534725035527444475469719213217139142180601210510211392273887508591325818220050337730469186766108806097566768043676881567787020430387090496254010208285788701432542679818810680995215639492810203363105555630340497755433068424531894053740318798726365433054453398537211574770162282036521936990768298741439716698826943372163506491518568205771468674325658949792773370386558569683263647237314358290286332256695534101127016094702996945073835966527500531544850560494072643773194657365056403877215267668241960687731311947891547716566270605112881079867516690752903868936128251294511108564424985646782626121679114270644723133867086038000218656692206746428294647921892846791028858705161669251607449215920940468245198252168092624697725804222752616188506999411416507813090064416700157851726168092700949433499140913542704818892856753418830045471559057865000990893372999889104371125054277776870880645225012606024303099441835704440720524915425196431669432261896512540625743314392966045783272246352896176514104237887010737006557639393530896571680705417493042298544095619752119635498444095645244528011137508545714043526082494180328405216539452714295110273709743224038405075635385288669201407293324319128438457387203645979227632075590633833912650267066736482255400439342783748701729570470549791801647139466422140052146517115370988216314082235739614911989473793888874402594079477963157692356421061092303407107087205466157504625239311255460680678931788576857744552527557567502628022118789205691471044537338172271431247739579284278401087350569524942604145830409898559771701450129580088484058437916546733219971403717391396931554755175815868174256189223558689146357449764248365505433171404984046605017639699024967175390987371888126956343573535232254965184072239073848996112249912611188351770716716082312633268961486147049457326498039245278591215078909988548421065940763591776764100039224813862281161706077168124425818192914669229752910146763743660496908436402761948376753315861756481082655232397903963662696633500359476941008571100498032045914644862564104955701862860304628340113532527283851046804234988815700964946255029752507156038794210306892842955239297559322034764867645423193550388164200553504258327178983146340667713109054723091406386770686862242137420065931911774261082588442708681696497538633099592633157608785825342165052842575878134555729753812022077461492369207890344162864413409323228670763282819554860127712018533106252925813937371021707740516620731603076353325342151020598937559277456526440274793504971000013503274726624101225318083459432180168685040769456345331274584513681929914499219927852756053560893386203526238528826002023310355676091106410512635168505778592267416122389585346052932114172238668507568946412536787499983669781978354307333304194007920032484270044211181315896764438717115288033866866110701574648531038343982302513140863738317930096255593794732341439440898095737320798712164636036375844643528890899957209183001546072420413235099535989789843641307972900412271864557234052111420580627790597390709013363155271153217787433449243305705571156335802236945355667690896531104417865685915218643621250407102065151682606133985871801940065828247869557513277093281705035200804667364880573277825570291490656264440553171966236011488806139320152140346986931650249447709758665623105022407664968036504954119849323766923070944367803089514678031571566027508415470802641185917592314824002840334586472550331669151143909945421760801471661334464507764772364069515976430905874223642483761807871319894619176118006757974033846062554503263257098344478051539019321777021243383634783488020035160410443451276183606794486263962795641522669293277230655803968787686750549179046375265687902648255656330888440054501547529007636497309656356001682176789931414871355595796846027079133092654116762973492551381045197327034564562107976177579163680280790734247868692242617456693237491614837978117118349601676864972820921750409140341259408266202871064651364984261052635077918980420542235346307013889523436361907111116069350641935981885561927995917444320081325337533406998280794715182791454666535790084657321289937135567890107230656520489971918506221125705175934966445788009743899323784949243057375334077484767425454958458103305608560555259741370535265085571559618434056345498230918888013756784678137818070849319919800799785663985971902555063637471654698142304979658745078796603410771832034974311721184020120964635553017832610174908967051212698523549792451038364219119793799045936374160676165194587685087959134420842939314268272572292142753997038367671111242581503848006876343864762287689658619548237028269564139926417789019288422091959546044145576094146549885169645672299628050925813569601057268400441877843212807317758018481381629874602385266475342370375354087977121351753470695038331022524676419706284355624051252857213089401049120502650098869669218661295681295184468423384992108200004736586038337504915464055020235726002487944548285610169827878820446020865216144329384566448907531327494503134677251336814705562034200219762339037101955766211464265727941389655567734323140024707265310095157133386710439609587514649145752699709289610144710370265623082640454994019731827103638759727359604143612028099536127383442302373156434441653987950016754518761824053677197602683803665606364855305295355017389830687635434790541771394801634724993037074330539201748249136171520604209947916667787711317701693903385073849088848905200414349124268733167364865719351022008787850716216157601295791430295595981722484667669089756285881067275505309322144387874866361193636628518684173086605246784699408378772803905065060388735640288127311652363294924447716336100295840946869154900078252789024762950621492558355655257737176268462395143833773674869744964306630806850872470652320671631262440832645368030327074189103015245835295116879252339903280915909571018715410949547180422380733048766766094209959407467271769180273097692088191642610917904262603211995333566186157368166467796878086999424751691977013559133636626812146857525044476443787257337991566661556886976164094257321630976931490481580170406347878052226363091310650182984154184229610604299150998628965565545598128288007990358623012190788536012376649839609245631954813398662941488305313100938759314696201511771123275790067912990171440261187168405277241779491841937117314442806415227437146288337719311662510965277552483574138656736068106734069969692395346609500376496445372560906025896729317944394677314095005484426278259814721679594814668178907596978593002782829288405083989027983997174204141413672755623402890013123843545757459039421988597281743678671595111975411383603256280972746431311195529281314508178452356087016975265329439202640068957826313794071322276556958607201159155326594806490074920309402918924998923478506801516318744602233230007984402775729161900900809903196745070947463661149568477988216175957538078172987223621445072055592335865550943032660061723759416825121277204937582974008694660031149090262297143871330272486462608527595107025030726939090528313728448107246035911531692136613544434290481980571842309188379371470992202127068034097427227585118427468545767483431142265773526385464436861060941309372722008194657199744010375848567261557987537993827023633943752704674680902582275194180915653651711668608258250518293686385881680765054795588826825097410163351001055255108913877504620063598147081313191629629052951343804058754168551383352559976431801506241318419401733947602662015084694149646936467408361524091284966593038514650426023474319782273610308354632376149058867218922172472076126589047110204980790966682789381288204166395832281454253813975427970817855564061802749455664411053425073399702340736215741648743993666607440221782176516331365716439400297661865449021072830432250621561057429183035992543075011429449322237990887051393890132616035474156482908881081852990135059604201801764061836104474380970727019407115621425756255927345741822752825945622440258126845076549327655261846579252626265546262336498092622908131171959479694547542176544712338101759026465855380788146485994813439175637026185813937341682273579444389397605854358518768209298331546449570664562868536784220197627105073593589243187498652337306625488925872046417849723632324713059280107730174222501943637470392151466657552663794335105493334367055587917506628482880762731437951046750597362708102319773561934412280625623086879079323827545916877642877610258366096378465832930254288360618217337307677869863278838153274829851792086969249409073070520990753302482547223397448550154918941703721916621565958516082002324346137731531344123702914373791254978962766490950727817537456483924560568486908285870673780599981410175290732922103424629101926200479748871046339866112904662485705112897316005883349585404554178239585153103274238427325506433321422653817526496981105493879915434541705282584668422846203230271394841027469459930444025856282203375394962285352278945944731463204666355642880133379901579133560704874008760254301795043351653686599414509237519624438535808960398712502173478321282195407864420363917967198913303151482694552297830868857001148033287760810227661820032777816141760329115289080499226623450205542448629791905114249395600014307043782914916608459860975697562225527071436400887121187626052455941827628190462642555473934182847843515636487064581530300716131831599688801407331764930767827097523519029026782989160765676549081013732723311131983310066058207480446369119969505246988912935107588669711862213192256414793956016543980499379653834228933067580359366033419708265629161010568113869899475400674430328544543643408945169746412086602961251069238105780277645448093683249403698112402593166763629252691508995678106576715139532244891615278942079717989619445705842584381621241001711253509535959958903121191140403123233118946099921171962422467143845873252771515929709298594073783621358066369323338530106425554709461033190148946122558093636770054301081771071098892505137694922362686464473345241500320470379720620454161519821944034623552773805371087418216932462958809459954594164838438723338825901106442812631943449425590625699418622955966626223123233557806561927963357513838511364447098234146683152691015938019360498482033001053235321404086819628871446691888472824743839359863016099000568627588242330657055575843225606265213206785048864275990297265858209385839048063431168020061120735319845175909734506895105370903401215150449786799976002551202418586703608966197342058887990760806764013568251083507744926298064674466170323479689193680701299988008754591494413575868826544986385842896738359925373092831278756156458820957485618628353201783395396496748946804691798856145876650835011505430091569608240689846620438662164398463897560290854909648789769972466895011628921154738261994328045161065638471591812860567406718932102267033074971588214603300270017965269737875813425091493995096068634294442150878939236733331416094172459265977424761950703567662986035038577579716019094163841737805013843948015662896913490582755373273896649418895667640122892600164826334889094521438044626763350870946815300217340161706461134902208762346057844491952582314246631103420770582619696652124182745918305557870535589598682513167137545574159218270735240129051924849561398823352382824797967753708284272566185159423928175860325119866803204633045646073954720575309500866306071229257495706803910479643231069458701312945940910813887485458824805733162292598875590894178099981190763560889176236561645520584956164687740321143369725755681423646484171858570711166724690274213773382402112678885216706690047754407266516944965621333516271011559833472081518601234155826354461016679411643913710165148229255948725292144690435440389438424485423593417018021236007772396922231642520245853093188282955427177553219034240328358482400614650468154012017947426157703379176772895622061624370741596413379395518845977825901905937116473944250842422547696566889871532295664302032029911098868287158634744554774536006302877539736140974063174262852048998075249877282299122310916600736238928515533334918743482607851327942609779623662002682038419825012181588351899395606948792760734635176833827601198075691690314332493920065052812380524016571779372708396448646110381239715118352751225538206253162008330654472416091571969906374896037067798183283383358181915328444168307208870960386261914080372869584895390912303751304503398433106779153696310301736807382644777215276301488887942622088512533303122804245665903733593443279173903087889552636533895678574063990746451746182892478581860270588744800386054460900357978568255507328577222147398940556506835184406559999135802625207275394229693877002962812874879809085376419356854053594363452047634689652503672039859524289929249450451173588961915096434693015270688234222097998499856636816305427493937572697701450552663452088474517747447296414524918835695312845898358332358541880020158449568209771614799543487634269225265657156893520476983748384448701231017346714554213216465779778923580660229895348769242261572773407314551383956921208908903932046555135102659780482732041460323836347447884790931050722393523173655303662290277629850211574304776194078026167453059165301290429621956580025326625499953023458651573136929909606356832301725604612709218448930501740494069085451412560837648580445302732567019769886317289150806718262929376948858474835791638458921215403514093049062789291413414936792640939040927752054181554373982568984313561980040637586899450772927762325995685849860961028670109222538178992750917403933377360848259718541434328758185808728772954806822765726401324886568991513590642610494702360653377344040332131287843397960226596927757144305536999426813433471305040912862528823311617109594281835192271068384945532159443056095430400583313082879650593658099509986329780499135641208084344618280815907599113431262856106439291457771212148672495470075442414691025776392788118343500907505498966955626912182422591529289496186145395481918073108868603311720249879649971465021600766369736164589161957542464500172391318812827410358167341027006697548295129327596252398047866370244147183325219334512768326294312255426076059128560724143838718878599187111987005623028281955473794244134954848858830339215926499666156366596610204929352122050396108506521405738503484334275789115897139666481295981744844606916722122227311504833456171717514928096510988271707203368144300097049058422902756254920828840029425710221507844661684783452281172712053640962755401746945356474007439693756698859022920848092763082689716607160079369069313650569781060376708541978632968755668894410959604211449146199115962226732503202708119014952404301770314860451364825689903393363744914838930907047226697475407843908207015836270394207971141837445208793148490845811744665530324450535975296658927512014369557612932535907214139857448296805315192810250492006897310635716294053461743124817238078691469196425754764187402414306015993519342381440471562575601413394832536727061428615191663706812295223615324153362113745607293597989508070379023111602126843776047814627289273912956626809133389333311860494885472104055483541201539929943793695251630914085405454566726737518462266392796948038450889422038760566299781143204095503016273996515850682293686204095118834643969527133674343878502562685075256238025182397642248549219741546750711963347000638819073707223238847256762045445895430908335054304889692388832029114340794540363228327661319625659912099137166976245333257928282511122058836541382945375168173839173531657880803874918625041919314294079653455289281410139537304330478188343865905704004760153564174661451204126944674741614417865115254076477493235584280672761240389365605350363293146229617071732172623327228223124785383172023408474258884091654187779212671674472185259391136949157139634064789146319185641232763916748839044091562645116740780537409097044452171850347914375303748868241112988850967015589737193609574235988766578093228988127972754695293075869058789531364580222524412307653615513506438992327877814883283380163053125470276934034356856110892608395142770128054495813047943470022691670065150371679358479187458529290798024722644063027666448516010398252662508564418732710877755950193243266480960551106699722239097620833527810708898052850456446651424689130644621058778002664763847986629204597170169079942377602641176022031086067602988167409271259329362233304602079162531604957174996619380963347258038741371873533954170417378732100136071025147197136084730212876064072012035806990035989600240041245271397159813007541435381215494760823150101907627767727453191125762592203574901626132308934372986740164025974254059583334859948149403846221984528149024526858586318179149800074234792058706255809234775594003548047870057889435757717684585022703424623699958931035598137315795004861955594764678049613851308675554389860055412307168958114446313219332096968666496431761429539502454766773610390302243087156137838740333093888491393299912470183849739159523993744331796276975262409280824937853299504929880997679356772425357003415337483169753842780812713439751576240304146716908448414753120265014245582282488664354832272669439146471716333598184224633904029873572121610224807119410835972628326088431870809065870263464261813135252944683107047349234887308918018944494862822126823468883184885216763883697171510417436034982071680306218537213139037141864443918248597857638576918916734714371269169870266883626756265606888838821349311533096225604046782580931953451045684295946027110651408099060494639673486088704225117686940608380207154050818148076339965649667375726647732466001036385367369091987991184134256683125938328235321772328367156048838673782787765622368127655562111197227700032894388543928361275186069305822532186384526139107086310984497659793715450644149647774420469399161583189845685700892105768078000024390435934174813004990630529902398923388866753092771871415475259988746995750586667268160019066593317916766594210433959586387655788270679085818800943001369600922963926715836095457051278667119659933990146550684033991456531297622822152153261756604187856620591647383323070658765552253239693889434064978453021130430442748547082914914670451557509600001561433581814920921167903950161821858628126224832657143690316585687038947370670302451018191487085761691473007081272786724566046011063314505498093050401259670756605181007788725891198289563851235718260975732586078365155613058116116750110131324812504647754259940529908126594600293878519773412024279132686779254626561118877772335428852254098917103519492825186804965252023201902768477566399502155887169710362625550679453450246428411404196101219782790195421967380608040322805089903756617605124330584844114874689864941894608017289350106225925003357234299742989263725326176721702686113116541098619728612092718799352782773866184664297480850770777168925505900480084015539191091759247642218177040763090463175332033243656966477996814442028409817134253871306785050695697495761942529993750193621919480195756561135156985090174298500827790878008060911117829057246604633627788893689046809591409386591196485622650364036465647407279103891032000626278637633980956163475886709743817256135531444733859467085996627692833135319793327372518799828688403378283932516202016044661840157193803376223249483151619796179969158679552328028633745942532257577171339839398394695901654769964814662780655271510393256953418908499484727233493414927584432200485115493670936306221227517032575386343804021188600656232139440032343681641175454014349244770580353815530798600821995234159703453664667718552157734142321785029099480875282820452619353762546007173845739302083592941064188481287881515357405447543395432835920688616849373005835700124053444045918687958746293347673203605532228997139123785403840702756694070320603312093063453784600821309534962920650746009446725833016906565564185626781354713989119129484857464587752425493351594805786306831380247553184630575444752002930203515656501281485238209017814169513772316982120760127463761505964959452454034161744619967327128141873533102117379695128176534802483195711104586364248746028337559813163407477246661099780345979325091005303146734280907352820692125890630020896639222875376566904624585995873106608464694068382620937009885770247972955816724306861708126940698007175183215444679676473458845986332214534360664886485774775788973662528314830059373663673069221510476788271344466622154388658037647012814265139326559090226884187679576231086317787694671863337838430675573252793926738509642378109877668416273489937904242445100262824049918201486160847942906296715619934826370158317177522929542761647202036835166666810663728122143362438377769363518603659514376995387832627535443723504332820332624357900066132956089486360193295854371619183848839871636199500165312291698326995753822479521707340873140368043490667282312021234645167501902064898568349424441663760108739218633691488271571980423818219313137401404567650762971876509175710749631993765167915493504005307825863541657812242566135978066352261372628873224547075320767120999125917295396212477332733674592466009048807723852965887173662444469940864866356026755523312216612453148224273961502273714578902691012012127266659179045672769878871421791272042392469882337776598742811238179130060606468209170504329695249528625845933538779330073012433604295485809251550018267356807470533030374883466550790517228757080085636051227974690443588321888099227942919590426031621455338935556938746419212826153610467120953810254858689075062122170697078943979823144210358377494490728502731733889719014357066026246066879421033499592879867006821840849356209089377316153954814638213740027645808975938844440466317563005521654156562518468650853547290676750895681663408477536097053906306891159202266298464040523711699184927393158236408355521806427525882391007828206873091509859403414431961939201931569108850460847416651363386602940077793052995388478959437844777554499820991625179324975633733177493006702838766652665114932256562539906878567107120600081313324697063528943245840326166667451017994470605450419847060328988654057212600529239344811768364921481419529109603702422415456024984493424020111308629344915446290431980794466938816437332789607084849215904202993360634179621774142813945746024088960246593527485795835356480103119914203779182956385671772169694009087707519351950489263890363033828007877091193160734420343130433786230938328324275266076020320018302801717150264414273700685625867770398835530644717350451604295965517509664848548993515905095401280005319503978375714286300249679683721664360683758159046087996971034452583765740158615314185776386863437906239968734904120681620234498034682202904404086685439614688440321159784479466438873329955987993254741761033920199742170180822839439764233777333980251148162529698924059701403549522270770399648244225009990309027367410783056739714414218319302921147117945849782636335243758346329267152334490244592904149758871736635629214736933767026320424120292399699767141280628829829008946349034309110612849145630591724815449333245543571715467498860952715852850294130003728176800206227652296926384562138341850852985405939748043237693068122481623213463730521270030683115811275239171252088378928727897591176031092644857981218674988514661156500448960693390192583540288282649532076169502172881130463183126267418436436995462140691845180515065287694940098356694867828088524239230846537152784404900989639282995724882631265325544675486329618469550663135428820061092281299797322159993531274080702715178952611059517921402220742891783350122094135704137170997725954016464339203422631795121872908688138829979379179037176941252669396623301359047776762203436922480182754956321126942918085258721744226964414775337789839651453664367563822493677803102037632224279274659166066202253108971991306067316590569480790913687665053006054818697320779722944833282694437089898476313226968219132585209178057014753917316900065657482518956424571930112449688628348493981306337282283967891418491316199229828101658680090993367358747121803642526401325720427713596255232581086218529790627954199863087845134895204637501764404206734312654361148248883980776398706608462188368324938886679769514706897760918596646434573032326865338276523533472914970028128718809141462597582907429570335841163264671696461542898559773160435981436401040728062605149858095067511388261155746109987068563661045230728191897698681612956432757508099514517154008158295540166059210965109990756246624104492606128281444694222000142122257740730334603972682284873602297347874351317122369999804837230844233337353412163616995896502369565760485871542764634567569927487249782913300253257970803568781822853501061529858293311482413310080117637940813437157031832590920756288002794526575934575636386559252530759702229380977292628930996649039068067036755479400577010165312081337773849377674177181428083268328410106307437309754944741037909392758342204277090486552821442523040310990181509744363464522043435740913813509603057088803702590328918981378727427172820256186441059403061739083686149182074674005106240648314847412156932329466110328912718520052168198264319334287592034429889769676145332319908684475835796225147120703432789797254520306188710947953089001241586903102274939583404058712264868645524415769288523150666575046321364263865997792972113041075171159143954545173472037680400747700106867594729712151009972801091038085940416830753903294761365551232401646735127946016758499286207252485611358919558545181285640148928770107684070671801815780494138179133345607449143763759423589568543346337478531805621526941951398076172294782477403127479643659821386671433211948549466300795773077799235197708977629429823351350022742183888849840451000563542336749269150482298467228270501130212846672481683371283268471734033787696931573491944928244928875517197734701895185948548362914302074168513457281474558987643115421185927959201704583513667554425148263988181787843921434421021970791549543249948225604807275894762933362974714471596734837505076926030384663237550550077110577890977284995120012530367587116802591942508941728442770160572474852044995685012382085430200828426821372434941483220551857908824584994112149589347365013127630271145669366520830012655619954658965802448831776639779321119122991019144714678475167662076226804204572407266796889817555516859620232045322557367794917779631711384046388910767818615966982936319659417375214869427054398796158286842284956265280872149059669642087220462689954031698561502763912060286995720866757218317779396448445931521057685167928794091076664258238749363673715374897994959295003060517377889536475977658227366153150402875266799724145257058761780990374527282970536807392007277152747888622007481456843063135894627481281940640039665913413385294249848976183129963370833240961708047621794878390138220612430286852953107996954729869312457256406064833976744599832881273082131021410562061975829695780718508671981630129876516248748358160313109205115200050717587092419572177737451658374055014730109530476119649893133925282881167503566581174954636611748700816251112147052063514724147970547904001905043368433240979024116154936669300681536829910298564958076211278612310872167202390593796597493486807959907054468889998997285190464453123353443415278569133416165788976334066742649732722030603676428566835834692443212973425586331798511720101692294512245191206664285283009173397769898423741142849668407404167110669176605626728540290931093790545542741542420437125250013125425327739642163603451124811793724384330675630448705703306856168388750978368725490049170322445359075631279196121427627648130496759728228081806139967970440198002621884187248913605293355834265877444877292153291898259899084904027844043236170601494599584221936460194283560386019996314186365354830208013968741929894900052042063872044830088580324098701672890432232995853948768214887112335547158493935285508570034157844287367536758495025700282362153616743721498255376673380430657305635460286153530990044658235973291251061686331098729343159041077052582265818869209660403553099446562281803397967954345156525704651740540894559695895312529541147541948167815464766599683538639826683342275604030822601176883255892939644664119324581586040566956339781297633706676903550247893650260502215748287518396033784775792135325789217750625749546947863420662294396638799556742040700139950309974611221009738375960594290281275653643745084617331272088234453511422521445997087745962257183470395470444348895515894727450752390832683389236757234801224142068653690889795369042686936694159522829033543779011995332721103817363046512321689189003165880541547069448356885340100663413239835349083011483002388904601103042820760771861413011976608893470704858569495699475602764571283825364749554140101267002350523524125540897378688727751529743963438537666609583333349610141057663317938530429822520801683304888658618086266811977240985453045682585403299239141296189413557822300140591241297486684970522924727275279057069655615551848542426189246353321208190206791606760356079141809486495781377664404551284928023955883789925218120907739543975112987400813597223919606147251682390159897425354850202341153726084144636256242162422239209233624334028076415630482764588931315359938764189107300193582905680609247107352877313092465380062108108661054363000061508853570181194591859111362815922058456658784088765678954432810897196642874690815043992378461013228862277247258347956041782486825247597768556008994881400401730900345632220413620101317928321105686965773530571422187108742537710849038963480430205081619572832405328728616697304166424707639509399279102476966376996444615847347741624643426709368433429838638377021882981551900898093966251653753147855017914753209747683013120667604009396862616207886095983093483212837645722645241284979205773419552375307931625349244352542062176856492663328523414578659994065261802119565057276777877830437957940630655089164908085558762596851965220087720674629963110186621858690566848168588816321572855196366007838368839497062489088789470480224019319014842762909011015757941007034030825276097502465495581615440930637011016687638822955879470631932678153383690541049145026375187586247046563822376673819211137576061392614412433810918749931423246618052810936869084787794072611395527074597474233428772494841512081322219631444826404891597055652015065289840556697319487957453176692796664614701171292673006327622166028657437580933130343584966721843976158544000488418163009412270565744042552821258676039642417801279321411650580702417571744992722683732220789858454457758222097347819877539643434288879903357337956210965066057115345109276063734332978069726744039846335433930312182711118480213960625050830217097408211627148677456679532137798349587125136110610184676416908736258150721994528843209345926823977970995337130362963841257948664563748915757930888093675792149623315696807985073877484558596434571276726373090300987927568226830176222631897032591166563558731815018602594067717682180954897436142289214474164460502149730200054928532096537512816274574031130058674819816796930544540779779594671201982010289668657515946032479323557219846375729537326441669474059045357557395792961921376653975953171397084777935855359961300325031148091146669212463088896546170557267933177502986670374639089820702594240011997879402172245212762310426731653814556594710932053184212787842644723030672529662591155692552302079653199340627368498603639871475321440347871200433742976172534338213186321686734328817391019875405438330929764970145720710643059475437086516741607601427935049251404231466771822949218206895353815802371066491439250074484801600939156079730452612018181642670471535366014291523841274239786300857696379244988296408061101769899306702648583794096899508793519852045305952036314384259281921571687244453221678306636815319280150149647766851407164828690652851498679931381616877982632442542408047475281148509681091922601990505779126284544177293386667495224529196671564132443246823502976566944811694076316827482858463717649494542066927344535545714805102891181989853348078011079201755356835481947658891219430943902138243617045356721953193266771941965044203731482614755936592985390854955637382164220740087311349554517869533032089767707706565332512182890010975868652222853599329323550353919309033418962979176964714391496141276877347681627024835640161887216110758113845013669749981817717602307561821389364967020949518494450823787587169713361732317552071268039278623869844408638760016564423374515876127218429235554626570830158616509690510920381729900383387674165052855526322273341336156730356607421829925444942704365859161593755518179491898030161783005977747495147530100448539457376287942317227546058127695504502068559361553351520975472285131149021717256954019150755843471160734925122793080339691595698436747127917968052467605228606328775837986828072917287684181346272841879397357597457096145789220437439884325011327537453899899327788117403501674491297986558406343247060443121343098100408160285223448377671352973901755090968626809628032620936816455221797383427982911499499731778168100215109199981471224630692818043676244199062074675300269445346247351997823627890306829888766513873073863611842223110723767890841096088088383414983745172152406577253502770937747995320507727884654915431371630193969397657088558306359198547293952087808692716485078708847232017826747333372964113506946547483515147142033417766520945600058968222629468559346233682442685796908319898773705331266132898728899318015231179507662964233614362082536039760001126253849836860864060757763838670622417369415414731177619847985098949892458120645921547486075730783113008010420823169570785921306606024167495931860769018037628471569672551877220551336272972352689861414616618324156227725810866153855011060481907055999950142734687904898141860304478838679070440440825682799506123503365000513166519644914753490466694340898787488838521860480900974920280187670582056068447401089760666119298897142087201809862754256435641176529502028167173535182929583214063802461105575214342936924947415785360905837468360571143319642994744623630923634754817686052598388084609149483093825994927547005746738983945579569571233923343996824223397732402630493568179619328020470208744860787057152448146764703851278966451694544439441687906928696804555907956052644528527168135014128897080525992042972248893133694672313844560933173444123759077429457156134954796602026566787673468922612245575141408226366120000073665444895836808025092272217643316207837844232618168439556899393691832366643321663307774517041884896898584159887561979700610940752244038415641486566422124211611588578325330272655698470389676855391547398222840354298664456604397898435214727780856333379904709287368017511083480985366180270841003528673447122875302144312454401048864755526781044500330967759241136930971156451016341764363350165614668679749734980052198033603797784175805568839861751873024316725704979187014812964643347375342779869486871006164961779839608768199685959019530959496622834133964083505499389806543902722406555127318865612380460778765244109648744469765336431209917790273606261218736422844803580226201145031818880511444078087608437057873943375372745555412570352754733310729172173660866074272908223738462298635962758732470771776480455303332348643454262474572277203465008688811053050616284195731289159741334138026734427625169138385583039750235122522280273443902451716361643504058220213562235747895486135256520672136876691915941439131200063653776569284505310254646917404371244455971840730629133799716592155455979515236248220644148387950812000276192523762913256176159569219644563831660578105684782863511581158693125854421009514877539873515150735634591169910114155214102058475362723122626850849343179729360687222051322893864136389226615455451950755655885907284876771008407426732122278673354076568297377701913103136456989134500871940700004456816417916468805388352910366902554857094995252617586038810562403821498450810928811470380897194128573185088903696599202148709927947087915987592581237513907902109910175912598616878449143270324945482926278905210580494164612886829412780347823738036441566851405868394142085607203997941695322938785689669092217313728380908418740836094443904116752765407341993774208006561835214138826529580604817724670669016126153438035165255270629209404241526133766974010775969646924689676054954970315025509261103546064619396740245773926473311125446565262651789547217963403065610848833132905902531115966069583588248822697491256702835900563227159376520690009574526065611445197923403319666682079645424894741035552045995655986816187336934355110239255682093362313289000853104279170094767473605461209285154278295389264883772952659068414828850728847924340900385309389980550651415266371675202919315837589520845558323589682374333395274743915071360807096114301952652370740263362957921802803334845825074428786212167069774772300383835422834658918061710967654594180700152424596270102466409593382144653630917337827103690696180102314852929818826635273124518115357524513123738236229289131105251284175709840505446572920765393818914778651412598917749410156480870584600503261366775781179276543993289221647767103382124055639364759663385486995603875814400344591216922185668152678233516800602266210411285209233743538948358031995305052906139764379669659057334247977493373611814565932690497044124569657669628063402641692998305005407814410709477053225464199105064596657024098110325676657271245791421760623821136471143195221966457671875315858662249212362118963810542696959339189679235984288389895342383846191560992903200100749446927677824679917928922432086793605526272650801358391153749154979465014884347552158750389224041210451336718569377489336011508663503910237377294400884542387199276216773530077634146136297413412329236451557269683664744281785568978229367394605911413869832777504206511260792843339322046589702582945882921738688601437836767858045185163811369954233524959868699347163145669650949810821732560413885334963676448005000424570398044564302324909047283037870145681381436299371750173309046945559473337040108407163075786257925058875381273725791567337762781611433250060266649880120766929444098407220168939351041937859464850349177065557524788111392064995147650585270936565285662162745064671362258029645064148197358549972429687001326507394315965051811205142025204947080977847629053481521951966196509026017550152750349856866964414817152202526328490045715445804390575204750500131766894674473490420192990508476691974426613737883833850422375537745382260077559358034380065477286984593971214215196048588309655632117172380607141681648981019176598515399649703127058198329681553945378519297926701013828386578674770120407168523274489862146457679950086994233774607835819721756436849166306777596006911220353216931260250640421382595862200293089886171475107862235179819413557684250910374644184930476723050286379674778962821516050330009958127048262129841940120744584028395274050376064522405781739434269765555930966913132573731447950751581353618762597400607781202124840390734224150602503823902715544578999336799039533852546205216728774903266885850071896471205691025201381054685692662678074924987257640904028847064612281580982545826780879246141894612468176965415355651448282206873649756337899723120674818570662652638821658019337116892760619433998336120328087570326409724630701547562122362838204882989950126007761823019878556036341611317374029955989789923401374491664804089388031875043516681241317796387666091859544157454610265810313401505789945008477971776683491394031827261301631820906525285979308503677143434581434273241216499234378616983702002864416223214560980870356855036613689135400748314151665559427254514385029829667108942994953693676968011531124106371894193247121246720710855817943648387051026981054468100673632882868703276400926360014532391736036466654795587353883754886664542259390629021671341085812251272995714498861091373316602237744797790391782358130027102728255962006244323916310772246310173660104982644028539331032862903014088503031508224693158643826343678798152671908263327261696798174564577833281354130201186464305297532463778381557854895140566052138063123572366449304539424590426489349545602487710684891882758227650063052448531390694531560397421600947794943800242241323066979394818640851375429061004327519565533114481083499292038040850694375773203594163792952262493005160758609962229977770781174946497935680043279515761000274930679132279606569131559924766773943624643922464089441144526213826670939362018479670742513103210249194794821742890792578661536949391149829750605447611131560112681180610951703963961839570897391753016561856142638763064584831658544719050426578170722325821216217291901980364232460285190996342754480627684277524981934749860562787342486184370563490396900202281616712730810329028233023791830561084920112245045674964793205752750615943891580057383620890174408836086917686335374868012607592900822792787212532982312144456887703142834177483099619938399838365897934088666858286405411326804698778044478617688963015775112014031670196270196401045381973408285374795253900552967143565140256349462908534837592968089651245972411856124392305508563021591677294499137551735109514069052713467016255491201101484526190040455894139666366746577613442757639387395111741974016156743444547796316815084329128696305711151055647278131229078302971246414098666880403594485017856266303672931857875649765881185394748947032382447684800367531705363822134032946813339664360598682442604868437496735103835957054893211470036297205266929531600695373900967866238481409863548028847465047542189713403497572950297401171808748087001307531443535212858246270816581248178120712827206077394175730595400582455067722203027401826905559257185580711525744259040418271884602310558926058814228837934431265829253816866768726841046356559822160601735971139522511919968380752531336732973519152491006314649658549996584124869257849328062922729967341144069143296093568960136228033772813966665033180232448449959257530786107396398196632385941204490889515668754644961943641225826269654013375549215398297385952564969506507726364109226210127199058878740417344441558072968969022223961224175506326985164556845361525388923907817986659956014468751135526528386369811954193285527194864141943702579111974490419659720029977873573968625162991516853697844315308074042884758363201497858690390571596092160634955040268873278371847641483426442284597870763239898325508361280512910249358346128322064537750870883302697454946586830922219166397615291320140858664152717581491619542954006667413769947295487521093627731378465494524556504208830358812658976923484974625914039455122569141813149603564353644899733701540798094394560133411141662425741542445483834197984833108134319967178692229357762736397098961802865613556168530848896705866301349417348735612911118408207968802614021360469713596541354857338070903187570493151817596182838063049743676345814639487464311575471278896304675768135820539883062650308817394477892782157742609118758339766253181344915477987244803822223257777382809471868596634994954679371577557282441077685281796256325737760606639140191386783913055224100697703666698631846088181848912852796478416230633717042938804428219175248360396522740066965094867614926724924221627142625785623247848691056319607024415777347537183262358772438373060113171004531000115836513055890985318901262625602829466355985939268958861396720502941500250466019935849963435730409997973656853006964543454760318625070185498708391976562846646447234147059997337697667707903296091923828397852101535245853196421554779393412869298723070404400066876416256277578814510209312107949178333851774717094088385118994106373835625184514240467801771346025905599928896926607303740074925473092950574106187517440669493114031371734502039624956122448653961113103106641407847483990754661423102883167604781168709177519297203826511874822983030842739969368727154929038168667775471664993598379396954727606455951703832200930601525979196544021266789775522562191892341015832464715315236421326548175082833037346603940829380249677298434558380483843807883048546150211503881987573419726085791612587842722073778184634036259033660385108820688175485897008239083067131716337997158137565009880507084049869609173035380783686421087799428607733919464456455202985754096669639340270039474505498734178581940252314906943227781295665652064616626017038416652883126263735651528872763845881715726849267041630743876817340211436304262645487934132228123380106462456480803233223411740139002920213237717938831224182280785336851083860194268098682519666930933505080577265255881432000175715099787508551810490269198755704607442868445627283771377968994347173818730264170004326443550691674151022777434905487263555510553054248114292543373853007016297194223791862917334399238377664601455717939364914236459271106393767230031956090190796819669550828946408940463110319609040573592487506677905766695838843310438900928394515230715437858713852673548878698531592905858486922235410971361882975111684491859380069899870620422425374944621162275511454048903842124062566882022661573280550054084586580167532353542416795980338139035501549588940233969235452895075386250554157557307975294352338874184914404039948533281237557122769542017441300630136748998650615462393298897965062183067983321654285553730259241586304822545342218424202161951405205988245411627321448526347005009257850863575608603210472898710732747372559158283641025274737670121408177757124053777987840614055086135157720192632451330194828702733618156049578189183197794364968442886162113488917064743713650121286992155449785856356143920875999485018717824159231600253460441501586302528464668421475958126111448015479971569520809928017252556690320518729833998050220525035189678626528972277560278003886489742634423505211684482865570442267058892903787116325150132245882327524938930974680635689544408323923498008328577923366511666043697477395472895298814823295751523095966733970408570281532252629482903327312022425740574598297333092736568747579477069126067277640765084540985983272009306216803376731812123573053173240500501110050678813213537764411282531293218551990816688845268411781800254261535228198259398230571078495739914172875776083884162398828712059159563998970333047265603388432588640164301507590506847238812204201723113143630406647112036070969380405333666388799337676065204349149187972741383054392974249585368351906052637665763807059303591252307441347469086229037587691148731901029005326643219843398889132253824099251071026060200651744829004981702775796204555305858667523777576350598827622954374467049497810269962821706264255312258052773093007580861661139928627021839518649748313684383431459860151350294821045722821522357658915944618935584470597179848325255702810716213327648499947085356354569130983293408472284425036462266669946766596312315176908720044405400356547929965553069993524176134670452165931064017807393267489699531910252397300147349559920652181042123402400885638018499403715617903602290322373293061256000441709414031675818856748265938289322581820788397234111448651169557172402720454249374982571590341421623339781193974929819772668522543845154276842983287334922329799035317864981609364984945324643493188779256664212843367865701325882470347757490707775085385098205058682119831475135197714583745251173612375724328610897757827005921632952549778521402778578226881973136391257299987257682360744986723013075441541135247395286029001416895466449809387262579280250855189577602936057914288761857717483003085722585767339001666493943437558599424620594807130440144993587407997621027860401220981945014723585526802841179036616627369429412494969267031096107966408202777933960907973865000043405423793278026122886775462198786860091163601658690416486584076088713047880934600182683742391679649203543748743776488665598971624475112925496139957688253775510064423417399417116599479633956677110955037645887305140595324977094867145704018421358348281688776370480720438591463497570099588203956615955994078591259381733238096131724052036692178360145501079591278448980650549522243138983578406380688636998179366192588350946965672245136846163110734871431225772013553317849640011975344898755404434491947551230047638001961652610374337833059296140792690408555603760684769158100512268103043793730080915718795879838055780554878073166406402053635893394889954276702639219533808963225301895918054579731093916199106187951183266566602995509469489954637397846138624596999423157758081415928937952384830216063395495063833373306588204580902454130117779753464353759741938730284283587686075152778843777900816468699614624773112997245271872977140254162449080380602299234027583793790195503113918237524015306358975029817836133558507965440976933065735093836243621346178778704783444136473254850396753819407567373987898533699641049860762617070696774276763621354144321105795185526772849742222622725157917942173708598151551203152305853208347699802350957140253845417412531830925896287839662476985774126755753120041082616294283252176745683180526088557386813491517528051968392476677111717635801017052108361806691984506516711633784656781016589345993173405093344029750622168180374075429791589435908082890093522591327524767740822983453881156307237260733184426763705379896971587019282209032734263900492760537163363079249031511099159090566194576752884597443206848430370086858653114549956150323855456456357098446529782590122418865524419425608115543720325458855730158814133068766652177501079611548212753413433882630139487806185686095135759907376114988036934928694595755645214764061426936897577814987837010475299549500113151555206257862149652420520920563330590824795405528884819989983721250910008117926387080626506158128221829189872430154360459862738353333676431766901749849350618636321181505753341723401713322874424580227905059507897587559540263085778472677756852233698045910849287279071002388971187262534640764661284572694655455847307645386762075623756779311360395353088726425450878655766383240248137469550482979167815124397221132622574245315490282830507281256992975667432493501249795076994752148756700902004963996621340143362389279435247477516625493663735976809398817539006779839523531093507701024685685626332145656793006514058719569270296547400926709759143136367581273863821048288405744359351320528469141759566395742737418679282232072504968663557132257197757837998496017913162841469842003704773921792156451864765307746917974187501389992880528107379579176620346400994463913858850722942363963587339954942074524804599273422397721488947825700364383620141069594696102358404599146022875981533089871933974006848922683666567716269874196961865762202127206952681237916223580697537126007727514676429725383344043641544025881299457170861833436860580706746000087022781512700404494689973395100997432579055242577971040533030611566877783066710038549555536986395915279568510875538212668762019086433513148042282152217921978209701346827512360687199114047282971245510203118686793390346043063815410883744719942370333812446797740059628159837821237064303190233047378966607107086722858500706149989492960337818717660770548882737096066479896111074922616403215577982208482695920050588844855961325325704933997582370983721131184625182710424414872249127383854989576967770614190570227411706148415008319930301836213983000805988441864932038681292575313172675924779985944014002193870054522250665949765303630613801682868274715126460103978179416362656562501221926827007490458426905389801890266514329836466294845717740070501601061059386083684756740284463407204434113346657990114494761772283232304579015362242617747321917957906603398061861769168150555676899641715179281423079007500457414222674316446292675464661999297299890999929274119855424343510751246135390434803141251608374376491862367827330165044053680806131478762694227017039365896335402419675501208300437676548335096697404714586023916280706853505683104684826483122654678061329150604560309699124047612500219653580045666749483194244071928051683776859971532233446880650737353044855120430093896715669830865741819000500711746495653060186723892915599159380273892498326952515452587325666256956205795621131557230058922769821143519835863957269051868701645853420271983092712382524948593119690784907734672656943515862442205858985550180217015239711374728794106786056892888685004895953057491621705814976564583900519286590679037457631905889375390587086374547161600899039298810549894497561514002118187989563646625740566727991855912260514567807554208868280899517585509430060059833895865615818715756524689511201548895544184829882713209165907550598611780617973169205183825367849550638283481203191254141223084273290182565287666709063237965738204355350353105295275061468441735825392891543907014162121243822895559331988259854777506955646637423319549608413595273130038386645808799110041620008948957500828243838605668487083314296539334627864640302431014555101185823023358672724780460151717318575588169037564561678813515733239336055482165606145495968690713573718920117401055540567968057081689272983203259181608665743959534768671478828752791907979346054490355576116849666037618031132997334200056411493076885075143436975422662247797820992961518058702239457584029329016287879477233198905676208731456502121530210943449616639803808196402934192235873449308239388309317413441739030284292412243239982759656887177276439677563244619400827735640403456562008752186639306099928504174401302880757388465836059956517775105962169062266791193827915577618970634346913643567178401752400189714527718101677696601636360116578012583164322310849265016875749787319251397502346216035398767447327303662751951784113040979904985803259929172325276739776069223228841552980741974727027168157822572114613068392131208024541018347378555978518583472121107332760133209672142822138406328305725270080486511102914180353569820568867118771903272239491248465473011922298720530453009633721606266991568595720017602103722154341905394030108943926470095276082399610005784164890583259032121003601952779758531788849636247413201235174853439788422358300837189058555582442564713327964492271010379490167450857385937216758861801998387326452620506284639165954142009053531984102189306414302201614492542762032721749155375389547768425592731617982514055371888133383405080107228844582826431795117438144814986298194044816145500693622725192019117856611839154569897484724081111843460455363203327782241853278891910838877803307582716865959904938993433252555699273324424879362214613448049882305826025184625954526042671828401429304254998743954169810613869377352628065796734285662505512154092814987441769772824456586676639137175845797198459424552708543384302704377513008442668154129784621420256044017221793986153853234084273164286209640827688662387679121982235586206705586140486024203134674750411050232166076027609076445064704194195873156687965809699168295733774057229123867597566082919993375862519148768456899022020955238473963838864275866896859546646513602760886857745520448014212671175491584381291740533118860286246854989264759593535497777754566418520505234478146140237402176572112969695136068244622181397009516711113684272900327814507727595614124369081655003115943798057887535285544176024900619311949246574352021543631103612103103513184889966238112236770726512847080174582129760758149539187486707426405431200054389145631034704609898129256263250572194887276544905901103413599130111821488652012980400717720698041353344397061091271031325577263248030992668279603020051776916095649074119357830675233868946800307852959103352167526218716502272125801788471072249466617109945619940245751446963630891827196490683593130785602265677966091335124045692600296567263272355705100711364828312141570447175774769328400241102653210960570485085408996708833776199780158858827518206340943534309977365791904817494097696374681503693260818157755491516906527458869584978171934855910696525054633169040909709049347436922007416792843701315316772271802724630440378014503627075684816415832523256782200703193861973049126316154440379031240007598938315761721201626570837861700117728504379555256257705058906780295456788877108478461442825860335585405888607129258791633723683148981649876167079546687151510688434547645478643358292148422675378724181848700577992661276272266442576021551571427432393032239133733883864044835874032463889907834346762434515756595174823467624475417854403449240146767890159888849888909959272736297129460769144823259782480161759878410616983897321203037932195793127324860610473663418213502542465104401497288488862279703136645602516844162627534002956791276836136660789659829793043579981123330626599872185503610514388064878069700823372089838628945545752235235390907080602411120778842397842092796673223671446377759841512931146676425729158134396899577960021804748252104141570468604614517373755045712537111266296523752927846908691697595824847554419944627785380447406743659630767087896093719977746852408871999308617107127665285925025143248121381189210286063649045048528354322177967320519410269680476469241361472861289281474121600768116586912966939849741271211942970695132946207723906794173082115530092976344396232086435307649237764096065612839988082164351988012509569399670714035989648033444254437180898376998699391156298401421502150856532946431463110517792577751723740994729430974771658594644031301003058297409347448275016089781973843281238964425856097602971255301118912375043155203792166833224720624846837102163940337760401970004970091799535712708818605706638187164955882220600874363356725756298591855353178347377393275798368240547282457936663805796278208777696053684708775630586195997405540153269951119285761760163665688466447064241321042225502543925986367654379641056702065444256421062248469856484282154028815183637467630810115990978822116348597896917110658492444114399298692074965969625769853874553067328450708222810495579933565987943008796337549428695466802740868372940092115355333806685999268532503823511126674381141405906306886492184581829563845442827928227176843699368161321999329612349539965743329088402659196063564581930357089316951720934207747120703644179994592948876737059222337202755075931954940804675623943729534522990077093837614034668384153718909475080648571263745685339739593824603546560377005481963903407189933612873708282919478412700507901825353559553912483391466901521208053051986130144063792495327364619520642405526916469923663130667775572918950628498118769231839453748647707396643986413922629769279377916292141470069238190440090178291277310214088469664801457842822658067234110990997846027061535142455431422445264725699229576761141478722847451040850610694101661897966550677515858650838315567847607962714288399786401375949450476496115491016870068905332480999316892984468843528757292595881936416015860930041473623742797619259459874303166654322817027568061503864856404437975959764614344779178543129545185549554028368821631375681676075608589145552245555383159595545654213943422601626746875186095613586486813594505456745180083625317161052125048268440838554245873797645896846424592472962470691297153674699225692929033546587927986889179950942958216747225390333294739876007237581979207927412275524624632166758510627901279931681541144316177439610393063492174413383523071065255701307591779432605175073380066664678547645156274129979642280558497665925797947291446676763695948274088881515803254375821423086614687326369219012105315142705881143702362323982529494869292050184569039795990661138184631078744786475800710765469381633316570963539461674952440017751111256182014653316707730501253861307698922854577622501388466781026638019729119638942565608540722009513938434924075742308634068667403688074182890335601569593188683375165506136585618723833127996650174619513323166222157082041036202659877959102210471131123854189744218812650933189647892120379427002137168181723254083800412427763818786669226099529244302618750669262181053400042630335541072050968906611920790000396462448775929513931212904056223269093354984403529711660240463383195927335834690535364263810277623482805623015015007819880191772968035127022473715997141250567341519026622562684545822419184148282187848225598440498564704480572923448882500222589340928536940086693982436307074024371402709909886766607599431885592940509275580684988056798490110853070442108256925779902621961779249435000140262990003328935316337356384854805299281909917181338826075970784741287629662859323052018827204607681720208979504186657199719306660032360256561460155375299941611322664701935009735929167007428901623811682880106753165080989054605065098879632607802721442991728214768773127854025203550135027120262916889417678894207880094221191562591027672083312881404823615380321122126384535617173232321894479981357045519470226443168373852655046339499964694755176249904442600718908198057930223769699042872500156385069688205848120639142494367749515160130831654724595323583521504549520593651482985401077091408196512921871567430459446550360957115848587048353080823161353315282930231760679482332761043286212889695596290849496285447755181971586435975929699710468363113602578063054907307966843033181509498656310154791666707644415389235633844934935667950907620318787683117999147604586818483465734303266856355719875978282630762514186634348311920551267926228745202392880272353579824596920121773220054089877678992436014379262260702795407238184999387256397096517171511825434636057447330851964975498090243425177614328293042636659497520125276595767349266388545604734277848709320114140073504506647983819268624527872511660837199690658018677475409119129590585572639092811272622973561912459153997151795663676225090603760431981890116831542257913438559192048160759510387957514080290673165895310054373075328584970719484122184773248766963364761717609841851262484205645192287769268103225567034027338989922657076992666976653336387640309909131516227832199527973182050724384062905531107138080849583697053244690694356195892545204291692804340791650167229432919959813669117635075189197266097295846971463332624111934646482913658141169453690708868457018381551016034555317402781093063973312055174287384577038871235928331504467085943887546487063179305585325927812516106050333073695118839367549510869568418522174566735162608649363891407594169644898219904210599625957923200338062271544947546406786006133783231564731051169324384908840076673320321186229380792157721637594640197724966720332668681145095883977873003000039944814205514697837644381948169653198705539346555552516114605199632782824911408119898000164507195447797883466483533792626665357290119762380218913722404559869940498419084291059829116832016975781355571493325008947080880662962343889284333825743915108945528495355802567333513212943025980694866129275540551478220045790344692434646835516697487313917668469854967792310896789893705689096331560865399578478894084262809485542428867986846865594909768460192513891578341348680467257582579090811995346011456351892939163353472324288624994553815310600681635802052467180598167495691949364965569283598855057711228016681446076996075984440387211362481735757926919183601324205234145276958984744827854046877041678435092109410626853099443663924837263883740523919661247011831686122529186941757207827674628560174590502901057719788176231920087275615390451722510775242954057828905911554155542083894995645343322843254789708268055609745088067285719241616577402870898715061305456015538474937095018625041315135490473526711033949219682194449267294747784548875268517261428591805796021326977730769454184530136783709135809752390483006120419065486467446839391560108093139323156973708152472331602518237033584377351358077320483768370613940095387051685051958601400230484541286126972046070338118397844778183849585764318576959413413457547656940767675577162462615000482170342780300771298033206548646882372606686303254159425219959056791557925688024664128477488035912106581399433742020452373437743340620014578670190382873220006956938194249537022796822242193321251973359153585831376275823366642934770857330345386381114244186258123320699521818024185160678697435321902922255352500411576535947307613325558267926105216747690794003273622213795943831863350150977682119478110209372468910210220292697325858038311685909808869131411097842609233756009825403562454227264168151287201589070957628263989890162343305066479679449334436737965879969779554015375160167812881483419064204493762358736710353525519481164468664073926970964852435358612022360522358418118177725516570079149783594541019356656943338424383293469425141803966822161778799401414321129419077914979123661577658008124262960699392943415069158436711283470177045627384178307587830829516717675754863909149682924830167725942966646398862735420673221006176775549841389171628142542124425197714800760835957424159858305093459089650904011489922409884745889760885815057802111275831829063717684539590455890719611482168268162661802554709959080324702560195651689513050666191475394405993273702170170798824740939339874593230715161108191817500498254912505443825180843781251973435089460577755019106891860678312659841935277608393447204878015014782676342463033615852597590938677919728329139437840432060977752951295262266012071746386943650099535423964673008332459059980182068080232026888668956201275253813606140455212095712909096267613936495445899725609336332963588854619050959518455121119377841491616473278180098026280075189931805281582275542860968017349355248973607792537892128592146571922453616618159713421972719349738672990671676137263024813615053953123025215098986621836570612250428139531850278456068217924803074017161746242053163410736511391465175793269909632813275318432934012204180698759263748678164309664134338275699887147209019106867023189819334821729416406515713285551484330196640234251380032635199884308172072833658171118953640298645968155552619243667649698712493122554794393594228510578119926057363012225634893646933881981540700150469118170189175151819952361518038235875163163659585680905395236446599886671719227082267948018269669949569817611238620210494077571739066828541634173404212177253190020034652409313223211608866981816465890855856589430934701161284853417362549562572777170744961092857830061986465643669071763529303994495235147598448864633794944413745140270941400808368691061232284984269685467807103142310546846575929229734492278700939587261483139158597096659687426079449953043515067161796488509427757976395607681349309951909159301892383303641028571567175033485539096412337978709567463881277941769520804235395270283933793518051022369406910284163492815570960361474401735895415545106047300294725444343881677010356143386813304244137190164548235396501357701672931358310978412766253602376672353938723506628719573124965302507661723591418449366198194459301743339758287333523968617616541729428510018567368438771158388865853688425286842790795283479780185487538248577607738971440365232872925576340236915572483440674141035695545448046055816105944209450815352451698918084584492397936145384435166421183194991315025978883027212260938764462368277133803328877347462415977621940404971351004217101126242064550981497765299321464284820086885980028997489834685443722850604171311729860113080973349067558017074162228656993243190710376599699967296602681351926457938904154475245771407762905222824781255309843262376395124793263093296475355638584491406324731433952761298556625464150017179982064734204371626136979317051226207284159564740663967772384801046019145367546867017968753916182954617753784500535662764435379090756758428387959769324886172353285886966759535944231683100319135396105038473467690076614503497529806600574121729086702735241420907178430344032584728565334487226954808893066803933944497083866742119373537299394959710174187571650125777044803037724200849149492542215944027436727334670904832922419399879903233589235915836338364416766294994248101852957543326250325164970391616526151550199837667739390083639894997065903664234098569872123963623184342325516609428320873992856889775959190962060301658600629294980288068100672176783200770059709704645547454035517383461055931697209809467001326490007034606421161741497142615567337167529603919982117673943236424606517419107571710533723792089080914111286219342844374200976747732859714369786459986953924937875101205038886965566122854390017227845307024288874280367301541361816307240233349902476893427664384691729441336878856555358683751335525643278191617354141168559489774256936740664428865125130661695275714341019083335894691984810645651097978151130244149585034953651248643853658238518847333877725480168963915373358394456545066680176628637266712219533968650236522447008505511394476358447073812971342357100550327627673882006193908952171925747255552942939675959678290896444626082731971897589784090779436915960683189192795059833475805097752632834011062457483999568168263132888605021120544787712436458577373695550843933418557503954881782576831511685481804576643571925828937424653875172860990035253748385275130290861509349646860240804216818489437622504044015336975642566729830296119644369534966466425289102595632110347070123178943463616728701515319759929863270853048342641868620695586628904139974106015136470300984213027757652843022159805418989906412065657439331645508945406878886068916625875885783678576881192829123469848219418269922412696400914541003530995191322348042228339912136279313669159094480546418892665989550497907829580106501561522386113620851037041691611795628335549963890220954854385158861023575524518301012961592386563464694322591804763290716381508508472350421148655408001507690974423305817878359705345155399533755442292082689251792789264890367554110844514906896383043185378783354599585793522909355181268580716231334502285139217314113421345417311119733543212903444730340894209423829886987628095500505597801058772919006591847855786375330413615346285605449456049393691310700542706596576667810864534079860243192298778114799674057232198471539322200150552630720935484420420304158779896071787379457203093026505926577204124372565266211724436785459899296001540448803193562029613586680188452347591782464481691565449138438411389361380818902515625240949305446080955886973919272836740891419772485787813293211904284281621011203008615058106878598519719113688752413679510958287822212532451979998992958293935072003497981661862458954139811807411504934201417514865372209081041679542817702482086929759826869851414436663548588480173123965982718591857947212357444377475619162225339278142189739371655368606571504252972028051363079022389091763418547132550581534213203493270960892097907398391793815967821200730984444178383292571145249308762030943435908134778378602156799638977113140538291431397381541157782689680054162562514134813871490317525378312363294655298952992188989306224829198157402474423343606253984602055619798768704687782363316197112369599081469101361812901769403658177443897965013179994157857561208558925549731794702497142030356289549775702078283068898448990135802623283970558295762084911027297029119572341242343299519721284998567028913633660201048318004237899622283673207429990039907475791022805409171613979290262385597249717170651774080927534153924677076397611084556215206769909648773206052938846790562482914538175829703292815789254313123681324049587217908248962125730746596116670527192030641184784642848502432517161492613244614485407144038521363612683101274391467860747306217434407011050624917012665439388184258565839658581940786847337105252915238838389575185063602852223539660858095917205793393168017167827238243408670344546083006392480459228842481299802021927332286206103009135643856078991539627197255040095698957004420410076229542490115913260260550502844839498585975037076977813630083629294397145434037640713070252790369074738412114685217760425000461180102531071823233993029599743444048982743564108873860273261032783543920348076557787847958711609927989663692146679466099040538878014403916242247705035124782001047958198361690528773154746505606529325955271761817898974480036243900865799213339166618139505139048060146975051207863153014987669615575182432418989299635643667901472337979300579510437626254888901070988535540129993428294280665887837414205474198274807936881975974732955837070748970736962648408155892755657014368190584522895551610440300497867442542216330599637844438689487374045883577615808895147505787222109208687510476584748778262511118750291430148031364641065687851625815516993160631094016281797826848722913938700021162841817675609175638852069871687129319142289327347731840786351624650678499970308120000959885494199294405277958669484063269964357137079820680926088130747228964427764876704371237081956082329181147064299984310904241750732113838524747750827735504610493623372403744772798394164420730969962903184545868800945700675212752660916687724932489330423080086122921718390262590231037983835582150503108368842369498993673203778592117946029970946891234138617551909366074072501619147136169927954858759074846845446454557849489857608678637804834551971772873482374938592758951639412741393174558067322954664788926525726045132931339402883078445837353341374906152651647974255321645106240227887428834125835061694940368857625094063997688190297110518272612932161428544946104442764502791734473955860643877385719998158877368172354827520617425253834020744757089769138431181866665324817492327161328389163504453341878383055508040178242359043115592752433223745798089388171733888919485319338991414466232076462205579606180666483353575678527479701868459140921172945959421628498814694013265204382066744643530701119574022404431715270745790128909468444468484915958068294086922246384878089043417670569996840331212933662872015483401049391200749704121955359434439814260733779977969280159121930914552881389451009747165713335842485393062993046605370981807057520302611048135209761472134626429619527816160687577407451026872229717167931767828756519241555925566453259574229172266740224316165673069185694786762082159231168245574415337908731895272772948276008385310907048949815540788337412251696124723560043322420170617175420827096094880119402521973977579351276704923181389670591110631355527374420471134112449967514346314147563035833585155482883681040382498816794403249670868903214328264686829410989715536055539305141945195041810280278038316894381315640624284605448048862833584891258989878235389505830902253254355242773325986656455719694524051259099786617874094761031657255574979334818721538639548780836978466026585643028575652836092511032232890043125678792052641410703358763375352385876859888862080289478209226061858899949300367174561040047648567300574654959662318145360014383423945893498550336161991610350200705874723909924825956749781636319523592984130631601226992554372636457566164047632878098600464016458656094636470797330738810098720287909336344407494935208066677715298044841734689184480697689217126814197425995187597389882069079763998026169710200387098153478310943759584000706030589929625571046219181026008012710050367106984038934289548230659802333396153215637782616809719505583723881585636417811676032915428763905567339289978317618579369784739968572436109878538200738533759319748352450547012923601059906016195705422539696909488284929709394760373668999853604215401716058639417815916802722551535869016007048757568550558396215578676626534899036144534730986901907624488597478715550742775052954024438990180705320574245716660962427357443001522670714489987757187826429377011605742427614900782372499769405877788984519362267405560248776267761783191442078171624328513281289019632945149325688835137319251094853343742763569569257180970420640883233918271705373888918305184901666728146305219268238444483706482877877358722421499471808016192761939655008672796252267327031566762998232011471440180636770921956638549513752000975406255627721621962540792955854831647267893642038714075864567130726190497433409487874752460504035805686565784298175934765041484972707474741601866751602145044514254484428129087900702791388916574650383290256711986758076080745955972183242932526280385372721565683547882785704529601229924544345105588867450329588337832672879677779884518286779007108118175990989327520629622488763313280439565323939478743059544293685179999235294321279857639431847476778836118007772075236431593034667734199084337890528125595860572523400287193267896271595218928490767536539897294104350671274320410729193770341941863565063672597281606990378372409785489732668306429484176946104702953107755458297123545000507704534615787912506876630553613713526733748059561577314545652241537970409335327125201348180243540209217414457464479267977233881248508428546873151754992160104608012623867371067651176529298096208193503600120064794773419930952994561251257013243487426212028286470711167752919041881072964625009701223421383560424573582320010290759762116477244115353346434738403674474966299513497560316255193162020626469126426527784710436473146311807897917159322994669277475537130817459733330915683658736402094144068378728608201523367321164009015503345857608778419574943074215018812518746083715158915542554973898872210595959032794323472166487576758199773818399078632222047721153668431741912325541083085955353588066336383410393465910141709016336868094443036027790567953928939153855484682833419351748260141980137229074432589985751597951512966886980494834585279790239602912269013522907761781632690033413778910361769239634037249916301928060042800847938646143876965467817001491143163826422754469449383781320219088799713702319048309202538054539878739357098049759843747879097977478657328811509875359485376415145966547425077790703937262707989146441004411411147902316618716476039199917100380569095139136020349787047228183525107759741934726818453989676296962707236364584675322584597260640108268828639992141797691608907667353953247495593886323312959770465089290235351195391231552155116414820821614467783513253372749431710987424405611842740261297733873785578953036471019980240882695848183743674584782947518076948462722306577814841494228650466652696030694760024794580163641783295349674028555041014765407337174583321077135648501402634053406182927096072478931949035383381510453698836093895359427484527128594263468654203664150712464591945841775878010062264584181801995987064389546792038088997395051243830230293785852815429444707574810242535807880629620312400100258909574958992995747642522960029473335582149645548963794817529216971370062054143036624037108211227577114379889373147456067446177661673554973929121001111250384833085004703974444905232718374663813780311677660052824813891688109802447719021779405266470625859083928352237114016293470550807385165330851468339188779517469909404718645088595674229124953371268117559549645200509075055239191859727853624376698606422531537005343642889349360058101451112914253990752669264120730435055793878032707070158646940268464570549181375674311560487092488438741664173644849689483065357557937770123598943901591609940136913172657183776496138984107257349149972718714345845355147394513228919787762988630251548438032190112653845881466599172976270443232506753325838864581907442305155644887455163806780195095219365069558891576878129173758105445777757869783462004023233123566764819482796176607860627370864531444347555844739715912630346498837178802866967985177625293510307832222104376732098258430431174727193326939576502174390621058897657924524033836731822793723658355200742915409418849796881433329801605615027436015401300299781630189924519341744127965156346380649887997685982427795973674999102046522447002808377839618399955457045535918294958559655072027054583750900459705108838551187485346921940745582905397543760869749104971036931473889173706963668885887253000867803064190871294663265963593519523525069450832577821837490798277436918754944953639438099241385324145882558058505932607755384961033764795547057194481586054299309711955275034242499817816771558089786082422672582982116158686360839388521844182374589007071748231863201755461061291535519781441149615568836568649718385972671615215258078521407254712778865482785422556200867688341580724454319154509761197901997007204951887814546867616177972728385879811865191325496718196643092908851176505264314920727760629827811419157730922457842520934300547363181401772091286081167177548031707226978916226907276035624933995321513702140441005104549238813612135345309613009047144059749277046397110594032498177324120113129152554617042812957355036205405395224663905020195852186634306685255767107850757200240148558416070320935883554865491707556744427151785052891926666263185337251526113249297254442268269500328229462617858561659608402103802331235386044533454327355579265592692429466943933961732251798515434747168342695287857219290820418895336801168548212108743763298179876337289709988455107627388337017604075066726560233024029717226610763550008477216473501152131787208556198244124726355557552170816835374367900240659072801439637815099875090692163130014914378719466840954034377035494872956749336057323973695788965282472019624921087817787335076516454669083123055772201604784477316241123278139543655253159782415286176839821827109770888377106441822907215674119220501098839900330570043017898220512418735450648548304384586098338004748461883769633067534985757132185034630182343757592136905715844950355996857322913132645188983161499845101386297064772636856248556254627047234171090750241175283970110387915584205029377953438254039476937625205636506076428791081886237249828015674348964041325961171718047136886415161574039478487002703993516258079287003421524276808302661751889806225778474546486299248875314042549114115135444465428258611554847010084074571807789660173009145509137747835806403514825202659116074928215653689444300794014458545379699128786215743510916708463694850529265700868315241166996793382342536916864990813201068633271694226909441601181932262061591281389744882345265657731508831454476501100316987377157231368558686614349669211912629663566822258058106266838197662429922900966115395678748646687752651824729483245527823244806113017155257590871405600757891175088095080124526121524103770766822717533807047920713497650971848106000177562737656501004867284809585628649617935620054811307229640672979862453549524996941738950829498799432768218758670327172571319038430403495631540723409310451211714747567367285397529211616611904074710612902479792128821009540882943508330921295137635850037569768751431283561190286657603240972508196247275693323467948523025929423603807534845062784405282286211633208112413169576136559311302891952443254591787624130302353797979316262769992842202742575063407667227183427350349250534759052761701222126510396125957089954748809251469864518241381847478289336156473549060137842069779283553383543129900257230680188497872327230079171111048856862730349058685308547622266276581355889726657708073626630245236206154434047325157195408126422781814608949588161714506490951030893742937590820867397247235590239036983632362756427309686375102332053085965937057440750197743786751353926692539177011236066141094909845569789388999396975986764509425536398029320024964292517366717354247388132909405272493824306311621001348045090541189962181931196930093849367807920665764833183650000912566499578972555815845789073709256097605568610233847044343481968369302212200549808446558063683546502608212631193105838539944091944150011673896029822523880623971531384090163304218384634402021849098170706375111968328667251452767871015372893966696821821350377667684060132858324731404712703315292178369985604670939743749882820005690748582928722610404255739009405848650298153818780357633919704148471110690141610371033711968171763809614888408689963074107376296222736224872153763315621864401959726668036961591489347689599298495596879008774144425122986410690089562736598433414300371198160128308179200166335355380688783604855260264874173112531223913299014217652490301416235649817609761061031916748371725489097796692837620365778419557311422149978980887134913129887565215145390281947629564531358251061737517257746339710081567920776380872493979330266350401694863066963581888947763869444488079386593220139029489411593878299321596926683764170431190323646875791260614729637249866205899245404378228308396870907618323587412746659042232614081946913115948823795038126657005629362910458041512402450629311909868877102094700354849410734707942581464593381871139462901115623000256183790557540435564818914616254253602445143605180276050468371905259859611320360536451491875961949111182985415499116465003766552139125626913014339473413387578901645218279211145103401369201635866031508825700102146088280669629271590225549216005285487136101321525336258798686955168024559929532524444366182591526588697941394979489684265846341933105896313643321349365839231022946895817955606335291151009071491639441019242675015210212968414418199025212125375349833159873790052530743038343046378719866033471020933649679704119012972573109447694902013637288987046246704322994562295010320254417724871268535387244693767044706884183302798572809770403774427973692932088136603772679874126870493610808449450878472781260384606092683393578674801544495949932367484884715437006034566223626794058689073196769734224587165559464080221045553190474171785309852457667850371256522045163399389723520094822176471918337632554036305993323529974356876473984165039702857955009013975678909502748596945147907654221279230579384707633664279145808481957538530843200793327903409526902413713964025490695396598023034831864584764159003216430388033819151515760710451442713079271948197378180589598911545447574230856575407073899625747938962784776738923380079583617375364745168174001269016707471901187120144261441572149336303287368194442382391065874089217101516154414879560257074843249020055505345389653803348309961335222429415910263878905716872351945730679588131790736234450174062708443259876721287347897103316120624585884719667030174084642795115561151959620165836556798085037270120575553733947233828424819632270457646730630223762577789678032096870958603103296383810863443386524694242520288561238087049711874425044798937775930839088507632777186737685583847742986623562752572877143660254862220529412588589084884375897824156980918557455235529360884530068448387116104697124501878908120366495483132375167064179355294062116381659000129545971372492428422187783517567901344327956275461860707844032547018591368805603014231151736242417105228807157616937284367352776938333403206785173992490121510115330925527123922411135632529990801809283304041994151790126050771889460550196006765821774851364022068397197695155769833835788030538063721209702055578570384637701978624205291016446913768608083947568784121415539287639336446376220928543603070538697893430602916489287448579889436887408348533355902423936107503304107897077218831249782346120731750591225551855698011734936167304136012571695265866263514529111892829391627973021564492133146218375306795493651753050849023748926063863376659658489750742896716628339945361385830819539336634360977482688233020229510783792421045013410743646035044103306249280812125120696445734861604859868689502232050607478698940345530528951724233017545933867368469737124032938828632707883683507034141883747644722810804885090031019655912733406216826765361350284492474261812394537076012743282910581755223022376068184225791933240441466050549151358610023792374139078922248948229533824989869828231686210018015126664022634687989764122548322490802301628117429759743882601190510799955217929282567963784768640794436821199687595106354622013985650387696625134620484868657502832011099125185563652925237528128454839655844268938419587573276991237746510151143193799803147666114839936319739927008574303158567801467412214098658726111630184664105318645679247079495298728527547895404988561662826506999107122239466078101616615381149031541499041874770940465868882431138206206911486609618187336602311672600728172274537867032437458307541732350065776089511545823841870176818332804554734043657560871976819796565254129600322296455731367351935197022288096262162487300067112466807212188828590229787972514636558568855965697193205902950867809842688694628618499539290470635509631259010229526923486016046484721355396472008413281180978853326130067983387267172870830857881218830343130918960325706503411406775092736391194995465783404042553347638438759133748071029172667402588177849967623904590236554162847595807374492237244479123259290518354838884109364086783985758469347615650237059813925111265160728912443966065102370713428975085913048321789225345946270614422446819970841969142712036607300925222767899871751550291716585173308942682241834191085143583631177472783007017957166105957480320949457452349948119534370283974799856322388550575071191895035349963087359640578332212586133185682690656091529644828088937711359698447924983928908125204349850280538501026779904107522480319455815678336412363747842983025734533371257157836547544525234276364568106979825628270394907036638143185729815988877779123133608511691823581339601553355667739253080418716872376003373221432777966367637807093429492097993304844833413274625901062644284513576712656033650316397067218763604013521751304156131241381920489347908579545859175023680161905441391232082200741825315683399134217601440269536421114079648376151470018405339275861297832662874336354565850756427634622803360857161562706928061345929745060793827253923306356349440045942737639772964284673812596094114042543595541709429599079626944068877578168318892166670073794468173125744480114432151269585080518173110252231976049511131473057690200496783231697548268859399808170000698905302968462509050774369725823413357092825864046279897668770250531138659767617832667565952005748629877172093945885334418314872570077411589737179126338968942465124581964943303445588390684560823681478769738537670987094024097558689781369636055879848616298578776196438656017829854256486737246880814179259616188017420185338047410860701394035001772981865731444445889292597840748357700023229944796518595746280527807572306019388792926474458174110663977430546491717730763606348198944693260660438946952493245268095788243859530661667469373098415408492602277646425928288511183787763416354386645154674456274842000649521525539423157597149759564353209985770599325833509152610189283666231058591943254435689879724269824062380016782296696486495121064102979546926343434577229472886091113004056215067594105790285476944268665564652841056971112171221954270119860708805025208592201566958686579527069632202548442593264338478053971729773552083399647654510764990979692540997514994948512557564906760789474996113129490689280809845615078600370074373867710282360086530617894574337541706315852634771920772002958450487463869001543745780347550542953670772316258201375044705114062422828919188288861219796006564528918822176448193907755157418617051609015063216384131836114762672058299498086399014999837740772796101553899930076403358407489278166277446172658128091122059970627232134223055255944265675826348730692007059577528945413777555534555830108188645435785304712568335700354976972045493854899648640622099274463393385783366797455701862904359074258665459694564818029687294945519549853724335653670307495235219312550316136309152745623363720587346445647439610935084892471687396059511501405049401504500774997200623847536163334854462860623661269189254817920113449130795518765342003471927204371098059694652903886593887518116706135256428600295178525690540702836480138071707733469907767145948379587180925384457862692979625363172311226004580936823907644781113362363151900967874681786397434484136033308815773496560656423799326205818898132350409941703387142876840236360806410495445198924904502918981482275580711558953173166620509732686319784251011228018228828325896721522623659504264149580702788880548890696477113710542131267009660325761088958798790718884430989269020459538824980727501536404209292963712897107072016492932709123564854407470438673331557216944528139333499920414687633997584669271387560866556375739359989202342639074337400204650233221993922315770697621126212790040927396148751008978651545231594479835086451621709088168051699715410576871004339533770189366216713729226467658888397822324496080771378831956768292137559775663717075805276326530585001635230718569469458703556475469175143940353798180579083852540486121690224216346877164165168790509905651163503034644653359117037773937931846388176481143631768783864935737997140518977435970117223665532691262832064145620539278006784365313056246825255347693739175811449315029078478059261664363675272279031008164206012425537287299699409347725379660348047293805163537207065992220460307560447295380258172345511560743357264158831030087382255775555942257890133107026634021707972869573406673312995060179540323072209244377872904495099149303249359611115146680358168293764812001363356240063194782569542309350730229469535464573122305786758383805881094543642676410882387395251272661617041100269806230860010897824210452577845453809750592668170395459814760825776994594448500280437124416727701810507522285927091432182260081051238131317348937496776862163500034264219425156358443962034619651417326096572840422130745096994773892132134106813454215170453164066129328734388869497548762396589510583658138037068726668331672917049560649787733301467967931117788833621776468782399310456105382363977854599638663186726813284065318643099147669214939105036069579660296381423504676501931025157400712827593346194311484944133360222081595296818231676431967601172749710967644676067884686457026673431701784828207460023300940327175028625279138050260860054988671272514080532642348784335483515541724740774039646917040244528332871773784702459250469565792789664825859196621221649695908113987471464651825492979535176037897814937222913133575496651853250696692727113775660391851064470140302313246030036426049541739305715925602639014697791934498235217152320689827574012427202900730086689850820818021888137538139977127694092077446331478676772775811157387772515892851013164264011986839194441941240481835492857918208876622937979649397452782952784584215555041823456647591318101501889582610934361532318643671946330691120593610505370397908743275424736429205546591323786751795099143472191824669529651012140331837760410596287257501064676270868967076970340079736124439878351779404857292368797689925531114954907046568144812531522840609662204707124108069068563342911015345157759155139254489394573772460006362130411012560469361334641923764740552481374803876284761629827572676870736938674257455758058704662232824585160215821355720225098117040132590570913727818535711161516288794369340332426543325040671735706211556109803516783264220646602237535378396669421526129872069807057170381493506343959985200392183581150149757512839776573900958123695895094454285916063849349489032696847994847977889289060341149832867585581592312485210478751179564775841678706352570745327491570826884547061856236786200098438609168502477896929766805424838734829393578833304788781829854147691499251285753357282190363352526339819641223704719344230789298154153233365594298408569741141181530875506284723831094158320042430842656855343825720110035244544437680071178541146490251157756317712769506614024293478103394864589759707254300093511742256075555660969228137750173900741757040933178180607877714569171252040419229482192089411484579710602574298737063041002233525913198178793173813894816389022065785453400879978071763779342876498232800952343054496936885821781181332885775646515152090941668933450262750338010436199123708691277695924557698591983424113005597628587256341177212400640165247047260758206602415367849792905601526074199451403379888548426725114918282892445113402017206333586338726503533913793904692612404387792746177702494719850265473809880752549659484290394852657140253960472278011240558534971092514290863981452278978654155417257481418439394685089220600417859771777057271070772351325877616326570320920497207282223439605677736708846549241664275716363077805320984220471526015039699437700797026371523865733011710333070582744145964355582244369556422269191844299678217676366452402306549668384087800919398603995729162479685566601777868409132304263491046399581321511460250441150934839109123726099229531792140849760390729725723924271686276406625881921410345090480728863039888309977925300834515369044270101491203505434423269339485166925696034038964771553579817925214887282888266780209790438229968131503826718992096474037099331702196434674478098486034104142537115386136778495420659201015322720355328639407604907837853564798306642709931355967555696367988612338892783079776588513514868668557102325856016568423249023137215607383867956486330552520593088518611930985237128957965380833504825878670164888769287218108023905918864579050259389558276438666810337212922022480880973858397118212698083323113777196065714628274166784086708612727720522027866729453671088587892282576177813912310129510568610707229090860057572964914363593228737174998661229021841683767721505683684458327944743818665947577366081070151570638906076947508067465834065724326769376392795697196360013099248667142000286108513574200025175099362271914595492704132245686796988087610151914864457404710968564744516193994289984920534690115615407772710343400436367940663610883911886985822665883317426679824437228153215407249656531595397272053339428251556733712414685592116241191670455769206333527075898115891440373477158386463174836329310878949226717836818970129116859784635950453358607975018341512993385107514159764002884083837964324164111217072523044062301880129204120002628352177568914620635535592822611624602780864873971992267596983672881632339718167180926092484921580796535391210103027255268080539047240782755943284345083208241926267618166499599203904181149723783834585313050869873207748425785154804995095528788988913767105591217449028111868526543003249572966186577408150059035041818782711625987184103415225958969734172212299189437064684868207608871368857060476625000047332098837346983871629961525262130873555306192118442657692895926923895738428076691723333501792329775979474990648243344293279224422213067024238773109199129109000829107805221428325728372918912347799062663697143644472499272024385029570165504990369360264336917192735251282040897473781801028767169410394538741428244280327292842618438134155580629163662105580906871922356970528980905748072883389737077939321763703308625329885477449375482897723614429510466897008274839956349327520535201250903603522758307207121954260270796544116201894660915599834866689278793438780651657607081041772246789981442464731257447787472425396562211115237644103857092673613962478536447079896356639427362476150861029828496713104779395254248006423151228606140336614535671179297081075076610800353881776935319358242936211631403771198242139684604594091600336506813573668191471632026112868504944182703430980095657627261297932411100696271242833627257759123791714494283585240117391519218572575315337927636721384498367780087919372835490190664521765016103807974878410719997106299013136319917138780289456819102485750425495988424972295216174839482059663835272824913222908624366474914197706945917963461255454471852751875071086024519511033255892190731978452321805174009965479684033332454324461964064386981093572261183938969806614521085359887497110477155361146203005493253839520911586814062778464683355617192579869277275955506628110523318853944646979984854552982519634917920965818264312880316572813905909129170813037082351758925679331163846197768691632900902853061801738856863630331305050038023905801773852988796348219380603725291894741693850936588556379929847862051428357367948590117425015835752676844496640311353455730691708424203095882121773885698807279294086353480713565667510545134275994183636103317407125802307376163675583448212556552589855646988518620137080464504327342615451752554057100186171550649957578429904812293243015480141035944147973800464760173358441524565410785009776917965152893301065146292705316306676770895404142337247695394961494825928449444302706458003666477146167764469505541089107620636675963353641317687573589151945248559845831562773694856249615353630783541613876241835278835964956771912515362270093791108937295512293144970834443105370238369349985294342307290353591016531688326514639858921529452828372209030428044174113984088524226955879624956159884554309989968277099761486779049289488623200970048485902816180697463790007261040076201514285478320192704418480077269467111853118093932092407024085408273297902426553262412934472574565619407526435339853322745567975779323266963742565371005982962759182495428594490311898423145176221182301076886453710735123983813144165836558732442157232550937602970992004337351690009435214721810646772829182624195628138252029567586902514802748720098190496936339066866324895209872128128772752813688163260015001770363207993148325732011717948109741387037850793111534195654330520256929074330988463276502400243376433479276736462755917095762308672121711657483386411858829817224046730868596732263654675286298981049555255919343928852890827500736838095513229302726453520455734473633995403691389646215680621706999858664279138810186839865352873132059513076516046835337711202710490935369381305099169100592709374685587001068515427037237237793304764708524132497167416704179480504681572475522425978396466584404054347226398742498432324191263581391440347547661523314703261225943653616017061019099570099798557617437659317416759475654848639154174694485401327628883871393723633169445736260763577545149302504808127201509452488307046894258094834673542880758141794972567483913665523636563903324723556868290751631030248251901892206831651922758648340213929269996867897843957236444148754245166843773622313019359089392629592783047293687385389627436507191591410993896048776165840515046051936302484507857365913382737481721333423555640343570947621187585444602047234152050446958177624543516345992809910431754556691027092773926845908954751143282697154491061178189910758917771750787077910171134331355297869187466381990251384489493102506211084208359504166141504887178570707480926467810220020613338003137841508988017618812171496224851963851871160218994741439673027390813540541276289426576671876336607503548247591766421803268587261571105124214688816549636052516954285709756083938556522662713828207521381193675115208073064783465469784838147167246992282738705351522482304364048524061940525212363016807409539599619488345459626093354910388251795416374282534550263097791490337024632959495478285467539444067027046792492107002860974615761230089180271787502210267205986399329312522065359241542642726517923052276001507632408232066926798280186581224450694252315820715180010480770051953502071249372360185219104093894973605877574730173206625945922975933577019423812121887769049840081555563818893275650432756735553762734641351718983024189628348122827871434599459607833726929744059977307491744226372793951387875896969625913402273571422283754785397872624500760025892946521424934404728345865800233855199864458665323152981241063010238041083267949226837118237759796517970906397119149831625739137273549097776506128845973379707357115250660262694066237693210997346054438393869103463458985667198840234519200399737340490408842966930887434254497560413468008162299917987108176271468192645986617925740119520447374038693030215293226262856019203227022620667466665814756254012365940994096964554891924396636851410497582513993321680343930449589150708217703378954773657694477698428474980171017846526037500362964931881507617895690391072631798602967405986051618869360668428240416883937077632056119154011661776112745750950961810164521079903815291094267118112784927095104556773351352444458544792838519383873635531837778945102507608281124690202672665443996600941439177080394291897969684432541980835691701108380335433290024127342228308757154779544133055631917443010827545849672157491560904611957492401414112301318414360532137722662679542017012337355543934048676483706844113995394345958749584144466613709501886895505004919065196981511028463081258737873331402710191241922122935494093688102057498983539965424519683970525942911571321387306528024933348199338027440979079954578104088958248432423981787301844585967435887620747559941211504793053202672768624732634778135295454272418150991461261815489671797233388726435833628667636819236574053040904800155622707299825339555754934589775295902824415665593267522073228608811780987830458479757551634883858882945050865304698725939192368307706819101999775418705457777200420160456179674672104064174277981937479452542919171853639444628847300126830877201185972878206278624028010427696651861456450879031496328434197205543322730651057856696153060145024260982183743555601896199128881032219993970725445802252586547844265203084853892009531142682099089218271326927882607860543967899309539835554996055327948929284178834839133861287510919170246964747154616886962645341340168470791919258513136189615497811004028563471120301041430020190533348712907084078057412124918437951263291027930832436103340217758947004256560229383113047295264534977940367660986630410830275069657900085312502898736406794811067981080945441595072797328822177784072067733201189445740928205698597450572057931351738966920172721656496500249634191970472472758584956343151326457627215414429535568813919274662746260371856435897948881227157907793272702431466288678383429169541082881385558306243170164498320358165449088956966442738263373970058580201820700841844916036344974707071800299806627830661915185714034106830018775135517531502386642055804492764722872507131707409811700420545403537503778694492348319074359934207365023430400670244580021411939005672512301516504813049112147393885020267093183274193941244930483957971548992903638153660162365243871543291230710371409779642106122132463546433994392735075258438624007712068600819992767553098340332865646673313017452002112755499980469513305325832616949802066094222123874642764090533914335159673852124354842192834647185800649541038697709962801207701667647481909246759145574852242012021311923781104869706267307419416502312145751214151036259745169454391174039601464804633152930176362765292840142881156673350150980588268128314008808017187085044274780610844487367518034497613413815313157198775783946409997030749266787041417064399055966981028430124203581807006157548885641269743920821136707623946755157076105105511910075970935027520356989782044061060843250659948391519676993284548830320348823748949383234154788015369838456606057571953519619644456661723830777768388873441377022908276976120850642686329973102059614713722288833066196828506864490751336483412897580456800248796611390586992168594050441534853191212121515967070714301850204811593755915777324796598899994354604336107833914307888395600420345921436432647344140509328720298650082029611641664197053263978947911652705319761706689784858810156400285543938233073614389356055714669489935143256237430918056128571516656984080046316010990340072092039276459290322681178154654490431144881471243695629337368685233801139090747365795811068311185754723426387005801869165421152099014563190699401880328790682440962520230901695406971425889642451263035065143728788308659275809727756538062379050680221037955559723488197948798968595943926491327039824957203681692765581050412039220316067392448505814612733367762708433270255856331784479960112467769164871416522275121383448378481915132950485137134310275616218445638041926964659370679081589882062164020369812585385167283979640520513772902660184005756961594290601164966954864812133582666192056239803623375205836703996273655325182277203103270691593311987495247823098098606602998604217255070114982664498114535412240104399933814712781169061712326047168474042387625478242898135607898194048437629876714436958999211832531565077159010372236631922655641620574542766840837415761152607181589647124997570925533649936711616782204554057786788632111615416581909185430959345185013872876158959400120698266277143340211997003659853388501899595306974225018914751378238966921122787869541365505255346968556395716842031597225325984353388934653648610540709672805480083611976302248825707614506111636712276403494461433888616387629731758482192488556899313253469792603904171520168334416974909156441663789365141311087609458470140925385724286082904514866790126534855679716850324865622795710958901493295454853538525708302865170213074036349776810366398550513150965087446914164885344637479958645110252969508580047869246381520077213269519057087955107809642253317705227309977090843857384314722573067147829752205654453384212877601725047644881806909200958495106021808730703826437055602450601262883086352725482701359717101007660355650400404362675534841296517887435299281032866716401062171588902620059119402209452057033556160897197278237834024131602389371173005554206322244503395653099116163683059302148624136398050887606346768373573941229090025918498555348118358032892378789582780886468083854378173459620746049660416100309189427369198598943252913761482390153919379408010340319586506091435659791055302533965337306077815785621782637791910099318151112624335154274988704387622821430732330922687539035718279383718843359776828458608267530502068795581964477598943110014016019615563176965814588828653953115929362681932927186542774009914900101373029442797272840406890589452001429402189601427021113335852380288887002493224349472090540445421689208088005479326824754454038125400946099599432583487925654255161219953973550811160580815996396726754182539127342235554611060325686507356902998438204880904352159569257328981914534618971593553816073474509370903035035875058079986272857941735479276424890115893184489091162713036224889543286712991332058294471552988888377225810423794401645288821516358059744012500268063719080702839243726690917190434407410042323057401435523571362909017873091807148147356500411498768089338550526428587669630948406411520856646814261026831551432530129460657848672976873107277466844316955893830397135490742110695686104573715901917357086932379559364158329656958772797115556402995927718236415722354146261736609928644104813451122620711406828416047742539188029148661401802909590006473772948399510695621698876979147483502151503275891795201978753138753137634449762779849864808473122170251305361364067097594920136775373539427764088026372866483506199875710132201487830276080771982075207192106195614849038657849586296992049589079519127456090022955268548470902621959447344671586618909321403828247664506113354212202043101455411333701436972347360772730893454874403022094772223426516166504633583129317706300881659597454336242287018709661579934452470087465380917859700168125160350717466910953909985738474864036150419473572742183657920330577461602187553209206730738302355296433129469822236767852249034250549919194700738946984803207711605263997136973630536539844367817036310276222087084764854923906469884055426173028820486635723913330489335665552159211675538195060515830273598652135583495753643754840771339765765801923163099999487869330434208682137143120605696117753710126343727166553876794669995734442001697777533210627953263446195929929376478067233126684348624705878662160236755732698168982488354616410355987600219435819030534790625755220363750881359314835481843573250389492618280985299242283840891113404734909634105087175959215045988409358476917670562731224515456572477250759782210627246082881606904533175474894542177830774113372057331833963036336287170828714303589214117146508082902503747850192709856200694856165274227995346759407409746114633814841495053558792145978776206920790200977942080602702267968286490372541999281472510487861870421139701019514979485043306175902724138518648610949847050546840990700709993930665830614220405716278059539296886506089821110845270754539191084696058054423062314305512267103221382809026321767229511425637976409924423232367160234095998100040805727212796341722948743270665563698976867152236991196226417125833500561930812533758033940249633861769084278101238387088199318107762863844802875336501386453836972415279734223383173027908946421329787136587763288376354598816161425326917477689770853096939847999705333596043914729247632043279910107631727454442564534436511053714982263592842019904956851200376237285292472240297893267077485928264941603243987289255290313942826974344091130435048043694690414991446382347065668776420337448630103014657844619760111493716206936980826469893277694940911340482489469232170003908704746262491077278460717729721584818288687826921703608471282516521156722210325864270829832590769909172070151032074236101633645726355474393336478345377751569724495811065890527748545447122460414794258320896157700050245842272534769127856674596485586442677794013303488634132502864823936099484572066261738806971318877838242366696369722720299632489039762222612404594876763759516153690255023940222283556438259406846742888120012365232296831094132486112951196226221344694801884366500486005744047044526859044153180984320394755066594584607780218334199214269409897201770846557253295806278785499540081040891009133690041386204066316814196849861327115229383325560972292015860553386965560076790539714442324848499164375114914185340998525691096397739053696533485941146268717204044553939024475024482644482710371327498197328400922088900751344584851533320211911816886726884682175068223920848804349757968211452860380646213313144368960453384333496186867240967298397868958849213105857637513729852112287264531045063845359289296295750677761687712992270095454515900877950648132500680353524508358064971764319441051185754275533760123540863547684425859406201102149786589334721978709444057187802493395738258575792956694023147973447221033985928215688062375362297074313778885951129520653437159790732048063712296537266533552112554112057713412304163020096899080882708914876572551133942577575220111747912458424868923458615834828028938270026076060174115138935509769553289482674909609314237839354445559243745278533366326887735615544623396836823651680750858005140119549116552806299151160934339124958598536601235106395981658008568554950274660622095054408182154448909831469031353176222275477406122230199939814684993029226515392034970747282722325601049010896749312920782009753265678198468683119518279988568359215385594551371967224055126086917385071139845371878871689033735092404190353008300450989487308557851218159439692291861492837235994015307767636172814364413674532753543937816895448352058115093154831908088173649243312896225766341430735663652460517390591753892133912497332717911197103167412346017878516823146414865242494627047340306621886845588006488859828859879679708807124904613282942854933420534810146155717419709087358956294038008816218068991171602105167503996950006288814480722986990645963833624255342092149707304327648208028265872746801798460768246245740927505291668980099103284282916291963964297567339628419552603617162827193244707163361193047640107173735993380135047449585182887680704548854602988124627037504269890186903645717554094653955863237872564599961942744844119109301731536557578947624086204781111833643064039719570874515236892440459713328659571324034554104275556940339137922392394062179348537840403528723533427910108004659173048673556194687158291690195473370757486412975377821316292200590689226670644812538826077761002482652970584225931691219148250562508782493714406713558470730364647420266873035860738976669406431022379643383177599241661761054768532307057819290635524746998772028115673731708768386328068715206882293437904450643840527411035545108633426062569532429519207006645859531060623614927138086011074195210960446767916036773253676550617805157234923231397010948686468699256143597585978397653234048696278944142815233051211836565357576036091843034563675953121490080836377170829863930772555617650237202072141202606934669033419127308288459972506717885011140950218557598955289200978922756767796973274301121417158432315633930162940433578018761889767320173431054869683728624639896728848284482013128264653328224169458751229046464443452202280672315320916280988261884910245973904938493282548189713381500597316534207237685204244578213067520674531525951608251479135988390116279417603312293781064588641815310642949678302135107370360486466573590407046141327659403590087602871617884256744595713739021423806425596658639240656598077563048406642021261410155158557052929791304441079888259007970330269877891893530965130884339407807298752172689719493019227775357220634357422680284354350552550932663742836837666081772923972728479792130704834120590762363178657656540822438672662491820092313894186065012879911679345237125462349695077825994105633530229082917032423059916937007254828518812571871344654194289109812686686408996948541415295318964328105091719211109697979068175744145978624667213164441698977880513547101397078278560376699809180610498568155405135152749411366122817744274165259581818049941161994114480402646341300947593623174561615808673628213086131445228059856920063744817462014530196697634932650098728629414076035555650758493960525872650537770595044242047303236273199226922693132444674572911096158566305189153454011404737891080733177888469584652670677329656193764373331083154785265858480882109600743907693691218404920022285026999272203278462331574024483745351568504403917559225811664216142855352711019947255521020092251136526499174631882495849263368603475311339923364661097040970291163353797798188767526395819480951276432271577392571252218088683819507036699479199466790147108721577595967803469621296146864904342366819200371468092798216169997192111404395933423513575185166805362878672911753137475291764557616012645284088455055625407078567809989931094125487902285145363633521866687818058262057504659314073599876050273932816379274064255398288065775549869140313891461599793700606380851533655296891521166846382033160680244471742276253890408111929014564174056830731843477954590825116272509406125205148413575535469549749293448372238996625286425669209384296401144116893927197798909870284125850096726234908481665740183405000473989690846954107189536920921963358603651374810050842978449374217301376136701554525328451249496642966070647887112947208267405039258549576257846684575019256751628406344326823794114290337401949987100248405182657937870453653909558922610777757700601382488805175392766663853914073878094313961707196308840196165374703711837587142449647561676034108898706737106040258713192837487559015824007080405108275587101071294428609549138357618458295386121627549391189631839215891856460506955414307639009759398379278207356767649143017704589346368526957791885717680831143730996443557645818356998337540996219649397682756001616346229109817417523746980775836617616487630611735560947231387289794943282251864773855752734189149537365291755358560848002004336008438279617571148350256828931586286894736040613867945027192741950239742808084683017203069102133198461556713295894902286104449376875433131065102120619318335724883060622124508534089501669819698570164611847137979487090050318012958027402231872097613466857981571971930005516759235891428225531207180343414291090751462294337510332710965911901907549890233377233785295213156167083305573972647902917185213163645195555746416136761531831082941519208623491441848445969330972659835614334057838728396815569764768978149314235776083067120973018824627558027458264695533774703441709224510303170442525040057869427781514266319575821596543070306052027352814522588543532471884936495567925684359512610597819303435382738800390207475113228738038667051857925587096550318600782643690837444078144499818336486934459569873785275760574481018896689230159099530214255524790174327168905778830529560275436391693922350125400973228395868082189891501954811024627354459899676335848971879591248590132622627273704254615968748578813612910438910795188619229251680538890400119496090522180436786778587259508551040417766146854358809804016278624150194403215760936012545777478475289447664290210476600063016349688254353321957725491117459336371554101449263219681707194308582059725660752696298732945321819937394002615906677755851482330650023896416028304830318252338242714541999144642402838897903488303976656100019379252422586564193800706761189249483484220211498853763702304196342819876068348870815876724099101527911442113285849641978973114946704716001634598302626715222524305784699818856866644306528596219248082263546528197525080448718816966730089869822417259728666958315999285955843001586918906811677020939063239748494167519442170560107160603035910552000224295700472705187290529971542285553161463546219865097348233962173729519363138195134136775736080997992366682755872570304262365161642991164135456199792861626395652368894101960454551196063428827305171619438427448893033212043292304182902272251905588148685538188797484805975991223382978149036243644086352679850581916618271864131462080769091301849934404655818229768281119671128145266290775092008024722902229963607930337611674558010261343325744703966618370517656129583319222089097894880629709391932684744328717139709252826931230391365125102214432295958762684447762143339155651373166570280113379639164252218832022728393351036648859188148247314077432010607882578890270709232147263319783507496863014022160271109235742585702443277471065998062114261929545437270680015387357927116828378309963207948890178669967042796506193669920189767328971773634494541438578824182890608618689385560020340556263971711576574524926281731534042434519724964575813598364359141010369858654490638916842574379836511336966415187025667164539341521270221306645736553800269917048003515299292088836977442072543650934115516302634169223828062428090550046838726457492152804032099281161062002819288960647080324462207470598693986786003734646240322893034402349141767191811049768609753586316898341649806477796576641886978284356770568207939858693350358504508607959784798053139156353467555134426663247658281632691308592903151464823779449585425657651650735018755677130677652815239522372885416397801379906647817267837797568283518026917364271989867825014083770512179358532000409315118574874844711494253320876000674842871392259021421865063640079967508041409104166121388576610360020582533715630378008600429985777761665647417626763811910830627675456532946208276931994293978929487218155753490757374044537191535032375184137569031359566996869294025652499292450736801891372944318212718697097926748004977292786936802539765562705630704624752679486823085209846379724202777486991408254738436430665144267896991282649150380274441327242101449717852566108001840655610012306008539167311539677515216068235628374551139334970932668049504267218162878495313428911668542088143680869331610336679816118045070330766793162207869690805772189467753171908390147960323981065680652675439024143124162415356373536424422774306585633504302777208840379803121008201097851399812100090286940707618077222010971858604949091530948507073454501716596683222050237449890662981184310099432981900814141520333081012960985350883375560041051716304117782450723961655169652993716987759605473636040098007638857449329593731669781739669681238720351533432065528830911000129176529904380075887596192083616229961140099191800487916742202127786744593555996162393537277877505743676806431511223545498146191897353695618896239601603752913762043646675877768676333985896117710185475088256347167226826982012279117369382500717296731552104715554566076275582198037920949239616907783399108438841076977139907624617947906897494404901969558146735889809355540957993728442417790053866180926923449281244977740294520973062250367729598619138245984115329594392596491227129235339419704803717863367151227912192306483127548490093755548617311599647895520257897381548570052607440889451439409909549622441274813832370036997065992756378957612934079856383049983292276857596472739933667200682855873082841320708492174465466975465355004431484564080548799793034335446265644381386150004634572050970226188540892524710236371504386692267802128060213704430199224230858354252389580876814862139231856431957941323395495896173541284907948669316047978408487990819230373680171723661654946685985764537007950298138736128354881948616351813868300472765191332544342778299729912399378182860774277966691442298815836831319505850897404343849449355612643484438503828842347351827585533284088234965589123409836385711312980927938993364101444149055573564541333168517301366360059833577606340542010113578586398846976471319854835244941875693760928814985099124620386358270633841916161623929097210050019409190089473653525644665836699979178481435760533466671414908269017269525763054795724710176080581783857889663923126299487837953638773330512113907968774183795202261676513968788711409373764898910334915089888766646956206698142469275474962461122297824378338741484016139723055783917649396465339559322860189591325516597850961986341077623014250709615508822250602672877745023760841096787056614530356952933715568899069042363916346642019752934384672221247416399838659871040097626086057273172618898162376112971296271483624998905675860621804976996022026487597705734915683983306469737705751934234294100289264961007598200135780057365826809198657537265682523346497931207570852324472724016342376748259790170450949247976334166078705067260023481194485042068353356303081885386139790944557983457103751501357417873880333775316979225140674472738027513029357565996954348593194369297936126037869353953291207905798286038477265133566371046345750021274162019371633436713893437860684457315859593245797172267042849681671799604701345421723689472364062181655463041330248694946196690773441179655610631570047382828680764668591042305350010885407471120509092684584032535860279413305205257089452546770690646505159768944640938354996746230024099023146730852009684291397208406683361219526213676639014996424023198959001007824993903858216092714577580199463758457332672290503295424908533871409178775903627549532416078915079978084960761595998929577315601425095869218610551352508010781873221410747139081782354442972877905081917909969669148676557853471931781185184238215642805041202264213326623905176802508865904915934124577414671279930073984598995699894995964975651306342973723654530419617276665215615979751048133934984835023899847537017679702065348667340435618674022286235290360205137829698952946966901305635426059617347796734575535879674361200986207741184983168630327146636498210083875522097019986441128208917312070561791935458657658512845161914906886035318414475902660309962187523244451591444896298293600179528812458950732734293918905848349738910570425731980819979483835282824789689826993640947520020941043510994198559222045377558400702416840984008075519188883326847339576829543151108792906085983217039633702642516736960457502309746320105764664564643052993746312121956730425780730692070510017081771469446983665155530466690641302117753633974026951881792792877159487925420995941337379588442060959438531347878194600125400699191156755091981514739068505666260901492326754701499514188883811372220179953832721079377058013578568897949286123194921426719797233244748650214424583087682479846573092632143181640828330148244255083875347500427189909935016657209359215690678101088571237512616812650718166306399138744670899133210495932595268316809927435680685179323533919915521814844903565441535345975504891274547069921116768044026108525343190194594320763525884197129660107159598191005989543226890003240801098955210954020839626859369466031620594196570380425748460735135955454636087762849787115288156915766677270437783513154657201274165162516012663471741289420358283828568653739975013740977994153497856032937460413870599418662314388117754923834038920579313504515701643828305865422949089552770975082425428438637203704686072344467902170154142017142119219053469338176987512801121862692215100321687589793046387739740592658750888742925120278923658086461386095990425228367369324790705077188434170813688486338335829846792055792030641144341832936861212203767491702043808281440356297530476619844052677529583373952147398849674906467536440562728929688144753986399518302790025564456939013083464613799352691064897139146318282704356152282628552330304358702507686137899260403718740116867855704126704941458142665435245056810318154993340309302792069933414078758227313369876597319309079892569434807288019864808377967007714937905564686852858746491042483499318714776234434460981345471341511508505784505817979562433122595555046839553358612691881489702515610471144368867674179265303372346934736847043707997314851090058694046316312705956491764966213526512436061171246143883954429583982634902389562647641952128277355812154374117571697067558741975587913858969813621707391198758724246254014226670758289996336268139125346848768842031818947436613369254609300868840428918102959415957866400190822954522520184441717076947262800960280597628361369414410721727664956928810907684642295039415224678902398057154395441058148531704025313647414477145619602261790516642600345482473430677739097644792836981977628001731301955104762501936871852260555899247055254064306672521882596346209489625974611670173138604451090199517692574383167510249523179564851481967425744175696825675563778852566696523017183414108894088426066352420828522589312093577340146513644144424234888492216622307545965234377806550435526227681364382093761168127100477535897988854028463808044346053643058018806528375494865334439078406501946825474412476441016394350339600949748257550758486955934745197848907815698944544639687203653036887184603230058165741777396967058510799410447756888401275995996762474489473230019635530696554480658314849706065886894551676380992757297459282007751310706162129630288115621201862749099002067507768811810216171095662125537582616738611647147812000272897045506244358753463713128068341300505817678901518796402964016950587559472744742933476389947830973239424291731662180978196372949099197683741362947238403332975876324617493572103185075137732172778639004788868797471109879623742254643974972279834237248320741158780938380058338074856392435262837353777939256987653749769170478540331920101462655257120070528432401047948181949878009545282971358878600748784532154381153035937121049423654331685825116536402876131101554554264960991138047267924756309557193002630899987377614031003125114374280015423820233875532054389006423520018363064064978942681804457932574776809570189532383504032589803529000023512679373306133899177860108252515707089284585561868626100515067845262487821695292039981979228661188298973444123928996279316680723066844934066330049803504489215539750416165058979067136369572833721208122784867341621027894929796222341470297065573034956316687580976462342622097932536274854342406943579031458543006599878146595527767755682101353338665078495547325264246410416950938523436292926759986850694495404664887681360647823000712106123603410960222126692270741946489352289994402929511588294834146098484438371808467058245271191207414257482940497942749828190285604320872701718640413256373630416999951087023142454097117147812112444740228518495343774551216701564785845052695926434969275706968251140485599410036130517572059706692739579937908418277966340999555313537310561723029022202770903309832533353284159320541365047173070688265566274261019516470733234849320188006507071287860734445354560202689617212538269261716402177385996346789970905870977310199315343993337311582371018602176344625264653608450657340678287288680849782701506009789980067490993744738156686140671180252364201381157415157911261397888541454712399342294902918604833993389749324217794773873281093005871099555479325818381772972574970805861261563602766866019240404056703275106085259534530931981443132719444096918864555830259172578198729483232699796620078347765938043314659125848106948147370736048135464112152991838162552049167231981758167917521933792929873392940965041662816571529925272265283259759809368801806852498336093088790268993335200032295162354134026909282877119344268275627237922476928791109997698804076753201984983876497703763313111163132966669935151646077877080301188287135218659946864693720856952081368407939618136988407477343059828124836038642138136921602839395272810955691447951925778928015173701107042152259949584057951277973458507115214719579951532126043758479984789602748642000666038678859359953839488846287571622926196791106427682118592449348886940214783511991330936988872397027871270450802547451846195001707219825959767598537169256028811355552414357351476001003224680973293085808113943196777639040480676104575674862245913956989510306811393368492285526511454821857634179653340241325122373056740295724162349186586911100289429143301009803939562387557854187849894686244131221476878129159052183970007370186747246632546823798289969564129037189525430202875219007779656892665335750930976002415118005732758773776790537707412064408374103911574433313915918197213562231460880724395743615461888029648139783226540740271171115437132392439112118601440630799829870018710509451824579391344688169291191587713649984161764166765578419573128802455874763649383186006415317391549374276453897676887786028245078777718472354005693349573279269476239730295821232930228923962014346873042197909269730965378241647879256739681442705524978052038039582057326460076623512520074717477274816911337684338111532399720357919896498386580637213998276263286110886468681358209748547998619517067631105437185960803636676548095527923828965262005124364873679122349727068516769821433706056153314577342659066744786046161572162400041994925310515179721761693888136683678406083683078000855897094721006470903884883484809568924099427425831352299936826340865148185464864832617033201174696840343344398202734713864551976823452092786046094518091776023693322851960558373699808817590811212216928011783564044372949191029081303001199188654896928839758669056335039256499042531345591212305422492338942140072315688174525594109922165794839878104340703134526238048598627117640355146777272182417910640518630111401537238409371564849389192896779777898931511959208991097373418806787790334968359825295277621272665473717459850966698023000699700322699922119207795527818207943299826009548919153260717161578446715175632957021866627468938963859274448347667380406874208472257400077031535183761786958897156250021495682042960135914192454947439594899775097945725042654883298941921245444769847595818307998041091623880285540354199603651921927163612084188242225684049816540674859587821382700868036406624660595229205811970968729877873749766593855537423898897266112714546659667334128712219038402286883408044733469332089655575317040525178232891650992496514922541281779539119735504708734912125777891314713070065881939414561233347611214436197954571334958341722561852848038132064555293176254440010453962414693625848447886287449156577066522985109279659542479423934538505497099946236567523176530144923830239972848105979343315462854201934432201948113307372549466242427162218851691923670333257732493361453658442850729728077661668875607374528364018375377569217414432759499905008575981442505436307400907065036989320313411607696508448709571752914330094451825303639748118914193963636726444687423009187297527331061089500680953476274889752296009046008062079685957092468804446041748970640110506464941516386430737929051151333198342060000454513598843444768660973044712985445985051261304110546917866863881201730723221482152890756897347584289427856445044700107944910983595961154663381392008107088552015423937866022768836588877169200947213051882401871055185897475590164801788601299000420657308115366207703247388322231991330238923693032616375948401930711715240926692775883529267819310463562219270120498116174656080463355696397512882961910555645696596137709532991792598772080476891231251746238472366711522694873988643234098869062007160606276803863867975843989090794013223819315095096088197372927470358343883599514033767691742917212831530646834187200018911506675434948620857550309460827432869271078268825865763066131616913178793489679521342300900416415015379438154863660345127676401642980071071744040287438651832769192920251534008570676968648561198015255988530549450337445948613912679191040626375078034187095519311517163252525431133983099152417359592265936597440377022366829709509568557134969739477179383551990169271330298947446710787574455289067020541142677797434551904426006863748769083425950535044023607483508046348412113697286013506587972393479229760162113547010719108537163867216756821876392691135168798091965791209283278514412450023986259457740736975134936640611246863308921467812954584162798401137825728649651656459885028994605417184897343954652379229513351832292329892406041713343913095664360844501812345561624523775198278174251347169040088982644355377750918713289334760254451166193741689555994591595157841564088290062766834009880347777958699263892882801872544971631345864498563107850660795211114252135563029453799241603690783330069491490873295934383622509121582471872318513316086882491628094813448566503093210292382905529931993978128361988156253189059763989927871858122625085529553028728722429737556870746851037641995349138223833470233741792182910222107642220631075536471216603903013589614532612176368057365235319377631329470999770475574840526968043844649746021359278544732307910863935887759232455279581508309640055744666499353192002165855461228613994033971764436512784322785483579362213703522382904615212912156215503144157053814784751138331865544700449652577066700561150405272991962346132143875076919348272115561011054252435931360056346919001023398016048960279829017193758351894436622607383695152934197191303780953567987301794678488600798447252081003781170183789352892175092565042180986737328584399835547663105254982117816859869771176222987359140389117700901210176919129885871698454936209115560612597550102926608617021758605782222353454279169856701552951504679022202412076415797382496282808782327259134779304131534921876719935384051313571892343306238077769550419757070093623446327732681139519142749489768804588821915446072120688395204948411771998656502607025272592720732763188508635044640512021642134234728894345353234828457577236000972714617257446031304980822344514028204012203700630742013524206866404359894811963495347591546170560558740258497742999404127909536985117609916910156299663768215080601451126982331466900693711173886127468590227182121646227862722167761266857842758972317679777916965346871296418199804382250339824379385502228310831950710249473585515299315881061830527473936910232847324267339776489668638921826438112719124993074028774701244405464389409322925833874220770018469683276370456840756711790003763740908203270270635459138293113711484825905324251244067238032963313746335133986274525088453197778426588903938426429245005452359134585441126656603726400746464740129654296051929621778969295856459791943898338633869705160588424611286802329451548408805533549795930995081784006582004838945711439599182194320589008585302784352520377652607813137039466591757674141902421513720014412292555327947826839688682142179588108312894976349446203493184703609595398504753472279063102770957454272440391027808913894440134378117597255468962785576118854310492731929899289578605477301970783492695993546951130366432445661724062178404112792308802773403484101348877313503585112132241717800743417739962761835002967176478007956433688564009941491464621784002812878664278464869629431879764774162537112637680496369132048747481786569411882822784971040384808479133606856665487150933814788362091907933451659012074140800498134583274554867207360461017139145827035140035194328826542317278612424562401838441447833923590605917445673693450900173040576055739675507692078668080327702522534576898327153974748375757944690630173169036016501365631062208155376430293225766130267382176519392606628524568411518104892958875081997319956675823351712923556970363998764180745882470280467756564056368837669013338741748050483907772253263259756633935044787796023006919628718138177413567345647935737556887835796811238280701993961293319729888791415198920541673968484273002353878711509343827328031499057138412864547146573355966510841499665399913470402341188307922888110123327937707061963872757612561887274010824762480037371526907268416520782381333939034107859708946339473349413172175342051786419379255212058692286600545385966251973828285681985986195047037148131667507516556052142577050140573843521454915751142172406159317479586692113952696972098804125205857959043996335430701492537240955631703904801905214326478639398583699921882981088777048796727837843665247485428146663552411573567454930190117140203488430378627049649020594210783294360347733824944989285827221107668531596194026848419670420235250007222599529131261533403571980113965407564157974218819800773296045468942994966798298138208222669684891651235727677906583499713382680927229238428986285991265826459644933110661028049597156260720526241635106653445850860715996883397506891625609515209157399042073419716671352883803577716890710705112145236110801616446808423264233314905874279138978563105689909394135900624263576402691418353345230167700705701247028801599478077738159037114278793550224104011633276236774079698948226497820495970198335002849443665864525419123525330577585139800525126545904950257564320093591209861636011866548221724765671262387487334650990058366229350759050282306829390033188456899651785977355390171517478439242631857149248645892870322911760814604915506139175208791440566724321440375439723420966071826532581859952823009911325873699061122710639808205765288132892658723373168254147668947153943107944056760273522787871086798098032616522984970297445211927891487676659427001543503653261950210449612341271397599841617958020680045094114986189866158433378887352661220026395702612186315996111006700371855344789495931776956402307189458859922028773423890163348483596785889273902792773136042599716467147408127777618840002336091777669328609244834274322558065904489412977343562457745165128101739137203877337394893409982987260813488678810147095373242648275042657335957370064660143961962514859087373646571472470495225645997156508752590273568671443174475618908969921104313996127650618092334820221329904754824169171190561843886769350708000572520385200583690906547858177845883189575869237038162484776279312086494607618565242146618348378902156458397526746491531437086706364995896238319122420796471384891651272229412635117837511229027548194033797979052293237320001534075230695241018203676496570936617521028800863734215644769898883092708234809587294877433592780285629958392864306407802729187780745502095833316707873848438125718281053230504311680791946187271602574601496479167226017915711311069206983760637533227270855013523151805818525430268741720339694423432683723027060735561401094855434380761881928562757051443101698282888861495259332852694194774955516350112762556983051968720186524117104012347780240317743163193536685942183859932602119362226600589441999609368212124958087330440120593698526605145252139270697533770656277148029005802263219614257641784945643575252996694880361418537688824657540410383764260226585138157869079220320541148910218751049867882554739911241889490414886934632419367903283824032486294484020367495011106601674309228778032151333712535617038665154831961584454758534143737448584646251284008829282349748583526578397529121832638620064447446169955075527367857693416569669223773361592896187590687311964318052439570107380739549830511286468141328440170831971112814211494045871978243006720086841836273700072167006524434751064080081784151488586464769555783160194866944412922926814641767551598872742415667945657579491667393785785135450742979345050013095597277095245365065215947093260933021025348249522748480182703470529901123498406677198790917168410068142108076332549533387394810442758003514653935959060601451791819004307631310238364779246356759219208170360398309406815058336609148350953129529309663018758918458427431635458129289698838518029520574114259269754628458435699092188574693114252584846559242917363961019854415790523688926211969760383555244619542334705748137555210420930335826327037345974905638432319039371940874488091324709489182134285952564250206421595728180967682269310120215863640321532069107348939208825347223204797415468227592450267694877731533934094020895171867787291313704844907244216189652867491414117521508448988910673274713953103213857919760364982137931783458597498260817699325267165919780975571823851409602070211301758237082233445517463985013271860357605011933935936860080441372592035791191025149375467826997592695775534004963345985369091168086683206668965502344738062157656572616541686474460139147467601176862088359133403221101085243732150182488784374726983115898047657271395200570511611291201183248864882912874269296197678701897848367799538391615162770733084241540775106667841917393129271573545407503831710019350274627041975266032349204509363395212489056014628111048449246984161437546073253583389550195996065687506656351756705196233076679586464471603864859258457895962904724659899278868993387326601710689331970077887993772688427221598687947601462870395313227199600129390638863502616128486768509427901429610881649282954886240240042054038241613367372480243153291311602066097465739829841452247796433744991360194927716532791133902582313393397912507935161684252942072327396796930611999914888591424950863140329546582889350632075923312999448967570360449046261445672568792291258232085072276160557716141712467107014389500116754301261658038450283329426132169944361911817871323256729994045353873576558990400717449912545099070984219698826563417884775323664238097906342213370831322247805950400827335258878648730373787805537743094962163601874057687030072339087689264425988211090705835446293135810691306745801386687768349821401626567232203190297112866526960110788074460283006816092326981066796598625663610814171981816269193691007261727811893635354551658558744015505256288473735604755174613752791936085646106529409561889499816943431737058786850404621487874568959669853176701882569315215570498522617053043644172955716827472525061421479146159730998801022032085077645310215879327591028611861438624151425036462566969138958245160165393624789031107783400993424407161883747059301815671869416523266926188628824018107542479511164611499129227514988893845503390092179238351191863428711849968367659244470767306364537872497562823903403950812033151695563237310117402959610080227279354135055868905710740971511837006442218168077124345615773776512534616307014611652985429027818513414077201186490125330321831019191498508035608578623755352374872866498885358848368211206497142582998262615011028573566355678103392383175104884313511056491236650931348295382377186666857787215457006559298774240893769859092008372431816673146712461750603173650744250743836671622558664122141583748735139622434340050611018760674966237046754828152353755535002234816806629544888637056492581450446180876251113680384249473970124490552965436380276452638432766157217852101870616726207905352097274590855289623250365650183977018465105854317184994226860978194907288207408496685237373273727446934907030431025995111361485775846843283884177698645306895978135412711608606699134675262235704757728917120071461776362570643235473528922254463083302165426876368038790106964572087506308884947813526017310023658932194329186550548835726800593214498367793132632309723800977361727593743543841919668759165663376291690200929473703207365653252548799557510778768027315325987373619009015974964445860913984979259809103780616084800317591834885497697223204096936338144168058055136035691112950988097229809543111235722566745009163108504582679131553048995732254510899370956678587528339826806824186343617368338533427887013530290620877381553207449077929065349633323396550947981432849955856225196303349132240921601069627012992990372813490859885422937093471704272250790874467776716600676512795302019168652240979185449329365574717031766981276103724535549421391236494846002349688003292049197750021990511028555029871129352288726732190380848836894916938560410155849642856686489507481982976848431872812477616007838671447340926596763663320079785328477018506683761167207641571229229254262937524092696210977755822865836353377039941954190168858165268775823639357978904237829044744356440046935551869079069185329868056669830189480766310145138388100474911291887842498740730509930741700894810947614199309958036989906218501208898102213310688407689852994732929641414177949100018756511009924487807895110938791192325574703457575267442436882048282402637947795083503157206775641207687662216232422750425466929514427005520542663537897618297460476055375470501323372714013752029857793488344635136996497113356230873740066663226386509709590827123010312776448046265124359026159920122805555205029834379819416738796482343199575719001714376788531691253098387773656008311158152658388375438273014405416831593198274681913923857239199675970090022039555609742222167456046450312578453912864344854282132627620375322703738009652458404875037231866904825953106764573111643976409615393942618588358556423944166921660116678880784439874636249826853964767653167885982289927029369119248957664212234883139309694825590807036829705743516605704112234632655856765573374582073908441849664877940581722253831459502940024039194503188771220660654864831816276731052200211327192158407121079262202218941793464172991223928493811395042086817662904744276362321361641035915077539983520159565888137918806741268881928514493004294191455398292687511334681947296994298206280252566187038259634360277045268746720259348669842165699640678217521954777046310179757465268018988269446371901738034984624943668919239228437836108296926699686798391667844410673318879740297366933403113017174265139845234118947604971821242960908318633491845129927848848126771147302605874544000458860669792380207021323751056065780152255348955461003492419757211390846007924780377539182664210788183804350079507266762913866262796556715303123907624094214055912679546794029477539812846681764767569437682423021167452059548711768113635331933514696936412300882602176833830840219112626223983747925092926887240167571387739781157034602617656373225819682162665103779997956431921840550366726798281196275229376119801385810559944682734410261101659362060013723029106802701910799995666330526785479836331628825686516359613118280353821321932212154715970342653762821841324109064095625697264221097378574217653617669336116484793520769833761598697748284987395887412220931670207565931785199860353035558113267777236565044834601515263185716704479053928667020283775047868361443547758548175302743895344757039305396531815308166224372396453280122889234672634516096262308687608581658735718297213490508565954553666312923032717181317014287189434785010307655065603323335481194339231022838910673196850407715141726739729837520355591358965945314364913739569481036469367978647790169168374247789223175740255666552805955742248368547778787062890621728805087396518678344736783808250735823521550928027740746447345870761656005269753033364233393982708806457173506076204499617233762109126962304811957353334142807501318499143956272727273705363310472698503782506697462738284519265793621075485639049822501546971307673424172495739424120675498964433537283866245313401459185980188783983246972875094234155195361399678050625509455401775706740656593606516481204022990254063495802464027278795782890255394726974125190181061344436288750552624094989416263922919375838780132522064898923455947908616232664148701102067852998267315371494994104929676433248516420309309909355720027892751520641600092327719395587905614771457846279132786443839534469393701003257987243465427666218381891838992977202048862476020891965951873992826617639259158193893480543865659138545184203376510365986615144753312868352891605589854022580043420083439396483463406646906832572106043896709430801887344442357444666743150323543635422401145728223174276710547137080581915438455337396047341616811871337875607490167968877055524042194926626943185963632896587617160057458148406892035124826969386959864823154601671301480148573010121522898980473104197849604915934881061396403291676050745973675360034323770069197977223141580685213928472308253654312585103066768560210485639024840437570716543918612428526455914567350029968838528945992503232649787478097676368480225165083426202542125821190857505791432368240464891127146546641062410184784379629543891745587434520929591932218169853153426698979166996952408843189339628883225539525383786820834890371587165168134537373277640891163779829639578455007718432708385221890586230151899880307017275295896361729860051783279586248427195018416714116783445200002292594237907334996308747933946824250545554822253510130383230045553445339597088526780672858506265701392119365212439856715809379041342585759619596329040351127056748797627751405591667270930047550308511130253636616598784581875307910543278720094985073162206049135096189340955699967275503140958295593116257874582527839443186739804470257136561591848990061417369659805949120471265217767912076595992085659957436956076416391576853549900792610562583751844545069484850065944873178272614680829519902481493367318620640161155702422102858347580109491968938525897628583114845403079292290109207976945757906804354779253260321380769858003907320604955344494162094036222610201252392030199193750061115612212620494221199344691833474137939769085850218795460460368938668238681810933691510641110534710466451345708073742478049518755936020121771106173133711334500585762129196637770575064976378301359236415041118195513700975044594614894075893288441068233128887756024812114909187390641394052676363791504078038120382421715929207698883705169750931730768091847673875783806651373843219865030404485667654603024055117588170804989475030435565053837618828111141310819621034991511635942619789244296555834680575887146344299983177617901189015143908365549500659617085902984915329911520616266867015268459686158083380539454556879454923875269084898616012857937393078337984702459757504898101532610431499310638844913743185920417745096282625392646249872425373231136828470720274418750674015774833242987028149720012766915940971245718626395891337984251585455560261309956553424509122528917453797817153480228340076010339197323445073416430454911757233515683087566331949069742652838104343102825390384992814599546183371350385036519985132495780357377697439178352467565010768922601243477858436195830891325768914127720039540893659154064335021154397983175579821356421475387667841383113638731475535482106549909772873525202265605654900182677223927288690561976862011266867171967035257554513056198477881075415447690842333588382485656200713990809248340477691266237810773927476665604220123369059915448212837022391549153693336877956717058395909742689754442967300969758915774016574102650429314700680683428667081237858838668642258890777276589385630175643640785502181140920129633692742189867227193105602460213547424430071585794580817451998019530826149988662023550300403249853018074007087975489364213992671942101348916531495349899819756877730709894458697092462694701138435878433633983667464847532720790208312128771041962570533477338104113531967722282867011913583293751369305320225924429765138180004238938158834196598755047968040251043063560796443254239447718016236039193540072442581547946374401347581882809085073760203926936084228121770110547570253086283772905275738329286093572671074601694491988029620927627638745302204901134574985618780101276887378615249524251113321940850912117808618405598929993746410598311397439869896102506529400154084646485250324279445592036945796865515478428100709262899022011691568393314792008831840042059582837268806463364627046864387922659738074444038861994974302529935602631824250418909162631532007142847241653236663244435381036361391265815304846342383914597753345968269935727311793466227881993101415059346274959914478549333105518971202190741709999092652494148653858566998856195313355337030740633547116871135207499009744663904517286701919786091299540313237414784658480935264061052110300750446868851883139604499418792895242945773259410022822793736226927569537272078232558695006442638590103843666992343605846137141156513142832682886719086463791729204733335838750530272946942749353327772543450998935561547362434626107856265864215601643761469140925667123088128811386641441691464584339449921296356934421925134649970068107094263973248002757727146412061454445446352455598733374031809894735367566121710510103486445079319005354423043627771576161350256242060183210992752846818670616970106337608880616702224481476793854982289954005967759410653265284272525538243343497223689496780538769430591881369368876671044822197583103701894591938436543292355818723500406911577301709343737054904680334270835988669933076652533006182456232469057213389819781058372024819606712329761887379755252234767271823873180761837864484404752967190677071485151543020197208674940743426086072512142795563706125723569706556931436640810133037972575442528416104501053516731803282095719534861783118130481961427084400882244217459324328733085241665638501912150512969081834850926679981685977641957230993998019091088953919683975530607552632415709307671816838846841756567359129577867575412131975166017713923917491162133380232615861957486960824171555131415365673907632621835238556219612906922764813179050167953108889144450005295703496223907298070895374593530103029870398025089853427520275711714121945705605011060406164737137487718935948193147968286395488288596277912306787350906166567814113991142930477350211869459351762534640776471170300785687117740528459260512399486259406655459887197244829879138568858689156033914522183502360003588853387597841714414119334206398175955160031168971818837254984604494945790834997031706035450899162971486528375350975062378053491229535546809198560263441854598248507079117801408380122864368826799534552989388940236175159645008893436400572289919602924346269954312376005184706518255066340859000978983437348349333565781309931842354535840717049702478949649922575691456766646381590544766453201094016080630226510233856103902138286658465977626557055193336737336967601935554118504078040457168394688976576160099639942801887452392352462334092305863346086867734832729675730478900279172951212433417050758427707020421100109380684886781776255877665013717476944383568302769838652870943212704673725492941267111618362770131249032856858270904642298369590067259198006155985047154168980883803730357572794876974990529463509371925612642254703284279181632990169496894879340075203601301390382176614585478579554254719774019963865605083906655549075390549314784342095209397245668757973226046400220596580966963153497298331459100797224209867021145753608335597596054161553741544261548186580966056476668470337753226898000401391344382847148725622928362888027804890089014225138880739369053680442387323481343694241905843144821209270155757701591382179634337979168453124135714544482435370663989956013428484376500167066837715637762412628675318049011803276967323086257821293859307378009306249959498210141082125797665356414337063596688129365195064465041393568841422396853358428600214483107293758019865173217159209642398399039690878874264474868103252446855750332923233915055583847377053676352301454909235313302104937211289951945015978685708323767318949228330376575899620907116698692321610474517950181811308155875564639113980954756093948974721291267969227230326826101471131130747761446934287606119719462900467720423965425131320683543416811556773072534266735742800189023370626754415253802015470292788474880068381710100602600523920405729459858544669085818341446820484074788761552699056808884711468747122069166457473538036272700838075526197088120150233129465599833164759666900729647796189079531551397588392311710230581893950269924138267183229756600997942283570411820951215236745635175980308136000734135555900773553982768970595739757696728678199452685308389697397083384668740255220328569589838444860715695474655055932549134466975889219931301013209644526976680151872919198407720498796756581721748704262041510394778086129448505561295989387525253300675626824723210074341659443197382523134925873371811417469718952306580944962967306237757707434206341829937832690406183358149082984900603675429188703039901072727162837612626271268308875123079142104794455132981012058454538455722936751723561738182610794018765561948242602135114364676346237364517794012683025068151852442407062254322111049153684179819877329574742624342903803979034238207704677099548345329110808213553034460409980538969024265927029628436328152853766217225455203880629497743757212830816875057145172466760770796108544335708313683856153951877109965883605806962591681908419633120565379313508544781959406199386766012530843310961858914296891268305319837449965931335862048540126209132198947692156166323602301994127530976282440444482197345003316629981919628958536077197599104497895567403493324674537335478843849898241005775774008744481279828640619511139704826611406875410584002291229761453042919386984863391155245937578232831768599778888403896381801832976425862648981974130595259988753843348333734420528808556238471588871991844162142875822299351658540667036657784305903352986367885569277540257057165875961554218273851644527129993164276163299245785478193133658610418649725500673103956591495676901766710252209400269307865181690503414324889774309730930181790604635009605872968732706574986484982719761312492735943331174894024822378125609356315185795256208870175830118892465648214604342569324277186162695067112033350350139338760298069876966571543682091283840539510071836961582967532158803518314529585276743134605834947411356900267580877157995679599136896344119121838457394254229241442973751554813404991216309754340277538235825927466235769341331355431384797820705899396916767373134312354914464068453234554156621629218274557723847284456582708685368319667986169331360607647129607368433633835888376139726428106787155503899767748803586742413496726395976936532735303180315737791114223623354300893234312321914910067188183952158977272629582771100502563793090706566544669968687980643181605616508265084857634257736128479958355952697401532687394365631000666824191856324733357772296737180480370705669971486418280807354199224364327031376314761928243941053656221626377457671952100130546155881856276696695403416104431167274088817591533856803220472786841964276047854374959942298384608804909953431487313351222066468328630775741499424155889845051509772565364592924091913499260631006094836029742206652328128913343390286228366610253926535081051839117751756659555146128912484318746481823129763487329028771361431669424559004091834505370356791486376967051475036991461150530427020854917216909011118982060086108598122889720731096967021615547577973029239264597706778719001441354874707559292106188062341755764298967273220203859415473926007003198438965915119593499133024399944148836085182552364678857960775018345297089813002070806751279239724231002238725283214173908250623319045892282123388764601812103071974944647285543565783390821801751563104310872367906302343664665774441861629633315573837110820285879754551588607711696531036473045561423909908230815131552138527413565127585935172262327489895171553792298663754353269951937979322941673805973015345052675808656973253182855202814545502366399232615923106201532729262854298160497965588833427221706925840449883556670083428141080476127084682480162003224877893703568412549760611311113157149631966522757279746031662223311060258648698290250703320681170804854438946461945516052565717122706954357642418308495084426600008759012326115736255419773690635150406001520568088495110583448350649036963096773295122740212333808595151349957214053361728179586263979857531111001153050601713090874829405357490613398130885145100194408499288259846633351891057526401572239656744132914900471768619085743449321700791236457333444450060671980088750296287774597497811799644419939978476341485787151966234068762258860382336088566396048953399924742810870810540022827572846168605925109610227109644437531696403024680256481908037659164933111437081758522550390048755813673232199656758570458904501642355793068521065869755969140669875620442291502777768526533518524700532533715757322454997872071035489688205403797717669320564353825159975098158352117051191478415512309805119692148147217434942831994113766344611173660009724870174021706018347653853099720832666277459658668381383099856470484554495429290551267147883051574336511975524141374424307558454386337867013629133387965663076628244450247292637539122532210601514746666341820199768272965408723820756890402886672288701672431500114881747111574402929645232744699335594939097157941683930977464065466012617596893237476999135062638417744098848698317752791057651707987780193413180306965324939468463779317963101489165665654605495751694478955432040533567724211864227336464448116367641516657378011514705690595755346128695393283995568681870832564917191945590456289246999245650623142760701354413240459172120642999637358886742716516358783414446068918840840112611676141851755403535406339980872521581086548843957757306307276769879278286685391416910735043517414480658766419597064407406425667576732629683493017715028922026661667054850162185297232296206488854118199791399901770325257227414272936025683335006737547795006590795470848972203854033103231645577935100531775733203856557606771253771885917638703503900918404543309125070613704187699119398674065678810927958903781577616071185832765140628563646598625112230743003575320616017277755087520301766987490512535154635014473358300766578256922245779585621754393987416754378012232951124253367712228358512708311487975567389023253976046516685482411718661743114009059423604710498363718017641356053903788538243392350662809801488773779688260532392950473476660343419888211209778775804447274896386713314686579902348176261640808357044481486267049625140667962476532799043441967371932459335962466549317768997899306815160691581470435078811193919388524633361473184232028339980343408116428242957439389229982467160323616953948815625015201160166917432636682768547307869690726887454065188463046557050060424114469403598963736823628012874934617695535395070230825551910429288158623205242345246227761525746775069240420661285449637761838198854697907435780657206072526382488050298550512396631821337829084121209874345270646292223933205354891088686823011216186989428028399161115069919353854253618602016985141270545977898875090396784714855214199699675099304100985859812882627081211073062222906854933081369553113163207701033977429931282828549168506499071016343498985398114448731853072428628026024470597522916273733022549563244915068982259013572843467460654166382317093095050483021185912547207063430878346551737686368061528441993119495683875839102121062245604297991058757661332343571048126503248160105482112027504379876674226741537059205535112124748564708086479253690982475777605135922375950870494416299869104714342018087919369965708394387995789473545519636173125070583407856561916467293734306418405284631475941791174098920420609299610082659091086076929298332916045007924340251063664975634457670712907255203516389094706612474540816181792055447189028268394107170022160992640576129093110946428246346628107839270647338535415777734569405306606758031721549833502448990495055957498638861572849832079893895303996656167512995177708730997378500295291113917638940781958766790713080009981192010771622478503352448028090308502219402221543698779963965927358661479184220497008173668333828000905125356932686991660823226574919315725143398395378971665118465397456541587949731207524050974845245224153954031188874671539425337497902031270102022804337825275850335659668575558223283504672601516557583975111195539049876775185035664282228776934867851552406505887048991557033937197409786055442919285918381821614191150881842141316680941960578663541497245282571954909770756267624000039256583239363153206566232175949830952807801780668230612985315956314584626362133133686172287628420311115901021810185878358525820665984948278174616605707555412553779005419286030204721615872928282771125865561278841172594774844170559931226657050854350018475888054966466857161377460141263631911374429063434002842876588113383483115480679361515296590091310615845688185289985901096594332056801561679848060241400776316262393658282570080437539086239167537198606751223384095011495056323322369560485776806161836950022653536304282813095091946835892609144833485137235527319201818584962664201978516928641188416953231074534880651388091340466577645453062175540187724361979189965685569130813049350106468911497017116141162905866026555374492134675651765275420940142986222313454801320411572121738217933869992457157039871204746503580402279812981573181771794952325616449851434570667686641926425758821018733263145415272262812890193586286743184558132671920354706835605752507649962783778867757846371915471854774613394359636949118711548288149808032352537359611687861637710725020169663417034800437528222217403327383162387451988748703353389452541877699225004325331045242824987301806774098188406044224747208531811901247001539293967612034986604514111664068126196976071823043856304526187912831450506012106887747732978944993075060068510060121267822068479635033061642135850126664960957065198322169362966718992705179609993904663700371802891517435198071617093110038274555297401846098313731862427511898902174804844272871550329205971772333460729680981807978328911140524561266930583255998908716679092757886181105096209077266145124447733763398018086553837607423527340630532089843502844143936874983513353403131313912989145937320801669246059437868942470344605647127710212223371560801994736142997750455261430850622070162402554828375682812845721355297939267826914255129861685404739471141556189187463610718194944882399719887966516854548797696572410674789254382108433680222898724195498447497067106515411652316195341452907811068616478993769031654547909304772428029358351555724512506638811487778316894631940001570487016885110156153751154360731118828353593826888205888996195036204583999313274409808083691275284297012221007277008892963971631474145873344917346401417239969462334342512749236195327549995590620424367716452871284870169287159791911816681633867649513067221429361867592832117063789488128103845969772912658310662814729332300543918314100195727743030133220053156135347359443835538671874656417049360115020458486835048234411693584376507808423410150237682455635418132846045727710513692775249797399694776546593795367744661074397301729737995585150204825062035301934777499740782564559943149677929719546796120786078802620265136944613887540506262248746919442391145172921627045547235011924137643213495240762981893627973495388727953207434678885695627827946473273299544994016895303289876223994472105462192106847870531658234958536630445718422190566264339694957097771005056417338290364064035994309650429426687362688813616605366628683158332262496518830145056934466137325956226273418737214072491879811292996614948114033872073654497716415367603060901594162695166247144082807035904091180312040270347960078799184289406945382804286433741523109137412903617381287768746470198728739690612674675168684001572944990179651480087725395592567716911479086641729564337797301301297711800866025021760351456121578509245003237290423089673047140427972404259417203353198745170052313138466134338161573322929561348628182025371024414587684671361747143731432638196893967049923539563720336943691934794964728777379138184303746568584275703834934528115446970310880422015142192958784027847580521341317819464870698843929038518831439668987238549580134655884093359465194640930451022248753451341309719058407266868979176831956688601597750746841841545242375064737694134022347162155899686328063046269451114292611787403518241926966760337438165119524395452445758089275583277375849431859043883933365606017675611583385682188581622528016843298462552949076286713916755873708424151990394477408119328421371647296811849733306218408659340129328932274569791562054630439464474729283637602911401158398011740005012953815735828490494325999380884936031521119925184987901196362369311621612727788431285320946273845328828465637381528165074150214979905229625678532820433274475946612768987756758472119301137449106864377421634283720620428919541772798052050165855887563237632930968593780164612255399639187287655087139392142773197560051272715922651456502605873879152566679902459231294617677693279889781577665876801270721370528402376229618299307588671568657383731847874814345765422069408282094537044524791972208550788823354916542287087707549746560130134456472440734036277831200112553684341930639725993856184146499146747168951915186736956411604176249485937503843110669447425952625507683294636581470633726354018334860389423442295087519051496435602099460239169064760060891704233879070261111831466171903835073290047025738987681339124515907665457188617661820737773262864330267225329764285796685790092749671446415125035732434355750367796203787178263452644836170145279909681067402665582321177247071000799138570793235425573001776702021846333688321286217240666510246290023491954922216641652806404685340000924612370265955013378794534847456950490283539355985957698935411477460469715963183716623702438523034243148488097218972102450844946640126813885363580522130227756334569445875459829907340207816006195326183218817610123079082855406323291194108522739220953624734758834362037735665570163210288188827753750446950151371990679369664382683702023434309683481457822815713694866297837418073647717327325112901667972023017894205931637235110515277926974781706268343679963794738288947302965690400389660145456133414008926935608118622200548708884301288439000237408366474869355114517212789942943207501205813079896914141441518441878544918086986882458705157340263217473189718603242709524497819555178299755676516063101703731437295479527992868957059485584221548150309741508292921748113375320259788133825365352802270521239353867185315198390381741306322484060240512625722266969896965903543933542904621458010556995237818169959265200222601890418896214848171450714544756965568972192290891496118900595956977818190824728990952883983021087111449193167556117605955063498336113109393970887238916193113613104422939631905368567681877984229994644431747211183770631565847938294210960242241072455431000661922601594858932876835270005477032446819612122844151233075809022361234615459007755934839496706546178284180098728663739426435621527212764114688920619702186349724147477116315090866123288653933932484107950302217587551590486234839878345455494493157986927883899376472145367367861402455242905173485942860673852764962043831837241178316785645256504134005309660857774755015004718736002469543177773832239698299762522364191666736092452418661292092408903527847301348355367383510161241271429829682062524142498907809393341112327261948256508760875684608244569291157112027236823428203480400165874947915570038457429407482335186207307725254857540580249126305376735510416276707819560315933223301079219582334017278832724193074900376918225010857575796367178114474920229041405825809114905513373362075326495023815943273259760626302393235476732884503827239998272544659689127954106103663669689979284885001491736538202202802424178786273660024941364381265853628367777291877948883506103558850475053194823781076391326339684416699302438458871054923005588321003983052553185842842329507529980809314570255906734616974479818031658378781621853981849748253458970756463266770761362150878597643994782468589606669417596162335973608317698165296637282055514967177489610650666363231888449271037046446768958079991369086277668301654712390130840833730231513416858465687224492497021073234239743706063804836465673800807625695111197506198491869679829775682229393228160019477880778575193406373479385730543840347063657304576720409821588204772155860485142204484905896713366256643502958144250305879662937981149534628190134701692617780319092122760528758152262173550702674409652666334199316320538198277126227416928423118940571896427676645326475045228334426406550810508604205989526757010690747558254507677944340719658260447482791415528115249691601935159148575562329201537937832851495254505505571322234923651554720122234227838054679937956525569200589047337190098880896645039126563354128601340082775298571398378500753414649452496029176055536007973383951070516518995787881055642867125204401326083131595759908234924923241999189518062145293153678063049983023678737850826631608739288323843208092741565585052707644911123160677057171103068638395551281973121701882395967525323106440591353328585810987469702246961277301321626203698034155221434256124831254817572599522616634294076826523568052344959716269553612329068176049303112696826729360739922679746173322597762927932613691191100586353162586321338934611480102250471267887529264771120602305704635318870863252184462008409726631675431766941941159673341598695998612974111176593917665247600967181685725719554857145620976388673331643682100614187917941526191819266519896931827178004760867502169571036393512369145349398462679953066457253166151395014829898017413742012703015963952580019467311872961931471129050962425860661717914532074137033730202742639778017872429394011689966856430697721340427740707030922444180634508031187670095908501553940652451689836292383294245125218847302131680267188656482215033606077043219753156863578637425019068883919260237320630827600839624930740636912770263488406364977219918693564973474084660211288180892775512807971332905724714854417208183266490435002942306815055734045470020841666422944611157685841310261340313273023265419944296021422987881977060891107019297289866603449546495849027678253390739019427008305442406751294419047321909156397494857785118807241525872345164469505397664778563647625109141741202965117887695341567789373834203355465267651457117841862483563995360674983966252269373892678802686931738960644472523532211723993807104007717266311440422774823664075658828551158865676266017132345116610686544180789225165931711282182332954690078685971918143147603185838420466004376425231159193273872424979396584834098969611359185500084964567064517669531633897675464726404371349276018596691067273142854465057961068353527967041071462031748276904431436685903482995396571258423236710510642886557277363562142327363969882735289106310230639592062119207355791334022892713442349333001157313947601515667771246973270733100435593346560428914396506106644240116344887116987654049707714631355778346566483867355104823684502845042992194027861699252669420487598054010928917360571298352058684251853149438026269295589168392697461750256756167450467419728713017615149431940260606561257742149366067906524304157062251922436813270307267973339759660967173326526001684143693100465133869921634904339905583149766489166943521877494387893930406937625740175229225972813981090321331143215378161221338082564172127384995327612866390517713327162563998701108805329903286007941325450321643042650633795298692866695097497193184951759836639498235878128925289978745760029810489224212623692971748532513853282558989990753773853284368031524863740320105876159819322287938304948424464503687757538736315677913891187207682485172345790050698719130866656698882626830475295571511213502664148839969702322716245620815171045010639035407938086400606995777491736084326757070069331805807201653770271433383095719012052198261936797470788728724596796279403613927502356515806066797550235417389499769622145393488921792103522822537879627424632148575845072931137502154599047479088268041087732942796341196437974584864919007848520038187157237498000476303081582171420849920547285455072510388294015924831367956926740010755013382184806061844499881984818765967217054832996717976870633117496300002837034644784709051380851968678420488366290615425292486124779195240491913104916367496735850214340369750553182154641823161482757313879341495109959766708216850103985230767754978097665053563009165181169814878951095954615827410492039403820406591396570696731176492023382860743625995393807492302226638597982029233468707154293175744381510859499738196427452024271383601598767132417905957799491982449729179604172894276443503678636692764028893116150564084303313618171796260049522019605909155054028227162167501477112822824347857854739667354053904648618492276732015678755622178391059183233395258155896405142021561421507676461217318432533830897821364842058229214649244845193255521537023556830044873819337804799346383927291625805478715363749782850958750214317936764076915281435795392546034050916779205628121777953147034892915452692758757513946585379908079288381109376620900814053562343858310794310049453388223728924297706473779889940633270257979150442786329715134828758069665824694132306064321790514231486524545098184337315693367440255474904083001649249269577091744025537770992247275637236354479438534143634362424395915589520585601285539429768094294395854270052883306124141203138708188621446979713758848207089863492902690329409836317441403913963884231157442377085647041628561147744407040522315632066788918328840461096917379788635170509595704706922446356536244978714731942352240788604009756864969329695003819205772009412520296711648659669361427471326975076877757509658477974488605729010783902229181243750903710777195065254855257978267813815988894930030828870256989370682744901253069054003619392181910580436108061812852743960420538624556252016953645418729026184160708324198422020859185105065538789212314451516527241530611533662666003207129054478790526386516088422188340672304868847375258912742203543978731054762236879696897561228709285113789531890943417338861160850642512650207818745487634435744476982173499285582522323302882185872597928172912783126536554618409510841345728157738504371012847238834790033203887432400360355745427784930841028994023040283470728529827187881470775377427134857262090169065844289375335218878840173411975337872147446275572948104862671264839873716708546625878398435848416702499577567942795220969440967889673858794329937162925841371888499009100188450934373302497091362543838636152580775976261880519824345379091300599198674802606763921040013221955141889828435144583193129274018758342348349050300006646966143689342240709679484397609124566671935109338615117906966937653118766630910387666382454007764609968199649401340667137370149061717861593534479714233513734887202053179623892949995189952232416977349207134076125041784580745929132880999376910704030156508053714095955796677848067373676231348389547169366796639771431322994070484713017114797607407274387728829832199767490439419289924994505080671849896991612996512248654335418234286701351835715929092170679871304143403187939946725031999541814623716601624366817795702665078734219199375105890484578542515329168845985130449945746643289957284169452293819283903888352447920112246951964400870597975899677849329098058279896690553318905651278872536393026578409436247323051923217389595326888878773898636092647756813462983449302792661725941616237400901934981552251240192576143385407614051975871665564740781157431125291711869763862403967632143538153983284051940976001561913531650939027242263335233134950573249102243624072188255438803936420802638314635301784223460460596519812088033964107119334487147176354690903451963668044974695330246889777993122838236398311912155968561813782596182726549714177809353755694194863556842599258698459549355105289155769570736668657222539154696930289475472206712942807064498967017595382998339951850947958815264840238651498037588479817096981338465655643248812455232877322390459903897547388532845901786834692470784081514707041997718635752595957309034268803860273909362028981869449358524007356963922377904832878974461047402741389953258853156520941892313099681162210996347710162827587115639467097613949648583945491844137371681516068890642594874153690541712549685268656637538671971353750766217560159494409563187198781018679631795483670141866689329320431602548923098594230408171540737148523887673046067440698130258223782286164501874333670979584458615336314851651279918428653416968723356102214258458352676480982649161213031520301957316642074458939412325480303295198100093470623478245944901635941583370562987688116555735015308280893314202751675973309160293150700740524115038132311374810386026408992612472026101736751370557898856683325882162814165532039931354325102976362607443666506782872321608848125027558451008371248735717542176050775453228344295993043719844640105850854465764567464009800176550445963492817660724606346158769362141059868900392613739551504081915324178268546417590013734036546709939532253522342657779906944117593873979315213642190717296288448118144837242464410713742274580757931091591073608456025537020832544209376691798566346795072970986188250923456409366766532542994927937681534421699301541767481012102365418224900007043509182067631305499003472361931958776143792877203067397491425718300709682686623729578128096501400161487290099504584687428304429245589810699541708978934575033326248568773055641529293447806448998945669546480434005004741601457228733665164720009938042565940718056888994949123449090632510144799158587852312859660187416226243586142468330790264262754855048750861908569465024070317422281411503602678043166044481818736306580367626222179216186604750253972734409931462553059618624411146547150277875881847478378360657582305706866014132052244538189547476796043068755980200302571924123628543688872507477372459533857045038292520644456892769015913356794335095570300644909678566656095466840216856701854801377618563479456362120492437751538449996285976132996141017328297625712600724884277339205936545063167282274946657645724806424466975354460548195034688209117181955910610643510305968295551226868804061265538574064460981132382235484403186914418861380066432024660015910032717811650894705059801270644912377275579697329406311652725580351825182775935963353490183316881809339177136372558173145689147984620668228006944242750471093759304373344221593966165223807882949148771563216530263410368696410655006058572155472234622566083311412773254914005466703259402469456691721177968478055088290577817702401863196986130912971295775356110852480996629268651052505718244153110218852813274818564146382305082039326456405210582749549890245688717789691265473274212708886459694627393380642040564673058337995694680271672676539074809117798299788919820270603520095756433200656433604971289762609943920912582591974119417496010606290381946146619712152331490323712381039733068640421694439597215005090555116553874658592250621661086560005278837744099492916623305065596774941520230254414250049960362975905116091674664237068027159161729023343415892718540153397269817945480714004043156568878866771493817838176174698097975239281230309692735414688546969207919024651903036084890455757277637888896432530945998636610630832805599266931943518712094270761733709647804028528177663095548607155165226977991540920779156830226317297442922534111203768326134506648012682558155254848125885032622080040135413371411587834847548651920544210221373585680539979945608553926100067018343924710163395632725132656589946367614456924442349590876103642929823812159471357280515155208462059014125400208097604996288779443475647438131696626920199589182899639692161355100952155099614720043397197601518846588837478312423079018494551891410228803338101922280746716170349529623023342808633006342679933277457778192862893025150224988408505037812177152160695048623341373799574124769595511015698662529759738932035484562707095701780244298229790447670353027735407533559121745439845542048155765910563304850480710811527994627695223190195714963036399297640168222862366834894940352237914764339992265700104543416484201281384420836053471449807380644458291535465394327454215244527805955560375455174314351690040331067316268567213294344295013525241932593736044699250246204665806606315557269607523093474238068884926401726635612213221987057177532412714850270818374151044921864539128286799877139561624094444751259710475354530367851152177729975335059833495541780182871622582485900842516076805940666188029214612554283669727146677750488859053496012834809446758938420653876015831644021355663986526197146680909461945085580360122381909952042017817435195147761649632632867255985394193837099508685474123425281567747544137006641311612023915501046314385875596353366234402535968404948181860118328328272382029554605509245180424323753776720612582680542362993446199849129745825328582511355913656680226923271767477455562315762974753240986469247463359459317367855470460615545465174123432087208606976921438433753530443336125164691753496955904216222648675842388417287364952109616890543584542678757139520634995415636086430063914404592630077512506542446341978098487069198511728646951747405593302276256615895888627976000225495750871513810616921622128338753092159557539868412465063112418323946948683882714254503342784566976204064987866890337570851493591954498886643911216097744413005426914848682899546409548109191381565377740775397306951978065381273897015556340530531077445754419571497390557085420995097385621842438828674847737828998911179300198492558400687704544527444552939901019028089820854756056276370083807561841576378085233754379426755638905847387884213300752489847538853943403677778337240688211553194777728339315646882043390654268953565134676768891451048977272178547924338081952582460277301021517149905484576873287979449604935668258809770988831684115118277402418966523744907825641304061409872834114970553138961061225019310734705413307617618033173215951896618663610936629416219750475266543533859130246816396324391551281511018499528711277476808069888313415723128097833821208192097329091474320193954528738344048098998545255033137787496966559167697262148065024072800790819567267549336799865847492516790978083039923605893433279795024494285240064674058985080196002670293686697968695450214775153819958103452655664129493588573844110421581563147984825945538950881767632793042066857841194771976589615315814373740431611764456859040617486008816117882521366978201086202709437479675594671727485647785504823639349169630887537846569805151448227561341278718144716418255013076186840104340488146060715680164971737998703644070041766097003650797211499552380184372761346329632887615404918212010565378244008876558931849107941398500624701324016481467011421475698481702967353018891024625695409107905436682843344247566935186869479525082600158239185326786303974084811171500575450771496649184456152632945539990398213349409800283099456232566325754055773059038502491897794616031175496421751118572679583129813913940756022554191850857867841568073980734895641131686172396632884546248944179891091707395747685682595495409580944044948062031227710498627819767682657614571818405959511672473499678602691670762256990643568432428659333648276128327464795206426865584711297199038921379907028742946753303480837002458037482888180219246981831232661580671181955293710010957374516704935592379644061785019973080599204736821106245645325457789262732697172438254984364910450352161884142321606833406714642822794772078095280041025270091707536957854548167495541951737294067203148014620533996363981918837814674309771422776468947482907423124562569977043523184435655313886357696313022562092906493627572661667955025254301617995443549058009039091493575744415302544738835845064143876004608432989643682414830510650475048459875942660128648067082230516957119552379998029448599115896582621986984608800272137420751866669899518433005977503835924165053070872707103943586066924981444690610303997713087075468716191043404629909289238212344412264888052795821248016310822748612596910624761975736835974994993503812130740810887903428880612199389003052167061086165927077606230779946014912934464339263840587366269426553095300604465351191299542267473557232633390237881641172622084471074623232790037137597880172834746740340198997263511806505115638781756309886962472973786071622125279620159784185891392879662117740231800801148922368635478645609148178421004059215243214313502720142618984531479578227431976706830497790580560830740663275299120467784728260792292782392225877120265221649683870838235115408783044721014580860144196373501603631432288505783331862497661516059752916855096085214548557674045991011595994113992412338024397369107106573796652238055628801967253331704880302687030264183596791670169624218246639698798430322232048374737425985306208973442122917574385060291098020390811893386690629586709694054470305224032292818906749967527711896507543838833249410386662804762444146004072191146658775015934545274687059480988193990387039977646914999880374559930468407591810881521472600214101650976674772074269195813754044609024353635236527756987721935120258315104144153131570889677713711939294634412939123585393115087722374978591560601867008924090931832627852580455621343167101480929762083302320801836093268856457455707475103610372071109046817809708818068132577739851302855905438613054609404873246158653442933064208411076726718924653841816621261434095312633121945890847138165705403970137920355301191028208656116922799486626728701812704561443859576034816350353425421676084406938817399158450032893402146112960256794462195152481041426226890644951150088075363951112510677811993004009390321094511500086703295603426077763920144777560646974588550576192288527424060268483668844331971413858509140613580418331346704039203862171287340972396096103479895860133639809530397794315769683303582258842150038119039332506874545498337334077954886448851333008566828849092587512772727375570385540679032805225316898719686424290494590164754583269809742072224702033867551415708867798704959611193521636324650746098870577574592968096676502021125846565437238435939925359097402838533321081044027798778363597506331363360585461961176019758265398071020253409239433423682984908376724208538250541196527052292326502473501991380459950858634481025147355013101287445049215074359698928821194322371654683182194898006787404409553513028517076502735095390960864015469398565486272228717524594966876638407112189267934432817296857435577837900626126680343043831944617403532040237923042417011434457269239194125828105228925507883106202607371656021107293577880943705855631321084458756548701923312644509639893377230392190207026842772349011871429330390084526533562023126551284540028039535101918055173163981784723284540981382277518986750659825948353058592938390896807029579024781478313264127929631235448500900499297466122122754179230587687200184641482702917206944086663073452448001839781902260425400165312708169123295752649730401962397144026980967604999255289168083675830659913633394062523312340826763784164745415422764751646005870171636747376084375018915466647137318633009230439319574924142293743713011874239804016749131966404032775573061652953240912161123953380939370555689075507902816757762393113057192643936474090933248416409125941419002295324697439503862719898202070562250644546525818565456869303462001730367012462470298959127699409505028646617395043018031517554121340131871878488958355441313662729754120031679700059642329336322976388060089613976302546085557611791338060308297199629375749987131852896248696985928888913213662282258099851913030290867764298747854660805697039016413024574496790886590610868339218272122164120316559194234153102241995922302772415180774254837710205670970526765649535852086615285286710461470113197292655471116683929637730751337279437674535924380793561129940122824403832803131333736056861066228267885655801401532908611914971923728721749315415962368654416424462779101320093607116822701407630179962421649900680687742672528537203509117425108018726911066747790540425767536642054974202576428868240688309843409157481301216748858343722099764378064601757524884034276125280000457979085172082243770883495446315048280421504313955606281611065248147380032307016039818981205932353462548655938900463616777847913903574348431680122306527535142247375266721536984974134319811763110159367181139375615097608817607571284199685139873001745713428700020487977314803823418457617460196631269451456513839184784723746706025768926292442945144151871807576237935844843004724321890778954948449972069494323666689475819628047823260266856363912829614457678237647256661261406310237860215962773966298987233352006028741066947644191895064405225310854708209247507071617524724672524805132020731921965356513629437062900945033543368749454188976726294549808069128944219867001820641842370899044506429735290936418550758346421075659579454755519431893754233565769894609408112093047434007931566454139267563387044321371078022202036117795254241141191656151266255303735569489850075108319286796978586691463877943578287068904789408997965750254377098841566204868659782929922218451466846933868665021436727427705255271998412487781701363456969513662076221222924068617441881578044632361841236661156702407394312431973242466198447492091126508008086932014156804363519921868138184542018087098469607457593660378508370247988951948210400419595998246970644171336824018951916735970804511106835012667884794456304621606230652752152191774755752075638017052964135449430691695466784731339447798898069472564208884828511187720196999751162745068528299431104881527380744724770436549560742169263614128248957059738281045080250884628401517599108094612123017765605219357701727634721016081481992178225954971730554076272765041122470893680742410336633558776285551984077755366536781014505163516559699562461291890499525495655109184442293747406697945696915577938633385598713814791508322396731757327221898030676393330634441932298803171340065601548933626286206987365718561507767204393485539541720860491116605658655533783032600663944485212709342545784937201067860600628465492944388578768095161446710459540147942021537193506195691514762723656955294077167204829857354262353286879569524639796220086548470937589106916841503455068034619933903976167130335523369740773241214041913382201892420766284162278880426341311091400565426602231263917209086742221199293439337775584348473677510039293286072109417883759747302666073983616319619637577946020467512275563399883878012275383650744251189599858996472002852456536343707156909186376306165375942260529136116149396565321468746094644676712089689816909335236621156672406502536280303469258743892931165469930600395951404395028592157956457638640292165732867690403557024975411077330953314561923378264168541585187855733415578223784512173103486181345232990998165885499566841782695782058928331695698232505115231312752619937246558748910679128620219785293793657906074308544799195341071578128010851096550008533457661120545864613350807255231467958266597294227560139029729076044196218731948347122173114587016529190724137677441151257448047757958228712811406083155108086797055828730257044840954781469348118574591951441064883330136728401411776423349127039685129294875192950951587110819341834798562963971612955514385833820222234292615159662303787423127457707037712510022965640068772421441267012050055527230493763149145290559681597230847743265066926080172018595207976315947817219122473976263448415793913428171170681662362751967275939905857398578944522914907489174117771566983546105209029083401607008530986066530777942855974139751179859372813063861457699704697187998763911435695298355590414917011763394185055711230416452982801916608603644510266822999213421259444568340519081676316731037143358221348452873259077003907833615111235849357853772543567749933086651590577445756665637091446763511248574550095851872652403099340673367007159603729364030060923770383188677390790190932536910416370209531716076605862593873276250997580371051247570056730051239617208513080611802808481783584424565129056738478129880372055708362669863172601155353372381166166871448418417708773054213377601200041791728656553394428345172763154249745915621455080457377324897517687180284954912305733035481303076588247701098938499265468249092072125042192957313324437997040917069983921938269241543736272932265090196976207185034626488225565306428420756848587055979512592086035821308535800040528299774074317051274022642127491047929231711546202216520173735736428762685327659029528166595821075187635525217657711068618170812432357827284678633761746993977956282401814644348298762688171995836125998993315847848778382975874222066790091939165905081823247318854493234908293455516979886810600141059990512824004189730996189675635574708445413952378284024854663751090104402248563174109754644614516286383923048166755724836200577427815903841907608522147658074927019880295479410066709521334712124468693210886761079601480073333083386082677757803898755137827277212086962230671104332120141324026711685274841695435397127570205861489724861937310416798871949025471605918181776717867540059617243281079013658774299923329652474630699474353740832735838611251785919717411909424685763800981643575933875377330610214730527239461950240359481643293475127614967273020978447912062798357061377501548379428858284437654240328890697274992743894726111704522149510388148940164553383118158325735530383966119643138449338415285302606281033272749575683178628441644608206935377185049815220414151182664731250628659533726299095986912146760651869921064363432829645287680477570420045154423338200946391225987652464121256680443094948601501606294002658465509485359824796309019177711156414869263774902471066322664956653757880003911098213503879031443875986840616815955872416719256786835305209067318407616864390547911453025709162761047965609475139919189212886957447229600826070747392753209971249346628955419212094424587195191081834090328248518598626317391976646406089910290535625140371241373191183504447937071847558269493850262276274121897996976369352512719651324320117502685649271948995186315501009194449193957027819659443184556283603967035152652238091401252463520419036572688301429282014798820547979735754832056849787894124148908757364257050689718128192183319645160464493421062486154320305461039751554043371048746918433832191563832796268982526667704004537426711312938555654793258052582234714661662952365705896953811036501056096761164747789314647601339303748607918770797064017472527785492030831091030411181067547425547585043261913810319715106240197641476218294049314343647447475152326844790090312763646092430856814059306732400790756379026866936199482016752051820553524674544749856583954370092343055453190541582264163264887334009954072569290447234406324718309137508233769039274778413564115317220367113093727725129399767988863522858279403964550165208134214105984388121334833764708599718913831697802867538996466134372498387683193344237267388358862751328306442477589939583884548925021085152818570786416140140623039810295643472072955539746540834339063249251482242227114677383049923913658091236109130683135037774043292504302558664317605577698720385348060192747876617803781752315331084199239633084598059252859623391057142096053836478257168021290111848334342496878662457105059138393917954886762262338306735755886708575573233589371078940572368409223468426922682219567942363867445022590966874830916253570426273752309022821671760448744576623628426172857762305381851415059664220594480777744343306253345699147570567366852361153405270268351018610473136262923699861559628484474220491564183465843475723133568234460074404280357005646722124338930039313930294944739803535908197870559636347551929802755350796971397435654500271332374539070978663599979445968053979788490105178837390125539055096918461322408689243614499973017635457213630205741760840801042700888878564936242258807091168243080911384069877211540909386059311035646285593896069292820848843055217993933704117675816024318442907312001756721387082502963180300623882566818890790944331521675749676547147845232209853041331284457520303478222258749922270460609675520742982465988251430968910390898103591770509407821079483671185348564533622993373865493633612922065650055881677727909762134855188088110368217897786978026704997670081467674051364433851121992009341683288784231359457187460228149346580389338502536394494135838009724208214608451316961824807626813802829795345870807105852818878941374983751174360810306782885935741554862976767074006166360671672957272011281106785708352667542125196156905558915391376574218829557288018259412558724993307442663256571243924071261658019946053428771872890256857749295890504376449465123621768396399244057128061546306873754703780558139813835029239013262989223376591337451012513529506919047242507826902071112641872416938485925014245614465886989930898877104939128020216186310875762949570609479639670612716401455589029793793109932913098684454708904157056626533767129965419149592493810335897734427525586953261698586770490638668563522462206460338883429441520302680804792434891698988398055836708922362750610879197361547003692700071124605599450535598993490302639753934162577416622825963408072756566941103242379585556183720149837088592045208539029904531035659976582036156563804719267273022992528891958277589404979800945781485732405187755568411829384628866519418822287504322410487470683994138911038866257928463530128311199974160883531080261566961201726060781802561548946617372306930915559108466716710127662372571160034229920455996364903979327778842516425055462379983976621271418977962357333147200346043048140193975688521034604531663233461219700021266044517214499352839181226211506731501087665623898324674083851517550640733755666482155344698616535704973010580881003998504538822910392738598906674253926810078917928121064199853251704594461964862645670128122999572664290965587171595812582261006772776580128318804495258962536503940056307603782632919504437691271831047609640349081219590747388542568032710778342253809495903608062350561404228288379235873971278969419942079560991946103209716291854263153942820833619143978745256173690425462975995986598321073322836806935948710294414291639876430768254683480011576090980899127408780549258897397783720112393613815029890552934510250474436199048158727362027172359835225878532865504079489270117464140412984084106081836028560211243481267596941863939651350099156775533735453506979070821554751118976338828596067888419158398198853886992452308226551106655876639488690311800146517028269200283629407296061151847778840362161523462905065075511658291455649512791400194959157172816359257942484094757651293070191693640988461921563264324370758761002890842427360890144426017705670175670769940988305480933607450951199451955647927399564771780016513375045914518640805493780875293397753465096219496745940077995180399200375593810326613430388128644398126839557433817878918190312844276822106381224548297637755187349455792045545863182726111340406683949666981848305826353553002323277840242976809670960906067241176261069518977438231616727670317714671468223256521542326565020570871511822755775236255371088496921127290278211538249829245833639146878344373027044789310014606849856129820626220090733597141398013347950609789923357134635224859976520504733648191394083859042235476208920081852481307260375053188579083901652585687247585580883180866853156850861015909341995169796957929097753398529162402345971209429496081016330496977140379654366839371456787298379924749490638165554093043687508133440544277238379724282750486436128446172185459302499478203397228363496459650547711555719575682921308408336443944063104728121380844117128458648454377754966249153356600921382993005329275378185827191819126521088861053618792802116302877754362694689437430576390007511648031732780019418036374375199580429928521792725393558737656440346929808107283775678836521297522088023703547948676029061218361459617031078503077211789958096862524565893969750025449695268025985673152126511614154135654552624697861130759592897212725257874961715721681699709256899164867618983345980064045105392721840199076097405038691346596681812554079451107920657411294865259802493629087400430465112054491794367342675588808868591096067552350091390354056072954125617395466471804022258364847653341518265202321780219290279711225674470316328834152460645506787079008134927433233717301027378197948940680985916698912310395723058411753205100439856131677540789555997826413822257785256260721314604247149880652906353120978698712559992772374179694619238492156316194024625359654122328634569183671430955051469925127753424754531504956301224861264744365885529304958845913763013912482239047964156767213474930301507278475439886048641725142321335684952851494362853836480281410744954491238016813458031168811044094629619140725311357046852917280035695319643741268854217706727734490650486811709929974414057551402560403651814163709495519255976427737013123331421967759318558462695718281184676357947368569161183865281342454324671439713947836965553894454961702075135619294796333790789199475658135629906962741100182350127130676845099289191573420337013565877845767035214361860519787735078314427813664607252601251723746769260792118340497916036631139050984834786310786988171701926764786274375678766286699562913224098386876852174122020313115740435681396971792206070208829311621289905578205618352156089676676589466747203166056842788079460637731470695388785692978322994102159413269923121969755414516187801203479110507894096276792346759421838036783033599271084271263819770776323188746971386610361157550871252788537264559035380706781535911277037110783281200907429599261023686410538756966656236841269302132648119526491262598488264976010251142114531287621320345374405124418241563304647387632623208359751214416478437921847253821286593678093362253475900890628431733721447736910141932833922639329291595768779022110594374415753508139129137472260977891800620374812458883900386933065952460832720346952703679850191292081758701447633517021049992191306706948466524400300976795799296805162376053307982789748728031313289229701612972861907202809444247959273726521017403616301779529572626334113924575738597175113623921404206666320650838895552409211603825533872414952125683093301592903915349114764686745303230117726630365850331004226592964403549163266650656725480011251696480567903383632966690443982020865915099005144235527610885522323557218011812760890316664215699710732143036804257540403665754401919032607898277063013904482040972839764628327857399844845039253218845825107211084244089722220240405011596246934302957826625447636777606170619463286186890395094616085964428559261454941860438608606796547515141668061524526149459755934995803679948144890980657548995679684279570349749711279862102414696592521133103827754026942808928689847238078525323251691092788403715871050729278920540309407611003326532341523782255596576539977584702089473668101547592876348115176266957759186265298619117505653449814676685004760457658215537009371857462216433298550187404704978854010266852672445654634056250142278491953139961428633369630702477889947643075452757474603033068133855341505442269241701384610307659065705288497762554222021426287554400096722186333847586514695745094177782545958721104835162935024045875413299122121092479396738421926036722004727406451293432924424612218558699112266859972039148102395084152776781527583516245200324447866145168922908535010943374131533231884920372243825298541363661911198301518047318566461562181183084264896055053345027982611080207175847801455166977251230534128577593373493206162105784118613581425529624734037533163242571878013991874763093064569601209332675872173675887987202484614713967975040100229338213708635254433445822680281157664836810501853806244079377985403070340352098349923839781829280636502622562686428145991961737397067102874700043828994453892362591559327346960202745546443929501988315805115384644746561829683330135072797022342801619083886118863620910607487837622774753759880125771012267025655475255785699007901890680822526790993741111966213342758399714984735672689783287463113266935911240109736461300991818489458467285667431907236246553365304383701285545407355454496737423401277852952673424650702071650757701041267283129701302581654852252601442736914385556433786318177859665385816449851602424226875688353028272417997649636804878868392287531962197005682727331925073504573691610243416460190693772204544863883870102708881255395424882873831130724935122480737925903219409931297882116060263126152819176240995507797132344648161062477477418019888885091904218811673049291442493543923203144768710419323565511218408423310604052178471044672590999587254780780523615464400275937520357757231174325752700086525865270901209272401937524883917349043462020513214249789636451445191573575865251117304843305230364908685115747584065137483347268269010004597389298444903096627141757124539523592837949517405112826224887003940320024699084771718317337817198228989502625862182717363702565504994572585868811141505729431410260326389123121555985517869362946511797800183029527666491010257834566169079061144321725897938239619026252427834581236665978490102008773335416964606007668296329941318220702495244548638926417064098590279695809840663567459405118289547946923448816291261268667346135960975098377919734588083876336916442271821624664563278656160523962520176283568396375427668809121208761526844992915669562079995353467169262499206566046137182462266314382122445853785908650289876588140357976789492670806165973677850540145112999830098234365687405317039634798281183189596921471175519227032415382248989102018902750425365917239961862663093175369097249024204981715993770590757606370434038990074322100625785676879739859135229067996787236228129014363881002976679169448806688858416312405321533814742886090150696391286443805222257678058223665650915502289876849673231519273754767584091985882387741445508969005830399060711698027819747296362156562440513550848694858352774597613500282300919976292214939375326426131954051623724627396379289652395852707614002192283114983500933445040184654241587127915835025193729018752702206214528917369847121720738501224861354807013793345099066210357874627430587155370629221272648261976926953589405890603549476974460207955353042899300177935054437969163773612139758553968719096070767639889560743622531115645532805700491008739862344229474027920064555983971208520944090785486039241129494489872843256673966288202808508754811301078317391166621795918765807489982765024288114255551888529101199597034528636816539262041302305970302009523597387915109254035765935067323852877316638357423027863812247993117843761179047464923244145620263725190570068424563872360756650613647474925143276009935234903454625831119939751092505451020544891915418269111390593146252851854466451363169988421920886263805222313053119601858225083242106347779901619976095101799461041951475948446039365269642834504496679510823468063329783098568568765237782583162847555085226248599942293439237493127608638465166976815913779790086966756266177711370811246976410863915554710849873228137025183137986675512387307039575861362947930482031174699488932395206066338929554645696939445853129798308328128217649724659974874941913660968650625747927250433851409861340700219182479798833219578954440020027551335403656030522993741510604744899299986209002958254757811257533700427296915015678825330006522591532693482606469369743540341776842833579654337794973718883418351209075660021265026444997664137940331986907759693273762922478184571254429015975897599233135260009365399206606126275605240189935669943573424029291965450159957174815954202650669123800940156874098234719997358117666155066155077634439026744667207994760047853339208339979981677345177616544332530587319496765670146361538873178948105132385230541098361607670925173888819561904560305548023386696708490384434785182708414478998050967400209126826542592928334720662952602151544451716783816365939960066367069147246171205210024287376514773664057943818199486689821353855945092558411126626989428700051011890877607485679915184385692942336050291597921579773087221914153067897408148382505003970135487132992182920543388760780832164858159597131574948018111743124466248866470057800518553053705993899594015995212419703141784884943626847702059109774108306931771398352604536483913941084584330206119904620619369436184842283464598047872100515008605470899049472178323666750941943387659190545659935124569242350510263279474629985444147654942086952043440214879032231567796841275515906882970902780267142791671742890859460346887297852444379245391582960924089578812761634723785847855700052554641350351628727820102425393219110597275982943007996139683149165706901696271859612139310907541791063965501898795760158510867561499808728274493852761895535024510180188429812966629232606037606235809612330045364003473608844142988774460706168301837996662353508894843528416809044680650749845296720958434705148642822420751965819650516742362916195332545784744601084599908498819320416387534116263626501997062472188153225068727642487506736135781220512047181333135872516594729860536893782386238231621957454291807992775068232125100034228366907623848371842529758848082637974168016703415413771828729545602474420917031786744341900708657447458624510960539880990863900887795348705838500484384733856219241302430331513351726788474221901712320940217079848915661194512893263467646543041613215570021485328430730348929849741364957906320387328150413426631326764845423158329998600385182782469635640774484526748643449162424361136985926556425223825350030567615624732101498299920239616096587362639964968448747592250472213822725416833469721165552763994177944361327877918215461257890682412178670527135154153854959258483319341943039409026857659269420733959549906481146671233767415351409012454878051520551246023714463102329365179141106484808434428245082932081335061876267152349547837661598936927488239230086556878709684512292751810478026589549891952059947793873090780110323884302974245314197637822036087004559278617780591984709824466542560452284880980639667876980322347767296278847906322834108848204909906995641821735989101036915681105832816490663376419839817851478477987474653809857983875990023649261769179323765365924522501768110349573694650519075020564565650444864317751798255724052802281831157735040491711892644899141621806276021719890494264256549727943734920168364412794992889301289516372823092935027427218949894210094333541571535265068211904285365136984277920080117517649584174273064983471019539976133811269487980026595970969326910088261034174262263463911808027891113720402443552442207808096536808583708415612366178296617642497537289910724072142367512195396758889132242220870082019207831452006319232781509975049839893030882144823349575999264619147674120652787998888569168550084898882586837440209007300324629825545381671256749277807592387500780554605214546161840302420828212057829135327279684750687002221589945495281346446850357312436671691090507407467201890388957389323349238980164133819823089787005919419746647383107085673685916592391512183690867675181034684832390092482397965323159007085563109843270814801742814452360642942947087077975155383306188460024398664427339658765959869923586499273016468818031230320505906205129830370766205929203773901705512557798963260798294006581747844197656617714054389280543204646773400682940613085908690517922181458777243431002979055863286478779961453017824940081518650287300456874681467045327271889405437334204534090068976950247336958877641137600908455086110949861660469459414846778836499687722212956917548843175070394664258527417265190310009612641575040363386879208156709630888287107908611397592452318089312107884708462203601482213169556737347678577755599607146912716461716600205751552556955979987856004210959690344463082537441225657695498085681122816089543424893352249658364754252575825361756046340158630577022714539456880764501779185879756474964581939620948032574610966640407554595941849119629880130765089453860232821607341076822509183692924403193533464661719794331471210145602656855186948891595005179531747551148646092245054528078141269541231207679898496836310132684501332489012095695961068114284713475065347841345435723204302349194046285323623191361609344014442379113690229256132581740738124157785349255585598999859068181795897774257997745995203503156364052973699411005885874741673823853619198259246894214390810390711525522016621539843687185018542281568728082090460877638095944056211973842291690639792778552122706132595797019518442541159734964413589653375520924861050434862728417619216878034104175540045232719167447861227105464934667784157129235465423912564927258844199170574222514963665860848191075145541602899873778787677933706294137634751712947684083511224871757612105354163053491291387322593182019896847382203809536113675353581325150265928819437136748961538942451843544383125757342570943590301885437821318497825293069841072343525489964317954735274388904877406272584742614985850519208748954865510264025231758496026722729817687539613676878898342753313377612697237756487256305100044851581333709420692452724929485327597028993173821618506347416726866446363047171861363520163347551391591481840871522336997151750680993541685532068386271097779956223283984912492540123892433982103829687998872434161458260466637461635505793837287738907088738586763966660589781927289086619876398281748810202464734046914900748186354624020424756650823966391603208436039820393205285185267420782369651092625915351503198565692819028541259877727912903938577381556777940623196909403311871064165530583967029030580092401898583651761638135625961651628736643274612773472229842779114524468641567109051702053989626606398603954756997789245165720208610543973129727472086390749355025496513667773265420607668916310982144283515185756126496901955718485344814461762870994732391721652770896828154968320891745229202773448436647952207184673829441800440661085728177579537069246730612716520435776347729459719480712216942550048556381750927680892271739161689325541459001344637391551522792655976197210717689177207869124975695312109579872850302260498998195205971276490831560703377846660331014927906288874284913844104727851318749098139893811414046564461909921682191046025452040764902271901432453922454385999596017783245849472231575061369324515749105189378749634464985689060928730517809006584683497862744184073345868886178243262939467634275750359920529772771905268496561390541203361006606099337079517158981866772224659871947398514257373472132022700014698593596062782782116025486206672198207648928977574864678019214809476811353333345666260583284814513373110557734556619337912520416494094043456086007534314186855040017075709164717098837621511511658430655891896356810668066387415571025883796796639394328139488207507732579643458389324829736215604273024348144633259551390097993091728332745765741694930178664847668877484614475192851960286258591301232798498381749983169266355323100142707135305355232399375963581764095297803887105165935869016808599014209179129074218283362353794498454768654405152193370177052929653258217538123047464542734428297290474186481925942424872509611316647339612106492510081863854209476705795097548798696579278833144324177257233536652191378895094207911165340403695227832306798020817230397535734228589297555684120501226892176596150719652030564401500707279048915960378216736169745200670924833475398416690156954347338075507042734137077416724501228031993547007197544661911428686922175657597841918789237999087699448765825543323917967026598685044342327103145605834005479215906817340085458839260875992024165002587437822015989099018921322681282138387427232460986063902291455095245819692114683772827944137669014375778461188516563077896485360583754496287418094049874121360801390883099940955610146889730153696282800840244181536213272101051001973568917345095141197836557374180330696649364253172943238556998261476090586684938001314137042938912734862907537666808549401873839830683783978620175323101271128841918307244068236530566104558207239445944977065416969307615932902418396816782772747363058863942771210696865662075940410030175507068727877645133282679543262807742889907644768278880344022381352692363004761095334641934113119006919946340049260071329960800498837364299034683440296041801098797037004229664041293469628265981494844880203107971909639903507699077224265440162201525477136999871215531791549576243287455219026498556237038011596564144265223626041130317475894632072608074070257023694872854668618560070306707364520000958436548270996028826137999338022747745305657651783773365475415237169676821858507655487467032412370087582533397444268128650968550750652755325135868942709728455546565015890540988372606264996686664280947524143134237486400663024911211107690099431956112669974352504770749437314860008467508600247512881939901352482372510803995290215858026561458072379124961592435214049769262912712761459075302726018779555353666628309583147233626153830868387022344097529941823035018591565025815412452387206274120216383315567947605846809564136037174207833882106970982293178588473576681414548868683408590380179184979232916014292555024240950856925715083374826177795640429548040577442728042298906153033980466785470548299363287730560980794532599203517942817409478819172148335542571750897825881212126365655756179423699693530877118904583197258358070109769496150995272729973883143844229505254842332864433194385641514847042222320847010402872804907858444355357779963830436760491694615470085744055309227662364198208368957246937323731145444813703893067156690811542349887520065752492927439966025638597464975582217431190552706770799857876413912004719220270852990424840899637935067991350686888900724152089896709941291772479891950685870195319698430383623440092263371899926247806124499206725434320845273778639910421339910868320488632187052321086839523341607538045707616328469522301838287609574124926605202742329127112353294368939571976159639399148491103230085974721879382733003951155259525117389655542938067174348053430959134422095107999209695925300613968173323368173195987526095301662954686871237389420423955189653152453270457533262112119937976640275656636282751532016336548872022082649004143828168282003083585369802648486909999638168091580167400581732317431119392898007523729043879482775629367849688316158744735738604281065746121259496387650757145666196819443682114115957446153678100046624635497185214906118747384945843621440274381379144086828239634108471352427521985809164767917791563689810749169290219713254567605524769114057538005461190139997513827089243417758208533432206106090658078637907356559003678415215681593359394368579071817108702254441470646340899686864099825664559691528788282724311068353567987723927821923993889841697954697951085172920385040027401080039473515384721075044239232208060802583933964253620294931210135056070644432979040114216646731447906902520922216160792148877292487257010919686512036379613235042843951381930390963094095952602983157157944062319366960425078490883197281350211861880441893827279081264785446203370444614925399215296840620077455344005776378684237565305337353335126753027158480903146506202899650093095424139688547397917617074746288614856622809088028771129860022930056071347606663122512532856790948249605421713538786868636331016878196824829148691624343162144637281940896596198537676306402176812646736932141218703076193689967435398385096096999029589749542034715729138436921825847040040525859774414339063813309409111655141627987947084169302311975712413599223308078088600434206809024142243752743761546359572764234981818038475288517693009761094008864830021115057620387368225759719852747794821832186936351167509750291039157188610857652680610002361709783321878881538916269411653017057892475235481375344181838339176210809885404936752687895663723455117517447089204104653114555628880187365922089513248626607857495422347993825314110090715126385526928877509712509910687887875581924226151593948195750381910373222207198553459408309081919376753403753466451544254446829103493156943202390138742004236937826138246692747727067428429186791835766508456333785660709064309758720870502034756821172786105269711337537555253771579198176178674964039835807513203474635127904371366517703316308705508327299241839457552469404005167308428829063471244102673176304383977025184282828068352557758959127582456394123649428765895735564450026231552707134465485245770588009450339397146592229225303498776185768221969446604561854180444637187878392944828087319364258682589695728863190955261681359158282555770908243557837241252056856683329538913444377220947543033745432310106798056368836348853208360604462045378763037550640013029025699006759995267465889270089505653189077495482513490903892583419437382021325090783758104013076285201566706205795829044236202476509189955675701004036921482220013945716762958684170320415440581782286173697842820189975497210594949345422300698128520901292405141288403451126585898295283283106824646746607378014333502866452815775112128766042552270530758707523396108461998706636730192583249601763278265753371053046010429687732372089892304662115144809072291954356134675286181365331862497201573173970497776209112343566582733731704039418159759943517285759140391290779656511204979168446913986490043337290511223581606893637339914935553208282394917818704150129846428268951423054381098413338384123061391545381415167749017741312806573329481191984069738514882167776600597789186395701893025599723747769838944975689481211233275639459677929644289315887139663697983523935366529159436501376285900929989770327565665272908526204661289263162621571942341971930520155489539897218447990202696180781179321245136552979937981761825136194866260512744443639822353561061783391432615220519706639946420628927798209205480442591195859951691166264590231010020959821985621181903826925169379261757578662132901501077730360709060207087374102484595633077571736139905614789160677137691587099639156952904670331754122190126599671312786270956389514514630069394887797995014766833084021019248828043870552672283964768354230066234901137207225337399514983313065799840465075883527343956104078114792409915108914887796039459272580830674125741825363719823292316918020167547716444643694726606613172351970229497472766701322398246679101500075955637536299162000623242467907457647676458592158331892666226607293649864736385994037880626381423916210509177592561529903584043589802853697526142465420757944941097105051109208647847146114068090487994253070351572489380881824828643896466100323416022993550069290814045321094167182005725937348735816792934943537139863723532406765528869022082927138729198902264451837758042463615111900965166316841341742971307040705578576827699912748056664606770960751980041930654784855431203390094014169880162467834478709316818776102508062854491216456707991606348066620149449224050600243246614052254865386629190243888032131998149067709547199618464848861137254205054913001188299742007782582056370192187590403428893795921082655572676685181850112491412724562528881030503170079835862013274655834229735819749221027432348623676366140162693338431242917402592961940731610774239556271055481572817702454849645522637728973809055742341361918355507339276946547213750470367701334184399862805651386909275020127960198483226928594615336003421324728587600251480918979136098081869874371080117769108188408075127384509743799440556033594724746432793988693135360818542505199362059858478031475915693615416202039644241757498202703056377269157632149913701162577065940286773801576559355397639318734153080717065537773419336384110763338879690869407226523359485025246775321309491218880872846603459602950362725834650842767733208327287926427972492686204387496011910698855945788871831379556124231314152807016870322171045492643819403654946693745344216401653730548850944327556524002433562393707360982556712529215202830202352230085229388084402776825973713833547351367137816875665206809958079108878447372754957184782487380142625273738015352519967996533463827470884161193367287431350577221860683513569345190836730562073063744346330968315611092262181588006628529288291895619559776149660411544422441658568951028902617981655956912633628230843611729541529644094458294340789319645873523844741014540038844755286566368925052293112009392822465230142047694805154616938591014210081055558234789263059059272485402874806825427931105685049420901999724379787702890499902310870592406404746707060023234058083633418232177706793509878224151409772629988760549292309987654984960656590921172430193443847976953768659084228308748220958887459576527483530227986475119944897581824030808974589334285631524769576853781687965184171719065965174210981050332385899955276573812358270367371757334267365060765544052059802963071042074446228029397227047425505310385602787023841126718698582873638847991695979313828325489503896406376086292441336406845452681552875361284344249467556825232694926041933799182183152775914074406302466227985162866002899623613585791660583180711829530737363204562697683683090637054263592420002915689747899121185328045971400993413384520393301528766002613183234842818442913763112923240888012154796309073351503395375178293679346494049576008318125086444861983702801631573617298494418790690871190014486840520878733610615044946894678481051613964983083482701362649191999827243615076935047063467841892732709543381558207247169162968132184085714962168971553164964430797754440627763823284493837733830150214084021284364276534562248269832655722742234527180496636911775317055727779867448969418016140119666375609655201177590766074510910268468848888679642063262683442286846279693766646936146840151129340230306146993876504906008840074752401693996056723368733502500498198407092313543627805634599783313666188857124441533843099840629829675444691576243902683160828222177159431885392519825937808262103742079165048485225706006234209512309169877349495408481432639676100794956082066120315380508225679723979949572215738345495480603333094057461791287549559750371805466323061062387068172615072899337244649479734466358067340992075172728962636915901633587447653136739561144945727065408532862389832815829009430080095737797613088221548270252228872501354782684797507079189054691725823529723352849775222740690035278942048957308009541332644349282736832427413545362176742976008029489365176233599755855611751995072431033704562853893008499129192382482458898746648509147183988182797007560549457968882009789416713611616782910092573894735301768165274082298657237697713575295477149332660791009977810710375959258595466209841901906716351127565786691123947149040816798927866595517653565539294499120070443526572538693040989643329279778323807595442713297773755482775930672672786528128222464344093048500718903985447915530450996273386119268349048412666076740993814564788521452671243820603691730615831961007257211752156850308293017089753884520624463950294976949905669194635186403419454588836636303559332999702566330468689432850563255855940148096823470498879875561216237453693521312735597656457773235101211686318567481309268562326568360889960770953248626514975173858315611740228552834364287268383217073350245652324256686648103981592975629681360118734809994071674125070937927285555062794802067806501141849418509833945737124502695007445580710967214901334771436491269094055004864426863395020584922528778960381649956907506923400568698303291514107704619928240872554749028752784875412776519354678829246118632622200333523001993948215635362369013067934540916497018245342601634774229980248049727822211426578674400361756664294234990517698212301683988466651298575235100019773119849774920346932412946607462505378018353441077213449956537192767990638972328132158805534706153961302614071805547793170384546142978330554026171349640741686461880019971571985807106140185054333111548202530149333353758845188173865049297244584623021965582428079729444531279240348221879205483018525355132522879196182095310927247551090616849682748425965402295994379366400259602179429613687518175237395405999101565151155743173074359547266789003787994542624981409712250977500984264132762850595504717010790018083557979313139357217355267772238786497191555561643340463125723949575965409420264087564701991717925654422134649071926933820954854536810303295414556537742211726493719693805961471091164508034799220383910395413928813670653800918495398172690016438147842163128973544884070749836329002340410770227226732942524212275364507643112674988931057234059926289398533680200947773185012536868288957247366619721299673571437895312400420239764020762355577186803179011351723228991369946296429103631642805736812812984668652082739428945110933943620799096277236558486113460952404571011369413931293410014272037357827745139867052361797612307448138639442608858013485461481418113158118385359660645396190689718517241566524594519665421081331072200551260592066239261687263491847483160209887549123898336466620929199888227709790751070094821072929574717460356639647045419381797612955977896057497039248817757992168100275225952450017969840167112590206151802336401379990778848270746704511518485133756175044019011913691244371260622463189249189859629374760407538308790775312278737814799657518157662089548727379646731973371793648456434546646109738432632146302281506687878375138168579530449373630868417802836333257687943448337411124350430659978779479053643249266021400779738150282781405225837119176312352407120618459089025197724238191160462191233927497087012299886314404684308057282145307571356533343289503445781376559999907841615837460925525424862683906961339517305727343895850120144342327561944158507377143695627824313037978700629963936698931196935241528803763635412994521321873336673297264454758040779741454329903071324959393581521825325835970328216632647236962746452736286110111644179864435211279799892586155446873993831086255142264466438865231664850215277339505563625790543302194226767789465882379574112490722798825550442088790571109477031869521028882617987872758802734148745466522332008204834849318931753319085542560076285308785049273231156177797910201604050482998735923016659698462061962741149443899248653525780276252132582256576872591801639999908159079843562444152745281177920330896027846156499579167002304741290298938259170640653067042819100104959703089576055493653288531344994398873452453240790197040222678188833162291634648004757796782195394157338059679713971879593499395604847765092749801386748071797583476377036596805057854526733292723572351561199600728201167662809647773043966811723683955817933457889708758625858034520222882851552231286172662533039170029141275189478857070933010990301516060775283672575749900803160025788839148739325626441142344937283901956349185312608459900352865676775044341429822412894849004669686932775984621790117419759102787905468596847125493897666286924137559820470965500912895207583652308975641067481944369532511604910504922702971650044154241760082703971848122655970507987021539379402714226258143050451497494020284070240234383315231515426169887146938036824582940723893601402902692891215887746955561586758386998487882818139227027631074839538548596234382855723955980426311113250374558023717956721143724229163453033182224158809312764278174070327097639313891070076829174062661600955670302665277355288564072415479118505930217259651216717573510783493332763256938418805364833768757503861936176067241344256338552528365331524703912210113476653910879787228941502400418134505230816608383036691646211297355126020706358596947493053550558645920524993564932572063684834542353537280392228548749752960501928998601169359606296482355566574871125902176351643217065374310124384379102435668069260096222782211257393941247794288031119375269918627299420707248730169783353279172348931286657365642185908841090726262758667877781243420856929161731005106697859015372993616432277032222426562844073077672384180685085100565664136704637247137304867478274525609039929022167438061509042520949022817162027903571235882201570162586853787778574193478336783559488885871581276192717819085544357712264187654793899584512346993178746278584144753507090592358305843801155726442276835818970735753477973269914941418222548135020436408316845438245734586996018171462199449549936145421512106912426871363581415589379600805987608024273808358706661211965111306043411623122283539559246602576493562201565983575737594022631165557751018586930311982223841951919096919220165469801393134117130357061146610074396176705480611931984092034238702647554517563135422643215586732819218670781872561288432991646305713310560886606619427286897701844418236851030358617154051589631651779003779501342561779067994617026898018122732940337181513099130981407980957759984076449669294920162948433569843988841233664666883538511744091357540598278188757763484358059191760277177161132147122916549858135126561910514465318136570232618459871944950519800727313415412396707827725299519848456830471781815695014673335757591854100109671834394705142501228362716845145642044873060452196353155983698744709959102663269136116786288122382078027166938578299943582043242716535606219398627809850153635849842907488392273735683002585916623130565818671853134726436181103424524225932434059616081675141343248874572054842394467403436902945530666059929418993329258863254062835440413999292338999132871464718526033965220869691738009469390974661652923919688677075708739510811713452609006105530281137220989598714974326369094694086100597536704639085612682223490721105033750361740790093248845403236452662854740865333069141444633029728893989685902733066008970294270118664543782504376544300865612181475800227117438877978658467876153560509870138617955178831296107961231621875179117724401246163606874203243440753866269570847998502228375137618450655304771476609949612187730259203306679558323803675507228497208853050495468153983926439636328753770405355171507766391771372920010145859311370557493724259526312583977053847053578267965344939203103910234135189614258413999452259929407227722180457878163851613316991825998869857715983855279558400229873857229201272008476754372144105232114591128360297210894004247006630854769616871074000320432907756472184607376386613761225240087322018756633150638283840228948759865211270630621652410076311537811996091011782507731040423974350118401955842698988208297085612528792049168336858201467254104824198900685150317677227451301868009331451643082280274085544001391423674288410922360381996582713264744263763039036470463400895425459580707962310467858758737241529433854098199161316934561353224141430364833186394351582637389018808336830439206366168889054404497713886372166591154831531822688852950669499462901554009457618649561234843091575469654427678867992635078645263943272538637874034053082384377267831225120790882070128336825606180204409307590363367107291101628312639217383317666684710088710886324743018973289905916638514543090014930214904971910121918858994519377540459177920315022329389426246529520608008532739708673121142641121221859906650492216069675194573537750277708783604381840791427862373999162307974688477525426498919867635343938298288354649232465239518447728856160979159627784234990894839307853025218290782396776546856292667819444993946718773985705173193939068379056781191184138607532023371696975341013207258931312013974544530929051059597214947317576312077658246909045218358924654399168788251791655994259931026403807255344426277468166792941507443101133453189591054706006894697649966156997584316562786065525206654476347388770076742503306938586912043168901384868472445499606151875673870526979398827705697437951614506394398982282811798027021258111901393790908383008380633657959950521702899944059092092432766205141188276104057354284769342430590235456179751124070156528758952611062885744696213785374129792976186359846926279296085225042606685574445247382636285387967845834089768332949360946102347854287763530840980648927931460039715545529569078934268886303707665565295674081528254800273077129225517655046804463638700039729191528920122526732219125366948951122907054698410214841426874247242385701330389452110387842327869467249739011809158858069110474349831114404477590474529035145739782110629768356162301122250952094910507917594639494091784993442141063491721849076182828073548906508432730871009775310602992050146004846259324461778071878687660501939858156144198014429768043707352482351362406381253204076339198641169317358907365678051292760368215053888053542607256895320359541857666571662800435553263349375651858653220875192385492074886004251000867090462891477782779082509901310849732141595008413157685328000149079076481588221908330532236029044109564405232886986582113154430089211625231714183436340777457765287508480221353722531982332880268243579955786870481243161605311856185185383692009890463232033450521388598053906654361047573408782961878410721311176175448949584021733408740166378527788513424157617598260249020319291877964433263269110377297429676535375246526480069292463905394664420322786267273976822658202664599621556557395622282038984358807675808046520081907587089949498469386455106718950938005123460979222353925114083852805691021769832218429109716596298598650795043059927461947086122704291694842342411622176055390442365131180596922592451163193703582488636556970742297433906161942304103397307861453819848181826209205367565263656903380612614887130175104330992633650344674727727555207335521624499427180747442469814805606789061965779384933329380271421704475497923280600900024398183338628316105911952524451109845215577426660359567086870006692833808507157042315347095694018677234939600555890518715234688301727298960073079425501540008803805823641733382806026403658443920242141735388477512607185042649243940442339820574593718881885933625539721223179654626966163107961091649811212113460201385845412688350017625608817644670373840635757359458901884067634635517761281666725662684535750819626303529797742950906831161510610899160368024167956528787671652399324075223951346179731173815961422211476691826442662189143429392717375201838664936931685640066657045440092404121516863300703853865151722085413840297202128524497871607375273211035806315928118330429629060412311317774414307771684965469375374809053422555993272701248896006089495290214943556476291032841203407995315193619307662065421098206190918297088593643109821531018985906323417050094735846320630984574184465122572664010532216740464146448598902386783705198531378231067072130030133981092726523503282241612913458586182890414092081401473699943339298152313235744237973486350214960143035476838365772604431592886332369439832659527221327811467284924389789428356772063847907646705596216562191212232332395988927732360864352568084667671828300532816539499310816153761600798830950036077153775220075122595067498886214318849986813129558851415415758505004818183261443620594386740307606979814154372246586925177894213539309930190628168322237190332012807266318089377589225301139041691855987310644380733419289964090915200034187042215080026437241649579265280775048061047578603828271586040321885036763797633646461045198379381081127750002632477627608873036904820745996422830082078689349066091139159750227258069306511610217100726216717468733882505323110464790672494358521744171158922528291534305802199870781518281876639941730822147899374179317038581078132700995115087355662625493420202915096851619802395185981233760284557407999536538386318247468971274907303108444972483843604921142956708292880445120251297801510511162832971539705390124874789020001454622881149973900126342060327150138581950108573932152625767419779005612401373807362202083430388563183984882512230450938213644347943988029596555525353398921921593054064049324667305291045616806493564933873347271698507051775340184419697162478570081956295939511955379726778717466426366559202302543743120461175314995407690165413358027573890235496405227433197362548493509396351844597681276080130182310637206181905985500886437274272613900722780018497127822549590397985507458266749690267765522013225629620158536564625202767097310186779471723665369222089393245208941100128577997071145976168836993161862399914594238149926333390293582076313581149168629348123704401851983432595029726945687812721801880234270150776711718427145578886057151231660900847571643446097361570573373137324345648090671548340687629265691373263442157216537003473516689541493207859446481153243101326990388333626025608447218913574549183985974444542395280562978953610691763727669818535578084013248718297298379430834780874942876018403704436190597718677816918923577267883002434382347329682395054469535811733695070586497142883841232851040471929637482862817250029830782343447078031891578754691356841427177057924304970870465690726116859850655779354859626786391337048275507816856679119881682169026631554079398865074860550552019113709071335092960653991924300672514028013246404616904746556727211735079547308083104504530446151871166757033755124741686461895249573157337444143544253160621907879437664805457372789449075753452497738074560358755376182296765597047881373431231010784220922102539996863926979308961834496490992699659388834327758731317003563784434936050934436733348390705270884077272465972134820832923254915003532737837888135618449272594572204968993810507323791773940963155674889698436541110645705665495617105048042813978939962775543675942420242515469907610932410709864712880454025268886101751812005575266864658076498116109860363772357775603429259721870394934555792079061666314195941812884711392972283426055065909123084444145757808396318790027284862459050584521143157779318568489936426252618087237297471257766106670992703345505608474069498770429469875513243173412449544082641187254571002895132526236531955976063763242748267950967084215310349310751026597706323176898054170989416717504591328813156148022589019947939736150828705660151310324575299555698029638428491193578971596805018606158841128541841478786541889263571857055974787983454257309384381127002157953813323833769709976343464844929824983148543186803759396483456398071502941554790176335600550102227972746846535780565468684321895185819386255101816721500025116154368133078385512037150456757608700355390417471258966152837263985761681785532300792048708345594678183527904547921020067104552732848785683612474950121854850290076380521133083536222086272011651631317875291171882326388134189319558194806722848996495145373680319950825138538050500608984125869526612071836382858721258143753478889733888225695507439422067143723212709666576490953242569315863589228706753470920593041722927483693081145812176536654212437961000698006610726046413713863174084743080459849448916369127050904293641346524084568967918585128974667387745270886603108393090270498300896590883354318110169725751012542678075880766892644516972787485472501984440179396542265427172166856331147584257730857124287974644040440243210038355053894605385888613003599139043498531554054893899354330143648564568202202323516262727668694322604554451150573075953816981209170869306387168625756745801222097316729702601006158918390173383087578592943152697080886926447372786438038403289652585436237399678128921795772467670890332570388543319784114015292265266555006981591635075258904730950063072104682882943944393578412922062995903385015505919317646466509430391462696173754560052774730715284271301869634953166858090928265037759315529583035885008889843393664514151652178576468306184851951903909544351701142948926647075180224883584905189100985856124280348181287828601722037864872222292626314143843890659362602751111331761606810882626838832398252252623265649211990162202759775479168541794236997804235533355645425394254207360764798714736366426391468886385881035959602917703842300446041555923329853357522081653335689114685529326775016064936397897343734610595630203937037416356263246204196827889446995087988488075661186261094477306903301714832174055260317782724496044501656237694595248163646325022748444845909052975472353759485438831071053641503885389227546959176749043928802721218304562714980788062949227333675439967091146857267374541515906472867111539944759094202219394221133344045719518817565727128917005896604040971644989878019499549747946577488110846070859884144216539838621443260502301035752387680045939793510624779080696927518193500672486594063284095467956818627063697328233122244159875912106656175060708850718352606686057042606128821364657485318315639874456481590092566314448066433547605210429676836649365274461898621873102210599129888133632608416616220264891318473500818877571894860299956917109876017993557900658268484051993828494216903658308874447665748591093892755322591618269765233434511600533069620023122831647301793138427940204903315307237086596477976658284680539350990280992159809199523793196304231477440507686633259306427767080412872170654666901960218166455556949366415843172825085175018640232365372963803643867273968306761818826846412240945380262515547386447121149922452855088495784500952792273090253507066831971412340236135037084687111280286172774746164271236804972830873008841065460769498554182164247155624489322096879634574084374296616434737628708945587864262255760308206970010344138482421077008004759482569955488441949392457363374487949550476060339114924527108815417457694120564452281218863546295877630346485586947046881017187960476290382924074448159807326571137934243837331530882127754862855038947812027724101170844820215571616131424588132437294532036183632604314794735149864121282536919122315149916128338357931275210701180400333189451280522871847928620642449518333413504533497949146851096502931669296184303406482605623941991628422454543545559504744943277886274795461331843060328024316261956918009662351417472901551738877107129996819424724259097342627376900060517941719739183985610986674711492005264454190382672891257395553403012201112582692714558363539266565917090676729158388411904011104053280214891449419034224109764657326968668905415986190466158810628165849849926807049417682652529502235477669834443481805203101818275630679594774476795820181105681149456848975168471141422230384072201026011614325294353019457937414673153016363951145018678169000765546846220078523843931027201691937547068904626642604687587893016145664520018853759072636572408579892898537046646586244670913658042134964591663433397248940450831594223563666315464505030320374111956571132406363443305742561127731442520380692736949584174205056052550313671626586712346924859770219143488076510607829869279509932355386608986121382838984831862639895172043174524322033540687122262961789574877981407625865065935558075607109255728473685389934929095817659827873919951633140093555817718101776599252579287971645487431823867520179105240994923343512641205741477173920009209131803659002773826286703468264771395630870930268358083550594224931940974235865078561094744724535481709746235961448986512986742764467163611439298897113245416455572777904347639762886686487391700270004737612739400680770604105525152951466588095136773151994150628856177932716112449327713433451249574705620693083720499685155118071314539444683212053494177122260755772884583961097671416199941402832262983058171028103029750393306998190135808078754394500286516662591720105628007112382945239413287193207906510643367015061320974394118461223636134620776646525255323402770370762821743592090956150411032133680626752408311168615614850198136950571672899789289354865124599748696688298026135950734191562381454061069210823948771513757722903981876587209836601798476821706725065304999758761989434603018570062382669107746210247397366669883842601525190003923327944055726010829764984972735637363943037664125774895814362689946656167649640869318779211850550145166740973509354621555143190708081981223986893517641644520678199135933981118366810872845411827360943625343606748702727216515299077100118791444913844145284230509341770249043522093836143852586546938130979881142509974007993067280604264032581947426108849833314747401657611595430437305202191467680520923492654113201938994488536837040640648092872925110232342764151869170072274870613176518583122462944194202474456041413677201893354589388054444829403318052815975172388262550799075831245914642267446804705172599129660970683590377208449328927206535929353727453404013361108551150295476838760019701526712457025871256614617356363789573744681722345817015650206992849811799934461313952481056429034883541564295933455347082614393216119185702722956063140715284278650012332115063290418633167543352514859087117248005210795011347397672008790080172849719632621689368940537835232208006532703612367952697872925910582179373999136224880103408846376938988607569000712154398157410017823247325239907285284369599325838234480108849344161857380125287734843188587628698540265388504068006295294793346808627348779185045664919688167547451272873077956454006835278298290985781131400091091452389331353160074637065436292704580279500749326613691216465756970386273983400226870701871453289907037466272543509879289433959843922159235372533187379556454731483907062001043473866788298696590572071071831800895698789503532251788098956513543738735115128804256409046379160194227547183493900873266318326827678997133206616751429334194467333221355350152753756294990668698980157591105213911534307656143079208389353387162340939773904777483331145684846729131518840754065166471310793591062204072540556444073203402393430156903402164783060349020222480800954846733966813087405350491029842581668346216309788392425731887731274342935181613885747385942646748323023314685162157184769126308348248613520720366182763932826653262719827715532880666192943316514156145128837317772401838744975903680393608350713945573380659631684190141961391054991308065444568589195697631758729859275162650142937076724330478158613272257600426032377942510661414074357625320727587296153636166111504400261556714191819356316772749736387525538569500254745496030394953293357492659789447612995827266108524285173697798915422535684353804927791001068183685913988822046360136378803358735579745618667248665369023969723094804112107866319698864853483935581818630821617399355576976802851739340381157751393531724939992003923851955538542754335385878682014822272187913171081762975101825353916386901793126532506301468305282319364531853267073391773104858429896926063178911266034245513198524688616330125318764207332966859017842250290181157952628664852495637180220418896787024504628661322753793206355017983128083231893117224241383587670374877618719554622144285853871738330202752581162468783577547202890215772675131546224100357248522001542694640441540645778627336781488148763249243596761470661686720218317097363083430605428718574410350336287074959349014748384325892321444578989417648160503392976317217645955059693003850483365148801445846167853222560882706515399884522363949726398141749317933791108402314896153006209559983599723683867535488764139601895235756468011211817891166265616685834819089154247131584587269850393944458884860086138769702935360699683369552491080891616163381925390606854527114030731158894469232854500146090051326150353916724171569509072776582829033746236449927578332222121326812119385193025733228763910322953070791572998205185842657977795544416942652548091111382462315193410511206198542602602347815110349287691571000844507374534263380766396638068957094951968690890141144962717086804473385512236483821620171341324098754557582257711286430881316192155701520362138333816074731388725762095182627807773185977484853300007964990618382856946454697375061736642287683052223842182618420213935351748806018796600027134351051166500562165305703567537472384179531820732442389532717282529435674664641017202179939828889585962770257153272637786709033471441885916398382553302755769648699984568128014232290897450822005982732532755386143777808791288614952111362975276778802027354661332514016680398304008168449241176412904139803231957507129768097972666568332363931098046087044521803285560107457951568462180460199558620427067052037198444352591423106176874590832885758735336567932446131063512873304904824567972991364362682958324420910829603857308474506912362258714073275528848056521233207077019997964549806123831014781132655900660086159871150685906466909464686283829625571995239034797300892530405174529256141240890834032637439624150705964394034373740542864616712066589014924534973636254846936858629900130144078229498080552906845070959443521907806079123100178480627479854108131527897025530246040400178252901538433703238788074164744432248779554684010533938714005790173274229248426840107088290578364923535362637926403240585039252859376568777451047277731185792229700347017159268769802684582119034573526791619230770918656604489677331367035328790211435867486696537123509619693688094892942811154697473102759315591097158531250877119399570011703816144636661002973572777375282987360391064018146288684289513786135856662714401917788555275220525170393613827703699259173792689151646631210189511194948741360009579630605587304737833597151839250004474278092027903672325514578671539449868428577631402544929684932721860716338886237516728488469862952201472162735390799406620700367665233282407812569653429096022661197872766139146477641785502486898305369359433516236963714674042901369454711249207631148245243813315995099128826031465972825292861076101976940876924187821128918878482243611535760126468933387083939453623166300595487866896580365591035076963366047239658724274072370422340415876835921528846671492726940328696795157911059142239027528480083236567472876254939264134874276123673161873039057572399619553107061814620963733249514613516340760857206776116807735338331366490409331975630977976256310739804515156057497206603064601628512313195789188909681555268536922925655612200228437171062898089887191860407410999947837216946949001876794960682495272971245472735404213745611252285477525396532445421997367515162353899875066201260990367529612370351238687026489301028017958994670276489487045052332089714621454774789977024688498358952873202416947853593023521166929239496293937936324103436368120229787566282728600573448354907532917955400065232210492454484021864213631578364259638913954103056010519988432520159076928834135388974992024197082039325163465340099153943797708089922912304678692636334519871959960075042394862911481825503669418975465880050952499600379970983871807511715301954731427841301693066575953635181311829882641343116262277830283663953504101450030370315903000835550904594799036679150490106857613942569461193540659745992880420085377487290853850837744616555571028987992007885574840242559417110467718605029093820999077046368682876298082845509402595804912568742718227892563406962655278015693186438451239850730664980304944511932624409987460707685088567144744681663302560402932285816757452242885453010294210780726764315410235870257363899372280057070470874038631723404588629518578394429372592777333721651874650118813320195083173854378959931277834116961739053489588202282816821882772350541679541898340304384740930105450368677499921215771951036001991451044954622177220841604325332146468642176187034256605906977993531211241731599687815224361260293000325236368344354656737245898717943977224202124953283635857125386495034418119914396605279018312569424690654578118093092257303986500388858690278251523205876319255356574379821535469669019921957807402170788918279117387970921678584234583020000030254938741500066651505411196428811145048259587696127912441277834095999459928244996233027939999812988560438823830468416617680604896643618887860580740020490607246786613096362326090854424924037719447177161000041803215725827467465402789867536567101602428756516139807214639915464890330777005691403524251487697256640201023752714939901680471945582812146193519408443664683154021305740360689456972027532230321392187570840463167950718141580500837383425524938058697396401932690616131101201997341710220109810127001567980277074768089926659460639892645745707134424399223587132838471968723237857606233055793817117348445465309394604062275853754500348389435427715951366833287555614779574500638794266168957418198529418377931436562261830094774271266134385954201496327198581873687617841515225960438336501791858155801520321905732041337852377214924251739184580276551012620355779145016155533295391866753878201891175129915735246534490702950833864049230994164165685595489014940055903443753009407027805420192973268555545902554372475369424888257472809448225391112198388421760402211315339542611658776809846522219480024843704137033111154994222527509709528352209711934492890367678203826101668451932515202853271043244509137892534614077717855206052962041363040851011869143323602071816272254781635708467443628077389891016019659574508089506502430809447114133406195374045016950416927750924516039808983455944303170334429875819109577527026106987207674942069601359166092316358347681467382494756168567266460344806314201133805904297134447357998086030280623148934104811886889866001181082591235325266960248868955480730903730586594616539364219540391017270487669539643311515564522162902684910168823726341448911612048565193755389414354102893328795054956997365599230054552986004245397439287278589363189200436289410878520412377543450943471266546570163923011520669379358815662788087719363711647887015492425897280066461380840171047717503805769436043015475347172891143741796766742209156271564060218286811542970504206405215661673803969978736866942217623727328928289236947293593182435616692280197009969606255885564028293930857737942662376116196285075751536217966014158159858854079342383163307217240126927601921688500509100668737555181671070468139129827308153303747361341309716255050327500997030077113384769923159425107074083525725961015336770938008213266625742913744576308588344917236167942990514989972149218115899471658592319875163609757194042295988183701539701610702634386963080771302762196401128919420787959872415469478441229785166562540683657627781495238884302164577963971322905029989316178222224556062386846745438278429381257876104474975835217970498913648772859722713365216406917640588293257116153063070456960685208216718853702733677714235547829828961635844658218189586014594200369155102978279543685651751186141969784588092472972055273354957911598935079052007264968947916059311685973528184276408442581042377910962298429001232994008620764434409682545538739161626919760540919272608726029230411819282089807785421379996676903700492164034428742895326632871947071600855492806934400092171598509606736112214731202801571485570844636226965032793824170592681463427681773195768051678081709622302144611814968084135242808014807466301117172361299591143889301881295765291187493739091575724321888853668537760502115838461128965744684021206503334625386931645926764516286690976767697582606685260347783306127320913502671559339544386337565662177740201880256418888616242816077539469979768386184025565878218477657959520224278495616188173139028172432754583076053244033002797824147692979352448441354251117362411705976137072687137531212306735675593260984014513332685159405733900141118849899823242533277841982427452685725107925786765067026834261786772221614204025809188679956660263514188472157539031122488900727719480240508640890075767291183165570256321139814161531014524544507424706179781178797831560331671113710574640108089026433334096473812914330454204974287447847579934933118625022137371661766119734886344605635283141094098692175290529938483159220297123560836364216528945755693726443377395011717185659126570646576932412816250107124822306749460770756936768616408399310643117810513753201998842355928531754103411972033377449046591265229046072694661521935870833540800264157629861262123484766907831541324389706859367056894933269858880907205788414226697770421392277291270548385872184510237622221663963293368224231659835350757952315652021563773414707804924639376972847391348642027428866932280232260120954016417679411670026469031074628856031057986839481779911408072387313815829346111056694315916301034297466926087960814937228362813291738432631689592329521888433294524913814662720099194300444026654548209316683954815017407546180599249023926950128368974066519323387459567667057628916035823106899557766523113710744239095896002533949792640791569395957039198495347837840899868652796283860181820376181866207252257274020024734644103691030674590049677970425748579206386134416993225454677492151291173698149874422709710232243161122288964179738119773461020747606578433930562526413382643274702478639459920404107391085713643833493216845733302403059552918859070938953001121178003630120340191505088569592387810757870120673625833195888225826644752256048844492931329250712498708208531837143354437195322630213198607957607533205180650150685467647155305084375426556412497554487089167976179932192474204735040489693674619594888784351582336727758551265023780173899041111886621163185926968849433161191940262198506950487614653544389295958529353044697043538176143764634357446694902496129598931874056728952634044918953422865053992696612936749566126255562859753833175738206008309419756397062486202258642779045492657983342826287527274180883914446980294639346891530596176897159835602075574843910455109547795932493790840774818934912581568149571152676649441200932433513851860785291538997825369690988222759116873567835325681795219405939655674830352353838312234269899432741162665112990120829213098087335543291100137141930693338531824074049655216595402721564625995517789533995027274487749366406771939690868744597403655322428108537610833445946160061139681183640037180946072577740321387159877845208960057941772812176105150056498036002502303618902867633932587136907422825262764717643221446850628046282602341610597283210346089550595436822550936764459849201562909629122936826759555199328265724278534750097890070735521749192242317960122807055637782884732915352168790930581253488192589740077399800607404437621722544655768372277893288172950650891847449757883340290390373309892287280925689742964574772556560766389668034892590931390608548290318890573105129662639106365355916354464069180152078652457510299676677926514400656266053545420658644422185909594024685604236920253601042604530333316220013257170396052734001767122948819948069521321760247099633702345989820286671425973485341140756191243073955446993268902711410149265509145893822291786414031320897892712803197366301702721733906011372533890781668689889941871481257978745785221805708804798211526970728190555566020948233393996724750746317713258160432029351590089414463659016506792679169529888024007735722099368001466011052534849501864712588010834906785631088421102006370163031747505493921207261658429411975100447757502482367935322578053642145090130911891818194681020380067862197059640070399476033925920557741215399187327204703475532749411684863554072426616485868256679125518100006820064301510832680600482220923406880809861402133147537428061533060262809713113035640999984494098419896011513534478520343276703328137375224202310782431897539525986163322452238846604788432240077008882708406938150319772765486776385978091330526307170035208546375323468995511697166348825071199909591210331366720335450523838556911660493825479454987190095698619513063075947088834319930152330987955190460902183609595498420936390753096984258705175940374251130148276430930420487164123028853425689509168734758095762163357940536438637968110310410020985321024098117665992028787992782933429845095183182593368154605380852462857477594355078813585723300275758496821100000124418439109955707948155900011844325652679724102490614916358918357985113786262613573076875718768743059567456076213771082369580522524351960618993597259463759984356674881812251631219606704575627762400993766937303757761342446317682095390007914409263472977411960352867398915916124837737978129258446068938925387431488624985050588121876020943575326233959497484049872762407712801539804848789707971373732510115951114132932219122299476893786313239830051225462547066339443024445835906863869853473273623301718409396658632557050049574090429695466244212600772120723693212814283995998656049510724320315318849467979310277914045717839611623306907857452154846758286566740172315017421842384460077822361770417279379818639751600535923601979192474000534607177018967760514671592943934285727957023709606934451996468743208288701016506838786496757459592067664395082982452522909318879824615822942917026214985617175674194124751523695656939503776074049296564374362579241360678474036288422334715210090690493518186806932427028220805335003607515236309656493128206887612524090164452878097334491074943801617600968369717160403563875344540730695581521628989142563126050625931180870110802939435068082300335110458352274442579998684741885534817016899317841506044375364779723749262767877343329115713455667356891189503981505401043755733273054945867418128570363150013276781498001500240076192264820211905712263804533036523575085000707771501917017517004571865775651485639622554953052068122306694433390896775374170776210459688701741935979026305196993173362914961234651154745621697771536572143445480431254781936480665686531674816439435388723184983691583871986485717144620610280029651008770452223252819686437869193049986217224586661012267859264203732469390342353480192230895647241124619045931390929877533955274689876371689773188704044957795720015592616242659399067346794414263267043065948224577675713062136072072364644932452331954211983342813324281748736275130246857695912678782038018806197523709836650990259819886119403108920224674908365814790142290841120835391110245516660491932651614306837821673486608075261388271479309848972115978687759739632729053871786645041439155927170783686631202090190413587700605631177531475365455909145976894045236402816482734647549511757327137144440332245686618726679354246709418285362596225532024456098837648845794992589760528869212287074975550248828687043257306007125156029187681111336636542624915117299358181079454210320397277729762220045012562270141508984972453031390477439059116668744429706831618595829393402246868751255491596105510908157161735095297369741204556939316403173308510888282531448940746855391495567780937312282301493343978092102665562010665581727271863548879357952915540626678733703632704848750743139619918734439993363556650969891006138200551194974582834331569645269112054333414229935756109672452284863784814272817007338993285908934985468260464350946316413035185811537184883027045821999119482694296825478994121181325603843968641757071446111184319548631407621709078060216428859337393119411422231147877298362548291336709007868958937716459331483265835275439108037272858317579511918316508943826295868814515029155075732169402491505819966631026166785011386914319226123946627064127471691824083795717444867640867648009854283876817510489324982272338402880438847568730180759104092732631741936827245460236764295816357949182079122151481912267490423126237877949044845061445136798664429200798073356440653177468879507176966156302681877779424543251578293830967480872835895457725282988907165956886001723920895613049452778047361926267303536137921173632407836102247506805729259525502661511520049761151322394724684927288154260334924750774786884254459525423663408251164335784143300347087404755634174659935040125175992221324224880289723185511305000886753193424031556619733404465342990680649554650132340747807872203980552357920150143205527985245670272651876380616616801665522038994877983263061369047451112556434103582838651008635205737933630838023368867579634807365692654886518811232981937600404391644874678404325923526464218972062432867780923939563737164097669529756858681163286759992394255707952706534380242797904818333433018932484810696797404929984049416121475073361615372764741141496680567175458757251367719938391884177624126252162039453407204482767259181947844400248409806013618412207622296871195284408677817005295445036941346403666668754271193136330196661195983222138824541848382930717843120789832048782882598638406754828848661187520694998903777535101713413997177723015548471174823736808751829741473623559952961068872650331220865218071115599169019719089999205840993516744167034283221931722004908362413965789472324087650631990599992222276153148963735272569179639212900118580706813381561163837121622605234459896784231123289475956487138050871262792012814379522964650888029646317383692535124930897324423625423263373076771983225663369983317380499543293055443255103714229826848580947412184584332911855939224948541854265820661503526410751760733763883330493712714939807465803586518071533906785916256942000068965860241171407969887033484453977286335197834430384182518465147335724195848077159229283485727552813797693834953514896783010588544269754572978028831677168055857496680684925538263400272010382348044518046515157249643846030163136590237872083594420563523282137605995932749099437612983613241353911903624897605427366752153119210820786425018350510675637105499782919414015500987718025664884046990581685314001597550483676849924965899758112020063378577048910262013083394602961866709840943237090236849408721203309920725656536192392608010763204343589058878013274127863313325204316748663625519752926851940444104523974437749448845535771789358058709545474439307520573219017102123109958458414064046829449128557569027190776728693745830815316354136861942048833732098288141162855802525112762680876286998080295790571757738042484313343192114262582039942687712111213106182395275951692339340059537197417312875906138804239341721802622414876748700933433725030701048474671620639275059973217081773166261222921803061220781847927752633558339238380718374199933854785394239566959585825572124915802615976693076491610869070957804254308115246783945537689343106605838879733215424927855793341202692464114522790533078913675145795684640468424611523815162390862403839939535145650319698805894572761109461542133378694591780492938452528801669509907136650117637488693156587273178409595992507164694117361448379130641244008934364570012066728576928799760125467345300526716548897974718765000755743377352125693301745286031605199171468315014712565410853396131486925804131758918919572188160686140803800418429522399790482777336194207179774471638243084707201313362374280056512988072436453109932593515715367399436319191157505238910839135223273867340305977322920326044471714273685076209123692302951282801700924600712890718716464795436207399928563788928666850524328855016518795742673382273398009763752774284993026269991205511544574611678819053920303927165836726445942894500423649019693960385808469536162872621356849449883518911226488047985007583412701656333440439555141559968644359376399200010790141910984172970102153189287072340594713648647179462722821649818489401934315367207008307607191957488629647160152278064817120797341006586610538778283159964945879785860935941886478225840804240085180046076658429727008031346351278929892431971367399773154415993131045884007796752569696485129295241681027009135197265202145439506332286499095161426441000206690981001973545288205669016704003565524530607575143745386975404029655069247368996776280340925682850174721531165816128270460847156265204462372382949900850444956233318229073996196664124232490617838459794315805694318797597456477296443090945459418931102696320170745158560561438356505683721035476075656081467863677566529073427970483851783864802675778608785010080890605623077177181740554694356617220978037588253881771060994458538703866647440651832778647825382392045889317536438772193754286567557041655381892931876553889311611448008432718524944318267831261463480794099505909443717350757818065312557380588763305599474802237921056399839565889469772465658378367294227783800413099260847287863325510095281281934286988810516685093154895408848742972668852125170877781167464990070203070580721219386949896460153368942344844074741615518246404264655291166203601866455667587847835039407594612010112878976773160905892184683073999127320451821935258594015302184617015571763740595220473731518456151941344006243262018393280356249051930973178651461800268095335206205859597508783770389923464983474709471066617713028859207895159733844629149989982501793985901552674480665719314088931616305671092265263685889054753258233646373555597752361391368723152400008092316019413683629531975216598305507742025193361227400045711350711073832278581424274412407006336371348416149198772549045972385632857597712449385426074010605923742357188424738508175931186375851974412313045979462554265031746249875870443765888045799625731979517709604527879908984872514386337139313569285471866983152280181354419548239392594491947225967002994507407514744333798910092823601577280739055422608538469349443124357902259457583065079697439204831687894097131129882328817926067145511390501835384260689835238041955539158410187212065566005525338979856670977803795076190108688528590414732258084773867705916128726892466945547202585128575550013009922181986217220012752732938809984179554631958745299747679608645591697837623359130828222268702220623155265058204054638053561650177502047695303078525032399001645327144943655793682540898960810696585931172229253727457405229961395862422343467821249277268475645459357223027743344490323637905817406560989933372837606646609722135789509932038420606305233679041503290833150491183335510709288128859351420981198744661136127269903669428304676569757134530189283932688956673459245991315404720696534734512016059711888866739887092401900795977394056221088064204552901952898356906749133075395538138907737513501996788059848728431682883359728119040886017805746047248694158995063028728482227560887772877181575666992212336401928688325368550321758693214260103349690318776314148312004154406316655861664609831339167722443746774628153755892766012620062334211450392679078243397944260174805605499178010968386802060053660713409192534979645865290324425280830066628118202981626766454562716494921213586900089552304269964680970888274884772106320249928845311396310902612142737254491953601207656102287390139080320826591891143791625377596768491438995298188137428525132829042731242142145493375124062459340855193133152135097640267326083314409914159244856234257033294626422770059005040842768796711608890780303302175723861639466035889188653461690615611955548296260448699819720273682357952418446706098037176434539492139163407590763850088267195762082468336415321805403303028390401232168675473181525251098132751211640698624609602747221325557270015367665108204537780574737156399202329364684008924577448276178985222289643767923570603837005157701511882572575022627954296382894779256878235703199969531263892446079608183650912864644010800954807123846024967835706757881425022619410036313849239688316524837069241924604260832093575938255079154349490779549309508438940214710633506586660048043395256122691350221509542054790914115322786796528954533119306330516902695406505718701127870816702130291732056952918689528212136869878435988859137575988433757128016787316787839432655529440767924686748262576645633220999958314486543557967114882171074126589540509345881205162025327727564702475928057719825665422098908619251296454142894466382052599220348896361239368666471582651560755528588180182995013508962175869961584191013741887919731030671082996648335443658988639288326366363986179151452705068707704850331877873232540386553055418711382088553954004673195815502836622739720712973334839097709283004326728795353077961990445488504136517983056264606690511848343186618396404422442040856102605239723026332343408999552545646485757658883649290186950334158264971623499355607398884563167225421207682500273378312151810362105501393481529123578081838959529967943558472748262841745802870071622971146996258205782164754033059132542522995133704467835269813502299609296820633164806762134181365476168165420871236626583279305057611958377028086643155590618429021563243992671580251790822967868432215927449960602892070149881568952328309401603151538091190907771851919301940290304539163760861284758074687726017204284411025734747585496345471156559951866500881121497828580726724392583913366082016104795148110388507755492252277547294770022214808998798313203546683007239468008373952872150524204685332660797727963497594029027728011925688513283641706632424636635830758060608401580972537175183271293061448404578423180878393592496573529106452532435019220470687085988221351416843415948698816197255615856467951507454481023281877470268043698862673121118386006905170596615236215118539759902665578748033305828093690135787762911348969028507663522765028963689552262397553570148805759636986096124291229145671419206036571393379470341860585254858059012224260828038017612937221072332063416034186562973246158782422720435522667499252649528576212065117575484828957111168176144477646192330385995542719983603023655461082892540932706884064756732262771287609720253600230071931253547566671393374872507501106024615686628430998255029979379946733829705580730260654388176492022788300616946999553620460805873560067272171953324950877532099202864648058765932772974084943983607648904342756560784285292464284739580984902748872752476208301589155965774262400406950620636004965562143051066600606024280904427104117735607236019838476055677115606326169017779189142467008748961979543772182770595081089298225559010821207981365515543426044913170415879428695349335700159540908834120308374177875718434858015815555535433733900272848699813074016166821005715807629128700214274971432594129273810414524131713970761383206991978264247238516461667494535434257218171631206937789410313639751257685547537286371587259303480615040262897094385715666563346331782526821695543263449702745476311596158489692134287212853022061827793195426164865285354509176519394964064317462434458675008171063600849807402083438866939528644260761235041969697075849416050665035819958139752567572016690824428313972072928373086870057681023746380111608172613285629564860319332679868587556212407319960553507640881601926145738206772138805982562993733900636843185251629881154402184674945359987721925917886526097239618069864418574974485446724335031412492580651368092065608401984173869412179676672119593053906784047939085446100063455373645955769639426239639255261031861333737897331317996898428433587111767230056766586831874791387911534728067834371238460472240932269039772107407672867964520723238370721788404433008511444041588224539307035395542268880939765003217408287863536303622631096887225981245310155230662157136217273438361918394304205269373255528454542774388135001777640565880308549565255452807311793250032447549059016857864598388806594959339304730583213035665990814696274683297989203857308796509975369839671558347653200488365738840128569495520941024689555463458642583924017543082009014015200676183299204004475219434309065314340299953548179598894857140305088291217562649700815654462106605642840757458281083406643726353012162035651515798817715954146247487722209608414953941239539795653335520667022934935539720279677806307525046315186510942742434791057675777366664434509841802559970558463143561381633549154034687704774489423744037394020700207050925809297398164573727407161581434219998163534257157832498769167361611255850039499062258595004592083593505517911377124771938698627517100893995353029809081835965971471675230965462416685040786553379428313944493376913195802772244958167606694968081167247176094367540592312046109872178185200258172851574614693305059495512244666142128209201239687693724841664192618566933912432585187177795161270669793810473988682254038896279978620333218137013543709684694952280648281126076000670788301387570092670598027202736368924579652256224396148465237185302027608928187764070400173894126986366431815283172562759317382871389964314402870020064407717143930611255428483218143437986789563802717939686883179099217236797907998361686329515432891839942876406011714514259756870753960306692809476030477307043795396000107797880307514135966083823573731409424674405291735556491994377942928548090178760891632281056798466646808896787420530138493013051283622414451987346841944859139693968477253050384123304316763901051235822264041143581397680951725678834833128149862335418640083655462529894194185680418351779520002371898411837639698969085399051044385906082376016055372185645065107397925570132551561789997169973920543529546837645041954020918526881758040342770595889223817149083135502414491008104429819300693521238904027976703388008460400526839682052747643413972184804335608321029482615388134782539697696289967870378023594789612369313506139119329138455829248489479943602796236348046267870538084406232963765006691643760824563589363570062497013662896253654914692741726347443296805211562536859096457305029841210034295121819942354461388627240312097361667463340307329255945014341922579304447928353206865862655578017209489097332663890454394040502840296811712986185451245744297491370667647744848961961445061770932329934966391807942317473065664699016136402129819252884769281720297497525027859922700475228838459066481170098464696058797501790405665503451558883446390918395689572776754048106922853521233892126927663127437690810773864447003478779281570614883965238356410388825707134307683845498697982082614464006146681827882501126977401010478489884939514908209206010881156441532839659857108130115122715404685142258129857023214829636204204551300204489017754435606164526943039837372433959640005056590600676149300716866260611320449850188748681135817172364342051842834517871628796108942217696456426759969360577167017999281636229911214144363599909420255790517381527376085925731554713185157728491346663847912811852394987675223128770951819418282420627704892597716844102520976606360213022499063519128993915513008498173914061204615095075269096252425442116919137500142185899714122525835065070340600219870043566859888883358200682257488224917902995089554392439665404223815938724010731624909660075322208133887390616357356527449136335201606011018445000348463851060019155275669707303200970934766977435528961261345663765353160884850374672278250644292128460928486516065745336462868855421635971708355355207751647204021919054035669935447470086169815323639958376688785710546651091248128963140453777955928180341138166456323222186664623007766278862020739462484085863067619716385759174134044961558243138551728804947753889435161067659915989380474740151887694586649150205483243912305028727902180857954616449418037991643727270441611188107106624944085236647359344676247469799075397139067507077084082614626429806091827928275270391739761857566884548239390235450614785672562044227925523087169351160930122725837112292770995864062250287818776875448689657282687371751572037966686067088176408087879264287823335037284286573307425321411409013176942514583821459109855247242975360639134533213582660449087688318274531323713896322472492741047051209140131634007847301087443672217313318948516657879387005641294337846177509515808975447408185662756018248601957938290682602450747446416367131367965926159416817257773535774626611551528119809565379145920499804819772229244161381526409089883768131922757574131986690659338744722970582562340070751779338319600725588150969537816574318885456151797373420843418731206790566080038278771429641998447922813752704077066685858882067089686633045052828523257463080817633530122041415623313706277693368634328665262068096172508496061868760193820072971794020862209665172996769310343805504447609319342602393724518715981177673787519663138467101345891715683919767052708421947741055415212012260986727443369037171211512579279105449897674920216662854992871656489545995756440276363538699518559865855809495401082392688933824515548291275466513456649382139730135018369377078208955238328021025368597132950042592821994953528979823475995676475794856219368473138996289484196130479850951421751747250096877703300819039865835313293279073320703185138679300397737753501241696146104525740055104411864805663293161532787517563843909348822071790927337935838364261810330864812903017241922268855844990296079334940038719945857109274161872588073525778433164741676877921007460618318011503450700592710895087710848417356460644334001209154203683229944586066546530258759190947939915659003545316452628833694816772228944829024953859732982154584988036448708717763700252731144400484922795428879201809659115042669901711483154346144198198212113307588770003126678524770332330965162617314199094262292219956577647607139140897402433464346245624163191559037577411753547069627242350425951557641349781280911208154132108126733347176366218198675322627200745683425041570886485901578156289473392995299495529786549023986577337310720884070290383371759674555012214777794474819754029562210110522354849484989884501920393304939910228707562813230160478702882723976631032682191521533737840300320722180728073723705913282376171283209308588136528239459685047256999196872920819144697755044634636462642182546614549102438749270662461964839812843815132914981942831135068531167771820642557927162087820991516494987380536295200602333290681822793464884891864611565994754820640906256499035816811963223443411289924851446452165579926591757707396741658465788327017994611006156915880054145641941753813473865963696638648222574322400383174577392596031362509394362484746895106565197715529083789382484383729098970471334724116006518761747223030143803363313014608104158728030467384105776861251109146320077583741111609179487624754886214426133605020485519655856611243646810343097707977423229154465242828128782034605050352226696405109593387459829068639819157331803642458048369972125918717088590845806885004716454299120200451516493409340199187845427401382137746831943021674906202047219936119155931120452928515621899318996239845136976508862533426230896127203627886104353677166372958901661276514781858650885867577277292785787472138782429342875050815663379910133559114342800919663720976274555915353949114046643406372680329958346264851717070642863381213416009040060285903770275206237562081714082873528069003680259935923154705274227296530508152243815679611150130627427640593667580280647137753761883766856388531536140830147934932714392601412961400029296610878469918353715445277669673655515560178766491357580300797819307862312888269946689370184865535027633518360800099802974807749695834588611954094317270095843887116260134836024008936361330465273701414962684322822506445405149205202869843018544837001585497233532187069561887380063858194522085799007798843263544222393840972686077815568879505181248231854754112094264994210167265116158899417204857047077305745767325287632532320520586381121688139804495978886270813652495806228194583481048111372603767856931369089061898441410213202589421431474997408050235207864089382548007704739670565622147279497561275830750443605065226253678520604338695195378869530976801954978035261556027742574781360190152043482674665675746601837221143923919535551677861206415516955155870623278352442413621543628249374464663528508968833453352074999708090029454358445089425003733083375831966176789145132807481069418477742784761531668001486336632188935938998858673978855473143271268134914075807338125675589783240377108046104105103688930030279302225002565868704421432777727712130597109363658025361362316347639463285463937466925024810370407180281971011069924951519723332484450103055386522704359634748960491072557720041406626702872985885977382696534606005998144502760331383556987092603398673859531325630261483241702596288593745200158946074781186744911203419601584532698513335664431062971197195958097999859615918519429119725597535819226205057762338175015462907021160405166624827785643791008393204911076192904067052927856641554118965392994645237535883922210656949696944729434115008131198776053521422348183850244569088990107726273114255312972706570646112758567151365700332987920878174667622089112491255810358919345207483840924894621978765211793221174468361453322988577855890949652177665433496651580983436559346920755405398613199887626477020271239419995783032179118560504388942803765868559508393519528210146828705022056221003661871000957667572652874575996368627574046291582393960805702495370992894012478834312561734353965181926502866707084821102312620849567798728636840593889689930234266643642281191651064449741568900441590376275440952964366401419672438673785767237451462244799359250205727942534296711644645220740066471313457361525876827655720679057100215481692767941181108600884419042890700734224436459918209392808183395785451927332829104726964184209497682829446860417660803354436181916784149908654697194227772545691693521780648742241547805830391541639987390050205410918047651410187812114153949902969153227995885209075088953542731283301588530794279425156085179387934354978319316647158810321043665989023345666812740511440367170711384662282961220114818018824707892427379042034707719278697299226530196636505059059054810562163445302437604101411825948459211962192642507094916256260623131940712058899190065397028487691010961336321334133144555810928403985160578417824164288060200847301074540143137283717174988556868524151793460415828724210995594239384685627567388865308122017890791691931458435779179062760924892875979539154142740781454998175892004940374251820387386938424715824501689133285789075862765176694935525075776929430493601597207674912708554608042207395404593534082042300946598376809839910365845767200456627717239419125948979460543104481345510740505085430083318008856708998360095770298522027198627729267399827444065888777293875727490459257994715225980915665547675304346743333805691760897752049829207267549935326504632699926864040452490592892785534800302664468213655908937044577795987396456663267402040132621558682308254188635538640142296606678605544942301033627019340918291819559211876477707448844991258194501163283687341098306145828476391790844798690028453651272072852258075174516851858969492868839283034422084413750235695963256093997487310903749084170444647910233394954396415973712759244402375716021621264511490984385786247854693503858883699211008289038065637949210054171481537729593032379129238538616691066826181708556681583189846552246811818582579877495159863645639709515512382956642212200570266232104328191260497459551361331712763220326584623721983013581166084681527147567535249063198795368957061521858747325251217187557884901411533035209323217129189014922946589995634729443309071457257723361834155261316459177419720729512377695641083709057108389170816775250188975918016670668276184818051761566854618055709188413413078347051155105976578367067662965539929837002709187120895332083692287310442019919277417333921892624165572460252492664202261893859615076835738491783289547607367754520495941085493039681372009133837617817645750029986395850374161717532520866318687626783801768569103388256241656936984112450477865602635797975548672429339912933771996028681128281852963361805037364813136253953277864374377120076696201456890627320504733048893956557942544749396316521602807038191886451877525974146005739669383843175840875097729347401273418456854888533253086811933041328043832676227441522406852138971085275757188659286364534802336303796683799891266311342969027829110411591454168539393038902464302611308278720335296269725239698079386880567073531947558139831520873942132006966600477853176565024074988993614207321948131435417587244996239780576099794754188807353509172797560671583227401039274773748242591156011369710999345053783233920202798077662346631950335866233021951502850310850608710557213382422378610397473149190587098559923895858093573452061838525111696817737031587761365211515366420273788990287845622256242606620631396780486006814177434505242179198850332883552944781331454470466558273263281588914931340133065413816371849316865651006686608288853901579637120718434917098413242016531227995053832734172397105010143272540413007958425752037562673377354305376975268373629297278205053622579951976620371415332848231571576109443583064694752945964296626746447673708250825868470319282029860212893232239610963202913505341680508443541365431351484383786515791601003146652893213173951804091675534400143608645809111884174571381906883263626015091548554973312094339847289865976892909121237349075779797560062032529814775637944785820375493994683119423198738973768372616161946020403337933651666005708694447459547205186432067583428396584847452508433330757718547145441273450280935182849528489930665117637579726321908303241316952874887045604617747192961875012740380762926349209376393109980071708152235596012184166670456651703070002465373594649171543696283913778389668703229560178216601516778884296427564260979432064517413178619300008990474269897947055498853821659644747853473916230052150757929803928123558678786257006662619244789811358300820482220330529299222604544311816650515038124072788141369222430423876298948998337493669789487009616955697111178174672248560293507015273443467077098396666489735394445075984912397652877973111672052780285380925557925236648874534951209917058171681500762162336256760140668807995031103595657122769280144957794278698013788601473642799532296109544047155275699347024843019257312709809562138488508998836841741055319938807285871364917079282329952041501762250923583753530799831350897613910024789277841852289280236096025577288823671081724964796460751645315621270165057968158939452023698217460500634941292103370125314866832246932026555366421594344744469869138419238733982743923302279670075559410648487901441339298764975596866350983696805033915524616025581984475098454757961891758005301723832153396192087668882018320278057236759664435403485517256463123753908400447475458346200443439498901114670149416224511595479162099136642932655796042900575349019673155943592060947731561079904357930954320108144857140011767926465958232540935628047751802291747271402292847326210470343456615279306057694834797945547756756199642419558051373843963408905538038774005359678290187288494175781209287153700645880106169904237669749925099956950645689305173494632781603604378913656052312521232097001593244580315976049694577199348366028640269158664459738151502558143408215946049222722776861446499785959040408437549204719233684726387489031772068106474751074027272659424270212932441571203630415516483287550817364399791542923972459548140818440905464135776818553441371637272284554509826170396202809218597093507151864036479952132144029853611779429567243071559896821902928694649737057993091175231000357968222838310661673211705723953527579601978714375433221868565218649922200060251789869778589284949435531051590884000732077089536856222843551655847198040724848072649629616464136710730811692856743655545932803188440133399026492324085274777887860989905793555528396773855858064095773486466699994529599719685161025685846075184057666819389472914526875061330803297295055334236278187451918120530817009840927362237888783717233722815653607343464600365768758028309316711947441251950574830895599686757736400825920849666924854029502595625236776454545124668701790498297137712817661530135114377694181291806231252019157329539947491257258685286587103089632210811385293045436297579460181431171204413924163192549892411795193012918375788434439181053062413343437059570474910866540862534481876677641105303256608223254868815334426325848574667547786512995043850763637200441984851319002627985492249287562263570319485283627095770322781709100416092032324929611014732170668797946510033538906285394831175473102567916765477435625835681810882455572025756066198367086884194963682507584735589126198614259158650567035521368243312745866819824408391088986921236029157308407902856120392445646943924948820169271646650363943077819235872879374495714532438326265761475088060452729741295748005299291912741770313535252651370515427110896629185429105583422853702810032724083141952208956134071958558859265153135384737878759326106521705865975144961481174026485047383221742158676351958566840050685157372918943550353900433045601198190888116863251984620473877063972210359887295702133386771247293713704155691446352045674708818392155615170232223421548162975336568977086845877811425560778874635342892320308608972073325657342284071002287441866391599379106173082332595863080116885060307657690643975673143684273765532505756993284969987116282752646718573445846177661451191215051525427645996755991631396841117370195415763149799002861908407892464078610082504362612162767792229129111557365881550413474115134359086780810498315101577279980354205314166232781453002093336573621598470487856605984991374273947909491908021345899867368403705488265865038139895804346153213436623301072479227991941043068444754902473739185543176202298475571459595658538361672641046304426841567049488202234835364163992426272906147572845077830160671635188413216888966199723878397850501648498965317345913435970533667709619147806797569248618792152597198270076781789670980174034429117338227978469499392248543776516984042672349551261885258645723662941188019406482936260493949076204248920022594152636590824498392467436672824492817993359237680501738732489099558355995517570281411246761339653325281887556350065727832989218892858583895655967695028290329207774220526247727767811878213468706573768784158774425687218473494480532920607927671467166835547792272309708980862824038401047185402688334525894153484055061008578327909729289745129373001654514878981879137509507658056404328886012467356168434089126901707307409102091166618662175402778247710798306017383369188066541802225116644847433810987085886685020012345603406976675091349538368337959194793056874555827160974187536141482317462941394421315643127681916695740831823975232253347534235063657425742561803350360672412396534534904194240835295106649780802691118785581115227073372581471614890849273953672336075224637723884750083331619983857351419734682577985848737169266058080331009055448362460476061275901687090553677737393173687613103637818428091698767333607057736275041308544148348525021441346873884136463210034053573465572858212429714019784651742095771073656266439500094290561070414093540256855850925578910056241483067558246709663034509703392012518550794692880423302582592688535453386179810911374446272156024172455662421943365743675034670919626098107275924929429417244958778981436814304692523987136725728561887814823294048959131367647347058696296718223713334008430237124663720720319531505834106087557119015426761839662717965917366978673372169284717939833303835881036355652472548783397771858638361146316280486616319045163180669048639218802815265110262818266027910190554828266272379253301060467911727521947433582763676701698147195779109803418902736646148321508235292676515365942255642572542021270017937807438911878746022304022711858408883805128724317723786742835098282374373647499333036615803426361226037360982567505613100137272589230286014266087270159492432773685593796337069507383643204754019015330307390081871026919161745622476617627207697798373219958248385282310256057354320777378399146835216909868387322382238846975621183587634920132779839483537376197315207050617879837779188180043340169947899216707811488370873744915808393280654314278381215320839787482119973171746599172900216229929373565789734926910360257589883053609409339118812805849671447644251038318121790175120951317232606829612455900578082201735684874128449588521281601159627224323746131748597758746215167140956830018510071096107749664916336043384608667373137880367132931104564289688767113059543942956153993832050049630344066425027685453068531887138203130630484984525769529618381266639733738324659799864407095793549960865685607950090802919211914502990227253408261326981425412829009349145880767985990641347448428726033612292344136929635821241325753033595442266309228066164936470988060518714275762381663540501425993504585123843204309327582160170981083758395787677362903357962107442717305927850152382284019174426460976406900989797914346716501609651844340186880843421953653617398382490246013877132110418655121528661245825422770500167161444582232703637531531370607644392518328597563019209475498440211855149064292392989736132511966637906071259082416153802832445053319882077569612082390803369742529874346951088230203272451626761762874663739516820176233696580052270638822117659666297742107051805860038230086193095041621558777721405954823414990895214491390512444844835446875054943750220944313676368643228959413781546566902500063879355534090799791052439137102935925946221524119392809822609707655299410685925976222600024305448806541438291383908032834351551701795890233310766517836206677607740957521827580561806320186136226125051772934280497989457662467915869624349075046161029299291064067858329981861863283503349248553373746203541420788390928773889673628745001086376677709980724885812231796407026003678717293554930007491046495762958089680576859204892485961424497314995483271130800907529935704435555431934372520073123615661536397499956785694752883353373267964139447110000574021108588493188530636888281316893210205585377589740184463063286320470408609799424771923854300813768218256510864573865255366753282343186621097161762865837130091274593042975298061383108764486229690752434024089697921707813051481296833219418608374794292623986065552225059728861358204925560120158733026396839309543463686712511667027290781654357186722442014036431878238376475576602286423527667664980094783650597499344353329586833149831197058082156834354381625087293473515860878970783809716091075764528536826918555326512790485257799301879295075035415430095906718436584441842601643820724501558761408426780445933912975796627993436209533815435980618541093542581892991509080074863783931931966473722740669138411698213138516432110334163824736403621698803692087298648054168849192324980037349666883802580627036649947940557384330306909063044641661054771399180458675800708111023710430189291801265246583744229749694779114000000389064235591625900077539170836331180276602696559454835947046757514976691455348677266361329325926091857107733303352436070854012553660740000606608503945238678166741730392838828308643813998017931068177280799635453670236065057003750518830583751006075156637672541308756459431865019473767644273965095662381341684287867105300620725954580086280200891814984303066446662702953369818937387516719013856326993436572912212422499897944907182335581244486570620436456802330598046073585594930876255549749673087966243664605788598866294376466073401879400082460620789193836283115296445498465718420797093558497175410687486479117326783254024547183760217512122407119499107619010260992093118113425085611823578686337834891973409691529144170367946659974705865674271428140540096530487324193716529289278318708213338526471605102973132156308970055239170982666557971283204096731082083372258731620277449492182093365819964639647267582800014877096756807187313880571062727739713844753681172696003487605259293354189239866338430341560763891031970692842064332802726933331665917068912550072633302017602068658413639078172760567164661945009990459856878749889334210943532741112187707925087727067059263598361288341740940858852427725875677450373814867923951746490165152163333484164601562928019862806242200392860039913681052950844154236945633822801250014460694605639208498991079373279668624947082088757021480543403122697981850881131628622008139942504697346749810427239966823483087193334763752947144323338135482004773357659956547863620201673483642384010082906807906969801386874059537390282038420995560194040980067375959210455105674477856828560534270269174683096205898757002170051833984242774056765329003401634109652924263335396851096294321768223566204971374740119001237075804155371136200073431849270623107852559015503956628317062525496411420740929407355289947944767790475684424301653814808463747465421484981433672300643584386611577267849683795122031917411705333618154765023631712738192054353546236559859671060577030297585509518967936050388794293783041964968826001277355604757892587146549233980058900135775750043718774662898482261987946989857061449522288750845073376572246956900851192102084677118627454069784107936966131592147383544064904701952047565689189749825743119713370569746364506130885773332133068602802612604781968897220078692470590523345826408473335688693410163753942079326449677179341636381606015930642748021572068858419258069665081024718543637035552612827506267543340502380784229121364888953822266014278780535248592291776248854780071487830593184391823591404252602848441712070333202926343529713699231454769092462343329182869285867686045786460746309388230577409158230277008181550310555450529234907662334246912425035715824605789554501321238287568257434188005533038052612694384234988611782258402693635933985115108935446363832517526495060518489255436354385945519700619912284437967548862064251829860281518760224193893566991882459925334116323981931247955501348372422900656029033093035089152416948416094475095680478748639552453825659166335097987590956822288490274198729690065558925087778870401279894335392428164790673459104427942714270401876270165578389412084039975541045036681653289290608646407726838961226333162875055876531235446235532717780995137452579620520250113047963539320562626136776522512345539365030756956296232376467587937867263279623689685071311634988893774784664102456646582386890895339487628863391234622550544443769871898922347362249564947858423738029779224258514092713213450778544492412900503961284924712342452940194376502404947517459227590962500178118540710149230472245716159166261081700904492242553036702789267140644996792216137879845589810336876326823159354579049043536367700064853062140808731814709744823762350549543266318282709234920255833246030951214024718313722744740203907937002850850775271136269733729151420808210649242002122123620040700435787102055411035402634747137007827909248931454476241618321324495276229878594731350688567770027814524085172162202691144859818898519915824953916316843393424266408764964338203302579360423748502900004621487651381497534318854879129520154195640533170594203949588373459962492154628012264480115569419175620878111432530276800354920431444319784187712160994817980309606636660661315072364809353847123054230541647653067068282611559952621765091812407289018763739725555579407554035807659050178146959635879499937447478303858533709614000060593211701975445498449293706374280735320954628206398437440223108039861161330254371185149100279216682375969993232034227427970214282824814947303719097186142090013689304384576637307447486930193405368794591968978496689501091171257992774355758539474784204224215435520225620060699752240452974409203765643617323646431970764334058840735392875477643070655811933818855740259641535716630599652333820423874906117173389011871770380508513476892941241301184855570114093938453315422227723485932607668896705594470347144107250690766570773549986038478825663710178177158654676932391940578004720638287166628270646152434698080795992658094572815428312856397864502619547666201488551480692052516634424533950223571250035214308509232051775402850614080341298130556506677191193310333746822602524197451459198152148029232725303831140545801158757637102746096884981265974308231094650851224204388551433947443525778531914560320918687261660191187936648182319972490008918476682844889325383978156884444608859467856542338029141108535594992505414600703408920537209131702235562060971057440974066013175788508713636817151950461817348122280426488809646368561765880235240331412741550465620174588713905709123010597593782409847631263213225735387747528449934322319231723387247417597828368099155019722991480324803556151843073811792717429883478338457893736669954529074141952277980825594572133471811996258514869971476585922506255033762064943106825824010363373694454166498837972107997855136413527330436698890174813371905660850385876136246281298771335028711787240812988800086338935602796109640789052677242148970813128312608314045778744014706789255194439847940933647972736460150490389135342033210895265014768571653257265127283166520233706196727640002538356210688602888465049656516291299985320983286821700704080121350234235813708056134729480294066076356473042142721809986146955269499753011729995146372754381291076971601610074918018119269352214871674648762191058130127763229285921976787081489829116710354632168943714099206023509880274264081053463524061137036271284571466034805356161111512194151593622184826371377491497239686397482229598730136571849409681331314472993085601091009622687870633706622968954109894378827927935385846981781754374532629585675812816243340816826406179516459635242403960924408528095068153217935823983004758740520629348200449999786184680871818448989247313276064913910082941267227925930862513380917584573118202436205600513479527357871345748740069485055188538792299213062083527199403151579857449913240159770332944243279478750212283150385069126615549727158808901521298968968820396913986257063975395281462667413205555809710217262338103792727781890544403196716587580976506410209960789024570914897288875800860189925418739128795541403711485845181994522994470250297134460893700001182035246668485171151837485900814227764690753103446583309246042524043236688448262747422099790528493339876793788046911612224964869288776764424081230617354409963552983828725166281886589090045743697600875602288318934641707804534539808450398415164917793555397127479756794096381717354205435477986157405896373925490534595053110073279423899398698137894866715696199084118024029816275576314913862622665936441392063869231655043036691296846757322488322616603511254447066905797057314242726778510827590335847485764717478234967215812326474043155556562024675757658636654892153976502247897870653017256750147037690009820811803017486136435302718799774757030572767718693108136108354586877430768411021849748599496247033380226326766495143640832645008276886609947721562659783304379252094246293008062560825009203280383551058842517300003283509861205836345959445575676503019719335725372356589505313886081919663040156842268756393582655598637033629316890501091847537898427465685085776324433770517445217588228114227364633749289641183647473992875159169519595129585566124192500391874205850856512514156194277874694292789156205436727702460557547892342916003920631947983119402713674573799318075695845086258559093600272337935861635827151856681874061937978904899369844159417372914063618726806402954701148097866268741320041504003052746840323011952406412969528769426328223725298153736641368777638086075687195054056950340398769953221437571801851341041715778603372607517858836612943600938163812915320333556782102415971188821431250968340967727780587825395977287130976314913517413307899896969408729299418283868969787599766751021679495172690459599356047178992936700918459721265793125696527536673811953113790194248273357767828684434404651306757391396891097046865557198620084704474424262878407618480510863366761818791824633850325768185617835148205939440589906654710145144193208844319285947425404111617560178446829585115654162527440148349485852474254433661558383641523627642271804124818183993596425757391238257717669431154043697457791892042386611417349637731862564837128999268656262290322042998218104232578712655894359607810197642926767166853553130259359372231672527744152594402856700499104624505004637589908056520389972302830124668618816517686491439613095285111286993494780260390153378855794953701251910287102002544812402462494489626258221278813173051100985711823807965543661347619579361243125532103518307533449640007684505681048047092966923695684000556862831577440322310034563884193064850975540662916107009277187318488659471270626257839372626595858626527747735046778509492455745919501817877059494281748277216777822212332518269001854887862792293047197712864684708550204351046307176890132418022907407593639814047890804936739736662841095919404125356373988708718405586594120727056544881622284113453396292515507601171648076716386589095706468075991112098281223139405557765527645911532752818389254937645313929362873569273365552059751171740690293541704141898737465933157193263853194778565125949302382603474768841184425729400029165957907821932901718621979873826149470794965580367191570414884510585498308126683746448375595486134612450242765112957570877121217225662963059506333827391480120899771743827770124666443141282841310559693085492779676364957201361125341814358993238240579021841939646276120689393261027397218923636250178375472154266147663827880788579513867504092597057379251199632730513661115135612776943083687989659171364259953580481411278847474288822331707317367940379032852186592333260039526243613546726153380964484150272878953570654150826518651756127474133108901349450198292863173319709339407440385090485580638297373093248913929408511097672497326017491913935260589988798385241179684603403710752461636645520912313574288987559652248171343678596584703680361749509009593621777930399385591900539078180349087187346095681859597935848972805164525786531146231027177250288835268361044179615332614572463954243735263664130861883267822268924662890239422536808994186641615505138068934036763873905242782591474895580957563561651405613801840500731444501070035883959084262970523276601638125509064875237639947357206006838670314937972310582937095922897255250129849890534349549450798916104456979754083772088075021431901575571895042004323418967886241090444389764965426055845126487750654205446555476423229692081783410018193065801605084585354802937064286825985977580019951064287993754972088587277114196397950102395453978261170788164793741113551158342817083873554091156888588886605592277933896896508696918344194537996862922859182320277634462171312556849944931788758980795875777929525111581100237614945689083046852996826174134383378319322529452110297191065524224644604081760325216300560825348203571207239370287808097643088969389256135941818517878716121880485679080433980398174105150062990946950084928294863331198310532876465743425461371445615072179671663733176669262588781857622150554205143352443138250952772899104075596820965609478038796445113437729927240629968067924153897969639141786785683780953763154963937743479158102315902908382547515317455389104057115406091936606898875126254291341496063000695002866120038770668780054580562427721563842950487394972110312565627884541524911331612865394623762117512523892545548777829258990266711388398021932448200512751455186364205844697448963492830296096814738875126816273031270111513406844098402740962390757650774727954955199132361328826046101184171298488207188884884979017883650384358424074989176757947953602148823028885121991395479591637324003571229100844666902776090671326931159412051320361195962935845476712988188272305469205962572668768334560151435434464489363649035019881956854750598408243706054087271957517693105245547642925795429716171822180819814500208912020317673693386401167717352427455074146575697446692403412652532682998981756216118219484124838160770706307427377630230749244310150503135173415957505297716135787978420276753039655345528360285399384184839677371683733495541529197131299131024932930621281272132924082285305956402903992630478068202011558858304419166581870433956339867555267825568746329934862728396146869949353379694548612390047179890247185348349389144106029831142920693366693147003476734752938281558434958983473400980674129846280259449982197337490207526360416581453457165753206171089696732375406576759347949377425935881369001992952791655414671445269675480495265241879591217744566872024823770064591028987524241061579358193055578054725232797488621753709409872229312487338642810336358643594595504377482504345054326243237050700500992376168879594410898602732326888326037394268403079484109597027251436392565152836865410515606061097165366299479300280533554075737079451441651770619757283799966294477913259087670905534363382025305898361695392296762238931777152686798775281325079115096161365565188491715846716579710610023044899099354896570779739001291307420324545731053035747984799570598573252365974993028252200441329642376275206448119359143510338818074989270768280062892878987472842131204947929245095099598154303104714280787615145920348265209159345799698330412334061760196404651190081926344560491294643107634038231067794342708782306718716634001304867218079296606194453944660122481916511964083747032446835656668415010738593862074844053695344070666290047768956962776732317921937931440786206124689029566382692757919551906234940598460148316025523164786948997172703809823390066344698416499360775723234568698692944875847172950845095319211244160409721997036287354343284945486395892472906256495321927966874572569684237976374298265799459955864270955375798207835649298673695997175126679558993395153804042324538386936633589199167910861867971379371531844117945321684128822252949312214434737276224628092452293192875769337023960419549246393895919666255619128083912199946838880324798677913703028528691186819632505565658130482370095049696157100204569498730893796776196076757736616014937046524109478033801679697144606578091860585001278607996733837915355410517044847158645296159406660787565275861974176196221769880675323726494772673785187760176391367845038072655481926669863002592720081061077592761502447753326785645646646980971253275961040659481631976436533684694720726707254183713607651640422863735089219388753810417273119340120885192237780116406007471086851957115542830052781721565907443099381854299106920604178625544488174462897915524508528043482731022442386940978667154416139451307346515014756459862375297935811105309321983055630227622936142940813439103581155725054031181117280587869784194458240308036369339601053535659288734387854967771945495617224175520954405129639240182383572578431877776154839118166992744486287593008654630764025287352362564825183543406859517540519926335280151482714718007653647717969752748180284817578663854898927572214936514127482217822015728681208879887118960137538698775391226604368003247043067651581888416981208423140972309151009515742605055137966017153443893312835472604699418729267535773082209453753171473435768493918141867952237595197234123938707389542600686360606847221365605642009763941270067511668482634040985751534055169508263619498901465542104924393917764130763010998949861898185923988471682040101079122659583093290403106327798678064861639029770910775829226532066484166017250984328890199257225614741165753485011082302225501000850369313264487606708247027786384365016792159653135119173604953542441724561110701542420273880447794605715960314751110415888079890481320362703383099533557207351257966772630785526174395695023707146200537259611750272853429641716042864497711429967771415681840748598568137004050389054955128111141898339195590866564823240462560553018492639390943898326122356400480875616128174057582962242790309218946794824033355882161923359142161546943358505042730346231938338972864849958868674661840501641571080232749534931020482918540664465019605957514388451256607855242818559305461995312207224981406627409678975916344104183758289790009908016503003246559460291610406215331147882022510471249544896241394767954395213832397087178540811532311311727084529737731860626415200703948949591878595174617054183108808297735961663015714133214236787853128080758193928776169620841074266618529233965310964059630638790527052473725753137948943471417829422610508570916918652380079735364070221346513490940425391234311492506920127303482300940821635588886585153840942626303404288756782270832960041136624424302772075559806954071866853396761060024415637685747788514344853929490294665285126676318394756212564711847533158664086648649933351840365320991560099731535388478116013930878940709116113399982998813342011571547257861118874651797507830460125888416558825970028418673327226004056093540501763961243235467576449179213439423332583384468966271434072292963213360571213076406857591580217903841923403507801872835040575083750575101086714805218771205532964161796665775387281135466716642138614732388609921315020073703982122426024696243422390069029505395127091898077041459902789955797256623227172035260761996883180777338898012385119617760357841566448408491433901494878145358707210414832492007075292517228495221057209062904690124496155580080735606291611903413394139177020764726526683082857738106321385366003917513461863139936562272581479943862906053742620513958502637384045137357190820248613923563112750533070383373239812427920026846184336801418882265743964111832424138749451119852644010469159971905972170989248114561582000734588105577723191734792035456234795347161343629050350791608641903541777198923145062923976679626015240894287684701792664993620578450226752114057322047359319336435833265806877934456963752739302723982062910195189688672344787202137760776526389253212253077804074785022138785440822387200033276790223345556884710988792882342889494425468512291157211840730352817269505759639260708352159324304464287107964032296439324751910828587209736471377456077726890286266633304341983477810834108024243183334116161107873735820707592916996886199473533335459406148123322137847159813278114021342490041867611435939763265719491697542485472148353885344061793449561446044301709563640655873174708601421707368164908574159965314419199409233961377618683665471035334722397914884976295421948456736581134186786141173780836538682021732805287173217124292899146464379408003476059051116490871897829080658576102716552476923032388555692089124131855004220104370070958329950142221539695521372378720472822891912025696724556527463852702701295198746739815394996881371320148501758235859660037607936863700749686389782031231425054590295694849272476806220874322680850936330343347361650254532164770502799056874036274739748343394871907772574270979634790553233993966278624973904702590899251261016564887372897979747500615003364923060403519218920421439231458641600851798674560464101343321568521722105080355089973183707346912681876195181589199853213580616682254972626792137066773533973343168668309116278761391985279925500368900291628374371461663721541123936739066279245325791718427207493349906068525052751253512899093857279268706938433941393926053468851426488008491968703146329120857650669085023649724885021143069308962934052322983866258696004178558909995142810732569061060653855637908564818714759984155830162522970436238915708396966528722448698538991062754425001487493273472266972124934601975523517785502991128553871466001756822876127755721607525907140588780224318042498973958103243744916181936854088983299804502086716772694722221735092640195495471178169019093394055280555623207611704022393550339687358998422360782354939853310141138475408569081474459735591024412160014611015030302222449377138913210031618310456030269751561981006178290741323548489984168324143053655246247857281481548249247529021941960226919466625072177212827918134071031640711889866678611052447342162969905606673356873754984101603872601322459100951545654343890337608223532912050673552992158774238538859137788754064999754094491303103786505512543034726821069978088303610946570542111531972608590505534285624673185981115275263978769282357285904213443947675349807142358500766814829089182410069473717862794147331806573355832676438163740835254175844524209458363428545221960132008918359992421449143377801673048368502243675354112017378063451243490540238941682715961160681673682695699301286093125049596365074657562121414271152577814585935763927120636940012655241973551933043883365962353912774032837496972950971812482599560969695145292186492288966683359229995374206754565601461048704917762518253857437573662862701085406284394902214285229757761040452636190207949211901344970253444487714003085350156277311107188057565490681542786301411043792174778681828373386866801820915136055583675888667676976062373050121949869231467129481005618654043974326658004816884209937874287588536411083828185380448436536520475157603620671564282179705168799015677094376576974070978384043225257684373434341001643420059218838884496507553393542735849051418409648455671653505795444604757386210838634904216380611496193661204397946999487946391255171600354737580044145995343073893167456518518213212689554906136279483419429792449413586094422865972209507089310937482225029012115528976999402259871168348755364209881952770763910750972006106923542020487566703246929179121202157780507575139416770959261738064023648505086202724091350850457498392337360813878071050679147826232089615797439681670922701404351371256711545383666065904289632013509649311202165712396512579942062680015133837803322516165596909089159146845536184122363081544328608177606312018150152603235954333266401699485770858036913622327693362656591862681917790453910776389812937744327249198264548277117734351378043848364050152244521123683276335847216210843738731925084308736868410937615612621223564749173989644777906639030703749050546106854030588219689412475764792435793021632180899287855960773213276351300169472190133401073541468403382270492256609818337076818983799809697710201241363257005383391312088144923674283306559066039248131861586759387275221815267137436107918911781622053664469459249175901869589566184149905486502053592411638590556198297204002418343239399976703084352200874694689759285618224170808786239099138776698988884071799081105540071667953852787767207334578873745591028938659961131742931949470868515092785739789147534449345368901385270858671168952910936410517035662629368113393373025658035138634804028168114488082097276514466397069916890732392012117742287459398090173160873970947661509381769212709817639143266680970525794368316341347103345968091769928366106216860486628655940600148543635344289680704787024231046669178331295221347812207491236905538091531362385572589287248623267807408350440459526827683998464205664681210232867241887605642775571081873042141549732042170891589533750105436149938878993183734453630576010981565183896301638267498335790246030062504712287451130983420679694029981104977658103914889982455018540061626888612149633985928316916787582971589866861793412409909969624015888408740949003234694821658476538783849062308637501252524118410735241126854384940897844430572366851311808298089247996962183894089813224474098887226668465649207462058899893225617915017257337266750648294615995448004556323914708636104165857087774928764058273272275000465867130818023040585432229811753159064032691020927886536415125971543523361731966625940967042267244183949924043551800208855583682827096993585561731894593972220367247924631106594477634936019836188403571504490938751113044255170707078078909653517051707436316146948704737627639289480711945998146977227694951969471334258460627102527753368981466495786133220740336259484230873565291820620607394517041607602010586155604593763783690272691583922792301753393322007575513810000565171930323157422132357835808912305123748312096284455909018580204463145083996075616437008872646537211326376579459108416559493845915081310181562051555283045205471532539987029957114939746642187735617412325022405342986885096460408316381218417567741179783349366083414648448782326309091848710569916730618443387877532140254167359409068585376895676837335160829231938296869185619083190406010905628968428541997065812610226284456826447868742684679558681329033812520952254359690002752640660227121120664082538473539153562985018975606160125362218928615570162354914515685509812355701110657099933953901092079787509359612036467951418171206092881277781373764003177823459342140953239232614770746162784104313041750816733270592718587538644423716229886644217121473462475124377319997352392936141647407383895541576654911708045538733134737063813835299137309007679800257400602421620493758159990862032001210768718248572261002974884344355315936002672927113449851827553993300614554032869316991937978312880007044670502868546808054960598706338428938738650816799748580477613593795191070365665676584796595771844450401099085571922227574597737923122028432250621527545343311405776124817776850104598651655848377970229511409507164499886678503365762301487655888219765408514244364634048487607147370609632177979387714703082608065610313954144096568199898732283399381929004227529380948663419045597487091004337181773104679536346066862554304923882250676191828934695437829270393560695125574833796379641206615503914518413093129123007795087861129967468565343011115156868571516880317882989278100797628658822485761044804330952261756638128553277181731913278460813320155872301379165112195342432767953147457483460265015857731588759413903726300636258419535886102130389924578192020251323160181030324182441184330989145733150505896521173540168138518970115425193139183748919252257357729299387992001573317501649720767403075020803595500342115839407625572438502525131099997427188297301519553457347461504771453274834370217618944971839591062167277653443256968510927507374766063602278228572984312032508593934108215019724071444056310464394132611105114407516852146744425888247711164880801703116926849711937717577318685407797902298185612970209252459840605082019020872335283220562120311262053312760296276705817040864451287128164114652815817021375636360558506911997854887970966620739406481840771741759958441274717988244396750235087311237058101560131900717839978702267006610405544124851872279794285239054028988072633596432012623779760437498092751577918455360978008066121885400776603647849554985488746207528381149066626084491800840323193119207228649092844963054985130040576503374155767951675841700115284006460722876175671168920126853379464626551007014388148948790847214505914580690493980473832520531260942576306298768859711275934938099084528620253794371454031887374772595550714134535982404463379812064469404902164855068744560375321640311852717278719600563717967901281737337574653851853412224122838616306824841056752588115681932735671873427332594857996898984304032344938190179829846013473266374778357081918448488044363164580640899159120998690219126761939699803894387355249180829420617480328876396285998377468060247434016507912322229659369714610426679388742506728031950570814001592095217992779919329424763905929711730930097749411381544510721726191859851917411939121247238400327085949645269259769607181139881842372852955975407036476032338479965633112755351524727308854694047831749817861739242532600433871520354245818899049232098052887918548735638282645264658985425227385561488151202434290002982981370915452128015094809338153616664330455366986887644624462682204164993351441266748193936250122603572046503502817510353594646391438546554892989077975451275503253398024530810890567597453133549365124881830347851704239742191647880550840733640889841587734224364914570040072725896026737078026086804755995795134493316238784376746740530255798372638623799822808460004713147715478734275718939769473683090357451898273040397410293554666609749474665694157762777026859087592274460172781529413442793632340500656634966791470256558640298035446996025335680086745617640287336720526795563990030547859579376383974095820296277576053717808462086570609790552810133919875991115998794767467145588023875062178820324707534347407027712980481462331451145549003659524298547994168088786532936647264696376766036555629314691438972226927372443018465263645020466248951537884199087674284630258257253357270982412193514311435493320994921522107873693626549704888072386034007653616271321852204090288069040284047919441893018914677264614524978712482768866885315472764517133990385354602569446432341975513734538295870818956370129189997981712243219861671966851600495194510363985022604958070774895346568492503719659280168658162613737637232717778902868429564152124315415843545547371066915823730230194819600881809546101020702469130787662211674353677540857973073768146598529563830420175995911379371163962142958106886970703816023979825467294031772351810664143112501993514545044165188823747008002589617982238817976427432695600085991266241581698533694205439884542383537277471883339899608157443289714931053599000939072079282084467935889059977283103422852469216453375679515104390505398690991028619429896413224200500592436555439722791909497341903577402204754540586521237248609979418764852040256155616978965639215674829972847853830197131658277482892074997541042011712482593215407489798503803235769976330907748163690272637319169207772842574987471230753626980157179856870243212768515387130506636918588911524056887681776080163472463982744380769091924560481144933622633409384191535842450164708669982181774831393709450558508631229119872594736392849744222639960939133618526755124841746224939309584410529338338923284836907788108784945016947092695598584515862300311043296131878812558834999892321293258396685615110378991190396778332620600965857911927743933335055792936004390255131053584808540197328046749489656127301429726400999048231819174546833568436458766334083379783273329815054358050889017782493101729622361562408106823045401073903921968237738357470313353795540024107362475530152608990146748187319283364716755207682989730997993527621142254659370278867212131928628464468503960003890366825273011918399130785284419072400129540295117848420149269592334357520098030810745737104492368786212274035415894900210724355474401790880013814075974016071490804828164418887541591905585059322563280199821897939492501785564747916478550057336953712175572165881718055803623818526868198340308048871562982429429187834744888747595741206950222775494882277331226548759292364352064453880817967448333468635540545960285949264943737587531362564987038628405467846268404329458350405048322363114352467393263788191548144244395554053169655653317474597360271209426318806943341680373748050369500029489362279925236750779324468486094232053351856722147509684083088810185129236341026536832365277018192716963257353613333220956675377268935548088464353083949663849286779292645990379979570493573109926526074159283115849164754047461932220936714972048952493277831617775126964384667544628240167782145887733929215399032217426119885558735632884864667207418080796774387727185261906944866791753366686303243174251938210032108032871817658228405907491082102382843220903354105467897378048265120947327701185328239158739668636540157841706230177909672534961524553969880972542015024783004816304369928576250229723656382189291613110406707807005971177080712199535534918664296971319657767874756053389423966804345291156220537157291546377366485012488730013288079496173218867960134472454745654049216062895465355614828448001657325567901178931240173589739594342284832298344300035414820664923905531882049662412845713953614616366705197708390099447737306175601021637020699884021392493211950227849497375884596738448775914591315392424954932829543028170780944812844083434428847536085938144463104860541102172312566025838768523792146779607889003790890578810389600758318040486008073022265876786783939686858490399191181011488572664670246279324245979010204611892001409390849253593641688404814140240486325524012032716633418080352833124410759573731978166620117409735120115508969615749086534968061545735356224580133810264271706015650313908586584794283222268004298913483288717941918332291664967949745254133623498549268775684227119431590585161476793674777848578620721081910986655133361262667550771035390224158289512249411997279616608554280699325455286773679981826711991695190611210819472690869537786386784256970747265356941409447536076912589651846665876578949475418325614676075432941123526915178591471064480445302667809002334390477840731139293869817849571502356336042286174918607504115654938095035210021697246666331602683175060451081984047807570548913299253659558367531330851224760907553916699648735216654070918500675142917714937084165035739044681015479554237003365137515253768372363558837860914477591402131119168915628794452565042369388068117425199737811664923546688476213465879993196379047761458955310919013623375256963684227087436870004706624052743852781070165843974837676357502322540121569312232421339781797200447175859800714581443999186649467762675474834287474416876345528227159702038003393063580409353502672367534781503322175264646349790959888180635760256528342878829406679936213713169436090773633812069912947115479488194268652897325303565452434672028611509709405782464111295486679946832575406916450468602917702543079311621756621216217822204082097474279708865321084814037883172677152350254557007191054505073310511704846547910673070885191018599324540950041378809458109624100933925638412987092763929276112806334375459348397456153931820464876795261706099164599059204311607075631525665132875538351757778246516115482063513761446062428825736565903423502892628260476540453243574764175098094561919340712660228916651724049795030012028247825334739946669343932306286553388530017853730292243931913960818676439227480955438225584173571093689951146897820480260699047685716757927241981228046538369208182448571141188240382200958221390664442533734509804409252699290639580670070966961469797762962417406892625836938572651228209097996243792408383141375363765727777962483641521176084921383616572151713473073310309781229932682408052617682890748547730843948755512449174846329942316117001466566433795594608050763618171567179439754693662079343469724138566180728315811430482396174638282349101354896677291012485048202379361019655087176904275436354062669855455167774164861936809170569484404835228222522395499263899822796000198752740607171299117344453109368094119712948391910024894229402460077217555834895047400539291663662087457296427343565673203266256848242947313506382660198688531221657483237521083578771703358381118691070951214292265264661182946661975101848296608382677172535938027490532077734807848213916260914121239994865694812277334315339293987578367790807417072921773583943435587666032743209082639653627423846328176482915703357815987710041602271154533182675943926563587785082168631163948227474520191264254200848806592732409927444940363444239885339394705987624880201722942541037563485433193694402163314413230047197416273156391995441263949005187418086031597545683498190708566945840915975341558329632399329406677318412372025017176022913997421697985732940003776400338324192652807855641810524809153169374153194939046069749612022593221463568234497904633750049821633907151404535609793815740132766867388573399344294834027639698062197614787284518891255804548180456413617919426236098775412918710963771655468888419857747431214110309979036798405743428714599680013898095135294088253098914555856647217906324544395104354195319113093123158109855043062324475335219828211978469229202546455824933373490316635235661288850852856281697575374834666083815048453010740395993489185587864496566878423085987910175128925855024528952189357932249543985047918791503935672145226050762498650149881825665000851131871340340754792045287431905739487756449918337028461005972672882970673159182697844721619314627161419889178201591289142092870906102109980697763296738680797801581251621458214498323676424027144589685309636362505663836939445469499138728352161802978707579349396382132909294679935708871766526552608517081274202766372297834699903820247332960069794539497883917814811498095629249320123111095211715763107849451920024949335972547458354837828351676225064808497387494504344196829605431781345709740423545557482744303245806851028049982971103128331065503501002274736582209192346986043065398449969064808411172886585245339781898137098090328684006911095947434626525604286050035917862516908063529708625610752493200369704582681220969194820643875949795887419704989947431604093980300038297276756547388181198501483399586142943793932817995574540154000355646484363368889060206638168721782036125838474939721683957529530440896202007536201711075156565559980292833069265195877106602242988676532590808651756727453545679701605421264924633164944372569054780373706679355250540135744671704154754311895533717577399598921787682906477547309063756744581644984164977849429729844325467762324820043659990585522864003428222285900372858300734999925732620008470313561932395451811517862231746312419585280348848102778773591401357436423844182754183428811328197806178539996150177428689081763087785469188911791266162423735694892031294315793954158330800625180474717733407052410518796243960861041666933529765477825167226071907051993405613310771498798900359535011350515095075235749518977015261635004992617792165480344233314657713558531383593906966794238177801376203568793162617074367572025961279152257837445194809834190143411271450178710145841676070454591282631770365348681365268563615091022033949923299488513497367585942222761993108759025155482905935303017937453970421861648674274418633828146618543415252077026270811102993169961536977999098387483875988878886935559987143144044307328998069302742806316472158784533540102025347038832780126395679713104627900804648352077911163052005746241783238546279069114972666611854779387274590097504475155523264144106021009562675194864492322888361012026386713249137920223976491122860690112635766829088781876439388013834448151432548845498089322431892388735710987380145237068321821745780983076909156909376591494416758856363323833408841770377066565264561565917339033416743616610565198782168133385159385986166760203038371390049008869625516161066385506239400418439138842220703425552502995543882772263439442953352130788638760191667104477374379438988552711418776654821373492251434536252737595983558639178975179194888536162039862912991861299275707032706513217964485933831927185621200586574445266926162210729892468540345560700214167411115508761770641419749656101629736815614052922859696284806616920290121112018688982892696620318529711461575936860644654602639621246403677996215582829443999017276305493913254187855974354991830615441570691178741182200971235002589706946098574932847256678531236469969100974587358427784308688990027834845497560975427851199270387758650123539514940937785291971634624387881680703675685049259291197045231550841726307673415691029927027512744836685011974490714116798038708127285971533113487783690435418168864745794899130788918159171829579891263225773217580873005079164752613033055269913910965697053934518921221075114990195186538845040148342052629098015119958340681511111919043167814634975478755549369608503690616699289233098855863747611569304109089478280798361908412345462045556964318952049019393616659224965650605093683903801402173905697996017011671213146347209523269635292285587338631905074964525259994358641567156691375018665078725955702988695734773033376966823817455342595542143472814066308263944651835755971266172453372624616467020016367196260496623748004605376127248307332694783834717759576839662751792229679962417681860104516769545780505539225859586086812374639272360537008128051255479009063499391051537669962517230907952553943380281741184691173015169649962917582932777806841988195546745191474124747938961972627180158569203487664924810001487155149746352070572048057454142810114802415169209531285648171458383060508921060275606754658845546709575345288563509381977520510948349464894327164431596005477209717962612119319555358597215189808406556559950589113934446495700500226297963254422630039508065456001868244553560160285413846435898926543513065292290697020079470995138923185011177953181748857825791365859689054490132103286898445986020863448124216406977329211197265775466117927649826907631328673063838956398541843662846584353673186376325922925903817678604560488340459381699681164219040189791198255432406783779343748772071362035024792461959025802892590688955364054020287031046132960209744422784261908651981932841716007883936418237389154173630769760851919530579991882720026479826912627182343587238884042706386768352550522257589721804648017163632738773310724290068650937971319598232736002697104626394604926636377544730471682547362858532574052439521834484514134733730164707165746967905335807065411995244005093105165323571711026454498050055903591401665956961708520691659223934568898017348874493742573596631161357587037925426744493566639505945735637203818580310268889085818002828829964721944559729989270669187413912477701765479996253660688838115413469786141112919288828977149531796340967275283628863222901624156666910692373914926907229100230106858261892779575552112274340106091938346548254668367892250810010993935193534631820955282165610259271297026415967517378625625601608089796018124160447704089002615294290024960762302840967637829511701848325381971891838620862287649141297267244207576966902175944695392416023674466344117539501664573061025553782560373040055277928472748003212440215878399575796660364920976374812766251854122937851115547093784733276633230328095167474339069066980809017923010293214779071979994721058949264631865293682685100128630664670005341966208191429018606455917697327284072120709266560324227628352858145513204985652866114344308009916867186973826082182236427969193673321552069132918148369086022895375379670265348565922370611176882786035075098735717597094355738596716030607244682825521672995698749128359805555611088236032612174373778955158324429968343934966470169387128616115639671552648625346733700846964031745542307603349507580734975784593932342033520389435920957828877077949084319764385891542378195714426177632131727215245154368857931625347767605400451975562591731138549671152357959030662127888988891095215980098307325920042547374712778809821294828804962846309143854606313019172045081162793799748552040443279606443537517971414580414122006817513956789479817947775597479893067734636447298910445651232100625818103094970006918888938347646417312966373454455265629642659371358945296615774402763091388125478582648058728118554484079717623444682141674070956011274454529579759275451526431262121693015103747939042192790934476213929041465504484005962869653933866932909586185947505212466083185605640826509604706168630188363492716219338971464976653220507954155555341037861634813645955654924189986221365911919861004140223430394836808754350226415085506432761391608923997792523184304322074055237702062951926021494531058335526436445127525124106764495192092012757559722927451619904771455398247704187835959996280534179982750758873519039659163177672298598257612787077958813457063635046220955515109755233962627024745048418189378011792946490874434881940853594811806966431430358346330024781671664133231148323479388198930617302641424972429639389294146094443912864328821033989927336999670634478916696141862735383643732198090695833899955450478934414158405563720585966994419655838593050540373876812206347807753797149829822199918568929683000658260524305982130334780771511189727386345498391297505841460070228442140073684571191723352350584100874266984920546757478664430643934661331451079859743613733183876682967258612885733822658851436408726594453856035896778102519477546096085885087190562113137613870982868637457332627345442909768125712691264391115429823449221701925387437415661002129705353044420592658831232201770788412631971716984764581239092270310025471527939306039216943958281372110020225652031756527481260100400823016370559065930885659286335715451743010931488079437183852165154302796168400759484800960358323764467608083021438559336088281613788206934633285995895669887516966327510825269329169972598676446782623499096163782942980639585641219646057908623674226918274539257097964948977708984851896987688304676030190046838205591842971111472685260395509238486007676333807262277427293528227365926705909287839490322957386786662656321163900257242948243815378139037740344047248808793991648588735318108449477470416825146492153503300137965617812717042179976257392666215891885458356906445091723464220494249579639845212347114398693369399177638653021295318035286208622932488906335627498326223099441407270865868369840810313204221700957845469439832017981601490358877802229483932729090841337052348915360030335071857663684754231820462355252623860978609910240603056704260582003464440786952352771836169109621878508053770222193169900254487341131831880544808929416561835088115715817431405332563942297076515473754950281642606201155433142163929062697245461978437712671001333761475956370967877074883559346650716433241711403359487551465357918432214540960355311964714836105226283784508708475175752728566391317957127820618029296975998596369262631746033502996522912268795013664456706392971247896498664212907692896805884468612407907035063083271330930231168054697370618421153940218789180935160464507417267244103361255310765812148998976656569414908536282700417704074498101019514813692831001559293067575464947749677401486640978731077175681290066211475492831226183366667329707034376373831448636111597978507297495741998487780809893921246217960589783247656915954308528215230226874525235443252617726224334160242757223886598111956759155731054630004544555082628431314444747916549523049754018387209137174800961126874541028568631417140907428555223843857755288257582490428106585219323094676106503948611272345046141935881413127174985511473341875042083465340595318387787859936767072543566144863648906015845799964166245603371475300280782870693942769157881865403781447129610979119016776350866352397045041197627537564140756938450006944983000715216630868626390349166641722197913463356102169518194460542167655004085943884118092345643021227488730756046790074256683082394456237981714428149140224713233029082520886771689761647906792958507560819708765347675165320157766616471418920190942123297923614583518141643159999782741184963030499852908638740528642338375910533619112866983609076809374904797533020924944811961844074184446611838471727375205017844567301138755692470746250258751023411343516312838093328944508726461729890181672513621444835450523719469374183776982643655949314100168318516422829428184695123499569321915291362384562616350491896100268138136054419336830722600730713284055534982041426863423883467494168290089851337547009871906068640715962289510107263057961785395550089363971229428212097853192498485508309529137499380566472237814829044577846547901303831368974518568213012641173816466741635269186844450920352120864450353920919911881668147897852761926812708511965448592667482288528158982434324420322233955196434137860420856438673920959021506414679975557590253733774332489672828243409948917561217724729601525061067370756985337206261714309864524876748780377780115904168566768343485396424189952634124364430735039264111083883163430370393713946621875857890355356018785509482501377234197132961165246850989777926739806585241149817749824281915636496357924350230877277004183907508411921723107428542402631556844041047622635474209878944121755865285470341475938066210176822610025039760617810987958917005033661850153428090254959823034052533636200379818921140937560013465250650912282609734978472618621432761240319256517930512928896183981065822919009835052698257004928885409631740478525936644198632046261198841093697625082092555229706959291824265359398955182788746141384238716883366917124086872165829504861608923718395614077281615582512648416416673728143445370589314994898285417522330085035563968280892526442466249804426603361262002287279440966517517141953270661425041096920164983578823085316596928628889134937672556195839911821024428931169763328625125746497226003669231633638246925327378006011450146796521014849115998528840797942508869065793254751721924124178288180476706605621612747948558086918957074881283421666522170118426910097739526337120820689656950536429026386673537653671256443316212390684371425814115826958264429893143069823488502973549208191406202526750812173748396741686208946543178372075599469460190392375367098679497096783765450798363703765038589650793187697499446504555644320785110121429948012711332656486140991253825358060711259549470137892142800456854515578322285176768448053937988424257012426620379265031820038331088589632223043001351950018869720721830126971360789374970210569508720131230676870085706931151835325830911945218452121989624998041503710629929355263035423609917998772724200488367589525675819899728499707648213787285852502392625038102668228827292470452225239465796254959480070826724590931914073790633217794276767156249426755475255698765327800235148520440229940769570999028001556490202649013186936484225978657130670063438850318221012165331520747064607923160929084472441329361130271464685867804382308464544493956996047004535445608809543588480745191202720853188091566381943225247813141410747332574027726995432413653012009930691759972011534246490342168852533299815156392642201955253286206926506488905239432288978414632960869846583670815312284175065529681429097534297990910882485422124826078059810787179038471990531818948535573712942870243416280583882210569168227131026407186211396579581501992382647056010604336048546984201357824903733208340272353128697269702240019649046603053452418254937770703400245660825394827754470169451080719013388906879048122497777730857890631315874426973430962919493609010620697770736879703723012484390114947197441075776670236841228395418255361681176138557037450860095680906224197316425528434238117467835757584179563325157549934624859040112871843360362525097490948596553643733519742384703559684455121710132316806775261912011676694426118658532943851548285012178690180543057678097447306499616466445826794575231287742005942804527226606742078953887382717940354825990898587353416188122091682693158921507229249120954247793847776223676615044644843975249820435594026023299723843094978894331725069778492906583974211399865321504880333245763124162453808149164087321119325453460504830191348837197431154803545126581827161503174594666408677502912730796955516820493069455817323420370790048177568982407306191824411054432764992750911881520576959364110220242674593539054443896047272732678767465142354036852090987534117169549514125798323897951651812414151558942468511241806486101397234223987892844703791960657416271807084731695731226858129700573072125346092639244518487558262380995663184507809196903715715953664119731387551102513662973314872881462541399950468997241952076491462514433142512245504145022055603779406171855254515849051356797727832321326517127229767824707199780076576371777415346802378060645860313594021935213188521159190832362449668257538666801106377432745965421649108617873459209600543476399265027886587983584722668646220699389960902906599672696802913880373526849252902534718126601397854146017934432246753800748525987872620491990039797317930902997751870720146739936861772339315118112453516823556634398946157525993177455333669805776580904342564514238908647678005818660285742335911535601486102421262577933344427283161835203996628866720548649803624351361097438249296087870583775090402543011753913277850355897147150260575581013701871081211622299395705370834581825443325471940740798655033640999898052570699033896648203365562218988866990363213078623376610645734137160169742732227854304838773179461516613958616645927731562017288799005567810048513805850579199027442839122464521858428314839359739146639537648506821291833168012903969263222724439239113576056900277608794814892393269198451717204517304880294910711686128304834317382165596795413208830147643562436724875560464221876322992092386311406753888799791591188311667802676646596482460194171156140305257118327219420510018607528242388788113019644051680924245081489887345708769235638565692181139100906514012182204255617379308835683713197028671614244435557643197477395173284438997081949746926704594540022084432490044010952238424705198176641938874787170160098155804603716619120951957688433653984695673921920103675331211405407129734889799469950765122013630364193875963971819144904765595560324800051503905659710626791324001330275678150236176493386710589484355339712265427770010252793273137367599574579412690578649729412844980477766619758921460729900813658204886165076110202860373997338197740129817248768614317801688468868554066920876137707049880875854369883543311559949057388684379616232570000007241942944437607637529212291248077603458790204341995260617910980431221438611294337275869363203589136028634215326056820873158166321190315866388007505548003578484190894540458900062143294079965030161065093773128440259180945593050275983057327374277825433377433667978810177021820194763319111368722358382819580045601972346706602534043072792808615924429266058363009230248993199703555292642532905879441252990234012373877735201926436895162829467293379923268446592520550728354190022387499872507182990850030703834874561497720510864493052424343608828042757428631767171564988080700453753846538670733669105167406336217841236780442668108136384346086746043449369045291427879450731741493717210471732450746477549356491610894844696973608131744425617898996219740926889745872399834917176798649610933991067558721460937065630688535023414707895939354152054095361858550187004509764779229804811010173691856225092535918315540587604806770534058094516870797391364288720429776317045462584463843817540317260612853082289154857485963985829960623802344005491040648339926904633414815874595909412829675913522229541189121431872299318711622402842628452141318860084482334367348821379646908026057486023046834755322069731636312046489425908549661182204129100749035722711369704030678056059168304565730005974687345157974407612548906958942172332597414111128119218581342602690610637577035248763464100952309720409140372901136568196221998273094390392223331922410469107947841741025450045365497708423374314803702148594865708675092040531181661134163605731056170391093930160718717085379074595196030231852897767303763955619908255757944467159633232062405199496315255330301327600039646621523326349191333068325211631978623227339491852707437392074135125323416012663123512794525282632721066622417266129596182658182640598938268202003574668559126553332249156364272013075550817599888459423184243996029949490691460706837683973488590504226676654426968532379621526863461016636547448771726748008475370880219592625047849747032662652733378417057684535722882958237399425872669539524186579640223919033129484445784980331573653160913569759604032199005557392494452567404605807939710212960843012264104474220223851870753653940174220363573502787242957540391338767065204297771622030639334566537423779659783735443442110319717514281393188157495526486542187825667354614671524395957071713449612680055313520435914067357478559541380601600826694381106774136819971890751284736776335372589815193340471823313887414735838179966526065406910995588885962368152052331720184029782571737664184327160704031523459172363828200445356974925980410175770472119072534328460640614637554702272260966234767535872311868702063420943846012343671190081691510430989393021563889600096718582175729684430573328838428560696469975964965566103050325252229162050372842411527916444829144425275170980434029710894691859354445838435983339831262702409487043389866980282439691728466764594884579495502496779947079369788715633198872896778140264429857485545754633335882767680151998021412629316264077174264360594765304532296949927044625235485307033940386363860807048852298182464468587945883759673701961933410374611809331935797407773460457513794026689221891543522805274687793437390368282368782937303374997284698036060871497977010919910692973098874982727147663296422212672873527634382016560397577223316432801671388586629983379651861097200152449472919381144351845678015382911764283768428594428172615514307562927907979127837825945413012493016351024865457947899486764221363444396583915577961297934104659073870822252247166239336803364118677885320804176906686899361975922958584604670355103051123817862665246242420406570111119773007466379696522602543620873091494064902104848219297008089060837551889915914443020907278275566813361823792354601158917960505404058757369244548749007642758377211033672734118710331820470110047192294196126087078004434969688958817082348554215922263488834124523856837153989143913667216247315231786760898630434940738678731025350636506305014428922777924144278717468038786621230447223883402950761605094290282161161323035921184014465731650615386488649631990076930941708253655387710411112513006104296474526819209131158204857576255793716214352716015391037617026715887216606900085270165284702643316079279958046312560270986978375175130097445860238686840765345089456319607599503210218168866601946653883207582480138380536647595783168977125274508642937406247445953533670217672126224005364418518335898864286907225430780332532392161929932433626258859552886203168271250407121571725109845871845349459694448703859133353335830742551822519587895310522899703565643690157182470617260658991928703605203079268080848270032621997186114464480157986896917248161050606425826750751401398893643178747495556110502980506718696005776600993082024049482009355481656717913759158473799022545057694080025190923210039852450579075100017945245623971114131061657092507567189445336585319581702470371153927387498832893855404077248960831115456962822746676294325351022863988370045296957443139081848713639545583966860999347465656227173227305594640115378306977908236736479600676589809948719323179356884942976993405596793908668440732939515956846815958223217362610151539458318209189694302763324815481945809736644039023440550049986281447578796970424548266674472039419216316626156631494590518104647936006368707062756545516280861186092264401864035318334200069336021297625703250371452588185832260188926139707862584512150427681497449543070073797092246511481168054317937737906197297533112123505182280894131167534743180805185276183152168269621543530219118550649436997720610839724251369109965407701580802551749794722162151433668039703453863187120424203299370637274994865167127025900642278414852306362785078199803969020334138325719473656883900215072576720987740450328251345600120362748722796325021617665303616149669160930568899870535867119326613051312093874362569015205238656102342329061235374448462694528960975879711572295349202613095022925665612908274314694593419363054014257862302848435358545367230404140427070058583872243703315371931887007923643186723377660514288520970802902502968750715721497901159077008007553962744130358743165200924322384925280111458634635975005788665502990407905988604732419011711742273391484808296028113023126395869970790618794927067448120827286720518655338353182090973951067985773213253099906927776129781435642694476043271429117381741520018615018931449048776985221455973576803059520232525901896302422280689645642649888160307788677541345187370102300554119689695917703295071336850725987328966619760130696757175938921223816035582334760679731185117548025376513313035267006122929766119722255109227814492211330867884115980219307855708961899773975388708029225792162608899333133023490593175823087099739549713793081240385894128921677103016846312499471183570935798945800693896194381337375956735654786960854627534428826702925148677291699996624245857779558090381885449931999812104896993475734789306698774163929660887511978970997973984306973991946809748564773310546031852787911909598199223000902236724188281987394667316984461320452882366502060493477197176376306930484890014917121471793063538783029962994082063925009893714921480785747915511975139350156488798281763351398631744489838182836883279510651703254100798292296147796567845414113427059717212488478746498135254707896541823837759471628214217037436610657801510160071064540830625791166391783403909568303575603957057187983099838926086410761050833334131750376114648150001166062001702183067465633034707855208208016375021678719589306718487469909509520560455763332414607347249500102394421371799578285907593095955954913674678924735240141576159385904547687663373117549069655830095796770396457441715162051508860435598996089351809313776078585847079574056075382478007471408775515022533862057234979985894630130348387530202831407594018858444603794768654891176142054997006342473179570709096365536603160219061030539372502014615786079891236596406594666950457739703314172202362838299790726688072188111782974597174052048796150422523984210921290700430747673042355530113315104100646354228314219773894244545846789306362729355219971739380206200416703363046913961698459299122603959860103659891972663134326118916538780918561388312650468735568844757136922022710247904350301770228170542569790999576154954948187396823203701901482252259350902088396808141358292642904736451869208401538627558045493617506472027079656986095759592869276692665121903509041550441849473703952950822457117958624935090820793951561301070629697390050962448223351658867641911622621827268133785815912306832502984642366104654556129062689462227396001167850240189356853689728318719948757594786896300897108019091060418785290228320302847558022355919803812459246769915426108285621670773155364303834998296147072903169100147411507303730420868600650491927246382541467614420101128804061130136196511242543481505556590346794251132504069886141427354546213297303711212442306873240888455703929809246666538130675132452369462185793628093531715476886020170563637110758503636207626531322562869695225764199060693027976693085638409464643046549531131942879468012849349676926497265220126731198332686386114681170496393205523286656255463532847785813415797910409757660138070995110816252304015403248965962095282256136609593624727843359117675215121231092234659400136308507090850452280293637327311687301133983516950548916429549689812822509156908509729464787491597726590792014569236967839279202628994205994426250922633290513873425938613588413137002281292844783185793158414483672897107599642151329270802993715923993486745042332099791321928061099472711317228178596244351336782377103919911155657286652039627653490583079226876379641949492695549465404433861535366329188716258018490804848641983566905661922296134151753730761769369834439015236074760113119204021329923795308848710812104145531815139851658047305947391050931024307323818196809141415684388731658505951763990682241733591221122745836221445516485703497261369921003706044332623152969358049914213396157262028137495481220434116035018666152353119826401017671701599128140587882268570397791363539710887304256101123792517109306211828249188211803136543815401878305796166992634649361238775756174267258693092748134680927075704223177364707961185308725644952519418403911800247139823619797280979637495699822657936622434495736042896778898984488603476499125510048599859657847343664897195503998819247527657795896569188795076638106552546732238708945920029597071391013591199999117015504653075663405080641494179932262975104898326051360478182016998360179416871911091053947594462278465212141230180516082333975624315790940368027512066448732839660953581633246061269274675753513291265714911694787023755772271944808594232109133837145387434560870413299014998957246047013801493419432934233402965305759235007066003167742722272586621084002659558259781591513993173801914509143030138637683653957987794257104977597927725617239800863210983895396605238267448961495244911305144277120136198572377804770328224127288056234369358238066501924735622843765609518538423109549125349967557199730834554346313029809929689859642115613314440615173330054412330458176045381514472274164686488149681644895250153390351169355483301746579596444958686503640164980740561836886231541296318868643704037356307143735918064708121657444637917978753540415617833815477190586852058133217215845652875799336359374495855533218689424739832905638858758475719760799597556472887636539016283059172036586218575085862914628361908236154289071378526745187439900905643160733141937143430902928427866135417023143230281922174666599683716446460962077043192890253814031805015549721732850316163017793440255533077649867640780602290125974017313532928641348446590991479970570244814320244026914021074014763359817096104629505941016098672261793902892874663961518415096542573516961050119534016828736024288650159931624858552678560930514869544645445895042202663950598679407028707212044871845695081855967629999593876357632678073178728531649748946257311469495175892554857018278047016755390074899012295893249500722263985522810747953161399668376133687557874096905175572017524411270596140711877259577997624819808359889016942442630597302472170729559395968343591869524274873465229349726860692286495503158466857130513457079164797652652395864049501725272161733281636029509115015922646027214402044692061132629120725752554083206213018637236052383313262624554084977574479139365629643949191723238445410660087016162464325413175707070944828867529502264350935558578205861433785061028415459873396527902250469632633701905254586289892909214845047876465098568301686030989251499455462642074914405324668474470497344174992783029559334917098822595126959191884810852953826414556652079632874989554131178793449492751281259686381423199823963197476508599179239751969916946461691676353474153784273145486614167370352068744627457900479881241346709845441717208837187064971258467009828975334713342320599820142500948119077116210559685290435018211038946338787885803384306607498648340479575587656828809919246405874020367380364347886234778851092587211423437336220440815323784232477942696463729615756789492828389986252471854503554942243973309293221315886711798557157522287063469656320260671320647258024945840514811020276733003648025307619186557947768003115879818460478195818993449690263331313474158319808301338257045980566907770263229842288659679435972759069540203782348359330928124045807321360555648221801268946483747389567875562802561483650108520364065639669226073661428607080897527458839087907164582594038876049283676776236953914652472505414654410295689383867253278471420445627509804696623603480983456615775367435364361444028233035595990954620015044718996561670250565347268260582657231175658237130186985005857935838685014695299961479185553996656594864582297206223117627927441155326162074055376914851585070822948508734931210242540791301694803249536075059778917930671855904439917424810762635452370755879676367425417732096805440650275198361837528496239538072958592225210893175142227894705008472965334938335702585737559149531946877163428326893541779203233054264018264749381108115027945408241415073384136458710746496663629996179326404305426730113419298770536304244818283553451237735040841958355390685245360911090876731117235113050012358632715805632638328676030617088793177308303835431313923619734642749198471578925964636498862188985206486349557855856389817116449119672353875791934582319622506154659598482744847299683395755618991312309187362988933318051234299527032839723760599509737086929640806789785479449120742891635140649741665197648426840257420359828766139177492066077101341680012699664496207470441924643896620345579629440816162677851165698629695537820998647649688527056574113579224029164242514242621155235660610020194030493069585499218066173042833420347338625361146076084392579768094293279400433007262439743488644041870974204444327912161437444437321921591764171413404343590732352470742534107791469070320362630655829952156417589274025502700486513305540975380634060510601775114038625512054095555564729289492113780601112667721218839261734023108858412927855690167470729269649253744701926534628792909462474932782173785368015253189124915140695025305640371569940432156587804495663219037579002747259879330750195878836866495565671299659336723900035121528754501450540719632293756308020942647846777807265692643444107654607252173335642184537721670305517742256918752512319651030236805332910045884050628033366311689210528238894136970858561161634520075990991318681475075635922586673401402808747440502040785269893407660370515219531374333370320047734351316357613936744417936093015121005442985649779540619246632623966620209735401281984224838642246453242204840977663093137975361223430864508273541501151040411591799324935899080976072303456008508014144491746738824627037403187124251794487359139653782226019237597199792519039280982331979564191040155159462607924289583605857532851415622516358218467066476616426072647922621204354322090831591454788653948681616445709277777509684893005785969284302909538587470760997582435947359356926869694444744806926767254178402957978082816514098337388113646788497576562277829107249574748052310431105427142847742418054552560419437367338379354672014312084047015083147114506909871131919125590618615571157151908068387083504557381945311250082427937310911369608164687541895972796504776660099682260722203829402559035503415422263283806445311126882554534141243051246599385096158752944872573229021861217089153256931413324166883585058621916406860971900093901220878647297552242818691682058731578930086038736874280709733493643644212135199625752970167397639322117124292953505043092593594730558699836382019612633898238640492027126916734117580807447973074473981481542008623664840884555255494293173384490550326195620513341774995417492096104013874312525864990140302968473215633006277144243896225727982559119685708963703520563133282987248600696351770147045217448534150816459160763619790586837769148725749429737131155261839949220789618899013911268763916167330153075619261352434098952870601647807187761602312327749089022730360373817016283540880206697289266164031141265690178024024032820908991143168803145093221141499518239649583886192157310741740290178751211347498224978473474303009779989430535748229945138991622938607248095967712410986769343526803830322792641243810704143958304208785689691446215093847210182676120133985838236284828999905039421520782741900720490306770819623553438343842431412980744440798646323554502353065110936838805999476575080764751197589313547174152028996604173462139366566782257607450965506795937844873373581519422564225398857547884394113527293450880735246717419808544809209983532136884334131154459155314694721385508511147807120697637823071673338888990159828414586902949746452343222363971212977882728096305013988226425871558452331076956050328312869410043134345715267494239291755084355339691626839388440538545078459146401281117038541623232655084610156102184106455631719970644426854514054900245840239296964421459377246712501402458749800476743768718750788511322778848832101311655354530455343659775235764596665780064568501966114046174014476757462673802110588942586624368281304316359559292066541137084683741842083308225802698010213358607335244097964750305425300965536740020776472814774317846384822634133858695726610019160726122268054162291442348523935984129624076739456732763212573813305443055974900370617418924822907460156022317336125810763355645530622874462083324192974971291588964396318164731844398470736271673815926739884971954890025067157130869820622194722982194669777798708713292332194614101126238627802491692394281530664794384690368616705507104209514281333211493705585004993552909657697870128870897845702625375480776149469823631492946988929317042404392962426313398885973874286303736818073675452038229310120752706559826009024488674853252793586140827700270297128498590902172418518544700468115295822034520568726820828545295492305217808927317334759512206039680298244441048276345793454886587725268533623313988386672260165204153230168568634353996816938315420391089757761707172850632626589538459564220435208133537974495206679955765319627559411883158486597392026846402517196565282121590018228963682987762530863216119273994268897802958647909200854590188652325604821799614295557550400611757797460515251278234303758090481897502399063058711835945055370086774570134695674167137253117702230492856376514974768201943041912102778616695209533199880518608467818426629459460132976290419633787167343347845449690165369449139220991807679844251266685094351807939723595622824610513491794672874583314247566631104788096897000305223977431991490529814266120711565542402068497679897771470928642198954296811811824004665231417035242158373083555499296779955030783453808279821473819860922634401921871823037900783542496349138217132000932404791182766022643909002569392243538400661338810867402780659964458892814456081093666394984643931844698080188785325454339919574804920206955116936662583153013193690091115795021412552818970390931149216098082824640408423748728591015173723172380274251029490487364863601433593760829410963372756388634664786980881232259654767176536719370479242404131127459149432922463712439678047939318721767804095523969448415936355198908063903564270475591318018748458171191187677764176262839180233196444511453228185160674039794473850890160350517049066509494902869749525117670011276447887870060295872339263267988404505749904912388493177285932503097879829436350808177048128355255601174535626771190680656177995017000742381450032379443303394769686532998141540903842838662240086105050527459831652803858266545341019281508169015630982652238157019822829174316201563541066761616518084160210498111987590056594583446181069106812445045623459627273824018503491461113998586010581817040539515181464590992618548651616466954921881230634418207988735057524271023972254571412262447950167815433429818795524216829252723609042757582574872383598434335817939595896983820257193389632915822846568043837400141856571921572874982975472881148413988870810879592237377867853465029617190639599275447750755357813213572126893838589343210556448053810698278199035690567366875038057718913595886843888568889845177877000902539084538223790446266790986808568461688026583027291191638802147713765404327845207365289524671366959477170969382915237284740622665646681685545206094021732147386481284486358525882618847583128462432483281750770584307746190712759251789638313153091111895029354271443068246738590231076066193987282995168691230276670294133184779536739050131960956473031131367478308655747384257290947335025445555377884956680406230463426206297109051129312098740258743166560782745705933675167595374355856514277280168797601177203020714909111808714929963376955982122780078206076607151335013666722420568006331566631443523846700572808788533459389931820901214985095960391228576892915962784846303470415802407260631548106216914034133886434395642509592259915372774549422278535772789831837117405314155718008813284084895085357579841107706528652476827283533098977858379178204361748515441782031023527935950157002712933744082099269061670501069091569870959268692910997585543428001461824229754761992330151558088959425959470565621032205305363159101751623961388817323452556738140390817708528504335688541992640083096523244759454225511071774304138210344144611243833128867919297460368033973705303292951074075904906259744207595803989912230074622727366456763886746819449141713755451042169548429908286945606628612231224722921703618505544576693652894075413852543356977077042843196706524634850459469741548534787811989398769750032914946184094092798451453587283421549395440490874432093795041791664998786680310925982834339856487605614773145052122997718242986833726870189886582005955694213561055650075778968738940976607346532387103229447374072736362716828782581915904446500528040330146599997918091802328640297804326214280050324512107610988451280346812008955976532169270770239858990671261512646933544368075296120220068957211862648344002212713301090910171815411416534229129265782041167184518063266525741301631757387523026157371570394937566803972623595839203411912857156639781309585449476070025019880420899391449821758610689633027544785326064439937499077841892488934896586872203015297096604756515406398199107289577520479049456237111563107088504372072830627649917729291303683861399822756018284362229337587967599878475449970021858400036345754660663029914645890246059477739261528397528956657909493309076621155892839021357995830362776280048583470991106497656064236686246589037448725140775108137132426109339488317757675174316191721239982262839152353537421464181066895693712233795497155667590154172804841283456600454282445913064507390969560009963339802846634162962397303305238317192133307333434767735253643642017269059637862911919032142755883612666218789461934234233138189187660297138770106554042601927996125532530765403375936049669966007243310766876443327007530725891901924486603881065251703411770622731360631326213601144026418476640618417701781325925778284462372096742879491614315200668922457056004002735976226871439227220680872591617995094433875646109939645276477213847719712085830768696105880634286920532982913913858956210486985674195096689715595054322300624467084370748497284549482542017360257373478431023707094361709020745780065097012266965335429310015055425160869793534363651699636507483572939708996356306078808662652526669227134665147460542028483679861148115837099872461430941515684988104556838429148853989978237363382658049323955758495579594166183686426999804605771954588024197149644475348542162633953131559453528931848650725798518346139152949724977684406368620273219108213946409222227525529314873074965995659629200856812562204080522496223090402142889086398158195836310088684715751670076116547837341503679040275968470576544884956459891249284651761411771311919337205272150324242887797474092923395008858617430600482455288186327790407173208679044822083728029452821477130867260034186238846171045320121523121057947375285620626517955635631582237953845214616333341842905265384558813641098219074447778022558625283500331897615357242528916880302854764178728529905923444262519583345845270072012389471568103628272088448412669305547550632493916192213066967475103083854172507742153634571228214074456244138849122113249465626528198243102320957086982179619239380310711509203995308773904930908620846618907611678952651981626129977116512621529971815690204641663256688472651397080705054604664017052083485563578555706474572812313639958211065958813379558260208594758970616620183375344881965959675077132004688641200061231884482202005210944200889045432681100850843868242998862378471489867955188716874803275088631770142680956056730422305214280858340636756341913623541539118167710567078054863463117212203392846590906465927423535263752806670208162126392350087552021160770972374534799829669072087632442589972634961749663621669141261104546175786121216078680306745893821443442453288705416201580227649932508229302347309776292735630141015502039418327664234064738739935698606020672887583542055609030725809504253365300202538228077012304386117487362844960520811315654550876173914550067195653356372234677501426917143105553337766899512956584406156478387759815137527734261171436936110013964391786913078384683742581007707686570402436904399497781072500987462223762642644776201701021556087801272719952194887895680851930954227375383340100282594486165593985907479127224626726456804412776704886090088267939131344027729064005316691822767214475931260927349359041980768542750160434172818098588056456984709072757620254659879789780467280410275516873751246357990575065747154907329670045423194144568008837899652788074134221546470562022370666879179189923022581469136060101420362601517922462543286956216532303340864911177578683033897158014826096976872797605653760282502364660297442200782448839598031786647033312112851085303071274591611771793069270917353223324188467826926016070135238021299213293964897451276464033242824173209025126781143761740920059213815538521970831865035635105464789563739384511913796016754202815984621838457577622979247698963135664419544408507317262339725270149888905865420080981137975069252891326473767177554656115772094932506335134591563299455328955846616823651905366730413082204041657147363146864885423331928749071328862550483987708278750290579917944766888690185560197404348441768059064596016524448781109184144757325512551244225185069996162043611403929866194430397670891653299761364360384106425199243394684700253013813373704801803612923151365470151030060523811199712150506826767798939462713214677417541467767885468969896170941900801925433211315670575864043040638662276823401219491244595608190994238655496187545129800039271155573066643983346374552971342860422074509099174100742284017549514609692504967763651759279713512209282943412008490958736213283171030926913818946440731576008710325151500127798595871828749822564949249305990092680665690050051862422927628426385423694616403198613812556304427467865082698597641002789497054034816852735997401477764503406519882364551764882418170554636163043279436504342740557045874847047279591451223350572384770086057228496751556134494621595218391677195153867080418100841380138882692400163891029625618941979588816630954540247508636630445491152611105127901560429071616480379044974573540245124796620466408925936201218214141499857864681277709580933151128771944350604850629138242612437733149170428580359069395299603126037126343356675152022536222743418673036615699661077581432844167437292170251010184489068187754293341017256250847749120986444296474495414151862542973054919504634693321789750867723068021661297482928685415938024529132538465759983891748567607314766101212768304905549816243840796605189563803775288351209078514605746881783356072966777581648769307961940075032037799153748433614704681059263907744065555463254198945132898655503676398423608082423560740155879251784244279803551795808070706966944834370678967665993611016083347849571607179323711884174529414653519349409467882463638359638205755016115819443397457892439893970884256564653862985897874152846147249876361625393531041556788978840377053577961034026368781010927036833119487852003501468216747649299554829533791799003383474904637369279637985099811612855697599479269041504165392599700413625600069177811176835440182966168924301004404211889505980974970727267890576152917950461495118267286647864132776400862262283473842652268774336185292948731438640098295960220601845071398368761267505795898268668630294353223709488715931872799379020352034616597550514757683721465874919531474939549604303302046550302375043387698867453452187239794998976960674335909574315826821299684104116649534204227741138493953363011618887471379609849475635589472400418561568316654050701322186416279543142093420410377558784555821259575612507205404032890103527126498502204263310978045037145112748231278067789243582797109937357393068461911942798597395844433714770368312808208687503105304785973644904474035708132920978330916474554448967696798505244092600781157573048921316801045497824190050775569431117079290060542833379666114292339066503543582655791928264756392386124371398495454991764371284036275730323089114251051583160521620683471804743212998306738321798757824122334569746322570136774696307735386071983094208814953562061807174480390281530399369049964268416998884463862712012578793445736538563833177513696734795012971465400637146606198486837852583194901860601934084710374716197870883451660188206965585642234222457490130853100755561652442689328283166914909395042153033306531317563331006076727114081736726100389779127274023702845898481149723537460886267591097345441046011995256414995839646288593387985808874524824329512993716818123362375636065476787555854549872143621776171569784956669087521749858424507154635313111723076811060885780778862842017924442930666752831558836464048034044908945252582634344407936372430670500652365794833532964725173530055177479591835100274337998750920656665625431652911853596493569128371048857481625810404186401022796926272599525509650400700295678053858535190216442931396078059800323515166855530661614999817220318318386133749276597288743325082832163364235145786532289675150355065946854715346447838587393381757495866091552275223368528781935906646422463612936699284631243726566413590099729965610786571645779126139314515195811249884450464291229255133787649685891521986358514799324900689999548937279372845953543591808746198953950238053021515312544191089885932774971696952874274425425281339390116294744570021486143694273293601561626663093609734023470338691846711270825675564242076779489282448231860682043881147333194048806190833003960099844488337655900526797080042807348730899752793850976543525693316840370666209067756625623127659160567276173976013816114044821349439467061544538582932424643087262599816206136264273407948716729556597783931486807873959733432827414424432482208336283973137097649524498125506333506212904220600995569733151254799110804926381585532082980085546616135929357215995816774568103114147721295228531904645478649323738426075279606528698072996798338853797901563035362802033622759448362560904064186579504118795269679212313399116578946024043261762606611579823591217006878328159682691227319815078205560321903317933062027649155035261346214870512433181905691262977643779822684814790282069004814755364239352888376875070488500765629802208852551657684499660969827242271747704993141818170796744912793215413963651284049684253272996578804446957912503502006177530501566327100087390235456039605389985529137693871713451822190695052567603726291970795594686275912645458992538020575957851859538927766710005544397300697991340235364220404060277854258661901029899659026928018679628557756972803970648766035254428725094130169062082750599619634460330741568697328855971514187634034878106388061206733358830636241146540691253187148183240295654662052368658915622980076599251702629515022581201982572798350811330021941933301928110418221843592778432227385103917105920853547782741945427789684454557864894374966210208300180622358767304515670456402057188363601545147677816242270621856088360933785958116190833936264294664018736952523111123222513465898236665263069183989771343161228367910990876535247295831597296169136338994867840750545444622958881492781352090605189509432491922053951242699934839091279880867156143322074626671884260608186663829451454465284777515598816654002258977648816535830045719856505379065998851156501036003232473760862302043942350260607978476640799082490212280876429800846030093328476599125569404434297590435147080131196319508148725453935935085542768008117887064083608542231331469787699975880060648474410540848321526426581408304018941095653416827629613332927741597740996848408432596162322809807659120062526039978095483115774958809329919733949767660491484455213696444202684804510250617986472974281473356405808202299136206652780834401338516950862413780893719208278044516310370461106644841691057293400895757462142477936564685541311538908682541466543819838661503480312982661019152418512349404558319942953092398010789608066422245999040576817503606192057075398818309347828448138950557972120563895444429210169445196903323083176365791585006515156353695399355966642594349929707861385817070205237512344563097994472903897033940623142021995614286989899078818508622544216875587071337781619692262866769584312759538386370734202930084578993836083591041268190695507423684145411606973988884121817038308043215483753326643654895089453989140140813887129331187749475951575069515764504634379894640734413765589986813231162712604337192164369895446474254964731018658733499808080674663851740598525561680992962299429032794995250500088940962119434636861705381642247414023172834909270160622880247717990056358674263385470030873179583811396325143401551654967057386592717898112189494190263169963223921241299043216125085002509106776621458856203789641996388088361462108431181370508050262764119013353045926285420176248638378582106689494485608749961141339851548294166262967419500345661830424073731923920371194805743631523457831647162188152899388872162828207365758639773666143681397419428316468766649561314820489888605017717767365758563878164261128817281755598160439891281503684009526842256600460145643331679887651083636927814023884382126797269275888607615023803257183854083930277962968348739143025891006281021011092668303056590786530420820378892847523243155659408508713847488817561928729586505520632630837983822685892972834498850806826039727066164006431159751766986228683804025868615130275934731417110724433719239501639303792435944617411575913551977507897188438218298669911012686289917779490802917541015650272783705759275723321689616251838969783479720842455280826616990383276402210982884822063049277239676230961972955275903839219238030462866616838612597755035087084708856045753548034867445017359103934958224820697334696292056154034742941950934352205621303617086098892093745184518012820002178249110718513117801025051856752323150537673119609694876744443746655607215079266386872963019040421972160687471355761125191044413360294254242183309456418367228664955534896940239605586582298431466860827970800519016294433651227926680871544665707402188079606268485138408719624438102225276751157312057355994579443180762167116374532371532309279538768878452015859790305675865921254094259198389144086748908772068261514937213636896327970706685162188100930385157701426249653592295939070387535107669761338072350515341085277574754652667835462077899547192037138823226294163745108134553296652056832741228550424519524711876726782920801680468700168347289192583331813171804187367898300985418661287406573003072176530872020531617128408057154216608927675340529855903473632576232242741508257900314101276659984520984411968061755162380378729943901038345954375635919976726572203807527961443578449985640219578412215927287611395220080631521095913901439519777394816656903972838189533765479655792766637199121848746985024096757470014678729588259592207696144704337401348455518185409139529426907052091257354731132529610823578688689595505120736110402858706100860307374569311995283931347303022537480257478096107100579724956740434441917619352421927847065439637435398358350768317957230104168373548910585282634527783324075818428064172521775373956076473991238596708080200046784866501601437644730601841902156631602680595285572098082783593737068957262331758322770977328207524498402340711825352257004827549891192636668809617903004874691245565058052136782330270340411991886710265235624472526857453126345273294807970801584030882386221937581931449997309088972817918163091916485843475107872508913251297465287565912859116556672278747850785463787982504935735947123393356404318569423854598997238367149229195249941200242788579843474567059534372061581520674718354050879015598835054565777356986840138294325816904199847321173231160323560435164399058578824785718984367879823861079543378861889754129008732496248307293655077947934516031673885137586100084617530101159686300043507646300620434764133854524117318919429611462582148535945196437976863850309336354845279064973466816031603678589422917862668440401562404127085177679254319717767874175375109596795331127520500190004943919906970422857276136733469501998438304938911249819090376560805684810764989146592670343225190102410961003365328470455773961291572242266330074450307067289341060084894395118302052687258509793240556700671211763552192112552642480028080813853033700166319747571389788982502112032217972549296871102225862693585769403305835677954164211826275531358409336807899628373914550181362863109759202184969452150416015798071287762654352861177975035664658879862948895788971940947687279690434407237987535184435813664952673080005670596957283222012791910135240740951934195108146094326114806515026193500541082372355994833053551021037381580252383381340588316567443736709486385030985793661523215132144861145780922805618550045207398100008878803658670111279203620485253589327680964913153686703985390030878312524072438593201808913968493519134667082577030430430432895699583986665028166388085540910744614118661991744788664584820595566656401405344423350184768014373288239153141792862383209335801232281966056750714129202563513404576364759206291984317162869648189631625025376245840101477948959102277691441655223535692419003100318215097957534433796578138686846756927531465448631627891748295823062899456245795245874119179477388866693734904273425369762673358383508087729007537098050736993159213094183899161805409920709910318140425385231913468881918705027871536671939236222082939697141360679182118880408120295290514644854836286352750132831112348059276216007073340089189832572624792025452400727078640213241221441649503695861388245210106334268807441888368073736865088867539345767358815284465015374218977432226421957198383871447479109080158029991569618977191917399151737532444687455249221085238657992887228713943735739209409536442486241967094937178091098333405768430158226142940271310392346092045149269234718666464328882994191734016677578364752948174585317704601239402991765700413889392110392505505081643651025668145979163113784267489939358347807250937785541225556200443146987630296296432381433761263086061938490287346681069747240107606803352440123510218987840905202019180408726314258571650095777110440572976726422098253347799721788742105491003289824744557483397367623302237643455338006808659891198139678734914817882576255024948089939092804747522109024073317183491864634143802575604670319561655002541016205499048016970161714350801578630993436361946351434950323784820806242006832951610939472674415505761967236194673807410719157982527445344464757924353354736001343325942466228016836894257974429204925960439854403830424392152792524031259412308705923153597008924793088812917049370760436525720944629393288236344846495117412174028929522842244390717484807406303005753669075036076964724427896166184906995419166543369355854202404681358923593333898955446522769956826763864577740999158554901043627997422447465236608417103316100928691658514453849309652576050436743168131430284422500099619694726746701861283260214304899769509656874289312214589211880682937902189101396353174101500490938077869728259028381272028297915427916935500912701820974232921782851197768376553604603532205272610464099851710248069767591824740346290162470368793332306273572889670829171532032084335734374243349259342733120610107001663945932360702779973811173322161209125010255078998397090532295398217183492104397770020318342585818353803697259671394798250272406760341074684995015941440236724601001923934285199604521309339182000183894670892335253803819762507467683889978539137858498020993079342866646171694291454886696864990297284302408365391995287415749806830786151852864844345964357196510573417165622189285566721579586123765026782439311316076351033732424437023366362518642719416340502870792475264429735184404827517996997711434417580835737548690101737040326566724194632904775312111465728827599190436679796223360824650842732550131157448377051417510305969291794702339355013833140092218166006688193473306129640299656979457472551362542774639235899023950585736852100796216061030932022374252306120967303901451049705738767040786998524203349552085038349197886773129501174284195463670883569499627907745223251581751495090383779364141772350309278928604036031291199250106195485414861281461707038717214202563050557061733183373644892039851062671864935999995867810587626943883294424643115172921179780447908181432872548820067293458531164741569102869843493449415310718798493550545569243491744010583484369248452846931537625557739330029022532494128828945524749920050132518421204055533711300572450312340583000950619072840469290731489264084771282770752686055011104922216616435259119343674373772748819068372063326784475788910596946487568781121637057647889981235168708293101609642533076337426803955473775068672977762658730548144812244376237828540839240328030747039672630817706522196510693555222155534612417196379262322203860258367364716758587069711115887790051908284646616140710884064753052759081223692297547863636725146086143398804592933337672384994155287337496595454068669086123402852275327237252877691262529615995662643301612788821141585381980626707097439059960797961043927553490368621244607418189403639034133322128655577800936489407998866510056325833510403591372970284658745229139662232200977247471340240304876013257575585044241056934232850112712110283250200311172592565333118849168816052929733203846986811003485458473204112361652464672846920074414627720105889205149329215476897464762577269474029616628184875238960594051948063504665992521584837159946828523601814364499749066123254992627255672401863169761586347611503697638613631357948271271077394555185805672535362816198305560370538853515304292143668479654832441640279124726259165492454735387455846956036874327627756070911978357346253505576408339770748812786422055725567914864253934715760431998111660913427163977745288855639902319635432823225035606056970073801099968283649488572184994632163536240736215746202897850554153462470129398550573691185423614872217359033624488334358702320136437643805948866484613902101934597194126303842328490654790375423186489734974440222262297154834698677759447090816189121039397827723632771504739548185745257782753363125685852966928306359171308663287182507484869666656328402658564539667876260794594969897741177726254643423044869510268073069220016559371760752083133237751278943508575691163570216737883183298322554889054607397526485184183207705773925452624173705969008276972456939962799453979416131935223740860150454099402787675880467218508366576565883073682193043589301254494417946832838905379795798866410771672763218759252015044071880269818482997686740473583177350606905386181990347911033778916336985865804649321136915147754354398417543506838523643982142775113118202503908277968074515801379775555925737138974692442116099667090714133608750875544464977381782758360140828681579977626021659671184823334727567316537435944823071469180271197397521362411559219272404060523062106870301767127955650168309524884286877578514929701797997037481058380012856731208882056106883960267614903750031839455926555058986216166226052462162987930725603432435862536010409101406977708310971202356396360672020777306958940343050491454495401378347211951659272962114433304473129405840400326086324882895456516589125843874318192239590058533564733539335144438612937762784353147690595322047235329853742700740878076345697116424034399502883157395203994521655957669487867844530192383723239352422258329677273565837425275616785717784288681084790499231515440760294163181872208814544418251333867108648245567967416406815228622205599341551732153563580051102130029080596316816597693336378883100530278351803509526759245579986426478406145248276021466102226151598453028644484722691059920785869835361890318645887766075521618166803153815590439084598648378224787845266202277388700063726399520309263598239851431450201212346255299122074464575677421625285230984883762922137719715292477482771556306181223290240856467240153692430079621975114184751417620884964271338867444282064462843609292060406471541451419165839063258383049715897771650283175507614420615921701749726250494979064980129166665148648781562127847377198301611304820442892996648837064252966530660083896585338930841774182984001593303505463679938599041390331940404218056109358222405225057375318816505802034844763864486900302217468852389621670458765599285042828053349892522063587364830250791139504178452655872619156123857057793613158644419560489515121843445900708827344728909526148452197441195685100073279742658477981310136054644501977674678753520808120753510472675877660448682583760567628204742910220279494470893291788034420301443035491469568848687636588604588772657185295214178967206918445363701258475240103003552469606797617099206831551168345309684068466239891248391069597793257908637301361177457421844982290521489707351047522597795456991311440232528396130612772319916309418968046578939458694431046741162214651808842239937453920413628437819811546392393505712136492193997858561843477644769527691673120804442807630670004468646496622476816143744349255202746476550364224276656397855861925019520248840192318635564456073964111368990519541611774384353782899385565770242550900276460424387019976821592053045334303488245934481828196203655624172249325693679297473513541951664518036646670372372810794589264018334004934191742616041081861910863612719964752270928068922983549879892679784341890400406040022312008079008803864655112087069761673396099323754435270225990775996939339810918780732315641614680956932615730583670449750826866292599680774632475795059166262548118625341782081846927008660667735407255174932815491116829462653169526830014950015616020370778801231546627142047629202646622016823688259929020911648859971829740005873788250959600923757054605969073217635194990266116112539969446072334579511835168623562614536262630263261868261369365342959595790760810490673848445535524398727784898789266682465187879733302383570597047314219563044837728903219737279114560079621332618992100330869907400807818674553243299291094058018850350460449269652719466361061096062756587179211524613297399667597859232444216975090142774199395879558973556884420213495468504888501926341058658541427307627452347295533048728354969827151367162543321573439863106896134473802857772001929440818400784535962392700756213694743893374510164412548321362444586517203036821689383959472266138114506217633284269301211117285729672929256135860079927410360727010050384234887997988946783939563165465872620092710366797293749286038858605483764706105438305340971781544388213867260644063632446841103906623053452895533536428999378972328757703933348804123112171659323132974202262245022547304084685074831386058930943626715619455996443100119982421844540260514053254901425969575137473104311849555655800777012901755974609149698749751568491904705174594420736568680520821522408115411431012225640835508060437393540474669375264483274559513261942862341968906786173528696926167365055092317708906569970099987105198880432813589570115013538476909227205426401661267532596889693757861868985707126139288694369859807279745184043530712215244772526545167879866836001060651648263358566466943454836080656658469831784711938721958196840828800477471465721441208733566122120780930147412561468565339495487578532528869934211212346880374871369844583804673408634301027782063965299776857757697292642723521995356074659173982598732148008962645601280821304004748897149850294469548222840409509310415341714756996350891217154221245563015290627836424331602668781227543251577795332810699553981927005640771248578403678820603921974760954688623232853531890560157028010336099654563416881862636851826036204164414547379222829405921993514053839015257139067230087620985790016326780374773545231598620553196944225107072551740641565007191188213060851336141333045676207895639588103115617020748727476141411583302435878233432767167437220649266984717365397854173944186884169282087117701945537896557234905143344065467866043284126839524931620073270941312134633209353003870803758761059113422831016778570522446101804774016966536307497608939824409016470606905837913017985666633584998319193354666027255083567612392004162074874636220446888365110314820481562187717421492111739963203823514829705510632761195194045321746390405478790982020784318743059741803660088744684037233883187241431705900759209872064706648362957374611001584810119963616205300080610055460398134589984230446650926401268808756389523214446331166463460753711218235335494340799109966836801401901854625138414678449623425765582024899536106202409262929824572180823830716293158912075203745238935270899096023578015118743535191995364071880625891892921341390696341748702575504280288099126931069692438987499309074613872377231280512219079979680722944600921786720025686106600222086845184027807659337602972708769035997259230506314577569514826733235890347468003011386386697038039357596785025103378864268724370586461972317911955731015667357169171685186011322545885182595245945000934220978634610287550333521945708874213988744221687234697197780803139405185798480698031539369716155656898822819073510278970373093430607332121108005032633130450215899515894027801444083750582424470766552682999484726029898308591604299218777695619370695316606598435872087484982160284174174969587649711333231011855325155939300655513978939461454676142980738255019130347569194131930971436497502853007678270032108354754649221929082800607047977913110953899637141455235929185694380004758133127363692074308392519617306036240642830127468413563816316639179881735309147224751304545796306224227369606271221269305765523810162047504900964598158054512110821994896442890476138744862767922426176574235834103262040656010614206259105350991212420217737536256929048027584535962924301713073264115322056184955327339176322747371453970193561486557498855608748323481847118184727014005720749928204865880685098630803639200553320936759403978731887924803811183452280490762303443099330502632352027927552264891036105644093158375074500644043981594601238781588773917422747272166169494380583862701224163098383486623071303361381318154703023876029714755095838204515436868431154348626434352411384162823601783205313807721720300047466117201407883996684401060591934122172606664956876707291933651248712787601047451320000468085071446354295176631783497626047596037996425192485262273627319806561551831768350391966703405421829305785427828636314805495299789970762991643176124545306411653387103957056837991267498489050307943203355379131681218071228175099932701885910011008204443208387758015646098679137238644412216107241255969380725356981612450397756316977052452390641837473477877615049234621127819322218629880501155801758110460792984933319639298120149067929367536770508344985219490201901141543146372376306908370039878431589400709414754449150664624936726111758922689821819607911079616832679743996149549415145721126012196329101299852262949269237715158515357416044439168293167659753203617077743528033133577381923360976529131698944045828573263196280331592128332316118904533847222043074644860357545513564267892111152593476259592800303659641425449694504406306794415725784828793748175814113734502677805608867978100860543969870601661414954040840568979007034123286693602868294941090755087255303112713866925952239449795111218221824781115974741811348191431249809777982935217715014873998033604458126979473617180940997353724446997125144174427469675773225324282518182022343678537241526232286818542156048909840899076132750998859445229917294818632937902483711201028436923565882356656666351526091222685031983236094138213282487678937164623002203680700128307952825602273175400612450326681457016537602669187106339135886772058871997043977069654218666319372100753043648981722181216165668075500394266373131133143222568564056574427346382434693104004262493745912144602184575175665514339620772741141742473396270568088622610370250155525211725033430758247082041249658138396339245985271760305850183935477635354879229521792068782639888089726721094231814361593640913732863741737280252810835164057042017513396110514647324760415069325305565315189948878952110619297083712000895904862682230458405244978979336067064277276108657592199837877491900074089379669696798257017218384082142253529251948467930804282899508268129861832930710572058651783931446703750011898458125581667034360360211759944288378908018386446674280768461625789181859295029314762054914194971741426000385597381103309553452409065236038465456950595169495582554172741544348676000771366139947552182522929932786380852103611348230604268983998065375891958011978679454520833926865603637460978696360196163163774981974768496563015660624512300533573632959094537169958114018448267171380718283099094793035733601587004228272785291307535795917158370892787966071660818003665970861275622541048886889066973541225219304486182159612165611003044160226123716623119606104831734473499509678234689550773218496227176946422981938848413699267509635018946090964388319640201920500931058413750369035522972058401041834341779109725046825745126078129932499933723679544375371785356988432131453383321136213101024532810151557516335108080687964083778404698368798764512181073106101720938947700999696427832929611127239166222440017029998908843466059196844018400507324957789159603578991628768541636875418282226066330122406617037654346925281441927133898420780845805320815578665487178709514993611981555176496350047798186660020479916508207973512539676094062864666493163669002828120944511646334337322855871705133726176732403512488585223150567190444870469225715665005168941335808759049378697160494999323852329182153062145291898572825037901633200362585141540295428093344942131121441382381246929541191670716498253408063716515760703143091679463606162248481385803156866675442602230261205894400453862937724079329462550054322109089440409311994299506821126165499910852464700240218946400523537993407065557356888331895314914430985477639625613919154758684379044921400337773464995726714037291800178573244857816915608346911819211153871600869785436455596928307469027491160574539901654192517239526893411472053622362669326168413596456532219499509909583442562294636926799290350677693965145292931293090524755950520215531255273498542362232651113834833298531818643676022114761749383189649021592053591291035586719685263091973197635669432409674602213376238935333059818276936938939927117051364703103800963739839191882827891412388319141623506190534143338448826790193494817229526526805695448215229752002479337919968862157108546554747030353482767870084580413878789479849747563121112271007182947028004138805042060059558158450614915067565943705524632117226025235449691476079757649497847475141432599075970611251789182042686415756812816279501966589007874188327093429951640813967757527695190184208551049120755136714827004342833688134780592993781821390215968185736508139469754674489025917739893562669257899362343543989942000085831173604135835174826796017297601323000774659783705034237551514580641594201070317186191176977608037046693744534269170072314043799425645404408375129322468059466924500429688467064136461784516966308802989701416408689440447321270048718318560522217086186949411432201874257016771762027902186115449454273485064444749064799363764782707341708371679359859069208463872040043869097172281644913087955622669883713193818898109570667137291466333949085285616798938125918482950003670375107630461585082050031061928532520281486782165433186809583628577343281522386914941604801945117473538528892740984494959714930485617354287029797145990138842445144920736407604207688175238080221653327780966748646839038378840926271762098042653070168219528732777831025398071115440435500027246693997925199134601193123649228729916581503526577023083391730791876740394591593741975184835070518155808831526938778886496885129017830284208768649821029793951907331256976832958156437409492293891306760195523153071989896741149231404215409277543823981567119747002968536675305338831768403530274682752590877392952086952044558468378717275143969147054224723672042468776451064454254480265602641442306451752318496827492599689129533612661111502210695380426967299355615672272975734170445028547220576868125816265856156594687591089102042027300423494446251525398748355749848196978512037105007724937565518701663391611625236056390893646421903615101501628396464280305386494052248083078535547192236909210107432712030848812073941286858081918894837107569483666764343663097807369230147697480701538658990725180134692079686088582500208904417397570940240016877563595459033736800440609905882671532885632514033496927011261483466159523591286283979703194725640533256647232562574679061506063241384617708377940248956497378222002872062070627929989835143171415015666300735129300560999162697479495751613177755253542336012840906154143377910377359911749046631845711167678035992032606627466707304121163982837953828616324499435392694533315991982427141566002824009341992916459374268324432499386964677666905860660999963930030608303205033084348822696260733734328644694415310962592378131581880753067227480855836485991977171544877129671101961560150217692107047911410703046685814704903135287998907135407013499080463274437735638873937202057368145421225191747653153525480832615948283710241757912399667705255615788791507022218874604686290014750026712620923833172352561757924657843196732580271151499891506427977942522470634465803858390732422221697197931591697763192588575063669458934220607544449633827522902249364660512560230754143871260680401120071562762724678273610081617470732741096814553173768917303723294640742947418898909251880960764340091922355918620888613579196143895616324436873068412585573601343333145805443351981325054429164678872512776108635963444105051243782547507582991190102055762050430727759535388786045011635909241068816957984285168106523422265201209757218256254018898470137043457338884684434668868551315801402102932677407346683081645254656737215014532210508302886809504756864456341565452948820009703275705949471232968723801751284585352206133230941045319355905994565418880646455030322723058496272810810095993654572670318918898764014700991155325452152917291425544157630245232806118364207046838100235539584314825031612596823028816261278548539727557657722796951880148148361802100854102885184300799215039373538616989940269295803085070075833748906356530943735033005888421700624758660856027703761619847553769630745761832773851556996152890761817671086883406977462502015850836796159340435638602750021315739396914821055798818912435951304740958453953815282592948616724030870662302778641557782584998810029949727388794857789241711259680132915494980314468515862907884494325387655682084853625683812350602174454526550792822744951140767581076523090640995373050035667580967834667493042803492222944879612999666053293311415425493862597686815023113705307269930990209859916559153495781089882082591168186638864155528146679903195777859160606598305654051469545390147999225857895656485432665337123354651556732092177814840520559237506452050157122099955643161776715847638553721261034659740937409283191151157246482424189816157439796312065948029437866140014357492031755150976499498414157391967395592094208148302240969920374712763496563826015352646104163641267986949400204364785718084391354204110031375029351125341916725775580030625129144790988351084312078428899298780621043193676035975157936944110082784751250956819962602375326291064524593687807116210997050944570415456263918893702624602250141306565638899898531590415748483723440510645601725287900224190751037899180818583215281874409838591673051715303478173255192199684922636942915662984744775822222277143342735064404058395832943167804862941825200327061840749430209333214803878327719507370568413127386327110520900201148040179172170868335434225811823912306084769222360412617424209133378790258938617918110402480747630832353950356285606215301715425712162997589184680311508180977650447678200155759596044978023885158529597710194106594613145006999514391818226132709363887437581125546016435405495332049119900101763157496924235315246932995125965538823648794807957040639899973884911604429632502540290084504105760621322327638264956798475997276064841973399274378862101714297836037590810925937204272905826202422859916967680486309568412824712073185061450210454408639833228211155754136361003025130030286665298048960080197691863498837568832287868431383023069450093030592164916075260457101055483265935230828730055336844383916682691806033515558887452077993457549504243285029856645536277586334773696169070944736200042803773738623753461542776776631912211230605618256188822947889135777341355381394161995808060702942445554565399829265155215940208634840921231846850894136949378324914774300609172577394213356013913893826893194351649484099658700533782398207630729610068288301098945447480642939906184463968726478241603024886504333955295785889958173200049133772260598635127356622859080197254226199929169424943543776642146312522038733205248707686947784435509733106639595206471476024192589642411194757612483422239676055981008126718667365626740169713259254297144786301531237827085146399102289937154161410700767055543278705990748810366250162618160083101829349506932686817326039514995382557057394249888198313034477659379638708838709336021563668056956686487919591017668372490451204900143552257313187488227515171794552138109716489919513311427800071635233005256802562159082027122362136159990643038531991025209943863259498111001372720190815932636658630159914751075560843892101752112378501328680471788554748787295606044298858179377848641427614143304606431534268645680909365922661631302322667788670667403712081720832857782904165146607212919077253920093139877370817495436942454429996627897836981412363356392954057289887795214442687317681444962504947518243797464650352746617665879690523351833485470094180384548242773078844761247193730925748058740586926138987728058412690465506453633506237302304083141209958508248672431632648363790091640646905432774173459960435483716619824919581245049808120282634129693246081473492998267728249361653627935477737905128051194021351661363429583125481291916926295472086341134307316945611426318196710075563533073642263752548205421798447008048044681631606254986327378955083498112433037982735699400463023168844963377773416412664108817537880456538203909585638746525007334919353470634944095708238223364088407321721760297411720047230323009595137017703242785853789693938302459113871877780990067403314596801408787927914477917781880365637754387198094492470958958414138127109321871910014241856552693314734039623424961271387315811243625196935843913095967145965303564406201721943572680670247433140287706590090576828326117327445112572185244001259576555377681296270395087589549103656312914918305273949529164351635460881300650985111415695039781564834743969601026898529395431673594731603650585856601387323556053571031788172673082938692783806203008992699290269978995665012593008679253087940586092052208918061475851605356655930823324742733267052403878243089878478204430769118805310531349327538147321191218330188021151387199323942944812681177349239453317010779967623522453508809859527950130981432120540230785635994295621712919276374771915747990170479042304935276350812696858475283646612353210423670019551618303711117504993069577716375703796430510846310391617907145822002459304618855491879640200771932914383263054485805041001105685905315417829116377253108484628482291702471102467679673615693131310935237569576158652177225294343015316764850049873786692786157464110925645626724047831215712867655177839560046691244886599049003384475596786812972524076276960345931231582279401168273505484064248157539640936539892643446601662773236177218515535724766377342508488680672894957884359691416075472762981310869630094711104702521677311166930629800899946559581623004797916518360081975044302406918641796560544885129575036722314920850758582648916639524415539254213143663354957914188742351957117217257118210385252720321429443054302665231860621852815039294841709488192013320472423720350849372536480561345817121365207579586818807382539906326628284637181611555912401279889828476553214921804594307817125916357942808303760818458124774469477644216582249372711130318941754053609073117475336056608061199429477992851345800953164242110076937266051740784397095596312958495326735145713514789311180605000587326870950133511043560435861683283109426117938078879012260132181202162086874558856126132613075836990468295880730558472018172601828873518676879878111717577203526491151884691282664566854724439538244544341940823688409913496984849550652652822111160187346867199608004977433987147870516409217021402736385500734010971337478387584001847420913815455319992447316901985823856249500167259590417748383957198682722510992305554677932336344133525594218412768307726618081643824896524901899401090931569119856128526549622269864389784565285121272318352028062069868635162768972597359887118041344056930287343170746054419229116279071691205077898298666710989475938488895258435132935434304263629289350382263246053720140586424573780135165022966793615047893927156247151024679101131593237274735101308187475538129017624753364077955658225700892298085590231624633584886475810672609477232651163796672530075564559367594266923196610881085497714073795149435089720601047418068258729766097493691650988443051118176216606792432536577439556024338013912978274038480882231599859133121604222278798991446668933972938423962466040189150537097277275689479280977913562850558454932664078445163091445535098304668597012802748289491928337561929446225566891134264297729599548185329427806278226212289430667562762426543218639524352443803240032946354808189594245708523605746298281686408954773210977068302875914072030793574826265696919833534641272977817645059703626435262696970436458319366072428913309955862402522219703708385117537777059829256845688664883579537625070707830299545873286800584024885557951725253146036549937422173460957365066592821191759658706836326393023106802421722735043411644930657252748742993718133724146568060361868231237285950037625303088479643871579351860099102574014112176852392346622899987402559134232968651557967646421325238725832562085052192210162540166955072845342914662488415207475731867810532231255982698201428331480192310462785351561086224072046174964891555424777010590382380599782877153372385252470533921168350979537078446930884225326604324258538414340170016179635342631386881214337412320898337559013057776251857005965836123644250259775070566046804555567765726665967735068723435601584957013244831960062712016486535572088172416121374898382020744374770522212306171299857426947345939353694818689884485925409232693086020235338199972179199936538036709811769785717835318788037585874516528196513238113681148272242127480080524028980058030504860095766823355835034632640546246877693749583939034678409406450133278175599122337337905100728916467891873628864969550320559659371135679151888588704111477275436705717962015380374810295303359214384107696234041404414745960423764567871591253291540101983909870635711535107681596923842994035254280326967753684757450028020225018304149292354629945681489235952338210429195371845054344200870066966685591671218429039115067630273014086284997283579613638319802947929033606875787218876399081231912849385602788321242772082134874289298699397393978890841906630501578993955928591183514642509910899703358064176683134076656136778745862746958568080758011087074080430353580061552056564841277254971318245827792224264372902281132353285306284657005200608740443295015680494678712484352116817019426340591276023372537769371324541292358086262403689633126172236295503834817485270572792189405811518167287676197370669332664877584412604992856990544440770965944389979787426277370450243979582797094708297998185493431598938978392509900130071416087211935758656866536150956920592849626835063270726106571805434937721541271048919890537043580158222542439841429900078344310540022953699790569710881222929404579187131196799596350804823412729511464707929447068738307768934840440930643461273494151587817011575275535761113754422632627407564258901229247505897453965941030222030292692495775231223850138046162518610735756995198273934959571712081110474437906913404969547642516744020312739592962692393731312738661406254694931084857674780034076637009759547266607822105318693617712203156427607630490414804690756622499793654904209016649063617828349267305178454097622269734374583861583822809383214002657255620622937221985365979475979325124819020059605645699143217078886794960046869366331405607530923665423430987105302413967009208433931568368518492880359543579935193858053168012169536542283085961573659332612472871683517094867198900495452667225745330995051517657253830092727917454015825545671631434906318762124793329009659995054827143660535529122603182179553597038448023954640880370563793554962428698654200086545004954394460689444480006427120706350001066463478841409081927509555550426378036917993593551734192913342813442313792765688988583610258167224486702377271363038633685313897019698714000927385354665330141775767302909286055312162727971246769958514945439957180805998889375422125014398782392964220602489767513575914173380629297399973357280637927148464315176505417669188848530432400981430952533529206641724004775729263135301419630798182463508491707204998178362904733514085065511408515172613990469005185751684998643463600249110072662633824826638161113322411330802091682977191972532507500411994336863517903882331145032806139936833425238453972119282093346628682669285623788738613111643823693967192332101304258356973857759262937349526556710825425126266189643337782172861738834270008521153469738315444838336136746494215894739812290519255699108850542077080232428445649927321512331725452043250105326507425427078006754536066088465017509907509786753280191653923354061693971521716530317286374376795307507903260980810278306223576661997366714061450871529468766403857429421132384579456995984734053619786865172317290163000668468579359916636737330256329958251467744179175683546025345871633545675216606131732112218360563307138827071941114243573757339943947870717478790367946649923730278895405139578164329494120329007809780253457862987856595763897796942905901396618640780816908649976890628574581219523067759126054257380869310650393291983981717682140837794788824187445911964431833158764529618761369456317092280394834866700485232306063755960579041591042615755393634964456461601374885146026432382644782979699088813934444037458701869726630592123507679608435366793426973522440329072270910614059771015229151884183561923961084854429504697104496255759786332380582196434621856483749095137267529138248672355228070103982116772631638056000090846066077921362462854898951768883453515630251050914025849292385028354712995912158516045425478058161955768350618777760518747624989813704219875812299690255922464797712172629733892953938720895863153973545790308559128803148642575758019447742593858174682637407678174219241473958730943104412044011078214473729309121552047104502878786559603982498037066697709516186319738153544468999742483926657362806961246750563081032805793811111881171603581206467575103466012330108276145413838262296483269166133918142523678147375055612334001722938195140072376268391085872432558126574696012228613907898329425859977067889939554073929094246153314462260773041124033200351382816651464023513015777431625972269072883683196711025620695912919998848913270845006677379289688364201433895877550101359204905428799568865305677747164121644041308493811754946745794238664347315269246509441589950282071603694922663568569526831179894695268296942536812289768422933201686668070162723236676880686210146214847243159763152977115196344939788626495924843884733853450536815082432288730662491841916832480082384028111500482419920925439694150665278893569353091081389463232933953636601460034736203693194246249732434061035583369559845920157184357041129321167208049467964576601255880829458218610035793784000474314520461566464342111661325111717340906637769985465234713504400743343588290882897374806184321305673535202937538721611809026053004746703504034927387959633226944117044159205558498774717929327849304150233101990446526316531144319183719393260920025056795017924343057981070061811607855822899960175099453472040818501383461050807161789022546911413056999536798386809783883391278722188388467683573184306467437116690650162889961700052629701144137334835221322020103841868253403666306179765132165750235583411717262988053707727871963571730038151719379621654448532385952105057325934659450233901885312096125596997236700733386016455647561457762897001804357827179785110274005134333402810654178068130064479631625077127195540977687648519635745309974769426139444479811901397183069886499400830993396905084201613191977501591260592483787057237306591609441297126422963880399938732693139199042466368218600334642846120095774425352792997243343726397763265222642581762238878527488976376087081464705263823124255577615164385428468723747979984324276024087020119915132999326606312821016271132315078354271497529080182583524986418955930696107708985567941524270095659771169459975955315743533557413612975200178887404483640443851250344034727216881897698573296813197070894199025577011741925631288300141747802625498981293160588122795928165073000010377742771649388571966845109502632256548281244302733211481125332820832246424987655694419840953402061184189271582361253470444050515619328933137721835788474611613216507473809398647171346154764407827092203215900068461121148523141812580617010066083435224535847085071449831393978076295982188475626483654026388738788075066550220933369353836396141704008108441597777730805435888820326465345553176437882340259172506496842378543130730434088724683723997745844971263958017109686417390725185563173753584731861063004686044375078325851508590853394690983186137546815961454111037138098615654819087284323441062673398313015149596160817457622687173006522977060975567939360412802264621140575423118852281808487505376751330555817719504852152828532462082771045348379757468586423894260144825979159516090870447731096196272261645241876375888035052288791296652579457114940719144881433674137252854335685288536466732454491875514388302777814262880361724126271151874672974682861630475584355866202872648231048392176164717592490002863759545533871610785863028883823696097779492884970349746588523500386670882500598221325367527327950463856256174276381115743507336336390352387874055656050462628323615323373724039033324463099384533514920305518306844839444470599457159959958136897657532242158126367417857267606360985803570744406160208295368890663527163893230655430430229572459567676505617737885329912704795329006694864296766784348205375035786083988938619931585360303804754694420455998278225116106324588453878757350205518889899431302990491956351821526062175738917379512745871633186807282148287067558708944601815605857122201118405128462546625321640981812372834882288139567586312501884988791126261041513647227454086863445462449744462312551702479000395172728692912746057025475214638770116926706383498216189085749123045180217419676578004275172729077609659712195475115013668483727234026127737334938240937607443103996798704899637395728352265605583630356493568438213386198092631341886537528942117716371847838028056716840190311132020856988387272606516456785793704525085741721003921323097539845705942506630378535546138314339542542785648642755389643870122868223352940404576966179360454561435850817025130385517236491594779407643702085305375407821532282146100146399098676929017499255207432961291293383302581195222852793367154519395512758696808954969889211630831984416325712373685280124658361281183439596468597506781395861562255390332698099218257731296353298339015848418247410031432110198702697280301442854664266425735639638973624229589106670319436789503993269777271718991226311764798844648411486560862448690528771655221393235798551216093486102620801690103673973753441855758899920937443183513276753746332995371168244741541299332056334069971307285260333853801027314819990233403140233499813466323092411194362191126805355871468360654053595338097427943748757993192372053178790736634780407247058271521562000137690837515921719601650354505464327750597853970120812447781943650877657154265713688073350009193001449666576751954755035915889806247957360219003677543231262646726413148185217129202276870181638973960256325685993582687292529103655545399639343512481913440529364647831769912036753055343612758448247511238242213988625875419007872445265573423977015216773041518112870669441407843782882564035148982249576872380413730455399844546705996360225647537398555040646020328456383668695221905567972757281714702456064870845260587975603716390852716828864112769465542831596301142369244837778518522033443345546632494705667952553540502639852747103656602297179767013518004272676679616781430485830164964656627956542028415470824576249911631097626687630442770757649105674009223782069533661951906007442739431384046492664779921730720813879549137740671873766637617319193385880067360927907401095661207996763603121763275193698226749193675175907768898775030853429277492137481440062168561777796661431455524304623024976647017376557750461424905012788614788980540147262395115748093536795990122164540157814708399687075364106670657440422249003067356405271041586683050158195432707060359942453041986005943437299307932187833314238859203451903144319584230679812011799927904773300689674833522105156044929883287603733186309050022344675637842913140582302956419608392481234240456238178277161261778211047009871219830268642999075575176389285952166313465535387183230052423053614375294554225601824387699388463768153638644835948334822853106138137755149552763295966410190921572296048428301920975200511089407530138620983721284636498139131044335267805995606100036171980253423287251686345295942257359790453243188134516922979396410983587595910666189559931532445150191515775800002316615914465965177600722561721371315026525147230753126932679146301632768548543163672799762031992819318342496711993823698536781634073415652846835615998467599707799501528168564892767521534239219261922664010625436621154960371022205881488553955793642984756059343855467014966328078247541720618913952786058972054537752171461367910173234794128929837227494294115987027747399769068960989350744041076616910404082839783661926315522962929556700899857138755305573881673921900443271621933271455995817160069869972253645267214142511687223734783818354959180052176792523184078955588261455396533397993536077308436506259061157665512324277998533595667303138452420978719255521015249107208688449809616139145290827350109290483985010386047595510717174013669827916851895374294754472793546720776890534607592992857894587716361407518941304295430730114947064361639284932767742113191216579250569380444088872022659764531626865225506442824745992603494239653704373006941143960357981459746276483753895646288880475724450792181959569529263011531546539705722738613386972933396925751182429215533509356743664748739795946169484066237063127222063421906162590123563456402611254744424050237546776656011016323967662570982491678043542377558826276455984771725662462812271580530225784484466903318426766785216810203254477174904570754416615280530628720353492891209046585235795150713206727890061691670025078407054832703168121244907369769246585578148092369218220690436121910869578266883372975399359186096157610297292967336513272581388414599728186272754157821882375764679164809658766005262396834026892911119891078535343517537283114298278643137283508066317246085481809742906839702369349428588280962883795209330137098000054721332742054987674781758150962261163156772993877401067427721606549599886226779457588431197588810910086420448135001409632199306025339062485661385702866514672993785210676008653411100747386007083681706736880988486437845432354554626824485643826733812464892260196960624138089602499121343574101286786603988752824220617266563410528772763047538110941477584150293527188513863876500068747184928485068950558129751937857694315155138760177343375285190658776812102225753428947849352628005911192088499869703596036917437170091398594898195461678738851873975332004889587155436344573251051919510044484686637223785779671407402765053437475182128379752568870115090112038902612545167119429563933533655504103409701430789490970591790019268724720885788074315649289033080020631051742700213812803608684903997789250240054010464535534483450439762277963618227060639936713496934984384020651635257010262634454047743338135559304661516676315462031118430704822321904905056339843467142439665410543346508739053312641211255270964316706397881105959185216962994396865662165996995415914033745295699191573135879043247651234711112562772355881606044730304956734064403306884578076176050993841513235226985450552437830297950133877106035009337157077832488232835205212302406932343851203367966469937640984345499787923485699684734862790884398309381708766250125614530072233279516994249291066461706804395017060313523823274574483266675883564719738515852436708107585168196117030812916186680127165126753192602381907980420783849096848999288159422090590956803477448123123256235886922950963342972328373878905457927695048850454064057713375288164665930169530188232675105523708767040498488624909439660357784921122269280454811039768199941748645721983542931184741077241207610649893745648206599572680331648641621191441992754750339532360379799760246851842515624412817508940315432668776697261562648354669098449173356590068425958165213139794324440737621434227012441839664160266989264950033415216077422588537475148891027565480986870729118235170723583801815323321573134446390533875256847194730213917799856929265894322055333607944411649150209615772775951009628514185847737731435321911744906470930298521738561545397859370972537576789811555320725489572748637782534943541903225076948553098032364683515284329796631400799137369761129936017003853097289629870668028513294216285284033267744033470580732255153232982227767799810712224485813079594412068592600241730700995785112512776816320513960291990006002313856261286011398886273728742432630171832802906168328707863743827800984401386344303109872187299373100132988411180364186061144029361111015779787503394815008914033267469048467588112325657098362238727164412060265755299761983262555034839060636208040687663459484457861775620534220847560569163069249061491245784981805117295217581062552993700794245406119551709499042531188334532998587622242359265163471446023108322399261341842896551867999564479252406061631196900903722114699973540205471114108574415363643604252486992206590093333124745471551067703483110858931278397789630842151376219606684354539447888863122687141906240280266435810666507666169505606847321005744895026895343930443636906493643870749821451345472989595459110625317685015521599244678848285037872584811184491049967651806026691708432693006339710740624439029921592506711553563263021100780506839473793953905822154196130059253184166493992707897709247802031536806559932233962697934309286611085740781309382219800597533565001035536658682761550039967077824702662516852599410322252303366695409027753060015057620123501042678112446262541963572775571196482819823746140419953682828284608772492532918420418193679644188324082249378380425751511340825003496350772334724376407447617022260612068269271550142472640238649160790713966028640645215291740593168301252255673864157070641659630001883422825167428689518380008325869406218128839506961985889202126040677707795927050169433737658016140267175812705700711712589365530719249878552884281135772483622182306078370217818011244551220231815885995847431476320403586142351782070022312086995281187383511854478784671800735907664400243975813789353099874830236776647721655218231963742522803327846485131050778379040131901197323423311263717503884499970298133862709355661880033381048745520783640926063782544464538385609555915825440935706033840009674172730793939310117897819985919395373243844221530593398774643406741067860142785345603672251676266867432450792381465929736179335990562979231742012278417838832786152219787863118917005956344917367667676394362292079531127361051383520527536410158558962876774865744817985101813459354287208657983128125728429357033662539951997861272231891874332442737008263772506973660152647857705845368414438261126880242435898471564027589569068295889071209524432790450786617924816466820578578741731663033522489302541730549001376397195957246280003266123360589157833295870773678608660335815092887293885376496955211641459946880708051609091164879559517074590607800069456707310669199078261879474264857772273834909517226627435304178752489472480418689092435346031683341637038631839931268021876370330988026340988128787026935443042593102638449325214069425511198931333060540705326672112419839741385572372824739880823202039552054681620399765800689363110881527051567316470622980181747674225289865273143388940600263616124651442244418512496060779312918381685750299379747762437778875677599650583202030059540482547224806940857672596510628935891172424304615399008425144483820658119310184009747630301061349402300311559976465877451624616131862577709711564580743549835840775272320629842899162365776724091222013019553662745527472449175884815441697437961592288347707423753186193524582747744006986000940544818298815457339154380903848846224510964818114447448306344801349463036606633977457778868140678088614540419170246611207943956380024085737305003143994722289459130173484466407899943059763617689415399126876834113430586910984918676744428426160899779870498308550284705876212968297390532178364390584507937322389072519767142024079681862352102740885649796227308571212931380429374468914410293482145327089346091964674097794731129580017687422401608898716522092035462926747067747584307410716979820641939204527580445471604888735760144177664447355579940864886585158250133729022666268539140577467370458933109003272222323243148108922088465035059986742186523110507230589748246130135578815986074319968739777696934000491026365938689562220526009541561314690609570201504036232289462280115994391905657208595901230902863580814278146244869489093497211631515294012356937173228291808697602356805701665095500348825289617705970425859645624924266907220054251141624510598149884977738960306345225369293264501868258345317828433973911551691934193320768602413625537936591201170899579110968822545200552926390794428895694893058894747521533370176474006533509207554771257040924995438434384259639688315491365594365301697468870754697784898879680522847648808735062781298311731690072239775209870216002198274894471282748295884890961159925124790878886697707947869194773587853154254525138926210483608296197668096694171794673029513301675099385206563457136393085115437989004846458287129546408263924894667323422635190540329860411730476080712554883744148884983459592664095550947716940633382790626856363680016746560703683861072233526460617431128985235509687862173749729805286283404553346915840400908828929131883624447300848580944825551927462726450745965620792680952726778346068564961590501023682670852375696788506355423238778604840212221027975172162077381800154841919376904791801867339899642166766467114709252790282690886774335905656578886167469936849934635435111970165851637443573601927414932754955366086660035998787180274477808073392979157179309989952182351142208020294297440917607857895258387190312123222303616275514183604655946074753241649915845919790107696343202140838339198280513007491997350801938689952544132343936438142678102563832182734116311846205598778112320799660997104292007763014482720030683923200537560935253306892845568117181022727853160762874421378013772928022984250524932602389992278356434129723856306812872446447594974819587679076471145943446476523279754707913966377670954929064784694311816244766225320052191632338033278679328058409318760138989990890759993231052557504207495326973652062451647677968251270425671856890800346445446295988155436487665774500711427148540634942385382837605614321944524117973087348707056214705037761506288980508972755863511817005557788983787904364198366652196871829722940243880945654726858161922666155333135170517393250215148243301724915888899323572442638321402311732106304498051802167013920164324127712493667901299903654968236606226833366864720841735897508950802611010640656775850796940559330653526145333289472186331180289152021265050948870353011740713128254691317348129906376356708919198175459138282988322606648451367907632472503024259077658953525282284989528185421969732368090245757654473587141289849131985434255881089081262034075542643549001621308464826187359093804597979018251568881282099749332932559696465601471353562025635009958531600362131163301460738294424646692220856975526960573039079960651999088286822353354032633641938518279619717667541533687510166523059442509995412221973279469992987634956755251606813005429539972595017624599548204870463047650543223535979574569405738238330820737477003480581565122976666723017791585327164960816318745295689680684361505675392835847532798547281971554686079124347434343728644356631624342825039546338410963136270292187267542730936554067887854897627953113615527460466449493644095519739581693496751978168136885580975095908363693829530052316520295726180216788834224925749054395879585605837457638573878098590240025784536929878847686474081486691041194421357351357926849184468344129131940222930669759589249616529018629355712453564929934619343131320595506485156111705160862608138459347417550114335326340870074275325741030370636912487802600084959021881038519606654586124515853419062306596556525692770580673083273835835865128210308641356019531538788941758067233980118134232667455539377214312618542542509450369445986895012566113288692186668473539538614911291677674565694310205025127208496660775979695211948239182688810829732979153395206585186330200701195975372264197714116162827715236710125489002432663709780108741501594617724950969502608967779566889570765970680378770246960902916199040639379951652327135499632759709617944600700226329941693310590036989009643849585806943319128138757381385065819533076925245924056367831422966277339609429635731893321674448399760368500880874991810369415077800220431155022807224955910368544818210704381661617142033006855969848467917913008138016952995700592408419135609848059450264018384857783618577266705366805311894831815185710728248709644746017838721244345349834059820527891605575072037951723725738490041310236768317997553053271147581442069015669197813552420837690266108447085386798557324546039559318888295879327296024953810871083708068818764245534846682119947859911487440405379883742342053244759830491107188233971327977083927557715052738092194348588992000342707770097717381770969055547180753279191845055243929010393441251572676258218005217670070750394941583355579070492917924214925605412728433772211207497725778155222215373736497830471669676334938693702358289561812235750412717107491412884894498980350332169086634941096830273203121825834998875930562187231836914990661795065366579157291812523489384540697176555128383841129128341240752852998141397072547386992655936070587601384324946099703310918234746481283785201941612964151611777427174166624330577801723602199105538285496666819810040174029738127845223983419158151098368300809235803043355236779476544839068434542704725890098996439690925539827957086384239594373724551264925404600547484801548916506000199571082569055181380153346828942984048357269016822905472212012357476761762641159198142982645576873917298181189008730191806609502694809125312837644821200980978349363790461027073478285330082069160933248974813176899147993914455585941889461114694478511330064826582682942697811261227295192490902281214308119168490584844436957934797375619999279179700811141808348566865242157603932938615479260378169922747664643190672910257531361961708124790150916645850589499208059050548294509688619208328517694468329928737851026072351405718326963082821264963267570952826172493108813432359934370646731853065254307013270745561465478489117102808464049859095242548622516881560800482966191941056639976950367422926092830978679895398630018094776185646786184342336428632411275005017733448304136898968799335566021390617860693650380005085879246510344210725315367610042884674657735334120811367163826213677163863740190453475821431844518193021418114372675235212704617308694577513581991107205237804952028621206267474488926497593387308111440769044679580453466030497591988873811171613680046134426222914301496423120323991398392471213232948242327900016482922112674760729110168812158065072180664370088126899733152100445227983992691240273653135731220724854471679638773893699252562552649324534789515356792252660751703743445370518794344774994209444488077117655045839687042601179999627106009678429086638251127254729177522155256984929088021078367152079835457168860785414131113814114490650361143807276276909316415725922569884395611451595404241531214893563316858539413039191364186010107178867532839370906495805364549355892832118734394222521106713670312926200262940152228965112836930590037759056198284493984997064252241679534350017688358318517953058430713135007446840012178823850499410405667936915780908915809978588683274584340563580911321262412081052620969709827320739917973782820485089495853339610169535139555533121160164190577395309656872468388700701828919822328445426615757028094408287420973219452706474628833779847856886231573901778833353793255234051023073145781947949217454378961917595782873247268797844168649439434435742130803267674040713099489973305855261927361088883064178905694259195854560282141049635945758815366247637450503811446598271844135684572986709050858480706749855698443889564096337211381581609043034310375725782853409675070037597192840020424579625080425526188350491750456764204459677655340292681109129224206854053925760683670794507872245460788246504401116007492749721130417120686374934775718008783904738570944526816632847422949221958932567346388490546830170735950128482246940368541441801143915355062505223266770139221118670618962403242844130931182945710834224825747532267782271855730960383091919350824889796547091259310061310291689267058681477818737827920886248183591723383854012719903611583271011038394504754181170076082395817777408885631449555676591241666256465565838686485709450671416597341677121168173629600514495733257954276888701303252838314499292608105760090006744866889811656076285911077702770400353469846146212125451626849532421628595331753034985924513064060722388573831568805985299911382559030056681578910241530149976898927276768226369001572999772581510670287597680027515743667859704191856024612909337471182026291156056493477077565932774972069949141799230132919689581145784458817841744301241443536490231123042599562552909684438173550272301054382228795009639345307830861411753560461147189156779848648653629626523839697326038744063535677744781147359382597819733155908491225793301873707388218776232781280936107661929883212471621160992359270338815851160584933391032533530993312703822231653682034739191595641330971785746454303059338676753887055157631329950262258842219636856602631541332337072049919242313294446647334799562400449576323522041798266674508316666251531735504764718085475214731607380510330750898637413456995671976625109543095830736600216549591692623273335401417137856401332616073408221837406731031459542614654270091041105239134161684026930297630677042287683588057530160403498519930254558493355253942769133070454762408905676917458782436964651713542755418187591663732543760055508387599721877236681456646230462219524225775541944971109494416363807079458729945678018267251660216918198057622875155590740454261780534365128149674830170779818404978332448961380290148884683843233599329083906275099012447051123624995300634599255166525543205249923533810415303964503178476855113615283245431938143426921712752550519228512564419962951654107183353137772468653899226205519864467835869263627748079140156432076325925556305040789046404535214718142287998474258038233567229638196435637170000569311291766221886037741474270213604375877508174049842627789202235209358708086521887495853340583475834163392605455025737267297100863073995397739611523442324134605991028049765535713342044631994390042333828342893209961635640926100839629897735657768242438709010732500520378253974424293811719633153907067368964973867021255367501060240591768416165411661763704564794880463945282509455836529054281149096283428909731314384223318065776545619901587675655450169555080359562861249991221501827515332099377971588933010952847883304391439524167754295639314622753583763944308900217640365429961560342201467126633927149843005386417310205738225589849654599203070857065720012093536770662771591197156432990844349618574099090906097994463016773158400081525347634451220885636447427833795575674559139343618909759264260787486729475111190805322768647489371935047108637056370337656639931227013306388641529348017800413407191453336492970144574452203454630035239201768936651247456521211551630804692117862879051424017478465514093919104768290170931491641928235374129637775437099206660111347059697305499821320408135710534581901092497881117915651576164637720019165622988261651391391673366351919013908378995981271573924885452778279174155630555302518898754817174631007618161051959980328489394883547030997694680769915326644631150602794954640802791750695120342735975112983163836424332248542942284943254010483613374876458853161064822799377887916717460798054810399464023130197458377879444996635391112010861319990075033867859586338138390327232736190834950843782068125330376164564510365749110319747689117101753647033538366552337208362808912480238922638798456780908356666261024976308825257987606789969760030929194779187439186737923321970516772978002977419062771773790257047432078571513523971496024856947092623964560123267714446694665368651470549312155362681751023673379377394620143446170531006307111868606226948837765496218632820642587824653146974429520544103299457508805723771496630568856253679834200989666451285842006998821310589744068044212018629497556197309206409442462551829294043005152662843406732085277629245541781958014893559049272836468997319792469509728287612017320269984335830155190896170354127918883150482848355671668454714841407817476439522840469212127504389132960277433009053619112127158118970794588360503445221834497280051905185158107508733515276155662297600657922957839979129422040076654580764113123195967511698086377347482968002989448699865023144350694740172337619064928211165514011228175989651489752190671738917667066192226633186662545884612360805315698254867652466878853931851080077054372385533975458646209248007998685156038640309541906003884708554420827002272991287253232793369042535730655447058656405400103128943516330275995424394645098783664209464161550042792916556424124782930224037529711858804223849351020588823528162468271473318320883911284894422343036240298750297545708184136969726125577354044739704361134489440304449302176541483684671325442880031250125500893231676576477713275868408910595924774023613433990130836327455761466360610504800090175687475784663821729399944874738082714412876035882789551147082572392709936058708918737346006711577384466995803280145940139469422676085071148127754784753413638509706239261381922899919505868371616062197051038726673531737318780148967303954647369225445091870996893681943197182193509387103191068918238030704056203722161474160765844373285709456757900241063117147295350210614163442671894850065936984767313034592435219347854720893368754352126037854056452501393483081847541866068004501834347209337775325820704878729783074947014571737833324383135380437025650493002598871150132784043684738616190712677941655899697883385325426185422506466275891902732954503018336868420359082126406693082276193686303873127932480123911227098015725133614033436024045269650585272822159175717748069448630713888635343991236901815112379427615539775520206868908392599707102874701600949797331866501263897043631484783352129103296605708576190001291722361966999985062194567760584233236801149318971024689261107120310863174935682880502366808120063262918565751332176397872977715945686524624724880914629859690291294398087204354186199346102992211078792766457845861977421160662463775841432697347342993120973240824783538732048946951056900858227902902091590442864720378007773950828129808165043600454527352906881720746570117937416044361487367892064035473047847748805521089341935531444069352704184781858018523921425106508113550032587563773093718501062806260065596554910947934912361234527548438990560711523853275958226487806137686067588452572173431439495959003690488876138742925931313309715825120084077792305865809215277021262042620673995892336021020186574582602475067360700995896140056659292879566040745744043894667600031122518949825727260706474983628274275316112389361944759988387404138923970279472815885350616892436646695924673498428829614210544085144626333509309757275990471395140735948280809655334567014028514127783272355895871737670191086606926563301681772209728264705960672526944230251752414155543964915694148247621084812484638281031349008689026158369826947203593379461354148578675989488399348821402828319855841421583411626022307031484598545129187785280795138451111678569181762695722967326393300364878118861053833100739905133306074486047979242872196425278954190242289275002708124429238076984407340576051529941879824281375897710314985125512542315425829823435452093892247121933172272658242453657109291700486935210776801395235851256540882848321125483589981352500990030642329199128842283426902982482995969800607137259663209256856412144176130428888119780425430793391459750120020802704130319967880456045143309197380489892218824359189220867617830551565419518243498879728629698287506890885257139842873662241288956411248293884492256320029892969785659477401985202765822672312434085924888275281494645062138571056073405934563612264832693574186775254535651125098532585496665859273126215384758838632055450142687494013517687307766112750462617307399309046111734124851785364150107716505382786648989306335410265629283128912992076584226992894013354661894497118549843513336501711051230535110774656895824269512696346426015926389744543681670805018797321850094834700629008546500396582286727224338276003639928952541173646661243296489269293608965792244662652085356431664917073998388041887065374949651261077779908246759814163644968784340854419877264472012552279213935232906495253334505480382481318699489270249770272625023661702809498882335922327161508041342206407344570191834611307125115705663970687207695632872034309004792833397096253896281555809077768886877570800810955788408312572560670835254849468593986447545325432364386174442103956419025668132043077904273141548263963804185437791316681900409630338297379722428108784326908311391633070735015222692635834110320850733031096058061895332205337095024927685979311453125115083343029898233319480947470330821504041421292425700203034686368437532905700007284162409964771310081252486636712197781444965097603025951377760197895960518152595500820123316944413935011271167699002472080788512167964813155398893076334934484315439447977331931799598753891750383347115788644144443517491826016821502546641105606013516221283432564531259835772783415124664763619408846261913208039355703188401475901356292823472858093601012808844336125273974588939234762606211528682413473546244776843922215892827786182799303392175562421437153147091790095999940049791332923640045544126430927201649003584480893164793958273076945011961346544863336012453918019403570834977909263842871143123180192278285856502775394652757217977848023214741323127490916791249121771593569626011507945577185239236843481186601498072587369552519979254959635834020839187095986641201682811766460947680986288778056758961709252160419412606586866758080215845731590855218863043637371243603314618244317737593139491448357565160106124316065524674431028528274579419058836325187687417683797294535894998501352022750379937161081654887854518487992904659726455659467772123839752020421453413025139093027154781893692763021204515152022517982168400210028538220771406252239428934385060130754751172731678371839914375185491473401777832364928469628129315545818431744243577915675772951970074260857453128391669388620867340550287719466853547753420135673352213277314793688042005102863849384455703005718855345787984440792218059103172778850429967912906782485767699362166017735244070179273791801291253262687916653650797101883263616316067216314222413504855564898113307766484845368397821423862242654940346777349842275717645847033504908182978592670244407946945823445436701844048095299930425606154905467071311391401161160923298852359366351211850242948547893660658157083015688949427619000091123841321730626552880920405679072858315913602183781633332149285457655762015996854208725033255541184436216207363839590912868476257070949361490920618520644025731486536888446641309145169245779830973646849352536238911775325382815222529705259772027118642372218600481317202091369533541674232029905861451942775801893551612234054035779157198016855401723357659594233249166669545834673561582071134843248565244209292494943014116137973291865576939474736718203090501522939440156227188864344058487949792071042346812474787807721239105937245898502233979773849122385593294064985176492339645233230774508272182847113008967476304709297147261052116470104388195254029835966463578805337260694681834787557900090679606921073753220649079305757557528036286322033445158441232397561676128271811816906984188522436971462412242672586466657928795082504182618010848992326521347225458629107648195615045624323709825353783037113668784829529624424666598893333636551703455464638817250237183898146378215369436128811096093886813852974368251891895814579978849928945859347595044903891015560403498719762632733824397900903187222963794749529199316220781072025923038767435312536651549346511523909518479479416088905545437516907028222364015334157388515055060722030513040160642059381941469636180712580249706216032711603882550662178467971509434196716244569385928869489852538421674200909711528186531562688610962187919231290118377850017325995745446554927235045458807518910234406552560630118369040902609512395940499471234205348165679389943820349250725670281709214676631408345904443080410781916773801180650372677978680340138736235177467044762525727777577577212912559407385044056756470003414968333869396103839778702243001935593563521525289863459758886267468106349627312054296003120458993556566890000399025543580353325774172385922095822546517658349265640568349820082895980853039451815018753239378386402476577120383205162333315328742933000066760750815113107023839761529670303831268765169300030465317342369585721814658899630322221291114866782696703554980275544984517785696999558192803999637905429034049015004085839462763282899935443450787549570387350391900637493976615115243685875893403327956821524444939793026954416345605444040802815461296218341576752780766704862069390503199299135935605689614511894934869171537066976334945535159306678310719060928295531848684540852632013706447034184673415335908907781453374560136157532724329641966812384762231646704499362017887763637800687907359958784390656560325646872394753906290255927246429600037155124557442219269626891397744560840849095415433209542774282138724986632740586599797598634036332792006453833218304208152914553506639923726942637606663420794231333572495845998848049315279022983270390031302201526956699710536805005265898962996936503988505326407470736159501766816924863403139614794295123576426757472824149768474456645474373322466353929859038928748872356177534377663702287855764136257017869932194334594820515379130196394383095032502350377545383079617844993670805568572660799244335007088715545649997081261367133456235484954469792013162447352992898449195178385794147417464513479719453434435940744318895824422772248849985199516336965679123886349604175377981829438293512204216425502806714815195404126250706410515429905881936855259852620760839852311416918252597506398563088595133670436487435546119481969198444003464523234879839622162358807133837038061156776927475333529550638389174354538814506775433927079124529892078285952750248197532409269030987401818349023021514843987841421419913401681924846874125869492611713195099627132936753413456703996904909141021281232566341350134552834217757077420630492930604960436167082061283383110798098314438099755014927873569435325576983070118243194419182363041316018908387291215725377468608930777649286394004872540677003891809500223046814067443959408642620939855558802028137214929887342266610341318537547131525533745892229329901853439895806071430382515234202005822114814589428510722697469961662842687642793338112405799276546024683295844761800460622708333303943645524360861302652822225954317285135649125188828781903310509962471725723020722954774023939847305156096185127445871889640206832878470218554242220724703841287775140182843946802059527198923751718398796295787064145860514609315329805412206236574614219478626321778090972083153603014801160369341279789282426413097575116216416655665180540599864796865213053656889261182787775472240234230615568839702189079396977324836609038485452341753492181772448055901974582505993092484254972067893112181191189538600726150208572783677251410746319787198455362686967547529473252720541398650947691732403925207709659458942120346739339936365130210172947799283868126913325836415124383311317703285705072571901816827120796205293875358371660611638885381682581174540918097058234867152047126417063064291990356743581976718187526744775645642015460439864763528745358038527723955892313034682843520175823855397967484046231595199257554611378473273922366225658038230791461093954745909807001868396316567683314710903896736554696363662231804987419532696318410152153296951867127988634727468996827279505226349960196166819513838749256311902035407576400251342784385625295927640095071172957008900285999222238445553209826656680716510524023994111356683775436220859434880810735968264283966454667033696846656040083907496423207417983507399431619771855217614261656780486980080009914651669844114362788520560513086274322342612529065040549234982556158751094813491547708084623595062794124188696650397654950184748542227112351823096602220909992694825046185258078635907918038926320006383701666764850966523624568978429967765022608928391863295410657804735843929913648678419587009003201960440416167116411955717070632880220305352025649732929956678252011955829244854879094706845575197645500382069575659467196470191482295020254050872162348056886302540544364221362183673472812951257456014116883626949990100987848043519985161768653345820723395830692993816013431617115006007617458167560789004141931250058178240685690541385452434620997004409105514001816043754540384874564711063705080897972056444561894114903972924475490318628299566759141289120182826267176618328702159588748269894113068728407002966982865399158866119037512925585921702215702638579333663301717167638927717449406089263632371667083312996405440629799896160026694276629086061767243814303527827581389865115345381241399863268891293116579754375557753722026014611608032555920026814679483393174090806636403846290278006438140203194466570864442983294182692831780353940648919100902653925907994255053543269403138575597800715547356293746050080791121902704489731550731924898363807603082679754447211137860200432790123716962941511263513374781244187413380517899494605815470888340848972825337264057656021837955204063576175558361912874442383650353526430871102848192430048290195531291074904009963961315410119271562132316920408748233137062192853969110087261263154598376129261183324970794535161832037966563053519646061345691654492234855568147945203403882160440098116920609801891886837766983110918607568721026758952608163628181408975439955173518397270128403243438377935625334153938656391725032399036299256268096901551551635769554151180735749424335122927248405744763359522675583054624013551685996656159693933558587296345350180423551615678794618368244118311536965656872225861134044310942360916646987307074025323379446037296364643170919906515971160528896632741818121320857466313792900247109074628686737105825957998054928806616594970934996875120129717999706390414055224814106185565676339614313198471583335014075516321611160639278696129408724927662045279619881108047332423049363727304840206783219353825642990167908708067250148609254490922287256409471673070863462557228594362012678427019456898604048047401075687675685765000863294536849518157193351982547510223484528375251740837769793674894401810892573096030081159805665953414336754035082339389503769826304969853966507312984144888878734990673864934630290222119184620235677748974423805094001384991634010548547358022851716589209919160008425539612722924771301206667229253683052830246335819747055366736003468298994900701288035039949724901058588810060301664068745810764835867426941052119173690964590969706246417210229717543239128853908376847351429738202911546582599418387826698708823080231789749918942420532400692375733090742875310447680387397844467596070039401639853700622188147227433988113811531219102513202486308407896218440796597086633696447560380733767853740506288939946077440689467366202036333299056012286329683469667691191480129928923142892629247166294690612666655995217468239172245215884152556328782174397239223748653168483308502854175766999852296553088580385786374928090988538578268023402987997210227233831472763935825158204899591257155053420856157043828478191994997237989398732918326472485642797948536379808269410700124353245900550020861409021092707622658426305096333884633314171088634942370108845228740702270072739327156646818814778213264990902677440537976471357088004757573780576361236230497283542398819394849650538670328145592265425754715493366429419156702513165727078221736125921660429355076002797375387150702998890641172566973978426504979740253912235875540000628939701327592896878254475792968016119652989179589738525410043210956331250048089677510266901280088032686806483226133990473443598933588220361956250950417258413600956760755216716742215990053188884887960328453975583075371430855514419663454331384767898174303129510917916012016331537995407492617831888986929883482223061379138821358174010790717970790108256660421224344069696500207852995444659681706107022336018194134584575890113780394057122503566386387734033897592481155656285978055203304958543413395212679214632279381669842292605153885631260610752184623318060249105437034759040020719959831497279009871753924761691028862827166139179274727112155835462142609785865770661155477206068412451219039852648760969364896472210681386613655914669824937299271261868549107976345561336729225915587335779752303147769453837554907475257438161656307487166580521474640333152218308714159159651202938373738820224034374975845941404036024054323404591082709755396090645170932510828936547054979845623567542190211269934048513713464825757328205139319031624201317725341768244028213337114172202247405516422227972367116804852620295319906282237355632177473105324479363291958909050691670676586418624622645986866912876715606577863689739166173093341436797239820307613152656376908360330911035176677676757343076912732996615434002239505828753814031895701567493998209054844811971416290637065914005762378247800025956614824234556042346576697958667918490287432748220452793706524320759404442648907383965207124103584383748506830957757936415875149921888205200429387930002305564046307822320944089523948405605843216259671281220947109787470124485049773242039796557920309048324540308511023114562253893790510396698760869924967203442391181540311623016973305281648754644068695189322644584873852496706894481442131476049313962087152893205402421812882529668849088403570104344322152302631232870423068098907921953281083849564133935694321435463324086351844628648506151212109067019164508857347620313092698935294983964853047744753490308439111028395301815364809476522162632631961797148205655916799305778781926698754301780422453612919867871320278262469449928428495628528936557662776689966913507505967600408599271484606440988639362943732645668480257704422185618083965853934023482316497520503449890606009951083345380366480029688363402229601228915683078010851748665757042610336447796975892789571660435339211852216543095304928925549516332271402397942163123474614794040544481642546202185810863478350413019655039298276405097802561287298526804681366678539714724622144350803167250366717059008922621120977911638307898903846664115351665154607244573523652306114012006566738843832386719097761441179078702308132688889462085996462224279596914828784027236965968915789574972143767762220866203059160515836012263542498127208590240566550957762636177436742648333950257941588462494399153663910005301316325711906206008468829836230205198068348390718080365661633404495343087111532861482081101468171853903312984381173468727829269418690104628253392116396164589721379584344222621028775421107432544458923593886123140740422562310301528454112644156926940856335922111829502357297605848711301027805750377139543138898643106055605793466201082726545918374193091468875347783590879460915082526849776302247876913155670276454017428624849891433900715133342449986570282433664912248053644662501215312681853988850684621797261690187210941454065224814195605805594016919666461288890149764444310695291285297807914848397465107748734508793465578062533652837925881279689935713174746735185341382695121958079983058691345963723876983864735350485794798672842555804464684754041278516459039026271981813353758198467216354558023277677139002404991674373732624224277282780066974560279424683689913218782361777172111706203710409432102459199891958362583739781420333945468092590996487884478293557123914772997220690281495507275396218922090286754635767419161087966074125781028012323031120541377294119366059560178724567701738309096384251664840041450061423519144521984049210987543220515569020813669078201642882378242883891297168424428013723203185829756887506153143578870101089154916246981816209109728149381103600730466717170516700708068110864441194372335433079386834924115395930598652439385793683217802431775671618117961000362985967191773765882598330814087603163255173026789982378257597158014327910763332837468590385587505568118430749513909588233625963691363082563039074751272565645989254567333295597495909719958843015816059041628047432730406239293238655439945730716370983588514675901931112470351082712317645745093222051155048477440710223227549365907187338304697016851545649409227332535796062304665933185963085569219006410694630245650682930315778790313380412951059916713951439814643846400623392391908149865208251759041014101496383224989905363488754208842742678702828150502193035175105229977379470973567072092207977368099795495467898681660661432143141309057053939240582349327971042685422457310388764156831827578347010455458199973994308532779024382882732357972352466309580241860757784697244300639711878427347375455349720465446223267360221746131497964257722706494227753280825849939085481391998586040445306592795285502782185980901413800322581752205338685905735020297835933535405848987071852072506546688686532707653085312461709111289406079321262059167655682374048361085594491044874361923896033616352016441166885999122454789991208732039446018786786400815484964844916633266491601977717024614735395998857020316612689987983404453964491442923045330633197395610684285091824507849129328819123417491771996550386245321113798337679145089031802520768646725404651976934957946822560378533648015907219891626412420769784300893542969432763464345259770995963142563821331062668925635244070582131694229632846407105157219266987912160140178701329652511828721323061352320645262253572761949001209484383607516122652402354188425071795162568062430319760631130920839961862904890890135029743776046135823703183319010335772807401097233137112969995536913023714753059642317482704005114564469292655081490375334436614522652237672358645145166320830931649782668425282545684885265474595737385144053143248791642941459618148397429626506178760073849899647020008641927899446267264102361256324761997692678639689825158168396274002627535163347702609091190035954733469064937116588632171846025604605138327772216292564782296661298176047141144427728242445631839606926619665410931806254987209576564836103803276158696610532881903719152032628797309536750078419873957892179271693331060001619953757650802610070709355674423317988478549281008783808864220001091009658982270495487228750790381348294083449019242830124608227285943045242367120084741086698606748327464397781629209217181869094167672540578563823662339923369573622795515985121521591912285360164431849247521678492988082859783360376585582918860570652821253674332437253385121082354175534746614682554743077260843678129066076939873960997099471083307202791412936994167985267392349196944555044993725877002531067044078060999118356917817728197935034475805109841656782656811808121645232252634416717672048034300150934844581291020626559441781273606358415398742051364253155709674403004749064951894084269293538860931497125171839801377222949380709585956875616466395364213080751732637543739754125804414187105539233267080824189395118445363185455177741527231840010091633779790213696879178113592957220268617952534835066516510217210398187771836613277974310792254723204141826479473826048586577939914687909588906671080686093423536381481470599972268589552575331557050306492515744176204273713366676451416085504447942698137757538460524640039646140988418600333175013026079929945755510092257021655302699112393209513130524259208982502382023304022140697135269723958093718166768241864640642715996462883702120090981165329235000974055233355224616727891428545636201068991419675823678027587949665189310302928476121879257460098743851347880823425899466960200924397057632411352244134667132695072681208403034226474016070978753048032909881388916115714769486378796664237370309631019555329412399794902991335406698742805955066567969469645158373194515765246559242501461663174968045755307534988489212349796071581278754055465419973306222946762950412064347376083221285025369019473655507827229036039989664674739532458834044231700732483418115313818596883496110345429541024083892901877075744205985878134414004833051858698109660268272914389913632253977515813089927984912132726475056736756119566707477480640811764367472234645452744555771204367725004515397700425522084057018386613637997152177426801297690141671976559082124373510646941844170093315872893217593321459219660487749381623869696588814107794997221417405273477984535609993968359667024183083606360204109751450070474006261400127682535896512153909994282354473346728295947473398763191236695041657604102322700886571932625129780005452655187576110916461524854823475764899233777802186281991919839163997674108238466629030355540221511646871510563968068042242376068429916279281634973562885528441241937878018403736467221123223818736658201672246910694657847374642722924001857020064932100415048047823595998546525363094950023090303195490797170354393486697082350810978961093456375127969054199032926733291690586368531842001100553835089706517911322906628402197496205124820117893907746398416428437242083140526506186512289241099130043982795235821808970361103284374435258689036733493690380171397112534565048227428793196233180565617199074864833456639615215390567702647092327367435175704409384176361063307241725907575748961506464768507606894410420066127546938968910092258416117138381060646859375130166718944049471956239091725708889854602308674835733354201385957897668422147461418799644057604651594436049567360927883659157137664732025681454004183390847932984847105159278132238849214948225200216689225581703070800962160259264417960379881076324376297842984872289478136452201404414615366240705943781251561257672054079981781669719177156009506324322264477873853376450597564426513973206119208606557022075279103449808305323284916784492715588387462504491922575965452480232828995664444134461968031383330870916195651568827954902621765118862698098855190829559661256921283868793945726187025411812569204617789604592340595616489130294341585714229965632750342917558087735428157365006224679007254734416987401454002636401632883879812012142404798898768710786293394211883156740614174289347892638070719684140012258195103367974718342094013699919051581376381417559925196139632783447894334267268523228378342977917679719752790339453347366258413185254769834958678688254958727018897943105430012457693884239066349233166227604881563818112103591386746254064855558718950281732839633243658791116589221258043362674649325014144192418420030806627924098140672270305827109108943283758644788717019241791176517870135608757624074895975353193244189699131145151234329895966818032682252676978164720294279397657671933576360884440473076181418722693360384290294724411017587371477102804789791120385746680701223333786146927299176224091683027069582425640698258138433194446956171524663097474491082867227720493313897334133916360352899642900358641976421165721913512859862161009961475838727770656891688972309841641625623154262230206070247859526703870643107986534801017403674044800366912693917754981045045658553440436950010069834541474798615877015084500536516694549458093635575862138511716416356696053674112266734705126015669368880573488263710561954971864813423519515996465180423556664676638564094227985209244629506456243126263595290529923033526850309216268563597560441862381587812105215237915154434840684232988373067822223967294356305923956199740468655969943894282892178616283970602195547276453503786397850200173029229949508536530630352849305794318059402425224976241717579881323514024328249704733481507647899574800586631043691184352595968696528275565522027954977120418778415861903027732589556502149575645934661915755713910090683628234805625439874348118881018465601629790202504162388055466251903620520122867132245463376739554921183249489447441450849591134319137939446122708766228409054805573505924578239572482387562312545178909223827952733616016599233581898840599594980406697471595630053393776560994369077501594550396915644770951037390625250008790760075471331165366644416302921610126915251493711338199965041708045113941745087036674257847682469563575417826623162855497428168048082057308586252383554084362441614367151522127997613425887164935659055490937180660197291434343245984279977495075266974093079990781206248022481602895775856353488619290532373979281499583388716350603406072754615843206674016415507583758052810039658817967305594890225784248050088103648160964673341131005373654983579751495142938039931229689335659624464212741951731287654168237823372221182124675114259019855859398766312753516081490005392147816781645125227331097996366119616333561564371602579117238478862080278588030425445825044571949043661361156893073081223995927745416963527199666201248450668642746935599449086444127116043373579050534093426725035358768916087662085881419053019032583024018944013413277350589246315074921856971986193865290311152659542902419946766757735593731348728878433251715877258783419745457074167797946576969247055400891886977242904404537711335963454194515710847321645110882233110572410160079106207496678987790393163202416680159507273664923406509556426128997333787990918376360478327099044583377201379273555081045580796171731837469880212727654278032507153057999096236167136812238746736281565212485674708967435416241561933520092783130068627742453339841096510522087405912196226596150859703552770089883398964686892754117533507360864451911693833519663875937495474385210742484416044534375520728093052399921808933096869203978359816015057098237446381945917432525781782919897161620733712434053538840916595546768065467383879951086044486863655974248166504195800091892937528582237933762675631780628621491502451231035992989671648780738990039840738395688236844385373751805976693563403973099466670942284477377428867509656110653294378811154148511186066937515999873909355882425671027739308269580651649733320468158787500040563914094499614404970566605146421054285290855637950414750296746318092913120311421870719225440501146405627948663727402506137346987128917636572576517525866671465606064602504399256599587418778337736824164285228323016940933422959458978152032414280392715012310303907315678124810098352819963886523168537002964557614399967227516551231621551955141061636699728030594750615489228506312976120270970206922425479468972731972657240568503656126936598677053212219928471100740332436794135101429366795870733550245791933409025047710966070576207249549925389445160132201671207891673748407695407851368760018573095893640783719240733365493188199990755448540549629920781610330341661663252022706183079260129520014867753505964399832596812523677233714005746915639998571248476193596856467173156688226812869493644225217029484676613015494665082300577827883520515891092020320238639718839031297166163698965160261671009133720240206972613480465527584888250867269248757949552497536903446388915311463788829742176149689494013059402607667034003957767234401065140966654337823990597512181982073965101606063794651569914287893038796668482983721183378444372217014655920471894396878771347875286223320065057406601845077964014235610161464524060637436068283974843019368623883810432640747468124798988470404225935495163514545303318075676741956877630286865305964102339700745281263815207013510966748153559562568016504908635683773620383506625363986553827486213186552176476599114413924168839713732647111258431987179658656624532890953358477618980247502236275815501755678300270588179667749335421742799974359759777748697094927349941230552035206924702253779042653575833951359735956674402289264011101264558005451500061730490945831407346048430404527360125589556021382638640583769570707920832569651642073448991232188053083243228521361915845080304128561011163629667638682756029445994970584150507863034003323390712570030436822924864899220193202983092974264280258034901537690552555502886800648842133281202441882550795331546435922158156986677394898971018385616668820265850770886491808394746112394933373704224681907097168853374233876742360636685320136024907706443063996255707822010780093759947394703746809221121522890031982005009976751829664505761360117639910384708791396843949054935632748613400681614462364285528887373129137587173841204363554889008515664779851860369099143894369071221886972857484091160768642067047434701845970156034380232631123907915567997787008621642767512924882156743896826945957030596405638702332512528724225534910095457520252083870018108432461369720604196470387219205646989704341507716111678045784127650896207186248438342171569530117636909714304940068726858254826920108360130202958341744642022142988926543178581792480095244267751850154556228068990315846072437538014574503241298813435045031347531655631896409143015436677781495582913224232144507330466985652658853621199697432994743250088856254148247224262659885493710659508927329772329532599130979773784231017188391576322919289718331883757424511648448806268947128990791837968091752567067908823397479229041462477883345183487394022482155954784240923960670925723110550474970243703306683378658948421509198624361686860898486507849849067777753866273655643926387949208430118436880561889302893732932578040357605306794631156836582955401558571364995145402677970040767682333307601521554503987968010706744740699048240546104881519306295447545717353707543488664156913506814792669205637945802204116850540971730520029311604841848600214066029507219866639274698433077552662477418692652461737798277284388299184340285925973323219741776850019424404719580920408776304703524570583707918614467005451993897229729134381144406138299063641550002893088201750625629602829296483054685311424483189108641480506020503031848500489478590771223139376577644371819370476470518461244799062458311165865809383861228246877953452672480382348679781795363473235438226618373072100138671295249855531723088600286656252656982165613621208169688276681935814622826619653743119272710729715323833874563151260955781243629690600614502457811396585515360591640836245104947492327610072177894011413220695791592296385814109593749004165899895544505668299730442185511875586295076347689360078906591405695512704613069712942157015911014880758936632597823570035089382609480347119483783391159215579837483125144893079848228401381039170993564949888297763766209326811830018676974521349516592867331253190091110224619305906912040765643830522459806698326614257586567615164192804004794720408084741656125092055534738691189524732312393846406465585937137912163836258772692871003886258693677591150467484632690670890178123549184111944924672058719967846842980608263849565957887429430244249192575151854111317342408178032349349930489702093361807195304919031430204557896011320835301806811927853484204027118646494669495430754745374033320889916449052727334852507151807428420695583529836831709232286497704088912859604163179532595884236604696727638413469519934169093026252722129024884497865538499223807593331211291014352606260705454404291551967812769389261317260460088111271031130135573335977819705895107139241806953435638890553784910449418665383015096427669219322862454887597814304916423503546256111981666790389127737490320907219640575732385489462812600875601312413689633266599036949416518522253761402629796933341320960696347933730797989717099956832837999256122571528827418688309901449728576487546607171264285043242256664624976907178587753448990060670487378609304318783229916461382114775614171355347691264344911104898574151840018266220972930503855890957501124919449943832114597482934267488833536092622443000155771918659402266857173668354471222914372310259077277798477687471337154021038221392658953432493989227291771044070941515019248314916793929095711722974516701207788937340622415765374653534504606858849696271140790154969978399368049946493160697550163122106748840279532386825919748389791469442629634039963469835567395727426313821708494096634896700581294722373721142288097838809423307345893352956675772982014216804583543543097481889242514647736795919251669354730804819689138013063048591223753083599700684857248921080275055933852293477692572829081177216301529354600736753233087096211980603067506404301653928628721131458448788057115769994127401812213950556958533517430950660530557964858982008405944821387793233681775655613703443695602319530267684146765322255794267240704948863234101305152981090376412925413062952085467713837183375050569222366480229633667952367148598118004285385999531599574052328413520936018910886910295696847342521311339247617018286106455371523363240076740978618687116743975332485623715851694443735097157224585476375110958565820535884985537515961114786656836252867207115077333921607524561235315809185145426534716454228326810983145287921349340779358161260348922490378620611721808789094651351187961100097013358625544808893512259460781674691378115588834184185613993587734591323121286199121396324554015045046834165633351242329832480057225723723544050173777858584886517643047190172325688536546426604361710114023182960368334668767942329052593012141518971403186323905357701970177608068680114137038656772601652615784731774793184349295300792090063709242163000691234891021489746391186285539182381440095042021736970535710136776575838616963959453820232592120136395733570034990919334988955389709382707304327686806361159639917635970906297835647418135628312319987271834608722464290744357159255618229598901218954654069970604059668233020910026179653714360414410810611143347067333820810464177836356736190761672349609623424647552346780500442695718149149638720438690258977725971672765279731663412943827782173002875787389225263970171345545677531606724719758952085588952320335133842896471557510923293511413828024833801437581837735604007934812067470975299677309502084568260476564333961135571254194786075619070166991301459132161120868891957885608574383306145915670791180410230822133755295273309521712110612308226194775295804210099044866340490118411706090969663223307281087374790109667950221176400601584250875302669162801567591647084148356537885398519798581627014070281627478270326130363283694291892602204337761801779833308555325536319906480778273172128416025316905298581707459366776113235366241801371287315237103037301212051815358201448267395924427192782888986937793833093571692807785293718270148217125336291857740059197833174495267053091968461306764769560188758539267774809283572716035195402554022685986795816963830595246196905127367978912912061721611650750918398560781478297624189032258165099825771645760675124931934146879137021546867758511413145448012207271162330759898642474471664769830098809282915678497709085121953587679578330213147641718190069739331118898809450914990984811593803030335067351217351810246077446539864373148982952663936277776105092799493330741781506284150338654328722753472989649926523663486690548977803111314800638099812040178958553766056992343766065077149888498227297121820332288610538208726539921510594046441325336330193374506057444368623603606337795679075493676732342508794385845594458713549937376724240640127687633315827711106262661029053980757096578296582982673560950272070313251515461562836515439527475581125156364997975930675970195713644526005504150539317085569847292613140591268004091271501388689975090162982232341278508394685562217091497436888050882101507558673493639037264485505937841164680937908185911205767986518613359870420007364612795966272959484698716626877277992941856823217635241262314835118430416692759967326159584146833237248462411429621683546754178930857770304928691824744614798107766827325520829584777678713355099121574440154111550079698284740356739783520256997950178173280154796057700641602110206611565885846756703277062361178566170512842520294014077229505093517399659162365422820277799392073705767034625044864626018050304879159248151573657788245793911967167233159224244821910884462212428084365957563897547895268496622228901354728326489940478381225055584945270909950338440781294476814542732076903727066350112388161463394180564140459480589505001029447701600425178727674440441376218254685108350125514800582473813618836726367132640015958786672269342032514076565373303231458773058740473497878746933623090565338911096019996438927030939481529889866624542832330696778289965722424700616801819681110102331871232564016598348226774590767758580048185430785009129714939134067603638260465758366982189363614830388427279325137009642096750785624283167296880619787211035165857749402518203564547043002769914654436780188292095156046438080006557681077702147478980105405655208051610521432840440205405352629966355393297984177055274264593966480016747578450626363425175847424565657803033335632932434138277866988966278827233729852176227375351325780237900461653710191812214949392679297648436577732013763914040063249655044913212251759743048732450149671966088694908329463676441630430538503208888359131201841004885913183300819867700999677174849572918228862211774518128312093812159014978381911790275193334763233397341234083083779942949970087077737412348134438262018208163471884427133561361890202868635325338204705263187988850604122020842790986240856411582280295395280057506872192202636624468557658434030246468234732547116744538482918558392493225407412870901123553197739740200948582771071295640237654760627544025926101695770093428774285898965994059278474113250908736873103370664761268147445087374577701008160813262675226201338301502692676092394445373487685229027443606252276887115341668565129483647799935462071532878282015184917865623225721873704579536064010542752447947883222688646315181874110012527302789048002660109203372678313010503888171376985983355037937188936046117973951308829619039636764060379175095139539471671686351465899458460336667060792108780585753938356048213630576901975632421208434782556496954261295223251399362441480013933969244923789744349727047474219327958427746385581554011410930533636787101105328817679303860829586731303796392512739368783385277854844510269324648388645774401474936544082066461612588458522452006730095048867808361810661875296790189673708423462326106882193696901922519044416172354929530577502070481692222754250725544986512037350916816403138746036454500058512985183107117179340467841135350298073386628731118228418147757280878770440143534338042103948629863950191891577687774035518352856226445614604185484703191055763890543043125704570369426977120025531240878465337157718465461646274662090000578114425111180089677522711202848582594185875498297603537183331327017541085961910117944004504720536841548820914934151405429548727641908459386659099741541803705339152123222936744996599412538494638759408290751544407280354692205137214343972373596181804795880463819603051145359155307143930575249812541089467325285065469939220702767387397142188072432796459240010422651940790242665128927372279139625155794707754951284526077673220574672301322858035181369098701890446519342555193955493492819694313669152355162951041726072955005939443370793946907981640928714204811564876175982742357294963557934502681126753763283155550769373661835715931056544270891828374903295543908541022961869079192858065947256808981321039779255762361674441840085106232328200006642554435661533093269870590697144499590309702462354512628728653559901363198533749441021093928029406214725023936817627911396618437824293985759632082476369118340512684981073027274928490665058676555143940239776429681183714843892959584162027495600846799320827288483970069543218823457016194984467616181827512999397615776758581983013157706800643143543681401829656285403738076172720503354250447994635518638609926101114081181821160016855526604230410848816104491175884301669694955321470911576533214306304316710824858160843640009619238996099239783630680032863568083219985879668367524932946993376983818344833468312544505754127173015355991234469428557573086376322813771404453081609896418075346686416888391221187614995536563594095509874384343627492439129534455788559164927512852796533969021964501145417740747238559247115893308852130310803179379870372004225020589449441078817190794499682384351308432187138160253910400588542694543184089596424469319673031219539784616300388977310216645641649371934646870428592795246567450077744240617897161070734287907235805851232615710940203046773938917954086567083079892927071884554988327126800038302380672002461951158131404576026793282948776834355092688400127906666566707586526619758873768646352136445310659765258147500847563545450041757466012679671116748689125775585196984958448160998982204951649009642013993782202747692332824763195681465699859144442563013379498097211983071642274675695503076644632877987448802178768958026873029623775291184697498187113682750226932725459244971171556705425488423492237159818764699729103861763567224907753711031924975113047130044071595296052693206250704014760760825143719566087795820994151489781783647485696701402455722111024800987478582291247124011043841673763814619963555410504543870991520827296738282313734978404863457983081751168139043632352037561167609506350781491594365970953615481602023524574419043291073132415359158807750511698049057532962039919189312888409502511073861965459783024341974127638416959475613537434231814234596219098428774693558208453047757716852466307155560840989300120971226869807994448254322161555960769487349402300472761855206505735910088771834240108891739744974474500995711897586186467320312732830185150999585905127327668503410197953490353159031785109171919769198563459799875507519291682582467129022970053975240540097886392952784058870767377265072534290761296174714726718457395676089997595995442800266557833589178171334630319488217115119263047805409577602331785916846054316310267815245565731335299413638928534017563232487976351664667860384030670088024510216913045155183069478417915544681555697910946022438002060512184488382879264126015738597075133888085648812667392908974949260653649108006384624447476213927155295837573140100097674283785089532840212101476945957258750231425461555616278290490032316214970123664524855910502999109007108594202949694697116464007755818614809650619618569783817692229560234277329265451624974260494433663958556236765654100848250350646660410268895577805907360450054918214968596462043893152914862058102122946830223995547761229545958236946729863854587878873614638526033094011904651142676528618795483709052633209439287944122616042284623672267723264895369310375061190070755397068239293951986330079271450969814457713357950906162250747720661456292717080534734641396551863943530373228520733703181780450920222143185029043906929776104725290253727230915877148267380436958437175947203857309781817960227388587917998834430455002182765603720773297999220062927366606379748651275605205925982400919676013143665550283156874621939965567674327796409943602583184735563524154296803498786554950028491890109648140068292105284859348205544789901329385665433387826814187581424888396875732525133075504483413353691320703071108848810959532999190404430500674167417634511434541511824234380452680955790968597392317512487791376404618659282826389570448736419135219673929129106755460253628570937251296998402232572820662451228093487712569085267166005501327683141377637315579607961352564576967469664849373367789349305581735558226059927511780376205124631592936743334975481772611570222139277176009281416461007848416541399325514577472202994168341695379191574118028974704907655969051812612586264911712112011566568202204285184841699035439437185412049673230186804746238421768934086319186575300284829586383862696640254527624562023067379622222865427611038737138229333518775915631355859025249711769627337503234485671770024272420404865406822495834165489639857953192500388974603636099249982333858916220437032546942135029369666562869695450326560158494955503871095885555112304356779081001192915853624418201662298839507046701465375298045255791477973628115079063140395419308169647860754720911463925034799539373518240822274455523013037068859106358661886763505501952554960319083352080951479588097785962771626699704242074432145175812741620381054980523553553654847369030862043731731644703902527758412955223034225296392779131868970425788688202712608764270706825763819622149616095698555607330967158977739485444212092521768762280028688668960865634064604283654197427009965750525456157353505848920685866165412819333982678236680929223488736844378874674563629262903152934288335694869910898731890723421049906900609267084022565097222905302638419816541089078058688034194589005599847297635062091526191431217197910920747588937011393650894155685040691300318261625781691051834701467994716748339098998951288064643860264275698189893652211676546752278919159542450566052680073931401015235368529263466610431825580486109434986317408283759162991842305096380174503130640987101526609422200453451745703766245220584137364448202051224388280164600232418646838767838868710710743939984980405059860090101420217320583305208367387947633754311795259684340102768641427796224305934098026462399251236788484877474401023078357161049575311947767797375585009578155574961054553884077825961588721237626291439531760433762589428524093185690337087176169702315822991072432754658513407671996588714280615637114303997138847660831309501357096245248179278624152880877397411283145602594842248882641984036531836646316126813715531521295386474472973018481390690016528407592607220114315675262163810034356930050399244752579864738285381881479922283237275784648764354070689918633924973315011617180409199734052074528315927341611951303884136653815147244002328775277443644186553992000980031540446309410819243832945614812062264462851938458976696185084273395758020409690627634947542426539270210941458781041607366297201069794258342876775241996092917642836266695521442830725127388410134200760324840569468944662484170317973238523216522600682273645166029715973063753400493564912919959120481529007839766226002191018195632234563010631379545156292981635222292597332746769929831621904093571377411382967416879354644301740620163033593870228584545893009899124877625859753309915038933343286332833086818043586440220532248151465162926765363574534975192282245313005799376654939365453864824527679894403545625070184639820109789263732536031142942072694744312972228178928828751721803369134006734841473530977832960218454801162813618010833270441465257991138551951648806354026525823608426904335980253442895236432808915268060954761155061012096232726665402717077469559215332639828084189416661106903505612186878303971127597460219707141587033480751685688925208428516638885774534511365039316242605194621344933500791464131759068659226134619740651923031926032245011693708487896658788149369958042552199443032805559179353805306684573469754659099555142477495213558346428522527900177912439016370711611258750063080253743395686348964770537004764469897027761265022161002346773685291424821853339249209274243485294880346409915580075549535616895275008375894522468806587399139108938623137528657466124662566462453086510849134402531423047938805730911915504295197724011631175832386910620961775998070568584682848515286074754736090609561139372379526216043844973576195738494350304435185115142387769562637804682832210532559294410410871540196885394115433600163834159301346561804097197379478697632077570670205758038178482944094739394666310721912620314984697182479730995556687452360878524936358935036398235111076224829310561269213634626561134751462737301986327136956557253808004767266156970612959250238029146252931610682731623756944553285124999293481076870600743869774495297909645218983005202018987041063464470937448456167574574745036647446654521947652857398642158078500058106027565362242401143920667906876888706332493765587976706694318761120383556325196042032282185804391534740536823517329616174907097772951359048843861967112410539771082720908630682494489179154756546162274407976579255917329024097596780329594257231277943315466266291756049861514028023803300020370676985663876652050297577785717026734052041074314003683886425557551216104283649212139781410890915155144199588675822966512697590977856524103218600961962311310681618203232349065508289629996631619679841656154528520660069906571755707032652983265534131843239425822929339774186212818475338753562242345498826046091073221210337010611886116185231228169760789905100566358058932951961355687861960805472574456427218359780680330566516801281110469448316391946421178549194167045619686453086820438828298567717708722828641428256048225304455456883978135081740115434790708332911104303764704591516786196712833566713431190455426221866498164349753633773737592923029065689139321344533952488169094790280591358375373617564070381714474669683667891205089389740233854567933230304961372536095732723555693481336677067800486367738360773325720718843803613076972458527835303444128591472439161974067832384847993690384069028069780023462937903059690860524353314351159343160545167377267189031684243347043759398153337200037529840266334478171968069980234022889094003141801290659620780613830309326383262919709458213378277179772940580658003300889250467641788931116795450208692251450093730182008634259380044843439502766164502364511184412796310033631516949198885515945915102681151421172357171276468061346551856071361910668839926269319101033735238253776155144916175392312635203048996339191437817368881178979094875987078549679817735470356142269796594359071919118890848871869439643102114609905660506262035320106380281989794666715135244517020686325427029570928026831054900610773409850006999372932009864982993841185699899562562211683019698285205029236612005916929636646072686649792959473726280551521806280757295941008405190406539769337495755231282397135430565851435978792460176965833609272980010645567039967412488569755806582429563878698782925006225608991015272189696906430574960143770511578159350724888287808217206245843621645905514520964410815684745998915337128537317100778502986086534577412051796929780237522751118633832581890926855252270056869557510220054568541925096962004224397260270778938300715193287730962830000345619300512728578071216139486738174044866558660253309577472391833537933012518519834183073930577930081395937798323419247958115946931732372334856908821011383538641449635826863818600143471940822010644068303858449900208833036133417408501431516313488406335480451908152730031366088871178474359504342717620130862966147227013039497557896940173808356170621161724622148709543894518920334693098850892087776775317553977307479065448267330108273819656563356676934978802711022660674460109014784199371653329485264344344031853991386972683507187956168872815773922104285536106904550798100896829705605890503412822566496346760477690157654296732872427580628462563685159703931615296873268260893520996135587870222820915287808885420033516486850767885371638644141182582198256130831258858898083519689795378465084788527151632262245318660291138941008690257506883266554904397280309869127167653639872141822087949557886030486769005737402547827438177754443146897109951624317127256529136686166306644047670353652154163394091220890290366276042560689024366908091963608864957154634640162260816998733569241600420392022327304950078727905962781411762387703250268554935564708162944601941845831650355834817940430096791820668275494338416059545303942467916155011860007559654269371350470219402256655646821451964276603820687003575181315000878902119573847073468097215104893754314641458120516743416762570846121705394389480593391844250237617345842180362164448976475705342181302677422071573182019967699059326523065007317774061043847775510407408725383895137909574469438028927167969508178077354641354784748271665884802272442500981619198178860738538480234017088121945728898904496404724486295543859101389276386032021598869529653748105153358917669389001859702958247680032545488536714484182892735364749069522484518225727891413748325230218530160821238434225541280596050383941781586578153782688208923607531271020303783792348960932848488651359684223842919498775415194480028900933771909151989802714326326410867240888081260980625929586907836638309193973229213338738934018832593528654344652918160350202936930406120780710230260757293069184156308689247841824207876473001337024945661104283560682834395163849967367734665308603436451614423516080355920848454634019560825035826340415244103663658723316042012364870733664939175736101191934969891612337970623429988130382293661775949195513397579035361251983132154305489687839663393861183313666568383203227599828616155638491756587044697232609775199269537563202148482362086914983505430644579180785970208274963643201172156573597042860145635576701188936706629149450458572915964033730669388677847105855317573464078200329507766368508329814122998278881907781531455103778642624258882590977069725284864494365935852896088731207081152192248647438368563427617434621552574745305687133478573824527904618303679968615102219216445578897824441033815891660405391189340162252241401554751687628539087926695400512728408953744414758421047498196741241815050861369304635206130173991460537035640283893326454212282688674514354239743495341978507865029922277385319803645732845708636735648337058320897282279836200857945999271093189763497967880953449748871903070910328693524331959151590179036848878477717041648042514627752748137039927254811782501409327065172606514537323816988671476894942646818523705141618390007794548174785766424307394759408777495285573849493597531981201417603464490698906436580935098862238671327278672980294981304826223289291101555701422452389185611259667141940349406885013615648372190939675705180298847662169903450316690780203799702533088621405215782844894075054607067829962724247913946482750908245727309818859629804978001171848842510733952032224478112900275159845184103939464905576195960193210234595214822262224015597738493109501448778035600632036630572473024781023467618985075408004143981020707320835425554012487467328831959931726708441994759590940245258698418325532314066840303233036644652810763902918788297253348859972784437124857713177694773349123153478193017692996705498117501343529002384967909848514584527921492036706812796337906537254059349366162558472013464246008530345534327561653189011553754200681829093358337734196334713768100699994638079129691992860635692082021330339915954489295754676540660179124793657155107958263850291535071304591565152463991754741619282056006994766711061219228830540356964797366639919587952240531440094290729500357493835943152117534144747603897763180634332231363857301482659666915004408281746464674501052669365362622777811037485303122839431789205033419090541743215412333890512051217568906824486112459983104479569071443893730715803866820853217484264845196908593896813103501153768939428818414452544756220701859125481038843247079139344139411012021431239382949342281548213454087110485223911857960587695201474557473812178238973135112492292226584062610555466175392688529581526241644954870204654894220277248063305454596299410463207573803271657008833035253572816620990518280770086716391288044659340385727764873122965656987289425214456470906416098873939131275423470502179447519120677373935601448035479256161701632368608282372838161099968009535929650703152724672788075002954042571584194050697462298080377342505372248499723974972236566398830610276230880310112921541607108442793451734203842986747847550914110009931666372485620779951960306291121133610663776903416583932816483878864350179674200632969829140263951808826971172937108587125409861398481029975814575677282472011893334672158165547483942398609618814840541501658964548900867010251571800555102517527527143329182996037576757049348754915716027596227295269209251072084875590700555328893305884951241981260899761866354711968462200512800075334315914763224874089038455604129965334374347819127333692465850446566429201894673546741798264734341264091012722032662605889581266685573895034249451307767993885233802487301573279858764427017932380521544699361642346888679539122631343769701917104807140161533203446136223466632678386880185572857663067069052671644730306384300068915155680967531767610094713812911309297146796557990152512750756529940591709586934844547891858387934760178934891670108848191747868014527195073837573481831808693611410795036847233961070762880003937089175583911063572097576888469720709879453307695429621307284526531693146006026110254202702296102788278860032678797981615182739071406460960703610549858994245897772917524377708190497649036116729570740486294936531727588776974301680053294543882115125991959826100092722997985541850218430100305910049103722123158854344324546555196361789583196406043539395133372552220528989794751064094846184178619420419758348685183041571446097238697327642953125609593356456114146937802439267071195174753865917033276904415181605680296886796535288246794688308542350886634902549038100271767641082440253487449471898198713964167483769834471098840858302399034162697461406569994943593076711329970071605006045631381786631225139010184418433946802508789203957766047594210820801436695115239313114965660178449333682284911078445457219080855853037757595923070911765982820914968399056922103127057089462565983930181530515363317812281925836981202292788034765554326342645784209471964773737194228674811185109588535516372528427502874904404169548005034913992563165553459791731669322656802365539148823964277095852825516767584706598327426208448916895994711326587414993216910860209593504082648378535118102849392593883326099777254513295529843555759794853269660594387968480201177272189343458836286557946758179276611440435414541757430384159930112552321182463424209397586408589197718233180394124051846444349878228673605621678129527438985250529805820407264115334228689954739399825710362627480438824347387829666232258177946364766486155788660280046537349156495286046548691354197595404706420085818100597583404024628018549727373961394868906830406933486625179079304696771114582054349359821227716754924000003618783162780156455495586441490528890932436285636522946229017072234074418240330567243674936754531416978785183819994762377130554400741145509582008544375861667450670095660943730240101545848284251817510169619423607250137049844620129391464895952835111964818102703365060158024999894422827757410278055517512876834598292687052320499407842628640650872199880762682207168004572050351839656716022099395454396884194933144824240628152691571867595480228111022051049733791591394422543907633629374391260474294482623134070451378451831168842018115894094405317776711212412507854631420278152555031816560517254926231486570646842648347342159823650322217472641130599276595964593718311661136754207806581662888064255200160258040710558217977220445324632666868468997933443431161603526305775526252889670311134823078569768426724088345836477852710806502513971332841293091834080149281881922690425411888059625634937424554323432908373568832750020115847798201633053137343433608503262845746088590482551977658489444276507797384544485630674046309145581208100033979263471453650250370196968608924041698294855545230840904198040654546294820520074050045375391942110127050488437252257771145843361595143715782098595547446339475587988070768215737590356245059477541450611265416335974466345177691368281403820242199497824264751459234133260247857865659569580885856798169119913186939835354841399987563511282540125514338227411165624778074498783844235303413821466566625044385750409976507377704047990835949151266541910844074711855501890242887707923156122536453104616791755752463743784948084455824760483071069891469770423660951380426046894256136546620575735949446406603073214073972510329918534205486984903889771718810560348661926723430028313258724440665269629820428520981385662695917735164937081829692184458672945540888080949373739056181459060282380926760299189317088623302651793294518669875486042625825883037479446822023499642224473464261877982625016211476298820453835999804552131718656827936385796336956178250178188320172614590236519012942206731872114244936270535076177753704996000611700657990645136802830221570165563074780300428347632163692168792135830660134116806429507777978009464584047234420147597803076659041515725344842778992309616172445973724662271530785346388877114411019556925907708446421762555095135873655430598975753048372553642756385745068810369858565858584909994441021686548407576386274429068065007008334346574503469858958556821521663883438662422652419771958798157417973931254080853372702908560718723321521815225853574418636443139880021209748659871338022071404773589971365096790793996685137193219779618215231566280161667109705804865718280294753778226177918803025862695803969704276507934059020289876946132498447919586544264582630234944238094540768393119493015147047494857702400143337696485381517788106616156624158575634465269877270689876418419738866585213015012307146628571852191046554058266860708150999422935429779456069026854868142146111674230758731602848322370471196239650009281121818331355306905829710579473554617828531537358982085505215868271435849435395643445281845476142255370391672036521710016342080826006993323346951476463280683576632228819555665740187313437500218261007916330427861444073006553772038080844958820172916062716688056239555174698399397527789545886126554006105295256701109059355897639577146267894039114200821496974204545832691518942289810164707249985980685423578163590832683716644176055501284454086613468223596440047338590394832480971545482919355266262238664043504455229331889040274997317336265536832134139578705002334242508747301246099076388775391866344983490977339639055425331008817940051978952148316789632553805980706127760628039564532809449499632516282388431825416240047266358049783021007552725094587926591193277402384426829782633422415787557112631088741636679964821778786127082452826780231038609258303307420805533430774340638214285875633781035671478238169406438973835853362450866508465869702581325878764150638450396232662300393871942169851826607178388851082700931622678104479954099052884097368292964030184799560692817592672350340225888636970129115230893156785270044662401173427630081082785955770382452711124619727763743196911082065223234272551605937471012287122555086807521970837881564034347218713204358493729710703616235900969044331076096293342447115124393016508694439697448351940408702912711114648231184867853614148681623910570789446751885801653833158655171896804528407396535124385261934574185208271636807090151887801658197229553761012948179400539365950380068540682554161652414449862409512295988615851706392632839653886676972194284827482202843575580670073442877534067575474887943448396726619432675378449385813920520506353535033554570647316997788602128201287633289893638551733600393677242488767712400358244370339728131505885235787189600498054852387375572212564090279834831908115419516968429686484013961596800527223636492927944102584194663093612644292655212195971005650013762689313509864482764111700848851415185563483883137388998346095062637466570800550346555436228385744282480610823084504207068197001403637425751720898715904432588304721664145816699275606709414927069881072482038802841598869647089721352215688358831664968228802772322544462055161932727109062613198956465762474298912932446739693697998599905255793784431558177719887537903849102521737562461738142534648444294583983545178869383337578491988920777708502340234401658162723763485747898594439645015833115589934516527053799198897202766965638240690650627950939554212370147738426913308972512880474045817446471031654581771515506879097485292436211768582068637476637329212899390427723770431094513321267417730964964010373759031224958116889161990419585450466858829686893823251974314573881741197699541431995763446277104241260313990252241201512839770341967221166432558537736864165786315974925906824089963484049988923921214145001608957377461321652637705691357193980912303625566073181221120329527532391777482596148495189729421397846119639964006524564751724173306910919644465275177792359857862921989179017551400307403492092909081526623413813767472264253014830134297404930330892895532624014093965109710474769934286462436452489176361603333784582445146253775183490696364605278983674748731701354923039299233705981902709805595055169845687341840531623283879755499782333810154411725672907665145973674580092193550673361124888411657868276478828325323755096510101822138015288283576596216859123913680716064915906702050390038446462356354901686377357179192047887098431792680637942909415889597946011189084770825223083196989390678213315125173854715298008616994248460128626480005232575907065059518199761426046263016722695748546690743642813534168012597422371945028316722574766977075853217626874315546548821247725979053177850940425511478342829527673422672802476388729742305356946260808293576770706441994382863534345363347247098058217476930094576028204663034505658396623011528432295663206208546394743372876813108008845614772723993278889924242356950645285257677135288142155264275229647501809822276228547934401291578007105850793148050829125589260647006344212631099927951408165303787325575379818210638901319365573972531193434132272714906586493777859046998254168324516711477489466562362965646977203800301983316673148036290080606526671799849654814630050006203571289810722430802890021036571007712943791903455858680272858740478667267561552791490056532594733292940375160388164501722301115329340768303094258269894692747314183509892724360544504361613605975007699043919383144979024047447969494837818604774709108057328192632489593965293963622927343559379748059089479313180723861758354223531716273531564568626404328904453855522105037009187666945643905234814345216467638703788141460361965628447514598305229125872485875759902006257753070955275348241614396063991590382835635264232028372585912575336682675526818924338991004357370897268513864579506689323553010606932981492183458297720403398900093180158926139908486211256442423790336898894138117470170058971670881863251569664885943715331075979444951127519955574449295928189311653725954448802940664047653570379501667839988531182883800415918223703052403173928763310841011957189169589660373382743486160108887568414963153640455428513372195502227707372643168823096589253286298893605006097635074976174641772171105604693390145286097115477123987058699513609409599260798564527194002287551669387757543369879750588073521600997118458702193414477897005364009153470294249042833100157006925902254774030800576916751973011571327930011939805376467943667084181628007749723458179620410418594535109875942319790563967207088305887850096625486374872102466287302494485362728845198733663151006619177058106458877622788354317801660590177450410718510237648979762353764045846789585030373644177360722192077588313057482380603423145696218029182729580768640969417715367896515022492303047603311265387096372679383156229955112974915950742836214776183104377563001456240204008528704416152782709230414795946167283641774346807823756935933161654558258704014050021112033565134177465433371957520218634221407650350655570065508745239085601723449513905624127732095927577171001038270852233425866021919348151849548065779404261898248548593921941856521019612756313803062961954150310888616096853236655998573213222586070604498076217810784924063850485937820389405395131260189657918523925331902517081787317376445922969177248399932599451897004049776753855904707802148840864395335889792194783543326622818363775155743945357237965723971497781953231396211507481904075513267744015308204399204438854644595206314916010641210759983556510538491284829511978101858416244149679207752147233391282232707756639923623539705323228716866545236688171537828605046615673417700159426237814407993198507370304799843525789070733829165334710701512741094302312736076000709166984132045620777892633970084047340222291843003118120736304212768643878882315918369762984469948082743891636180557516642676240280618309422992250092303812415122641201531567945121463282284948463657487652330388060195012274555677759479697437646010322538514331388077739106115944578361285183964121036419721112640940319788997266275132943505213339858735231983325895652990688690199366001189572951544964237125104877319508851809369868147934301148426614146231207967042214655905064801144401045748757275040696600987368696644069133478564344500285603523958387069881810341165930907850762708019641575806679417115519196744406915246025186404821409482573342008413343797484143635997835390602322340173315559049976528847152457251700336054603132677158760800196122051853342863116822410897260904462567075314711587187399430327559415450248338639436874878169504417355450449972968938680551034995444636897598520056957659810464637252055221512644359728464549414395517088013311244615335991405636807533047297130848528904413644993001050739901063630319696902366231954733476950812921001397514975239979875938899816070607786570079944943694413354442241964933594908801918735811027255664852450135466436693555280582621443939372966451958931523634511340242003599952063771831548350645264749158912636392199146660935852589925939321278775218424397910241850503925627410191856550084996032207959071267614993152827310310284214903643249732047766783193137626764693212581975671856066190773740774990684160405707630992651433584034975803243875265397703521339762381683278799440819019445924681165716955278887564146392667771571072224925305249811182502651241979468517435649903416357017623439241430210264494701345868415311163081989906222292601338611337817647639192366166977295594436504632888974863679293617497856820760415669520769099470315268967946990240810953561106234425101610941829754294742306075822178195791265038208016350831532502677771411245986152777848909516793676297551813230045714240105759399587921049531395873683303042112768093961668843667528000575143584638342761453326003203943853403700319324062858766504902994284729449195759015665729652655426643293365075024427124323704111611925782064774538297265936253462539114769562443189505007858404523270444305218783989164702346301180630021563503170533544087055650550542010500764347360600227157717066723939430040645672943457009338138107585801354918898023705791305666577586143266904390758583652890438321366213232933000206688727047910974473383242883615564291060448852266931181000037440475450887956294680202711731053497212323104473282738210068906338934849705735492097305158884846870172025700124173566117338238476652628399849621873436653012768724794236059895614206846660624057005609005344327175764859089688697457494392605820933944793289120021054902879016423559183810250524234091205249644677422746009632808801459089295712023366071487933753517890144335248335607411720177974096494962978975986534782718888132427336133753878651611985662758853823516932627152533440170843129199950875152206532524424201317618388566434155313364804053142042452973733202263351783212399327454689035774777009254120453181269671563583444795324935386326240822148661894506273439322583774212895567414521772516106401927017132274883305194438787887303082070647052924927419819780638658071767396080223495108858321480817616363968080474677657245920176068477399130332831485388274981497912007378226639482859631873249080750873622655553867340963709405340771214955525933245329844014542771499040826904338947816196033270489550880821315103987961684917356473243472446363053512348012554806091291989486191071457166483766830595513545012711369566890489270672381577786651623799296182083759682805910835840623492568357119238566195927348852776121854573477569245621379487503714682272586319688155439863944354968381007741524442735474046284654630792823777946806980470526335387983736774542569031437796231250464497572930062015845980100908203369821631927973693896746226387251040364084385180183968546541632871255284963834831406337840434164136456953997554399755490014072390596831860876355466734732302592775826791952290003469553424149017941774990081019983363808227357725049372188733512795124845093092150936547514632218179607122134921398802090113356620897066675945423138314691312135006052782941603662717907870337540171406892715908489990517115742653366476739595822366397135512682283370881718222285435036076868024175224819030606984375508117975555585830238899472098016071042069689543029689077681570748081690209500947255028337389330629763257368019319465582646636707341880133980448024111407047440941628699090504360527130796598694508727960950316189596431325661942776867048013808630102715143737847025451084915808711046157188825907949021282649894175363633500940764931538009607247582169323140086399325450571521588022048317789351107460594959368285906360096337971967490612965092554382413358464251466910917664920425431371587281782178146059253514473087403379935627223937101698674702510459153354531067870309302761184546894790499146382165203669327755872229205071256337116637496101066926797503258594252942378020001835829314931071882184011675048053888508050547321122273319369668907794961461666740580776421284621384670650198541440361080632383158778819363681561625606193717822475628213844089503061153780263863896191515904515889580991594927736141491926985419970071149892251896974032731447388655741110633259918010244539438391068047459908224443836322156821627710533215882529692524152214585974882533570810166970815839020721264799886880285740323718690254032923588421908248055173274031663273071845573212118771354491105552341311027801903888875617203296859020671732975829511426565772752782074548270473949424237688125643229954409331809740612540807863585401187818299164403674326854566476637672112700153263295626497993760673681379499644172015016782595436655980810395149016663285590496997206806729411398011059947694601381409016388218980230108745015485583630135043406936429786247608563583782422896477423539069200891439564877770202823775153548862794798282074276919731108483151895219946066423792658221794137881787870435308677748044670664098049089990825986805831589946934921613959871803166783120305909811568352330196675431153790644520169935821353935318171824830777796517422628178844942323818684839731828316625505121567904613923203564833629834548698864683630122393010445616875306189890546239988719484879578145644771202898707635520033437190928853269377771425509974387779800610537303622866645058642878625264403564650177894024577749570303382314179544513261112185557270492453669513793375662998517628691500060821744345078432277703486383623361955193825455487693474511206380773188266329965043450792875545155270603737445744222736514692063187075593398524125837886014642613383569605261758834605377386146863318277839362980117860195833089894347832418533825138478336403085322446901662028481799821415656839038441867851301840040109967044011991602245107418673468644875651731019517711905243169683565244035164592001641500666835797383327993387364241997170306450168709637659631478307232861059389958829990462941100045528136499987734684238686647210885608145564861250691752903656048631998672980521292775540965598125187748718171905271893991312166992831962698550545349281664697118382265904535957870537627723683090841117254310405473587112448890175657994458019212236246728286994381144684933407306603761458549146850120842351187771434775528623378258745416849303117657701331493947162420117409205386667769022865862418509162377243168080870122105681911908577270367845388023159776735708428410331479218005620345766055710708901425383230324451181141365903816899696179762578876285576991841906166950738825149981345293032123752814524001315122223529645161786119602914633368655189854805981223353715545090992973436030383811665974501796767513277389673699304638007019990740296898501462806520612895171415419527502946710112251976054536598101321328880413280895265454031020678496908132241572826399145426664071331652270280643492868487866661253157252475521980440808638198851810577745091942619491902004745703687505459691202432930427258632525711515621819947851695906107428615755942226304371954212004763085485049372981827695019086080503299752488191024076217729100443296443420942909719920040358437049513390918802614877593849035677872957545144638396865073784762230740099171503692893971465405178514140456098043616452659801404436518363247175341091275892961096927440461415986165146580369884617824047082284544328539218024087424753531397959394609085618515959746313304891028210671117635811583231891892705043624532128062443276684017732952887250358621873398677260762858784824042624201311051385383485046955770398531060058875482122052053566419372840716403573052734711398198468447081350223441326310048193227867881169312916917436856083838029538148292256308725644555909214438242450734178830123939585677937616285049901229098513363800473140572399897937882506630734663399163849364285570010007061156785619495462825429517145207940225179738573402684146565075489467333909593486314482862396341582496292716861626244470324538598733093952703335297681004170871649900119488589843995566246863971310860222217947840941362286039768825004704916618798422936377683700081168805436758529623226791263876166547285762088882516233684502486733497548386794244423106320956812181648048458659039834598936561103370231289490022476460416567051714872624686325220134367192954781183625291417941916141240195204385499291505570981211792197192330911623004510981505023723070158574955873410031472082286912127172040052653530304203287009510028549497038788057558031337440611028711123459283163880475565773618041879214996437911581817604703751078225605889539114618395378393134420604159301968025240633817780751464098802462306611897308455703284748294201688091097224655951662892957690095635809975927905442907997765503170384752506564397115187774543432870488421228965013062843031288692791493748989886840778926996575508644131337268937802995671453903408481139139705503202389986658197648662998959833871136149187744652531799771778564125818362877398149803343489045461598277639959333910941866556217445457434449923498218361640786524211067833648702622221935878969922304526518748752630883924435926466155229536613974335731148607354097117492582261342809546284396746953752633899126812947395114358243457799364362036368591305910350228479051439662966053375127473150132281291432948007609965715441691276169401394226660708320621551452676506939246255139500046688637682954649462352849579796992432369698849117109093573497006881453741159901682332074032160051388094358219522513429802597308266741181208960409631566773787471355844506029731905536242388065559765608405565774437286454845033174307243616852455243913433772664733404002362799124339042668503694254654062416398771450949424504734886395668577329055736850063204077218895182207374220330413308548375022870977997586690347798566829118820860830667688058740561389488524901327449947819304727825488260405904928877569462312383433870774500219670549540090137287965625393588430682536402602052114861734630097854959521286424761019724281651928943555379569722991144267388422206201609793537394794693857266679482258382887214066967735525485778558433325250506289926616633874923481027827582481280540282098567193544061317575664965928013449623001667561440044337242537208390809347996805755812772118639738572504605073873258294150341148375670162129516571710058463779945065892033240403281778365689959662490258395623540221887386961200571253406005722846978904456351732095314082733803065462564473376635703248144409456609424857069609265923774508063247119524317397386884542642238367761773723854250964157896571506001490987086030320376799484000709551170042203445663995027609055723440383941240277388542945863185580550318349292848202371600915657034606921362231515120502958037337485754741141497479916552679559075864952820960234558045318109174189082969279941468533154075911281908991957038266184721772416720764543688679922101104050314011838895533789311440430895933936852874283738559484121472608739945001308789598968309630293947979081417730823267822737283092968679963887956217959937298743706357420248475475704835045959928811218145395697215272263507538913229400715780437254550759558125592605518671888629707899454738100248753661092668649697302975895683232346757670115020249399945615909903772506010934546263174329876374827822795211451649091794411070082698063255255254117410949782383180053178258949688326997836439114734097964845415795278820115839507478037888474696277820171019839858846670918063715562251941274443617306168426330584034789831016347244797620718044892516358011353574491698902381347365405274814796862887590071349108925139190994503118851407096269280996770330134500017489940222361636612608272762403884637449734716261219190076298102478091977490974927103230664812965350224136152040967485046788441957083978197914164861084397860278928821785207380016013830819391630627377844809248621133839041148405956339856562707838494753737928625082739310391078320532447234755792883246308133902009065946861576483990866683664571818735416295583642072106709532367092730357385606752680447931525040004570313130640694781512337162662769372650117671625584167967873215427514889162087710468879552746852386052324712699545073276980523280371441971337071417150829768453786193566109465629750336375377875193387277436687794171259694919330865276503345901712034324419474676857272750609935232642095141490638081166281440307692416958228022711443346158521633146009955519995991205835614846900459285598194608394528045430569644010376159303997119434635741700352094398753578179607221147187866937629064658408342641265931318450489783975532110127271007213781425934120792950448956777625682208844829120750305974280321388115629999032449372578897340443750673585145909683434172604027949882342503798334759702490737341137839437690157674576076936823016389715839307113756207684444684116487671031807314578348568457842056386657832022222466810515356905455399406513059677069079673856792020409605864476118570693346881471119505730659948363367808200886580906675822921842024077403778985120520033605132189494723163788927116144867061453963873883263174051711975207205091830155402530278115138416298184577480330444420239574955901966299503617758575354581447171324459337607060820182776516744891703011745425508166115023597510957002818264461501031555347236463104238480825345153998864055050050962176894526288425272416381243216393133649005657519782062383659038872448488757243700544526178082989445709854472177306101620918790715204967301523911671535180771808602114014647748161858564805348906181051666760345801497054227094818924704291924533393010798519149903911498436390014101181007178401783633110197073276020000023630732047394888601213931871934075766578588944824007132547753085435659295629350691416379212908662277363071651581040691893585201629547768699706773635281152742729573026421464593519487870695461622964053366237295701263063097004237489793273658981918306818922098411418317316105017541576220289246916571069482591454223698048857235004030649534604366603024329026782668886982521934720609444655998825057613562803135910983051134686523698734981329954485085002763419968062946886322125067662200390204498053235832927441133972951157663007831036417675892908767722443815007568041533724998423369728668254868266964423362836171614682760519720154971850748401556051880084203789911512348825142069322420226422924562873891649135400585467415788541680395000154478173307838965181437140654851943344260606860092489647115455765525805077591356495530721228689755717525105694295272506785756491032837219891350891161008887211630722846687049133635748848981588371682667552950929062162910441321814633762406917125297804613863355928358844480368655847370139818289251487924125393923824440711241174500176834015452854969104516684736923275908406008393943734239143205168723944394658881687452949941185054980452954614396382328866321458751728292008186607416421833393447633648742304624329299278565229999750580906670075866836675837632148578770434969790755297588395828698925807557174963124048471700517401111351106299634439738576373454146791454758750654319905343912617500633943960291152010803344068619511593604740228067002381202866321166027314812718600875926571865749946563558476544907947588461557273755713003471241806611759345984452470962126641124669134380173273619754054514481943612449377541718069832769783192629222171756245776285154303758780990302795907518924765610710493963768669392609280705526720435219092406650686810146737830297487333473046558951106991984744923623888273206342337276338367737497303887911129348274629868974071585683413910259621313002325971123808234587263779133094651884857903282819872305553904642230349175786493278569109220932088707726239121441164665414978578127020001582224614688487224498552607416874835213775650969106953653309870813224769653602348880010412010486210052521208279585429003313265770913074153596128475653661356874326870314169445538235214467064970892293454342298100505931138983867863349089340830290620778760059367525834441677626075730767301775426348559914327420342552008757172516676237088317775667166436956146885691389530956205850236169430420936086154746137266799053205669815776538314645331188972469584891164810512252870222212816877835865706481000237525127082023245116214231177472926967842988205236509758944978289655708453321223218251994784117810898209541159339203491509624363264320959248079269778281218397533274294531161278071515389611906367475922479556099930085735685380114524001678764284625182478382959140203340945162505308686924655845503261902192435670535882525831149715598403109417257268832945826660724494797193386800149077358981417681777956493824288170480684618228601466911223067485647843687494957600055447871295425648367849685231566888179597035172378320920607760905091577432395820964019421001768676686509445032559542082973710523970948471078422785268183179378763074722831680691698310465536459231974146756101010737167546964820669860500113233773983285129511867013851615777164527410188394426667671815863112161441530361950054501680091055326966159655122756851519067930486887789085957920224322243132334754515250489095017152636821981537819885455937201171251689707197360511474619397604600868297195998767552594473919223398422930685206018009283654384392809065708723278264424251816082376175106521671164797693930112678291773453042072363302207389709553322850221024875186880865312530732076723236071287016630497474000319554113747608054610418991151177914185252391957115895115034090998375577330432675178784975408402287836089925535520764611599051120886004707297058543100084353963224267413131568295216051191313392008232177377739327136665125270352040365228154066654296470364252701260418065262347358136349647669900239470834585627802522266646230779534445340015576016127291731648832457196916823035227689623567900210953663020929369906806559543514884142258075363385378237838779180662291066426024151948281604620020094881244068596016172056708780519907751411834042639743607784668194678318922679789784261492369495358956717778756460961667527437935161454234893350654325192056993639411586163068239481948958337948597244207665369430323888161980716843710424314321871806927490737808912075247212017770004131266445076626396980627652947295878891557925470037288715541217873642915242594302356514502264764830279499802930463709774119947433261862515972919133596899553100960007540446624398251172630316457220622050093152313100524999516942954903818086517785729246348777751603934492535056973907654552221540453112318729527438070055411800708505300979972496637597789627402426143807868636620192812775188239936257820787834533321212039793636540949595572678679668287474313547048791114528056656949591762185800646004318152389046776068517720014422903338098982254693585623876212837808234853168480877499690815723809524736153812995597586083121737327369380077290664866162391609706270352439402952478846151747157997243263603102801244564735849002748903900764017528334704356363052029572021281561222480583808980593447740152319960855383966416569737671037914817682573804358913856423777574625005920519642957085608698727483228148289768349272328355767809259182913357040339942300585769147770036178562325544562555905063435343075770713877385220283796560996432288951009987095149961261070652823662396306783243302251246003441796395121088021151368167188693971778091462946588170337815133242669391235084469451820505392073368831806815030969509112947986041028207072370633893736784211613331785948209665654206193987119632899129276636886846949948542468753715633458623791901329558607825785068320300461075491971207895565639025403002495328307507492883788939326763391835079074793828140028322805487508284547431245729583048814727811027206232086954579197078960625586104277183627083018443330667677542329568277012009555693833695047690366381146634112075110081814277281699021875692649023776469968734095642530482454488012346822598064557824108370446297667746594766134030308000882061021399989326316354683340255771820978654353972990640189688918971871818460139406483939719928277532366756875310404831863036690666138831044733049344911812117278555775202505048950770447546662437861307207688139758277036871619163983379368656490258678903426125871281422734875204497603931293411284703416340276143013454287841925022984828531264341172842690602731609979102802420324350887792662238606620390621182960992442585194713331030284417410947335592606011059002433503731254762023871680945556484003171918343612278561147423083896250179768212865181079462777467573231361428178607814421905416556319808687011010257686758160165340033344096633513337948196070405845513169460460229845168965396851708541029749441137908051768304789138736254520763820480336867949045075137315317071602557321266213294738899554657412185332556946716757692209944619215516513252825323832147313563841964322672588206715120087726277982123586746458981268740432847992575006179108560885978541678801147113958516264166967475199373159911803736166938074292396270840482316384364495157780967576342500715809133355884600698799872829674648982098742771315683387201281732484105677704333408248046036592173393808097819343236854338706311968094479440325063266522462085297780287086934129767510033318414135317572200872298440966072758454754588123679715223335724567273050454939930093285404192508359110313200784023541598320221792794025591038241044078824383954117883380993925219072601728163893269756403971469381007370798772603065124972243914445567196601739728382909673386263597069655698172680390410241312704574902297530203520925771045828020822634495022647142945350372507941975617238272636134031337772405847964970924125660851915195438571113140607998058903368285750727062718665968736750420971289112448764975758584784092432371847228103474409640872364114201290137380727265419857194408448147784574421116998401194381253315256052498094997378854193401858195957268811864575358184174573503972777154897505866418976292538656436528994498953441234893573576663996899439259304963113158251514247942075624205623213304503933274875704691002260482597645216488862139606989712256998447936265358458483206392535132194718840121005293230270359291939550673427026194401855878237700797626865579551044030066071544736095168863731889521009741865495934511667446335325594044600231762224673413184399819746463029232528622849242488672004505471675741352519658353301218078833975817799827107844448551267168568124736615306500820525762960808075535005674115195980479143781551435113068229882667955119632499632115451798836589111929554762842862672996671074376618934072320107618977935786902960161830030267533239201804333076809949367479339232034840092138747956732574364170247661321142972590102870751943769186093189636925975161776504608016866309836812374306881916629456936472387803873641801202575876513784977318331941017742287316407394740324604704438021197005854389888795580547574041866332115946630837174558486007654455030267673097042378304997323596695327797152278024272957242964543808852240691113391232238472212294532216431223325446542632875313997880193207832052650447419865664151364284273987096631866484155611965712304187052040006492615213786959568562864680381404370457285339912589179144396606701118432244255079808702146801159197922606956131517550227777026692974962313497023692003777286919810668981872064699838030977879943504523691242677496621432484747514953314554617879943557446360706924428276594058297093056923719728542709563189690434961907640898917516985478209718408473731434138949585400419712852377077873666542430854819340374478194592943974778368626467566684647094664854031616246609033003130882029101019391992400900450172831048742799434267998144171339678088103517647375243704440292918121015643845891569535524310368240668566691444920741407184197983893546055061442400323013990701996079273878229436754766860973079126638452698992332090141461392580164441135449341270172452793528177765865606795842948643385480464439508423353530218789638797396326926327033548104973801269406737702187750201942682699244046750774886403104147281872193667921962677551302337138465372243338436699870399568253687995775311038991494345055585998604883058670718218199005678522797251672254161296206078896570575752727388029174212955429699247280345801446161994526131951444758819789430371580391241718339550150008626564316292921312204104739058197960147829449212683262893331334877733740874024707349535676796012129427850619319883351161112500623854941795343542156049100739323679407090488243943237989956054354766805310153355341120899591283208964337781613917883536495974113670161519019799926364802219355497265834891932901468063443344505102954089681926358460823771772971589993909161914766598050761939389373653156229332517963624547247324647212979889137290693307699160282407103854177041815490319131099193678804858762214951268495765742421705882544216791185446991043838443142080265061361635276970921350185524982361128730879877452445905594961950356315121768352211121388150962353252309951701529813503673476652417072447689410358199204171172286092335832318396246127125974626388390227656344220226869140001948263594379906158485813429899349688422704872497012283135613101027241333981143391318205953248896431029632761780432402233519924678946575755197322704137289501564630148408812953506531707600657372219045977996032568255253248336262022554363385838506058362612193185557060097212218238076457785903663079791000876296428182556967600903893928080223319866748055006627414443221064582886176497400593104277850013764485979530358599969527227406667586342118152369914987678715937846318614008212482579100511241042021329452941409762614915989561255958001953662863541779420729315742376141794171973810485020341896581105183862091803321350627751210417179955375681978609350104563450278300061954634195708449077199141424844467069113231715388899251892114137069033193664356203587548310202696282558199055928107430855576681397643951178308949333826175283929250953359246808947746107813885329402473183923648488828837476648359112110513092254814000065590035118096246574151274557283816780256619278893215000977214643822892379434740972150051639681854013066891805955575036238152974569741502901672389758452623079339231395225165091394336635803578564985683394744251905620385525192891286213768783739098624442053975994431631251590141555968504867643577201051167994278660656072409870293390026624901387568368885995815698432974659062247847147006168366350414778956573513335537887312661178720772776388469246447112985914574111252900691876171132402438243382037882762236768832873199701164172360092875107886222829676404592528472446001456927159767941849077638668904161033865225875258121966784589042549137351089476205473191862711128680483691123336760160313371855736758072343765952801483392128882895153581451685868475127515122147769540464523766944286032381921866755224522066968473825949454960869126390171838393685794032505646613806124206912814406773488630299101881219103026570516376288359969873729865941219886618966828287919439626348785585346468145064109262517359577587257124230227361650593789305123785811967175866727247721310272111695663324653317851095378497523366096726489819278027120779216478589424185950651643922820369936392775918343300008041962803772075497520328298223985396479260835403369991150407080420977329370237928624235773240410406188985943415846213453108031333818650476100814344737125761162266965208190559063333386092767515606889131072989467326952175231118569568826866956921752946270645144382338269837082807111314740034924813090860946447374720312931722130863548620461071786310618778804523068182436061250217211289845713048036531609110842613183466385840490791124070412914708327438372284630943608600235333629142811487963695879475028034024506358394195124861192710462515262755186562739634495305319745020840315414392598470783392384447432658953527836200211799421898671377445404350575823793181339566569233122454678123795750423202032683112239585747935796417297723030404011765259027059953789605628142606206638736226221815376417341263626073071931613565816408362483330832122151835943670280552614991072414770490121428026912352896340057700245113862955274063137644117705731070008275151056255891516745069637200825122278138672938548556407301052627694026504909949113505084019849698829369707823881794319350631719678408359265864267154107620590672672680708403000857387441642649979573247739078009878218475754986364525293298868467297501791157060803959331245782462289967551067322298319544031340426670716278166071001619124841592487463680612256131482602788382865595135947661390968514234646272482831713767420844872966790521590609487153158574587283550156089563481047274384232607218950338642329557822497949997027798282262691604890359125814151204035563678323786946303617395810068829117352191998960840101038120059635226019288705354893243282924966478792368749221294015341313510865255594888401321066392834794414720461126646696340592023314977106249780368493988332497868081698062770186823256283209397847682349654443595909469460750277697606085062737075539111826877985363396098088140513056625561331218451735989637644595850924326816270046601375322919318162995484478129200385962101162270745309410496818321900384400657868645929073546220255868605990621417956445492119872075108970607351224474939385637328705569632488262897468756347588775427765884308072754508745902814103297788569238902502452298855129010474891684056894860696851530778025178696808472577633513472568643278217152315237118746945915439273931438592393716884671072056222883060608171349250157405174434529505898160850836141679516654907178962940860671859577529874286810601425503258624310445260174047457445901958124574762328712708976609275318579156034614814296617382124675396249543952291145921361105205441343980628856286507152816069957302790432199801314259225862960429499175904517226090391062498345084369308363314236524664457226537359328094210410070414038797641791575365322609965240302760530801206943685334911832658461929199109923674141094727458402480149687517259681855651276997994587003511211414159072251023245330255316048247636832295586361159108834494421100666579351296495947376118684480959108784066842516544168147985521270482511812720840435857163778050094088083172932513804660156768998995693814619472280223968824586048700711296434572350948219367582274585130325522686629027408545631663484717528632740960246630164128408624777236022565987294416431249464337677272486024610355162075360223216267942655983489256875124082122617503467956590604740845807652074834829548618237823767665563308434652434618818136453400619742379601537391280506151724062230983284980644484894089105235893953037601147881026870920853805969043469994323755068189116111562583868537423377109728733952164410112259305363165054518879868114686547480868157338417097676619905047406569459950459509630220546971329557047703876531327615003216383890198707361293202517385892380551860104402051464778401939362067489297849231075751595646988079074911043568238401987001307748266294570164202597138959689310543367111620826554129199615575995820190016762663889990948136711894001502975607872244677960884795530565036618206369223255065753567858792246926149676421564340250323080557883065407546241262572766002904570169464799772503095238613372574476844333522198067531976532415189416554480445405650273890432963523476855929315763548419170274216757390703243067271182067995712941022262649771466456385912868262849049356810141244921430091273158548161072830955055696523583718821618271114227884139173455705357083688434311973175973780123204606701611108682624574204778622949487822978613426974064509881274465556904537114501683529671362297579808372946379175006829434591734409620372091877280025928010017426866543402637367855318923869927253617390079710220299456548461431466087933068685502680362115625545176320812359564358396979022952870684274497162380135577607912349213520244669866399952078132125255522358325971936199484882516577908672297023104021355777339714593798708442498294982511649841868491008916097661462575259209941138103550440285910144980955366014779022822032917704867731584300949875033132745524560388503235218685138656018926905859972724808140461991661335890106096681394944198452568830251587697656779380507044057572603907244992508710613711318488797206328340806824437935087591968956683573128544691329793182020094917109838664539646132603231074446797161462882036050294152816395350820971955527371906111526613067086776890890008345823899427314672722250967244640454473786474695393862795491591956238935372727196084032487204233480041515390358275215430889783848255691705970471464297846387003334663819442550182220753981858754554721555396262484076538471925973262343284566814037054522042101613770293239820637919377304788254832827091955164892264595421827499342885046276309013347195970283157402779294156366452363780658684977071012195555810106026609385483891174282836037442197296358696018639377065291722618306216076009689651350817158072896426740627439483702382596162697791596624066718767672959477973308681709638745615477546886439130519872374350712319018469481454383341920741184153623080633485860363334601195559897853681591505340860182181515491276426989053547060018985760858621914252119456213280768870557877604069239004623990064526765053951953725535506760668944512804041921971890726464454504973434661075668309885821542412270383115171756447987071444927575063665232550562676759159818321596148766390492078708819794097642475399266080780360497062766916944662584083132753970253391625103712016312524733609923895354436252229720187528932125280890168516231256661972505404241680749778285153778217144089581465032769574513849078385333269245117386575602801591332229190144135498882501316875955458813134651681705773818202440477386960626037684453336229616536565109416348570180006407886856144198965745555747522992686009842128743625982529070737478756813399438756782813441294003620911726195718109126214079059279974721882979082009475338490104751763594436605301882130154344922392163432397170822325111184609374132280005163493600753232002522955282013296412500675289520722840355122405675414738195784930484908408692757745344688560287221210928652075080946872929818080862558124812482458289338782894554408105397537155831438693616807575652547305003647163565927512218884954461201604147425717083173647823437224369118395776593681219543775539071951834391784456310964117175507064764967188967121825993851438827323333787614007618091147403233027582401966960529489481742633835816160692459558440332009631090867016082556862043523113392940626268356697492713127169443574172637508424166226145287287478089373270951301871842563117716104561630700920572849628448711052857919063505367688681695538024889178879629423833567484085974898325967435300780679752891003092995982760925982442721959016688465153546372896772561198187408315078155436524836191829392308258022582860137909133552596271948693622884620463426566255703361547453613269899551936778901843432234985861167139197879412643963342750713670553846273253652098742994491354428378411230024569924991049839554443387114324172210453308584847499271338528191975810303395484377156679167875999792175340205958221438759598479574214855631829919546703590629973871815049163420864533315522450520040605594984691439716796088474100968165694940369183538699511476021215824206919012433813115797395781353358006665844384538469996627263846609730567023749688080201896751224241421231873805280160375178872835705093288676092206244739411734813168012860631107530807215072399917162622250953896563376599238373499718820392654687793415911703831576599291031854520545138534696099002185930732705824653315484990465520223833116025306160191293603045413802781974843350696014386781492190605202693736272439373504933683041864015642108945230645326721408237125586392135293429710551981473692890838766243258081027928468384306088091044135200071507126632037972022241127116850638934509877936365292279084027681108073509574288872540072762203943534262788354797189566842479037168796274680681442386534355528452170270159938813340461062421229286676746253032820370124747450359864910229930215152590209193676943975691805303116405833004643851366496918346820661490929118840585991376619378305094624609497606143474590662744986215638287160807110288150362880109129611220453982512854547711118031839557264615097844661005339619217499715983934215583705703145586618810938488104849399578484757837168242984592494697273466228391429558849984686875567767575175486404462142639422877045753611194876893705992253944813543911094258250641224816063415282432470313815009998571617237179423253234302086059332558986647814399901063704965800550810275403941238725437448967350549108596440968522353785747911800917963129952625134782538577076514582680141515275088535925164866774270319348863282728314446461672764809679971955911782353109089943989805532955885712909150143617423049573171470143364797450336354427116842347852316907447038638210239056325940732864401223367020612132133494940073611402683807510219855529438597028598497057882671858862005948105437021103379374186767984132944256140488913256685335364538480132372316381308474741571086037337878943521830620578281909067335449682529325307139530553972149184134903855438097890050586518837214093832632124942507307100145650382337490039601966173081507456437488409416881237626352695708628284428868349202033130538109308052366580905634971037180953025869590781014813557705386880078634975047951869021623407486175620034788046315918607939503132178886545202900246690368976900942329102761526540235011964292168282972992671026990423698699757613879859114798237911885808572906687912163451823221887951270664529543394241136788996884300765217175525528772379591593644162625545253661824836666368507097041857874011924537975143318059214317613690877962714792545409647508257350245345519325804345881084587580672629000998862175171254750909567516365424000334017017486651634327071097909909630328266168586503413705961789902347111936825020847651993448320495688859789191125558893112488953121576372657775398094477903306192848928450327151543653359276424352291289806761035764067656519396044751940389675326629073481231127052256284550021865698238459333089549592361552973481406789184907267103380150257052858804686381694064578871409793350203440926883386188272859244900007442239349918741355459142806594532523370077446267697913764279542328589536191000689483226298611756826432594299778546912268191416548823331186925110069638967332512974954598844555576283486494538162628895681714617425693190448737802746662471882641581849253408670911744190359724211981800082784082662272751141974283524215996667191287263949399837952426472792197223694289519006840290556071074937630132881849336928570023721706808617335364643681352126791492132143842625823582456505663687732879606745743164208156082506483924285912140378220253888858807617481036677097954022595894802119513894926387989272588781845225792215160574931600949238456156368298872523956857724544412491415366532006487604410642972697050347433665515600103148059103634135358378006027116824771854293699926376495071561374177399532304905398917759075923051306537762796504626339230112393700930440905853472669876307684803559717502063388474094806205858705570082952178303475273728535438651370365828257835639008765773640950856618702271929928767711639658413253548165974609164656712820599364220920664331357344961931832376074957187875267932449614486193743050937805291994208041635555144606877744226237789876698143118554631143771585049244352146067145085155308939807146621906881964365426439454537948831980781584310930283912093705902763110422698158610599833003876444780993522979007448177255768846038376393605800044595076753163588234807066317395566636706587085425646496877924051362307966536505571622798418430743607930172246598627173524865005954047317207114909332961509421730963166518388490911610777958678565252415745292269462993532154560035090887264215923684874203776240691042033264888195086025632783120356781127771569908629303429817001260037098340852831634345486028156472748394672159052587054951988196617617220307256355639795924240774409388200153642714675032387352340426659182974444215638674982928672264614467234641415480282076281730979702641897741486776428894076215979715931628880377424847377336088991152226180688653319916619667559638755967174026671927093228417689948703106344181268401961677715030586491175589805323667298731024780365608971833392579508107666955626287908024023996363517476918742236541203034396971754276295533756717771095610472959081896281927652612398506091840977477630948781136673022165789627646273933649618226357121052492468169756767204391477083669130534786446099591088521481555975843398159903983903949126114493739033040721334301532376858991082724167498878172063997008757984156712332586634157306129446681884385639473990730391251425647342648634890186554667104812417420633735587274939742373924252737010474854929360494358736819977439452968208124023681814018289044717134739948570105755056080726566935267306198856214860036493570078622444733900824446135225845139626161426567945122647954888993756738566505179218816963665811987264056226200630785352965227391062274026316535065869524151041201388863767457971084726028559088135817898219619991887435933446770108243876050050934552868631274361360267772358943757603318284955395321213909834974708706796946215208914757273527330663030868121479328584642428669275109247550372086160501447873726563939909108384115353886202483657984037544768126371985397303150681231201786375166657570267930010662310403330011603389617857759578325697298399977386989294161756608872172716844534576943017157724223691874276372543834111073271940756120156361323642663682524958905364118955026443597125177619672689993332162866457964767242070340513377207268952177750832901987031796142138782840124884383026148128061784966802112519389832926474747095554203429772525225785759046737761134191031807539078468166853765566529411969815578887321877750665691887601417532410431965693531316617680883365664421602248394430137843773540450839272052066494741474172354367200071599402219736452217568169913538566775990478814868887385309770453700439960605985389626790837873634797901451659251541670000424737570740005647574427801865225186934629484280285194581900804528943517317699496523994652194435125707370503574174875213097207058566287842669646099734487852159715438840293291998926396787473147454334284636135348764456425662353489906452062440424368547281196693738767519391119194455276493194610484678461960732004172259512439185070586095621249199757985623253663740365650473879236827132698343055390345446644761162883252932891253385285526500754350025467248278328716070601824799825682378582427117152283088503403887435613058317036943817593756341754393676159037990074844077099194975713549236853634529429188748373319808028540390986148695573419285848884156154309849794020829967373184375154307379180169344964001061629219784163378145032107914938306084173475995183644189072692826401596638057639532966755225847297620721111425398295946632035070528066299536496508411629692518264604437779384484468101084993512339505863582569724125593688732150109247027026195276946622504308804931822097880529652622044878495445214904243847598331370201248272819310575203177715062771675234062883512263142292620868509192303016626943399244694250985478488337025614030848219794424928567026082836068512869114966855591003124713105191292841221331708700887624018968042239611406763280644105179550936550748515883994317119773950962977706553250170158735095522184806224296868355589558721120222787099109986561644660472507498586295527073274140766298348338644361151866873720072429349576656345899284100236961930923917773186373005274360939284333453917260484133282539446688799937407017788873628927500597936843664198635284520237841048477064016444569134810111782300131161807806970050050658085411818561237761292753118597477339951750127412188224197061960696935586695023596318273402736121937244559545762263859222264172085435582624979620999365708310434420497790683304553549853077402545685125137515616842169970192535392759402556985918642494966361624225965285070997521873568763086003527755792675242613823309734600587176404102040927313290085066567263948679242087041044643944682056191093490336569556946325385762768613947391297580595567182239943289400475184499862627672532847927289117739845305242406148418348347291084829490647208738217398796532293562671088791990406997952726833027384503215922702215031098836330325040998879600601235308086680581959500125145768758802078609836436012866410466190520078001142826829454656351021388797017416199363008247440191140097974336635003990300575439156477889461901466065982581429677283986863530916137330755877518440370495434568805289605522023176963797742678266982481515725912202787457618625020015356615399736034077344864458251606874546808352845132339797698841852015760150465847499670189405345076373582502852502658441559762972975624526896752180339257599399531139717928087281838716385665967998012392271852124665386322592742294152050550076054804287338967109296188074740471070952069798663256519270350995193365009004420819777911219220695662942245645840097785419670547834542704472872878372441485444286267923088369473486095825175116546437315802193189084038854302474982351002248819189439215419439485669911004520152356398529198346728942494686423092453730488609030863037991004013252158880542681839040513498632980507070043425844671307684361382193301337793415285128182278431849021732598484604459637900741922091609972721618369766223947712479908418899476470784775845808728843408570134935038841295702999090812914461763794317037984506873862806009192898056581032273665892770410149158446742221940286863288368541193227342528284173751676820466842386695578572769748352001874166932895402933479244333637956716335735225889969356611358209727362094396328610305553395389936940941442507066471379944984785739053449028900564167700362464911230937948535063871650494142569920796051695191601419014833001059082303388941674746457998151560297980681369740133549955158580817189047789517757211059377171554470004005569446465403286586060597160348582601281939196536432966199410159047976983801899118659251223946602866454995633050795250856461019389210193335777613098570759434303309887214538402305830812714854964130382889355162445700905889997739422896724457880559988721292452451552086090343823309179939162127946260746407018520359198176606674951350705159954269715823412899379512682173640661884416820614323998049536553791631752942428084126061543488023678054591208834569693250920046804439930552942388230905121047585161717349769961438097143356944412499617782687236066412238103507275176320097177645354208014748869221424594301427209003910630237346110400759454653500946348707441822256134925099565796900565773906318864234008315505775441185226844552377085526846460136001724805598236260458750733807338038556827405120313214976101071711842590107765586117288562879348530547281484705641574632502142190366245431811821876658571404952748657208981425547976688326146967297185757507536045244730478283278496449063628411482469303898858241047827457131835461358074903810067618259434945101205932358879497845017007800528139942454231867886230338105461663253542307576134738962164708023808495696509975824732254571065854544103289602374810041296835967489377213679228305014056862075863885819428463056808939726156884392398200376847041572129622725193284575965971108500432085675181911390113951347336785926930207419787421944359102088976385024245513810013354017481671154544082364196283742289524605531784223826901481063370676514910194897047225210409740136057605115257454703956599338189002344962824440783269885545386992019633864765962914679345603772924355175889901011943974517142860740429561957160629093557904952810351384375973511421523825052386525009980831057912937266191502940022894923764851737019451957303977921753816467286030465069546178939780974219192279489819933744125646358390482756222870441773490691542792811117628031525509107020311189203827552789115732666569538263842151901154159240154876603599631633719563046017801354685640171491422557007155436485112436541170843608258998757284558369181454964668814630120354955452749945411736214795519034924509509809322698940577309165623791558836660221428655382243484590089358678115185621096300583506398238826899470580464317583276762742487111678619428628795369058771212083895604304804147206439534850960146814686295686144569318631376700676183436554576689907828688404487629166012929408980930158464064465056947633075328672967649806929863064674878687872356809115241330192998387971883442697048127826221892434032233415184545353875300961365208262008993727002706189866883134988774613356749981186010958385982768547997519349795662791263527422384793535027453186235775945191067308571906507017264718585641385365621121126298591635120986508343908115904189195262615710829115815274957348714629550095525547194684692065146561753532699458216692708658386025638998760389151042465448031821594729532701876118214345489382441752562117487621829314860159076941405415813269435178068051066242606437393865319475956494649687403514042436112165070850005153044315992049488870248337304868255941923847703162981536093348311445825252980339894293783598010014519001669216373718322648605201653577667566837156029193854045286670584276138349553257730697904026910390959316833960254577339002346972695668543808406788557725680728222994491574179409262129654104216754401865943533172820172977177454119200150969277653272795959504609481350308354014345705191589987056120600724003251005996065536633814405188605960514970704631084900849150409901951085359845696248831573699493220522650201538639074785032452963671306853690587853717322870079861369115296018558552875928824213403405422214295299145105382600854238887394628222240982881413398385169899610157515232987373133372654461627433285155875323375607667486028633905296858977570460615499618197725007096133791896761613711963979702198110375612593535461159860167187416877306570958587142474820936502191869177123121099527188986181430758875681703716278417366808599001251851413863254032350116243039025988417042157524929196187125487036335470290720563461528186145339381082685166044644952092011044371202184166273487059680119175627433058866536941474507403264583936634669380613770247235316006753024290580609970627541501097567670696473396528600929314973770338194479337568536091989509764938360698416837924580947737216224012276764279711258182546233163718297264235721566906211719728268733708324565288399300095404651982342532122814942029620411019571365084095535958700159415398117422065091177603787995749387587077150397360302130382627180162807109783501294908606420460301007483443122798015358461512682257922184839716981174519242714690641219273704785145896490892006651290933021132434638395528166841261538094687878168229688396943289825620832194867905388518162143253429128974883554814483358385779990131655475456878182510591327495395356940606801614046778254691812367007280043317643599003385836871033811378411631355872577613440099355121604667047904833806495581057631648701299424384210646355124015868064486955411086818721417016004467594871245522310625312388529923689591076853831882129272429646986212932332111105744127319528685285460603420598050345608312456603810992375549014997616590278123700421438211594046244253926606014096326823905316146088601515631759451725862846962355890297316771517615898688584093955236656447828775712278957745280103545518502672243576648028656030443024031145727958974623108203222356344319249306776106032105632781271090214923385123730310712206368085070048522580899419889359635187361303185342073503854248961264550323476940278840860664769742690065676387914530641435523450392462540610831175451482391148865502664354346723544338252679206984197367741531935880560712810070379283066583573610084273831301149786433236293979503688920885734961237228033724704571034565574612773216425777928463340280919260189878923259999242731834722806786491371679770919262331511218323332036877012206652949635966317224000466238794282924379950621606594939975185011653422250483871984896396837687161557280880734656949959250755607012720357132891815773274635093357988688128652410068832070693159985508687247168878178056337097058918608181943161603577316864239926569334079272221571108226751013437383384086969259652863706867852359747998993732607993272530552328683035509886394107093634018048469567614453444053577389869545410446575551037482863154912362254310251429054411105417956526580463702580358824207515548573545075768334215451216916651992336136135700778874320151021169892748278464554212796841881808595742784054905389915581077399621599682582923257550397794320265644468000710724017607964607585640372001582383504076515445004117554716336177327865079675390567312256071992350540915214206598841631682406280604595215616527729737308399008217773458622355612040283106590651876597423926509296340955240396896682936317093311648686396417549490199098124851353888429588587481002284730223197100289306970339862019847006695263808402806955790079471890667646005565129304842098536461677571676232535176754626965738689705424072477240899365449712423237220377776011917908724730946239207013636035503244372483370460625152084318362812488052573239224737555791992997507574992030497009936288608258633508642296934934238819535051953325122878078354877435009356484942338051906023402650547343199930435306624420034979336639706868979926350511567358307030678422998334135868320590793229505243951468510800500800964966867072796054581941278681265201517386949400673189987053207747001299278121012663228997758206900328034969081397237535331106178088711345943273692868440272793053929284456907019487458417834547182702767153434365943119232687077050885517121437145903286795343386212406999636155613545168227269380269758107151727305474497760589432950962531713286432312336062750320227745089027545942881910263598413777310887491945957850710900854145065728057462895597109103772861090786538880579485713591470111308709624024803182645312119947817248315177114254839589682585579435732978619141174452767673735029167412546198054996624141510692699881138167082082558034193266863794360286103129663330536644422783029375109152268198022174068587095924387623975886230526835102539679527634663014888678745592313089793844749846284072864878112673331248310872587119678444465274177744515061098692875521475065186093956522358628129040414234579172640622110297134053875095548086422245231825204645735849707444300844766705002394488609843132989268037891565810555931417819771978834239599580000993936623524172841699330396921581650843253882589124708076511993211993025906913451620765087845255506581462498622695264422661498659876033866081796305807455636457764154768685033702471955716537256150088376912607732173811723938493802748081602176557716920084312639854220952613215363673140089554968081060185203927859725740648948350545160458024441779687966580330492461294416046867853338021843104971899215404453090645895538984810019945023897581998209547459685352720593765754267180509354349352059025560690004075243660456568193679027284361779521386698657531487401753352824671737905965440483417504446184227160436824393044578690716829423733876939146128893967840373599485156553684118640192597875476379175019293386148608370696683973032959388506612954549261495229556113576428865505386929306759847329212333297190033756911616748928886072901653078584219724957438745368665498755335123519834565838871930723058988147391381693189917240298251652142990561265833610432291875977046296253420365865647395086568702412653109554759330309251959566669313338284659113787042336559911133057985336684533028527877810077791417164993234026491620033704102848279461417983505030039764603554445149452960028546718412517898221288747579727172091154949733178748254214708425223125030315212778537479195873806059652205573659373966026030502041346560519366796452323230922693132619547004726163773037265804015397314172159616198915137319680688556014378454700499842553646852920052863647307745436606656743574561830266634703014601708320641805451838778151547199894189336225532973971552406043420258662897291918456128132435511903702427312481072157545284823781418393364601545480939686409497421871712587235586271607091708368640838912244828607699841221881756442767683453377962821926857322463916133206198045764324225430736610227760806109118240751647464747858059430645863284891009831716407376651296206802182105113556411553131622632152876108650135910552935274629805987112645806942117425783842050398502247413791463773356168666257125709835837914108326821458209916576841818276815447705600313316002602696559199030708779799108427094035906182598078904826082319877513230322128710565200672717815917120845099601312936521986723642346312833048270600794111954912664606364035494720910036217769076433400857072393152580415707352644544893947107353763555574391515166686509416236135502349299905724904729907976119831860581244942915931793376678368916396991021914648782381174578459778082222089584457822700972697592217778833443614100686036798376989613299110866643798244800145584282529079999552510030164048394404427924876428833103786201777809002603283609189088903152711316556710652063483347725979954361022732291953450764797463321452977467635426163847801695186773852463061634739220546151729913186758792905173401884731404546888744618767471763454931227729554206221611826992625712548125043346024167220309442561141370035704146901028847853553939731877288272079103311171282455304684550981975027372790364563458236460896572348045209271357871001882393071940938157582570226631033903645822607327374957388720454260970277305766221706666434039233053771205197938078220416067428361958526692082063149696422713393665874107340676323823220862127456123639022262693651591053565529772822798153711678974606673404236589661577309981357749595162859061204931533901810037311974007675294950785461616261994486406580352714910319316662444492839722297802240941574981067462856760770360904079588359607024425311773858894063991435999220539115142931299185659925354393202412218877038937388163003837614328877420938830754282910001786799782099948817644550817282236545821788978757750402009663967595025596871757319921594458976771432920415862384009846105398400381352874159174343759016982701187023114596574213146347478354638595641185043601758478307301652946447055225354925614120999531926119202943971537046871987062197028939505776194799149010766734445940542237799820886090199561110514282634396200459349770359559548647654586793052176080999961026279720772352657531475772387892481416905776333040323052142982477435366149784869067112211667459273988000141061203926073753878213539065187180242695549532893522613061048706355153047649035942728541573030388820920981306863391622269426797455916366488330909174392826607799460920287650172437109364996355968556743521648919816567749516217862261865080251946196859038084020584182071566704811386475174298351678691090057768602118178467278034980236699913305103571007133141037212748087822851524351549312573180688392290106499404254776876643447166299545105348597593956494691501305332849469011016136382538267846176568959959583624300067518429020680912435371824368729681622301977382572955989195884009284435754528512118459363423010768801060321369491114983239243512860317464247381197087944013422050771595438770686898783643593561238545194332989283981606651520824375118153252994808309433258551062236693914693744916357642058193957862150102021928630165612006102769434990335559316354822987767201274758732296133899251538384276830112872682021738679867165239552669410489315521174890096078704714733762635260496743706383198436390074729177683179857114548911789248719513183978925435866828528794400857670439371407829492018076510565914114362463032881654395188298187755477808565588778220048905218201415540832748266164812739105831721069846548241342842269529438519796321640021725886390537955783645381086006087779369088675727379281241490653522232664665930635380171202970624947827757507077892553160431604816678301515069634686377914402786344292257008931758321903007299326980824959038582241264611935839491057513318023490434952196006718687084966289567324575035897410824294731216894768541056319361334648992158940099716917107875408222600315516771439492383696055042117784934991278009614248864230010044019196362424644440253718987716393042121726443802452192860472911706239401348110949067054829015540462131190728300833258267111073108210059418857627348192919333109658874804147067947027932865264053202710875637979465619193457795841707430073689846831432176127019459548069258199592044392196620740340887809683997019311894831004415463207154726754540262584227734513604370732202459039441097514829882387298581311450374106967037474817441302699453170558008613112786108446006449369225665311768137566184155806854818394230160532952631998070414980217914114168353225139772370055991391947904845556173397784885718478387325162330338613087366557032774585353805519387909438317810001852173139838832994797466696336330249266008790944886658047004377983818884533535437986122569526149969128191262869743166622340568749503521779099383610597234339783588754144225589024081417771060537720838773177786470956407897868699463098507849869648356980064383866015119084061371641762608073886562521858191234074429627453419484510664891691259301655821429189310824579716803220035142803711163879672301409185343616802601974701289861408253663581137651171871151613642661018504740832238936328543895797198255273882994447891686558090622134458690773357724795129277036257851899975462402427916556065125206041437627609241887361318508285835747695901395776883741889516631746986952752697113744386279845796938142214344066866375045114200632845011925660204038991539691783481640696205712749356893026013013917302763360574156444353772475767947023533586224513124530631667704391004766569388283473262276435564298519242749587010489629083940344254602183526149273067141983635520937063519399230348714743647319723320414622301601254429317163043432354468384674722577361170631361038453381195336030001780694895377466540261649128809934849483809970581304491098798684708136324049685252743918648649423870657032385220028268810951413377004657819519214514757987444776630801498763086029272303333918464699773449952512270579167734962821408115366625798678205979870425929416449281885387214626970294392566294098452824791624482593908265235370769704099903780510832319066065871725759591013963170720322666515973370495791253394230630843139786470439927151091887514307750619507642031760890275807491063009264748711060283590973947581020288680028529190305307751651651358700721990878287579892363756450574881146680470604844204620864749292354780450360876500528798933228712753013941648519718733594910238906108326707080169024769188246061549905848204320152424995216418273690837762275737564886616680933330408330932139915588637674984321015264184638687808700858030820428422089031675403481596103784924421390345639461999791993605618582289462171662849955895973605339707631997619962351084517667770019831865951684057610279256900163897227882452204042956153619242402900907493466090740000826568100960567068428421861639999843925434179100417753594426887639836665131721218252242997993469777806460348583850016865010067669624518346323256856516904117447249555784184415165238608927943076031320222707731588441723330849017073890758593166071151325534883671681140384472465611815711656361994623743950362433740232683759088955839430610635156726193253591066844917125082724225167006202047224432773134427765503778278970033747749570499589767378279837634386136593537710463046429886343472629948286388637881464381209434644933063141453049339018211048886099921622210464154706504506079719802434240282005821029548614129508980688099096273148928321841115608121171707837429810249767078433407742114806593037082948097042265067926932100168575660624494013850079308852082882060191926668738767511173452745769249717872603134073328910537218646987302877681014326929558361952389479307420446776556149729399025547692854980711862288367356142472226066682470769470885114616145600702008883516376949321863362503702519448993159369009212377687153832071315370560377056834972062201579766067478605813075787194291279469601880274418253986768627815013301859938254395751313758374031196814920386475767520585598464058456742096173497730163028216142026439575345677451374593777111209047795652581789692026249762350669593800434499645702868355175084314615413477209671031201752637206425753243571994597513687642890231994379144604187648146586493856047947165005057394090404996348336672002195566730449865309808840347681667388910101108177461584680644322394257555445173275296853923647777596733301605726540969800490289175772559281895052427679008402616715535450631909270006877782885464512440785038752861738328179684551241469961072478290195153302684735309801280544108299453805125215641406118963327310980906006736555904607074231890208601909485766469274109619899042206632403466639853617028064147982952050543342051648362618627003792087952663806229815033426055318257235754609191567659746476236400114614701598559768271873130792869383856810802069657181657971219424499998460651897501168966040933560504239667225782642331013230881132145868337887096245327828250821161766116108908322085877595698888702320845524680765274920120874315186856997311577858469081082549726676503140116051262618560189009336538600723097901774868312590240354154983155466842355789096833065385795430222641743958070986021347206041493363809937274274136559695304703382622318445907857567200509078224674683628916242757157595724546941946310344419380315951878063772243279873928950697857321348109387131785107218310569128558938312943275138102063416506653724001993366313652764697691233357414915728974037969393723121324564118332472720711106296839995263610674895773901213944400429010510501786220904667809841870559947915900714076418871950892402328000440027187046045625647464745686854651994795768115280518837529236372695561851008637583622759161385626464514205160070208770960447669663462486691357783615099801637196866442028440365914358505388396644675576537647485794870079836439067660983222459034105651037113164936749987412153301216595894942808190739645003599174903553879071376052941813028168890523936495996409492101384585358343421977631083299818510496494070606340913240371977564796415572691941489815707835028050784372655203024738437268415394383499609831435844056396499669569541205550742710170621027856189968434400383784806750882713324930874674199652851885695931278623275610982837418115924971846990185198871648953426766618266844472642715322020456103503112407951950041703905609619860012491424580600343557517896825235326398537564725511021017465318026311080380755563166224590393517138704126454233631553368588324127133450797420152795634762729961929113701617348000878576301003762326747612180090253631024178482369837048857087283501815341213912408151697547440000621005124628141617609595705917135703669730336359206095209040243768161135080980360807110097110136646639126142658696694406688174797403688239128029390328825590048735342146247847900900985299578356158308458555653201117576439191178623283434721705578737555436503962043507353088133216535411088134034724094058438972612149702914426973616055286456202998352751354439100945298321709545556918547812488925077248126591732510975941489501347887116651020598807858779036700095630774166217886681627005521027704022047386032361078495330673596283830703186845963394188918967627872545089347202251833337711302295050603509803517877415991955594678274168108981353153219320918078942511709137400220448558450051121548085838351594717519757140863835454812555355194361600665890144483380184794205941770205610279828814869738885463746667064926350000904982861121495765382262668303731682528371494939348733704905731320708213158691670162759012423502107540326707071381554141173207731961489872002608545878573922277599971745807305656469802915082168746175783332592234191684641145999204452926030117110215584582625877575675525352807839355304017450465563396026830353750412926406192589978574371067551144348180066773909066580499735150772444982200961099605368958319007014617796090413458210448032278921948669063314402192161451170416256495579038414915313993188924596888683811293521211789292813112377122303153266848175773263244298722906105207811796695640551675823992006745573250775799092033936993407134583687535319967252352672391490789841894253493739652847980858485041917572684827503625264489230164418784846419931780269777403428158524011216754465128225127847602469820793996910129800751468014693893705091066668585840078632124440391125366523591742168177113831305699112035738808131830313357268792080473159109795439795225566895380396731717077689646289549468713922116783359385165113108045682289390636715431747823565776460030156658263424506960944385655200412191319774530982014029439831973318812608587934719560843363288058971181042792051269110218207656541791159751130852561949403958339484515332795277280623261158751624100874852748976838692137489145189902349714581042044401858781875615581919618148869829760960364867765809246484250411581071707983133070468195237889694215127891300792520547538322682060816646586896226041486399820927352090806248070838182509931186798808748521045822698513322793278675970815810722589565147794397399999219664611533756345230302965247975649320956778600450235653498934384251873081526629650911014813001898438082962371472695285087027526762003963511953121960013940391430081246017337143634002945100372117267122802464162031522337941881394099528467918219005432002252908639771259202301724313701510461025521908523500363698767725859773743778771891735872231812697027519855681724429971746884120294784522691744202765608191934328811483938851552032480104742694356242242292123934269048466768397329778778308547667461328789667170838333783435107439180444018837479568162548207212923996493413308565281199485405514941121677635269611794800052866024605389229003164246988027373965134163185040312105796382934068912675906939868588022371001792567777157579810992464101933800449456438806128890173636159298810175917659886651818019921636889592066303603037793949829413953349161580356101946190095788280059625128041527337310962703115400644699047411311522637579964606136369081891406288694605155796178843859594752996246124742829308274426431088661547602794258228832720133613142558858110168594830607813422779306220980138151908318132919400203760649546684965834493330392402198226912665300416713999425225676553213558561370974649026744122897804494062790931739347611809232274850466855842934016470773108095649980086923153641971490685515746802369570280606406127285168209166673824890759641991332280497699111325411102620181294753469257926868000471662112182660055574934409125419207383413881984960812717512617240360448305513506344368283151294626675728567767636585141557575152666860396655076011081595265891906852172832011410793068191229892809427407728571338221421888644358953362720812402757803279541390026905065109294800912735429455349398310086116242246386480223164815495786045577459734838774093466933943449895582919983198419627795156543512182165901076714446763136806236700723135529413003386857048281011420758869337083540105080131696557823583705195289337476040460161328921984202598692974516920703126706626761040439720162619598131670522104065089456558229314292909383126565609233227017940882010273039364946844261894041976397723066411830595558314433145674081422716467347149294400957287899087775535473477607901348489335394690137662608826590965526029195183669529232077912440466963215051832907225501688654361030606120162894938499817827489493246089461939704336267512239322161262823472879520490122620725845830005395080574458112928368115126904886286647646013225840185109560222445581624199703503208006807422643357692275406547093373546300493509866059507142799008331594006221246567086437803650370531227091731003558761801455073059126289331738101528757746846226312602527052650418056332188440778516045441198607557142848327824582396686656346024957357023174946477111312594674602770630969875304232166414401846947006584816566304339452636004364044378421604422699196212912865804280544180498884430731391835189175079623105030948493883482731899770500675770403867163882608843016645634388325750434151247751614982235341959740013653997952747400820170475259972729624456755045178603944191680387287512602693029917651688083035541850012873756523381707584450506365703247432931684522992439977535416326431030455648817976889958422586892054835171807449834922913058042510461424291968443019604045031071799520360947579934413630482541162040315070139408229143388359948198405017745803042818571334542232432314110630691450833486970203363748943562777291030111039479413593806152618480167214279690855795877234327104356916990092324059495440777797480829282016740156898999831094958218531831221426843978734049081893048919324161112751819857712416427976038678508458476961049731126712783977708183342468058213548123642836682740686107950693519015153653588501646976224795032597178103324154810252406473022227417699850820648843234237770174061363573118030856000674265961188097322757887996871861237077516290453910718254510371818700530068503541242785306429551785515983686963632548948024186533579824956843214431588252784417120358064787663403628037284812238719460940247064330540706024920966587136289004722764188010290045246578608173249405289684927945951406256241370401195003940583887595403771681656549600153628259246853651121599416984046951473903673243932456536550528975490912936103614939902732110664103889024113361425439088724971580944073855666330685340502123002220443575779178349544571703229161120365984928498737943834561880774540331840344574313077911963758482431932678982400719547912730761733162372271055030785721959707783149013302085923127451723128066991766132810087115084684763164325075515050877550633220917910032826783652040348814530278159068783226089480568326265878474472192158752854923728215502347505196403120928784721673375064663194857062290270398742862624469432358262260304113970170100324838109390002018027492004114184259737856809130170154933786186452117292267970318634228935730309596355411076462508580739727769281966844421674782262863638685537399980012545235170344959359430372283117017189135506093167064681644551644318452072713124692430623559806450483234690992155029293437039975508000381949958787871669441303838876269228317598963879912049806516399751597228915075866075927606761893757983009195497783021916198735726934259810893423381087694698589130744783393220475705753188467107761102685820559112333904822728919332132714762155884726022333543985400843843377642057497172407038076673855786466610422163822123877493988655024140804232506118753040286338292186157135561397047017694678647799407809094691544038240440707894009652433307005221398556036078488480249883018536267125435174810736428075975488584638727764770295204630910084676431677805802541279355642800042654853607361652152635380210806466526353583523590634282058062978570823394505771920599062721613080987449317796042287700599681844958924540448580684025365631066260860751394472548458286210232493231538490804789541102629064782430132910804854235468435610049706285520812290540591290647814393807850341440066167289195576077355509576543982523812149504286801371342636072061150403622905446582952229062486990595675656997285382097094565935086962647072722722474168452296967386114624290765123392836976473071848449623068764357485356813793205104768107086677969317139913301313834532348419192296230992502276122507604717489441472009131693752565496151126327793439227013054008961029444318679387814231255864077838176175430567921640401070866462333009035677011228508637993262370245574610883372126849186706392698676558873859666929543646106800328949953837075370809048825322880654236815997313670810418807652662825777994259789824160250652554927313664022551533323665394402471136759298612941944561190127402750962331527192319019771184249226615769713355500085730333393688242921865536908025550501962318657006645880951920020544253698807360552837000883853253738584344225031404901616907059162964503129650096823014926652946200993316266693953847048637519967599317576925211535374468608764207312582161524568073503981553750430348431283876125342154945418889616272956457941302220529258633881686330952120249440342888094764584507661510010260587433638866736398006263864248028801308276918665143292962061255096276382490053527321792209775674292544502529252641477223637254821427461660176409449452657705462388552502725842506326575974238282706290158697582370470216429088663466071058934871710634917051395584770021459299289217304124492107980387988763127381535620025741128734448613143867188026257024882908003727909816434120979123288737768659052700740751141302898923013849670565629098178395993309399393582763280145761235681994271611280369102207895255993626347558684494028538130457557054037480376190316006943892828763124808873700051898435432066856576292063708899143042076659003940707770524322611987338812967004955621464216010036391092272947243153888883116011108636519298681602293987144179346877686235593996443282078468640206879037647898817123830321146236630999102172062078859106736114436249658194306831326232999481845597355145703424965452854255850389194746540249828418701275970834522292875645447789944203680246376229061560599678335846101640287327885183630258507038215324280856230997791156906581908954472856233589647471838688710249180206019420867193151824338047433424870173148083149727587321000632414304886396987198319102885301258363252178325173948160376646382382993355818192136017649447881909810364039609039469929143484506877530661191148813888925155486793647483023973433531359836072416296899735687689798608522857380133066884138871454323435940384853895011474213286751247050090842590606141780135998010972703858795433658582857561547010784344397047600470846381373456511636813752581489371695646014122132178160332141173882048618920531862568996967837151534179205851073396609483502066029772977997718008294911601595304530273044376872545962001509906328110726511718811749108832374884543676304301323041295332393744728665337953166323623892373927148030583474295643088482755746945200829693727713398626314706007949465913199697140797565364445240566898303847078997980421469145257011976479986014614593748609148655757081525646584567760040827368740260725057729008178793003824972876116941758112407776312567218793209815611030334582377188457973350924486860465441571344410584089674938150763094791538453749975831035150720948784158249414556313433014209360387284990319388309436323121417584155048109053569356247124121952634784127769721587307790789826321828285944742416893560542901174294672569506723963377576560606900866992664131273960713287979062188274224992296412642701937474890804005812391205169026166233400716010132601718460402251779653605489815375513558669798485630789124240441840956140693455543224990963119024108546549498773923787742122880964825723733559356662396355481394687977558900716040447714938040964837019352310896420551981834585354741654055826272839007714578659043888750596925023669545367247951029589779315430670762780233085721570897303671547513940774215437841681468242719162674533618817094534503924425676102926209270500360821266038309578336636811701287448563256308619542126672194926818866608720073673269364133779287019245008256183126327566472124524234244632575706282813242243721476887406850495109767250079286379755570671321742966628929336673913159324349618080712551285292667973533528042935402679401426943840880774862253931603374613823102365626019599037300179743978821458939677184190232831453389772253246147709934714270970525062607729658629781938389021139206986448576092825445117032714034291454804175217831842292645073772360022596776276324753845721259022822079147075798450674331729750432167771075398759012743961897912422291024189862443326255480207240061665352972404445732935296940690090486215883325517760635856659228345937822418220326372262222790705734781422414756326996263364066218002770914686185469361107162266923725198524698684011278188238037769652828605710124272385858046106956058898218578648212440287638079933362806129383146406757309310138486378263836067252975399864759878773125625432596193190346564862026461094971758270865406105478363155291536645874065937132015170323876064293823576323713071561388205946712182978123281318561590323502809212753151785038883081153548796259887031457142150997641179788089139700147851465718106863735930615734275466275447700465614142376418353478407579314560501361855138632048392085112959566865976351012617920099441751304151876192868633937995890517365036066610901772649682900563377861954039463796512430641517142121907968012270165117370341489957775378112046205606155004485355053973909236312493163298265839122689898243109989964378089786535333815429414055608816355229884417727563498795968968678703617604884620730297045116755273988301333664515798367685227611889172280222805243414261040072449982226906688436946154261109573504087431417589383875910494358363779895331593739771184843584435899797940060733786557784043304026388968696319889642129596955774367107747966174199531237174472717877160723120663947494271363646473330897029387657283026365049650412630262239111233159316229663445413249892026749422603824020972645037662364158682200121462184961424645091264489205382684526282445153304254482941388133074791297869513372426507279096558615976742328422130171142278076960350418753163334458337078186957713018485666165865250968116195074723926069949452113210249811166890141361632155754438375378908220422731383659081397131521864180847989620296388208748334026430323266026501227167161189453181963510593165873740840190981473578734077630258537781905576777183341202766030061966191740546014512134803492962339758893245613051027608633816907652304495687452573971715006409717639577453879805916891719331974749597288485927899042306747935737763523792001232575810103527969328312730037123458005802636676280756163769038458385208420892525884714728829997753937624153483992005185438220251738967121704434231169178098958904724611015443193899523639518249935172562083987959632198916564749620105781004262761148697824179567864379552414130796237656103640899918762067849948078797000792242625397383006303090117556833062339205196679366918802805591889941136125764149053253570482119770661376935440163918572044053740007001882260543156913225219462032027773030719763672602421380784338977406631894323730234176653272607497454470953142825053555661850195401068550741322067060429018591851595958543401144119499558268464563176782539727966417536029557551831814654176471285774748540379953976447346446698904922783041022309185486578573351218638786369104696618040753277402665367601970438697459132423576993901689926607708390474008062520951328132943470750197803883116242710852770216934364058543284673628901489868570152873950463158042304311962882310525430322898587096546716283612893633104583987710883656193900457040811620021870433885510144740455616079180186432989006858990131132246185004237431265425954137545044581588715272483044418023320516624654637768728789869287453501838572221449578577833156872675360727944557707316336444058571917280479514623435274412650509282631329223433872390327182603547047049332582882393620446867965772531651656027184302358893729256780978254538472417204280330585226515842311182605741163953498371157294343977519818566045977567402196445777048874512022565398647295595823547982973357490076948740104383457865330368072485237621035311485612721003547072075387002700170268212714035475096781950571403916743979390890956305360680555426363306002342117875031890418252115512247085093903604144930089110623942714234774218397965543458440251943176249466386482493621568898855059550721611263761678394322098119762606426938237085760335852180555745134113566315875072493452596252089628390024086080909916387337315960149681398635933954451078068975669697717667290509144289363047484653526844369815885873808485710504484316827993825885493995223787371403815516367045111402666108179836944178921669830064370910103612761879132045139943594074663145498358201040335006982939994419251685398893438138360070505042028074656708944831849586034292728633237423579975044481429734414455327702325056459460944753676062309859643480683928334849034090081233906358652466300565237854974972435013058362338120375567118697749175449654014529303299466928512273803298996046355508942193300242903504772602967204855816630144821557621187856066914430375289150880817105115380179362310842227908266846077935544293865494747501258797876663316267797824853443703911908087578468499734605555997688240371971904114928902370020166121055072997527714814733909218873037757986316960094098216803160499191041668138149652347457504366420513046905648570306756515323107872077274943165073254765485549643743811961879212629188637132282485596819743755196986405885915699772638084915130339307475366793553358656557143569432036561108204776689932619706473005813758705809481839399413087048757253302447635168947202601061508895109511364032047412185856077968047695517760359326098297457720209517911170150837249357948030410775648458401062692357382517825224264986326937584375728696858075714807563460615702297976150228353427052428830465120034574715916017802594910816000586213250969767722154508561927418084270748882805126852206962173543143898234682569625341521948634085535917370687265545010519206099072672672421116366984305711332596092108105339200194998126462318072548210242688373833294388893230166335436727656033217695740208252330736373976415638235847277787964452388812324741518109263632495826169858444522380504523247470296960059191774683676365691533505021030435453979877399522378358805418611383272400124283379870765766258044268461641023727505645669777464160318961904412952891399597597817991518790970193399131550563022369444341229618034347363367902398313622739353272401647001910613381035943118970780302871240901894783818361242570889217879935216994829115426140421196612950333117305231324543188492238381532479167479116762792837639995033908949089802634506963719698741086859070228963164961546336958656707095093131449916378636303238995103922614402068512322214175299208035723437698459006532192426861807167640057705842198258733948032451275184577064557957776010300894312321395140361120166121143365734527686914420950981888710381635042322601300687866821712497724983380339362681161437061641827358230760726152848665006995700498923307176714418742024132636659748346935523470413419099479755804730148453639036018370195447746844311044035355673028801654342121718001182911874204729232496413778541887122154406697338712049932866634177288323334016375346583774946430168769304987337919568464890316973103842265731219134384547609945371833156042294199028721559971527657437291896011752757077186626035762115731518267087585209541701135756271138103307394194997679668937161177951070119223594457555377988757514564827338565091222909468945578602364368558006989797627459433119668713296254208052635827200887156903212891711478269740150370059249385507501320709308945956164943068735523582555742228379357337227218918391836081503653810308681777806603194226659184061957222065636947308302034751741538237066947042313434148594264818505434140936079414020783505464788025750831192299149146670977992161291950639483706172752349056326016243416175103892378740508570200674292303942514922393993185861744013436717574331693830765825028763580039157530894055180594261432280982234864199037558852792423906844292808370141735583592334826095356077523104030438684028048576740082544259786560257801150914745918798330467360500584342145955179990307001749942745791534218466485138789932561981378911114832202883728703020023572326732477057263326038187598897812264378473822282108948866675776530303927070240027327757776992715778646877507078698870658835796161436313952173886836734173871047474825426613246836695539213073288911088855291895968277228986056051768303624452176167648780497610611360082090864285139434694969118329410774079467926643287704837012817997478551948419988254548038831358783740435883827201798365114275795875763302625306181691606525127695736299548006957725929837936123810568308760004814662595412583667285395530242021001726872351057086881520752672323186026559712583141221672599815624984884325246001409740708312892789775513061430032847097386803679257668536954418818550681621917919433846142281636952374867910205712221838174883836643806577183583725390438891442107653125473670276742272896761802453867823347952261621022397212388031368268572182021218555248502423593892730310627182435439176755490051211041407992342847590517401640265142262331685988423978773423844250460230742397014607684075105053537352748043600279705596497681800638631387386838612008765668352173942845842060196021452496711769643124982797365024233664157492259919528783955806244230320118831402927327005318234563923847427933054113610440762327369292190914417486903574632116352162909831146338347363174989423517982156969772668193952987821595001857089771337259846858670131167454078915644528970895219621280026089151360398221349107842229992254143673583849996740866216495539467314091060312463198555138813351287229017184885963331428048646153020984759398002518719435882317017593384164777719326186741842629613188919916261234486851432377416881748050574723616232126158750318032401685825937572790862628114051709585659339715445802280092936791583150698106763875671825352937325136191226828400122047453549788021494552593674317895588171051473230905064463358241303486853877719906335130351822859373934172586596923312119215107252146028374426615124605103178422772677889904693861819025353432437140486377395061164727492812947355471000635532010325111029797734541860726246614456397062166617929490908204788852725557158186350829074732228361587772431534390083982266469717804524563191389059592937058588231657525589692176358931794565413982967540371752087266435855313085450717902325901156044705087339972395502353497569210272959123204764746458176752298065985817797350701908624787579820899186430471678214985885195814399334525725009453360468570578930514371226311418029480869598348662654881008430324741996657135702869328165573075220143529264741322911533913972894814003420998339846665290570513862737762202226241263423036943369701913266191415009167949165762798991763565865516776082363285224411124496433202175878868467415382322252771558481255071627316931517536284768030668750881379985253463159514338145482055315885954556567258869585729041683372292971240652281819479165869109550862477973535199777912846030812021508592738960967643583677015849861667296555939602345634020525086575587153223338647207328801002265302426301513391773693323266261488254571975426082291084088622208867907088891388529132828887787697772272286468349787134788050137324009724374931573922963336990950685559614869512565926765440485893638681494760890831043452844627248052017898493981410139370185894066848067983599848446357722689590427058084738518792937255227113141190177037436339772457365358697600818132595755502715531907205031871300076973963464232330355647542026965346534510718945959450764209342840693985333662006745166670716989231919383017320225825829386840332552290189809584292778393853532324861990651253871189962133369141638173606293943012500155005382327954560029249420111677733298461625823557787088424476119439504990758019286368698549496331229375602614287499460165449800418441318095232964375911147853455424711593686185091083578840788733909485928468823881902622610819532308980707275576575779865552960042361692879016953997217216820814259626444165803549826951763897366632694054310897292204756914662034171660299961344035702455751596663168023781231296031646574984670340242795311878256026818619899790430922530494902403052049160884107442641175233839507286599554817609975675255364059253968913096001209514683795883483742594009000541584954040891893890726963676834195134681334966460608576043829983021529517854024584280999920678969193247576407461206128060932217638978758682392858867936649190395647299837412105336741915256772433714315649688642198028884340486921175604993862908956313488025277392089444876910277121381711726801795547514942335445556342614137182679843742937080993334717865330535221656054871518006248601135624711180986298192549617428083397759426498619473401224482222341328041951572752912338152407668600745565291927039860010615597735819642827720624239107389077300116142150638980914780744638815010334382935627319262228062547155092618830830807873831074864457144073894455565072015981738407223223836601560389245390372137423085596374821523600279721680102953266205902042176690550076764188110040327181955916039729329106677258228647845218097040723101898433148015488816763058804929179576728815254301220215813362297077424042031227055721228433873785429820222679159572289199438827923083035617971050962562018468968485237436420659443963106316336338170591312931470317447178558561325622108793892024782997716586376633493793065860319945145445159254224165606555399302524260688102119533493280200158296913651055143726134320456683189709970315828618334846968896649531103379010235264492548597918361127609517825008502484380964147505864725215468885378996174223327690827246196329309957713977658355583881145131848102053488318875328399980495267694266180109061490176597731394877147439253223379786336338405868997266988860479858747212262171005938938557189732771413700973961155087039217220090645260648010734832096316254866507979905349589747300265567287240582745023461874123062311014397971123691658805344987608399606777494241733043475692285525658191711509994339257120793325985916251308279733806494679709446254277794653636005789482900382788205735465977571653799597717530762142038814517024546385200009631929945622436445349379255756301369035172811093253533333682068993299190050277064149440987568301892650706548872894965688899807588142779815280652574627229035481706910874472979746510394333356263535829230744378831257243301935740562464535855651931096353982203248999448099242286402695791328558974891259172269515795988337547487248470265947545542682018010471896229608295077397144478496449414925920436426133619445601104122346622030535077282794201003766867195640927400276777634673770783303739132638756845107636535191728371564897366797386823096990293626032472674423423985085889119766154776096031850501123815108546831609920898259575226545283222673321252655404000006377864217008927537565552764613115649033517784454884539716560791040709049046893027105902869278346092988492930037676116869061688399509972251227406699095554626100088105092449060207547826835135097638446451097238286164697689714753018698970322419107141158770778808474525151421282710011317767953669953712581348579772371099158381322476672418710516466800753107961431384254366647160428008774788117391618589263464504483169969919714860098200250185010637346721823305408249787554122239591237600328875592264366502899098374560497290478817081117706522101813165211779710618651792636566343509308307292192094873937184655220971904673506800550393765611060314250945997744666747140287948672853338552363536441555382099909139540782921991512315719909755936312101453359180931329671774247953743358704621654269837037200897410121667775674961718643079029836085422551283792779396269370266765028982937282791509049222359205301581362806008866352847926785076022196043244687173436269734377115838861885283534597997355064798508833511312510857354031324714849256565552067386391622335481253840734095985779451512588785585832446151194003311676517833310413680572109288365393647825291952310680136694619769348430735142527859091537524355341768666455965005732217714316549673015246540581543484820884971065385243401471467828610305951365372344597248689031645577279770433293386706088108091347077222033732393921764399872006661719083322138975805565197169395347243747079649373012195557159094298414357991427243592584213218211515286500169992500215329605772268780310431443115912597707901826275363882195026568604416901983158790486607940539675002077156957922724527694369253120776493511659457683298977972353632598813847315056060165642814376463231116061675935603731808372239792983286874136277504955024553991608009526205828410415174413641954505045930602738874051050429611210170483846564852323015467409215702981854186946404817128984919795490014275502819233777318819498761568655279945522022708051828457061432464128790537618602898821361324563440157620181303454414558757819427155090806842982771996654002230727471091298089210910329975174066733188859526543648656017853626701445979958840970839618884936669048949199914137356765303260114437383268984256421332615373099014749507300107072824839735926389492798611653628144446926827501127887922578956529863061511182910484824556495801592357402631186058388429680603715199655070392211473610428047464405850520396284731704044172218470896899506921724478264465442610912470002666789847798789330918852959082281479280752609548662813023541304768169261667087238654867715628111322919271804262934326266894547386309066695700998612818992945293236581543006282515284922544670501556528096657601068213650379424344184565610147549326678100366247018035113360912674858541232835993767399132957476146788711877937904430920357109017426009085306301815844008438787118061727778990785730957682135653482158003139707890640210672603160068865738694197905193222268918224832789447362627657387910831262625320186948512317634649910630946573394358677828603261228270218647671179124345376988519310404251772812846586545289476811788008574224867871921802339686119247588622651953337417548805208649796128627867630909099639966659592320907105303259534731924837892474998497258177285332827308322104480763624631586465231224762907020223880182669586731702093333599045785087136927975464833600898634585516932299767877321328358372263702738766443907700692447240696902862377749144350650797829200347994762255497765200745450356108833282323983342553242736292282223613752851882034187929742839800304492798174619523158088391471911365144846750554055510073774479613966757145384365788143224478705712009175192888406365734438577453445628801619216405266338614391702836501122572353589804423386593716376867654139688081245898498252505716335278706205460317184424702704962586163466305540990578703225380891573103489414291252379529620206445524991591727319040032427164947524601612561772538158331373696000266511754885993498212779532693249762386140132675020579497254279470182797326984142208655204767648958248469780567236355378542273313394748280093269746612880058563115297256041848694420799196541786171232821580482050869797671394983431823869880902877259161774293723060447854948665151474720594809330956720252791359199237217591706274278586843859811407529853663652631610082652545799200434341449108369804971818878928956185963084970206705883432209187135334834902803903936042760497950310640978010649182199101346109683223380412903115484717309662161398851262077915931061113844935796632368676141642510278401740211723119983824573869903014070134496322292733980181517443623027916030569139931099970408915556415372702336169930962618774440041169506692448717710987197269813977267000764919005783150678522125974080629406612387076523509305412384812417975255781982540146584200167864180207380608873689725840957417051542723860802723611579704249083854387878281396574161275016337210205935579103340437315697468645578554179108799827370396932016384713921675537438733582186966107346436275492837059177426310523153896685650737650959711323503528383979709054580013594766213774948256311031248926721751050467022569609816343226351019173781101585348599059746640686090656453010215139665645443118243916209976205113184478265500178356429476366669709093037172913441384454728413818409154213850633546860931313846325896703203724563855173107575596664653334735656564496870854653885282486776266236436894495115304024266720466502141436106655595444241014371870001179459753408734040887999008228161828638600702725452746407693849386226784259429095725974590691624341332921636753846895932607545357988887595840081587330386617450635131369470898845738944256397892501102207198521590377249198177049092020768119780008395396448667555608735069602178646582541527382074966467425452119954559771606521579260702613948141599367493680387426902645669127031245267507467203436642713708307923633363669059099581051348608984113593959361335559415902057436328709026757160550647159594158625554740919282859922744229159973788455054686043253336239784343844808854873965511545888244459850449357765782441990903735042251920224839786868935709225752824639294160784410958143624560993582969746529062501138985683674018420214914406180807761791897642176251804276674988964727546623116989896716380207681348940285543893044767651375572063067341975887265332301387857668346288005051061449310356831016221449482748678341868613991258352813314050875333831623863285618866086973997223433641346793042785459516691779178036879158924174354617929530679283519396223263764883633931486402988573548755820264470474792809786021072003976570336709198914631862338538636907791254329777045273680865759978699896563095282831152424513750613625521482309689027257112799785258858691068721272322238354633925798672313525751907964299649746119340945479309493612049555632458756754278555723305669871071168709625330493373755500677426378302433436717290648991037009597116436879740332684731316267293216320205261861434480128201206650717426318799324921402521472921696887649994851275972591006903551074638360413363169478008639495639130204628402341974833463973417338495415050398267896746501930986800400436055625156035770472717354288143754608630392722016809501321145506020139085968329536477941018319253365655945019205139792565449573851231854303194189264161812701355200258403922603751083861232949621487529640509485505609630038078506798142549476455012652033481380913989416801590829085793088497800153899219955679309887743763838864278646877588628967420439827882793854164561306362819587172872983805212519278355750556197384598842337770622693318697385132524925872212518559398297811249156566538848396420502220244740653608568364186787968089444815837948292080899220418763014116663875419300148287147126184073110324182816732283431320413095880921459528447837821753969562930736667882115103028751045961008621428961392433447274675812680854404426100313611152731800787806348670468145710345638893581540322858002111365074544075489952140414291567693969386231325069757375343449192260692934621268429498464085637730467444406299723233995585966886301854404072529808813256760442167335392715604460979894120404565627355513657977649550614807934126789495362431909416266589635572863323148289500633841330712276562277382731499780863860249452589314772012001761452172633802471631204591918616635658900953001661147285122876631916510135727611172738905062395343745308149114847083106130705174984562718467042774570632621857851101655379143364196021767977681642558586271975809181580582403648887552239889369362594723954223554790002326223111781758798954037814976880540396320671048371210713767792609625901482841464964006227022383903841952132848713333343450766785794964297451608135144198068895082881797594939285399611969599209578029352050346774036566161021905345053783196617091536990852980141420923378085247610704119619907901519132799964097411050861667093985308616170650899672635965688573694973984723128176694312744863909812523877050181695662153966123536575552199739495987894022746532292258206076682807039014611941497198301651906778701410804904458461737841363204552799787529061243225601719799088646015354456787977751068455278431496730523953823066914080336597908275055440235481458908195424912048366392613618245663767084149273590418161882717884712459634466397036360290736681071136751991361743744540814481097450519614144441488789517772065520295136294533406724533056158413753604558213331251765922591648033485225469834644293591909617572461065894745855425444706345844438344950432431623315268496392870552769587340267857261804822212422304291683386782428911189594073279375634080908473685626685037730905056767186047488670332127048499776078963640695675099663925944069434587362405541079957039560454719418350861636075545150157741351150572301456268175716057853146298655386102035290557819394572765091450866475117649286274483442383228371222102839943617435181921688157828148296439623172556482118463549542108332537764265282755987036093214302934670825867081071230773610365130916839465100277913602894688178490077599290188827403435576580724681286338947428154598942825606226770710644608281245074219279533746130390126968815785170369880997250498462001158254456087688432133618500417481876918267017103001937954171991715168230091442938673784541044658176407144649659664382359293679007586299435526446975722554830285934432683583061297324772930383254626813030352679146327421215915205513062268791945309435065011833363212370616738446557925990942391309335033777658874287788440369489663398245818124619514762676059148843085906816946696825482432014420276233470164830483785928023259579442557016171861260691989858087266096932250154498230565110271198794859102492274621942332800861004414550410510290853900144019128939732678725426168141660888023254926602168421850338750450464369664598603691307960623773898907323545763554926417990052963255144516902485632150365468955478737870206029357248125494018658527052385458210098214464789418725029919310504653795097834611436438431338259543931333972454174052994341290082590106101360871753610914394459549882509474884946043800086881508003933825456556814794376669243583636000144496604019738688363820041915971688974580557950353966167195378261604528354916493997155415048485839861705465718171439492095320286996823285366248388931309290597260521856343628740983084202555914907203661305441907645935884390663320552884347040478686839606055906884136012752552416406910232540743177833372173979008085382906400174077616205282483378618197903386800500619761326180728784863029817647878943655113078078571693945317981677365609934059695827374851394903860744578490903127731272413991519470245409776272131371689015731493600393536556869010670302385261037349899354058904146572076355822243881200536282435840263876363998549061675131378311399715433686400048201294422289024558518793996789560546261047922517333860274566814783896030204713809195198137409280146307206078696518962223804329582780350329096999180296626521976333348611336648536402329029444061558582242409958572809689718400899959074435425127217273188168136416215802871213997352685993372246028457830254633003304376758224911457218274663894431635169008776627553765906282812434187366334969958106281796573649781249262907081567908418858466547815484701615243322826098338319562931012995310085630268829206152234086122138762818586818452939611493050044058935701386782156003985287614359919184051676582440694189904032089615180220590782089892538436854412086486667588715245914253004301903759938073849381638189748782150103958142509221926672354605365459743299050213217630026023106596403612597951503902378591767077057521047052787662396445694284475414332674946740182910555476218099706077289048958407010840195338794885995377108051518371259020718844192855515134028966397163055496457746062519304382106913132992604421463966591903502886831264187658066204163143924118342928050535923656518468340380995944492092572781841104187760578900716700673697967511717265830049910046459362500136555123779864627256640800492964619940633949189143633684891588717093365749187317045228868832656448793816307216748388368973571256511870712386335821905259660722300922689855787345358483178105541273160812770633776675983047796164407572678378671221199535052243792320769121515114446402773650871074377037194863063045636009406323763264731121990308774684906085735217907613401222972021680127413245455628439514690937463912895625225903994340941418878387279754709773712767984427012522161258899503216942542846784147054778760844908108486519256898659150411704857602704222398644261292343724918418892423032143405114115408062454813024841266068519745619056188263750748391607281937948454219057066825956972771054995936670782428244463990934794211900977094074018920218123744681982888479721976967421329768117608682123594206310953671567164697706412659633787783636346888730621053616069291832324358034907555327718932377675009480052337128956402211102891019778923398249014560832129841155138892129298871866898403560747242807319816897272596175921691468161351840204625365943627020713951852845083512374882770294541291873666825762377339227575323856660256186384914758245856224554498223716447631048619451175303532222201420223804114875474538264260287616604243071296175737661614713468823096886785899707778917532645394742210122384887200809314737308849893631681833892462628251120230562877947852886473056475857728116203346356919256263740125170756413504772157905174006516531695140794565601197588374520310118346373725549877117000803730492073928312125047024482806827867511462948603833030026318525161598890959340592643317018481818412408185486771755808145060515975955210909080851705015591863729063486944349057287199370757890422276322464602273762332329538127457105287892168061025004091949482253804209068218702721559621214030440557814329281377212985867821793314057767278361297698078603751191693446792349206090147221588301650190151655627415911301490855674905914767958679617035098531832986811529884178148506590371760950720007763909594534055525614051635074171634816673915245057002230220866067199218411181208223742942360707971268916839641275293522613818512510991209420272268489493932579985212194665655050586597039243265286599169014290130888914300056194039372613897232314515142337045664959556765787346484333388237412615766419797949534060752015570327089411741600626565646082248104163904728406485268489383512260350485813073344819122911494087880912292132984752813782125692443706329878799134182424222439232842283296937104277257049340794747487110923498476315190551438194437899993563865726560395725182265241173405771129885615712067514185500174832859385344085612302563353957322156865779060614574232515513457604816923342493081006466419223464811469554583221680877585536320960799150414631640141634438070039664998180294630078263159906735847854606195582151337892620253037169680786602194832214018735973846126821435533887876081164221401241212323913220990678879293300876654765487673675634951085396364492879901716420252935605432364049298956243107220189452617979727906978533297688044657404095493125794147598894402496622161202746907301691333942028185713776196424308492112009517211749633033126378190899232052411223522508412646965249282747561324132083142412818025865352036641902824764713190254924448564524771361667227103823927099155808538051963796617272540864598726097034838557261381466694612388557880054407237325388813119195817114322654662478009164550025862537783713142948940887737541864803595341827684604880800716194287776987169862037104295515853242858569779815106482368888807198245846933941408729733848223673456822647243521347863022143224091632920016081497568783366393479703392309074486130479188688448567167128918812504541205700256709574513236319243127243711107322781435832401383894859641619034381586016332622019851126613477246666493646296806086094203563269286996919372381544553313206551870297163998950386742033088823421420747460464443370665330239600687990357482843989950604474515821240049738093638357340772668631766434334576568435687152580780486951583485424678961560032251982752178642860541638531672705414394719470980762502164783362027407459655900718366092350290633954030264750154248661684976566993666937747688062719841870578104356210626118986809130012713621503300280139877487946274937920010275150508332224117211789139993757125200949671520014525837634073106598155029288591805064857674105845302032843086521126669526912449445644555785930843710290439285072560063567359788575010494135115855401928254809599106066362377525884509501291987731098126663660356763704874479056463440800238031739470835407230289443991455051814494723894725558531618118136224029697413335197216800437739492660643318118314535369173080010362364381978129064646320300575610603730249376600905283533116581628062486464993423339717298824605997264339864385907287541206094586256438094649447627526814050983046647204162556360133429055441166658342179419300972931476833752090821022644449220721559437881482862907829473612262979942034584525046917887223189647503015275687964195348881183378939934662495163406077554030850588685825277968367983478267507255153399291617148868587296494149693583086823691649617996148828133845767083065745872542815410285408556095894533050474791609955713258658550219423708431613380825122606249712578587570541014212223296705336884539512505135241242655328651750839435266469549874395341376789863520925676755102671471713808206711807595912073054804770324540378300870836315187483555407246399742504750816688862798543702340718583259147436408586054007053801029798215893847657496805704868115504591370084958903175137509987132372765176289043259868527832694109471218936240641905666729714751458526682777935145819338560813775283207587256623979979913391353002771590041840946257802230482856464312052836943385211953710893194787079108157172555663878514567600763028989798886927642334471344614193039280862365146517075862599548249465666297441981257278434030335409829293752515457163061878671421949713064228668981420435313679153877317384658869107931280141280394748036520387043441464602783546140998420729474175432243112996257570420153776117938274629755986879275803624633537215938767789056493891174582995648235537437843838549068581672685852132705923770610658328512530752039788485438422265806656843198982134689177495186713148560745056459682434788292432510439483132473412694273918083697080062471844210940417526121768141877132939618607760112881510729531882002658504801111669465132843474166734779487319186157879893393600060780917179685632317955220323064977563066321692517591382332386304448601767885384976100294787301522952359569393355796828987936300402397908785871905675394235914565955289456619354375332129686421670620641717947929235002960234976278630003061150592344649972176234924628990583477697211092355931318613817227383411016962654309185502819684606387482856126132974326082053796342456429654850297300159795431940688776305160545344521931318218745450079260614244127763480902963619863065155690568934406306585889163830116878572491710378317898315372597415763506640831411876737643523030501152040394860900080657693402523894538607060447806313472344096300244267431340391895611816814886572348118216859284268908784647898024258298027856016443469299354056017489524905766939588939047026710757695595187995760261825914748580674019740577377898598552138156270967633727273511060254088716056058710580808184709768982291864219285738329770520066875953478672176185795322068230294313192152287922092086401336141491304958293003416504818759646552168676613229022227814924638753294279356825474380423280885185666059155122076253539102711674739062068439924423845902533194319511465571494200566945173197655873004102504001451464066527572379523639604609559081710476334927154174015535923958324995753897546867472581753755918151413066332520865294260178539755980640517414422869719439636996587182540095183053266659051046765297697924326730766659989173688586044569886779610774293648911644233082866500881207936213730683225463630534680073130864086911980566102906871491391437803051042041591206398458729947079903206992663071954294634562724834129978829315058225727765640842374184761453386255042422351642203100356850239952409000087467887138305838703708139679102368176341432597795824683252002318151961749525766700227788546774752173878801630917543184924127966578356415814963063535583594592526589749095771459435696185004433913148133836773647903647445320845978040590859668287351913200530222608260686824369217063226046097141438051815876916628102946126110276077631523810663452676997076376359058015991024544392727523372929861998566679023581487740479811059328676424241524028750657141445440801792118235432923919255077796694278393527154972584100891995331669138288834013159582437678964478816217748539212228150727590808595100289953206177624028628207762165790323296287226521505043808864612909977781757096899050209730704004758687020207497339573767495680926925969017213985622661197693469430976041680374867259349794542768283693293557161929505626969575099726193763199142900627191821227322680901869643028890182310220101872092014087788256641315677614524074345357150044595003184272330647563151711916881778392016723793698210035119227276371527237087269991099986332060158132890955165724697462952030860214996188439909198727773197061648931733648860942837215721071833969669174928424860609576157881863592875430874513557255073342086797364173842464993925186697793963442288590332278879714006741206097903696636491828426260229987984222929938595542660564196931325290999925222920644913947296781347345530360712698854850978398786731658260375641748349009579979716371761792966624875306543125250289709993383548326838996602043315774820753266276535938310083101758808477261403407852563105058580413198547770520199844008050436946547188385145169491839866495185521923661101630937395626956771973894416448117837530782956567941850340413907812489641605586230854669556603574749785931438569313597085466675585582872999053255025459346453020279552004302294120771577564445604771677937373463777246850725043276986132945418482205386650634722215952006543696425157921991547971696059826322121090170686488887055289405738902692796904644519618540627923549849391586713543507837070924737404827441109302796425565645829671600911820944891154822093233084278177328567682306999537496060362284259538378332226567688525624164715262891413794712956908252288916674941964519189854447170979462500637494470687975014762409585009781507875301048994727505481932538523230392086019544219286745331336918243451649494972878006744015861150667802272380063683945351866339423475542653521279526535277616202376733661617204330189341032887081662643724276092221206291904413454333473128438378166155593528848097737980101686894831720506237759646901307693849879626905773020617589770493096388860974198546789138888522203176023228523078460893796970804141374641796322134515740941060184464405088341065958376548383783634234407874957518024870464805016634761507000344286447884116770642461016378909958656618838918956229827516837531992940790413400575692943579693394271579904528441967015059229808788744728297645850965068351095552502816812196857642576691240333171849614733360418118981866654786169086741485438329758788162987806836803479538954906174256843968694887715906993862227199486632393886374335915121443899632055127472349838088567515132297704862718291486548576636926600134855858690179813276878248302217006011711852082104301701079630801298896144751322389083515573294116597947333102553891562199810834966517306622002278701661144299227080291957207953013283666878176715263159881955206238439026542608250782041536739198777471262871766363371429196866300254343181784259189433726407691557999164733773514191714495165046699013316911997171232581786735313854058881132185889408623679093634857078336005785196080960788841645210102907540179112041926470661248993244483358174573159829357153646977146607350890813353978099042445902051336596189662128371750378459144649766306765120261721625193679988381298362674656444017680886711152136295217014668950582825542171750309559968462582848970862708665906589768609665455502691759772347900584343586046017519006442661162038428492566257205381674993129554422904548936070525831328805751675663902281127173509109809783949126335411234358725276080540351371023214972854489592459871464800529173157821484942006915300334591245162911669680222260675349056609862789928729558069196546150522658203557207616215846723629982921400636955080425375970234556039234987161666614446453499914320131003067751248536189193961862892734969146522351798033968577454142343637477585443388486022037459434870289231372078678696962408111320741076477317686098801765248988845960213995425348960663530508819967516229912226663434182779683684290558840183084101856306831130913658028590474255103521522638811822355724158429386364536009251480755747444374479233898354179606034618814954731843889401120177719968242162072094911224727307502884472737107895442815805698941795159057867017236849339484264969327044466695748772939379281912481287334963128870746850607062392871229597312984602484904118445794831870750811048267949899799356774764849648663372484491267694111352118182126742259670985770804775262637775151942199270449504014367361128515840671605888190929694745306903506069101109373009733225478607706140605371346640923798688681596765695795759888607516991467844035467459907263932412667934165107584747197713774718769587009204228958491275280108102140750684608704431433848211745765728170450713836013793615230446761449929039436761437239965268776308183781646758293403165116763543941904728163617210816475134702818079644060975868053985775581374614970169613234573768202223062267310563597261210927158149075319868424274387314267332722804056155714631917505999644488415351342301068937033983866732573676905854325066769742198715272326280984628899250140856418332195055348618596200745571664323839586927419121584238669766032762176529211160814072357005031679025514674150709464048592808248950153238235464730169020834277173407258059322085638926590324606553413468682970607056213344089934332700760035639312222754202614307947861709164276022245555751097605094996559119342859296206012909853938339359111236494271113631608017444855198463795974045801696408045348586123980577668756671939933908047381127387696474768152577214392730510645106290557727991700981866576231592249816920214272000044154219731975711456150379777664729385174405230136144269368035822562602143635066088821784897489431664457110595188270499002093250546725339278518949418172627645369418022540022077765405943934381512987477064589118427665042849836728907358210430489736653562677689941038926137301266854458726682448934116627589798639652851277748776334971261735743174256342858052601699290686073367023000424046266208123963298847803974579155217607382866868580521329447031359231851510706455360990938228304268618021659907516457094155657877197203909456122822467233551399713038246458987642740314826844570909456019982068940998869497167043557527171512761170038739849624358790681362329560284179640564469319384473992348015067341353413509653723042500544579770803117877699107431724578341355120661167311854863682638778906410379387029407090379818960398271631650826548877938250201093967761990664581013075184043208496181229816439733906726271410755636493152034177455646859811435163603708713708283146590643980873452254517575905224804508634440879295115717411136650153581764954000841280020906907152744347130624661455211164284039212191350276595239820695923801020171445090774168932463123112385601984641459926477583981258655026498236741005366092499747849709687916127344196684044467098392308935165834221241140527242803976109244825938608311981606897316607757096686906427423495605630703567553387589390890945435812377357074721197592188819958878228558110465463596033130132138554419595229051811591096073654558523943881789593445825845833639260030481723417146781970807202740046996812464822359712398727663178590952989097215242280815157887389758357956637106292736367424670350107737992599713728549602694232459841848433388312763394790698681919239971262677675463576165405474965316908588679282726245147012889446823032782072509671013091589328376081428432525577198550692180782552437144067648040441742230256002091054310047127317568566783509577067820188594278733604573401902347812774914423284348379365655287971610182834414368404875788563231499429762348335652330843400363461260362208105071656203357887870183105245187673822128450530030766858474595912123019397761405894793629268325255321506084365235044442465936257985263788681304593404223583378254590789655683034658979665217298993510706107705180216566456702755122521390968361997605209255381072719006246694612532233872623077823635763612299000857455141854944029214232389391746044816491548117329801231707052352993593409837166253659169785284986930888086044709811265982963110075787479800950356666838054708502265303529727310710046852314747767004966811718726306391406020009695139372550405774727492529002382443068475271604979229283287601061993265461317272945191573464847730036199524297883728211737465277258982709399096552256155474320201708133912664704588333780433635127158877956533449183901177347123049004404470955673571315330417573745077309878899251496271770317793876141288761086539167179395076292623147830739015588336715643838419523686878866356153256610038635925107643907166471596067388280756277009811104339371688078184257350108145912661804820581740115627402580551949684829512705575760040106960758145561101412029741132651691181692930141390988799952503424639463897489901290560352613773152309694331919766375320170579420804712691439782322053765086321209289830559380471647531725660775721822821047453156098897429707259274964318022755330638354240895648433359513518904622758864007002586869737405699921545725238281869619816722675858365018172437009001735099809693105712441606852884223315556104377602495950944931739716637992358040138253573996378742416395968902162500900629133769807252871139154331583816495471905596282152742610132615589261644563801191701096131543264021560180223788294591793215643844310241277585825550191140738900919710869464899552317542562406369791456876532162792843577735454131577149767396812020491869686167801943657396915988832856066344951785278351586550462678460663446904889654762996371890023856046381047441993468788984059710519288065737383685548862597693247019766380565607925781730745045607497666459362215752708025218693573161264122652283109120734233433995679280210616562379928484123216555481961102418802340455430968552067316294906743000185214717059066755570307916694498695728189742661723428752018805578579490272749414792061382623397464031427347813028839222313508712944677628719955668551241413833921267259162461328674448962742502105791106259204367864050269869934704035588296780952880909251879676811417852639663469569974588818539518603714195119832345568363660960522058189932751623005664079246425517978243246412964519616531930759252283587333859078307490731235732961749593391777007513034240855987441585506456699111131679166566869141051915924985917735516997478364659189704825166919717732887476722802088487075406775115506838363447097799112314662222820187980564150317264321160006657883971150417562438937546477728407543575491653939793167028449077043619249515554093686328932572999090095843352293610850204771656574129232915108036156154426034868956182823673314033554004380897257454610588441718568874924836624880130818692878048622504398954858589343673836267627840065903491944724991164961394902874547751710737112951270268641270742029134542422920742866078137778337304557405608342897655168109543087072153729471428355472533710912985160217052263952289773676595220721194716315727838826887291233859031413898442070659028406839988285568293160847095786790941827629974125602046021932484437978873476253328599541017455112343896704083455815394710092117372655540072827689708862192120467067520467773901727749470727841390879736000145065577430427680776776347013916981036147354906343457556992252239091287621448323842378273197386164938066619201902617180534220857409655164889367340305718166331517130578845560316327509899933271548212836477756474067346481054519112900073583293804013401432063996417753267125490138335615081644808325840445258775142703907493435915270836504607274894193782092620018363756568935963229028167159600235336596694277303153485236523860409699085750487460497778516287172982504305053343361041910619153756078717515119452216038062506741666970559151116773952814471889717507222756432880717661218504627589960672887104033940282388138422387192337676830229399419706668965510477988443898202568277088758359514109828626796919740033524715907737597938953471363845069449546729474680079062049267091721514162157594699581533663350172630661405338818170086812742077902920068119125370974840812309230997941924388845562243920053776273460514780812717004844713981208891355134908545592887057934881190228333081305029357819090732616773605606661475164285823173456080975481016436980101205509343081227927285922495386469231984576045301033528806795902449321200325738918753003332656883987930313221890018349232949997885507505445727047722847538227001040516111369640440610147181380704131503628739748898728292394512892370128834025077131930874353485488950724122918635695309053376222989658786983777984791042868673411049157659359856561987459287304298816010467616069939626063546887251951349835690140159521620851204514792588460734630211256494397850691162932290207624444904823617921064121393748617842636895646769071740615314244002311220450800844159624064374340460873949821176625051165287196926040971875181591969270787908396964402657937710329351599349136212978032996213172168750874688119034732839633695840029068947727063791878869822034113087674689568519744936879157715333287065562585389484249455942329334421504400827093571815662267680165770402746376938626653690584788662262214342837499227139452604873175713582958259360294573342697052677769080514141074446385340516242264983583767414671823934050212992548199542328876246620596031152319452236444269961223962106599623774080907724346308629986946218061518509224908386282128632033522214321712519465000746908427923573974614995740000379133509954232954074113428031466050233319335227464486874541266347657437227886491601820002023177291567982736804738104673056938170264955193816388000885427570917776238391482074744940497190680389767583580012008922627350734344336988632866346342628854599963748146922727486558792934659055355007099501000631456804493699564795133814625473432308416221673300291801039982386445310113070175454644085741432957252194016931457762860652866120717657441376316952940129125388063186797610373260061467995482445880637880003893099769150175551385729625009189195259769660702838456088832559038892923757430203991689335070041589788886722120093916358695430698256916895674689284357691451598430715823138265219815569566643174973253867863919503634649050654788806273082778556879094838312205202403027983356903671296553554539698989341339777592261530040016521487771384212574008520849411623814017514110160596102776288966277321256303341264507700551156606402647086452623202758571538729225486387360251781576070800180132971128100914062336204851784224762816203266347349241222556277195188189951598067291104947278452620275933372039840393677729505177273398225400843766380962058039344410293530139253088355193936996652311513143240097712300882327212514857506585732320328835742044580254726944118391288883721703779209158774810408644709103187036971766055800339142569751160733201103288737577748951926443712648309176028233108649648851107626139423112127081424381237904292695331353729913050200572587927194753437952422204913698649596462383871589856402547858882832114578307994695856746352266335472156212155903537676228487411301271200851694311069324036241643426979165440394781356645053599091999995347792547773437971171086798889977943800793720325847537552456969895706765233595588243663298134507645043687818704625243566254721595027576467707178336105999435131836051260112828784867545993540462716690004248464877981482259693405659978958890092768730199526534857740200007945693038518662417366938892803728175324329443698342589744930093567582984646532648649757494354538184007524802205902956884835566387161076990463594277951157048991245574604583659937562308656791228084721749565036421413101243458639805084390914097899647260411568728517764455072602784549926439827726579322351501451028777867540789812270726185402217770512505297360050204807130608241822942351988353995481262749259041617322521799730114190602335970847626247716143665052114391784978696695881445126118523974438017778738412691088028059653693917101525898938987657873951575268421616860556359221829654019698238623675677324694013083532784597979166096142990748484881122310362612808799889963106016433075520409907165936251158575404622878837477694330609497468957040735199982681403601989318287140294367141305403050608148271674580479089490317931479230934090873312986939779871296715139968075481035356548136659731896625184892362775540915010223098149806988430394597170661389847241664531912819928861370691944117802071129970732235681020354815120772432593282589416272689017877357234350944182883133461371854363903244331487523781689617295513038942823752032092422011139276205681481570602339926182047747880243084616881138567501775342700344166292823100355821121581427869286011212124576947854292715617475430819334678748277099218305481782921803084518030414284024500977167060744662876863600885626969576320809594406858555117793399459722248792364022283513883673797490698433367361954643632335036634574098656679891976571707260301600981569191995999985669610601092374001240468445969171048494613097576507891329329269659770987737970230859206129089994192615220310420946676291174643282341972468873347536017077861249787719921585942191055595149372236574324263782978837014739664564113758272634245576533076310662890742534209507941996640836146233813762626933081381250952913965930298988280358455190629544714871542413681111711707620026733562640407597657763888795882329012910343784924158066810482436479660343118377655886462132447674280386265678607063464382432432414209775588221398199037578039454187988690814420483110497342727717040320839170125464058134006740308995425978208970974622005741846158254154640260708185513872138233900140779834504314008586089199257494974404221475115539662795255138391894661435359478561960334520284981468059420683697352374937280269455636804616319273899705028297095563186636116170813264521628604199806758854143000433104276023027457976784405341977034773373559543294006393996359375587719636505760902549452305669770004888709668252807728742447619482343700345823906145459390750647146722906083524504580615782226241941401645633071067827930676714323915986563445057775523708991882923181304812095349650796330474569160476308027804849060348735511898030596333173513139690281106394746942182057472841412612231176180240776885767763448685489662549862050403706638400411400957103946774439330494572033853254000910573521373049030413290881632896949883733129477258676137141059321283174836451481729335269264598176206136203841401391140156451418716723778383063350184619626082890717258395960415773068643793194792057594212298411619199080747105690540797063077065332680251343145299884511949859999305015602286856426166532749790185385041761394562770328248440289016860841833849586442195360643324724370770876871696482192890344264718436249413033931994149373109114399044088753249392194062687101643662580001184761000097567947297408835523241246745527404168076639440732533309390248760779258951594052282801769712273148261798936996345787471560836798934563806378664054106814697473936023734727872223922606170219054820920100950807234015554670027496942521314180185218588190369283110511797194010642188159224067982278586298041011327983378481053795664349231102945016089311921960740218447320999155555156461163931679490978638912570717998803789368584739641898859381612863907348946826889218037168406270772835251055620724976896114744697460496259765429918701259932734281317093927671888770030981640187373939384571289483336574769360002308264556645573439013464629791594849801029114401999200323202029391313765658268964334597543881808702208703405354448340996475758557073652510713527217109583947379172334824763391327571046029486617378360245136265199392536182582985510239139587312401692585254846055665450729077630682301057892413939334849829122586242824659688085905462759245579869886521068715238291131945098679381824143043210074119947929720901377861606740181654991601336047431684746885732645694713441286460531610240653392741571880306113462938002849398890146324231972465549098019139419643979961021687081956976851952100036525908157677785918461501283763848992338144792843573132484523376963043049265368845906700241710955881750298821044713016826745930444199425866052765581862664091696158999744224576003759771078723509657234317092187300594258348625886335908263144776787148244987913562296171857080801974565188202682466439251219141095975653142636551598469926913023837814052566479254426098930628916943619054463312348781460887358932514817368156565072527140132110398352038644163345062385335007339259830526304504990570714162592408812367916360392082405030189492755627697606039683647369671122497238570498443680554965512701364243978002125908657670122909095574319153652085523727683170825397873148023100048799275294838813574454185264266454641539931302572896445801304670266221444439659243984145541474423784071108736522154771633428852867808283668444736464769399050763785857271053021323742874936286634881206062801233125890037305837112381698368515188506330347250181288520478952999251323147892887292787304572488925427232239583107294550085128785982101901686932060054019895546127995231602056120145092320582864661042026878227846038611509232336933844914190881997554401910678082019980535131192845814192150670781384100167127651110757792539621178674953423895496304694019142149656680311237070782502745889621292869050067395247578359175176957312188458498304127035498726172232063898775152198330475487557333983218456764697916944933680765534067814449524417410107094524601322464757650240869858530980723374581979228256071564365444912067205001129719385114775452215449936128923899487339522246476082602147513561475736125228280455006971312828098612620246700067656371165175867991102256659585453528563933566261748159731288909236770802203952888728273315192875108938958663723800254360236718395828715223420850117440092338258379834881154710701575416101594724565260666387535186407066736020674319997775056855966943378862708492134899961289949961070180253890311569701739771444795698427120380833189347865268670642529167833786108842146791530675800058158386822376578370005969896579542642976007075087895107046983128098177040889118381863248101839789114515569475473943526292850926109169492833398851239605722609892520264812393015511273548612721478616673321249756595783776909717319344152818715834697691223864772806827640302932176829045850657177473504508164838833168865443777275239440935290324766512091846549393271048881905587333573750928589652389471105990274089656663011196481916826959688877945358822516440409012171899901373110461457232862290574534560843635552734524530621410309946542456781312417298539237123927814332055168375560980186899758626002156205735509766225991380919342560538223693423759587387023782656265760509003994717127196852113480086970086916627153422371876487180996838533465053321783792121723769743630037410315025701676238529711466087010472300822722241462167984945617668353924926154562469353150066121387666754471894468052844856482764994783004325201561246224261990278209818974229177798591786699099104845816324121027247736840261019270436568616615480973687238280960352685968204254848697911406857823643358281727535692995817653709760926297918488557278090012218012839423661223960698040272763498469265410871317916728048507860539837171764871544012707140373498553262686359627851087041395478691884991273489765943265667336680140943822605484535437131553494862060448798062323896781754316479694735218443392463674891886609533968283843742010559672399708831217655225258630144572837474762019776584125745922733741396546087716461375087125996058752995922011498122802550023905306079070408903879317507430124956781885523115935023408908096641577360181886861617121414874617931412794264677440439396081855958568909342166557573666810994401473318809567603519925417380286166077226840627160356703294962304311198017751581920199443734471028383904983089111095039349354854527664458603325663166059921023038981500616770906053722238554885170914118293501720028705873258316192118453968643535291301764467624374899115854216032097814519581421525596674326486886807463548028335291607744334134948317733315691612959316436943639406475866915779147653829689215598014429106683376559699226151268184344478816784786896569079523599029636820529209513044969697995391286945499985317970371105717335826414923477064599963232154410178160917896077330608241928685394132443340917024183334244221777343476552738864996683623730850271143938796031029024589772632615309619861729911406163019338004868342876971216552085148723410041700682806193562603199557722703724590936940252917554968841549059912052131358546536077228142017309169872824098178148407587356846062001453592443298027597846312072516320927582199364468146416837907416160441459571100910267614443965544905941712931682716295282353829886118563441784939615326501896318531204143458818330245710259401202203235684766323228346273953448950049801789587200070426478056958026520464496716131786320434275145310188431296510266062563397152624566483452970761226203916212094936203770939072368815992285678832181729917669028993609991648243624574339327377897609900027955833656415570516306464646096167690896457792143212712626749727647720679826480015284517498357320368319684132586138493932290490107895778766360537594695945906815789984436969947393402279757495038206999619682809637959170069010105021758730949016719660105462676937928686576796578006407597865698701565486975738599730840212253069910998547667829289172181007260351847798989758632206661132881188378414332334084170485705572896979967791111179369635695116935483973011772760852543076740567718392953881812839945290694715416381828119757043743535592349022432859474856117531180038994065199152010855388283641424935855897589466508091362153862135050962854848505939707816607475909105925717915780700053549376079549008887757809777154667688144663819587761498978875958227382346002193226163374723021039238476284455953085694319255046189022965243988081665072337756656899533649702172155083197111272141297384102216171975145475566709162357796405212581131403950968893188418844299772261048351865875882874357022597306901466282974296217161484711583877482146967461341142031349383440561315306615594371386301806672557416549630715317608183277152269027026376524719143003253173018005719997616438635397781582573916469783044061951530957520340129563872478338303543743480535816851982959140753940274838197610543516913544902532554303339038956673689503873750341090529789022407899021658562985994875907919214069425667093289447112872602151442309957392335965652956791489585311418590393072321711563445568789378613925754143929087657057753793226020142043701246299348610733088869468566373437199994361105769688174914189853317005829386603385067666969961681373978835090428393216409900813092149852349992149521540087979744290074852343610106643489122226746418217875503042409206046323641861070990570146620687054081489400678440524818450152124596325342104444852199851841182859005556772128797731200662931969770665301770417608044436811257080544943730579189100600165064925800520773611869825434735000452129965094865584682862152365087063992683458304796224840657600393084202402711274619657939761273520803859412176226134142842008312066500658703896058577994622416284340200172935875631357284977138518532581545946640217282074619925537922903886740779513933276359441916900953825871461415534915797299361838717476841517940165414019683282243597806431474659660237213938561579874261431694159102495524512244770592326828791179590610871192961679201286652913163186606455052131460947347444059678547761127856727225329085473989364431828699391391100370331068175757879399019164393171423823922730682005661619240021105188627217000017056922104235203734225397668159806790095929963631940674138264485234142268995957376512062046776771551361853535620280837273383450725994802046619702119287138611952170082209870396464928909537793491012694778410988413747092556962660458305841603849229308096241620219049154249210535022436652048567643585501892668935745408524359672109482795312658050571468800663486149692288923902961690119822574898808953342311395572191017887700236814653667051045200391433078858008458671760510118451740773551936494149408071657027464604234157300447074970710860611671733674916898511072643836513963584369219042748098601338965624620119186655190879399695152048835845940143482431659988870987297206561972909562799753813910628500132602737587536028425326419726764995941812790661849666513757651452227554355338623036144358553639232907680326296098410779961686773104928014943462594730639462983147166566247101697432248154500087354735072549106513936879546873310896609552760537100653504723153265593428996203766008599071983729417110966673427358838755659306554412166703824022783422262367249750899199367070903922484057884646871919055708954989584836403323219012475909347930334015939612523390375237843024792961980954012491581042016003361255248752386774849446914450596521497785677871577449325354999905916664547603619579989099694380588600583024802790890243623436211297229591941295518191515104669359159635672210970447409049228752810687683653442527113204830867240356733623706921422324865803213910899209071976320942062145977390599320646595053657338409960137330064827107348664941614399820262400045783108662489636174357111651390434772296159187177747689316860983829527054299178700302405112926155563937219690314276499646778968358341737674987089035696306074962743700626824027278158238112025767312110530236421752594063561446702743666038941263267549555040173677710307851727591302829070114389428795653892708158741199320844399724589629093372260827659599931549370017325625590100705075053062378389594742480413079409844656348746361814309810036767887530310543878073908762303234751832729788316597016792069346970921526330920865210195246242567406557725592507891049465988117368899271626735896565865031654862427941060451048912536977372038127763896909222089940915814242974983738802864773700924224200621431296012566398912589032907748111157929990907142920837017853136995381154190234304624376633181783153616945701157529289771487842797831525923185071151539262112581063293237460234460918995679576068550317333174034242503354022098698545667215202488623098564966405932106343706186055477030309444128320919354535121570698192858589145432772214298168684371307876907486214784533202871537852210346325568137457152731141896825223181737048424275557468484171841798117129632167288014351642647268130092944027923347617806231894703458578180266421296619943073192852137209810745453851822977321105196003547305284819112148254016235994375369941577838736691711569361610124508606476841752536850539637405855007780983601368050868544013553384496528756960415740862582151948570544136075861232548710636582288786290653013525210320569904790194040448871505356568479917375276678154765919622708462653637005386846839458704153866376286857998918224383202963182291120925692670739318967868820166025211770916914957030107831355044854961604637046645198695180868335045529777877108320310495284455712196002554940135973757689110897658868585601858368714431397498226278925412717851492141241495603132741118733531485318741736193846506338977202711158670843352247343232088651093116466079259217421741549847770413053576779470727213310325868149985108326529210048308807365509348896274370642715035045789978909534665476224133017089618813386890271053827756941120520960815463064994047793392869241796174406100182063863492627588754654526594808691161802600739576524799886300737651411212703961070158670942913042095495301162126731426713702471845536082119537545580432252098797266966954976223306550134382003849720367278972799195547710729824217215266866421976737545786747570367724211607082466995142598868172497544038957225330326915391972850561895736114989937713842052372175078743668558025025292340483750716767181274240203290834062226478013981415366600156493002695346165122216477535362043653083327914560665870861026778205453961721930388063785161031636378328382390864276859049529272853990751977994220337684037829881416680651848543551309269535133407771419815923411593114128517555792195620988935273617329538300465001907005091840420976071076178961696220240517967761802581824734825885169967586433216580058507778073431965141834257436775533534541001947772265551263026520163267633500433126518488561182944222782813471640631714584541201365875288166930494408099776636815235950551462285187456363590120371162600375113887530160599313536835064653552706358068211585181565913477722113581223998132201473369937694957077018694899157524051148687691886974705208856845959384999957412492321262718950579344992778627557128268496538716161500265268446124687219549457896022733732169155190978995675112948596043090011063921844158658201317401024523421318353582931841577166752336938866133112915595682442307405935463111208552713495142624754648384584089639254115318393662460538441012877201529423729459128359770122147477738460636212520044722133310865627979778718402757159575950077494190640188813266881228395236186636762041339641497848701280950701615987214158147906070516985138738442008254531527670184571850760299178908981062722818251893910070420688784873977271275244167605257917418110288582237393034416968307816253689446337748730210601593165827756954030244036957575352903993285421923412233110139558062794037776107311798044271644159968430091542804413911128054113618950903196813292178012085236851854564842204953650906635257975451735974983091847362453203402290942004679958666291395733189576723488386848389528395017138292926979153290327785973161351622593799365405746695405560468872249298510447202240118989177704278046629491302297325392196587807313150010748040773376624671609471114642575782902661485295520773038166869895183661870978616808949219615370722989450952741951034551413730095174351281266450391002759660915745408479401983956760984096022219177059354962706228969663807079399040798717893379792910191831940989678343373746113532333920258878885898616393806280827791901603174395619944403947200196106936944531332966034747659228286278665680515110684749709644975432817837609306206904510980917887837023666342571906898530388060321021456507169432586962747848870529748606782789635419658934468025145538142917244743252274020048873109601040731250572928928361238761227114660979665382137771710673731511146942787078395896364094135287060497448709717857728751682474594271940695226229067920749193942995820049324603504273849014985084405016022678588035936118584249876698291778685079771226323384932514428174803553024427377475525635492735978435827601987714511921027832032734943419062745327756987396300873027705811622234506857157585541676349926703248255422923193127451785103274646404270744581864285412460655279833146119960391041388782772228269540375211399359775375451982303849613592937290031300720032545234074382919347202483545403449582181325411321596123425872686388743171541962290641773066249457725392670434100193056647918821151780189526763431902421755697034972547933183860819610800230416408367904177553225967398201464318461430643874660610064322126593054212255847493631711352406386128846681625999656906332950607391018410924432024521752131831075578694605048258730231702926763731094032200986124451994574107459015991567672962786076674515594812981738796596812303476396682815851636908636695263975888057436517083876953174254382708773374788838733941980481048705221347172864706018947446574714486072600313094477589552985211891177743469322208018651879623837825096772934192748210320602420441837335881495161811237252091838284036833333584252292416838195611758762509634104475268881121840578465627132194275625915395185268019290059923274694058230604305313737877108327953068285204344008141376939260598916177086151339001099225762785063896111640879553241059623890981110683640363721004574507808954569465742159217604986026605132249039504614045091875535491264544140308870825387183075305807522981928701077428845570181704511793888684039574308337363457578540181807337016132779998061477140340454635728843507662742676221766904125007551293885209473121796913323341728575138788731786672829885490203175844912114337426021742738778275959274348894956420221972394748811670635519964087619212555042828739445541472473656330978803120057881588408369882576431149396450845771016707103159940043609947739437270706794114800561143494213485197787073841174032785397726227643761099059162066115991786793508090166708738778452086774874643785992233321263411762064511970227769598883808835757133203275794372703788272723503512273984598887265303463188433994810999151047597829416302746126356118921559213183512952098319100729533946065094719113120579442600283798065305676819695047626232216000635795592202261824842823397520682692985311929285105504581359895596961940836483346373022122618043114810006680359192833658848279608030832581238107082354657358837998658577567664098287612963946986168937601449584540751125958644368693553495419577476278311340511969735276413492732140562280064770278077149105165047615089084177740501301142684732964848407472805561268871910791419785116468813945667697211572156178880475606393931420706991951668145505414796239386359072093090181768576005514689031521322992937600671760619453033990109249915095734456477683535287458663957235811048042536825015107477606586275555112735485065395291878628920681987916354577240341409601209520995346071771681021412837961934747790521789488716351191098101163430349395316031456392772727818680372358236859172408433642338541644810314418225357515159233047121966087866968871146661914990489606976555674806330223076759874165856342345209361862415793246395488876824759530882633534875349949354693532587393747057252183273376156041021863635724276703111512589684832071854137564534247389082006738466303877939253817378318448105413152768605051337773063466858136846752654560854300487148891197423427049304840056489990757831608420768421061016680370174048722767387786930435872876281861671864692248437994050508768348193999780091558260359135383120509122795684628302673957864086391424211964485335324409441569680684902634938559301960496524079399425112927050759126306739142255917566709172499176686853986684703010659625895319948030679893116622270910644913252429284894840942410629370017456333761651537897844825271856909638752501453210104651638479166241247497573682406551818128196135144649298784290968982520769413552454468090588563304991116411021951007258529011163833870630808640767320953763423284436409277692224862409663545525392501861269249369238741578751516502047436831348832419368039672255353601096460724566389037865160067302067030764243725804732105281910181658181345877776724201471122241991505263857603780596163562875411938618668936210871645386325840097628716839058232400147775904882790983914384517894823051841668252686875134548580332800284405621157382789742652631176079753957527282012149252700564567779847136485370577819563183627774355304668067563452203551196422427214568455900842038429509751870337416965212472557824169778610765572248905417982500146153111526465627352538216061530982784807812412328780488587208432719881562084167999563515473156158339431144529766631262953917507240574026737920311882876819322268954674002488105483731646895784252633764595226306334883319769560227200862380124519849557854578599546612461717366926261914482360434371349979859682523492033088862182965816539823317735079056504146866007192401183554392394437478414148741888611742020400810637211740230719375970341888232703064841351097460052337819436012567482118008483639273249229607861346430949796637755019279556598793052419745010067163894542499833399068936236639741188268781215572489316923672990229860274716532451085785601730634138720500441758743010246994888088651241376514912506128615411495614231473249683193933458700954133388444350989505877919155576288284702278127551508594138657977884972528821575543228108065243758724586794796563011774465317285590287115987590655319661493991475508740979004563565867883142391306645596180991105420933221250792859733962082479854435399518708769324899375418915443922748000644070660488738565305914569352108777315608185588197427656383416263811694088587545982863329331098247459062561987758123624213244285815443388430773101414048153359079317723696854682877428286342538928541833186687251903827250629698414258745114207725195727776495694929650142563952564066936160478418024198207479653284002880429065860034051781087019299184401296255424378478248481238408043411696513522913151189567059638283923007176261225853123468735459558753497489670106587220534951965579280629967692899402294651950700462550062290522546334004793179155220506030206768846673457103676711529285536577679361901266284178550785228764131651269687634575938680588446847656805230196295974874085814292224838866930901098602300879680609064507755948744880901787397855650522194732544499908084018294918964840282430109392659251202260952467943165018619838302561406696522681164930916833955095054407008199976776865421614188285463281048643369271864823511273191337386586109279645539920188130764909066456156492796729350400513125868156653947001252449621978609058263692278740211909438395675483864635448780056090029857572749043581288297958735207720132621146847671446539545695277647303398632673196230296970391588446599585862232183930498084633871679843028188449314750947749037560310877149675525853467532616091750942301393291635726755127780287959189169190447260565783870306318696340772219432899898940530277715872011909846196525901783534433577116143787656572063740888312630877308743926495299387733390183894535212828483698919983010186733741648443985581185326148548102128388220826639069157907887423919592183552541467919557742154302668650711777491361523371146385580295822701576698711571927549252458294855989728648418531337744012479981242388527809240123224728200538588793636433995619008976676147506929189079444641877620412336327247643424944973189620090584287718114434596944555400878147905684826130623254205972014978619141163792488648369801329140266067678370298313769102340267085758275700479926466659656356504005678342625064197430744048650907800790277047190655631262976758492996999911525341916742449450873227541244307023553098445018251649760509215936690920499931944155995354800495584118563033543304386250869104434011088347389901577588389954745966456709371541914853175192956642850794978884401962729622365601723314770118940267845759609256323683687465076998483839087400712984071050178968010713178370059479303202681273684870710267228086775561628176870783748985233724266372992721641964617186617953896780990273558198134087873026551844756748993778908955386402463472141102290943342688838837876546956074090737322216399402230323700660243351454157826283766343104701265909569224207585808267160397882666072968820491326357147194227889890744688004631026141065347977654755147962011042333016089735810344522444682972844627161753572402310357508286301766516511127030130474101431815331319384440257607272377486551141117971926586758158394880341581460960832954795821701662031654512983646435043719204759913467425701756722288918791785996429234443934420010673539773471900658822202101506597583265802008802295206999252031504605204784013277553057558709264435495036734374603491730149535260429167557513635870250423685398761087225922231595635117734905136591262836723366084142230185171406632408820333228279753257721056863922071050213153060602629062385898144170723797434156532213107642494609840488509930242150742892501759000930518209086463397581746687648121228642639865961507996613941501830857251324361208786715345292143944663007088902444651422429895692412885839952210725211680751667751076949913886852085906277845820054876767941759371213158182078812380983742404142990268181496011376666768227355694349566181395333046171716644540311025912979606732132455186688755053809942952868830334707993406815827512249311885982757550685247974187313445264740963361230936729844618823962031347379567011738555589820310858076051498670403878512664156178572026311428131207445854790542536941926123159136165267114420332715288690319485616202006643944567816189449922458502802073543442480506900696376287510138937348489205717469316817647648076214465740351075084076364431986914245214322417228244775853522360214391474954059694875091914333832629667493066074823014787588458070431056709677058983260383019096997831480861413579215096163693460662589824729007514569498331988370117156384054202509368016091916400334584609078409425788551107030278340260070750411799717097270783227629048768648159537670836419877820842965437972792986091124348719434861303351018486145096864220686419089795855930364132734712198737106187639740295629393802623857415590456324108241718227633417922421538559025104059305744752191071926682094792564843654391642456894951977922020831452351433681427860365769788956004002716632695209540686796109740306881493699512106536296558153708340858126326814747927433143364090619677163813776625553753707062728255931744688563149220823878573453977028494068495407151007191206275687103112925474634044586682089270707396779357961138664291764613790426628077701899862085949328524926061066216646065358889911842838876520124996932221383797960144157281182372175058326731739562539846873257072866112245729140254830858404151770674154986876730254048014719964574828154412700791121000632428613417105417907245577517078755441413679617312645478412425364084210674826359186084192157537261762877683037394480862244401553939582146401071164525310486545469804549082778095046522017889666744245203270826944248779419090500450754054141614510846230217356597629375991399912259657676150184221493976307394950781906376964837940805519396644790866781950577094979988253075152566815525920489929687593133666569605442448084609162384482819694214321485592066481396730132444717912863977508192970486641147184143976188821912276643182557929312211956463866452940780676281191911154481044083003253612314176892171583836338600660395534181758960424496582481469465065481406008942252396168766144951798945529112825304245332043396349705062711593333339051228326418570480481944476842457726047039374868090593015130560857473385078407417798035070130634235804781628853286484213754576528020608109028930887684905072083165993743014217669461852833307616969279580533912531775798976024166078199368659090249965121774983757006465724429875747728279021533739323552981223993403895700880484463609419623124675899987837543705355736800336453833663572307104052535904619787355445627083165837524963807043247483222940438314555989111741705865169583741383362151129632512107413667422036057524958481697532373047598101424460564724481562069382485578073751310650606702319177886756116074008842980216578047319861681513146692551598839880024300585146514155184837944811361504569706271348803536795774389258843619297581030513304332497411445692958782733438512384739979322947757527660069489433158517948121636633476042362743199272526666229524145147343967565458297132764487826862002873107209676976204973297444701888296053817381394438984936269652359539159287824518706896906276068072007782794017610980259735528701405442543014588687718171818883540812500705529733146534699122333119399453285296384379518989908236739843037285003448656494453443334302109972395433423161103029667840732341179454230456596851188953669780404306374642374380118662896418888174919839023522688791156791416601115049641309671633679948899217023249343681331427843026325801673620870724529564949881884299211796384264302395630418837357972831219931095508594729550464122780857853113112649900859592181241679948898194239625934812872815844731373175554537289291969604321806025459877132297526352154426104254415561577216881259204021805320412005684366342518914616981853688576832149310632087193502631378103838256279112487781767519908338034618087626819258471549621523579774463197886848390950565851452115699763098115651546187948973210276552224121614962862092882293548536157737996074327966349157134353332914607297441278500598489671244231736354928158235501240449524531531249523787056411492996990149468060055788772815911850909546305875832942453466908669602789144204935079179613379847655565151813440204754529980809539154833121611966688348128289589351238495534128287168742056980309476917577145220239910822924859860380654999434376827411755312637392760049904448713420906876160425850816748177741977064046582583722309973748572433256349464028317038232414122144343532297021977812130677851343301382308955733649571981372664676304247952891436833347129075519440623867044766799863643477682914116856045292461960630768899305975250761425031458676562998865585490031315955275149595691325311371326372829291825928455956384836933250693030745608500792970260989585561471314882316534737647769003483987423242811424645570154751970751682134839417594966813855475613858321538590589909615541266094200318269954423758574066621419376056876652807371146301489613164067468653937465641397557278406379490538021163529906747757127572649175743268320895950392505966548631492263533203870553953408377457239756952088803323350815637387805638441929314888783829367833620024537157905388074525172629850071722622566936609238140010208758233219297592221503458014464264971663332675000697857240305221559068613554464965707231277542029648222335466571620513063652597771620004953926795022025830727875898892476239584043652313403553016500905923593368203761403302210198197224083303353515969540394282821145152220408391881777548285506596000869516130673010610660099309954467538520753118632745231540659490688963931521897249229785410347814571899890980553215633077446246648139871442549211327161627453250600593139492207763225703649241642869008723373225273239348022224552593793225423354473582418645686338531319360636671819451240228335423131912004397990913599740701494947621179318037177472066868847816527682182494744834358712239592138250233541826404111275938119287142107867039432370805440330534411209702503743051624576814999921289234315673939559003109098554838257872053011132361289074375071590888726402519942185333127676328332827115279411362233288011621906551410699066057059268164231086436361271909639993317150021455171292489325055778937218043113824318016538778961041300789294404072107253667946062154143927955593938724142258658339364286509328961413815871296825062253639920966635967514057548338387741608034090439960105634631747323057028715467727715926094501367080014013555579309545474648154583843699347282505863818202458527373588563030550775546002190057398517432477755142678069885253314750760650980711275986300414389514193048311053697519336290180003377248171612251917349302783810615778117074527266952907345402718388782267303617351706931400864858134899660257212878952558755826419606005391761517791901548391204439754054258098724440297969044754844502697809930530070700635659303186211860055762014052181576750764646010232232905699214940297317651463753840583913635292077366681702028099787217009530924659704582578203944990798772767693590086395390128581387421903565917788714100374673548045192877861707094819338408270420171846865715753843323456125252941642886122130799296603463293755511341602364655219264189258211630640439942076720672084743937738584050164036196138887639222770505898986536708453299615385072684905586244529674728056761714824739424002836154682415693955656799112960392037018126504297462634665208433106299360399041998153110826736207819232589115333377351377589611203913758203373909284182305753546331148747576704628515356162060926301165715067957425700046566585064189226891267212047773829587681036681564896009991407488766607088067879044363414840432172021137235312696071305789434317652764327763466433888296817318927926874740963451592354617731960218837390046110996236018095503496703590274313234611206186547114248032256557090055748974736857108554613921267616878870819362062658646981541337460375903408003970375000665843388481457988667033204155678183915171606874001863702899709296296350129207174763186887897232873925707507920945729005014418869819103364967269477520358396639427079374723326474617879245349722104689855249002535018886313634736629719081780433084851591187021175674646269177482239727678451455948460436032157139726593275464189701245847996684706645062851607930590504659605569998035823291934470919296289056773605845209908239949618567752118380111817117553327580647137731542858954707802443978088554560011466477877632887664300090644723536771416092330489883020175550851747678800121036441834078963107516088074182946773927056465401836979387592062428868602915207430357602670598280805781343688239453453249807260297054347008151830943252090847720358374249184542158720338699102618600667472007009137380675803189187885746415462205865535644832628392562053702023830385648705082667043741397690293248571163135146728376264961560257687983546081677014289264537425670004224688245786084336350890045358002331936040025400514852594998904862857795133717473701829936329682926404101887354428743936693080540814693944812642422424826086454111553206643245177334768606456616921390762724955101741746156789664312450938282262726827731918898276923449838583813578943012993365557125631917352085924703032759343685303187422922392088019228010889990581415183298868367355778600660184072217791474829464972172974686265054321361702264418175727800002433550587678195576072047258126812038660893355438565650114946079763238416656589173408539674974394007764074843159149128693248926323599594103985452308866702227357546829639727699843826455523558560807403775793577476969091796047794792956603081585040421006889155090302745473134933697465077231533533543750545783501949819580282252570273658394628211528804515049982712271233569727392086039215524992050319404313470201675979829684177047091778260609033516038161448267288768806903128312676237461432318868983517074207802119786569260940048977345184777656662666256887540196222314516302394932082806542419311897063453958210188537111492993841704701036440245915408362194895137457044113557902892188730865904424611676423392853376146942641259720313658696865144338257184045909920743802352647104226782583511856559261804111028391698630650634755893464544942229798524712281606161145930345173711552706243989103441164845211274114654735569744750677001777592291674826170998327900824198459491755620001624163394217733587783142468685186157965822120194364995186481083099154604285359547824758757410279750529756978920210140111770348086456909280889221952521107509828327504232792200437560565433776601157706848988760627144377757308897991720603236185271467896811654078448918975214068548267347991499390228688566446126857801643328396846657371009775273460286653724317014056430258634125088192729184961625448361001260549519940915521796551822337640050395540560473907608838681255410208699577644345260763864669172466022329833529367207926457198516122265935365950688484677184618612617404765618351757745796294742656272843646354546442567541342584792577108619852238415817062143157229484485590130489528124245397068227839188310888446925409755365100404254832090164139064118729293844888492595494353236300305690107227351919925666255903885419770242581710431341726982150120558280715696454133195833601709482322742147144182791866505944712136482255192575381720696968097731808335989416496348626467471308838295191210408033227645348129953951676086707551257134297813784617074630529494785064697218151417889581554284305639487830420552164992065827255063822425758223962508381520224386826205102896830811939496461252287637876278297210534199456787467794053983963950610725852573162664106047244112242535697292775408070883988738735731078998665072981706303441654727031813724939859902570003082358236361282143208505246122601528269779314662910283656731691489843888827812227354844224802146728362031045976457246178549657987640702176745315629031796016039148028449400467144395780017974074994705357502114891043246494273417891118912763187002365239653084559097018782485194773689478080557280929663735168761506741111020797546845967770930166149198134469139375057227268254649131552164698876253695956066204724826119523621674546716137084927793225191648464024271153628247995268867577270577341385096193367587796439451010786020670037166846239283184320284858403998354578546308149866372677210847564667536941796193684984875355491719571292817251348998852613574928456789136649903732122943476751393827104616700461799595455130632366187796191381061458646185333689871519288214917864140926005954254782125074398255435837492899621357270998847814741324409234684834366106700772158701081676665244004614018747883628727774581202432347932233172755015486253231061024341415945435205140793293840909010373056590814385938770573265172125147537943464712864952927984975938243962789791129058197518610902238865843204770084798985274068671937468365859142606682287056900167018489002103955120891893519142616402144828206375739806342499965579913365732266320298079755525589727028703798564257972388504049497710395316691426337827249132216962277403148740183165755608425061775216532259151480424186202963379734846404067858689069065958659135689812151675789708030176442888572968308933259159525656505574206221493041076360008363005880476375226907284053263203876913967030939864332889670032441477046794902674000081997779482333452228747226750056910024668428234988458970519655257307513361861610520051227128731869907615567774558640567775019325363593642597600700495636020125226306701385800116623319626574845420330264735407142409576878918758144272913790241529751011920147618170650688217444457639864691422363816010756258991144338536335461938652025733845515186267340269101216300323705111809709505444514712358392120654397777064739294582250717353483753015305684561135337552304726392050218566668415554415884119049727517397036890378291081645698687883259781759201435414788281628168263775442368078203333430768362402963729502263713299983556192134498092527732042118374225350652999445164630383957977646511827398930665174899817481909864494535130226788719975618919836426956585906675084457247331987524851915500646844087308964765210624258892956649012091119077001906408693494542128414092437936727240213804616509309296022612524755124853393260343549214494797110705458694042945984107481507650463220913238585211134750141853358274686206471744589680565681599727929842289803797030812185047220941985005366223408054704616837188246053892982979366044875859974957192678217891510588758273600680605610465668144359317827477328417525603099313937611234410483760215857788442269832026083167985854235602450376372438390722824577465913664186335371542715241587282268476026529452258729552346158718828650436630462969220101468121667419261456285490916269574071525147012767021999916479085822238134778791715037944549499468128223855636524636665153575790802212250027897283395524124732458073730842809650526205807840812461101692489890143085192457106954262410360979530748671739826131148195024795779554813688413995103739061335644041159331592851898188033956052595946232980173456700099571227863819381315943480838949035843709549484470321442305723043915792283653432749405700845034575846664897360953435964422510496675891636030063106705876072982995575409731445721800585397811163921348965972449190319207815684918570143617807888568379757563439238486869518471141109708094683426257058989371339505380650464479300934835957174906318895124905741769728610664835619349737355518976796281196216025927519855728585122673568850979929862910831724914870608551546281402353071458985506743858304142386868267093903408553693617660874021780539895157889360887830728233511154138283323539227822872764442711750646841815971459436259551099323013964902333574839664678355328686807705214232249847756102370177254015884419981207812990860939703897884996920880085180663755132355264955204047746448279245467028345729829612014445359652555932328010181853716838792993412969037434803509560640702641567695954411415543746607356075920115667476485618446250808419240490692786090510292325001704922787244750611885356280671277214385604478249099005419876376515792293250409044986245602527582276739633546856397429926953576836936237398198278103593341884791797528501301545666063909604324721386031627046557993728716447920492863050977372886882236326721518523390429809724532656655837497000946937068430686073149632744904916341618915089543117477768739899560929869051498464464594229310697745698504383228561776111579393358829957611499260402462163672087207732188389549820416538393223057325932783234753776835970635242943063345216797209746848868252352779435631040106537191285533311061226737472734249000915007598007228603144791164173008412463776758002646364244102140963628198030594881453332351725076630706288782299661920473982945157591047830437066801187519813897844364876449909121155890995091211619305620351798177068326517106419264035601518258956885403257747886187576139179418976642459850097581989958279509607710658041154961372369011335554479821986660830745712323982222081339731036347206293881067050871745730266042846345534331781782087867884676131761928039285519720452542969181735378474184653216224988491759868323100417299530054974644423524424850924612425389405273005373283495202908328331911683554207323341367091101058732501296431180689708821545438079015420395075001842140655015529680100498311377496191769104122473297341348892416200147409115597226810323727211901990699641951254382187027703672903101452144504335860222368311747345619192295413190346149147471691048906954411848738431626188697862778727256511301162128989074183973312109750409286590984549581154017508803223640040196516998135159062878443291343643412442914670922757004824990365496992413552330086497380800426176722612764886398210314396530165287606756268135305158469273281366291846732483237911800572510131515797785045094640435954801094405688485604773767757039046266794781980241417070259613310047231994163702802296773720839915026735647959209320599328008914949424558576771290972973658864788209585635480878428711127753656956071913406815358406438817154351974213179720856429251953096601374731193685982324280938533736579361832814923761494057555599638107722117980338406052783939431266864825944134093460278738354830488425263880421532332759272412659380705439810293460362080811760102428008258804808169823320268198574906517262387135828997322871188955876909393529420730040131225401867223603578701605726258746450033015601162917652260955570590526601282135981094600410013370986229436272256489010862209726193783700054329173113335413718020048597831343988601396203809142270749350930893279233814973951263663885624768412697703920981912738817523837809342417746923769135122335979274175764592319297683223899751469746953937678296787682945361727900930205832587641085910326934470938914461261827083689874013349513620847517519632719324945126340458913963721786162991973630187897096084530615906396103812432640017517860872314165005020386385924928413959701145826895676303648845324907494668943397679115210884929698904250657552147500097733861509509520160243898915622463319425573812764342010061518403176863708984438388972364533257702867567417623325152275775893099790622755278430070878053647289760344767207174736253986735653896984771470170622043576827586032523043220637357925268954003051667242552942330689768502788401004901078421607352916287991956836895159952465142722923178107895030181914069857845355902987067770487684226049119882048015727411948250450327576703660680057733016210822555090149870809364608545110416463841571270399251423211364688030196667272696453975768958797613007360187367373151700539403197898618422757565386627720730657357773868153088038612194763997611478360565565608845123957108557946896622455405271570018982648450365534534771159713478670267608972343628345180609431984754762642967827200549678297152976807962757966919237254117879674031208933590767799889529321610336231718857012914972635736894967714689493648770126721119024668092884015319488970614471087693596698582738666876645389917470735796730384846935798460230237628923015749115857157052046816755438192184168193722568043602618544094909237728370456823943006433342429672838048643849202150652318271527886306291464762996509895599952464773473116294958612190096555327160191932725804231851999943333889894544580182760579699603692464096422851482282992368714269209359674255333651024263100107114733572849826248912475177116861368989067940151590205268126504560864382969795376774231985764358832625481775406651469417710165141448001827239501209672068401863461348553324617402019129890146775757887598760954954674950028242495657849103677143879590770966640117075152549857361038326970806729348593586215285400533467491731312764443500091458621844519274664294808878278041329623933437062558264959621070210209549831430195443975033445188123307855322297083812911316326950950020854637059578809481482552549480270394406021875158547428876363160668041629074729308823547941006173388176802724250091306605048797438461897932646289289232563455119207096977233827665057320644355603696630292240268946371146310395302005385810824935196419614234117772405308348288444130904524903332863831560474489405194296224892933047262483589468248680115590212311573618597918634810379104389457660125702611815139890720066363380688702106484850360645080906843437564831408025504748036300151745694331081916742637359878316757311019191616947122359285204794456117957410893405750068727961424115647218658649174453092938129768605824895536505130884664067120023284657313837994347920753473012762786026378253335893306621537339907535675660752231971958557058611019159260473605941195075330597378672483264820529300540996636247600134671142618067087987104394492837364758503310677563791896095662372267448443640251885349618205137184389197627995660708352499370694638355577574612282150395279752853710861132555251864454390778268225633423128058950141066853345848958266077616536507742736243390825870332637029134519658298422534260636436186991295006771811031850959390511195149361486236866509895776660411974319957400743235628243215208233790016856837587500340365479104820208631198226858185619560153145220591678881870412817404863081449166861599302023881942333446102356518320262760530805276153334863957740352384453502598839322362301150360105429679946387119305327441395975805768991007386227300010648968088068918228431779033229888651156797035260081400524769320123431781733632591173650059332419073086323686455845729051920325154553539962798869539088065848044327516774590454220357010207502191435670702043125655370168508058262638115965927888936028312630211257152676030521836407204527288916987951883964696108088267607170028956800667857572283223457691638877669222965335844713180204911872958698179912337447784591126272017050850108059062606746013854064733172312902867546398938729609912737441695229235836153792911288747442154971717630884324642754953018592915191578264123441328049114533597352077927539966649797603434213411281703575630871447268568440311081848858878878923370448030033742270786886361197058733167194422853089083840679760239922261160975557293553315345448891931249281501139237120641035158350491843029616018269837150977286367393727595528319666566962649274282907517674067159071591588756199764807141570291390469853836941406271102351157541782000232208577385051100369049052269272198757993521193491360808882559007707974296445030951082641725235907276142627282158540945310614372751013010917183341206895341728347346873267141005289588342204963058737500559529889087743203738978108642258103945116111339660121033033299544480893866131755225456098262049709892276585667787430755337320551305012376589172993375664521631352302149413816442339798710247750721646736524285657697346576495595507015167513893183402985690286037319824757054017017611913247505643711570634526512532385678707056468151259255659946329205846391294782428507992563543717742062596414216500798049571857431855767536306536303142575914577772363683204568522020844238437542955411149553879995757907922852756561290790445278620984347099758390400225184073745473727120606965585608990480344825114106436506233791535381845444304507808262254775837060597149975296525951681802507768103973769989216636607695310853277385453750392486603009829187067820551190263770970355039485618812338196973535319987882295950660921579641049442072773747770683179189407024077116275341488494430713226189651828295781939876763545358544563819551628964737318965108610540476014218635190167634579206167872367275745660034027373550454181198235381345492295466433922415510627130137136514863695544547520827327397622327328427659152937016693179351932667642927341363240831634665027427158229379918371860008506587857642499129660452873810805740991397558269047836001862373576134280023548134317963739127047771645864461657912564624932807375579613345648639901106020875414891002283209821880178841051281542082311260748878555220124929783633203245590793781661337487488944128417473370079599414435502518740106204625010256405222747424391275210214162404815172154715580451633578790221309730796557011402847516475991752142841050582426133433402709627817547069240562365049903342505322434036022201354095687168692969531553412885663467023646872684909967195388930311756067196002536159650980958187352630966521345979387903771300749934136993980199646460402032514421498063769375808462176782208735653016616994342683551371000345123660269969992907222872045912330977059677857572565185417161727171499046599613632285789498303256070825546344508795412454171435188008202934498796286975025272500063260726441205932222256686832991310284849000215096462750775338432346827673955934991626818668329348441688856450926593706585399964174247182777425916279376460391668857653162459864807441224250382619141287875085185566542215719623487545097813500295075366551763547573974347479728565299044071023715208522660164866216570717168522291610167108021376238973754368935206282007518291350196133377796776409122868040026228317870681768452701020383495756528609585975885105464681151429237262300234465570185050271631040918717911755624319664417602479445771783862157023736087217803012514959691091196954428772175340648999384465413159522276361584857550929461501988166981651848352148056581389612569731869773687461271913880432294579150614532741906932671881592401087721165683738113411256256517623537525909830473505614664734283227968567105951053411991456244693139211160778049508764628445184686664437746102499743842582629388399032304951052606762156731032510801313896991485109576986686873051982486462782629470410475243658756136761915107751964731108778285765965549241679560145983135941963290952854695948671501209582930197386333344568849670376884582409328065725681679297089100003488626637084793780032457211974600160024597620262656125485957015855808434348398927957927193044656845501512767382552413280331391518094427473674928272132480150298796788046528617075680086099259907759997089274564920599926008630566735149135585998133418770639346410877845423171710923798205145950310702320885925264070402827039065398608892255581666177374329611247776604546548524047929572972488992626709748206078468301385630560894225432254136081413078710885102982251635674045830208431637308185034262417912328091653507822806576155933392667502280873489252312996009971981173622464249112920050875942886783382573300453774808959548867359575323590308415916361275312184403428854868667297805137459889396624595966704674128552464203770932344410549929563116219294786213569593047505942319011746709240522985300386072373981895820433364798990826293123622016565797590709831496397832271984124284018149620213918652100991678473614232232893940861007806904041640941813569839432952579046809181680162201228792353948368578646975672396001035806792944943976223816810787757642924346008993845082629015125107349457778685654934257094531238251026530289650206334379411599787625125001977485338251942605550757618923579555744852001455378115523292378317608422747442632827551382678875144518349813513670119392028415661496164410171231588665675297165371368514929206362755232228560649974293909553883372611538491241330182710715534810401655073369371161207800513092252515167477929191403920287319892428942031249112250217495927064699209519806937547981497059166920752436549390057752521142874924628380364542297236611404832838672020998564514688686581281301934330438237165145974198149610460306582460134582471796245186762084674656120766352922640070778166847582075161693486597529900697358043567326876655625015633483695242325251159455036213080673983048902981386296772856409931553944131296150831474826226775153033938270384845741881242849132535700896703767836845915975625843120196295869943962915457575616772881125397437284526026102637761519812605599769688900391128308603279090111408042876649822162061197406225751215134171780849804138445079264753826517248217649677335882433000414876098054582824162215313008755687405179215832116348075176651461412941354317188462182872396984945171685457762074901470372428273160953265173533171316715787246176442978966910549737588004861024848129664735834007858437603827977046936170596087859516857133749164245579969092210949722877508502566129654270143171262997861219097843204256005151704287610532441043491138553094300985236224039844767401852136211522426951361695679412143144922954621460974675117417704376736580024049272137520680773250123755097615806556358577581166246013113976611441793651370581100243369467564291341096276000428431370103274043823944017915986534556714701687403079527504210555781199775953084644340546317923468758266200955224271001065850774818581222665475876016431777045118975729315177510399106672186519689828510863081636943522181536988844292096573374417332209823471095137705124873293835135685870043575082161259713133238127019894000399297466043672853438834383692239277532290210094705943542542189952551075343215223315329127773808209953165993874770951925117366750055906088412089329582828119342252542244764707496673434718068371981383361219314219754564274715356960097360670921534565793086644627068658378332103114989742880293805573343198625971807521450415470880904551424845684623939234612927614876660987143947263138155460858425630640503041306605608096769490782291535261842957292037829726452910614862077923820645164599264922169877030628148488719063785958572144196316159213875811917130291042567526080858428879603072955960037395309753679286109927346231841295765339737209015553097560821060107936647851410888494815231652661491581219242089806775060557905367829993363041730357831251799752533350507256595161209324377868044846980098663785335667982991563567115072913230312539142302078636391136343810563335187908582252183518310314503495193180545468203096301581564748570505551552279175488552841915275993344685619692094458067457848127314818853865044959306085808156959416636990461486229338856898280567370455985851174258832163720327231724378854012576082317987008619244990755383235507243367413027879449067424605977734147251176365663158640727372329812259513129659633826733464413299590307677280488206177466297778929243658518976642068651571734073729461150862092044636261178657736660381357237858520578361244569286089050167393194681328776055899541602073906910508329942070305941414445017229468425358259124856392265699322103154108804904391418040789820925575850812580652794189777516106984297424570422863207743962082710058921772566001246055395978090426523218379073737817201183413837007346254656026986016781985483215554195238577263997252288956877076017969329430382190412120486867982744876756908097536209326868850979845787120131784605925048418679058991807041761853993449646549063572791366928732739575664682545466789527754885064130321993045820408511918858221152001079753431004601417615175595298440301092771615172217078857191140663737745884454173672847099263833260518105758415277700715854747889401518867970256863411923778354289025709883166119605295646137109989444089062092528569071124424531266178912440270285087948323600247391954534938772610250174777042325690781952759886753451353805534997665881847939030249032214948441947969407721550784149729326434595402509412838641367464510023090808193161544142586358392820612644562806415375774109543692572186048701796245190794644444999466894209595852233848223449170544386045695037714794613634174014703116004885302547232437871279630741723048836980763776152580384456566947976757820406211500692329409786019732093550483536405675675276253943168859283872864057155241922687161689036232898427866764666833817593343636215295230758997095148860002752130162881164162646298443145403872156979627666530791449996722372228669031469086775157382003275198035759730573388777386358603428387156721335263261664425514594305397551292290350412597650950445363121575371490856157691755670299643147545222300328025068826979018651179188582189327182580632316886148016231926360495892025652447400130930364288604170880316755920992091202146704197018475331318971207131127314749900240393118554150792748308290421137637071591017340581014643228111608336261458741023080765542051329106481927166700651356218000698583193675804303490797888002257959142502004513110973750548050883224200058078967410981065831010454262295864870544757334073793855669014482899716948213795692679147608832350252818688794982524556021873983237239821123171749411741046952264245360600621421107496024142038534432833938587709135164798724084222576404750778407099812976462555496733878778079236102869766048949849233144187379816577091171660542951638664478658938132561612470753462519833762600359063917757891853354810045428650849448294768605635185768211585958314039096130758265442680847341257393633791592472351102019915322628984722146217047702308826375782709883258603239471858767189317378491448072929911124237967202662207598685475689582777619277049021516716503176113580390576935801028284854441095554346341190515799248101082580537944651582410706085923857510851770293066730867501917040138546462482502344911195335349678659267079239703202996143047293428316013448659313935990643023095021422189263114597751331068111404076977454069076095653169654831011884155960256278720934296720158105272414756636665135601118313379019469586190362566921528111871943128903912101116126244176413993333415041852401135679006550044739771043457205937401429032329748705165089398203502090710022589862412106190899814227143372665975482159682400239376065317716488984594349153585462379544494602995881554092245055721128963843662422490408255719432073496510481481957552226778494876230803658806770803154441023965949157147075731078024256061372094559647252667375072440657692278220246166382933033384397760611001209560556801478088322597757989805439290838102233426373576736338950583501349712465197793191838307277888085234605671520226347064577082093111927082747014438789967068373575212243222200491405302351607816572340562572540492558972976403938757885760169728200624022265784050172797068161600439162820752810643818622621923701512829440877577539104151286970357957484422153124717492181327055640374804511106979926510684122575998845996745346415655186672762286528856737845567346066834539513289845464246808719066014109010507872888148370343219325184783199994722199531601924338492637065887967820485595553457388005063217511406696136844893027552216129411986096664449383153214900121134487198006296249904342161014374765091707739420327009020762689352538941175710476420332610274989879431439667376339597314993410815334799714723015822539480461619377547510176530917247115860237305995909982146906465131474053419807327299099795805454717124199365877609543009816499124707207130183029356900422076509605477393705674403523749893268209358352705783006978820114875418151657735308309975798025851799080310488635310365845861672845518586811837381566356568564469660581493252717570709505225720248869871395368057302411334659205454465430780479865902104288849155111002906990450066211267190415699332992652374544462949238362498899822963005929577964680660115788283319230993710334043493852468697202737507145880441381391866573145276464827377700805735612326653156777607769650402175626790153556924829557090294560680358068147714093886052821070979039403476318898111473670899704981430363118314845933105101259034104519046019912451279781745324797367971524587287841928277238336846775032267030399342203499977429150501469047022330430944260531872963626778882265411638448029938507715281893605350489667290642231278457118722874293559688394903514490335278453014600836533541701878648465632974946332253578054867481430333554049831287992008780502092180398137715527650761812678582597309639223414139735957787413980407277525451781521100011031804921883069060699529614917646636237360306174315190386502018045571004483451645508313569633169238567844425809612015967888177800250431492875687481128599639955819377050861771545542426759817419239101890429066348817798012983626586294728798135809690456239024032639199433265398026955511504218602793558397200547211938476784099308209329275936788541463490644648089222709008664471376494962186685735885530511873779483129373489858330374951801032169362605306172918397895658600432396071800826189125639833598604287184541617578129977719339002978996307958901771540272247938066550706533996839822928328007808209699792958891284784076728322401551050804995106229453598970181539083971047639205129866728649994252989087050857039654951239157377336082018006728529049518959285838386213960985355180559664079269158419496525564051842229494081373724361080363914274671728359684707161238970179285173546560477928605936978817048728143335545623342926218735361228344336118247991305401092627946834069897196886143664488406836980906601458281581722245604959244032147146400229413748347284933445868322341673236236721423114513237935339225711158263474615148019259790218075464850182242271653019684616598699053578227188723107071964851045068559381139589750168131391398129450492269240498989019667547338926375561617954170854689228497193637375394412633808106509418024286433566158579518950414568462752281623172802123747263081553838693550202158050951151212094618238938740974486784780607754847927688913753304708323716853773671775013571790233408081724516232598385324878418017031781046709454680623194829053314008187754755510057583940087455651153592817902171580067385796709849386026527062566142511300363867796995758294567318418415920134009632093389877753658896062512544485681848608237753451099653664842243893019687382779846356651199477640895861392448361560099283383893346039818756219184962935333596621181454177021098890171498475223822662792457972668340547146330390761110651559215454630125718011906872047973840458823647469523677672218969037367298595212509688232004949299834978537649599362693141076251088856550396181063077389379452295645465049969867829562523300812374254118403722296642309638329018655739353079128832186603362208941443243896794386890280024184384571097888684806292491218966182896018523761425295358167220437197738371851650984510514395699750815331325059914284673342549011825487568505721094399024862922047987457244050096380242967201155938886212200592477252207127986921139792378475808664811181017766237292558233388086678561945477768331708332853646600607127596810308343912654098304270252281977472915563181364132519712135237263276688576739081407972777623148311924260105723376864894564779543411714355807164292143377611431387531267515016150082096970025211768988615708061615347742069133319118286214485114073222174450232517041686416813507500599708798875558853148013482567259100890982479730323673464455802162825730802191772622291751630084390520615341452594608020971972100952308768817062780737064541004653452294113308735366822898757751605423334249356217439232380805972730774907952205015260029604031350855540223765994799953684430874696984362879430030632238400428053402942752639251037243920683666153453255995513948249019226762905532056891880850816526662564832773853645706711629014395935397525935487333137750642939060127519886297403895998547849513769030102839605956021276976169605754576124512651232411888125085621926153511022055890388219780096372071606547128670014243282942356425685201560232223408105573777132423404191591410250625222431590471448789895067492275135673224131515538929331694505260094142738495117190271663827708860033579312824037327511616717326779034559479462115416680159848268281130499732571879306748061562184996877965265474385685066077167481793449563770162199393311925163212401048787941939899568996281950071388784535620644249351399303650767324353135386309079778370899427885410780096486896842180745449084150928706330737162639002545152714772525618436979074444696295874207421505348950439544632293767576617979912161683924242196238900873114841031116903275532151617544741642512880254332121359597108136899355188293847335097357154612918834450951262279316183201947300085908168481196808002058371887615362153877311055522849484183075655948841161411487913584660462188964855208609841565569207083646045748518493519269996344851347057092710530701799023335140670776547178220385314650604592049458819827215155993496625562033907498198111692786925156103225105551177509880793928971793940742547872277665753200233795728274017986033725901006244340428662450211289126779993090699317066191057552931964537588184338824929369624810977828566597855393803134998301893715497346867053714375738558010359048213199957063149923380164548940638665822941562506912435249261376656808020636927287831115572537630555906705722152286374268945608417965445639573209517064223949600808814371323831979213644259404610929342546632935809822567035876009131608007046442925856667035227111164595337128078757107683295242548298113352964720316276796233448690832476319187852360959007681207186895176259403264010768740344297337769121002617739583237620418564736115595881761007507658218757309079393934435782536525586456532218615674231998931088668182433573348725791312550292581458183244468694527393679579478726046880719090161859236858535121889038364343188688624483131326314780347355423652041244755975031148371885693021864261450657128098602618519249575863949896487790263350205808454084440047590200006962006442500892478573988326482997205756347321632000441509820626681807217697809733903105421383888114548017564818062316368336822210972195950457464218451000310242875249074891725874160129958081207695921013305625963500205354777624089876369924857804334347922951452178344859332201920584151075319472859194520501896165961421982274823944809912479960615710127580529619972328035553142202903434651380412633210344555095383730952787445201717777917768921277866717735377946622119644152058082296797826270992929177619975081379494267029941500588883216947795383183901850358526106750900335640376462050134166574673636157757061930379251609356670990999811319181012710245589205507769899894256316931381495954985990513118353275419128551477929427517357862370190663834268365979440051603756664668856067332075982408847094011832451137485295048349061861441599826496436431998540038168593279494489629123179025734020439221016191079358019698779583859888490227199488387377717190707780517106140476962964746758131945206538601730713022310730514639872719052190809260387006272083422120455300876313773005247476735197178803191178966864652895440288460021402847721284807144159965800423229791893214440790131812473571214670989246377358805143946571661764600932115224919274577551891429190665723310002541818215033429057166006543364641027023342334563187116130685955509060783499332064339738180621245586205890921342841099574344561732812911973888939761294120278794139412435536207533312244779638165509404110335568814298110538388455745873366565059104742114543923124061999997788281290958903871691879448666705921735096739489128615038850684984803896898256111162202890126170088287712816130667985019533879211541956547913043157140837230275413795341565095836130515634759732536519396926178566710764665336865158355672529665822346958872680911503745540731047079145356552705525402355405415840106162240112267230012560139178331536401961323659720609495737848109720042322030890636660511678849620303645616829274003130794420267741898963255700367451847059507602447171145002632090886343260603796384256711913019327242672696739745442515304364316758046119926593147930096907724267739365510487232760295977444540890956185822859211343509126236169600255573564078541102061102910426354008072734350003354522812028834387749179195385284791560497181641604134420525357153762753414898157093163823935762198302596376837860994938222900861651589817167427439836427268834837241453645270077004237112088166482304037327353842971740611108751364124298832841575671614077939709731822601638677326595915893222825946703183982534602138067593078330030223966473003912242822342201334146733266824367377233375199714407691175016661214851683009321035281885271597050078090741670400549660991986642643989929216135116710906599728402919360306736771763079562694500662106108424174749608680566897220135585972749981357655787759909465694403714924203053911127893084434077929137979410080120708322587453736968460498418892773823477236397191024168946602439449381861150680309755592519341718088992702276864155513265477491573403861716429775183021643562947266948334690243154913184946661891906896552248412913092906842628729245730806422497068290166301955966784792258292213613765838817309322576371933924925883980728258167073548959486076147601087494024685255709162987851452762877517993139992517505266935997253459217429125877176295734742498801285145900250277708914986675263992612493812448265403667315958904986128544181851602147972326635253346080850179240594657119879357350576484960970951589018597427021310174842882353608506669444894953995473510122014749397376077126293528889583209735679799369455345033660387449752865584672105576765216278581309171452978953542283083954860423179895771213579950737680352149341405741262288134953231359322358104061946075722323730448149345309302640004382748769979398283873339654650295765306937629407083137800668258144466501789918884764626373158167746237175221222845739954858795012470550650291097490274580131441759622128808973615754002493829171529788653805537183766242195037075353163562618300433144434934535949058172525564167122139726916802810319421647474387781882336236215158128935884361917799784752160517690989439254388623361768828273828717280769660047998830233701134186948766558482423169059264040996379351519376422637382503820245826771862929687214112495207942880579262306908255814377879967875330586760422097944942592276905586639615174508122939317296434204218208876515771728496110672593852673770750351782705552344338306272866669896264064364256396151442601082804494084704504911192073447821591211243953226613643489779202306070571245308712271590513574717644182684523172721541537814276223389241099293919967358976976922347367748995248160957079916828241319015031558157931060517733811918747021525769799231749899841832267073959733619265699912725552460071700800467695921510942434255545198531748641123603327238519160464065041239807927239464445593759014760678593867069096010226188891545927698708291993199159725344663512060648118359231286135482403567067134271595142084416655808383445807186677182378723069859894335428202498072272157330449119231711720333741787408382213716175215972024117881928910288045124147998663063601041539816278383250806192103120216023683800918077383127618280928668565028469332879429986656569786438997085072554726233008667714646033148399131761909440444643313269875347436059068089636838333231450770389738634041474512857353153065366880548742657608945642018597269876017693936887747833168145882072123502600358635416872562322848060087670297962377363374497584310738040890800295016962999866943077562740058300159503154626987467106127405156073556137695656202200575179721827162203710156627321029591280394109595555182510626958851920910468428566255221428449613429439163358689308854872965307971940702660974983686067072765591696360023233569231213464614191164410723876582854221390452051750133244748619506520167001343321617570854778515158229701006778240702780352864270786575568343678562689217562557903186692888226717676133193710386218802926466893190546261940672688458630080778233722083549335710330131082834646774611928740483874013732116128083250406270142321760546421694288554296758365569175777143594425814748576216391737395812196929570215304913182486156218358205131138404814955823952197814808355792835378988718621448385351962587470131663525559171611552488961426053285379821361322152189281673965696401067211013542817214872032036411189158827964813558030128701224078784342024344420791504077042450798676184129645808219811040653649576151399313430831125224927040925914809694621537102329566038555080400370762349243598569909477818806259178418593299089759240117058220310482401181705491935449528916160114267261104693600965289365735371127274867142183588847043623560797689056635034032527838656214378635629550151016119309065389548639081522449081066660693353003270562557895609585839724092950668193380574219046032270732292177802727780210162189368809178688752215511947755164178848066083374127566172707036864453949616981827820548240869274078651505546683906226165427458537427188835106268556211190117052970612383202059365697548899238488449407154517329330758558064991793089048067490786343168806694330648915479696296316145040544494036885135091353099277499623697377904854989480557889942377764571951473810362679852474679881382863705342159910051886685007021219882354343204691855005043125786246817575650568811852759390550546608875157375272859078941277056395676871812473211958351336849561870261828162366740693485937152844495191181162578684750531828953674857689662290701741941968684349099239377266219066153791497775760274510474104185310940019503570457038910414841473580269471775450635477448602125243431453553519022958830457566218759360583673216337182043218146547021603953473372950512423465811856411929123106878342218468753993837232346549203740160805329992730136363070343184542586237869002280070258059257660833082402472290441724543688398361680927053683369438736468479693282229527206759231586338588300959184036528617583330309994214086567305521604106677401934850007542197576242674825543796400415236558618539324089436138484220271360736992910394869955197383239272222639915281519834980934782037340637054473646107495652273012871798394277262146911005646873585733238482469546084498756688587858085560070140018007183582518489122046801043318246866771757218357640209856891233852415385409337430080449581280272366122226679050339433456224756358142423740408018000844148137659296350947396953916391869877352971609921225239388985800170555217930265958941684134661144927709006415540319486573319282714730554622744990968752525239979594665945721592637146266126214889824250585501570152007048595278181140813694363111100256427543827101682915062524628956580211287309973894468353814703719108586521553008051076084801081312937223154360031372404227291040386884531860986826786690049413712140272062206223699463981002860200108588750683543915301492881693715998737097589557937552648468255344527228329526364570106045976145054296923628753161859485398035343168366086023750464572060076519703243432683450028139169664602924205438001860278416672706890323568564795088005083673788205479325528148535164731358103966013495189219032525889103081879313236827636387348772722596944445395632978651679426076041328339024458712849210887507033368042371740062023200510623139851237488560231471143508222637162159391054152074670749332736185632853992684625185063494710541014380346265158549167284283931464342487120642249554885999785463372447447563056191553520505087407772194653681990765164247825019598642609098023478943210372151734436487902596848208023224681482785048920453351215013188868675501745674889626413495248538848687183148413035019835696118659973484574115221084698430797404393960863103207367525608762596306631917499346789696434637640511700274622257820804537576179659615295625027786486274142707055122020196398598977249150663322314699308421298042176035637502958130122758433808439619310098073342297958792840392435570918751862661661973974292281671268697935001976220979783998837142418099005752949297467516714472275252144519774009585860920815315990716133802780518484727278200468666102293433548841327267938077643926481317722496574047075100266333686462167156882258521287982953262232806833971623771730542889848179274433116721720784343803817652636911258126919169755079159016743225377906814311552153294134794060434543808429725131217348211943036268906731257712427487788977946228334207583637879148335300652592368534561499003894276180472269102988697489375867663101062538698613293026465749584721993643807672683255757869837456913060800248643654274527638263673057252310549954089970615676174132645497522245805620778935494724425488032843105331536080299827394914499702454968893251138448849624188292107725944849267825615934633651810170116635115086412385692190010244485210029055907183796863577727449165358636485530690103133869616832665544469677482613837518859562604489826701573281467672196897082609892107643571424140227601903776261169222683617535148795034024849731139549421935999469243155518272240158341282666203409990280219291748436714754402785064147156713015668557462889962794994263745721544866546615663464333102533940121312983866353307567334921389182582516286896571614114576915109533603697160472916162068555839277315069499251728378843501803832156412317159621644241516133890852474796372035825653545016188015907740921702683899887540374079850764091289592490956159888700262724805070190290783452467360580770038431371437010206490463531608130790600005546731441444790230890582881044963150981352904468521090458670963558786968469100296371302990916519547628282593497618156286812364172832848234457035681263499966917902314524937771203861972113340073730953845800480412385693513823546431938696678345767924013041432371054431027384867030202761713030330472077764884140015999367898858904574842151857349234073438688163835199815402114740540999037235924167621806501421960123685433503864691858058001812044323585996615095201762436687201904531029813011022018449194117066096692798392983744414316980978623738640041453530654345013128760277783896568054117156692457583478857857178912316791143635173782853003616771574038251839240105314108722279869560112177747051295462251781611312421936306959732980467389780828533802943380100474791168244199056874366354716826706506650821771409181675660776124902723180502416630838387103520034397866506213285721518343472101381477101423634268784785058924548341574896713445628752871077550784214228038219328221420110094494489458291073324048091148693113211115347678086931037005138754003727371659407411002765953263527388519728145551729548791783022250561431702767567859349642938868667773437971880726375009968072397897573141689052486771612173355050781563267270603540843058342539081489939729034740420113281664106396898134154323974545085303205709977076568096995771095477810649977469938530478629052891223128532660114418767637049847360909674664816461217746113946887872536943209978632299576254723418551770447612854997699390441393906028618625529407490118076903621357335433152204145300153280898813583400477464967579714286363901356032668618580308098784325387397168641203342001662390358820844742536210603775159571175453621272038013159375537321458653037716957177291780292985138589273077829016014720917105743792048443921234066640943933252953289155582778636006064299749754263760097050981864327680177136238403196099369292753288256434444765297278438693166353609115918530991542859234600322072368241570805000008920593609002726252282122080105949231230871706664442525599650809792083499646498096721391572299777983061838997977127181980479255497638488093906823028521448350560850737393689464519208762033765297625921259251338114348205718213403824047619098458912049205362645891556619491131026697565790259654736963453669374456590581327715439653682474783482988320202749487614898830580542442451863061197338529852806745158004011678040695881864093116344802269882203549014642027796908975763637669630355036740847031690548262500045623575469526732762352194859190658799756889025712558390352412483152521595463936897173216062290863941740545229598064110300298351821846638197525642744800009144161018775308614406818285513367440535704706809116081157431927604972816140737637424515785212691849420689110150014165207788825619464366442225205315823775241847368429225308305116510094488332878352374173740498401920975932502047805306267053121429348267494260741428635852487385004137872805870873733862372125883054201773029956577259297128035073069595392973846028662838484971512128467524946826035651999268804225688512176838292198272529663738524366008897040852139943295615067087215822306443935092489018455179963911424317558365161112427252012917951807952158219596605483213634619599760681173549409697268471562622411086365840981512871326278028044660089416885861005336155010132751512375472590491659713803556379839022482985359937916699377974707050281316234246782100593405888222014739814418781082597152088224943126681700243849457729448112641944455921058788034431155593848334364540761571684986705048174217354890650812473065729804912545238160253921753355120053631360623642110487963992033833348585761021562138872642237789757674247912716285491946784154784896934768975314024320606854944250640434348033157839214138299171743048924044352236055442312670616407740175342697565155404108538834014682712346617128639838149328868559293657178126092845123891602725642548852054083937848382247047257917567037154788264146803640048422965614115227998950572341112293246259156003415764766086165662202488874545418971819119265336879332677518161392252171208586994105116739352029173177830758351954426818879560183008317488233646726305725358593789803767750607987649609371802346553579264355181469439855358268934975740282469187658240463219012452772714937639415020110503814006952919613517960692633154933990194129977639479205841578191008363604631797033470477563833944768821765957992535412432045403701239287853645523166980676999638491430863401378121742452830431261677094448702404966864839090831098825826966246900687167393958635799869293647805224502896064662509443170436005345413091912387424425158756293956035809815121990812617782426505490210049394408428988887145748652617442399977043603769965255719256547039154691874595180738985277107117176816074763401581960724804109411516478664879038953308048870440229483738836185796182251581471534772324775060392142641175521077427424058484684537369939958635679465776074863860935287347871027413960477271722826336071498869339468083266457937927844295857761225315161694063504803997477002621356083026348484291221423718308955357685162642894741505568247826479152668437705634664368134792758442607403848216830394488874274205698298652002608265197487026870995494381401470400267606805137451103124128154963580999900767449669602114721304072778382917950441415129370087625012418893976671140587306849246697758101748443846232574204419347040397820394266776028034222969122632703688937551590041674397461923192226846038131436369070028085630828628432175532998657754141062953544037845194536290758828298638175189694658193074227820921285749696752437523212168417426053984866739605019872819599642158887802863788943966656118204286141120580110918514530397710814056738040510004258992895873479429304861744680089435888695088977849017781501115844944704245631449025042349580979086215542452827657776417872846143193158399506393071984239011420687677339917148161121006190932476229697957255128782644850013372140081843578711292368964512299151118345442224433960080878374295817707442170969941422024590690611094927790213872624875867942025811249164172760200062926998890710536305630992505019159238429901509282118444827604427695290237948261780343417514838835902210125171434302653402726514841230712537976458915329531918782796275286431320739079530422650063434458957571899374419403699619884950865455366089391632786223062520825496414700344622210725315788292582656291357533391319601031082951336043950129333743151165994286602455285049576864605206335676357399879588555373803787689572467562355684578404410495095558313457465662383836770745987309131921463000826317260057102406343566546115714344343285245966235010530419499358761958789884835017109319428518336621543488056794872023185618412929652274630239474702963882789966307712018551873406727438567798494859469978228649951221040985789309675978539137661742402533877789380287362088638552920807031666680205302706779910767630569086363963665467309382364004691117306948774146721892213407029559606252343555701915172890023395573544518259940205737918968098190219587106226377029893505168786638655524288662909453252919419964667454550648184942232689164838763692688400783230044862693055346002438263402665688337607126239408349876834352038290828511956644457092376918592074318981440323659790633813271605823270640127615794011328192814677210243016061292075191338556938644020381259335357710327871993867290384993414652220557110793104329940246168339747190355870831877876829977640879835517868264784617492464116314004216650229439283505612207237667613123390995054597121002786762120436575347024823335706598786774768454941560803710703676558471008692298006003911117188649765039025999811537478552094575090648965199367645754113282795194082338957768153300949146628448503828668883184136372127891657877472713214901394772037281237175270612063179735353381568156292110409849273342709938531884846904671234740747008486890796859763842797626686516119655954491100052721479729017733946449694045995563743447687813974669391455722570765759634948728650946383077815155581790134637245448538808953948656893565044513164621885535545861528906934278895066302533777447662112279736919459119651532295982543182117997831219738687699620759470117377050490435454964148120633806462984570047020277057326626619170111937256409393714018395492371941136000942056257254097407710875891919422261777125231439132383062128531364870944742771385241372927967353815896739371804493592433448637694721984049393942811382025405259710114384086906869372077362671005695251216838926558909203199606304584946307699180637139027977721117879986741775055331547768386372222796515918005369322460908088934321415662275741207844534280139983026176676573318119769531537043126309088207520637118469523759355550793483860448435416791503808076281798597999936535586145819039509344546029477466938116584402140623386879648973692581091875910016935331256397191371851695128064358263953000484868674192017541461545937475512150089259013984397655047705154981095830081660647597010220235251308021003276283200784113713607361526227275397472159131808071330808732819409476260911143856635427263226748087358793674022162003300664488721691489941116155749166006342580208036165048763442366885539809338889215303257352109912045462309855881715799291232818726889674328040368219503596744804237758938925862564429060434256167773347646377087166579453776252177415405069711211632832085915274658056446986321414406889052446391642592052722332396997300208681132867877906109939719370972088800421358973455629239201575447415763018121234787107066646248128197830556528295794886216793254805440021202270473208717657664218011728149629035293544420627344907358212178123855168163639916370314586826447775403581830370122032893557797261805117602464636072659283430917466058056401174293307123039529044630691510170866019020186282447139290262984757697845223064798457972782998091973270090079326547818795290459527872771118975663739751405343621064267659911839624514055092555952462586273576579717030491718821006208816791737527608078854973635636641880713434571030911416851172444371408679865880940016373699067606324444403479688892194528973874206839616482421820602000344410031256940729854815058867070732965942615423891188821703879567622526110011256912464410948107546135533861734271999532638906095583441497726724006684975489929869205912161571185128088775976203202561977246106509497877638710857795668676002426769370658560350558092609989574875433594128460244083943831679347965220236737646124212456937029998438971331357401326539093794375848410498223998775309042485843058622297081372288937101445881267146820840030641062000449303079215033449850531351516433996190892319215724186513587536543096773529514078033981442599060689559740836998402380383693086594282262029786007434445283829943378636435891916888119179595863260204685442999636540691123651460596429736669790986008305056899381124126295559117828258669625430160690136250345420357669453534395274389726089925174615051766547592792364319508514793990998055853923939345269822066487931107154327995354971213216178176562908284141739311535510823122312081421719859395625290116962765777495225038446366825294302177466755975780677484883421351294180252481366052823153428547337457924086634994633102793686340136999581722069598483783411250701648926466388986564005142869015802590190322316173740187691848492880186774756405490798982072039712035131854250046937617145055106592490290132661409386435738048840827210026083310688905644931199319678762167152775685433609653941111870382680620886538109346747186844877955293928128330017529423520899324598347681172931594306135473293710509499807709479927456837108540842401100450711907784751925131205851251356074148795387306016859226615080691516766203502409004049832952182935690197624935244927086889366366189392551304271065887207102177745169506815182159937940340734493269695283839998013633601158850884454341369368349970619422508386516860142259842395499585823559273383172282309368862857569321045468253737363120025994047539259872188604290780648956746775701551946392579302370438122797263244570009051710386353345208854673797849311286875820436875849338439784017010091113874779863102147820348035115400650196979378429284236952231072680340356140069617902193264346893731345168948136222879305247972871978878423134201684324110306693266097307628137391630406113836516920962997302942846837351390411950638190489169621228884022495355825587703934677135455019281368912056204925474038497062694537201097222582629107136422777782553355108628953763564625607829552813666734590060048624432760757149765470883782582310764302902515736367178053691661523884809925356869338561191512051143641590192044748260105394579698152138300326497071160736896963490907100207982943598569537172099174418066595899680509026236865579764323956925583441666099870751542470980019302953840448296481463946988386046131449838333782525588499378686504592578808722798280481198896882095285389382207151026491794869871446798260910206292250265382865226581406856582683462903311044960289781123041522116809652731328091665761595750032116437020375561170520504034479541679164849177611107006008510193696308261110509015103502781373965064611897246177815035639894799220268405251091494053617106572917035970535221741032490878877731984052952756879181929861302503910841169818986915811680297322639871799006615144483686631763680192502861585917129454136108082163563430768026119123869179143825441216106047961486958299301061830534572114443991301347974318814236534828710922202964729591758896563493544770724266670946082546181198924294713854182927641926289801411260630065908529789071744068512525831818188792100279053525244424680691893327153689478999113460616079045398522532546591563303151417364820359719189505602130241927334896478314208554593121877295614748064853147904202446944709371219631397433783691602576991834678433158000575204255445391508253726728032268465584877696090317537552629422680722231566883919001038275344646361697483038255923617128083863415096988164674938332253072650501138594780794550433189665369361224544655263338840288812856621480932747927809547435384670425281871963566648716534797557102044142693945544974535349576830154299876001471933635513083199606422154930072848186159126933794272615778437714783326600031883110693209132693371250978259261872743143202993959806989161744795863573486399797830364969293372760527278153106022718786195116939663651415596852412789782001940734525036937521009298619169495482064473447359441388738821255080717022459549156176907262466934400895951420991749227654506980121816730159011925826347294169065476856767550440210865643626925370155329983881217232454417697211205000423933323240448722541419953098803489810835078492701500438164706887230856066043444109595583532182764329596390777558015684918295570757164020233942761541614103604285540753208392729297460401234838183458370364029100662866254880791410646840272021414592660670375977185300457474312599703200881341616714073579508038880991692930003473892512551443830167224391315275389710146326205409057657039350758383267537343062122745302763742865954274261466306905630056790939666787862134169388355600906980717221094553972047500642195636899579371224535679958169039006638682959990840071347013831981372927105966222622634727527128232136485530458800067022271141033646888166216091823496779817078986891038578202767482207175477449129373535708409498169276206236645178417132570393571907026439351884493574813575342456864858725473043832464956145819429628702652468016358951940148833111197416983928468786771722878922432584997107446932960277865371976289641865046565485607701660900814962116690796998936582310885957547693640482261584110759648979245145622239911403537899191751206431913576496964411348876455104663205634861091737625084139763055827479636945739211639304040850053539891918880596508900602570607397057938050371527534936474742746951161907196774483651372487885718933955805563829640546626091898114079150853139877665601071540387556778479455061369670695076105143903661620528446118019602347795830441686367279919650574806401297608512146402124974881823799796041957901681576982958513719505966542645912355769370427064718324054873890868674147859321116841441304828980817339387456501957360460051787681638070331045262132314211600762564851701341197267822213238548984082937181413547735350706274276668626557378908634694200906240571917978997352360179361416363693030644938882309524586206275957343999655601393432422944646491320524097288233722824143045545021975034650759268412535124552811505510723640331545327140543540440821366741593473667202222123877495193360013396260864538701631195113373440513118159929274114931108710057006687088422626093613793674476793701201327229317189279402492178674525607828386727882119302642200233125504245345388432233266193128143645610395151156062472823735261465667552504692653334439871993542068164043625559968899387293748948249516549656378610580283110436065191688514669149344744450319215748044439657550239647945511370586949372705265753599565486357136697983953146809368582075494019747851166210663013468622116566883706373450431050365781897355543033129411731176065654877215214524155366665478228936066031601461253417322842671375175766611329236812193477636454678035620153182843668455652959221962754609919097387636351629963023953534098442534440421343130042814806510827114837578321392224002409777954460399207819170210299807009406746535608696375639043568127774017414534586918201105489592031596713270719196665323984092402824689490381355099310854003420159742695070055772715645012556370562528665253573383094986249420917206451763967391400368059420182081868271117285664387183177062156846608233205185820214533129642474361092787198969592272527057928935008704234814012858767052810633521494402708517737146522174652617582277564451873987310222478750626155389595723066199750939022174937263720337540753472796982780148493226848244734558454547128741183709361593938894248811905798758051187028785177026956391142612012172065217834057939600049092165611188330722329660129921021201523430928923843990157485211110947484824565086656132873267212675156203751120443604598535095301412599995119160552795792456304828488681401352884322378867882394844569771474981502444936330878635574554151253665956004614363465325633607926414566737705807920229890817828370886812021113104580248123590507573632202014028572842762369580240736511963887140114263453667014400008487674618045816072672153179737222956246422928436940287711445269052954180654002610239430129691372832568631623947707860731366485362371334467709850006793917778712430111380622422563838734563334479029964493043403184764519789168674399958261718652170007092453947795754022682983442804691684500702704170970315361100814471640415493434933985858914402054315074273142032058313671243695251841823941858383006654030660410048550741791228115540547941541022255039434300042471586421409287631706666217513079325826825667089090484114161424460704882364232892661867696520437405669509884585266785076751851264159233774472001615487231459915950856541666918585269997911888063044925436794351723761641334736810232819484982091193620823137677558965807913403818782295747893634766868216897015150716347751067827931920105958370025449556320919562535016446300968288165432354704338591591494880699143637702353078297377825992956731222394297527867712383125399015228267278966193404695859824876286081661315854050174563556536860840382847915016770120295359025999259566862892616023733217518950066836577430825278606534756101793526646471037641068721988840798524609148618190224319960358508342140987424233328940917078771970769022081174897851822969405229531774105571600739676907384704874290455155679786412186166420754145494329505417505944660107220633205038677596067907885433353332966640562106980762609117580409466670387802242254184108320303740850933589367769693047759108939018276191503758398312867868465493805150473149013429910244016543851498558277619280938924233457354783721504892154167215137024400138517401929462632776090247045915599522259277187441271650225594169996421190933507969512559391826442879220019428476650249669721456699792638511593753671709097956866994626156778935954864807141889543512430031414083984230655917626997831075247417207694669108329206983111952426296434417453237141645535266116157453833177314834304958688199591908701255490273781233272000373168247314935497251383949528491103557651412313248420906589774357515611672660092634828408989818700482084901563696062183334108823870819751965223171234978568845690996323153540045987204945812975386439585809380050231352799685761422030977543046734873980608900182404911158981821628273050349870105961954884790704075570168804355601831845888410688690693155280993303444456337035465635275452255356669244488717783221988472632678507558500298016583254704167560481682442911741530522776688487581951838786285025364201493759091237484529401435480776143542055046107597455125449358756469145749694416832966900828857983757454596365313529458886067704272466369461858373616048580162199391127229396431526638241450728354651188171411993944102403420953860363578074423124140840488993581619853877801390230861333394468915717851592150472666223207678563247240845853470525083238871656814738381883396617600889981676644091317175602556494680758965486343275788824896728411108333150906824119980320006927998550417776986901728859746581549158782040639105606547410978649409817801159115900461822977141847514950127372174232787458592506360390785796517790996098539299219993494835929515978294771554381701946794201333546523618610051125494941191000559375703226963473662152699572363499317496391833669448977482379845782211563112415390729533909197799732655295022833250625090218991992547215291209394353887236939246803890495570416743264747354567815677839472025073575563338006911898877626132478970210556998992137394193210546303031726610488460283940456096188606759771334925274206031403531571861401014566035662875432154908301022118421813708661568764489460595273241115842333970454939726013374596579796148306092767278909660739715435779309093677052961155646157177539629196575536684655467190003569400836216232726435079188460771792695773393814817393521684408338305519159042458486036616131459807348350372427695631210318563223194439918146663960724265255300929463677687355676357697658424772373392984237919678278829847371240473197266379700046823175732422818773179275851177600873872899400502065160972025874282432846925818294408065730939345237025384737390947042127549014500087281906368625095879544163743869212161692358284985934694788308066602781476654529066491961867483875352076493813967833282450302546285406166525971652303249825496003200671221089534286304292709297740230561213902231813319706588694765017829885379741173219244668572268731303677725280414372502692897313995121058376921209999634463334380113101305434067120168038530001223123996352409511233159413021454656982724159766026169992742712071226954663055314501088564719039230943881215672543898776301378724232508755514014766049486886731498045644835367276328504930644574849739610719079524518990541307388849584446066233709495341771645529160924223141755232529450462482145308155641060084959988398232833810478853956899057475833055858307500563132016072373736077482872877981164156191404945671993397640201744813974746605463186760033577865540398851367535581894371899268258178187348018424756873805422887405559879880481651020124189336314414897262019132203277466326818318840567556390398197752176112030497304274722559379449849657076435373313533342389674450367686712729874067833416177636464229266079191042744819827648814489853892798575885873012836907258884326545577893636262790749410182411976621146881119984367454340110449079212060171744872831391871167727388476348282799076498590507784108293048219067361704716781313460365059196591191606104760747098514279999162788826856794770584171287862731844230604454320079407873166282885369724687438484520894750942744395531763783444801854990982507024682101061420193934956405096903686231672501167853222891545707229454769868001683498083078548585562819831636431581263430060278664761575393427060636869515688555401900780082866148162407372361357059946449976008632229459884188808129777540585334415906327669742535836629476307473934465042662821401779267954853859043451547313095609670134599904270496338689379123558705908537363186657785347647271968254700216141562523728981734098262213850749169359711691559714614487474366532842101229711455414837215956986040448884431182557661857140858429159480437351039973041371295106765728842270790349184839713665105650892385664740943668965062470914834000385515150801080623729488057575849269075683551012983896460662002851910852781496025633154614278807155827014399002526813328569645631606636869163854362748095086669646893553295243359950793101790942403034048262366986076781821048159166068805781199999162165680272745426261182513061236772024478281606144819728134571328103638725629870009063902037547793716701325312115654174083509466896690019537249977896105252758547713458958785435818817248744129681977940925357686237196211035555002213215481188506245255626522781424392586824850725939541857832236012415365050306099046073813601496008653524875055509989968089406588865052068556209926709815199374136772399659210693086987114343193494558738180814198808834218193835853170046172983981230717731750473302463231596853857794565139931942731750699921147235969944408893075995440623060503905977082125809847156408408466045603713408576662449297301004188720231082100214080865896728099751230394461839161938277097596082288156463612336042183747490773028845265679085212249149717141038712038812352459841855105539158037734363239262574337947751673823600442599106518494142560083095788692360616125737634480952122417597708129664708892536511793680269211772402423534336108016832132408662679699204166945928175005793117427719133748934766991085663722043424264669835154983122322892645228008270527089238552400371305715134139645942500476614920963325249531390269069430562408971471887336027303152490362821824270414735190851556637545699968479194859366577465409873769130099488473464341883826555231255032291726070678987478338454629013504587564492502193676668186925169337760714343931815147468811460119952864650814651863808646870921802542495592119437809182752244728913401596833415862426737439035258766974422350872524464518472763938731241929855890420796662758902869398415734951429515553544029509846878719868985403565209280165963730934153367160904002084073194338602011513243766313082727509847696494304862853620553578364849067717112422198694684862745032054309171522845678291021063569793423910321869142576502952291484820329922671870286303928837944274927741156708274208312710727588706541151017153197375584657690649026481148946261750128323635365919678374858956311113546211669501658202797921481117214895044651959385481876502223047511910826227018460902783960144356597785693173408977758776393031453206934217238186969081725549745827279305741788386825351827065681878149383701893312176565625080246283074685440437244632082698217266800235447663117658062799630847951722274722153307877189920820994947352143476028257076840188346091421698206484582228224128355832950862533482521738195337286982994156305172623408721232455957133027063306161103373293183830309285848305450530234699222756542690947609188181121910072887246590248463711349199286920393711790355977681287364890685856029401890417661708609793973450564440679684047932701761447258252429145429235630415425025931447369997748911285919786580952693985566376348458541310861737840048299851150154986854289387400010616732394902861145463762572988229596289671898508971174059743632688975550983998251920264997637515328660085362720337387198022644711761526303032065202099987859978646024086228321750959972238077299990096980706310462874194797575386176417727131815634153273294952179274141450573323090953276824761498196476082991747288116635299313855792285349764891046421297123551681381677207079938230916627004517783739359551340626289556361838241299109387954703264164411467978156863837545809893854140498307090895955235941914172368391345279615893274655555477618603240332507954156155262382736568848440641633359702517217359207278682998070763044097301880172107352792133258152947321007009666583039555627299834348548679592367473766814233553781027490801534670565993785806786229344188734288254617677273180107701972420028353104820596175894071818544766609819206531319131097284073225449641775487264124511660166394721237497561734811087072787834890948338919441937832836391363021616427008057174855501258118010948427688594761767294772580293527570256115275316679219267528322863171143234383268713683452187583098522965571696509854465570199504468028816163972568352211473333189026068667277348760896176312666354513687573998323010857694938697522776691995872659652079815320233892353059550226171341903416823134626751983535357532165363359346395523646811261375738613401480522098519064256110266559188330338681343661062310854050396324117420585292051102356248268105032052892254769546734643373183800123094095095212302751813630113605366208290375555807982322680865181687854370158349030199821837964778981809581549060966125835711258424253796433695087535689056776564231724938621089570923623660986630097798207962917880236508963404513734556125633334422405967867159809187658559676682281868530381513220945751206129850378910387271271864114532352973946500468508395394468065381406554016958023398212166760727386296030560498452005435355351411655700760095446305437296725432860284995532544299045532740178239924365057207253914272931441147879419497986371860207293873701056972951457708084704262139320296925025927973792470477836581185762118712841557564195497924133241541727021921190187558994921317465446201871506666067734082917634449047330265431083095721453672790759795632368173975840787501072196224580392884010358374942447431422649120056677307181246183510235313849288037243826426451617614333904384833828806356229866721194851717942415164310015914249552343622525821344400055866789090437637929638211607880820118668851411207170547814657774884810433892535711906111621577426583758526963895263679958175290267617716152332225694542357920782040150743343721389386321015287370933891481247655073438052496953593503656860105870730054082261074808806804751453127219484188938760930849052709096351850864302828790771851110998404561746730658337508002847938869744503906450188189747670923184289048391183247331081055373530048545323153231367314642501968457875529825252712943309915384925833267003190412061589226773615339004099088238017787148454721939050899960486315692552601108555301962985457765359436643902191538732100004990243948947250420203350001061501411124848928436523813526411042921875954744969041261962658455655772218673204123439826156908710161663218610858746789400118160668134116115159503471425293636618811430560598016187448639638232365348769969672775294542780610448361138857946919332074114198743423428743687703464843939152773623568378135562319155557449386030086268955370913605145060648938538748304500455569473103087670387943700289908943207695735476916876445962076230212241917393269187718440156990085442112098319079935896060295944661123966886771824963922931818935112255789556212767427219211703667924688584789642020822318748888546382547349300096265625502036357314913198806453469291103966458116013707551024967601820639827962063325727528963144000041587886951948786502167239414514874563505204544842829813627584888631433061512401833014264590856863944018514883283149245201860125583924153252548218349489395531995201379435531040820152361468815300828315174083818513362789732292319896529901208421778686365442211619953944439092673992423591895058964482460862735323477941458039852299640958609852458919259478953976271701158625369451663106891485813914854094153672149833543648288839577850387953079722744427042752261950352656949560108584847137726460031974066509079465344687902898730857864405958811888720676700494946682089934591473609011877709442564323402051501803501753335133658310741631317963522733792311963768533859112180768312717688353647482086486778867586804346992665463377710516190248114440635588255172936529062462182615323522112502739655616526765038200498441866321453412925461818589764775961663134518604607255504241426322025776490482134141738382983473234684941780852303688423922367010801778587506338346989407403779170191537911515457378824606272281922887088885280160876227995363178759966389975937340638983750508480376032064983141800489190293325300331436614346282224792683984034145565419058453223817807769598955054794169903830294472903385228726608809781522976947904770219693146778421433556040792001474897291755529550953548870333859326231461871053998057491088737457267610896174979846392143083960422156596356339824820118062696240337464782165431037313510230271782112953030608216206796082449781880728920897328354230698814764423391682472598104915612703487605999199490318470530660987279164371881044057695931246282117273141062438787152228289528951172751332354053033529654724205506559099931698137978030652540288155050846637759221060758517646368382848873460371890477585624952353148794871177485780930869179041594895915778470348262215379681168271500560386171354422899615325883556028273228362746709027325154207254447831342847943083802632000757774791639009203103865157665961511410995033007816776088133030594748665879479229561175450767471027085663192376996552927902777053282251548894990410133542446799126917537559703597301476357493516085911138594059698421840812631991641293179940276493593435811432447737119716709035439249098737344280716686582364612340072355590640750009503982812336886129001862657005910876050748032155510371918151127836706245642733822284989670577717699462629439248366141360768233839649253934806185424578192207587457761413710798742260870430197598903229591908246336743642481069004402660695788022748877745738632276948517205860134310205805885878025152349922047414725006236440785042165940540422868062008200560420322972183070747286649680221507429411969088912099350492206280241893173887542286332476405883471385688865485427607207950412602555928416609770742353499379267683059033501811138413093980110757397550360299840010782520451519425515468021819112499678294283386116601638649514364677640194395832166494586871706226062771763194018359877285958540039269930178478559576783210993409795314963241907135664397043105803912149274930581665179595280488521226738085858495645089815855457286853892459976938468364790421156978898257512394924152001041029262482985889248294615349627890189046809751828628404198151178333690080175724426827568252527066394900585258808397664646939575541300260209189116668281958288794011279348086652867310026633662539313460330994522249240386711722074676047583697214138600201806213910864110362143832485858420369522321687508194210717130699690968895921624846911698240865650449628821922669192892997301361322336915048428640667029046665428968446696295196553055618426889709647064441615020101389637521802934110841658633921763838494996396262716095980524603120670491149675323695580077236023680202505773699322399523459325798998415170759759536047858918652239441029253825461003306940639594432023508885574666300505489819266889264498022757032320730748716601095404398258184438252302779555139369677405557888081230045583552733943850136091047745235040936329406659665143034084568284416055751019899997810428552830028833499398981759492568437173954864559989879787704768058300716280129186205089651495240586666221916532296927476029293208223052136872739548747172013229316764655245311509977679738168642893484376852011978514202028971411129377105541930351193282818533005181319558606543156265487825242595067053312838442692507705829434966265492101063622601924696275726511028304565647143960948198928269570244357871652990662976916324342657297889398520328507785121619837541004244228881699787272954202109003856386880381803116806198009840712581421714941448492091263650323450112837516686373581903243838065885770815220826820350970117937249375197300961572285884623921448940329003931394669143265261720943473053845654497447015934368267739928791478762488703337651250766562652624795314494022160364483046242375169381206973597067629014755785083442001755991271681529994507810583722643461436003529383314522517046115626882093146847711264111648904917417602914178903659272728432094259330141265080174886311353547517733433158290904558243852516922648999322473013146536358708141179184080643069941932120236828254228533960923528308839619733523432245216695551082029511989369413651016581094556950592816359726863977280594719045339300165889224750534561129398454889101430598091124505788087289308395791911268140012715601048028146892167041377719221646742120757542990288330066206825787223320031402317542226970896075431638076641198435634446056411445425699612651276304500809133962027322651540841329140720567211780407883961673250477552046296543588997626490992874185207241660493403765608086653720937025350854400963697901149566074508826976617331369052748647254095193786469687343393094378686624473706423558409588001318665055125532339748328837537607956330991422703592660199749137087209141078817926459993527357446988700589979717109377470834538053237370168820663961906445297035854500651516501709371198738389675808948129634924818677609965599667804199404960370528613700304984298411889808428533118499985175640310533991055633573335468920051688389166813615112206750823012806358870861580647027400206288528807185481703532412300423839768360856516246898077423219754143111357454320282135076716205243879458728404291629802826072187665845461291399774530934281709662461161401701674721898650909921820125076879537928805509406310702091656913002243012212012400389452591026856877080991945247863860223287014869886422678181595485955592919666728926880939345897840188151729095064861879866124872099316332640712689224690724666951252091977427694712691424239796147873402411704366565763287055370458340308465514875804033800053670723863005990145081067616764670785475447092156917676192959630383033883666189960354110778922197714782261770878422275645859859293539143891754022748909373355474675342142576637577875003114156000687685241992149523401592450447700947493647661382350889462838871709416274040348931968061218936926501486771976913644431077047105766451011889083198287143790911303798721340810137829042612097839655149652822863611604372203040788450405630454525811830441831615442258941361758990476553135069587311978570995517244920212929192978556373158239745059371389140734145472475907749235066024484791281760176006261554118273959915311932131935579323537222169453069726082332458407505642104839216098652600023941393979360918477095420354177171012358633501141519120617634105246018416652952879455240429911862213382572235227465238638294710053606671455836536553730623521826554402266566988883418257711293003942594794921339502580930617637055258118567307960239797761092131303217577765188647448053130483794988074504408535948498062905455801058328742637018069991639622647942314446055443388895495491441845190930000622775842067852415651091644807608153481966660749427007779239197581869223377839793776883133420762436253258490765303236687126713833310319147728022530501500047588615718718030825891780717231357372326587668144752289669790981793211714712324629805530329378797228288626406770276334710618863999448629034015543119242112603402782852434580360970625113418451034536464912154674981618465160260407650758360150669056964419817899375374022227425731756762828465553072068783057109485853344469973689113909336186822451278358764900038303867624872350281120790464676995940374093606314412374342605917704220118403585043928152304914874000588905226200202019161132214172618683700940753384043583231191993616148163564482193397122709013343224991300104816536942771924943894572600042731877274110035902627116534607461101336647701130075941614166158524981952631379891588625962905649071700029593556742440914981410018146183720999459021414552392664686470656277863849986201817024670443000295924871452067138809497612945270097900912631226313784455783270987061320728370957005105092959532952970005190618968076717751905598064706380582229169010081504444845482636720795391947400734488145936760214139480458757780002281995316981760557072277011641788283257469346658700029340724516950336302235391715373794073766236541325880144895739358490543528782071761862436055927620804015976952345654886047215156864801272423895048871402306571706966189915189847193795384497057369648435116088015152081261745569310427028950713207569009822177319867777757195444941754319988033567181122211582573916314884513312370110963601219219623919648817032497290250109286437773789542156357656216422352154671196764556185041997453168773139322275469018647515062892994679029743499412841471005604260613820271839713125031498485247947702056172020002496491143025964144344696174085685190134153617573455644102253661777262569838322671609495907772016103831078755133458106493275854907594801978452228120412425426175584701550622988622739427334683825402010863056218460372681708536989590392435806672461367049257570118583091193326154375490604204703394455721853972821277456078312917855492336940157004452311182919316498217667827954731216773058681528070902496494436675117945243407962123984662086979838436399405326413100770476858878087721148410480850649340588480753723621237854483429015724733590720678450098939889088645844919830294827526570444216384776013026730875716926225410747436839718963694733056037332319639486685706966121459200675229076347581949012753559224749963912424484972166983497098401168919814910372554886859901018303491240966614289126025945437609859865316486090411099904522106871566909800487447884705551821273256468760868004224084706327582227823658911660670737969725794248337419753666904921326578392347994692409536667896497975691667218834053403753820329030345017180712255203345165694911076295423380467287711043915236010987229575909401823564361843886537383984560136784016636306313661298168691971316372299704528371264221906616994886387095690244177195787816268446378972259881090516749455048987101136564335730546197487310706681755608321157372610108390905652239128922696152814229932505130157877642429751643574271934764280253046846717028105197842361110760816924886091555125123021323397048765531947466807299337642806483972473724785781332439654447874251716581096554476927293062015709915722518562757281975028540991805238460628883838331434074325459324135234410705240929397696199010934454510831231569644478470716902188770776618818517158596405766610008145566141150023129593877561277850127426776473638319725460506870800574756051096149252295608349160756183507252673195494062088023858086216152386178286133170678582227281225420375022196474324855188938542830579454355608645906562989337058902272466872902021606279263922720725604689400981521068443337589784327325841265740853751544977271692026672248311889302732881726368789662031339791379875182388390858940676693208236915498244922536155022328000846768208313669519695709922412770506074271101021772850064634304339468259511226757678942088321248564134546849807531777126810673876119328115748708024732159515014819531178922585572305011284138773109766008109921206927991472311133532002922123736195045283433926419195794427888779535801214521380418981645489286178868944658423771698229533696801721632831490237778450903476172659034881767925857337401963206533478658545247584037596941852404252995990512838342588233319779494831041239139993297843380442128410486590483060476884732399216931168348983819204424194537315779707162602488317508699749223757347632247562349890414391493557530454400682841897451707962563634242961248862134608574696112442065669143345789394936351883246154612894506816918541090637248960212132800786425142431718288978301171924497318401106738744102777234128843319300554837702654427112762095955227055364005782449003094207869319843723186435585923243192575282265023138546661359669554431215709326041013140233994178230013642299559537795471250211459807979534142084887103799107510513932497154540143953309596197326001878942198397211101435308145173558446890775683582880423298403299403708133392780798463850265597009991556779033974994834914223242199717614629656978532308217165384843734667549731848132510634185168068665161829358849878718843247300521635868907970179814562465824439418706324013159874066764325324798258942478495458948094846521890894414353047192489312170256458738585889040888662152366523293818036488578231176732909368273012952255749467878258855701670691645146783338933784493698005263551709947862329458588378110432834303823636822487418586661410056569803232363979095019198795007845421867522760091729860917903458166902057381952792996758881744466997804969759039675475218457620294871827308488880990184672244481620611215686992573697265223136850825299915592998589323491893844074315460446280028951118871021920879043369029236844539818412423215098273689098820206332083902398416528425802236249687543043562472359023080280804231688386331228424997835804486585144367832016182207327550707264897623978675537675791182210445843103815780883392118484067022522720338929622124657931260447280339006457987257004764232998882324570270200264378120659766197113529793950608734767476737890877736810539135404677056460837689653532656615530356894960763850909455456321544276236190494956032149684920621341032193390717778043925540915419870878041977342652930382513644161590960980750915717746116269971913569288023104449699282947537517540784343304451993964224684983514442434563091533335992995061010395434393201898071274918768189764666335958128367563308801082378335193165885041125393540237132460184954999894445728848730556066946385011773220344496673531634316799563123328038337187115210688934348413073279407780101867370272353472324254336801507774157642277984163747512557083370771304674947855234645647902840163585191459449181885010047245357117282785553688957347973454219487033193729489259180127464676676209311124951528406693279602984615611176693745425002446332607537287507170860902130153492313037313279135639656038236144242179493664754423876046024097465151939893738874056128300621691374282497246634514672090587028452092521733886675834524026916626735387225608039073964217350932618849811440136020374734009001384352104707516465337926784524778043535556211951288621475640912489632765396922660354857059106099997032685127534564028232165857968859078480598855044279548686263610847062649901750458461375900932149961274187151843762965191186701653398020457911463819374555187196464236600430825424539525592856976195195243483359792397187377441231387196401881338182503871246632407081993550933087571253901241648643252072481932230881558914094326896342586989058187997700110737538921636026757470451964241997899920994069836347389288486476609877560515420515587596795629740301156954610218306423500486136948499087132071253789687982135752702500931638335948623814686195237016933621923914841968452328602009939007055403029911601137033242412704597434094882714086267968958465212827462869337114228281690853000828065835248506005594801982557166282112917300375346414393883037207648798769005671584650401863415046484329472841657783416512658575029902537656609166669017642191965207094886175139058632614983531255275179590223019002096296240944582905000941415632131644487090756974101627549333018839181746887349469909265927426280114896699676017251572849123857041238905000059149693127600985506970729337890069703040394553155040133405389904853029803871934049070460778690187667244399735995570913100812156063410841827754096019368272661344740162662294238189683605238582427182155333422477059111732010285737650778927708561803152502070085013727410900501767128748501428711691837643951811326970942303181756704359341978564680557727147402591804937377601013737385973023275506436638776773497849104870439127242845980623851380199322717416074208690529959119247292622692597118215098628392791671919547444827616280523024175954070177246206741633242432728177792589927323865245727283094803414069400429604585495623350255788421982407540490387722412035133993778151360686433428951994852310831853349235394919342882355068491581368933116193984170098042653337393005292769610252625788838637836122317375279568439547575346399434145443127427834685191920337970121983496243695512001612373293522855327383767846678506858055846653307698965374423088183780820406559660867911949846623368598791917411262099461717422545064510254473842878174486665390448098253960211316071854453115201295113275650577705934783359414916823552581358370561577979594532579231428374772698418935357050418280702882206587022695824240378214432996708893391891497048319801046308971034880756592280531772551441314824521554513798277758209479285644124043348541580820127306931849598236565917561012058099743397639815076151726177614557691876747935762137523423591672388401383697977119297232176963052649446019989321996681293311378205336070272066018453175144277001260433914678711539672770321976177387272122324703974549153569704837265202856579635887897295095583039564557903008187568258190017624000877533057774214011032593031984061976757670402618813814055132517587527905110161894510938075313090645288691016801235078451412982502052253559969701291088031860781421963217378031343222688209770806737351568503687405624674906748898228020081009092900895489523735456524087265018284062414937264546995797166820996254828294945537679080584886329283173444615142106190127645949834805278297452436640705368461251657313728380388698995232841152137306791833694944579944317707804574706553105160626137379186132615840874394585053061703354863150580753630663270809080795852846846089309353818082588796913916863269161632742284785161239914618971550753906031228519196108137247905039765448780792906313312910007370534456713607641415715803091956150312915827335802100467548997944403264714423876235981645579224721814237629077749724897010232024926401719605535051377491452956929281340807088453509414369939668323751888746699937990906390593713622876412578518773958075687572395210707670873869668749198470267493179683451609268365969228256978981143925775837503297520472353820112130713361185316689943440966764611369273037747371490915228229728644039707186989031650270871851366603088975893139419498394721559323904554455667215655295718148167853720635570903396849289524251219824914636743072291182574393675511869029309409657586394103615211015137495383626696459610185181670026450785494866920906064707292789820941871675534812481319588358558201205157493168291577094546498116563034388325535382832874252802204676690693942242333838260866958345691261588563703803984179314388259832482081505178018669091760498855723155212962191148638285767212910480177681470132459912161327586755310095867927795559470853844352183771885247568755588074483562579794238974633339401029722851410506494902930558018075163338523160016975513989940977288154156835630558629519211005977364087651664792584591806713847560003622891514510980895303044834183886755207771184103531271981009090049167328163818789165032466653815022836718444278009404782470419524656489352908678593263336088859620721570999122351586547705551303933814932712237175593070911180866305697914201170222425848153752556842704999058021775839037958758568001083741536606085890098470215730894202007952813482146179995011519736494207350352231271969354852291430200358271275721206748035541772145912954601080618334962019466485366446363137065514907878642228032075468128256941076977927276130341608955523752122984559814882670407849048049394856410416152149448852766411434021615032448207581342960514439232844683054812645237318399762669802053305469805555779564577985873740286388881901226472562578380954012533758669154159467127126396497847304765370928558592587816546025494587509840826633470211176349856239232882437970513097484426019612385922429956976011776207233811360591341640360611476186377227657970406416437462917308336151304575932435838837166214990829715503911849095494837494600440656155845952627548875679320164274727952436894224732433366631655386841495793863107802006520324581937339840936387281162172601930730467258646378648535330706871720813105852464502186128462564352302327289635517322289439233852191230910060536596143046467866826713399235643857716290450799459914195213963045785672924756698475631704626763641724473350544300815564446502645533081237938599929327983871335055859801230951832226449579455033301062882825699260421561794501776772544262052968444834170125522085253493955949379744712510123085745778008066020613199036240766275609068509606216469201137384201312316406408232093617492918651166108634257967128799550942248146537476531967853075533007747826561337672286934058559886869648084755064789486857429194143892259588613519887518186876066249064699432703414890540650442868099510721430405548896470742098423868482687617500427390743720593336067591584479441459025387404715074078381455942485941544476760408395743092496917326307899400137534327833491187092972019509915537110312307716111366721443785290566636731021847162654614284749764628496268246167196347820288721223973846705218152550148128814074683378258254397287557646636470824199485017171022462862867322252140082854537725568599923354107510387983020718016025183408178264461491474336670438524113363525738285059735321706374579605521192120089741437256861037530234059952698199250712727949287292997768078890714078600522402803429576880871084346364921700936355835470169750938436663633747146647486777223442662797056509321429637253042971758174886713377700248376971309611493289486653926779646837167143166490372285259902308239800997319545599586645873827361152954160296164544080557320484728927621892775597944294269394373747023793693761648591938947847765631958579454147014398434979363207255213142064851303747120844126228382292392740960860791802544522140634941736495318118759137823765556828580558632200485689769194408944566951337936652204104997951823917274613085348959930921843403591004443985978556829676331163526537110800613105104715622421608669944145138367658933520252345322774997942300410300125575343204702626502260946048871177666755003874117259720712655399378349680771540870862280029093150039744725339873559098977658874142631397423119615994579382593334938563070284038852420650252358117517696637020878810208963618927597767184251173957171377622676267007779096840864164016075510622926612770393074568044829698475349922502866147525571713936888049571561184310257706331636294699088651076261271815061569534912529460425418199461425808847882299812654771176868810272567296387055913852677686685634861445830501695370700828558326047090870040258664181698873777716369315993891017239946486969861842206359961091544583057578053261138776606256819097115319550316922663752416477011694382540559643554865286138273906724182884184300575649611360089382673845605897425865706485588145619077503440496928406245905634415577638216301769685657313226305369284117073578801520071393087429111686648951281257923011236077442852134162459232913670758188589583608691756177240722280024762463034215848632236302526268953155692777387951350925363569485233852406516777481968239145636848457459566092945550387585354291947745819216251933395874883022843017808302681698046767680995463836931492858700437128057712810329353520700286855849874344911806277529008713909910392668482395630510984719268625766697248044487532628592818421770525304195493158620992735158649270071621869134838355222235220699493096637085878256203360232482860331864175898608013857198919287262723447627796316700124742668034901622777415113176382926813801026262598392071123879063045132449514491630586013978196195327472139186018277250934450487293022574919194092174655755221443485533111227560883973593834431642104494485413938687214032723177441197667418079429128703509825668482988216267817919923775811310701163500754417574774982352011043390943265530040686158024485302392459977361921219811894858629693679555546477839634261170033964783654234819865018573446455755456076108641155483864710676286761016548176093452869361701765950940948222855654796446203141784403323036515445641254449762383675391473427968665017933286383436175291732454990224151359861322660041752768922045421698362994540937037040138144795637331333970776359131918666493030781599404977763832834434428337835168833625203399277570742318111473327395769104521916448099789830671043635899488401807334917731963600670731880484865252658633325859317197027348206776494450519417571218659435074723637924311949586957886380141250784677652075743984266553227102230586185144572089730501229624101716382921620204882047601343292402936440331257492816948623727795244385210815622723192312877437438384151600538263865019841083819293493730231473260234097164493085982423579733403048989784456128270574094869374384710088444084951520446626720932571269470823411168357259842554292564420199642738427009747911154280183275928922068422964439118058446375598498807771933736413206036550354341693804655524064592557592440174947331521003193153748937206286152533253716171378861107883537704996926643392000418623549234220317730688473631735685100190166013595306843151946914552953878542616119438412113832242659032490852872296389100345542273304647250277582919425754797795278129298965863960561208494660396445606910640853928783872834740201050890023581543300414798129867724728813175337187720252245249077646668077488982710056225073159942278259459986092119939855872398344484166232958141482689213152491670624395895507048115136571749991992832371928649789178044151902455783354651880782872452532225481827489049193952004955936334230016366885293936477196316216037621535869689606021100873880575962819505183096031246193069045078347359969997789092568220455748792363079342259569846747811350481442260916363224706071776367792077966885197313246606938060969242862372852421119639641688846947444374015352850471004337289826392560570415682543294869078020145968432249486665638496120705485494402678001912375250693279859179554400470638928407335876336991457750808605088296063592223146586879739108334592782538364499915713988025404137956990184545050730845960908449789364200133128702883707113462455706999820755402175058125947198271256825193419435117343204538217386866628407222281274261956866602548083540089804936712410148402282053605560105447628731261786452503755247492851095945151552261514049312368647260983105073609160924405061234717412045022211417261507868739946252052848500593731321272294966855602738473895762730306627198331127413203185628510304724696510404642681344844603745179983408921077282749588411156025537176705112681078669660511046184551577980214221371827068965378569725064161315646402641206043055278909037923342221937093209237475384625489248152748581851171983872471830066344415800999851611771607598482297152544671397707884553034970874420820108715295901337518915748247474598346307420976271389884452736895575106181177140730478172416661692355382168739378493019609087875351476149627757421155395709118883002296197964858596923156844517844392913773859077128802365735369801515792499943442439331973279862061582250929183218218406234689610704983548256180538549671212636924915192394612126210073884567114258835309246447206669838390630729382908503590364844871141604592037630765585153231090530366652409548727644720732082504789942698245892054175783322475113874336624722344454215532966838182126956011550992574656626086891667101256801724715111442761570755850352977579700140961968942283947988140464773834874074451079000548710527538596381832593856292427476271810633155685990914157880976815363714127618622877121377314836256695498725943045100722369211820073437008679365312653827215902641088870399151045344168252522001478210723616556297650534730725295856291306210626778618205475985869483821111112977197698426765661067381694242886751524301570103992002969748074103157974514153284324883679776118283993379297073633733791690414408673392633239354278731873371270938480744707952176672333852039037667208123586774438882782110867005153038620808884648011475930991058156454752248425176545005390842217402457757813805955104434627654678753558034057829845741185772352147931898654007302254851471252688286968686893530138388809688778740647390566685911031774078343801559667690676909051105227425335678791477274633176930512846718497713603386963069514227450432097719856373742279764529813841122569828364877736276189784851575604503440957719309318648159048346776899617678143697982973602709282293591938792242195489907961832943459432471222327792545030445418807988600263065296069042986350778019677192792268279795939204112638451502049639627156244630516268753651378308578110143333756292605068782504686887432516112557912400340074702309324873723909456978308930108449333040621239793806831602354841368039748999385061244573742600066438773206664466192988163166079930999219319206147074201505708468675711215177987596655641873764176746523657621705159851709410920793805975859243086284914403224217449119494197194976904968480505188359987500121877832735474542099740757753960833264372352597544805912747350537475748020985898758866786336364849251120621607173532914807560698435649381825762632342595661976012544830605110053022526095922426536657347802059875436542502709227128054233151163452009516606829078185747449164936536051699078655992823189011199385372554664139843412647423072607223989460232112075944403956945929781945232197974255315856938800001417958636041175909417054124586177077941502890882856449623568984582130282778653656697429437528610715486192936195826594895742325348242223450241473328592345202191931212132131376144726269308982087106870177780009837568346123655321202939278491746346307688066666370481832768363232473866366191207537669224536497565150801648244083234199672430643138331113430827073793133637196756451897332980936466115666215037160732317186414362647599222504680986825903588271522269677010828190143772236087511142170018395586642947651318057265634146300720445654472399009535301731086118364293521338285847226217386601206240659674930651458508072261024596326211058551550256291470124355092336677085192609428356766935459206484055018647019392411587504310254633692886549859334372703162590848526679841436019071303544150415881534172820262092464408299620085592299253128616184425455694460973110612319250013676410823956531597253040886689442883543866907379682712530790643475968018181337889448958914881708667307364207156044875061129949651737859917530607141026472395665262609712358378045811183907327680670057848510599387137813703112456669489281632193632352816766829052705360729843098409151697860584443879330610583155974802380312528758477553963499468799528849348377537936717018418507666976711135463411973681052419736193220295509658465748915478482738213230802900902064139998523749752615391141491645503677870606247589691907588177675703670787231002687106483461588811327208073643990403163509258694112205354722632317143371721372662658141663499382250129841221851694625365146372146805266090074633973844270010414558900951976086499194220621487185382303502747325157880758631189940762773603341487222465095478910803373600374156053270084859848259352406708850706672600906233390639613309274027341510507554148497236866405861960118024862671118180294371171689008786867680319202307483738552954545042155471792726909220863157435352959097220192183771063976062063843400483801521777719493569802829819667698758558166553320717120226976351339020897677687408762896454801551373751326434852437070375534848886099280558316371020134564751096756712471699630433404438263602252980642004840747714406035121205733850672067243959439458757087482875338937832969218431937350631867432658533353693447411745865322823258203873335007024523126876504701540225198387090114871161370279407768527255993301054090121447680728293146639577609621343242028420034010129901563115961671256214909656432651090622552664424406402439461174924621884975883870083397914716670632778168448739016232135836530934073351433054872758876009894212714301364797339732061856225925154296519747736762024962530482215669362366308180033519030744360574426670348435499914822049190588185283216287846940876356396592202887771190504572798616177874150361606950621058678396542000351206525225551839009651549903752649285406449323363644018015245560316506865190744283319947135493087743350280396596139857471092321445554524852760781157318916365430679578046817946432058227675600637338716304769881055673103729545842128340651387547863094943399058800960615412675288439735460984196520799910924014419035088218878226430802182958762297436832800839477960268242140659225897887243832821198535381504568045660028748486360209908935885210010988381620554572134009847094391519677119230104262255752638969317611624040291125461456092510421547491674349876543688519525558567938117918421876563415580412358931822696616670853921507004155165183005911433802750009111951020304399724785333987869377366291142395609542855504221586460881698383882023414683396005638340627986691380702981598885400295700722741238790290505550493681747072739738984995112651120594362566026679079599497440946405064912564631184888509418994413264523724167268992833717281209033348591165930723040824694262830336209243388630302789575970613120362141419459405449532406760562092198575441801174116574340396174447213408155826383134477387517226015436225242722535621980077103475783582451257733775130471417796766696462453993503388114052706332361607158923893711003127378964933698074146025990486547263297704353995677483762704853501599528847313303544617323964082277611687872387600285218024295024977724510687367115996416806384070713870496105384354928039583712042488152961542889298018597892935083340498978015855785740085356775319298407315799989009189252193269908144854030621306769493961546104667431862628623145572552138431412987744404405494457007899010629868161568553029417283821069620301521090070741819893956220148875527451859573868721576945013840457371924845798707108449648047111999636837174408832291535595288473435987808031231363416065489851211166254641468212114227275080399084796545337311890658703219712338862919857947326291211544758975285431982193466731094278043692137580403226765866022990887396458952712032196383611277022842101308369849249759672446487095727268405219472793210060371225273344241228837932988870515610286111855333954427123727574922471142770534493696675722090622717450745678851983045189070102685771964169254471846546729742538480768513790147346544319884740793128379299564995951135494021281709911458988769088773540413086966940787160744195279147728720794740261235536454623192169761313948607105745805602492517136163289049932302183096241401936911445931312470828810879469554125915397002921485722124104062498170492958737050634112300630706971648466980487556648801388882532130180392545549548928331014593450749315005321304187897232740164100208579550828692621654301533575125557781299062506026220964173005770153683751315264631765874764422293461412513656270879869244276750597376089314268769004523539328054185283592384886546756802270545127640073439749090393095123283650500909147467231684070271007686252997873714024188830369863139563863201412239107658491525856533790572553233635268153998498023782815008543179375123680401316767640946986892895099889515292143570011064111635746476344522469402403840470099347015479079056944476789625513391176236937240423986078395353787378684394941034203120298716622122994459343163349445429831104689095537791001757272963019425021336292441621053129200694002486525581661935582876173575465778176437072576608509799355844002367661645466430583352455918899822061774763336452471862640733888002972715955596992715173405410795587052058641916018073579863855972488364030597868051839758647652883177233833780176688444485796187521454001971817187002012506012721815800480342848218230304555341374404504949860226542271980408962582695416911904459811695328817404913080869186262795375312029672322596305531486044324841628046135973690872383409574182031217190385056831395716736839589175874285513678614138536371884729329571220305361936329727507328868182728385783606152229127592376188594402961238849028218423418239959310691054459237485242015986757839387985217588857475695225100362182226927663307705399788088177680514425463220428345424630769523825413987706855533865553574456595853821551077403346489002963683310325018084027135966390063074230377620706217835506882827223932518910019900488738622361862955943438567961464113235109231511216868951521358000705520033555086754948070295402056648458571889600939296452485323302137764362370381975118346439721442915893927492829368814756643870827065466563656530758144230997034349126941741460167329645949571742477746062576904943409745128714725165358086356792342416721135805318829452274705620230918005220900533911763416499808132016884209031885715058572711680259604956430594018842159842800333666148975074276020160367992746705841595417956483972988824218207917696645325432758651097628086487211105106170954455861057877873483624314396139140728940663714134981139430499999106897678534132465193189571732534068060212980267912796983708963955389400846241575000661478621730982837585526941620698685465679263823044262153639083297067834839999459524699057477642668484218943813852271312336043193862321173694625884762222155324887997611813041439380397312458947488773249704528039022268570803504476140662308745703740801273334576645083409457216221086342826411339451011220869149552221008853656543785603337588177379736309559366469542681045333132792221984296792820278827716528473389357926158119097579506102885379927423964435418161991401354990799336818416888162938231636832567768143638565182099682128651912058137496511822128100100768723665175639467008558126184743464745418251314722653123227554739808439909291657756313628959483887888275195735696212909598613144535889460451382403540677637682924210414701135244336829833782281437355199721368146180868419489493087877982915299335520676568337215007177648840890935542585249288250524802716669695318270172290985058262579065363128803334993065627652705138000640602747535626735565346128501015947777080701234019138854600913126263344047499383062643885772275708295295718703349484881572934859116547087559741450221534502857486743898848246483363426802698826589812708211156498687035155769553401298799321592167876211203275537862861412447458126748152637508388252072598063219893402808622829545257962871127919888604115064375761033741001370930324272904757820664965875425803141555252577514276394575769624031348439490974196779719892774658647611743673654479222598912654332543880158994704308107964787419224032452685344749901431132667834734826880123021008589327423068010209432285615426239967519078726648739116430966738705713039115943422087876030227216517612266007519469870316901926423857371928767863848646300574501812225865134985353217281488684299590082643755203515350760369949082828053712922139501742649877936191487285838609757873996706785187469125989574163022175976914212230073712716905841633156563400909533106287436816764344671093464171666658182362301429424120069573283871169984429824866858514225851018190041656831045317976228885346546468906018696252067033716113462700867323525737604268715112693088173595434997293385472881759292258711617646753363673680685442923350980799939629138388959775892395965750326829083173926026828094673999900748027301043291238587897186169080584030918107423210377211051111050464674644801870992307424562029042361522719667929141437300824373148771971188178842377686868150134678777394047141428370372814334139002733982603174082237809561693014427824848247076017410249897483933349121043849747576669219611351490253017803580408353378287624791023395077858039395010416973759284988210509499542344709918555713845179945008230364761151685715289452497785986101665436278005516813133846507101467573558086468728877916867252626889860248981334413150459756291622229566867248960193556936394637559674866375516646408792719965824339891157557174586558083948883396137030630349721257842723833832142955813286913250066392192440428740309604882680982450305881809084068661709680938655329084999759354026526773638893858894867251303547598594857873680248436534616007793673532326943355710847480827727755498465190188946708619741988925593914130318470460906194178667179764561558973997309504377419558663805294127535866719387912311446618012343017979754025356976091527475688862183442350694043642883533693659796463726391054956919175212151057311777613088488107645231053568862585572667092114561664739011539586829536690725497976205979462411476367081751250922837125985059963661614650227428527542817532406876809178719576939400003029911731885153700369527788738341209705705698825646473101165591357205664306186338512062813896759536406731684377803010834234168994489066899669323014831877121392541612631738492265994892533883034858760007693802226113919037689077242564456461634610557512913077177260955685568481196412248962541726272727773846845789496616126186754929423271849366118637096310118450549472692371145525050222696676794661580236915313200851630159472025081407729007690504851417307933824992745356016809710590918190722564434390016259868121144930698332135467187054132253762487747663018320539520125714715441556877311791932197748455883222495716721179639819872658008717765554225460249069095976715118486979671603803459144562139082865829230806288232868344020813058933380961375838234230822804456234931229314181556003879646604414632509783141111073249584936778897385395190925412746737775805036773955880939477949618478468980370679218074001039486839768669826927970286658758710164751073754777117819294116739775844135379841903965190970383160371886118912237541538955602777753323977175406701291553913336879519947061216773452823347976499130404519314796774231519666491779766357014790793153844707658687024832904517955494610529540611491666789203564074144860109133120294063848156136597975179442785321936574960770142941992153412719536511952851269168448752674695039265651806889691831941780772608808026606552142846085800269796287905062584618006344516622330394646807682505083785772669770845621850137251218541446472376276621718163886398519373967929659222329449106871751842760210846017922124831735561323498924016499556532251855163866284890150255375083906769725579330955250271449695202539158660429435587417123977163329589905569679256695498576722574933596964184618537732459690943074114141519296921515931636121338118778857397156906574230055772334340022141197827454878096534457525505152559865819448654895978974495293391058703641954525471658070865427149245759587919286257514369268639296189479605205421317914849679240261480500304640058373887774330577439231851392735244682785708573084209290493030903309668587358639384901830119622111756027424651969688368033979900864321092061552964932995337549101650074725656707463067984811736719334347965978540426969849708238738508228127057069153232138214137606210025658736394324607117984805879065129211716371445319732559475853538956474396374070782251996372729989583768713017258153557431414893305168340046100077125698145491723243620215643163674622083061013700151896052448642845774138174045803577562576180642628024117703315960293619603018251386921312986356578083184035122034085175963696574560917497793986036447079721041214553715806965321747670497548725664685904000798108262908292891771633374448516406375639988348016754231590060348500484198780170068846909453681689392393948836827644895676407268815556249092036919108376610929999869456781327492534533056945484360765488836372976545979460268772839867730203609520033391465434522352771957103018320991736142939184778063911550020741709765320541010829120375722624081218533621821284480693977933130505264571251853071220516612522627031408377885480664833269389298924006640496765510515143249172525479585962738601295588129629231856594741090507454956561802622389853382723264335553214946560886853297799024552361849642835837687581039067503696258389746034763596899754950513827086792092441606996472155344345628102130093590527974208195630960779828531547550350607261285330365861896569039779699865179306452497808029199129668861286575532712005722441228246944805987926665544700913329334893776618733312952661417763408190785649210321075570416748409786551461827915361780022791594311167941719986902365950243864524203300662298024054574209477075838449567595964350729071382543238629283202178982066751842960597060259712855898098922403568648025079054672402728878436137284584692414503580785348141913413676058118242844952850970935045565366441622817313612667902577825886901496330661391282514440418929591034711963562627436379324208945382385417389733114082666555673214382463338840290058000199859672072477357404893979568811614198280808925174179006878801822774556749475538505862981312333722602654827128937894766382726296502931921276301737450572166902015477718530755845602959944637537501866405191482652782349893375794532184171606441158924664450615952416007893298907082512724694033736718404796649243599983167183840410445297769389932828823610396182867825496852868952885624945338846674632775327039301538598063423227147940750508348094031441091202815164906190706266732057085321309645180838535313752025274241949260116427424682145338311980546110469049412242159969494200752570402364031936419799470767490097364670278651289627323951748009677921443772424590765280248330715589437706389244920744343967180311371902064510843263404487621661303368540911898547930044002332685773249812594286207252241583170995762130252954051336454560831729823017338819163000653275423136032925509843297580388291646214747357289675828317453967435359842020406373740408853109108338170967218377157273914373483777353328038304477620440431041872104351080198961982945339983138926655240837162034682494761505379544677048362863049674804802214776461574069261589731459828422252901012058262309088657814773145754305995186748112238597254036263493258071223888009997211838058776393641715965387176789587719845371889563584956933980216017972970294869027026426472304620691066761757421522634315934022196455384579551575198235899173214820873184923494853114424220245266506092631227339557599190512500835560402354976657217850789519020433662972488471352644475841891224519361424342909372343610260203737717273763105129425786231328918795662881123252064418064755738266604159852043951722767870459793029897456017624720560840560852315095833521415302055872536083096991801062081525561546589968411129204342814021773075308895823749190926512782447179478813521234347065714044649095098559642156682466062512851984174351462683188047836539888569856647176198006404239421627182274948532452853617833871351947092301482447119521282096569490561322690656941744392615336898402988105931215912056078474132582565842495898085375418419306668761745363871471154739700140359336792519070124299456011693173081227679297673465428690146972953793477545354100647092657911963140445993668031353215816396512448717218270204433640141582258558848584851794689130365563071675776197407037465877135704948839083720427878446656507978668926839921025229747330533076997606870708279176219403833610071962506895249713686533003458982492553304276477105418008623405072515022387917872333829309643325025584858962379378234656088661595161737907407581927929210834481645715968681855365948295944223859702141995464144226243459181499804839553997928973419485694012843635099504051255036086702240104538782378955088874348908064525034965552311892478728552545694696326826708105314229290386245671121222840640888593283351336399744983527978301382007622034555508536738637546483568311091076094357077058769714103383129889253853073218339209713550075684929884142874761583314352842417506716993666089293212245246052639617966377195423067442476639479592413566552016391083137916091684469680694206720426544945413239553511739080879026127130470411068079818380123186387277224395026687967076317752095324385936761944645301605455073626757072247098221110020072558813765728870292267579489090453370038487021847251275038888085289298414786546021854869826770340677816822037622300098342952285185857748139526878546090091199229848967764653833898264006028907558291744953867532419819692689046288245140644925583057155838841048345218138871367126560434617224576104318093983458584309593018056814193656426582493644722901001637053129689972667768083658817331230344666203004396691949189577386087492041611026929430987902378620755711915489470320224733840165367050384950925542075220983431589245862385403340818130478520406344912178998658867749230424318935524218658238335212157862508210260369070792103314925816380459217045707658083152515681327959616376604155550715565690463555646867374605783714789661360243021019784708992844831874544196882789252204000315810195029119216955127485167638989162662731970397638866520239666587278579713869532393839665436651324830566805629945049431409614886165140280562149026984060085475481600043563902843311884877054373901088555076548603170776614578525224914454608131964062775388737651527484933833704657381460969458178158468516135406236900994245006045435784536635931889117155644991677160140406090384625484884260245480491377056847776225979142982138004167615470102985214589907523953363095368821229044125978927103439058596588017400286785226451602616866570194707784628475610647169541075771006541895013789987625338531333007301693650694218195055811269770434518137033476402250102755732760035864093670073068328904659062111003167670679018190518050657812735627746760500119185429687477655808055477832385173124552833626209804801348597269230383589605694032163837948231617910323112051673700590917424605818771940124056241733659645592232348054083507596263354936546268751402381656926172430565631851375536469621069332783714822382842108415317388056570190902684756960659367338077811868249602043486051911189821542117753613253189200359231919936191744168444116677634433979569500151876008896922870451372243290631989917391518963083634541145865099979084943235190860578204660791698697682649473124592892660269303456672670277126225265419313736792679315874369919017115268551137714353174232308793254590461571267245410620799991235291625437385294769595809357288661688289816071042913108500712036928849135059584797659166791591123821235296513998317037200480063943615675922506068891797604385899382477457597280969816674299803642395763639332608723690396983349272152230789850092390387420225384643874897934777983927892407252960120661653211643618523191402774103878063337337615890240088573597573786497742281913541543662174142378219510467281293650205275369717337307466720878211524924350193623361794284412640054723016123441374006950249848892617007606557846555465274916805143428707342689298829265004665809901705402965352884227386191196585854267822058864978870513966077023576328810076101612619607787754247172517292777489497181549415752959674045656352494012032624431189671520559555438235141452699535374311554713928112015753725760665963006732517317643749177221792739271461218863223437985586531974717913344257182355601324376531695993363511986630455207137250779042383808322700525101651831546702633534751216446068037987279314720389670524559658999437982676279879345577075673172133348705285778204633852490311983142721126030160805585926253623109955837025285578119183232811125572801690265623046987268891627036794932424391557476372920960700757462075454246302409765557070471202457786719132362706795622738086970252722710907043588445219246792260749021977648999334574294598488012374439694514745798773331358588199676899730794397247883978149232648442196109396098559448799740064887138746741508015396682283615452466006541436157142387641520276059380630031740459775562270879519211463745153086167405306490240877695466440130287356534616065293954352622882036508641066119636191981331848978910418635087867587978687176782537542544519744871914497496625194904777016292921213424632163868386943983794923681906881010069903582551885401888713102823237965955021121780372834529633197137331736858358981279051787074539112918636181905139950761722051775402220079176585959083723386283049808682602824708026468069395941084692414076802631561294877214466219918442713599723177104261480255244858629749303893513966733879072967060364553996172807367471578795935542222996493525224588486821943023109047163457478511618590988594307276713969034970269659753889375839254558609982908305368908306760803752340404644315686607406654035283666031641992453811352185311239125734595744746125985301188488268677153163508188395925926959547847780313330610863688575711023703155625283088281260644239120304577743377052453951031403800724161205867881202516703799883447172216519970569288641604994127064114590585929378375621675655048735003237477795745189482339381241770762646413068543000199547131902379512168600710936899586155256332435229189912618452460570404645108795107453423466587147152524174673805906544401549574631692006650559267322716926971986919361902055356664158016436868168783507861979382410706921997124511845818954221379986020697462852999924687178355842222964533267600204953088131447417467456625361258143725267801158979174515731332991546498088109376849114246126903734093086367829675847933870656625935798915009373642885410363295162545682162397108961677859430720428414723364237244523440853770226948099517102878968612139080191263708518456950195906173961530526647007896427877059171441359750993514611344470123169233881474536889055024669108301551385294362281456491717991460136193435101200045280355944625637547603929005884133969061406850679631836037104911198255571148219293077305313556423320696718435856495402280243465567079869869697203011332962625649975353734643055217667069326612714449879064880521942893112038961878839539794519058558336474595883463617637992596686676992263329491731339865064599569759844031081492063254928418263651195944591585788675543761405564917696910362832654043283861519732732599033026143306724392812085221913933670134098680779697360637973838688390516387225724985601283833502677563316229725111126772802190063376875646842813022622988911742811321399880472763304659394875120903830869422743972781194929851903560937740820656072005918359845116251673752118120143454587765658946751155264672290953986807850177933031183588454771891725196379929458783513944294615599609209091796072822339894145688799921350564451782165178633896232624418792954946270281698548228364454543720274206419664450210591237820197185568970256980487990263312513220812374206457574766995891816118213534003965832041401492447138704524229143899059779650819203067162201504161635757905066346582377824621779929899107048040424653601408502832892139813221852439948315775496749657027006428377508767891241299094575602447522086608659552661784733871364081505037243704539918504798403146455267738268311155927123072873927803515831179108548115876968994344610556349533602203796435971601409300382238853113323070479804925959918590587893373150568014786012074863277806252249280862537838429953062304779746103446831238622897062919949774649071458020442961864692967982557472439089300988218137251898974698379938273232113051588730267945949635646573546726645690949883830492438922827999898758646956747897335108684000386723013724580422751078682193776143534862217001337281177765570180671228833022152284737716361020953202432792118725256407342899223702127488423732102097767611713272916957080283922939815017377353600104717873498236582511423729870053680949746538366501368852306124190412426486020294467589568627096132319633356985614483756921917516007909194810122711088921124798557721138614284920575403354352312266590321996415122859156138439465244914673284556523166459501913702184387921997766193772053704682265369012548937933134632895888021474483712789987855524475414341004362329051730130157883325152928269482821573249518193909290344848963422276423514027626939348565609497890782179598958226003587205902295693542963017117840166815361874674131122582607258256932565058113890410141122014025885750030877491798500953220087065022475096039749577459613271274648145233662233616073847831794083526410106506643645518247217373550910338918337485068128642674637390381877524798949598800821927645487502017575358645084520229889025354529466354260599553464349759470406818505994964469268574458622214432243354408950117680304881261939408256700321460509041702586181216214868498711735209709573677457554577986867129094840798475303305834801076621498590977347321185338261834417789796080086436443076496070822163287555962953781987338975965183230000133938837312872338120897968631725818124308303387015602349230321171880177905198596875329775032314064538247807422594149595959629783971773349697217082443289358151438005030305830191387870825610490934177110111135452425670503541881537048598855523621711260113269476572072094044636165449154441217281116692461260005182018385764334407286968317441896326713865693921225814576078910131233058059029017552515788799336083185426307112539994528911318916268286102368605462657891878298342973846707350327071582441817776735277662522173832083989496643160404170544937873348310391724584291705014513066257304038567637679347702933738735142286033480332012482592634475003922648080582497839926140506874893874455393848729616637003355551008540019840237513936120604633562864941419204449808023785492811726960683259950475534014494128686499644261352847765212650402028899524118745845429079140896496680107291866543049920705086293558998310379046855424327271807441400396421185102721696833081132162211242922079104931096986428503745408578971970599606574964236820245620522517170713982342755053501826132527949085694261564654332092109323402556078401828367272898771173980356471420950934081138436480860178644667802803466021035880020719521376506659089515374215306107300265559506286527864821531705823730359308566198110563940118473918848274561390514046072999113374845303622727696499801886927483921562049600141972660106095008082173736201409905214728639433279805958831885203450439151253495785512424298101192664157286799922871849888307131314177633195098886772584963527387849490919165881995213216335800264600395102074584082277426773411933360214652361731347605602428380167766109729807557985130056005945760191467763430591399767487509501997654169429584562211583584577004851850833839780663101577793794280784377303771340327877714940309531898995178420073435511998229261032269396471838942902365641934934546364678064712898692900246008622353057425078032515878017150709118689661683597834839624205446429112713926240152221018846022595789872864630718202688281442700457887927091592087472032074017300921889779405497254444677707982707959805728103216993735911980935014164397187955973362700907530978342415014020152165446023887646074066438146562992026235546718040958198206356913240196045195895293858143914482468973901650441444439317731517156539331192682926805264956659931500770579418321584552344995438503099243126339220479788010249093106498031832882711771449882803433860848261474133467448019650701985451357831400179629897864503581969961365423612728220588699402472378607745569647071208913575256080037824056487122379117281171383466846087629318755465465837260269818983888424181768760539920927011037534304675336620772055546613819235374058798172050822120337873594357885373007136232952774395062302607576053382854432628037996270728025897831056367016130139890626805745859283913791414464249245581508465127143448413954807221445891543978610322519321420759894477091178886417280243833166121741674091473760604058559563299645648982808408580362798601332651030901398091249251626113511022168242958970748191712237937766368424070710358930585906253039890516608613222068856640802539761833448993631192739342076437191684567965837688864956990662529101320070815966214689373236165150902418484686529544956108969100573890591020569083802822025336473357135099942927622682386116557048781318555076100352465893615893884820231937946518218209892697931132934052288961093625348291163661562605468243702105921266859426812486468793681453197782250950088425800133392655578612887480067217902030615975076740428763166385011973590186581398141990590915466760803633495131181424451691645187112225132168609358286830980414587105460742033689489614441829466322338119627110687058951842526942337152411295141595898177611280580205403808392391187626857240465100579146833197528899307028211149274750361592099574668576335589208386071615948292392718111968564133735519197935347544130894106485516934055275863663207855199839855021318065163722697138984051620976606724380182450381661707566258030958249778995841812983880508831731216297657170295459651627901226238698663591112338082493333325926022393061221019081530367313336754607022650182943663932176247217806974578818402636849769215081392711810896440330051410445194575477044445375715645065307944026444174157622234421486126772875874554610099637096145555498973870896883417197955159097167113975455943455649471849235698261447181224233707250134667780106453649961093553172001540383254807534345740594094921132750380584677578676721723430511281523160926257709990225733490065893112335419205505543323793910145092579675796039327260890400610647168201078074498996968405897032215701534129808940766049854299842400751215626446251965135746853594798026961362590533330514221278318009427330178895672038133028879256782793712467052256471426539502671032476060295546222948805915315669395604149658294437419720156785773125430731945130312613345112876308318601124491718311041585402418245664728677432616464041589963776995007894117743526504444986737075043093428884591489796740628070510915569539812850049136737382094743304430898098219061639382322822266651326880992997685053672272308987508062177892853786404283768871860569411175817475143879470705980722161474238521011746135319962377847032630407046245783872845626927471022758455418217367375589012828225210714198717432847901402168750403672213007901591376802953051736797468736632835893324474719455376591319223449512145411706505168338875367764080185202624804951058745945853354380821361342403420321757596293597315748288235374708068440406761117698929312393594656704784233153546098005194996953341171938563977344809898712534859729077200109894307264144321289854360217888153018356484046542304171142799741190299794245544306301100822885811774307781652723799868565478232176076909105085787834809230027400808456793773201956089741141479599659733878966227502309072168277385632965106360135529075726990907967318625151809850102826301417985961509018460829949787259747935477896445116177356506891912575868319193028489650321865404762010676585585792745177545833398769323202504998497541700665477154146285759437667956862410182599727418571699313448988872538118407868949325648900239272368280510212362810522875141795179000200879071252836676399750277428157374473050518739844825467622056063276825120585699905509799967501272857592479894818675100936160038130687132488669335167874728691188095433818182186736536636404849903299234854219873237100379826819553933945548234901849302337892437510290328192744328932087982445489186282304662106918747450611235184711077758026863785771914827691767291530297125995237056844641369281850523409983399629741931088595189518054757042134171911465166456069644663856795456131859576051348072386542846856463695845857069319838890474388622610492449670221239773353223035554233439538847663155839367410664742309969675331056822236089798757330138778043237537343040690713377517813018552738657803254149790835461453800946207908587080298825294321532885571102210906112104900733562888339419204540221868851593728245471307837035398745417827790147411203051626352560017573493078669639061371702063598367171953740964028714215937465261997408464311660973081601257125123705724391443918958992734725632177742532048842189478160892263761998347639457338257814146472783675085243984611464511506813153281255711808031856746341770215953527170891706385282788390417675182454523500274203895067764965159920006443855256444998214714805917593564592270744229124953284071708603010838647361870850339642856789813511332926092859118444060894148227706994177923857807753076503209870121348269642612512521791322067682474121033811915654537395861069471329927018023862582293490738705859131920286624486690585890449560796926134198484960140252082198095266727563120654075033885905546025850733957381751990771254165115080731014441926909773306566829136960828141600539627572639495750353116274812485343452748364338647944662090213129250740774438891773195237438798248579759881876000384003972239642726761617494490348549127730162696495839562717984364892200541983235139738261196074606679384849444898924069703274914217254592358870353054326821801161609028184616181987345049441319474752605102553135509769426053534261931432032346659506141468328392151185750530642841757680122347083972925737384978352986748038938426746359787248197439735349611530248145646956911875827866503805631167976228205849193938627422475726887125818447867777305208988386497441466600576078998882268227579562243778411446644118320441424205688587132259280567499444482278048048647047285995929388497173866822201996883455853593121783442901451109326239501989983285070258604703223797907576345543334659366155521460211470616617102821985496142556932809603749371965057481041374294887138404503702983615740306562407537675795533991862141951429598987517059441192003754996819435434424743115973580906070883835456810333171852759567791882504988608235405545572596949264381092784491772651301840793537760187150259095429104172388872220715714506456103487693115645771870988132557889332528410658467969898504804736117316937149283769466921586755909854536204654601172334366965360246663026945711152182008687324801868269120342293130238780211269490225871406802269636805257253530137893210109310586825688458625027671106249836739104001575593766753016976400021436251212066973146952353359984027971838848962956222012314854468184361925562321414044998292532150916442166041140905031541519140224075347310167626584857000820778999833600650966932204688102140573334330411473095489715445608692388225657829344250439863088549339309547275803423566290149142340975088566366175156057888481697025774719267213980130115876581820715919178478817056120572021477152353422860072582303539557658029256897168459825538934987686776464026953871008468949048706250405675939974629403299599019951466639761682945110115718221144474625406641137533711946850512489408761772301411061218572631647343929954010197635680134269995395677735345301830105556184169518827278474659254975866458133956178155197629748239398455805109775845807244128696021903493025758929300683529880280992217506849604962107869082662403377715413928432920807710696710128164055019284070247830015596220714953231756877591843216509665934562619756106767451965964007195898697959756023211824608411129852288918037586256114454652896019890395488371736706428204878893522919974786577133530909099478822861990492880441839530184850653260631517889505943015905404053615730413231313182961195383031307430041338836246976944608222598326586032712566445284285937469171926104732900751612434740225967393719290177816303321478025141924379003610533858128751672974017998318235342135009312081971442857424749032041784720395123081110196193907068468721115744238509909057769501979746015489909702509956700817160391763123535088761863569743079711105215174406079916796341581287520877301816753156560639324801019902852356743546593347751310061758813096737530417015164940144148333177765216305805023644070513238139877693463004141787469725213848086423189414724064438465073714735308373235155685746366708560686095213329049195933294484637867976446507941694529731638682000434552686822357774990148525867940139643136943599661906837433867347273027433319011437453570761374785549612448556852565142979403966744005970396203853251199882662205785069880644192983001217247122850722042388100142116482443838487786250659213354487357427950149874593580179712687967862967733244322227171684935543482672388470083135127215887687133512793651001522896195981025952577561007768486599929520510239419430849731672290041148275652412287769137523636896507395240005542043536083024040156569119763405811471007296883317126891885199114523471112453061432139697759802569073430608497031323394274302141247326956431535080296544863192459449383730687603594439586752349064225135794074070946352921714470024056770889202074396560161445482369491761812921377557905646778423997382034548956744733605357739631399564055098160185953963038063218974953327425445468284810006857237276184916656996891502566380426302555392900211554425692317968331594117072981515696032635590900977865351248304329722851034660179960567009234157468887745780039570204805398864965176064632557447486626282762760549541277651073618644873061197064006596360209355741253483290384161988714354749101983091837927270106351220028137071414769591940670805725694630938665540037463255898358271894509883872327901006948015134808151094561798926466675950108985706492256625122329661406209797093651890067804735072584729528083859139250217136038629165511147872813575567305407336302666736338287331639420983829488403418519039963426204016607770627508322969190168372979919523138319426613970664352528309217441756892372489222077998979529686084098296664670914629175254350013271489017850760735118503277613141852842303565950299398580427041743364938511186590015392731621256493894588398050589564623269189908980090080840133497060007874557633761897313394955402839981211173832274471519395788069004516778403014145211016020542985863630927809907076460627028944419056176592916066890823082898472978318022151386863684731340037679289117678835815184312787689313617624713076532575167910351365951273517384750308913168609483232153812380763660334320675082032174331902164321408955434971386711387875577593521290760819212523691533075693185637968511241146552889576350273552653891534513526737703796097141950048191483076675077379644781356257778610305218831808890942949598008793789393962838369985547176882393640538937056005095711748902326628175038274827962151728264634374061161745449743589659778151484255633352105237201445839849787100461789432539725090730866289885039250389871275847965926829623923868789618690105864786207806407223346762259899391541418258337905670196238560369696165134083751523606519681995193468344454788936108372374984305433963300667017338316782782989501946636820634768698439049289428970217450073391706838902834712536315748648118786782191575055328400169629845222961759928007991984512001971014770681405317098729477849689543708030169453501320637093620668425677200280471248344288036988533217133310742995935826943813551912911776800808296020523529549678915488821212562434948141829882798836851568789628958806013945900203058741324805042499021615298722498187258891960511345865521637713399622479742766655879413024804414395246204630489750033642053675706577252591503246691224664604951935873155986631447177805414411534228195505673485833576945620662483723228330442305528614663864696387669813954674180326150653350631161800452441992087138396161929072435325603013391733666329159462491131332782185271883308819174733730296388136130792522623468717151016080643332758120076210475713378102495716699361391750309358240882558379756172938377296842685022471798470496058553559659020738092940134050698798716967240038277419353958631185682710757606225336640780115848478377401292199557419199373692517562701361656535312590333350682217498639891350150506200752838582048232006681353959212769209835497200818430500140403658470214488293654054463553172290182558230515232579878767491644612561054452580905936661338307416677832320035974735352052514476948726823438817469082886473648573940926577895363036323157749098164403553017790067963771419102317521711270062227274400204133904964162134157995061520452044330177172836736262380881069166915735263324871278908219500730433959505588028318241235165073969039726484886159156972968631016338394078021944738431725472526226614618271067336797237172676847584623889390110493677506735946540548760946328357274043329195183588977855718732526027468922363655678764897755966935516907319432479972750042855071450812410287352937026170656043449508987870377042233432540470172014814791967844991642249954441948633807879866870223750578780797034505003621788025665226588331846378155018096794887385118072834454651414607485710353578853071546576745170380702578579230236245726477025810372515453292693207275891252553001590202547848160106169666238208262859049854890279837538203776302995826231352758793007265708450072373169393828129622727293873990701148647791093177722573236872668150835808173996113554936957847186097860618983803941740411211019373204464294359005009104792642471578220686787068630503005548484695442416320580987058111607739844922698469858544270601026242367561500315179593615718212998712391330188033572059488697402569925756750934632332725594949643068006303070791744824970977783200425914244313890244357632825531447108654373531563060623506539465701151391525511539178644397735127078920838585278422940427715701936638443648199555816998836462714170067282763842934630260591620066375986915711382908212331695062315869502974779280958352538073904706079168836965717559428050367043589594860742843202516540807501180723805316294408130861958255677881879536006570782605891964715835915849002709385426306184562872533448483633703246320702097683125662892568516990956506073147509570122433393066885529713353224796916247878449034876403094934632162744501615289530951745831479168283617451727646906888457766739009042827716477728596685376932072367790580572249735601626114922733261980318754478768739295668732835895878794274320527498045313550577159755262631419089529897115018858745180898461808859831701622434194142450312165852352096901869629856541119650136643698108151896204921165078388857349198584916876059738830667715392690417956672602684727998906022033652454724193537718972582019405828971500819087675219585056417092547019817095818526206211092721999846689619103076561432755875663782502092030737645304601731432652518464605420090655616040721785364072651477136950958718485785463086343234165523050492451755112599361642623805076296585566763170271413760183864335728400384513708482736995894630329442652390095979482002337422316002943510059161908986218190796086327739708706751263069615764802192198186386175439209525764641345793757737863443076886637036361377754646677926016174809967711619860207457948926942877461202005637275056668805966521257615714251406469942428139739774801252434586755584613506006017024529672642968809573870195778847751930449543205321193614540995241802515517073840383994520982381036468616424030070787401920159087753021849351714002153655862501788586615521941081809054072408555200385173963282549611531348413780126110543449327721741299107651069112704829307428463973940064750237061252789453168176106412842535962483735292260872968974182924186516113135252163028099393933847183410483290323429291249956281985162001225483732561292269843149638558596281390636900754814275207393876260496279798563049478319361340795937414174078320475820593705522234976785707065165400554751697867969617071879443882744586156659235052641608827655718187442011093021845431662709335816560468313650201863883144683325311417058743057684264860819117188789580831777844781578243181918015475963611637405418510145575075236512222874765912528666476506784691142150911134717113405095540847802252260445083539200272952953164379298392379639907041244436215260321547859685978860473337964720438022785713830653428815261057825116009530121364604644077357144434969119414710509145050354866189880455780143578698334910346260659973674518194453592171836296323738772894297547580089240717410026902802790300596143331302649829914821837888831574332971042160935773930535261744606098179501960198053899818183656254240923588952326614631656676283444488120673961199019444759448902446109250850149631711761338329147425593757037241407387329783610606678570651846371185005026247870316235399263766385506620489748566220338994659572567749467203392605589694816593625486732100337780573024578472122020568146417386755815418111982982987499337723718826308801602115851718459184152492502021139557771159363406829537833868209903691834052369524140385577610115610839585774289555181917872685458550240580638087947788593444408064485845967261717296217651691298190342754816914837566241063826372731837531416190834892072650029963506723211952275715670700419245081440219220659765130148984111894056501196019982848664675129441973090142681765467508394203503136317920390810116894159785587928920358894506678960750182433050334622027546599954137731724126412807201821630710989618976678617088706824733449172896738979328262986924591496959022414631684178494883271080627612423458700101658445326945906345159878046809336114719092992716688163281275548412869860777822477840091937201502672200185145301898392892955917830096450761466300477513916440492229356681311487333983365072826159107223440968767959879750521409428991772475975069896861371597863803344460892610454537778854479524774244143227862131502561755024025278200272434064107121018516418081212419694374495242941149547018780653377279971952979729995672941839363548917886506509077839802074828293723879612592598492750850287724897085229424148716282693187522455407276984124707493059340920412316236772204754939239644284166346914919607634194984347618429364838556392564969345987091669845374134016520873709281377763514442609023169306645391273115764947731201943067212142426565978089625391269273601061954909295646150562428777071756266495959438431475835320180506624094399368852983020452920387310180258237634262516266300837315521706847633349198626663014652689239062261622849870980896921263042737694270166132935105079094684796731497416248705190769302374856167034962936264481534263156353237190275680887757580150751072895484351904722200510528148884872278415929452969630072710157991346566681347282081588960242460437404192765403680041193381312441670136314958172748284506255211149404833244175679859822789513216214940427379808662126793145947298290655786572045330441783464471083613125738392402580020885122939807733085370407930880222183544396790870769069970888676164946506404050719819770843552503203459110394012726436311870822174807504952352675103213663649047244715223667196887405283037688905500278973968292717205201735936878704321395628371565209717890857687944217366322413563361460324670048915584710635664173946704024151146169732997917767441431582552873880879146474256621335184587412834828010938193470176509259741022861430355780880380377705763752189261705380158976177340329848400757555596645442770614108595629432618992476537345142751907288357811791323349959670990769774908355469683274016717476417483027285550978678193708794453119867172609030519226142739898228339444506943852302352232977254092071085856312675172341441804980870246892052751908598995206255128606353866829158033219817626347645334554085674199839969940914376766941895207584501236080079239592438551650870893069572455195357077474617535738957848635480347277909876069189168535595052221132472616538597066276845588573427961159688128023077931110008235266523943678309679843383926717868143858727229333824053527986072712511026005555302805864565050838379575373165100703956785693240909274346053163629928501325303673826325536751452803032812886676220920719958110375436665878445355830017195284360214439221375233023167950986806454429646177198041261956047696933332357688259024069064407893188651094705756877980091688320005790610722430176189114750815660668810412787677637632678957140472511554176675420713316869181527609924724241150956826352654521104089067900498806658885143723278751982976350606726376995117774205352608364472971246311147404366410693265884296049106116680169243314089972489383604446898192875293504478852732721376535120123435657063461993948077399898901314225955592151898795239823635951303657914975198453718208629549711731832957375756586317788449339864196770383431162293192850424481271525039103064795668401730830633310799299885830301389196091424409529610117538075089432247082755767024039835903736034780449973449768561899222439905290974205286608624937168861168604769432958628151327895015370193804250240922718971053658674354465424417050250487483766328667616720458963415730884197412948309703433950573943964830004690021313768260216578135925632282339284218276624588530800524100330707285872976136008701515207248772459758553148531751019126527021336119201315568182283328110587617162944939082637882824228057486132341033266813348375764956100079928537122388498585113926778601640761582901022407681620918403076687604047223576116681884029464419451437719863497919352227475947375034873099004291323068877659482119014226474006462174102443256259489872205915666242065934563116904997223534488948362962125658309898310475500617158780120151631394553384168828126087518245571498148804921444616987176997772705688219329783010704209222351978657613180651835196951426870509821352619760808296578710731551978992782025953327997824275636988413150997474786655172696503933042271977504175945794405649020620945310180816086258208103084307353803240119644999737551533752571753755211394661833542977075553423980327567323418998881060481985692124791361351829221971019433124119163770418876380451980312817659268172377167616420552873283940500559954871889565381860273802967026473017709369872878513211571023828513458505102234086162831447995733971891600349837869683788244085898328501146788323416229906751235272032919573466136082112572621891854636017716884570745123307106897100313735474757106765930532537182409979231840274699166168174309708504462838487366626337177250965987828609757310684382490436488509201100384250471258282064457220681736585425105109911343532612278619669412586185126459632475154922796899962364129146565721807335577463968708206291186396236426545149867375619217779662243600414500227982266664146660936419381778337138533330082376289446947227493874646687975176389846632986453893040325245418803439795557478336586112569884699360125197665287501402196815475975477289171298075648440532599551356243016701309226026808052791793327174361493191713220398442155093643749683230029763003688838627087224805816321479166457643561557275138763618377457223519529137538402500922348876483766720615308343435025581375578162153115810525386177280872282213677208897335061345959149570055235893404215781068211261735960204852970981757128290527095390412336790597157720786403000574097389685796535688775217038168928634933879427265131781421666240350199030417045710667836116605312962170537418719464459088232752262573615833240851914903428448896184018989659748238404684285930902335537156983654123438111846334027462066890812909210495355934527733929026624241137117528231672134973255164915045921399972894010161834449696019514899954828747728523843574545917226604597775282932155523802430503425032613727436907691625379177602588569897552606424462719916556908777826782977886598863736284547664551112409933140832760482567957886972633437994897470880682485146387431336846064576753990337914273350724205320117171905525434204995374838798917591582830334087036443674877796140274991682946741182792845290971092294055841805397231057987205835019009562928375186834227329313932717373197666775359225142868680426756316184196243141039130523639236197235798758257908274048030760829786787549749878232600096804266049771679233947812923345557759672848001728320900754094787581332788843349199679699531245190585660357220819310732119740663047627242304716013316619372364053246100268144649972827019184005784714709583329875171944311443325779532497441649763052540610092267519606927493942951764984384759499906658416533158245705157670246037306506514733451849564254262378217116545112065573958958081720602184327432636016330110752865910151124519329347843714127049339485295389793973042633329593477147379143025342743365336290334954418103607845018777074637167952358388012066839667893057075968638934319820679411147633932071413530257977751329343554352669714412868445359326452558857474085379455314465135800077750823438666285409652214818913594647561550338437503941869255999274758195815884864083763554811235072650951998074327220285762911785875339306766352558631753153524285913200432048628667334225054596047151948144726001870873124096133950027576270737847413189958875861266142420992783647507574260111283321897720289957412168885932667317818701465248276325591731488997770299802637045558549587288808917274262505606226845931167412797632470680355249368568182335647174388696752306398342739524297918302263320340834746608057458954378408295164342109613404961491768676889597010093028941938176189238367207694629360176724723360499072506061510481766341434113980989300111830546905070099762205711506995488135945833525535937877801035569038246293071483016923424319313858812864907782255110076777043478288517501582036914206334515683383835530731166477331760117566516036167754811543344385838047938883713173825229981806153963298101763129827845096152880399169111149953574083761357968778610671663782475534098310942926682034343935056035665400119152862636178954146403032956553591199542106840629119117778693881555368102401579694790348000664724173826924852991975293549385755968865855089084301852284391504356768940873362945221687867360617479452080053111988980028219911394431466815953535634311049981650254895970134531054392610282959880063409390115101164814082058669984109897713183886939103971962935318234043867303884449458117729063885087424913199436859202039294744553895896777248590695734591899443910560995765612483846417725909619761870803338057868821820931834879591381383247404828518548177436467306466489408213726149615032887425388107308199345532651063088355830639892798359725267792860542129709179678428134081623685054364835348520158841962164156457050629907266387138774262338626704918345388970037924364316780661977331490963671935256759753463448690720011534502324564709818341012822031235648751343974608681496893408899682313041045668733241652123707831033454942158931843633695436482118694788378250463779119687381199544387912512821458038096870953935469081447698941615415505362007168040729261101781646609459249403096250065187456765855856988591355541052679293581111525339482733907121759265435272298846469386688529033924040387233987784135709789290495400102231262389018871575322708616062342914742435088582152715428122123699309605330371547954736494442662908972817199483800463988398005340317923972318870543804636217831855619107149825100714945362931215866979443739679660896487607186652036188898612994745663479968005338753209482946211125490932753927822826427419158288752288373968327020660970866686760784841344502502528530981203799907617837526045583274744645432909155365785313937149055800550032511612229982267217089135881698722807281696433474799826223382283841015475159664319731658575121168775092688908516212754086399736787114946899135133800055969330911375098878925625784822512095060870573880349589207193326587513516749429350707310728801638114243399042861802877036154840328741678079142226132668447674702484973029006306079584571603227080707313982862324717752266230350521765179253258968728859435224578725222035106679733769648976132668136878495767859694793210135011398834404952036423666701840978042601191471069256910581239326241716790010696490395086938997340865273905991022465379928398220800595172541791791548987072317501071639252732102613605641716329183384654402811467348628771937680967021430644890514106998180347304184848205390273936697365418734259760392464364561108688474692193977640434639506871392590757149011487905626221201578830218028047731938812824712573362439865106437939834815492753537810383019013702423781756762634184141057027078450417353004712647418680320924055115663753078154582917511987545676351569966571569433313488832686498984735834886238031151389087449621781512458481901294030857855992395838918122889957079832950422989880515446296315295647117157872637142878503844682181794220451908725982191851667232072266757960943127469208789739677245109353700676296295881950045601665054354200233607552273933531323391523724316069847890222492583001865233659727228820673624184758300937983483938135777762175602896716256045235030932233838984913198332040192164231275448018282935935439080604377619179036708650324336551236185431368191956575063656801930881926425602161852894625602078306331629828813596380589762163910890034592348604686621520265436197336227495744589287429519587136140877687603825837788181907873058853129877208080302686675489995384341813964928333089401232516450014246534249753815963632834688062861761526806961787362352596467747865081953518626763433310475931132984485230809888284739887145521166203762114130906454380752471734678921316785446137697532627316555516818324084022638394003946687409575134026577216613774420004017101733194769272616385152290625907899941788322140204312546108127852476783322937411158367019931205996627185304201916132703789343929967420508425198641535041573291414515226391929124085396056916928502184676102031839590083587117317027386196218876275883981171608500563164238049239424891085631294832577724396667277544696313131914778223115403662853641143591700879363053444328165455554372516291034919894909278458362696807141383531972340682877408410357446189941841264402433287934808642290840290457403530824171834400835491548508848122405982233065077400084671834807976302674170683715027830263210889945546157502839266369465166494257307411257154526578915411591826017887785042772641230500972823239152431796538313009516505068246614100222303756466529525277462057359405598345058171578026861391224877447086165263923445891867239215277841145401980399101187869061101681233377411356933265391767385298159493008285321679273556454275313676534383138898833757599196616315593534028211839200455391608614336494102329129226261611995908358833539147328406035332799583358410405598491713286543878332297510507823473000374644387920165379753540535682005171775960247506922413750278119860859280587936394609550770823873433587755083252784160607388680788614937046390743196420304540983255690437101064736527124744476277636587186601045204854381999493074310764457199323561453811875945750329164352296873413441464882686021007195366825504967877108255201471202028046726677553331319177576160140519390954377441564050371931511319513517838697554009840928910843669012125376371332431389356970662848222500204476440540792652678991346834559773260551225100198316802172936431476543647619324243824886181104023096280396565674430554909371099666166124278621777036199369276233450204540630668325186268643881218247784483399809619960832885661438550253646014526528283257664893408018476910305789559742378642652300420308181622464545311330177507497858433016752263976244238427996531042727859806952691669159354795116765404569953937580315494079069771323156975044474977919261951247911276135509842071759366884034210592488527604544594766446251546992632103699418695120666726961513477590939228605264942905655325823125356874759237073293338660206894389016055839330426689244882868541723951316689526889566544027329130991095529081015199788261270209587618153100107857353704489498540977773124769258154678792170031596708936504238224108937069179707031238505242283366968402350954780114901816410797946342778712818224603364744889558013811050240380572434026764846614970434193925999212014224741135869966807983780084519403351416045194823133907941559404060843786701810216380084027634655208797373550726971293114701694908557712096996094102085232232433379097934852332864355992834078600918825500877972283588186930458665353618822764219330385500529957990887218320511632402345270839384634663154992757186970443695011633309524887566763206665596137391061215076964805842725749299287882111015941051975846065278646393782385737775883809555495246976888042382632710526208448705041162321684296718998708532110131483063251672163860837832260683958646385384048191709312266352003125880011853129026215954582402612737763918909446666953254291758944064627925712036548290912359614615609162911335762541239534911884045865569437352195415596627568962764224906744698254187992884646763564864962753039152158850822941347789302146130024130838862022603950139072733229408849997069323552098004702587856542191109443534664716158686231951306886219503991254964162634308267625949657391585238645341340849323461713098999717004785620900290733022013946451675352803353517690221446090467915099110413946529399278062531458932385785617829040619062313235734520387997850342013747395414274742431472570625841018966257142814212960853744956211805053065314518967522981002723900373568570702674540464989437039688573451773734781382609024492138887652024318011019576030022564473128724176469225971616881031574446440488771894414378030132355101890332795965678266350705219840137221534607815992328820563129878575933285454305609550729665195174838891160975252265515902846943741074401087080226741361668665956909471409137935224907073283433520837329455875199273607582982390176766346200956471361884589496199444602742943922564884249220939382396698503695017543653330728484189010521307418789901186347569312913937440097830194863202709022469995925981934696959644066683924699233010753592925739236364416544511069568931797237627403957218566152596795272711082589198163020807228491803325367552342261884489903244393958872207662021926972774599352106223720633524418092183785681751182634879236818764609603325070925893289261662703346515745895880643334370978551286982123380398349731175477277593609905078533695437950217418015426029206512035088197239407916471073751900623388239067164299451587089495915937381073015194040717438081194196030923801218175004457527906224698549410988139583724085528764441113460720834375842178467855132950793337483168238609241624677191970282273222987945190131675956291622646683037508177615912923308109865539927182507832810341129632458064046396018971730159223457943821422076582205557458398770162506159776772817908289946403303061289357848084647015887355891605117645735454511103327732645455663487189521986492895978634459250516902372313001355247382613018144085467979395556579694246021430856037764785146295341225687141830929157375350741228970876850652310671537376746425872779991493749418810128609100266610342299373905419309110840840669371068530975595655232746884862249782579548601743495464404472843402224327852733187557212776367842885275286130607412392899039151548732025121427184448271803933826977284505512592783369941457340283813018379235222773807332599202178930129846270070811537376231023221523647898442894260767262037190332917709627486413944793399705469801808647416658586169007744256396028040614619484466308369897899235137130811679500357271263707614877245280652288916340459083439456668168105285616731760699217831655963768181481652505633756594362097070732817038952128888054864574080031878015971550121363872107853054358580902511602393041662052690404881388099067087511845611451735309986833377283049188697955234048362680048379843185216805484517988679102926237281007781738114738218451156773438081648071984711419767647170262517877185702711866626832973390523170921192506805702146970212001454654440277690335095693026955621333813343119102730965677285510517664546644110440078787032612526717402235906657468753395108080493770529070030711792370345768066710173695208873563986345672454716677154840082641061902859731734428435916188630527586781498333403911464607298099606189446217920151744708434307987381330971895517655614667508456150912362022406118996564897697314062821345732543838879953259607772056476981491300020465115674819174240899673216843260989647963287069638242036991858542816583934961006037337850967994592344385214986936434659456108558020874450643109213799508825137712359861543799361918659538028147463367827045484143529591257785194358627521635049314895227621314490224643913560903574611609705552504461835811152740387556929863580764365740884316469593484971428605840810529457124427876134957127382688971213282264795679580446314536782146825132197926185953148992338487907638115445865710025040669135620636624853158934021329098547492033492662365406662463129730685291803552695067584523349225500281897294359462597141478163923222574287962317156391322173990712777774876648565070305893318600283318110228551887636345141222543752145433876258038307054352678450763280029056649928763034253357540670218583023258297907041516477759697882769935326393549203569309832700918563514758649885504211534207822633778074634844594827412771897647212970078849510559481067766879941038208872444353611701394342351734694230957916005104979537899873954788084263744185377945166630613261804009345340886903071435634773127036425411439300386465072876733059372559095726146800179034613609173635811582714707897648409608955736488252834453859822526877757050966285921049465535397816430299756450718162012019755515100732894305074311289966579714700292698173751995102378669908252186848005421591490714431543669541709050646210604712798266222942076024747528098550136801999242935140596203090611181358132320225728795478794413799722941781613379522894411862215819783119354068954562903903613169135627909463185458487083110427982108252500805102808094092004093768797205194009331943124259480682604424797679229233691718755238544405100999531278470819536805261104511294769669804565915768795249226605875191704091634811292781509050828671724452564110640629549578166974639815839039835033186504210305831218067927128367571040789587269921816711527920261538014160075267289734767948466926901844631746437057219157449914096684483166202011398602877904915270228005490769039236984773306168258673865432619282131182531397256348195210364574024260501143722094396172183600980762665508201772164780278559796066165638073158728618977027337118633725060678330609707534483852554912356702716050428208503379865152629918586469642569994248114299652816137382998515288586604575974875779063021186548784717917625215700404560888523647257246473718382043464019165271184823430823091941958651066432299494113232524723429901329288323780516548994629631128960698514155490435675162498803620460622502078023770336676389471947862784460057103773879773752369954825805471608686174644535353771240726498691431912584196743564517198916274943925217139282418539869603833857625021310338733265378431390559371473515429161078141160124573887568924730855805644066530802987190522249747462950166751756052743036594143298272763501438141121073326630100433655785457533878455883766347784037645298112674949193499277404355745195136423102923757941438514446375066205686709908187499006825225427193190197566788191505138799571917538552888322143908217742472371529213170709170802738565723043007812468526469124261992679214169939484824331668375737564679177024219852617622772196216909820433254749216311150735536407547249098147100433200911530244077736897766141530338685091143875135195684359250483914847662531696146167693729276685785938186309974230183730010402388630444867489808495205126501301943358196114200366717741622887991131962300272422935828010419063881479862114181746601427729551657330702198239596007068541650357663316773039087828735499133251343588048353272544727964673719610741822133898898813475184223436447991927474126574553962240388285518332712151652030151257713245569317887980752757139013039157518538222266491139708243982436248300485516592667671096974367212893337222683861378449765815349270319594815049004172236804524305203641993415516043665913639479322696217776504316215111312150116507733239284481927302380014559861474283674522910403071935312023982522035175391792548860525549288808129217877227461473179640499004781021658421986650584990499273572332359219723140965533410643372531179975403353620148164606563579427087904478368442370519548743408831950615149932847900250197270749101406035146945418279558664851863636464760067586606108113830694131601052385078403635294331791609844394144745753153729995029188824058351874904891429041845551102146327126710459316619316516086435540221386886768627953064680023934758747930210985452814715877087567624877980778250135487428308740041456399831110504494068498027183554944262718903327364360934392695473987842531689783042740454180140661127978715521781005974079455657002937088561060136263466352953487597219888239820038849502094363811661128771598048866152031786505803877579239171319238868539307844705563460467347149425873136352248785882882535756370778113410654356711153254326538647723144995642569547753640139071624106890669895511711725796930846664575214644523727602887758863972384822352467385533179771872764615348143831161460791781037663264130436746853158156971765660526909972369877511176640633214388519559263995979306570135557934102402091151073047684408418705721250530020575280450859115957249528479506211364784171343760079067225334948495775185498232547072513909117574521336255586958337581161109728510845176300290214543969579429205704773593235795004357921159017096128644734054486406070390210344167579488315738501574242077803259952380581204678526982053197635907453093611148982312539418483710687255506941832433469076515253882191336598468481283400686454816313439842580533714048487098706297938874449276623332358488856142168022617909642748967032799463009518539942869924881533686048135463428680342435465626140831242092248782418661371750141113757296729761789448408445116816338983602397057500620784221893254107357408122564743636150350400451729380509289538888726270081805091528838967753010765320719506272666770228025875572477436584751554051871323542106530381100790918761737178266709969319431853297490080753920560868380120026906602297511139671902808898466887273986514056964220778812971982922816148054893724291641072452264083005516410394468005090553317809816695333078089817312562553596868804561916530774710896442141412204541855675648693024294245339861321218622234265385263105529834920296483830813017113187068093619756041508763256728719170351014394928345293700947293007901605158023295124308756649144072839266784822303225148723478696384331951295759850330176447833317346767836599317677186170852490353774651429918341938331273242948924352636031548881657478873117077390327693581845545254064610003723272883482413223296799470267531717339991020795642405716938720499634479630650976123875370161414865282444810647775824707477658901255611948334683240692911751522588968182458267097400964075401267479984323950526867172958919807358085079077865496016916742231665106948816048036653610728219940446260623779271529597570954698493649816445101903063110890849573225219113443093548930393282129528667091133319190666469898771217173434843789866616785663846990495364900633002417686252305928807311966882242398262679558933581384569701577083578766978565674388123061228239276504043640540119644304739944413296318969164036505149908090361279084810532862910848011084132421366653414778035909518617132819287653678476956027026870747772306783810452647124073162962979129097137327884692638096734738838484736996633738239716322564814864682069005107343454530886952532971473398897830101304899585335529272707943485130196766783316861463268098234958636430898537244870340861432260194010238365842081524942139196005519115153709443086002675176884128530557187713549413861113204029898436514170196138210990276778485525686168758360765114893220323021524260534002341523954018652211008427189841483850006124189273281698231444383325022135153850812321732336117164583302868617942594097503235372862133566802074692822110157283276719647329793135498785273498020905336622217406185601309469484389371677230154388231582483225634655627227509911280784137615117884864211607832894596620036090713910446746536778024954668908418875136488562178487927702770262653111260666823785237085062215036301065159291216723356159973153375859367563532953468637115499612439826773644352587639693347255130316490433496332095214374496975672689161186055765437095189363867513357212084362660132911063678308886887324521508448861776676945902872896233318511056341600080831055262087885717986512610432362918130441820703824437101846131279624944202277835945646489210041469633012493249583593808576841940351678613530034030795316445238004924423355750672394200831291651204390667752251706904299299548325235318679437508738769871198598352097188401275827533608503597288439630639895354435715962766594645226455832140320999468435228925040930952249698664680103558432298813883730314649419833571093546815129112099582496074823444379979845823143704558282164610431358124612519791675562659154214524444716936137082948819061358885716480826939198642172514377169341579381278416075408629656019143298212085640336412625693684399607381411028446287990397048140910423556767691638171633452931531545741604654201828044389232352273712817645160884363026892846875993791981798103297285094348465332522129182968379254090504231493885799214759015265552617485375231240935859933082345164469402424697972900240743577057608749687902570960856057695261846182666056797229999932827582885828816398448802502171120594239710464487676810973699197406614218774869784457905394032223356928816579936981251068451051353911363268559832530392885453425845802593287483479045902422032337056635971197679675879657286667387488548174580484498334127355557381609721271620734441341398744566067084479979157769460654037530753170600747518210618914277146574934020723609735543749519008536580558182500965193755230388337613719401884986481237375952474198268919610116457413506446263282174008168157124044884361443699923926674966881718171288256022476837969690291069117149198408304377506577072422071507014652897591699222391170400354930876306602813715574418110305745147585652476848187851822710477319199392319110591566512152274104026096640719862721981726218006522973086030206012550465161233520397636617395807931643824892331933264517334526500993005654249318768018295160120227281258232066328738448337822126373820260690452077975990632807195589845823445034451292308917414987288485019450753781005089694017721503712541314891198806133628914249905419473476775063177022884773780885873165967105954874048083671480385402379614283743838246774774821459555653535777178627302980169247018786684946426378106616478675852203545318555247884699694245625730663567028394736692522872618360017872892588002411581776802947761932234913487434775131513199931479824520059284747372656052163354285277285268891188409853448890848240094024025411429351630380480314635149913370812514825390248835700825852108298242537506406809900857943951924631881021029833911744323987837612786202598908957684321034744710930912321846360009361256314528775087070790334689460448636615108635965952427065581280553141390386249132120898487200500835195103585280613087234652030082987366848151238649451297553181099034039618441942308716511594525439308415328892435775032371479211618359125554176732130234620326442829555769588538705593446800129144353672591607790067151117242864346222070435874953154303601273146281279253649488146865217184210040519074503885130669575474280879064931199032078935844032560055728282172168606990004468160514157920987873012093383492554978943568848559395241863361601507916570006953685672977567476509865452477383028980202772341132012722977989513007176927442712317085554340290927698353413831628018688803482004776251812458756513848577021306846819970397551783723106519526368290725891675821631157001569246973295143385676335637152635377270867777272837025890481941011373837613002352781223605378291370877266041674599738440295614508665101872670728436178370535240205658060762034673881007311599427775173647190147125341030827592134915523155003465568134255508041102750983391219490040432895176778067721919552254681954326717006831452341543710715782754250192424886371545807566508708726881531876514971700323049472036735478878417025116285065821723277513034081966378670019987296192697811062466063200370526893742856174407901770748897459659020238371288330758270415358789013880119420094202516066368831944224900080308483984498853207253929299262275513341068373467295874320946808733366839223318233380630876365143390806703427280221670697912351638106012284975804845032248383215922673225104428747553575643063572930906481632400208056376965751852380974489316315792406528362384934447478180208410715475382947505854361528102848462535004804162113362345504555550804180370208104309527378605557853871361318827378626887348493404497481640190267567077945080618118519513558077393131428551944564612871923566063424330872223912133610604015308504981946477425319926479494971031195188176438675667581947528756565143444007152728744653431244807102498147318305509557292570769085427884751963459899240354287055786593543760036066607958327037999364099357807602286556258822047404920805062225825600818532959339175562075803608332552544821462786534854074543253456099038210375690137938037782958487823386303693278651624173686677051472742261471218813328690737174735044906979450151330335621377222306691374755332454814058500565806635158324347461684103006478189202041372056964887559244748036866574113057147382121842108360013143470111476136092950977703361769810096021664443590014207834897622096553250721673790071818385186871911024035358261770751918375245868127117330565622370416043267380634615989613005795948077622722115831911860788892375585534455283935298638406949511289290606364327062546942983414929757424313072792885903626417329797121065282873074880003612699721584145412292986821385278806107973485277098864596304272916120184557010251134870011260832694113106916942174514115736722467605995117536718157110111746139430361120786350925219223075215725002934857878096651401849580623140331267018793199359041380426756951023538317821689972844740217200093501073033730991624231978930138340984166147919750234893159490460448935099366907763748086872086513778866451922286273538416190887484648960724124595633289576156898406477388237171559569217977692834416172224608889106674332969917198856044680850802191864418065405926529108950559092475361313950456433757749983760724524419659621419698126682353341479366330478478060440659702547594040383203034063481760355514584597930297795462704221191485484041546824519052119727394875400371882739901026596802596369410281741065162284703822318621545165141242161254778028432235866815260127594419663484591883404891313141705829644816133729083738558033786002491274815197100480474094918073721173583585505798686609336580033854015514602315502887514312561895333930484071762165737874446206331693009228977211677562923356714882631787804297800559867361695699078121506870252796787044371774116230964397595216240277246543269802578487247042006931314697416322847395952208066038247159292427930865358134279265361664032845199730491353862418677945071290615017614558046563455626666714381719670585619936160104357381499596449965860040893193921247147352767944645018163015577242874319039801963027621446606453112936814019549391207132548230645789075048568404692492629295553997909015382773823572447903522185781532653428251383558349016246656491859413770027820891198406037094736435169270408447425039555730860842250795421768541848974813746496519697086277845588629168699622973723010633185612290436074682689887004158816320053629426069965901320336823726481697504175456757812750951110868997996209648797493633628857932826872197172800839107379918575617602496876455269524888398809491085505761364378150867709350905035140674150374474759509164695926922626562797766184734027833501978179687647831320119220339659089512332339610699175161544157739717404901997602181106181690485557362223321324882906354005513453614923654368432266472723762244177004990930767857510715071748949576384341344181174513511756882512463647659063164737938857067245918421812481330685993853023147142929612103119490483361343543796892380137941151039775644372155011354909640971620309430033069486204463773089363290219231414472745700966767853481734780153356915200475426280868815451094530128244706043457910784060284481604482169885569675664395834013303591031061723837489139942899291703302488270390295881333830501662579466402481576544667113608357429335997934367881863453451701083615742353519997485812901103891875725136231636475955134634896487933556656494587319836518638984831324901756020147724419208466614435814441227592130029558417740911274616964087732316867410923273072032700512572876615033226635869122837723989384934893934711301434607831083157946862081126693256648583855560764697549102134210931785910290439464773689122272771294930517318152683322030253928789484018688526877969372373477934076348122640529550703534888507791443636979159798765473707762233770527195051891143560607235571726256011893895387587606852403792098165192097528104941087349744506024075611018631807720594855363408395630212055529735033478349114092304454589604009829823130454421001120485870533224368406282964755114197082854928207402758988238992622689721942791165233961440116563504510945009663426465147123399220816204974960284779787625268430029133116627770435275138257545389781999873677998440411938666303957307549281993327553044198764644524364235091342818011428403155282270567374511455667372406423931303208277717656713494320423753490777867547151397249545191140719584377362830739206680488728484112205766757842022874571466213562350382150953168068085725537341292344527346328863357862919720399508460326597198927017673900430481892068757901070346772374311675705870445586365067529861512789618860708896364245149503024354372013661221839997892652389487071944974825346399529374611296646153278139743634650219556238343647634333994098017374978139800314753539088883288429383365419765665844462408284738352186248988996216356235536143453033042760248470228441965894991908366393941105094359952532301241154516443227243755559018549243704581866145759307659063529829353775796784489244908579630462357840281473110525547405877453269201732798806413319809794917350038254702868521969563553473367952344252582996827858539517667425332048170741197248749138991421362121110241960874617949392082298883597023952440613759716998906147831906683229630968516929991025922471120552754354706839195960787974765376743025894583111391352491268554319698492291532251754910124195090281847741149734465282914346962096134856482433969039172690395372364657675335393373027702232886782074723392787599019823753413935700615157890325116516778172848125689764971818802637693716515419708591104332026614992583765735809006855909778032354520235508287113447329913308441575574981610646608183519280860905425128642202082227479320619499273997645487637726175272513574887315603794717581645796793199503980018652221756976380253886175483215252757975925624697228227501384337830875578086701304262191480614059703802670375672484515849170879480253669074319153194272343485238429065577489511546428265921589730210679390848611883801013502439725990183821316324572903851267162089701154970061554016968642549379961752459014050822223793141201519285143364051852964277254165001399860384138227774583033498663558455597006248305553644386080288523473397565662500974862859616804983534561771179316570419772029116023383105784510077001174077524475138139329369418430393715268979387053678857220636271265273806883436740541161391194717401931326899795283596889852473044204079861610594274738979415438752024935177931515523767150558629894664507824319415486752690105179085229796735308014414020832784345767768432819599975868716906704896923744951294188879681469436222281137188096234380215818324433802918699842111511676004338369560354330890167470759564278097136206380464997714848454961516073730781595784379750017724490045538786983878093918795075491679911970857560932683293433019103253818972432685060527225497637415070807169897206335470283813231332470347113882817307651487867641656495595430862461898083368200199077699460199355166447137102240276607017891106066902692074746647792217795054021323801836887939018766024309625328105698761235175786258786029417111405704430924889690679846015720497495546844798662390522517406141558053397565456310463351067175666486438999912906074640028042833210065530778965194217214435029803874145924307956843640017358509558464432507238105542764187862733168358446663636887454851083954169320239804749578278966791768534031030919475353222023923532979368532386712064721901213097135906366048346922321422875291264011811188227014129475437778907212972655545963693474913290369368791194220553211546332811655895776375780873611831655071448981232483299506415684879434613068035432414204344667357225804241129763919549431119179614339306581060526134957977670503588109266482865721593993821708401484312509095256752074197341478040671649285482745392104745904692284025763110912548331836569145199999945288200000509934782459884864743961030979942861066956126874284152244031633596832707520386008986228939979106084222652638878737045087017090774810730872851102465061442351830564586903927941870954377106334858611590081541419450729588417277739906161987452462192301417855335423987355125866931450399525744278340581929625878221448478141868040658590344399097410032808745961067951989555214635002245021563218189746980086529800940804351449653330398359724708338798997537550313081035759171788993163832641267112765574411662032085732609375297535406346353336853349936579018238340291695560129584505935621240861873223924927970776666029882994050448169977299944897192996033434311802472179707300295530269267756591240230877355004367000735000910428048360530489413501546705921702496683164229927302717073288528744577224439105144428868534543649558654646386392694592389332515626153540845500085901485876701560671320558766162704896078793872571241453628142643580532166572029700912640989181781093322877607175375664496970371829143153368555132948121207943494228622905032895679372045926113630267343919470299454509994912209236304620064509352628999691808521861819697381047427703811313309814608579384161747009867778922787838420836066358323834498945664319675496554697481950545375667125818189105372060623738203573267767349723200147461283519863736835575266279647129574463746443953117282660417991844911521672092735718014028629717583141254593530351187870483222690420476913220707116401997312920813825142905380595312295063221769504074084631621650578653403407354612983664282891039397380361379475540619355850278083141708814854953189861353437544798375518364905518032261142746521452644088603649041472150274321981779303363848434881282729796657878429044408741631581107627522358481130130480790285900914518365191582930502266077451848725329675950284155692258002693253049745310677319139723577644195059961886690283834329121880842669425711198286268040071904591954391593468304921195669526167894462462976153526646094729102987339235842481657667133561181712707402117276433827753543307037736053421581105785687883893241063158985693229983836434826069442050577798440369281626339904779387461383210548884047730890884956224410798391351500639941192782604423837352893416821531095153870501642748590546758702055360247359142890115249951642016463208202846879166392003606411201587592964935792474380181285641721131619017823224473926738992904403498878443222326508496912621069134231472207943884415078790122457103994353738406865675992053926317037792303515136834127063508803291291568531718907275780780713612033451843216460183359707038359239548057090512984842498555114851251963820910211963402919394686438199016346586507696323069525583817598233828820694911634125770167957019670438691484306262032286736807175899135085296333803202667665018425892421639723049581849487873763060495788839094933601120831352064066359965693972288664124611775883727663425326792667078386721223576432414321016126333996810964533665560314166975291338352784310547493049172891938103852678535606214182420236652998346216123424469080319191853448290982030643931135775083055734493646721331949902100012678223243574504965854180385857908758681078632123653077521961601561991698125442607132891520608009585539210186029960428981967873153003064184555346986468700511030265516947476090468313157991572711044459879603901708238409222690265177925696557418377651224878261689208359837376629596189223514465079596717926718977309594750876397067791552391350941678921839857662993094789328098642378694954455386484390609429179630147636021149965397287658942406713891339070596234990838376998457252019525037948728909725390220133053754458845084013798227514007792212436464923060664495134381413733551324922258750446259199609544623655193858537420224821143426559008727985579714660223503025137535077536258694618270789583396444467854110858467516495006918671958515058247728313452384860835811428452106980439285416489792861132218255939451195167308251176853806057265560528695458381047266892952442637970378895868829764461726840640453601244321983482435120978951514079945148776683779959249070014984797408298710823942978604259685604635337198595503286417050594816271564032061784329160765024967541780167689942250282909403119041242434978292826424758254541299433176615425191240198066947989107848741606305286176360489703771009315757934788561914681100953618167254622963728358826562758672804252938668081945483265035825582806912678729571853458279164618487156810316573413316405723327017194433446600641802500036293864329105048038913784190210805871987324246846582444037510253636178097333473550929867189470325123877112445774919662422279468673831005178001805774729811103033415556657971586287640231136072528222306546334754068070184760231928834613776553668669059360823472667900602725362367131976023093706354864069683872654997144283314487575810551943936587400293462146374255603391708385405231662172443524187209965451945864010251232059075493009442842023107694606741794512890783972768509182598082143663539696361504652099689700164278091046020854785133176401679409975770058720421562833528782352110406784336224026019947185812062342296839586232099323726871424256437937686787223156350313651649785881678395051310660799633131054809670978435522796548649759586007339288586663967647312427739185758351468253015148789024578571454381419749421142549053673712758571567425280264145071788552076154810284738133951002774124071887173428448062029349436527237026467117978248770858544280257928990835767772845993913146500078553990918686886578642786189512211015353825786241127482780328265016292952403428065932871655348253624633120284875111841829549361660330707505307316457524252030057942606077757073553036467178265276225571230681828588123863158738831481407871083652686122562855013499165688348402506988859254316408510531302767766955972079684093561652719782785120644972923285604846315945805637995299761143539937271797748784612566411664093662317627203386081107608814948966158705321323115342487623082499876971819100497513774097902887058596683847094966906889028717311502404453754757140097544517030104313283722587352871292796162231990674221681268016452171756140597009923685171111895298662783001183295024904628258866973073951221674125470762914997737884840432893449030747531349622117282221617154005201016141837562718013429252851774953433461642596687804250795815017723263829015815950092225032691296317706454498396027100194622906961787616827005384922379676419212681700445278520443429635429155207130449264178181508641807389367390382626515279457274502665228569784365068109371868249672041453657937296960226023645042479448980893786216619376688428695893176270917095407264560544228713124929485736392360969753429061498753988576598760967412776310499136832306671175519809607899244884784018594206205467251119153328558766901427039485110066977816922245972777704449633316409129036375885062783788995042543273518388072098234249666156982789151331573517851463387692149909217729795112438856522050240445300407471744040709050674987167612845120280866086943517673572871018659221303424830930256875496370788007535080822752847223776105949446582797239183574219630129506009820363391666830712148352318769035309381337386675639091409646317905448773009534340237106951963033866576649983839653275224721560775489134359173718307814032423334931838768602547846573798083651114904406686955205990681890826665262503709669025956616959656815574546118503492794869575467590037379176411190920385223460744154918996402385920553091128921104801533600453739890541783260686539595502191244216735142312449465932446877983123985604278634412834890030164883996245690294521495658049744977689339810151309491774706508947965293819720838604359478855923741714379485842250239833271855737934385784275096274795566539484286987522272622768122407264030555736370230206660436072259672649615829999924249555870522742359639355829175534477666067711668647379082997178690241843313388503065298190594882588029864612255646458690474442851017971981146678699099730425203332616220888953225846683068338821313011560439679012497808764218408878597064493442504096283273515739538718774012058016363443275267829189875273312187620519172428360263327458502429694454981919879263816957770432990443788509681651066413686397462975511043982574050536701714713190105517482121777067053491685018178755026427147251463513674393094762047169168316062429841568768839785738347330476241215552523657308071533088220878614308061277427869649060327743238846150658656248447601208576815109082372627174341188315039302284602516482370917940021773345094401399974408742118793633859598949836861983705932952023133482574617665730191436055824728602685977113013605323685308225225462171587549100307981772792171920631138960541892308556115952253744229276735431799193073474179982020863438354966414049196681319938799942240366894903075402409102734815215313439367534728308218707998211033038827493854889664289466601462810449722055607570972771771222511470574209419065142792245471843050098439592464894143573229691340843749627115925453655649756344651194187126491691855300609006530496853920162471547325042723539461964762352104685322251045615674470465224668207696301771371445181966528021183716788691163207919000757421897942917630900693529176197018513947868131924379984776259338764124666371680958749779956353344699797479164617480709386335304280365777181670251965582230883712048881213040956807098935260525383224057887564604640046182658537899298351145125577770550977223798344151384640948669863644021473661903107888896415075766238303251462258736098660598577238001242525471957646218301104969467580731692194125375707313960279503618029263980180946173506858709021680100912693121305196318546269670760752900074933339943651003010467373053496667702716258977413861929827939694933744356175238434885375608609046664145423052173234157034390566272146761446325015958879337814871471083829773613664082155521894670043487372833175574768295156284058456585925938207722566497224474041686098539056101887721759433269789025445119368636023752953408696459989453593866030840780220778637778488993584069777953549999940036672536651018222664317214365338797239553214616796598943568707424993888467740310800928598712436523856128856836988984490504821496483684477197688381773167649884012396546969596538011220480191800960907167902248682322205348351356917631598518735444887116082264158543616379886570401396338955972782993193833665435509699863850384758061316475417737593496374080357111156954789482241686259809574870849631211760489678963555757086906290027780260323549329586662227576947391344091497432706510040827756782502397088009727556957618645109457678125600307292651162107346768212535747361239981430399124369088018018593501102837617993459569194416771008689290871822378696479798818758005077445129246254255611232244003897440706876515790838270599989031124935207321735824716232832407776931219031155880348631643617164559195336754442418087978661198690931319810567078984059401751865506330935361878469679080612516508775309091090795916987281683498710972603730444147304369595461539467914432808175431758269816970356773393450418237613926350990130640972380986277651464874262162484992096706383779206081340283233350608208474424903883182072951529120210349718742588229491291757334159470579541732755337137319012067527006521388994898665495254482534960746971297395647654655137126356951320434645558727528135189857913214795069449716337619088915026143321521678677052594107557212937000019426793775449556911451135056393917781542223332286161431454776711475997910808567832677877199316433637129181235077858168202027656453153413191285725288523345659005282334753508257216643696206466253089884441109421540600853386057130953021280044932024018629875975768965882473849301575865489856990671725663636576031855587884783587458078136334733351783865888368701165190129545525846899064500818528659377480496654407436038996406464422537993932062764479947036333812245440505438749412979749588919770545101842935317228752971132269550581072899283485179067459811453476717734712391787279709139330899348996388431439736429689937448581544053578663043991277097664902357687996033951787387000882025097341562473890566613280733832143190888952126176098490187903459388272647405593643006448102455980605935021646924365289841550411185245191608620384506048276979734668957987737173682481673199693574803938625831044525350511954238693668755363087561988675504714162657186775680581267092468933200254116764787814533739744292632031931038733231084407396466980726988400028670776448210949498517848882916989204287038920498186331300257731927675361974520309170976702044440648340715519513735459670586824461399108733325371777235627502127668947048710440941003036328737793204537522098612118510895325351043489436675212112360731785176753914126061550861106284088482830998673301893063877633704204501425484936824272434057387382811096572590184852378337918177589622837434672048787160811728381133201169742761484083659385814722741161153573970627001797637081856729318412694050095794844519288995887752883340524116025126350961697594114131504632310149524547032648590104648724167099173311232920900278892450283070079327338455980491828925871712746516706846718725749765015982786310559222923946848635024810706398303108140564621934734344582553774424848621123366332034690296360851341620821062851967580212186616001729872455103676816572492735897128310453590563052806135098632708353337905711289129127800957607073876274529510359605652896092914762701748806785885088737751475772466776940628715089413584366693625494005470321765876043421604685105636339757262704322807611308219563068339092815713432146367971598273290723940716799095240716018783671840302544050875790464511640878164965859956513171694813273531951656806877466469021206619652209891763873447909025707924062835395038309094422881196002185633847665145069714538495726045677276953787972865744027059261939175211698646676218419123110053934075154007117220039539840350558971866964905479915748543878290966141021025572865023088633371176707558929012184677179858887431384705178981968332957403779419108165115225757855062934188497638903140243255106404009234652342297278574842606883022130843955561746463400688718966305803958271437403518026592513076944244756888890694286716659918410945877710245697840500304716679881929924659542932648932256129000178853515976178647655948378051382107880064920651499962851689809143884932258736215889636191833220068776541495836030314440560653343936856180891223086930919857622399533759169253002398345717232729633484391705808389778604551603714457721954087160778536966987850957252535694760647613029249303997012051547456875237257966391029423868575526416913794256012159739990488579052451193136345920245538643073215781652602562413496921831773314583806757569360697283035429267602196804995709372757474215375826318428342232973431297177127609398631638044880910312947351806012840210162709610145289761903000194099759257384694739573624923498337976863266548717927651026718485428863079682393566448291738075839389195367633117134995826630699025880071009701205700618150343491920863602245916780706107702412436411823921734460841945417731557001750652223668212823914675419690543216156652563341169183011284344364685238918558781687858460807470511618988338994579882937362964276829749578498093749502907602217904217862023678916837574641476766462991042373602677577816762318923330345173442614885872387203630137505171421939852304896099060215544552890844813817319943213786638909204992579838265452186909246193059550089332160569179531315134853187782626991899868972890383566736551993293856485588600782443864677755811323068713913214394605455633491646777058308880663305919591510836640146466029129215724906384082904181850059772542789235680855630855815624048728301729778979325668716531451863702449086576692287859316661888640405824864962275833883237145519530812279970940246742598229748711912486376938540782422410074459483267501389328865776443694257973157164306983648183696962403714478284353428790179271797741265363652962808613464928937355133195025708940755736720429755350546290554411750980959637614891603528012164779918013302668267964965012782284242505881178338503085076104519618260523961772206469368693423178737244007367495778180044845390285389058701501220270444295521242865936352199026714134658469053324572446331776021225268103592223991317070150681698252076723142016309270421971871599788884606227196121870428267858497813923444742084000074952858723913080587606467161368538056851180249464440841739766254250003099364003076333719489397961896459369741475970978761511930591166174910271641345725358245766355274927179940316719343871775475980286292220887005819748490298776366381832469232997920965069150867338723861205083824609470869799368562406690645008597112624338526584166542121731464038892464410685582691502867440518437567346385086435495767545213077119812266822022131067746199624101458526790064606165734035649211482608879827908943712469015227193056393267755032826612864583690718978717683574009436298012529724760715984583151079692527043251884733113204005509993435460959255466711689779445268055279307490321906858164023144621489656201056554826269818470974582810144811725622282481111735494905921643065216853744703755312459401871526855403207589385776212724366343917358699246478493890170262409081120264240457008986446402796348903920798178742490627413259254732246466005347495718034478297014839994979321243630921239138351230953460280070370871129652416862491034299363261801757857684163169083198691274147655999066655812442127180322793814528178813489876467102980529847466853509841243872102841767273361063476390699237146778103836894055788901057728160757389689728742916234045450966601149869523836320888097857975647857221258565463167696199777442857453094077960415684191836631483053911260026236941435570274170878779681575205308348961685902335353265138214661288551571136813133633534443980445949248191168430809567455837565204513141197174251342867412369701064161404917274715084000818436722075271816868645701219835982755703340419311797626369160151227395748473332856906303328654626121766225024537524412961478299565072430697759976225529199875231908849569715751062247124597979583545549744426402331742170863312001729230964090687094242073442851371224977096413031900286864081122587142442791116162145099373808870001452535048732651653868233099098927195350393561561159611832783410823492955168004987616237434205784115056073081591336879857174790753056482711850902565632947073916824543664428639499211632888516560733932123556619785931764452343551454802145198603182896029261462316568841415440684102060591105169283877348407350522833921760449876711559273506608205575347292476143554928049753188662720184479795626542935107921528353148676350622047303770113693759317320412410607713297985277037015255709934898205263717625182756601027783794090290287691365845914179218441714598724323703658134384864513947231189130044571312287446003122760896223605874915673941734147284178466228119777607730625451359814108794165362420680131857374993538845645486721790222303364948265516937257885368740539246734291975721881280549212637623707287220208137976569532934655065821993891851575240881317536783293120276855485615514916090883264362768937608749766919959753534277096168224351933015576044292279763472359409734058471711630858339058703274679606114038062736588509023500407429171225645689717235228051152246960179917015258685829636180076235131209048196760041080502306982326792955810010624399348747478909121231420835221618600036075961352886414257424951316943810048042239949712021296533969113175636698626631070043692922875391225380593059074598098141805656320517232853278667830454415919083291898045998278946147705623446878350649420021618829536845206507780857835191222898829284736308777218390375522552333630261266121745494723032404968364575342804214036445369219247691975026771989632510490732021565638919163631170537583757258351980604094690096108079163950470968002019783969093127215014005178708531720252490513353899842410991454811254035885665312153803469338681526283674483889099020939831853517758588540916965967406780397425356066268007143890406236789769949104811150121404212929085234161700706283824618093363948200301934697780769823100288755998628243684443186810850665611676440110651457452762161185369373857093796450667568406058634111168814140253769496240436455682927050963984109831517962475385412431907070015158435069555746858994655099161351997998590906888402719385953388640396452262195178396171244812433132554264296347032063133192310381053354144683275546207501472269633839041067726877631619685529515404205578339157685080405689203057522589978397303860473188455628389654988120038433642174906918111163769307211412875701572903828300578169249353449848018593342511399206957626645509538508070887833866100427953659235720858625804404859045666980916190807525015676698551500476799127393903572589718197364996401966981126166767459200823970236791453960796021873564927456255979798965556686372558726445399127509537181078887909918003050966963769946997683371949866671180674462729595017736345311542676175646544176959066719577120162469750306972877479578976762869131160069054862813708422978614399938033763161926629690608747097534125876377584695991415834364643492187367911578302153770178701476203881017324619041334802863704627802451937055770991957239769744452505197335258495474240849310990849634297544147082222325873215814999524692894235398537724654510190265329122391292995835613408422390300576171229252763901795801987235598269139725352993324146646792134820499142150979068427904129280073040818320798039717074707498210064887001377696797519741889283683729168155320924042747491061694272364799311877281361851951742247429729476801704191657473552142969175084942990616071107645447596292831852048713683915926546517302438112207321937975231477144324313066526812412756687364138115907036735530958775650385138248595059530285223301778636285386192003260289635960885820574396064153182074970010234540219252711353859458739190513110383527932824566581744139971843038322359290903340652135502808014559047164228731745725621418931483483268360072347306699388114804961940922916354201841265424309472465681684276023247092035806551263010525945396909023110423047404517697152525303495862115363717009348656144107706177858535424982161689249713358518830615331670956801126253988131883882222514270608971649313636165954560442715829257768547965161350899525530959890360535571580384774325324883611830340805082675519763723058022162048831195173384917922954360133940026608005282142200676031341655700489374106284472845710679540140483403807191590310121639138623784491255883564809424299155277996765274979408659116145031175469243664254790450756027753473385418869081089085009840976835206339160798204624740138356561148580152674277778951021502699234315037880328348361229932359828397648018402912731706028805948306674106439063436970585506470224137845183631497400225173821395761004366002466036525971542767397566531263002178757142079299531721052944729714034344405981051853929893079780436587927788730967621737300615256360371590602152835635093295772534032096877859058967513613319548870430445719476145803052556602128185397312587206534404899450887996551183945648027367739219781840077306962339223323235031998599813169715853143685496928128157674092716835018528847126549155631839344520508828521600345264857671565223103526424477456594177512741393923724522231703918282225506979694353352988162369844625888581779227562439641624883228614008417331867041887471737604794341172874721307723287813431041948111484319280316848115824603854968137132921836134567769152992970815551218929090777169034135643749658623821939247411914310498524474351055464569138368381682349180745732769038258122104976773302503644963518433016308931449136094464102085164987290881730979740948294084997398019241956523508996168786142836556531264949583237016600387738639258780704937535712340526355768228345122661609038416672987926676402250724180177626996486698711507116220733785589809345835559754390960315422543940025156381642708251854740069226802115522000631638775109714227402982527362526677690591599323200972006930402940870641295440845542959985377506399556470158005096245948920844573247516330116646746265906024767868690043846621520217311260168341507832800638733027135451710812994458542296815742417371092768320878837183745617568770067198567822252076767901075459214376957789938161567945661359468690355211330290705837450536165980013502459169605230957417902212846781819541633532629730052336105937644349053592170181238285257115209448476395886647648674714753552994362406422007098280121026237745580251002868500447567036231375530088798028214506792076281117772784161307492806159803343973085427638811703189821000169457647750452020809065695921180471830801416977962842657421130131390071115495822928658360647450342787017659129870513492907922537817977172339158021469691733461050134091684708333643428391941196161034803462699449226585268109091900781746236167983514733593240046084668388807077922103620189560331556515841318686997882488097996563699702500486566621687265333017974663065953114181902896275774072708747667921127885452216912870852463232370265555328586430519314422929040709764118794337616722642228532659378032705783267758309391878484762783322460531566557545081023198110286757749571768796186586100105087100687481385482732440696479695972263683905205388777370656075003849270797088897733263524546971102916331915999211214946010406934455049024888590670358308450547495967536321010046499262124172185518571691338670105025338978531053845231735318713564210345517320290032823417940105558355449230244790653390381870488029067503428870964533438750748007110888224560689614099148371860268550565969242969614182941632220300692234397427220194916513109184850486168859457362623027638682204140406946489042307164749236185985714142219171734802742263934600412010903788270921249448181677834862955224900264876536582062799628128326480953263167594847922910056246880686786179836816975531555055054713323840217263670508828472260997565850039987244329163147295225895233875529825324352470115637517061841106060587825760772462731246694193705983834793531348400371802466589690794853415536225799338438609543793877177682038345486393289076504263127318686910189022073911199075932875128755264338937637297148684006968623112038989560661815221885116775742089518014266845484496894135219722119506929271998962320338991150599061354506339994639101725567592552318878092396065987938762121409774758125919407091286181093321225124124495651367282272654878267536756456704055237640059526922856848915155446350702551746864379610682047483808533042539305018645394519848711987585961481575769059858702891475232100414662809061830497186497735922588406141870902152883953953108620807976995381765838184308738216672238778955369500555301289630862022403158412698043045184859861979349520944099129819323634117984496501970908849313169438669162439131765900567418640721792257650789543516443702375151416947688629075394064397516040275947637304328603624582811556236551902389203430309580472200033679623218183022624326701589524832775706942969859950762581081006985722393012562511483342804952750069075180039077407581901319951812147877540090633206935088100795312394944531880809300120838990067067274209991837715537865685504165292721549243154386320320824871946700674962218907439815204732633345950161701384629752695807271703702792722656242624505532213194885083851862387194673074337441938867361561499221733057952322686864166724984881804547197473031675725333798480008646598590823192654748819694972940607931162336982171894311328919796518790397896269650565178227991232490721063606394968289400560327398074289832260938946452031910625229014026320053021507447836898179288925726414529051488706947635479171372293733647448802543715603084362735739815214194735598093630555690090008072472041717983361469463538381049174828343140506631888560569104386536561963366573822590597891313961896372350794001627908217438245403474928326386535386615832586357280577918483986743388265127928898167021330895296745182916376674041278175431805444778366968475687834756527818706445549430018601735009135812385776450688496756481930799683523646774998271891794076276597037430346204156000395475920386169136904103392718217782298304250913798500750403219263546079032757822475938621451749957323277413632446845961067023423764943537453013487563549317949309009978517265033191682938871319475363964318607245628637922176361179785443027143296212510550379145031747124441076736469566454489681246659200036730308694408875404683630502730372367309417066429599449139048170413527908335940570515265044372790578276882640169550361714073400181751462829998719320981336088175064365205849397342016539112054686812692090767188587155261188455509056649770635152368354268622142005160427659122745387525759159725350725869773916882794262369611467230804142359322343220313574747197285244644976462234285759841385999338470086268652948411955826793018584915209767720605749511012254033226518063365306511333163703988375032677003856233178913185490914475349449857945068484821157378504061672390915205901325792114908610746423512535130538854480162866007054623552097863032270725133184238375345489323576753707738225795689031221337664519049819177081350331962278618553006889743686653974952150596332450992963682539449478402903178339433490556692528916179042179169747175247384950801566424894057228179150327472050581023365528629155043679604394683890609610055649049516403197263198567375123360470934871255483674565295746990036041307646118904358931196886072445704419198064091546622511595207359275894612264990326660483125961981460116597536889666516853842681238718272139324862549225287089147345844104615736786883172761790550098276237468596954703594959913817807722229746702781608743336084548234142267128378110972787028086226727057267955873710339775403439274214371774976443703044305450990966196989034933925118510559508670346778205300581267652273660492423333536091731223297914024852737051813576327432876604970874326489755497851868550478184403840689801495877719075625008359056732841331833631503992500824037182385892914557035825151632417402568561714339408917240727907443783336599037274126188152091597251182843400740013952538408837100573173685898885836901148599451341198791987803779368880583370568280489683290099273212122479624234785533231846950071237705071857464491252872636529447827536950443604967886546616553713962292791441160314616709796668410785208644379994258934877594102078918559882815156436653582009724169377621006511155666269116626960395801211296103875949118105167800688753440120665827138234171190612883629725648730265782181331280865055230669297339382153006942954608392275993060732268407364885851219603242540822216902177907392494881637679452197131514454784499300020797897632801293589294255886632068086963766717461082711081618342527947816503599853722929386588376795381675139176970998906606016771323126394200115938698029050402666470774037467510572142717618977566033732112456612056293492984505751777492488228495313016328539610292916392713554621345302387533096938229239878731268415548045895506197099574594162320332736033584906884385546414300220896347028268206240693816832698549251553698011420217498921573790666764088085959588643659785532335038170665674748489404845759292449925101859872250861204582927719750417190768050200686161808729273528377524859554396489353411144767816357180783491453790253559146200629034527070177973083005949302667096177317333901878264210081232138854050284616162854262069701869976292114498932080845797445678264403514722492704805445236078324550691587754597497197709256147743191629183148993734442873839422714892668839276002897319677475945148057851243965170344900646884595368379510645411716648273930328694350620406530133660438460605997500816520579816014857654585768214738795835343718232879945766389244939570643555741370336033422603979961830007501515755953224016152727986002452180354647624478232203253682641801887416241698495765340582617882593525235916629888052101872957865324338064468219075964436873424320993321250420626788410484498510370106208938333478105345763359318037588700122536787786066695742254845409907846252773204454317826301056066492662428128325725216782321656899157340420145490766788883976086905654414886166291050338649957075879122000457095524991527370978977149466442035030149520250563659898669089894525747477805191794323501774325694129332027598179347995401524252315597683918706593688760480187225662842203069519274316515845460282222364804917481359450563250236571644582925277661873335977251979188239734416650267843756063972940063688104153186611525266975015562462528968017960930558176393169754841237620765002951446549638479618943043714972533590298898900845872441449521742209988222565791296252521733931774809033673734780670948045197227331253073675568529733561090488233564324487479868496348895838406608768911766534798234881182083994658235955870931859440802104595702315129231789431725205881644579330029591893843288239837065308968161328832120509546595519391684889858901389764094714953713961672489832823089179836636266418080900001063005294593999588057314075501192915196829064085868794393567502224958402493010159327674105057253655002502917847911772753874584240198861027533304041034004549633659495171174382724866437423150422674908110491292382237852140177022568590624012377176291534797292550702345309292778983755963541397745442166554155571056531536926391889425279958052924522297759222916154228067525811458782715290269376055074576615215460243041537587660383444152921725016922602170263193177122828674357967432164595763909871204101853766703373088979593041935552808019851355617329364097680276257177937259955503588283661295019084662238944190975090509971001889958830450806851117371371429909911458988938022454017852376793212180608128042548622657014017034732939131997794628907279586432971536473320261908093555220177829279830083996939157351820139563611396330388459098014430985842912427479924910692945368419575296812180839621726198224115469485021240517199851867823405722201380443283520151270903912908108823040566025704268667492007090276754602310601895544029997211326768483407643136686914266455390002030353074657135826402445011958287483661572333443954314838281002448654602131969066501851592410154130856690508670539348251653156112464689310873592547188728664904322610795326047833683287817695561311084831586538807565778105540184273270893215866599698621075722475014311151149463969200774791272012685894098359014316619030224625531039390578632871602482856838044335999231025941635799400897436721989183408184648326526015896614459602745501908181931427189253546098900414411422165858387339818079652067290732958612863870387506309894310423788919105453140946575786841894582054364213632912569255815010440832988680885013615388657431894637632559836748507354265297486558476799858428331791861107583599013137837360622675239875123547631012315838076755753654577751803252278723737886418937782420742207772552332511853034888239506428610240108447125998650865668215590311636335131512982826922397462902043909664319501071520212378710110441508026763549674085908450952693367252386623949638452134324282207214863712683432803941197828362147837684295882095277351869441302673172529847534840013593975009072786309173002661057598701724752397180529001255591390640495106161313368328355434480414153275058688920085364396000964823324048653938846015488552392557251602213440475277092071411813115874772802901411481443375923933542800637862648153466340732525897487194996974134649702877214309096573271014413564395672525754992264733522811207858768941385274070803346711210099626723085753454940725605318290330325605706432324718838526842856609376186104807825741411636016112606159863353744595705408331629909889688903410556726134387264134900364611766906684850351568135056122702763725156134886451601498351694803400639772307995382573339326534658218435982285219062549219260441890252328776766863591442924075831999085316965013204764606215096126091352770188778583503678694330543287046360651216030598978299137546250702118460413061178109969302019996204841242974085069009247174705083527794015445587981985066381408461560023414994765211490675745765243217368248995359506550574472717769660540436515925787532368094350307020223318527653674663522700446771607825849853345765998997041618533005126972612908592715100384883961247480992949188015758534341550751758294893859350526402738433556324532672281419047145143109050714483918036078960514053687839042957245991487481633167438027165708600480041464262712430872865527820666781504244383122458614034958995370552605651328727867750283911960104528656769546908155548229586354080677561037123402075576407245133116529557522826407732762675249946386612358946090607954147005541062299997355491749896179015497259047286218906054843103971247292440614518013150806062891731057035516670918098494495321332161016434048533478557821839849514216229770179454579676280429756812377089792539058264801901747366983780978320058954718198680455524943324557807151705178084326610874046013582908113272916347853347976822399300453681949038482119034008714628622945354794066920984780276400375535815521851307549677611077789472270041385477662842274798113170773835530753989334290641458484945832241661846586462801008940474676385507854669293439368668861613660847865272981128365376416080009568868689534332145531211481142457784862049745332853838056810595235679445170152363172992878849243146782271332128701354238671807311164219082112574484203469013012338973786565026961179897313747956655700887316224951928536874960387174145345972100771402826129862158694609279220151541467499756758788976212772308749360286398257226305327388715224242691189275878858057529104689283606850361538072030536941219509237513243120521880580857497189898755549312802611013889359012783118659038163023002572105318025804627151204177052850737985940914081556489827148221467471934190068155761245148714352811906675159075978051938827487396761033437883032197619435717072180604990722907746937306815762747288038463920728736497493392139978250040279912195602222060285747428040463796031182286978435730157689053427552339641289726613904719614180024176013205246985586874563837096432598222381748269279946448141846202806837168253117359127124803366666377365169625386746723875027481950434071507901841690993593721107049052263344087837091983809076655010064754227938560941851844766431283199698157182982441560399493797004702759980289380815660779667692370988596764409508269623331258719222331151410061207502565254430848488365553467258388361359287434195188623251010887060725465648730024901151933335699643053869300945211461422127387549723629366998093114792974230374542838288473196565383177011908641686357917897113924763615203258266649396295152816269244503662739463884118385710093162339056510913999515293055055833030794523419412740186490808896887393737006427475683692699318521884895436658938308650399598004821338462003840970633166221419601241120162044853443943970737631206733593114144069564656181882062509192660052133435265838174783844305576432459165937313687506621524417791418547016419397922766655420488881963825309797517245263649889834223900112664704770882793056752562489064244315284577903171859452899148501564982014963966656693194398008174431482027761614175908043411452280084294564291559347559820787982349145949328826666388485594933152380086874519060141324980140376163112961782451610641886490430175246662664915964841115441404564575265051829030576548309512269886428424800731776423902118738763465012270708119880043842764255216872612241717774444597167182218210936806759432753340197251517346750129915781390174633406587838336225233723968698950849328604417810078377992100101798992409832135912781034042368960157551008464634966809071057942877417445052079140793331439644953702763323986319191212285023104045539744172211314122036923715060784804678186925838515522121700821995042620217632116523332222200293936616759805909565064441587192842238529843076280707344823080184085156327906436280086705870707571428781296663065990079605373260910312547250271085557605069671502003768527189272028495749835055370684177380204669276866881003956474266721158938864613378226645903647922449151541448760059145740621276635554209513690182366710490895215758953704409529423164493976618043931179651760659789029689521528442831078589574533892734274879116519077455550747640803289595326969008989811184379222057744467206772006839313841849002210134937965010327387783413606668551626419413073427211809827887279485296890726417318317812643836192198315428767908227536092481645125222551309276454372433069136593440665110172239691496629065505674621860441287695939152620510273563155022234290742075100611611273439238949610440459903520757439328315740769597420504182747043212492772515479678521372052180615621832051599580374726518671268024770329211040312320171439230675408114807787734858012905619130871956485482346175664038567700221083314172032636070650511678545391229039018489521341442655210507129677273192531080080827385334166892811767895165300498616005327041213541384235049397588634761039459426860263925200728146516241958331531278896809210661289222900006237806143745700144993251353703198932298067064132976453416913542709681723708058762650282289373119643776342892740434666289501072265840956162107936599467310751514753384139201038990768294347655959247228573082023936649047840246047926906646164804185732418759486325130567938497120643315742932036652442890730889049550529678489193877952997172053388178369676036101722700420730170475234634338084515985650573298992424756565521715212581373203329809440280114099093665958225792507037945971018548594763126751386573149090254832373084388555512156956587858931288218616525721177827660734875545099830199924940346342679190606155727379615310849100836655734299120126870801889211280584046412461427208866366825192418737654832841482545382200271457523694558315434419242108349506626556315039398588051294611239640747216866449487371861155084804012514351742658564625561731488679907057403148892127592219051691059234821425435966225826095365982801027961238747225900795324339815799037990809726822513014601127704154393246003683010563249223348220212005253045404690969781605991155240614488564458662391190745794010786809074138402579281763885499923204392821935100097603341124375951540576897534110976404347124520373853361804094375177847035485935543139343516641846820831023046470238001317144037972508305243332447003637194080050447316108500781758382733717002780968293242984665019882144587351068855087233809384636065609617840746375605480603245294886388398676494718200445035528487768761304355994203790283297483261141338617796165299176120133840673479470267553836561790678122273850399802759478595619096479880147748220157533804297038196359406508155975694357812843980471885342590934772089444652569841100055248507076513350187812116906061126770458504728825670411265280515294036436331767045834350628880942767334560924447061601835769350256551153739068557156769903065399566740625757728822692332574733426857870110305703527699829243808172919563026702495211155379778145119267995185108616069921425123160036104353877895335855485317942338372975861089215865749223740582331816346675950830736744915983422495909859693828299610608541980494541662360343277103769203349843519409628556760427990382844591926776775214897200627061882670348358641904050310026696248001179961746346772142773462299471074353607106341661324086131798897927678501680227975509111927963728990453858363102986842591002618227847099524766703777046696180969534843920891252305683272713408529795675676568041765844298545091349534289175595341900651540861539747451576521072495296988130669072363918771196139327519206131179427036543667976959758414807016335273603412925020596053664001139423030715718970567808835672735828335044647116819876019321151899619174896525395227302649478938309797910037542766272450630488906232269812624285989441515949501298586563907763498423443395512093242470767129987549624860514452007956683171851916551392193367272679970065357485357388880290563802958514063612859164111247437671588319191151003496263223901896937965023777654857891837327543383736119166827900536527483175704648869405398629865973009662177300637396120845888617556765167903578199035951181357584957705746543134513789569392116835558988221178845598120691292755348609548261163786726907328243692018142933641807430514346894979133190223402202202473649496232701601072049743253107000105305434269314361719387088648432188073508238329333517350934489780118507716798927462450549590684145480436417725144245616354898220494169255633794748446422739836842132341939506903432431336260225925883916404415339348504145010734667991704210888137147747223707655312834498015781733519305649926209564254100915522207503931859081173321400643377930398882243036660679432380961647587987301416984032424604540471632210301548572313687910371018597060206930383287654012197982776012021854713643751432444359952512217294967165963861162251797868266018822943108971456579875692835028069792928782362271974884745863848954216182545562535003262865711952781086114024445186587538867501302209649710760001462149967724998413662893757490820325222289355064718614720623186344122042081612386743226462120341168469697636038342158420739727477709337358524236176011848994519518330794283852253631282504839692597929801474216830464034995280917709030590015204841188011985976975077126212838700503099994400180584820743315627659670683380913270348838042881043614970642820431154556970318967248383865581849137941268599328502303908093950806983411527745794962792850837187600386219913547611791121261044828583717570808316476917459798153098141643393735441175896689047515917783547513778243723024739077813805661699406192259101783689619835965196736521670834933288045130556655389595536271848762591359512062216359090109716008604895274760984978320352259926394244646067868697389242341682603795131799570092760237433639452901844353706310167419952319747053682887413946823092580070133299221052897466794755439332776941656535161334703752083466145621213356951695722077804414526167324977864471299164886805640201986159086284923775219249870756954358060021321961280708632798449386484585879422477733769564446593698750053824368523547045591439971391167414638469257568966715498780155346074902424067521028308385460145511191741559186880998430166264352678673272889502957963730114686241601879296233174458294381247920449936201005921010152871967021648359854468106541236625774100016528763254737931030636773534653074963047440387597629076070397859746182322193262407054101051836073227963516474719477270194351441519964495891232636246935578709674240004808092287450683730736800650589468427027218763401945648928124296066808842000687635585533650347029022912052342195656865827923920723800927158555847493255503476940686581573958600452172191546240592994355143347306457936986242036337490109923509743323860517247938491784321796658054629434643055156194793638299429537686816809989376815521035986708098111306782364322999377716097298417293200068403299628755938989687827044006087047879641787949428208620649486835129017898896796049885961099067585686850386186633047864170304521254154251071022365418648293659774891205291520487881480167601070988058568351914750705136414967339947776682129158032619749965415545617455568835517260112523109591418036941992555833885643303772622293592713053786304833784342980051239500400546777937026860964519255434683971888955655499113437798962973753914348527494712957811088080120713519601429585232413871171206467333320445511345574222294374565814054719308606239503262699563823534916412798728383738233804917594215726954745193939062237026709699459980332912267445730036121201188222061864724371489843270027063574968029474791202350683348239831174305039797006283740079403351981116641733049958360182118863502581831001696840947867937471723306226046638798810708634089960752313468188488201892189984092364447353076194825376388217484127683142058018342265172696937019083353675849833675675387324291470227461684958015469959831502821531213641520486117129257574727714708618875521490169045410148060578886020575245492298199354724939849496762150582135056764791259636524502840884651400110959956843467308251406902778325937710775633781869803669770601332035398991565660633720406328296376849703879719768608650700367964985355978007414165437976301439341193209855816400207420851404176256152301017302959687568311581252973176876383995260017199823653166023243340468046267340387706436547920185809979715568177097511742272169752594245194907428499425709396560066930423538638519766244127220920051784356524582711528234507084554849126728203382886672550595202670753418459903516989748634306930446752834476083575832773018981923506672349786842799496197103841378267603072564203265894594814900718092334806488099536836853546546653509775857678040046386810864997062263409082940541421704912039936917362746819283812111891503815423130351476860578167598298784066936377796739288202708009680012349661636935638900765407651626098520558395085375479591768214031814600927574328647572628863050696240415200009854490176896026013350617017713836352794535034000936244560850824955436790774483428587811781664280090468984366726729580855535853313083881388344803735300040057409672868177535209286413091566013606858393778998213399350837720232085861574242966590678832353191146999575123397106398501075426100886320922893285115844595724599219732438902355138299328938253326929616392917979292775192125468119992642233373683120805738971955552131269111857917050302109492817921505523111946423590216962267452693207261493381159834338803734320419846271952293852086961033203497087247260309839975045317471664145735976080433507819579453986413391298852472308714386607194604248867020825153868097704322389105639950535119433078909253895865627542278012093580054060949072077573421656621031022190191130245789561244637524233615557528925256320665726076661744977175071018465467728086001454255570717288818378751466880038138663649094819472580579051597059549603334553272343794786729233417541983090773292615521025583533942973145841152830465874965966959283832996509573463791375201357783146413188835451715001233875741902975934339844049410851209886235475347574593842795512911863111033050188828976782068094233487224114600792791587857310462092223240767687679232586829112150751977756007397513587087549954652277579095442865555600584224804944154951252883512639624467135630692230205960350635194429203546798972757546247932891529784972795915621619308487958327904712754460839122202718621511398565214614819317875653611529185225737618250775188663124036894102199582537130293309127930950037103720702197784624123200604591191363003202003104230504339261028595718943052145890220575980943699483816086589992400554044589088489567258475825717101622070425431465450672028205973280779171078790831343136774584581709539835439013006096667165512879255874252600061355414654492155707705927322069005808060239457746632817054120943785330723483612867424716954185734730196385075068330317402516639776558024470564753612875194596652113856895379328255966408481552052665226765171663059192192381032579209757049904818453196281235020675278057658047634950833023754099050411652919115566980207120496992349308254946820409680391478530537371435479287175023066265432588281005378545376647795203457478577178957271914754722958742797981427968647392596106719988554005302691101137156113381126502124699720652523668271274913067725792532141830290194564530083988870696578422700380960221698622778339634796506445578771916667773598531617988766087138377004891683991699509211062125678087786175369243127338636685831182131035970624520842767678408605761628977931099614901561357910148022705897852422451833517101353120558694070079603742992041592711337890789728687532604361356690106623538574898385157474234202407130635850216232439132314641839288195642019019998340651112350310246220841996016497804778945801601712360045879171059074300562757970785242285827974722366207793750168582888285601550456847035127700787694895543390829529119320074225741013873430175614010180865835378113782670426055352333875213239904797311824981472881685283423562930058947822077898010694353421855401573665070795164952554977607104226924727132292838934289055230862834999993056115322281900393758628627123599431324429023221750631478262979760055395186911253398744767088665656932461968268873045244967557372868506065116673393133497926283068675304018143934361697920004562343080011761911023008453868346647003691743839165459599377750088577848987157206278742464719746416238503947802391930358377019635020796653790564555235769666624936990016042951104479240212866751196320905982290065275208382615307671394652403506437964625174722156955441719063369313165891019211303236895870846020894079578594545040617404254544963545658936677363024342917544364879128115778876745323574667627382453439888175517934948335496873929940594045162721849028916142250768565326468930614568887169825208800210330882402771887287880924344511599424545165481225138959323325843359330237150519324540883689912783619151519277845832878904741759505962185257776411682213057423633168282392237187027274539345044682532856240520331137552015932199356598920955942081463943745955516967678532243579456764317185834580993433333038630081830807869974663719306671216241602538488849664938093845484245183900535449297992280590880892520818537493620705738711640259084803244096622691875896680738571926971276935775128276854150076432729325441524903075202068236525012928593960195724613567411320949684214826258489636248203162641114048453900762053590734920875668572014127902339828537435889833811419572766906291168357087928777611079004752343981912715164002339137263516449762506329711921660435492251532997546990102460999496419782343250402942173125036737071604626024400450462927326792440212880936341244550274314519923236718155814727393347285084008108781619313007802530458026433856339687977577601921661686468370721394228035024700783230944951097219305180412039552778300878889752192989953929089120416080100351788955173799355219661001274474052560466525305355595718270053774858767247271891673004028072283749003183681121626392747230960057546290542496150167865542269758819554225705447658188107998602316669988650770173919391085359141063133697475917041479941548869727649418108546717877430844354128339991471881649497236270823313127374675988452396885262164352509643813026340796905921282809940575768769532047944891125993515908362742853987518559683168556815637801275716817044653127540139748656808437721342694489586132016250034827145266190835605463536214045921230883038267899830244393930894340496709815092001204969143745705841931382359061564961738294851457078763264998467406602195795974113013292298020161124060247492069659698221148693981915882495533932259655742695647478504938613657447381304017127957382410986753335245891756012291590786996431029886681505298099084070696570589324293896948755611127106819074710247194265642796985003271928351213128436466836572464380438821560468879683307560243753296751290686137564370109578889343572419810336337151800659604173002229393821372158780813374705413330553517097853733640935850998862116877071795282968675713297987366937743602019731230845813737613836820583178829923878209342347107459372128957123486203167493249376485367621241010901200651657717128388895842700680813872652510893147902598363203592118212845317882591598010535396705586079944516853815830462437023353110200867403862209088002487991013733552681406603299213463065707068266317183455906280406484509134615106601245132618129455726102222403337695071389998680180576484220302534651948847137655096951849504317125078684356712572873895965336194560384293696930838216488890391254114239412300158588575687984887614861654651616714167822733519354889414179581038950816345228328512812844926961605344600626350765940029641099715778389918872290767462905552966770576733224155463891618499736511588589390919131613775750795450143464056928915479655164150630829148456167828007735721964142324453485680359567031484316959191110331583174755694824749095568643281328610260745809370202261292738768968481756851196797308460338684584854159037803954202152654401784870541301076297785511981257716018288417966039310956205841060686181748275684392116706930544828201949188094528951136158017986531607783114962517688572489296931051475757542550887700610539542807779544340258502190827092051480228581390707595268534034458576517097479675567529414871671713018715228353772494988708775067355824562022878445537987682276914352149663856185104916681639808033752636409206607260855676058348523705272860259721998134657105865252909969717815463301984299361639905928535171049360098819366158186856791527782748802818255101512220635527857389885663313853417455466446631680768116897730176072503404221199899421702603267835299517904361745377777803768559699673818520936327993622679562488817007303371705983045931545030031076004666265497835101967238455236701940446236076033818940082168837102963040493924336232338395214252503586100151379527487986094416669954493704927692877218603256365307318353152915959694958650259166992274619025082883400711301589881333460485529541618961411677175295710659524072807084435220606504972307106272806202827533766459505003968584708069898765338424772271040062840473013309844172866576119754200829347338988559808737060945347215942509923458282279314048707416831742070371497439752276650185265358210013627733215705080287975950435998317103531493662874555631609411990102705434257118348879617901480849102244794938801504629521782397968287945258289628400895873068415537110664663878135558095184790793142003983189320888644185323215794322278225323428398367468872924495540276491414555710972220715648981050243301299312909163771780246263015870326344566611913166976961643793630480855069090936939816358461198110006148933145373537503272740871236127087621005739062782823369475870514693968333151183268443492954071262085015464031077071858424815196272011208430185003003051492063884887236598680640533001236185292292505121304803483012256886417741784127269306826066593809916970684337014648342897954592753079778150421466639223310949037863241947138199479763666984589416501579313057183500903372531024832887275520624056859409775724469311415322680571363433569036533112296990677456901447674492072275703355886710319680485285487810999783176327391042211220584308477687576406617968586727169071600110978867426308480470509115455214705012308052336264810300056769211983875242059895772562867668882858981558082311493762223929423447817325802255798540083661022292958362345395310500199840682717633532479969556881789944667711186809072829032019142041122966403628123679528001739904070523900101952087952815685191258426165633381231822228021134347918555894222436738985895055085714797843035660787645902586748959880719638098301525113977262970666421902572367759769740701992980310705817254424530932954058936021546594378796698642239427461474284161329781520174339574552005303012682472349003213183512722256125365736120616077900319449354101414243596488816416770562739479115045643513357768739174313208020848474321638604853321833840985761280729425286432340133529331098101274188253289459017423813223514053682829947174189672858993498039622720396252688451540367811341133866397967086331197834424430845453282562901813626961139376884410457437455341195135891287593314450641802639218666308496488570575674225677854675205139380303672470929694712162633320712493599646233084688056072480875936962279753344590621173308251095657991795002236191270257751761228823392329448967510979262764406554025284521430717225450904975580578620132476046300742983744469143733206712201832148857389026332454900801598141791856207166562143756335076816456542480568654095711508514501653053367372939253577310603901377411559685675798177181488626139201477924931276579526780425738491893821617854602897115956703628581580987149121818696523134629438084827342917214079430773681966412127819716647836654854415565486142495485162890213106003378142286692364835767392491838515694665581490111606169291487378256022362405946015087149690981407955221318928606496575660813977871141882174640280623674883921933283689672848329113433420563108222469175536747134390364570862834115110076751886435821443727634113358637538503883600489731031605025681014639765430724528020873159744123328034389175135787932247013157812881478940148663093845356505612549744873056463842520431743684088139186267637415478728175944575899659210271035580669115532632492001986005561870558242728082217043613796765749257046830752968558686700344436391385553092414268845620233910158509791115643202304269681445099061014011959605823828180028926199889755618712181224280537534135311685025519689515367502231920179062699470383172573332444513102184561199518802952020817334317511868366424406656621400152364509019719486816344006018135933498125849347039512834647845437920909640184642087033670114363058422106656169125691951905760141857785761118037550306871730825122214100105794884261146427611642484099869238966469550997633764921569617525374088173208361163859536251031917041320665990564390592394701753868352265768478941496558453720097776639169061573909593163249691890926386603567221640192039712588324609404253581016689716369677437140481682165052562145705990513032434746562154759361968058473255649393867918016425251602425940128832025495457187576963626786386999020244644563416819259208950098617109004889423641387499158308802902895691004686736054732652462990604761693854712719695536248933308536701849753596366671153361934615888789066676839647802281975475324549716745100815620501177597127688189494867031677041193586146316539964200398122382547004205288538808936940403089127728353806976401868251814348082646608103398390563834848527496624261671330299431025664107275551914321578630580264901131536563984357990297447222891545128269488591362414034828366487123447411405226413350662078083703536383593357704748376627984606188893700114602087022840759340726647501201401412502225354262232071684039269957082145553333484778997832605759019255024955046302425604804642167643058655421819059701683434906373609737853400807623547399689599782220453765373617026516996506539429513332620222753568344172786585202035146555505521228944984305317594683498478067760059966294307244853852814078820547361216818330005099521787172086430004759478010845238681391573742617833591320662491244331853787279258590283334383463130055852450171308675306662082390651365066145957867719719687471582702205776672818983181281037737106993588635715345590021403464493607651528836432587341312648093131013192231301183226299556751481471066947414903185822230474613420381855727302043765207932595103087140270589071015102772022676946208043067952869495515503685849461481045325662431109547424727567109115511608193510956209412072765730857475115531838431130816946801861569857905909187698854489416147081928056890521948394965317621209894897269425218102321586485409194472204779523095931263238235147346704551534014150156677726236440258692889813007719390048696047856687032886093814305981503143086053762764083259165957635778969087613671318156645757091050411360193616079522466715796913813527355696114823258373458447637940478135736104592041127707599012014951860717725073916898021337236389923573982195205491521014466473307108339110676761884127489841031089322610225683719540031780718959902696373751110428404486276978246506239421403329138891527707090051678055623458737097755383639550721547709396104007229387696369617940326687563359799091813178792694752817937958383988944567341216435589832429443424699072186621710641955038160267736470670391638963878732080461011018464189095766014759801648456374602590288240922085715409246525447207402028956180325887103493397608929837290629588669246638630375084980271734006450199328904436480730202270767764168321152880589927222158160441389607816688883953014865621564332918866987179462874518218568083234739187821907958807376260538916425917153164619996346230582652472666560401296365655879446992336040067659844772732008153283056861277594029780743919967078478751222695480727668521082500351596536927193611741455327388969176388360080541664598038833457789409041690562337743476166469060014232176999879345353309193009015219214793727253028707339006246547772106420693912651620231337627624332206590801196465938168986452799708823772354539639812932385702827133050710338481810637457114117753206325509643585038885838463106845177452849854863617042471729029018918963499892564192815055068622808259114275392039380556944233381580479535473964480497623825602048192455135348408826527183496547523577217803956939494307874527025740296166885080228131417382765660315720656214104286589828641210898448306838481334240706858351201835059153046395417800306431298342910883926112952689685252604732452803876121069610685369971537428929299245939638622824700931100405043901923623606840764632878407094013176486156944481667243607572196526015450232389233670482244824117150004775092416234247201167848958973381096196954949871358028208234250430411869408561126527989122295505169083877511500871455748094392837615248291293793794594974954232204957940564418462360310945778213943679398329583650364252440002310808672935487382818912017288250438388107076379582178145474654305545187437286759136477979585059880244899985005964300759889297233637323278527219312433739920584597097453029878049743947947323546646796977939922476740504072047057840277194250530613543335830949339625006889891453777273199461752413286523558803249815178846741546579408090790679574547599588309861779118591880058159544876755155861769536672391670737533208552477819799046483742328630703406170568325945272743079046629537310066737755191714069832583010086836812076445548083519496809216025603230485813984279145993400231240877456348296196508786650461272521607983817797161327908101058786342627495937593462159913296639586807964946382692062708837981028044144930055621891903295962963739829061482373525674567000128697413021248343008753039363653823827951316655293649073912336501955552617657827145277462843160264890391338619723866948421039975694721968755207312794917859554567578886614443627278525193019421393982630399500710519601999589275032663497934000154245813376713528311289850348812406549766758503225178397350407585321167776076298518452961523413314991960494355653899431674233718151258012034900275419387867143124635773979671136143320651936072564995270009081199642124482233152341028157337217653386251373467656219772021178778903175266449999618388426434893542208324027553431657393972774773499224260609122057495030246752104543632279918183839839823636395519908906006980271857929541181197332997269594371508298855889450433315992018952853031138084671548884480603190625169543908822392581581421355536390038139683438298069554206675460618252788930300574127066707836223028301971416109135477611846088754053458935256255071975320571844732879552228905425986068694184763180767125412424418545639812519986357559861564829489106083102869059111945653460149822892003961543802108402316296203127755196408911023842802271317985146306085503421612150224528554880765258377126755376984237554767021508928927551702694759140420766738601190287300790324091574173630611080164690981274550885053636876361845566444454504367450703166429289401082294713534789409875901578076094305593096610062549451334893679558888745951517688022943837667852836462143812864230739779754806145672720598210480660688541621970426718924499502843192283569631539480331905605620497886262927388142907171210241995943523518273773848945697448491905849346311085840171609627055258951940092728571132437765797991550121200535147080936308775635054943548205784040968673975463280239318693331924619440344868233797063488454047909305204598847121483111427013320634458440445875192346232944665827092138026165740833594945371515718859011226404170843447504837701199047762606190614531022212822421128246085918026438326711874864175647448212734451058066510098332925823130043509699679018757020478995280305999249155650751211546634354829577768275582501816564608443031333859453460177936609311174353768521733208526666756980613391725446922947695624767866872901773118758989801003691285108670509664704992155163272763616645745635996136654375105030229384038968364074586883744900407459595571155661931384427647199919148525306438362711141938712842526059358588348549370160379501497177051509839608111388121388234283100589915556667285139009541528623025532696149736987542736412116218144404232906816359052852036349111429390109811854836974273894212487371576907894863077738626573563383253231212156575498295047749286839781140539084131428105837153033087164991472855242589954258541057938876426363167840674131643680062676168740247415066711194605437218943579719539672321858964120430138289661453297796242831199193792056121102274885597422588104013409824563159939151699725961673486859728073255660601803476029280696808717612136274451592631191506168700121214014931154999137136803550102988058932056646638995998928893977412899868226799709629140906675194375338334715349015233159409849863066193307330615102563479129837070562222475760210381202611631360187009436442908099130069775572726140954559976265529680793086484468210660475664659174361804560630445451589206960400776792514035624237759904192394878442392101813357807982506614671340184595078520036872330513256585971383721544224097378506329265920835997969389764562843673973267321690559081849717500042132230669609338618187564609094548382969023371875649762394489857832287657349064219800644540221356809481575902148795617365812691560293579755889351476770286272900705086947216964683207446905977050958760100604064236556600961452381865108383224275344137120255289679968568792845095797919705648654198617974696391911538154558319950301950449409339879088483521622889514199176567736813063730069026220318709029307053274402411156277810218260370371831715729174154935472608092554732926052665461956139195290338969067095808426899980795190630986601288032248006523155527156394347270524279151167227411801972030562000786860251550362734399450923251133823108197386991600480511084670575254946221395233997627988080025897170366006178452993257878474050450310050805797133366090374706368184511190518720620049778668909003904972310503128311046000578924078983897405116003242168449352155666172930918377549387628524394934435414263580423630783037493392773863524987285413872339320844625803056337113422719094591675743509565260122703202311480675722288670196456272303547712954295217893617245815344688578775316092595471662325806276729154673937975409091760422778575331942827522424635152905291432773691777626200582319239975519423935289754642870421571554452766979936979571418089381733087453737806953431680082663504768022212871423777926097717292310666870256566868929108534711797909383611554689507099218997596250328348741493197181059717709700549408397728951754056561696293322205601075309599394504650219172310008294645349865041448235653648676785342845686866613829496154830783164220740100243141724049426090505926292692665677503942927248781765792289694911422546668702235474209880582722873363975041751305180974371441933371972271225380470652971039049145647559613267433483952828151500567619534037507431300027399664437775552207865726989146027722917443145184604317641082682549023467827885294027561905034597187859950455200122342840920882032887483195769126029163909622275068871190385153053742060840022496768022198204411337663835973584657074866097381854362848299820822517710915246919420361417920665572125450364733103070192298800691385022271408155367031495486184981658826140252431752782677478546179842150814452260479782825258198996458161394429877706721038394382736615818651685770612115868804268190535740653684850674746597189228889964281534084057734028314653725635370163142479398167326769979442981222081905533871826176675146345612697775241709997193665242535423299273718634453381078629853649477049550226167448934758226149946760970970224058893669872692266452253985070668923447561296611083519824745659435382899230884549196324873989395431783196160701193512393003790126580934310315978688321442079099204327899402828159501117570783303329518113285018210660082319024601304594549903963831087031931292046486270521223348037657392923555640224820490370318397714777140038707313341233868266631245415111931386607964313467992622072745695036392976178058625996443708907442335363776129134443188378311541594783909665096902617786363519335461397057890146089015791096843936816960134499925797449960011385597613518218199262720037661734036484762534790281201474342240268554122163903278559197066685578966374560720890353628376521177160187165887665873542357874172769622050585554328257987608378518851317957769869622186137909405503727579557397840605136224698568246267815256614862296841714060038043661966181775451111060204134743304870744180973699304109974585156848701761538811536310302325068214703450335949366559977097760647691242629266655505839052884443451285577433322730410307799775643772523999696864649138398764852691570469566266202280551963829451597968761528040180579960773712572578162102669963174932331879272878154605508291976915712309593630150725346727168871601917944270206185104852994792693024600611362289522354696228772858916550276515403315097672758064170157915885569470893341455639641159927280418430326452582069454838889041713986707928056922323623138843672117840655628830495936006765645800673685759585112583177905195094109060727525860067966384766513024344015113834724136910596010276869490854871912550450764303840688914913493785173458982300904054148167401317146455374696400175760514087377153415826520394749398727564280548954513859156133907367281330574231983636580186846883460886616870948743862623425319790733197800715029704168473777903127666019171695063227638840257874182695578862264828807774330862659497206071456562199888275295258649750323327829574329656085200058195792202925524566788949385685677691757368776513012947622367148159107464988633396042655875056367750367591065835378666376344661229100317171571039927572559772789071620963540826195697319675767150284968621745402782939942416333803872161086667428538329392032706467588491830691077756462846734403004864130979864918760473682112446897122006972800078588607416739835862902768564969903712842050006492617496566947869028264700320451463416364521863590233049122804708519914935381647516801068893335878154197821178153529241867692651595451936260247226067413836841362504249036136758851914821472237166451047259148338076088478288292121683111266667058449058850553757152397240879763228433776731676825525254351187062180603148109963819100703944383944252590687476647345147629353722293922301723976066644306446388080236193624047869206049085438654914800818637513167149617952699556485921755781984753859350312403170030282959406023387642966813413044625266828087474802733269728582729325274804293294185282633947519184906269877357473616668298421794083278691483970917460814032331697908329550600947531091252918243071629329403329260836672678473856732739755248646566056325319887491375490975008376816087540470998666045398312684693682969523670745394287563605718474245975509440462198277399555900372962919200390000985082101280051614647143951626775653554066720966523066548472074274344320971923795801672207936707206182737945734843162454581369927039412280873547818869572796769938550466127543575481553730279240434392797883016062490529403750325733304740964729492963866078703703574365160759527661623310770207723377877303519491031934309978797004109623763470219566567540755918552298613234637967318225441607624815829322657717649972384754704211153319432670215695392228642363020407383431588011523561935644240770997573461814494537965913585998091641171917997504172374677534361297866994325881475336980710540178733906788500329675315501718857128797803118272672488326376564854625681669871608470390606943183336758954352028532195455084218979928614438589549966202539890527758722675827998703067689570754642596087031892608829830724049228762106316809996258348843045995257249150105747461931545535347742377411631726926048594001392364071241290133504889151733309321788012669261834930625771472592192913790926317537733793531924085828043119886820307712720738894244425822497533286237239566758723320083362179076755978370065599087408739919703713026072289761667298857897142946941749246700505401902535173934093506174974320376591833016376691096472303260711887787828909064910107096688270162493062442496687954602699180751205541604370181437108041084170100799061716138298784005499117650688468330340505527193258998314969675507026868398197575965133461778625928862394271148859632939385222482630830672699110388686397286570083193827840576602042491148803714705241994591641141949860192151887611207049821768478523625748857810388421536042658683864569591794305890174408563480764692668937105819089061857698785299724839714981344436390421925821254444458115724315399793083661972574658067283520447382035306496721407983804952314486518589885881190002699342093698220110024072651227832235628499261244783433697238629562109981742335380604716067554217168786037418602234600871714353800195372236032064674423774599010363351645779000959997714133313093332493430520486360366504588135208546975092460691434581983836345143847278544512099183106453176544847230973647193171399327027330504793806591108856940491667730471082970613950882410909589045073344292121917427500618530655385089059391779427430084689716530383536686101314725208921292283925336530525001940763360680838081000002614519273919989816008557815926100517704787043123852830743805401276473683225997007243160021301379179991076656247022531128683357374731617636861308216903017473833782617722075399859866175601526622139208784899802980587708677460267978538923910876181973927213815668113256643266660358722776678980960229253490442171435677356777969405377677093628773444033935158892320703499632354339987806375917417668029081440346417510454247997041151754804925225691573218135661883218842354253069135825667825065981083469479644585755729225748786735546058126317763942410311062414343461280655689961659246043201897375085329584570616603463096005526751337557101437775367699022208658704053813813433348510369590838662621528834024597321473661418968689997815289141137844101511809902236034687816623184599120712681375310099547925800554424052055925797642570819743390404924724639723083778256297229473538867055421742617112596113997781659007363801073016150744807478534937279071925239009037095615870123718275490043779884885453163228659461630592091821311872013172847338622818408818011911112336225181136499199285066056068539972250477679039497781527687008173805720373883081299137238298640031527475921224040039031667481497091047826671632395414219603807904674727383657113083188182002630396571013524322147286961880364087422415345174950144778338372100711606295975927076500992217217113772235835560095576906045118556316903389155212569959227277390864068889204392566082282783602394202966566283390563776584522308210958705393102214042056096752019272076173890819959797566745707074810318288187339768451896860679654675921964008127909396762430990632461548527824678156350573978015304841828711404293918429926741045691799925278222806237193622399864923221944238602490025344930231282877706262466974485929434814051994018844271255701720588569251167388299060906784411092483078205786357205359446057133710176322079382468030553230185819471990069825587811281740260941334178630736533057475529573359375577674423778280191978282453295568243125810799649776358523172096054338338997749584095801145798919085273521200011897723548288932956998856321376200007402227154495548392599159662195262109073384072140885279713770753243508913724236084115712618490225496612142035405295767119048715581434154531834439396883987328806261922014404352811567288015242227265359694804429888790526847615012721569284087793092949994664450637728739929373468191376945295310175445119516528976755762633499668092670336727539197389423145706511424902179108597285843976349354823829901142155868632268198571200428158214514718442933479699122193677050399442000581695108256318524218302517960662912858441619400793214956496965527088758717769742755765685734069318912498402513513463218815226338703768337430153739831991637276415696171787898338819112721055695773443143927152132175592421599018058878010621357858396057824015441503338234325817340518280406509505300061496177061336198557238421367737173839242159347202182707664570632937559428095503504522357721289166506342295858377350549472039535183439120399071094342108338059444395214497503064414853987860419457013249422768623343732128349787336027286807977500485684878225024400434217461744192643369796317940606280791700796542343174675474597671479637813115203025941389941625961411152254434967295158015028732638132095462211370407484900030774676586742098882686705323033486483159053157742490652398480950805912046606569885075588281910003595201371710445204741670439134606925209641140041569160443506725243263448707313338910518106971189215763815775310229319215776060548308493507044598343316640932446709261891534247917014254158021118325896426133771679820786512833145816514908612730262933719256889596564998866325129146815361104747441640028471715646081365856893301605829075628731835906571385899582015299339804719531707015477284502807492067806702112525923172055906663929066229843735795204207444453798406399235539785963096112470996836977650430029856979568312024559204964140594438418408919963286236801518981486476946340011122734512273597171584971323279562813347684021712769607488163477786314063301502942169641960197027462856840189701429807738723351267992027883789372563946111269966366018196178761361457589364916993033866866387281769399681920327025782090937123796458784785633343854676390152650681005612106633376250487548293241663468174955681952484586258417221673439361799077391706922624448512261724745728893446903316346893916590508153348549050990623124697288934787407400683165780696036345096416191773345838598382509201889559026475048623471817895268131732524192797945414441208217346995419223380629837850349153343829570685458853299143545819078036593778072175294429795014056558526463352582380321015697794693281288853410490081766995405400974011011035898655253376208032668044300703485215060280991672169013336019997616232643056794450893962227184382127623071798396069434971094146456905908097673347424496742942030952769628089480707295220485480439884152333848967190006920856841714965015400309461044729791698101943166543106218289135762471326943790350273103578527643309527052917047611634949095746678183356417176606835253731383311860777170674338720604991698762464160280203824410152256644886663157934622277929819714673909278432103584175763407746201554667057836117973285755305084857214447818033902493040168391399846515515806273571494030859496156284370997024922078205488018940810088385510703909798585815830589309762384554196247118807885966774197782741408141119853569201730641474136561112612179641686570553267784639261472479901361858340372193257447820514576826081629612459867589122316206569741022869135637210034160834331739986013447003723362200361882956784754573674551645769110740712846859403445817554406786028109935635472143908494090129616196713859732789415659293478304956758665682663104714466403122064733380979743359346745973488621879781121317671504222301275946448676261935704152642467817880151459743844728297126230923566668039083766651321914583022976011081328903719154375238622431933513716143173154730532153045473531595781686528085601918100945578011658055449677485530132406353824791576771154213653173988476364944024896917814999381943710109297860498576292759877420002383714789002918574340960636798414261050696419918539816840914044870853186509745683046572954762929552831386605774337458104498813479029046981549796433871132659333235028128727066641467384546310234165792175013962323684007881994679596960326387147714684660168604010725750657385970265587128511467479514586366170929603389069168621095135985739359094283330266779863874507190379210367912371179475836283446833749936663177490311683062475362958944347615545453332325210469126740238755422557594315284340894584072054087935320209699956707341999804491012092240774660612851458325510660167985560288813730715002339054494220870364567030191029033487959680733271223217897185926712819535605499087528098986038825534686337136235903369450125235343559016191439737165762860257159855777361575849401118543011278888398394610378124018682082679508644915552084958477201215749505845925009919178553400529846570598994073826642182283494905996880515345986054952482671097132689325020750883088060185943033194312161993821113052972961613969992240540612146514069812996325584867358544829507912673735207095431960252530799179686368363255461252828613633848746163686644281586088279191822875990624070843486946570949018857399838239572613002364821133308444553441531054885659331858944885227518132064700150471731141802232694884256793233236653932685336542235633187782648649623850023178847734006237990764494490555827895720235781881357803070687408104092730292285268169797461331656493270388791175008733367239690748674685452622562030822229992390992865792603281718958477445640143266549582080140005196995970041686691772950398980348886846760684921443744962098797289916327110158878183893311721504013254510796478686436955243831386501501537187659074465092948005109818681372044560628471996325031358532720210866836338935851597843343689379751605885339661444399318713755731965235425809917848488429687777321764564347556853789332491513137374297288111465936410425701370173733119182194047759835135370561217645204903505328308027120464221067559186381494125373131619924982836718703271001892957917490694178648757930200540068824957208870436346657996619605815139424812199119482278885210144857698730490505413846350683066749956591189203224371688153251054705710906517795307542566727193159363888697060120930009551911334756729610683805514906916456456377982708669949007149493711124747818961265349184519367263058266380146139804191128259373697586520268608434145340017528767821254049927183235045714495824772017633218775022430177609261932272096583098545791971853895391322606627181350117116844164397590305426220388912786197253618472778018383343174318535526458391075625100633315805524108740027719224253447450713734768291686150750480278944010206029779993158782475302787716786021798491707470870879583409492512801678478994540468282363667263727281419488654337135323181968488049693038828525943345292913541445112861538125660323568984097423290284424371556113008111208400484869864266184856764992647433201459163353436145333521736824752963350496821642863706216204146945592084685531644550390299125934632171121533747390066366600748619644292371635828714299960878182670800589837312868651179477718643943453416959838968561741148239785593315751692407448658663857803373235670226371787370697646143890868265849899154305231860263303350594864713757944123352729555042637989549959868495661354891884134357495989339719302756938371136966936922686109260944689529613744105806694781341018886838850430410978834769353975617274753653748246836133355635979221234431916284492260297307369088775562825672258178208988713015235736809150784873942925643612026383573643906789097966588928145117999725237436595122026869866973424643735220311650757749411010974824758871652079048333368195966729555706604757889784518294308461773572781630243791396283657359854887209992476662064163066183505503200733758706907761186406988059409734398109301091738332823253616572520603205759233802900831469511796569966962152297948159639625822076595473372495188349479937783775021719079505992315967011495548725613578081407865750795740394624835076674310909767746855261127993920097399936950881715764043660707801818163381347530868844280003039224653018387931559112394925970095865529984878634620280852399259027485397949240408316130024215596829695297464197581587330373747829645939852675561932751561128678646605250845330010170285444378670277271549212756882899972318039781977821469596535038294552972169612738789212749410965332802255879254377747325418681995973905866616729934895032871481465026663015459519987679453895215275615905814666251208519095959879571349743932712557820997893363915398530253552384858405159061265553376417249840238364413775503516810301923941610689432161609736991154133231048994014981473808854189975640221418191060063610089692598055697743550839464311175262872698961787695861465876601976493977615429207921160197710709802771505741990537223602359870981059093659930359543932717818768280253344841572104384835275123884143132129220758763831255321058563120787934953490911210349437388317192184582843298999824308022893855392152956991379351745906274265366849292524468297409392480956182288576365246717029594942622523214351683771734379144860540592187886608125007929806369667303172577185126100642418881595763419376670578823396868139108396570453115833356303361798081886541878504947741199051237862877758698062827297153601216077682583530892286498951171766870558607547876898546624630450244419282641106937668520115298776101872262682211223492330642691323556538886401960379471695602716867061748067705005163680901622517453956903877426860916397736546969673593594042335723250734796117299961664265241225803859414119830797143722326058224842865603432888968329971384012597975186680143517990369145446240395158304069711398671850514984848883703521467490930610954266161735067615221700593717332208597586343400660592170597272413332888033321464703666803610703825368506223439465584924884196851891945584382926322792111886866469545632784413142161623965943943071259786157371616808006889232314887284736725099998336930843485716940369797361289194052272415986775159428078599765841251533687274549617577511876387093019194010852508453392007960101173766133850371183532947235574097242660056453916564238092257624688841477196296148706746044227077871130014428413690062589537223178802370050617280728218686124260339066689928282348875092578225232839129551383443789333249811439023942669896405029188361417770356879491968952803154934257647131141214138495700781627231019771350097994234780808089938622426680906067698354335488553117964784163264629484526916523261631122994429359495905729675408849139154019896590961581206594413791444537756002981242196097066734309279651132089034863968049515466110881076224506600042877377931316777732183912077800150503069129338921510549266192031639998117580155306403839214150966616330830865761458127476902449192207037256214176965987673033332828348803266789785077527951797025983717074987376034074245772402330368601382012060963699626484338864439038307330267245339932927668762887205569744335608468794829281034528882242179719383866420501844233658858031880248806816617173041918832622169989132306104593088087890069673512916179331656572658649895619270422902076877702920396075657830134903385855763654425032088955179720139749249409340327618291889904485939044789249219780584995824415807193494177476005426000068451491258421558350852246675101129965898134123874353714962043933333032303572946077918170092218040678846065354896927892572678597505762845114665938878204622960399773787902008930168926834786479023231099080402191189395027302093154338122278192951897751158749796922998972797805373229454009057181856918835268361180070287838507031575828470328652121482017113296646364687932875425569138410706462843906259151749854779991888897129896560722663980467462037826258501507364633084559815879044842360740885770893281415726030072089024311678113098677692563271013155847118457170929085781448015471870208976694143117696496765505222276316691715386410978347872994679116707269992291643066755080291700089355532710431285598017934862814158261862662351015737905557301448426153510932600629403158294475775546474876621407020987090120066554592015731709749079863211164958381673355066539021680267757096870273480084701278883533289410286924878740387434251196186263719479979870439175619377913623499496022778570600660511862777543076927512994599920359931937606738584237932478268391479427064416212822643520641836624570159641481871134016642984467307423862661234811977825697456478526183739618145708012995428611286487085574928103799583645236726576542142056742230766717207286662355401665864531316899720976189597823197796367076707001625016901325555794378149813649439631215385351557787578428985833257746814892592878903980049477831431586706370846847165050199065807787857162406972434871409196536910544798095727671570190250062037582892953796521821592195709572559813760082953010313383142629742092344378944696939925442032063828593938270030670246503163752405073266831202981220467140238595041193585868609850480242897155776713800276427220595361514567446006538121220616418460831560266162295834233792546360943020285701990620059906758856223239904046122848860399899699770088811167051709708915958435302277976180887858556079675907503487202564993973084537704925625702043988725160211754210874325715233018141955446418197135199200604885182050147748384522945952087725554172675589516054658795427898951524250906426817221458644614893480147927056526174535926489172272192255416586395023403756725798519323021049272029150239299339802974003668119978229233301167624600907615637997679587215440627174737682089166459323980629347909522117580790539895451383930339945187374357795927612537044340011025215556793084717923826235591778284370720036993982990790182467037533549886845565414797703269631521336943383178011834735947099797104919755503258410668449753445734920967054303066608828607921505164502004294912552612981889546341526240054411184613594848534751008797644069364726857138127993674683052489688154044911860873199359477910827906488771874965043779601628467954830126552720150137676207386998544521503283412848422791087678707369794725568703713942735179633897753197983859007496596042587416122659753447196351088354272095786688435123741323293033354534888038696586946465171595831921239694705141287202258659162522478791132698775699868301512640273119002197927816541391631358160363465416981769148424308052753629828755511344510925000893263667345073645480354300830752809907598162026866293529827767615529334402412709293452443138343451371158411716461042792751811546106453259606242654006149710046732408973852436677004684275312084280695007331690100700713925317069212539442354614892970818729041556362485442402953901100207582778470722475061244525842955493609566919009646702142951542123134690614022751073194237090560129891241045603402098871533295163781013161011694815439654285927719252545336460773883047658219393467927933718099201544170667847803303649475970935289100237021081377592146447694909862651233246532154250261170147664704746646322618195465096227432801590761143141306622250929778575910376681253758932574907850370634122077449509007331079626391195671930271522630619081192782621535923402591379337941455075883531702359786756165122376938355107309378006212814392020110190092929350178176727266575327536106196609073951385586293461415177472979196846020257435231172065946853501401749594080688511203506452191352148354101581636485723033891973657664819966540137734529144876058011942133256392167294610870999666192970406216000507871527577095519843984557562751441452155864065845782724842620244928086846468278037533308117672210507287479798811615994209675957387948258455922065614596530315328101260641509342545801253398832244728009302901853252288232318510440174346837357187782629966744317877296149819382970344523214946779841469553026431096613699979213085346034612932681350508194844438976486331103014864610156438924112958148956723484137404588284428276122932624766039238463732574833533623766006678538555016915677773441241941590849509057119175499217793122688154323212934882924577395093801167259506808461936671418138189268243987035413143532576783194755125381010207345840404691098957490467580502601607716721856210751185795238514053136466262177501313150307003348461123184300478089227741963366287298596333593049115081021075234694031791060280545744400987864210497814769547069935249127069116495981960816435872225305228446992861250441393711965750331274786384890496157643206495248111098776500332275628594307868109997586337894946846803222725838061873582495169231787309117851947169467774936929682697877495166660149401095526238977022775128099313814813947510527472121328359743982972421405127066631163637596446985215085000666240463139650037726784010903073865522298812083893088418583273617989959815366788794405204684700514677133973301711406613368893749790651313264783796583387295481380425959267336447387218314144661494353141071448429071408221016350322044485230193919489549896390738051153927581203306501216544735496388646537063515465316380860584634976197166172765949967409028396364526899588407246633068026793843282168153642951949369890954344558212069541411031543564556892586477894452567352657657035922555290546414103862816008594203083353209351051008890043822377140684234429185174814018492499695156624057682865545168820180671574858812011737670022298649010722831054830574147192289941638905786237131740986425850067419461661979260605761759154178771732979130101854261932832039520330359401834186479900678299028076340091699426290236503155887411268137826822655951300338727028794721080489932348753571172500045038590350469243377908336722458406809251200801122682378242219015744880338883826517750902729235167143109923121715191372901287401312134885474806471974699188375152730229094607549249564043186076619899208729485552094091307071028414055928171108478748236326425615756974878303614419360644264455615014509696191160980924044883172830190293175810130921112729572271997823531962129637097576664616279954451171424044436241081271468744008151293872820030961478415996506150796392472060957213382745772799604610798385583123324726383439515291815052010326728722880141218416784479565301721864190162710478351914777854855158853993896390064505197565874935373576032734791199905083190119471672530943566643499544089575643552081267336989468764939118031430214369625298987957221884029505302803877468692898596893467467250040894558673737671818534994470489459134779702575852380992042884159045363650258308352145661489121342666730162247458559792332616124664670265385206122292519736405702415893113820696909331714127999457100420031422556133045545140010405651132365431977413507808773834362903116056285297850455109146946938070100012930877450653363435556653263279924525291594337501045653745366031554251694852368484398066310938267930196934913169257565594519015240918304475318104113465320426604223814114545350905660952581837688024819754659062566904111830887542464106704824506091915845342597928977688141179515029570707724085704820935104289499345579389219658711765992004021995569485304295171008716568655224621082972096935444833059916603482428459493231190409879436356990790768865902364176423590518347799604185532192769205871730993452193585900715725357829715272749885559194370164208021202792413366940208179584272365544663557210809235018270240267217461933007792439218116212185231435109314985770643191112311748688386392763495168905906903496043532492241307957520208510847765942980551620509767201209444741754529286509922768598700635703399817464823705659698738087613062457625208493817787486867400621812131422976388512883999432628433764151945899617133335054820869617660162347986482539700519861041907801048432476462094933061330966531920380485568906493922637720239281676309702833475712158520500476815224972638465602300550454164856625530297956970786936020290515815594290034472393290862905932908659160242248461382700121688667931330567634441739623425376542165833522682266452984216098823926839107541544062229135378385805364896076159643826723805360567455178238326826550258515002210259043651204424675899326330050985393544724967109027572467349307782331313239357291711546748626442998564466246888878215159848306998866662890582944038732461339862827494403384953021692859897959355495818478915290536343868365515240302461844234450283497260425778862994105365386205053258298757566705652400225777681409042637394085002502338828878727907243554894749341131168954783714271131659782300860346720750512097506626901458288492578007202443552707330474414554969372824923301764555213197123227046216702320236569455009243663943825981319871048963964419606859420540952829266747679630040313405561745579196137715666089036698668178091349864467396730672902052073788479568586441303423637243152868588989063757643895595344223146260058807108036321449224952276075119099786425017329170139323788916751152198372179335784831925988069379614542502097574010925580766067111383690308852121217625399998108953877898568158961855825714253672084548644158825354264007437673705773511121660639333359457971476172134597593689615613742840517360802564923635629453321081984727365018037623095064040852583095537672514560933430927115236999291885963475874782054541995192994679304507023366669452605879820017922560053260487410111324124374591153237224286290704915402000942612150698074196835048015643502951263995751602753672471644858805211138387807574824016795635820229201382122377445994641808722973163528645528204683984688049024379048405016580477183104271485156575352866359872265920796748726380892654886796438916868320631952957975818793382941208215096585564106378037526318112755197716167441039063755605948542603229308592466032732018573852275622448698518878985467461555521914032784871172662906097841481291298052251988570031431635007707058192382110733422833555589504220265586594073711589334319797078425864788641117321641043563980720460241780644084124792538976979175779146030992736848638407570228941353996901260488955818360633031730188897990940934847367469411649393461031487044845137434479350964786921286644404667691251496615826056459607568979694579642553624130416206653974337377430661924292094018589984347151585900620120712769162567158562218886473082135992216007158395186816488419135153336563149204434218133323541208246001331020261803041831917892599163858796719607669716660041436973684496196273937332701870963957154887371919894940089049716587164537395509645207921223516876920673933929714020145325476872076439130902821850350487560183418555956699231595405355329121008192311508295598244614421256633720261040686285038092463846451839058810066205228388570285458797538682258306493906134671887899820466694310814920022906176601884513039189162649225646115413838943678034670139391191333701642277840390719570159161791519794970006891271290124873248632006207724554410402035808377493387039243823376582418381707210717380863987804322870828285707330183508286275099382205010732638235092001351587016460421552421610504185341022607412792596695680148287169946756353306668679324118184711410557642511689935322188694562117418766827690484027229542231757305997501156212134599347491731313333627545955254489206524144652386823293950545787349580859895747056036402812485103236366608401376578131693387894485152428166649556200925340101187986540048311779844354860858272482272475276209946716332261755528974065569413769501618016709023075564097256941312647274004761118847922558556898870072579160128814734214448842013010168040444115459814283998885776901375917649269594402352947921724345656899933846896509486343981593822595226270542129640757899678766248106205475914631195270037464029143558880622675694750885244664113053302638498539241093250690905702764676331974205967651531139559821518036182588870199469245141769119190123971467702735463904725744632603293974431256614971399424244628976328142557434295506092372758968752321687274245222123381181323620963442602622281937523328062957823575198655677496950775151922407181883483446257390966594902592688314070018830585854656536876392476878859807380370506205729612110836982627331618430749083930289479767659532528318934107447274679601957633047853749219766115925826794600505338203233303385293646404538011577551458761935951165491803433654950378429402766440552431426607543224408739868739738972339460316937400220365439492611789494339763007989074317809160448221254069518434648969241649954355060460138763581772258274282398829126319313181069292886644642730425567587477513859053893521725800285550112593082503608487928152682135481685760938861703974200119210597068315315781023625468818301397726573628642224215463513111746406021875621213951655405487794520326899931059236715179024874419066789993861686773156208311295356216341346623047623420269017666812315525830058876522348393537011364866521000612805883934054956133179316896546352887769171672253072080870331889498240564978380550370247112450114281018090659687888772869451975348351473560896295255008399440158110564654917077777013775210733176225838750996911624966552754942250212081315348212495511278800364802697362733741929907306905436363047928739148437904046265385239554706190262653423839627400128176489649649420550257990109138197682160788260587964815120470197529544210271681228972449681334474175656769630484263056168835777847393678859420632215769211496129809188121371139520736994715928297658298821001548404365825645755390453201593701172766182808955175273377935478173478925014361805795885287223007952992772932108093743107168236603739322514455516568313470588810807044258073362319148393331761742345513200058890775303389520178121910386894752046444747940538389574411213187722222490267514166037922510024228027729801780435623461531741697585858370842547841481313336496291612470651970548835307714464491028232268623141205071425762445336969481318683130535570778787568601275295186769778940092780985072731124420535929383492689349563489755161372156284829572975267548122298045386336430805120735257504482058878968611267769776402538636731220025798927745583952718975059042717853868189242200229459922273497201457237980568060364816083525002855713253747545595172599624450608108736475767080046840654821324878401259022800177131662782814503189099171126628875145157186325888845718046849564419332731141814904780547294112033278047084915917466096998412513409235100540319819225660269442069308173410495809923320818016794234397235012102480964921655620185553403338503062540480233813353476767825828705046279150349867343195232721677831375232851331974261454861623666330778072816467158108141541724230552046448316495942043431711764742106740346780179015002097854707175884173231964268805459035213419527295515876290065621879831823821486905263077410342805361663904119042440262482856725100222113535510564932188260111115745419830236710651018186409223389071114305801926892694082607860036181688019455577109620599796264072435939458274468810351945733504863197124201716110189871763654389150106153757717003845577287201795289107968780677110241195498236205190502692879595043104771905954470643073832394586874048602133026634819637418998155800118847734641427681341374634032835195012572498388575699966083276909769886454118322196010812298217857069917039177427833688770052285634405233977355978582348163323038774708621518640676865007305903827028860999735621690612389064039059137140014516336888021998867520274402592780568126415551727151226701845320265672851628389546621148947370033583430151864524689830833714505316330118320899557137041963800980774396712667971340311675643642734542518947445287765487982989174188580519939470728211455849378340029490585360398927522380918252352184658644260701771543132573028481375345351662338890062564161368080968519884492649793003435635079275998310649881735888761640816099958225871949935249767584180761218920142129214631877853818229586043879365251027113550727727358858220352515190423247412084888418592835657279706030087295389119189290624741174516854470126661139147384436225413869878471890365048610786956762147069053406474613554592331332087702817295200592447060929424761901639334963873342315934759849797924108177399032936825187542132697897982910952354551632551644813644796944267827001845153702969680392111467718072703590118595627106249019628290533315671210631043743617084759112886517448746355881114661511393490063448094059988020375004461573918398779956840242099571069035035358294368956593468683885967341483498574209819802926028033446237835027140402119532312855986026049230568762804689844719865550552206220270558957693888272505588581337639080113254876811213229527553802623388653382214805828985576404453746057032950533767240517631365497310751970074384109012008788765003432154849880059764098040687180949883490267071675981587989534015881190375609336184762173135948642291197413294761517204220528212788434579055761770794886826107137745916291207044314778431904016637825730812568444616645454701530321716278424449459112402551899853512785910068719307407449602485137608630490272416353995018209267826017136340437960546408826785115621824016064479174106673436301822496978690232562770730055276193617874629312858704405198506252280539428008079331968869202613933889129107674092096211889435195482635047452007944713026010061341304180721062702652024970294731271420138618575477786506595336702642627769159754780285408094767945472957160586667283670989290350522174112030411507964581130787218697177204988559193941527339463826715444400075956904540292136139302247209454445074130406839916681377929475825202385687054120644181240535790020056764164526968006612282131775224916712459730584942748246133112789303121154720575185256605397598209313056992957940414513241998773900603354951117164268301132921443118976948773952213168761873327454155189077290491685434194946834307027044489061387046344513876087764715509153456515129787808585603985134402405687387314279095659393452408846308125102657557181522613430809074908149250669539602759498400496168833921007577621563852804557462746247698867134690231729501717846972736768140994352740015790907260691542055730134721437741708625776799867708686502365319621725263218257229480498270736393891327220197717844980608854458158086829607545153867159007996417783382686496116852752344594925134840360086116639418421681331546149979351764023424539059884848967828230702870444497261742529977286843130624330684665132664854750801959166761738750304843695431253152657066985719353886817256538387658016979600248633828181772822288391423828703380547927426080979992647217433662387384016540340777683359993776040405150995930794726817027207859168629708667334357008249733628336373225548832913740535431303455763021959953104135373387284141142787359735242781723698228216051435963537898367177544368584876184896825067005908728464029546762608364464737485742826987783924714516208725439602103747299168063509296893650044343189204611327829259419320135561080359483992266591799348117830111691633034340757353576908138183354641078937663680284269949848087252027833937227682764270614101749403482034313033990382243639819731741779641718761583460707236979576855582845156695704474365175041829401365101446219355355959385060812647294262614766480478065471595872228426403457286879243013683658043589728568029255212768060203162237095142998820783119153710469051784104172316408234137141413460572808906758994526391737044019965600350467394800558514885870534423666206467659146275677677138755265318321210946294352214858264224134256749702489118596171933419818545560348245341218363821174318657167642908388445540863110608595443452365935668239374263317546508847533607313280639268775427260385498723918859989014554863698698116017517807806591806636022758981950884660810559798184521678599356938145943674915426997986804487434729096345845059024122605711262886044879692582505952958267716400540660525582372843430675720586146794842670705585939698794566186495912427954293649220004223787752292534452323417905434096001494303486099250519427569379615873164345591345960656504141752935771025744668538089154512592067926553572674799245670190517222943556525241859562607744039673219609472054127124544300368926543332212713718226770542757940552433742005153307591125391059015848048091097234001262979361405347920841638414227194944556123522738479389303399039631423410482588858349881673542342704841000088237782983164107717627964611673974109143315387997368334092626427966491479651284998614294978133578075913533184464354566837572283015101002977126962776428177252818588761831483414231210129243057296146380727559740985531210367992220355049187097646544559541428673136386303653529611438956105386824210958445226570190840191574504665123467197593708220057731455267196481951341090973767217026013487529231753256610417355981649827068830326486867451133947947180952685821932437167069946150844940600540070002301772502136301775737976784772249170044227976108070491490011703733791070021151722367116021061533942968580824833484597039296942704468853535728297338843473704288906767073549636849057420669721162566568005304155689132914909801520058407649275686501453387594056960574654027498414410939409817313857742457403960082600982021426710201544705725680519700317397492339859562296538687027506275822637545819813052212996556738662400554724937034234589866022897494613211078126203599992041755070799820253207729197851127002707446086653702576857724619180190338102812912349578551821804551149488243912235112440658044755841701532501286580227804345850913785925557422325078823125008212697930058478212258008092363779783977055764674516978150608020093935025570974228984412804288352465121035410259917145109018518111575431572906440837505672290638151226639326998485645253628447176187048423179447709629495167032516198280224689593862848809300090965326816917156297098036434069297622358607762179618752414811050974088847163372855815092748172750030094017866546290494218729021329908348702125004649699336587926435116029332397562557466909543557304675394451705413713597384786682693381599698244040402606333935508211778982664073962264640920700066291042218372797281176179225208648566183714529170942115603094363914370769410785694650026761196119340107833601417925994798917373798538848085774400541879111240836400674031964591956223439982205807831188298028280879971904053712122461106838876334905729181085759454720932209873815261523027399002381836878804248925593892104682774334026041415463670926796708635528475259914004890087056259080785788471364891511255141577045251403165657861019662503812749742999854225906198809792047870966726404829994784492918364834457644622134915708969680891820344985433706458575600419905212659637951650614161700015770837308705228137051588358474188974021959738831249583307541945838932191471994730877797642209944003972217046424076011996380057801342798472767205619280014913065387138942001345657570709130113941581292989860724337036217225869216358790210690191540613855956127668559060180577853247437357428942563274373925906607452091398976490872306184563944714979442389903321614657859945339392711214325859089260821131484255926825587115782525114768105898231113410459363514018206072656292859176433995533629969382312197797991770032512306960881078830600309550379422660873115917618507292833027547800062379050949719846119428299873947782929342763829861911703882041107395094069223381563847791560202000168062361466030216098921967200013990356045930691223534613285378388898605578783933195469758045931619253344678111601941267074043632036101376240043742636955209289857132800598111829419416748220481088625124807180140718497383311783739572897826916976763913960441111371635330620510311550179548185209086295985998177655132370104389280168985976722351846330327579071014194158447694291177008897094668334216223876516745642020851032448314917479282007229259397323890146080919865713464389542996922298872588684431484571728944474615834191091937889773583571247286812509648641160640840293644527982139775038384260084643140120346155583929079019608198469520182338471811348337571901275938025011369817201061484611788536183227652770027269266994032925727585564734737652701164594782126840759752048222520231855618606784108031763530223977428221568820968240876032267084716004370558135886529024551171607719756040996601537840255030270612295562955339153273482309962007209892765002201041486201326273026003707237655373477369100393363243553278081993476243499299723511733446527500442471246302356238644674259269442172185271273483270806703787958476214306700955958038574748410676217938348571679718909136480280505709401702518390114312420744262750082112101401120300278802305555062450458498931375323995053360241606139109259604104067770092391032675169216418136785353102459402641231056646325709592308723632396935739575560726920955179748449960891897974546574893517654519743305113819902880807169692380046755142853771841290932206151995424552252290400544764529976064293988319747110403369265765958140737446987837331902898631333920791953393466320273486068085311503845624862418437447293432511818827157654709129807140298672882519240460614876208732815026784318292233697808885895725255694410084902443771181263514708159297263671829089135005807379195032432558241058345854289429352848222223930436163422542908284972621007871052027579268449423325305691148722889299581204666745752984463666586486099507906268026456959791648180799238121645115142865018096310106932433215151568336787686334727450940254749293043116775741485024420153888748186062956443613600328969842045702471168310830251477073036258370485285744002098919800588115701899644107060215914941538429489765440502063558321201295140867042231421283493480450671381489037047616313981748077684793986319475721386806246630834717536137309718187369611531521497923804082651519552458006579502793729663144409044681722687137125029503553517383660839587061537406252626003831010409172507947476388775483447826281104265629832947072079825974764647363664332308196314397793928969992633111659384150738364806669354543050460125408278605992708839178166556291466855383350093029710668901626652793064185380827854823943768565587695306110037949961611393455158268173344527329516523038446244759933844758558203483405701838176929437332618536296674560019026192015389546036845575829008194425787795739211371388358827135566018062707558394456087312362467748731432484778400691068020938189781349002111721843940077711743997861161832924615564656623900663386015845351370584873627267814260930967888700473642151881666938495139877461128038770869048821071349176996689284537723546679207527677130362192064607394031358238747748630033828665574333164745423058456934509400527104773793501773570180592727065562568427050490404179938684100988857399208065768414188279777756739914935098062977711288579486066144926937514345706100935143024075552761593896062310323543049646091496447906524427401381700833036478751790047554399494428861398586049856646598123817983135705458050113266854562939269183492468339498499530696464640487161208943091943037361367698415452197972661049298176712276298518343246407468990917759250457062620925178157160030234266869585130331153512358581147505999769139791348179170331964269128805697447847358787772625728695569012424689961623877881387350646536114556198860984247173880459739217586732812980398990273499273245853407761445739387632714939765050971070399831279350494638913747635065560565020865332930288307460940787886868753181683046452864438933713633276524301227826187189259587594499323075496711010928931316729208268874904371293752714455382011952767554503990125800465607020985298440512350963747737496926922517148293907351880271721577785300307552235472245646492874639429294209245695379914821149712378931887777663933426340007749185459016928337371228563050663225106396790377504367361108180003796540886506287537995180214165571185160058398133112213247674123955774362198636412142715716861179759120262667227592229758105204968905408735198667138103596835402016998315520209484743460401668977225908070051196361003806114722442371768206916871612389475953065674870422664898310700296768064657613308855261742752306663941920064106299055302871114073179541737679445327011587377970925040358039395508720171684157714857966564433026555961189103749149266858620189086369259513630077824009261618913228038634872365663787537094456231742315686094416665937675919434763655038306603528384344648637826341224642480391749811872508735205661271307377522058772325716919298991163394450568609162997585608320251760691322181352574813372637773517578226400601830708141820431074576130142340603465963876466929178420091528612403672657890346396578265713746692965143359673763685163045265667921788403742468894374073292234707500946082625973047025490470409907111125836614398768518231158185136916642516648711042847386789699905438281118984172182412416269407406954986776092851798121654450446519406863848919917631624078822141915697585852143622987633180498530819611944744513094145266867948593595636768703627113976452414218210475253073293852610092073752115857756087899134840679995176681501966548263922015006050553666236939318263443702887296251517933791945976690567763891893093632453351060471672483210836357748763170247053373866336446222225018130780610529283934709899530849807428228742919921680082577119677707831405183849902809158861015837035808456338302739120224271601782127296126371761760231018859504995801844593371599319983819214122875407046247291520231789768739629462557989819342395301249916445326528934374327490685600448254190635734731505501648991015620733200099850250363014176569808300816064038035287110669600197179469715935904935063611924387109287972956117274516811650953424811126781777011178125550753593402855463680045320701401538695547216439074968228222080530749076060333675412934317716022603341894442283505446799523809371912910917739061480014696310430937615997143550943848456000838982948680214598019817188459660625771704149639566453377353597238503432528185079846408658150263512816105592551151334024798309896051787081022322728959861661421221163963156459876971236518673269779757036043889387577843862607525026059052087744217706699819443169387852400264967884430204371824581689895641719609023197060960005123130689924205079705652946353809606887141346726346196836007026658278073136268795505894683841573832569302917806841684558413106058314915659366561652284134378913239910493455959315381837215009878707929466879761184617328747613766200728809383623488752753156854298387465392220030392930407805622524547536313588973414408969236573742119382430277030377159665646181516502706583684556058303448136562097702757747453946674738066370353685671598500817905473001662313855299192435347310798649225461337133023756692928169648177000423686290032710756064673406564087390661435022356060995190810012269193597653081046193417260745744880973639292847628226727155142870989618016271264192138322778106187096264818683053328757263465759707059880055091899617180870203497974754968624800520046647272102340842367819140948446500204576508698852929313039603326095663710503232495717246632203171718764116837035543874727122435594541613776352768874261299489370152714849966209113990977710875852490248760462424638642796521683756369290973803798449139461445015165405430096644318728348556918972087810029884965892719449375309733598261725380764021567922539112065748017258470619357444678149486192139162491736048841334955432814463659372274963898425999758016977842073176908157168297924448772849575876180461657967947520000997748044195140060785020522719768855386666154227609663021248230340540705208643190413909351777697830316059338553920564056461340405753114307734812096954850872246298422720063137043671049434023327487010165078596173843827273642132565749307082552112097232984343766383189030151762303071806621856271675787450770087950033058375581445546812599850908351221766930857523202928713376533143869911512550619935557987619891948965089478127235388052351394994500422490286181227008231584327799180261560890164509866291274190453729814368755286455397073330747340730521171447284378084358055574419086293170382269322228979639012481415653008026335571786786775018898656167521058599017279087534113198478730472773605131455166711746765787304953110869102343920762746054311643443813465696135735806544778158181815855588425201730378985735072557671291045180699705507084426489296830057823117538790197027774551148554735963415472866870322191035894392936551444114171444045831820325543800673709947442311752272052915326013951282291439451427302536620145482406202910204257383937039165443651170694545336849943793245678322997606858084581456159899781280745018809259181941257229474483109469158882608550110695570949382331234190964079695284441548779386328870392125014033198556351652226106514036064426079791582834705678233064791411061847840456054794551087085517545450372230273984319192958843965192639639903745784286744595891577216398613355894923217079234261654255566741691456549128987941181507381489389106673729592898608386738588463904892619889062692760909382769851208671780136993670802810712592594922011570120460783569021560789900021460166217737705107593403261661869454581982354514408455407905320230958481031331090142443911376973336956087567643278706440548345805645461953175261695197909858326134929360505687168045251296154651251621667063549180428967093120844886894943054751547419336552483288314806032567166257433123345399963020070455017160102199675755711038121089118573604521717035913972336307659081995686912891333583732393556084355789803627287521212872976495931270331583081450345813001700483685218634622788733166050760405370628328937608245085821796872535489293079295989713798691688458962084288106779231786566387177602323119041819432635126252677464603116841288021604718500495631057634627234390912546986896365958604106097840780925130588852604899149515448321099702206332719619943230795488997128610179310859040393685154294785107557155802707656000891822610642337298864168621950150144091396450117075053093753303679811662595510263077707651750620957527724703962894100284299049271706878091996329182691773553374364003519157069892957894640365933855769840680469514638296144497300167247997497794330514663868426872761929900398504473607619681366828476114692856498954718389634235152177030725087524131492606209094315382958905016245524058085555084782206504313590655887102599496090143330039936527978000805796393132470980334435744363026434465139739740979424973085244480351374827201797000999499956440563243360383497833907315101231833883339333007458219433429879151681317022674713434565054663851617979901615853967715688419585425983960663466353787632470573430012949932429663743300642397358800278251615608536653226091017837189848415532482729786850307813288698708591538883791657856799537062383033813878023514980329112700169806338085568283396230239456134859274431046570467001985924937974174467205702274203765689386459177804173668443627804601403505243809505163162486788854802143919908216492706656105845956650976520187616016990079337306860654486179859988145697601832232187706173915034416482825645935720964889889952607648027792466417245119822766826387483160272325631190107562176132601871300224480812363789168094648690339315135525054351478037372137220205397820477041673167419703353960647391595413390394982743748731218463125098161225902013855218577885142756201329305892099053978533528558515041472005004792511940089986491515697711845580373479766240066308449549227534640702911091169276796396719341818340834167210460313807500087420994077905962013624850226868700474229772226539844125513354737025938698825679466821908550824730985411685096150112314468581038088595359184216623699505806140957161849265544182304463169900104606077495153990170327816205568150556533700151388471162766321981680675428816601375556805597487808753750679284581049083151615253830915891340269596319678794602935867609228623829258153107995515321575976248325582626727070096770325621633779584366754156329955287827508388798924372113797858526341699817556507665487054192454176417922446941274952541308598496822018856699411363641220327193087299195176334825129997049517707197183173173843040281646645731118767838172727414350416300695482603548785516391494784454104706890519506309776638110437963639469945833838553008100600402455040266184337647416029758009810455311696597658535345875451654853928003395666141230813396500697981932978862367974979136737770680839352682349855513875007900865550916872064814744453083658884000936742870717947587124454025097303336267807123633521706687486218825447325940030811842226916835804092960386798265533660611200830046417478453210488777938324553480327280245304279923134151838149287150082065526760031665534268396508533708752212714469940538386937833261573403145152979815824901748819915928813455980560149916623848884915279682899522933653897128719339770148871956248484386459076505288790311721540886652248527758214997818701207433704517677857511117909769630330440778087662617119056003767273584592321605096105885050567797636501954558358502117552107615795484052157892686950506079635453893738452938620196514716197537998792845674953637618831890099103210257643275258774931606115481366518419458149218144272743115557830503620182818950077149929113893530057744781183471467024830889104874338085183472036387325988756075783236791342824510689788766471196575695254262474784173386255351665807462422361821870473788166197575494913730480044719391708596813062197667999323139136350277783846307770076006843814357597067518246447743275823493301314477555397212094160182999411114598601912737272022860185381454789403228590049931746274670060327436008556199595527172333020606698057192348605833792318588989750786425322815409115302210088322188749894261902393676864904910332368641925962643571487725890344680777096351124204431222630159703148902382104777178412096335980711479818080155977028793000970476727281879291369013417717786464411477764889986230673912164641788113853196227336751234663714441803671753060713356646114260956119579411403713107827245994014474460620403018912540208843273098130384253748753399419071659155155007770903595951706650425838580032881918002827348691063793706811946854910857828496896438375847843947442002746410977009522947755345863138239949688223027880157027523817252255450705301681916339087779589596429204526878574771452893458669395817197660988275605201812344034066043878125746159636602754086358195013862462243741355494819497679361460800228281168151066115417570812962231581622756025516040719453589429894881932700731998075518232533137073882180395194561885461272734779392122474639112169942657669762269639713156401980651295044500013620569014301934901230312079238056217239373685656572192548789971397212878842343668416547614305474131878688821085568386770667353011574625589928594143211141645351902250840500458230308174517376128056656817669425445499635399031192877600559969760738799356527310665022705514163646083961951990408285702810816769424760939754979090873522109231409633356239285114581440976347883952305441562925293180884561891907084873331731292319841894035833726458023576521268871495132716412499159554413497296764672657794282782354718320020204387242939159303433871499941491876822271165950868669482325018753957074586457255685609952497603572895390786124651737962022601248702977387175303871802001231890566683971135223990619986255446198723167447618764194112960606338903639395127186428667580924212281614913676194335293615119839790978648879805224876027689757976232167153433914281352028608498630147604259312225101222690190614176145673714771158499978766371674681200201163710917757858567299852631187737217385873674681611524712426314206227549210997197250186350336881804608545165023194587246829238370429505171774231048371093542211608131238654370476036875217745393999466746780064113283473840519600907054363455933987479569268820245070238778340395632472266310853201343350284287861294807233482863039187255901247676886583237131549872811723733935782068788781636409444961545950589108916790360750282090073792617489084080662165426962273248774476402231524418553296866216468205935125210137721612844681290758994001799061801128850398271670995795736726985201922674703012065800061637441957856087272438199583132063746894719428797748169982557200122708005340223829388361775957226225308750499169304329341356617731457932338790765101690348537730134916878507671757989398168455815429861856828225066900519973488449800240080731059065620579056799706256468528799585551434067355550399076166263820994325626503522314438472728001871464122272106087724600748067848260077669025418148993492667738047962578076008463636481434370167907355353207375556858587037738209458367246151461946902049253102227534872703541581416162149725698955114809829384253667552059993542152158562356417194545628386026376896778439438996939964663020977803150367137474111359748636879124349011933649412549433407851253604376742896182225462978585227327857877593665930038617482003274548392747018756519625148242667561641306611414514695520035580815619632655352846449906255677031842498643369502286877891253966196645668514017334939890620508375215436662673463688368122236632596635537297904965025091279545763478059659384764035699396067604338684393726237856217888363384140939467026850721248457484186251643993377429573984854261314659227805893386198905248341742148133326857075764480110178109720785377748795695806674462833465814755230882642285015005478749130476203056331991076315509049572480084524997745278472826199551620315571745947970952850560637527657918223140184001156026624236812063132362829321531264936734955757614925158073925442323177512600533671696476200081669530858462012792676793292702652484454476823488004793653468069849578822850080571248442625352738708250913118067616747714748563617279018392260267585659211659400383207265183030207642892595861254752003733672579460481666058163080770996273710400918206937709304912915298345102504285867046673357539224266231765739517965251584387348886138495001770863493520086931753458119966583881663005161318231992417210232317724813132497523991761150107855349661607435875060574520885230992600635542630108143149732136984103236711434078507868599415005399858408954750438104337649759460287580312741127200923850002366373104256341626730376970084945182694589456276457685042938123139825241177851793492042857025772944989177939678409124211955040826339551566549045565859072910359916174371535437791926338071358237621275977229233104164176472813375078073037209423775502425782497025835784855953437135387290355391262309395062483292780099411377309835910233872748186386649208559113100100006823573433373899839525447436125937324510722668878166180465192164277522774418127850015031356233876618948583271956331625731479678221720846375379244524067788947390712717829758294221847138757087786431518297861920795466766506052184278531800409092305372709280642057107939563734176482163357574158699491800728335669582038540112480930286105692488251486579071624820659318906178415487946605075193224181560401488053795669413488483254516985006751953012505058380816784303858830967164370813017119642777517945868109808090139709070805694986374431905089929698185463701692304959650060546676712164174065901509427017895641531989200377615532866284050864853770867152035991390388758262644762921288640423755704862139963343121544374915673890530690546479028852928056512785934351007760865114752107804250205078610001620245597204202151743246157114222499487423850688286292567575854290832988976830094475257985205554608720545412083399842076890085402447385029495179783608312601940295179854681378340659587569889786169809419399519839972510091025791132106080126998829340629339501086912214056463803381703605113859640105131981861281856358808866051675556942515856592405048801468322971150296333746516626034072312498890432628513884478410269710448940988808454323949065198943218812584216759741360758865368065558721882980654245370298890514481554718415941002585324019069543554494950317444182299627779136303423882931001085625606783701544015118656203089825973145795359250515827157482715364039812490975289526383864068861497273993185279328691960626415845217955739486238284633888703399283767294906091766590322795982667198566249955523497323990409095934344087704259101865402219735392411302004743476869297457820287292501742357870617827129272731284011492420077961169912846249923992617712992150609426035525261869361252128693967243501870987609079225067081339362384044918027959429059180241851362562875529279068347936672276611012145357634764550147849230320504129957693899417299072914460696238957157465070589719630103263387509629550287326514164472707690640871939732613301742120386861862725369480451492624762028352083807856459527413207131035782688969625493170386247429996633122277957056539420375769195649049302360227221214753791029507077606243639114476361757649626861406591854175198012551326046577981638545690273654536680196754418520732345387338029680548256443088343585948283839035169365692827269522538992557014896928822751840817511038340717948844334260404738430509991928654685811639829789882263188966385124973119483017824003230423174655628459040710345701208260853834108121962996694000273469427416186225031320684525015892919389191838473243671312728510909127225752744091028865113573746969541083226642516381850094975787596296309424056754873510430419121001157536238097222622723984447587197632686574649318369050082087318531384093121924215282461627925554112818195790087513998074507872502962774379249483547725147782171790718787570935680645741637054934287760816728540805472611826450114431487533184207994621941884626392773282286580086197558699414062106410912444367034318535223924878222295473450704353521910866039010918358919352301077596585435445608405538680807097138413241740550699786152068174130846551056548015005959442875482962651826300498368526116442839097790194716504413476297478459846970519413921373479426756936595943827330028656135633556778653156268564976300728991579424858183703026187716689268361364174925982648360448091724331794717031259355052970712615777414782540872144437085056700898666422544355339252794520151615915179385248865062971277727189543007033550420919334715705028724940785172328236874844072033130056516243337260294468272695661917164870151950062165680956037037406657806665920087012794044516607286600258853349837277813123922039845052442807348629049094075289942286040609090597861684523216602155897782490539413596187011909550388103793502257190078777005219994516077237383152038422828188813147617860307109878843219414363455553869562200279777126200209213540761888319985492308164472701183976275885404105702879227712419168115295507535325603439509568802318998378287459054254082070010537690715633687492496736287214238671525553796474515388013705258078303809547260442552312230164428139276173670780474642704651832492084122998205614282367757280718264846174350470119243929314295570982888389522298889529521691382759231792063298859044075127101444717343131153165530321399214652751108765384107187296732924890346906094630775964389151174354149475780880436146981251596536308263375247068563340843455412019347195320972859550540709468847844325224519608062681061171799024371578481254493922004471625715125050914027212485966322516422490678197275106674015121993906584261134049982611057235915044498126456066047165589411159441432159380425472432589154544843825769328550538822560918069122872706428451584376534056757040662137268604295532914500073727159443145111923511131064461543056345542042413451100395396904865922079245011987646025093938097472383739017663861485581468166126262098460428504959187927250329606666242993757905198132923985172348803540653204283072769844925389785881552049053162209104732834440631001521154534987661309119692935942941124599665211658379553130904423285042907050510802236168601555152499896503368926711135729864856926921118956537790164238205922861622169305744786309164657837214771741139468160046257355675108077901925446772307422467736045462254657625472427992733238792305710376601958228270905135331347674809624534368141509299649806778342959064853481138515223482393004638325656096467033933885723836226497288973419565284196128546058374949772670663907276036268289925762369825923843960301692443214309371024328455620548377491615545087575992488740771425289299241683749757370149341583770378626168579628054428315628276216721304358495511355912930614210217867364818640447368854459756327960470488317886620664283843228284459656644828566802481859253035236932291421237768025844757542060107615575439811463487437181026254248262821617744338042789517111029422001604482518552013024363583407058913091698063505390998277421493199767971481750688248547475706699340447983096310827214056938328269376715455056852621571714322329030751922770232700812994516832720214035530923676444182590719381437160187716005491935119412515519521374034627867834012830948666674935157521914709420666633003012381492925047334585846128328935622181207002434404381219769109030610442108778561504521664006898871109648378584094134525876035988252499423900949919769014595629455460022327412315045878922381972859967097019631627217996536876207112450302101231960493372831449318259319546079519597149355943352854624314838045444193008629495303761504007587745123691492020678670204429271075620927262979768980920639823918573064387667369416167174935069163185316232727176315195229268609928676523360409085671356821596603986787813679976521472385279351914518190177550545399787849879842764748467082320921272326767555023065423711527702762045982451712572257116240390611973979573240670457135435848327054339554351570291671368608656118334736338118111549684945885447234912751374996766326491871209150977909183601054601092012888432174712955066464228995316928103075837518282525137027719245070312980268522665709462011166294031562377395036286119330664183487638172909225905910396813284444344281205161603821709968178968559306416491886803450128908667133584352825384360194880491431084264262385006893028985479744448697957596199908942070001930699781657569345819556449211600644625819195495540125996784298052118416503212898408488779156760317792558255283792637455573159770203616246539753431020943994895265968118060778909713955154012489385491377044160773543292476743982079610030266113930908684012492210633472956125095038992992525887656561593469398085862566915340231796345003782559672412174076608599196845307737778147271411125693210085610896824740517195943019825731021700162070548179561270779436735556427783250252053567062941713383318407688068213401988581178219502583214750634694279762755145590089900680523952156251612949000974843364831820014601805687239452157986979476235707674013769215767041187453243108945634846720082957593185944566327607389694821497805458898675713346861404729111828117489227235574985686180410441235669594401445432994063135623538490006333931160206450622027481304034542390924715496829061356366954565594698267090491387976357083749529371528111173726702016517207651583762540289378324593705506680296003061990169274282564878862877408225763427873041264962107123187921006706509923032194389759954796311158149595875970227868239639706625614140819748519296688385483756068521392193034601901180480342064317309012072680169905878095072908574522943699499639891209922825345777224177371815519454692679810823613916176789326559070655751226326210469851562283874235279921662189075949789035456608719540034233845413214796211874535142081953159462333309421473203136439149562009728827614124386497561970864120137676039386250955712819916891759441217164627399641075198373239468444130299539612078369989606247594429765346711131607960970565518745882936075564029863482172037892835549104714617959871630099676767427860851562186139718338343147557533090234232273628018919081680816646901001733039424918316463152566227116566995633765086641982364972930478888855017300847524342458775808789994990783087748890047904008518958746515244031938436383988165383970329940760385410152781319968967003223563517972151517172512447567120068211108333460521335822327996832153861651839843744253087132093314531398364231308343197324918645356336132869109000018031333052983388605068932661139559881049137903597954795438494095792921964190829568979713294275386449446771890216388273884655816874449325862746552765232735453625351691724837673827726614726111857064909277543341212078906571341792764959242144946604775204897680104827123235214572619302995699706986022268930830921118485888114913811489048089045687132457077058252561911816735485899653704577786454103315824303897283407595643377719183180562906499404385137931166522157248346924845290072702195388679124200794082119216657865477998855595338100337437034994527933680009011424405095292782481795939704294431667320225780589546735961164059029886265413716929939989256197262065090663053588263173417023696577564448708836922795599604474773153481214096736755151822807040870420810148960755821809451256390178132636336575283184669855423066363185704452545703251684458137157153589241457196488139217075857326027194744493797941719812090228351651478243495983211676946006370808293458744351724252623601647124714027673873412342074741788982686739070981545746426856979807256922031590354818124680344936526285587340095610532566094578917554306382969679326548490709245714473503383260798359013869538681714240212704581800027655758832636589349470090111098592496997905250928827753992800624501738902510724774985639301120300249970917501750849510954746790038263046215596566314977261111829357982044624580830529605552701892727520496489269416786444050145270201336010896784112614388072527687754351132711387287222042603283447786929577513744893732697597447650985984086546693018040418455116703406945993110230999245314563551517307119153526977874886045664194509515400515621302201820710325259567376487297677080589623647629945293772036815163829494245637648995185643989439863135873546093104331197043743267609434412373161116128473370084085627702163408660217931463238777244830190160590058406074933925769873399514769836329370856614734715359484487664223073781188670331849794130841717029047731604456132536439448259409069770846487722795365612621179406207019458304598932427414615297400079412176324330381521695628903762320075835921350378990969301584978144640525371961583149683060795399786585775615761522879799568962209165808147976031200079920162395023923267514827059674719877491953004382323591162757671678397324917596679883817967955818738312894458020067178273310302773587698810550418955599581786181178023755375602340893149825920675524559859593888642555598210483265330761870570747773480682256773654249124123447521778118330735953596191130415992046958250126688602768324949911845986901253434016218287978031800481935355473024852895783000500338512041645875246835067722967727750055412890220388966813277603287497973688471196399747297449907961004583682810628564700642056961224519055975142078864418186533009351624909563917388479108545051198420799185445714128420710910119083127917736039763396004814907291844526334543624320480894962493563138601639519161920194037336619788010513050517524462053917233851843630234016855571892900532755287634639299938848507198918602426838164151057985036519492586091277268845393420299820759041148908533836166221500600195888314237628144624787571949694310912534526278133583225608710565882185860190905615848871712504957732378091916474659353230465695064752554536509014600769345810066477202538865172555071943372029617435842833756385549431941080937302861459676248730885358727439212271280146037458132702249209314998613178206580023783392797717686379545436756360553314887238345449401833775568325669679226948791670642512833532392801169129142924883402761775542337158571909201941559646293312855811769826832675365090714464248158827225505342007992496495549275871307814437001311410706700349988756718608599156292126085302852904138518705764269571788654000711142857547298368011989564773439960379206532546873815698262634486412439839248798575293536343423463495433055231590853129259164274926627275037871763117479301959509217392761753110319044692863646099091765171101390395081768870115292323046418928230952233577691589076498912138367051833281852854551981374059268227468775258935979107853007625971894334641968957834928501109954300775356633826872035672808962452857373837788932429268936732614623902387070926133395485589702493383160193632967796900336258751349858078339368730166527791530151567108955828270952435616944225574860147150305953221803780133302781086414852717092938609978635986361553070589656002215914134440451950690453137763880618668726456535253830201163833718194751378119693682824379089830674413328586246165624884558027022885932046788448124331879557987456895173392786464160174914494028737471376538543198739664254597355237191595988562884326391884364112495949680014652902714031726146253402288013631452335708470350555927181690226564985985736374324903657413738451370253762140323445197891065601361606557655587886562350881360328471762494900798121223519321403068978159486314296164344189612151610369343150328345873740237467518665119840094773891277704871562230853960739204535604327697855185769519781205776975077045655470218681065329262437507391785663731492909867031164802373166717385797544351894656751341956867735613767400360749649008106409837885078165483438006411941614465173369094908693179433310775476046959611849520423462562574956574898770891554168405278636478321533748817759128944105980448775945541492942079047071362937017978541900781707418335555806518626643553458717674046647152919115669175774393957111147945580737363667875172666321103981938537131427251228655576719305408063065098243823215320684737215374025967195326522084499974705471121666105730139598247027292193065889743220732721532661477476631144684018637609652380350579199263182044095899194306052715214511606100994364247030196791362041476645682314515424348644633628580471596117335513600394019686518949374423182639387560636384625676848914354878394474167471346510108674317021900162288913404446056725857574763451718404319492973776143317028476256206864215662147655942193701132928596527772665263571884663732243617320931054292989982821127553183062393796481221890977023678918406937840467583485012394954434471815351947837420453665803677705452006275191769768040173494357437726183841978672251494391165955223107179780128597174056903758777839265507278317036080907668384201840008998416188817178744915891864705726893554676718811832547040953525698920053548774404067718841441933348228161593313896178000263163157139268340372435972349233388570050131509067400573272428972400255958680381421180879826291815915149045583109386270219702240988235161284412371482845075382343651230567906655335771931088837393242546775516601675464263609153127119213582217185362796174521431614448378153977530378370465432419430266301571309235864986855093840358034617142645802942327936742994948841955422127261915517231486030669597569934472087870014524486059509025796612842402996829134500686435173571560892837005212026467875516618179491744788257011176876141150672288693782960605555537669877432581182199800860336357009978680274752905265610300295808322782731580301110664721514663194349718536144415907914405066162340414889436408622693822031585373000904154739429136344158211250060350915923520589868171914970178452751477056761676251882982082137942133925487008709148441740505581693237090741258475097592450813481203007856120771462060105884353092067681654469725189999280878916338070898613537929411360311502911112307180419772667284000415429792447800886468092843453276909457746223961228972355115633692270070493184163290519464245419320268470922424388577487975254108187294841266790138590779502288772694645174025550929870547045353479709213575674748046362789956602363014972278954998608408962646426659241010151157458436139530157478580020474766988741905751414967354202061447351108813326595356626857992200628889852131012638912019386644164437793810711118896437528187767565469501479718855498437095738734602381213535697130432898567624277904319726690477793425114330869255297696953909114937404387898073654943743764537144727569326535474282821479883265442015009325764406558447996995353049054965827502907615235710108765272654647671670014529237462489231391676628914630534660415824379300592178981701881915671674057745096099062535601989534218924536311202217373151243795669390891931956977012352337011884582102195558221101042804252732607810043086169755649279207812148335303754195872757687047196965361111921724588378059035400237160820400755368819918045924537206965881820425826681130874308776668736881247205011035387498249880434545633867671511683667287353189888951695369357668864502269095250284700800570029751705721664564740093470817985265932491641454139995508996974856644971215211215011214276318310109664253791776314049109593398122869711814319915766851887593941633726282665964313976125446637588861352854998001983031743131037952662411165293070803674391584038832251243894399858884692918642219019873732714516216253299673625852970545741599074045479513596600704566398105588302689439260426634253650757561271603679462536403083697879136621507036281081093506379029285407344635042955145274996748159199018015694261439056562350407351863258867397644918006436654756399009739887760470338386102545218138777541061024275108904296639310607164249923698375782807027213844377604998661220756350580527775469949951459028807872922089105028164547089714293993455444571343236478596373919070013380217789121240888160443638728862709714634473751254408722891771946095624750833511950183254057383684650974442860070429855754882138593134428471062255287515990927376106158248776261461314245148244169922065380306714324459678890955903650608898216645012178392044656187305902784008464914439646916358217280930325046565671556933310356042728480377408063064228668453073385538447613142195583415698255854805062462593069565185912917635921524251294414619294034426488914571531506384909627925845870398296891391475411685683952686535960981309217811548852180845131538217186528376687473680292692920418532266550164069677968583316341366229009644738148748227636140353224250979803438716625141161416266368950193885878133232271007615853673522370083741156625739813292753572158503285650930081068828842838937126190828058510422271632957712104841014658075869054315762429259927374936773923731630446903458935243662979452506315926289449789553117585400805018253314679268037982428750159706144099072515449556379603167301099845095845305552019548854483523364385210797897698136922579113969540340446701951092791324937450747633968494752377537425347189652974319568177619919068154778718395556032846212509908102054891182095003018936615682304945758401175837249242498238476329394060081078908329909419085356795211452811797545972097660549628022776522803227699014089283834263328056049626939776643310339660604477272345472655837298645428710370141043345908079427727683833184857679622258154113302973564352782666727968623945274494689430757277293281297602014622141459286981476305755007913176124694907106058609423682137012732366213097915519064792861934947699483295433635432442841034103547643530854032984178538458693454028615674248681320062881821534472888356523781322727620158300715513068535716279892495753739238628460040054636364659883683592918686772911526986455713013367640780000912206877836872165326647029082479550279013773764397357962443421758244419338832207190663521515399236595541425326293108994280849582865957649966964299546636610281578151470918153631078216386046353921354297473041730005023548988464124339096870662561646610050253568920474237094721011202495583419309719882576537925361874800704679667614111049019874473594488826346494887225759863730953139552834565014799520240480783656001572499276352334548968130849670466509713006216128271553939104057794450288188302128452493959626443496943379579876535865767088235892781885398438233589751875900812090226491736313333058796330458394059069487325888341702030918257040371116886023449877666387255886522036211506800766637079003703027547523052988288931715192373134416530379136396609389861735269590549200867362925711675167185070702570905918534754277674017356625592024613570041314843607925300115929257473038651403178097596751557479666580211866260852091112340544511506134185070281153777202718551841240735445802849133913194200006676754000193116945575355570708047726057382076024438041168897893561035510089578520016335517315484585052504612361541909095403096227742174448504618906434613559260557815667842191868497523059659509550102607272783549866573356278216013364745422247322431724957089163432339772061450523887872470622988758901222667329941788825135899572914837185836407181416836949692387588545070598213019290567106398674483186782434422851237907779879470245261293439065027440990421697375727059958329678712116297867149848769814374028385555176779833733850548850692500376592147205868342717496609545662106172698544044063903363581465535626565613082773326344024040665365168528154824372469025108858459563364492075550056340441718289926797201069767218162856721485919871990889867968658241223623784579277662053400938046200829719518145538715422601843925714436556325122993518725493192508170765729297549858363403834484098738507120803802451660224080216035509056609312523117798385484302287518026121613546172002670679004010353810651640944953453072673453917962111378657848837589517652135615019507197184919500649158737377267053763162206101639314101211920862719502594467400734134810842494928999082704349090652824942946806574006346493397863260114203569578768091032687339047525906078048255401073655728899524268825787186262865029697232673647165434010381018675918653086852000518638554453893634638512514705368872829317016653518113025505045382493869314058877007000408159447622716969559079175275937730755106383513363070539163729083469470421699262132388843561743214236528705113939276121331757844005509449031212998379092457667532212537712652630003273890485040908341433624541446519864543379895455176421648609059549206860182079392486250246984320577744407625353327040442242938081406576644390936826481335547245730500517372658956943189815435443771603140926211776055596180089942556408718194768315637778602560149166233130659564059765254259256398892278892596386869510989096198591336105142097958992812738975613094455198321712765832920264094592948455518118936238908811301675129018215946172284127433361253901016980199685983193745707639319001259683102927881152379005665864090075898527868254637823083172515530834957264016614306950774384464628884827225203386325207773704003655980806392840106862793512613702493064781735995159420970086626147695690925076900771424782759526503597824143601061736834716328072644646012910219846169255150900567555648792579131192812897265763242198248675136674378647193535539050098833733463913840133270015373250061564912438991720131983731329226238416176187101845427464635537140200622696237389340129059305921345766817242696170782268470374277828899978507633444284090126452082040748150686181315583801590915244664725080857154696998490392963238137076882371266116510511386595582560482101434915448725911370907322811510889189176528308135101835241369077032149383327793918980859426725872800477941464282903512925461654985114787834201709141214048511278460577758540125085680620767561839692383495579279824816074995282449600554214276887001823685065652946801270514462384118610961898550173691748778363326399638783639395659688106410402507423717749464000190752282626995149701800901237769267498568748645224677639610316920534675340823211522271371056371764309808456291914575448791040730574513680185563516277819892325546778768231944564917277736689483306379874797048096836447568443842774667715683309858089478462672607600452962854209352333025937469757679495607224824135645697961907531703498476096814285233522168706269532642625527559790534539457759548805202479075015689940214504005583996190091219623061629188986804667742787264577597635207013309898905929887473210438391460184072687780571599303066543265505250174538910935867996408941184197777198538315859022985873596094670822415721035448989296055601158424434384474575931411185839176776471951598863494761749360619295030567843285521890942476700784203609365705697545245021460846803040761544502219004947741788329677762969877899931037582116232531189630113731135709386372955605023975308163575601576947115815733849100021934366688187285691975870278154900089154951475709923787556865726303031660299304270753432226824658613756384676824763888259190689404633445044343654895181900778795309008028786637686403635152209972296132432346410446934162864929160771889729938503373478403029620367385139118441662851006751587329310208640459825885443992834718016241942852508275739232061064214183118730422155620345570253856048458052446399316736122275393516959840028387197655655204185518293303881117895674324735057077441271124414986259561338911439194769611153888705313419010891407422390377522367762407407065396333421304076852240259660153143203238406831381500708880145150632948534024465836781285154148900854178440333824315554384323556878717401738641349109971901046421008685310067842904855940386965054700760109616372504563466006833895654031903319858593662869739329769382890205350977321493966352941246863600350949370653203752386132896700438525695808351725500757091886233959841232437271291096174147501161328305570640659032891168406714168906452985996521777364758457817212773583382114094991661989151079153261427789333402568463108132923254424746726008317079267247760878324327634781770294250776651725407092180168426895561152218798643357513517859309873440639841981556118706479259957778756146191047663435483880598523307907391652935190771282523922861517364460079115983634512733455560113311497979737197226167529140219917067053991515962272443551418391624491132464588381784745619795464101951204355062839284396711276874556781745528026916781857795236355927148575919927724504590025138113901747482993127895776350479287237258319426661083829910629235132408894159481752775486338343226186245390655945186843970170096757146053381536627683285456855452018075095267892431206917909712406675934645064764873504937745010573491234026281804919051695589003564552278120195281310713679131216692013267893314359517174397035523517019462090613164383551777122259133657302333319159629331955362834115669745067574651631835893008246230909927926566778810545314766283492081587839742640527641200700500619259696998787098199265146195463863584864064881345503028266197707585764862657495695367050639805333072567147629894324433080938853385112950923202993366610433416175611889049317941202309345455016996311095385050597516147005920302450376829873724508727722425753792206280058401686282637992930042237226688081589247113546483265924856440950791163696824824407146133039020770050543610582942090185756337411470183017839987968691946475405387131077067148005425510485732209905501011594274599038599000171004746432874314059503168208825405592085322480816014208440074687084528289911026961694355707797732771175699131806873112918707144143029233439695639266647602148280882341677587750338204390791399098142330437218398588349870508888337940742080987653448496857954866071848987123973450416774242336247261788303351722064751342205346520086838753040073577965995779782495175164756342493091263985948822800171157980528934099231629041057509119343518299853551986888038235685715117428597315769271542469326916440558223926766414997267959381769212518451008228751326544870670786089209966069976560984810628634329873774690716329538835675634409238172896241041093044605370455579436848711602777225542876023171478092418124563420387686756789403815537001067104241024253387689906708777811336295117824009502247698238578796207811601360920114424731034180032813377522016909050672607541598475827275769580759431513800439464931719900766187328290532632236022946438022782216901243095984511230516243419194795292076646675808213318723384999928725483861448688194807087250248939069819245069332171641846837903256865224733894074933180581389245490220833692331800447287693348688024489402498238507394045112107929861271611446482970277204102497365993442654805236914951886304643822812641070268990609498569514184152568813916151820632712268862373385886537379979589993392639269462300061337928267865601991817512870746359446000965883339749455405411528125926322744736585038858746484137966447750680643506893045856417707514755834377831837199667580189251331403245813246159051487183619904745969910861226381798698731003301067769002533962903289019118143573616015659465355373766510510383815850166190395435986622600136714537155571229995006883998487549441737345934151461540024691233348835885097881694145499119828166034767542012431217772917371871335794238920433600859932198227856518739008750439750610004176440980931361713371707037123894627029487299664894262502530624801031923073292388246150567518147140960560247307930707284629506133790727751177515860933713824532802882663048321756806960082790707769980914196501931550879359450715279442072077608958833514900699027899108181388216661077484651577426167152066227262549696204328840609465459844114695096033199100410648517876655223973602911547562333363060507466523780620438228771326542241085818179957957428741232170126534364576755155217186338656272302622162741623332057888351332242730938849676583721297929037966701402280487770081360271536706606765352319849497976200083574009004832575718602166309963447822617581592761957783388617369987040874800832305410117938447244507455671850135632208558775266843989286438406654669318484205884309706919677739261009959156095483063876289526329404783530804286531465944631288031556948841627940001187892562969845737155145549233529728190512543104749623250168705641713847420945486271375687010522296074986655734070245529910066077547202315238222474996334627726900775341985232444871496783381684040173878495486960337038624775673549182295721778823966643300963288759328136312030528430031775150257264857973195904104367359435506337093965651991305836976724265003034625212822725673133198504916434507745669023397723241493684408499259479123563695280734142456171019761992089801095116760701137425414317639221033930123973189967195424600447310700852079299086144230638987361229408861258646449628540622586152100497535648463702475146502336997501343905902273553082303052444641122723991205104110263283233548891955357432384241970881308826744044134286933129736519261339145574543004160284113654976803567807929186675079981321535916102104676891333906348991471729586712399560792886528469891822849283306806005996623661739126023685447027708241197905645066386878508271162164091929078821707356739012326724495158312253551297733729738422593251111263320009046627977550010729214543258575187468632984951381605538546006253343410408481894512665425064972243273736328088757118351972932916420630431657401708877544219242111371658660363393634877755401372334578382725759113569554648522239323112583350468544151959358519457733881197002215961961002290603578608994835780889966693875884322221847604559944432942841652929805599473169476857601398066067024866080591967077625567033125626478068020939290024502214416722516365006467030355783281224303170219613917455084517613582838474157909487291412782191977606532476410672451190165054539834777647426857230945999194206124327223913533155477450745526042246110536663549095490025759189059998556924190646742719479124022217412905827038513449765028608106611129120142546277996678101746550634939450965832289837061570682638638963906340096774992639281263557264837632388035653521708242241257220598278056452172248312518932318246162968539105895894681511525308495042923626841910525195834787831639496111899256324898439171261809627624701350415593815398935696664837600496328237045301764048143810313882698043019963233709290351604354615790638722104390052779540181000049965788031020020621891378737339464893053315095132115963916138315379041020026862020090032675401619957189533333670559613737352343756797412670346740120877908411437538683746004710401126269897908779729535811580235028764026915784896076828187090046592633824624248034571347747413523371092190949031872846422376990376499770950464895975630789263512142730291138902857053483534850789854087557441677413654896230665128897882620083414988995453154479740678288932392386641313906368327911401020376940443797622822234933831389837474279646462159971262509480700932693675133628043968675487167628279907965374549330025495939004465831936905044733959493083936967949076958074520254721400091680686420838126207583251624644573616732602744963578752474570117350484497544256742726965932684955210792533216287783161540187986888570742806709934570862484282969444761055823475886458516925990294866299951048757629247889437067562525792482776898895822581005009679422394256354231804451993183382137775604095222780061324952804504938551126186826648312845058779571213008058094857511295970335313023213929134578021515913602677880274367052462582938287022503462404344247728500989921069739088530343046981618182859349234819426946062859188129388779301862476318818694611470276264356870061314571810183950194364375063299293570087629131218355598774071207931866546108200691719469307759938641465499157740432737111075124403946757821331794774142724984138428581235013823386129019331430179228548510255903872321169883602870470689873099295006504086574797701129866394352162541809054209424849854228135230719271628230092336228808122685839405453359449931366375622921791374549964480722393555338347700549727474980359853986713975195486081936019935701474160221698093921680381021253515398006197033072990790241258939348640945708837592798504533925852662178056313550727762078930805342400950897423975597026846322357618081712955935561061900477165452034497547293625515399029554961803788235048315010770540600781549739024941865016604817446919362252944314115563404344511830652673748812888089111368011910182943369951661131344836127082478586266765106163622566157537070611392284160499736637796019153658416128900585626270528405896997621821282564770971274048539303460455331239302242786960187714314042750263418187253231420646917324631775360914805765287683958978115104379207513421230801031573332980980278857178823054633958320776123366463266918432990237917225189284233883157742084397264452271682803687340264150646526915275183395111875189595466294918762473220009567299597531413270082511081029371875706325106105974311469873282901080030171454401780090926228096115542202490141866007270537546132952160768820910884742555108477890705712818080845847119013137001947751247943428719422671489350949920880712022820371951675514645773425904026642837903568017037759170954597984133254199473215605589907176064362752923065523438120947888454361627897694682734921510263340931925324411471705388663110646524531593095584176323556290331242440593154602476266658971000791203551655989655875885942636450733284022369350018498109390923279743070877827448355016915121658690106887601831131782078156856945775322637174410461844162787525608790062640595105355179208931598724411585718020376895882845091163640832455389713084620383499056888904974674925686662392943649883044049308109024176990926958996997078084947669766832025898127434911597662948506404263472040448840892400442283078350591248926303241757205657327961097163303163513763054060522941529897528956739093371146514335886538708426306516522072439881940412587592590543050234975379709107725642990680253094822887669309588499026149799689237184331715347233686245495237292717673305543460366081649067304741274948248166394435252707069311428742952855886239502514029878229289273143870509795322048903879388635236535185497800170161072285052814830126637507778071302579144465177006674515558606519034502634289373956844119429760538888971600875211689115077917408539625876098881681395156453562360759090151860559279884154853044031862794217174800984870644245161081976912745513943247017021089786617702502948691705460555194141083471020341114846006888939232502045294798645535921817181874846514940803042047809162624965667878197408643818789699828659138449113565363758758908127907460305193622447880869583251883080987486067589693316558811145678696853332394947807126217416302522180661093970211044911414330570717806460040371674993109451230181693329591917405311002739104502433490656290352906717705444216830511090725058975913434510859695162312579212453921659755566145563360467750672539213567885545071982780376061640116638934891722807692624778857116425478607225148546979124894133778059641752136106512823364600469563072522572943516109126342281278407437011257021050807868442352751115547356544735016942346494536390381355999312910671440707753939899005350293928851855258440754144077862961677849350362252281648260531654195020458644895076817338315235093872882750348382536282836977720885548689745268889872898142156363263754789585528576518239234193862560164712448226366107266269596278615167156578247488895980666087910756653207224440986386537861371453496510813235483760480813194939439809117638804943197269198372313605772873184002248680343010099908133597782243628347332514852706696368079532404802080211637886790459521602103919797863437275192341824058011684514213576949809787806672786043752113269824479585291330771344268956781462135981333351960108418414213835819715713371167695747707898093904695589710824933618158546800163830144539087643904162695154130438869864848540831833228198571517465577365805447249466578790453577634648631618809513170043466468443441840175210011260686563424504544362732735747579334610197191660976553130481687136471151639767630440630593875075309984393129420885798193043254453303734546283992376034586260113579317477080450787818712614262567943069670268273978225768609917841214810248960825942280458902654214436867500298015273100347216485059000934466149802045642181488784124456113147382828908279512512098260371281168656061181055331876921088190943366734789024299650494237991260608405739428978537166454713508773441314801888910122175458220565615748191053359300243879362695773260808735694854173659984777986544161378120238909450010568999883620598860611082621716563573929398112707086840232725936212741356911681748640081056026671235450495620146454017547784898282543978603233932578789581850140727531960555788186096130359575840650708526937300641512131242557143816131610995646776243363870908468075195638356724994228505950191495591194435032756867612042851135103152052560433678756521081823733804368027865778580892998477825980403787389709744588860644600593280112876327943986623301084447999452106013366304489238753955452241001311055172477746835638974075031912928022468050422794712706700154924833125446924755838743155769216978753568468620834683614131335902193529106645882625986421282185654194515956401531690066371573893367710190898457917938281399345709180766948375413497185973132651375545228122369266736062237444491465123908291276543243228198713722736702828520671326317439817497521275267201048543390491015561560015077492004809929269397935415533568694857883876368980219274006811634653571887215616595677691972184924825295557827341228618382197922216537784895175184801515751362218200853588333395053632145202661399550306578026256653076575576066752508801404043160929662560990440710086992914188859393128316500776135511457982729817159118677869261942835517020119189116870477258730603109330880728998025967515830426279081248063549460131494776921792128236189416900181597261969202192983227964471791941427781138950284392810213610896776397303519794540241792679262101096170753837770493453042799233805322959158718527940951841167204362111732270340816814303877592911462720637199108614405010380720233995598678739987549694587647852503809769343842081715761351947501185278782116506447082461776035597649225701068816694570332645930281932123905257607124887318125685162091667230648276586037735111617951725899487674425598801746409450799582315547527936175428569855494421760337786432302057496502536885363280709309529764346253717204912496719768509152659353499298020663044699838573381290578580364403536718570647166765680682001709489830078373205069661298355933405849681358399119745980106498125312767514726615351618947011525679552160856491719141696843034778018088166890591705322367187895500228677294182303824796538306475984557765284081867469288225480745095353245836808326284238418451550313478518533796973407256215391066860876044473984655141864923397736605552782828599960773811973577534320805785992374865414662529923665876727714521433510366019934619596059094956547640941643903168507771014467105672540591492044158793931075077633139458178895597750398436235158271407398895445795203947539442825676309846756758503159493457617647698008397513902406604438942215781630312090744611271218352066473462368638499596436431981351916211837593001610076164385988988796911836045231694909890081239980438883880093488360035467537908864328024955064612627297626110486379028147837270001699228572771303117202298000460584245530283156641578556710728078447279481138187624180385595160575074903754241036973930920356389753285029093135143574182091218498681870216124783573232891080753260602882247133077342155093120938761556278001670987185768347052324784307943331169151269123631965911247996500246169412109856386696959646280771055401008001402215076068291590433644877227717763243005538309478744190679321448505597169709645700948016428677436365465326685089716190525523640962260965092592115751774937347063712917607361284309767103864053822356813104974521588733585968584293648622307622037923327257556491748813293398775890649821047888795755505123702680320146189596822453067538950961793387790279640285652488797889964007725520602557680956218160643121873985947665869312149208574260082913855992354547584237876272411752178582005667342547397401883310273422333360927419300357182520671827088292541946676868578464848103923481453729707760076253714054786942093050155962450365637732664109146658586926563325108796026495069569072826627285498191882070000655709463387554880015595118819991547614055415904031930263783160625926973492943856745440208987978603383246899266050770980274980486724437986172395109978990795536145544109342431350968841891027954139204429135439380485958037773927776868160592687790168404720892439206709709355875530902980282785528429072085728780156268987676543173101715001676720962413049844972239509591882029627867550823831398622784560342853597556354408747561665869319873572197419114692552709975155469539903621987564714937036060819284751623841192017797866607342486121133870765068681741445451746910828118234765166694837459827253015334303447281438776281148273690186335342409601095269953249579081242132563559226688822928342493921380315063309585136385838217474009694279962572243526930472298701209808040070358270031071051425973588085703622938760056792916855156933127088386045873372470204985611010644756798989361330026774433330116117264104237064838600987333827994607628350939165378080425159819615373860079657867086948398950900265617858318006028494572664319790938971697449801643854825697418054840395842216858346254515712208381292464666157530305957797348325211773932707130762918374341102100671579819433921024601731394888167124927779523670545922949869311715750768611308764983735079716800969191133304414096251672074302118259766989212910937317980854037537260747220658319714534841663116364348323933632722634232255629385740115251146595393917921571146392228754661665121271290630822753498203518121600942447221322779386794686901621255059431268924088904197067391700542952543800963543727093935098803081760603859801673229536027536915453660996488116699731011945437024720910017415536544903239283986944451932569491202253645839462329779505863871391167044945867695288180146509493050030602329820107968271274241273699266722254148336356069025444578666920016000311833180463775104068253416153874810477319738802542552264834171232441041909562729065972265671333944384408662013338639196767094826831925683117682470130768510388055901150822195942892488802146184765484449272088799828660065077088987172784697462522876855837199544264077343965380844051843571822719527576589524895237536401858689582742952009937156003059391319925557868622047649864660356895366332334288748740401491560219217845662996003183889265554023720049458456885143153967305183744845360552107067257735368243309992485269763246680318388369815197174587116431611630887479088198179472293619751299390594187167953261870851825648081342828232400306017792366218086486624618161286179010271055270988050885038844174172224845293314922884929415140479476290495301607113462993797805977613004689039999628498146049310802873433358630977004409297248702507861751331962258082597761305054272734987718008409299130923188486623740802920398185972435605880691875702918378914446987173694471628217479560607764180352117500111842659509423269098493233999341264616326425080824261024659493435357129119172493985476977824703255418437001472743319052053462909970431479813627086461909872217453694271839757349933717725640361522463388205336555240080356215372384484402428881664796103588773148657042950605449064083843082290368028516397052844538863017624063840530424011004597538994119474011299339973550863214378470855712667825145778031407983489962897988759806540648329782828824514701328395702362686684265860516481334300455344985701781025479166334393367766104405395069242974510896375981212501976444756232261944685322844309553470252048925911805135791358841197455540812904963250641138940085440150432265697024828693115851702709388245487050108070423649409858124255212505568249888450849606739849800706377280404801372668984871187636547041566168581603598573601934628708848011931659085578576809110368612324436664050290443033107392732220571988276678645904034747007782274098984947128092346805888195506973066938966018091462423470481192724208137440161191090818009028777753125316156565316884847601432837740361428401970113485499516761599023377648606744225737165428854647122397482412501067229160921710329488498345761899265608168918811879036396474339752283789302772984624306894722588157893222289105585691021819949126325538664455284865810014886415508701127234536558910704241642576957718814573254430373910786172454767913213703037458833851558617815573295604938424068213336459883363421425470453851513315344779181299355616267435319739455882821968137063617886207536753277378434024138293728662099516353376243950547568975630941470226720985173949512368805637510364853079622149447143102444543859032936592594712642702119918600254564245804693103010227765277072536557545404601433469565063071033760760286769179382858654166294988502750655746514456827456236300146996746021664869011331814372860365916471499205061930650035128760330028623931747804794579570348350112464884758626446174137170938745134923027854825310341965847183935296180278242658529138069209771184851528051344767340488468474953475089022346193613672646813081494892716322530588816515990494368975614125176370707330822696387925452542726957433436859720645943181991674061036476552949175797679025134809985858189352619941713499962467441228301275883615112052911244584373301304793675582608698006354704471374964900694035644657859547673749528658045759228049253784343869446456273639235915802417229257500849290638034530942942303908218563010424347876570980758341681595958095835293389493185769934436394670912061741416169721346405219932947794209774794159203715576354661550412097978455245422422928879939864094864769386784755801750671334096247454936246855973795229889727299324176785811231763201342412032253091199366357151733907453997377096559287388506714189795886171152932580290188844843372559324662739325851926160974897772823616663090164841054631354888328014272794230264748289082894289728031996332907115150682026063768498216265268864620040428248052892067741902018450209361015277480237302639905406078105515061308212226073481189904466619181084644688145662079171781971683012606380913005427099544017338331764542934414630655371809279796728042633677060906097637426564034105913972329801181828472340789554974160110496129254416289374933454084980271785889694806241726949637173745376961068022912636014010282514520179678641511462724230383859611335771469671247787668199455012373695623148281325319692215140782714171586060613368181486024966286639579320192519578631453891232372734820222053501722375131962887342945807958656783971205241678962124806992732182601128581307785873144930540938275737867794831115842665173845277276283941343772078444980792142681667282018306760792366615371181563245121730984016676974302011911496570879258427543180797707472916429146276089668694505957359407939571559297304658046618909559189508943625662526346720408031089271232801245878559546346415800516671634578001261350837654161343906695318847201444745642658820659649750254579755343273471369594443651540781455822113392860024309892203833608979196864894711455448480766337316283470834165815647262058078940289739405225799827604118120470066838903759686889871224491574639729217893397274655115833202528535812717828161029177148868674096700830770080300429098713057102469081391249224753756010803234557765464847482791525161987232356341450372533836047235825008757093329030523679112917242357093367084735764018635027300502581464975671374053947707647105452125755339405426635697016026463737226709015857835316206396668015908055667744348386087872312122710488546246947778982920375104604655283533183545895494325236020524903265353242738189201814100550203733497274668465837373780753439424649950631239937690524891198393476723172802093671486344795330334087608561207689761252918582040241729134130153101047429165791466486631405904330611477547354607702080891678296179878039954653151788781259103399120528919201852092465780720443330441297839047454319711857712837860936441466318995492770013399239631470775134241497408975199953851242052087075929870491135072688280159371072655939671614232828546432146598659796847605219880876555444168043412324041765089219928966094178755233875119508327582319390735645169643233833648729643778932971476796930899364016622075016427565168293604073224096956493602838436848389523650292673328935546887540181546273919045532581817793095185451721389514643977214875355132602179199842416638997965714429657206079322419218613320538674544027582948715211400173507411243207182685761771614656928498729568762453887320656757566934572172386535104118523942371032048913173979207221002407880885347282341106709829102199242398809411440506498850302831113013509320416753414809129722736000766320304968417066486264064539096278280096627017868127247300891072292072256824692085595864719800534306772586540686407702651151629089093439372715065455773804390597528570773819842179162128915316669874260540717230161683787636351724307264299148261490700648525631145329653111968843425929495611137135925320302300282680295755093198476489070260364532370884039389011160320853604191362771958630037581658045038348681107693180547133047091194513527113269366630886222353893641214359572401666811669517187706914547237843052522025202968619510817650570826580777666804525920094445021759635346874438268477448401777214768488256438436625792755164672925432934477050717541078467430696799702575750199200230401554145244047281341213860573681255717753309180608630073516857273051293667613982935543842986914371246994522444932779176110693809086688605193920416114757051906774652891574957068692255070269829816753843453362732978627149443477115738190212506452436848758999931438273120500257883454956849376299587237280160697261369588524117081875369478416033662972764031808325997567087426880245628856057362589911952018341354488126913241737942330376706011606659621315491745207476226251013108086453103583514823006931089379785241504553157080721085931448456434575436957648437544625829420483629410245967271074991073852809143854913453273379318200624005808647213178663094596108825909619040307846817891964278240708202297032979693506021998643105590744457334258880641508900913150504227581752800061782202459200628201616249285517030699751341744164489491017077784847893442888816219917086840075160170217483064427747816106869175898861355653989434908097406180417935439207700777217691119415894562715184127200028590805559906866713363206433217371598672187828437572867671859899314239069094156403511065400336101396831805933123708900109457739003604485396076545484063713989312198779479473922950504579223891035108935884169036500476981040206903553195407617400122689948266834831063087739242264187589029928319475635968659079694363905785333782994896586863925586377339513697503537715071839742826207395824948290907671659931754138862813259110678535031311735053888380206718254695691608833764160515844366608290869293668453312676965315962114114190898742801845842591334632993575991143362372049813654919118938007893793094772051085446000122726774766528562143972675735952274552980384837494262089430542658543634610398966382671924206338503946047689011499304250258525184126911619922646280521227295002510312243015139116521629164303793416508319884371498232245688141681221265030295429261138334001223418601523757287365251644118799985307149716290388115664733346190234981531071537810945563698911456427407860884074356944773195212612322291543253097041497211136517824223244091823985694640775609558378931271524923975203599321084229928170780414873873656165672557239292417721760294475433282129522227618202861564513979022639227974504449539582204919938896151080139689120023777801510991729304039372438853707780621688895105002637732134392325727440130808953225161481653797999144118584701205779136825180679200834485404542279586248555832436454274689607638481274733011342297144953474673247594435985254278407051066014699363905527308573582712303589517183939279184170305752974500113699594337570490966150904630293745618672245332404939335867317764754463096475029614080200058131584700074420741187753152967517150752265964230564243564871271753467275372995355485154274580943067013247385358268292995301417240341123869504752125208802252110799395084853498917987633101429498989494196010442957152627388093263789826742179334073618235893393886286393849091924281686069559106502349070743573989486806214483947803657016064278798519954279635275716386511190116679582893392156553097227446605438885399968758564951066027541202744808548773660069660963531709627714326282494934180274892572265597360273135786041684513283240404755610805569805475828492037886800978150971829920504237651761339760977889129597581144184192549535723728412650235527731528682361710067643228860288565222623180950119082854499386539845904079865792382357326990893303567411987688605762333365273109246019655345816095743351771748045674824753045433868417156897117650899103367569012472664651831168635051343537662460692218418650908890029489041992029796421729875590138761375057117207996044167056486154880406369638321896905366309460002742725246803206513544404488795949055376555435017096543108033996780877206130025679620781799479861882938976169094084108238691518321506700927582716339252405003196566995270137852386073052861201369474535261357222878454675526584341431470601280901201910908361941336542618851556138590511633629739538790772075978376227239898523047028589361762990136399964426848037693073906460454377597287939713959358337369763089927551329931572955740460552273251233241232594065764623611879229586392624723990328123932952686353231549083257083932273540174939789585107497190628829611189627446144471085951127477625522383736280283575310167680812617171050102257954923959262004762153179838412775776910139184449291733092344222533913926571497783523381099887036862085705901383744761511897964940061645830006974224551084013810375373193074321365485017227733270097905558797594803641486692878447547299131842096845280839223103588156742224041928921093664251410586580813860069450359781201440009617500592423418049511440913915458764082311942850397005839998057176149457142600140972055922924213817160708872201966103782183957412230048248766869300005316311298971045388850219550529705974103053967392463653834273968853847368907617626471234125512145392190620284514011585411096744917010969376501956708652938137127244559645811442315479984427113072897522994175635654014751658990526268433278037907615218278921187256303714421510130152226449699673114136881713887358870991256838134735486266080001322014318564124246587755489193164154232997314044285631336866577324343501858257670153562982315622155997685185448378120654742945980105294955416789848230634692227706314326993103841765825809218262526898562310445644031418674127078113265227838984324477220011443556419256961444379263751693365394882761679449444863851213586125030864879604644287263091304043997015600915360989321131447123180169298381446729019928206958214822022572052079178884599103943533959816929263916667284661150634009554856931445015232052364700350864254115117061431758406778879578647812913766758145521033370083835639132405209900465467413562630243206107560922092969681599464949233084751672657668522636367808997178588983304827935315627933861392371958367017447067366296507728226895064510588327772401928144704270135134688792015786979211241510240306749661411555223429803049921027633697588833665351320808761624401110576399812931318761167119134570664008211146665798030644815495304026056266383443314429626035041246070660898753864114675798849464795235478847459565284035290476981380718207924707069415700773912296178629758275922065337922264853819315547800897360325665043711738962336640595634434099201171107878908568116568248977270696595934210204816189132863967111258306615080836255388253881240506265278342973734071123167472387963859816146160404469384227837028438416151750482049828729715698825435828427266974986610694147658057542590431156772125922544869935412484572052850826648280593268870608691179960398776026321106467594781027607519205502305479894608181342817517512682422039256111293398849401134023940348651944544930882735223809520636377378619428917303584342327021802496011059731317677903613000493009382271977447208873576342678357141725850458012288183340661987936411205585031153990167147528759571573148864231311515698313374228890813785435041432085829549522322114657308545668021868302630561659512300633113868066856647669135621646453943026963597810676388301059659844386926028259677416581233964674081685317486004215216529450485754328145324271845995014070859620427681614818533993888971889097772250189733527429223897063085812322397254666314427511600662545854216866226140833737977163032482407511078387472879498200453676782882510760952857851786397625091648540033506517067786061066093896377899959289025551581093926628564848658345774791161571883087958767192709214723197722922635609119969912398078103143976997619166724107402303178356981206167455553570982760509415890997301271823684043508877493869507664968348945048794227740512262828839212644316653145063741376642246250690080973917286304707791840531264375162043643866350590629306568514793952379744069168957181819333422600050874276318046487247055854537015043295164518756864398817693000407138088419389378879764567464166679058117652953001976132072745831741221834705470567057207899162710513852413236346431007469936386455970546341285790879059394247410654470937010375170891059762023505106578720059861735177987371833797413076468529804532556001939245391369604894463196588161474416156470799341412830759454876725939432633097518358819466258805375483564811273587430762674045562387560569181166800322910807445768469363762021470450077605003649758299573683564826727458844566645466014912189427928965096722941257064787206500179750303785699429006605223682058847259820054816388071234703513109679621958830766509793285861976754723496129549494849910038147042679578817906803843761090043739706166410096291420113002847272306879450070267984905750711238582854096502241114796689716260235661131968247931451604488877411991149348826676110792929854065684093108144286100707943269386549083195744947000614004386740079145819792709437322385221141663586507569170060698904550473375579577405734891303919545780947706588132392040138188217027346466018402413031670804108139407272854420609595532207236218636907966811374729019643927488806807920276102092319560519075846564800212860844771171737631855945785205007690101490417682236259314928878931372483158205214507736763518170669915677301506046834585877537731610814699475861470899812396488579592085730018535167503483933356615130322359958738270303312994617056629146424322549583414181222097843787809043499063746454360601939946188253082147285055357555487009109432614676365118255689116595764314027648096605306068549726977718150660172846656262405642003806747977567122434993598959848791300518135703472297602853686045753896588106108484535795300248786578310931599984294421648637905579395951779537151920085815356670244963665140098468882075017795036705280757428072830009495867957259154921027978209849122186597601018632476071035204840219148542562521303901166317231612949568776127773437200590283563399498081982099978700660181338635790113570152204504411743693983826001145909906454522686340665603131194637069316161709518895193274068930245799645696115888464060602912950901872339615980926707160175494905431099199124428213188783509491796849357550957102603250655660298785483966122600931695854083239512448425886090578883897129391295952902573078298123314135819201852614250206299609717083381657451874056537820308034391918972010089345666781565928195561550231147051482519301029258486684225035552188790817917149417321991125132004044757310383402472427640813109476584487466729543685718162025340427800173041371821949992771424796065764782578527984773809860499108216260347219977540373468738108509011453545384896801166819018777683312222497021418898473895825519768537344559035438036547136592876590764674024957969981617875076830483035086651171784780898340275882092201162273701222479169761827807946959311713920811209165587880439562323406801875885247869543661934005352041594605152526442267023702212676291622731714349401402756793764587324107122538023606711391054122450334499473253058124407922015869568785782049286224077523941500457398595234929282520768827923057260435583646215668993056969176022504862337984908775495326749103545610527534088390559502741387584580145711875217049038121624921745500393773839884318772620294959593817081735143355751296018543960939976057632452556365489875709841085733155919906079840872365898628325661665742758598718061162471212267090029545974411093092508063086315203143288355644868802339644246657204210830611171007243609910320339062972729853340060083399044410465407406615639283829606389779693901628071602831841526077361047897540032308184063358260812173055252550848038238129431748118656636159828175454268206998555831356747295576906805696077008700418495252961175492711799528314589118235953489737379379813183465637359923168149121666812208791008450437651821477780846154191108089644751861292225450155994319546764782162278210143865633971119941001226164924473598092968524789240141626891000042911419682589587617099438694859944686623759934579099222704783086704058020004393895768768528453976082498592292781134854994610939008419284938672561290422426191821029408504034608856893663993037895707511805908600988461898248375376491561467274166517702903242518069076988566411777932763655753681698260170377707391091076398987804738059631061489209690231802471057007612871368342352747372935292618292246622777363976176450258340366571796338570817944648588999814004916387336730268869943155039997070517435935191935867063918774940322582533475104800922045340961877430414624958199070375213807517582861087250689848128082044609437230179324316433077170400501310739721340606205137343239551711746494363170648029337136413643841209042071805501639722573487184290308854439961881723477991077237761558472189426976414534904023287888673039275857133514395111687021251002542992755386428405569149040795591902464517474759611116831577490809538080003699482746853259695857754278203968714735092088812240263432663792972980545133256974618163717780880898794898292962891046212825190352216100647879250669231577967728942997065007741462675733946885757759987332316530041981672824501000785714434555790307955139653486260160218296022624486228501518379655772207013267369112066465080677968682023813921325768693776292400595601253615359901878758420910815104090268648774472818801548786722720747006373618423756518751895102007816692216643033034004086181994991277743352102181205429153601232211710598418429657232540654147999623844742569635642703785068489418289539681552013966265905793408745666928309926545741706589507126310526443204104408459603505989001882884750573167868650578608916378968694223807536081037925623248665495014173532006153400688038791859775428099927885496280173803839345329859653155241892501328539478400012869732589154009587172789585590863281225466293244566535816705768175074364976284758312152537271518208148411334964325952792935594284382182357859466806365599949473541930517315273913440636978702569526134363577279388387943496025852655781024181916260008713149515091975550667090319405807924291470631945433688956379538381891802277611359858725562175958399088582982972306167784121120470594547543751992887949238047425852388323095779756538479111286501062606311179452687910994911746227227145067364530278572648038371544754642680395383327954893805778756692161362892907578683978357420688978805712679388709682849919833597171768872549172984683981383273701139137892861962887901983550209964486760923273601126769236076847550996007695000196708186002071673497719327665969657778629214103107356758474174002664351535813659130601400107018951152750626993398273707897131306763006510692571859291987286165030928416834657969925268741925526010782077112768728581101560488097298438555959324010430970225078510663731774128761405205639224095576381505929900360704579978619678371474949585065476160968797763448849599711800558025216820518467571217417447136304257657816238153511337995953219733847726065542575581925902301293734511117838291812648492999848365151612719348976081722105292238719803025841804339509019750086643002127375347780804023964117236086494429570677455693988214103166955150776550564106694819383365065136224241107873117661091617441074533550548738167061228082936406369608927000469240564569596677552695896712038849418548827365182793610659489568706999679378002921720737915635162363543283884400151721556808190085379241426961521640319258705527706081553860934887387297692881611648733629536214995968987435915349914410374805251382727971216236689130384057077832281077218046405254991736919564823591822323343326317976155185119927329816331132832111592738984467729168558315100557557088047033892927011355310000842499983541782910637027049089552811256750466408519778559774547933954187165290379817050137327625898626773956813420181639610194852686326023562155680648722186511087694575655108861735956451249291582621216440018175412981996530271963533538911038460776899051951152456659719616201280465896403936601759071924351673586187353927777759411175818749690100310599109947899955701425737383657772665008058093305192274257367745565437765274497750775945933729432672979668720176832981671056478591876985397411294034396098710007373427392966912670762574751492428403201173705294956709097259466975653419433708473982985796426071293559622575096143967600664522430015217916956123072500554709064208127281362195142512481234801025759963914297920963495840379978426260030338918665170389281378252461482424508885505067985446480178584048244639642471401251716581670720554969710348799170079621272872290607551330981571492957599390614761593758063794564684567608912789445768535391470548291816241418198936613510807884311601462037081021210811286417100861788190973738113670931836324042278154019609993534754961490572622583260853588545461578503358556104723289897314654350040201599371034063017545015920195917145023977421045567948062434332441220195588168884011420624426421831774760522466913306539085745282861988432693328718069797960607354029282969679696573199389229573156314555052175249227749888360715071823567458067119665560716637540062710984510610613121410564102366348094457987530841261121632310336781025340335637493218396079532374089160448075580953578061342519674613336569382931915835485660628379618996004666429163901456276596426497738332883899402725954181443190858900666356716820806250137292536996850753128892725089422034052945695224240191321847421064128633799892780760101326702988433408036258018454512292747550238378606908666031341384916814411203009675460877037117416991046384069314288371425724418184025090853510939357366141605991444289475465598462150877018219576576640511454224803242477620476532803362342734843454890091110690806245864768803383540937605976404200159187351655491925266687706281193180789367506157080527748136734705810126487721700648331300351285451069987283995812086323409782298229642851683894625426901768219260830666743960388142896818140188791722626921309498965548637308934511692674213546792401534123196214731966368490263188205802896442630106658442746737686855572068299330444850993017226941690309571918421418375442688938725211025291936924457739007561745567469061283684773296345988178284952447294718862041159806819453953887588938643823686225069570837578177150866477915813843715768699047837289658930378214458093770918506627830819862609360687811657575594321984293154966100830950120674352088341777806008728688016141436434660185464190686510543122862977320124669869852398596980026715630889835510255304076202730487152317108415444126307577155200714038075192208372244219246457821027186740021034334897704508039288699965603412673307419719615652651401813528510379581032797255926849056829944949610086090679047544661043231115553729266674218436720734670319538236885210950769995243441774236260751749563153901779074608189817628475374812123412417335918593970685227048988535582922541781657740509373398379202937712993271544446061969153129121337627631585620830061064134577880853328749707248660520171771737301772108665808814507517246323943756362681372941910583882110282814439097896457996277164462709975242783514558562594528124846274823845510823218704461159141266043083338059434200517351008230437250762627609387336988430009342600818474410615730944351766306153087333641963217244237700510010153346460929213818775842263349990243530183036505863420393567137244033371289111081677743965633649764126931553610092713380836445728824605482631411973326672321974556301596044913239244056177930912739218050021869449487148838498141630592814758925444385497926892789040514169815786103907342560528289146399006762614566312941149476650653564861407495792611532222599007034657493935145500677682916368264440946978769180255126155795630249419646435696588448309861630142458027291340979729414161199004288867903592750398434096027049960878393427360867357193508987141468542453144253426741693629383078043332776736222644552946095423309117218299698164277851336820632570814389351867317785591625935269971900573628302482947028475360351510963484472914982527729017659950053805401307661917392553507383527034105817627357855602019979946329354888318811898989676086852242323134870397982949882847470298441967249625429782213444596418771337680515271173300849789440496016332849881306625867480901085849748149655260882132439941207831083817667540462304727292308636407499890243233094499815741452544501377529053081321030607303804021198769513362187005969981110517403023338005898185312654926323418875037867918464554394520935127352924376285993315120200515593547368679514175642765722642743530481353465018198900300357911870135538810994626018132444670074746318614237277343018651811525348077201661582411641797802249060994780148395864493444993641385320148090026909263408601514890446643985421947400283847891426914587567538137994818182276813931439499035360473982201141285047198770767004222697259796885699254975096614473169505171132819497269354849642330170862802281609520042061384030159043697513572581820936942227318478800071972955002780471429729412251428055925181692961793517090596910033382252450905006114841870861960601975260686886338808783304193613024222759297147038172811508870061621330233194073934054618027409686489264617629698324992799144918430144001657880369833701730371825047261392355823842822968265104405235829884683691149785032571554066124480023778713407527651069451172067632178235650765445778062079765777951572308941102839084813652829146253933788468564482439308510789424166691853221851686430224985754203062657715798392449699936434611295522039133115638662223678352236502420088872042456744458694738143213824263805331485795424089775569888654830280218513855330942902022862202490296071309580519343781390089835545701877904085598392465778920126802110877152080657719029805187150720682221489228620703990491185881119832658167076856449008108518667850321425363113386289358022158266930736058728693714947400263951731642444404612292894519959800418808495573172011916890200917962246348287348136535670486945887351416675194645566619799865436047052339549053207572526175521265772211830250898568719643583952664113202546057629148645681942433017347229754869942160835893002778558885262029916646528147452791444134397946541424278307205158272516721412485828592805566681307154412345114212650219976115619915312040026429384695471494051263428027028631014534853378551473529267865039360377632376539410823157170092600823182932702537823972545965634028094385427820675458378142917429721847578126856049868033435902078772790399122152774572103171700653959593587510813556299322497061918529089796516011938185290348033310081716420915533340893669117969470765587704063737978485268257555579306600734342615360162959227977354825740761288801181759013527510271430736535175212323732635336694792703910450425127658973144718331947812534190679695185822287338470279353237750123815226077145349715910683358009669405208712721837005125511717702345535697123879777433838946968076793959888602791473469206008584671215621946935420261153354377092903394727719064920917199068845851056377771539717594893745439698031589398953823186665275046714921007488887459092455142272231883540415533154161582488619652316311716185688965252247108773422431583914157196834433342719211763218773628505434135583069695556386555882626722168129377876837957059591329972163509797518423751560484451083456269965619329319399846927857299211561128889628336237964114563488770628023420308788458072106042022024422278235364649866342436172037739873811161851970559468214976915590199733603964079297948186900768948649746655799490728501387412480885486589225349888290191723660632617129779430167337650459571245331962391272734472305889707445825196717046421822847261969410474986084295839029060929138054529086124395327403654321041168178535539582577031025409809784077807628523596584381787438008840385971040771984678555283511353589211095844313198849144338039830225885740358422794845574214683040985365322591751645433621208081974721101113622764669724776296817847379681551308889750039779341806375731524043121277759723318167803379556902702804777294082726068710275481019347574683997167463457899504793813878850429511488047154136097960677670157007200397619521201869967607140250758432697892488858722576696596387262393768362726840317136493568665720685045661449450596973413329704076500735599693371192623773195362262820393434064752187951768294975978350178750420733000008668144610636500270363898877625561460751381581486044584402075854463834988574789307469147435240737666933857428132487025472142863221815405228827757702174828997422068799241842421067728382442390894050239434181393784694925420009184124310621790442985815560651296487684302394804114575296992113832211681381377503340445137294253900758019931524377842587475411394594312812579705773553570188456457830016239808090647665626910058729225879251570741388901149332318113262995400327472295269114687602011404900814018944699625176195535477408751955069536925298650446532503024389712739930588882090066170732043707259589639638693733491754987457040995878435743983980845885640470926937372820359084347142896562009461245717893808736010662610688641579330024399246041094074954141384372475184894434567755320403902623283091241988968032665358701882686590869894212367996898734032113868511407368169005550075394418088242563149328118144413635507295333177354973452174516055227016273623941291573790126147743157918247409194697193797842697316229183504822440656386992852087244368837931871314665210848187494889666205619069062023538907384922604995260388511684736097422133845682294195325195649574588947302557395052227629944118949026322552362451713245407602639630942424652894202034376653619584692447993635460787964208364269753267533454469478562593049966529961407216636368660274904581483483894840413431881381305524267321992867618618124951407177305523888235480001121903822074120400626163883569995035412896095230795169692559928927073597338061486936668361875388559702564187366114652917529140288852128555425843043977235684078116690110609855188932286534976385424754208298500737573752878985907021192300869791589337452487114444201042239694165782577225772723126465020309208573210515886691032778857752233322506463455315351620938720576410530867669678692067165584940010594986866031489534207985407215149047539686758595408976814578826422053774446131825956342123358318994787308482080427116543847506246792319068908484329023477410500527181637232171360183449317188558408776642671355851603681680473603896767889605352762944468557944727971609171888267122239406968450292183395321222252924371168131150824459412412575679616091650297292507789843852556226433926038759846717507782994268352526383540308307029872874339678768090243270931484470944566567623808413019282775209889713237509331648501470251621128314459714003363054722982992369478118042622684043061796192662019366649717266967071010430990756735550357416602207466213469386711285575341111161616732479531819744487010515308589477632617326446756877912918995979690242598098977115141489272306391660012514810215866813905873628088455830278709545603837885093136320564839522280206643314595882757992251423852618903848604934611088630251131331149900222072648282466226490852497338512605088384197787026328823272143965296088441153326370343535103174563344575567681151747086959653325582678231157354421108336798825055880137239816057705096478346063110593459663948139987996597124699409422490766491437425128601143532203970137426888223816576254438617933516174306744372510503606687038164454433463702338577242278938543216798502522788989570290500029730970786828568528063107332728783244497338489460337853471200966459950510732211728474343253409078033331579189968934747529134558649152249656981173578952888745041591105888492654254087293519711707200032503898338025068439484124318108280313258363059244075372224365116080585666273496844397808159449194820535914301135694229366957073105179772467539775728843628199109843382169689565595510348594589827367218918276539321790066401217891669092337976716655959922273728544519371327631535197201700950861094757115683216358788943250501348287108801024834268007264771545933267433224858335451037061450566053945859143324543802073346895617973939749331205743300538670791626240322687894845469417598914448170219018566366546294472606139622240810280415976671548706659831835214689147415749853728891992470536013948184082480328131161754686778994817895096481168429080621594389267314431022826656504634972961280473310468576228970141427885427086267720288217085259164372906684327932442419137516276040562521496501395429222156489823387565856680883319727458748577804833842727168958805687810893292581542451482310077494442664605201584251844102319850850544726357181217248781830285970794565937752288176546297330952109724502146597213199937168769037219353593077007922813933859139879552049979657263177554329740453938955562962910566962792694085655504519388555882126285853833874735086835338565131182022004225389863584897749030216633498419516829398306370485005857022537998411588787684537592833474175624929603187970963425581991160833048453088810915815905413385110258829606722340804427586288408530063545548239374918258325253412621204501090104079211028955115485407188566038827395720438952990639201765729551523126396925040997889350093482353510114108922287716969065868374568331820194094943418260340990869173285110320008487746367779151353677825238848441066169456433232470171415260572040398050866956439924865872280413123115770984689780649813517084536651210222250158389618034671018279480994495961038096331004342212286946100999369749245440783440006798457534856188641213092687581545691850364922184698910738314799181668359929835485964312725841390077289554075724426789766668197272745070916460594271925773586580139656246223374058295173456946650101294770801936872355242182120400980452375218595514870519855751346134599419538581207396520061991267686938044231298299728193182056311339876929494063310422371342542895950951834574101153914819099214671112488034760511102667328702571542845879038226372247526480346580019168600925120154783466009127299659962955849844965969145932380699142277886668790718160101916168257084051567737763647962790121739373498306389211624579145554170403564811927702490146144013936441329690559649403750336203928330580234642001019588217326651371307911062862974965605639745935871092792628459259801320539505909357692836161112258124228283255692213027482904117742614161890586371456451815017395624731967820078271215352134820085546512198576148799367111127417329698135759512507440122615283478974523013064596367122865158213951332810360327466948529477585212259440030175030702201393869093033139392200426169609285695887323691104053956492171498568877912987080183382839246067728257554169242947317964720909502268665763228460485522597878159437434317365227691738469614119233441302967247078353099484585237440416666930046485848807428175991681581336936996930085697479351988195541093205010090409941993006363519059066125624288679936057355840090626926316619728864604882361937115193349630903505700066151795058825878719263867073900978174852053390585347130265069432747897973886600291969393158269976273871485081530572556419347510326472503705722845403739364611730487533626690127287652291886747252458084283182320978973742362600160222081080815405388054176500108366687319218947776113925627653304094688931384226564652263514648646596232429171415255204707894612791652157465554101633669555851401240680590717707363276904834309869531663668298429199840598140647499542029655546202320795873596032258873537679075686706620817850110989076977698866400174206445250790967388488163941503692610544856958619177525875466117561894355380350981217690215478387566564433625887056887255304786894757110876325249111759645980410093810623444313755139909151912253567621524273180002318654705025420048933636557547664695898766216320234901858254995076684739484658524433163479402455112274275264602084687588449645854469570599624721386213819567838698217747285338820590101635336662816555442337249567563894356420748345769372740833418412921117891058997202372518193158938507116730292784343842905204264669870152345368437651832996924892956406142156616128233844334689683853213899257898083988342443802406914925764204930523854630095599451931144597279347343662410359348941550477472765993052023043002717478815802600655515853471454811879399391569900486124878435418038298593013623992192912785780180554325867389455292162474610476556661371356939667129661815595240680883622687947470334945156977316542551352096344929095790540153973637426773578884885548705444023400128605368761191222721786899270082815645816637637365023276068601331820795216167219636527922575289260237625662443865395886875646230224300026986943537871986385331994081949924571129820466402310525693837850538939818801700212161185084975186740501529669155869363030095658042721166888729131374937710134022626716684183892202407864798400837902866560658739404648509390813239469550094826637932634042615284391920873400329496806607686611164942373272680016468866210219125204846385926024083090893555273660415893238354597203586777849579157001937741627298070506879778976742502128607364685547685827255037492659260203783012807361062886682225920306469114144235746468826256334669769937759934751291607172144011997864377478293355920850563067354474397879723872298373892684983104202495089600157603863669173718567466634899456212136524552923045042086372283472300690821873714639666765568175607909479804715784819135932389608323707894789627441695684917030976133986168043995358610683342244735965502281090632595554047762164515573545911434972810565813450442981392936585534869364930864797180029786851890915333138890176406082815734391140383143829761743843223581662120095207367153107997885964006714509079007693824220802583794525021006836167680482385160828766980126797214668606372208288490464443846572837633874138502878665507432440294043227567033927971649968573567813137904465209368705884518190552964130670177842565536236079441240363825194224823399738039648181626765519878559385283890429884553802758659994495915086009492250183258959652046099738809025300241438788643184844219236878153383635510267979526460657095822460621761052433064835600691554111467631516947646544627917189242669882557291205659342673345922519091260501040605380221646800304946237127172539067932931229348822257817891002887271312064238901409005961139625673697288422779387315083738841753859272431096844369298955533138816242292998489163146092267812858637982788690450720731271565397187141662205672701910855458645839222286944741196104055099696559763064508607153894972958669506622967374054092402592513913303668210284933728908842366737720721728063509842972416896957964259421502614052193909023741866748021177891707113560940207214363503780159589144674862173667946283739924422831729076614336405862953265047830657778056425424944328080427207820760882770012584118828798165132548560244101056143359247623344958869109018667709748354382084137549314117019188027001507377963906049678848001861239179491651949034947974477779495180290799016898556164622583687036786172972890781522064987902161697216168109548790800418821405950858961255903346452309448955355696245514948147472070753983595373600904039498422546728685280537118431638819941601152532846800670150595565627376235861042686949317557670556478366983170247547955279328353001320174494774723793961320068635112052962248121537134513052362719797134658353956216428253894576033293846974850730672420738364568744129926331346953978674295983065616815336226429788799886009334473810576428147723515413296336538471611572311332541312420420078848033296671648510668038961023762410627629305639092677324033355154359068310350206216766179067233280052626750447048448316028598156847783698935227939467081274889610244429533773786682073785724744673500681785439549307508149836440082091044812595411204170568183708301401317930048161277556142216004827682528411117925137966744659241564801674632949750389475926071260448564506931821059870584275629201814646567026791333755510134541061487067197323804163269346118753725119028667391054777800028988813677814196085309250738793168425570181149929567231258780350636992869469460440215886339384916285122793004333635146884852391495517737525779475836082200155444557412405803084819592653392760005108176666715134437286980894015832835624360348952929368874739814453821915295514739908630631679788241938484425696846607920115691382992688895183415873391726389756809346175503251421679752064253621528247260716125965300491294170819088124967267410762831207988614608330990343411119908794230248107764913612835570062631567342158111573146637208194306642562451131346007908036987248308192706570025249949578289347880741473482709886986410500058556243927344325659058476860562331574987534801808742428833782894808118790677152100296236961407329059884080945022393935265932127085716652252270355721963689958757332153341979389448338813909258565943209682675850232743978144068133972690103014683441492237783845233017812542536530976312399924132856785091447649935813183592471722442989418689434444543373868041219856249130407149381339622549764688364434468431704543134236786853617477127952047010392937357024449518428296354905324510671398683028692983164460521081950323637282424998202357042159259823591589244222784771618767179880947911939169141538376808816960287859241615693899716089097882278949091901763370085885884807687688439904005392397739658125589485050845242146560322436436243876066931747033723230921034865214061043840436654734582627411727568957387533636125680281221803562813533415810983940815781938257082107777579893676471756850083650932314992079114353407482553180120712035083374534493984815358119321568182490654919453539979506652897008877637319336042044334356328894719623596797702917798966219967949227456501407765365085781262235077657168018615546733778667658090351174367694171318881551339162189035112034457045684319577128855756276471483285721562854227780336502780439681329124645128216213658719492032871837372296717727915654361360597823906303834319873563384317765130640986711118044433766458107575128827390095970350739726355907977511469704944261829714161196748383182448729528392315430604434442841005173924804066328997439657971278457413234351698709957903746301172709774090574217433616471915339681231540773349128593140950431138141441449332700528005938597350235397720707882745163064149207598333941801374090395477363557426767013095358263542079894571704726392029135078338797466640677025790994530178025051451195733051106766434886855253278166814500194116770509489425946938301531373120213855411659196407680907336524198822522104639242170666895969985306776853727218087380479820457564686116587023131980770234727966728896543253753602130738508208272469991376457345068890875045138773771764061709563374911090301644061916647960171634648691040489698353309652344995057442031153520216658912173684311076999944335587836757078024959123531403077093382885243496809221613624981328978897133066735513146696203921854443778367263130894005894299743445734056251649708246042239571967408584142202630938773206790102672977353102879316370537916812038734799750792559462527851256929554907742448363441458456751806291997829853470769283526951992064688255345334210120749767875061989255711203720819313965328997848222340130638457222828955613542884297459056033547426201537169382858667683074796160400028119926039258138513917817423218749829823759020839104634436978418502002334983325393327174699920622501279374963889594617778879526236887054289555036758131598875752249825543699835779698062471657436332616580976846111728893317765669373420227412215864146216059289804528678303701929605235916542037475580284087436013737517718479328303510523120958419073926399624839316044264865502027186402123380882788853819925923926037827658296897475901343717635622762359787980649025073272192370387342283311526220827813326899044796211302750388336420769182003671151428394098536188007481506681065177183165857508393598532255910020101012386736439780636556796124382539103714224969478470144089469830039118995817615612176049985265935601911422092954347248734336978544305309513214432892637858449410117803623925562251326471092608989241776941629429942421211502017433213452072666570773588274321964255823019296994378791383827587207979040672172957121095336712200191071057444286693010104690606128702387270151140263506119169449566639364792801262447225682610259545904946875906458891108785158730047514768974243162288225658676126197849698276781528552094207709268323770748706330379384291737854919688383255781897286531455624966131645879687351795601617626079696378099662291875090350350405098997757008454818514459185124707905700243534250484732891045460931922596865505753822152017379422848329278945792425579796412443067273403788660836028210238557560585050860636886622264276533504030420585700169639871943635692985400093115793348002774596225603260229986272323541543915466558249904891625998514863750559636595509488883164783286469739396833943452161855628413751435707253404517913337282932997291985113499508936932408454035042988138648769694437359921744919534804263550739229143793947602602209323131180400162891125135594630895552682546719474384590406391662806374615008057842118547703968305769545942818539453920504071473671603988148411863127287470740516577427491658955771200227136134270931370984637960116610772497348058042177014981765849623858116685313074796599708025812685153235819190645627765660011344800164706299529578848029718617891427045234517912440266018741921800774754962771513759034239969365678937477778271832347047654466831796226804899171958149984562798288918435622409103727870051892601927522916367247562825056780264234991817988725646917815434635285853503342288119073865822032395193020783650060885281687396586145892426428138445254846312669102221470245249066144984027380863077395108333312167327431483813988987710738388047800639633833947165074102285643904538477458038040175461432654177144811260633711335615345918217587342640541233037418824686475332190651338111616656413177339005597110933382384182475211385371051171808428725733661386870476337016501379027333830111855396208168154794364057222946861060378171607049984623697071676308140194485148478211218122704006732198892676756681379031354891486581714232330914665227190287315999965954352693035689983846296289893620021750650343017973325066784110903047170739296610834816920072699540745239484662415274434756584888982468132238305711266296737855486195255378057773423391940041370595426795692277901467536839054898106366749722969897481370198293286099220348639084104826200721453461610740049838820700759377129817747724684898497943388322434557802793631175688176035896394709453859621195171419235492590347804545285769312969156402126093385937895392413558639690571339709026574471252931214165746594121505518781198131261472397961884894924915224295378749382947681063320200415663937480750936797516177247736713933382991100807598847310416427295694473962626729873013477958009397539897339990107583420901283951531823177489190295455801149752495255658080023604550248099498014877393911502589651300074308114864832988584842165461675788562760950851847965151356409695015250965014160695941095514969588117219837567739237533886966876082320042670091996695096082593412235823936926507917702084959522513833260117064136381819665706345891985727261192668485873776886830183972783757821721868795129681349000024937611479399174681239014504548248746130119907858359401043680984572167333166632391112263094527689696373277251462858715422332184687385650232226491375444062307293077855948068803825123729239939727232123887550500001222239581175382990830619229632975144938971390306298159756491561934114457331719257794692549203547652507738144361776182583197693276037257786371742624999372528389866093328571296896007093557449408669776904373558949819790347328923969882736426971726815136230396268381383718877972521483794272748178273083019410555964751164508402052036889747318588334585350116794545638235267834542087116989863058561463750170955440855185892761082804161557591613257230355375767476537133615304138127291251286980854937516361438646515707215751531613953753488619146013795014571089120408356249798936082067781971523157247099422088105937601999118037217829068167265263345326812065274941351112734261278818298990447599128976211156542690197891993311783689952365870913795101664300799800942260397688051887915945756571457337280370859354220304567513905145360060971414708408114912270720767599670630716345518671795705453568231088945042536407998642070053218808100419802493947291639623596298430564610635682273795476011314909700001727312666301680991220076531694487904099835456263177950553527075475282483614591096901401844862112261249810881045604843582894676404184826152819069191218805341623669037774948850995873458979134635351351864226311853015270490483202324373215931604122894908358595485919459236552044844224817887045885426974496794577174713971503582772191193658884461079960618867802558404480941199442620559430141343836989455204737725704281757788373278727990988082971710884114948241993414419052054376780304972694558015262001495855594040902749124007830527851731860324606561972847207588928077734619701081328337612415103500140986106743531239706817611165160887566605521877812892743464625512084187548933596664784452399163905792018065598403266586806908812861918488548123235588144450035522028567647691270411783815829265342286553407804253407968719281802589091098870550899159355255852438603415894862012394048839561987599026007314254910644372565345261729631142460748479146854251215696360385372688086675978374022270468016780628981673560231569251697240001102979375810851860231843167244165683406165310959761946785527942767332588859236608839234996900597376939040878879188627245758019862513768423991272296229792686424755214374501084878267452079020648737920208969520064965378681435712595424108368264104444094852959394435306249137517329021321939902251718816319335420572817297324642479784146093756881585064185381413015435432685833796101769455349855880400096802802397339385760372624153256382070932590244436558247324193686622084382778640015438587455760560763087784970406216702041551014000886154033635087950778071405711850772814946554295997810428928483716180492550067493969663656120449290154324611454957280362154949705692598895874394455610699059837975031676042339249894861842416198581107173624088877785520321404949250134120109447759278487506794313342994901465760090464863581768373154530985442376943871364091359703407609611063620041481048361040962387728377152609446078683895343058427187103604347416953258119902259933888669028445744297694782800750552281650613313851101862166224854867000575242973939059213269012206447858533206522188168310124121886047833253898792532652122526234712354076913801200013232845309087613371929874375767094471599036241731529765324211814686973148708501066837759388920360951443903776381005192206472644538413924666139178583548668794730323155749530572429932993617846200102158583825300779444921622388624769093576332448077739579336397743728672680205186804798127306094571376148546182942883798010463393597145614376502871680050664669230484376926680066413378412041133628723362689323249106240496054962197189248897533505493042551466455746699607691666149570437327678743956316851859013839157698877461772881704896115648107738112956980306274365430966781831548110331241508781567912487915837824341810903683167826924050183033726885948553333369816052415666439061720128590403223570033463432319224017451049049043588497165947142241524284672030391857228195788978437336530521090283413564673010707408556667300046678653146106707798168576794468015851584409183880097630604713483577874236590599895326437189569328876273177006761737745855183127411136824089461179802665555760691578445347165302406657198905218685187133588280343899240486411611528659871205731545658216736160571128258524977819687236230223131072016190075483314218005994872141641824237885397447072128429501606092843420110015389004143696665359930861473036159216841859193986120585229216865951720564001730779178365918758387776630229789687835219370838726033008888188632348309538467266086140461211732875777007255356432080104321220222672043674903145489294671468979694907149974650693441259684064501392425218646255524302152316702743942736293775787945302738783227541319944636294687750260178458908862868617592423480313823893573512484342407949700052325772745954186132257395423670261287157229888922383223789487917732947912842525959261420331993718480663658516588850645085206164362904098369925846469424652511883798700835119698501449248643871812532477149266558569929494021104640417503283350237386489092284946978622706511073884277699300256253592411416195007452034805351804773677763161579811311403295457087684773031439107319891251724057568379186713247348897834624514074117589946556557782598929029918314041162225238651262202969279631056506452542556234210988104493479665342357684591369726813313506799971455776382568893672116306085003095370201407282102052152952199538145085245766059383351064557757046347644352061398495370206220082713888576362740027749020807819825846502741494184181964634928798187673572075452844539452177223894284105246503836912913327337469874457955841966374814801143356679384321954688430182639173905234915000058160966870843221242200511223222466473657850465965327719638275670649033590779419593429451240289327632083379513303174706261148470239253660994873740708362159977383963378792093098046562516242362535108301332187885132280743630423675017751063435742934264216732478676561915256483249869085528371586341723901829325664979979051173363712585074085953226671897464796013422751178175682634685690925057900861764761003230570307106741424160469839150200445743143140853861627088088014114023056043848785662149600975968038763912493833961317686594701466269459291406944088109379920020438016734579105695062471013997525570943639192670015989449716015097784804900560417370229535976516277842112139704897996351143968169646876894000658455824135841743015842542738315499159784508987748272706418810376131794831844842976965238900235382791524075052446991630871856797034980929618986340063777324336392465228709293077391576373373787863931036521930934826817909341924460270983552423699119064303246717429617748894003434668918079265506196325936579848760722327241771349476872508576365723367281901454022146380523023900152242192749483531856474941385164821628410657093506288383862229080627945781671904338602116528177607170331642388242654724142726407524478105534009663819275831449363442507286816273001950874644478901061520962714820477420674808660426105130309542822268665450182676804884310294891373742990242590578748386021951712153212299235228721368980527068040865857685079197957348997576160382312476673619553127473979365803251491801384674584091777115581189727248041627054251383016749256850081856996632974922224598649170858898962435157180215130573826937961341590946235009210980053576097344854691688427083768718756565177465205601768358951552652062222147447768356034319265185259850793214905396050256881427753545904863354355745096646059158737884588882552070400529067112320398496710302012733099698702393462108444104960050863775485286995866124852285688965762617581232982585328555672039743355806730242997361806997033103799623818717001117440975834712467547393522436289267609222079063342230196170656679768742133056450763017433069327469340808272619998517724447271842153405625831938626420323020883763877121602699417805651772937528491874043513154519852732978222710614857600573691766266050642819986821560261654227525665755128550660588942509094264563897607249974345233023806562964845907925288006155785672674046338666540747493844214156343377262547919894327109574750794933654881366209335609944375642701923300470692708610582629594646540832612840482711515178690678334803756138259637706937361721544706462530234801220458769549301084737556404978347985446661194658054040285372559724666631600214630410046661892278575192362673250856273215667966728075300405104525480637103966938302331615575644052705391146762429613417933324815675208157341873575252021588128176976415663419724230345651841373718580857562590121891426065691592584213598511473346153118446001487225864281567809228456207568111995937453863939786200117160983406440525705593205720138569614474476749304831371974703642650367429735532235567946966351221115478434557673662628540588265818030332012289267518313731156675362785056450168330645205927885668593842082624289695321897106965337678893207086490393575663533083815788272630165827175298706941242211430854423897345583437494002361479180116625925932745937091686405827241768375151646558378528024396195466175586325056352858350841732007290331775824590356340632841482847082129201051301447434207637829850959890532262192282248032052719613241211787879130129559570387915577036711396942048751815671995935674134257038563326425201389470247355546514432429260771906416226701441497403111262136409571047257441019989396531209864078006254478211726154455620321583788660153568524726460636234568892643915728441939636129390524778276278757931096015213159453542484212861311347033508900012465866078072390068120923493470995803297406585609804588667377416984393060575056733027496863242702523005036954962321176108107622467482262862184506810223697081375701737247812425246816976743975565808034888864507046353294856020652138721915611132421228474647125602033176051812543675296293689473717108795976697954790486955851619478256359955664805594476278224402135888365462422556208629754862800348444983892784955892615889013691101975778803535483752958200568798680557129248139985184555624609285590355774844246896150455020264084952028904126095286369866105458064450375185859026808585948579325057810615418581358776040958927319752133800782553586387895005716640314113569478036736924150469897064721047925222094021988261348937972090600057843595568943367634989659105661907187845955853262895922254105999195814629282531638621832645543210993152506596352986467171248014368324120493574978534618341675174033921650906700463080611035377365811963391573783223654492785009696228098028081900462727818970892227366857384462480750167536610508388376707600387512168704693734058514410518059510654184135099139763506692404175697147816050968685710464441540534704138663911149864186994425666920224928035930988152235316788629449053005318579962970096947631150191803132124042460231770452819751534621576967063553370904786044292817100934085477640859080006808708416258119346059528468354580253844638751311972351483260669382872302787005785232020664697964894369174792813938761636680004178546620562707816773560623288190506616387416696092940010214374561645405995165545608832471056532166419663609980568751983494799690894110260347281692066206849358710809932664266340843750270134742789519138320199737726119240227469670106374166501224510528165326319444188673574830397966091424078129289542512986396298353847037589588020285876313228564611129995615587985189445950680688486576679505136634704200628326959425151454778632970592857347503661669805597013095212469553028777418358087907640798939228264773574654166034626943302317297685576046024271754260893974255656756847147165160074973815432246909549339619398022669379690305361395995931343307734755704333754906622556121820707985849032240019577489824218798507671896134300233015991149648450368345319755083291841241023104389559851752782136308329251176440496917728884318381425558241548223725712078595104586550658552614864404302383606311067756063357479361250747938608378234433429268818835746791295726990665245968231850335196438913050312179288852836105045437156541380620118762897263767545712377342705843642141531282974188607499612544192470152348167830430854631503916192874105000992440134570199263490079815027557131415071228621579347741450156437167365335775950399634812569215612829574347262138544558223327534209156589559167390279508470384556899669182135598995009237497091444027004691809642082415246383422621428846144838078085229989345529116968806173701950277629938027157883486368734663973590542297605239040352516492000963477780400271650775529711579604924748722946037552761955321996588379220320086956204231272248851306215993778758979709913373767380729848344220505087546365826360816117205546692162352913850567647679763331718950042755272236405792982860471956062098617882666129559715629123394363487261972746250381512262733111992184836686240338534298224189010109239456152215812202059648572053080013512811376596049643774335521667310290160068057024073586339576072243721813544085277645684506504437371241671542343679905648073750850150385225908164868614537716892664674502102548857631314003524338075665267327704720638118808336037152060832514532810863612038216172664641790778516921397270084394290543805792030939020378011464599828667735869619875160792166893817215880243503787723087479093096817814474732667677972196035992778811913231940762046133655100915764992023536249575436048520484422239167568850855811750651768053748769396798691211475453001376365691066710441640550215038440128839860779237226070525344464532018776279772808966792632599505234449776867428140705491561164546189860506985273985553033659600574388190290311920942603192790141676506938515851410653915812066158567875747896396408598831826483266845478996253003759653571382639620494866669720386149177115973141608980684824222741361945281935472705593061998540274406262525135278485235530200945172035357166273776859524555281435145538529683638290909806734693243793108923079330059717275554561163091548874485262663342828292714631616779904275386851999909962301453980173964598569173743193556629234884531331392438724698475835134151911292715169195316423239499333176331655668151468046498339138354771611154799156557685539009979804921675815546773386629038347999820243880644244137553672244675716572060482033824687050136465882671309650308833758265605636252733467371077349488358193043810512193741851288600165185707385910855686670860730690803372908466296956468637422273240216804752184582040979498094535545105131996182828833672475699125695417479049937162951829602855048892825622895438033120016868578566396590441429551328281485430618187744442573332937023126102782220532721320574947168948901290251648359400620848508425071812537358676596685974461789724315094238396083254767325147188114998749337369332276627900569125578424865015793387972500445167009070617257836105091202689429052605206997636638563545656337289998630541667681369044265464045196955595733768074479433826088354636166671493474801994311573708609780098314510116563167213177265217555885438586434878509164090730651002163998699757202026663084667009045841612212659207270181263978287075353258784699425208414978623268626390874878022480549630061019341930242546122904191921144105808919880551431419420814163848951955761550253475800396082511771581074912564040580949943846880239172036113323366765554755056840692004974557160059844808123313443123658488885606631664210602239324827090339476879168076643360347463120092427238924833309443499445996113768930343039890484939897212412352784188449414165756842422285330032481089383950289508527950511282305573698303675158696159305664572341736670300078667676088365262505522786320367172254105075589424354117510141962417129108185247290327233328397728860933117956665341717299676385307601021631067817306514374214373297440524768435651259796265107748541508633708105632221065210858091801942591405881806500824946409046017288045454844061021884815040930362051670567988585346411434253715282098556298512929239462468298932923762282529568790460706638417672050547091477225713565616316197668206125167734759341443811933400219229956208589004659149078590592981026535234436865622979346587035102712843230502546051319289662429087848560693499264424675440755678691757694677144302603676802864423305497603200759150354691619982424144103393159955310303420286242593435429707449552686637834239489612739177644246081428611065288693286284319113417821818684462491399445158278329583730277305095112255240605689652246204513946052292377670531963017170187405722770353411801047755443326420728573629757228189971510969236669619185852494820861108859225122581235969002751055359261069491247364852940872398628358079693560153330927415452775752617088592078782027879591790308672886943475559910029100745320757405191158190079614134698273495852333292431417390441772761063734762156577957153720835584146253821707613598040949037655714455184131293443826564327710201140176428822301808774262725855656763443868216116510400068254266627578763227312273365296553633043664924947917331066926446797421388440920494257525336022720470990210616763339781179856950406741914398951263002196695285613788494473277795435785883679214582433701269508303785397955959659409451879343870069681146521053053536965822709269897372461881225316859644487909249106917947731834614852373982257089192132046200397599836423959488671939932943137347779469775123394233169890011625126765047898726349993116213055847486640703739642138559552345492524214993086255545841848983520793528504755788486120769953039860068902324378545140369640148220613656725407735714299745688469170033028894336622850131066712178494177640583962056681780303856797906219455772330219468612475085361077024798129954892524655904454622499022316641472654668573526578313761271196111000316903839220808119009966215692049132712174638156799350924767235963012511866487550881292895538823931850203840718479658935419431233869523226578819514651771063740132582828536472489401324089825957506148362477414681801276558546829283603453202897167168383628517679795607054893095790069251588195828130503363740047285180496470837780742152483129533013274412842836995933123284048864508598245435518434486442154973967083887407052025310039974811586094887858112259591286382672752232145126064572045779014685912554998307210644493499120830438671493630899477822422603449924390523842404892579938491832384166508444726559261412461941670670171829603859830820282562201586509590767705977448450900949462866466647888717043115012621331657562672281795092040365538940297299526682527386352860120106358575197837598752003937140004246254932764027186914546239063979661161252150220083626769007358369831926126280903185524282093927060709993333207989159813414189688358180866017126605858039583661763704651139311264010991452507477493358205315035226522441530587737865274438279708050166649669419119710902958543359109754137777941014725233997528677255329179604894789412312770686748775062016709291446926930798001672036469174862201745808948428241710672527537546623323488780097941784342503677253471808319889009397943734222555476068897052078323836238139664960146202173255105665696678120543335927708266973758137283635828411689463911031353179016258537546674610098382038276361887583070966682647620451220549350134048541582872980323484776865458373158010683106915468395071500755535763161766960717455497767564537233022809534251704309030919190351233481165789291082728689624928197496791322479451654290751607631548669711620735114252500136883120064263138981197133868117702955893086984624170050351373128153217000595884207762411684563218834330998258282703943214061142369150280693278613166836408024460700627389591317221632112353574593020541859314617747680107005587527045064422550836285772117587782553698070450073947674597047309188956641759491013503311575179484157311399573349728709265994280699394550167874749232119312262341529596120950349751699881005302134536437882866906270720008208544116118692966094934088259744661346420089055714920090954245730807578677367584153865444596436007503796624008825924109386134166302744855254888725048532472124908613868974866196847883286864772374939951065657068185106820485197107943822107232627077449017511839357751381551325142127758557022792756939816912077697257812302999534092344792972243231898248982425622284657239148551296942300174903173453749202931882906975051176654906502778314856542010170286324757450637040505822769050136242325246721813320157854857243059627015362695366235959869488237105331717150029759008277554260242311645196564047935697182270814872298668746701492909802267125338619491394076901752585294742138902959356144177129331583357128547422048503873000498074806589899017810599746605351292505605431767373125566893306512143530044945410645607407049693139292695358000851055533662776336938732417097163202063387172243194822459318794565441740610680699390110400945927517498888476245609491268122467299126753833198218522973211218117706692314059929248887091325969830987718587722978927251238587147877825919933323295135781522074388499191410397316078590837445144125584220662167233325310293628489565038812782608282691402779102117283764490331653635644833034388159026478433068952901815502115837228795070439335490017736264302842363149277623934026195508181195220898523776548838498424516361931876070592105357412385403650970993382678694711452368380935165122321632267493505094938415993758834055095161478210249415536188440801220408165970743266082484087929163153052439886050494704364670532114593001676918152667077234464442896620966472820970144550862517394200314839895572324665968997557145807130860921627619602841679916995540338320451604887085157650445040642664057102899673553477440403908780593573530966016482098401294501945471678450799799928194492568476752069595011842343447948682577260686500277643646287430639603667109240557263301684995765560580793234655096934972812404652422757845092123201119715504463818827461318053910229373015916238346899764286615595861466552022680349694880729769017331303031988365313305329705926787538500540462589730789116607463653572667476936244341633004892050274168523907835157495411459092757418669601177641754508715473817406723564268839670774592560248072382932482129763405189357310990760896113836900939252416047369924042234166834004208648572492890768307751139337936594523359930662310924736284121572839515386427578684401605837703370984303468062950181694603854821967176096908580099246856769668882021055305024336032384867450917003443740686533482211877406144892877431546303877168936313137791655568756101243192014724452049723632453136444307373250118289036181512953578611480643950569405980448931760045277701737314975861448016344904531496815930532830296321488729875910914355287244838248161302653830373735846945878270639021834657131024534465646811738635804473631413213681335065846394674320871503963992506438067130980679655881093828993687970384528184149213945750189172695645852124451004655511241347237695892020602082111620479375641564288364338990628207752873637750913910215097279444433597508908556574656423676942802662106847343994616858327142985125184334241436280521959710412569145888404272695230643464393434682111434694664062973706507772721185604433838744400976438666912241281288234566802912277797036483476495329583858210018872546654008699039574297803029937096885489082343960952863103412488640136333716477218235864564864856526144719917669162452291588841731057759419641400647776249392785318060199327488727455617059641184878201498868606018714107923643494148265955204269476239001157890669874347510849842796945120260039776884577930787440875580533129537677871357093269711864385631465094877053430955888312414935465499817451612956977260727265812298076450820993761215614001446031246088010154304893460107495432519130566253478782042218870335846847757276491487987125380724638705283514494843155780066925232871638545551317307626087313168390312901811847881602829816155078571553266074501430320050833829194695577365128506109639231221230215936702812047371408719237200690879335643519887140045609965502490179299832766597568183748865735630741316078976936392497971374436491084759899978005531029014597107581375794409953382029080683139340882570098583015700817949735457473701810684938491182225223123795809099854349894229448392091039896724890447079866096301295550919354905017142879568667348611627206449747719792638368683628838044122764637043108941698700161798993993719292599177825800424789716050196914966462457699457775283907333003404499978620364964505433404116011743791695894703594004054878712270284237049131507369607634718090077162478670521422156529923723168972756987303750973948814897500735273154531636254030651050653976690018883584316739893770752239735650614284127896799786698683413413672978775443164578067945636645024066190737909853875510014375325688476202130586203521426114700544488044056549625848311002252019879998857791059218387883909966684436793286053095218150585717930256627836391265428709661876277115015302744095164409617016963533590201974452628266121659714616247275319432326696479025115948241234880199327870677824272928385505874842492876257726387810513209597496079587798695184733556306799417958320107455316310445779526657661419721048994664316927147310849329513764824756490229995827483617446196780843314100888190924919696453801037136998804253033303259593163332404994090018413895106739729406044104775390612864155034649383746313391042142578132606717151832290121066968534840399603948570871580478253887241016269409588395161838306781345660974101120336710729460561525331956355339631517512282355362066570204115218108959406350113297978755737062193150971271706450567986714666941045709428072752359535517379860602634316966293627212160906910648337726352521022968615790346459455214228762721561505634195689087984671772552904719092426256838107708225697631293811651903072506907744738383755012281010693005929563502620097029643523901760548106806676168820005234525949674381965142688756199438061639419027106171585631711543426089598170858756537622145766528528706288174239783748922912499597431533323550481575842285648287226779533334790695134408448795458191758666831229204488466923294455757447699415514812304133944886918152177439862115353270138244326240345951219876071782134905431086411380031857459614970791950475262339526338455720677385988867286135994358346145480631341079624424134001547390430525563076707204869691496536633983381253939443621574290753732597946722844760461379209682400717397230647500957551021751084084460972578525790821521535483992149736463190979102233171781519871893388877810556146118561340407627000048123943577789283187176556491050785256365848306308598701286895866315113333338662366897126840815119855326039664244025131405990967409251609706201441005540099053992398860692160433863707252639833175429197993086040179426913219983914981714077076921828119794280382716474809058254435940971883041028890868975882358030184586132049209685831082644822840137353405043646143595139044754738206531402905052030510827616131092511581471973062666140464961056487976065669176361609747057846915677495949684834752360188808411374306736439994095534606206475447033755578371608380377365518233299112455309406264779135373394497287086453299382520871163814641233019846423143198474489445002024104258591658205990511270658478817309329320305926810607759466788217827980931692429543543674224723184940278123171446339201908884420901469521624409560160111893734788826698388088288299277001479266769099471707009989208284619309716139901072616201724651853671151925970700844465250485031100643311574076233968107062807361864392881438770302358480942943217624485069774112519087729103064149433050674755324603410215785362817671571100129951194692270016935981971559057346104839973908485626619233200213402230027782456401561424225063903447241952934363462060800378146490190705908134419027669961055794326147549623001470408465806998894461097893986013396646833178499668222020507244417511792328640392463016568392054093128375162530888671554993195233889892952469056778067175607289239428137515881103601784468244227490001869737494277767298822409905816454979036891865684390792372435257141632709967457850008677163028891473288009274602372959224660761207852801696010958183492051123880934867498803930317289781865350822993704947111266567759658828567326106386326434694193067146901005589679352291165576282595330668160617792486218163429439183061748599673622386363061354742870762159456324625662076698810179119678622118214363843508688609211396307922737197537787643678285471982793053059572134862891550394017888886821098422332551277425604964996213625629513948292803316652151563902985847053638921402519616540888110382551662014551531754017358349528192148288058618490627363914874810573057012142259728917162091511526747003239576301246494770073811899706630277761917569942604515784673449700513195019602073570401098659258307817740030060665060686492992777570248012423780145065449819875894294458889208366624825138099996596678549047669597235303968888589214029677706440352163294876762305617174663487908076470435471592315419696116579082182910800500072117347950293867401989563255909549134664623525191827441725866943787571304629188100098981101476133371265226155352138165558303980802777087724292540719592523056258072480039983907668968755341116725682772052828038778724341843649588178368662187900132734452058569866765888024317040484242495918823600695267542620733523224663957143708337543129249721706270297788763628301006114573688927422202584386418353830982774779511586292663478818817576091014055878582361565177143468356336323034576122163947176330541692648475161993437694168891899741925850613668090662814777724427269557007784369286982077770593999896619998763213716141143232157931568846244357585654338135116652496829725343698468667332763269227625591391638948666326424201056071083623573751509624862236597204518061656208775660097686586181768579696352990118465675795806777920229781598697972170622898733730401279698134362113751178608275065500042461517644951639551919147169129462575218638071400612105307945371620162487771965918384423226513940124707100081309500771470232418454916492985647308253379991119239933615410335932140188672944198047151631977310580563569186454342704011653472020290119912444457576142656397743556384284830025945429980505138611928448134963921215757636349393227401141012737242754667728216146355138382158286925973704955084460815555703000900625487992926235736927397249273958100553038504842901282028867369562445793261663145881745927631633229815390634975291158724354971852385578430860384825312206821273732565584981045866459142402031605023159556484319017370906046515263021450655429439763591811842760876352369501492684827909738582096051134942098355340167225476570200914307492229658386281474560916108154655347860482494510067833549399869345223808004422153104687144996595740705952045892467163057904792528620297211739014270741221655440080684166678484656028015031998413364092111781805884897192792990770687579781437810816269143071946804368882305018285948853393641667963234464465779202087750658365167110862730286231481937581501542142905908310753871988972569235847944263056569398949403893204230264985548270244357363549665769164623001609296421861261791344396865864336471186145210246647370522271214118402789829971225908037159980947914009222784280598422766916648717706912595819725607659780234561543684662289760724014292387985893016738864801648067851863953383907039048660152366694047727881857441693702896784347210711503541636409432903587288653629017544970196935446390216329145273237394151313745310762930300787685255192586450217451964828946274405450675991117716155068639956490391843015788301208069535361233643028766328608642447627504431136183596883209986233358025314431740936159492894506812200240794041551350241303430449389467909068758129253786139413869326732138631642563304488021740140332310913858169594797827888820598830693815061581315545342482485846854024222933536676718800401639330180281706003536947409330401376933411584814513635172093764054642034366663026780225295855114137148330104695033245110002094192496463830751191674519892461081813240877016879204359658415333709126859932107507939562548181550299330179096724711246941902701118901308232959550627920974901556382000432993344675415073463850282662627060262666835772896098442953114853724496758386766236152344842374970139722119530820486395506912895635955690230532256779461934789462675429505386988183113254535816621261088995778101167087403141339884301961355441860656978771854849426738947628964355647846082770583731937898742513872052501056339233915596359115568975423563046675265548133080346841361177475865311093084247384573515650632468484348122514232569674889795706723254179598325946046479057687469810699217605183542074999340004975620859097275087345274217342001559337599009158065497746383157555526398616703656673447594396705452362713472972727966757586103594300582194767987567159387757994468319958305741089024407152779042972272565016338589650407223996563429383617658855542041038441090823609045454523642234126932252320854238266569572814715403606360787657881471067809057930404577978880387590954959809168658818541917332949199842718642271414828153442759043348359989040720650018269266794455705517643443719022032757293512314068865115310722003308925774249902729911488958296036187572176574083833482813580513203454397960901997005680803475374181463627754494904189708649283786290134055460371443477393380054311738515085390771896431031593022496928767095846927373410275698871830628488597326869045272787847260148884530011928982060872653665667458700301041181377070112190174449214451941103558112602716383271734899020153956088323574664736832056958797538482508692229551096663148308477749064921872428217645506999904065639451654245257824082636782185974103100626364772441055049727498227550607022323754404529195898352800627930854782036148867742053033614488581319250208597275698216119681299871312709674266507032303060216268093739621164320396581184077615975786406631464335319316149511421908799909380873481133498860689874921223358416113386650710249875303159534154929090765279698485356842677044454888893600915394417304908760093082482519175515961506224940643675987195717050183332132689364040499679463190200835627784335841848808917409175206938361973926613821292465529568559059176959654436686743545748394377711637551801704330506916994027313729473442963343220872775773877939824824593960947207536190415181898369796401700350683452674430633761034665433421008532301606221039990332708083736333102131731768864908733621612365206379691528887976230500716138251940388784721731047165882609074129645478121160914408598786961407989929637942429979124646351712872560674374266260920630416304515647368180329742791407710611440089965226195243363554545960422870880147323325530352172479463082826593761300578777502323473758144975630932726632023947705845251623723174374269577282521297492396454516055229962646892751758215908384259057897117421242668771280759572930205460763364203753348864424932097929988825253717700456560777538432693303588371454231143667033285457637931284827354233706740636646323835648837677777809539164102142944828158855075382309152088797872530130834933153319910519246550390464973340556595153609467530087459762725148475382128612139021242779721917616765650173804902034175892236727005540132300766918718470203112258618457340231419887163285811541546097276876896629742929344094781610130904010568536365467171178759108508414527217337111648489604870305566186629385917474878690474228396802921492382997650471736366887683924978616432078436362221262396117236282772979592877829120496507068857287665259767723683468521336608231851060492295237933910106520209809107306749057949407350816623485234775317493871094239139676982146115555939419580708037934775548956727948995541773880566273739615525138744656257929223912431674026099500736542430161225928424740088394286012846578707155057643584398147352959073518219924366080374917879794154208187059553356671711175518666725951994942397416706430281223933346036221577332337707244963569860268361967510821968718827624542438091540039393741983527896395057665748878595178252107587877122553672691420655010059921947872314585514344815997870676553712443767585808215603592784277957540025365339385574085780190089274312281741566790216081186731065377112322094686923864873469693674123443544050374141531724117109008353296823767517193794523576572822936948643597707648302648349559028788125721339915420572983381819179701823698955042457122831093327878612864140926820496343155571156016021735886550302984707597354290959997040692164220459628087287839214562600628455278814820619298070002776892974556939690869521842886017258180937627327225942290858151173369810159282314767995688050730906143778531147925641973590695102310112450868973459508621302333767343964924290587743142556376298777263423150233942974795980935386423737905725107251110860129115941565350063629666167980185342727446245146979527198815831817436893498775003572557327212893060912251455497743627570271939379772354542148288570000819866476677128627716395198001298627824856453840571721561686059081540451504555577582012254876484679170024915117396561400218088305377389038749310272117267810617715328310752948748436544064115792109640859111128242927295613121821911036968262207626577236949207373827190243580439359130463436902221637973692396527974620082392110555889917781432287200579165822328887218775988209185775906790913054881856394737119759327980123774768576129758976167061397222072614530302190379146400842457177299525649098608286741389650262496426336983383839520065232629357963647204309782353337317525530719808298222230613520998037046991219461249580269773648767870119110745262606626973791701668399857709768736084565518546731786164849609194009997905569137233399215990662967717589526690764606475520533315587543491734159970512412339088480370800979155017208898294994146483303545968459697161721796602618235394783652218790287273162919466259093296098718532004653862706976093255100296720175249336454363119780367302975700114785147549357850756532057006211198970779507279548165690832690123529807357631446591538122200330069387780700708385267234857655014915332980306755820956928444110126874080782683542724361211222979098419815053206472426810145504751679074060955682593028321217634376023902352265231320032758248844923892793198575857040026811028751795406577514869473357419600222852852560792749711221743742671773674598227691843706716108369449182441987108782876700375802037769959651877184861540849949761269186456240291768113680415299342246356436660556699094192462368321017258852272270287324787556961338296292395025346020123641104505477199952572994112579982965094765322187127280891745873634298014509338796500170963786351248998344847716677184208478205894154981937466648960522704371401194688783119582686843831710674403470203725808706126081625558352497696957554177120373862009371682197156724980284150911463922617317130530594901959368033722534306885281592804509925861705349594439316466073749453192284705445927491054634058259508362798107025516097237445618474939298801480025686451365479732857704051745256446634384108503514234334119874392808690580712652106727689757604614680522785797553740081365096622059697117873975702014805320000344927962081979556695942514249403973736681544430602448853821410236499789440150567965419745909104346836094918289635818158860706626055486416536901229694146517333362759409488164307011195163954112874038973272420946325860624965602787676903945748845999946088587940106878367944717583148385313397521080282016246371550282866023377867976204647699461537584230516836075397617882972712854710152684776880081912302901991097189855443462131172488490242954329161677999459017527574348897279039673543574784310415681312721071666970064983836213118414594893752985505886736008870765713893431249283257162630186737065340547793874953258694918755669280626680101784187259378821787352432953292711021119735303704243799874188359017561043774515330528225751922223138809576059454482262396114443501522542305800319222324016704072713722708480544876400762665554006840734544359973346535479939300034968431474258804278041600291863721114825624974237036094180823231169419926989864121628163678508573159934000367416886852791715291594285846727323467399438329938658751752614439049039306159252057485597152283184219901157205320832356238860206496898838757648940871507610060940564883376980959284656753351214846975310703042138008772535980564840558476490096112559939183139387345512418941712862295258518143581691728946728279793092903467535069714327077556907306849242365022604904050742182121892106701309171589519692565076534891518024472568723600479293356713831855858388582129587471323097924479851639463697942775035543914347740401103802670239258613540707881257562979067197643007570260749023490587393114303993322745172117996243563681028022503371226498277026581322431258235460717018123720082385591186594785867345756172139541591976162438833695510681867780765313498933569806332827386695142635460218770870152545506033046315950587599609428985593037587294049155946109942749121000647808664146943453400373431103458350913533177905192105535831792612490631717850974083620825960239326854557550071729088123829512029076005134952710420311386665598181004584900488449457918420615228855336310053908055070051325840213456053459410469258856909337362684694499446039617130795441804053755621553911180045201303172240518002948815139887172694346516879245218089352819053131162792441342861461913526587821314721702770155606217294467034870947744074384259476150763525304041623412567347633314271359947154710464383790712547385047758130390433538349599627591333549337833745556069607972990018872400717637131560971878617595298850319569470082094515657225961125804636109369790773278357344177527572977681428437174114395868504884120013587531429732806045532223255998798849093837450637322861232473127198299100619228721632872625711304386737296926250871041055003162608545408004864118798349986251864443545908853182052064709162533229465517985109326131250771241161244723498521901769294730392499470696179532252208028375993922159153265187668008573496493542296020959222702501243197054427931132968557647978730366081818260416036416860734601554810516617572411576457525682528516280633023675945046246627444219560563331955264021552092675158720766075952797851895345194166438444606044418241409314379218515909828226102807792410124617473852608923231465475051998470862093404920161937995533969011089534683341696328493649400238895908408206912654841382858511886177266834125614309089895987557273019300126756589581591489368972240738316844457665499998796052550627225883637121321504884617420933672497809965862877365659872039409686001069570719643778601110784904709364665770798864680962950248267233816346048528048803046352943685692469769766186275572173892099961827341689205470885893431999393840550052790002754284426370489268460168429455058474282374548971526733117525136950322660397016796651355507245009859221192558589414890543095884532439390921399392747813170323222123871383641340973544958984460191708776758874097265822275288371702763916893510117024984497301216551316170179740827208338409861446079526247771557331452202543130805646920710586315538099607178194801147126060807513308118583670755024560650270249057083143137374976539280467519934004188632271694107471163107706472182770513042834725548025281128249534602300216646373689769960276362924775147117084051618857919625468175424432086633224432578257995114279077521222345548884751944816297747626505055785426993492086341839440796742160496301275953084996197361794744208862402444902054237712334174519214360048921530679361876747414010814751649628000184057600746581002977022805771484446930512345577735725936788228459389238237638342126287869628289162406651717044224492620150782884265739291081139509094772925311792756591686338521488641760075001684354651775451500170294494071045641421612776105358072792110101791884353506678925874680751169779876950805267944433352867872771646498024991405094213090779339060359156780583802022421751328272455500134062480809713548350419761209390877513170826934751232245735109813117830702724351483131806299223550590634615073022261945671890342022740099120902606085102679907012880798218302690579779962971298205093642972700993234580595923809706506299696659303205535792530391109851664090293578730430238057007867601158077429228790588869638143772773001282973424100022874406391173950294105563064850377840623858987828886211019265038446222747538188778163863044087661346279815361169723938116668855424421617318404563946212278980311058909894844126822656016405626189956968244992868202261670574143846740615915801832949104546632646412114722069500212245529051126955965990249984176801702678454007359633758666595865316282209552764914483366695724494411754590107631946591747129574260265932837974827414697982373705697200535168652141500338043095252775003178438838129000499599301147329736357087395316854871500489503702095544315837813304601583519708674600219942860393332322678765900535539674009507665400463023446644873984038057133244918253503899257462441053488225350460270720417579329509944732850938706675402297596484152593036664827223003314841464590199713262361426467676456355890948490701550928770720673841712901993953848926717922474638552666285158475728918519639202624830357798871373571336429469743505320436395868405729004238050592488854039510942154572771791727026233225291733829515077307496946266025196125581088213953769497737797132455600528654988128754566487633024770101877901871626883689793648803174930838113649198636302061825229593242715596245113044029632349725835356123132299163643208431857246218720803229325728390437832538567866080551598289543744969850188102881093969570947810057390769238661185543432821165734347972204812959489915855744542141564443543190361266615892000755522804979836522419907669051936637618729942172829723967899311202880928651212118690257885110724179768784142844955176610922584730469405791623773039361812904856636276062289784366889805085951876363351635963828700851147446845666576877696048236528258594130402963615073830250015010523547084071191799036693937520039002503158457693265085145654324749866223741515105900041601927200118174135523124040294793348720324246272304962188840370557430333896289838129098308758787651192659512650780507894262072964587613040003589981549998000536157511573489253646345189958454023242512057765294922506165166053614935643891480753954865333756933539905337484616874577839657047347863848492587195121356158680268355391154767691002387426063472824296483913635443276619957488653765235256682837462182317382854420572846240349083064499692005274260732023334846831769050153700990406581240865485823725556200176664464278741398728276904730833842055364790695979984644126019617604055297378199804339612119817256357365736539838275583372915010398164496508621703657498153460107724202713550700994749529941878429799115112122046704447020782087661652718388813584945278557168891695742161046040881393439515841195228771554301297001526625734766822676559690235204869778148372934532151437075816656942452668926490473165809696674676831134490828323064111980218807113785367017386476491463162201142954672540326295145922739446440842678972985647585688223369579213020414333975478153919294537849056560528861164408166493162323551628270502048136895643614377515454293479387347941040018063684414447888822523835647689323166791661263186283833537015460103330531437086505326437152478780805412343854283488414502217338522248661467894549185314234703532297566674422586280831244752208311867699812890703280788079266784387490731351615645416134500251814232921355626480657820965525313258782752522237891015112591989970152992747253120661847549282926995964605364500195570502276070518179372943082803618262440872167718857200872925377423405714631063827757824478415107388042356425911401106802122171686076658037265516020906551393792809985431600920492362608381482316829192237365365636423726280633324370845548734307392612840840768571046437544438785441179122562213703362063420957770735684555290851958911152901025594019289733208676001666962892022102978365606834552746406764554812016326489140974302807272166334548002744869231729511975793207100248777097276043961177170904008382348247072197116739659615781057846838502326019120756315640073357106699632767370282947720082918939713126325000320850450139874411155961231178474256203511992134498504240421156656573873392027802962621963180178815307653271601130724912358546391680880597829341645844055354886393420987367301793408139024446368772253126068693313206481241874072397488969110832744457738938523793864439522351939019692661327140887724070309551902309513736202007202315071225293676649259737752116281054507084454279292196825641923431301062223870042588104084865388582910884634285000752321524702098251516606601752984054067612810109907670030627356108829859042577680366075824851187088919374581477919540116331246074035272348971639551154254573204124072560719170114720056581867764050929704228582496972366218168238046190006663108773137264155960689159201891302910066899237922253034939450688299476331471114660329805441064293980765937716401057778450176464689780029132885171235553549838296973419304441761431428491237831108366482715087988983602574812798932049302675803011812934105043544093991053460063155514441183698099064966843755000742051384970491783521309677035344348880099861242301162444073642505088647521782705393311544808722028245993587988880146272145585187626601602405323015356337624424192061200921910968641846785138276680974749749640318275786197920260591002132325339213546451660065501030575017605791896240766876464447002771429349945037650036960692779766235592815960900822289893127839367212761232441298142587380486259620119978252784626197809096108380602272339408139592525042963112116663160311484604523134245372690463626480474338703435750286576689928289919534837713584033728313838113565830980663603488695539162788512882763729540489492338858779536768902712726898447110836454700926094126692537098112468010130794106534472285400158452782825177798931219530762037855574108885565367376195721587664880453353821170332387758358979777348042283667597046079713328184545058080591973515370034425513241478246235803570634441246195712285153318024822760110937431045473851845796943973154607089402213904763850553644514258756586393304055983480305543072940465996427553204751193241745267538402388404823739089456147908842941950845042558149816947498174913605498279660235289963161895309701749468158317915863352594723416293048038565314886305502622105962138502249867154552658184671023749219568704412438595289907382829195947535806608705724608434094306753836530743729031784414693457172044983906918114839167547475816489045531430505192476747822412610067642622455840003226756348868558607666596216147283330015843694869727252476924862901434413566880247039160482532036661506618999208857726389270236316111896317981406873740997076928045152289563058882667740124270468373500854009283651286723355737627220088150977836016543527792001800030807331628882104878702891579913716810018578587309318283479308777242887682415770591178146629421049332019395919545382485323713389008953011748737149578216584338610859807613107386925933266136984309815027498954357788361824428191336164821389880698460632363231042921651760437694165885478325855227113056459908580184926261570469307956159436759762065106627129119751758459602261758285140423219150242353914199827978152265133787542368945009891920289540922092320918701412406482720151610064258127202885137695086832487539809517813613127891039932463020581872247004406440220321414202638387075625934735976577031865591581751367741350325139847315617608193041984805791051782783433863321992738725959745972876777105470751391228070263753075011168661905698753966495614841054311750883730702741383076622303986328418003988794690380189499272069853230661627560214971153788752129238171856553077194426351019995986508316266856111826346811425093812177815777211898350952137048297276751973352197715008248590147984514333332839812226879316581798828720463589214229178750628763485167579725267727605340019358634975327021000638745930823674030580311161562612114535709700797086418050442557854713260708274347184398625811373051073535264813348300710579650142327307309965037102492886222872105635604059004453357613454962752113753795080830614379801720832352216560816998062191775896312142094623753829998038821671024959561607998429246912466030436437586727122889175772312332336788175971072353333733053802392868079945191953872180405686373260683137984308856434455594152421286850823597112629288179321614775941720329294959197823551181019678018445038558657427974301498297315838122726946689081686071262185596973303416881104048479811206823951481843623595653876792049355789296347700504600535935540414061101263669797358667000550620830714492021389115932357346168633527087991797070107992045804755719918867517465144464032483992736702036729672011689242358710469656609955795385995712558538505860574511888046534455665527289547410923613878724074783940060026790912643124463744669125425745562452598751123506463037568459625536995259771235545670280343943656682768386076836279837969892815056024718093470299797602770912117156658930115155802917293724142939596081663239565794534225876483185088088558231997825665358406446352112861844345155619035473401795552686635342770365824261123679248525750611288421639761200444906031718825459622842325460677836493655858706961378798678448537852597729901437785640980430938218574440429677007065130382779641533818498134791360932977723836019280907152404739588434271833298229231471408181789852984274318036984715255686717724097154257767327589033069637806322956584573140071641933514092079338867990304404893399440929701709330987473591447417852431564007950594249231755053492823911016925455168956152661503482997421957218260292114947558745067017702358737138265322029409767429525140629192863807414617329420951925387535150240173167414313867070668676705963024044922788350664302571004446234794256135999213728247146994922167012537784407939640537073459068759132163231993926478541454970714194470894394748259613523731495417671510771068177363600650998776107467256324281638742392692751122621750395806029189547354163844255325451979567665015217116943549092107691938275350477936876032217582538409320548636582852399723925343693418273946315733479023363372522009441967018647706434888626648341984195857599668654440995280689153166317602645080123418789316290164481006237540465393719983711791903912150406347307996431131820251941917119990900677640658761584358719106361364281493942736865247818703978042687554995416603477545689956757415639115457688743324571062936018011632497728972009898677876400965022188892213381329481226883734450557106061447733543145900842318141205408171794184569784895428780656907581992774732249240669715054191035296932186182023548154179417366821391974475455077834427744183446079648608159747155475490122262456826356302564036381016221037616020903698524773456117850076418175910620086561431203873742219994921243245219894817089734047362136137870764218310951131533063287259695855177635971752365185425837688117953864464585191340833202113922121284048725846533791230323514371229494385781441028342451007291850595106237166027031542003833083946281186284292098928285511884855878615755705117849341584997140698401997855204900045430058624784429219466966615499886858054006038891272383688247474572697740225810123600535150329843948684094879240099058460386421638910893041668787828546263218179161106667200041551499626752077182813491387090159691479289352935114563297344613225777777262293808552704606133138711446272102230677170973972962276166280645081619312407031885040166677694882176313821373490997160428413150373643215626665090868463962793142899037892710521991545131068922172618569994417955774149761515599435917437547278628906292595401675376765979662725521867288691364255127845449916757725277138390572950037624675001118974223205136521896442533745923926970801628094611879945526998776800248922863011170767775901515022598882946625205753960896661480962006810304999626432456834809944714995168124008289001658728340519276697346436195122086090542899935959060639028001134837452770893230037592167027943757794460832716800867733348493969579861686282024454664789381752964978444600824481530879287109872068698980973315623216015404333039115420824107300154833719265305693825113581358719065920211242601444290443747948727894841579144709532939601567570044693727326257758392880905554411986593358738218217575162252457845524023001498200111000691017444426328948225517766970096636207737085467400275418420536976920797551964149601467295171162435673534461065285035632783737979944064950734743538260462716554028238353228383968031904126500070363169149428885606233080979000380761254812514634240126962674980970996430645155909535214890641317134554379654473446685757314916033642462077348945608069050843071041570221247111952671481879812163304457756237465099041295541460343000744105628424186373833470473161151248714291141603506447708259163227450793762112104362718843108585264522850453666779715296451584887539184824603283156030920033222435804201758809997403083849773906447812893880228437715945028355164075622632416441459136934907892612234876108563432578614650653817117233235694184778243875799086447432044197094120401958843145228931825752603190407267792238126375477848315404404418652624589191260486093375741033389006956724933085578250141248749937671097459118104225658846979577710865577664273368456997312983600513441069157351695266049728034816173574204207193877442901303615424137394939713771812733344888771343566133668752356366738717521547110254202418479162890139468200392137291244151721078688981647483905711457144907487952277913374118317447600853255080948914580492902165613881440451277602481592694158558977296139719100377314756958532737408709645160469936053940576951220995676590849455722411517189196191203800498764306545596275796437616500700568389348233990511595112414925608016149133253762124792494687054368419510386969138742064036279152759692165400908952060996253248291418131872608260871298443306256535558689081896430339751848283042225142579757181536530807919074794553763222534941315710666583199440137011115688324695163197760276756723774537342277006552955482968947031104185572845768463672579370579447126645884429415789328682004778662897379187196114645575766102015187537039848702123025266477837169028807883816023779791818221931331572071345780464064133279657708340088488226522176713527535753774571099444825342280591023348135037233363066769549181965098218946018000352795800748921286002253868859825260252012695305857678336009370885855302171355055437596374665727277400288216929586232500652572861190421357103917296079590758104010472602470166697332994560409674361803726104743935087491122496485769798970942615247614925071567220035878089567947329477184979937146939365102640299379341668435758111186722129239924782516141787241341647097164484248467062098957128121975770911510430371937238833789063902395390945615729063371449238534216257143133634042240566612546809048723001335527968377686115834174254249156882873193147894515663994766530853461444169590772876005531607332406677407048356739022803449074222531526378901067754830926362088705806202804660266766116983283682110237955573889391673102671732447916747185794743491103639599688931883057010050921663749173105139062501573139502133396045410606199078816723159842882623361892885916763271254174941856392984336202182211568985523887189815655532316593138342807544846187123839398149007495890935737401783440413365756682564466971284758831384600838490958945700806709659968606829710888628390063785393829081691290221131663443005740895003230752694154896154435608807184539023172124682654697973832576891503126153112170081813373509628735650950392601670742487901753590176497993844215739161343709806203002604808047577777675210554973180896546254152600236525008705298126768208493673076170092480463090186544829416390440601265369185454624836328973604562098605050559818587793274888575814040796413436523206194525692672691065602409046308679234301682445186369894942710851259878677736139623734320544845774726638430034196181107164561585326082253653444120767415195274501222927014242958816654513640105665244993099644398226981649236607678444392380314484068132160147617009838216480295423746073306328145086231391462360215049289482590987189582331347033226151249698408906579469661298787645427635167602480462772725230911357650500320341018012737892155474033107752383612861229457975314008126039776090565792150272563559139997458076072752732327169377388293541679164584809022875755660835139922780156693159076785301060959809722859411645723586045099265249478497210225660382809420492585685210504863526228764397858982708628618131189146793719145118994402496817000068898160294404250647379224617726477761044262334175635361305749035123704635808788535095071264952587904711139269823595937752639200946874723229168269578553826772223963988418038199422631054186703813172176417829136340565350415874368722941403214571614545056882617758366969744242236459784843193118596784438839786595877018494623010984316187319596578679713183892191208251012780715303941925319653558069969293581286471992052509284291952449890689147082843653298646802136342661306792144119962245305097256168046132869674667508481039526862614195219907308399500325933467111645794976226867042529482910838331866398267269738465179785603372741861658577936338006516873841809600862594066925679965976172985970110973793666450789951856788802300427999879788511949273244269894686270655456587082912301220417934759701743439333373163757688887808274205976498695566113348384627520226751174331455329004902321603107936610328051321252555072581072141454330326698686778647376589632910610819072628260411727191076941636593328619688934321685884489106620675784469428378790418426315103496363776823609729125359911330106615247560792296897162878436479778705483141496479476859454673409660669228557288011378598116822949408733598228154603966201528951280070368228824165794035658082269577913588694535432950584072687424483030486207651602965899991332753074160579375167752574798714839999893285567947748867997274555324402436014162522750192862157889702642151648390658524309931422229812407996229917618235479850047108515545325859735918904046534441851096136935977843734454500500880014543982994576615138072099854602096643881696277424107608238101164815272979954624439721131590624075995762426483045217078191366600608403040139615057394122899260670391961200218347587831411480015699123506461927571705726498946867639089294501458541840803286309123295839433782742784930652070452969994961209307285340176002968195228826839101599752363962905340134050809810856303432007786038827187335456734758686557938736786537678111841865801441634177586882664513332723911949298572212442957649467878796128003323414229879444351195105422100287468347916997471133727542209282987563115040780805853271722962474947087357141098025751344992710511337938103488026307637434428232799306889881265017445416838628111804258015676243181600433986922226067289463169850025136701008083430677495175779401606937537518352458416645445988951137262374841253285598207024297306796789583729540514635548160339561864686343005399062947959216712707822305691790884064043946800030712153380624300035497866998757994032225919065376246506410373276379625300135365798367323759120335675729883194201540311467322926441545035168993225823907622586791693211862678600818887659954231290459817086713331634670102945364543286679581658895119893453784061762103529643180481800022933525800661279575700386227682909528177086966379222414699912818879264759756970713597037479731663502294981899207465990476568578295924320150050214629830353918220049438463689355588624030528893892352493316463084393719900861268359973990403296344315892185047213998137364243628742992586174786537756627218869619372830828205833626905494790022463643007691307882537720549380161165197686225912699911789735652163371366128584176945438221770581017740320370116424656241330921011247384075213433663189364449264355385157979097558017450876420556517306576613368345385890566385436062465726007982991839384433086804072113469908661888336743500777713265279854027342045888040853891074140614686610424167486203240293344682929153698618473936817549914257944014712116730439650004150620627104584971903681922100332724580506696742015384135075701577635120385863484821130685670666858672852158846572580715582693319795097498704443703112042340191080515866490659551863101415941486775271351166837198918348197729541752233521555507448323568981020213244940728444815958795289478842857838550715656488573647882662090239632632729457012551158734529338703767943192750831574065707551797356583609279690180800852104856847690979407313836235438769417813638441447271784718015746179701865402350116600278708710681583895153321168007009325489909601825350844525878721018094848020656847364465474600306139188534650160649788937950106526468056419328800674865553034074005849970490748998314977003349195740010348618428107364869452415314511178415365135543285597440267290995710243083241492531511818733385603820837660620251982805349588534273847366916352318587983247177819650855604231634866854466600775544521982468962124362623486008140910923038298662391486353323888509141047823662272899871762712862840592200780690250168907068252465214359471236723852485216123452364304399961202218046255055032314707495481334077856388706467262189047295631010692699797795474702407298703312167347903930272871513926675136425641664938088993285376823305228391715714621767264502478524414082529446473344934609008927199387397051668001347807504458490890634669936186306047238931232319578996858005824639962298743436000265394260571446952027728150162951415884204615772515051900009404728143209327435195117556670906523948200532915644154880024484779331433885009052226062472816835331564260448704957527147969820609102312500147378406685354634688444545463075845114090607862568815218603505845460690924390890037959796291812964899469897621218218458573084970601355381371553314604690347844126698725460555621538544545712162923211374081518698643134709527758484280421653317387736471342380868904118689703948462444439691963856050972522241989329954317752308250815469433311742932822892645065212315514484863945218801267877276305065337594407058312673737767752422348095602622477713087421939466869654779817025239929894069858852532758277833193277225994795278848810329894030312563499084354029120083776564158453522532821433721592682279653068731164238386239381499742391323125256911351345175664868380272819569032086190049050191550607033138785440999874195497103030828499467819906449986404690392552846930464828106078131582045330737252272622796158131598351688585606341971555270777703225684482060854699249475014264539712656988797046323506619882292509364736186657024461253193629597288046494602874103337956558131240458404100059195355328156757368512767283491895224018126976909952037888839085694675186780919913036342295485239412742510491933851990169364822863738255116445348408924950874034464264089141819622111181034659847751344729187062797695267923487774797183239567353531207924554076745172410159398567792799349776261678658635211099512695804289688853078202052617460119175593024737516465335947060408525230000473222924318520442655309736099211832938847075461760267031487969843249434986889364325141731932068977498470640857990614733897918247420408066838614438630873412294822170517949286308807150677455503901491332509701447641548801487902395877323360790337234084168821514457301558079991255801193188613180259670422525798102439540611466402105205666193732793836460909027509423320913823105935421740916679970323416596259238687046331195505276398367784132753353777177574657047941688306042625703725297958498627892328501273359163960316538906299986962255133901119314731445868990421804377816688778740515000457928001403769066920587783637247883457177404300413169220073111750345612200036080209119105200701100118664765049621899767129120117002343661287226727852038493919419103290774221125261887749761928077365461507414445076346807954717499982545009124914378904080149598380461455648995181861743600752740264672827261318249531911347999488006034521026144010444179680825906596623285288045102189130213291268725765220431662317471215239128297229009381659672598576571064121993408045385734884435012023672725274757094859997131181141367532164551058917684802329976497156621910174785929421954804972642581085036697335226613536383294288646646734001505347523211875108725261385070230708462329486157266171769133458395685297225257902821066151491780971875353048144314366170720703148359698662762822313773865035455468514886411378909061552466987142661763005077450539969217427979229434526966430995957399644700671601759339741766025108098829016683681442753679075243593603002717839165203972123190597318299781248596471770000867825058781468705528529711352675885097828927407135927427388625707414295472540319778641776889700884372321242728988526741382754138893950337176576487089736620149427077049796570925191363192432326675360788051658202569076965502435654718027030445897108744260237046251440138434190502785536503961174132318364132202533083721614965804829486622596229984190715610027338928246081361720504394459241284171578647696272840429894612652263206993787889606264092869921607683212932559187574815452461605543723874946389181532277661752390289410983513922125748023308375855092574424211163409304858512867818642554639183613979781848643295171817970761682108212460373799797635430374599451459683740042452593279982429442618189147848472137619210955587880079736632418138026966108808929657960310128720244714034634023902084611812282584103014536202452352652868117906390886188976797893505071701940150226861450043152672331456046449929642290790405115211886271184288735605256517723421519272203557934251268855642732708720705938103158804498000424130381910634178704998953943739044427520566544214965596645699657087514687023837812655145863879175397686000892943131344553445557042230857072617680715991698242215900426337789324065417925441653955233730618183547870402703629393146863741968695418324538918740562065645515655260592724012373154972136460170817000083048878798061561946961442394302819282520855513906065278661529202697716218955243472811522061393056871389531362592810863541367549679215420902583401577212434029123907270898034468403104066716337611183661992099567785186487141298599204580904652641847146924895516548274105826835810311631586144902718441464394866218712925469608314334025498884370717417383985220268731194259848334598566710463577124051769421702521986427241658533579861969824895638515537739510276164102565102409850870234053746624353742925269134882625183211045973291846716958866945417055028486668065152922916215508600566481113167599774305322923510954414558512281764241044707043629343953958794132119186631084333697051229309352201692298941173399229402143929066405651852948885724039164772818944674374685091488527098913657632119379478468885460333111798240030327001239534286294653999596347981858726068586442349700641937982269106512312689196957705584237875837649825102369762911830790037991668177043276174974335106909278742314283144942722831366409597723604933913596118655346186019938680383815033267488986039583481324011607141980505877689861008636602291028637142519056251291129609398070746620528898402497982265652748275796469685312085292889148475060078379178543526790175800303740116322612977234388553970563055134107774400864972563947540074162852507117852165839999077950081499368987328028652219483414159344875307529617213285655593038543473977257497951476277949164209441751999694639082743105926784000558917034647421710100710026052633440348463809845926932233679745159335467679880327266893214821441761299303674845518310469698494206171771862666561900189289278059599897530053834624108898254949930472966877045028623910547946148888398043590090236973055386012606847690299827544450029156180119447856880369694342590023534050332393796291613409943241000800925337035135838343881387935624366423076341720088981362679409524885729169907011643078480485633922415939454724776049437749459788298469646514810639600613560860435384902820786108710141859482368104777413660041420980554119029540070421932854023221033474506348233641599502870994017433831132653099051423749127542824573378130376310517617385099402397292990207557470262113966861585555966132090980637521540566230269100088976703145758187656647731109667972383670703966112566202695559336108615802284537319205549650880318033620138620819141987361042757592403707792665374059234275468258927151412968130759397616063249028781426549050253302703729812385639111589612969161453393672087289705986005488025358388125942183561117111362791305692071531113421660965419908569285427301911837376526443568645641213567867891508918350228454484519278563332136742700505329130898123487374508875314216058469538514885646933980840736463483673202132181320480167638813704160504483652924824702968942076138151742831366319639971694287418074016724607047653886767997888404321207713373005678306148705516230723904163529954028331064436683561992643416766632415089091914918065687997576420445679092334340999386037757920023547506764076198601885752747392870504396658488076231429877832388418932502958960837458053521000546323876354548927130278200010439917541893899711781154306561826986085467549843984276813141797049618115947060414840444624250160569027719329582479323908600433905778225606637544083513832689951214577433753748846690200958439443802647547872181548242687994949832883581259444102640158035031279343699798617020924445638442059008798135110879458440505775276925529603137624362098230338533909367684444777108687929317355969654494979978889775675720741509095558156195206355467690589442035292604999871294906636011317635579557807563374298083212230474051083718357523204597778703457377237648088619843585700046079919741722984348525638420822306295294156337435764691071539535842945463391146529501322220808249032581621789932871423144015547907662952595665804079289775002692272976751071941135007913610415495469268448438140015995045802655262203817009682396874106334864155041855977623813851206901791001444949862787327389017712150322874971641751592232363811850563277562177639053339980340142137442922672917481510448112933709812068580432247068348588037098298596349341588506666128919084889677242455370498730013539402941647430014564293441139189693594399053942942583131665657870275130127252385054585295234653553293232999290724893250324882140475732165298170963667542025765530477216532346265632421868107838779710143943758779730179833045706250232590943761370100359855490230960565791705369468334616999674618011412181031441602392638615897577734286265361309571893577243936666122406593967125907437918467279037563813820972978825508865379450688175109738745326966406512387306925917234418003483622260088943302071259587330786735121220800537159581790158807886618616927645141078538666068058872335614116115168073001614501098449279330156739987865618141862787218202992184422250784398255811084652516523263929763466517404490059522046254931112797534434355171134166808750487865528796010269006397228854548538604718769984561322092343057416326387261260236429649934805187769109668399320987533910891544211364326633026972382235224364830031092096751305611027161699837260190420739426408998167713879391859003703691486801533515472590599469498460270832389287457124562833703964379214114207672940928350088980524274564075587955639135651539768828728486269740348154282170330417662072142987099031141349021245280182495212862497498148710423606400026345890509586085507609782165967209265980593002379279813904055985343467416811981225020439995222626451889928716974403628081152731415320932452772020651637883706624087311742692160931342446921041085376029557980465708471880702155742082660764176821288884300391855995533312043181301769410393117242423801220024803490503371380024057591224696273603627363955662285279952799158597082685421451612953930510089987498863281590567487400046596832090438086330544457615926458841265254648938691682899617255129091876958705654215352890801175114363580551372936056534101674897668926969158492996642809770846368546190207951855927204824306359933238757380613785769875525447274309305987608279989825885143253999252116094037690035033620159596868878624962287569813687928939532743537964871951600225798761672468660626596339157440216201948672190094887026472220113004616999503408159731930423695954732511582664707075688752292580465729675375106377138881930260223687232715656660303363480389030388348743215272966593773189813516866418758755789267321790447116615160563087210143050236723336232091159354470166235055457509545060766402111371582258506438276208438905567881253962360668344067473054974002658925748521811675719865863113771719379342121154715499775328710485047447877099175161741899444592573996963367970143840324232428798414997819079254223541389790167971288953149600092387033508803988993710932092640155485021474944120958886606385293998182092062575080838222501076581720366081062403973590735465792452850306896910926304325228409915357047749968984459030965115644838328096336209474683094422349389844702827759199510160036925245766488912622469617256719461673802838284991639886301239095205789311779522594333406324636288068589109347092633508670588706372980040534782474312682422730118940356344576503964827873892730287343674170461167997820252689007156545104285429894298128860569054993851804144888697089451524484207968616358386018737123368403755059972177840918650985076372826521609820724590079651851394712557630532510643574186765059157522572575463120887377912357040033723004125771222299369033275319096937414507246350081785435618474113155788910412014675163560175754476595873404530612744303180509268183674468966341386753585379303436217405462851194460553185371648799485842755466045173655489095830122308463480978547283525722413968977982289750733969246851268503407678236095879576372798092836786411113550510692097275739932410774310029764524064747447332429090981792361675169191244894761839833289893656541330700574423393316264363805531987151505981456115536722881531657752758681633542652804341421792711363188885063537486551497143726156232734200968796688972257506821293538715967005937778762182853392636172703086637610542303104776568853850042121074413393570768531183028037465949284151373584725761120959967177246130873488388185332150437652193150221760850161431385342386996880711288854481540797868488855870057972252111998980215033504527757879750874663800385887032424052574784829804063142665895944246189782411608963472852858701838670964739936140831512360242999156563695595728333096395378968900820207067529312447316508097562190248035512909494410970038829658331259111653273314516059704742111091235675253544903789011801802871017198090708745202211726257980969908908102092212457512313319145392300702724814803880498281758322074401956777132371951598562751759907550523530405715283423982656154655789940089021417151835358358717609985969392030707531914298491346939927281933633515239687619604639793061846164273258576763713467242212550683153351583703062488123777706991864116960884484492505756785011432539668626245039465649897423694167236884588026657136058668117998203077115000687142886216955290658607122682740736692060809656391827513914339352708035854847082818832260596900161259968343204125328339895566056293159123544087672784962560997492962884747451953328433060842198307199031134631410827499671349659757634962769823013122940515250425540935417352738506243771446793597123771562773456172551407407014315869168068050356372080659583568838653048768677018114301084336313604682973309449845713858272833828053509020624288189703255531721564319242774191727796993192516193104536993930706405305450743014362593753847331611509961801410640361348168008698171776060125459280150721352785383738228485799906638331758363915121479420644046105817165215583302571249113297412995780955098067640984691532506230662327470064873934418027951088518464854370379055495949923238836561950216386243096916021880680392410711444711941604522096616598429509535673857025931006527560532916763538348815081845909854173796098947507426951017898020605604822811677193939453082156369087756021584311673901135255513452441600229262197311868318671985511600297650581890974974063099644357462944529236831668592862385097703099329009014879984468482620120165822940423452430828620606917328140552067551197237946255750326170077293274012099746223441604528681897918347770370693432969074590936652807496934325336949290532214395142553274184526620989837869420928388356708391005987912172352323950594794406572894667665334581487374903521851093383495581389188464648867778701508534733516800991707951201124359802010731411763452625082674841869035708424342906705681861964112876022281560976674611523593368792386327078286655322019560721720419964971780908433892117099888742553662835686684315704170262468056354494384387560169497409068117880233584688397583792419161928768281474525981802789899986588658794605037816132836043069371670400743235315833025878852369232505602256624267014926459670681359070105600219384790505772799654261780225516112770357958956427421594107751180870080539395255053075416167772611592847975160441593305009975300023544693799187813484338869488010838964709190932606027381711815799995143146457591433935218434805029830080972379916987048026703899662141323483513824778427636266811713860624744237395982645528250752507645960673620964379644735839853176870146764179355826508140456211175351453503333693252458800431967719648586999076794527852198338954253311539260595511222075156361305190392993005814875206286806874042312710622687941896446942640658564050906741619348740340501461559089896355155646200849930643647439842394003527760603075535228595718413391830126459760127245851262506713033812006293659763208396078482771206620665959203270841059808659441339166655915000562003703351854049288593843230730234965080831705785978204827149120251713571681763298623565985588897139973081791138160735383408555255343995082739985595878228177460108041625972393719695926160407232647503389767738482079590677791471607813725060791327043715349567957726198240114130172438769044288976940812645354900109684337180614860464664687344896410497052327669285430317526336569795981015092556528365693314317386393485919985362224209989861324614139965401899497270107911754139476479169006466517826436570585492710634128026245830776953625110940191870518176678272990047242361722808264652276123985288117981566648718982508909314120657638599033229907175927703062036403686100910218473947936968918824119029434124085037670464667768599130206261928795462349264029452971385278892707233058858761815212035530223242736355899897489701042264806871911720237367463988176277006413555522930984633751600623127902310357846291295935863212438091092852690201071508468736723120371063671164740887961323642637090929247225589858109230972914524966717877517773024557240334754557482095844618556264982283137473791775356315823105789287875420145907155719212062943974993300460068180617050843694940683312703938031226053103189571437885004075212955826585245855525026163971325134929506926819732468162755102076741186597119616446173391093231926590407246919852926851299814803834973895292594447818552474386019982890843003984273886050178697841159951905886223974386538833889626014774512224038940177601563409548238616728294203041003634340750585890673739401332669200434894112243314299921161860483922923371194539436493026987370448187497469190952246827973925625858598096726591748368102178044339687642418869287890642765649048524302671260391761196007824373527934467336139929073239220845983702934999957238794550836570764289300294958070053621005195006119166775692329104436235256774814688746443342506702036825904189816797809576041355135887547474706665129877750275820736698879687824507891655173734767335082739466667573630386675874966795960189554175234631208582631394713538528792488430594443862699826601316968978013104522676439751240220224760510662790878902991467042214111191833065951020507628359306306490205507958992035623969863306952743780533686118604170608760862842912114912134529288743338082283253425336168550621153652290469334317254859051436015845092991454633113059175913988187886461465748669398006555478817722620289641762443870507614397372617387607531228919716832188986388616451083281558497762409963763105288515775913932511897000041860529775939575744681158664555157615178633852775036486846587430436924514987626581388482347351655684959676591556428286761328597569899341388790913336307058872933969949114998166798487676216759554382572336277005923160412512869722781121553882194402420779207641650009207441550180064296307918373687920992855349657907968754908353387302028006826122724234304594245110549328463643800398769682262859777665725445458587244289613765554203379928350510080766728553345603323988624578689040697483781319193661254992074972582647014454659217665061423046530154402316435551582067131216773748445255043194926161222179466136039299197394221059708085295787533712388313503513540359312215530499054413239706337261621564928800051943885963114917185406925299540912517804314142885269931542695274671475587675094640836335619729169144995858312342656395862653361955673200575578999274711649329050125175008596473876195866388210391394278284997507183670315684872614097313555408021458116903005431971778014127680639718095173975504251395177383766458478869838811629508839072983863280949448492076519868891774136417023906375660614855620031904200810931269705783316423541938848943280523283093178018071742147312295524571961756115515802039502995961838939393533819161128368503243423404605382166779305721600774425967909823728912261544322677740952511107095545272072011421198074612398827134248401064834595586814772242534010165626935324213832855412092513428733366876315583453498007475639826269574702959738878580511419219388803081346906580761296222715050188541691952271948586708438509225054701975574293444981958347499456885589164824921316348811051808563032431558137968192041625995394916228989453065533468498621533742088658680136021513727322655318882341160741148332845114245149937775517591436533690249134870384665803970068835767546860393982539634539923691466914082636859272374379283730109570863021427930822397767191937532661375071850862002979107413322546046949631882004971188662121110128327402243363551553659581917474820498433575939516075430657791213467985246748440330379677586195025175078011996038172895559908976656473155581720223918226655215260662088206096969792173373107129903617891335832456653138624618966401653274813045605083161501592714511097663116226058266267003345857319556651355227917012648755543262005900925467877976039546030640943151451236348237158355194111585361486112702271929186554654550509279267415526650119989836067569829533039843586503188468896027971300385711218044659878328738447723215650824840005257930392062283798056527935270149429761261579717609687871526692018951122807837807536070235253033767149200992941557967015317563738445669867119319153795283510879171152773926486345187347708903142375403012868341326587342092573326357188493401334201515405136055602595152501892201121959684941169697515867574200497570942606454240141267199846295197169130536064838729830716617428456191144302283684987748594955396129372426710597000935200607533719389980130396708378290820098260157215615224712457267331988700709692261935124745056583349964682834132500501860664612077261658121094205037022425752558952229660904744938642310080197198910393131204197131069715688545924619694845591625367791088224577809827946179838686985355281877109965785209457064245172446335492289234335637191074970597274657541471439203264480079773317259395797716275351580946332886285246497737456490032058460797395551828216459562997606587688524400341145453545798083793156973762795805294920060088621605507784647953099379272133023095953082706891316329647314577625674829826231844973172098239548143227225114360131233641601915452390984682814557996846798450353880628779525971991493353353215937618744510468766009986517874167659946786723352364537730039534903710375529045020879547215531647082259489200454381136694197260639312834129058520388052309061534960619123789551086427018317362136614149827381764230949189114038768739981744909454891642506415328913337187716541738423070788307333475931594875949766055933889758836625228684074946766928738158490005531377868952871360499602319702906196921286479422644053768475582864625865570064526833559242988079650236095987091009102185442631363824646686744200016449778720031828605906088096392878874990816905476200421919351922664496165609439768828774382729066847045292896174082459851813136559515725791765860957045915213911268860513019847806685460568571000237566229724115506186165251686796507311862724045362760281733120621164369781510602579144871720053832913588719037002671701112837554708564210632896817766705809378512922454154477000330120912449219687499989610137500838815411683544455383101376400783229827230743763495603588745754133645396594904930408048679323403637894397884646923752060039294306154759430503661495244681950889371761285141425353459163417490294508969110570260581476478920762490601725435934374557062355366109258594212412096243409815624299098642329618177264786228842647651943921428770490128467773534383350830606927477472117957290713914664868537652836239710806886164429111583755026638025850891849513956615945384432760524167031257526710815668280667462656252883098816323093672321598146862049089131802194828684317086207601007199662809630640821077327384622633021985717100335521268424131601745108859287220306967073142466029496056350280001039944795727310413779519225313185088014772578447509621805611068491240835510038293162477180410608110820278824033297724360812603235454107372140846882092711643649734704512368174105402751842018508613985992380920863255091141669034142446633175669945747958106863911358433312087913674487922158920010719162024504477310038481219671632424077474097344412359411625800178071244649016330921548836653244055580992738131066666395988222783429484455273018588957739699548185377622836988226981914600043900023213851540264977515108513221662493177165475461203885075748208708731072061414534002531825519742570680594200719015186945634800228184604952253605431504167155968939467838428686855291632343704553000198160764920660497808919057989617941254816533882568026793506720807649181696447837564956551598045714627258085640589771801642794663054374264378369713472610556919108140994690577969880774997402595858117289644569823119007868372575751975939908075032899126148410520575568617370472790234977001899255234764661144988419959951621492781284117481956442727751264554819441787233824005145010245906392073386147586865700462966776927564356198775352141785790819266649213805123645330334212905105950706649199822719675657808220754596569547512601256392052770747811130419503565230713406003233829909095233228908486633782827598361312060755236056856993361614337020787239616024969690095163101744882682691575674586913578052587223369754256958822623473239382528973784963554184809089350593023027174711124136777954882401122074280526424330339430157731925379316086081721296822807695248586338039365444429895405250172344624861088043123761578064322164061744998623545773693629638033676526417726603443896674950590203786665381435561704832072821212895442529675991808020778629323533819721456768482039996244903248126688598215122381382456119948505070357808509172593014726633141424209967120625282823746720483877884034173082074370319727003911217799217849882471888583453311846004363852478325204658531161251206170141188774678292544875494844848774982736986800384038839677765589753925753626330984396864907828382795624392068413371760424336473980943538363503816700126414319074626808545558132711021849647822100179686136725501526222898519240030601818644508718394634699738258131650122774813153951152444929119701652396600351587409297142828982890806717693444770007445306992521911619998554034007497066541914024313981944404630248335072599203309964139254224303782377997926666289397906916245462329371989179118552480734674689635154191797431333709019211529809200225924115613976167844566265518804230455892567295804686330253850651493268672672607667499059577485487280395422469236305846198562093805101937503618380888398584806913307163268923545738153435067981351100698890022135820429057643657814215040884351206558073221586304959990294485215892703938153107596577329220319925644129519599679866241442324214641682359861205488634294803823032276510414387953150466955454316891643170217780429918689999268765613036402448326482695052466554504668714115789711346887440012477494276839378574274502263098330749499723772530989599876887186798465988188013149334926470011443545799025469312309855240819085872512068554265495463626151226343124706224444887015943459323202436637979777681660065634422919909955642005327264254220362573934532205955378291599937034187838519457786349945244203267820233603616011761870454455749010384524836060788043087740599389260164480302818353762055088486429692085172645400948231244307376519504279957341517360893483877206128620002732929960531802935107277807032414233833718297313730565928778296248322677744999317659594165158510698644291854536905647719689266470245334060039240553514757910821316888333897776418642531427707254888823300346302673413104379341339317142319212370419126777714374448090914818019331209201560192118756002759007707588393167024333638482881883251564671414072606101056201539440823056344205180393928837135840466276144117140538339699609350795704428589409532415039076107324445031795497657997934252882205551437388289313814983305492234703071238065639762154752060541728668926129827476016085878862264442249582940278741535852481973135989486387945598131034702079747469483987679278153433634595057504696974960432282828774114266098643790119248680084793168942386299624352252148239831893672308499476604143419789503029877736304267232629035666568675937339341098341249487794609950974978878236233794296830353138674986357576909511977423350065488931832843299846951593560437710479212925948188792190527591593177285046692268053975790239826046827795484217341212910127975638378335286519701059821752232912196297956502586196581727794465240019034352460219094360155257948210955403480502821310367943120556885131192892191542902234090644279320994882228276320036625681661378739873491611728953979127991513374669382737699259227720141868662097200234305643910610933176535848593267515235029436260238409245428440247144064847388121745506595316919230099756486174475297794188220739094270588493332396764660644638834562208672802131172955475230998377826215741147906223085202917469840017449342272657402796485465538068069565843316302554525524841489863373568402443494455415569011542197434924286866162376138483834401344368390017864856906920070671640925413167940754297883798167241847398521444083120057715932764355044631334738130354288735355630488192654883152859797767666297014553489446454134799913441670697662003664754448008450100869196022712416817411150092074949088076749062932101682954562847130749775578538902649801968389229066363475291484570554194448653540500068956758040334692213434329880785093962507757910058084471966893029498235566844306815243298752509158127484896191937716248620010797981975279733324354378121664657094406681968271950260416993255043645673653762256712711632520176012175424538077681106933685584899679047841077961509548294008018245525990327578069976121191834255447234673382312991351000039019544700466856308876365539595043663091459638332246716259439982577477467460894209098651298858638624662889859348352960924892432588412924540934775141613901538176254289062432134315246414747199945631856776280015003278296656348999814424294954490711577429473614590542524783708477790398669926823102767284195620146641445902346798832340749324372003425679877007168700075006971768142684488239072380771695697221480839876475097143005503620473318895684815023189444461846870746143101552566610362973559295767588099201104710619423145881850963736576420269494385103295761393106148943234162399302244602250863693512187040022656546142418994759072616075322557209667150428958483907247446226579415725478821345050014116715318779689807479242410550994648320431807236872274227329224731572867224355322927540166783358470376534537641700851053954457301902974773350387949716710227316452184647332124001521716729244286243169116152732420322745449949929889860454414607065777564849246510496262337218138801540924366219888386726124227118243846830172898516525571819468270372705578547783487607380391542610316628386350485990721629143420677453078798109533721465772720719503887126091705389822474343597886404775574731224714536418885182419641552938238075124106043015822880336127007815522213723214153049302235330891044720816226198775169634256428788715400270639368792184961493526585804609713347509368448888271919211142718181634229251915287704536606274938168597005874473217018833657460065553106104127655725301210809197538506959134891457850343718480576238471809665879630862636768596944224813611204981012966987157057526759076217570380038397623463299232890017884365723683493061781281671541139032226644302564270384905556304908876311614150106549102585515921810931277465473825915530847044577583107941213821593979671380077778911753074451240454662805199614871785779677275749928025183600609291321734389759660577700503818496760620039045954647131891931671486411273465730053765271426641749368499255625831886118694418907987096797383209030265097345081385746687324023849271442448653410129677151526368452773567052237340654313154255011790809166042653423535888450072552035491577393950482459896821342450672999678173908765018422485690080530723500202006040937723956834775680130816169731918031787954540723926265521537264651738137178271593679705787063388796121233847894044489734245151281296022484329805253619235415960851837376884454369392160299508497481728015649367255410886980332707533213738672806974220521364793561863494014025507616565599469414865075223779351927849665229953213991446348268849698314320506012211956799509330889263334256400430276245674713259929370487888502047560263250113483010533409289371846727723954901278750486715109653916831451868844483485667731183015626587266400747932324702374553023953308945430003631961037975223528095781782726655074051911842861506319319366692195172320306393675601862000710476268759309706485484570726858056224122489266606707131276999277320222895978188918918643188008954843704771382263979617355170294507850560740870842241648375152223698063336870729621646353391904341853401545219435803634575248663276221566465958821715175970603228039701392990836256270502179517865832963084689489035132863341723210767476207261766568097893772628470623082119065912956374476602923898723518679691146216701207750071539221035252797939747459610000297471368243575194075182386111695893421808008000714053965126724078570645098830306972356404068218684476856785429661204100389828934938089496222436541824885299120269125796201845835814329507794619255322800149574395019916787051191253861056961297379934878041810620134079351146852863824869880200314478122021731987934493376887294747453978447430177916526763253193614019311814206606312367445689801055797985599621275847021837776940379079895276413940233289932370505923608151518696501572142774972817904602953555666870663569468126119869087876481533326384842048273458692033534678580814854665476619416001666085176578878651178424751130765012705696935412303372216532012141684417636360887202541931591264203130781551487940883475454106543347995422550091920847497156174860098117321220576853352793037068403694114537288093983691544744609313579339338490056136072331728902903432461150915580489634032130065498550266821272605734547358501234850165420716427564720684637488303901788071702181837682732239215642360108157123983527331161223710477924126919311588742638040989009482506890681252913943327849919763300674220744573994613996596574346744031918939857426221525329946934813681614820327138825159260486698428367380460958430042487671821621413653634516494442545185727200853702684254885016517631595763268615277631038394876481496368645402577312628145093378566653083070800509416387923591006887169636513391392932449525085000367356170032600345461620908415785333066215617739641002371783688474751727797075313899457198731160023877159595498532205714974753120672341685527529562412024034588698989128741783845488806839156341918714935158108354444703941451056953829197200636075513960129084586214303869591610612377803677809273672672641798948850651129012045363985451832910314819259659148640998813132576539737463705379513913434153363984756423673341380746068778843697363949529750372101796202621259134078877403957518766561154059838963387778851640934392340745347327483986233674058594412388581368815838138503737171838846935350620667837604591431004028191667543425556825234622479135369346137732063259042316925782528311934244365034110988727909337049100809783832697673648824736903662187796440994223127892884589551742615927112398694598341906268598623689706529942487019319310506517714374116717287053892511888836193738692550279660147854709616133770304757741691152269116593334523968863052999657745225185461360650952005919860074206373758188494091419322625063877902674355857184558499317888684774490257691104097347116274663518088377349822665096093230848353103629171108749394902126975242381570554546397166655929366900539123742755632849554743040013285932623684878660959799514318797839988263224125907082822420997501911238862734902032247085339566442550472805168412578981481858185031566920251237385764517106820564718135076436127756514281649938104240264180419535189490562913807031646083739660834294567945253871318710544885889384287093802826442133166490675690792894413424732626701745184059841075340168380873608718865711582817850083703340082804898194308921210888877691887137900793436971461233188498932584742442779845593114845593427993855170209929717465196132531808006931771938074239517633457327293528957162635484605115902331049245560323376313588173854861915030302937907379375841296239537102905787059914885902049009543572036143586616566250440127041614678627511373508613547236657692331177660414217067506073042762829280555511719830381099025073346061169185139937292836869134545778072626725424113192392224372550637500182170407095935657060976816317692909975630671520860102038365537289051006393936237236417814868366007238147868347763592445753223491222350623890630303251177303001183118317146021902209163161469544153612760576375769715051402160261298097227411003381669466980801399546141327559930662601897663975665632470907112172172073422458235723719881386441899779284765574333230041315591277976645568322795967015088799787240558686174522210938053685359147653219010169935827601186643425989800918792580710487962558274582212402128770172735460130712621550365815419553541508629596766614791822191887026618049412142113708181024740991095975960006158968310805533030587080743717652080145702301079001939233648205447236238915002016241946932145441314342015774938041455073228513247386962153159743150379242592873504035745908015858070990971015715554156739120356871644959704336827669328119333713271580692155490925284465485688840524313529911913931942405393787666069658293992940041182176232988162395889841455547725675701867781045798278026916010806945722663443786283652403114769619973040490669598230044460062051498713657941271425309184924172352469431727028428853135286685198767225333841513002761812362136782177410369191836068841452275210387452471799469263673232573623295364860834171131428669645176760239658597863574087943805933630338960768597739694762870332606183806510252085756749631091773047978271542425831401556290083505415790335164816014075518446898889558973962691674435439441700165398175797617480652921998463883715056359600967154013490863147704926276148611842191937328414813696123814265962803871040199785812872288259035892522820767892193965732629953691199854660681680068829188121142658529379932494901726378976685208520456534932171149017603947780969086410604246929930879172059526173458068667591180266889739453477186527239076201368426033371252726665546741545467760327954998176646263129715371577758486689127354543176826215155145732353551205668993104603313208716310532502301690794746249425659892289162784288963309829136546413943068757168607390240190124197439102919950867726569914881681595896085689691780836507112287089679034704784133417997334663286827994214412846600192166815119587780726037920261047401196613365965326553543608583801167359302634905749703286785770032471211549678370189448412123697860425874684492003735084171423991902168339094851414360445019958221521142435316642099344543416486988274542944550641349355466045400802057843922532321176320881381261947448270461012308736230609664979462293366956061834743522546481843997844838342392617219119411395483927397363848523518348032313992094846082854050616988916825978684507001466232916271102676898788069340044381450436936557514327501388494331536400351467688165374017067917958704079833228041995057051504621207279880265455482944016890783056678331377982329967919365807864541982013284656072430425342231453748846170835318526824016496059982527069735551691991721218736627232353524354618171819889093911575555728444678194888888147086239858054894565828699145418782622579444892814641404127575430994576034694234468119330468854807488630663359247062464062586830038127405130282063993053979874615974963206639309282180125554486751080369447041606192297898296096326679304371084260034758058479139399393415355901813057895228845705682819944015991543431578704345286328153165512410770851665633703935045896394523164622779935818187864073016358788178384980634763210330047630916469316863230758011640964414644919072611191532191596788813487608756019157964836117749783969570256888610126511834997615067451073844000785111565152003632711939071496387202998041027339334875512702941968044332476406411471240564246466659634167606201752582067455289085712025322023869278842389924845411494769950805723872971230991989861813012652088745689447916696418304749508579979780905633162417576235466028792977803455413761757901887428895906366363284057712894260589685084035844784593931818341175252635165163194052346229909351389107946254562326999981918616776796758687771685937181566193907002948913342641316759105846909942939415335345852747505023718206163143978376286729141374368861609245871569012722023240035817361542454779311427046182288825575857237229787032277003828123143501896950090697402302697625211714452514228783430570922314053798015193149164276352662889210033976946308147807611467438725398137990968198731445381688826805698487681247014484920187992940460902564519793580201570185262877235969282740757255126274913122641101911679479993955136407318031939128140329298442952216956111456627295735357162752963256463238046895472694310052000067635786976176762426010933697221969026264228304439284887719728923885301685303366318118703657579558915344512684398442519700993842904521340844373750083706355108856900041071151824035726357060392032949518073139638708616899529994842519901047927967787762868669820014028762106667977027286930611903557557642549198703361734605279797932885726510028581060949801629882081497817981371345163117771605544772962742392465294900613636357040423031616109178480724000872551698156963735640763261550034301203601717601064415328964335801926561740075017977971822785120052079239005801726050834817575878656011588720250708018799791099947112404271685457486586320367386644208937703060815745682447569100784096961830765237799985018394420017015512115004612111767145872478359773122403422058782728953055860152570382294532687523325628908452156671215736548127436931647060484221358790107053106290072799935018410267690637280453448615077287620856298462500727960601095501207426043697741758891817825032474591490670133711852728695430898531495317628324820404393873484388897920751263037058448237804310809455725885647655408516445454074906982401613781733652059409498332621876179967258291429014423334416022019500410198680416311885360332562403853356144282004091815955625830569273543855075204151326097821816381913474821449961317164310985171145960632909582231092584809803368301471969337119867968650565973558405225414268028781156466241047344821511703853885435970339033467411354712541557959622108236459707068918684199277497490646778611560490230898907432919936079048282600824003726413643375524011048116936968828899937361154600392491726920423357555626631086749234249094931962187556514622103561839774149486859173018378382782580222579039867799808404332012998030163360687166548737043679527490058840711979644643428480562747936966415039122648931343518287481080788033641571969490069618371593601904661351580891284166342436092159284642694186069506883763823028392401527245927962614586010869584973779404198568473437905122028788333743544077706002160392578132372026805130020476194699847903146899683140349571883683314821452221821424742550131102664622772511699252381317164695063383250406458801886196400531632224546425884790658404808225137910324937238162454941896590913095074208946306247723444832415789215954845568877401074938041152717457318515364165191980503203709762136936875162234737809595021185386909489453345780131757712058530100885281313400452903259851330999989419193959118432444907888848747980610428452303563064025361551526976454520728782921946016980017861866726202501479433109284771984763241496267298179614190211767399337939516891603763614523322811837239356895227474847059655830214673042082004859405413828743650420905481440888263097725389928858305548707350066610919937452030765545853509748586090993560185824737847073441791162153418688899363030207905610210613824836151584626032283240578337119875102056904975228225389815253954895299968347213209817782812804034118832453212609426597453933575265731964893172888406333801241021727997810670088470650339300580282211741511695458158616011777149867467679659877553187952287419269660344100043514220215897249972668139974782613249445183048360549631633032739187475788461256638827621162764184750814483005401838849573427159366305374807034935685282423557317160139681812462653014351397994743191426035134975638916279394802329909803769775865733160024704208639754921406072774744290647111437357641622613151766588463320135891725209147891503957927642540315434663504446223591820522448358899336393017724203274542262088141164022953438378457579217493918051165320611568909292703519387886497711927648624441629746174359299740934648415631939329699051162276043668010435434322145774862118222488108714818124531669588376521503184209438324782295054133969745330373765750475534113985487852052469123664484847236816593088827523892919831492741816308145393496266799241239623405050568594485612060851025031202685979237513477609691913778855358465092745424187189244276052693265553192000778963742945605326802526158810673366701357410566373552924464667452418028261667511602467043597274178676197429422886387522334194757418464433967574583975462160955406933442088523913013883363474788302447046713792434157446143214981036597344530430434853110933061576903897641119941791652015565002650610071318493564423365044558924476326718356912635255758275886357147836661926582185769247668880604733406632432217453405899272468161832077414180688099205841281439096412392613315397733423439440292425808939642380400566270827799682945977108641375178594283878375671885183157128469597189923315331755547145019275228291426935141562753071326421044460490377822330094671881220665291086338012315821717621616996887036077423551193552086444460631490447456156970085748288020861049022862661988195245622432613749993827195078107529890044930591649395018994244865751331070179988995558749001434945034974290558116185460244507531655031661547334465981559252593352652349603184987844461395631899841529652677704365926554347458503220307196229375808572006988624432332463173131882057497711218565482753819015854887184899255922013187852490184370003497208449696018273707988463336264726942157822662953406070859989845195078511323597568145840987612029501100894827146781513095607251154556388243107897596056176650934531054971802608575712702130579745461009658709461157897012380560911840808107103247187502708959412979992164186694619627182180901159103316481854311937078292931636586858422255502173795484214050561691775376814952623132716489560923783422258725892007871423622392345212285167642393828714252664660738137588610172424045302423223129923625014348824325372886267435918683534821464149278296367449274609294337062525653784576920682521773308671225867853771935454656939301395242459842909443441034921732676412033165913181518263249226569880429614018983160264603956466898594666388020565158894384969616598320572342059163241106541191697914025003776128067901495295998323206242471547261863090932484811321406644075888151022542459112139907904712183320709900422295000028802139319398260302345380866444772849630505377203879111325371779658808070679911752650517035964065565051988277005613247288841116035814273286949477005848765301446348447804019233207437582789066342070842938533143052879016529186384659504943064255039942255048961564213331975362825783684076631980532424857562848108209483838995678952773272664474433858744943607439141604064493294137719195233660076813857589074789543339685546194791753873310386195374348652391918430876818639627873507386938685688122324117263587683913125257443058169727800840081958832162680185795220016555918656690334200099490811685248005196043213541635199659169231471549532676862360792647177567546302043450933992487578506033555172374680726510538781931003461015754681025846400513177948317896599231632790011339394977095951082721239751864268985637627223015112883525948385570396055713787436434089664075554749274655502229273642758240704786661868285973724440026271144181728722239418704337617673984241489403268110697115118731697664204417456266927753976586063461791060614996838309119248816442852054028967104464395304735593709649841692977877523564418872728215056910291670036676999151611733348845905343860750801309162839476897183685384723962778444212995997129346439043594713861354035020220628423043222425819959035645226656595083792200683851345755025305235210076270149300113492567876198796339535679783542917398839580582665376534401714134760671022465696582640074490747804886079438818186756690792637354787590896223115981955748866481572460484314299192466451078916234106452300440111880329568259640907197776385088893256440612800020737533586193789780371436693598588969303475917677910443072124544606140993921588505539374767223270230286993131305088890336606989925571717692486448749147536885624008744101589854799050418895138035415143652130706676131810522406032464361444619453744745898423558691938084397300942949957540449327819969024959994725498035915554728401476387873561229225866582837499534675267503410557830739937743328676476483515482334777483960922461268068082416967196221751341121127060505217115624344203698925339920884097332541876907182638359048967329476143103576214613178147619044014568406391744418226053733851921376803481748421132423730502035123007630799911219800345071785393810734608060916861362853920316704220853589237985502429023147409634032307493919579400029638351486303498059225686947286569075958457133531041856865929596581941655052222825642502323982187124755220259216924330784720144193482346336819782067172338928709836161840544386711891446335149578354827734860530339254728743339754108026560038243451652352326908264682210979479220926628911891775255761766726269834850274736094515006373465418876773600127439039199758670590021212380853417679665846065754950579439022460780379774671731467129709302966548132517388041669939314727162811714425675197485556751319060715904542962058231546565798543882781496471519147867372733043981307264568057805317550869479507703077340784107312026377200406490358077090023033669911780422155759604860908312388187076687062354689571117501204873448378899080937525632796519004973539655879137773779156005298668825385685010482158727342445267527822699125175415417112108643881994037565215153374462802353268362391623376244820313593093219008827269158132007391991165883236225201240506724113154717174176267487554763731078110957560435293018803086491040665457056532419094036577582241051143510833274068224720725947622314154002382686347169053667275150970090082025633798955993169371764988082485673150855825986135500281436829980592833182854033047935162529512687369813352482890398621060226827691858582278843978249950525602542315910102487204433771586334317335092074909465412158056482366660520065014271359558559316823713386976466803239756511348208509660047061809742901551304518192823636811033551725460013152400749919248282414956170499145416243171766769355123942597352515229203392562537416377733139789991125464988175872079049053875920622874748555647620657493648753134127950018154070880406643152047577574818572208042136912659490626073452103068771353711103339035088688101675643724081277763166659944116474065962320352070398242190600690134561230455965167160853194585059785301005600550049874025730936937925868323970325365219925056851057373597247157339089348041072445505727545039045401093173854077327615951890341793177114528892873301034100324053817928845073627339988149774930326379328875206227393112068442359541471169290529187769005294834052660341573364396321406602980480616339307634970972326651738312900705914840122137909775662276826776667218804832178881269437649055928895941930779266312254278867507567520973755814310501580733185168781743344223954495820926312526060519193627974863611081018351782646777829380627748696159367948214436685579975085776599149988795056335118573471668533186630973713681077688609261997786843244858836506678833563879235895432389373678100672329505380614586288236460284646182309582123507158583771458150308202152443494373284257580667458908084590435064826467960963154099210303990889358634363173997465369106146469229799562999341864403336770044759119084575455997756784083156978746820996471873488343310816250430830512658839033690635347816500540098541881994763950869398426581613170115317989159490345755613720945402852764659988452110710544932131752034375067856403513865070075420187079215151924458323318145086111929955158370967017883975885270909103343228801501164133901065866835960908570511719495820542814179900201784448214500707697931591964380608416648756017764860364245752431355079815687589276506959717862171829823774314282389104601273754460971628047030333734175566567317451816518708787143295538350278063522248742682253018559025420723568191947126544719744750950227362517927665672648718416557700404588237085164770736021275322527964156425112001020815264021582441406642409348570089602840209817512983376522159006934661398798425738543670281993659868978677978141954947477631671584758131153444424531978626532106977984194654345828321050564074344755392967755679459506225136818395025747099073752648592191157272681801902929366040458834538842177481232082706933255655189817911937211573611592338788069249088587758639885334829580221282773922106553594588054999393309317099754490637649273894328354894978146528557523276235873451929955186645547447817151786998200535513371851910906444725605591603337180463327641337408875761513844619079937877582771347316227173602689442116986537282115366717031742045321411838969534476810454562585801695186090722324762878425230231513242071062587134778811686678614267619502914669077217693623263745038687511020155393641150735028228168247548484260525696907078065755495919089071660063664241720292362148253580327363846650204520423796982591709689686972505988202998528836169186677304448665306240144245712967637354879736296254659857330488517163333359577720784090834260020105844948799899175058945329226801498714790292991692947499224716048350082303819757692521452449546386023209026491479410037434245565105626142937688721080486960926483041161737256091402480180991750994399784933573103551669746660851155662065665051112234807868030533000863642229943600094691679366530109579719032727558799001907868540081025487210012723429232715252801172353204095109778483390916573597108809364176723057125580212281487655169400914969903595557506075956371423398750798973748291910387679831190115279215524926961181273437653110078127430348997290964895114515357924060001080231782433148659299741144714055538654745475693232049327343983216439859404894279066715407120445115631732840604548849921471273189314823211789635491304059009532495057573214820103047575176889008209681766266488374772932233898192666093614712458029206326546574797697099265147311209006362906352276211102595251354866278779622590691843582952529438785732306196297575241594666395992390209632350612050128256105873253595036791817821948931577532637884148199129701183511425685997594519852686463940954565666725006571431650720715612525905546941436344946423554444081301891522754971461341275108948208459180019418083165275184466739327579051282204929770333499845840025915491006514290694830312895129455944403048688504289068458234564766754809675943034475396754453517556188271086624860958045445873755079921653130367706490755140219342189698386140876354145275202697642774607610338220805103055604269327262007155239448153857941258268285396538937757453609120515582846148393949488747894940051371407424101702655885816104280489090919936393751070038282041234623981154855972479482244699624982183244177767888951547182825659099160884937677104682557986283773680341741225054393357019803189134607264609702159529906604716332223967415872518470842584122487237757974969021215553320861542092034148778262113436754317484815089926827935704214564547817741738398132960226817380425508574472612727060664417697718132663053027122382129094868792652962975680777187129138259473354163099114737287038838724942849233562505276205891084522276340445616310413004578724577533585149929969024726961892767173708571666113940039181527236538834160505535753717951539777843411130728143474936542152274826061692653607094345247510967294325319950697755059743253488121210990302629683744451254576471210519371093884677513652304571376332105856459446721841169652425990577393637517202310973848519312931768405481941400163559941626069611399474987362285636537162475850795339818097651252414964581201092449414417150358883498135277501029715566164489422313550476877196759771987284902404930968136867261437037789207036427070136650774330216461147937310932929229061837592060887048630244790453378906186824492471986095428195170264878931666422550692518689080322240015184363400417224036972274389859840274306548849861494625868800308292769080601851976804393874244541877756580968522852541307010140152678322306788859993832930510012355374009630399455402000079989830527598056716420322800675798887140984217148578648736355185050469340780990191995369188497762626230540275678745864005313779466914778997255922440975126965168887938451764703910619124322603701658242917513768501452477495976684503012072319249933389880479494547276131612732058853441166408357350006000459522432992437680179101748599436967654335968608588708723851474769965470243003937054391342996082129439170126917924330563539211202491439088998895631037139207080741392834603416321144282568865554658919242485386624408182586574690816662979818404441399084593643690825710590990634028875709028866572457944856218818582145193362863639979461718092962156472004590245738968190884504738301703867627796668307275709050997209891168108676415348082909037168568081339647365746610125333186010135634225694999088905806587690028934660059927005593219726030504265380290569173176840713580124058987354031493142387651326279475429648761841993123520086160918473192582801690282709081620380676545716417278880223083278092154387969151038224722260308884110819443490820465425558267471798844974240534574671945540550046301181747256378227021761804570038704474922323938896497708422425439346214261918002279653984030908863625506771438734347944324414258190281492520979696530802244283535217548591520671739134408133395785789861367000967105063382581973852748463190204407905184351411606241473852915790550340198558422255633539833328445954844828554481669049731744008007086241827395271790382041657884402369892314293831450704219555294838513533898981977465085122880016638964004324391693973322694425226686300071720106839968036215146224316683923826502490042533044647566803149795655078842837778260993473595544000956180488750549161821762677469684837459448266335048657673244341871796345509421769758142751208523318823873022195317889908064940944731223571260378070125916135051925206743846345310333888641882005369002518724151034627367831816982665920628114427774146620774370167683964017466201673895312978459661078428031673003727207570490691495223114255707263180066980099256694740749298680482922564155480664162644316478160574306036443791520675797927627337533872479637906206026303229027015719205914995426821694600488212306230021786498004634668869984293361326870942025938810299929773044213395674459609455529955374983378824050748263927368708884308004785514458629698147737775232839128094528061090390480385054858264075896199706516535686911990573185117850877557557012021058795825797358514080900198722078415539110479703164141281477841932730560550023061738916528516875973677116677034235350677854465520194278580870097791274430456679246113340038744575286066156218904235522555552810047843644910913367350913638932878330666920724717103763886305871239773148326824693569882546967205413779035923340133557537967648840905994370172431723396699840540249996551399565124339148735368157591969643250525487584327263883450082987348012376470433250975152532510232216421086490189204996297503243648641676675942274513586122931915136206523682001351606377331021791996690530758350562407309253464785192049152322840795095930162242357040142711890505344019082243549760814267235552983044105885354711585230887428335221707463365084025411384128076573114543267728995135940633717682634106501924173902125974693783038868403066671106826237527358066139619663508479721544368543188593998810191916887889768094907548273110443491516096168659012899337634286929834458228980363630633834932882305299679949395512731210916821741743413928426454542255036035636340433581141953790578897484744997033636558938157522734658373110502835849608175435121900031417651373007468481818253738636876056716946055198568097912900355340683968598520817413146217288047496859840285178188609709380839860503864841105464476912834619005358313169001931222700664763256674973452803299678240106915532425578972985118077773137892752471202361791207256961462550415926336604830265004536290066511770661815661779743286686780272259322221610147538149723348540006322211132731615370234031113948079159500501182124056779865124068142065060810228264924720197474928307170653968776973324360370582361215303692348881823872282301788660197033939356350648877630347091861689179804027708826388240085023131166186388911392072224544994877466339262219581941011320613029745113422799506050984501782843935738990117603058910321934559876079881208848478958871686799168484498928069160460087773200946682164134671834020332060028552745607822084828266372144780305888071162817619209017653324422949253562981356085060852212221346767736692090336331990142120754214796222435268577517771664501173829098957239296463426130744526378140282504311935638762542233091463677995107250548513713811015603361847342805164469232620303080695094216754312586899412023499219949399621613376067007478692339921705674104637230926689892502904927944177802756139329140659828786878168283038985753812545885349716586368671472752232370170412522987306438387255076285112200818875322094904755219406081887251858036064635815703214630078967780017951551402717375366380524852692848439495696344041054035822329197432548438809078019819127984747347086377213144315477028033072383406154986270774461154420023255322183056199820048370059548389622003141661542355753936786112422260424639917780486454058244748461503991600450180705445447321390694753741103379495090302732757581424115668882943335418371386584182778316719154166795352827403959957532853157983745514347129782503223230025267410102864524466257028951396014839620179715853676841106245724380757738244774267638661889341244428196983279534391461341931693878871489374019552142408233206762835893190716851168590510932586290377985069493335797760617326116854102072445530456217120270419383790938498724093398376942030415029600982177800517451968434006196105708229260164692199304765299942676779502632468343693204915094181810072668340202896647950055028181758116852441920938197293574486044151941816573276900413645819367997840231031194515349181325840317113838781295172574400834214514206989849610222837525072732616509169571879355582379847881616818208340513855918888018214143130798785442730854406701332176206784377179615614178556511184448960235426325427958337447764826398031824700534695765862736869264084343734700347890325855198365024749524183644377348390639920023482069845449095974206413705420753036316952821093713889144246828650734029633171242434473672476616486558024282263335009768067537179135453005042364826756989539805991534509201292035692567928561496028278476652641574660505287931867159115779604941404014246904942911652975823058742215322543467665195148482409128717144312228275880912600792488801307826825314012638570850798381950267138423072077256877422748799984509703549785112417039963994144682825792900812083125330352138268178481633883534166869331250871359951238977372791377175103556028732816847585195167595807101299574807651178467866712135790294394248994917661112755247215641397942713896952638397446741141802775466436966231317273134270199264673168994821656006528386573205119180415462506220253796480095517187994494779187708440440530882146817974084914192608730191882078201731971548001946033085714482366440075646184597449294817642013264140830221631729775782378681145068189255563561240202012677187612266783220968221108766069632556094629013328180765755986560967530951014238126065192178617705565738596401567033540583200597486778112188657010262396060921627303102038191826928683014774666401003645290704608592979497646361343602932755057922161107616286567584153317458659522684585268429182859473727498883424932120994746567980841215900254157224520325377004249087101563812814417608999214526831518349047297159307032482578229607197159448636608856504699784396094129296929783387889034435591054017556089570635403105140929071703694755551401876498413213494395019144836763326061856627692183257715559437022926838509313052496641050834328154123270764758422160650877217043291653549539537211685210139055787577028607924773333616104435530981151821268386053178603069464177307519873994345612140554175404735619577771334977959225122277364634430300169768431411319787801729626932433906332841733117759422207662984156450550494775486413036465256913547122700086932965712413784652809107665462244875305276479015702359985407818580909137084583031282526377204069138888782559672280689286010606835249651895493777413318433646846268561434567079034717635582044472876851327900636999450239722055913190860147721108761079021994368941446891433837971646362046477150069646603443670876584811192449872338766235347425089098378773707068804692744233114939492781702334527943870145354498409324644245194418601700918101360499642949873145677124748370000542589892806305197150939421473757083807573555487367306836142826345814561938363296370772609245203604134097668777723154807117804498603340749406392964212369408893016760196616026411675395927314345091932385149737133384711193240055575522965987890676231222787262954048290788100594895236009820899271868816852416820892084461270829438058637719239860225603870570382746635554162211043870916148830631703302169684617949307426881556543277278157967869223084661148237195592823147701690342332662689099086181225226867164705760654160667384884025821953251687772370108704402566341259382789273650237000686627395117404002190188429868174606082862344276259915716461260091115953130377677756357035417229696189705245878699565953307822445834721755433863428854997389088932562144758286615592400215916586735863837228641672670990571307136673630185155831318791564970699962214335850161002757945747446952574542610896399848192679464645484811579143549812810401881738196214281879950150881653348071980354194180915466436830893957546371080037840882418766252448492313350898669792986551952771318326045139975601793603542139924724969960926506737280367913917185384254297395572087223921407638048408993548312328825476642991112207262162145086546481056455500607313011597318623072281354820273753642860663908073716122067811337952817692099165203536188985010508686636473329386340482413598505697519014544171652054055537470525576476806400714428167399892013928836708766494576509920308157324378745054586002231238265799984009133719418807018403808006999569867894834385645584945898822015182875383097446334390154903170922971451753734760220581269721350801679567609533589646489886324204410265108339947325708047380947248957389694055888811560579943804906900151166951172235492505376174552908885874856117215075876907632592790979781375081081157576978655797535832195075861760613980503754309293507039303687211134628894053235805030440357203103167020262606777502233901104432427549401333977805391795905082655433889726599515855698783029263968448191292067010083806883945848377096062807938859977143462577218665025425015814091041596948407701492442140543003477375834947449449764134074077114198509460316769233764637109050542574025738176266729528409660284762285307551359994214153168591701544136117481835739483494589842624775909180305625581698302331057971522593692062466985742899425193978630630675573400073319131674016927498258981121471300832649374326655212648583433307421348617542095192566422018043294852951575832193751956631732684331165880797619416948764416620753975220288739969637107760423883171361319955457632299938528972354731847752979474896198302189557639588051977912276294799333634071610457346017878132301434524842024823253975487322490082311598642758219441072216009682392194375569559994210359920104536765436660797020196278022134155232862885177301475805741797772147795663682702977376257778996231281754723929191604911786236237908494548292932311925580683543817332763737412699536741739849320078820277656652812504354466459631703959385389476309873508046128263380281575503602880911639660223101008627761610878631291431121397647034773047977052391337427204553052939080714471135279725569117255667448047702022895223648124268908202218812200024940897436859546168349966179541436405754507839872767718882180923651793864747372022320311180267656460493399701168272393667482699310898153000866372649022096891229674579798467913641658082568670438054819213740306934685873539962736655943792699759211715888204308379843317010015512398749580657038461104724784346878055391240781378181184605244411643394810582823244763035460608103121686680336115390404948528019537224380599615879413954418339413465168834147984208159766807501334774764869284533000569813269266581457531673939789297173882916332551539850729250842993269560694176954329642714121026303803555674976815301295321311144684544942856042741162691193741028704437800074311032580288160166733723596265936361127270409276650654557616911581340957710248728686232614926951923580829283503955889047432788893192032913207654606311499099739820977492349047193696649544546186196776594166194782447293871988475998224477083850607007020100434511536563817157368028874232368336473657428980873602230958575300694786571749201797119224172657620215769735421079353934853067218937302422475093430581611906426520118698144005463750863531166181635383005650278113445550232248574770226460979921272864073246622697298592904260912242631987359789517599871339762026976551832468625313632157954977618577229926848852805373715507901148341647273113708217815540674483031562257325721451633069980783081047723589705594857664021553777876546696315843108286390880292772505810900325350137124348807719236705338306719314398505787231971454884757300409819285746886151149897330095135645476252055669766193584957973376986239388458590238799932015354705657648685112221377166699361390438238366555651312909649615497103630816307740809819530036957981500979288715450520765890011325839189289238471470904040099827418480260877198506733141480556549867466780503032282104032781162494228073336151771975415495118892869734401561730138940213948291124476855604447164737192291207964680014423677693208391531695528451539475614946857722235531711521281855564902081051672208052234410791340467481899964019663742912310922322133942406751924477914435788084025312770452262203466975962188422485521232499188067444746327642348152424771652533819983537170339797024364611973118434474100181773622916630374616660105497946045242671506146966299907646024315153193205106411604819996109463986792624688037053388783509835056700286628880817439633659164555388522462001508452067060539063988790765968123526271825737202288235917886846218706034250749836271937077059604778560891435746751457240769437995637664479383491925049797615103470768467351129138221732872649092852627791983145603092300343014220152542428097414158251754821786963147299855696682581736522058528120650633426590962436046908720344899535789825552743538245798911690683380790580753171022644927958421338169895513796294934335935576854942193836810027634159009836188959501830457564345452616911557962625620825147703765535596500926875991194316598570479005018520725782460047783246451026764158028420520263248103175978492714551573910650379838024249901840516123115286281808894043073426248405576035778914683503894770647339215840504354331332127613074802487066146305117119221087434812872971643969505292861870627505890369498558993122872262470663304038028164967585853514548295028067299612496702073107479194484714190576824410020605507061089928512599845818550057587464016811680533452711051817108560982749733725531365064342502855512568897727703490745934194868756631493654379364460158302056479272691867685832360559082924551262573238422197483904833883038262514024023579469459197796542387864908380496573181637541666161305870957820760774126038970566498817897585998145813921521078735110325782333155482340811656917610296446747336824172944363147795095154469754508448285701226184737351316843168282028025685102342530805658636178892057288745374649516198538749668178447996702855120464431971655803371696008423141631463355083831474255644999371687638927942484390663498224705881339941541395553469027244623152731319948146804762139625917929019225515295623579649721385770499857211695728191787906830070902906738258918377514081030057780805118833263992882197735474651412306252920955325034603679955288117485406637508702010187595881200118411065779980088704979545538501720924455966099175441288215632267917602693592265617397549361904578356972420857296309961760175333085223290637532235108678534335060107205076622281198254777151248782303563333476273759434368039738365776964118252855786658520151978465252652297439957451058960995241405678036472653372325740132991209750028477333149116595138005532191201989172874380569480982132306868263858056894863744359910253805689314596262832969545927876117494667243171424240957679322129732093111641198197239042030547916084390505529901580654881365192478293927594031856521817520483133322679765110056910739659937851972925533454030838151168561099668209800752752439626495310577068475157835246588958966697642183006892163540482621233326314044103682589380688007028771684562617256170983678195995361651425703011503892863719977296728552737218552710041005639518457310180804303769414600512261820774143987475843635971133435195126164283885225219732384224333786984116764146457319008967563192998615165022563175841516100505235217860050231845650854174004335820071560349518511296542545976683817551827730111059121989987813261756014922326032480389042013791523225507740265814466876788467337824142345640493638112919430287935566230996720878565622632488750469250194175791663784867454278158716773560992173846013211155241403034414650639498013054057153527648063056317166709929835046964547057549915889356934267991742732855016068270284036943947456660924398492729403187226242469597213130360247817734388950327557118161955381448988838252678434664011608575721200859028133938361004170855904753506647768025640488642000907902235004369032338757474593126676780109014026938535690390939663428726415996801531588683593635476500531014005337868465741634037334488228541430180031161915031035606074155786246707659776885577401322948857759441909515674408143139536456717569175457878998915216656829881920488502624831398737156762437544349175441341984054792324753575452759669532460357910281395398402615744180054086987915372644835752323510563940863858765326867643892036514925072379847156725469165756070516368067151685924028841352124328117320522914562197268512998455814332700184964967242507287401192569525616175761224432760324314135364128711768073733308622375016564978258691137669265542837088016025074755549535535986385974223445554797107903007556701641169727427904395796274123249328588018424293770817640569436072173967484396382762117554256677791123139394163492169350545578321525639510806034192417272426867789395273162741691906686846026507904878896523697822541997663727207739050291160939785338665300797313575568753752345689131087251695206689363604589594266150110343641688971730409657564054611228415780176042609034588261038427921068470893640724349668158810091080300499992364211896364788045159293739171954566719523059289604517838610286706466980159063152813282312137312798250130100655907649809268575105650168884109054408045639560277237423784903965425384418623534967481405730476877958068271959757649704067618407376666227194382710750044210218761707823934359257510376233811271033390168481900668117887311353474620164624000928937670630357217211232023877849727549294049086222802211326398803590534536948508935197587881108339485762717022684382139363018589815127444094589187776966236287343454356127397193883400315793316230014326201835182702563262817603536840912395916013681715497184316000957587599787028564390492622397059073788986919830509315419116757243514373428360821495477485975341818238238565347291731824822424490148992968543307361530094626771238748861306614244949018709354339142284256239160226460564400831868782387183565552628815991715986777233286069847936107447412606608536118795381190811909151383658601615728915681388460464783280286994632577697263810145002713889488359405760953145636776324786192302016958294562454094357900868447487232332045720573970906424312198514179128656630286079515860590980064671217783633999654851543969823066260119410994861570862972814907402803952585898462758936440874707894148707644118584548352829838776758558687472894737923763516287833830388778136689535213759222171534515568470955940402316329241292112114537469467811693621696143264737993015144688614712283713306720754295553763412805501763811263126032362921279443519925050627784912935437658680756712415862609743888732997629799639126420069101313749050312787818571342359253997215737256997973915887685669818052706777166796274279892127688672384863028151068951599610586110497375761219572530084377046478834361083033524177051073189649972710196115117002067282048555406279543442503131794424671645446331502850567532370230827166060465430345592791953408718868570943849608104705612629872923340882855324216450122250072519213947494098522904933395981820343365810662347853425973042719778943231012639183539192073948228295487260582595714277063364049932047857869579747199177691985009878955351195989620508869366231468167860723843983276978973920132175544969916665075234032790853174667019714667402386264760432225745276046748976219070098559881070663916266939504899160137797228620504806929229807601901907414686248803839977261859403085490190735793362816245164419567406824514754701185705942284081538698879594140837712079750859455753872036900127340590437499949847931764699698916245798274529825529581304871162753980225592091836931916050655151218672341041049666950276641459918463990611923111388321885121932996637712695913550439607821726637584436976589645609026530012303916741805827566295682983259616735097954023392950018410948053430779240056370656759568992425281786311236137278045729438877302165642428938836588380553160717827403103940232499956629466592476149859346472836298939820646712764741215523260324502157115889708700172547857101504869558127401378700534268999642906934747023822869136288376966919745687525345442060567766842757154578556157620883219843602560096497832475294996056478977475545742498515741594564006059698154779758350765350572944138278765087558357075975101024750539216693478249269454716730425510230792019686893236053443923401260966948141968916529124572443564045384915518888133040542851829241677110496660394230311918969741006274364245263686943643757694658547503456408884753397917037252029596377012061441481285124361955477606826663097229794375252852088693412352937212272205685143998225952128353990931534024349528416581570759990872555657754604521645513008277531951895866454835377480136144469992213687182335174733745963919100427610118373006992037953569690934871229702654299290559772848880567826733876475899758978804997100188070652477313958476375786542792345927083042680245472288565102877229631060081224062270306200660141179874920380263601366967855859498344470968660867458552210993712359013003438203926024138472664127179591061663505972906925863208231026178475513150036254542427365326358771015701690053340689002094444615628905270761456748921999167940856698892042431768648664038955818592324554726717491257095585720617968825542903156405890094007263751156310201810156816911549765430895539122022465335533929544689394612564924824847577739852788826736921091198030950170482429555856383723032857684212288931291513824584164329381252822058531314538454356634363225735411063678440075200611157142086743097779723841295159326424048635112341236627289029008291566022237215717944438244696346887124668070065890922376980769214741187151909735908639830467699075772893535281334140960432360987591063291104475149753199753481096338474253217981452456617296813036215306651240938260135336366607896838113888356967074970672739309647958065932399641402667082152794678564401976598941960990762811181312302007482386587146848737403833865126372826474358855522278048278001273961280567792728944806217355321165726200697038104673339734031180844407399000702302283336312517658809488117703736731810267491924858670282226650770110398553125831489096945384543499946444436658480820758038484180951367410807768927399341419222651820022366449830207436544049153290548017882570115654804450500103623813753241061815820942867310037242294719528208764372143701285549440515521194600948244001941763210939570230291880301679305107618882349118432921959322725935009206320993826394627068269642570023047735958613629281950124425446138001607483490451725214507180166918097451575235234150977283951907554106824755063316635693883431285759845154891697125100249877183830233247455505173902691119456431801554602812976268485676782003393760353055044390052499285033601815555206254988963470524864037644367019988320678952373846176267733418807527461163987387417207980468945578611224664214418678933441472745443132063387475943522464631052533937838048476122510328507888583145821398831678964018330835848144158079587338767978547645475171377370712724812281463077417065124279389712562084271139448688971144772520941510105083578806504341748175063229650538966417395049116419856037747779334971240981303850552822996839001612584413330123627761854225319091583575005030385147795135482338936676930311648507043660720215553967481189406134932011984422796731084611114605326596386540865328372695720461258410725361559579156483006049267062144594677015091721422127410802195738379122551530569081547059846150665452434202171451644126961309542935474810987603616317778844840989411869296489989064512392845505595839015792449646777779802615616993060082557072374087210397465027011667478103409643205159287480180060323751207074084617761280208434039760702280459064640352480595431590659833847030382512903898668124725633998623090955763995904918814436262949830153505903012672178042770367839903289246160849171093071211082449010681125691878047638586277070369378182416084675701791724864837434431664482229283718067314109810276863140683249298982683549145898725906870596054137811263808198240377336606558018773220379061458821735193526515787261507549606242428726994374149930843349579786828043564911112275789710071366231880956090313679740165840666803251317140601867228521718085081698826233013472442367222374925397132955820284407452276517816147244536096628807340511179297330718791415493300782710115919693214818760411907016062951011398126395339865051678340705559061211243708478542795337315440533954532347303910014889882435611197619985869343040713502589146433023618563263803297488840789352093619271804090958552391947134785325255425796040526460426429653856589450358954391027121922156395905603714155049387303908534027213786705142885699409595832923746013768392843465431851681126840591528071614495720446660022586391648154625035651045614751006807392705492697689500828064290169374917233489298409898058461431711999662433806683545810727795513885197268916535032624531446322474140626380681976288704077813841900761320565839576201928021220248625640780969440899803961420996437251782448891850605850496939811103700242346299285740581995919683078418858153879433736363647754012077372539133175489726572552713547590464596782837541704458067745389665188357069292828699514709844485644139428495573900655912919020678611808744962026212644123243647950562325540028371789827699052725800650142388523445659434170438837718881606389504212346129546275924181418305779231018749371741119154759658315736434264903030546764300420393833551146817150350456625280540689905256384903518624523900609754772590575996604270873781218373953891471595099299726161314273780238965702165974932972596718050126920146405658865165963266148401494093200623288981619167860429652548839646324140380733695422301116886435341540164669123959526217064376761794487135218593696481505168061858468535740915254377271239616700186727514344125912149274113758229464002449161160392393025744526042910585363107369091619592041721714256391123543736807011707576225648382434917365765044999586800118661221641710441177483883010113374879667740863492461913804913847921810091736558453828734753814116788131535734887760128996141923522411927898454158944575928401939934577595985625000213381578524752584250133425878694157977248233102973795827810542991679100895709082921310161057822958450846536264498539713844465332185151896210264070356491790539168972124603144256959650783043597029682235554623854236765330791522386496202884720351004705408107756964111395305779636798911943562244144594683974475609359613416147202484748356704978616013155951772473315811434171356807736919125994326572262404882924498664907935827182821413459791173261278241081442102276773541857871375863093518046036753270985060300129714164323585841554642330500045906736031472278235006030977802166799735231778123432318971953694182331797958134748790334730264925662879325320431483550243194788358844284608307934810564167947737003965659506334522550487226156051921312877022643963702093571987960257443398621418406093870410671105639504064464474687391188655010934609601750460207635370872252243405643186909720395352826421832339038109910046620406037288391200844688892518993323361064913328387349094802285251017711809694643132605482340651007847755686329572872376608123528896697054116815105184845017162855561349434038882836958165055566193212639704443705264739952531113513496300763415065842000369124292083879616065763411877155948188156853205022373762729771447769387549525769386150355000507804946000420456995898424837811055364816718191842879272033855761824617272019968461914155055068193138009001406861384942612564966458504070151754270102226726438102085474263153567119305553836580089863547579122473002362743001758361126455391387495060660751841885633376098291885410098966981127524520603946638297246365807045478313854462099275909208388577886472351637067474254645412660081603014790559317392652812399333731221431189871181841587257015075406340192274445813849864024757161342664683330436218678123346791157970250502784635558636064962235034183284049612048518977153426468033733888584357932863054053091252910908694775284027636953005794628197055172279711450792095124015207688116695821512081410178903570024108868129614638806202598801198383392659812715328455564689866564542998595782004670231133663784206621360311944520774876944240413181533017934645390494741970174759153494371918943252821803137080577483806442886710259555633569353284676238400466466177662590287698119123466041999389873036505652134469671670445452397773899839620959802451606753906586872809382806463107765067235976430800866532236254856597900700448933994777466071524028493303938830811823291332715120356641965816321308981352616161988863885801401140240658094328891358048592081471795302246916832955245853888972388003008717304173421974448821384885761958187251939784752624933387789538147426831038427415348606735855165594899881877500615017623117780442613856835850009711380502925115556771396347167001294040687755046141644002473779286925306317380746759856631895772094716216431706545009776642669342961859957830881669357020413150121678764411185775425997812563446877410871921729222853054666088704412660604287174252203603518279929795227167695231883792900910193138430407589911570541476890397255332425843504630869049054881184080007488845697048390235680230238312025952811801924853320490353848076604398449584109028253552122121938093241656352825774482571824622597030696523492053178162820408191105571474085900854445963360975703260320834588483113230127680775848175451739177329127227951737983133528080126003479739685612085044192952834530722251527131266778964222492180526591793794768232487890114198779827496610864329077191426011087079748884205090242689374069356276110597763839811315473025964750239101547025690058230419730020625305882163422096262076833714710814609178737197235176310454591139521321901798880631409047917103282231704147814151120376833428675176889274570295210411637549277882293792248775195651675852803192446276796465000167161136104443261240065099713750438480526699051676951440567651714681590930797275244075007780567988197412668628719534448337134811690927052527388350574948389378687505919463494705301926731070034687686287688634204653767375210026869905568316903911020230556438935302374097974005778192823505076974781000497857918976585344799475695800886259554654199053030041385182371244745272991306967253564153259323756722982647307838849912555786932241689073496573242003707778751857084858904861828821303609757980503731611793154519289395216523862281293608510263915775689736607604837148599366589021931772690334369117872623359171132250438931760342940569767974246509303920347847663648642277455679458720087679314504751991311908393425373874574348941530379495377326887692011955628476865692650524150243047181621120213374445254887885875223253668029246810649184562284742600786405852189867333168675096990310806067682845077617348927209272493383431915126039790755882194562874352933712557053852167578543271297920375985992272649977719211806089052559570131590182991861449639282155218131339051564206876941413587892447709857419101061560523213959107576307648721620132122009636567853315002570464516702016731554867057694685637406542107091148520538732181619935569698439712379731846092281040580705693998749329188827296457634122322277552449698727150145839439736980934614544633260610352842909389034918079852666297057208420889420663085150029636562033325270848487282781173920207098316214338113862130010949712156014455075987416152345583857495004227859541505493162741738532647201656065726623903252268847858000783842905197993880021081285243512445667252077830796865897937895927513233057287298459295720922269861042030650592773719245781381217814778255752681418981564462690855663474724416949944295991172896049939634946437360872137867061816657086538697073123568634730705431596655751446383626377545754581780764811667605367939543854170962233674874863360565605410651186381375041441381928657220646963650890570276598744489367211515107999970418672946071943201554567961643422718642611143021115214608570691661406621674657630186881104232584493882309105651594493397321324027536565724904783005742829928045731278108990775421717592058720321199396629401961083816566771286127896254865165748178803160881324953557839672735530191038909917071010583508825275714753568939519220514290096990874482982221178940538548276086222020585169945827705618401268757952586652553633102569933280234791937737787092429037980124110575631629157573792957098919199280826707660606644555919961953946247363238110998755691019772352994822640271371515192781863441459709422812201458860978247244123368642740558429292313912006266778776641255398749680589409636580216950309423925985456344967086664478263452051241818772966600971414987185241268929594192651388863885099321322243600142900379210621312186275469839917363234225646993467202800182879855542418275752287213921873550590386585129406271136299687475685471702375910241543727909882772733870247158862919973550545629023904015209167198602291216171744818637149061453718306377300814168878575002499365850276493109339767177274902591906295744251587990795839223275197743866791894859918261869720445772089850764970864302650249273220430729075369584593658524507504519068883831178036420778779261346417012053783648237176326143039403671278939270661755493685935043277413582259951382575226594224727775686267401816431555480568398765443702568558489410750131645458603971352017394255927264378972833928055269203447973680814983409907519152693027540217943139449511560722142276685065126157281055748876131646188258400419263855032993507566292107520151247207193014395660216136966537791355314197296954880474562270873337506643640058014837292844633679642644645909082487407499265302956826681177621398165558267211313917717079109765875042804048002385228253170679535304543830243082971111189431834430767855873508973952603184492857655395814356021251252514655375174484115642437181984300351493721623807850025635765296985502971633558528761809501255704235482225868975415799532510171954421978521626811865470880992166496846526191136967975055798160466137494513233293541535086074719390816413722559269795350314632224646605795085041878276106497482878776204904035918274166396525522016234874522991679733957348322473221738994978969625213904630285623831630660432016916145509772336708230168663424942055312619949948269870384649363102947723687530998352008230822377762099795860706929479603821146899485824578068851552300031102112244490706081347978695478742776479151495937567592172201141049337077567643291366295155953000624076820973433293643540756637789504122149057884073703504211421581161327271254377085074446128288690189105473784053299168397188520245589390037001949042776765301625414748585507105110611762208350139255584198460718202339733336879973133110959364591356993043206731115554393853296493590524453292839237321417458785419054923321499438235835594516959148003443456963963719456672197250823067261192785140821705498507498145451723433765552367668088815872565787238109863466004027059213847879821845740097696603206060771842638153435559600484660329153377577210517999125450174302660243414341159472698871627534867702012251884106250809807491412325355434802697163504977463035582676868364524931399322748175264814020626218069048961460556614217172806827107687602672614184846528345267549807465113825143658133455641149318778674423753747649978869849630845596123803994830265211982260077956742192285018107737956508965357489544153334762253382390394019590631495772805465636878953793975527929045026675810711146110478539694853786060246324064416044196782739612331005110908043592536762918973675893917433545475644782832934824190844517913495690712825099970563011414374570557250880259098175679941256563515156914607584700098715793409511825668194685981469734716273839768741920916333311666417338571784899763854393233008914902405687422353190250393035508693610880642881449454793544604504710703658990596944620971581179247778807266872554681569768389071700777580483255444609257958381794158964753947568011534437981525884370705703008701481511774150599659982428700829735375178318567376369970184064534116267731152482224782452858071241009876973483476992101464108640716476588653457227464051898559486271099543071367540661328793137095157066836344446717215818100121665183929871339010761227573963041439859000081804038526945691372777984081203117856094586802941507114436309965108288272111991260185852989868920584566871786712308763338370550925528985112518774921305839149362835892820450052843904213229681294949140104292066572580270591642917206522830262196256199529897638452642503298538569341790132505597408862086797797365993342174959719883631938315415214132538309122332209292337181155870259711369913037396898417174404584351587094717654394335966992792507181129411039386537440301168627682940755730322957832048663068547903659273668146952798702031316320815791057259458955149130709546212865181315012681310673347839928121911697998748005122191432179968968935608894229641947933046476716793666621633329512542325391279188341769020876384704887483347192003620740547404940419157036631881587805286564707844445735021258949570773584562269885131482053399505490317840405842357698055321857608705822494010522001004370367778949683121182907795402669091269648716624251004097405346959102699382246416907880962564656977522797190340392832227372793625406295352586392568202025902557593128100705019720812268464834288200728894318230938368478776010264807760372689077333675209778382699869340641474883208813182263413318676192214615398556576739275464266745557224331076403606541149763329851862684941906411963306581958840534292069882273198889607689927272867164308564925918887744050120277118657343950279273345583570815874900161403460929673894275773307169085951222040778031068839696407116037082083619713083496185562262127760175088575507107412672136460684025469651412774282682884623101113069824620486317187872629107959771033869907037723894420362131544057519606325063949217982088634533337685177736599345082482969157649970221735682715810514636257404230564922276795313733428466833254839316748087333257157541898221289261524664718358791135176510859228700927340599294897267943508117765402039065263987498698557952524123792937628028379209612977935192922353488437598523825659545889387876806945332359868062194959141156549307874585820004278513610697984064437980469448225019325182108621683227287667292593599474840250478864747114514112384597714457946160201416844009307820009528596826977274978510493800725811065476058411535274261190881978029328674388284014504610876730178123627296076062273652675905310547388104245610967465810377645347773605563192776353553767155990830198387231047185835905895908595704339865268003998948235216748611836621463466590546258139877187786177887587309827700035248630769466565387106449023933553223367513301979317222767518378994676337428022300292180050748865561527768767937882630560710905915642796116098173925370000403508115612865293048054134437905166827303028283563025668167409163835350738722178224421746140503902772328744417185016663251984167824960225470362888590248328871535950945381729198829049348471230668447947270184601391529015617510762965684734066960181463085066776426280610691001358418218380645166298246293443369610792817659793183523239004068799019033597056702396993894896123396823461926231151143795509490888995758928715954777247810179980501941415141116210389437329577197611658047984977859434180817150391741525977552635500125182214818743765761874096525818429413064583706530713391340477180371371180817993645709952765478030063430060633543010326514865245710917625128475604052825730414790661872951219759037104358836036544634681630141138245509659301411959520601850003343457353145560332943586445812875768935055809914342154340617386580872664425842007039212205915617950591284688524644709809088736625450843650073105918717003510347161952536624868377533648327955598644211673243403786524929347219283610642492766697034986999625775735914397940226297209889164647954985422538892645157717599139250387482658362484772139767294873192153717969040546817095997011993763003903030703176434746360925526631667185072268809053848086735189040982084583513081452463783601963262479796675420795328523528252207444482184432274945704321913751876796427040361683628474690020147023638492477731038139439055259525491487437022345170041067339720576260557971473936730402494942826190431675089794200781281872001901503242047021190103982575083748921650948033521814666979609453501953183507750319731221902653684541447121088366312717154464640790018342706865234299364473185325175703499753078157815320322787184178072410978939802217014074499377331137142372224358229630379749134558269591098426550726716806409661960477984156954361764514296503692071054543966321869955323777136565995958142723422685996636751188933628687795392146239170383930315890694474430904183357939073667342226942142677608947089658091472323913065656118192737426561441590350020008465162717964378740802187050570132254010541808922442720954136253218949183046228887000847051341028221975763508247668920353245993410492834115366025655420484100742470892084159683811771201751169217808121597731632656170130118989091412529115892875062787898008290913802148590770150447745949672354207478331933260153583136258236472930701622620840009690084179799819228117882015045094059605071783480035101219039686296382566566964419458675899805081967908933963514428965453032303862952535443054012674254697457266072079011872234813989674919874701520358322376263966532716912770088981385034428052554438059497885754009493464273264462295030657959977506039555717281363412148716975667035882790773864648202940524831649607738358728290762289285089086118150702987183017352326399538660446078483063997753051140009907688495260301266282304148949958693516364790310066444365432467486379026035284857101601608408507361768621396182470247044161505962889467150916046918217458565335145322077035819203247696538956587359004650149261925408994661827351270057313920814716861190066182577886935476768512740616016749812062260365433897467807880156720332759145723184532052375631779348198319110635682505271844420491751674428729879068429236231892401499794101545300969720151116996056229683426642104908310993006417626046621025398264996891894791412781887591718894705852765551226424832932167370214591162388743977001874994560797670341936016077799851699821351346803297575094927344111971697244874988176344091632562711379930069998486215312331671749857570327879391127693198191051187737200830629441314606971877194836071232730677881322079886671841320559470676399230578745435248677472389107225754501133095812544926382549107659577792538928669401541558351162355606536370404422318373211123579765433424693412599273091704469382513944030689292949728403433868238433468220263956340592280891094925493594198503631604744860401346683386600465575205800078140374552574264178996832875591254326464798951078866061354351126393604954658771082378191919883751718712276056610156350857986573701414952102280954113320049534569538952674193737129975032695555942831103503167857213773582435578353693856778490637761686146116958970984497880442181613209751624985316879090472789935677549368145231260449245303721097639782679026833430113090167695446120823887073749055653137592443929131739049244697535982717843071755605220241697919519585768495672658819514072158464415465530716327456968816731486336536861577414188455110253282390094278871130718301692310427253287618533739323654170731797779123451545686826422451925941800001151282327561870214544883633190373927397093142686479829438434090507700739494846407987541041953643244597144847971123886622521129439971981628587951908063461930815091193380067667137822155290341801598363966152805627891735448850813570571401496724690216419889028669426940381785257812048814750863746443752929317728070711902403587378546575450152799695769641699649274201333068391251367220702220990200429700333842633258195255001188808796626287385122628147243580872253969553016037184912349679257043654823471166750630039774683403210314397384131113812655871248015736024209400790551400853096791364544921697161392216951944644435615980994452196489163895423008045279637046694179458624179056005588119128544868053613429526311511949736672591112962003062921063840640085422288502996591430643360640962288250160413398488634845628837362335408430656693438019972700255568241710991458518247938435742789922312312616057808081645162435297855058011193038390731226523960298439775954099297382129659870619353690709309429681478104964821766905976241932600278085036940409252324709029133342176415011225126413183007406473829032845296911661610250977081320476205881314047665353306544004413942404658901053793833350120035612153746391864138209308870306094612152986965369651411158197133190118558084978004156745651031132162490889875096794698838103096905103736404321349077424577362206239627149921102047279121172110254420998372270199870619158247557342323685255120062307175387235539415336875992427551264346563601273293377417579386044459356075119435725387192931548203156102411978160035598807169275376472440126948246788348549208549366608215951658259332621572355207342919169606883297069844819803497320676884484821636144075942787639629484624377995556424797392003042934218589912218528157038175168145953087754264191274204407338246463480477553371769303490610591170938226469710573829594881081322437385918261444706566510825990983825472280795058499268324955561822463742385413655392230752803789697697169872030616541611342995989769771842659318091926441465343461973469479104848590806113966284618410509601891503471258721240451741724891829328985990544209847126138175981040981959933344285098081121321098850292920230628025216542459295875581489868840571344877227818870507790618267473617971892480505543688016661133843092019536760129150238260380352217471077820588243579756910393039038262825860902633116932329557096177363694211852750882766065450845472615141270151807785460156118305318438470865373056854534537403183072331366694347520025679222720132577212358656922843632995933445475375790115113327449099397436735575864780053567325893661639237122260293802220233144963999513528067651170701012723252390055947387806919009565184994892055711054017691280205397291533268516636180028140216297677793801348949165344495190151716740774321799602715360725739550535348683284269246635107293765097723297542274867875619864685906136500612058161805214097821390997781982319205106403035648234700495796026324815817816291552409584934698780757532685750603560477110624161434909948953200128520211919218501401797990147774852720602312816325355960608375480995035557025836190596319525818685067017151800344631123661506771078209346483349906702918118030605049397093007405830547104283408753702506948723421608560735531370110725591519319240520316215319512932672051862513532957611739477042206883821654103259033607066264804967673284355421020909820766357345106949673320218424582824071036717947232169405553089053851881821223966366854514629779753147320476258727112448273428313750398703759964935233752547338119319335328888490364112671960355000704092488542721939841326902936111581422993548461758212464421767493618264283583526412567556950557634819040224012464869854278417727895539561673977757711381030641218328127571855567001795319718896211493645764460977406299141216501501184404217916945903793409344707384025477917255852081166346456030054501818339984830511757126229968730842437988388099977637589284749103228676642832089838865327013204007444460332050602986003913375164185574166788034835152074516880284180903906926696654227658627462907353429337320773893891352292881347893893429400550540779734540892230020666581527955358262520146747092978493320014738344155166838249981192061030769659518022337012554893608656049786431362271383261789432339474114340634531374305575361034076840143946564792643750000240029277711351082684004183427750567246780338471200459072089816964995827521872697567810201539718517658154440236999881225933156939169603451819843337692864302817369097424915594409899711535779624305409180952641349974805671670296495606888994216104480590758105285619776036308836224417850725802029195786300024527458103215728900525843619397620825623681687529346562422191563916695689132072878957631619054280274215744723834429721188504283293734171407415346649886815309882451621785897564020295214153876171607831502169213649255085367582805201266757106106905625271888494566357295918717615114884873257160293491205301370018785512131500275150923659032443768359156332429272869562981298289543032013339164564702229255846985697857606133149370950446440425277932007253300193431827316966442218472086034173777787716717953815825567675370224022436858948693778056655258092801654441324565622379333955576456690609741497893014620102950868186973991782309460034038198977665139212997114193081542685841306833854062918920948473812747601043905557639182869301256646977336032247491723104687487616279336348117173256788800183317406811099397214657784979139039995595628916161573131866783756054256587680280901839372107799723564576309336685896771635452767362223862251565044789282958479055607555486646245175088419343109611346505966570942856720699122464852594404440899216558238939979970833833839776306550522619283844978984414010180386302139407098040647016024057083013151571430517443712669013586718471922739674895258995744203352708682119473860424810032268021715996926732670989412062350844626237059433442393890071591821563810092650335227388334843368050055901057063569626268981681699562231332540491590568274041015026986815766294540095780638120165347794475558487848402803076475713296276386574366587091451352892419576761837192408579965684532704284042410029124882872188743246373397788721013605964466318272673475104438399167441620853375432317578870564340497288605801224749189453510360841689223611150226577581599985660908018326357302346285653435207406009026920422680926295305866261326815168458376796136625590053880637137171323203121018712247839634333149209009727390888684808887814279303933336989478830985539787555261344801536888414586863440618294230897614264015509883114955002765444496418670297695055825593469648665880725396673423446685908120895226654320149486772858171520997837910692879932192530146946314945029449934582944249504369832096636572259158920911390343131617311391502182154787351456943442153303957474798184860198023683655697486993928838046047809637713573788714700163649013643335656066378204205410829597310860558919653591610612197822075804172988294408520384495464960241533923458234607660392858089060075012297973511252800324056959529972808296493818890836696419299648402280150882103115287590866610432452489005243444207735761096749778245481319848987792157247254959392080043414149094851561346632052566559267339314401504843930047032972018479224710998662494068198345484950583577876717834548258315468203932261429801831571092465252778361257693236091437447733139536372204655214140279900248126947359674657951064727769519957172281213001339954013052470311155996087508548156084500975386104995208529058541211182467635823147836758439037948900779419220569097628154753178368414229239397666713741611383990329915772775366705229225913508477447857849170064777225863431966112480814860820489533149312910646003174559502429270294722920556234074654043080127670446988679015215480594268510593905589402579251596605108466031621816475820310567367837235318486244007049985589736273714245506039255136708835966777167615718873424188180409081143769625428975425550739049242587143954372625347579844366438906123829649057583795047095317410343950643351567253128525563249870869379535569680525928548346983071432546681673717378169745849324948597593777369595962603375023564008617450711740997642949456482083656313367443802334078737454485233286996058622777733889717146616659809745656617694750816898227019041280918811550328991836915360055692219382357039303155951130426891289236808513969036227143981716812487330889466983180546874830513282877691053698623657753223678965474380829790397058766436671815176933097133390322081515131500621557446742958929786581781884680902314875600989604765723370374714006634993168522574046500101837621818411759713557532581769913283197754303653313277821634323420261584924163945864109082129056328858365115687960687634029701085638671704213498663348451620228329105621424200426114834096160910877538717360647247310977512925911547898267282700671175948361973533716559886192035655236611783427776279404456512927705515594147628735532708044588023119353656194299630054980019969023301386254918952232182542694535623537975300905027825680245968090412878393284120784801779751677789215987986380347599105136111016201338351425935060544700490082005547718679631850410032181515232716167122208162694015587169545189934909704013061571517296955965273013290358433378927120571917802779875646440929810410504724776031942830799687206340898214776575271400761743038813851085598673104041207999244546098210083208797140758434719082279922353447674192426952652667459397058455021439107849769341194121447721121306204143965452655412328866604193694673306518317213398677716704051984011739330517581134767433032958139844279649293955797966702101897639608427861522531909689322295556977223820877056334997059872160305273648207322144525141609813183126754663348106826440073437966820072223356943741332076223440605665875559123090056750810993678808103848682198963917809256007318352484657333746016910010696120827349249220557502531331590293809411609771251424796223188765563530607988015506501273156185619913109214719507188883277942065100830921878721966722406550484241091770807246215377413055926896780798184160980468757744742804449198324869039597161285976832118959911829604998134627430158873666805348440776470689607497623868456007471690937171145757325829265073135284020715927179418412939589562232254579568793102736888457039933228779501200547895317153924257649673186468729572919606006554736258583493265780228142325278878863616962299007298082672121359487239203717041276859583625190235569509316662381032846972422409490510219354832692091365006400263335822956431141243157684019512878449948064757359312866148311881899864005580024141172997963826265502016962320013754430278706585074581019540437458465799232636936770327031972492772620482071140878902531319085811722919443953155471220867169927533019580336075659557062798355790524979172721349547618712118016938897303710179273988160939831122508978234051635460170687013567502050755441246759931671932906793475845505945808041034799177636674897662108507191989284669809411740417069440046679739539834052507433796851697387421852683273638481598454098153414595599222741809029085727250970335994694567884623728208645682181938441156543806807463191145747752627829564910533593993823772282521911014604453414796644604218736487667147573258109166921671747206182345896244791757996619991347948574743805649123114840273299652221516934153183694994774978227708436879872239416037114598782200219951249750923911634122203024483768001356299793209608526598930858857612923810809329956587211503007490685864325067947644386648698113535251099820902595586623917845189211782966992310483145756779852824682409844149307498556356838698765128533925575557768165774685500982935329862252841740663592191481395311215763374628682402720109862396724070098279296584377039152205648149734989885625395621351309965723113310484372666933979491473481385455838905523729373261904485694821864199712504459871767207913052409957389328099464561310006210883056213004908909875987302550368442756926497388968023025917449572133809460274356153389281407597788915856276367109813168600955173947826548756757125280546116672523644665160208725314113974907300871426587588127580456314854460552158542376134871424454849875644395875744389164586349367207844229120116068460958586236821098125915054306686202839626139461520887011792191848603502260940180844303512818967263410046415769425954666029107310062016250200276388653814164696157237056953391217170458799026406604217126173452418167807392827133542070859426099218672651928334924435638391223542303596657078173393388471652256379863715185982873855902859762929145629938490532888563682515277722400274570227871496692114605025487903943222568754778400988856035510037012137546995658896724720775675874164526911115822058996526352668090211748589165439057912212152705479374145875194108154405197498364194226042423426813831966938739035170026553749920038447286945963453818037884987311351244883210285713602730770209647251424828675144409937250690244695381094276005651747274315545886433851013424666627130974433527829176680192514633532302805750038393088656507172413553685783937641900379582717561725707473554854672550430415522291572859052700047601015658616993295669275598794163161831727377985603484667422391262012861808206466085329553126860220141613467588902262422912533176268746108333181492344003357501489833161092153908865303504398456863316505751190126197791820884314365637100396254474687062909908123604369074713324321896326974685616108132537801103228272325128353310642943391999723558111429739345253978892674737894159727542252592241144152688911430043518230820169294949486714905369971600073796638453303719875961451700847605292485723904885217514061678253961110967840156472506004406790592989853317461536951637654297017041904690271677871319092577924402915812947164718833814420422182507705980400692222973070408475735050703081050570553469425037129264248390035435890341355841776885296406267771984637210827122124284226294817627186878069855861912778345196836978432128430093663668255849302532519610158196470702093942699595772370134668242593411067212032685665178266461920517024143265993646914643864244628795873260221086406500177803833323266891538797677924093849163921549678308239599044839147553477253147881606053271537917956659118659144205399484115743970344396299560466300341891797531166144833512832634871213821062951738952999151437517127206528193592511674453575654528501384617387229204440013478009898736435308719308018543510185280406140718895692934622943219620542882966712734813076684220890576465095881756830688810973827591664222452431333053705612472383313907924993342451441492179032897199770251558064376354452358302872930716275129528365538538517835134881952327824507809079996579308540289840701864021601605164219704836418549549718941395245152234587009159744982396747226304377746085980796255659423510686362537710372154903774745104974981541705999746603159559222160321010832995588349651658946788318893330417228479715103233222079137498742259492388321624238403095623524695571445061591631843876815107787985162551733263071898327142575807602808202704197145680590467220114296035912765587453189467663423265285930853661713941344058160303812451131176558786826638882146337668293474752851613740403167716342013068958851605830755552793870877797616557125094058743419792208431207224109243533076766821816963192454930162986539382072847954464739128855058053909332117361409538117894228029398955640482061864832056795598017543286570401763501498886220691156176313293202560887225898492595061202280451637071341904725493736172315339418886938768718744384705102185226530349436766455012474654652470179004553498811832372131271355773842568062111695375354939469156070609698525012749467832998416450194222813570261395839089195450266126639727682983233622676364368847609036763001686696026539463346226054278236452923406619925874846394154632329206185855569252563008170916380211278607662308874206517591746651180737402118934989195976098193475801668057715934812185729061504703097510923874237303901219583412994579029482378940430796396701889647839392792026053232136868708750348113381924538276394462181811966519562223180225926235120675976324278883396650545579679843851169022348671600145814657575971677979211165108050155296236332279728171775529103878163526853537000789020626194869140558033440180362806844257617193092627617425654164805049585730330253578222662080998305674134559110118158409027741853824928215380998222974978022866727061128052251532912649848888140668255254356516196714649036592509134930293959535781161559709531071502653252301124718400279492780990726455336069162207777133493695647257931419616378986767092944420408628163014384118113171100928995351531984640551610439418562499777383800358020963261049692485648247232556801310743696234772603658687271471107579589457935141006711908573173689518101076703006803014240566291435723602983150890034449322243326316493575403789037694479738259634968871983618802875571431046727389430612940310343623311558227794717803616897039536602986805028755578777765593188909119226003432379413275202510088294461165004350010255897449035693249266597919850826642659376740046092901496323037164073814945588624545850156402993092148057651731005948697000613000296835737201403793900644141413945884170307601952105953687219647704106172792131054878825554443834181669641402797265624084209544351601777881983863018522316171482466445774409759283830616078889877776088049282365140526954691157186261824676155691296169889259642670777196797614023262592528648969340696359144953995677846221556831472099572866769635383756414609383981737838397824276149534851379592757933700206534978074840480123951281430451616012621083072076098810673190630519938727298536652499599449053569073165403182299713135975145624866143050237186013561075664422711353956189964562497994504813964760648473580846420021743527232251186222670490584875858728460425292320833407717079933168524052713907346681963276866376400411044708812281575495153692876135344855638766717071486309029509577102518064534128757569001776812593286671222836607880138476739979113051722797199744845381947280063765244310434137814462585306625073298357549618719438536928450209839633060089721803523716784398924660971371597207107138350573367732520310262668950297116213143965380783590646531090021236538725401655538987358377913291604159795988603524716187862627321958499384243959448215045889438170872990902889739645853850946954802333654110137561097481018421741428184082920563530388012646756010210992263722616220114953675309655192215823368953089182383433312592928320741277327718174256816016039477232393204248520720063770847310786834217272109634104781925657104334283278193335997703599144033971358482667523227224395719549442840099507862998107978835515615343792481551811112094861806796444235262597768709564297821997268206025060173538448864112881337660530695998432409795802193392358265452745432866107608854756972789679165161631964643944679526746719456728742666921858474196697105624744909419937232739739428055752446963277023045377402076092399348833458042123634526473611718899903018769432205733603437708993471996151792401108500703123540509506620025404324735369786761323140437593999717221788909934102775402401760878635867178101345285662954981881417400848211616710732431996692897997550844632225129215064287802256650469931648518439775472340793853536964576235981531034124615370575477021349841745286187357206293590926107995638496329110623900494183952399059790825622465900758131051736579082005683462790126956023093791890177549985261118194463355266620272609784011057302713795677156248313517516146981191157509178999467230610700827012602944664890156362564989764402617507984305674772493674498645267662826455141395157363275027074051202674828390117560856028940173818751927480418954179742912784005654761548789303112173774957003957884516240493684343908058000697356596829192938583181614474684177547161696371086609845402371057059445010253760303598892023484469760631690885305439135710548787480794687522248825317490806160670386512058074385697680644446603326686568986434251236500648672267450650339954577399543437541269302419050172763529283918134581880800892667699621670263765309266842518434183405930890904532566552337342445706584866884572255147232536209205335085890708978153973139196130830080628408608645013764660177999636298501090649655731119574682644326971511367143970616381894191233145400727747492771900961792528962088167683542878691500903282171724368381735114912236646287804709073943379624425729599632847480208770307008914001077774925735358193389813174545441021120886067019742124260840734235281846248168995845738859454712916479479174996223736508034694545629243105188172412371689397851033615522464224220742908776888271662534788836175576158313756667465818296747138334274718767598881523704802693862810949230206977632762552520964340089537960690018377672960158875577327543228580671610639676900473825043359715227182156911833418125298940351428171665769613176190487697525300416061067479586833563647193354264623412153027013698921193491442754532563037722709327090986530142115899125923957619827541979735615149235793818742691266395512915456541771568620122836608499848044307063135304196095530677958621464189302701856678043117378080778390751372472602293151713411571317460963577586293008783742490092237969981257581553345173947848435171855123923802214525226964357960883288287518329998204400588828459992260419220919260239174017107362787940540688245020260322991934602233855204986574787479064200045119518395169199659582066916081782296251838267632598761749597560029275324531114681614403994381311915823298899694351792968011208750088737187057095212084715756513766487416745610710294060791634011533387840396985357696068579525688280969827731231627381365104350644203737725656681678900886518395706018891487657778079517913199556241166856072309999294686984768766190072112150789946856177066934417918770601693771444094973866650869269473739876899042481079848723746503207185696006872558325869025410558704115105580330016501150226918762359424007314691840609553474773561854580339524616871549723567570715720576548630044458398466702626708863260049193869532266488988825253621649980043765843807766099071604953639473868411877145495746312937178817549930833932401807784695436540868240366994980564408055771596816192869692092764940674411228223304267929311331608605374022161385544291072819364199533425448787562042244495995126546228626989075944897817279155041527498743600327756809847601163062557546371141092294432834585550813194145222554180545890172945525802400419607876138596827847516823145166517476346413657455611190341389486250452204187732251408258354194557869573720797572626841866097245097702115960222479779310431255183323545676966763545249255779120202523703158849213662943775239989125219114702108403273540039027671806476062230326718008506845830233096191509584982175008663701832928947500354132797365230354322901342417505404028235219501230242234725264927430378701535121103460520349250769557886326453326892860727741518596531788120656319263328881815500423116812999021651966128507583143587997453213793738006075514230969706446884040749075295558074614728015973217335081773489512091318762185387243834938818544282194588759832851527532932087494991674393904806795509780540201541109109416534757832293240656957126857047350310727882725776978347824020598589625050709854484273430503708916449866285980300909493349506506123200806381566692089489755524582905955187129494319975111394428262883001863070172163389173302830474239509636068117729243786248229305560516502651840604866591758673741324567841870239456545896935217875229177190976696304181143140473731590471825751723365357930523556079349200415365717575862597097232094750061906017973836038860839642799096529011405185220940414918187318962752047087989023301877305510148164778535157237425064962561457704876557207884930487729646372969643449713175156153189449166193050069826037581894194787309047374349778318328617619695782528638451314008203254538722184175193131731552651370750310328609822567404681657413768775260495719149632392474541044023818808507230467396042830564393566968739193353240832031648764860597227319899902728232056480739553315183754060685237718327318912620539691635737411203529394526654958476415725484612412333292102538595878919434721059334879075391387895287396768100949112109255396489682073365161882681725412164714295891493882891471255988989339934155111535644386472022963938370470622834126875311724797757694666042126334734932775528998139706914718661155154316212415447533260832901706732687071249538513438572964470705883340412005874033693851898131808873468998171794154687712606094287009555224864496518501480715914363801617428800726464837850512223940091057873883601439978881454322052832192988050756837629686352617882442400014139699872170904760136774889505908094760448973032401445292595751680023040467550889462625493494068958842746185785329932704322486835394976168255972054693558168805155102679093076235385041474981281078787864170151116470835070924668571622809170806866205327504364517507219427265002576874381439052200284256124514813641840507729051062626464232453509462271376190425874483473525748900743461847561667928681410449644904007792867252286718298086308020166727258781540785388877337983366861071498014477218585294257488468376209929593383902699819489757691911019848405136476631492664786835665944848336186656041502265214460265295943784370255447466268424920676958349624454156769915875842639775516096241531005619493221714831264411641200343814266587248972368122512777003656468639795086247222258454918488333515926468431375968908308540088651627426974130292104293371977243100459716616224461272721105697018341616092281454632356351584834102719765880978345681593713713577857780445608231314357987636694038260525875874424048138108631790816829356620720706776546612049054340404881021091447815717727059310980678898899181364711882497444481106309476118239589486444218566719566663386993335989607351351612368359858346539068188548820000285835649980579647492914685918828569697671430704223407475182457573029266942284852148993475479870137248200096738181021788858298296052129836215113965523533955762420493378347911914316610375464923497080272757528324790462653387637692080740288610680052481819344799004223822638600384723232713946390061830483178493308817433050901892627814761645554924952013415442466874654085611049377714891378574695390581240403365831795091689913055693202409844463769724190026900061286036283675600193779571620663518913098138898353494382016420792685385021363656922300572116784965066465677192229437805031424022456859208716382451804217311184069164042098170804174937458338108521659759049100656180908829337189625809310501503180833163511840670367267719616661085160332905758564888348463168413162162494148913961558605571475452561138316297811623950514321094746017858330504287799003269542045523123644607235958244523180170676587045987009803694456241351122248652698065581211268475095661837159298282773409146749480434411788568942451302828130080242012776347880204953426698047534239591792480669452379809215615221269326385533030477304774729559726958000690894511795492085412764738264716620489182485104441135346413435433241289017220045582848096993594999917752523878171603930363588826474111200091230688117849152218202149333464337043046489261845424260462632913104266148595058930550446244487890676892058085140553241335089612263324562535010312982475625531972015880066228147887560132225744247819388357683539748595806420415011842065248357153244404118696757221051754324122449123637007516648465166895365511263152613912304497406270371139467995813317959696102611503372162730793222317715029717335644563835554479180008266301375863728600938773553930108281656555664763416600355487191146856959436559274160397626724059007435929183838010405755375717506024379686482487495660504795660751116039661901646647421434808688002046324602069710294047449842712015895529875166432268520856417358383281164712515918828498792356623766403853141609665952290301296716742203519166903525735505103800792850450742208039789403602936084901653177111578585149764549301366892270141326059208769485109681998330105242479289929068511231654196740195746869956405230798380607047068089510056944797435171649014878214864070523213512059785980715804846281161876179755340559158505729288717950140284464699077697632433069671439851818648737938873496710920091633174845643620093964415538036428642065606966774577773530240035513106939779464330446780467663779900478038809318836824604969989889827028403225812319898508631403291604775047902483616696270039405463816746100773661322240328027635626507533190984237796036703899866337780055291835586767132437219858931642041525531343261662413475174554509190647042047355427481425143340617242496845844458744800902778649336040984270547178442729927221307726100660495961256899677647236892914983692098144059781473987499019726166250502598446984649236674690089298772535088659205760841491016799923188795732907681501133970308993427767097523437772957494516381595058092048180552505315925403039125599111105007520836781468669265097675799252312987014056771912214783134730562081219452192567715221450907888931708475427144596257688019749550202456468512683367399245704686366572911035549683923379503190657078484679990893712948481092136267629722551743985776982950070164034312507622094180178320376259577236568013814945572163300490512822649791007508634767493793237588056966604952836743426297275827788048138362882943561289863745597559546611076727100853970844429115976742989706427734471683353104552748999102822546861117037403229085135962564537045709813465074153022558186494384455816724996632274707369586444723290113242374793187194702799055553206789521884936309030447765873166246009240980705227942712350905610313176514548443566857917593405358491035268893573325773879938302437191708155674711683591829072897910208705883789078837363121197502963925049704880267432754106785945588547062148014919690540406667530152769965592180406295190172314009992913411744398026975670144796077176538734834804570638973211392361426929635252644433645923501937934077591089109175385131968127445394419666940856292488480067662858129951745001431351608456577823998231354738369393072921722611424890338276572593223918647162185979146201168347639239536983337605607967845556146249856493781643114054152012264433520719590370897105343227668629463632680039267403580852521915173604143850741941377719367076673286639493267485264441028488293192273333680848955004033267329921852350178034552559211971533265095330932026004429027148950395255799656244275843773546087514179651383079717941578382964960680968867399876335742034657438373123305749754319575273780690915554760816817643138803569129356402598907650404076945966279984948868411741327154245773322039827412216363752609550767584241845993295665806395187376334215544430878881228318044177856057434900733269964168829620406227251349408127390779528382093265077666034034485916468343130279038405288656997310045977718593325498555245301447716082767294234548442204258918157196295216945587069298943048255743298199927208215414718708457482551754453461781779492868451146677563959759505475761103141527218675837167980868590850422833614452538153318839413405692442422278356465444275789918377686714194755192557461671816799397894297612609960599501416831849309956634290133356987806952585500774429410394682310948527021489011424655088837417424665170166346990634126515710944952356113783625312795377082661780964343200474355826832164231833181972114579693164608838062481477112293120668620642390854264072368216147775559032303088087797092726851302426049154071524552248357636011640933027920913484606017077525414973119921014579218382842218306677946422143074280217662209023515607268048905383751160050369975746938556892069630380859488205900475732535918068908742867890789940410569412095686939641276381918592183479598157405489483058110010473365532188732068311661768474679361829585854014932258816426549645737910202810938827251860245409072209519041077531478648013232533453251080689756202963433019365341885230432503179719241935270446299570875983605250085037038085176059867797600909467778728460327528778367742183725059672787929534101320359201187201816502441137289379105398641231370028690121486845646348991422292287496527201201602133141776721209681883207164877796197170293871234446264101552069649795122360413552828269853264398043126464201267000365795761030891981448316367311285190679402101237112543448819210281409394793389030044845646809428548695643128514763615948975736408202829426175699376443531743886895126477563485013275129571082349376499957151818697768367650673907288583392130129387910571405212121955041712778114169938305824004083301513350083884997659687425569046212861804624381038483420478482971830070107141822603480220037609048848993609252746826241174992652499166856367098382459870258918307334290501418377726776108730746390375449170397948642913230140309613460247161980169290160762938020746213481486920449023327938180254388911427562204382700883511350039195777102521742566967890758412159614912502407989817160313748010455662740154701327821397923890535751298544711732711487848349636265387301275073198267999674994208106182033069951146911502053679210440104636046291065353484644615828501409112939787385586020643852502204627786766799182788652179927586868470218489836002067305900475927190458894615506783239154994568881571682625977052003256732539910272602995207043601612189146246850842029119288592373015436563561123316576564037651795730074623043327492774348795852250758767824116248215194182758151555310661300086460363286123955558545150116100992307841329297480202650737622457180256005768580576217644400852886903136207076292953952397113260732478520955577760832209891030693483231077557491080789681770630520938836790667054209711119493430263678566852562373897135285625368720222729999520750247256165111664694264938713767972376498283813699235016371889795298506680782591501925661747664057812413199169512808228500858676419810199331695031343632928611529378590493953144357768744066312114708110022236631592326542561445624300988260642289308344272813780801253736026826826270881432649805530308083429432948697880198408794701184430620175477619116905018270820203932161435091895308656731519005084303018696692958796773046324907348318057995181198795821606933743601154703385984077859918650548380198937145981942408464391492112250316382942106974599272413399019642208234315873469768414768596496944372765321722950943716374800500714641534918137479724394136713341771392196283007860011105609471042494061866062289993964324383938914467134094066224371328257087081789833874579834954671556892833532575248402614501297532989962292022547034199458490826033566592428089456815636428201513258332942315911440627875261604590193739033694434898694045014082916985475664384124938730781173432667893979297568986626092433553979221497409919080816214393625028613415860477552259288502714235730379850543696887967983332508111155989744042654807802332772767555559441010408037916480811407185285277410717505949625052857527305560622209346585262242462406478316327273783131688067944698254223964742587067266147307575787286141395776311494089710874087234232177332855219828047275763457656799738095868483635279370819318942251870808083939724552555149021954609838459856938595038619455058354670464724761495059423584871320602151693879900530763128529086488954818938951923894015377460330520207477543886359799858349277012231375806109346536904165281745832144581779541031073419226464210479553072176371033122675196659113374271084068481161290309152096413593059905029277034396888116586468962753280972229751540362941941730761236932916740692991319051857167198806940623818628815152064625977373782876912129317301685720756638058703374570633355014470282436141739746379776852018986189356475904833904601823933830934359886539101830014441324814096439275797613741731297221475518853073412255690168192340079936567176505684914045023349507029012754684215695794516878839175253702947716761516352466423821353876845910311240778381079428714582800235883491888053985251494212668118113692248498486254947614001302501341467156227503667224797201027725656835938695473705920692145618842095003167873950932195835003613700136173462591042110640199502947385182041704198928877739155877257220007663130431448181359920627386107232738740591344772900004340777576436943010497039991065945256749395320938048514871598337216208879255657473323699345864841103302356057452281799860232257276696489883302751222501497554201254595582767364199543896181010740455252961511483497308423887566440650705419907886173932022878064960059124144310329551362916799584295967913496204487515643213827221894585584003208165224709356718581680117618368689746787253121588518451893074548147904613959138828121114551401279544498938597648014990686272142667310921332645322246773853668129099603831980491476794943083481771636964595240819259460238057102765608692512496020759869286698011959392815545912941365750249111656465162800566398188569800526058389636285570055317999889205199567327219109722560295883966898508406752947204887848024414781583792780562971890100509180151986889297222992444119076606454517070876998618515646811153401165591604755559374164767597885331888369653197292127829692076735832870891281809776177117190352297160169973305288104654283349606134292797250646657381103873758525355852019717322398525823846497096436328273662035963778542684450491303853689180642380110600969438462825426436290704459692417817257307923504565358967596764090603218592141699634709878243316318056470316973156351439809878211469458673736869731592811508086379762683009537872593325333427324096037012827805082874484305023092678848456135694651206430350898194053976415660645614569875602311442181801777002801003680392625544378435487779783202747612160407487555935145180303361882711995453442221619705774284217311914558772955390006146368818037893251070212301930071141546029556279957519424736837750538263120100739338566653110217135356458016527741360330616370647401169967210232175133898863170440457427114846624421167755487273161965057984196415703146731819097431234080720347370884566829979966688089307738159819243751861076995262948693888407930908527404730786045773052413752634588205754560568104531207086945735415122754997356703142555179521653926752810834129006499705385470763418361201203067386637732114050486991275062406675088221109363678578315697008359037241521004964608158524521189437527654378233199095128976227302734709606438319399118698942944913035702371068375203550600896862534759895647813055524531222812650638210610579791074349418835748025601158655534860781706093348527172483835212578687342477188113148361563745754916632044516428802528717797322557921524866724989996020381458037756867786485313674638850692785091743037928927660885001709346376062627150937072732949913701783829164854420751434996197257950602849813821031566473995112753172173765477952193008822147650503183240581676728623342270670237217254765530727673602993384955147017044697531905719952286472481963757551815550594923615070815645932603202639727209451581277856241054347732854056904372729790323652071724151241358508169601380715314260943353580953444567792513625966159951995035685254447090642314677693020899873330760191689063651498130876743312876736812267487956314214046534670119624785327265287206098301012869841814461161400184698257803788104627552151873009612277454213579438495101200452898493922523047314197198034557709526497809426812202034396984188277003485322859300543488789237760440049219106112909191715622856321605920461906817218359065375331347244141364032473895858818560952512229044453449866371153393107490655210315746674327830513375782923620291599138596042718014310991194727509255227300940496507999481755736786728835532419719128259912795998688085766885583897554702830344513004869891858002760230655797931428751931136325537902128473448003239848345792709152286302283570198168884146567495294864546946463561580975147669007480393440839855300615563488164045474006256890577423168912286698568493014146759223040063074197792639675384122029531507758150497147729921312745497939479793425283390075324955629726047278657104370068789473862972027825306225966150284030178802138551298179242271153406433689579221760812762332351635135387431832753159141963776900186824745271910441185053697864256749756046245649939853060048713750891538525791986501583263074848158101467859597153477559827108269106658278041516767445537501160483881988752571558431789310925555345518486117074668807781488757494027719566625877624046889704760236202756203916949510195684250677215152777232552903596060340278295778462551983294815247292087171748600910872087121061969360355498422708399891695276713398823389368756214926321601557675768280305611167251541623894553236327288777683141932959499917757660084096262755212768767598789391565369332786593927872899594076543765330208283873721267582447546729342438308978103407261873204079483959550322481737032423474664523730660353826986065401877886436917114586606420895139348703727213781883741685218293729143044924307502426333844024666777366790300380264552191838550540210826443076199605683598198118492821587686871706090775116562028861712888334751850768378460118252684615858189338195235856287948325185998587262331551735759472295138559305876800820045139888331803864055454643891551323937913056563767009464070674563266861962862802284297306977164622348314291039809275799271255563902702889659144003883072808077995773172392326080644347234578178744615999828566871184988445362103306700002657969874762877315044487360249706466001684984959901114579687351954133879894844485445251691638513852886739706578797883803026472102283505439244296557511621471594510428821924247512836645662554344003511601393395003068056664378468401882952086256284010704376327059630322004050561902246082571298596883790410824660746579106933234283956576524002489551108556103596680158271905202489799420538264100047590806670600004647944948029345873721079757087697448795775101682282120046688143382595247074929430138984336434149673039953699008275130867249916663202712222719246221804342745680587078773054103699203738331866038206656794912738159065029062494968606637554336259975063289732318103936604210311723047159533645531771410649849842409211684422121039695459888307555562218414663110771405923777875166977078106735503555268624004057502165134069602691105299170862409669525103389093617416608850446134154039496489217214644741928346160846313878895655881142749745528014675684377701138796101906506691917610631308938623001876177119113664447230274876346207770587490378640775911737154220728635530647952027134802390136656756122540367038704247125145969089526270169103692958034701189495622094989663671403956988728345727275364969282957015573665936544500571892310555952803246064243514272225027101637819151676485619564240532838340397100840595375379018543426614450894225882425396768346072537704530161857963520282602329716783997327657138339076819058575244613099187669837391188353549491520788957282811582254424643793148722622630891966484393208313171190983578522772636259215704574994542855636311021149817243860906487308332092608035470459156763909021734419319595064112240513552577135227900909073566734802948319182474463647175853578004184623542250776854706340520372384179352938421099265969539285663644786205285038580863316602041093656628691149353937465619334080980086349152126583422578863756046867233640441320941680498333742385039255997148473938975720330372882377402380833534274688808586108249223215987249663586261133598714950058078425366460911370119234458112206874765051504630908505614049900381358388191685715256534311349453942927381114216050253177081949638251560656110810263255112730409307753994050619270739220553456242017983965563954745700994371447055599655139790610477356709473094149081191873991365683879516827657564738406082945714427318363993221837789200130034168953918111384322172832745627397208861106440092511034297284935515052922754240570163925919417046556032816255474876668781569469657021916453912115666543910067538924994819069780807423409438721782898616987096276116038654388583200765599863343855793570450790457271571956182659471219455772572382642751619001539633290780208035171964017501186500485770713843021046684645585747642183584051031824222097843426978383121024066533009546554118014171565701381255210287538767037222832544964484768771336414228782154532606696498237410014857069905581284200053054869399202473403505143560303802789294787896157526432969433997023687122366236023952179798583188610528459870785266028693910637195798659581517827075177953761902561929045598937048474022765847588570721958031481663173030344523136674604491900777904174877970162307222271139085180349859885019123752111682753296091909953420049899663060280277685766904269644590599464567090657657157465450342933127563592465904051775830100288810209683474981043241945459051533526953517436663681021106181433674887463339449102554338310694951608109219193015717152207120815088794108183252198543513647650815105072654523176116370227000102365889720957859584498876318522258576775388783598491105637277124816314448254585781809836021889978053202342090418075428953176222361625419650849187971468437264758979800127219488048670055003525581422461025072215688711403997564327522991640668560222522343785407340124427113372488899504777731419555932767146528415471929501456493330731033602110935151137114708402620253172659055747436165080700208308326610593027098425944960001570618840636252505406878938002709597173094876732803191172112914698657610220439558443437878311247419904767043970569969956596696451572129595309057989863734910415493836507779776502827384089453431957766277947532679314648709686761188774838809775045003216762445940378116456952366163285183498829809080104920947254996208923729549741048743282359840686713354205935284076252712374424994407921637334611449051829530660864293885557465261449844910519623730089048707123405904711521753995547627937703774733348598473759007203221996642752009061216388892330486853562544157845782211324871839577718002835449591583971348057794749622508624410784930676109405071146030577926184173988352996262714226707202657153924194956669705742239350674090512326044770425578021278474741866307769903138648660701601792657491815110777011181056513478534112307050344706479005285387026133297119503988310807156467576372637555881105305260846393769229474307307948069089279813353340794777421442011023681207016661359200634262644448954701976539164436517940961328523692741651530425783868235071109700660966914131942952901664979357275420834881579621856984871303629728437794250211430745586881487350688122299667101013681273831366436891778500577572236467521325670633852217832137729214630203211387925347037979598136433353082471004460340881371908055390903618774820075605451269493783915635985712755591990724066408025280040968152201185962227623201840749143993110270304612573156870535608885275024821219720927963408945623757402900415696700214456922046359625623519045839318425847064116464039269897200426828668017679613291889478665705856886545009148533970196635102222023067330752034843234665287901211927034842900567861459694168116044052009802417385132541597341925119925707452411408213816867141184730037611977617098022837321729345223064678993287278572712133452193176954501433665943022322145529468457920657191774806116825595299680673437405536118354467578810234588056557943180503785742922208793923304073394397515104833358500400841065106538443259707332505137885676349341974961568962154944960242845703483068787553637015404093312455203090750567217564854789038505059119951844837117106877137431622903684943484315898933674174904325222847290192662877675117239447257666520692350917992422097572148689243972100779606355096619105943589342519714256215852904376421215071242287822780924324650200520065556510404943264225804517934046995970496383029782445636741659224616256137816015487463558961744243415645454258418608252646119035506160457008807988786219410513701852234785411809185626887089975188657161608496033471524565857712981708896554981343341474447677676668287257081934146995015567149914444603601284989728572878093689409837942160181475880567080240530788135297813242830982482764854361248759039725695401072994523309523524622022966317473604684710866680599643346084703981659146604300120464410758787249261378233201455266870066746707261987563452022299155731157102405253811289454413342697236927021366591382786106274409711379494368819744407048805427194354917590252768646175901769807981415069378978513671536285877137129850212914683128895827217194948144760958712677298333133598965546973120806967535325301815040558418273935394382781594023482746657733675289183356693503265507898073343366238308808308753570412158903966299940284977978133395487068142312666937264631362882451870260841558195474538443789924487632469810137072752768882769630245952344021993574197065416842232696047084604603895574569064753230360019506441222144352910242004076747235448905174408409346712009770962970204938878488397969185552712162272281548805937581600393249806583403962319419438853395517997688283731242985286306370881304142421943104162458409699150147565409937340038009651313964533717887297184210935754438351101869757673820825949404330121881679174269240485567378590139960295325998958959314765919164574612796603823183786261961724356663277245631036614841859105049323292076842237313477304991815919145644236919842694982789633003837918691672538368038544521836865719038384484262388325170827889809242692051006398460204093297347679661503729718252247491029698536668391633466903560946429442461218185129148984424306152987368182720846701815127660608693383709190120196906566516263720990255761474689617751757071754701517160727439046071290048069599383085627045723789878239179718869633941633444312531504954643293429941102411205548167611974607068534175192987697356145484274041546521822202923500041807365676341041126886566165597085674735009269389453175306706367301816636767352885835231017228698647553681797076912937331459066753269331101067235320948857768944113765885376119062004399837303504352856768357909390335950186405775160359571613944067265978334623429386467433056937484063701524533998689385759136847150332145312052128283270623762775644041494388546845284184750993779822920474587225826220186713021455202125689353371956389202167003853131899278563866889564530925475403011791879274747570311067729683857779921022505065590778865670085165915579407834703566520200835178182049423140365665626458199595801928754695007248194435878761112568058415718062926366782869757244827574557234188104587873285352376361070586068653083833826496907786944164666785965598618976245765480851765313376855359085051493148981497691205360996956456499771316696963089120647901782536604843126806063671274714429557058652712336897616570178534079227451751390953141203607606748647286059766843675050100505016025270068861009243722016929994934795884095797089314388804688463842955550460522870417631022398009504832877784619214355860106881268477968408095194468723081932894077881709980871375296304728473264359384149922381583741716810140738369834532125185018242395343429248266218935590388467290917665728326629188876720294657611239708077643477079715717673197008057322172839697547852809531931158572539815325839492573111632589505720927081435663712366951098754075255087350669794260067995436674327596701174662570737716314683562079022458617344167374476771130754649865388013069293128435440011766673781021520738990433740234868305266776602867369255583982450354479376075272420005819888129135372588230124733766841154456426936840001668094551681157291707779215798254099107589747125561606113705034468884779873085515178112398258567829428974536952258012247863502145597637681277232178441773871659364986584695086655908906867439946117017443335410078052797222368750364625396773753157275668846014033505898726845277293929814247980757485427408028433368698622951869073362143400635511942544990938250336341369072735761716959936314966021558310896713655188853785744016314782612687992250317083900447860537477888193270313167409593686217219300600884471330001799826579745568656435972510259327644262962013195881379058497104192065508819147764634464148115436023337997269319270699458219225666080190434521546964950555289575608710538896675223537838914344128518083470588904618421680144810378491772964002921917852463291862449499986521512633969976693232430672803407928097630358243124902215515758150428617675411405222530989806283902812278647641211264550154427233281050185467066375219631153372515429641713479818710659910796777773001477423216994210856834293154665557742980132725981896175204890206490828524696250998173198808840287200608715610481924260220012877913895622854262076877189652340024003537123392803621791684171366507314164884092209315926770754907884634605657851042949707964180934960280176383762563333732412301110360519997542692876880804041223216811671791275717883628891536433648438575746186762554059896673465992838331861924467643729387219151906315624898280774184212855555349570715003915239021888885868631346095853069871871731769982625002462647014702094162886118516892037487221056946423863650693562367987370029164068737607514868152365743735703747341976292627940870556402852749726880560461941399135503722165226185688600252651934192614220603215966437129520644019879691368233348043931541277741172553181228689489672287696114998834154416321432347056550349590840801790193692195774472735960664232540612100514986200851642155810309279912307811350811602320160393342771621754441077273845185461936832152646177472448526471194624802930878301854006889173210375922816953319889857090479057640525712961102084780937408868288639501232736802800059023931059668680048659358478742724582356647060391527780624385490394687655755396237977972912067398683595815150677964212026019840915755617713865011030650098430455553811536760575923757334161532160776808123961239765146077266120989380718099809305836377964490857138730151976551232133753264901734669055899018258513620253773500235753457654579768070918659646808922550188103814946768787694855132838593001125331810567595753990074599296583893829577876474286407396136308781417270142459263156191701286947306764071491610813784306624141476144217036360421787871049648855559678109747865653438525685769935470338075212375538928216051133788646913967213468671238729876923765875603276496518109380544211411030115544570984893805479763476688668835672301573360592259386311111701121078345217484032839653383439907559232825425208526442515758694607393276117648421433917747357295320172028191496442518253209264770727550092297258021311704209704098593312314380320042328870629490405931645051139475073797371722786898872213361703419517321032126206600148749893442973840791896987256671014841669360059839821822515669764059249689744190182664199290230754072405451335796295220641224760402503294259940899941555080993969382688870022429188079991651877368824160495084873709606184124209574117363906132768865404856150086798585522083294596984275324615927796010976624089396437274367915071009056924825175151684998653876311263986552107849016417720599229434907816606146605683837272073497548866819820554056996559490336943434964982817420686174877877694046193804549224244973670084322001130195222285053584250063340907981303709617402098843795420616744178368108363313629221239391859826491391954049988098925809990286515258728571749926387441753118448807515588951380336473668965501833267490301217593502492825531603881002766247043224176924233936272104123552251869362921309460076644495592540114254476031257591142175973418979186610951896140749802458839588056802016593744379251431046873561964648273660133282639695022308251063327661500807446226121660510928478596770186701584243798017574923671184672122723838088581743315421089911961986317932344981730843503560335640634555934798456645634783783234759119981971381425997144940974087574549774331211930336115968624070481276928755986379350218610295974650921263690541838957298092300671287563763909665779033523409226765355461659673844597222764904615303203287492812520031150302215344061582846825558546504192387028350481512029812389239387123708074581889904859614807642626037194260432361062754295904271581659619526863115827383242977184946271419549351687711805481164564557411215829571507971850518853416793599425663295160117984098670511269987794066680165483589858789603707677391874220220602561545057539843509463998456479194453092567723687969469823272148184095387242401718547270303332214571627980050580406183420356772810261942544581760441915263547646824165571882969192360543393171454492825764393517086717651642695645520300366695970560764049077669591307222528531286612741559954653283562179989604739006941334220704007871622395014818017459347740748780620236882908854089187810905205063782168959920049040342000052361200269456559578844550502049841756369673713797444539914745618616394354652712263468314984618381819051443487467348323760269909901080923117980332219665217292567120856745463605251696314526630564182835952649415107186363687483975644284756494803189840731014808351203338554236750698129663185174521636758214838767165200212393792227085721596000541859773445805863866116626414586445746981021449000755714812817801250147130814436735474427183340918641501857374582083364968375738590174541280593587999401985132871326775136867336151059763110030031605977044364274187948713090759974089177287155569786240980306285541540840884076527418568666993629214574667242500286324505480615489587740580397487029725022892132428074790154487314064786839093880607356784706568646737104614040424679276488169731401288299179100011298215660382075035875220023977897782070874526586478788732491137877200561233849385073526029714932925520756348458536525352246067103679710588097749691478964636125493297377566275372142156916020737968461959827947505726054266897943549561912529548191537902000668826901269101125448530209335863629131742925486721158038198422948654911462437063322390841725186500292648822605990551302890521797681691856919853083148442306440314237097411475803615064291500824257735413353922818758414373867097283925611218621799799714816093849302230292987475361035882412215405561142039567758864590787270698606221685815563486006238011650057600744299613792907592276434659612117456983850205781233411716960403878572241582749690483507983150555388438654825583465631838006165921401356991532280956334204382456467703006760343865625395151980778596293568671544453061629959079047056986583248496122834748632896177273394134665609886862134914354787719086359929929670637057056506423627014907858738833734615173493383331639122759908168559120190156343876960518123432792080680152077896515129287334657781912665395318158077427420257397875964092292444943513113889774978606469754521890362675441760655512360715277854652798327869401658285793617714844625180912544199949052462421714925426999626007289320521914530178826416051008585890642507724995813187702417779812308483419456492283238502123592986496643273459342387172056068061987289930404308749892277874022219062635640236560305105747065724486225652956360190396323574058496321109177657758932274358646949355335070004802885275124877165885954759028649330336328594655627432740996357805863667423980826966508979545657826331336080223541666776772802058974001856928103569965419898921640928773510191193596963520713881736861082475496495806314460844851757445616237109564984459685844141602835109795383363880907326651021438805356860080140631062575604429780561927798798233494443161211287901755884413611820881521973374955432248059779613082048837167489855476736189042226049747843323065872975462995113688748428532259364312791687895974177259103658554832550657915176707391154953739035651342102895799139688428987022709397789308030230705880355862466617771502408837182876248597082608385376515418268623072850022720588708605753850203465563814288254655711638286302060174058201685692283336077522728869771594476885169590091161862659067690355403667874718885996777999813037096585688447221187135516101239204744807943531257591925707505511899981807325970358463788778859590340155689253519332514173920770904901557325982532286422599799929568121446526791353010131655967732447217931278073795349111564927494453449758990065744255449147415536233303512251393690739440766791845952579418945398374381339356164307506170844306431726706359079258052600564537338171796415940617611645750414657475839902026455451778402082234662456815898731580744049083703241528792005768700875134514732752631532710553608528651173136905330974623518123092984899187279294074287446231907373340245066103218389370494897954597263349404936937037208713646763872846469079802274495681313689339597169510872776207054186130383504996095417623406913867721186292355408066147942336754100246676781100333096179997776181235580116069059773059986677795400102275851437711657193152936366418278038481663209587762370384491813188162170138203520261139851398576141484944284201924886340870389557891173542973743022969456641441668428096765809377852835723659293092776561415012194039093736979003740084541303825505512060306569127112991317227498697483503829561872454384027733044449010550563184258909994350966546499954263985639540621465336065857929081474151361979377901941657378488047132399540136470144434540066989169879832179036108014377806050550711200735680697767665250945986953031329056831757277781423521739117099502003325935726939840833376165825792736995404227184089953972927855141199588320901532898272592306912522784657093106664788282358394780861325631188248300729746922089619534151562623114328341317208488620717919087429287453211083240040581717071854550743302429252265174365504875626602213959570130363598957868393986268411907067860574861972563209475535100642505743831261420728501800606972152977928358055253389645925204703361815567869193940025356765814041268404019716563474144043435650146184701272353946867095338841435787424437945085163622139599592925514483955889233645668230345885567970536303542164935769843396179115217777151798399452681306248440615455367235384164533337099968057199516337503449985677820084526310598323273976212495907583349473673350540528332367324809557881090294984474100334711199676350377917882350457183674710321868210042425032640151473919347239876232422765877602927026580063967247826053683789642320166422248478296092464343224801845494884346570625479272663057510485723828462383658663998194902737041686790691030738203821990524984945406824877468292466610561222045278454519571106023133363060356837757121051974741145831097276391962674001860164164771985673949784501525651004011428942693007627231895881848665127149870352275745019310945255558090489390353680351953578660115332552318527256361509959029578933457582776997130585825822115477794253099256040655055838642971231555480085249755394095461610637242317537839569561312781315311319729102928365218925588368183603439851327394312104918743912321876624678558571136625587903227143919380086322049862074564098769416341280035695836689702998527045022676311532876603851856055489167506451155881562166183459308999497258002357634741648716748931724258460044562547969258657191090710027071926603673112106461726621713024786540153978755821286741277711937363236858913684467522732596231902268336264470554561158982074590347760006382990748560985712508516150205069496785686024164930668121223296190558986924703222743176436599961630503431808776206675321161789451532273333554996343097827204776858765029555572156097563525225487241977472691216229886423837747811265670351358467045654411787628999744537128300095606103129064633212048147299038638886590572700119732544443487800446464922353677189788923177879545431798172484797013285841466477368533564649504790227152828393994726234036488446776209913793737160360420567914776132331348633546866979491082354826633893876133989852740362208917401623660504775834483268047502558391937151055509040147198439975141283049776356928437152952683612441294816951552687419081622063600639616211242092639157742757130012106453041917552348847697676710387920819852829855357036299668107282028598299329794354598794053439077738500471486205623892675849171011313947261997029424037418965693665765506092571860507528441926076043847721915217137188945615676861096674307044606555520861923382280913797224853522231395993079233542567092861498771862762466488337796891776679789874699932770683112867551560805887257326558462609534154649854490296620566338824386783353639099022694599399542017770697671235650264088937288306288439423443221821232624055949901796880255530195126227823903019664157994587557624337467237155814474874670073723443292443067091987302776584279130230609369449449155900923146839358631983550395486856626208145471026362372918223830047313211233308766133337890015797235347038969738654197437062180042372953710579593564424478686144595290527785629348193074057992610304335048368046410959679729002271895742650750494495638347981440792726421282796084870466269113405969555127591904622437951848681991785500979205677525764102096047281989616051879342255073582757271169394438925844148260682060909486847517105811330646495475926006119473534187599701451094033468360732431168603090905419421745078818968519755399227694171529685138919418170150197148706850779329112075817032402291422943121847172030320667386966566581428397979825479046519991680038575377629563963858420339916470803070371364207832957153100669288482548987240958748868966132300179043299129800426675250756805198704519369979793998968835141861709499738985225762680323388911529391581224574702614149354298829364541458228726684430949244309307245987914656804602992405093905719989841297724310690525932776294354633233752549104278654518785072672591489094161460407306404255039319367025195601253362790298163724898796885955941232819723350334711184667653316543475342391550182582113814159787547101818812662171025745975378953855117586460810363914384065763635265854524668267587140784780708500560736931099224941320654051250995269721909765643579468487603871965236085608389691678910688697559399872879024987240565877457190765349819833394778175674131046324742752390722001652353054949147148988323000037189792915709584311283426495843096960137706307737067741027831058966382871078348021055872587492670182973317023978870946390784258133926865209391513623611083896226904225513924050011512685310398004759731522572286962535663118142369690082009541683843508444824269452042822837163990964937075302276807487554432565631249769796544177103013824131616906864353297556086047298251074666660611445130728414013416966310525129001604645025510774340673733244671911683984683311740103065845687770498394257226733141745001548910985653483104166282192177617860273936277258153380907468968349904201933481156091793072223687016415800133541625196382540230148567124387041509521062032190901763436895605246360813788155779899207782866128815111867124246592756974202861468192206722114438422517241090464664698332431210335318036323498982379343075283311476511839069314960443312555677057306267094042338941111926448363132890022834980529948925039148025480015285852046629725535784562944070088153106588611274351897097341298974318376731857002374972346669948064226916487333112648230523857158160848194044358864880982130696831359159164376518526979850537108079976093329892092258100515358924035080077290815947855022336924614690760954000586494079637632186317410323157831967863284411120324494348057986808589363793945810171811387058536944568978820197212691735509938357039682086690947208712633113267011583312291618724558267289069432555769752235321129371477159137189354676537869567929877395307118943427310057921858393112141995968345142576249013967413228064969001914550804707074030339660699395658297881030444133510043279335404949877264210935116824391815002160284285821988792590055889780168063211836414964406353954627194341977638122648527857950875636038635941050692006746799048862316620197520008212980590826032159832682955378411171536324000383588852134766763513104908049306209249479846164127238783286508548849521436884576984855307473381500827344670566732866718027348158629883065317635188929890802610353711090243460580075981192369761257578414967096863834029806010299995944667509685121848655109202310546691347761053357677979844969267311749757984781410732503705926005235301775240834135860627577018403678773119580962157065934370868309361490540703435532052969424810520727889484856167910483638978134131552472961847698113929918713530737028794794040226705832619592551713182435225703667149138238788871909719846414029786235751073319068290143681863125259732536841937615106910820211196068051055036901418613864334337231245457472819981184127894919556657272882138988945303312229753079736407268969394338653859896081169235796743526898382849985771421422335556422250531169754218639433268722299423980030725931201699980484278589114150429556027543573041622354422880391290443366115024412596506127289670194126354931352551754192780414301944598348247369385665542704583130067389744920744988083410699465909308538471638649532237981538738403901100315443780190629823025523514716388041370653272623818543193627570835132629729531117682776886281279440589664006572587499686116097369466641033150218310014103282204342120771776780223039366750977375875548016595818491482194859365624266017530415917847883427753423245807196348484879053039084345455051554321549166860680432418621463521180837924536298158155666313832982152071500634852711806806365175539633228544736766822396470149269825657965111426741640096331878631899657984152610057023288448257743592773076555866833076560685291611064121369026735028719906774544632383961766667235026226083029911539499509593783189254498662147209418839317382767372943602672809002207265158665464509017866458533696392601243617857757015976474359363683634784717316466045581933998219424632537735593762313521070600054354546565729965133938987319062447735353121154895078539203949101396658370388715067373650143431896462387018542289187228352924260567369621320147764481427167967976889558811124266613091182973211175505886365922787919650418216967306831152674589929831247457823367618754766385097066167528784118540709055477692679128354890635264412785798028781801483777643007747076419414224580191584842987056464611885442846469226715592616915796285622684460609121580770393024567075634482660461583442468676744169414655350837321417242854943090559224237947719201468433021529292928151621071538939719760696068879239438162032378300177598761997673177490792515660801290025881473451044265101566150931283450274217896932252027664850391107800349415646821323864363200002740881316233215657839254859281971363206283227431633012947421296515086813584796668648993773830154815864088598370513125418662718155807833955770444339302768442178729078781958248756502340610061323591085816683991370281488823245336584255310800895139301460590189474428144488819188251829545988168758389078480561467556375207819233785325170076761461987284410102056723548165285971439833485929103615272822527068712054618586343323619928052591930790833585755946368442894041444382674749456858480653493255728095999393719798243151683921183410768669432400353057078044887335516092071480247775508333571339548640156974185061154190688375707530297700731945248950379590069555010869856191784478538623202946652034037522902642283648536637062968321823304839106318581279421545984176394556624156582647838220970891704661310436863354437542700069139965368005855721842873890550123380084454035286363298540686422947922134446745896194955953969442880014106106172826876270418078423754066953481858146197071871447921644416784639521428689897595003447356619580825371996197928161380780605808314657704859242687209518020378500303102358048904808982486057578934963000560031570987754313393360302725935236691710763137646877850176510245202572339239404594815790551041985299833088962123200864586911084427083277149435533714235866606129182587389160436874596690618253867513507081572804440202596757710493560449799915435028648146918766463129745188355079417939025629115261828218229138547852141686633219776696756961368482883138007116889071317931890155916705487482591973548661226872440854122172708257865316580346491641255129880242968177148536326797749162379407611338920379525479735918905161633927546330960330166538159714564958235310219584359577057084931277174270847107015105742123838808274178515034018365929851689004623820974342916665826404053031728714489124602533386612808940444849412279833317452070930453787030490470993089562614525320000288697154667608795752886301973712536760542494549055149326166757720569521882851507348891292350051121674518919167385130401327897058282128695322246065174429805901695103666362753077181579729734644921709250942716267394139392878665123165992627834207294353595577600775646453183774574193204215542218270738137043679167577867321578630885744746420808083970455729097773431252171161781070960956090891529129890206309835597458680416248065832767300027764832941992806947861574258047338641047235108534655357481459221289913600148631784812512975299995746899104503901718240255899872177932687307506533800069423246168461604162700436277506109640568198912237554891098706236009519110396462672658649067003934940391906728501244647737723089350501726195716844129138683573734255420254365370728862825551304133918172188364819785920935201221545437361391509803898215468326769299941374186436340029363825930187811948854393891389614308736543843530492597172661858854879797457979830777300163368713453152568232559597247490128297918379191562457041231003583293301003390212244024540293844051217169281950623795085433795011793925340494614090337723304206110864661872152088317577658998630488184253194490341298750877564158800206913783335925450582023684954120248400018563361718960520924501247981310735530250140686066483427252281223851779104872363910203454227584379024518170915157800650587765595920014267660205464895770365999148892072908394444945329019615109731079247897331593165755667443773526942696387837836922891345334658517351482058969130823799455272784047298187786587203668142195298078899601607871706494439840912942267677522420822181150180691527224576077665455603880843106791155324946818423914569737415590905491216855154059011552009675629165390883953188400127921905147297230355845690588370585701778428430213810978486620041298256930279359074982291989412438265326900158845057557781023946176192085271508181557543657966433536097436078032260498498923492365051032419167507982664184031865138277179305759079198780811635554497926443493526083787847643725977199779100661564363741480835185609179173655218205185545379463703876654061478186686325733372284573125690935961253325470923670154586978417404698761018854675223241660847692619365334772770565602643410040923902975342336211176102246803985991712136988477524614225494081042705535496000240800400305143143167579642506547565315089120082729136873872676671706427434125779381399580321392359144423865131176321538608616341993650548985680567274954715201012176041575510776913751006824985817773956652214847322468727864021567405319679343311928052581925294108505488011684414742556712358699690627249362570189837931332030692443091065384845373260485131478547788753530575581827623226474006709245929664477366942497179035351770651866504221240130839624950726847624115915430863806426248057425089446568215909494209824480319119713163346328434988821111091938279691705026920443588423755073966393742625992789126130514905342692534937573011704009871231755833115319564767536000612384838211152683363385896768216245080890625231498340862668991092887138713053442361322528455727680820696825055948117912856259142482555334764776177886688493141846688406061708829477904607144619759076891575698448434704321158992927957647295737769464853632014743506862959377727875116130462239093291338937952881868469958437288067830985186570436375703621557611515828802643458881659901316688369379699711153410584216503179072400017718375937321165369697092845565467381783318582410010335292509641989915093106237935481396741624429216807477048695585386332405217502320753926212128406793557270394419124992974179343939974482975085972807670220130524541534956091678417245121760510200082653169842566969714289972605576502104013808633598335704574482460220054617077008245029772974497326232846389904147367141643860703163841193765525137312375071317548946575096104340284649732583430007938241810096591708511513905058429831793253209080490511853122378881281442831568277458132443685498842696714058057802019355430711919628905649340093787811476177881294171313417034919443362459161638035352265950549252518455049931874283555717870971372344055591110696047010223738247085403871548718927454909404589580378583331904025508967971140088108490125508292107455297713937900495123955347137394021601196567515695392365741593526589336182894593093571623278136039457571870053077776548413427302002653897871696367131696537739665415241422787225068357088806553660361856426298508855656591934474884192960292175990711990434205298973163716291059960562782619914984709927013953903902744505715781037976099105207238837448884323475443867079548964213065173633870807422753964053344146864762653392009255021156886884026337569277720201193464860671743468307572062326393371512330665688703788824964915260122776251311771418037703338752231464490379331055397052197284314270522933047903413190086433508856815832471027000296505724175183237806523664528107294269126495457823934793852724253280275375900057141623040838371698685649481451517139830431400916214447797886732159294465760331766137621237127315904365075268018916244411012598795474709385417728410760726435729520513086685521472705764335717169275749500653812596137379516586570675742716333535593892544561882063407823989609022806755189247412933607284201781044134419538992798161057096811167072253120116484440458279184368270370304283321922513969421828493508758422985174691462861732972159276357795465134623775213730150623133568480993152089799420788687043097909273811202477599003530251336827256154513124414728005545028714578931989807194521236970561254215874406875592733689762046458011671319659730052313403733748492744316730504835492200216005177864868155525818549812485821734681274441926091204265337872209340124483512544054787662127267298177948028133189317387937036219863659998377592621665065442821018814144516431332902672086695271024243344653938407095134720101003756481719285017970539786762319923431386916473526095207610071545278626583789732277313724585406834960923975802757033791863009968459659534201809838686561029966127260145398677498816499188853707063558702956177969924712374245224483897526292621599983843576579753139200726046867320254995703514329271762868693072782295230009182279130704925494756001486093047923239941091246318268664916333199616032292226475873622855223849487436857112381717808066528357643540727369002873218880206501419156771730272640083222294678669604359661508093929275012440236894137227658701040458296273282435004936999577083634913405657770449847193007489433715115471865587600889132154996193137273637174403771591679733012657690726785614821908740802205624426859498121104329639086805635667174988841374082849887789952749225846609396752030808109594902507861304748670753668260845958326340527677869113664954836832444080536792586125070017826286105064147781487787495543378660545542169169100642444511059901228395221004579547547546980774636093149709021245871566331627499125345013657473138436214688428157940769053674479462644164550646303332082143294422706668614362656795305745174667976786883099465500766990593531919370926400703829089148084106660996806739193504432763863261899070802939458177450221114441400546248182429244261703448547246145994827081365245661543723924740375305795987998880005749955134333889900753763504182777945874860739705155662167242508230538951091960736937396337530417536019323126261752970790672089883926880322363452931897995466984164065858211852255796003579119845978278809004158203895869311193819540980718687525722353992242378195424873843323899288008529760090641441820058196564642717614575891604189743115785547451987507198472865035197169745238361555406468994481865373527324805410236113851691667762541008239506605572089471332502729480550719020355199152311594261439688763006461217790361967145135150174833517320272045059032167243252543106705161955335307017490514423971912286536272935291015611540744443608301075704003892421926917732195234770275265602532110520823350867556522643212205976417765953528316831628484404662277181989385304535877465150294166687424862240360541658565582403964586044267765315841256970070887226851541589259448649819482496851135932325193971393799832700923387776820992228342689016741290051181587844272322891945245577419473383661562534301962804626171730416285514265827497731548303396208550921112563675603132002250597266358573091790016828284839621406081661984492929506662598321261895600215957106907789514884214642344294377809300006639424617921575437674819569990614222412140845082345390394222689099914058705879918047761822703882588929748354406936195080280388935464733335512863671568535705244844152454483661463453125659845448451174586541378996536845695368451486355135303232326105554589723292368575939351537156467098121073301490155924632692206795575098298781241986682786279578091615575520986156289885714506618638291157539447032642720329145244487405954496130411966816827122781937398950631446215545140633149390347754923213599240118174512208395964890200154427380320477845022889503172810842287158147975131882498417029134012814841768369190192272081557314800413977498003428285909239631158166901674524915549791688502030997855359904786779551875547601860961924937365677222659724931799883476460712206726359857500765546978809974011079985893500217069436954162474253893817851801237007742335427898702243246846035621910810804825995989633043129558855630634733687270719318620051327815652500697801748915775933590705031361695574463015922306360702442605877297062517097992737437564380251269439162270240499705123037174227527990609859052133704810518483807042228070861983249937941244719961632077189084244811257860216420550059370249223988014019868364019052217823752327407810660643708763414852548065592250408665434578348064002188864865162949175631662838588238734609167373579972534211126413492473376554232912073350883564527117398061666914963398602608530168019741993971110291054117740328612365232425132903322234393881647069969431692647470577685826001795281792333349541022815740592081352764693152377541853870679581260336975926164339018063094352986717095440269694931391208742048374793645494209950033181767699821206009888037944482624689927291629702231420929173974692018968859874089175645738645642484183002902890794641226696974152344668764427572831635392654483948049591822825222457152195069015167832498298049447472521051046269083317554559427366749808047444507297350140721510022083446059198480240285616802436640188517919854425878080126318314880676586731663192083493369942299587807466820817770966261125733499535202548090238182906856706343088500957246295615628413153399204949599450392831882125870612538268669895227838537029241482306715622436343280597252530966938764446592982994985641910721491532901411871812462678545253567215057075404392273838954736383390691188756286885991283366134054738608177586892053300196046126254041014535158897446865244634397594355010512050772281896798960912351416992942183718054382427943077324033154353641599190498165213654282758023030445981960810108393851664466106266006429714910222708995118068346686322300060898355059620234044159475517048395351838872839144743153651726792690705007905020512907563411603860253891453445095613235872044248444816542300947997478393793992444310675451207104628486786864134100138734998091298354015849244821550859350255412249663199789973870002743100909790472923913508280198715466192084983686786560093575192244997481764263184270909397703402467062231345625690691945959833433021854939558434525479047033204741682040034704906975378693130032707775498996395741016852674377604451918823581117647774940595782445753969109432550840473437640027938239666888077201422757581631188571077991526721838596215911034856035514039266079014010398919489997420248591706649914789865760716986404500600297790604259028822459011975937725535822973989599834382140371778467981832762445455011304565765057200691669316839261173939110222282573676447667807422697934715281732202870393790759177575109431816991757555409735250237650810080205694007325246040914427706485481101632254368459528697415595194206870778123766331534614936165233402324315388655253734683580071023926824444556071679244951784506604139406188254125114078625613078743240866990742814593751304935273996115987690593281260960863180405059307985240892986067024350754248262738887013171509200082564586331560192477479150577312642161411314518183792454752607654974116488860310234833181260755962477621910164078069467733584877661513273576042930264539274691376628330721755343600796196791715079842319420819023978400836841809409501792695098607589007596388899597043492357231632713883587448462589155742171614126389990169515680546582412824274338556248254291034983009637730318817771691845487041525996996470944290257149941140523233242063708083099295031331046568242162748421618842279716608011115598930938549957526960258136221801224454690459120837708234754207962925596573024532024654644612684414385245920059944665203324959061557435181355233603669870920862874054760196660689405056161071289361782133180476393730467085032504826594003403029165677302590788105368256286134371465799405129381940444433402082690126582031156212931938322395928559999887239986639662172360823750425885337807839602150137135754317691101972556927824333077944919549122193268045257685471054512208104079706819185843756739689313800181552519521507086350511283097252453148973001659808249812586203481382248445589289162343286235301651056510494108874381890834334322581008028193688740458136694591932540887790927683665494723099617385070091021954496109962716033105591294098490876079337096123464605065645710730466517016980631062450410067680947084587006152688141264545028168141159495732820393610972414788311204870479971735550128290059491609591373104325789819084009933618229436491285574567527033104883007083717922597790156609532665544005707799092252776154356183647363136147853913211031813075875056811824575496073966300890667779231655994380900736259245603193395804429250015829971294107265569199925148313513965767832811586956642955851757962339940263135876348885852946227696370886423622281466717469123723320621707470094543578498998481026727711221638058790902402450238597294581406036970928529172557835078417353590115405739836819198316385244861606379572780755820776522969200987034188402373071625353572120488816662146984803239299057606671915399106303017726616358388245073152511821823558478155731460784184021805872568400413787265975590352388865071615754668951443943412284396550060772374567560061853232809798093455733160063789340653942591157430215088230032486236666811603851805566183371874946512921614985884563622796093624867415963658371165974966788129317565630156908191305623213774519447688681333754679297266106934766633339126746848948955665856267028445648938739948895596999641657104535323618148848316152970240959446203273199568994484915589715048065624275182476486459068461086574125828800743513585434185054035564805100651102843472976008600764956418338591346131355651824473475400103585599041810262714131899622164491864499614581377299916428929975091999577978742585856722218106428057575543079838611133929334883814386049258025306997687656730613366064806470798277194997285610247743766098277491812405875673086289112051071998714512057563479669952220574540306351149226969954698947601503250146988895898485012278105085950290232895848601376642646156939731369630575234912284282791632391056281505761644926969010540484433645185663012777802106135772685773937303962740422481240487840634766975068022910030181662616998828871158875994303920347696349433688228423133928954486351315719999831122735833180807747941025698980815625170148447016403650873415146288657697893370649049058542251028679493860512845879170986744025926609761543130428611435024305441933907879634371084512744195252598097061036513209290181041060461138912677114746649385541514779922432542361918847053252798355960298885191383793312645065738251972514202018181337170612770401662807520049079122443505570270574798462588771730198708815989364761881651443665195105539746404748387253340601205238877672958353309597507939826734228754329832325212316215817548903175025261451212348037394834865036946276097408164764087340866275400185803278751832796991765909283838467168735469276744840327608051657762779050014011810164690334075567183176006934036646691047417884107044103436576205863869177814959624977340655469136652845284567256270082522525626315488539837980409627510797676546119331881521272697029120626615097005352502470398402653973546518837067214903943671923682879873667160047903034161334464494514140028626356985492381836884120817590524790254113202761199834996669466596978847357925915772940688231132025820715439438661225186646778027046354594246988955068181340561950268524675361320588974281306423315002739892499689103390164375474024491744437951899805022979672991729995231941746599244362157886816940846732070178645904510298104104726507732189473813424263414052235012984968975594753384748881994262281683327316952586943827337237113568738426356226565503059230469620530487483651560094351093078154527689971795340256596171719514788025532341333269878536384856201415673165223827256943675267088199975559259239172308975597966795461954682201597114157674833209530875078854421162720846904721083287839392772288384624049928355091607920427602509316678616326615929089115012527999224198105485417755608037480364222314198323539601121016062877375896184505783303601591311489731099394660355696692504064069018363509233488593767858353973605343331951185255506157319265907996863249515919125493920035995932304995484162520056245373933435578505356951401268145675934870581981717152549430233274217441181699152250545956952227771378739215047515848208634044225510386284283436429901186094969315268686299797857192718254616811762948078987090390296698227556153209102002292546790163743894373609174255360131143116677963424036849968593329788560016742510178085504730755503868634790496170968773735665785474636116052297674909706353870623603254807013476403656615110946393038893999139703455877441424061256825134985526707880484743065170207360117179473301277848799278594714103366577978660287515213564409539131322269391418352324123273615706557950443476909947450458764817532336082140636024432543716672297778304414177359221686971873256941548471351741430909035280905798957161574480509070737112993635217300182105698873380861322354342972893511123148930747548909807016940682441760113060588135794524950444918708374526318090801287074561940349165716087978169862354455727338426102285013607987761305304388179779032918632836693184447804314057082423953020709694494255758434359267684772756808067092324283663479818015251214426514947103094111013938201338141159665634656849295112092310582203953812953453792059533470828875137631454884393882842900460477555230657673281247248570903761790507767930896338992955281109316635521287140692754060550044509284386277774700418777935947640952529401161265210847120744142554861713895338541064171278538010513833187768807032664098409722080945373800715950458379789240913320726528706634598076331254727819395268477432262814771752982027574613307198364098582730273939442195096155133318652663384822908244684289795748472593917743092377878823769859520529864836008203326398277595815121396105695707896752374597985264575357131971394034104652143579919323844902788992707764392507083455931741290409157473497237799057397618601123948166619319995790898872316584459777649384395294240557890081214636615532893604554971566584087844326818016874254278068045945450898501219777941437162060085997718304398209302183940589474546113812399723920690666644511338584358038476286724613325646681805717071188853112140529960697132616366871397108523063673880609429812899590183565817810029498753608505714833819084001581935683911369012524935819890471841198948051816733983066306500490949892048007849288474654206410115984036300992371948279698594148596330848883082636161239530017169542633507107325961113737630187753443634843050409166490807517838504479341592241343128101863914314448632008635371520972987199414571703293430563967620692547924232513727634114206017301960525835209170800645786093507121953038816230517729192466615652913680215202747059335247473520000250489959848712896868250380873748045627629275782361354097633612994705392684804007727825092110265533352041220991714560815551725519566619672534479913030170525644788370330192370608072236626851442064266855374091099736970995235225773532760254091032576953667198125053714539767569920507887012340652231070523731544146718169930296729599317347888315395253285180982875324572909410926280982977349370496824986204917458695600497530841462716979925569331030792213073907807819446904223981366185781413137650458231952925983506495249202862834596128728810321193046852763125304216772996332366334561677037088172587651693327551556918519267367717176320042468675152044889515520242741237121726452668608975209547259454160128096483934902547089547810588404880889956546074498410053936247107598619933535269738366424445195305781131982653133440142678641528023345838518557645332312740825902590431502852868521842227312967597283962413676175668563895668765009713707024394877010904052343302534358943884864434074104765515925825395012302348537128154298621611253388250209657099603133955851907451390764214677303006326180709787590709014555989561609192843817012800255274298108533196600362268902744839978914271390429459227861037762158662361354874256534394880015363501523337090610440693364789642750119892622922000992615154581781237928081067125152723626341800275416835301549305932608457982385870424438869579933123132054657503054216487977427890014609559489722683524251145319677008449191273047352327787391075337775668273279321321016306225697325346460069970763813233403702190546616002656185256645718151132668956496856559253801948069871519691724269885139583927685986625418270771767656892987838312892342462317684132778235333115819212325564220300526458323922105010226965944278912445263416636940636052178658646083872859321900206502416659672412902406968269971839025565422940518614848551372907377265677095395722844275796349625046704931335418761001890386211601256121683428403172951024077421397084452572494263092435479730714787878445964362212811431977676422020899315264095820415624333208538937735411960280429152685962192038127926059386481307522735416423070330571798289573782452347840103652039358302056621366825317863706713256977063213816270432109734462625240121783120779954148357683787347505287053444358410269896128566248154259109604313967777170631104880422509096113570169044898098056420894694088037343915269704327911600095446787135952211746365893399799471554124183265662719005877666157528403045268161311079405353182336061396455298453055823981768087965272840021285404675864005951117101703438119879646485164110002545926253826148444122801522114392448043339350115774571088861483506345799739933777464020471307654321950034703568477839833169354512813606389626897956134723187704508499109449450683340129138243350213091725885082928742226049391609968645216227996637466819631624672678629893347691188543260993691074826281467031209809502909665289960922049099060031793245939802746690039912318947645449847532849798728522194244767736300874297785447886955457835944940988061015038128762190336997030112123286835707146717884580845444739533109139801443696886463344168050530370013017874198825713580761122588037816759016342738829464978439062242953401505834997198307968069252151425087455475107070648108010107989377277408673465390635993233757475844222381212787816776877736126329503563506773365811120417629672382584966499360460416003576674917039418614157292781085476418269325361317179572206442566721809451146177640539637044356202731774446519910508898605946382502540320857083110360544388659584875443609355214629737124757865819825926308311988449437302936292391616703131679113676231827052407532770847238231630506313073731711408481015629907408774630413689380460682684924459851324389654383219797831495323317169920240452981808310758535096610713511146891457883184834393799012603914924969914362923211152134845252435694570898828286541938143828040876160962840295087913761780225704244988276463922755838181866152844201031286729070746132897517656696497045987766225181665392071613331833095689771053580584125742923172951913475556007226194484967397803131760149399225986895132748141319416454858262991798473651471725533893470914657681696779248618448490868713763198321561113027819765345323830942661364581113807908681595250186003196876122106731214301710779273940632494950160302446124794592468485153211416240344723909610260332222843096897482425614123310234371565663431000298434701879557645789082676128590772147590453406907563133385165190436340403140247667806442838175482923357426496677719487882071030244242224642281716788825500599878173538616253678182248026649982871606302069349502291505334341433261417697412894267219681692583106617106376703567971230440414869367251249197972531051445461082177708627003816176560951414205345391757217850764538314816485051987644531445586549021296302866596421896078733046937563967618018365685659419106145085683603932897693052495030469569794445583727540177427159374796791821742507775841512976639896381527161236970888813581403848640709793924920429181401376127140759179273986306141741525230442750713697577433681435809346079438156088339141259422817253692997076185133757568213708672691388336329769124983089245378060255249622515911042300665082244125817907285643740498724916119014626306419308046917121860490262782990507911897586001650953698363242720449343150224420353948229149829751534022634215107988376082430686189764795978701003082561839307618585300905420222790420140502818560385942065158784421836982539068882869759800598206491869916699027993030312719357254450350996792180595849602057425494810793954351401624798121362054715586534496502510171046407003996128296313050505803054119692482347673230060771395515031496569671198005931161395548567923504409001124321108622106772562636911170547321522956519400022095933638404937447529814358500723756115384162079984260347839501394091461440391722757764310508594044677370908164259341717387992049954230123006585133498500682862809698085762818376256311575699387495721238844223824353597282184761869074576009199162758181570129992032441115875949645160704421810679632756482313335192125481257353594595521796920601676788617654598168088723074876673533508486321836236224326883597038362769258237942123011592761207320162245065929606080502799178847890412594610734345134169213354727808792515675211864359134616212976011897319359216632659109463192768223977487600122933299767068120501687688216463240926052988551971462982017638547459779052964347833388802102974249275025469016291056769805133019526446325491666954763846599345099295735795987913969688038860309925569324617344716280804483936190097034632661958889879342463950048381713329097159161771143280978868836619265677084565562977152756335996805439183669408256457086059658185314141678441032278282943917647387826471492668361502721491711620062897646770537415333194978213558263559132800875994834179319237602056537575255235849496145805217176873118461584996219193030899128342743708928969222065222644339380233491866624490767590891396061974482409317158737707935426066339733492183714360959578316909336487619892187314053687784879563191226482419594577079596299086562317793472332955032905675465022518822710381504338446951911655492213185239369049009661198877818430195609251348937279478894569232453843610873181366750258791780862093619637200013440334792583796454281420324349091983832981763778565902820129815269428084192179741447746947164380550927963065196727949101630542047656497815117722373395674540875448236322176662468705571620257314982628746620370059811381127526377660162634999749132418327148156373181048873033387841233066826313220917049103955446030041129276260097533805856625655739279737117428931953909666582848702027703680258537299911576528983445084767253704526886425129831837636234676966789090877219936285323346444511069436194821918644669992106372342897776454122908214669930209507978758789383688971603052599503359724838841468559228925668828746302537267261486930358892390536161354934894730598653041132718716141139599280566206562509456487450089440062697993562570813416448629359258097819080887021231935488889927795264519858903428329532758361625203081465940143617738134964343389849804319996662709891902061514393685823437738049390556285644559865806071076898152700779536280813896132099282234966861312630934829386311540391416235773257759828721598291827339511367289981215406645262314165707680409512411292240742269737889642962568521644684708209018011750191266352646557500145765992440343044277406317179055762453653597031117434756942591908511588040118712051153754142116796726376686958162435782074893316827812282861506408116835121437502389305659133303561732201173577837774155841636193462450900416857896092252412921634947565082308083066055602142667631540250808864654019052788839382441109639531797176519307399619229123868728736521990263803612996638933486329541221236954849963047348446557997142040517619479144520484618689937233209796043293647641961083724893521131114220698221946649082161200750476217614207320400539186442578630246348204741213261767442691127300217474002299936551123375159972626912203987055287643183034793871105559971230845344188205361059837014952381863622975861424356336270756996269660603282492397171359616925532247448892629396187085400916265825449379667106404086680327453602672627245868356422776500610791057923208231906884439255961920148812376875615978241996959812598741339277424835875719926136652373123331171556156437664382797859384000199599107015526275525672574018187356347896301832550310675245877447583069003668649916604851425645831079383873847563357274841706461338193371131239460929764452144035846160052426306383346539465758810330862503974432387306420865674127502232723015622343035016288601575833017540502537380539611066153213234830983132965815275907565202646767162570792463575072585394832093923856503746744341519647269917803943953537428735087307351710033789728847694272816603189300004551809637339618885852127100039900744919597301190253698330825866288715113884738974970577020637421675299380800743821817401287494690503394677691447273331750169110298372570007594693686972040580398929824796661475319027566776507427394712901521525863648027942913957388510252610597664622369712863487578599005807452798795663232833419336761132121948965200088242747021444917246147720875445896714862875583868563607430989381412741483919590652482642228261828054084942379961664821825325936406647023991751736558787532485716516571074733531365515404041334818107187873081179801538831784234253704780810283661260761524882620631033766867683648794185724481432369558717600194545565175598960948675062057188689016699918892711537305602493399578247060273552577021788789543815872500794622792596671146332648158703664507215628444369045573089829065847728770258769158672620534474860162268143693420446407098789776163755802245598426862710817398212899178234415579745475065314423832102797678239409426500853138455290943018862432968371715259826358206319669472012803341851866420536147502864227035042772450428112927663033332885341020672854528135358252807110859709821945708383774240800323308156309388857896689732028564383071599640735389553688401432612687317039373223635757419719074248912161327393190623195241641516831002656949719528254228812982384095401041183115715396726525160431418598059235642615908886936659715665769818241231693656704182855379633943363615391135703688348645804423748548979163375444875680940921282749315381451435248777449171462524784431906345651833110545748793359737203627832990633047176811140710478746863488460639973932230005851315904237061177344851625029469525441600516738621432985261889702071981290580483407675351811087106641910955050996887302817763232042445143056379486221002208889026451996593575850880770217952138233010589006344771017988732708197017597380075378187644109146411418100801450549921612377078138446478286210462921249676389947770883188726668222538424471416173572830002167586672810550528261971624474530971594248544569823306442675267457298669215559982774349982855262784667196937060318708079000633359796235076888676444593283516971462120227920451445608309843975014519913844576769260261214511308463569329408635000781532443006253141856247242784278957825881723357941568636740548426929695715717158801728963805354044705535754894366322689774594412371066196919699829410845571257015479611475132614295001709400590414847617837855287510991196902367343327325518119107053301319551199616844839478320052371038572221987636457488702760671222115114799681078584226469009818540733473938452572856204116973716803943782733335513742163977669140661351353672923363048143414683614463832745754474903961967544926978738816181366143239716176668087488599928394189332058153226477666002682197563323778118281416597739275045580522216754276211505161384593176244508980790090968086712859945992189396489525925554760013870471552364500375245679002724967602212055318755177804425437763102741909575824489895518004384971640731024096375791107091543773216952011862904623252427655412470586404739149963805232334901157811182625105165642469170215968416097786513803347884129031849498396045293507444843678719568784665642299101512034354223971031514330204022117890106056397608248334738471344789096507782879750678081249558587743925156104375094750144036605294994193283282004292320823279188886053350347054242979436380456385953433670885928850683688994566232056194516014236407097815363659703011168929439988175110286640468720967782030572171791598539515607036708564230687173837612958928065010343976959740868503341762116329541492995296854292261513364958857874198318778298052521081407520919863368262513842841241134923904780780383136476780769921050845858576158757323416482788235029885072974123270702404770545219424589964804203013510130445817127969517512454917709465457213741590224139662005987836312342601283266041501749646970803997345035588009947910076689920841619380565558861119147051681175541824083337362935886903327092883621258675391171578459699216785603763949141776908175879352299527109593109030541159519171543416806135590437260377503641393910794468496348841689836991200613597609341760111087098950633597453404045997953597359991962229116153121558189296554027449621792767849266679739457164753788903310715263293791295868919620677933929488652301230658666798973597579773715690826965627185476253472699090551548154406251349949216800271199021013500465204951057369206534793901063247923959434074426167426740805716728008501887520443035731317262495671424350625967751045396809842729386115391046379754559521733529563102065609623202545202382225633317814172901303914362273748762644278064393214516996529199109143398028724097909888027658963728619373317337514907717812900231937517862642823771763664007981194129599859582273430448093092161173503039483810353679139653378590906587946929400030108816622370542145266691200392699484071898012136620457883521540033034478706834543498313867471723172739064191535172269046251849013839057845056146116926646470050445991913980571083406299425191243717826457812245895367291188336063387464827654725357071200975613099915080336969882535490745550149233631425180256656507766700931268348617036152601924558429117639637213202099521783758807317209860915548160918655363089129906991446347695026492889681139257708040027361446322554132010472796955948230908612983281636860573698772129964650148806877295077095162974525696537562150567666901553727676714206984872732678729909894407281128371866874196976894044051991643557262190486290224509728724249185955157748231189156364004110257845696883012889496811051037789822743932981997065521631883613560556907437192002771102555424327455220794269704891241037075777460124985763600465817584679742789531124702453520959228376361266440941246314304596653871308503385193680868415547213177748272076952355620711857241230848158536917346729776932150113237187587790196039460910177242951397578051592149555701634527584482270084409990743532221719172289106090604900278582451635420978788768597606495873823420968474874705694597132752728553467548370935514747314105114688435424805023128597567589362125304587092081187274326585981795118744658093630541329020453945140416277841014430504976235499017171932734340874584383911645501301827850561276467034995384089697754641887932367647243363420805949999013052596656157821381222156987387063045247662312834246715910241053620222754605410079643233506973041724754324395392852190269880027303746930804818965594533269251992530747759519363593051787476217564912940720830928557084527839654763488124441408688109000811217812565681406870808174477896033444209910660265377963020636460051577382148398148799139146541198213509221224217413907363956174364212903790397669681025962191142947389865675162020876696559318210563687759358581450170738819048931624123222515158152281834027124128871146133376727671751716837650224221360067835616634035134470198119852096462269716165347890584570523142406307363702069391165305519211228014898011470711762906958486096083821875133429508719086189218923520182936788242286722376321742927201246776735091745598323071567835571155165435593580135968020257047675519680475791146817733079269805485302089327975937079030246547344042086336796122386041573193588856768377338417711714707779821295197543843160074271690415803557092796922292926715556720858940363557620911758211816560937920428629574039393798887730704945760786203389578278868993028570561234540174821811628471956846848123150969482285136320156586827006967918618038052632370223965409010017490775419233694365023885797004268959087187572276416374172883089828879206282977734196429833040993259674203107009470279847215057087700139890637210834786666896184503668682044013716534834851731314381134018312268865713722031897968050086334172740313924860398742558384600345529526060015813147320488914851683279647403029272558291958907435365513076165773037945439839200040017999051171060135564709761405667055667131875624813256694874284100073257628486069799639963067472476106499265458322089884646191088079505080236328256875246945497684481128123483769362468348753901208263711855420327987553923668223781319525625874541849580549878426828493523345994944444383787054800158184808595420328743732383092822728111388277583016367254628438527909025160220388149267102934708079021155999746805005873179799314596566067103008069365880898526970494899972811600498014937224878468721075337147518266359058953581106662454937242971184228392843270922980130822106539847489312975319740532711364726017951463946700296985702951607713026296645668704881215107181430741491136731223700244874086989997632404940322400521871382092653812681587695494318801885681071249150593366597205808289211565054536726409551909437790673262028385936127120136963335386423298549855825256961235023460052837310911830586760783076220878516556085846124784779695616540558136118812639285989501860301200952188525030862449611599196508105011137487013994704033539280653741086074372042501097966978610856192247229816546490051553415502180483576811006924698472500216237111962629190741942815404342011065196575666492409192426283076878418219671155982941494906595100679805179188136249359712701395911296737331539060209453503686274441729385579252253500092461347643757529134782383740371660205442533350788257392859328346203484100599756589808451023509097859555336489229849713520384847994532357229038518186471926573590233634604223974033900045340185474011986957473674393101184876759389726767730852726446760912348410718884841347603010234512033674088627900344567642039632007025101141183558277912537085495860720684255408114803146563028913959613761772727399431064702145865647173015158262796215017609486124384876176323555498989514708698562678143300801632947394065300701001706975312104652384072288906521457393851019531869063915156408109187128199315092015270090333218394926596530974518625183375126172128656872390453174754284519045195540477321931927537145019822118721269458409437158603237588107195069166126135308628552025539975428954278557877290613145168691931937808793039368998576847248779206254132278809389550382967513673987059596960349901380402422172738742339626786065031575812139778758404491402139857369374947770673937223839386433479911146373408820600656091905675031166253676325683608840300652021566244431302434279823699683276063012283107130084037280322256304443849819302551914991586426816636489037814897791405868834834795631161117156650116222354448776635600488746887730289462890796227870110163304392794609509377154083251758030726252012998691183661719271360440597375615469086418002518845259178016067050485516726153673529447263587284602633287595131409825563743276517291284613894738122357322120871891556553220538812505589613264088926658703370715761551197117975697513688535090313084531324081875418143471184846863781347017571400121669405695192815254489804860363567090606538844382517153875425392079011429657292642102514642461141195725394761083974589149491740669803198953414809844956370031894186110706641240992575144557768586197602876133558391148283736023251188592144004463007390296076232100320499730478282773826287237632052635885812410484486226013293445841433343208742357238220499983572082770953892812786397425081485306704503079841663509061388832173443043747769048927233014095514707922360467596345079627258204497527814393366900736720843222678593147837282679636229012219509541157820181668939616753293201559092515751255723774017539874975352909387930811676319668760823955150136466856164063679184259529342705866359415443278784221818269189711608673470008643404303937078008129726864883494451873842580000160377750796473658812485724033512503481761704023734420091839198466293555349752598484389963090830056273495478838814996561194335568192577265763183771126378140017773296735538894538934258729996340201434490509242627490102212674825356685763128180244186094387372885235413755645986443124234541455642554300112469787989996404449381373127555759104509902868922397585453299800317005434307058852874023264281875840776497893062277610032861859147926037746594667766886366770397155939066235847894046906053181064180103387628830469299088134985067552573323757107134947963330679857072951183063001629189935332709864847408447982680347808782227958050882526675961702396434344642233478067110609028871161227452073785179784707789942954742187321730848404374179477208235155281424988945918708299114161516244056683983102597194062111128880656677098260943740482741349630137617470679669291710574650541163758396715310200948980360672270416054291563148187341241625560589670216598205349933666780565167982666811032686021128235646263546205119517823104039889931607451748157391952702616332036491779383136625008970422541173661649329262507813884378863067779721255488697835714619446180464051270106011650233108420914303244722021505394595973585225367349183275487915492650236511002422710881321139234746338693229877367221728345811298671689099313768122386731699052210122173965533824881022163117018470217241127191154435860016089471471445705493276484581632546491062220623360278576037111493103178198252338896842065822268797410759799019207370356536281218027242596958479088068233229107785742163444510712335388276417043460756794330517733122831300052772048041231098758501430751636059092764543266551371367615574008295615136066635913997454530356674157042631291327926836273324420233742777682460218222258357210932597441897597936259774504937092108209801957959298486128028535003680246216690808124170676710583834759325707276531980699807548508650708659949665668371238772386298115270842145469375948314451637922471438793599130717274637278443459105655736689554596120804223874123346057648910439055183501522552238296808328084929490468980351233423606970190183107459369293168288008299445207779735836313801440203530929027771659156265336940327486280520238036718632674747640223486365997713100734813654883522928397629665335451218382247628004649619118006350372191082488102012492419109985082292641263632155983889418391887640757850095479692347065234807320325202446697949009985639838863464502055984732751951627651544943997486481326424618877167926305595496982403234910460857733488273690035544131850207087319121199972245529129256551481831321700111678889322444161385358560348224221409556138754806793617457985106847909322924474491727367353090304053112678040772275722998958300162657293625654371485711194429511775437242447798381573993723766215632471635174077190882808607516398231771713528369991889295638501537515176839864546179834867543120000106744719579882576637949952717056474861028340898344711699583905808418900772162591108693251648583713830296053683842696110347940875002234361811041792271424426297772719986139927274702956726518095368128510769071776393388533799866141353559309522321031071712415624354569097044043513679948531256405514460413383232571120297713421843841304131103013864927981315850575332024514927118326963144710101543660058118258803683319313898832977656995242108894314792493784876552836609427250532635057458526602296843230095024589382544414962147187835567364545169581341337774884914635184738028640347758401126424753750913336396863700919495130492757425733097456693035940563268221927914690944556068105815873134898372278328380280124091167727987602532298602391697574350767747550241049257504459142727033429944624366149773725987431168996445890462202519315904778910217976952658044337967573978138846845001103157297364906410201583666422074367564433066312692504833747427446354679485307917032534219503702392597026342892694646297642366076116497443130929532679266923155347698698834836140432803716422505841991684363816330715641881950514009174652538504845322252711659370855565405383336457644423530074379499322698435299804995497932636431013382830446341171708519329084352306196623941640737033742820858642824746706434111968489632701509654850626710350604881816976175111929591970212829466083366595851945265832045204401188444028676069057866656603669633987682365159759386869077323946214320963595054180290279279511205802122222621780788076331911699879008626083560119294756967393860255452840324977467002224287586155773909629558805126432826774927897440673981954540377942399779782961948234950793365578756269219099763467172814765825191322929792308244976397297380717287656203075207851126797794142655866299978386851112563601201170562099693845183485570428816403799586111341534531325967261698083836736850740173901597636355168920167483237969144477584896999863498756714121404337524138349803365834802246005534562633715602424552715860661911497630977842081620524229812160307494833344630761449859108771152497220831220074377534361279273408946267684824235651165568769947505350449424361070603125062208718827806690159835250481561403426073615542642218994240062600276497978145966546175895866884559606108125041090691706257260109440076012777513395769103370099774546691355953615291474344134872809255738635010059369475472702622023643095560981918529989341161663748974046778321137142948414668812955365367131929058711421236893582278812734175904052376219655613915771946261349599550786503879297612791262658602293966122489797972619587935751874039922086439669334324928011295812770694704714305396204278277296397063304959389455102486662592113141370798052667942423737550121847510552435757218611789056426015513606638414937564636419818595392336943879741475836258679335231780608355109245998166340701513960869186195007348591033333018351240162818127427116267634055010428528601432735677068205580392307844943004920104131618596455232247532055273425670686678303867975212394191682899204036043653171893295430199728206697457991408213131644883962850514854141103223213476876046253480021856643685439105181119813757868734266683469405210547957274655610227000825279783908615816772608859107174769223812343182342857933955680221424817590582228315568674054631031271398798677083200810381329720081353646013437156770452044545190113902210346991571611700709499783634103254101574739855835208477127152755787376785350638500825014603905850828850301254537035333027076303721423552817528670579477064571643618040756839649238764618538644746760014224359449460903358086728579045314894567502147119861599035750674829712597697899358178730486306955851527591861528683575154237639310644943073204352579206419290542351791085908070751740056721926976667515228736235585423920817947743706052734568337971264739585515525003100813124181718858619189701488331946615305817408384388453400141218549097211248269560756032990610970147443820267291770422880086279660959860630081985143123503281707819248605045066324855440223702449749378127879046398114286395704144223181879395019101539360153248996131077510168099762579150485163957588249871527341181799357990738106628066841391929682066383375334836021806742005155949945482911550236613492134857225084886586963576054586540715881972168798763221118100179243586370664515785415439068723962279420415693189512323360873810361896074028122624833413710456978030353460202672475746534261392513403128799397491437827933527619194725342019325714467075101540144855220675320343214773689414096146977522866062779698861039049630361788349650301417735624276678963903620291476765448489684552711634055359419657105597773120070639078766438591239835650424455623745224784683293945437921032830425248608142207516730961358598303125087612770567424046034222200452225411402590850956141619626791825695943248181210631969296308373681311980630448210149448800808811142499295809841478725403683600950261970698367530247260493046021124069427369917582747553606097718740628818742466998139810453132519488899564832330051192296721054729680346343568211610809451150301249700291090974936282646668106127410376868056721135576675045278464133064530833768635512732882203103135975183035074586664427582453182320061167459107544021958969215965456679671027328284057518107452516526838270983138723838782043716454965824595580959278467282432182475557920440029618082646165297292475757823829867013058141143541543008884557262508773417831236274253846535328573087789872009168034054408524410509797778152151155098775061814397271292570194863343240481015733788382971437508033353117589115288427381828396316649719205191711702587157930648043888899068000768431403395241300213766570793811483424357863689727817055008406984431665754887455838238422756560766930702509191727194496111891184897832580309655191408639657865774006886326093770350842657929185266008840256643636349113201333768128034550529130968756927096746678392040593264166109906708732302333813841784969355355349270114820066307075849786922080891685081582832176995597061485159933223407006240234170274236841472810829055208140826589712776069290058018532369356827217410095571176782286102861972728946892727992591301046321840496520211988461189533496453649036247189668136709398324154412510836200751779959344981136342488995068438036362975450322640490369571928549496775742503109796574492535378109365314595616208698346499081631010562766278783190728025017372487779629763741564542878505731712429819850338139616338413135998246375465070985586095160171159589823686817766940788946396721677551633781653949226578770942050358455542670698361102386200692716657287800017377664283690808930686121392325154027690738238931516855465160641367008362394251278787614340347953647599108593408223469236745042285531884083318902724909458320054831078957874635541172884036653718255750043794812917283317855313956930204555388860364266218916213106060486724651569887932411070539531883572554488847722039881932945116658980496355669480176156935193413140081599481522580424042030587057420197976538056830631481044804429646705682779440651906393722365810298145616871279053214249709763058365182236100418858757212883283077436106811180100154420735056983734060941185838414888144585352322978392077127367440573843949097524384404301690567983369515632814078889376571767233949928862465220759977630522992442785948833560337521057464770472841482369435891497883168121623425803225388041133104177741144267534699174012837352347760839334414130340256029998922349275441868665811499533482635768184171182201294533624892032103750773285337063156500285117794133630286662124335349673450812482931939176737056724917597655455859506812377121703284553458675106819187569298822497844668935002917946901429680454926756723864566592836580351027345490966083697772144561968462419289519360783762102982701593143665468513900266661293245706942020193501940390277200410873862900474798686341468815221174478349009427457346864320490283197315411289556020424687420449822398409410885815877369554371554370463753920849001103318651027782607858767215887254490894103936189312741195594712069730378438078289705014222207659751964259354429544790117555811530710388694512822534758750644429787905896536662942362210070163892701634838914785228117831599842641271082918919407880096461153039410571985780948401617163064654939265016454023901369978070471817901922601239477592696262713343351988682195388759121041102445138099548233349635316119582311232517541652966318609793659806387141655828536814915694543014641086134610822916662773198204847108030246045737771861756286900995993354114248798650806271440378668472038518062173097477082545452811848497479915947573817687200035211545980707130953867053612294279980163147751140682112297758310461577989724969450708978615910053855416377538017662931590977892877518259334046911662289199293178669457294452633614237380529502064613672145804963958463951087229975203778314693306856515665480452676552293643890874160905268378914497223004117783875178297024565635366973522461654562077691278434729668466873449345870631939855876107040880965015070303742256521854146992188061571430534733712741506812723365157161217991258724878095321341491836193480790367696706979031708881586230325775660461017471203124427914628998745051980854686042604657858457528478556742088463143761968992898207008592689919537536706398186475077508113114177407077166882268433050110571891331694547839575748326373515218801876269077587787674073367053469822458848288878379984622979480702728683863653793899712247024435369411943153878214658227126746577418085823113451777381152976258846007792571008369704480880557822457436661442070739341410718381505043398506853733029091035856252519954964083898345326118353525439621665576294211080631470422195777698191501729743835542242381299402407669512260310891776426442387966825496910387038813758981380415636823504867419192734044099689292631171871826759365066892820702131818137676866189856657517861906401313756754031242742362173152459531214276418303872223653962635887195257208191772977426991656138116927394363834228127058165810395818244502954962057262841026238814428196867958966360900442279727648687752668453647004616065804332082537587317465334500005232937581063740372444081843493847674972021832000931382777961712448007205179562800537143949435245788960977507955142915018686557505321986939834186991807757851438494593224024091187373757046657684570673846199157536383365908751316002118026074183361245015490169070024558784921082714611850221742568071463864205876244503071913217276143823649757883507433654394647647206379065678864651524592602371055538260810977258516167226998852946899662005198041324565474252638110735366141712179904468456673886982972929075173532370962335911433639511810525729526811660270026088180147261046811185364272993811412669690558915923708682201566963030051616387919213966008162043170693886304153621080736784029323185737506204255699792689353741567246545912714168872936084137481186864557571881080007674655114816028686385979808223708046109144435774213263021286670855569704228794916927202495715328831957784284701177994680849545924071152806866279206047064328041730075945962591683790003480200771893592301306330336466895818670296513087767306292474052897636276051176385666355133854337802406599854687073425693564103808136737682863945412367836501497747753961492454761420523135667708543862143437325610036350142566443127703057621659531983430255066336997509056685035553281013528048804899678003692311677797217912775742396453689316442479592863658578964427415426475411010680300205248123594804374733911546147618424744203318598004603763133639294502631276085948189598650817224937565599203767772014342643443392665916045601978529956128014040622961651411276363651069824452986346480807343855029203723157773326440764433749916939519549925689050421646775748562739827390721286116096507947725107088322351726885119227712592911220242315237389184842145510452459767087928640602691088716968864568731532057295932915351976173379871915490904250240651427018437392471926723200947985764435749858583219546306055749225248803392732348925664803176438626261446189111793935560518832277949037241064531175848684500364230111609259541025780305081284873952438653978995511737668160181519924753776939682252647112396191152085489459690202800363453208447003363145424947544851572689630641057590036058753394041952854863395056451451633598241864441975109762201591651305671061342363993586445321583243947170543585103636510567796399773869575668354574507075533557559032169914725712099875464348508039023563772063631975676466992031653628252924064507953992811786811887861056417001055717216705322349684060027100464566281699886821843600433735933327447921177290629916732809800383632899698627295370463376209769349493894589566229603171106240106702300467232951709821814946363214314966287382404286844602580011493164691902092166694179059071720031923525983326873501690658536804926118430858763867941034884414681792869543820446441793989108067015254151220269497985190778973486096629632819633020736510263014818484825662610138673505451041543066565994634968224639101362444163478621834027533951923775065474858114272166093112278815699089847190009684404977725672468644562926000228460670656391597662637398136794326340877752043221531950486184249347250485948072410600017503371793459960147217653065057048096032963272655840956802519015309272674787732435542716135842797368236689394808173785863157399776347344799012444076559283255707332753544564326996740912043889963589041156804942672478629407442245898888505884054157154186859802462539179812423231615174588681126737998843317406082696398703698145246709427277802518931884608638844222170658861379506022183662857253470776186232821668802460632705852542968029600784027896677599704106868368369013178024446831364852477818368386077153344947256095205320829489248006370489606558682748244743086495809050842786450815942162178260063907375196474612432973673146160249363664166283561341628391757290754044951208514586950790141539579918225464815297270545534271531235747022145228425203669690430828993340861209308280401205965769381583591126072089847256211187207155425318934774274383677229519740840932355909093431444933690402302684897683915169865569237562943503851958632820176296867398280023439549090631714042373809313538380019345612488745112007958816351901171431722793629444390633243823558288598356118312892802933429962732423829603328568680973464928679545513897979813964082119272997933138411168809905728790667570014107083392033471884392640789450814818696104081009182760864868835852242532152822596974038968249109598060746295451483957502563454163263716355327714115256680087817307545525902481648821219265485606541173500389510374653832808424961811038796292041197716288118944737925998739596654365813142393940388798569026649676710073854908200646177652733063261963259360395122227406833753880440896916739904871751433936997575421221368320848722213308000162076926101587979916832581495018101746181367121190470990613626361785388411133893428400220475181802563872299200678782640413913700493307994912554408787337347515870119002174897552283871684712996198495855688991743745043659580815605715902135090959797653038692542734621996854802515640244963193630484506249702464605424588645842556342952735068165923252808514967046776731763053717038902590084126124729349083685714304765087887952502335286392478401510633716537441861732374289318596887132234547052849331381695423601066634101587350638357177015676818114499287205772424445781789936877311469351908392166923174687800543754075896065338328319806403667892997509770599120527342027434108252930618677249603989443984047016644922649770797417664324545916078003480299888243079797880168079155213880975693449888923865249788618231242179037551624392718502258855041198179600117193607134711146286722752235578159518744674192858063639025768070278513863668366694100507001440669115185101415939911130466464375052291826951723594123578158979589853379260252488848376757553394085515607240540829315277569308832186034098876618149294103479056896919305494357543411170854845938296730783377005995451278692315435920037928181456801232529120652251947237393031898514563414230164074316896843830950029420781839952070736735045027393414102110794964102981944288483279234403385767907997625822165208205646790947965401908445114904945516658751724974948871810566853793837597960068504636242350589343063498352771564795789783799759995009640038784221489135081851200694663922344587154919543620724570781594690948813059765581362302962403729121598528011065480542638377472196251086518172530213335348725010304672079476688195696764127655957479611189950796834923335147477485488530996568035692498347680067329616620874562672679314542281760876364026639472427183686365713205994284566774185453379171267531567431255188325898535631937622951745769616149165034236765393100200833255788611071896822613846483188274381011622357749290255464015215261332080328170417285434318463589905597269986555005875971005629095820586624928302599594655799619119218351776862765133273804393517288392080713887146502312070613824035240834445702343463568030531019708254547751524549418423834079007554257106153685273093441110253869808144155490852864767784176836789650004046178870726254198260902320119738398046678722749931142037120131668912021972362008816412630553656062464486416434812407523033511575158071644283127756844919597751400023364519751693912628662263968940092750952783151784282890557707521860058089752118130702369441735028727789501060601670491900999475304096891095106843876770983608240522259750456211828932064615937427216042571025947868262116288044931660497044232942288996097338393828592024817701842606866276328973560772812978401030635519196694908144563476768215189274754015204722257685427387753553944769388472932255348496527331437084832283869473669911321766892255679544672770388685777884564178909619703215951667708637605600644795888054128277463793669967712385623143408047812817855468374223597274597668956001203082294560827847234182670548452807481011557657204468542873647702767405247271305686310284683499138752179533295474124153283063573266291366451880975827171685377517661664684452625525093741739467852769602392644955405241920673630120636416413993623313776679005660449196955878720894082020864798739766253719061030659707822229181099742192827962864483693100416657113016713242572252929789901840231767490766892237629767140775413305848447887356594906025228836484242661480402851875436802083906704441007193895057424505646578687667958830517023051768535395014523326339772139600097021274297504708450733715280314527322665458139588266861895724160413776925169472646326387745151515256796427647481748424100106078941383142862336444300831508036638445387409546506545165820933223745654138119591959211973403297602971197239966983074051827886187865000507488310579092136076922839726702660726566178415245134628971622019191933681619375658371058527010475861738768947834903439493855069376620488961001037708313184500887316082329393765349047816774173259802201775556286022212714641905824251506685534135282591148864196189003183395069083114740849719563612534694060035917134828379211813925667623438824661615406388173169613879057069186704161044027167460576189236590564728910328353789732450692237460264860328680020844575793021053782896035850829370929734336012519385469897015296457969188964747625033971292997432805643239680205634803482609523165424091469712327986786146845335357990936818483869643749572431939944528155804412224744523925506082337856468750286991202616247668486925578426217002252823251674218617772313730705442120443228761938040842265995538121569934159943700803417328581027636013569626734145263991497984119643642342647799312144858288695906994076106165265047319248842803040056684568316734702551797981266737934634071659942681326207859219694631403348854817439414149329744348647714362371509604677434597868241743865849678522553649931481704710489242368893797628795413298376108500520928067542096955027037215944804969577085916450398383557512803040005782809854758393354537421941690504153557751495162682728107100789110852771114247793127936784148332108109741970821850006680082809659203412800764059006878411904904318609743240628574151038698114251447852548856531546071465064663128985255105464149997890564135300558001992923318101229609433732014887126502069079478591449318281511246720567386780845461593968613742872641750563598895816065010860065720657323404147465770031431001038427314719937674632759696135230324900632702064388707280927908419060391576353702796187027915339050162443483152649435877690080368444453917339610021148699141984101267897723656857146246552206884427852105261573913749324457369408470084600631138028731024033387282306867908726516654713304679770511727446647578432162789713554176110489755587736818628673416793390921157401429000877818661354595615809530778371756492175793091413299187936929430390585977425364139235417622844237493747441198846670854673529342390338726625740317253009373096138537241201185776493242195295942572627802290508249561979230998795701553644631865322539427077091653569385486578858232870434211155112142853344049351198344347220832907112947904835998615076715092853955881897933962643355489387141271681279853776735252103325695687472661358002349843658265814602768190384111680749793118142363446653596174495011315632759225181993607035731643771043772111674050837724012938920267122118101915781183155824781454697608205844427346878407817191619247239156867338871017221191278383361949864023718235075838959626299093559675199117203664750775329494595774507174543918376671522050795814625139230929954089166123502821286083347318285715429657463222059429323218219337870194378157215693931141311029134192623277411068998498605967917305932653465749285772914567943668860135260082353436379484338855108351632197395211031917130864287570291488600941153600751712224265073042347786080452731122830858587407800103812708209447878710069947237905826335401681189260237019201121939610665678427387137186309531453666901024843942010362258979382086166306043607097689977713449356602359096263008449709487677714956152998258970117644632941501864325364034557839715052779679569101915131815849947797282473759454870645719182562122723261595868697338589402858558440544719345228400483549124120607358652182334465263082432248561243757146445861453433624615739444057390450076427805254717738067949332729969544882554495590960149044288720926862496175798144295741600761625162227483702154458223110674943872071409094855559703103618459728300051345907755219902656215957624261466989256959653360986241036955854050782410094352722028852116440310456494863025078180136819381009068276570239047877760229798148606533656703972722902579762425702334142102588140973669840452157690764734632166392944459605258699188169333166830948777912259983413021810168142737788228348044583743026923024157363255704861826174287899527387225152965595977425800760501117420210772627547266077794309099224551646850549375264566759370014292525674057156801889046332348834935298640389713079283518358680177867182437156970511982809961124822287707338085736758494226405565099835485078756512669281166833683696220455421858970257092035473488251895605899658554011379063965959355379458666054837496267172901713226264848843580950504799107294911455216107013374084078535333462369238338253236626702394882801418017086665444208168225150577228492173472084459893229645617440588274073531085524343503945636526334039920785013853110154455741534767254521795742292459664927937278103380809177108569946295913172083411257290609096695710861985031237716075214783498239652086455996392426093019059051519793679898015562545739376380543657099767502081169674243577672739144730251822833578173500727424101830621089491897761076202581308559646825377553737391969936524149868414872229211134452407449832374477919016846360722601720128989779364199904923548800243837977963986488323514723471259677550332736572215879237920233203028118911957959768174380037706198544552917407412759490719038785071086117493738238466623951169824080418272978677788639445022076117217164705080694195538898744100798920163271273289134245990417784149451232258617198657288660859317219026831830564847168401224680428896929589534746875027553761269733500548638321420006365728692598846824702328743373181187351581185638944499431407231193266622992358777002956340947209295265557886590680201504013002918282312036773836287677168830633540643462596372114590827085108013896540273284068749019736034424643622703474009323404212572767785929341411669142695151940463197362704288319470828038229026355556780927868595276981195098801508773443799421484207892597391727632881982139969495494793051082885406644227076817654213968402457435598933029199670785252041116735198385439775657137507762004031728822312893631533675831639904463476426948789216388409678577128695110719454578564843381574876248316338497771812212619963383204656695798659876473929014916743517126335047732355781385838213058026861342921278192178589721093144940922981966093258227221220694222128499040883435785181467344984600733038788096076203433275192386092647105061719803107668959586189925277434744961445179082417685964515784368823338799245013439521894452271908779987271302864529640219309697405947576564697756909549557017847925283129459179362233860855068737046239383269864988144339480626211151819870835667013683934667031626066663066739208481142948419000638465152159465184452744248754851729016364998331289827097331767026032653625235578646030868671560386220658898483020961915814755540266862470774625834401928413287616401752981598720032854374464949830861383867932820002686162548384942855830668432909734370760184584198742623848917579718264641091217820528819056040451497929684632401287751549142735208369197996334534294392778266258511520400906289562715118739362660389022685217651442210055006486337054366722824250692930673368311664365606658635805010050733188470544147331413667035981865242024252345012969416570363499950172543329548298580276952498149862860726248300507888491155959604044253921866690505949172173549736875059208456016343768941576803866008523436016336230974122031392905975771469748059338847771063203513137256284390510470088065716386898178171731098972360571585750623597860457749731732643848699071979509159134188177539350953957458996735061168377222066669402443489007882930678998212503878112282477296860976006612515203525195827398072364545304045284628568437418036066929050290676561275440902289220970988192781805398430961571102438504423454178719564823718913353455119106685572586551944914276238916258148090911941183809309149431260972141083060312578065722081244514438432294682808720276597264483905315536353872968126342536171288324005135370591486425265750727989056283793197740699493390290851340794251799177881874434917549606301563438550392593617287877732447309817514747851084649075865169657291442802589108983679438512438742881610591201076190988681040042183564262648852511489710737257355749512797263410643132364317177998241993618175702238036417412379999895743692915237850126492249471463550422316530761945524350021841100418606061303443500074563530211221225888213167415446860857045873565030659726749186108836204299681406062325252195173954470279469129606997102869028456736212217261193646357668693108564486323115401652577370447338134594637017622111738130187307576367484764006178513081937214232012162972871707533416820788934746851530470815113419534183806213695245019317879756848881783973502853910911942057690671942392627691997016866654748890018511495724904202080490774702740352710253387568643955531009409752850151198673582710345548368182287222516321155987232429522923990351136716797895108034889200757931615728197473073670896529942658840708370789458628695062698918536489968626906002226582059272380210269296724898485993948083564284442914057305321848127808274213881037689128463785846425538112428301748698563349361692939029495257038224977760356160456181443026982398062482116328649790042082152939867568662263223790505537121046102342020838272568337184309845337682077870199861813990193345043131141090218898067257316803623519870952646108127758898684339020327292293735701010788370089955884007950520390643048554163967196850846321399264137183435198687826680361410715813447329260042270503213742764050028471728777666007870716237229535512104076545760078920933485616256291125434765214774915889947914068119864694458219424653993085915284717092389626904218178150895663647739483649520718622475621341887509347445689277687554723885387650719587482663072451657231041080536105527417579794606476337808929083863438397975987785908543427919418973120335060068579320083923990942242097102876439681615630532917965699952337989588034884148259657501166554417151441204571384987678082158634758337069268840445825626055861144193983133040399882375211762263368447699329122600588762053627609447700243619554277322353818560705247345743542319106150034592578687314418976436416148860621834048513521495748423779392767940815677858775888233556457379483064603792532817812829092959247365364070413694068550832611622049345105755972061673524543875096963776419229894842527299507135483316109872303835366186180241138376744346623465538485898318908158992215655403339365051297310591974939921579545361917403813123805979873350256314975784178326860827150821611109846928672409933914927784571437123554069913911572549730661128062576121064634942178115226405144930772905042129894355435721813017952336495365595455106675104622272783685493364166429948739838928259575888166032457807047230877520652683591430203277634746701334059436093229858869773264332850924662395949963732581048984076419948884181401823116229326058774818475501404831060991240385918375730134673648351990351963797650350775748058301182479377068240416680908835172614366948460390096360676806211233670679489432285221834791013900684261544980039080680823761463703689509093080931220875800599656969414811891251932658482419075678351347845647650018389775567611394214095407592987310003842089055506473468759107298447784073352556552859277686392612986872146067207322310480322577948552595379508061740447952831204803320798223551405734017791552449104124215927594576252248925539006934527694355274074869744952954534940388352990936470780671349398582129164290025047572920946912772325361583743728291076331244572592813143271756350016006072814408393857622291773400371235693840108339965264916823892075155633006869272610223434732743946681080842690284470438985501718799686870829588812825926420855800401190587913266402023010021821702759549984474101259431065704441062733438008817994947035606762473998585648160072146039188389357540473596078562854152714814569233792308106980489687911295844450322504770793305326359837615549401879085023540064889218780153048965495332689065972316363314003992238142902624219516125981775380257795139768745603757374815970391978280911246378971910037006548762950672284667739754462402926446165934998960468356055248922871928009773493459095922103975869065805075328895515329317862960000417822481182831723430907770191952745428630374403133527329999495307316651431053571075383222936178236325985478616151331398180198391294841812751329922027417453067782830162997317667571390669004423116848253363386359182894324336942960657670309790958417660378209234952504890305794204530502433041469150439838938035375786223870653716098009235883399656469684796512937720691787537269866323738131451564882628391983072232097081775998241127698617222490542402463126694401894157580250299401683591752054082997357584548091412682554892120724760458132759085731937736034229925232265626707567680012941539288818519380824530191131769690505291445527835034320754190290966837195485492649757020604527821162348823386250964034976566732124907513166420809164267423512111294566485891596660207935876947475296058916326526907857523591564996776651812591075898293457222874252803210425817229160060849715239648879663235415236549798665813118075987454195961488137900640050336904998669511145042572402743325739946600467820859629770994256988691012300405532117374922262641300324268779098023232040663069897130182382858217055060205148535699135090087758882518884354917640363235848747476108957117372929611288492605096739912927568345805258227871455780311046222834943930112400774551062338012484323772799892657426166541545467420564777718087368269929440488407680483698618483367046611637217980987726954345289263113520239833289576108557715485523260825881527806814829650217089187817806465380533579705001613328396524788363948744449103147821133809065674367513176563937203841236537777710789341288897363506947191330434789004181094465877503255181674772328575409364760827616253042599209578545684185318696996094606492047369836819704591914315940727620636324693525292615780670980803918012712978006608017099846935619300092193228161271705520656636143475659142118414406302219582063665084559604346141198515458544873222384583714824457625201609697067762798368999586919991677818248869205602188454633666954969886064541388059366211911852191750021284732469424392090281777510331549967080704930312085311581671707928440440769928360007499468977719526388279189965487344910497895102863010397640061265338154958055459219353235852587854280971868895166534035403495352040439161954444079200054432110974919177933986823708300393080235742396475049101155035910280297064182672433015067033073251293245370820102652423070988298297636176216004101052175212000321872184990046778193666035329831923238881895362287978440607811327754542797716560962174257753299307276236921766335175627398027895724931893894695055876551420074507149209164707590503808785444554065138068017417652577141844510317002386322835079363037783705849643532543660194556087677502309969381841621696003165319220936705800241920419359267315052671663982195407116220135601760188646323765794872881371844647459084597157619872404548488002698192863656021163841482126806812996729490107584396818334944975325041037800262395821723872769598304078749855965120600774115336079326082438803357026786544009100446280961066021773198065810143644616069057026241153761025537080320608758675968086237742808617299879003616722859504141893671604036651650564609909604580072360344839254429255684838290689218081458712874589609925490307078110211714823746355279653956146699531391621474587018662372608517083990178186057975049240105084648783419464938445070056322220360509860268357698754537886914832489890001084587857177533342146660344633102369128247845580628603529344635165707164346080653855005832380843235254257013262679310432588889717646751530331002865466719733651385479346114947659034260877341870379406406274527003073502411221570344304375921289200709803545493225196827719161359664605122362369718277905750987592020556106795144893705861724416713772592946157051075172648967929763463041641972607019705014171712078540631150967523060872976304536459695353182383847779929017476347083376271918778554062421446803308617461718202708199593046661462237538719320239916490814667314841426125088571437985858673358864735038120981384659866977169871522630218926184799335557381873089948499684779428908963271951555749115836120995101707299621605922172557440365270811915958086871661924935856523485844410559406961215860266151964846382556684433172946568465573518745515543275799897387015604361315331799407368910402905793072901535468115175021832872328435011913844094331383444926890610862777358394547129795688460047816533889837519107369964787609768739127150929892897059842207149003463762367316280235734448370105765703624694400602469159112737212850273607605223336584490104900211733363563595086753278955723870717992895109839961973025805741148478432246858337335741389928232902461179632206283071561050576017723934236341056531262800157918144373765767062223234170968959101696125776503456879445482779341867427457894559899299611040239995707691254496436748107432370669287985069803619379592266120397116904140831290146989885368953767521729198656107578851433369697825408859249932934618453046584855725184003478525555316564315478455108477581633874049466536610450541276538761089641136156547425202834720802564644656700452764153633425091916966879086727060489394531623522064847955647079570575398376739383807744968801260213280037413856634082398426542141532511377543163648358727118607482350693150963823261877540283280715877747186907833035257031041295001134513763344356169359433226749291556570935725024052019722529749855263546441369622055810226130334711940507386549166173373080323550267716771309244352821293460341364167148107680287792056835309422082871050056692668617968220838039669500090951436971644703614301825685761048370444272598344148755666394269437652716215015559509562388423793384154026688366600413767320122670322473597113563095286548522844036691111193267296729180973942616112408735507448971271761131195753256051366698642458699050120518111002316596460011641264709392449591618677972487501417486577027746602713554041646272975838174843518759037374933079281112709008832930223768116131571170083149837582872151075717700272987405868009120709464010444582747587014416076724418351463633310046968105451792657505428167831733439831379623479534396395909431133387772784549019748188458606306077879964792773764864122738691239275648410012026563095861431309812432600971675753634035198316016245759452886135094954822980722288105445294150245644223053052477361796979781489290207368788969438727019636431492220011106356845505513675159189386301615114918392894454535513005555477856730052207746885865932173347692001701092563957703688683611992490304675527547162388441287400496268170400082608948669174805740025616721705729998180512012496167507585973904637833014837221216969127858241193715474121615418147720660142184165795637403877901279296657985754104794695185833705798407583783173894613028511918433343267383511665845338240709621772834324796757373346503128050012627094016787856356509991202197498489840967809794544376701604200437901824517198859395817367160660107255944203337262535363375548368874709420199884337025718929305820096947037467291297921485195186124821267437267606728410620334482079889397624260031199528124352735932814558035093178576035514555850147891858537317351288183786700964074767326181454845112816657712786378913847472751732580926013256592457046185459204213273451457257848094969754830021947711081877283486700827865864637532912555228904035189299570313846597928078843061557699855208044693016103614823865397352100216114290851489274487329444970933597026728060897281124168573868278368483601998999396355562446945017053644945253901624497388760100046453898791811739699370174333219369930051404878610709733556868484606302616978265644822618681378967459569049547002760180435790234525872933208714714722827940390892485543355178476472988399267858471570822412346417427831764123419687018046451271461711827808723437686967292226915629505066101999014136699595751279024845820819053652544381036908268614117216459796825610078847227974824165262819698083953523791302399579896776959435359407967518534673839489269470879816342074925246685504179923125335486459709695493236494699911330821233393259598209399623176187696971267621800655151080532213915698185897217208796789517797025634947612027005594229656231508514684226700471026819077385280963643861775041197302867848112332172768357369858977174854727342091107931043937703577736581161284032136089035802593750576135001774584820392872696331904966944288489416366000533570335619025514287345056600667336917534903337878743976373837383564414856387314043254258288904376564766446481436821944579417164765748786293895309665205099331793660133353161981772196677049711602892681438675723953012004735417388357554041219628815216784189698101809830183953430635354415823808805627711640598205977128908697729817119678531887296278447317843215109630690281800391825315137558062429761173453766842381352402800801079360302199112885529767729938350478430862361984386568831494725111912626198913311287967255505100613997939022675567725074121328747948651055164867542350500211346653191713360294618282994479535619176291927770322355615985913290472514306190043755596772845628845129873132457228950650417766050003375856842223758085703557975270756545421919679315681276340259347240774537384838152030772486776297364239678436114494786233913192480482808604895103988864839067144347272810093842773309914738752824533655050330127079146854554516612056212843780175783946665325257374392580105251448111132639425946581624343508875478756503238735616452825147589481957302266349511125956426600998966797590160743018000172891066560035291517826027777992487255174774547897280399748687342277507054435556302916662703021864468001559670090436596693036329772442920951016158654978278850596653245488339131260372722007503382836286808921918564878953452027367152672737543202450974680316934717579980002927847854516775873608302828885306733421943336794175916252099503714597978168880759134818598965680193541769939416414669730236557307067969527709704724731811251128476110288066849034635277118981976808109244292709448168615478664603620275963616361129049676775158442955172221382201152176155696021817658854287219954505814633969069441875195145715365931137655675280561581158396084097868291975402502039206314581948755671997572015391033752110359657865207782531134901667260851959306209089717786543170320551007542750922474375111114529248102256450611918698534338801536115747267220963593828965774263369728726991899679181248884483896722875179093918753924239251414993463862091424119990568145560490799495140385755369878353368549489211286657744956315409892367767045269589871347318654403668976705022787791587275133966366310431637063053209349870685519875238597985021347992836824839674525320272403289190068598885326051321123233689987066339250556891186898357073760059961199525938596824411142838256118843826750758488298093620578601623556121433119671883063800373148612855052516900223642277709425960899539418003608204503534939509770708968993812411101621101772026652616075125924624330365646832317397937495877562669535849361919003593296311849889382042492962548380101731091762670558815058115502902412809700184313944701727781964981719679841929892346026034804123823561875414769978949129112521194369670548889210675514851899802451868845218347261268593731398112423403144051296054938168995199856550074293513917191877041769403125009872208945283273140019156566747746732213007666195957086458509146329276371189013966692360831349283376650955850046290259062825424939030011991754031333579476237191643737280131169226055444723447378771637213494659259547847773952957817577120781554507685767504893648306662708793704345208266358861947998731658510728209052440875450784662101127911196355726494159893936762493273257029708388286135900070228037738395838406149454882217276227029896679095083006947981661707508861357386034096617877165387232932867617767455216794097152503569103944569605723530449383707952701592586078209698222846782109120354240685792249740734377075695126220143547380676594718551549344375164113332340349129474430044804293977161298396994989541625764650950258858505912561516679641698504531299823058915932177868645446427835370604903752883308665207802989009443595759039968989780556798444548640681119923943373160353901465281243826629975431636861364682632475961962750956340718128465294713692230818456936291069210806409856488022526189443042416639026444891911405719230695947029758466829470312918093271743028028736072157476213366535927688060727180931541221430858450494888206942724004969100814955521546288919745392093160334289218240184377051743646636718342014400604607305761615149427324975540880032978124131508574734806921620207449472437389146282995106829553870327207058645201972654139340514620321080423029448743809957210804435653842811037312194073412542534500744209150770891583339410940767033621045475134926472146404031029070926831789166013125005551540951137894549549849778608192002888156101268319983767074202152599475988464716604566772480033645312070296289542265485903468483226686267448586024224267913808143523251388818870436333556578711314003621262714451330504774367720149765963734386242037285598799194750813797081665314598535362318608711824208186488604589237847825608153716488391752267762986773019900209779067852563814510075059956562350826018225729578491083088703443428561607739489579300693865120430050083348208823249150477995031182946813777916487917817792339540839313573748473203812486086758884746399426001542146027101364389794922830584204869407953695253407149180807501085292847292092795046462157856566621015787744123750539045721883707129504681170525999303847257400717604577916679643184787060956045214720926938047948610301870928309443226042984518795086052264308622410024004849502129756400285813061720334890914007733040755869848258429040831227135843430699737327592014799126637547530765827288185765747133381640966751079539774120680093126861121235663160769539736639945721214877089889529624457848874869529208490817902640331456649354093577279747333689324796436601514875397262180995386498440778528588659412842522206357803998770382438139003036854380319624084271231121009417685505337652579629413509905880440502689187311243742100543916354861026205773131144750784717125574545449394965257978079518691138562912424700558609848359362349098851514519498581101836637930406069316059442703887490146326098656916718123392598596178638457854554744884777549814873977521276255709663502939524977309445998313213456513872081971927771070175844338501883976704982525072777484262536123727327363343224095902999856533388333396567840010279028749053216349387188182957493713606074232751431725746641989816807832836424698272333562870110011592323441849964472622999104519841447000958010991236709552392791369465711590347543376711283709299477416122059114160256524675702929431114257859377271343851680092799662927740634221860497747181062872549093528349551431352246397916609835499291938176138764259395769708490210800789656859048576875437908132401765618303910679054774314725096526945477943437653688805763717960318813492991296154067998089559078441700630383717990083650417061512740512573836540793759396282060232127790385558575566997637315317467788014193603953016384835807094391292616300671625457828561030162124464091922897547042298466570102260942680410118132329413348050267923348868663738403160144496730176018104763675016940155967916589155853079889614119963496543018771728592674447177360934230915307396221749850151827045177334948467306777650280080996265019067171089360147885513306123275685420436078963190858642613249498889265199904254997581804981196489549449064561693859465611113820102728514406780404588451160490964707804108348330934865634882030729486606811376321932584424077142765644887865455339186644434827142261474790581077116425157638924749236915120004729611596793373752035637861677219234901118383020343619107743268597832344556864496887846427428913961427426903123193807082429951946573347561619011148218934135161246537657371888040486167521149314448182896205988475224750951819929487763156801758815487197275467101769526117816435394369197499105005657046009181742652504725037386556422464706397887383579301016428826807311936418600084546672412428246587627793791703359025705649878693662041083598331099419688446650092782590002758455507910898346368989157612074853815560535970083696889622329962910332450323130835450733079053555443124765351823580798239960598052465473481938209965682523001576306639028741230193815283486654666503038702214263546838763713932545815412288112972985587458028587487539473956734766118451151213532238858070966599957439250037167708637711004399075414295815856976109232034545133553629119673196552925984654700536579390380898038076696647847124714575618684425208225678427401499017467767860968132853952725205656395623144306504728176378559631934637407264989298206797966629492923613451076945293894200828281563388512014614101937649475313260744780569733030848637929279136270135534269261490542540611487832482697116071054622585203613942483784601553537099259870046663022590638506145925079959784171023803753910559089010554984854261081264852130218336953512076989046456885290015318382796778383383305051584136738808732870497267616417709146839551489481965595904338387421161800068983092672898483613430574125038814438681290033118026137439579961384068597874462981466298687462849392865148298445470628868463846713682820436498417186846466110388046415047803122953864154363118179715951420597001795847629452902114833984550489004703446317327841729291803104803603131077281311964523892449939828545207881946765206395471571263925109907072325346017247322730868556030551694903012973402275074543894065304981868301842457081650403689478506590792285119770215725144598341334453435715225730104954220019200192943817994717937626791475521026386285689952095409544205491305719557702661003822902658907135703955540726225604041723279895370277301179018317189109477503929180000192213898758292366607615634333035943459699011909313831175444751954486517636097982686544206684697834891565393390147014069780796384942908826010517949769004464028841907729851889618847870677858755214096592595017691727808703084468128026967639042373251617204401779099813787983993223190064504294647994826256971188063355794248720556812136023016423814713535705032635896117305510995877099316596622757329813538516619692605347355261577300535179574421544379643441425456913382628212167363105003807266710580167961295948394543223501642081726028203034415835241684075918637391383176460449206892177291464502393139983060162098169456457987823973402844387402297610904493231132774554887902988123050398229788280911287973025543738850639213999823176698407286350946953885055835222450902479953519627672349939288324914214634888302231430307611767785757739611072704036665345217527301127834939159730052859361132667060201418946350359388146983884437008909824371422149999569521376745006518275095911819794348992442540749643964695511353395464389961788495673944502197915951850333198552784025655013412128277591446879110836622888775902873044299117680418316018901144129611185683709677131282289939122159933861049251494284499487937950805240055778218144258172062968347786791278052685845304732432023588139756566903688726697440670268666034806949735655313129231831744665337693743969283113279356021475046165532023687377770077509788174371854952913732186201988100438050006314854053970947366225826719682778508550641622847953245406365974861240250668511802491942191670518226279805880731709572809277455816807421337012311409600021132755750188751068814515756324515381945033322159522746429297053086743649240927032515205853486301363573083762272055244439585008391357104249726184539182017432870149771946404731591399733382981154947454079919406268190894624567417325042061663669745668972729850624917296336356887981125807729156764515867483063694064125498159751331136947373932955757972021137842920152553186091957686465475927245832541003067992429390377063484083244100925395105269481593174288529279406784024752784452055873084394076391133122456961525001860305990423304777468369718860839204953675523854301128031150464853081965657531611028556322345624992301089529636330855434462018689739018435741186921330504262751772960026001429178137022231203836111436979626023813064232374626034015042286288607743223177120981848884181734765049550520142929117441553608167288913047954586699705159928809202940291440334683429282129609201775969309730098116301728708072685735763444522022333154823010294788295009789476362189336916128680581046126463608040802253295399306725294880000315861486433521265529189412514269141540843859332941041552546871526817692926992234575222169615944289611829618444772591875295374881988266817021579855274524347563720377618341826979831744854245698601454715016749364407950666099516006369571054944266330926652982869263362471608125923509219433483009797741571569109576796877374462259568671227779697932483011598864410892928578158846570577553413579414278700236886639131577696050938776710732275807686805203012848034648238020378920117161604175671121049520363371504377402688542792724490763957238037624973138989272875245732648790260131171767697030119533349230028340114329531153622920230037289880296406744257764630287813212871994379920956080752538121791769757329080932076779397220722837271488036239235094981239238996174262436918041737743486565460188722428394534209242676815288841559251252153743718992325528979982127878139506170397981806291748933471536095178398651020226877237542035188349513115765673373145658381016195245560952878785541048652072500854818951185589167835478899981743475212376720002522954929954660397224132623287004079400233389316580456232287618293638732957206933222327632734165707095799665475572515064604097309881346459091947127503998677697665306593365259382723194349858208276219493297631168083186374104120318396954932329643668376990007191487208566260041237650260468226042841567325264450048374982367725287875859073774931953873552922576653685092112378278077875271757189434980565910103966828549071553622492430428182868738740964048139775852292497182379573219370576087713324150275930688258524850293146513334688660521394230982832520601486721628524591451359092582735573659288769036812208436575183989786305097902981538271664849248210836213630466484874342530512686397632284525754724359127827774671929499654681302063424209291673332519947660655382712769390157270397449395030452712960111451517786360846576113328818632440492838432707202547138771899534507793991714516076216897268240827387940062782119147593452121443242243518083321454897149206511715102452526544175084142611467766015870862080159373126446281343791451937548975197959599973309186391480000002722068166477329631608699990896444769926902555979136293045256436998807784168978240632854409454122474540780849885169935599494010210993203098896538512268502705493919246103330210036716456087828064410131319626016743846399314388324368390268204239901365297548719000690673271075153275232550495978175474261865329077213418790382306727187741454200259270770785073225913126955113407599446060964289975066616793608812664093825112234379587060132091635750327895588651120095439249204233766639779757169818060533566733960474053548726447840528896173404734779676352867934336910285441370583280920306194462244191722964300541514676069731354425476412758836654994430684467744387197224412121426453134429101802951835508371745523360706570759716020428693474886547863827298290906780904532237487217248316742909374036733472248841041658518448330479664109615563147461991635992434547669903150140604776148407484136799208341242447833600320074609004756871923108994663560748233246500186631361374788574284792769671856554164098113999590688288087780052850404965926842191202999307713049523953975593259340316661773502908402071401024129390471826773098311345456539739946127447411678645184721782739913113656726359933203994587840630221892582495583955482800763188141300995564267722184405950758055531048595530401241854251786870009112393269063635009743480333953326477156208925056782493590956331863646893443362800115850918922557386245270308369828440324448875755862317740712365806196062800503413614797197583062423520975542403003588657565047212802477285661318004348791885197876361459357599181275094528599036459655772130428587523864817904677176065151303333175912859048368934145794805647855358261034151440002275714861710307131971831639095204617178948704519038789897553980654936901002503357843178326445374779668169595911698935411646515205641699515115604863380647212580423507628441430117179173188195540134965105204431811668462710313594259961571640285590718254929505144874303950289175803117406701599729113122234871208451266309191619267007317335798851599451904792640373829414236373433008948077774643378435000090284188863885484040576147079097034966648491315490477544591451884205761660394751292318678055722037279704164473461825907765218818261258586446841164428588459102558117301850362677665954290550473878777765251900724079119987904943607775249668426297898701477701968306037119741493084504578180654196068758033692199813732249825915717907498835165660068681203482241856820928317849523318001248234028796780098457463534271384971692460476148482117685085649262254269771380805763582045351984099046858744553325505207195309006970993036988970935345791579485184332236420589125723928485931529122608461067095232337659810160600570693179682358771084427809899859981356515504006727936103268883719374930622609554591951668650292970834874040349295525409648779279480944375758629344971282179926886812639136505706138559568397337703546055750914900757351940865881566334866174251166169311660029868156294075818903268903666303239919230183651781100678499694033433472555175906914400560357297679735171338001772275831386680545336430060566166804306317010946827809256913222099914444416870030314930449996986789699394611312360829311853101854293637362301361088758739779998255860077016617925835144627459108313164700358396643178479520539442521840636997235441412203781878424152930024225159850817395954628508136173931478268908012283204313895643532068224631467809931597146379504995444093150864346439767805316449202130799819473160655100586890300073629224338713652742448391414709805642001923486930928159336182655971791319375953001843112938702674789373556699336777977821151538560400287178442389577939352122610942713026111515762303991845424094129119188101067957301788811640885246397009145180947055341495755812593068675659212640165961136816346577961880805846974303909498077147168907666037674912272623640525664415241802146784638902408648310124544159600667841868447088258189731716438309428137865188069623070956922737525458289268518457752372889605677945905323613778444195679963240335114303562962390686521603447207165542797444748470890909006714675582010527535525823532875725431368175521652428600369886734571271277780521212123802394734727494138354472012640753018786063634510614090570718419597116891517679750246827829943226608078211499698504512804010075071379895326044667180924935966731483201164428276725501166821064361641738495650939931856368885371626625238211210748553268833347791940581211927620947571056580207914033132517588044106973004174320114504292957633203274107573432344986650590591031966852925516902601965948453941679944653836342638828748425675768439504387862284472146776453653128184444052417924901192536116411857133971620104534035386671767852839767687360244225785394787917224267131541287457994981424833780816633826465311890206145871288915983723711534956473414746307587137450493869268263776129300451797659567943431865145687931844990434477394981390292998160735041587121413994314302699088172846966724756909636007896949386256950468557450430912265550553390603773473604910850712733461719958231486844114668649669899587415674775218376355365662375397321119770218294791806904101758301499590871219440707666751477440931430999337340815522363241367564442437390551575057077942992906829839516243684985306606865199305795968478262430820961784471742362375617431412416693422078874947436171346234782652221648494511201979418297068558813396685381398841555319212470494071263396008878316972607081351929535303556188414084912600323823662604243150113229967857319495365773270293517899736867319217965696677226043928291144417141551159731204405020000740199959535051964236768218308421622364699724393326295050555911200017671442893244487588811756936486797341545211061405674389033723375628692608718532955820315303824674642494626608261682869325372671394410233465721011365520627320960493047363620793780833815400671227717469424682970766692657855171245876076226161474309160615566787618346453745209142223470414804692761810060900340355584289754653775278737799802942119861041559299819288440294193669839906959373502650932700531359011826679005197520063566474218848855604534049154958360268383353028861112741832324923952538160797694701643125223772398948088024936434762867347439068733302562089674078130877768893221987830092395638467082587743646903265259900357509003926911662003587014845829181179317448073123409662204943529790139406841602233346647058628742126149212369417804677916916835908129052299131396979385083065911059529671619124811101355943014648660694350263016545089965405253972288283052089012560582660350027025123251454570834483188268482671434077371284267795983606786328127862615825156776588755957746202253637167006101591647286382922565355654285893760208355494271019783882894318640698615258743013811372971670532372776720976254721884539050829526475787987393135516469370120311236636133531255941687530780403681188318089014352536865773102715062883567939125582064783425227015321913504775029327052025997418186947490856667638516337318414854547320614182759936301314052216973169226011395926857221424678351069454451600928663204361441662785754089793436835223526658444701290602648412070286030862731297010936891954593774214706463952276461158499163737330081455320997515202531731256220817830574995759602752459444032378727382365847031356474833226867093408956226999549330600712893369059171649511339408045063016563237145652490084621462723277815957058574596529633056779742767293096284273060984300775550736772521040093633969266044128317751927960701553651459092875307021174890476638945803562742776491889354492037241123971024146120205315081273970562507158211177999342161790925946066265162850754446164506869601756600879533127584723792519396374857932926062911269177532144588286491469186578174627378819224190671457749945351911780392459775365806868415528613544221124581280079994384300533684694094610514521452057847688206922329648855027683478941968864921559491101338126419883519372194619019032801597029734221125371613392247363854047706879574700626541678940221599583980547914436425352239613305367700253383273763074006436606818008131247949839836939835782743658452204774174375385389011682068283728603615175463399335875095716909730752401820373642338840496396440810574027686582955696405292294262319101476303086518074723224649608079363473467248198499745183450748362717949150882765078418626183994085542471172328107844417676989206976153731355558697925601126856543893390317112983293010322481947161486713558943211717460968240666615560247952476555751884898611089486565689952876203860924674097025175952576026651029460981998978028735334401912551232864634216466204965893402134869835298575518395572435385041978665673446981067569706893909518100340029719571966776761200555606213173568918689941966713827440237951581265534993194711642507702893489115415006609139848209175385278716161365842500225658598866682099961947820592075135856998797315278391991511436115250992604152974373357452017719474514192252351430490233691404421916274492265043751775255776054481273653141182650513796094536600633819598889848916729393705687718337657306512193432529249449779411073659521851908316634328458226146556671436777510704146963420264066499452928954885894304568796164691557577102088378930520441016713097332735056062641587099428936766258197199724726854060036426101066439509652477162900339645229555404428729535309232640506098192500998359146279745422910147452008184458630725696504359480550159869967083545096231811639095981503957551387157694108815852749357556511233261116916904429646248749828244919418876062979732885519266330913463429024391059301892969298887562868246996764685538768950568593448707592689725406458194914570482342190027028869772931683855684869111526775953546897684696227519758619734650022020466908721767439262660852987809136690741487070875494935805041815783989347474748409002225510980161534907464859255489007094010722110605576517846411309551644856744105666762422896553748916593507657968192838464531677564910338508530390755868653608001069240819202696418791661279049028249642856762736203529969886308048521420537928715016447260650556293588293511951775915053158133587464929837263858836721142492230920159918046249701234662020976489728676547444390498504447012018048126174535984207107202576539856535417044078094854020454133371851455510293330185968370481321572024264001177110977291448334190972852728635186672726892870386781690550842687235975158238898771442563750634682571208585677899138299869863407865162627832762813767597856781833787954486102627388411388525100000434353133032469944029024885414356716033433664196494601227821084823229856507655854433453713776793193012777356242501527793182398734152853038120446125984736608793049576034428514577130175537862860866391281165560150105919296879400753319204925183955684189377234303375131601126124082366271914658234856439219483686819308241143680057696577725024844881896353497996976677986996282283369900551811521979112986166094031515572551806903506465503273478160659459455701589155866555410769858349968161170357878727982803525233050473185419340393817022069118986945694227059997919552370941168698086872675892934459969859239848980922587811890052247138291770281578100370568052404983579619448830294573016604766228382476332075879997994911994802439931089562859702100997756610811434960402684560248264028850648548222397959234311591991276275857224702656087748226320734617287970851856597373677465774405496882398545575346091623007699345354548130211629456612111810788723833532934194334525307259958436025681296614327926479638229957454564155664339984080902906508238704460105628259995368040345763739798803278193869146842668134884495463611990570131239793833323622615595875077996742894920513661758331605781467035791382346504337736420825195417601045287768083320224612493000258183411120760260299361083290423815726418716738506626656132006580760861325931231873199108007793178203814649301369444524159084406070174598780988425172712718161480085697307030070635196384437851565162085779865245974526843583014192769757781229840560758084344806045382775553281583261486670519226966595593870451190679857921924386974423297147255172119208812024198009817137764004399589460028697555020243289356954715932913511203848174025025754359852979426159189440899992509528224496947284332943870159402091007745770589466437805890253332301613757203883625010016743320119570506220311198349652425435740844721825010969136388552384084235656716386622780801670068271961303038612457970690505980118769896377790959191474364357250156021974395755013953734220733124650253440889246703903373746969728150084892009024746883318276702437265741157612455968439717629765275667078312981614041997883641407027827702320081926749276028359645605547585734238680494308978032000787558668232079296704157147351974152987176050510032926915858234988832209101078533811140258815246605484498539269531907504959888693097042977281414393656144365165879757417647068367000894245482263029191686939868058678901038322877378452719135231299039690403617673138173422860803126614414827401256536783227699104502048063184188715585556191545756557300525295944918604584855105397649242737110845613608865686359584389226003157851705681709068692368513688058004413059478306632885562105243622027124517673309802964101983826084418126772731677183206809395705411649762348831579980500081926707460567065974570602003385537864913200323450117170388610884964923466714510584231854586420395510566265382180627679652254291921907999625807082297898500853445213493654428400083535066059581758401053862957074287607147814987450326685534784157440865593525007986255172925758020499350260797381321037139705729082985671467919404966501035947732466918448199195850094392985931981586086964460064939685442731864460560020053512924481838810328239524983113382198531874753190848720198439336578166454111162361456941714430972907694500157113439344437917149222461712816178208014547485279249649302656636990464942819337940471800923901963886136190336535434923716870722872782853844310767216367931271658889126815933177932243033808250289347957689147149365034093716135738211940617759271036512299167963452767141154702481722720209911933342437993689356396581008668595663322264851838970472189772400806627928803673656498342463896158890721671413835056764897370164151008337906328827182089819212029732218900527376435374665680858041021327923163908626394904539193336996169259488668648784443799197283058516628416050749295736893951677096675449434278074082422236946625316085800459362906300221071060077663133765484564118424605424355832376629238454457237994969055325949631264467354871084819478312396680895260548015646705591228469028107841849002428294841987929942672102374766108111100352248735415940648291695071516119183132655478434902529811265611147918700713973493230914583285894919440839566289380409785634310281007074610116417480296205135770673621666069762912090444902995059551213166490751866749193553147538532291398412992440615647135281347937841845633662876769432282638909798432808665360448296616832598459092733547480674786470039152671031170167802373979669843879969214062935659830036335757363640734370762671742372749184473599527508533472343314858767989234575204591646735491821109651746171714955362053840048417112932302356434813869233188291102049475801525270968665474906066116702519753613847197713809770063619308798711112424238179373667937217047211206180691050470545284938617666107677245370009878522354348965829471898065363569537683920578227553755880803312121728928941711692805322767598304660264716557111942237592772003941495914041053286790958003395144504126083573786157306254658797354878498346455636088997698959078907055864861126699465366670021506608555361828821276975280817115277298645500617705768892410114755478611581024672693059965952420332251166229438083988813280370482510730215550260523798162420082934741854597691610422862208181741450685508957327375323218613241886377225558796571892789808674483068421783412171235313420425128523693617403285399576012294649054288318828409928803495281185526512189256267000272306381870490696246421335265817756690197445441040686481905811335654982019278090279707661832790517076781821792409656882178299731597333181062237348636359574035734945735700713370216842985730107701073890575963963927268118733054440303824531516632165471099501116669611311780985153517201865909156174029337038830101795063710283255599564305270108760830799929281600437390285063731352234198455089158547277080018617553171281099265882177279681575586936849654534968380042993634460628383378133484030703907006716032862254040187966525423839427558017500286068555338251691687455750771770672714765644928171657272913885120699227141888949906104266514555010543266971147505925447320368816020445245978939600856909770408283727433734037960851055527345976131773593849104490893004922987508843242132495140605477587101080312923745081904662729060530053508520647758494257748501425456150060878799022067494949243410135226604989997127344412786710170183415044547702827787485117992812163342142212636134906210903321097543735800056257947732417481939726795266139433121533901998693580513251493126318848211689886474777978496864286637996654726390842203149930368744557655468013648219383656987992859372923126827816016325620388591035972856554420776558814257980254342714596501611626288636689430710903353878756343636414323479862675030259292686299077350214706720097281755080396315211108608003687420049060323189522419634190048532726062201672767718122281119418304231089089112594495388779103965322616161499298804557175455612057928082454426269344028412898858221973593049807743869518868800986241821121961178245055492215629560648711554873670506593661901191861534946657276928736954504602091942922952236584348119488161040644798433015244041697279129528175864016212439883924407959293109347398814703416287684829922041364381503188680294275959715547066006743866411781340806505051479797454854531372152761847281041825402977339572943489154941472712973352230757441643027022805707126439932612847570962281600608388791626728784599205007524815244561021167397734402076273375968237291891996227791213587946225174193679781599720241339467201661088641824074422725060698102308949469189360393474955473757097779057779709566114923456602694299207433023438839857574840119857216746142170638106225260358041354891415777949762756392132985729033536544042309595317109033394001257461532173825117273790778312044893939926867340725497604991496204089871953920469351467202573174661549192736109803760594974208524423601041282942595391871119576544228798442297546127290010864368047641785856023832300482072836380805891280928454293917087188034711965389094568569334557376811057101177073196176746353946810694092516876686040005784944097659857964146168435623416673270337910451789682271048207443900335877642158865641180833676063670707163143441199242773727730090793661044370144868257900975033060206870133021908277947523853364319003754431091571413891870759224060986033060110927349195358747135179310250443290618627019549816877651135929811953064976917362631685400432683120311454660875242917796121488495784446529938192183687589264077464202853181510993144976872891772340895556236112454084141290456796773497744961084413917868759238362075974121537631457998371169781113985142786774722669801349260780697847148261173074896882482838594081867741582420900130720491119092180299809007598568622058118320337475314883465295261188727359482454193168314623139851282425649572537142493582970776516982579709474964770941004180751633820289174505464801196886358541921421244159250075319880713162532001821856340636509325108111940025912503199952228767891629676883150678245066210724786503606017669642385177030248524315464863790985686107177915060241850866777534303626176950065119124620698521996764090304445527311351221535710587260922803364870591889243066221710901429901525174551883900583830711445239388482834202987250298860291275118349941565287566530315769837067954151359877607654047695160871870876017492786123989607527047773609578669231388012987477133256493614055509015510361593272624482573567043401001882518266861832354844485400342693178049494245558366614834292967057022176320871960358179395210726992163331974877243326815509309042626030175740282634277522717212492968531886276124677176351675626576496395182252108648338059194959466411385665628216464607251662936591012874759474322649281524265918023607450932972333752908219298974466911929307848358603676463005487822771995517710298674530661224113979959943620340471435477333782289550562556238899591475800970744722399558768063414371936839794996377334156180487547428571710359330624347130001325349346807334385894648105472821722539624913840433642708982520116917788839396365929377374079337317526108112714541925958054508793171947355311589606292694174927371076601350529812537193085872530063177799374551078945078971121618147967305358933946189282815823995171908283280268537480743961423622159732362070493977759191582176181435564893487108867664059075494744046149978731620139674209466288389069908361302866045131136446539874593209920194528481267081036495324312300362422409657488520129951700622465278202897654847357422851993592513840071812414763760101850125478263263641562639738993867376244630802571734526179669341790105940982399726738122969623784520698011871776601481249002076574351576853085740938477783516948005471805001207902084437278916434165060959917042551812811645408180824159484027081809281432529163146002888769482562875979449316366598297130780106197854401923610714591786664900496398493392834554619895788555856526616377957231951607478192759923253563685323993774665731588555289352327273765515870039209949071168074648213213548783271718819642705028864653024932052670877589450058807609909210650978266202997661320719369965898583212234666062699722013315473015446930818300600029783374291944152383575361352059618859432938450094045410840798493726458628603963142554370491521581217890613558240420890363516925331251085056530950139367853673204406656557633453029582298497006032019069885654086328246426005844087731525654474117284001687548748456226878719631507808188100431860857692911030562470800998188834536951785773622609984400567098643894032059545527762342204642589625372326446240508193032541106881621309547616598054258220306760651425657430588316699904479645071706350528754963092359778649082644572782353987267967267007262249995749439914529021365878171425347583234139962982514489473939390582440342876226166710856947126194475117957259442547417011382556122816392424203942696658881061506202481619426275456831606023086347443372776723751828027155228519692733758014113678182139407638209568614170915809967074852168382475057245246526155954322977846947659767666625794711924972799106738983563829326687113587048331204379793713758110506784843543047430623825453843324816413326043593552594317664256375357398251069070086033312795038714284639861601576957137390043413051089522049711261621744501577588830197129350984348725971999662102506651283674922358171678821834317350624010909226710618243619257128910059236375368197597179565585010464987996938882119725995165768849467514108194138502178653288049435850107677792195214190998502934436257081682144451530108593691013673377244289086604980081035229083736915306955191856786921492681275821078239757300718997725259359483170495414156412438583429390687386702410627922210714630727397209271943614893857324083434814852095545280772394681775266655750098582834298780753688575571740664975139627765213393470914733330297128507921934411805845005207478567329020952322246582423851670983044855091115784364478852283383207821958400524463162737014695455413180500883709861240052042671843883628118881248049987067659101932558360261390550296526636611930471303822753661103997489970255892064446803870186090455236562100950329461368462299865616324685498286610156214044428084955268010123998227022581221276075561662418001258786096089255173951893100160431966773680549964362737362683865827379674750651984102971032178881408981083398731651962421797663581435312238923546311556793329305027477236169299827046267681587531960178411179334027171824933053037163029573171474550263295590762782969523311835399933895054306060580134798144667699529209292255173752150868251103361665720442128356246772909849445318132278106785990571853685456761317850589340534134663866662252205851312815661873207419823713578803965687899388434696033097887323703504255811645197648951791017738124504688150470800693015260403693281833861653639542342670337211654294712173835109608750107226438829787704897598568719881405025059770602666664144170401404835201980982794536689321161204049363003807859520444580516858803716114307637586835409888367031695558612498242781458212104498594142693229986568663206690213297310560264832178073811475186494477718859001718258631553744172005802247619432461804315084986080214718969302542211652222479388362575964387673008546606554954083008542981076599024848922352478799900420821463999955566266387399032987123256004156671527656424136409720615699680771301051502498865221704200998058110303279019224657247735310744387294825619592425481166643864655713126279195853768197930649896600186374230504786154029436067483742975338506046145195735975890914688260999706228185588453338584283799134111191544332039444336240819385642321964957386543095312179884673375830945698118486178765835353874967532444510820620293446368519075105375120930717621615795376815301557986574120224709621577513469028295907044526339305863150549504808137197595794117785394040765243634057329042212343100976194005216783174568522144605501530118910289715179605970390973394275927932525486282679811159102003987214376298999266731889098077578529213967198297426485071438004424964629935083016343721519027426242372184785864957550444191494252060803320862681725728310747242475411419668560742525531230981136554987704139484256205416319659074915501986184499029211294440790720274124606082405007598173419248718991860771532828525756068679690402358766867652801029319419391469500944767672248253648832959777083698680590328867672187049361079184054728234318912473994191557068596767299405772397694398461584986257184409103907484945617267866235348717445204764792046331494451160847142977246771396683636586298690152494098142656200423758694999763826286656512578849213124373822262795615620923121907937283996567964893346064660663615393291194918711136527451932877680569700760987312915682438911543643506687131635234636452736939813402119133265992678375122670908153779989564642025926973108609968275435641679914910753191857180343185354564210075189051247868288952143807819705320958005130215253709793407241875294899539210104923261050095403750261089310986281966183400210625031194444832471317278143527089012560791189484895668132241257377860387157695301303678891487853236566529012793489170810275825337074008021754607992738149186898201200080321401778064647484247803407420439158311210055432265668409387977419174898946127465548389602939868856050693115617569446013398592843971318503328267899546095258591310701981373909742733980539023763939139053571771204703908918340446345278012928900126209041629830365514156734693046870057188358771049364800365966635702989422667054588212343929852080065668098187939933782040924833207203554964760801858512449334551799125859816262026292669196627554844765652214191543499757827978818477022946780654575270880464483859626160566501083481919615598832400875203148044964666490850846414889610873763653876240465748301572743051755481967720651149247131443603073237309633403898668917566873195370459348321209885148890890994665373325707492357151145015964222993572582291237592053205709691775808291091591298206070821351534941835325869417501253978426784556222418556650463443760221946709052890748293188175292247651148637938720784244274633512120958170536498203155321713866031294914111993757227729223769460053515031838819717505538976473806554250411372572222669330700612322583295485592383505064956186444313662017054400379316709389722213983144748611657614307518102664882188621688180977284453865555083438695499788330474271797959503463316598563218965161333077838132267393504190415591913685717516176448891528311859078118472061346290712385214089788910611967597493369701954374375108409264354490211026689884861845697292822112985563505987956461426554412107906470245135035423795228265352200500604194097117957913604522590225433577923335030259454935360214526005356081860627407770375663622370691225478637063118202210716479596327238008495255226442771327468868920604540312485550778345685660967674708460354482779607133327659803898038212579656853557568740106311688360825913080146271309925910990566439640529453619860488729209653011894987610204108744019805301731946264912132920134653716740798292562568868531093915797251358621914475230120492657093516227737850718426790147231689276576669801071486104325245921599643486088109976519252974127376467185916914864238754447688899511273656649561310105541932332000087558689216856749563609473526107222573394497734476300912652395735885262301676670389356288808716393642195772355592397665297635239625248526895545466147869647909700366689827763352623748212423776607476036124325879666331123612636529043846337225473150577888352048977239801490605239437627435452713761059413457463288705076627058238365701572717723936964659581996964875754956010801193953406607982552961386881726418150447647656429701365298645786086745272185071261289083375525563213283005996216188703485119657948948759764272520502818543441950796478999134439883330285566513394382587858563774538522408034119060792292229698151838536125458161300472887765719625171204181166992753053136261006716497223469241029539021616622367497773662983521436106733652425863162885476247966891008969534893845888706348426079842665723187012286329780870205515750853014145200863782903394257885714698328385631260025203559432350604878916283678526880460381470073670587209563047515137595020865100138375105124461812177540776426673869241728511666722445612796241603268044252207579671184705268168944463933368849687190462632021553663983716281778108463800849739817727711673872089729849792095401839803118489849881064640643117544335160651701371867146822888544980674527572607491790841226237623033672757985440430373607259605493144068113848955810773844949889483624483693265005423451109952295772391733011189988896168822090544569696774483273260825776856645165211130485136365480837335574667850716091769066528788545442524256319930452105621811252683968429353964251942756301986644838839538801466461746515384331433150162553572130806309772838623848086353935823368438143259062000474529052145063183887178373931097453508975117881258373403636148033882404881968946275499438954144631754385028114731950784958659624050198851560812090599793537702430992972631843704747251976239648097099477460319152878344787564034018490116033352240258409713312549973086760772078453570027535455093280470984266966082648869954426586648310039365253425307331191385200997521639136133360923231147223572405687337904975272698831643889783243279369848224058449844024897134357916677153740721501465216446181360319332498659339139208275381704762215372023098677470996049019031806434214827737388838431336905629632842953141475454979755792297673529185235896796961110658591285425888485835448411996500226323567607325559287026222444377940233418232472421129956601634325555345169149129574002443023772498516006524434787509067528809472956631446143452301891414645884691036105354774341700646871013806189584370860079498488490549876556984208716595985138445841517992380827658988893571082466212359544269163961475484890045706950146656681375405706357316846130420523036713719369370217472864313704897032050222209232404863154813528589770225261485558071439836340210672064142581141912736596115038137381721629174579641143961533392184114019611625969879663705282486862448231622607268453330118573602924622151993000787118836953898553966197877546841968457560020120982300679902741100083610048119430118498052520172060238276620648776075959769255039500542870015514955570668788229566532624680863320665357709759119293731389601593042161009970000162209051512622521994271233048192424308995067306740397625556311193496560892046297021079087240874897336685513413628492314203361531188066084709454731018270719776886933428680728982835447977529655197839575474401280977606393546138586098776405040647981747941489573137201944847956649918864466076167827411289138888815610361518863740358592475767372124268947695784260702931143858279156550531553544510028327720581781944807183492690519469098959095377177040668080002258366059099901325252177100536829156069995880963954482757329176229654551589637058535518049881339560170475404655211022888945707104090770411475226490219783758338341764927718920829802492771584747684854548482752353075654437177059296927066031492229189169798881127510391413270115127253646206763670975489858474486748275238345585375566329666697905645813934860529756180814169935036587405699053456051242385182777371170398445493783395866259088606717912483481077756016433334091718860979652652347744765384526291715112974699112953465259657020341588710172281708895533558926258934373859521400877922136395387546724505004946258532625794315058610252712067071396703145873871780600753135146595075282081053022025006959402736066603581617221317841102018455313464081267646940230649978333805951902011847222704857169810384072581779449814045887038550948298056495648759273077416763101057481253458857697804204312666576740169552134599066533090205042143638380721264443595981515883131897516821744605278866978072803197386475252088268263666225145327843832236544081212994369268074000374018661364525320512196909242314942344648112759356496800791046944464141033506403473162819542169808127091172828478624886634484536519706077847495564630436667800314948313627882263104417898457918113807482516019995852920676556400126427259343800475129886478122239096665654135546553967239173697211017703874915421397436403264470233228204950029346257738562830542475065066800665020368276008771303342084070280884734244219363920703672306808947088286275015063308041632254944643933809412751589016740873670774625396061473448681072458352126451364271770980052486467820037722530366833062789134690601331529577727745110982520047522141027712614915636847799546963215409597002197614525674944323336825512299512495780597163917286726806696249056574213127082344967829483420587171505748360662425301213785393272891945366522174408009534323715477000613574041343599514599192404752555912991590565104685259551768874531199689344052042001360901194603235994250281587097851008334644408372614604136596867338078335951115504975335954513667116662478953007342728274742402019628392029042738757913333869413306998596418865071585620804246874904949042963554232372972554360741906762175420850354533354136351344554891480179936240055507906203862731908608337949345915110100299925328291510906990646377429635717014021301833582400218546064868329102615794822824526402478497358897867394534895882169899636692886826677950802865103800411093358072001907228774595470371418871134493997001485191421615933102112374471232507511298297536202253282932379106572432808801547572970586880271890023005444521799056746861315481467746872770260617353429070185989317309148886094658688725744876440585878387631806665454065484103530711448160403188951570741027732380059541411939087420591707525526528001349065763356373586969095922488697149008265070107049146876988016642707505043903868384718001257564006260443285943037616155969846269689712209539484380683679474776175345421694075798373568256564465237579465767001508028533545364935769747866565382785724710676834341775067664293410530765629545316027302382277247917028389837943170469511307148228946008129764312191408308511628251991377544883227816873964575990486459198192307081228226745237323696664176342148094895066585025084551645607465269695897937499342611397340349640236737027320738175779302550223805542530767672846568919611687374497292945134594970285479770817519962858875874212048021443075616740744566422444739790026407872010401307484148859769031669109944025938250346422881727399413964329665646396672538728941754613074799560530767156985568515738377743787334454184919282292817874005620759617583618661297403693146559676361969830503661157880157143384402791040776818844138802929899715663281013537893630037115985379190760422254962233125503139748313176718164792290913927321020565074389899563008446338701250551466329537797260086610655040296679409991953852748772201505374914141797282341220544517823921160859791046910184151409080810928159820667209467397665243284374634784584726950005371223090785008009282503094416436636903473847678170703139174935784780859232265595490057698722693481345399540624797793990733829366068649557432668451142533136194513499614974129610808952589790145464576976567542113741110149767579875123684016042178476360950742662128157068700414749131980919383554076285694476797783983321324880346371733987314811025684306861674423996524703428458984039359994955868623207190798667110906841546247546912136369421377523763513468815090206113642752831593036635078266950175408279234668495372870358467972845411887035637033831743614815028775049854245149229657835364184092104020947813551877217248048525806582428185222972440174902339738134401501773274429424278069878658423573048513693686439737932189506694334178003789062631567883366898814112509151086521788782729490882923619825526143049854455940652247408954982194793861030245937436068019652104762942547347449285950285961020967583826480322177311217276761690159345354951240806441781122298237193489646461872675359529051797850889956046878916126915857463852696218170544702531149763111899028357530896697460483510020374494276933685856024299316463784642863374827170572157759607170183132754241201063530735201516089016513186528717373168756602293688918709414356001260104872023599372029176057981943913836812193992833616532891039883529348293515757114218889495792023034721645356350447367594349939816569128975728874089929128137735023431404770565375578145949735389978110492646737180709644962548533640491465410820420814410846430894268127820343329664749305126358779528345559391403879977458504278267553076070812402838558030108017662698887286415888371014008296982434551274767623754183292380937666258217751710395510639222042287831281200652342660666548672052429086201416447135565002099536296983922022776978421366739205446305864925704674605396656528796104360467534490943124077905891244058677121463998327976375765474931804618080655180593834122695411602889817061903946857755923855001640872625168761448713880033408370256946507133023487985191674556907988769683282797004194842639999164742082832130752611017316512795749068760527851899964517028154349074425592598122432384884561388270252078397730705434623657917298226456433220086005992261164212458952938186318534374588985893104773498089171055386371626403345698409107442735504130452703509724038712514598820530316740114554223270447573597651879219846850219151999605607649622421890363847035729981035624997181765493146704220618154491492930538896461157469339231355740704844788174954106433416476611657032283754770350502402901435834017370469592724231448693106693436653373505345661517575994761501656983191882656304488697644665639033721327862762595352096546470005417964577989735289943147550729186043823191693234575362722644458879954956692346428850482817126607020123064182779252612518351298388303379288008193650245095391237650881570751512412928857131990664152011231756582939285409907626320671159503113426948616334799002361112281634124785130982639734623633980412924346814458076576372282570685372431115574458556891911700990554489018706760981391258768535173142879559023284742293759466314112739857661885173318202699539183587628222218086752718335300876702619357223703606404557455567631189224669043034066963828735085930472094343752995355195188557293931448318273939475038537546295666728903894632379536520579975928164012319957154113052591802144085458717187157003646345680558284670067924057201222291430989470051380823494588825688510648084723877174885132514743359564672423006749366913976419874248505985646248454221052233654190224925536811540928202369977963918585191887597035208952453491722697382694237662562712045627524758335194113310349721891823367362158986322686902433928702602063380773687865755699465199643146000694565954918600043137289372256553483699958043864690159320023645923479920692209182079234246604099537911955985306852603571391747402232300451382428002026289896660928325088180748851318750837038622621197745769257449194130888052520222135033452049748281129901731081735479501934957580465598557988859320361968516961391787323229010381825595357868558085281721028199300511166739516545241010123040229601567776427669275634389648316937783393464139043111190592586603579005083075873477681304932210394900046926151350133349055245339796070499074004124263923903444097879107557146074279193263200658937784813705348541005466229770708794792634844589815633607065327000462090329795919429706027976521542681572421786452844731747826963137206889891497492570114915550586988454055946998738151717893874565566185926515582580074256220735610630471954614241132010789277424142240873805107364363664753232199253051464471106476174067171393652347272576290946696525905773653079791159469397236710847121691943180370006766150026495776628516947870752323776420017701888523642650554017281773364899381855850936234853594041557150851055962908579525954825655042707047051737483685107667767839607890358872318776764664620140594165144752188942388166614628747686821102649193832568501421526904219874181551586954069214553483789586287051293544927372326961086850593791997918994036340829566134321926240798381086171870106737248916508672349093335951758105344339457707670569673647525372706694728300637118985246676837783023412101702066750696817599661307930002227379381123932206392995262868851712401086760075671523012197025970274676523372845267210019818585273203536434968589623978382111945216653189991008863364057014388465258719687301455976444056541459827838552897795088901852784709834065185038840578342986838210206477985463884865286663329891949227256313359643945551621823078457215261156786144181669770053294716833718153830153663915432196010758611345870572042542946582446427320611519247942117006600432518307427774160970926611603864898317532762855447605030342288331757343788202242689464419874237277493681170659293163483244105645490365508937407759373742649695834633998271945399151652285894930604229816383252232844019437537975472234957748483734502168914571365407534371987814693983114536224006867234321876697822808829873504984344878969573598244613373756260600094140107812145870453601859389732279141937804828732697101484017218301580525794502080330124512349019963596482815535042620177140705338085847593085482173302771858807096136792481385140828291398804388242689986210613874036821339712050217471864101897437179504715424513886327187422941041629167198560192487913160863943398686326381910150299641420945824577455449903182791213315599925713941445766031442289033919603529277109435372883293521185854864963510831972189229123941163811945863805949612233382697133810297041352037559329788769079673317630000388184505443893594536609736931383037704420765861476900902395034344403592812342320201967949537713935644830945168223580869632335783808854483151176995277684037236130647222231174012889067472049756300200644051489121055785367818042147873850852945307202073475838755580742123931963775329145834160186209966800241898761154084506425272083472551124368265564999336255392352890026808144316148346474726864844595152062667297293168740198134395204516252069313986589559283245321492315897356217499413886245474821029489789928545854918450712570571754989942089567336943774442883640830303880718199142919462479211710993044417398437821036289863585341614156283920241220980937871568652842319276889986609636106075554510273575559419106264248152711746711855108755771564322409827910429248215920262023023500463560593319991198317874092611130162439666037633273158014422897632024577103282746317611920994405657985086622536872489288812151546228520635475879169890983458480865006902147254950425836181102456464919691822074149464064883278314379421606367699297413082050246013849985274343604979226911579022778758816018549260195917621869803792952708504147251259627344408778959574209891947546728589958617051603476330738162186588181847548267775169903343902089084502149038697683585910354730794289959110219002832464862652174420771360457649868893809042977735957184968832567948238549053868054964839615725159154937286464336176274459073260384741484193830712881361213054182808423710046944638961928809652161598269290916062743658172545325859174029617303020548823291803516719339307268987055562604941444257159071551999332162434116568769932475359367948384547991170192307167703556845861154799637141127873671716373807262184947693707665490983843210601028264022528781179355674855370094258051248704927229307603850879774100476184170119369096211047644398021074711385017822913690885817068381554006526100912040529028798086133576897786326884871709158675626258829508400329700578455557514950957106552393526875901559056613343899503674644243413075235710057328493002249751326629734557080642009126053478325318086744263937895104083866636126026675688720973676404154224620361368683081794639874866780399232399123564923502006390825192558976592586239185480725026342660298580888980027000046431527644181544320351033723269942673762205708024911163882151658250558787288168016803131415162397061779748748362752451626308822396544595825493467924693678925355413891720759195888626979465764891608492068640214725713340915415400729161272650148823437321980301697869052421619593932031174703543395101950599909361556834583568524857846244060621308374637838303154160473440819142374354592145152068623030613635234376799235327709570020255100676712925497687312687429632782236981474578122982678137440135423453486494810434215470440698387990305781829257589686270281768608955256777026553572259600540967636824081348979177577357138465875905696877140556527682862276356944388566962797723935243016398631891152693364720804758203540069120551392406343337438496877896310367691998286446774990950616225426172595511717446959701095279881660705126074671261741268515103005425441571512916189273300589696489386205762818427844176713468620662006301258741980566591634279154879089413566924216247246039358962202468599071258821576363101911394311779282774759042200738162349885018033005158750114787127065006257505170846852025435934420722420278299579271853937174473098710254037948089173518294055720955590790742210182855956859200340237836652019564448871570194290557189592763045971056044519936567777832893416030741851117112437569436006069540577141686707162061437339294831785314089080223012227883377150672475535461256451506689462764418440497276084757031840379231118682973616767182993495634475899539749562696065132755033794309577230263616562411724207467493262818032816989491074641266254387142511029444414902728118016571396859296498081527192623583711234396106573387688860923065330534661687167461414652789556852611266132015904899796584495534004565932943180837781079817100639772933173052252947261862086363744121805254600568161461754751992176068094766865705468197977577828147741448109945230929890990585795129845622342081444402789763398618088052035335051970551572410292527754093047466970505332573397602990879855871126662519218374742666796818981583501089492605243169917327780433735127118545723802155757237116103974221311926426348151586987894754640411397417237916325598389701213695986235815348909763346251994750275675454079522094403925848057692300923413247034584044809045525662549902496569442163791217869164865198074636583755666099294105368777321047164064293000861386556920938625118968928385545668822750866593028802306030125564110107694729252429080634968415696648840670846586908798907159111783512993722243383989564837955651619244478479978186309123535606513659524695126080295258206479144202042487490443584704948747351035722544863244469765994141761397467618720226702339530531648502469087016920032885952826812220114703370895299909273044987446638026891162648895091467377262098167371355143643673514959587093484728759403546034632262312521990889925403499449967611893214677083769679322055617157853176736317263033854373635851027927282469339853134920674382523455192676803728564265039125751879044226361506322807514318022589220866273620704195994121169621379265558035665668402840473653845672539824635327592549003568579140116358572031617255887211317187474974474858620753254780066954771128552191211605105855921438486125769471607971445340020026656070722943366090086449917146937321625063034848609542120521621926799646030372088592904187167827008434915537665980549613444425050672604910015141050630440418285396214348137543939496709950736541102728338885186873237699369433548107924107207897967988211419812123241742854841042560663757171471167604512456004347650587004680361710015212819035221966370261708126040388765057115044243836063380509193480626242833962027643671531014300266859630578088775359911515821221964687836644386986877901223502801208025808815436328965841224062414192667633759229668247645092045314000024144448680911929032734702075929421265862474477153982587981635500881275875914628586062892521878917165841260651998962673004082549180248310821261538712621667327338795719508873529009651721423068216537304850305263434268639656875614749412978772358044022047472487597230705631522091037868552505907268448284098569882450632738995536315160784389877269886237412511073851052137171925695301496398245720496837432984965280788549497433861519751938212761692558410499923479967348736019770247335015453772520807456427737640797188606532052897035523385321825675649805552876793986932303725498999025917462578177669976463259233729807475379291715846698421479159292403342608042482609491492357086267125916421146824012887944803259139195851474809230784036952754044941864039832573520732735193368506134244159085216638116769759723880476603293976315709071889486354926168866828151528248044414694085408491706331963660865807472991638732824831030209082801004574295744077616804153696665711419501477893622948026007535754882049793312624855376314906670926083314655247306060031989084610491880441187679740171814713828074585006302271429045800259653327155073030808617641757795831170230525019934530619692232915659941046344023032482679915153476902765476043853596105033530203080848565851743121700725146803282119291654708305270980755026351764761543663873040419732352254994261371108707752893413704098794561271581132809299059853966300032869645564192763995509285575307531103420350481785476459352505512603756232911064426890392046810403803347581694443495190221046727153346918671935081117934817031977974298303967878676626189304363265449637199630392597422324262529782391989800073519910604575125758080162824728721548014085185394168220061673522538093111152321822577176096490887482773504337376961251286319348015192082131616449793647147115932223100321101324745008769884772277544535618771707613177097642857559256963173958916225861765489244516775574263038102020219474782050585335553212124046589076916245463649673100778024026235720836584434086891265039602987117160126938099237838882333998488089103113288058967683735733028326650686851477842011922778070622885767640331488444877013566491564099944153032456969164925291355537576540817599777878099604970778601726979797243985518818492533218542521846512413755354121564873673348653326496814102541211860153336569572322485905762655558255412782203888492831558554025667488752437517565032093904218908535155629575309361906949751303414321550176704171003087144026224443381514327784348209828003430034525295178000448232211668545404342071520706933928759914395608341647006076290966619443591003806907857723956545991473023665705102254695302415628706729921894531829699368184090583087148019544071192058946443994123848316412724270734098688564910535519657053361200743994205255422441043986742092728367315300013686398158351605989893115643361374782814931607510599467547632814100949925740104935672569213809081731751692716999428994057882670477332488854689531737519330558561339611037912470639192936312285616549003247169190105449711211541981022548245668163750102641929731545629838002111317469132969946912380788089862758666284478181426360220344835039464067199730079836548308738519670851206171189388971411025353415091224298798812857298961107170571403475375579203201474408529425475560122182500250056548426409757451276523515874991680875694256669862434057244896960685789785108567052575593406473519301227844643485925571375416039186539809808128461313374039880723953258864073011643147872023059778195598860676671283440203518338663344464386719310493622965531302350288057638983087165206671547959964761423258763404444840836566446853926068371448223971041067481454295569155460397022143911640050422557461259796933906873670302152627276481512581256875046792876597127573997617056459537707164919174321329690609877195961993838710658141891723393779639568102963827070737817070015199629625513918670214256831841318225277841751437083335653489482789059245839727003893577719513688016705902159155473141594533728066902357772746959590006191013918962640361456839334979151365359356821331978694985071007502257113954694187907558012471014306448752072150391754149967375072217490675263819023614678423565074621019444807958782611182418196429521921981299436526681187249571890539158794537512197651080042240457766215616806560036637557515422014798573195226773060040895500900883588012093717344850865438694072595061888641867686087127597428807673355431894144872570618453866233189266718047083581943715231962257949762285576411196779382703588977266532469604038302325831821898135473138949127833280897429219004576376002656289737837299344535465961837930654036931415979007166674511277351350882416987582480331842682946036937026441359674327105358410681144034795140015447847978954100714953356954458481069593584480684908117353444607417071049206650647266940342765375145111406887057975194058885554500434754342476913859105505768764340872484236138412168865441957126189171702672478361920188225730319832346672149005683911706179992759808234268053388516263718161780617755766234426875701352603086716570744325676853034272689299184128325653434981480543976049084014349506748410350017942313459182806071141818986549848503646313642585180973847025998954533697471819021281775121392266325967890228728380825644703954013891672925789665855379941589416325053140833442299969665894382323299783130729586837128812248032287968253263067207398969595729803715808669314420612853801165309326272783228884341826559942891597174583275525107809179696786633741820438814214215955270346276959048079881396292533933097046480593502124635700634765084214620615204534284623503929459852008694734101284299883426817960250806141593966637297841832308260314568472606916439290119792984451004010883727516337904710154673397223288908747468807049084543711284480571455025210267040592615960362881765038912658371505350570349065360527489796735860598437241319067578418183280651204418808131400815032558226778812443570102114067628849895959920566512360698389664807728914981677558296542320912148028662655431371556917303260249701509168785052401534468839949511548927185276916313925295403826786130737845909817566037681408064155233331296258425328300991086602966035905811036790836350973908596132548334298994731347420315830970014334774422622432991622491284040571334668838004832866687725747047705336249965759682928566233309319883154074880687319409675692835005267602726518030288502696821779595776190347819096603929694281791738269997294677987079471015233324086320331645218120014093745788296505578279342826232640838843495387762844355385306850266356179180823370223510958624860236985474650949291648855020066221591670229762973006970081864619529873268382143927673608385306403504942407349713007896749166372021413705907444749853236241090855545529662816042429534363095232634496788913865409582669051657309373233589986900283335936595174182246576597081805503140156745490527436990190382453140897560960695683078584313405287823445243126570213637520373806236914270098840270856973568263095889768854775365767616408719565479072202954302525662366222012253318174636563036640549680551077431658919968359586911647208199050449383536095805973813759162865285079469305696385838160234421849643134297305893494970567924608869083286463567830323289157553480929637011911022517457162914040223780059522599574336769333916730324532523306242434506429584292709189730748430022505263907565333959820851882095742036125866789672734759118230776913250469405131592604478729652180109736128659962810465338482000118012323475035153566083730579093910897647632500595295542975994110486787698128353644519363675820262927161414897731489660126522069974294860698530740066993557181506255962609607474045812840465889407095531519360568836982718350174484001947451737231577931060178003709932620597177941284036409022237417269531754776077302395864848404730572711014171539898463556677432969868298109220843905909725940296970999885489097641787341844099519526834882484480479466826904742390161948679551951645400486840801430555881056974707657263223808239152385070741659032044707627450844674940345247400191992807388465146977928705579898361537882598291858362973752045600268426432941975985462527152218745835555456562037202341069807781164091117637214343596811368645194630661530680574151576284373939778303187858546530740535724455556373113788341903919856498436415540089758844462783733570264438103395927332663899666067561563225942922112567615450465301259657656969498565220713717220936403834941203656219887770010478032169061044965218727073427363815949886691638520629204739554000634250458519460458938808128673475972661885389085880776615446563190664844743668309322828121286414098372404853232413943979512125821373577708121184234033525396973339428773021316544050803108941694401023927959872131298239001318982097574238929623213202850108493682222116224795416270432153674343466989694950674768395792270929306033486053453254387997151477137690127943347823910571958157449525890029682867967953274291889388677966669487708880088233855478068257019437598896669150040168599981967140261133438910794801233235812517797988598772746677508087356560364686451783134855183552441210406464701437745396022103893727643946632010640897926127746866227161816197744721263658562320627051642360856374350695925089513177961029107925866532607274108019309177241011061095852197684697206137143826298423741613177962675034104126327494255722486684648931820418982270016341548399957061670321616714703017878336639595722568271163114870695886558840445962751277249594057243270631314590421507067330709775535350998716667868145245076338528590083147151313320089772559925042579530411347635320957777429046798622740465937611763664899618256970806013971895444475251303573627843622235322037328968042029425657097089642763758360130956294078736187205434257617549952902278684923356804949975799519085096789348373458065190041465660359163878935389188428116628598382006164744802695450429026068175833908163150260455312664597114430062226647656744278627460602248758439422281985001823232895733395929786526751682841236428112679337142808340964755293675555104626078010592491536187763559341826818881954548595596462356994525495229712300934574923095016542455367417051406746334054263301383436041335381342509960504668008227233940140054956085592135592271209981344621930014263395097877508364322323946376860241348546418229729031955909152665155213996383606040937197576676499417814948749846774159484932348073507103903527667933356798829769229097462658239032937561539409750412599511802676382154520634557652176138123148462999719984380405624726998518669595720350274730667820990617336867220187270576301184288494715792851479082504067942182833820720342652362998737349028428000181861589297937600051682192112518090016644658088748142999304089437938173997600617500181185860587833939657617714361018489724125516822212820780408184309041840600368070092583821282173268058041286924079538874189558604040209719986854727349572677267419509078646788547849873383944676981384646468655994735386912555924894261312490193151322113811887615337640828055647662122972327112549564792334480345819216412464196641376698245481866247514511453033089078436391380641579283885681894085390625307276454263289822090054150385557430003339512103643599834700546763141503395213494241513637051230723919919631351320845323797320627787760578291392309597825370864552153159702300147140784010532432054638019832041285651838108009982571186686173866809195664105049554765042275896416604414876438625766200313613629704059651654436800227652812313098389225662027260261273817897722913801356277619523760435012380550054584911065619709673191521589470828614074743484937619644112941725965331842239552225122538779461402041822224124063541059142265746832848477698531684991649335580251398073434733514673252305631336711788334840941480159721791765067874564747096752672030019405363045232494166155283350471533015814630460024587473935640339563045951607178498411279026890733912667260287044137455094514370253389169956155082595529842372520607541926530015598045242514058530454849252044192760388259527244340448280798387357855999649408503897061802737593532269093271060340097961635909608175755646045337107264008189825312018714111855107716091010517489449914761349058154412976007116021071415895550684930318471716335444797349306505391561101156655686186151177233157757213951755354515136749988063014917955416957785604097230098243187574750027015872581397151659203498053573051577397256680313688700270007710940497715282971130509294846065969389072955679906614127793283050345243982138402018595831308545590782328579465182884900268776459345365328263121126518297515396821520586735489431869235785427119898131301639859305755276176084094831329972263621490434526325350784791607021221377821219604388001768901268538402441265837179944782367412256725409033931406776638144415096688034169718216696258893064208377911813881125373495011408960944801562749376978423873806106026383810173545904181260722027387419236521500513737005213014014320937033555199357916297914890971323734800986734870336537799244210036310164485735480076811342389232070403556688704764649541132737733479572991652048350526745231014581669234867965322779956779793169944211100368070293543432462362102165204284978430645558710074820634535782405622009688659919335130247294665181868250229728315472746390137920266325075832558747492833180660858504056059470573405739914284152251236784584017312048939664718316002997054649018017132387175081513054409322686182917129246702032753301113247012150232282575225038697497684850343902884694153292321547032437657932082266680841516067741789631441321805337809715328359009083580451923719816263190971843933838055420082081492052375792323742481207110768207707959446064077234150633806758796210013435203977799611133000029658765304429599756526749683476606472101243917018124571432511966863682869571118400447853399327048861520974052118791233153687804807838926626971720220876338423340478535998085472315889679752023852623008070810052443208743097016755904487654322164604905062487075169712870350661766366530413773451787487244739263969758104113986324943367038432461208572661724931741396981022690776860231608929931668650894178465912177087558144628070120381965776941434817131576706312314727855863052824242384893111662117209245909538215330958266217863798388441875893760241757928220685125050565454582919594834467870902438086138775796279275016462652818088322332589872347390878523074553850519484733432031559018911956413843258337890502547775266506827663820440208006161656701366765179106348030179041449959256077448456725828581551991307768001452957099296812591521563082688252396433042963422179265448165223672346130675841928409238850987455976606038695901948679827651355324434053501429160600253389088947930063113431814268714235974789197114592860658568153837003234047849993669375387552591431669442267691938482133243022738048323859201891305436643078511631970708006397341449634216707701549020926394309519853061860715875877065923851282834624046898911916548539296000210961653908724594750182114649642760875819574050022758437090110805785963025215267108160566698500709159205744998037341523758923385496982664797018299921540611598465591950920206065749410526271740778302739388368519920595979354445379245297107641090322884449175351490026929576373154381924179228447907651326640672329242014220281315949342370310101778743098908450899088924475963055375427581677539724135420855530138399888619493330065024662540975461898393421864546229278114273288561992113340650379592868479169946708604839847456111878133464612187251155837517986248274122049966546873906272420292825890573338658197458253717243740577883461875285472298694397562323719743091208199387927905041364769293620452785719284740977288120131280386646600798126092351332791961014258872518872181182760995561756452627360604637599866485212183875367201808169638387308934737912035532729325576268486486816266463311502226704047997893227168703029253978302543492691901397956041667239937991819970338424298918426384351578297372914403753013862622298453064556444136930297136399094885689640902846715158254748085324667007914156072090653634426979687597818830812654844537578805394643117055280088103186733864589069982051276171059874925077777175080482536490189124827497403667814212072003625442638482529122867790374941517790581705547672587473931161662713793162905878452599639661586613217132280783571183582308258554595156334728199642885818650923092897309189323941106026076072867948546246135362746169117658376431876437905395069107926859837741174434541161248420698642934986138497975033018690627209261343513069289475803255079728983563608387087209106735637381514585702680726558558549418485476276932237639557618083282617458357810883494545148701469733416363993676874287913486592029129305900493189494406092153577195756101807519810531484557797450625919668330428052095157472860766995648794808740172323108801735855782810968178158277048554539870822520114535782591516793134423267308292224107639619124628893562735947872441714231724727570336119666765868477468579335206867012575999243785424588075123067700268279915278804745168237376565929672857890771015751126608131060653281445368128128764759324889401654729681360114459080998303652331019411947379179064234132138387903097735841023287625585794821546187483467934921581865475370693487293937880293933384851634553948538214296133270639238791383355176124773588423490528801407291108075318831295470193931574998943763785221007947567641997910632521278567894450506771173670698249439234730465741893237202054588173138775139769940594816479385471353744816818881196046939434133217496219900383525140682733465957683815496485886983547076677680855113210855665350781203951589029020572147683454232157907656291400849227839051962871289027462979603405981363473831592386269264872416435681561585323646729876979253012175661662288908070219955207883530871828424413812437819928761492109913038499432721058577460848143487638154793782175479308459158926785665757268188427701387824640262034862268210151073539945212247574801355666260140049817563237381538762836282287020976940209320577853864105863477575114032951050682266796958045779510127408051955605992222763417589881324996129201349076393381922514117604891061211211304128405069217834658743527313913729199579382140834606322610968577300916792110642193648122719437397279804245172261406868150326137814024820833714874218046504758607482560213141763247035793981605635779270578954244027870478611381989676943058520977666833325821104248496243801346981009686630741163785681607281150361901884480081680603473326432845078399095466612209994514103308730112223976558406222547387804850984841156209200156045431750498362835411257689428341277330479744571307004728657768683992837600928008952854835045471892671011796368644638589020774051425590862565255414278354209992779582899891084464396487829627055024855928539434833765334941948854135242522016442977935114267304379400792845357854070413594627649928511754197989427228497901153250391309375015276209032972193507707191858340684668685015780080810949016407544839381893672938884508601543212153367870598871166361009492265959595547076715368295426827246783858313351677571378060428913053242432818314276243550501251536697086564001358342875840769027359671951964060173410340943234811760217071480972185026941221892668516634290787104813654794742722427733390348948292714659332694735326587149743878370218623487829280613842664893228520200504617236911541632941878202191307768760105102859740396444432521603866711922003160398009719191941099730786573741658155432356277612865574022009216639823046935294131548410016518197116760623724025834943476319591689477445892688243517151696634396678519795951828697371936363973711519365003505820369066207236816676965644420701829888145539345994429680336784537117111255353229309278350171505592625387217191426211790295829977831082732877773802050939028078274349725606927794524056713331502047523027251940952929462134731372276425951769030245828438749839849640581634169929087201663267084781732838845010114112436510161304606385640591621834607249232298232308381074891949942558020298146719313553512136641268854472349672450211188043985751131865175281558053776366873322165190112707810046511698544604296375322506787801765040655851503337017609053848402404311247893116366959099281507810139725884597383267134144493438339637724387147479026520360139415864083845250489641235550537741560167701627490602672986698595952079616073148903935934138264660398341714521647113345117876690603936765345903153286436387683575398643765087804869835860413395342603198080369313236697014340617741419319633488590581857478756255080210116315884434158350044341075900124769317715341390901254429584514723368561816248309286496793398958012688947247990372818190603220972535592760741943835996146355230790520919107615917793729812465887249103072617768302561414534766056704851123240967490564332209866493959157160351377767763470214821415208578825568271498340810990237372451997030712285340277249131841260647305229063406093844374962951603036432732247166492004285097745994059602273776292007434746759058964878251719039561111639044144702686185638890059960602779489448553637993975130052706413656991849797130067012534999057446710557201968463031896110768782512767659465748188674601415569721299947845764762743505433227248008627130228825864128934756289717424410614321335301187731082106441087925045148017277488487289597335621360876574281281639383706761073794780103293874501560736101410624137725164647518473321395527247389849333980249120917479532776000155872169077109757809147072741453710405900564926561178705012584598637929266778344214983122524533790279203494459230599286286089165631897965006666867148969309276520253368613045029902425713701390899418048707059808190724235945562317313567787534349413771579901448464452865822763075369448251169625295638430857812761029983518458776973159298037161323726777871213902460198536807064802461928848628311235604217659861494783308777205349513777010505157014015483212417598337061622283590325907362798297728887993227147684094108795074806572064958083448073819443994750457340185053064091424533501695478664082994830989707636459403651551971206035719639811137354301023244433854800497429321899102943789523225117322598888066692205097806547603798881731309102652886893427317214110974194575510319722325590224331716355359362309318807410911233325027741984687922110318103928278424581415060805203808633065638380866869444192892608061391695188674538851409579531798084267879327563957676187485329609934368336161388871661970541207641501783474853185582473660059003805517123470081773548450760521112718224598113289252078629318963945806050982941880108045197181716241111809717799981159170571761837269913483730925343442114763806366205506146162577481565520915122646732935235708126697378640714798689670270780822847859341326681946644564930315008470276855794266952971933876077947070488294156875715375187458391225513450388032902003152153565902091132204583210183997576179204258846349890513634898677426666956526995612859089970289538077136182083266657452556984640667517121019111233488292559535239353326746727843321907800939883028692099481634833192514542213670273639277929040014740206918479167821755484130756724129213519216445152296743707128359127608263657854248341927040269107346665511207388779207043253257101744733546227486698600280140625662783785010533209454905488922988899583472901271874330797520878706976670645752468238597538620621400257307597976921027358596784324299600145039022237756055461057156061069120231733766450626050028798296073270834566986990985703575859179592781823563014544797158022250699072571305438335876743160903922757776636325612987275667317858489557868576051758905207057899957998751571875707668720520384949073252606260151394255932097888954886766675419367001444803645965590004147682485854554808919147584701669152267328625844069829606541946897170760441359913847315340420723696185796884641140565234119770918208441992496930007212076255092221357592019160420147915851110741360203979570566921019264500354780819388612700757201048362205352011173367956199564951247023301678100900650125610760982127656419367495353375941710565306995717745521474733323172003576372340920386266588333543736018436096136478938749303272244386175405151921801800080939937075413852193648293831284609864719887263639591253068950842807951604325774704995512471462170850862935743354931260383782415622170061248739866773818418588653787409759450418288529410467605214782238472336115476901999207317208036217109050557827194183550963145332807383596154754611657264062859610859977472448344062409263420348204869093995055882100521497274740454371672436831952903696592960306362914633024221075853819378768639071758998537856049547272206888031409883473633376276838768047617536049371961634351848195504043801185389937177027657158103597211257443070496351887234336290737998433545387301783919119385494915179971175148849354710454755404947744098376814115332876715720838137647542541421836163605478580961669243670939447731449943177812826190429474933948187047865182539223675679675135548693854613449745491012847717653763758190536599218470702782028985577327797706929516748502207936341551510557512648731553614152304229496292549420649855474546061830738331123482813354754603072332087096351432725552109249054073306687975839678294700886505279420743970658867284944573783857510635410844317630443597661863001742238847364340318663122812916144271709017765080034873896493235018851299967511480380166107222504771529968459601984629447019055333642752089673896333645068274641635641945080171878687691264780479290963079291782752813171757968768013493447607640142660866989328232921929977699109104047435784364765329935767716600101993972381780370781806012737936487640288438767096206810707304453314994669852292812615596523709416847378655613252687113928371422708344342845386073925666414606836856017706146071332130196903168459295021366679429562065609283848767414529293980527884317684622301799865911289846748643200917368519913406231488883556153701819992124018154029139190237724088076332428311913852767677221404324426728364154256553179062235137573293731329266900143292933783489963010980433925306382358624234533260548398539800382219474548694285982243344555818049398023032109784992001941326857623571155535873789048450471307758293628042657091979745804324171176427100429303187797103395550905712335193086220045744545609994508183610102447253587734931635222004594554586677573992548901730481877660646936103156642795050261237592467003458518763077215597829392346301133548612861742183690886046709756321682826411916269739794616790930809334335834019846309694211454363128014215435255518418265040476018189618034517607743222058638656127774290668043236067189819883006812357868051385567088850259982157576731364599881607992949041945824749842724808030487581784522199208214138681011404810378861598027249934781059115710114763242823081486601246687569489119922669559027350565225114595201860265329771528667650775259159770306163992739202438886882625661572237862726542600721305066683770823767935516294816424989809614270330896643941067835035209550024406410389306233011820492842215061339063392172062847296162299345558860607564163777173397867787294710493190140218671732247243693175967580141541683769225362155621070246995377303891167439382669129835740627956091410381847157163321575600299708629062286446440678984078581462966702222569451869053632894671955069579472195083847437247747583565095756686051289232324348089867599564362249128277090376242945495471103677695094307516631503014985321735830774873213566537206603131938038309175735693192937013918936265973699140606067958138497536468914179264070371957919921320532764594355742663548372162107031811123281681801192960295860787523418103035491393363416857453042386149230579924907825973013375510116212325657781443494012638965774954963621267847090029946574978292405151223330417335270166912881896211158927362487858597673430414035282176346474749156093487869835188667447432487051250923169226379135520072695836913631833771426191714203521173585176614124075242265057623817804338979981807343898751166772717622948096013596723884378123653871666630848860460907532163021991680756434486369258328577135299385823977115843546113462477046962241578965874826877246471828023049552977552349344188874493730223363779040914773413256547655046425695237893403583608831666141879165658803560904555368010971764462108978985351031744275693299011589732088775086366299665594150087649517429134387190435842143049561047281358418241958764215359242959220469722545684614069154948977276944400367022859208768018058329020576555549572460855347206549448088006227762430679475945018680230455934910467988248335838504030445448772123788399737488074646184152279942985563058049903590114820490836548105587630925888740599464804843345365894031970610203002941195959900522597081770206057934528900144306878628895977323524011430256785423966204100557845588458640794272981942181992696992961880138379673886925497624116803009870932785484352018563547250105974450196524526121302938880197037353175685821488235500723564699655942736510173728894469083706702183358527557944397933550832343057277388736274158416282775966472735131668070438675495610075102175546158487287969714754474419679544974407172577885997976267552001661666946871088840773411893644596227578043631967319800622476036973240290914491018084349871404819318555919533960452751609424984531748126345495803651374213877071949928391886533499610347759814383312909036309429838472362819990341062753313764643850561240492975437468952697822656459148879392928331072824298761099391564196284978365221021889891769304237929781539394184257091442709463788955130532115973770017091445404383922114590811246436737371701282381108897979547869155702465212071560211613259663298232842284888547168664796900585438261135946947227754541979632981981500303560456427704626381602581533340799898771879562137126629860919340007233637010648621362299283454288847668679452421774682812438609317301253001081068977128008348859690729969488461724138186002474295247823856003719264858653714820572779375263868370490474491149615833419648543221158209391414910633646633122267521108948358806909332096546594883411426889193866285681576243872753210629729411033781945112229712844647489719267812215090618361420496344704293823861447567409944658205829217961324635244753195651504742782544437883168279242250626821773344340229100705981122446348531011489752946323298521249563887345394886443369831509815111325290794919201078254169545319780819740015979870268739021323103378076693702638688616683094505871929732172649263223430057285332431524763195246972208818733780262407634090590840913984597983451857707946139538566901726582165680893335055852031759249584814123040090595113248738335555953349737564622509053197217498930351220666688038759588394297991721274750575360316658500971916049453477031120040155396124161356192307904901625375387836647389725039445520561829687465926305948328251712108459730641565539733026754093366895805922470144186188592777416190777040751098474331900762665754915336653463583641512493578396768838962379952950875030625233490916208737241453666519140797216084500918505923788900608767514722725999160817373581393741483365070202000160488537246336567439029243843109890074052818910425947993726844205120289344761688168213992291564100557307617727429923486471227878765576586756164039594144963504116629259425147232777325516463812463528524296536727197502684652857954294795086540964012811050634810583113540556529341763041389732200315990080178905565791844786007324656031621701254487790948310251165776962653117632978743300594000399043546685536268728797132275204008355586996300405355094904078797434987254032575248751750522166641378911146818259918809456856650476795568893019666700053482142967815179955059868334044374194469761046026321900181651903542968373674512774545311996310328543748160326877083085551120086161532062922225195184315847183023824932828549022060308001097133303739793267627607555100876190861893530263263336452293144520612178215075622547559818467074276987862808247131738616409771556761285718689409177036754904022878479841356053810900503275715370634060587045680850064458168150356607094917847807782748229169708189941935553853034043322053101359527431763767984275820606057677495708199469821961629825756138320981554249709101705954413893579142276662240088758966608255244067123309787038457928555711983361511104379108601948172429102182505624977569663287245730564278524979460749908281490419530118918267977184546926613459463131681337649189214236752131560715446400428535861285658874306336015429189085967828286266409049297381588338537332126890922829192763306963690824960741966311366349347846711328642791531099413485439014036952364540856693389225525566481451800804300463811240413776802901588989125305248108541618366124278126671921893974113853372390189247122967669784155946272991037696118044070233676299734433188490568685187748084848398227741967194683410530426048634212511433033447837196560120116577799500787277323971938696256526822034339596423181765340610360393816671923165695788860708336335283700226886099573960779487761507425897944981905011176112227291553314429703312657877150367975794857660900172233321347881860014175135947874813208170678833868503039247193823193444725879954855605390144810607862103348358282401700396899761734270526458228822041573158322406678759252244143000123852183815044141715993269795227945223446338898420282492034178723965158567447848109389944874657610263611757203005401027786426880055025954861069546624793246537160613081929473070961556046106192705923043409960361880114396105231949838736018201502509000966501334171004722123142732554826280783179725600079999593477595457363435490824284609921265872816676376773166632949981324822487708510310465575645459086639609038761418387865782907400600937428601303567754598831154775204351443559989173403373101854306861596265435876417450585636614327906049949029943006955514501151965547734517641862035484074103758118684599208946858960846229812567253731896339992966923394033850061255695654784249606878832598950749792084781948730213723744587995516526291753873954241808754914335392578398624859506766850018724312274379167517898008590471977342920774241441205030249013041165921398097673545605174639425065620466132903879090761926583144624478678257927696337909360509165148839709531261044784644789513267572430352492052356372142174429460403172649664002695068794343264730396788367460535318291278720397093105346666274465728878325843972419861081496914733025477955941244376840786105750525901682948748071360724103927329368837867857374605258225502140518019806076461180817957235184016999338202934115945773995947894220671244970506981955325548439083953248470939548417234875685030213017377691717706500177224891641042567370219647646741819472736285769437144673267120568423602454544020743765919219957403995694590495131686877219045124993154490737179976852357965392798051736161172068165768089674205644864956554495253367635193741338884970194138072260238313060389887102114578234727383532582594031441636499322333610235489951887656676438669881659046834174059428005212392459287605410217670932037783024462636992813993900601081599737601888074625067341621624538358703148868080771712068847137151114625799239544162349830732004525280567080197299113698085493793531026802726162253151405181098151216040529284757281895061897534863699378566299226504275825544849641454642697119145881072981037257038719660405538058405057461250427770743007806936555867470161352287340561101821975022059158495562945982829413164502272587266487465103608406663505975686143375517235990874968954546252444615272047765378726321572078355073811945695122538072743299133550653582908324234687626240165707693544573604108621768090240540478932098199161726255281357009491370039843670130785064119159707360267100198957638249635469571958599239922490917433618705798396632556107842264983166746204283106360964943736168512184059893285433196179462201181615002045365512583349162812548358360087708062351421588374468431012488840878366152769163373994144518500756892067374214642286047964664478954456230604727861396269658012001489344122500286382248028787014738981060562859985010010065746077109503474368820788247044286472626206027992960975933285337833080564779548655025409480596408741014045897787333496546378841154094477942930023701372760429521338815328947776056017466884452714304706863027628264407563286872398179791174269492775862848602850493007641749810204232312948201170553586463499358239441864388030098811937482383338930758663143437958746367494444931850736770890077231888433539488123669092866092003865079170958912222211215920867604245847403961236801250570712372392289428445942106369194151863432455292561051348017934245329638365582491263659605291356673794988942488009257744696521402802220418464762038127734866472774549456160015003986211419910040490270754107607170293234760938892666752542466375448207792840741806574706057937785230761326109155616915009414081777083614621391230644923414153181409819462254447449313314674633053902191538471270128134523353136917477682550463181354544256298360482495219634316293191882150351676275043475803131691693573930334107654482367117241950875430561195226321365887589404210090219552821659556352800714691816660643718144701610542800677032769986898641935140570065038162466437894902860144880002321693279934963076107494778400862980948192191270385579770190035951022149593774860399369433532882782289806734449351813220849600130751382205264700263316028472910576002426198858311111183829735591182575759116314546974865640141274675763508223553573405594852766873076293217075722128557325733695558012943495311469394100532865931807725703212430518882310588534259969855684503392827933948896574438296675079306836875474243351619817375129208151793646280607147225138614838093706255506386256284912193781036475177169787485890764965521996084742051475052864225665704132760281985766063333339207098457795504445839638471954493612059748809917888500035212673016555721385679689659112180883121857085239159037439890956401163648386487971544182619830500301930367456302027983704803974674210743574152519348122188039859402547565908431224315773332650961722282514256294312483804822981249674293007731651310604279274701504926073020244083351072992848086652540815737274601146928100876624843795737511084877615890276016129770360635943137977703848893419532715953020227107733964199732925980417583216784263442697685026098584847567427434939351171288525354096836782406573414396076107289494739420280680977898770787346794789274084841466440216797328070360991578583473038534501883261403751252782916364295229724965595501486433725507313377315900669501509222993441679245717167372448637727871541833321508929068385873152267666249896154932471852547134545182872430493794405909814401155740795275092433071312570940542857501252021352584649670229759919213653211292638023096617592289847177106430543541943796447968244738066505552966987791074771956595705713848403416049292882804063100414699415642376811744985999137136820385859740597741505156698503411797904020728773873913395766139733820322954268101031963604844494837713915743498568297450425269653100626866486302864186522054896797060068612750976950236393585537441548212307630095290149570790544619340846964250306923196595822432126563069574558703250879057121907718350275923841767871122588777798756458240873118727224994005105521064668378167481457145365065163224970023571995502432588010673729945004578773192300657458924174938852748885121618967503349596477117046461108313169709461548945762107328557697825550724096141078942771976688948671821009090175440996910530517176528317964017843409791780235282542590715698775371268133431816378724570006127835751375487640954922086061642817659898711185368070370233901484198620328372551399829016758735927909195395795138344466594915922035259483784881282592240868949671898260773468044802699285428481757849806359457745033476851615689929555952397930859065661465152682579004270896116706016549871413748964350753951469367097539986868805102996431336342844340637866241939203401235001977060989588210146827021270179420031167946723107175793019478144342410170729581230007525933802726022224798104158737728951570655562548976886708680922846729044936505918635874549876125279655585472944437583012563419522616358756466814538584312650134333946629157150290214270570433118177133211846530651223128742155577757994662588302034255860191229834401974554476572503841156508056327174677365740932914048087327135211411169839401263543098739702748992257659042002041349841099282912222815090752815700935875433982556576682177962138276156097531061316323200438285208036952858401902166549392299704502716961559469982981132693059763066576869492461316736164504450779148193460227712537255721689286893660102120505461030112890536133463806105661821138116059039996811249422035957574560538979953575562860540825277209446035958245719579856876432358254434028399136937038078502908896159488102337733366223883086196892310445849324628287853997784883759634834330617885919681980437566383335001219060334996715827524160351083456629134824985272800658820726016933463165051788052109901136252553923221227545121579455258137351775451573838121964020341375855634427803328150352867562997761166579998774960531972211292089273727098296693984624833367906940100553377445467926481050355896623910794661445829599076563114876235342979368337987466257549202697136594628001880002573872077619373160401429058371444925528055395728830218445816558644627124032231754870069584345540968223173271061647576223122612568077170942005145587059844542487438402649800307993875576244193480609236482644038763824455616911284862413936237250411542731810894581950900717496449791971541606872314777079402362356171184312903033313598634649313486205298006342082155071830822903370397489784216294294472010042447380995498793668989596345623517344500513906770875103120158887331714827025767503443792125862678381228194172524614415207007473552706997219134887722268271825694272525111922263589103207315189082545090868339785627648766269852143703748145253913473744953552965822689047111480002104918379706861641061268231708611318466981868499257120059086074079902651076263756614835552391291813432402805744402801288222176104894650510483720591439650873538074818949426559370884039238904466254027833678160130290813110830398366367804033330143314004078142660080556396892297458042392688160714115038938224792810660143984095007604670204283258758352384076018407488928234995451758374928060511472599943234317119623884817163419425592055958217111007533943583840467336820260293371062520359450412983683332959659633267214063470090958407393144879294454411840879249102372670802774010816647941615029033642799279571043659061467287746594089028270023797895581258404493082400358050888707703982283439822007721282401071998531156833663841440451559858647998658407940620777533748891380688886809344496066460018118615630732557229021999841554974416373914398658055515759774641867474706644306161611423593310811842439698485643497330666138195187506203089517634910791245733270293408469965238137228601068684861421666737394716914291842359601046062816548090972753557986114659057768454769822399189115029575222263898326746401625007203346319321968600482671752441593697371942734960039030765399540201310453144274558523214017155193247396892809439765169648714560581602570856361138886695724624852261640545555560359815467927880372761964172060393613374941486767050168960115423477687193357925485630298630476346845150759837614415227697301676468441471180128018898002364406316568517863698640913681205973517442783669573352126167476016677436403484940183015074044108020425600461542556890986984330416290814103001922876334732668756306817157665827884725878202837464279654168526603271158263653879870011693419545637313725182937352747061328670103291960304450638513131888458415663815250359110039392860400271921524219172588988676459016961858579187561700083949317692593669583131900947229803849745075491347590319469797921494984520014774623064807210461982497719726439786524359163074211817241211860063980021751289556479938593752355654936313317602414865670926542508668572345944312645664879422169342424840890000386923629655960800779038322761851355591380230826406851077823310629789469681198189959340939073386614017702595737857432124003959122718615824504683793253623403241035951427732742195213514371639086182926561350512986081307378344022383677057576440090562021640737312136587124470694656760192250052598581479132428808184082657175750700919201687095361875924379409961478326400615100606449620386209774371541432609408424911994222565507144153924762634018691430814029121745810221068697821341646212774332293019877077180629033028826673182186493365672060584384595991203234208899396523564763536956103023621050073735790712271777987083108627755155964094469131907228452048382992119202124890655920970082804334211074933183111388886794154817363314739413065547809422004477921495310562693214763600716914695969070434864768538322924183414240960100834656572848689748017247246751460304155544684499874174319799263303123912711261286636647533407732320017462099947544764364310095209238015787331607380447391054942235444244879118009724407805582794866412306952168486700463766823560973081916312318438480984507290542371419337586733871277087730973366370772898411049895425417791442133674990855161556777773654396135023237072157943476105490281545738760011630047019512538853166175539728444490232587879109171274399413450321329672435674501386023217853475862756036948007799632976037226983329850506647668550103257677074288382628504571166978969246633435313267921089654820112739358961268840133968062903473334977428086094449376491183340279027712704718328746758394895615157900738626864846667805251777277671310625726772529238211076945676328434484682550302090392309670500786463015593962068033822660052706499629020919705995028537814867634980080938605738402647013548828892928079244100541360734629937050566294413850113456219774738308459532792573581302522233909051938348489013439142726644590656133108404473611389114171782651547861936049307907388209726281858255029914301265140280603201997309086566587526404643245756531034373449454107508420824564200650415920036834081662911815396045295143404758076532384453726392456216201003761751005727182209120243571509639437328369284537996316312736179689252430793945814965888714190688934808119686575332862926098859914193895716268334069103256143484308719017433434890745695107789395453701974874116103754340918977480617946574147569667176396941633311920937088625647602171705688886789038368214014435511708480433817883141050900907918150580580465625305692176860340673097058135018965474850411390750253138576753890220967541770654708697362691399054647651996005517436108576774299980405839475592577606190232297011469957260354549051955809314359222033213877518522773683803940043930445528609127982154693941873898054945483172683623204296982658862591928495522980977043448434744238837886945437923495185310693852618669109682833437591194811166191541289681899512473185247166557588420104357711456953972349461251939304753199830295176622484652740600058259566905670756976141129511808002492646203131956731933366518992399527167863733832252476649693228959630428975232546805709288274752887930610878029594623543385318926848572592582684080931981153470059753026507740294461852927295522897007370914590478246977709488430349930931368767784012450958321808969784601219418392251007967719450868945056442529947776159234436065319288917361064860926079128300219030927918832849325473973948525533370309397875174833425759724417071711167161736244294001014177151749785529533098208543481985720268648705782477976635932075110215152890783764787592470519385833596198762675697736340414551112114068444977698459546887019631315697357684064770221209282089130747683296028789987996142117389476906827286025148668254397412112540749199773132390776815390061072528650134626490787190204298044083625121081944673276070613013973407159189654915487557652149337242476658295897869316654716202402527962948966134353486050230086939273972888897379835162017671051821014976978917508382287722546598112435096559483897392634137376730062147015779214069206222679364176185384772582112789453151380293047832461357801819014946972623995181767064417548046341035109937448433101913382236442641985900744295907071486760584900017897094179529220613882663460089616740165656398973203333589444949274439684255230642537178069953657866111820111464690696449645248072495567655634145143718577664665209785728637868229482415100578282299332639670316915759000374047187337199457162736204966027569353382329776447345310340095030383061384584694771278191636261352580673722059771121819556008085650961749288167948625255718357996408759067666358823335719058694594911524949724366285824279310875373276219186850525036369984142271436156533725902963203017452962553075247065067376037115951719470167152193391007162798408047021578090701234957346617745243374338983308136701476562000742310919178032106250301375217029068272137332909495297700149364085715076139259861400421108136765685851886573305918535305929420679557907095555041800718095862136059396312407186293219852080265243283793555265041272458440262297057467713635159041938294303824766179692720580790269149214623117841477121172723859164625568726762951537972967714396887944957487027869184093213133911145320388573422062970063078809197591709976744410714284389858493856813092255518085297425456114669190716584597719353518390084971501322516446188074875304419467681511437125696301936436794223463786078265498367059387628149940988789993537023097749173051957561320947424080271917021426617953121056770131869742327348672279637525591184138490873985259165872187461176899081746279824674507108450399656544656335323510179968971082375788833192958019123358960451927673360615312395542347097439350474633141419598537286977576702655257829436360595026065805454196007244824141971554749204555861051728834202174068107460639520837678983660453281930310083184856557299989834551290871732029567681973988907319815097112846653008544630236900574111502057657904804839092685382528500141541850597601651989738853933657623040508697862192364206242007879005872161911188468092268035009440446630345549300998578581418732850839096372363725971226121046939550496533932193246771369898412096769097586600450011698295283290327496901257605074783358777530285410726388056775757619540467738872655430056680623001477831371415463998776596478470518382299477638868014492504456127559128324920890930844262195726134734122045206976942305742126929293133139989655566013816375750528895762279376228840308904581325518990007706463295037494222564187731050868876290950987219121255866570527371782032336356763626919166533115595464337957772903448161343938979099536679317094996079125872073718011873646844464037319957508928406990723789245194030104278745221839057956980906098699329005904550200445238089939465039161774632935228511182605858152368759255780820854651724510452538040229133613017142597443182581148839403280937775135258417451612117396243992527195332763987518661822095859256015650413143395267120599582233147559670341561759721654340017315732188771764717775554432576261673074226452313989799251314788456840263025687612827831960831258837479244663218638992906596371028709509774166246640833436165009953539069164513568547509078524908218590247419744637527165874343753015606183095964246393245999672803082653976310300031632999484259777817782460678748181201929609039647165255663746163622944731900605709302821766038266100904732747675923432283736683806166178833130393186293245513019388309346663892503286619803361699128202117164890499164810510516037630496657737079470411252323914110505254857717892951804463005529404157168878629617594778150866990224841657754671718811211363578510603627619850358525275815522300477491935693959517880969401286822934840622608712219321449744266467786040268977760336267108527049056047398980575398818666704256092465098060160846353816215620886619681666699050364440128583234825404399196170918549206531674407482674774134931396626238743370976443334471969519416278004905764434140398983116016987036124328072143910588892057212248232964605753489527297026155828490589952772545656457077798363292346259596950237436088983848470684060648120804416276250557008021150182737142217641738774065499660270609382255566452396498512929454409586521215743707039340010362518803068625687029647014838314278236540729336594102429319098650250815307792653732603861836839573494978355872647061090773299743233249561605697628499030678946952670298259867727368346400712237133574204329467197537281080203208771318961645736759637532650212651228647399611003654247588780779320407663456370307012209733510998051912207945651851369384825920862014303102944664602198919503845050717864863350683119408194366250367516145873192577977964757057606518288326850194894172124656830777008975861554664355276785271301919199533314418501234700390205946575194462963495048954269541163906677906439124524060211448311885968193688756446686093984469469464288245183299403719109726897337328043320055169915227651057495818596965664648654444769555617350701843432817890873602795134976760617740852642964828925059782282268339408026187020398348710994132394117643891708785942659379708241727156435535262864405375732513865986177117997587241585481397333064139372640257617248429767491734914626625830786936882774370926548247083586342498031542510636361676061704264061439068158069199953921279755339924327385647638110247644797147808316369653734935461403573240950867009935026162319814866155841948802631715813439774038385387517457187792108326739826772916865297500027895273723938297052117608709013064681469043815329595158272146922196955364290605916195896828036972295622856685168809466648452864087105294546441857591655472876769925733472874553165663946538989529369466246718747175168707792330475947836283216481463692489034012624516349580575021966780185084190555351889250723619243935495061339241533140742315271892226749750852145410283014072035948516902892682063019598776892156069223190679003147894877789674039724709603978251555910017093982320026040904896183300059580266880104087163826854795632120306249727721403097809937618753124191051726292090966140143019461197484371305778360175056100748849718093201270404416104327066938234868652397266757510736651579252301855485468459403733203937903971966111290402660283984532766266932419934075473964780719036752243801970890403565914147427917642450821786790651871630583072719419744970073334790714197643871152701938633281456039347314887625356580895760504335367510748229538346719328092731647686174591379859292429743788620271289698093904555180371761906517305034784106913411904401955327169110570281522914728295107462368075957015341677661884736285756954531222675883569164714037829786828669038077234938089349568070020333343126849515187401308377980719965824278258721079501824336055203561146077171839003458983927896843343893234946358589781553373712163943907233915163730791960710571649250567311967641312343028563016623458475484393853554129762522595067650509916466221962445023783432390755758487321011278824611538842868320611020650182955160524316540414529182521882735713878407165282491220673958419155210052501676987581051040251402840046620584846617121408843590591432999268741163726402804263029347865777804979291475802510448115776335686228245523520558985688133647419047558388767703021874931686176349726611751606663320716251277103513969779680189771765764574284218326900714428897852288756640562407989531462240798514575388807229411953518161880909336648430693833918717573571559683665556256040962786823681800005256956358636517004912822455950684578506010626204857619384987265448842169511534491235039538414294960118128600671701841844183220298526295832824795792113026948326153628233387085964314551397602226783263671135153646417250729892771761868994469014367816669770738590093614642437601186218517748322768965971160651716165347757735984068703201911045482910656407136032502909670074818045943820550569074698643065362598862888191981394763066466668462284410722487054822942902270822748754448292500729903134349772884768278776662530855568174868552905376482414085436860756806573856114552282380862299127346073649883394832408097311370297910460971519282762759841667386895182372582874728371679478402845354307318176733326112252246720976176559817572889137662857173505563523027460544362980250836541945379297160153392597353724862128266666618072318005737982865879536515238924959904170080227182404634976085179210806221568430901738898467390827453895987015292245936511705731425283483470614489069527701586716251236641469601078648490215758723893141951134776475986800882420453049932035550318475314308080423680605311282797693740025317076473284976203395336416386263458833078148091784840273269576470164855080091161328838979228094127161392098739676062722893032712236654440861909434269067926724599006741108143938382263235979896484624288697375396693935106226875483163918796509320856129111218904464339701377526034355797409299911989799222516420833809747219744793001197800208000870322303562773974079692579913592192282119052380689589265079975531526895720863610199873941599632422486844353257503932418721137022142743768242853281277013382225147686669377087155718250783062456503154698829487844913490988827772971793477689034969472361319258010596663771357756689654384203125112442419981155458664501644605621042003633284895640299071519978942141649505023328084545143796564068394081994867614664204492265299395416258359304304659103224442752850233476584758623037188828744511237721051196112479829410804468683343353816326472091798268483427750576880362241269379524025051714982036967049865245030653008873721053279510738640224818520741295356839552459110581799949087655579538173238715965466734826204159404552219309357448882281395929432108863347551262554234960274696218923076182520414869144141001106195271669464036654898250148690609878435252585952125889450144182734876486924801409541843246018826698192757324688492092316690353812389988353379993044305687768862760683735811269746744374183078829818087033116076935521317099562038404978490450790533721094753629768459210564582140076394528486652679768493317362092021491970969843079598828879522351333029344083201040927778220815843340850598809862948659152487130594872496686465802328579903989409824989295598117999548623477486231809757140139324558363638243812787866444121181768861803598631763702646040821758049252810807297501027271572022855547888264161506688805805303226340575076940939573183965854580966786386060451460169525063941879441014931223356299769968526464951198370200882479826117394754787253761467670091982547793949634300538037705561342769091346337931617467327430720400983249819237099716251158303091305096465336463359744657275624112495944755557748539567749061546326553650957759927774126494507070605695715538522812960037595289847937316157070342542416665321821949632385640552214305300557146814732950196296947895257088961123653220071452571229611649071277082622402569633765134467221870690479210051294355022445507544882367913300183733219080049688194809414239217340442649914831849254497008144443028274430975220498926916124706239386907201418415620217808687227150385871634226059418251412108454131591866939105152976100609289435119965067647518870459303802499891847506029905795834531214436047826147698828741782325381469599260857668256323716181389666579393552510678495155597626277433948598326015894844204195649231698898376266742750005400364732122729769763733354023360412066528258933589229160935127523308188766957445871083164626701422611735980654570691402107603242216751574942085139882628238928788355056955009539313761872569410195056050699795662201209458192109628052278955132267038784391905969349210992300501728254914692750472306154566905460390205327552354083072527659170812456842438811668992262772395663468810470360470402568789958485254611521796780018698367915787743246557863105781516854763256142495499111342720316438384914252396078343290280414003915746976365364973733241848662243202187136510498535577348084581105757548696033099376401116159276435504153345041069393018970792418898247315945763906689457950758508483451656412834122812118847169539477121832736795455308314779826520167203693553600972341396177979453068841691828908834472404424255027340073633126875188573248731995416862362503234940244102680724262227625448364292154617746042635852166440738769913748948127938266878676295567134412074648157098133370023551826860422390083054308700296944259969683771466914947785103234093443927347692259658995958951544898152039626836709392052456340793391755373344830131000653637090443432220417919381159841011049576583002340680448813067941797936193858058197143400416773548548579909447311784606545143614730399219480312631547707790346564133542693915826977700623215576121578930897928536137649449208701801189854570618454100464363674989921803932072716401385245025360589401379608950609215104589935909347575040016231780382688102371999651181635953819853995387069819388755642831029987425018283149091562127988709185760217898263249606692306314219452250585977474790015171318218339377482925275107444674621634337338470454559178335469629201536221512910233982620315441737562975612269405362875105932326342739665951222296164020105376119526355113799963278751565336736509913561240738188425453547707900009749199337966285801800423887324661750303519417864232692518863268707286577254302613444488562823801735597817360677324460507979159020945385877249268312620735923995796528198344399782125524100157984572165631818183841347848599491651355074506643080137584788621404708955676371202952064101544274232007031955258830718087382115007920908310984420106510968567535771264990663786068232237183303879814004381753278722805394040911022226291687637979539841243266331796419618205641059324186161583394187778231118479650727929559255372155779590207005833226591069283774779763532423403831578634877888751634600621426048843044731407191460069731547333477854598777854276533015588022537614044763127489300801886655431754760214255354411541782610663491868639694333645853188390444802670095069660678579113112803759570978443311037517827285296945538690305449359997447273320407478889423749676484675646725283505938291969669114700359164593065542522682242454338134027534481089858531839167445251938091069892948323338853585831223984436713362952926589473922356114331799758600896163427370858986696142151450177425807812481735122294112511551826263856576706472714846990214696559889046647418915269867910354174671745166645648760012632839797063966786529650452185801822006098396100969041007859091364032294937862269595012737032628528269241806702818666867879590745591703964331784942598140181219569775755254118272622651779173918636396215235547972977671719047818195872536264041358156293001527277899656362202301033567344012151793906794824850303409750162569687153806660603850747566163288867663488650147732614377969629544087231064127323021326830913961966324798652558048751656177126999135814746885111374676342015840839720187986247795353657106188689348750711701012411321649464760384561521722115594710935578222638396439596763431568257319901959252156940638720790816606304221325416998287616587673124694915797401415019516585450527880750467355296016773441315444199683737799415830465481345598410442971947000469793828940793995502937601309383839002232283826088438387744307865129210741770905476054741130258010080898948957674568823423527831965607786435527251526142671585837783041073667356214317058874346688841166727802896220145852694953307652871616498421082516011175429608312330161857333991568368314823600133020040173349131969699814035845866253304043718794426650811481722777152373361076370420696564882694725686568056008431074725531546145831155928537034423946818155426764187270544202674209479855887701149656877643071312912533039397468059226995344092187214647887812616261103641854077916478806884855737730047652941935959508328478813106571985774214704652701214218376664805558298265130366151383375272624972270007106832064431444026468479182114061466480065908817542906770918291300973001198858887192461399304855084049706311610414267436965458556441885918420302122192801000221063470816943640375573199260530088087322723023131952086584669542174514310100540917151168853935572784873562199665204563882572971708151621139893932610482682386249445743534040836167521051170295900427007352853465453325243550308770984020497328233244728176880698897332916554819207005255568223081598093820488410395628691794565966518258749655941383642392682885465343328927511192013938559417237967211098524304976225538885020427055635494909698585572666222126204967532101872547429795967403634273790673936850699093328376208167907392017224415495380762386843201392731618306136094321783960585950469144449991202082587886958414257904814260506949728390054159692416119748408015939705533742137098320473888891965253176741905449221879392657327038766321692995309228187964355744232960371445462218749134646317847092927443464481010129037448891943982201608717870657933967126673236197330992723846030124653691578594140682278056191629065317266172389723200962315041984327713304189083908980941010522504368807837838831226736433569401693761737978115889809756887116882332506878268782598907059401229650935256681225797825059690643345204230899530834220588530537996092243042697709404985183003550508186866641534537909952529415640129839140885727237018629277052444358145574622159221553705188388870820984768772061469863885146465369821144071725857999850655950977866983573020358636814377667930396734889345191985070619714315262849736886056171325972776027579025335973503206780991940223710578214013011861278449747507815482582808142808234667558424402992120241132253617459207971361203884620316459343048079053287649117966066547108500022974744877597626521138158626236600836978821660748206137955906212541726605456066911066193520562011163106970509694474074285540545585164678228074057233900595846652319599574960856750765440616523790751629414531911261795006091498963479754945113193030417397892724682726965983840738811412911155908207039464517692231895702085427574462220190782330585736502516201883983149946428678048721326687544370415123914419996957695411362137159610406328966920135144889560162560485545594201003137962329970078901893994320495187454911077701809202549938355783981174764401720951272280300566052991385448755529144496155716149681465191994056786155048534774081800808825909607863445472336346123726904629003221171317171811812049238027576649025078913284640893809752186929936289911859947122828424141979239666457442368877398233575085220003402376521695534083420144550251928147815919454049336129053267875260835795807376910725202249567085594855879151548004404110970651405007025689946059026263763555908368169201708055706908368222485505707133792842314564607935096800224275782394630504729500154835724820077162672017025283748871020717651879521928628158027051739637717279209259661827351525296344359085750560722482492198207696457907569805597618073845534756875569335703519406807517531204839296681506753365615543040768028731214380178976130884935836981859644691269233037282887655564194153266588862083861234528245945677638562857960055197205483807549704301452944404971863089456450838435254025779348494569220318509887240052924401614907618728824464689696068386705578044516511763635701591627644980938973125025670215380419459997727802285466857700296832698333365316665129461928423171632101605007576364445152966264981331043505514175984094708498841797294525643694834380433503523094983679245338913261715813630243763218844930136778021823019374037001500218928817903249493304910344716554886802669334482471748345526135936852357731646246344888920448883191487641824176888699309692805995849407800832237242045308493141060466770791739866134679718983590596025256809072119724843407103782538659895913408422120098450662695427682602833437907131048213307133483250764012519144015753321642103937685204341970999077930356704495386429695809366462132393483550093204131772186466364979875475655732873191309246999812087194444365096061626958448834692570436838290419666665986363728838254889837626211376784375268715917657031209199689439682804297224358642202040714035824479427187190615538701761156558883546764154335519716240506850720395532553193736933262126066826725499916309058294459135692795711675167348630176975678671125300274575945812841221626647621508380894286624597814294212207600590381053915119142314050635119826299937874435919502481540093397343251143830364234523416403629571552069785851759408497605585199255104830567178172517662346921048280435117084676352664447002977625269748452337504911265752448812716161333077191820205942549031726629319687807222611956383846008615913745842920337102688279709452282676939709454528504777186244971982576122950018299072925678488166385798979203428089878998548158135528280748516167458571025570970111092402455380355460198853407142604615956655155149557024313030279153627900745974825236171709197651492580637250932146544910061121234099540913610624904070175757527996566815867352326571364807224203496935744265198972941125301614953400951426031130839753858804025039022637961343477387175914209291576056976678337083847233580519925009157969104572757406936951784767189487242627962266148080596590505721665594483946246784186773482548023328707822283509456854897292689377959209568831911328204022024384734192760139963341244378518010886669960497059996581421396769500069427286467150918418172955686680914218512334499590365276190496299861048158380589717065085051636436903258404483676297113470744291235590164623680370448308049934386653290333008704497316298287642482755348371729558611571506509135787000867767469884860016713759690732994569998590554169325163761831286319412375095763007427084137479968568610766847093202250837682592017236970514781993212632791063276362883503865934884056311732187609028227483066340241082349570474744107718504254015247099519273530461712251744973286551109263428394697237076313242569475656253501912870583040879547199515401437778707320467878133935414155313506480789065040421609921645326926587613106631399962886924182511052659174377550136001316693630604438361042984559487211191033469749736589658600636714967701217334658116208683102690306143498033929256536583436977320106647158833878667971581381601833657164367048659316373100520529181863781348305734508780597855818874974807719678827978880880353375708549767457895496363627372241924717006801764753109630952537540431796521425517531164064658001053149470483310673234246718909891705249281973909959249960832676881200701222372526892917521947175784492258688597876899960027150618887857820520750402799783348191992356631361613418619590500586101997110958074068432814295256995177995809339652842661061754777055279861551753295907706677179694712471432418583049838586001877067570587840673431308350982171083687892124980083062154566861079628196968769267482293626196379991807231783654130994111489980457272486972995206706233853400132412357567220656867186586506004285877123370716296878270978875380813263997725862348161814662606340139681688905266016399232933324624567292338406041031626879813955240133147837296129347962652513857098034497402358444897233645825664306820322171969240844626723228640704036170885539541900896231471924619725978635280638608964806967685402719400277414876485997524601073736150637223786735697596324634938208616828929425263962909442067965243767614028208642602802266586288255590889675700642707136946144422677815355310708278620638961492051315536082634894040230879916804815683112411516311280310970134693242753123097402562518299897504890324049809802330333809115441267726330194488318151075205935402836957295751864832941534132251159424270239711243229522925988716632749011821691923570036440804685245384510802737557854818443543771355902994843387707608536297475915046331343378223056284470946244389667217513570776007395796117481624272554701801224047154581337498395733129487347716557341785604223876481127171071377995970739551816697425078054907132998898408165176651452638701854535426028066298974489751686773307802078293091434554354246855194303176779756171473912464914773570005168933711660616547290000433634104591921661360385215301913105026669837547923710164503932797005318498664496223930359605513887400639940662036244700037880359268679734298241011433112488750339972866026778829985483779006953498898138559261084767534653375040653553619360247323286015372110420308993982349975455446225561685587830252560176438719285154573369587030397017238007145817561104780184060468384211275590011290191058465443336282156716267631563927557542614493946253450494214458915778561838337387249931098708227679950003757050187973740779015659585955161297561933115194738381101623997555522915794201320787168242052321635935566074327802209456160490816193981997240956734590557713275775242487098689557250332925976259200878083301200124546343092512318437642981489026603637056857000687191559793471701094148152787136248858960636629490312060531195548711984928800138674926058463475840727250394712229725933885839573518316418631753871365503453747077507641993637041042169911711828916902785098843242618291340419111387552054408569937421300774015054531800028889657766945123202552338324487963637001019251656711158860532577932547940122060909145322123494902409354108376042893456700452046675399956018052418702116317863684350978546336394352017068501176393837804057250662002425596254498447472998925399878563219793740196412639933604900513978377690257771088344165602505687456988938891242380440153213031691906883413557552055298428018373313912280494681029512931849053928045373567405902676159884559325756810907397322168988157897980096253712283520192049695587748955319557345075449847261905216009048197315441194897561535813159708119155366103877447941105848527290491467109643462484057746341894521346137804274496553080633249701407339221527040984360867466608164111423663254626674764198530718373486381546314713543388064220371222160476732508861231149199316158114240862042409909700508081680241810047452631009494481888109343300308147925573999050981665948470043563696107371251075819642331151788187484181944660211359643831307947334730274509108664283988266666707544051700794853598267872180430039014750071049902152081443536059797584118931559225547033688716398669504859278807582693819257728530792581828478057283555052092159260770425054142164145764126402217701639280311327657756289732720646440498975557952618252932983994422863154156400682497927606580002769749824072304258667813217564340216211756334340336916680333411809794951857824664991893620075203487262779012984749549260381628815847288954407312367869709171146462583657265766766093971157686274841795979579233352800193186788518422895548403368346905483899426352375482497519532562942334073156574479052222289878895242782573860327217387328374070202118838185015068715205564081945804427020083899523642212138984521452140796674822735348408836832123453701777603019696850255018941470787559725589762050982479817147146103599852262246452809291518186461311725103068061405266452074019110770598998546944629157604725717668547553441202485878371263039516481600816910310021740079516508188528318939765551118141560343363692013952845019413615246225453671128530047578640822369509875342989616976921856642468527917936545863940375282188916422737942204193923758844085417403049335760635902146574065980916428380083728961412369458540518823816117068135350533791654281282672664680175056985096487235132172333977966951544900848667484656245474123325600888898790034245655028442821194119881247027270771627220135885007588610690867224683888935183447987122427937579939710511123433181924058571170813185547105396567589471670454707265777197595664020878351451072166139708191348126884402037563684741454930974862569901201525659011862990848813707087521579369158061057277234510690190748386631543806800864610416141198939408698403724973825413248165621851423942330019253911011207188798243049989962955312703845064802459524856377327770338542244585231286953663587659139618172430788151296752306156304938353774228850147284755962110172464375385997984759445429922433211788869399740545591645202846674381151242274446675069451261161031988936447022568702180735734286505658199768804680743957357748197642443624630229691376583910130501483874984070759337459151378816728572417267979890967553358811178147559602174904530621211918932112723632729957602392558608023204295206386993833360259095556912350888493731273454330097539670389989800840469803892258830448516783666902946751773172259027395057034386375956085480118467776767020205967748256338253531045682370295254881897863595046513937658619570828520710751823003387078718773553085818739530617347832597531184010136321398709036447389175825657781731161324380682765216200828515425563471462112512632652007154495109215996437704631430864400710827641734940684094088332545271724019321103936752473511406258006156842492449392555970418385856690959987574119683691467060139704293201358520291346304671297484879052520758946905283197506020622350076797232734583505453044582710151454120702717357489516570170201024080371681885056038436073675201381512348311265705746844036651842900328153603187467333814982590606031918131864070326941779188920508160322200580455464465767756594334688900239039003243383872197575751221151832192945485328700822804926130310275976010827517932863743486774118748603630834513119069806756757293389678503486971425404937328578304626754889861667697125046673913147774770962102940044495295128096365641264594139190239239466305891991344136590081008169412301671205758434294889062295391212772210485693117179524115288107900326228137161587260594837486937173940902157714499956294199821916318781088319641704768131407231703415547829053543412752477228600791836950557536371997142616906627241126475468552952083476969246730741611436359412905736157175994889264896123842293818425546480088183749267238344682726842485725859433987311848697510476079096319578865532777916669013216352579327998062752482306993778810578037922085096138553790934952460472125465380522738364205224762426522205273693571034505662038168265900657374515686244492842118175113653570877320067816574064053719290965045911981005757150083302218012675843404191290192634231062421920357651907098016021884007952575996712331255303226193021008550917760022319387582783053789825744916021442443665398289384482877032501966034323538220513821196506856173598150535751886757440007759796229287949371330262506937424066109136099844535678215270999059098629297706683448493856373551361386610035109981403106546922067075382990604005222950628155630735054366929029847524484234549955710956545231160535406612813843396007897565834917837781461457533647185216915837351593155340209087399008183024334115083202464119447930213153621272378227691853187740343733394690656036374376644013380627924780474343479349995971092507680401119048042410107647042927717935638041691395646491145640056417411057523414904614071962361367159644047274036956140423284713256221999746852178702100554988630995363242619542253793974704656233326939870386082668228696736136801515535195090135967387505535536567228689512969942354034268190441468258631003292811464806854154933669939030378109876461972444946909496738562264107977872143034556687403276015158331037437191825427265181281271948557919505631344559681377128849562803071372246279192782541707435799952709368597731996071447100250975481256317183805585517764413364828028725518574655739007614962610424696833543086524247430167644436574893091003957681847714197630058269570584526537583743459044512855866168168139350104174420992625294601012073166049743179225833759181187805437707319262853700831633694295762102955514287755303933800483078755324610219158474373076365574193460790317069443229727821430762824098779014600384411638768992619304275468564397566595176512011467339559347368608451463275223283212559046640837431554148582986579656823520376282114026411066464830544466613099178896239225740794519600628304270171873018002794312072696092554916333195565376917658328808579788883739506547635837023561074399153744379978876841911008546471586772952718038281727782617244685592926120632119553834294132949115515345922604820371068136422641703467860008250512090992929119255452786189415323615734103333816269704996247161250849850387964426251942114254521425087743588201666224607178049194191901466898619050766318543037657906354923750314581960362323901721428199757453376475452883455158051514477076435277244944355375865614634653608906699949943433284517187328684983898436136187358170225500648921423171030764488982432376902592541469362055191391610177584100972014125353683469344439097366150487312390077645049033808275974195036953288292192992707176942783977304699848159561416299464842754645418737719114064826703455761516939504349189701681871007051563474686250356395441799547905778908931523897470302706280525763387097857710032859004850824889001658539992706988575681139455989683166561393050801948188780950506750781658632995665238067502624294669414278991635872755745352802219237079199340664274713786845863502967734651669629831248154262499697672229025481992309152214478835115445704751441990264591958784556932748066404695986395543525284419501959598277123709256937988453533445730288142450947395590670848994313128630928036187841827769296786346637434662620177311645716940260968711227246182715983827892349859183763463447595640722677187584307071908455901603930404540389232797871162462207016794937014587589039019785855583341054269062502357350967434062519953808048377893590068792467525785281098384646231788994202543714992327286927438148943756623323780267319912412166588276888957555331854070468116656255285989739934728693305849691600708976303315441317442342753818886045494772268339522474474584238219554224096382823803908996279114193727383756782435757859476408122175620859971105981094321450617897121775496392752602418045132219376035532403638743553125769625678221247858952118501015669619684153196518015796562456838061037426022306165648354654316480512432284496210307321680717445857750632550624080806768141358514928078198766231050144038403717081987290199329644704936613606530638678922936808459321855832438653474060369553021643412311086498105395808052622572127751476024362445228713303604804185786145545669250427823321165208585101673259730321916337932165754759206347594820838793794211384866550511946845760299201270197321742574836924438599742994031950184565233153785296740696073941836571997653429438300552329843822583602685220141660929991640955954601189156830482600024344127684115876354920908895866483327196465113277359253696473772905333518143075464305719392605529545409406112036011105607042918520469542728962727141879210547900246779781165852670750377720779624977796184805145945747665153376320881849566177097771904257611240056156896861990868291615426566370223569956425654628091868423032738640431574193965970956471816870880785539838733355632938724956184694827902321482866276804319561334420100820664359392706786923440185640984983945018864175822846862560941311152919367423142420295206159529592536405657821435212280249241262587543123687923868498016777413974201488640664340072350696649961391152993168966372023942931909867312714075808964020749089716059318979540149464481514795948759915728209329515216865366856433387722781316748200082705390924340102545218691278893518254873268532109454668291563777583756944137486417730204625876174597005887145159219284297607293069129706045058820886858487463564895946360146804842606935748263144352805256549833174547379548992626977168332889076099891066618139978974527756318461496176599066002165673136685761493501324639720255721296998643504132538870807793855238105341975248430960718361726855111385810378112388936685179066545659527809341493161466446324224839945256982313489662141321463736292609920025025307471579563309221918770995644044547868896525286452463756260280577010577918951658776098861507337744287545236015256573731929902435945310957064765642773062373674707164879493826496329736174315581135239448661263807965128468142743738063795333024269204087888904306450210504856203061864287209664075877503129292264280775427536739833695681814563632690224565465327186017686802103815504776114894993000960454561774631405319374533015269813073234056234121043816406228538360579054767332158563266349976388281690862546857151904686346805484850856453300051316387871758720126891166420859275128429192724535030461975533062555726579041375927609090914379225570830763401863202616352659685429573388951547594063875873403676545560423680076165992449359272155891138590810031253557985450913762564568960618032584000521640657615839371550469312206760680649341101560548569554478168079392932062705566910789796554756125136991528824871103866899850461216269037615250717366113620906019689988966930588776001317235448882086401086359397327971468595020463401247478735181807825621980424154181262845338076342797916579758198403588772780297788272093197738513280896163548499245816975916886117066969620590364080724364197483520418169972405766680091054050151968647791953907075684419014100344628654049198480274216644230151607691803651552104200652468654231957768463106688884225328452456604036988926629115044881130910872888343731716928338248169369967916633441063333418436646861794547644150799107069533056396968248954548826657166374338997703799902330664745708954164196560848954786989422560217473169703018495968371167257985371918577099691095211115534757318335627696290522779052468714191352700130871343290192531442422683110711299257210711147192580032327585300882319518541615846627426471554383670158675772991528219155878332860773698512257117899814574568085199675979250236923869680001254919400231964361080853263669087543080744650395282060281104120776869521434996095838540356932871022041289482614699640951593178396581625019636440908012763278343721887713900500494603920971633666140135711420208593235447984133688131475776725438033238770103363214404536210419459292257638529066603338906525871139191556985639295155292908704657652844822224302768710240966836138883999901401835964617072880829175622193318754123981341170466832294559063650659018008932248122685054704382950698240761996418879652089964687539025787711110909748266063687381213699969645582863050681269349656445723276099012826959058515356590738727157897279964377347999929480641910240813010960888823001326111915356181628321805669139552339842728230496218800783046395054262138948130399155052208899365580207442546576555968838547291000396926712550676744392107910005799946724424364218018065682570094660282589230138403800563077213899697673738282726423670248489913926212580456287868769843314359582040588486580054279782796628141289555767305079165106281566770688382646290728610396301910369846019475247335616596813614773518549589214403845915700034587687312262547073137235009265072523171612934918101112125803205637574406690223290135694213616792448475038635562638796215909272256797182734482523550017396343471758104169566379449997322069970440395684154610058060096612145955779031819942076313967372676047787302414572457107567079271018020166587282922773886642770176793651277079701805335270027588491064456969041913190883413968553818190673055024666061888229879371211661909887306098337408363162030101017636365456377238253394511704608803463728452950679508114037511481505186754837095203165163539307996668739292521319979324038744051221964561648283110199581144080192244234922782757491183972147070741264227401837047598939285895474031724564128649588421634397622481389432159644802204787290919171310623455461529223235122668556534038707771289260095963034721428616191017330439889300804835103999501607085983404737067036540016568102129125574300964276552188623855663221298247022137106137615736878250109496386404822552648945808057791671819262228214499683339173712661927634877440198674422484789571250099659481273498622455541193222377760712572461243758774817687119147414927343876384720238905531958370924277405142946695825262521211342764236787938475791221559154351413410103473307800533809858930467337895282614872612237183447192420403610561279772198102789796699779721089823569713659537672090435650528471164920589279154726703351335133954270089612234126883378554964577706832706320010053478288157030251628689792554660966575816494182331970334803169150317006811592236056694023774722795034500857896353323891862823426213329446440729930406891810075169471118722182473576065948537378420677248311348052472405042185250110296497588863268919571287000078417865834815001371543544768343736340351788895551028221609851585734870942902457607594279695150552012967166709276669207522611399502753951150362675743730040458668480127604969474744437574656848013615817501257142577707417979838587687715226938419704297615331413270397617504134458967818331321349461938734431826272540435652228849100435444777371025677129435771693657135421273648301024725778071775610446413250825370530251821888199416437317214177840034991533603323608468500062431255504983817020960276405756248702269045134130750996907647845838062263541059355664520412650710307507866563797601747625223429382483378906660612532101487731712216598245892046558375272830476768670257580651071243579232571038058456971789336112456603490876905477292642651162107180393451559283750327174747462451761570429103529221388822216918255093437419799172685999237590059141067717873367774507997925245513849882812094393900457010144166831826649925173831265240719189277976893561108807398031953323453755289555117435477138597646262419083413054893797934020918529251404098790747577948934522382103338281831718271890385002112902796166716940604711185837718116964719068034926904697185310510848682171253036003787658487985244589520907930303634311164261385708457931020368029897015893730399209524221241372294442612716779493747835054963208699718377382127819256480342162363131051634861595490415871409776096950998276615356318522368926284056092941349503082776107001716392620855527706065258050207878688357905290647095630477245750520327561223417064668204318240861804247911104763432031733127515805300363343950532425756422140118532574163132662217817791700122165862965004713489369669700401038468348279235902192469992794741563961263187886690193999723462067288691471059213148590573374802648375268274589096551844274589481256789776817036192253160169638693369646094977714290171032154509173146048748231691575161658363802085567297755915010595471418919831430069687954621585930189235075264210930348268733824117288563278944693504533500608763004367760826219692999775526580884202602078101138363660924259896265541876671055781838629318896919456952780151673602928956143393305595996631273511265423620849258328703252585509054591373086020500316769784556726967934571523114305392019019199008855980104983339249906130637434008850875878901815818505224863730937134035868096945890508640056429626398437063501076613179324865567190293441569232917068282919370811755814680771679131219927497886188954272728677616323628270080443433719176248062833723798294283052535526440977979412145368796260842224338463020292030681343186307516782017465272306484927716198708053231582135645564864796497791644053072121713133748978091270292039386675607354976848359239394100081749637849069276936093154259941664088352244905324817308582983324945753557567672091631433753249437812083949430224525923498448288079665695839684045878843002250251311707422902360577848566377137983385621361616439833983137135084081702097110593278995584266192303736077820933091582530881558769384702901945153425888556148961329785983410900944177320623301685565339348435203560659884852767666141331664742989313547599190850824437543331540150669940532156723916590944058269664766206775444784499568872176405798907029086009451562258395890414745178223875891556858772428715073007850913637746723944045873168538499062307657469724046734859531562761873543909026670090082074523869576525398044509255206396217435146532141201333315867505212495523704971149642909450039668753058947221252482041986013883203662497186659835754037950609707909392498514264603335976500915808838720208749624126093523302456650974889012897350925416903092596267860219367518483002814848315748867049632724285754055440198479276497120609006682006015547146259325214499390101031677944592093293426881742528389148049419294589742114072550462560752014098226158052209645734233540242554400083724412666272287896249739673364649199227212708057521118163049881580052291424874250448516175690214724471535811556600427063208925284069459668868116734118954444188206228523226050454036587831030059138429533776036339393092718408914231266481522309456519957980691193156634122841663988189885767848818374610799854122831447362357142228369368740829354059014537015832330847726789768330258021514810327501196140452892566573520788563753493783384517256204807650493575141351864132403830007945566668303466775781652816230052152705667100104660886698759708797187000846083842076001344630738401171193290390392297236098059536024381167835791372975254685784848805354815141508634496164969253543239224164500062286566888414955965052803591698874205950118673911203260878726771655094788700767342040443919797228957342204540795030794162476897284326440667339651186750759895850445525743420481187478295983476500483824713353475834439276950706486794695520776475222077818598524744395866431354347739329629593870475486226053782947047811220362859034155613892856759747632354449861409847894554455980352196616408948799079857055081867569731485311741660957622979320225523149843877302600849562386743574257490037451659515484810772904575737056524730451768045665373738539977837928756019159681596574706291363165675149440111665180829992455694307083831306209538369525405616929709268405659280680878499224712694859002586130951039018102477174965682084818746802048052838671472276704450068241707523291549742276297234371891646653733465442915589561190734320258092689839557946956866894920979703229337894985814564525101700012062263750394190599212169778712831146828337582936524317580649388852129369747695511059789116644293222074949053558208731364568782620612423030132493152123592589484924418816254639920647965948474500297405196056161185150064162084782128396092460387373155456124606362174874983007605970412304194625432948798851825818796444472996183004782115082120356704250031281721430987173505352189337612978079573916317926730701249057641976437669957866716998263116135885997754625647732151954396214324486251279859907726213570985464427532671598847083886051205720761533018986784012783346985756952579828030077809319157414589248171610210980290479730317443609112515291456347622020507058450349196054488809937890491568875062216200382219561762609762685728592757337832809493251347950515644337460516944538782639288433385682199452371309436415521304485042392527251155551303171302536452999035395528015004468980380135115467086614353869789758884714614359348181033314906513856425394516228110711785603257366578343968810367370919750799877424746816993274689715714072048112998671373557620581534077338083742279510340091616606020262995574645540659305727020377957020721070755246681449211428109385434565664768484447762908934610218720606032171586083248282332717772376732358858842045954837610010665553392716986392226866903389823444855759751290494529867907058699976248254555286703945620163418130565142644746997930028254710645275792955372915875839076639362416105734855614961901914600960472287674288740347836746823081438485338728030515829767042125587320026931918418729042349211992971726741498353322930014676456982472385413298483962996831467705356854181428749628558206996486479769783518914358767979484967028082779992664623752340209403496528281989568724796686722430326450160855153863617697364881372187964646914126673276088221464444570092805304843396220768937884675708081800065838757794643880256387735532079283182454728374478920774343774829283919078917690023937286780036139872527468059030025983277136325839227321939041362040979561802255412633097846688382483814532377560849300778927844791577991931806258214946616381324861690420630355528097469757174208372104176955398676759681731154445190150949535520892063204129218195303177514661518693316176773474166603969575098632877550170759881069302391421932787019934526359842840910030280519803363733323897586345453487396639588977476914657184621860877745612915047813465772106541675863618156636559907754777118724672431901188304999037469952539990318855544114088056328510054831405061617508644197447013945834710698017657798346017709895165063225074724366662463027153266645906480197255075765686143592352691449925752126666966605604134881732128999572217206115878621859501177794566638975898014048297765934012443794069801250343786327259609352062805944116187267071745872042966526464271461894786341465497823223013506879934575337969044478785336497262259474911719997237641900228968421503360626832639488271870721600445846653872467613636104485706336943054200974580546522886882485071714727061136698297899306829567171887373478750592914625183038081544411345642461933959817090547371550025696405387453053345547332759446906830023879969435281852885665123769988515536008629420744831833299545477260482121208716448154987260939589824479840537119882701034958956689493983280955071038587962055635841007166291579786812130361159257601258918923003587727670634761036459662431087983741121923656084293312009966310930340660401519474041325563652286101354883023287872266700389986366354491132951105352373600953113808620797419556553091544924418003566174642222800020768382002017071009099612221068093571998391782320276848737662678596945069407541329968552985879643922257038404737301569518957593783767250173836947364134065185518269470845300509458311680247468243922119400162186646169380476926430136517955574425630294565420456543875488865545945048611694850341811341583878179058389974081596687523779610828733854805470397556628177309069065267539638553522406076968307713243599243535162167905362075504482874068126320155697392923288522545543116334456261814173881289831333556814311621299020239122303949299533485996571341241186782023916387476067385138282032171182450132678634381709946335391863576093618037126163531542723795481839094762073679838507857979727579957674639705337366356953790427672117280537204079005960774102046631575955023010947385446843220468447349888836411494427277337011536169848059900303733534508095757394094951991252264404673327089915200030256024674247081515414446629830335286496739584523097394169932546106448260189711618741973278877907353636875270096160434280243290271742605577736632249162443336023707828718329035419755377604870820307426585354056642799425163376410552393517826772077027072172776934765797813488371787448063937330735168289259744006930650409668359789164154201034518608553732568361315899691843516289225625444373289043360428683562218006550201780017242866749348214892948386223074395973495597418468003075486009264437279149886621722182098285732672440446009211565183485128077179619736397036725935057025545428848196136362330854593205688802947295221951423552653621035085725190386738068447727417787082292664921050809569558303169418408763303477434403930668710131099744807127937770592293471305050256780103562576868879691283839789812903578586364364136425593529526010571872212269449812165584342543128305871761082677240787449985023099395554771810786934363647147241226039862469798154360306853702960654518142357574469257799563429219624770224572874643411547354749053172136504129357388151032812826118951642181519103385580000239237681375412202634058632847460794530515887791420250732296719485803094652320979480189348562772549602357320866101490103074033172525480578991493343409871819391854591168463189997989404909950565730327710410858091751113392341414294412179616879238855087752249714729772132232647548919850303609290144922624621154888349421069912369412321822678020544694322364650106327487000774718548252966734456888484101050068531501771197259443052244785901452634941241335331564556457043007840217377948646793591638440217513830451358745548036564831013057960936511952181124849634138909456341599853539471400438203207536869021339817424567875796451569194986495825318248687717827522827039252110193609064097124213765535243625181756243693875048581443700838528585928868992456526159106528532321360339988503259571989044309738516224383657176285363302812607753888607132529615960969857634179975006197703060533413439525036498744481058607327847918498189514619436054354224158506368344685794026334482756915507451376005464446630776116534105340968785150887724068780499043523991722145602859990942778597895112556197456331982500290613445562073754380998449796288797422756247739944001424218645491392816272998589220075317096418560822501002594452703731530053131297688809454920592778642777788807435593169924810417394860251291591247634949518474091283120850039214087606922791211884234813644112434128152101949068001921891213104378863020269235293359687189032452578108458935301023493989888905028618563443060092452178893668044285619572602625471796041702576638915047052555012734038925492325742813227758483012485065231566112964382815650856629416175419238223387720826413427746594743184812179647747976307972377109604707287786540776222607151187123867958474431271983193519949402574879992621878670911053416205228786275193915352244820809088862940808628884466715275395828131159109876030685155706695066348172257608492645991568203495465694872674065358674991616597829970945181342075281955797359803672697726515007932027155935052142617025600913199920605117853080791857751140714473107420677337897592287541740403770562553540753852995697743116413733935126138834761172168688706226900321874006642829207172215976269012864136582021183446190106067213688071236137566126427260680679480694757261537454869975870744012429889600841666345496239297446067978961960698659502116995543345776616727028868051019390328861074148862067198617899570700051279815457724956604573777645897034338286722645920697724657163828521419393386459645163463584593391226997105245170592120326489713987033366854006229451515371825280902983189816889953640784485684090847548202148453529911421555975043473391491416483948404469986359380502012372019282173052868197961522940844525409035144180109211065690207164505077584092828538952061882075948866853577702615544769212333433750162094058791037326887791510649917505018169439711701262925699189726028710255420080937048208801587409217286793530944156170799351135685277071301988071587833581251455936825584678937283745956385637118480588191046133886718560491491626891905769577738923558105985030957752675785628510857208513630402633642864751292636572641426701545370104151524640731610541538325200013502571873193580115540731213136191262349618839095200830088539939647811863440196796807675834019239918517318410432064253008188310869132222936894406933738486389641261076622212000826368914116481003222573602520827512917794844425550599863399254700428523846559399483429426759528035005844275920041822263885848334824283896312294051032114583618627577331206854479998508981356200507491302167291349817560009076712931545488341634163199401191163776512892986162428270750728887929848605686150811345174186159393921304178535576396895852953236908808165442258511076889511380997051506233710568064188396396307392928280246918518310255670462834516911194710985515449655316544142631793914444700367192750740812689317469809224552234906882989085100970981640678344936368068399954645205497055206379732883188252026219439180600878964980436587300768965607471596135611474155589783389592387191209003759816310243041159105000335168695183213293820390721791283218278177234790283530655409181925896979207537952310223879448165230964759975635667561307309737429088607830876979662769092427707077097317903046417349800766630176832261095997153236699660318910072525618672571176446203045388680799118321739618578893077325932902769071547566158468904725026474268638866982079102030112186280783752097334816403112515718099634879010169910037741347847964261041735366405851778004354037034950310412777847936666781439016969039931833788759899602048644132053888496087698058889851655421018004896808674833885575278392195234097318400555960191981634797407570360744663027741742196235067244349917230871893743002268561023801508309840825491093546954507816103243070388187259387451358900391740591130607832883018059409978594974668690571671567255615093731540746064199925659310275705395762552099002941672577695840428549928029116343346203018118718481416999498544990660567271521533780814170058327910282747556306030725053313180755410224113419715572638868571907430207692128629492618920729206460631732197884238452730497493873705281367774070674073579605623418951972480672589150407588695812144237240303203414212459777214428064636280985248569885503895551566394723924702956098121048857115936153535230477635145384595378124362419134057680608436063589316546950159067893410981537186205427431207163127944198472417275138082974912225775996388053275301679411424774272898177912104172634471031294310801708009516937828806967337864250680614795600301414550327782073642472793505290839368309683231506530843657528382705851353549139081723145786183580850992168201026876285950153827497399923108001190434405047971412983399974244828880706964928602799412078005889700309758785849566736134684193903947956189061582605371172334127226786145868621447499734424432219832516995142995895052447029828105854539264894666691260153087577134781543202221612896079587134542018159668827415867456248126769050363526579254846996729279004923130755325466045856462236417279784548198509021115820714199112310289339083926282504760645746677484735056042175056671950699570929590656091587122210331519471954496030323354197395415820111931838158647592848204754615747415051807395516438777216829961136314221968803839043451226033764989486457494535822091140294359504713525660301112445244695762935083715712518828142265862906018332809803239201876673498214932112925953855903581272337770638956597835461605781758154892982986423569414082175160897917569820462341676590857127167515998256357581038324114422761340064946515195698883439508094087057565095674698143132589594542421447709908911705164647734035162076566435796681487250833714054955236814805594571372067002900455162522912746994840430652324429127484887638043561401304301123201933158690649821310914550045876415366044870038226920341657498990675992083128040550943835246726971061293108662608502096328859929721319944036825883561464243688463085353618122252859102476702268797402757473653656035014297115251353198279167880368797406734107621405304570821339629080697140784940370032408734640116942463456537175563103797962367975445008623642645619002602565176770362080774197868518329069576109130104064719313570905144589519866280499518543589538878121901744271654928260694399807416960522844810703875252745737562113661818472846932414618449212308187347899804379242044120896239342894968046754410624685604591898586325322534397326209127574062066891154391356359890382288492173231956424937615634364383942904098637791847331154245698888157129960467134855522002896661507839302933808959165048719255177872631927060391365642298863588975106212415920003539341780727882963241316844389334505750397535367705193617580142847301592858755518481799104691265546499301408131343071839404336930956082240185958982037268433452299849654122026314021531330486218539344711707751653743359329178393207848025882909021824611628018212918423791416279900075505170382997300030593117256401387028769210014815055470101148595552795452933665881559454974434245024595654232591966637559059321059324471889838609427747724097099344299197002644865315837786600656137459815576788495740741932992716222046690008760289820970679327450829756083292087023051214621693185479380256403794315819911429668611889885085192665213517706227137105668616238045088113017196622175595100886197286589495492154591802382745618733148547840471077997398103279281702890985694408814898743075145653134170385526818084500896370139559715118798056440847112412839572351230573209307696829724858578655643763915132391193192526013819980768457414290604648560343095383412382566510146525682196888254413039877521650021318816386029103373840562095995032245485747250018581165404148804171037174600157465945006120083978982905740286132457333830821437899787126978636672976585800094509016691535673431568685642571131644816698421706723374482181767869484521770004414153706418673234553067057405452689838378685622450256094674431204455623200129837799975483211303952290452656097182202974953710560382973072656830221086051357248961861552265922667075010895485982390698275981400608463192792265867858624396425815222099487226322291789378502880340286044852377327713962656622077700682592730196886434908789658639742303792053536166368521758771156629006666277364092995285267420613628023544430778979958824366124887331176526381317378537927643316801233253895176396737017150058371744531282217546827764346664258292314008768487047872816228978889072815992723163491681803389714263554388036595384085430879910934189912721657725400263406677798348635360878662730143945985851576696820912396844876992363534498054687881558606589024010100798763129648838235316408632917108555357502711527289729859583722919100449939538327144435378204222178632947297903679873691211589585415022850626838375325762861241100522999290988867274660372978424557913311348486816625485868257851980841195590210159196966976347091897548802800841312084393383527823745160372296395036727462275450314388226796986175538546531818397910622408229172613429691454944449247643874354315811392809004317297587873507140776806678864668209659274829743529452710357860323247414885767183189831178100338181071418736863656770895549671819609198468581793870771817013375052038607151553248101018736095758757364795972479742829788548914093527641352722487173246831393338865742157683910519137467909910688423533833845424568626255053533590436564676446750206320965466283169982470862982701022093439997073263083447240083732012248613519340499708738157515339754452135119537398174234739756618607681874100744205304950585698956911724857107857518878262229924754168199249000083261333796399443595060943563919754059638544415513755370653753553603097620246445805626258060031857494259941578805074679101895589111824637974689191835789772658942478951668353648088078298149974334167631064803903080361090439481785763081714536148683097193396901830472279597466132273299133025010236921569317153281989512496460566584191477502900490500176009030543032307471983200943567832493480093174762672093472258312618871820819187224023226978394058223352273617988671645092665400081619058729764465413169245038911572897266441301502569059314309147589943076129456675231541552462804581301781068835532791594626823176043723704018675307324128591444970633024169749823481252574184657600487768797199396175781232685204800537686251771282734622207833648409199479229913411209502249203834380764056416388896063352418466101064601209754890883359784887215528168152497427985479031399980191461409697125682449979921517273206884569992814785423786807273096714060308319582864985142799336923736719227325799552739327652493197589942263626574307645290697044296693952642545414859946240085607967910523659800458343671715765126015385124556931341369033122682140488135483571333487057185263172089058862828640609242533269559759812570663560929513685064451516180793035755047031635393973011179443604661182506931519698523888315784090263438670986585194296854346628167914004852673093120325596810095413578051074725891107088693609366547481629666589050467674226421843866230921452409218065752392901809045009885300334876891994164110358228313620476556450896333419654700463987396331073638750989286295187967790015897406966485762887159843475191659213606041732536400788831103477990789524515778440875312214454144934743295971839297926989325677412276455399653653440087270408843010283042032662060235325523764443910430686962568824674679608472504770987030112513547839316442783981546378790544123967387578457787580851369830782843440230600109105717452933962970584792198365181807662131806382940912027476113053231766682549036195764383684973446505111574122115987968495167886237373392188409364408807287010743379596168953122966563402545354415444477571432043516573160314424356712635524856264048817813118016416839514960586501714518652451206141985171998503305306156870759219159764688797564849758860582913867223324748028830360243371268186945075839200550348651811862944346538786387606724896402504874442710518685161477986191609916998804899545980536003989833467586959594354403109640421031473425557200398750512495748674794532044296189617987430362792277848865191215880118328781061153233317060647281157656953803848220194538412051875440104412328181967769895611585757247268946565970234558547685255751330196798262708260205271274224906990308431251131310999188760378374896742854822355761701855932067001168920317198479410900061334762354714894253420906994483956696287887977603936591073181201225390551012700584909905479845681770223819361699199039582268955282380022294968624330350527581289156575808280086454514261935072636536886362001719251578789420766615678260580716448881383114192023577128220255468782181260018304380425960158212095175126368112469027436092615494739907250845138212149689926670845257710187224936432114745250739368705934206554478986629482161518198418474490243310022551256821885165439586829254266867671498644269489597095805499427876122428227085340533046489334343059963254141470651922661667371786091804954831991225083830552186048966751181658595536503930315592993152233769933926857362255392275122982059537124689094493674765997648511688542627528005107064437759330263259940487337721315750897144226803983081055797906034114524809865819464635855563180381852462944725952049694278910506225707178660587977801237261402948260050690297200591652959932718538754436100929026637142379963368450595042491969666821498469772838421057981694515548411759733720045492909522833709405431842734915327716916527572118780935089480201941644249915862127614663997669917989317862176274604836390228333544775647695747922377419149646329615493490452727901781518851603751234143381944453091407781076548666676037904905835391839795941029384459265200374309713118796729569051538057239286600153643893209733808743481854924167818660332883396420451554262299776792357034625224522648727141929814536761894145891332842761961733092179008693671797723224269524340351943192021611114323092636185093708458709012035778246287595192786628889267090298909480456084711045595349357161326214526263230436740147283156211528620041505302741408832548012819937488672486518329296907030161861670962882561993626124459673767002371814730725317485636754478861253101615718112094187292359344792611694179235718802219978815550582978394149780167485449630583649026775216797127263732442963807209769782154929263754637443285841742051130333412544194547490592085284119432925641277459563717046269684203184075221593185542788783266899809492770794944411140581360416970950676858576403437518066152652004183139263019427066081578434066342819475939866397534552792913883768843280766621315454310872074094830088140715661539689914386561273078624935223021071336431035325138092079923446763163206009627072628957218895721078965361177213698269330679412764691359617064636232423274317729837161642006604706726122255742151515843438110230563356097199826293019937990672969767190088947577648885589551620164189910262771487437766658075650833128944101557042342267833546890784792534396107054882120526042061215361233614545281192298396121920693923588382134094233813801882512268170326179653953953018346965752564950226135256864050957598608157564113058581111076994820189129690811584867428351237575346768465776102861946582671667966821587712237608883116550508932043070345155886760633395500139567193104418740028774512915773274217318962434608677139557866045094057503411634652193152930306294355212699119971296406902683848058834129200483486386189224968579295256588915981897528655714925350262649520705445562061264704767023113983043183568475794590389236649131632809764807453222984339342388771521742223951963950081107239794067927878406247606613711850301727322003183983370843505960040901862313748128803930681848797110844500464386852332568615103343784881141873514890309245455772034811551158639207078544038520027001253139867549335556097262162514593426283794419281994517186417891617375485910740697414067616204116682651793099621869200015217262621382502695722248508318400647745913750372408789085751822262304252320724438268685613041644262416347558882335954226263552189740274897547566284216398967908161169429272666166156709710543337964120266240004851784081071712594365415299370341726132131508243374695331349256854638266474337918769303163166430568867968520222966216128534267399661562389744910766616314266303064879831419530745350599965664700227224986270158380139622627912746865759549642763102702822494899742728958367080254336101211834338843650389630283288274551153649065670529530813500843248073371856796068453211722382419204964045042971012642123402054584125826350790095380234942568255628588254690665254819415801944093369316460871496940277807784950975456738081157359516716388020882598575580998421190217675501624856193925933913821737683842201969585949582744711155297052827301986415326447556244942449253467753880575401147676670834979653060130744251085302657013580581457360108455194069736722092803411859840464132556717858583653520449065381056146814472266537899599954963950194366517759841507769576639299215461092227906849540800166935440057985796792120530359717867019484104368338609275525585636253871755235103277465322364014350308767293139080907476242545122359092129836800512297334430644444583230421213733049510783030512043283894166028296275458247186742759886131822805697005767726805284640404619364912270550745924523686246990059963104970524275832110323109872293336819808730751795354521914124358745210256098763471592056857190035456438462133359638856916514134376043911357669184723517311709073156353169530611342908651594233466015844336302415837203134938901290974724966089415803183590168971568674660189822021731683411907121676826771330482840569370999667950037415269051888766304548210865342745205614310510349922232542193748108373821197182546284767081676670789888296962038822781819218731689337269462010517175914150382082483077930090076033978565523344124250483603964797028916224077980126802455925678110245193591236504713239566855702363507228670268798619019250942364592398619436791894003932867187240799220993243313417003926139309427185966155510065063954813127927280036460531477372347379502230983352991751636249567929274046043970748742558122092912418818258302189967514940219394459362771182550172795388051359905208518266746331847071533009819062233227853045692566094756278334791030952519250167880537597139392033883370122993453611703578090478016247893941575458605826434979747740543025647944080461925373391264573846543874396186530402588177414546600633330211551731555247709152946142898736833220224187361342259166413687899906863504576188777835796764288971155822489588057825612702606904655936993165640712137658245087376517163379906177357039990579328598548019532353307596802718650560526868645852564053266763841613814357979711888948321048326803699139188001948309137120887007476595328337957581871489448030324399780247156293603842331061241029919466473547609004314233974397676638723253948684082715137378766815661619407460907634964004919994265670936075914442019749558585494879974960245323585858314446088264673729798175006373212633031077899294630014511548737726995284011373013654549764289944563664935838467175547075527522082114320894854047303796289309236863202153006500412532293831914817926563706657046099405237723879703346619618619464235481033371393558639490719847690843514854851450621643385871427036681472844331626981686078293880987682030207517894805239182856281480177551056047753440444847396862548878534844277807349514346786551931471122371468107854997901047378357691806962610008260299369179903593538408909961749584217541319556356140442250305617607602228699052140390537780607301200745507018343150867133898161221926576565661184749553084761907242331473055912911037348966875306572081490039159623049218502938616732475666001819047760132497172700774306275965275813615659155765380275959543219439660512428582454093828400970689054714850895908881988554292725547094304205148296934605480413907944626770865821006923037994818477417669142716290857612196184330045564048929609858206726801157061360580585948384253546867845418651714743482164744500442018794210790635431510693584326705053692690338109026893185993239770566762127683802424691006142927198533081647617728812411965883914274409819871351878193263547111419881892990853390262066506697252836392996676032726288927002739354933060103572445012985457158116285696232234970295622745412286958161271775142188084790970935042916157818401839802928507547901659394317771147446284395871854232034853138719466951058872210675074134931922624885901135895891519840844121347553701457988894239390845506897052835675118234414243322618959584228302248202705798716153413863088276425664095251050673954367132244990123339642096751961799614856548981383988687296875939685251318454255274700069971697676462164732724337197341631812771100310939065988347442382564849269145089912146085963606187543831509189904202162036657161280204261404033477916176332184230875852380799923831588947491264527326140483068931182212288648845751540720350790987878902044416382600155180633144522774764066995950509935448628836021254538500786644367948235600563298315755840745440680226173121545902068449288503675244852732791487289641067779186863365561639320087655060572123514116659326372520379115398413977373867168973371564143532988438962191164898314153041578027379886977040598347395381538691811401227883848221540138857091169029171364197917782532957972875373431100603300309037275210754307780001347924779576059661465557312478471767211009360830467791397330125072683185589295568879080423206876461782461531596059703875296846928046891528880711191988737968587793272543375478582232104025408333459864200437773689731483652706990067392677919253908259630408538101159919321389338722700348695652770096822716037678228325756736567005347019730694287365977222723782340491366729410210686256636364768355069343991979437601395081641279351687831792870563535149019613746349596303149466666931672128029349632557050658353504904381102780136886644585090839768450153897310580550405988564882128619193108222782768830431955750722463249422833893290656993992649155106452270427634651873657510974093263660534013744638253745411776006594608675968526062377283192965782015901750220567279315810075292998032862150859775175588898723628514351084230988181437519492901429229948838352253428508052415452590007448205673917710674162517522908637232430808915385550636813573196087543199969052085369629110855363118622931034481577186753945764705645322152576142062224246927188014392922008062917570508258239172984334909593428558876675136306921201519109442307019098373797603830729679095319959457261995724896497341134076369248382404880017743002519385887525364531148497070719277951156022211175193276929806956732162840071495652062260115131307595527398804041498549667474142768488782904209576599847114454329349757603024732858730468352780038420009833760286099684858542014635807001031272809134304787538067458438419930598896625768426393558713156579379027454578952627532798878263332418148084145268705848070981434311087438095152035594652110514602246545652670699376676259153164371870247677712604993213126201072817658343924517827142710075468105452079530613124001410000536758704977390122640040245150207348195999219432060020847998518003654344189411858590537840046650107614854403704151298239699385855861491020511294934891591450269907051637394445808235871409856100174312963013848272205592505542653256274145566171126005642598904245067635526134000264268944479923613900627538797406275705176185639186638806616668984374937236919078996129852727708684523969430342651709231101165367242178668347842429260198756824166567576569468520247222673623224969456182683472327760874111507867338210528630060390853232968350728930764533793935161496979161843981172920563435537915163320398572882827944502396927015525164958476479527017397804608839959128881120158139815958369320062694591787919550685344049884509982369338507051271092613589428137503870529384223353106038065220398139799924711410947599607879319428522352735766414769086154871552603199037637777032398887750367112324827659523045938834435117755533801740561200276406326121522663254003381290762869825576866847267455279631653498516180972378792213393332152850127182564577281103400025969762929752464573765219872572690217803228942389060461999773262912422127360791955786669994962160751315484787801122506049075640479095306372000401541445865972779636759157044810929899688731933979201796478414559367597025931218326337174903338163562502848450791379098962414202946399618762113702063200219689485624843822335667387780661619898723907722603610791200735360106032733512321458425004404687723027906647110312451277086021951868887487247363790484438504716834416340088817983102300137827478891823120652055356686371315861257491375725584071736084109419719214630805490501880651365541895908287108019735004314507287952380822139304493718076490091075357743843600223978179670748943507878405452205547011566296635726949605844410113465937525514695172820942406745080804827428671093670118372783747130511780983315160477449175366527956350064179427305254912891990330804569054044814058264517812804138042641981660983738231939084869813400125451597500033413597751878302836083387571895470831780762398457355571608719107821007147134381811014806306239578865278709750797575400047687536350694899681882246539796606849990595477267572601945914518099496249657293827435771847183188204808823478297220462241036088033259454211557263227398481875515424800648356144629962838588447133314813888587386600496835357541495220585734566849906581197421178624723844780061084960132594502144758914451661716729128003164620151138133777943722573637731171999380556751891787118603119402072834468633367044656072185789680549232745921134463894133830614449589268524865790404925516185536677223608316200136847379559332628948895916574341008749040916711678813994081357655216012627685431114572006502188091254431307164469188042558202639247386435139836529284617653403974042619260391465466821894145079560940872652085643982935472694368034330667336287709341353390531477283738318781905131601221608690122715379711102418194341131511254236613953378525033933361945180703375768073683345278251507308034549753424836796834977256189502062846178293382140813749657441483114014169983936466993724270717974785296982207599112765385521047996119790804134389899534512042682383043240510790084025373816115218139739593860996390363380881921551488716946327190989768457604784273518022652741167430457441746803675802543929209076251240647012865063000081389502662973421822010401688626202865278027550660902889262327405673093800220792007826015343543495185272387116737171639505295590642780896854814640096504873178955444952178302286750246174254571669334939834664286654272165998628374913586327935178319230075968595958963978930962179592213314492636485829336983102433892120489988350229368002564952896155400631033028961122361056836953206205326999973047472326690678378166503322647917729695658521024031245949166785224752335852589096236467290391643847266958966510994858701081620901988175245493059835628477771856378720207085956269282249036825623757000207953528115575047259082748195899300891764856889941519701668887296276647209258450690088526791236088716752744542066451338216174599802442035266963332361912052863458602701112202265272528606892644534671179695942205298834185620491217434922853690546187499007391896844525890942434373177473186016526355196075172169907741345415503094072338477407858136387388249061235339271646483039543673140790247285610084950302855303088832197618290991697936131276595037964877870459240034325696082936169537220486193343399882821954159370245928363313867312378724773128692473796413879327920640029728773529414268460232982675213358211460068304527021744126258068576928647384613058476383619889953568697529789147539616934242266796349283465252883534077131674278380214899274536895397398885139306669276509441288546061828417089335063721760123001481129332340435681805135959447464797192025599511618528131520743485729233468380492285429061315315673424967203132753313113604507045840596336520165809411032476877236478712401643783898926657513719835369942339048140616859533324079704172255971617380182893913704582041911348433660633348544852886887861867136884954843832193196849510707964344962339686969629983535613534374032012714571572088323756563135779446551306781646769494868882899095510453891675567952448558645274015715269584936900880655928391900679945341808197853233559205625868806018208648918509093744830582221765620020855627521976398723991181872303235638958903191472493006202230915820251527742409949865418732141681723508116846103036865814957214374681534469518820528733466274924852539658246013142818180594650298615755172061202929799539575259775555669440485911333201285355182137708859830704703947368959010203953143537165656437789358922481016039087799983339603061200785985682369815288034154292267858924570209045589734309213877484849116719908104818669095322452400929753577975733845305863181555384483929087830938567209191404180931453231679705301955641130662315552601647727464656895409623713264163103305585547579348788576586809268583100558495754088902436547510346787716763543176088275989986974785647934469053019224967973425305340016882289324210494602148468510960474158040210558184183093843823668048152532724582627050485001712711388509655933582358320749046011335278777794628798026048687423870854784529210773017479287263781557789182660970880006948304749814244783182772339977999683298491817032870947906010470780935221101146493994040664825672472710635765515951037353132583700221838895166026504424546922743176289669066841549744903365976540710839033258456971132325437511691957714117227746976112689819192668793420508762385391891571075704833876658494845421813183553995565197513872631149487376277974663871653472772399705203115011450152533656705369548504613419593472357561168182328968856773150341016493308872088691411249185468007253204974570588731306036295626753022611844825146946427488824930601401961687445602479761103389280600415034023125334811685742356448392441979087184094340390519635392034631433733706964847078617715003765160672282865588637496649600510793138773057779516520634423395711116034403018149905982930412209120223330684325606326746068246526784387012225652993228878437358068402696290852364497671910031096390754394120213153466918560773871010984112972287416629971612162869639714865772455364603045744899897868295507248958581519697341458122215537475575363442976244648098675491828494453268994286027687591862212117669888242407660252244815326729133415842827216415782824057369960823577909604256248146342696577817275727381884343706422850847313407545454348080973229437322496747125741834252153035124427328556385360173384933946774965533699916219336546055657321688949969350703716171434398123050856682712895816389549918183215048090167037204722597983546789411528377031477689819245010881981641155650738233000010269465606809788749066192775623997637317350742747892692822487887058726237950120807363793504209361887889226746275649256508629878214430755350036305508575589395064752300019415192311630989520875527421053870198301946671128230080245545048114272326445683922134941243922617563313528575175395108622306347123126194969248240847573395771475981383016650298144915422933566784041278108523148444580898381997977915386274593670756474603588789181373544265317032519043879266464128522439269013236661463813886042886660497647236281528020459877363383800404529572180739130156845445043906936609665377655785585144918269108939417644956156803130155185144826204885532429935273899353352268740500907460829886879719159196864577598776099881094570601197520624292794841644338458635911036419430054357137357359701410938604778489699956327465278098107590602670245752525576630031775921526109842080045335169633305686142113301030571601977060501688266915213119511770734389807578024035270398095725585352968634375369516206196751937533886376292848765607348160907370854225553526463901328694330664865250824962388987890775047574035914109195480129121613094459871156081918020877304802179373019307875042374607875521476724471914061558502305255312691188597293608598638560305258739438274276423773205171820755237173484209375323431735039871049847434861955967387676399124021393427623772096432132262524844167233692323769870142198584367078390206569044105895152170675228776165983778341094559292305518739725755115628462081339031890245582550005196079696679470477130903737187526345926550369690505323183385148033305247121793464067322956787874557344304738652883227911942585652628600422755243159407677000563133682686242646934852281943804316487658229524110936164369083785224116573432126904208246446257783042961026020881385624296382509591772311515192321936452791318711989350369318174513402998201434693907070023335039510551330980315963321452057811266596027893284224046953857185592638625585815086649375126876112933301602693171020058385417161748469342025600201369110262327767051669582770510049188351921466255091625687322333597143864017521941088168119774023020160150367395512057329963602799318126607804182986550901641811585656263862817635996037673679318880632730512107609150200907884702994641142748794311021737795136274624932022456167422198470695245066289330156989983188742069993716415129443329980547541076423132838562342065237129131681382625982626297326615694583525493419614855437645951874614829308869118097954194675544406341757741573117695072495121673800529301738201120913487823258931983128512708912826383466475734516804671078313265452205360658821602292087523376071725505384929736422566499802009595553688711008732603320529665985273324069168534629264981053643921050615976483488456987918743932179735453443134999060284503210063688953279575646403294397437207033510884494408743269902309210598241495182011941860967825384084705612369793435187224925888785314031764333537398148635588656952780324785401276993888967501106730001109876202353853580884792893804897640613346764590177334439694131265696608181389596480329754714120579321374734004254222307416954611638483708240100006888950825611144312915002097458750145624083413101588118414260496526660906581471998524376979786265655528059881570798001427791214063651053199565315674675483356565468596804044428514179714902786473845113782584577405065158036973526683872992718507620794167262664060211389144232700247654106001955993320909576924058648742388629796394166411492406158687652387455890073471830926706262036025809058704881414243973076788748290661429405893104022943967312909545259779433057503926597266075502800065672195142268408138598928362201586719176204003687502116628311786816820678910778550757428533079824338544724827308330473766377527766429745919391578709798574155782368935106441445337278523549516853306616996204647921994956679127468461296794167662378866775529261531322580193042034791363729631212452951304280073465280226537095587627273501220586039058220443446335485884820684396975047347687849063683595706405448133136345820885043533687036875761896956353909195910494845055241893671640898300159706472175154446472195959315863180007280238568821929436168158692244978366406790706944770082006728293909127435787869274794146275884344071858352711260932717090042731931314168153079539277374780703245713782565453800767235357101098668266767679751768117254667344610689859181146675600599367868426271159528393147812227315735056365643543415811644922709854571722872587006515535869873903659787498767099876730485358304422903266382936909408386105868291223454890043801451896652866234777512503047942890835366673520433437296099168255582020860375389253592359412303704381968060535038430939266314498691873014437500224516801611544972108698682237373455389944643038623475568840871909628423726374218651433580140660813321834374134562491942105498152764511855445872918716415060848711698709799442714830607545929488975688220789332407007566942525843212421482868128458314712363602218905030163415025015905712169411532754920381222776743679319472390166000306937496682620547399951035702453319173849804934940013758936534105161358676510287378009247079456939328975072479081407525753034214620948586488026439123573655156685473610557415135841990303762868997033909286815112773195423033791090137663412642508033936222751414823691760392470156396941746639317153203794782479702504072094463949783259762273940956970754345884404395777074531092364968662724546534704040225314664314134041364547405609234060953169898087844997808861571338885857976229133310702213578417784787754035788888807897673779614879065017051605652164075128822897613735289291208950869158568775515930972927334100336008272791207301272459566324133738696109664272752548810330300371654387509808676031191932886177754510263135056498724808921036396899022970293745703133842518902455148908387753371906531498958658723465345515796061555222598094169904479342867064318302174937863096751028063371400119629280219584397773251747657108648144802142644227506000685099116141582811852163986812550798842578337907682807807078488368238716701218986888226128474082215268074163657863386127823435583083793427637915132142264367651834614561718357741927186898353970252353152671406673056162281085438423382233859376398566723927942406404048013657817245613685011687225144044179639133039988668816363999012813834727716411175473401008254990595189149443628726153796163295625084894424583596618161463794614822305608364778836185062478395671645651594609529373236631565640591246634737846316548828755514314822900330604937766094183163648440032855909181713371596989943030194763215079370113425412040156533335627982037916570881199132124958070602648367783432455407198319450703912827500331869808797276646474923017511549626089725178171692636859795478963489166090169643149666115023130916900369560103326700170816586576099480040199010245521222441871921490414492876008020971062207304651998901396853029967214496463844228567357207751186685152835345349707978252790379860500265128865232734891993238729144486480213894220849568912040040280662623673557795963317137345112450414256862240755323320810141064073590448493366341071909203527085358414186608797584018611295459428596931056173928267685738703950003264807988438809941887569849080872534733042062007031796862902166439439680450059779229095227866340950663970442622833565626005022600250488189965796442981902828739060183544530685434291997834165721423448795001435636849587974550177707567092829895927790501427977942669823317577999419598551614293123253708083221862473858055522679707591540127175987046241881208855101100075580354430196403084865890840521728025404677655884833743478747378890328873705229177089553004417324247504656643133875700738227870417760912765941375511379335264411352707212784577092702633295621678020810925157863099188540721338691944733911404200890766990369846399487331906445379324220115607469597921486398468049618170525768883573590015079235455397744338145752788391246575002639501684079635586853185756811783041085353764204201498131687045263781925120769639670645593236229740177244661911228676777970050044593834001872941339302399206752830393427253321773131828334344338280413060719659377986562348515916999226166366419518766209507450611379267912641913677307489626006223421947115855028602787086615237320006563686892301362628669542336897499230134790107973994586392570888630863150543082097531348166411394265588242078521477194049256591288613213334814205518270557815426131802965673087051906913091259534133971704957338041202674227351431910836448373744431899515329487254543982556845846719040095421374181176578302671963912796714684115154442425652654028003833488480994749525088766294344187780287600972446980325016612342963769266632400940791004590342139910597151437071168955387723626003448179306325209884900167819141559267492995858264182118291265780350359016388582806023200488776880514153490713141587330375730986856723505100669567875727396304445411894657226879942104808352647454497100282687274134920255781895218510950964904717502153906068222345274847953039925808773090266021994710210378165122737583788330659000533608733363626486707818920158728495508003060939783025547104724392675943542271105242533184102710157785931065707972272677602171537857995995132782866203453036020882280647179601307074910502606951687659012149353515062183509711987488042455984823929819168890490472867364320167257908501009986848313867877660143276008458828600722030533680729410169609336090769698879934003396723462265643131341596313505700868253854705606430306483215861460741535722265173720068157004890987592374389459494065958257058206756082708258081402821944648701663336873016281843856378260708165350974509167371508983795616322665804494858105665819735356504338591889311942319173728289168392346988869459065918592757771097672508822877055850219179305081164110202176785122568940492052072230801320883177706862248792579593003208642557209684732975170455458240322248797719630493785937118511779499493580588918315957113665170663013390774143512609850369663828846810206815020518525122130119339855673278820165049572465060471081892902351106904200928877795706840623258753555331563970623695024806923364093999843937881580016285379952026715156914530048089984949019914379397431889744625536469568807926594599317280412039026697368263462692734807565055851478678041495713791399677547993958929428496023300690205617017136831577617630888862753351283684370864722393816809611505249158967603072975826168069734750444531413667851485414851336551984077375087233315349354573592010494134833355902868833408351756205606814126615456202745314840515055250647317691780342102290207578395543495284025391260754274489849476090541260785146310852262576834562336742450860917497904656057224675922537589527459284614215880435510694431676357670707714649982047339819873714616071901017674195006379929451801792307695778154719837203303551871350997050571322927399438389849076755430294787556810780451162986800474546837990347727241001619803258301754468040477128728496917515124507680087463661558453337008394772890259739621118363365819884571883126445657262548131126677422019433575272190614347029615013082532177534673872514088931968063284199958040634994583285226749981436643228138420283216761707659292398136623607983457338811210460852976812730569753210158553698460925635638614181897095127659883814989890459545974481954945058597422604177105350550064632885704410837241649970800411640255988150377187410515769350417559132045587876363098140540536785756193100133040543035297500230172365267478401097249120232737801200259770352908816343475386200189275614711795006508416768486446694819934032396372281230467313195337246016211945610767724680501531468450950997932727508410843248957111309709156278423022978836607587813043088512730835808136204302569561153255730307086001212628976467441573443052255752093016227801900106208186781468205932160412536382134022762683119511028102898003202633992506896890208697421256118087143188570938988353787685080735815561610491292754679467794897031628581871244019705839322340487756107227591361215875579932446519991995413283061282693625339481190938456342382267166894417618878310594314939024159797902103794082352030452925960654176198262538560113385350875081307849838572241302783246834729407479006434060626137926049047841407202999550212020716130308967847079570535599193425656850123414766945986951835466201265863842194166252072392456688262239463766865863923698690441176660527699334817739476745202525387494209692385661802077204481010781102492889887227048351622136569063469290871565122176107543262622308494552163986436102478877882790204646445590360790190631794079663851308912683138212462464364307463527045023409065036535828370923948025995447618680358932296583622447016464695714358544087963378888991507299326729234009015548781987672286804830270269072315317787976117041074333305288239689876269922029245212539131410737357091235906532959774572201782912709393196966411460909331726180275720565910069612931042079935503006782254814545435419317425521461131666968017050511876299295309153921020143451517739174625419447849538967810589219184677765492374999878343496700667859676803667884678431280559850596016794033053802513410151571413583158513903465637792888082686401527901840130880611392285896597492724795920976979548630301195309936205590188830782619537756635696376869788246268020044798682237597591485769852099052700544003963357465512222512176113942031016651862210370925829611823517618280561744832440293799447249387463284357897816636341584579548824766981629838461005718466655033945234235046395050800769628551101434389414570608506739539611305498199164389344092254965625288238948407780973688355828091730565410028161786144420688427660889630832575068673552473632143698786604013804386216735546870136529157778409153272234895252815681477516582536337000222102919325550633278361760814150576405087180910622713081297224741787631583779428527297033236707588753266997234591975146290164616283751619617710104937759943379675017834572369234788011400897596795403776767628094118794613778258456476537743052294367279746719719279819070675124274135116803294581750766238175645757050850768072015773674902784176819406150522554931918782394716179509342928363270441666565465229844698784607276131542929761596342529858530984901154980495083239067282524099227962625377429076151317282978726791930636248967368796070777581269506644909783070897006061770267874687829438837912995646699845210197877474119257443946693630892098043157857352802636462898565671479108800468315620844657583258891063227522483419677840020009811904059150671316724820041889759925815375087953507056782731040341037642408370744734321676124994877914574103323256250204833910343117298902474772164757796843056637261096310205424181531498630302818193183990235009934821081174414537871609585359425306760993431222229955894991746823573731474929519403566218335005430464109901103320107453109437922427246971046027660723470016132978959564664144608355357033666901030068510926538948319391792561572017583565462109654757746180844959001079905392878098950710045084812778156153857613183567668012224374032672441268263774014093658636778352413198747396574470896017338022724310831709738659631113900885787599283730366212942102571611829691611376471635692113074774021669092341577783329662993008170527300121662375337794821524088491241862030048252319718201881111272572928269933243464425422758225771925027022639604745874681933453577512531370418032644698953608895274435614202564281548535173391973446679491644198704632139194957111652419549561665518271141199217161045101966378780483023950945537970923766051216268723806881154549584829884971080553567923548207653994574146900370133906952556247553692441902746809154788667368753161220174152143202822015068265651630179271306271859894111836110304901049005979957834175621759753004398786856893745962692841301119192151730268709166782512030089046416829168084553901613250867331391150132026738122507014857071396416033111402254272547368945811103797911624556395649849778706478403658770940366088362878645651273858406217609801221334208277602517597099102097046037259196196704710294925235588721137572309657980041336232549756911085428434632598058730012825563498638689846535865033442795672823703340437695827652956056498573850000212147928816530859843471758107441590557220705072905897402606585280218310467222791826271127850298403096325390027865544907859662052298936425929845561817225466023370562741555374528706233535288895357637320772911465365236240200933976470999085933784869103021858040820634668474415718339707666958593086790447639355797781075600462124715609376656188350335364025097630736476637724825909891615300527835974657393483225114925275711623180388491362142315531735802782019131659752968508231591633760810552731154533041754637726036690613020503463508644335205578676941509860110918692569243947845353138722743220066711778259286363404263862369575748209275966446741098487253317263514319998010743591585260980570713222705802242668583340099617898979399862454587252105712586996623275250677004038490356774749525359286877038006837176400489953840150443969605710935006206235573459703028365848733815278708443911237432584899437945775341888155511262508049673856599790482419865076808842797779281893651274431646704421171643048080028333550651219021845927536627718533869510324917125809491447711744618587062669573754970882933981290510304816190008373137637428957586188420958679841427566714719076773219365983027056183786790158866345368693997045951844812108202090341847240606486048073815212719275104086377571499301784544600431469754113386739870952745101926832682962974632816355427828452053975713393575159823767740683854584154361793624371951999100108019730523710897450417448558744548842351469431141069190190674653716481149396451630189880529175494728277946205690954686795333086661274086705770328112562779526281892159350774380058548209658322929120793606719646778338754380096662395321125818478709514049130086668004568060264618689271943543275617521118360736587430572391203423355104748875149701588756990233554476009375303059909529090181593430268365202705718918011398508991282929086168465529871605170992018984845697879316932217519992925222890874394773067183002620355679601191820049300204713244430508149305609580529214547476122865597787597627554811483667264759513166474791332513899500772639543766196253669863260655788760649986685648924004111748860069258432762749230767858397835164139767240553971809937195899615775586426900450582421557660420144809861065600184084705956899412255317945983520566255845739773098079081003585931147828573828798512535968162875189982666971848565488953856453599093036224408681111280183354578754573871139917360296222437452885811255917542784134273135071163670017952685824096331918695439259483896319333676370709616298368937872101796749293312291587721192530851783192972723831753722411602601290447696489538811603892304417884391099208557460552720437874656479066957484697811325916749813822426415209077630778516106677429046242843767587232836140651929249941067880848963193888465434083402496825938327420182002252472369546955430688235368595517201710135607050204767356597983120507916336368624599812214585780546700671353418963340598284922229823404460788713418340054015176423068197074383237772569853951727125710131324972535128140346584044337578994742116633209085793624470802405853054321291489217391047322634299900644388791820635941683555571270369783761810412849384341206488394885579082473133970089137782985116344266829940889046370821412170214827242822363387586496900189051893799917354637863683064352254190622992909101223004050157280150922449776815464077754782380826960359115231430152019943116373487440326824429112554115581414553069468043009981199138429151465070279990696271453881991266372380528229832127545934069899306951906135533889342980327400627668212865830593956974698236083382535898011744596615620373648070506257583224081193878372243264489011664087863540808915092880516394786351725220832337880919499726259150125803849244691548823963975182913171709711472254466103538044256698279971223736474118461916510280479558660338367906581025248220000208862308630024659051892671199600236587647664173248118580375256480275358902201914996504046798051229729044049031693542740447359393438451462612793507988887548691823224299216506541790765113371331141600853440972996359074086321364731597374738742374533239872256279578554613791970965320227659667763152166057373229370710073299451506362626684176881109834426801756039257913481656980095244661473652775049182178854766886650098946131428179195775159282298463065167358351065959471272804452456172937234298903674637569018326040360772371593818018887549511073143735351400391209061853262393452268906822004656541234686729502076121019402612127347284918065044822038051459746722091108176036862102659349947302954367396118532245788353855361507538187555656301038534335764189694656892529541498274175939385969804461642872628056297981701312201136449304928852112349159919323900265620867438552816753600008497521138839199255619016325175996990261312647541694910493821489590613440958504077772075880170638169453318092159262659957412893962265013711366052725851892602235973141191739055433383512097016099969171180175988815565784533854615982021424313598153815604456428857419680796094461812530489191565087525386969963495982439252910126005448082729772075127586217728411260419428622270614744101955425590438381323593056731571100823408050409875160379114981893492419368205525195539827095427599760695919295596982992147598477188207179015983998276490618901121411498689903883829869998418753541708511883017466704021848468498921471365530768768746157967572140956043057288854829009174504564626717295146038954067862794003934562023979518518017246550317663708699588992661379132672633787290676327040420493747539487496870229580183472234364611147530207819243129784040694853487611285715583123783392616040754192445841250770532539000441593450003850023838257008527813969074078910891846683039474261386069107680172843725033354974141535269896915628686585784258997421048836823453624124102744359082911195515790018202070828599631729055658424176075462804279029234166598874249683735471998962072530500412915542539894676604839562845158018354613670768995218133845546461083882897455748209294440653444658567059571351539690431883831551491468645748946243517198774251703186518505619953061737905625592600862121466288233471816917586501844760688576885847180331718368611064485541382714086591665175968678095772243468617520844025129464509030729096462043354773078834850502075948796549687236369300945145321009470139214693801125627392683159730780870009942611714260039556037410442928098938209352485865621739287987527297714966822465492837929488808193624845694436451064503979207961598796253685840639158762027602266269373859169948963848092755626353082110181431862847745307009081286447915080483198256197640306184336019185023099723862998898057258035390292419477672274199016308181820621891674494091991965213140701303743308352592161331320736492360541975818903142824561687649280032557794507291877056994226745351844931062228306904989117408364942169111426374753966020228155591329484944417920575880795861166703186911985704638618370907580337262645053497941791702821618546757877764700483413839800965213166025103105992305537966139597356124324603019339406548430044884477931694146709860046482763069937024340214936331503079636358133433275320790124994535029366072260993543945871583087291864507341133965642748297324530352537914669856447895508248259050160303874638407084603965407456503876751748391525168035351589281307837901932293849253224646940731239315803069513546041368518608213885513564614377891855294080939253517275424619139766210032683161288476574139321853616743825676502201298332269312093985445390553061902421049583087893465861201381893972480696414871408292201419963268873010192608206044311138190518407878171041211047908929726490627198105471941397463277417887701792849835476362605385398817062338158082487099544969402596046126241721916319013075871867801088179846446114795992659411515068588301890817014585333175896135620301179865234846398757573595488052385350708184301510709811747825769993181926911323010405975369084058408179789899574174890031562928274883225905862607409504876039323376805160524617945455875347694665244568385011066608124611998495743675986417561871368449131949005157941249273344730710925680517642576305836440078513435996697615504222021957293246557395446773220843071569453942345317394114144726434684906795486353581053270067311779830551109268868669443120683051111205204064813169128364996810175379813092456297448868059069850887051337396748822529369285301450858944606579516307590784998968432387817779594348210004062383135630839850869379388707338757635422807650664815447089101715285226730818739155904984438178320632374646148430567476859952415387399141666645722881618873784682830006390770293477057199610940767922780042550773607919191992984585414781913446952864045478568123824813713258950764693424280852498989481817692809178994467880494391709745742564700446643894072776198610911428456730162002554922270325765395351735287674504698463069909077868563551399399704953698438923727684914613491686913966399197562980046673380110837974596610401890638521342015464304088657602104950496387907973766039054463947436151590139026551751978564809575091628815177140375381000856637096282047888764680887865583437412414102411664277950926382630306687056107785696938416769313138977143987890288566930880843381497693369512695308188179381636041983448022469179361709479720546453763196748810294225048739552272662467218631165219678883398358125831173368352411148959154928993313181806125728159153810273312186681116667454660502380217667752402594855052917261152381040378013438178518963284390043704581643377669264204624490062044959918784170564405238462342494824856683040774376303386465318593395046519104384929750702487171619669839181014850279710941544262592297343719982759511290743602975410622746252009795674489959223055259964644539909321461789117641336076894732368185509140908992208933341444601817271837780196966290962623146029970236712774749665762434348296015926287873772335729652639422844595716312464006537433357678635719839584380688533616030565361055161696287381803779180479405816043835660542725496529748971650165848475708099117503947756285374473872206851014503457705259836965359690059376833092003271018655880780584193488316026158498108183896596014591394770609559475661749580852147799626977472478081471545764831037010660977133884632828790616708957389935799035176322520351648813857350720792276043618732203194354779463373354539682946613931207358109927186831239561152085269835639206242031464647716259326216107910138560210888016317826503806098263601163665034081481087304132765637195717104201293919032425000666320021563003496498610357279579772674380851086222831094282433050066078920606878112785767634154921784561535850107241682541052630315345445976955295694516346499632242482973700715428163731384912820708554912407411836935443389611431057611806073899740019368272995616343657190869471622058934412826179724484385686076862588622527047460919941657548721294523319247968013813336551041492618656898620711013477844273049624463280755871884376312139607464122338370818912320812245799173724858153106426522682019265829578735767575351827627313285031042188397157834492580175440124882741296397198170676755853186940528895748236386372946845005109759311333929868719191120686727519594839493074993649802987128716956469607507748464842856816086763880307388939421354223278109870154691361716249495202941092747042914473616769304184526364987971245065321558879519627855254477536505069500586051951212751632204359566610221816840884975763119453947686010792596376353548534457633373017791854596727279842254897783207746527821195306395163850531481215708178393098488302668369683929542299082840141480495319777550927258173023123706780861772788986316850647993171728268400817359731609780298684135217828301625009957769594815109229100600754410393295256343419626183393825222001698611421388893284810710288297837899817876831566489490976739698614840400802770244317538527233271785713005123937382363891535800287852022417547352836159816908609107182747419688388414891714380869043474601194387913584504452035312458520058013038247238199197755508471743987824597750519346766857302609903014954436255660674062213318585060278225515047333838069833858981444059957584828044857931963736619112366895697780409565635789372738945483488731212602629246136969444210080156805619677623548438506989663969725222979599184667086172335880716577820240141787256244420361476319422151125269464685901809212151371232509965771132585790477712344331842249922603024208732207997879324379741321899897805209983759981345615314802168810990150597801510296357070961721318281559997794093280185708054273708883257240011541162963090390070089230457573305437022409179073433367173381168933855057796061130297990234810053131596963884524934622732708597941681202700793790913845564074306315540838625360104905961187224775008427288436623377559701737403761773992410999062003386567615978817675506598736615230918633885851999393701557210123491196517680665974609310937524289153264380075804045095049528161749638271087348169989049268441000932958986664002242487347918306786457602244539309755238724201133785276698635652303638888096741780104788914342455961463562566168541261845226349365757467594652221787060406750988265846652322911575350682434636879847068048895906359675422103314402141866915144088032331728740465174404024849778035956457244708218857027961587635132797858158545027569171310301328959360909103649807199719930369365115499353403098651788857307215502159555965675019838259699038732919964144826120358870240020946988437921788710708566787352285267763681632698530907216749173176404697534030742282482780504952727453280873676524126867521117030396852801425470884387119759675246454997336806855590501285738204711908622732735993775503504353400018392359766347086391047849932044541030103399893012084158943740637620254557200453738385402116525680706175228306765017737160651402447538048151861605948888887110260348604464575634170304152400408043148620940821091152623605799088073088179593941886565403689791498324903565791664826532689647791879331479986688389406449008567575976473466867372591098806318974344270847192818203395247054679749472235415008887516891704718336059580186230035853055077667148373199172067480270621886083896247154367238046401167828989923873248290494407867141353411742528693075981874550788482426008376771181294012413472052238310324113193656645620616159842530295005321001903654493882722619774848270285569555097633138791289874309980573871795020256352591544376051699344635776978789930447840163009039976551982310719722031722466458969902238013562403903366767396014003735790425206307604263038842899015755297295905270155477227870053842360864535994807849321738190439753069169987356543406265144732522231764855924741299642672064593062028538721357000308860745179133324968579091554804245093413997447647078678391840943016202478208237783892970932926481680892494360505296179690291262409811358569545089289691052348924252747737705047591580793804372336104240644916993568145136310948038886514631775118359779651986750856608526725767673137586087273583353060126929811105046650318235782378654442538035277945316879613573251368425192550040066697813509218336300254774676320849969480678441491791410120364757741882643212352340479136103624758866663100023720035229691678620240666644823209544390495000772604154915800543945943140558770224991274949781389784124760584659546118966009028862147231979661376571231413041910333028480077444463373529690628792104604024739614780886735552475749515498613715440915783556200277856362403680564491238089380824250713978408664221894348714694995818661810472162272317058281486093038101108177865267316892386253809436231667211380190412525114711800597198372400009986076618654813762058269389339316429914363115399029404813013830339653978104632710213238480060251826591941443965308402201945184491952538664526049534061655542700537422971591309525099358922202436777215616319963783749374363434845585843518533557560576055792795132369991997797299901273375060195194338295624122880938431761435976895814545192932946134010461840059434955755088546975770211121858700448171009735454540892106997071826397097112820027077069728579477267141484045467249936274236270522728194915811447719751268581247051115349123883657787842467062516250689161578309470361695987593632353498850248227660688290607552338807655685119178350284348143868751447976973659820846263017570050689496713465956262074724631126554115874509990673652400324890094244315842679039191261155425797263731835576825633109005851897937578428634803855632210231955961846104405588694017141541024453014258063654792771209357580817352670969774135897678687359155235252138071169632927938879881391136950285196780224089479755016255344137401042427201840663357913179135715038055921099293442167356715858146005055282591628794592345485142640149988551817633277322087048881949927626474317222774007382357184155893899453374330340524541075970727823070800690954154339808088473938774907824880077446937467084355255328753493225015818147575575240408652489002970945617864420592272893158058589840298124433008774129060718222319156658706012902219280482753100277530887305058655474462659137951942433824339759534676701620515215568390282791429987832517087437888803739109405965285601974227762407893301388723184207807492030760909286789043336728837519371181608300374751048815265535703378452904913590012606284417839977870928982209495970841346622166895946132773497157228415644336024187662010065705402856214936804492006650309910608890959074667779224599773552618562656943289388447096704019297896752388447330682616178598016948761322919878923011851121107042317492773634247115600675588042801903058637296149013099276750980465553339581067601900699682196336270181802031688690707458713824491511989127477034968283008139354443530598600032633558645667740335674294427264467808355949716164843527735672211890831448019094645914370608082078207147747809816296004951725785941225043387368423101519021288426136688124965071069264494450359630866601296720868517724158147343745897328439540240704056295967141171167533074986275956783000983975651589510644807641358527051920480662562419245481144768863998954565764030299567179381728391022311008202319287944273798549338379165083706363589550143800892457417280263576374441333139096624637835245860257622121567078775838612976977015904642165576008199002825995029763579874370654712330839718212242258159911465792025375950301673938402999635451669775309340963438794282241827223097138257473199046292768052838519693625658953390540537352931043280246772265058065078181564305644386704535063298652017621810163959853152368622549388795029671720941443130345813554808042974329285725009727524879314969351022056215297891164775949692829468194573405879446346778438328593880552897448667690773785218281893779780720748102497676967266191766848428496759433434653239848990470756221586379617618872890395169058304110080087797304555380968521225247227171796789833433808958095696256753986076114652182134480433625330404817401339691466788260351914313835644363932806994365813148443589983741163473201235387526785522314929683287807243958166188409406627767823841429716916532815179659465609817161311856391783247652947152305572209018233038248360905343793598476977679570721661960816691878051842363297653083212540212795141517415935183568605674533194688801438337311291276593205603109971830653319432131184903512347131775332779136113367683096300446707568585789618813197124732617077817420226093995508365394924968252645667982892748198457431549849879421211270771178909543123570941536198323929948319478503254261547597258733455310734246885110673366386189211022851926764545509216949169107646436939330459395251023131458070183780926780944022079053267246918744497258389969515365746248746274343310530081491341560301652788028646161953233642365932606779242221978034140353700541591355412429623318255218362184249503800243756186839706352641755181167611789488064207393799847148178685089609709106715013108019700769366405202306480800424876045507263062380516095534113603607715809554841167197306315571998560877417654494060133336589808641482393269838103756499598360094279258824455948916274740632164371249989611663618115304066364180571312473219775220229239238258988854983460530023222654217498244570896836521815664065412786920500105188300365032931431778893718556990788632106479733841023498623555071815444866274169067987385774906833283159912130412284633795082771839943067853796847650318556773809930170858599696466458979440982108904316389796259559012421247471915782177695148766317811509002994292461398215754149605467920098058264612156072077125485231748087623771236404686732334272389407542833239610559353301239822439125688275674968703415062333132979045953073105961600670890669247215123653564497325886074021725241663807468349295643505296481898759280546817898227757571707874174872392887503061053705877476311510926327176180181837294224299126856752801214055613305070034486706772003706295483154057412901235397632954250375832949092493419381584989895913891368260729816303064364433214544183048650912186942867553609050207291338170119651989844546034081505607652897929153046801269589067003206877030794670122804185655298868765875798272562646708332869078943760476627235046852837791773298403931385631276946981031862689382297148728844843915930052366738551015778855264505622119332249545726325180869169402937567986851234247247359392046221078039072055358389171563441505299667235128475990348875976976380495277142958103243979323814764661102370396807621264828160164035817190377730663477985875070851380249387064267948952635671148991335184432647983994382199385220748493003682833395889746154625021095521036401592443617482072107703006942259434159310268367449266540788654277028921749591314197128063941543128236150817250184420365721686975221377338198206106600809473974074076879389076207203231076889475714157028510039800855627694674192127289094122600404175663371016830347338662028354013615164109424450630155432872203253743389027097951448837141977303263144523769489707234310665016752393992138429677818910170369180177137526168102474729760743429976417324855968753629959035308135145033292776965630465249283323738840283906649513722689946432171082865923488994029634954278458224593412363385079574569684859731798845837601998515593508690224344022696034992217586772582117696632240473001653233533549437115111437098134382008208970451164168418788488606268694267362113411157961792585988929888863098337643351376573311561744556573559046079146173035897274638686372293462021477312347139838955742736293392889591568262668360586210069567158722135406519240146280202017941250703870958576872954806170311538923358423746261696180980635631599966307065623091246575238626307843127377488367094347731530011897402998051432747624926381868612906789830902151058353905948469007656307250364951662984200738608313416204481632282252009211207768338191406564030347626294540794351102878286052441904077075472289545909750307266285603831882025794374693466164136024689342594353014507711012782464177662810316032092317720946776377523389125255525136983139342607439600950398819829584728618093547431662565188450883362665325035792837158072291642094636789155452451063675723490974498806813119563385072166064350568921616945913583731775145468630991172009939760138347333824040002795670281151342144945983345123665363091921315485744332373039462528151075761929927581733257665390846616913286115996547481526670455590433802850943384206167063909189909929188874629376139799395081333595789652385116004294219211419386537407449768071568056982071003556826131744175745048441907273616837066745214729256246583650028209652208215252732284626028629361725795850003980236788461145971290931639381390011791467309538088672690334704080605146709591185843366058161235587660402933964279716287585713864894715225168820185798447644450967069870630378511535755146575545996099880708006250451465308516796823153525062740727338713117219272429810092281719137850652295523813263841242540835185160899056647174654577848489852442274538488243098425327587569479725069842504242916298251115192180460939907861370182290340813396559987927427944861684675724442658463435909414778054016421386542027493206538941896099111524535462679249156988822399171197811826718242478496734733915689733580789028536919981562580308982207384126165597483760921865202744803011807093459123353428368730804949768004736245229541919302201441117882763720280232657211235925938930506561138503575528357972654933802895187400904974784055970050764096219673718874617115721252009702889827303248555951572308551673115357575248264458126848012080480863757207546787678385563529330568991852714746491368957862991435858861855837398673521535639729875885526325877835347434714506256778620656225741491538626377760580691976532253071527687403518177612262447028109344744872553415532691334033939405783292518043501949312861556219672810931956644198462778292700731641166663930109904271078870804289085304477276561130510757882733036187993967051317818640086534756492970344117111483750356180405036535534280357728462878558618885085989241909157143209861817842506851564159991827057519429503451260171300696884413732848255673063993265662603484855968997418294191282073813008671644883665639373351831980519310771068929215612582228061203886711536464939452366719237092518315699743852371360913550542336600755891310400104781569468087526655004963436653354333889766357934678123309538609395639666887234002020941622497626006843729314272977993652161000803703844971753755272049159498737001663193881778620297031849218473059722291139449445062473724917677826670863189325074055160270077055689789146802989114992433234526122584422724445872845046776643986009601691933079273281265805568376831833014042227911828504770246203427567263831693964961145497322133185437283442131223257215774799253572302255819640990261019568347093055711709470452743679005831630500815578332479932110308688395457453087313330210977271486054696600600024709420895087775757091503808115180636256918511256710757834834579261069446580053801169386025018519764510733461792609384972512832536439870558280538440900999764162933966173513917005977262282058016446735570715547044355529347486808604228847518308692592127367158583590165393849043917150394711980368451347522244620298425462230440327831702539489041048902428114968521717896762579839227669823741518427464816117594805027546382262850775996480191402349061119257756498683595575606069678680834624093576555310524560497841171727714593562378711515725915121021536545516749805450741093589361843629273536707823463668738428460379933312477064539859709553095207713144793077173278562571331477268801549113632452279754730285817947841867879790130517969339888172361231833912752685884327578468893993962442385861857261143352335278156679350470509171231260397558409430407909539846976538069445700224431432025471655804803846595989745655855998767728537150799537757296648033204335207637883083245092065809658969504936689725401934151451678140491111007633123405057385221589812053127044898821032190911765500499119491281246995968785552273566702429124409033512369147847816916615313467293803460668961503335672531719321559795685293459673198126659755683684659000235084330804638309096416984053129522474152042554960593270129834601980864047252129658705120550259721421797489899031975678242940220476065649987310057070866035821774270939142605324914483301659666414789707732327634792770898933796076658602322930236610045273777187376075962025870996789312774365899561040185506621654519623430888167941636514458554296285801410124836343158712784763489173911550841170125321608260537013604078806603586637270218159690457250858527181505094453360159618847705770138309981991394244255264174049929116831275518647665882008866775008394325811719622872362379984168859494222141357444687211546017601235218672541579496660528013254156387549674247427005983818023637648195105553721601248370442615449310862685328921939777385802618941297122602107874696232158571682790851338002367205961092055091025023117216440823049299700138367543688654389731013985983135773808764895206167461044692344756329771127003445589260539438365459514984435464396268640930568456381673679995097792481271294427352680773412972407187302990941639847365139155846697849927773712645916813680785815378127854300745565636887134878874011804575639691144767666595293658764777901087730253390553833699584602091167920950563639358761874716674562098311850142609995732764201169982812721689099986248690158188698825208284002533445627904060341682221948580021151801341321044131487104172372114677503377585951916995192728821907615634324571377755533145891448350869847453476530164450775409504275605129385910897535912519402687524964340664875833912762297348216313975160711032073187542634745589817371212253969291104641160916882131892358432917482159565406906567634876542054519535012800977014992756063504988799329403123558192211660113293237955414554809873096347678276112852018924747148946176429072899315174665251847608863209188379480296786072073019775093062902891948622212923856600572419645859468368206420349828611000647166185449650030234568611695891650789882975307308840879365364850704666797953983799292724361532706033154923884890712835022819020015036088402458878999980082495438099837377172530502445795052685988855173778922266790581996881330866533670865829493374781374025496277587388801737974690386006671646328836400486389382059940973082483156145614471717666932281389280611027588411062780409088925243169813041653584638760134690945451885051463042105107685735224671049262641490872322742735995042271549021003017727319407514781874905613880132216306756807115386444082192370972746761683043440841324056429256912004975651111401858285174803692972821041750445653166136298287323488291766494868942870382505638856382478345712370984685350585187854781354135209190247280690430558122168353940591759244893848617947709365377403319757982553218260345389758497765675941800608863971576254040512707509041600774402405866586489860279383227508257349922766099558051303572891323359660058405899590879259328067823177210097574886178758753245436423679058365341239616312227116243225163225915246299574791565134967478606277630710381668009225071920152140641685360490135026839667526518233376805472125131077532671177389074873343000885577554826976520371654246080034218905477896261273675433560519481876114692338752474595855291977655066067279721440274628112453951468467464235549867937107384031015364907304027187617315138238987396114790646464508242150295493580564103021608371302516246446040617875408748458048405888708441832342162531888312624632584895229117112183778398402470553229112935666463115362284458243497221573034277610441270129607540981782847582939364160117291078343868553575491576887844722520198390632929214366118757829544804062572306643629416769979900893044305763908060688237125056583859414890966630526477987041429508524033303570001319443262884596041024361117372856905367285712862686067988277779814730406589778671007773012343680126821126914050825189026678145082619233729709339396923462128838001752902126644349635013680122471315277274867217352927373113539890807125384949060354978480473677035892285883340853329647215836530963512430054502908352791342778318185521985183581885234687992682571082125332237546556464480702749180340091287595433584313683946628776213418551194249267850134354424785070868475456168686412442195846033351657819411978765809515206324170965881909305098657526372640314796121017321859295576799679233520146917285015981148602423071252920864301671307776792134825013625865147999054072997755842586020794411365316530457676012428249012708956405809671599611437088832768931034914346977032756480718913993725904576142166675043587392363701834956936478878311102790666348018620515886040743956664736481714289778894490099221361005799127099118934134445497284662956338770242305426405990648589793252521123195425384460159690381786182376106207466756343105602800822413857636152401759014424542040531558239801579827028573837116596466961152513303604809187183750796955721550102589892631109530082958296282459439988519907780490773943964118504679372498111515254040128006733345466647422916916266945212554219308296932903141994530692684438236081798388998265319872600638757871970036680017524075281048364786371253745711715606765584056707636312472368005298066258434406198492301881058368065638895138285309283318940606539004805365222171215347892424814616695821595206833556551878486868216293235594953509957921253168239289877622009723170658880755571594091596776745619008596109744081697783026165112184565913341993703673463809097486257228619812718059157368234939821192737943307597203454701441908551869234688862073418987219330376627426585554519833644608476419578554367405301808933636238124789946955272289382401351593192018415396067742017122101383886386338392831024070232252970364211345324284657763770702081680340164211646388919213449154626447245992027953476003485899059343370882226305606754921727110066965285951790122179130367307913707981247421925280434165525040352266056662413660293614983685129698020899059635989875728779242851187099213480147257703463465877432915589617497159275077476451820849913722709923401511734429769832515011266034415395062762156920594519942625701580779550386876244905787609517115722283428831731300440728159695842701347841574198815050923563569393931530307992624533170652925664782828572164125850203049531560998385154216055849985389040627228685426369864589443704299428286839885245808305775859721681914890679367316854253856341873641945220937778920290878949499847759993200208866971235052657134042082477598330982587465235919928097560471053271878044807831546994573524277370154197679638973656146008833857582283079537454027108301857955521991155185400787057944733629900731982947270621435228026269977655417041623310205115426686913994220805621673276780063551997653647738028185116519336654472887692987109449839708753960192016280847939749055914230932144531928078678751509850373319937123459098766185575831063389747746150711832390072751298947438100672576081854588248328275838181056201819935456481880957859253218627659355621014748058973606953843803008510323511319310818348593847692407564592192743510140504697299612750026122412982868084807298183818767315266437088493361682790460599580023599426511792939795947425044058211535281757121651196744192294715433091327847891777365873497824742283180854179995429643231241632588342422135597278231599255266607027246532151884556778907850539888453914252100626673274318596363593856599170187419713855159391042015379482629025318090788838094286436467121493408767821043262861803999817158078699710097097094033696804374102723043748809148425884030255385094378329956185219245266590598214131809374206967079073417509225807322194478231253893649057501601824338341468088064566805716259589356282997230361135873090163130173737065393701834645379935854793758650939018735254772051971985070472087504663934971377932976065270274198171155774345805257009019861109356054377131724883526475485415668283310107721674443842468135639898809326335679506769828630709085535162779284950753943721263087806281274207720625698347439409992857337945903187027039293903613142129864150959303330083083413288979537411369326135723571427840606545301989956747600395720813150006523239857139442127739863355354543456853880151042636860281685853054510583254875463815149048611140609363282980393342055817356904427836672286714108855286837840215344204420836625902875162275069911128956928978793505840682754849578844184694375714169697910703692227557026011170767350306513837933009748350597405911670422035095987835143040203573953285372889578877253939476045250278275236405797215257169210720964945095330776036905864051849061085270486035526749364423414947914388265395223261340609702201604203997084501119974282642500203824982079093073371062080351044881197703632751447792480872083961303794922224071114001792611511569357680568167266049588575655455133681268391133317042628475593905981257534031227557414921352612777974725725498182021602540362464989697578650721511806452451666716104967736105357291772431872253935239602404995536562030302613331689167330822737241921408153592007770434064881509363329276892956068519245187478955493419178189607637907517418444934882241100632415834494653989193542810389023983826444311708849288176111938750918345914025605305821460900755024785497784382089355334251427871519676384162272537468134426379563143773885185973014227027400919314589094286451207132204594227447982956402189701134173758606665020767708525770357942188855852194445906703212897320817112538555531972034705980316804814219471334753581744868581740172668429368020494964111342585224239164420238704547416787454249733441373498374209360166131237312820448726575395127253751941561389947620046890384812755514805539581202312210856242034721128188897414655769263371248540813456228287464074330356453652664271871523396656301373911323747737714669217848603915839147185501295883181336902722126439434984581235235925743755290539275342289814594326605540015306076492190591978868563701691264475213552812216321706587102055531969345032221951762115590414386627289607825202819861628182922814650242292003670698369898637773762478575388874180775754826968099132272775371385926961677639113801198088973203458540020932003249542825166621957802771940640310995128861237568495312221552711294130719952151962596517798307696125800555273461127307882427759264989671783251168015051278325226913061795039034248315991194507229988134960832722545643355688797378155798207999343776594134888923210050699975635371159024429997936460263783659094345945965775865689630450450635497773649825566975897399621189384290830123842924081371217346489980454200723155385303116289786447887144347745768959337922913403173216066402488271993983618491148214514142478745514110360957374091770936467960924830823575247537956816747901693366662836101744677105527831047792776907193619552927214569546569142603616695365631903282843687611430706457572126462520591334825441407858204418217324346126819366094606742651078137569932818205485521237454011725787800261814586458804651029330676356014903316532017356959876594510158515486547963724734694241752459098252817903507160379005608320551744845805233714915616784434291068569597113504736659591347914799559923677419427495883613298356978590237785020050094463843864506736732397634559232416448581102820104701754787585914364566753170877856627688762532450840425782159902250584741081823288894304171991110520245707168373832844694650310650782619965696040587147784919265907315550845353956013531121189954113228054767553687085792540812130332446243288475720597027768174755118660310732767380056840738674693246156287168516578383235828697075602109906950839792353642005761630591360447592856255036283006717041904416004027459445780152581864553772880838744497169584536959265263749660941339360828467709340447806153152652976437130480314661121736220254616040609773930790890848096348695958379793538938545929875955767993665500026776407015853124150934309176967643488153520072568982684335910170834305040631616655181247226415788373885238961760942788220319376536666796859505484891936183990568263415654954624247346196333852169536511114987802570062186238799317258368256910275316065202718570361962661646549004174125602645508259441829606332011838658190543424032863340027729063841395177218422302432939593632694499707666872769625376144493634657234853077794900649254319832402189726626552714471585404793563127725144910624375022178486104779301180046083843329961194558708103846462030395435369717296536894352834979380779995411783130595942687178145465331930192686303489385073409936704255386337779818445579991441833012443388532349305414832919610068574469710235109095839070468125118036953725949522870688164232670718051830451548052133408545267795018204998941210147203460659901862616489394633151151240158257673459453854200746505775593320703545125111972676677612828902465683894708945363927903613352249150681810208710294603798387613764528323367690047309413678845774648223828968885471126950429212929948318642595444989950617463499879868522299700112327426494077802290133956706585780754830153398177542706894390290527924829386292793799022364432874296806715228123879632268665254899852765357568969467352364151670581181128480839730224880797567475115307776601053541392622716638856293547508690231367823154649916704273869669767259777880368390281194787473223283093184493750956685344370074085022369406188671967116688547803433152497398483452835658534029442735912907427799704611328144556837968824794864244281745171801312573333188145692229676615005609542096561363505908839617421630694169651142316307871780493362278236863320660037757989098096864060649667235873186376343166925862614321643179046182764532104530546471357402054943786325678518532553761388595932442427910623799388707988105325842595443348199990080185135756206121869924660264480582445485235111809744147412155281930535478508710753360765818009983546072893836211172243671043161925992546494145338503714135708057270327134906212769258107497416004538966193008341658292333488972464668935927694118559660510130181101370813270498640424899503380585430386023429871967953594223490073641672739159290651250497624867092062851247635168755071507654019156845494225444433309591195824586943477395347101121125705638640374656204607377757133111007440811444454110613524810591874019769911142802596713862711296538746163355448137790074525895931463551516878241139687075197740166397706713657987028053569771403894284917592555477821430642072658349358880564253495847138213714924512617501211567731939845481794991807943520276091800641896964444487838351145562250049695161003098830991453387586439198017022316489515552064181067267165647883363097194950005754286194952535334313416365933323287584850615871641211659975686634521309465336580401413407466972080589896273271799354615029237884219616954960764673875635785970822058428198111896513705626141859387544481554823994562340060141563937636200215085431592670086554512044434703175664898582765023623881927634408299634004885917458798829290351161453300789771032995282007568781522092182969226657120955892030784578291716034736835865609897065969058791987924658920977374609057689529155064830655980061366598205139770205197808859181401821291259391872150916350071449114625513844406122856971136068486928224823471978263966599132141054576675866694091224887521742958074268658498136319637704031304019403845750229697271985364483894810786938924724346569177636434695099475190757217669105173099988696301103873912629367953487270306663655608484124148540441133798276345870684830852447444442131378557311186131441904471490808254644440612511724763623622893639703511489729211475846272627254748244626032268243477568416810087752941792887232271978635902045562066182636909382169101581075496766823015766464974930870397612602737027026520908738841596129926523763943463870434398737054438415404168627871579677268269315696294186929529296664302699199077489351629133783246415388680216920314613791924605928521141588025487642345271504318280088492054308643233586270132245318997553038407993078131655432220281388762912624057610380191164429067625272333184596144116953010242292474868538746039613072543072521197561533001900766354574329363948105276918349172408754539611548288102396068369547899882197916097540223221887008007724267834316229741175180114467027519163014952815142027401405883105138248368453506376917143772543973059981358920723248628321711851997954698298662425453165712765277861187449323375053418104032435507745649124254532605673633966733529861775586550694925935938909848708418285004617669759972989005721189817960713378543731549576020084701190925485679145236271078251912187071406626137920621298830063569381755534880959313925016726229700787051449848127404585769364924461241988194204426555857487244516008077793920692299422869899345249489735027114032473557140854714813748103305359237939544021073307839517377508937254682643974616564432028118983962280009682210906272086364584431786923134905778628704648328789860744798360855914252346602849700365539897186938405649506342315458728734812153388299841697183322300964170329355309971586108059664203381346142486579244557329458438003263225176917193785853453572314393137168947098888421380702315857146988091779458634118953158894448196815856863773132730165384427392742821278521919130250421185362562139766442395389206100889244913491280926206347894232673967763127234205587963560482080040676786163276237105860339617299018707908597761275121046803490642909170965440403241230771187913236823353337649240878474439232493700862551198021687036955546674586107049133042722155528647683523526292435628271353536190520958928864648239246988937056143503716831153130331353650733623034929876701073249032905150726386947280703364219536132561726834273611531264769143782355997634766298838503584381791194969788288751058463292330087673793011945850374859694222874462054378272137547289824829375702082090398927662702117512513007356702445849239740228393943168607306052760540822353414768185512202580208876896236150318081638308866834829619984613349606310915697209174952708596614621051903013520676883116455563274580296517628531248377758480543340512365726408579276818381352714370856683489245078549078926493524295374555004504361806155898899762546803803525437508282106414806917372169032800783946851908226728335089366114918236092858468235137088103372104184102641625549812081317982882534743772230494303616629493784920407658631638252063074204520055061992501386268523064257911832243638272953248398885338718262199473356658869261533397843948104428719831891823526133198685737044880100847140176377558421991856686762433228949150141361991607418575260056876928613039644461679460028376333359984416014447107368157588435505103138047357189690105696315545683629280648561740832323113087472203698996541563326974529243189440762712010407160719086152546044076812692704548572091160662523049629715143437978173528384329553316073449351791376554836080374459943359316655619028150408915113627524789465549721909507392133526620581807356888736734768923732507125900224162810598638139035002504960706019474348815435545195360692888130383958880789309970730786492370247783351804222876490813972199237297802929926915050907846943242798659436992433964377953290474054650756971355301044605284415753041053729421607045128951402036708625649464166330283271567261643516867100880125378633188896927606686379208739045772237213856958870703571316616396084149243543366826025321294126964902944804914560774608484854051316900551502141598787095576986449630316951670817773628139639656158467436176478431725042712511797841511075764428386951633517695349408786859051691483191597456642522424390513633748047322943655882475997760512111386900925248604844149012156870052909166060243688191750216373098248681173791980407089479146194516706729460490402041782163539511305559738109318679263609017384622188964582378045898564414384204194278583241583842762820979692443108990605501217213926251432842618484197634180114250832381845933017100372240320109931459008465603259536744325240225761566065271553174323558512010467243128702937953475565978808532020086888990210458105115046505863952854929398790239976371806736321981638097360758766759088593309803305022416197501654620609352589169016512598017249041265689841303479061019673719887094129270226623397977165717099176181131998810196422691289956088433309437928598866877385968928466240922505775390691610489291624399778658096699611819493832139708585284960614922261642028493148589365204699353491503130028639518594193030610396691282355697381316704548277197788280191474195606214825945554357010591824997569816611532881396372060267993881509350909539026683014967879011784281599586911968028837952496898463885966594841773541909992426669480012878388807877045762204380003723162443841413716537326023050696772328828833853276338626218350637998715572334720623693370939369045765202791066977009158018334562252334430069232867830070119860983738099888672315413156084312415778472275521668824148729158285908305741851300919366275550136296362853988314614839073473105612099786703891783049021065891255701836017204443495183157714384471972190948011764269713042793861766851151089074723975587522047498711441964252830150095844896084624336113428209466767619344022870267025543158447441903678001247148845198947324616106813658804750070702919531776765418747573719813656128529592303288461459147303735040153560891334734306610438550749697191032972153418984874358125036932996876569433469056036747408028216644427760460082351164162111210121499344954484463166869976460455113143370724868056838576878991000196163732910109464852661478200065132978120937760693729277562218105000880082160195149641319421578643795518506571598629471373195815118565369329418473343708785225708207422000923023872040229883153469177216956791152572863936472236287953464793056731615099786354575603521645049784491170331109942625263222801377313277391602306507176419873911410789318455860746994792746997587315043403500012099684182658666464872205696611621105208983868224633879155318027046319576613977338840722059003322949912324846538382171940321946737035716502525741191279001312551627602531691076164920552055047845141238377235449215958023700467741548966102572224359769296820307465575884120801029049731589470853680732352052000785366996177556722576543047405502111630163687524116885128579731833088698625982906011497930477051342092183404620574074022192430767098081865575456814770717473678575958993763279619859524882102636288207896315573893677149660527978916257012319559644181307559539759125395600738559886039721498601921207065130888780485325682284609805651960310856105410844836144751914585959412177344522760620184751292203879306724987445325223866151628324695430950844454623000792555833998994153194287598177172467536765682249287158763999462298339121209138577820189360947422194734478679317207359632914019898982767270756919628746232960874469546315675275623300176028972732734003050691695339802031390651817011721238468349484442759691378028496939751321209790036418350416808159605663099853422632248598494353614938629790452120797884492306898139391193473466718095717332650947796625756093533801886264683657898040438891751506678562229065597336125036935938424067234745701108433007361871572398052580672014434959292429803989299230675368923080946466045604465379255360173974219653788686602917166340404696447447802484376261843266139191943553770402647195350650660250688012188393634829182087480381005657589946974702715519802113257126610167228285371738930230691008073132334559903251006177948998235457277500925430538650402056948099634789623611902040932057077509220844205000873842673105847492959985518374757428947091500731354038067591138796413481219002735923520888850581770352776197940620569813646477556493703198378588117904584481037541532293448503255321059474362414378635203371276311831638574706433463186487501653537741035464970044224954712111500003720168399291054085530644533692663964806136179516674716120830820616844626505972151465963623159585650402900968139040509391929595141788948613232322508315528605763636672515375536656107339431837730226477935158303033058018782117872176067156657566625261322396564562661607255246504015105042464595712230602733198525179358199585685458264445059131453637749342032963424673312844220001029842499508764044434628511983501238642929778965940640929494394899114436593740595895569059476978248000004552965563726360375241857674765525069701017828483588021085210690194981647530250490183959924080617981365063032592629706865578151204384688734148125490763891119121494727367715662248488074775840352853076058080739746395923005856724702669733260122850297588019525017224352889998104059993997534461847608265884166336099634386791032925800922362986725337267361825133347983229898619500590142938694692870926175418120316142523865984661267934400405855140360352162664899167603655094855632260121205408666921390360185310626424846574252825172215237786498133204658933583001988959120856074893381035378613296419246507008986272633874589022744000733679048520517875653562732057970731377284890635356691548773319084268774037106276315406762842560198209197940396092090785570123742855991314509320373381146204795370206341677185469064518266401485235274019488029536020795536515941968311468781124029225252033339350682388455241429126595327044389818421706802554761950014379270383489975027364033619908025629980275413063384986895177447792081477124347183822587938628928745865872497086734374270796567382220747111648011596186383328220688818754904114817592399003382890237315391476081316308472883815631073768822571306556992235790836049562523996306856498577187856762076824115357059788786122230818972686781222024723831266709332838016899944300400589197858207621409686103662358043530890306040821091351679401560918714230654880110832254025400522754325535479550566188270092537606473809684508656868355813080178611334675466854224120589208421286898152898893125546401318310642573374021503244483880751558068438804455526730393175041734489498447685789774464711225312841391358091327938522647765295369256675665038825913792513928569310495690631198987324629415839972151372301650942533468699671417702115177475951384384474322772068384407799497561637625202029589766832396382383876467894702909100503907173412889494390861390510565940133535395740756940016650062879486587772620939960235000780418109710306695627164895113170186881345867220535427984570511456563625123278167664169580177537150857466520546384458644732872483453322444023473422738176485612682437899708178209829278556447793387404213612812908814898010114602983349331784994613600729576258197677194162972670432000390924591889785157649918108687792299362133027734670285560074237427819251600032598795373505437880323948619480435924144000518565690892370906063340632353276430990076607340438638105766646991299830027498496095254798512375046720773562711985921738507147856277776897442043173097072264726276157840922142719782881861343896933262728965315738760150593690025786876687654907095769430090902996078514670405059143165816306042290633761351918089918200604108817354297540784912206273456534725852448707543863519022114167712931741882395175484680700311157510131796417739716111944330078498904529704645782746721989821162683902542079564403368484892089624519475311795510589689935587222288994886776208308273507061142838892721487997534988339077648708777570476076576761182671196015217124759414717284824732091293782669830678942509485067525139129156863180719188936254440807901266854782054172552985136576988410851956234907501080502511879390737347699081613959886455437214975322874180139584643085075591314228321018807528858896231341723412177183605790748240008417404916326648131292652289316633057265374085987698044819926520873789699117287952206851702091050041851294897612034613306286643466480432170638726819313901322537283597752879800990543073186235928229092889258886567375690823309755930973291069697193092075192664650176720348248209762692182048741269156129926934942550112164584274368355265893688135939723620456812214251607631425207343244073189960765208594418337089061359964527989372009022205112127222610022157390903421356176167897173055240322714539496628649392102833350928868396086849532303381986495001396188971379941096128105765724257075359487059316679308364500714846330287647999641593477562550415245814538656301756452708597690978369650907571882205928509288494627063835436291960822379168209863617624919777940658750813642476494051021313634656614847568732087698951974089740377848145918620932438900007446640857201005262496364520933590549113861243331663349585101194217117621073254272614030344284955053215969226443237506251092292007121811271173854060219649394946987617626711298579796493928155779334873522505770053789746425347130191097019056848255087550622988194700982303768897241596532837555672857868243829541719592616130494205764316780030768884188404804102178789615282986010226072099596095851179424311284674659715794263890746402791662305001574349057030051357337456142854992903431396335155731793313904979390767392637228646025772458754710516898953245247379731530976302401436210983523599839162072671084641352744899803250974059374534138700503807269701267300122538975717075587713340463565187476905099274632657321399009946629216599949589329570428607109463459530928524653897415706602459498842661865891422731881579797842128957513556134738747148483794809586768788246171577476154534649287687814843336237254890463765676605648345126039096866289732174410204228706099308846633381834971220873604432543666176610694583151918593934621148911565112165716624571237721391316704816816835006491568019975785112774456959737738299376440631855267435156280459747224584206268415218751557261497712693584063220715337586366085537220353704356264064602544370575799361848333912174702693447996574873340753793192784681796695538965521427568085454569848591401838474503502847355628443005707976281107991281914226377666625988898033894110841445111821340955035067858591754350511588847816011106198207497339122277121498715641364928844697025897134678943815167094829259460999247785109229303599348379421891099233121390959284238776731998960910608306560105469158568470776002659701746034025566854921458681606035679545000520556704088836209592820741089239289574104100164886226730623823810355232296674914578576310721067949254772231975533216625347059981375077738782112600927139981513316636576202469753143157952497259088793803423535330039794487035719291531095469687724316998844092588456465020947976999125826375719341998534099789012316896736579109595098075417877019139555406482925371624083791572362844091350730473301403033307932977510354252331773181604751717270202684352022542204809767169134067625209868363679345439576540681709321486274643638118683001895355368655390556791144784172518782115605204199438224120769469908884890507238959009250018737827573841634850911985615240876708619311596311729676786640281412912321591206765541519334847130273188519462226217155357245275776436934570594452472399603870549790290143214473865137731351155786038372179062269238926239499371229326103244474645272272443039575945271053045651234270848428004342612671685976460045294524309038123482765720022043550828878520043045171823466946348148283580297021078832411295201825298489881463508121238287702360926162796054305435510825291597024823910667322691039255150744298225086000092178959429824110906830599334649374107211294095733069510096237472711074565990554976189074745618448893513191192179769285630868086786819147901373620679621894380112414419801661527018251837435578468442865027709930785579858827493677447457658335797055451699978339632509561412349562589040431533498183514817043546066949425093138733755981785571968307470390474276283473334702660129337865415323223926757283385793091717943760527604035270340006233561810650687280188503032695654419320184232465205461745763589615289707402472833333063401429256900638565994325341289874417148546999934242033084230442258719568815529466463275927917416738539984981006152141122608554350626588847895313983238517435376005916444619983761642948221349403903889658904539934973151135626594945259211301234290249804094713349612085265750491041884628089219184133028582751097266458964251202684035930356879793603071336762920268095449046896101129488349071493262155426267220845284072071083086285148872153746469906760389128300820242497736257163762963800213924292134758667633790170418909983826515022814313729619204037507044367801243946952470162175334688180830359012978053893620279314155051771264316938586103481341707826447650680643599392843424340057381309346241974831544071586069735795246896430571609517772015490377573342678596509491045321695758488672656752063370292181796425450841373119003204652396542284751924378747656536192450434698246602567356110019818564586259806857599016351239207253696089709357814026104836719029761273449604899318164281170443562359856813570422003920688462028226807104318925503722877363662775537945889098355350042498153215028116949840475039403447535502781360359833263432254591997526129083351133313659612423806407307750882234279086361094103115995001338658025515040450508143635099854606976509570000803816295543589979850048147608165272904924242639832898025255166518570226621104832949358842643979632439998363531716265394797613716340202587647910579790164407696961599027040818059439718646055610569743209675857212266300863322619960746299327740821920455617802254197486507953958022080838059270613884224000424695077081719076959629428379798792311074732497929332928118939212013215677451224598249522551409835540525925663685929919880314410699114027087684290289879095538173772419282546375797416612743461005673632695861949554290176574238505719842256523601336153429468778107746873569529326469958643304446176969997308842713060262137850546798112262866237162871389270871466038120711311042815844651651143677308144164184210981424738439007366939044010963923726527685276658980690887689875453299233906305038153498652331768492865280465164911437161826130336221815200263713851058351770293197473040482811667919912484171312208402630678597345557054090867642028903932119877954483482513434603094916589984962874675401788598363241004106330578994238141391688055687137641151300895309438185148541341863853632230881000991027117052139640219764897209685928339807099664329749905112711489304499718352842709621882489901454303372620970106421729674592101812932637660723464901985320392433925847816688921572628431360481144581265038810174597364481367908964233398378946469966739984855291322540804893851743863077708172877805890554195321843711680819712518946073040066257142486885098798109509379185696450676874966573805940820503508122636566386372977651456981352552096370080798889024013754391033648922690537652264133209001684880925220360372431475174165603368410226589952923035287224927442156673045713956432637200760838273900193699822080188441571286028534686928835819526670508709466794754057126032477244324502592103172740947354701160547367426274135295175197602152641503884068037255868777848185450400487185315162134554326681177242079262220341455148775460025682346052756071827596028608466939145429341584777844178294764092374505552573399214545351319570428379941565234868381567849436110299558926114896940633018608831554894451272258290828893150810596451264217953717143312498557657087273520239804221280863679612883060183540929994865953756601021571247300132862805388489708252609163069726077757525405017265749342110282842774421192229176861216336502987811826109094270226295540615636512897036386535218553351117577226608507470437026283976177445820955200016687019666347917300216559683279870621680053343560349411663355706035268837007058385352476567748943129428360398503291657899261377854071327284080545184022664837413761465246847908225244626679755374794718158171830319176863860020548317811955661679437325012470274173254496114089842944922532988782036941548177681216081878532550609573039483429540441356697514961538697558900719674683280497631857715150785207102160902693322658236422599165027187432779135364649570236002549181982653821959755911230314748445712740343990427843341181978174837580262538112670490307433700922770310445419470978156962419737676919207001023201483851976237644990185443098801503730858620911975462271016940037768743645048913510292248890111038442643902489990439164118668246621669032441373989282993735836295140547229906366066278733058300591396412884683703069992071654542763800121075892277529671165373127405916544331089150496258476853498624031533510360035806276333964604860986032059530068735893478815677855045511383380129823803392416246534013705792966910162921749862222962300812774647130862208833760610681242438251427516850645045377488084413283206480790728377281913529604638119646038740313974544797572219973669554851052220326658721816624369059221580811453809858294222812623664272536623067981610915429969425443013095421695802346332575431954480542227253231867186734380238128786084374309390727624026147209260750493322950569327743059804904030953895544577262449038974823864770717773883645935570547794613104007880049294538405070426248460505487528075166406444183077817005450307050641952483466339279706946094616985511780606071902559440674600156010538667302317265224864309274501160733249566672019210907633247386269275707686251262247266377820371917177997742282185769052081089682966399087805295894292180011755160950530147559732450670736972821422953688248106184497725882633478473937427417531497839845306047568545203880119072537793078860496319387764656821398037866178057977582212780543956186211570251749317183187312020061804140766515665285347814725189648528504204820092430375704963609016509337151283739570200129637426175678594894878838538331032515862492879904135723048307299309424033038623789952641584496270756567413996037181013837511058654356262268271521881098655220728095030946338968089235373009801680537237872862992026959644135638617755770118169210054431447836540156700637948829550583459883754059162732969520123169259949412139178869274352562713502069392760765923900425444094823076289183472360955167738840313479017207720600835033961265003959643485028413373578120001806115979717979506471894874286292821405788843009031075299129071457882716089287857287085157563766750665727325756292136937836878342016232576851749356091512886716731759060809772697028128517900012198880019501697182168508836426027224147247653916879651916792160903325568281564492553611086753961350401624717421556097421923963657536301684643223317778815151510852163022156579356707068591779587663460459322895814397375285128101938872363371867344928601197745540461986363596331003402675805696018800411990372618971362062123221283374223368480079128243223195462779208831861686396938046735819466481530726004693555211814929107797020280165519664911419535740508099329352099668366281341501999288040476667081131022002982310459292635915943839176821607637125255555624155912262025678410335955315696149221363500757766852902627671710505288759756780377934462886119196919211731575421880958553837408334287964719370519178635988024669797650689167229201263352132635305395563953982866180117283668625150545774753434907533997880758547950834802247043342293654944300768321330902895933245949140405688948467390405735385404357386091380840721391739728283984269670643654089534979549517268655290788750184486300085833669150037659875222953057383905879652085273478073765561941905242601616735403024059341708116691213378495625439980464598181975741558554637703867923268526875931867343942201654181044451348354871640333129703207318723041935274211622482147933228049454992631571796339601503062734335473602656384352495694004953615471754960099079868147844041812639764650474793389699621266915191618688018191064109971170508147084020966223712221633021161785156656859976584211458655586856029910904648352712480649263716659051042234282493568679317767116966217042993076482140552267936858999489855659287399724631043697975279274367377946015251723689261961598365890188035756751344785445340833468658442881998241520858199061199609171874089110773474120575031570607911635601708792883158617354431061572608605678257078440505430191233590305756939980119103672787856204344710835601380133625684247992677472140418919911265477313040476425424684394390461397645743803305804997344709438248132519815060921113453760669121375091735309489512559271409666826971523374166850577216538539565269634545619793399384573553564610445111926963824516365487398137261193250574054392805451942958160005487518461909479997002910766907341957246238596497641762125148261548171402831849830287359314918138999171475572919724542752965566520461971337429161136329938436470442170673138797634234288678790034949596806901020377254461752069691063723098805266823869687507879907323270737872070042239427741783871490828777967062481214912912710464040466260347004012842914332424789752672413932371902299091000972989809332265830211944969130385859923011184522576149276084451653197071156756662612483250563439278424353883309153751869459647698372703500817054314824138038994179041915977399321414111799692931103314861415505575004201679534893873212549202489270537542297061604697393305714848137238757081173698057349457597610377779739119871698880105637772517223607448729379824003216115130580333970329846762896006993174897070314721441781453558072016527148743891791701809518120209502280869485131939653946834929051120094329120585248468176679288548328392575292952804102633814537732023569219740138318063763702797238681150041879719010508715608063362157651839756979133011844576118029399737283607910104201382959611817455018242760822666852226250549304270974154699948606758847073540798692054743192238983268653946662685237615261453746600920680828292049877516538854475321921462856287827399278626705391583727765082130603479929928796077047138472541707379504858737194048213624814736169550410120101671648931539890054099363872757467270160352447786502475002912206536918629985333954154650989247367790469885296989522775437284535084938621264526161743512877303748619045216999102105845459766450240633623931079675132588675914433755638225934562286828620130894266811697190336724425732036979749329301458690118990419825995263760795604970116772113020049028181661253407389930003607337343921506208493742039824654479223310459252485712456232894254090739997583933767384492405179146421948363114615381534798576982250690939840984370398788896817949918426494492754715657995072926895753403153843928859099084209441831295893219311846034908162740943199356853710962603600493702226991206262473740292699481622611283290565769603625683775379663305963757966511748436689364478402103880920149804037533658671216737066620054038549725831613770386636137704984425064076716736845142614922323388517391602332355258105686028500270952352161255641419175817959466999417046945224613787008862883520434696729643354894510598717590770292117664396222686088967987004329753509920871257168539415353881226781230185276803914800081095365147463515754478709208667115568564840207085994343535587508770355599645853771015432926736018463959042475949261436759780295409630206045311801186005815980443482584466285750562941809430960707856438059578511019360076948421067157749388104043527663061697436953239578874694041081122124134771863703326687709598011943848316946283729099554996977305429229607505232684923514823829606016299808189700653640926095692714658833603386562515893093883421437827911456059514970225939375940257880683611229933850889184041018667464403278773132550353296065874865040880366250228263394849724696567266299138081821365932079880137430499520610107490565663495397525998403709830846784950781473952959374017322845221129952176742224016175712964271030533814008964254432424170578957171445747349509968976607622800138446890482990092030006536724417125995083247655998084504407060192732580180619027433636050108115356137913577825324776981789475652750110365684495627930025077082287956994696329970247061917794234550150589941740158944006521220581422501393744337424394696223771491368553624454531449054736846079480603267069827568536043519221400787467071168291445782737587038449050552272994429704201886408814583799707477719862499589735087796754227245269715334468168468029945406063443969202660203739528874469484886267710987311771157548331310235188391539109481875261741462444055149693716738497776123383922148013254571565335377782976004159923018221021670846908648121409770353376550587529119205355442838326894407544367065274305103640931050135918985615869718184736213474225589624687565903560156946371012758390714330849842606460130413338155146224196438773304426807273376484684834901834614661604321560419203720155482880791843840763147583995157614200287425169340652686967367050725050810575015106672496434931905989427546438969566208843968489450799031254989502674422654202608581981709821135306481461846756496811671728465631333163873014633585419404165737657026064703191957855991667240754258533031428068003137788773811024488051257786854424030463094333421513090534224206577799896938525855779354832408249380360107886737600154637599685647950058137049475095041945021346734747375619071388598751610738599216576423745159783433845666467396635341487085724887266513175038758808381434548778422234239985899716530443010626127991635806359276561871313922772265083138906863489056377473501169296564707505913136247684424561167526020838448288410294478016078413499870520143890661929067294945112235822568321620211233975465261861271787174454177604134521456799079642384180463994001590028213755890370751513256448740832480934409068585346858866835701846086740276578852280666719112272162744577118711219718019136724149797365130262219621270545651409790868410465003261401362601214729691177598447770386860657909586486673159862145247400417377168624142403160418744461922930945263228338538108641814728043180907345225192811362730483030573361558238963243077235118822301976355895471883352234602249665216288436249230928477763305538421342098447957294606818072645225570480980247469573130718458957915981159205386098887985769785960232027109209355730298087863004056393181814323791300126030264233720094513458138425193498664920883590568215582415559862436189832146381519129410970193363198963062449067495962557596546467933550111089330597479104383848780417964779991398852311905912996916306224908952658982908136931438426157111502264630222876627020008942623865402056213084640132595375291713425571089345773259958899451768360335966110912819693293120489975522568403692165739223432334694655353366513425956376392031195600463555784609074380041328555837782773755020002444912929956171415563515446168037750602181793495446525252431814274158483425936251401277225389952834493155461050629823478862476210319915279045960156010629020300927016301247166891816201447058032818896975084985128945748552022078172701499795121845050459753301281054359361333899279816577449094881082616273805251344843456439881918762651246641059474025653371091806410973936890506314408797942375150473460081237089176864948976265623447393969232632798239839584362284078920793140888577533778545720747396441484723711109358897823770506475295446529741642733312815641218167023545750348158967510462718328737088953730135408543731321353534352044340217209854777006481795188533662753127127260991721899412277515847918745512001331401886831223489701513592527795684893465262977164167790214098399405002648745920072911011815494433575539308862727891117296334804259651873959726075250392797706459745192161504930013916597153317533100221511346347473981724604896665506263667798077271728808665620394179052281164244601220540443292348505052022365126077731229604190168678225308981996045057782913857387369198020083845654025074498368492072795211517588882673704000097898689184732311359289641162821465032344529035247539750343685779499865080200260300779814460336941707929887551995790149617457847459368015109198485670444134625423260330061164373910079641549233639551948941336687314291119381122276119104198074824047236293917436175409408600515679524570722416885955484571453019202234977809591794204075079383813735239483522436662907279650245911668556231585593135162847397807150076184933134447107001396140513439875933851037302788670692640639908414487295507986142981517672040236945979091444551111810724751484313949755482134764544043084048946805933968133897020511680709708659858951534710392026156327312812270887293848646146802288568023261709511330820735767762401134898380842621165253444396068426112296893004465846982029076181176040663144848388465602908806159111078807699661840297797771703825235807659599794115486699760212652446254805391480234591701647528065571784794854774902497662062922469174028968499234407283828130310602381459498417094918848349038398198482315307201038820194258293052721688984021604797554886396874932663438205996219361025944595828347864654365346628406364150168669169220428508017042116845843809010567880361768043973132578776965756015405568022449416459576052115869430249323792478879870045019307125558718162857289302857764596300737581278187886903537023447778837439042332896851517258823378813802460001222997509191365528082890748702773157407430043859492414941052682067859059595714951266502308377746081679817544702201241868761283632361186373398617422730195656513618990920346649415553339566300188712214715011739465195105333975283960443259011639414412914726837644865417611887894242665676487161989761878224868072244256343401894988801809963754945522204670745572037655438154006848646917707437139741765123176867596003724750408146330816025141928879902929618527231147114437324676082796344272950685778772034306573755592196070297207055547617151580347618918475701537290507270953286084877428912378577869705411456702090254575831780221426550530176706843747636341717946064656872198418466299645993397694934868542462562314826614444291790155624103522833399527869761443517123025262711505616498097638976655843128917977044897603873537342097561490343708100286908695823493256935136946406856547080304969690098849578708022541617140978804060677522189598466408912056488582452252723122507683067626100687488255171669762217712136441215063230589335902457262772678223184580050598527555091617178582326295522855761985903083865572057082596064616668745475116389388879871779958855161475745153800316295651647342469869063821877569746965357565557571673464429497549185549858804533621068899601804633481984701020288858869345255348165827597232114439483182842827015228290203223958813236166186498821313185078372973884608033466841263208243019771166743951570869220892298591819225606653801310688546137956240892135875559076693947677174577031869674117939841720403625058150276975784529221381840844009943587313432133035870460283873192231432901891578927950398133965350826534812937049432787208969547190098080868506419384045201957185247430749069097999049048185977687375970020240133846378268329976217064537756975415817885561303597256937596648484702856971593732918672242162230846940540703292542433407367282760721117730950142314333954817620516351147446724549862695224416924638273566913562420055994985106399524429301103806236176333642750055611487878782939482298337689068664012638381920590210123246831127216901072956208708243293273221414550549972033035493541947218226020099128415385093011672454569304493108860516644220092109250780388256429936049744080208746485422423796504320331624175312608281252443292306784058846395278400887202396364518748200940708726963966031502124237012131867463948386005754426866426104369175812682044478928614202328064185924052334926287119232771174981513631439094959544701722852586549736499409342635109314846061090911637045271987760152924254755621730392433623022390946194652221477090204046940037897570789442923315800857872233928772564814331035653476022162401076724541603163595543269012457553461287885192683013924675813910731617662365288250355932489934644083627996699838364221627984091503077543810621367859912749059829820950688016066570218448094868574982644628537068019299109308940156993255227975392043401631439859154507480310805318490247122627258694779735767769034364521536793148930798803810263018749719465354572714723666298301506475123177456385334751464911124904795845117385230242878203958870263665085887751620968736978121481027690046263050590528703043767060113414194407220843839255850364589756790851164580323247997480030672559238037004957253541212606238883635521350194318051884320685535602855435156231668240965206097571397255279329729867338835285883821022826408156166267035347317026240851377152527982674655228709076469215312679540482811244533928349979196208706123359668621622596388504176285338412164034375726178469740790863784667531625435647212106446908116618734221930300506533658937062428567227856630339515842664994935112091048772955462036042763057667922586517124725453070368890735397417585756365210976732054191855855772588209713884457917187845166508569328228846956661340562942525812055278485087504051210502423167401029182067644355740410504280812529347881265220165796053729218354686377764972299543296740705472780853652847516516461264574265160578465887660307989523186225119518553966763798728202293297851195879025738776294526931144493595940488298170677171825982368288211565614422361699970481924651084320818416277496381918710258152002751568698060888024398007454802932965560200165020850227178591849694572609379803019207239804019034694312422008118517150741845316659101490809330135922398264134773217059056118254450394246349557768779679555067566127176956336180365442668027105232541986634211858305004346281378034902208271215644274433459878256303433290380667065452066629847427804111567969789412107857207975898970018206261649267596400022736000391381852925744895772025027459502270714445018699520720312842053344610146336424869099255716119541881081618686233247234896866824507389840023224096155794095042864987196494399132936555686747139929481668571479198851690954700360877336414504740711752702130839791407885626627053106575163082944526313988452970932829229398314483017727497944328987146387261025908266150207561707966990514591265681949590078091785943171869265784521150051580755129225335056020722532535927926585686882207815550847896873855505290455652315467394957990779284896198248235540614431698969507481296119596133055320060915076176306377666310839380273014492978792326575632906691782383756049903651087250189089667984981497649043972566001751650838343143416328326601091244140710448671151065966846180380039897703775054793436825945070593776325280491944509222166371935122734976648805770702162410594304751864330984231184279809438361319492416861642855072493874419997180462591443671888396725193406194521324562214538638555710183732391386940915179298144288472410263576259083820649777119051970221537633083273044401714522743796676124508544880045157551123253135794483445740744669675905383894600931641256583455905271782294228600468641650288963067030730506925276802699866679971750885206847568784802275315025609295763972530797929658412619798887454149277021715398996650516575735773304911244317624780634854469129636880861920452194024798937550562346080723160464957829628911528043049024038586698074845009402493103316370531611733763290841052940607988468211364705215697345245019698242115015910716977468458799698916098338846381304644794186062262419957391119549459938542031121131935383814007409375692821971702437178473668712645591757504200823286488324775812312360666923823113442176141887272879914132582272884861539411511217055361786773617641438480400071562871053665703984149760794976273769204082418249533140742272997321235760915228443688070535354896836431919169442622081819538304815142043871653122678910292106082209667903921630185415583142899116925787787441162187832210265477931301472886407762218409938357900377962400367688064408392958896256706891782700192391619879945624157736507532908426190890314822416268660389544845652616451469611453739901105504374624358586930610613802770114536227006054301798115194079744580635174757115459325249741369069303156426501552849695193202959063915003677478272952828476754404709403347777216606130002082143831897849280846578547353088564905283935852428449532014226224446345501710617532534874238207480740157410540412490582819397865544096021521382258441370944710867651097554260389826899853772039639351808005490923537656865678638789119181434265495928346951070225947147018512326451207038742703313636536417806460617655762899287665223489001116913964648276204088906146305071261854986029175865616079410045092968217781462745159035283628544275160075196122189055906893057155438991884482692830371835532275971535352141176419094472379789669532409445229853132493000826672995585586241718399397118828645896375875885963190132915017494991414215456695323587877951311686970499926660525830081076787236586733816331624112802570580318304096381623611411361173214627781178734631400493004486143182990208325477034174989921385891779118300151923771614452939132954967036330820843892399353625751847166794658330571424347683212789766104861749145302078838956592406634180389161421418436924177176150825530527550914763284873533731285372991516672444095094442483853060629934302506573565603153336460059337697570171880290757456165396727184260053948382313247435621496559071525592750869115280187093788171803001125725946729044837418676966313815756584286645887203764259487945926027137263350935816759342473866954374361246571936340759276521068810744368977118568196702918984225934109700174521748697371204750251960387577340741527366687364770555504567958395310895279758954116740279611502942855004713787347881062750981487144104508718840767504166062972350038189364219945243860061928901637702477783985516868747029316333186850057038643268878999111332576153989370190988239224448747274798806040738997133567609221975201017658052727253899010206234112862440336087880589415209225798811536352650049681197664933297456200550429849375232364918083479974094686132426486164473755445033890359403229751509300022306577568146497147195943681735461727495745908626573008550066005043648697967875292965445818270939277150756831425332411056944936878878282073074781615977381664357531309930405673359867419125657376970440401031416015114146464488369412999542074055265688361028161968655059299737751943907453577462397498677964846361695617735386552208836467297841939013533646719255479743956693316187985640429369848166931589249487822232199709167009874636243275096750858964042471681419114893128492425484557811992074201936540332346103811071461105425029228044037666304358712716609250944119484235312710047764992298816420649207813146278879576707712715986995511613891909094485848915822940951344332336284439830636810824703594784686689148440900808087887126501988068027215091026140488580244967374098249481607279535302828688664311193925424565779385875318473959773544616249614640965069783667635432987527100388210569118431867045228890737585047551647983831798646980469384913146306927149455824023286716072629635137049403227626860800312480010301101387413186655482625377569498915362774424193764820064523199600587363708886310910741595352534074282189268655633895985285307991128081022812736085337591428037337734074235982110400646515321593391213874874939614739513145454379274505776100830577843941616781546798552076176977408906740603148216058395246170153730404802642805319289342239885186483394998802273415919373757416358580753356297410878740855339809071136822086600966876697580385325860051437013592583071598481102060269024895568333653495948316389827113977509558311620870159698149343743929641810693080650221590331827753127071314378132416838596892443535990117110628848407947055205072199123534686634778456926456771046560404296264509663330359261550966187206277099107934061468333251235148567942572209546807755082063329661814312074275773794295301417050620728512489034316891320231486304082627943022711888868386079575602234701732028131321351458914938933457994868730435446116008504134155635065508564932467683093805759097453740346217625222959218227069635286443166619079634353332268288966858346766180716689186379649769536893755505310695156776146664447404767975402688300333756188043355062017480841634994833581635540379911298654414390057041601414616016953954760109245535379747540082868219079333403906212307252741370824900232695958366252345809640165516514789344271353316447679751251494369502051745805973612662515892126292435341769007715790274316112510906890723855926126711400957986121006873550897855712238389390341504900395044113719566776682920490690106137795131932122474098839490330154777918624902904027974447405933662941474323193871854423044708667589166436485587123554256129089480804411327460982638126607914394278601366395185155851117076174466434692140136980673329085267395157220320155560854810259855952472667232733143834411406951798229632027669821931343009189573224192215374427457617837905386223005330222977508079864419422730889973669035000339493838084480619836671970370252902242450864443157034699328989515330958821979346934187883317706484572475731596793085552570852478495782318090751149390479008231082649185171235401875530637998947886310553882324495127173411856794194028935331580879522152577392253281869778770665362560597884451018908352005449751986308102680323325205991886864718090875690712253861936032491669267822525000280894455272359568348256160900455326894986116117890751677563639312944678274027152969307120615031105521778075216762633442433680076560304700740608023220839682671733372010977071222094660007100916190413068074985253239303538303816468879559491637944604575005892651586114980947468419203708909269147515250378027521459082785933680523126511079471268109759144657423917748402415125094260937470223252691534115738831014370156273489835193810115358150734999365271858690882333565156644451856690608431346390626808042345473882335272156960828364844229464857092334189839178261948702075131406096363896033004229108760775125308060308573085589681531281106834083141666291781452141688622594833705638197514643920230251371379832164837877926257901769689720698842465729172789508554790562490065739417329241647075201627347557534750634171354319126406405781939453071190252612113917215459255831969472626757450722029323885089302365640489239644229595328624858249750712568014262787696689500295354103312274763861261629739065007202616128711046716819365621973645175170752317615579260526610722517305135329493514105584406502473385620527447637038499958930076571185091606838408570572104033902576878836029829634390876576168733993849455102820189782751376715237159169956562234260652590560976588056226392159037112751862160053412863160200552784222483195391143444036677116396870046067151265444472904643802270063478783204091439302301307695588622841038366281891543010553646743589050686215415443367896701465757035215370177823870135810341932314707868140663327530730339250442532989106767107027462981036203408826820406639694053279738811306236222391567901377809251362803895512680087774688239802925869089016917813929566851711119435282384762360680624031522945084591797539058069965263609491479650669516949086334275847438468539593014430227180419960655884164703324730673346555983777409774895040189389429520042281217582989826736156529611310824835353681835733141030841454455279492924850963636451991263218813293936461754560779768165682406225447362952162486039955610867854457639841379174970038629912459166322182768381083487717873936740428708254097395819967900378670127766896625108000579514881691312583106262276835883299615470273672474262725600359683910432438100279073718335857155065134109069493468160856715240981266407663003209862827229678066552773608410978042568740013968444664302388853571837316317591576820768174797602688051651891764179428188905043637173765128635430410336260095559143005627978195099815855736089800110771085896579757583006685446035911095129421352927640483226173272881174838532553406004516983473506054929485556892977852322961903063900635649223715370230348703099504448954602291587799555945296281991303917903208279188244827948573236911837431723501933550418319309980828164332053436709543735171127877928120398058906030519444951996558611395298544467337391462651121231372188022204097972216544743955796568952673604997139086036666749871559633741058266559019825842727109599695694070904424309880009450038387400285515699105976182667751050450087402556958662856250074588226011275071772647447296797482732244470278107806888886956043068199855269815129144296702133233380850473544358507868928167383155068687509895073805340511073424855193597453193445740882052662850370926061807007340237194821371583559029090698297523558138630036727869947360104185338236963764846510766379911299577901179114447407194299224241461491972346616474808142911595291479258521680168660806015736558518516766782362316087049582106214373891500411937858954263427668544325059028280766283488727283773803355287039185352997279771525224505142555722152597601720677111062301637591724052441692991286453092505250871779336331372516865187379324899374626401940662568165649016049045804630471117841372074862559595795332640290244101765744880687964481455620509981558377923442337839512449400185160767041542397206247877071844312677673271590862462738786314041515127995058208988992731256219132681157605201595003576021586237589037855660541052033772327309214834317950218064940150159227816438942059794046424311419699524563272491040958090101033350545089600706182459568507003968218913753889450287353710514526325520164345212216745034445335736824521032953923409070139798487061250334944804465672967039692939343483673169296966808065402556864454322261428092239650315774107775690024406636776485171138795807427706420357800587344567179236575641100478844431849836410136641507569647920925306302362955416111007540455080758341643046348377579049072238195366737845709025393094493998283354973100936641350172740201232167729461693846879321164253770357965068425151306742786859583263870602084238401528272599564432166861860047885366588606708487470125359504903818959088320430898703654842182890930306048426389740932151687181282779836331563956055956841566419501563709892017213456803795606599824304110743772337402294134246095727912159776434687784867758977714516814254775689730254460594262773721497361757617385885625198818259915965935510366098385608454148566673360085652896655720112511872353936196161550276272906820566982281393940546852953340537378592642894909050311100013533196595588063528589021534543865620177894880383522796629873586479966683939978409570680279805346542434790524520115159690029217969039849854918672110547624708718450076569158164186249287659562008408734543212704399064556509702356662600756455984454995483760614625252659001949130964569846412087018103584802105802278269268013295188681876385255244325786370606526273960798673827993348684978077088915003843601968487519681026505226581255880568788631157774568525767898522381286797035086379648232268652702139083017743740595173002848522288594550404751972000473289048661621953053292386430529502351318819550159999972651652830228100536287505020769002555411577169140226337877953456659832535599580389449537955765418748482530199133094422288082196234019336685540606738522499938539906669692935130760447342266336732269797051337913669411842391079222132261094113798763880010339528275595092749632174614581473181514772538134956994942171629672172001862123487586077234578852733966023835424894057669527420640255700933995599661551886572162924985324944992391822583275806411034422048537616888858349168190150855608501021371531654807405685525869092391366640757215212386617532392872648273751757611444133486520428058668495570802542489839522971748064460560055156445402140517714498088164719648872846426157269552587366127608267786533937748371344566873705238626903264646968603140840948552565764758226426813212057176627233086487231066025010233454811596126558755446585237656685251033726599727423639219286828791795175102558190769578904157868535943179552024936141810301762963495440084756776438175607172581181704057136573584170275523902036763493580030547403127499157922653553731997063480270775442020352493962001027107876943462329705698087583215426815790349006909106396175101740269510662376965446989220456399658572538338067284345175811695324217443895210562790903749082366253427067626124783273792625929095564899476003581113100921165837023444452577627923986471570298986851489374719519188944742233522776174447455437038892043645982348865470811235298458847971639068401958002905163563611393194882742370134686358439703503048009266087849115630381908850322172876680090879496202797780090501783456546022280510308384041563100364172744043580211155084167279334013045692236955448567189741172017665463350000081134755449548270162472766168331381231558496149858736533393458917678542758041293225345747795773985377535475770854613629557844078325444336983116257007959870551012539421141369626570060726505819834347232330403876314578322551003411790902208529504022436111562714739755219436257948470201110247911283599789522051074275729660468124485824319620377285435445087629037839340490581897995950115373183995818406965443712588593087995797052336477599639355319406096420837209282948758239825384189214003154700760189012187301687829336924490137874565552183818258089271854639212832874252930944766043676267195718055032513481741204894645437243453075883044789347720875494173521629201994233523431521681283303400800657257194571299654259372962890948054765093743302756440198621072085321825095029050978750499849498375392640673523718000260228162486438823698205547847101415641999050429393911122892584363202841264705121134421313071538198092314235591196991684467609345367033819355525192727888474893410295258039577044518390990780946621521055070235265053369811794831714135300057200594533821897014403006702395853283308626451139862996543159854396965849067709900942646736862147374625043322547866978935200032689320109228357966452752149320745711830088677350504531394250991812462813078126650095507310010675711484968780221720411288320980902819311024226043423631878036547432093592670138942544441285421260841136863076348061984847738508073271991607094766837404376341962944736648154271700008877260135273447152105556157643232316659516872690151875523821124174248682023561853573154364314883957883534816818316696956580327307494431286297574569338809689729034868841066663219458423228881011156443217683028051994601307057455907074950052339109627240621057781840768652847525536138125463235255919633765495501181807443491285666304275555463641133758324066533096521782431986657926545224457884920334632682460219984150518047495514154218585156063253699954663872388031165807104359166309976041549459811155693226935937514019946210665163249069954881459676963903097579689450601852314461174781842782684761214708354336286501761204773708741613121910201987805644831097369624276133094584039819776872990240391094860849051150285982978034017559336258523131073292816916720130421017770176816271158151230748936118160860191427017899171502620436878673462995347651318663524155289188037202536791181170328668579342654083616044192540035834472305703028027187167431506806982546124772509405237397066592742455986523868231764054884266389452299829938300183476167272664089734357800234744062022317544100003949718441371095988868098975037655903943262823247316786495025063989232093375582464739213339178881419610523455261773417534237741738759722253595439978311709261574175460476799596695498662139460564892097382269228676611704775025779088000749997038568894605430566871708380359361341546674719905380207061444373404937939603021965429804363210987895414459723917567734557519156564462273763837777213409108122339233927491984074300126267704258022603934342093050595241123782389432691070904818705696184891588164354813242031530102531206225856043096652836983745958726652218227039846111260448120997881596656377529955428352729020267851973520409396874374613517946554099619212771756812161092451619446922625653236836522632893962215054787521993048379124972220694259770095794477030345585833375126700417715433911706730249731225474672472740781561254933810755245886211263250695795371755186502790794375127044415687701889235966864202568883387126587143405847305479123269541652408238503564637716227462996384058655648909863060692980591526683538556747701616086136122554225829051340148317499070051488848926547554209199864171368107337071221434139035863780427756849478302640553767032039298359837783825275546595928195026103860769339693990567093522875597614475187694595045488839976142477705164104547130372648715114205737416289052525238416880318770946913705033442362353666771638151444046771291981368163196280294886606374885969121377049095348502904759522472389437516860337739593241596087724452241317561368394036503750061905753595709906665701188433047396047386761116200570332155857921029344349808836507811221403307985398606679410701231459276009486117910617303717471463972163116142412708387244802161736603335423456740955348291528649856858741502461530265996523682597440504558232763937838485267582421320331454799878276563451666070700284010968035276566639960401412792387220093335869486276294393968548641458504375166550479304765024095118425608654789470324949634074475202585078790020328105539392031162761721552759668240764304985671855628344771943039986004453615306710219859768860657909285721982472863323190471398946806169833057960346021776534737643166070286328417482134146837501776566911414182604581349107729470811435560010190715066134493868970848708176894310027217164657494000053622501118535909595496634877848593026181322641509932269635748725000909860476066569722002768448148960122310625032990849451345593394466814656564963386059927978152652990336590059620407088993409644235608532712071014696932188973719927337972565060175007268771353261285941253938166480606013807375512978518902717928149194117792981039063322136436598691437473664399824416967849063682234686728915916151663122772585820625298447428099289939108404467583032689837276432200054602928188624684654009200186316539211684577757655877671747272012012666049992331470046340832827216215013767232052943700787819224592798887316008820465598434897286120736891024659830554657382252211784375528349576988488494762125087009812146273900482537637670394119843069697232923568554528274817474520313688757506256597685156337791492567800719407569544106732470509103993725502546336797979318435039976908139323073411378458930004923521535799932874791024290234775156945195399728021657909620083747926362236917748408935697954743735315398732932420016976167393688794880309039474311058395796418281175175760787259327084077372922944661797873207761800969939613291904011194172858428768367599959591417665615263115706335408802086963390179600403021444731653335814037576517082209562625007231017135504826266217177179102424848199122878244071350640063367496814364814496241080443011995042969531095582996127710905052064866142131535079706908409655467471559830527966633999730154482783286015575261032877730985533830651330480303415349281088499945322541876595254494562373875965842037520939506191905683663765732808593353093102508427352701840925383631809016806764904705960274257316104268491951533207648932539311270938905112603673100369332199254838883673758174313980570821778763730027761578583960496419837356525834455450697619631200288153064141929454272318775763786068257824439682067589699609722290870002557030348082156462914340424358088741897701952099262279853898906812165168191198971819461016995656841347314481088526171559343497259182003132786847630123836715191024320997057154910917944965784567107348750508588320351965109153906587805067615700773773056168345789055836193006427045414662239909207363491528841060202305743381112307165729990899138020513843215868289944393590000883452286548739669313824101616750185321436612278523901676221490018940195710051461102261723733559202974872517100094024696003149540005921566658207903370441692499368602861120438553637790303802404926669060752465694631408833461660717890290339043893858671400821897667350429914621982482553855588917196746983079776797149448860516767960275710845022517051832980286359401851575018357984622460637228271785487788641593071645182355729240009423393711351403163062607730616817279951337690477204247868655484561742956242049017013572710297278401259954375741931215997674282272196395846688588976818481786651661257058666654593970281727874934345467001832629735626015444345755322549811441758547124838790530802310282787162933862095297788118010983707080669451298974071021226491646568046484387800144355915293867251784059304888538616849450627836493800143735390982616112897878352132347798627952358325410115840113012954532923079333634809054385715401705196747485937844034706199337048197674874204439083607801174402284536896602278015350244331088142475747654409121330473162511975389622859814186502039627839924962614265936728694233195815697744571301981782863500543178805484621209006195837576281661825322942469891207624212112291010546963393544173247189191591814077927973031552087339181171225204722374912393790151721936401559852179038979419185080772463607342801714962348513654012004752620036990978279407666261893322913602145850211864974366321441937787651393138698702871471394177790769031681515248453174486452182022722733256774926809904550971446642979038091788848678130182079795461468584350212803248485095748777341446427183790494432715667459253861709791480994693629763265134849381699482963086136204551991000507093188259969692553402287962134121666093915868063600684199710619996064621506380815990715371858310203630036685899351594355091061780153727380001249010552000117229591009934380408771606820819122554432209673237292763900530171201197758616907844999270986200284039595366656193564489664042746184101834868430598067098810594046045455618473411478558187399486679119384538832271366745536920436451663233981504195034878470340144051955116794976167717983349442675041259276399180069788971546326659489152538646906303992348487985462612243875893438130020517164498318473501060016902050759188479991667884363712688829202569899803031814130365988267103966219523571063877528628521757500065365035519047385637983076197381387413481006993463376681537422542536400287745024080236797972569611969084513104079154701560222303322160297796465146350172776470552698355352387208553434144114072586658338084744844861353008929397630414344346283230008308642232673322006849745000501407420037453583172635790788645532406041807256650528753984031154949731396727376287012843151156551861494726475719120950353506772785192641066589110390085478648220413081283499882941378589281294678104216967273646594526391514288767631479299153139488825673345208191120066391015478506351462676335290034648652337527379451799163049677680906130733684522532026807095158847609518620469748171331434295641999350355487937619436666028309625801282746591191064064828814258695349115434758037364022245541380261828740735557686171141720758102061305685715044922663527679912686274856549537534208536154769496390639145632076990561151096336946610963286933157447581751582221253346983668694147488773142314505462289312400425554456485699926364128247930317724700029251328442654955722494126150296245684556234716663108269133817693857679562437247285862853452849041376921819447802022730477555269793151563512322569031822330594534944948400307243413575968844328267346608688867419890060964503843908971297565084258512120663805436675504127209558190618302618591055338965733009210857206442129221128981578589747193962402859564940640651097735356507648866655500737068601454305525131321873148800100783931750157110525200424338139392229096560286676608962583890234340603896397044590897212789583011832882717983366427128426486200011022887169351071822641798171606979434506449549510115025038345512526609017288817647980326201935706335297829319028898674163946932117855481482668781754196374068481027179702982590796322508842718785899185215727732547600715595273664942732413085106960564694318272466501231106468295724450782854135358412827623524212758865237384061622351464792088202625088360751900708969624780213791038211464817707047456086461253857741679781119270990602932190670315466178245273418210000814097448876355919269725843652350266580602379959497113468479964506935099821065226727060391767035854694208697682973637184473206308591366563900974492567244253988108424401626003251020773327909245633243638569910812031994292636014726205817856642376048303445014571429611544134904219388820736197901071311037417580594570001553026868384857632525950783093703493058960637808130082940831359134950715145110117182586837265217762684319266995451450992587255048097567618227925598829127276032086477987198031005974279958518132526884185780077159954071732981253066985242772427044469520235156778846569348587992478725175162906766782180040731313177899588892207584929416962325747669711772427896912350647705615000362655544915346833776987894089995964513840218732958221623455607172121777412192572308309696375781903837221549758680729424154112121636732571799566572862757518332184028939067951906770624656295773534322735274068350408404255586949868964837342799553630046900153203438977690221692697646540763981329360836014427787842596436549042907329775125166442215415574041791076727556918180386140450654223511785081576341878681501803619816221675183247484897223791108892177455129411227384415035610479181492436908848196808665301971109697208149766557573148217216708723931101806026132755096556630833358803517026599867226420852920483584175232415311843901122040551597220452381785577467523805378619614224400417604652022207255621042356495461674027198745600858611921233734510537872701680501317403021674303143560540051053063481890251433766337172171046198040113445220335859928382653398836978814086475572738214676553877220826547854095446308633696084689603013750379033850966694213296791305715898907439903098258478931589432371692803639129827849888455521892681220490609486129451044762833396921012662482053840222020949626530570499225876744300704216991882272118330448575496426241636241463439252569107916784486370711671069930931751825317671753654747149170539448126039739398000682000702678671024715082658678364320385685215762646968621196040474100278377334764555817247299373158280869688631655248961770963224785055879543791848069741484156635507410086381495143559497744453479066102728509768260190412640337584604617049414900937539281450558849622189240829462485259160896334846381050051543640853636354361222689176060008403899138075882639769139590853701025195921644826716477815429301140338944587080379898598051122202260169189587927288982314575259619276883350935314080327318075172909083716751018266630354999397758490894491064222416498080578005271498326600144932647536827440354636275730464138959168536954950553773592373239889065242355919641018179468869547859360698184045690105326592538614432600650963679767776950086807459421346398471655182861125361988453665304242709734435485989759933486195540228760725566527677476814843485674671513560982586828311627498497986884054104171299076588685206166754489415764412573369519571961951562398928905085737530763779128319550558402110766175359296654632722167458294222060233001553142161801455317807027013066932681836980176025689014088917749513035600201297897732232982897936676454332686172218837597318977958391359966654194998431839219325357666558527123685733971393351399262953338485702728665603668083402495406678849925133395473640076540757831761761105801668803378499398317264780603466703671295292454204869187843600334565406296652646067488328368943384312771415543804977207167381432664894960471937945711633050163184193195212382238529921332340899762742478774454041915032509725725670479371086469320746229672165022148809649204647934012444477208718570646510660307035869910418973283190565015712068216803330189923281376858117509913056576828777969581843295556692902361223646310308838443338384866083025714128954930388826880682059715419605080616089544348485784305920598866370612577669357466049377738073292052726325685455969581555142133006251515600637387816506207134396662554347332187664181263112503251894055302102162085747166136300318830823713527705604046941452311493045156703490369495315107374693913893751187227635482402708583057242275257710180389198141822801131535226887512886959338790398925197328599896211964603215399014842048399396892785532272277469717580826968147721785066029788351662804286734405517855202672064793113134759645602000512150212748629382183967926015075284122606947953958005703775094811315458096327542523835877347519139037402339155226257037218208305876150975830724276915094141700472642715376854871091983372895355754187827237594901736626060353654046084596167139295388207372859433413864187176898975875119014589526302875980031141057176415693912875631902270144641666075832777046564774689520009469873170097372391586341436929929376365815130751383565950143221542986399265750762704707369399182542430292927826486266843096302603248349894235156435296576372997899606561784063221625759441056260994559271329971415623714941346997562055689232374555480040789144377443408127661009323102168500126514696683058955153888550705016401962191658277662527542596156298203867680163763056034631781220558342376148584984083135340009938234624480548682730252643911113783322220433372775482517937999348961866644599775715545525661267195127301019629633677456926269232753727254919378495442984182499685865890098428255687584368081442740634731308923798665559057291228231539116668681928258306031332343145200354722299797348054327774263339874554552194208592929955749733265137660869921564756174382116479512444431347423233136264951400885070595034604826159128928210309631862867339886092570289248008709797166511959419686081948505711794711910813823607999729176360942668204850883315606245214334996410226737828063954251901337990669044715763117662544966973665119747440528555864904322396568271819746688705376572788606039256022254690618259461920594578691431837521358555891067309450582884141360720356045523840763625811286876051593693587027733963232612695640157136046688727661530302670758883039800401369832786381248311958854449204099305440723251771774280811052817120372793964998758720900625922530018317160830488231689278553609836750858474034284026279373920996631802428848564253610329977668522735120951358190847743846636575780630501261966041904669235639069611659828155943819558519409775274322341039970025849863365276293110427867070041066721372571417637952055668380582092925586141799375263029962807639622765088014915214431800079428713752915447007880280127627844669346163454655780673526118796254762670990183492993330962664144866776146053863917397832803644550343521435664946648546866856977407041161047447594641904834788342364674237930707394509983015380471961458933175748486340108482627072481564668522418332700180278266754060260475357511812887105236970791254137176792646893696470247631812967200276875060849398737453795868623193015690858826282905148568202769207066187622193403725619494142982324487347564122393522432814828642033568512756226409299022524626493778631018959084092488717974609207331810596848575133045734555302274281279690647754014807597622314642566720465278390137386750551199922062254619402570494697186907466593489707320455865685960891552057840410916716272148007902043197204688438843757229733550658885514596593886078927706403291586430875991117857637175521178718822051412777245780643145052000898296435554827633055965639798225835486627347686541895209486918762092544218461697672353035403000117677597415337664083206126990133976955974117784686994538714468959338759386983433521341752966687929887163258065117119004288393734110800411006194849783804220512834783784224967173566278274409515495791939482809684875169635737492671029340907156578397331972199406217671045904939263736064046421036290213171568385447558084358815557208709420745579694057423853721256467883727718862944359010224319830175336912253664280998121340626144894176470123407021296058903961742341555650858248184258585862502687478510550803189742056679084613964612282521011857452942083413932809746867705624970066156713135453368486939230291867146249571845279625081204394603898619167049943529971630912317032463360013026830592776237808507645080026224620883168999614878172781134966707346419928910336439029860850424031684430513396654155017005646627995068226257151889687410126531240341927612027980227393941387421270152600386230460533201187447653175453532406181949064239319258643444949287829564531636507379313909429885608105379431261339702918929036241337048131823839224931608741164041894584395329350734064378993235551108113089192885113979112748661898044973617594420094105511790650958241741929761852731447939336776277076616301489098910437048112448565666319052693444117331899118474512589767115111425886181717056282878300753863112365217639326656312082269768116157217824103256566402449359149472564486948808465041602763817426195682540258114340075456190074160367350665807075471878516217920970531905870097734742202129129327483180123643316718558492065395046356631710033931941817134588411700898982311055149139633474743117847051138461579185724019131572075381404264902094182336473040242246927782598787084621325156193232390352326729921416408106305736169578957604793756383489208120614666830363794254227297934062906541029818829058715409217915136319123501505473286499349084836848657439295506237708208835951818139793090976982045167652136321988601854921862462347452984805432162907055902146516148572152050384374844444327074483648884013857811413244439080356950235019629557877021765402404128084678824937582816898672796407420843178228712766233353180870899291810087488349381025058076282759095607646063291560759711110812166190849061884165341839809870827631081569186057119819358564533463920670752342276846566454008799369426728255768378630675643415685347975004054270494920280282665278102369468754238025144875406658968392734505949013006324125031910418942391188913445983857945686323919622438309770298230281491343994473085491697872281305743795505636961335414835750454374179257396576807992589530010282067694622067020449417103149420176442390619563317141090420129864131213776126530522256506897161765675031391792111377199731378997409848194005017803155534077309732236667103288620323415633528698798549826232044160584586077922863144164923372164951857806498837929760404780645867028754486176503113337221151140533826862035763288064965354113692536826039331247582957304764039340649434128617499704218930755448173603609022885301442120083586438675943811275236520003748685420687861038729846574263025956700555553378156397433830000356487605419139467623851995639635044501075585393321929246373589008075378841486819719970752224044509725949682543838872909982866503854029792662357798954569164738228148482741856784118386537383157478382526668462391728800975369129982331456853673875181795963310273119412220289286053951221768452522341848967682458626112259098372448775795314979897854123064514166480900606893650257889238351290640844672003825790573688633985586892850135782337765015535485304511500646123958273913418629126872955517352020732643731912052686101214625280930728575812865110388924461863139669087827168759116845310014489742542630064443120768856379316984768200782813854387456107940176066451546700764413086205015935540836916087254469750599992314304252991305495970359050807222989756755352665948733683993457060909425780361895939229027597877326095443361453210540272405682910756950620019798331946603543248986549386214601057979291315804753625136116664646919954685964249980911611697079380056482161706993641115567398206270110493752334018318433734275220513640392326207672789981890162814192370066549014211123739211963296337750417733023254869694561547018045423071605819487317928349867685024270362688833019931551755130470044375256673822009369792953932311076918334344473145096099418044186538786579877437030545720480499989341006824738528361119059205428330094952125699662156092096654442226195804047231730117365224233992996360094355667286946912335265586686689163624142113036571790609809464987450567014706303819777333740975186807355154642989837385821376002490896769787935018238121464299260231064116855040094494747335806587853177239432714510681643616919837462395918040872166483381279751211694519679225949711052832145642731725791991544285092502494162877897812561882198471158457064478011284120623543713799607564930112546953818103819224347314428127540720819664230802514151100930703150233246529540989476132599586234823243065390645166293333221982508426055754925270682211720403264910357525669904707548544426123113833893744164347936731709082409364801120569848314737953246096482967061470539525342472332131581785001449960362287730260559131286582450907637887196053057391559192533026514325942851066788878544856299431183449213753561218264472878044135651593947284128809441740896492018569557744667026246457893616160439974174240222134952699265395845768674180365737323996647672737270362926019876008176341205822594840210366583107361075867767350145554297280746965967250394585603468080414229260982575034450397977470038886541146850578920934275769666602547790945030221309851188706234121362580536425961869463801137633006879188528972849961014615317964875804080895066338791105103623963198898228933971744634525684750236473047323093567239202868142090414749721812275195484623314349592526989137868174871859650133328508839329665541777311701601497921225616247770919435894829059625050674113480750449594958430086952537447333583838501750123651903954285541961326296160135872161530042514848633252287437289244549571956206008384369010788561880379506083200862126708572856521021821240471211336965578478884099628922387957855032910465044768043048214045784608155236514489062651641565605394932362331300634242181816951356384169730754982606845907253324878704855572395416709584026518233209980877560862266873900356663009446562382932951172295243291105525698362673472174284958502060733072664948426424106316408128131922729236128348440904777588880678161313075115503385441464169044148336033790649305301509201619531015930012766803868606876495133898304089269343405164925753036808955581231039132240767737801109072287189225188263435293716738245521798043636787616025106569734336717888242802653125653037104894481085049553262363125065338722434793917636267474488316436489805136877785743493733725402581759148935906894777948910635628489729502448424568679765472171681303967803046005587561405802189016856074272437413985995786221935697527105128589562869283563563563119423775080411766964931178042101431912503187009862308785991508954055768487910320722603136102885230684524732896869340905495718490505975385557661579267534058877723159907653994459834817425493809629438366151894424362285102176590126833252669573748296377142063536487705088199709916586832038289575279341512215161315698480467116368546781462950834376800107244958033704729783047711431322702451216517417658479931358075325219952686754463365872428449000668418262969554980266148327001644659214263340417909903713152083393017395069088459678757111685434882403953663991971532942678160674207479032376635485660885823554288337386391407820715978436702101724833064838732212823384383808345409027182920528349210679106500079344868675347138051522697551646950075831653261475981633479472399316971583163984619249716411332704080839540388411075522778993461697147029939233962091896541294442095295154011767726800169226806579781203325742120543828925850505991722179343203599849573393743653948442818292426070165365701116728737005679902794812668702588322024012303751279893616243765931072499176963586022038402939111083662165059843616260809183993333507715992260483790872155869722804749584797146518382093823539488255076773751963076579734006446641275469658450565475288842563148144569142762506902345750655536383799058770104570696103519122884923317904488441520027066240817215161260425329188322379101008304166473037162902995889181607219013302105043328344778438223425496917035059912884937573889900238896846779192368318014087761054470181292989502852649009083291603355904807660155344003735976365327984235445251766709501592129045773122496100120834347716504684416369869410008166023569739980152660084745637983491543526957245224688582866648114620757023453330568786610969920868796346985018701232785524051329357816984027298064607882519761047594677282566793567256139561619364981370698422426916020025033256029562037564356256009451627186613775099674303408461952831895042278716962031213410583618625441299306915168762086524104172831704151201149687950288665444823973486947075133168886856617149648401914652503595792429552899700900864081367288962688995257400466723525539333496583811264237302205653962025780395453094650869594725166465667358071017106703329790535564449027061468152766410806475469550961801806208207319242329911723815453647065427968612149359654778958360690476637804827198924277689607869533277566061513815615106397179737543067951449650231967986849589669227186613791797093493281425406748648421614978552308400918383408603107265633357143642205161590169033525512428200128971234090495451442579642605682678804219238583037924634309130777153250544478549215608954423962388789294675770291588734457524107217630237577720421437380539604249301721821898969929047755089000867607156943571401347778815324988402778527510039827718241754863589543301753324311728494335512810775222477447229217185816180485757934813792595334130262388367993335461292612892203474734849894086457024760151480808470452495609954726509166767572223977115339749701869836197991545553824323616910475034940483176843511944782446370943231913970283826836738280856634331605341072829965427209740677624210184711257494420752273134923981379971163303008986676189043066121988728266999266564880009289526692950664883940866164987516245643304419381330814746229641627932103455359347168953972041538896416168794610273000198346400281048657265668417298870912415501065557099350680106312574217002785733677291666776561636720431230411562354650275567180706609391205252888644478584421503457445934100921421994009348431747617123170921784295971615719670415930723570504588851307616503261706612991349518116943719517343281266405489910203918892747460421430513133579985892602139474049891533767732976208500366244727161359867290048420836300028732378430748215743692374745600200453364796040432997156688094619405673095379621950383784368165421203529025655760790002477326451705360528002920193883374801336070196254126351038100092351902824500604366330997329060244679237689129442254164332298784133312620950182394488777089332880037231960211070227702352067889874910380547890499543135816393638682659086305676860386809796177890030753147736642236833179309714178929345159622089455722117529648050969769593620501686144472422108221026745660786553894864888448908845685330972231149495895877210616587403679107458334744519728038450505044710743221386784135475108652830168386899148710508066580303525978808026220633060841858479717429272961364139302134169493404495288521839910265169278926078534161703613559860368602403642728383646854247119182405008918205075304552639400065621981824226357245272358003979422788881518140134702593999352748351882157308435792302272593431962608329480874793362803389196500189830267322083257251274342554306517797613748238041896436416962598559701093690567566613936217058197160092117761743068760237484245783965256131051912075643789042935218356878718813240468970437226397010120588427408166752489228969406912933941597201286308991056440185775973342853636304665063099802651410536955795283378361305407484889519404239564504039382343031136216180694370392529830969460740673010676834177712006921899365910220629121311393697833992285833169965113071954071031759124140373968125684055025735571365371093103357726253385754430856166112893212958428849034969521249977145672787967356835984184705455448103582833530878604427941102770584245560252792560570393778777964623602229441080088832305638943795925552642017824409382028971512766737306952862216227242328656510932178925895877392090641341993750443927187150834093386369130110094115923187767362787775201053377916864216626181209036364825373424504914211793424183576155182049532434841419560932831499802145827352637069796408608457350700939756460156688035478258468997835430789206436884946555218845976790257569057680513082284334694792423329524091991899625971339597555021234747355611938276442277628025817946196652064897459432391436796021696037270504899990742182129493776028160960915458458025843124086020721089932167114775192056384386998627943858142178569375442826589619465497398627493249723161987163524797362815924076647902205132353423525504864093389135234208890923473720885319941909895323729350105702924705928866588243974239651251841154421712738123060819158953080934857933914455003781134838455357999977899061179775839748702698764995174963932474845077339063418972544165204250328108926396768442556208350377046297449370215612080581808601336984881099517805935299721923444586512380398982193791875465229903947011375188237096238992268416316318708784581532099150011468353534620451433559137050191872485224651452062596183396142296108496552941183891128556054639832966352561536321692055482679346896867534105164109758122685093668055597213854645344686239056132094773844323575475866868848578161511018535644425850415868991487428431591847990093147924589779501819184059343542969535000762584555268189551416966329246033743896403440115623603618631270538419328830510111853072400316280002242466206883006479787428518981257000807202679821269944325032702263038226789253703002565080206426239320195596279834192621832067367208230186073139142787262004748436161631482339544561214978010358734037151325685607873154738163469107852982120510003826292480647449834672292823954843885996176135361762323157893502412381482701442421033713327830564651860303370160361673842690946097509446875426852578472593132498242040223832480821546069785324157595818634447751323010070239144252713324733092728705204262407298306433925946374966124861838535751059052865778221203795164143683230827275015755901490812771745729408908111497388039201433897060718221545763464967370410916302929803648448462099401750926416395039071172604018492484506674699910906526176213623657178592961558375451043895496349441781551865216127587091492178213313669108247426999898692408276792255906121343022525031637137867913486258265220957668311409313454067124655512037397883544628119269005384883430666236427783847485684142425421436878632559491781712251103611950939542592437758173879958740879565375572278993651163471864432738360588114290597210421750246400360429633392566509534470432082989223013648565063313409943849492334632621597876768563191731435725000227792754164476787484577175810859257090508578727896847490932261447321360663459729858639993186016858316372963733561918457894059083270385970123361017160883584777164176920982465999704708656060222927764932913862114745749189527501117222263658050617079869135578310708592143530089209832312213528620534617347408967802030332253368476798463568568308479186442873027602347204371514817414999318966879843118176090995777369306429627484142583877620640056986438228814373360794645100415336864602327496574064538268430390387193899070618433004889109749056672384044527673208353125907363512785888576227147148006785200033625519511749209867267827755218711781461615671719750819223514157006745816373188531778701993639403686500736157604348800057058654246885190134274503553546905397635060456750272461994802777211202149983259199774204953192896940568441457004470119940620901611467597770925595781082872447267640723995293715467233793717859775170074279247933489508603003567491375858705144758487579349548622741461795187527378320733765038642387044173419478018460339758063144095289923211273792671666489694003521659652563546146005777500416518654738487830646944923908882533202544720241354972245279786506581316994344029193445076883189430269873835116768636309166509215023524168031407690366052561600053136990941272670586368145578275282498270620488038987374918628171525238087049820739429955296217475896859276313824248524396369129328610904053213953220251919077051123054563719888957513823430548126624964071881527077844072158836065236644442627708870868843123417817919487597866969283167794042130657118693197098265188616582467883800009934519389144276091420294846288510450355096816081733294562363263229995151639506210434992034647374261228856630137657765643393319515514611543622818577731935606216379936293583353389515471463350650555583931928535876260270249391801422331369165381360525714875507674093382104128934404728706070549762358089689400249260009049890027907173006816467506132677045887813030666005388396957819530528969293039295515646513734407867769202318544620650307858415880559237731936235654297425973176532908147675669759688749470462532054881627472619417108550577472788906247258252073045116171304719508703757704784144421019901036630902024125164805706317567630648148631479985049227397777180649686546324255252546462241264270022301255118245607707831620323051840092567125630393584393616940223972007684938804849439925027441545485897455795396852064039165124776337812333772377411596864012613138625349676504423713399580392473733023204138658145470404450672338168746336178366083070091113446653171353351701353106939265886546941432292507839266819800808646771884652570854140349210988299748892266776239526329199271010582291932181499273550522454723472228689779532587714036848426504511447671214689822526049094688512317896435675640461854897257499846538233993130916616804025206374021298195813622613413761940750746054879771783634026695670322566459192232579191713101091943403980243997525537264856668070992556353634670283707714014568294913164596313759868634808303729105848170637236384846507039772874071578834865740908179414514874505182639158027599648850546854411333913468545348918032962229943370511619238107435444652121726422157069364866848157442860507711851544098255055143953980505145433323293583387000582680135122386850204599658510003876299652301218768703267352555649965724092922427709729814613620025567084864903779626514011016204359310661999297941701924245293130428513528824584420555894033156068502745196588283320460709649095721010449373176872171453721170822617667628569613482119058488119427296551449793111967164248874491476676689465279840522177797882824030217683514578127224899956223249555556717050157052147082776842908784713519613158954018332901951814295273519913306354267225239945193023814230189412224329685948377910478907725789074019605450238270991815630636384080818293822849502099238939399650783910873124266533314004017902993931951488996788467666269034455179201334856190988584192326133299612339279327882674527607214330572016798056643647848058163717560757059935216428232859075380820867962687230097073619692853246860068933477293027865366665634360382743905779860550303510800429782892120553525975529496935904866734028125743806282401782817567511904079436187041387022163121000867882634349403057613118162014228087853789542680628265046990785448935338937881605322685813100998455904835178285555773349122838299710836490219276738853557741567086188932305260532637205555403379785754929123648377243354117683360342671621711466877023367292694639079506841925629201780901321032189642306417780419304404636345717121844732381781787097945121331558489080795346401750892734014793433627495991794795961959692022310726917644613921845406861728968971890985025154156195467795298926602799368523509005767191423680087084270488038558222277102333515773455977450906991375256570524100032460783812441651167956183117582204179989657917472791332549572982956136519294569056532090196085669285873022207115613007157659352383802775203276337843443521317722865852741345143686097305558507701868982537394873766393709713785675496203884968976869988735658462439265436760329404690676384731401245178884551111678871127571385350695108733277498552262995996720430243573255124166762244794361198781856233636004596880199677170465724181249551280757845757084694777892095291043642679854435408405029322727769869894179133187374168671160848139593089813413672201725731016416742198615430178175076089440622677594108683323597529924459727821314574659781634566440005786314371825496196705702080991351675215513778005792767904473022981068475967980165922518020308083917021406289349934426426399114272428596156654606194214352367055973683548454180543656564618769937769111190168799120275179414375008795887009562817611618039412387046710320913603801293022172574001170116694848993177482487860285827462632030144768462213776167134235851000547582009858257017293692291832320436170530028901549696019779316718553924621319235095091942198763244365114419590745306935508944712453470263422714409711598848802682208026983646071663219733517271113918693724034228267464632014546352841765930633461274717724449750179774611534697439636245060918563254209942229879010028981795002215351674984807249965427947661295102209207504436873808872034213309477461308487155985873028530639490277484813944581322188191002675536458801103104999329859158453066836019520690800661704494771615084326695668223403395959557520714183400759560106850785487512286585425157658139252171600787269976050102384955391428853686319498641062453612952208483735378584850210262110038718825292287595889283690693125409376836304239072486213466146511616615613974399818685993406929342799627652560542313274426446453815030792713501568643837966922017584739218270859898161515677791560931160273503958326960705618246544506633273504269449095141889485057666826900802993084051051834379874264544028506717461203475376456145195437797438879998635346587135820956300104978711835829841108654014399154445176557652775624977970291913553902630051022624817028083889895602408579400042538088610070149417138256561419738887660700698340830718529614653717791427325939129745497466983988193247423788699797814721779859514599849583912511663213319684183456496912297887164889844142245619969791508837076603475508819570436231603103297401360332041880766411464798109259587480071686855089796469859160657198684768979650184803125740162629809886832455952903969239874390166204314172158148419681893953581293502354346861353138363335447550102380590448027911644082446711846628945563177825489827765589443067515085426771199670571253227597854869822014512076709464506105169107174762319812403422454583554920236046813800684669976100348454128467162867456716239194608484118628217192050430337848551142413071231474953768236776345296840172878497272719614110012193317395668045306243442429008711645481476699864483010268638039843205069069105111076591149893746686369344875265333966892761643033172524921423999328472215404373265084815931274355240637203799383319298341426449735115497947430681940053631891693094335721111449943558336930758398364916422811109944643699508703902245691583664157905502096847206899294851745760330077995218331587242841861907254503409385285945394113729829063362915591011373579725798435707259647305072219839691606621699509460585099614560518537859949989612657504531304978663356635202465705701941443580294203330139394949912675009193757911662533840620335556765339983758367437145298087161570280954944602984414557205110575006221787743508931988113396712508133401427483141342364042212105070519212752707185833781962106010558562188908715953062373469875867981734006876835651267397820562926063795820883196945435944363767213437017810460148534229901154486381640371589234905824776669349579604360555771183449773885871249889709791766887531182187442080242091302675763900078358394269685713834013849968664766977860857196415233673184119482919208540849371912296780510900826446084775333630204107375465695867845482355486029249843076924145865770240385712348333110357169179757371956123016236953908403191806219255212491910636225225580035134234149801439953635487346127869786940101585600895861150827140740033496911206118746381415867045764276804551753868529912537578731372630086205662117658821607635500944922609911057369397807898815809107782657789338278618885536810862420562379223433822942598182471247335990020337092283154035801123897480054469108537716281339537381144691515754499820505693895698783941197516551688587859187555070558349068563242030851911886736806502145444720208928076027110269320003805478025287946098029109382176290359222891377602345242051593739535521835683817781584846230272404610817832644004112780096246015606025656738177913965287545709617057531429119654551496229307653975111744727503127894375388454643231084162833821153263568910978942243800256946961110749822168794154408774250753033200604179555984476547874574898974242854023952852756884762246315460770909374422603601849618877405662555968544215194490047287628563819985318534122891113654979936874078325315470217563752617428147561368919402505769137148308658310110455557887492412959414552533404451919216366540314275191061127093399706857048302116242366359000145240439521206074479756317633817448327151652401097461986758496022764323827787134337785389696721760874550222517089788023895536749827843319527503673249910536581490990651238400189476959439123224628950403453347941716076904147143294173177773639405087872603155041842922383561389431788216839608601569954568103335831491559714978532379046831456967062054373924585423509425377054328521068983779124501943638938160591905519678366478531211938560281291395953700109463904216655919255219954957131641567957860220273727690916663784813367859911460433219267206989112011850378553823816254068484051494671829797161828309421510007968903742283887609074332121964902276544395669472441368850069845528244822202542034632370122079953388776996729386315025559411199122067101533029615721510966886167543777360959575432792937134995507201750705042750770060704140698656241464455300409675583030643256687020588167072300666399075446621302582474887380045916735074931471852222727671599345689617809891246212026942852456552438432544367247825953948250919901188266895144684600064941985043771305777810945555913854274398038001556897515396468782886139668322222109322534060090137531450613221881644893988219253947930928242646901138396097533106366914937858578365579108518235258747472058489695044274419773566114394172644905827409843236481964983012060575029571677194748451769822988893373263884455733836057188241996837961826415403824755168562059609732812612720852554233399174314492037383703367014679051107956362497036699201766117278813713644273379945529944906109518126801223128277837713528461674281508430239888128986978311808673691735439419605465942271762176166750827075259418348431023785181810649662651351112163909964387138198407937455236724653235195705967880432952261790613365890313137702729636447734156030566583988093770505231844214491265592736562774362923682390781779986508281024616847494608184895116631039703234063404004165539463955263633978492638918510416137846082961911877867524445283207812682764396192550034975640391304622678262299671870699127774742947873522330715939668517924260256982704637288150708809249984932664305010824894097733557372201697199081806602309398475347229565512664961698100164363354935873618661257855497668092179491852571320555629731204405170720167396007801378212988715697255283577679141948841097477007649150685703956109500281144044595522016502378862017924557348866486825035817536742533681337400776171059175815729377124178910989149044006387337954989765300931299039085733679046984315561433629363247228571878218771595135183377679411102748468477905086479574476113974266788860437089351342736396569207344493079256149815538722468925120645875251343844433633043176387008211701905920438125471107633573679390467981899596671347389626223498667590307160080090851657653014953499718103632349990737499536392188985304701126751677793276979822313207113796459200587783199006509088630087458603701933392584917370097855591013391490934495557216057550893386970196838081652708598785500845451284736316002253726245323501556401950861980824081061473468592651166538862076636578247845636538843336525388387932040863600506533182493942465297430114234075105692288862239873320855222005900628398657875898640353067021293653324476697336315398470584316656645635326367779691479851950873845863296260606343768921625665411522019750929723065972479958979566326270150780527083436406138385282841506391448841878414629468113896545738156495637668918378338239497835098259939502048669212027517599690337998317730056823389746954470076307920354365536177470620392175330246744365264192097547561292660095221741968527131872377644024694130391270075995360758446413997876093841520804365646289646810569747262582322478661540239546774157345421669089501823396183039688044598874613458923269245424319906744273498095300694944878844980479913731964496281395878305813388771789317176818533296334407018227845551890762340265925470826511066149494669705621643412058816185589385662541013022517833360331830976572877970415987500409670704421396763152103608029716551413271480230580920876855838099774153861700279491294488738369768732634160554405069141338066998940053483250361934493262888471876190131123976507086284232223251174195417006608144124757104287663174571045992465852314479316611587186811909456953976765566999015230281382398922747979660659771955252861110623775910370178900944749467995763940624290810918729050453875861243755877492447887155396869670854471638117092020181064861223027931048352181101889821387132309640568560491091704921839362600839951203330099239049754119206003139578566898288690752684674563873379068530809360199046786324853813327141774807209807370176557783168212097675225202309225318319351582058575229500375718225699490509053758356695527191482815674476791836507081289269841473409306053494808789694887915856795563865875665959216816441763830358955326297783805790237226914317612804193609623283148779212421821097423068284586951578176692895694266747662116152028735874994768834863566374529991803721599594819594153143729486938074499477052790379663273721476640422846222969349372523127618321703121737132530694650584399996700268249066222952629225833513819586165294500590925287019379407472126344558779527332726100128003405562599317776968717283914434660545049133451776730428411351791298775353266481300173401422916765243200750537246662428451310578429025458039327141614142525936036770029173105997117448759720401205996812090565637474843305232309288309257664404244821612298398455650221151868000301270101730301579216327505819737783555200684904954384056548426006455471320425395214751351514955324265825903780425866372497368056524537925193319943319634871521857326335729698411173244367277000398513008372215198678711678296267342918561663199837523276156019382225582191298059463580950391108918826574549886586965836717007841864884275823346836046826202109153066037179221609572092891349504087435613921744284590022623220221219051055643843492675851813254824078953545378039966321164169801574223806341519734262303872489682563411851706148634173080576049904598642147955442261329553121156486416644739380862099934863002081042153631621361390668332914620065280969200970017807924182932723892696288125396864590380785941085447146139089716913519765317807420278718129519117708167235043618148985748038008408436935993566781247761019550549908172235360220374287710377732273490152478651833893227989655126236727910517459880335399877142978168778219659171107590904219021320382625133531558444435664493155568103706031235322642125710687809982125849487774769619228649125090301653087675271635867917524887065943038692117527945154653799500467770458638863249213299287562818289733766154677074861959738136097983383411953146906899546749920931316651594180722358257227462362614954401647486833912082859750830376523936051992345999725799432813224646614519157740788012668242147357296982274983743038878800763506025236844901341493761926354610694022253224903835888099088877526922955940053636905911228867573081713213325783566681905276202299156414505030921984676269001384778185884810119940265483105820812644616798007558722050167084600549519892024195524260040250496687163307945012527129205562533950654589634568272929739982641723646505764187677919707757027146572061822800653956800092532618316199618901251356352579269567133883741707762336803449423363439354089911927384600801694142466586197582478820604283190545016217824918717644037584887627459178248905061807916301754434497233047259862162652029284089700020809374557210219735993129205290104844074036178072052984396150107313034244505499577823389680017303246662861974242326027457219299378068704294677674335213388265820619257404244923691706445743149077458219326605675510597718576908950303798201462319897682802006442557092948384071075025928749125366500616628930353423693488642706850561852951357664712714125687991582094403079954413694026010763755687137936787355257074524617631732479236057002046333015080001141690419734650471346671670081460597871754555359087534365751754370794258410252079660514082172414880942889681779872048379521538975629509016174800859507399719152788523934492072362090426289915852708297979002969602952953679414786876043976454526388473065020875792974685281034658081520092193384950325546404118094784476873892809622298801874742005558087138750322521020007641990453869565386858693759915664855501786459591733638736494534128991617623167868725093861569228583419201191809848782913796445933814308149462470124547617820962409838683668590752008814245918660303208985317954405187155184835372115414411078506469821548053170677572141447409568847755888843219515959658980052966795779776574448519069510496095059880233778745361953498449194106861851389980499173271955495475994060545148821362397326265115959812912645604230714591059069175971707617738161493297807991470212662069440142767217811096040384128173629292314565787827255083726046559170387750670363293619574958068712917703772588595649374907442569595739461625875675950017569617858336348328126002740950068677409132520876236922168649622614570414427881266212180615164771478960047051763040689393866664219577308766765419592007457419530733869962579178241146697095688281667099516377420944934997153122227917167152538465841487653307162587710364385293475035764609895224122130015382942470779100141743286106166300034538320245886142860930967593602189181960198641216100344383103862744801209747823220956051426281249256703598397401824675476248668363721295518685625681328461310009015742256465797225358568691313038335644731187956902450823522449216619839321915095703641670705499660281421913134289572251749970076191522877562692487664192391480698672082541957682317316293261223303939668070390474705148581123789397367808357772867980267106701283949600635313926945178052084547630915092945958196531336976966417380481021812417750319317591104160153957051105232858405574298829698968982193196369933050546088997215668762496838141606539443841679474934570628711194229006462057669194825006172475278988953839783898443755308091502377838990005257591694895032968697723942946846448974881674620798526043006892479355882548237280608273057671230961999892054385558834343931099444068507235359495217757341195357901350103456547680106587027674175296199917061434391981376566465138175793978881478157483415202035170905070300808515051605464632703460926796261905637922034954637510448904594609896411894588311218491992033070522389338789377837847877133183169517856634779708676694878019415345990480631691581085538578557797837025941894229406847041199118778569777185600880325540001110726073294898964281765262119251296774784166002363960826756025097553940875229013853811018178823091306467104613324838520804733532964990359124921482510780025600746295793726004459036515442040776983906425699523482971253698508121344102711250164438656871290445489299417222347110074750867512438012858092837926317557789852374931018045429501314710422081753170816891040343576806110020340312688119277017277729050277482658019290886630603796938907688002688599137093579478809594876308950023263355761202750278245914969711726817361097421337801300684405996777907352750754051364279517407531042740010270205558019888698546621016316598902475223557456811496738753856736304584613815034215369618111881846144705371191320490084922039323329019027250037306503607234020835770793688871211944026448863920504323501982982466730541932753474106718087935260937142920184698316791433822837587119388817703235801166068606382868283237047168784044718400332403932660057716954218424985379876901581492187632331291869902892646724689579411803744969096756891825224787374938664718445449544106350653311272383883849577208689955449750778349467670433893198192549583701612241756450285309803496658461707132077551890467880190019164271177071295516348533661073495904849725039167931609103314239378824526285401395908903814632833078097504813251909711391644245255970129020371533060316939640356859251966421186194883348810224597061644581366257653520519040170002221409932580075080259321880660008816244913405087464360371315321049991864520704833619269859669631782112261728201892500244592052361743905404071777383794111520672879816235453365723810410149741503592964822470268213942235231583860178307021702381783019883562254206772330448459352563692889162870681033188820370743029128968501958295901133207850053035379891567387518347986158037471618354965528613539374303399365250175734881497079120558441145812995684002991109651448640884400341754891664732330718531776505234014412273225626137351590252930681446331019010216005646387765240524770422139460775097406829624552325492467150716608860398296972158650985662568946677260898059707884076164822642764251420230520207179977582769708745699081570287975210464773530654137113969299920977673008387236600756888076352040872571937011941388656755695622059490315697183726201210136095068141444500976977217261327726693326522693781482580146878881850044079153628623863697263688078556717104266069088363242053623758103059519716473889394502827710925787368414670984715510904054830495933915723386358244032877863154809081367246282821692815083895447414731412886201798012521272226750495792908961031936073859650386872018948899780435516703225141832665880347723249545383617291439675828350808263083505720866719674717654551977305891905661760530761673682764376970031260808776061951436810727931011548269758194546770862979021375434076213189337771257069906146180227678543381978408353293786421567547368299123396265609701406301720920707365715720708302420284755255781327460158395510488371943420549203115223090532200254770894236362391688611856541193313433351494728428714148256236024004874127605055586907703772110930654052712406662788088917944097536707566752964054304133096679005475064411285045743619438786417850893282068467824760820583946866184045989735123272339725309540048803819103070571319956190317709008323208404145091976192768091606256076755050192456331991130282672688833949915280859878627105131913029484377227726737739838710733332182284871115206057168866136559631933608462230202184419292223844701236625971426081011564273216217845041364223080277798424415480856934834592074602899554872469857870966241607903180915119303624273585026471988295361192598102021645573528789607321781299123222938134984730734120756497080665089567597758855996250431710322306733375426441532999223893878423806680641677832624022415482661024691925012289347034091987514585834278455074839386560297598879287080163914405576190560461672908068173939799218094630992591798732167872174481094878449725232894973146572290222172638541654362565779722862857873755531656368526450731131890546959769476542577931966217953542795781912784684343864158597042752013890888356398802456775231713432047574670611858869140514960263540851933783380208635105127242973950918144929867673732153923424747135049056155097313226404045805826134890783299866907469130181646870558784286866508622193436160494100091396982148854564561937977759824374601009736152207302149513399056994222505780498950854272052923707865725058405243119348464196713160044163617866110964871142843400440978156667509395086331187533178637715651223993200991852665391885250378511468569040197229390320691435984160147808304143254450056165427266000791918476316736363674838482567265517538662605125886410203240811664225299960461655365990628354551143117992885340686330694831444653881286526871326847079884263110450342616605981291514999503942743134119269707537012361074099702052374174204452427959214910251284579240129236343965975464945196247635090287594196171803636808758127707470368416952840504141415227374807537414796936905146341603786683136958581841109204641572723759331982537824503863038611387078524722020191472561605269417312190340342074106222318674639672914357489798656437293168929336359288671861125820884401622959323387963497944804951439427057187216947566814740458021630810973684741488190312362769546081185932869235828719634991220135211333305253995646249438372120044109524777923739313813539380119269087513059668405269349517797683699444868188449570373377028534710795088954980698678271535252650922948478333020567293771798547516717542951148926106159390857933501227458009729886546268557308255940808009550868117947394614280729116472340842603188485955520672518127916773081378540302671301864616135405560348628343301245724064882192306535579667609695444607720962660774815748198652163162193456975222725028246188854796210458056207674226480007677474439747829454751255390250997489719572539934032876708950356308104101760580333138646385238763000267559986050591880330959996635364004778824551558775245767662535143920334524250869988653913141386946020163527003046008833848655679512013592882075270931494552156212004222786919699007503255428512414122983217501164754550479508798568450420422506035321586636424078725173237645114802086870195088000639739948487289373409074394554557774326631947166569595924400393370107115120287140753428385681215915642186609519685672405623024561893256526133550481460338434675445400631282942797281252681348264125000483579284700452189551815992402851877405140045740879996631620077447727058303084842497516066199348488671150177855821594727532421099710755194699446501982900002958794150903721778037131019080175008276647100274234288463131318521636666944923239919630142562581606816480354567065022083365463445126290168307220575240159976941986856669413930103368705461239491898731973201906116591626480813618111776349383225416152689502082813003757314583173865788584769904964058656831273489671171302647077982329460709183236409520246013789774628487914066470042886471078911600396434627087647941585723782472562497166715167586321469021588539678314977843587341037116586488619111408227861181217676761726306057122004739067027918779199566144519083612127417666937938000558763105584142533423697417734290738455290991466131136562112196829783186183286108065004943514955618626390859031815460412607045308461863357062160348768867738946490353668537416982457951050104418500442629063099333256602993750998129953478017259901886381005675654444840269602914201821855921460798570724276594314735654875621232142345539953029601572590228847156931357736227594894643238692042433886281159693865665446433451483256015962515577646535604610765189746768699578266770734344355255608487608547764245003680630450123082783570448932011354975805481563492824389777805474342640388238120679212544004597022249613305581939256981687770907900428118957537923322007229663654934205307637969624528705151402731418087712546067051033417664448968464076464488549735162362141323707579520085391955413769657281509227815768880181113581048006127163885221959913049659197863028511953604546793965086470516523134032892991628153227316840986188943200572341396572442642851223121496196533720822232500736472152589358588391550880656890971825951196475365749169589740387145720265674457185962516497546263270432961119601251850877531718951695702740585323118992920401921681835934717427057013970529346582007679102345981758335986770693205012445582948633623938329970600308956668592134884656865444735948520077694587525725755910402349233025389586822117248729264857121645811466928723620539677531315401833454735879365717150450873401643832623649599905364041341727086372875873741750943580796571303756567843163695580468375123600662101488281911667855134930726121213742569886999554306158226300002058927615955647393650750120932914802039349122257204372885811068944462658636285976239907217651316884032577527581183617435852575136525453215060971076639689695370551893647129982506701358882208996432070924216643850954497520800093695020350565528403926612283387546383678871851957101997579667265240328039129199451759369656697718091444607289085968084685562163099179995305062098288648017371676118497824818829280349233293065835020646296152379492258786616943228019380619559218402254852794080719270396061652781989558385688943007269770122376437312750683949037276937964013612294184473596156176134111687037524040530900443829374506202937900730787484180220254018139596129726990101244997467087410831791261789093228554571229729601950255171260726587349809241050508570004194828976492001240845304437511214413641895875544275463980636441920139791283880319832105197084009480948669796001401916156860484266453421010661251661806383976550524298323687065618383872605607894450585908302693370331994946768900984655479241495016816293631631713945498763388828796553148176450635597680417383087571999770741259239940076087677189805478535331234971580008593888689273133577495064265215740067458746069560982983186043346836546888783546755865679450134396198057034020977393362491388564551110974730484334537881141002188889911317376876525926745674729441195315980557151446058868417424251971676289333883678502666892698441684807910918196586161366415576765286070400680033569814524522759364970844580044453459655010788966942984347079198613612341080529075094523621000117338451771940683950816570663700920479692902802420627143114071596176851052034383570356612675286107615989730943482140191332612048489277172840920436127952426889427899445068310304521186487190198310801615631686627925188080602833933992494301954595814680347456996177179258943494975139154025456499036126683780747761537604079722746742957928418262086888421634255486083816641421451242237357056583144840469979992635991096929376749709206045559888266868447083537238157083990623819172039010693240997892460074730857008380802654947989636120552427276453678598134764241263483520226466849651880277903849529172413539370600154218832296368218682356001211940630622953215426850234799226893903457200392290975039565258571176745487993918328042563632308716831909937458869767200357707742582742420790758685045960552784807901075263489022611671601920810537306825305499868431673956714073885083005871003932687998214072578014681165603156480068489759554944560411996244328774816464823236599162899092648932461975813008662776603627021050210843224595837418785784141520317189197480513781369359735723011779196603059354046151140610443571233592560084863206152721963881684380515780237708117707536946056997549570335463153561584867131735766318803679327133027233141803724114892053897366264955868019575894532801632329744818500550421617131268115076426344995070816573647207886403437425706641894676917505056830106447401216328565114764270436415462661816943523414332452921076300224947121247002938690594515328059375393609871976661673981231430984984922472480417691875240752237259223185526773077013734457463887514141262575693623896003874660494152350623251736258803094632528801491595180523356772893382800661825845035341471884899842731463170552295710207614060571949738177003252525830642782993413308102862317442925522273926786979092638612254498743384011994335310584889160724290377245726545140811877692166188519642019384892612988887212440468578998314369173601423626683009414256734518199849507297457010780947089788668007351270682366118337602271424109608426328572515472551315714224896588895254329016738685045519941053113163477407217898525031873295418183226837593222766725814420197864980808540366458306996810677027466839264521803878995282245568653094684959453362081368262499061213341604368833705663409145489200309856491241319697584712008860403266350039809622222199317670151440612314421525095701068718669204030413649532898756442176965157679174548941588940325830446742316515470916591361156039635706708188469172803364462631505123061971322543663845990287165515908687119964183467219530395663837874816329615083626533824398088084990138534846363335094081075285941845491907284809713307925857305760758176715454209624267208801706146144162613998912320219997144250882650220803557407242792375498565928638516053695583493810873745746466201187741451183829061626783096540417543316739614998920136894175030584961654318402684838189606391438435423084646861296004962045044822103915439093315014632801579752357351864249134926739348037140499436013526304593746146279495884866320334018656833637058746010409021578962820970743034801209609407179292666543349252306262850493051599447907920315272470155220042162767886770528122179135771438789699333682933012106428661982958718481730049059310934292035060725381908416639529426942463654631074381116419600461512113922885191910888887871169543157051934806153417994645325628063572314869548641955706702082961199552835511680861666990929406001999577365029996466918873359584676974668252292370343254400493088788233247444557006238353847029506908430729674584469659969592347034358448320017475393396851111332079011950663836864342388216426096970409172150731653944232537953536348485503949340811338486926681818680942701177433220348109100668269927698885519713801796028207448516368175121121989058196043185614175132839029806328609589539858806998788136758811124880652411537119776796154173937298932025179490196840082250924790998692127485213667459407716426604243332434071733767593498444395260927232138777181688820905152646575609975868708018432228386908771698925429197539685621210671392843912369778071567822941397077614762620413993373848837758864217342525340727972358399616252031968487297779651619135706600755966572005144226407482973919999082239150320809773868578067742146063402876175213834185422102074484283941491980601105901544036562988713302861637933279678787488575807397362299509495723146760813621520869966966435475333617931738356052359428522945979844861700555987383080820631958145728886090824598862122546680959562700531226957128608364359626127642277134446316897962471906322533895127871899147866369207545188341381858190372832013199894581533546262048076226168711278105093278639671645460767599972213923793865982923122529442052379652014246704923136398370753993918590140542581107412611744759276757771320265966130759872105748431363704670808740720384089732393694761823508803296088431749514791548403192145270657612649508515002071029595697656350751017867321809480841802306483151745903370470842260996544933838312676728025671074199667537528861572677474532929107144671868685973896378539931490204564684403668090752154498212681317854799179262109009477718261960340835998364386685269213546321731945968366214579514011213952504930692984246211320978048630987181296821703889511573987845273521185028609031137418133369211231409078705584712477173942520010775758984851368697137425616958936433591066651236449758971088171050519484013504634692638312766776624327733308727431210328791759067209269441024469497370949415939495881180234235697657803263557957014716905303590405631602436780301351533206333122095394234004785339670138020526504067344853613918849573423660840146487134939186125984626051959857971245980559752564534418574164944519343431537045376647288642862097039530614384983002240894380843625223578100016805663578963645226084668817041984016791744403045921085911137954828275404350171352487295614184573793622644763575638812008548358286769547536521994595849359288203055823597639183690062520952355370919527001742642040405300004571763289742546189501062622245970135193195769507295664334268761034964221736425703735042394033173192396059328246724318549873173222572527725086397873992669772835694143109329243149624882429517485069634356707328114217039189402598375330432413889265315983851003668991587565032075572770872871565833624918962929914989303682725782352955360339829072016305547007542050032500385142972070631829435482916277011750725544425398547896308790137847005517816788382897785394271957147041839631395611096898811467298022479368885486718804751557964966175632323718358169279609990503271829276523472346838100702853566584390365901818463666501439320125599321371385909899354134994983158044906920963591188767517605265685298186333731083054966720119165081684870636227826844994432991727289520384010982823235008055904920102806913105411137673225336958979347900899195718590794632629845456184136242277606893748209459854159476980919142121685793784488453116446981124935542296232175530192906282125514524023613517862180468289407513495587420697961590829013164927959468635724439059347881905688102969789009153935296756446524263551286690670235268264556398300843841534276837786918284924102745236258719763542589652561425876941951840900845386400842854653039281907354672535209158068484628660664955762404529586231254403126157517999934864149041134816663705616866222752239329160771034092240869560527592801846060606617593604982177497596700086399848940343468867998216292259084853002387777136556251761451117817924914309005840160359320507339644672584129903859374868327319193960250381269965016229151793433574336333884097969663901635799047947153897383176941335361967175710490629129822885505538219827487057072654236405002276275399648946149946411494929578307208020427682868618702274793397740868498516750397126619105213734297441385026423950390895877956787270093581419132858943660911727411020959925159117147048193558632247050828404902775359618007565652934293861795068889598923404411940761746642660160309759397052074208127599129217057180714714156718935873764933469760352039265261525524812283010815611672116931166026316463673122582499117988989491475272822021466605570176673538219664290092496856526409426588981155317079457898857096741290485091260647423351517357281497761323749482961372357915525508316468387725428791061853451593017051747147207780934397305486938269485157702808697631669072839887814424864078992359093188752205576067135895644890992020603222026574455826019871874709795251870564629947059495598331379675733417987774897404732456582906090757810376211421987051270250191705370003434008871482268601360843488495961016727316974508213984233713101367352588885777637407799458162155654149627267918767281910426761161886460797302769802923447336283341954936864982588859206665397881438280342599409511801990449789402631485109856020960901615450274240772959789235901076898887869379931092423766223796242568327422258900242094134926444796147571648944213395007421625484530052355920714201820363487410422712315368553406487516318944313727791071611082039290496795227625547145699912357518084172909735748948942108983017674989681171360910840831082303482644217720651246430954184264742642926256187272627952923454741315555136265510833229237923029817082495900878457427165767365705516467443850169625499894597804658073605791495540652465153692504265060324764925730860192715528113855964060584742733995006524413730894152883953133614208283605507257054949742555470460535197731090714789969036415560280375865383028558169173182876746117767424851888663661487435859414520767479048905671720565722046468319339840737024676831448267083144402232947418959880187928747538399036414627231727879341071256686228460599034832019202934327547662365271051144626076176331842126663453398258685201310066642458395460528448634179979971090955859185590832570921413545166048536392445000638355956670191649252367017435533339259519414187230824443182464610815453472748830851952747415127469981069372883458203744681652320766538007210756140578232488425305147637386149152977810455756369085857294671113909008508347601352795909740655104766318976209951028032067869689056460709004639211105860460138550981368163610841348085121722622825740293700464645054624251922233784391682963648058190688482763384976629561835537763191816185068518755782961420586465163898850747455712619463191934816052468214487204501759523877558266848425131116181734555773317977099430278869829011685865496211570353763375685486471828143875886556995892921400425131508481452044814985902075167304491890599203935148508137322128550433721428984316658094231023643470058562764678478079135393016115943608990465334977608035399816590054056269838826462996158835756780306210796699674751364679570244534813915011097991930887939116012212985768268819974800164110355141407448777182555922331182980902497340844675153895117882961272130686170094891008250149279173784615811881433823728692296505353935014597790188301120880484204075293648531411877264358990557429467365659493969642285194135856540966965791424057701962362910538773998468235975342813812846346413719157530420398578592228811452381143730608639433782734602037427574546764810614271013791560549134787949970932224733034584992076474280696964843874618599325378263908142482607946253863790740395657779164800219913367915349133510019172486786794150841925814683135308462046639166184126067757127861516500692024549895961562630175472961950094412989422081271431154212117399928259678151435318338779196512809688549810587125315221023202994557634135776581442258447337852607127887797331285032822837750329347242509589037534107326846304752094445035746086213192452571992618554700973049038970614548578793713664657999795832515900834559309754724224812132093524080356512294654383184772133527730886386472078883511090113988837534757239287143114983488873681795800615526400835879865223265613692728329764038671160154329683400205479459044406213432328299303068361502261573511132522799482591456653169179004966744573130442808806029107453199324048803373564080682900154948496237491976821773273047971580554012535889760583778070692976918093931925927786149016747945060290755251577466259614855748069336570265478027260863080131317779174021047206939226884876822547999215479290881284236194384601824478033697514174856881532204784187567370884549518467660222689014657924796535213810754369945653378062877068498932767729015418738688833832397559959487205664266077293915378861835306338814246446039331382841640451535369341531632077163003469113104263542211496845875454859087686587988158744953905807810752282111056818500109392046975557403112739227135635159189996211835639391998579840240367841853272771930605041787387707308235600072582521515385800928917350653271300967532690176228692532706133073279856229564776047065217739386174885253522534505225349538658949932995118147743424749349290453161279744916415570129213680952722824196092876519688694823668472836527428300744276068726920524065681959780712594960605659646295385947733170808678083834330980620754139040005310884634489804377641016165455384550446220110669024256141385092223823295887862931349856508787738298190685772869203137617248356765330038506825432227410437450894253932278881374518183165822346696581014013055745371388950131028535265945725946132264136985473841803642051911113624208440061535761468052879301821004195434721524552378061589164384867020155196438066175516801571280863651882814735039140887339323535421489152393811995566453456758979347855519518518201769190236075856380216854650104260464597588780846087481076871168459166648907357488403146716212387725996133132795880538813139750959389179668911852392764451921803586838903336044304542207541333892175268448146551049099472149076317711792089018772455713562718724581961881276436628462332760357097179355860896785787525539113961064096197290790102308611701077769087415478046646861159980973613549212134662952156893304151237372383217102921418625928856569221118628998186653287734960539666142187255473070658806953774479579057453714537237646324078917464582626286463721759911941563626184189896794174635431612412283398178344573167881008299666071663343168438371708156213859441558337335996534785777210952202351073988285880773459482735642203094277216236199859962698724958374091732361690904349070008284018849053124445307666356011559071277428020793002701787454096380753062336938337835267299550492537089813915247107000183689889960523368354543642016936829779617492336846381159603156070915824702627280060021473967814447269601884556640980583331252696167715709230041269630155646165570275087510329900015242761825117732201167415770023211762760457089791433917231651063031133770017850414240449412141911356125790302895121194751732262976564483058671160969610073353009037375570745693345655905261615969515447649442726739075175046300027210890318934810597189545905573621530235626777934190180196363805262399680192524423631426580091612893533043650118684976732840518915637110906222057079307482339575360839494903903447316188174552651447631169822771104354494637669901264126872415827658297837796682070609017842186327567757556482809367421182745153647383306250931259733177633226636655174136529225367049141453269916096033871333437443300584640717687188095628228619959504108322026198719872039924606241779842036557906151003658498001240675465783443162482239569568766953330684995711288571660383842052884528681110819105563837067951115778404278433613235747912537509444390252949440020943878823292984801568105440568957777968096796495874880724613233504414339870165596149617465894917677806314028945535942715491508272304548004196633451248751627747458879196860445901950598805092355991734481467547213788144804050818521171821166233749883949912326751264190589548927108086751799555131215437252823504782668123026618292722523584596501737766570625546649952880978187529060257199310907943553211459391264314713877314512367820670340870068609231566994256308398926867318179663307131266608088644477852797459491652944403762156266868532932547829290645722350408816746179677550540382695653351411419350038066622659731175180544162106255334701634194157432688710725619122523706070768314481476422138217433905076960451197747680024476842792238185830303826546039753576667733030219098369568167862500472697896537298164679212607316099925512910914814052784077160661976245742891953235562692979889672593162213028190438803446133441529786418061603708901870874178512893819157525682369191063114546462102107210031992347907197798378166170865454649960837654151917908336930197188254592369264323197917693954603547685294397972923549739553645735296383578865734316768766339387341349858499341052845002816989964932521100708580039855041705975192593799592391546896073140520667880581362736727011892164207061666266347222276964058276840932531648075834233599845059952566636124073203196378379177066262470063495640103709341533937785058461943491300487482445995526247645726302633077960379158597732776485248805110260122067883090605768841108479286952622401835358745242792584744617028540631204861548757990056945366054932575695120297179727161308156444988172112012058643920777817473566654679390910831321209871456383837678878053580506460343185733794230150757498531863944803121274704948167352620852504908213564704759840053674365542327425246982087262970502056890429487897965265017455123534217256500311850199270524949729224724181433098594537648243783544006370351816874281006803100019844255400923719961246271563584909161074032242860407757379231383052828256101353746186508658676745069052003133407327869076285703343760823091801436539996021839753433130689404110904035896269548657526113450251554287975175551177856568784708674126369542996201352498067497929915257305543553614556999542668452854673972957672567210743985869523366622005724609494598643637229589981116297891637329255628504392500662216438549800813236857721700282883825318193837547474729116183765029712145132142956184996260881642848823156353127591157811995033637817652711599570229025329637346963455463666337277570416262794479320015490253071495661582453181557922411284037967500797909573725072438089140351279322662636201662240191334111265188643098787953225174906846262587793909159058001522034741735309006709517171626083134980826110638412731688858380227496021185579008603243291191770736469823807070644880148085119911470399441299314397169790236539404543117507057842395635031017120445790515324761921677902947421559983997680176645083101367286113891618598458258841737233338559976755907007249963545942186004266814943804097780049612983987789522596786499561931359858001106709095118205644123429359227632761872667500683322120573806753421739820986692909804349699694896889802768035335091421929594991827612978542184592287215820234536383809577263655272314903657604576456200576139590853974764760423067743023830503736183350612908214705718350053243541355286668031193324962087749726644298473630006974685323184742405400542383084584056916606899344156318491896789578452671556335760555661832994831537196051462945971969089322567458689679304659884492557119114697422442514826663365821087373288619443007986449592971977879817154764045360976356368327425149157740306958304924074738183281519293602374174356942810290317216010263069365659590043268957758556817557449963313253308966914637080127319156502068665634582734211042368725499721472801869873749233852460405690846558252963955448630394177704427820727606215337477642004685571034235672318514435334053541978508126387852110873961925947985279836812782615074758050385772098726369563091614834930805616817637607914359636550092754888030506366986144680761898662306072751712014724488297838588537747213655136954267020186598916720559581059337497746464876950323686946879937812201661731516158547147733980646249041632910348991424349146590958457294655052070623506523279606982341768583346513233789349911971162502502378520829948141294716950805920433324890485465852191711970795477521044877677613321358724902775098405485882838447102637372076927381509008114913790469659550717471708751338801404236730454066545887181653520971648064534883736207480342396658747688883910282920578457170393560826328973793887866046314525889097615126045711341854418482345837650797347906588879939758665552045413517676282708498732902023682974235358106946190778019957400049711367886175632489589364493415704775104017576506735718797765730478571361271848165812228741069166699676551199037620859205137816392826746800545211907405584550259617457074769056137019538680930096687669939934751120858506408183728859463818199471026564453437403045423859014592417658754600835127008006644242980707856951059619264287011720680930401307175030790647389762812334039991229687797825290531751784921518978400253473938752268779658311609313609981586793845165571525956001295061898560787808526994551445510481440375559028226719543521664633272048536690824074495742191474163925623279654189331370274485282852883278874656442102382265511250910622141079972383384011839168841851513675751482272324901688527502864281564125812988342230296753420961812738732872096662054920878275146019850060575645453245448636091419241007382953522146781238196558837490595483159942682040320758266647861237732168652384853601967759767877323848450836845121950510923396722169428884557945067203627669423616570152481929773485134705326146657734429169491311252787021935266001555684236017363237644336805675421022491058126176241901072623060751464716215309273821492634352421316404492495764181435883742529561403838993035036453661298503649174868810536090517642690792419663268707556014327324578154143211975965131331792615677100360934462115926726292206935201663993749216068613488920133164563069644803937624360280861147560725897828248496176970345559886498738458058904019007232178890903089373014363220823310733647870938264287044173360644844386678248712070088775218268454605991116680097093778832968467273912700422822558552160962841365750384070333646740873020511926660155367442891528070897352495295083307872169272108385669171345720572777930840288884827588756243443541695882913250221742972941074664957178305105616770078941364267674537307858055166311072882036212253106896843029960755906892245007072260649066348464938654973302333784203645508194374562952881163450019962333461098934560379460396533239862233550016703323871986423738762925332134938124028880349580419047654481254812256135481734967796428107876947172305939378147447867977435796158158837147097448452529379711670264961732991514958376676992915431513106644090511604691255027111272407656501567954610131057790117374688974100440680950888989656050970063816278913902792453485272019226777113468531169638126239920476732187928874164415504904486953637476094060926091021740545486545140437612274143126187558373171349644639947441971022944941070485126334245448984862783016887009828558396904240146463415315080712478917566654274297627236612996831743000861405441995894065866406777470398593350598035423455829957542162370789840487055727811404540415482800745378249098018906967325538995340587488347702722339135306161310733606252859304266279742672683669030225417987962424910145828666831552369169253691850564226086720811887185288229309575054362387305277585667063052580754804328314583496549268650775954243057504612087727579229117362838817871210533814834850015905169280034613851625273168272664818472688319385657067959000194182784253350524184026839638610665343386088723536498691966051520637819754499581369838641235229376321886333071336468488168223432141716827842184701465395650430119581117296245018712875435164282483902100237033359306883313169599862590271201494584624115998843330938331291766871470437668608135991233445085652766322683746781206777926538678088035954543588163403801829734497278544222668199991090851954100931672939769033645818072016076863672430172100654818664011749406675332038728400728222299639238087783570088322496439926670663698492539106521750746339186839108906679053373850968290641374967127153584184861029337316454026243091847276926998423813486018036505848418876441610206378855136122899765436690085132017864035172656104915476954202759173332878433394655163290180111768612481659874429738816831106874853566390779702306564686759508908331261867482434286936372994927265851857420301900916804578329667945713264661376152410688209317769433790610578281666009702856312061390077636921992556516108688816739248647333606645544560263512555931086479292062109536680481390669576143163513780089759978043629656535397466645408037580479873533590328613651168801734040986286126791291312182437801466382657192764247161668128044932769895752506677229301631134262699718683980122657990565122450606623382172722628569547539555301444275579151013257117036827133680803655498762038988159215578083322466148894942059637709748553353011620872107855692371084111214990817323051415022965123569898918815644167749075135587854860916095035162180832269930669583247125672732859884661524207064460964421109453098668790106079066526165028067308123866952331613620922898361229103784803775268618468704858200886281663437988357363077553262519378444842896300347017309027754267159067527052259898768295594485787426995305555825313930891503045851335922775508892240934184425871938561493610973162503881371314299581433881766915539206763315119988620773121735751112575887475022713076835372342640014375706081924566068830541392420604308498324294582658312523328787573428427304880234906742466559774826636585203407148257862607784519883017770474959328363985216273648698796690414429044799283314997840284121301592335549792530521555428136794164380839636616928868960922788712273535929144961313643448939204996738763224574305909926494014368650095523348684287928908199711210495005924341534421592564288681401206352716571524540985967262422825314190005765745488906767043915684291200500907248677605211305156159417473836083379601328322128712950257340432462774969841183320237011800605399072375737175092439885206705397335022206961860810741895351282391683420914007102091831409806686920386010582386546304164723881805749627669531393899273873059581614520660104210545755959802319932466708647806902047174485879234395717914971168184695777921291196546292038886928262473847575401601557305318420053542822728944057269549651157543534534362652325480792859433090886453620465133933718015497243539103713560263352401540516231780156097586515087189656118919818790366123009676400947052331556684107658570905554975009689413594042620563237698013332362440239705956726195150621600778728182804315412527723698996936691734793519424840814335590906262262765574179836884198628248137751451312671212689323342494690315324414172045617081273301628281862381473035265402194196068986323029718078790294893048713809856346340237893364088453206152322494570676732197868868218037427848418339056075035753982627000627421136541426001565115434331042277530820228341993729542529953460969367737621721413389785891045169997430800366505183074511654037933230677987920478945929136289368701608166476100616066311124307710628356355548234237526895961900086817361605752549383677544409190492170047783886711533787816942695503000105687951237096706671725587919080783537446165502205122069095701256489286998877391058508851123384928913930990458977472932523792852186227279389341440045176258029087966386828403243450333307596219805828715204617314984175163827114129019255667510769987989994770509521561936101676509452817582260118141006475963717592299666572622837235208762179145084188580579743212689211359133530855837907815791260363676010212086643187983719782412075777375685818178315754493937929039236597369336263089789595222788985523153979379185155212210037743341760347819317909056367082460899942133806631303533753078699016564405226143805018273768569780283147198614867537275622825938406311650598403402043321572413864023021931270709909444027576197602843064072015152037967797005307588917989648003074418027803834611427961910727965835462727025861169825763172460823340350455960542696081987115135443568611223109160057560139152079172982057460809227400605141278033816625114853904627555365645129416763267218284897454741177089477852617809549706944547458761808680864697263665231548403153917033011470027038747232145597639257665064012701380701510974411654188019121156126101164938917613563823622680280918758497391051837904815210087291508477068544329263534228199147161208605128915470732718119480315516683350105073622350990666937093311519253903782556514408528240769980620812954652910262191399231195243828410232404121120363980638679251760410174276644965119594128533341809818863304244297677412491183654220799339637842888335616226975311491333937647558152325484788289544573195511896162847437893699866503394915026431382026761578159703674365504217632051963241440111689036688333051992945585400583804497743199687745799777765950774362717430120232230364292613532418110830032855883688923934133142014640524064319241772939535898848514860678186835022817668121732565604031129146302886727806366149916017299144135410339963526778143192710464656810790181181901116268071552806267719674428144251379825717506415216691638081510525252025183241943967040359862940673982868346903822344391198180837823095641281336368270956638758912253486978152454845020697087206879422093077041675943398617924397913286021829179676850769997183966500981357731754970329137981473859019186767291494288541311954375019612211973825886685877118675767892736214294679723775905194496886051435865076667416265911618106160474222858777063666595643930835509069631832906302556769483793811800269297313180235950177925561265091821199317588409468655145871051257903787438181937397233737989903059650578120831649272158633880746950849776471478478991650240985353710821536080582912154238105795753098536214301375109157565593025210976008739104846592605698024541400025903839919523050090320576367566605497438296475823460315188710175327275643070623324363667943400264300867736154951786380413227693410179008439583374280752832348100432501993505276495230378027248172954709776821114467139379486474084241365923106582642757389101621101813380016367257140461667036918329318000294229664006433356604912026310010094980804379733033141859204298025880352708993954542122743616144899129327772778182890405504212315088382521478040677050720436267318939717012090208873053965131940635837007935004369074617950477614388884564650683188673696794270193483070270083299673171432103116718603680302375934374138480133121616975657204355468972405704254297689671738429561889880561770333656288728102268641236906768905217216938479038396824173347473801129617965949125570915780695534762677968709583687385639700977572505231954312696818040792195415328140102939982857374733893987574001610498696344098982336339405566424278109069967535257011887100983899174475236770432390380955036938001886914803804290517496220833612236964846840233242960172076309521817241529501323422855038940227267167403758235860533137239550353835904761040441595097887201139011432662144704791099843561574365244426670149048331025727316018193012851831254782975934240608089247280163372828168083848845925682422365843514865480433766744122558750294386629707609361739902433898568207286624760471769507043324102114719368445048817836750179486154583153405165207297369210923140427608075932060761570876507150916539017077155077261400533591377628881795019030384098178815354383916265298108653670765144035050608752724749883080986911787554079348672645180217923137426384328507910321860148627507352549431516893741273907528101754504985739119265943028649390020046324282399627327243261912616115036934360776564458501806993130055096949749949300536507373367154341989393355796321042105184460483824628464308209970537385840157589975840322778596570726631744871718537661490897344214801954557807056499156605587437850034612844408052429045091820149100410440715224720794177099485311078723836323035221694040075710876658771055405337132569658561424252522796994706508873108358334507736052789411433922230590757053515905241207431640426133110570348922113763965467020419542150166951170116197432476889998412895214274103991270822289334381041740918080096576540100575825059337432852600973100122049414854331476635271908685886727047723040647392392052150510597224244898575308082794530332357938573172209442646638222176380547752514704626098997956875212056717791823868391599468027869702805350172821763208930798320564398558234152057790586336037820706356867537821151276455517086820791411124490350330339908657757119801230575170525446365594245061695612119033703332813640476328197609157610883452029395950892776105917833660368154459622029990290658259143506376813259078828072556864994110234066697481672401646726660211374882133191991981637319347372164189681663570602419399586369631662325342166587891643962065943306278065580424438227448476261070694494264547942158970720279168714596863695790842644635609427676326762346352307955166657457785614349880179364312316597484389221393737960616624302172830902165254064837162123488232932223084603114487982087068218489621605602112708204226450874199078529285992478305975692077071711722206842228850927521401763437129475261430467857781126636818269819401373239494974538291047778575716764534770198096623058177987263995309585396284597888215997408160819506182658099612394075631044055848743156985637807124650289164994226817566158349900084813927561266186654800712421398325271379631714365729412934277567985963212634778696147048208869964584194192750641528976619146218435955404186999786139790345956666067401759755263405230451680638762479538871257580569253027649874278795460167380767364958219670322966350777119415662431172315701634174223412904871182819456409515994867634430416854886880161622650916246553568759968812836922961589585959283274779883306604685622429414524862335822063614841414805891416149474461113798433516408066160360268954939407070076339408072822628844286381900798755258271475388185579222333592728814321658593189702546279065052952916744447668217050672995779028504408375277530381114958804478890914547753099104654420213021975687664092813175140594569014128382854744179023552056090508268247731937816924686111048250660430887102796761011155277091538998540441198106931762859233195453334168367245616244182612284745896897088026460358820868619264221284084770186182109654780762124242188092839250089820198659673789264622292349627512749969756282272314424101552374505896565025882408718254343343406169259777684865914276585239946744768732284744062779186365152419493765768089431251961945437232556434564577163853436672519165642692929398588270106279235903977956317688505243426826788937670220812161227292922068424576490713343132890922283310104726278077724230894601841804008255006998153101551126917644503156217640238676644055979023554858095415988292217420691918967165119223783541638653372973259689635036293490520925472548467488576976770556885745270552506629931819532836959158991158227291343050355967420311531151425974282679987890847414859077238838292389187520694419954727913309073340604085379338672675513277043803793051650936874863137340331846178528449616750747285212345493685200190264797443366221092561037668618235557283300511355133656230727749947784073709003685834385374298749326643038489065923923930425356616225050849622335914337728499258778320935602837975987318333714759435404922294613619145076340746046213793660378857707143973615399026335673649759764899256921397116825831953910869937347786225468577979582124769559462346035137465865344406362254756516340509353456077727967238630616025513091361788202164709584291053943096401236056802741759914596436796005688384836903383274482668663136125066038658693970652604530560222526202669565084342047985557609532990072682132197146463452963921784461106432869516399231859149079522927061849869686461247550829062698643793323407698585358105186337534741686389674907892603682418976726549774520234543008172327034345408502025700970861696520059733085966442360691363442837070644649116669578428064717323383910997231093594574185860836174902859762597946867535102600605456005394355716237589391429553764414055678948319772803108555604128296953842164177681326598266032129211820710490894671630092634261933838010348921782357120221913433937399272730171295451824949923477223964121811945229685016127598404572780868631957997592219779719688430663409901410977397957892121667466507313239673155356740688169295729035131045991944186701414545887926762761703157220287246685608027652507100412606046273395891860695486746343121520399390998211013669761940952865348850508614686482308249998080608951878415408588897729296424000161639013699576353436724341588009710074875196524965132497755560287743724678094622906857529394358731402078854657468797872729367394237601912697871342993049479415051138509383361845704835650608018532696675691414969112114587941921707781995801672561918579724122330548742216802830233454559093930646960336302770436148991648616319227120119500750793306244338058055045642918315974690865289072611592847687222741032796231247010913106243900807621553435214241697125541070584553259120941633838127488012308017292518044561093966969599041036356247353349435380515361664695965503467179023659988687787261771817791467659650757879856250540370259765004655896637321639576419140045161793049849642554976326778363587752564636951455245368441905252841334229033417211644248224148720761699548967992491437273240533019130699016699175001789781644401223027123688279164024147508178176228363251349186763156498765218982051475751171767335732937650478728358541438216661185120364660421894729516776921797400758632162337427090835704951866988735073720918642915193161329920516396128889117047882967510776850976530416217768796473808608140949860528469143336559957489035470046734770402444832898266497799060150692250599446156250554247391944788380629538435935894695680770057082814830577067234058484747978913453758608010867541382962689518147977974437167447927993607432566359306255099722002171234594923594787072140163979549527766500084655380163249584852933829303966124136951866749036963470565244909945156844768614535531164310255304510946629776106018752446161272279585775336826003982108108341443333172292710279650907756226758639080846637371244759334007661586933586480121776906947138534959280701244065982407208060145991665195375965888807725789348568853528335519363118121984096075983863501912405825195235606392190406386287799085676370418265762205781665684060967171789339763551936826548914997268918130712318697746968278604220785633041386484079931753110173011802970564412895438126471124207093636700308190452182132169189262440268942314594901147125139725463035410807726754065833077444980148534341918248129154696285210493837375062350005812013212694702395145516921132161422481873727919447266541268163282292882577261915385140614635914825072240946570764693810874856371041842379326124868719890885857106293196568189007171713518630626056061920783803259974428945937502220796574813139521247687526805167385469365347001755767482607353228091515099238600425790976715908104371988498026421892830993316883891790302038552092956628752311809843531668907072862684453778582593818702224419164062442793431230071144699985216561311119219379830769894682143197433850039333951151123720145638220691805905593860386846606334837762898032002701875788943991347652084105071821845675951052529812603589405132059583086082081039580873873358431858856354403237282410166402481730814441488264732950006280046098199760798791951117043143276817686473648013485670869111241193069818514762861735194752915942362482985459044670605199083444431429829322214498781109997812385640550085776078620436554206742773143521274326952243192139237327062769429128627250398642169763671681391986180519935848417181589893612496782659373758900783869747463348425556943021908911935396589637050056927628776714810360423914365268870873948146110125920498580316995215655761568624556775472952745915985849342838202929302664692563307152912358473509525192188343282545411099928595973460336600434574615644607457827148385809663372828770401177993962107836288658946865927275284210129272325010896616513641204596149365902941360321784911914978574059179460125780207544322652679655401180401721271284071442861255634162962773692133196741555484349991072557350806399789554562916655598879688580146274991759613419304980669042606184780562928109319083478777087110030335755073836304421608537869927652708538984186727404150857939782204531598635123599582918109745002498403316425629188011861529743045340508905270144689121599125016706036439592566836629643254435900250631793714562431248077491113641290076601201845507614233644652339457307216923014597901174782505592901057055657191063057902128254855692772740541362233343894204983260149468253523381390348269916759375309898976686037749989375674331150382269139980089911426894078945998653702941792343361977157358047932865833401933612814824375556589241794838836945713530655598417286012449219914780308778512014589217071627034261815382980224464819819861321817372498395794702037870318055261953282886362390747271486083970197306847712123238988493061304849572726262917196937315787697996104801606345682915300949651580020837447023388706323640598217696267987968213720472134068994397979808852325443642081788200240997629463192478489727061223481671661913706310819083739108869128330295789263445597954712099917140991831192611463508787531077783754404807473062564221771131397250049975220425695800668322192165406053589401259550733243772200563426560088700982084605301224853599504289143175277364488786778778800037009835752955919154314047760271568847038417763945247146894984300280667516970293542899483638570778763261034128966078282245105773700294495999389758301305639348161857532850458875015506796243045018310247975925229325099439764879104644850459904419268750569621656110956537890613136486898298211973289085659599611269436194479174273211528580062443449762554280997216696544469305528904958546718141347273513662815447315272514004580044017833528114896422243729323264626381559007190129091466631790515460790433776403970766412724279494303911356599598099398753204530153606647073373019987663248401563461737349202423153633003656616922860012343407988709477540630357029349705891746262867251386919797581394503654965240258604527109691282997414660715585701153572300313439483519958345815521985325652930909442892869475967348870331775866986822377423817821013948809492258351692488459508591229068468256734795346525709567409834829286201840211442956853262163145066871163544157157055721468446466161937016617920638965796450841180301292326824597476507661634750544078567530656595236874369250979831659131373274558115435492077518094132146917011535252482299588186356197913070333843076270014739125631995341808519971086571729190692438253975591151301129575850195554110266948318766326554205825631167821393452116134933772823164375426568188067844617520460731306217562520165564990634583153343973072924633742102228145860862017194911968318703614909017860583849187339299892088719960646121055636971170141326360298419144056161362081289160210727271531784866083457517881122322320204701425628095346965799214257379104810992716020723447230343463722318845179707819183781761722629482626800327728065858955948109681679814899237396482892790839432341210971290527069464625686975752806286101535416275446727940915036949610650271419591744071377787495376440187839050765779210448665938967854405326252599708666194623904710580531853544216949751790860281600210651200552283826129340766243908862516523095858727368311753263116878466953233925671292867265023478557677246900132335393539009050053688211806314398875780293678172486182173035196014218767993982032043186262818463922233184326907067492106494340448992974652381245258333661765940743306551025386726834858160447801754705341059465988806564358853128543163701189670483824552450849829736264057801052593113728902025056866749665470039967308428413067635402273664775945113058440443342763097629125844902178994446645040113660940409712265116072861806596476133637336178497677379979394088322677255845910437068511031778045868148489441734002749453324055924087486403761999015784111854637474577521223271648997796697502537704188797030787697078863583772726751426008566502554329198469070747643351832242677986786171704017281452755372308640548385856233101191584328349891887126571649405806747391729463442538046217715269445658811788839438510284062484418470175113142077132043339969706166175972867411100514288841965340354089048031128847414327843212738367123669974989222495909324307559089846713740689628700293463536151932626597395350471903210264258074083082871618975381095874494725332339373724276240119385920373399404550802274531250551202145540525503163502354771694591307263499210466673623423215188244579542512231640927200105316339091684697869791047329567059292592177313398081164252074485552771498470094262364394624395888092934949545403347294276198227156771472543742083394713261904256944734982694565284112194098025335985399218336172055788666697478028530482121009055508634076567073309346466813338012310355993295447336973801507931807654296175066442346016839288241626155900606408993774713388148820234342050026824842408943745088740320011785662010141608720064128035757292971213793190385079306473679279401348312475936909016461225561307541288801057588909411913528035848311796909390304760244098280753063780446334563706478790605003306874921079031235335057040722844014560980758382944116656547453861281900279093234424269927947214186593523032988953533224487676351072228478904120518152276877603861336139080678476798987361405138232549011657048213695215227607122761919387662436455642203650871349209244140590056990922756698810651102594128227290019530454740709810955104851207323611797101906011582791003818154079649442448752650746758975158930558857680003483588867293271114793635359030467868461614000762851349210961791689461794379378900035015010352061932580378093608558886730788021676045722005960767086109899294573821203658075019420763024453251014012625998848885834679928484232808886671961311948680222733195758030822227529250656803090507250619957903062502396750510688961592226396660830276385681341380329872431985293900817114321262945799625079777976458704170587402347225012146947696583714336042114877213086292799788454014177260217356974237973766888797131940612271245988255722442977779168912693743263380061597165031711977495795695810186363608116345906005718362353694501738826508842163567584977673316502647676363028837702264996549291155657328836789465979500356331845077387604568551112589319018616240331756231467803024532275919048810084424396044953231866925961569042154434938252773427937462709329320123311562239888443324861087461762624978151486638197722122844234463148909377864024073365545017031187748739454586992363468416519545764633076333327545140026788961176550434776619702793221374280601123965771997698498597696031022294543942911769502090340946097122953326315099551863748792144744378447079703303914387235226348263435596367754346700141009889374710856588187353150751261898016423919661344123316735498294165085854175691013104163158597471096762077872045156233217227066477860254889799479432372577628480171082243911047586513878073469425924722268025015738051615223772323446461466184095107376282279355503473576116260460678050595185414234084096043838740499749208034366762967298722509875924265784789704338350303374779045901145534534434527194341130564735508724454081945895107048294931524031833184174059684181800663153650563086659059385800832883739628986060775651100110638592407030347676542546052020967790241135387839293097875620178606444193326261489692908050946835603518920666991770724892240251080065536400205053901028898139089716545980127948903694606939864818141783313889019341304546998637322312767148595441531966471448459872540478038867317815052578174932064997380273055688440153674364100055375653186256190548813550534965833369463790690768635501709140020009523900198669543488801278107359618005117176042034741012077784907954106044750466956132373521314711041958502315655225016958371923295328726378700163620781429969631779565696149124964132615004504585540818314753128811994507998558347655933311024187220959643822933128458022364507186610397348293609089747624129494567251794382117475485111953680387702410297549934801133633704834657453624780806294441058600706192142605549459807331830159646144036711653576700629193225503125266714543972005817600802276775495026461446104708175735721059796887674141842547339955106004530824485382599549959419065594358431907892883862733650286665929924186932733511562634274374654787163722286457363248963977180734388395926411085943952013445071864162990201317663574164967897917829306769063520382475801089556084959580140292654027118479172002041822862823461116803978569822647476253863979847886396567270831717106050320830051034883124878774601049473991149527460341902460174200870473972609540920446210631261420999729928250631651869180967300529130715540942608077708680675685545267095488473461912394225992091919594948543613140153941607550343444062602564986914587996429498416384301818363292979889809834469610513874799890534261374061069534696590298000684975186332492420364224586730703320097489978726474684814178379390742494012402195586813548179060265955571114792041674548151456434660060051532170830829609821884111336559220759859801836912327187116981472324557539301693420938728189381913822477754944627655222536661575290589808072650779767560811603079632338045022044509696499507075745699603347814397332473117449556652901671338134365832917713322006932150595288071131059717220931509957700092214385843017171223228567724064043323432374434491097106107567355034608521844178700467957696054971183578698698192180477617337655072813648296869280258360142009760005042137109237027878266849247002388207585026883950970650263342197450794089494213315572760508900991720303527540992607258515655460284852196961160527659109603126481502695085555355262668813342461397135910833684183615859642353621271274767059432477833935196666467642606856727306577785812757180318347679419439450244595635058605568264641939789921098324239979242211913576818909905330906937080123327265402370920879837341471521221113474247035413761905920442007293685544070648326642862016600784609632082446623316236447122311880170202434507354079206097866411445837807283995510797269199248114844098849314497906878960867457112580643504767898171925259478153434469521357518545527795744267317123075609977439716463800514871594515541600025627400659133744141310827457697042027131512744945553235518917027980792069638893342715266210852045925930752776279187587714129728353047935178950214986488616163903038032023244357313175226048058201000632395548879013248393195793973368503558443984672945875234035287200547462716102980577826678669742021271481402984856647921456138534256882918299792586116353966743736965454063051965489704559662511788137182332764515892883422987116272815166345626525361097322364623621263264351559509493566854945432433655968838109456870951230858839901900368975126562604378626563212247016589718979228342444871258483028769651645601938928990007680171291919557406061549456591773665659200248546876945686935260133738704034788793931307354989359056990964158900928322903982623401832486393265986386327964913491411289102882136604509261895812606442670200803600205244634737940633646925849386324938825563995401999462398905434946053536933629456329891983531802408383816059677007212514753749416991639072472984575054950424401865082023103399280490183158519689480523878597396410075185066636852899296189452799158509980302336548884927051564419299896667599414541030415007438806056534781873967919674796921363774088809306657547148354604917316412651117054787298327176091370176233935534850052243502401414685807713447229752912968041640095965185298448775777759814858925039457836999267571691301179030733899217300140402483382334961312347801254360669220224127996096914294715497974714085592422059697089679152383330846427234948183833899870130730692596768856272247040353062622086530618627458853332613563288480390703060580344699150593202199305901075955247772027489108977753753687354980152683505943326770187531850172902138074816939084835394398669138885064870775389432679986895542776048481299585109774169671531003483456161845469174594038290846193304587666094863133818014717710306561658655584521210210815787679533557419891609075673125597885206842416210337606491508423298311779873081591195171971315941933202407247362751748418061956393846679616791023318399549614074570889968649223883071508848529091724593309616169864389936423524910303847837410338351396919722322936142811564986226952225218120988202013380120042595432365058418666162368327265246083530609030818898811986176975386401636573981321544337727942207634859922023441734404029925632713629259524920968537696927111231611575246208245620784617800062116841552108921630228041379186212382815683257888713471522364124042830384699267604570222181796684538947693648023097832843736683499778047100246990032417593692700711153488751676011988489393336778316087519266494947382125856689251800316501356419997014444703978560891860193508566327702750015531663448369877522782338885607644467529118784820572229755789998147735471314253843152199566188615477434135919130307844357048347294500338896373944301265971269587728664216986163459912520614187103200594099069576545794885572239990769166947256405482711081539478465101054390582443205880960689772607818373566145376467398490195897574659988235451323430328738649861636811486332906932922081889920404056216852305586162372475567251197391722342447435282820106186228420402441440476236669195124150482364700162864146086944655404143018599426495780737070053317388541962663761084586896434693423194318042288850769463478845828484832542813914924259393762470122370657814355907553776600244942514637202907527830681871240960818475834143112231725717118922877426356144909245675882238016721905852397790073385319846021191351953239320239588479094658427973169643206245308315372841200772842349013116214589318064149576383511387421146559122303491824709897287878117996819534295383866247143491060808548893116457948821196852924646018514171493960157218125640553583246515403424570289772050358024658576989518774316863720976711874743997222466441999053097151778310135466948625987578397597435909385830120272140267306433201559081755325823553448864038271496715877766300573244577142609516089794706967593517309043728740933413531996947626212994630116582987934563824465994530657840071944169438555115088502389280252859436289376171338699407578610611360086612268127525237574219716137839791999169251168050632663038683594842893015549873409345331370300441559293900641332223236132560281813727726215072898283953984330851959870862833469258996148715351033374796592234056966753070476075425608404910496131619669092381431939445150126186471187199480913471644654166652353327756223097240669236605945741062389112344837552103992493971092471091245454761237030123728765080819966583622701558948799798247952126253179150265196270460718571396441185714658439294112796436594429449324139999417350705109860985362688671229393016993914539592402271668032081856805331207602084534401993547419360736126024253320836557854236678377635632975107346849268752526949233780533192039859449067944515660215260369814597673114009665868388545289792717991167777826548113614935739690018899406516005974094201110878477479587843163118558570689865109979240685569201355096626215398483591283029803462948300134576918745428767197754821014756860101249824618115163660181570134644323460744791929836754915766684326510764603247122504613280700185479515822456387032298195710321773735027746919337537609211847014101267879729590272808854275343438522679936350397525002346065798353019253892507438834737529278390362850964938787763309422499042981095595073940860529578084569689703757404535053862906419422510733749894303338503093181021857128273903479413541003505235544058897973305856940217906549416803904448182190164940618982956678349140013052283976441223812427449216235323061714545457646112189966652836196074552587379024066578434830643691910172923088187492768427716950502384361230611825361429720645876589377058513967070724648348569750218531700827223926081764707386430358731991971943636057272514464482020508562209170610683387193351505104872574966004495554263253746261181539826020194316774401102202301912614514954218441798271342030120679183259365922778889188390220839364968243282089387927307004810013397664392398783281003302854916602369262650730066596335021159319344079985979936163126052151259580902097533139926208480116060123624700556780086594589794600555996233047352738243231521464759965212826482558099569166029884593158979217805134446491966063945082241842587444952052635442302713589421148213167301995980582220777950465054948752160224745954889682745085203186821044741788233549769216235579392784148176962360674757682979400800366216060582383155966195158168554633726429336793637261465732121454420035465845113639526301939777993578262138671942361696563967941521094668856605369408480123860926834626825083216032196894309364605207381070212833934934365739462240930223642704967661307385353350392179367763859093047853235695044613729203892455229588051186975523672883841245925354724533768246145139403869231111113584316929505587931396622101739046231792164069139439567541115893604891560009149506693904759476094959678577210248071844308531470513856199265303872706092539183745433267869600335112829749263723822761298377754511735909892226855226497181669000732364140200071464837181700362247342798843017665226296664435479626369716046770291267453872490102017492980001960544721805749794714868793820771815152721304300973542244233059436592149327226811248040928800727068076570685382038127311925123749728018859400709151637783398490551177293629778825234483085239543957471586784534580764753945357096505186851978565902574978812686020945406265687049798597510436937221208257728015291548658286733155623571534806715348329034357537168912095456687308276866244163802685699625866648564131793661804491599017053410813133055918560555596784792124707338329536376409891377336134043506954990319111650425107057444475325042120857703394462088245284933565302631590635752328229619415178054609684169724609537206232717017313603947452238196383879508312824330580535537219923918747347978048639612356036039569093565468794406897541811529168539143292766514314032938108225504547206476784796350837054454177844230291239326150215591963780748290718746013651950805550452592295626038423405222065685692367085501907834529801496368750969916661813119568481742874237080802190691719387817792304681702083765490218373960085022811514539050140294191032058192115706292508079933792405200765034788155556834457561548528755212657083509476966265302388776427023111138460577563261556553478022619774947063970677857429102989651425502451975112447484201224246914518423437612955358447282828039557626793593737145692480584847171871666125965902115582034179334560094143826607249407307399330175794983008747080606879229533352463326164114327605002441007693048840800757039114263603475633227113042029082439682617130492137187397754803836512373777009940443415698986139695474399533713408062540372119130987764239067617943822642132189510444769017499796487220992919032927305808010376469629416203523774003403808708964931018147901003670583024264780461964511509011230964971190433242153516853464597585186252684737586321568717740263535757145700300160071319615199567240712911279400850000973468686755549977995776880883509662343400283064947588233381825810309708729409645381566818298119601842487748116824189052735418440378916614506047721176384957418516508663876655671362594904720418192769511764403034795195924547614686698618921492570487518532748022094798405946382466887350827639762101550328489819698083764498332083139963858091526564792436852182401919363601393179553933810138585287640736659732595717995559090883314918357867174417944147475492275277935413747684423372429953391678577922109214154079531664252440490778057359011071633297864464644176689499183900550696046788642112522819473905993474235378125562825431511707977949443732713687089200828260349011241715412128213254342750464599550186014360706310809310546218811880833008857067036127723543022899357718214163243763050129252798877943749056317794314633932705114429923574889276923432864509921559864587639669012287677789990189920480148016372908036286675597012131531134355687845581023700345189177241725798574437583138998099418440782801825547790336200785021561291058371814250619494714392896779421329389886976379301383927499780972478137814174258256073311301769946394798702359331014223017854335875044236823176083078460159638526970782401319314912914926901449580497688994431499301643132044727551695004196900070100494413926191054069005357842827092854369995035596154638725879717416704289556324900460292852590133983600271195770518675167293643397436788656138364607340529388154472146895389241269644627365503969698976978596254870959472675635361192769867961314939440797035228366129153174750414867389085823394117852969571822191145193395745248547839549897507871486682634068598201539436439631580709862790258286711217315900784714589485461842191788112653587258613990261844119871891325099084487769557262081314168307244456996183349585752617966903639870300950274720706126895770486475221082039589607084887234173195586702406819532621648212505412377615457583647133125395623522181749474039416791646309082760357096341758148526082923911718095559445837636348480414000399149504202154860864750256880709710018246719050873731669148364622070301250565106348854001035287041497308173106226159137038001341812505837369722129740461607189493993829399007570411810821477445281478816668474327278256512096957789529212885096116341851585555515741603355506553167546961808570421937491770420165033656540674240896795675201712061410055217114457067219079542144251283936652398979860961000193813643172805161183908706651655688008604487108601851370975440392336014048460303620887062662550504838607052616174594365739830413784043976905913251154059414125773121643202177068900641037665168017915293266753239678848823532263087037457263958255328631530315719108732779723165281971308908393986688371962873647529293879078486073534962473141322645254449845693515274725913453267314957095676949283683650851263303113079259116488382847138435629082036122544901946737771900422783764152540986598543598157472339986557297365497511105904665119602971799912035726317839068366539171383440070885227829150561527911561979578473741796204026610107548535960491618099661109465040819281413567459481483574790203934372642715135536782448117520620497073130944436449959494293502455906768265551708735113149539674201762966256878176055516428529499309216055585077278759060241319048114046705118141414097567483150395398041921445691339522719260444466543065060670420708727275541755999067378904384803039980722503175651116224002521939186337120334563299253166184858789904143525863871511595100965482580401622727346750553290614003313563149301083597841640013847309645145954429525352780190263498293339867609523137045676539916178158887162075229441381464021216364264603931748817637221778909120713486102678356164447591197677611175547454395410010507881404412280965857429696008543304229846480902200341867832209103339976976839623983643663907856303760959773680308459234959602608646196770062032113713515956971217877352626749218722798100211322256334479134511367718687185348764053660685329555795136247752152561720638470176999849606235574730924684456824616598919183255585035658184185426692066956490813536044897489584099855704704623395994375831294398320245052316149421756039992452706128176790384020239247023822438674887943663625014586430662318549443341127346705109288316689657700724541899929455731482349731035719834783599311304373564684820175235421469543194439147795627504531821269718493210369062590131135240232640843087152870884323369491267522995769827459549682283214802717714004686357285365403173988708422481229034577819291590968117967874959025608893245940358067763459361586121406409108053443943788919309005152885963342666773881191006000464724032206726572609454523650473178282725651424018549939562693158092481017744697078555574840332556998285086463936334041978987178547809401850377178485074660426088937434006320161769896981630440399807160336699726371833163294235753313216729169388703309843847643723311937073436941402453404863324136396587034405298339050019423671345674110028067596729764881515081969453649809303139108884670541565694485115352420955960221736894050366485361433554042590599048317508339587408451633493076819542563766961803468286881665754396388564309880060451644758245995192928484510800457264271191985626129063713114711945990181752023631192061589366857206428330022339849559586642774846463103929970728484338777790648140094608864332842500921501128546517604740846079986055456237695564483014733449953484468338928156160663163992438559352604861650899329387984637566034150026086693599266878621557032252998458589538656022138641765300942379238191995073414934825724745885595568590012786443790001814214374039747869096961681240221356885981153788684197888158438474364370246956113087242580564096454379135893443910866236462866772054401683461645270052451013405474387486026839172891911738279295101879978887786744106283036373754757052753349262589947933803908602383378747027222814799541490302838870453660773151571049716948415247774457766564455413439779467905327669102509682249100226591261031886593735913131908725313370523440651134416827701797290723131142192378627045895042280843359586291548925008051290552576732075760951154294859209774756142393067590869328227407482291594022998097947064804793950133335042488761515237324508506174398726751565968503068876156109618855062189843920547640633081651897964670834268327726797709680494259627124470433656047198422716694000685312458682229334731604147299077061610407988652954358730082639258679967940890945158423424672464005237212304877016124523318228709204306539953023945418074536011795959823643353963258745333020553189343120555361245370477660075751019275265587293642855378261451598776760002185385611457389139494474999656425255119528537402569160912524888594776802210238818865058652499015407180968721474750473562415348977300391068648633575768025117941286969507229164434592131865966060439059681324219749754761348281154971233992806165150144716187258898768064331005909021633777278631644310262612933380069319842298198071894592570000953330539834688347937528051160908753027645182699296130633219378336534164382209343366614536282394042324108725905864206018584986619327702271766403965194329965226374010540587625591419217237353415181165880465635426154493804972409199647451504281516907136561860870683845514327398793254851172412829587651033415672723496810853365256851127385746544606725661871623848254681768965281778579709310833850346203739629816548894191002720888005318923481982510942840768143097424772430785545331120746947027558161987470879037700689306051261158639722442447966263333417485569892332471943362011945912512658912581961053857150395142404267014215448235239279857064339186620508864805691280547225482406175558965550717042441910117752018872126820010015038498077259971558844802053163365184425870615926594754347281736916277071961303568132001842962987493032016627715336265981128345904219767252935563256242178023307113744546102889087470676470656175961018911203898205345070135277745391576895339801874342861753359213969409808195103532952968201538053595178417042809008045122168048515195449453743041852779725941428251852012218076483898011562635284471940958952394184486056433518359485525639749178686751713520803744644118382550193351220082063734108103399358527802216772665974769309129815250208414454431123836638665333215793175122520479848496049658817689231739705008678020531626864088716320540205206762473131265080118261555852651616865062310032717040479170405564569321985290948948141908618792892946977424888857758124870968392793840309689568612419546263958353282792965280095526167297579348136374611201912887967000547064615064799565771742771396749055327490356671126892383221006291592297497658855784069242816006595293076096142326245407010760831900880843953976634252951348378040191938679376937218208618091559871803933832540417779897414458907191664696591986329565512416922369747409757526599916812734227941203365975516661943691478616733078460910345841323779948089554807404119157379177668731317759777998828674693387131496311920604209212732983950300312876995637230618933225068550657511565536284986196551059659038133283288775158275492647132039102670161476329653488885683771116418335903253867496866433292736260635590950352364258319738598781985311141091399062219990757125513762844533202493633110749699691581040577600152896107418885955569785069105638139692894186863509553488767439353319057145223934917558193944927340865042210638228389057457366974193799919172056717279212330219899984285453290041764085522902370228737843124084825773645757019251757949394114168763810986851003794572226679247459750380045572978704039511568962047097587614033311780724021459811294604341428042812486226922609018846665482279679987661956805698506088200805170371163270891173065693449891785255390159776774808234004038046900932381742406568643037809618192735543851774652772341514106782416017888079943469780596873487825712523967077993699186191970835730727583093279162707609701483494864928025663675236483231203101796959424348826444084382241986072776056957502602931194980525222125614141656657003982463909485344023527446944867547414371444374215407897313603484614670724438883323454592419346833950566839371708903188489494356690087149311298017472034922467378705334713525606230556669445666375397053047817103808017223367588285689935423090198656286876655199605439750748270193351918671786081790053183601815613142900760709276872529949939196272717813766968147278777472331659085434375536631011606053393064443219031833027132007240544488951039442406693386233153383582926366049587950823199067485311313000999350004212552625513720986984561827892227631707101487056841032444740030236197172360679732318298478410423601614955336844564076920717186721203057422416553047514543334691703102064000991004545950984722033620214457974532125309759075104338387964181643711709377262516143862755639751113133833340324906222563202055874526491956109313880883140913525410410722701529603177398937363601663418166602964080715537283222447442661279505978223260201951218927793293515438827294403949301526561390556486422728257749460460534067581033890934432696637833817827965598495380184581986676951793058945334547530428024267483849782100399148910004653985806527955783666499396163984144863627993465604694885337725017459961703161392539577505942395338714681477909875210256630854556457545763996824787308042254572011104666373084584341060143975683343612301225352193660773526113489939452171827651055177575217499256263970703966962280050740700797672015487629361277709505632073817086907917557374482494987373085781267610854144112018751086580406320092099553801292098300779211673854941447630083339175020186727848439825014732312169367593560296842240508258567833168029821324124821713466391601085199845224711622025301711345942372226725842152668346386914116337753841482403693780105833602380392948885497896876024759644320264353920957278297034489566932710408983040037703790230565514045112586634184842623768512520362831533936226936729769799490997944414106514028454636631246948147037387753457829931672413271922844269856921148284776458454199015101318338506496010417216254926368485017027835490509751094396712898660017681765082784332146979653246231181265982775644770540170535020816791614294987719693236511127031312752489315841946862624177660850324324389340820221065368013402936812034584563513974781131604618244608991855126924997578373230408122860745505314253804592824205432112493243246317982600735516044037875008118424765787755214680818419266810212971604587466040032971673351045908773466962260160939765596030127157692689403207017542552485492663841835716493071992955684299262439076989369947337082983609431698023315477178582452633009556231530208260678096946101409577890851881437681206135014752938865137789276165713900816489953119730962431247009804933794048876402035464099113914342170046734180769205935200560476809529006529063294433468113189752134861915718922566994437236457277562739546374777618591091539356668457828557334844277501597373302409687692807699724752944359438468498084355331542850493077184899753935701061511706677189942561090781985037802961439647595780099384461493959345876592116388184807526801345117844306345435651368898107786643437292197082559587272787011191901151387999366123421730379032270452003316964608838239047103842596134489568744333641932305780478540572325172595714050168383683407073482567378969862100778361662142126567754448235126383421610633272015428024987959913365847117508521352098509183818393672097095124302537563702119622787405453365343952529179447519645962832523133672768827203277591570320331980132508180824004325795078506197421337061678195581595936532754980369392472731351525434518379269632720340498338298622065766427616166578557566640432700717701803460503200074617603885324769434259765718410248020796792226227584441494681433190056628095861435797735824388497699476396395117167816909195757950085576778108944345276992075955841872863959319103019020394822826701463399594065258148568758243045142741345500288761410591876564544295531741125658427066564329968483682232448375820898897108477857351690114489260845958902096252709760187513340131530168790040535945744204288886072456579858954485695553825117555808247780582521235890315714117480123314097185000944139080666919783930894057512791329343808810765082486515262890337490586274244639648323085701544557925922123898677420406205439161407048307181459559257500410868935088698126327202676037117845852416141517311988539783159490082202606226848264379658035195971916985802577729248386794329442728771823089301062176792353619981298014279783695712160829265519056130857117745733206703103723353044819393365976062173948122280364153110201926736340046952998801905619880511643574645112724112074495421955503285093605197103400529815633262849174157714944314697000988032129941410977551062578481627302042682682111515680228949531972288370732602322970837582012231228023252732539899215301227036763047504913240507405247943423203051407036733370803658099095466944942051442726480121345392545891918840808778896250592576295441010970886131759255279932989394964782493331449565522095566487148323154796844536042777199952574035358266720213548011481951564814570502168358665266550804935774610168320571329991553293108530913342638564600404975817658239634030763550529576901086645857519635970043800529315743229538153474000927088127254295215367806152578097732318335148366963643959920990096004694415443569624667215440732767346343402758076294073289449345004700439944865968553799921934391216532071380899634965317129247290957644087019299207876437119099003485910809805606057559200283642705776922644507306739563743301618363231922960522833775230054989686261725926411015830288201739002041244045804830554383737827656841808822331929136499402319174515234643952367811420760269584183716236750625243584427734457112643229600167711232120025013899351628947194309252807504928969194004012432540645332671509804673509916924292571425669492296446813568479055008264655115188645066701204929217177953361561967741321645766014436222825657582237660109400562561734191656699465274575189582074934838813511246509197075935156529841511746290257538753513448044410749220058781178513924366771840813943534822085286095691262298770784070430112732410431079158105504227079198974662320981414183232905117264817875858812445699579176049565134103255222523968138259826896960734001697823217217712151475476869934024843322685337872743031142388520022142500594337572153333278292799682262376580565844408835318611741122984012004997673406956250816671446183137482989072166998400293646189678065932498066751349643609345324083397544887564789670768606644226481273717267072619631393472651403303808541556494464356650409599308800032608949097151397366725791089513695637729271275037858966112199134606320647936319819967148893055069930643101305441560366946553753036225817153378999478942564518739447851441539067150854401380294225394385423990715395147679975524701606343970623003839961400742882954953921376609969890415784969601547050387521496817524970893298839251851152380023429062022587344680220266829674419556961134950559422483956301760083848870112358991734802371560858128097007905522584520269528379274383973252709920483351437184280342094315984144187533024309318724556712415909153148095106659515218904247452292124955097459415684279785481380677873118678740733576771418042963718563756623040331860806546960756830137883769403115776681303117366070074813178268179824264950244889865972749598777766675377048272256063158241692524086841011099469048885764711330449577900264029200278841739791019150447762924100658209831921280093496104528042614690624123340078775125775156892567574500859188495298254315722221027738585841550691021007435407551297105622502787243900273969378222021427858514055737245779938895627715138004329775380356509533854770543901250846796394394865844312255352663057252191505379090374553107538599908548169741860445865900356586693996919733513377856409689246654910156394963969095497515026443937015745282727994909383744645140581895866412073313635912220383622770347527100149088598367753778979588764020156711845726816760522030029337171010144520998876164440047468895030504530602463835240397916734970664008908524628211055144820565711772182836765598663021715894105814719067436516478213333457839791517047279046329190693803681517289794960735768313165081984636212532492408505245289304920821494043596025720971279606599176447337510504782598446409248750743002241189424551645428939753234711951367788794697260347802559024724591089549513011853203897597081632302591482622314828174874736629752007188106248801064659351369916968937458083874284617600165302928005127958015755410386391866806823365541855269657296419335097847708418841890559879775899021760579364162401702910698154783896498385428862069911171934987383167146003082301746285773633903228053822664233432087515221162321292849385903534143974157824871396438620982398301841837313057694556690917305351564670767107782652765325759053871144081763297993396281935752082624357177267813117276521252757015662345767352867117093247950669528509967303911423538034859183569022594634262892267472340839284792658993601132758317570415815820480278152744034020444671152769608089146814059818707016053362521574840170893230263861112463658907156358176463095098841288420942141760056628728480418662550358265428366430104948307105109290580100586981403187685472835288883751022742599076248859113535438483919865298832042894199968751323370761329624947991217100053098178083963017534284229802889960308986032640556874857212474014010884888433732758261294343363161132242252500930249275386646643939510042370829371216007934019572228799025203113119242544888820615245244979083927898396343186316737928492048640174816372607782065604433516550223627637783233409415661366981760078469986655092625774123323536052757097134526819714835326675449927752971560467632554235740702447927471311668815742841856596404405262401521630242134385504179938944116752958257999295980657994643250832204563279802014383750602904086483589621719543989515925999442032459548759874201788831663875201852878761033608365454919148211983473958580682307399908065642575376228091704059922111359963339709302752094743565827280620755323058889255929066906055529207377322669856186752985786904617289736528476359912292845807727954081510419160542648607631998622100310504246870297772756359923645366189542892805274946531413430363564968105041183673294592169593287550128063451442676449871704446202380249524314050776040888134147604888542572204346273520494082810828706860122484240142564666560008210667846278910910318844707515654872864814608066735332807181273086503757489341435239215992414447676838414928585188084668213769170939296385305687761459843577291614363043660416932488015450691169919121337705155129175178507693758342793734174560535608078786814198202077101560179164542619133114770436753861432087489386471320992229741494330734940935486933423970251854836752995433128426492324552408712549252696220578097752099513702842639937175444698769563622342454667081012007138311123663528287388507437022396405177872105684586268836878904731459639995985055606934546662124988958912871840099589257523540765991068183494297728581152263253131282338515514358727782696076392789228962052845624347701888342446355491376730743930447667708038494583432855573492098622019348363009399766477641396233958889071096387570722431859438050565823001224888223755190594936829204670421353478379037305635850160177595004356896727164456257458203786115166392825704677801375754806895193974641425503982340151861410095614428330358021368517681941770296259347017917079005738042441930260790932330135905489717647238871205101523668999598252936234070235120113132456128371358081529633598741259628585607343181905068920657248796977168938316737804501972400178238106781410438372098903902549721573529002771311877978870658015579943160877775981850713224520889707708533223015668233371888335114168428471402791894951901829911655626421471037404746686420368266670476877665383980882590711196294852487999621572216823363801994669303856493235386076929941508718069513812594628073840925847918622513939762922048614606336463292504071358083060349933715095921439019980963089537281846324904863958355605347675046456613035137399497573627036341965728130025087868090605352058632248361188094608292231568837324634543450821978325274081479322765393119947382498759724839181173568615395373684681478444675102081352442132832339785717186755396377719029046983111876670437793897902647235685720884254165836927975975510679150715670476306778134503942956986539007643218999902516607926347048403474982730949761338570757394379304478832669494043048591354960012462765865168442602202356714102054165031415066875332529079650068499701612556982174383777797334067393087266477284174229794469084202679576470100569280498617289756367265922811678358178942317159096083949924122567548923802765082726332911602963972091488962234075596613796744510129277031452894545335832079433922956512456798315034846568316314347852984829170473526095369925066059474631889933509208596257810747353469583814451267136927167062216265719296325347306597835472091754132775604269728081220571305360947215972712036847525126702088521221496622383690151967466965553213154074679446602796736831858003562854038463656027560694015832529977293099748761218317578530474877192815282329310743644559858688613405389469781347614545242458580684968121006882673483269088513008564566294638583567713555448985598227069116325368895037581760393206912858229921860175416302221295598302181135831932232137328748908447819856344706949711593171728509974895898806013681854444551059856016597854597962134746842020829743002317044997230447075540612838710122686672464643858576795764264398204103794436422473877957435834225693520066925747669977889677601866025691066592640071071512776612990198352099960541994057227589266896498237050852727908380685762717924882156388798216993810542515805069399415706473674284183065667309336756278012911097450911471539896391698763187086370993838583518581278159364176220654408670136525901287835467477168283915137551066905075822060846492318623194535589556370869116060433507351369995537595728107358979010343312488172549818279673288356424350804490685980312870313138728001404049082764851834176308117364407169395279418716339719585949802853119098903114904615366912115789348801972067768076848147588961782036162435717903610096296090779054600135824884953765077500099017669369097581678074461182215401028014542287996603368339941347785014857643440158804719178675369630750494889347484179402668410149339415659674250162447916667470934812321518628750824582896477981304435013442837872792958664233336730513748951477656420994887640327415528275611480470561441990207975969132072469590151604783016670079378399337008055803250867737879179490602547983900043583698406531449207307310221368935499926545901556632613194347599526500141965313864988422503752555285890723330948727974113830734214152837183883872333660152882715207810961919546626092957094950855746426176766561635331183429205326905234378868548770837673114614087034083475984226706122798537895677261506227286524264172293436332416971241255151033758834383839875562354801298319471042740636397758575316622305536550983507906145657883598851716364239417029000968677952303952986651560512261248118876748175371551465476412095970306749672968577828482867814557882358731054944735951086173193990954699889793797053063539726171288094032928998230925742610332292519826251679395786543867855276158108146393847512495756531222790143107430079717372854398935078836214891835983041440480667109883781129250095966031449918672443281232287893168281973904059775657106978684609553599086643597476634094713716432253622640083088744631927925614759632391343309508680994713898991795066617044146406396323022023780900741154209817915591212487414745158980385966527937935301812489419376493235645995706882296800803249910977270746252094726280557847268369175574448627869380246081428729171273069755691223569180972061605319987660103366061693461053675180472681140630745792737350654400596191905478240251337286985062429089394488212557086261347341557390291283312495020560691684246885865848083067179741319735026576743648043609280921790837755114680973410699863592671575787772389594493161600457294497160951726864167338639369246349617353717964642259885942238789761948906323048530233827859697101048282090323015816747918834987913361292759382560419617081236116287860513379494975091977672392940775190055209503239596079056783422355945638767699858726306426158223080336534445663826795449503111027353504892623919234645871299931243327502975403103026811067371961938754880252501819251268043732620152950527584303344539705015918331985030092309390822154811029195231027541041659537776086660272217568783936812447917452434756964372099697457067388386884697022628318166890909935023974138717469705463990310310267256336016820189155887604031449169294555547781927407726449961629406975051209897753781477570080174235548910529565963142638579721660975537385139268376741120391960798115191997412857203364780695443989185008677069750015648075730969394790668409225292513059568773592702330453657753783907679843897894103927498059068489442447526229274564268489055820511025068881068275869333994673381314678636734444186798970927479316983035238992264057929097856057397693833059768322571205115991885204406624236242388110796121890576559859188183401919818644213865954257943407367148264593882126117522720866551590398213132348042885346260048223018375145146548230000959556944706752051827432970918660414483949867638201351306930932286278944176418075292212655228896159006755638331085052651982790728833456862284384039461822230450613298881246259702357807974328582853642800811492825637584458970496207442683533000271287367875282969963044636056112525365552867451244081761227112141041695927887905349027187965790514824803330546365188383840503861702997366851166506807867734306684644680366807163391824188824122946038145313953373065479102193213199319227986682234136641167148178044632817931330621560414055220762928405850118493266451229158360625589474320276514976053020911690827292109745216805559798841591228692061284423223379230515990740807648042243801062708092545527044528517470562107423582981655394826354182947683284794835842243099439991130569730645757081447461665536097050293743974179548321094258094867125406902533774637191164918307058065971759369616772256724905989510259829660557911391535003441198771847389658917655356863282319882423093932831796866880368899829772067724093850183809552623095087269469525587983688906861630238317493168419801588854345872979254210606162927981589098452156811232363540915228360549982315913846825670111611038254121228631780813063651216726513940273949769225865152678111007259647813254514777810125770239077206401920292381488846029569351360872829925559035277299568703969791362889165149758397444857194993381739996597477188186376242380238398220985814608519946852821592547609384278814851713052532703832868364637620214446298655507762995859067386386864920983719888271384821030778700633182843705118038173469886747919796954639125258530349088462134479608108552576356437833263465111724641447401731801302645927139938737487414391204752629218334471294750198558478602468449194384598086936873721393632560412574121479003981993568601474230180033163379741748469316172482172074974116872587433920865530089026123976073636743975208926205799753966046033193331647009637750186953891801857546170019889154400856141768059440084965596812834716185928949261329644241624420358671857651746848281549658946636170222218654298757938205058418566219919381246755728710881221603332963344999615413869343519644618365156998525344187895831177985296307120929424262426416267717149928522444685881421273883759379558350805108330370235938877765113676065070315048214267343761302258556576360178550389324090701439775706622804321296486422463002899910885367618111980585256973621097111423908422856539108651233251941693921524231835716090715573888437875238518858902640914592543425950770877991851092600592564925461828333974957756871996732966814929850300562348147108914322140738616954806871299819871444381731062030087743960969031895984712944777731446531933398900745302731252783416858741106637024268471339448050616178918234494512932869239348070052867724075735014883246716628027627553413258349049311325126514628810328960398338850505664436799222410210659346807677960133692649814790810708337620423664831865243881746608908527260940753980150694352149522279694256310601164200173298882396147750806914442486415835983110187409892356185494892314498393308340446140934630014825344326532872205762756994148554474381156282168479183994251976900164819793518778278497161162749427977037772456299826771388048247643420153836206094488782336103798816799739891984614087320862089235433623455234301485838445964467895204972835842692742088037745719943504186595306787714670012145777163179902734642397467975887044179951478537892557023408056371664999769882379612920385530753152961984592863230491828023351468533644240080445523339719060772992820219406125721617617248585849979858980724742285964780389023003839767765117093619525489354862175679209775350731413145392649149833793648107563228099659152732089882023106249311664593300598243673158997670583489734332416987265375947594325660314401468591823767978599262699045541552446441699077674576459053211007834096171410948997575540179503270798240665244934383379595835478288485848037946692780863443778115686446225918492410048642661769175682858807473545754648913634710564718133265863538595273470400307107777164807668815869242266953852066638553055592258527692914655921256388971644847571524074339450283822468136476430317456806660915404712642458635319960757806548513386346450933344504059303224459053169985810776836178036157638117673609013978293485454247715836891666448162002656992025003517446550960575752101400002954853166141516495314553474341897191626615679556292595111005904891859798797026999053169745590002833668713143587519861952495630605595199034396248833057305352145269047053461686743646042731148011346650030751442348008071692656392266821827771055087786683900503395655295344208447524655567681643827511129054395509380827397489181789198975086564567892323730408113032825233123941110363382209598012271123965531650087963785487607521323733072586141627931142701404417199168349962992260020180410879444028274093506751634271273702783745580713510128332921471913932658555344797454256153194487715227748673821921673052057844309936377025395510009730511962680486217266551163035302841894989618631739397915291179062282186704786042374821401318597699927014744000802707380012267460541031118047759720104349027008424209392884498720238705793336061167337882904932847086890860512418205934772570773408357335513750650685449111873276850402624390407276004100785549902113693016626418822996024247706225885817441059991576062174047567890539962758298913679550362731624287041297342376675437875673142502803629631097589238562858633313142058985874617726649821936015517275429921840196965797203755350368857914506141814672401148433879465313828439937610394406725628755205407642378958101048182012354882452672292047426276666889086243656581872320403006511714805755949218753412918917413608790277718514958768770310280659345545216355006850742584601216978139675294838307495488963167057798220212669968924287914030408420382736947597845390463148038470792264468616346845004684243909767899069256831332721571035267869493601446322038614172611253384521785582163954392994136423428535137997914041627932074922141567771515642633980058194170951996102735172827654391164840521892451034912404035574579818273313146991676301077309941724686364396939327007181968853226467269241375151687259136222598288044514391584817567930534985526427287428138865571551110389149238139794103894628573029156456669648781348766712550988045410324197794294643755619524772116055069011086676665039065576054277132470465535278366266726375739407589627164866992305282739403816182287691253949690829618971192005436990572189820604419464181784476365686147258480596162582853896021588104001347453831685489160598186359459567570024502730194895764972138280918551270890325331436719310335915946088308212531572728864202892843249542214924613817290699389533199954591741165509324715171162721665312975837391553718443933804077514666320924220034262395296476141309975251456258346640158476132028371460967586651923315013323053118847708388680839898142876983930175725680211104271576903949678902751960569024071982794704914988799994979573993511914060052996674397792086593880654163013547218834316105713133704563434742073635345856764298740941088737194189099223434947106365888567078549000501030756134221927621713289397072465811141324989223348912237025422820781380843059483061905868117680415791308604515724926129498214897346359135262587309735439772448601058333522153040118867041359345691379866063858353682522346807410891736925899415026147266076661941537847492918124273758417951545911565751943173414300563916308073318480106524900110203563493049087280964052849848054597624031197284551501931005914801072123930617992687194661453252877037279218024776977207305571822788691583943378106204185290341654078889994967551342439243648788579434337153827922863215194589813136877945514920543718805863356985678546640903847346030916194281090182941241332182443098955537093080593860044799970104036051197304064420968516930903867739014593438817561591653893912677093792178451710154838503014140122146575376177171539037326855203761288852035513814551202289580730354629539990174060950106784473488471092523558699322012347066092803727388680164447749054281836674071880119449893028431151801069785634982117993945371441091393114680458042720058473581701449320261653477138656659352866027316551912506806694506626916892779108962564435165480056519917558052827524333970192895739941707908865986157229613325501194962337499593153780100616371509890203760300765180740487619401728566327977342277669289293565662256373583791661261874621883529227161850938886896291672534316390439258514228682345487912668569313435708030014368993540858623831683321647018370104319254687793469385843883895104691572541287229561448119827632715754573297300144298787250599313713003998243502487691381527933332431250314021832833780167835495053787130732396404952150986587982567813823899132362704246192950260086309567918361201882293465057827699292508664281274970710344446957515254396139114565704331391207419297982989959881363355753461930712287448402615910914438596971738159076931707719605133059312959073727413288236768140100199815195404909897972877815111290991436726452654381841397002779293642032228952311931162451273590800718305438559504042828793149265156768280849209369458311389427052949051481680982233162170313158215177051853370786158821269958193733847866953750728471477407124778118433402808214356773503269547314849760661176658666073831876943958911538610240959383579919599923669591454973566231727411316844670839591428863482808648887571363915072771588756769529404841125275136368433239899260120008770797064779390542694474572090622872830714291359269344473821969337377941530558534266886396204316432986811009546818257547881304316381734522337291915174519943454359211800470609081038492519867135773948618570804631576544871581113214633999337316661825412185368933595255852448656211943477299577940753911467027203439264691445384875127793862863684140451541770324239362685414778243575102272643722404816166409123296014825740272660198013435795062166542405253211601836418098428163976800723263407450043828200597318860781167270022599190784467195924102837861349639293047221007039622750034919921522036429487894576937914807873612865307595191115160047928038982432439598633873612204429632211513971339455080226728875701878755307031320145644967390768238720479335397234319785562544112582264339200237623982252693353884191720667545697937757003852497826973884462865769753242808784976623923539846514718869954753314204457309310563283885032173736374628467197000947516922159649615681173139145559188189229698094826705614691210823868230435439486353336267136389399602118916139017033370866052708185420893134871512542995566639610725104875701828610476519155441632876458113294192486556669662501955247716851351045690230461691434073457206236933664648665544805511054899258897667986748950672089179776929170499848530256913857082432286562222207845467684926145831550631667537166544659887385978611371991466846051422984758491207331516649395138714084722648107758500106951561120322280153896785978196775036178018126410090598757148278451204233525030629737360582045561096984006086807788983670264187758613288031051006962957086745528888166853730595154184384227855151403900441681827104669706683652203057031399348267231655661262160231157367232468364164170572870280143659011532247033127638072805081649426557085741561543214664773055336609635734511219421266905199068634079144553247026603108632009269343702199137099992396364413365979816866454839452673737768104334638156077749648226646893939735352146963189363826254824824097936769951937945552756673872273136496350094957093068820296394682759377080002876314902350883733519068585487934152210971243841777173658346839530802126316989641389717365172059056986495540046576534367265473000845682846238150230425823388197265343976471346384608778973982786587070119568889921955862573108245250099063138078862915054624080534225829112038073478542463867873161626017852786891904350048183666754187271450373684896412767750035454927771839920168849169407638532836626223968025479540138591009497049857984241570642892597207556489463530554240847422153426305006991698404820986959228018477448162571217746373075940932628784485305932723742527606052177673158823791804806985105716729051387623309839894078927318535601964772304366702725549403779719334675148854129379939000318932303357884467589211229860782941137455961634676273577609204983670607432101792099399356501777957841753501636569703350185100698353934530020984995715240163271300258088318046407551937341765927876424035812351026517504124030426928146769972615006997289035093752695193596024372303052336574599956008325930303565925735083087666403484282426456351242169552030094839258011204322753233365773422830363152136032239520453315006395263715601972559495464082135604651858485788097218240580036789965320189395497629513399606641011665680461042494324584243112135384371794788249684918869346916321109275752161890942214679541400864892578280608793186597356289365737376411869683779382930692266512264510675262820140363592163340802247464987255930192715660006340705117103309561273855165469626549043956372202726919974827574015562564961451714439186471662241650993989114750479547665191498539282276512107317795206478640960236167830785049887779552670640459989479079778820832279789510366278897411940929428121824631600206642945043373105121436513538099893344369056984615847802020063854600929016134853646813273873498957988966895014597482027211588905751297278106465091506090523978599979785081416915639711869253607187473955644163831573201794925644519492483728156812631519744552178738329761643513256881379135420401880637826689604476675623949477673939258948133024774174855825303650921106883721752164543808226463336255560630250805616515100385572016390797937520621909166389848994596513149831628628034115276976317257926732428311053336195831042268684844386720733502594408103445111878608202230223108562398135756719356845477342425076885948159510024141196744108081050636346278829201966208532682902176991082389847891026791993367898714751283161986087234041480846195152473924921124821250645921491342434564520962448740775281674914682960205925783216883027033790154371247356355322921185326709211798551367519815111346530529037782198885399172612102056135524021512383235463965402141592230721776875643938344109140915153745168029232185012971169985400527724207970665919752379741418880018524262401824190397489567327600577640178626812321911298392075005966398312013018847447582064518638895159656612487991708873708049393062110055597770625387687735939824288217550101771626939805481337470641652358238044994128251867253637476203312942835592456890998390746828816878410321144203373310985174209727874684180512853304692264542039949272703179345594241104869238109341679856789657276909512921278788555761952574105024798756236280900877929847359808472473173493143725945836153703121279838921100004082200634798056680766799705559892464587528092789245318454470819606047099957854812938567068985741656105808817145761892661074036086140292736404809448025123780860175768590993117081534280584593230638437674399394201587430747948766114650737825002268409306563050823063260964437938506857113496359126666115509122819735452201819356031397610565354616925257647715109583644086373268917138190617246322568887381625719212872686238830851738871628949448004350121821942483091290407055479723052751883738876026829364403157108947715458751615217432146954329014189045910573082707306698704028462444987131548775087859308738205682219803730265372804383371006812872957898909529125063910957691661884024151561894440858818315531373410946457727284209138660048648008209887837990832530223494794471774002404957614175108649206637028311577535288923374352730307420525703817845725116460935098936210629908284283360338941211970861316217012172210682905662257897955758439023109072940469956319735318052832741017558467872244734890937555533884501509875993874307998710951919474577477307022362840632215637554855159134452696786292500988161716444916559067446314788983687381929528711256722607515436281612733686152566180235483134868205064317356124727425474370205860530320651048143635547704032348533696285307894194099468592087336099492633493984353165521114697881665991238743713999688147884200699999132066108199252526130389817379819884843653503029766407819708931611656712260812892040786372617858372026044152423086957192150264566875500328672529785494311298760731312043224029615306327484164491244225209316443668621636153356286653243451176366059884747983550376485378538968733528863414411277758209281003580338850259163104519935726277532048522919470966682820438640425101482376799760115905744048066307665834537122380682822234231303584251257940211083292526109333017023018058001057298679943689850173912457967638305877580243308666550908706554390909885385736507936529364353295641896339198918195740001817355036820170987838203830106247958442959654308590263042046526885929906069142551497951634861920876763728780028918247408836748666257887055289738887441239941874763066950544205906552701595097330452112185197814410603274698004079695611886763014829588949918336587350575048336447922081804378901458058498471736360301047006361131742316397310727690363952841653735635894596726592894219636760875169833679456000527029418664994222629446079809863951980013408460913372529214057419193749150616163683277663547714139384305028052299971776957222561252839053421259045546460059367716419976233829774423454567115369326135971376426135566751016628898229464099878726343948530549530702341278872374621041590802013824278719637591860632849603279927567235701304460617536149811793683225410457083476113104057728161029413432268659465173738818708169501779082350363232948566321637220720684705521801534818481374195343793065396799377561204462872207207387758112515255478932295314850545210708637054398909553374587753758814260872619462940964507239942152019211490232135602479841035273504087214043699067693715783017151788691735487098659346100291089533142424584046132265823036192487771445523900021228530898321937712390318767000079581152063829558127794887922619156390129960811524390582573104338659901449170200960413869545951291453541062862601432282056258707047728145316220428768053242612812244591951969139612725345173986673293531617312622695725243462162867921695410367022013695765550856415756430095124387799333513467385439349179684480992220158484195971713107218017864250045781844461141837002327775899206311527425430341235150884772954097762521893037119898050902985036219352601328614946720744144608903381478366109401221174056077289132633731507191507019696605968318014443795384657382897544395504477025059319893732342625071269420243329314404468329338642445539808115177995065082121834635972881470363812169997806698516376006744734952649907794901754518963696638358183854721702538047738065951662564161833550029016159714640737733471507270506455257739105216722224075993628687120637582201252984981062581441019602176197773703346511088740867385965814575271535218876542892127634640354899650562359579933851208141526591531256092514076868195765095746585194658368379231566661761115213749892050082560556983952575415214812355725593575027250467372591962553355337191529461155450782169200309412506989358395102575615841112414898170388106719052387067076509406402471929929302488871834404206360348728658370321352578421284907558247143580625498211078145644733390283087507105950157982176435615878026766879357332517436887717336017125762218876446292560613479178384273562977569661118399101627112185633478545859743814016715739437251926427311503941452843863221152184749976037468463710745981032883292972178852570095885124975580618648289927856193375379783569904774706377477748255346748540134614460632562415753851530789245110557803288116590838907557108029244816104322045012878074079952398205458924939795862584836903640373720487138922556724146143123007708021268070058254929692552107359213463259305436259989725326938795597061457359206690918433717027277116936350666056892794884122347792971937188055276712545410467949292014282733972043955934297067103584819039985190041982248329477554432343085631786754674846126798946137944382776408372548335840757883118129236520377266908028587765185251686720850524710881855808903177910123495263152824147443361367967228787522001257924858566461489940919177995365319361554054351342027343263772174909401935608976394828684993991823333869732063374417119739238888448178599813453066947246287341079533635570286190212447413835557983159238918940044983184759821494556933375739115974695346096511282827736189397149491597881993080599148418013906799820356706428328988173850536697665486361127497973379838472851011563853315126334991510282061423066054230114158414859726268145408331179799584120082822266193071819631070351668936758084157088684194133019292426229234192246764487548972742439565911532530055692650016893774249400305994998717717770775243567062151947654072126843885061947018094594341411975155346908530481998962129648210252634867819955162468483210803730439987495068210795052299327953480605918772285178386485123615443935028466615601783084855678176445008660183575943807486183772357467379294733742857827835874168713287659315235669908107789733832551359607483515296853538901426924407026444664800870867351678876816074315162335928984351061995942889289219640108077475624862272118448533750985089803168412090239475114094789649700164423487447757464543957605885030788625247543421008824518828905214636366985730020110722568981628266313110229638121336608063154113379092238179142381375199882913040891868178486370908797136934216338548299343679672331345752591124088566667811271468078380534020219891779214569231416409606874205331043911887032498340181142467567353039279096622893545419207266859002999106160010539900365464624900398873544062152717618562766209453204881663885846997098198619309266226418241588622494021717999327646487676677417289241027916908193209183070893978592071817306300168817840628328631084800339813852039993164080781623747857087540230821362234063336820890685292941209128783502295036559700255943428973167483453425221056070207624080836245923438409622706823785053875127503746873148579688306395882533980529095393002305379465985172969163744928375655322210494168752082293885206316458462412983241318790708259421607852789449065111497164606902124318274026542942734285365540528427245299791201875929515187626318161902911990186084538335773278909911353991538931719438258103845747180024771758249662978491102279907574262587177560871281541298924514475207688704280569032316369469007649143852229190935873779844471480657088162444841649216965372824161570195034529251621389156383018090055683728615515961639074143648361930969266838049527753524217196215821435336463473364620478383345034745411767466436784969770648618071865130431172050907601742018799391205793974172335326522313723266504121233139666960733528015262206984713266505702439686699899983481641836020285803799536068148555636760261023358512948586548951332427304263386694644682251863088345368784847910894398558797229772600494771234572125962180557105633769795652020706977453751403153365252492779087619505568291705475603533633205353908686407315093177505995589352977545575327682320625515088080729127611776299137348929352674730484905400915744451807466292498396198379101662573737247560711638744114121197113854650837531876746441219094649524814134439310236266030846726785985532623874875544800039354080668123472235277315546008512919084988024357092679740435085129700823739599279211265695506832855884833760038189362517540819637185726533623785522928224092212174314446077747625834888299096906111850029095148808180049108851118658905807257772029245658994734785392126856955617146673229927449566169159169810177055217551474099759926427739296905880606368361661419267969797715238079627373867338808588995901653576125313310531536364507074442146100959147699610372356468830076298309392784005042868263033880699420006031330725848886828941402855565132402151348201479328349402315407779014191702042871652405418222403734621363063772318872247339198591658286993866441793107077239705469867501658464530065519224595233580617210973900197304384582169666508521095751046799917400763946668068451437590231401641929820046745737335070000879961413964673496446139940175143337244799291340029281424976376709886161374851588930235747221592753772398577562478581398155437651322493403061709703417436656986690235260271608726896289275382245765924732859232314304677419253927702434357490783338159815937274404471502970819612708921843082487945911985835705780450804994190048987563118272105312345291301155234042474255980802601265861802460712442187274149070742255135574722709756514700660589725293057522289538539154203319558124121050429053792150579316769184279855404314466524694367289724782124420697877534588802666498467426641068883331215413538294380830463995806181851270125741089366736293836032252854743898511967458989942849003857463704470363847523970358803156370834474026012619007924943628006876189863187449576838380617273084867595855966629139978322310561300169188003298979166392314468798027486803983288394433884873163597189285345880991535017496454793279274410785023797331989721970837751101795037253474946864397412660499655220437260368331632771742428763086693367931768092391639504686552680913939841812039877509501313344591133335785329944315819311666394736860672902945592439651140946372735092617283864387404695316233364718855779632516328038666153450543708287786812845117379717107177214608018791221259075217058741311951102215693668085090965181870533288589434661005678375037759567992537078877196389948749002953964019592573131568911897305409093717235623462075951336705414201385661257912811341497767395252186005806441775117640141219733780286118767709740206944741727394956446332683065472153748692578446018896971032410532549759479965889394194220772052035200300479730355456840317137636755961572391682703495692924710244888613355619649818299699897055924096500993027156435571877274288705039349604346258821983092049412734002071167915252952247032710249721367575111888964968252322916677738424206340022767361651429498152525216162535749404540231709921617417007858382307848127908218460060265374463270187541520359505267777832348940016906664265553563784429281716987881496533202628444564325024244893481292037149883580462777541816487724069827163952374372915229170937877435004839221288710615526088336438225812346976969774601689540967355311517153610174273866340372902490068771869914676994537496960788369990092965826430799499071367867147689003012996244834277874533315712617718133566599087119806495300306967725649738784548260193633064585275929821823192881312788227448874576748605357271027104102629414965089848039251733585667834269782797455763943588104984721494099500331937860508728637281988115078991644832777711174754055819465128747891907978531404797831269097974044115446134248125218576028177377296112512264794438536359873923691060490877955672766545251007687800183132564906745979345141217077588004404004361790688117416664205380966036905346816529137360918117260110318352821439476479751467406583859836517726618358076572931914662677166246304071888570936664603747300909634504404884002435464170690657584236334475228295919735926518928369278926920299949354605245903961546460730311489164001943574412775184351256351734395719833409346331537484208853328647020949626673594102043916909884410076012866574304761831089376655364027261474500268113179011506215722572248091181356636998921895549910832049727467417658567805325867005157250108008010155780478057419472615927433689095536225372263564857942078478511686384709413699949966026351588222174011718264909660290528831843538064456438790131563048379870584284429805560691165153238672675692908910712494070164350386176908880920122395150300406989385821342173018739178075019516592771961276030692090727025513515367962428066929522966187181787299185180825728851648519184860111063381179835823467074240452193571282147456749217582447470146687185332945997127986806458027056994969204952280836748598493796711117939110813298876918319225910188723248097817811438333776495212157352890020954945934012270188724114222752933697591271688848709121237597341717992373306015771237809199134578589279600640359987649937058430610629957305726277863717866307572315060624401750266875167333867209342952389825266363750364756471589565382494830625733178502866303325728929178392724638730221343186852346854628133471810941268709898553694812098399455790121762775208426557098271293942184242209646123128204652119579856171144027497838033645069830145971501754586815047761345135293386687787516421055054963901317745624680345816419619035411912523156920591613954915048874521496872611892532920122481670310559023833721382398404273640698090226506484654910175931099572178865853791547748132522719236426560385766621301037121425246013047861465670587205214480922417562589746340773187869032497830499587499222577155762891950446052458409667772046965281738182222121855947488703352348571525608475881452123176627946834314350059666080928986019879842800406967850258068488094489300995022737065242649530475357951498368574741686805571927779073576214021674056536008311682503301072576414066801914619485334240934962570760808087136947805155822012621028666855871930468725700313826759795762362287444405168446043556509936389657664334417914893180856153406508782718345296315317631027013889875997142365935936227941405681283850078895150007343592747665072872669282135831626599858278141245888941032284635275972095942455347957051278471496983106560797010341245145123230675786523634022084252315515471989295375754966089410826826411142183481615072469275792544965412625579747149833273792025763291458145528363233846169552784708425260530681250685269398366284556390401532556482147913198313381549455918813935230026897736615346889689805453281360022855745630794421858141008726892092209350840648945252254086061313247346615004004761946131627423456436734974870999119726055527197426340845669286500276555493575397925649684031228027725174268175273194018653297289098331570417163371007494401377506107769996132154835665207104353021815045347186710982644183395492713413714219506994409686134463921766762728546201495507719655776511233053593778993604847631550491478517288446224685169384391236972431561065212530392363697084572293898550964090084392502488981279678424033964687134853807311800065859822103144144678458369020521193294219439888775591085838081277213188743906704024359577279587429060924115803513140570923557036557452556187576737471195695725953652621058775315238934721329529449613327513088101441649072504576162812200586064309764486036219511388232336593860411069758515875670718052646810438485954519897437758510841840680368276987598049039102454913079250013709079599115895123647576354111845629905912472345848847807332912097201846036654897503649455398681342639176497965274454115296480137754688780646274981630220579156405657617470497405654864188782402452516836148707814441024569366970406921850280736647336189395222052921362335571267119785489651120706055790818086118357272684971777148250106317665618141747765989281927698616062840410565251058493872978900885098040332767658422504685628203924267982293713771969851764745952123010200075317038340660937210528575059368488485408131411443820792143451940278138032528746869717151844226202160355581115759811783971945088395755733144021973449537298597237464992667297952176637526339481212463592565815118040567882504989273406824913898574337295449017247300449071772006267161563091591465021294560300265503507164785985395989088877225837628224714514133450048162847446735553055543515767319611224545167090436859483308411137457016204802489998953995686164316344814422411640080616802484053289679714298699867845486427159780333906107860158749502429845632478803711410266864685978878032961607442595475601199438500781830885437688670490800923628540951582082313834522709511021312940551832779642102798892466884170796484508652627154364830120056627432129058203457907352896595135859459968892572763734264004478936685939872546522958831420292943598729049133330016301096525659229859796184442360294540136368839322740677670155516608122962930282443275258736355977990692927607815723994354365485188943542914047810608530372464791739600756615872705175595375327918052179097099537116683562010585306777068834553096450784895403945551231887408951751894033141844509441273316863182215373863322690412098954293834280458930866343899267916455508490559074256296526711230511238272607856550554440021202172185842022651051222167222006410830289367146321309369784525098670305761989261435761665769810651546427940648004193733538013723990217405369762493760398997852618468060293964900895423860675056605171459470933101835996615641219224367145860296621190047786439651756083444496927991574503465061335334273379301207719647790908162009063699733999625602961085888775230622065362707270574180435139915195352470013276373090676646204332960736188889522160839018846591256100549160681946081095889268608884309647763896720515070629523344348698167868673985977688790987802089869341790115275675218039964225398268939564823608860045262404615535844229476959554946227907865917562620956358834461955252351455192567911755467371719525274147983747172490490401375021019755648893331142386308134421522486482917386367108226836514728948866457072025009788852646416249453109324346779201836524584172906464843021908056575039595282735966193094410997799837407284209843427421689271989956576060943620311916870603012103552003658751744107523486389917074825318909865560318759219088144513966678081909993688742610978479203650203977245442194053859054512900177410963157349027267565238297051243491005796780688971791572484401224652177889415165830152132727340300760230301467863828853593224668402092488987002582843027412241202064117847914380171064290883828091716100506988713038450142507358181821911493335573690272226297262385805017932666604372085942840539997077720460363685420674628764902916240480904417266001453572491726147171963336793765688964705971533631060391969276978009921291865583976946664822131320381544835708798491996097234755337181805870712867332265975206233215775315814571831634746356089230957005067390169920637107080104227394791000957226115100414685595135350517735842983454704415444797926078204025296814044464286766783371535979527341693836833111805777791014806205521438899322659319539054267725949247786643382963956970841434017073142012521818705588499273085014645113153730828302940398580282136848597608652184785538700822125853066848745799403234772503412231623144643057007705989828795666696609200842279204921064825618144583280415847943604209529375640505429431177433281955356905064802883483779578993023275159884839949043991684376055244508528289268461951843921377217338037177828562328102580953191280199995405032606665090513404905710419723730981399268055863926392483812332160345414254127458933358117085847338740763284717124403460443308224809948017028822225994931971822436497877024833347987623476666204628387777718364005066707782067807774528682773956190557696900283466503028674393498976934733283084360731986507985027563669853082903929032574750784009332765758509540289350651075747701526221754529391225770325729008670632561499706379738030323406281294201255226334811464073370720087808403948496211021365301129847286929531055565460840384199368199256675576138997719867978413538422967871342406728113403385180693220749272824123036923096354979550397500136626292444820389909494555687297407975792401349519182094392085670839028576991262127796494771009348230465559061479761893728181780697975971591227263608768233075697646149790141211622407335359104056050568086962021812975088121434425056226476451847282236118139654699823691709158590302920610251896281774452661085293224518626720577714701037120905049395315193737834570484090674074921737123984925261967288261734316218264189215574786280960620981781773147253048328221385566513152321213117589200646264164205777294748667983239878872459347317812779827714634003798998287590365918336277537886773298062606218700308728641833055841198795006356058571230216877035383536641125121871197609591625201276095394295743986166389340678078147611158867339469102329572910959874165906722509600868547784822515799962733563005891988887259879928598162484249031336393299217102040009837535846387303731850296278746394975058876108639151794100115267447801516883849276857488951279488317703314817467897682463786697737703179293482686963482040965406210668474077627062794321168674647308987524509736919305528829765805181566802137440989781103059610286399702272468638551365818669404050942864320462176290426827666731112876812430025453313809443404779597691264972779086840547522775962873154064907863442541544056813210833080530631608850803740058974509704787391504755216042476033408354358375558537379891224497348707722616421159695319458188013588788796647586192930179729075792091297415837865768378879883628593230034786405734318692331936379593064717401562322898805486637352712890368535373327658267490363438748223253538435862670578958062011917775521783287141918918571003812785105792327945460451848017568913603540160640813700047765595873971145346322041844880790272823963354802684467309530832096561617558284798536098650718615515434449782857172450238339419484263428410581837454518341347949446757637591268703844835055909782706571932904994905172562368607857081994002437639946857158689060205513326921676450141256337135004238528786752499302703081906978390474820452476351368288855824669305859567781666121267116913784456146836569707160575192140561314150203950700848476927799329985694290567537550596984062193106566935991102890606147767034012388954235708470664410110665021296239487726560068234503016335448064595916397302025455793948792443731359322322439403170152304032851524493364170039629082991830227075521214085445738961915398860625928831339523357763545210855207685103114095638607649239618591991462299056973840979434179017384095961122011765455661959005765851468490693753065353880167830112193097586682410159414808282790686142756195361604178107305336149615688508377877357588899083693074151706233764812124622154684161707146716416602118174661496844714795727539869529528981642293702618990373885846896650149888405767682922924245620903521393234636929071681122713147551682389205868021024723280337419230306710127883339338935000954978538538053420045404501438598341386219485740819334607266854743095693838794201582584638836085131341713295658263980921690934084650000018702052974552508848756678245030366952956681273702852139414019475409380963566669012884510435159040106573565742191583207004663834877555976920332806671506499685285887789097228643623420954075486969540553776315837792740318773127566978244138830459517258032888305107085528448966191435418679557351966121618937747327254945719156128045321681753179993665790788191190469990594223046924012340096958355471456581053429087111273405890650395104991685597354372322084986385089264988900660762723466322232514919159533094698010220579143781321721160281598054564067764923939805836814115203772037718937554986654616545452888407742297718619479764571495231580431378503940715648553653298421240194242672901249319123627838814176123734014132987667251279391518591546629416593592923375617888628797857940882957345616752221047775449499141581692120435857345244137226970958246613827755818106288616192423942094134848194368410864211837991035399337730803414967265655636759190698472935101202444131514644270200776959121946862803614377869382612810839980178225410430844558138660271707941645914710553499247634889931450917640398993206047823838163075360496893892763947721944277173090404047819198907900681638919300754950601260353279314948566305922402576332913068474510344820482448924917058894125413053244429036190965068199138135705984855832384395444091338456331898036033122294721017513397507583150639628320596087961023413719207926437300128628162767076768599052690768340388766382979455886338343587793833115393702918805659301800178809989264990918979176944317144871006154900091671493050225527894278601420394632761197997840865438098323065313194959549075216434024033624154880269621277007861896750844545060122069219401818596125393142962241598691314923292051772282138772017581852656368279373660401415278220858264974969424458376873512611563053758441544156427668097210730624166145841275937836541177385246230111683125037123941779283892489036239131093387789714747890726744431541133660164296226217149474114572110864440124891957434435166398749930891317924170383061264182435552317526340896558070905525597022237827902257600803770565069326393390943760062947441456900563432621354343062612333562241170568666996462967848497161804108045866851984866895549268505005436497723118075081203987243233002267252955704697593657460819645191985123580377680085059263718122891133879274019452390471135939703020880818525741710093822577561373819592924418545910733155168228910255206209365013763199470312951485454671995356791966930877197901927029586307992750034702911977451391631952388465641395408282517690001147187661960403709983015598408996407050100218768101364994611450540951366024705278384308435178890262224164096873956591430877947210269079894347173147124612572543311567138876078234415335848438754530258574888344905262706558902251768373590642554165698166328423503009567455668405955378810910765729375088664097404851029683035167081698873489477481087480241179541236404631019609863366171166577561128074416538533831500142787742599835162783999681033982728906416255181850911655092575114086297436583581784327736300512820652276757091127903727592681079449479328788802942146627991260069286035155444177553368450764579278531273873888016542191484492091008642355555018335632659208603543790890110813085182909585159305185191543784014230818558087943783079289500248007859908695582059919452938330719279133181290825820406803259954310104012131490202557978430404303707417301719018553201069400160269691075325855198308680555704286140157928527274845166608476737950658483122523030049582954389296629815139723080167443378742690353255210559391471891941666483562071998300863526908970677958009356805783340125572596644972485671463156083834813238338541651123038172161349013696664064721247183643923004692725843065257779166008609653095957580991516658708981700208923811761315702844725276703575394659815078670186478840257608117508671294461877524582939539282633073831792235938124734069996792029295132686433148060379716675828781951926884381481140705615534979643404412696537238318165921988277354880849789598165152458202248079252857519829849645237730118435334516452433329151909974376569037284752799196185426089180535749132950029782904807716719793766126857920856930308273455559193852335838083111899980897643780149030291750772092712043819343440882581920487132981551540237896490778597237348323273821829362621227680367488442396745464178807046921623032200132321044884493612379839241995669615954458499748351993533383607891998871550934208910685766532728463180624004970716393996006657596567341444035872837399763534436518245479357394892920372873821387696491617025835548815653008770892669090673646820221377687781043268669869841709489189488883181891881973113474316967879225147775436908038984623586641568939474918303642937694346085173517602352605028677443427828117020413372656966226494963093397003265599239283417288669601147908524130362764049103419994749548075261464849848652908349365590866051310201137986848683255566429640135403149893759163768539312437595418576528994645916424039441776045053735513158680206640042175689554339683851242980199215235684014041741814337617493937458935091600675373443451667744926304654213922011146030409175998471270153258270180789592375568215989492728992096591867833614374823272622335969947195094033933694109377517143139050765172511197273085290274824403832680341888907521440385455073474324594060261798238725493922101520258999625660769239830547556349273876441406366913670247966398698534018737470215689042634116067758843834667135273201408486745933461068678198045506729802572159654502431439659977793533922065132879491892552388868832852238471475370029921208012846973670567406036514036187785355862312791574332653266162660206341097045874921194293345492594359032918663868553224387530104522112221536899910794681685399936087921075894217427091077599930136478734594377385373017807102822872509939906064677629589619234885455209053993642103198661652163957561937213702148925903510871296959349682857009966918081255299751090565595766406780963099127558829429523367676794197390454246670051234639357593482152667266091411456541628414445531239258508972885889372214523888054089074894056823292545860389367051781408221429447380808036157295206454107151869811654589300089211907656434632237087257864212643792490585121500833996361236423503759401205166763971322244348549016560722530619117098684252661790615593071464928311322037021269924921615562024186105459737738931631176240266184660029841487807616845437680055726778287737266420175710823510351639621961579429265327728184556512254149293672434881284049134774123667643211812958475448123519204038495622647866856164688459115969455910899361304281464659531924712300400724936107309041053009512446648096463719924955412000858622187289360658270621794098682387943344657740556427599241126097197896831278238552133485531002031418484315636064317294501170758347721230566940662047032541082218063698598767714887831902191403707055696090823891188511725454692830159970767096746652911473870309667401999754597457400090669500767747887277798654936493772088935965260843322960079791607655350031032892532597837312308528968343472188818728935729139623327872413290386446776194042091589845811841130176595153930873585733680488656685034614238462997696136943088844208720956330683805397158893083698607757680804271116414680247262750797205905199153699282394608790171736406114837074322407568936102034123049541006106096093563019757226559374458253985574064103461249451611865582385394764975435631023562926690008966102628565308209292118992644287362991859652773616252024022454514319245070026760494574485123170684185337542020163206785570418552888191782685378001123172741381931541513037844278479557079485937404974365274452568553590762958236108624806136930408109716108503902294612788767626112539639230528603915478305872381084239589666028523635218881435653406067768683333772371349234068296919279686660640474084774908902716682624467319378140250334752974735844146614653275132448842365581449001853282701860701115439605707587743501025901314572735201223920071234753055604645275498383548482932495013010359559640082820042445526646042244785514178986533417899885558697902407881870597846691606474506242590066219344700187050073177052134127913903982576980015711699526371631658282705147804065848789937015737932711403944403992711492399527070081780651374535197328853831736907824300560711305451641087109192073378321656892142169304064993193245483963699439578179793100982860197892652805704131334395207869540482466843978510707847817196335513307830007084118397202349505711714390841833710176407020132047167646103229592927117780317624930970952388973193074182176055619749593427246599179015939719232116683341353758470531028817398930280368373035008822161835395699538020839378297599155356600442315025076097737479165881127191428779470968022243894940167437624838715331720951377608679652740433941768736780781525880436071264320107353861087850284345604665144375562573233400609100820112877294830265395132958786044163455101184633135927960415952566234842982743845275782305434642211930795915151499490327961930446751951609858074228492089293852502612320165257126742749590091208786951354132489115556046267254289365986509078003183593690238884703468061950050999739132335373194603287800628899050304978608796191784858301767843750692481386330298012105657751549058572223599754226882524712234278301836393013003769631294201448182718712882821078830413575833896920698028568304471850104243869308481272156959420011817107972508673153053516462633583830921052607674092327363316646949276028558132648318702758783914137432054900200394759666497383956184230008470026883135576655637062708531778144608544057687875332544462503572694952475888107114128342362312348980680720338156252033345684263284796348556389562494381964536700179604445501859638925265597402027871983864307559056587031757652844310997180543522615315849769951625250503738065061231614115060834963400782008589804339883840973884778007662298122947635759049592886980898496843775973796413642578289506310066575978782121179417536626000091961788754226006592968563164605790605246813959983520103984595350395117851454802424244194734363204374832957198753359440602947339301457098394176847330254641286912805246498247224497501430704370270413631968967265107772102550929818032349764710803708216719723038565827972283247566800049514831870309042234148850363171857303191647677328249972855220632122376500530921293358869056663827759823008913144387782336253014959022768813873900071353233397577060854218279410030091040943234176705992766506605725773345254626066807127771728777359981645385603632313793717573306607239160929788953226544501637168793807306375704816072126068818172005026364374742697015964716565763671143496071881563849200814725990384486507225538678824467797486580762166773480916770372947047050972043857118751960919727019213732246940687086413831534952457157171213158212514591616398665370993352250165898167356696067367155300246757867517690704174390425826633157218247503830970567533462257276882430718380839855282777872021266005788389176028891732235185682480690171319097474755111339849923258196743007078407294240638318884849987273892776714100540004339158473968543290724624701915411255047108099558658339854761955227313946051017526998390541968223565520426725468705962394006665489974721917048653670449986669552692028199755756068878312529784587294090112363282851142606514657491007878063098844338305155543525556649936435474394904499320456030176208226403861449809706176546036165897177131521374312128402346052946110361879054589398295564329329875947692820013343308530164071057811322664854763066179653751650388005023540924834714302062676030612329814995860815734479392389599419006166174451141114881602826809083168124924854728161622638625536974843609201082963905902852840249140755707857800506978673831836490983793124355125158846190860690921651086837968051271716127419492386580850209664467865616997328476711878515016211819301094535913797265512683931035752846336380704351999346135335025255087091145729503007892535371725170131604009716318028329171486972215475614648603992063983926813722671158805900599376002640287501904795002339343363034063412451303735689666563474075161554022563897925723763799480262715582459614945409530340858724477579438190740805882023333554414033712034258844719352429406625248637886545602551636666487281695807082244794937492574874938850137005823049248982312532203715227435773724418936879231229767343931560486195397107391599273760850517103719917541352046227839309124168522152920703184614713546414308588441210358565720219290003859002021666502369995523796850354244122432155795376972235289628984925546795650124229965880398085079795159467373243630381440346169831178139335894499205133508661728015899872861800406255215537306562108109725128940650344603696940216283355097520345421111779557085729002335273663848825358410291943635104316947975873270310819693989151017326314157228332339345642372329977738261889286310314854002301709307288715288248080842470659381519902412315008084847012200284798560406382440327829113073901983228140329095448757596318730709345568314488500693232219757897908138070100637664771660234835056268028940463855109549231922330721817923215021751196185857914001311553097597365162655109799757607136007944775343394905637891592588075260398427209866004445604475063133466215298063752085298082897538943473481036653739899585931276109376205892764266265538590708523862617687412204609918865323374386900485597865100949012082971767621025712620118346663520383476091824601241087232302672762638597300681287230236033268597859444476088677089656458662283953809252924913077427962720850488562224849136355596106661959820774221924772988756107953208632024618382561574379475511759806940140996464258283829495130677254444373624791737340678769444769469786492669877731043764520118850307395387603838438461958402180569249136401055884590966426042439289092312413552791956001571894430184385239774530777509166702670695443414449213272850472501706102454153697015006782318691639725341331019921448585050972445653133709793740181807540641501056687564980285915036148818879120903803849237137290850662366769144391659910299697281211884906732260883365974440150863725412033701696999930476899720047874472249047365553384966491463092171208627852925225659016961611292837388353607018289103819060602039677295865139779287287898471880366586244093188038989239757310767513974429531300149356291002206656965325596979276148806725985259633649977291947270505457380259404086673002918208632028439303440755162537529594177011193778449980206667876377597818994597053073600788529107514992129230959388468512726789851451142606158192888292830979150210680345257745197117087903740301557940808498265859677510164450628482867640384627423860076301473787513054558683925602705617872451344913650005815397270128625436324902692811199900821039239164039668511774667681081477394671679487862048940841581795521791532435465395880394562057661795322481536558979088356226766006350764195150403526429705282555856146505319832640834863631643940490187978407998093891151770494535926012352117603081002438262703769537712143583497081474310096577658875953845061986094912471882333272773424770378686865180317939576204992917763553251125721610213783793559169197908594267744717909282604634920380971917326932004022937184849685241662188757162682352509900126746063734971891554284590121915584819601269246285208577828458223661224132537792687782570017611749096429832884374277878137612191160475662397847807326529990693915057390794862676632823903780361932231230999841991868987563576972787609789423018633811866719735241258780850115821810206001672020098994745384299944511086282723793131090691309681652627338359593524477821359157217032601465284727524683078611354201118349500564739923165722167892237445380603849998346596564249402077168289989926836307109497095240303565264252660500478087422428218072707704319415005951490201590998872601781253865240986882746710138539688970083807683101132695944299511861971317997996081427781752197602266795188551273718661026013303448108217102203506273705973601288713020008202746308788787852317733321433469358992158164709589037835760433839386899457450681968321282775357626300311838270863892086053588561742439346987863654988668671342371317608953186658933550025516340144580543644046464251744938238440491118703236518995811698905959226064030024013422115967954559860232566602257514168262705769008021208517082696141120606865835749305664013378656019323242272449402336621667438780811751985571450363458300511781344313940973520136700117164860927169685574900898890056182217935106699974747018647427328612889037746906749127732907898250692026903175419820555571062132820724914493938705876543476850946882228947710205828498793060116605374458934125965772529319371429194158761710346553574893093040108589431942077966143915367775860778696746180365844425815265661903414378018364415670529668353074587422769198070040135783406105075660452519057278842289446543842256203956333517753889999588201179351014580609407301735712354593699492847279962755761960333478654704862408869128575608660735210919603845385597553290907918335882615730138918914984684216394137844927382259904251504006533380797130222272724951515417593036117209505864034118926798236577812597731953914813758983787660093995862491117227089287974695743575540346483132259113099887118663922062032512151019975198762834271970524796523647439850156129931588898255930885432945279470196960690532010484139670822878553139582794425288307895328957661438829760483801009574944005588669072601300552687936052328311733825338311255093021994048954937283212935900425381048474227571492985085628603093307166080676817805331862289964779076490999601831046951853342061857083767735974720662896757886182072184619071964710467693383914529706276012532295020497316651464369785066474804937931272260453956885771180824096427208342783439276769707158626683517031606527806074245136122310426587318069488968311155109357108860812343804753287870940027065646153253291985786039777680512093877904357243848896529937782087792196981658867716051304864110326161214015414340489796473290908030585951792925970965978096898228319207427692823996270770171971988889108259580265633057996979715998347660262673914056554756239894963104906042101684147093564891406122796799755196147313064551413825798979903797253203540790131698323483772652020591299302189790419964711478734338905671940079702613987004879629522311162811552282809256779423674368428278299287975712122314905413613489020447092453443666363347318429405290478838727814510725244655774086647699646922606701194887167064247687651906615551995371687160508485082901940697256491864937823212950356669394977660997000224654813298904112203281669355141040646640416558889709283411810040686775381379706210902194860892190954293327326217747303148266672517283547462121040702905852770342008966209523223964176433287697223574232451169864060176108497509824209747683520542815834901425597338967261727310929543554933510837841515024218192621075361854219686728909216343037694430933520932762158753777751167530896994253488711133827608397075593562873080312490673412051178205156302314071683600902267844005381881367544051410689296990310174289164896772694773956998256021662994191346270631074093844619315172531119578626707255284733113771476007940984816109854087943230233508196944538838618430827214087527382100437595639327098481137514086747301599496802626334140354045675411681594340160980835299638798243916925916393693117429221761697033366800880193551116727910585727952798198647599682554118594526140934809084083519515979885897992781983400548525224067348380322088749855900892667084222393900576306499350823067171116851410495201645634939662983582092412563232687605537604162809874309049920352187565222333136063764995569188005818309067598608822993066523333844952264484249601483697137069866731188987563911794050259049696067140779852003593214270254075490622310548126918145020456710604767766138591176939130301288626270989764613394246739346259277259891784892037165672247916972457413913637829978182467249677199796876572538699779770057040627497542341661150780031601013429430504301497420493616574706787811331485310800370046413979486237378978340031397636817299983758279401662098238482015939040469568248138092731345740864180880993173230628821390131436652509848092122210038561308949061017963937260790920955298084234508641625319095083354164900123531964865450277978898284990723657099350119445273095840078150571674302656755515135490673969753630577470450294823580795154744525477914558216067942634947176981673846923429121958281494402259450826284458545442763462788688021891904599970735185085061367284693730711519112499349793813071494547133146450401321991181224639484991448905723135882184020237168395747653521431091137822655276134619870055759802877606570496674971745517566648166747289067881076301000573831228442049857378196661003518621964382962163864767955504698148398768193794881761986590242304196601917771494789126192049752415404115625101812265680352828675891261934944422474012151044254040232512140365022331090002246864171102076110689494818698676387136145897293397947355120374038683858987557528058893347576702490869214197025841603608755630127355088728001268072262627198994932316375613309552048176742058497601414053896266202076478402695769826769984255134949791646953408622501530463262712001879624006261962614105585278293116867028142626300169974433084490773928733286040625709160869551416374076648968831897311540078185082583364320713503517883311894160420887015171258192952733384420859593807699510055196067917952559215096165507532737889932554765911378308375604045604312373362554125673876228361386180733419528451989965512250369009729237238300752062410889914352959628007658024641618168498798502595706448240320222426817804272265772184948878154599966273158974877519960317583837997473962387557490863181994651218465115173900579412034366577558321806612043645693146508201476589167305516921936286916707627001232885194866249254653100441830922376841937914996939008215564960167195937863665903578582391284333526349986336408654341629086177539102177368630195521422561423770477582517536670547027061704303885481049132196227154116516046498550756190027821304735633102123721784718556326535186420890799049537701314193635244304015866403280327382966305990138817877234226852725877784671552546052270413296813733117158872254686409489597530548330560099050963186035442696875319031029724276135472506829364259195899476485880248247049556690934588454286087949291722603669510583372170949946706116482339470858419115030463513695508397970049845718020450971294592258847586515573579546201670185989883458919903722439607669299020507263614561539781502782256633267979752085604556637423092688038349565655094837898520447877069275233886456440911973347359960986514111759626544262654278604643885287329808756348449632322736286960664364098061483449501688670557288446484005632240654608862014326340384173235262484725048058256818372188863032560215148960729387958583126452902045464010840018506787340989451393756320060570310091852504717810612346411429762681323117662615233803057518829147175646236140240867486400622548930196616981260388503609362538516353850706190680933771516357856389523325557470132322809035480252303028663385932994652461655902994913658845426104351349084821637413377866482324627591721038421207186886662183699446807531505558028192833155078043827107888536310509859966531860801244284013837960413614921942170846170185438896537886940252294560430382302564413120541771482130354844630891823955564151132503921071646396090662434458737245636354985620599896013862350056147233964263063412315796367937362727382441333028545089466112199595408019200504222453847349670386271025513491865781606702081411450698208023053162482187425222757634512640966335248427596079410358322390159776184051341123234032195383836555956317663534690634819657679289188388127412990438703076191853502074823612216717729046242801863084428258878236686475746401018191671102249913857170879345185676478264222078288965746756512268164379273091713046043662763101194244340499112786956040112677185879813620714001941346449248365284178225347120015870540167387551122389656269051312742250642136762257566616150923722076655677257370514270454518967321828761280583973021251938804152884922650942472852701786079436035169938638098016370324728029523729335404473759110625940874604858611078242761555233241494172909462980226053061464538364763299005474786377576957615796383712858709295334942439767842432843348643533916267306426498833357713079048186147733441025908652179439529809145071394795605066441679178416944064893613275546376055077056323888346792793751864433099429915163388177501815670266071047958538795861767178627588165288704891548715756673061775449337524314303836840380161330439638365450067014631807915471022536094411656928450143732121144935397893438514328926975181642775772621154188008689874361923986692492312180625629176147712822430198529531920838515232427362290624494067691172349328767764726203548321335045908503922426190774473711035922334331777412300233010879496487385273559429585228862397611697780524250854634995015495469350314247924935376956090967060999821656203313592654694530768208417999135134444329242118487940777982213724531985336352546042728249792936753247326359554324024905539482530044872705599662696579278559188166697470280351350387460309991901189622127741993483688260202201756938824353174443926066858442154296576640781165718305075027725680363042615905602927773638881155770570507965006178084001140275285000761315777520540029360946669202615453703124620816326354945007823111970119908764083810021775182444126665837299561840910322269844823056235348956312730894544112077697097409447563518991512700387525807195795566364214515834416576043316524451725078103829246802331209105880951705852717881275039363798687974782250074973213885858025785890367695738539655524664723097679340971409955608452451458390459748342189273137755097112732052358799198258648487466522776829537067761343137799766293682070730349224364039104388249960939785219026058127348542122944995331131181865436454721464212971669386433409595988944204800414898143008001051120464970370422714396493596537159174028192907674891836082643634005168988279963891801539016956190606059270980176810787896851197061737070206423295349046754336115060955881084628658468770379638709477409125270992469753855745865081372530006710576432656973205322887089128221154892645036227938245982511579887763979247558537395016373895278246325201702633870136366601406896122774469185203823158666533782392409381237661845831567977003079338608628348346209719668445742752415194798962120057268510867051207258023622130302353839630559134981905345810368925609394148359961886229833369944320427625153968415968432396964686338813639546843874396663712644249375836369110207079725730864009523584945656711547754240635497281208335888615841959234973862474343097898847399652053272816425720011857143279249905748346502331907393949210871081014779534480798628990628295771346352907084457133914500983594846346286336136227197518461224266514885565991792241862365958132442733374463928714546003154623297943550324616786466958414419241017385435554638970297572013314143735986753393867190363500118176662405622684540320223263232567255997778770717372668700405111032242251838283189205076763862625993897935776899751940923772877408183867131700738656144280127930978835107491486795053205736158043415899826442985115804235532354466487648677805028666436892689618180849035863006940142519675643462391473318229799087420157844271249623317371282747615067826510888658652620475425091275585101481085211830719634794705573379725096077373005125868935339499437452910337351520157311307171877259912874742956844592527788290604682695777274374924365842037201455704857933824343627895759790008632074227098137113217601853131480088963341993919078506141065046119880277343018024032348042617767717174583336547059366172911127398291309986597708619121296771284639690350446206431718691112986842690680581605111394254215901103834325202929446244633965261909125943839432485677335937027098354781345357118075868826275594235293268205268141811331718372953008725985329651474388964720215422184968919989993596054260998379139094383276880548682305283036009544078282217460614479612565314796975302229431875369102615329474016138046536034087500428875654930749343411704886861796098345310478469684456848495373644881944713066321794013292990510494683907505602248268111953815501403749305328302733472508913320860115387827009970219749806262347960898188769139220214973730059839503103854122502742246736720430309321156507177794499426450755243775969596815289716840091789107950858626577093994100143130535068344667787594510510098718535583892900095643689275106870541629470411213749005951810363006633993637526865813100077000616619586593093019981904042215681742042598320157992172162036757739871252300422925355072630496988593815441061235881632463230966380781751526725487751155329842482176459494860535805080565276402536439297847000673527781694821093196888366888294928178194623919160991604370819084030699111792214913462218229635497647203905459140130833489426701813944292905484348531364309066191703475124401186770446786323283323260916337020488173435270563163385765769883337128134836816397634612726703935898371455563695603353536817144587316444741739066637975762481942910468064580900970656075291727537658020382364993141044987238235899556500223043030777909402036763098067506829720296528499440132664361496514681994332905809399337251570432980145563203276847238731642841450117935293884128366708442267644907393535229740127360497388991154217331829497770263549689153267402736290462387224669506551241302368918644682385398762440781455859058504442622187897821308848551979422018111334112638431577902259092137504283618646318472482723346629775432490234741874771194212885289488968049663372632069713261033349212807319565045839338803006232012051243659123869554380994230489921310067343627470549803815542155791962487696750298454117091933330083014322655894990743596840635717027416170172460135005742424938569254795181531064089291110623910695851398792000600447211506226141135532311909847961377179167731099999690712772745804952816811537129697800894810837123050231578992289158329194798087522737798256860303543927555675276377258487695681083431230318441121772202374474401806036988054622479999896212662200420976578278372802351431980118804366196908113604705789212041824855466169388231515851452082367446343907341387290230989395204086060777338723365575858648558557481134493736081260514703643254303814494488862513844490456172105339863341538650329486443608941268478760194433243932127576848192120092524791568364680762094358516517272247535881141896903805972904234069103685945743636744877376560376171964611768052287690537699734567031992704008428476620785808824837037226677446966566296025227782131685206311512063839617771763694658948239932538230756283799514260776978707400111395948577035702818198747494382009178933228557508941546720948925411045437214537203160952703557551470771453943906956510807041925371794100328346372309159399732198845419339376861754313505344062796153918379151078468353647921700747390240381231028323597485870499016606302964653373154503863910803228740766223881569179825063505264100883113559748071442870785600510922429985677313550019242900960639954716750533558898779275838377995452157768465556086512559447693106575818611186346644469923174288828227125511176566636671396025053262823896714600476525059319475621979790950526587829634555211891545533084146302865418320206193776595273448792198305145459348149101406293877933684310738782270932358100016918536975224210443110502507201480237345452568128556594592951856925016458468815874071740314594846000285302430214906079257464640330960169287797563894594696656062238386327233351781594717431714901409030892709162554586634911476402090385905012720029777415258535192257767716811297227117411952241245905443885530288290206032257701786890490223249582824387745457478848383900710870879649680138561507198021684554015155232682452568209268045887536699851284571994005536942649825271309055989353603016927163960454734052425822136890825835438465991455061534315543024919812264427176351586843375097696075358299123943039401446850290479065913141084149887436099728943765356029633946298828445532200775625793975728582758930037088312256285652996255867985372214705944227221270769513616237091708443565134300033007204846720201304668335174857672060364863755768515928292602656821087819355090152993083523914074520695430618848864187147548477367704517568689075065533350648362105580391972408309922100976885886437798670615532581347035588841682842993476381878656944475290384500006750799246619809431772242813278215578638718767204484811404245640685369169182888019426933568804120749032406304382655135077706152341202548136852240766399128215700874434906872105660515149111107389121236379140718565056444594851849722525742527194907848428095504503546161828786120705613325633962173724607016724624560568226333908917642150801114018068391088461533512281187870856697833285073860535661958285890629435629524799108530525117870257580558116360669152791089259444462160916154815746872075076897981624895577676931104856093094192723132197910855759223931585126528554151196752657265898221724293842075425084074339825800984659353800446098614740013818430239754615659206611028740467474881297802198008209230037601794975315444252125147831364898321215328252990732651560226848014545676479614108747521399854603457930122990925317715586879045989815669612349244659542052674916401729451507493030434792549502678312405391375413522093176471747669979858788287122552155276167467746569095132107564303437320851891404669142923749321606904706424475598529324179406200846173100690825915129615418128435984187857698977414886817209138825259788984886736069782867933852993654478443237498024506141140041200238878146892381236667411152129195168838843179732890865633562000433968274785441739704408560035271354143513195664971203321614117272492096780364601413079760915436925032074892195833307787229470601102229006239927168499753618616347904986144879125014958076663762632047169793485383634727988831729643777971035465929633353116557037732737280588555244602050078272984791806472680034032653449340629933068866830482558075821326934062883989850116743969521721755770010201461531352858114332801945401757036192000967854831115570923354786801004386106024418467483537911205512410348103921457153697539569662579369945041440168690322200865933690741514218114298423044571457007527658514038239023618461762129405740100203985334040131164025217521965379306534268945863027216013941040480508301803883053556404304051045911485930879054209635938560097676645096703046407006861077268866489979415296527784153299527201508269886614165100681068481727109478501436176811489290163688360892068300590960945383222083675474150968152002701139189381577350793938938205355653571330879838435939521355914599328315118176640540179221051022862153438054871124861746879648616700750838614471933197483070092132388669156928629523261325670493793545970368801484254633883899223874542070870102421007986365704180672801793854965765162943562357588437953958587582008606978765981897238427017875215312238033280427490097807820969592929895005668424600333750215507578293320257334321589281357005916761774183952113474214254838345887720944341479800992983148834949410742097636296623580375144690895756393796711135439180565495336785302273988822481392590587982390347180158654377789507104803586452564683940681288117895162986198559368536863614568580250695196516493156279564007603935999130402016985764690405937760352022859662933318784453649798196016312146811086491916217997412628203161984937546552895659089365209498584553612034406006053590478596172667959840145147982489448290020390597661283094309700278982003953564345628995251066550530171718230032662293794720888940112717530150042055478808068672899202330349443258426941996815443137393226825243415774816354098555448290471663160744668374123760824932198525399767422651546372419309650788874457586670252613323223496926906007649258192584820264837970132223886284387140269583913783790760296632774910538702093073640575774724340323735260962295520614325519981059464846575974801561432896467545115534975966123811951309235526080053443855657022593102484524976184763984937901245369329803063769836884629276016866767398135410962144480873864681942749541086260685878542808801155665715810014161752517531571334966661583137885933559473742632426353564235044622400784647597538033334661556007045937069622969484040837045425165993005077305043515237718961741604405902209301368089435529214521099908095938812154906257158600722467892349161215056528586138160979175571168391752515156169670263200702175946234441822965805518756671833517656316564884562566668979390924512296023051998612941581255997381776966328787369601771074300966003476104786968116899915853311233751132224177040243004250047248196968653911414319563941574327089005283836906947766547100205416692860383214452572589461051502806430154882422363362070166620871855836926719567468158225794252178797398210530932854509526234312403520758877009884687168306062718017878267238397716846539648816942683369540230357178321490701363534393509702042090046987244424675231812358675830309580078276229110551649554827270304460857706207869224357274204087114776801740434809720191058651476845460015420309391134620892721872228186917445532666535980937322933200179022931523109310247058319336768283187904193829442454508768909000652111385028964730719954361627625951403026491696626484063260134072338032017498745797426306299229050617247770293926786527991523289814373550524688736105859264295379211357647472124025371908578910363145635376389973008226252324891821657909783478774048610369264832554244069171537778522680334933165282096125696517719588611086741672862935716643421124513159959471830473954347353661637648878227149492198133111094785213778337723580057012954494310605507600461940870961887036583144847710887468889748332250624270801879233701722303536732291288606502653125977155591706488394218408056898419533223117794403876176531984169105956722237720890881423591585893907499381157464249717470088691820717052565055946966515853535004006141556539543878436048601973616459869912955981660348172829149983367930762162684262820318185933825667973168631975759263963566765456586900810730521054381484084915670483615439054105925701862553496696766397266083317954474120219043220655608189946979021047042503992701480028296697796869064100700627546321803416869876314191107509052790019721651632430929372450661294373057790632702814938059597313168035387597630610595350005825120361949087420792068723239455109695724380245957542510571449770116335171420198248411275292866574225744152028632909000413027252168759671600667375519746979011524198481576111812982309725512817587838117756258504223710006331663435376135141335110346087158401747694580901555497861505934255536167907951199239087034511967312702327153195642453132829208056854153691987899857897336735756473532146442929902266671271336767252108204155034070827084301869490836767434446784603938421632618364890858730892449885871255723012216326448928434545364835590784410063872386100375761122770657048631686905446548773762801133462177295398542190926761767771312022421252816154730566906491392072056201959166381684162414195057749270719502385443738566251377564477843889640544928841804160929062754707951646254924347096216891200297076305359148926839413541388181307744014879158408613488011866737851592207779316368258634049800796712746654957828088373962852055264128196064119287974130915583639093095944630478067542371150575968052837368993443510636016745008131050683348444909127499572783551226495036265045207496373116582423408786492462891446153511770702858192517878790637688152230504685908955731500939455075242460999918127942367157040647530700282290219209682030282445804991292978719002673098869014982005245352043858463586812803241766091170655868824090236788914842067973996223130012830439576202488837918647345070346864819248174700015555955259000396923379802605518649346705130902675693124140806787800327114658814011592598937702996545060477936195393196909987927672659979254022008446239074297367714141506245305203864787503463012929928654929647870349487565239218388509104556147712023904049023184971653713482539877632563121181455014876275619561574240503162410016399358846598452711203345807006510682283028411819421493962705541734423652372104432945952943379136303504031197536251821608635169571336042220940856305954548350328241932963509505744577968346747674060344032104878930043536286348667009977464109382756365207083782965551875535643552796852851508084025255141219678938056146794691741156457829721183446030522743456114912761711807358577966440136287188051017278574901826602156432381294907336363609384334706878129568668305507982779656820859081125544272813967575077021184090193665186547437913400103076085487172712730907082919273200491962317004683296381627991594780709181729041375326474674382716682543474746026583224267960555527278989946267454433899336671138245139716301136531959873623679404652399153815376863251417355097717503807513798854767807555047341686965084362012143702339829764762065224993519245164494499644833742047919240292958828640223694260417554139963105323943911111035284878551982318968277512102490492372333001165831578705035369671603726880139122293738190823257431536633069440993264977407283049085986986606935763392636472675314503284228475519815175336896062101700526647789414255776081655824576277054553750930473808884782174768003887615517467081726857044702769629701041868944082607018962494533195330499243886608329316659828847235638862441888937134653636360927395659553470640708895653792784228063033312404329123856324263207638854399467447922736921929593956132103682497741296543361548395506485679144779010892979620990669558337005830172082611394723610078145423891383832477306703793762813802193795147698086001406334112843822248882858897330782419678737831418055477344854956296523080235040147149534805681655326863861699813806998892918249047633932258222138490407234830146095062103038155731540652024365667833442890760015263144643675018808345430467002449061456653658303910076157604724327585746475485140962934448677742350967719941206991128894897815557512482967503246156967473599454590023892755486361231999926610605887389798703949177691921027149927765650541960315762875964184665531347482529676576296959834076299500845878936805105677381584571724835756836201321914090413313056340548173584176714331738458060471978471595197650845349755582564273495088182791369794642979574611147492442611347059274346456426497566922588274830350048309828836234190817255166427503913644088219301002158892472180053743889100787020477332891414429026342024244208292384639849882641322521934839099986348189516153214717198400504506514482584101310073838783420987109441827045079351675913716689101235418206796127467947157659436600362291453236095525897026808198047518759951097163751403264966680448579822385863133567524557638096876946905678132358757792628585023305750600569499180575132683940768423695832422245013569271046562861285433224801740170078339093988253436995116127920131426896832618195452408557979273662667238140922632355969729349615875268889232435644577564308195879307060210548480720236441027080994045729961630784130053388801231956429914091861094701470748126310219891124925785668439261637860795208655313671772902951685046726061333848915114519889772957684726751662391341626921790635745078587151615176840799006848888260131650637408266382543277121073647680857708907448740862581546652526188989248248100947085198127935076940690308364056248360088253636196112969291111387434922293811003509921197744990967602766630268410535217424324268351157678928956895827910125593555689633272810366850214800232511078305850746776543690305396258209110389749025244596185680441738119834912268256899674501187610237686381633176724163037585354015600705046003222621873450436952855153606150486563666530972829513933476878584955806299838559119247976232506716601741058529880173439529897395386386619603181550161385029850507617356311393297954524362015467106418283127770601906380490896906063391453236799597256656631712336972272668193933210195774537484554810449769521052334491631388373464096146957549646333063575128046313224384777164856240930774250007049985272765042611518824239331990288359359098060893964197912504441935674314306804883869681021517964885355605036871918467152960648302466902385103100985932882301025638347413560695873203203933613016832569794487777814127250938623152110423087277813317434230002796021687815268088518445279817660181283247263485438676965727246597212389679614187376984914130019349192292135795467216398222046846622471281736501058057150548076419137804143006611942726971319092316736439754872125768168282481140591893149270255516041529130792269467059240130451460552740056276234789774929422680310339217937489195588001266476951264212765053993578106014762896315875520543526018996172371166781868337401942923441977961770780407361763563091617206447694962810452530637716241985402808452662451427059431729731824781716496230626436991475453214104403430799659735784623649155284169920548789497145725360085547623541649615105890654472118196950298186316114485174033242784007771387201746865880094829680473950694345640305043096108391544036942201393433803433516031310189935682034967913804627713099040280025952570651614369384224171815306479342233870483343951982130608976478598544276049391879712373515390219392690709333852865582402375079102358905683858808017550728664445309402976349211886327585951002119121798413762779265141355557129595743437861315711632194570041207767636853622776344343327403263584736263727377758195012510807891636195944969038283495899373686611412743875397479832030173573124853663795636024625631728471441072859312223056151285128389067851013760873936721734663791115750254585381445878247376607965501429879718976274344776700802691013728279337288370186366757625707450192271690783757705912155721720440889280643940144062623450266552174651296994001890220299710744490827553700151617267932049445937198327829888931341043911634232521084200477833938708830059093148240499093012871121393911947572568817661961207508538393782318138160186216010946866831260310945936186503707913198912551380627092828174937177766785676986912710644068892710195685980006075712113693565954146250072966901722971730209971963021887686456001146686013120907288284580994732864659960301514668180490979827252278589411342259232694563224122277827320149629869663413476669363283091743739317647642341013175688395336146262966339049215198570720935117567056836308542111607891654616644173238549183162428031040442953967285135236857435687082816813359734806561909131767971050540504668053135811219067351031637028863377566223311514324243401511195688674792491679974884942345159367485646697257753168211279066045319273479961712234268562569126125827725121474525553484169263926985459366717810342593131575851582043019942441256044379143630673254533625705666365626338319280690236040407634538147955077995314340449918910685149712967989615317126036787134751266663891316467298813248561612358461420349319783836213302809090685959818438207296515578664689427521608891299773174467163936925876848233450580804904124862430005535012256486927324880234009582814879924142396645308869318749096561730357511877944115011147096229991744292813247982712864665455919603372408980750420296335066433562883199446458057564184798991199098544156405802187886514613296570667414248223963886280058084125342290383075049607996160200258935605136688651637822586378955036969661849226871858894050849230821142115061663563405638033271262193808700422760258526662670464713468446182775843431747318547556261814314703275835031890141344465912899548100497421780888737429656517993305282196500934003844184413302416300274969228765641980569548955644914594668372924908006503604653163377206586708389662001335383212586680228263332787757229710221498743301779395410556766911355302886625865754113209620384298108600220521969462820854979981401461215316354227787581202264291131540189697508694819722369996132999504165586299536564369866775389716284622015593287051145867641191437213804392805001372421255569056253759816781200437956856676923194451824310089333659071680824949827572646433170007638706912458377376023506070812098805838596892314670247886322260132286771812906150944697703986934569314324775605604730504738918598219351135927250474952619679260816948842408180680975561717716824099616284882495860381889566110309059475815104708457298326471335267193098592014958539121043833871558444978925711198515275413201988488262028032333262861043724632584716772945153363975786914409934004118281526229095152662772154696977642013464018270175642959684031569622059215106742929704543495970422714949685208353985196079152992909528519504460966969859743303805590583928381481940456652014758457831947929753349217279080944566873760369000573742092748342449349465269209413283988321296502784626659902482478557806685507403079851329469769049230409819929558469758704210779958437456480228562600886590849349076379103915634425595003155192215240342515245543390943853585977753850558740686132693848399558814454953090904217832463833677965356740450384267630716196902403872152004888182578852935955811775896706862430916663668283214660560787521709854775294350709960455095394126574963569936900201222738898309628943244626008798822206361507330894754265521583715329355447938038942725180288753930997598020416789624160049518737109109367194920053228792308867004098540598504696934527934232285229939253403716016002613150987953260052993042479820204523975014494523425563337506416202388974199841297969854606275184068494211244389118522723209756032156817243405605877648430267143300452377269594263403335032895181744505077228937667633444232008985716599575174654626887790614509441198424668489226853893271013906537209736224554099705716605969705549306528578637648774492351568033205837946627720924245721590589731622023804997561701518583895325455017170971641909807496067759874513541960103002370435422661490724726118863118891039088533285444898047109398190316939747763545460822810769268064929541219308773423422383881837997339983582727483415237865908238168673754872059942677720041507015876078668131478768374697777031354602686410320296098380906811634840697615106188198534036953248455204488141992484218749113069187860610389596141069177008522227072679026995940230772469599785910517876867642789679269987389229486383185098333392676789338784391533697179892829089033371687255114003982829362585322178958989323316278998039636865134954300799135402507128128225278423471539451364049676152225118083384677787637418626298647623248628391043508749851403901530357711686145377289923913830515474720764508789933595763269672245735559411258387103958509792960087702599492877024623886967056747403179149533604578752584778766127916112229184625737337938703180776272133614234475179649591685061328171962570335143992510322789076127603030441397956152631192577795193535420863337939082553614580543725368447467405213870502734119039364811515435769085352992828109996668693036324528130055978438350253234510630772857249327370882108669823280916052166533010936138351853554777536120342409222476486257544034693927049938297626013956645741801146087957516977505022007998656561846506295127504450355678528850087693918502581427746460337990964847118479652612360987366022564299613225484949188180920286080215219296226876257342650652801466226934537019967848667240204427370746028168208403749361983084049206274259545780970160118209433099185651236083085790357192622713581928182649180854096366254049876934756660750670378791238946808987343257558223739033424721856159258900975721395294002334320449063821135003431276804266596724527675346258648923653897762890786942290569618295618557359398114499551424229502926119182435127478040397220342943928103498521522125357855879864159811291511571139610322367488218890602263528308970185594851783863109885802635935643016645252638834169667122883094338346686641565901649231791169943128655880445386416170682364592059736901846223090839762377816517045423642917236037376199722397849637652742313144785734467059213990628612922292861962454398500469368630312178556720640599423258249628510200594572101606927197570783175702491900762316579617460091237776655503817864606454705941651108443637665532713223687498971232863169782759886692477849721511513148769868614823687686819627262810930265913090418853953467364297746387949256504026591652701131658439230836011528082733507327089901523259513182099423777344846501914955442567908688355003271596159403030679566919017711930278969979630882944683827766226421443425612335768818851285820760845767451578524059624334223885481084425399143284386815175897208057406180724586294310249525167296488364753845242373789075677990535749457156669195792521570488501857809040314374623774471963094086551539067060604758348766919019211442475605337891290117733669082778925278534445489631784884741625475566556783639338030963359137661618608859255654078077901902221368626638528276231147256822627203502273432463763076723544399279737757369458165842110130399607439817819614993617925477490856109398668843674964528801396742174869905743629160892819913280872872538670036972501736142821744726480737777861289536110030459714197357664338376470478214563772231940625027532994347561275736651984387713526603346931453983011550397473873704693262200246240486590771055719248611511086290325697364666966380702949865042581785280997527864926451921634745392307227396546373176584760803504017869383720892548947890774568159471254092699211238764673090049171685115939830187723942575197440416777005508212283491323382844446838794452553457377319407968659327161766490573381141353628926776598480659537752527095789466096318181609381305297350398313120479237686520664598594032262864066580354886210694001251956625257669344966363075409950827449879465733188844822462218360141133459852325181075640328953549440897668867258788346479848419387471603310214764600446790749169432138437513112914757971188276588615167359028762578114437481213749931538708004074381978504158952928218200871600668472214111717282661656520955273203614032368597493697582378174650738443761174111299677964065509621139835587752928244836732816821864140231017205861538407378318321762472469176286090542572485182045246657264161429583748390394067966535654703594435008422225443451822802188421091819421115181142557823956299243161995747133575683597256394488586812022625438702656416370841620702187477774096305726585404597810751999929850901225684630213152713644841226042724333609896478499227453458252004394939986375380030470269160961708690649157894640658487604315827497087683168211828518775489570878424695497044192733289112243188820698572971118657872336663452430279252299034179139455576374597585142055540513530907256099167853076108056340279876595352271946524363752094004454833368364145395839790991765631365191964864979613429318277628332964686382496805617783226897507615069064789586003364784705277415895312261568093111542635890340271385545124004168172499017502468804741493367488882533109328465059870153826444296758851620305742264319648810814060381412758994741579125988791670687243654370106591937772022657067983402654362224277172564389124345755918208037635779987719999905891397629072736170529730007133976493985073396019338061025331696941453042324659431152693162819283299141880866873767331310103230534276039091627745083139161114135583050489935565740493194545376734154933862840667842339774630140449070298962206056663746887022896335684233204611174948137750123458816798593521131460499602427820960186888404659171974495167090775209023467501342670848078842990541159984909357771430758249988984047563591577277160563096069634257789697340676274879056013961679564718928760333507051664354850560635906927646406450150278300926188338302784955241266434950277375636455894630395999149825126053769698218856452579883211059556304482294741074522609938555882934005751243928840275895269793560335801073548535477823471941235557671700293442654493761891248621667984859402229546562014252660839953972902548270001998123184225492613750628194485714191109001756200134661537455474021273320939557870562989381485449617196611139620107112260477434780183993683452055270388494738750949400509757588715057790840128184726194999044183286167849743931114920522792213881342377093661309898949224550445474813811139294418876881423124691116859766600734027114611292185814507594686054682818115194969832957944518855448332924868535533462997118248721946768776782574841236145660961291515753395831757345468263965335131255805745055904544033301479800339360850536777536634544815419401734524900270252017641912084178760243834613172765338122232964895948635022485464618948300257095737441533380207997538428282268791536484509800405224142883434978139401503140087242189290152907079497213942999759804119671924765442434452168273216594999805521730875880323242304350174536472973070753016498005166785103913560332631844366048744433037550931178017573777434661157345127484598930543064363026093124611018392906425409433269722407704328043757286250661052954811289423477477681505494798523505944623302883061820611317498403523974395887054030221826181165678392784780246780360969657289845730436916288460295513051432205266617488198381674051718647825314512159464569756186399850144153961892428440734858768075141578510097502036661585375665398974278894133783627500868141255207245247137946858224012631332774550315389857085467996287254111031132591195951944615948784540105190785492029473209159851219734615320303286716201316803303452809111795153730081082285334005139607785267140718995451911320948815574845965572400090012364875222180628381438963901550344901493514943394563766965527937060330570017536239400066755009232163484682388867985405561166197381546736926216923319689867968690198426890486566805016228716220843217812022945345064305198418529471293428822059252046850256791797407326651794308314825268385280144822943573068758272535581763251541802576792852095209223071515112552119316785295068214486721286641914990395330596864443868716726341370142183698158809708245564818439157096058861634896376297943779426466475599974355048488396477142068930361788441894853824767374280926748585007827093315478677290315290355099286217057368316587672145137426752924470037562907216756997919174874154151171817239526519854006933479600732822071246532622833234037901292604561156349856554740865104833273807601698724681044351750921782503077076375426835935896918926325139586329603232002771796247576339982974209076637970222268155585834570756309916356352955721207571887249190442377100420834387755437407627580297993021574767483269017479245938756569478435625065964051597283640359819581438103640849776006244548303473858169425282271404662953975911527047880418286754059714084978401336525514554683865612867034210437866860975187009202840159602960015409414350401191240086561482599947805290720015065682281112755317532438815396284775156695509061913675470048139890902201816065773450604093618002514907543919092293107848262529730970164130694358119090178399285910666372991325140508412464799705958809826076390237621246556578717244363871168029875597286781918204507542751897136420081237896412161057297595443072894097622239262662113027907580379632222631047053467584787149316911420767772625265009870761910912432913607675469396613803931882581216567060330096326739999620820767583977351855811734069125380796082386487972076588798944032308897510396592326655474957302261913007225457783827904676567871037352109123007618251867474016599192342828244031759227857451875950066582485362572020444660343259530519862586834911654887366128594938993047864020516755515999457133769133632539249504922735850528142800389218634356639281631654695270403043124424455414054842709655082218723432561569696751619061341864547543230929583034862615093638677621795686408379277799640770699947238142000844764344313993268456504003042360728655275162804919823861185936219559110901293881912848070311335190705398163517230976243175440656998540885001025354530168578574427798527037846967492415347256978066466714605765530916811244949126303623955360260500616288105088280911457907435206835620178088567881728799970572592815148816464237883172683718952762434985267612253300633467783165529407478643160021100118401029584867403723552637116296284810094344081280502297524799389922215574485003404094717371210554991250751136555617514582939388404360314612272596403052260514032969488050422436233769161448862668414214631081363366451395029004128833970595217413361431642165860441675592314895067845303576647268334750051689897377756559944285748599378493866808241835549620020098999362223224937413739261487679300590953247870963062305995823208584795722709738789787385116668382732596627753294356055462940293908370182827998190060644796500904185947565752401163419975309026765552688645436346673984819412251000221336506056669471535365934508460686229756770581503103266313259873711087389725367065247901754276389747481248800094303083654660358430877872395741264378147099636712616259938920856309152766128618912853430881240856588801634915454426682857792991258298679516641316481756973644438149225788800057923763438820891895233618951941605477181179856606847165549766486846222389282877325662994368618824253586440777524723291528031785654843666246490094883009599060982288571743308089073220844426053635591316626658258645658883547638343761975317786425463933976503133146748273175274070280004242214056244170248426085680199695709165875007859453918399556017215527273924168390955211739772754641845229429151337660965049073030513042802907117841610565040005528259466282382763971260736100619375219056815222431014165552231753097876251563950019215072447351945563390072226327449827441251172702541175211574716075874632697092925548288763937064787438358148029216696811712818298424996967021333559182500824315256073283923835023115197453900698947043162486762171495390949105093236639414429447545643460043768423990261530326220523491794508893307827836841054659493289398132958512130762714071140211020980882220257176541803755331807529300557921712298446959986731406995795153341055726357577009320820574034003051365435348853653341925844467858571606117978887439593146186338415719313646746105542045820857458625352428952850004186086421907801809074134941825083985567646747685733230933833288496183000733753182195303457736396090398789453511711632423779836325752932083272727933468037103969730001813666466243180043601582437146150296664206724036078404214433310496388053884722311107385976429912468873411864682557032813085102003929097092532944068123971726459555761019711851274349996931160466521640690775907707957204244736184387462495324753056488989693645100033024832850662146723397320736824890676892540753555204383824180462227906631390178177795460490808730705868206669373076206376471002292392623064276969737994070493172060000311226602517222300740625924146241396793326283324861474216391316639726812819544683309050644937734619444577811399973576920248087276342194823483532147530246428733072581978221031426765032136144014790050147853254536442890507504186181648674562564248566530392666588241869493494988026335736986733714055689475247235443199046778172011155808614493101194569718220404896345191703976631430805132439039236934215455231613621507796266936101426526843821324991167571344303582768425843194286619903484926276159170624227379580356178503985374880868702849754927353149162173688334061735917541535701766097802013512642221391116263448447461741033687467549935337469397537889377233729827053346774609756664251160337627916791129145574953257430354499637727057965075776431531644954792766793337933565298920598490596847832757818505370717823614621208858881777893783796327903239586430946820163760639416717003245888980645922361372438880751062994613896840169292312568226753857201844517978507908253096842738088999522235640283946809068445182136968043595980380133642917340464968017674834374845182091201821306204477330805435350112767751389685268351020782242252621315614377172071828444471330553192639220753980072743344645548574681145192770408501129007763813512458295926427831611406763972406027438458853546091345847076722586683980858692315663260984228851533601424969615983423549112736868873828752052545503932301157050326842754377170895712133235137155266017058066705031940534722580292906012828896363502409061285772742543575814531262599337442711758649694275483884997878566853796337779757029996068571974764586496616933478436152829087639960909655186102102471617595295979486028440092589680597887828452881546055362219865575759607650608898797893461314310233451384031291769664379965960419771339191873622091983255713179308601726327575698307994245607912656202120708339770633776303351437860351504055941253599791866336604854229742999448029966475593881778066189213489558676385466068644867384570589094079012987695676614158240386022848962019496780483850252099662428196906298807699861358504923291776544070899775281131487603212736230537445947315902580658645488788000911797087105646693114076324353162984371001019885389187704491599486593870685964838518249468688313895370286455733733930492672122044597459024532482288011929135275108428062260180619576168222632887008690893521794002061285942012473111890533920987241324644150116945496445862613505455973548794146640855299922368738579987856047605764902301089582508925152995795892833149712949624678091051245059538978575038149189770692407464901140215123830973663826286049726656518995091607214246801533528551829434168581967180343050995439615181906392562786989926264537944712428459737181547329549889854003086692127411695435157505130654389855475183032970931435493002633851445426384532445161922054550885745525908813256856228805853261262322379508155214305937456375388062382588507813136425766640983811209085721300349613502668212582636023099725140250566406303098463358860527462379270756335168174274603497215558355288596725786121938111063660201021966888672096041672251366328148545351774285753486076909294413973359834162791527528645491688657081332310312277350330657675746795303792864524421603280088749338090059621329362533895915510550858625936704079356867496204822945719262156434377791754765795538695715471145626302593456840752813852808818635977970580374251006183393028035346652253752984269495817919403164879262430771100847591911086737692779227128677488474206346753981332760887702844218925564556543862063034358062073307551371823700188125762150117378150843951737893841649800088984768968193536901384134882410919421980248270543907550215935118401201044685668032398602275253807858827713420136745802745438183764175815578259174575140633869342029557553547278316957920182866430369792646759090141793200875717891954176583094467362401453479478710623581407234750732024640972554282190983716227262655472862451198126597245624710195308441084195425969210099532113793830875575400151323034958169339773611052947746790367728080780891077367104242022419960567615507856152595468381353660369430633956880719321907232129201530272225427948622411418050281092118356222940381225503419006028278776595881269013173574373874995899594620184298019030962930820207074313584545589604549798066649667793335345172642805387502818508215968935650983824451186366214116602247956614393424946565625335817664541664100835930385004052342852013937903367855997529847375370011398701492996847025952138623744296701870004685866687728843916226875982649101431878014378217578005508751413968489495721132718994855996138202634115482143607213091149240875735057013640845022821199208779919011038860440464724823033239398243500599667147470737721456812411738197207590076695996793490379389871608210622955153973737267253855866122910080351249729683857652617477362969130811563876586185162704370015661110961086861896426567428190935164256487674373050584258244185943380424797806190428230064661959955778132121155880072425030347193789227893955867887538789676450862194772020708657340297336266005747988430444724954051093588470995566957412412180347443481868240238493533834080772019961791189465064354931660421888605903173784012754954720892158014094639077239973835162628114977050862778866606103707527514203324511559895857513265381814097155100070221357642428970429669460505942247215699864750601558797486847313998292432119168019147152632484075464861549657292551521802725754684295799340636686030672637313125787302843315738251107735192430443474566334057774334743575221656143284381144527404032538600315942853935507592583839721948979232107852677317888914649557518130610107208786208759355109833956100603195069518822139530968314675221630474988209494532420160652832967229127788749566799211416619140127311615930957466152404505935537833758340575744697711857922860223092663892202943040070417828691715865075311175858807973937320060334350745232446901219139487438065588741520753174926888614717779629631834084405550432436071869720938701219961731471769948334375641922877017846753502775060595148541899020610216509069082837197566181965118693547726639017323975896639950694899490716161363983510747469524715416530884630478175276603424513019589328105045283216681312834742412268551084543211463078492985886891904918461017105178141791182137876478885251149438246953425977543418705336516920908917986467075226682002119252036042611212634776385084603495897732199620124919034058768060481742073732238725289460035359736275590331954800249087193386104279996766930450805443921803299516668972296556390686295802104129949016427049006922887504456390314023808810168264647716146752176616816202348851190537068397769810060582670325554498353574978622234139587281335130495351220923959879096053305917330859144172867146025251172164924596759903224530016742827763485914169392868836065436779400712875882320438937930225599839124952709786867588286434025587984085473798625596614870778695849694964087367186850403135932802146934317478305755057373100264107237068603641018621620320054119008876059992812811145123389357023245931022380116373600738368178629726324978888361053527289882584952802542022779556909064766790507857605377518081055000564002912045750035755383519956162633916944612530386427492292080943648074982458795465726459097903003589320475818580837158035883946551481402410919417343804450590694398134092487570055116738993839178795293962957417892983924714400818289041713493277023991179423674992660929381765460043369171239448974597820603173518666444099778674483095285859689210793492150932529925157521685117355343048055572147388163496457722004668480877280417699275174091467734598871757694936910066767184412022696335837566825955297809977475103135514170227711716518383154008499401886776708127421719545811567191852202376884555943086842729764948683239433835779466885995959591229225278037075951620420308933725534643004025800430170062940575585107121733746387669755981251771656416211906037941403878256144739256479014663058978379811382972353791757569731833747043401414098425223457930023676854233543455544552239741110389450698255069476958909784863700758787902712829544284220224463475162571283084046352358218918586197457332454135141030550431709860870710856953386209217943858782451355809094892103768854437017574440589856048596134748747358972871089705750093130303529586472370645499397186813151687943063685884126470649738345214042966226163780745728830180051724901079348810724475519290725549470169476326212518491050802472833009013720830087435048094704168444913812765064217980349544664471242485010041318423979154470098596682537391212355400994845906873463562500700605779695876692496846166064506772303525350980906179384828070878582642251777540579477662292108948291482921982410679762844086074716292452622645679730327821580467634245171126510180668793344186584154809853871493076141760359230105420563128745866459782645471347153966227447778383086529557372824663947882613654951582108831599065133565577357297220881864530762617151150906403474116539642060112951266826899487749184253778230436245661566403654540096874277225573308039830774100255231807092125928995705544026446325896906245794706884814600479066376645807817355980237207356325316703756408775687672791803964138037476180658444601650193147221121926869431821570668810871637897588457100510882538682193503470033315870497642140048670791157113160574327403168526911875185279313323934534013132454993277624548654200592448384175908313324066867520733192993150545856779197583855506091295370233129646472044482423088265736352293190382781975944373963262063842726029954377488759847147234456218886275310568262964413561772409244295698821492635915846412753096228468001590940217640873250766235445181418432962772543950773836763925908047254044759430740552910620872512718215976045530493400119944877530705484691996253482850384105086682247426464700731594344880739513788520883922035870072851195767149510370173708758000271302553980507508992491323369765789527660215060851016564011959483912616780838411154901820675310804792987242129469922879233481993870375831504055280484500922010854276474011175252556035114801387293308349491193669226098455188455545949869083876082730547349695424449481407433887467100906366562287586080594872738976432654482234714788459286201952255070818137830686192356240596380262377907648230468543286760939668938833321061823841150784488901431395730829568766535869402004977009886131600673723101823214362320799716490787632953118517177351231225833449288501441479050179794506579895280780525755524984011567312592972672889205114004548072199693950337303204389567948157842804922260801792187830330880451259882062993641224052830565854850841289678251065436249034700302579770760306386012063749005594399465299259810580627656106306704947769167024903450264569196570441816464390951177114024554581451183844064446820332575817745057352935522427544202798031272848266832616314360843875686352163287607512506798114571462953547860327792365499884552610386426501542320425372009117439834073221249177650142977688134805860448223922514381741123739805288046942404576749070891222260167867993349358724517150852963746291321511136239835958198836777173847992559849471509652465725616509849513476725640310308448538716534818503068467038064261324081370671357597421868884509205318195715532045882770454105538111378851013212642211183298971045981807436525534733878241876827579790890119475959678943139692612429474165018327924391717737853995756558004110362017199634687345816840870011652313755852250586005213968652646660317698635662838563247480188544358595931320898020971412614377050758561601327593342545968222054796247877686831227966665614065765807031818001897905176307353051005130522734886508552986936534965236654754400565278612405017247827456810001304436878741071573570376643805286797324372151612831111956334973484439789190878869246651287877836778469961810012375428498030016487828957636805302075624917563686247598081439389522312369343309588340116625297086236161022648927436486018869909550340635713991361777454694296068313310711230261471457527573636487615326090350719811781950597320998147778778467703966045595494892488292235729824382580290334916888653652203059800220590135377781314403982850102049970780307626588178978312502997809454020472372873800730003897868609689275746301365650317826982964108907977948989795005113591334994921151673190769049331507207591968051208219358116991034877864773406893593631106272506057616952112466494457201934723604230066097924123860689506134973017649184658255588770444583317488482394712584528964379527233203135734928020129081577671714909243812859050735216225506872948345803020623624210091039828862416168248518566206545680134624443129657541447941067190934306838156446036663020297430301631693482499036660808440427820470710824177928323699829529467892084653177145046854386348495817436549070046446421889691646157939568951419580682889798858910039153005647007868016436749810157213302142346246376635728918208916880582056955744005540871128519327340807079520695414451089983463841037710812855656346716597293139499177148444261554197464136903651100520688163168264629591190757678408772848516949799426964478372067589354825715788452968494276543105228050498317538318396547642141633946254445893428100222335919331455426320020643985238442698699090247851557153809828992488535550444378132652256371809837005193723079811175277791853693023982791576883649558125719770171975707399866347230581970981374436065962877507410775260898456127309730912424647345121267370880401944008908114679730081194766477566828479726400527457548059277636480898917186607687933033879184797505632208485988416962136595541843483530413244243803071293602321293919168236907355153830534030066367611064273109428017421928797726376625934542366586514443386972019279420033209578663036537002228802413184461371287004210040499310316422306032465128559830119097995250332561926486213762786424337955718220963988002344409021045474134375473091720839517703224583879529995064249729087041021018455075714196263634787017209495832461316915687707847544726655156154210674594402867708660201067146364462657776661355487049066301959999997173122618409887335517444175900525285686660939080128701594503003026466536649050282278524236313865931074255796940962523709988623359340537097999130615450922268177299653897300819464568321764078442651491016354598202536475937153587415566811307154307706223351222657600961151278175257760623389338892232693377678602490737513672174294921809305422558305303809375006986494301687006171024077551978154459176900966964458674542430416672941788950422212863966594284250624664883018627811687106865238234163957080293327165863766822027200920426080643995107365648078886082831215140734317207921764306953536323557254829397646357875192370386500641498502814689626106503837504193094865493663388240506199152974434244871101982866517284161565297171801318191847166999074146995398053861009356775757584519871151086449760341102136688441701242301107857538221578527836572292810505715629381781316224702477301934645719895393597866668059110308962859195685555714035625182169216526229587363836876626142932324644912403460203310956876193153076571715322793174135076103265719020150127403390816295919312859262612146850601380091427838599456809317581779661883429997398662104877542205086027639924313198281127417042424067644276693192248476537454476030658827670603702540361643557128615053496164651052820513500712093221753443495370819586982680502513632763505068528385914412551587012489876766524720549470192058869129158042513578678672936789031248718354820361547944988842398782474521985154999456269051557638522075564926019040669763012190560128979231791785985904415200728511023026843747503337772235471397339773641701313657013652213506666172201376876258459659043552948547631541606234880487479212545678395117617500947659024127817273390779438634919571944518909933510931341015880260736577569394700376354948961232688749277513248656004030813894570780249431968214364098893464766822153702349092361097957414727429518658324815619534679432281389646841730667098634917175219898006872673117933773524564053607947222831190385625009975275657197475795034833314847018426066813428825882102748090664912157719476674610887766479943849542908182403843815999557152980073195649817086566259413123888161855527094686104974638645411850295627322490678456073410397203777550788698522012577863964155567898966624526572208175256210539156346570935705033965067751626064579347246303106491725571650886912804335114823075833163964009797953824867668425244984397543254639988207826787266931535942240109205887341627003004349205446573974432673281175390848763551469754797441186853962761844825356422278583820256292724357410740265984004439244201257647015859837845764725740640814305241630466730911060978985558122402521220265417099625692257012631056401246717378901947074880446194434170345646968340366199612886920632369731212198933476010363619864538500726783346162433149591994314097690889021606706502414537586180232440722361166248943050274399351324344365099023727088387799424399843576927081576551187647274386071411945724065164844729244427730429677731979006114488681409566656403944992602174141293394615508122349280128720533544577352970483501340151642043601948775514179139903329228870212695699174033922843405592651569556492440800670402555810359358053255442792649545003367637985780572057654453645786488874892426884845525489452129115657514834152171075570792947580195827986441299881502816379713320426993749383991578288637853637854997401440432076662947378243802390920606281969011999245748805162927203386568030383366739417838162033879588351284018455904727640925200631830354298709008658247848599896707813726249599288457103903306181653017414707657012715548606987332462243068740477345824307766988774906084683456239237485471869139526734816845595563612114483772179370419907901294200387144165515535975393081999199674596072916145832519732085907220890802279140468130234607972217509781243221003704445833749186286065622037491899197631496023021057709123232076100197802609986676201902160745182742479985559269269566365877764939607825585756697313501470956326254254630079562866757025559114616053569562215434561797741856466663910220934879759334925585203064808439426928720393051684319504868218415058193097045047949543915460875859895106094825205058543490925338463373814971940504621717044288123830177936767681459233276885361139739872737621802229546594505379771913497279945523912446462697514925422394595248345385836159242108476955670463241357595596303944347639960395912387204850480049500828583135780541052216013060358055388780915824171696555096584250955850904221076398777462636689986731454680188948528487660572667137946743765591666111879647175452385598574945293441019917434584775005851067912667415421127593153991465068068580231559292189208898270715816204498344494376186035376069051560782710552318983892804801464463690033236026469742128466436845974483664956601794506560781369248513924571178931133506376788958249144734422651899765732685697553889650809688986113083623374348000596613290931395521716386440101082021524182763470041662758170948539810713900250880418724169211137600576395746741617951654575324014291037662315654533995771651969496638713992936812667960397838097090515101720413155856705474433116936547300704325858393832082952303373969851597137023544247804162020732390748746257930614159686905079365265598942506922910801803720702212981214968664322868907650647394865240889122150002106040074276613852432315137481290337369327031593365250267727403411764962623789439784480735962092930541838150317826458896947799393620736635180204974842029099970177473058393782255652505231182319375506668694523323532399074153569577427912960461217824819992998918650635237116994160082824761615349076983094873423390803789316469293345437430194917950301908975998620258444357760075715930883476365272507243016327495264058219950271242269528425764527564806442541592997406172165412396368302381995189574994431115551267312997764436219424898587160054425354550441860179865278524842623792107091807338571079924313010994640621101269425411834472026575908971628082752430031358306060131260694339368434697805346765295896302560990378245728477765034843020605059638612913346262834510442302735726522632352412154916792674830950121540616162132136312304692804174672015724761618800754340759175695496311756647880023412868532432392368336288415076882776589707251356405942624548461588136430628092856291656366743029120220041020682575622416636426948543433422812265731393893240428827368318681381306876320592099320810094500738394140631333521609846775481261907064627013377407351168821329647766745481602865768986709974077998128602736771414996526162242713057463351435127226832725307839458248056653361917510467690599912127558929574713645064499503191821300801962620951760960541411909272753877700395880871680612471799750506917313913441087240658992343039748731916270999415852090884387343355490729926946880732132031591944426671727736850382332944949848175143217270218290183246977901493470348001324143088703736558053062196973820583916965109998085671598872434779842514837049372531988213746162828750343699931294269376186823765738861901232717134450304504756176442914125792116422059882433919941432188377217040352125825793908404321370307838484380516352900729356311155736121911215609976461987178487273407328488819654202541773840762385830534705667468349547055476385615471548851102520235879484933849449876816513557457021940347503391057439791167471422921416476319189444669614639317056397031774529080617601015403761213507265434829926990309368860773837565128971684151530945582054609900463022856596010061810003644006934479041399517821454303316321245367842318758528100983145149336599303268346190364783285673294140760993120505374404920438390035410096370190358079853767568522926918348875840499115785001142059533218639940287389527000445339922670562285363415699286157965007023574246819344255505460462787467042054666141986311083580606605888872393410799801587000982030744344009789579278085806420934887234990458357773416690433839514508827460672411546056004339225005310245230157128400206993903911779961713021213681068860225027511838276800138589065974991891540148515657739587321557185196706221648386347839317697982849548900856304879104746829713672851616966082177808483873147882251480588696949199657055692096833663191810946600689150802066649574265290466721636709538642844899493226179436658546562122997943856864809330312778115167353520261971983263655159731562308416151631596777836729011455244921342739894784922585337521168483369286461206463923010825928102963330500282166615538481098848695120885540792703837363894781987790055996350332490591869051325229688580934264103414924853653700531297883366746341944956801324360374064747786774126895172787793982220302232765105313504256479955753090447384400066795061552443135165293717132862321188176218030852436901967138956827369966766941314831126445331856382134362980073597330285783368866869276157156588967561539550202500364845965493822971433322055811096246220742294316375625834952426659758135691057005774346965008666755474732322644191973384372223800614659671235785210643706583191247493144616600159699187577753988013267343140909825027047023124195545413369873285380592058720860753456679571582828919122818710759725333438701389966735066998377800208950734225281544933195856737411626199667823768356382972084388951810177279719303402492899070416835647820357051907041866829571913761384519699864599711962681614551329248987191061302410547227892150406946477186895424150734784142670784370147832680864497794924451513095354213881959152533028430440815609175249515464938865956118217966389385322235161037540409298443319201122122720968115174233218632092584955309924305034867806493222264852146355975285181516409505602502302164395688974333007282923835857825687952002354962920163169422861630512210116893590384940654404297773069949382303569138476171717913635053866938399084393568826561855622763994723579233728177271294787393010399199911209487517821898286211182863411028475091229926772258475261971098490322385749661608334686531881697715354816894699809605711161567535042362847957966130234382781835036322985036841346994019872396457911534066136157708356714287404384297079427339750592945373749167338515220551694492923394605958042386197648343486781485598098384290640105096870545129872131443929804523859115491599130667589491115084671190875800227736243301684420876527254289088822829019210052698599186284414211599024872430731148507712888083364363022994689790273677089794893558452131802440598174547056225983765586409765695419393500501316813133731303618833269397953963482376817971260886018189702892075585706791310450897265881649806989815152244789829354227194102653764839031141471558681363934295917409844929553519539529096006693750439514922396917822048004518286393306271598225424133617739065819221313737701466402280417947499783592249645410563636915523799691636806477775655099696813789622110498740918351081206684067057179364927432096971299574819815394062239058959930894911980126988390258726844119141779884142451925323885947524753827725257899248667672560691784120449195474688052421353344271583553040887024556133205567166905005428130533887637937583939992159458851934259836366059990857546308072983047045763830057122539672599095098371686734435815039513221886381988141353632232614173251941408629907954853890305173188220339975570205540816301472324670267150703377855764171716590578291231369695471677411710723635435655619025127913526984522444922461474491400044595414524662561358943124540975630385263667223479409112635536583270771510659005988607167709588063218119404569369451774048067127400374543965849482508982761228725592680199618309380399535233381161368192181459842711922040759906521058360403720732644121328184265296392119056634065132214057704361503146845596630270681465006229679626658215785919863792599297400322937816293391481630510790012133477740355736554837444128241937246936670215986126445698846532344120003252370111566708239229983967747674680818078037935052593402948215626046127982103193492770820306221517625430125651938927095542140353310665144266563482874041329600741160676188497086237636746971262132288098660703387304797248810187684477107895182534990567226221073520983986741826941011350974858156089261612658395847532129210127140061715673531826333441463305000658422842235596907609727609338607505850633093232475748682159195005284519556147322849559030721159385763447365720431222613329206690954012863528813194075804141556649757407580893516900335198130606980840224031635917070644497498836053245200272445513192114299965446336728379681981772076376975456984821179759127755557486928879936523203655038830378678129754559136968248127673704479351650615185906868710633228264734193225023341683231127758936466880720008213784353489037648173120881320597275751087103920370233119054344442570889521074155786948993296403927114087863082527031107903784814532955745965914698409755263631677241000614526813572799587416351611090642687935217410649430388798663064662989511866013511717694563860296081825221409819975981904314723368061907526428592684873020408899775958945446094277792083249013599319056615221408311543469365205747343923854799531946434034556285740368682518137795007692511197277612813554459214643642168086155964900547260057752488828177132634461832922765818980465863898049905857652182167398738488300292991062440547491112262663510043070369887185848598294927052646730326887008494692331579266817226660156219749406358658664663602464019433153551114680291975324766956733592646254101702401579530511407659532824394008728904157246973869175440190357071921840755352572191814381766600730099231462678567509801722086046701628460719587645431219219014436816523996247824042427750108874464558640399309680176961500380082764002460317559059826568200429092985895549018906362503645874055368032245371016275954263977668208476415310425818403416735724177598893439159349388066166744258309682155979662858858954938717396284261798557087610562333285700795040837594265300286676102566233359620929556949097165051235924518984324702135852770727283537767522339944464780830203601342521059522668519420759659296443563110672178554557383571318991231709761063571386985423292687561143542131873563466081254480127529902387895141828997955351791943565735349817995904056441683504668098974390266621216929608804137363799569840823275884754355536810567502131026400782442949505173207357248377758582338153833468159706518384331193426452016111151302585396104207114470939440263664248695204626471432294678771098909927297290784237601502069381822090177506303791966638358558903598434981779662176962187441528097042582813795687527843984877008855792940064888040117111116085771111491803002955363789420571921561937185843726814939388916755453322653056273119808092302464500195829373713414293138181214771886565914695780344488781758701069148874659782369456127698298270411569987769219453668353744759300156115688185449616139814011629262123784939856010438391739612930163343754391082968030972528610642574879123437360250796373782488135523453236237854961219873096509981415077834202902056323180537001342905768107664722654125540129764642318566095587662001550848124334951786493022574752900383455823712259782818315601369938617692308319994052988894812985252261261049804307516834278867053809603890720906099649486909238121306787450583430884604999586742434140929109846812339297856644950829953257169387922694539469081792929384670869757247842282559346251709824871914776363576109413555076961991523300600289980375358089534319056861934705485458303022271146118575074791933242000169013235673307513620028006280388151983704305520807828900327106663273018328559581799079442353416459030448173514658776171292998478223409990886303086021409597400252062128960500356891228469156926147861420306409753641237888875877817525656406790846395827938859966843961036513199922396265401419606226963472287347412224121963586465091827860736340268787942984372731092730950035962897043892838924022764613280699793262323040788026467502575812580081812882809617383665038863437484949398613793189584920163990386539633841787440644712740359348704364692255148448968659694983267157168690358076762000818024473758918111060931557914282533374585849492302330895881212429931394374936899984440437479404875292548828185506567081011711788704020403541250568013054520762229312886488770274151441105143368597650028491726796318995978778383585568618448823702432542830456590749030712776632452167331138503034210859316828034537514568000328750436129911988238841087624975153021713044988419625198966122233625957776813407012848042371354060135679933924464055331119022150215692896486339352880388613142251079504368894656798397748791531466921171845476021669135814696645803036289918579553750767431103871229498765529929704503686495783515698019474421282329885463587262874160353199359256377360839306720561001825757241751018175254022421670659388221336462841329248231928314789450920508748174888416952943873607732588978216707685620799606986032368637803790053803471250632845270834866972708905887352128849315367688355811562299519216945301381438231672424589209423580647754933446302722603136138407833850224708075353710697023935066442359899106334657736806196177281594143255378686014245424744117942123109260866880393441178793795973843988098378342205195010409130735675725059055903389400567276624644855134779054327825480618198309558808621111032129233819446588857181420701167547213366560748589953505578372469853093028900015787455557820257569711561751871897813966360559661311128214632394370846958682285936300966751428798453855525942352356970192780864696561139849330383624298728900208968400778283218716419182410898549111608046284339756479752536200274393265659824671483842402920186803545076892822048032685470657447742042703645683963039531638571614881082832375190884354911901815451629261682186651563397870713512494775641728797144363110897531968878713500382004524622364169391983805868859922565130454267564940414037489763181102665101638753548464498372500642994914580914958561942482814709166509499988514412860716109505113839110451004684438491742342765233790289661281914591515820540789007132877553586520684010024223723448377997485169605993283561875000129299151437017835899752002392063756323725634340318902768010372382746769977421142872846526112698401562929908783770093828425514640804555707761770138418706535133658934722170834039897335671856404348759792957750265517032220295157774505156643982614322933069989001800839527384944836546034558000914785278521225394159761765037041572979964761254890216637405954836708088590399795202150398474583231037757989148971057406507271981890023354282210073113601584407358973254734621277468007433295561662492870312268280532981304461844249016691958266629568314184286221389129172598009337183952751889823558689938206982739578246916069805526287514106648320891193159517928704703941791818957009217530481408664711548900460306954891836394250132933198609741419685530283608483309179790623667553915697863391211840920901043937507672080845194010032977167839039858761254394237491417732467659583532077357281255825988246549017512548342492826078205741580270995275878146778633768728728514313811477423856051244874985798752860785109153637963298692859264142738437479463250290332280485790057319803639732906228212278410872436661823195340199370262340296937908529495957900231374155056558717540369234068809009925832656355294212747375238585173315938538176896066382089237802291980940621388855902061160827059788905435078693497405980331966111846047505653421142693992460260711589654189286023324392615550746805588641727986630940923646316531990854634001779760360169575195527909335857580792473160843742611324963473375472964962333761417646372591513248782527859648779383750408521912924794789038836506286578476293523404618599817922975070784818948960591559069636870143927850208579020594764922335055159537337056475613489140336584845431311455363751490207800826540257291705763505599217731872483297469936957299521935802113760909767914243106545283686386386524454701699838087427474345995446027557431365707803097748815806681528097215948174111125181756856747396403796034540767535411450239518329597020176092848609160471349352442962411578330488440083735933984549564743339765158063653508675720259290739474157509317828440370874922350129569839603061070537307832123481277033293680458647529980899857986993047037690337935396639039927567754009317513688867351601269210664567011070232145092872520561587343229007041301238404750238399445418626057082209850532965072233135320604107118536595657459411835489470129596539011882566735714844944930228840179694083146121791351933004098570791822200357211966325809258121629920190343914991692764680932608364216944963753121656658678900734982361893255409787016259555301170970748364688182490168746170748353924598560365466888099216066709770750381423097291293729350076732626461756539306035564080443540233002465011481543989928721897684552820664311801163350304981740853226087276998231927202823278472417460133228060974766596074635204190474150431767911897397354440359376954982508838037707852945297012108069502832711510208904478159592931648397740352491579616546282173990327017793967436380240190075920169608074109482354238767706492787439569496028006463524682691951926280020645787838531068398777461064202455041776056940084826348769116674398360999927316358012966542385117304509695050378031462261769714639115698176123731342003423327446724978429161952073001954345235692859441829477567483981670419023092024899034006864240471622991495186475138073834031992307627364750427814043514411587014553575492609741017519497746348912689829261604393593638020965068644229666257679477571620430275577862966883267247680014500226674370150074153649831624444491080696100290259218494841602617505031907832477825598870328753664302263335679554271883891163088286866998905438649580641677076390383831937768523473833143518972324043849444915886429032383152352972866556622376432987150496651739338672851037637428717057219103215519998821435230668850359525267872924883219715316366027163396435678816571704311237213438290418264532637700838630816500960773982476044871718363319532919657108056508873870925222176288713173733180177048448898862711462660401660385457078327045454100988771390306786664378150220540603933407923926378001345197524246674364480313187013879378091953533415244936116828712769862815163868834194799049535541082705619789342613008248182573433558779752915814712934173763368586098452818632685157678023381706407213983827575876229761104613566158443231244467408794149010596636261657833546756860744778109140889318420691531086369814584458436416524524805830211581688542238635505992293724178618916667696530965514336288053623339862756363911032239087108260860887728793537946805230270994742306068031630106743396662972684215440588164166455022487486766086163987507911561630719333860422259777626257920015018305128999205131379236465578033910808309470805336560988706817915239697721514670775275646485411795287421517536194160191604985512304976239186530617804028714266205442107461610390155229644787751448528094461272463980234472817730645566646278664887399017141342863759447717977589928169805786010521953918247169218065591808936327013917254845591454979217599480577071764971901561398952986941652105066203818317661283298135665582315231712183719853842051207523097010090233953351647506490032114474434672272006644460564181870912005673246292097658604184918394525506514411182080217364747853331203795127282569009178022175527011715182914487537489257584890231373251471512489265795461901861969092901027460585589432190976871954091676714759881794099493085075248279376289329972524553907397633878163968747453829517436397186895591631638419313025040336481830628919289284769416118690284060917737952974082739139344847341304796933486457289089084413640511782690017558010690170055263149772206294828449285051442794101575087247173888924665067804804457483030097663962553502406580412115962417628741637985320771195862100634772147147292640384934381958460919445921470983270775660464445649284668252926283817171726523592211135394677916261050814888730958985028599469447953640632071321710535519347156089810068868639029795229629503622363838455926680568063903804147786343457495748830602746251410845592543169310695073466104412186641040521983384230641319762243549788441910378669570734365740752795060733779822508022253110868746856084584947719213134470330700756729874748626420744776234512334315208272886486242667237549237828996591289201357136661673315549686484791796282674716719302379850454026136051722682534764732645143737205384000721485526470715440522874469898233373110237242686127132519152010261794544467302539733420303261889118792451037859505798647979932762604863817290203817971359540614120568050729340178233079683889047249439335078623689389089349212357336644626197485484069789154573410068492400692281488491655539282467022815899049152678174272118667266163515677854745944048294326152724923064837762757572232418184358578650881998853178358780705760947365442284645589902748102926581262356125734994424048464381973053366465072425521539827391104159681062376355372953237325452338793469446614700680682315410820178044629560464206732323117155791231936570303977032782078925264589955688607310170682488191340205695701291707167577960082714639907936992747202142837294322149120293656264069288152956691163362550446721571668991683624718310787095110210779547185429272877361134306483492356331111197606584317201230049934674866717094431862067024757446054362652334461906462202967429393270389461481733766011924618340539110821462404217473404971673284449451676101061827002034555203150776037702169595859610839292844697591254835063760448617446319719282700073199267445893271557555944989461507909336002801281797327654358245898902810713902277054523136666386665351496265929721046131682103489648330166859980464031092581412762475662189065671971956453529544853454935887706206743840270180490866634216892677499587003203570374655625637636481332204266193337087855929819816510678032370982619888925343934649783779251510687093757109444274213327002415307770598682035426404136421258857318717788619934198816215254866286545013234849046205180416601119884316316247703138246249451313925572815244936627911762503785975542895585160787001131360200202830916570922683262524569616359234385259858959514599095670994987893623021978079845384493170087268513814851881754033425048593300013712980893383955002863538316522873135005226421703229223831051490931102375354149216818906734137806665825114117165397765161384234901730555448908233611332153809636659113894997767861773270394375582591464985989451789919591694605328840174351460729912894293939099058195435869547213635923015910720877624817435976334779871443132146998513378036132597204719107484272384626837608422495614140736800362813255007218041645725551467386755059902713330852346741780957837423918801474294357457203649593933485171811051761094379260516969743113329484152431127706926253651295626108713597877883376510213728924140506030862942954523653559428431842330431744626797389357338320455709446337445995537154119968377929016927233866349863027268043869747526393301326827147273520384437304482603462518177702777994567870919510418084698297976363696555309802473524467354527666535013849767990047351903191659147808821082832178301121411192720293391445113081969183605607912459196479598803432530720064101206729150264753486958125905648927739430433779544513057273223772911666571593804606989839516529260216324177170765238295980152898246226327045895855823664474350158020372123911889795893599632165117858915661240477831060974141843998424410941838281444035504445311115582178045594924612499267097439698822654653444716643992947606046648384778975447648835732159331822946132437832878693251777313170120411726405218468052339517567242616820148745081270500237207365253826687713364098649616367775790611116523220571586738455886523865915326836472527356855457479777437103678749299372043257262420577855528188036949619084644172450664702645832653600335158109538639765653877837726500086059322343931888333239869344999864130342622678110003065371176554351618330851550083852744226196774526140944648507850221284779182230883392306135879100889351277932408356135585192177076098559797403646990934149464865481461000441236692846510531383814009464708724452375390213762037786882159646008474161027920494930866922004836470321118864199220106849822829338272505208667087906785751848967192028173621331201641404562609912400864230963495377798645832478341004747958376077173974210974174172652422559858984012285606536335989352951871179910804425969147518151316925965779476713716100828521551842647975034656354706548108729291123806866659417235098999622322417429413619474393930727497299200597231499469654265778135951141239231531856347699619163261965868000816173719964520879809866201875198770743546187572690490885597468561362776196217063903967600751861339167070245643509890559861089660701120330988768530540309165673562149050981595897642697894440468182623152787256229242861901914489729552917617557199939899953474237601974504899874378866582985679346876574059029091304902626580433999967757707760325450355757837176363506543235708449389618967803621542177124349601803100687737762489096905588920713764442111257680071974771348801885235101936838082045121086189229445273171063965272918121076713040795916681949739452723541604650838137415307326630119622790654271589053505644628367142306170255771904223532554874790843819115766628662712769778400979157849007111244382892439641753800291548270395045708425066579261132281100538915330027256944988336686028306200925236516799988354932351821045169375608084206615655600754886879985086750135116112484837689404058858237285695214233871341360599675307786311436499219711445514543926398684148648054339767939869723417829829376257052136137219896505549520017641685946219034470651455330754976441974971210976106922470837880048075326500256734711545528487260778488952574385838315731454230090957391186674215579329219306201380832952533059751458034223356274897823967048506032874619848218858766559904005609439110001946355026251562395921875339427542752620289169178667266823101954124282905513620169733761314871808202364568283372891543688365544891890764843749034371819680862347806486643470749889457677356362652231108866757014896558749938622318798672119950187295493608898849735023925295402152963766656407720556625723078760350639596829629626382578639487651566115848219249610907030616077895973136467786552568856974993275938515165339939134193669520384846676672792806326550530702589282718402572396801819671169166083700479257506902225126922091798628613414962629759492668021917077487116015771363145583917054363437524279692796463100285738093661419812484909186289351315748017729266236531099124630541631261962034271246170180286292323772967170064617236829058438283668963926504500467509725214855196804763296602450662009746617448843165944543117425663505865979046856822246756129350024185146898820787272169782839226694867091486909743374940839470497375976578525033821156311793909957313478604310153297560077265567206216764878765504208226281111843421377462883176835956976364840333935495209270140860525459589695913948786420771259916742888863464062673326587843586116715208519200352471947750580026961128752917722182266446406517225814527668598847359000206592022632929240751996906365553661058068680157381525743471860524113213299331427764560074670041226850404348475493882633858745028189748868028771833992915106321372051651030814765425993200778120463766915536877383812536651662075006299692642781405182209494007522764606757167476958090357623066655021171266204285706487088716679495640571549984040650233756148828439886802810888390052422152132615998380818851014880403172233132952034972435104562092163262234800120431445842373105822311364463592776311060735915191164455767827482565589977796284812961838044650990306690592936994442624766208040934477133138118485395073887360911860983242209616523781639549158907447268253295503303590126848235113699223463717397884441087977333881136436214734849906219361370555508349956084417762682613775371546636261876254585866493338577768106291410378729685383533816161244202815838387082371434516019236454664770643031948555757877615551534355040184820356318221869038082122203700190543957111630013717699088680326137860578299413688799375511566814090927271367408056023830419468379833187062938312952825007597800402778364915667328596797217762222280935787251646983153305476748991103101844441688049295819871771045987294902436122663850540811448796864019441116921548326243385653190874683273129025062615886222575997085871120417473597611531064581603449025003480483052490070107569656958999596122576901351601406686896575901463977420265711441462553869170686647108769463950743294349862656403990717356810388553959212404012725901212124982544031640334862200197677627929534045331252209592598813164832379994535823856853979912262508254851333267161999165914570967904888043861414266412984038504118225497028404771665495924128442147587523575533025522868981401278605153330544254365453864359738133469931492076807243060038343424884373673697379488749164673651157982249090270767358467206708507691014500629709702781408242485122087644836363931478284230012581807434696383211287998122386655820539777841428381122871156643795027523869203349078977663789076046699407006798168970634551219497286451751563849079278690518441041411082067246112665489260584214989632324321598274168047153475367575165703827764858170086647086230489806024772756904184853067645299697942531238871311690404853369581204992388104857910385926169855267418528825585910883951800102135778854082270758114729719766774586396807562469682581440563220590147838836303771943661624996381677822486233394244021482592435756873743123061009515016817235554749715422717993561168443518376099984986912359371825102879351487756145420286382038600038688131994593885929906104119084135213754145730014099772647117631066308197700702112416903515676741048345384038860486485556968093473610359924979800656540610863420503408431931431305357004987617223480963779626934180363949836843723350084562484746484085302378869807568155549204501797202764326696893366538585950633595112283402719570286694625529365874714388995647990407479654617808900082489445540572768323895128288923948842981701192593110581107786782339141883723605121844953941179813294797679735898746293186546351992074216297588122435119070139303643574342829714897402287499324193421597780858576643357229942994393270054058987604701013499072345577664086857105413690123341911976865262019671433496182658102243858195854759980983185422433231971385785238301629479458883139816215682080624944199520081846117054032028772247686965960576607699941430134214461659675562629149762500525712879702279639317466929843734674122432905021912359375644159886002314795260974682022146642969924530731207841377253812549646090426764005343460944088678785275532440047682863814072310229325230827716067371775775872464691304380144743576706020641692037914716103686524364215106557080833469024147720921039670047338927758932835724851433440700091400099751424851243077697182919048019536870310656797119260586380923883939427526607388945057818148746724125165846219447347571374596499681043399483042816223625430486527491055372222497277643905884742260773603943310216321339645169591165978446544771980353139884365236960936677073701495335897713795826233861310796459832529590025053607676504409820223257892768415604201461909157211219476769108608015293736876983352306596950898372961824168218264097319694976030485933928937904930409907176455313888668133062891775616573155652292534269027739911477943918169339411996166770937788250148311790035526749321426459044878529910086395556219893299343909500272499605753883782380265094772383649091327166583134014210444991423436489483641195932797390463909766372954822558928061620918643214340383684411084932449196388290738006619138055856909938406232722186673333890614850407643574379338748466279062839737505000709636168133219967025166098612733970052620962435565893542021960568156171413023123482186757387823087255933675709895148258407887555463070939156891182488947877219710456130992749392841742352896453862493325391389280068261921625365844607692845879817090264532647505260767421317502845535899612429467394809593322718357033737873585342778643613049470750305453117825431891112823461817689545500081006236401335853922388587948463637522692096561796126816892042141747855436841888763111111062496043756890199282872360349275771418841868984491794348512296721907450666762121276976882388451487936110713138079076816824525230753613645422484642995889225846733909530279421292403654764617248139349610313791866402002190286656987591552692845788741126351239743516581927620152810871411045846022612266285080469297479462217013045996619336569662125362051859142857390813851093867085703603521631944164033267043860016555175075581245680265999246589372401909006747846120335838112095148281607243237663008587778731403557980949740972309942068561794415706470199079857553647108225593667088745990234636990077348831809812452407035312304283960064696478757488465768382772004642175637757115977233893720433687567217211571285054641595579807984063675027908400888561925451401601664699955414321922862705774767885116159977583558350175900842489672815572765228550648441996370421667290907838218698668024518257792646670461948855904787749599821584838740153797928912763935746280603014566513037473380197763494992208562981345351850957727645371787512910747517603156533245593259079109329059095511155362885019701364240921143085342474982478099108415672086366214438195066519970619750952426171055808785924218023452001615315492161532564392412723764587437230849523207255177828083120178241182772840427606802775991276503663642896972786683600245046362677688189082520678238381109635123914771051321929031692870627161607311157523852380285246810271446533062516724093661593879542100547736739511565869644846145851329413470666331641141518626727842722945859927936902666182270206832762659301602991021789309632039629960608705207485197830544233159059435246820343221979322291109173740460044517506329579711164293040513613377609142692490756480726466924564999108144873193587204762344832124797840306200008966163593200598291483815374866132659423711029828682496674838670172530864510582473564628099802855343415741523209001916127924313336381545612733889417834648465937130182832314277928846259611319134033918837172809872171868751752889060638660934413519405280095943595993111305725246468382883832860458272825871571586854639680721591811720476692259552490168782803044924365319885598097313980776332683733322149730405627724913324766653111520328729955066967745530929352342079784083029098589548812384332832670164710547675729035584993737582154401871631617881120081620243463024895686683238333073605148076316861383335340013402705956976736981671444582798624718870468694228541499449448012807245282318728608502106219436335139149635062896025716050539918754458630671410432650320892395964272613907850187436149621850421487670981720788834864816370074366756835941228283368155213650794987334646836044041172311867167534881376259608327850888319862406082771096346522732763732972659372510623114861880517709051719063919809874434535868659876095014821948452251460119380874545956258717581064342727992021678041141101542040293772529434763460196597434728006060862202122200575635736729283998674762405264992622587772663839894338991770831504233419108659654978628246570493636107600050636531157766897808169707324535276919463740689126316265227747361723251282771183674444890815481437937536017711808121645765968066602932155401795257523598350143993366575386127269170430865344162970422509119729164432830604971726762057367690512728917802556528697072452264981705736325026355119277241146513605251976478252299495537266753240121093943762754482290392352062402654734363805977110799117033293791634879008426579604502694161971957518608649811243323742672447416762224781362964110336119071205268383168351036482239925011722900708250861848913307413388655031317298882568304559187750966564674761149610243382641381041363195203895653793361050302859427902427795403872106712823610843380953026638926499692287826116476666927210165273844369212212696547997285013645009673090257044802302194460118091488982065041705582847572122121540483321030496413014767939599610154951329181450395273564016155828616946974618620465421226901965352203164730017891755228459163781167319709165558017492811393827450763562689242527458672262842278480577285507928565630049910685365750259475016758364430894755953413436482637012972047317058866207188955109621709297057440259590838745378419067675340764821280256275678304990238076412785573862402004857309885795334327773170147782494854053505249182620054253757404409040336161029045800710950151600934141133505922478710114700853584443737408847177900135899051029397582042317304190638315954771142949471850686274068245994997292455050401846495775847069160106729716236999069791983816742718648936528578647224306160182059841284224493900016504408726899381049780410505582171142307239475468739632655826483503561210135582559115000050770907040879084800779816295608796939415338776616272831626412130997402949469255775211167234405316992276595208515490963789149030593737849565729198168210011311933244459014735427924429971480556782202114801318575087899785913573197890449027598064714639811968270503806058713350133033923142352297144823752341563764793718027245306699021562676491475606322797047803129828700341742260059204175187735555219727248212692973720397298299357456493588035632922347486703833217799285400425609090154955274489592087533686780474725545111600177708302492063363077159178832769679048608383753115996282994313566523281416500231772702665414655617270885068406702741500697236857364687873700470004824720109838059542391413085596853050492376719017120371952239849412893667643774905429096690715363636653387527823906743554550250517896650002595161359632929617813945707894921472457565058719753642385575815013507926288078050999965479934977918174332060115352361562514719303935411471489078394943487713984149288791027056422254157164301415828447737931717091373799242790728059551463779279256114688527999731637551139341076154383970118285924839135309174256826781548252959145502661744251108878320513506604267740586061043650814611165861296984741379747138074245751311599986639647088794304498784401255100411584460030624903576112128040597543976248339903912315998697753562135562852823017895515462624174044449290596743060814161843293887442398921358891138367865150420760666762629905538332274243146069196207607505917196523608405677836859207346641858357510415235573140914860460461042436237154528727773971493798126598432095002843426159347529664293598091829056352402792967125257417371747991403612665063261407474357791207045489669071490026864674684238393572399199022651511537022715703706961886039063618331658399306776604413325888084550131767467724805156360192402707766785073859614967764616692785156366643925839605716579597277550451114806754567485077894426809702509331094335263402204754194022610692097066068332414305691873102280872825966462362531110107960015119889296356410267337689690492513010502583673254644306071619534451235723182539719198220323221164674356061333923666403670424243729641989083713485502698880509970898951104974696367449932369675128019312871546279206963323707573957156907886773177080612690387103063627424121520656155519974302168543903492091977432618585438496679015127715475551717541172878580485385496415694170855390719684668530237319730242773393393790036428999199623240895930240980082380778685902374568470448083089563727970898198029720237110972815276544044352308171675235780347920785429751032404124565805662706801292948401149806642539767330143398525376231813173825090749964584329525477043495369063738236169383677122146228244229388647542456382533655717879463000841385940689910040935382956398328570155875982134926032842948211795231353193308654467253490671121101402665778682826793388937450289315109094146586653049225524964773834366468051789976420424070257096274206176898773217410685356189200638534940499887112383654499552852201174497824079251900928339621682126930600422336378840651983494409976312404442276713577382830152559304678431825101259295889990741917865433396664773075614448533522758513256096931088427063126112785586854483637183712553561385157822441730595309021157933832362703860649081722027968352360128718062527258021772442087903672180756203237067959395986226009018324176567693665309728154419850796272667816714600514980118434190458763857230880383839477055119576554637503073406349765655404746792432121909029697625798050059490779740246451586784573949162462915637475935764574028068194613679726870855394509182890448494910022047616163060866001701674931407630713970797535271886046545703749504004373888504060497804288162063556988895026861540990025731287870677306409604817626108967607644402427267363956348424476690570941290501006010874054447601824326195789539246492550429017673061460203711512567115456498656997817711080618641057386752105721434027469847060968705680739275040459208888390649693493542325044895783844757057827109409249341875410620133998221048985243154648468985994904486543901337684680275853589197310918663456976297421727207685230328157493674730125961419965924212165975328034822670167429287500092028266494653625898294553286545233696442638289074918797348512588551491293455446439512030066948817804629391411864229523540784709422581869770949679985288176089727682537358209816691472990379720076681921974199071671756750841680578600774213090269481875246179952656955876384404359116387462209201106775217767293495112632595613490447869043625395881055766277744565416738951338216599488738190740255373338047655633779381500160825953858469175456308180802606646860874918199476786872835647538813085774387057209433825712579473828001198767524230852593099122701188947714139429277291274969290394180834968774584168229876726644087665875366766830154700427526251283324678493274757644199491224685176660900618374342640372441211470349360833698910659771796467497667167400393969681495134307690250147257960924661886592984535925301502948691538897643201445493746278345639963265322395893522257251357416227839805232711149158597468901844138117735496910817086107703168329027100581021439317549798959933862599232757261022425376364068218477472228328246939503302781481691238812138831639652398693075225825979306149694667104077788939368490500053004645831455288878981108294090798349875381420163123744576250195914727874746711231205993063409474993519212522325401612370318977533839569522257895052712766179632137860605665438300360740893187720757841199112816101637692716010037980909597836006546765908791229153962720796328234961501370725647735039262569796099404680609088173490069069906628215950997108571395590219636880767092644456652421766362796135225175318260406548158267600438755276619322393018751867958944203375108592985573370879906009421963681980289536159926589602959884616936659025817315128095785634524520354955940961999385666306130992567605494898771165367480471182121079452167800055671392645333709892336184352958303000062099471296194075872725503266090947326791434065311935246502578539123290712899620590040269860012535661944217765202762880352268529190157357529569556813109908692967573366937450391615732924207178449832672865936655251757471808510984107761278130716959962047320325034030069392252721941934050382282588925104720417422282828100448832454373545886973458837284818866114901551106996750092545750737786990571705832718592341619686710452171894756064543393575434755077438084725346505341377656020503242556802336445673122989662040994128309845742814138775891162980572349310030643678218039502153265187344744545729789222446015565184665320088216549837027456660844164997707238690143509103212643968884487118579811455053024982549017998889851991494312772963906312057529494956811733512405552957811357749406775354258576889296815963249856112872611754292428906203565392040542923074632059746722811886254490564335823660236355389347221682525591260438449209132325897778237378378450695415830751561532237594523330343754573758246950851526205743917569880197456775482205263659425002167548104558816573834070895604933336687787285106721838890765572102158946922606492592410670506732492752023205319795587686165238193948724525607270603742458021445536770499312111484753178392127667657296180374881072804472202478496074676866165858602149533690000834545981524690014326731199968163743700950391688431934914010272528021348841641311666923634161570898817517550772137342330720495916509297157932063324108454001861489324334177266529476677531908149733421529459041834182697736942490145862582652018189148666115733796067132917959422270360947229997721296231592027356235810099432848397205869695572746306678575339906330301415935812975425223316207435459539032825776543495540481985642264294893755894333135527166176532781348624250404912464248834557270686741379953220232691835076316325047598813798282052727288498354414621127691489936604443110528279636127099865352532936691985025779207475091287184405365256740633162109436225358310607492852660822226117086270828574361976127754659496103948115750302282428214977877818638464550428727935596350343744639489439404566170301873792599293820332652561608815089934317458511320002870133043463404363241662518203938450086645649806182943771070186972060471989259304209018491919890867374515149645309378627731584387410964004431045556586287202200324280622591232724021859569201561973264450065468569246218048691111078358288351859116731801161699487397717493896891476180955956706425705699870099243142559091873934621178912989062978695648668377273119701575652953528912845318388835977544698573506974814343664830937425534814108265992230512365471503421630458173957961680084620855746355501243252835823694762725267958252435040985369441169432942586199078315479373992328086819946136867691985922860706786582049672166379768397668427249626124965021749061718586275857961940677406905639828238557311838560400531937157812082620456014808877954892023402590777772475348796750840193318189339215221388132964916363074450991221006936509893973461716816495230153074774196149814824076327284619991645661737040621055280902395205605572687864328592561970073675796860476070411740198699859292780955385434848265398049193902648019432928945858884804580799711136645353667997781535821289799786000670176355901180079696003461210427236311308129659179229624296404734053670806756441385838100996399002538889963793448036814030571710958538670422343960948574829876489582928399533910737761105916859696574300287768357791720330093857851240513844111458200152335430419923736134672207578977972775501429633605503838486710870894295185952250643799564491791089909364323920139281641255239363163008859896368152132238603191985316217340689103325505732385666926207485959391806428574508103537140230845561247058445573811235464371246741153851611948069188321019776674379578152977707611884437812883733370353963566940094028061111138169661759141217697083887592839379826005738966741768832891324999590876099538502331704249304307941186130029519607977586682667150274651283311592857891069877337065549856139088055109795518630011341832806624118520893555694228430203556509804799645122848354117218806970131446430339833124997837050011914586413645756597033789389302729462388431502426886103312200827023174851614727196429418239859970872288893556143367427334117570011981091184612222257767496225203188685167728849512679973369828496272294363443303403106606340955744246601306528646016878022257576063491106067120845335420982746868217364516772884727867925953431229106367496294709941711807502572427983170184233514123706959948832180521880420788426419102084222547074473855250113141382944301793106454965240715854523680968308247811309696176058644645854779424365519725929337930300532846351359078484211939652462921766565639908981028189945729301945696889617214797043125109188033811765060222306688886654322740338066375255247942955185928955325731893877918282579956583961228947456879800426331390196469840977578594661730649959386758562364812431599541612342046649891104363127421611120553371812893001385205743711785406540358796279380408090859296757887016481055053207409946539794320037370472393801830302083246575316694387233030938298784496718362578252865595416700417224812610368892098653274998253715033157148657170688223383510412272305630309043731134527683743553738794651776510022494748080200682157838937102673236534124912084302461536620891256142581953676766953500570078924102127297671108376445649385246368129846744510163065488208552687203451164717272259066692746354937436903301269602743866561108274882324147877035823289337262398642142281185050543540204998023122532074785242824479055334457721192824706538070433911704646273176534550431983897223679209453910036670926048748899904417745067773909169609867078254067614171994202485594166376616219732161386884940080773193087409895188774075025481154224839596623610598453573202786273576680699587458014223446543832079781433313035824990015685776693024627292642396232599347217825968983749624575329216328340561972326842713462423772729599014764514317074468229309204736445353154748249556209741101807800395816968713910727941269098854784251439493226099300273504016064096301966387590845705411688283185792769380222368915624956890790255889823712927400931396131197352198565269709331402963835931318872837232371022407172935030425774150559327391608726445721990836669102323518264191617077413226853155089150339015163304370194478834356813485036365750570289077909677920440559855742818913000984448976946534600012031637731932789078902102124448157696746963256975909351073213153512554923462438313699482710457280236791494571877067733407394604786585910046337296812048152364603628823575732360910060819612372125516565589578675797384245110168539900345070277313539081014959582699735331677900182253325029956277584436590464431936563449625246534300709746840702569232622589950255244388941664759564921310600103996341627620160019950617706790815282869042386427230966889259640434138445568862853675699122608535770404514395083565154837159654708354764851257763977633132790523697616596198384112095685441450199591960273959558591121746682903408421925312208650101238757345481925634414646498528032746320781781091248602134866553811762900161779382263896186791692193471179025706356024590282559971616380921185116763743874644915670676081041745046255997928362077292268113033319989244830334957578354560648593498505939896725615169355318499236553334444660987348811373206661905029230781626086416133530746138159835279852254385302124352660171871979299801745725855668970039814803219481785808133406744470604397117482211847650526292194441872503805700152614135134901253595998813583360785274911105140767047695981932496150495561447864609315374181882300310894997777505105602445825101205526084586795405238115758666907818407136781267555294851303825198345641469717581027390702904546959052063464352907873282839855800473706497675040840520480510465910044564404316504684970325683354044577154506772847980677698875509448431115890144027121213715663663047437238312740193000926662032413540138702760694655994888993310803521978844511863678481812848927780573806138931927304704515127006155083473514223407378952545241931683852796988337129226211464106421633131767876465258671759645264047159803609736112551152036685145289317170418034973242668015412046796357379556088477477874822079496297292174053124837850647624846033119970827124504724006103811622763512058185965313047888706566496101517713013017077145633530080985028433172984798843841945861979915231263382320414661678989039908283696680061157711063766568728332547554274464435695192201805062777538427865662102184243231795710596019808384853830009929989081347917859508315292861179182925175012356175887755038965478139729172273736025703859039254870987447991170720776733665958993073397980968001953576813618080456724786043463495524161544219595024213137758155068609434628864779727360549740850687235958660035558712197990822685005571061887853294426609184031533857025998925516298205995297139287239519070413414152255012274741209295126066617806865532746296009965970264523551161654431327406462365759019604728998980703033758966744300177471570553318429004323983111894648056462399377176689224429023584005762113513249651862332662327848117346495450976224187783459128344857546955039720955303080379138228674946628920797914457104515684438246803478908934165151234620098129669843926746297414355661947949614694712752877231049608732947241823528855197260766354037626842942490019851312027615087670435847206814982045534251929961727279194004751726112513216008485887033128326683106566626977827239950998771613565611370063621329986734059760275330087552073785642988466412267315875158016134680194187209730148418791779454613982738997245085659821231542202552796305844178245707231206192476981175566508862213362303425210913693167904361546862419859518754264100437564366176447383762708613249638835774933504633699596909331911216167231650828569098138260766579437709571035972881918660049103757201412898910088312927789063044747926387562420235253742650028925587202312992685195733670570738119362085059961380133693046474555205051886066826898803906440599563469574822230616790498858703495809242981123673020276911010823246275252128719695156310150638824360524816516883986248949693133262044719867092769580070525319411108226108426059242118008649098950942042749068842256205189461087140996233519353769777990705781190013482485594374149736766741484019112485311137719085783823744612517931596193934175023271812279942546587163821427071343465531717287775330435337831213299884672970093393644722113483163824362500119466019849708946279532748935956949576520291410151805964295261373656250326454550534348301052606076584370938648516175902097291163934556919009038832444458767666046142896648177464243086884113387725446061575219169163153570106861186878975339451091332126157291076552528450859516392027604974611439203150380873945790657308939975581373992903530163069725561658329086852509120570606189984451332878952914190140975289173194995582369474457280868572461018362358640753887942727649286313543155304720351012396985464495360565456605165108775154575681227888395889468567744838590895138455561196578752256690647276617107263210582034621620300071189209823679528642412091044052027188968746300296146276473620139930110261132689338759846182877065878845622663420817492343147972892108930084790790988914716630275777167127376986950962763875172276128040526444161292462879027648583117300113080545617599883420873912249005164375604997972071401095583632937118793154669182780825536743717513762352162964995103711906614478749491952408741916921264152434298301658232097320018331316107979852867326276141208251202544506038617251042324902885293814673595231571694782254989108678440729621557047892633500402989217288951617928245878218602224085012744444730209763203544911583640234928325288684055714063245084679212039011410941545360789798956824674783433200609219328111189309937894859536375203567495704109255274206598778191358001119763059431630913149399212238866544384399940897259088193526808884855206193653381550155977981369517052156847669892037425856040236782552088976322679307763319866271658752019106038188786763014032732279197176434830045850004105973282156140029630722647623427391475783644642061203840210032630142404909799579051275483421243072044111629609541176009478624011670499194490926797591677902044294475309424583027456677252281502837748174678284988530695203228270758117280710019720037965761999840675447635892361009859431098176822963232406589148949287308911963728181836503537739064042817747019535692017711451696291043073592755281126669464005614408452297379886402761835752600358828596246959502298754010621344466425573832687473596521311292668082450080568841391265873405473007436578741142325736554080838376185620950352372343721623549611191250915451377392474305932789175421543467232912337277133143439726343899987970829595922783541259346532208813369622043223622162425334148529993290557833415469253657424438134479705858405667745370414166411873021319545889338580640895919670259563831097839889643654674830376434309653637178629243121442578950911117576254801747142382875029427757578617171090582141564954087478770209322737886622303339431743119659044819913236795557550840692479465323528383965521069451329079042290535428918137530921553595853289127872396061764823381784438433529648528175208825699462215705436876372047652592938141461832690431333805650571720403766644497947496783522908713692007986331484255645701327092166788728958475295347507872114211499909190674874871689267690818497730805273866000261402448851341974170518967706153652203713539292058056266487539396983660848762861022101187515628349809334533092042043236977974845671594818331795615243148426262465143641267317302913085167782155885313223915512592951481405449219303625336216133382689398317478316508278255604945539610699184817429983061921693834123462582937910073530635824229291793683897384131215083299813597782532122039770160746341248794226646094199957819041666886139144683955147090512402858617541670381075631821617563989289591224206733700441914287306611882672416808081299134492157491463011328434702705381630952492826631532073233466438040006314406776717738071265402373142927811577328503168468133347101836256396870317577452843140306665658477732999624197705762234150806973539226022940077869738618131373810097571329103246391933984858906025806752456275309931619668080143900575295360451507434953595067715101149692079933740853460533156633154283568026126889949667265858380577140725706476516520732815778328668323493321655736174274130767253999845914636426940128526821231954111108535137217526841770204753353728411953919040803317676166358843991405010345278969258736653029501644766759443699618107083925975242368918151965012397143411580078804302517053320561747439175494908929029423114577861139987959796804050608662714090587399331224025415951715935834149916844524272276147393655976663664250611333456273284752135846874488854575421721776573695394735564885192490907236896397516301757627323627514926906187015310477302152616536849431014393082574923727583322493866791857454389203591160111718967987585011911417795462075851614397965277171650679440174148700723610239870248912105843065336873356123768946906990035685040283917570258746995734542299457771049945041919879873069798148973626728558046536361856906658794127063629041363002061044694566885498310442162837430080045529166598189960053525186235190630719013590485130579462325022485903319917079181892893870002579798351165591242637625111473815971415205878159195689400798413122338168401235689944829127293240942131624066476264052741431991267946417976816907003655569522824274587642702847652450800248273816458870354861524689860062648862372391517194030939190704081971496727685838645608188630963228052806895066645088396528225523119057858425798627439065507251014333870842516067900457120771781441896553286550289311057149068109450264108656529700810237593923119693761938007040961326940071435717107334089937890222533468697909431795159021294326516596289646441111658518344943019484473343264041940458405001505303822560470708427675202201821945998810282024285116840160882908322408068208532944561394174929629750502271054291285803916333297319330222267588112844414908615556042251011906478678655654942319895629136526513839890775902521720022666476276787121594308114242364627736304467722450612407478343975593045060237605299582412663332396381075833290446344926942774452483770939840218176811144985385506229110426305390663816509092294379234120380977474195484542721072740703391422895869839218129937153620374888946084967737247265696816632083315945888480278131665932717916668927959316202398161039954357291034956576916519334535367372621927595262158065256451770957437740373845165394247418934614935291101839349208128069367325433270427064934627956741037148454692072289391671291436472328038432573441411937166102622011538255810503087047404945759708362135494389527891080064620721484483629043320862294319959119646336528602040844685752676535383707384094253699040822252264216515108854338313293987233633697133207514287734509665266826429784058875081086655898972504457207920518861924902424572564644647239791751649062073672850125060763134824979462325104891716070720313277745270289079368604515128335314051886444729907862058441946518143838355536675046372913457725317113286489539091666510030063837444245026048941393508825545363207155514686466745274638019353971829732893054003868587962766328563974785324827345481534768139766876972850086051779581050194221736800975746060645245696340654383235623037470431595826932613455266150772994839030828047332225540010810413606114926554587052981435148291438492031067684096368647549095945916719317822926359780684921472269959279880969692551950549259238195413462411627263449558121242623714183318446360340491994385841549463116488519427139194320671532073257218115422885932255546236714055814243332607169647178204740610166430839793569132835964469053840400865224456204983740243160667943867376367235174502432566199740747234979812659880174043408581938422639324140895293710742999998708103601362032384496454875778263915971540403837928130407641190612158734647623375607715649073908642947045947095883781259618830337105681899769313826069323833361822805373209029327484125899392259462927653482554011197882549307959685709556356462954655664944439274380744490635123547293533364300686810156713316253658434535598841642162090953425501075324426530679401623136928924523806701464611011421087924184341502860882522217686082495614814555530667345608866418136181812726350180171309677082177195050574701833652936051628370948416189829658437361952849671885432869513757809706953649606087565978045060506654085618211358284311034984921879758132675681357867460455651056836235088670964538502262766352231618624251856742673432400816527032915746902477091248603256688425033583843560478346249838765179056552519028585955078773003028971566954005960656074237040616263198121068124568548214171202111824408793819222757938902269697703028375125960911771905175765460451837240000223385332579255349833600252858998984508688656102869731205612790637213547937712075560381146049654401010025030450342172856496089044455543816721667997145704888654881984026659920689934361425528147265768934988773476853649371192614549194905109787300001712326003823459846133957739750608215135593288292457645854271409595730822483840466541918833601077692411250926717548283887459073432397578386430283344224746756504069548129422011716878281184433934232620059592664992231480354349169707332187092519963988560802265662775879803972176771536244451505044874185637246144932837125338530838003396496794277364792689593042496265799056966486231176098135653301634015040910786987553977836964814786394109056436106445265686900942009208683218001349558343761917824541155159293103717867625095908730276697166692581318297127077579158974064093457757035279364436333913068625306443958903028053204924789645115078902513713693310620459310825550300617772089819923279815812401056833037091059183980879661183894863180674412565733317914866991259514313574422337851752697422387097918047525585979633340736734656383529398921612501412392248449957517239040333821699245116954856032637475165480185274179249420868095389952253233651142784850200192686193179370560140409953529784947100392923641979975142852936112335213344553793061697306524724798117494340479892343114110528425555052194600680798640185707341189433939214622383403867594503232848159173291157379893563656224904804431667146751686174895976516496942237430271420282381822999930868374920301896743770208514514705108311887829904174452290343708278627390487574693463945360224860560630853760011076240174463555204049551011087411254005204666279026635198838717549577101330471813522908983936992347148133540675038039975907068502064748407765400039163645389243065019605941545113085125122337151353640226917717305666801073332369367111469963434019521816383595747710793588195641100031603156090122275851597589656576704672344294826149009196551464227047372918827245965282796605202219914814627001126516817087083326255466383321372941191427792699016573766256630693749187392433479041789484155313213543740359292530294117066596536394906482645027634253070989146004073489918671798982600252243091126932045088406952110131091727259238859840381193582458168241778568544871950221962395547718720446141860626674765485577473129407143990909154966172549548397022738993984474645146773184484005141245089415440532741214348961283732743863170409959694180661408186885243434798907441416268272375755350692803842414904526916260997699581160722214615716815758464132966270374707126077115001968023986350185208292385823334078922635477863134647000703381798519187455893667791489171289564671700692218971601954509935972431836671824279313659425026644070498200226100605401596661775059039618237919813798876477105598853665848687173851374938840239259972870019672381056613749435121421894790252574765319793151563813981384461948788288947582978934611533383962575535696223461849087626850963219932840250622377688512089766669085742499258565460871066865212678118667262476705436794559791956739548573788511404101009111067308674053997220419116564605716321863212528299874575884171898687465448373657321922773375255889408878067144631295591666634344733905455891178545438379760491336599984427279658365296302988453190809098097177577513324988708366327070976274641708803253755644229845796448026576947299879221373873457883331005654610207062780054103661090760088819860608403242595456578342929221153433682597922680517788241971914002829677261466273838321175244855942772043331488037343168676463543023995510078827905665505343812750612994733087928592548353960329898682901730847572722289302941628891915539485406815989535842114359049790467689138360447926231642381418999729708930207743319404706844143320739118277983877732662913558990173138068866046706437502000607966073677011373533533945892331382611417375324025229954576442433072852387007207642872366135848362667637740520131369510096361940575274024840081466177962601338540460374415766824318564796300521549913278645413301388176612158682693957373455048276363860402861896106383262398673412135391296894816444064865243297259093994759525093972698636223885823484069321767914907007698392608299268411110099849954211497914394106048126396997901689863554125079721487569029315890786064461834815123713886684741129750109515069747805693722375383007202251705951750453355940099358686323963377538857841096246615239873861865572796641511225663139978940100445664880629280560311045590364825181035114339617468420962251582381780903207723934953558364526585243311741445377071256806397052069178126801438100918289574850528611638946287222017560208653950100334076118797628235063289381611659648806667807330855837117094544647722252525272179283535009641093373792578224777315312419850437398549549027212908005105312117613273124140921784631150037884893321626031855979166175134140439721330843508103693828856782535257789952711450672148462937453527244004054639178752227988663070236818311044190042778795725058020038894760938759698650406209756807223417166224255436529623171479353593743640568306575799622047150437621139315358703839578740120103636223726926480342306864750218087830531694789704694656433426011402820705154035133520935368767595825939062054190973185322790707251650402859882974428839609393887951130497303862085361980344409467842245612116128416183700297913903023476081408916445638014655948003943534297583537440912840436764642745444586167326467353620140430429982124355519425395727476109438995493220093883464100469652057056260975187327803672205308361002717594145907753457493831554425513724626989193568697086485042810975286942638513996328384380504531824952060067979934492072210187792048587599215077395633396136046286451651332216998392619750830045993042811425990317169628105896832766708001560442292117461521085874778845800731240183032795649892666959949855049761603396665263539405219615084451556638268061078777681123113754323113569203943707794526104291952243953075854419460362490587783599351851111602788243003433894913263005077764314241785239126050420906820792385611576002908458553860387668058082324448579941051224605950398456175336758279746666961169792249702265922338959120096534396850046608467191526689872151574205457133231260053076516043869252251374857804517615622652805121498539342873667365476100603141930180864126495362981809471248730313873857194915086300231940719632380716283848634360102031867608172374660513754047189769940507030112809535151754130439997170804051731460065418617750661582849088967818995045710619729102616555391290991914217373699561103748964024069150678314667657659634459191256031185841227712965644892553621162252880948901000065475941007546307948188102602012957330137201292328691804663353228028954983030646660015688311424670577138083232159099725782272798523160802235448565908554277500953216636049702707039255050000854766565105230194629295444834386996000618352867949175838940495395993830930096012555040847160131684767515218098867175300414907838502052007047688469378884893120898541301619276248028603348849277113263798984101958558150757136400136420800202395735494628689897101306109354629701147561182663895163820481415120564500606591537401517153650319023872665262077905471909221765049029523500263790874278437732502736074593473684089540088083266467446731597220013573701152348215193892020231494703993598315982417487219059415884998594569214978774957671869864533974843395501320760126357154357999161960449933171778514018072496173977790980404847489463346798057943441938677597244130372822149157261548822225660453616679833928882718855999976395000142418277578161098015041521207577769436113516421747945619978660298828918100429502711424745626437257411885047815202119927870764287261963567414603375521088039606954079605494504131108760767634594186246132777622661462819411987628329212312355592651553648100220884388466749847871509842318293414969046958513960497261314888727970451270434686737699595330976711202578098522956926616184462852620022665702701007844960725026444774322473719415525583990239852242388875952936824081743301003441528940611910764018037682697852307105956450391220633460856050103925529536609620909248600573269495208335988693084105247299689939938326014063052242611602336192513584925896943785696168207986864767509858292451138629385543805758656520203121731328323807986406166633035793823043576510845152430259070046288254996591853851534580302464853927770414350080380894192997475601413393615502648285035955425760483306680971994494597252278380087769806932746174244750131180129740883937541986823231736347879252699043781907048609841062971727570035791354165853942615516136340229900440711071390931233305605435741860701681303284250939280692437176627181125057087501865791791314836792433540288273451290838608703752108169403395386280666101722005592076113102337235675928633606769817902796659256750423189033293274083199838396661517251215511094851911263432084783975921589215201876889740993483948405090125486446890049238183314691665174230113578118956321898033114338031822973931399534958620660109522237966725929211287242400501697959110293628761978668628529440524041975604957540413237656294785223989396644186530829960261929265190986967430406572239006880221742406078825467678486413416165027115036023340535039131278263440476121236500067012591302307314127602246207884206609178169547958249511318788032883423255157713103563414841990967395896055563349704752069175299738614139128374321247090178476924663324672724332854420977109134381351885209333458250629212427957273135622182465626670395357727221493256695369159066038639558558584620349656299149762051438882778990537261943882622604065025798811523028804046452402980792945077746849086695621454919878833219712966647883552879844323997299427478185945720463704797036699021507971404879542674664716466548253164818914396608463800823615132883307669089593388574620744885776520858724465998323774459905493335493386275053232773985831040615699376860086751508118703253766210551970882529623673467240521504795189940790651594521820495096436477517749016941418437172691171099346180837688419495227121522716266345512522794196010976237139901004123337506422875360059507390846962521035463202155989836343461393064760570982815142532998260624856411057980197202026599060413731480486056389876448807337641857447083229779920390934784967225123893368832482534013495733281308982264633449722371442647446464383459770167815117712593402648841867173783408232622908708451986127284594524745625672561633701922966088936972587848621698007355305374688203891892739638557146463296507542760679267128169927191274070077857136366632893583786484094572303683136210298330726794468193405410389500059031113518251175554477035666174482013076769946629401551767767929452449746257572743183864713331846963071125711041044750726971577909556184960891251264472414462154658677296455600795675936552882732614006329970266430769099704050622517574410532563084288172391259255397134663741405566397580418894090106839858073200646089003742529448161156734721017914363394761342044815032375237197492350429217037901279973406581992636794256140636232955034798611041593760310277562048883452801735397501617960295484136165622984857154089392349556188893407362646204410370536043408576032171198733650744016048168915267580333213596550892920863951849653535929497147537493701606950172002567345450181118468367496997256325452830683349361946181223415412605774481144496009510194556818995563528983203085526049426851020095423715796209673834747848677105440814726993638605695494825915820309571118057969676160373279135391547664973844621531474070360022160020221883465523363240010858995013150666304709927798458132514495984353690719342570239748607793313322247937356134692060803564398835943367113863754029235874323059733280618268832706116437031366134860409879760886145367933439541373434794672145987283242388464030454164575211618951065964922543891740393737625190118148692302518783287126800535403584909433360264508615941980929931279601848184671222358055510994696192118651482736941851468047851602769147294365584628422088907472386661375868538237646848568370572850411476273921627654038954817434413241010073749880744282536946359268801165118475749647464453898525917168707392692404104728281745803876279959569175543701139575850522238257552854950254208974451896481915186886539152742093691921397145070243443112589323474665061387066624865787015064626202610784157682173942632343565971004119975735297829571715295451622359678812251794395282213632964381671065255915728877627810693155308768074523192197239748281618656047682047142902091364089831137201511481561943350955134389985846668349110270467327330359722368293771324763925951538129258100999174749440369332494687325797115109055397795197941144079466055791257074358934835916141342796644854706045164958903890391247489492919951916575216870181080642977960278753061505993905468196677247647061057291614122197216389837613565289727436996899052318054844667475453797731869311149797428364325994431432513834721149910645244069880025822242393743682081699357516627512437110127573460764008589345626177148816200993498463621006563316457803399448685501996001245744183769539626803690024699999832659447382712010701867083501309792257654179984148632410846144608663583246077402441762404277754444392033115418529414207408814987554428793971464638609032904133461539763682341657599258203647863281894555702540553296573916982313297427673859189355614219741122118431115937235287243892282774966851945742799418689186477544832182281742655525050751474403879820418243857324162684946820158608441274925196143868453041276911188651854294186711126077852066036865333401335437945087957012240099070134220108872093148499702789724448804659382460537294360547011864561835935479274324888536162651423661113772336009436917580098585855805931239554718022902016962629617450912791056761880467905167438601340229387605165390427464613900640900857569817761565245187809187663867233179463074739655752476304494268939326211491176731672093812253456521494433750258374362378579669506426299415978971719763717368005925383375059633120462562063841368682865509432658317978499452395115336337550296713932543325260647620942659337573721078061551915288423207958349259418169802584625426917882448753691415437266781146119881814952109912292256186349917890952358483354636204793701275701501715095655161474528223956132906575904275525003571855160219239188222734549230442715536337333344901784432690803295581584893019851656844549568735594975706184238890917134133878315788693186407723898780903419738244410211348505459644383015604682418530535796691996087431701643331215835902120640456765829570542331070431694680991373821662535892894905917868726330999948580589240544043188595164702498895261854368442375613048861011128482454541759431747642850973679131936175005974713035523954984773680365518044686708748257117760153339685904337244983782676714175553991539402972780940674569812056053432136650399232348844691797155448888956444794653286865330195978579912420213626876696966269602438463898714195335998164972023720286469835328915333086163748109107844269001537187179194111235513099876567667968537424768641544513580451469648888633402166629020224379955193482667965228645204048285328747391911897467205984032953294624852040655534171327107190555257420839255965557033050283989869173040810515243464534902122143872114353995981628771354202610904276707934318643327200586701206794635948348954846547250586139625160216568471875403936571844305216408616133724757864173815697262960580711609037354879263259661556631081754526206125316904810657926035961562784464647197779592685421112236144970297632667941591930975302795656403447253150808050365230541321068854001191731816598877480721074749294929747391888310783137605431683284473766911796833585868308937640411994229962662345248708412306712449097940880104684392512609023987260058839872577067663892494965070004835396705520381664253186808829263575282541140711601999199187384845582664774106334053952379088450029481847269366157029220528673921046243420499975805162643521583297109100997428349487670160422842533735946854082719568573090087959707580141292561189351744260924426193150962273134712765875560349788423818315658047397393633005368745667437227880044578847511450430692124245201602430034928882709989272721764973680328130840062088181714029696985909580386484405446108869738781239491372044389407617410723384344070708186282752557656016477196872216141155671188259306947294953972485581345569854304177767273787404391840975887619684690336154484462933959734364278146237942077701905751773051410151550656736266811549527477992340558247129601100572559015164091880234733059573010781167318766102331436474165650754875634359419434541985251133182635577460164024933785549642391413852410695318760446003801081688300256272202928519978026531190054922018843139135712146837773769441947864624537655979803907878416082875549832323587577748417444514232207488763920539549391590471101305696313855324511914768144008516002488066627744943731063374515000059360336993431324768671714216078352917569220471073088445712167567536511828451634876681162926913768774556060259711136860213865635967801734766512648298913921501713314569254688665911079374709239900323965579952532837509215633882528460313284221049893693933279093813888692292206463753597968422034145428513890753194907464163884955339724154988460295698080710233379724209861464783787193974148991540053296416712049795282196927860724830652655861502166621315059468387304373023304599429980816804810746301347624351007465075281061553228022989488957669444498018305042786902325937582356887306576402891187067054672452572531898966628607688832566156421562397376268456057571725464702628928603449891320222676445243451672682942089048120892032922040085720762380385365859922666001127260861174658494793032479770695089341634651162446140045994909490350345396417669501105942107903189465616588865738684980062187271612855151574438963173683557717813970623401547737772977778124821882088300676708428740244611243481648199873483998046248671619779522033499871080877754392200458699726596380781358401434277612496125534993517709446302166780272486538956657186209834652959369458364651058575635802405618043679117138129750589631289220167608883208784976336792053721942019167675965429341303848383705039682948220963821550349205711693715424521988407011663611552494259061018920083426115870872459609177180461671649570162639482588861925157208134707669725334933491878774444863804984466744083632841309323558592153788304595390459886272316489859174063080849597104160546812463827250780457960576163935986099590954594305343932032335431972352671043690430586400878435866698487045837359430681243607154964469592668529397043401369315931785768940210134113592309878023745910514354066352134518231489380266014148970321463681303475793048185119248787420490811049745862581355971663912824912591105261342548273646981973742712673889550990894590764851316235541221382556332023319384343343443815940315324785183399538674793044405395383402022340109122983200199925538285981536190625860055465145834724322853146753203686834462349783529121670917689130903540305149444849172517120695188729733735070273133211955712334606732396446163110017681509721651353555613090841365971711494510486188958455941108066669513015699593916804353391204561405902943193145809041496525930925460234412146264751373671157103019656284942137393850882298807098316847093875064645596821880990514781081151658304023349012116498230979289233557776259075433578625867052389851948804943935345011556046385483235596086270406407197492875641454975839823405092203540471139527252734457800405312613339176682326110429839486677881667948060275213360756073121365719665555156040141005225116891421844876784750115874408975932691466689376308631837448730183366532991419421165683138628167707556115139332807910664938990285546902961972566772634940371988344861948843208067465230724855457317319395844861642203791254059663569066035807856321766946905886668662938407663016495203883258795268789412938948362542758966330898492748632793795280235194661957297734674865158553111979483923976574443348293529394661080709846153983998202938462382463527704837205900036394063015290976865004165628781004472266227661585030337803567053172015559803136350287174515645472621870564726430626257646453602050360239946118016055842593289866352078307418656118205453379516191234850711853802378526912416090596820662072115772505885826694957623378582252967813892789219133267369603579430344548992994708168698197431595045962961839035208045264720847890448677607537964611113762865018112634253381036877109713382098073551456318148460897791238443629802317918629717708451198868038503836988095555374901738513825584354555372740329521631003879675758269745166442655978747407464644705655901878302086857135090698429785488172510719744881032885830026182675466782044921995891419589630493228497904633302953332506693289506699814605270458404407716820414999150827192825977452707034988686265424025897154580745296609982825114104629415101830792744581434755525009823473243452853290854937527613883673874343412908172310105381391606334800067196843448897583505037031822578524963558553340673603680041589796255036275237240014398602477217092716375996758235472274383707453488846255467505423387226561624962552393623041885020308232663334843555718869220970964159768316248446666213271031950229678117710825410366051371537118316173496036491609471224062910178061388182404142812753958977319307724480412475141302849662179634681027678951692797851759459744797569644368572884318279278425927889510063134795413804220645181827225283185235063904373797447586227900321616262804345219284130509462907759198958591808558908731243191606158841195771667288840842831285406373111397337866038704820377772217410887873558873163569138644337141349917692089436919264904740055441489164355149690838272194576071225559001241322686461971761034477142064094921281979169225685751046432989758215347385385677863571476061225072141508142933112731191152113961985067560360007309890066219625910629909691904913570354254516687566199543470752096675179230577689517688980459525485279104208034792778680959943694520022911260959099530723350680580883756183134333277090040747122927354239540426882420600022183849890450392391753647796644677828804904786928044889106293541526482899764984050809001765040714645543796650867884341054271018035757438625623795070612049487808123280514285791955491301226698665765294841479594924870955562393257671245918946446011480869808484553852654205723976072075922643037157372161890497546967626767803639918012135979250729572831689671064163326305082414696817210332455462354709150472127727041205588499311258776638345760472693289516887624128776875677585384686967217637636082111039779819664181140846673440401495352960773546611895559666086330751535857632338583577971375993614103190188747128768826004333588617266255039137163050504725848631171267797492913011396785506411380474012746081814170068168979341707548923625728569199768041675515607387698036681239858407093338465754696728517427219964596296798809756031727590047301908424984143622818170985312825273188306145773412286303212146531619641524702820080295165040163416507253544323656156742705029282143614951079596680711100108498474448347449684689067964323869481127948375531139892472311082513388862916738357243319395847495473385698408770893078813167307509515988896264301771581071424108514783357720861218027089054269403284450572693595391209265089913821193122122163239728862783890551075334350319037729028395196180919855071905441499649370731654961949060904142135148045327344268756465627140593845615143303925474328035946521879949513914198729838204259780349577281572643629165094386242242784955917093463421947377748559362829916216777151664538483969319868028785456856390599003641483805774537878338903212524748143721822175193033891805359200224701909150844643845769913547183940804016803762264637981824577401591481556308692900046452989885371693995146363666997560242760667672574728807683359673337901910872178166250318354972662107617820906740476380282657761684228014335242907399435799551786650125394107798481109898334105610339328602726125624542754706267644472399973829310600197493238854386980026739260532048069817608356781058405348566351470314883135764952769078485311722397932067540461740648066477185792058364613557237293118776655511333671629931354064537743729063825159954106409944017548247226049592679509374177521468670362601662476984319887845252378219299068557927495714850245920600443657912316381758604982631115892851492943622945838512348996672376851100067045405178221665482822492350187283041019960831170994628030370697056677964608219121070134218483786663564539243858573959661436502472235370846466117303567554519540721611494971967679614489508303479046510642989558923988561887828774207783050917405303610858252684454502401933172967878854485370687338269229247685703901737760910446309460952079444120868852305742987188776479490631423060939574293754076292755299581115252800553163629066493513401590087569561375493718868243044980393741885343247287519240063700709849750120436599278459049563163804717000852543382755684313811928978304391651173159265457606636812495690333172237077592308967000705550433496509799659334125438641757720363608772253079650739833333121844634566193503228972320158805814113380623941267949800716167376919667254013221764891037115635063784312585885045856972057804687183341473691252627282632389953368597836705512455979345568869332264858928627763847913106672743858633214207013270707658965122365918850045878198246612929732080595143195614132521044330147019346614847910886126559274707214627909215168416333032497408217208664224386734168767441201101171105860408273409263264938228567389819003207316575939970232059650772197201939927575081484026905690599132112415254301531743120482967755971591491831965760404988936156507270372949410052360173399606558914494400980560942866575641088402682809918822433561125554849154812866328073750716024755807605899841950547319144958353340980139389155491400110407429854970626563492054660667050135198245859279482855072773034110878092936525419991799580860648869812655716952309691202270421200251985779922640701624013584672897855785272491693903890244732596461515115346784646441869611432139373638925879238774128916509938654197850755105980472400923370113576810577340300359754620915741234625893874146172819265182376620252664081894627400769409665833365733529723429716423601073077611557777212039060318248562093510409972814058904588211714457241300684625245484345597408422208297509981851094789239992750765806759622789346215520730771624538447269382646719815369901920366677430753149002880517524176630452308337920637917379932208747963260517424683791433600719656973918934567051555032146543301107682257018106514743275252863821776020532140345224236824511140028785178750705509375709806738636823326714402030459720426300649674591116901865168214056991058160210444757442218162370183901822567207273204254622939237088063022571102128198752269439156190279258035559761428556921918073208778198651108604236181415882609769359005122243965299359364181793009472724523234536960491257069039321278235820488298610708642595830534736208085017043841293815037090542373990900468552293023309877393822653771646022198989585479560571316366107161580395301344574076822169912434317256922255888130234664934426251472530725738903518025329595193448910874123671920462888316136094196313552893093634358243242098971740471410402826785764937156101607571359424654524607565071240565789180708378852346628652724782496785921052305999392224120816618741212225540322384669192681511130794073230165485276495128878987709599996692390017169661166152579543243685398768789603096080344773634417378573422488273448688324257079054720809561615173147051459482400693277952376339437917852822585511091503295582345734971190899817256602807202675284963650305425609278315325846234598581224461598901056144970387335634151963091358950095810269411318146803991575136945400866988977660905571428653197277340716689748855837659791550686250258922239007484410764267945962209932449408406811610977525328102326621162950397210733972812773134362732188074708051750301128970583390582877066516417080824321057044001169850987210616770335178695524200509927996857599838242370753907459759711551451648991538401169184582657142269412050974013271729492551892641699120284452826581276152652814823346171135761363536142590541461534425003522640874660801878624096265941092591142472339222370415020765419603198040984397409811535710338679402440115317793764620852148413787329325212100703762510933419810636159322574744808899059736612877844973152725512096397594214340360702440121929716189300214170336550715764767227439577942843902613309127218996984472939602990223214859543060722078117486713108142427003943776808322614963575727963793143109190584846611603464123957441831184890343396810806164029254561580692394324168424294380373654956610157299214645606459898048644661657656754940990222990235091345908009826931049765886081750190025255052016012773287217556901494533191510214282747384948749440527981161155003830988214563515331779147127419053914235817216402934072244940503601569386945366408606742923148918349172332657376924447585996321487916066726507166116978970660039021604030426522796310877556475884193558257451726865452417612219113028433875189534032261047693946065109511911351994694111271248175913898206599755897152538981351450295393140223248312040696189811196802111289916312240600934288724263799724494232956905775742275356868941299559272700546291029325566671015345978582933821920425125208207726973636163130053065457011611598709944205585898436966403413539841640281053671967261693350382303951554525701595973576747515052322949173941416063633455984599062792357389314646538528069309918797546327613141337390537340073929353062284839619500179622072273184498897613317034406302434388993948716026388397657907968095959715529041020785808382147653178375121108728816965669311375498335229523598587065149653433848243616180014534633550524183111273777455473688136791152507669810342543345271485156395217205045151317686001254870796629395797124442248601683257898538454330869742714189551850359112203754750300751301001347031593633722677215210561533061915614292819927658611505127247958503673221498845944868860783711733916311361600453675572103456977653166279177648678028637403988281306090298366634954332335169030767027796932847158172463035385254692572468759782218082753640225234958334133239984000238323117523004371880346900688499256612543797378355899439586394752276324742476453075083671635396622097519927379077044017477951303766264725956396415402533885204590258492735758656863219962870356135386470627340722094979892190625461234354065667534847853623894466892472767639732031898066400731254616053548186439329558884104617711997809357684348974680357642927078825471175003315366149573163186909327502714404206178870427223737184355987947146555890395543474259296680322297470694796482392036571548285966076460957255820268877563491208732992525661245271943595522761560209107961624608153644076927850521873405768600149688464345098869521931399090514201247250201157384244992898067231198323289555915492525983859236430404616612707024082007753861414271497254819649516960052561936958924617262556877582757279082054026714125303744794422188867601767544093262059688423699331213549833515164982234968901992533073788092115806157098725509628406330566686139961611768434643102514902626023930792229458084314805105942683438811601972666244494527971927334359895362365966708732203949702562509296038903598647134919276709972379471228673104914155811427924822468736163399604422796550173061019142037270880369625172830063116526150857631605101940385592907232155906634829325328020741102292769253023678567463779101600727702074691245963845354491203494693026570580699413805529222444050992295778866508756464124736538248795086863232925176317642295957976561818790919443498269975761514800321205652995958323331719761396889954386318881367552572287956525606046771980512606283292555650220865367805019088825433704546522962175394907267990711907015438355680917296041671351115391056223308536075647436084471465695028952102354812734190420580705877811033907485366216340177345571900302232897641382886664110759057386982833247322066977548031085012785993272132992942559137813005207511340287162406134398659761785216382390205040566871763307180834614994017592205258989234472244865470001558034368320008711966227906415070965274013014454144714336297104181372805143937563206481226678828881911510477847217435405130109877259669224664968001751782819161627945688251395882666524677720264865342287206684623453651897792808976040803870847281484404973348284448749172044946956098529196752451214678823776063444697717213331212097484182308504494031338527833281634510301755536548224429047186142472699792488777181694061523538137268529411503120736079911147079746969795642284165001665933587926097577248957899434617516266963262857006267304927472813020368151446562723633516993051953065672792907741345769503662834081681646126597650716159210312972893559031215689460735102473653627157762042010443833504788899884854306751024505776304118886869411762450521883399640585253137010532285016231075061226919857480891498474844122913836310394760220177247090410806963279412780466825265297002726737658162055145215279049365443022141360433478646633745822284827020846373855123280408454561250719371796352037322059192478960532613640871792698920981698643558848353758584068860940889994001796263533584843381800447518448813756457506330293689048556802442629183839826736754595371693546127354219084065149279756533935285072881336295681854839445337803512391828832899119366523463575933298821715819742120079308870601990208837669470344652970117645819347878349111678475502888907410168052051799592800906590242873991803876021977530241594370221956770600352580577523204130428309932491568738547986266292480610899697483774522041872082810668196847454320292186921959544470360337346734361109623786375796921563970640748485720823560964397892456170977029642360021887378634142186961489060773902438144004134904047842302142220701348364414474367037385920110732223785275101594382297475039228549360018943593419350339836836711282510614474195457469229251125459567328815788956235461288423948861796980292124719090396147256751948788997023288609968709456022039026717381061902406899630817892067989021684476489750939650739515769847915470206859030675788236248912562222810224617974441737022926903778636123710099265566133519316116309505382114660410339145433203031332818702465787359991148062817172907974986623091759581854791133765103554422501176385492790592000137308105462257670632504277613649767429527348861662343483274335670488260506816306247396101952813614171797583973951799116344680202354753149479602316287264478088548674416217074916186232671019466069482596968459787435531077174833876687978747759229938744649309074632628066429561215177262110038954583320238367101073280309074610186895274225750002601743056601810418064146836389795985586192683862794220650450552821650249539938789373417169687041239078912963490021520466980529529519175189070979650433158465042787725849787977985027834147720999741247465032389866947690074391839633683070000260376037760975061087710075651031565148756052098776543959907090401357308062356339793101944174395432811738788140438780873582363537658021643227823725868537736065384681199467157067633712809781629061306078489775721461847415164775521065958655083626217462292064323367914701266125239599209401179117992824773676439910286519651692369609894205156606480249284056243025802225633747077955685068519765872992829065774385807617163940261770516427007484333357615056794208330525127856838209359242081450456684098476878798852749617221971130514314201739269879678163090491518033280621750361825560239230283846456474246769027798512039624336730820945555167511331980800694856955847288691716899613402529177644817042910307626592941772586595811534581382350912573476968817347906499900216406808010785735772203607160034707799455171366758820551386564080547611265581178167224368426827704303665874189352306466660452068207772631647258150076313079803113183499908054352514264142821174127824068837698004366465231805667303813679578672963769511625004307045606064501175361058168430786198246473515231424054722007619548838348726737115623120883560469734164681230669305105483799445529360820693764643699381028415409638401847232235949371065346539193476205478524039176130944436099833042543503411377036140756666387548151968425596655323698003961054594738962945527723040712266499660034619463844391225534878972740973026065638686991827124392347738685252509599077245332455098693151881170138752398913923857574373844034297347788763015328858392011122756153082776544770133681472119363419768905125246144782387418372182446234149048609266222942199025734181045624726458469370858763408333653168965507565435960858179769363373679575721341027232688320095933060324732671019150730656406089945298101668976029653135181848580232470349733903483235086229710302100575927418400773969490277303859062046852248713609620056694532798756596954512748716530597537768579717625180139985881927646398601547160095815191610603386643546251608897491657740103528891535907815581602812448953884866598942855338732860553757649077009040375947543240604567257481134535209764256904239172904792248920190992637634361207792595195719136182245196437200767289317420168330122825542187074615026930600820740693774678300585287466045958565041763076113962025436542914443273177563391159923800018342543336906893063558585896392713820587678700546262693839139465790820176698426225485974715313176021398672537757884966266186498090443355264255107094360696826339590330087140357343756666845093930918007817492909919933363697187869438909839033255821573022975362315263614949610646779135923587962127522659772544377954694183270480976690122532583955937204472800575172437150462151515624689076960894973579870857318303075203064451121500641253800794069108369567493454603102855238237738538768751947763122544627456463862784010872647041295152338457811487161844626657159486218647467830305075095747118389799938090448016615367141034819908772951963440289576669034382971776040429723202634756559143699048200406329569412648633890635272385629235077163034176338129660838450582996460750139889804090151054397018897613447634007462429307428893446743334937129679850178336085052272747944377498248605399056478771082092328273180950104148996289181834607337667196539569247409711972179557612321291038513944223794714121170313266746054172070460174490507647079248582757876246915366142911477667670363299620809704755963902420052502431016969555465112922558042898976864095981439506827777738082115270573404384026080315915607921384434077173214244916992287341035825553720334789814785523866097186370379814965741396405934155248336892240983567630066040109778135186087612260311444518878471923452182941292282515274730102704955525550650398338862243323830897258413194432951030678353618307951564472504321026525061473101178373689450167425806558935583416095376048657380161776928104072745843190397232585029669753566328120581721756552266281317596586514628585799658271747166423325485092217074491808015458912760042176402266745197529362492218563600306219506492641337359202642483878640879607719250945264653677429124540619703151712612964650492415115149725378526297629880681059785193456359087451929800499665903824820524554817318746432690197762103719677534406397738471392720403154710111452375122612896482024571472277341491165848533196542914140874280234908137249764516598001083103791716470664907002747232119532259711085722656496897802727727066520537034440194489111584579108954457632766540146735272186555352865949838442179037983943166915083501932463646575806945341094730855546411537226298522237014946646269789209116421068401647195510849021808719588128283871771653063228736765552606978333054588238190258558671626443767223676367730059625103893180102153831948178869229552432192078917126224252180480897101691592635607053453898316264419818313754543751497525521666169424691886396917781244593187036883245279034951767749296179394156229254826713411860993698941217669897467007594667909165961026482285212184675358906573082568490628796264896113193471325194973715268114079008894431197483453387554847496675813021731387022012739827238694269443956734925064647538554012415042033396678139904059670045219339740474933626954375669682651516264076346790225287037570769876071099125902459599954621578114891499549850918417953852805746947572479064628062867265537734335856215194661482190221520926273115628009004061740611598375977854586166032856095847919288609847971402459697724552823365092844515992418226094493740686894314325554216570325368645198996180795919140939027901174769531762976211704618733677068676614069449328118867067259416895879000100225822109813548508588231345504994279204001739966856032448894083758780399150270525091342457149900542280211851320750099146118926629375627160637086389632230344923143513178802421518603469824464786979493536670963463668987850706173732095350868656105150370572158656532909931820823740212508791864162389603371750345758664273125595511408930374706632108980228877376307548363302274420205599926678167080120728375050363772884811860732960235478633715579309000080091205252309336613159785896861628398903012086375509662223373095555692627632588660953143259439403905161649278286356094061485183249114595644792558342972191896324048430298169859011574633620382224277527617156001825403970548421516831290571284317435824677162713192871481903089944758402349033582078718207309115693384820676419921723079190500397278626609551831935734085035421291361483453996591487902673710782380602356207428030734903665695295263608653583947008124023402590930296416048474569920685377623918859382920802977598221959575872254311246242956818535523714515901741289336422745134987545350623605567390685096959545733331533611418750260490215964571394256185371525617799264051184448076284046500551422127157651302213833663785626136174260780160077677845953738074064538697864604704318695633133014298781134731895241751162596088667218241665081979579839510652291208602915045899608231214024407307811746151339799983403420103685348911655576184616282827199924105017516603550756946907640974927493762354311297719837877892579047856764712608897611225178609533473150720717710178087196792638397060672668249697042963520446461065566961983116921195477337445305709625074537428541745760618755845918479720951595716911957243428772738431391725669125979220360984702509196086593196517768159648382153071234032579911734858385627976704957843590304428465835019288048771752822312882643350688859350562294400132465871829620426401385984890802375965514225374286108142514384033271621419306244082135195614715672408465278260220315705635322628872673050481707494322556828577977578184486117813580850293611560494187314234909420388429575745629813396267835617000164653105645805438250305375848649844090803258167420678328590327915214868631631188463945660017420002642519578281935216181792536577361439787448702224377691660340641911646789050739419104164919595202570146578232314380317050179338732543423965876218880725877004962326496327840821470420989852337182346026429348869508840786261409406685261546712700800241953359219816817023766656251118164342976327850759025275765803359995314600126435566986896915401553808409472741612701390916503635100983237756329218787314353765344676362604260932211201370207254556172710393545032138193738569027529136074587976740711306576116349101182914157191015930926684564126801718662671913970856552335223722763275242926343535671080876592724416983623482311951251305219764201081414037079019763562564662485035986476770676244314806621657229733760893744390107724095781308215299735481633675644542745271049645597315691694504949400122575404223196692589144148514953460411723217216827635961926783089181450906832342947456996729032775678888604792715559777304685695748632109231647256925194781544193614687771793450030668021419761262405212336850124278407462371268167815350348313021011534452071206645421582544321462631260128331227655983207822255516785682813047659053834009185637869012327326066996236209239746545105354656207793400438998951864406226094824887272543426223255805231887263999274255744815972475345834168133268082861434277186936056554605160974071182220167674159502829168368624428415793778399787681096083262548843627821633257831529018290837731227941361424198982938914841033331352684574137374673924841468586141276170275557139468649349781375324061689502931146063855624746376810246635994804765453540676004205355585519251734710778098188243386594566300186130134612746758731204194133535452924153175097280980215671350359677541200639163301733975583672029875869700396907944760093707396465850365931542460274587688773509168208251673275916600214909114507401247270897318402604049019587147610215680710716277083004947355557057565238803534623501138517810754153034679029411989485228336357823266846746298950754303054636927504677559698094466832793186959173216439758827447220459033501122142927534299917626153672651304444776557831045380427940341451389296192728407077769052737126695350706572668661096340329404994263529583670792810126010879258924920074663409352354968459964176255142056055953837971011081137930833581339541368588551478266144599810236198912581528441217185160041514930948990580263536632282888288170800090177324937626631679293344018045564263831494828432868425163420186559046087556328589114121861697162860897651318687605471367289960800989406297717266603507753300093174672313705632456453915637066766219942894827922711002008690939570929294213798440131058175787323211457132090767975974626687459587550163978753882618470433361462195098032922224241323238657352005108981996515687174830233145369535217569783212067987450909358651453235001967463888417750079017116514661300768335620920799431316860023224867535103411057340519907648171214115370807706824824503172537323930051544784647874732116396408710175405046728723993118088080042272081216653282362973761484833778087266550392148615484611626203013353325959849588901545619813810064861319322145133080374079535369615086591788673480000400202516692323499358992326708454151754737820340767733360029578710002083075762766155911115284161147147743080133292109979105350784212379788733906580907158389608539464778713733124416877780073160229404634166213430882925665491006246066972035814100772999417113738658665912469510399643743168877473162319517534935095765196168164490643686143546624911605893356443443387884813626260000544692204403226967205377173719397159466868932472234634190851378197373763638847500400014082272698494610877919094964182006407753368365046580335308909957070398251622273352177206890931783919869740348005615406829927956158507041956522275020491771691866576323221027992944736668243443710347486401172870354308077464874635865038497050081902667431133486500838784219571839919135408928707772016348472216038925525261480048587950832098033300218461296128441994858318362814817395734692963778855541298141681599077838885466241296398599013439213890241799387030245300511790145992018830418162822782727664366339663615170700723648976007885446638194581818537289713534649197405127136937930964368021772348354194143358995040250874207868953557119771692514107853521008300373233328531294883046579764480992424016724517469740792970981619068516135489933523101466147898449881467935010069031935158288263246030120277054092616088330668764348935425354756704475893173208611332662235424929766270148710001999882824767755707089823706589719409717113506774391712647721778387957201227612852376698028902289971374361931379534268258691267063866491715014064255432830510803109931084375345723388841810502086287573903401019987232465472020724446864562945622870222935026899432340278651345982713350798083892740359662664932526361513897519299907515135259300037091736963674615362920053465720372006807716037955700598832279677810488937173615287508682196533374263018517311544454223654817826437532335736293199408819124253116602602306256521492979231583616925739256280980846598055952545586279065613299606616660092782457921283392364433539427403194199630793781864610827741900669689518572047726558724758001197901347367062819031927385582022343437015596768000376502999598093802290292498932455396774164939792129323785051755864784590844676376181440322206262109639333492674413260368549865391113150305546484298377462851155932543428896865270549022146377138608918086947713200381954808428335603032795055395189834498832570255397561155468313493791267234842799755962457592690577432515955358533647799912357357529680399735517210470545891225601438114546923764858276321900931846571961742817174155866074111920759548327345580578581247226961336760349797408623436269799147920466068764937200885415555835027663511441270655801330774664161665993249481092012751318963993097436206449749531107541316316510075174792910960461218022814353580744086395899351703071934506364998162252967052356436199195294588019641993259011881408698799358699546058534510547956334762351150063079184690580149330494273086663528306303244512887688599033509236519143561665657254292629778633085365615255249744706365299286896105606166254553215986225738629906986598503686133175854428831365400521063373712501001607170613606211800888480601591568353613386504124518342257933621772094050617212779198243273960957642898894208944656115063676356553048569801680598289318339631076133084097113852183441755802552360443257406731155557183252328984298817231107561456575535587976516642161678716409638918263446850848034335036790732473185115086352101009980029951772579623602812263560873834839024628337628390592927927307323034730449689002373678138022423052202844349379334337179756021169126486183124032525979954974794609411335136352422829804134499992902972579374088530933349861132042978879054590305124467098302555069975541566258860984179315631520724439491806361476562107379294912131403660605537454569215375031166640602329538885881181794848661168639910667334594138828208189604409569592629522912017514213605863317772495631389980412289535466241755164155100925957142884803006645180780323404853957327656760645520731825772783244564404210202827897823323129832312513057696757286529997943052752574891005527989039480556014838422672113668663357845222081307599800334684529873687241976811191873748714748031593711990264393021217645605056259636098387618210903824686684582040501994994338879606933880673284203733397812704696975120871343082256378033757948191942625903245208158277693896740927821546972171018508944076005936096137405177811232674629047415723441173125376603562638131325341204921274158798805611907545085225627512563321657453757099838428502404796612264082368051459490289749895940031152093255854513899871733436197265313058098197347679996281001081598939981068040652853818805811752509726662480236089601746337060728754838267748709169808923747384952184974665379264063706229126971066471919370744014569271048554968143374291813649611750821406439440596503413447909501189233080968323000316122303954920124778684051871821153533291181035365229282770506116700913109335171849395721659011941683923528454476348432334478856163862437096699395517302554114912236209267652872025577103559264158005059834866695872834689791091439835232209208168419307949556799072365593474259040463260096584703825753545695131634646738208750524999626930874427873811318843216700726899310443412581962875437805367165234835787422392786350561252784824704226939968632598938852034667201167258192894265583247695058254226383508139386300687112959251574799368571424444412789309502589433213091902625174386660081101480126114581928569431145080547746959889458005715681614963907982612293373076159910396665172516746378136605556667595417633563915489244748958473481573885689594582004688971487787409454006191606978213037018681666256056488635372976371116675505592362551177415177420040400226556466002055857757992470123619606005545931486205420361723991323813344627618511477970068596916721325740908941791234566819414284178549883692200574272796728267555008712020943763127984090733554908848326915057708195014603611474211605060706641510497854382052700601099617849855659908166632011445310580260421575351949739771922502860730357264340890105437323345228568851875956927942667353245272174384353854163923342160580577285012372672551055793713661745614060613146514712677067573421363431947930657341652064537687420088445544211803418099475529561581064055183916970767977477813657841477116233197942533974602596347972797559130174317672992245136132354733955947360951145366950633440957369499930331432038115230791685524631782791269250217797246933257774990200648278711594393363244109608150715331107320810305119849728223158723952551829162229001053267934009953863190226676752191439784009336247217069635839590818960808037876645521836758227450225142562394448958399611580354278359364892284890733927298750323854341476707346971725734062895307851028492078803998099999070696528498842631209842994479969892216943976746464895021292624721958862911791281616340526232419389814495621081161337466528267039214598820706450102634642730975063791402241617158839643051792400514795501063551896586456903834804230084911672531131376661668502041847509109715363375274836016971206546510415106415075383377017499242251341444757762702133840680624811219448523725863282677550093995515558080435765219641820291878348273319892199414121502956033904819613312798662728245312932126619662796968061852669278414601926382385121620577228055903285723689181591701225290246707315161927282677139538686100630131488114903638908824964490651974570806482272685263487112112093785182523475410627993901949682354413529414458150390384836160148158473376957535184339849206309170251702200667486389559028466570335382849043116219903988513881405140098696055470269358575876681956960988175636054344235687225580343364538947026025183709439748847290401232018417454499269105174512474872810141207576219028423203685205271125163069813542052741082209554331413023952801809291943864403914431320210311494354977695646788556696487642430528793558626592381277527702803654283680403400091336927563417711455748659889432065897534052921869511166711760053584842194110796619872926574928958483265129344854014946400940402097216524209298893214474561698049956529228013032289252746921074710997559252800377576583340453394416146456101278686540757366227059956830652114818253423964684558482983638970637925913137165940342834946262141561811435162128375457156062909224701125804749816856712614153641165229604792971923521796024823113076438672518484923655555794440112651010070551713606435888187483286359404162366375650610146854416853389504750956673974916925988077542143199705586255345296068820347204393778040629070497165345271653912788589841191285985692531748884773602538681777693373361789936979250871566596295144046810039556584852873576420719864660811114067297892388779621596351678012048238873315610202214154368273045936810666979157654821724802504025606110380382077499900109396131403480544856903279056363660559991527954204353269277515858913920429481422176083262125298875090220239831404263287695541825467505794246493353835387371706086289379039715519460413906973435719574089405132822236334293571144777932269758961725220684733295238707030080069789811125453927986309309060327443849306538926904014685290379063415841993635278692977465744400867146522023834446822677874411545055424450535229715589530940357901160293790687331520239742566607367840629760647415071123984290730516955041517446309170263241757915793055605829726671453355280519577168656987951958325291270797603709515938646511857234979107348049195365227015252439302366095105955096539574888079887280477737129743876915591268200638121176490809806920636182048893914067840415949382892116608160646233910877074084296271118477455105881799829417294902126210448808051483650807126893079656112268444987342529338823101892806581690784016675170768017276499247437844597597340910510920606978526753022321527238087755612384920018991094827143710403696293042141961684454614284214264079069110096608841635667094348016218638379963884139866809264427777046307719876064903885477517335490620248426653174621468727109362718040026103683597729889515416115730707908024552200741696498511915749998044782722401272693943934012259783456432784088924280530589901425741208775649733763648646411124672368368016697030849674624704119099650954611878369936638757259167684698409275857081051866973983817696188350483309580684918524163091968633242422576640841571698876721254391286488677966204417864376974049752534911902700323974048866110537431072506622390391155309930961636738629341490101174115131246811741509045199484803994720904669058178236712655236844211768554420349091632718827020863699494503873827991447653302870697044686002623994395227817384092318037022166173287004490317557160142367018291345063721098596184744595109657539365620462700274839964907316869459872457575293534019615728136404558890732560000473127125801306660060560916839311292746242795348057203232538797608115587952008610457055406354674917813870425044076283142672142828870108322698167498719444536774115264214058164832876451622073609889582554722441583405534703206221416040547766484048714946415920990110121161134895720236296037031580999770359016102176904973637627314261374224384096240442677071689038177505803889266727353057104632871024312438765290284405150250664771983816341718905723820691909089853950981525799345157985463244912066431872745429354438072039494137242787216743381740059967134913818104648526647244823593145133285767186753215772048923544356627292735687379103689669725957398033731944964428849884381852215617561207316045690950337088788012782562000118376625450729004176990324598472260348597823429352235921487748502629242934523893585866728077763892771454777956018399528511568200694083603981864595327500668142228261452121483508670615851886551415155382370489677201218466893890950497308267041741245276993075160142537701840001565464631802329704739552211644969486454030221036246136806564544002274180370148736016834155869582359878547228548616073774760634413943076032254392185315392638720739744358698788675345858961231568607832417110165268413576609523116398808422552743625781558840508832347476199321771383137122618651750505532885477125956657978767188914453371369771652308178806681872203988920880262520757747719553884235598971737869539173643729066966939518041285165598957640498995962441484205794617065238690285156451864478353256238098971263301392096334312787959475607232889746443565163701200661290898495609388948819549078047214550933378960054263377501970960469017757369623498828781402766110128689817773716027352228872535143240301131434976857500427056307160956943072105012532712253389178628345963502776063470651596441323227968106599174063977393733398112162927880392380276822298682492167591155011413067669220726544229848085326239642912201409969827202690324095560077677677505078656565967913282802836240369244974166033133008472701210054921594952973866667880597891767173820191263310823420954666167236790615313562357788849207000767377262493281581393036734849138614856860562869398552431323236219663066894755942166568962075121962822218425041892742883259051082551547853500119904357066014324789511603601011652802876361939076791686996375151098236279519147743137157844339924100297027674560167763029218793881723918413300329649101198144170584780054949202506677850055766310808907549475727076544226019524105629259576143689522098506585945762777324675997404424711981394775060213701932150212242665033002824151450177570280860910149825660641435274512675512530455005440283699170244569351646571413773927296966379946986988377220476528446953497981114922456391898408804894441631870527598824795880191558484016024482957676587631749689116182895452624031472890837292957847770942052944124739570524446296268975321915602119148083648984454872858958086808772824319335208621265926192051131315300378186015636310743710471909669227731189809270384897515832440974021476930315724948797928219739369338470845074006562013680173441225069351258630814355718753193384572046993074346395165963097584561565790871908878265884127103014272361543077221723753506621306457663811090212513204332992206939531785501421445639335839623619342414426066472074213679013524245589438331548552257425516461413800078386296860968813654285027162718333253531792648964243496302461733102227151652966744871022761975162178396534039845824805344540204855173129362600916675283024845160406297927818250621610531665467706107257427842523521637821834126962334758714795497039983966758555748081285417263235492155534783005890602647263486741183090160080548255218719679963076921968919729435120865128033835710422522362779144512337897641165176929723695856424862064323739919386327919195246754580590289679927883851693661660699403534120903804199193011939783248449055964314199372453415632443629131286830078172541821503983423540145115230200884284293296063067489314260773369261477800679167320456489670941510695734026394888175785971632607587081570932162391087605084918176037203985699749243595633344093843613675270875357606786257045836773250918760017267967269222638786127492140774893446540254455015612792739593201668238588799970835792276502030652426450190791766960734448768038369700827497625102646476280467766420506692534575187989465174733802392307050430786965691316207863007358175510195800389800302618596707888600829646148533889927140917423161162024073216284734136629694587146355894131455302160296134333306757099688239228903326223119081645804466242765836356174180842764900776231937338063312638936903880163772937074472743530728375323246695045300539012948739270898142161005330505439304508754867312055575147427921804178857284038988577678226119218307268004627280841041696231121407300843924718151428204882972969574559800455127584379020689753604105734573314838932946401245573627151248491081910995421850236598762888493884716904641329469503221933587151791193840559299932858111276432389644479605523314859318013398429207606747779606501009593937384478750963646973161866678471898063683489527200228806275247360352623636451680166809431446951655786160891394363675539291192908327698701976204681543879050112171870718804681790507546823220677420139600164581852176025223082889154857403824951118762078803450229983031001962731717879279279762613311651255080589270767105966045884232388653501698740630076479853066231268743131191119703440251153268708100081687949461869161563181038112957815894363057810551662006036532709355051500958995597306261485533442273452563173595256194596485543313511085856358994262889861820397047722846876806827691367873748020660094539848246087115160360634293957770906223191970026825387820095892658419981616319875674909953168394172114418224180481336970396640243086205884310667096232132426692753969723043076623350937920672232450863778269282027035968303624036049319095784840700535783643207325637205435919225925419922874381529992911109914410723179170865954104965179589534620556839712430231534054817011023791893011754004579365921549614730361784245177400353809007502691113468354157472256534897801055754869854257828205497423186567709499941826752254295430556563596586235226695731427531469934055871813012134349012383442697600220307562498162625036516712892460842971401175103926459119449864630000922895756060435505643040160255218037169575658191137463087905816253905214887617939988065795276091140325238255903437401357778057776781166869804661322135204039936720447703875830318922225559237935245857335222801148903903257101946518875541653807185830185721649413556135979702958667145009236646608880940651282678502797532933786020008201312930756140216310317293265688154324595790465722757225733458177512866573583458192609850753733241443210012728889252599520392960662161371765615234899323836141361345954993331754005368784476949001476255193949294761492265788586387789919342194324370859045325629473946387451979041082283709245940595797698016922762696511910457347412342133244883006745525843814647150138333081501426235129127551446994333919080143219240523315775853948586153314860570494788812646083703922584352945660672033792509901470844865570893661138380711052241414294306030772878323240648029304721295247423475799186455301387101092159600860445675571145650495285473312739699539935858673048770614692012030949661171753518100470451653016875247161026189437134019291077474779932561266129814501107460522963202208396088205253192541362620534111930848800512615512950041470363801548481401727700566435444491578679635627391845235674788527345631335438599157850258233517131294400686725746996975042249822054102364102269450485890275291202256197921213584262868754253026696479178043639836887713636088387330077052751821264337277498361579708693860672329290229321689556482371486570871527221241497773805865488131676838771444647664264859488591391282223336685719421590272683096892765860894968693666403456791078633684384361018954076686598954770394235396003086773011506563093662602764463929458929722243242282481828621008340971091635258848845728665162501781642509057738920401393076275990767338750487977602395764008036620364220076397140284086616600871786079197072299983038995884812037592203498150756296039701769160387037075469922042164526478067932806666320475880862057593452766532817905806865816414352485111123605292339248963174156506172382971414980280161097877697887883101596491770882807249394315374983891434056210480827587692079332167683233862019096851843258428227635432461316697349929690548295686857168102816905076156152637650883017191524145162368621325444720393211435402010100940566164416003439194062235629237405905518491895588503513157750352145674625890360553856216335894443877699206511999121372258474413947211068532647030881675701915520139673001224361171482384253390622853194586658850904657764878713519382455414140234652728927461273634998901751439021776397596113702280507517401749293815296056163475233921981743031752420198301642238958867689601546992644081923622939797828776013121472898593392529250608451371855144528644055019961078809640794169559189878713616327174555096373371455851110214374438161133898789616093497891477153912068644094608088945686713360607006829013506803948248619329036143104230565606819604708015862701281338780336717413882524928796290042420528762583634430370682001521508709010178625130677768402875092047735979254994715554060113535942720601848651609593710897746871025698651742714373248253358745050698452449180412675653451129860174275499253755658469586062107748519044080707577119614001024063612248034365254509009177465243912018044476692841436036909056806992202747461369131979416069492536691422533329336773264960948812544291519723078851212812320656521375272962073006183572321471575657380155343529155858961765290437293063934400948739086019320095840373588552109381362051901732341385585392823181330692784102987828722624292013766877579595819675465971865423580284262472158814601449336903805113961695516061295796408467730537849771908391375683189255256453708420908416684383916275071409351925536403165807537876517899582779271072354301862548136304991147060883480469691230994634200288794528065131851349052786800029129325068429255141260649634656947046375196997642379776392996766860551152122540285065506795481603196134751295213217140391173420158792480233900323194185914287936878358955818262183450646260775407641158633652754283174188752562574277737002836414480195404704888134780855211295291644390623134491270263632923618764572775304442715292049484693475924030057359391397514930341041791827479002811736270630957159175625705239456411076523917540381135953970609941764748035597694780485824867184017545510507331972242149423646407436530429040588915428132407634300536852715646018631933150653523718819180540452936574274901272246454644229770787772721315942354251431204028466998548843422478724014270242935277224228427517168449453975750035304404049795068875785032229207301417534605303380063995301858611542321214992836376581405559428259362867418933155949173892284134146496918244146077519454956601278043841071277511517847385406918153113271951902105794199767367183044876415296009426055950337917015523684704704829470498072622641383835423566333065961388068199837451856698769096611582692209143317554425193370166150031220944861696699008971303355214065766665347230023256058350933559757200425635904205425664295916515704286409866205070187962096522719131541066980284595389757796633238079918789108144231891197655323343390705609057338511499479249732635556975955348279681998692664664892920344027376745850473598688931898503877305706644089531723497415903572114978737160181695663068624052585970000255879504004184139620238204915355500031505573680331109707479498332590362168398522000376541094104864283200659325332143989791876358820941264623940989718134598244275309811596858550667977991261242846355534322147286717696065060494365771494941399891898017797907977216500103705128882076262803399981244558397330119731470591274672241705071446375744808738633963327162782991676906850730523505836351528650469049313248018446092584700006161550630883321116592852128460957860897038464120597045371804035822049277224272689680689065094054282646189509482354118053586144762989583598716297560489413498730239081689400357904163085343399389839696799275218826524268160840380016966201916651623750132469226846696627699715215297107043101185969435723202676200064102261968053075835078971858043080967320323326424247486042545950911451517674538429256889874126630607251668376055733419455426812265071801537193605104240808727324131533648156849874608120597506759814089258027548503553602724460093264583551230927397727031785571316705698948958207613264658130224187613188137660096735058219152318887619257806292769820770525363028623365561306560781731311011546772147156567762241525422558513428150526724847753246282663284247448209286079997600649467007229939522881552584001079470333156074578763875255892668559695225329777088124785061068611166185343638535846652974502194174418435560362006539968262134545613224507929580332893802916902533898097084823920534310166962951195233902004877333377554886883730280138336536118977841632670223286121216526682116792240804747115594154361329418285664018097860087190160570966967861998505229017581779053733063567527334890389931538583359265617500222490317025151582283299486746497137416928662959619436369174999937734432129471044411966481295321022847962030923020855711713926304133706615780888183731469017932527514699668506380560932677350113558099629253798056490904384557188977952202391225435049723955286383425720907371842812698982737495234482976970111949320888688722801567042642754655599435078582360195324572631312030725354222370725169934951561910016230344797945568535428882210786258941936255752565582661304517889105289001468644777746743444544745075559495965055416352250632561826727099461851311038670262663771994528116173960684250822791635131147641250961122997257591289472529345309472835210638182568179600144587375311043259101567778097133990077929512971185316097722033728230724992705310623270561038039797001720045495636404614352750393640839079897487497655371890161691459260078479710250815159809782234274195732509717374485708135765126498353300484587111170032134893565559222358851785952589574052700828583443273920223284057327111350090810291049120004546940597496507228737800717612457149037955934215898292916843684744500870024066162580125924653952676639369496967374857294169543054463006240903692390633219836576417550595343007200248961347102621028555632396495407578372775641240901332490333970817675255008309795154184904063653227163066570651280749769873607490567912348219165709201319327815317654500310480873623804335082281772556196135500431875043536338306752124077594570639195916105906826280596455150560425219972553272995735531171170255219531615620025112988777892441173267909871083812546619378732425691787747961864001389226959992299233173406403636212174069472482153586566330303844264422560848133433389256740132955323682318059607855278185256705332418553773824398158264535201600783198037540526103907430458534861376042340352564407389079666886284777621675156632736379013950353512218463906758070188223235359213248612596291896002308033384074203616687255418095448855495843946735905160803251880016787976340467671613403509106305556708934241983462156018966171651513546673772955243386967310770160050913361433420279267441254628312917862491339881987664110869581329209573034856285253665419445972045670183594970827509289785793391113205910628552340584281622609629958132975556053140716803720220242656045599696928533821213515625777554676856453763341824400806324132192144279014675323086536076293069768178775716777632841378722195821772883561171878640478078223954757594086141905834570667099534974398656375492914153307403049510926978640062046927171219403701802842614016202568993670450181114071864464711339911590949145085418261228566223268828829741249451155189612642802178270311319448407587793890831303113662327153466670493415569612331001705147469852526781947469471192268681094127012017492814777201196124825741981693865924306184479496086508057523579498996631547526538132729983244591312996259907350386093499785161500627309363657752005399530321081308126161742712829310518183960813930751489020639778344616915203993412793956629229810064640255198494540117989458863763729618478272553146648650312702246292803581275057130555456751749218924597442788394183256335812613251256830274424871674495779487155925083227824536189746574662254889638911433283864136980068427703952060035278597577251482810900400220554854738507343797185718667385903978826927166206805690863703270766096673775765359742260845124429115103718267072257894311401735975179819322656380350425768480551651445658761398578328736184332796649196933415696026863339587811218062343618528127854944711889893377792373371741766277140539321580726975605315593339532837432672976195137382380588681423896118005076397047848419490721340971540633099829165603403723185530741891734387423016893699023939362441207397249368825498870031614236140898106622155384339308928328807085954905370242983173776315782214251730695487221849278392195696833961337947764216726845996099429548006598725860991082325269161722629145607024567300802333522249735880610984169538171137614421921906993380000068299152239766747399109930904597193431574211248303648747815032156742539792991493248663672034227905546487401452637212460391533395259351174441077219808333254717829888673685403504673417977248104939782489478331554730360082992854412379128769548904380147841666207931738712918876988568058075090656097711702249697243559628353662805443375703443755820310923183277505415981164453041720661854095854826870217438406209360159391792683243937926731679793845621881294986855237945865084860057419292113013942133708651015179789556908313025865300324173021855072849810385047051179990415047428811565228845742541511325586714625431293433128949924277998813745933488974672031405852247868841914935703304582525188843763650625196842898034047479139244022246304866671645727889082811695355704924155709606719613157489979874099044514741088825572314567211995824382178854285117062170666040585418439556451529165850438471436418326251010378005196324636031291312376243045432563814694806018503899095686209054464938707833899782895260073525800136419793609682486018628321014564981383657201084994609353788731118069349090669768942268853714778403375454838431146072572285385306673568209268109817490141385756607497775485868928059479638933269228429530142481460338331560667964472995726925632965445808204755622399850692785187740029053435117923400784267002613298168402058178949182103990031365639449607064825943908411308869488747592943306981666056119793132142894731776775219221896033833534800009907770408999947539737624272115408834099905697916116956493152745897031641931701854892735572045362042313407023325850363809566515889275691560861032523638438302355577975885481817120693962842282864171798291807497977186755723977782341257281259495160819047463557186412018197553345986515435620370990324827950114295206526889401240565801491635442993842336942012404289920553133879556862332709875831111116380765242058037632298130130497299412846013542439296142776885192140640788495559086426159793229113710797497491201687940372161642892314451597733582632019645057685680549827118505705942817664963558745081495883735448269714052014960718621023764995515135368714391752248779330008149388292111556018347193816575061156390358117927851230312936711667855548626320075386779071998102583092713304583692959336516010888173877930013347685566323066418802160957177903191660730317424134661884880718729920806090496677436204334806062795134006762883995956254839977273734816079636798347655559566887433163737014703486465324625716261770724159920325800635747870476305680177662624531135875591786250537953585661501616896336727880624274705405453981957601218581921932497864172054185047271163591087550768558592267404104466401589878357093592445960316440084858247499262623759797996456889628609277386643862588607990453037045093374941051380521412379658845883733024517307121745684577026536872506084708656673343977832179958653234659885056125780250301100435437620321176737960875143469203472642990364384307727943129793614559474673196582474108561554178433676290821983728572697190235216620662196942546292973141626179775401648741713250329116874452004009046917941228827162943352665301749199157064111858139695419164877165865189610396470079373057477185059112943803646956870211465990475180095550885552310861272653073501022412315345706781011814889051919468755325790406338361970966120070534211902025112483043040472770985392331088943263567657260696500471437182024170996615887055879521340671941300200790848828171714560018028916264986375173871459087541952353693677717517618143880684246225974317886090034558236321907922090422846107779132269178221419418398960280955563722427155664272294075680212530888865090111460588456994608267849294699891877522568262641376955931781356060330946456073873705659582236710291849348232105366421984942634032695085169518098907751940157442245122777982850538659067228267502907198888446007015042632568650367693867785519862559309331977629743078011500544268263569434055480476324794686919443867042552971831664412165416148698451691826046986085812903422435853048892866673194824492771487163292710505523068088031050991356244410213678260944363751123820816828454033088413161591882008934005333248798158793836820863709169147062178004298107286995140053836375758240385285164207218484491774247697313590700560756969758023459316113271585509510415509115342095271451095957275368417331649904724001556841364948950450708327266832765691149920884826515327438768662028702925254728988741219227493314093268446215688660492928832307347120241973938044814383617086076280284122248533808784640983755180011131545181738508329807766247848054305855792915265918447937723979645679169401134017027269486717823800020929821491238882910040319358744400075258569770906943291380695470266750499682419252048404034504459842102181764424098211424776803292467680103197192323195301827191697631411843964562432857241510790482186538800526790592245024475324108528153919402578165755174457031655186260038813222317279728631599316364551474515371778207746044451523403678081433059030189446389246797676683730087262366764779150818399896559810701289807605193083719736504367747912490772363756018046871830772937613960091666666886455957411580142716196661838790335408263613408001882277749836525562727408545044041174126297567101657496856564780731669281223709061520728748472138360805275147823356952466430500969132397283001543896771634544141232592993721999404378675007061097602666985085441493428903665877817515054268991525459432943783966639903619801594397362565367260667125084002878272686980699892281335381518883673181485205660692840802000264929118523503580215687272006078133800559902964454795727017710835637652308530094419311012585249035507515881415319258517259401442620652069226889936216810164601158260745789948923449080994441048531197704353696043750550289285774606367323046163495768806083918088543009361053235443577889950058976719799331937474328230667418121482071590841209722388699468182881316600746997826286162238428321249729227680122979544302118203362832558139579871972669265932739720940270877102643093694472784009128054414732784852562743342444384555229823166616667499547781287328590649936580510623945578257075161520340530865356109718493624103848492911325327779346435655415303531520854908878032955596002161646799779207886356333757799455213378775331095286867206594335477215725092679125041789697915811531693646210896296664542324787983287494078712447309293661611309123716444444216114415508149137321143116005027431251869176815965588707608660717847673252510490156049931533391596938386132228239438984056640900363381218171616135495404945704188993209793443510612340648683622315055681656114369283419118681637663357346163811968774804602088751982579078237591267796349945069271972086452590741149696240742437765363287879958053378868052710417498045392160088620798719319166315926599288983865688889820121362955673821116749664188974551440601403958269890300899322015119571456420187078579033745308181048134221977806745331425767342530261504336779041126068237079379341921450571297678308384244025102888387222039492987644212852967878287898349623868896052284657930381695100015542210348204187926430131690100362778120950808791943379313505731568630206325611623920220987594948149194003680091004629921655597419400585716233671994527355128209821168354343202856668475091118489774680229825073617050995453015071633628137216937663270713444616653101638244864631087269638250723313669682589091242248651613797712415200780615438586376504455191606531045792188982205682911368488245682352129245897797511225804836101858714657436254305667105357814351701698732183951563917000494109227227399910500282107948086157290763653095792464469223101925064287309337510947843871486989755013928688448707584482804956379825679735711957678327692370960466758613772787251134092594152114953497633364821149161389094130362407671188003324450070737139358454530434644322885192069361160629712504471750379732345229247695873208099723279610650419057869837220431368643273209575113465183891268579250000958970790017466630204539252662031066739989851357975562570667547566191987368352739574457119337330519346516074371990739740114100953829421922531275903562917206340123450863569622106783036471512976596063465262524150602417950638170754056771904447457454171309128309731259007416800352382433841829824819649160585489434842242999719834462253674863666176039396960389088393366020406889237584988964656807241070005613569684892123918031263819728671969954714166342611011179650767872975313027672734279032568298765014297439626488330709384946940638262820254793248676771711904991145625700326473485553153163025687106050357833773059355017184788160565525920541879042184982704856153765411271286705758856601764493066526464328265011982007511676536356209257176742737007410414772724020891942444148449725625489477249379510241491636207890045458059887756060420725658999495656805464772860013625533977832846149380016493142127714884352967707131937851046498798472714725258900106776639274634099522844288367439361636727942161107070989516391176999217310135711855494111774694992058191342422449269836846061633028388982828451417900802469211391053496946175887544302339768760749696926515658156692450360417376937538105241062270264624152088435899554053831259982088668054673250499256507574530662935872930188378200755254655768693961681481724102778723453395844697801913602957203620026665974513430492324177405886317718452951652174894919213010142580826821757284242050811074961361879860058099382801670393311996599209550114276042925754708928714109394200989159641679479489654871053463398832373568107692280140759438519483019915513289665780854887073831468771470781635073130299405298931017831454019426041623318352993097169733945035778170580596889503850804154545056603566789800229530971313534481785820684958391773775295061183493252286286269993448103726948207838854633508162780665718592088098968182992368958812237898504661161953857106866828723725743914633490693243609007737319905770772076389175725366096357702384459906878997915626294207364915841611697110939645325581432310641445733413646076169868151093919521101007669848481154621761853850771687577709224990953573531106075278939023410598445545281828502240898374645502357103547703901919399024845875419372933371733346428149445455004500935982954076894018029975375399247132429588622532984607570855095124589909438837217726696947952130919815402695077127825564840529470847666490021095417670001398314744241399424053001579849183450294894636314816053057371800452171219704058279271949742308434724887649382320065050676463776536578085949168859821807937034222033002735429279593965268816403048692877591400277663723673180404406185630345082028439196440888255728347911991029087893264807855693373683781716913107095244287567878548356060469424113539940014899875688391508141355965642815151887332089185719973140418138868520530963843882129911065728810810766683156859215485605051665858269274647997070548135556840753978838577671801858532729626342294532324847209423598734934430172187115004712503340805550316797517924746828303825508696325587767333893723009057901271099269486626786961169282657384727534312242754561285844186243108370366550077461732445168378917713375672113298862375783331916867175181273002266301871321764516688309474461379041537965120189757449645850292101971834361851539172164433262270344254738339710548154204976774536305566919058305645047378765334930660789369906853371660057667658649004556116017477105869906385219498466423464500908087040756814181968864631909173042691326729149511643469397810905766991290732055788587660789702565977000916866444671384508330273668383411587342952041167979220722655320906499749516602244973744259286965607726752319291125504011045200186918843073252634504062494407971901092140839321303417707851558277117924038620054961351795006741321743273034178423226053887394902610127360549764193752562688307345385831487872481440027403080955984742256917054716144160477945637180034443561212422660418002529829754016450197795626732543297893587044607703170240909605960523089793223154115682629514755422446486523102658344964406759582127400382495167390557891815900804480787648093266735971360820666691928686716703026674085885428528528552295947907476857253254249972850460886738336845807305997436292441825250262254272745056447225475619287304327647675418347710086265275520729100748733784309059478175269326139862839456251384779530220614416072472736160842329426561030657855214934262100142665738767393730612359755751573266963038430112784275286843328549089863400768763026567035661880990981143414623900893521195239654817065393936916218499029111860357328676214049748809178998549803021153777582750148907858775654229326150669326607742993643155585429477923787746962054139287183617419070261450628545867014545285929865519148493828976021344463716445458998567347284130157856087622744964391082151928516112921255929524333943738706171739579033898916213934850369396108560074187809730614028689175726096148384565606067392343527951371936144607316923493713150940436055757089296762589637561020993694617661649314385415094432330278743672549038767749311293127479324566781519178936771382815318675926973510167222192263889260909485625606913482276387240772919931847688063753167279984786250635972176291345855901037654356066460640884398909396288848850238492587852506222856274140251403723171187530363225945792635228583534683722563402054621453201629267054026485849917838197946363579089783062052463940545148359136271159498989168158029029443120102387894905814692844618922247815683557330790112416042533533582981843211309373170157245532300232308132847075658468492058969280040822298443407045862632073386204020473843475549005776074622893077584905487595242041107126888477360814601249904459967898679440525680133841366965979383384141774627714762528340951224739147462656021951393414087757276081816626625585526781894496852304587498925198713464716887683725421138531863375442301802683487313714064665137962429369939149479801604517760597422681077411193288964978524686244274632021669114631968720005826885208796730437777821063394159726137216659987360066667878666352726910227533303151555952242657446990998947925676477785926071059145064973950834250223124345708118598215919845450884768328948997878555366293778362320262522458736675000189236513998843985293808710927294780707300514368566661153510952864007104963393246472783702341128915311683854795442731178809506922210730921043365186991430985906738726734762575552331527620270174513314382880839947909217180695209142398956942023353176472313445574994069882815990769557782063031574991584379595267850735085242924953496009544916272885814134802951596048109439517898292797468803146095781886871486949358199401596259628455949558717004755568106661541228698290622622754339659767717373643184246437669202942321519455260496341354609756403712033270892154964321354333644840438509795994704833653654777759708381378501361872033182274142424960149138689383125595842571220870286574739980725644894247512234153929401500956238334372097528610365962693252208491663780667443652499064512501161432859483838174101923959160348840580405810448818785417025618377730158651119295846213058730201354856857308885410095087303165274591480274202682337025227769496411097494759863080190170584396821775263830685389999466254501024701973858724840035273221029351775239558419457823813481680084323385535884335998081758794625369637326677968550294183322875435943628014857880954853719125100534328945016294328611466871958892371308878237557010278484508127989056963302190497841420763158606302967154951016722063372995495468268286922810451420245995699022670775656572015739439886325143538526328202342978313452536349727845625093655851573551212988039418822243204166758469552033104843301235510438503533015056024931559630321262627227057799251463568951658324419627315398710099452207094228667282911226113279219881488997046748972896513242519398924859521094461548771134547771188214112766719147360302030713383311498210013748117943169153102459515515814796210213842654781981529098415808625997863505531423504121832107949668319789920623175847867073856920640509620161715981688690300690754868255304142228647386519447040353281740412310635614964035225652260758090865462313828998287725576628449920238668782612778607723967672380567690489167068412783984577974402220185836417351614385360418070261670372955060279986266936425191778449123504151431265759528682198571949057375860303188708123946530104209737602285032243630270626512833009829799172936087461055760087531104224337364278295263168433560830496258725441879445229313340057867581889092890486919721355692778782007985979769748842701634349205525591898916167053045954017101751032387108030041072625227742218056283170404931803494136105821835587625030364692652685967839595134298076025109409066502516470575884925515200587563236427530611580524738824271187824541667142953990059270505995506057206384556396148713927902925475663695133814892221982810900823124353775865403289985802883494185236591355154573625594526448112003035811446116139947911016782412450554756019972022340683525399800895385586432315696391067808598684633618300348013614921667875889472903301251680165401370908853497217921037429340670578522045268043109643700531497484855402197124352548121735872922880304084282184509486169979495125284123976630235156120369692502915706375919957794599326748012788691789432854620819296835137531564967593416627283005150578834446764785431816469351154677190160637548961000719496757579742465861257152805903050846463281086802826846627030514803953961962518514652472049090404176080206653757106746378997299094597958699315082402260597175326971693041919719561744714722608614906934352802847357199638700516211938789923518758892417944410803201153892661383386636634920391840725900812223578902863560204773845341590781580996709151089106622443240918817624720930682242995493269897984025357369151758618544105740869001488928480271112423352233335368094351907476458969019028120591225680817279867719093974434788930973421684124394300587711287132864462497163129837817104935822836005414352902988105469430838782214702838961938886164967890459131634401833988297456897519999775597998444606437402259784483825991142867764589034877686431193646234217312608317353511908444932893027251907510610392100908148966000725284914297518445668782533574578813507014618302708008325930779153933334005825286131135483245452179767111919660604597708406839067739346768851718524500686713927506079798865371036313482516789375148145722509462785742608781406645209122619023544162136801725078292651545980634112995306661419005756119613079336301097149227512231046793768426933399427594191440415755197702909687935378856199083047431798619751098073507944797711256843089220929358342662165665223978331126034565987840264439458869017557878229674771423232930383183630650932908654070697231115071065272192726336931523573918677064952562002419941517422556701843823697067380423481257525103200084025885955799773299663242406408454797001127792776699925403018988731022116549322701411724596455202055492826191169213803488018656056722779597174860437845702985239678792335246920030864977630408644916030123955944103901948855811001721137108536870932633870681986184459812769849729132302540969312440413584692083014406254978730808951838261124297296865516601012484342837783260747850540905424673902510056462523673354438352817559896964784325245672139886217771264561929451741997592104992367220331521297151743650289301884370201991716648128252666135339559032838133842355815980726401867344566317143432625983573446510234876535663637002283790081102920193073873799564326382927131620737860223354607344175454996278705389305418577576576570608016779121737329258453833800346861884165302314056316694341592366832931538697651107465120673033814525252480613748113224469460573894489342112631612577017713032582094906609741603236118919834996505576095581162859210929119289236928590600247920881966862998812381614952211520370350113216734069881179217887061643833423342783136225786601834673116345577681213361893950672536116329254457138180735217703356768710991622859056334378222017856674136856243634372890793915220693363545528311707298088886229865533370041615204625965938595959321051162303506766741313901074065823189274608943917043156348767479177738296356468171676823987544178450002542381099132261342627677753283890381223458088945013218609946814600987183056617377771980779669853419526392889828115346337709466240334715772034463143208683857012199661396217219694124193953726736794360070725627858627616096898275653583394861588108650611301736696564939668250005881754881135821788246472743885934232822237441765262132532548494632804587678429181801870779727511465168870594129852678105267854442410379650286192327998054121404958714291411213990148408362357051142709565136996848808695552857839107092299518200464426556566672747873667743954341278283668423481442126445740616792930687200462123020918038066140345659085167752267039958699620174057996969784278316043966135687820959477235961049532607347567100459694724199641992712444128322638477871880204778074461344765993070658672132049849412086770680520406260624866536285347686254980643095007133508836281524951095841189499368835311310285495371378651174064087510014464337439018210005609801732051414071240096912219809828339865804213724055579265564677186224365490764705244861038846676772561652346187006558677903037628323053657779357157162039905807177114656170961260232586770622081946928703207358345111396976210341987870355024061499770853795450310396788247296655756642521310786364109406639264881799213271763440035024911899368011073952513931782794742264226599262091070940700620010998531114705142710974809283112855156051395937820002602253937709772997075882828271720670787297312469558538195525779483908641005542500648630647918626577343909768561327614625593146582657178332006182524533703644099201002929974479233310257622035223508457042463027849662262578143256613486040802226375642025126643715068911134307512960330665768905518038185894737713790962815776219737483069119421283564735005894718498176961333801112497973495797116832728400789979117296720092471055086282580338343883361401724728297080691305887229447118316244695701628959946757927361997874048670409760411348196706283092612958462525713887877846284149758725008966094322362978452803468154828930130919773369105208404841006586023599813782664949283982869113326354502477541470196986537979964538508706984270626205626778935196020833037406044403912476550660832124458266569027449592159614516658935994663378920615023689954096831889879484615253952512121128983469088718503840993308797733155709944878538370542706708765948771748920479916167279526067517951166747859897134586800062898120971768898141549990391882801780222946525183845198093958497390498701633891978332133096782683088125745787951412733322487033205582257899515027499354069598796453767821207353591833585591998172418113404829364134243480873175423891476722037384730748893730582168014697788610792541803195139663119440799112764900932686901223948173423073742786492857133337238398921287588779232665941998188707522971094186093164271153779539839899583012899704103089567969472555454215234044897319359673189777495508727176958788165801776494997862472128963103951660150303448282890784926928396253946352754154145824656695075594140666887225311861992046625788297299491820253367843132004676927624696028824442674571728969649633826105577926668589714180916203259243862746612229220977000074959989672026491679332938028907255838922905681886607634787267796162794483213402967905852961245666303929871377786243943236789504095261199110242607256281558731059955692389778757201211852796984285889107069762771351817572751908499962377355022124083622718788071305404003601440392194720920945224549411752675401506982197293833723991248974514657176105423756402767510407836666328063108910766811829416086126078758795782651203568996177239666076822695236192468679319211075827223733627615043560069449649397086866603225614431460170229554780065379458985029885282654434139779253482584355751666541235296060713039500084783027891376980074597825257798465034191328787334207919561519549058853055293411752381980724776722893761146071880541100018761011045976597613762002543462060885223952985734860829177370709502516835871791236767914766537014771387530002342707016445073807507000376847326515023502006836564352849581546720939205919090785330696424907648388448534424230181006841361859348341517863506592250571891012425201985778573893793242038873116336341140568150441043466460564362381717886246822372891562060730601957718086611728238374820921832995850564157472752725920441310199498288129297626874910485210724135744611594302167826996472042418779304615939420370606226796514816493655128738913459696536754968032896017620142855896121792890761911530677189408488501253384582010603838672597816749216302615697647622802199252040681075827036074241873065807470663618456892219138234135920059549962047600941457674454050044790356224067708457746907683658191272808381779542950352424068815480717509661094352166596990216949962111131787536788885989688436087677712447417694708284010253842387721787289902156757988465457087504733241117293330168129192391061439542275449064048621980179727568192750173532924233509033181149986239312800929345845838145390108307414983040877821061453366769903818925422949934001465485031697713290721559780214082391127021540173437941999864267509567458505152096563602519948566139445720405472151547826412325947760580891828776278802990288383992838457280637055716130885027239084522454352016417542088363934841416755605794341124129566200300705130153201677564527291489679520366488290059196919872676980301017659886295604061748779047531699025770570422357098251576501567323559670486599523079025074560975012199682059003377214658619278375527842760521326898299367798868130869821957904993843211431794109252397146643274139488624700811886597364102765069650351700444174634989090188792888303370934126369647337584092569613857500857936109860580582052824000333960682699811814734952778706248003339627529240887002596742997656787756258011626790163948350722282362047606090797485016939511809807338447394717313279994912042687616025799162153673687162055138786036228865249185038304305189900703449604059352513722548282129894772977924478870764838369019050348304962855970803385118911054034960527466724333828442377670021816615075772368253444323311140140478564278744232919956774284771805459134662956803378074971813283013114093423459225212199671300778185889615378905354095318662981682116033031981887252484596975944373285118563027861510582852403555185420246723427355787311306708810244402570213608152172104593424531249232345505308548038230531137073552140216026794810719458658106999842556198260319261625106265811943718310039090562468529774860146477846494044521379206262306516577308404287906273206852172977496296121171033916126569677992203165422616291926607224353455152040334995198893209623075035617676065852577978388168353106640717819757087313578512991002917252455841772671571464033241679304072496293915053625663309856160645638904984589874231906152952935276771569486982230113404967518664014612017763488235055540891798632513183112585267951805075678581440586520008257630765115267531322895552041000962838613196474544136339193919201788856622075420274995656909567617695556650021720299473138697758114773572156271532406870730439664282461745334601678655787714633911457185749733521007590688898438204405773152302944691348461377549004221058268199527610961444756320996207167756079731056448337609390933182021712186267841233105425476680591124177864301899682041725471226487732564766717970301998251849043585956012706498296437222414593875079792674886061849767189111550671066267310136710847622638658823927737587521001178084959131304698864966291053986166187639512687625805172392372046309366937323722791572895236226098574885836547763801345895933348361848542673183819362075154222023198678877045320256057083763989588537283459137464285802134246050338908921132202598910529672835529262991168227863921668382988684940978132728768295200007700654613625140305917675122193964894369120187363080196602620563334104593518273329080223409389222751946478858381405727136902914058245883167208487382133898425481569184336203064947808281148916101248361648649454987527359308893553668253048474982596541026125070049530327419230700629442162259657731611444852876288851793632434090430579306264269810547606607488827242481364896099660063373593274048499737933263096128320417095780930416062406586020303612462561819364722321142052565140007221156745959003455462105416346056341000039164434082058806253929332943798429162402550144485326693631360672776370114645856545673056079859719406562827605587596861453207327498829702618080058471015863607123678658869610410726763277824331664465021412984988742043438240143077615167849912904281414701072689573281858470657537262067217248420063072133775499858770191132992473422392969041229488841161743580692255865742740701361647131695463306490466579246756682105504035261971036712314054173601725906045776629021150658573057023975488780458599792101156054195620601150510487123353938891042874597912379654385582811645667539234590549451845297839478759998126142891449474703037601378408727193755999620321997394517749594357782660780053431613663560108427446622882145221904984434936315908525209257693593603592666723013755712308067411439133547662515669319216209728581181894340158623827351255912009002399049680493404209472231234199964808595686355404891609505719920331071655470051090053428829768268861029371870955088984669834293891737938456593402962029904682253879209550880960707614034070082905058186016194851545207818075121526787017235682325628613682091587514971738524099390394855585287408825120843191169300720735305122322168561386269228921128875024222051529669007170589257302753684345186827468206914969139204631349396962823492149627759912455103860496669440399347556456711017687166920927667329838726240871148801422834919585811170965362181878825660094288351450603349529689559856437659172494879592046024310560024499366261249356296433493665160783643878011670288288201378198923218976787095872829928455264013639890533396894074448453463510030079914878144229120626539299321764616957687716156581056791275926334719293043018343919173517994094550383305823827749338933730190016783350321299385841428379836064863584635772039450669878294526110222367229393999404210238562918916991040073757066547255710555237669035987535233608429815928054586619756030356374221746281290298236684468038681724187418241521874410350081435249266115500500367380212704518593513391649969257502394675399592217951630793247179691677874502963801273171335763517741351308798044546330579838685884827619924081302283005364688420428560849408796329942456622760973424544076157389950985217462193432886068841052611216976944075253300177923256845326068649984607703705027576411763732448853516162861973859364298511898932674790840367522543926935064684939499378456550466485842904386556630980346220324591607572058287533472168222260961405061957887020986761274510115260370663063745755376371883466924473030021178778076359086332975601964799892735065309808152024934631251562780428376567834336437223023278718846610378905541845282572228581900475569045060725591581694728939027049306972278383844222613272164333797517190775130321493923276569935311404595265401605151561124248551078363051007067803619453815908643797462162851576850456609889310161517774478742637975270217808756282313316938487979424738590621659542640141131163112987132219031626639943252760422394197750585200377653802878708955830020280997990743742794871812417729516129205364652117099943252958069104415161653629172546944037401094208298744227500596196650372626234994631769026293168118513251320695258773940933655348336029190135636901338490694674334413353709263547609112530147745058943419780027161778668481494578194766679709071771084212309713245276325317201920981525233743146667309127120013511078893435217298859281125296305645297649894332318311286845605447068220842802379107112670211645607373001190713486854352292118864995512250852319775426830957199171058047466726290258934425511965290931053409414682639070364929172369157636799543370798714510298957943019565897412436586469181412776997587732371137568918075928664228073801251541083389766061638707773210296918590547213110816585410025064546501469512722407620794269430735852315309286414312575422835606953771615837697925063994158036380039111686325966188577744415494558751665225729684463552212336433136634254219231425688817186853577161102922207776576133037680889706213757669377305857373513134038166905978838229109560391665840453485858065558511095999521397879997593366551226839089271914233519788813397781488285835506098779057533360742783112141233380794433506772462877469456082900167036391242063460077844383321482032356235024830577306450843224548389656543146363940191972334131510438537237962427720310508596913859311271423781341036542210526828648424644005620268199804430859422746295101265801420805173235538041663185963881725592452020740060230329848400447628897449774442506978434315608711695702958104857476225506506977091798043720091484990533431027454830637638696086716772249520945500675459446161741113740698025137949106198169374234675684908735884978292971391048419763766597861696376990651838509622217437566557142284369248374533584469270036617739450578770070047023291565145782425401858051248081179307908744459614770087599192992148434461940435865856881930300969815763477408974688418376204264427426098288539431253897214515538356200755278252729076135674230863192272104076581864121882725965496475209953787716025379310104302466737836234258463433221458914896747645663548609809815524007092935741058833907357134232965224874438920056287391026741498938636792447017907574346987089960474823065692332296757349354929538561511622805425433651432231527099902887962514127793517668068903743534075078048265682175188459541556828792596808741817166133729146865574196067637325617510091892764154787692989649315056643339659750103867836585553989555092281078404977684762201151660789396965247957801029291340435534569179240669867548883536660669098239020307129542767182842036431860381181858308531443256700383915931357391476959274365961538436225528417586895669855397031719708426506178772686646123326650059406640197302453627211683272001946351938973709005250187015758802821990247036786643516469808880998285072979806927612421761269328465902482712635562440437392740146765100191967742299472547993774850557749950990938724484125588454785320529153816182537651147010724189099976837365459121766880282045769509070233767389667905571657839381960999972805240361160208340390808621476227830073799240895112348060441804354700182477203082413522434881544723271341319184255114620794694366048496061405848743951482429061994605719174078167638317744990179092635042260732756696582833639967506372671772280270483997307109608416478529266697588728980971628088908942026728703139080117235621106433547716045774080118351992990263953449003772570841236121292215623252567342461068103195424958721475036404946891421508635501770221439221064539230195854484140744139776483102434358293538363248429677633259485331373523704300724942213840407407808899914716152760600428154318870267789505503110146903738731666442926489904833919877373893222211771431834884455707321061384406908934938463683938644058849208031123884176568693651719344046160111640197214590999962597549535975550097932570881311262921295599667907736789623197029741492884766478033207269248445710556712632129818104169501552177077258210684283605885932407456635856701186821513817977274555742135760965331935887454716397266262831893148027826262906822331476129981901862829609804728653687372111767838582535984327480556957154949492015992173027700165043766894774216402618573214651321575333969620659771064388527291711775998020110120188464008868357636624283219986667497849375793486177436191645876048214454437363159808072613036695727862529447284860849467520356120391147430527389921161676244745956854180245532509929070132019002317681517876297601958214228195102502492221354896654735354993077083524883431708420005873189448043491393297444726687914874032085777617126054262500981175070540252674344393703537125266812957104400556572547516092817675247116862420637725477670698642251696123361593270822581623770649006608970932617988060875414523259820702001667947417924686027875014384377384467242451786281904184593518656650199023876099825320206274253592667269561160805452328745876113700966588654088767929728674675226873497694896898319942368216315273758831277734816882883697435262925274956258150187946304028703643519174288128387690789213393613200482537503000170887157990906769917458465299151403978984388340628504260490053722532980679485299732030236250984368679060552028607791803608880798821611910755689910123265061862922961559978469543410123145513389679002458656763127762538269688206089697714276752859299253340028314135838036477253722748727488733592817089940537456601855875564655091105873474884665341675753853077004275233422497021866322135603570518995302868902352578698241761153217983733586312811170970032643319758308991020876532818042909780348790541348241275355232145222380464221079902180066732703978639687109455966147849670222179374330893890233645574556604229625611937752483828733718636461184316289761721760241736721678407665920163044044543161609459246662231361333525503507434848041357157117694167824602645563700912588943303004752651770758860465491258488909492231393017336207422349246506954420666183613868398886600940381348269363014450246126102576864588685011110805575296129265614311402948351953608509462063496174205505808261841257102502402567868502997953042437244861986345775568732310064228464606461870458283217892706100421099013079850833607770251928129958376298552850086310780277585944182173586340888024749687928379114773666723737399344824279792676728888613731809597391278308847520515823553520039422959154256877480903458820056251709625754564873626048412000536207911113814863265192148555853660138131415407135114081774678035460007525930109189916194172359565926932572912957787896228280946703304299868439061568130174194219978244149617474857419292637156975934340477751905079675334427209295826779590273719220389016386627963049142161296072643423807341974210251831781394497523629755598863077678785357637409466951081190117049069535896848199133143315644577422191905890950286337160088470361083845675954464000546064592125652857072776653347016973269723056376198519910507702954271249951965765508892675935348483477659295098949235926235028201026786254978147136443207215219053248626545007371083583190371766040522048662984381205731939080089293126154023615179250901676058296861303368436106998252606740461725043027412735454239951032290119046662309967588913452352096782405687937922363380266905358445932866554063263512862427280267796938645962836184308838201940846354119139992517780891265184997726908486280658757431301897226624890738370070077516719838466034535469349390699484600198712006250247887643950118934704396422728559833235180665609101473563855158015712723012844686883988034927608084480585466415073623153468626778104445906698037214114789054685938609501203574254091770179200225506899621343372421306666741037404125087338632571355437302592499948732971110250644385492193145529050288832232717762675131278089266120305148596340965958555175829128911810712459392673877746194561484684978628745663754169178698082168117344476142047437553970322858508796871164021218733858770222487867192787975329815555683770939145887364180167275085067932123865707856425224964229882433283257432184739054435459023408515838996416650171594329578184230471768256444656302433402118809790364029052862400329115470781186894272087356556070165517759667486494265836570888258649638055886625417742428719906951353381473798165757725257906142599006293478599808309018180722372472401978822791218040714196033587305683639082777621032846049051528262642310740958213941244011355671611367363475466625261493233531148662329362659192273988199996151030111348063589289677959277395227620655010595691708111994730172599358125006831086980537359362279721292897370669749474337986337086576843951454735277919046447672739974499741855769927797347529238151145420538028058531270922694315935133927096214112213815586705371170900681389870955075619182139464156192104345154844722652159242851351206678433088648304098882446318311366381687675919171286095995569424435153702151518694890482434190011063401415191312222486092758861275659619635874532387575121484396507153347872608551769713434653720285024263648502989415396378758252021276018769900719799113273749315841292113134238169109814672902762542186843856965111437595055945564375187117948843886097136662170716149886089005141585880705525197738490270313556053540119938670340398309412758529859222315316025937371391370488778635666964941334446497806336750170826217816307398831154567753647654151016129185119211368659563190263054468531607225019279551044201547010403316454240133607138981365852762256630889665246787362945230758599396484819119377468659660002799034663459454019437733663072120416688484888437415332493095332869640809552349446044096790677870492288023759162343217466930514709815000849573651885481691075373652345265160474007081533270145673761665147877023465062561449777772057788894939801866696780182706226258861229474110906675785076747005240706889690619736101088249778480150369940228239060202771888767397357843895371706521456471900911081316005316428588513902272422447129797264351340210802017177954009079544795577783507501630292147024378260685511689161313047686631258113703063693022426187152196029792683994318183139632298877437254516330104169669403461605888197478426266033341225567228587621075262160458583861038614236536281449033847322995393332484028367049886379583752757822110563797783127721082423443214145795007036165188102744068600547038944540667093188774992029964538262295062907721849066587690410293624795011050438814654614062442145705615532182314409922012067921596623284364131937324453815770761959918991843951512956052755531642439928493609745098029208016262946225444045299987369510570177047859709241917971797118206676491027770928666942456662380483623356193899245604374696076138948054491096907840063014019507154997683290063008513341704642313316994374833987886123901315123317232898808329938311584410171524121405470431254040355404550719613856515459042170220304374635012783031068479338956837666741652849862421978729860551525437549168951564962611838409554496638010029936171300407506904641122919372996443785910246409432754697434397214364486346897917118199664375815268602888650311543394858226828347972865754480167022844003426036676515859958109850256509039945285386372596887094493600235825890958208457571524214708304701766414599142282109069019094043860704392773302270593898639264757078777917088820380484971884292679684147941551865723020388219479865856463227589187728662698555917238534351305198666545398543913456781320955598451790914019810908189507547653019940376868657797403955496565810396517541223386377632486220536597513795111378979948819989794181996664746549993383706199873444792956714090198226791358811500058666969767785576461336809317374304201165907082535076219072096002017436019249433543637088920037557889679833228212165943389208067144127353127710414265337026063440306899242311962663555654341203505375186185199028376988408985145423338367631585504951304601897676248059430189596385152144742421880022521751147235663179102202519189220837261619930647814499314203944624471771050184847963544155260039990902773746137196337031416652966431630238156483171309117067619624741868723727588049513222962617705373808234991746564219898488896665056010812000755093455330969782852155573077758377974463343988557625155674309110891901880327832584306425130526834557849968821775204511909333650142494157756619534224349228591062299603244881172671549264464659734867429875849493150590388452594566733355582068388827433220105807719734365251483781783149680202133102563944667502180985504676855071252448303072149433003403006854226592383512967981968476872456616145273869283268665782572696068783464697149616105777668554411979919056505546183120002185142921036146487558284799333733520705542542136268401639871487253227598599993657777606258532873660489428136907757353497333618223531783192303525125867056102087470518167204401000844716109037563477354196477503953947214945634328822262319828345164127374399964106008462204661504025821318617379190756971606693354193245709374120646184724520914410077919043042576934400731047292738285511766506747255160367989572590226698552873216869475270848271031366823705990019983713748144672339733143541053696280188856554029936465544326983076878842646544330515093563072224085436817175523686431535885718992846523385102252647274398908775246406479684743123376929380351325945636664393863615837172373114980400469693132816445986379289020559850226540425678253198240805279184822783342683201760370744433832860585481584222172917752989140777665900076015486760493204407635456155244134188338740380103590940816356249399746024366744393772680116710318799672534257658200972050483107047176969718964965007205321934077065664343968768858855623536249081369636109663870589487832012708763985978170217415391635464065653641600964613657006038627451499371134066052355387241934817201839868331847913768754721455930017734865765581356304147593758354869870272626913105722753137806739394792898844794158499799976475482641243511764923766067190123578684020394905423160645657041389285869094566443659347941249408505771559726166610144804105552517763254455784868277840237891925750445892007478667715997574710042943431915818546624654314718882937650244895993679583345352854601281380425237231576028027328327556363144622154263770346973858867022948273051763503261159695709199108383750748666112002791836606469244813211676098647117118367984305433590229261250024927519907150279438627723238766805789070681978278085257321642825448583758066674363334281003569843468867580726516397091705946266822902631753338544498089652035841093009942809423562790650868616102081706344844156546833455437111259516640878676830810514036506308804320449099543626199212859536225164778553648185396037735516078702185644589193621268316479217522974947030707653244415931511452402482623233293131353717552806585582975793645052979715902339084663619620083119594317243143196038368005431317447519804631755679293128172938166743643002518108717396668172188299974092103802357995126813582475687181333654050936615188546392628462621559220669492882238430558906832261285294704062716885088484426820975346704129038980992775705051319230070400786039559277081816347255449052020593944089582356309609488078831990465513521135826935118347704267827386302705936031588041020641948916671927550155453050294275248371776858679719888634718446409602816552617361480703560357683730338991020253516287053259075684855012297437731183159717673320282986208685560581871013317487331750751796414436843858658412501133442014540325570234231536383266277747665060854896550399493576620239371365827320892476519477650087822549316591467377816197758727136343777728834523881935607524409976562479478096072575975373065750655856804140621281356923464607066731671162044953121937141584322335972759185141755174479745560991771020990869799477331765923036483976259082072050239911956337209302492786101826791279796732314154617295757951478214581321941461465051324133407491351877501322653635175258511635804940173829438848402049873564060383754549997563680209118021486392603139403790342392386538595294697903579645532216227439133463980732720671756681822267236793312119402151075302508609200373252997855932790057511838959560172767771823533188604927964544139352434039835427175049250845326669844663796447862335601071013381910727345569583363112452898127131336913745624814321732003978834529844129039491948643949011109863050237760592200809290287374280770115208213005544179807110745901305284840068148473785696264714446652051580659646725421773073829934325254203422036022766542221348764629741534026445221050114064697681716250243624011538043396350963027576323830146223909415915189240396966298467208549853204755580281770104250548073113428718208821142912293710103380998603416462416611110671947533710651790109203967314688731678619742987507847524760803417472787507642022905234876067506774368235355961389422474669856480926456527656341980746206984036917283871727068112239912259060800946559642211720189218033439238760768517892845094082337109023860416258333723189080868306322351456426424268229075984259609317510749825121413758406183624098698139375286907100854128528679012076143595595319834977908750877764933991664891533829121855678937789352645164047655961107568182483888674822527319342446978526009609583801961824195964035920925928251452492738079521820383860534648628394902716711685299074328932073300302898723080942979112140935297514234052391781257567836317419233052132347297414446254249827969764194279027289124112972447766737283004700953891740036290618961473328889573428587212519117876173351718699419908511357017511176748620792743213007039808978575007805893414401522233453645169217467347529235682184984459223547835152911688394554056721981201848982037238506070538435743041725739904943095225236489787937152626236050549017509805390629255706082044673096779451542176246544608868257563542134277362086383622174317170827335526699172791316373639168021488257315482033291425055955125882610849737501504451973273419591400995012906376191212611357168053720016805081199085516014379696679399738714169783448230902123120471487950071738733849295324689773136432031185916242472637971378083874209555099942665795712007925951228727991168801684260335505078415490150725395932102141120930705059164033517920438057045953919866835104653981939847678433351564980949032616333450500403545197942459997815025708507547748894502115930701332662753555689144424525654416396172867512551921747601775963878104876926619048287987160136903448874432747086183745460971519952781379902673260144353126891778133808796574817135032851364355440916337185420056722398840760021627258473097541418169237225619914944622087024203926544534791596651774752730920859472167018310212300536709161871944007017913040792015278648557816282093325054982768539822741954292341343863180757700468487667086941730838785109050080453533074590671987479555064718441205098300306099391134807187890004132524746749725888447791997949616482593147855183827565918541599086295837042360841238735707113359568283555465768660046407386924436409581761504078584228547312346226880311830065648510755331640845260555065696699279091794330597657980836161188554332953142784790505632236243760924045144018279283493401118917102735946719041507454456352595238427140324895616354522773985663458712630604752730397386828766191596893698747128298952639576809193936873202413620857540917549935304009066771110834585924818651900039901461253246820996955755203598697887135805333624797486876166886708358576225150309177882918571254702093065830165834869441412374175821857059036828533368516784422467776356641078088570033208158316499610471041240871493346408589682680797684949645077412822120925345588085627729257100743487611704128509888228468132998271902372056004822169364656025693195450386302103149833539446527241188886917180525914227857637942648216889910963793605250643144376417440665037378139223987068666321813652938209993651279385034746489492498340583880702695568338071041422336615164941282230255330562871847667929234986935570535960806830932578926894550619403564459164408510142759277159581196157205871735548469968143445864190828932119852182755461345192255347124406579972496387790019083106404982272842033459438388872016647289799451770452395893505300250587583762763124906138077940860565218239461148651498229972156924130417443987465251943025026175151380562164152648601736270044906834905821895912962841230607626660154696384349376818021767250039111798530558347310551502966666488914001571806671712065972759833846297738026999392029003966183640541733723159364837141052344192532861968606540890987596354586839581907276736051593204806513601895494606205144889021955165731084935786296301365244877416899161362713210955756237433798815396916875682831186254394591647564986508513882065661797497087462010079751161713820023046719601510236150810174964248599903310822825675453405711658776122683941742937876568390986988396183419091258968147658919210539343847810572873021051364559252027999178127781742638518385987755407275900346401984450586334962975398652469110590014825557901163071754617700934118450123550488370549809438537083050149715138515826590718730844456796625034152728723362701479643844246367195297590239043332002769511289784210045604660087965168663163369103511203148837675730833705638214024238504735625835799754735701533424431738818706265739631728387074838749395788183440800782570489571145820783772393930816318887944847018812883738146673846241055198768278988518565661385565424758911147170170873521621841428457643052465326992026852964769739155963825755503960442490471916119575794321888545345455440018651414150851323027208928902805938608116149936123109028811440933786413167891919345076527469167680124811429588171617180045196483362103184775861208749240146725452991830437203505041557722784800703755962825096310887999914017068290986382096271096891547517466369869454732132592534397592490558219188912712924126027535735962175554542471210412549828765510651755966665927151068803019809496954502276743311988538510564702499274531336332844698219458289502228800460089181889290585354121563787194842635309014684660116683341762042531127992141093313975563549782314136036399028946146169689207963603986757418303405771069678043106468674824701371069464551385935663258849148326264598115807082928611617039101897359419143037616058966999315369301700092111419864269241455570438832327641215144413242680691579582337096840338695801926271106743908957031543429288895040683965665245093726926736496362587745200512440057053593660486935794150678064643435324277130988612686061776816124762464095476337729268478098796514557310186817585378529739217261670788449444903100533667644186343091812189032056200462735637571200051543834304672989575409483491067255867893744537404989783954818685622979078445993685496029284334540726211146297907356826525917778677148404202565731943452343729962309297855493476610545822213464130322379480838242401969154802943807466318806962689463052128601109340196706014162514108458979747885419829674202690302860253382684189350489637541065938007364777784766771749334398694997295052926630040619279190583130259485871727537055782002858549190093728818752105098791118284038727138079820854373713475973227212900471792965105491901540063091125415347554160432039145511928877415263196764412688630249953697883884125529881770949716488484365490604426623641448973156124793880689316040672143990360497706458512532832328162132973699464948055143894270766647256587695201857832775617813787967718996932447544223302620972941227671549716879947736379174330642362829968820093126231774863603622846100617902330323910943803215204706821025885166042575235592826828862050344818477619270461422321456559105895729627972127765720592544021289642498950490048675680468336259527814199138620391697993830228618338000512347598595366658784361823353057057548902909416968231759271443259052457814846609122998466290412921494368054177442051385066507025449382942582910331314933860084455221608371900959802478105855879474621087816628040915124102827447215117097303128252900902978455245454143658143205890323332336860017828884145213968134788524918965171253818980525734221566330690853442965743605545866476278915027103327506561260138925770918208620259532138168556988047165318203383067831473652590683176308619189231272927496515466113520172682684111858683128483429574131807126953328743466932691534094419852498994631765061959261939529281961265140675235309327964312502009125337597103266744609833755299265226180628187106285111585473326239252223522760524699960188299631946090728793909025065474065446744233028340860622366975127382995211273574926414677334575030358001549737768178544940014193367934523161792395894607362592763881316024757645374630345693865481017716748945700497389530311588624654295875398730098386552686615564542135271523654305323730224718650268132009165482562653326547520513414575544338136144880628498002451192876425312937410086046842118769686760451309133363070261958458678189907113359391492653781057289715035461535236660853283161497709591675305496634156972736596091440294766381993733657633072989720570404771468376896444645454001566050516577663074101572771259398306285796336329900735280488098178908561746215004308950331881808040225430965566657917952632760195055991990514892209722841261191179739139850949416597202091462893357383228054922839772142508563829527551542952514119136104107873360944854222189820833513613686634367912126100135390951554837978386792466050729130269129277902196026829902784119363140783982560280614993027396701972263771081671454014284790411737844015822302454631903104039795647075900512632397360580307680852936527419850549782669444147485654934753610443486837677093362468644057928992157238183637263826906479628659396768088401635634590625493491437861262305472196578622247571920456128909671936778175341390951679270310847882257626750868724903690069979920540598333553389515124810382928153391565207752270504938121222472804345350537859380687295801086749157058967186766687966353778705472067634465633208286166750939914486207042292088508124051351129388204870232884078883513597507945592876182302874441410829459169033654727364473172489939998213271566057783398920090021616439786487997474168776283046850501891816131232560288357838436128730051759443617908517057248661955738482612147085524031478008194754228692526598902746809031194668721674853484888327809847815672394552051567786541763896349494251173909950598046449802357056967911456765191535150412892870121061020816095609119446247594488593481035396327482284407658347321988080787831446867494980648741987182310292096541987026042589458843257448110438535588611639173688060817697648770806952533608734411722101456942824054324955531929033854493181009880860177434198518207289481979962885148353628626600158207953707640982440958580434895797978922598909885051004769596307894081583175518161882914187772130918158999758439384671846545750304521686440445052938690927378167845174484006303130984516143871635325873078543704932841579471255739871669773638542401444936742919491908163021201999064966544623488528997486970330850934376142001509314405355628826653456891971260465247088526614184200480879430205049200192678513315030375687346599523958217581701775300140364141335457694017766437382112368710816287596193692605336781340002618469746839939450812083014352491875679656804407814020233799319518986064010709296903779798031882249020287156515093069254595383985354057509643247584577791369931853770206730555372339798693803073330367896082531034921379980854556637269538693266200677615219920279368440910839358139051301558769503477111299002933326352900882246407013569573193258744166268697934938076588429757381738975239077325023031654334893874310605779745953541771905914147868956709802381962409183919946283559010059296904375285298816579923603904028309354438371833378951927749781619945379209756839289174403678481845747500594542773932397588926785996730709385145589238548466590134980699289192617504448064565279240639742772830153003577428648468378542928534540202340571283539904210037804812607353512232343587484710484548358403630085439103094319310216720841625626918706272872130339265480781230017187389573862430782935122082014839385639430447047752353757413055394615198447159057240545178671554688329136927681993535839943936212082373721555810332459060151921164671770260834770511694728175611074637172219578359340621990445021361598847626034748888692818977905599461937530443555343943038483535733194062452813025058629952122121163396332374893135544199190833912481390825132563739482857478375275957396301418165286405812595912687757735442666364028755908564254675524898146440136345321291717752600987444786759697569599500922567649050131320320746679392904766358555690753708329644448675504792316968557161648145159508496255213046618106052322946349809842943921391227762470968173775566894873706079644188949068807129020948593767909203231802943722287556444077771594537614619369146768830277216445959872820192731176956034349605150036072153321363863595294787511683254380079525104099886303676550236116487285999261375307701946963678708538325449474841814747593685087456474141783451803890591339656868643500327964136416941290461070570420415748759698470004084562564569481650835931882582181332226105290999173734547386813764680578109508868476704215659203372301278611191907563041272002857935888596642487048119778494431555109807786548118499368337784546253958140767082449792067872205898750804745399797701910358094061245397802716343448658240150725535364232750932727648746204996282430346316501457631062213800430618347051594577509386458306716077521374075903959073406720641488859917483795884518059800564090228075237665672570251171395012283495930303199102002656179003446886031055665869720459484711259062679759130131006053827820014172252220785698488945222874669996063323913650658933302119198899963947954479730175411715141831262991494763777459537889828048975320038884942667967261872396581124976725796129927163124795543670759611006129367858065358221352546515463358707551030334676515792811711226474383620189853390469260535960874475162985676893975122393662921357845100737943637785087166165037934743283853948025129827851500032408764142068125213342043685784437168317933694446108849573737311195272395957504461742864531513575492174419402430595921974879588289056125324274843049643677212738105394078780284114171406042045605379945250768024383893259569432485071896849224355567448708577872080250691492984476845658611382199528843433154388838587896081095306746090369490848694584174500518169377121595979680213404126722612424242853150845177476557091960633882642823886770255389925309130254464518464623601095955529485698880472415718231457931177875317015432735418250393679103190255660829213655814920415910681158501619539143170508272732173876295556106535724500909787199683426105613563475357300086716787244195999905220878851662550889662915837261222407670396592272510581422083237852178584836796570664811022572777923132736915340043004844950854294329491150591425273708006734203115618628923306698708935134200232775746802208018071276043960002523957916509718022972785735333515835119091388758162031291862207625027230608258712027695843105336831839189394892229159945661399140002845737077310037971457620448529909638448269000449057691990050619788086126420004254956396079755698205099160555522971841837411917363529425299231154774107675183869404376587554402939268978684489373531569406162306998633359703632897901358393397165979791320527908827420253439416790237502038787084086183250471196846124035616776591928392316389250508942961760218919849044625829789512301582966688985536443295823995027026064996282041977952132384122410970931847502100123103443067621744028850612895149393144291228130952347034753207043414945179659402112718490414165956136221343554362954104290341283894111403456401855073406430267727784410504871654921064063910023686809830915490359665371039613856050035728576205450255127717020426261343969725866173166489082287592023202727197377013738552787574517118759608856676832490875162736000133640519439748601042581659265415144506783764618613682047852468541096237997528535893394445521216684552463046288400244157939684103200314889157835045571647890355366475394018326515146922988220432547353528012265130133570542468402270229453740844497796380591001505317031304160857417038023577185950253264283000610702386499774648518481399669678347159196446959297797482954120311171375235615601712057197664104749006845318184141665382528695437617748670815234182710553269928504569366455619430717235981902441265473387341585047656296703737220371710689644530793197392322212293449895091288024222168612067925275038613391523297952855961328625496900473269368535919336315452135663261958725175450173147739280259358488177959964633706268085076810312848363154749613133924163342424005424668924971056702718647204287879391751786171978244971470390045467076857999144315177711315582468889738515587076857401636115351140256888882637627914593396896899101821430778217880159552171312673311176382415033113326093476724954126605886141356995341325529343015564203888787906508544456617893793928114312465408418582250342045003309817594100893589487405849088047817952370427119780363535463866225929434388567998159555476537677852617269955842808820939843261680880971945774128641073560724375660690474722638558410612629398644439448069758417441761456465098851879356797115724619312564583283057604644052753212681719661670982568893598978564603790389884640178663416378802865572117482115750925386859147771382184477026058788474624574299818251350987677052508099332840408047870750179610711068142352464494277731021992416342309093511099943125985541390928256534941904939401653787756289750273158143796317716764836111259446326350532859345884807202573190946394906089977179514400962823977648760644845163978998933384531440845426253606256628194688859105877074084878758905217300096208784861307043701603989297250076080244439526082500916269902680791500301457372505027329940158496937491904982849141285463534631232007306153249975618923391613025839155452132428932973986336381372075788429777246265766124506496070074736670921754039032602360348206199971846507400928236994409270887777265701792673408012461928444568506107980095600848006784629227450131539692046146604003865267663993656292858256729191683859431290747704949301188069775559097550523147264799513274944413915930449067346007780509095653392590355327589659538944695454381926303491095114347982180267096511389934948962272907732196048103947232907775784751904057937267875429427801156040619202782767950354166271454258945395688013161428593167234277385021161878961290812388707130480609409936451281205571108796490840983351223218712887159653643435265093055401988766584709689340919577206572331841507509248219362539765630319003585130463916728535381971103228085295274651927065877921379435010774716616550778218136193954394690371685017194126872013456163971628807089888622610635587610156191143326424718664956515165136966311481796824905121325470859223438915599467355664815597994604708778489532829084542751029821746114563122187458134424374377910537505657768882349167776297131214103731634259775304411102105600052591772755414837357596143175859855971593715917971875057975216758800075973153492250187242173237469221670102514571801342668412682359350558912150931886524925422153332240476387833362886395586373171662612247174542099403710826867308138662974062975769379177878005698197590304138200054527664787653332795379608787088870024592295747680003019639199153919094170436552985631002320909533818512842727300999750355002749451606237338434025649461501562538274076845972402573153500183957028940748749679464614842617111221283785181734342420237341310015974059725923583841115154533469089513617880139888365926718014329570282739092452450644911112504580949038015868756968520271890712895179921133730863430201092635224541506119162054717980652445187723650676325957094238220574133053787600769122369238376391123274445480793726257001596325245063864555818069583931133589304280973695256803185488441291854930104828365202517231072796113914687962543864602594213013148581705510300100519843367472063333915297444751496871767186133481094466740781856059710521354651247036204229877927555264089521043794518033560690878297067364824888085515566359482517570580524379975214947225662471808516112292851057300246581852199810751298883244392384404738479699300566699426217717715970230292026845345963366336755610700686183612389953909502692017654611165239103530481845938478271264868855576890627749101332944613265947728789773812731071101228098486711019070327912511426040957956446547782804186416652384607050067825575027304557007971523358620710007399037882111753994365675932727139391239349571198836243843675050014935986854497016986489468470114695045132789490550817944423951304221261663883921631329456661841787568099067956232799841264214784586445297523415900758333120088594411844140635614127277797097470616577488434325426716288654553304508107203995684917172963038187809071858504788634553001951810195878377328220571361340595367986119082462257325178070200299649638553679825362753966290871699583887296216843376641605845503258515216419860248233155973752085716841675708509635865651768935214109228893530245158627403600936968906405855577308090014314000225096108781658331136101894178959688451135926853812016508561851819236389421619864127096595061100471256206872489763272203332208370251576357512418755914836439280379014447815606370101948302493135919504326500256040043121494326841491009537354883963622298356422313992483412300189930206107608911149259093463840976328947407043646582542356148840726961994940640363340498135124022905638193474763331265346661263037191890507020064369641505737280170829045797441987229301072754751380747329248807891182704373413530539692025427721577276018776013859879983590436960215858191669426032959546032141940126223371328016894682404701724037580960610253583717421337685325231005673885505843384936319922926847202270363890919116389288733533598141692741907462251663320867685493450295144992994271933100717993094424473968248044136387897613845639699486864595355333614363547077995141301733019101527011198620432032354130558619831825445307120088426098024869955718576918347668406547344107315732485773508183828325558190815716938954182991617620168838345939992349355221899811708991035300060670348560511404725172843354290360051940074391339570586412987181866115708568787244163354279330186207179357223084134643696503366216360991331542828600447897226036620062651370207493996655336054179345897071071536749798942701721627324582118933631202687491826550445621990613759960047837238468001755315845588255599025552673564422827025098588749390483245628607960574350992878163266158828600410674550386633541055022188446173096357370448009420321269464676915721855802569085492371382633248857906514605767492813779904186702613394304621084278212210778903880769979308528022794522863465938195053704228041995666953994046425661504215661381527016761683697280953460105336954337852629527453680790261878363828157651653373260096619012802389195601761590952365364511421008062900479493952865193270881928196745011903073982391321590408921666485794348761584582211762299176200774760009781465817086991098125836593428448686996164611740195248288256131420318494088579267260554774009748176136832047175964555927390854039955199884061592997113572212860693955030497475839311290081437133924180712604471586748766977995245602739550310959106165885489730474928233511658906177704265799476517689225280638753045105848137342278246931346021653273179513010135351816010718886718385215545027270449945394677269726784921640988564321475642961411105566847266744814257188125305381522782535723875881795171833240751157596357657742676116935017961370917536968579766479517321424498537860868177602424842063032649884098542359587016863340486419526031648556951039754407047690840543803502240008532340386271218713960033947534275269818264860398150830453268670811286005540474862085468266333329657176703003137683592148644931151130180190817476152984930967614833555324577874953780131174838581707753731629253316090764989539930368636215771513867046891381959886996745419204833496906993147095814082128098813675706349263907445393540284981342898813247582736645376492917047687216093584227579868729986406464898176402619964197326624984901096933542056795114493486801477102435837635707359170824454674148935953745533080006284106161734016989654364706900297071610832909236719047221740700728024650372204129159488748568568475068766254681204719891101080404259850449363552250688588759667211746845909461991755642321610744763372885088385301172157124805991343524550844845310557401745297208454490497396281023112294519609207542886286241721693268436831075655295136306400991367420166533073828171747439428199211992033474104497677009287391776148008093820171725449886156478458833019134868815956011565255349405808768489692694637351618787891598805052056023830111725823659836222898320198337081897726069675033488191982341390147198076205861754424267200573009946946968157684326781006702488014105141594536332738904003192288801230394671153735499371093770728242283987294285827917985364145857541005312338567735948790629538180721916690136084508284101235412432090025356462538027741057262332467165997676060135997638504592344571471952683666251214441015004936847053405794186182243668054113748825951208014915587834816078039130233244064819412967175177299649537038029167460794423667198132321412982640575929943088665495471849359297077616415035543208887138408190788291180281372176876569883869135617469816625974910860048260669718462408296173910078108817111684582818092941766132973970431006571879878726092047753432737771100137696375416689151235159299021123776611312164808532012301811398047063055274312265737936365397798548538482150324828627719231534183071508156989569149893250836514130618979012750570657840834298182575859106189084245914194245074252763160367065144638264743606785063181877911161727176720142380137124524812033933220184732471627091507366250888980702178270780469720651394368709084332355833015543314158125663315815973963824177283236800209787838949995773848755233542531910345145152143393763854841474017530155889444675866661969343396548312560817322665320980089639005802554434921831782897310177386265533372854863199231646050316556106063622222027151738580675071963841993248166682252759580904279458720915508816733065124989966108530870402860288503607685700707164628235655885421031703499547997948886104580545069327419159232542947395461313789027853358614672471504973115401356741537131334952924170613487941610968135878676995096155487490498984516963579596695644715550443296387190229594371656803244770269787491774874369924560850994873070105115591520768709379169087383703647412806441267502238302587318197187510341476609995526964507887730792187000628667671368004195177610065862604800553672433659979205656844850662872966389969474977795731111887697663096538993556791240041797832080437439064973874715778634263718148654227624181712770753735228090468703069451728350743297312009051876089801393570051577149375929084739135837178747361590883314708300538231610206751088891928747420082166454363882685648798660438179217123936837631714694107540797650262960418465191398738042261458636916654369132251299227168160527579874576642820158349373052504592320867186579872019558757158619470624848890276004197750121494675638919940098527317890998089686716315107716758849746093199689284131499027861528935919577371570931351124016687831075375999526078222894731949639612686090583932856802855169911459644364601174615762753817627612965420824478256980753384871333457575853697560848870383358098405530610879896260445790321256292687040247270984923884783860111451460901092175167401379662157731887788836705538213585250130211951931933525276966900150823747943667716113722273461773801407307728430560425485889863518284389065833279541580030114502543963938987432158336944421288554777439908434438035950088392085055761651113941953338530531586198262272778403026740720787287866531248549870210981157759037653452988635068135390867201900823966462438639414449192669818868856788263989564863337876461637108596469976029963952487398127637691339157822053285177641980242075205194673275288654714407671011606262406282169276312413721123970867753372996222138890185386726983711985501397186935394230604044744087439990426907711239728253774788683132872391143277613879768574130889294628061871471035287184230780999602230304669405508041659787883747474069001607922632281342946370764220855109360287556989424293194519518123706610792898262071385167675741459308050073812936705505376383190781913453289813700859661652797250813087490691408782071825445548892269730153502425535125017339783614878694252823848521703848333227162557759272129749406859284387621424435732710874869528754485872858808081188380320696142657437351582026149563596125773945797336661560576158954212580835729983889137286875243491893326294679234832634479939407215356128698170466463646643958950136951198557724845155329162624172997899312390645281748173859065923463950313399467891906017009247564594686534701648032991980042496639010953021597787483705377565170131702603755092718463074871522970761296087685180627533178654894996881283735288792650090926825474458977615728413315179231368938893702480212212056378549207360780432400480555394312556019947691646789404697769353801537780496930158207853461140679840962612130260447825649272904752621024663736973862811906759377641568965822928806756667195777391286098679550125552408019103430543827056169838650595917192045737283000013619457951193985642283676401777395311162429292296159043408253539156939435579414539416767221442120564395685792369965560581207521275632780341474026106497669911312811703959855897647984310694217358018844085548234542358301632151232657513870794786283675180789059266862478117677108312693546184631835349693758300132718675921487772923100140430615266131853637459987406542674389547955042123105180158748064002159323415852480921095383081674448788539255805521407409774299014110342921663910145767661961684095547523708517151792760650626661601030266664967969910947437909858171994405769928597473419353080343263786204117047877853896664039890618473163087544901610887807457388676744515575824494691702304653119272134366911898900090649821584831072961766220952029697332918343267364628685213826593618602797475018765214153219260336107759051135459015589236303628141320397296941236137145092362338162517346480105635415080111145922153366570887087151610198001136178108322662508236604498683631619680336869260812146366106765793542869721354478735406526194823371037703160315352085786424145206153156771362839238837568780065443566786691694667192100873344159602471156175446945407617913400969807265174900830782219966620056624403198154180668847990730824663344044731774004874048085575357707054540834982142691250914027899347304685162313152675356923895607378831146362736029136721941933287147336591794686963284543812240682747959001799183765321785437249325574565938989884984538226657944686295609740181903622776930783190165836957295814490340948592294397283420862738758556127242733934296927908062630001055589167543970859244324489263065672691404248927887050700644968478897530498525429060618472513964894782457876942634604845053245452174333598399970714073290415422803810619387641425670536316504702155409966591921821357568550668737900222123673659541870324708046994562528396700866802999938768576444294177824994562828378100767310883231972909956868331474374580156446283828831493364635089815493202233278815830672800457276043400450357416518518737022771822975923002957047148147665903729515225207281539228582535180153107480231724403146569749342471316411568784975865695888111577721957129061945487514436893119946045323723683172733196316510152345125428790821837516717649865850302335790531149155311096052906349500444811121550072121022247854132979944184868535523677754177749699998410140027487053350629342571575727286640540942289532095232983630900642259241151975675237189663076321773963083115106300689005637849943495084594026378030468362927419062067717044118203936245560438082650891013662326410177154674759395452959852988322010596941618331955869670378780561768973739520042006561909919079387016846414938117524686169284360382505937230477317025159476502281005289269691359969337504162276481627998835643490880854227543202803262275200889082084551182232794101080556941897020161968058880765199306901903373673863050744335906874146073653796238166225226868661242826510450426526509043815824956308349608694174491731624105943436768866539807597635055096148810827914880021906124586263753946132504110939195560374847172913246430133312627855215215351980894057102236670443340966733354746682237036684829129255737043215367127923047002293729391001101865759520822513208046689418151371195106525127313288564506940915294575132262938076254726664787687601320347643402286901709446547648880927801079119119400900595474862032266485823805293923397575879085335316729285753346165738151178760862427318669344434242733490410592907989438904602806837494735067240219169262555504699948267664109574746578008644022118791752478721485543901931823974896675867001208569207384104605653782312753025258658849647474513481820201982480497181719444312578681492880909310105852761709415650527465447807165444929318492723345449786716940343816346460036250391671504644640552167958878671402767601729536054341899766497651861088311051978663777665563169379335918912552892388895287249469669837218876132013132266208888552951940221602104833397524900321413753988392024011251678887834982186075474097206941376630818166810166169336068207147854329360241156392175987776756794231194021300723476395482898247972610600920045472924352206281429917816018168461207402440737506983251291982531536254767114887211209845484204230803751962492131031626912459131916179729722931677738519594836225433937069217815076534582212794782373880037248990170499125254145377013060839097429854991118941179648698064411635009233993601376210853588551345294578231382196905494391054006630003616742369459084811773315177928085767071472240696056031264554941396663159460588037965313207375264464049335215092513944748132495813458224064572978349511133849050612365719701530764936861960155646836993708929403862814983337939431235753773659745422301471505391008594797238290014032528893433925696524972430490873078229683362919910476769094288742380444260689776857783976582541964013377267159903090591844804837917662992285831766545817606478863957310480660736528026279673211172302969028423910495790591298535035013173279982873917181172963260622482858910903738705777515034648404243664045928784252558784691975476605595705430326036087598061190793715033653933660397542045543913588236877897066327350792585814793128894900092260769127073641050401778992141631314069868676314405836175565660564582992185787009885704214491683367178912130393019298839454990515742515493720355644841222225236675020128632385734467097404720920595896313867147003463210968058458232274901918732524220283816736821249926981724971359228826293505057088910458591151343367832030543890685537493784724338125271101870299246731066431279693832249445904105544291669987768705050823370580111088234186979255155639889319741790643496797913209968614534714275301769561456229706057896764887055790024149562634331934059282266830693881181772756822967110285714358133605654241939762244909483297024301296011141762544014065108206351509345559077242412202062492585560791973763981174111437316882873869432959093668588082787186526561072437319487242775631182844632630195654892511601028359661961600560835186696155011090154708777929903131675983914734611594222005865491499610601967724475549803320012748516392430871518478342169974307232477421386057538202182059898663182223984617850866549131198983646918579987625985260375979649700159041680217123963262554328122273678378927475248444736798831625414036421579820844510939436554331315192498775493994141665599600813261329992430471644797050870528413585493924347333531233628706106481544477302727973593834968552563041845689100309371001755410746491932814965870696210446841689771877729554989913812364857128775654368271213302333870202346078780769071736932003535703169305285238141500337561302529153123689380720916490935736213715331773772314737653894757144913301492923114389034277559435564666874708838836591814726342139442664198225616490929425226393995032828459115028483496137797518925204149344265277394442200209906859781374011293787822407132127993592749933195789243905054520419894665702113681194918639747363724683514485769667998353456461587750691517851923706453523273671356176848098403754667069846359688176999621776952076635024502222792872395551165422633962870543483055134403827099830337201726265813703184717887233930095890662074446437973316144190414289393720596854403542053140230835770039028532016214416405629708304620266459181592133712849261845045926869010162054270614598251964142923841181348826271619330884919822774779942738989505678247917992228035550135405432959049849699400062390104233640940131818987783562107849629275942748735713182448691062272661790353686030691840388900827182428716361475727440711247976728705945941379582487266140708602246072321010708281209494699586496955688654618622178218692040503701756201041449259812814793203783752689215043941805279584662613890762357412303617359947103167028946405996571564162016450159163756123706982202758839053207502345632930743662724171187002706917133581858434079108687572096349039759072441529268152610048824892366184318543728356590926360961400012828895181108084343808612289342951638479687306377910962306007566271790710244460271932855262384472868923807111836997547808131709762640028794153558755792675835859995349141687472583613776499171259328987097462067900445069545547876449341927585903297599306795342923267985212658497164885703345256009633390167468448502166904829949059581528200517083354241948723195814913645888359358348921554361208640909155163433228449339289516354488235802049138805038048641840732887500385040862602540727421870655186279307483751153185379812168192539293261893973910471902617859712050292217004254542508941402569143497401453073969579392562036167347832984932894541952883758438384930679669951993245754166677375596944904310401762416294563580962613193569962036027733484025542877469230364683983799848802114548978998052530090563432750640283424778750794133416946625199661857044136794103328517747717626032129470943311992972863626592863061362972977890502833215063311835190336407400502511122087478240110577370472430428199006377610343475080508040632189118562686535067862231502252749995035575774985476228044345366419408591021395148885205319723426757945482288113244049058648774356227607775292134507133799707318609586515969461339214396760080377730351101204246095528133289591645853645041193571837965854889342911012259562857317461902372055197714973065836909605935308784583995500777613211443532237957167015453652779239110305605070885194156547668780254376000628691523111205795176779628799043113423118260546065374442920466982611101455485833178080350631838665395843564272968934275812003450559543406331993763931509486230748063667252091715069428784860043480752375647149853680776809221868501669678815072260492174348225313780129437770889364076991773794643825494003540097900437075066064011352764789789035715392753252879305534321012462242624037313949943986253781349721392169764527624325001255335338837904807408771204574516430199272757073165847787053729716215486603387264210470717936246655784319547738146073801616661548744884999352795495234667569315701209472647860503967218670478585870285665132712834371548345677811213391737971551582932258840470858091794557036251637757461421238446702940091275294321946588727537371643170427624585493724629765140147083696788266940812521181145161528230142034799644151790418295358239830823330742976255553650689622471791897662225229501391851075610287298295159494263522540900217509952118865376997412601648207622740037973716487628762475581163653168576110174890885394545319707370714463264526674169429497276767823750402471708270746287325443461745141498462504096177979350228900447460443348078138257710953537351467186871906491384005594132552188065432616329848442907145574712142779713915659005439315997260766065226649135669832028934837895745089010205083677290364955034128092473347749297789185713501229717472374750709015314603649769368776296239576889881176108875069320582402436881225230576122246904065948401851047612363795783119825754478181508419179858202382066937695530387272313280188327336685434893732562493740908830770591198865733852695787677729709038365833274992564023188716563349752923430891308947054484725304009920032580358185072948022011056474538203466912663094729313573644636371510691751898079422894607051150353273608224196786698484586266275233470332080927947178171289286836344598680140149363989244100300881136134275102343179920727236462568496203270207123628272786940383337018963218678649297515306298073730960078479167217949417423761398664717031235992075903569622278403970341164968223718304326140856060139537488088183608449906085975018628855426439159504432033056525912314458407431315639600102084343037614117108402700254273523683369548956244956472393978856700346872740508870203509588372938610472761678170762225096036773867043412771619336547648906832498540308859937252500295307811678003998276544092758294617477107021119035152102056211432769534904837140183854233747265890964166214750663839690872258666141690202049950206719033261097323101060700712721397690460154204285381460658276550342683847841766891826967856084460399457450871071984422392330134782083852310659495960426519528966430505888165628322656271229254944116356103738000785602062395221091738326268113183558251937493107279325444042516341535708355358421779518261371482302688452247501160158941987191020079653928596778641554706872480529011594850401547418413788762146702939753230987181063965800353605802722706661033730102222374997309446600147163906423964024378258615170130567851527808956486311718695681431932971204123080166371297119799410802657635211983393166645175175651949239529471290664291481446614657313875389651119498235868831795106805672292810773424120108224437091248292427572751291267877904646873652748712034963078467368199897385941927415488297029481923392857675601584734703123872934328950510560083456192735530532866726993763112404353934078672616633502138596588868151398932406126634358403572063712858608298031087822852709290734773409814822144099064901892849054395074265362105072066459466289286897052888655547522628332090325262175461000386760681569768839289581009520181271635256308292633283601361692187880919827420667094845614445902605896726077104855534229238203548036890788474850905215742799274047569454208583938533516235193650259794870251133379602271273599471191278603969491077718983937509665844928880245159096302829328565942509427878563711625246567421622801328179409068822393060825976159167326793224883007028091587852558529844727074676925490707774645026862962485991673539468552687845098399563388657571477332928436628884204624365816608293455879437872232909506101233018881413363172959704138167929401651560175245069660535136811040501122945179466221060368679959775125668192680107688954435421344599530524159760246740691589592199704783165371808621295335532060986123405737785957610626182284669694802003291189515527572655688924555025665293013127962150453771999996629626448857696514780452342733768193471861919350236860727872178499039986726060006653628521159945107000209911810362344140680230513519875481058508564524565195788204971092208797460115167458020310936352994681043946982368634153543160409644837188909122703380266765663512093165367679536418481931167011769712278080738125301976876619237011170530113151670114310681354575802682791109641766882652633200344377927958631668798431892144132810985722054004111283698873631829521607569698003567846972408657690784051130826741011482342824162359304438642049255442563104497795119413225790945146694313969553257840496704880731836116225975285422903185869080572264922081809966499444276918400041045487262284293067620522695580921296885735238406725155991066329725662857216533689947843145920448186701390814312401843056162124352281146393175808093821739983861421257467174695568866815268284034463968562400186527241114636530279269254098826251383164788686279066351493173593611121049133727170681337439346269546949006774658598110438456945642020933303282789124674454666989154006393334536662969632167643641445826166511908980405850342547240044031671693036541070847129886141589608060253217416190231839472867057325283657092064338072592857076028377240924448423697670974861806850679454687691100659826135149335374731653729529056915786486731922843369899616771172401245408030228216980987236414490034269982098514905967119531385487471899759947327476568521571545885971629943349158012023204014912960899413491789661643472778947335627668572765252216997911177494876458005083638715484007231093004799199768994073437467482532157754466874210765143258016287349098838583505444584183788421186809819520134592660217960474296367068209574852726247560319824145877986051020419742659452463790109099771412462836622837926120917689154495254194913741348353017364754122440504934539655042182763016874391794310985593194417862365648605024222340890425354772789066267184055257230534069662966601385555124215861691954430755757651413921276452763683716797620464346586340895405617655528997099357542398610831788243340541020136371752543509010746346740951391412976971131308169751633588842696913659109033681317516562403046775913311365115368478364167334858420354508452923401110491730285647314985150091395439710240235394723673663851190883292128697784267554684550272672204081115421053529414629543551038594444441007827030493104484272909336623341877485010954507932226340058075528843280033371144915264731462740672733352475382079983366652388732012555252977651893944898691366952033028045735622391303672628217951482957148170177591651907667096440188283443917936335366345496617497068871917491079345575923819773166723340457307887049096210464821230214686034441073921263575839235153445770229284920140835571388030843670510720046651503093172724574532014436386279684993782810844702147199567006148862089496307678139476899367847216213248765727529204283620096402974473827915725905686451134928862734623893432231530018950781793730545016307882988596708109635894568904069704626965311259635971514033548395121653852768529177100866662288109003356512184743170054415102251259474564338655198119582717644577437734804980428652453459456027150250930924144602083916778288660798167707485242660232363688150551861590950996196548363101917749686087582354660998595596496879002747875556938127685516260040110865027373012460131552590831112269225957887000140397684784537495026968307579256771741014343220917037945585701799042270448163402971887984560395479603827314316972417074762207116599671107963721684073460055049082623912738066463829404972447190818935425878904528694583192673533357427120330995656790206555742828970168497593380325184286636524787701174492508325360840528242085439713165867587600502913780969484346981528725480657529550485900761511322997750364308174385975752162663671418249127728888184395987298942123674344362240064243807237510370705403427722264279970775533911273010988754789294595104454481552736646230834044786165427381481612398995363609266604387417100131310712841090720511368320709470132142796306109413413377398278529125822479809253026069365250758454143668756404604833306520817882160619499822174272828222412767412687031831889593350107738376689531228244998283355198985285898409252650426650097492713653113290550295091876483435755066898714788485443316894865805264745227676378757699397076163278866452087956292153611722696734094984344795929234371293856062663211118763095534988236064030992760061172580423861646740416818571966967359167516213456727184441522914793743148387950556611167209273017900432113788955393983303455016633292314123170241957108881459538211384533627127039915029534283818223802110364285903591439911300041062440937729261836139370991213979832166178270324254113520894115650274105625221348870991660346840243095114011567498638682221770672312969234438321321243166162826288067278222278008272509555464004113443243753189280600696021530295657633316308213359127541916009210129061187307122346973630753976549819864666467987623193848848481645708737083303999479691108444224811858532633396236588815732312128932311487179205239792073387691461150130985031638330785380765354323165674823631572370411985392227632292145113574459410640474494810737163893662528843918755512227149407554005127517471333312843340797684038000047573456286368202997445822528477541764125123328742713591034810156656832775464568165394135949682518272801179987872377158894367814767025769307069910054926627638938343608534176612941265852411076172818703674418563083082588041723709674928646021360876433500727944574489060522765362705816778735466647618142594845135709711012633192458523293124847841226150299258761965415262161670983548225570200403327307293799089440578063792333744391406742261941527163687090875644051724920674005107828427630975821850544057207026847478008724199051132889738177017753493466348671967173901761164341812483762457050597828719810610600204882988653908351914331407045003681476612925847676499969991046476622133617104530016720687756258016124109158667861128775840145876563147236126315855182466417684867181850513744959811825417344012325353813855749569201385064295256972670026788200816082783481260634790911793175788478899600071521471525223694557262352161122533220193163960268779732327778016517240662092123620850743516442962927199837748189014688991707996534407053261645841383846936976565587103419326814214159069776672712413550006202693061995587737588693092133756995990080125690005582521497281852202721435020315711116434228400592649149386321607186725714013584382612000911781191434236831342300644267824620109576993208154126154448294034154693658156053926794491178871507438520215831822067876656626535827232133343178272089334381050539053837561316165224453245942962458217266099848675087040259825019327370697815485129218649283822023679116229085552704526996838466435852945187784291897420457484997533419290825880028420432318931064316534571490823119374618775766818902943912759794230542214004674240082992397435229785588570266489191463026964411651391702842700708716657760188287234156577844253475409767022476439045452829543047729154997140038029889341630498685890731377617005840841045152952171229258868089369276022567175153647014544955156292699610343729079176870661469217835797785869641482559799181667924314539160362061576238232718895096842325029120367334305208458857543998824900869509160743838127558279101030044164295232478861054937033550180037447173225225101657166326729507162655519250372306574007491512023319910924013677590692755696320322531306432384733349737718925815487933544753339334714137000395886381928392553179485083784944964969663153984889541554159733455318977907521363890630041486846002855362513248469389349898024114009768650497844560648837924840346931172531244675284816588673390905338780856489884885898746143747869543653603923048742625496974443529991905321785981775732596518715509334796954946489561122288129567087366258144906025711993172692228275046047167193960883031560883159713541218354038198992803015033364710253231682975244524759015468869359355740373924127180127634352186266515044799444488183755864743127896448342693034496106527358634652248019490645560168800089741297623726556369912577094904609138844324727143187606370961091131997166185396092413568333217233773885577364953579709320642472302943014529667481687923665158397335292088447700117134713951393647725491467214034946747747721353927999430611921681156991451010772530856437581942346973407391904250833367294149603031703423218948459006473446618578341176755818315841775992999362648361208484800022365310837064780530131513348862629765386428453037919360269684969786376588240222876271270610359365303377021410315764885028241117043689285169949133123951290175451096476257939226983374408901965501764824599880117339693641540144515283946696818169696626352418373743350499207261308891290412927195795147101451014676744134087523736650570021053586095177985954851633183173140692274558322297924146382918182819054727481227797394697250326322201090438348989075043087492005426309112320617893206351194432362636989120459350876946581725165652444015153597866993997313546388946736207345274371130340340169209388112575004998849267496903930866778473437965791296847368382960927125555968429601193843647564247610389244055227578166604431516998698215697065513001946345419010067416594036443094625033294209460742281567363867638635000890149407616474024805562723794615970875167376441226777951866165063083276333009108561568435895051398751977041269500060446792344808016129515245560058179999733712857517592959853130325069025303315588745289304908184747472909204814524947826336137224081808047386673278359569384625290093053939389817931450546362362880893114900555878741185630376270599454837906620318562026313444144042953372294740204254171931271085843475369236271920398713790829968955711531253056577338838362186716730771726225167093108023679372477146019732174365635403478503450206764178991491090238334732805624349737677469495281916467006527896687515890305691033913049217591846317352241195364346082078547550867020989128118865378126807122995795457559369173561728131023225328844662331649023312907165453079444791167052037326432302722430394397873310741803871696285287957213263471968663142897259743403895831502108185369477220319351181421630441177292329505250436550921386719588122678023571678675332565783810991294073883809852715110578596840506220159429999405483080375790128051156577195014186407527890126731822461367486728264506698380916805182190630435345904320293212809470752923125659062352886508856998620926398697156683687644471249552503398755722566935686354413073158122505895831528501828773860208067142073524904516134466132600845826989064955794542081688635126396312179379385494169108780521425525790722289781543017903808372959647096688465095346399141437572223445490857147666760478948569865232829128752514702702471956481401210488127781435851943884606686301667376722001248886395944620009156239447818911563039951992719473648184898028871662298952364752168194294453544266250163195886650294152418701985292759445238855898484101390112433244104995678226430054037634500803608845682954943333161031859209427791144905604162758711531083633780140048466192289027828853755156201279350556475870593286060952133800472490068179544863081193949551790652047112813247405998169239141393918541877631537804397556735514886641873706778490771359996796134298056828745443134381989077852817449662466868486622273298899282192950719186313300026996784332559897066971090972228085654128496104588259236807460321868554974890312681550119652852744376563790495705652114871640458728894848081633941853194598890424298861587062098914516343227275013260282694096460463593259679011956845040316028149220094588967598682877600528468130056416601379276245357950179328200211348244231294408986318499063142969488267981324448854239926596295871560904505182327929441119080527614057803632669955721251081853411813541379964157285612213440758903366494848998237677100225746734911747159838886438230736489347008069250457163984028431136166021408206793576667407829414348140746578794865869697612722732699924561915209275669716017124968379029573343732083622420573386626493892632377519889474079597901054874497633189763997824742291329247838130781452110041583535067631342951652442816421393206194056848266899848976593716890584305932406270967370021979216981642757409165977525212120566752084399131847709047038166423571425006059638909789682568666820717940342054621101379852552674197223279945131507704493835699154287671586819384493989155432764617402697946279932938974178627818121863060655213073917701234555646744488674933525744524277883927802406964991261146985573329269119982857401477442359504003177743728165731260638766906218384801363270720247490384151329233297601239890557025584778936709184283211077460366052789224004610324337450106744994779441577798939882280297167807856750895232728625078083653362695258217910558904027594655306532248415632518454040283598479551703264060558435157018173627559918585286574065398438847960621738763264032140933719710596798852232244188860348295589720811490112610636054207488296864345065583878105591899020582289205896308358076161830980822366595645009594738986267844439581243785173219907951066561670431393148437501992366687684855234736768522351520398264447568916822876224532371565914803006203302637333339728834170572133826064396221117240450869113665187042418402198247689452427671610085998122175457456345954934036961750878206922685707040979038165943772665802039993588262649443516540136828213009809640310133259382252771195186604949895204436966235320540856001426104403026535694692183596487204123823351213542400232964402542655867620877918472526251899922593027280714866699296484866745394531410408545378465779614611288267045535552726031327813522039895497624589369359125683298282926903410943744166818308361172646434292908889950735523045125923522624967004311670025056303838558164787092764030169435964923816185455518001500717642263247160212324060557295709857058549725132661046560002538796359600002268391283810532556882885149939164732663472498470186787310144049112702673739692470087359328168935383203916146060468357012480373620192104364854690751035872748484517331327836456778485611219027723354611511764091711501708484215702932229531312147897862478652725561136120397307624483947553078673917050728424310980316744518971466606654393704859201094805689666760341562476675185304689465093294782328524834875954642978358880623728128777145864537454350401949329884225573737904543312109327771231233758586855895627478487382704991005672075287761844027786102507469667494857292384907037825430363361824084860618630696707488453224198638338381212773762130051205984698764292518752040195203864434225384125742154527458155409619368953000182757602080201889660633318820736617884854632279568415147604046626615860000244356728146453032944402138284377776226417073645171230995964406699497044854017695287822544504071804901243390443541964573111201132607206821335018785424417602698865290322151419183536482275654629369983247175992854531051732410839800354587990546867974496730943897179831943928640480767411925915223623163726049905847484191476934094869257627645238810415958054346994531741300100608092950560880660845184963698338052311030789003372624243594718937971014005474380534265794006685534681568366166216288845945835515951385309795587479781355472490516854830783720495172310344666734782173059749657746215953859956967120532156064035119141493418450892295792967565672847453948919085605651331279089801901896309924365406393739721757990718543640427003316904487430719106924988357546413590836468025187671584835252319584078553177577886187299289264314406197615011153642655058145244206597197919290465484906526636866687842071095928801986182615853778450974803704871748882204777614455203669036143528939341014558715991934326784145144786917562484807372789495241599442678967210677450484610512697174565622925446790071417878300301878525407741117994259673146333060335385094057745637868288736334858018702573056769175583276538773606062320916771465010693939938314019692242788911592183866778612556108517606691769347581021242277553166239671687532442682668201515514471537447228353993264749136433029547632182296493552064577332263354553477027892803388135534322869635429166733316963083470171579715063755878083485286972505248203816268176541124231786299605474918562939285061778036567353649963548485791487801468186814621332601739594662340739227758801415385921319789506292531389055430594723412014282287323337532446315988613715548210963629070219405444203562084126314940134498045387208088176461720054019311196889450029886126791047660903832154423114172534175775181476618997727706683445580165392657154550427377627912350131579438809336450176747955200488746947876332869475184419142949184159065166173860200530231362969917956848792615847090893980980850644244715394653117211070655658460897683275478296632558019752797431343501270789742900791586108934074896418415435302154693337597893671240744382638144183195141551633949949482624018067623357427027600618540148188646954348424793956653161940926877515286864546093704092223869291161552361953349623421704413790534056915835804174778435674630723112968942559319094654319727124669171919259366942504334695286817807673631216738846273866651588130337016962278955888783100082603897410179954128712887409250377057582279435819434830913453768114658574753511344099450174611122683497379817350108692594467302202826963627038386157849034073200339429040091678649233217916285566694118290552581340457428462868697289802800092428042872735719961169984835531240575396571990560196776994062865118664579551258169993214686833998552133865841300585136693571187127582872947055001598475984028940047739482343529966200426265180372523553589718888118622000754058296557761595817415978659332257151102551151244949944555759491332578836066363575263491864374489684501880608313818433884607262423139169377254921608314390448647369275211444675163539325364658429760369500135409922759613104737633867837402889062854106990959252921139524433975111413073635278856651079843976590515666938427306850389743968135634495402959488179049064079289094001851004633911266082788250519791749306564174520264244616146763274147180317395584455491087098966825968243605648598541534446167115583223535169815125113856158696556028208171106035020153861204659387330462081649334002621185476624037669670389897334712733264829625159530173176938199196615534661994063883673477111684401433483637479057389398419120027996471477548983509296846004306490818724721321414672496686817853778574814511716678387732505600679438361130368879812772217951197501898078717909594719543183944820442144271069478260213779388648735018785464572605878252515343293992942476150389944805923261861781827746072556636530613541042829477241747828844892650133053841299200465301826761748284181290216899088098443933137875409544371090257387629426813338812966014997698757929812789599090647073576665337867740569871787547678105693342022215237438979559062654737959413713781375083037827926410701076119421541189453066146866122228588934266522057400886499573363752201374089715949089911630048497925293637512953941199434754997457643562167769909348867147543219385160035315815860133285726295240445787306735754032865911997578189116523291581215978229024990545276852775638882447074197819857470111473477327989221614234996512132411225928055055206717104407685879630146755011728471389284631006143192312311761418622946973934141390055839951119249279965401523535872340936297953588871738212295088561557817904286083480601752963022183703149788265663625597510386836148078806161474215402225809377080984690952565482262207203427633530633645567877006825964486276537700807359773021237369553932676556164624330212098983639654606022383114036357542141121388777584014539767402296421393272493192044915386870007792903407255142161408330204465663665189901276178232041517433301065341379848851514790115173878615430391624120184859388286164794194814374030040309132965857213532184989817096797707610635327971247385277758199722748891617087564478055660174724928076971609832725345375899951785439770789128145632686499249103427544638959369502196526640260616128174881630017694894941242932991456005881378354308166121659802595297409929749762577854058882523657455070931517265312089274699519089634701279111058888779362359077563768016182885260515881033599066299308615420737908799969692444730437095093935535168833666536522063599314183450498398773776140136492586392982968524526202810404448777908986958458573261811089201545431376366483105955882684891822427583860955769992549802055257144684685060250998716115523543129716624062725402128727603467825226535950871700856651081041424686738525012001847759938249259199771257538565257488154738949475551797323464730538346282947908357235494424363739068437037388513849399757877384729999676945173674729710208896361997211531824126187883074086203087172353978765570090052556956586056895556721683060835625706437181143008126745281786076554562408040898190319607517800892871863551197054482523092111854014620038335141545025706327733863962574143541655755508956304889922707865636891033491822996925586865070960408320329252082124073930974633031376679383644109978648674543032636975159935881460324231792226384202430357866710141142123286309048277316718234787772489442306612206128468388480250363900468164142019696166492302099586140147575060408041052102534587968603673445220577005760940512175046802639828423355875870886480102987017399256658836667212020383713225897977568012258936515574815550222984221768817573065857529206005893013852821918285738663635389339337603549186019321264811419017617881881566895212712582867781890978184283979916166905236707185337794503338754151342768052417395537507544045144852307657825351603399534202860752319342242092342521888797010842103217731813411576381325500549167099015529872822726028741380532312049337906173275506831212942931275475398527069718714311782378523862433694931014683296955718588908476242897073983012580522539491054081778098379875195225808241669399874692362621929417369333210881433848519792193256330296747514147606475361954201724162615421972011263269792734964039076411536272869124159249269077356305975685797144289957023018631081016566666465584738195079804441112142600548775953498479145956808570131932130730537524870351820964643287560200097203121557505081421985528016159345086053705912350809009078668583943932366998181136362345266092837072984136691123484234511718006635385103009244474191921041038615794844671194696459319784619191406961787381845259948492443706617386354449590417472249006868007287270402416191431670012606015499132593874248125363685817011462967646461099207481553423982067888026153708830395768781902873859714942866296898181290004319549421995786341495972446898560230151038605900562051451401620434872542045625064359218742554377028881335355621256928353748112282198726652050564832048812344284831729524318002163833102704402743454528184247220221759130053799100370125362746862974881505673616992270069629117776359670984558472247988409479776703965826263942149143744521594513192122463760711364298403906732608382893858461115147976588107609657959466570105487608967341972740223664234018052019493573006793255082702346768487465045043645864494939116921516926589249499465675339251253249557024523820287533775200537285562273999649765727444282934747067274217192331647456020771303384817717289167547846934934725915403868978752985453828482972863118170759775189158974900019835331095386902125775462965369507187220040699463487644091246809991574044055934534927038142271311520072022486799003980456236324946468979427036251311507769529076170836092762765898214886275557269730950507603161736848207071501240324035278385897102658956587488873532748302959887801152824125303814291973071159256192291826550008231120386947757121735104417955409245680471471824118948294459908585031899179554137051466621608597747526479108582223973863648096060795046125842072459209730810008160473999922319431594228159514046915921715228199301269610470898540805942487616387143173343282247578897230781495169023910845907685321844622570521005848135954459182822664802986316581685767855717947829574625255261552914174473997449162712276300700570264011278726286197765237260602264759825859015459001303730814093344230187752721507760372804834582423893570543477784464328789490874380404327246438092383337865059082832682260235818680912206476642317852842223859431812099585674461093150710825977485917310879428417475422135140821427621702490905746523772310870677963934434800095677560534307662781331117588778682112129354319646035258701755048637562263864855160560578158639925125318894926752836423536620262225281192237627779075180321282944196595130579167647653720474493611586007684047639233866326396326097791633730927591553530475020809131893902560242196265045876602854376316578614445297661214686795912519604800908558839703383334217107557000052566087541900015773566540050119792342819649862147014482680394449494988150419461441375264701273276045458926901535207874159160489085604202341741029713070725818987520195085241096910282806602987448733122475978871465619348871211107380880829281500137123780897566755382458943621319094216934689311234391662952518789597941871316557781896806616243424994503066607171340804970404011503613660522115292418947852457739053094281211519866163390580629927107489025879314882682025076271689124053109038826733795407141400511424434372333381874239804815772416347581044079369541924301614410584623203584792967505890369479987946907469091151779740509715638049378090221756158592377805957738527989430361937642315581888909228315034230631771138033531751567184650793544899329727294775059069981300410694145134203252901675905615759631830029535028638534896256861085271151674381016035525615190544596373803728690859709335548833111900097618028756116533157875658203513891791493199368413378542961618126718842274569951944422381509966315987269362271138766098953330240948618053158113591806613057286754941111542577496479973356365825557225454085630222266997948237153118131427102313954052296689049789277281754122609677845879084360769629394617475437578296583751682768677072036028370143012920569864904515467176350690725324764406886518729888628131364896010634266477316865547319018754858387024458695721115178587994793530014510652854397391055385452892270257465159512845011751983829653775419779298128764787984056384422967719141734821428117787484311949219721814894575842064284664479437302904658178614691127940845408186622598932513282771043090812788637557301799119021585929327123586063302711010690434806119264816699457588579708835984605748015354530760347870097965880933348643013091544738341094674315777108663846602092721202119780033993428627478666694025608315879424752495072631371956231363514768226163973148673451465886314454809562092326460310798903278197492256265964801336095681082946059798525926425981934997674776274560036803144376443236264082157475612077885346547332905091098316998379012424944842144177560270146811822099081374129869036376681881695400371592118131760050511670612917877909338184665024654416268842503048279488377135396337379263963846699084589529511579798249219896156084660066171605548296937103756732694203487272379739802155544913381681314870174869353498357830053947736921992132906346477735091324460158699648182798536814897551691495910762116213057126379344452366330595860429879795627649329748412675175979135806226709762304163400243208514599666975219115990063769347396931442430418899140830604907099813292512806643691226236983686467597479380142724604182526020012156428039613171787080040749290145490100867676727209048395381368469099689615689030914936624167241810255728814051380391691695846588705502082007548433904046258174240111561886600412345960842232715921689447357442443765657786374598002758686859666997737737849226404283652095586602986369233098146665716757176992849455972391765238526210795599431086457701706268104760723351057660324550134477345079953629354662882024135833068245158911638640567646114943079035985591448061144295524979765241066164601662855458125403561533379315496845426804307053326145821387373213439108428450005571006696393803377529037821576423508207931716293740190152289760344087322465571736231602580049657448394867484363417542800033640657561436230408439865778443486799348277185094661556211968040026829781428431543059876464292067102760116375812579209291718513543704993384101596909974969194703388146351270736947111918856750569914686043008696380958350403022437649783328449627376907501043491021887310163872492562612536135130166870349273292995021683940975531881085199398211790218083227616865872247336380980798400232709746595692689907789907515107512215784630737484495256563620468723443629012256874217862537550562092701062165622930724859075612522630648004203305930650574724709465618321051338046604775007782208620911310639269472551038101039937777091150450662020866795608680774145940694190427445238213209336605826061391246640158100249436581728713340394953761819529889775318143154104599286141066652098028995504023450082543527578639449139321946171083119266551211937714277317275516905632645052478895477809812532629140266403723170870863345907895980930964781726759911442505634613953868341503370643602325712284368301551012326658412397955172225428293593619818305944234542855999765612606306158736900871531992408102941681316530541351893859782665290061134339093916450034736589130781131649205901883940215348256953236182380362058768605618528920404885106707730047037908312324273444616289140458018429581375806313201553073054422075742644799855695430422671103891630851334937569150567645595725812427353921482351081051647963784858705552703231883428987441665963826399382739464034959350030860096693690793210500662831388267527562713021228433283539839659335373680614364775793255447856279408325328764767041817084202175823120431905488190798199424860374128603054457255260632034147663986091288135996930973440317057755017533823097755957876039319359409939551629808812309593425475605836937805211694387406951504826008334184804024565620278262526467042921292234482984612875779757837101904592190935785112904963958684396669893070869548017263564058668138687581789856931096326231362550538795288217312742986144062273964390432517022405716529811116015490310301291242112700195489858151619976476929424353582312515060239611832257710864975382637626330338119431969109373715842098101699946930710263015362055723739288939690111212989259399222056362022995669882844346139540293552290794660344956545051174510595260619718641130280158092031035091923815081391373490522784326265829636003089297432105058170520436271718060278100324821859526580992481840058597677385168675126586425574292352643635927634659796324380935776186137057338633407388414443648446672587246029504684746840040035190345132960198901599241471186338043449795109464573059990468455886590225773592461644419283332882093794555963362101848862311245912030883080395745859444067293800366725530761043884199825732325716162814853010208858088900523066715012051055850797050982693768163383170485988148349106197181107290124484059592548342279083375046645239594002475141819219468581044544690851691777769055885221416301520624131473443782248409251635195377134795517326450103927627993135973694655431901623525282628524883614612841231974496569710113719900986512666208742316065160170046470108619885448712302184412787224761581689257057397873069952986528794047793916552795760545675962990198365865308419484874718283253360413751905176850038142803428449607797294502627735382398115466308259125053151256127435484660536440881561849846465638441365957130754865327828463034639548943027371586134929950455516330506592202465041381407813859187681099866273373291992269014936628230146632888894747085762643707418826571253321939624927522766247311377938564108506741390585469437946626231830417626424062675599897176053484814835626161610317512691050640627724400685188339119398194739451210586959579405438471913054796249832111090626255662675365854679243835087096792723473962658751463107819834744823492263082616407143096405897639379262114737093992672407481860000353797936473306577689680132862065262277820153599506522023421240308196599316681991169904565518481099187124421960521469935726575576050113225994587107128218887075225174860737609466197860207598941428047185371199215142770350259822234561085162028133302612241142389076049225676188439066858362475571845378489452653151238604928580846216344970262510760103830911751559661806725904677297826128381298002335318334477068298464693323160830002253347677178487819655889423596165380590062933739135725650766142926271178857174597865167495354724814421239197673784607785327718778436058370365363470926325851607179474269861355840090309561926299008064122544503344193569692679209867136390482485370608232132829521364397459470214663638459782015229253477943988610120844341239105804132377936692295845240608583609966088808735752146717804805730464471675138233923522954216627191971739874363237016341254666541830176789312646086377421454891792022242976630448348549500802134070884056707017212872812557083991243845047315688149077664271659293161596213174400743075629030295609073116062606137162118844371344515193945944025314385961406816015223441287587425986730777214321398186838830088086424985566691298415364258703697153012362352906862396876142510457906412863210477400150637159215020111975275699385073010970122574637810696163853476935581573565048419024875770595141884012605541635271706798652896684813174803778302230179323980295632908971614695932924931039174050490539279730149692486212990367563692147287989216685656298935829997968156837039169028811783126640580228178490228870005660662718318022475256180192130136940462780076689599252575065578355574140627317659778800221653605192854313953446030005693480999788105131618653792554551074724612561013419291850289493681130762980873638749491314342083157424823610506679708662192096765392227416370065781515991872978159146485261018554597258273699548869385844096186339983760896151303323210903559617503326734141807732696156329159199579553899867717627316187158181829424138453534390143036604727017798584898243881629950199403959203750955186085377094620779059323256516112181873204685008873942254739494914442409216939865218526393665476466000088005112744847705146855221530196602426624355715258065171424142033527199573067035964943634717429718960054488482077114969689690273556614135830718791491363052138571755656899696301380448364525338641240712220783694713863731104884092115221883651033857862915764233316055772034412376889012442834874457865344963577702780641620025306763243580575236053721335106599860485765400572169060846255375227807871250175907272566703149942594563769600656921427523526217316406091226224541638653825634561494515795808794718690718133715777182809805821942120319027848334737820636990252898331331690219707846966960078033020149584643524064067002256357634853152644687315471255760474922377692121583454748594457877287745986436993007810100781886846273102618245855417388893331814117799023910703621201320535042507260604864519172527084945761829387534240158661898690601734929546883283808262712953604828705679228094959954409291419349583350481216644206529625081603606793088211641174422473027674321957724600489887053341776529725262630404294266446674750189944650796059049373354151643307726081912828575101739171259121813445692158603381131079151635040556266555828527082842946508180296779915323343603472925880739587116288857176167415186457613866193232957026242696823903855160897819546570978302156944242468070527233789133792671913158900544712652771888383077868540616672850398749048633453852532526544545370357622426095840333213563676003542123656839224904505636165023716673139918704618840631337580529662859571350571552841709364815416958786716256138497395472245736319418107642086215712371112139718393053244661232066464571539460129148750489318076910021280894538360356139885642298640058876449585214800708059410716360092672385895084818508331812620663112021749579934850985893430961142946735701224968334207188190913432082403397282295635838114569347973637165839244455065866718355251304637485678849564264601405505305094441657493087146041742162222933477530640183608608400812434301388185068641673508485639939080076394795340418609027066776790689913979537288649233278190409966392851866037523607170168438683971416515410644406882014239066859910884425854597602563439064012200829554012141120568977362850546310576514026934306570063240308844686525062730509554669342923437368069247119908084813079588450228882923253457263550232176122053133945195371939058391057079411117500526159321936954282588269194674393167998813241465982704811337497832816361188892111313384761271575155396805912237351723942491381357754257622968681196895129395028921814040254941997316890014719299621519534012275685924126557149312220924452751853291179046216052703837878891163978885009306389641084242002299588134310773926300536982288564535568983069283908201759958070452279141723920818335947222239419048895976799524059606049983643617056906888981681371453580048533463808891453708886381843354133887403200316012097725845831136907569592903615313204636558350938195184289191856384249748184796553102696179615760129465334998809375886638111961010005515635246340508081733983973246861718464431711042760023009629773075870595014452238952342710139668167649897463136968526794689011732311028968210897046358210327815011747810539338777673637080084632337615750132573505490526151455283152026271315327008008534413426157676677780649309687339034753200747023709393462043301407331110593411889802616484333114272188158793467650651737598127441407839746489787128860203076448948798629757116411106231555351877427030856713382233282171485040351922471055207345296930421582542994702665706882297626599084653321891239252063361156594277824348694699792761835838341655387353807197296962361247640936458442785841150972437686424664165182776589456052900349996801553067774620107967856350170308141718366551476594864328709364662706430721029096608622567328258111589309087865584085694913028017752407224125774654363180812962021371183000582375473416804287943075584707091876713840671586994231477813835682183039317822201016476103835977630010660293162972753158475164341634790307624851835395586423021471224298635102081148124782108984361915699245247247473483396991323465487616571151776691500152827716570357632208672049712094067172601155579783375977112146221258066792686811161796287670668159706982925345381340147719008724599888548461834359511787952978789098681541069744443957078760059396685814244564910682926822011760430726934517029864133718899484359343221350317150862961817383654802850446574790187546249447114599970155668093836107718273480212076715701958184077803423681085283012491659558114904390782352496734849825030242323939853937424505837771476405726350492847293889583263659859801429702406395890804501472541743559427888381646591512451148379044430610062736961078529133516971648444306402181140591733018052467817104858739898089952707047896560555393504486056185219462554185312332954478319310490124188050780260939586073410592878555340315752886268231240698452974915093135525023787277741146686079371604324576402121306459224894523500063773280976764509257969570232037740200277889376700971019500059690231285937171402773900617535316147473684949252384263829483793384596073898336575781768610006238566137591642383882191150594301335237526290108089330062784282421327511421900517806657451037704001907538943561269375990354684760704826957476408693160205905451336386257648195493735255115404012900130332586244056409250264924504818092159663294191176261946349444178627060847367541019579757836677596000496180809826562141400444665752774096989073307091509761783790230191484620076026908551059211403884594740040066889937231971171340935475942860075020092808870528858951851045718385706575530489458514613191795729134921110293274915527644331162151214610076178634261335415606780888140990618441288258286793492638325857602588365590777352123295337870068544985859542718045283978180231429079665930181687274398381737477528766819215901475312477564223110802091802796131676934726322426553429598965712550066817586385892821319176266989249977534627846292731585601227456333396367838044812003680399358729293789237867797933209549674019985115920603327007783258654435340094945417214235877262436921179663258877006376950766668421120331979918617452357540774656202448281609512000493981936297840533101186294277365209157676160189670889163669040323302230288890937419278949118260327090750439831880139696698310748003688366706639257619695211701125083606746321757578169052674995775522836118870941031011131351235153753775914096940854906665468006274105521228062685781120744101987797791099911019698741228273726797395330206095259501834805074342216827219786698549085005741739930980921675185582467053680225711839468869143784273514631007173878480987830336395306078454677151824639555774844300605766537410150761645199193606507650010861076483251698743064261115374662447147184119777411557215608061734993740627277495875790856306014981022395391588544557354345413369666724668488991806271120209753908122695672535478863382402400096780457882232510672844545637679737252919888296666998747221683831697838550938192581269224431088880740601669539196149498363661464103082278645442689084417045422187923059279924796483431853735852057421346077013086244928591239160072964783832491293287577657525207886515568356359235873088470252988392168825377678839279262567892621105120822944072316829663767829223322474470716478727214807977364145865539589919255414477917637972750131626896416621892279140499810711324613440231834968712542671810283227842159458996951214188881219160412692692218847306516297827119211023040929488213821796484606185961396097378346737087589573308163551175971548432675533787125757920824145074368544052421899755360083748309585056277873262787940842355044291841120315280430684344615890686691000183562659457438801894011412780256289830579982003688592828135622575455638356927622961551722432687173537469835228264719650025233707573411190103801572164824175342270583469535425693125692644233468075718668618664980654175670981565937030052611829634507158783204360500904981030197851431731569030674598850391439968086109754327911735335706266927839288986164465004411945546770013410077217809033341034606379322994749005724799843369985387998402604135890798344571486930644842948444724137195429923706299524433999868246749769973034420383141936006427784466158673917093099490789053926730025019375045665760010910542615203782626396780327580457809803855111222831297985144154329271055114187860247369265762007607761312135502564852286371045666522700226521510561367206716829481823206100386837777935533010140438316667214960199212961441931608946977801677587769386118365731760327519129435878090788654140413541348074974850048365875760620229153399776211090492604086105753120575978752112199139453189939410059518151955740267945116087498091280860240526994096727755092850228059305219653608407875773849604245488876542832699192232148904152825887673202696209703211118359057069979726431644510967469237479631511545801864939229868417337370315329848195445761632382260442350435098982216961640776564098014631522275428499662876177245385366727646019990022431728636781111725960792632196019110964014119945641098385013159384776112891129956977434816129318362505014063744029120849044474609733844768038774565138669203724284378975783825495558451764643263286364284976509333541905511659700412170698982185696331915497864688764446143476660432602712935676200189181056822519679632577763722920438510033166047340688903527118349669148499473267997009260780125706755602489999350720719188093190391235756418931967717294601658690292670984814839721554619202928841244832720196624948495478292764436215768358619100666666426000920932278428580854307682251991788462089046826587858549537393342097665038151533183144699549685162468129413659330570237111257749332242354887376348368833748993323660562194812283736431780692201633118142057369643823031832550634398488127817259026251290118503856816068633894355350138089732584418374157494236645232657438806133969440492326018021254294683316985025159980578492435768916509100449157408321610898520418965502494338509856796290167048217206219597538947666172040297252293763200496443048535989735387211962949561783075861214453812381312627801352084537784674802152131255511115613475436765355015298711896274780916827969989584962738762378707361148308940889376403897892719999060461800247892689289438362694656272365300791531732215008744993251396311615453172852804326237994906861442372208973557006321091926056833239837603040131977763610214941484949831008571482297271160685252551130779324699340010681716535059839877810022958656704688497514461690346483750578872118674528841487957327222026494261365375329541057364597305910871252283577514841393815309421540735442619074671998616850980780089673487314565094860951380094996095885712637669559728009664031034914015846897635111756193243085729744780054341770564688037540843205153126250745639665404503882397792196912661347778738936657712091047082410085033079753715111906590455623895184437324910466676849856537510099690844174011223548351682184129433550145234799121727153756508248672105453626205816048101436583777362163355736607270011938715933019327192661846778554960845771126144830279632698118841079516394174453670052438093128048453457745175422843923738202505879861875259067706305226317167275679703809706473500514677780683851915670938886900573212691175646073184526198646953815311969565449749991403543068216549553851237195419114991802669417817713639749297160788593288830000019698996310281539494319990641645474846478128746804462040569061559248596563642240840271372380676320771902327439339573334096060426447203123520103026332185394341664781535842488412644684815108266570228530853149147286241884780875721703222841300750825922859109103793444977846242393546028242894061049650437240040486540536348697753782356549388974114708777399787848830717205340150022727118506005506173047206368295130317547559806854700816398210353271672780331130991953434286839291298350200281232182476392921179971665951910505312071393165894144047130032239633281776428419462364146526158284240404005644701204255265998368756410973205379405907805899676241400950310748548809940267067743405172330013379780786530938604299989714387873114770913506243626936475383993995049626339974809278451268672773494701900711581574043858364154092283979458983681766000180024677358187403991385316081639474753672485841172742962686516779230502077578728997945177375350240762189904833464160788493045119043481140114334138819757371512946840015311764465023867726454758619416692538597569349951534867571827149769765264429536560001002142008288308874233989475596367759787009903591161381970226505066376523686616488249663979388856426583274919863268334015325283212309063504075015933246030745889801811616350578368950247580008296789661458240767358759654677739276754571551989466919431978993512347486171349850923666668134567856589790078660924645277493118455449705245163532254313132575406867986913451504474587564887499652890161682925229036508138841820622042658124369554353511736435494746592066644892819240589502753858561387220284618064812859976204250817483976659554732211103896319158483084332840485665999619148802282333681296968217807594401237655805589002244727762719308118078710114835403315931173032904265868894499577890810485476098923471418761231409220235436899952760600982418540283685349636001537446660991435068365297645271530840649422702768452695778941234581687218192082568839685448073074610237826555641340509370673816715334322463270228297850659549933309552295286971486922976240666976189936827175408342729103840037296889149895779578858221685653236712858720989608010370753415172372747205641470141051478421593648263564986247333578351962671684963526753105438315091449527039785066567757320185036777951248111398155600885620148603000940950190137678786877666027586432222007369868609444459560967205418132951225440988970808229205479401931997335408464016880034384791458320790956687532335772353390499337507285017211059639139623123362722634675154375472476974782692390078463018066783478576425141845473092998747495047478806868578046342370330682902260053141690032297158265629412130206969083931734461482615177958040450102824680182813204419691217719996968188347255233444934466618935710028496340867234872660899097684314496046872526717336317593801189399072376099183194241387148793723240987628022086279601462397504799951296868808401054282887969365945258901336847176550997874421088670132764213884520719558475897990051060781458401339605913572517067126612693076223978220728341155098743788345370170256423318764689751200771454080751363680551334737009071204601947302419642198883901437399803401578119139945584398129899007329733938073596812982222724527184996557972986785723696336249392303459945299293251084516239746487469506564067713202795566218030981177378495176128743300742496287223140548509920498856253048798053443170665181055479774601547205628135577586454341540713817758144311514944473301880556144587171883428196670873036639364185398641764822683562113690880428453907927782405098685623461236662023150496668441445199443695420568650449534867893125730926998864227531502478415251005475555906501323275141254944756246513553325842810977394728163303034324196752309576765523034874992377734228863347402333769053742317602745589130320186132818488179222393703703804096909471382699718073645602132872886401052524286759436079296373150994739660351007770795747643564652143947726549176959868455556806923370009213271655597655040752729898889831088916411478903701988170491695707738181652930379883251632371028609565457715514105663289420430221761550699607577896257506966972632789628039057647746506302296273255125620366781438544422289857873759264873536591313619179122661118826791257014860478875923457907596042301313138384548766950089005006178050625361072166796947026227941608765117412332235243822479484378927461578455113146023786770427618849405897241288312773109426040582593520582247432941552528593361171010670929092389937109061912685182695683562045654560294437715097115551860475302882825182235206484410477386909215781583581797780466112473728854499213859355875163763637339629623157364725646840560207575233185273962470474300562935547903380167245460105173898538404156841343989779568155829046111190162766524721891080564265095432902564596169666466149529279333683176719707089355885347102399253330069786585269639405192201605605069017895259471765836840771459664570032074912415482033269860238809526639981033929423814699390981776231678749895657965748217084617174324873327110243595299724272335306853510993950369958564847133656685345534324820697634915609540312345048050780266777850696238198436102312962311885866101929740159572524820297662265163413055680410357429977341037470292397022815677236858613634324491225929106081477435689493953716546048759876966474102711110039725942300159160265357027861493369087955874626498831680683598716137499335251311497686270587852434774374770830741372447916929519554800418600928914496572607334958638253488449629752309011088703848302825226784633401095044832403113530554991983003905056806475922142424798623862822039496797045969326204649313348127947703759683510949116140821351888840109326396162741352189781072647278013427144880281656201355907646200262809583537219419752580612511183025536290491417153767117749999162215346250373435598519186500637748935455056357871978542668202196999848707069572004061506229579120143365648130869697682272797644252810587580319621123031430196041626471294831589265560997335949287101772551805572275662494279040962948760553644421882581610341489500905873189789194001301996981429002434647030819912665046257617481857158212756189881351337647526536558512217918129867512180595897240344329322093643660083291782005734439740867615655171803430209344293200155413200824560165059446551307912681118947815012424762123028568059805292190669114700570002866302528909238753678222976962706201235312894206089772698117458310785990472897850788004442543791393105293630875609174443908587454098999750291517544787954755253276926298869315970484972567288739853196074409796670074248246253498863656400683756063041997695850410696932057977066271871532013600505724497773100156416673717278298174474808770661770249555551456821371134836316801225680587958026283854146917862769424127980541032136868153305963056125635122921674594664541272027846883736597796524340622327177691183119242194672377446333385085807873877611267305832370520242985089417446369271078548367538772040334661802927444745098797739995011532783274166188924145386511492478101474152859522898389373274303074463252704030413808779361817259367432792780989911992227483334384720956869109117544336080719427310173381452827301533847786189418735172432253085673319873688047374720947921975636067464944504277982210452216338100002912075536577023499731416782215018208271939689729706557305486151515660309980776094642798189386761951528735424742098546731181629001135879204479521699618457994834839872437818125811140915333903297322165374487514100827785734995274340595200408380643691263777898492922823067618663281514590677694263452318144780829157993800577295108819233265626958957024092108776252608064463387044026960746839921738162184701980321895661657439094616752401794926382142551539025881429230667637072439542968011338915189160343470613108254605081504914476722294753174259926786179567504108684796395137841328975790098494735616044696193516029470040506676755486969244478652007543094228577698947735978849459285270353293924096535336502217306872118432577958955519599293601152177078804970310795129190464535863144659437669823891763496767624930001200874025352493817920594208520705489182954598286275399919910906490644490309224085246323472636980636659413190338904096149278983476018254320708778390928135426563881341554940261484889666661005106872176125429259717630637923946176327463587253492003936981720891381094367974254232133690206000962008863907912960441508125656360869999148697044139568452042947138809668911155005453286932409265491165198277010594386126068899839111223411942206759965748175525302557064858083184220065711108490629613615534366915958758905291495605960913471475664832757635765914948210390078545092975835640657864402378261978271763615802857151700179209196511127494510101978514085459219289984541771964351548712363231604431341451295119901755320614541638080441998156406040968988034273917242931622338687661347622694943209318804746511206840000412202361018351200759589220799921278819847692683396100702182479918307665142954572018291888109824686435405360768396160863270459269665024762808517534236502784445338506984618152605337869064473710843549475151567314483150881901141639458269033928204928106632330459979334252050776239968908663886769891065496405641313047328018590049343191597773341595712880566093500303695111061514727826209512186273692443216057705018921112223954710033589506553129622438777942466351260411217431205563548461918442604197943277678353535756112575209534527241114668626994828227862371958288853677101074049930148406089439107334130627310618697592058148579376020117904932676893949942198047788091573804327357205622332985338289166238212310171206957938165593751784150706936842164697872635431645898494969026042366027770485099400236199423203813469540765384855585109946705121460783146698422438517068189473972803729333107513834322879173678632682613464105903762483486498377809992333174792008997042812235165550934166816079135196402405147998592103464651587407774902480638814244672257986275910995613547901097030179728940692605199568344613996314941577145222291482714810746850388796758724349150210669461251146956285893907476517002213189812386927922623978121711193603564779601744417125267361736708015076423995803726444450618890830474109032171053420468190889320148413558141026726367657924939531368062145463744423311974863380731912751745786054458852708794026804330564038386270165349970919968295503037725655563617075196531176629577759669075644164211434576898136107128831602249893200005111203737163626388629220229243867888296173448091135840374923444196449757229803446718509089836916456643873274450442101689887454212032003425402811806086694000324967424780362301909851131901690092362239068783384673053280078555119283454179357580434356760994675581971299287806825954907386051293786887478605738651311908337215431675406419977857261716661946910749832902479534442034027691514530933867021207915411827726538248075844086985829385440981752244372175414037218121992634532069781791157524985098052825359787724664739459753965999646999438524998709225249264075614198236489137819635858431895911054400303343881980251428329303564187347214305857968827853217391061759086335556320532534964231206703038798629522044587407271138411813191436042265100235412978091617706835892549357185846509459310434973280951907878249984114270082403077230436366934246187424896138512004947381236595711893115665393775774272316376710708440519262928522185096201133526921537630162528398413042139000054101775494938974306313644594416941942759991382311483127013778258379919811000088789258417685685650198656415914613186075422240356952640167785250066111736653240210223567229187374070227423657451346739160725190945183873421969150360646303105647317575934519017179730601306021637402063238812132126919004421355398782700239823584108452353113508043228848884785081943109023508221185496135139806000899073353791759658255403575465552948519068423538745471502288103544993850133989324512314035626756591584675551374781655758206830459644476575567461967427090097504520187360952002928360050447563753189496444262341958052039891229218871184535037918729145764403297973355442961782477709608388322299401628860117086520881914880522816000533915907515472087036357339959059917725606844399894921246600211494672056623433616283651671861180998391762278259121386421770726095747943049116337272759868351133562224135336558234471477904882585414930151243276264225298396192414524439688534813604048286534050273269998626218500881004311930200347119040635702364434285401000223598672173647774716008122611206937104525855488897822743331641449486619217118057884938658931605909509032036676052073099987265028356371321683852594644649179598182592709240881147358353711233028144354784931156223756675866253461583848189243856164253487780049491612570917516615505912081508292826503690361700188835795343642184584395735804957657172324209093185712449415369790501446885256569828601302194470960705420866739896509450346554211613048375167050817987750707062591085413397061854201457935422077543988154916551168706070813613741512692412891809511127701806980814919127490912426169202726741263163726288965554269029821662653228362573224479592749559421520937048806208506144660303083250959551821583935252036333010538964140682525130378922550128459310080763479114929328529517541230944287797673433239667763204407824079147111700117018732906110930484509779929792154368841996929613251427741951825728816428790795050123324419204029458400434724392978590554408423595325605199850337530721587185071566447255378846464137649564580197635594806993197722667580106049716210966954959191546588605156258525993413074211103285454927364726167198074781850894150332392780345423152298019132458707373868267902271867717046014017225248151308003898771298132716049598577590434414048244216966490305519774840162136034314127017701335328547809910075624750502671995849485203209338815879242133065513338129446932522002738229400345167285975459287210858413393877029214672452858937511438519026047374348712131209347161048514129473305955732466877982129638778929878769864200386973191561903031778764676420989809676210787807793520251088272737444936782538107057589760131220960386996539516958095813516816847289891442456555978200903654715806414173791499455921976535971047383955059408620019559884153242819718779560213510050630666388663853490988459965037737395383143036612770713524403586599339340536296447907064290069891970805509748566689924898733818584420748148132208029422251606688691589071916283763966385166640028163852613177191338155306085339791271410119575296146075475565197807132179564750957620348032386423472321124144253896231871630433232897590734915326226048589877780613367809883054430090249337148921560685267881345707393409506143752011937842342713750127830557291623310918941052757880544653024269067416803340694932787550924557322643691197114176993356846687468138974749732125378361194877366907248859308077575336103917059703999347469864327945245347053862686177259785325008154926695773173989036123669351257206421456589672703372917264052372247776243499597194246410332815836184474649344506113071337169023924705369617271938242679807056651269747149602721790634178421436121507645520119654975384768881084951537562185514200779716115605074252852438893984796426073831705695039369351358142004673340590096788727646279307105341192821939105139250065907349556077601000476355387650375189888729607064955504905670417784066133391307410690861056342980475155053623406232239797677682532009133170281108074183217712953711829674207025509094717530619342816215131061833051891977006731255268367319809521426191550077129792038059957710262942653949318721174191404289657086649911103088457911956370473811517633019065897374847274710651735017990478254889675802323994776623191036442752677012814287308046532119636315044122931576484093289201147194025909087811764461665485474721225154703102295712157139974859221164379558234462397206495871475278744664960732303797211004520510864014492120676812427392962139033740147114862575151548924469311885540994102612998180351104590919132615172024032043235650734217266745498093639398371013703044629814888179398457544360358859960080642194280333053555063084200983996774959289301415531116502402141896747200866974156224026143896984102955202937990070409295835735426058437671668133181967349457055899843179663296414900141531660499184092814992984184752728487829311472407912138105461416118964121374821063272178399586014119713812548252554864067584687041400178445539841373719063972558052654997934657400231689636716048401918155560617155263559998527129578039568776661929114392635738578994403141806790009904934931353941500780688956062695722607768070713077998819934369159659847061817820688662037787503890741141275400461628676708630261948247087233982120512079653695231546808017801812222850327250070766550815824618567586477290352714100880635694872052616277004321974262024274078535129452530228944430254862587343533415485395281625475150731777892439117905368039466248079412715186182222415854565945380056691095759024388305978166429018779255024648658537773720657415897362270601258481580842955442798314161533048464718394528422845935032025798657427951954964236263847344839575394138383943136424088716798605468186362483551691858297691451394456140077793053121229835615472199227512322417997182005043220617340244543934394788877727388259736069026173385656991706113529848149604659685124623960470171127016132928418841651912269794340611868713611685484907008752431105101754918422678022340064157903802983918213738238781835846159861987874090855278670990218327312279480370718134826175939477285222989844701470669807993447751975992513508965418395445478050185179609976785397403610664419765188408453786085052970942743228324328617499695634467997384238197930156608387087839168545381208959117936999234241220205880735570576487262510482100295505035979220885043948839673162618730494447145101988193015680910792900537204477680992474942077253750926151107652273298420171556922068891494001181707676116776025954605818476724720281568135962934874509762370376934496656117427741546573793739819807501493494924187401329036195883520181760874596397211686011425085924878398114151487258187827215170195013675924259974636789436113950442075301594876702462202783514278731807182840005864363239585853710141976914170021313123297469803602152771848550995413165891023358627566979467941027998479786120549226867322185237924330702237450838264756777393003717112325950662214979281159763157630978227127624239238894081483397241033225273471460484436082552704522604072323764906714301012994204450233161274600722044972493313251079640292154482091043698546051856843797242623295250964605147534208051031570745785003953017090308926559944440404920208303299140424470558847565543569820788885650776850822679350055440938681431748067687263830012098223028622809580396295861373923725475562596699941820498601201839991483233357096449837174224248307355062257120844867390330643892438323919390398382478594832802934822923704781268525810508122684335969303997572105102975148518450198910475080962590069442774600620714093557906441468218412486733849611576671310215043609468081544832858983940886400616373486068389968837855013163848165810127099801927772886375606009127843286997638250083507837522834064000169359600866529927283274718714461445687970149232108629615448830840297603080138889379190073733412907002971289794942943272034467365734123830773726047194440333164225975954443553817793150917489444361704644158839906152241867011149423428512153175837021251649715187099474976876615515589582289773517247633340630780337993781944991207568124516024404953584404431000568509162336713324428721400345616583942375247208845888786770889723206681526710708191657761494195895040408851297609871377763443694547864392462476749752912755793865696427244026843355820536349892399860645055975354162903441268547878327357515680798290431259465602102150928325501819548154623290848264183612651137713644538340065784843363558949853315576744321053307883203630869114197594640962581970592235627531985186440214320851655331237098207037619564971819454840952878555488154140819473410269605424324871799393205006098064382931372819934786461930081411379734135325360948583687052513912538397447493860976737194741584085186089910032557358379874125174295597940459852946334633087918852118505624642499430849762146694838371250022141912295573812663954719183979669992673811111543695232951843869029024019338520859028112810768997667659367379438501569791427707022470781540415302631577164688496009572250794734895212190321953154725085519464280117536770509909848880886569302987570940482133748728620745350644199057702467605157828345414127618086276765229760820274196253828750994717681613587823764951686400458829587940684245460151542322736627640279588391386350049565956496698893403140430607037833878721721940939197430723199355252292884259474673964963649088207036420831328457214437029312375070416867429360519455803987204965617977355053003070129234508907644709412823510758771962345450251694870070755525419457734962982529186199416494824054515051930271605480477322299928487735414088535921434215906519241025395197026600853039333793537455590792549037206195708678758983628004622016918057689025664587240984109677782711608087026472052971186983217748245595480456384902227764783152106922594431572604281048680942331669372147986724191935814009727264934271683127995623249209049428340287953084008482831713885948433675574519419153384956421307588982334051464897691424451528893414821989223669101901284998662879077527210652250463036596573681371139491516262740819085765106974875097333935226470013935210937963656997412165892843388023696125823512966567002809067791361267101878578601857412764342284300448846485254603810399348709896859911338875724816658681591702982989541185859229117489470028140678747752416899445626413271185490441406241846266309223604515466941177386109131349259729179836636284387569338222401128854221167012842493247595348851203025095452821486947305955846977030543880051979221755709784379509341484609249053747557463453911037913878499920690072603680902389410494396748379331599977286119517731100763903205366939345175340187972654188471603591577612826475737998264649283330126046773170680877041896294526805421194792726439249337063051822564786487307546766838862626664203915097182700159159123054861707939539045409271837799278297409730076061143518372324779452062805458597286568149085944425733729883209472367743185242636319126076049041791636383908542853546146853541114147728144943182187577456573725371094368798982371004247445438581242794031234794305745652264188066882773675207520650504647176154754072819295558190368451224927118578660350614116699411359328511405639458105702069348434634536180708976387656710530743491854404540343283619120576391014672097409566589656811748810463909463029357241939179259368948218108268970099246078678963129314922152276722661025648505246107710558609178299119946775903736972827294967673391018476351467016338411247000491742299311571692238597325747630272323209979116338777625279988688223427034327531458830028671729341847471151289887556112602367110416027579042695302869495522167217188802511907854016762994972463411571340868837029502550921503470026963091667041602402979409694628013478300036666257187385883810423614059221723533304826599332095350069251449725823905922460699387833414387468814320011206272908411732219023091562482872906816020971260159842997010444205633290672836068167297673749254044301825222299498020841397619745531765700201682921534202519168690001454919922065230962141324282400341634431300325817530478377585149186276224664545429200762790073848918644300753915253457713728090207973962525588139471306906051875033617290309122289575785399567360025375584340993343168184517402756111999089267187849350361717489530139176465117848699835772324758287834843201796067659354109002368965285934840812400898982952537897356368749887837084508696957661139821250468008562629011152179374006864091662288372276222662512186080391285936015210008542445927674136161837174666064815930501945604206142080811830129965740086673940222185768985806880871767420580596270183719481753290367107197707252413307144289625639602921610148387472277412243776104025247692717427752700326979843526830420702442369607876885735763028944693909519502924011769256375897820718584228465502080293546111383782851676251022342451745620832587777417686754704715366335101927487080696066237256298242086380934353438639632132021277943952942267368395576097335459293735251474811491903439862948253372194546329677085129001691695174223496106477066672265633329883097934427861055177541706828312084804244279907079218601394461842133763280899309224028039388773676706408748695127356515382325096926708928186241987860340036663224016652213323918783052171274363658526276551104329678845416031682416219164342809078384534778256421609219713928613957985497136518950499654478557017994212331152532698379762329941455786921405802239810783705446092733759889148258537788626911313647505793703406121698705788428511931888259615486456763755440900371639563946312790160089837310940097839464654400273521883480022664830816520041529905728586505688853959937812031153039002064301696787819490867585519047008691103354554660861459265586901692098011632780548922214702865829212256988789026430494098428422583563550388816353383732665902616120840270930421909272348855098837148434040465033625353376593598651639483955013828766783273748710083170608807217449572121807923837448610588102510442510191118776643937990222654802197536262747095698414696210394296231892825733109175893922150362758103227846982929210690506579672198468341852831240579751381274128136029429664507041237078014973539832601989797428388510984702967407213825329615002814281746810551431420163638970728139416289120594919609982573950234150583296323075122262471022648057508249177032932492899210167339135141235050457580807196205804008547769304582573975146692881239346381892822205962776257094814770610202409809265402735431392198735890853927271681771129577048301930786590030712300428086665555412212511617500774601944676597757264171956459703387190291329778062583266687278700390486371375762371600086624046142854423769341561766327741836251091649783853733957415254026110533483910013992723873687078881627352145526087967062265530913866941997466830497957957710987358383363307370090429067843043989090650775365362071976815559312065426496924939922034880520762659687400737216561129919735735191809257251364377905702158522073539176675361082924496600624966564191828753408753621329101823330436900273426098881887673914316849999045851268958311963360834826807925386017075871819729146024987325301975825897300393720708448839925605312125648049327064262014236894951675596768685084157565693366521863560533279888075063765721080829023977625611080472722715554189233979475555964784732973873847582388941847192922995324354435775491104273234384553352360826103197386754163371526559134852148456961933772357126529527568399130356842880046016729390240649826630091850714468060288257483041509480003596299037300342078393866282871046793341773661408578868488051757123275362951349341050510337502053211364036456321699822917248629547816706881132654425518866633224074421782756881663175403599052556050018131977001847092375331484955461205199731359104908451248192486514560056131911844440470376129398581993841842853303367963650514134659821597021540709673982369794882602850222798313598080039726906028733216178077819670351403433364667483993020419668667957431149553814898481122394356640115249746618552206735103664714081293504490386955477148187242510748930769282800715196115069286651422834310955683011748986464849159827263218700557436747714375557940321388195599165924768780671265935671351464948525438228926423796281322609313942539816131753926698383805276992274233283525555371638919034348820684346656434032848988101833606595263552395467205160659672350149118383275027681186870278840264921587122820696779777120373747685858365991524529954816926580674467563896043983703205487727501328875877302103228126786445414117661096330874603982448006307920759985747816186583560253346991544085622620304072918516389256940668479804434079887250424912194724007477331672521134920402077562050357941627129580830696766447863542463168447258388828650087632769412883581630438850402106767563847859799572571181533750096416332928449630586633857393831074993735920094493259249091259474428810033815116812189476732208342629324406746310342041183633938875176477023154751065948266893908482633897365628098049594767947242660811459645521816437225449672815681116900410296730428991576264927973690274449529976828203968465333941600391202728773257319240472929501130912642508793924845324574359753180199517923411832293099494070807380628167098428053503079725563158775524853374388144286941505462394427862905666126197990588093031240524453468590264467913741258417223171911701378807947798555600279195075151983856772702145323983637815399127381790455683904404249270275247710960621789223969789777496441075669646669406974387409856309826090605167628011992001043965817447143955236527292615069164743863273844213131226443317365863043350378650070317764617754969012011126423925009655275631748244024779026512476870874358731458968641833379054450879138905751086811490200548962966064579745167620089843106843978993284075091870385163754744789298707106118581936691992867257013469036380060667142761952071106783576476984512958464579221607181198952710172289174999303273757782921412303541603546343499132641521090586433305239519317016652368565197426980010269849483872944713487126945796863820882257026075529046996516868496176842708962802788600656463699440529621306693471162279466856404548166988846237533082760303512582760840832094123354456969261987427928371611202969015442000964343005850264312632919823700443102465995626849539851088305851746776879975166087236564747906534830546277190596253151920646037663454123693755597678224359020537211706427794111396841989732095568285935154780833929992717582778269519631202700290435252976021557803839159833006871261715241281776651642561829579430268828938913553824411533174545165873522729996394747959684919839582164598816499145811136641632015688433248426532606903506652974649474044012316963967883590174007535526014940070026891522631755251661608510513105975743764639795964187121360634560351668709110857278418056271163373228355581998915905590405608459677301990920057838167830104559129126475638263650023835926665746645541966573471017241416943629306150584030959673003863012053014513373277840614241538361050807981174888444483988000657045264813822492318348032796501661177982416164386438860778309366858001802642056791806674404278418737223204878060518834916900894911255402389549770284670660216226925343888453887310712403447418657223859852474452946644634228625204112349765178031419384455428101476502991453746804618931796522405908757624725423538462076334981455614627421057673885159276807444964362821339864157675608375981146564034025104489287414784467464580278110204004235798118375039114036409066585806319845996794908832045069933768487477449623440599331384193569382811181875586907861726275664546720120310879239395604650390314916957352352887378098337654101555715682903168470806151994645092033753805550692177345300962956412504775055980263377202746845516667890729931869218101499346343510289772283522423084066773415022639008111145805750267449316884957318833607164921810685524238848117483003877470101473231345723468157235553303337903646537932996265508347038268167679040198863537176452670715559293127930264639789160717043098774914587382287103942764830952110251800396059801173834723171185143393825659459170917547949485646094531680536922547890211456169893067875965669471692825758621017253892674999419674834062475478767910481841488534732641715857934425734409989261544629352073406476490667128866690842699424771704828779788279249397857156521997226465011772954082405851193692331409012137110788008101412405348237407042242903035117665335027297126859268528109490643058770819162846276165579271122753538314840740104564307639191068497140734798689079842040406493928317939514158775833077765235239399800126411228875057657284274911093553297592743848594741646498449242810325282311778807654386262328322058502288899780863369255774328870119429062846031961382452181222915548902944374667812083969460651889849522646948808523024536152393198450556468189432801268574763553372681174447399075406484611222066433564083357888284303086872193475320441901912472025548708892972115935483904088831181646261446003030790157088914374586347573066567961419133395984683425875398444155620528643194121441095131339094568246262532006589441480252507021235378691854747549905668639369531159467583373736444981742853988391308804431738150271456274707895836490262645152494822723564533418649926187773546711775469013773913364043846087325099115559019658882318683760742479391926762838385498333780576037492534184184871522868199129497536889421668907843076221373602234547362452929266340344037517031787688851226708737018383456326450900278425966992211211371129075083245745290249327248028494666380696377981208946992123326371046019413640293698860061115910789362944454838027251194254919317952030177270639869873967643851269139800880387792963730248469966238635118838823199866791180035173030140306863630109169143079170768069904073078110837360107845680772299968049753634315465335974857757548391291827212631462040111880931894735653232495680809848785071779204710673986765158545281499442169374050687300225576338476517117617685891679891105778701643274525308685465962981988205139010463249934912075917730181254071472377273455657622692504841174374529333845480720665630780737854714592147232312573275538924629866935933128955235098756679878654478816906779288436158011732333984584046079371639369374133247273083252402720879509715784652930062139551264821912068519077645126400290359831820851359170910723007917995590682599040155817531268974043497310577009412058222144202611869198850591717485168091075061306542923924875116464015835098592075616161788640807619728548672720504433977351372267040541148424202577983032667094239960450355909132667043273872595871363236128734805611865345034187505546464282591071701335051327606450830495444187169178194982468958255126770629456895601756059608177109826527201007962540377292265587565304718451146530745203948830465676762566035347767307890521996883285798646954299324129535097944119633961273997881929779670821830762551203613677210968499201216182180869067512406927658598274293970653654319320649703800788699983949332275222151699776746026192516007510122226810166488348004270288278493358328262886883442040801564952900829666120452399325864234598535935844829018435309515317844797573766250015820211520048970333955057254293062692825069653444184248754083575804943196844028355565451021892584896082137995262205915439646439146636071041891607281693388022051060489098672459231210597239607408743760166223160444286760768527523350564727014291781685051525507817687056131489529345115317506223141664591377070545815097953045895794015123350997343011980006745311568753664160767979803960402794008757615834098732927923457168044468647904619120946016127906171462061507789691084214093995481914270953227882504512927012612595225101334115897429347502294951135545314813695003182712215310338698758849743612055246498922653364411316560662729317141620961540723147238754456008033243824183072815651003306011113511332835777668180370311128247822066602302674063984084788784730354321476645178292971548289765138217754407973384337766507024350071121574789078058294219683695869277096149716103522108148358124641896177005072271925520712324014420776288861857283226123699514865932914688051177109595590769371141989317737590742775540784401425364139173250201879633550106501252583518363109518078051061843197635503571195993388469906134746992485025850356720958237483966516957676322706348603293491832704781501111304529086871141047384292803710643899688311508810903225177032981892814123228038864497218504686049757121643213120912698755958197642891135203288799828949468708872168680724842904408043487137838258678808309096418208071503878206682367151663544915323539545914833361792116061721967786657543645205055246070361501948421393289961074588922639579974147206840483573902947650974090887472516713163205709280429217144966142949025125364174750910132576063427715550283265556451765334753001143402005242924103892830720388636309988076773600305441096201960421523046278744540905721873658667464617167445211041981415220153617395582511113245025532189299352183251854223107335135870575012721601602866283243554208395216308259850259080163050865313775680801862921682432257314398067253756125347030121141176892600786366370368997773900961488397970617661917103277532470023439089770665598144228519041752832808013015025995969509380627556371314442454717184241558796426014009478217050581085595164763495510007467877708894272037113677926145156832258084994112037433441977361886299321372605822455982226692637409518311163882828146875998288042263112158031899396720331268021348926457225668865816545796992213045291809153311416065882560976312750684777892210400270892436549589352595139948998598886614490737942097635731859031625286091365146001209261361932228954083508823362546386496202433016422961394291858911153386152924556632171426541800981035141028505930364902803321203956671389407125072028994381206676963050951151704240915624348466336205142286739272984619071443196588695060647657184981074448718534163531872727313289956790334050631559210756605600136526524267572470370666597166645942649954854427490887989933558438629846313443685167663535177546701996806358222741788874219396587150738123901334791184878795593754163499691060267994342648850939068144288326276693376763769231701039467668141564014196899468887147411388646748004712768686891931763248621288845284521733493859439139105445811389820401307366591768184690334304494828324406111893888253757975948543001161449640546094149452754459788678160256792577697139928741020645554581702155520870840928747271948710018399374384935004940938028057774898269615981041825068013748749795641583224251162857924242515361572338995292959491953468409775999571110670595759773399713781506183589022431851511802817695039549431875067104501385537936466468759668127114635949790969040209798534027890773815311094226869325622013380209285895273190331470839360249603024635027151936172071220817714670183320192621121434140139454343227380061074165389924409530298653869771534752321839637451486098252268795870911809427624737615083241909924141298942205367967807087739134373041865326851557950837181040410710979052303821050145753263079803613042458202999342480642926451378874669648013202611458321092996603127046265153320780297877033868955717479291824739943446189144039679985627459178165514300299563230933983283580507925633830912519290975644292908441979444787071552302738332022426017491866347566285742554419414341974900288510595166856947570645379418824691116724608283954706886777183145014150647895595640773211458733907238067265853425440246304963459969805446248463962991536978020847058966305301944589302899874563408727748309845588204322763625101725794104532123705846137302044699481892078864642749402199274736571232303753300561353435702948483787249021253491109746413369704067540760034487030823946449661594219191530029926774791258589251479879646651008247630522301692756737304912672118135228763403465299201138530849090912052982097964465703604213321569466776587443608810800027660732624598297403213752952285498084741490963544197747964455805464632878983811440657236978648369303730780617345016724674043011501634118258533698496339043056012652278599199171158919287629248741468152164590058584591681650422737972530759779924729363715536753993806917721516498199799257506542945699109017199004109785333195674938897364992004392402524730567103466371116098107660120757665215598643802333942251542773608528886230476848597827720370428848289689142772008355032308560598875906070078666131834955689550893727864071257521459854783825702812188546702684225266537750784068298465933167790000323967290794683756890461100648840157299153806122560467319810462941580823446042438673067888369448597395235430768303902444230905675807014352545057210443448210395859587724917234536873438212446572159275440475480688884830640569227898018113882131014191171513595211121408659929654442728967706920907846412941601326552830620735375216175716504710107333365409486719242101846609579128491796999375034630492711824917077181807212550906354301313626565816138129760839437628332848608146905337879033300843859748033594923697768022190419080843487292224953752465316396699714884432203812893129293422382925694743982971638998537743514308913745374852101506891871234943605846755687034075245961105417873723966744891871213497473197321341317289244079797403020686605712424549783401430917474293210641318309002034773057094686476884729729956644569275389150547327067651715457652791186067570111531396694778760532693445300427925348931162321192018411713173870733862591890555464927011868567197936996832439369339635623407067419874092866549226173530456382286161357760460161889255840922103741538109043610457204918950203093732906557751567391618103086350407450390794860106328269910490066607039329182404940316522163382258568888415437674792320097983265221322727053544476279304693227965292095153923227134233019583865179095062466102413133987293423062552185207305402117360594329913516077284202177271151004770271266070331512455057968336408043280595373200476587120921454429235441481125856559221544933515671290901151405264021311443707001855296410663667411011706321270860474872836934400306897166375647251496040580806075657643375302867442063060660935964815354248453837744544849588229189497211833956405721108856444278855744270825119943415527474686961954135119351072630832001853745475738588169884654922799648175898994671465316899053085895947713545539291681328517725225188237320059257665226595032757717355306613756670281673970430409868292023935803249756682143789158714659792057306269750948698017478771956624935010287338582986192178545920377343842246174821020467922049472411732404042914868089115939539737101616802713631253232104587129516541346658842769054446565961396886803540883235822950226856914236655595861667129435642619715348994915144544198822147862034943506289866504518526220109048844566108668114579541752573717095618877908783589163240504328549897147180380812625278992542211290729138507607484580482470893260328122423822231653148516500349021400725088110662603370811210119305895440347961609062090564099956627906646701464909175821702385949822727483045054349553671839201533283148143782634689130737236668360155587959698139963228819603566070168242645350773543270721543066517457544758517316007510112789481871115629093347025358106255140608402564521662241399994271098883260743557524404743642405568776508263283371435346503712383648881037381860139938884176892037499831922195988494401329784207927946654335107529299907709178359426035447306726048236336617246735858025294120928222226862441476190539982710900151861088337905487367311797842240399241879463505922540214944323124430875854360542146336832485294860291863843228215381029873201957889898053212314593017269836369546214831750515610891491354565476386635397652070121458332903846824268880842600096066568160141431260658617379866244151758937084451918053632408863086480502547673453016914456507800968364800741834248560796775065988686602663946473295932433377725987805190392621247461164123734300643461636455420331663199609896756684446616914136070833806231199189918002362509268491704963209807780628071460144852665681877801533760159765177816213030076192466594596400031446867256083870135929376513825891523451200853284118475133343896646107277584953910233073117808649995097412302428738665631568428336790827152131242248545056676925266710686592451887350539779499597383287179923760023740412601837709741736221640737973643711864631561550215343943738599834876982640461983247766261934809432255504782626555878211957212160659643948517814623162110975122581792478169817375578669424165673371486353501143528858445391155818623623701382939383938191940566406953889458360475154187519526341909638999838161906271674725526357887307573523147936691379425643864770398403517190846675817850867383965835420025692247416674225752044419903720298953666223442133886256208682691509404390607001193511522950319785801719113173755338649772843843582137143335325719092295233487906373561368665860931143106267114999883297220539866896585928200246721688349067440464718242380808085161847437884831815383012557705308107989498379050446120996415648509777038417420176393448848884579265116047365281504368040700961551612458305235285109174301158524626719431468131787654235434899532724872480915465184718231312595451195040163103527360599049253114186080990321786190551700257005350999696476761762386468501252995336433301895563865560281906237135879873874055109886089003287398957141463499693085536891469269489169810899642800627607270973264155211169218213524377033372872626444805856699176208956310399539965297669908947385538185152952510766127180137532382453060408533941550153979943927516882796463398161050517708499764340532117060300044012270467158875980552782716841122670965621386605296266674439508845754636468381693322188056819788312438025309430693297789748373301034445637968787854136396975169586981233333818625455930448379717335221941068728777034610257326619259720917104631088084438947135302442007580567200824307109799058234303789497721079487863638372655105560910425948678189244075077985893001810534253333003554148466322529560947903515343702454905957296781072077199447234845387126449451960733388519843090270837480075478172081979234091098389756793083345915388380524392006938328767607877744467140363443560105240600067251793662341381709086327779032423434321209333743491237739166383529782366124515857259495795651007153178323893000162752365041161610233557932037936354355166944783533984595005073714499651570921545567310507133061790486288908601107840364003537471547338564450297080323679461034801041265308559930013564059939580394512166412621883238683377075563725403581096413256802211507815455807710606610696258722332224680517323929460150743320816150673542795380813993082973263928873068211786759029541500491926193610608857692459495324104486719760307007738344785343979658310004160946526448810537334243237322497561760670493813465202670478748752896333078429868121059423611744928713751918376949324779013617428508288533517056862395357504629990220993508767228923229761478289041482865993173997725950656164306420807181791015954066693699580965727047413179886030259764390000428227619106377105565783010117608646219660686440949943323674419948933051124845934281325303014536815001755304497650988263081549378564829838754279305839544580053677174897338038190400691043181566229544065088411452911970702916256095955755401754157660671640607529536944889084045841570899889960430398052141431059581918300604645847434106199556361715123383022174280837972187654239955144560040820806896387844222084404303043180716676077684766890394495377865898944627119879198515622318247631794622783590380883511899292364767730607057744229699625425466939814968536751461341901970636725532910962732984826597769483175257021640867979493486660346918097025118616946014939724654881509952410843203122687144895187936489765448653994906624131395998555342617893178826602654145120506736742997850613650878027912604681776649514315760358975275065082943963533938121100250021923770010383403634562632747839518209300164154104472932335288932592365923237816821119881637557652602885430100907790575510966750589368293306794852045568188533827616962508633017322766328438506080685625031609579870607825795056678568394351243443604820474547784838491133805895637313483085514295425757323737950558892111052023507165708564527138046179822403733308777648676661286467132384257430308682149963145230828837388493646608575071900319819080782229111101182067689141080533578469601451067313273622057086813330792617911622579571105241846973080653828921182793082474999039325901262238941699977595090096596771303717161424625659555641093294786785320066350151908693658699567124443916373999627492429997238367422215104199740428521586366520688787400601369332047640260962569231828889824097096039264313401197571041400637859953213009186655888930555965412622935376641897202100237993139213990143127049096868279853365721358199184742728083521465895608374327832065485917665133743367603800901661091442431860032318746966075811151262240837232346702533004489134529361307446332656130285538582686243812417960132986466284695641468016338281275717713700021574129097665549078771797553757857351590163496095900836452379788200537386003822177765011064381959644757128409400549214273962896723518367853367720334986575566088895445636505613140647527121430229893517827791151870731311317808474955389670209495401948638724387155203007214670271567021252324157187457489182614481879533605744169744579500648143315573496940830415215758457133247858385574142539018734632314558007554792453991776733355651984722962810294434949131656536589854949267071488957488336875209338273979898887879711941717644554286118381644557193454286792303105885504995332233343769674678609287906791890428695891630870718095704443347720449753467367679660841625205387348517711455715202780840921196080108917352031725623834767098241446796506797146237882663678354819520250652566218515818457927253755873054598154298562152695519627938422053034812760621244601524483120872364222224445917264090072534709416453970453671113960421990629204247373158038683138331566802587476688586660092877410089818749252283689915424702279309940956289274514175703019638176414604707839291243106890874502062966098854470866498171524550354260678235831953854805583854189574800709052703252622071486959247201226069829654113158512285521997648115706293121796847705790569651452697557520938472254034626522160354484563078931154915396428866925283314511252469237574272482771807829551667535502456954336522318582981410152720706451656770013589793235981851264944077604403254715501069720344210357504589545839849170842657021879485801833788819234516900708910001686716660316012101512765756114393589167361946453870495512257813737195682438751927536567513701179816666776041442421335006841758884920485972972503590072891943589979663912210001857052366901180166926338353660075664154033870047773597937886572543989171814848006967560854482429079209164171364551760353921661305953103908646232704795681151758453449794982723498398906467313180657197306978802324689237683323789813751323623934590785188431936578598155758941662788450066095405523764975315311600658321323591834534606831767332620249051033602681837302231541569850456274098778258885822996059006736945079586835092270525403514772884897653775226875921329799740210186189896399062109743803908712329946854977776240061266314338371053158409677553424287506440588796842227945603099457947718317792624752364727770690563282349267442018281187351611836585962130501925239318201047974379369277906644428511743956384517269791190895240819116105953661291316022802225134148890077793272894233612280469531046323500568268286054909621521759788669687636414986282402493942353698312949792034383444354281544992932212062003450041936796766122238480210368810311505316564729397414939866302823237022588465284524199980049853486737637554278716824557406054183458501815997887796891461964196990686229034093846105271891970751089184329960851581796705632137183621634492787160448526816871789572291846376548196484814709818130085294492750428281758732680429410777932563272802112133165981111892692982133389349949464379750477592732668518857144289695504846903675287917296799703027966273478968695408488356879507329653744547179292179628976649339810589062913364285078634165985499826493312695703510465790686624069771697055020380695298290606270290696908124673437896137587723518879813031969115600775265633685294068920785637531383656719862889419537909235774933891184773052799257488983262788674474133377909768685263261403910320480647350150721894327116942785232446638761019783697239704667605846212532268066611835672166214191029505320544767055037968195181977592132168879728577880194505256832536815480315751023023046003726992886345728490806517156892768724033880928191189360391709995483398919724906694365092402123053740892957982440202556236006659266675563290643655352410305296347451678451476036590873285657380290234070914161408314064944000250093536295357382283283097232362761418841954592841582046994742942188586068338465442212534068447261806976435529737010680692073437449503126891335873498970713240220955682025846341179333092690195766531581753971145413747556650914329435821694194265784239431828735715792501450503005160547970755925319203568712739278444789132891633445571905423325973885321373731041748303213699915557294912658978211500754868438040356304865236850889798326205979903090028136863088505596881628536668581692082470232538094555531855733067049645209926179475366742947607704617537651982036908749149882047345324597843234873486984756999240828466196373465711832109512597585693842683932288870269754669695241063717548473572502215519741989400990960882341237513004368256239581102951627462861940190108633944193249177569728770926701125678263148719371288720794556405001942696434444497671280357599262980148046605040584911070938013032182471869904859441924825667956761587909167742989613604142276047373177892548590455649767276322371597126330700617248977371778489307260677308041914884277584856032000992558991165210563980740643476456157220333457031074176423261082263580615178491025187299258179257286833698804593157744510812178361456339695473259085896324746093718535203300363609404616091033868302258649453370032520867423991359077607936544672873610527209572471624670639769194323297768125702835664096967424593628698395781101003940509796348818257276712612236007417923202302382363935023742534802580841361152304108436104894970099717973850185880280810632108099027785274636398682269904422923320013767482952413847962731870189724369578765412571630053923791102160337019434797802747077759309474485279616053022185957071870302525144962303272730512872366591431756225647908260600928927308331239881055684946493835550796061633644964734101010811736347449096611578949580969146270615261704935295474032451527816559825612421046996771477040141306456919848009772584370347366785879889288716958040215941530500878213125287740638625374091265459107908263072485617572372627638443579072861564355816542074493248069812720609379931376829713631653415503274523238789160983969859826575783175234097989076671498301606190213350688790161852485558882374147806083668992562057382514444441353195040846637302119315270080193765760969568635842855544588613539680188709653966004761466704198260137367153621961324098628635281576587336715778987985011468196538566283588983439463872954433136579914295477899816785849382273367664622916328779906241865401789907042547819902175228776137629700391990713206974382037492634508105668478108199454254303612781617964154648538661247279695710353818904835081366708957011273611561009551373595392194028982144843677554061476811176414647312074984403575790414141992743657127836205779052992335105920593462372968032833264289429810631442469574880597586650533888297090778228957923503997706978424566563818663550452988556276505809079780200192737751240820156916509689756937636265245124895439704685603808188062975017882616009643413519124459416163538878993892532788087336297232754266571675796623530356072792958122247860338174165667970194030600526345451133888982822452459616497541418395423012538266500930610146655828667814488208708918414157403954579085224728057009946864803739333472273960319933115905247922594859600863598495124950232790665175000586042693354355694609803382320919638490886632687558633327982814877545070724476340851708306560341264118014404707202715368082805184921737354843974040775435651073894230067398688760561200103776257095643968718178872888084916350440787032003522529659996827656488634764626993452052070265683350052166413221841354831890496296132954176424715386629389243100351108109132871214255967073358332743478373736057114087009554101475431104462354606332747801779534535616433320458619689242343738338273083284041644081492264369842550235592059258522449518533992705224322854740449167400595142337364365320585719286154233102176174536142274213964583938650597672589346488040299995628386934285332123551531039679671124916097786472810457973905428754087557964031644630985789604808882948088901013749318158027853568435622171070443295864868167431967568760874209343611811890100491263396431961529678328945161447109453801163966011388914556685297853873872968135338833922959443474227602684902850240210450696256873826909415635654971305325333247053637949011063574913305731007114708243157582434773562162345855888081862364767806013680183082933649135346169531284988218052087542309841303935039438022872552675192268614456852326237696767513382307923479531969771506629395869010307066470013151412125965344049381621366515978786198437249308399929552561485940045892748433754741334763224109864430238719147310741175292685053422927013593561742360231009497951030099109451457288364635249724934378582452497258128260940661014705196294207249339101495984634688854378278202215856450617668769733973703308219756368579121131011739997801030041443566823144168782406910101071503062720355615108016394077486215954144451880964125201290682663219345516605281433983585438919825479010522865299604286313510615650526714265832829394862343337445660635454355968376732891561139411353564271244115282351060034632401078506912019971241240660353503296484090979058950474348922512950921138137028924025973163709434837161709472716109150304168061325211617946508764566976827475274970660588935163818620862945878714785643757536922243708504450864645546845932113971434864989080336253935808333360091831542998746824744277919189790277617754879293556248780278400751617707635189470139349308486730834812650400755337215333902196612123143051488193831356646944898428461275832744494299439867165764152737084676314293312371416693020668543402616478997555834264441793400723270186733121146964922804714170678118957172158956286088824210764385003172237134976057319532655410689127513400854300239183177895650100465844287665796008959028512350568598581252907289301956169210079941607110984299520537906486276021662000749931239226457290156252782102188329599349071152117086232993598264583592543416029670901679101736957628855298658077356470862487892022667334137373205274009492866627107734695445424026644522418344601300463455712495070223865309419663175097591232442429958270899106085732955738991436375474618149842994636052352382077292481740021352443634828171658031730867917024354016279497442404069317292296839865891270071652703987797838241194377527776064800673574542937217712308371857409689332806743141831615695454943210351545564488423401037540946796851609097288897460274156871084178360912793217717457150760188026260602302120751935596624314214466971275463188313384864732473939119473205660369909689029591366333295533528348255345850829363156358966377304471625483559971508657578590438683104852242985844891568174254711866790192703509150155108250671934056648158151049558451472223442893925693387343444570230931070498152883971847651850315955422655912581405370503080111102037899209322233240719768752471124059551611451047366991347811538876061429211291257875898285592913483125475448253999813784824529789381719810145112785942522854237952258324627611768052907247197734309471120156696044521003822711901328373886812469333190971248668643265496196524259517417707635470606676328430547493867516760780091522251001697019417655785216207852480913300926435862119240374588091652069192934145111400696483095582412612709348899594011054086764996968739067928056731057447774822574747919266901771053930929714033369801466875782047582108638201231984528565441621186011204327760556041074695927260795960388503275376090806213414534706184497018844189912643059662705913784850012318780898900162555734675423451069194546426781466480487085728124700183387347858767819570245875141668683905973077700425413769115007116940246886242212630475144814615724378366860224724157958773331822523389259458669482501799067813587928830518652200025508195935562063587650704549684523901682911628254470408999918474246912816466264887255397948868920296503470100366157146811284432117492655772968906178091394070417509106264352200257376055342726688119268544295765531304868562979813250172865234900628126081992800312662460602889619678043055581830494812575125564248802596587521946919946752783151630718777908364520805820077351679927260449514234826308321056509235134540542918920588181063964069561326516842687811061889240082184440547953352529397536520040431619963427791880406134343535407697359540465123393960833410557252286808069042896856078455963331112022988191161079797521961507991809152612355805792012821255722151114990624193899748693517844391296294003069713916776116441478871183412238733933517447908748111364627390527149849803761661185813550870859188189085155473245520049854195573842345225678559935182634766460666616051558631175634822477929119083726946331211015388048660508891870014881289167848845166868355065569368153142524813792499206692452435484502077669186888567955461501492772450668253433709035355228277956210173601083964074141925456024241981909517054331085546362375745807620858793920848250446945216501847901455395063829768432168607264847290410467309431411447191550491670277604217120313166443807866562629973408504801483725589799922816932194590396715833645190856564823406256595512229615893882049994888050614621972638786260713172781896093697922765888221430135836952351808091479928440943326155067823767497520591419079658404337075351052607870882202441348180175779890835299098810028744431000928524645617666543753842494688157613552191049639923622469267015182878508589660599350780349072319694454719044475111971791716919576696642136202805725162048885131383914086299324812411342366782787977099202948049821749010636831518915677618785749550351478940293190157921748005120122902715434030696913775377693339437931726621636483391864026825397675035509973888900033997945299193469528921159455337043994692804874291795264500478221611306938191480552795129237737262204472196917914783519140046031064681888439595020285921104964437485521538999634449425223050323269251527141654294798527344021876064671181810068585945432748007009019396769206751800897921634919195730995076527846355945684195909042918104198518797385869830686305911771403334589790723856535235124271608496932994561162587728848111338156997243382955666925107623565380806281653901232534604311681829813910463213888045415878148615457142919951373708597773644694801425676335311708756262512409415342409903072531370808076158274449509368886645619530430722972985843524235451424571499135345905319316726785027901710600346623809059339918635283227558368512648673725209477459786232698219570916818910933473551467347373457091659541865958644882886286378625550691602310110683577624903031854395720669079481331834909479144067900851386880648288982185910179357144676026119406042109914554361179075144855335591632415406684340618608242510253457940265314420893643631294829567139642019408183544700182850326020574388050571141308819662860561081848370566950363081369333400744697080964799530189227276266302167539587480671797959321795129119400262969504093289391364809949388556588825571369091504363938503648519160556208262768258679962890126367192796342184947312949474258474848967008100425043636820518898519629289644857607314778758728822454540772424610758477100116946349841839238864456610113184466984357639861005671185583417462889451795011580316562462999684812741787544102572648656080960464520667691241327388248044906654005253334063143747778887840588668584431904826593494903353182331927962730078543606389617786384224250732371104709987347899171351276953299033843552380674795891600719634868537617777926864337807426596389797817069901567930470875424656212173439541981439523931041670629833534165749273589579737905695371470682650871348378895813893753144314835372439124332500224886436366987735783165682361378185236568212530099186303898508149298583868136379718759093748776160482211231694351759228176667311043122716253360393568833190455317966141796877917320441388098935655882285970606289393071712734286732325939754173967386693120975213627327239491421026152446367035565457829051864162358553537054934655292590184918620097495419596646583248791977562161286708548013452513480877813464834635585868571966250949306322392375612521242972139626300014443063090834656812459470325885079000056192944295147486827177825148974546382748803420066451308143258371946362179515302275756528586337573422106914051830233722309201769531928302303864023700047733512584072682999865707939887245077795339134273785601412486146867057117567874790255046591529306109897944571340631968826807163831838101858405297544094114248099521913508997452268148702643496040904387952771690643845054232690446004909706405314407189909756757621542830529603196520329673111930160226721195326225725100896636752959615767692353218751446638863646487450249689364803550401471835524112165460949846187919237346859794077224779528141825989192850669883902923605089260227513151440676040590177990881842360870059605901739771637677986316627623050187918779775938273680911297674872022972647308744846786635607171164365060370406294821918045023662752221798543685943204120716092542394285511515260799928403318565154306688102899321200264993668569041625707335210978886053462015809804920849718453575106424638721682936875308876810202461622642742617537730748819241223887438122196261429309143423629520107928515754781742311202847312323578955226216046363710347348374147195952346875851477429184166720620353207695108480927546922281285159878674354930788043402633676863086221792047386481491688004021286696484713873898095458554331492426138305993828587127384204221773260351692458633238482906994256575193092309507132982908105594016523449445022858713212919930893686891609582391823462982473668385892648979832821305010097164661577178771787672782236944968999627442289108094893241387531456302060676516239906196875783971397603454168509454566298492612445411556336861144324920218898172917162063317700111543306723997523239428689758539363986822921247790184563907008528364321350128705740066879013345625441669876418785676161526541721572454079825796880839410949893309583637917217132969652079720414246633131809152759131827560711338780160705496139809213570388765452179386718563030970455903827349678468621416673828267235703163396575192862031706249339814860201077253389674231604521106028282365619578486926434818465248352870767924398289980490220577236167473943058329301681339917517297350424357913337207275765953516061369261223808866046491477390579850233579889469784191418364273883390789632891147265637343180336153523436117341166003667826818894226442871651893355379939434861680559920179271851179698845919242767032563445749164187163171958429507206734285146854836102552705235765969968898046069673515246136725675106691775048506333456964724731813110020661730287118504232774829867095778093039447158285778488062277260615807621734875749143416502900632548997754744372380866927524156267340497361547213147060977654007058240737138820367553748652948705501027300930732983848411670345988124204479872058162206835463712571515730792081529531643235809237888042319188618255137068761738747565094947510619962417299090353484658335522246535260518324378525628531531874350437327980040108694318195340287809803707292211468323052985382616375954952268628568601694310901324026056479314938635765882097280943995258553988293958772587787948320609315572235651193931512844391391413235921616958475539127156670687268281068474268860653943290414509950134604732139196954111018077287210776190599342856887253031058290962967040994540627593325211790136768861922098209571464273743643594784156437622209913160064896734782213779968467796473929184669424677295654117041067484241882393951529694289293099056284906864697526541864473342823351728994818194852585664997489760023643791428275390589464331231048265417616282600895961466435535847429565056011407037629564786724477896943374062854319176555343492243647748443202778704187355618690260318126691277015201472684605552939117768888852276049160898718202372623735913551547568058865917837062407090238475164477183284306998775091320809213643664353345865607428034457730765131306175440351491291126954279270831605350402094587855227003756952035602685912723551584787818059382833724065808802031727660680469500691048315314406223564316440704667232915039283137749610284903753061784518879203453438394882653394769757512223235423979316419989641769051667252682602548283324485861444711281857113113561784931394101890316064733705663764532176564117861377995580200264144514276340489612112032189546786227786010969068176987713108363983505513386860462444941023036067380552718326696850066654797617743623811229974740588310778386530983139266115986448966182285927377133362470872187656784165014982252929826639356804025045063833171492116781706807103583630939112149946312927376894392018693162921224059090267082013735789022896254823532143781472428602115353828415046222432982347058655952513873807154269594122534141796394897403522099517744041902036373772178249023381268061307039017356184920272987528749621990927644372118247117931361291846517946820173573864019906649469237332278434252605317947844596238336027374772148221386593504055940669244901130443124476388056179380724410448195488499756474382746178169750512951458681644730512001841996807964893104871099814988124775788023198519562604347194458483049709581228064201092207677090108686974729980791051328742231061701524733966338229405319569141237941500921746088902732788808795578480644203234083613796083624017952465711216873041774127125933773354571028905105693976875236251612963327159684533830366124371346227491014716470197011625520514711324308399537715740735720225736379253432318109433295832021768478396931800559834527485374572167705266969462826327375546923604905547282219442356657629734308640115437265830601827566886468195620362992705832584220632096193225277461667128254653909600422224198074817184656379749802736398273287221646382358534819364127530347567212401715181864876228361549949079685584897142672831971807030121902150879693774717773300668206996906918204887176837151716723791781208895503586518090481787344459015503024536929561728737755767113259431706875467095845670719553726755333747562600508160481655369635642758098435615414960411021689695964882776962359648171790546440098376341018577701094036672457917848470462329730561882976732519977895045698879402934933194091242679135212141988633615382342747082768862236147075720886104010394104677956605404141574914204722395455406713194902792088038191887829406876446033435587837874446968378349470269904242468312374346796481374344249373693245440774139645094708621807582439830231904984599745407325392110568188625251938837872371282713356582296624038373969553133627331264661262008206345015653079279955640586505456341874892660112454833352427032937442866732787191449577212069313243412189853584396719824189357316986096807595302235032651446851881407174944717562401346883672374124867422136986294020328708926738920214179926498795848873116278814849836965570636823621130580267625707724724934415667587596089291596834821400460210163449820472872232087571890101575001696972032729439098013721968781315215703827252564452249274199392976644632945718235487802750346777450297271385691229164764902811329801691995730189011819649914153964505954312384069583145604692378379991676277205703137652286847474646300875703546977086181359038191040070888143747412350416433839128844173290362645488072669297621794498599957322802581058390072621667867932703899163635005411461173065544398270268279514984490667768771314329846905067284376124285104342966501246307514206857035239672169915677434620009517725676710838414082870371314882855669208905904765385557456233974608241262283896212369106321007690949710291225624399715348561182747666356972436257804501733977818010511528333889140841996448956579992029906926814714219214643590100276685782042497611498588977062848352682415743704796359665652247029595540214385924342416248448648295438057923895878675455628490208875967441367433001364207463868562628770965294999230665294184973259083345361472766650711563379444916853953691268156220998884520554273559732373109709292561973245145077938731334215657920407894462616079455714996553741168123774843175818204228252589035083704741946133687535517255211485318478514692329181902579470495929181761811887970499313493660761675062879372271312972584936582345261483887393523792634928574568595017654223940113841202328627248412210513380726685931611310385696771710606920654579320514555079362603572144295010987412472356246990900397840814389123208461510679771500951546356507691558338253877129387611630937686191610576627229310148338257732659964974902858324779580822328634384205628428713911856498931470392255150554748008323913825885340198794843836130567324170597122095666804192195521520850222189684050240262061691784879876171477113284561121974142273788959210108541893214947187832210056716521675222693266887405491073512069016872277180577901273935677370219795361805141305530974949139916148216865997887965277561916806881202406811741031813509366610037492307268369547947886046564462962158387900298239657834584540563712807086763820737915276012060760343130701601031220887671721513826371321389629648179822690650756496249945985285100785411000467533807385287072639885023114417074962545918847171167697397412714077597510214537689336435990910862281543523119043419157225259728037833657741648362530843052111196078389008943637534381664597992859940735829148912339065256323283298018847072713447354563240656019411535052208430855554028636007771012244920968099352970458500215342945061150958066444182125530757305099382397109960054139337610696104178457390999933843564468023110216153578953527528018840746527930955618310318864295007106368326362458752025315888756410278804406909307583672602873199088170944365163929060891933465506635419083951442698265381406844394946331751890599790315179243631313101145466475120923659473765061311798095145714604854570351425973394575800999963971696451073461095407675833492040773334994773261209852585392097558588934798636614283272215773407749001785725992891868939600215545957427098578434972274323358288039629286144833193688625946054261747565990735775003747309545163235346394153699467862916273287340401687217893951563650937217218116633893161686340260617238072108880129958743010242883380250170411571289440661710148852497860130062062062530187781285249543819410619237798736091682451988822893504126698477110732090747496877037446524584651202097956998966085151994797071357371523624416123769937839771075705991828226985552047548319905678115341487423537318941157282263618503350682934266850839856775780236834762965714949268420663936282132583701074359130966416302842504579727391511148804546216764140524350332712204076711997749380027109988854688560590253212398226313475580970635965103896890092198600807493631949774390694751176365275787242039907704174990687651695591318121705316735808720525245814005639085388458767430076650428404578018629735785292920097010453422896567495742825640322655961315853927928426774948128198192324247250102964985879981222262036721559005231384533157883265943467186396080950945617071788380184805553847949737604674972568275393776514703519747838249290729622484591983564874029889263926291752057628638261855129669902731636720809714476660868226134107646650339620350382466351992301638084770923941458102181766764097218844121608908115973688655272897998691745115236663473786771030624532232499689590203677692343809622161686239708332962430436019487897714968959350061008634171303331225546861777863076922165060876241094578738182389244714429333258209110112969282162508406619842661576346946399897520137268358977775420834819293307752202461962722153836863808148136984306160426551106204825330712841443409125246487638180689677071285084636823167716280752457708786345168497221502854238987897212442334932310789790726917281071125077941834791049023773283003911434031487083329644289994978813855466793383327645453992309353604120314490714182692854269560039591160888530657426587685583704251413957332490886621583829977570859976118759395595937025755467290068976676087100887986656309001103760814913294368184076663024431994581226576750487032739718538002740981511342082789080918265789497588836433951818630828573350876211057095322532568663422605703881066689352028011428330578912587483149046427200297031539074668856751464910839034694390758887227730704162342450771707908240336915887374779851036949138063826190808569761410962721643054999229765675140181246272052523414320101335316357031938381363326908244221931815828477607592794396456968593518853869038570232631849663018765287355926770723851558198336138891241901698441889154583614846133587959547926831257125010884999665566657407415456097707256639131650563502051048479465041192511063311426636896124186119071058336533028247576646002966892686865095040545229302200864612337508815976931278505378211684837106148373363636295854502824261960759386314861762482605963586746104170857379702558651838485012649529479610364675641147671509418638030574257895326842526724797559728601267627246654223812611052452644535386516457154487928043978999288024878470006631536660776684100028828823625280141850372403108905507147934841063803429644119345233976379680162522698791649825253514614923487564568567062464267098509659762247208642402864664179123938603483440572980016619690140315886095363257774448185659834739892533882003300343037426258466001998210356933026520550516776933443538318230074853305621025949143890042881437888143332029310705006662381501159461652655341504272085844591571314256783521880111629484101801264663908321000597264663137887642252446204289877215824421907523685708893972093484822648950016388866632259662982830401345039792578424395023337253242390585888348618317706600258204332467030862282805425972127943514993600405118037393421890395246906367707137106307060868789033189184471062293471576585289720586252737077168675089370382100939584937643202576929429477179630691833337886865889764383870993823445092231457070517585541941772910213937651711491774451101645087543252915112425044955548635620257114888028640062013877717169043534552936179989302746633263187633713940218171387863838941081270386041785145416824693330626767675423663313991374829556942628714727009150510781155184145691738799075523722749223747004466182446992120543573856799393968350246587151220277744723419798308568185713566435224792116032625083691664452906146751394535638492227636634291280575912378428301932403237346199588514053211873400124095309396032146947152560960618376056251247813274873065262871669066396364036491171171268484424010298167165202652355211278207377899614540380514345765962803427771219725756041495717065142393957613855058548283637256410788718302469611867531479597900788092584485823415998390991031321008909928669916699124574067264196363373552580618322564872345691898995575512137792915379963282758702644118164564006665037837316228121511507738185772773895427055285489653915295150608053670893622079187876117419382475806441424509815570006875603140709581189158233905324472569434015277833101955067779899117584496023167416141235665883097024245920484035193286192252737170843566362428083784025958594921210191503018895027946160624970179160593746601742829088183734789104831828897601683941990341162214712855973302280531917712127509180065450102064406715149772010409570040646115526636652183250052295772391751028690413079576172830166761673295207406464563978807498041302308953919806678064710705412779032611045082372000848971568573798857276949320780846507828091126133168608680736464499019189857598487440877440849516636432550146246478000966762604568867448515824680965100953708910255829105196207381516071848702303298048103484243612625092392178967442004693629566354029218018946432858738925042741153479777064872289370302497248729323193617474083119843151139879181601681575714084440751879266670555828402215343355358271886563952197960853087663419499990468285055296480995215306717177496553193264449658705996435859494396489442010044421074127391275791467953931694077672745180588960582677786415674446096556994858354517385264005224878038107306480078507207229066410081509647977573935183309342468169996896548024994940122226889386938427617489553466098989805983002909514620539111452688184239240959442764125855735984652314357304331870715548998599176758509558401238047688943281992870334180208400961805285171087491707487398567278353046354224338244339172562855673791028659869649672454806794435044519608050443114536919886376550094504764016825112763688745146162587468893070674575205055787393040260414070948100931769990648759496444736746475257667487097632522380442290449462124598081944310827386247977752642707156409681568784997109644913426699442229614934290782047466882169100046448432909123086672677677187500117952675551620007916699075844563743210502130815413109184793527811590119960657898919203551828709213778347491892424214312630705340336280983056078475248485959916672185089866999720964023462008008653339241540446763229751149267933943532708780338087692041390215797843031184689167389952492119471981753856115232096017542930831147841313924368144848803399180308774447210034945904858491192391387680063635336488741683910807489517381883847608842800939424815230690701947336828882490925446167584555005967369789495022959733557186646099941148920250172303002094998903497808759349831322125257027611865763721922074096255411762546797696066972449828727503129854868908636760831956364521324298249987244894528731513276233467267769720302200532621911915499447214791750770983422986264682608412947647439398337248840506242240502706964844024342547995318827537974777551620901338285886511321595588601442579617077521608002180370126059954599121413942789595637756310961219783502444368385538127388877089444175322847085361483377207345421629991368819703843132190069198595155162238597879638149124373710688020521232366417595844600653248401091550134803318235635623159746116617079981504756649460333332812407656215191709565646522093032633050209507875792956911320781302226109168776351457442439950765001532237227568649185131076998362760455337134656756231232330247039305573685390666225872870322067981065863697836399869092191377402173735797732325440063056074140604030387228250248808964866464800989343080600742927990957497163247375523588154576507728007410748831945886143101275723164864214407017862546765551618389072413214568754592321251914275890120197612888127839596882797540044880810981261450876582635667069825876913562531885142025414247678687966910576543242385934845741861652198107272522678431513960771971258550302256504813535178376249514586806406693609201059226458191354646761759447132446581805230875515156956108838270791514310877486618017115527565306619599732570885203290995126381946565986508968703508737541015394068246860088086189609340590411264484294398336152726353981048888093782116875433624340827090203453504194636859447880150858274155999031025183410251862737437540094772700648444040708242473048752334827337636166257300288333699634188076624864724028895563526832497316472054067793256284593152959512181940552021003996692593209987592876979747329590243975922991669839698720145490467017222975648914356305170326252804959013807078315067106661044642676848913418221156959820162742243535897317097762123497886907375730201620216401083594351225638952624405183742149012356826515362930864023553665888330124747609996573021640823230564413038342626907051789432582689632335227237802745888762812266746863043514450875719881078483554447187608658029995228607068200083858823668523935613128650542437174914961747396030085012565655866248389315777050600310108315267469449574713311316298179926640818356871237682475014741519704751962149502171610212901582883585025718014753984583475625696460339074716004824318812210542908166952329298906533015364103068488433202083823681937758262155697722272181410184275206163464755265834593011108260566853099726432290350131105142824002926177984029594564959922315159826572190152828823148415276227642705381292253728454807401358331690473331516615749611178989852187871980901428103278674826670211450338696365143974895951785464277200498345917436132424277534372766265185923778502835955970037000453403731927660111360850204128245051892077054126623004729470233177993303867317960444750116332836964675122161784985728664098819894143652103451704865994580051819172642216333505109319317204276677216719234537956221570982153475936067966160703374604506103081787183481715530253949780332412591315899371404272491054023039009955382508551580067294279985395641995216204864841234474693670897913528997658848064699899408728832446978016851870340863997398479903647611512255905734592434714894420336769467174046178422636575848611971907227180783045181066176938853413187670302853431313328900358942903772535326822664053433768569118123585602242494263895175826053859503816388842054856592005894646185887378275605451435695967779938396451284565468834036963534797708996616849309573130366512849461761471474966184443687128851291027030477388749802656404972023320415192300966869430284987173369328760828530881710052032289632712314861210006059216301563248654792114297120286479720056747977912339427118605257966882270331319623340691883392779241386005961763559844488536331228316464405941133736516449207705637166870252681265024850935338498391692571757437651447823986336870803485634539853497854712642213019323963497912056874713956454905749874318672710908827608688653529022573249433545001279869057837704729534097697350980581998424052837637313843949000969677779429166534934974700583170146399604298330862795638956284334376066467095191411522779547519707205075348914393943326206591523217545731859300555790950205823738065948852548635993838527990377076123920656878553100698675539214670668868294269154144468753490065076629061391324617939566292527523043528847369020140746327853774698224148307909470898109120696060448130959194829943205950420631876039747090321400089856146547817912270224567657037522863660402672793077804369540355768780106349076493597269270235776855913052753173819458515104641166927196423350091024420652734079464911494920271734428505289550205581770077502928219982674616048005833951238745103244127020523295374441105579995419016756147076078672807826554909188762151339873951725371807509811977247472650902853483706881146704226652265413757126986766337089810655167514311683047413288318731450222542580284490130511501911349150146103946084029544565149815535315521688860638442584791122839854894632960905596293482928882538177941919113022427923991906068273091125340944151274059951782946775637081744175733084095200107429952686399858815477078374841182223691274206558083625206135991096894144852044339546245259586240216905917006115981322850118685864142526380221520910308841129384193349068682787301203330293897751187906180525840293445777701798065908566030379727770710106508637361986802134180441426395127815749333589252354668850338408046845605662707209724418318705887089859028322008481612734946547911254372245868821333517961318343762603935391762447020993863868521253022094068704223610714263228648598521414233204094898578913479983658863190942288330150876730564187036063957587559539570347828849400615903982103716259103156599416090790402433185421426620484940630736864959357401450622709433123189723572149665439807961159775330977837123519286706946440842699642170340877638664354532841569060823843924205084077299030222610768845595322186653276561363201969920975371043465357986245452662091959514503616497025293986537692364328518533080142777023418629098303815510271127958672897966691286824925031911429968227942017245955724281674888010766164061226644210641210091654957945527030087301320594211006591387684655620370118982729676824879130428335508143206870932832709985066725411126022441944544825330354012644847584659913967980684808041431321759973697621509272663448514635031880803250133083427015710853014827887623033841426321185082724388576293343461375875953357498721904234026006372435606638953124728414852648451411072351483929070299350634208337183335220828348440186951410768277561275384261778285858760171465615532167088073622607795241186158875097050439443126124215504920276983111206957977592498935985390189183881368947175101299565229533163566023477993223107019961374626643249019238923057273976194859708304848423218437124897090442184335012790819181469203011959119137770933322081898357098467829344633206929366123681042067786469879208608698555994310775812211262574400101509988187339874481727994329700570582995644411846084187377508289068138830961367026727867631321364226024917427170328394139476211870958765488829064028081766069531697552797251727668409054894303150300926676915477317615114961903753034603826810628223144085007179715737544485738202456593506174696059370188468146207244623296822685489843122633688314670421940014671356275518469862842139586196754836676992428593214043251281549335120420945065546672560417487641584917876818129188840836809792030467917321303958758791609199214420889709901514015446022158811574324189627128131732487670455152895533655722064626758578174679083105511730278462753333415759961220327097127199244848737311860396988115425025545223271992790757099975154869711382999652123952346406017428355275490913151320180543963091199788103145466043605305940316555296099742529375114481983576817072800823258700951593012289684193629122389830614903182147138889394034659728869536724233317583770161778734071349296269400035021856138556249285909389561636270609013328486275193583705422657329422309756165715819652691011061828866691905364280723606064531226950277481563100347008146919404413655529496662638922735844779723464641619734876415961504718868700483803155777833318690735929627355424605478713199605928647516377962410411573540571883408300853141800116200178340029600677713576638196042363942641609676593698548444514240683235054574469572744943114461498051605329157074512210210090548752380649296850494997600541479018544450256407493206591675131552506882677722102527219097212218033287166194631391056801495871137503458424808873784994750647061838626437145086323259203175216008838526340849454962717813557777494681092001573655677398343103842991323237053496173681353060330470600643234095619647454422072348210146854914599087104094257813195244127883092522835205169450470790600966826121202397601382434608474885956013959341280194300889558929922983985258450052124670734337249803174577991087649550525541944519919938373938504169552290847796755230628289729189308669008613008785928820782067063950360441975084454655255675483223375199191171074534444811492388393787949803873074677435457137525432304460069073416872316376828123634920146706653216917215912417875440448659070404386072472701809305679737345191880913485017263018257968537582179472069199367477537804771973596941130059003033225526516931858072508921414414729701636208661459097823295768927518971563366193199778077397206611141438220705088582429177586971923035760159758227770796504082105441114661754284237836368213383979355734983177081745988285196155612661371080756733038576405903955712272641511981351182065140363996421291022473370872862652758951232083100508327820101580213955860529856503750610946558555615052884138203095924175842630314530879866377693275882766596921138801766201297976733999007227714600890129751448831247129101084831155054147356342827942062825751593427017098601670688103335310330855784494613614872395977900088053016143425046389160929151164139712280962988350073661314319428618767906581312292390657726684404922907724328158238288085025721335067604883800280353476040206481654646942664271901908348044076107354901561264278908928385511140938307536198324900126300835981175602606437110374571471628300683216527950945129364254472210116402513941892440397417450572641695869525183199899153106717411146680234345147927747972393179402931967940296278382206652166606761341355885916529175131665714411312293826045960931830383792078684489230189912310455965604289021010619067508682165966030756903333935527374437020747864963693346472187301608568931895691819592178041833200253567574419256066258838062748285548899311696056792971505370392863879245074879238712983619541459195861982555959751937167881066456593579906572048578614457418460513438597659063413820846067123120206856171448477653363373415608909828349161265157587082267996371779655335419547054699420655554392881578094371661366908123806958043056829818382929791637993151249861953788961695167865404524353495886196893158609712425190889706712560251455057449980726481420294726032559808982897698100637083174769931315189816266988249851111628807303588275948343759568746820114971719070398767828561204899789056062019632003963045945106166611640848432215850179229165039107929645234198111262031895272992107080228350730478385323648858002524709994862163769759235721268823156985170535527501591785487783788055305960121711065549699366196940403894092077291812241992218403030028256528594918207704170409640399337740733089948565870018349913795218700281248667011070489095348268196192329115458883962460027200791280778317760336022256830674886588425650020734188364832426764296831955146704852667233987986780762848240117919102835517824105514047714115162034217826451661427176064998482547034525354757739415382749765344204248825437238868891531415831461002197668873931424073736141535447143404102004332095412096486981316977958213447539590386679820439991361727364483462552808974574370941993717177037916929176234472018628717801792046329217969069116843488719930972135949654772414920396435474479455188783068272378152720077824630518392157703172327886854284938010233181971822710747253615851402552571257080716682522605279535216996017624811401975803607249160527129765509972747067872263801279926533568329277045857106160748842055696560352202136166269024880440708094455263038999605426460036294475386331888727191903462079240372390131875726408817858711604839885527469148979454348560469473098157002145091583447021376192311233803011294472353683698485606468052512255772660479815455181922609352725038506305863705486890208353029019183711629681453144055445829580199422785537783244661863014794689843498022095857099603625701027403924105237372699227389827633230665323526265417204465985831064230350074597613694003707808573634395455630076391456069989712536596863033680104593972371476645852602684786254174907849832760884589484630235739592152196384867681090688446794377194474678368299483337988128591276998079025523701969284201198028327623179810166826946138304169563654307133633732527032548333002924606586623643983066528596737949279891289161786211430452133130445272451708606429495918215221248932125358599803046319278028692802096145487142902648902948912648440462692246856262216270454978974614256470901947263012137383402037326275844619689916533636067017499171894497749799110669172901385648600079420786022884265787811191767117113751729320822463375314941337758181715089276404481556922495054189535610165242751140483485647423795903687853188517187328741021474848824603669402959798241362185086674696654662435230491102472814486940289952824588615648791334090090012467444289251131557935369909077377345417832375788326627783288422096418023632064442143522764382797346058389420763723413759544609548070614608187344656514474715837741741624895655053334222618594055631694836629672846125455362732354594087789099892642291171509803586071708595058586477632767856684346795253656034351488537310667800455691518149832091880960082090580612607433387010066734459973375587295504318700005207275225342825878580906231596435527292008980996142700244381645848718974146673681547042553050115761905620352210020064919877358343545149565372950078705018374963130750988182281178840244085693045016092891002696888560344045222831290530038928121702424962519971044775761476578841285467286602621345407055953613771569751502534540246280606095936693669371247029487345213527601212803784948213425251243746784292734241079512846739548904757590739921759786728993571531386751829676500745776036790808111563159997888297305407954173573377756359989382787940764741786689148100447876728251115364088909092198939906304006270352154758022997725573592196964777029916937269897809713498738679598952954520357436855771786912914938542880351029011996883018821504602877963572891546679695427925096178924334964326447547338176892332239218272930853926145039835471469162575280268551998737555558469448110765430455103455808557404384665060017085513433891751593109436057190451677645223878088832174487721994760713708081176452076547930912507879237722287091059071851751566221428500701697110999726934006841570181356460449188084566081422970733336669925699912752352329063047596118630138830213225568187470252250668426022290018378767785470516054392259409697829965244682540845290680988306921167485253504439862373771842472044265418115724150897358011782465467117941941121399332110895614949172170753646610259213214900292814259025254879833174286655627611198506246524428738444467957745932751048705209720183034660600160077280555955818780224360168244937523992186693231972388775559272529006315554649975942227087709568551228936773315426045630125915279951227663492106632684368696620527128461170663970877146428776928193571559599713928761316507401817931945929873647311443999995057955592396169850226046889335544403884361882068941587123546982723960913498226559835213458044298228724621221258059556400367044510711153990469614691001598033715971841131124834934571470832181215316584109387967193987648407259079660552098398558584099193801399510177796908055130941782501194519728336897004578398285142592065155065133968480325511150420854730828126463941270534680843967471702961752217586161378635831199045490922936276657334365217088180449583906103629889454527394570976500250153914966033915608448843774242347603649781739688921182700295811479835733272433018692994255006620977181210895288704979727630958534288084512821437779661130352192925868296455265165796221267517832119105019397251557711305944905417922185702139146715710611942953756507062032221735734497818363058274780569368631514533082363952538002961172980219590093734784745216626174787463213099947941602682255362673234400547108669502824026847998885230668572560243170466673122039527396408000170524628060807900524914906149972351042980877942395589948196650694608595769175408991825886944399920274948564772922174191840293898782492423235233208281742650633631751792366404404396328249788953320708616534295443837690760681061317093590394555496801203300774522963108786506173977829925630885274319321883751571449832400931476287157816264242950235437750896092281295879671134464226716198473733465038175710694839748317188348934736232147617486220336405505224129080404658842546552051384813879404905060381464551610084747698059428703380869326000043839869491207039868498679363359624568551548149426971387272712432088370504324275003388799158592778635835803645351175459397424890552235837653861752337940578385774631027790516271425160404319769569446851413462237288003095074980588017710507005295275708884206345573259084608548550707229606900227610204320861589688812755158938397323035349327381807395602058315180241112442279039931930206500109060170903212724814965090871237519014044032830390970226224921058684172889678683891716899401222302528390839251424114719194710112519116380945954613154151828668689091546356204022087692626505296045769871505570075526119752840305852480144493411384392881096685540118100383129658291351368244906769342769258120722814198913858125541430683795528031204238779095079554019916800076370678382613736359922421890141056502938121022649832814745552597297123363933910405700637018214557637939489291549942245008603581026297544904376571733368506208975107186511222048632694562860412558497178531449278412163930205477706527626487832552074307896100203646356858631597174561637778468276070327302558973308768451915456424774797040059035129128817953788123190382968233197360795493313671010384558434005782419504059041356742153192614543302189892347445116758778787748689023774089179471864554124651134913001200914217398500198253081726825336099336248390284503392670855664871702315463486950195692499048114603642330353154674427552234476460319554040358367710408678166434177855140697298175243270762568914823447027913328006381414346347284329818199092844980136826352640318724223395157634515559107395404547008621989880110041399131144510862370924431547583966057301609559602213665199928398607350844219291516182774711932155011877873540847934147647606564974923136915868119197285575405629777844144064174551700994697870353612432477847340591344972496858248743908321653418979636005851748784895258810915130884477782291398127343440965122875637550597818071805812840968949104025496154132042765495131485505067545333479194044222680358922825730969145743052588565271985186697109822964108943492609611729814933221596451660253297216714723337403663482984515136153417501795299304261259407761661550573148514802271076853000572564812306907019163582804810892064684576978511621080679694991830055788590077551037623460214021943642168538234797262219174842660622791400045407898301684785502535651184562359741167018721663884346070197119807882295962866478801799831359290516342163258740475476858348082294695636798737943751918778660388159391757862776607659298145296690284067598938307767788747402493855937705566620809510513907179895500063348106920558585502000943269953421275342796681493652012149406117459890687994880184317220484642331188058065668493434816317713212220809000960745456029041900680405914124301975770072535643050464379492797265380718640895228210962986851039230863306926139467956290921399682397194944813520160076414715306870091205752684135039220745314981678450972516970348192036643965376826175124890070803941161029003904302210922301348320420211544914112296489546600044824384225048450807709905695733968910409576569230682286403014859428724813653285078615019756090814654452176620627055935300842984490709647899548261778690406444756118568272538643788513248544566632324425089137452851447269934660159378542577686202820370941859110003829514551717948593167695967483156437590363000650432702650661016191706920545803529990088598753763550180070104357518236900004228683431937478033919607516169076936083949990722892832744761056320543992236019276382902927030328655573785886613368320249566101850201952880872454700910586541793120795436579073598718803509323947634692150444530844714690711529309175334722356262993898819144193406965012021804694646974000660766648960454367825555871039811955193912212465968216935716532007733680906918551828569381447055563534916710483936447928255341470841053909176585527950876341139931931974079863364580307356469130643703117577257063722944392689243304731450947487303405089665860537603587722544066684032378392034605794202718947089760352832156055898510426885521383964724344588250397704696854775301432010231687280360078695606247179388378081082905415566691174161883557174807126794510310450337994402823364471235391846079942263600223219644468669527768813522658248353671883797267327739252847767411172478830166859510112377719751373482668275602271326744882084755109803681403854215655611004102812551997733929254545069263702680908311222254739857038977983833536163413384785665197759606251847581464149190273869772865116545886252919724202569957293132283937878443126036076353053988196321488368523505796395184099749649298205897606023744637934692515754477292028767738874839405684589616710001968162970226433602714646120227945012048152664491366952899447764541894895609962693950369522517411516934000736386241154210951044056232051874095795925128298201821748611495608943594097259014719650910747881413164781866835262986747137068193179499982792102616897488275840232368452975300668537000321324452005468470799272685470950686354753852718820533442417785047525798889849294219349680335725203687727417405984641385844456280963591703045193095281484280342057931627022548056784957998687991623285736188932112602491405607128108692893842308590739116804675238063175654502698636690666038057935170117067318800204605152519959964375714652031829259334587234663305082199464294846424610100876706577427977677288942536631645093969746360824815236696112561369931857182365485100405092395254122929666327840755953913249787963737046290501810003685332003705416996413022304910951155426201435569615020488309837373102066849641075968800000357687186075325148300791297700734252773108539134619128171573612881618983834318725659291477161572214643561256333526898431138026631873720600078342402708247799193275129955280108423433546578192049995585671600495793406966083911045569203096381574782534245413463748296639874430266595795993042588956438647821604332076466006635127892373671021108417594306052255519424611467774343196828279568551987247580122084105224958534460252243897792609432322252039592774022912233380163877893545620817272151001756564335426092449926727663794472349592425508087737389483413584551525177879143451372238948321869081703884569435527673251922949713687912246395239136091213662071975843788831181245581249690347198968807540517604613098719371821460146023582267647707235198061573356057291663320064651349939451899505807706695388885951798276751019655598707964396625356287713444325710885293134205040873740441637140936269519265321106130348091856746813696599813062107645215290413577965796326311558910921716502463699170521365483816699094316144219714208049452611491717174838978225528870470326450026494774625733207890413509556771723095594587777610658413741197472192240969427712106058065004389656194607985279903834214594614753514031851784882423199284339386300073116645532897536903897249018394611917576679227106702923134512538748108530546441240292161741056376584669487762551382543805834004968425355623677859921650083506876304209206378952249182672191923619156330544930643113422913350813129674542318122571965261880566223923481041828927717897430531944804482984796626609284895877830242083222960756037348923696520900943604631177889755316724659919771807520094105511843339290911222644447002602756547119867181680191587621948524845165244251076030849958074402820220611797364524168264431439379601482647235806384300029060588524108180458350911418529580648519741986802703589842036033745920520682137090300231971258458384509815751076926137835713362249065912689231675558839413594961193803380318181942733119635001733478305826486537970574944083662695524107395938369449871342364434136047202798095741334111275077126540632410735071226823401518754470648674888115015560160786067733945875137512452426078280834377333851490525736943672710079346375828352297943987080190189189733493395961458709786353474079414432974347662357963216820475833717581469680997415037049805007710101220326936337045419383381751394462715695562288869610252301198256805262650704325690936909693268619402430721647924920531770348346893455736308357341461838439295102922440591956638061796084328208001973435794014059892191780207919878187638800844160305256251742334673091797060200876974878734254005153122914992682309913281134753862903019315343078575182092530920375963815836507525101768146220669232256295356816510430134911189152468492282750741034727891199459664304758812842001560687713378204763473746896084893320153721370140268059818738988912327772158805614865414714628884036512104678000012303157578255926037254058760160655298872443696395460946635003284484633115504071453802441532257853359174748506361849038403768329640682831373193307160545943132743198954819303732772297387667786097771773730270075862762192228167811059642144993172137548835590697990920587503406449880044239196556296644281454640305205704405538294548371498070635756343332167480648629108974576158118954085119308920467179440555987913880069355670157989566753281131933141514497777060459285018868634793419658971066629895479488308124395697022076656701405577377328740510227062686174337589276271781844085761426872771249935895253094169897329309885172678307056953892046351258604093086898198862420081985631662465947709739404182675739498907536905314194302901870848742036445819519000348424192659903544001163888411339707776617903061505071366298045547649566279606572645215241148791003938736062530651833859824805875711776756980341736039897717316358540478970109404500572451122780938821755173183650939718081031665310188626077499016635012206154217410288281118731920417538253811030203616210631771687412697465562860141153567480251274831141257542836673407902586934151472391033571136870204773524970589309233150280473183521713077186552866521841712744718505091421002377484152865462732952641542070665321434776254357626098763532722911755935170877043346104938611804435569027367640080386815468982356045383684657956711690831609411290592323350102909985650341527629039874956971151916524746278669027026650617420403452048670931554375979118847208920758801583533121718996102812060038086646886393879828529685917132618845069523605871057773615297719777761920864682391853782204722317924540479360340673936857564399563426688039639679971437828772043360833136898051419541327392996338718832220923389140660916450139795226581557362698705849924808745236725125052928634457438862040157474536676589046106050463119407369160346755710373397776733763771196557658040222758184856968673687347659415034632175336847420645757279208314728572743063022244621572303772671160102998391048360778088344065009434292610766187435733172917299986659174194776419855209937787274386710826879670288662455360200974020262782808333163544560022310821068299638058512343945234155776751436284859116715885054408784714955312280497386567253900953292908909961715296013012073940366782687602926204039786158842109175083243186836241385049247045260034160313830860463989219028072325941190285562815149246271113505818285454221433890752891028433903358016628723231651286350429500862816901761622058952476701009755609358866065184258765806144174333093169989990237765777566928089881744777228956109247873602287075191362410906052716124505670513780863749658505070937012474877668639782832478753966110993076835537360027715669504754304043143836714903962255345320313730884376798445559923692051460352465502230804897533654422242150279348638208963613184595018578218975688331964209456859831394427101781240936042281280790338397294925715708653922670770931886849189327926779597205936614384728106755448810479014237204871806694969178869747703166336602479102673848532853925686689554173892187353684820198710889451972302639823092019210656195304063977381340524056791150229044434228594683701078000411482761918058664743743444120653767159078932921593279601862211940091868267783130852670118378235925361842906171237797774829571118520564525713258362962056936003001632620032849695165112855845972043277413366826722680710690151223183119545977976433405335051716501687176634966210040714644915545901861992418579287168581758378368415758521324426492888440273863611999663732317975859904152577230232133835535017955399982190249030250310473222854170781899339635674863756328686524718607937799196876570550446875392088843403192689544816216225717962585899936154242857199437281468112753900764194772223917247687889735092364863537946628028591830634110253075588343016655990239730121457046284024703554413051820279482929655875279632517992588392666024772187840238050592021027193919285103568047686310142210929128631069273302355449882120335360269954007350185525927821211360968216732415981482733785600906003386074542616336528943122734019909326233301860062957575306926145574713414928431457896933916569912274510706004077002000399013254450417665929617032772145786176984078364094436503166888816576057030125307989490667795676516274388678910862329657268393007101065100228252937050940409018350568004960320160262742889280739678732342191792538418028765142125472968785142005446682141409465872596344149186292148254237235292819655306975034095766931727981769319360830505241612459440045554197610622686022667721897436857867613835206275313213803684384207285500709942095878939070082412780946039728119172731169549142357870148609868142270466468326908778894830651378148600735296024689979532709636320281358244846555681627665173706262762405183058807382146230519202836983625022328232537922131326234840921653169904374034445744748320265438866316032103296240394065971909644322798710262677608927882427670649120330235355936855806064216488672675981381646649555897112028313449622159204717378512276609221474937631944568028349999857904148735647610995824921733484803168700018185451187975914895967322217095576960213434351219936804550137267710925573277547427265613610351787409922756240587216533777663048291878251226120024380835867231151611368619745148169567593195280797105117238973884891136627129935802891937731392456663394481636883078625049643147525142554649855415903288568739578235181554601829271349628066860370179018419089562137260767944533656151409461403153185199123013356121655339855032860000605402186404687493142771953090802173643740024767353355083083221016321523291901720877687636429716030376022612015015465956494020153963570889739855803410040478803085012628756297920786436422619725745783692805004361206148117612857127317584866667994672121681280635652075927361612099584021606722233177868843652004955909618556318958137929833507366859373539539776740026588015173828281199430830806509515145449883480767224420157234826728336656181594013363039454107840396773314123356981643204789788535013863015095514465979355764683897104669689371396679385742426951944658896615030450575997515469255596879546515544704990959224702429866819635888114235462837976081169768954889973610500625553061228224081762508900288842441402037852938903545769329980040397088250395415377926534884059008778806202215572275034693320231466524007525027551346041669268018491619809009046551400761731821912635131700747623420093409839976898790611412647162176359133374234029854931499430255254671958902141223024190835520138747248006847181257963527897332927126847593112313457886470769728317025192416317144491222987645790368683173069670697010742195454077997356226465264443507626033067999448057989881700409643698210294621081786028375470755784527757354078099549530310506917395637022227652589116838204576468873634412689652593876323678256866713610884793001588751061550396175058960104786108275590086975227555960461285026370752219836680178181652227170517636718229008560042729420149165703688454831616749707381183947796115864925547900614976742316375220699560237673771278221363629656727301794347512528945887419068560498319177322781748756006505310356333965696618264652823951232980677760252507052525756890565320176107657922236342236621242264209029229779608969824141453910129985866219153101699531139309666771779188652571349139357923622377365260500252659592109326898339393535588758856480456181190213817625865430896786669621383148420310523475611216961679801335440086891256367127488336348771477847060668094926930973822394944535134533323049779204458956071482764229765292545680929715169280623422564425377746400420007238045487510539541893978399577093950040186384703807910565313855379807876519268754303595548259618792587029808334067057305647334496580046261289079844436458441043602981898528095780900570541822967137634074724449833653571166092197889444097787872051450748701710661474302185373812134650198071230383268989391305996099969243956320454596305575199616927597700094532073698006384980514541762516205869636687163141000030524661463229561029955481143168504208932609083732393233748702506068999404755660927908730145459954766140820854666995672239198471106241215710762526167075591970454444653723364159031493672388739169387722418178329339514589433739117407041013592582355910650924197703712408413694141497147254763641822251719215212509648849367293554223333536995014213633440311695972238980748311180221923973486359275798695546864442100844897752541547102120129310146550854421738117611197371002892111184786491156899195626128061787435582134889383555341414378043931117546527666923648288129940522785985979703683985744931334611917498059043073192904775503153650020793363496066063590503561735595406498485332602287795908322415451209590767212465754099005639559860868909839900038543846834681509989791557925938732893620469412223752223151883683219963670067516722772470259992520222855491552810732284298347378091637657138613898330200631051368563878527329073739331772626021337714905848030084901979250018026097716871521262535005495723268629369362394415296162748850339167665116197101544701522147203845626224318119501319113857278627218063786447886000076634706494472947133828431625762765320568301168323533800280864088089302541111551915368166842647152898275343974011736218421086504535199189739578984506188246960112541472124749962455956827198957660610507038026714126920646847626754997801018813271053323915834232397536523659650430722605756533853326160014425516980531083590653560106286486748169751621870292741999872514886230272277243428395341307173804824106339526815155463000567431934032965460226724758116906609348717888035332950958700528579848514430072998305134394164263666523994033128593619578234593613187523894872376208393597678245620054696593454817236146242160485452380664177521510306501131243676634388726528014811038443176892393488502600051432372866275540439199433377671553409109563910882948351810407741945270516201764337297012777652904656506960323146841969765534652541686855889179115253781461879019563490477625386803529965239719800342281011501788487420140257797019796930362742826976940492516291580691489867249452568180688923846947919420074087460075377273751128349127763813219681895576397217803612333885562647890025991587777010062869196046012410274060824818857154874586160602720092677066313642325190845649373024440554884756893505595387260241284635865123829228661884294072525995460436563185394794521800394928156319395304627290763427023965173485137839241904306567332812111302935755995254554825879667476994951186622383249559636561646224296923717486199684443184110321379250784061501680128922062496347534632662157591312717485072708641625694861044613414147330631600962774425518176330487231138999353868776113002507086357904497556518574213616910539124626303970185045292369802736291342475232835494541780595469730108181419161957732111302760342506537250963349410579818635077962089914930128291881733837431339106001661769063537464641467192525310898810741854223369391582970230005014034131869039230520766922355028713867339705351788818104109383332264312126721716093929090047303735431980080684520345397877894219646916571134509094480363398761159870351803060806509608718249776443392470491459177604621839422826705629777748372109454890471579206108589524071284913055774250866122585999904221890029711854060729672700052301754874916349134507228646795414527941705167153286019656315890885015021209688060124095711930623457161683453029324805284030081428096072059844483454462230782114884851154731115186135685302892503610199405455117151986028490044237134851250408057730984554815520773161733017891827446715021932116436583282978000248507553669161804042552151479510231282125479605453695691448169113477125213099030332740282394066266352643266913858872973758352606274234273498346745781513768310821925263025993136001539983898769966989895173147115261694725188552690909064981232834776891654129444447922458153087457144908435946108806367233029512572221279102172666698494158123859171915359350409738579459352973195212041859271319817479904296019127812122750749645185054728268597300718232944144379322586615077536916971075503197120847818373506456405557294051194744885546729671894080061674029544828194381669895657521067918235086749163038438737073666617476846721489293883780499043560687842486011258755937084240018872354687735061763564461696313625892755797535061668656844401800416665523516684211748405355420985418202622340329519890253701062106077520635027855465196912597401558271177554231357685676463324638761271534773971309515823138292108763506381621312144900475273228016352032204371799806641519901514402176034583667850662176162391143940095180351679112883535748261083864922417015146229843525003798419654254555543686753018530059169733746008227441334289390802605024545991437594321976708659997510843056604076785371107434462399369240248480400887882578527287591102146000180142509388300983483350681304978624369021210855879869270017610327182882702380939578489810404807726465353463327982579641436684290466926494897719540816398436503680157568816508683310186360406722273913897615667116522450077057253424203852446482854410550166029400095679570265057041021115916755814363450906109185131382792854403156898711332317897731058634661279885326168019022861725911095681192983491462512299962850025841408490315087383522625599848156031919465882596877178615812895572657690821049544123853003662925352762120258955143614556048534393219679891910088316739358160504334617442122869803172399476859504793594000233976244191763386603591495023772801646182868057640533038582978057250562544062413931292132358494151101105794974891045296127589494894468103561984126425867695096262368032026867298389161863273482692891020027563294531997035127595064385712397109969396145865880002598776353430681211106305994480691119132643152629366938776538210168085573633000464184958982839618832661573971269420428919902328390184896780530749871856161602758830186734064709937857424052678989340139331113113661577118721517851297831321865968972015888644412665842672131183691169101609188848042740425384315444433396464621322925741319597883118984497882375428663610599934612424646382309946173363766379989628098523993736514673664169338770698711350809576620017558818918232432014933241034718269871144896968705626384636265400437945206718641058730033106106120011095267363751964194782660431293661746475684371745924360023176148549390678297258465351667405626262467647570159786809000183035542279210149198021068118094293786120529100067210661113492638016742625676340901592056533829153374479522819578048571106027460254203026693444476734451212168320180769380393614760487025968992832236588575799316129025543300174826497179566457645793318327705589692885560562647572523358648972798633601693137777398519703036726454776432180267192292814211881647391390246365363014531179245281937123345855193822820422901106202653461507891749911603688836204805125973033653958335753243343683917388688411128185585329992131916970912189972603857899869155142780941423407476856893038481635803140189909125457104916890419238343359239634721741485501899035683987144750192272752035492821285852862937449925259213692903065908944723148855717508354666927585475509986880433500711415095811898544071646264198114613890060482122999834186383201365008100614906599779893008906461548287231025679040325394463380666857116324767561892978044172026982478743028067705568394652495554026407623326333230953274835563318249813972476851145847871696741570347953606735210351584177437181476262550055119539832363146477173490283569603486649637097381914556147623879805907658603855468222916383698416905166816904439646643385432609967826496380995104237489527813211370282011381214642078636836185719961340860230287006560723364619856162632823751778094464220590992048621162362268465993728809738622034542249220190195001490764652208579208686946659646326090725453918226774733383792295148366188376608222875897884121303575053079438640594383474222348262687466962838651174236784705812520215556955318312792001714642218525242348446622212966639783182879277185697620907149975772317395513490027471449705948725852054727472004809217938902574219449665901257864041106221287100678281354429389339022352863887648214770773761908364549961841232213126965741093894266676397755172092062986908963518905225451884923691618753614566879315645715192561808696002918450939096254220370672789650781226522974161856849104168514263287132448554776302822753003199715460436619470746289778910238348122650393375874833424893582993527093261145449947517230109688849900579913316670485489059441693841797945332031268798734807078792099113877698575285405888585976651201830563507964456356556408066870052952999491246577875489099709862521122004828190403809536032611502700098967974708932761407930490294818471335861660646273886556390589802414406225399735754103200401827980749600878746308094599022640419979146763903658094209911854269197693483721342278402319679777596416466287044599573467210274613801186714752163376544495883056446408656178117093892192847713312033560870001463132083671474081986558425774814710345864841272231966950993495631020905974646581501183723846403718563601749525967558611229252758922222856444492714637935070502255006059590311592846867377518351867070543738005887527885486626019721422369362789283346135170841695548956970395397454940866644062412261672927039294615652649974290578889126290660798718488760259427169709547212705535135799898911773362245522329207575296233213006127792252198262873087116644990428112326359650150945597149862277883569041339405049942504668111994637825947068382689437153478172946251402601760310762280226258205489364276039448485858531736170980706782203724835201386687809065497598986096073367372500139074765281062965467593315858728632324537470820988053637543383379893918738220545591826359565212594203525868651595969631814808927395121556155929710673303354799714027459441185395369415176174884845992989619607653675925459049482442288094000138731226606981252221707405966595424497649218835228919711880950897618657602050506143965104327348973003922320920052705299063597137935170655498789530145022131825709866802960842435307528936900370613262695750879164820957439191285383534136361544776833522709526002379309559689324780555241394730865500122906990857319457367088291231093129274378909165785688458939122141015607604229895466568260138276023533548314894988088514330394592425440106848911595905047115814764577736332492531190305960573047867142417994757067704643379580151200364615787182581813739903469625914533137009025139501100581761186922136360737994136684457316665844025125225067105654840785082846458860633388087843708402711316555029837489099062801818088977333043015454860237178870967022760922157938063255319299641418102010744262757202226888660631878771683250085054742426598279927270160854370940865327449217736586536120903127301430141954525034029616813068720508089260843581738691187414553028679279544083877894733368027006963728941783047225428553814143182279412581776892534458730831613700371306941806653248967311024045380999473527579410943591977202276386337726897551206317143655355504794734550163956496362826060431051363151349587748090444976699232770802630662875595735519566695900826556601020120270485399267395402622285871539549941552770444130417000795984508928588091009803985699193259840268274009721149315181173728841646680982427917442042579592030464686026865053764903595814724202554925852433680578108614643510862806254141307368897522934478612119670464882863945185054599384039005425630260192623140741114089686492468167381249520844941394013101881505314945572194571725670991287345171603974580228241605324578773217564739469813970693256833721840220957673244229656368970807375044595974673705582753464881469494566540131647167162272085743494527134666878320260690220356715378256905296240099555876542133457609500879304321026561623872016976418875913391295649785097329750274375027698402683941153201884022159999528017440105800411249741683005523183665320074703985253939026782732942606547125204812521311301983007191465474258120176563146946183825699142651339147845565906433279778183035801604499184994402150498250211454472821127642713157961429368123940552853702848163372792700369670254267263164267755676706869929963595300152640328736762661556826484535499364946478635343927251988120831269741154005775223257666302758210926727676363035358253149748730648128678523800903764187159562565937592707675066267609805880287502031306684362646087737247135610133174368078618025483578782656347652648909098895390124010052305460947180994338034756023191377917192111378276231114444506943430381092077439837696221105129198732362396648341051820901693494338166864454325715668083161705377094999443367511875876299231517805100351695811300603605304247488984648795825970199012557750139811813011019089563118959849694619196328074297730715536661274273586851874795034753121986396739576791773313785387592186182394264853378773308816555721557848907233282969849868716257691105507099074489126440185618374895305691523406775380220754784698229338972292934057051912322563509859774507007987762237437275200051122471595462396281797128538948384985120735726275718658437162579600252173115719062214698691473152292271863063322278231018709405354394833778024533118486755377752781420664341169842766405555509168582748377054241731317530806946841772573099223833262748124814353607617002768972100501944246545662731331493708299152897521980222551804854117036029286317608979405398987471634878438334810677214718388068050320610802523079567607670708361759994735039253477032514411748387140472232551727323940379055271136090872181673592763283394211080841800917033982795416749458018829571625259949898188073120379196179528554328677900603947109913015316222027532172043806897324488811965191121817185976009212307189754090353454565809548896725052405329844003450446445694000270537355884067073279866250291274414586446320339993177609589893256638818838022994418569084097635909338295645939238048860830366302378789254439002528086679056843610017648058082785639015580672479767185315433214616407141535095524790673467640916874531805806157047833819235152784722949390601506777176329118283095281948345899031579979026535412960937710217914569335160083525073542564714592633374198579974989236499837067774008836634205680455649732197644392427049749703715146766866354012667294717458685547935165351284544089889580639523720259266179363455331244281549830780678909660289504648802657877661330028887601275382818285552841236674811173871905691591232301347452784219074164710452702741699313902759880119995063478282079401567130761892880937090144864233032470277508021861297608331551076470691670073199109979128687135205380493207243027697976706133819427711578363815043892619146278578255594753834314706827868931212548026582831257010472382283259629452985565477884794920540857589936165442081172188187502161411532306792063689648554957276780034686615607004237594401048530746217020696564412861672627989275255894348045581982894601409587152783741608988007867221582108439769097274587578073696293592787107403396124553282385823202173932501826419395239805149292186446585241263873932792848629318733510255407321652851822418536294907303963968309093362946055766270284895071670226773578760784872335682713702771178343121517145541965081321469930757854484319222134273248801085284017167549331085227649276276995099502524051148220924486736221259973967391003837401715575507961715175608153333443843151045808689402283447187965634584028853890369689053196332969699675604396206021059615452051091891320384654856327034669001376078853069664922101833743903464629305407978547210530163846808704623039583283725861902242041428391728428636321540336479985618689565994035040671754336163293483306865381794064189059895381712540873815717967594133577761447758964470645365549512757184850452636350489344490174879603338200782980724321488875623203788724897319316117911659280639356671687163596537580417554567023697820064170623575537798593737267905878489264463205815008563270266642064877103181555661958972855295794688223801326139360749523975109102853279940980001117334883866874098021818552602391740070820642893253578492276091124342328084631675716275413746843888380379141157019236788515089265440019830724789389406562842160906728327137805465379898808456075698631991909264787240854276989307481963206106274035685217806755383219854010964660189253808931985151567611620812917877275189852071765478982769163153093505272494243011265483775506818883836411660302474189970519928443524648896117957679590020589991309956078918250870546001258919776907201886443711414324368562121906988821732414814753441140377014103169547810079781678444462632988508640436458816607199982656364061356948761054640756766119828919964486060527951835810739916291873042922790233650845846251595239039707859129944405786689346622352762704939021005513214704382118379492434063011531961220528751204728990951749155767178332323237557177919403528090856462871007122436644108279534121270799183064580771113680052449641848287811204023232367344719379996805367976503637222380494302878605273124515939223748601401453136355860768973291997762764742967830353609424489653403001139283518877171301581535186271323452608581722895151053893536640204223981826672785281685259220879938760572684642747488094903887895715701186992280895010446630154547456419474767876355693317457520317745633324944596923705146066758281318337318722193391661765649999134827521755510805360251463445798612892255297389512501761722018179287960484080765027872029346956876947683102654794157111161336639519213542635544743539755712959756642486921999606059969974937907827590510827856533968202307706524735136182182450426680177757462878617272982758223328100693741231446779403795221130027990091269714038490784390162494092238030883267569871550044965930256926018861751702968546793064886944294989775586185198831963294111904207997401501092218552103702863985872540013493153285594919116280963904994112833426582859610898125688844825167337115372428533252033186494421909399426764649685130186173095630873710677803600500797936190411400423682842779863535215077323569763399288355356735274029002135918378715621210840922236971509998978372044839279435542079213148383196438125658342453656660758504339974521630190366658470068331550981633626407902474290582988537407007089786658519676967423053877230166429412471477307522177974319377709555600161778140554410856378984918001713308091166723797716887645199903514813788678221655625455986762717658593471683310750027567041560636914628765388762101600983584259463024536363954844698994630579849659469456335602057478462822276972208303947036175227251709749478539975959427599563662670379161516089098067958282128233769467289842910453741793854826655256140433416807925291249150816761866753921291908750719156236782312996940160423313573820503774209278311151154186910020262848207736187696085612827294596040324633612413861639743192863675406468233895052091996438027004805487527487633169338484480221869201581050298693796187282018993586843408247107740714017738690591097126072120757941581599560712104918463851956355595826686565376028859882764472721701044754612810351060880748015419098827743176907915463991220376205748467110185064733326617331291636730121403880541541929628385083203715948292911342810332059421402129916195683438625684463492182291864255898248260403249716006432857948212046655404858034001571520276515782309547564842641617301929116040701714804289504771437227913314555642666626395967820046476155122427646920733791867137803985938010422493480707967087394768920094026912350788333287640282130260807298628846992311216926924392623646235396556674652390847432188443185794502807510739804992952894453327702798658838253865904392281133446240477077241040497856625889491478253671367796612801096126295289162535204324656078847543873119687663256845696381250152480712820819976010674528286566220198586465750021558096782358581587727177724220879008091934000228908594066300921231332290739184628184149311069462913794333634934725071836653533435645651800250781040277146292998177821809088995589443143275834738605702732471803869008124251357366525190827667798179060189102701237125027343594623497332140727535372461097843676013710218867684324019151825042238060848041350635600040111201467576083510669336064782334901921912942400039749534626648932117693930697110050506848075176442081193684087715710600878744705599958058488454862930358825999057453004337635283240309642007715005236282998163210373327735642949268766558385504871464406534081927707548026115359150393612734805966027210527355031140595475263048154234621656714655290161729478987966155152130925167718313840635313204143097207840853618380308628111290738875994269207407228355044871314996973582130707525623989059599350050856731964910045251219043933100489714702052403140937847092021470964875179557062816863628720634383752830597837097536930527815182779297188177721112782900464923194424031087927995944920130782450991040746606758936419299729143986707325209553338582768549194028505614893321365049562438316508185535390085276766159838509250861719656330580171599007473157877078696295378312667364271872990050683053428740113532499788107399829335023411244175803411025723698841638270749663632711794110087194897844915921993272702078445521915485272961243539763000481308527653335193237849061753133526052780642567707421194911641088881093126276527500094783774974770214909610605588943134175838302949220093319235760394856037674518703126043918965368193042841431213774351431644888934156184155379184614667878039628307044242760970270008457286980478160129569625499783372321534902019583899500600475720906142362581290814698222192833446162270573769834973249307713436146755481382141527665023851332233372546077514946143949840356731616473093822638722515939051093134247394692763028759994846508937329748915342948184178880080858495473847876901598088002800740518964613015815218567886061754842767022247209546908500652699264941874963815617566449229040084386133354407420847538032967870095729513143620315557800452821189139194461744349995411062682817514470582994573307047276505493147105034649123596505639385372792346182049180207881582111679356769308569010274245519583169458422077257553131670701353589940128640300815530370242397209412662816337692323549008166544979385233754390490735175420812981933614765054578545827002365305685409280640218073314575943387002299315208350550945054070815226430499006554001880341518366545702551064603446054589466915132741186467218834481305031372662979533098929436460934417442495454418762800859115616699317791760942808440586027465975965466687053340063588863300217990276026944490198705834229951416234867071465658442622262384475303003354204125901376563298951408404701133175924794073800477021223111781700056130112478406905215304103250107801673523865206802647466039471692664460841377423912523846426908846950812768143796033490751937021381740193326509890673493659779211488132064401211343445434701733912058431158031655593925333023257320414714731291721768931217353445082908446641910844543852213010499791565419958368729971866899433917711977588577250273389181534816007025524244970393288763861528984811790499956347610313331150338564760310944786954325524053729571312021141359947570290792413489459801346983764916483863015302352106802958264418463679692314942247567087939141968196469862995670895899119004531852077306158135401348743252706995983854292234825272331467944174336605542616882765673586946375424276028012364243837007751213476547626357984017793475968492607363821599601912461154435622075838118246100372763259635903724501446342014081326886259088338945472037430007825446746862102878965373321839480175306402041733826527265147284822264597706441581315538113314497427065096358911225606859422979974560133190219806866039028242698350869682031663863638154223595474529892088029579670436455061727691387108222017437539730181203587953549716905224056483905788635692837404179327198252354618837590228372069563430536056410872044200337240008769698244002708342045164574529045416053192907500738140460674014613972793388265279919008235559781491474703287827333992824588594586536110627514673234902333436436516865811065193682620594131716561310070779837042884311314405180516514648016809591435669598821300750335337355229019553521962990477603640325980940300965002657035464724830517099230265519037281450283876218307532872101127727852371236598946435378590531896702712891306216295019490215651211091718149719112230172239488153183660592850911036014119911033872596460286021860620844812102137029807523463949276962820089778083421583864994440902572416103721777324182044279242364602732841441892649424170303721208085654908463395441400682134748640465929260572014667410660300516724415457372118650798125113664504982802120754562330440448419079447647271981606118103643076809518622120000902272627014428971646744989207054909029309698375712357274197538799977633088257822683741740586243942037400487482602207352479054768653582085847079912252607058111923669926552738904830895238871131781411122676469835709736266386188478101257957859641502871525462321656329261943223321841939439241946546198179595497741885259827955039109658378736098742634376212960858801620140075952996351399647676072416051824544425064409396948505689215445527053264050448920104942150286081130794154084882749900739987826066082394297332541823931703731239912399845483946976314887564927705286426582622663345792742000608301707419315742118571736653821421283245706715023226965573266189661611835225145439647108916252928297181477391088167765348823181365520433998968194523586150282402472437042059398423197144790068549623569187607574728957958817937635895587042492514914523733224349975574589186238167471667936953390646143435947543107672108067612452493037722709201950519975617905340536695386583656801725560143050730390133115890318601206647063643093484116808042976519356498574094667110067776086569598058333772137244249528499418190668375306067579232708936875194675732970203639196608536619073866259245228930420458201209559410553133994892525636863837777728165401215696888598045353608295771605789769849709605654613367282221121507142928004992212034743609738884026377927284698849785594696308257032257167885504146554754405256549304508610138473246802215160059708801801827795316699905897124574826120608778497906006645261653115909977447801609781158527312274101477402582940037174638258560105529993776182813430541225786919192027906405902088570984472212320739274349798401919369375227321612924090182059958969265697041165814043584403610155075695883755062542259894608312523213195448965882603643839692128763674140539020157512398511339777786062687195499905608596066443080131708002919689160251100524160534028218098099360052556946684075141318716569343976349858005759527651874775610768097232983431664568220906032708231947772098239079345970833543300030537207770759033107476516777527774004619309398424547265140078544503424219822167419968492611835886579043855435369208606980212245592721208748981964885446579316057692856589414988212495885037481466165456137603228464671506701262815689088063440360061848361445220187384937454063139927173565339560382164096727862725618634601076330576310440340229705005739040079412547013100811738697380756150810628511396628354071887397461094646524797254544882821822998641496700719263730557653251234013316424496346924773517254365217351246246490025264521039908467429952982328994973805161293477242919594964679254275138822309000752110534373065987052930430500021278527747262402021372621572199956318880925219423894852594121254372008256777194152385633472927418952580364630638892193367601637712218992165234472549078826798616696875739301844539747846146569971249879190791611631580633535718571757461274447235654001059027619938587733563395313745728469752256767230437532007588827012548862230247988004128248845625643820003208106013092405441849475967629152178342908021191768714309012204652650302852940406987982776817592987039705694577440272896799690874120731034252624795835293124707205517058575952136810528117559435880817011371404743705995236160529128517913315546663277019741739225549056892983803647074155054665437253485470311723141665371887550343965580782120533125685047664588647270053439047356614502841501140595658259587094790023893888570548856082104639989032947066653875654861570800565104296283351384841266238886403530992085893430382704905630075560671675184469497858922013540595287650609670635770309801824330304731587445688861683317128090016663378874846197479041641877137174349667174030812930013815085975918524154855390731146295120758898274540547403320366588200187557602322806547005240237579661087632699079428706131330312477630789341952249581234817556358973832904861820744669336031352439231608696268938331332332533885140462574217711476920363145587685412431745148605080025810178290024081948667086060580600064276780624861824234192132342599608482361350436048044262537041972503804864344273858330047517999469043423973642211254862410249930865930882192055419552148958360040541051491422593295686900708642487298786222279379664367972487355245009196118570550177018113504488016399295363398682361764318956219054019326807218675105969003312795072931133773557683169838198125003855200471272326404628761959644636407275045676994986557488667192465409375019334005999925528889592010709505529276213250843799884866773064402577667422379846916317158880409289461499872906831289041217298079175150415406451733997563448187420285063831849078121303047500275425861401381177517295259279751089365330871048549188978624467087366043863384777623854307599302167475040164551824839407934489312730504737802090075901198308380641664628748750807951383559228536927389017952675264079088607026962464077362240350443781302113290293089734134064463083088556526940554868616745949562157984387379543825510870145711166523704430316944574158046040227159648869260658447594743377669012184288838713503312891909118801112083779580501159436356366086357169645923569319085465850446965841984752693945131442956171585079414850211080586617357927334540221945921899571626611375599432631339247978712342189697867491977345471136023889054032536307363160542334692015601081080171999077067774390437484205982904545234135965823589293965697949814191257972337168845633270430615957317335710787941128383383992117615092193904888425721884431805924757880153661990832858570230048236809609765135933815547656127117724122222558295495293731646550231897278398099273717763237812938098981106807014123222034691586894534021961736420752052507591465939080229828498830589932139399166923163987538521649377922732158904864957492876563808458757114576907336748298401099443050006554154122336350829947027090960555999438640325348555229446800424844537620891692577837431688567423618416366078520028432646940621352894360026720337954792031014187276108349886220600452184071185084896855982710877510172867628515162586909893992934515497459268248393980474725771434551137981301228184397656788371938406412321319943326128212225193851982031658587296912750534100531019812375406641663265254799612006580973407814922871093838039556996184495480447121203897856043433821064707263845364215382436316964463276378104207566253614337331955127575154695140743523112088895945464236242046075729200223410051512304187467566521365091261195732134997414987606540385694730159206788620063137917338093762240019433549569833930133659808159033916242281583287336361591305979873495935998951857729178820156277195145493811726677171810954310787143302081066140784165315907199319113370427611487398330061130309525032801373990651272181615213308129631469402898059239818676666680968158104813471836533310313675641437822770718321189072839680774063448723660317453477066096055131114369769201467249434233219228526521034894653517671252866451939723974521687481902393348419253065520930884290025079494691868219497118065607070295512177538766805080136974015724064047605087726436046986286113076569111955146397902749517209113383753328424879090774200837602657560438112516547746154307666376470289871256400859933047983377387858514834733626986857189815464815276562750277013963257835248757648328331481194557840570491424271141288860426113783264694274815863212820895823576634605627121236970330178158894440973812095497134187389225472191422742608179727850033082071620278806098954653040063578812854366366078560500107444022368461045508511202782640641648230001169441392825035344171057237135830639082985587699993894860024769570859725708766270329492029334129014635587244962929890162456208147840399011438583494360949071695217047902254928405192164927855383199827988039624080840334287054830228547858035271904649142080668501301349802098589471681847500140129421562980285151763270513890384881100348040253523392486982776645071589317360170830461931705194556672325590042711727021251009318640045540343907851255232683622779383422439929016507313612278769385337427562156676891856744138552882593540210710790705314868547225792309547794876521076690080762546080008781112076675242598883892198304710689958336621075358412087138775729061158846931664944320783842439273987371345373497128006057467369581096516722505790659009881850879910516965811661153552477791408012869336758685306669935727479931689501268123730350397780090570135586737056566487148402894369952670683629743977693444330030927211249886927231463632155184315401949826211736024333816813424610022910406033342275216253588081853785731091831747702525265430051089332264228475939779635236676840321055644835365444415170219873849192271347025829527965802536200920031159735626721049166713656118338696250973896009815115934870861027892013268938712977229243689502267275070193202528093424505043014440660422518599320798218813335685166363265052691786158619687793001693715087735600036624582469407801875505942144050862576826832420052718932883201106767092922120615889178451695505967493479083334956272314491253147537406721957570400774393365882834084533605351280244309523835069289923820164476602042219703126798199043588990189438030376107451043510419191967849031937869527482904572447371822639708588957636102787627424292325276082398058172914098178120822895583663786738635143295879111441285503992052593299887431542597903964961843654861609934604527006372940404838024316629157253543389830128386984281826175897599158594629032083619341379000569681497916320794574980239948044610709796176265552481039719371686398749715947658975055250330286259709686779468143228713293386914729306058965276309823386737489760699259767011319431757695765853320784418211143767131160631706825062817152931202135310251186275496561305496904526207792763403530931152637095293401742454278422668127210279972074286777905105519336367225722507121909241994041213394379844004886046834154500715568664159611629166423619495883415091571965199887298372247909919778615547503149550203545633142987783933354751872034766990470779743061032352861484238016867781472491545839649112569619990616017728671604399127361853499654420769681800910022519920664346222315885302906227942369583683747069127827434163409453768392017061090709164485736095060380998395338537355994077730567691903401315437034381309859139084774756376544454167983339666796302269854343259537016465649026588731030899697720035809541988702198504933910145664081339027715476639605030349961249745537673297519323994610344715729913011160100642855292122292868489921576698744891103777469972163977338324432333228165763996321911552109943091499476039168227616568375423943607229695459686544441895993793512124599377561770029255007885418693774810761663396321486294984477871664001246887594625643064422136453249675643780245739374758173952678637445193264774288196439809533419983283560906796856548681043906347377684550266055789053733342821446591392785496798375436780433680334708283757455242428957099013895067647060558313210742987958475216663250517126998245816488002084417629614074675906205208759898727449249018276821200077737852497249358802091513839767202658050745968835680660972714019691989474410361709777512595796039402655625284278506889326191776846851991958193409486511070954535418210013375093976475162141842235446640673765464989853590384562512163531638784467325620617702977885889311611341437564140807920922762195591800112116949868919976190565363758412537905860254654489576041831313418934122496635295659093585422156896013388826755142106493128658961726227653705077988942330770555940102669540288197983526861262442618500140622853465264218887052543003104264455449810863516711908717645217842080873053637263422376040525997672025924064645757819915885242383592450834916504360647444374657123130652874655927420723369069118646909000431053442884948370173889394493705370636509835319299440273896300645652207921926550253224607486342173581496822179933555691201943395052215727598680491981972731563514555427009876493151715028561486689484975149742199469348044026070330468348026237573977826882942827692115477768500371401403317855885760519908251347569825615114964781834581101276791205939797645108430977052555961414651597589112940507937420007766492444945077685655394017946671929613103196334159456372893726789491772914556182008507886559654758530749558029623432800838358896179575074517467263882834170094438679163549544084107672010409782603835387227513083310783740581121010457488285035077158013063495051405654557262923237315556467061945716840616149622967524254283786159491039271282813267808125912863698538647268163748465081840396067811967669702159813200219211108211560710598339641940148391935590706943365720497465313580988662254615123177004272357747385825501160993053175117463528800195936516768408413678745089452268705162966494306942821494114455421588952801262748140159731708497966173596788933356636357707098490678277899225259351050806418835526752325372115781005714466055486918292165287663665272652803589150364249771445997436943704761029584332357856259672614534209020972647925887653766240037951906597986728596670260764945790632990362413620247668319488885093202911149235759459882893465745122287084760602881574717068171714096128693683079209838229248698763545783742928564443067001393007282351425869660970252049098248746279997202844364256608862357362119966942414432400557332399106822852789465853490576807682409629865524448896606199650211741937875172537442518466231035392565667874049775149758329064845304040493729551031525486258261366584429551697481431910659866853465294168520743605150263659718654563985986602376174855946185388403442420690692978346282524648700910412279159276203971438704141004198088777592286752335294641637573413095314857700678742363963966128321720338905280072537132754223839986742873736581094449514109741505399442551915765102090763028711334938634162125096493231117890074021580642873934770356025769880987403425349684759907613108777496703705591272098079379638347592182866232134205140163415311151067995238743659084939013048844454788474784063615671738775453824435681657817224345795192588020579430625208541367284486667712924544611597822707441156989455848291157518252467857792902030586820777319025754800132712814125894904361028976283678406644585272555279342902713523563331710480611055177790337211143925333846236141444909037278801575270829004928015781392555377235975690932532646125734708871569749208142505194770437517666391815491069131092575251803802958545898648738311363800367987104994808298221770785438625293848580728336204981169767039431542037124173585040492651384298258669857208720228974261218356263850620869776241012757135322117336708143235156903761438536709351685766424464122164720688724598073763295923215691230340014170947898326663884479073681474107068079986118589649258185277714844457885023495507997433795501403980988553924972313515659568089793736000977137511811656910833783459950615514735426812034098606283195953899990243558354000275475616167829885434450408713740035845940170297946247652248523557674343412978281966630485765242301047407509964102461642546388879753399256950517121678285985616808313560456487332435019071446054329420803068095487012054837654576634869529393577393350526079165770862624069218199890018911596479923727132116248632755209482596768026183610335802995856125442840837181928991983780818474505562857504564638797009234136430725725502762787343945203409081995138505015755924959716154842662218058036125664774188094846342262239441842019188770797093176851422409499078214458477406369545035702913274572223613375348990446128964928451188043236526954034176620189416108837807096585881307165701927893974829139044868690621488843141074203541459234594422009174043824904354492012838967438745086974265869293108012475478156249582548971635543118139157545958120169374780511338401374034331031749129818629693912831295318155988520106540033140738462626017717382381683044206134913980549012377994546976773499847619773911320091641769885966874684015581715238106288373986505715809002584189441182427092074223718404493286933018215217754242538095407772692119737739278219222382741403123634290916871055605902903815080400546927399680914883758945177562570134026142986788977809538786401544549122015098407349831614318983175359880025824467398965585514603169898398737209196166672616849923287129237873646016078958515458050486135568996636632156047745159970762672273855703813080784816276414128506439021419033492365084905351188137504143340071740111419276531662819880832690225276816747615954053781712858801464047221068006964569122074390343849410646648287331814725317901596247833002364703264399156329364186259375340736809675895351808326283031073997054448468571528340063961128341553707189218110901340103542210354880400181443418915939270102055121052689000571442158511989207318780046611007527901375003742839092846666497011462963092321402931862332341989767871140994271881616089707377125154466524382387991795030858153241402336879260306831398495041007234735794404334764716192295349948764196418025192453461386231664644941747075146593129215406029316637551339306101183820090794146582745398544738940647252831588325426809360015951322447621732956733886512233536342231343959456830566659049315037759189694033552229315370287896612878398009719931443325361249128665161549021249494849881098396835196004740928460821165606610432484993796622963384146624298063807750705734848266861678903838841340253983432367650262516144463428270584408647218280738765597101523938881098482873530622189905387753545751774616492889120209900600748031765962094246456495419655893476017994788402885717109026313402884722649190950426706383153630049096903239836322642096129883127913755790855354459903429937688119601611770576331938763626407349975435458759159760635850571806058872696653806057240942134122157667325534270628371398246817568847085392751189177597685972698327095372875150217724785172570241597334380653272258675517143603938873585182280684780221251663086621424248533628685943332146568545235547401224920912763331747535217081492095651975385057362950229982877838628966179375982755655763234850921039681885553936468762996011744966354168407065368894048190218916888579420069379286091785089574379389623126216542254564368067702112302661539811965985699346108613418290935413766206040823927353223965252029253887126668049269142870715704397249102397234568645332201293334067400143053858531535259894289943328511148860659178804445456952822477946461501353580693938323225060129925045153785694883117563289231035032096688418182764898708759831379640972759657366293127964471524729505029766818124949536738283180006755056006410988080403959247025569946820180052426531773573917651324418617419067213138816527725096031107613988116251120121261787995843851513072471194477766137112708321209398573232566542025875132820135635476392653937687576922143765604473748377324683144605348051359349400997380181657945620347357672527687430909839398223914664845913447858818561140480576534126623812458901050928137028789721392961572294356573806164607869728976647689819648899027539162105753753147441868890828769971555480996864683724492991550118115864536735478319423658671468479783681042224942681116664771125951937299957025530604202501749545097608031352485564788562271547475972239488696167937201857194389698136957645619555426101650006742571739471615810621490981740651640820215088463119555637166090286001736500621310464658288068705906837784720336288714557874271048910983441380313962406956686767268795450180275362376710262456693269607248388858281568077464318160752611032274371723615131048510399156209198626132056616292489635638818648294529427718895622597728183793119883658468581370835914214260583478875341609113569013744352485760000327768386852230465108164865743986016487932822362895325458833132718658494718795384528129510348623133235301047223300427048994654489784607344245150220119244912375071646808329153694091088927835179585046451559350877709000587999231084780472812497361897425834572462865480042003766774855726098741310919656679232065421922841667691172095853118181198345485538827094579928873640723529798715814419953389208128422242064872456115072852542843038442331328526649217615705273818937944483464987393111470395010962129189310435085643046523129130743200070529804995264128916359964947052877035763260687531527938749004662634888124434838089287540986402104585224780443101269767795414258062084223043141998567680311780011259256857625222259227752800981641635827468418501472719205453758676427366428772443756921100386037756507138065659520034018272172719787099737565162774854611628603351830234228099045857332057229309722591593654534723559290671458482313710592554247338788069509396183585188747600004999463670226722804879548688254951550622085504217591392716586787408719117110050463664626853744350798047587258454719218097968397290757777064567523550878808476039400212915912507760076194692856506946084936302984251325325767483849410380446514529373717305819138231021061516238058955928266972154232543386267522303481432671732917303404739483230424434181372765628720780579744900995903169713903718713801499987807353425413263163556923950273508064928897882497101703767479624702352152969702228498975308562160439203137122040432995221605157478431668790736467497516626227324450432683560869073372333794707264822179423826680085929535373332047387213725904319665621701463502918766782517912405082432654138740364384988506761733806773883566318024273696216782403239380340129812255861685992094273700991741737159666510737858047771417782271372832795477205493423597254701543252544503542363714884999569783214138883942335011025024333505456283234087517882324226672725645492861945321686116230739991366544535800617345098837337064753563318159701309384737786846844711857426855029071508063188343933552212296370972503869783706893270585910073206236558419071425987855467304797459260513374496885303065329506240336578879024402509815192442900231136747124722788549936314391947863761801506220387754930390320178247974707780316746393476396122005517215850919504515194652811845287548752939983804333630458583631750352070026529705540945636092410699262606026093792607732789024857351140243926950045064794019648179075302225796878744413392673293451331369533263008434036970685188933060107226061810752959373498859004772773580696106789569758291321713528135296010341441977948516821839712587558899489095138942597100832730964685280412366977466845120426945419487994975618021144833239727425764665961069650639907091013640247583540851770434928455965205101996142278253792653512654865853341956072790630174234349925378320890831760238129148452250979091632326024391317203618919893975516324073499273476333564639282208733476274040871097804189598037183433310212275866013237219027935772787015202757745873900189568289223091522572768615052504918629987234149407236198864888190598262515095505335267795397954574512902556625555372061242536461892061016700304106512361280662607613360438051597433258662204996740407125838099966848781775699702407527117206267631921142105105685210441522379772112254889027827930576211064948197612861057779960885885383605883015899371996004095483679255192201303109846307136695320489078216119706811797699185663853307934894991923287229674392315142282743759674079802552082490713725905282380027315024885603957455545619525023138241102325776787443113633634877960446779128580059003804531710126961377461327086214134143261398237325503349059436243647877232964019304843115141147516335440612928246217719194701807323886743130086011555026288750674515761430349843950866082879847912457174913777130694744880925566419828112965422849746294502283823968672016450968728898706786596125434128478043942878092704307754299995708647702008282282819367431528443115363389274994830449208831263759904706092609773504055991214197477113268705520422502204161256840785174821526858111006595592858094612123972312424474752168482912352793031066233974199279082975118124364193080346541942123285913198618994273708237850155935671671449978182445004134295110519185072140487781064575002060268694001022490968455150625154354694607679397227752462473500686318389204454760638202150196021320339603323719023697092571971325489672700088621435205666988400863531948461095994027786370967646244633181623670718018948592240498515274724166610430527022625408809566955869793432959350435521659833253586290493875379156767826435111822198941517945621961720310748624254746311285087742868067867447178325551268899970813213705222699820826616743847503703858671550630567553036883388952845252367631138139008679043977677860302944646173104002311967114700747447097932002549067289236579145958380090420518694614368184055469709431756291721452125543056851449895640929653996227725354437095579548304004296300229034895862186329659119192735324316129427686569016529497551478004030708129788224493476335263797200722126527467322024477122887461639674860698361798803084705007863603062247135964405949855734999694921496376961217181644772187385595655310439564678655259851437090603492515744575353058983733027098401044948126145916452393504276409499107581771443860852717986523616555507563491339285896170959347797914111481228503541785586047363738107384969396643438807475511489949399143381264434916147536527716770760130638491876636655346929406578528785790152588101779674536325889502310905733089386234893613636704103668751096539105789588150423332024791648699609720945067788774388005591004608975468237052430066183544718054865502785180325816152634724395534953719177122797750243756574265106731153473064676491376752670478211395408100016993325176777241759998188414203195697142197783531080679154986450992167003162515870799156867568042957048057249644778499735175547706810927122510827030192296570582988237239302343668622668176414656714146678951904993243271664008781771335277964350766516414577094964027630159579765349600189731718167571916423020730059494957173871257107553332308844454049133585956730418780523394038953999572641576041669215167944197098802521774052819585830748783185024288741449078695814297168851062215171306591291071614074509615526747135551450261468747003240448550243322823099814306983848382683681220375146449129624737451541684485045109053946992256841339179577896048407936204745948739947024161185596801671515806302359722068874212579908809504848403105220483107642359469495028859931934500335898457067260311510372419822973887753482728079026336111829314707826416851685316632941590429140287096877160792712804045558915479896870350567952839267512676379026156928378503609926108923723453637747288891668755705599238062709633706710282212071394933343629554626850832070923811373453231319844103229354275651131156444010345834373973520945380980267948647054023834728443171623682740883605395148394189319817404197897341798266892336349495579649318836904432531839691208662575813386430866308693747139695512002432532427234038230058561202909402202811114636465103968663975050809668894928919133434069144661763144400266820617425041403642035326071594090919819803442939293687868738670124098711806419431735346287449229553919291851165740338778621712888934889597830605910251510126047111098143451557993313775608335461690128474724300577711270835964574674081539158080262655321591863520057407459251537196623394305623884627202585860345300251564424503838119848031668492338060892261208879206479284037007561891589614125400633748480523485749055148953618478977952232144705395669042337919331999056981874949849748631539669184720068893461555641848978815603034051658838114291416707788259265935977586367330012624430668043152122327237904032831245174935163404766281864561965731560924719090180392149852995128651427698473935840714816347505969984224517608450409545571472578859852667754247103325725364680237903871126026598561458905795803148490675484425980379901783922752386337413259000144713830538060927364736490343329010432973602662164824466026434433597373547902312028796751397480332028110303673026853402818902593179893964476052992656674378171851417068150636081560574053408376125495372337703766158389446432753073933074546228245488044077922856989694179559623879254674610331784894766702415869706035240540294372753279708049433006334278426834743607602800844382694149603525131307782856353760034389711092814916241688586227720622902847539932150956612536439380282127794636927286226650597441165582696341728696543169314378426693651505267199770993923049630820696788671426486840547060914100609169503236803709943074945068216355049063918269883410117932748349354697071477730000544036306521621248124182831100073645944353004098263944077879141656051785811054980582069056274294357643706598103111189904099118793071523239467503641433534193529290093533087467815591288019435569273772939991881373070179160791760676554204297923374656264254112998725650124212254238097685586605983709363334316471859548158637069223160194725511541591751653358242279413972059206948953224177577874522532334171805382266694683500598006728211112172764010837569575143786281595946971061735980258667788918868092407163229025611272667793849166405998125949305215671825880336431385125569106847707876841002560008819438401479055997064632662493317120568568056817875759042611266100734422614286290854967529698997776109099313013885254760486320131672800606238780259857938491225587206684559926877349532568136930242445245509813935023873777789588917723291587520003419411921926224167439557021802306344069309423211643469320833087682565934809340847487017736967240602124772231327499740591036963080901204126922610758140389133083228620879555926839386881941406742126590795522384800459679413541656411634877666355405181471421437510535853568976720822282550331910318507257282356760137653860830204364494607227685185194811979031918387562458113751669016135955697748115421735048476380044009879042488289787710742037582960714808081024386269665931291402072865812938671445993005492024352867910349086308051117703554217805538608876467334239843516054617831805960647908088857282060121585402072592082097699210070454210168169155013851978106278903804174382426006750617188686562087917708009963274264197943183155790706849734556256307069762132403927661733323071853719602853860050539024935711291504191841940000282054327921281594044267136936548613638556628274614969908033362331286151134775372656696948917768285380096865416977449663123286607626381644158679281597439907783229507532332563650037131203668430335725135812552621659122521865960969744423062045645286522845538806948522920781291943577577077018274084300967218269707807002630253294080376564301180296923453140563404760006047267973457462534484065260318040516439167150223957718218521922643249237957049446509984781695000407528473155822500774994254699692665799271118239337882919333333949843864593174515186159300465636237075508919482984118159204961492487107938837734743507693268078241083368291248043837572811843454557992219228957318347020370183412026230989721058598892195769181548283336858135799951473132678908350600081006503397786939987521214976738954518509633977774874630148260161963694418824448757675690032219973080304561144765682858769743983837021273370131948766500709790706591998927391357326329729104665807992093558015013948233662215002014403376514841416441462456226699495034366963206120741485634421471624246821744877074833460055633565723575055524819551499414523359316950982243468835945839484017555048059849318035847573918855462463120531628758249882295362917584972157809944840271159556692185442978769195506293985047396451191140327870425865194766421029887156030645117018672752340577773716179286971558591853564159306683754383477467133926763212342009606912988676343952891567125266000937092080572447763706324781994753361993326506304450461540634603459224055045905454417971154579178558031772502753306981345336820646294877116492557831029614137905289956905318135761003799102450246314277378102052071251754737127611060237740733953691733998733602186492769399477326358342009806671670919232828078210483421544599635302154739454695438384661923720280035371590207830749951068694055734003908714599649441954557383048216155199183810132540507709889034047133052864256435073882221653928481693401071916037883456932525889138268569106978611794713064521214039412682733352117003564022745017662560129369148142007326380422208071476158537098113708608521733289692623084320738205034329658203577527039283811932538572716368155242799848770814129011974523907918106896081199537057189663448292395391697503786410057676824572675377520785413386088816940552432519499922857788034609445691045204250479351253819304955738370870137508687628478143930978081913497956843130423730772717736591768138190278640621686688543680435156064012605712300280986921164026309529755528367610833606306381523212436537997675412158311636457459456587707518946192800291550916508206645755570796091080615875880892965359934594330647548533524992824158686554146168005755834178010526412716703800769952715879258686100799721211329352085493293637670870979906745483228673230391217395127416141303058317088801338354284004043766610320299074457098802209420778002807012183496165934573282667289311007347508823691733380287387106387789505443142188494420043561069237289361798899130352553965894630278007131729816003960293260701313392651996044783159373536210566108961195385442457455958851360848466683386234394951308573159735104209687050867651663887738879912104883510495129457539439318888928516423492722621132818725034419406145922257183183571315130211504312221330074440956027865150177890513004328656469583510965548137470278874611210010782967098765153576187762050303865735500331832286141282025560921875574681758839120711871942536657876447996656708029350566854445364336780543920157344870760615390747722158967347000596400870779337422325250586531700976433526696288697569554422734956111955192454552706948401495708738435196930153235884797587992685296442131643639156267049260608140917799978428943579104085406755031310807765742291088247696394776765260497159231148454475207347172874612545350737049773087091679069984521785810523321361082707654927795869307546632349845185916433622925745109920329404737302801435789305126582200989979294324087219875046054514644481095271830025560781731036493595905952173947682346822707571660340898047752701689932291202498162823648580617174105124841521307176561401899447064090000433435141949042182920956935186644006171840659957920543333862217926415367528970503908677545820317552020017531957617454754937298172438095247791934562715964101010854154001990300207769992895481556037981775898122506385176423254415976676233507070354516223958971542917307286136635547677101016562767000261230850342533370379823635434463126411316641052318688133320510737456412780160907822605873790833584409472365184893731984480644002362203229967245255232425453123444073601839498609111341545296336129365760509134598921362960458357353791864798562939374958481549551445521392717749625783816330903033868778187118485240389424053004771842114470172800581078042763405778188173005029493769287034041877276569693163289144207178780149057167014338428625871016080466812321702859034865731418739194025744614331535689376126822601937131523693929351115081447430791651897840657310909397223914452698538372502081300432466761347470794415909749050098769858964338475134945181418483902006802905388858289712770983950589050161744657477235307162395952511678977322112209232740375694608170340305990720238063394399527931127932415866951825290625920669523138339055727170132579208057859565024847512221900883398343393333705507882671849105894802262279993234112611098668796332944736768884251216623151429673828274261561648681270090994424177830092007108882537214416976360432589408705391965056721178188574014044102036172444710904511307018345253810073722986326329004673561335990335485646267333166219586075556476245695545107628274687916591694053919710044027462884820761764495732461428678104985299441408927041317729620005674155609079414901444902226436829472211719825236604839222765230544615179837078704255164572803662385953095092387501965720731819678520891433395316169635893918223809436470875252422529513382992757378532217540184180513741027789909536107043469041418344949336673716414692093921433506399715962557875519128212804350955063621057717384136978747180216516617146893405908652810169283873592157581142816155175540067601827199247860369763337343112200370006360546961640716793512919961156844680002870946590151396647945430203273642120818793953814753570703713070683785162951472835643171378487974960904428709454400091670491988300750456913027515567387242938336522640656366975794251711589261353291149719212301509749992469453963423403094224513928047031562682127946337947581944652404512724179198532481742834884641846331478389085468944724646978346694117146489641125037490529271325207450359498236869351173793503493668412556977442980053538932659642467572303078914176043879414915626125708034575813067069680342403867805857115371305064258620563997690242138527040269052371169774872879873797117779734820383357072957890805710321954100192154517085264095171975291963752154305902818579002745832893462386752887548852660355623604380987760120598536042997571992631165093960192590600398989860774360858461240858405459644482791341820000180575153298997414751478816850452450915347655763359862422250456117709977409035239585082196340282523572870326901536503947663686385910019853314620909173862129327145183393650300592803878163965260276432405068696706203969532316597866608322623348467631928149678078298905318669904103636763543252847742591788222296812799394784658842321735251395943534919619457286243926217605218982498002335951620954337055275903446149494774534805487887260595558613162651581109012006423757769184241774226344891452951703441262587701936166159458888902754414869930192950713689543885625916209125545612628285288401747313475685196216393411661018540079019686452648735506546524030776331798273700287565125438947451188653786291361410242884907640858257553858172771718577422422151637182760535570373933275758048339230919949643059849538141048282758978122919616907110629155198403591791393141668356929894177265994448868396722485076240725945954704891607433166787360433620771307080934288739363517475218418000546601690533835374270587901441735779416020637846892077925876442979922443024288546323899537184208462111929632542997328166499604477656872827251090493060780249562176339874403934338564005629175751783139792932178744762644489979343275737690173667826592180039108793118851266104269718356589204908366467292402649540322344069203923321232472938253082150265748447738034387174793099875484617088464927085064730292088721534863784045287230173614040812907803682083377156464870520522091507927917179962666156572176043655947714038457129135966664130329040474643254678473869639732807734665837970476934604767552892004350561071028344901317927034951234414282075438738236014428806363921542569272725795553438586958219876730999479883545856082182733487212058499328032456407421290046246998944217467511050858210030467317857179641654659045595335623479933546592025148872191120221298288541243288459923541436737197765381239761333843108734296501672233264253902826621740374534514308993490189555270088731482286573071733942006447327612320341192618194729889502440686628245708923465612168668583693284444766921105108173661687223262336767071280545107304372499902716147867870095797990693394681864398302290547834984876456615550115913124044943770956790013891837761459810583549924544553564132110215185318127518602230941704202865469478264638230692256266592888351886907793111449750592850254061138709119408071796916489060039499809258122053782671792883578414584935794941898214923937851350934760167567079464650328512461951864257309924764805221784757105040282408344423668305014073780224066582410185291480099711895735736733529342137669103375821206625937517509565729979444465173997409610423493971261853188315057162169786635001240465356088462121067868317309413150060751229645637826734891784464147552243694406310976778305532832282626900965431234637774119547387492880957862586120286482080846292335816964054825081215622076322208575539822396427984747042911317659116866280660811767287117536722517090601053583237391792323624286776512608885355058537587483893433550636356287573532110180160438686734224193454134884975212873584891719265451021110350266707453785179122302319030855017211335376038095099518853981688511067373859564014460671482456592911553333781810660879358070709276466588389328337476051084960837715258895078087460526097237683011051924194521136239616847939535205450220676763190348243856914363802960527943815692183274689382111947814739425638309060101485427769593343072036068924970392452612350690090177289974802329905032916955715211440514358073813168986846584009681199280563700723410801057151180837826168785158658854749069359424142233922152803239229001137637045838823111930590130030306647989563543186080981725262062607009269978654799778685067040677481890576248068469443902651505770695878668392840066575802894913093885864806367063358417753681430256977132975478002574737587942893170067852745959226151416336537283865999559822189506397142021226623474978238670598082454312485280168843087981069336241073492970243641045926861376785073990194080080877521075244337834469470961986020416958178800395070362182292769807530675970137306109981421833493832296142384694759173467603071772175890568935417377573670919658997735291967929744315005424193210728997817002618025736153554029604451221723752666780749770406255998372913766031256426070078594363799960574870623123912505505252428017843994021519628539512541322007986706758812371111586882771223082342901477326306152295781550141233667258157119683456884804989138711345557898573446345115100528094626145694518701226421125703356603149949988795613475265910309606079158650675355567492294230616063369098969195807614451179782780970186111956799364892706270992902925838195469267997011852771243052320221388975675781264433021657887730070793045470965235455072051304827035081288095078755311537196593618147970648802929435666980271968646692008412865604414633773132652216273749234279368790989240106527875882277206888293753185553166624191699595006758827189450886476133895148777017423543143443412448126962089980534778321791824451924643567337888631503319559476329049329225202335811893542418094830534625987741028206951353243258206014427450166118052484544698030883852273995067009151112989941743322975461504414107701874518055507540624731059815801307612566316802093288984531868910442099913105361094278886970640249237219781059624801935291027220517393890376541016668982141873509374059913147508142536932894612714619949422102180055647859039246320523660019864828845576744146830047934105117478446708697439769456821687745124383696714721523991190456840734134769443136721448137885441403741328800283774158558721880545987732634668195785515081668955851795298181377135523228924418372926205974251717714267014767186713834649647983550033488991598435905337501395809449347055073452811304555769563559060452157001688182409352997807334838732375360319781009148801947394780993364175685727195422260715516480754221533655760571219738101177735755507780636933246231449003683707242840630878705417989172238553715263605571308599778544752141532172211760095691877937374484164166578155724695620228017786951803643908924999491584268433555210878348926129506741246638241528912372532712029679615182349370737638031246642161666503604381433896627758066604173738097384494310725556229874699392907956994183727345459268657540300696370980450132670989109917572349081056967180070953902630093785734748290534585106219939222963521440453435879281951057907877092781539158524651130006850534918400670906636702001556616659343823072902405604998177621076073098049136431033657789721376177559301363165312690845784045893170064055644807257068897086753156685504924062465921527976103440075319292194334363642863724056393184971491984167198350282200616534918418392443282990367704698591949760506313888039171427686384021207351065739523620133984223679330703808018274124499125449478561470762580959739766565877975584506169324859599155776250389698983726765805676534512361984792217029329054052535218869090680771097483133799521438144744078930726345621327484258494439048955392229644134848605065786216488494603477400999243280673225530757805696747187005712048085384274104581230246841023364109473576921712559817965882560181047110078521220101467123930694887153138047664193118506282427487158907220202694935306395609911900543148087411021341551063075555868227788640083247595641608500297601311116892750876791878680317855064471384900668408554741671305145498742935724475025638535459897547678047744347334041070520516336707909490578979595896122834485545011709942476020930650476554426146759857682413028074862752347815930722026664759652068194046821403062896504327511725356815423258233857567801772930355927190505602977101411645328140499726295890267332666361200909250161090145791576055485457648886141831045425935334709816637774561929822513942464687968919469664858141399846385826775937554099143457292641796127317130168334547032859684465784072784573684993828861004202868683783446149426298695304620789261665864420554372114799622603798484759896251226802302642762106489798131011848731222661442377242375219576730442857369674639071208773890588176391024716241523362363245731217630404498787751185436053590730060315350634853704833745169001251459245533899571283892947768638760170120213577353538416903138326149000907479615110748247267952188788190946772969136414528311004999191092036970547408701681443254184476696653385692238288185730655146838819814279968568101246032207872133687016155605025712120813400917930999515757610491198355814507163727780892036522450730016368365052663402735625711638730216087161249282227088498470576042449797806030071169461162834052237544174245193240507121578876263234613100543262262088356259002427469364265472027934914693548986941665678460769453995756543584612574056458994000139165043955102532049097389573199041287524431496158384226028245707226516016833483101310545146372897484643538020182269474317702134659298306595936421299308556825475638005496246961763946986187574653740540819175403624487849740999927473695924448510802909744281563465352389720612294934767348929291184846663940392224996349547044956203896384056117042267706283889381696677121119293072298469929347298347541124108311009273767405496684019069587650754294760277410085560778072964691145299127989888858302738879767319118245557682354014589483815977397911247195101186317773533514065267330014403964843063387582563653983623678585286084084925279981117093330496131034258426634633172004650264144432952501526068750074730495312506736780427631046879806617788812302021474048513123223984277388260839574199977560811382785105714938108776660141562003759199019256600763163070544861686869321277807275914600592815075942812918978540626310427862700437534770917444816763850820796123478331077133192940078718506306310451072302614679257843218272785896169980071677486767486729915374726083468166549384937009037035790996981694741706424033265313946907460448682177469605524681554555111526528771223728151102694289561776354547907919766067468522345212137938810237462265663432183965427385258904509476136679409952753371925079068338271833848068320338437081844249846454788351076822448896217409881823561184737970575329949394543456866231180237820167319656643743611025107756022493252291779649600210987572864771332422798871962929290529932221620319277610658630702850205744827824418983042296592363788628837263292877263445327222094298105298073763247838377529556764353685887574674449788995997066478180550080711089247500649954445944574264796557829281027089484820563203877810162674523150521891230330826373059998088800219517793161747818083608072178899683458969636782780914729995561962076189121342325547266374304941604310214518265083190424194109862446444418174935687018887471275423913595626660674158997359487376960070632522806043286084139873880444542729332673444474170625442974957962697424624122181219626857662312563708265026584650151847527090936063566957403808590364197274019604480528404226574509067111203797402898161062877701518335677611514780287935068030923009321993044059336177989313751464452781967980021391602750066653458904663463654380550712864781895439614361499043374189768367145495977725728415812370637495111600447492564198451116719584428981335568909142907495341134867342825726422308596894304036279902958682236138945074428380388396507436003388911315857604581547688147547426314852218363680783968419318788278071947845248683943469444914178518497186521576288786003198782441715595208276289245405480923998870044492922947274151909961180081849227028863859212281201917826997807673343750151668533846461081756731748426180435107640832877737144608021962532047938880954774883906316782556300497892170322793314325054851389402251573895715885401899438545628416091353469512758462929373099963758950543145750224423310404355145398341066295045554617480822059572296560094022959288815843912779496464232247923712827511924518823621608904775459851678971871219711327121398078290012212527174948028405939878677292749765567527708168784004343659103288154386065759789393491010712171351985201989494667599508709935437647320238712208767565351882653226429019643987134372567595965689175828788775521750299060570104903908234482664470779547236467563735889777066410878569005248794095093270115564233056197598876578497577609821408516982524664445017337527509842988636105695009816496958208767663580403678346794161271417250007867825702697811107580942490060562329681503155723527588789380127184462801617191739706066482915825114676789468705608550292457643772455558144167634679343495884572641424841123978407654341705897666288080193657760659622678143944465034103467625196262229204796308570921264258142275175959717747375855873600509249161452267242780431951264877274045468862568796718616321299066231842492544456596817034520550922867532168566943025255135096737326657487870529638207667123618270892323987323490094530718285072128980577196595451805867697632679521957654607536017512835424599672302461789031271018434012879881137294677008628804052016973755155607499626328690276113498587331399930545926962936494327532163724305771761528995031562984038933588027389831434291624249539623947551577478920661068819358630148006975445352621878960065302001295213447710009334374104174321462943839160650450594326120520342449203613196577454370557000164478886242799105812900902404241591241507053399101164603957028734873933573866285461842980173507165443337977165065379487157462314845085881812199185895170215111458846636038104606894427777443508705501192665330868768574089588892095900295342838593230445820217906342437348675079521154922604753084606403275834275013862750448099574613670616237545654719317998592671010395155327838980785951701016644554131341212787181389718398408535327242332987226216635335141617624815759814918914773349147058758438723677552234986525381406107915228151985347316358107665173933013835583577653200972680761600095406957378510024626996057590132083507144470654927776334320723735068453669392239945692538984889201180497116966026642956898557233704191702800840904321853133925968666818165803219738417432179847791048373192121930376461341885177979269010978282485030413628652344665976224019589202108332721155942313580933431810132669545362314810573686851405789968957721217904145424418480576869355016820801244606109215386482482054981876660848062596244538309652640794427847234806804445339651829970610814444733327799814523119042392553357694423904748025286613607055905964900041561661211121728176526793308526641491232044079933275300284654935947005562739053602588474067691585006120930369891059378205923560042383493724193652440068728812221646802778582058980484425148078061293802298460173359232558554692910751874141342960862986501272564665685629938053447762874363171617931349654913582310182895699804071047699417135502102387219861453405929439718906476008833298510563126347830255043881299835445441278075395832063100622183734365897103214609636143094637723522762615474241647736844771180154424841517142175801114223637178956868205265556841967990289918020378485603245198600386245460860830012974594759740452166332534074287940490918919868109108487229227216142729827863288478998695998768490496311319343376540613461683863795302151362745375189853652056390028895891548085146359830458893663111393807771620184340654859141887667810094067823980131190121246891952556462821590511069745954156657222672668134500784231736511730022611683322046952895252921328942096789146208155377360875642332479693511128408736734645740604522246536863027504062315038348837152752701031529622571286343241766177207085933475766039868619248795263485647253304709253919535239611422245633720743578168725751444432559859590524040599718616009194447380840915874102103440733522619733323121512632479818304179446550586069530792806366795108098935756360770209515009407272673767686860896561685331196781636482727623790406496602368238635323361611231436846930367412770235628697113876095828859419083548296684435323857096391139182023424319837115411524196504752173595485002156858916872758409661518031187572374105781369487814354070188760155868302000229637912439230843781578709775886008193247749760617246956981537421638767438035531859271507083517924013857412338735394305200733850500663978438047460905914106824116492928915868862987121891046740173638492691048076589538527988442547185263938632024153499428521568363607199461833188244062248562617820477523786933579752561669557124718680380181265595686696960250126155005245461872463002356193427273771578704927870073441403017883623495632937625442741270655249284368296940218355681408360720127541621869832735192888413005721749758327075940774799755521772757150417609560545674249338733598437581154266540049846521082844754433300015181384060578517903926740616797176142722912439987082415251451980949377946341510177495472488518786348072523349543290981591162668352428145291670192452615332235184303892989442841051440656411316426451385322905983846934525095027730264083401570465936554920071707815844845389611174062826180817327615020841188297882211337782181102097201653679278853054364476225437937681385052483500666968943945287285551476700957737869944337051900036410650342363269862386175238989782296112514819953276449903316843830992942841681379046131403944570629639480239325052805911085679328900589128790845081241905408016705707159892300405540542632681100038783712867098689060702552707947379909816718408900264968000022397790873912962827442968143912207408917439128918631142242335406137007520083524354516811052331123682882696690853993723458884350898940659743266693488717700448676240901244183740554767928798792750769020150255572564850448757930386923136750084055819010003709730675188703075062772835134403259316700993735221264009626753525113895748720548862856422677172375831464611204531325406631293659894594861805816018627351589850557475432166340426575131819703995595669110626220863375329141876232770559186351315754101278379564210514402851900566080427607615789079188813538672474305186803205814651113944315967567050029869652768095020464733521875729328150892163549684418587111483420229173146392391779294117543649166908709608819626796652765336609645918005083682238427817191062176226570023549318575077941533506560655647442018723417623214545946520967281891408157389192890411847135431183035790720958415923375504361065081428989506869334334415933005114770869307877636649870622413262984055646190717053129388173599594521446270729397002667319858985010913272579764470053255861483933053422177121543976763964570236648118587489985792699289221846774781974317436862874020134073051707793385379157832132481553126699273014048277142512243646144583468874723014499786645142849683550395852223371384206361358056973026668156612684481515706553239424813673074766143939705648030143268914478645767060516026099457807771520539543188489308030377731103026647876911593297106428756659477261779798987570865572536576365115691375321110870675131481405791864827537176519843936258748214693967771855555819851435982930658371545773414996430263046736065497677939129011007423716022099935260861405963766092134833812954240524886816375277261248969768215173436887893195070475658940283085481224433473858530043269722694422440981248452464215139959387993844099730351767611711431279881844697524281856505507194835354684236534711660459437001092693081861313854262810155334803854408191802850996404977032198030201211342141616305282536283060332945497913626930955479493534463214971189467706999921249891316341887982064993892520887181486760288584275036265777186428231948197516106463980938583435600725862604207151011195610800512103629538454480133052015903768820460053826727263244649370800554577107633981464501444622160703177684622126081389286964134403346428150500577857193515334361900238670537830432383148460647127577189697837364043639610036405095800703058681975089912738719357930138913731321778021566055280394418170894221219593128372739200580050011264988890605317125290597997984838530944915575924671088135666084083908178652443501620947012346377680815914190334841978767741868491270038911573493875454823695198954267450504096154569907690783016987432002653649828391522251150682127675948832191613201083502745042345405821472541980010544395916982599722051136952710301373768726874105847491776302987366354768697557202464758672417945467049004979288856019786244014516911463448502737976675489262220790885793699662396920146655685854959713413991443843971646646196113262113192451048624208938545625333342866038935891071475225598272878525062051715679633157094891482795105368352961355938652018040898489680000417118424602007428213784122727337536323482707881330362969773612759318828886610060494098643185127646402911532588662350230693739461704945676416893096020378588943171857600921865403823849507676726846743279485821228372248560945651243902878811501027494273943498747926213492328874412082477160647241697720554515258625595887381593492207998362590687829218845991522324422149402016606692038826615389185411159488820655806095713893342121590115908439850612594142463953918145601848632850179140926827693835423041724497197526132131894482877645772294453294780092979652071215659500208612541013102642914344995606041932633782517421717991691033211919591788509637925845804543027520291970506676694237104756279073393716250548591126436359724451103721911751024715124640165680529580350592141821336882126972541960428142253066193464818132549801293860091660964140344863730836012848998760634853164313443571270785192613856195798843487181094912853352054149108689528340981903956931881146837855325200749688148630502290999993803218659896867312744739653487222070793508304885506965789965454237229017316190238598510499071447431571162274973583794895520028811682499542569791753135702005806535162682346599459538099742514234536068256765533835971531024908504035519039977231237710951972805959945336561774453265994917500174966772040122327933963724066949566768668920341607426722921227101044175846753104241230418304551272555690371445637975465533906524610914765981406894328096902096931026645482747210197539416890251283822110618934708020829825445789427329069401692144237273620527292236969118325790525966719865770067788538382586099365557948945527779038533558469981466311905939829800950313332665950821234635578494810723358479515228885198169311174984702098259874416075995559880414831946404482779187300781871282969817876696181800037278912907961286009594380026260993290095688988461645976254660156871104545855380727525206590377347776425608215340707904347946825857177162318093532452359500986044430455716220537681757573944095048819779464669871123226893126985443401151132932118849402405711020884211711435447344866133733542457861783373020500780467070749010988028208565427362390062450879394403808552253085270204734453999296470809523511937544538646092906194105638512310967392857337398082081559449975187246148318183311262154883668683700154842149488929887935116765772872889954090174014803906026424280938708756737576737972884062411167499885726003031101762888410167914026105582427927874382898429622151934660037188694338911097386748718078606201364226167369075394473275195652122109735253508520042082246431125657507794244789610928004656212671151305260922403764469521173092983011694292692783740654440933950775954514037959872686296063106830692948941806816375787264777744836642440337963304603931831535519977974241904839640870209672213556106153310401549294008009492958375423330320011174485903324605447945611126015532724324213164925381606334380021684997072619342617825607729233236622630016624009477112528255272483089098718975238875513290645901922464208749178806353583029428727414814309294085997470819930802678589016080871755402542730882938397125085926154215423355919094060767073523507699940820287326363238885336376299978698697895361301922842574198091303010667800330662950383137300908097349114679737649172599162931299014920809410427106263638247207078338695070015029655057283479908358609536935128545550284050516660841671362733248662662528131390695917126991380102233204676726056280250238700182115704340037879250861294505935596648577491358585203703977009491406111958241955294522546053306317037429909310411102137559881866498655883495646017359023291594694072248515958874627855440418611055847477213802662792176278249301323644702841432042456066243324818625372320723526904922170072107286584192469245289590978998920735418867524915950563565340964479164856965271945637401805146062289746055619457480924176229822146238587277729893925802407015547915333120409991868001848232945616400489114776814424354750897988973082936403129834346825834528424438812215735087634160742638125296053158858212752392334674027470549587956166589319056344408451765594235099241490660090750125548047775964607399313001920497913865896321296701478820844577112465201333228279653293195623733706810294534409739546226652009865550622562873038252661376166831604247179906623582596495493756453552757235479024587174847286173451095947708215945869167500921745225014257518142981631982507490282141297860312849807308484485260630929632725826300634774403769355842988478886744621331937019264216636090168411833171363137660631102403846041336101089217834621358027224676716735831931780156216018704183925345086600881179776107983322434701094016224035028635840864993418191260863354767120572368733129371322227453723347603165205171139787538024781409614815189949574281119786529624976253170956122747492697979150842910144869510206533973946652229003927210914762115975835629008471731254429473373202233585631957252335915749173623776254343761554351402069650907803973020218760392455066822629733948781334783639016544161643822641929641486838750411522637039811111242029449973052605115335402211250766958915650071599199389948772118455243097397198145674255895165346428253486128092776168591923116240996420125444855005333991727834160859443339687841770064969327649163896300542583819248000442122264948523216943722000992430209064807443335803532755519480404665551679994656694879825365546133818227406988781338240529873773445622958890866050191984591291587483831836450619121208243479377431152915322568757310338518985403514056903355321471434483699339990715787434862306364648829588695215497736880509211331262921538743853641304285746650623093702608545853666883728888918261288606490465568722534009406505854533667710747539905370251868819616639532599336466907757358857687784655730269470764328366886211718970320531133442025290105726178892252111941823950899679680674542782195169633928363677667267642371644192757572026431483701952293417081986874087268772676036271890896057656327721258231951972766388606931339196517705032600563516849219404472364334605732368922960402501289678571527174711826491488420365587479937365262513449627120433729223706502126298562508535009333809144211012926519264100765124451680943855799016950911726224557293348918038117137530596163301973532181112326356305316027679020715974306792894172989612781166576072548289030171473577193496531255486380079809850671889072440762151140635767400991725216078469518615672929825806190106749130828178315515601246279034739708149259362846395546378714977133810958974941886648722889930123020026129488904804420476216844585541966035607613326286312633793737485886667036672898742168857671364792079056937279952191174876519684650536518589925250818388248440367604997683198339054262059860364038718345585933665871045802356631170149182959035606553517858990094371257052645822753477932937926177309616682385460748034828225221403788920425968796563702076087844623504529996383772387894938845755112759193897366656015771750277853460279064310178687622278738306074341791599442665295647844968108214022353765828964293719240031479071859026425879518638267294032870125960332872668678137992894757885943457358327724743376803741054014969925612406325281602494843343282574563657389528277648654456261330399384588005993789333078002536056430252827419830276580328409032088551676511941215226520288855192096511906744298909160795420432135654233535841898677614545277383648858238558301184034941017122055536857097657255542825550531065244550951589782571828716711737252191285496347143041715265556996745315538387574574589606533591172797247624253460141495707598200833231128436892247176850238941529752274220363636080971882796947200894202987109178337797617479827981359353689458670354104136186198049586701922199442612329808244757774006099557366086804230809536394367370083124763006723224900730005113639966182674609384026541417959652990824331094839544236940854234931127183242265945540693496589084377768945996303966102810827180473160855284132610542815872782841168969745451432323410608072013171030815781121606519038556839779689085094636302426901522535717140756164428723238533923946142542418872682053945494529333359841532935722114637701529727839241568071430509088834188828560638915402651367250147739269493841583452688614839754967145989577803010080265870351525049681967611754197827782356811093594514712488663071267817410323369991154435927045285481370341790546876034618232810532639129659778997524100331949667086689461812222962596913133377049814684222769632677590519406254755960017930773682846935557582004781908422903188236868764465631850957400431041694652387893668540925921589630424135693778049294425502273844198662073757208680438801816469170768425403745335712364723188266447240967666494836716384140333173567704787349527868229240771428643094776900493684891976509229259480935152930009493657948397726793283045923016743286354147420380254495286141586505170573270860458617804507935053503759035380599381327874369161537529765880017919439440404348709571937116776163509152787459946416808754372301863094365268020863174556143969088641222313040383499824608778890912797168173875084231204883056454054170474790330860119020737220346234779394186474707709245397743021003084309293812566386756186605579529904895609669070665142452556143187578490828813390303649613708942492654534931540914106455762182662743184989692774953119142436615288588799777198719632875275521829952726219055462515484420109710896269069416918210021216519557702632738370624236485442381580968341750343396257819695977224533322637376530745825114444258475392814811319989111183635483888029113243818049586162738594720388105765336664831254754708216700347091840253876492838198886146713133500016159906079526790320203737213578832812573134075778756520841212529439549427461928581071921824741291522605997281262391427818427261851168374977872891738559319803821714713323888772116893631829672151136168999441825963459125022406167478717674329752128991760156344041478368668380097494850985383422057224061282638838362046721745605009769940383468786703113648356792570785828609392377191037036229139385644397576708028211397215276834358996619372528140805899123552775013392217583017519705409427802056487733623456932131284003459237028284648726583971060566149433954761819512824226653352675972344930077913849099265831762822150809975053481801442590740943263128324197317447286082084759360781393200916785258702179473129211300248354401248032093749769878799198462926723703858881059579010108587564514529671112919954858465985684937622750510944568926176885909528886264576590710097048783931250731411789020336743116924136086993712317064148972161860224375514050578821128566818016300926352810733366616902232266680411968695049592168750593552366015953061398312982230647790736906304150349801357170960035378190739399290917561495480123377830764384996992645323281184369664039556895422076646898520457909451390526027318605787076304131768565244023523103483371511552230567124500171774035436081899555562628601412145603174181471805599838317660824368094755860600409107642883946410496212144454682989794112791470776833767163657035840241486892546888929284512963811161234429660361561163103017663695309478299253742569861260119390759767956564637090589082774059386208410888047277516027856082754953626444296394162149733285989432640679421659228750277006515112896120463762601588766161737359435236829807465016561804776225873342159618483489789891836796643858181747998596512934153233368784779133616684736371607769052924982676822549152278825729137085770773867504114924621188171832134339310983871775869978229449155616898791654408727488493122566879104549870582496824075260789709238286751222682761575263569036107006127624028691352809210648563859896744431662572810559879266690984546343282377788849806880664344308433673006443919456791761752815018379826041819734415029657892314148102232478101009794280422475156445338250846470908265914003476254685437158557532336716962960347776536516234797818458014569772390336077910077294776556811037622289689130300751251340938337590805047152875581991013555746790977027010433546063689443503422341133378225447013364361976398526978831669772966098053834876105646357129134570124884228537055378971460207799799234048705161813815302561343031022386843843736597669778287967209083704839699505620777038477071820093273347861381475536463278079480462927809744371486104711065171448113212899187527647559958246821398717569735649253653243446104217058441748908444287145279237485520758926014540720298526796546312767225914801605719705704703642575833210305964609574323650361494557255417406245039991982828597129512008526029566095100662996502473408498825997388865673326019251165728798938610759224929305117060710349908686229600272424673399819272316538044048572154544720546142076055464635648732078824126880276193817124958056150070713693469326987638433469870667716649461258521767104394350047009836619689595476377022154705862927481203033240019747684929025112266107850428802072735513748897371522068776505662261609869185587572181981398675796447505644165870457991916846289883073458425090692752397786038408320450641913029342980502525259625694287732674121412000386993763635043242994720872589693596162811306775523496962716256233673369404212924419162431072853462386064112605028561738867282479393167015663071146317926227631810450430952796665848234709623336733526144147419779220604991717107772095933149379689408420708848419069827929358813552534313560123100761117745183973816982422040478219630795498449947762810694023628064811594117258189954769409011199230361603928194119723958810008459453418489551483713240016487920558887292815091686489291614278243799850992845081448512300583268958984556007601152935373369991174163226195084996484333593360151350687383458199828439314492173867846057919632045421634170021858951767043882967699935804493517656020937924576048521680549701788033867688367588558629954822249348347084221477836656295662381189965909247160329852276871573108201256192589188212849328828946363502163880613969311189315218609627079502701053541292530219259674795772032002647357752852689375239312135965126376957883121180501347247508067286563751795629927895524806944806819937148169443992640232689767075865142632895331272228876542675613876309383353862240668594129722737667302899956888434635004497722622974158934595787858678852751741398675418745474521388574329323129388847600150558735346418688676370325241631362365507987065975836684798884933807080288905378160558452768799067449980230501400298958497435987866327006808283592298833729760839849888479814642124087534703383441041082064933281393836898141885374406847519517631949552430482409583082210636518766943946113474756183666579870729262529357867603339028767218662538248105889084898521457162229252869903809576392703899705590896460415029499586453690152988571611316311368062246662096295427083126909001881644096476954707327253948929972115401841252725221095020283018716785907153751281576758201432423453279397100966842924286362399694255337247365481363497399299114357084136270119044809945555669663171674069322813366017962009747106728870731044857923330144882034582535711026767098365695043802416121740226873709412426421649360228607956347232477471481786003980465719892922547620787953186070948406646369435693739021009156457105229114356074276898538852519887679719997312223036423289027905270329112004749080625645496289019354180140863153927011430213091987499619652482732499387529639459865273122278195728252116841834481273868439863587836766206493997812838768874330286379659277543607491212914507701991551097236940144167571298626151458966803172847309350849412652558455394037774521873248515710744460551645849786164723393888413562114190033590281273006605319967784854766301489171362728766640411722664428437743562781194046701224360065103374481858347277912406649352319912456663656814185476322511991712172631320355452743294189008323248801603487310603933850335601471770646948164115049709290352079483669332452801638340773242237704918918574693794665055088311600764672873908696859667752708272696437424886176167372099520557135717553407497995057793169432385138130951182007378428295968710234962622830413510398592178417096674200902759887777432239625290206603245453277857734345299961004205753605550712443585959340294231697750698297130540726540680622568562063747094703418364787472473068280591941316766620651849751316296846130413902009878103418377808181505790376835918140841340465382731079427235986080967183787589108198939810707792343508868447391032562852517297900623178153078732075362557670061956472526676767053806348037744714689461662303446821268471394230294032147025801985301846047259977293933790358737731885105724230446110611291682557365166257313584984807852751926454737606617670772736904011155103614059791904336121595906783693356841437359827998289979726648708756978946592066157981368358385999073779936648050299029202988522677409028132022419796191841478972354043671680188566020563175745367917092834428176372468267760229479422703788102287141072848758414277548618821338552605833865192913335044334570002173343785543412426644128904487552412154751889301829489958374303959342837754237015778171840862309785806262253904794335308977610712099253908765515446162926266994599978195135740165523660240565434267685784742675100173276956163629773954133482691182748904883881793702736056967726876934493753986192164347850921674989252638569442312155014482262976728560552777237056680917648190668189326261328875146662968877560003483166442780977032464581641101058962525500341867791663231558795691989705011521957928093016438384361529881691841307167995572566108196236796045230602311079816633862427769988512395754309665335626529523309446700730851651173204943274605445577696182290400328656058026730846918439264829967198848408958314510199365245057565017551544165929971684740635593066542166527590398189276182960432047892619338051092743267930405356357491326524611441100502261964565631860282588341802863326064351956237495058058131868767787098407261657475305828170977116300410709312672030984208537509392863518784219806936765173197627146944380956995969130151564739600522553474736387828594712897077349834879823762083501358219623280490670139382318355320422540530088210343130135378601874137977598607511889646758310274040786395773850542997252443942879248020986847132831161670678936472041013415256328331039370446486407543923523043977132067524579239813282291722234667320922989013972314539301160554491832405399455575162974995376917289640314896587963064651314805147610202688657429559089248045214521174018604802312826096012642037049520761238102940014956447951900286788941365579577427180511000461410955253404538278153746344329015832568678923581549373218577410935056124130371299809504219056173097260738088275692454360124230442454665415808860729306702503828850994455987593695952590120453280816134882658556318901924379146524345867008281833597451734710793255190841714949084072016856277539682828866335428934142216665204519484463024375745088101874228488112080334927518408207450037143091168970767633155163061744036077756760052506669028938458684906082394293505141106655691588603982793030001375629741192908754573830393301662779901147866363627091254754304713032200112067109024104263986895203363389368632130408240679760363234119109815312894809285578200584030861968041373459777725698897826595353924434776198305908132118789981392234275406539272335930562232997079439721939121379582137735862548134166980890439385361917561403407416765011190105074159148653010522028304116965104257308022029941186404810158268877753783099509866414583806211241649348748368439771642885235845588013221084988665323480441686130734150414141745936743334711424121813561040652217875795699325018879488644712345634053134417411814105359723172326139754482698158450841977837211516625770441020525184247656640101590300440922793385376782142629988917717556074590518576239696228382631630284310499000320929971267466313845093446015269835428405550018783285302037356527437634734821486799781880381117397468846402766014513087954218828276704310443913783516606703016684140861250127631765088995000381549170060345738840914350855773220276721634149541927166187548972789293654242836923068256602632562510327028067386496561432986766064739135409126309161249641105024322409427612856261178400771297402389005733676108862246277351686268496119529187797137301253522037623514283705823554379812665259351825073740678719054728415089543880195952090759638035564178493398832241576972010910466172740172221672176498872094920483265259612839498923957327679995912632030409060730778336538681686700392964935237862004620936914920799063036195855738726394517877741517683899182920638695350886802322158624353114094147492985402947196669169338934428313919886483010107175256929657492799690394286728329571664561686891766685483987995781921683663137670876474878850621018160828331188818301185073220153058628972335283955871407006888391919427146268193770157768518288916278816317574948908649989727355572889459697495318542624879981034850443214827885810235361128977093149310208517179018482927640031234131222917174068975958571333065861944136632512098125528174423668257359823014305422956510461920693321304596686675136039769923486856468043260534291077519676086586239465840086979295739618698103703058330450430866936829433813890287434726334793896476376380586591690506697708132289173455904899811756956295808068660046055628692576133330560873471903971205869741955987409025948782284987473071313619257614210810319397346426251100337062833312492259867089552611056195599478377360295559437744356250421221145979675672659443435296460344382517253056163591588411340859696824969737708582425017245169475933438859223697932678050781627550630361773642795318021166094820930866186673508702827785042197196291848683430907745516780783766171332825298537400783369173112614400920746831656912649049020529329550203719878457830037296188650110098534379714552282642848250544593226377086952063902633614614300373919361701061188844843294762466295579440847349797432514125735862610016594823970408601741246118982053692977712619266481950386986017989745771011462161456958225974514149587347057867849515099739967935295521714046297539831017257670382904851303150850037629085004410987185841072472351620346285962510259068938168643419672160685742651954590588937188124972469085770472708469941829813904209407458792209285816580148768043213791691733059592441878891195049558039112650050291091460931602147882621820637592779257678880896691885643398587535660193480969779321814510788730965881051076137593162427473722758650710755296771201915936666642845224493122656731998902250070880463901756912772855633808166261515891354214368437921279500355084688099525232952570313010024747489942088877525969991361272032853230451816773466064085024081294018641678323447766190771731672275155881472606952182296838764148139698676598387686039942856608261197379274829694003464100284105072042580413791149311886807008489366224425613519144155036622090531469703308733954340179886628750739790368704857920758784604718472422429418284202686181934398073253123908695710292598774013327632247400796365501056540713055283433946404487867241375203665511934674641889766893892410709529297335933622088195381445489195933781701587970883278646247791893138331227897683309551186320695180219080475750940059943017957719775458662331496253417777666877921471055442894554324050588398613534269025567742940126704488963184110881540275432395884095605206806892392195831749288590926601226573610070619281522370334788630795920888132795948834557351590873936488517374329431645789896780791248779790067533193543174517746681869308781932317629709810790109691627240235138288550392979231950518380825409287981683040642805370220431525004409141172015378254073732104979411060069629580830774912189992991775758822921612424497723398990049936139674705719337498581363212125297424737386607530063795926497905800659255909362165896134321922867560930957893181561364913355412602183934880222570003773003520982322888742566581834576404014303223689869475080978270227034396950021093903170282143603295992739445037196794913588690916298163565882062744762421722017572851061531078776605210500460581492870076501099047696251299626289821685861842250044130919639934930813033136813838858935018480503653102413934867521061378141146017799310965123039384158618925316126535445649693210679045855211498091043585395852142164795224357093715713739674786862125737845670057955163108368284858114965789146244425897148389175495056663950781973027512742107074483999842292366061442781922206911330108806094444818527712868140505299910001653100399442179724215311714193951456195260075409606079762353035228355992765625799084712440840847019903418517497113728781853511558809328859143621547759376607995630947371326035194061344480748780555302701951860449000652200350918928517024928450505430762534853522296513072859344196553626259353362277559737399100239101940748143915990151862411465808670356534306646229614817601876442796861564871259312409449529286720812002599795133950800155172599377305493256392994170318497972263009029594283231193294431724511747476545526004995644619044675169668127301603849041222807741372937944262819469842633981396337758011460292976845004995089952070638140212698882714442823355805360644140645611603095686151534598861597716532649556131708812326002931950472997931484800484228494440280694862452296686210913349552882028194424492620187676373023607548598162816596607729677448543554545381916333827886906683094549543317182813423146841667057943986776563750517337960221508855037927339798630832257928690206821539299582690718641303941776437692144747476347302406190592348554330011382653252395903735991075094914350166442754519528679107377274732471770749865065074410293497695789321534156182809550934980206691751729670615919491701267355419096293584539521944280038618705167739344334207980494274644114807424886708210870432324411545452929115735901439219764924358007643378975379898982644695880604979045846257319972432977675237539573722251344195751466780963469453167724696020681109169355937579922194810019165755320544675952284793940353144030310734652280892688778010430197170561673816212106693831813842953011795350601777482125909399966980799496050475700084916631466546452593003927598843305619160886907075998082087740106153892112143446366821847574464626917327826826890488714979794341768007852570430179488623954298314405871960294950897281746746250994261761323553165260592512802290895170444380514269145614191404376799541372357597923685472103939457435479533244162294208241996110424903572772975446215467235795652550163114120264134251106464872694344525872290802350452224106098186980957487712847561852160813746879563842224371144295536625590177871743679114934575911787107104148038949665238210126721667562056688053945378043813207364272337807044326632788596404813730287759899854777943722891896005578445937415029101941867225189615155718147473433773338290897958600310001700476119599694836122167013988647047984515455086299286966017037890400253274246657210910694096498366641816471039473039690430395174375360080493079518072782390285786157628333021603932640468043333798763307913762025797203307697351762119004330513372862184457411603154921619148396010120416449978417377734175511911344233087531567364450059264807463979190528524361912370362942292913201853567083748585417954033607852110603266562272207425057754884856130160466396746987351461466481844504163084426019126532984982122067420063952286630841726404331668869429069943686017548154941533523125062566545546467124223431645251199660039396828700384929279140125357900524242431223836401943168167487971122613009949802952819296243287729036607797299124983964855748770206610461276987541393657395160037919488401458585870141049754487340589087614379076782177706871401493151327017539080695075687975284675241918545397988701405910461872333346505002773333341427052111907973405894264898926469203322218684527522756750708791710034374669644665398199334475448706066181291553758551822390678577956044213158355975978058923322927704772426030982817105247122926265553731377607106037786574297768553159655771474285770292172203329942151196092547744438630692316752710090507718002528421181858902077595766556248856503068461278532270737747647105084731476576973552239597699780516600885642250082388693872630409065489751046690031850174780133177704165687536683379444572949752076492657939486893325515331258367279602558253795875002657823676144771583606061141200304662917107098688678073512294188008375767166606271544662229585480164151289301029916984773375036237123805316740321006560880178816339250385532702182323140157828734134925941228168642841557367569352389201715001820505784968377917792274385472401174488640726553106222829860663327931281891255660449046118636523259577079059569384979741904150437597324243261374054459332064534560440783815186671523617478830002189095090746103736785066313577522997594482400157195216191973377915341799511188637410352782278302579894162071955739739477075664423950698180362326727112287079675754156030928991457650961321031152859817599228924324917627838235734957627575529508536536738112915269510455230709223602282506242554854266396855760017035809551106785258210278969849245515633632699492415773052526224081200697719148023299045039552235119101722242875609974082281664232592256086509114780882626880223294082230348499283061587676218564264223760935154555581420707900976266103555866456979454819313669827781957617578636575532798640942277125429071797511821354558709761502415306162826871717744510574162846818862640973455399320777591942150884098248739389677534800967412209956186136407171693876407383651982373377301438153542084523992807274326323235705831028758755122389631847744070600517224673678421353790240728994566841321183671051284325168927226703395356563531297255669842830290428332526919616692803211892072454321625738121682179242265694692754162511012557991967042280334851409474103707174642954403267987651618355155607627532361903020190826251406684024200381613143645501540865714421325478615419717568156697943812198187225766319683795034808441893003917271243826688520282160989720696210115886937205002902573537591325368143554053595840215263526843576056564071416720862826160073802757630882976210243479110054352920001243876641022565755801767453299693693986975815469128146781962710803125081579217715230290061246868322142024644236378612809734472128551452268869471803494542288945581755191875042025263107369878556279390451085659977390099334837020257477936134257245072076111979140603370968046360079737925420101035390237260224454584956487427385932321718078031633801399802793596737867428050698994365157313961796793142328023490603385838227908304872351258032016972208306522291877386257120120391182480198467037172287707100516415087338357912264222288336514033280493084520475689729960677917016734828561617698807124667283058881652651224220597577668472864141576936769988556104677109401490142613685793110080810836112144213372452000701261780216712801288297259198485615993061796002345856384085966682557350079876474893446352688724277926611621203369858907618731641377870828491246021751420118236270261643524094459817175398194745193667636653367703457471113908118826174842670837040163034585935873708764610807459169914666854875507843024319382260858135057128413440296660012818150528836007615406648066330227530097834408066547143660480992106998147576704478603825475274026719297900831574361240014684681673497520207638918396146144018177254796429277358001089934929628686704880303410537259406211907440333291319227287481449837388911667014943888516146846870591966454482905077030250016131321606382943990507783886392531252788733470265488837427854797781738470059271940808820152282752205657005758198119317058581057501629272628188766634635706475085867628316555412162485426766503291719002561311854583615786760364323595076327331357257549726970117526957350244848890609997028245657115440599993238022884590441416541907715969118425078366050771568537449350939952958510408167064180944660609192513453164442645296110217144487548312163331350762206869543074064334297970697515683547033508808243696030533339262206880850909770882617927535766746839105012867780369865238040372739111100296843940900301531982334758070621520489558973983906526802355687806288067549895166950364875697632018524644994262363443832339294570057726601081164549562188581757236815217054068814511684101998212382309039100625811834116837534748992938397321491752744317835715158335584500274356021229464728602222161485636092900298141296701414193061907822688115670591948494870935932316317760471629462169238952308284224391210836313820284479217758412033638043354615190539908632662724766767759002958510690201297571744539355702381579485129712097870625617956538355049977375424014376573448545909397428263791905150618981813007201780331314302389455325866891700158869397106470297734273481495869037921913034505711931056163597926072228060321076392590506733445962081923309969557764528105795617562804040670827810404930991896777787746621796433579759399262083652301385864412983790625314902340061450744808006844548012533441943618442909280483879641636070601366621613698651526367734002951193219861671701597973454882216959510686450377359337456167456050480089806155750422482786599577658775341822843139634064145760942876157921871123892750793615491706278033870740650381799479193880908438647561812878929723947019544508343015891297828154710751150175942379149612955700185583500031527192271266473965573102042119980393674068628373814306121500534299912757713026254029719462293725743961145754468373679943004739343925182862182449561915536916450367317558479683289648464865086942691019019564142870884720076024192143915333171790541367698868797508986137835518849839922178394676674312999335709198788431036035337747367493296551736693019479847950762575238155899761606466683183451025355487264672908410472363855811435519814617104013287131632548564593342909531806670989697169836954436058259124401672802125594381528881098036155650077789111241260791699300968902917103489659036775094955552565202619024452679292914418754883572408510057762837679260074595733302568973256530851905343797278597630848277693559958936846332166347592322944827590499503276804437903719367170649098115950649460597743542860976214508283223361204161675038168801309301759606513168330109692730574599380324060831038278674758503632032232644351117355967893406567596799516585631949581041592892226690600570296439560036908811921578258656180474890188310431792575884863698953620759611688954886901427322962636721857322090948313123312708979503289231140408761407761861618443951782498113661980349947807194558803383860467609974417071800815170415843433825155897182959094014931217099923746766785622976658720799778284424223235701560649405736965231624441024180192999259008027726452868908247958162709084285591547116648682351162803135927482319566092257153067035158017122229429744402510172030310119256138838286335744264775476160051112351435396794340494835148120260282267994659961215409614606602897032207420125413261785999245088236605273190556794656782682065872451140535488949098651102313752495405810763586026664597786175892257836016732433658292069538286703876753603846726549828954820298786966852302985520353580820216717668860673295944571779243228437223770981681967079211667339513201743302169671035301507361058399231147389974494063588999202098141969197528189703086432575431993643793615331737155442088538806754083028785095681485721585088200816570375222066695990358908899479110155477575797057505576598288383563767020424839090402173869301966062237803252651130574307220326295591845524972028597231666668180048200384490776200806953557473444160683129468273776839028832849987311015731735750634672379512406702582506425887329444172858792946568722141429391389713874191420675099710310439456028226339036965188800609408483975604836186535407671262902013496244146392062475657674412771985894649977520194386584285079308660794656072646093921961431763057988931745461545505907639641089219737246457030066118200705133451583045504984348218452178297414140803572994681695781342538516814326824025948091920092567069785809147241972983794148187025452224654474457874140563309924628761508568492653292904254972447810284887466160902885764519181747646885562017555325694307348721817965448700797753083109440423381687779052969007319526517782607457377870106191099635490778829866440122177963195587792365883098453020697934189713726098203369887765864279940069938891811797473688641561879738951225000209138588329856251726095285547063451966026814834703126297395340720188674803758919943892396549043581116383385719444428581503407678997102007096499900542007459716749840278516774147263760482142080195192519521548320455851085215204674322146126704089048207662819776328917078690475485316894729264226331735409817742601857088381812222437063843719214630584359605071259775081694039984803664763426200458478138295706235574374709951941642949297808919187699527956036945605196142014492999846971277357896409243698629877263718898094288818394918802574794736314066956277372426922251430081628247329154761588849557548415211444706766338533202743096559594597407350914006170434509160246896453843131647419937080573091600453779425316362198601527726460433705255014085842231583847208801251756996017196366859051581103361202563501513936219486520846173396530717669148719616769957656410379205171946262771354607964413435897181977125050233721396258537316970394219693434990760417527070610361066639712222856413839100033396663266227955214278139640547184146128962893949924468537671460401517029551898860398612417481295073656346498719641974337590533647945056140550845992647790606696258680514395902797308984427437558712210202078991769355644909250877499453427460711967043768290139939599663906680600480656176816187431265039120596855792563191838726999981344317600008453032021455358240475662816825817810137399268060584042645313940402232230405421907770186922527151828839683552037477659910372925651317524995908105753701010544103610893199914869372076105057283674922019113254606757672661188967206898699770981714474597259375446677261658208920243691656580145844552630400904467254904205996954908462426439215765133140583806941641594780439613231903343587153338498284389585581166341792191106830654773019441156525153161700604743884896237053328590162249991032476554755011131631970822901842549866176816306901736600674159716287766063520615382093331054788429357917115154273668557532176615540511240675750174432015005827188195254196532752269046361331306516311591665518961259916869719493561414337775035962322397228367326936306914661190382143795550919078535304946228510301788574791355928166375361223414095492903905630450512092434445998399469507233995960506712350121854617102162650819216958893347062360154661639596311027036336511485206777864126518309128747178315409125766495116923188104984806446643422674017868170214077522750676243692873642143366809419070742993063609960218313071001872980676619191125162429209105849696595805419373859229134911645364376910541257389998214486981863296319521965842881997451634674307098702105406322914196882565062451938006340840740737159156464717305797178890810473723441123139811241084150531669430297284279996823822357135205982483054368055591113429596020718080218099878701099283503043897171002007471333556212027274427703966004209188770933916660475214989755826431919289132573505361595145872916698550691478150809135168009466490690001650317600394441452367096138273844610672524611860799527425777165216909319666288241578894622309317929499498480048310816292320115721098305455313170186322029445302729293310339859173760103595516891701928730212208920510650930462129452128657273056399791664592827882164522330412493788775451542499665078185363038078080612791644883715007440751945466580539769971283049030608126827937173708087075021523493708669007542660082353545616627742784784840672891659445330175772757493259889976265222606881634308931098033350837680217221912509433416226061040984169687815595400352000252146930323548348763229418370485625626602480332227130859438262287719265166852356495369913240599568537473089228307619534427917931348597865207533537999092582883561789119249132632441017136245129478469660242106628085984966787359545473519835217286715076396210424010013231737386277654082368301193003575840220021246477266586965729162696260544135703817952923414735790497960326658946596873248417868519025189209214776932832508230501247182120309834325649772348576965387384624988920293911940165798876930143921500780263307245257890172318423136010003379775550623808727129432547625751021930568500242061421567684710797579435069312549752461690903530630032972574595099301826306670271943437114695941081928753293466770566662091027863339921691034935485210820949399788602942141708113045124191335232993359717690959328073562488330727230538755091157405808555621870614703103935308507906959781932864917697757602087394803437409086745690346966857457833646303697758179360830989115348770943128885401958407104852026844093902783187104118573144795552695710272998343692160085681898215119804279909527817262364110352742989025823854527495462767188354994775749628774524357612672332778895696133365522158980836527991819859311603637823235059322891322271722825001455818438129211676996989375850798892553602857401538318154129193286285560139561031722992702439316652097395446944655113656289597131139813543157188187499254175671187233819135381271531334980409191327859858798223114203333070529460511430511519986037370938124047264932744217033585562250912729093666739774015573113478890349785530015145487778615926306795498817994763496675588962848821999668792926335123858943392810307996187117364003590638266682271056610605917050619060984242181101931765130367297532339213915746901220357171462729154098126606412601982350774043558877909374483936194614678365738596259859686425571477069526333954208005384121254017017769503435099770826298855457232874953721677369160481894424324454302794526836750959595266125556214343299037519856038006782867967678555157054455546598942373503757246677106990291847199534957281666279730457820814302827208869056544099826008018733230285868962556520519274372504475277185416941649639831376337111429587922610765501202432358798861054571214227531092630978933350221332299943812089753146515167845213447315133310877585061579006617261779587900836632117736747056126000552920050830840148151895203458955350113886285523673332022079933496964710718842184202887402130965074570217446352750156507240492764976914666823694586319556620858672097962885505376465300006830589688762506261936639894075891481305190063779953170664431537901745973729556478425649539569495574804629209403684278256448191671367162680313891421241896305207929867998443839695687303136470864970019975546098657901135655247723134844068962724871528640860593005912526242085156250688263639974211026795744700887852949933088797675249791968763387337551423409822689247247140180736978572166809473853740195323937736990849422392157172854254058957621485487254226650522625804533516927006655057893328455749416504792937147082420361934640328809204631473748844584755957910120362494346881604476542334866035271694766803550627836792577872329303106593370863532122682586025417806111833413266645651396746684154073621705529848824786437191736870115396009873940374168537714061073636622519606621789562084509600477615260174722462278033698335753148693220436811909870448443053407801778316175042574492808955024049351132521536788880769440853096423286515986858861924605476441993294389405575948387552797034378946976168297286045097820690079785443726893704686698266462500402738191258947211319321594283177630429706507913879024038107994839590592718292189841547978255925646679866971393153591929768373978292433269630686069374436676840571623591145559044067466641173812542523538506713060407040902630531655688147929788623981819393043089725308400326665139954878329721181168883984201486880625140163857967383920879003656724093340073518815884841121420685758166733086039913373061505762356341251493284710233425258103558085667772631191991914309978039838438669431106480261461186914838153083693025271127038902695740132123097278290839939100191179592617211912169455107055367103955923828963866075160537345134348141397666757468773735520744367096859995878197743148528257713624534846523815906982697384144436679348503314041944094614041275301497650654332956270157724877596688697887678928783981930809393069666829107318603651458088772188736380558414864144826073386011493929018536934856159594195657797274208227545545254719574854590305555569686860323244809161585786821441981002662394690588386567019375208558112652065488422030463598675981022917310025973531080436616392455889276217299588153353485700118718756995654467294842663017221862516680902956837752398821799232124065716952134590561648358896180150684645678599013221996720512372499512896321962195123590037531079515894595698946015564647764809938461039622801567513517910600311726397375809301183195912654867696133779053059388762725801133367059955389468967878560490737876055824786679699011282257946092825184883731833440919755144478747566527159109431358343442091192819935215595825679458548658794411496436125953292904533521518087740844137299592781590787370628107726840443891862370303380932501406449645030375559292790671991452434664299121774555613732218736887041198584213015299272001930067780799909042651964601815707369775849024129029011025577431283569972100867963121243809459807198444661488358170723425181615215765518677187269085165373377477475949543384402874793362549116672644900202580691513263361092440429564979052582346227866559210018072928335448461523413805551777923046503768530007457632540134245448398333596680540691440423910228261271095949300398600669719857992341072100895664292498031423764863459163121778186571521390844499402680615992445076833479830658030769719250230446081362202213911155258561333288965051424137440607001601543233527157627157629566274298096002589181268710066193413969590200922812675220281328135963105202568626031883335861132884806069401429790537827348109763553917127079037079637362460677432826960788516670422471604561054585908852004622571285540974781499947037697078843180069933797418089304140668889495017995914164030409975303901361810281937941944760792836360344622264244934156171387886167564899899290181261170891344419470732614594615050812519724274742407822389994039162869879046856936471035099255385410393196551641158892938843056432867397228505284241376211180629847895648365315017156927418051729425566402596611105059923853382035962862385437321567738258459551683299525728590499266964425010635812952415663204233230471719244193899578220300245436596904849503541032075440323745949275760804456669204139182140676728551750869753413405510667303159696045418670914474732954372738155109980079320017372263094107912941496157828399096961090538991628622524546309103723981751929391208910005974879805173009163700293053430089051719939383571261687710483781374217290045631596023291610883158956839518695473839887127180938791166201058865921470094255464225118107305123375797976166589609479689799331605595668634380492831304805240444889841854660627207903550737392190666521657745696533187525195688559553850600365418414383766839165739671321438094154128900958965484422639113755822787306797198793111970714780212855771160082568838836860840512536995052271978758962183534110656544971369352315012915914995325808338115434908921750110785546376750688381789964633339318686986695757126771785322753623995057354029083337955174707810406301481727120508191445037891575137819974455861059027835122712283501966265783395968354048782564895170882441472699857341937703991604860783554912968038685023068122013567896015903418199431660970282909347415463720992780485837778321291274649737704591982135357075368521936274489734978825492781654662046249751758837709252510020996080433847130393499604305636960402860157356482083017859179036817450371986733506855489783446860795416376280138742445788555295251845366673623326323789587243798085825963474115435070862164665705178154904089734246743191109078841710669263225691811639328517751290884835324154781356381861981167303581631702204200076801211700714861271206880499571963398513409818263742515530781017213084800381063312419981256939011655234262942528141850007234007380395304143332481044225457546211130790455480871714368914038413957020402341832294436828644162323399050047903408254735884313296940569232193593049160836437646596731158590743334448069787804361073697189628259650357904410517196900029305732997838265044951959567621089421404710290580154418732947011757610084834398988443162968817050239280718405365309017753639157462273169118028616482917733425043552127723612275407245502347936435832847880365186818651574656297094076183280551888287689051040073303164381922291614666704541182518410335986875207580455686028327757896260654019678830100798556019261800132009988697417903117284963291410709162696907835610647433508986603214545170254350164811973412935410419423206724037499195682193788596632956758582792890599000411718053647079367069560335698237102334597649023440798980417426585260521797718117173467082378330606667542217922815288067695354206513002730897800228191286553063190798681030637139160757841683209916258801059934554727000806755850043730408959192480765855665174331566744755920327793535910866918871307999693635545039954806236508738756407644877887865490572490579452291959712648157902024996036270013884165178182424365260735657408787639466870043639703987328452127587592043252774625307930398839834740566808303893733629209862198742984312138798229595055529441752609436226104060759778541072575956935662124162136151569921729640445209640524292744676215242126797349518446747801223401656380004606199265873589923080753877116961494148887358249655119126414328432038126425775124611685722111948503476198572234330150954787568652154972743031783639200113508482840637330310785414591784925590223704772942029436593296672593927731693012947825986608331933627808677707773182662599648791226873775779866884449412071490201178570044335316581029641446462802035141287931951176170145278021144045395182258037720083011349217925007379444376594813679265376003216792673360017983125686924677539380025218361068971967239728258353733094873075146568898822496263020748959387737265172598304810275230110031904604452512900063831508648180155224573969509012846423870197499446237494688592542964412056032114157781239739087718443322558573050361472366049408049453073414158877873818380090145129908064450061668229686059638328632279562161892597001002825479543998977350881970986855408136523719592337246666555655842486521854408092885829571485742498339650520881502909109177771671101397609273124205036329554205699773226734911828338059938374740590577561850759474989067991869781450760878569902083665142619900946192443032024338671934734801143823450860303242975045706496033665125749815030580894717431440719743010157220782965234527686319976317919785814434077799662596713536039680859239271914692897379341111486230482567462930010925093304416619298391352681343905070639832348608843640033018066171074870978726433051725219742030461392632857578890262271716578256885711438981770768917519835176324988511176905901149649096070333819243893360263789687871445831043126164051238311168468094861306281463542977598823531337737880186155639656774943989699895652672840908872725463954214692116718473971785306810686440977051023192451431282533909822321040449575283460862060233321284397207102359852100874066740110782682383636594894954834230517081727666480894642592713805251608703783769835222784014485700293640880037491519119189637815624133024213478855558553643415567375740666881325631684895519170420863735942194224672791778745381252647301388000818839093793719002767205901241152276149628207490120827902201496125413889988672680481354851736099221842721173285757305250752148045606586001717466973711457998019896149853779207792205314191788965571971824138745724759086944213282950590668270982077993867043345792145516336490437421501786856238606726722123586029246836861996799988440292165408605515599422646262503819719929349319033331433445296611293036461866500081328552803827920262892176139232467452600458694954641990344253688809748129274848736680778311951291540894044198595596070006160529407570834480265168442982144008607448492760632495792583113440702003316804660955095449362153460074596604873179738134126801078652641412074009016303502434210782280504429292522558470899450791164803392980673561919218216505993288274665099741281059751164677933392218164930033564120852845679056783503277098216421314832110393253925607089099810423387028388647748715530877786778545145242607585213346080340328898183657064464299765959908187366450650289317849282721636656121049559680237141683959887199300624038374229189013991489235271348237375578864532041446232021276261192859855384716431530906167354105621394273669177924323921096884554238649651687984519656188564056615613467131285527095713065608570918589544296449602060894196408293301787523339039376718048957363777955624740380855344194320714630564908743355567934040975024441581187894044310902815902847044347051857569921556635164924867262133678335313014314511287499344033435883043657714546453528191460373652076406597246805537681451776022826870987491080245455001313974368612975265016889377632712895848142362201502530265665300755098171771953770094209921755075566900104173325840274857139676488497574131087644268536868782242908550873556939034749560089425268215641246732772400532311389328791414972357314200772797133411576556833767449268620587438004387507361141033804298435073320431454613523949394309988746873156864662842711506950264856972575943967338103220277671585928515567768427502233411359983073438256782750572242452162056583203111691246599794002194070055848076264745243560493770588688933223292471740372226549077651430448466852345582319116924543535799855204176169513387562694593320788626314265759838884041734695422987890570343558295792571064976891174633608078067488775989093113501548972321963435965336308849058943190901187959379389319246327199064065640330847302021149587828483505065155312530554553487749713998826441804708959061604122895242018505792845175350218316207078923263475627379419457507868794062772046246990042537915177415470748334242653225400825540553729506409610943794538155652495532014088056490406373041107026463389664825924532925505703031254889759387388807874316177693997119545184288863726454237372189753688027963666475325823683598555356589090228954631076096886916445646189523156390170131912388349535066506662966298363355120634258399134188726327256718724558777293139572667990316381098125266162209192686071114106740204559840405622166408103377210628589782956120083590007875717369839408062713094509148224106320334268752291763721108240938511731217760654420765121581726458471648481039008640132943418092200284717061536586665865206696332849666626116504474865621703546478492614719828747234722788651474429201107577155758722541272707110637534268117100397913041440456529310404613163752600936130610641656647732691496070732072121915561711895618748157418560023945228720953358114616268148074744379698490814929462989381308741767567935553327645582946508681831830970909343046080888470668741870045173704471865217657152745462545426168814249131937005110007192063466051600579280505282432934241636705789283680762492223316699164800499760054036555260858098298377754554585158459347724728172079166836694932732188392498878861797923912150438994393795579291167035960665607472391832099401555388402014124175473295048219706746212497412868116320964719307728553531250178597783458524447319875111774390675836288565729544212372153492613658533365032340444868914444198294767274944458288499711866079990825969879540347505592490208316621649388801963673432461221240633758625431280111917579618228023926128522883523372635299463905695212374924706993856128293327986813361112155289615651209402654901257998923232412514070593895400630484016555185261995514071103965497222212226160820881313557553492331741857964721268643023093544065518458599841289174255803798837296938555645830380388186196856069115810169059806567654058665447933312472314562878462187870337224653007496222513475059091935169357983064435204558788165105560033609173889280676938545833143405867719688392963845652360104734540602467913370406168067920967707062905319349429105551203042089548740478241328653920567671399378115741652077170636920528363154986944498774213593372247001835231392871076796490406434282960094878058152212254595645903708121879384286158280248656890563458385572760481666402095244078342642927383130850346712320109159054896942594672917072237565384629397821644062024734259243301087659294111621433450102196361691358761851840539750073367568861435427545165169426405340891134232602019361575552027232356345811171225959756558816725048002143847015932123665754434789258164996920216655288247587192768424969298704657515295860681414901539953670517540759777317845942407229162337254258940824000037124627457264435733773733085274029025777384044044992765051755004213015538787043262760558391338113736410307714688723409310586226141659637483823675197748650144987531648491171544600244923826761497486841534158331979007660853985443179861492333561780379888215959780130260294625690679721730628523823948017236341584631676484701160027497262972411726499032139051626942718350154865107931627576034647438759794543842570291826520371701842886691976724316142806878163123372587101067654057139830997330576724870295540687611115467976209139699106075158308129653629218174982517050934828447529047307853167842541490309724160456851238939284841921104274366495651175704165399088144922389500350746060655990462182391216066717118786450459703622208697321043392919220530393453995899580537442656030347881465724150996426547286688956954075308881004719112031005511471841189001839678212544971466399308906521032232130649436733667788965754631794821782379432652469097483910337983711180928853318251370362778831202494490171615504894082009360852607399835763131253249415858731673813200623049341927738470525045069973608170750586984198846387529416481261489791703828923837738211180007439307514128370117655301878119084793379012736615368843048103794739793194483352228674773145423046530412310630020290733570375497998354368265011778435512319207984573781077027975653453275873518753531601544211303193993729344875778211230507412549377252851301852803505306407742132577689291448965499359927866714891005831370989187329365727652558150675804366104651818508915396260142453220240900928583872618203173201519323845770054440519522483133923130585614913239101397808814475899971563470271532132844528421082913898713247686177105972077943519464223544665130150842655361032169177906306352546288402556277129422145041028989633549628283049618603080670087037232921176772677296790297853962799238741033867099763175174886812603031581354626077964119803354559600217780426016676182629509766789962870570270932191730163086370040531028630879512427377392830337371829644838218212649380236916293385026377282877017825341794414049397441052811410134168333816630329520608759398380997051699828387634642195437049569331320840429052104264841642254642436359640492982042681240812214190925384080283816684493339745616111261011500144996544419758250166649182477868037476919548147375424161887959594579887166257089106091753207728870835610345989154913737092768124499558510352395889919631748080317065996415748042267027239364671454320140091050040436411302814967153259261579869735010210637198375619892063146265665930762545444876403678056459248820604798486184872371381312828054390812643200808912184468299462919633669177472883477129676300607256817358372026006221063395404536801440151070102920994570015900081344008847783362742116203303058835397506099404544887665052226376408152024229524839532760801020690334671107307177803997000073667981905854696886379319742707121618810802219851231598185769595233589987386984913468197594493560542654717652072479883171663332858812819126925905205602833038654921225664445017824483624044138872050791187614532833964675446183006150556304558648140916234098226163429015445720101043962922872798049970264905520524636349615304659491982573544314038652838477330769160921862527666825178716811132934854685220681958759446658770016333931037923454599409799391728993690316014649643665582786773387759552753868669786026008691387283855110220715901523493875516000378794262041894622286072047441380175769548593458693778178168526426490253008481036644430559646172945300449205573323406839057777300772145993868253168761610743974694448691877774597731087254582771052661655010032348447420316762157523223958393405251213449477112808329709859151921278356508234429715716106913797145479037238929321833338452859315182473606047132136946030952307792182933056157557651176248746969213009007231387083047655687238607858710703135520951122471513963996202018468707837956753813869287855966801323693893284015693331443525524736781725568148069313989621365953458796896779202236237888458572741885799728827983770729753143583427651071425386693935468432969505024411003194362741287821546327833894116979228654703387796774004623477682904111863077001409192265559708004356190100960598221878670736004860274173426245650425106263247850878727610437762554819605141125998976395025665805754831077027104620321059709617785541933314675419296330051421342359891748910197597855743685293157641894108640602720337859174580798956450083437240647220470941063737314141245398619573926265442141912621488861787953826102460672913170713864540213757052680027389275065411206108307273837418126594208675995796314803697619596384531388492966523121250832521101753314423185517852860392769672929575001747096207329189454206012968023206833885248227992154167481822603634449167760552904900184120141050363018874142284036586622341790932207382335487345339514944524339541947225018440101947353571449030919883724623385879017468575601039535158391924143581064476345692909977374124589071990821792887033186365326747673229080119731983564510496866495113004797855063457672590743328872707661694215842961428630135679136765250880939402507974355982536188584162918347883304657795113843460039573771564397518580572568932229605006790876076010405180594924472559600915335903949574127329260328032056951676493174429020511358339675922744225105178146199070549849711867017316417302898219496572573684279532323976516686958382418911931183248116630878243963691708583458280302409207141503345439828194962121032489406269650500360279815730173169131621706353392051445173843146923009486732658867588549245954046847531681972436582656534657161126621961996392000765916334556092924717924953334864678201522732543668857469752149506880443972968702087222601092263888007890310350084888420957058058698845624701456095616607655284158242805667994640958875882502943055336945789790927449297071934331880357770471941785003149691295768614154636073721294059622995782719014349497468791283667542945580262480805789853242901416167711808950242368072786147185062639571295721740964657407454637321064411884695965140513097937682886793496268585986574918722998831500666593029468378425029737173981377408305637182015989931134908766810466948741007911696842169795364261653745394715203123658845541328712165330260181602942609912136776154081234382899156795237317747739338207182003900464798681174315994228246393653769371583082783927473886602914111591425191142242832339985899078376347025008235971857583364556368355691519522745678350977173358110574349655270843425537602633297756642896417478674183365002099715993232493638093674538358257034447596090513879996414503212991044739769579161710203560069006457981979660870065672939356769696994464616588369154717364299719581615013667528386121227539504823849980885585997832379285312957931116676218146639636533387854424957094223261252869452686427448683938039044118485028818820057178171147592060347804458817655761364006306509867435118233352462921691392335530460598409964233270387213359481647837728202737023345307049423623484121079267068348399362495124577923412395729260950024296384928535348591332922674620758930133719207369297004292911201300574589511687479879203305056581817698085012725438320971424196935601433180716785328446944496549503500546437620226930116284143858708493659323005855955854132770429703394064472140503052668035684157272194138888361988290681515914848420002947350499042384690645160814497256090606950587266151913420891349744297765624025379239264761108705526204885105205742724182118423403130894389406064349070315827214499880265206643715568683984642608524786212519331319356072980300528931228260947971596651810746645561924741062394220798105792831968999946668141725930376596854762243764921334708230625751803484696011669809811532648779627001319924773147196955703880359331681517742638822700449244226576410414205230942627686559098760726474967443714335625557425324547304991485196482656660419410264502119547373096766022137370197029305043320780717730186861698730309797768786891939788312836269446618082188576201319537671635549562790300727118823796845078731229666601566101673886409275031002262795500300864246344142910643425690624008774195016880173131054553704483730921654714027446538099361656570782358952863530315856679810905339210443458614621109505142040235015104274586237307865470600375720657919778309252423731677674856796347416497683492997383575778048353088870670459028353447296945631278336419151244946788439414884131457094289994142030202169815927961856486181656431977767327674641568639602225688625299266773168597317044530859654670873335084759879162363985335984448653322120741334153741993386736636970453751374002963131318311716461966543095866736741647697119379901002531871879522797534864683634181731578258672052131699803642586587874817433125508798953611741975789994007830034074907096999941872818839882547302829170611575948021137037241511653599667405627545956606986953783203223843088292262902167364102620141719373459733199035916419978520867093510848931013138573409184055687404018720337409021746989062882194139442298298060520864209452651539977504822098744064390000468784516846560485477427985532388652148054645572783464569686771139484499020527222394077798075285861960039189175113602762827601802447229121108996604935188383412713995862884743232210389531772946823445347214524713565208254950155034852090685301958651606335188503856490032872454919166967444682158232221102482580602563404415685316548518874904807901371077879556444047093187065323657225198326637849609720878681748811935185527752527570395684593918189351929456493703928240629122180913865887566272050066439424598523359585738890219555500772904758216199989681479057466193097812922634833415036819054149752968133958402087237692970968127937313193264126547899405621400741966343955364978609537663410528436149821725794126817902840446716138404472008843903210725449257878642442076628362458531608146612572948912406880432526004887150473237545296507348424862697570059979555221213556902396267565892568880998270123462791992203226534020072383981999355536229281081847675592736933416362996184280380471936608490589399389055221032628405553905316210585782263275347227500223105653641526859380631484373590936553722644025267435547120863378404416895149681532362892284772774723180538066225835662251175533409614933714424313504630425309502308664331916105352701763600850946606804262884447957109950465887782239196464389019674291028990211287955560021036011990351126403338024578870467810396956921958854384594589983836968683745459195795837651169648749652112939844965037712500859073925251208827794911291123842965532253187388281567944097679915285191856037510301338179629082728150036810941761518608448855871355861890369912243238522461956324743918691745758462930874357878121631454140891089252533855242369173268153996359708222919827985674260922938562339077693680236691623251853132799824503896230228170184508271324403119150925914536866794851788020866337655393675662148910396023894279574268507675180771592246909525222013853656739919516373750344292575961131795345799927823458052757520279952960944570634109551446327257657817942341093526853919934594810603235067695707743188308242722642032609970264903642614033417355844682389897020498841431514172472674939616011653773268072216897011322612378646763566701556899127011125518924839305716654696013664829399688740048364907815217909552531817124047339970144526468343035332519614092371619636191243799895530079788784076354666653345160142824859486429293397025668755705854740388411851588387502248742086772628816134313289640080087981265906310540167016164428802748887345596787857533552261210262475428184899522023042301778256537720568324345768916479374717879174712507620129110732997226821415634862319526776058261232764331508717366777574722708619337101822761010599592786138250874774112936784357450677915992872066774364789895752144416153058454883735232703044840233014869508769743306873507604477703488518187987230780981239558618030572048526975332740385574693723742326000787771205806632469795440058859817933943448866285023946617654226249338478030421630553619136104124118515942162738794220106603520802252890543610415694672990553569719274657141832077094406482147785529024385486319334138518488158558100592387801039196591300014328261827573688590438899524411113314714736960952172838983623541912592265195064223821657782833034171267667829023759465987080578910210728911225848413387991382506418255086344029925455789491697366531284193377501427033343633220953145025795319342747366729883499627823213912259876984486578434555214412235561295993226235062403783402544600604398928965156386434518412022155610181037664745697469500810545698410952550334523807184639713292913661646917501611199155608609205508578211367420829604643553042298498131661423778460566660641826414713234134550998471226868972483661842613480575464371919211419285774574295627685401973420830838494162566025502298887643423540780760215988775578679730224061061084821252238203905839277032468019693959857578356470299143102812235231574844903673398109963684459612517762356333252736722498079542517654387404108252469813780611681617668379738830727791734512648121346989681686337601721741217715098604540640231840755254207515103028596057563751713341892800983041197941142461657744117420015622447308032086510931108362452309826370920187536846629185878377392329482745086178541825816315561212677764187866323725171106440577132823084058909956876515295716374567450155715944342626100467790933454943306564335881851169411857325533507036304187658620686441058542228822823859051982897408795526493588255153225164347486010049055038856876994720394335746173522433880255687192056777875348753610892005968005447182842266761390580684500521229667254653945545455849282591695806701956766035842308556835935502725149289112368474109816183078372350721718274903618538786668706385515449268868306517347969833916424389735006501591263156377877527402959990350436914455763115205239345648040353366098184829222727368887481344853148030519006620116922495339230178360446046345644524022945794953666238746396392465623650879559185694628715135739750885618082432103847499459981787880986436955437501611369989855411656706034283309995411019715451570852614771101676234332511566549673658951642804190835564079956036783465134224582637130431104122450917029274589836452131969973928130273766761014488771161352604764528890563955687802873034662146336472524846432142016120875300294504361147471409360799382174941207404227548352158629080759783659942429537129523802088881378542128372005461826288113862933721249539661381924876652741059377292117881896214899292035819762959521034919621772463106245961003521999010214648905779693419728389455966885709111527486869129071977611640704775599924430344141832089674636444458725157674322378785955002589581150980633861270947054935294534053389045611426361823689129350133690293368791400510316568151463780228710991331646195765190649786092525818135410650429280148094598501366670000028537667617236164347769260321916585441610790241102283525280562909909052473028198524378800506643029251911361795745826628408602253347118805220756221598543554255119279111938046075501706933334386731616815845136757730619190176867098357114337910871177010866556910872023410805222430841017982673158812695959822891746536472529589115348064601296895328191413057485765914669498529610724582996584288631586095932924765023890782132972700176636377951614071950566626890225818496611923159169118979415326712415301314177693244952941225205458255274510058628587406323027801955425899899112513637043232128377702968478930042958114346837656129718813313914031011508930941457820584729544155586788375017364312884068744235859200246781540435170641732628702830574148959233233595420834312787567204437918045729997608879673884515697409639132870561174524731626079421290747251146215413907068253667144146562840302872592616682933944082432300310190832140700618035232620280054828307789577459675888294704985289211848534959006917867126119557570963495240671989815497561339724776185308902032370933171588288657886175622785667756356669983067182106423250824988430752606810677842582787713865529412145705263688799311793925579982146181380928215773427213748951782416513658195935688519270871901114976671977605048118111194650211651640809612231746123850531141806045324342304581014795513434160876793897850093818098864498548923551298472408557881727636805810301710214766226136140053603430105044292927979183945719007350812212872031482948755750245069228488366872552302370524034797888456525801146674116037617631214294295140704307412914798130115404305686287248791965170511693247838864735061888884916396993081965521008264233812393114909409774333263648905844180624844959254022129860671982894414851866464162835587063211337539673766437184420180724159251087862778984993092381077673120295957121518489005668531529523822470181895720379081838589305428780115524285106554426504188987018378606998458942469653126366598697791046878006477264386150636383771729434730932713474998410097658708829193162060032190062500126600066490659946713981275348060274873978695320509138642855212354987997170100252825841845238333185359043527797464899510627902105660937975793506886906875028333400924456748238032403425776382723001007339098458316637497314697438605887936737374585265407019372855583970438338333402287356661264842502355636244282740455033471533216509724303556058697508629672469854246681907192072204413117977690810225504602705883969812103296197285384282884480911528425892631644771405471748356521107079902148358372176899082734955304138633105794569353075144985515422183563507667767388735646825616622349494136433506155710662465367819726817559189639173099502352105758497576453258082508952652881914948601290012915397469831876804908819632805938269000448441002393901785810434150778904008189729892072628964675099160633841622882012354376004697885825856405779695955582119530766953864645823760428203363237267000320831090925568057030517115740847643170940187351169854001575153721642283842676131555214943849903457737221182398146680474210347153679130787727302282561097576698781156555985840683911721239099420677591918512749978406344037068550204911154788335200431860119244874935979086812190862788513325551349072676758779355837819095040919053728997148762315484920317670146808793554125849881835859379449704973130771522278489910076618169191809814925830983768651187603296829266251656884825357661689627602455530610055889182453000734494824724881105755352598930245915436396725983425945884657385844314617801542592611161401481801147181766871336444191189676237703698967053941805284045677239319716571917110781172694682908486321492846819300404926250668088988705431714468978485241091638224884999121445316962219133170336110168621870014992948365109634928228383046253174337972285565493300822428040732380670941328870030874641054049623211472333635673115341223468591749795203958048719686759650830002478270397501663714353271871818882195547114777718710274530034268945423740227908274693605301591700746885769524801186811798424905943860063612604882070540232016576815412586061722463202281515355160233423041473832938960255913044123605754955344543030978522139404678442564006182153407533612458859963307826669380273685196424056877314345377003883924301254207836263914761515182514514006736217416122717137996305882049331438953525862865382195989939614197489263899570364889903144634582458671454374793458542302603405562688568600030447719548688035470925500121101650513482774708126779589166366106420019148777957940483549722029199546995935734931168653320244785822662090126620088830172460509038715507254726056249803048955878133898914201911786289029483422409070799575941436298571710673693708703493674675645700231803038747522809532564281177922377719286268373779486407926602719648437759869624333630524470944538725247724609120278730179658824977858796175516808143278580426006437743044265179978400389520811539851006275253358799203420906648194093195881815392815041718615859698789127804451778126149086270248397033850326369633457243519895870697346630494845283177961410132969724679844133787084597965764717351843058816697021453267202228924121836799041330491151250697953630305911376475137347594394763468786536211157218927687885775477960988285578913908704261622621476980167190720951153257578131428474046417465717189667803003473219090950743945557362895377848739514825505083959697175044761275893120946385755233076213888023242734446831153370822697263836610610948400406882218377431932280770816755002006132144777153585375597891112262526074044960322076642572681638891420282790082898748320917857397089123127393881955139496494430671060481254597385511026295718110272090403502686676358707026815018855866493845136090529515710021107988443954337328230412478630303743729152221241802734064889273346755338714441881689053230190874900183352629087362302520930225844439962914059213799909289271292401720526828380045180606120546459143988650678731599314984704149923125706445316308029227620604573710160240330055738178884017131980124082189620365540260890786823216977407200501244524648271020327873645613043857013100003348260442949139878127926236617920661909284464433631615736702137663687410638921536865364466137820561657683433684243292236799074528634032224333854814738733229732610287729424088078393711891338780232351016437124279839513950381677672486922203429250983052476610230402381133831862470891389242634868354255825233651759864043212426019847839965346790989568404650411218239980629435279764911827270382403276700136703330867565778097283977865028962626275216590715255738662720295224138328498304539972259458782889658387405566934486476932021423774575320215477829829339162234648231317218413022482345334506336188234445803617484520150238146433298690092336351039415935444279703739366059985922491539877736306436121816966402763027931242796734565384342572538086487934645013960746050381035460089779938006889352745952930926516754537891016473837230937152326575589120344449599774698802337451873275153566159945410630502836128409990957187662094555245021974500101029987656459659269229381817440317070318098233919951065956855222761369911513603686603725218335793821083785712387861043616968738607554775528474006838742086451961080444161761707166919173217438202709106262069915164820795391193303710002101945963802998469861757065184605122124212753033222488508052627730307390005316266073377532318363810347823846649986548583097073250314436648235749275970244523921078587469117539892863104915691395013608015779206078062885932728374172718303347800093778095081088340227195793611081018135382179976286949505454240139601778128775326062024283671479647363054647513038753641055468400150305356551176251206737476231290464281515535654728723973802704953898157049029729907264159645449546042518176491515712746192723218548716793298068558866812450441482704581510877374644640726658414340466360363249027682456094148798465864639063997438079156722623321941632878911955233897227362251324403483711126802404247669119534980658795436594863123720680675383667744023108155480378984581874281398777515082598175863911799133552328975145586328851046247950837788174670287833274101955731036446267562268223128085942760968260617555659083375898499983677903137142639323571212177158345047742089426042953443531639949668008133271011393126157495440177846062700025569536312520792181643932746808985887631081110001210793494410338178006783067670598859080725124564497824090367795415442806535627036767805481460135435275730002064865540764522180366172632347949327110961623995835890449838273639389655558067965772234919776524654466142698063325559702010204713624783388083367991994477930303956484144015420426772620209428273720375423659163786991925985441687698311951789867393448545038531112805944664693226319364141159306991146609276732121857960758858377822244781746728843004663553267790312479909821448704871635815094414645847062163636431748475088926153065500163470877120935629923700239797392575573933995483526499564856447534283756986485007129560318383545454005190041420401448847065182070754428045134478802432349182567785862703763137703606526446443325729698833853474205271403788083895343985703295208184701804041936046842709784778792906681879631858651194026757664768129594131778276539996921738894198435339040417454965282172936445762247038115648285200421353313413176249162659805895782037832551477813195451801314643352221737095384148767309175398019566119775155044625722579364116146746214191795061834499046058619505192051696198994910407210199716301764384650288451652773273355836534545521663119998271447231018160670949944014233071597238653249505300086950569747503466776104693871292558580271692087174387197911345539435656120438884336920804720771396922290989858254596118375336948327749781814910892140473843509217881822562765404423141795436801019028516112044305388577849923086902712343327001245331722310916453494744089030003110032500891811104542841635883584459958847232543691184488569241798364558903543110838411485529400918958296311930143779716962573400251804714112926481376298612053857922212219510885623494627055014597669738695613032268717963200674785653231905348533515123208993752129308209962489944147725437216547995161171260975415951649269332394183293456548245894131801539044646939326801894600037700307922044531208819678654765371292601576874681770048148705554454878461743389179247215973309221969131967137489963984733696916660307925393174896789606016618347678204588019603743169040834125525865678877983495000481390421442617512644253746696678296533445783156895257558104287378819661304801575046075665532673227255034335419065260244490231175867551383010394024583291934444063918589528002820764890428031405848670965408655411521892400601132831208345941816873988881280810710375137535687498649761039814625987015729837042549257090895003033379985075576179191490538599572391268501824992962772110881865677267553853924920791186326572518112269037456216036232976002316315792627384140117433884696550884830824147071502010637605346655489794771460478915068242751514829552173536642922869983482750393533040852951906494995105245420237747256951212955800880905034627937183355542246399543823425464197690797496353859472318249581123025085543919515678565064604953110644697064489351228991180596559403820841518713218123451613927973567840804521399938972689566338684564817774887975441338090524240936026564511682978838914370866522250647213281469661719651762975784111840378696271421721113115159333049831287728795796593936342042933568560872679552408954565628433118005811867785330557289348661151849521041024674775875534281133542832512833278757470928247137706558730059955805545122405124951009828740446250565872614940257011514353992540664511058320216372960084408935187390695904655770307720069243144957115475547288301197162247945670634271033343205934820483951112816829534242224218170565480725971093468615013311264012511508111380831096588273603488878097958792828407835921548140756215701645838242888831341928151495362064105103558420851085385649936165888477569320203802964719505961969685717372330668686293247894959916223183734499622256472315227523561760122096278102086184956110591514429194060350172130157921597912989064437031275009603817869022085182496988223402383655751945074755479296012534563110514665625868207634995800104082233167072518147305530498593320497484116689154827453619599103716056053852452979850092717512650696173863293410709622675803503985472312451762100207136574416145977855163725422867947358470344026592067697278444803184533560858071265064510866042064360998385109076570267990301965748476120595020656935836683122384235971317159712149595139316533186232075733937136387851412221750541070799396137932151670305347976368440657628245031284038965182412617290182703067008618795568293158867218169860900396758417430934283309766249693141488542120058803287908070203429207322228681171637665511223967984370619142340069572031707768669232949889868249595360250038899643817625256528859364060527746439064779479830720702864771918996365155763724979330577271344127328995830772430525121232632910843832836492269661868991896375716548967072759941175097894724310450740246972044446396128807988754122060366361556040951906396427845376192906894897224861705474632660252076710385419094963772483938043461189798750255338740966752776506117810369188488143773326887522327862663607669477757790480209117545444303382441672762346063452462404765109320492678868664381734460429010917860143695822102457017519318164503943515959480129598859399684672926301564796156617074166956861207658928482903371977320872794043936982004599219854623123112312924976334888773075797260010048599955019875988883578511545417141831203430047397414994189767757616132885357129395839918125067847746274453518741491917679675063744944835229550936667721636999700670337969920400754865476133389029174744956941970390222203096227057341507042189883813185053229255018714954260325594365861809215893544947952549584401901907231284038583700801071089454889350253281112808599151105811848731883994313179371252941089939062748753082872875710339887631583399211623259329245380820035585490424493579145321132120145642680297941033524581743015810848259449107391143798969824264813670764266213633694996628395965686251710099051404547892177460819393852842035984404775059713387617235817470462931557419893792430472528429643677795866228874043112317493443052109247798904278274572578274375910738285924044968898943193667544907278960304832795080635734444464203199638289015434123336897810432337956471763763640526955546363001376827338059253964353844276130669293134271525580144538735501607938359801276475128391078325813562578031250733163645870135480951308962967339655289225043678492100386083357552253272378871670929830165539115022123659576755266682143425875884489460524976122240324089886453295787656877790199260510196875483938103031073508560294850700035422047295369148748633567794827455291320227972185299986860896434748549677547940984096180660214064421906145973761349617497789520601763912113774370443865719879277641415977745961136454962280143971797670841802851904806865263068131900403376137463131208616857245651567584674731109318384762323657720265276361206735468533228360331861269461684671394198267395290640089928754065734079308834251784320750332542137902189375395564283891413609420306386791739397934837964042912250072661187659685601357168422547098499279499844426174556876434750695720849299055024258818263014273657215518177063710802398083985649459218208244060303484865801437362120469444867768755545743404857345166249908406455799049003588584225484335696703243910834365008837953921375216013773513453651758530992485591008588250588583361945025557875494526886105202844961860663681099244897164543918964257629330288743049039835868402051056457438598345650469395337514673522313432996557833292296758137780267347403202549012358601139402952344765730921148054921015615873998800325118281667180787743013975677807993424884067559587191538064430598032711794672667072109021612343687632056253272652759741786247743099839810784623933642802461461355768942622280248163321323376031704293960185968390728295594024690472428087817570609539116183251144507868701705328748925260448957070015246467112395515165493707481377940587110204046989309110522424058073139247948091836099338204227277017010760901712977632924609081984919478757943504466301698329987040208626002064308467894501759911564515083107258760511561149985635313853348757551255912631564059935180928059143917426721945023210448982801713187898116515209383802746841802299972556619638674166750497512359420574479609752534223083909809388837304307132894735081190403242432513744731366329515982848185303128055539176509903771950947439833828083456736363335898060363674968036890211550749995807636371741588910176851708723918518192525569968207013457618252167275832674477812402521764373126635288543511836981889132221047604493900099801463102282149132705578092397266814803896485961759070025456432556976322290178175585381802941801702555554304364783605460852188750872592505924761211147811015851445340913224342038913340883904542842162678891772479896874305927609697678820363367489461950529637607430481895157197139668161070306649011845710198467099755083850767130908292239764372192977931371949099780575374426748986297443614420977366324889061756112615597168489798715849376973558121729506384752941853341164662317980292659497748645538547241840284192974115097546966807951518419474253455328852135252227963114055787179854400044338075376753263485751545314403865723159084851068400599635617753272563571221994886854249035773732136035120436671942373555758659184173535812628941632677886960370720066167458161481634581753815213857583963164822088777234244009157100001442633731873614488082926141808584720046090900453981383197159082272035551606609479080521147158053823421736530184387203033055175999354696141775640622843913646560022871126630038855279478390425385977779443817819957239446682657417707876119154868564953213639828730724003001326810048297485880753992978214319762989870487225818298521796607492954454701386989897874227302788906606519674103358675313181595073795334327035920554964925726151086153277136485463566449748453359744511077971122467954269586257306116358660892829668831630400128917394832053232396948952484838893867375719676720483941328092263595728025835061181648560466254680188158885514135192071976814872962108611341818218819694056669234672775569588170255941480689688475598988099655006167245859883890673090146864543937690512598686896038870447921067286850746041217939262045350103345066578499332248664665727414190768033989731113721947151718961967730675244580635145929918302913695397269399283094389155228723825105263771488702547123365570856631465001986042567070265017278681440979507313693760415641198603323977734545532924250981043045025770221540626301174013400695092598582820553708555351726945081933148077771970096147709779366121892540662973391795537665556409514449996259774905354388950627803574566985620287498758609969880332345573426497104434705400853360232510993433781350875116797441200460137894765858509425223417995681182956202035021296706068123824591095043734552215113304644704880887345589819458907448527012338778912151193143117696669359751618247441132208835551664902598729021903038523966375008565802070982966514166033645049137173064828778781596672730013154200120034553317340461804707321956878255692870029431732582972858577648071654415783565157178750985190745651297484374202124310402276985530585341338468954723708270746952421488449596785322169110648631963980721449534687301680127338786069259951044556346520696468236712103806197295255519488442712475569359170075765577679805724429701383964802345614830874495001698465992408278225930202652540520091024712173909318579783698967285936443706584840214836632999549258310127437025311543456706989940305015010818571627852283296612039098593765191360539312982266158632705509328749127246797686864423714129092024344078009796074472727570419936278585529276803501839868699528857170193872944661729809541140105402247482903520928748984594017683841101649316171754121632296555301766957153428203643757862225289036655942561705637502731340719738083086602572962263706161625389201061990656016452786423147360945190088790014536241426512240712993847116396824926484034588128194871859256055697377348667826009079708201770843599112427440642853574248575214181854901707178625010346488682169831010173125745147991813433679515018889676332539471581511259777959781322593924877670324253481721238156100066129391453967765537286863399517266445105536696135672892558927908146934141808431664417484511208312341044075286746982073531306426406944332879628486024337410173931473863218082087043348133277193012732358200449472567104999545547438058785288230429089589601891089328997664963293776822662259300133448050590827165504558378972141348789697107584076259278836694161020772658976625492655666398562998611549809608807590914281090074655139196306816525113915041270920231802750479511910682832613452882028401125062925798853338204427166592425437833261277605130387127567819496737592763238614835184138406939320032048902661391423482484294545559783191104801837054531331646088855697695791365194792908385632802216541530139176104752092077137739551869932141434882669178658866463411399075965542729820558309437154220341337360067475291105966973579174821127109826336904675021064458809929809722576212851510367620073941809714624332778468926816100305245667391236623990769212882608785409779314790362215623062261578216945508863708638077399085662219013185615001074275029003320984557404148068551554682031431583166061226668054819276876636241151228994976256204380607169162378376806695259388924290378640863979189754836833933381042801843109812339092994012039838096764098040023483846104516248807677436575388185244666264922251180023435122942316157446757807746799064335125265449193787496011361980463042843482388806734811856418990804994229344879421667980664243537592841560435536829197808012763177505853266021823971625127249355775328239490253759192448375746926661922238820937228792322019513097264396519328141916830455131234572348499954035509805056261250921346565323725322656194229486917139277669609328859949365915528535579264939437715454004981487883300726431489485680545434941325816448890980393453642584056407062065245227215640971411464593749835966090608718778543159663087606351106585069700418177431297150397232534045887344774153959372042006031622770718951832885340745139881482846982017824184746159947620252311598922882440039409905267092285972340234493086969670062872722916746656967531701301618503326179506746700500404454878259996905818492360261514412289171660389496841187508605551536297395796447959579992195483023389349986967588221063847404611670056208606563375436174137389720551308523110493118525151249560784783168154364424686909152146759839363953318148985494897348903492900337628890021923738201433239238483129811771904483148593961167252312535469774780660622266392393275603002123521387483075260813038706624541200023258118534809633708328265838395785133890154214029886453750462134043893303350840211596025753062480264748735980634896259464218770893469856384488151901930737735968374956659587398421191502294311631348260948220620214930879086152616979501922000051761206645501039757231835261649556685244523652169211611598258109348681028969014026612076056183014519406501128445224373643022861281126008239782616727533916470373142117556890191756410469746170231245198599155069325507494863928827591121367654420333589796763500185433372355528429402312030683700093040343465773832211703136689649330075598392476878338041447820475111850051067639034513576082539343170104332823086742828244952369056091427881869314938331484155442943476603888315222049800664431613486523843846264414415806631798361827007878006758974906277095437123730756447811053384876280312126512497761280906338069279725987331953750175087254672468999901069445282557143822335597652324026168698868451070979235852303831720303875437636005341368717036782036174345628205154180840675549963458007484116896665257529691555976842157814144968838017385972620138963259440758939954460659369134757708850960878749465758465834411633920200690781371409139356629031227961657031404159935339459025990627491388429945292463296688032237228433911673717104697372818253933937211107434874140398167599068100085338028895123338736427458916103055188039714453992456070624738760561937654217089052402347465288410633631271126138408621493390648297519628644686335559238765885051760073523015833223775072049871609528899016283087166115253838493992206532132095714568384528369219180868582669705578994575484525107805650061081764345263301010555438982758608022561747737615531941748396405052713017839237314858510005635138714295777289571811102730864205024673851424524291078635396892626346682630757272100260937487515264821133284807392198213061055103820263634882832312507368629488870687958954011802895052321407350032360661521218062553587485001581215080890730544140962824669070594387407322614531112542341308227774949481599001086961543365648821137605582136358679232704924323742087014381253028065246760033622611072661205266482284494361067011072813692513372630611135964977898433984014589575159141530737719842050256868937392943952574171388023751769435762675220986097023363513099285669564854387701056937199224007534606122615513593952153389446730168638398601379904947980380850347554318862832626900582219556658097285155354321177912861996427340213268919583385973930950700122242341900945125354200293371223312956448710549473957223988269980043969926352433973200678251749894984134306331095354259347814585351820074618560374430619536526692626169356300284564015637722609712018706437165688620841436624751642543345472492317360851149827824395767668603016807616621952253345634995610942559054525606569828412223503906053189041787498567416935152068185807956023457928451248760769280561088087965513464579316610940883987324908066311287043091604233071690594451174540484854859273755786311626921692212704008932647722138672772421017914721287494673302686662069062810456456157765217418251260667599271709254322084656946715668233891621757737912509606782103322119562581187895427920506907039990885354205513842184196440936061787520963908498028163417183157332689139052040118205110079617989442768979425276851256943374032742327231286794998615391814752014093524271539573408338818888223589932596274696846534160119862005018476790036293379958785940886740380895666669272296314941351100824512751721541459237974963493493806088972612966681636049971742948295887787145411366883477439695669586141823554917197231715122381722988467246144983775208591854597136448881033075032414818519366550375929037841039755844361576031866423116017387921143409031574799145497218542651271898376079886998495122454042063680141741567804385751915536267979353062888681840295436106396867659652477831555807921625578304136501271531744982502969469706868999559637925087340512454095376642293795517411686502917574379890451544865145751169340279376995621972507605334652840146828350692482383946158834179957656476289516823099669554874007033664789151683231356617301234866916605289888243438084840779749800706606690105918742025441525117420419554673576867855354553797794012054110553241889967729594565201161319917788517415389206503483433848354819761498615507342222488252783828115961190712193464437036214128592952146196313854794905661399547213394987793567377910196048454042860458826513821788249451193249976780486611871184103043841503512965029481780328293792870755647602106929544419390585193333521686319133862353754873936356202984170117454035091589446780896179806447720803741649314564221656528574868948503577060180863429174857052929675936447308342369931101013856532054229502122152695250206767972315110927114361919708197778681081677206572314612935038213816829320520724672828742911933355420836625303206038415859561266625961859208432986642347062316773702112900390306800875146493531248222971408214743522343458545956104734170053882391376758870746583099041438723080362943756360584137167755475646198000089092949873574712661568910492841182510495208475515035185283307521564489395663963652947595222907868952370047007380446954752681550924930129483714832256552568789428906312366765885832438029968637498437791471828157424837125630311588567814149569951605567215201608538896397978755435524300577844653990638614104938894035928225304006258655124209740689475553806850953751397455889852777595983812222104064779327957320043020130757965505832722678226419948527831811095047913417752368924908437468111157001782103363717530193168340012429295782284765753410529332471102485820805569813327235336793845172315563182536668425973818635508761588651491840922681282402153260374725392823511314773984065537678332570740797789689486832660321296291149490152922849506899903343790473608569777764673800673456412980693638333270351196403276227450709386811393821332665197437369150079486481137186388496950614210480969173513567815090065929082319065350172025396819426487886840838274727538347462551828831935273427611744942238844612620902332202764694924216314702318571122017346307465262330832367481972805957534267252317403853585171900826769213389167501221040024392387821480932474967342070987358329665429810786400282246042277826676141869431916362117574399094996782383539530639273676939283981569282964688293764933227642326945852963838054586240066426125449792627580368901551665138953628945694129801665236239435429372337588196401876463953393258541014860569025438521589421434933321341160484740369096639991123708332609098232511512673016515279725486585702845962517457131660170163137538670686531462767709248922988895756169984291591185081025029293116146018640740752877192442999038028551263342617883072702096239065028253194939751142022352308327420765989964481741203161107099257375488056734093016486012146709821339529378266664540884721309261986322785347400335707064856949898898115163484018607864498752797001790834479436618516418371574004686790939767563414378570438789114753801599066227977196567792227185821420504515299610197006899702329452732818162982807374320665074438516453638952630155893632965114270530073584843758894580843083089025272946116212158612747216838759724240146566880867091025850184019655656800329952512999499111511911309545549086980987091062224593251056020007941427192702915516376439693913608449194716295333471168583375821612992327908955385947991226833195308510097791865080901003679617295541009693576710731390390619175980500568633856731365064950305387566052652633173729028565413458196394359111831564426498594697699318713312544902606394810061140403755576604035115516885389284138500244935867147224451757819885692876555000105639219415948870714170640826139448063058810781025561576945743622991413020140702456292138281209897494052618725257080173812809776208358894515615680270507345434737644908101152061864965533799841111757378475989394937085756270619480968703205527759386196638433801896438784917941071466450148897321367551661344681317228543774743576533137561151812350979273153726651399933619171714392474543247732749159121030292584622357647549302693745719754893009412352337128279990089358730716261006267131370411294900093391594782602372249678388642792546075154783584706726768541788298752112859181298788520987387603435636754549339195919822657591316976046390747974298593384702682532174620573578710821097675614095910504049396207395027408599061292595117612668067261306359828725464441320507066493165290330881344676902681463152440166492948712580556975257068184100674127194702338292780235182923328579633478992853714690876298564642732518993183610354050376057956389183775078298978409546126664571689822496048345909253287879237619440628366759556392880923925607145728062425830578679279591545530012627570226211244149770569299601459935642304130067933968778843598949017599922073203856369387474205185139593234501030817904776093722662884432613818737634138011306926479688960351955313071753331353634770791568058190733447150673577365333005795399726544414873639532972679300149149215214141764480423373816352144034275453598645773559347462909451050772205114790093495533704932546484060975006231169172714082364575391201877392066776054937464299437088432670672119069557225758486548633280440450393679352580064061436280896612731788349915663298935677868537978176102526263370647919814162677893812434564455092990929657756438832027457034289220796086201873739682252317477747833650759819226863432293510483004269022846324674828160081835029508898607843473532141656488740217225747465412016113122921664634784825648198060286691708980170391779686286664675643492852794621649772699546902879834976496799450238526678863712673149385309714154169641384976073510869012802866938090081667731091851001283877404070452157065872274805044286584838744592673245203515483290287222058315000662487832890231178592773845488749459845073776965298517478901370084082536777477001698342437280440620127692633329017840280649542724502045133884902976269551840136542021803178686999196820328169385064710619490528055792612716305052301749191081869500522660946848771881416315304565623315777461564354712316099601934387977862664962271314603206592475640213540671259080801557416993555089439768608381908756620821245366139389871249251915467622433813725271826259226742220702860872090512923000771413757730447468318358885171788615734175843007852181936232411949814682157200671878636551196785442192430594632051612315432076822575459609288740211172135653453543931851128378145878189584687138343518698431018326449919412027326659018241904783889072575311380576292616726551030873026625300021892448957683473490644737189692991635188076317345015369226167265798959322731725170432148674756822082906015905337550465876706852729084149894193868210800909299621003436091511707599294747925488074027856826133321817900479150796009796454396406597480762910083308765258638529398790932925182382522570344374557236095881845970865262195889022144956451285882424052891889869496909261494479916771709930859986207080058541318181524965395549505863498495939000240247536328557276713036470894898996412485358000619446404104825624947020537301138268558403434497583793748051247441514903982603761352679398085067972069266958414390345889277370475421193134906131817023487790052507635393254156299708084553239063170014899409970423565631786952159820612937569074539523215254923486224860994463085453257063472232862820876871215814993196907301153455707914283637700695436572952088791010447635511973006756864375493307452700623330210577525008005689722445801866098102677876669843373120961850332683035547812537899681306604813909445506022696646729589274917022289128865053974509071410649850463546569133815824792501657323735440514621460639321266863446107906611329738257903204980632302973640756078212965281411185538924707227130340235318964485676386726721205396940184752832384348803537883180713987618350382515059097653002743564740462873656389524171570833979573977021008264941249915471506245956209352747782845012019176465393101875017442048396516579483555900728965423940849906982035942962571008470718455595699883011966133361699808378641662954847784619925551941114152149015422382606109413956451740308964062782293217524202748376276284713995083979980170997248827725061230398567358523107856544890264600574918188922424876102615198073979695546911581974043083059121715337190501891743623563162942743139523642712167906151691294328063947827778430548576943109745721558617055674088647871294750282121872869444505031130236689964484571523002227327325490995672915941992958973814661934036499615641783048548993635685993235578489287362661450960207559501898699948140392265551991450454013225380907089717417811061497455854741025865650776266987078017117834636983463164959645210577685453230808744850971569339321253642640822142755660566524903967301694757814599015984491205200113495997355561353168744346063696546186633584327263285185770371284170768867213826254354293922953980030725240013171056299149784171878311827216061874507981160606057523652428719851769806694950388026607862770298545788297036905722987177561261779333550756701722054622611799015020306338808943864170061395502129240937788298172094054001351949584154241199061161739383534250807735034957800296502662090220230234316695713640797068903516413150399502173584018340038908057197323646762436570821486223769269028447612314186866227060045372762165128324499429127928535437708188911976565558913928556149659558226996490797858883516112542782765532687361064625097778121753085952902798610051090982901481740342042647639532321484528223063271015354401277651357716212505623381086289137147762512275623577544071601636299174175736684078399073262254156464262840382574113982143629361230050257768574594687443199063370186796595286019531288935868148133992501549367140597918032327546749416522353601473017733271661672939540607935421685294990404739517706432344651851576599640487093818328131596721648606542705082210854634313300615229588312459563278456237907080796850000904161498425491945203284566714465392058760909888636264758368013440245568128570757837530010607367057092992282071567905897880440617273205546299065478434215420849158482700614413445121005291843822765937004045957707467831928556722134004738570367543503249655422800367959621542501670610249106623314521179456473807916840962070436328705339701742191496295975552876067198469950718296909447010486152767807225866945852822705181509250115639464854365631819104898616406210984644012924166222286102764452298488798908348772246196069611798438835658746872467344254331059567368716097082594692092713480539597840431640387627500819505038800449405030224144184330206570494908037981553223464704646842768184657373734684808660928527572228789107318890297085256169325022617613599330185110276930243006970200725864980839825378376125424107308619024229181863087091661177568124124864426832938866065791992995087931363899143958797770037894150386351580580385774567813764333473741385895157827680011143316473925159999310129719346730975090781492060179421323635135513362794195914555813180865193071315235001028407504064543052520877980149102323003543250185461865723572154717166874305411418563275739012891819349260874418376776215047579306597789941931436198481399624101331260778497337167322665426359313498696053006923839575185839959338509945221048971559240652272153182234888594823684556312848588875099899368969201470834289625588633387866136751273089455561720256549202523975381440683829945885592201095440060868963124953824397424371010445610254803208945071770028012528695184611632029227404648956635586249258865314068273556703418849775581063678717460172466979339829714401534206432692551109029033192331930310287983943219454299863185201651981774841935112580173792385479856146605943319836631616659193526265807598069895559043943570204739379984787966785629290029230487702307858580708313683188649129882844426736163337974069810312434606202924534208585102194396305386205931728394197376426409593462729992877616189122169039062334844537411558757337207688142814417942487257329121892353660794171365499060783620993839161228651452067404885356350182602333292549659716525408961599071979452124290287188410713989031701773796670049019230026900924918839930791268734671883312196685891019106399168773553572687858416938283855562832764046486844520030156712579729805351457639089440778910026501530592617059754444216896181901450545519105261344506566598708996395056734469657833518438644913127876771161809243874105037863022142593133652769744723711640094514156398380897772103556627584004858913131650543098710414238980436749407356540014839736373193243005493359894013476492197820381711353092057941880986846010195104807899239597399067470171564807171407775739017874772696373883469974673951764259265671589722240811576409409460525502357495256832348842906899070927827619952270483292296084586626408466773432572058879550604364428052605738733254552258180215126171120436119951202442358136133697970137246553013703757142844817113855304685058026062953043831851906227240503097323568633637687627852395216069458501232203816925194360862369475376237271537464362173378431178718807570040531223516878777650488716995836877514353556715857328175889513177013459669409335428424177637969850810689406436931421835259859305219440374631905632601554379285316612304961818125775563168879404869655587637983523619724358217140383231442517762551609928644501388861823740584788112615462736146042014203148170497687872283131775504938485829549764196382885896887681484070388532136337967457981929751883214636681248913623209900706810581817203797415835367077846946329919458677914877419173952058101259797451831592962726290328470110649988898851838166214698772339271048847589337721077393348392239536942594759790392072561407331795113213343522207124668661485084635456545547536825320730129174377163848144243870870365414271242940514534849699995841285952588516320732001760551158457138183615038302510925727597783290378292513912792547351793050246115985906368472995011999876453290454212462103352339468421720044994542536615125576238867619461572264530723448985373136968595730982404215506097156894927239436299713352812031213558107919562247703438343607274789420460197072909042870422915080364793159855483782244823276782224656709517339338739036044664569168609108888192767159515558932282154274743148619729862185012726167462357233520243213887936331041743688452189069170503307862194416272080980421847928174771218215016397759041126648779966031512756099321943821423633462447734571841451216867473811738289234402802386124603696073439537267852324334640248999136871824071054958584373420989327212666311495636543493707096882475872743261188839205099373250282060630414984408852353408708121445348473187498926074130965072094402520907058265527314069985022877284877289333901967567025878397218895019288511257083426581457512085344588315902784186127445253045353260056180379797588420084870766734823324374984514203543599198777043070242709098175796790271000713808046036960390954354335772429738106926727787131071324152441781092251515271825852523794495480270333618257284982232263576873409765695142170603960543124800672257401708224607544023073687298039463499857794188371224428708628263503092288924483386182493091609420718861418248513253098431632044195093528490012719233477046593677430415796829516483509165611078873383968193161621549619703350462998782087812447084422581289185814827447660529325065083352806081530618015190190975076301182814449440809853389522040617923514442825529268184338312278756744733273722571903321066105734249138286474526914228922900869934694183193357347380535204390834553257701405107780802406385437684966296670966013005531535167288369304400011355107265071891115003377948607532467587587098621804242392413804517550714238592551212446489107472128639460140135248197982576102787204526056476444916472937999455985525945849274968570747921952166608007521342600872329720855320073145925980548138886684521658104253636574580492478955952340730456328400731645795688024812917699857919949711233173178751680062966785792718792966296525662184588985315426871290691699687462532950244310978236397067596635584409239487544124443122743509570011398481146174738405833846219011318392236983468680380994987537212798660300760035858170155393514156739363272436200268338805708256155523407916850359703485107369616307024135163365397436242923683245592403820585037309653441251999674757774531568736451189373847605846403518920530036794116058087519101920276683443259739376183513506898961822940155027715436006790883665831287343368940411140203918919397209588108877746455146917400319999848405759414899276886761752080278277747034458334982643335569110243655431581169868108682409096029676137353747407515471014530519389892164554957238665282326669090006233768810430386243723982203190484333432325028928191150193568466200927828320908883313756354916851569354316698213432473863788586136029144605606693913191928034712815471255350673110535191584536806239200963440754613214547699863399626344975161664453055531411281497255295919926872637045884172359348243850498384093891323172797790968956055201072554913333385542912489617141439965354630675995701564604064610568627578564170853588558170128870300738827706320741363464390719163112568134239718715464290815837175309030365936069089534079801416672046534480109035218302947983228775466263829454692570192541429416209477746698521084554225737835744138606590965839204640311266481570133007951183182927879062386362292089617514880097777516880680096819886282864923447509836211179795092576852961010180444365485101698043151550956727575931877010392750714922410575305768379853481021896322421946633730275708347925082408931922743433614448144662755673520369303466599650444936451261804685370367832232787241147636451622939235180298629980043994324972990597307201787397296398067658593461015374232752540007853085275098627419930605603494515691580599909234748881246159511799930538301575017728518734221179685869915170924362524995732341130710837397012307807761665314890324866381361233628119853433712688514807403151119705434152630977050648555940600394195988201018155162512485634295884697669679081112023767382605295208593459079220523544097493473049050122086935896988402385242382734589597810889291649065549680214476280659621612863354531375749299727915493182591027512927299957534468869636873528862031046217506227152706883871505925770043963771823030946137377024069450945089334872241747918072957910866662829210435843970027218294791000446465434002870151342703137561283814713298445293160457233774774437025036364688738270752737938080209611915511000215168298784621258231070017011006375139773608107398240265873360481602245133533367497234902392602465053094228408093057672415779850852156717477635884968923717023656207079419239905573456448170203289546693314959682490791631548358589105262539246481124084736811792463181362571342858887202501448941088097508394381222288483057879147631851073710433206779178660790473715161385767780747343069902925438741454069683499076402848885081365529778113380536051664678413909078962298953906466537632261877295872966922256572097685002953668032679590571458536819908575789459623088471470020324020671222545812233264339203853236770426088394699274976536471349276754620640040977225286654497041284689734085833451243931360644933025447573587038542506428110612708115633662663824051034750184638835927146260400421890144934025698539281038697276449457001338047702482845403636931222072218559181689131244869014743960884480492046012180336371873105725135073211660226434893467239782865484850704932946927660673463256441845930626550055573161650578837941945184550293527492284624978074446191167567561857915241537921723616179084235041850470110485289946775074572050574351825807922276231987281442294826237401834929826519692333599984697227747814424667610881177612280337667084094227269150427824830152278990228316604729646687858586072288369926277005565953412936701414034225443008020652582518887546308310533878327473728085606905947185842355147458367423085478337560027959702706400967844835576964739592458357805307340366599612083069332049299708508059925941722962875176192753795626458432966812362448931750312305856103163571773144221483140733693901703464433681067978487193225109423300841043993918787133377479924315558136546597297079870254555945852612312754479728046279597095776431571183498616006362104047576248003630050554637041264515316633198052799258298872128030427292345940295408989005688511299637282845513725871046313860961194114360123527846254641840647175768737326235288772044810573038313605320277487731935618825184723467535864451603156115512049215299862960410788568411357823042406407488751352844966812192587593115222422346558679646710694053989002007460968799080226756172065790413770286575819281428269919344041542566743782647639600346378096384169272848638457673055437904590345582813031692088645721593706911158470048315443297584689137729491988247484236214185135959460108267262515077811244192190581532579129556406394649083779152884084341398959936496396750590737383180822647620235108969479093497948253292704505803267235147176188713490395617331035343265040527856892793342363652306948409406180267313044366736036700625383773182679792753165069204902575330401425146731553974904658725382019555431857800322889337148648099483420241955640487282022932462098905333372951296241118035824790909456387271325471776925610266526402151721828537466477372742556747185269095834394540961876650092158449587775684774743832974742326181919521423007476780300046087000502953288549361594603525400090180541434577949262691600698311728757095455534197747061773544708888392318528610483829302046553728002455978614297471635945200657856791575451444287470149110883503601173751176563161937908947443989823208314302017025480172959862634241995296409531554768383204672791155443955814803395917717189113385832168510357196865035058905488563564371122140143629816063031600569478106789481569506754457046644343221092522640468485283192630762303921661493351580306159676391530462494944261231780219422447243562626591081078416788397672963200852332605979173793790629365708934259099390960857401270726636930701363822033611244326431898702818226240916650933839096457817622376137666007306167189996104819682648747351498977594010179276250728865019458882424387525649090311443478378266683395637866583361889068739883844618943594041321553218320975588601556514242380269050080549350392262700215057074507699764255895047944642305724345876684481003964630182538957924559831907474088207506850444448379611305960303379107850291987239068167241722439847028483851506570048196624662271271866385642468648866990677556903258277019673270370674238718745601314800736528588471025683652670415955871842717993903115391173825913848749396108645902960247206090605420762891665424449261435955268147447080248583064360138139526269362976155475329650420593035583609116530073351241311414834935166711179691651563448963153842480652021350143705337529630221438630956559396136200801703363820694421668711916169788690191162797682713090644270861111773030618159140605198715020020753993351987873674880725169961496893660874613497817679837339054910037095936161692047725638043522302018307834830818244671794028585078491514062027960865518929128763897239679663918734522065795368171235181520610420324948778006470554625235147826150299236226939552362051760443882074657784642568313096768765264098097223716875582842347856903773356255460354323931525956462156767934612484958129684217525717992796650260857431294858387629066392118216864385859234122418262878569704197060102132377805079829466222572007468062146016434768581069943138999662978192586489381628259488224477295676243782955513749510793757225012267846609864867765253446890529206208998289396520836147901605737573820665328169897247103278114486884381180899607588847895128138894881539116042057348417975854506597543227188407434339394282711666564157914519362007835979229050789364213601751131155713483776964110987039127260806274530187104632907932892219431686976903871382987056673787556265177969333893929096978013180638156664240620744318908057842366840182887205702007924597308891880991653621182564816660110886139315262449453723238585941691183284754213799220834931542998479622821469413392815087832407276332000334517366480217535662803844861847058414930410520582090903149036312754433514698796931764798325203773463265699080630337505455098655632511696325302601295961467612470282503882021265952026739293911094458357237324823146576735550593905714286327260851094311999259102207655673944814181522787722584806529141802399656661443029690984369507488153678013883651831114752502083823008513991206919893685733094297496798446610648936777943966657612514529346590641388958157344067391332199476156828504610484744801350338977774518020487341401744796751208826339248609021040544602202968764399048270030954454922979268051212254723281846835028028621796473693324154090649853315539912871507637365057937867742475864652018480436607234500215757162785875884149701673636545935419485847817558763361175950878673012556546623526564729491150258649790743786272085843510098831863133128288627341000920034387789359093528245075470773100614699075956553659253861453852531312434821754025858702072938498706357907848939393757026706923249633952699661061708576835777860600187127076913343716914495670419363228166223993539104680097997291141547150956876060582215326057158515423128938146629342540644260617979268858938249009043414713404856567822507414366804863338145196164586792912277228670801222456147665725399065918316551974806210943923925654268122922300410470384099500234596394106038174880544390366397623810457700017526607755619406030777945620225808866229445090565997882189743476900892378068457757989729216930492364368230673937215254751426317404145494209512156237487571407173542810023195244431902086704710890851811945406990138968048384599309464792478467172004313515125736524496611536617059561721989400588634294730619614544685900395923130525349803797457847145193797063105199349596021555016306948844881262082750769703960454017803222196328712677840467630832352065194691582863212548809284237849868103907758114546616195579706133958401482590275951604394117455614027161361072337673893401533121815261870275276962583659091051791369743844055085897412939205575981744595959413426801186184414754411930199093542790725345160575401826371207235752477230939545026543605447845355740902525111208698991776017027519924377456739684487612152385402748577588146086189133452539858546884809018195540719978024487184644591059451720142226965528873834111279228421309879543523554236704138493917607474931009073526310146193874421629831101620303576793804537510455772238450622770469019615296632101787809217164273212597217134927305140736594692150969265243105278436468576376742557263994297904072412470870936670728052574438974938347920885349480226588237286020882885184149497574244673673415610615181268352719622460487604929786626114096161840408670540634988348989353598256993882142022620417691967427040400358623531002556563349024029675359917640779300882673799684299336359121536785720259354181893113739463852002212812267608917602042615077467140958240731072574683006453104695312865409996539980783054925954816986256033292725003291708097089613901255355403793743787162855408978741045271669557722716356746847558988397963841390527597280344952290065815102568990732514102236624152026531385266811290451952751324414666523815825124363448821119207694530616384834306209069036010946044363127169225595688555871214987065183376060714244839050360025232465276027419564054532061813155860709442122167381124378805465237974190161067687711394883085407624802959621259534962719440798275259404982853391315526707769704465906434834535386999931831608907026124950087923161203874097915699716142632097083198542778885292167690536695528407054738020604829011130185330086405853731533770752224917128101488161196985585025261132217853522412912694105481731886017471106745237682913722196591372325361344272912654335883288688102278020060115514297853484774116743861347503917446217677006104401284128001156011642965668919972483007175522434899770595509715521009700674067552137964436364461211146862855450122145691629510882314655785457282166523828748588088765101033744824952194798468942145163723146769162838306413513221245024778690325472425423029857346177072978997213027250589699463773815248589945866499224185025569483528441708200234363191353470392197035795129509212250375310534232791148800960951706564685874448783353937935227974084127935145929937684914088099575043267486289195426691474818726556232665631620731878531187704585201500658153377965751617677566268847608544571500781553923919673683845288775989502978849021823442855692247543187946693634766256840960575875507357701352443921831298189490018810168984923836837832060712170955328180103217653802688125825200316597560587543132058013960276388801384892112536297872960873248251848471137298315908788120419844892254491893230816464082835744972965615552765005912119605823088716767429865346410171712852754364180439730066007147759461361980790265881232189216128354109868173883163256014244707216180817385546066554389400896826255269930655774978358074850912010442972270979804706282690927802987409440748258240452884437948526103770612051795871045228915305660393897496738200886102344361314097372052854269460326832021989048807014234781750631130526790094801441085338523903829582494071502328589589578616128799137524427366585299445311021597788101442744120066660779266286445074369046893216165371706710993285962134948618889696565486901588756914156900907794884967939428237965583497756141782989865808441831495073162899078653333918031055552239607684274393431463907887584978917821829619682673867592131317288921957477145245073440441355460296926468766210849269916167871813745288817409008944774814973937783277835999785406653451426531917574444897717503316988378283803313998165673376501056286031638387716532815748691287990450453198562016759834426832142077567197607572637445033676192014184235528232058423494740043102391736171722200624722871921688745661227176422773456563199722581873237168598486523391276625416156380451820110380861329797252370173688713904039967086628015849621781465277306623207671673053197033910192224326033333540721883499830683368644798378709286072128686481707044328727391316156396803848013482176759624687925043983069610705433182990195108595938057777891719342555883880269219735086427197545930673864332200106605559838578770627709772176300209822009658392344859944744472974833102375540636214741389303065813362285107517048750708685482076986424811097950132554506132455815730808422264559503996204202740887423818064192072154297110704085881329112874373630533952767102526208922023118155588751266365724499567804384493195596509276225399466181244186651016367444259045943296993855553273213971695666562141517769904746446664691297411110583831777133130900900007271221488195864285703976447286836837781806627868540435813417325769390549506940188478184882378199974812358394711817113655568195492067573512010300141223174054162226075160396062856470328855776426396088153476800548754278025649389113255362115661088453009012022216262105856047569359759149079539242955875635771977941068169466425547990248408248453177551778471407049626168502770170356421418508610848516003636715017685906851565399249716038023441509050876793865658462294343181646072016593833466196288611144647200511216481225424797602380115446322567327741417558866287355305393396176446769868588766764956265812034016796017873660392257285269331213119977711452029025985938366090592045150728183167592652200898734361200545341155682086988070537623893937381267955124198693935628382393015766142335618377714272859796499356378336514278914900465968800986157745341272899594252171765232190839263220657689339820445305227634423476551596146500107592360098034493800663738487042998544793052129151883499981007995524185829581815058656021306514764669786806319098413430092237405419664470911038664767607608192325228793764329501532132872541985339008995784164786007621278091547321492815846005179270810481531402216297656976763019547129911090691963734810423793841197572141083579770301704898783604247035429376368432594000749440787750014056435693970446712991537764084245160127100232044709105372968259679037710855730688099282366969447601729936546526537853182995814910187921366245862559451986948672410959797729455937626261788622529283673571991012453413230689657618437250546776680800962188332753344756832392858117080002609058325156757103414981767008967279323248520159793573686330987431130381177750591219984188747739046331720969146361865657293326106975404673144505766357856831127048397613238487396825875445259556121216849248607959470885897052940324823355005034507921645891044126464487674261409850203700330188726798201463983864162955441688694117467951605062337266491725182936667118649436354696440982832941158949634645553462492986663624183281583964218509071524639540422912258846937151804219735601045644573002317800978591834694162380269355948684164139165964319957016160070184728857087749625645689556587900825870491381382587854635016364203396813768474310153790871115033426296230002419826887565829717087538928746078883008350955241356528121749342082679415637733422634382811947739443935221497177660424246105957808399037974624525638657020625975160442702788727072773975069678330574268398667841385024044420274632492380520466805623968379245448555030910926990282559245485749744629333145384697435424581047077262764036445968406869669872107183263552512598998169157375799336181737487895457545258880965700355748286219646301967579896240818712562367933492187187557173098859824746830128997025949198750536326523130804486146146934798243098070042016189479155870380520558826894507127801482696326711678993070912632135952596593079302129790844035202508529575693396967623698293494023198462882747868225210770649382312512476055664804072561392193929238617075552893024748794743278496477245916670933778571218230654101974218688921277373412222456674784701003706943464334165361135434245120813562436580406258376572896473312658698676376613611198937529515377820570659052046318513213019714998864788407485515282360015697129926095236791297099741115258744790388604113238636610292359144116699703430632864143104941730729874771358902456961751475172937636589400513920248736726653873730146462027915621602787618699998620163657103812262995525618091796131309066124107773117083020445898530824517261059819688217382642623546674588080265948692309487171687301173169277747238662636780471054607562583334163398134349321959151239656382896836156382236160346964656205146133565434760136422081177438517996101317267419070092370269854650320511020910652968919083445412983160704286672300650304252094413852494837675674590257134314573807255244451178601070822794033269380603490042351706308579546408029865861626855453205137571466938649291951099440409973696180938287342286276422747653001479438657551787847412810290844768552542442342271786071181500233836600990581774002539915354286365109474147401935617992715882236851230838712837573262313568536837214144813230580287416258223706055617708082578433198260180309911212756773797342815311966678085417886054725120727892393433278856917393078993477930893346759172219380008824622954984112144377141950476958305338050689929866228372059534497817790861583282275150549543734532232042990088041842853200432379802800867250377416053421009393732925808889342468722091295104840924708272797035646554257210608392519513095740755602096395564190421643621626235206058037392868931965481412485656374923449518860403565207298462251804343665976825659881570269418495572991060775524395764096766372341846502691152795405919067839698703828981023289398790108122619319505602560166886552873462439855584789205293495135881839333433206597282036335481713696798024215640612929891316361312667087085304780096650542359207290216634188784961690284054104994500772448582982599980355141867679990891362064861263993756295712782903423858149837520828973914315568854922932753704610585739122703965374968888890389753710308007013587057594905556963882410420326698793348000201841467530389173532712945660697723872408851933481569631751244570732509147898983885014224475854529562196823413704688814486881350239220703047832400570016992562456121457469640684111069651335432997893536500183857219840568466130937962985974802303308162620183615657035991654320084755868620463060017978395696980322208377011579940510462758792492173072745900468139708727971834413189489742301677191285034770305389244123174143109019450141638713469987358348073763311369028911233545921967087124475974330037337319560977947813388880550384051962043616002355395821763718417537127544995062723322941562591938281061950209972906170593405717208065372396729037732044824488262877352463815343093076724517870510900488045199130836669550360914707979727229117109909578865362993353806937371090437700778468134902260394663530038176885997907999526808550598800011877799965090066755824391559912411076906937602586235865761289344908535149577022551888950594419489976256359825455526288870669662584205686469838891772855616536348520987768730392631600174944642784983127095727958096685489511924580835851641469589182654707759034058394040852138139065736019780704622032497309037539861928306739602911729819592388972460794607630642361812248915372729118183662008078261334846733189380200531403432638185633111214753100726301888997345372417653051316492055172691689050241606892770013194365702342201218695283469581544607820876002856661879771502146455802487768618215126243002588969155085085057421116444559783144293259154581070909285800235092718042027620125459142795717632170675875445850591954594219274786598438404656535957221124463274199236808903177699342887120244975566713941032879403327868434235808790479984317131568203947885696947660536014106523831598183148302949339922666273191449860052837740954687165629284702735979747423403851209118953009664472374432985043674804724898004014519989938400333045721404255407544598082104163517210989762380847355145610067218359179781051679296023036086016052427596558965953946859486372462203662627793689408362014273633809047300764605222222592617750854099583057621648480976765241418030415181434601842542602374356177789889046544497809083773945776723590714794878508967468925560149058123366584258393228595199087502626534036926005165034395373418684705079148918104441878792506216219589025195803166349305835712545913735466398595876645603283233607768198513660663860312644715711266772575932936979684388342756143829011982091020152419555833776674778820911736856883264487553948415290997082990105643231439781634974222338871932548447246488275938864417868276740626113841706747517759355400851591777199097701890582145432819588366126769334984639339161892400982442042536517320517131537898450859779293062977232889813915500661674168239554084847015420042002636798248150298614197734890999459101996865771360590843737549050346801350520794610670568754657641124249144214539672512626101095063892436105237362185592068084393104182172003953249300202620182417334209937396077398048097279816492048401590544362779182563974030296704611485715705011883342062278844196207927270012334331741665026593533329376196851931739368761138710895874959361827979881400918686373888025719474330526076600924222827659599331915411512034683101693726047361692636018592188736241178943746896991243049957416990685946631860276819082022628973283807131714565674989521429437468311991256764986084440178862059886878036154833306728674789194926973240618414417905369442616386540794347269353347795619403520731009304511829202654020456695424261075894920509475381799372941820971773391960887731540904987860444270509101292962047838825710574927394322454925047468694738247936334739032677481211246659411412955014827087140833550373635872903828853157146071431544631068526247672531998482924464310914372367182199455361614133846224496447614583818989608046154220238179785124206693259196588033654977417200749821666306457979077794642478289048264030466405432691019273092388831510324714971624318899124056840348903286017028981763878597058225433857118520652735925560760208920449535941684465049543960790540893071745540210288815336916821276513483877352071286603528230537592542411535002964525593597352476412957741740684649181637699484405952200943346609595067157730867900170561324085746460079118373227132576845393291542906047617668673523308468185344755293346820319256765380013265124563577160116364890572019494197989481822897621865233859971244147757671033014492855249221186448989016443053674557526501518585186238412863652898459390709972367727953942252193456051324526248414286606735726834811690161803509544237423973755100912602883935196193049093174002969944962346387690208838106869514655146746629570807517375779427950904581518168816716444438759115012198180882121585213491942752967999922644945837504664251073281661169987603105618725455774664236327861761525426031383467751686703033832482851546760551986325432084445523616961398903545182763900041222274348202819688165872500191186078058452500613238056341501977779123664349395926948486857921702117783118784975367741063082269442643239806730657703313615141984618276517611468401064392395358203241650755430183422153394823488303890227646458742968054170125926625494502107541318812422442314070237812749536014038069683969880199374011265773698608459741386459299361722801647417853165149881753294211351274608412158653594068572814466759276998251077820839710321658070809093725857681618501607476993533945328563264205486808276453891638470238241431563774389975237910948000613689341701311601726249348569069290386677207501918801988423285254455685252450988695875404876797026807097589073636827173936994254215299642045424615608429856582949514209427481719653931727233386477926540381262096371788884948128849914413004968475380270932544190918917895486302935242790948109524446637576193566303512405339690512954416274026817074793233236657705643863317809778900155665960947274024458546541765906579814042604014951673574264615700204579933279794549562553616158799366622092085435549448447197126312687381963058762953845704828324159053439943730690766860270101434696516330388195633773058650605803964728014424894194912509082884366897080265113392841150333184316802494634241480946758206070583372922238885039184726332609831371341011005076481684567674262967518678440572707652567292482760893390163208711839687720605592318099704529202313022467012676509221101195122621998770765919057450265061665633981816398893882507614002426761126700421346921462295621958953274606457585499797244989810119239149044796288910582108854531888712958171902469621122978955942920894724570607909362137775738687226338125838123620466455147710461850154623827694293052830330723144608089233208043810555991938507909144963103474212774812818948911775466761706744713805036116406268349596699098771980144629665743126431202769272427376814895134250770935946541650396761573695767258982768590548531376009097712504171144142180295033461028490087212952367862905821810621018550808801112146664629597436375454521005618320760692062349218336755877504586156224852058199152294911663266709081782256125389635138137609977609516384003422116487329779424668461579533894702243667272572789109428037999297550442698272045799032228218252008273307960661456994459529183061491610079090763799016263663543200656237651029665456656116509249726543482177728674744671206376930798361863969589592745168912782139803764167852785811848266588429461842912098681820978158145065272146055651921692645393541858299866711372413881512536348882531248118446048482715687351903174438313397292802393386426809762663580608340060067437356278311405696977565572372029683078905540534281654493677398444449948654347124002718434856289261743764628922726248399779475631656672477115608313573273322724555186996063807098017646339419648620901810389447597279323525584812205935670589534514506018922085081424033792029959626710730149046710905013869501406270415461218485099088015966469179376966808345983671905529316536268209783953608716143113807878090254888697724549341584724296905285393879546199574675005156888127224241152647042162389918561736233248975111979301595175841342181083197317729036258783641775568460454821198385399361103811937038774373396113247945483240909137108942115673411784873646225245315130418585288159949371438934709718609345381993996463586945062768172500910866602903956242661964519614996818315684843023931885372016085402766665133559623315844872785770494299871372420675597096944783642856011234510523875041552948523007964354234353027334908468786668274588560677167383049456193794609762328944331404567046897656145264470270539791039346500877212180468194489890404650121961958072085468128049182565988409522307878971086545587041031867088321574059357010037186476709649341865652543533129946385207568871635749898128141985996413872391312812779972079943224802395734720905110964646847726116909802040561246963329979491506037921205161404274657838793202331106484922639395775284526694172095873133260880233053704462777633205231356184944626445467179621387763690506176476598647254212737571258783517342393678401104072741330012575447565947640835527827417696628576655392702995680413310250260488856798752044263808969575046543339768098465892647387999590238640723585824487983157902620425468339804788458386930076922014698637628897930001250150368450143855521929520426924532990871697618967591857459983027723615426578619015485245531320884369860080676209319517134683613920231938974963817990530331374739764559099490584280235243227896069495844084995172525011067310031035409595591694033688230495652913499980203143972554206694033378499851226714202618317145870159088577833318300882043175424378141153234893359814202277961976743771424868979283974337851001055464492396225134888543746305148249755336605091183591069845357877234658371395486673972846706215987411842051593529366393933826694781068170447060619256395962872687126793711059094058149603748701084223530536221006042990905639067165087190055959568802758023861088140744731631369062006726977680892172029992348824622331066090242278796122317172905885716732812051540970556823800156253462675657343837773713313878086452690624398789690194104766660355419593350857787624012157799545711806788424103146021747557068811654549741016966200230691922111615630578311116288432183114255550705819126959390587695149372714530312427938180341557854245629316911320472408137207229838600547781303044298707861716854960446747091639885766878044366302010349486168212314217892244679273972572471306185316861232267777009341922541966718918991508452114727306825036201818516665722721749927076270493555653925986211021479909837109646526681216999904098664747134541295169827018789418024996833270577333619794154578173045033660172217294849159972273337493250507210148757025969406218569419813540089910963015117029098135683975801712524505715167488960893804827318823758381059024825549818727429724477759144909038806747937141050383974799391900915034925616276552887209751309302552718998341654979503922400625611996819646632234694219834026639635522087956454986929632819259371516158118079786382039291091634278286375522004197283875502622699751908164281666099168413397399710707757155280933623887537190443152763612154289504154605499767436351453459949863412177577686792370348593943438168858262969392310528501106095805962911593477950537466582546220395861460919185462173702392564039460109158738423039776328382007387475388004244006268618632679876606676405243476305670195516783807671470149201163441019686429155464989578010718257173929912119986645524524035973533549411487288519905533812783351149827764084298703516892257290586113482383750090878627121970503046510242486332999957869007886681936181802362611128506468709151649053718331652185147731471604643811414475654947081135869099263620821652983089374055395076422743487040230416019332067106168446123508360976445589383705313904396152258873834903861011544618075586352591711086607542118691239697826739461449824742954692857381223151979674291376040758564590839422067837021142886839283158084869946450121647216187899083283859357066421600438951621130093339377848589372390151078443770377738768792487693609189454979007099579377941096436604537631964333360636935882141577966774661925994237776487493766410355218115550912913900586154939412591368516348177883756530973101850826008014261729687735805562207145048736989693837180788454410821104445610375156176090450034623315136478214133882451253902030142704933007319792237865685298703471928989262986169739002245850363182029967624083239684170098969338388042413530782083085468400234215124988085917332152245880375001394895549729966248673099126564406501874995397858523020644708805668733166732139328028749154756096350176622924941330420525053343440600209204861235888190867798693528450135364081483500353652448619308315477438792176612359346341383384837877473210776805109695261121471010434878813766012784141702682776894825082023112780724554815345153627250148696147660051092934800823948643247887163507133585543797306095441675485508638931093145977221861199868475469047525634153030394173633157786378815633045610746436534667225111154908875768474301278900583198638372996693995153900683914645177865697761814721660072736632648320091053569413434253975850575736850411384465725272213126124029414203806390017070041321386941164155414260580573188230759035526823480051893052726387150162687299186695253128603811516212846364707702110282132416547655698209010985449688640553748786132331176383566408192780566028898640318475783238053496781449104387312423407798170492453600680119391260454939906989623152385875137116685291575808457717270186087350694100983289179634862860275070318424017136334948926020760639080241467675291197856722158798201511015665741399857530409794865984020007370144504408948667179231911341208075356007759045837606227230063951582546221280603704526278823372241362360882649319078127391113393987495909221968597093575124302224269616077485733381910941976772817008215570225563825898657919806921600140359956220496422506492206336040534289844078286200652876595366055336503188468452751359425740891715222319683806392649273768139180445087953332231792006904189816765294481689945982941495402687061567498458383305670794406411177792819218178520079324794859525108511466667417704232449729906222627829026388906973578448010871577681918642822526706882874812299759577312650225877365346998104120718276027191304884773011438616326244313563161496869214603649364981029313995928539942062091477013014497761390472903588587443321429018818585557037836369939932913303892788908554584043002247651025651224951709339210691417592450398628776500104591815321977153585855755326303578132468777520874124105574944938376295647312176740683520691278334847383519368408835085651970505680790011758325317430000307896632315345490361588935239833076774266669762465260205988233546892741037745143503340570185561113022741561066228843472770525416121046652686899132550787660043005595092249141870757278299453110751110679473428537216205649031462081185911558160753467680961007264207563350249923178949412100794937157751746075020583939933264806090749942698227714399435406311266741104387131358907969721551589059388274178756992028923603454370152270020550300960893725233027027798829333076307881853828719766161094315446072750622122377133138691726323087192730048962461294815075716221143555725205131681760940339247939590461105788357504799380419492668891196611363987582472461319218341561093645405627541336092829670498230861626486123441909453572020582005798545925250724149017545435308561957874510182327125022656013870936919936570309417035128678102909258247436012830554535569079919656553480730581982040374199853339008390840568488769957781013070392351962030432645857339198248621152826596592083600978888602460090861511674948762950619505239341412454992551858853388576638762511684233277968396443854288544373895923172231550835875932693970191211717647243647615390176724766757000599571462037674061307877943001338195509780192749607034550140685266637018210632394664550185043503121173824735581602646602430036328957980256595013278544859710527688418008392776599916265537193511911896667912938976744444215658803004854307068060169583102422553009045044748527070140234617626750108894775120061425379543443329815766911974600345839704372883749345544984286082397232288398650094287230781232616965723208392663596129820120259182963631552926820483780910744424656215137926247366562237122810973384352505127631934213538062155254122225181885540276702109170018627317095448533925662262785038212988641798607016632735002909317783748675039115000153511870039942774892967428421167786054884913179869486432166287506837841795756686311854778979842201999548495738392460435931587823539631066979579106949222379037132370762387000265382141367984613447484319030339284777717757665968014520790848634920588468201789095125473981560620514072392409692573448842957999354221150437209843030300124730277832542255547548588830909666612984216581873235793899702311023330404975333049426142954629614987426099993167047172694199980097188328047056079530527564578891231874658977482866750022015833832277925518213952621744836383914214870998175148059288785706541289273904128568986703457977688809373234114049853191728491527558249655520027657501712299736058352143491513491361490425777160153050979813075182073325320832556536136203453055374424398564931765207493589029247244201178071207132502466020920719490672813421916015918164106799781467594944261511513058275933330199405067739988430789953901178273054159483884313347782500275399037014139416995055138008305362739444417218161294587214676529981467069044644330608380534604515468344177855076288266137060163836611675801719983568027136594157236432421013754614628022996963185275627223341417702898831264579660797103750833355426762557638873458349414340421808513795545058807469772202853108129986629313998017327823424154486442652592932778902591356265441747034900015207498718734086006221707605027338135879271088910113665150072432719114762591109759083563521819143409719828124763152504429677815190678971326718689054093582613067178047564111380856824783354403217184326020224420403401457629136910333975340123101787545476611967872815203727307100533884948121853915927418888715795179033924147261375353434651043435789240683069404716961673546810869500862978762845125133338722615157331700927142187214999955177131658264544827311002373099062053766182294508511188414852685674877035984165932447499009804972341365145438494006049320267013322761437616912948596403168339083616660029699974532638339793931696238109230908833955080845880584181469407947875915835290155864656463759419937958525966823378487277767017349279452335928025822910729107281756142391794770604881096933786376038975970551732906031199030865692627919258244639428188362654992905826029290442680166225090211755227363368311742562859217875592487701363342375198759483947658825467978892188314918402389909163494308235545646196233322844063677417547436532231744390462865308597288512445051992670644315191839687427964229194226674478494757451667311306508747095163461740019299017401472117840712621114157284324061715835403831043763697272625697782392813624270000311253017083771312354888107845268263689712331596582462155871005725468869409645720628679537328497369354905488831511775005903315838645498701178446434496273160334478182706551616859132928463758655958438469492910601609254690845738596059598325075837645216987606152148646547103267382114115873787260607097237528794401219600882130320139995805286406509088428205024604464727777610696091071682097079656864269483848172687158000187597004976045278328208093873727730629258521890339471439119684353248159120955292515097860421326765891750068819852432634934779280198362283100038587060956477963693347115145355803847591922049213112755926269964754389572022807951891354822641045963209426116187758526823270518235251361349192711981106989226470796880098062190888003021841341758129266911330879389838526546633822490662229452170526242880974405766811533682787094332457527816217297236552824608478319119766475498256419721194597092478900076154818585286841632313569953289909246283126672930252755677020720709797473453692535802064808909877117562554104450656277587188279958430779061098446963052610172062272699121310442612901827656542129134002554541113493559945694427071615620128875218452195797439719165229664992610573677430394681454148003248314237292299976593670685281567109196250636013435620045460939288132758408453600609809836467235505415093033886346295170659055437992338300927768344539472447138484910754697421403392414091647309964822203285946401335978033083556796479739784789424557336899205218543356220750605175906529171858562421285028746224020221031020599120742053514657714047750151112139340625425229811636001829988095885211307645906111604368562915801662210481949450869682312830760075168799563183933888711034867665504024953475296276861946935589471397277247066344808498266179187545131129463954060335239818731173785672146949508338365676093250846743367648419398195759788511092110742999635518655507698380909517360226431844142892756419503484366124480961381076157295083573453293151545048107701413212525814690040921346885497897133233624079776047249353250625456906139746563512065231028122674976116540506368555116607479887004341880624204086148199581285963584069671166481776552507736802563917994669636049614555339084204662874138600785802384252893667129344061192488527301962810726271824877070724716097680581693956548614544774400840011651356431317736756766807645473298395775915122732051292630220764180017579241187286653886457898786264461007301933641294301793025924234092409375060431577051709721423513831757890510177737808556532905369274172197127651121717447647584046076852488843077704344580850137114042075832847255442426862550971613301359198605817648697518681561554690505351412847415991446136547807261460710949931253153264971672815964975178010059334412839973409947997250608490911865987561116619488854044073559537285245048056687148945931908574792754694921680371692843419958424779803485797708547693126905859617912116914305057078954800434719188926015921095648502429983430133615573455737519759363453281293229582664136272065044340999095870172341081337408777924392692282654963528753623216555242063797563907233697958467598245215254762957463263559199492881753834445811319654398566645873576983496517352729837229859784247325718449448237243690062499376167653977766046012765444991630711896570055620508829262587668939454032190376824228462823914495854060856671197760844418129632274357063407608032952801617501644319408423146725242365193826708255689018250555719962251309243244083898134903779461938650338431552640151463507312582376057797993259552123098446450113422195223869846745408495963102538897530190624863215475909923022032439380676476404188044059641422560779384998579006653198055703691771134621965773447770928266141914420415567814176466999003582529676886736420998647199431434369409774700860525861346197626212830894096962386390774506843391201333382797581951326016811402196147001777209342915739951781214303369228140672154330460412133407999876315280959372982725401184777489876137253534900253697788575646260940882145627362871330964406888511064229243936452269256719776008204126080180059636160752117791277620750180377093886291912764417650183836188518752765834500717852152796042730295596105087440047572119014645606912391060776174301054122362356416719213906630442677927037423598558415077446827482713882343272331669020305912048235014731702694625108679282306973531530588264980880960580818100569737385807944531084890467684735437942613280917937924265141499075653731103478355148287984800716961437627887745986276651229857252220551947236897550611607376258196976476671701552401925709146871171670986541685946524740948541390399158919116255879311181501420578962799059958289673995240170749499104540584410196913450866675373382978712306764187763511790550749653115710604691817163695334796241152952902390248555032794457355780207331022401719461029739196378245224158587386179100247344301060155961716408914468539651063265323463383227547076595355550969743549603133989165522239497969521123113419570400059051521448269363579709561683061268850339247668618425539421969213907053876464457474204967295415606127319368056806593622586391873150745151103019203873244919609695167167477778002396092836030452287548992073712893932421266557316323751842721879284449436638426159113360630090194907176354556468144081253287286998994420965293152383436340118763746406547226417257542631680901809869895831161354226470802418012290078338893775166194148362126277940973079305754082954783747881553122715011023876711762298282199671824641853086815375437945097795355449057542851622316247879068886240758848493856601697113037956165328459668648150347016071224843694860074815151675805362096454970167122626292240084907748512643832793342485308909533949263435596865017127014044054485256323938744986415868315376421583828299190963662858151861985367343835780757878629680596788020265907158624795864890031422160959931858552835905480595464818528503098500142732946889921804172335543320222703059698989054789571283452972627379182606573229161685342826634856846843032987997276464676327382665274036975186116179175021406726263986486191931335033522729276985702071985651549072456588495302242982459818992720538010033505810721100027593711441404829974348569069656683126021958980342803715530632072539441051336879035719883930685844069395746046577908775952817102818999202840839244443581598545948006649752196858527610530908957403403912417174058012450917893545609251030513088195016572984264034346458588744151830009029210886680041705913509225376285345867235880344463373627015697236155641700286742083766752260558041063102902526404660296315759478362649709425622874558975705575554373782418504873904894231894402771282240287667077706277595421752202818387559432125926886059475167455241089268685266364153696799517298506422117853133739536831747130658863508040623722325628523754119995293472453660717664097541252867508229504696324039397144169459215818765464968338552883580066271479316540227644675067221401425692246268794418766820842758497161436136461350068762180062384564901015042193637419199198845637310814401696451612781126136570386719439359679184218066301359121587468738185279840951225194895953621485319542795620758442707425695567887738160035057925076983401670570547472477167851751184929448391877384453200133122341875878014522209512717775276349475218190581623408663888803362111683847258950402687725213654374753326041731687749705557164168558517286172278445399454358874662251421536660335859393639160606773906746179165629546922237347183355889556008172702027128029546871256040294859023895685096837540132192491521870027702199817888485811750584265859376778199687639183332818175118240579137705136555109238830075527696104346009371761217840789153097570066486368589362665421296395789956422338163416049296288558987411887710937743542977285365445079346967999369498869879470708843092450154899331541443823601184503228955607106787555270923162797561266762398015871206382338446005341109176151657340161114275067185963121007278423982993912243507364257833348785875884677724421529118936777517969899973374933414354689332367233044849819339431492419535627396833600726683774999645072008728307304437014755869564169190647266943922943022279415701705580993894283504065168627135004807845615306706930544246736661981271573615411349103693858223371623499979962397682804522019207982628495125438672280740254249404327890180753415944364769438178196890356272423695607026028937695135443809318496454218064123451859640903034065400254286052561890007932357861522402641556606111443979606799278764119552560687745739129002530676547313684279473027213411103797499437831970631255597414833358935501500582317540926778084757709823576027980524164331156849102948476280792453335371665671779585650453741542158221538859489842772322488353030568686343826451286749406630292476099492161691891934846558511891894791783210297061695642533116717077728388438376470236059789689254886322578206239148423681797557785800812151378914166579370167373523012461546860902740793384151759765874225483827111208490006858042541065443811908604057556607225522515586883562530814168531791968479025978873691705286918191825593054340493207167595802614667503495758676547895241713686539711822054525655043368219961239739178486288153187600844314457448457167255122401893033244757361525817813122384028094076411244221806067838643547465999523075489092700657320083606161499951943488888348929981104978959835321751949450647446611213890615279050206649388508265017868114225215444337992648611523577967368078247515436787045194802937459527323525514230523224506627510859969576777374116679338576288358098720658720211369307005326787754492698695313134697852071751113695287160303978173833121331431026603688635711499536561750533701320901620204129905033977885230757404706708453119658974190435969128077575199506342040677578521340859756218299164458418548923376973390695369494096316070734930114112091441729089040833332113661710622659230718116591780037835403596766508207088150732870792315108369188840199316216622166160724741523666012686155609642013802818574100221250881994200073897089279878857399886587813083244870654178318804980610171021672173335409962848240717556059817483292090192329966645132032579738946959751075629721296640625506573625577999829788091027876080986516063518195662059398250909804418879089992737522797597802584936731070017710934473911574228886182145880651307481597939399581227656440182873485274981905242104750728228159497852374773247422637324432574928274662319370901304860905450659028294185270748906862310939642225600428096016012691288170881606828498643862877485256429987788378486081339989596792818716428939122380776515005609870922971383928472166874691664218727018595000416619365649633789241984811028295311712614271820898734136615361694560577017318635779152721279448461331165968254154973639054742983765460253818866560844982224337640450136266696237274175163082574835158833313598489541321554873302154222692387235320822673997573125072338344736167092500504893589736564575638142431742662481901435808139280934286120534043946268091877217843799247567627150271067556333301465765947798117163275050979814958267733709470918773091987263907641721991965410080425674075481918628257496304616131631396624928584721382792415724303255264363243671668772328125053373702030309215129256017077794415956709735084491271642090640194501146832312870579866833326267516752655635734400582293864044264357697085262058973139439745579600395761323577738439144222084787585518136259261772769335022982459982885188957825379664470473965440199034493103439195340285746269729080812489493968760551663667303229850477422427691511959914101553231492556994545984899401574506198096396659749080620395097103548415636527415520588547448505400174988432512229851138042551322302342542581861792651165261760962846343634734049547352574839299462738803163801194220466568538980959678656913860661860475215169980574175395625551920203449371484022856178164329325577359759234463880043304870327471673548193734334167821333964471959257399023233158918719563974298928339245460924184153295449518090578276045687478855614411101873066383170392063303015850126041945828845873507088489001446623058101127719360347134816089454474178327840736366189104622948562625034683382100881900875537722413693480201820110871854442811571053145027104801548052993891093594333975144032245093171854276859624446389466757888988484632538228047479419844531018806627864033915702024727218758903174515776211478156183505881995521415798749306653143796809969025584122922610744563094701552681578495233054151996741771554411188730103088117918989765390667306392185003210733205774728419860138097883867588347660912348734928103957250679747418619482735555778491493072258287821148212910673446150766630825348728767451932583808805757840465713624253906604756213360209551911960815255937697440386747511940183155140751077028754480115639560684228134209715945678370668818236403576674470174650735320507089271866610193772235319563134517352156476727041939569034643844684241670527157721829874311779860121180395646919717551313741901399113795148268117190033914525954834486959563264610151078306861771924572202631701340409673595715080939620936450072471049162138398333000230746668272907824406195044262729468039993229467715835663473459388475096385929931406442844037168798821316985393166728077478144850014996643663163522545221101889900572434683815264163357708677511808717870529218654270409499280288563021897139441677651126519218532146345651928650511237871160592556666602965061955410343972876094821721361993116762352276147157413335092459026350995381920917137308132667713137863499553289165218064724765739048590754181787165540620022375240904896807354600683757424369320606461200119052749259826848597158934820049650111133519965422953235489492642826812128676657817435797964733551156249512164128894502375499364475916345113059786394763736027351537754323525218659901890258700398183536547270881431976155902468165502950110423363530994984895831071368745040508033303902303751453409005655436026221664161435474759420926471413432136099320365256655008399450271032388193882555477716862574751570109061439340740591518681630769712447782669416298211925182977103628694821558248080804089003496159273053222262371314516372186952100517379762889735505708044108247471116634823599480538218293590445216242024058984859410784272250958649859716243644733782693281684228082678939099482965852517435092423713845101133633249338826486886204610755253720099473593052004122746353792515581599271404786337054982675404230114763251857487743675872526757739483999004391853999851629403797900212776728823315805972822207388003867715604441287155667127790108884161411047474216880434289153395718478480811657555407052781598575099789208647082075726935730655319456302342746432332155788909791379265754956220231015681043011509793910070174531327995863106811019482941594381139980140549452937370125858115390867021378096556196154913963051715892303908784143030112581851242901882453541585057603561038783885201162475553229545355916325714270487179044536815067002491575554793694533300046426812333976829637455872392047680835404021213810692688130338002232744068770366417297176170153603955801443758658203606565044127872337121273966687783277119875713295428524175793713210718428391239376536773085657308038693617740118175401142134886248436224674750818907647559190897270840814205550980439074524311612696536212914922322898305764288038177794962407135378304017066369979643859463175331897400734417833505580864841935604505640161438275960524967021762517434824496076305038433718755955402336401100630728576233470230841066998023479670481639578992761933852511667085964756901550598697582939987560705923013055057313470721056410854775619382904294221896890004912790377608248016826739726168978861848327069793668845058101689416746163659834883965214554055076026251190263226987313356650799527193944134839595859641712944654605675382550827203657484800312113418819547647785388173544922931778014005572790012259763437735049575575576339745974443407980545808340230020507039517761448089675839547073665429457469146294765882262999526725744015207693426601915223861989394356712435165901076604035628847699034418832202789437676057778375417773982625933938741358158261024295631188889010741247386156550158154213445338250486234491475826792986790595518642821045124657166569395095173773124308077527121975996748064157692834249976027425593656449898548356126274650591198915779787441776676843178873816136711418001424022865794122499515584454495054821592963788826211464666564012685705698145912031786858069810307665387314872091661068073620987406316850599702298725942542204223445152375958219406755034301857317408061811311394546655749808054113285403045255495054470897087536483827650224980613264986007031784482372200164213356398230002539505527709839877327527173823474112651481898314638516449333664751208423769995344297110990901559758809631551760303861014065348195181489752000889178527561420966245806816439963326805343330854187183731396799873370806966500358047006975745442408537656392214617832934520567555958133344814335900998833400624940705321227423150690235794844428148051540645563705094996149716594332657297694692471765082181739992268190201636281035837594199444865042872212321841375782851500093038891776286734478544579392272385596148214637891993725433549034678411133837461410657220121642217866097189455499559105260709609364761429661029494048085281728361859669625038936876546320863576873905914320130523755720166575590890532131281454109061690821409868803129023173595733302006752149540508593391846070473598021485519681099861026772813191344077524104281862816218071138628533110589853788599194666131101779398936851585687279234456435316641469908851393123832879471060278877105716607426983646135859203492714832444076970700221161707527787390819725323462509347248616333433021529779368124846030584972059921109995889303792868252247792820572999717807535005205155562121080793147676817016743268987815133640122100269315182434573314733348161196660467620764419315077746612491612891016876629741912786970221805885601081598619403771169506077845540459465592805226629131464500510383170327606927907426821973463551653748709692276565429340444400660731480247025653950437078148704684628285345539773682229329481119519209324379114330443917832846575136597456157022535112575585540813522140681936171233347984710588871176160750685839491187235175932417791259046699886508528358208619236089037572307803584053586627532216466190885991990719322215619340280130957366683303811975742274515656054416993989022819623424254595839203910077304070990261698786204908966477185351690296831567690817612156142983869210479025467860133863416459335263364929175542655515672245270303676541460867571096143062584545131588703684361627997597544517548262309102364004037239441102840195809757543030141290064371865391171342764364087259902735070304880843109496249534326370376558314482450092148394780277595559758726118532355872503844700200360395763295966497678536225737719984216896745719268282784740530664525550325340421936463744071759351129263233649064090945809657530023273941319014746188031165975547570889605651776794610080234816207744459275999091002135245729873642130838658676031587778404864435502835498981729980403500683128621294606940183525112223018104709276883546275120875681024935386608641916724857379599297671606668171109976234733937989167868125324698124478322094196928504893750807499252131503348814906544776839946803868525911324224703462278629400762154901917178429932324450005253312609017517976873629585897302384019156479177197729024553721434314728121525171412501984461292561083286149609365653278672720613210212348465144755465624895296964347387088383833250269704700860626964050044801749395752155591297556034470405550026723634948259409184312048041590682732801788634108907842040834003407180063862611378538286020731953552568910861678207819825387962760905794494069467978445593774649448696035531670231618444734250063865925350616106545992501661625630883143459683699355689675335901085140060461270385197210962553771820620385772232811608420066984295021565700024356948592847825844606470400526922288979283936580582284065259909713037911453960888051102026576438342442463393674600268646372120348122287742343886727647237936113612281128353939280082788031433538207418144435532895704823768653537796757079812851573436306829366230331630759315775020669108350415588523196310585137007608527782553795677753561655747435861115270129979102045416189066244862258779321211362163576831760328756338357835285060209592988952731632946416209492677953893075328800329094533745863392840616054657684385708782853499233605309172639733021638959214188135685871727933311384952464052588000980709725726565130358311674902400516256640229024739820632424378758622194003469398976550630114588106237796940467994810217449710070426490657343558431688324194969021346461835137525985488534377115118268103088712838404494123589300037775028963886440421953956434492036255024661753095850304443372561292795688315761705616075277223323040762474854875552027020141662106124284810845233796624420638818605833850258570004128818466319083021536590630793525505238200939331731044818121756139769185608814613798476364695510251670577770647896806896126007912549349006496795442160932389905050700238485007454175254381560554073994874429404033523268798200254296102297871883426649930544382314598000806188835595313717203125738248851501426992406850138228073993361544308685196134638742560703711844370152625765333682381729193797608870103532261124731565224093635367839416082400103615912713598075920856314598202156051415727355092830379266503142500834098175733431597514965466289670008724669131216568335805457824549221710377359815660820700439492349951534429548259009336063071500108180901031826195391219115034384051684377909470223985948331988126860423553134187004987391242288245170576463381340390857507992017293929166981974414664175538924257881101813875780542293203350607646422951633876368109039856512871847831119991127891125541289883424862898105718756670547552430510722663451651192142956597771654797884254303821541707876891576936192708638938080298030958961755343391103999234092306377398544778470820787755294582718687691385149465817296757119057583907804616876809000600242407026447130814376770433675649986790833665885397746997852885470456110345068896459239217869034763493875019766071486752946084343157628489637804503147728169498247503332902233924245843595823884386964876989050605341924470820678074751372709292166575215869715549342029181801512141686682553716102555198633205498897886388941730775019595428076092120504556070245385192297355408534802433270140685364735262831306765847636018971317826611050814821669469565664967907369261769059053091093715955617407516969362084498566957237702372558734799899570394909957047537130437144146704004628658799784402153748566784186820562784270585836713332117117495139393688747152669596423950388695242721922539112103055798316399259907695062721518805863344198248575743562917177738706033275654235632977178745400594928099982468277124651251173690697166733476674219739260126509534494448816397221349101971433427462380660952137990810548059087310685607898247986899268423496481925162159783741465905827040838735613535138813547514045632452741607610675190654524375509049795864530868515850632557596467876392899251310555427261227189566872332290717296665749771112065647259077258210779091686490387457230752080812660992367233887055168202916930233806263147048123502131204330913094892866529232994225701974344967120586698197295403910599550315778263232579212835567746739271548518406069938865292011890942712084017965238894036254963561478885180839253190612508347572435417734172828862712945676591921371991449416759677919508027888245608778185066804890506279870658743991387755057047840077093115807632269861888119083466219538536607783933162749743896433731740376252416858733116493542500658284101963659548268221740975518088506354457700670943044389425103579359353073068258964277077183996159346639211002281995077554416286361256454979829091013675269507537690150878593839761391626540269122827452682994677579169749694938778886548335913786093634498012098788437251441036162434053779922832818035272996535368660969221289963952531592433191968263903232170583973276976205887843466321338443981302194086685394139743160889764070557994131941051386238253914001155886950008280495827227137090509985683379436750708122156555169945215574204337680961414117660080032069793097716789680512354873420467876579411229470251785390246917116873024928772675915648582511657513166561371526420783869627445092434690030371506607960788287890280885258755070892887644014743628126793929467103519150597082974862017162363475778133351879307504809902367527061230644097120855357173868999797468917281352432232081271187622532090353954543408857748548257530464759257293601641785810511456686070774837623291148829899250614336921386094195786068844927184100683064430760792872646175788878869694288760584413156809589299155252382899502986511992565099561549439284315637040629274039125706275673471089237752636813421457555356869911009307568733754858885286556817374622165958265010271188965990983780380088886964978385981580834955177013531924730944902557651972729242144824621616099867904777844395510256351339942490146976559452474933902531443628063550490746028414551102949662143047854317769175520651858253301145919422291345354429203982973261870624526775744329054870356658854380802603002758754048842433128931121291369466495884341039908082581320823958458795044816269807776938922558747804054017807454091263040999872705877885609068997645196551987338112864887225337615607852623519852178271933158614608962680308904365171465217957817390433076057339200997519615282506774175293625897360577632792389519416540525328490087213687130446026122170043188887429026486392276820018760131461407560703957211027173818097625455770425936903096552418836983611150434779531961093620404460342967074516594805582635458407605437066963437194768150879922574221225655854356112010386341020273918890141393366141047485623687103932855274276966345841743980819958761731452704453227468891251197373355154199565702145964349623136616382311453957601098949469964774596849430913601659674167068203606182740590456131730803295383096956844768792555986325415412407369336066726953617027352718718771683504093623244757790410513767991986915004271004264595763757948725662099486822140695795712352945599718289159025083216275892372255658692527626219527358081547201687451403546387622212395929476228721679456407229303695208521651651933198601348907882802154896172764229166627592455857558722574514776104738818875511445663950672492335267860329217812944389568903131278862702218072784096921381990817111505753975341770332868826831321450388380238562732674168155416168640385299985979357400428548027614957229549088839901081674988407245457496025921872255932478082266360041546126049536372327495123874541729927525753388798656436924955485004968622395395289952646645785211466095591545831838460487017555155220625033808987879687628231177122521345593682952853855516435609615794907980654697249509181675471768762106976840903322170388533714037859912630705025965717224431217481258407822927192974387665099658857016195148919884872519404626478829731014952130920901408729835742027843406738885723491942767540679086926802534523822735808966341115086019410761339199995584960515127497738926184572463554770520060087788060128062906061631228853333927580513676089663261615157430389705498941491669404419380707265707899968164192555259895504189300193402397828092169505497308280050290699768736976133494513374495012650389784122173496989024654268447801023748588365435687270350009834158321630885659154960342528855234692087547678437412653368362131697070917160128444844793645744709532069090376542931108966944746466506589475334468042357346486991287886503019754356881024853731710779103030737528668151175552027428816458159928059375080772131889680929798719527025588208134776914414222333590459119186791489010753320715680038059536468120186917455453564598234605123292116982485898654365002892794844778021666646728666563160451060809032408153185627594860046465097106303002621513925187119175061128809182568337997844731246485793959656951548142216636520870607918246431679439808817601382027151195934275784739045344820795774423735337412990460193524077251957572475417859908088494547099748352957629361653771379480063438967493249565788006913413149557953908898604938612898936605020490274933984659504162374692137727667508446953973294381150738577496000073163402291939239807888288478528494507552367191182226208344270753013502590419776692459227801454663478963490214653593975586738627332875131427366068405086755271969825355092133981307691700125411173372883441744907849258255217020733625170954981506581514479696843398930431732847520243780027681789729999501569589472605753956720413149054879905627962677699000902616091129046340679163463213395221392243227294639597028508392537089022505969364442609739752835786970436394022275284909413018833758208529363169825356733809305943978808652421949432823530853451016606060060001431942452317177377061404535847230785463182203119651186459754359316883998326678095709279254753932290953930576239227012964174219965982872449857709691799930604955192069689412893305888401138734460002664112051036104414679352884580724874587079029020448445907857635465460743101192710863458439554606150939503267486952846416481323142717576823338495105432021390112882240320409686536787382474964105048461422203572681185588470424443978456952747899216409631664932109560683290002715147867196856009748762710404759754708650478850296601512247886941620165056398300605410292334270212093647164814025551856995643535142621132539243353698304874087067783428105404780731996362912723081400939401969337239920081660537218700027708912078649303672504552481433081426057227021518480529877767217401623376971666044531319405146106696268853815863867322937319973914466333766283794217468358441355872564471139628474471483919838959144560220449411208480526345083882374242202876073271597757191146126627209482804262253417672617189006719935779371528496738206517674848114288828001773207959463756969330587032282837604925129126545527438674103949906858048905382299577460075988967779294086719916917714937810823451261354279766289516884836803852108167181857576977137032672774254846662081837753637011151379241511565712926671096118087848675761081123471825645020023154149791144957854023672249113863116070031510184771793856841842245953153863988713123601763930188721330943341949997781434603746850458280756251917973594368689504195894452200738356504684186435787186152914228887138146189997878283922283341834613591224842376062277830560782754106924389181355947720884940210281483927306016643916609256014030846992777207968308695914839289548176877135170570934259749977925144196445655052701808241987192982610605761758994111290138167628109395394996270494077760488495332767601967173011867300879055054428328110498793457035704112498567369488223348174769235927239519923055744519683039984693688137231797856776961485741001973551838068787878961504702790130164038318765007407272395060220720280826132709226063774243440506483222940893726021812753318555502882216869754353674128043080932784783923064218500470579747461517442493662018161792970682434695543397049171709492710147525567430901072857629118909205629637955929354786109456923197726198704844035564276014663572174799307913211621020308860831856059719987592623893435651463567072058669195588186381330298653375878562529308504330163808575959693592655539556501354762941295923441926214846969450898700585643390159179646452321011240702305233761737645914377766887687145297561507975194290119217864802072388628849399811703978108591592239151754156973353452513057796225737158742606479130859649055682850820766447163471393100746100231819390535543464981735764635546481850480055728389649236788915345804503956136509618253590554417226138376831156702897132570683002785283385162356079964724701802678670576437494801738382916692055743195562802475571732993807036724543725223118281654458218966151942183067231913685966977326049138590403434417904929068768258030286646163403703267214393984316949439510226470416934163067854270064631559286726295103528938226215671334620304512967031788587623846997690189419508043069959068575099388552142034139853432769234761715368865457206633103957753831808235716569228596323751555200623669137477070395167048342864050065882286932389297077352462294672898163283814432275427705517761994847207872637904043074653928643039578115097518566218852904679077138380568218429617036471509919509265355991128578173123440676033425080282180495735488740637171066700611223816072514834448810683007963860513486230688153651656452370994316855065033887746598337162078519389514773526881103192483896392040037064665143949491459859184185807641574824407322461423582435063472526332485066763994330263420644149607518762706343829718021536056833388646315573815609250304714395696061158956625950880980203380151600697924796970023378479960463842152797232443542462989621013491553391900955779953185001274151682483461309181918176218603230840774928336625886835484952609923149963515518448726401352699618998142750550255079135624027532537627290699879676134297757100386647802401811118745543325599865338573483116269679549722810321314938228836264195871007262924970694937662417209791837393849474311249803836039204500280934267109860432251787352853734292468241256050142157315532266565865316445193989466602623044360848941130181243862036453480865821768753991322055537186701245414017763241604603861084906794153457807355558114695009352016491218274097427928013145945330783624346964411275469292135397706381416355569514498529766125147356440255366383350172774772703284989746155551382509172158445296255070323440474928832513233564705548875544198662942763688751191203304603879410043347550380108222911117017387798283113594772820496041476431878706484790360198076582462423716548141449789908304785066219261889387042667211199935923538225742536761543068722587093955550126874043416368064395589420374921694769570928095387960343192241017328272552857288596142673787975466708803852824477590448211069492947948458036302282670460935909045888763200070313644678863215208824933139274540270824054251551170722537589700125882702501370114191774875610134930759214793095412970413332353413920390514975165088052557665375985699896429918905614488235779153767984031369576359555038703231293656755569038798409262242714401318166390579143958922717945165198730593892399709769514834342843204327347400136162440473241476859753584457737185221007393127395710454899765261307165722548424846662741769092897628140000408875005558860514550153167802448022920149885680622321932961989668321244844543883149936604346765366645406127186348189680191598335995987008645417565132194424149352832636306686948228804993193387472659202846251293731748803298750365065170960373709097911428237960929916076218828621619119853838782471955347307592828748665023943145635949965770612476919407180478028067902668024769202354747081478892922296800157558720242561458803968458492915843773445967895506672821190290573061334970248617617864143570755077095895000347060191643253331650557935184141720814875524965777094028728015322261330190487458611191932281016018101796966653815799354408881535454797361685477124490405658538900680981492635532453243504738838939931956076219013623795983982961246022800570621492674468442114040895942985985465134531368105005755339713346668815879387638962109740611565947838218604105895770017305656284322409405509108263540310460193482641019163783677275972257483579153286115307740462829252962579172805550644737707989475806526568613507211349029032163383071070345391642653274526669622017389596349444901759000040341022322501067083684253525738631392629139842567408314602832177596855829524231687036008537612718078180246791683961632762313232181406618454498603560582224042953352953416790063435860358118495267627861940582308459357518641327213818581188692141551672529056195448928715537327494665315860484878052889136758594695188640420712864291290197888325827340307481287952019883216110739146319799293354635863986277558098637699437123882104499402723404888592159728009039526714604575947692743627393503077804581137391248045517110690585474223826689722534237996463872875730980723719739129186721113207767576186325933106601515415497812506805059064997129118901286226269904789231797340335874630700243831537480137377070844038004507941818648161174757108270272021802739581433079523353287734968049828975484663050451473514201463130186670142565111260053654644335913130740123791237725832490121356533840980043822317505814000575149847560648800153113714011051417754287916388256279630301190949419588910846673140610712577356887890021853902458894679612687535296310416909133278008439406980833795189204434558617876872517060964711227280094549421920578726143041072421890344649106210373806060433534845097755333942042234349189516265589947174465787996046466616135935601238090145027336350036631330791799392316009236090353686039852058616063940568258811453849750215734636322631872427218743151195901187680621202663598046240081422997640147843507600002146537100252798561274109302514666354466989430207305578701849637550555894563229952727125673639319091650726925162264667803254986294076588535595551963341768555742947654073445477799663227350002394202921071517390412382257289886310486536977488517500791521771075667218072104635123174880182635779488877787196025586911710718589181620580876073940923205632515101152858347498189877620828030443580988859022475684236061515177153826542043568570891996852643661926042536039070249355316492524592346187631224805550078070753031337161844539801479542215851167500865831476498033459073942571581254505707450593533518050414935274976702315430552994668364082001864901921176340415068850829747317748125920169066835976840482668778249610696106650120681751752748579734358214434324211844137699749068563665276236876295288056005437071251221928608610948635988864742614321484782809539823167374230804421395327409030180040654285422589474490684062636308113244362294264171517149407313188379450352905972659405136740430070091197072480306658752398281572354802524081017322994337373668387179955012883928158565880516271029871380840246000520414674897910298303679407146022189747883096852883677658601573539296671509566398870359967251803610938859997448732123489307243251494501779795541240155164750104633905161541538193719739972499559065843907677825675049065947812083218029861421676864789753870234085376738597799235018777548344387309015370187925383819170925874803647191366416913599123196116520746383573849200344738781322953041348455750765102457008744411311518905387452194041753908883766008270572453069094090880600037551989554148855881391866934684834529035974432228765624096215697113857786432788564326620840511701367706494656445867706606790985915985218785639001410231850433584679253386485028411230272716172496376688494133777528325626011050162960290609684323962430692736797558754947483588645781865937696044901077709307474372120370362919781442141086120564937224579939972019273280106892584266195455967976541194655844086152372617501270360668635150788704665855694384297015524740935935522742631887900737420966093782427515528806319980673401057833771135148475528746723188084057226354827295664549597963668807288872471341574311062508319885839818969570958119030657306537110389988107484658161516430468368969187799841039912083481028988922814780798742215319249102099500110053032438237274446258961297694434738336595854666918890440419483976596825929442669554442150561481185485801640448895721186427122216526511576478121582889489967777740100140184019973536415649551771085983325064499527955220895034293834362941856257848546680742077419072524967978120310917451963662599940810746941856097836101203723702774780767427747416176658673107756497020458842680343625292292083703850088208700217202495176196761250299590716659061519556357142398206406584638545906502849321125389317462248716901144336431570603036303841707956710079558974549118852661521474620233796923376161516165700954082384952405855192955826637092298162348167440849011463402976995533215308942950083585323366882354583634422865387376226870283556447399399345035294111926081105375912521255346306851329561827140747882783313224217590945009199720842432612626470254694986446807418313992020277469118773235811801289391127310320428188880934068084166936579154065541545289713708103246090847841656376285639420847498113436919125279122237459568459731971481022238058682555709888577124929102057948693424236143370388217489325995141702230505192108935892549106230622750486948056717431449303208489657532456025764938362634104442796049515508710976395097293974168142699049928401077546831932804910590107208246638978644553448785852648271774801800887598560789518012166853275182973811562267739917053269622027609573587953609914404314599804245638825323852772580865123363093918594443722968278891052432278750157071935325388996776364329686486474102896847148806109302953289583320278032900541747381824490881200363529709266509931417051891045394593847452349500253029683513695267515104382233533059560322126285974360092031183682171650326762105394828591098416280340583839271682757343680772716255729956428863711210588848256374103792664328683548777431409678456152236398907503382431079717342205299021963880921071923206642445558474063478831308185926794763518068083322155104291877511674793615094941456357162982915411289225500723685039387049400844486225063257395676098820671657597288763388422038627018982216100656547515451652057334154002911806943118383361177022917991235009852259523830098567625042701626724958198958094130651798772725747181379394150633734823642886943922212793594416723604243392286913340128700962605892576224561664004051393078560917271135125702189138064791950114358649230567664508543299478842301210758990290479119815039604966045223499237503680296732805453595834710404606423107103730950063878086106433637389563083993443156702135226684604842027830613284377259671450106700934923495925439308694818501987767988877315453761710610197851578740588808548162511264204507684496921770745428635673091286440109094791469584312980131797635956650102480900069994082777486752441562813761893756185063819470412778185582796828814135132913177682841405306845290420954987237436011923999101648079261700617495738570755394601165259652263129639828664650601542232508754001748621801029688035996728528895824101788782797630354092370311827557474735200680898113830804701840791228123220509143037988799399984791488354126982388737259522393886838185901619543178310100893288839411824817054132680078450555285815767194721059761926960013689361019465323608065786355443914431352878432076900754856800330109777243372603332617116675678108682662056468770482280145156544965274988378496524769772913611470343405171952762080967055215847321745137817775779266920813386442375923818573457777299607267256956192164454372688964723622096739987998880996877884042289037207356452909884226008988558014278090022169807561187591050785603787008163232322519918668861945064512899969766979661695909997030079376377216538928748422668081008866795476716688102553938421029786588970648007309249093025846049272679530849515622002661029731903020412253401712465946510297963234539972561197536335200856845644516079079133326386209168568838161306501040356741650527901373332189764261158075487766863786164284920823947825116015427414951261078233038794886563834192260417505590968877486405644457403427626922264198995269271016136249657303136135230603989158028736511300325714142131779400407791073390506705711430272852305887588922388564152539334135085658120781148881479903869848885291948896451467014854655892976452347966662267492205517778924511149889997516690542667395510520233502311592005186261564515264528720841182100642527272440788311402664395955063367857520976200351505808257260212796998105213604670724129766701735156503383755138458220537675400335741067071608953015421232263773525840428257055267122863847731520012383181593797985044489522813944300420093012156200249476372093229054228829924726525170011747446844791326554391058117936712275293682264500757411966775585911251593421775240487891489530026747005740767461933694430416122289220590558108259310740578656610218894659014567669743183436254039084412716051204308335296726865521461697189939387117928773416782041989035936463758562562317630653983373632697341967824452020560553870769634046175025406996245398833383130597935897786545571258620299799444767923709157853578938472983817008194572575169493708686992603008360262816626694998629888695054778875799931452879660178380133850135475763381435591682705943022934679201293654458538077121448962766745003517135695134500501426356333459254415067501355596832618045649664057584404057183223183282144333678119568898904053618612601091089839294811646486599246365012161360665006087053709655248873520254271247441060386733359088792792496926361819545466836070672304802692921626847137317663946633629810935705719122556095868093961195724976586862331921909008866644702193014811425415298097715439450554748226398131644075311056241457295653760582779198213818173118244732587614384344388474644819631143208158328083637955349670742508943507522119676065130175142876961639685954282638560280970174010122062149326771324094273652606852456486794456338819153040851592012330140766549312828474295134619081390516569910959690319461474113179384671866654510529479503008868000587117889580005011843821245827138009427820687088740909540161484938029898126890388499584537182773837179315902781572696127497034076608914194556286047880154727238340964553894917267008685581538271492388291365410265151774156274132543632767293777564921583668974137390712758093507992316796247985709415550090903906162440460844780073896367358797932679901002873699761958972258525379665045524747321478374121017607081376254690962801233398384968493176693623720897610851685802882343686589930408945154143236773258712969428192137693423918647051657888747444970008853114704700823032544131372189973602323883175708251249557279250880596602797377198817196110115514805776714527705176340790609447872345117633441176701078278640426742790775626579991128806265743329736279747725397542634202013464261938495857237847289002779311087683612427404887407418115082753611865376393103871756963445606655743590508573716530424519660465131265530719169508481157808711852872247359734332014394532646111312252372711147911247232062888932962244306605668287303199656322867466035788914170372913807511546719505759105994162608489851806119797575317293414870541720617671310700321839667537050419877839150508833908995247322975169715740405486121188841761444939807876676850661707047916823427410926656134812882042699571829854903332092317716401557147433006355272428008106144767884480046649819959258261634925702067018071455511364094222522919593586891363988047568648975286294092593172877753675976604604741204433639048839692148344334798781259612879405253285749064253458436275097238392552131416753304986644676929746756028085609642403096419525004759960954166226845437196713878034113868919495495558690028988842459778721854190996036619126197455393186424123649149847326224649750791114615099864040202414088020089855242004616421697503886054617823903175134541475199807063550080107898334181682044055991993853644059235825660994218277182258552419891380276861970049050864268734624140949377191759549400710487793389150840673519627528223389739642408144018474461092821084606220522919749274518436662230671685466192004451309559735694494777975789087225116674880857681876725750223588441613061846933904432856438508414485313439799611240946881604717301880496959185133031010495887829567598198021718753212421643810134064490512773393591612380398529078723055640091189244968234778131769677205771925674980026373081621881033372713662735460837316532585353205188268731022604336128436876996982633797036871266557348836872099431990460793213489812352332207516341584530789440831811392786244450854031180426539639975371651246733075820544958510401221878112784254402849918053950864155125437555965770811334549669581171677283651856028042837540415806023613806207688916353268663347946844436687220834539145561780236309363345720644787341656933511701428305660976988360426562930898464566938538998831087199630310556563419759378987459949931275899439376698808862912194718131490289095240249562805101144318424724263990450315762444876686838710686527106018663475496690545730212427416294175606633938330746422676449758521888238608754238088499152193249446866084106051749398933064144474839752347040250105977510685138235077869519650923789528219514690062903304127545517152447386421122368100963303284207650297924437894688713229014139823026196929037443633967323640918840908452097233985806688865642432737838346191035257270273186101822370805294493256885828238542411493537079168799234243880067188252836419973470703801952684174463638099041430846545224415383444134456631329868935091348948411198738596613895052378870586090422412276083185041262602867723128286394450565176903214240221282832276286166626772959446686542348389837829296375373982860984781701630182239832621199424168557252934185431612576440408297402803112604216423330206513426960065999497404589704155246124761609043993250751390225473751244068660785750564853408722609870260458966209197081644081752762746144225805989104176402581629426297875353561884259030100264051668507461723692887708215666874769190700794462270279801543665348515207946476001571634358671864986088548300011271335928147346278069544594347408469056600754232064461852630664030714153569189458624830910347106003452379193457090767404106457342001038183484545323376900645404306397468362449187451701813037758418262930538903786394202989323744624941170663765310739414255072609546685924056567582459176509027083408629321818397134411337074527796160701896983820507352234565797732615700623182631852186922040124077833493457821863905910956557249526192506058865044489619043086866625672773767170973807355368067288813113429423853327832872044316178608108318222486503704636501933519371007622352825294927826992541533411902454483668961536909001200954509753454454451915395230583299394412160616145034866266433002665561064032451961966458950572294159570908992647499701103763651228137902303460260269135290475845754317997602224408479872870288012064042739377290906040676718416645159842243554391497241033899184479498769719789969000124372227975497811365989580139489088090712879199595635173473245967044279055293118268807156017676119996893807045351754395035933792641636493180066466050144483908496227537249216594531543039560986459893509507579235427481455938449006811336516554761298247961194412088925232517428503157300070353994834132932640346372831455501448876980578985970891291207425045889870577868614116202696304738821836993253853611963199400874795807837392989259559860641469437670153731418181848212578857323780301944177370967453568430625152130994035091600805510297997999638974790139604222393676040833725411566313046534034264676637059887821992246482365185465160848960102263210937697526634082147447911743368896393239323803472928056496025045460046828961972835060387984554409518221651511935162570648012247619706265300815301347648131655730287280631615801251881529797148630216212769246180042667497466490623075925869887100828268261715635420900251374337054114455068770168232274524004998828423726914180477588858794238003374706333384554507124667539240954473775419074183213073416643665389157208669620306013962134905813706136060772259454889285768938629577849037124023346373122730587126736761259486266997796845722204662086715278987567416542406533003909287179238171090255524125867540224456604054710807725541411271158150754588838236694053785875039082539274382222440177733237540126164136482410300490492912955827351158354207322556686410862520924161188776162816188913997646454552497899057703718507185871447677546874509211672537396079929933649815255987121975033688521107232978580750378711221641779737137264419093333534471308320926213342131753063546114278788741403003274902657449689723129023610443078698750286421855537391679951008415957315490961806714008114299644623357123859135548430270922305439676800649389638200735736587805908247516441803366987376970125501446449494858532004237137473676763243838341014499948279829670737042130270423429964917624694537155090992881223477390245969316614118846315720164634044504419543776304935941405039069305182130809788442987427775574977434717495892923879138781186708173047199177889483854218866396144804212902869914104621915488777276569085017829067304694162404571908672890439371670179560114897539146865712427396960555253324990319379237444003733931816705469691150047542427602824914551491877003563040705871982477877498183392466428068440235335335429655423772555933158999508122253522195365414523086173617231497771012127550725048086983608766235237630776396902120585654764012175593935182837846044756268235466065889234467954325136785476645566075295448423151461708936839039471756505604621044875755502122254149710115544660788873931518940805110851296348538973737057513907189314469079441582440394712179394492130352971261243680017393767384233059151481684945133271774890248128645609900464365420941358052471157146926897717420998290567903000481409755527809079521791224874857828444440987503622590192377910934921364906748665030145662979840204441072475004040485751799270248549809109760300379008526600527907146413165897448864651601373676561429421532921233895671309156210559812772362783562554741782893803002854733614499228086229324949295839472164156173398823421629832909798940524009152810141105479318697031063204009940660498149926417497737529416657429183429245620726460639596251096584150207208166535254129399544803603610683873999446359239195828997531500112291943039569769773273807006407548210113929739875073777473981694511871130347855164692235307159999849317326879352261056047780478448440869500286289478729618865905616904217487822146474448103829497098583625534636673648755586169210611263462178489743534888737089571733640879144658717480352047819900486003770572185777802370570925161428923532320459421490808758250716640036299807341079134821123319110892190037224813818080093920423571425928171143528188956003727444011949466440857105069903353211877615366100312455537923014727368358416080224682487586120137015056512847858511028114910448465237710147087632212654034827647586104734829742358893412999163812983359813140647354336784743588021915308070916153542355035177828207696927261809099142828401662852095969557215185488929389189948641480311323552771893856900083745706124151739892700094286871792082983009706630876442603507836192458555579530421253859544191429187876575597809666956116711738781741442507003441732930368715118853842731139853104687026831945008206812569617107349803776568983198397749044589776022505018819948274326491198959312657020448478363499237445655546558454492186131798961495818690970609698655835192005175720663368418059822886648898988356037451686096598223436428745013491670631620108950312459327214520506091246138986026424632409559263888286977861249728680415142103205452457928336095270887729688674798074305449496112587973662006412835830221528017141191140173775376407298516639270238864745910654329682828241863088916824419062890456244419160615644940113597265728925520436059718812936603809972227226153694935478370952538676056898295787892564521161992605193946262195224281953200430789862071052347058241646380293712445754387309554319629365668025176885656444339414586446273397820497957927207342749843424152509126433010479453576719885817405740237955386972824692222454314940844037230280720285846229610413385254116416945725980868809094313479997449251146459186418227789874494231167966801403255633700609276006888338907826359993891110305472065436571937678843745888271976345596574276175735038416330511815414781262329233034568243801335525558884988788230660775739991667027847194406311931801693177759182002391013266327146034158997711799922804032385588844178947369418392700509152431564516747018280424763981676745503235581912597252744408123300442264701316867352600508226833529749154728023399485917187147460671724386030387207813528614971590098547384458899559620180095552734898054195464613127749600092199204326234308854797892965055074668323329816963261944617899560709242208136403216243013531485191515812528111421852280432469638571485360874887019617759005132866553539591940606010371276573298750170535259405233041687012194608598920803340641969122263227178939056329229644202312938993975871805346233254873456768829451287173912398839399424527034887809477050452279963333528956471531376345874342970929673378927905044491493378585603662774090466910385031276981682035656955701236578150037158440359223850450297664320441020785161968273613291360397221867321613438792401698856766723405228530605224572658716087502349455772681326852672811451422752987268004777393477418378624568487772242073841121116310134363703522906950947807830650391173767255389254104591355370896383437937873026278061515310915179004962317685035068665288234343140688535646002467991752532088124430136558030495302129493713025796524745929091556213682809461733357560721022236958587104550326531749022017034051117780142078760005421152400614536274835777727420239932949665493069341583648705708453671487335117295458374311267108614647794140626385680760289098511085005900623816428288975328949598128980957069923807053277307426600226705219124449975008203746367251933116529286905893578396231976736711312981248945035833362343351911860600208737809727545042999070052493525484259887794461803806781354679437704209748435133344001642748522945791430879836798989352654775893597270216264432237447369941974253824535175763988920823390729816566371477944380889779052483849989225907274537224226689795191299342271002740088164983887849045098313995312967687725567892841945793941799604376720428244270155969585827065125456264555573809216900369467869351088486333978409914054745853995198678681203297047841849789930854950443040430028627158483580970409911346296242000258820339616402819827482218309385223736600884179065271317186582367762136399421081997827154566232124266024916302404025442130120465402771042005004801405929757745337394792036862606129165239134878039200074939476059232273190486406011961805267491549229784097432585661621516703527187394277261718027878812691972116503157090957387256928347964472416557529331243430490474802599052694165770058448914757958720010564057680047162669751713393248638024002715555040312506536682673819777765327898878206983037822960250927538123340025641499037777886956042432273815466510136108233683409184316404350134667718208522111751009621073129556544723334601844762002665924916195184904883056645963690894721593846309907244396501510699171666014311363611192755263695142112336588959628098787155900658492415876034910508240972859459698282718456245613428562798588244920956479167931052817950854014755313475153869239170888082952523522421875901372088557002363289522360310239744369391437099712931526449757471273142383026453174583442121103108374992350803551650451462671343007116931545880998577889010701407311335279017760810922739237511772791032059690535277436814545493738290417417547331742599305124131642376130677521854551694443104431301484201016654530306330124876745521679718804742647962349395098565057998584920096105509037506794481914695965020114232859963815898158828699677459444253243198785961782297476868888776917372085743268995771611040030689505593215104831026520424253406271331539691620980063949758398194700219994373440396532303807756203412419579841465647004185613420618128825768786381249218350948099874056342183246140397409491236796929815869645609196686955560970855598361820471712311708224596528734352630262794506533440829417702521369778693436026084597821601449698053693285727518752182764489749204785871267151764421439994222752438904377570962857667990606956157430813094824472266415893401612624768432993278260073381802368726562256289264837363883665477331881316963936393277244359329800376687599997853633729971450157504014665606567632691128594538141407863959499825322327013501274843306573554922098781333700892136240020271094341797844067102979444984582200172042781394273643329657154409884791386671813452826686884695243728940493954327460962138003571417631773437745591604414944485114567591425813345531748374035576408040872378375463017886800654276891100311218581137099253476603103320068078069708954496837215534823066487380075360983524843951408239418291186129282350207597062342350583170384153760137369758935190872286473129174887563709799801483111039651949178688869771861618299404849516811927240075862817796089849836776867885247528266456118175643322246344101784632740893750868007219215647256799064931860516250269534468277832562790716656041557847821619734913148023112174113928877545541252273728720306480494559853324668816212452514521687008622615806952994597352664271330434318870636779527068875790583238594210935590965489384633013909892451069070238046866999064829974422492967345444903191122319178688510947623057069495718566335896736930090363869863595854123236015920867223230628895142310575308814739816445989917546936152662039273929666225174009462382365011988111598294920864000034067288284837045242679426159483786524787809570167740890876526594972198772274594097571430238063367826451911485188238229797601763701809878708135217318248897280402237738897149199529750149250764010609810696889134022998512488984900217253380708840728309774597446280373713150107878679938251044206795613146665160015162350131104761984663897806278114389350286771315058243717501099869081838954711845617289863085444041056631126306411390199432778146099137061847562080644061480383854148176365152218089163841559264109851846183202015175130500493102359069837422929413987600501054950061215917995009768406813516242166758346961002613994329866995471856540061790546272871946635917584660805908290088530137555422883264360492024921934686786147835144498246400530607788911562262903722561943895191794212315225188479879074712437955534565587917393524369455923596272961432171161987459666977108582708250416868508653861883106778834432051303440346851701184552412276647432950278097744953505166007271792648284333282476251290046495824295711207688696254867373177502187507463193220751918199490703622627294883262162939780410600292974115629992562971586508887590578449023840700426493451545704632283754252395952825955610436903287008066818215935186255294803123577495809245208211732466795157509357163936737480687776504040615993055811277159304661291143092321589492575513121436967753216471701907595310248514403095139461703738287367017922211383095152437105020711235871691692121391241274754160832636496551538612292908036662756473781499030051973399825023602176997363746483634024530587626296211032030600168161721767748426053556217822065057194295981323054973070119910339383378133162757288639858091028167254430428137241725791344633867440186521461775443782482183864149289443144468370817716111030897256776854181049587280588083100874664617085318177850043052113964690286132530794548686406295738787804120286831354252028465439964039795302116566645528876145375690577848464782710777820335577044973458517962604193707995898013673994483386149376264009249517615746481387151526831496469455531411661734491111220991373993368798864451669053548484130141487001657674415244744602474379925090398739299160374853015078736839250694333839089844198058370671753102448856712567359647183556501257390189914461182506205765972271630362069427087234916272168156302691348580337245462581051218544671999606226816750716591924664434925587851574678839205036375679242905973674128982867257014955162811790222408511726752417394393286476507331991582575720156355021475239466890025486063557750769959743581737788276835078449644960937088621473188188696366307310234263518972407710909720632836717925298139846500714234444668501603564000511084882135827077201451112698559232708727360169552198099860113025294234003648781289378387976198803405868134600218026690496302021199288450227307903537415334876408067541536293636706077529708389719172653172683022798962758747662516394335437510786822587984284616202248020265467237386556737920304727839477527844492785590607678469067474953863817288052248082495698019454655702409534774369565944678093395367036434795115506517248741812463009825757874302491817913473080260003667198814379767304088523953633091415380511633883782965593943760119680982981156830921302776409206234635595608283122887540448829009284190281521468636745074442466570748262974667464602116636150562749495439458634526239979086993250089054904412393243892786041676125909580609755303499271544217004769438257364695477766222071969115252502202123889525334195939854262566023197544957154225905922222345646435656547046803978730628225373379853656379716685761701346829521339896333443893945410983601063535231628280697862509159517538388111079895239388397778686152842519460388162887812632516343129193933625457710366333368220641008358520774427694772400157820377653173204264081850493932130003148881034868424436093574840815380180356695116215448560872580773551848272307641523993565477268398928265331419588137530952222352558637439055353659055858419224405371186195092586515957317258575019755152324719714546886699922818373597874658701498805556030194318590834447628319177575131475689918702944171946773931714575806725707742931770649417884957791623354466049185010258960874998478285742193563572953484216932401296067453137726589530969033544873685309163870153349266242564298429006348538227439315501491160253656044826922667021956050776528978842587412371381521622827331249206255096212096600496442388875259509581204674295705682853471503189402133256564044974810503143530299946385044901094526924631443976192588918480342589546680500679689314012119779815241078468157134536484180934062465403899950870343032282145124658612494002772861886294111747436450366447638939490198444410664601623806491616767233890433239238851551898340398138069796295673899521707102445958646250123815261246686675238689714459313846134302320675911819398695788490885847913950132748301979616443971981238865400265732068022763674905968139808557075247553101226891882252200738667531749044233403343346982866499148465966686068431904475937329811722520972043873410255837846483830328837560051689811651162215357358106018645005473627482120479662951541132115829695541090851575515107056964159725373958597930918301182375888456410869783458554474539780856977158241450270108623173965749803376773998216754722860583420761300261647534821197713758755812247043811602015334026063816377647641203688185362531230711217433863196944988035912432065718511364472709899790413026311278423477486676994371516292254530194461697419521970340000685067103565950505398906964353370058568002354228293512733195208569716064686842127020301679362546626466524141969483604201215484431298220895807592989833346752839249900418165000009344633097625713233754216252294911185492301461503227422375217810612702237001058270457422532928178143289263180275895454130986246216337129742575105490744186310603951187074072700083887399028878057469881281873859779719294948935505548611633379868320619503891561833367762240130617336403770066701957986345211115464361810357544807263259536755939836185768543451129634196908134883218562561518778995466782952938242510688858979240518530562005402136683102121530489847175737787615384814050190087995821651991465028324456587836501310849389836506931125602144310463597936658767219529207666987889698593037944947018778807324313873402767914789929229075721834323196786765122326228296227640868533453984523002023898567073940139411549565676744687528740060063127908725693309833437673349063606555758758827760794833096185970352030573444558816145149991993779044744437768344098394904438576388426844206987124465588024808288594267631348054257013382838391955455998416252004671451161772732454796423785006809199331722948102156174430966293243026543911805872954471749326388910284610451631642069555955525214286317935583888101872828841505953987102197677174037071828434249220844503572747624072585875427964680297759342250146277932995955090786584009307384059686454286349948510436793566835508169104355205402722143986234414110910824326456552967652198606834810074973333197082702660521640390136999666244470128526492932860794057337928814106848045340262985195503480896403639473621383641433512325115631703331737318106018614599615254961698175621529276227197369092668515495146754167603062263631545452781438180141785318918597290144915192315797930992186598575646896163646112321838524361719911441820214805266341189661784159734567011426350887284015632999894883574468145327969028715996697490824622959400089974641644818508101605471912716271661180600867593169949565358660646792397377139287966155183467749004656982001827675451211989730293758233454452390801011606550296414001658279056006262810607152914311510329785496715654981769630275193208662239747238916274589898730595201102611922848628516470371944899858780958453584978453146887182641435671012837337298649267044021331149714820716887184613441934131186912653004499872525967784539222755823666257860412466303901098970067643664904675953282277315764945690197070818559570556113843951913976814498571930687468285846445118568916226174639742082857625715262506576863811344674511515691531018612082304747993318467081687741009981379647401053414040111127387295625309241764328278163803208706656454635013500942029341432419684542798297207274172079368370253985227872052465627558606584720529941175779758581416404673932035400204966298661852297706827696070602271350164454486502004819227874401987838203498651302322298007121007810446433247264258210596427313584662023800413388866060138031418875061355899011492560846706849919451852238546412411393789405860753992311237628822857830342894227425959761078349833440291144747941034759345816564413913117344955992587486203758400722737506695145623335837489701284759802541229299697372646683624296539821789726529121163332769226019714745732405634910786328037980611114539478012046556113297909749481871802327293930427371913933258339895723097729342924105842523691121904944959704676848728398894108199317228877686464003207471197222132102048601834430557864216047669061049168246000585147937222263503129386752148016728249370183464059082632848123446708098931511121958449345028810400001043758359342860668805969382315030765454088036943966568065821332670673290235817640979569120164379547247457272046340377134872545862842217798609570665667352476866246116987615035394512886916403680700688436358032083794449980868653316031291752575314761991544083298449774676901229247865236905425579063678032080772030262979226194008709811159362895108292686593426085629190174555865895172037836618751471972975733800581435350301382978415178986058859046697401904897695915910608430891220618447989499968555459635514126779179401839369336512441700494690719043617554249264809337491236808866085513838564095457119287020793095913884845250949716964784046933775116469718784481996681394165419109502698171617360276200420106275647936733865562737463303426241617190645226553406358868483699062807860311738513951682243164555046634493315649224065250868594396589174625460361981131251403397753561542092197470904925183331818006087733936220276379550986657436505621273411482824845933007053137386450265361456642051125957501099780724216263683010726102076403898609065021366937681595739438968194053334505269516974873200542491597528410435532833702125411168178672348903397500435038445895709380471404797416879524550002685771567728825584317884057606526270181232535772771072332315025106619068498030713472223041718674988435274659183856369770852843593940046198547055340640228542007765300558341360810977443905135519358927965758740437715236012066332975192474638215543414136203151717801340369600772374456539676004435223577883533814886811690210390771854149782783801342952125846208265138306786311930641788389986889628006386573258667979197072753554010021053137299266375643953476552832819705656379817637025090702729190714202909359451470166621996244353851278889564569838337910745274663628813583831371851501585005533472814436531550331547536384979337687171653833390109802634117398335635746539292995751459075089592490777914386673629319896163052075660269000917458820164036963750861656583610617076808934673020961654228509857633732832295689686311322356134419456415561145033655961929734418767472788119513743960388287701969989113150012993366654771222923186104608803487380890360689617513320634880123112306697902373950065509207817079089487783525550256531112060964135115997389851087548664018017590992426094407687566300636766029176740119538583691049661713387878375828012908526561560685978378472863135818644119140470110213121415911593373913561512403215030921375855118855793571750716254109362924793557302984468496294336362661055141129846124987603618124324107269620645333561354451298108320947137639818133888247264618290248413237641079274866688603039997010161024121829331820348760003544642727615648457873227923791256059551936528897482185725502698538226533132110959713799052475663510367844955900322432916628334617980287528774056175812542865315040611993388484260794750695610752750494131389094694766306589568526624599239034632202249654657248573322751586818793214572651925110957071415722439478967592146568683699773641332343985090671376481156303591367799726389773872893423495654405080324684083853500089523189839490769497094619412416608456047844395894498235962180244397631544272350449082485349050437636569209805335217361425651916386038739381537929624851304346727164424680403643892822650966850765782385657348174638664381938801039380009394701481071992482154709129804959545411249132712994484275849974861586372150087327682251491617993630342575883573179560376605909854808574867570898339079463283877865903668347794418934283365673886078996116453701603372653047326371333710064920493635031182057511165053729521235852281890950944112167487978778205850948185294707114791592565832824329743811112844499868639162594533938289160251980879778828909418507356803566913631895273615920146490742802597659991635252063031147425125911371739610080316910604006719489733522433289297268991379910777572187378286410454365482536229457213280460575568672717321801027313423231444155523829835551969013408407973848849561632031477561425489825111288446856766733362159641628094544538680059408772362821657085471325399670866480529532168083057647694049071183675216894531137466017593300535610243743879798364917635094778123137402418786764545263890349102168582865808772105928612236671277072053074410813506987501588271132311987769038588323463249930208056987829308921273196955765362353656722835209188361163806188418789388184130489061018692148257319213133685362322868809090847851760765933718653384724483579262924261327930211423147684192922221202620818936554265205834686164109982322499705914003632156686967783901835023425924208906777655986555039226913689999900028328872664888647022220840128503496365056575103882094718780122308480014433455222558086816757467426430903693947436805523134265081868062377886552109814643965187103761811510379871771870192886736699681184740607969963287601073392086076599796723049847493349992788036486506783373571493439199230940422377386667313631462725640731878970060195854136224614006326180598113847494764170496531271062819438834668251172919919397641441929135914998523824357304185467868492336854476831229365362222899712556784540317001074758929210433440850773025324109280139987258521732095999920760344754981846632136043392634487077188222391832088996607066569035525439525653441164833840939560144994833061168349791090569066321251036025749150447243802179782611184909551747775795841532941802219421319013377454946989434343546205416940660241006389658906621222733314436885341111137779085699404607367416399749139618698504279027605074948464707778837343318624001666453373505031616802347307706257939944149764767829495299034354361446495340787907552287636474684497945906940379483721126358133097879892526204795100778170457135751045987846544340656385994481561158905518688716155393409874664674265943078845389833826680787555704557954695648854264573292420043109595932014652754555489898873695503310142570948483977969405796791380324669569367082664268474834993743182955330301733360405351705225088402156135994787870349430445618967949144750336051283520162416832610559825299769099117874770728312432315533872732648299022868527132853313637214201070319644302739015130684307023838063765833034925649216319555235373566411698349178975645771272171502956187682093465561770399421804782273610154341394687074363626097734941765551237781239370410236342516265922949359908968432490623312936864972294318814719151213517715300620460051795041994136828500873916144269027030931542460939763263652205250323367663236430571931021052337114020783387636507906123454897086286891788121620249366185449633638544819445091557415037314491046767354286945941230722514117408963405222666432343289771877570417007055987702508254468154347461476597967412417380276710699213042412895273971817571119031868563424512382716529206252067614062579506695909460929742731095322879508153688640585459417598988089688574962895607912840076956193458505796635833237113023432160914539825479241742587408627452707128304655942573562683120213973776359464428312105504851178855258307940971955691877964298714324616159549026720503830662230183584692569394735468948176777225858740438593272927682982709880541129931191616045170654610030026988422611478028495095625747078685797662321588468734406579591285472197284776347393027081175105427704471606804403777882779697245422497455900596970820727598843601047003790982378036771679947570629710665935749502482331415273742690511782150488663752469290019076613551395952091105392081816508310823319012615449041747756198046900609925559541342193921885652586257758598578694691026282022769043250158379993865883708962526595089775665206001983144795433715244976376460545150457452859310267153426983470727065777180643738390031372468635060141273261773527292946143862741498141382524361452120459658975385164023870424701564062617166451550159200941765592834020944027194170634362880616233243048659489785676195090084618850470408534549625694218540663614746291202035344603357527952517780442542589436263849212852170411757965237750585469353399264201875947316430640523438304388434325846731778147145531126266979674398326420457016634486917109028130189859645020220345598797793111352125306747790370865973141409891392517760419012321200360979149376390043433550762233134537741054294456402189410327698625955671373114601884007124845808799575378978327478847876229827476268277766860018421052500408523386394683417016147073276187014379759431659318858934908009129015285076965267859169585774156531021768989478144838723893416722713044043032896354055877265078888981885111260313985123757760611675089955097630934506598988678358505336519967130707452175176272765016423372032894335993693616035244995580108842845674297680492417860622788078137660403911274641699704986843435794155480103896850127110060680429392725916630990654779725514783641343980400579717523081650903266940092014471164409302070699237614336497252678234648236003580828591647529605911426595575651899571165896816028081818690793768767393771316723412602622057509166894333011224321686058476884162495900679803226068407303350943522756555875120535139672736878412785646839283123752780122290925254593524542193978408969521521960703963613220347608559710087875826059966404191615982294489266377917012649912219114776315284232186423261677721385085369701621708082578350274253553125097439554334031616452919440972588343561877922317871862926345711777714766898903957945672297609090496372229303289022551572047166696731763422560672439601412411161341592673126615950292760898158664129027219153630749490207023325291022309096505729736740140121534878990490341335191893776541145036224800552103448802242522289227170515748753398016756609551800758090380419718092966500933525369046538324918840952202457038117278673082976044097063936829910933013955204843549039829753249304264604006648519572541252613186134757588754273309433847883470665404644375970725558371017310962413107468413112813621377285754177206409963202667832507170198361098080863092719073948354548054070842856587587021294445812340330228793108761782294855111782399725983295127682403965701069465744209939768967062192702909689730063171885423351359671064668700632932208470586515876370872805285244271755307980091073815185384732908224144776981506669756526638260617605179073543885354847824583281817760918852471511335132783966984294892459403778713700441230514265199516972759452836811025737533054337887474665625561460019462874974661146307019951376970882404503783825229782363741314084333536202566709521744057378113119547010694227964333349398613675523334092619077382684382394341320490096373192022733371204183836609218713446329647217153818235435724241677183538567874260357731026755491925900596296232380513518444778886597628379840587664060556460577211526350583099401542355401350420960679044178942942890307682313252145881737389312087163589769240978570803113812778215700439356939002007837675634000255740214083330953552545346821748796441369061441249055255321170585117646220804057082109295111021430660115437037504817811634120949525733967856931584117317267992435624560383811528180828267473924054930819112787316794645757064685678279278796475591330632559996269109822944973672158704150040137631548436269779319296331701516412673814724376112962329345362325344033170303719054915944571391470494526330146994555391253268486476131328416636578142294605572524824711304515993655999198700957818751248206567571500435830751605478463380158307998425188097833171386493939337179830985429692142900604550885014617748154572737548449355631081125886971089480948681033368277427894300466570144635227544624924610383330279039609975908935313491346911199741852440023502196475339647777523229020191323725542851761239890317050533599319747756823568624877473926028732892356819195046761773571144935155105565035117997915209652041330861146548268699470091677219868077780728577010459086268583663062023836691358034731083152555451834970973246031136995688564693634285130014518765437661858655850144669788157390123713882426772553711898208726378746308988959718947338614772191399003789508063482974635757844297724544105116330053239233558057161989106692165649792969872835049563452596162795082497740240287794131095242414862754454973282179063079068884642221099740628552831242407588420268237508867810709037452763628882232392647850376957826216278930142036829972722082798286377785973484277180191874456314138529804557910380189284041271654800347616165135181564769422115183424561351039149494034755307773825909917709313259276210120306813163362329051480697720090506114423970106894492725821398262789362365332655967337101158829759786795554584542307353977039975254846970496590783385010914747407585159879705567521086961045617922885976994811933689176913645639669240063460786171221401465851703180967172060677791974057491264160241988653379996871585089100387946093091108801285886836337567800532037447301451344951115584937516778092494968775944013852537513336891162466429077357145350150376718698237039230913473687082669276636953280035975563866128050434947078638148202275725268289743064261465706936961276660790022115962933232715603998822164522166021288577182905570301311531654885682015267804410876620725781456817943497505220715444862507960281784272825030679756365986167746019085767121715340700502988053625388858327607978229610519587630857473503086838848135142810581244755279416889049445372696970871960437763155170560053420069266639395315772607676705534006970376114934017111342027422753129996185932795947506810131573943025779840695769566014544832162207802321347325854076614425612899831949836882578707246831418372380573122261506824556148224020629795621849504417687859909338495334764679655620745501244545765376749907567719463232320019329104825973979872689791423956200907324028365105936353281176022125033062242669791465906516730099631283823620648094980500558376509693665959603125680575035426531005471514971355920418006295036793145698511604501411074255785801756424260510642322330026083605682044374142200110077263749696263063062768000967209171615127802766361833093887273485721879368150630147302777586142133579045302851044062529048541590147690594532042455533421934323207167935738807415481959265499702937461484807222003490660356183161978056214211231597870183057224265004299489073756759430863443777616465826963292790049995754531554079683083438450856009938097090144151315693755658713482226165216391955278430317895266276687323151308517112495790139388230158684176452974823784452027972097756740504118958588856625296378244301026562709572312988399945016952757803302556712028096062537457849579930113154608748837915207879290142108205522941975800790880925752222210677979353226847558292318533515860555666451085396102705359264932071688261921990508793413753364046527979879399838521249482629182234654135886223770673711345592149887530093521362349696437095544655516529834115276076881587277596451314775742265535793365352369234756220819611520016007367069284995927705180110919271565442368474173806354470152166967783233100000417965726374332066105970715487891067887465927916711843356979032743300584843985065393708421836889203083719557234795356207627342021411702616162950229581327824490988797169068822732119437029988494361526062317550050083794806318405015424579214464879484332204794030292538728550171045459637408563266067356113288226323186292791939824359981931214906153449939594993273941781890003287409760886393445813420909718274319606640041155537128005961396311291316304114401195463597606384241834163824388722299326407924947917269922969473739233065770490341524733757652112047185503067738133930888589159404777532887687798754205947028272098707485667935231457386924992472367673757575925673569443422383682088474616449940502586755707277636668192609967375031503041396772348799480888264535831435184838408543340101790893694023895606719296246604986787581735231988003813368050557878166340053429963066638672010266368466398232300077088295709805157145362478359929763666046629061004235775527994420973649444618211401168706169007214541808543220392333300364876862873612100207775206296032625318929351042188240077036588371060394997598473516711703437858058095007279545226954634970963344549533489418673977065936666362396627783853871858227315478535527279181578793063054312675326702790278015641333507342945389061206056703867492816342021066928212436462032463456396614369012553247214176500045837421004945173999825917225379518074769458524630689412184665497214768748409337739101427601710939248774720372210658266609287632902957948790285061276448469081241960512305999649614940924272896984010852384584802269515588106708333194868196502876110256488174669054058618407235023322676208862678435299390376035612079045751903979528857990745360588087591219362057347162255599434724507396575466991126622986312355837241224932385340759332393452673773627457767695239749237498812745316082151355279874240405119280391754910296075202258189932020502209394492625258961228852997610410822251478250891612543733578927064383220497337954138008642640002218451200075277685902893551769976007653344965813354358172866997832332464824376657638656336333797348555048730307471169490095381428675095845839704162197110665993285309227714626596899612334951745075092635020537998486699789011268507431978217995143167449375638722291317504512265513364545438022919900617634308336498841782009284802416408904798166092227933655956321376925701870497354102456233187847019838444270042579902760005087348673713737024890597947596554142564519657332169857510689468164000403147508686335347946962342659960243184911111996272329879416701625133130897079922834296073444094459590014253536488393222851364428108958312215395328910150594204132031072463975414062666262291272033444284219320761764030544486151403323155580941423577696232870132670474899969905769907976698393825648854896433740403415389533091548192849277455542774066319158792390798237662048649227852412494841508400269050436041711990551265451097272201536822909553983399474707262076040768677159145617182073619567514795630616010196485376332668665763065954905801195561624832580445621026591343656865881197280145519299327462419937711845281179204970633336030239656215596062343562274190216629476117679882330256630384373440001013362861142673023425437474122134072786917400654362403261942779906411226015959131221243848690335020883080457565991853792604388738132677910806589845735809427319745077628660584499010510133489892026467725127824173542246092816067619390611666582146458674274628897209988832233230863609022808088125938583986661099550841631566853294760598062330541994131703464504421998202027023241465379903918771441859331472381377677035177973749246996372141643131155048475045991230423059436190009787482039924037561256454195409708802259894411895391079543356033412782385262660955403305945288678127115330837714155463700082295612191086208011964386279019069612965706616457643820877512668531454597631066700119912576417669746830853171215233310757304652307061798185359685523644037277769472734042076858082474077371913524200826052182717502870597549535578285578005883210755766972661391388272857361929678103298452511447272689014703907713950476979468006493654877546531568576819716804321487246948887658292830620661415956796443445590382810269191972877424853113918075609940676528991891998505697843412114722056427481033364431664128710117548329357013987139963023339043101845874794519469515771759193704790571310978202686971127513819813924028749144413703277823790299579955426401702613630010977760603320932588893211229832271609007316957370004140060197022537304717736356812067603110617678148724756670677678689168024012448931666741327919618344489134094506753480834818935836253184098284013415531915372394107070754066128236576000945752529616662474751801874817873383599278533013473909046054096651112559041197719394166838205819496723531660706499032522662325267390030391253702491235388338617284189709898762299401815263541973749378128839961837269466264797730149597515061419876223531446692752260395573645837600632637118564025921281374079622730837018542438916937086764691397121680933456848629279521154201387787454050487960753506037193726283223077370683838543511720245554903527338506048154280206681536960579008950900929384202140194172716565083603319000965880506796257604977018690169069017517855799497048259260668016993424052604587768881287741373508615149652576552410032452547685563210452819156437162443390613147945769555131474602218557652802795526863132114140117069514208560839853455671916436608124211551103417776037401107655460769651911528494831248996882241672600658730613924810054627247090056215512081361233950270375736334458502257444810034626292912028842818044945611197789256116242408193680020440333860167193151232319580801583119822866590550491287469247935622694704350398293329592571684573391892369519943309805347272930699718033396265768042533403803067114093189960811821310510529829081118015664768648967397793064152538863149056142754016974995944299176150834762699211045902441829306764996786401246230183443453677562344529793852410400479601330741340998869234434538381804116082441751378157967123819370389843776329127402183698828950339170249330303457080103111798161974172278666639079447172038012926118820337731039760425889693872900165753197492452617884283791590759583066452635970520488110213811487949906497373344260317279445076238811765349246257255465708203328382540249135610087473520648955184079699633755144211232500665996275941220267676702977732529623699690881898904972132782682509190657229741282425228399620989932065367164291179797948824222745980992369128830042767581622844001569565914664075876992284333540032042225130588861734145606296390266823248324023610704441985784057836145720441298620233946058154934057143544130217384782978750776054924542232532960225318401436168657274366051836812089634101991590024939427369560951240984330278839562472120294975593055698876288973088934935581915425141764513946007841185127695278785096039882300359144278457379581638711732888576449766493815357655701169812892414731736929429616563043187823717520521033667704053677893469408638149537921625603545790238953691049814982266873355887972064218246278673851934222406313315870388235132924353466070002041580088397179769328475453903917619033392885118190557741347603451354127783726974245829738369399618743639470280388711356723258417174276065631216987389275811920366767658858401468302160826471266828198503918090392644485927034816618900263967075752264497096196778454212546817847225542295115244049322677644807160862410316918094347424370488331883428668186412679985768178385331254395899454414888727537128011856758515405522996099411834548579482336393992928070302491880149557616135508010662842862277797715775905995294567465092947497336016706080820760184882624487113308548372624715658614969387818161285274010722838190166884682614282465807675866590076815453163039026418179638670595301754476759349816670707743520686246840268693662550848030316561153413991595681904217479091575916163138342878040302766793627599956959147941618838996147267199665066802450106102994556897372609536426717206532668013505115600253300088809275606083599025425818692672029990749764218461311517143639528889167013483687693411279587948045696175899407350720512220134512844551025234532800447469903005637330837343667546598993482889123037045321282167990330923905299577746001312502051138283772657383539036833232639992229760831578648123940082881314397914571046335338858523871923767704916225173487701954926923501321646356337368192452668611962050651791298272028809718788460302080099909429767163937267013162771225155035707591037814674088017732594463355396335497012511965597847027445563259631768219846515887941483111827965392723027318848411715194938407433539477295791062061782896299787886933032816459087752353597404614036222588854065913457344233705803637670558874232525629236227964714987986249499474202187296839371813965841117421644845584231418601699610321374065579067496030196370144794583690073464884489146914598621418101444825560027324391679569337776882588555834910047280862137859216299795518059240975412145816456525192522114252304221184449849227194421906189710367392551084616286667815125346181061796387757253477182611426037462119624919588114998943288617276313380436328975285502430220290587186401793296458338154286139162504608601951570870368549350284748665171237429894509253341002511359065034367872805015901099700791597938371854531992564560833902430096634345599068347278157720546649877739624269392064030661222539244246059485566082284270091244854817055271240681181026208718311307172124852922769338216923647725149903374477091967549188011210170032692680701843651764680312626904067116511791536876378111926818570677306356482564185043541263755218770666541496968590458430518360934504263412657374802740812107383480437952874337939909986060573052902578879974784717321876855840632904031316723242623990591395807654562397225902709967902370988138217520662400312399363320166132610686962105821898705502806770220017223549510533883952860151793983724641500927344300245880108716707445672377272214362020772527364692018050910964152383064673980669724372916518531205014987242913387044358964704070312413542882905118334388852156971755742575991691008512897707813686018950659414856600556584413867723100062209029818179503201805516782081089384523673742603134219869777781700036366415156998248524230949974678664568762520623456466545099087530618432368589902756485977842484707758734574194236225255432258402273756226489411690708292931072595387199996111043512684142644693453845077160794791030250519722504353858857226936714900874311931449048554382186376104071381896121171247045536702006725329303641099530466645294249480377376925122019763771289654909068538581258410559911265056630880179541251164687801602560834469976165252595534033315416816283527235901613985024605510683637948694257469897783275383735112327668728473736421522624463358178065654151566336619100714918182183931236885817311778217333954080872288078306178943531602084505928418797764846912491714017739544489461119949041134369727712404437945077254556753075991899126326860132866349247218054360838984571660754729168155379779010578547566936926054386433766494836731076990617003848595129892695338223573280828078431287532237321805646416665785893074874357245848090259185682047226138986035550184582874237558002827110802399772985678560960497756431532692198633738317028464101169954414540487816114610021117842246080800442664926558477326755904146131780617779521835201361095578805560862262804587827197571830444510194945782405428862537332379726188308958278664975728919810138278850028007052049537249211079060907971130559613409282288103192522543018703230366958402503898532024887216047828612811573442717397062013821186546970459167739488033724494717990163992625656529093825751777654138510475067988942079518894101463022822843234859090330784824644860151837607764491430620555158993524666389081304889862098334440364534169125172541832652856819115974775942717264284923508276206011915255288371846993318259181000991780548297746822672014789621265954044377756219737460527649492162310153873272615321171233594390638055471668536106371439689717585938181339780423035020015468927246971548182640886970910814468661133839749423411158598771635642399529517290142645958616861358003977435200064347293142803553289172893042312799766192811642090935342734839864150160446543363227753430842048531615081091073755225366445777416370707744483466919789981519679576826917836113525021852228809286013673122408874589325689424453007961672414954526109311366829178903876788251793675427928122087668412023882947413318963496457554502126259940101947341487806372070091178508582008906534254142538147372939732471748387615807035573158878621327174949065884346513538316964754113828724083936621824324722686903100870487162989653734609975411488225973296208736550827153759845826720457429275463020491836426876506817130996892744906351117522390503678833836748117352087527038692302916334783866767741204131954539424977874435259586484447535277663861109054042103335652357072077369156289221701234578034698328759704479719820652552025807403363650835903240220563192328022964998110080949150503296121396388928069274213971523634161605795324990601495198982875672897024835887845018207567572297589815251009247555014088640467839284088890648686179538155716712877441069785609116881056001336879291539017509892103836483362927685712236081276371778785866269427894925640948590898055282951877925427732719097858884782523488998741491696304061688218493006696440013299883293172816102554332084891183968706555804278659235969369647284425063170679020754510678938087394971586763318904467344802541650058255635793163855261976035953959030298618583385177328082576844494013712070796006083632653302942136535373892102386565162251650576397224931473905642094574359050386717909267683409346774564731716749298746334404650465910965851305068400178822327223683723539812256452213168342368731155561722505360595256077754736576227313715314953540063948982748862265603488684458665359374912877579185561414020215618801330346041872591057299851698408692487274254312539019002347924366619450235437284446059685817246154690355596908481089785079745860570558144381099355128299571589776294813639944215095046567431818569426609987268196020360008551620977779768468357876354319750382042489650615275308691431400583424712121458810665405449280554392562993125020333438407230704602166623210079534240012411856408319797012582489400318233376725679137284030497927493090170068302294282804802227255970971596281179330949022047839392918196774705844817892070357925451698561989207268573709315213522994000483629566569638332820178258032396845398800023196609439626993363683090968529224752414840745016030393169961654772299913172153717860400762520318410891852548443173414924391988226149914802242216808012475627713270633195325549296142154029001324651863802834544948021747353377500387716540720200389607550540486536745804787018022169046531206531864178312382641919869773661060235896997350752851479480818134882954618036437763090705310496427514957600985073504676596736674306712578438378996046712940306475008404588351424068850672995486142449365038164810246806994331260145576775458949519075054295528931090322856257544535318260191712897863014266850485666763165568908032208898419468628530019801937840817087189392585188730638559789801828689301790165898801626478512470155206003202172251619966620326305298828780786177718695945172578912837252227932178197169742521438173425074547714028427353237264558860034713772718135646554537562780971957412308837627684594395437216611029064636988218261104432047595195995353723392670491368666905622275338042223487045403851951560599298774260827537822321978207851557481031587740331967653562633485048940817610456499046568050671656868728028965273291532319268339535047851143125545981937531382216636184603920415525342090692144463344799180916918370341146393009354893132616861106288886094158606111581723340269256189274560753640705878138685081445770885745154176680345485719078302230311095302211570647867143882905147552403422926009805921207452956826260866879353146235521870566864451358993600929809082188975779944715613338171585269407671620202730140018530135357163903650781766861990980981860860030429233026268843369441710234712599591874706279941542266835598624334902211562360346941224335605074047105042876200562481356938017102669350764412303654022216552878743752155201987068698440085003529580090446448756343984343349439917944357628742485818842201708203589502993533459381339694932614864240873050584307692836210203174473891420344927611917664806410828912458386853124969977137908206414994708886838284599235392297698202380566013192172292048727226486146245922573576072320813344991867764728919712746875631891934377300991244663998871638917957149608411825809415326386861716359337821900412517787175495688859753889835770755505488244231924392530296763204711609606515200493394303496845623832914811491127009400787346354684220365132876206703399158186382896451674602713640743096871202253082605365478262344299951034602444607456422086945797538917273950550936491679832539789828123906975085836965027174780790523085155187898612149995019685677918563214467483876940840626789219198661383034749166697295581186258459706811264447590479948145651229600969614784884666831845353160176746591512049886175783614546951894326928806536045771115563937285187356344942453557331213444201213620147890015868346972495567098953529831373179056854690301818572508029600740333338628673997262003569406781929216430166500968724507052607447335149594482162315918450312913169178343330006270617481326447104267931979796125283119840303088119846320056767256898200197921926634626527949428207204656582581859897010804570532984535848013873245912812736368000749020353324036898159924980474341151494535256947493887670900119005042166404702601866057788758773819201131371141013478433061421509932054283973056731877143447055035003843730301296913958739673984698492069211420793160383429159440364133193191463079553668326268060734582343295641576902170151833106659488386070300658746670334736623005737859540038149253789425712836598875926998087104743187176658522866422559320089047234076517307023318827079486243471838367400152234752244327997122780432657169157356993880994188194720449700189531147602287648135401907946397324149574093087236401769593523281789969330863934328792766008346418191549684118629417526297957053990770212576613430033777859734526609118735380094007158013836246243913119449315688838276590852844835887027950932558694006184907809110042976627261584735062417146909814453776966959868727080208938158389590989511705155763306958678614908750887047618641774845092752289446326062193465860595946382384982531189846309007937418408127851658980634859983198509169123344559401297785290881827457592547034462639455914460751728750775824115415342841694694615454027169897696754502934527169760624665658999552105249340859416538987585279448717009503114299053755210934337655023706855506478912018957605865814628188143147879415305552582745895843544856497558193456821283202566987746226901997534711694908561371574534755775613058371064676190555143867665258308947418802617615947190568527099112074388060886314317331584914995336062101983516154616446425835190976645594832627778933681274843211751763571664453440055036806447719811267827408744113726359505025075473030906952200868579007560810593820666693277626337578959355573211544329817571011313814043383529583464291828540180064261078345513365560042729336302773522237069520422932925214553695362222693400516878786618987881783622885566279030775013398886972822960069470374545832919106671601811919080899074432668462474168818335258507891002326599039184848794910936346762165176504865688077862577905686929207010632405665021558585128455189291109431487361781923202888500990357930778746657110461315248497802243532854641739766103261300814583175434241846013220030280008240165994200650042876637124606087909892908104797155657106624537262439964957588761807651718717430652725632596217395699408664029274632792719500709724971774807599853121376932037457796605613165610682260460852195536225816972876656930075350160022950284622561640454960563657093244941272425217192587097686952267337022882936922269796740566170787123559892575661465703638404428606971568567602365275275924725815794974432853377906229982476072503115092348986030920844513714205971447909044520444021179842056511297071490581170149770127990475611675840797999215663211753321906403959924870340375126841069367439817584048662530024229774119625747492208947901372087288741228773165711048974451319523778321057291710912177270991334276467407964136896215798874519714175781201019563859390965221115556977494183571235129245079741154184463887247017999407545072012584348751661708317240795180485025880799956030412736883171849846378310940440408952284187023803451156914185063181901392160014246872232068094211864501993637341783799571420881063172236960131846683670074836407799938589015275624165629676432990850809266246196678148350586270221878394670517292607677689512726700986863214190426243202213129137933895169750880399169396316410282937791513862733261815180073216409647667983064710170387616089326832426439233038842001920757577762658212798308634823008504763802904670213435313948290318688742016412033398719271913021279292956557945198276547335759791171137819009266658738514452593864378567620925761672595309874988024159063631227065659046813295407048951714876576837337097593507793241650654221087928336983012526952587816035803796687374896112924978460257962060660369922841807079924401813525980616016128618077596740774441275467045519222543771045151264527546234140550328299586723051766970671516508185870272318449435880656714475033455166522074666260680462642306021492966251443529988946453197691501889564370604494023240165117942103484041308282969302177004371850237694528890780916272742665384727782438266411036458048563817755581052433110105533296783253354080896705713317205209542314506211662371153749005668147654170824086118771680468148792007902859496536801784073453942209796342890119556209734360100224468859144311360727109016927671152677574919551268158495503408557030821908047321232690755694221959186041980001562465074230712914294127233310060901666861042267928433826171022471968325785146998501840518233091555180900428741611190809793945322444273389307550353113095862662388702559069249635348363626600681109789958187029291296397440448022066117124764707694907111578652591667119135180385788230105926483454658508319704768100670349348935273621627367488913542602345748414347186398996653766384944266388653429234325521009267975580621552238802256221153835521965094895310965103602689545431618197470059339568676342137977101497085424938911020009103234746416499270869755295052147172358976949264026597853924290623429208354954260424648128773534765773255913591625067485244307771143320992256215837862882286689707564978575605178847365348284312025715059409926017829922104162321403224669123810486340541013378029870874387234318295344150539883882169989537190221644662174132209633420312615386666026034512298253716899959094159995036169015386011893174733447847799250063953765521374402362371347014557348286997030229304415370669854255240045909436873202764871816237204821464828976910380105027246069429937892630011257566257237674896064193406558850931598901588017119589405677662124873730088637613378042374362810101474143944129533016389477506132883683073520545344869106225065304872588998395844334910485573491783850079439602729959244206048483478302887498635407460986966053252326159632785644427826044989618120587636281082212671705800989363718906441064967233228775468141377450054210940337401774780257023351222643233166412565442974267023748991025646744075526228503020183617632982232553427450398017638369833095323119147815580425537638316965642662735952907560855185077883837925800278029263247051275970865142250006653698606968020692882755251798811152929744056245957775044245395001062574131307932057895751391713488244600416784190111097245208811962686415991299811064006959279124946799886154739973434265621323118466166657619244787557409776770976467964090781687730058762497748827582006299001270788036506192350901630975078416459652642746173267498182998367542547169410584085291228674336402747428444897883561747680938226529695686378032987003772974085943872732616190824789795797581758900159462861793607760745135633740640124959335791172097998296279992339289227199277073961605088079202735093976712305916707694531688693404619521029097565817380196174137960886973226783946349659502895039695848167656554837461789680873163617076604802815477881142172656545407921389297538560504452218269406611534111545126803821310231617313978122640998454397199982945164200122521198952875965473667488697975750539030856584934385453681561941547622626643821825209071648629145621593292175882898118545833173879705224571040152968828397607109042177070809187152727481159570457327954186236316868167424849834331956963643325580305547678293587841367229424063772012294962798433179631318695652773221111505007774575208102156301478450994624071965091817444310062514544911433005093615078143343783119343445272335252576290567925821773852346896762048330712644794574753169314877081302150283918739472347397251966668263925223663298780104559691420233967076462924200583659019662244624998025016982702010369305481009352734084203723452974465599419822328509049676739723709108001539166457399136629315652195174937407270987481846552035022335406618603382522962378892165530081497840700669772676925946914709669380438531985300385414863611479887006620141272683983357352080394466366401273312571909662047579992822001076763591849732111998789119592525851694580652905329822158252600759041562386521460322503508652414149900847573743372559830928864911624167764016316277168252635397498659836753741182419717184606162101712089568119027690749629766226207503529910037725468972224438006930564910187317490003350205460537219063808603361037688785336910389461954300351799978140717363818709821601313609917657458224604729911965674267312177582835011787818046887953102285036382749270768307323996605065296626418255586918656378933539344109035239116627885736367374307759196012142279061845340457769809383508122906675917695834230665617474523626349460584606573742705506975602237710023503123386954593883123512924012938574678157216029356020078478363469861492597604180812910183379167695927290668319085259937420930516102105508328857755565375068737591440672623764936167355067645811751888387863227984091577998298312534406738393920344526788752122640773825871654636064485408618808764239997390694121123037829250020983263989390445042975539657693637509679650047505954501065328385067156576533166049108909995825704394169706091608732779827428651884477724865953977687725740291595152784947875149112866685301718598697303232613259205308872379035499916688346355123744914759730078525296612344489345941904331313263539949749225051210606172527610142189706192669062683901595914529083801561478317479867398847622486409233076463190858888426485103234418394926338150795620782181110002400901428661980618084442468394176002004482326158912017198255729420857303624555987741337949809461277442482882810944297246093911068382002689854301514672385373264146170032920011663946145688187618040170648141952307094323999983401330474306312207619333458997885180149701171877981772389770201333349893671966686501649778375484584502973706982553754549271715648187844182526828603179616122947913015939852699389194803966907669238894713210388576761231702624340047456603525518826861334254620652863219345646620000046188759076187315196625253586872631143062216202955271141081222575836981060440873979500957167448330298166019408858291068615807243671342118078918190365261075414556125733559547957484858908007609567158385544126331094835648216871282086310439607109168954070527084428204502995792500937839996932955806602628121356090269446297197204224769643222649354099568962464537771566724851088302686848306642131231861554941204365025464694396178470680942400364201407927501825566667887287018055709161194386669519990107728741641938519699540975917410685843869368835502734891376351983945456137880333389415674175873634720528248564071187319639442140693333891081237376042716698595129729333163326662174765286601516941404176796860207160889179627140520014510516064272797528201197504490227090452881545230394860984067697617053455065738668516199993073018349221369678808601061962416531213121661943933075629386326693690523047313978215012743947456715818272291467373971043224412299041655264652471776086559061217056580683952535204313580784104181970975730867504506487508559182702329275338771241284255192346332832640982303021568235919037365348287241288964918426373410789860373923020926287044408880142704929239746939276018679272706582307838021920111480461243003474884642370297853326471941590392992796579880673352149180077527682747795782280417806995270953761720796464367466897287264549259036509295641921351277131083700235964316565491247431572775414010391338776727313472721474345732144672109550071625295005424673032363283643226086251348994300405239892120581344754340015996164405441569168814039932608195015511293177631977943283658114590716283983467310553426368065204339172389789904719528717051632555505992391954454756083793735463429446346661407437954940681841038018707077608119642901047287873265726380087702504800142119935023446640738599234699247469462858318413846108145347230915748943777791590643161947767838809904684086636170426047380821873600607532539125624752024979440053753409679046987792170051268561002213758309049344190995660038306132508893402265488217874520346741524930704322120320134529870672341609887943169640057206900812270067768706409259283453612028365977622770925769431743877268716164708640644748768009512017311717227494420164780661761141309354626877783276507146368914203556104163299606602519509818642354510089766934850267938145175912442120298644473772647379256279273363037732929818779123922763358849751672853482474322065454552288520816627520871410555475982106835680092739872598558048713040337217183746637827341788281462392118385917872773118798751103060616985914847589432882641351091805255768017360136744392037862855745450923068663228476091567273266398666209640230037001678252804203874595661538468290820276606978486788303510253387072033726692605200933283957148594275317616168618322474165097460923821064367199504965673589800819453637036547993149240520544483697334333091918513237324227474658170955957844826314555904522383380507473856569160427639901257666387079007321730887842984799903425797899842871057222718563328850921520775399745481803942301338307974026991979697464412125062372211553461357814974889955106044576648936218970865936196047290095265852240615149165676668526021790778137499301231776980357577724407659317578207682932715917643804465179635189372055606513987242138267104578852725838433393774553155196693149394937944121634045663348589636790843806841747715936418094878475565023693736640292021479548912748167456417438767367421128988554251883157982973859168186373436027105644774820707316445648061626152147391199646784767846544816077950005925398477290829121033413567215022995169551126854922954047644785861845534362903124090196198213919377994571138058616158005207865150620561715994735886408326684163609845953437248474143448462842860917335994727676277512077185562383614909755019403550866732848672912196493632274539276263920483146555693900647099255568699007144235040154290126294033768210020360559755803787167144734652448253362499776463677219280739982805547984239895428849676685660907028491918973577855627891446968788021491447027629622129871560640950104983258584873761138688707998998340241459186172795738306511934614821501259011782467431211629740055677789049863057420103770786871849192179845487418494749446883109457727403577951930913114744755916618132346588475873868912976226868199338797280873712959839053423068716811962510314559335900854700607638082745110257715805514233142602002762113678605586286162801503232715503118978064054109315366372403365094842901967491835085071863457491497428033265750234351398078545636427517043581849566622560834872192782932081322651563753873058826563488585778357931295773526892661439258622483275613931434421629215858566367895007504077107468724319431749556637891682478382086585455211903501435812387467046419880987002339352323291569414613618336821329275717894790529334812151894591742674641626987734209241265407834606639967256391464099406175748585354987201997208935821925798173036745843879968865243947020326224422312869196403719004979583581965377493527466284044654481098091203623021118442188722500958656788041400987253376169661871283609226673712866564023500403893596196948795461568863471303358235641627202580140442823453044363572465928018858467041280576147025867157610052994881408625085271310610999706292006140849306516481440711907486970279488585473833588696221752497039735078238645466370350223475866884436559497397422521892004789694872685435855111222839139206986507205661331771967565163668580144056788987329999093470793381888428664610646681063376932392757305350338501061905028161408690870395740057563888354010529760587442867357113011199945787151863307980738343506468607927860296802293054019069890875016723494824699218288907231045207885743276991000652401484237136310111874531137696613349459251836799426124548792558352023465810720863977994577717213152386904999596626932166330785741242578350601157102917087275623869007620647415692992511455974118002693150294157394813077836794942012930230968757814667667233273179771215968237793962637627761277535416646773793472609342887703917665280848790240864704038215556851203564890065304278167567248682174308099701725084726965182086067420556594421301597790033607783131429134991236640341569530528454803265949267847917745461398461475749209338120251406298653248111289615361890161673138344590531514155752585913988305430128590104493510795282895466881445423217104803244738735080132942648867371987346307909397290374938250454168269860449583455047792752400999794527139462887917748477605148976557091346322582055870279429497689456617381955273528035101414870061004868126052537252912655227394908561180412105168116429238763822485430448905860384909723326846571709532701526703632779008421898487468621397132494578947865372232336647787080364991032766711143641700837633364472686001303635767882098993529212787618826929072229222185067201392917676762852465646223965032440260208928435362546509611574695805026771596794085448003624160596950497624218789551662219767295844773529763461594185758870794894338178834154285777593489531542478980617275217327848965364138086964566553262254267031488163898453497095240323625213521095372725842574274306907731660398906558758800431028664686084359626790687630909615176079828071674943449312455936096876166316680545054695591019509054514294906564166406246555278864028675671219008568727538526335680746019495795890604419011179096061353848804464064021731037304999804417853796358692081446292346410423223392359525826693017889361206945769382313009478364045255738117346387681323906931209821152847823089817940971712788741815103701244198740768053521454719959851406857599055605652323200550507345251722641810325382495300070372041547111667458882033804923862156423999680801456366323573376484917748249164967270064739968244693559221406404008852077272616831348122571594101734034517606377007771083105869986774432392199284796913878285266442644591855261057348634876566072936961237660765491117916873731582509731526379898665869576150725259444924084860993996273142720792493671580209609679261197991518361472012362483773947017478885822154686361543836388453443952423483681340512508462531199953414589987492247611702459721517199780126978629591550417662520692152432204309935018602117705431662071138836087334528207347366586222710242441820241610552161436114395337542912777103911114523570403248820489718079391852013227146162065652515594235373359882706028389032224759887033792871614705396539612380656771427476646351572684593753697111179346589387480667790605656565094723742245261142708908764738398130363002545595516270963430236821834846924288807577445893912752741908426790844724516992721229137756303082433086066377803141744562690062995964863499309413174167806624283702685490459646314958579257504588955408389411484271011323744113410520679253422139886530792755032196826846288035964141372970441837919460634894820969253946593621849199445849559307539128925339030085825481191233682382877435041453992122935055748056961850318681306888427606053425095342797484107266910842389124817358897719004943665518644203526313740228647698608991663789241760182907971002195144067895109935421073370353794375748642865008137467531437966649695055819093782452369610344259416313264763239838032246491119570595372921712455696189385055831652252783192373893198366863533776303375140154741870464768995298864429961675408083861696130011292130171504005344659614058767075493200675159127408317588415409832015101597637670088578955040022127225226917090026533355699055732802898923851040702909818919316565071758340754862686162022987936302848844954715946419151031870225018815376213189009979881876227473890987996063175501525867945868149717956713006114691277885083557364042729635675360166759029357730444289658053071906039462660105904583813071455154311849460467437907891584693149086531247250883645927252078616761183908170964933319922048520226171677265954809892047087801397716404642856476813960880068911055677354581465076853886227558495620955642570561411981108778543797882020482067153409273112463016137985558489240183277030035660793448079408254928364211824471055735203620052616996128568869212459254094689793765359789572101241103875255105350416833371455596756589415699154401564496529561341221118945144467602694970411393493837606011232712431251172125876826377507391899861181404019183023180601649232448217210223749963504463504141233639024152684867196071067904666330546587828658049368961127021211088923498616034449416953301803106997091220936760017739682459423322543076764291715246080613631110666562189425856314024789922145817113043050093013557079201480505554402857896319237312441716553867318785223016073768311856720764372438780085391194861731932774461462696357217974162274946979279616655588786954853045495922980393758789626249448903530585989195057908297064124698715746799885126610983992982858083517676222507264201129487119172083355366038610265565395908921206153951143638126773912862073385276314915883799659304083069821382536282361744657719055078197169005514934136227322393721245530752915772673078389597036819266914297810483390103671700308871205504005882393660141184446613145747922184868453977693099427986370036962875767698636623809159972198009155524097300796069473827226037188449999082975649775141355052529749866666225534921638949848265096082126170626551555845077033761253773892653080841276981184412666517222148498079538975431979855323226373891416086461425199598765410196399375985948405657868193090412658075139641088051021235785788071020954795369909230565138748077060426951319683594832064668310624744242531934408315942766466965706387754458365119164377507507833631104003051211269314622927772469313565400800938781007790244732562199437227941371121671019646565726394726196197435686195878917149229809263175164330014829257729105430310838652463892356195289325811367607316966138065153591735744411237126952218120243940753433845471446873599937275192047088051091029391491268024532939545336922379593986454038840492396835406598648120606391918916073430172524815702907858793828288611144250339248648205217902614745407145637211072603159420326113674001116405658213023429239328522971712746642439258372995952725265819173562468395158822374713039382133049605382967410753761835385768003523776178907338245449178884330121556162932542499509097102883943481237758590633004595262584704861711209340568368801696623618730635587058516633753515440013903861909994970364888997979724529366997978168536670382468177930692838859090703918541872785116837704858722720648631117256576661493151684229220729943125395744643103838904438576515141331612585056042084284700419097179283230652930555675787529347741983905628231721415436978563129747822473678669366772276675014562963310530650270761770741564058890938150432120876660147571307879044789372840558219327343261104122776534912053169839224493377127886031228967952937398065271658345053544460483038388045902112958880489503530073877167791223362096814545811295443534853240687777757834485487890065876282955434473286640276141982936436370244096932019493722921704975345480536788525080551889147810416183041386571056438790976088421682323697628499474863799430700456150921538090374966637080783930203781383964753621146877424271159615064198299752825906531338944680841265794868696528093713901321886055147772888676490775006666631704152547632658688444581583388075534881642584714399652122408004314322455954344835593354813990818757742889927784045594041618372567868558951683480206248580856671767169752146938229202319497482748701284455106570154529445341728084465683230110190287728828732273061300903141983685335300079548913567833536775566468084873887378203939379609656754842480590530612817414793487758681376066733098028956472995271072052743662891291059536642513430876564958775433564454279255245824433238206049059941857022671597782093013902081602859017976883556091356911058509016615117369522492916791414062817476510259666492386980851934499169765058196961478941777040077398331304257119848466067223012323820688899861134735327953015679619507499954446871603823139453135137419875564746771692457352343284842675528641616106282898530245685512309379307432203811145021620278754824628854922110417726649917822633913986499895326971748196564772665953454370821783567679528968086100375603663027364173530272725290943920124786793145421033628464032845512771006366254896442080409565606990336716648790581979526146222642237513957444533980420473450883852899659064721378464206495218882050808985263975387248909520923730552766423031278072401091651445542893640777793577135030638191814724635568403725477731420065837020370268107102290234861887711449043008065007003878554679752601053689604680350316014905014178620553223120592130931497826623645761476721166365840078344787200795917862342217149608306259340614253211596355539624198776094071519706345962212381774463243067328084973993203700660083236566020760119706338589555259889802121599527277450521649419574782301376591868950182499862702406285739915901820441890719936234112394689045850600582207431623856357205501658709625823602109157571798258142253317822793706142037737977935404959594195761320868189766174222465663861821318707319088385698908095908716961979043433795530883841263691742692253254017446803829298156200667762524181235868508738437996438471909531471095724876849979445470900908154581398327591068369348673480983137059848155997191751773204947583471777905124470876566630291476791300379889396529636199400556382211736468676306117403536714467042418467876317026299283175026731974731349314608391127474157269522497458281801220111099035117125198913075902852895859384529391742939088630013351215806703611916257326775647724380813488993905530800390814225948514926691207094744717809266611131194735909748045934476348326870607838154955168229446282407355485779324565892143120017350078155073288803055488996782946551548596059308000943862499836078732058446586790226642478618470824221016573711711528044228147472318273713221557726308500395657043995823135582716264525315057859516518809679086142090445326846818440499606255093191174872163176875086705247852053100038545881189343381783527426591655600322335591565697117118443239901733768813192363847181265202129619900339802899807236116853430496962562653259902265694610052812986201615764370732169947094347470093597824071236098874953821957205665629650983366214359178078573122312033052671494567112349697791476863495987708363742745528200569131442008130991876691616658867327628622899609049906345386887026243194809273161286852211809063034056826400546858470625988256850441703149898684168498266689837853580774310455840557781191695621027231315193239249605532988039994050859829118344464899727367120604893715871823058133764063178230907524479447213643494207034435670314606173233800255226839095063901447485760416125914384067248560045884933827380785285698711493996557436356929063631989101850366899667579674083972760178885524011043297880701320040955811753257400394308274558415426645705932791325945401027771853909526837143980892733721907716485352700643864956144234903235114402616828287203149941124947750220755626472216597225931901389210468201389143096994035918280239898222752606816964018329887145195442259696677705645112167390522471221690102907469906304717730129259555666870427808422405558279904463277050843566708766476904610786194270791718552938291241025119950241414361654595262887073489671345851777669482997820190184175401411430159474096826982868254350494734231003558033462143112494641219426486430184800117376771319030748277549486138583854280669709796037090087733904339748301230232810115067611336723485638792721830255742776056306299836203464580141673148878395464845515976396051015850343357376353911865430238831800895002672919932232548246257014470646496782486692032238036936735557525106497302147904189733664033753096591293539741167790826276509842431203059695021307838261762081896777595528216631072299550812235548064429388502762858889993563264150414049485673525457731897970306146119800925510035604119767257722220825107782873635505074358552754656907603469050128402558902992378367826642943567649325324369409584801816349611588013310317854324445371622013392165696856856982650859637114410285373012899895478454268488254418944888318063486946993179226216818521162390442372680186245766957732572335163549506318295286569046838923371452536285116991342484523224829348015464415460643238383507683227236422097556711182734438734922599174747468996670780865079345812907378819983779955884102402643117622652773983093089525589410548106886663561743089641110508632763828192865532169747375546153949420904211514999394884665391273108488940452713201643154900010579492948340043064977879927898932896597129231023530963661278186090402302391720959901592964959248136871985956163810152248960101811345362460770217965290126070090705099402223423180544168254804573718643980592363600725343416507896474219284582058625098290793256557569327600793450598468545683761029155911564499931788161011596147336410659265742290647688909283803152332456394816370499322737901442849683721812271794768887643285940677476970696516859654112634858066461732489041909117435633454194162418938629164667317591594915982884848498790126024007121627860991182529982667540820365840291339369208740546881249468958985948709529613666388072186479602657030229888768898745937205373212462009009016715042660132009178209812273191293241632185296121408687433888508359828515275126872327316507535637110910737241934931404807413394212823128845002506246443471121369534240801185876460945769102650196572630402693450407367904291831890970587777881467722575426265001711739902716531992283653786696791119422439516669576346345325176627353467340001354900446250782817755074779207524008431065277477840784099842425829085795978179728135449080725516555936388319226136248686252962811939605304688312540691146962565300108334191771742234317886922412914213434460698412772435362070632485570413106192020273830138005115977083839620567895643711560431043563602591184383526374708900029120584101025450089237735314971915122088151471099754943662173988308913362324962884121055012769048310893248319658533381688311145943031978002848589388711481235558465158957322290927741650052742786519815365287465723755839473776646780323464854681210416421024495005608200797698700361896989002129511785568564086941468642170170287659079439711655181266869992437535892163794222036977693456864217475631697637046676228061670611143548851950430219975853028401738090232008469963641300444222247806291988598198149409859300769375635239472117530369430647758442247107896024065525026052055295653964561221880858697440127227665182493490920100651911214361679016331944558493863481830590951569924322429983430727451041921137582423474160195924185263300088124348735579828348379758653265827181758388241143712944174257672658582675879598454650461879354137338657642837806275210535116688017094280755198218695644557281608402087756290461390621636838923427078132733650747166490923682707914255563869501612444765000810761541627217045700946010145560598176106552667222163014164126918083775840194176127178847305500825228245121281254204451190657240334879342741803037802039967273443823488297061134794589577806999260291132129844979611763484590640339109506508330191324619600161285964614093411292067562926975450044909803650671657998669939083017262405211709897509474517002774702069263626995761251229212746396582111636670220203234982984091001386817776944126564816160541618512360963799451782515527374616515562890996309733912844032215619621182973487563037783617026138468513691946564291668710780776876908918206102562655708438589498237232348751322884622854299356676226417640545015640874644192175537934345472396783812409557867884259009595234786032825586665858945385231494937240241121975195679763594812652542030268724772346096511278651212468757969571805345362200052331598555355589042928552558064964730851950942876420024939081731517957206386738649348230629941924139401922678513841121339041808099621277139081356806498319382865035679439428135974835774253109708521450215859160986436267735805694931995402757672286459046529215383483939224488758270394580937713414937652730696817520961695353917167225159327671326564313781094585602635232594453736242593407417251918038491481950073149905974327070173708167640159383759566554374779440579784973565804005049886603833863863224009135703369091451848853463512230633155499738326259495603289739323490239549400333433988949636575403692826335535236974028773260776976454190971009468684657515377564279208499228045002533817920565644817516474088258043530096360686054261937708080362602850946905981380479972819070079093929855907785118066880199907007500287861589911715801765444148249012028741605723377396039532786790219115586184778793704475586995880769271890214055859495236954408987116853739532722966188307300602641275986848247434918751570189405046158063200346134862719843011531417949454539383075074672745791069530016964244106021830754845012703305325136165619517421150005747520953026084116726425618238144807541850857463921576381628359347508040428105913824117670336417948494411425528924860091461124986383014148774427243353447096124601482825172073596780494662312321294322255003499397109346899102109195535850048433411789400508101237254800345725253506705755155852981608997823624920287626116824850322271520914997456921858028182800497141008754168212436653954448924183372072642635021072817578752189997626187969373621246277968810783019311374932310236238017798601848533450041197281231108171240850528771135461541640883644997312685754103708207346586202675177064383725195032901379675842435800011520341816219972989396582760690503144742811765230079006942318117945996819752826703893462820571274970569677191349891074513724468092737951583601666504130759050190146616141329682883045548100687893479008756371690263971850902565974004190525661883550223512230755721605738050015515695729880808166809482499120171071821985765758093744674475377857039809664941059953961049074031880126227531967534215360098437737556477460978349642978792880738702655286237453487196119781178260726782793471417954520579479797535876540027718379248134860789955277388782399322406839470104734345492581864188257385287102631630984268891759391341832419533016495934412149993133215136843473356704599147304537764259911809596049627469817088642306771077203706364215775904803424923811785461299579348465103331042341963890482664460044954170315946492741706057591631819147288607840828634717923389557704164170650009496561237622920190619266420223079369322582104285463416463025893647005263834126762651256865199318733442596494349199412690536565217981439429549582714140570033338274006281125831180703472150306754012653666307807147100043017985324213469203376247754852729122507994407847345918541381978451220137640527054450587653114382058469846270885118655066780534723107123149357283663739836146673283103634233434480054229731449397617339322914421033645743107485657869333945284640864421165673470334985570975376597575697558101736060947921344312178835189375252370907684957198904781556958873443296132414793423185571928134614380509044451094105331003450740653932616826403425589581020244613356797704550700000938289778376271909307431823718562516462007142459971442666810369171329362162960196098494440170629356721042999049787329117855255416516986696104169646015220668628029392912920038364542485669125906799667705184774012505097975786717820232444121392095513855158645006000634698945599802158587805994174806697664139217907751520472317993165583685829701496392539585360783436170993273040383336003480805900776300018601504509600180832481854717626564345018941950534720499891833709514058227461676096707341638325966589004607853421833946864627227397870575345525425915632381827099907072313836507562099834555331930452583841842144646597927837641654946561321719228097028001678619802059640658430250711937849495910404572564373008006492693174227515852349186210334094739595358754867369092593589145262973543849198427705167446271189557727102146944089175645998393172426762648708541975896648210530331813566711393267276423129980742805849361476158245696977207107634703719904184905889819303137342413661575625189937849626890150628442377042664634149566124681546979741161409756850757943394309070902639127548116777883153646841711075995971013908282622758535780663271199718834991418637244354736198300109217336194398813170437074189362536170378128511683453262838287503301094331244398205752884636294444628793597300039529437253708188802337068605019686969467094053359584391783813971807159574158619757117491584720366535522996469131674620429319416423957203674993398571345737585816403047658828118161069673142083303557323866326273116280748626405070823364892745061002302578267647522705721901332385590966614123447302363750662840801905494273441491435128630210226322399552389869536430917315474917364269934432116489998852618595314132301395551024777488815203971997694004190586935617016331971404011882311572903002689151210527226882795946303647003448303170304242958858299450185019311463618251861507325152270033048457132749954178960529616098123120383969891510855370301445703538398269766182519695882004674490838372710974084433227625194973811388451596502328094545081755691021381585225905569973419183702377826803784693791515760260403322019234259625048625013354393226524010563752466112720736846919390857708538526670518885860579869887629440216736810596952790738799518394761807880989073870786950107436535433134474059515449506566153777429826386122493993808844309940696936565920573105425122536050887848889236633770588292005515566402282833585644438640363233462575713269534088341270542032564973560601758815642413123053192024504126863934854116611206807921384881489190887958632728205751044260668500203371368856156867499534104789226985304821432945920115879729778046284037627724226584809686883343116880305202836696329251577865412023602674826387193445200331005283241121140380343685257472011588932521244534939555167854824388933337568200792322779907797979768433170255017029563442444493121112202591707807207130130390421247658055137143479436296584256552206899597227393230407735041064814745069263008827072537360837107375218376228939265015360468798416404543115637416839336311399034766401715303210968864627547109890458795571389311967812060297198003994869021477755539450134927028343072444897455715589740885198361573943287909957041014695320673049250462910618605564110997063580784537096863487201777529961142662804136118226819171106997885529868594798744029148492259248943843625599987331240167075464300530949103303554591210983393037799837315732941769726802922437929824267379354346271604836907653948480831550387285222901745829577341351348769726905031340537297037746154435521828785869442585471675245574581552541057503691861464663957097551517669220783680341850913523587538117002001728855421326593447526143644897440349914773716882612166977682222087209170072048823256424491055217864956614649029968267367691383684980924609534902963862653439994827378134932324905038453152690632933790590376727118273497904414280453227945573170445862860479022435798848741693905934004725174468881113720774661842209372023379457583034466508359342824076249185852798022008460809922425325575987078212708445217247844310180693928660272742841044994753484831030495587595642476307223792271804999625573493368133822231281137413444065252990614749374689640753988026613945122185174304068764544628765997492622599764186193110829341149657189864181465394598391192367787651711883064351575522816940421357965167408533465772869123264492752272485224797373244336826906355192606313644917562325405298996681916259505604785334640734988824717752741780499894263963316932866362318198855807500114899393741905243344329132579128079892753866151030390121132975722296322811762753332099229414339125026751839789208391388504563273433217051156947633889401565068113030011891992226021546847384564438844093547965238895993776708372166801852019424087759083623396000680087467520524318098542207220054828550609654021500412257356299552720392876286260773879834411594992213000312526323272209291349051299892220525739750017071112188194109600718863737234777409966547893495243421136442823843948227461697881229023170651077245815844647554768301428851276352623428873398792028195226783341468409082425037552871362532451003064865415102166187658650175865747608796959021647143157121087210931077360015372386658067140688753529757448314175256251409745169134067183722890475519810900957602697760340046810791170609106865434324260588583051033999959466901108245029963421674191549792759964288438253094011574287300599431961420349901774325075772119281965819041872802670607081220797964515173015393862438786186684741409201517458774319853514396589022406116772138455509187797955762833251665113283989462651460174883786972848187846653751632214230149734181905691952028816517741623485233459446115201532980207122425412068312496494843275311389079526434586915340836705406992142027560739186229118196041665504244480259978328658965547355310211652902960606259794548895651245413863482025469611078263814967906975061601694992640549095497006399960976826638797424097193304036950084507098877399059618960422984863051911290473005302132177674350239102691400739939765173909651931472128996919469421350700762919100643700119770460006537446028351424069464406634709294034364510784259847249871766279911678349351551794860640005533361593343218937399655747805792157748374304194214303972561019221944470143184730484740149009349559336395072190861849522430968327183118316415022173092105668834959402762041933988357056199760907918856484155958574402415573761646553044390486298657179016547216433081024898057381672611848253178075831333537322941878250929672974570784189878016671280067025757886277394160273022981008622024784872836276613492446502430476007301216265905035930413081334215893670204844836896427088446786853865866267435155528142833993163096797410095157650587830313054166691680841571451474736492272133778565596175644514668180331310024590369008696606594254233637409894360509225688188524085392407661167780571734447355657589913848016728862324391633195221359555672315872397585767035699547304518188321955041032085664609831015756485929363277359709000485959662601082738467279291728045500888606603089421092381110439835528494582986232831485067309543194019501202604710369751860780330464320276276438528734983276197883641788575131652313676645460562216017507213340516770700566693244001205412698902602767092039601841302837068742127992743600843233092318293383098563203712081310100443746071215308763090774141701016148403810887922298916412444862455740120582034326718007683471810258444671836321741715848281637593427653670570581941843010728184185281769912123669860994112315999222501291110575772275495589163556064273829794686860581362429955985126852447942987278734162524301753115983415692544448908970607755288809334354941310450820923492542157686635439467701030407428897132406872732297965918829599598423925436886848128787509177723393335846490315230079868487157114716553077107703326944454530966074801597197189166511894326826401975654340786815384791202847173826728277034972719656913894707417362231327422672834467100614212868000712215693712757864963198641283385360425417095713648313143377145100913319023747775396482484739160933025776087517951854561781752151254793946516470444656840588364616615263053482955860169764100323090374113194041353431575044955653540657490947623014707597243453630322155411490164506242625858266513175646867791562358590417113989978412107698194878871345661980323350313935554091859045560542366317914744378425048214990045068219331234594169490842587645120658093979093824229882652459375759633860354538482531076700739284964798386590025173173022330476072754469413004646177954009521152141130499225241042631727603248470765522172945906132210942903048985164931260984319624340789639066201066264683198357533765526342608971715005033585862913786034141339182549530485699351814506551584162665005921465188617513061145037153756498127065513089839405932800699968396654877828115986955520829636328421309372926802319207544867242095262047698483529603056250552773261724596357951695391074401240612538391336541367172565276977532769689986627743528276121116141639244226899093918417581613475777864945135899671034949637910507338603429623120452560611756230003119124991981130583121143002918412190405994536553578096174858940139990995277194366288407154357149702958595409276329917307530973927896925899001072841402298226906378258502275166072172965623966584903543020487757902360372060869365093644627165977748498791254494646139648233424578968327706554670331893058602506797542653698076807309223424295685397651745823542350560675886063102806508438304705296478308386446069571975333795918233446271658214820982193843827622493931680959614360380262368950204612488975615632328668329645933951665530731307324108596524505111248508482501964458378528941080705815705620535476599985547957510148757191493659547857788828077741495641477323838292476045280881560861506020208815159267007996403182514347279229657680358276336127360664283009118975884521773288078160160394703630648718929117029059316558130771739714879344976179857272947465312301826775133301049848745403833633029616406568345942578151561056510131119660915805855252744420915332802385201958927217787629522418877083920499768731579237296905208249507618778083509944120946886574171369489524287529221670907157843993815042006363214067397327629160400388223063281939916727036771663680352739346398352004921962189996166055715898668952121836300656755069046432082184291075571140557393629700432897328880094405863612700171421800774199929239101485530353888840208174771347499511026872121873170800806116687776897085947413986495454832062222869560215046073831194514420783782540947414403497797291758451684658910581508361505077979032110635790250110119097941732678232587972976917505882891866922398669078418443571214530568972382480543777341819224619542058241908110310200139517765946574154232752518220828664532532009295319943819511026765641039991348274326937406803612274979586521952115503751109782414602459266298838072128452322185834888072094456954528824582177881528464708340008398303978384136246760150344219022230236152594599973339094907383022273710839961274391935637050237745315720973240015057020106319600332023793139425816415354274220294891670164909772651846849451399637731744934913636013907670404538724424640202405327300131736765500931345156614232220365172617541100562917707585209339291061253235667765056321802849163504563959241044142546401634867833695083074923104231900012679720621996468960358199628103498928019770402898868627388429451139677939336113014344105699855141602027137292146947395926459254624813069879802271106304259833628728071938888393543405765241548426847020897995820268657072559512070009497654502039456867418208822676839547413169293135083347660125491809795762142280364278588756115549171864313413156100221489182908898324432899166634224867449934367752646215785681138059938655184738226475479606873337951134245469171027849453821046469473792279961610918207529637241830090375288703368836859774297977810160805837813516316201478935967903860106967357612505788130806504162881121149737062533247464636999297585728606990616232912754671266485434212867457551380521853179236912721982973067698414303603456789105321164972281929441404599296782008384092866164300416924813063015429814278431856136170744303294303082530739171921438418991803863178583363095879140786089570149658410808762714428067315610740645293835389041043405261378348375908338166023462994268021385954126069549883655551278442150359494922590292035994970341928722971348898156062070407173639923901544634389016487931415091572732646978807610332254002757019351330247840602287720253729326346512742549451022234788413706919472265231170080656221228423601070922244926811266808378190068360460668366316169441458269622084499499536734951245868441677035173228183336044585620376132388161266964789468985680485021529592728269726384587834410163903010641880422523723276438782802854155239556698947171658657437045429124957830974406012096117662830410118537449361211970428172272209522265709641387229921909477711094107511147524029805911657804857350447520367291643031452014023325508501621513858124481518447391219858194178326404337591449570065921204641770117363626998331758128221699373469639069315963204178428386599319816711233834734640587380059666598255415653138694323712536914109319849205078439856662733150102692133602338312211263717899873187893393819321564793398799458875996412055556248122046557238348616638872210730902568993841790524375419672760505292954127232243692828120720229065083168595860654533866647575676441838543843061125916403518625334745346012428651645040563995547579691446909799250901686686192008649151900674144596488600506360675717451271153434903377412747461461500130138240872601054139032483285690030138969674719949574609746617776738905308368055268741656332846705646620708631846873574675473329472985927309156169236406574882105226289848457134190740717236460470342833107361328344089011297192033787568456069858242858521174158680699615760230837244359186003794837485304323946587308242814489898052204231247157891622397071622385981260911402166385893378840286988214346483173486556768663763807522515791004590983948300108917874985476004166668563589282316466866589555616368566919509079053342300496510443892328558953762933737789713159929096842766977956833930353221349170098991337932896051808217356573991296786211247049519332468967975952647440048655791774702009851956531657208447307505352588245141037121157741667933401757587263268408303011831505295259609433173782037410846097397514005368628701543316629683850509475951558160934387608229131942508806081841267985972660355367579272073041566077456763631067178359998444986846938807207102616831012367817454910066262161022458982646811809498409407549461319561470780303066844213626223383281972019071029332327371854674216404989823037841100443972859204093713844054210611273314845767790284970934845637575062511984348679320281955238674235119229772378261051559128167206758929940117873637205170752179776390596374193071750048058956824995423180858982323952665517853530502827423995583388374162879197529279074486138386522931423856112818530048938785257875493384858840654275095269911496905950708345705008185719703306931586337435742374193373588562658084641725018174653691769670000399399035605986513599464441141155649829842313954308038637925150513000961871564103431607622029174927650538135887895174110260717306405508952133652399612089771958057982393180028260087773155206712024450973996037788026348630574844819178345920896494720273798009025553999914850061108719456314797749120069297402741943473990160657921979953977418548067648573144323631291556528362140558276133676136760811672370556935654583214813849926428108046046104148578445364880559821824934608848379710050190881055717474846093590450829367423797654794470671173443847580750413466260839308005662272212947341003926984578851761923507336955471407707390845880211038328838756734797424283821807943396216001502843139713829561962002954412105243945957316983156199904216855674904753666440439606327754781579680867355803012130991646553826157383320425216056059061907139859770214465310872034439128771659759259288528074991315914122488183883271201882342900743176093467591781441805935834291271223192310978194528917470118320597617981257743677051627971238410725468811834041274681382160487230421237537862752713951033352318736858019219314518725800292464172727508382456853879937514558371493331252276553775999169815405850358432714379177112210065767232546406448245916010778507519695266086268250214946781005993883922810687691694060931295011030302569976515487361209681696580511661739845357120823324673246150114520395165242218750011635347342912776257532510766426436554736829383284698969641246297908552387725142332439717023891913774222812247064331244586217301007355274528145483178119382123423483466494608207699873543572603030901217427353267200163502648750616080194863955174791166325419713987341733882470018048252922555165924556823316667420161816910628785323824718726546118478752091902787029938247327867631306431112655585597533238277420076468212404188605208901911422053715031366382919883065025681642459512639802710336386778832000182813530806628873540451145410019084085983185385440759839242034435154438131671250560451440882202718118799830820963484550703035973003103391966459049991857299373170666908666946057600200833321165900099202754866562323714318815372949130555587436161393231118048420212504331768912286525824571884808328997560157232062647068021915466716872805003765084429199110634997288615397326507358479873612062980514744573920746728186070163545952876008037056338793282208599841861915682673755771572432651655500223304660216891850359244517378531514331550693095137036078466593322159010411286785397538428457178888946749952767429248655865200257897013251435007743333330708584738635964064513590011737377772041440178156868630434728270793604650688393274495312659274296819341417820648836714901533595182157444322985631247588483279078661027101436766112859457171958662388465607147643610666321381961716625949995051809809586575181965169418840687997588961779545650139547176734170235301255689429055070557937155713474851314039286325760789080320094238581148158847818730060034570208953514141167992530904330582120464661934587879851438035655086927135826302417831237567747034843250847787070234138265397564280811386817398167788420522449821872617397830120477774693903613959701088548593162257796639070232744833522877408106591301943526318795667888187141309250423775769732106046863084628084782265684825231255639263746611117503062921912748825037226371571499889072271528511808766660437519205160903462160353352472903609954962759791974019974829241217360111342346231848722679910069057305007519887772224222126320409397892086136643790171067557427559283116228451569801341513192760842124379985129905893481419719019780017082442110502163460029122916348994901963621131947815954471930970147137099331368650112522617627333909418239478306043407286618859611163332623004480063606169300514130085026632481591946225361987257708132546321901478608532936535755982372419714474067179303272164331027381172942836460374705737818037873297401333204873026565239140855183796783273397619696822897393203048984516091325973731445807668241480112845602310063498979732513333392095043542036922082213753288775918762566836368429522249708531378081300346785379148275449638033619437192468691249300754547387704920527824232616798959596476938296742703050895952446129277857049418058817373653901512412464015896141578553310283538874491963056867572792494356111048921481197200184161200484573343225878406364892100216010976690473531916930744771073941050125254849760841337571619900719742154580924204838211028294246797896989686693024769953724442115199117162312582258180739091110620348275372531508935556362504759437546518491404660709861172268484186441549698104779465781254932846599693330353504202269677748932333332604900699818124426102693761660388241903736748643742662963208164591263795740699603439052018229471929482795281060345941652118244796960298814469590752674182155704090061601690336525810253282446882785010004249175128857769399389512078953013184434748628675014326609642190784740763964810187573848197129309588181581820786043057062857351240614616376597279019795854350292768149326717392071813051893209646317104155460121059839785772065195036025400605801512060707165027281290837582525131950387345317362217127309854471151830822515256503268211564922645447583590990545289848468749205732827064826452528798893921670417394823585929371819952754071864949185374118815537094412135308046751158563428112689537588540187996677608215846281294867419900384519891168219042528922920988227770451374020544980920508507026202036127105011013865415807776464070421342104448890684839484759431694948054131459631589267557505576690231094061394565660587024661915197865251821137346419839355745146343479059738292719268172928585514663801939296272865223971577239288302345528102571745976410858015617335971750906890877488706361515449204781058398844889952212025851841315152533553438830958211378666529372967365833287581524934121556727731980701268565699694471321006125259596197014001900725180075348780601647565903866585004305952433697583421841623788691036126200500961931908086197530386770255476412313682833140336077279227978447431499287828586162039036866334852982244037814121869337814175622815341651707927479741650539095648292811606629769737470837349303064353569163846236225302225815595496218283751145063038077212926759165012881750255976806342412748135197176999370872831489396974499108184473402466550707163290560298207292762350496338500708120080592845243892983919241914718276829679871397146862554394269656300178350846366669663280836932189506447554163412209449570714503513175923872095639809052694926136195406499959752243562842985718368294166467984680542248049678103270271315546233777383580858882333051472919281356984335079296312153407832394218290357522046929478738638736724114043237107550103749937776369613602791773015465271392228725375545507648345665483740984573416594973310737436860695664544139718027428289825715082912665570463269957717866637038423837361496244758160559183277706476151345763999924441500643689123122171958688784828933982895079592947765709622712647948135787947895180380454285674734637689416817385794426236292802791881369454267418486547343844357982361985951219073252232999726396971072561710618722777341087204516185550259071909640917660999956933629210571714040775576120879467648320701154818103129064871162189414222142770022477556266450062426088043405464457746995111981444390460441263401699785013159693449981178867002586564526504890343565025757838667542442780612339506626376755011187341661573682551086326998198705070666349916995707620608708746837769832253588793336195042161186371851910651651787559721208857328840767177160442528377162086350902652414804477370080742259733437285930864288195942390990291058269939104826602446114350122484447773347709255412381281769057618161543439218181862722363867236913295162448240289298174816573978805973445174869423027887974063818054126603361704512508748674096766089640016625376659373113081841176462702542309814693471350290170379551637084237555584797853189279974861687161558434721449946990628280650817205007944045561645018305023773292438610249867345780453377481073774872672093997454347459205044520064231256976413562305560423720337216952518980871529881304015322702779905898291173162628145440708815933961314590668667476302904267190291380788052857310233546452445712383841139057258649616781508440880183234448615838146818747655954309933184720058203528448925597202597906686615205118496000991148118355513820914535638418062543509314349079589690824670903593322770519000280747929552416922362034748730906418053800147084432044198244046351950799216545159601143366014974962667203824939141058225983989645461289821988987490196490898709016858895863790552644251695430517381886372011440188277359022818548123016253159788030931843248300779763233143002831435143393301153399144222986159634292378791116004914298492698489875115344629335674059237919144383909568342323348820529904670661688128860270731364785131226282752569426201102349544037075768674837840985863817862185499697205278831122312725122124754556976189568188360506617872584564698975297780794004344184470684799495039069107870458726673639906974929523269548966807016019318156316560230864008496789147431163643612038623863685967363805270856932880243786506541296541311884722153041437389813332418598886144878740074878760075829704844539646800736866061933876902286883304574238612020552330710124804193942235823302429755069325509882566683144218969890539496451561938299114148665267774112348178922209867379659044895006356721534767211443310556504495218551223986129592077779725969147323782866188182421778439014633121067287515251516130437407573087672234242517213624814938828810554902657658660743067117218429061970552816773072317717539310390500021192344494121743656231729281602638405183708175435314656578958396168172108911297364427117793456946889260862061853207845316277766505396995303238836185235588863149606664457706688622716500207605349305347254200647398844144931422705708240782336725134399637096214038027328010138301512397343786934880114186246703428749451976566395142730116267118439028002594709817815646876071626685144596914853778716061157711922808287755706642648327598832398853632440812378812836521660073516345968131400867119147653182119989271192801024538752917751502899116824938612974550137310082258173524659520777318752249951067451501436901196361872359838101724484528512191654531844435496427500728453961015793463528804751671138372524141234780295351255495310723590492978377740906690175373592696319823380541187173391141896623368195788504226280504783482859534605228357844695008452467792721769285121882063313388609474909313935658822498125532233551925759580321004223377826725378883289592355585751987301180496962940320035409418980887278586555044793022389133776915487967269364232766275121936319825585994567816958455685130819475968332618941582156732560616539676344549428622659240487065512461137628096231105652018107232778100353483730236199469373914221393781437438690236281143435971493394100138732880759828460734645240927153352808286005732288212790547444339614397569537256384562530504033068112023250905017410316822750306818475233542711691639956981358496605570391594044243671688622439244260816703298605223602388546150564838030402772337458454943371917267074411352414316435383744761222123542361849054736670455344723166804580945253161674401474942839099175578299478832499361374864138234738804252963450044925208698509959678026712169290100533080802087545365116169564402389926175268782809821719738345110028282377544632486327223109969104873179325659181462632582108255474384387051182480207505184576274655498082995746478630607714407130744481526402852478437693866639763724437943766650647524148991393476970446200332967392556502204846646420179572458061985718304630402145251058524180155141614984965990177198391020669976513102241159288215396025243976733720467409522907743792706609047282300280076692150075187374678563521462370950796361756872612530280146913133009469244120761182599589838588053309088068061936518468572447508084654710967888639357936645396524073292927198617499398553515025397419750483247031965666527153073135736743850467260080953720011551508198752307619431138137857145882124070189145558150637093387883990308274236810530562472715856823245363876451447589668064379832548371877827292183825804237323763616726829638074379333987333910317820537929004817885603420730044643286786862128730842013222204865785790342466485288221487442537129581046390660141562495126376799339023935645918193620058549511599718709544756869785540108276366610664386843933483726394420655538856245849929585123392933794436179399918457857209599890732040900968851903766679250588915722086340671247220643942288393256493129395336985427147668695242881142192736848015095068193155328037859029701588055762862588297454254508158359654307913054331469397378062290071841381827575158914172067445828974042477446560207314822015602773580889558336156781636869127644465763297469802721480454668777855908872226065174589134309140707237351630025049772621737436878570029233584668745553399891992706057818807148498929577982305056999068289982105724771271829990499956999054261606525432387134696229080475784256968462391092082852577604108863548770947066423398154076440629656417794497835904247924113662798351845037660094648676046949088219499712413768854503901260947305484136847337671725159393088298539249075517101666635115187538431348103569993182893696897126211957698556857384632335237235878844132524355378905129425454919699916030434932708818260248244707102805537708283619514480282737083740848194606012586195157554210435673506582825077484216639677800491098223754924308105349054228027966321226427645424913661731945623409787370329312035333861921006580679584990032272926983604943024066141734544773695563581380097835706978539170435680308041031334754874453511982998335121097145283930399896737214066465067682723282900876335309390101550461768437245233824342526545835504564029047602151154094113245105444203405119426722273857567245732793626829826800031556471439632855281761659383530644639983114073527692983226798918322582130495204352767776994535220909181204154221339994544183257937414580840969191784935702897001645295597309936384187338338466462089135147911035355731556124652295945450167332681414552403074746747042886641052902086723545491527709513776774325444519383105253639869889200372774274155860745055163013078506551353535331857073821898364274835495095093267998561894094137353814671642961780030681405210627414294792824870463481629581995929126009640645268957076582113733851204827610359014723920416895726941967514292811437516395098006441490418834131705551690434520455105641217887874905346169369087231025730497801158552267614578767503804427534488778339035575550786837850887318695098599232645603171875712669544247629089827894784726596607820002218618948984370599303800156709242214650692001647669001336477285387977078196108993863422466549976323836163858928183177133374597951901230115046078697127651304112393327206359815103475713165372020055460007496744662366097563173333892149565502430158098695172901700544895429807817714669356616863363803129712421542829660444921526358478656593137642410952994389657764496926241450729786420790486835999844634993510870859931207793530096670679273183610193878603629593909289816510116187379430437597509687267906664386918757571557843782442388093725792912655326984247287897529501890035986479859698997486669915612736697970655524619086218151340811592998974430417575638826722561587540095916250523093480592799613603202924717548023873005100264399055674520126079476127268277771532721257217327462469840722643932193131173132311177508531691313206287277193282066520748752947996290644896337452356754116136031622457981094198385271444170795938500118571395053515275684316717505474521141602603060011096408153254112679618544881898712401917043484826493460061453180707145595032428896098664927357044193553640566331043840257531735333765630391828530013980639479057130656170147519948804649971505500493538188308681424227917900756239640419066708774355332602434322577973313620964271566707557291228071012105599912256036579083446441938128523825155183232861924474698154469204661397264309803541833664113128921529343224403471088044406960135634282050024672074554227031262572458792917336422870776925247933901935917823046368312141068628332040511883726454939970754608306422122879798900609374345300380186316185778537583611990694647594749219822339373074624589610839613906583504381035007709355756978185078188502169282572497988413133324757690843819257605907255895328691297041329844763960960865946310655052316385830232890619272140392294955815798028393284064502432073227545953690169288333338142570509854398150379124310818319141292615157539810636226493455681083705958818497199839513929926290507468704952756195501742445364931079797336698366252522952037430807677774583674367459829560136097447803592625179531593398930819587103963739062714588887105923343423357546229664552898068920897505765517527606801156260791415483799670481354332243516345645211320871567853487911382387939599917513457237189436490023991344772678200357090241244366645424563741658937955534650475905346190254251250270322020565619359169546330742860120859284674643833525466562338509236342905812826621226074012533471511802905719233307727591656088871891580031934907055645106818340786093499449947863378102799558451707051107088456955946334004408969392368902430914507341212662935274217586808147774197639880280620462622243182502684921534554593282393402304594169458732774047372646643506802349427209030229331715697591939463288726016983529198278493169702134619881300397402847673441830470290896605782665247309816489915211101425579669121532767282439658289352590984039797607022376018701241006275278038972818381763747604109611401212861954912387566750191874117321936328939758623791905905732389680229866625738245945454811888216515405988420916137118323418825006413671398386420199021439184649732257511314031551171137850715204352989631052260006254748971746632728807974271867682600972610058053885854511418881085692028838710761224678220012144509186119756940564075984846700588236976888999462616001135592894068280860688290297293689730274275423604530123198397335606683783392191798066261295932080380921853226219928952587466667201485909442612273521036547057173575989571570305030838312425372031961022105313470660737010869771203638039124392944053202026615337325528342132532184414226758116495560823840255331156496010620680760493742112572284986318830868456770876789124064912712174853337727855872825856993315482098886094320849339499595208477238497755424636818008211976658326779495511181265527244944670375521075541735672275294973902835814340849180002120487842265244843019404793851603479457934084831605933184283451012278785274261750657974503136910449658539599626906636433544489153308800517959224351920205418142983318825221500956359210987559372578230351622318069987229773723432787684375455261087028628230252911271013500306166159965923194624979212854463972127919137844743012775379614386572346117078008799450251999934195349333653272019196856676758423860553424155299756910649014384609296132485819076941490984015687621474857208383014754314420541259018043938165761018483868369537042816585277766005541013291000546808500657444200120537139636801278186268170823401718596099092817761021864250583620927370965641632788646558699773207866240065775802134897833263848572134863349975225979433990280433489593413898621604738141408303447791286202599450959872987564611627344256017476435194102278479870908159864162138323992814802700706800146593205903768740901434778772792262838577263737751913812553740218458009434310434902614068120314694050285423696214346323771201464653656735355544011694844029915118809506551351836961810942400478372012181278979625495738450319698443763254329367815099270455619385176180193652267553985644242895715276649275042656717640367725060727658154525574400741276575709514561970645202150718152737435704849217942910867406335077948503842384571278476002013468657825473114822366387717571609918697263963024521743046377482234206358723244146692265362583682394803386011959333166802505407021924385684976731490051671672336434856483939058411340085408089361180671090214445751282734495314010920422083373017420880904721329322932929627462562792124725085953246923318906431674075752004972438856317476709039814005041838634005259107521840845544755197833004338054061251148001259732046010843985253036816729431372589599918400966696216964216436592411232795679830010415591748175674619891876191233928471857665170023991937988832725302564092906900485094298347859977084444638212869416308682139651510804554846076631694151866160595414755427568144074574392358323333093191750332756920262025424489090604442045517700599999201768453312150668707185914156636797601711506150212139146821250214426667564480827667839631822913958781990305686417906205269158462495383367062168464478360821840301254258175322727370375239724367599241965969587506564026732256719193807880313584669344659294567811720978135938642182425042200156941099647101885221027318255332628140370782594037214289808321252605752968716480472030038808157532856220930849401015305460428629591093106814705192601166866685971895950358625888592895736528262662777791659587135794209370521590240307264315586598564038066966973090297223238083223452717002269688634701219063504287477946313861997293794851251670505110024070440915936939615933325919275843566022604018435443950022377328139389830713412113720918752183995961683380631437097286120492981303425436843398969661464184163999387705936572882987695194991468648893140386435558743736272251915818766138694530660748568598641545462664466316693569697777850418276702555055190835756407121792470599538585015098198117855819024019575165148007558338294097846557537594078745300663110685691403587095740223568304067407699691587143733400067711950440716089605698141358207015408093482395735073436233768370291479529614916655877220102227214138410768994061909285066104671740725387034021502399230773198303857693731358431577468870126079358200582678227305701667785496383169431925814097786109032436404847416477383818595116446645134914892878934188550854537032267529644106306652005637527031101421984051711376719469650622647557940447244027458947266894840143015621278518898944413141365204498034239300308184450651512627229349618148281421618966822700627642085964029983671028339285540969899967026081607909940976182821726022298593271459095202739161926393261801495814502263862676276489310334965497637746425979040097193114500488094224993544344805666466041355507496118227728597777162260231817615159116143631057437408773408915369940170949859605208450525434377701993168837849118110173000594328299950493057527082612907644062979495798395172324031511556680627437244419912017228362708310568373607340607856044684193661497580670921172654180751658759379927002997268010855401701486504610536549069311352209049417455679446101999224426569347330121712165467440640751676408341141929353621537393402354463065208550216558415319371105545909533804691342588242171997082625154368874678044923847132229743968038197365589788932784546944059914739976985852243047370850074916199809328286586164859604298565948635420212732700864291531016074331667187841658848827035358857758275413242800769789944143087185141082582428529212258874914087186335959836471794254134684544227419149894507923620134275511172672551123419915374189723171307333707552362220129794511306166907969317180906505118953198076634902023492197057297509587993515293040800976573608673034840134689404480058660040184908880794887961378872946908784402672554205159684460928226101454956093775078902838466301767902782662308383101120233042346184649261924863655102801316166539738190566174904225432425930097807355710107578688478117749703070749134801543554997196086833142946747736688079881620035201918160876408762623782776201591970974711180322668438030962622207425254228759987375177886609073843358583562001136056024152169383650644482340453125237143722931275588335061140813459847878590171053740213737210337085081420692369543873228755050370644344687373269799527795473814742592406158529488947131707491136726627223291929423593240962621359288899455188746810632446482419173085921113557965924692382135917246486762108297600534756953119388161660950812703625348422397212780631957552754025001714176567306405678798609011222015223818000784291455112146135891704395617081686458472576983526415495412154485026627807193710198908003666881331646524339320517042939841446169734171257218512104745187105561458576190071204578965299176894434355502720924650923572387924486110914951777743242522580505581083547479339068231474318356160066814837073372613384719826165505451147637820327760456360519995693475906513938059394980619011393756884289357489283391008223557641718153171220782202025212064933238880033139885920109262682909635124845968494853179941082388046279867601082425222197806176084730921207565559214994350754182150866519918232789825963232530870531803307594992371751532988722514143909446337115835016381294397006899741820245038567771690608292133475010058420486755252708317851255707988120134435085752654480325171632085223374021897803027050962609613935922959562360453499019740933652369691250690835548304194172014078360430993773014721846363416491383412474842900332027628407995170274282304994842855766402422508850437401935750464301163103715106555782379658438709691692634691446960909009521317815525640645810485247646379988368581495712770873069383502846741534307454993992381262239829261632007265949735837778758782938510503779805092602898377399248521425987300007336335544914092657891639719742962718098693520442278391513194428899016052349113648760296976116002060197061154717067689770389313996831430711925355318108928159923037511806558777390914794574470673640301052628324098880248440221366265053100632138205240417601347468346452700067191699494992759499520482542503651905431276029110647998778034939670710072141655141502831721358860164075980215293780238915539665859148727175622758466572616542870397605398424061290616959690925535728151979671190561187160841135129581809810219753532038078161372616865647081729057298772639256145392821414450811289298323901186516796663800632149163604832063088641339753930600108587251242382410498462679096829956012930311414808260934578883712640744524666823588573223521121022888278745148815171508382118260414981727158179476393613267343637454652506816856938970998797165138948862372439453410491528322231291151708060792142024300240212573159067711559243109999872166614901829851766851093808768720508470158873532759145896167822881264316188048540695648252217622166296557464320114453548641258820166877692183040236968649584022475509754666640305737725691098300045853686036035712682543448227073148333200306673687833952126401910970813909534133140646587153136592843889608377056466652473035527832786079027347207939555267863177142339737514601426123769841444028983320346649855941909063418646730845047318520307897215479398661049979836665404716560913678743658524878088351981999734742097093981753961038305228305564641732736358444774882716400395897870960789177118486957914238320100724978522882292408498769078090823590593588618536246689347396524089529338022681845472185767898550146984419385355940790417971043705854661229999514045595573350313307649267467800762366289576969086454275790060639999457993593217766932486226445820019277043453956190586545917758077652123483412199770652618600431928269279179457764654420393335295759445832313981163172024166216279281938984773815435676523900109918714183259666373212106003816905072514668233320027619307925625587103783917967293166409973213718179925063357584597696931750355469686727095485156641330304262587523346806188288893117510377315242218981307949436209019969389222559959626772135429133979599620992489302087673402485630082895485170827532381902678415073400447866242087714127550424776129177486168643634877938148976644154710665470562526112150436083464718153765493834796212967681490948041772333177647435538833229419431705217054264948709051369286303601039797045003666443309931434813576234023648746665245795929079082490888499132623300447319815696169158765213639372326341701696273277731053346337223608072399116658149020764554474481099009360764031642909742635198097260123474360311149153583749072963553761426051743652280081222750722374455421100300646003171239789015330949277275281519997665128642619148703977467628353856024677426255790632651697273064591461668777285891030070674780655638765912024663339567355543527936060970866711574232660467739662887364624523507786425604102888297603796474220675018386238187419288425422684452462928879180735020044221483257687794969809460922291201235747012694371296032368905217263152794379299890896626389697476663789790879904952433015053972602052175022708311720387685102315549926628154757517575288957080583714885643208502926327580799186169581050489221565432758833972763807055071497615920917689934207489967849498061170714915381992959600640079514460755840703255699293482512718107138922743607545985769474189456268003894270434709431733731159423289327613827675946308916074744925739292702541627009326790538947986534418201657741659692674538637521757594503250628909548524847834249503570727630011647487527196980987812097032765902746857309601499971643678539616740220016426250575211013381746188086839709476601726544077889319656471710446800485509354873195836628281014659722998273643695362524632638657887335468999596093012525251066908991662948521667910741232597784326555730477325981518395977834458444165006462751461127541914500878556870618634659107289000268516112541366511726060928099109926081032115669246560553237146076235953371583160931169382408475745461955934804065692711067439290469590738735295183845554974361889148396415055046691107140345578842254189683904586553715766787291952854074321292760485329418147172497607237559596944777607412385833140376834366313135020495942356462879702037073135925774827852514226807922382938771336903663048527409110209267651829085208400960973165260446510243213453156128620087054314216606869990550221617573251645028581106883405522048576910381577216585733897373330707758787871472567628165114094251703610595422573212520416180733241849527194399625341693676254576777932379191107439381938403057465547515325985036079184710785963692094520456229520757931002017034631020750739421969310502016887241695561541280927734456982313690331003850677043693460773563738119594837404459604601612240433567771779646483812491465192630517398091394306636803413873885270047452692563820747522776969042289911771472659509902375147447083929138794498905919545189944763790770349919729037102786495452369512300671852621197987412740966233226625956841543645479591561757379365187693473060338632689613892719732220905196380768087736115588042485283352603891762457647580711340611698369866309164410239448502742130845246128607475623721493764218375841402107009349875185136977111413537066349604187538331040228006031523667637201261907122878692655861731811507966538335980525231064771897485117148132815005485190448702366348379137649615547896825667992890517282333054030717200841015064424034988482437219406263935392567185774268481541273753498029078723318302164159826870743657716337787007751650743691045357751146902533001299290156105014424092820297007633940509763996389365988717630355182960673653545944226109768240372632584277971177287209356701928932806133249363463227353706853261741972057435130589570083968235659362036847582812623860360642659898482888559418882156314744229782332740338869043868898022300317514678599728615691409115323358418727912019469794365066496038637112618709716844709016545538048034280026559336163523343170029104575172141036297008635667666182483651751816117066088955957515682633845435088470835759774523998351949652094653900452986324809451801569258798909940286037962288058659849984739986055279319608108708150377464439711623600303522791873608414334221081380316448978984413901443203494262243948443254446122441236481750166298019315804016266507683758076183485787909275695980438575134511456404671642171269866790787404811597343787975972546927917387554345760555157905066100831538369214394576847594337616445121039533556135709596245892106374117850456063754229716573542912313233475777169310823837669348773352500880242757578879917657472798162605307239159957217814959733217876603818199445613633283949232292176559114681069917232846977941435355004011719850958179346257170774195305574713622990202438656853575166582861690988457576288789671378954331176006125340261350275212725843039775700303896406540800783921871825361495186955762132598225867559398896768214580727497509551597886934660000485101257697304496894806235049384653518802866070634057813165810847850515214615633928109686189741189410650143454388829465727669329444467512641320893220520961924757060768681516822234709443047645067922375476616208181592678114771998609008220246369298502389973730988848993563684463452241932440731190261091650242430206950304745596042078367052184827626950095582425448123843497565333827955917720961540138179928804922345291449740451863559916772815380988842141621810281617280493259873736499908489431269285395216499999775653215848537763541415642182270266699342729725055162521527662555174798312386197252375075224054696137909040851453211132788855148078002440636729201520484623595540338413278520199461440636656873598542565127309916842855035793297810185013383096900222272758015593808581701312745130310705029497619457201127605840154330175543264499248775842964070687460927076212545975767381314973436760052901850888464072356915612546191909228489718384646534276004826244837013569156220149824879569354563774970760095457107427790133882066076697001355583311586111273516945106084502986886018108885836358017522549851932385002008036803198691125218602845580680516889556780844159619629749921900159361406120320508097478866574195392288378190855484439272502979541809805606477222788088527872142322002904177912895717822699915960617238734268505790117951321011608063516299618622313172265322265270971588356030331210910619723516870115493080317090157184219455229718302899174494836827771218186324617607810461681171360954048499023846246058239909964674431083436159010605229781636876918050431421204215391832939135809716695990364715515824201083506958630354930027270203070617202246411091922403702912766383089498115834943399386922322387329268458893144172131223257789897013109807780145535590088452289185799776008247954075176973250473964496543715419943375082823093442416474834071865490665906185074632066591545308900741348910747843373421841320489877911192010256914714339271448933450356031929072125006815535420672239000075675553434258200638050877993224424354607884725177533188232367409115483731021793373629882468381817050593116641691975451189121833028058218684285486984237353167058776726448828344270274086046012868563368206671245103971829140651073564349840166633379431662723316353833976458408589558451580473914434446606988356533666491692168357129200006776956802114110151658939849860828127291253869906850846356541596142990767088438048626175520231445165755767154729263193708088074663497104438376369116164743382336285974566519915460141173131917298324761624602166005710428367844530761124662423077595525452795751377720370556922309107746363531756758773107915088698172588118599958970867888737931443589940188123244376589813498425238227188143403592674276646426310571808793208988052466594061052125697295270210033610508441963483399927464698716625837691290141348682070256724994985596853735161677678013609498187691443161743656440589683810138545524900183084711251197477993548547512437015402638916834783848607209919801836335687587524781220367081674628269088680117518497085280173573053957871801695161594831352603961865041238917791840088847116281737449634103382757463414075967699888299673204225251832770056975259408596466104592656529458305983741996081335864407425200191325486011695514121350517828447664639515052044066453399845852607855155324146832490417077239917449129744098143726803432605890814876965182140021869425082669630104057610595212067078547501668211089328100884346868274271332623145625323364107422842822087644724847701788740730502666970659944469575646368107751123486081450237760035705551948237411015587758913970764417935537884034080034524619770735747551900329133783493148986445014516635684324756278912090452160700380763094721384623133287183120808716276388393355456693428824059617667228290926729534653792545478429339182513012953137778929477707613766365894387504088299420030665787191585977261253932289166273893331708464554738011412411594902460461532355462539678540404528107687942609670683311499830600444891347927683878307199229724591426599942107265227161544394998444546523686237050776330389411766013856714882426542107853979012245212878996760917772042671153242942199309392402445694731238339899874705020494105466035969336403065155954988086784758015219848150070544544645088205666911990952865399494847598231791131504228160899272038673848194753236532599687867957978388801862134502391764834017602137912696971311748645237070948342456585248236187930062091662427930303190508242355483879257669787349664424386066434385016442154763932284202988104791022905854147751604430803090953223005371947170561169242945707487901769799850236825290967248273247289947019443528304740936823145979845494121181742224975721069450912496715125665729197838598310016326065778136617359028066403874829940784782984248112053420248956420713023766966117756854759586172326845996258701427550612813484778940137600205361185977828080179445537149124515449884827612039097820109699200888829545344391969589365726729778450168594459993073218039901109488260083946882552231889883779996525382517301339520938312544312325440659695766849661211307272020205239709545765483006896357918432108486980000629150384870714139507819404652719011019073659256087708578782207677432570309757903841557872761278790951290329926199735016797687750300367897598395568210104702920520557118482669975036551400266023734715748139956429907689226818636256807123350541177139671224396807969460828597992018573528080536616378875717658039355973079362568642653869792865978439542588439422043804430449202321792265135082769886357556187350636345047000061060409995867809503578239581671738428235939434326473338347680430460959644809563276326299403908514370421007054492072653034115269999880758563723106307306562850613819867808223573976837770884480083884690046312564061528609025082456903541458162105047537264040389325178510821763253671056787445805848883523601254464872505943155742909339175730860186539141504096419331353528700317658219401262127841623034519703768251094888537537716051627044605429970797764781251736514134965294656558986954004387385202501695472022956984891007273409408831829935044181611955968713405565364664299699499158888606848382881047081717712117631938416201877586473927224514201422926804054931724880307110935606820410438592080725840749220290242605787689750743281561248398378975934009462185895873974137986088406271652904194428538710684135165759527888820698676288436581079583995714058283831927786388029689906048553074071168826373044205212647091936178204030890984275778108467135639968468688149112999996056008398314918454652274746547933369642234386534662420914406880394018883756131517998979353960187928710899866693358397809837332177244970492068996030926095203145885889539705097447031005390230655374378465478230555127582740360312484116366731763189877617793117796675337135569785158015044608911529966346949723632037148166582365096045025203581267763070269132715075876340055526186822926998580913272368781582309852640072388684784147049999031919746400364563744957433824343032416391660460800151168693891773082670911019659497757926648110782253984353461728357493157741588736808931819619514953440193188112183752820159949738756462740646500393531112537878768461112689059633809198476064537900522953678435624838006349763953412060101182767554955655485302262347461445708267733005845054465214339320519573810202587119911302931443913289280112155446667370616860394627331755399542412396734215829922915328226174337353844314134524738564482413285406669394191052695259250209439520725482453225182373074380046418878844944933038133383351148185667668845638569332509509554506627729156733780925898455321809567837453968149459051861068973169317265684275524215106553812857569983254690238776588885747591968996084543357573773178597754426665264981673714717400537392727018241822140509836462969309109699793576719976938270575484039525781799682140466478882507317934622361758678335885870316728909794793283160423884972545989530648981446046080300006738139412446441758185168622270143387003215117213480635287249136097030188504484735392441290040284691403989351533768497616732341562964451139144840721473837674367395632168328098033185934877902549717721158588549463695326827942063485646309187652658473838703556346053409265174487081646149495173632301489875235011469093631526405641712499019283258037334571177530079558801212671040378595827144859355661044335442722090664415792838163805518788536545278706870316775632042344439635858073325318956562546037879282404798582436259615861802202132618224956638075164811931656551426330028470358916113458917839056462542662536598120168387261735013683184786839674503003886691109769504024139620365792265193572146920663046733953366104065344395847500702412045658110415647130340650917446947489394616526104098303968403534428155176705739089768705789853989174452270938838775831757577228386882773683983531212638716218472559723996715668516022086964551630844810252369940528510710704080935929522936934615993148444778888948799347618144288463298725842031623820133086687653768831951181764275030961330997078883913172095990227260734403939999741532062841037276958183975872167888231265823164554657945278382683778800030573853627878706548415303472063221256198962619766893684249719821303226576293229558003049226819959731535087390680419439624750756143294624907407029201449407749829742563348153603850266717425542568148642472078876417523767261264034783326915275844400558477787547316658193672668911384532744260089125799667425686719523442141241911943764793974060710715852400396103932091836568062974036457306935813094716436204168880227224961885212971908046642429119120024298821827085561745081407356878675531888861532731762259154859439839970144183415220578732563610658183694828629213606135921531884405085222501639915425633181157030650188204514257168728097682435869486193547364302036158869829857833265516332821504373171385657867748533630415988337861613010007463082823914939532637790422215885093155107049554456872735285382899550031547792863688596872983575750960089506532155727996615378719578962425751108135457499668017668732156168964101640622370754759115154200664762635158337472367109916756235642611780322431794983413680118872083677643400110687576391996434032107809751859262228926730220504882453084610611617621115583436302396336598403584002548230868409327348232440463259184351088710425621118348901964064784486206163377081920842986098480919829834494353547638684553174194948513211645505993346394353765971651147962500021848711459488730578919335018167324097705267600582239429339597595878501726320062235433676265749788367160313663396762041745824866422829600906586676713141177565068980982116848901078818353358750879381752006948834776710034501745427975046168679302110125163651216306258283946650623531261628175402071655557374675037815408374188660082547894470541736538786413590734038154776167385017569980707091159018711374565513388936559264641973733756273371923667983350883671968810976901950930270064463427315106761998832030169922488908134727748681565953019314708882667824303500619941540163855608934703965569120375564793486982844365895657576353209344566677365699187803486067500166757140674528780710016209608739222570877491233805091820196506245088566785739418780103241653606848209706080087551250518151328678957530115024096878642803911350796183998327511752456627435729778026048893128155492960079238762905429801661012145421822902357447754856771389546553980268365520138923449396249133210782178260855985913033166635129894602168343913338130430071728684672669028325309684743152718043895181738529661648223428274297941404645850226007827904034209733229840472912200042169677970049703262888748263832233705906017406658165289122576213403499561961577660804633926168847104023772115587180840044575049591190254058784601045228659129114625688675325649789033507815766347834996983800516271252107498703715847211797470827796290815001975172654156922252371235076011003610545171897044730403962983305822798035837836368265656208222707919433622586308627797900163321763748708871606742249347076383883309282227386114995740091187541485149224096997556187723108672363625157683484879024084956500329940427894973201082458462690242772338695977890288321332474201078391739637377459219870146116936816408683059473038629097357779450549907312004810892974714450550510590623937318730182302602501983194892579581791138008302641278651938865701408616499973481025724258691655220686722850244049014954881894758584555496739470600389340729219432673744966559508828980560160882476788334959150269574726394341257793536486957975034892307800542894629805546423363534193287726192700611482628186604863689337502378924438803795637907704993595449792003147356996264449262761803975978260710248278861916813311464899366698980128025308906490798124668841681556890881366050375476980141904606709449680113230329812124042043963113244694960961985518299414512235351065772823079953609818740641391490614725371319399783160071172955373728207524715526154033994794256919785514911342319964089418112324212576304498540897134954579655306088909689495122226881696566606518339691477025256411814610093453115491225619856525847744488085499954259563569345753734088469510165647947402501080408630578515484816075943025536028690743481531148519125059146552473421878420345648587803217137774270975904307768075288892886251609848116501438561750836066984955007107291495818375153915359863740887920106482887739344806893706133412111038915250298461527997832426395142077697421914061120265578092267249121857892481537883838314110944166664808204620835170834042033584739544512309518303072975101789773624231132536586736009785284401840668965134367208138426056158465339353405817096578872121385041574249321822324185568898328524055889106884293614907856191218881700179985079145022406159820425706474771011777983916435445134336936307013608095256076082372102158697556644102530166612480400779721979735378896597797378089013570204891163096204993720329535460523176660625776336823746706290338494447803964841306882973091377821420437480993488967885299221982256097584318706787913934880002937093410508417410794698939236847314776473291156087671344582866384078769068667882008248721905278341965610255872411212718171125166543520561392437026559839808615856726281742272188017465562349666996369262182615644565299990569737110108459215836769859236708897424267398593408054175024573248920086125107808159374180836313275577389364152919531504098651103875297238843890786332672923895067163570105977877703990375081848723773943632349036626890504451681731406000647054341539104305910753586695169228293672326110697289992418724452715314182518026050546863701658921666847916432558742135277537732071310439371218867883556868890666129885929433260047963859977475352821736987137416607371508504077097988618947698236973766646081809773559319144881001263425003155870500861370302581769843465226034691410770540841839441305384914754670586780294367543170541755456390443873460776124815247674429327418764059869588511521055424359704882181553606442313060048578099535309450002744558308178513341721841311617793790950294155445242070472961567090703627775016733040312470634070746695055153184986388417291828368019935038823638657613027899712178834761531804948552914581812449757184099426708764271413108136172858826944288327031095078762431138799721695055965865202154430647950846626241655081813952498264246640264994730384307263407499402690798002425148999202569517202216600539823548136022728505373625285375309235893387659584668051631317032201192086645138789294269188024007464443215075214207784885526945371751619328408295688982026347741232861870849150770548938183473704751343280040790529273257409605156324953662488312604262394351688321320648238119285978314059983619586659704232079212666814465022579928088723401226429516809926351065097008464316480813198101637396236128463766413432686535143777201901621459041866746532850173652659147694192696294406800827459526354966076805576598449617412906033695149833540695197926203895226884203089764087325887089748101597939661893901660046481395802880627434855679802666408655487732145145298596835346715637054019856194958520708654252363389642909168019109080990703208136284766170594332658778502130190364626076900542475694899704274581305313027325676448447079194108644778218605681864910444738411509825182754651439413022831409832101648737924525493025716252991521785942204838909739962330022039217251977801311784628939278113263054219191467886619771918771068488256241537347122269565847712994395483137219592397757143568446213335953731108020108180814098777898482678916528593237696416511785190772755321180292064048426440970342509443472844017363143460138090764663773431626127358304825658945567263446075098478605628156301845680771043802206865870745634479976742547720292487660545654233617892730375318764319109879527728270813906976604546187045202782266530736696355425828774693498086388251841534427193870473263838296450850656917550705048437263437753709435901321641863690578565839576972452872279880488554365704613275530464130538464988021441920783271596997705674655172821903070303513504889245157106615913523590787465649922008139503158495977540457473537653363157138636836155772524110423185924437313353194479787347995604674626659814954155596496658324589113175489953959197224941012995328479225832562329111725315036782850333956217806130668438389812505962467833424679446403774122699485529390164979786030417644965270707813188394080611932411596255987803721514383405592899956962731837546805176484175804056595186290276484097202906865278838773697812998750649881923984019401087215532451226078350906662628666256463797339334799039549613629951187481900981393973571262517977700962384770942546199771844463180674126859256129130199307937421580164347483156644255965369152322159379044324252866868394777527588413918918588270604704327117495799472237021402974119858922963900542251954541269628489475174282136955270908928823738489179026803479294236774311855787962623857412980485790268804735188919231668190717524820210480289263668153467478257775859654105625516883138420035629945350387240403635266880017187765526146534795044076920799236747512926003458835483700301578739919649396206966408571274601115737911352173842965824522259794891264829550188556205054952177402257789311216520354588364990941046450718633046637647095544856992974150628549082404591013743948336810300558809615585735118295536581542022239761082550427412149355741505005642387835909856979387141570792960911195826741735455525953630083049766117473681691426426382441771746959712246583038822160339260432044547134961122093835497503598942516093467718597566628394740816399849816034269981578581873821900128673836493946596426734662041337053458369310318238866675572868182613488085196039018548886013985306283337566428941179912759500013942359048744406756968646007516833942942018742647540422028331208424021986096462771904014618735546402729241513903466910565169528503371979248953665026109006393038078046730188659362532059174862433587844193154137978758423210383107175776457378001114278775952565580320832543302279490507378244203354142415946071029076246498073542404432286792355805026075407528610575301821796488310956077819526384168207194649255929807876746363700306700073104852668273307357170120189729390578272055427070083889772301100847026590703350931866782571788243511575364926534279154582343216968335666368930080104534482817999792203128011637010443802343696538629691274073113236916460232732793875367121609264252391830097330280513562171636677186168622809673566964979229248353526856216172513047627025453173029054359564934653119369180901329994981833985554538209962297873471151436841954263180571789009521382383400732048203808969878999408538163438875481463060439291982728697765868160456350465161801862273554564709444233727558704744867091546883500919086830656849968314396968580118094002941190429976582488280917783124525873903373453400007987370415210929375545444233437983893417255608233232304147976853586955141536177616094800301872392374426671965824903636706091255760707844153759948587854229025231957183474397414558445475455698530171416203969700595506221337931688940137754496013695550556540931177920654185694813450144670624223087980035432728230843070003441240715021667002231850020354671645654018420421253031882267452734370320775129406718413118903061099713458190382354524660685748787181915218728960541491483767511109078299258666131374083082233862717316027215431432489518387347282929047492751143511144579198846044138492905235932754961155550761821095088862828422370045306074602234219377110940884647087976747920992662434045052306079149823491672283701566339785345926670891597965533315861643991678915599278858399942380272186245671989658479760760571672320372057943933097422517220327098598212415734337811296906106994636032987429064258458900576156324136638052268574510726976834131974633276191036326472332593341779185158769709675765814783578017993362405657684532266800997392914098966252069718160845095516712884928969099284350829479071939939580477869769969475542826097874638846525750523426970750217554284033974737142857310673805318448769713471757289427029897675252776093251838167539915083659083626519717760399467160245057901533948834993248321598397973195386741075801549044914879232174698176372376462646577705202289223210736873457689719237511230036243093357988053949059587549322267326558850152206509954252982691752624431428728664956915899583389448024361705379398445687602376183424477746316855003139741608475977720960637742052577006479812829662036289568691601281272158413147110195194547126358800844549375304386822619540276496190157575764282222593446916987887447580427655007058128012392397001401830695003597974835931653021362867115099827465083293414991145134421901247636923808126098255898050147192144843899134391674919629079973275858636122175383559593676583793825747418785926282582884491044006976231195897522300553314739437113697935826791417483777122185662870832059443833807505353930807341435329636913892880342349774410412953079001271680580857486553352042835920216629442465972303128330440770194700375429088719724279786991473800065258892260177164613705937913073736622643214608526283621461739026835390031713698837887728805102117877568961758180687637558251415254895787746306751218382145973269599237811931579687446278568106471647162980661694826389318924665153139557846278171525137134724634170033106870195574504784137771770020555728957453673736985701615339574556606572758816094530792634810461826573088329795791935501028976930171608708905090480605966944409685307508141693367138353071399933448839991845643480969660673217169485329800060475280509768959158997326213900573071564101680952427579058012423755295002670737199162109207183720990713354680139162303238283236739448080212579941152935531614477347095287440410099409461771315719981697765144275825872595646144513263849352699366408260883511014442832132779432772234842538915771823811465829876152502666017241929091436700728469103653973605120358451286422337181459770202613383047698622907611077425732376642257209918737882534360369979907512432568072316951695566349247575110032782296890532508874629736646058502296780572979062572027434528065223799480299876441642289779608040313224065455631515063389367211397397497515841648663647917180789950838817427875392822932860229116828116972222824258640381132617261284166219461322284836806015075840331421515870891912434151709523298806083624260430376742551759075037269428986729598976676357169632785045133068099706602784864045072320092546657624001821959206777113729708069922814762274941813752989141738439964198994155314206388701795671349053415535090874159566127312679766279022617994209872650992331918782968982533110075368518061212474064981519373217524089174809152826944441318736356105476686969878682876156467797884374913284644616387452026027497506957113199822210845229408843969799671934902425152098201611959577101467074108149075057025585448046594751149782713606836176826594091381390970488783804728070539267384360918002972580819828527717157117505050050521737904345040878554310235731067806355056417935743817836674110161458049869086264848524443483717128514779477072259043137837486643389944622101205681664821551621456513732839793028005040591344432794684589585613575496060415907569193604286417434034116400015786814828182060873589737973262132896088497787234837077960234798552316756561819695151961883563639431919867140566431421924906915508161546694011026404434386497586540552323425447527454023793149950003582676915258426323853350463738217640221223083118681000172713319608864995694378861724811611456300684921621260396554562179680025633229979081073515582802633595764626058713492539373732126517505297206235121611004871300017279116145194796915621389608414737517143879816061268586245703848109402186175390438788558107606897641321414839389568402343205074406574086125355824491178483664395712638164634256038399654684362828803304675966650159529041580666954515806622976001709525520804445727949274352129123029419654641806899931095183180112481342385996209939589266918422126237575920652065455051636779420870573391429831863239548066222865296095363998617538495701132707749105432174164375408402981468246077070665891367357580832087739928650605832062291109812227936638510694466238502084785851472692728260439438349958184241366875581144999786355853155889059869706718720408223487233240885180092437736138324580654111964157475867635292302953748376774560932176084728205121734986334453313621107991599871473172745541249492708556798686748723247347365184388384270044383711005850312271740806325543995010421713474103449659629666743020138434011934499574504767739186886136466525998170449663168159583230213138491060207133203647253068348905093478591514587672483581550964747454900014708369281403148927832855920251908766346123307963051895512670905130796158626463238433764809161605214711816411712004178681208357106539716117534393665071431272595137578976841708417961196835350073471979568067438695218764092626019070669090266598611949956226878218048921023811682158655664896721177389411414513410155944383779764597509482066601647735256843106919684799819846187724664354475659684925932329743525360424968599443198275381110968564948614340630750903280068783392979024305714307898315756010787195372729834312426576922034729522375531617385231360697049341654550703597142384829555715774569109672977209462227463903451796809148020026648961367839435864708169127745772197632963787718387295688756936476290009277699837967407088397026422037715558714051909515219700786743550228841600886588832146800700485177539801636868703782595298555350714499747699126685429531049338321974383718720905859048451471154866453979002382221701510167887188906706324470605176293862173828653165993126826379818802419037871504556929873110953054167199119096339549443162486606683638432004807560092483209185328415358815153479245590447440303501393472377805102580346583903929104983301021915424877845702691259957099531503276973606500482145128468175457545218416696540006766931911150069513819945553413586680070608973319086931524283313824725429548840184159504453019527273029420315689134901241762490249082583675215464374273927611873673983599811737519366266602969424401149164392566400481374271543113341047209933345333725616720470504427628901029857997853708371744932828696071576198410578718609317428382055425739601244278070886359981779652612661783405836247609886095017600152367409417133390287571238403167718118346289637921099558230726325438389835366267435568178364017435027438304750264339122598804615469948799225230269791013414381547395705543105956735270565099285019269607058891265671698208118248161523857427570078673642135069412244975564397882823146673721297727193232871062338982849370661681432078864274464578920335633277021945722961780063399229788577967884351149289809800008686304611457254234438785077439527613566259980674993425152504699938646339126768863669030387371337396985731694622499776406337748888332717895567934223502297110308479892593311114706269953822122123071520351675422466487678915893378511209110313020558652680773839966845584366082168466612148554556034784981381101365275527958955356021177568116646891915856465627677776922628696714503432088326458373016352238823739827372205810941625827815075838327811516943308666354789119241179836394260522413520288263005500690345334958259978974999818529577648101902308620094073998018933939791139566332879955446852896861734002908111584100583132465665363322077076507008373955498034069763078975494753431061855346367529902116507086712220939630994530712388562519878501686217360979866102852610228744288506718016625487789814928224348397270254525000680185639341274960339111544907565290253963042837722680379221856471169164648908834326716594320726404727726325507676920090535573056695004056890239400333964014712984384919411896370465672324610287071763331232191393730597899118112794770611338610820152676873472784241420732204305956819534256536039045485291972586680414464546322595115006251526251755603518781952975042462959245189022693158512360807231437226904669231756739593196946217254984777354230028408297895860898981404857037069628728048439539303280269356849779624400119158739178583219692229211036198755273642802648956428243226881908486768687761063795428009376009684646769220750349469576826917011591968053754031074228985461649294823488487243647872712338848332151729381864477907325058600588378712379224978762752680084904991466193646455226153505585308465053844999429062565124351027534352538863658530192983217712360833100725565112578504415727425762970629452325598021680081324038795780377394106237371366442300737806500388709195908382876883986985757578283421147822565829894231031382332610987025144680975100276966044602005400591885005511990231114908891554962515516990169090413499314729660524960948545323413610508097834448388218654742245287580484827006159891931891062289766931056337687696811993698784915645934207258371505835801355177699101783899954276184986419019032555657541244976452950609897511513613490458410966417647607747478856364829364036832647669283348665771843702730111319390493172113880645103693785670566112413923155958824079282785147471620842934689924146867734172036930274141358248367307141671003874280732330471831384479387943673498540723765713626223261130150626968293893563267540040247209639473251967113826273943694405825246464241718330580406634298634367257648177377969017124504874876085930896207126805821150197949670847765576991844224394510787976404034275299891949453729562099381206830156525089510669277990244841386935400411803751772775146282325690583521461193402365885572161602317790041584764487497703595553190841986818049678212131288660981776222069953926624643629103015902758770169243918993540554621295750836807172558957131141483176677429317249815375910553237619065871662423852233550702415241688161341828681711876890783166405811713248440177615883358894611021968059044147731993173390895490292211008656873840159248814848602284555945587131241308125359408982314271904667552524671095125221699186029928860912329523074157774302110113957751655666327701379332744784044361670850094154782176149566445643406013934235580781926663913049830654402247454802972462520323108775929578670134317992131787143330389272081793963306575084999129155058940875179126097435561930266811799557995857563511150749516345350526854027521301744109378826214314297820038093513847368251974129863917278503511973630335398933786241404818427912577448059463127621529851911665969035827190864955644574968604549602436371308487457118460375054596661485119308585171868085287702047793829984334715002478467348836462267811725036774452362809292699625750357354213776270355282505917613531576837163048694693813280779995828926113807187449676809884856319004814539378981847384369624649491321561546506212322987383483175163739319009857155965384899876976558000754265687937139389403939847375015578508402390563821264495671476776370497887555878134672466837322141233023562647030523952786483073506595584059157296965446665389585647448488796182262963884887748322835003570978577702969885994484526052146235284791739628053393899827722571263775167354099160387275482860321348543673671218771917750141309541420871177114969394775577144569859233739070870094961750500583753956559020365469016884759661518928573050162189654251783475360622686612409323367953555768672962112533564441055197399131235054461062819638748576380379838855401775195731533118139582066493411927691335268796568335306632846619266965309862582943979075524653155178687819673849552818120535907095186693703186866411605919823265932387364551457646203134550002976077374645953721861218613761687050706659757864063161413947505792542802810540449815301999952299442095046606420562439227437620684441688728130558009409223919856987588770138528554419927860681369299524255832017846713631616145847945808810950080246772175647372843972492837594785441254464576201989693293418261077638414220531263936885054389142338550184952007630738427399559107620980996451396997051341498855578811479731799773113843462945654138104007749957383883954082413002586946599435077291211925702182097583488637297509031445246209883600347455719773573717614946733975936778746742666103243295117299101605945017165707362650385651416642749873484964212069415091355445274620067366391278292589524526374487124853799456290958765658756249508804545601349068945464231986391675212919585468882708390042444656076457411169501442118725890830191059900285608301563348132824296561437243421100289966319790245825288175346571721816713138349190113527351360689235714796433840002872011081811404054105385867621730548325785818634603044229725383300771904465998343611685377165538665839459615113351601332910162717691889655806132867010267898015247603166109555258248378420932129469205399351186987360739188250212471398683540915229238079886350901397489083624529322048294829568693311511419698797441764402821876226821458318639977971220904424976169781879839368590034061292885436552349542519995411113404631652699273577753231750777659654747161946246107255706915620062297976750284279090145270938535654360180663814818543768584524569009693718436904339869770181250320575128954946710117891805782454014162455128743806044880440693883948053631964638472585387084842360592527763195907333912880664881545296223964750198606370183053375162910853352509721186436453741006754274752609411376620067048347864930912156217965723307037866563349916816158191853888820409114705061616329047736529389128761274210528369613164201826073439505252407443301672387513598835052893847678307011957116584307245117789848407435863018027703766256139441382926186901691025899936550643107510063725909930107810937696861631350852878332000569046310102492713430172724204955327701159472407242709622722270221403627977329700394099762578411281864288735500980219541561682296497008060495211530078105308496025510482905231634773070523292740057655082249887616710481938939317572490472373098952196162964115008585742491710911684338627675678684456680162603558430781341435821972462621761951623401573163103226535007824325064787379913555302637150934601235953907200963607571357060220559527096299391297924879054756278505223447637396854777834056885628639986205975161852595582498497788149704854577532015487759026624817255166531639278296627427267552440992631915059580322057510415831907373235879353423673212042176826982251423916040500544180188733137851755428404881803948508440473491161472751446296586619645952034311671228323925962154792374942892862799751446856598947026169406804853044134466165036571793703764663528523545665305858729532871886715320082631985245838705074373917900070359728380859624472724225459639116175094383958033284065211475534817603472452546776665555471286826422919317844157760463227107917146237994647799163889993754477598104240395552286185418969337717948591393584435399634890259843669444963286572047220923469623086754742862856755383769191139972429192052459918486585946596355216989380524179157900562083809236678481034793146948417947342121567745996680629938430369891111531672257174012379638005479758946109720454088109343833441317789691855304884924387655623412336105414995249527422190217512321248216720917575050314454946631654633386270073971145419807300454802291819924766894766625737435376802503071322067129659851758797404370854112384268072919209724820825679612515184748278681487454023907895866503318198648302332177908384964030359274562805833354296068773106578918450914289969032912789757408026829293008322550666252095573782205965282138929084267767593017736602315544718717228612433710015549664970060085930500451783507761259910111315124319606922651801840919268247436414972918705260859456667239124409820122524379198666851212951578355581423365238083176177427036668973893736035944960091815384860192487392328239953058987249458679768912981248045240768466802061070378920438868857808599882479505520578412314372852183266783756500003192460015585357274909931239626927601232746282018149514690554986834099275032384863389351221671319090451029620420493456300344857620976780865725516040576225616841462197544115367097024181623127937156329649725993581094779045314473269626240182937848538887809007847495060676591330341678626390181238278665584836069004523195554533507188003224109027555576767291533290048939884835953285180629269083470094054283514320311180674868751776735432411490028915108532725280685002415076431762449851042563658261551561164565286464453423422332258682420183317434854809354849909643825890591594456591141448386966373225400206949008118374925222300131095450728803194712529044702493666190464360582997205436005305140077052805522534241156600167239745409216404684447272005465899030264529550459639069533739996838951610387536202713167178625321266023435082893728738768932920388253504900509261506908148988202919225283688999093151077477224231681133907162678924143307759481622318152159328784809153655110129199579911760527420419556234008885600892531391380709642332810956919002532093254661659179568776255092828911765313785448989158869954734693149876992353030018346991573439299680681442769929566741733841716897954752554786537574909731490395598066064963023853833819623608388897670452193066769960209624407646493456154701429015470018884891552707617036226178177461081507458480720197448526328701436965475713770534941826886823657328288477897375862675254232898312836926900384229622655561431020317734120133690864346921561835963747987516723396491267258409646147765474066627130817547316856503043952610020079191847036407833089450677998847358819836502599578898046526351295222196881600165939776237309118178922866380722671046688931570384608237451717496923951928646922735980921646654960195235334296734743334942624863998308156856772212571944254982190507986723154473299512492219112223188406180911146329621206467847224529160347999087436339690022073146788524081888679003674457473405221163082746070191736515007702166515567046826833749210437699238004537762552460088300458741846743003713743693441646971949815360717289614022297839352069222682569074380858537598073132377468858377170889373663042026515347754799014433966314289593649603587781198842217505630427967466668100464029126355807118543156095053770107005558620157300858470281056846953366582368523285315840320517671740537499956896910743583483082638715777244694582854937007866303017376517604983186769206916156629365994000031061145587452834688423860806030252329611368431679183026429220266604990748484265416468058027508441297744062272586978803427553659713562435659361827223445196388713708729113868929411078411276641586090325321363439147717691821285257782935518975459124205867227984897713506350707628876092046717584280184876294546158805250358319348146872646032715712855849311412778093468492760508333508778338664051486547902188214255143579535961343665232638513467260985909157253548906148796669347994640913520557590153186594007302579355776578708301041215437730663709874785274272835040591133393818223043423334169795201630307917473816792674974105251068589177699842834829270158638548939390708253681392169644438713174962689200742235462241756219031879641629043220988245678000019986029469996299488291320888624217241754528337083510411106947226349474972441496254485862581620714943060233215669074775453900788209473831378260581956189933291083527617756080536571434540116697462405937615850378096921304953254035594004526551077612637841277840898940498790718491253697095652455091724786105465782847398326100623292350762066374923661867225073411490363137464438101025690509487790262379502455700573500093057028796007709335754689852867353093749011051883287329005601500937509955387137100409851350235771067510970127566606731108025342510907770246755765535765119279285129608325305013996608030509807519933217634390648210666302143753445050275553817918802019746110274165239426170402642607383574697356762951032683847523851283752688021849386995302755710905880034235086158953975983366003460397858740717509057794892415655014482943814203048511452148204941470749366902819854592515704676985894913166897444970164565109952336383307571510589693555638792600001258000409199124031118020567140073970599379614067489416096032278530640153131948553899652887879723323759448653826373455566194086979880231563065866952354107355343330872901917337899362146544626105645425306869428644172345092419801651574877695274014065806619238699087541006363765811554989012475223952896777742878625966825244981291667330872939218634320442264041196928574041228039565154856552140866656237427042855929055778949832729970048874084498088935850995457556921885948230792259851886243839626861889856807727471050598812159516745832679914228859984628978364272175734597636406447107325489914875409459179001809827916748792976633062179625890522632587664381122431244702306810623653154869997759071839371651694403132540872059693599216347003076681975316087223195438229163733194000930068113839305142523103092669792899288961738883588754436093838465532712646214453242919153543283160425418821971005914826751251135187241499355021636974044106711894847608319893632393132277322306259049101079889512068999875084716337933370005041603949100211412333365985553612917036784480547215326236172458361214306637274051229657308158612601435598649176858403771210865503558094051971934134652832062597215139875209039350710105236787412336435130252091760548883525884974929036043330955872031004478500109613105098902654998649493347692400989896217842354518465508373221165637161051350389289727361672154840156839381070191065267042125222230341949049822010113047855595744869519875897559709071646282124713091092681676773662652952266735383799910754550356647830331434609021848553111901878741610694576034827028757328985139174570926391167793052920630239953511919248476922545307806030743715874887438511328558832212425885752112688894529742867254558184625301599967292779589125390245736505054842236060652747420376150822015145786039637216751899569531960047345764468678065601208477859485022052687168038556162332520993886831572982614948771353696879610451955786854536319621536243592943114560972895356017503230864436919837581754033815053449781061381996052724198558165036102685823070405392349043664953106370813417312509165311561244607622622180283434771553942669844215769643816160202466625703986292732501135522205378925041190028114062479659894000396743484837059406362890860272990944207332071011684575465754763231655456964109171192303042791759153519041651775293877994273598125200017838312263798860432402514890623433471765934386502145910382093032212333452486917535998951769989415006543790269600103449238153627919782327442591103201785793678718559183608472105279131994052588506392237799958033091453141401111719000752054728973158975051045348120674066733766608750838123673005325350601497171474443712216282316577584365944639544618206513851979708474313621274772591807928990370091382085177173639814971118395085847555431641658327689148283488489528205823868589337617782714419886945073693150836060065588688622628132733759527552696907583288419159769628725440809117707100071826207862607739617618177534574986411650793833221774662546108760432375659041885529922989858940686920452946259981077343245903968616890801361902324576624242181516256005446419484427993191580806584099777867377897506519305552902981510483346686588304039890894213673651862553708997532179382671303609474333173881942461838803256215980217241939759537777222344875179202328846982549460039787670384176293392960365968141006042509593600508192472536618593884942632963818267598036192212430838394165696678600853235982763086066912064736606476711972695050984107154370877622788832350266939277390100676133431135535382163687897026169511489911105568026911295318179919617071919538184786149983916311597710299973407787594227414273078570354863101105610314993979699088220976876569635637608957907981858285409858203655416208377219727168613975867577136434501470443005808021212570803218529707046638986411373889338728503156413869066991766563640429241344326963087719374160805288233783225632771982407257733181560763686689650381342515444542188634351508777587529920024205585474272941649113182188209759347865296049227982298561826038722853310671138735323908805709908678584125699605898151737155030314197645562874305003516073863956847641178040978643126454924239179560140385905469220432298231680694451661980044890102990728761904901960408244439695732237276420418907360580080332006432956620726370761154443653130344319792217857654088889227595510685741890757473234339102741719764636493287523655413072451028156324340848158474923943556886621205452684410315082203953614494442746706425202821429754091521915308340914660131273671742658351451325958732385034102184381493335752155482812251966586314444054692652207630491674034368248967855216586645783060683255960490949976449722559613280065345167157959183096335287019422095076552620547107934956766249569019055663295663549989879915192995418913614534528398061871197771818553466169919390232774890676200963800864299285570248342648502541363348063152018333671118154936085632876785083337689420256145066892635000108589855962679412896361770212968728417729212674856436709377838288890873616113040330586397115132606963504974110079342013212237555322777814498775995329843487798959879249513879442229522060320782983009163221453347707910595162942630639557496746426098360212386945227828989604781419798874276661967484338985748776532925254640835467191856584227185069491964549004952715137130774556269891960664084364563933673120090820961802279520280202705067220575799046700542610876151636464456338076343827516360233977326784120246633764982711377799576841003546342611704760566820933347949005891291409534480978064609651811804370536760263367284559030159860377918063409641036046897928641052514906809885231819351106582759600576509382078624191189846520191196678714256721024217578541627803710941504112483760947698187809162271694850605823820328095547776894084549690682879355308809096366241464167335933785776470127928202086900735123712839981025162788643706820992110906983955992826231632314643666490751151809468096017217576176360195470480265529801955699797895343330304527073756976300104553934213462424106982002016396365946366887028698299060917797507513292434542141125693784527760962654643836527052330880132310224880192151937502942052206156171494992408839079007042564578040951122594135708665536302667929012481842921503140681529887270174918205600333610953930951612510211033733657186809654822068709856754793282306292303987168524801653384092903886964549628350647576887588111864352940855308213115062299459254437156655336593566877648959727601565958116574840361372849953644528644154494313048667482196303893985028936566261891967184152955902328938532489022671371621653256116492944959246181163334401589510197260190769169685058632163814473813124313008910666197041481651162654858479847032731357220219836895061687695734571551246048067330179234603676958992303589464458377968450239959386518720830070634905162805296668049753152696700359287930174540213491346688624488507490283151265973147849198574921633597463108193672448599243275099255225251376077669703433303797915889417733289684649829146261879921032440206870803408445684893902778514714046714927599821801214082812033671189953578750567237324959836084978776934596585242486012401647163155713806925212655159884109494618914022889512803836750143843730522436661253533904576149255185032858895908871098283690901340700039764321599160723752948250588514102623822727148619342430512709413702332198926296494900411377360496713454397903880863428511100997573371301507898450589497731296197973109291629500282883205975462151886449374345246295775678117243007659805426741854804401710894829886278101434621650668538366855575764866889815144542397963193102398675506675846527134254055424966387815505235141443081375288263939417786488754771681678902087932472117118669924978791230873264230928251478550900123790826517919679381376734430136293344883969749599186266880278183001521357519532220414897094056712388493140044218464762554521446333941562644822194273291259953049812920549516286957543024420759275018869520115666884293359488906083087822094553451496280280168938923362162553604016691013099070092081020732437346015403394465247703391014550755158862095401747484848416538806843364575434675779724753628329118945611195305470573840261480069907118346144802001349223745105893600910482300756199944233671256276943253944593885752666658098787960997955967350116084902249065206442323474374245560069448658077267205290580202405631680249461488248410309500018517188951884717737004837787695577868024757486401938563731865721651296284745489982036702816385592736496428041253605483013910492647106595221660152058143011131849745629993903487768517680757159460359179506764743824379971575407867807977168421582110295245258310144153643704369856659748119786303160995538245405517781182687468400802377919237275938045604341564500413209242224267580700112390989801795104697080614522594351528563428532303454082249563457411664860650993982618310380263385917477640098805934542751285781076301842210285724095496115560110043465671996890367134994412774087700220193085383402783105740613887381821477786939097796651047051630142822635197895390973298485137319239298979124202147006359367464589116946476558383353679712470566662937758945714446280079851118476864024743941384850827665768673890829376561022972524896931918001293259027104849074139733953082918830829500185975145442344290445421796378037733621417309510399540550614454904543027500071269365498357797806870310687335990748169731868186584464836190255985464156664537874970415936313185675690710365432188446947214375316986643433654204329831902802397480375370197436730467128804596876450451558235569198642943273779334370201904725165280098943939435500792685950855235745889446607708562845351618580510130309835256447959386073674389506193033925694038976105839008949238724645313652115250132621936417348476060225827894133407284198038441050558185677177182521944701391672793131149305005576221578322377559764193721700152207391858020797833632832322449654082548328013449887520721997704444214526662597581089342955238235805558094030403430199380280810869619992537969399651000754759157799539311945868281929189355412415237824748929109015362250977249096029940006382133053961756518848810070798475979947788280970254823963027833088824549588048360288584357973447741787495046079028704538357665345515947047691077084223291341314689811852132971352799416025515421991363516606098136810406813738745243797744662070902439358236747213694719106247263256262869247445773044281240847537534750306775680783562573605519731497878135837581221552203192049150249458796207294362513910953158565383293262848497345334952358410405476253286208113857523181608728895866411376070996983188708311794192728179471191923778750631377079081350531875810522529824229959191172098043478524090291873126758538710993546413603024450643988435563509298368308041108592765146360618983967066136175826129062188876526922403545311789710487231306139403337244865804014657832940985276485705693661451597982087063417724435930601146691951808861613843232393943016053391753419550586127756038427531667918648375123750923712259193334646110332583729008542572644026090676108786629704317456920197686163213519330878628262449362212358778224952451796818676662152726149675872315427497477824128973365995401670902706244265218444572624611094605256122451310498211175979554697612218344130279316867849250162482446137539159384675963702767288242826845463445386531499936083282627954643576457198879572841659958459935082127054593100555002027088490886523284216543800506185833123037722217462165852778485874915238463498605810048722785101563561381616198573718528395722121986130625204449689341823278740342029731937502165813560906058838511228468742285832457416777113082864432054575617682988797847780480431878211923437653510995966659820478584177491097472424701105112193417312021516654383513619393597444902746165175964379703478516191099796036083908176697170282494113112943189653336316043003579641126858441201276727044978757492145659947334348204218867378173996969278117676886338780532687909681251425460079078251616170729510372330903556383588991935065405732650327248205822226947356510214642393731681620475039263599767500824496898142526214588476133562065923273818601393572093607338688803374598832607270250246813951520724887863798991903905592955756643913663491303239648151231779120414990200697359617156114611700962917678278880433542900230528765415678883645639371802495645277159559917865703301843297233619852766095746433831934516900880087771041744641476084312172664895516998359123187719350957554073143046652126364396829794855229531543434338807325040806337022994477341515214830932788469357351672821650855985826246582504147073735874847435956595908098734633900848351481160194421359684994513908683186102268351322958919151101679856334731466054521399380076354026187393703439254610792665672239742706256832640190840800905485983713729197654236696754836030433959136589408526144880700043492188860162191361947637950347414287327830263980943539541961593107423892656006426071089163247876912856702780591557178447051092690069461621778447054434734619680811823992821794338530672735462943738592842905783186025679094915096701082979542028154644495985133581542917302016637501315389398548086781686878688014601011883579674716182049884179752918141099200034714283128009602738364357218112281593372527583310603688826393541969631764392601841194343143114725273590084174703475848496437369171707977039082851909963341242035349080928174917946092567399283693652366589416381573472673703342399347924535938817667008805157453409959802467199191070010831639246097202478659498465212135460855061627076119415772967527837820156802596708511118031257459821183770112870278727493570438352271067022634412645682620742894606440759433049350892829295362624075529256239242892618225683203520940672056713057511229067917596178022279688971652801606230012566861987787374346272733661897607838334750600058651063901663222117481006499755998543859900098710068218862030941275484734902280029494962887010243778589355216978079158583925333299653840169272854799325335136059713900213398790966198290749768823784773100711629795172225644467311913857888785875930250491714122545263320757457052698511487778422158569005856536880097973028911455824973694518672905079113392539510484689584967598603261504157541521101454370093806267517211746802609689211201633726161472747712153718894863634976200012602036194251744883434629248707256627191414296534825801940823518792122669791239266462885028562257547218799285356934396277920136321748808597700446398053823117903905310710251327892877471654062998984730137480296305684473898497508224936325243737130202357983063970432468667099715110745781951965190051146128819181168681458315767485749235171063181717320832247581232884859912826550295850672798558958932390735727288116692385585630508051045341361525950194543898908038789060069927754712798890898590618372494636323618321951826231086578529359281298474254892573918688600434513273743981085564493072977491734814824093137683241796159536661757558249438036670977477183964724343826001083880712109783315844990585814499361237092008668748053738861224199584512578836275864855905524635969845216531682121321864424352649425111790710261399930496721353256989927676295533088587044113624683067509750549571747612852966663165593133460337056478043097704737269690381071751684751918013096114081404522443703392821391436650387248826217161939820187028285471877149282396156153812542090190662766326335749825376283108034529775385167562592112814000940249716402155911992418917927890493242169252969502612968896462064814920086220933936779196180690443012613489783538951893658275310258336734945845268894568038463989992870369481757349281608918746716066794082546058593084737938716998694593388454371046692889761351620595771162099051529220446743643858841448303742574619212478210649826365787604735100843147296445525560112568662681774702144917197618431025930328607863426135165985526956106511153552695483900613005243762952541111356393139520782516026348542796287218637665855305747822405243834780465939888181956004178206012959882918500220774190075439027515687178030902035454771077672803901418297494669402817548939761098260556563344652397543554573843224430266078679728158001251218914976602169250110251988661990534644691535949490423590751123737469611392322357987371264214850917658211285268976532995188538672927672012861715767363660408697509873303136871416524557791462870860777600872330513905620793143992325984475458926862406419690538867406567961516422104988869636457432484038729741804863511648543178324764315902308394199628083332433522658943266015099166748947845483286866566767515617944845755935231635380881396182452740924796669485451863437821048915868023178968972663609586941991697672004658635341821543878248802333504801459320096596176478758506072140794927923897661428744879965000681863186669401121778686470127897806510224004754808530140223467692228028083884358274882240901816956758596666956892484989440090719161614780996621846771735642729016738999304270613147084481135975613230332746202397209360252314456289801533944073528892219097105434248073710188376281418311031135650971457191837343943049821486424581581361731262698513363090950277441513074795258258101545765723673950738637611529814694600806296305830298124701055652092055012417791930810826331359038846226828505218733919527187032452484542737092316772259432577544502808299962808434732504739244885391284721740285789207354777569696521880344065008235888335733372812917476354833954610511232406528485031180598343736961627848239709570170074757467171720560628089617068239462087969280866537016741282594855213568783441572967876635979018044178248693178742880615124051318048782215941687560539675789922156293950367876160700028060794252176849604109379253631035872126924620649284731664910534395524137640898544792079800877880922435795616541639242628831023064293535075892414232454877685636106180141357051947735638058240296305216755084243477660412640713028489767229528706292433700353603280860477947715592828889673220117560773356467776075295312112707411217116189595082799547795700735303600098656310563152222420103679455192641833563259927368177042160848249963173911655539122056131317454291090321297228292585720804523912591899990438836271839373003150112032137799378824865915318449805716233291551738653927766687674779956048584532152440417937094315862609064249047998418222964964789370271210322725869850065006884736648668147834669247023863562217895286197424012992272200813440995020009706264548065196088906989850294774289534592738479743490769349201596046006503849323215880951851221621764443090349142488440596479943205012745173932758766547371724774553268406760073844872623181870860172283218652415130894482645425259144826010321867589072546190836895064329645751378213868366943464599785540403194962405217979645789415452646959017574331513371931014859540105722482043017327846704115808687669577184571727107503096688564473006800340113724213437351292242767763311815802440216388402002286097505600703090941737335969995228860896601056875731011134390263317923274899018584998185856786212706715335669344150427816223543723104280911488890245583001392183784386912571029016778579524968230207675216159005915552255496619228917611826445091955561403761018455665779717477159834607702133589621600152085273192341402760448301568942767090811232397120537619976986111134066301957060247776631907581935437070925573206979833840305957577559179406255750351828762471810822470344021627163503599695609672679597148220373574893865455006300269510910198563214019582589446900730183002922155876095313923955277425399138689656505897721049166682163849180743463113930432055449302242142137287364370786563298111799962760599143444208145357584148248354990847883407837680599374149741697480873706845336418369084408281094429725353695802076843686193896621355949696922788910445833288994727195449722504189648903392395760113395957751242272885411851222005534967587401923813758439091630931113821585890320421574614678470116068245084954653758492239205320322602045117130880122241396135197593437794872782224472170006078120714920997710854607046958588532028623917091351535811049053823115036892221600127240896605963375097449514598479807731007413976952294210573224139972113949005356013790659336626213830405694421393007204975488179384427851911207785504943427997033940346666391915048022725271338262459914192519695660514202668341494167595580738378177764494836140594015950313432148735967003528795190995451233879530883984584589615586184344470473179456519414446645032552268441421123559072558842961996689752829777671444323110456795801778477907947517438736444049900599190395109988736890726450475344422292822565415445871002964244260389161252039084977341411258618240972081597770370614902610357861251939024303064855142675046993439190665130165984724827353419981607827101619401588854805661279113436304082894575693183017705527160349339355191082365316908367406220902727468375879967957288244445826446762905578814501827518159399731363835594892289734953221363261230833962150699463079353935919504733801069522707327361060745182056702597872774947009229959503566004071697647336949011286906890742007296279328457722018758445814043574420926167277873056599695717495916486997799446435155902771627366918039629312268031886492897422869244886209839592205877620780471876459035977104077696536835746048355722657543942995046204698626510615284015465862207819502599713182387377697514906101176441084242621834588980914384317038585643266164419034664332494135526953742603452109901473106554138473432721734262151590551812730567648957745901989000371519568455005250654212689001365920339356133814820156785839403548007531223100923836221146223611986502697336091590893381096909755565701444557518208464377405677349658527349865155490620517971723407403787337360696638814309742362615751762266706023037796288966741492078173240047271064898514759266045983079257640114434548247236372595050728430714161970710477629873378573005957735282185283520844221606587831393590982103430172878798251461119442043713532589487916330835266132627433041316542322028268489670632012278436506213497575464387826856502265241985567475375733539321286826562139262475411365057746118004361590365441964032002345072148881014507651489589974029728852468539738915784890680600923492280656389038221674525030826572368722638891416778618955971721692237238615750395110468432861552699388432880215273988966457989517954239460866396844869854158144831653008983562321692253706690113552142318191647197637696616499741897325739522724021333384329686576308545236299461965997217501830248582764661019153201130608892310198021905772690941971161099271531462484973909894086528874024618849623274718264236430889694156500575970688987242730964263442617113813478387791441481687814694290308821883905640887407545007237863489186106113991821615341471722032032195235799704419573141345363437590217528945778834400194628893807128853759930408264956090363327840920753653855110764981584721131956704926872595494516221259230940894463474873970269945165479553657079935259992682646664019598762987111205153602470539984574475573531691580685241707291505686158309705231757218286424579727119529729768860360675446205508883165044296191279752071932357224708259568918315937836025440432990580172030614088446110203680279572379510578373332193968272833921341949693756732245009350853131012058435577566221180012312840563855085398411307314396518380318256430389355336192868815028071317901466969855400695468720350284103475561075771707655140285961237065937756403304422447498956752298535859591424705567318197477878219209961644028686690269711470632968729061209644884440338009653211949845281051713654322076895605919203139422185313047861889339620867147210936125064762104215304416240102221553668452265644240107613139147766261774101243151625918961929214872741766239587685848588490027168459937592983401566548265755790804458381815454526117643507168110610442246982788388692666629959007900553555056643238735622810297258088708787373099161352618210270651205354368127241243113289399996459576101642054975200109743119209710752989775315438790598516181900461659123384512737634196253485503963135565947133912334574999856174138952727838812266475394299921342395164609016783121172423428510748977035000224527709099736035675680324229345455332296648902189912547502742042011731488309826227110050128740561987014157302690761209696356074233114601132329665599152685107157649359849576847172460068266427702138260634207138528969943230811188872247995566929165628173426479990737335987048229630885291857691832067854997387787388373787995166472204064861750152632755792733713397444095476621308992299459848260884489548076197355576631481083851153999087440525649531185034808286456040969809775025640219469771361674622156709268964146354050353577879777938973871182984926056851940253675966506705377127556167402791736075781187441999432609935835319849629845313237775851931329109827538603098209142749033173680873725049121297482011957255832087415268960379708576981747737262454662832669503510080214641867609624670423629795869749420966308785863011702873755433511031311246337441119225883200652704799736647822384188220933040790620475856852561941875173299670589463305191852346154843038414803304560141451582986261097018816052267855543098646427196164871946375537355466724613057558596170393160104035001943715617187978016630688167100223929926392483608853858378506850090008871368663925272049906810902561122652733325545784189202285393847048353557536476027568837917786755692522560057990159171735818136667416965967275562119117071378774747416597059390884878381981645929480741697683653292373141195447745305126538664474586542226136210030655920014251441360653637542913836450371088780251397261611526943076464848132297061960794796386795158661340642262716370009237851435078481400512788925966164601069240370844835779759386112485971648857088674876295476797425167695578777418011855351986205805815295356526154258020790804757525135767348278940690013562934724005415646928084885201171449819934559393339359426259022330098403295530252215985118128242850223225452928574732485526516466269085201293809734256133598319422380423273432038163636403612467591088788693302197995753319593354990559676807722604109452454841214107254089207911897394692914037236376160919876047457917899225337555997637752467064203980230374342914140985831590825891046747355198930278925878761015570921354667171448817551413698768167927170788637120367177848819531596283515044317978551761065141302069945427720786774437234980876735651349671650231772510684990378678714251674692609077522788887109486459151734108332899068876832955508980609102922821393608871592500097412489712212137143805301259172955006826188302538188707706742213486913569887774127935039264355200108521865705000378619815181970701861970981754388706328583185887303493943668392485177399711002063926058590305683721884234281357402028184437826055964271438093105015099420383454564923932161973813660920009006508578547776944644923160869857178652859621314110843036326809356969906613305723136369138758380196141130464674052515896584371180619154332112399653937158857372540717180763120904320054130291300921311944754105418608037321776766521548729960703261096294021511782535555867182159262547574988653694533412251497299278097692004933590477630845001049505082591974467249305016184680683019171465169812390208528011431175313982787772958994767732205043664098969988785683422134945263562097171711394661868669080675939458947986585760327561919787574036264485796820460540474818304146696951979757505111423031122307914551212578722159059067696292168703832126339338317016345766743193660005238680170138178718428213329002500330277384978531601522630636610260028525523915731037044390860687975124271824518741752999693851684998558561153235110030437859812312818602014359179289920349174574212590874026344469730192945132422695289447463326204944372932078811019929157920909741111375317129376839433216820455105442294183604456342217800424709946535268666648561682676699441863918513488502687511788011124096920724579169612886405473362942653304275357368371004295079407736764407255080620557441439103176436031808957060006828527984688023192565661335663422943855279996463444463006226595502665106543957994406309448435103224077163800007221876973234435539421778249867214825405701097515138306841053948245393932906039399305830804553603454933739711366200139424778282108718378246015675910845741410996837158525607266968000135860663583018553975447036004035362540529731124446347440020821720588498329003527164946129386896353892846669803497329167446776135687671262996368671760399293783519089503033367891658943833261578133854404442643419760856928021333913376463836586705118699260422813516035531201811683295097479986500829651582899737526208345420482868093133359356879238231811858295300430202502765825715238847870941919889095110424122663368242421133863346113921451123025201118778704959232107999880683388673188592310191129287414658239402840288822682012542658516557807001964820200367293749770346930355582764635121900475540344384038459629548379185655285950726155424385037794907477661358943258627526033919611885503731865470907705012793994353428724331565489606524157397560429638921751097552193453490102410595825489233005893238996077847351078610314151124954562303678107805187239591682828568906522462370811778561935668790844103457066493906713206976686283244080743068857387901133945841175396858174737302952433168102588774178971153933005278050024745318616197437491630003507685661905962540469772179016970860792534590616310159728419918831118026150641293951519549055165928481918644750439484322205117740031547378784327446798037465956733977354984944265219751432511402932056566072865534811592969847486948934947240899100770914052392048205655580024987553732795855572280295779236200100062531261027845449123743039632900753494314484024585596327957281231248164515112682153005797647171938182296888046846948914818340360753238013088336784254639132378849554123051012890064302348209150736042257262583746947325691380903298362079960685880815018611248055252543652360408277648998323862886160243781130199769410366539997811416103938717493880691200908876511500140665971880888521832579285022990763639211474506322761266818594597978891692120811875721978839898279787138646944895882023985531595167392568158257817562567217305427516183778833159929548857157208427544163103635473210946660833274598867123865493525335181469867386934481909570500406843341689995288750720051031494510475915213240701304885552841865379933916258816997198878476724895612074544107999751404217127019886816287954981133508393435379534748606880653696360645948013495318458225322443681210415575829844218561817072006392987994765821740272408663190445790008308349105643223496642575352591158495570060145607396330314823495466965268394721053030373071558820676218116984612063060282419081123468343348579369293743657441031619959207578514389187270298259959972694242422892491178682945961228874932406136906543651500476396764309760468387237077262976762096892279789408919853573993907686972657599025331225850882733341209530029241563757665566552014433841082447156411613270659990140480897363243767430062264364737610431022172136974281143998988595091352899252618250657215000870469989395942586431490102665213062229413231992519050325362355898688523443639239990227822074234219547861709640138493317398444013983206263516242307824242035494438508315855206329536050241651979376675967158282226153913148714504571134274459117290420379495818109011119107204326838485752191290409495109619885450627959477218906753390602609657127667405115895448796748597632006101208180879852444655889824319298268546172316630108824725526723671169970023490344374392119479868215201829215289077924594841962185096519375913365199049434949859874246082189330191124619627706384302607256707327686996159527940583250208413288248133919662285550752562430973503979584878938836083121810147172007398872046219354988716476727406012762671825173231769785729629887465863757787552947380644142848319137422133313114746071191505000088075635492072510501043360815958676531968831245797398858792355318261739258927109656773098509393591204102547524676989666411063620316591099591611943338214372774491606098742187145665377527609704289518104417163635535196862306805069121085857999802986149613548125785777777819002917807945818805592793360572263127808299161413833812373965409622023008882370441276749573563682545892381734054071548344444771470837445456284671798821269450082080855607274362752132836508498445277332744932120415941852225195531756399269347616805736971672153520107476422109993855602721978364468667124698587086874403256522760086727900879702526597860860634900564327231620119005026285030204208611421249479072946612098170906386756384830281465727300028658001105372671269680356127172117279998105855018670667120046485614546773791133141723910439104106301996074967285179557601385984212197771080665032889792782922502814798961977264161819582489584716644022165949179786303649967119820125984344771533808406512578060505465139699245966427138550878645937249294795009596556402542275785385313263793028535871460902843969952824330878372819991037657850143253668925754903071523633690111132427812691903234653276273441917010388959679043903570247031564005641351866231541127452326179141647805600848710307201073221824101644770428766400202117867018851459487352021543418160900012310031216693119495458771812557495482396597405970253540629023300600469917239159418063923821010013240969660069133654081060383593786392334075630071560567574895178074919056078585926257300364699599225377426050476446265908569375556580846640357391043775923769474620918968624421900417957190866117054086003981442820526683207541135579451879160918068602468828256271737570664705738005588868525132853112098285301316114740214358466562579362937202617798963756855951162237123820666394862476031812496379994799949189285395317595387974830839040580427035616143375093678809076030800622825623380440424445480480099788068479614769307126335321888504846620069584695643519489930151865830633365987810030326801240280574790763092890807337427073098610603340911201599889346599234245958787748204272821691867469256178345674402934754089220323480855949391335948986650278664080252159887404974952125959670376573486541192838137821868638756496002574214911686692839645877155246587842863077909478528010859730613411146030213622433489052665320649923000199543437795623264641902681250485580548982051814998374340109874103700607896438694782954575103684838558507908411402201599691444437629098030892058213869686169423487007217260673060959905428009382907015554519684109207345427952251147158010838303242755973790498450438130131669327153894620034865943229624602327910782365877363308674171401692511063316353722298660085583756817054710373970684017444906119155029630125378640014305158587008892130480241140781136706783824031959509795704010259013019594803855711314136324863630952391105248550979745446381973189729844643286844356198855615493866509231848865962136879258950761725988584342343303974338596143112450480195639515023732546497697056440239913869610154647189233333058095347197489826592751378388917085131192095266904106435809043034715805691701358170202848823520017376067273517846361411645825729268543591287987094915997564578821919490717543696870599720223558180272614846317246250515290301701917436822825146686911523500724359933208590690365269429605672833543557845876527161719113139626599612481273736185236210109881714294371533818348466310679781390626653978222639934330947389079933138191227166406273638518933050726970247274862780151110385291108704144030801704050107721961774696993587271935724536445854724343139444778208981341616114199109789640741511606414619519665111790141178474907673219923287615920102818541265853905264325610334966864491633825079049215835454101845892382881074402359215390101295111913751779881110857695685582731938634853586164925162451275903720189620490770753613687807738786483001544841961156804605415819909071086708219328398506041565010636682415925514896523902464740432444143392317365678950722179937698509062221170770950266321926902834832469603251075533935694400969567295276522103650762251089012237540007506580543283631839715410927170517063855620148795734166279983806073282664342197627752115880819387278389395790594172080306875620173667472638192656979387706108531003919610422134763128391829528381074120957070631698599343538555109050808452693963287514757971861109992518080703140052488095582204128549705397928457647088164516377234641514176071280497027537414147744312163174006446321860910797397147984882614152165126420029998420097167317597138356590919198160737721215497706150530020076677821293419041524820918456402739984958937823191858983548475914662085080850228330365279672997096582302046037736967135359123906313167188128716581976302610193909875894590049554834726602464812667340059890643680736674793865204267996823270718457437820682379418892980196219574129310115025122900300778532643412457123496933269852750536618675019715837574680004733250630327647797142607044724443551289825461573664367422361384009803137013800514599982194900327173061501319639005325664795426510752871119977885388675128960687969325868228677434465605769335035085542278462836186935969230593242091389280075503684167318751678983587445956511695749108998572305810958686686958870323676834767657263218025136849890653171178909508296559850585603435578597732819582553869147667866669954501768573728594921065921413119981357899575320051519668944808501604819122273935666669494815164335816414048441500257151954563221339515412031318361052283262471628783628274572124901510547152342008995899545274304861862166599178693794833667251473791458459563674448087195874923657455687595233111192174460289926229323960191825307190146762308561313774330573950675020779962290416734538943247456647128316339998787708451874895391244294525757481919980100501262795248648429796634997323295634614059885595953588072789382709484866457327586394371536662219600175997495998920169043207897907210634374405414676809302228829397297316687301755363748083223946381540527021613146725561622881169919080964095077330626036722684239375714747489415590339352586940178262749425679390672685826277487742233172044756626299617757119625184762581021340065059206960882232798889984989040900038043397165496981612078916999760981796360878294129169267533090018618868145180896162295566006391509354272185122141517389131322124073349932768110413270291208057883379273846236585914626863016394498958196285170871027165203908457014596088956552303510756598952524414734020962643307191100407955662669254520782513493503199824871478589704654484895455120677497640795689091844784221484264987534008471324452696175734223210466961320418883079057697667160806153172698120249020869747807347771176409503355989570800156176065575951531884092135832654012915030674254238892777280971807204232706785884966448127750591083040289475136716797466227237949244668011791587222219184355937436250878739829269299367562737997802330952362953434133452749122773887647631246638988904723270710789943666149248756942826858506204625706963642861304613646340919203386827783772164875048809644975378492177824149499262750694258878044203115666052018962297245294729466341966260170027991376698469298410228869041250378860711103936706031196516140256771427453445762732773295900911985665559827184841991767335680966031989049529346058850076099332715745877995817088093837668928748189437533831304926580095655045928166794412501122536371825592980286491463218556407143081579334354406469429134131789132601244159506418998270919966098995275090913666313378455873128125130166589492409295039176970164993977124007260615888057412073510219190037545272699927318495987966148794975591039553926808059930090233251240459757713653748417902088891624949414527358216794473847691503963967759845157412856477115619540030885687743368187721799073458819657630735363596210119296283853320290216840307137152057055480379625109360973009719281577976728324655865039348678167356533055965961673892799224804690152404505478696268653396213981807920484166549301127317087942058787818346729464573483553863356330673659077965986321260112294265062970191158528223986762304164161858518015787832931602037745320277232399115780588251941205916390420002688605700429204529383516637495091555165849946365891029545335573679799370941207938098186857457651700813782543678307348291599688306129380370670618404498070223850616377859418401517888925365693302432643974362557191351904107085452943804408700193308923056023779909226166879151973958868344362112869546859094573097745278520646595497438708805212594008829274724295944412732123722837245427583331164151609424789277508133947960726278443721675877401822372081140916518295190379225528073504985012948769510960991795004084670168896021440024108451189056867907036995754408207446127892058669822324998188171097262583358249470690250945056840252775650273467026824432473978651716056370146625382262009299827124795253831871709887720243969945069366371855166329377527612419603724718641911344459668473106391260133056702329895360390729525694570310262712047556395454635044994225473213200865380012455382111858949957344032819158019574271018514743314701851837512461372305968001846278124705959257660506709280044499483985802418241853178137449594360482975947635835846091975583742196963223254190956944145157572976037198557997078924878949721895390476975256694668946970376961006190759981070640480800616599233208538916667075114522827570188642382907027752746133524250522101022607445001550843645491330230848493289703013327637703607257903790368008007182022003590787531880682808107970796199071412917464134511338113242974618317854519892579534791362300011475909356036264733991609526511604773385400808569461775656749099462277985055563223741008713978044514389946528799652554042259179742323563376839194257473825345669513930746642436705959527826558568515481652748116017835276566370686558518440525002849836578574478471117130040610116102623963645713218514173091143059086768533338432262269238158369863203571439713284752175726149744900899884520089088866243879979444095821650109788509056716869822857040242106044293605712890075727071179701900024226411784518985630633688539330709839995251088595332746088724435206871191087658416268781959692076091409726928985968259380386486309871673659994062750309178689531713940791570412456182538726340305416595977684389154568023747094597738423025882040020765818288181245814464383222868852850407368248374787534839287095757741872119222571560710933319558054065522155557910324253867708715320776256958117461600327227119375836657211010162829513238264395284739946448281603443260935728879614125674008261921686684722599493399706096642791181331517132637425340555348202370147476868832861431954030304773114750727543734163700626344508893191046499294703037184399015704068772241840213639814344245097141921423512202436479843057676058954366768916516126680716680762341601330503401086670602046694267587655192963760396332942762146627604102625280635388461897372863782708859458536556008121647728394575791377631767652948322411360079011578900949458659781594877706797383894960629002407072746067442286112721808833094583234867263571374656071921705973644577383185473755720846900938546477172837305971648328673228845249652129474962561807808809043666009726964263651282863151903450871795022434595028633006215843501747997897857391116804284725671225363427161230439231691669982415619675253453721144766939203357895173777575725259168037537222516065858518785806064518778099112978354098136652471032029277176942479169270093159532172545606868306603932548431484699701628282348503989143698631503855355284594599282055009331220768127174825194973457666657448384388922171260183729064504671424350154775819772796143095979139020186653656300280559321397789036645901105122803175412382351626379824014820076395179558809879211559275818516780728039362474635162847896792323790721544620851070395804918925521578975502589734754169707230139970532958578020824075897357180889879333874654814632824424812785935843335191782468655825495950996036478532221041342054788220622797204362465087349785255318506709976654460223393810849578964621697659171881132585158027170363873527264878020098501392248823434273524627499020529716716505389759013243752408208514899259903620617419615794858840682714974867829275932710640499257223080186452896142185110758994188425170366144915550275002374510277906873542923928120944578846138735683148087521424857582323415352160952664690521950833013757502963136468610861049373722657925473777837687060555211825369491453173288622241787966119028497772167379328631488162408633549133312597923086865313569931968475133107698748763019544010706634400238188216415294721074034427725914761464179876768901360052332723129821346366243632258003232933038411057544292948151114371126787512175781262936923479933376037476680680130553819535758038559562120770134263913446270785741609292464291144554475213090173902080753596518504764177389605397128025932381559410417460889300529655877284034496623165412683229249667579679375151316094010914119640189268320316445575853708652680457260943014488090570023574895421387200346059762392468587595863333410856759525575187916368535360993531312152184117004570444984590890243937287982252983901797094152168326570452840593879399123664538333762627170138175075453398931013061965351292199628646176881053220474461464007457791577134036762226149714121057632176329565024898702813765368822258346325054481647941837262669970637574624207076524216245911411723484606382976557751157061617330995626777049642589460599948953412153036680541549544875613503071655072060062270849668083777749322670501676931192884772934643758943338823443071436232650081941155196805986651341816975543142800900070437806061050447930110496097547937957396920257911318542814504958079534102535092468495372153998902031858457482662562388766396706148124434350759390780180950584523221910873517023013099635463400497877762220962698157828894594933954786674764633471200013671953964276637554804194874688554285564742238465642963788153488355263384219325875880244884211093859774313659661921491133583320520302639857749037089088527674801655060796628442157218759905633434356553689681248580567477841653001018921254762711059005043914359245006264122087273712400143279888556469122738047361450960930424879019746447765244152658796876588674846810569982471906555805052201533024144155918639910531390745062155479421519504328903860803177496041868799883112446217997354546037801438618422145431406416592862921305513791270688553811319276104350653669645533031143354764256785950602866765781595932474855202291932800213672432983467407746446765350806061592346101207906392862798001186340245846083467651860976997553543240242534230624606675571266866505135461952884027771543868939678493446250615814579760845629287817160913441674551989633978888651523321110861034112482403663164747653284830816632314391458287127488488951750032556769673634610152225396539016479587574515852666897989433704155170129220000631896744751785984257136403694812507156600313539872276905496761725954151985321081458922804707993362147450534740681306150473022365232426072840935279936427691740721260047894747258181498364218726639558747579181666005145536644336985421832063237883058308764450209308242735085900182492306813916904340303484606963583570930585867331363577562045138377665721688209404581709194091885655220386245894690730477260237206913994856082170139510427787904309376681197910099950364401468694505551287347790405085759250002418673127397043184564281920797934542418930244333677025175515281396136797857565115989894847586881654218556922385958254347986680906286225115194417507735774943671965465414043026830961725816994792035498756471154183607737876515220141056714376879888059528144650807751172701501014132239730558025386041147815448726524605047280477819738909782841874888790758930197664476519998079605565949448490352137720668877073889902479783175956129527495969932832709374150642334924068627371923038452416190976004988917614081724887191421677834206483836514576912771836355404514354013070986331150812303605735643455975530811325467213384803653689453608437893019909586809596236287693556594462008442632068339200531016939285485862150454660607819101016132936112505847431369572116307164545686630151719998077812089744984459605932037703533633139646084830611510596726401802126713943040190384288755105054366965519771987538555147326921730867980299294830433534131522174360107542721724129368044178987167215601600122638380121719270379242937052863198825301834246105110744983814240458474237584021070195311218352258804120364877619491461520226122858954416534172208279261256194410809481289890852807962169003127713248937948256227023047493556782397311997270305107596246493605585807071745414084907255869522952270966205038662671958932546734638168798331799669222739076951036878585771434385677051744337121145512301439427899858665553440275188207378569037490400728455713693818335273050386577212679844984833164917460358624763816701626004546300214317081194094020143880553331799784393037554310808357302867989871225508732777746853158502866238488767503635893707668867849078620759607228011703873296328589265706486235611243828834293203516988443088004760197435955593570030492714869434793357208825438624231149094593877468895285954946582232748292994221731353896463601904185327650494251561418932417768849359002814298552231822953004525529466986148971477979555218841183077819671196603762855099637802131238327154785749922975940784999718123787239337544495444869474058732272537122388830134066078303986017772107822577206249381861950829482840452153250313653070328942524932774265309180282458100520910784257529228598318791556365112415237592455934375540615247812679862081449729154669211128746329631198664856693899161252648110792869041020217395633599624496864440995181201968144325948198559906655590049450908740086722327811447013306465441102107888285729736367835633780475228830847914574884267215715459241350566030039249745659923986551160450070798520977136423565406559164804976580630739664800617269194920738139781828017856481522902425485574482394352855224901000622273181445669919472789042609129231170894547294885075400092775002728555482117391438897747013905448226179998362932831542876645221742026484906299208242581191560037024526855878285510910143460261436443458418452701644349197286381234289000074497596166027438777316812880161297906593684795237424254653464036938318371479198764771263578692787662898635214893145557615102269908223356552558979644485763531866236211609671521035326601751569325200844708929064484307291529737959161856569232468036874952350042408029505579867883476252364220858729374695692949309333787727210869738274764171217628883190985828338627214250586422122601650332378013779974419739971419861267206965686528948803349359909756905344985499685158400993045299419280884141346573087907063384492134404476888270456847307059406492017556409075175659305637152848966245256172631252096216863019669598405744790527421694857795785161671522321097397865896164447374778026882436637592645727483440732432869423697118494474863562755721261622944561100653485450845706244796202034859631518913871961230296240964056948750013411968870205897351638478010238417661529772745063552014602106435110825905933130062334553085773648411699945336911750312032478484393179525944510506281204525735459937073544614866320846148986270591035183250451054523669509777534872097829095061279762345724742719939087473199867434268836931896377071684072145205475774199801813572222367256188308579368664887598515742028304604517407711426844167603031122458331137254029822147205572585321811093614137945275091988187832391885589639519344328632449890910081444743736185105231366547244025947818996233249656077859159688334041364983679292838779669575961453159153623940177816531183115458234785124303005040967995060297752833625604458837850159077263719682710622391875828691489996047649392159172668992831213366327668145530817273472293210030978360760072037555708458445415452376224998966037358880389606731057510169635676722397352142934636259536928885773681135534184411646594501600643091927527154278220023059819420318028190148262906042704329759438962408536403516906701724893476466001394779250833141968164905364072696812116819155165873210491379364012660078935970325041773734661978702665578204243802405816978618518828539836652649611222713035428158416907638435491900158035706633072090833975304231256898500807376568446108612888872637813670726047495349556743688750083972938796291533853291697041932013763860628017719312841165339175823110569974183570532630949693715308284977724704864651825284165447960911485525270059020565285016455429821964324025154416743824068229487083876063697682391735646286788238328676211587377148415223806530598310036479310781127506577991140935403954932934919297112307420154995050620891342604892183792625392226889716955105064778594488509127136288045225976759219735536717135954876149664465184796189720221201797429733233999095408331631387545863335044129172740723751740527154618317543243092877118940281670618249586070812625786304239827970928823535595793937092689401283513370689578630250121360096153497585296246717478576636613242431717437535675894491104538080002008236457758269986198880754697923845113864384392855733153886021994453634887655998126558843986414826379265324012183265242006765843863711646559269782299231662716489958762109758983709290923406310926249834611866330921541679087890430274000911015302604258953982675278005847295784582861194411359832711326501069561703501466009752053982016614801797197307517083099639928972164967058092455316975113062762335486426665715831573371698786057286742680602015187429602915711381412496111671530893048329728050089861372657419319045378471160886540579667988886906415528966001666105738437846216106341395748447296554015998752257119515513311089133572990963531401975561695898710290934884803546344057688287703237604587944211104152789454270827046254146181103260359286141519862186316835582403460659678982735246476072886392881667958208618307358008762732122455225638442795237275497266010123292606445166520804481832086906238822307062241667449369662369147922907012108862770964209363029144477147512218301652644286939648747997360858609647837313313773023753837982780409418173494529862963389559262745839971354868257410796644836130290944426362547826779921106932965736223237116468152835754363599677070156333053777819323486116875551946240219074354287270151941691271489560824741342738413639087879421484234631439322634080364656135775224250627631683758694673251969687525477686008527882231506207306746232265340410869968984489484545861439964353800912919316357371446760023350236278399314373470601405036509409761714525654036104102716449243016869716733584440840829384055124527236994645684698120001157184178445260254073558773601594185334404951434586720361496957939263938922589547215613322477097906002945380625142583058301973480517767046345247497680170991212232397643546162041081669357580511178458361302529576363318148726670781880084083856900762864627188948617704546274784650601289653587757105825152359214483381451554766174439947538518764893900742418432692845766291751488030527823450625028012195207888565829678211941645749866155048044557836463042641025873663690478777726417497260242112949805323191520146380747091155057199667879514331162866355943059910578571502624025722242999671034283169579568186770386277345694165302684725721977915194238502102290337927775494450830827633804547628894902453622489655229847400122426779012709309941772619024362226927434055800666681258821744014886028616445037825563360399326812466584799491373561885558572269389853208973348441213810080050506409407307857130934307283556521288798841911335126188331082783683878736801512347063515729062083268583675244806560312649031335601582106816061096699786705252265894357947489686502941109412400462878868928918137549365252446768710439093813046292252182292200115158843619639684538621918878822985396555082120796264037822676705605570419565270676022128284909504064299995124394022478168302911437998714314205435573146378010536281046918242062627637513911496679786893724245594070495523345081471200256289047770351416756276123974483572976507913538503449914718843966138644308364507468181126404668375637537391475871585686479711518837440212574409910285683420830451996614998497968449347855664531240610344125875680820115456085699603906585875910795795507373037997790813381343500377675753731355590417463150821659590391876438921840884845336083637231445875062365283106442149816837532617981734967716263145243979547967924587612830337378536867523762848318431360772002308357911870499608331900616959953787120190933768115929301000075921494157043103419062729959333337797153084090568852428491100652570785779601318016125918829516782060502328922346169018285178658093711749987076016245452379136578380066752024648874358434859823715229575294771637966251538386326649203857056903487947891242083222890322750295999438826509544244664713457710894379069811208519075594044360026844702757982260023989766890523293681093830699905250532016031918143585794199428706047926187124595795340417033392596333766447744142743943790076432928676313230874372853503172202994591356240863190311837777898540255542926845074418837985344878402518548169833555572682196682043177741784574400113713804137873012403887382871715224116144064517182501858238120411276091835089977249197299170780355788624591999034537924542897472545341442078814102586424014737896120902511572493544409748299962889996848445657533754103489947361701831942660193658373959080392273664879205001378134980656421260587595371297262929081363246404467508272068416826382201576813759125514673265057827396733591595575834334000736542113650521243276360156453862818570438344751296113436299932789672305348778171694287983202237013969439087055075328631375889982287274150618573989607927315393706323095112133161301837426250286802947405602789959892634290038109223964832271098711990651930865822147980233488954502227466844807927967140577103399146767060469294712891293873258536013652421622658796121959169142813203778620881322512161625661296593469963287964603413396374368555865973372757468914734832305516463100168549498018537317202652042944220411247319272739892485373941271143078611077177780699102225031065116411440011966846930888155515215258567759730150196421864770631189907417753914992450121447773627711362433607471421581661671991143611665939946062070472595388488007273929019688271476625017083044819198654554054477083501013349015044112277192246020146958163189177320766090479425242717531944261023640039766084250454128001046970206505146800356443067184901804213689017502191404276592256967646654051038808527204971109735487334566600790187730918672292765865956107124170168760778651261267886506171816094933721072135402185004324802627283621441025523600692504091999422673642080238873233404619334009735676524311704806875101940687101407593164356175058404048486395691240614746192554701503427351605341996707473608821576927474586217802389401660428198740888582978379085527978477348415953665725573634240963812507705913821866104160912993403218318221124267966099111534293292724889317900202856661035812663147311724414104265009335256028295583246205111413068923639673015990823462598844981754141841021045675510732138846447732811428772421550185511530492757639797978734870746796294315279929991014943943613952726013962758774349755680374682012110392663309129281402793291780273993094330302348011148806686890856801332831825747674511750066679010704290879164628456837565274473279851310285755906214675491915520242500370834748871354646892063202622169488597032824860594835538957937753356640679244810665802419754653049744258009042655726387628259174104083428526019923745274413554462781025194418172550053014637292925685403906422098567732442665696794633060728218264580937806255584460459787922293681307637517144803590427810285802151888933276046778424335200312253905073815731743565521126842537561089760275045160098574518262812395585235235841278575559727920932829599671276590230028792400554061486122830888170923172461072005717668118646738064882676382434472243993718834984447212469977548435013038064171327453835070455369313433392722770899589105405082716645739308945434082874373390492422201482648224975032016353063073423111568227922976991901033961497484794638876853572397937840856097923678468816426187080314890466912168349342477644577354451390515376146342552907234969637473273244211373404781878100441367440333389546959023973791501930728891123156714638330759992896991679049712395340723403174097494786774036795230273127107037959793430806416201529945049960373114554132964091615875972224799687869500615586380087049320448019074305635043244173438556132542776530384895094679605570789024254697962150107905667279244363285980739619413647036100948985486857490368947860697385057584205850112011628350254451767182733256946314897920406417984044644298249481881336989999433926367196153056502022196117237884855827382263887581302043210792090153219091657873395784241284175610468436778562709864274116862420873199040378419267855705380258394667308830610587741540494259928437680118096097068144684926043323582485505974405996003178403663331472378403636113975772901715034111459716688838261000072378607891375163658068611586213598877049191637348382392012989480963391031748138665563918959142362911179847487206046890460244507819861614410648463159844241931902230683986319993055624741375114797405452273192459702439628296081005556837615705517779624976561619036602531859634900111701180558180495332981753965207995970277784504273608412733918998186032338277275657912606322413922514162164867867055869967985943440020423297193411542499361158941276206111056138783113349193145329918951398558246409522983336086023268097300737894367397467101382647389466081014926795031939915843194587664486963038075042385699037889037878948183684526401022342098564987837273901968722382081096740648104502927216611676076822776067231211368786314974274781565971409239009246264543452590131463265772494518040720190371900710489671946182986912873686458910403021986177443676977878454414943185592145389223278570386952036078010730928569315023880178721370946936050596122979554595262700285288413207910930108868698050395782804960809456219548357832513329923062278242083123126201140980560235440369303592142794025800071702673679904149558993944274128709777646954382337191449053951283618401912267900345571518670408776477623784462137180804351964414540163527952760924706831668941588578142863497191688215842043731494605729654918931881673792863671071917337454816980444971789285736085933576231653979171000574775064095429671995791295890820888584593050900864096137640031039423465589028685997341942655820692129105751461959037665467905351303344473676553289619132643120071884841519024938633834178127858649097479306304808813195730155765717690738867102816528530724288717865396594212203313235626445796403904299098479810397869397850299221653050245019262527802491131839479030019046135861930304102881540976710812720106186459716081744419505156121614176178125468439135346309660216296145276114095736727505215245743527358916320170653560221973927098047180437626375124566384584494202748506762624206913152149070953969339425185933241025878703337432350312186180338341809552273902165267351915049498235645226312208205760175407551482308033330111514577251773415298077703134670000964644406322447534378737859427485702830162871852149769699507826652657890695606808152390693223427051477727960338460770285214088732146644139184827567258652384403302814448875808919847953945515520107078549845881139888005614497129611866959800956575851857575797118050080999835300403914065224530474401164690986692080662167833795356997787665639762334472427552620515838613333293534905762173481861196026475377937387913955139781349776475742652375756899006604908944126288079422082489513015354844390301786098719440522743540238467067283706107085199191512635607450771822626283562105508416719391148234190601018127289299369098759458534585601483999933234098910455495513537079580301817128684124456358638848842180849036660989603686203120382600862227833521823644659578489151753374371220015744888818472383010339558425645940913275237639987073127414281922949395789550036186201569112932518818469440492264134922120976674028214582985586136779398370381933045856941442251300263634463458178146610323222006580467839328040239202408346277985198716026851504607931430973479991864530602134703632054138995279088244263857689095697459671117315003138817090359084689804718261126754106791274122474211744939871207187633477567038170407423097749359076512712795408066260077979642874440951677649152731544539532537830325170702512052310018057391932579029079720417857586266487333179624484998309726310960948107323942649094344376324098868735548295816839372748648265112287927120992168205751622586663946823804418417251299112606036251052786934195051848078073758014420456487249358952600650037389231852449507916919824254118799647733861112133688240278091867342473961090567906956173983959547629355573265572834959233598311582424225100525897395858572157302677200894092545588028062125515275713422072211652362107245706657075907862123101906120995790916310131798937886599974651783367126077711696409271919482131984081294360944864519032107989681505484284544276620824851020952840493082190216078067733605350070020485502470324096681313810515505937805408159099356901302846240470845744780975214833388071694254583389918106757756121052193724117057393798104769312393461362989352909927126662012254740629989900844327224391585093508517793054563385484199555880799143729564506887563526116565552627128200378067562621103720280607706230344083241377507502653625074260849542926724608561676223967294172590429028148495294097363324676686976554162005424630087407469486247901277441863074319220406227922951755849232337422607849105588565775397358759899123114585281879873885402261769710463238710226567267591211777366692368726665829152379706149251835481028225261597422597169796506621765581951467180794350928754547679877295898371889707265638899963035244077465933310039791456875632512673059846240585482105363990958214542908087220713060437532417082021488535275200901191451136831688645202684656806720380460664670801833188178502559835444352303410865224250749376101845214656787749834060712882730867642450768995637158272619815539562141713916567692131511201465135155879606716431737009971782645675237024684643078591036541045234512919802790239949761337061607315569971729580811567721479989537819320340336623219133395322139712999081084932208036399948681925107401252336324901292537667909299509135032694021445562940970762632403673769719145695664738864502705092515866001086692485502654870173753151388309413348231266459937471181203279933462138099840040824364069435377856521718131747915231669008578023295467983777043542100715026034586190187701200142110260924094293129946721597101338780615987456515920270392254473205261955316301312461903709247036168509436723629587054885588525008565087725009174709142498547593616273203681395470872533197188366156902330448013600143212692987954760230011411962866782919099598188361534241661950936905927631472874183271556034195595110132721585951139173375734986928032766347273354964914964343892962262993654409054729929467185718011215244729937848270117041640398850222246249224818139200298939097144062406755569719222587438177944069658778003328553065611427112116635124203380504288012908371003514273613597302949245318861860917092954200414592975670228326198208729861710872696832110735644581637086141758008227444190375950558465279976291450125559215400887962726010124015350572585247161802438877642814702995795901434206393774676695420538150220564320772660509408867376864555366473569624264078303999636303795515965260006731232052224408804336666858770669669099365654721404500660277400476429139310347399786249266168187922606048982206759947820225472410540302027564146575669293812898765659871664553587960007216001017906660655097810483219957575773223471457229797595383681794335635669174470442560473612175483188382559243656412888635534283232438014607673184498875376799319285258383160616022462149718976319924585137219188551271274972728765597291249127180470231211466281088736981553571730698662261026510122366102980235399662871797801286806701425252125967839914059638904494631561749988125743565546944778341130619125368625372476491928463146465418224649156318257802474799377937995853865526471516719651478250210618646736910884802224736249548878172642163037601861454440066250506458369155212112965321785440353254146921740807988786318910795072229584640913609352829777712021901389665339414458494642001464892112164043614579072710440292872261773071159472410991758998337636796110254518523477326074142772885596799865371844954276748095222635015937334525695893670409681572774293999631369628620047391593458153556415216750284667503819696259984618272357122021463249643904629884604476915273466243767720787019698566435727923846041483692945067870865876139573550996065925489696818854557738349884574989565238498487870963589375227020096824177558406731053439607974861735518282232669561634650569702738994735704371482638376576052416593522772125029102896815718621477691971799222146823284406939459573747261377731334623154116191891880385141804002714361375875321707135810806043363281806061504031662260324930022217887306826649686063714908494368958069620409924886231856822373350639241240919914599985916183224322464132656239349588621053793759496188716083750911251163942883362941150960137285080361123961476930278576348744686607043429111113383700080431683314096355708784843053381890753863547751583521965130505792757921825872880794053573149849168938555259304490155168059441498952653561789663072924631612520529815968787031212876743516426297185327825552984335362025848390001141150733761654213185656683993439703955024437326968751463756192033740831835856336867194603001765233774820342513775385082453078204917943114085057677773169438964100385639849387410009182245993355752648978310783997562471427878422689248185623701045699796607655963543314607693939625115649445191574435087392720430059039872714407431667208383604810660348203853699368385220350995841982121956271067856552904773848804215738471179483985082114060691248381368908808787028940474460273025406487605055917767749975589519320940573049339790479479829443355705146343920708789438820188489895615895479011979073496631574860824769493913981028914612139489071374800180749233302107954109654710308734926263132290470328901182225647807862089827778557449847042868940780575606241543138828910012877953737320662873929947631194321712579549568531490508784740948738988105209339465109877764981669754450427174890564481044529854047173666291181241667933068555952518091071127735149137473614105687692306079343176610490161045576050329928313898231228608581668165074132752480727803566981502349460676008292272023766608831505000887252457025703530969747251655963864597113115400992992231498743945606935675073754311383230924078968030867863237071945341067487356473661063841397027698842664396867694822093964597610728611658418769413297238703122797311929589063616280529233780328395431001171481092351250914245255613309959868584444680144978993472379984958178182935217695437878789664204275186809993889920867677144591553914607771362806353134716220240643246463921019957398034167244887257776681629368542954840523039879114179503760864204251219971053398117530001150385238363023519504175140344985286034821568561290730118770776648840430434580661976521004933706136709297057960591066443279340396351176654049277106127598722829915752939441868243429232806061985490861655285241238840108889544881907695072244781775533132063394526058839931181107967505431687480122635365067665635151327308822128547111247812732913296593255776262114855650343585332558838689045340010198223263580134737345130495780926311480621012422681610746508266035279862610231732513646136810594536331871539941078389945624073830660740017478511597953814542969096002909595257280948076979726139771893022818428105657294079858731050079641733026740378719206636190263734363900060170485956708982318745258876455540966400105590511587761210480419931481895543332282953406927657422097053015192057044727042420819839353129680298920300784438349177872342250586453176377380572406407524884492927966645937525802961944039258122820053631527358677441214748523122655217656784914177191142507702868319213192899774617577226457472827966280852224566142534383897339489804462872373999487350050000347189866137008168622093819329386223934610381152130559654304215376523285511390720681946984605849702608904137660078582411968121335401850634186232911446172372556278361359037710638929760360676243396555676910338222172894130342159395000235925764226090281947351004681080989094537336729439667509127633951558522715632030635824214283424962233898201954150778864714090757014001494678493630586779754953884217988112174375114537919618768067056745646296638828450076506188516187180190911990191678509285508545033755780070775230947111324196666117428123070191823860993700079966984799798265021355027340329393584519526158615843616402028589964573761042206958349172323105509924946069676618528031964490484756396070561626363684584627859582878305912277018946635428624524695187824339807221909585795994072896665380725948552510204885657556601839437933800198218011079155772056179499811271787090666829354079131108693380897665494933563454962581509559703298424319071761732478399437350554999042836928494734110931778479898928916620166697705355951897988639183509297439124400327237306478070771738499561366628181596709888281950660124298211410965252052457634443721461421222567640384948302607948781513263968899701605564079779499053738756714509862533814409949210060998308974842490459427175195098181812538353210440606862571683733734333883902437971994989872681659824879936510715091208847945850395682881389075746923548962942882030907425870012170267190076490714846622250203347192274261847161797594861025317020054655911574542819589780192963403195557194705765784299147778601117863481940810701093164121456610749883956928772261608561693123008745276557570599850843289145994492196058860002245706173236064293316241404861838449197565171056771860772820129660537688849958494547575824906585227569231512449755848171353849662649101663539607238414589481851693848484829008080698954386350187888373503130410421728710622560446521070469709057336725019150997360895631816410564019915851645252618848164128261268548052829031194478968911906395843862325581563602086762962854591143277820621192630370857465831781365905443494649109380196790085344896958582286123902966632088351253905766043548459120348924267556206421852822568123092022457518502285936490048971808196369953585563442190810734640028319390248633339273718257886431108394047273844079484770910992728735020465376612102430807827572778161188497162362495617844842839552490759081410404017878187696820191918018442721044038817539031375054122248640985780933609785624645052754719293820361328714880832072876327020353862177410066544370744577432101290978347957643473798387225035537202684067328538780198219035687203622553782313802774212944925968929022848455549929024926640008776811515284775123227131765417610372647798826305733299452420443155280543644159413141518713490012401397317853257277408843009616240944409949671811693997578114096217302353320112544460030467937758122765553152948103089954343221083054154358416322487185221514283436297811835905683156481298974500054003072055903031323527420016102475211254137516845507723830739877385816794072599700608114900365037115553547687665235524052230424552810545715310488240773125380671962553410075547922172249902420964996787688861520926577360103650340046802809090992659288524670496369206757651105461001316812880236070904566772186188113746203491603414079443229360945874137481635542575493886781694297543377415536538496081970264020232081172402911199740300774155594187824791418283507221156483947230465452361913031746419308107494752367047912372126994426692080327114676999229965337510512821032651566201027822281546428622334049408507595379792947189115854196129163468516727395292497654483446673575502787197859487151956377130838822586813930824296723038132972448032954167503953304045102613186426997170149008381773581944018592449478194261746357747477963105353832708548548270298918822438439877476403058794386441766875134077452315121229635001141493542796223744247349590725655985485997665874667910940266007397909447935589575771907871695411794097243335382554161020901228287269595898803029095739138877812698666101791187782100007180063183126930347877889543993794274292374787610079302539483912471875343433236503825279874368651150390290482143349726762385714635966570874604713666068635401303151974698896497268281745311392453947546140250568872361177758863600169372279344132616513147087753675414547122697162057746676250062816852055096020609376666162633279548382833596716515524315684912643831316083750872079454914532608414573415172447200034680895957260180445453892894828227232059658453983741864306097917908387178547987995953457604043592465925720000084106414940489800453865446380489456131373652533773097006056656234022501439928951740172176708213584473491975076158625552747044585486928751575518651358284625556671785748158660690828725266716940715453024369809035613543516684732332146014373365970765480683175521651992455955427069318072791150552212504966609774896501723866430679998865626794895739942264621288582174274071283621998541484403712891504695645746348662559676070542909234802302694635416394371955528877082471996186783052572873277465640306618392059935769168902362802594179245192156908028829445437926903098644810570984994700208878714515948898207070719925319387642347451155258442471250454112839285224401779772532241603932591821455697122337259941989322339725015463433912764376542614781662286010609455179077427583548577559023601951419638627582618812758104764089386572435033059310514709341125367413919450241374352008489766571078091262001345391427101565474595972997121395544465932916210296423627116340419047017643753562095435409956760045905342732178034903164203363979190912395794946446353194131191526893683653264345989523352128636151085946250011270036931117358125034938707638481549981802511090067098320693151959739646607552182083792281922681957947550331285174701244552683083218239963095100396906553660742397718926571623310489232011218081314069288265161623316270125704110524033524902813181935525945712596195559945177124406500632973120986712382098064596685453245875644032505245862193462064174875333488163730640709689766209156381010973061884280180617778676988038311804237935009626500952851597386604112044000227380352818878716777054373227777106970434127379628039626829402995781784599818395782274628232628262463144957818210555754604776374773890962958795817302333569248611494273960261566181903179290979930055888519224330406887647363974401341564030096621812960961437808890405804672051811004492515664439914788464442002389552623527778875025892679186167340300915289962512154977273840221744335522180064053528945085588687691698022039622565616645005716491898328913206327256861917434172981188228707467013180867985483973863914776174243348237813450120788279771683219559235743952796082452005675087870136239381903683470784334446143762436066789592808151264984545919523167998478246322243869920771761133816124638519895738386589179944580989724421512171694916534830811171077164702400633955159401032490808585146966039136619858572460407866519211438799546539053051313473816573792662378248893674157272077271314314800562535849752424174081948466810147202632745014640046074355080458878934542062065408214836623883436870177047585291514094845180450326001566903112347295957083901751112508128336850847967527147101616846500588324511289380669577756351603557654343326311367987460159379754176410027005106712010530452672194942207028376664489874813258309995646365231013073354591420860382690399168197470205540028560666217778191088625841888944749912123572142454253743215514881756989750790975413313956198750537901906565835167346032360277029710395382865747588834418071343444702928200826228626575802340679712197779656464170063335756412354971448597564417059510916540846829160071707509528382854499738731400545598114062704991576744382503162010555786748893250273382109539386975147872670867961387278773130985346954331208421355174943432789449949247989143257602397699677296354003494956927241767840592339656052213790887025249402141796663526487882742049744779598099627845240131763300518047368422936503563771335404994008188175066813438816147969946050262956098239910259282663209087619568136627344073567076247422644515016230746942198475259662159027947222780545822545167812831104066420543209842070626453367082179985840739690259191392234893853625681136811395304395419124360193573091191146977750013462727332989040222627733289776543793412101518632873683177840067289169482248917378091721309528927458945107841433791411392070558136100875219345617454270029685084232243663237502352257843763678033540395797767181965190894824211714855377713611944313745174361002055639632543253718076344887078076776918897874463315204702959872537621093219232224677516107631370559735982773523130672252415678170300568801893283543503815401233309079082082701690339137147097635372145070588857989593460909095261451749583400475118332318436017617686051523238227488102662987794985662049899403216659248126376108849133409438806587215853641698433701899735356782862051738387770036802436512073964030990743682880141580294978243804840321619596854714125292541648287404888247734561385019157377152605900385616103667549326581642500785769170643082297424669851019327858735529227226176204966644619635144828738241673231026186276638580394999143909689966991453483671169743993942332729116967844911077644486205393418886542343058474500727109462375936005659913506676272607044189714190799022574383139506075497450351219534040974919161787491858125107529859598832551915326279395000311989508789510216467254415434365448650326742228633451943312319521267402370023265989379852779686259232555521436007458441398718077914050902804333325598813435949665970369146915591755171715543484775270232640418830844418363465882203586769600552172868202043351583874096292868842516066387717995560981105554777312172497434791110235092003498552081844764821257033595779566763206173470502155850235147954419830312995363180764648878090586958035100746548258093499398993947552935602144108539626763581529582995123055954727449814808894312583914360062127664881215152601746006724476926881957804715130611217993842038092713524600923735522147761744587689809022724168731614880273995468371916670275508018507562856580099804612644957787779029158147896891855617885582270505993890848969414924397448889481412120576851651622534890255163058390035825062488214710774857706930783104589405369227431781290556138785994455754901247107658628612607629517091825507981386424950582956822218101094782705247869129440703029217563910388904607392087758188401303027029332988132431545380152529330607875225956287750430678582205554482671978843222467304586576783663074258569926113431927069827139928739275993131233789661440422868932132122610017851186427735684313228927331792624237653228712443977508651793536774729892720493912752210592094716825395969934595509782389636878791425896242904021824508084940924649161888842182518529324441385310360346504276924116654137855121776159127228863023808958422756812158380040094461357709163969411449272375430847470664779910514993326343618553131792142008947175849999957721933684315006085590716742105451494195452999964545740203506166826747736616008962498962664619048096690148399721266277092098192053975026646085939740320569216857837171664127508787629037547875469525220870491436804938212965126503507635880807280368528024183793308070279909539970602593898379741875299827377492474838170920901273017571453971914547142343692521844737395848589521252966662959534658173141723493462962832916463609183713605867218936961677588344881879123853364946661345115124306554948091322254409583176301712237430840919548864231038332140620001557071389195203588545112600616790398162312811975732658669014451079485018145558858795973015562550191754408785227642688104028091926749733292053569713889892432439875542946200653378847620667422263020618446713184231522982649278085745234393127046934487173696609854951852072531343172325227107016525687138329547193675734159322189052403867732051279337340787920605346429778102501220306102690666256705660921805937825704355751437030624660229997905780612712720329751124766160387171623760343893321964796373019382925198764175575847194307669223157497443984352108579519190721533903792554359062448730299288192681378179959511625413717279823486917466084825606524298012193365274452818088547684714509472464845712975547084028709286034287282693582211885884300442225322764603343150235069896066592521384219657389889995081185452991875497621462157850255892769164860736648387096388288050417336391893927143404269781052040695968775339954440017963888439436820158666434432329670298266291051457362522263347206643984356791154491977082766179080268925360063107784136619076975347587443376824156970536282497127497582609031885608168844470728844378587878021632014110031539150675085583396101645898894475021120709844100127169425499093509863288102524414367740313914076581994807501612461738251288499248687627701685916104749285783117234719811141457119760672579022090732015892149538752949160628648426199956162843901884521093630056664099392159203188215798267592350603759658754616627359357080439028839359987462398052256001461586152639663054911790556590861512196088423067645621227033248300016893589523657278689671318585526804031586401960207876466752637465519230769729631648358253648250561325964207406153436997493730352174420486884664162107385275870556680872282382432324505711811069246546134882310639814792637767631626884897236139018973395278739480230455987992486206760042020477554288827540980566760411426263929230567857599773831263356260311313411064213718579465514850458479547283094634022274410523252578530010949406692629332571672980191143319452651101061068329811316628133245096027279154898113834002616110451158018037104356663984143800593198264347653455850890761411677654877712194772308497536944299879893627822616330036701133644033443118096821263230118581739831409619998395616580413121365013927911530274983342332728446389483874202479478481814027169832920604644912372789384276412193460714041975226607914812594941337691705499528320311098878364910012638958321122560086299375324582310615478781099306984654550452125760001711702147514234537402358652671912619037533664692161670351868302418228680287605673374471219262046206073599488668455381098677192842423003794905678498843094600527122460117693256307875442771319283502169950531055295583311838346112384901916636722866225937826777580082899491815541973973107838051014588358610655729065455498319177658056958315931541343385967897679246227269676605859187653254711348909523291945416108026362312032051672814707321931817498891919868461582509854507779622116064254836600108167499539009829450076811212373311204263396768952943634434797594572228617912555543930804908249215017663306008315471333614934287648805797786211759286375907718993193535620454015295342727800824380517168361467859801131925019069358408114558547363874095841056867961798400612278459217211961834204825916549667427523305499953205931926565949752938450985782308610378340197040864640934064242654304431157538946146700185496585443154779983165682299720260446305326112884653932697195606850177750481916027008067265387036760800419383607247057251889808579179810832567824736166744281259348715151236522223665765429661289532730140267532553750247110982190606630895227975925432638587834479559212167494032292642975354890123532649458014155085081985443579440775756917365138493497799626153878448231524501839070888744090542643626875103331326032265049857334730596403665487776588834874254701212380064849980376828991772456248867053162378993704836121136391453730380578322915873167995276309129520195387674569566189001301233307100081781269979158270370273448787725489312732334855103893990907143029620335772675265991465188798732316603036705219842055612154733146245780930845494692250652232497925792725962053663871075766954822410914767245567518132055416870490896487990109260082319687974182878360583447133319100051910855909376338194697802840971547064961179748332901202486597389524188634969229298181369594287516359723599789157997299499047241516525799942207084970028125246941756498120042795137613086163287897016566898049108786016769183155882615688716427218748986698445871993398063453529910412095475604050711521393648364875602236971246858648926316471009597145906836081198470497765494699022415210526083108552410789898300481665095838930047200794041008185551688222884545670163637581948129718651190221087412898969363204961155669513316486296504724386362193615273636011438205838067199052076927082026177785228425337435779109580873264442806123469706480064864006959758457372968168189316603572415291885000939914359257488778814228632153641810418817110469220204375580850906463572992936796782313181205451659242515936882505954540029991614605787675259609755530630373241603688064794059109744127147013410678560621114230031303064174204920940380445673644564860207493550279821768505489023994900510845934037496243163481973126232922864045802750232398334255943126948143785160446654857735734071210077297417073897752268924985827913449751886876541715434943171527135202359750293734181771868480088293348131272051340389110936597901154068363821605794408793742176577661102046830112880009475873166411832585220429437023416746571502022073071032939324863493364191690281066538310300343032327369335439778241273563665636875605045270161849085442987355336469247092714271565746513296704111155898882114292240504797196583909127838439406742474547288536830954368795748777231600566456696094065604995643216480192054009758571941014231153265703765151337053593980793667229319175827539485843492537561845816599504406747400726439825567730267317546368516350609500415292739606002257360270805844971450248558529088285503556503675494882142492020240234716252556852890849941885740412810642833587691849655670372234461911362357324485915529828763560396132612118079725395937267838669368630796203461136636629665608810836818281079760588186120773676955990528177063012532278916265739655568989199434579434884964353443322691200574068580171186180465820657648250939707795245232503075841356243445520954720057056631893554894313337931894865771108297166791166315938891267061731170876014877282464762118127207555713314756906217448965470753551530217740907601468114800636735417345455987247213450023664515137295159683888441377674054440270166038423751389283806231062501981795273927450505446893698342317637237034490073548075537029854990267696021864442856543296218283563808240810977701693510191213982924925776561769728330519646085299767318699627303311019367645693772018453112192608546587260689440382384306365572690344207284045586339373532526280087039114333844370369820867906615028949587043705228404549310069227010103782036323515836080756480718304521556159501632351986335318465954180231130915971102327286607355731217801628703079280101284773323378784310682176960275934967831939298536945158126156731393104148241425755379900274057029896174689554668881473526802909991336986671001320446492048272664210605743921270341386211962126481442106820282478811518084553747756371484982567991426937069820887431298362286993411873010408288979852199058128045376922350934897852509260462778388578854339031029638023478531077109978245933509956798445442429610609576661860152021069662407418344046438134856986413688116340123534008370296536571349912272281766644769507745871015785486837729320194461018615762743600546821975566619924470279020981526754702857878395271253663425729926251962534289176406857262185446589549690740244083181589994997234135493104231871428102710024154318908317279356683224100107891477561941418997435948332908808881728970257612917460949720895156472333094343336606993476860934560395650435492625217734073438679688908644984262900508892251240597817223946318700723587810040783874930867066562303432296814481648302110477847713046962420557765592237278126077055242912423511970400438669768031522982622504673946007362049010672328305910283211962773404653429460595875903369101809256584668676293981524269894138695017690386457236561190405850606065451795486485435022791037446083604786772398968592660757352435012336708364186768177589213933808958089619073772253678437602629438428158009067629199413016978558687053406183397514577425519668426689078381474775668578116213765046133983954535002994826742707745487617744936342302541577213394519748501675885196271524143768852382888252155425202543226941549928216285945242799814505503222326359978344225816819492138427221664219526544338337954899546135341499468837411060158520919264467789716231216105282964540216082497060049687774091101777576124278673887671994411276535537413759251146748591545604569203296945410639558285148439602020279009214698484549358775367556809043591965858483719008142925068510088761935154765480814724661155680553101529941470448220448313211512403949267388971746773414398191678211467698169270755774733884244911665979552184275127952229267278819247000972386808462630613641385622042659021198917372540367644681494296661589893182601544704251371330055238625860484456798346233866584741572020474203904926143673891917002211443550112133668212778266175353051203716796133214143827425971955993639884764833067436773903474228721514527693599287781037089050970839999032235297511524896566246662381329631358558479504044657069382286331771844606012441484094706099780203671638650043620204227068029650683135632280556695068531109522434736732194149902870562924735722797964602952418833551104728502413971420503819067079746111649988670121212736325966775617642348773045481486807282291519245848288618340351250465407324327357663829243116559962159519325872313255274224286514112804104233968999074031046159220128845564310662878310088481290890975281855278409493390842921275287567001848774410739663382490242174434087576749558056898391504315779024949436547151829335169397825365397814434255136293912863240937356419055962287214294942828591505631620074419761812601984561574026885538011195712503544518535012422478246230257750096144786480212763716264691553891615816382790803046319423900391846647846544474552328043053006852077742355422895373764402857349298844484940020945375296542894099539216369686477644032825431638876428933150234121066439485223474449476226596116108925841776221698571922605485646439788492838923258008107411938472430340139990687552851478422158510662684088830922105049641440534507972587895862960600722715075200932035468456419078612186847620464971369666969909677337856254746063865205316643586874871704661963835562838250225085654079236457627716392448293235888103598535479447424612445924528814231489753376021131092809174278634470461086087180520976176832512361384703171743795331291277904703004730722734155190573404008732528923531720317551969025105677298045669447868430900998489541343215287288646928591883073948690729123624092516624367309775801852737695209546415400066233070411065409944133655958834981879824158489841361175246107175286683941347914817982628877109607708107298228198458901587325363400024230465341158487464168578477734915029855141348919085551461894432045542780900409459059370373837355520876330060317635954748901808375307788003830275803928405183080074707723317973455838897873454526907778261365615974321965774797482940645058978096714306855279778234235138769710752920335017086161935220766303376587011015066797195996307701573767884207330792167264647333014241394654539288300697638928687839265776343484070027427990473382114897372139913249631389903481141060535004410755655992162370262174635769634361759771975133556165890093034302370063128901816049579960045030431443507086924657860477693585206598806535783110539490503032321581284483487454348428292994603448361160416621543315219856595811326786854632512564449994136461667217234960882940352027820592780146655443866046684836162018047510252527498818156297566353918939274203552194516493742917766989140687715404507426163738629082033007217653485011661197825307373074385292972511674991976577810772434364487377494935018888566221022126675829276166075769020408272911683606139841553160198085221126921496581947068699982467118917157744971832846261415531431847162466594318279867472068414521672992762263314985802050789135497082886466353454810274997283208093036046943819488734596269588062112667993377821272755491307797101055817150910065853052564887931042032054180893356688974182651682641820648897975397289636763317336865741502094284261306230459486568971030048270916584021923553513372824201793130893912942959448155418971896022023838196636831476745408728690588583488925121281541261708425420693651350127005309035588578193230184662954975478133332844997378216990870762625950126247925648764239626611262668700138715893280005761742333806261306845477834735658082674871526648515224444140271885048461653882419940899156878447883095333996599358884446564914898720593981228536985024825118888131973025724729573045320012188164801203311285438502295612050195799808767221275137959173158462492285219941279941537845489595765195530461917386495504167478221989418241117641109933869846546327928456655675691252309757590380700797549121917153210649369088390325746084464116115836335848415135306943724785110715680407162979488216740780929969114039023049616015992337667028886390838611531891899199155340529294816198903133566822069180153460414920468879002925056724073842081281622833972029523193651077890614910208211762884674302632603799347052480228874482754463879269605444420872261803828261577586365564093478274870793186602578252360634627909807273238256208233195584047021753673042124086354539246687246137231984628656291920494150162980253654164331962884981101459226331928269190086308331241229251872057057163785116625144184969683563140290353872064421313683384575449401765282689396738943269156099351003519076452001268082195378103827796699429951708129404086840126682028499762303153603534441923534409558152112431243315748902312327309761049775261942342770539668629257056974218285962057889677531696613240037489467640934450493765062436212584184578248648993870861606111601938941654614210549944891517412492880416090368977258606408753945404858259259004133263729456820295782238752249323840601100497627783932251111986603112878536682310586149891500903444132672997007675726322896792848167206004815667998101046764387154571861659508197481966675399837682208630074733004022818074854918897074985648484814382775944575816553342533646850306530905306333573048045542621046121496429499407828681916374590644488039343949817701525783982126421023369679678671012930118394715236402034867263945318851551099440872193716335967005590206243659728089046750240253248300093371521486921790592035089660252075785807429011785654780302986884852211653535459630729930316045457721903737394053378452963642484179992182120927362983228844373802403846426754505221078419586328614161055473144973256061165154783299120990947675252886493407554984901494315818477203879009274356413856427238678140088793746045262370254331549534968126258031506320273950247756277860022223456293915703903208854754964362819405165938204699708240274601334060410784780827392684585336621901518697275982990119350942512654379912465895295507657990243733035514510474492113121289102583401885509145371992241871417520798087433220299633777525848380097967241260740492488395265628753081174053372097066477270073346827925292886618372069587879049613687426154191754732736270038516363434822095561451116571540868185467534097419164336298202264481233199695106488025981738066063420505683555654938936802380677466060285305266062222774114011602601036412873068992514415645929696365924059842483181705722697021585974857767721394948858366660677804263593188012344564284516624446442335883546426298715449567975033705821617835246903597962370745232307152819696650667967374974139704249829475502476155427409633898004967324539307045063690730742951822779718912116200880797493408348969598843248172483663992534918900735259675521633803238914925439996815934090679418484746822568321064261182512178700719261143204535023666591138570609690347603537333460595679609673100071271445578266914952908346734526988819308763743203910455540237167056611477072818525523472841326942214171919051298818653078397329940447029449291435755467702446968010171455664959293100949463203981268557304522411849726467970449266232040213588180824602029697230903397630138278488926401565175123807937135094110649437956923112316904801686872131152590958179033835243383518474557900702635980276268316558488639632273042126522070484253782660720001537757821154108134372886318695099214401384138027351807330166168777532193309125210965930642358286633336130988666641526435507244171707944384394351282145394915311958476660281812021118570671359860904688949251923393325167035817605416085587270434502380172358478199323786178739335437747484983361896421508173551792691355259496182022855490170060408615482799549148434338682601881384701851524721394018250194299250055982655785341037782806071329150772930496249099072701470741615738189737805291901786839902521381219789283904758261840329615664432520064297730783239913260196356048699611308093250408007865627793335460627520327687419243850150058987592242540743768545433653486246313389537929958763212379744499486050494506109242085563548784513035327975612456792631815862709240021508924833990370540388631611600436774203779162835114342423391234041286101005853094886382524398345800873863086687634380805831789171107490018337017919017461658015247147892660666773996036376424588886983896654782292127873512564548693243684883159607174736982435883365757334271981832990916672196009856106668461565900034951233305066072113631792092304211268739111867280882087330912592303797981123433226457284788721627776968811925834327350078142170591935315028635029456835949016659821220016113403548047166292887685222554536854451591395117019234979688690789754297030165380398287773957569547127697003208251075877939853120756442548611415508865950055495298730212993903989187922104983445561734798942733571565772452862347024467532076191647681847845481800588169132254045961086348231824779463346139039315765938860665693097697270804601292536143085815381019648135012919900612755661153415005581618028881156132519007852120222875041020636894498854327457917669363399418143264755824356102794930473676548243193838902870632376461702549898509516655489381939851531869611499404888222402405686859722832148304313253933989987204152636874940706320548212407643063020237040027778414606554879717756952407406753543179602894222593501153812135010445981266472558696753535278254776914261922161297112087371863199791139918101890733990317021548013769145503770939931964570827693297376675095853210250141223360241712507446823376238920373416983718248980670364041498835339115296219002263584468966989487374279687058069247318348686781824547730271354132867831600802690572259978795797856639733166127502243212493298623157687937627120937022718374468391503837963099666554348338955795781121877301439331072783745548798309772833954936895848891491071534608917295556541475653687118521165314056043941511822575884707973215728853743622354107106090396747808931408033650826426274922972629727922349031682086350668268794467877060661035459732379267003627887934852349608571314808760936960685569235644333997260768498016797636838278295470494125051299734299703191072528351056567012995056448365191576665957065043447108255859141378236081638441797973147296182428915630403006217038406422213237457075719614407706237053574454121941940039638967438886281972348075828339802597478876532686030021998527301369105024533968510914096924267405602954871547110573107395300399494233519738022089241880969332323186559536718614034915834724115770549848711877450308244881720215428240213618829364890549910748857840357695239734910458793653215391584988074734232633193077389730311081712621036189700987215141903171518474692176061624561653196387814779476755248216021613469989316891329262249718127356122888489070081134761155424278118689541000406032403049703773660846990308470305865424477750109545520206691740056747240201372368273854317009623780144289817411911140917501756195594126418160073912980009490089870411388894350357535638323588535119795177142245345956955166734076202441327348768847490672680608963336142670437418693990867689325520104762905732700768381189788900419886232590637937545664074457041024137246219145847812028838507159366940107737717515558541863120160903027356703094960740245454519146516985319470114608793298007286783616092139085659584936002673320887383121068859135999107672491034099606125614060535143476297274853559817777779312173978135981314589011737588351296453587172136267986094227370049640288217778469825553229839681371337633985811467170232202577392535934105311900465347611642549901132245629711732407930455896713211804708352466896036779194521991946995406289369239391761638331460451604679541445617038327181577463644418560035035334462836122395364781462230149613984120873696386099841559725751173822255245839251257117393443708236329015483943875488730474911455356374095606935233048811188959287683533295235517256990519557307120682566256341689833881011778177677216323050833664198290151424185424378568989387446657952277858257385461486936671066789662984700210348405961250475356437031304084707238672345270379999711086197022763305896697791285501466625821757696209157644532762738356488767400274879017974172495101724278382055919251179493819921771312922159283076331370041560652422967297087469480779991208135774022559648920471590916440790647238594205170288015000219836906521609839639064628226126010760005495851751039095167730163820959600145505996070724237666248325622222986672430012653662261485707669841681806458403756309371187714681814922535422451430384601869590278851912910028557788378022347702529575954912532306644757340278953001882937752780857501225772366531282708671930418607902286695300312625186237656663155245072332186715408914796388123470681451879364979048999066717123573060097516728668329346515086861915147020214682170356464137207860079595917178578485358918027138861302018710854721236190311289820837587390464166415066411956121509432106768131864752017758200439944337196001341355998404187495872876149851488688564294589991564434801331950087998555004986564704961584398328717321475680614928200780085103865351897604297467242720020575525421184394443787456270306188208782397627667008619698824635366143469610234156166856713846723961898161981646201899772265440003616295488515275004150260112014611456124792508834725174790178380698650334048616721875994820549246124028873031032089667054146030970183816010086577657547348169012899281684585493205175178047394899848746913936139917251953616938598187749456745312957510281298123281854337760622591282147302051532543355352579911288369446028873250484598201145696092114275868793854637149139366046029419953277642940516044560667369102711712766279424208885084925186689640707589345801340132842689961172022416120500383019396890235807975284027277694356739935403720442044750135694361053466006252512126173308816219464628007649587620738247098405644753444745392551798192718565380720023679459712627382082536215483342947777713415115770980492150498782587426495099288493239296667336400590790578347781024976185998733954806850235622729684816655633462212915039216164365336666986549604133023608639745404978281526174476840812397518401873839676831176850284240312524130715036394571995522072508341826207901755040533139128406909763668867353496985583100097806955963170196581506856369868954521124667211360900769360371331607296078103633250745734011033476695773719934150899347199707778892016472657196543649090881685882208513295392041871454237302491904293359091274105855683334933906716707559870985647928372194009941434499214565080026757066756578553794936887802714863965334719694185138665864494214424603702606039086542758952108272557427995042912194899317026660789835069143048514066906166718435148736828157853567936431358632267846389274236931024357161680113118903436962928059492091846169788548883690561578145361397426415823668734058701684424738468800758128526998480205871795728289576973441967715462484448574694815271112807211906163843557389651985283200716237540207741472616933454959013338235898535902373567284653004736632835670384115088007464802317058129139292144720743346260202034510774342629133836400570443208891343610266036699650557008012125129628299343970735289244907438508936158541857137782472436527203113330488584630714306525088719873295414948249734006074873372694615232409108676348038097913097894897918070124983779033872993011715164555505726126111872304093721653697228115515686475704742351027412911857068182144431826462660620247245787960491223867435828804788114744235141371600346229710133615563472243935470856786613648688643609963459595517556349696081968553921319795763696209426378650320374927668068469954714541275942398741863074123395600959818505085628943320696079126332317913617720609000311372718715187645336180606215426587101284116312489405816789163361841246092792899144107466207922253304019865711189804948331494156066653090432101185165339348554797124865206722723254037056529268372843858542624785553666105754552875156143153643634804577749731587671589340961120240862673109569905094418089757505944713584805708367491137276620934058807900366692903863984724992601037669975782505946342809473625190156147551118256830412286369177593288516213617847074951904633742669278460244041017526708787547637584225212883983425377819965906215983844924594067697842741940406775037063974380008114419109689092625820663643779857777944641779232750958620318107026026857233864433453495845909511851873214223425759901662015758697271448128031392047377948676286273821633594979229672454755087306657960454526727400199686582213350175137261026403751074325311942000266163553493815006069113111419740315520682055209921255275778982440723517248871406871682114150908919962453614131501591367668250568833308772779624365128938597519600024528793613692052680532468801720420277974489444523810386126290108818644004723089966940462728635519868106351561979956825595077155310055169536300510589866164815044399119531198021618773334306292717730660835706200190941799460222047279600845304124553613963816368462718205975712422096311696947353456778168161599421587846525775502081696730387220870771961326496315484473712379698698205245797888529783596963922587491034424703406923911953078030873092229067433466244219854972936665629544119180921320100237972497566755760122314072929188616660146827816210064499593397673559940256521248853304612620200543044757214654091217979354831395506438581343520494015229201074171911661710965642726779306872121878412421598110911618263940632166263012409782286215845712251275595845837704770143926109848626429208914327829635234335855149167840639249697696432439347197671382134178528460669402937312509326659194451815339084390918673496229797048415203144454138257769253582234239481321724630771331940249457257437440285896082166378239386152048060676693770467499372349814231472728765048754090262458168484214331358718756549666728000457436908931520388411327795017860604071425108679755137037988541616575012694862737278311197126953303772961010351388424920201442376062375262833220086397795755680415984233467487977384967233732234598897835823808211287500831987384210018806161647094393813740501061119245085313374406450227177137730118025445297369904605238582055572963322249663028238189907764636012826231611780539528602672161404125746866844652014902310839892834132907563487741120693705541968494781904726813219702110551351365684225578689795292185325334563438539184876366535854763387552486691283459294926135955389622270368339660234812950018764335078034558699121403177583599065803874404974682569601765993661328568024063624512629741950278202892979984751531017774558668190669906808725621388232135984323372956259381147006283251051659207751184263109968565008544321022567712632162036823384626236878465438579590710598287790432499594198711064518561912550652140771621557811049591447864793409138124450476843077902239127931155491987758755148292641092198347854032455999469709233535749603021330268556536095413212386312776070391596684225946891227635115781563901125296723668727863421426618468907207231939889110142168558544386523356119557576188133308931255800354961195906128926969231443122641408463912160475523489687063701846622617220087047424927888061897751249529954263574929550088530920470981733006781357071464952331926105458406150799841808355886931158970131576956041568856682062492698677848684719108160068501426953334049727825022807783385291573501580638776731329982514160605590065984563744755248120755463800736807741432812727556123198649800738317737435627537714933185707061633058995112425338515933469938424107204907424282448577251085095552056970509771860565444510147207142959594652994067131027124514224089876588800918872325211009685083630807162522623236070611532143686158844103436108631703041487349182964196942297931084910388912048667236598523872529171703583458938482564337439934953585918207993314178714814790966608560581053087725818916769410619178450390980566901406013264204797689065155462522759840563660726327078787127111711382414933577336140370200256852595287041871258496612105142674170443810631105408248154172283347091320462958839275714762750763531573526385790139782907885183677356612444509994825737659747748235811926192749999910308091605738958886409296826450593394645249395801468904062672560224092335842629215954289282376526922704296983189090335655281185636613232220156615964893965264569837014187801358470943220921287951824258146673596627370816644588879132437568595918012030320963631205002558739478602800100641794933496277989702790314482523664106386663228196320544365725627650148342396454233397997899113127028094704342074681353860584551254750924183559103437674324267062397600893343678945190233987627976381540413798133839430768742997977784997897285379253017283762600824771200640136323116509179836424140842237312119712386881903184607754411632941096122852062100268321190577967083054344386004640069848281565512494726732226324797999355102441908745023462055431959987046518374492039553794076432011558651838950907064583908012086426741833126995256924024766641575979027423657550949563414608215769343998089931766214000120530615877966268807259545715292312401555155817719130337146049406689843329614906471195916372854820947854532926776930874048110775714077515427580728825302751332428225284642961171577026280818956697147049276459245822355404613754896143699108574650661965381200166545663032392736002470238653664716064553706527060125900126977119874279388949530945067373530183580381241699774319661500093961626973714186244794891942261406809964209075913931294094994863878592698397838194760636195419515800694280676532598547270335759493028922149130302346510905131112243178145040518848217807813909077335014853705855652681425477450901747289743492340719307885875646059309733029146724620148733629319223392657433125652427142499675731966193102047912973668735218220318864899984720114778013107743925273616574589771273660162135074090707345242381874535333523908760324133173233683770779468216940173333064974769811821025414893601816679514594513668997733370627021244147700454554249268612570282059131374872271193415136648621860617639610810487251539486904641281988628060251400167590561078893226671631594427836459202689179081343861329671223134998477372735791795334406363115870045186202387614355936188783268148613954939280624086959347022769916158571562077941434874820361349531655092355113573917960302307931035330948618383584034147143192631231132962157940785010083904364035439029651030032825222244955241758014821145489680259755299683060098317527983757247272407836241142158577374493746343040844428648761642048915342602830237784446226278116712258043262725632298850586337781818826212179641325763146571340900794215473180096650745619893384552101416691815749934735190581965870330773857607142694955713310931938258221899553465465157485479246216027922675967473562006040905119805208140448749221648764797835059830949713421129705711009435537680129969746594140417311538500538307899056466148123918581329350807423732994478926957337896637287253777423081323053989625163035450797139661926657269351929680625387869816840058274316141183257767905244396787643425571721909675845977007871242082693435174154461748865902676428062997728848924658888037386216566741650598150185125618025528374543834845608539851433663766325330268745727289599342017340272789949333418885141642729121027691999408627159226945113498401934477318948984078805050900522847135043826795008773303694372073582320204426721634270245143116629634983657872946049155811268072112794194632854632204510421004574605953546543348477144422668021462743510834619204824204802741645814343844922023931351518493663506048987862327101127108817513879153594793524727003269955191984596705985238628343034462679520165186866166194937822110132886454310786034076423246274992453621336662994565526908977307265828033699404340184505219817427449057964241754143090787298033420966192024675096617181453902717109962314785354887566134278608994628940328685305501320226596420947081151092205656114375635556601667371607124799316521737893736514892046629337781624483241639816296385952706949965890933051193823010152572043548663751281519667152261629265477867288160106448292267368436849692898458109890090502402614089716679840360658246421512058877444485316192206667224671798524690076134853697206609015531824251812820392590980439413744892362307241897269128549940700645073989987479644984040322887923278899051332877565559845290237572741158339991307906973636446369557635302807827039964791206113616889342338857609361432556360900903309096943728345864152362490734244165421749832735365546358415729869211618681220141322917637404140079905474912254173734376530388282104425204465405758195760098994876684315473354462782424678064064978644137563712915001170000670401519672325668426599787298647395491080729488513419018798200080532345335374980236638689037075071421963838428129057753144067671658858597106380337379048479662050211566064389729029917960303033172143237759016750286358480565152622790900330285500617387690124711861245363978032223793003648420267219676635988115932006929139064411853220657066713917189739794647517047752506803302720152526629511668305778967492412641318738023434759789050232016447738262423342300714404914323198343557878345971656018622053932290744274477229714304489771906563642624476441582850791909405646476790198564794576409372697162146279300313900430659922353603991556789088288510564010253329994614701506700208945702303122524463645814129582944634222292553510329147812572408641929597533457943081073226514074009986510590706332316185574191744136666655060131085434842660010931441584062631596163282219929639871690241706299008528515601729579682221388015322999209459800550810022800202805775104261785143161721103313126257922596797104410617861882699203287744344800971571325589286595437624225642302560706725166131884436834786039495484311076196430542805432987425881015923892136244230642817079744686908878897705265731705540311826248682446354273913521721045371697909612183354828133285698031547831234330755103575583052910838590547461644115620463521262783400460128726416509150373994324122627623376842371768739874141350471688556819851892716315575649684744907275409388868144386126250123976710256470988461177901839112489737915841579906690856175906049569886863594169320137877559762883168927947103680421808277700746473602959501299632022122396167412619753674728714269578509247268811384988633324429844977011093405807132968516830361407935484314258749838543545136255892535397421451973690920623663255794874520188034456973578348800011087960095198801489510961193929734837004526175141520001209550224165929286567581078858064067732273521773303467188868201831536183985097778554676077202783589075778106875320035647479508315444753609856542355620687657200041903439371654634385958333039647603330494382321705995870437676331899387041692789974927526744358277444268953270766540547073275290569210102159646564378745393589351254362250535615896728814454836964540400004134500792539955996597736932178299163585959130334883858307533246831705588907760371867091690445111758155232575539398687060284454977414918590829970564703583795863691191862286679186929373624678258287213367786837067917173438522288717136462704503339443350473472723511808269872273697985077591719732999448260267872246883333035394639636166053766426457473990661603985848592368022533121469436870316364526334317021082251728717601122721081602994238196142989722187785823005452952297338463187654541662668948487032629541593526047200485951633649163993268500611343709057444383284180603712395808185711880482120491333757793495135368752319632558308319743575119718898160969568012353524083844658683784073138829038648313492308278566292952965816929061912507972110034482158322804344099973324586411032795542484553973485820885825247010746557040928309255238165503147813786922277463946605358510798504538866972638631687840213445372344004396986372322828219383436935333282424931119433355898323948656942909486295805095518702738766056737358733546199022521817522574545993545752756883283722116054426629143406313516627949129601540357695070137936265331340215932890149505365807456277003112161913983958679381012684540124281709346373927285826696902653849956090129266476922283893030999616368526572444343366458997448838900994941247626801139458549518633684470432095408609726263648374434484723426408351333462491302333272244227154574971266086925308564600017947387201206516171035052768836438094372290806007936077416047648608298251500704210071048147798826838203437460283115440718965560404833265270985678868166273933279110980654903375736514429507648381692208690620897423693494290553711014240260125514504815204614192811142691441370962399426760634919276388821649342808673117871757658094592900451064289108966372901678979183852187906407438975927942148337549809779261872427990369387818353412685866868858260299331010442278569122624997088718948688226105410218881774320948052503645495404545788773125314513620313788866061336975561236885302057797445921873108940614399809336697049114994983792291225953465939740378420603375159824270740215580065561972890483210583146102732330593552509311193146089532720795902575033050667960342713576392983448025112670096565270156904812671119879712137376403669001162106128936698255785229451745357686048273252481987345046674344368310452597458813085943636314763377292825228576256756758712841209570500798412629741610705632419535110684614066211136655355259839398269357657277457951330381883003257647199952828192236334703430680359461065710716271782147213603619247147403347112620175215391446624926504865027006447219403567882923042555211469470551433186168236978568920456398925622376310122868745122828513636475735852778503974502054751705163916691941483574199618900428928345795374157944124869851724856154802286402085023616531099380848538653559325340091840429644289819679389862139670399314609537577817112915311285082480229652221630359051026024195888192075733535607718813651713661197793785327210795012926276870296040471980590717615739479504771877575368706688164454101605182173000908663672801406447702923906683549288193361813856116057775788682242738724239745740150838282813152398073735409052614682697841452998871449002449124620206033801814856866318529912127079823657085100291028216869535913735672045031911579178807229382416971173845224013943096182057440428719079299804331838733435169101884322579024782933624887047674668610999051073974169236470867199991126666566154357442700037846046384893053243165063163396801914542270380750751768732641402395075155004425122313665542487772011183106885480061167994076265159594801424343955922968965104741502189985723337071278772172832222547515714405174960880009550063911588377659327269197580843205027137256970790041626972563567788895620067259895353344937870091925334763645683148633715393219694565860818465851126594592828555391046567070197194744418061376196410179528535831295207131873363801743716877328236577852369985918904198354582282296228994740588466655321513024799959421116941233464871998767625606600732939218644449677902530207516429606267603201899247369503282846743353338213318317374176310279892979288028373884339936658823839673449404016523586085993266535811000129994197501870297007214533318952578699290411430481935636659032634239488078465228444393625968921322110126447760018010866281803014832374657101095087714009896579889467887295637852158983676089751213896338690021571602171837433576834265120955697217843046600031874063467955164129349271499628956734238922255680811833748046291249181556129009034288867627908718761271633581843021143957071939078106060394847517581814127399296511743165721234435846135337343733982798587414119248178357323770083710541538841358915976688399667524891118764896092707880203633194114185430698318187097473923668529811082664418917146156059470407322924836462424687736776285908173230104129575918919892722403251911885738029659036651971989174818956453568445312681334367046035568454223715536699622761750955522776233226903158394588133931781863301527347448317274572217830716508416681828294085155170994962385778125025438095625918157916090979778452274172461779638589845951390976776836133867613524331093814104261441816792150657932407770498155299357086901021204428749333354171593147822218932181247556439934553271056467681949936866146388974970825408339083521983549652624280895275898100794707512652739027098174769509393841185626686570230863220335777188691395904530734697419121967050792575697423492416444678555195107258233100695999789720526342014964190883061273633612820314855659889535034800252842572096065333004737106232687534618806963382913371186728003471873979351979895593597132301105756109849582365886214768234182034613046599452643464487823141148121093649283086224058310155302932157520433645339884601801375969256115441534968667286071340399702582216289588313244524392285252149341322603745197157737913507986555450070901914119908312267880152714575585517722766702673788225119423200424861914472082812321927228007583562147075846000647040969314591981337280728019974468766235115819375301088961501538101624754049979381553202271226066046428106890772159149895172799774178777246538754596061587117115171335508349679064162178374190694867236798235611909128112720646189705282350862448885998331441506993575842933193467371764362745182843869111834010560734524207002694176723882340067103409995984097800707053862588387505056761498952697526303507643130277675430729714173974109208006782804193876664247361841824595114469838140550367119680779724773384329155255956724915904727449482285326216301504862442810694784352466338437170380503853496006011081971433782130884416191039654253409775894835158350072739270242453747959683920350034179140307291432486960509273269262691821538889524729098477464155928206456557318709489972427909929906887261480773485945997020279333909759401753768523676072889827625193436508492553841168993906134226341784944713232173433478882623356566450366007977064954685598758074769908413449617933167127132144761038107371198610190238368035761811346513312132946077417393597345329366713649819142971733313605500903294768651138331324987921537070079394439485730268848105054949491938716288592468699444566653093756591345203257411534744002474387700293187397467602074862858281795774411118442953798530716146911148807024895905366451643859591380845035801392446116016212742624934774003528355679388832849065894003448791686507064096760631378311161545112772279377714360662780069265510942926566527414428372322256612675264092651254867921603398727072285215262700611390653694956974368089515784214241906828452045286759436109192329999226299104515263790315044178841517816843628912226818388500801677361504012950196957000995702633717024732410384630899205800679668094200657184259197543972035734464972153258523289374211218591208616131428329023930290471011705522029657861827102469273779329734830162754659234004192745379210183003634129666954242613029372863973486277908813252695443772914650554928759273382608397681444166645340370826600544965964877012203597533887746547020802015407867879112640442656128499399049465690658260485526550378349537791629916949875148609147778273167371868785575759863440861387718343640635526800495161908407264268099217195311822564781414932128001525787193914065586433936785725273720276254236450480092471577210330407495979267333274275595112152560515261254490123056292829559072108297653282051019371720370173739644108741590373683998265482078187548605813203284020324488329727847567259985003114035586320010774161620307164349763130443967871165604403563367353612707263733928644454907787476887500330821580675231945743354744447783548559245188448901239038396348103488181068733980244682157317280506892694876836499526119969493828938582331094616832784703253146213394502519080893602662132981989576615268939672560589343888472880069417318618934762905882020026034342424845053780927627465882501485388785860208339253265862385683108494903513539250216293759614615451778243355893302354161512211408317343857184826966417383125127222762599699403187127616479429041417558924834661376659125210463661399292792359703968741308262831222917318393059498313810070310018978335223530481660324572417152485291308292092883450746232721295876932273269831677096553780280043577828203160094395428032346674090117251889791946708252768717949235200672958132918914827409430134768034362475765562279951755543014167710179816788431338170959691505635921918819347923262916634272996062223538264697374697415109570999491874563179962552352517320652001194262127677619403378112703670052170063789098702990537083785291576058037066367735609955102856152974588223677531351262014917891495645582565168161736498649002181398737418405424476747061439781448511885818847251726476802492990678662899724534993123772818563659384187968485937412554329004091646124388608113518739273027558423873179718746978612277317132423037705385278594793081415531059536841273547373778684036496876600260023135462448814465478843192456990712815676991114194671139580729839210924642051283843606154311667548257446234060209122805846899503839129125854693734547859046513883990446631790271422308152701211236509781231383881185036220182657988856408242191483712665790816460807253208709782866509432614124530467087347955115822445201808539755205069474224467940883763567406253976591459620669974205716694986041452496376556707710549843283742901527856995118485311986731492003389702141792480094986083107977054355433169482882452236172447509272463935137589095133709891143547792216022281738524069020095694892231580714735751008998063249027077278384423517204598508936980391015267364798506005052050741210697130117033083804278820623291167160581275290489749210509899301440698972992333087107990445717699502611396400859175260294586396856590632197855953359211626164514328889465486731561475265339509371298909881005378776900191372340572130575665467577204626113141797707457639845536485565916743085921673400549747903130449836100375716922247593250917614362451362889931994961488350281745741631953971449535325232401408550166077881447080784828649046035177080681936747536867046527235766098720267399035745133174711814677285442700024780453121265341252779488833657079993050475917088700887222919825078520810837211332108608673337767394659758592622799795531380949256114881720676166668680435478212980173214320344913493866830885932523865427668914926940072377055935662043004320611582753925728633376465915276124453625818549432297139591334694810781122286186003215976356382626191170828014582495795779746351298966845466633017921715885824449888748243805410091738884626923427458724578686267440976244546360431261680080364207833220902867441543391306537542397041321470466834712686121250771492988635472036082609486499015416563935612847285838266739063344404692569026373331708421598261954144854630449474311884041953409247634355501425633506071927845569431069983403008530953383716497200207899930585421937661102744136154898917612423201805067772780346243379675184511164993823525314623266224287759446555371441612684538455434617643167282856634311324634386221159229062043471286996057414845918307224606106759727460195614331408748656550125245577307376061985050529871790383007788191194427425572596860893930941151185880485503570217885225351202926004354496432120238704884465533268709106829847479496772712605815544837539396784020335625097123145795949828413317038717742655307931978999814614227545597244610452632324645091554481183966839935409227344612332316891842720690112658968734863405632761428777129982198294720407302048428462337696308911509174972455517687332784183249485614770117432912224183993425200316473189286194279698020575976839957711045258331688261305571313546473682652971846597098708142943625971580255097183234885872269675453965655591279402354542480307445090649236256210975495385938185013769683071794276825533270774095525888001031629978531339042033818355556163864144732597392945969809868049820938873193728862116128321535543830398863827122610658655466240144165187476028276881622713485119859978163567106038838704049291019745604273738717168055295602611798800238674039398366794210284937736489058334476170581546266997528629066024194864076950271050307524772014844860737493974820444303035914779137295034419068124879883603236789099270971040894601168437168691065421806853282077610778879348245614230285884234390348920425536019741450669282641815933159713065046122568723883002355066731849732321499406103091192628358518431153166498699728259352170731815564624332089122153341802793740649531594040051905735335263434012436248523172212893661523603654304507173922383620778714870237956632786858570212483323709403433037123644741033723291764726135993700991108087995838427056768111480023133898865407931523940022981332756922215538952484475668796954774242547551012419156853315451614325673272549997631264356915623363594977151714203056822080673993843144109946892055228482895463078547354472702649609602818377571888569707702978815144782934201816794408747351464794906797781832626372207953622601911583918126887222572475843468403599867442495539498999986633211602339884240902054013613492140366538201263129974782599797145002062509628067412238310365871464718884551098709921119675304724787930619099713354815970424255320467501839742007406087113537541235547603421872000848108787825517241316496895400726771798683666785435528318114372741224266125494783389069401797551178594857752793903482013554578656640351141027132204892755600469899795741629687902404957132680169069303989289533494678627968531342768450387668483268102868023951118883360383349606952504590007329324340752765291016646537562984446950395607903521555535958451942222651572868895065011202923535982090401994931431963926567271645122338927202273599996512557012943891033244130998500973495581500732263544732549031490896529546717502554684234564872592124209034202135923521511567785826534201045730491958817178811424838048101060267921071647705927906574313567857261341779220853061517373796810543301139788785474818920272022406872891336537423484755625496583394306618020380731661308283760011701124750691374625493996185135599015660841563875748511242413858890162647641487440997059883928738674985907999815482846071455220542030237122380044221421365524391420479454227212086533436894620172113616098024421271309647949042247411661156816729549950982177292873178361585601066542239667131669705248569732787818911081776342731122895352454978893824993025938341718856427146635546775341774935348100719689691388836588349026043238505613539823681582312886902220246312323081111490069698119804817502547809563225638959955866767544166861197020762205347328797470247120015319873041064038747384903024009581033263454981488129688017868804778595520984314647427828156621920974155368709025717902415947345206996572693280309127243351728417294693920099790590326965582856976250215738226874590010864379140768331971017495062302283481336798710609125862953568576370260626268393664835304401692155588585116517407131847925579513597584181481954154336435395764742031967322867939256556187894326330491824117957809391008397267027462729879027164489292269381238610286871699878613523418534674853325066820780084704903815137440734599662956655054648398695601724397723983116534453783407789835040892950812482340742156927306410205499962713665846263818313667772509720040251187860965126195993174461223883362157490149253489108381247457080217258605886547449865731971275263578993886972187457455503254749391498064984291737296618309730005895086936552520574036314869252059572462332660183258214099429695974791672411894532044909434120407237113287551105032091287550140496831311149261668003730720557509682432910397567589404173789638588785383315751638535154033463481547011732545287614853647715113924933763641310537973939899531645999378165613822523903504493828143205060639093258622222369998377684548661324776531549545563998395586153524567709531705810869721595258683976704975135307515960810860946940661889071297536411819377354685605701183292081732412258024215807015719860533721967070986167061798765765658002271821015002242091451409887999736557981249996715124708197809629849409674229624615134211995159398051009218802932576077584015789770581872133571423426776530958176376266394326005327637723378981510303642088452696930964106206783910667979525383240345990386523998831655746162247353786118479444841320593884246698617100848921778145480624460908499684418517892760766533997674927213293971184064838463948422429612257971509501832099632611117710906301960946848926197792349822243332559882691870299521587716974962766185504331089435748459037997324388347729436909602172361816223564121155452794661332128003366060446633622005817442850608591986309294954962293178692096848965694874199758979910087616621344602313274353059354451675293417436211533414926269117129446095940761067882539860295943766270274179269946572140137574195672962787956706986716516898824063375922153863196325467236000213153432292004392231426441666533085340597579283832427142112633520488720303761656086504282125699470495751372964736789606608573236473564574002790757944062126520649112878034949335752538287928319860383456523079403108637110599842829620301144892818688519789526532646425480408776977315336136152599491098928707606894661510894565743941895938605760267949624696951158595306561897994370047498632244285500451730121900460529196390494898069845007781700351132558256678358750697037346099203759808199524501454852198240878848207729589917296409541342746529737399902782815091566895124108647753264750697258821430838971049367631928604116080759108189734204150294129608822420768050233536310764496448214962153459963227233167526427645136427841920356623378520871305187728861053240232919445230593321900308838589428601890469945651891832578877432441982255354698130860189979521133954924536090442305516020221839065573331928788221452490509853185580933623856650111016526852411537144233295900261878280916110282871021327230692236591228701989147315286582438520308736511407723448934383357011495128820801078543305655148551320666936631682878872950678346673515074419733657918784998295239121367757390971339503958677111222744749005881602327484435196134334645915555521289331117583885097130902276159474936399823602741352073662183469498668786329047667092440313578724096505864265837636297628269054678172778121397757055791095527371143735522095281583494413505079523799687745938612153693363960362592944455724712383068872184210460681940443327339102633968792831608174996346097491998432853491529898794607950613127235471196551107435406920175977411087785997990131510575603485417238163803808002536755776938703784963107299564017918308080592190330229405881173849929811538404326419913216516837557885750856034441749668403265144056510500368894198630461913998738443309259134255836002665165997079957536259186326117033115678238029118574522823309049177686130206195341409000656416716053913522511160750343577947956071709911514800418075822357405859265872506731433899548619846034961580281427536774604501351662790857618290149523570409224579583525963772349496223752823832471393275352639874871871501356372614895522449766788444125082353202034939302106834227771479251245373947929854940703916612072158719161542613467395360800501114031248573052391958463227901520050886505779939500562981419770120457531005864655442815570674451807593819609824241450619573343368259528841072201877467706679269878722371478940695095728968338115139926023283362633608473905136663260498391909333691160412333053697652158643391980174671871160295392033800332211065144014987185794762246848725058099055747809635615744314084808026814407598621831960303980359891734578070456062075480786043804097343324744059946258082640572417894320988666619312847989497615246905696561057471985984346929991841765040991255362647756772854053864654925898303037355104021445415509115471625845261382174295368125500476571128640154548993707848305741221139310662293900195834701476277318498393939122941061448648404552729040341705290376383841571179429258658531855902450896930590085596856158185580033507704186586959919777941591097280942105288743960568175838684888137661141743991989633707551353881866828885965597700792847657595007057932689691904889040332476622319931968551333832555092898528352286880726507674518014923335428295894208866411370661119589730690631026258862492819793843793903203506304826788688141883769082062118037962159283506471203556417972185558968846339926798774394078181655471280195523759476020720994476357101232117854935390884695544466743485742204281062573808921478551468981955381232927864969857615064089391016151983093136296702655813818925734507338583799378351298613065011687001561880669486857768850778294479642572505945512114538780163730593088432503754103806814295258533305378000702865751922336835871387040435576811006409338115499738224984363989346925948613929365561233021638077705348515731466529436430938874783441536622494136669815167422764980055617568856235432748678621977493636682618286418607462280986580410166212839469041568065057251108362126038986815257468262811224080674690234592078989888034438508532694091662551023425171843339976053853916172566643180601913654594929884507587298233803956145223687036235005469578491608991108665218095697877517644507245130245661673821447642828889068100225207793611330161963736394281355386181506681778035012751812350709018077347918615273269532232731544949100451475934343622352965656211118535079454245738500256266153173723531049824479251986966666707996664418938493837949514380073837192919757125744868611446948045640358098825133000855044038330469948036943405468250727866677232937800010066914755543079204019252996104414013488763167489296714408246305857388450886841735425066207638331093118772570243610449634111846043261053414798373288269114863875230696758820760751762175555533781460501662805076418387470778490410475598160023046842836659408352141762423572248978280873451064046099150750330209733739192604715191307462543611555929987247937491149014350394436082196676403069362749855618523883631719845933692401299368965673060662215139890294352995891263012195348713406085925862382895376141201636885519950070024030878869549926047248851120194444898941654764373670524511798897935720445978020917803982946100645777347109820995516477803649322158210528591239343506842262432285705836356335596129104057079729216098308156356497826884238962199208673607199156637370593711323927771065621703762175565973920530655206910460961959016355536042196224826289354320346265289096068652313170408950618689188846684851401611098584472651563382233939655032038747296540663071778471766797299992748570073579714100966652913284181524338020751758157209747282749481675749456081578586751423590302840960849850299593859106137681268539329905864420677601648568300395610676579504105234632149259318401469496860309763400962287852208265756025469584716431201250351241912246580421822831394251543993995211157946411556389116704368696450697707928643795636228757040702397020401560658525600290195582013990265520134193592857705754113765529785126812609995844067120017350400433833578427026616412479478267844261024047964537574096441935024714710112808695905445625133951254468067113194198262571579794844315686037572082022573200118841853752154279881547928873839012115708964574531700558589361412525547941585420446869455404976894602672676243630021007806983370647368493546452793064338618585732373589404457283728607966252941259193689439888385622297713816022434820732996184628212066125950457061868244831401386218003047312314513394228133571566361300772609175447894720232703293125830510702358759039157900178925403013828907886670375002376331738193034515964413670091653514697991213179301627011417505326671645556621566935549464674447125696961466273523938650836327234220419975654100988333941242465425816624391721657340209531730685175439198160895486710930897488340493296795540499286957417901703886742600195655123593511302108939791883126756814874324126766438863610517846468598533273954128320988752675630932125195573581286801895295914222087723272994663143677129941865988251595283854696412115483832649783917466703104648790566576112123415870390212397050196178920891016792992220599509104495156647812036177707755109956156996014214833919024401206986179826332060501319327913551692496147227506102739270650727663542220179254638045932785182591750229088668735376223725645758632052577731191466985889540592444403958394282984009436580253203893727091958730662874340978224904328292096303476029161626063930774937596684585644533869720131498543539697024519786350653269326389992992473038330297841502941488648065656410857964025309803929559683008842276005133183894372974117749430357381788486492135529230500456840838719338456960774895263615952153320846165867766114653460552657080539910689198826676384197348211619582372542586333079950427869909136228172807236565753007737462696672325690470861821555249922898091377301667780246948585573631781033451492229271753896780844180571644322622063970015709562443678798908505736299637389280350706678999579841396640742954053944189818768536442569936548765691839686878689729756141064756751352107602892560405564308763551515297161192755618781637331935812884879072474344884530683208699109566041826798420126914743821633978146135691112650883606472906315408623056864915180879424353240437190179729533387708190621083537268742527278007582270245141023305865905902337673614163727629775557889111141231368828537799659913864650019286276391171357175461620872658423949956417909390685251357765420799100451248035040921163939850580374032116491894541238267057448970285645972886465681703030793919115543033106716602966908761017529560132058081444743416115539245497900361094646034711370579503213748073450956507528270513862785557244386104180396138410381189133457250871291039620729227114066981449573819466221726644982901254094690122397046839496975638273988277318532305661842498679433663089674029344944390073047096494521583498497533398011587856886705552742684437085967258669070280874847519724609455611764724782065461892119340931244507279951975598504736892750835013797381891679187951309851711674120004620764154933793905491869327654719460399754934328822275403072190616947474388657426137248993231374688800668270631065221152020136654114001332708302597273539815689758289236600142214105782102768170415083653453291976600226121485470612947524851965203329561132266322607952847296813428547246093729157446119045842270796804243426538745819875230362404349642812440873664333180933361690021427604555743209124343230372177065667118048236659540151943170420050437940412049614250151431247052568226235760282358268168944909573171380986767134236206402975571535871015723677468518731237964394863895706604599449042575233281720657199475926507748558084308063905000593795150122807261650455665664028528624261732696783628645560974969589130791486214756167647674993689802274834359816530680376469146743936461776636739233579190454885175228834587234211850542012524723398241535912766832343080432009267831613041957943948445628778989701400600053935588071892789342071015365138472394963499338752830264237154553738801276421641059685370266692849195852027486751446611641462181700914522200280848176502709229394056872246159430104725314029179589542782815560922711862329245960141550309859530435097938626141724501631090304029858270222607174589140140949297997499423733030339974442250189865762730263901051746047660461898903512191434898065745557203135219657256371228913034121157468780112721379008012964316672617887405045869267774213164685035267961109919786010272495254996522400879387207077481890513451127879080800107949282349112386207105459155943567863348034380827351025605184901190022088723226712746999331590831682700889386089142841669378226179072785614810782089382632457722159137449926039825768158711942157285894788828615251605636243578340104210618771378874113379155597849149224688289492209885163541529110896393799209187931158648982095504367387413486183118896324530262584336023940432803850571635033855050298344868817470903428605661254885935841923031594797669313173573664979508545563940630384611879751900051939346495099219859721204419859940485144841701882315398839033941618396346489157453425643854838913970641890125798265211579148041332063054433702135119647939738157605226072917131691650723386692356631098113753923952285103147106550847365482769796915276212102844455905577057980199649023945100770557235638009865064195481239936818025021091272890092153957736838057470539064357052860708753850992102674474617079816023529839707245981865212665847246997719219060074221926362163647019742805179353812596110373008685554921427957433594102645473125181973700146808558170915246918076341610837186464851292214142703864569753476327745999946307548490061762380480239531037087355472301483434888608881364573486977761319880625873301675373420934041253168749509061233512070590418968834759388758953509141521269331979061434275353539038414220752249935250349311721237056258101188366646652320799336117719084037032461008830052585141826079855763379571274354439954500770335585665941407449784192871452366627263585918214626260701407153042363083139380648041904839928116403542048250732147819428339134026122112822332203938372007510147686174305579443920457436298096340770423812397242849864013075017185684478993232648978209387249913588305057412643755592778702496761963117139543016969968056995853867992337683333942922821100304337071673906032695772290828350177115482495224635484274029313748211547189605855395804248991600292846894516538776219357545417211607184202592889137386927012825901395867861653573210757405224790633283398538359224036972965351071946629624457131005115449447501595807725647518079151847200698300553180903099525371811559591533309611985856557078254405943839603033900664437289151404076772608012669692359158277827868550119816224311049085933790244619639075252749398700832834065972130149687393067711443938527994230211063580451191221016074887945353733732802699799577703062482220495207399228886677007934273364551260598585152306313225619080411792002582736709642284480884729174809357321514688635373827317957867157506466552074544489322165536787225479311261787479207435677504542217942406314084234706928942565830383945314627882826585289337526536321283568260720995102816648108458677212179997875091898131443377657538590598783271052510611005916453753929026318505160622551196847351448619703321466729192470382861258387151181567509686065988702826418953366458214760525101471579785194427450229146075493448906531258761841502026768259155263788280213990441393169380695101936648581621051549378583456803650821107652810668008627482033425965615606962191617385166191857147830628823869311060659852749761032631728493121461028939731911694315923517930383501178763979306892932891496115600564808883235047477716586639106562522337065249506977980161722926326567668800436319095643363402707099149769655254748852253821658158367944083723176847209000731609130993632036508029890426248025394646681335951637182582467263451072822973299511617872872059789015747015094917418868323918651931064382575564521861020928848940787381871628077710805188354962540133522523532334568330796599116333996227373224204471992648585782817083323021355539195658628511644787896382625791914865669695383123538052044889092921364040768485027177543675415689344814890107418683328481970956791154841653483184994313255803834559212474165977408739145198839881424341797582326891913004815087041416516816676097465153026592278884849827929927661959976766910045233708308593518983609212470095384277569827592554884733773013382207357316960456859498272522809079412354825113458124151545304131148763811080023871679568620971335160479336721781818233838292808307463754985993498004561496793291106150688340075953626250752065263538725137892266591431623729908457022521433066250986912694155983372059373379564166194729082912034071839989126557446636621849595665262917575812934258800659953571519747973465249602741527573189050708614052603870087742229263512506984524638130401613424669089576383967288706158921117270688114091509703817131439756194402526412135095660277183853445375171470910156411612575163628250630209749990523788947549158182402686756099208479774159288979334534816632819869300818847454263246432198951455497748444547253958846254920128965264368352202465860777243641801979891697023066132056109124354522525950703263350182270322941512646947153118325449484676031897784723104332258854822947886277462522292704548496806488614653633988613230634046655317526024036761727527672368144177295797200735543407582080869174526429648922065791508269773551704643720016118632912964871230545231860979684326373921491977189935103817184843236447772426553353637398936673376256261579769425885669195086663710898512206192533740086785240989693337594230854650439873078552273412110072734190766620952912168494661851384480415944214350537856108163778783008799833896726085763937575304725208493007167688925371944035087555813075033364079651267941408044718145596165888264778778338552620022129580874324067028626738105499424914262676413230170258734889183209379299372929309286910056996785267014801303918157929018070211797946138085880396588049840148275443982731329310195859474753840709320459932958788801849550553312916170950031194711755977240310402370078647950081556207922758572035418188104075937586551934332607162463897949478061476825937976733597117353607816300345878378791391400007421599064501457884478700580300727769874636276572130328932695706849753171469922544813117498850816259193641787571793119758798637784750179738986008939313485799698263817946942441920816920457510418446454391839541857988703829879877987096776127013622334816067656077474013796520043593754532938324289880114743712033231678502870288098131544770784415947055465463719505863127536708611035167301301300463530641496358061422413285199435938434753383352404149539881920776438836841028893844889686790363980023953115775954404220574474508208416207660978869631663085690277463193921986703708373881722225014714532783958158958890445667711991198550751980028548234317030796458937745264323877901617404882944484920427355253939116308349343321398604357172860941128527945581943681518909567844817280055533758361546974817826131138028941142707184217404227114772065524057558968133122614485901130621135785535539905138226723695410218848579425047399187242002471944460151751917233365751529824961717460744082466272589276852390087991865719233851724541772996557701694702391099663977949446222328585190768568284937702974291075503756357490925057893445946411519537408730360159367618829289967308114920902731027867823193583300177034844351078423103190015966911298242572752933045497795403472726278365671604350108511077273032641750329712150535016183394410631154261259629123722171612173179455560870669909544805508188386014080112712080129760045507954693532259019679728431072183539975037924745823217221303884337603014146709590411495925222348516989681964337437234265002701337581817190244957935181485180169079325137290917858350258176488323331108918851374712173061580839343783362842470663362631433176937587335934166030956856191258384356347541494749989835368938767542909884858174286418893571551693121831211028189221722526458802307817374372656010511470390609983873740861425377211129276401825305957428196060624974545710123871123685141647681239234411596665248152844070443433609456525285717060480165901055063006431751300850366073017783359718193710829047499805109920641155648634904477424032017199319643260918852896287167042314862521567257069833273485961678190047292548744714923866327739033285320402639152648361153440725756767675342622806844683846208670201051863388225837290947870787674639203779308295391996138704672541397854711364112565920462162925290406781306636242100614977189608534251123237941996449437267489931425114577967837132275880776429806441737109018085346898446484806300109061590835540789225206637536318023019570689336566408634472124822337305960071377503892033652678602953293394967902269847544836990467869601686934986027761127846753224495756283196890282361407785209851133433314181858271171982413954945655964089331946475098191845476530370385860822921301503757466182979571602200843862890897628868120029974568201805049900929775771906823933080964562665396000386593671027591020212371671178671753283203542476850991311301973656520355891193874870135734528715872618565547714222715856607050431420772144783404899132018558996979554375398572998200067927938174004247031471135922708357247164454178142324292081236742692909239003625892911428804014127895463837346708489099321129156498715243918437751844473450242179856753484435854122814140026998860998856633815987682132924058912044134309303163982214209959357155087076971303652477079011939049000185911196236524794688584510444760065146037229643781593531855889226700971024498204053019331008839640015813110076002701894609944859410712059072553237279266518484205962255454488984482788694066762543719016972403518329033773812492527009543507298819983014661444124803431599208056436796628336436043047590954774069048301249300008173123301982993715770364172592994990681452609193276413966410650785685244770114514960089501307683896551618280235217630073766950225777857543723315680994043831725809571154674795124516762155673812375382149713575945445623167819466233749663716777072394371870304103473774806542262325635672780565257563933107810604149041133827333439200858090947819542539741562866676971538824866101226938039465233858378741780022743103853321216734708257832379991657391079321980339537127009462455583181387911672324729158202328237377622740360246826108096172617355738911760172118249243363899196942533898970289805147118229075305059971719609213430785050857879884938767166050538146576730475277633025010109627431093585349586996144310612497472400488536521993617022793203614841908689296195493951182009964115586292719041651698117414848972803898712027370826475301399800084924463201457665410971790661981890432286092747823045410779633102780945565566438180197026791476422237872107638112358975635450948505161096653069360462708040737840251091727564901554955806260820218947199314833558032280112532215976311545269608806263924327156252707578032018114472210612037476619348039497810624104986618702391036407978552457209215262306717305688610700744415972856030968425265610678605567475355156752375873121079325007752362195634955089255890868803264047530075951352755950533187427447240790641500087216032287752747327467341263212366190002037830866018346107969691564545546688362348551737219467789895623401210805894563516688859586675020421515940645296103689434477060927040680077585719591798480798138929847675752379692007130805323901142178899488518963428217336962092179435715527081951084314556717524791627297487606610358541248684449180890812231444607565054071835181919674845334922348225513467153313214431224415626612377823769843233819412787471526897670240065122888752843381819875291360448791831593114579467254137172313422458644379103002223192930760775699160890604721253628340146690716641717264721730964246604789701133777374051867954094225234349400195901392969080474968473847727497973513919584593852621359130681581806630974673044994168040590154150938457779039712533988836506390930189591716516204416086635066036026785317952286454024317205677564461716470350551510083005161119082575434712680380204130861329933656743316630582757293352589107190100324962429484544885204543713223248992366934050922777991613540826826879605889027266183206797215944108748171358549296219066120983661019107330887195675083054765723212988378658315866576554446880594394427013272551526070745006239361430075142911298430125403356389236554837693305498690583853021113408325433572434072076771872496566978649533661383898766664149857032442285041462941509379601587234720102879216098257393376582606096194761146817929358507332700293811170619613907272827656293784709822172302471705106325701011859433147158369422837957244371597150866848305984389365292338305908733235726420116338391832900135046704872164311557371442769012732427173574619128649222746671056061153542622367925235732086936229542316917199090116293081607422476468174279743107331272211123548860784140552223029622012095815784340787364091363541521781915166522062595726961205964582678131746241300911492970574441493437756439750570251424074615719469350976383512328899508246511919282059387147975912434229164187989576701826189019710318468224241289989669442988336493867307968295377366638966871549953666397355866631865303033295896490006996373957190476857551377655047654349138971062855294508811738610225050750548895025673071555541500465353448914970371278900539086269778907710793764041534055921752682436396341861459143428727996190779859194185707941755396400447770705154646179377217012880410565745605301495098684311323200861187125841725279753543048500846376244482546894963584336725435690239844267430675781113455366919146581252733737032238598137434042581017351693974426059665096949400983903428355118693716815073599369561172421349878067070219489243130590655267216527369938892988007331824302152964154830494690247909591332887766477162102228817227138614335941437154085625868405154808457531876627789078283357897201952451259573775683952127638747606473704072591841119864678620690219202536982181764683912654327673102283830886584613975677627175104759514912033798146850828592171336255798216189754249069599539118737417258753349976758849768057180024294476343455194905476720017594364276752283407973841755163055669773054641837606016401295035779256278927223460665826094156914498721262495391100042536213875418702996636850892848174161053776119940522386549649195243731300144494213318451642908873566339776442544127837085567257401118653793218619364714514661862775041477710065348481561209578456878946626211633494148847450058457537826568664490387297738051391616236855645457246282703841044216102743563704502243774103248395509969651170304618468353528413103807500006615031275395696263863931734656821808394301785888647369078845502488706651340008722178297331303617840930709189614696694482260708701506450436208036065279366284366099354445697843601869961414545935539064353223581422576075041050560586984750893390754116709994212930095059809249181770453952395430813115114184376888655264547456804126952396378833205163050847328283218655508519759980026838821430626564964402993415050817300355396478078567463925491582107252344398274847043037437877597242732009798968440740965610384420370272500076370549984986931701302567630237334947605505630155920705644365172907001100003153223512763146956302698648833762653138773947310423829282553028856989631878720429218693636110647011304247335172116352996986526014520775326693882097599962692176540447281297907120533491051023047254823445020526935342305414964444907678275240712896099625958917856607225353106112533648410314101293633367439620988111097771492689473609653714397241492541957065315997696434127648833158945516602427563652664717115400341254180129058083541331329984445253057082427929246581559622566251915928918216227128724707845405371529255329881059435466708272769149935471901318289653507065104192341818822275463492807908478232380368922295592829555389630270422831001832445731066806634929618495063496711783757671365800505966224896677039584629602022196079126290099677530843108495164293041623357431519845493154490783222986535772464874246417407716712299972571519901968933409361720473065622447077158178905047187583924879267011802968653703739712518591101383217397455169069387252017163874946894763045440839148199762368553495223871886689704472304770383486030288810058558560434618329155953105733715707652931208230194952517519376322768728891341229546996438456173180839893416366977993819786997116622417384695250995587795964981949779618464834130244283890010051951088998472991398603131360859452215855991668175945984106785045516982917954966261435364623846808531761481419805841184694134619043585204615125112143175399574126168056642277108218867308065389177376502491873688455463605166681532530342493270230154852786075073418178112909731565585100538368595308820301262988989535533584056755222054061128513795316450939565851974481769346928421687560650924082811095297992715900686027243485061192623385095916962813157169863951937906597851968068766939600632421898454348157423762472800114465000680849746451523744647547361275127672630234989517162593833205205219561815469942011680896296204239351042294897821755282732096335760322043583452274611499971462931583528590385650445273166105122861270979259336707963940489472254501739593297781991481605226277240923740679694731419719162581797345339502309747563327247533262263335353075712981495518154545732167653561587526213187191005299682660491762048430078102081813377921593041941889929995949503291403740207636287022161634318387410326505529714360632881810027068510059466277868407294389661129681581822214289201660413049526996166063621946026768110680525018218626974344502244829537578350500446299328774269165291460558442169233334586673581128022749647941032801027178333071146837157037613853831635368014601009164464117844932990481598102925126679555387346190584819870501944383038767590383882025440199435690735677718917413245426176850672411997722089644400736577373914270160893233098170057673196224746089878042480803009268692213292910936721874053190746725182766387016577498209670073423733857387747672554090530822075729993388412608700241917392608652927148215721827907442710804063878837059286391100244090236183579621700862323035985541218484414514984108540726025760861799756256090117019089237301668667400991523772994190714788180426300608453046669139134605907493241980591136424443493161593114404640533012908189744880191916386660269787513686828908345272228471637490460866041275108669714636877316997970421520776366469244068078201818866885097069077776395969862507179648450187268639899122129450486197124370793657101928839885466028041848567588843613649946911239750875818915431442129092862340986486434991485082904336903977375646383981354120903991960521015404486029246090414936940650785428666206428770538549014155832403870792724165602408235599929910970150059360528006917965778286744473709092150147270954218926451355921807206640730558076337407182811447047179842517219313982458490790860817597131713247519087162824730689155424594413677433088569527920779591560196037994025929763465601009283472498713977731675988084173566621565590809374691314602426244707801203092327680031466281173950514204029320383993166436256958612093979659902644948554775327998878926491525041133394411670455438670746288775407680635227177459399599979267145932815724934318447591676048613743479592593736215408340985886564211877653083112385443236581327059969830439345520313447316862343057247772138453735683745465464342639604659093096533588791428698566505473213596773982718697756291919102326918805859221529003991020422449116274845641579407380439554371704747085362084776830562155573568300776668847945617618673819729046721983387831093450832462703134791067400431808070613677644846877305587736108609736171381526462080025342588849034606500244347628126661459447826260733263742163238844537188485784729829440671460487272903525717127673817415538410499668631166988972608255235347215812223734983469603393264111167711365121049111414921037714969276227938069205394156553040768469130697406067656373768045369173842239123582872807171551895328952932790477038004220384851506490476460575531879576943983917793592236493548814347405356623357847588289364697858918108636079983108412917447963515215233426192617011384476431152415509412065567404432003392348574455619990193863051937395334820388428641553443830174180934602737688096442967720119366101136285035407841046234015416104322160261397055590080840492248410224722147554048983850594646769719527394792800664913563014514552016762433991505271635463868734498825592698686841540687059588590790922887920288259832072875201604712127944578776337824213544949840696626311796442281319446796960061636358067746354367023510630693679913934440860856500936873984488048911713018823940063810866157455242494168267113457767019010064422589406307972857316483771787820097399113593982292125271593293381032523774904508093216873097046503203149890953932992072829612869148391455280739967025412671390118872352290340886921386345568160285951379422993923585769510905902250768089625523225663820507678101545294540258587036056933734847505476937735483547667510187403032242810576851334795812743957732614940347889988973595936437884369079388884244083225192322671747009797151206680129395940430072521606988828918094720707573364119551746711975541740918444965629694109809009412875250492535096103499863836466992482373206765139314076736991401118155118273136995872578648965180135142895671179529245195711600738811682357645793859548224977474576664882392636250318654379908954320786298512152219907477960189523161376211096542955650534509612659582990288644185185964360401384406302565589154693066918508858026579235040470427992429386969074497998665083507749385055287236622689224957992494907871804359845075723906984111087642984272039691189032348548055660489773318292795519631058780088133129523538942949772373476130124343862264105086671605757286834033426852734038638376451005732691171750355242466931826304858821793017600283750460852876401599950743885646706520928227969250212126580140711894072362504223421472298318731784238734054059868801241131603156011627788939246657129681759893925814733234790028445997956938091903860407259038856223283176178984704606027084029201979493777070652381425712943962536744290505701501305813319290882004820335380131445676983299924373247328603645858374977408206294014634782142670050187308194193486387976809203037037875073576610798601802579436801549762141732493129714515424902639171438678062827619835881663097098605553310362592078298021300550213626506393415174229423451075370290034839641774808447846249077613072883970246879642916579283993770034142666023567205902354775126557502368048692699420426796221266862789712412206091021614039493237583996836894759850377452115293003320763012678274145294690781643893886553674405464241842769681282193699684617099027675614218569387257878609630259219832539807540126201426728828348186202859703507670254327001236883220177728482710147569826021679719951981681242613307203632538338332781646630665581120759599679817116572116384629584067977469058314530613899924713037368231921144752198770345969457876969076043316022365248622598981599064807084866891523780985174776025330609437575949096022205234002091418784790107422554425795638561395051363477845575743526692169162956501232144913935097416998203665927117557321846574971626719474458071325142119968198641378645774128906247842593427566051281229028948627785230112817890485624463818329025756905341535234667040188004459582509374214159156025945378504551242507586495537536896108855325385592358880176497208668939131475967764189797044457379548764909305781429521261739657606623444590165186483891731330456995850720306922755051349048429617809522906148201826221299288423557361112888055067954709850954457815060558607062847894059001267829550817531192070822254782365800849145770999978120115990917416322596708358375109779397358945422485513474279904073266531828221171774604936701417119553279139716561534938441589302200683814417897803663203378919913811334883098993304614921685800343445144774245008880605122274046011470516245794961014827866574699443609986070000657113636895687859347410266708616016046178202665361936865119934066493581354125060692187295659876219584382264953158512360040387011796349413712873521672065772306673035520492195024516483356643898072625075584484419279784227602560362649203266711518277442833068667914331065773425225073830279629905311181016422625894095941378803339255265937300449657565193060282391596724475340275342451709012335730956833090920038038116099977190139494044081428596581282211006120155099898697620371301207332946057489044343573023452274265029870599531146825736433522857897301751461566762174106475962952288265416754120435377461455204281912528470702779434124201970295654379480758747016058291295701082847919027188798551483007879360789924801831553716542676213968177980212820974312570306939647549034711360243922625278693166746770617669715317556337589809568268405854812837112576803483252973857796824830617815471966447909343186439835231477101016906601140622604293845024442207125318799275405325344282742290013397996750855039733276669838745300263214754850291555770256056450928167987460069328744333840725381638604244730956959441431388081447256085224706821096555570362104410799449173786212938545906598227632187066775217837342670269817832189139098139763050927476489202277536676215521483547039150101583441659050042341213700841656715390844126860945766613722794260754369071471285564925086221971992744732181349966166839921018711554287003330578257697382994527053649733958160332076461335142966779447139079488044965696207271526684182137731420366504082934481242101088038898506498869519850965609019926578259927895333975562706203743513032107656590801616953973690749581437998853761061388111641985086906822523214112076336868737679610037257619772765411665263587977095940480988013026348162821743298543637803946732474294221598785317362910172394437863758212378055533460869616452910427059228451867133538002598717915974016171112621197073081572976739079378982510971965958189545456895980724694381780551721353954590841414412762772527677699035421441570105304084534767608893864919005773814235939509696884910797582127488265249651270727466584368353069116212762616634231816599034262310618964514173288959933065007331291194634096824958284226287409852218461315634938811574842410811381188265434919200460717237451717638911726660526551162582610951233963248746652998919627621560526882515010497689665354951908218729030587552997670192561128714177000753346809046107687600810047556263407272224056740107885467007885000630547286216198945211885015272837109209554157389861524170987510015968794300334460323367728529097407228144025186740897214892609593129805676260466392314948356912856293356152735000736937802694891558693842392505865265519107179106299077293033667635235663971659009773142673524461832730146352065676919219158240960062131033453931629708147666102183062967502554191262386501845657078785991555571328742437616188540951774680170152211834617220526734449272739674212753263639971715165789210509682783818407600559544913146380708084395291766269821661824437059084626624546908019761002360704393981127086538590890023636878422463004094019424612028538689267658913517713794039092663879970424806661299367469058288243533169355758467254667645844764250059773618273450349239467487013355408475360631285507828499092773535220019656042416890799312373702475475618793575036509191732827925163507602126782755230987708763579125229680903089828634494186850829340590357529111792507480405162979240455995824958088600158736681362901834847448472689304045119633040114299543030564365658462596375308293690809913430250106666985473255546844559469024833436637674666923493724307723936772519436724966885955623533181794254357966434743808288320973696606100088758905240724393096636913848085309905102236466537326886913104160632841552630344293822096802095105831070790554129516181994283520642887325056538806314787325091563720751702152478578792911700806971139383944201188087396639392467699568924249467010192959613209969045761853270385480931827998200411361362561980531565649288268611342832382739324689971666753679322810210634105548622310290407014792525622609224592666192986072585696340355533360743589606860716326309666049622958989164993356007504746316449333941004121449570630145079622012738947103315149697197575412119779844980669549342419031033904157400718952925909032210278356495187933212853904854376570901987342989771026909131921709081224200574307607769765854258274774716346320138072747592564522305267239058307275324946731545977875782819711568249210786477882566143970861919303126591478370055365142326494509136487964871567580427350781844122331764853707185826079378365258798275909138205713164757559960665605365674210667395130456587963076356725430663392782535892035797772915621579652832568661029698267989101563794130715536213363728861429942096999871878143600702158237221659123615474990131150465796821496023533490623559321093806212262237907461002801591533270989933206471830830136968228744347010799132768216721136253137089626814946031705986249944489979564401808690021745046533906870677852247181865593208068035560352662549424783851729179442975522261326152634226390341605005995554326469858416160207781307039451926168236645003869622911128763189276825411415570700719847275899511864863464362745509337182916233194970337658389864483812990716282492421306362514949565888989582520005238733313612188011087508471307368592275697189634019210851516199913694002727018317441254794245674955302678416658982895901928295950582144271114492269910225895659528168687879085659751912229522680118880634701130962773796319494481392100568745942499652900716776749630736219192026427476371845487285205768755266080092813915769907183982068823725677488440702941133374618897556643077707857987819190347673684341594829159390613062109763013314110734233714552743719103954043576610609256016372019863640031010416188001082390625795829273771861386379268918160548013022797925399989280820168003906252882483396059106976044714527241058095047561729497309335803343279603471893782081855921804162126989609483633813589128030648190608143747591783607347210364511987733417134293857036428155636017151097670670054138467755418736150951976464991046473253845125364211096822499982203271073802243031438622795629691603867221836189576422432648009732995795414647678751216936971911307840767371774507271647626898132030154542907836986018697824643008328809395307129419947031518686730120409713221023306590700639032272865381675535994617117803296216998051799196537771028468251517511077893040070756114208638343399881803337957848445089353822326327872594955779487697651689398803414904364223236890660399422403445062282220636339923211293015211900935505919576670241310718171013708401631527159124832721771022015478705858640180617230954734298952999107470888589662323042298723968849308396781059534362344046550122433784614903633778639437455636110549239744025851417714724771337842791627619020750637855777590106076248494933837463335256502244091900971789135608943045232394908550954206618906715255128357995859818643169481182867894377094456942925210807618025142807969359271330656586963444276011859087972548993841002753985471202133111414971658357106085075574992827853396670710997183817539878900537982818658139680668996112693055916252763123194565963438995381316625251807352969114551056083709075166952495159127660167707791904073683079175184239188969060206495035701462855619315927093749198158539520534549274274542409236511816055257765772913347748773733722613261079636333297891211410330566750605387866597960876402431142966172071629622790009734546153170089105045375770601362972882891418585568210734232040283394340343571578009900514849256703499517239635927364051162983235070115076391169856821425314183385889990640193599933321844539157502134230852933426662487331121606424701831482380365929473830046764647892041999993391396821605207583964638221945819888819580179147417564225606622899222983621547878987854662575217245080600081680326982793411115958709643851519726156280822750764823688615768355939238477023667569812288223799523226990790989292551753269692867707696277535064484230186529479700045917045652896290002307363666628828258434058515299790475706093901297812813565378286752244808496700433129879322325012088934382629820252267736044056858383926358784845399623633615811709518073049945562021918866134476307148077639016348496717204669413547249604902706263133552468315848945284333738129999833180458595345241376382610146603664313722487664892763042397008760954262255883357369498948088778476724424042412653504835852417216144840020504082600190849894913134232648738368461607319946273346664174443461120062364380912552702447933208068563514966944408837699679396874702862003212897276744933776674138784704271163596383273856437806301608342372752969706930314795510630955576512754304546748659996689942360638281485759878399650052368239539249709587193728701149996131226591926667639964966296772443858189131454282763669272163088069743520835204307168524243970116817941462775690509026642621440142742593742560643401068096400174880894779210019802380933737335326024609499258247385694737815821557481516610962708879955614904709546808598048205951829400562498930532523133820789262012588369461995748970905424000663376909145617498821527940378808915908929281919186858417699714754569639353692858971439673434717613419628457086704299068916885040940876991828611120416853775251210536759273198698715170999465080425752474369959566143269168644224715340149150231688467359068595958278861644211584674306270775901992796552057812184868764318267627367209266310618943431644460282856295703404054783881495704726216065246318620509663224574078828492121150212073330457219181239388092769550375564463773888958086372813708637923710181368164575255945563472637086988923686103696488698279236554283690330024208390074114462901677951313325842801977721309959941079822400764566230508626965409180194786231156229969875700617401659504909284939249230491550771097198795998891478224964985705627901235246190720060394490755466801865555146000310922469403956216096756262484449590986066593305050185465854872917338438753861700776752924395434814075837771241082582762790224945574249632456063601274862569216436049607237967998943821986691968919270251320866112477975364602202948491336179287017979031315056261701248265708341741055696733284186515364650068623144557194547372604176816348641296507709903913686523783950579743538301645067860904448561067574895344960358224695670905428877209271211059139256651264530025720374018501301664792471856506863729304960776869738872563284088444180302386201230326766088743228945708431927718352593432816642206378997924040013590181798721453241284289848086679092159854216848959487572787469658025159898907771877570160812862685996209861975477574286026897359922281196425351762292869058280148060706762167977844627112998536171210134014074363493828219906277033291043356617407149607739916977373580592188503909671270197051668244351229741728481521288971926510046518275359363990923385843291196866062391408731475732213736970490507067357865232815564862810645081539148648758729684014813279694958766150837465148602089866081628212480686690965025091607618592261688280703040715060098779002285918120624871389911724345769432860672006978125624863283493267297427663883628841545415975203835979430894069256452579029169462067398787449455386294598531741781835828120691961201922679969226135386805921132438324262061208058069011571059622161665884198446538410757774137005144735964814472283241431179531654460427433081857488979228048526722031226823318690807527622907977042306997311325274083913233616805943691723332101071343251624599713798092658583180706074322916063909231560307104575395002748035257218192496982641444858175283186688120878790865160744827517900377878716021505981784021126343773721179490578514914143152961015883320321326174762877738958915819101680489453287277395475324087040737020215564122455889133933691848859624395088368206258356750915709914218309934139682765807253917929623676244709023626781387180985093790501767922322498792110824043852497448962303197205153760812010933393142527014321871008674874877372033699177981736642878582771600535002863683105117783504674338418397732016567748808431553138188749083563114923252729046794305718703863171671656920036910152482291873353330937252830167491369956172782448871696838787386319386960247491239409261705736523461690941657662538772874702953085013951857985784387984273006908555041933354615248642627259881097355022130160059435953758117197264892171341961630158881164992003440747505503094342582368489987232375058657996764592765040686754341622657170852127556339687351873210589134781636719949077796330700150458600799615629492103604570549052397260318148689175948292442705996326648350330071715424057295777143825282707295778388812429007795231404818379680437438685284609678901436851163110110337201835354035395268930833727820139321423960983110448906197370541878621847071838058205772050367514174660660460274647938819402315621937721770015746263245228823793539953861198108758960766192583277316772666139487377797514801008047622605704047067455327588070533552799355285755840863296718507390275609141060260938832870850820010652382481870337794854312849726154027286764301889828040875900807408365553804560225279707970444427381220674898304656100707728966839308806476628878847772313747018836774521893760612145816457423517312814459474990403604517190419338999191198133031924190473234486624054400930194948981773655270981757522860059675665628154835755309758856665244291243488592142645404843581334385621914710317598712466238576917381008883162237072620276782630915203610727227705749004458453943970627915614393847623043744708175479231660157656662523464638057139350730516223576216658994055335961623248208257412549769037321774928146032594393891230009692750755201823724723245932704349574788321198706733538440500599518422096900505351695086831044652183485247875403128558222553241206760563143504921689204024710847304446479512195010794990187808611860724746242279279412880130979104369047836053381673815087077574386373785797206450752833040820637408315547624075024701638758838699549773512127448805843354671257958492656833753055678934141516196712711880799866197174266574547457694305760720036851872029693519935511320463031188154459718141668988998869019581603777582810148608481294802477354802905392074405269007779733674435210166738871161994280032705403426573737771830653825267919858053772967279088703617339227929626418849674691778802624007878635823496519549041861561603218777138266623645858935740061363630941879410281937277528838183586667341686701299909967322062153947883543217667237104318304383827966013244007858205726616263971617005669009803501494887188520516833107692234935977266160709064075758600616906044774084746733430912625085645787107492521370395611222923324821341524748386857527720835567437896679876992600020735704384783774893654512770212146390833714120761067007865996292099779535729986271683678771984593961073664861123414838367945874271015945092140428100712450313561170568050789886320029120320217022123119707076957589698721050856134730958430620733334667254426431569731501918186144657904585459794611591663366504166973284486892609221023666441669908392931241523436477656293162336863727058356990126287193080760325675849926335369761155454748196118543125057931720357240677931767580331080796556054763621374483199782208735964504344442178829607530895832303857031297692201553347099635878163996616172026695655431363929920235388060727394243086036897985168057464249827044838273496923616457819926142682442229195133911021641272778518267173894195564464768286324263548580203004123888449171949958309643916502572280235060081344908717709685605286851524673168916846341643415498384444152686010083277001457837862256844566923685479696336277015770790304302614138608849045088074185292626414870480752026456784598793820429082113182407091972672783162148842343279465377189173287555216656205878329982804045637321489465111689959908637918269029046002208434576010437357874781370537564513071074790526287042703714804532265963791780044154133631160038156489042815096173884795642015543981024258630874914062889483582289010165382850700754663411170225098226780136524308255677574274388766582550602657737115926801419732233246648855193021701454658891963982090120715601662508138660443903571418226329514190340750857405319116611309065061840020579555324064966967928458116097138464879487045138933567602397260751027705457224382030748976463221896347899553020644875313300060762288242522133452514487396156918397181904557905770108312609481022727751471896749101558689895780551287651814417608717013229333922524739967400207687431656821634523590796467933571161918006012803214030228860880145014499317438741434789408354364727598042704853482655703905687625580934229224252076142150736740398259456509737919244646396098836588367571971425430115143509215599117741369607744211159580618141275344499695352651950834333713345911126679228959087185279700825101719210249925883648818911297437421935941810062238817478050023935219738521759030207585127825580685267228159924870380476399941996927892132087654193237820145957434110461050968665823932968281221614262943314605285142402189319547142835571206806239506704273210199079990513129416327531606785035312775893908283641690503156856579119860138721626966796296890537927339143389623280585260259845155948993691918656247462754881412528887858304330828225806500248271223039698049332144340984807328296835169463228839691629186324435726123306049559377001691809716482670353112613980193343432476177118320928204368310044522723261420101303628238381291416069889989680306228678460157846992695386445364686722164286200956706835490673492957693670901148400758271027109532673588253230826162825073510128310683774932485391312290239402046704060285539591093216543514482406024836458172165638462656643807897510957530530529165610170049887156577825623164191251759580787217849768362342806173672019806909579675542985700633934251775166210743113536876834316673223073357470239808426346228398755882355167633376703602623121349105299235034204517955185137901489639241060079908777395247914584938562832821367806303805833782495522065323601040979056581364732482466619750968836243775405358526417942393988923187499386547703352161432287394735684490351161366183215880345109898404813083470055777305218142935262879727686912121854407374319522828711875446810905684533287483470118365477701572212788666008490330890572238272694069256342147636997390631670075639416302142251813048050952133165350785490996228645366005448794151349836259907102894569303338503644013861686179589478038997819706304716672423686358015240766794241031900067624203544347512200506631076598142217946849871136823409863416424216594405769864500090675772078260307030075584828904045788871065023480243460564183582370243713536411134376855483219358358368886755023705256440798058057271724851470523321645250657327155728752365810920742628317311469052651704885428120603252399961460558974315584024445478260652491555787744830349830290073448067592027952860302930444229073371028724426344455949518490202225777834301775785993836973327878750546705128001619383038093529053015368945565779374339653243496201734311220411668903401529547118035949780458345872269747594906810899152739849884301054145573138119921234145851523191852353968408664710813286026779493217084286793312296570458345649386441255174493349402427427450568606841238522544996939188599856916987556164740762171820192873575380413689345403111536832068561289996506784503021926719632054775068102425864309669621992245729368572076473521918457881349676510441346667880675408899271611351635829454768452220289444416259010128861764610427383603178241906183017961514364213596820452422003300860328896478109850458063578758376664325564720671941172094331114358223186530271046485402683187761666950391752483520703044945922364351928452980840275509710448166236588510281580666017905104379430897580205172395004839691478345190109102527028356742451414654333609948775463823566018360491128151510843415680812537639367963460909296382410557433227115379161125634616496279402733665999941126393911053996130016738782216252001509488780796416700816637431395577317839244266235388646481280772850510181412397288415492623712508324297034829957735612613141199511051012630695024340759399739003620032289387541249456011021769009257120657087318337600548348603366716085159606105601251126270141845524883738057342834892606980517397790455840871031296529074694510085806698934771372999675833346687266901533708941995128066940126636994444998180209323461299041040303524967258486952345437766468286540607832907355183036849506449917988377170863512482822735062508444188154612049916729866524381488161150839377571846620999277109090145982166419206708754024253283023614451100939307590117217091612299207708691200207944359883953178777331291070773508645315144800485550254091370589878159249544633896370331852049148674216812975525708756103261260598061472819898215176187286376193667576651312744061315196305358266826715848162080879379618670507222386206004190594744245012502012396748374686793688970526309488109283751821981051103763026091132080485578406387135660422398234369954987336405269918331522623557769176493656743286567759018196299738935542526891779840454012627171366188878360487850922274955878226557991995970569305498553389387644227452638742724692913161156868226346396779607544134045534218297567082019184863230257628106201206725698395589998052096599389028777959893473318674124684585131382417264331386871704154639827676604689488631235256648164810026932576236476565162133909667250068659417125966702708635353435096441868673998404088320178182583344967654373327969088025250886375990431263081202636000797804394927932827527028041770803867267136522716282103679229116545837886253142315550787330697745620990231228952853885010732267731121556089946029646948309851768801444484834650351909359029024641135526886537042569297163787403915252172231680172107668561005952776467095489423926113069483444976026564154476721793194126307788450770921676304753312756194825323674209626642613044831703440334856151873216678195559193056308140290174063172300585777580975958903636963177990441897261655445623568293771155942742208629481110378287072297308917851329951188083843831110235195291389053260174933469146694809708329098796747438267182721589154548146497394480423761394032512974554120582710806260276582697029833132888762802991611240922159620060894251518731744808610068541930706982384903770726001715301089255311702576988529890934955477905954609992614141265817776185262795880703875126765948368013196000963014521142567175879627293682406514651507665248216137092385948926354447363940949682323657550184396487557751212139171137807749357444831197804724677832623506679159544862625012666456616074203215870535999219943801856593816113308444635419355896177634030243233037761150633689222132940695476094400878020761966628356946186595444823285005876242893967834660493981499784405560074155963758008811579526178777726883491143760564691219179515637737970361352660827562164560605463606281734207858837275382721706423651997748008072808155409281214905907448201699733257034059521548392002864364063378302148803191003822100950202097196206983613339460573465621869559293250239510046705044174825026406755289148095276160803424154968642863310883025623625551109770674728917633787482709949352930303049066808705251168563518783789147844526751267091807644253348708894668277524417519351370119518489494605835580149564565414301066374628989301810474681203083701323949819110876847440674531862640901350428008535676908965144368712002533954056244210421423524815584161620755065945960042702207505246461205768900354502692144121454574721447658959035522488037241353968217356226365752882969699164197114036776199764895822396325679763981354620524274648691351060365439893298144591120552577747197143519737681443680763089282165102988715960814751336015055741119488562555133259068915634977697055384154876594750908580108439056190333326619758502008623498436813788308708971810793796773360586771977092011175114241025158724353779180613540223130717207619930034288139938469803419061558902347896855392254092761112612507573427230072857272933923922677584655081463777493485886203987148293629950342738070801904616461001222890932858571018686912607774201595318799891957818985852211134211289195681555166799212000899139708465922647721939923208512884913447684905960874937668796414077485266779858385070174224590130467268088349029178615673529601412599463144504201404684399010728847030648790002997049643050689872274039836296790532956330043603295180010194329319747533784376921457657128326917592366632292692602027824635415560810127024232226563896369331319676000504017148152157943631864561676188651810038928433083283204869978762850437811175520424878042056857439737483510212925337059126153095494395437954034776260125205909785492906967976797486757478987487885351941317033076771782801778807318674739411153591721193090280422665310852074992031258687923100563828780370221431919144818691301444649390027834283051670265439755364851462995412296465557749708170947417957236621792856849360880011381276450972366357959285495755734916568223027200053524761346996683444274334847989005793404972888508083878162109978214689485228686105703248278908444957848879799196068789324620496349273117143022385732752695404206858501175601888932605765757406727545004558684772247499435751144194444726923842796388588633000256559969849493924862825647170656215114847900859124489688561198330093292056730905070658778407292187328543757910954945839158070152160290144288045132621592569232058485565247577594705629007191493929002904988715257213837302114416109661338542590655839507080872621887241761482893893397634728636540340510667163274145894801868642644001727069698617575019347978047730360026771481015791789130885981744054956104121569102431661934234339879458643962679574009111523383211099816153335891870370048353884289725384815179434409890548234884984664966144207874912501694536437900545884250701854549662229846745406486861248929905995508545474639816953578822698514146602661808518770799116385139220943049006387965023403196488472322756467222240148817193623309134440588337311973665976971067629255596411909005128271489533294275954662673386118906701244798625537187165748935365009389070769869413969782061153100473414074179925089153082441209014186447674668585836580108533737787303431860780528830718923425590571905114842096042419855447809203543110607166961556261394310357603568789880956911908376276701698608453768317440266358428583030970507029466274144848527605340104609531161098702981992806181196152999283589814322142971579208152013835288104501724436492869121179673193990021672659390107164113417389486767925988138897679872585024886119352032944491168062740373645347453618557015067195050695862207792003131177456118729322647874713035750430519854721189288574700490270941339791997858979503604433381551239234385481265214887612604368647653894158607149460885170060900190135793454101185142612545988637264896621859175538281097360333294548561457439194210355205368804756916132512917874346767600106227293829474570214047449559343116219330671979061545819080660409259242581327130545985612846021584969033930582176781922299479659488213466565057245646734165371730272722335526742697477344639423255320074080941677045234646094684741076613603640870489711353587090784328012044205817757201557778366722620323583875029771018286392892524922094876861511842531430029025651199324215268434543933022933281391356099573375033652580541221930885232684458829777640494476711996541508071695148767066817903810135945549096619225250022337146425179003265482629932508228268673452050598342942467020898210096941874626670406230564346973556292238267510877746059328948010910535754169633776717050183084179993656851810725939745080718621725143410043471252164533413827157339882451175821176686748427500214772457240091507982433405012384403887530624405617442199536445889859674502715699357513772402773315393593157454402242278192167481668785787813325617265452495266887351812388176717498454327115706223150528922592376461429641738570075095309425371028582200235221986468621850373311183928136516276349164356360815038203497557382394499458959111119087174021294902026508559528246742925238391018499392614214027629553168200485447384760622838015885578998878568632038886168867683613593375304735650619463446130462506992171413416787993678656340240935197974326748750170723979218737778581328989790844113055937301445714203790928168054506843524691774930260354874039609753021354240102762223246390387787371246428398932728382883037212997604072848457917125405268799567195791774495186358107894860788349590814334372863121707035495129394834635313353019544782437822486837555380537361913946800558045691440731955342055749144249118665501910708744425921642252077288173785743973454475110787088359121704030828313837581085905062497880725191375551098320830222774396743077523073217185619825891503354619078044189785941360849333111975745052558208500118570214698058804295486814813362850621560369025459595160364951250118986331588773860266282024556442948871204727216398573342755112699795082409337470261449566036848359054846717663250328258748885161194699521553470817350189957969382844022295341030102777450740201270540749086268447233747473938374565802908251096993792106366255468974203785684228299024401996943212737672861619594283278826914786277549044043282013765216974247297936926541767777209592791154693616240627287574039561156937850878117702743493871582611358925321645748647989924511549870690117226653625207411844614297159721682078812584270008962260503792750312281446869810282477386488227198316326352635175001346991351926010535118313910504582490557029508266756566089885087352970354660389613462475884651539336633475718623371825024742211784921563609529653984362307544386357381649567820081653400184547179290414727730434529847186487832480266301122154811938089603715464594467677247677974627933049231391265376277279804430502163859850440012007161791272618874520379530661758574427489031036298803998832702830970024764001666438473441382264146652371824176612378104494256504511905144547899396793369443594838451606315757948986697573129520479208007252449581361353730728335900227521415835600148429163831593499245246367878280124640895695410609158562647124320376105767396801167616230511324534198912411111226157448203479605263325551955926136592621621784916148361496522862723836325723362459757024772557231985920764279960998159908786448942616519206674249112737069567763054895171032105930045640244149968137268601368684709341068845078939543898878521018071113944055398890252330649107070222461664551790995492373002356172331394862957273021079389633918541027609134176486667122051787552103615105524908984412215317838307658016850903222362183090267137983590409448195612967439188839425015695044966382154373089723119055233045081739030904852584956481734764755970123034631202371233523655459385896947670881108884452597020597510543794400269365390743460073266605047975162946985587601441693492336903292795918285219403888112959881789105005634778487392828465467167836127572169554086242762335977060764816738965442570257246617337168074882697887515332351914045723228055144623809003906996883352185225112908910982393712850329410923295166064028468956397835463498218492081360176511501528369929758197510169399149783326889270255065578923403999047949381439653333355337837705102573885808502109360433724662012222941370628943103759555553009855801049232757263461257857861415993888102075606190232903878436044009336345352411400015571573908588376117780268729069645139055774773355903225692444630365200110277633162765543049241992866340408720134595812119277749794950999691325231601088456371904236686989877503184174748316136993422290860149737630889493891015826425758729066083672789876378389866254761398860734135520792638838304828218971325179020030300916495982787770040079817890596120248268060879852648311113885128020543349369517741033257392016780517240651562470141493278922450397474994691747832589147572514602740775724428652541953479902290434820706803514300681775427737687129276422443190776375951730207122216641851973020379213698176870198333662521389233644553100231529916832740276031101964812175929514144452808345594786850965320082551348767401254792708568392317118756280376962753642323697018973895293278410290265799569162210411340686795521625829206794328919280426265285775751154040475485377656904759721508746600727820159624997719280832988534600049231095693006443300760264050184838870124171466169404745713316222102648054927370932335534982695020186980194749011827800716845431673043286702851641422105058574475999317702744775571108250901364981212644668255280004960507630426263732188696634410509961270183373489918303113127758088928543430757281837048544803129921803819849746217652760181789011234187901919390444243441934474383129869263192105350222714274814607357641133057530384843853237856912596652487770511122772195597351316749437599609050953764713217142042082619776965820881268831793409730871609981820990146205053695285092981725923725062291911269165625973800052482685158551869589195622096031887538210597726813464729256699321400957739005360825590909774120417037523788314561675810165018789040836351654099992289887411825928013606727244702931733613298548054068283107098861426338011367565936739445007268552162721302298779840803840413275006267139564436362116223377392268267913382908720611596978422998913706866801424662512307239486835064004881553597327410052901701571983928596898397547694881930791708232462312096288373456155595915587730532853417284432739382170367291326293106439717091435706594607427093680634869748392002319764576847559908271017043895349244583330208712921967676747506812010963370085678526857242366334821999881129922041796730554380423697512560785421072813370414534213283176838297160661691812882301663005457743811475843567659355078217852152566520980389033551846403033756451636663675371138001804760124225746398948552577180874942345357613594839373934499069506386815428037980316470155541102442588230057155803517582792214881793486989036687369413467389126403924840910752027699168810203004562655491933417353420125724928073948867805808956790923678172516563092785114477326663965918224241336796495761244785794560337061168577544051273895366801750340181723479460775549682340185979791021056304412622468038618478929555822708421287773097869275498791483068391986434313095854068925497715686547540836686247393359131186291451576488463153494266816302315611015867444631104954334197028742689220173825918492232490502403832577741031252587406382242956348000248015072713213079970150526784945758307606459540122650149725439405553667149641536657884491574239698494859069751364005893836366796351568040213184085610564523755746392496638807962336046574409913326904507019965223723885279313585999939638507536547348722502756589066351310504653696466394533576035503716435541764843144758109453578054310224815779643702919734156756957763144948673449025106205112778256428663322925269521132449075109328902852733498384261862498226580783893030091056668612042995904415975400404279012209388549679192392227959045751177995347643882379790998777445402687865444852446626074598767438584864125224996130301164011214300225080575660102954566456970025328432484753678292857566182161897220121185675547096464603726107341761326900373781987018234368525020756091254254739191442888313373552086783283639859766495678046154116538466327573322687680323220333024979677340796606405706072193046997301156394456994384527378769008443885300002332773207125692023502598492851416466974520056965255709391884889400179975864837891813922338416974050888409243521446237399335637870663696106528839260409683268685766108915672130912628677178242984520919688162780273129550709246048188081199486899160698047662333211392182297925945940182108323305690826155591407047489759107435027407332378634358450443047204116255487767989389973367112589434081186981371637045318583419768460952324370746702228864268840375829024558873359355201906549283507992547877098775416842899255355718259697506094546150830097086288719112504847003026893314225031101495274479909251642588751243422662049988851217953891582679264763204311452102471421909852264723486459776589695524797282460454767903244171665328934481886870442802179046308214574550455435770212315207005980573815158825699676794666940989905215453078841290864072385489974200628332355024678355062401568695405988954131259960894757354221052733921214560184339028476702420995644170465151174229158680439198662920271563764559661859001784724153669753367966419090291710509567329310669212379869350127659355565707989682273229652401869044753063004176311835978242111799889727924367229370623355523504006154139155100941372724657316133615731172401726145048544755787228647296098732381925578997326525819593546981438898156780844051104057594603388903244449995317423553945944866241149846800864576093562703076533574510022642589577612700813414917314123146959292353964223383922120585308506687880430128636538327116883067737780004355329223966693254535452547470180721915195545471160941722664912344428641288672632935810185769725019585401056749900938430721698373273693748828024921919439816383496553414558281147575519000540018727068967568192468447452318225807276952066108482525305705574056804143718358165671688680857806269153163118755332771297870766589886089138840901383476200608969071396593076696875603321795014168542334403294359361615574398256346851250178495132965165361753364363204189880722397343820564024338578761175251771171100634555882021929630321618671216060649980810290490585130230666520165735653661766045003622926782322324874954977045804118222535029496555652623007953024537753062366896496358073206046605147057315355725099528907261600694649887566241512857394564123424240206337143225216485740788577984471831889672636024250652823754315609015852018314599264847888133835097152801887104160659369169658072181032801381322156215495851757575614415997227740783163603314468614380959587013047712583437965927020258742201933160220325456272038368008452967796741970776411847529024786175060462171396705612848655596328608479719924517514520474269724100475028533595003716011803808743570074597102459828340709053432767241659143721452357304712821301604771122754379601285175395076499261855916913067928336898159185136261129302991329685998976688188996778571588182023466542715019702020817865043401859902767543570441057273133920484955210785568796877464591813683580315269209405301723505606625261000973372613246630446615063330921875877011336105081573506958043449497977309233653957664702511318858628622458851353395703515364055844745802180212949744522492003242875733789505746162791173444043904544243552202598483030660363943230142403350698101013062313612718588898013781827738205579930586786304479526308394277574318522799886112401307247286385178573042331342359202298035562937092857595464828957917512086937795590465185373622681601332622606965292058631460251200130665193777850127832129900879175762955104157741832153966061175500683857867497933827419069374434848449516559415793224197060369433689957524570100085040927402312299998423189963093265830432589873763647520789637719534382831988307610419519627671247145569709465735242686269755632881023782678992456306157486660318002744768281122152610950366232489180632876135698933246873190411564383873076266753482334282556268636908761905195446131869809105176495917605628163055566547789098058223509584105243646553445481208974426689619551756702573800628541398839617453827624514139341957047500303337607126002347399063262827514763785401330653481673903570618346387501550676998318713382837620896715781245424699784460139184389327762480574895725061319016142358521790779303098324130417682314210431334109257917852438924252041452986256703889353517819389921511151953956591749929379566501616991653776752302529125865335873186294464200182551998941434845674276369294618389672611533002888232976241207162250827424981644639865536169845978647535598662609931283411719273328416272675922958190771815978551298870642689940763002288856626528133195512723019872482521052563693743261672177886322039876635555606158291373087461247667910097116288108492447051155371222530601869275540780216752596550388286507075028467305484130718781149511212976298635868536926641117067918949125771295549808552098427964503086899041699960064268843235068371801137401674064465181147120810786138802298567105262460769171983018026765757955973569479293364018071619125872435994513200179242341784604534579706816854281138640738495300447851244088523747219725701245542063283396518057917899524219127937994444956967924989679572621540543365435036038084417485605697106426112856066012158301929946588473722135171763938748397478827106853209676167837099684014286608617430241540948498386496404738466087714183004172244390205863086840388827012091435285519218333426746705955888378423523115393083126139014818432858864325793242807060090865042849476980462816559646963062325714330739056288601121868268423322566794901229968177117121822724412327242971440326346571085328018680906598771290735817544378093471682727132171020204064686411578559079090830423034440985451047389232742535680005286539042824766651240903693696937320277825545322764237712408286353166002147849989371527427855485478172383695724847579139542483150614458920504955531327900247963705587079330437221206404277437962942820178731116398272301229081385612431881194401032898095699169053802254737219309206730836487129195597161035018831317179418018573324071931841588043953763052715916869570613290011376937345099755601678605235751408222654996600173788481025595255341842783789559334359452050184875868840418944252334918626628189065279935750636773063607165164209653158724531882142912006436612497166303249354874396643765690466712295730772613751086494336371077113994487989563544109466953261448340143227986697124744424982315802143662356356824044830021004943475084153055724676208322786738942547790424753089736323680037539443464667100489634652817985617200838689239392946027977870045963770520717788149043755028427439097850815457064649144399013100017759734921487837272617297883838249693397475989637668170913388049872954621783690295757415100264684891500335428679141582797585941265832447992579722206937953378186798969640193537326887012709851207125554595313971197638403462488528829483421591882383953088631145313477214054036797142867422489227518683202747434446210682303646484051203336577035471488703079270498030908280532300828169842261366061831816706341958604955886470400151752480372815163973908945468447864856103729257208244043518393948580773083726984402084323894171781293641223943251087871296669401539047878597078933434953836041632222716957978354050985203849900816287342617559558050666479512942291963517267136063115291798844385978560461610953382125346157685635398792316092926785600751486452791797126387398548988913661618623046746603133233427959158927677809070865509467571583219347909583645490041482278189692690529444899827125292932923729884353072754916930985044148763075802039824090023599514856568122433256868206699804222565546379934568658795578175958205783753107171471292748726141851743562983751821635483536858262761520561119338950132287145602677684954422105562569064223450021909643837389014904770451645650990245574801911793629318453069394042880696085019130135912286945844381592056998236451088899348936533969655800794465892696070821624392713810725059114379540478960231799927848011735334198424892300034658619550256483376125795923773237792994463368300194688735049184770781945246218644831696070522608774844328511334559931639325856659414010398156379254758009126598321677498326052173407836452584339305598029664779467588094868327187177197863952437782389007279859160400428937088639913211243149130942030357906686793340034306052473304348678713311636723935281975343033566296323734465215348477379157753188972264933786327759674251815038343291465051665697101982867313256797768668542336827486204838667101249946871277957103896786443400285167289049062328947107534349397681779364355984826638605215316965241032109198455820410720846404647013622892668285981874410642670821088354467629540041609723419438748740678537824584258093842505959511948143763002899772104040246089148773732759001133847317960944794372826382514991814880455648751853792849013689856446572273872352875362519858145823401007337955410928042001495020389736648423023408301869140290744746444325991808795504277077585974206871521969172366619818516157113388253099062114547169024915411555327753424917628347655858487115269518507260369133288835733784325863590887557154767573943269392419986807044418817571105041186618071198942704859692209815931248933155241151844460346722485989220494087943944269306511797376960731117996715478583412594722273314518768487188973434846478624933917932877672165122686637170082063471710879949144305374351906899713740727019633657592889284723801519926394155672761212536799240119732516523871352944903526043236664909080749949380370046208772855605140869969741912523255268153103463718820415401980222996017820574806352730832661160666406775502562741296480890418244696701603501130364336101084847569612856122787878759385306637681469574217832006796891940502983969220545300352460107199523952863920263318883345609377760640222761045290417948662649116424387065951352200190320956064860627931007494871324195662827812495239284719182842655655323804723277297926694355325071575649998367719538930608078540094958794505252957629621276964386828779948092219762402332574776263745252341423856770256825122609365080827529799347043630825033697173061679588911440993139847065144048169717583802869547974243867191677549983879412194622069934486055253642389855525635975705224064420297846765846001187444969926792697627658520190074777317631494831308290479678905459814357074960850296172000701691004722000952316166987123223409622991124407417261206853687933630459377016137154736569109512172956986266863911808120589956696150381455296853311184829825122228135299455712574118148118539827844609061145146173357491894337478307741417596507972738221190637595212161714921505829208707885175272243183915910275409413584438336990839897486611478163215313829426956583316745875500015003878958668003726334813751161751961731278774264391535695071032090017349874608816023430645631614873218441516044669644494654922564259460679308748177146733792506059360314604359594439426446927131143770552325499382590146890023861935994802641433531601745810206490341651598295418300077504097202792245566316894595365423226400154454603000527946047486422079793582540285752787211768810794202843701767760782075732169961433571380390933069886913414546581571806065735249875502221692464362064086778854016443667943013336851117924501550781179555626184325591978591757856240035859587835227597036627786871300449827512865732640554390226627451681809832464381473327330661026506559154978759252177348211249857886339104251210515642773498866182018548466871810303393222133438553119554295387353675053931436303501023977575454757756832679771733820235509240829310359287084961772096876047020452659386493898883251066870558711067309716135213731790688965124718286542946460737491347463418572090273802015266235324918383569289791905074668013281337636403369788806769061927806158314352622092138519160774705774417804437651916825258361913944646989955820742369630645414260288884117333395834192574134161941412319096876535220368759293683527610756671733374540935092532120886870858499011532551323631141845278095952201971283362861636313922410925412931556956279417232799730534313495240411104354277135831942970989937688651248395955568680660589734544229770458644887618303334106678765557699381095521854682096355188447977617082506597404204985253932614401791397086198876218259592923989355788522055171676783861349594006584766664677765409027767359178945808494182538350288105640512278886148635940874191433099548111527851408045567249848798559688208833596395145141833631689523911699127079596768264784974968290245789036327683006571414883210405457906489733473260290847513081092064165934274091566726562765498333491070575598670812266611110738673134926996892917334562689143470877840893427148265832426139150641241967425808612444300262659537060764384233671205276285281051044366097189976939683278378050081184818983014629901830002562647284600200956828909107401793288608974610237123213412973628866263634392521751018586661914482989126661859916412183612421242830658094178093740779344635084461183144312184969079285970147474115383155076661180080983814477517749126514518358803236497449393511608566422992970450842854860446666588045004055787363106812752804962382728506437505844227908542083164699238983913209154989256006260246921300310579792375698176027548265838626390705477814255121125492014203907397342801415782263593183739303618243315814458365973297913717567031056812774267886079894683898925134800289374713306703826173279777595158231757433659783663289232925522565193829235973401475669156667117474140010895030450756027664568267797231594288554119756140970489474788806451209373768985389281350803967321557965064203734193719939682720904198571515928099291336951949282973306095599532124024598417055002010188355688857847921081240644576137657241772699681224696145989842430940411300998253380880465912255377778854339425486142826587951252178310850952672655912356882111704798545041714372027742705092671279422918966727594323103261153143635651583337811778439855429824773639947664203987980231661868513422369058391143383644581086277749755850369081861036818013089106169095817172613009947026070750181079963620023960950390371221324393430467683770588335003752346809777625771455989984826039154161681422113897151617188331214703231951955130961422917980603147722167025143150341624055161715162530842174342625503670775814050843666063106270762818784012465497007928114150573113443474874781810880133032129268002005042199883745477673980504237543952166619039029465164827076619746183955343891247758427973113257680588209864764697915898348105048816238749090126517846060225156299765581226661551286327421738842299318043642131040619945626759169058377626679670958052888885792926531900418063610567022515335701096773477555161291840668022138495228293695670882721320479184728094294203058881287471618645581150013130211710959533368427111565857443280866494577082668678434830610393242937737661900551499390500327878676620031399937613879197354248791960574873269886280452413915695720436634446462169455057057034027802591066938477792007928546863788428500081870881917176422381305965432458263885295823424884153498866983690329468470870155858519646545091274404926423784577495312411236619569427145494668353109471191754525708793165603666974725148830789591764528251932822147086813558917357033242584738325812441125910103017116535825159473298491897165363032592801820870333960995499165286831346756187908035112498428393520118987499128167340160925108219292144817879949489892901546153230170090664023250932404453902242254651748862274363458831771756435534453778297983631710638119492604036867911800010033418654146160646442335148078188441927091918868980333929590564792588862409136586591940649398145828482041391660726072359323243552671048503971408302835283288444366832525372498746581021645806054792230722461771180808670246738515873495979587711441562840921946955930443285327998883977481253411366327709235083801467139037011282924187481136767890386342342077091770141532858626707459357284215965403486155711651971925721538081379867307644028350834406887600319798374497527594453529363895281757150917703251011651947480380122038537461112425512752458550789826236110696810438746115159329884014689472836359019649778982407660600831320227359751419477336554717161352158653728828177346203076725160314991768833017954451111482690996259998103514614424076494529193315348359906758273737483304093123502762752197945470930111690562878291312531370655822751034150855914039213597832947147511165709162324500777839665052113527476669469391351943459339324610280787107321086910212011119647194134865603412523098340034797446057432863347565651361625295731575044668215199451722354778536933675076589090557763943536467548424190118691373714411514202602889174742949786745173806663709960050100542097075467677859344698569680497072841520484907946060461610570700756309348415671588651948088882034155770370516391038664557935899304444471577770701336022498693392674850868954278088124184544839453171504859034996707931062605005535423045212819917880507949934284537737005704730905436529513617252878595955098413569548364025582348566905941594943881416287377989568327124172063296981126581976473405057991954424081099481894471389109096964122203574284053649761360778458415782939594918222734172297679350477135579242742582160783597002103191317100821286557755825649798430662577273130998340144006471688730678884594213101102684031024346570507992160516037594234095127288579119275275771225685208010484137666670742202114141076340015711850399921820451838996873362590378078651474138566555588362724859973688323743981126642625519857047301336942733247267706531203401563010899158944522322190744607861346967496131796367685619986786961923937319414952928027644868810610064574083980744209343871106632557709887906654632224917925586307804166314085672065924803809460001339294241858564040262695225403221273186426277924979830394097930952610537925449556436799779110367239670675777258937243131994938554932029458640372001660852511988111105645269837786836193576883477261408201190104900887823006106148318359686053592254639411755157956038055931364987425258707116045691019878570096172601028746989349072430964901810466769831486810980255434918522788469212158863543113690220781117851311739477735449629168786631546949135501600718816887605637146695217339175784617885555871324313717954117337431847198580788060731721581496774280528211338857259797877832467921020312588075826817594125135177969928567974518052611629462711343245483752474617961610235064300021933550278434949109933219371835146839619350888671893041910321604464536340163717951036491633034230135271983019399717119532570597925332258355400716686471697806144496764042085881451599959092084014186213312687593789051391135455024190399444360057223050079970349499870596914976403155386856521467546256034535111508319368664674985134403865645686901936965557389320531894677309766726611108725220269992818437939675556788204322497081973614069729706261669293319678584820928041272084541515985958568071411582677877489759659013171375726127453377027379000654655670901713612460066182800313805203064755630223078698880306709172558435403743237318772164050732253347364289580613660111373453606980584342175036418428495689079519703849412927152254120553457311128381031247899890414557497607575976676127717948571787016925372007607735113052856295864621205008952435470763967075275588837883204328271270622452741344261025120561592361655060566020717179951908656088904320543462309315436316235160445423200134142626952340951573793084504573643409850774060928759231593060359840527472747220812432186351482392260083723442814739542182961908933199789750933401791721771840014681310486938497191407080000776870452224270570688051113027045719206329229367792809737695786152268394861883564692519077595767792633823930545536784153019688876697561569560082455997235446479951477114030373910272855883182623811547976560079617803158288533528403078011119161786387598823295145345602024143120571963517178392002404945635113760020318997087379848690679393306426026796225761162504211902100331418456070463023492953421275486536043891762025345084172761637812859409145677708780156324231972900735439747507214160243455290756937561332677222254946859088829495499200137814127132071511966886359007161732172604345198392471457743435000823465259521997198732373015476764465803846835823459352612370946691619688310549365656389496706981264365708605728156003796985768101646076239558025777957330457387126835708696530188883840967096053057092255714709353581691162299417279458957272906021655633449562891203128278230908465997156207342670356780394230731474128007980613101601728177202288196427981076957795448378743499215358978121940093175635451543975520637538112474934651954725020472621001315488620613766455564552261205104734106922718560588506797938819068499617325203952383578597792680436654455181735488913784219767510657485143556754070560597784553356347864237532751874988437929695132745689909554581328279954369797766034867760372470250502922354206417815487054119582471366131396769141521979207452962026160335243022843257443686160567777127029457947448563502866672755371806641451102300176258969752629168953406279400066649415646306193749468757874496488056156845844042386794356735528114737231913034613079446519191586924164795105453789028340688723062581348326738156632014935619404705505739662170616834687583405382282658236804937247009859678130236262356022202095449543088041820588180497921919557968266438398761342247257054075722294231117897921993622427727760176902792716223173254071094915728717074409335070494802778081579435683343068379117252283208227867851734707253164063902410210232171647858211568346730811656913460955079754481243160637934912157256537850388222550198066753557578633085091555947142648591030236117620684530390118996119106279975106747054395929011438198182305441431177473883513451244915836487332805899786754702765081676172469510301686823764211539872850295149044968159609052920125776703890163472230283211483644281440549791333181976687520787344907800874380889098027369179394123016567514021826999939800548295399869670065771036901925192982655983775166393369871118721041849530662865449077290292680597201539444409791250168023226600395712294865517072904623863351535129411876528024488875227176330803639476776322573448294702791929943975912960027420345148331778326156173248953870242453440728297726797254705130211714627336298661670487357764296946465466593666485091343401487020924104388975547270348405611400453293466659369972101938622562208709518823639118849978485677894999457783458610339307492904558748328448459145415756853846603435623932556727828657001652694741274344445311399392394350242637778484969595577549667351520315445434477818775369899464884705570308776568538058446728323668012618204319337182848873165737903437103545665529676599342458304783675845957239146990944664971245392285528353181842812377658014812036303347038950558483789325619477532652288781198715524570017224006599902198385802563792157263793946321939990787703221886150768031143440263203278773138080964241157788417940350366274469034632901195731272486299336051673418558674441746001535350852346786138785739396734551099428158324095676289758267173174358534338331976509001309802786999799869699154165085707713892303342647372133574802671002348604798219073765603459520006187598663163395248395866925966499476878000504483673086923329068467118207510083445510700122215537559470795205636983374711053467429047991214865487769762934402277218009488528285286351912517233988140426420093119468729187896414530561201402842959857236236198481532215905797627542005151098402334881104930998752679254754789271274756520493565841612508094467321007127412907718489954374341634265098316210843692325227100071025191010349278271223324969240696806203030341558071572422501051376298389199636448532583364731013257494999537001528929461278206468764693219924699371721435656659350571003514150137844445203955481848697967469474537121698029413211286372354466900330990227050851840070687035559804527861865013943668294915487606342053186526698741105635630442413235228865973887091423407555922551732653576267715548302334624901917897863575726369547150214363462611439613781305150084217647805539469876623407692898368567729611524245058453146718717744847090613239982827867610099802375698658615681120771113242363922874555965896745339320105054572416659448379932344608013442582591630151346377637832536086937971247632872490410028195844327170015487105423651096555084039940172207491223321653618604339158428024857468997415654939846842124499170730120812187905673719806244453826103677380658711921475255498330989706692794144869802289844270880607801749209530728070556962574851664970298812674586168836835370794158814454956770527258629414301818577487408817626342334426966008300344575165715066431066283192850141808832504123977131071002314949248323273180416916278364189810207922470781722359380478544816487945880318836686527225547395285094779237839533105934190464183036276354977857681387694146190309342870682261567622530546914258886353550906039679568608324195867395820833477800224552848694441947604534365149616831051007090447182745063665230338294349073458139260589128851213774342118764553024115758034003483481207520755569070540236273887821695314391588682097302270303960189004091597393342253296744771430675348857157292084163522932909782185161801713642706646054711915520278694502851396364861501400653551481175153180867384151064344162103686390981870722103754474136460266587058547811443093817010599048990869813126984190756694832679431444069540849341509804117978773732672890629359919751572002177244142972255418793699974534428164162938246221306187373738647753829815080511685605322299742816046506307546246740105596991952131876448437451873938289042474629958174102994056830775834918904502439586777438659777225167764906788734186109364788346236813532456357241496430138970114154162268278780081021693200507569035854286406578111907787405244351234846019236599841838214768038637320393983679324200524592334698454476251785187797812210639650188859506050363178038061729218736935796291165292083156343062544910913536252926428194526406533483950298173130407572456233797356502037960602316388530808310373025675458936891527889995047791244525541513567471046010487772432238906191398944064155235617255344929180008580994893043851261771273568560430158519784151458704047400391869063968685592080116741479843892217797284391733264160426013252780732243099568365319672801797599467207201079754416955253403569796345300462909567287594148859799941119558615961327548941601409666017069411886835776642573198215176266917312222146010072903882172179940632948834781171881036891464063195065160989317881269187493028628624898137102533806376783173443183169986350233596304449407475542516304426020009568492361612235361894685961124872705789398479285210778085988444984192156487126419970749498954897228307411808100897490662308376312133703704372824389658645477808009581368456624039915371463905706240778330858812406947968705320002458612340881580505652724140807704527804194871035561634166677153735381911148592313908379670715981950243388048925591187103734464470595286996165744203743311293951322551901588885811526338305925391043589273259900356188711891745482305796286907263324875778698092176763792077100448399141628108194940662621998648092649496449618015365311918820007619031773463566111950235090585360530840562293340197631492435718426617102681596277509558251039156802758304862215879148050437353363807711552254683330900239505181194871271192593975955101789320820669196841440714711343015282487765456975218181059117192547132265358217670745302711746236134809764652925163696523287617696627233618301306485502120235151507918149608933570442855027153170057650542560693076583090148456814615441964736570194394401766008836871520105672204848077868798410560472770224938060356846223715921638296474962738704131576837496586057020282029221963546010103988037973513810349594339098066111814663509342368676621473343802031910744074845857820154629089961819947005136034715722334220803672372542547818411361478183770568940632642000678005800484907498288951686226605469674226867502996486155764248333063798924312788045951286729627585924935403093352843286780898706378507508779682654933522847550680179892645096522221970597400592677577017396565085887061294859555733395024300734227497760601846954211472451289927483254959369461484872927422841267855895413353282240280346834339826169748311062253559969795524029506225069401968173450521694612782295307745062036054885746711681368241779877331183772835154257353902641188138746262129971145423204109019368112576804042046893289694071649646549494545115214169912027817901633258043687785645059917047042925332288044082211414418246505942018171532507868262320411206598658076355078406146388719610615472515249728424433727184969167479326866016756541940506580760546223695225864109318786212816533327784478683639143432468576657546806004201209044106544383085499165759492007282237874751632711444005850633582286624364104246240771857168862104941618654945931332944364627928684576967034169168145146728009109675220256986539863829383874584218619820616344251084469667479990541735860750918120462424529170057928051748043922996205451930581687465188881668480236343745527054110446707155693506999747802963411341262867095975995686612514211417042473062548120173737836227329255769199518373717700570790458498570918484530404423085962636366461860872602998169294190465405879572182401064536149234843100689161338857268645366354487398246422322794135860048206432918052260469943516454729124958354923958813076940348729765197167350593101355703309775565523850087048334148460473920962149181687123823511806302259061447015732654819995529839944457847956759657562173140194625474348999166602451658617203373092779779321158167184578305620506211669709573503872900370966424514784734691377484026241799517117689683899794003401238285057349855485273652556407787792633947531341928243531187747512172711103687472370607732734908575915080104033055071913583083576473701504293078878083412494600965860083522840270870870688562991560142709271292310937045312117761443700837029713253039866604745719688440761825896461649363791832801046128521960703465349918419037667103839837054319152183243448737526685052221807707714441204630092562166875041423811116866604732912610118365501090581651974736507003228546048824058094370860212764713659079617457332768914302646781704537230439585653917495564123550855037989577199454002123410773577185265502878095850597812653801010984212095538236817808596355040821493021531710710386849274683224268392496279273073829801966159795629862725250830051333448827630900481508668191316559698234403337608761453444735263190593488590186086917559706715025370697193740428863046116925224255223755857570493019672697355521162828217729424338885916006721017230500306048726504641838196941792900705952712874921207126891563480579443883828840472398565969428075844212351289313465755350568769114860108547799902819046247365826549790593054485481025676122250799536344932082141974000842964898164326975137324245818714013304996225051290313373064239787675156919243690656977648892633101029661919664319281456056542419850984563587472273576038832246331719339328315667231341123814727863822225313139550955236009749718425016028921958374948075936262944170833284602088844236596751684392794436158067373517550875463431894939165326043210741387240020257235820857287563077177718242945955486347472210461636754611184794840646450236361056664788923424157711504240265803359738208951397994338081447030920630727387045134501533340017270325578382487964667666431212486044056904097525369442160944700185306778460509050419828454010155075125740339349916146357941178075267446452539973429116773268997673059274820551016675848695136329989060886863290432384464151603117856081451160762433480620737222217646797783094937400228073917187137055878972261029578924710552706426301975288813979782014399611927438984855591674710198514169842260226937066437364596685999828818029831476073828786027352297873887396567637134057690353711869954232767419003108064951813828992840730829870026610621953040680339705003254616221872083082555109606468370564153997255864904138475308388333706688156458106042509137244259476849556326958363159583603914319181426120745864918605443810146488378920086164912653561757621361555735524235728609618804135257258491202425879569175917154019963909051750044447114668194623732923896044025833696966680348469816489237189567470717445730213123299268922031343936633323584662673943141745530018709020414271846321543564665340390221239765423449178653378510628937344549575196781635784068522376068180401134782729924840844276854758857008082076484578811830453148292883344445640678984380655292274081042289150842835606319953169930411386846103089743542425091497891030222332860611906064491072514485310781658797822878721128559129694985025003756360947867953088850689928865843897457902751783716467397139178061145882514916533408270598564877982532707457975832082478999131749333847491188436623680232954029242138767265757690242783607544075793696726872033886493832525721953310084302499415066058857982356056912515155022787026393576486552409143808402878077623147730819288663809973799292378819665184292596344949441457064822168742498967684654748141023643635454756556256647007009933919047455813439395920559913476753120616866675570452352293587867416594814834784807754386011451005462279975901988965746376100863649809852649509078431769991764286682057171508972872095771523170782597212590278399570207532006077429305788748319689537851379447428732100596385050505702822574767840349806990076443070834828066463442149892408057553155870780465173689574495168986683020063570957791203221920099691325025992872349461156799499182799004871346716247603243964792610091462345542044999941000484098975775747892452851946842402789882796988231955885154172208974433012815521185671673930098713639108551918356278163554025612240767403873261686383113570760755048573885056660474217427933469845374155944667478166385038782060401939808990462317094793218391664612963668261200706677344130355437348527036102693390783332251799898081755682218901863421007671347127405451386191076716427812842827184201010566361346700199075212579261600872019518750250739480920496694290840877075079456118737798295998598608065219622189026586969132549669135712363258981815908493014428994516621707843694338684735286629152526759830699552374560819098114899020322741435589581381791151680582747906588194224120121256721293791562206214644688753441562004596225298870624063633984008699456514444585249404583822860863066107118502207718381667222058450376913863136512497971143996903932132117430880323724960281569595454681410839996327060261912212468779529885577972250412362275689823244854495816428674452725161805729497268263400826162340354484861484861862578300753954968051462772726459221199617025154055298025520725663098171529385592550196677289226233519473751823253262675774767822588072382230990374067607548930081336256646960808239314227443304349822958181189307440089204663928731200439536923939361850177359943998426607604197745040996575183504210540520340182743149723072330228903876511148488570070861663588000210426641913199730302874040321493056649654156433152876653338532391432609531300657654372167357816024479561183766878771773877569462676404547246400026677759972102739736841467862351697742348682260500893891981301745319991543979983145494391845034592891876976521673741179268710894509524683717174504169581327349610418953442768290015037711622869997660269497576243307988659246995945958911729855202481919578489357034749909397224381397342859089435411867989366285578220596046485779332848939870852260902667788990688400458457108993454860186803418049710482495011878655042698683924067569991643238319069452501668554280733569482871387113761180962211554564629830707546757494117342770028741350766438508987562931353285666840438813069256614175856049001054407367000467078643386309873485372620194192239257034520778994726279658428963949524587616683959783448792931420974640356257073844550485592700923202958350123457277683623980383019205588883744700557083606111424108128246079161121932097294208501204279100473908830158669399639332063547605552104403853388742127117701669683773839718463637561954240188825114159025777472976028479657594655453914020801296002888578981929097113298789073519725215774274225943147742363172039163210648084939992035343715294544777784551480509557326669473592902665945097823248363433112305695129711831655212246097347000239120210343357154667455295347658929146812430514849511901982147108934196728458906714750510777362111979847233409561902031287755552128065598855153304352119454173393863597954877925651483399804127177416351379514803741102433579491526797126937313057055112621904871282151563652337011371407867312703226256548957612372772115129769180544194311121994219263271210481261083445256519202291898246152613737383495408108719551977426263992912461351744431729345874559700979743418074793137014492166301568616067567415360959496538001928378188491805116318179324770975752240028088728118564884588995736753783916221699315749819837419117830109497108475031819624032311971938337204909240626940877027626433506751768228917479057692861905318321351944611183161433210200991841349302238991896386316241037383276414062513507225446915602931044017365391767194702493645357003734007496531192306752714890674524980760043082372464401685049065649804136621085987956178235286730423788161596773645618274852944093888867381646614626302209125449121573785086430539753995743767982588140492350738192298124270831086460565740109395369062168053545163385168929541171039161153576735073358088942850426988995886731348161870282764247397475323195657262050855584419786935660161140099114590360578438884382550971349490826766257064459700670065332933309416718604394525835464224482497753169916557803171415583914455887739836504256828285414122081018861481955150149279018546435032515924191883806290492428887143928958650900050612462799726021371463422784749440199216060704523451652954260694459522094105013797752784753144997842532326186643782350502035163998274499044655983996394274351520453786217511121134219321512999055280216338469932335490469759421905579190923729325596369271574574672053435918363644659177622299007155088880028777899748258002824543923966876850936096353844763538662240773840266516281030315021920463629075173327535074225710046785676436833047710216736346676092507503958110506596670473309916669103230517736417751314619896402246359580408945479017261460920506152845652831745170477131800312910189857770251737951159452232036210623643182654923520019408935673161847155234842026976822664221870741323899327307666753862962015753639220950044633960196143275683495480056083103107741410932511870447992518216078258696112580345616766896850649689107310936088821373008707821226286057840173325725566648499940067859963046682800986670611890440820382431968947775795135828294792847845672650136977956102797254591485589617740181963995223688585325745823774608859546585000930427453649877458488376363239815990949886648722812612998195243596657050607906979716728974871685651176718892578468533194216635546015434342360124824312888854301048263448773969225685993468509940936325140061360179204101801338708297914369637917610162626676463231040761149015279492456196467699773040715060752220007493084520609812076381082341147897930666911146385213120947905024803859300751659316677194444121291232981950047331699397262274605145138966836212296689902847095557582490299246409586522402783234998069226626463151500982023780888872727808705122370298797329156404172797065683455673818022630680639621196542283776691335605580143754395289287943294900892094247538124825965085197722798007807047684582718480411586091960771001255782927592045984120566006522165593537760804892427568021465207372696682756975608166926593973657788689159839895124725666971340025354960635634637647687538153091936701902767642345787532466601176728686668205318435078985917060153766191189425854276861255226446841406593942276652252066700198949086638795755024715458202355283711445027173566343080714435661135715273334336611221157285418799433108805679694618051977642752817050553148293430204610592225802849381188702005370983377503601864282994442141465806671100168509514301153799549491095417125253702269604473681235242578186904731114459812203530414046160347287774540229953769663778150386126042497672017356999319688076999982380584398442183410042912594160698116026896310304804554154119800881897909178559055754331287861575523051782831668679995644735866912373680010105886451567751892153914563240993999320193359691232643734102423441859093549029022644703015718252921351243891524004654213561678872328243915468694066257450245748515746762653812470006311183700698068793487686691668030528794213005265556086391268587948956572141906148868021661361966082739030945775649876744513238322996043636483873364960935572406269091052631122872693795511520684404401312802376483788523273286739324282373606140537588597049676229895110857048901900550896118070080271952051797216083292443682940207253790839915196559082999448458731441954478189294123481852031182350786782473504794389913266222297329243709824426402008064095557972283544261078030800871170716390351493276631861275276747817001433781534910372596419740187766747829521876438358077092086203270461417237304276925138715972038273467934097421093513281115692775647318925005465084747322776794113061036448846992693342599767658813983507249947386127924819378768969870099420886725230161740672453419401399645801369596987399231652498377479703604635702852245308070603868727635658201132121438029107247822278880455734710503559040107922300904427301062855695723649252787367609380541374367164319568587900267625186244414911447020225209572282849689623092407967841381095128095603719150983397039116395457627203925826802655016851638111492459171608977170662628048351919248760285690835554620982701142306606363058305425379670524033170556839254305326140650503383969826873636479835096771475636037096811556003279846193455021863782104577061172782012126741432706397408634535988870954546183149247992150789770397612912531503191153372995867891235354554579486538180868543772464544410085499562141676729376021829256249591624114576781918389800113197681148361420783099080495755809487203647674506598920814891155484670452361027191291520546960994932154121412823725207909600123697977433016790341656100495832617864384420230016247368080486659667771338791592252650531509022904943914301812423932816963731850511090919433278412105206311688044136091081196331599400770378406415861849247841329314775363130482458867349992445187690546177955417250149338274958627936326777715616953835584187841859225479364862206065043063200800853377640026901374748530963852208992199161728866435732788315048352867061958581801223720540278552740400578036529199736116449188690944444728075999625436699680037424341602224338589376617728793040417070260601616877591027739757303268579801037167270297106153292064194197556460761781030748437961179101002715640023841234158462658264527902143701720492870102783619275417996690385755831741144676874802532024958503978831016821475395009812106480440578297411593169608366698229780633438134567688975641556089993684874769129220049098297509753538421688587572163640362258861564612951680872057139744668355419686012155601651316479740214422314143754152647917341800422880514365606103202162958776333076064770628936590132532481080935028872118721469457011442543608673040014559020086533435033327633009630969761583929437652854900879666513795675670157850122024113760694377169755125530699336611136539117070126120519264709111042916887044888037840366774206095714397254840329243822339576985094242696033065238022155306792408886548174663302380402635964629509374925431447094698954447149672702467418807783451328533003682764313479832874125140355209537847125587043563973237752800595933432064023470937594497753583695341514500032403706355771855504847597979026860385269807671480696245796917660514031595994500430007008185856656263362310808319201023032962016328512640517476683770302919993198648777585373009159711631870712897975942374367778170288542330827359691532696653029166494881488812494696495222018072781932738268075155366538804363615412891855344094057942089546025716381602652303466397697819403275198714772243286701369767132990609554507417424025723479939181818333385473663979197537891997540967942448475936960097611717118891597810251403228852098103902397267080550949925052588638254796380760096792241034693854406770640496537176365094646189987002040852908814185967913850332100306333540508634144598261037855522395798534126985323850408307235958786234441027750124382209756066277112621146770082750791875635630300136963626819021645154086021299302321546579737009129349205627044089533253285281047067801294048076350810669355717130404154795193608654216389095716421993499378137512000245449572343948079474668410812503839080657462726515406052618801329708856471374637742301313974803199393570569404691500828049603962736488798850907334965957926050408119006294164737851206285573594138057856749562575732754150933599127627724392546945944457830597467996374295248247223511146254279974601968539337144211160655407823692473282347495069730908720349330958936418924750402707851564523585337337088623859019027136611252188229352396002074090066602936478240754859516812143602690370853181508230785138473795040665502256092670388881924459149364150546573743068837557986826708121892732717235479911237035948534242687160480456018832180226713132508011929389962724838301814665562653655777866192452747877281304504455540304713239851265693666169910421465217028916112591370271716927483016228964037565120107723352103664372645987045313985860074725195519909481587236147741839236185182464274004587112551163078129056915020720863263446313721383506286260314884985470078533787145704985255338835770575576260468251307039561534657260797495485047614653422652108923197895550691732316887121847987898790197112120080039338345183519630375857704895238700914692239573302481217963115727568441779806561484816003358167719565249447018332884537307762693569118241413419682084217466607688193436388546383204066693080334304052600406686244610315795381085208956541781020424343901573181630373355087159558604681067807191525889706904419427139257351880380862880283623345610818897636064013858852764551256048154265066292969339407986837900643422818433213299004976765768771212618709312283330988178712453361874059749220494880406297355172786920901207232145993473049412840014007801775448497966336246235740817140036504816480815336888705885945782547558885103680119423553903787915688346919482059070790089893227944069846032997362043836817047263213205779874328738857438910746626648210952881208353975904620962646378673924078705095893634821109733447751701195541015399312430829175273193881595440459062863276348351748900703616053938701174931965000722417710401178211266243819523783351916491121416308967856561556089742493076433699476974544252508435592515223455304071640119278921373391954600863465979038463453234555456639075482557184125815690560584811684229961692363929407049615377313229531419919171610603680376159775635019183616187311050306248106321451752079321877904853427150938445696543545012386344178018849540305412247620119015151557979097395575192078810325949244975254243341105228220657234260772871188652585923334493030173946726898910750903582316154810572996032065164156208409541820880239133693184971025802258517035101342149398783515776892489117795250430140830930241431023930039190661700242549493940894696905914466457333390297127568000539716793098477731630411646448186205951367781049304725854440344781658867919167763619320024386376067829310297374761308409078303437378665896665950795762640368189850950630606433908413856785023142012289586949530363970233531717646706113489101998591529058315916595936710282745952313934935138382083752059137497932754997023197372660839994815040800197569634620890865391708035265622674769613584086333702945929488965022814352592459001866114888975627267666090646057967095802371283996944641168041195251539147253205590958451966161495994734973864009430650128979982697924408716089281090757874495126905225234984567291929170070279878634866047595631293338608595999563490378911026218750578260869811762553141959875703351969663781984467494809115538091659185348515895096782349471226332799416835241536299230905884474944818068299946732369889002801887849718199062494791019779929703841181289096328275481381005980149235442270997578479408928761394849923684073600249967395774500220750251775155907435169387275122456429666530814111914877735037762949423569279497532667628072490011054917182505442647252194627771099883186117781686723877009638686074086217769422454865379351275376917883638603655063587557430787094170281427605229586650012999739306482888593327195131389133721486474649035317920855251626082559515893431676257778061977835295477287283254806372757538781566554864224150282582548032605489609477440982805970246362362629906275025950088583853479205928517733331400115513567348382755621614795313859714332441242044289013597759281433499265036048604304218693710526790937115731500002452742333914845654932516468724996048649967077231413161205303691650178523436820626412073709995706741674847174888897278732522853150137885081677581599728610858573091877302166149803486963604240564728168999234529462717717207992499029421978333655527807405485070668557479461095099648188372603637567156408382380645789630798704722329664308091607967360451506435192014277393512717955567679682162639646817510059407079713905182547411745729024836504987103663612668747294980754044360362232001842570460012258467538558404623642320375547527894796848838065038449172005287755506266034042356846332578384917055840398111192730223492136753202017105108039223443137288949985502949993058488606728294518361861404724276901164677822456737031928091152733477831572791997615189357229034602346683025833776406580909446231297627970118639330859795055596510368569684443817134194988751273028965932170559209883854463160245217164304817116916334467959465469339783792891891324668259176900652942825726521715187891371614325178871649509368630786976058554670302325909020842278095910323931766600960442237649611794797075384596308327915492257735483094523099902767258846765986723183739961985626611756805582962047256325725343955589241024704934019419369493253027143325556088579149633939388747813686351440033157320440827574773882616947276828865603159053177038714637926449568078874489739063435955046568421989558876635457170529972085742667165605400885476007943987196017770031920815089663847015908256265203539027834466549138043873731513262673816154320641788885925688813222777481057848202928854390820038588076299416676715755897798523341865505437121241301889460372309467326729390552925325240549819484083393650178634925395419880232252568249423299720661825030750930409010201652179899541788339921900391881257903651229856550913137369147546023094744337441120363062994859362043643076057951666497255319093006065705709014592925065334579619608187900765699213882416082932864147515620085529870935893948385198726314434124989465314335176349152783737581516891570556657222512133569832514562562889219655909740256895525641967094862670638810417612128244750002460267766641383702083127459459267972561780291889554717156658035707003555732758425918885558520654506321023202457511831530113183121836388842338188160799573057962899325958690633644394769605138110413833635329324376645478810043319575379854260198062867649302996997316740699481785231181509598532053122135804964719551131939559192966690058530997497810516780264954580183729771590099000826763429886695296827116951062498311663071929906048687970580615370635873636968520003981429462995466704852797914145740168120112255622836302465746658528823157819930117524304931488281469645419854049814685721749225527197933602387388937493863237963465535782116188183180997764117235775726040467640956879736317129143179732941027035447336442137181586140730383032648988592649035135131828346221018745052264445387203298247574914105240569684582399836806482359518800537970370212629180222028594210611164951143441532071866506301688630734502236177176331279978657371635678929020956674663600315352550867807293581565927089621610465957647184291576118286448553404288465860436066263049964981343058682800038066412102021882330786504559155334514787965074153639735535753380733101669543939028412395108938184193990482305379619912572543272964502509057195517826570976596043730556313717259381779499407024053703771788996870867893498237637833640984538231136051676021114367445234340546427495846347521958255518160021258755937059323181201640398866011273237217419249207772274579988544972152419172636930212153892110899464966249459408684313910951932717136597272356293591827413134098706378787359290147250211144519533129224956902738900218415714894374242735491046680479011995369640608696360237043815812788982946573864371086061769733328478872144291066314220729494405816993332570676924635301092261851119859733145915042950700879602447721481832985595056029025385089284937365292835609125785227926381320796528779247814508998947957521364560286007517540279417172284706698143234126244300543311171769038356471712683666356373534994100422197065174192297846059697433616512223037706192823750342713681652374603674657041226352587613081867710820759243322391494006392227552722241124026168140561790329136967383704109555640513346116872874162873705000215467985023803249376585819199081363809474499253132328378223609790624094067532753555610046592121907027478388765567599422195373332537410576582430889140840588796805950392223443999920931044259947983973442104378228085544814811370602176370445533497033808034879778408333931615074526897029716010017876465320097498294122433095855052916917303578399446277191523562933119771897718176520327603649087301304478840684689576193840956494483332464020377798637733398376526062638140513194076760189645550864529365511586888856731385102361780993511040863479162482619988664082654085323407818271800115180900006670092773826801003308570675789776185633005106564197958410719454668563047849593517720256184693894602876129643028171636701751902902602138983816745015958866552294008390195320264453937651725436965311383447765643405907687202902819339799423125656766160586951312554130146568291400289311307419709858716843730509529756740269866555842861903832104416721280256792400914847456914565128778612179032813780016187153476048062565753171032478828938236200786283012691935913380674560975858620697128288024733564489674061306489570934887133501347089086981230822197986716094658900633944133911809196082205582612702952150742409530809503318709317017000738091939448809452789536678676653277887050237039765649398841840762883277305627802078820307539383615492490513125531094783458336735352749622991858765128457472718079314517171094703312041203462481680809226005354766166926425930025421626247828647772014123318995717312670737899838770585499446748331263202023554079827174303296108185798139497421674349195711318657953996161583415733946823659680095681318519588810908087283812541691446969609259138309051274298280632258170327693680152970501468639591229240740545653551389753892388017343923403854092965596870700834003054363204014933851467268488647957684961666077681943251641055227036594692752527508250111280293047945384175199362182997010313792232635669038657528110402222218912591745754817589253461235521071188472067063305483084762035461469588439808671141934114768418426502388342788757406987148007016279819011158037913526273183197057526108170079731965746578419515037942952022345290604354744442069513142919458065626841215396125217094549570889040824700539608369203714092352511099124941715017979555742711467953260489385572587526712596826909889147204467933365136179120025998710793451598749082957652156015056683221714725381128936556461387152222900535220773898927231694321426978817416411877623230316192541389762960518854272446720436305294517058993873988566573913420553582941861986430108579795435024915266967376703788884569435992413478695039351031382674480569725468168845562921436883707749249580707754407331945290333539375163321863009098733722302100120978669602735914334193633445929122820700204172232073686856606254619742744536309061374359893514492754707867701866037787177742179762546181046782536616767650804415695542181009924878314101822752758078910500561633424477181531492098002359694915892734463525803809665587685763215360705154879141528506627394099375003202057367415016524541749919963071550816651981530974358625222035200170364216025883076032558723919259541997254735983210594420113106578378719908530528166925581599583863077917143254177282271798678387087946044096400226631793699154897933247115403809193839390089484108425207082806825869744232192774573544410477392418964898017646520028567305009098967093597619020951126820325650167830240534525741160934520817627696894497329530630547619354220881769207449941906493748663893081387220600529660867768309570354090551239439512711041175530466016811439688419307692522366143711074643338843997268252921745871159903453459343326037040774158913014213477762739663243021853940141385748764590402899693463463861455085984866820616569998204784646584389653491826297286707422703301932199022598512400610297345248882705292342139911305419682912994550355854449816606049097007915167342981963088630282986289846008044007406834203438633842629945251778274019265632030081161473907593447040798612496313463548941390907759581750958878572824683096749325469072377958316945503652317612798527657341082852150682089883644479911669898720521450508813411840747620797505390970960625477479217498284839891984324452290091972337132167237531121254729323866433552254633112903833483907473800987519869042458181500916074846740755496428894148861423901600834407784872555252379502814168039847299414437036119908955066158557881736424963971413251668257187000476808689562933671322765678124436735080935727148248498519005372270950973870645991990627357178976878635435077028145996772585687922502231516756597006561280505325418679506026629861858735373112728078360125075009128256041550800782871658081957938678506460879151709424676136694865341166909316873460484977410476809940412145292359440313958781376995264945649607837128084678853138369130233768960882365848656273530243780006413430771756895407035943877231360637844522774527509941157841788932261501230731829294417830058898129875060626926100175424397380108407063418335752894932988653105288137020205034929469083155756714726723655980422395713034952374969597357815418037374862639763443017043326287767237970487021233395386927972547795392081291104310023355492518231106803476975829227712861596976524340774435153065066437399928503547866595238204359377818712449015870008629518663702558937851311657805630524445839705755699006338794011279956582155189229997770268456895390481897025338520550353746633695365629580642990372658450666739880006684277479133829706382976910266690019309476997845722273715893539969855639619333944646117710089790749446282652529643119444168575372532244501482809860419755760401386130504311280134997966625461754085150076784699679511924330857888014842648241208232412728258510218498415908760354173641608128285948605720457313751706541047528570836104575649378103380074062769962680748467188371641372395637471174187922384782978836673482354707231241415493199328140732888200593817835573090147762287112565979408947910732456627852596920268429104737590888079740198132159917433932811355511460475560996894644201897571644584314714896024538511292575204270591816046791450082750334509689603216559854009329107940693837378993213171996417072903615688940908486575888296074276899890540071514708207750523410984786932447039767111530486061150251836979256642036287222459082663480557885851922618103573270737491474842559405244021267660882375041588099381002834842349303013986352305177661959434920615377340730837417518415081589764753698210948362607156990396005150132330096901032346014855914644561880078887886869267586278658072458298846689526835656248746395341323321461685209112266803047340052561935822082912259939419522508853236078867245474232291771400831961841028291798558396074980805079649342460445563545159764059195543113387749221883587561499671437932054338907465758672317113217020929824420103887960403008176511172446592838975936430727423939695245898144142148308990509132210771851398663310523257236398128261115220715185929329332538053160222731112714532834342329292266863678192461412147766164470067619968736896683838241877825615462568195375847754094084712427730434086820110339620386845552197850440832102307854441192879175103733536102444981665565453948495435964446906726068602569516900861169610651879383160790603914682956451553075702901914884348829806899788992770605356865905604149401758991123844176051280763577116048030763376543480661657327325125200951495106240902081301412662945497143848348281314484259826387894629662068881205692923140735614570680752487876434676613009201633831368687598280756000320632802857996181763388897070659181010924030723552142157820953085645981813287365348203743727900389318407909394305123392811041918284847135348390066976304879345374811074957357176931671753375500973399537172004527062261450715604006295602745031357587597518945508395924957806773478991918156035554103872047719519653589631752772743635959540915461454289736254685831183752834940087421756904898347171870767656017149584460345753894795636925015904395484630936299596044942847816260135892424656788383265950907034772147451352059132654101206996904340512656458221553941527672368737502072798848401690322697191879931731055581139169136055433159638231950388991478612355779200650022509815291941109345880538144069219942816380973509122410506858466536232621499324213354783944129046831906330842654926506677043948888023611591935467974696373758573992594675318817895723921027842386065145558669568339044544161874166742215990650071466192589697335506520203353501040431073024238950303581150633369549122364093648165758673362800169559047490195230623124852292211859739489158171042322917449702406286841353795999312198787321076250707715463449287501801982141683674481574696973050453240829927134098476362158561602022685146337187675338101021415681755942984046954655377926106621014963844231004139826735062856692582646796951712071975160488091477503046500103117032393074247388082219781961782562739932102259751193409811420480771907311107361546596591361721676312668182611202458371681244748437284249582245081466883994896668512544493873840827065443564875143201063851179674162595282539827004604228660499188594581337344711566763605594255420927177386368327217907957678253384692642686325612988567712992847569624578308686056015879275328679698148671400754303205480766929292818274665829208074105890946194638853845496775688059424734080493909075066781456132987737355977735490196759535997320651009148611238365061741167116792758151384059896083241643150349192371925881786161907513514397298167081948545756012724241427883518098465342203824580152587697104315315739047162014749001703636466608705138241172199452950693799948683506120154578533023152947928557718979192860608408337872470397610576749470712206668836831047272410588826958779675452003190772348736185633793899114644754534758839739288693027088017299704635360846137184767680872894816940518959637489277971358325897050751822256171088346444676222324406878215543784667470093261428643735438171478089152703060881602892466016456734600132482127859545723987329015847739738719201117384649814071798525980140219671113325440435560882590453270709299555190799502732841859490891946524710081038309767326764786086833990917171270999448179705313219036717250476032607737857810901214456867868327926548899441535353340447591415384159804095856054834451801240862024200638945631076792846992471730972798343367691838408779864257856908429412715193168625485990679347456488483261673026087149057734408026532206616972768810174898728181156930275869190862183608210750364530359845512059433417402763403045399693581808944462919025963001303159773415474449698175426199905025428796094411376957867289672248978707564151405345296347067980022372847841013568948962594936916976713286803047313702548278987151769014418284691758582941221578699408776313302546428302399338899926801850675406795090311671123543921834777126315680841463915864646901184525639425755913929536168474966959494228438260076599572908915177954708298858282040393829330628891606394963245646781228570900683217860919558123135830440821119375050270346693260026911176364803389648738786156292434400792314291011708688895010508927211063159785962845413939680297560355229915570017160624536694232497377496365907616855321095144508806380231324671933255436710854792435621066169011172653831466322673496353294333166683236020183058962223818658137516587008100490107189007463773602684729345421163505883141306507485257088122762713688763241921071428110473415520026671885448779326539822791094022111951224854875224346318831374233967840036153289225226586010404325456993788823715294362190678033663514311047563016240995332267250170174394894608567759562816431574470377896711082350290916671339685012598873080958237231835893712293272933718133955964993546493605282571681589089650942761005548241203194915976394545901341745163272299245980888340476773725616567840660918138234456615945711965349885091636214102396969825815521797138098832716883053132324038525859859605945124930842588160975796519262017558885080940930761123332098552163798114669091614730354267164517299885915654142268970193947950518074421562766648727217561872378262556168771629034865504340645942086683485806951020266299612552328388233180073781414692083897423943570717078367539396974222713972048498894776228933550276058522256560496400405152696459878229213269889503778240493081117031130599194205777459767684554504120802769168945648005729336594668369867131122156389989620392272335613240603334669476513643700880498588790036064896513836422724745951799476739786434440444216657823283260374793624183224281025826672718617311745955693377818070857393116689318104797567533926430028164830318380480014191141812022581156198745973176200517727137418004674337825091505792491255850893701682036316097726269287387501567308364324130598271858803404491292825428663527735754362329640739308166497820413170688251770479166718079466568082022190401746042175560942535922348175898536804861232781089427605266223002009210437680808116379204657693766886074018309594912999349820652814765132669566459222500343482890268965352235753530291461025914491486741579037715940727848378691217756509706374562184275572874323012798836322159967795722071464233893252451077646581526783593515027466613753982401136338127349385841823620496814833207020489751662012716221441010561482325263477168854535414290778981281666278265486274919352891601540530717052677516685299763044127829369478956760990890937185362457565159528017496062948110659783970836848561269235763370372765175413920626649917793714798886427319129543771680798656106049262925516627652772712297031275249876244829136051362020940249134101091612154428582863227794791471389590849999188678694149570381881924086041863844213218367026275061476293485479672105206839764473926327114378861202333494307133118959841250603525762841014628561883404115746882909889069782154893454125435472803085134492103975761223213999334933825816427394765874398478232404718142692308633265093854418076622859576035064611448412940847946969835991093256007446125131296191277566841093975685670030906968514143871978326163344646280964697329938959356104275460520200476414888498337895642920377039545896099699719163399786635619039421081155742354491832155335968057218297087483606777603703830401890672715793861384052058640024912000715318572989766925908539169972110102507997032248134084410723769828233457383007399945024941293903934831683488481511805333931144436114899205748076970230289413282007559189431509469675787009308944437616330200645447528258435324472558685815961372966955958159697902723741656346596509225052936753505681727869975449480825291483180538810359066586408522826365288905597542013234199694497694657494149967743382064575473744438083858731392645609350635626267844744369991787314563947959271334131077737696170175596914006002033628305845299020235767817358861496874858135880603854563213850185799627357738396052807692799580335653567249466221145764027591723971232435460014069516575848644302683492104121840567233840017063151623569858136025550016117436189750052464094977593634706929048038732269666326574709049424782104997512397683212919650636343101431069253718740948893995516319042189408142561476713024942557789560129121897149438784815065352369851236394353439765602758580929957140430306662069739009421590403957019526632186016174833124679323521778427104755508273928075899182021686119424065978851281461378679724953435197633523316449301211423730617423050673813626335857421590102511189231061933208175833627087630823008102437461382079468641071236885557954985963601670782498070595560440938247702825913908215589844370396769641504592441159084653055592260855310418402438093397136297092840443528176797730388213507784371705900765283910293793002562578567362349225123380843843257661985177485369409071799247101156405703975033840896016015570569805389321607805521191484854130068628080847737254130979921264701879583277002283658327914407110207252430788099453605677815044251950695589928508691260491639085775823934230965167397702219180267813006026238580998735649263021888315115099781744614538007482121876999715742640710176846243172992823312287279908919916087818863615438968139735546203007944374861955669733663216802211176290163912652893246841961589173988539910266399537843656962212875758968937647779021917718593331878416668123648159458949873551718620107615192933204461512308867989878613528751904638235506653381036033476215081810073088459604742410217624029011965106580483115809796000141617418113056707262668589880661608149144613353253218897927922744745084797736021592427506809467166874070298744330427343560710556171230267729165491101845434630010932942148731247861140924864569492804149590309435818021988392421571111374965387745455609247049188823961078289076647606423584953790577641567275080695185586280891147446919652446496847974787923817128974999246851954041964469401432513824305017289563537698715586604106190570080349588619367938548557348393525316969329953518606030791791594737644251947547829641986693166270099887752797095544786777353185039104358536972410060556693717867745673661888435129827028841291919193254845630335603403652050926805328552963905432062321417978030354796594316753216353981914047209695864954430932697547079799329513991071009689628113875735932888864131870076978684504526956713308235261382449607632948839695636003259588657032830863827310196160156938410930347947155852094589478338161205437490645059455128442544563255797032801795415224756258205008675071705347070270342632289606300262101459664894003108504339455464673654007292468482801346270440697213298352812963685187949223527308911918452649005693714271118525709859518483024152088846153768422331384950210370098142855840145455428334243874734515049968947126758915081352606545923406216908252963058477407464242210787577820836597361144056498786130981351623770602672759590731986629768813464101901302639676658009667971006518069310572231348409895550309713540471132495786062658007419470420712088242574799850883773441390112919451018222420306692165102141752482749990590608634778698598473462602547603239862809859981211060874656855518393342702541802583590196151023713756109440464746195815259380740823252654890271330516726823658112149619125800555472550499711008828721122583756312902144795476133895889638811107083645706238068081469876730883950756455688366050863215416868449008504326678324508216645747527469943933345413799523858981311252069495884103485858713588053565438211912138310731685367466391451755391944646449372973310041024096579776793202668034038081628053986587373826261676028998386255328651758349010159771496854778406362724190526207159381907408624132058815565829922540185712128035030641073329666173556963544704003530457341753208959809518284192754498896944355156360543298413197458607108075034801787270070929973853615433799591743535892187882041335918270819455541675530859663443893743474118868315759855206687397231511813913577483279633150001268784757291572890593750045991965324055786058793656585031555586417335918425235003434414832329815040685672582736884920736493772882575014580072836283648085923492736919359001775428298859911432977835080388813622286265117820529147388975540389636110929698303772732686831789260788099137500425157812609211715073200908483982332947788402531833633100090800395807723031420546388994599265163326013834211061156192014610133876873794442255978331252751620211692093604530520449086093910309554739863206253627183925682641724986205771317535780719578771357493506466718506227201193855462422007366017114776181511725706987340160617642388831137020824755986526415842198515802186162835111657779930591126409849409374527579082798150677118328735937521419571342724995082902213951725689210899859396137512224570980939126569154910462284057133905743579299340655757156528888011841940804350449783128246070553487582744278830551912157711248245226292437220272829531656907520388661955928690374042106959667387340294621599960299590647222664288729801161073742615830174336284527635994331445383940456246219257158964568057282459671706722543866633766726906084474836077985024236785281436220984505156185744332529021549725467337305369086564448225456943700525620224531532179629434723680608484161992001239786671279243278273080324190764452564858700016896964027942750988673559634197943236000028348205383943748779144195254892465826111920938295124761814426672009594738354756996073662553164369023658201368998365513890365027628762619943346560957132170757672727160496928604177882967864711918742656865675925791177792568992604764720108408901812222615138411306294992587532996067077501659829848363086627356666331946746688737906803951321285982825129278500774263483147357872602696467233538389804206064550820624891319275291655395829685098234946706737943074497224948427936745550310278131023983150532997353648691605271045098475137469343241639486922843592875787190869768251319732320934324704738246629115076579723234274778349268024410413891439247744104694388224676155972472899661720811106826843611127974381481773658904115828858575160305294798213423183911522790280947712228152854649088069537198469220778942087473552314899988934548336574439392740935867407530586447829781498868854571289754053318352643910819454086041920764597159222141367252335504216667351878051338260341236669564779406242045819110899645024126299284723341138522128576699526887934559534442683204457504654432734139476784927737905296596990180142497037076991724011016251067251450300370946263370415636218430007360619111831412226571667431487911955153683270436757283579192982055474265117926813980769220328526584590164864326269450789162508612114578460179676872798455929728082720654775335307932329175621537127656626692794712442100654734383842263308338839464490924891273510266830854288468551807180179996275477275624348858775075439420249513262687062064514281956348530678868335902873360036688286832457426861854241468720547523556412989763100334302527393408064858646501724937519940646994559660525186083656193752501761251078364387222504258566576119697444191403171241472074606885552028979144877293359309498709868480827231101661685175430270713618462772836249698184901737136354378527575067943282353016087291728125325052451506121135240806323293439698476652306640171645408503785865401536767790996837611441249183409378239887874415586311082366741396763471701022467161169654479293520428985712490821708105640924398355123271794539692025025573668056918391808482752770832814704635750673878127405339634055559393465146105347291474700443996060336576962114390617014935483438825313231036181721648851464533464529858413316760327656518926404687370300233588742123055652772023399767983633954742106518729236005006733448426360336885511733256229936972592003492730350679026965723284731277272066493535045723252443864638036522537009406450063462148532414085687241374320739889208029156147730450723651786015804776782806978169409060822232481331478986437802395689061315751939070888801372717229769415910384423321054236925668363863241813189548695254862184615028606855097847840728703154030483701979261575404696894728319500403259286269877881136173816333316969499121073095980182103115601157295516932750955412124571680381578231836472838839441919886247957305303895407868737319985267912665376950711514061125663980362332655416882547996441219732962282980879219299218768262790781277123341894049277986768539631666608242306328666360156009034320208769967886638058576942289748971642933109025196123779743322895934657739115318905290990186145707853779784252443257656719438243103910062395133470728384599427196276860091544745585010726445223928442926418672386236872746903843231477778338778211098179965756020456613374104960960575174281411918955156899503478280402192331329677101978908664750670331482087898491875333428926941507870315887091867851389491717788877922617350212833747851754492466952312681968942612848517697416365509202204076006233799315333372594189246269112256779686107974475141622610371598460002440946756529432719810099399870903558601435763995749620263461381194160804772359200613053849374123655379223523774300232361819992973627665761449423878964143091182689905857160832560990373887751738021740738479477634429115476783630944794196458383572229491704375429786999319595155938413446397944777391563264598022146253741978359490775229150105967388362248592494698452298151539482004891519840407382144478771312947213442214613448584301039334298926508816438019772202701951014996671202454501178577045193158964144998480129192370909077406461770326090090294970021080856093595014011214133137905679904353750845791205295125296347785251925613815295290410865118505919810327018701201706080136326052678782573824053361854425225771383838671000032350854150128625795709424624098881920600040428575239707867335079019780671935957651427069909602703805220204055746785936220554076116928497373794101510731983022030577485039171011634009596368877821205048426965727771890227858950092939486129414424275085119128225888843077789113778884943209204752901966587741866213282905901057359290267958068351473271620360331056512409106046243938001525644112957629120925479839415793314339125983828040197579955427505319498133863044957743113086016605406805521741241581826746695473391661607708591588125724923036467571066787778692848838089677064762527488062690868712934709729500574371920630119385889109382427970780745675434026939792520868163004093182041436063278187009390053860806290066566143371093285613104376704765642329106786188395358971677707565211710887432926448287309429486077906091632297487187778505554813599332088711160272466132136421105810162504793068609628609946836877846836860205985319313316814111742468513022053723231580863416342366256921403856194027347308475571577738788114713787921426425749501606150737528106314905313595121361301672782849976456310541048955234844161945785194331769666799439139652650287348094619571291696679368320207282646309012487797235218674190786790203876418887005490532185502019539869286092129284848930181849303695318800450432148176503110052254293894218548114558191605357537489759227539667595715572280643536064420839905022864628219074637824555142743727757368114129061184717571713377890536389216622363325144047089956740238686575578980522860943501555929758987355677607812471807399307101741502459721292019208947483311243525638256417622136122195106376721476823473026317676900727364836783721240553852161737222875444228852924746895716144689197291905723363333656463774322379939601555620489857446132466725437677008857032910260186539353054070859595692583177039792480517814552286059394120691566458095402058298997934572081478744110361545550759418801980791858075746897005302454862919501591402639863660109777471326635517544392464120232599878828672124876780079472440976923948321352998069678259912780270580621585391384093889001346992742724793960352998078832234261672044056142939985819530505559237388192285708535330369465721961716239270309326174903827172015926537899642698194618807433657895431413030403648041023953242388991098649534452156026189499652038553076711714059009027356516612900073116343824808209819028615693198259340108485235471503344485900177262080122248301665400347298220649747916313440066134397356765296895529225419572377322430380589137066168274911571678434532441525106006737880193864356567589822054275660388928301833161796742143167195192203658843207938507805942070629115009833473109333313052799147006814276072609513187783583128635946592806115303771221273194366328883321818317441656444387900352868688600944474944479010074657805128397894490423291986019020915253074786560680143565166122878041420517049986496424861191823175555518568222490090157280740347077505288366684347447823850312938446204637057140702994043982735570606247417886721699270477550443055655139569263093150026445761816595441092892477119272277317917950399308659119502501713887622801195965175000353877148567748942146297611029316485338578517349370721583697188880779914457111158675602373837449605809566586089627611113723667711797713789750608886229753167422827564728112857835815851662410143199165479658572937869383068336203360216602859257974327575990250160597783368130760221320553300847815141561935642381404992666979777147675193928877850500898619662617151089001694516432422215789448291366207818545206131601033085037438027143243574051458158730410561118481160732536348906443023027497758430936706679459867138055517715237018171639917027300855631207703626321016627977525453645745287244492859866951330309962045934380251725833814584073947227184518657472913566005747610001234608239680222313168661461532870551909450988330483333637496754654187371658728553295824946635267253898335629866200242234115747555560049357448988402538218251137535237508056325275137352012268582895017577420882795175460867092026003964679797231685224731007102180740458654375762052381268586316177611088422548981633464505736556084138926767055427190501416029693708640732973010019600509570919262821833544240838094878164533057920150168767183711878787401042859184416024146206034241081436351780142506237216872766203594793798223316074647325119741907324966257493186638060692153927271371748498113860124881469109740498018973007719689274774073435195476142307122160396547533024426675528073127552240320613020043501506275950475328380922039202975564800735320068897445204625614021071279444045903903814869116032025276725515927923395356076208349897519938115016353919146676791870592279111219289166460806520222188598900448747487612948343755404802782022258825440526737109419314945736533076015259957763051822600545072632491190172185867375912990525298425299991765402805225003595123890073676123040893360408206825185984015514215796862883816667165871833903858608443965385369346988364547365617434461748091579361611436993755675534203579302127218331816884952935756750204954816877559918152555598988860140290358321830863752409343392595969006525788125865866390352868260522225377678333616377301258714567864871780361050375431066914227947962566903598470842500161885991855208309847823757248356626636469960194154062902947114561753640282498229719160853715123756056339926461570874776120488634697818455070638426963311823317642616813586919451002727696033470563664817731440478857270555447850810635617271009965439568138696777954562651977651989627586120998378291494267102260952284617420790893122548330646868793805577590903292490967790346856270467287062196309189914799527004215273946750158371334226759328278568593449478317720614292902108999863861161460456752091711875529431836438764039504151984859738179152309734225259969455756242159357503487130769448954598608974729851303210524464969275800635168918539957122461233634271375098660703372536407170063795236108376928443746011975656284188072094632474419272635656487422680793549078386072025090146834079759778538003298452342664766779678790293392298947703567017926696735660310618371378276856233309824157561939134258501370245355930065281518033226106900056280664795105090058566784800850945159293604399515417537896039670946709736607800549745687206280936078642276451726813456620412681947081808635453572469425817217600303510438531055030463149055257175700743563845259867474070082118691176691514329839422691048042525372849152146829823408931503788267538879796138659383188345718293132325515739938143938733548327207588285005958376347555986602671398141177325908996288255000925752906867356245276337842495289026917748903750929426568010440038505791239007102241792602061173592442487820903919864017646371283262365843516989193253970417670890876767350521521868396300365720632195661041993977117417128058404390543730939186424739207811477232469934999753479741950621821341176483635092001985566025362904107735683688862244349894512481297365239608173565980121486838749244845527454592709855892738771005538764127395391957170404073520270233577830584770966699109103745298906625878643737866671840885598965710689202251120480755075625805261556908611059340242077803586417780831474746001278106837379898338791328969469919344007812644666773587208124797830056295266319176160425452470489102052996428390829287184663105728681288456031818932762490650948523024124303244393453613254628265623572075435237562665589945814090339632409567792003623422161419365142367108358698476834302308100240682852714273566743655609693356980606722262160326660212772327854981613171420719084188330136925250367524301444269520284229818394716844095992592102747318795467927654410967925084021581453419357248238173500557948969224450603319309093411961540800858117273279470386816265809294304441702775301198828277629008165449239232183012353653775307790856283830507307366944714718838509285549224108081561433512219211966913176110263329136306715216562636732831754286897820203341748553812932918180938273527079946654016437429691044479591871512810619210518841490943161671355420770436641140529359378707854088872747640804220558284592993717092522311723512218999946387065675481564381511749095921536898193403189135088400098718167060837017424698917615585369554261112171097846283783181923283536049230382151627007794863845852498469532030746033479555484407634473889251361379512826676737306588652526535269950651988939948994964784848540596989131438979111966697927335798638673966885323127969143306007096084047926367308677839373736730763882854879522407071631289518618147681231957540096140153958439661385254718531105249994647489376170386688572549535826974513760112706793779317552482348444423363038063509156605706531326659432391349875593655426925994872158355665808963210790620535813302283978532204557744240153389903990584092761404359456101035532303644787821411202185247004079775779819214583926939999619237630759987429975500613837214790291324810215045963357031478703873716100259464842491976069389083681291716850755508424699657172839452423157689681615961641031573358354886002380259145545223347015841281036598793348950122001360707964015384826727751950967065872232186645512149995661310420023447466571731932182133461121423712590884243043146595898627135961844328228005340092290131510655097505289015962137503584247341998728645369713748386095595837196340740670748314924117268606267048813709922464351413950254979324450619722951993367948924585175068685817369079963092401133494902828001248599859526243096035142160751219567104383077549782150183113891976368176707856259312762863277929517229468480433173122665007311306404117152084924091910742573724325619461894889205804198723643895194741120239640387136115754400978783894927639498850048828232731249116750092839762460459463698915287046641030723624959552960929684622013991178596268262065300672938603557016709236063567109290357369523410966225473143139843578087203524566919061045828932139908160594062082987969897164439791221288335531080195448079963312606808191553991347093303499454790297082084011003313038719591693265240644286272878416208485411529772690565509633855967098949289212457802514869751317407546125591380431123446417886329196243598545423709955838527432295625887063916813986884886110637949512096115266926641334731231438250195317738021347099854478603954210616092860590871897508927026427240170641505325939139490646224960718736130457481170681927973326320772808191135459224603942290749898287295080910085609391578536315649623052381215969613820347727908686153372978328616267200782586638272129633571626881997514737868635231042955493190663173382210393117737935813034403682515414954790855848828419433066924400779836899383915760487555431231272902178941724083958505631784657133523798600910079931597976829447092372736050947253710222571574214247011786121850596605857110753480176460230278546980564653645809337490734817230115284260957798775927899986574800754248126660803901604621341356236732292164142606906694334744318599422039081728706335740194822562317425451462734321938972916971401928323141663945199148230813666653148859581148690220293610993218707869357888471290455102567957962581162981359833060999748723719178733192428153266595768080839921320170568752337735663932616594448080685867232287036728036100876140351135471508026870419544069457776218727206972180465412929137853281607281466940926309251406514189373334084616562033857673956934389276448533540390722835620710266129847283341946612055994750109833654291786876750476719251736320718325499344280334566088753109035356748105689963596065329207670912697563347571874893839806411686458188682231466831332374836012166457214107982183049936732377207269554438847976753246489660381844285874930665866910957198993773702071577539036852461316333629679294059943820280276389249729978164177891949896153761425460049931781141861256390778804885909058751126435625919370222838204649674806258799151638658715263293531600814305716999984388662454745761837106533433681304009009782554455514832348067868997911148714627492504789335751344920589354827273935894791222319880448800550515453438878899896402089131732676710658390363180381639106938854120707158057270527185138116278164529741195776457642013128231782494498902587733239768432006029299972066016228892136322093541407552553652580538702967202838856992568606917005379759679121150442593419061524657361755179628054695097333510685902132553562179812527060988300413448338700055151748084915523727994330576776398749786066988843769503385939109954769714545621441974121424679941591730368422623974003282044761829788155327745807155696629224237228899725824135723315255296622614981849441937021559156573721085409830250883368781815232000944934350858265747320632178514205640347534379961932252225445772397156492588869716196175369244123051434925208417206483712645354130931043623667339567273892061005558626967096940020277491684125493184973625704895076600136265218135534257061899297679665050768114441246960339830173713079194467121406295883864148159967889364214597371568656681450956189526442873274526637056823431188079009023351107959957588371596437312005431847616735595227145700241636067456573814700743788624970787331721801678950429341579566562692104019414495931676811678138891956500723327403117695805937551053107262360703471752080122436518783853416529536877126305221030731876590057361832434801852743646582222531491880841173452934053919819161618551612972721790214748674165060903639570079635046594130601308279135460546909978182530897153171561354222024666668158716062393365905640014649488142179270441475802481047596175040632470385139755832139337041813495688313499389801467611875819481401301005529692677901779407580394752096485762402628234035765088371284543189264576608385088540584219555928372914072045604985691021396832455014027022191298497523327846325280745161072830715538437022246978787982615280373765260756360574124579659492809868647079796812851797581348742002203443054460873271706328997206714506314630714186255812475022361636028959949286394426458141587812170023963563202781682317373928244961154920282170421372258965334354135731414326589617863551607763967101909772914418983163780808856726600355620386860518698954127997717667582700704536177646076449196815058766830150389251276034386098745190820749292892114225934650996357874198925124705166729137631402065999613915881815974690714421255327694735580125603173174141371476225450252676767823719851495292057871805330149060551259820852686176068332905056972303894135416311257023430729106658170434998760778295991002424807947270903852697908483661248511180794817301952592849783784134272246612752133826451156760669498899000533749521494528462286833988057869011503883176788978388591109430691683867205452321702489174378696363598896053581590406278048597107868101508182571065003182205325442317278264441575760528200809157384681231420701240497849738516725539807920794560990781622589592476571717544265583336899853863691438213070538660727496822132020676831433574256449295081526895143108271512843025421584521066542555949670965134306064739081761688955239029010476932033711384874926296955579880589528491629552153510565148061954110435437244798184782135396285868268393825477595355944392985849176483526588450993167003422136173134187955959343840047067097859699307807698029193149521721956419837926412098787841180417323258647568816667956687691108654107701113544562220954978737286792660786514126944546964834014965178673121170563519705538284958145280657513790319492729546127101625112531232058591961403253904566657178327177998965339036195997319420439716162801150147031041190723022620313562500752784092380189171259066637569848680930325219053505777178820467378915738216744702815911424987973657560439682051878661717206267252269715875929061972154026830069476934658301628073419278626947130278396598128625679307078479167158394537897610162739761038609114432545832250154835536399931585385635844579892358027829113931922626451234651137513492171910040158920994039535441361172839224990203853795053890033833379796096545564015825590951698024320816596605599234297436891123565299774415774809575551698193563604846256503253520960919750412524742839722298713437793717234752486421422153800403655605679605802330511681057625742959753952474984701884690103265733301695249831323944083113240172780642221268050474417160477201490722675597417936923530309040895190020916591455056394859437347155717076882596841142877738312311805910026123802420494398727732995176274373962207038707123928736547852826508791142259763732162429557662557540763787151608599981916343275181537686172915704846343265267502119670418769989629323540619919023262868182182102917029069094815942721206625409193016115082299538961901287683734322124965470374543608247955387824705686559623353806573822590596621006266194482426701362236982951550764753857941988583170071095243880845139133028982711217053218839852772775081155580698648797440956946808592829784326673093269976783360987168009493766006608395271617583766802321390055941527713001889396461529088723188175375620174691180366014428009096534525417841851745655362670040177011845287885271186155722860177567056051568063924334377066192107478225050910428802111536238098602802515609617227193360460915651938448069439759831870427504845218382512075940412624532602831175333140826750888895532759574532029251207514925441443912339538474178937828661292969206845734421399992348128247418026142383174767121735790046435953413852881918531768327056709529032531062342064571333242094293670226968776355280783832150310889430259274886184830086284845750678414178558878678639813861428757192260370776432215859872630523224095258492453118642154621418784948495647835188475865689331498710102302419676162775908828472452161640475864304037121627743976796113613468122261643945097502975449608510315548711324562494285383682100162892717840225677726054635035006680039322177892356912580343322817650809156267183429293745521107174617061538595775973563922406077178508982933348681625612784472969882373746666013719411367490473893155109399960728662491970286948228089871029692084594645493737277321905561131289691005409204237158121588744591617838625412643421481822348153986698558884151738709268869338268496736810018392254380877286264354088354724915412066573661566200286457614139657288868750364302271238452977679446227506325074060161369116888738137162490153502429285333036554342509006637733097511686125034305506055950665126441663968715388780581917519456161360383506265124291581172518274125847623360957564338098274813009514959568974149595171167847946236539999546028449231444933029290744961374644901432141870002752370262330672316416279587772308906991701882192335323644190392338400420276227714639510932939402538778423259749783930114982015367037469438987660396955564907933267619103235865336766633381511648291512456158840575840206675695260746055940580242775181752209001810335938991289316728315591159958272514857724343404709420573815919884434544884053151020484567167754836901971027049276620142630794499666507455948165320513376709685515118895756871295060574346976296261284742291590110765361608025539199493628566533544542051656283402274076093764501285728840057031944946016468622061393505942309846568247163875308455338029515114406218277805203242749620581745110719201018482168652047959398101045268278412938522501036801273077334217961389131032226875148718525881873042620500096234683626104500357741064119898236619092032322649818828526548289192018776052606731886384459318874690724540342802837130906281795042215192003450981003269412644121981772323116498010919309036239344780245536353259050211516059118288508653391412710850973075179326860097624948652959601861261597915618689306147665007836456383965330154872140150678613855664539866498233273944306463404108833849086490258269819985678331448269463434398069401850833870647826756530323807068210965815443004799359654002933194752204611507008420561320442500312518042398214258073889365397185075471145175007854583672287247461950627003338680786520032883770154298330677590867103078089586343349992832046142494992156155283675211602797843526364010139795099359222504234283590425251552112744716620564107265023240139360204524729058798579821743063278984533607693102938677088582229295796065827537440745862613002704633531248898398988632598168453982582168752516657907881478010072584851423445019522642396546116242947582014513839058856250522545353144106161202119705431392991145648392227733346972172240773435837360742356840590377894380974290599893057169286990952939672615141031957127200392612439560936610344898271844676980464720080497807623616114886773457744194729710686468156149631619674582945533206197282330451997121806837248307690527157359429445001831532941997225354465143476144601520194832729109183335158031189182457549190766293807926439126717212120982102716176231614802660333606901455855484131590826332069382504024938810269734945513025438326352082728461486394716114850580202030729971050932052002302551920833956704372162854558863932961176141459906049528502861154847877260327926575528342201747037811773581186534071686919050507699191370235030923729729080880147140520942486269655077910110801180706866760336806841345670560246739172206020243303515618440157629084761881002795391415568362912730340307634744259367515409790887101059688782337478929561808095012553239381551879417687970583668836628843636988455246437845685064434671853612820179869389524005522950338239039515343876972408156412161525459052645747676003812450195855911703526500816418408632220113030581360556904746266186271218045478908021466734531933955601427640226729182266293863089365300044870244308653468926778031770069113376697761327470069665338565599479684869371139572627818566022520689844052851553789298681965500666171452460134527778577708655636526896469808167858806475799814573147061474014284705357476485225900552801790216109270999424833508290003678215983407403082090459157661998182484358620320842447316739375407589618247650112569409512776792330243611958186314773739147391218391839991737285436960365497985437140969607661871488691833935779059512640620370406180709068629559753910977448916051669926423893963161933542117759795747936335369067525543950544927501187929645570475829104674949195584073124132833435961259252429853960579186917700503368010776944980660578064852413086984514911243613976379276642164805193455145266222315163728816534327913829220764603804334734949458434134086350884717690310240521068398058606706314419116407286565720697206277039192268034146886368982014323913449122156985389929180884189192127738304913737284243349021722293853936018902510404828131018561029859307342598172813683604105073038397108816206210167818102958373316174659743305961385311589810119994128759984713021463881102976648121506514483924531039846753703542939438070699175813204634103703310735407357760993620151503111689703859851012434377598679855891604306626188136499447589134607234914252259610853275298678828448265215245269281396100937926901153835266719531088933756060113392294134195044737473058634466841994094073618522945052190672792712055971697577706172461816029972199267268410168616307696438099584832694874962774484484606607870940429264263766108737170334668933415273259720691004145174067754736693007165419265457652061735568928903334642102501681325401634316754903002293913564577156338772369683979502761719735663126126082035230882043327875987627876481225862086024062831598186098037237049074010385528761343672408822786090280298631589384897107343509917790134243191365562744521949948722390182230608926627933910426952525820402831936296140381230953403223498188431025354957979851098521837391512507436718873355173135238761519573348005638937708289515750431956523393177303147056271270492764564855930351310220148014348682436287933196805008345070851242710564043329304763150336228448434629905445712437908656168241875096453672871303461868289937481636559172162239797329212093933960455388682772629143740089175161606847187861747967309030013746126513191317793875047870303121314150284229127979807300704540611243395948849253488062551567081087203606984542901177842162336730270636829420574213376212979408559767414377945564659708817744970365574376399716146735975408319661158036309851160865942487176679043358530093621548581468923717963481820349114642487323774318112143191610204127156584304640625730544236947101513554466434656548471328514253922007102327635461774112648713491302636107682929301082653270114648157439128318140421107438425859478517556273418540970788591092921616889877455384626021225440201973066174862092815391928247998778895345664392809938766949598504781680004777194248475808658532645722335651594376561616781149456283713006389730363567532830908606895175631650268786996355434733401218659695083687652221272391082273413012352681506672621782082207224142862806101818115362300201764409933201635522635808145479771297560364999670660538550832585603368186298371018171775189596879604476289187658712375975304533560785868653511457502314281242219467830929891241308246123858736251741135871774545706232029075793181362506197948280216902291617483287917096398284056192812629523901152432536096693867130384510444745402376874926274373145513077190920445736552557558006966278680662673836727208434873718306712606947857388698522589990204320218440629628153451174517970337809915824159713892919909799009462325623188946573484194650386161119254873872928525275680452667382775764304518813164159634445990681946817090156390470061047639970062873345190638243138661999459935695251195715581158253465345841993895163575114330793148830691365127614176921526498618893640407382281635586633253793290045112136164910801963506402602139671010170319066260947030351186250014189567189278443103025385817266994444655818748871572231289026188409458667279497104770653329071599176812085990926533549083932802571033672894612451659277204851870288942575108316362657783734309733890117482231424416011628092937279492366404744022189563722134511593594584726862099428584921178533818255419218312274791972841954525307664820537495203203454633456823706802855420825263169649259877400986057565272381272867049763942307467191964637981689596945091992253715796458934121528944012310568886075315554988333073305017868787816372910591742128508594830936440054498117928224310263068574798093056963314280546534514826920416416223041199415764490772343013397537998609673840230243118824522208335208018119156277755024253544527147887770532529099148656069046906628291560910806737683310812105925026128992971090181895462865137292709327106622641279538601806279847071392821525448420356954820418316080371890503073255357523388460328392093537514395163153943783369406475251651688064736223273488930050154471090167956475656795859286453578548694171112679566650101533463823465877541464572485198572231081798462202995698210875380127071497819081002394311594289925883414271998963085723488439056106415793590856480638400859520014141508074886604610976202043394858531966694416184624272985349854133591195896254968444025016429018859527786851736647210255779771324018562995889193548844576392551035358599477832874209238056132970146116008514827266408762528414996030219891116395298574637385921806681230912898825297729333528717032786802237756171651339970965362818238990451363043050230563061348259983212538922949488323615215741299156196732917636693378107264834602146511933368736317181858556186118827560569278995263460544215263871796185674763567458105041868901746211704923432606109161361720030432507275188839593174047277866375959934364762561553263415932076612546582462205198527964376493700197035727865297316883137488032053903837291388773884406134457357475944102579165103932266594445087126873401521852753030296234988911231131436426104504390039822909657774805261531256435052946328233938855593232367570083878145047922761733036563570646873917505620601571131959702617448136268223226276403246939731002441238151542364697311943458812414292566823919347420911726594696146581749936366917345626541990303305766128993212729684776386700751256648613927598144622835028492374544240136466272280851268969660742296238360846757157671365271710792811490513047487348330550279298181405944922234565394556282957198725744763270303883945958862837159915515449737397398946171104202318815416475324455672052317725356710029017617778231065135014924484438028796763944133783152436524971738055529467837858155288721784764493039341101759689473030795881334645436744172713483161543473740035809914038983112437146373413789720336427884511315930732103528694806782302567627993702519332698290717022289238954490443442699150428783796734954301682238272041013628017721844948604065577833341005479617069723991136375683859198060421230339781437913135062285411133261242669486685636983452641044174542881430196117151058377460397830236065897735327781044859168254736045766996370435568393345624438286656931533033814965748308029604483432503426147693018674290946199464601772979775375346698127776011722346035646080977922104259470780126090847665430084090202275126940172521579578042713394342954687971027783918499822551386743103620538406446305043999795649556741817507179231917279845943395924166201560224565920529517866301838422203877257255192783938271842077144310724641793664188333787644826111124392884877358521968914776326676413934205591617879662660278665709874422160315870371336616075607156513774668836431179912498265374267372730486212984047798614533980239757321623366014546550939974231509639586225057509676064764124810992455381417430255749899031971025577551141451140175736143385235186023264122440809383223931222640455412645462973244174813218673984370198342612664630828952397214172992714562450491451884838175497260781194191421347387770122299228612417676470667042952270556629780005568232388560475193865458028708935968000934998166357616454027278383944910038797300878165698919758250620203274293441956272342457070640730999701170108388206760708516800488664318994138364527691815567890627492434462358503827943510457665030611250365270629887606585220681170476359998498964303599564182614492620057627941331019547520306439040918941321676579488119727156442582589456939419432731523162201714508397731692240774842987071341561793127701873660684418981689893101805434224512586823255668088983367245623994549061087652094928687624079221669472941135883440587388240190851291557788789897175447594246260868564288127283207707993917954554691843357617469476722906019662627061444892884903259347019668332120985561022267138484036820308100262426226533593993033709667255526801987398114367842371977134617993627503959853936480735138771169582131285561852094351512254859544789311591147601993345698835279688561788792841572170313953986592536193762971393520074588202075574360911738950926516013481838149680263153678536914104971669149925393853968403178908761891242854135424253193080949323746508800200920153005232260855789052372966441287848979959846912402297488188697911143194462679213909823212939663477157763310034728658604734986915594335788560813087828489311518665507694073114697030001619778406907594552681671304383121746846998604515437568073680855968538114734886132394469760012429286822744260314566786723172406107352527179413483784212295153945928383388814000951749378382500583888320265125032793019477375632520279825375694657605411353523771010972602982609233577705303101569919054033044251508999479285823916629722450430922831311701858676830225262523078620256763053964429751925873571219332117652517140925729991411665988853309527484863491527370737325491545988092499989828049000350869359347659267576530167691599608009036091343062035866933521275223549649437369251913926140555001604799254877225221833042046202658655178621612933231027489516574582052290273248296776808970319260225051026082236907303669698527673735168241109625438195727457750800328392181435923456364530460016218364286038004770163270608826002539516757085401504163036431930260669205226854307570665728907966711350770802267344397951613383769281994894262247207693353416309531736652615919316938844592775098671236933342234796748542335508753630242708098364042315759249448437723685071432288052253553766818987854440926418197791988733928136719321148603094739504846702110031827109220893669075615058160177654063288642716729802176920466745494100478585550576109050639861300866376212761513898646187063487634241873064098149577945781228556209257113544407936622122261559912103073446724492041126225608216462674625502977337140909830276217875901668368233672625786970703790672258754987299478304381251294788477819136688022681346656015049738118504668782944032501720289901940694827913120264890390126907628412336495810893399079208248937907371758610709309219382478100360211414846316830860946236715476897800222680101244425098318482641156026541336011950129179608161307152761595351203590725683496521491221619886522355046715697228699326321306628089311402800859043513556724371359215759111317688482647263771858562853605086497283065843598053578110782960809660647711424951789313658286132244665985256709326629088610234364700600758920744338509791104083669259975317398561462082016792702669001258361289419539738137015771638067578710445049553752168022909650396855259322216945130747723234340013622227714234903971472368143982912678913028047848452828962498697650705944353311557647973765710617279097142518776790070155401788221103884381674076710272491703668475840090593245239219219551835243474868841556754340721017957302394592849354139792231151516585195108290933908189295939024425576345552067561715060647927664423106563173950458507554840631049297613422614585668980005199300528088306804778013413941783090137085874771588385806270952556766449181888098362543131503683149401999760508752382647357507474157967271993665635389813938201114367200550320562164279174156623419802475293531164580269619159594193151069161569368218547652064734231194813882149780838624720874213754467754232647584426554987756522587021841958642569078454484096471932096458782666465532028841119454181155138810635281833972505902058888219119704727365832444643222084171126576158966773674562247704438889222037973063951980504511519178584591268494546775325446856312485541115641284777945080433804298688589225863190642390608563285767213509477144015056280262087687349817648367976595007173879642386191516532226542320217255046447022348939492368745071852160850301948256058891039136184544086873302021697610861591939168017740315937502643436300072753209691344095575256616479137285959483776530770893311095187563126187473387145841982986210243016661204920885680213715374742097242999473623188039403041483837744620391116777647473350651557039740798958378295871365990051166802418912105983021213745016501961464450366108997439832659846821672333357040522284861753594695662309433027134154245071643592904412796194673301024671130337583148579806288327810252155079403204159581748624639725132473127279632629421796837897679093824980497535615706990165008608087110328531515286496960997852838667540446095137800031221494029047039855423539867531752039113632465596631235165100265399079468869817829272707442927183717114425443914335423036228999703868398031923775327199372877846919642435283571253485167760918531996657667916851750551619814100447370703741550858015165498089441271346048722530540438816702283323046290496418593838083733910545909818556596808206905018172867704464771562515898301836489570007555886283098008919732792866240523183776469483501044184947900173918224026889623362491023072659469160242094277176681740180841519439885720380208228280597648670331816370301948944389389393958982636885910083544637912578436212561305732649195546526081576180936575615690576905982365881819091810292851941717802010042695035370945531265995611910917608257915883721996375301819919042358638962832372649039503197453285575472135014510725393263102224718738658892461312336148059221672666119827800579105832853964960038596029283178991921472099880899383037222596916260037400706744319725696545983476304162564001511256498378411239060467296991290493161841132903096308398899022659743286344736087177828636490968498275781414419822293001048673603892725665152747963249596201166155581227810544530574160705025969635990875966376061395715492232024787575273437347250541975120000803608491441890036589695646974127148430255549756421989852400998634403238400002605032967095590226150177934752319504664270655197370157595682862795860592846915355822916067440124573000550520306725739997585270232803162060804663350946754215889408514028668318964772548862524929430646251325997140888784088638058803512559515431832111173076424396117923294832113720224975893125494081656131058939963305887890771787324902978371638810066960403798928644380111139707866693735204662062876903413067641093886677161131714353682976973608205287515494292202882405130348054672327930444940334530992061603562979206703488838867403241352478952135243509575657861538071150566297543410894318186612228521471339932746929103964605327422251620663393920269931249600029060708264738369042033178832532607040232766304306247774030516950201676620137768728349877613743110722092407215023169771814867198399251787073164175908243561987734924347236604279137758790193995208566985320424721251018414935385679008021355567509681611821085922356437290799724577306586194647472466871776597493977637451727718512552753047794452742521499954028392944819561026619886270967370199941825689935104406060212164236557046131760625654494856855235619201736294542567772924427791599709507649153367467890120410602890246780187572478183781759531965952075942841380889163478286986488986465265099587357171272121595557548082132556586327968777261341289063458325952742009339722244990487213137979698416964332212428995511830079558281381928957245129174875216481701864922161998001719439992009908684131879135987254963610153949948469996729778691815019155602351087522530746618492596335503413036275001950544254815558444759350741937233042047055473471031012197635519702984874648226164560822137286542124271043392370295288738388724610149683352512540993558662020999351822982629496248579451339503161887509595969837981124952379384501109816936545458456109416748280126897754900897942270958272317651444554266446460876685592029094400337763214982730924864586968101186181097223300810137123381676436555579103447564252834894253663535908504277980741965864220021003605825831586320641370437627440285291615526857190995946140801193099529645051807807291314716772316085480287222745432666144009427141781008777475163348783036663126778304199526580369327422451206906096427584050527726857818001100724436274453110428628429446459191447090163039292084713259950467480634438630172074261033723032024248330663909737908577412078522570303943592659784544585944586871679426393505853061650262408337670749114185217923728651503426374055446773452722703230352290703285396271045226149288524821358135693470584376711767472983332387107255809333987535975542160513332559128888244814709790320697229018496313547656734212339071049264031283209108005018928914769103902989315126542534694669652548027871774148694650825532204520208984837064264715564549423257552859400670658802546438186610576475968232935650391709017649386667293636675002615526956425597154159121186309244466718877115113959515146680101366237456989037006720368760744628110577691311547293519848206873555030836821730369606296910295514534756363644898319267274673339105427838316095353217826611046595323612163757148341881106254112415768062579394069061315632938590147750826708245105867651050660945041798241320995336775979536859863186533805430650336949309184792695451797339236214729280233207668818692149141515285163189469342896067642722695108707681766371518554991989059782106217383420092735045227168747567849451970466554965449454721981776291076665638467942076782305723667799475673579118966614923093512360797681199500837650669330947218859915294475664811764876056089166618613488509560433749880451025304668682085644133787267952182469513265115123181165000703250979126226830344727145109626925446325147250270065590404328752882534072195024223785511392432077480457833253514696260346611701997019181815394163976394283024626147231508655406243524251348537902630973876711514890387001921509559317313512706723905315583801365111217637890969670282375222853523864705919409697331009792726460883483301821111849654049997684269707367251819520968857613343601395958565103635288735480533179952992455024350339986477420655653667374322086459432765840183280313635120857171227692361484687332174592438930551695555624947959011394883794788194443365721142934062942027179309506833170716582967904423940874817785844274264603284898960914513579595327801013262774774477777052238338992348778142805839525726259322943058825221361457115975582152703808159206018702919644187505379464373688258030544058520253092720593834154854941628843206823346014999514250747196467044812692436837031977640168803971959672648949117543701205617026387646312984956305405328423479564009040133515417965342906703441042913368526084756455434056509793621037086750281949715348512213146550952363748197123807723459618095742650053517832649727821013647814977540544499122307658002437371311024630827316468360508846434700965676863931709387052250523189239125363647872279374630793772633783342687680572268645899952488621764419843703991217569608259045232136918572203013002840575491005958956945242127783120339544958827685406383542341667704320200582136490188289071840067474312186788466854417978091323480628013760048843640963240121110725778701502988938610212933887295101665116824495866337038475688846100692390039205774044917347270582152123054998063913137787394792943032760147317283093582384175195731275912438452729018879777217912991887229457972781221175112436906308852689927553942608098987472624823003520647155517307209610369085360287064468244854028854816093195380912171473685656694748221488933052780723154108543827436038640097109177841421422416443560564415535769079798055841975773987799106238627203678513751922837948368348237586028432435638760457894283316004218972341790910102364283722237786785992486063094371746930233945946414167899427259062068025742563245233341726609071378960158973563416497754996079403467896713054317318663454834622626384995355689360906694375202386288365010828529260741811422214582410097139268773050405867272157842227305422503524673095811683551447726177349795243777609424844012334044728245757621248132213413250590966837998933094294949308302323120858298145783622029523431075763199895730691065990506159500892079008306488766420793152374520380409671473996399077411698471133199282742620618546799342811411826146572422278192308023963223285361942427721955707202927965181581570366254471281471100989884229685512973936326292790565129151725309979303746723484809199354031895165935691523042328122901903378186186639181002213479752961707150348885253929452534123077252222520523145602417659253775714109626745889847131254944716259489500551050237439292549344389715691761028242463942247608282685900236458918315989024300529863959216057928263338457869849518937851771647713116839811369926158094233211594713924402507521816699919152970297206693886531099680549893894451766117646203257360051516902373210468475842641645081253789716068863759194102372005614460492494863907840172653493977050115562268914800430085907795495637552864745573577614399034285890209365819278105373375889094916992141999016769144113418244747914613099635161852234509199122468525212536513162422589040367800898941693429369234297552870230241708580105499529781517221350843301275651632597453949072603692996165182744545200172875853882965720594178785506116538343520245636876292027456521731802802625024584132796059334042500510121982074992236168376512957120879313900383134569146726719587553664253337509115880668960480703284008007609383101533019339616228088434759833239167612146266683459544957371504990851738054179653238669542181390073142050576727102015958954937859004226771038867314719505963041829583661437116534147100096244598665439879206993738423414757104360579199486234310644830774239667908620888251771625496475062345452905014365394572560572204659653326401236736643178049099749040408497784954334694137451133975209845966171989658598484266516185245655326488420803840086734610984238765388040709400080902592023932899263158184389119556629480352678782098858837469379492525623266295250480428521449659056423658514169606606315957931287463795814239507567842620518072170157075657778417601618708836758242845620609188318871014140553270070117879150260602118053521462051751335899391331990221788261989563247981198761425105751586446111317276200127996769252555952046934023251205498516530398484993255068029959851166848407192253898740308865083908368129108072764066065642332579025278869191925682924647128113134413843246451001688396061702963890682888094594667267387985991560531174261743216566516223033270251569413886798133638704883596800440974290020567657912891020865924935196561740231307409338766146952277628385505972164284484384750424893649108021343320505740973179659811913441758755308390831897097410602858532076087462607060421809795999498727073935092799333730719742278018879896664793660266147552488269556787633405614362594634228683695460980967503544476530065827400630177750915090425921565516618589767575062733596499169253969688196260068931219691870774719468179995528133774385053751198373852957614852283384491263296147736352009349331790441472552651210063581035789685991232823099456724891770123384519999842847331465784414157237722247392715782573096623895947575666608311423090917873569326195778785098263590064321231578732417724147430611437455131022355772828582451775202557875443953067159290541639457459951735161538448868152581940562224922298887612440495215500481204521359469124274091090794175131965331018872749873857241442490633047922225242653580657042319191092323579316225990722978670729354342036466520316228376492234979153714170219459690551766819524985857973167566076866092781653116946105739055322751860450654864796089816761209938147037975897580442637006443480908434815708694964472906121099858004269993794741637994404369824379341970482873295349050097633243239750913631517461917624285202516527834528601520085457640097586244637859540237672918442041015022683203329524217925739735930158817749922304975999435684653126449503792225046788982236735709249926808062182454876156209299586425204342487732054087582231812637589960483191580024512465109816210195006172694021336724952324369786646935346701446175510240917610253641041274253895840431368798405775683710170819503183251828256352227658254200664402903818623752910571080800163174670109335967352564810449854857638210551482884658359598085756819421550398961897710811577438820815257057634682807100554619529290477555786859878639826246034625582041223624858271587891283557558777476331414508743984676053387105494404110591690367508843481977924964069804162463872131660557760808796070780191386457073030501365765112548547374427413282731140209478361699660814623468044526930405451659656137943952581941735593475821431022243969923242318642049304026849907003136646969002066612923828545741898889541054457786585333620512400791356884402894906945318587754325082669996110219494285430167879728731697142166031213354633743509713689674082243004895967670137972554996190222102279935178684333373816019682279063249943807741576033670107662906424616063446712826690536647894921136113513014017137897326188443149826943989022074413048303151245005368969788997158543009652568408600236379400026277280121966051645094777586445425628418934649746801273931705284046997904264301708827474403504314250778141863609896156256616131760422805589647525772011955019466375682288796550171232421427824475014706092982223955615538201395296688684838000199279062957925539984131649732441949130585203752593396714815749012062258812764718068318800331386740018697190909802568168293563824840760662344222234732031385006953082451916040892333726170419499313590593007164990433958775057267563641681852471303240482784845479654384851215667971800773903978651357694565998256846722056837148031596628767949496666325501439364479871603460149402274769505881396411356780564993175965848516090655133592454044612959906809184041577019904015115633161850388139659455595516287747643566933595527160643580693032030833071245996588032973935786301531917459808462327510032301824803513303666093855796374744792996422972841336730733765887487985990330081292613106686078615708796187325872721511108121182429049283544780528274101979685473832911321443037815769923254583131099974328391303446368470064052486339553999711352113023398919692387425366903494689416897819761168253318738619298053457356262009291601429531411173190551803688181167732733473369823784970071206427162444273008345651943172358319269727935493446297497264818453825727445247261219083518473049241575676453797443717777850602197773083552311222252850915967271057919140726713175109217358544374406929128106376148737345935663151059332796363835287424413362270720081309968147247535372361616607770938120800156792713099452113505215631584320601419740004207554838275076708282308235358077446486718099635575355196980239302593473711579957362761016803953456874074853629797476910884230799615894240786613059588939529415923643013301468468022391919081395577786046570033238297685827977871802734884339915959371098084462253230533130723622547279283242762602114121908733030697474672279633943790774713514107905192996354244886038421833402679429841388252556653769539322798512280083641536839498695197099373426331474105468133702959688753431447600769702880511714989813423078727513849594300436872989496087096166773162531358417477733463633966071354928530310797915395335392760346797735581826645451847679702381586361241959790795991448397208893667343812685340603052959224776848324668643520600167878711057944986990025991676918821364152716653947122889797887298361385616055559492646759659675143852389362136786583908997953112959845303923488748669934476880294299134228651401073265306372496295755579334618633528559916838643901468096711782205125980240518599504330022826741031644872469507568367357004438343600431441946540712695341608563866749517331602002362794657748523416897030173575889773189817588201782334382466357756972682953991194940498631163634611814387233469703335082091368952425348895773058597110117406724568983651290486789572407505958404312881449729237027742144792620300562807453064317739143170202348626190801117822844635752240701519971478189897955977477231796361235629659858270431115442174192112880631900515593779874536411705256218587925751020872707497480123888089872625638716625917098915767829518810426567856538136395961195208583407880503114874161918608755941914321699040357278655052512338020895476393656010217771750026132910367197327395665653212048996408234953118239615379623146306560342941135256526424929945233723482394066710591509906472369592893559385465086619111035493052183263214355336639817516873649746400510584695127607993332495801968622705025191069849844875637916924855124792731003905820831083380230302723243107334774016830565180781004616543205276558309445542142523119059830535006034585882795063212546128364799853674677629664313845033727513824240448794991977204304178517902548541349560337664662265361470810873715937252963263192905973439727153813914833183585157302664363898588504934047534566871401094917200171331073043119365003712026831235065824827517210894842502341163668716701347660513595998391941074217280454251042274853042555471893125949561290205671589887481310565340872647392386152629094904038023138642905474104429031922604403370075181275792687699347862746995169547395464691681066179157027216031862898592141655693456046603509053290750231434255929272223764108507870365468038745707375962507728317227724967124369409075226394025380074822335961166660226032072845516914476574201108891534918258684709216353261569858828716652786212105223035077381724059810802753219968076706218599926949920957478473565320025436489364795456130166485164425771623122210662205016301736068174985592368615484801807768259588104344399343920501616185571777701015626997846627587444879334521829326555021685400396348062163925322428800672861269256468783472780390430592332341649090653312406574485354242092148786069993271779104040908813754287269866483676991230144094818771821497925223199912258378573964731410123123518862524474165309661220161877305531753689167226943383903502674751214501078175020799324290997319540605612183315128116843272173226532455730142002927005820379834349345845645325166999265627617846248341232212538554778052852769389689045131266114854439740774678567966108771743501161573359053922771861406123457574126820281165835882506706957640945623183133136271586594322475759488200157490814552056214974823756290025452715529553396156141320010205885776976985984144560964623036019565946849953078496295571227320673501137761260634920602840629757229783760790351972215540132622687289636023648991918327190918370772174862944986123403225066847874538882294841748294634520912813428754041662728095236083944079070246385197690771292100865595439333762928330920018690672104551108206528192664509736109695736246128600371406755851210169380135935740166467363385093600613735220712453811891898528947801269734361131726717926533981718470005243447681145124919032918796826591654935890614598086861184026468444643656862100856808920177273246875822750236016977943253533110660038756341961282528686072095904088312707678046901196038360677600339082247949354190449417463245681402192047244358755925151287825491673054073327351779326974499341795291597469490421831775164526951092427421956397410283542766137188061449252574730625248994136575227300323030243055940634655240659797133313585520538715823871736428357391025890360997025625972347969195150464694818753238695115949853721671330281666141575563664094862312626337403491502500041814927619549299104936919629714775474465548551981230278007763607937213576416984761468140113450123985587052798797326962821075904497773993771828345991736994478354406643069107474453050304579331213757843249511763239741933875227548308489372364936674467098349741259190728402338889923747123117412721271344076305039151019329109257611208600046900062202895083686803185458989087047384225360167205611563729496824589847974232028296794387194373170264801183310044264024968783666401357478949631146044278600102832961576714300367585959996208057252719855955453692453092542366945379657934791845532898811867098989903128080963340310256950716576300046546360451737413705866444539836804969082039140235213164013343546177933440979827089803945789292859777245083237691041032933426894039285318514996570154720506650340480603573853721656015743643726858613221256331683197274045498980836493591422074590537920503476029940003637914330696763659695945985252768847572153871472192709342878887635967135582549391862518281547672618352188691890897300746051475253908547520769919659743622318299732503420858749576277627408587821576840632611921643614408771241038989085412267125956687491409665900220272457176882851533348000507987508474829572142273898066256459446917564526306765390348102064004745566874646302078202579081023459717211800938723358753987676138250517016663541449458513415757993380916172636670465567641486711139465488020216320059758933370168909749719959501357852642300637347661421364080275832176474717646531121094537615840864515506165094819470866846328909393138287265298941826220641131249575344134377334801202380544323593271969661324932340208387687912623016824103017878836054808285921815497013507883716656737310644657127023653474374901093362022140639361176479817116267490100604300762739569806141732393700783521930647819107326181965902554535163343555349437049393670171772164982614435180344017473568254754191601839470401543808921605437501377269622732971712697623684060476346854998404632499106132371761463779113036332999099139185507898232031819140517097453626577174993294355575894004090372643741545988430764716459416102054467237136515018873854578290429522002771976744146578309003049927455209346993871252703164308321290102696093641705863018568460965097358229601875560097169312522559114864928664757648889535338359352250630808253214465281998321314828361202362940813105286007327457454406512094353236953910862374975595039588819827266538453921098128585149930487580884304889641192713430785812264804383202117676250608209348799889955331290059858034782491329278593930941359623743153631713350529196255000753810812238566935452611545552975170587791402151818343751896700044268068748649795874579260829521518511950316353270671250120393263218838392227414088928118101108493923053361633798448878184876550685842691581943488915934307700546563612181947564383284315297883500871915098509900404574761861864619454972171077313503221664200974479271867657761443187393155537346647764057833384690087692471903345371833514098809641975178351302301527421341770888695588848788910116981006002563381065300244150295936924036768488491512637509881880823081069735868085956702321400335069549126118386969774954087802472765848886304907466408211958062741996052557508669895290246836471707824839579820928361892585954124373852704111762082887062918171052917093537275631670130655862307855645552720235467649663682254201899624561674245100890347153482774215576933101721243071550618526844584818795047930907810735885838289499752503728938249703157123173519898398243448356595152953866003386382088358615590406143395576687587252857401563599057395895025009550013780762069484348641838420176975822209843446125572640306378000299643124263964821156210093704058550810088394898840432086700522648629569101407545556340271898537677389144182091724597593275302917190333383837573519942022447864827494468147738013322255772250015729945973301836757829475817755317398145112522243974015890333573349405647920335640410180793870396128097305516596109761103793866213467580714899226226298706216770819320646448869582866981830147928069258587787828964448614194745381196264755036444642217639448335720918904612387123720750488298811691374337762151229996049619068945728097825278857260298368506033943620460901658654538043111625576912188057932220198107970044619009703363987010684953467019697698176542320617573420039770182521866565507782618011511152150633040835435360335823377247363118765372881764444425147875316371800717404621296186742698068064252033823105150610121928505600668461142328656262321388011754174922784697318787463562987250274438845887372885268850410354048596691699171459134171807144134855085217312763051537499803465259454724716554598782607737682967973421383141106136013161728981796313179288928471562582530693103624246049180522931162837179889411567195453313734139326296112233778217276770465905527062974373367471335471774771812105633378933812289538633014794516142408432219046748225999934233034642803103018794907277485075313158583432412315522001818016867148059079179850403589411905989071420004046476151053470961661066507982729322040164184439301491777864268068791868800632300433297373174885389129131472939475371626386156572673887282913021074727926684128117640357678694292517556055367278722675071446322595853702181069456542665689241998794912359457281640039121748671038224973739356486630555051842439322144998317081447513845318813525589705416043881847130367627110112793788445876497779394537855231907879121644137783414452556514834105861190854288422671458083335907987033289320595053178285194368505140867755342174002362885944117160427425619957925934048568264561530887477697151532522490607775781039606606950478681908154963263867917295499676497150194148754432886501193276610673731883849422396715421426034611251540688581305510116521288274563657660849086213363685064506007399611595148362806754897487716716962783153308241178059509042069184356549932732654178737082311167166145630570178252977879684679808068324784499948534805403282296103013093242586250513319155916875792184014993911119733552327912413279890824414768894428152838702872397657024800466085501889415292505591550707352914229204648269757099263884601645539771730688350966255935235634929171976876986850061091179409014691974398381913448924724860398496468132073047661517324473218232538643384873755321945099302701525178158698285506246969081832496646287803612433493165653306132319528837324802074169671579146812637996564114874951545471234788110368785769826187560528870726074458020975373306581969533801055950561891281533708855910543297513091753768636664903059803678944604661536627920702133423972782068061857038367170683841952244517035558379468896462732413526484462161064564231227908760661474682320461914105965620547742646915413158860843288579351241080668586332048668083846209727048465436561968095303173121322095571970082708408835123163877857304097602391885591326403883299291476559572247503476634772154848573193499376155923338357420861563855367455462977391164397023334081406304840113929473361595661644491832024677436090292092568447705701773841245193848685066859820517009085555180389206361337562505571154383033506038331607151949346235508749287506373198510790344931369236991347357539435720872206836439130698388934157210349913476794898764723622822021862491960691687481351605878541188640585062516457641594493524125452480504565959989313467978389715642643473075468729883253840017364031734184369991443912264007629013775888269177810950719084444292518527763981482357359053569259272208094494534745444538247832715979958144961790387439492179734403996611975318481000482520840625472678090697618001508753917459509122730037163920787373441186509954664116969323685364912708664372259038248361308284460239742528004898816617213634035300386426934818933756287658523102283022409454058315438064698062712332414379551289145414571408690066500238337470722660354879910776739066972465480663377997947837035902048871917794464123754059607697777581491423478235572486247371823316515719556472942798325404644913968731425063793405365155360114049275595918163993565827401670776200865072415102127375830146084926537329192108195406347161511380076051060867450104047113798572422807457744280691709510245462264733601634044815280785638998877397420212021198253701227009323023537656083657334925642620561399127267709924703837377942717138595706380698394305749872458201195772728482450259851316207966529121078934407807547342434190789120228589508224782589644144097024053487511735416397496362697907416843047518783793624400334130784543455952354159855869373529293346333612635236620000345547483336370267219209033547273865638113136403253137611123248819778441084455141874630263442381655396879049650672851368707816050639124278875901124188927133283577146924298437181325275175102786695711233990182124033929802415050748219400942783332242388631345359907316205190767325974238542186393737229171776251994715542462671118955341970137058252941262352267693279864777506797935199729925904533442553000194817867220277925800425856161328682799753327378266862181437469043340208864986304881213319452736931713737951927511891635523376291997989382175584612606926518303437605908548739842342885714605919998034919717286291394410853710224125127765701698466081035313494806199372841709954158191209410127347756992005586794832858616617540145131733236063874774877792973181654164624329996629767983313422256648376394387115433260282589326385634590377494901301696245517503802517018270585010557260400429591014374390899002730805631603717097635227944426158186670866078500331557125959249393739860254240322032928853723348455194333037533515859360217825134083227143573293371568016694885345854017613023601458937849019159176048398911861281861472469353737185648593567017949708490821240203842603663702043177121559344883296062366097328748549703102013247645471996280277546992474510261326065402712586285188235375335636696754695836161324617414813462922749666972450894729352610927180357584562136438344158843147843495716916441787629684847024101265056420019347091607160913678726424280780100079607080864094438369515601893214202010542495928077915267696705113208924867436748066370336850802532568104160015506611836750080113632178679661692654993658899526917995537355798437350645689247346284796855321013320156682490619412792312953721300862532437503659086091078706289839622878247853325582986318434958808066009921356054607237223346666432525421385811354498333458716132545400087717795978946433143862339306158217947874583409020435835195342940499679346339654218415621832471465027869325486294273201860072108706361237460362585334186408696667598514769439274705605647766317426744978073580529859916202234283774884619688291626987784972649657524844428226911198243582782183758506143208433783513944969653859696315529916751291075163124501909153852994347871767741631592505241529747715690441914040716745599177104433178575789771837381677494463596495353817657512245490171098645533534867001818290140308391825276535377928661223407570019193430467152314869457635632118736645233782037439037961412435691869531031129829517140669716437600471353714816950548414941382381611115726077544553894893044157706890368942974250743519583048623613124731726479560199860227078373481705933633382948206070955978002137045419809965231165985159083938918429058051452250990786305507403616091862267808450753093739149967851412855923123748674783677923213205109823803711719603573014621735221668197150370231539681920248950756774232884483921806080393092491196281805858344752397179968210561299086026242507494168468486361470350857242308481452263169520745462991244395598305898036622862381739446244320189653521990743200944233318829402089435468572993881724902268616387085540997620131607243849176750847010603467645737337823738677658156807741572672665959155464192923840562077938223515502533785200905104210993297337124824830037425795393273210406159618097672670979801057856516918487367948782468445312960127959922951100672243911464113415521152649285211464593658506286652332806704466505312590036256489394772616542766688619743601730308039909572471992119822385802402095038328652725216587893222380682553298606167198361728940321724364637431446711806067721347653927044821618075185851480240695632594169028576706304356180525998550135950948123280434257326229030341585655833227428584728779362231301006004928787761157687038034903164705380135683351253262921623170886133392455482077349591310079234444273805815752078713874174499471395751444364066677798517946209228384241571242357433699738441188753110464030733544993730727815964882977745984457423311899102391885308366985780884133159284611061123072286925067543993138348909467930282414956515986391215901375388624792992230199548242745493964741523264032936672099514761412549725432446771970087449780936694868025995002873826543021098369080165979548503442680122196884121033641066983264696948141960560921590144973301018746670259848920633120171956539748188918699986692537479364842397931067937622964009363674193777858467648254073888406649526595198535698713172879989744367134856254697304836442146019775360758146770168664698789119991784580526876908626233612627489195376823908469020537620530069646477142194668187278479419808495219116494430366750589504581341792239581604765515086223830625570764131010702569422972477676982765395395514183921423784673979895432537494597949505692296228681902170141810403058237355224227891512078139964042499471896160570497885775776430353070463891870564749883443985113357658590313070651781894994144261105340671450734761473807773692281490631028889722400131628769902647729319764394552739759516615049709740582713716477428814431750957510802355229322938678802528702654404443250208174395278550132430597050097237717493776911484211972164574096768967152231020768314751651224597723526146301922419050405245967176500717268537153756763727842156357683485098885617761530379336857462272273607454152637983983501845995647516418044185502682484997660983254237491366426093161044818482601904899761829870381279079671778868908132080479558011498322020376668288603547943640917424009180320770396969314059315771548289660028728432036133263023214096260832108732871479060138991326798161746020353032332223907094736743290678225370443237033088440314649342980103801086868750703606267009881901216256796760489296207061183096311689636941892236762423713089631375497037282535154191382871183834932032434080399342403471200828048994498298796095070926569775922482578997254035656631840466451969603767845258602430449544573840499285951599542771691037408923693775093458110350216167231174285578870413234302190068234152808330696248008133851991111290914791832520115463900197135830252307506673858638994726677199713091228532497514495797010421152793468915836990826138055442698603932500106895466923021827991194233215385515916209667025276034882582856439199587902786899177250168792607444709000468061768955234045757732278543452096058555601253990606225920447317509923165475178616165893405057999943270362988601860707716294698265211771316577307347764853290975698804056348460730398371859367957828338210281115373435078844120048295409574091397923109090873899453844129424263264910490633992455618966621228588440447126628714928903156674770999406045004067056862631545062453047748724169871560615798651681029402870901810535899124703666600376934882408294212735804280792326098883487566331388203899417649193696676661225060779056011064884532915623786739186900576648635643170705181394517980330107599416394564189320756431594912564324358919304829656129318280091986457626600016708179400772845515200658051761885255442400515802473755266187300529099685392057016223376194223552473373802978540730283184581372795876081831313752103012339692441655428198028147064306453075728716115243926635909609013666467620559953364196341097756619348613036934028933135091538459543685081944964327069374099397258822632462590192710637310418162022625074088367632799605212797024403439017074311918315263366863844566374505444838265367626650886113708471379878217927040443546513958394904670557882093779293956438602891996990463583309918268637548401854905579996563038418567609274503762694247759145998236132004803181040888006668058924216003066831420738453401480767846496928439235711728707511413535464415805812410354537186603729250242878197561208128610023776751181437593175256640831445889138982603892605039365236956650319889911408998395747117889422234838687401179246247820827509590826265680051180020576953677309835691291451315276763087247997253054121588780008208176159893249221854440786263255091846103163330360636298228622742205970349579482269552905856280321728346074424671359467202239549500947825520771820676529845661706013573737750214903114112834928255730313828338110327479841018719722696594194275546701245646402645285615472047345337126543653152328270764822044235152300588716768611866313069602687255032410018739229846150342638938911888575494960927429467275011075773592001421496900616800304013910130564939798501977441505459674921049508690912790221660536677322710341465155962513485986754996157150780279375777423128824209581740459760628013468926502573275133953354754709069619281597586061781874707971921671880378093067331559962931519913922846328776231707565087241444431515029148390246671025122889765928603063764957252128090411460141608509844014731352831157306645062839863368849576304750532991756551460743996397329001683981749717324800370440183428505917175255128114948325317055319591674252223384137249928240547537654934667440451473987491951921021712291122526372543765929352502703314148575833338659103130649281743095798000844983780904858803333461588720028528806124668373041739901067236149132510146491785599508852063970747632015812564144355961781212601259132116960613695805246595102197044671014317254188843488052523605240132610431453361760622196795822656079888072181023011319277555511702960657864453214008758087349760996305035754574378414415118466733367242985898823228005202821336946327204706764883440317425637053117188230577375187231507421692759800947966571035332637686967761351179493076357045148848847163978472028522589661608870639361339636506313495661497559911318490933788627634692888202970249884793804591405848351246146760882614677906893612479322460411144239396811253520314375384867817757861764654312367605708996503492730523244555159445630784323128117904860170404278087909897352390787513041901233679148201311658482437425017601675942820887661556421613977287964999404594613853147593137773453230811686658142986386442047956488517285552404405851048410365144960407601929566687404866902352374307687667592019888808245320895357223929591172595614205494276484454134524113604626711844743879629582216324084784805658681551122066819756940567362049080432455679027915304561927755980059742939922971098395796693981863262178437378094319632715471372091672368413309455738485299668094462502008472243264533542402688939213326817521057896313068590728568787711917453454608733778850079543072034322605439695390634601020168149901875501109334520943244665670485931138047846834514810151332824652364604792671207174287676762087610141178715521739230403193664905263278919912800090773780725522036531224530993686358872270067247846880716371640461226392159239425835505305072164738824430857439494917918247892898628730151791907208845582364526125848457977886920039594246477626160404186652103494159143278520830384470596539726801777115148658931086386817804460836730526779221116877901060571675407908027264385381257449256193875967255722569036285550532543969832563886510330731538043229910748002771503547195608646210458532793336111343645066590707222042934733757926932836046606523300465872863218763506883424812813751201769410348515262368690521957035725495690245311484075948767318079331096899836143162115170648202997878664661617362409407978750309941690986238044642434601709943109740375105394070367712871354950941099862162465640498228226614999427588993874410404752598675440244054440875913665723205006926574131468091051133761576226699583006825465309773293806198951089067129479484660228209605600908405300412676967565838763959340528851052578647442043139899618723293515480880667536523582641501330506494671907996671500012760646469176805832263952747246115970499176445450968408274055478182879499070253906953738784701054206278277537429830155179221967874327077109407625260621704456413571191188565099380448298759558246310415262868377398518062240252924929770763658401154018162812189156141285646389923917616370074835781224242367860131920284430130048233458110933547082073866866067675510960401264637940132093334544514252093750873992410832032068269573792941446522379147462886441468919072299568755180183549329642260767969905648907268892123535837765160246302543003347111399821497520120032944732960219768920274236893969498280361099341443720400661727216791595930199028216373373817847817726929635236016421033657132790725729321398973691553465281519396292999855911127073685775817675873506923825491553280749382980415049802975766429761711885310161213157922142813067174337171207759422022176449752112698099920214440784641306576447424674009596276407884185849361052159898806267518947503344887189729348930459574017172933928314531092627581499913353944798651818603045048110481204431275995144328796645465682208004070130215320896069889974790940228859011314010779547073368458120562227162778118209115166707835371486303612984756941108058827968246099497371667753359897413117322290542915208759825878485615007208928530693017356644909377126700443487726638698070815669918241432444469587977195066793414242463297962964047743624648414079876419657310772925123458683364971281433394795474164025232844906112429091348636391486308495818025568773095164523806727053434790679295968065266797680633758864592890168160171871980336465641751737757252557087998076257678326203904995573553135737982131135272221305856591417138070333050572000593499070014284274021230201592349613514936383861963303856225619567909829691117263668785297320624440779318518963010385541890427599511485286476729193293683420762866136963919097160464377652370370624300719158335154923693685153377451503022870282501028707176519608677736564025944148057116019326130354660099820587601136979909090420761045704781350802517733571607944626403483014703123654820916020563857896801341472245271004757754314938603005945404750848118985527163073171204265098771720671350008327915103030117823091708376951391566520548583063192866951653840364526366615936202735131198985143716447911158774179857273700342432211054880236606854061309345939384426438952506284470181732614413050197466934535508287045191621262242124823518391435371715211786559722289014160882646883567406141059243026439970153045760922771714131041106565997670292247017410139885238344182698040171763581068198065977513599803756191613890355703120105945324371407975188429215799783347503820265224871811794767105913176513921621933860863870613954613437063892189143331730568091390222258508436081551267759328495644529789759834114353496029195159555606151075693133036740353045425511429598082109804696974340793725528067921025048054847996080755412074847459015767557799128108034681767995618613185821057114082902997018092006863515057194111868388211734182193633029402636505487841565609096315681754280476729021064423295359376492609081350195551482975884652696404937333349539659270439679478133189650806890059889831036044230071410017028164316468593669274850306827869563022369365756273339565551188407088031257882563980195693242674809562897576560738385154538582179414373236117815352730229940593239020245802137414444736732743865497378254808521810746648951520431222162928971666409249861693930390890677686668583921849196768658504689074152507844833565387255775568375140673561651662445814064879569878705945232251363858714629154659157411483936488540823248010926515882528148917883694923821867505671481221078702776667974084190322210307366515821255424317720253114578708656991877769934739497733465480556328613837554481940179504910739022561818414057960469339455820846316830299594626399822017495881464006490585362851102454177139403966258187968483873203916556576855782718970468106632221541556649145083171190308217360942039408415714399120185878986148530831562465177629122566653298119153473497969729177007777620985741978574349578025160134490486816014522628942161815490613999388728052601559427743704062744636441928254048277832759578421477636528102011722018367053629154426394509846325702310239227017539706418054340582482198156965897789023416021489177870136347086621685682292768407452572945002147219404374709007503154885638146959067049918745226960017961842120178236272230107972874067695391096353698032002520484574819305870356918784225848480141823873955048781963468736401362715931552745873914341852796839833451080352456955924727067238262147395262210267656547801391820446973843901805656705057631175717283049019171700281409675032366376255283862583830991917903078142272911225339323436055513857073582820143608514749614369404355210695863387419635655892090447965784552868723268544789706747004145562106003859860437173003305321010296330280325964695516232886246696837877546048341066537432339068839225919919389443217362449783237123598254438141671199615780029374940861288351199590421666766088186904866404280784926111795659098605984896029854317714821734701147256878353366821475652528982932934573900963434076964919784531949337970725751944347251491103094062158595034658650441056930696505141810678594821765570080629498514796590055849511302487782323628308364881054671490599850235310284239648909347047875952165229404919379673476948235926256778772679121280249582679328902675143146177431975837709545188424719570498293289607412614076693799257212084629494997994329820529622254331789015195943815592315997963258514314703919528801684252098109146931393312198237901546842157294222016561613629445975474321807262144557405421874627983242491499552354207326208142918302046313318705047467637011155079400347959706563531737236975038271530901631974758129769576310267951389327469000666475622181431611520015078255502026518026733374077342211935161006889092133315258714606045749752932583010854667363071779256978075021629508402153136453212057017583703610342277642724004153656046239257216677361951235874402726790257880819754007611559669723769303375018354082946744605742991292174822139944386228507512400830859047182169003578774165138474754330855053671807690618209120724300279719536513730211473503035058000497584002296198458060902283952561022025256236435484288774327211216833577483720482540125808720811110194844876470907892658862000938867278475683761079450632148491620983722538957702779462688034695269507470873242941065436405713038666941902721295408798651405391595217426491021447203097596407473079327155969792198268741396447171678629754356218636879546517918962203334481573953191839910588458565940550882535663662605261737802076990768291952880739025574066353095834398491280195235351094442742345766467373612008197890069544294888606114226716594679092568802183215237174657259911991686843351185351904456389376853692837548127652154848246032925007820463033302549915239368576809313684206400534927224284947497923592958536530434068015642916457513244993551112643053940702997919509108858366777982738446286397063128730658662464658094030947508857695287778516766092886548499688337834527332334448986745130584027500977662891581152867337677594503935747473149111143660864778357716158386001404961947362578069016376165684751130542556114873220908036178199870692956984806628300510001260724788716567390013679458269726088785542173480709281477495165880916821562909975936372080007738004442423753364113180749149383716935696458444029719343445036545048011953887770996785324729822181832937614157601569077261970230831219725300108055295659130167553918046925554545527481678782277225061791358905081125007491183885984939299263009439851630603600761103982819999619542144105191513273995253205172956445880039105371988603432555691554096983737034841795872603583137528853949985822306332477864202935960315154190428139550620483432552085451539000226023223473672995342806099004301106463386436478735956996017174329146546304799897384614799590545457262072769377765051324101791747752103510326189641837433605461566352186567408013036460558710187377777559744552660807616172918038793324112052108167478161129787427692426960306109875932075375044885420226377044248691017309310724383233921869953660653077781876858017149545440480947596688743190800896848907875660585190088864565485782004535354389702162430262821196499748205702155693308651219795548573942921660551542741298641252341174400493245928919562090092368411510615644884222625936062683033225679170143267094365769398671792879684149092433227576985231252525209507886935377824411591224367676803299822534228585534748790054533039275169874062018982972124982139139679451370109950415817264294531931403133234001711580081022897721963003276618992851987449688863859470117665618739740825273968108700593623375337290837314048573234832390050415852562824492014172674536488762961926085112960753110033872412432426386538630793764847296871692959372174216435755987377569603360096620551334906714689240776156430197657729572855106323881020486460008612463224534188569119594651523289211852343804302767840171496997523210632592792472629661996739728661742815864272685526303329063906077880661103532476075988684614602221025734004149590687583956306413279353585430995209882431113693778246428118589233190591826415892398215017065637752512011211858658031004609737330972440611195340834556843264660905589663463986200107432232446624396946827796700535151073255752804122430288317422366152241478387000476727779315986956770734418725365611403669869703057306935506255716985417042106332618884778775919571834678139334267884302415169538878249517591117734095979658522822334103901279459150920786944044384561308921319063476968322612007910975942972232068834107180065726030817553766028046679909950814989532362889415859514248516089677484475228594219443526922054736916016880956629810483715252938627582029930973786969049254372571210453382229422316342837883656761654222025923884375351890774128068002281215923622447171023568286890855471337738852996280877796470364972296663535042349325254825851831568467654976574271147528571079215973017495267419599707332500236715266145409209847672007041357789311108080864648516161367423628408541058587306776494175515830186885048151290960136740088745391227408659023916626634737217443876945453538913905033200694196480523372971729832350038133897768838633751289403509210383859533568583448836357298043834975991906548599694726070518050437169751762875753855386880414078517539478597491820992390346815158324747447938807314075946749183417123358406645161851012201292104230767599264801728840684664785713043266229711071373965031540255313871844273384984596360840645924362576329692210428961086457287711672039408901351598791960878233675143160624484796740448008691921318369501767097167944650551684183804293780664754579710275686943189946694421396423416326457034633263042517912023673201688708570353551726267451226562406797226240371796698299930516874578800338148891697874832362538349472125835800899748000627303581962397580435483536546924094776534943506382858856021130760348522714024745381884543526845162698136080275852889168634972086219673582786203287755492755518964186795608794168940117889436982414041848967413299000007217733836607124097089221307222273250827409521037509280078173576762234936890134388394493728964285314370298948121524408717694378293737683807668710683720602120165638892007706138694099847962055968886818969014817080526181378679398479385769234022708633627155524635928010737095073038409551954009330213516462149989666394774420700964875076033806331767166458534588008947594220118679858809266775687197610494820706993969507352806266490912554528268884080478922157713746704919099200428315204998901483731602253678262132429187129595481886605887077560469480307927930755018778683766645318439917632996625378430191613950349058658300378287503658850989316514421067903730331025150351585521252838316964255726153906754387025292942735473481534450765203327531601937823888936415927492290301099786007733060683404388635666352124650775641023444913265838308373639164742910814476701994070936458260355826450610474434663425696890732525356174258971673443646591118565359786143512437658733475021613842306293115280444409210802204781889643574713538783228456320802281745495330389216091183337867600227737679186803366301384501635508323781706139178584055445870651218605407135138867435552503531427139557218758679802117471435248249979810194114786140532263404727642608283606884444155103303801361748616631344705808634139006578789290037120056918034030369867753243646506750039739399493925783821085187661558446536464970596875955047689280493591949109055194427716623018259321931749018821050396651298262009544198066092149751998714102315860867034016203384725781382680512908854053525221553295035341350793972996447054642832812734219534755061115584758747463767315730116658586182470236146647934301814444901537547583741800721893674168760801006995065696040070923271653887507385435909037215852213888169801361806558866718230467731073501803470646644262824528498266321197926674762572178864319107826049687332482617860183518950227763923454593743996035998616292224042662388209017505873510561515490822216331891349686938622464528716961278184979716978994069498755533389700080047614175141959094165983426859625651919683371752172757976310054222352115071253399981600794410568720411850978446170910558803290802449907157485650599915976351068132609952121547368214780151452846896793678338127220858579166138264650655951210250264485188957188629462240581161100455287542639970200349599764853495682781627666429739930418423237677240585878341782362244822136545809421608375623276870209643758250106805044142225461284975846076415491101048040620558416230082340595251886548973099390801531109788069687789935539850922637570739528450034361779397250017039544820968342937794610058574187637296662844470319000240744380925884271198897368782907844008384246350968961583569001493065591642690084282400543186944467375201737366687701055963272673994800200510305224966504163978783064832579396471431395203246910236040862190776597594450597795916294474730069360107889277329984653559145120587352904051386652506019071752980329221507510827013149048964391691650036758026650115451375932099741240829986049352506298269688107823801902659817481108406798550634880412420671563775680739572915567657340980888752466274270124314886052410696408948263495001789675982824388077732691547144066821112553206452491989502011915047739237040897182799309928114274034820379780796376077949468963655887955097773623048394806124381414417594656075389571834105219746483649492135855303145304694483161209443697630224634195981188862934391463261352065026794886307540839258614272611124119040691741688964474064247272520544403230511316318247582440636575805231097288445045416391168494510058767695256868563944631224846035809393805426291932951551626965441515914876768478832195810381280835197758039224654933420402340853833577115952706187123366230975964684771814321133847289499962272538555625771652236072076673687295950051683145839810244835927144168242681227375633156223866767705376108055758873432108614775693934520789109134387858703786098831037476231774998170641501917004464718942907951797177088480242762834193626973430002243488926657071059257696079861243448656936225410314209378623460165948124412434045435513021363947556997592371012908257317228143105775787511020238257953301815024611366797385384315296570984735255718342358434174726309251063184641299221163802508502530869807475219993878037910182361632904401523601012303926223568424413282093561173382271394682402840312536787614065528196528750895206084010981635529070013977279180540579335669813695041828783739258626092917619840581075838263745178374610434513481623274292826947342808338228215241899765429940892293910154853066516519300710726003972291178288326648350662736207825445675422865298293181729221944855370727117775465199418935205369091265721496394511616855709774369150881275455034603690738888893621448941682519156314379240507388525131419389025291722880405983206640412760066505892611863473619966652700482143328749310150962333469425094994293217333266196179862045809347553147239322882480028819205342914647261958483497847221721464762835747285864788662576630100743902550160211409710951311071756709063362221271325049179485123044019856790157950029621927602328742080256038387339911518807928537362797121307709855742547035593941190075442359050306578660805182591543663411013706427208439476998572786270700056596262850737961149107879101877049545326939290396038320103948064774981781168831461910157208530106968243294407089998351450292879283021217459581124351741364835463758842738753185409271990520935132016335430152490291935737601214922480702538533006361230939067405205587693438493118540840607275975925492938023490042928387868618759400624807791452705245396380931898227038221639076737764232495007216268516259641045524916947102200065521454337706893969006970613948438373722307609507629386576353432512780286861399583188234376992348543475972580068924308128631792985617164073886692261467061306485872812727269684922936973441915212628424822704335962615648234688742071633011177956749084735483804460326341355567210342556052695101032413904702454537381903434360543093530292043846218975239231094062445985495522747092169781365814510560328034799072538632365918308066392995871021131590889706696862165713404616848388281995139985857700209022285761565336292776779673381773698443028558473011935450623029612288100161666936368255049160115738296043017200358119356968241174664216961344396535051319433261201913060775743708702396355732344444007275367341306623208552308025553302596829259679714317112259469742150287905999429340152435983028959500929630169804512974120736392349295515080976562406828289365651974240013001182659420000889909777537623822503741131988594610430705326218989332914656938711481694505414731344549423840123942066355444341142222529746522609774583840415634293663542562648423891848030092257773812237509054155820673887003238464370993991912748716592745797871401897254055902775210404960648359787382222667270614073389931538894640542368594048977734965961652686521225788532723455406393208732028260159630972612629681694084620446523334677400619087073971268760008905798800366785043955892550473865922717763551122816569068861648908884623476216876993982443925627123526782742592751033326376992926576423075503386438251918413653399541344428300760934931410850366934939273444238278140483163969463767585639464276534931937637354947589743038226023656588092571492069707081637682510064880036374218455046669540085275632081844960045791578142091544910622359823790567186035990349025417253572832422195450611581336085918285685148097949193029144429155309700922663000363351633325501988637123208675150220242864309715836103299538795856311682932330014949055129005125226168046926597484592083577803785834979219316946463440232270847414935230474807569322260194643995715501813975128215742888067260179158355651990161894273286400593588984335643235353196215602767874463159036169923841597270630695549046659956041640912125661130701573903085524060026531253755115204815299802025587718391840340260758220427648874221510425606578804572609151745885422131909213692782871214657251220006276435361703706057467740744186314658946944372792982327746189898112525985240328707672586963910166674008709170609290579801836607159280556305128582410835173483315903027648911145265454099512505683942771125674709244833658135741430385988600180712375182375471581595502941600500748356876653585936233323762853192811714216899029238611189928378427623015688997189763913534445845814825634688431641134175857057220593986223069202143983520700252750803900132249906895428649706103652498648567323465499919344629253183864361919555442983591932044360543768345968199111728893447503647274066948608645235003220250958339646780379794088639941015336810773271459396603295320140672172193012508676079177083249430999526177540314350406257409666789404713867995154562234769841870139784826174899596991766990732670348901963589491991965871517990052944065852337379987859192846371181712286333089300030033015912679097311750884899425281741902381171780818029715546435344728292887621550067594832980699049617299506213214519781411303872704141901443526872873863694106770730885051973469840490166728040824769786507611535697626643789755767346182686134048041721355211121397996330861014549088133049530906947081802758786444700822157741480402150682098924464017578110053957305450878956206522987738109094080527860949351939772960394748008507631735023075380496722240035725832000223240666975283059773707482730811762172758051004445739661058454816591786841473591259002091606135843732467175093505069083829712371175508246694135001845087478449197247322319034523043367804360810594495242457217439665923583232637862681822804480953021906090948004248572812512693996720678994112329365624605879341635903275285371104838828561576097962623021710026259313299940050983025547860852050558541849164112678672605788355266860660398204997116498655032790640345571224553823239878982987046909236985606227305500482284900845944446437032358888852515898990157412949661108007461905481511775599304719658344504488042456242877569899839295620617824282864664497609208695866374314139795637254732298002369618809340119618965089941820859579856032784923561423228220143824461391837198594486425270707344098560843406188548639533299607366015700466634913714542201939596523799481319761226228618416636689421804930545933103214252592858249687622757621105125509557823011513692823453194647120534767227838868718868620183838588773650484488111857809436758146135608402466271230736925675866549536391507331950547597109012949650878146046295896191546602557554752642062614901174163900788164768078561377893678537642840327898215216616592508700139262891709497208315534574272762073743029190791145596829268367140252238505309726887593139276403051044798735636666038568548260362919891034064301961904609486619816206178389821926173661336525050855289976091288805640226622839087540109919421324476267844950639505826124015703554488853754396642615174139305522328493695147517484462116537486475242279846845556117033531883696113001872232517850177162520212566505559158984856489456704554797706372252341402538020546565695549375858988728905022008359073545986951685833475205984007361089136448165348739653417372786997271374029395062078961858177843005639277875007295657881492296858750785792276358101234472422574005132320705103775714870170007896845887070917634808218594643350312394246448516512490132954836468333890998486821062785894972283128930183054957851739259276498895916634180637449184189848611833615210636867043435524199354912453420644045751065297631250150604479582811536387011283562340447611502717203358328522769286804776946251765629117963954416595930630033068200051046716283400034584042262756123633627385810403489061387565654912814466199686655349495062046705430244738401455499633901429782430621384909960879009295862516156464947419402386260818061249854264046762532229692691127131037805789121131968196943647538398369676608802196512790583850299426985302737438785714834991702604444808421051484450484930126117186914717891070473707990954400218097443537290088869740854031436670810339417537482943371611367541698146369298935358975209699027591253698179439665838551624243997585358923195346836283503254380029023671607327205674918704757205027699990349341727689461634796992679769086953352016740436010637921248101260482956789413706603757293259882819324794716097437531235976892538737523184191927511806902886419836400574153506129512797579955819047391114906203672277897775914860524808379273580261133562112161999445410408060535385490077388546606420712678445305137350091474394571277092986354670246110859176662406933067181559742190407208474930723669815183927895336413689322621203691435854630839968288102251586248046759099859333212856736748926391446751971451780390346105774745386782479617524487658022884324231892434697072899565981402569340683614765741017727912929977677512254866124756097319357102274337717192053720320751181099497204671916988490736855636869105828071983556792869729319603849371069447878514610692464436923236534043587413043811623848078635835441639570873421032986604593169887851697967758951916350974365410441059017565234165856100473289886575801711695460009816936299277394767627240208674170849309627900435622590130438943395399991181917917434001147232380916047755640345313313261910681635582128573520893814481235072546734431621093792565142009714951277421658449409190926103692332755363795000528152247293836880686527379575612697688947107139444736467660325808085771616695058304451636647809462850377483622071749897989195596035592370046381777626783043876514894245243174266428373647243602819277067068801884769133479553819026811696579684908480927043272195908013459147805987997531339126893580340969876386876321437971787011198158555093593162462257707765691935863491642787980683657852786607815451185339920498851448844617937542541749602749848232819521889554760720605376081063270183102977962219364556845726714996081289554294898434922297876640368309670652768875278362252953427621196682685417300381259988803456701533650315073225333808271253760446192185119489999038481124191771970849818801095546478514300774138053665667641997184770560070665244311460604694111074144811384667423955196335961627550747430993778966422551208801354569492663021351640906871279101792881743660414569677312522400595615049511060923513117048350853518522167251724768569207947083536800450255717563040304446434900452410671637703041301925354555520043006270522485859417083543433305148355987917616318894857842921440264377067418651490789406965524046645353479265772056626570056239080500628581084150744513869545377812085873626021368160886619685604729156400818524015327426884892751032018716459404182292113172793478231445694931513043003775148427504474825669789293717950294993134204532719640001338416819158731674537044840298874151302337308366223341365734978975467829489794459983279441787411094143973448616245736081641362574254426418708429152854577574882363441370985906970254319899889978396504979048919214567310069514206437453158691682830800212202537510227839336261220293752054686533996740170623669919391713572643627364667532759429211180496304977811304968392142317978975536542497043877421123076563038605290027892729554591545704648029787366665758815190072997353117962597070909666596421236877987732557816880585072505631796743696909800713674002950035549180888568497657688118375023939336076177120841050993043808406858728829313967346862185496196058068206210932103432025774826430263944673407507930523720459961285820903642808448440962940462525611805178056682560655283660941172964296687946965400144223449210767829814610740016355367750763086195745532360592433209661791527426674635696974638370043276170665538232354473440822248546844956305727790232562941849958243024262313332025002414576758008823209286236819456196206912310532252485405874704867009285280039734341046678359903202988792900521584311247779699635968581635186122853509823824659856160906264031351431142198568528054671645338159275300201472067359166973805867676739875254509393038583707222063960389841658395939393752184045904691940289480782205686825634363505381034178500671461417611577669725701995344310044455007609085240341730178819260810783316692890261492859684122279527044294409344017121325202535973181315667026778503323660480473437887602881818241654385923336214199743922875740855975975422821817560376141657371699464751575171958426072069067556747710889214890797158930970204792733947574795863865076200931210171925792613301960347644506237602634139264802882616096180126014582376608736840092320500016041755630669419793267963128229299295101508145116361929655916168092632570130907243884103933176065452391839030287976967492503918618408732782910834479781807026492876732135049067460896892699096064388198425920902498307885410659629765318446121902227808822799623603332620114656973754796629313519911778457944747622423385608365650114663632500732983402033215486871989041084428381291305193510461124382549425210121068522239839440373396779398076601908983443043868517179414241131577171288694875340411435680859661458226219887842524785436401148528544363670578286275455039262579629000388119997227344853858997004369562005000852847483281250966280559201479081464719880081548486234415804107998347231500537463995420501793759534807653735704537888199207784009043953310014263158317964192455179846186271913673331141888349203987333246724775707441798787185595681821448442500095449354565657988133630404959685872417801705268950069612200797714794060093001245260321172465502659652149462187930150128187825181644684731715133322368160729735963988122170974487010670167116663575317575702700764566103989834175592409818019919487999652476370293282362973830841263299490276876779273256331495872624128780298012283253301843200588507372822811370187840182040878959148441459301331868876113362243908612711691879933702360618489861012353215431442355029962333863544185505412204230449422718549799578948143102169906612895308366338326840489399497308820264723275362436970335085203548562284277479491214761199051728013784438449634375951075636028304042737996413246132889385807203848463318401777019873538176133396028240312152888173674280365239772175487587241752142459128536229405017295985329030511526914047222887836784332735946569325106350385763456574440188561341035516809494994032524894187579540692405282742109500409564440871314562462011566833199160787211287855261505928082825974466910122444225723355103653863301144502405469312925977124158242129833866234832308859803433398411308968353045984661189697645799110933904737704063357701117392717397224327960937627425237919631411968847099690204960806932278283672451148185713880197833483853546909218172654312958301818463448999443023503844963502156704233395341258154282267038724253382408140334501375941267788296523651746516459494538033080428504933123681188675322675087301721877000886820904958693103413871631160621698018780538538284836875677788626430161281213518052603315135581772418749756512614979571803266767253701493254887974566389837616066548855846473244289821910040312805147255285765264465651477393486616181123492967454102094246818916852398099124456859367703533000761787534822388042774643952578415099937832751056077820129835249490532816789023000492492747878607299741385238141315442258074196890296682992551060829121013475925834766818479404172034034538055957316556965252144792528349382382945071133288957178088995925030443065974248109469955245354993024324724562968863965792928642287492817540941618538183263182014986127168920903350735591666362143180255104201522367263085000497085694286210389958224919138167671714666612776213772296533471192728865443400493931322938213010284603848996952005516717888348105356378717459942316494329973352365472021702342335972526463293563995792417951544613110800576750340945137360469765440827306660622434265365009557525412356250660835396212698737912798041286641369472753069036930820137586629732058084913817985899527298375177022174828237741807089040958983149224854268456456760417984484575345992583053579262036988421163895913851154589783887524540878126211185176532470931560489710736623161425709423191990908160287635789496413653083813744236049918096179302224252140395012293592717801744081905597706388888039323882591319341743211723305916359017564608532277221354872810707071408977627105771065884933934200637489507720720383010185081676045592569751572485247415989437747932987705371739150362393370698302826842584282644643441056545458184132966775805009810418687258127510773461661138868934411424220470325313855319927714828719823168594646763006476586326980868675574811679447704994181747533560365974907543988217131907067951242238355582261631634973454959969405401963305899159384374049820666409781091211750285319330879924458306458835320565029608031341168110543443064179838629687196105471454538721301796234590186880017012357000130497237017633511039973296289077157016793252131529289570913469251277696033138200011944756118712594769771763172326069472939622180873707183098890090185003962531582748883337241406265382903921864035318111159046976227371390918312024960738540072690954637943315271603841750049338340248699127468192991094773559993243332329696586958475921975244061418069983803674327260645387000834368518515866037329384395860682821709795513983636918205578793488984446736505012260090304749229893774972150428517549829812412663628454532477445776640716131382825859354907777345865502719840239716084472942679419946735796710821642619094710122822603976013022912170225201353667617024882444536872161311649226096974701272142414018503516873358326374932771323504305737751298480870461398891339419840755522440452830534079959092878466766258951705787448083334452299833155089827624488892251870626985092468876065278421806609797984366642519354643798608066058510711610380747827974497443523052954842108676295524635306933734760297375855057048633903752998367815316278993044559928599795134896288025857530443418773716492736194513688222052576355139545901000050206311340639416735397903103156701895702434731679004292810485952564093032709862516233997654626580902961907192333289263178956599216495412362622815602874317970113816504668478996907074535571900581588783866167696080742930003230737204027876538186985535044629814731143413768174222698677720986105569410993354737113340818670843368496406971545862101844067199875910852693703589532858339465336376314411167860924807442613405986291139703833176089019282586188483321879869559186989926138550797447056669373876918319211192032007740685920254119074256407917195700971011128798413424847967138770560429901089032157779535290740863700623226188704892082264096520492797923579527591313968626511885209382662133799715471547404573547663353809052532693278762915546886721525610039273818658019655838916498316939373389196702780059450450422981126577878484980149751708947903334951819656921498624375211804345511912767763947195347091084948635548427687870698326909446849973167158082798169796763415907944616468078483390769005415609158315280494962423782681222001664303392693741352187460415030719000577648503083590089042818779118634396537534520092618706365919399563158287351589668505420464982027803011657289866745481344180738051683289656543880495976914306338399906324496295745176865295115433661577122338435470224376223053212881326513597727413209297998615429083114792530537435141337489934135527424842780072983788526261018335723633047017153467704813669329749574398719502182551625563190856699197668513285550018887850918525179256662797941251282206836857474240921347266146882247975012081107550915781391659782232209850971849535802542054232660917596181631151215859908817916425799026940702464715366194583396812545675930665221586017004890456632642294851685791901913544125189357595549761209533859948366337287186055852771690694092094560381440075540515572056305652991020207146731919931427807078591316264744886206812866520955415931955952562875628023723274551811119612177320491123419434313525202741677730466831048980618875246753609028086766414375143084734109684036667489726800616533863182833059437959930577651304846740583908673027297826839185971296698139392285353781080290112046538087665010493419160428058936004164559361938641542933162320772208575245755772379703672595683123713850863492768238370740755636849685451084925789337344377323816189335070174336119751924610042001916789491831508518472994613768600421499041269974198055800111300308450705478095711483554191415377716057424111911191518099332143665691848062482737933805534360204342104465041160208706682158570765279681339993949472773168702717575818121353261801901168893971632352646793851422275519992434772018786063923414249461050975114400741100571664223624831307668429665198561390369401550455428379054225161562108643657711891810035099171516371102379698449720978207906700216463451215240761926757609415450842104193518000569987251172076902015425566399046403817733754531025386892628576735151574232191948623775380978024480214537618384321943014189047713642953351001356803509364385121436962953341748988098544607191419260634210868888740157082821438099593062404030543782882095042262913713793666724168669271595566200014246685068237379576569006165407447527690063517675377242153196456550589652350626050202629958001731631041211961638619896925340952522297984718090867553114737295418321850739137841433116706558832810655082407541409622069683143598504604899734494878084532031246386123562185078582866974296936250727196897510380319141365486347622253455701668778074987868530400263373060447137799257366237811458240307575749452142210566856808270900488392027062112512984940030082462773625756457237130298776378787692665603250392501051699587034125164049876814405762425705805986244681777922687093438615883790787512447314488823045657498331680994808367926784779211487710162328229909497683240033710790611320744616723766367219929272529457951838187503319556058097968079673554694725266269491605850892888174372051801976435688136435413242784278325078477904912457513789001313447924608900647631402051677839560917866645774872440385551671339498476334440121994450726993836747538726316437639652792942028888469757960845428442455110171804085546451404191028378644997587366660438419571048445009747934495007100989605587246581195257198040579110237922544266598272420572795408159362746115701047581553766322661705943814728829024064174841254744152218290071469012600568264580758837119142197325032343837243328531232829580776516306021731471892283919088159753996385269880038556108920235757199668446460364312870200488402081206817806633754165798444558595142662450205933343644404203914688150698519131901467560858215836508799300192412181439037769457472487927623459808247264053598923667606417717676011988654172849163968347631392167572242269423122520778338804664664498805722049357489747522524029985052520017931509549587511011539035363033980125477862634402060778546951063730323401700173832792194756360673689215442989050892034229245253570044768090333125485998676725803664215154695743663795940266486662923476686434293611029080208279274752030828592859662305716760432663982953313893541427229054062334791561442489333790731178801855821188239618194513619663847174321197808081716705047395225058837405572568654538998132693978122720056326661616428730782324782811841685880850783401841697361787878554489194597045628021547187884520061206992943701769967268257866834598332498629114281459674708049169848643838570140524964445826954518914649660171805624021089806477494611581307734277328589409398697338508480280541524594851278019158773940668019423179921933912410970211676599305257660229806358116317083866784864132965967171264537420876282043996287272306370616190404693892651791483093803018691777012312377320084495838587472484124682576758568773243701734699859562125130493365303975825581516876795984625874075422394945747990726010905832236423430555835467019208047070001240056679995761796244182926734025104970181621594590710350022372974603165020217323724878477259193571577451754262692046512512768127711581736582789143861840797308580179087428029809349663755991605767597133262558586033881336290660254917838180031287888062145399525971817394666032328172260671790122466066107068880636412123727253158537499976417265972424594175322455430058790511203011662132544529187598557074966422743645068672658139516550410638269277074954148428536882105483287904498175398405411583268648178303648869363234284793149754542398544296369816160598059163018990640629542686147074468724020707358910584406625591169966098367767626293345969873934388385024632891968272118487704383791061039484647169650153633601664143056772218736963170704230071033287717802694198711370431141179331187686366983495902149328804558092477081588874487680353440689010633302865123898307614125482107400615959581452364680583485854770208008207435554069643300499133717663250222191811271862333153213786793695141073905910177886583155708780275078050483203530694002009245062308030386783878729802016367309959594896062660345976840130031335082745252126924629711666936089669743647504144307450062717801499297676325768438365600821172142870340233652536523510230888580958723046971454154573594286147834683713955703531952076553050146390732103850142122031587841186228323114330486052864419650534730266857585989427786356304064314597287023861899625317729130169559696889150340831898346240073410401645496364062446368681829163046914703143117728625799454649713525925743504383254115749968473604553677191052563567067146057714894092922765595311542494886147988276627610716131639615706445949335348699783188978946441836859542647455157967772718202193446696398044158378693080205119393769110119183310204360218631101108128752375444224007146261486371965146114904727139399819979744217242254149519967980695051269302455427082667204980626808935975394253811532413228749980431850404135953987642474804891232559623172198240680684412585951457354044880410022172019947021347767456654197823755197653599518651551146339093258508280293610220551404555148144854796716124750832941496550618125482637270557931716978734358861887166999259714138302321379629078828344181088038707856653594144534143601470708981083879901035856853368891745586043117694649842740262467010917606918427803056750857293637415333594429205136611782588042762796898774086546195873732447114738563148832733538537673957206672661524837534210948357627701224584585658660441797269803029531454246914656370073489638826457827708694028033907805826048004390139026858926620675534882261490989005980544967616180326323538044162931780443010341815002215149277904646179317324353964149055623991870684239488589040625882496426738076910687005356921121716445949138720442235933170594767018281569260782009633667570940517449754811003433718568187517891884193579325230921666024931421693399008279818368341112482690782625682227057155591718240743635638788672756907798030302340130932220306259105004467572553026793319981705714755960631710197119883051603384027357870246252255538715104746752456302955936720840045702468339882129432312558375683431904823530133161443683621839249651980593254562577580550287804848201521362648079760195773299220702658194029297897821767171683390991621337297008229687183290777734805826533996491628235951446012489689091223312129837032148281937219725991633968148912382773953075066191727041335683549302399364115640821100150927694820609848988398078865492059562158534416992038692994919281105295190621100401700893831323390219756159886460362195786858917433114797237928740256156626572223179260755929480974283184630941631578011839040016966791689587840038690149542407848143435139687465490121746486249497542303965040479814649130059187686590940247640351922847548599470039816684517350310196485973677613752343216970636374895344787044178080108441114031956532106330880479636439496583560498767866220286853999765752706944832777146679767845854783780481905762852822386607753405448412136623140624677890622467374883866456596700189475485973961542332164622410270247521006094220873454686252830421406054631649825145688802483209362534047440095112207792769018817294864202853236598683996659635340615191279164867805679464453490223451179322950618629927313097227841609128755159506096124328352607564509172282798854108407223744422647126414752289420333507433012093552601539655003978836145635202087464797897157921838346485869089323215760030796266092002450693631761387276487153093693293840604336794410021365896247838922488336119848085769364969752188592071306107169992627146069628134975697729554984494769408361150476958226137845826629894844347595620891704035663656770871926190871492156309465231366264012532891589685381652506015201406429700727165416340903029036567525646380297412453240461320986863733202650690619823321339305688936600469407996574454225977437158871563870880919265677091975823601562017267542504302115529897499691317045046832067982657891561194258976878180428265730869939952569212103138950890093481575507564153424203211938110501277640976359857948126767608955243708558957967161598114737717347886119913360911827373165539975743166499595762399742137604912275704901951614644516480353859127873870520637771260436200679911429050644251436267339861886557829490857197223727521267505227720034287211365141587366453634239221312698135396938755935572695333010049578231292261549961731976453057148228303514083778086386032552802443454650902831662528505723129692467442835060575233860416952893662141018294743004838152290158509536840550327833166146361585322700693788706132290989118012080808251571448201878741996973844206696998894667918512167995455177112474575887501272689401978888719082938865793447180878044318255457228013366463926752010789806294882015396210734609961898596408128759008687801046040251062108548901158962188258139245021232527054101488602976050061741526026287484180438681202022142781094608735739259170029369659718099936925908166651469158516211306089952701276354010360252170431106908284941243668296335077231605928832266425647656246534681695647544331639581871155446234521025920949590917292097049973311166941060212809782157998586142143583748860440936224263676956619272491474149252228592375668667520188157221445072443888424237175640273713297324194785447557477263499216377145307962065041434813374641992623616063479224077624737282618471133665127037488816167596496774269501200302922000571988191041049852586689658274802205140248503447360861255733208598029034600146720416947522531096458965851186247246074641666194025024405026650420742565933762216107141698711278045067573876611575085492103152468402896516031494548422982228227759396877519919704246240663731276179382019336980600508324620419777307474414862999743776143934386151525825575361372159328203313437174240848412403958411015084172219577517614310075837393124625690700247293872698542301449706258472271574154493514381506127220692821593958485124775583653566357037061418560678121862315040027775400226458513491451158128077736763828043308566161339580631108459392794324563683448683489665920113740342823388878795581430380073589992382662957200512713754262005517888530190632663751034803702822777999719842807486196603316172513326510292396294137118964269556470324913874148253684191806965132810485267960728660421182757869912136276824235115322955471902361848327640703207745191061030948871805953784401151032749109632249565932035906947414563198100880223995003036887863153211436623162583588807156956552283253890155507456741116891140558682487044839567187615923931924436827406930199777297179626189237513633058041103489771626675224558360705756140936838896731843330746054360960919144574807713519869113823705510912434960271278466381778329829029015317011093096039096463877709296163169274412018577194517733261754939837712146168873172897174415404209799214442474185239982431947514771469212662764365536801463623829737045066027482581269495792397692175045019968141948774631079371840134704497981519492102505315724603635339443996580439351783065298673292097313741418865344644173750412462691885993130802072198092832982408263654712423505604823129604110637363268335481838390603273117884257018030450601360163477143132785330023109221901905250336668946131231706297783056838072194237568142036826723205996582413386221823940004265371785533497565765142892424440861227187686942246972088259790640152012761403044672609809432635458884913381798382594967220504223861015635982129503290180252883926922724294441964294937628482477540405370852435864504326297349145517689557482252294890065399552524641127884019138913628648140310257605041155514889638238603164251810009109023712204046823773634265535833102821319377029101283366311822025798174374763617822650435984389166146774369141453021064326279799093916904908336188155362609779554362874621418295696185735372895881429411259816817365618290275355762920564366982903776345251633108221871889519273164710441142707702902842246349591311977254560314304903750964084626554322102800625731815117708197541930182611190814404447461886463157307349545510781165880924558395211799032367309978653137895022538589669924118675632150602529874949352298598031671148433933106290247956323190056273072327728287263262739519464169116148781934600356956485449199106432345811444844950104493267379560161767826216665343664893140368956198248027411609460903162916761728440493953911408596632400643700044569362454799283605171237213946553578967229028382969872803341655095920517306377706155261385729679287522410836195211944894077421326630767043646324888070661181329047749724259538947223838007818863819429347300595296694743684869670220742892560009657335087682608215147602020482015327809338508526538173242217310066765803572931545554374576892719857201463931810789850361843620997726970944423766581202659354506494360567652390777046502072815163691044478707212965061940095664133252071466466119867474795742698838996685565234733913348346430469158219529947248848001021138554501545836605317541570184007047048080604421266688784736802181024373555667262782232122263657881839910588064891055449954913629377044596709586254725570749858193233637051629339465210311269559643117992658891887126095953654109033929798471483560969086807431460863550446463142600921630514131854061908611430304759212041711015375447715643091044254131518162700268804625996329155698390786791912819609172578216342576555849121142149328707176615037925849054795504169162277686809572368094908593602409365198460423868481596145441024983066441664989513197891725175194289691046151882262702217531295502908715954092359291381636751909315881580776307834033842057316607761306970610658151487740916553237836344365864485642196695272868968425252530380611983667671562164393774034463660063749617712509820143437727796826277818766807553890698401747657346063486305270532495243806604114047404895293814444587920240666251422576758135577837320168127790272658767587593171466501194907624711072995372629886154001369422485512927182331333343647204084521746283471090741923655615543413666729581432943747498736180340619314047447333466479307379470789482008477775125973843554135332528707040056649921993793632883363420140642717330628704147055965374014354833637311664191948495615528764843270797545365860560768420344456728731573017972887461245472295772289511278716519615550979005003019281378636756163632201213371369798184957983769793919404159383651574390512361742237586935845501844021183150982312520987220487970374079540530753239505025677715542689101919771766607916812139307079527407481219372262884598048052040077429598874849802409609178541991553385303855690754393207546090336836110859468208284274965081349955717150922570957049002341285595589415276112344213831952391800644324000716184211103383713611507255902025533914449700399193901072812471854214192317013591756301113352169934981950446909233755693897323626371238799112348199057421695073612517860621444684286520875526623708584365052887103286397285727226537848612468094586981685526746164941479346081213670413239795930073255051400940990085709516431152939572764375389392883274974761183673814303156700768765897734937806210803907275681781662270604582313984505396152279216697980704851486888146857826874575543261993567213303415786060656424084531346835498802835663181278942193775554165787043455249517165619148623954071784354055459486355796151967158066448949844058548684965371806633144451043342519853228697607588813532868319143600867738645987859977814929127724139697124285841300972408197454391012655943953944942393336548310919690700879713351007820953868700343868789956114007003173111366420710608985242879975939286827278736376109605817921088286679046621290919110915983302418146343334629521137345689226695695806427655797950793463917965108486574015327294750315299846307080126934383242980298496592151993904424129687962882836883244825629015860128126261474990692013710356528167589559401176538925507895816342191607466087731612936697600450707023612812942395842654879400677063344908898503292183002296743138109328703228031609397125699821130709452650009339679577786412236836688702690789105748625525406206898992701100216530338426938438292675521650631437359450907982921746370550762097008484788136302598455585764678610879050945190375493159224858633602744553680122243600225912429919469314008663210243989058165864466009622089570130664151001363629976747488769857707787901640429548330663906768082513827977408842046623280974144734734965352709984417502346635007278501788810756755309680077735162138858603336182168306653922436252895016414384459874493855954262284533386925846469610532900709039228285976275247258080988445740820076706981133975864134918810072064035354305729414795598299470632290350026602106396466045490420819794640191543063124813114377877333977282158329643992771040620369289204638539018724775371379421630050119817776758445279036191677113241136850443608338855412931558456825416890384725349271728083204154970663139977565187469645398277774533460044140593125881357284683225017663285565122594115224877751872648820167411269067000496587563305543564894351007858062591284575043005412417851717329069296940252860975076454880326439420186631545540364702955937187240934356548747339802001976270602007681341791967434929405551186113152886356279841716265601635548864544164295155401118005133079754169808990585742669905545415817075442529897736589309060914691207862303549877221034513913834775133651089827879333435821080031864418761012595374074478755300901225646044260643216867399032776568178326573440539776277837375093397381678730182391468537406250133762556989613620897856165084845396999005721188604829760819398023456051402088452772435988551861745347476961044087115678234129787230544279335132948570654337596987673546634753062487140598837115160635930420473763254895686846327971890462470670059812384062479236612150076475064539513014405730010412920658502621618709587990764206933820268270910618630799559453726814202232488866043452219314752988484499100332455236954155326450518595913214835687459549627129736589013314108439482303490505595751002277411041732970798767134148472377525630066129591820265756390253114930988256361577988968711521157530999847898182218518254199969569433163474276520540456270990644169182517661067571826998398964615508789824573187891615764120940342096935002138953392008595278580064973102996307193158148141197134321637126705322674346832354137500328739488098394358756096967786706574633819056508655372317621515009073700631759142428085469010076995414824286236485715505293592095617707947039284425657090040997144466208464896172838364685103982686329454810115966464921156033809296638880626074917820315702534018138857789201047466126223577990199764924241229465996042401637243423082210916831818315210188698395818408798799725643460947968736110556719588616328028197679786524599525235057134893448700988520313820349148227566883548604317048753965526760560795082600769411008669060360215449514168682179480189215358134308569528316697252009980110216345186401822941821366694600073893034241705350004395157227007687025687953822911891894031406275661998017882261741809085257416743758817036934123142062809832676950670637383587684061894732096478166254943386090490657427079920586838351266070875857672616879294326585321077318857163814930794773118414457756063179323249170080488968496873489244259238413430984378392215016433919903827160935515295239742925225966343329472481422966785919388530702298953896005103543605176275530023601836421599709915480720654909912536501966093960577795751509617492068676017029462858143930338400656984864181986127042919686135356063270238362526794433088851252240747893942744440993639254811817211559429482777321047233685317244287921217564735714272420792051557647965609437128272373202645639741761240739472145563165117178474589186923031971923543563810047187436523697086359158420405327365844086508812248672891656564876826630547168985463656062460933296786882253985942782382483039603516004934172136656263084904625655114386911465962549842220685275768833060884260234268296232103303463350885459113864612021025113246551094443992270071947879809083482333096819297816342989287587874666751895025897098218250504170848611580835232244890628147912634866532718302860430809942370511265132634109912678745186340060264787425346762068420884952299750922019016264859718797123403720124341372457629024551588083868447535672132183712430790661947213002233098902016976308445426507404602916799778006011944713013480451431843824993993542867461195454345036470326591428792364352263470619301408464942430039606969907588500126291903181176657344431485720716214226198731436776466992195856147094490893274480116053759680878358885323485160286491495533214360089604781303521354823231195097265876178163808407412122704974063013895979723816247568502105448517398542188114719343935966339850709527646145040000494215598395749016479603761353212975293165058124371050350115165319575887098250616843589414996838547159342856604038722217385398884346223514585985380124666167527404159565900768901734416585645589391711614908725045935274783540427675557332795555454993688824218984457853546699820006943019530639250177790743671571323026335337134378199873730486555141415751282014035996006279516297574037324175046362769288334182105159578680506421505921189053268987756033946536437617988572301483131198209533155984148217690769504106541001242644077177976078309289402317686648588932495093705215780889830821921250837290893525329019706733517484103232897772342108328581673736704011963241935354947303575688819471801790556696770627244779201902649048430305977574226058424272622661473558106840397932414357260076334688713861556620617486278942834318451927635767156076353409192032256910446058165298945602184750075087225274346989068779678408165155234134136898345798667852372063585779000286962756403732990109274309181914110837831022742999821954877786394547192755362598914589787728369728229441968299900343248005842596994335206206090675184261725686573197348523857110088393842808282400472881850281215295676667534229027907533620441661860874200541392220648264863371383756865098418689174821556836344650521666558023032085249830669685387725645817697300974499310302171467653009002574518524256838429574961761389067329437159157442246309303365800963975746813084656954338956048672714089710232621002740958158026064824404402696149208446332591855423725907476702071817475698393972318728367257920149733515006976002424281519606562497818769244640721691030312854533460035334962253947633391172799120550597083374750600876520847032159503908217615371836509845964951771558047173079920597553023867934641958589203468728533680525458371321727799107830969386113640651887067808387803496069572617876811770943965022914238663232808279858268595885805871175653400971998203404883030950258828524424107288688863458350662413210398007684386336781509449067541694281266845170383554607500596574688246168027710029123359394096566159812335392481478912644742113741041941396977418260394080064442200208081490354697559828254467324182785843929749984476622202354056609649507571814211319679870322327707467823564939058153783553998096706722892271722566841755036457303314111525845461922521350973627648909144014320712594808439833250564773150463786012699467400045552848081864654212745183550762649419940680751167224002531009795314857925846533913005008344960939940145148807505308437394734021841796259978421400873002682549747883310937938117517839569188025356640010510038369390002293675342584634387487647333869009414400224245266673269072548857820235024529816158958597893186033752131499831334483438103746578954954476318818752380086425946627587316179059646370157078636110433546204796860722439245007719128545432384262633613839033594545124342819788782192505701362656711952986774911481256458306555077131587060070566237438696022180425024794300586008133475252172213760246222371997966752162298988857028071941912686141486416667082795434949185655780514623589315495367836341382589938747420415371323946286329977157627936607807556369578903315933996980339934481358511504964298539595129194015756745686606957468803636400390887525133931372679050770236920068123342657821193988559793123954173072525717015109598481935619065621301926699893465005853582593496987138288733380718678016630635413040596398784997543393390010733443045424647567403920720500562275490745232958145173346789128522281570893802461839628390465141857667910415916877406120912431335510716868489873880808082528041108219029046755892340566214141418134593540535329559079009841197217107179907108009339018267565081876873659010036755433209429744982722067783511183502710379592985379720370027459638659893439017691887995065054393614081647267139584848820840465497805928045858905684449278794284227154089657195973455945160868436843255600760289203825490821238863800317485504541534022587577567451455681032239062993003241225673203066746414211984774083291329610720495808741847788211035425236073158376619395866714844050807708751581769565990602741227191158790168502679685036151666665080563108382795675920498966775118155173665248550591049448865179343609908787664668289931565015064692122628480428392444674974340694183000828678946283868726299341065552055415971515572702890131842189486430111380527078582147793032754815743650861080086414548410755249544011989107325881663626226079413515651509590986850661201157528564231677540806159410148208231459891910015594680144838933477678849881149869091153066549763582267850699580268759682241291145330399924532020819711928341767845287110623308993325431447324544768296582410690597165837739250158777682572210089515953286196499388052715301305710939683170793977106279420551878426969632860804987933450808617219282285483608550053644173242840708791695916767333850875448796174454299423675598752098405419778758918988177183833899673218062690821617831127593905631705377987523850363953569141241553524637904341946359179894250731497075130863994007666401092323239416531132143325714547188328656833476120246162701765527646212573236400343087779144931087688427634592952550083674177663221475072271815485224704745441009419549521088762983626249490589322911621629263406982949084104578079613878784660646915271980170132880263804686205908906148378153084413942124281489423333163965681721578756046271091677371433141781829145209880973015533917442496692319305160773687179323154637596216318818409757728993581763644231798037779207239077960517787007066177068451704097611020581672883246660077737935150550196346878275489936303933234441804142146722188118905923186736860410195708640773827131931516300511027177259437482307556916790145955999567200714050884692362137321680307848868014266189655729295008759941606046158498197094821166342583531279048249253572652244264281947984894023943460137349953933355630343363925022009686314741984392045325053299051682755063167348152348029725661985401216940293604938700739283826305805392877395759646462960030646729357688970094344429220672559490580689772894818247705197071572456909658410796502118755120878368857038190248456157424190916883041614720600007000786001589693557517854450009901231342792584658223105332661303313127853295329326639151162638972322380228779001071449201684866716267116742106809166515259789961636192186906425108518783593760548162966151436757958705895416708031369257081239081043379089569043132487481462930317765773489971402434956628057494693798164004572955337134077798067117884422965802759073004316425706573754254907100366492303431944030388583109683934646300199464730657204961800289299186503430448407884858358274257093965225431489020521075802252795795982603451188310680172041994414698358866437218666381714917310601021443058358196912456883527523751756829637274046857906857601768379961925260066137910542322461724662376454368294750344010002410176884219475680367242266799166557779973920854545695948112159472854443683166807799318373404965926159767195610588278889630543471584184889871548651956383772109711499483098009790408662379754182762534704391997203924733447046346397378539961802124748705301317146173211713157348517056937277053715555749505720465626424567645924199773683213310646248865899665426889493561990601778370252713207379306614742435888879851868418523373826738365329411297595966099301931098452681534141709074630867996900164076193882503658629892181812443311469957058996035923995002304777787984579606636273834188567819674592858972470674117420189691348574250165323608257717762478607314772127017739185741526209413196421300190635344514504349074441999722148109155582417511863086025136866744008096260615958776652644122467318332268220826253110882743974161800506108839250355009284858438432401724528099544794271930409383627780598630438370160980853500538170864905087419931372780346178985667933226158699452195749522538426629150429613579352855775383225720441938846416438049039588935379055361547598738500934324611695784708319860542422282004384721148174561185134939102456659225186191620308522434609132009819704797182867052652389705775350428256078598674976088991695301459252007743820437554391638718267867581456523828696500791865166076876185544057732716273820389565255566796785690887030137925149685674490949862520900212519557611504979637661511725033190507770807710265402926498972963565501091700751355825583492157942472194199839548782980130943780448092171401612066231032869202338180929371310784824956741913668479611378741546326525400310685905777882175679546791193202785434380889817550020889998943401975359583707442768115940775150237609146069440890269408306466837467071119249868120715859773310100431908280545372679110995645185714245180962538543845899365429380534334303548134480862244551390559350735694833356539097639875572276993020066340006640551068069799759748303962507968106565484061729432285474534251510912791192946153808096284060424086212107215835626769388601137153627430273186146523281117259327328813015485058548749105066676755833515537011202238608826957585274267559420515149869860528165415649956619793065410562469189320066993447176393257209194580818114496200545735644861080013415251280518191085453953534147793452575092126658505906336031240731464164101582863225817643248796830360344115029089975684671346911276669318626391334473974054674734699123974665880457812278477501994070965440663528293455371935693756663218886715185355895114508564907898807178292794364596176254823760664386249960309849478465903966931436705318151368441763800164573150851355007819758162776750083964591650945052485068568249224408461186351239479594371747018558379027492027160167594397723123706353108224447095885855781181022107489565685932371378738060176030237263930971949661683560424437470949905518581998250011781708992074600954167383145809340985101682752460866554929255928485893345238757871815916137420908412769394286205537913322442737899833421869316204989180579065714163753836313487460710380657716281523894473991674314940144858710643605713943392536417633808937022278562437228525487918371393114082585047130540321386251017817827403717361285264529171832166864559834628804685463659890593215179342999860359252467911708818296991810399274340615241306066910550962248823618904620146184933639277339827621632144730707886338751344173643439118646605453633837598086292700193597740073707755264610348356544160325034273066020251180867779809525237681705157207397222122717392234740253273315349784597237244575244727437986644520911891681272203633125305408075258826388598784078376263855066233960739442338638789328553994765146894889703575885538319960876183618288721701048869183217187189135510418042491376363828207467465952665253712660111519928735688750382392142739857135686012305625578779663926959569629533713706707181865231652990033760666133317173175356017102606137688117527491407454645206245518489527161472251998715239859869513648330587401053153472968704690772148082634793349636264301473788637285268571517933556303585381356615739693010459341042884605516572028973425433722340959752511992117409856623843515880691516991772731710554459241477049883953289409053710979826737832194450831662116599803106742526955374884425517271691184770696216902503920091387565044037176880513440361910817371798963439228013724618683556380506113287151537806888746922010621892921024863356114789777307863421048749654383241638506701213090065026845760559654283498282611057059027443402471557351329603048231573963632248829775292996457256663128399592968802066526556010280697762760078066180490260813203131250914041932138221850478477059471267181405667885023369155491060989672307759288532980804347953814002220362497860476516666033297989419163764412000446261997521249416200841606055095230987790386982035605037848765375538839581205837746434908646016356836540180286680996706003123192841624956291253665158758361299660668146838711032867649259540201153894207801586198085619200157858022569869043317065975868639983407330998383735788067635283852226784999981724760226572280163689910141460060536116392306370976559884180336532544484549402858321511006489672125930196001751145836014381924604489003646670098123296885050794252074390880573953985822802714258519849058307292579796551788779447171104158399507287881914549668616029478213103765245072921144587114303817491559289014015856801491816896310170858029423116282310141411209365407554074263572150858611335009389953571794680748818620577691966945471673772774219492409202670225654391669510892967877447299640440450112734339780236422241379861535976885116051780377607039506905116292961221773080393907128173495272799183702263349654872230098528519617679777295633584926498606970993321244536061691667032724373995266165745588946697022887409275206681402412516770567626712582884645689387416508848494278886677372288058410496809652381577674093051567366219809052889688710416984570176038281345287371152898020481941974773465184738308311050428719301293334302273351365479599587520368352066567498217581910762236148598155303771034669868646491034387560220579754662027784697473880663317655545577284092829445930417427532341673240223141633469618821836469040273348601663206965939254383044213265748860927778877084332582301416258784029508578806899496858468999853488425838496064355948681436881524576781252162489060910728665252112847532771110040701124632566850543617576017313622972395616523973767567313323590265555070210585108959347002236979830800267695193672096725347988469973021673598411701723813678373579989367420679723133785429125283752139517505388277552580224992163224116273939774768447570301457182267320114753954620421418564604520892235698189037074414204472067273419889046742681766903756918448470817970151938606684903695523719647118440239030648547387991753925792671471666225166777452795404671580533148986439754848372470603683550419628596613514584302321385612055185758963453865286616639384952906322006661303413722856089944277268650561874602885687329387432617468493324079224343271496895843682207498360287055010360739422210209295254369493336080793515785854265584316379135312386915715794922607999490222339673542072465654188217162203067854193401283459937424484748673050218995131997206467185375516775092733121997679073412575575232209330567534228895214395154968956226697720351167996789815377884587904756693668034319576681442348385696935419997449885670857189516918399498791282808863244998889764324535030216166133018114633629490248443790588294817023315299484599332138875393782095663708937196429774892757545405451796842247624008136638520112998690829237009388077324812152229287233199200468220939982206891919687995068234617969006496987560496533664899638264470093936937382109072380779328593497486948025886274058413759808508955389926085315357361856317841225572560624633849261733364481815404494480911806048122940360489540517089535468937150418513985889763887640650738767427025464359721653794170998237092834441626736279380269388333544627435354108196589899353896158856504979555598049882184770973093536798345774508176882923148651359373993052928862232488634663083160702039866488902355205250032409135198869639049230573162597517454164254115074235122608159552103287765913122255517475548395625773592334730833633914838206083655550812371674044479522679621196613097480065290502205755697308142436157798505692150676576610436749606293643698581546685146576586923777124520478973376964329135985350113701527653291619726390687406441889495202483230741782916870942857878862186694085892551613467990888551957523118375237065404147474850298961315095612089921682659599433578041654349547050578564459810523675406736163037056411656211468749563646053814877558654276222953950262877253247008272962841982744715141535198523332623636840757285720564462557279458081148149777204225407084274369384929730882375010460923199130315264089342325735855625235887327263263579882974797264719372667508544878231121579687676123779259389831674184903620662863646077914161951209510181154577025602611253646872477572073328790209043432842443042583855772789185206579443197305204143624898674872042124906224478619860871932421510409865987217521489694350120192525640851467799234666351021385110187193451763059821239480573920149850153664985656149800688506902770122653185546115648517815601308205452972719459634378138497099424774782193520489369999791434011507144778646150379559006515290298107312213546528257573276062726820513347887366555516233601240276285526146623916839764303621068962229446914443529161979518575663024318694701150315156879376118626711234839632065285333301553257501686853129980612122376090574546228168761934603981190781342037841068246715357286629536768320782715578767928030951722821293935661434016167180526828156575557633414433086703132146698866521358802260663619751750604819754655063510395849417085308353776380412872764029065413926733804072468179036078714829806750311379848078254629136059540816298136191056225960029457754949892280444950365715163813741880675811632960744190852368353556371876631107981064150475415374941657553611971643375541064082936195168450663544219862143905218227868165724433690256416080760777881408202654077313028016601931253752617478437155612597081687785108586795739415717010301276630946540713712159851111776175629211779920698489521987002761928185838306618035599103889128391441159174381801002025065970784211231069341956077948735922279294276958705357697842421018973934204194993527444353697896182894305288642521639652147132901786064217518640733281112014499849146334640039086466546351894003442085332904682789504744478928980417159800062464312939168192176714179293153324345538014794825347802638934757769301734931342303991094979203567462355416003447786251197923098502479304658611756452369847381809983262489846699466451177681889245868222469028357579546187756019806157806458939381571654688225685845198282405598103597395824566878213100926787676308101958663245019351344466131321457205215667669064581433126571395536936609528832246908197725578086252902435370048993606294005913301258362541968040489254503038316760325622306329249018800470531271637961285130325141495799586618307010002582586770837216521876762526048231894907980744986658370567432956493161991103761409176905749011253926560138375765012857772689479838698206080439866659246163469242859487480459082759966483357684141141037753255396894729540003330457728621650300083027788239364990269227224361014451168770742481367506229345682988696967739510300055490221316710433009207322454602459967857069820230632831694724376627368535479992415370585586778630979471014497302261051132706169635141981516915740812287917106196270657885370456710035904286511875115656295996206479122328250024726898347037351394372477796069686693556344765123052376105502388191879876356082368191312495365536840229145249232783561719959467806068308800153492688631277494985489045287825135583789281966370380655057990789809083678395031063117187754151164717714665661741629914449235821408994333618137734585602410131448253638656298781652725353226513291114462620547985564367331163085897882997897380204916138202205099948026395890924293550597800536356207129541449678241296081800959826787929956000995349728582126416161890918234569010183353897987400773756145783151481055913196999366425914753885584075002432376265527875613988134256844442059770016140186806100586495224739029336166939174063780700616444359904488925112669186854074400387098125688919918107747663491638652979645610449944577571417415189451584616550050334646652870099725061477749184679556107897588325147332308981491835108211370721006026044118288732563041277976367584238507273364730176704735795568038116084210142543423776993797385488654913630183212476311317899772530481640321490398618768038257610463429812166870342161414619180374817368984380789797908830804466927074263681480264402595251606216153045982137942292132549504226693676068732557306981138181111311573379173710231270161796245965102537843109948983167721426232140542590333618389332371908069521437166329728517129061488289387582903259212442353924538189155259213775939328209173671793899357939880353227119332660205056520590162372923563671989678119650394456373472690514028922037787689834531947081555346431024011305786868588238287302695479776697852765197305961831835110016806325193747194631405548147156216589377661209391078369946514369235857051280386485001716896958581771152976169045125132464607812740513996133937345201198972748115273917593756888952813511768565969385092079512645065905301022149699372898733430354601154593184069740808747150026880083395704127427216486848196435948035805417283227216333039356181628910228251128686442842880269006764734574366670753911962463874723242205743644405946564483269775840233030274221325783745130247638456142720821295832449405381281408776069891638959362290458098567772114474700265868664066133901424864311643095726017440292135970288357987894085573760375195085900891447230816624038761347058574106724043577088242696492639311782625814205408226132432121178563682489196265336940717910857925590176237126928216947239861754055695072975474371391811179055104368247229413868458716786859087297772280031593266121588396738377245690269462942060055689332082051703766968956406527000940229857436339678725131960921584896576006547282787888594323462633037009270798417278946307343584311902353738998021465448874802017364022802286359860265003915059741490963478599859049655644045115374183222583650333969214616349611309189504243526596119841710125665004728481918703965305733592627391228983674689664384349205254789350328326762589120217469604442803823362827759179779206544519149275952298873611692214878512395198082939256290506545942130820236915990269328782958960449933206504277632879750751329911502478018840424333443113536847242366975387200663748987843523092430128911019388166127935389478178080278708079600547702257024223461301306705547690006643364719340253740558040982868927361109826311841258446394117528213761015917206916647594981493704326076354343643387912153914330212840112668054163200725779481830968993375681831695856746816535345111973324029262944132339162362403397015861895060562402757346655176995532702246856782148998724747397981695572802941592049009271902495401492890679662052283306222761052172457324047771520674994297060381022273091047044651858954954565837406489087359562980412055555686735535895609452733329985872501550031630004453976684610584212912288067810063679768850760132884588901455605664863888311675643262123399176707661077865566005255770751905082581420783665174037599792390189200725407895351533359753733107578988308158076668909196388464014997970409351899238197517782598015859456774074160152954614935985660175474064616704773809985918833855237317776429892836795099093620248951626840972449702373464588195315597726991957340858750978911173396413875433219122353976568826141666506795373792929409752631379502952982338307019052127261236003605859096404551845954204050644454753987094802070976801077876142460105843583691445830103706002336323238808442066049403511543506017720184095659047917761611551528323038957908799620571151026068541794888749610266163784838538170128787431617479210497998457217696202027855265590263624336845517381834682014936150954077854150097211872913622588486509160887548893130516049568807569419554505349267474353622785810158360803008451020906932891996458456699460173456045401621952603621772708010451776346099195404023805472818567341576177797931842074126984949606005239729471439459219258153609349170318220208506914426132168210707820439935868897564017246605159075692619235266768033245214759882654761940207983018469743188601285442051920197867619646102938315005411108514463830154280308027377201252736361856741008386582021331280536017129451236801696577422525806992428737999257285422736109069520210037134686200460800222004599114738993012852176336691581870791358530695838337559576774382791830836276512940773027650259554352510718186843942889361004437038235923342111382492128575289412341609950703665796394001174885736710129365570153630337419839595046242479918679457965780526746635712689566690345482491361910037072513390383897746519920501977066954559802675835277734432999760189664748838895191183495370454952872621846602986969106602115949760171397688896099825543032065849418600800721660641217092170910800449045848463711828106142415568245318742816799854541589605918729440453571579948830417196766338436438180668860568497951068411206938937847622410574888736460363292715076509464542972715208107144766860683280765677693268338993114055423660148624162137411188944429168838061128156607827482123528094711964259081218328510237376527265511178538839277319853077712271786110049607921545271957024394722784730590261831897874415865893670198569646178156647349035400811087518006030236711634925973984550881557561076236047777257981018127412493981320298111622379209028119125165057037215728787569240627193897872268333956954804769379439715048470883976125841468797885959672177232538504836712285292676446495983250624030572535556151480976323929989534271969733803605057790264030488354446749580443157333840194165921595343375222296981484116467022893369043652496199214910192969844525488680122256975015505051019204898323339093519879531026830273784207882267533414249255089649851544284112009801857355003090219665256159129030970620931550646320760586583889645716060853525021756701236428411121122067345230315321698879116801294628475088543259104834509852016717014309041860568119587830428552989443762311378288639949086838496898991989493741094750117029710944226070020196772358767645521301104624122645123195900112989028546885642251679438305037054816128375579870317765521804053851040569891431703736978403195193005970967777564355126310719951551905112106034030186306067921013902402811663285273634032148358071629938108984606694338034600088488518247690094865041367423866200180908876018752904912206459371219020705311379545512648709879444010723967992203005325169202946652220553686118968220888332582733095573551841903053211768234028563927634812617702261528816385156345002731809622246358291315468050688859785228435388296039868475619129622788340686276420669748446451434173098378337274908993290913576331920991871986193644330386767912571795855204404057817766974985003806238180235485302813050161068838333908611107634727510759979210550502279843001298123333228737668717500399155949693847668369790093162733858261617028520155611320311778943321847982057131403779701510809950322539803601403748356001426412715978736285355239170068915302120020448404507221437369590470724260588576129047807242015140966170689976826345704835109757136651402873058680365184205310768047592117089044935657024855711556342949832126666910564859331769131276147101397910630417363161935679165558279389036240628688551724991295379714160753906995657614634487738476748962444329842960690048164137186000222838939285134279746933171056995586908181138837467289001694480166228985762510705103285503797223012824502760540234869581960373334337267339454955003663973658120205841122827290378040449493575555152176603090928929067674377191219720905230996599833534131950941111945791276491970909234388816053049812469042765392796417763763425281398311011480824152739721321739729759894517145622407724248408995835858850049440481869712877204810537176341352807664783753439869334518709955434982170378418938108183605162922345535045908773334217718016847230092753919208084332527319720629029592749819311211301379031581422228406921847277173245366854762389360901644240333223507426268225656070037347425086043271560807349122857558366294192364025552819191505761057701408363254564072454650229813715320305783239098853724672624203327296972575770792967442800150262253616116606227456951467799029092747318954872315954438080318128187889166879755835857806404008583474520777976889237130933135899193000936723984662105653522447378423431214862409105273849088083880527535740722315788394080482557815734463355811550068377712479852229923605059708321933176807522573879105219830898382260092745022980923761938057134151473521698984501762691948698675122649620262101000179913208258446246739171022496800458808461352638785230492688965175304217860845820607389617450080913069344078624003516301184827228673504827441899333016425718248636193976315664074471163710852386282256267848066202950626691869695364960210044512517911974153696754605090097341430953196690283403534495092596329406116867389206698155554932280545188656732471080433759616560848448072341216033750540706101805343952492961897569742552926422299628238757961864924033414441074211275295086605093072152360239277757155097005176393139494654714002470290644633707248152250627053446693933010110226439705488120070138794515040702779592611464536525890142249665459231207169106797113289455716770968636679677576469920407161011342289458869967444207876983322710402684831513634333289165196242405554936023248528164531241062289251711750525889639489401579107049238967603314851412332777216714789836539176146131070075007228121978002242892326618295736293827640637430518344734990066296746982794453969618691863682414906411825841980735379653508302395155452287039586528594954292335503331729257943636197719116899008931843540636049694495494659386381867735515278582291187879604144689535199708918924237979723255265233819050032972544690221695667124840922674012503067681112561590043944560775887650663720043069319191304025546592265445404073340954214432671215201911166516512074649340202215679852054009117533727376795527983724388090829187629982775374265439332327568723309521762900151313680453930173355907732897798073449012257944815690775012200543055941326290004300755804636581452955974940958540528375885340253110496708223286579646767935224307802438546688547674413593057335890234195970031521055107970799173772681727139940613327916343448243375721888214393601186284247113185713265939289472344522493830549614674599206431935864474931945743522090044491461684125715532342873913367317391233882287241954789955306198779568730599454358938842105271044266516520443984539780599262573768213668971825769678070764805841877193448151628211110718899231411005000806437045276064058615783829016968845657405674217451220201069617909971338563861351678953385226460554419507105515446131552383222954105432528157865131447626446606754333062473905551860541532119824643230136824339759468231680638018720974801319179822726462065024870765718701714415503875032829768118250241484287123917074383181721578847213361554343413064325861711906596382914271567414293415123723383026588559352436614238022241093157609716473746162008641833085811729749039775726072613312187133460076390268870457195239742684212487666024666841190129297422396773334868146361869653249933670522654002687988316861279131240965460156871183556617643008649002585521159787875396435918899495863997677212088546252304265255837804692620231101797251188539187695811030122802521112559140298212318727515101965468916940583362843640574602109012289008481781652073449118397271525198586833574164898016704405930645814118852051883975816098630709122015826723558800207042991485735655858711819778913683164644967004533525364278505419066346734533580581902917758854017969713509314064877639387372630555882281031612813638341465582117147673798564812148471574923889995690020972516986432464993160046195090907177139665684626062856929626144102276622336924148072755534591723737641076788107624824283951167871862987368646744928953645645402176885602319759315227524432213604993697275859462572035281260553429270447566133272337771351613923250944262241349586182108150368145778132736396517380597329802483207517442564835009130030573350631184218865147533032554054874760959079999196968272605723106664635582551158058081681553449291872254443618329900184679416841898731639805192049728307966947643917602044562943874413171166949444291820536868104602863869531916410946528557040187905250526933768570793562142524136139351823882776967343869379966903489673481205818881220234815506224025350243375600328662411717398963129153178662643388017027512772906127508909538727037007950093442925555383394421876111766108983671239493156441526114626640919565594514050250439192279138382113453628586664785886214553589292887726443957003533647951164879975102298283761816992001747139115522244755858143703724635485352284568935397216041825791406757742589348708262484762874273966853981396941032818185711445069288073057005584562966463030550714014318313494244899165711833058926212900935185293797689192791677499454181820425430884493526993611891682962945973853690052463522649034333371065998914644094901577670218676807228197017298344439687911484518450777380055570907249822906502054564097226045651566020965908310569599376854651665027358309005696353805090841401501218743825753487050373142364854860043436705112400910834984568389063784609635682173833833473718330933540563157445069301002460095221775434854668702217429646403657340797652465523854541165502611220534721038709898115019766115698458100215438142318100146944439884925391684795069794957798943773610756810750562420683201034199130115291312059912296090204340747648524521708344860198272915613957652181588524771629955401535085288438898809255375263208846518160046844784929949556434849521030873245669990171060368844647209582646020214830405788882546750260114461540007811058953852851303651249502730071670798886323593081024140384901869033262243977823866321727251357894688479804955113438355927414828386277755323368068159220404085097927971812058568926250700999119364282634030579558950476385950591488646254064146297379115360345418563676497757573686135532400581708349720020495522751450697408730549975960490632358065968538505827758901740647746510795378900070155524241020001741311194707120820473604212895324893748439047240175674190944594445041284728370807429110143677433679790550881569536791532064256570325729805519787457712753790459665242605712230273354695729657217254252068652588307484046471139750046206795314068740082222807076234677221894153665007780258478813315818096236108017454903649437875689064848177474456680284777730543723329880844288740779528180324966713405519991895977981379548760222296937005267992605109658955676012262538022835697078699656164982543431476447329299060284080781687750808338617290540771777732391659845990035170170874159444863832692658105356276030867811408150175241625074707683579429550494118269249233612766392502916695391378165719684091466629188105253818433925320619036809104040355398652903570930882801320225089960303932390312432683274429974881874249974082468382242078628166840411841414795262771857109848081955298332520257269238000411109554803772360344526040481020959302093165485238020655775373357681400763272099123805646809745794373234145330082335356978475465863457425520626420756420256641545448672977403015405369176248126698382809394948750311598186178913997411187347863477765194887197805666076674516877898289302339301191876295120151246967205259570983553328681531565849879313963319232155178021236593743207026506414417960844052596886639752606726785750195548038370882085401253018577775131085820759231712640372185620380779661571469782758326683672064243400442874201774280389055156029281057405425579790011232586855410934929858866782748845958443575463415843482745854535774988840989293426673184508162516675649981771263669177380153806240292040124802551630596192127234245794848848892598499337104532179514088574952222957116606762367024433867478788929657183208893897464398357902752953128376139048435730512977331382331509249572568300669613769620699510299717259746723921860314400010024907266443076965118664287876326319760020035568929822399851286209001481197733428998240024237901908521348448777144741802220606627617386337477241320767432892735702638688395706400432174276110321915921054062637354084277561615318420505891575764026369512284920168295608300819721800005405672234848423341226497081943795538062706182032175819096041215524861129568545335659097784964829184298037025111581507342281061103659176284536804873625142910900599355771111712906148992897252107681762968054687699796865046634355751015566824684671819343633488801281893767914844420434911763505282190816540896214695140659706657649360124016461250716908468461670072759046416813183157662209089456693055987046708072375438693860571785877993604742794753579915272941708582283059232744044394413211899660736161508711422480521742495960994638710671157402018182666272886259515166543888103622694075333385549296308534416489421854424046520552358950378937383295581925787108257780101319954089498462846099053841849267607534074187085661330403030307587100808373722156126241920793279527797114219868970677090188210076061913741219396695215742213769459486425881657459038854947187316758548892971693408498021898630686138704188203577735047775655319583745505260350142264821474566505687180085183673130448760373301169599173773377829055185098107650480735653316697675216464928035552540893605545296691998371435844675458882981731859214597326001194434008202841351533366413390929028387430470728310318592508207869043370254451880602352479748832809287741684864435080303520260593795829399356869207424715479538150194170165713055913951431013164896561815603913487449435100434544757815053614836022161829758360615184738729925663221300085621521954034555149226171460739945848479075256357891977562368969139073378610486633811726719435230008419577407588573220486570018326906798830376124230544331234704228969254721809919035276731188406728059664311660699996281268073979221070091446064812159962152475727592284830671128592264117192544098407669879175856765629516143818351012075477589620326964349601947194257151392991029623010153336482244082605769936679271402873892508819860332978993272410697058191131778231195935808602343226533837561984006479421541019836488438656866950263331834786129905676245946193618387189610944852971011617488047890190214296383022052307205883901163874902238483707803180050209379808394114572781451968327560300296793348542725559624634140691097856042579563534853402428682759278234745678109648326654728942451812768122579560611106141213030635705043320882389616326432212803981817633408710698477785192994922222975670424244153099030175663196202416354193468117431102496311664498839968507290753117524839077451170104560517288782017080569395363745319842805451566445099070377340272512512368296183871658674746151913017977892441302104201742147075293911006915582418810532756585585314384823454114497800397487973113428978061747288490821865570687867076666659122128463437349251739910216253838440893987045915073956538403876704198858015414060369116123797626670313341291227067995331412738880427075939680979405392525881690748180296134683988176792766378682484420214275800843915099608211463040949053286372955257397981962291505371524447220753320708870932173700524649159420261632598202174371459597491033598655862088083999391989199208388450631971941333719941029500580260310215744690937926227516809854080529920712228307787605322431032372974327613070716683894626556996919841935162648036643857755726316282002659052243396334657027038738429685301887670684639897550924845020273195914309781494701414362468943763467166148337719019457671678781768503277448377283056125607763247269155169475658514398099801877328427685553711311628763580811455744871372329288259271812405217592595091467524327697576732023356533065185952018114828634125739822706888278788662557829540163647550374234185884774573627836493020783722902231916467774459915027387721346462880342936937393071052519558974340572223124333648327910406342205287582990814928376791705855348217273913857950871504392329324314542693634528096600522447159532996424592798870850451147269278526348722258317993129111555773646899588373146258493428719872914040973095699135781257136170009784382036531089142327141703622922859346676811845749122891824795023185020849769259418828815633945846734068431651472616179374703121058930337628393968783399626587799915702189562038773132944569640567253406102642905470060806353373805658088267310297104484426180298381533109400200364401977362909685864467507707019259091249914130546394637131054878933513446107239081530539222183260512007991396324852887135038996850614951457442693464075997842131884904955278996258735074777065652925529263903552490906761975414289206547806553642187456283835197675371731516983416867044717469258229350596155219689771638560686572857042025527271649750655579246629716511449001470086635431280086374861196240703249646347778720604579662161551476135713371942663451038213253646804221351105435797653636062793745178502467988765979298527003048945193663050289385076161799493133859721303595595157885362772389985495184724656254254102469383649451770363643160039842604267898882983186193371729717371646174540376511302552613637315507102042377360392346359894981662108703758568371700867842775167133556203781861865698481296632642137565223050310566221625650322652372938296800501511323840457732762468073251259164425183960609351748197128503065163529468135684959164344041353802410019010383120710999031591368940116229339009997994247669699153613444153862265704681564563791780287443895097845361523789537096510830255852415192928888695233716541337733552055258358845199085546467103247694647052547938164472987574216085932534397893462674385370079125142788304174255383735175961594921146114169368564559605899545417239569879959960463558486824781380150574914889717156962718475063280537146608681626449490242306201295319291985654848689597589523030207463506009334096348079074971944846083825027703176760994781487889220516562343032856740799903195068207998839530403817268917155299518538953235989035049396559874295152251735961227931323552235118505951607263416077668057889890221119148526843335247721847259959929424750566324528801091491393580473823721388279451793205208399548548146659259108994507561486693080312555586232942543364852737031653870994564320111347959479526517840818767070567331900891214352791957770084650489699407560430845718434895622844243948129688614558629530013779922749815617127034136628673527300954281478938866243317731359281259817357689931671950551131049603557228307506017366470700198455537969984634884877199790019454612006238905529027818355637460855201968064175187735942052831289594257254271159462383854724900135037552981549932937860297224451997070220502800316985002927885021548140499223835352072078936004518581271958713963025210086322603207531081698011396480536216388031173678010378834923287875913503933114614856989365112571631415748140613363187839076723175329912096234322374106488379712033339626033954304202239170244131602331417045159559042161117696561757689214566401387289541797174889618052948610133517387919374522694393691118359269738777585399306510308545650589144642182895560469198028991664652202512981751770446357821240671014283872873579021262558939220742165770539406568132122408306020619765028035084091479884546652688170925926745875814105269847203428845249760350223063275078846193218500528803134309040233714028294436265596548649948401608170265398114115155520850568565870377508577453414387448267275595168605871019610094763895148379107564659940175053907939332576529875465427902750110615409057688222006919377004144883625761869943743747498336705098033975881673261601417323040445399275269362293932559207000947239170439705924178511830093428027146682800923238400121274345097401408077908409991629167977941025738853478147984312724451045512876131627272949186886964463175412894500069392173516036543869876042007200438517647187619789429000919603805934591292606634373272214660967522480855292591015558359470563566439871247899354173220674118774474506308804261786793688887239311207356445459689809815079538905421264902796811402889331765615190915443987842183526827298563621293103466258382504034816230688643441515256106773236211256877984599065658039190711206578289375160775552669274140081796316082130508690536785026417217864909285905250519630433167051016446007470438247124265663080921288255183600880224692260369067448193802568385724312111304486820943871623531802645382294691355691923565000774720855116587571744974592844578188503130730745915560419001368951223267967732126312613840603852320096744238080545786504653983170190393460569853349106366901712306895920076659370788535193463821447166058598415525691338574503060585346048026496680395443372783150586082562872697415330446862713591453959172487248699151653968793401125553771762495114308213426688181339533732200355037715447293619049311641830474392145531918270251039433681386384346477474081152478790152374067608565774683276947415755932024149674015374245809651167833064125378575626841093528424951497295080357266104460738698402809188411801917437300949922734009946311361806520357439587140605329871453702136596758553525894921361070656350162725321110211384664211204825763882916540770338294463366306553292175940539298962220730792100017498839107783544530110049044370162610723391358147355823024406046760025179948218403246091870287964016643542987525203443703227343095051865000128923162591242189150352815155147490732255489229446102112095344761539224265391613484581998157879768542258248130186762468476688756202313613797769498309867880663094347108187640497974234883964099068795388228301165443441463703745936225552179629367924844437422239820183927641911267351860051418472771982995791107995570284279512000580513325177256369447679344349339535380842275866900255015207319485576739017785946071011193465746029208219183395975583783119884065672754136106158867313011830687931536322627220969241182203593440838919432664876824131683442454165422829393988680279799966755413482601631357031038526883997087757646946703027908632565663346684718752600614868848663717944681093073535264002062931383772114780964162273897773251943272189808251824499951963793811316873892851040570404352557739381590817972151042536819306593372231580655223032534029082567948825598433804079022039151270962864290553103140693019132509880180175822373181928356937810821618219976779588155499441010853185311181500781973917694691174984539358442804407468432618164649845218532879994742931600785997358238843575516968368256443224191362713221308498394010158354973364343961150737428594437564828524484300461710725338544971805978616556914712008911320004671795754892611440768401927975914274955615108772065532043202172640433485488886993882506310460418149768072641955901007909698466748467274983400602823756714807628174218310884734927018268958386573974139972688513347176576834070147074609310724504960072293803606328089251607603952361859079997409322373684303802217655172118085465378071652433823532585381539771954207862130299946894146172065694115797003793673290434085741498485732736959602181296574395306265010454194311968304752704660383744036301818878626180438185991635114591335429149707331528322354963883552360105114274574351395203331328231890198851942069694090148888795977831220060758479798580094645786065705067841046294068470040507175826418660062706563579443487496743457793747134117119887409552084856823683114948510863393356637734525402638099301693027659592605131678306683566349253356549044011398442043103387518157781421042072637014161397923074723353361701426620639024028084507206108961181526533099137709499196557480142959700601770162511612266610491102798323432209669932236695910825526423322675505735883928045826608565553997906030126379981395670695114161848120119102970507816964118936870897623680361187767053818950489243514531572203598892537857195941819117077711598317849487852675978571856634261898594966134115339481298250933415696451501620466229976410591288911640212666908699634484912788019000270514656274831894835979519936640855655030471061215262645810775956768444125883755564608715803356493619672852725228284517137892890015340814879648352245520495326400721660054121869275502794922655739921010725579583202519359823004645796838091598721733711705391411427170844976194283941239373078188568969019067908474411124671578532425945124034926052492378575680214222968869298501660322451724809698266474045695692918292330949962705771984831397736375966126451512037766132163525710282202539593816402219001544529412452477276471581569426209926454275969060374108210407389588778962723473851945064459294329799876783187480776439287067126596243563674527160013004095632896329484540213746835191522222284355790237981786798885213078535639706944398359009753425860244625184893576471620374063816095618624472119249117589080286327754122697030953488617473403433297263338356001651498392746730849524237313663716157638897451892981564322105895485520732789477868632050731719957600862396473033114904592440122438602366857473993045486754396338558318187963446638520453920565433056859110566556537543531794793071907678023321926941057314297459569086054528736995920510555390212294095774030580975895158704176146744278648798220854729236500874473968826323045520188283022600452003307792930061486114924754184391921034506875733039544469090495121649069145281397906817425026919895350592289930327328905294976631078438731086825674385081069498462825130359462719690480049080705160412287247078037621929316469877110817585081012188407865333230132609959564255752314857126045596170434286295086827978171201236175053888516891093354782617012331189460034310643478356558898545679473111774459229041715466629039041711921588626656667677639937892334051709928128860530184838767226428925844384148331668804469500852806930988945774910669597584822348683256983166984557366418337601211669978363786159930640567067890756511464518570336774849087673229433134246892422098893636901064985151939842413221470737626467064376281371802829194888025852785398552305513975752308161006283304077439762715354204566299721369759120569813692027759311569473788385046637766458083396222657747189775411629112701079938271271167273303574356169803920023450407779817254864414164360654876134591955781274882967178875181573653772662102187590802379041391152141752500435174338105114124804602768425577117342726499660838167722748876071459380021522179389699425203098522050469991891558808400039862725344723774417920517915573219257980569091848289226487031649699628687527458561898576935395052806096720744616693558686773189959750200934946415655263715594538362643244553296491542102825235889989102904451769319481601719725698150453441661488988280822643204239766590254724557792677979170139365027201775015134122914666802157622186975418231412580000007121944019990645990439204680733821771431038540194928177371189062453228299271230276662194540837794837713015517609467812763859054470667529053780247532016057857111162144259323587576229216501510788807586961148805951989892448764621837070348139886353199820212146475756637953785473120055550847473084266424014891048225759313153943713207916863904331842483408805626709928982613077536726084873878196071873816170383029256258024805050322989101917071205790074156560450096227483910245421842473950163784229665184298679333047854585142670936765124556032138307082832788372032236438740550607859578756858183947979944893561663675105887182625765941448620811543669132330998000869310084514391472189063512352543836375397010471951287302999998092742038553334534223748204215372221334857030595776932988767377984115227607978419196878729347042338839898082562679595506696308997606530008589904999563279218028599563605396499597296488877991562001545171482436270662060153157484241877969070275349583924930127256923893607283231589397642360798542844711836186632434581223660371838350992628262927997542532771229207016332676190205563617549713583875502668467201610855209309934934136775695375023688928939651519134636542392199277313530656242614524901737585659416935955946285404997623230541181548359759616528598015482097084563323533273601717910489038126455879657985100167342191322324751736344372094896947276767461832282172292937150544625460179927890832071745046822879857917755849899499956803915320880639770411067977042696874835482154229893716592729185555063936629147558990543067285049422152374355868931742749414434110560091042786801672539710205415314890767132614850049924974466319301275258721384352530406042392500700119009560196706850714752285131739259454594966002995037438695147797437496288353234071001386035845475220816914309565693453481718014783425535868651401021942519235386698082990701319849494543246740345564860967442085517396592645329489689327557087691232907508584050183606779410934952940670309666253446596247540628204585655812734869322576549319010856174459967939754207574029745768193968171074388546287701915551865070300123679770043291796797104358765275474160325954733704730278819476029250131000092661746426608084305223846713373057434414222645747356336362829173028135972437867346256412916999269119585474714847945156213411845927780821209307497047135988358142672958771392889704685911348356933728434373422796207147449664933568145422598111106034538426284451605347481631148614763320614560651916059319135333627161138977893345078348052121585631925737329732113911783804785967006384435066624680125352303972567788239734329330259018330818327369002798713651221812653505514755070469274784816302228804064253849058283472060838711264061046314347058290889742658010678154220574717669001398419484717765574654534382867300137145006210462748250620289226166091870257714475927671213144654566495954074859370268769254354934406745016321669062149182695571897189760567402109879385106459879115541567557394422388221346688040409146790476128725814523494057537967219180958186515940713342738232273863302944870412274889993513072843458370917536202602804600512219899555868962147743074401127654559800115695605906714498801657321956928773964982173488711654597819700274429182564650247436058083281042513924693227977406800080613137194230603214750718910743098909956750869754249181546870566989189016650382997527870437335924527357895664949019355653213725729232963763407732286431684732877147789118578772336592703212809834039567863159242784378910575901788885622019964755866812875480641727326430586547561229829280425343124926819088282545042593233545900589265222208637739110468251619495547004254869780380357998130738071874356252133307329749531817401928493877794992573457162255014787443024724498762362682514842716671823367364894577583101824539786085967451431077598153507925329441650627525845124605687890322390728569907175767766404185170747717601767375718035009790641590844597851418480620572683810433783621707754298227869183998507862882734087365141973825735327665930343744237646104800867430721096212979081119419318381832572982780146786671575348334432409610609730189335673130324863929063717445547924327010314577344271660335648781285322174513499347219330599733844123477157544313246658814902572010558741781745523201789423000073943062633219485051364334684241279611974434885325916824965447649919416706065008814093577672570456749477155219498705846190331293943062137415963896373137150366060136516633859322415985698197917123247867169580818885726595684643600550056815673088202821708311088527441039150664092938399407945981684055868701149675957362176477557320146234755501751811391200205427188801057358009496074974822471991876750112139999395284955684515241022989906112846014221699479242036677341073762315377795571650444095574210430072402363609583179127542701759223976014645791009234463218247020233847181789789190846916907305777095311975281749399594302877514515572972639262292715132679855608683687144071013491248426137796773876644705105277213288305525955440966702801946015914199146611265444497870487569323356602380418717920928507568494634640540122151520082545264281021582035910956286346890227582132642582875671972778253963094728237459770790341796420935703119078000813531501987333658651675994879267977439187957293281677761339904235103917312887594021240634169820912974790355057327441951763928705024771483093106676780253076597452810088724063382611179903184802247754698334136451039488791516910403644279738319302684696522916836951606511477586457048451584395921335663849914994988545233861011516361929374927829130756420663968286279440158414431269562817188586832034315637193141342891621938080858552861252861566441193474926712603624095514338925887808368280928174404546152024154030160245661170987219853030728445819528192909887780853286829068682300907803596580136202928114191576299475989627466267376415789265849896603485068103406261206511274640048749030290312760340268694625730757854514248778884153267507189909580221322680422500387625063210028975125961647928073604668713361807363221334256236606553133938728798969649631785860743395895701827507294431569640179282492708320392407613950477933382691216981752015245308375055079141505534671493587361976253618618878896020495151612296055083573875009492913826514024253868067045593853214141833204565484471849440352953363716829934057442751239357640452735472278074016039583640925516348583961222510062774091583890438810606213672355113583668740501034351337893235752093313275658464189846840291163290445015258560028409111876220042262592375487858164400438113447729861179763933883537237591258266737224607174076191922559948337166201862772821952219584559228135172893241276010876400890439938142869300482744103095894870913945580268377668968753867441680023052077574582600595012557254462548850584559349045061030006284888631955913385066999698543622920739563766826935839498312265978070208619202300058972691008211419839967363881508979221854052219241081044151333979864815690265951063877788619411687801376549567552001988226916077476696462680167429527669900023314883670588967225290875078269645885897035483165690443766446483709101778805817017156766898105623002230936471751600407615089038916398877660868078363325848929581071660458981140579475418610256909952279362778094832144220961101464407735083517733316211639919561141133235149726209764412841752238099373069183240844009144937338640353497541373432499234151153281183719209200383210938995853976397290147527994516227080487242074920979699820178630624225183278715203774856247593137698619460847656631959135858764728433091998405685561193939112886888560444609921499803390944214026018679988826696508531412082536651513917168907118191268041385259457543249702892770026339305305874632711614542393710817355804583043400625228260652176943239709926814335497016344086078976328106901527085115727477818517820441711624294655090286254234138003417338467337679050859782662699349399677620379400667306869476121559005097689255241780472336960450196164689384936639116729686605382348993553595211033544339027629251085714567087136784014872774555181531078877475360890931044207547176747306946317156437067572584195360661939914791678767510603705795910625902388118172249384427763941891408758036919891763121470744821950474361771366619963487253536033245394229670022865602394336481910448383893739328021974088912332042852348014214055417164175904105793923735515281295647632808425343707665348636506363142861379713085353409556104358711173831936214663203878760993140447476592924956805876077633091340253499916216378123620060614461029935835256121708314826100865728400332817761348816298203721716391522165799827645725546448832096422130920995534823536226038589401114338091202972019468300787050206697439772029528582778923314404905563266543992028790842699763711543523776517167528900764894165706130455071826049385995958460881112538863094953557814383320590642459433736256041016852262977113174718012144693797542461662005910924556069754145869912583694960431446374109148741913296770994371168887064049781002798019131251202389890578566363716418837205900550905003882394352567148589803836391929446430121138986889304741410178304199178855226383773679501497368313662855152755065086399288930973753548960751461654397821876472730042906786812084111894721651999765289350776898992756607186658407829881307830781326900955260327649772058495949968904722730241760770999827627479762411107675796653222662560058593399452882937766856691602600255205396757079491429488198159085387711854459863263852415879740154570718477238615344501105531959367812718066187601034367003195370380013721612475643683366059157810830187620175073677845135817116441359082958299065704021947613784791012893510028678588756403276793427997800176913742722866521832236646582660543013466546652322119683049550641832641559914995708375208594403134229023742922576114299601158927619697879636137087817394673310806054077989910800652045639478926205636472002026189458631119423805785860752856311124310210575298631656680434032035946448151175374395606979696911959435768237055302551796416689365192233607009202561765795621030255915225760720122940472586671906758103936254045135033560975884232157832773401860432544024832564561537157537009932141607768160397668469842974138149991321994272432786196640102020914645644262324557530604661090763035764318774812713981561318640715541529955818060277656220527859573440081703189837155882248762984353675641720126871488092742480486754808257042252189835613475261834133043547114437814350056415615701545027491503527020182569044525656123860682678222949078339965540967245356123892636032666049518487492795918429996829942600249992178027276184709218818761337779290680332405816479222600153541178241452139833691247259350937926852092905603887385504194865081770484074174279328811928882158508485727265992671709173401746275190318791321607659386696966862176483233936598580158276890267140870839421153711504157708130943629559732620800015245504403842644626232871407330741441657915866361807900931585818866510955726633769038876396956080563805262951010541874304162457899801930043131733703367340112885039264566504809864648671410132682873072109713390601090508818843859954986321210506282560834948827009239837169972977900359565589855618413127237048328420895925790659612298614460062991616673163324254038846928582759356581145423857779136394779794195315456481578586440430770482585752400162683027494696525760453287131212452673886856764501548253331998510868024312839527769218939187096418225487823972025956891764799611825773338726320869132631070265718147754513444645062011258297599160270238776594394679548605197781904722206776515112215619530117418842508442348360390214831953712968933802561798552865200691324023256859470744036248995171230475897275286723868792809657339731612514090539954597428838563807462966026904807596252776217198427271976554714357018633721959474731295011861340378716834901016835185366627423930425451745809798971772723842759158802632966229015413753817358301335401310548502573810871242358428833925076129894589532468463057036477793279051146913701199133447213394566774677459993451901202899124065318969377934802155988768875837752311995081789546767295897311721056770934797317110320837080134853018905316586010488553079539020824133216381492634072650852949335640084929218414199172692048092015781409340220772703476776843361185884525290516764918524160449321861874409228840628634866591133215606355028072059015680332145919238727478511801902646009528888484516171656608897189308376929150210237145956880376766025295671272923261187403385081172104658510445227517023724783512578611981422304263337109476719004869496531500130205012821206775220091202002117163973988021750865433751229777991694516690112597250089966173143425557222673165110203945730170861052990303154454999200864923160741898860693882012270099121133503688607370265792501220094747179654637486773030536190775065867009328065604247686008070065056489415051134828976802331784493869832018172405646401727412241544532123764183255306307856490125916916802599422531780222987692443294871648438296305199776289595492532478169225340617687247079755292451184282434931194470739704944015024426492285244430428333429858400388293181253032347938240680604041143173604193482080716096254429629724321156436082969199333748361842778233391682974749729232305840024862761220351242882215422053145570561871639086535603741014819257049806582553164101166003089087704616077217076010417955156870417358018601027173730146450234959152440912192985587760088530673828636891101452255361159310026274397454224744389634610682258096853947889377606107685719306337292709013445975835427694256967338598288818090723289437795958561705610694391777678079914653007803423407198775780973760363959532064186480878283709354379233763422238566605244357720714615366573739979464290199186862533087902552254960267459229326443960847973775281020148717294149559278323262409161792517948632287744385284044281580772306680644352340414580910189932517644474685456617798591480592566257600971532483438646208190924436672352268776610785930295316023617031164656060132259785351558175244174293497850217860742733446399283256645178296039392468438546676088676563516651560634160787349599540499493671746178355578699404363538357278091640189528287536244589762503777691042619440258632595680817658507179252767470812364175866661299940771051669862148529367445278746029748559125508892923174332349355408436856850259457884755578706771483243539072828365664225993740692137130170798508974254734315982039084995517914133749156024939905384367671494847398500979050352023673803207053997629973978391179076687573741628289197657333617989432237874489291222156845294213254139539640694888785004251238455882227389372973798653484458169057991698656273528089495254625759597550208629958749380227950619907581360768654331434850350298017874296659533515683868696103806316784795511515994841560470723051931079025634141654923808467968778973128385049675056959525017763367965490501069190697341247694651965725851591363499310227169604134393109644085597655025103224501973198744777045047908655205363992277384182922390212343909685759826337976505614174306960538811208892739118381496692837396963663609231640170544208382701578229076132663013284316202163087379846757259555458283771115699406231752048844960558638007800045204100929555009674521746995695935514250366483006871444428240314240389585422016594807165448995308664068777924630121320879766832239939187330204843140056683971140409557630911891895590779282544641559029729208936874244579128062176344067551157115632526315600237526892162007788510507455678618899815080005103865054255113369953035796578353423539021915429991363929528648551657769165907262699806203523928274490526802566677632299652296926503257509865927369306986800922486159776125995980429521386464224349093884098367296537649131980236392003219410673544096655089213359579895919516672660516932053470107347121054960535762486825871487522949759941442355725877166676952619332746858763675916367117270860712365456569737254641427348670530922192772581233064082960129514853918953015129473062132276538705576662615741355568118550881540088604507630287135570833962156404670454285590150707482823132962685062672055530079635542468650394192480568920555652931999374685450341828715864604187699662713733664244621473238402310511278993010331551929427470417787538509057281276020117062867901043960270891496537722265305324635510460843994773797114713832572804921797381177828074728089600078428521550126253088379881638096712261661971520214219816826114195462574005648853200324237529363475978410759501838558627653521236406288108887206554675604502872953924122319930104221095610936270018570153076025557949296181897304898748161816611419126956208728898969280887867835247225955750237966032261479267809040329580784470245436169851282508836860489326172030821392790084450407734270162027061798799428472810760254892123152302328296222447608636941156445199538816086033124621676256441685573012605238089215669806700609188368503181019937999953572249016538762713515914855155121575382118265030131446635252102342076644953873899982203321371345891821615171997530918777972600214627212213417381949390073891143092171643768742059967591366590629726699643151822875710302921736673437672373613275154761057694858772949429395874788892707282494082079529964061137658096584443534035564262472628234052142184901275993250992884668245597500619872342711585419275515703447472949723657055799232393942310893986979800305746115398292148452952787849817761382004468735541386763835526394620644703058072752829745641277346488640745648405051634248168535496582366358185563735998630701080452790483314520326572671050090025356483867647545708577549006209746166799467675452368861794697599536531013375940195363566980975249006940157986754299089181779710990927019066091765788138598671059669395052676425261470980763908913361995614452333665866754059760441558304667204042989222815103622067517339984260429813191631392295920670786318551022296712030379684999734147169151677076973141736188526961166841589752302021708792604561694405360664978952283159499200680330078654078708383101350928283014569535882103511656808466180700165685587222153191930909427040423834568685133009587027525857726253144516207680272250398831171404611599607453983805083837896320721726649370624960787822677969439327784396709857278950808375407664185232013007195726577258489685978255310429628229624304999531446836376660219848529038517923689540998674721853675237525336171504434093168833883780717510035229277375929552282082865079348545042372048039240014609487513191000909931205237070900088015868963059211768289900333088846559536926311382327793980575521671364201371204738108490497718163587541311946816895643251337811972679693547282144897541163050230920102431192801625416276479668961284440846814357913740222436320737068384505834676158242069536036993226090671701520637979285257606139333434853480558351946215141076078377509399515220631822119836912471991859195076720127856203982988310668754100293077843919029258999096058738509865685275960505950327011081705907193555760547548764807629314344181918842843518323884387912051979196525459014465596899845787839584534585046300108755186969141492315319367678688699598025338332703923956287153557802682801307645002074983269553508216787473588798201096824709394321164431259301077638141965229240457780488576146234558291167638526667876241434603825978706592449463443459162658528806228193360447378095539747293437396055846164724642536446800908957318103355859622918072212776331631501679318259619942504208562842239819502849574118612517039331291800200064173091625678201396409331552004541014133026809027241781106312502299036089302826147174146085666379965035123909917132055178382120557966353434782995861705144411896019202080413325089619646328505906985536592342963313757116742720603838631070868347337374983604811130582445452114881096300344269949912267646997571229542564646976905839944708265690040978125855501198943902482894366964419557226039528871439137458545892160360870968321041423153392515858316305468795153428128215560082967418179691569918376843763215126561033527989170610749005696434372313316100445929106284282685411034636272041973528882269532094641474388588567527292368170995725639519481227664916068760558860507240011967393752282265493445004452799081804642340211934031357517656912975072747792735291490510352983912666664332724489907205667203047210473059129687568009741144793958833036330669882268025555459706976662366873649171657087477834984471552717587666313947717670749984099459377075246183421532465076764703078447411756426833628630077549660694071365231160722124591948077351438647757218008906006008751187392559480956632803568446910799153703966663271731377419729608074706643609439037762414497523549359253111638152285762540371016875461611219857476054475988108289664017290115164452504733588369421669548577441223908375770231460617506080864303019889548769021767499724898402666502447534118964009703526747084292694740672857926773487300415219107477575031566678486852828842102207642148660992592042873283757840346906936248218727929113645810615258624228590074416594228328793355549327047177654298558611847074806171358262380877362974609536573191214769956805581008587997224002556535065033991116477840419134565710316699542717628530234553503771108060250112512752232656765443388958909092569865189613713172701587627286498288126351461054292626652459600440412039219957532551544436051761918653612678964528604304206776267850853874671914645783265990245049987499397294017331395477417960328354860819996803992700956342731374971388960425196026587732170137338741654232218926591732087229493363954763648262506005797479230993188690723332370721849164676072262101104149959473423713863490400703860516075995042499581819874611408208186569172180582503915837258660894703069756721203972416710190590798459752660414485316553870281184336955059142707088058801610525284093300800320269141116686982029016044090328382825159018065012134978621674867963757851461169400458204345168968842651912646165846831810812092620276364773316980319730722059080646094149812679014520859906534700165719100646356679937809197132395809863050599419061912565236201525817736182512789314092434721441632054744299474300739724173175936109399927525995203984438399208418221615660603799889836196475381244921647066918053297286951118741791376344819351932576430877731801621191228367763566218892500493095191117778323689296882224893936214036175578400606351142474483581033377019421315946504116958617886463160730494534013040424176142975609871427232538413729995233630243123848257438587675789564993792966981521616951386969651901555548533538388609805590726702726471938602719329894636238696751412678170922176669378918486907700776285695880515375989092626814258194072621491068432009324988206871920824125283523686160686306015398576780439006763935634319892497730862062211840971885931779545609911578782347026386106152530203945678103389626582591708988240615285954160901323358502938772730885141204052227576961462940674104552159368767379445522060216220200189898421540232637120374942216721335857981524322922301045147591607600313557492754457699396695585541317899581769439972648511975980865069479343676027530808132251290072124448398320664866429992291523456287597517959073239981112028329911671020148959172498689506232283747271215341934207248829843626595258000618601684569129434872032491526045854658409223248966608842439030802554935102062181755191407183955453160243808266645590779440200351575289426089039741493308649149310454451889644027312938700224216280676119757499211916017428327075139747741377494698475470585805775448325106647036245452610169770893557525153403126332473190696399367924527955412300092765687883419144628143412501852212051378863119078425169770290287167890300432634720739615231263111515547050020650501381455449083201672519658277335988074617474990052009581370070809591382954470708297634654228844892970454540015809649360843422787363023660137578342789958022306877007513802454544120911443932874773918555922955227357159557436312475518861636683801443217058026373033233274719862357392455463115201706187247984227498105735237071494284216791468578834988262293777846433006740925257436667121933130490380641212629168371730567836693162366793549809984010099874038119927388661105825115149599551404059859273235729934949855810237671932583418435711332088833761561762598311295530602106636842318178034923208520934393312442076556935384141892328137892484302986909977011026543807849799886839954112848925232905140045306292521290400428419823707334212990408791618151585717188986932131291320181389112162990312120490476966784965386371859865385460824833102208113948155793254839762687612320828351700936911858462904631611555492178213100673098124075139730319644420454599758654030392296066882662438705220005615642041736011637207816358839835256190171012615235484695329935009895582873365879163897157662313660060477204365663213849423832782064717637765685469602104422346493791935832965554536032094015740308874816102459261396503182323418847312896830555559112912690363146699324700015490313278851078494267320816601366394396248558884522688476472125726081441633240913378892196660330146169808863420355363076241458640847709118258885851060578043460820676604318205683519533908047700812225939606183598196920977661910203942906361166403512917594597918032482072327329168956830337526777957639946353616978312978278797515749986117249460995135986852038511779826950300342419479635783078145128646011891804926105316443775267366320075015529922966329182787263432308888261135929547558466795434816819855527728690873604523869162392513267482048593558196570065536369976140838100726172255237317805943977932298807284575042380192243360370679758392599072968085446788900742559191309447210719289477491121680460806572814245558319007981378940956778575561785507904076768843028444657357690608121782747976277397405545105465669874405282344272021554801441343251259711649335988557662436571098235084311766091395640362229712775120078396168328135758377755288315248133921999491797551131200943769772383223064300502351058046381214901509030991558212770984498007142059920603266019776322311480159932826162056876285599957369904730663266559610395811686317647504254245125336718472540451345323682181544754712096439234856189288845762317734512665525116217951242001982824491841897310926650303566251536857538590417656353185243461612913642064994176609861864906969145293879633572358514824846235037227683534940069610006658118545947223697579381603611763485364505250931800750624917597404795328458815802995616521131373203199684561489061791017490447702611420974619702848521273551562300929954941249927188884271626163466275211350452661996733461063281754877940979439731990675256828677625856098098147197982153078846951009723581947083976741434866412364692309330650132453983361242735568277052289896826091373143912498512132807721824172573739536215615607916880957892215295183704699913726564455785709916536580007963890989560188459033126667549541243180651893118841412592544704307921609471619907337014523070975155511416419602407027974999296618400263641262530850752128516626250583567731372260429072035516171607119666233981060811082454303985318567706170831798218912066818399022067236661513968296860984590349712231129617243538855205630688944154068410180778873805925850262497183471075887469262829342623943354992419793429060053877699605962929837254277089999540656265783492077117576057129523647096870201230650167817871132330126144840464058307745004523291083620951448189678808526238949707316104894197323816609149637177736994507092402872578458143659109806765142309070250175277600448528180051462740904416004503488698567962401192436778353795974959564818971272349063894283438586552586800229689027574052618443531831308252639691458114001142103236264591446966972253686029437402710947402227844219245065759649537865900232573706580548709500159124160943581018598674306117855426485550129932661553136130363350751468769025157321970525027314834437782432053153712278555300338638468351775183020629240747312747712886892635400138146467927528379258940072192155143912608598818088274484090893091587712508562898486687262462437172577014428513689627863442207515317519364310707431809788905037394589222581689056222467655435975037044987404278595764463064049893503712207831379491284711160553488126478108312031938208125599688566499960307978774438338301978650029478299884159470880006535235272809125513811225163228727893900462790845207241065366678517217924731866694437080199598518411672018476252386890273901629971946801827537965811311206221903876688903950810025050712192909689981645239248266679350751557568378095458932195806282972643936472910136407210849236894748003156837212078615573054729504757946859821819070514515181753696193260261358107727905958111537472905970747507950293474326821275385765791093354552679772150815808979291161058475696667946527001087998782246282784948616671913181098782570239111340848602259342124087767204284264481155993853718668857316754740022642086423337276915217087218413594392401409238157609559450969517626353701646217567659314373573523388209604635115785393691917400005410824084054267553314281197363786282701577808608022392742078471229989903780219291764726712127497533929703992437217668299350279066448953178693462260028806856594294491885619184855509629933604464293643891169596463481296690134585146392785363333822865707157398387374736745776250434577439784020097104433983399642448728124325132719757374196940812800405084143341449918786374117633735592490929662267457139377447042774848534014479676904911023409711922867872338226548245109083862490842453668251296290372541167779694026149960182080351697813763226855061631944259182704381308875973275306640425887951418806208934679448925169701754094591793009322425161205497161091174214141319646029564703603927851054633703932736731173655139799910784505457553236035753695417975767996282310165106836272545552727102959113431364563165762836880934062782708527077243855417732605745562675991208208582974318205536378814286357851332038709300003862569647318820295150487544573377328744543700403523961845672162172045587732592701744271294332946314455290032802197248975259178370102248424212460732642516636579624104369180563444454897408078688287875684459031877288878148216723573240763010011300417108584088900591987036867432079760689601593349834027925122668921875590202369770011488455369257073263708306725859317332657593319473279272090688958218118404672812666027003448402483450291427372939861963106028220271389971035766016610858599570282603883437547778786027450191932138716184600460079314862014887040134848802663330732425357634661585474706469053803614105240313289480388931841321096499997428624875174487490653322790181722062098122290366340514049085488209579301359231539961824169108653426971645499474977880408227919880707536894676462669510280338884809191871298872189789303661372616431254005351730007710309738048422578797154969934852866728186648923899728523812040729193848366917199184506256166991699017363592190304167896324614099369320541415346290348027207767799959000678448065682720154028858041725286703295285806215781890258095046585777134248813952281067838425242490119034768977974473483475304668168229176898370989839315016786621438844746263215779830912141877364858062204827115609822678567517615956451697567389526679265809543552306001123161119276833138651622551391387254879257834357458050289515638140483074903462123329024541992632340055288203271140193415095941466612496193774263465842436207274354467713564138494342354114961888150888355750143713009819259760715568760451578370471502319134614634248876098158620325411679196091182220373037924213569192285970445625548280162381257589340964768785068856766930941452610039562073590088271043646273610661486730025255288513778143969365490449333148228490005119189483408922417474195397199869208298114609952257745484418838488011748246362173007430042561260801368310302234891132431124130234608497612697038346187742917926427104017274185366136513915312480833459203767709277129177515105898670013297661274329800595492506365194672894162449802438711881514969360611370900149050236456385437195486609433310648888657675134133876158674848160900259440262242283042765331145938203582244867746181778119852141671907686375070807510235068197235353818539332705936397636963204441642302118642508435652100686979280449183533128245981834028408474597479455094199025699956183065510981300871828076646142771897191817600007400857861678579161276013922117015986024295014819609185206361702852874682020212757560913560604356296809104543314403834920612263366522458760886858251790075548116715513067872192099809247185097645079547461790643078602403963778124320659760907622362556768479556231012646687821226718744125131316810631805932868910508698630807614899102235512742665390547454416292398203612382795279223656809888315909184250358277948259945604406946311842111386514832003156578414266682647118173876807525965706895116721120715678966784134655963773200402656827791916949800978131625650581968662539328629637386444034320943488729943206996564939061517669638831871204917339256317647061581589855780812095576794354377433600838834570617509450965968932505604796823903278850648914744118505147682081633333697882991932048032902672665473083185451893443279806843228120021846514064240484585883332987460567416299354249513404615581212500647987209910026504594015349043952538227938307817049424740819160878731441524130146592332927574302898096805161476678827180529982097346781086300028517305835095821802804242615435563191290473436304320295815039113196816803691787131596234988025536978437251730956602053459214418426173672578523509353734756003921272794953852086330056117394189794546920079943244080569557279456265182060510326020825407087422083957445055138221444903580219293921065396491764246653071645589755489269742902612648147175872747791232120992708936615090682000956573040389214893691169748651689578386139499465474219617142221658205064709033869081153288255592705982914776194629136529576423449140576255920240000085261054875141064976008743423886685176063715926636578063401519616481576019726072942128766022726996173941603086237530116444409275729250713339805993821718419128471166434190528371779537418345650156783942961461508378837568805398602771300184596806247964714148572038267792684005587976755511348738690293445891494378221675327476964451241143002741589372865322423052166850103220130575317967152257895379726004243579589122858362892753551750580860806479045488474744593255567293536242534909790830038171377685776502366410942174051019139619495371401953462451657223409212426456901212373377860452942259772819493274818669416432482262685814534959503586499728977496488967170917337600762494239508858507073475652689695110591852711573438078125081996213902727590743023744320607652053705468070286412700760473285914547399690623391530982664875482319302445916417082014589346222718505699891805197967703819261002486672634421086301410296718418765881589872239335506732505890238184754598836933578181334745548093747268826266043189010302326874436001292495217055518417310343894412162500535602522995351240824041690218054435360911132568497934850829920673623637009466109604825550678905356514519174482922662687242747191662334824986718353138580101177319936623331611613493039629380169011372697773271412568253713563747400636254882513843811401151758818371009042823164286545221763089699744069922062154358370985938414283046996607401931328463021419862348349804786142367026643562823210802949364196510503660438390667006996136614615040658995258424889628745436265218705189354366054191039320015671505991874774210488618335083341026686095008677198004417828981810537281450413413520984202238155173341541076243708079452984840491696917236604839200172180977477161759110343328608595608780954699036625723070126616021218023390392572037528048030817979904637587829241781429217135302278519934632091844485668016849391937398427674413689711802089974348120859634507276245024831521374805991028674979890295272221975385767679758088154109772140288723925444294041166033975183864814864776695120404013740336498352999559141132786917258375026619991590626099566208501293312139861345885938324363864883424284454546540368908077009989771968401763032372722633679215966939881586852286734267972787287346686040016279958540521029684145052101314226984972572705193992364649090806450199811026563306901465945770557022395914961502655506678721924790526851843811625448036303674003736292918829409760106000867035713395164273297516432280693671249565972245706921919054293471453395041789759891167953450149824959335571860534100170198785869509113727895492602656296617829151230158464462510471655041412469948702064096241027935972871810997320585392346401083953854164082903554257479157769862556962311834075898484078480652706316068598724445416092048580422698028661357044439736218987054156406972216863447818034815990219154515903643495152538031852645125253707732432421514726320211075098054894617752961785046663404327275030416103015248589546933708106277528574985504818557916784782791427518242878329778111913113361739460284924923983144283303204390616671478252186565427808662483480420294357876888487249066094495733480529955398590560292093133129480440755468593184154201643620614022066224918337590339504796896717023355518557578886388298082055962592464913206632933394818091522544882077633838635332404489954434661709148909387905339706902109335467585582317992602394862588331020090248195149314730276460071537348147243706379678601718394338094696289705629527518856182402574194279852835283506861951016643046311532201543507461545687917134228555304069902924687693162766700762580209850813595180231394900077080042705761816889067628071344197063570849206305782184578663597901872272273349039630166221130249860899975427946999303908310537856604112611083689702011765788519683540337206095023477015042759538109005630123780945168758073776591915628781618174730498105912847342803731159657053894988850749211405980682387924246245759663909524152362783766680950272569740374788689685458575278644983984942138906998413209262747985723474411735058390884367793032441652043225345008591261161088178835813134439156385085116727414655744986320642030175945060453521512523090740428509499972573641276298502638523001648609671482327316995311284741805924511745484663857086846100820120413378557729231366595405501861559327715963841382486207479025922776524537064161727403591547043216455529288603154908419264307850012923984007274365111801198189820066518573298810616460989815362089616403392140654854162139237068951390588147710617484522124655166507049341337736430713344817322821896920410076705709028526811699850191697420797098869741734601987662618818045505690771205462833526269264137587499326227710383835517347631155866245887130704828624231375013070418890283004283299761998552069439333640313297438487813225503239537841932501473242507550358654912552031673110566502679224146395924630110239935439678647991358430440811183597738470444055708609019045616090642249527685458888510510104382635729058854740316004995540872496612691084125214571172415159547015364266372038195059411399473429698741040873243980563763933862750519275267506753427043331079676069839101384156052173369246564506570804962711690767332016522262241302944516338473151854283424080678420949290618819064732991275807916858866796640224011176634578606779176979774551723879513193655505249871808282802075909752444220167636024384037368327283186953448536353677666873250046993307678091496412966975994928369944394569572631492568376845216619128625150208471212137975399308863494408783752369462627463911773617948103500850901131533056645379995531941817076103309251395712197016075750232849494242596892592395657187567986184171811483630576675716234393685783096079867751538272129070506433236975869449829357894231095861619000970879370710581646791770484632962156665213077366251373419945709626309424975275199558653122584107049276762668721803426944690625797247935052597718485308385364055544249269100585787043896911509481971507702122184826601598463892138844210880012279418365080249650573998263659317770372977228558483295411981583819578034197755290913111680876141514597473678999602720303204116907923073458275819812781508740781911907451887506838458491030784758181011823230955812627781621709272717084931797650917288693379820824682942249994465181533899441891989624528470745402480932496492005496470848735544732454908715140648716827893274422969331801932243280628449045750444249989089630080592280085049233613641261246852736632486204421101843488047835432511282841254194120650686533134657963505622097865352318935912914243351088662189954040858898177770442064645988825531835302672061547566577266247625971599224425387706746683922495623447878337600080206996712516659322243024083413325181258840424157713443703223950731399109854798014317894426805875919149863535128796676070022560776942284225528400613881284049449983058437798180758744970202139341917160695516555524456153466115922005871214956723818839947177736601702374191885034508269850239420236713916732995761086074758406109694951913999836662120572322898226433833570559386751668435884166429281776325091862883506295839401607478152391671674866421616080176070673829510038173342306324981779497291739132881077489604662754756281080647197027152128483561347594104817881789299786573421083099661389287900467263313710706966102151791017671459726928987861031455827966747880720625206396647100362023194514719710063338056472960711218494394168025272343043811349946316058218191667117229622679567851775574358945897367971383381790924415338632580985768465634457143329972017671264824848573435186925018492680656463907220953836646193765940073309089841161529376082162269730004421368418120890122346640304890276429765131811673553620244599054993356968214701693988672559536078854157657944759487350003674662240141446281090776571305541009973761789528414515799682982712363136260240130220177377611269704057934291746622134108883780571872637770899933206773006789571841001427327269140201871169606954290302538036047034291689959425730608128781034812895364573304649513780317104590023311131057841044798687536878248296600738111477118365245659369770355983318370950117090199224472204605897803109714839300926725906008116231382193146308438493815547660964633137320075735617331998700664764582107088049119115590492505197899980399648539229779167607121046797014743491295103308904910314495892810288242871448434449712466476545153906712288572827423773448194615404858896409772945619322652622279900633434341517977493273572503328496231433406393091760459932529187265406380843508525433117997831264581188832160639575826321555563765848779741263314269967914187510006235635889664819911093673650686064259655045389459980275043929929477091161392937001317908303437821510310771402069567411934909470155506850869161326802858288666581596619272516850981899209109230526063934624917067578336668481324393650085013237830607458964781748585307530782165127715525453204056651117953630621116252078684627968460900639772338175518538184887456712778771753673012111553015987411043416266058950991311484612829709615033038903607501410983856294029037609784163786798755494233000230172525116722568138651691570297429234959919705747836126898101445711115881103573339042020737779398432595271858610180344040160445659686570992188226353272476401660781771574897926241032109995769180533473689014800043571465739569321040725539655128561320248715295620521160246191831076148974589436465906659944418753500214686120652623698051233337223324662349620168667654242119039582172774291179963995027522960480823538071793777308172832609598358455564262686201172053540165389344448049914719792163621167368308819759147355807641631966238861945481769332050831896987125058567190771782027108798067717718760316931561955176169653610879121148477194595689640453441332772668450421682833044538436396507745930108963318664297495114828383422901662083246424022598155972630754368820167011142204690365556208946610730764717634562256003115359417209130670497510605342359031116652545556777801372171962523072751357228392181475550681294269561805057869500266120086034253214542607522414859539825310650807454804762926661281871594442876543393752861922604701187675846676559755311911506176356627811276303217095191081995608966682821627408007574579469616446891498108518466352012532707650321970456250747705675490011178768883968868142321829125489626843836292659476515415332025260877661139492060529382225393783489938008205813685327329558686241673228861714677180142665680845971770180003332394717472179963667491437742965825679741633388024679236179448942181295027584368961020382761664372538075908333139343440867691273132745983329200866113221637102757817605810899510126425029223356155515569746487171781468279757132526732811480039256316686506767084123855024095537693562936574774462893855500438426070599357167382975811929945963867913617836788512735969856611216064693983596017572591146531670332835229515056866655203620794801536740841012768606314128347110402432317887695733655497844527745110838259324389331573977887667060556099815870301406022653300874429796392597579911489736979631294273987120611007045666010852611111701843538153097427628211775545530226682915758183919018245187388843386803635189154228873962801680303985437377100186566066869501560684591173905352495436585556937684337122984413244009938916382680230653045352995861160264244789999727368420349525920904352380403118619334849888637624570913136607723725536070654374940115282235365804894563898272792394881431911777482194089717712346512060887082864590291117043802148829696098654346695015340220923778366453032492322338275441403245832321750702291993838101564580557828372483355312742484233087131778956406645333319936106915253269847314319850682005316280036716198331903581567563809809438724307613498888424514993015781995991993552984984361725945268674873539025821796801594989792942176801279441916275641489744544405158020595397046424658941677761099741011042638789633750763659797213156392239513167268555199319951961917904692725764391736252697793508871044551317417498787614730486633003312490041580355858973923837784337891304792051214485360493254256695809628761212457278269795459645979475572620520848161853275674340430048659784509654780776423305613794279760007992365322960554748275814987808283208448729566366558179294764027872407518195749952076791995631210130603248035937933145474221412559152320484142703545950068501473093473044004222483675490358981472377339451632626998547434741905254534141202600187709371115657127598209533896040343112785272471250547912593625318757896913334252888814486448476809963169810879868711295819163050986386429270459674860441550194166677430407298655679055737619892370281130137967568858327881302742888185916673030892565157295288225585919588817985972169747957833180532510728361318658015451253403042805858050941263493079220141145538662237842533377743676740622407064985011962932631376231695138363711569451133323921897692287820315524403153046009167993815246124551208153334528795772680122370975940389035432293422868172249291131990847213057335394935987882937921585740740281860540804409384109076051810802272151626653580596705925888409524695341281600758058222205054722115116864323749062327711204316486464501232373037066212055076644248192172754356180644084947635525648136370944613572142832330097290217240887079916949773281968671149655125255140982066667692364537746705404207163115049364752747310362502045482273929024650909724425863295159855033722948920830728188929731383058197263856715761839406905685081490949937278423957201184354577577873394575363605181757515032865830830358991426869352758221759607328559134223639811797736799858385052201557476133717419238164488191324936431986635910492475363040823118484164408743437579986021592366207279089649971745236666947130436763308874920738497816638252833941099451607039865937634329367835168461015273556662972679385924825864008768992367983589659038039436106935910896904191740278417784552209554138481166772566503048475022380327355087847996176700221043157743148076007292147502706055219266496557244145285646906822630437212144009213018927778743024727320479101653754050730650951468645494417586436398678918162438239942107393586873776045997397006137588158464161449101443490257630827300250948948217310918852469379569877388875618844340497042852342024711029159773992098746245152244662725895550993012634764134790545393650848354742187560388752271904963218501636919414880428281991030421134652625721536908318912351959998266811691130243627937681419029680169277382762956681181863127958900932400697924713022077075145808764278296168691155230970534028839258930437661101423624174933493625100329779170962093137573082784397682480917469900549288853171730952680929852252824096317942859288878121864029589322722881034991727034186912870961954219316321284695281418262448611650686562740526432449567998528841349840313934123988064098979719420736895647585257479942252982420313882445870174621157789271394465505744380860521241855494893156445076147544194474235024902471676818554801439253965635071817698746642997385090470282588910764877695358182390063517689019692532288850218576498409553180242654438091710155808617970247871538043869535818594892726625274126907450012085364914062367132472172417681524173215413498883360557491053901862068326834814551927238001117491099518892688826747234995739191352089314925289735363141302230042955219026714426216905007795212506063317466423701543522668420005648009134478605929954290641279760526661862705417300531595166786622666571718986933075247160956525332337095677657918190742811588665386600764033890589470541153018353977974988977264366717059218313229320031661645034372211507903289126083371589317503702310958300752365505407924724719835286571798575571688054156000944881710260944713112907055781425851359561594166528741008783621250996083640956220364601672556500178527627220635309140212496468440378824691851027809019144057431414288466678287943613511735950557976554920541459630323095555045252957027137530722810034142102314336384957371491688148220207759518132957486166884028751032208922760916471138989003228223504702316616567688004389540342725684592594470072373445213735402198500399431099246442040583782245513407686866685126258707179509203824295136263585835107841112588883955887856861476534348430679698301475028666240710735625055378649437454099135615806840625109434776421082252411541494828808462948363161800754351981059508301299113963372637828576895888296402186108950593113148595721957966160642252386163547574603102879192673388724613820124252345696344896685226613332941927097321852650558219264375708358448282418193838904883820148065122715008436360858355663992452565379753659321231625049032909027368030146957348102302946285496398229516878561199728333816223598815263413482728250158468927854291076502221761131473922071283513168521795228389316817861679640971743232681111821450125800877571759229948735890707455997062486266789014705799520182539535173396759081428332896522411030365099544145843785072779020544655802385879897054869385904291096394903336361233297462305956447085093424825552186744780866587066334626518833385777976755390883488005743025154759086928092312076792930729971859664004937994534494201392309040578065878777062211952056687760917225646060332943988013338303262599851279919338647754723865960005419256703048178564058197967622810650335511905947293325389248973714262248660544429617641947910792588661202588479067263537309265498977608603789061237955519336922506402799095375308848716991532019411379434445442007765210188013848465898789698501220472892393375221469499656775097553815320062918135434774794689316515578826299346345824076656356021197624380121432628761225827624859116171271937799944726589320530022530108904684638536533246766992471427793837047427148910548791656986231958746821366733422184303493688880594172290729032377678620822058990084336722921950366277186024719552814759231209196575771856544296082399574950232818131312375552921904697141368762468872071312886483129621450349272895729625966250904294077667801376221986489333884897596777355961476634387993161479292840501911751789534294339885953981116768168855080836664155367049511457741742091830046005786003732190455283698564081356993277549320511795797048994327103639176838538086766596258664228487197280881384710088878445011811553631035197545253608685807330284146319747424149025090490945571001476377489755072790204552342522723012086194368383796268374085774869225893330385544367278177505104530692250546096206825304293155747220352550368194909358577934573077216411773153019273595018659474328704603383605541738756494512609621753579793458016808958616806309642137200172784543098182853740359090519125427270638778405992630525413431415749915690736730397334385993216494812775594239995055243364694967797122390336817674755117070982263445035680630529318536527667124928027285141118313887958499443419316981043012590788232319694091482239937498009649287786056592842853145929700748508841509912769952617404792780258868882792775235831358785755376572905171878884447425909312204138295138062211921741865508861456688101489757525797279038347353737499582506580369539150486487566149698744325243111694845749236481023698931479571713983326321467037529031325089505459640028310629403026981489289070596877891870092934737471550195285379568196857836505184159746357916791720729618301027229573354936781675365949604732601012156505508208439747157448795911002639450758685124660935743482552765636140852823510994693518570600502175143010966635561635239090162171198437135218924321331617455805428895196827733803027283205321312372454942020780522617427637239390118247379151417450184830584169537783136347593676970002884607176350819911384844555886422339832074690922206867813951210964593068562406388484309188921377930579684007699915103553956454697293099517411907775236949260129363146379961726196845548875661375081587767362396246562158227398640909295333273758644270726440854224156523666923371292692152678254917195887200517241447790940477608151389167868342682974240224039853166470315074178108694628778113949792407655535971975590173537472895953557073694624272788264094991149211772540992646611067453979642617518917779794078085500159406652571755994736929532397480514147705812779153644664439071181239242964678142500646599762238111559014595102245400518331036187193548730806436055929376317305135073404719701790136421078366293324493417717319645658798821872017794932372401716883657359122351748131569842986919353174996829360347419525110471177781806924701616520642949055300557974436888390396091132133471242865134327100295719968618337988539210957435901747212018943418415828330383495215847854788085935533378953195246634145487334205546042886331087951540689634066318254745143970175468014527197283342443607156270878467647326078680358438422667334379092687644152898944171027806153708594493210855092413344023171976573826587201536560580110573875351616124716881042958054335407084535158999734312456415453794014221383057338093901502750832665820820627560937037263442174954365775675253215750680276475669849195592979544510084316954304596000162669907017541457803131277099736782596190020019406741726911247696725472777499400856386392969734916230142887131993127912288590710393471458261256651967949298842216895219740801431702039848595749904831842290403989397337159684693072808879263353476603857535202368225961661710217107195200398902585450476847892798918058384950150219261368241406902167425613261806345611179982726849811743300940242537397440986169541314870183915239870929769257837219031291868171058987101285347113772021835646436249492409278942054152287295724810823049645041891549397072433770994190347257113677984042561440272270387058734090514471705668552454416373699604686086758888688704399335898976795966722343050557238994916566274229776247374390404745089097150139911048081799859199257389821172333986843235863141115715879957271887838418289387227133077733413948885717797659185963666100945092552922279286696089521048645997828046240000086292586654654349818403152859622284067236047809470809082113653741832844562549202908692982481891956637748387309240897362064597996253210289308326415593084961857278391655998069384879750191731771918412626399078407440703673930027951531205953480413287193199061511209770748403483860650670470523401163942530258440931155523750718690346770480719577960533069788839883601067227650294401329590813716412734548850161993360664708149492189036991405459065080710684815022280251639784174036286307169106552891255055720320441101732907123042565547145319998372986855389926925348176967110815074035336621493836833645214765398197502588212489888307083417217062462527363009872976835182551514959539651826236636796808397321917086192574414617746313562749310533336787043171240666858308230203778167141139665841018612142651668220437346438043610735316308704261481473643890860076497398278281750421499211087268027304219774669661727186792255889163199928874985511627401308575424647148376720296077960768733908374305313055419209069278966962408377513671512880176468747638080252031289002287629096180319085485592152826912991229531918855057643555602235838484597602016660390708276876706244759144134313637230243094205666250235036844618931274134683907790850061014935259131584787348012305521545804967787795018600084812628742919258996587990857252288221772252578833105482277971815542507392561503737389787315707012295900779717831988583684504951964946185484407457137415232581197850535591816393680476771010139649335126754434485005032184945907996638014669784433957927658399206819512325564676777618856753005919474447620321356269668833366600764873552581590558265785514170585574223099957897425352094615545192191064852735941747492834158156487703505148907442005111842861569323241182013897566588062383032373768028500424606498623457989396754276000215427149383290907771342080338336244543461584782655679951234865102603260235139018766719165284509807670444322691734195590797812888476290877836314550685085754857569480494558436759667989989574768334770716458441229956561667127044633218764335606573534131182707478859642853685610155422097173262215563533441626752934821050559044617232768256624281116345646139172100839506077127791459304864728072153971454142544732754587597426172156532276499736875476742579049860231647747970527925059071490120703225384097988657790837902907453412014657350077035499579369279824260987136622088536197722505052697588139366573202195142959726651094237992546202851071813403282317931783539359071863507913575909288328596630530855887255029312450468235067969034632221604692536208304296289175947569034903206143815935849003738029249800655129713962499348944969142402834801067040100050682686123718207515752055461758395156955122570935048978349150100614011901469200025440285674585036522826624287979603112718814501432204096271990285617451100905602188542794244516510324561307200374172514946784090239470072752249991401238247696555486897282006407806512489501618827028471658227685412020187141333149939555985625818928159574305976276365900765021927292869219842708554705256639226315466264458858169925154803850890035428749068264200879083461969044267201516879218187166458731965394256265286706041426553321892237885755858721918275305414756304499513000434121281121355180931886811049819123789461236466920888897737910673141838446615814559055422723231592474867655987539847702628335470881362418101515101203243183403597976974779910981630436464999434722743200897262179329719294623306722328163029438069411840414428643673789787066253071229745314434969110904564027366511282081150146827278307547414347850333885631557033407641052686418885960849787953301574996128350525610150614018219287796691018886156435045477568424392565463170644005477479914466510403312024533895895923440464254632368132045125408661293603909057885215426876755321396576460213776676923971931649061340796052235157302178589732508743798990824526966237047248107448761338723032234499537951055665909249632117460364314888860339043196548247022318296120271336249604862242663176481762019910199354851238923914882919024222639253859826666064760729359160650022079969451411320301845560567309818235674346314316058391073862650028064020791578271659190858193605037949625756861593510391430090006478744927644494642714823783739742683744791038173123566947660971687766060861730426885618130540702212643192776256211817712515921709655428588346378819260764381807687043402004143780564928622883902748549047031007280171986524444703054580286189388012947616048925018464689696433347894666607060605746048420569492919143863566324406801722163382261001044118874922054471387063558658429211762009091749707463949043815947071010319545254409373749905370232763983652881464881077345816876262777279498595332321159361950801519929404192498531284935917233632021574015608127822543609309825011859135079432291620689305623523526693379591358340942370451858386471383729100003901418714923976651283479652472613064174524266467761009199531853286340001083261950633240659889815241005296373254482833660396957576885775942792574614847167661267494013430142488593736821528327117247536993242693090527223408830167680437770844075571636437745331976058711546962325233030135193711461054307886781298615295006178272600966498059461899822395971671934537106560689360239736574365324684298931798664182861692589961968778620462640801934136001078867609081576214967446618019479883693918064814441799801254758705292350328139307166598954067393543061709926064431532778970506549877048107734923732935666479841157122755932518104701782344046547960068337748197425312892426831019820296890560934451247592973330470962760514429083108934064324597382002327291394976204883056117411259767657223916547505609729461062849119147401264439907552833506808819788392386413432633207953460419470684657024171615474253872277617276845651663165018684761819855455955131469184015596332112266940441835624052335086858251314129249304783144097879753259483962033504146146178903827234372667864159738580105816546284476183427559957741157137372814496405995554948667876512155440675195015167272282474800662794463553576771497500321237954891883186047604481933389349059355285975214689986577553139855590371155680344201915267332521637281458723259259925284009131236380733736563036250343706727944073157243173077854690937325016632096754072098924308769566963197636620925265047058027995672251115554282473647487163685624386367128713102965175281616536967675620447044439658284184734390947672094967374093214893726269644465301210507323207000049284123891175452284503308326158064786162892068497502179473509558377578105731743021619802133898927485166876310533876581508763126894422808663295929330072819007995186035879367403104539668744324528678157367361046833919182009688476134017490104903485551464990535412686616107574784954536189411597408885588906332946796871660034284717047935338631398594392149078332643212108152560499392344247519019644607952831660449528775467831231103462109044888661855631665484228078851962430838420215118375821404354869162189317991630936558881374626268849120449296975513343689930913667497149142208569857588795661270661909067405987699204403857585386944970780850241068091236773491850213863138293597360224872131066406310142097723239195567839956399438114205514894126986853174917949429864971876690935164190461730550331197912929041966806690146928849844167920915792725966331837338684626627073000867064930942935937810934137419830957555349786124952265838896232530919323525353880011518822358032118545274006822128524040634743659612403879137327470140106742364192776634163115051572093812800740295335873478646053059453048617237291760819666319272581491087521119095791197294986834858773927061351093580355435782994304282030567585191360390567565300467302278561102378903244726863205057256550922881990519224910569398218071874032261199147125202679578595842816787290573638417386905487196152038320927477996140733685302457413597205659792192877173872035915147376010977059371485566394108131212617862453052024735103144201607364439582658127661234058289922121327534502876580507505174311833327399011991425365722961902214449745395675289716794348478176192747311472179173471201785479152464368397782742752838412367209908193664824668564189364732383025348063965257843751775117582588063582461056910196361104696138118883632355836104773817065465135579644412768970366480922103153606840060696253947944110851708723220232080461648401098162074013380649169606538026320958931068929265482034175287451534961490846555243193973633294857120714087262931137084827906564391908631389349872726423985839242302219537001440615243696023612022300449753721079128805121041561047545101205951691498911024666205678403732223220730541408243553829305168485698163452878326125714972094156401109868955036419155677197327927503068772340444955528551069507251641538610902300063627716818826252961615143270025278774150096675916106475661427727508745155346085331688406650700936231034513388450198868626603687921811418572758169419785864041822398603946511735425151191331833172782988193561551029561417287327608052091236536265454773618834914293639771702202838783343801638252414338642000529591978235357722198380684718620018214398893246576910536480996782887570895131674624359290966206974581645305931846816121975609346577367143664613996225527661527973337971454510624165428107378089891317802883530788609685538295390069362158372087721951951717308729196841514589054147779576300187621142127307653378814445695918516138080766339373776385793849688221584485140839101409041669882705415747552919347889620351341252493542453337824758038209555431132254273608303155693343735794105851590020588805975285361462849286893055896965913711471983121254519393725174070375674911280732324942682390070068362514583653318958901810774650141400355593876552410671542183023338368468523137456522839766971188436169128533504899825557916670713327344329251663872748551254676962095620280951735114068270614866921716611976571616304313782515582621725800496444453798155221435155741069202110208436331356334993261875854977762517939024593801421565144930096271475364843829166733937179469979928532348152464696870258308203344380223478738000315613174021433898665742270047684188045589494055635036379122144284206215982991457809113143609023159756637099764018418373413181843729311863968492226992710676651646540965992755407985699253994227306812386461427812034989815273119990340534555638592156843199221527318273162182037922904737682565735853974606779082237781168816663808104431123628718278206659988672765433435291587808548259700330472844130448116954844900370937294518089893305988368957353347843539535856303030134036963368528344079368875842142442051413150645456526114221870784648564932101059309633501678858429308473221473172827625187344603230479822982905285519699899158718671955683563484015395927553537339173247993871142649668519937330043835548235081070644282951719233567791725793224657016737913069290031551459180209494366820638550808644326613438892756447591449320967699372108279925369231630751231506599044834716539389697443718068600697678166605912007010235724676554789089804032250371086886519268762448165834126145908862967199526571667880185434271288554865535643049248042401342996961178417412232111093910358647833096470042840007999005799330379766560876450055638565843794080570713864902244819259297639613993266888777064327696367974710833176677430744446288539264044300459670105864709917414628836917377383383547046597222822632600601767072885461573546488004637254901798699511521310373810254557654308614192762254043373082038486725909754244405640234834298585731244637549990912276171973419416708150872671662927628873162776970636531522381142500077638525614596238892337865478655976007087641811047782681525233003682898542460441054546792096204474030685024452669076466955658737667276599407616241556439743698841343680357967679021414859011494004368326738987073565372884718725622967702103831639187341360812434901604708363808955137681312893986900680891865296379977115944464498721675228699104794080244628503982056488546311183153626921099254883092291544383640639401680059560844724941921439640556892920275890358634890149440927807609926468270601713094210330331577839779096789554348972292604482025036966972746510489820426758426056204095979981283343045207545952250250563597989295445565621296154184472472659624882514845128996695486423202535466767152912495589359693069451819627544983076857599981406191645218378847747598340110431110810732822575698315179226958028870725256839163447497026309377815839914707236673951643455480622299150897310261477418911146135722690929554510793785863531043798436801622055786208467405446806272750921514324314866955182918555698294647434938260833049029483347049617416403393272111080956702056233677627957603178062864798965120100983890174664552475148294187729803384230082881689569511007289008053163149215018368728487570204615609085852463074087153138353448690844548461373844547874992026864912662530849785194600748438431352597449344731269081205670352274562526748129091402628907802569574847539932006068858410382366152175277268579593798782954904490375433942326808653282235606785884795373444767013646071215906008739339643878337859883462570081104825207564396588675514391188428871949981562258134588867368854192933459497390727144701202235483123126400300999561109528765774471050620533842657606037245884011368908557644791429438485836447233466930795637176595475026857249115703920083525003792175448154600105957875594836481349938376018941500087135840703142171518836633026169279057613810578246644362032383210040743308696138133317842838713925491200863889169314356344092661898518240516737142532292584251986748718818430256717182406171387838087527047304542593778927759988004215532405442144326710405831605339683412469287352949749452809519765901654417980719001748520331075616343646265808083742172297558100392088357476104700016279199884595552200010025710570627187148540238327686713097323210383333866879155104699836138236638710319882028435002120231973863937530931840536763661421583930533161397440801726857581446376495812498178058174926625245675055834121336607103316468384128383489806226046948262986516790621698236007706291406672996228630870874140464859478912713412886483542024910355810825573739266484490091310596497277294083445667582635780229655548197681839898596633079278117685226268854978995764065700871922201228359437294582949389700085552195314626448194166905561654776424495964312096221866936228472874934953611445156972877133078724470853297275748286273050072269647934092878350523560743422862381142362431880739986253246705338556872142661165365597332385868795116778808633999940939451229352565154527130729314640025665185695548575944740459705496364694079541807498580910841719498272709099495564614700957941395464198754104887158490520276895598426207124479835205592691557813406185074855843613006069095356390795821148016715670550825848581988272595096581996880313945388762313633546688401038559230153425474362273145708666312317657728201799842950215444181798207431483811542505491217769029203817537019617085382441270397357922828282691614312431536008671327022699709125525000929787736616935335520721714082188739407930316301356207827137360565549319417515523828224970454144268349861659573810101426402656903180680617031446556987773816606990683866224655740899304919302081193655697404236592606113834849920955919520480266498155965733695862335173601747179802240322223249781365928256145122260318148400794157637328146186992087076597880513015658067195414953779392776749587326073920510892263521449569315136595435881266090436290155206459907370466107993777345660161984783893098115037561425597042278198583218149672064519686129162248839663764801692813283074350535842294108789703353679827137935012764921368718815280754730370217102070052734554760528583881095643402766624128073812525427937219389019636698408879224546369974161344886648782781646933784592774903925178323083376634711379502033812396945240248762945240521681779211218924317638210780833480704658241508957593103237069664857999164905897748602790293265065680785928434441741305766693042084339855446684476011853431163399902226249522679131009157121222711877240190714784313224372911083382628030697132611182251148929624073551775764356416056913415220127541361928439598719694413658692225527295150583829202710049223349318540090204710368132812592161955507125662004001747424337068791816440620485368991512284009472336883285516082960515514041230147187209518840453508209255303312802004172311952250249840626893074989093887182257453834887449080350438157144412041089679195920560091056565951627405778912207669022598725311321371157067198393059978388692412827684114708286689259611122868773963392844524121836879419989791197762288735660420114943206071150895663599122006551669978933093656151676238751745765530946577720659503054949052566986585662002629010182345523635447190910879248732785584889746689820567478324806668199113481040344450668715440403820873995046168482518018115899857488665461025309368670693887341663337203785059574149698689550571550930545937721762033910603335262216924330100116896020253950123666599444315586369605697039819607107620980467987470715079739879200553092695858733557624381683636415148864151138840246012973166597913239502340938521564745957108872805080656918836533491688929840184895749142567473383334194853614911281360633921237658932302265390265823790642915958638446505287712028985213461916115226446688594574058580595116619987414164263853172195638354315413915567736931330928826623087962029407683732096586586447251065974613003586152898999022437090224584071993071586516974001755030455758338397420336396427539857923567200125772398481166691592959848436109757119034507031518993567903495536474295055968443298422663958590503950088314136686313495741024523302372822129910264250878321797993033066391742163425529635649181112120113297511948149442168856209724881870625305688929068394683766434179057102526315404678124062405964613428246379310651374283796517605189308759749494497039234795503461699612009857199194083562063633328154104855642019807404863494206179345608968211505302475063168322853705699862174470285932686133473453719155524508594131846705622937643979154446127189080478563798011710571035611587829563281756608734344390850462539196419377247097846612620171454157637672377813220948241658887153275224142565651270792710234060008584125243234591030926729378609961235363229177842097330707217378762476145864189669845673265696238784326545451214957724183061452508845554383379044736484021040979252675386531452251258182147748222899650680796242866126705403608603548197912258863463133197281025223638614230520036818376661417703052330086790420299685808417150038903115123082322363865075306299708194280987843407250597759233741361560885978521226304336393121726887809090463574195105700565266905853767262161589634575624387177261530947466007379664140089423485355751429196391830816893099854013843390188344877732942357064826920733960792917574213134106894930378787739811494989602854284090504788048154926367369326652476714832735224446496885289881358517465791588642380894073654081061729406639991124585436242121170293933054388116044498625315538640825354462793087796231660000720110912073846677392870594452918784047213048629208275845490641112858546595454141288611483458535810325328468016303954370625647318792568985174224857451149323947483700046662684270973031243043068886734149851384975745116857145455142359859311535364467648953784217445787019721943826532211321332017123068295511880391751246524303248902477456648299516588775574047812259551751596481779446807464747150374265294970401844708515842434340977718396286647261743056515229783501605846259800677846090048434898190244337683932005923853558091194049448269011299683884121215470908445660288210843993425780654382806822958828922219834109939638266242953438231584334983608372983604413045482349348072538422110833123047473666252955131330311849685189644308488158683022109356593450927672635568766714750535896500204081676344139436163953480665030083211199645516149594952354414343723019588172905893273549675533540883972231109392354402574609110293238164996815855107834828570159610372615282822266305602298326122542349413549533875637857995520008375187915027989996592170378014995511758780210331437694327242491442253599836020526714510575754907872474377291411879571441299472235894890336727181370793227154271065930205249359230511433004173607022484164775709721171693120533260912246677362791818275700710722593332630355145898348491716710129967604335559260777600792830907247113774869676474523812195575587060199792827508540088834340824241397807831259032555136572668386702295140648004195713926250094635630337355102121938405390617074929487711970686407835492761187477007025491084865051457384744745747936551147649456695622879857709775201220990196632067207490607405251778517183430091235544236271073862738078367658355805259103414350183327718837853638952534085306294462938560117859441289752055700579503394048710786301702116245826700765034922351748201560971790624947389009590504266356931613217194340752139161165757400653366250035705065162790194561447953105560199359645807335317048981319712492274594018666801272822770020045062621617377142974390510257844654985436175787336221225838375443359326117891823627300534875945162652264531750144846230666913947643668102047677595902239053255063945646121014035717751640432978166656080414126792803316855979089340630093217733562305449634036107148663934301447149457434255395335136725336838191357786459465397082311708202853921975932192165094344387986282037850109840404222222136468915062322684868600614019137095118719241253047293709780459127341861561454119645349993093713567250689104638009086116475708203471949136391624019858027286252861872974168869425766045153733055122244483318693818199662324717086337838170670544536094468154243274744823110991561894283659107130146801990353476547255275741743199085056012030685969986463029429875705916165811198028492852407950507350659768631109195259230164385851346764687351384494617530244142439119379273204514805246615489749329456780929962155202765850874955727976972799821110591103764405486421897838050116141882315700833331836804037405730353164742895169484111505536609337516781446150391913395517816576114219955992220993394848569937536682806471901431394636489762832629334916532249375438190394814139459606599230130729851820770981428343488172160703509943453284073647979012432862478106283109689424046725958014500256859070086932162356497556210645219749818738432117546389844784842869264651166378996064560823941090325167476093707364363357904414834429279510075367454551553344864619136325527576445719849693999589980182571326683429452673104599720812048759906930574943119581909985626146125465427654655863929308617404336182942345346060700161944176919267012560685512589424050991052106111354928604123820461485665815530222924274619282694296321950001843380684490069810540088741326414356294315420297978641995946746998614182606360761703198617425552165151712501527095897157466231040200413219885192455384074453081639861137110869496389539157661361131958388974380854730176236717774228583137443453075258466087238741775798786267916516836076154819971289935519125364160006263279459360709757281770513272692471449679373807840755579298365743804595597267950499895125891255390963900356796532284222849025965690833186938690200218513371054579777645654313313748393862535159642551035976075902495852653424309613759988343347781912042002522821718099380348853835590686430700285866037928492026046639532400871167665136566620429291434997856185866830732984381211316451093168279880517177919843917178754151176448806330047049785951414663295353980967998149158568698327517484312559870495375068608948746898517534415271319945136915315356522566820714990242823602736099631300268528786374309288919093315218381770204268278972008689067831917560064290092403080563688696549399650053878104092080344794195753767200152344315272953718969330162524335913455393244638338503479576390697151355476199572402031011353834040696530510555934491064757096153943216242718777475730976693869530870589658973081666883910934598993898364937634846895988875891639442829224036482316763218156067724346912795823579831114856804984825773272115958001726620005950461980874621393108941070300568061294380456307254405447274702237901726387181266760683586883369857417505988435455540752457758162110559129537123199403888842867270761827758076479475821662488218087312605636148214735661987364535476293799229381889617610855562019124878411222696019154309501037239711061630434523955730134704246371542054751973840200028967452175145004442252590634317154045965042288954147848597391763096756460629425729902245935022124140277458810231539978235874447878540215077261571471047398112098370775841903333641728105189932703019431746292775801347391880835212761197414421116009912700038085144963235517560350441297210805269797876928001934812199403282890079461168017016967350784121052297166775879277948824749073402182127295409924896113915385099953937122568860252176003474398512476498062828138891966275127956889676112441670618309004971886004157897585559672428899579768636426414898044555673884211931791781131444587725125903292077989505724755775299545350156858330071146146928081224648214124066159358588241036704176173374279815412506224711611114225400940434220934297201367075596409334390236876958065882795344914244109387881211363464340032497620807798086051887569664752657397719890373780714543786802531874435154327292802383912095754121614192755579268688095199066904824836623055622074260234123702581380423024869867187138116726034470729808795330501173308639312133785429706965291698967785628410632678117027140018497422962337013496886019181581038736819036249420107115030179633640017734427221182977768523872872003151601502214902888553850844912662480669601292827256743145671881748369061235867657714082755124465392321887703853245298563203432109183601327564251413373515055847823654366710369470787603237902312258084976704225573686815914313684480388503089592662886637578393359677030860843413127690615497932466174762701177512295705240202102150742165309734664752829283585695810881246688846751012974879326056083355289560284575801902017548591389121510531304678751815099750700907385291333981280807260033643859732415153696966951659044565568300162949142599079789111515087961307105361967847742020414715434786231224554708808817016540155423208176169982192072375337180671241421823346555461217401302961066661735671076200074608538518765922781796271475145940488073703728522124270734743211996851695021913710518940462515526773973466613910547923529466268675077376297116542359444742226103175734701996137367311851401584910613338466775394886638670961167267670045855357898540409024823611101176321660873534748904553602053218311047295421952536154378493365237093933505489988326896852289444190582400906381267824201853186535628022427677457822040628248880877649890650865149760358007931607337662777883229113897285739848595953956372975472552788353260294972167546726279277283006432851850641958566038297297552453753816166164060562622779254522620169435839594473481106430506029996235520112302978512185432743173774373760827751907026442544332230589848024743668832682580842346231288038289501417847105317937329122552906768099879527343892843020216865677955074743189793684879937671237391535859477861221915735675628162544217638276834609098794303634645067954788476555477746876824967019724051287436379414615652602336807247839639836002735757687533496059062904442583815963086489014368904811584220663696740069321832451545265835402639292063937305267253344863611364828202809359651232352747333499973750519897894881175714922480982761259622132741423274259439122565347148922179941903214101968306027893382522970239312706985571795890899410372691630513366290798546262347909366633584788711054690037934836973531230563734385354289597196156206450088755447881867508108013970771633144087317266854788514523192940499430815850343522621015666567421976864227735988371964893240823311281808376200438642298521846612737253395550979434079588531788385396129223064988767003695265416290259431299486165075597470536706915608452629109854506585730442053477488334151889050562001253403351445529761048621634392409580249989756481775356228646102137606379224404117138888857150214479744289342531118622503732673535031845281255422497545086140345315059824529787805524313303512828623626110132756348912334175839669127226053067914005253116842059069102210186078895813535235364862837445400876747701645615269481694887485902730719655892391254475978428025191719649721188357716125214514367847043690876500426473097948766923606440882530349008099352908296084570661309828629909462571281345336454747858180386126511636330247144219946228150276558455515299144382841686622856557706550370002485738641525100970877147727741256803238778970554183444605484592474550734004466463884914761814199066308433585321181856189913849761426569764850640779615871858835526074099078837156038306584826091550871266029462268240526130422534918254912306875792447396739019159239310386798076404424862771823593648151293685257082712577236827212830035778171029974393415243378258712507290891751575628914375051710347785431344320534415258690108140230836847975699423009528735453740080367769001507914215776315987977572964512860571001346058174115664014703407836526456375421169091473116422023718234118750751916236817765871448786313939300575123164153777511406059794753876493642716804665958231515730993046994211075789192639658627689162939690267816992567455753787664500266322859022597051513995730566832302620561589131495213153840802394321970112917067064946129231446071412411200124260753245093873039322167739487043617248807231913049841779757764863124024342497302971261166605514421455800459892424029671727940128335074208572645211969047513579963846695439437107963621066835344465395288752513056010169115849049313319246284610715458096742610415639613840493914109288232914168579869230403750645087455168385093396429631916089883021156229428631296724528953329501545044963325643858702181143425830060812113773741315595949714511381604637994525253484688070007645394110540118682147038624040453564156586159605565741113798843314494294351291339981039680753001818221163147883282924974709983866378712852245229165813845538600749758616528532825849460376122823058050112537341397579254764718009970119229842562570793322341608376831809231888205379357553565465952953702561270335493605711250385033420551990632927443855342214635530450368448574094667177668714869618454188976328537151085357179640209124265839402555516073569262256958797398426125150895033386702410134931220972838502678025001739243479140549472670903787177161364475588460687576506604636295430518583687509409331889583036529295199442397314377628276368794569730629778237934475395023898473561459222524795564038801853772519987179624187831857887103693098357590166384858920404645835994871220210896598453122131056948665439818428477095557085229582070542593325644914082865469196095245397253603549216824084350089113037727344381799680457573650802400220703737233274761663356830196231536880471588704053986863649228716255525411040124604995664947847932456130706048536482337420635236293400661849505963460388619272502802233021217512262414610544329010602169711368258071658123028442649422980220063260902956634521922438303772520238638771134107005025953662110060807900585327797674012289017696389832652998729377382301871222419802005298454858721788537053156212117448393947017565576214138766186506706967637712248125817535189635623320582683372796601585944526403180488229333897298925073722309826768783231934509317274210462138514137191905024076588170131333394633233563423190334048449039500489573579672298332927644583972934005421747279814700074933031421298738943339390440122540392424361310247313150189000199739955690992161642465194361021325329901770264141349253274434567514134803660070907790288066514905088437976324922888216809169115578950980442054661321826035771935456115244281923030846262121391426329549833803427279597421325766997657659702386859355883499584331967917990405261036957251838492818759470161204483917170593156650063611265136710821684899432198058226351551929020273752748366430882224408289487970036273399317964897378997345114132788864462705647870579295332041421794165411855255040957572837885374197883453202279589288549669969711300768423465782594860250988784043568733427419584920130417678875723687387881257166403494143071841110527107673731676667523982557978129249150974361460320126424574367439000530393367777969137061367761426911753419081467366641046410073770523379257532095331632181764848263527318266722111178355008708492543871178728043814980174783851704785655298484055465430347243051353474033967612925961865486214960968512827991583277626482769264861952498056556131572234509021180466881324817956978978534359465131306871925379277058064565841209315975548096373600849830130060131301581909887892236667993250520552356686147582303477437536419786911745008556899297609076981498454138150013240191948024540185032824038235778922961348505825703278728284555084308581170476197026900209893600984834632539769230673687557419318753287263247878066676161962314509536773578322921955126594729716023202425491415001677183620624794916016294639654830295787657053170897119761706963222657160111132196336109929108238958964776575846039041870895360547628851085909381775411857431891758991644544483177872078043436288854912041752941077790056941194158977427307784028001207923622164540503838465478507926226704873537859941208875399837012695387747171537015838167739249309416895887060821417074145359980003690139715161560773371101074476449573855604663848375634698240140141553864792480744060108452542150652752188482238309517063140525621163008076979063006235683386582207764158779458283114321945424321437556621009114835549921194260235082721666166040514157723061841732591743700032963402248116914799308663577309205059673866877706309792586011735584475015089976097185940645122222099416925708888006265995141238092388356091923929564288964066493032466100841214744464720049926395818495187149126823154206348630176258404646525360785449107908692078192324621240735175713165206792697048646913892705637243909050342546466925987773177920250212852607709065540197823105822135225384663471893193497708190236681175426589879699241048885395887758090307068646451863886497136087685302587602910398698865353980887238088373409079985257301805172933163835507448122936621509604794557790403812979015679794401769825096268001240632306717070317345681570297758181579312561501575347664281811400130351060460992151113692143732411248386987075116343441528251246778828721211291396284153899257264623511407448879970398628982545762308525599164946361003702003966867612165266555826180205873521341721456875683304195436439772934320262993216082587971137679703596668886263377843798816043963091334348894711392780975477225952696672795538777135640919203978950088151268698981724145937720250685665950710168594450951366553203624837350186520837363962669174642694149539355338786127559574922868327263104333383912844886984380942240622222551781411107969972611360387597394730211476283190309873192750209804778984824797000420703769299744103354666685531285199360987492141770435943343451099853644911818614196386376911043205425920691100715082315894485306001130136980674437575497181157405768429694409283050223827878299339944474941219681930974987226143840551300383088353035916403461030817539024401644914273398514654497631396568216507131628885087095480273870965153865257672035817980835362635711392214757819872878912339428438360737486437464086057181454725294770320384357168709173578524318296989134768933718568236261907919754794837476097833931780108420559577772896373308018590887216550272885593777340333804487392433458368896813382429047840232671870208125446849334239068579694041184129186621640373834853175429165984223441485194309255756173158914913644158278093365311855321196081446832288499476889022369304563199841913992177699894734102806640160668638886079150849439860274389464408418395668012528745897659798990041622572601342411512307807616687938619165969131886864708420593517210769971842463957012245964161119026172973071848782088107889459634717237307931079587933870643579321200696929850656723680093704392108592297795266181357394479881525943452772714202856785313253431644223474042946602960625359988135585670629631230083376594102702106271296481061899739472262917916105624728114206343619898744550021679221871652949674566005519567014470537132112595871605389793703905663744894075088854270485360828606714226185087433714230122001075456065633406748195205779078894661766301532273167324377073746629536702530664436764696313156776161567219299749195159570170584412717787499357282463817007540773936487100276818620610489616723551681942519346389171420884540927858228441674733094339569914781647061939435297778403386726809472694020201880119903244109526519490625839620299550702151464714802960335189624206054427690463797978184217237220988780951186872308926264189861075586667544433962731689732553933479441582234849944240082732753086129845841828536163851614012982878591781018071212105839342333447318799290824800110372774745847607378836159469161334522191674280619017390697526372918493559372771541467084910232612602412686038565881966168955132801484336762437396047771066249199776596646904017556274048853070566429789653279150571726456989375845735767017633192786681790674494137546753765212093504645582718688232190282399286392483935383404212828517197995664003193596754677553743430889642436866816486218362986187558964044313232341063568046509919085416534063432889613570511834570706989373356738215082561991467761414047104699416470331166265520488643072987918001584520490886738736090681621302153635076795556372953167420080443400218331310705855670560242845034919700681661631797569414849572865132739831869022485820366456018212809134264400525719924677951600803525766216829427972358965050111419034313752780590051120588815794676960678746257108991985198014696536359742466485912528558372351841269102756776055357081435371799065585492733555905233835538734357902583402870408953488724827842952104909318915463901854538868277195507769433730096999158541950843899245864026869162144391456618310430339011031427423611712568925552541264414484870977868057827901572725171719724004944794896236682834034310216229416814137822735887795437512667783070815874114769134818270064859678119490423501432262495983828869143574694059914528994911811872307339216906320136871641632199262630253469326554512933778957148520308110282011156335093374754244768564798114878069278554911500817502576971817068550602623659293300323633832442463809316504275931477841030597377197595082355069312689187298181366693032996905629823024697784374626651853725264831471822724489633549514034733650390942902176283755275509444429994820073485002329613030486670803761080509377734941815725309229847966805850815960407458458899991556887700166039493550138134482822761040762188158841054821788801465837454443649626705538859825084936449002574994120555809662343672838427586675691607769617690020633322439056077690492222320791658564154495174575504540810772718612765981070594678040028024613098871670634466621138226258209284262168782297062436111116946470454857852922291781379894364586893427245634713367362213579948503081617257368913888572249846595680413113359362294651270621490413941784395179153040332407910932159208698754590361929775320434225109719434012644713933641757109298522043427747580825216296900938118260779066373770244226511237019464649778948888917637182199479215576309629479390149202869241088804673765758694229534334136672003771853480527379609594947123035288873160789082595706946739135323140146570588496676474303546028809696338849034624957634939344703634689592366650391422086381066187324522106398435292935777898674855517768106681098485742540207113053633680297911802020358232293913217366186334232339809447496030960654952504092568375609346374792949651849340274940088956137416227448582683768932659613325363382832430046204161046710475654442676850828766356343814969948619392484848012920141265165115832784475179797930837449064284594797220694506183513147011696970090385282390090253048710793189210736491558436589123438952870663644491654721316827893799731962084845631374811440458711597059660500720690295686239860733737702692998488297798202658380340372443666882102226136888641135612882694410982364981897256424885414318903116825532556605805465608392864139409170873446285378266004206935043727614729847088251715924051610555905147697441018738094217008508686511486689861468295546374312396196844816083861117475994165668454137313254349392892704698734748053430724572580960384870219138402983276013362647911709755001782027809467008521498251352600110991799800278989745995441445059283915459294139021762657063195581189869603103676126032082667223201610148698616224405405971934301115659015352117218167387400674584288878941274007222777161072402782946206354786352318663289363938633298684190792337724336226361603533562345797118456567028510332857552021528973765331871573163984344209036662238900927302198859392813877735489633362132210520590736482663670820866166532999038051645083861574807548298580899787554765068290703328171785786126066374821990888354033525718019797612005925634369627866988994413724870336986309978957675543041415849558505229410965245645279259166758017567242286052323993629678478228035077016768342055810615692319425502807515864767654841340018062185961819962723342885319132231701278553396662588646672167566660437471601394383855508983951476754467319596786281835522940099484575882204814173568778692607854750839503347846214817256195099089796734024320215682380254091954517062383086987055034444294170037931835121337650672857940994278361551448201842576352670761715808956960521600163727176154655797186006425978868177808163763339773555289352778413837500972424296422089947022657568373806360053387648324749564061133688093363634413294186130830650231812831388530571964182795833695130701298145898657021226786906233373059259511217664958190701977325090464333349433374181691132309886053455443332074143435266423231689719759466423498543237375969422676817192450573033024727797018091839832341144780672014274162550359671676893334052629322470611305104070482629511229782425315835532639716250183063041471545801751626945487730463385184852338795372929640923513869737522635374991269873495541395410562199045037020113907183646941285999520996412526777533186343631547580775015231118369584957337128377894610041754446541641620952346964317797061395711745513111899084595996144791726039820634986624936179945808738673235275713780918996972829775802340030059866399469028314730215682584352125323322759102724449799529421813708660497203646791016031720571704133354926033566764168981806356516331008668366792479358464930831624652781349021083297064791929239153249766253927073003750172352484267180158858492266080264446851380120023572790493555723380410582687117196423987276344219373251726051555077546096630490433940287778184195692442983903840494255200806174495321618268237891095572046333569954845870042942437944104893233517777483975352846450440632175705903191819861475852353857466954170746404733164756740834550013735235331456766892307311271232177928328149404756857674088310595186423198748269065279879934442786366099739591439405664752936006608787965429269697193661067358374713017162452053156158557981654830604005486927431824367928950474101066102213449806332316896511825491136222818234421176369716247812186928079717419572836844609482336402213532739810570066206427259117473753483892751311154566621076231438353543990663777017805602078829681747881669329323005825492542539850371959297609501266742792171234895814130082700133416713114338377531490611033286616778313770043182527457366465540638000062414830124608292665637509374987578791735208173274554789496166034426206569293336098671962120384223336102788758026913369551138370821555326979393611964009850456374974853689495740863306362869152541394520720586930475994438893091044851576359819988182539199626662743045602648283462818507378124078221804725865826944904631395365463296049557827175119859767714966299059477828220338235204971041673300836039878903804238418539223199987809847635047437600354766151861082006366994380962056990785953607557921991232180662141490211876959210291774676385674616747903276337953467528446125035235373723486954747346156551872933912174641762640407745260472120267712682718886545498989196702111144695219292509215342157849518187873189338188640710994345328186316009422239098086927469167485653617835777503451494259090701773629264918060948320810252431055728635501993814206889951731708462555459795755548282029089810160688902297782088806597264180665263789430896471595343426799981247854186519413876772424536484641411072911629224780661300449382708473791033062965809431353317089051092035683043399657809484063037911046462697211177182703393789957084079141448117430951744553178524785138444019333512857371649326095845563111564340545336602989998559818449821755513300676830378826465740396409735418995595493319716950120138046980050304925430039676401772394316846939820446958300440061713468975838486072687052563611239617880824738558793510989786231669654186780614572955601427381735071667736383516941516354176595983779803252261523939306176392282510053321513697410059276208325379763872997253916334762791827335564481558581098628392402262702919784390927498974801923727496442506560096091588313617537335095480920626124333013553813363795519890608373730651956806682105702526918270691842449020377438868845484030951687600624373416247393639339503075934263881513257744637097200672997947403193991504022459126037544756496673855955842784711225877940329692613862922020676460964742943631401993153575390240539972283873652155684483715418161890668702138031189152143981105471858659393093440121036930903855894620376367505526621394654174877633541303082378818459587040322868764465329423430151180981982876768843388083954798486666377409048324675109933909019109981032008002330011003587983725843243659136685310077601694769973321099231213477072463506468445169484876173753209061983978467763339013272161527845236092894861750209729777917697637808481880647609560870597182883942709259613988584942676110385797786154190734749349626820800355019460475633129985180732162734369370204596690859222953338320709638516155778084777279132610941184698914052521349254900528730110018800026244514309877661129214813282364383394472242069675778408554859990007044047784177069955047889665844600645085648830525268470942733829775522188198816501475570671893722001812562019184508659256003280932869860914444892889907949682603261867715099084976888006897469484954980480349040999709433924757283272348258878365510715348507295969288065876218132499538902179766482736929089589746901194196168364915014444300342109353455448284928641117226684889130731562382483922254390277053697823525400979542679830296542007552246601579820926300507906337302488521955101977922980844756664910372205806950457506593614044636936652352729321632298513322544183652137994538148088436708035913607026115063530230671519372908941558970684162640999130218122086179821911650181269639238330559886695935957041269664962252273956753485107107408352285496767165713337886287548806648540964739250857976544375842172760182172806802646959504364491219935105433622854187677319878439792119910070864660536131278840332180249105688188880096038135401121759555566553881777618290793014372410897474864206081404337598214233245356146750646611822448860421743632233219149117051416302650004929787224061272268093968589896461368807327419095956780163092818181657239233600386855089024547488067594035049735400333910972049343963358915297727932980488223765447092513893653360593469928880463076938562645974134158732943844379027383906908995882086333599079069088073147505869370455826593375444336608773515913868422329896611715709697919716381290237358027021598025900338003372843889132213426827757733850504678882924216503078245514477029362061191903049565476449078258317536788254611920511507927564185331215405192619338885329979367824966103994256596243833149584760597386542183531704119809999117196445202851292189545467494064374561366153208711519472446336804224858725657255056938332091734210443212139772347985418704363927642730390200290306239742978045426345496625669411200653105133883210727976400387941155302468625325460047347708727285048771547139091810493661458098116147565992507456166703341897348004296616357397622830739663185959776586570836290238546434675839325426255958865151893092226028329641977418555698023377885806356694133225415502681385404635280517146552335871758833261240245592510449339924923923267208327259276102991185666255948535764246727612943258419509733033147686044070079782484265706265057102736672633796296979137429694702978837058691453120148740856527425336166525368976944722261951857609930970726157157592014914909192275184220590475755096964272908041627413844447720449256486058720600684996185256130312559962106359942276581113271405336253319172991044116422563632709147675738836560019122726166516035664316722383232918934413445554459186609865909226658121595223988304497140127784971139149649474775815301406644009698871403443660581678116115787529925492134042692989561747888406985087604168258208012007084303754409198321535237764041931486717343875426368492963318770770950488827887960058337993077361204675069661204981281796111165186716820940866248438994401695925217710408460586545866911069943536015795160671473051957171746845525245492740229127466288260680198857649365204483936001567658599632724082539165138505741200391994114390630950742197246451774079321805710733125491780238417777516410600028133686522452891911918692716414453484822195385461488664455252673054227553843878562903814274478563018294962061135677284063601261809499776989296716239753524760222681012615166928706139743357175623218045034598402187081313627009435900758700852231944804494585220781806141534284074073450183408733574425812065792448110506803443626212523940966521223629652057298648935988792211227292995791576510726596549751412460895127911170751629616657411171856564363425411355383237759070040951326187540578433565136580820176766142213925647722985662840157081120603951127934383968546250724345042754356049877722371515950528473301933741956081326460096371512295447189055720212878920287322439551337930038372796146220443374736698002714748856555807722450048758645413201503232171613265805112500078493508521887853161751180274793139550795982957172235360106565830795349119285083187603311656391409954392514547440937014928700668319664397766289377291217318301974496330398975940604572201260605597419755604271571381318135506776328607563260561421139949999107061325861815289393754073328242241447335574491491701645851218380328974896876829086649667884285469684143508709879442423908175742507500612660145119145081334792426676013505626525295291961853687100236743764221323462775741632891944916297284749401661194543123609418155619842211246355209344167057027591669199285438082736984942906335207740584382641555620331697123169924160508939192511502309269006677195621379844173259675117981168751683318433504743769781917673614185559271754313537639295819717961779577068799157612577510962351086315455696196499059314834976601586736996793486418866356880123582798365711649166544336412396949839618501775157251660321740066915744930360533419397454081089240219658664766530237515686866873952667756087687816060115330497115667643163074302501421318861001400569686919743828561637879382653392494657010201453958514720624653754770897231940850077754867633205776090547958228643556528161297950512257478298741781572492643328449618256265445551907566524814515181186945514444473141049472445478722356191322340690300228341180358350275819206113508570145997258663168910617744610240922540864466068553302304284212594945904821429883654923323043276803192922551749418676109189455383155881078043925064720703603905278623182860098002545823489439201681232288672854132312046240268809795690790732682537262905823798283598534397657660984765276430739572145916150356633752498783122963810892706842508248371889848291171265704257380991561661089319991543598658458889556795668285591079609654364434628855981664352787269026956637495691838163047422787716066619171456428175008288026999383263269710501065367144398934834541494593330793435343887835018247026645137919525385252727944817096655513303210248645650206328787486652968036577041791785204297520717467603399307446934235749744408570529146229791400353431035641303360745448245175358321331557230924106912469543544964147497638533016360137758510042940455469401379543520807946472475178023277119082806101264381542149567515292958562100911674947185364718054833893667698599194837844445410606497297350240398890691514119886748794511258067655570925577718904226554352792347833642783044432533068157843438070980018250448940854036139927712881346933345544700755353127343064725972715457642215967749392094957627499654972157248098633300647301479446200032248417227746661311651360396745023662390230773702495864237570154215267867576237198548807860452749464243776148866502498978680931209380158579500198663833526728366122941401069755391473456630474207844104020607022388396887344463786735912792400626376914690701065802157669026350072565053431926614602796384156390696288410839019808662662738231291344001476059798171862719755248090010883220978547086126063523964604641394511514083460802886071817522560316088939997814489989331354272329314789470295194958069025034410181552992779507209384763257740353644734627907742461886362547154423885539454209278526214103212346264274250278349431874119172515937233713923983587165406128508220823905449284001343516030236067730199761279803400590993912437592305968622269767469578131169422446747326756967067574453147504704084456938916103212439954159855841542153893771729647126867608054426756620423469333639959990919799847029493059072130690815624809150534938166804899859861987698447594817714355195480275828060420215380822257754222105871581736864191265966040286737973571377424787272056948341781367398951503447161804822973610250987128313632771617656228008982057844099910160439264532820054287475145872181374616279285941803644046781222466413787363665617383977329633057864727118563182417285205295602771751661361465350295534974682026536630102230606442305619271257658070866395636748518297157624091070887909986638520552562278995133380246415699388636928266623707988380445017336644454268251069278079157181642504912465449257741805441350984348333625189909284056752446286125525475685618017424042153980819534753360386452624731210173698537258170173230905180471875192382124901901646635955269267009850097868881547226102821377169150687272432229431231165208714355195699300760881069488075980314821014908258403345947824274395342114189421853333768139659206439290406916195426613218640994296504115404108626936735191918600943471140286159307121829279509990256102016939682031647265090606542298872539366883955236118017781580067523707495870650446096532571005483321579370977628227622215820626570698115787211541662294020325686812934956051655192400880824127663609982155259315415086659794151294017318509883612509719253364094999428115872651613314522835429453618329764742678196954999049277521982469783134562379004984226863903202301300860186548221237328193497756203384648736636487259435291258827983398169930127732639090242437763196625535188193968390624162831185910948462070993095927719601432966296870981131576767665019259512262066486156490605585037309904941081872578631114753490799071332652162155554715779176615611631429183299409025194137289019580648534385942632643878840485612824682483531257932035072523268238350240993836945968706820884966737699353275412298161915103444342251584955587393253123800946385848148462429422462229054920350840438689671027435655154828729385067193563586234167570938706748013416999691666534393553868928192836981359974107096948538897785825104655156687601613564902079544419917235998578758604462469392907715175288072645343568621890848643006724020144290370572911987648105565266216004997515171198612562654282444280051349832439578822797191068761303975983854209735337224392444945258395718521331909959876807586651381247041079608977011821976842347872076417718505680455561650296184041631281135518936275813978044173404723498534357904069164825177584416215053821735226305895315388497689910803710532993071182140400232131249923859927837974347389361583822812034132578098797642703514015822482491450931514655677549155290705851514931220513209868979805426378443398942774775084374563291314937617447926652198376379201152793691790939233975032577120936614814817220708582707520853780502213130672382999102149140654529766881935523832161616594347911320321566375321959859017689041383128822994190287447159967697766324987980193918789890808050819013401973007570586247142974556783299843079147280316725376464789573578804592347964349928435050642917327712044251951570606914110296469547400161954789937209994883118916576148296885692713165985303613622016539087884074147794541056005054077974487667761045447288556809342750897095739803790451979927790968158013894402018582119722826400103958797650765618846111232248962554843145375111997235091880109294932093071480989601509365719642992724537549889045654825908434236746472050360650272353798178672181516171299007987556723233515695465736956171148107228727895366728993784847090955726372312663214538527219752025817668627436471851549767614462845641014855034497991225966927650159030329417109259659213118299722404649719846356534227792456474868784197065673242678259101912481500191093515960502588794994490717394061977789071718343762571943336474243308897449964828085326996366002739676335960470736353726746497963874272576969424925285274953623918504776335667948665500645465224958595351091665885522003596405463645409594835441931293268290868916816580939879320716075747218844978199240585663659905462953134163191234114872302063787448662131443219570571294512030274843146846582053623812839417763693807244266542432751147725167001390725922076987633664296773457784057481287736343867514752298753954701534953602881598867385387809783558949729734665257703602506561445239780198599088518990537496408551412058378323117275277490363937014768694427632593377718044755703344736433925703158895436133479667051654822496830544556221595236600678191704644974665355110103782123564254591209949244585812628257109531708570767328787715747715838603832442802905503582847990999461010034498450858307773627206002343232230733181133997989616236987698280180919631235342110931882823077135921092883010621383110513264211777928403672249357692939624179548627184455578636597836258547688662468999440219091765473988693596534800091630190465343663930249495160168057475304495494846544046350414714523335321566493255531574073071123480686506721427699726410702345127565104706077196675826746780406451403697498499294017754557726770907799471935150739607093283062219557465815239789982591625825426345857362624959883011162300238356830973151287863329564296645894607692966888488583624714392433327231371531780278874192991038619564515044085870544228360831115509256448782280469662621693086750989158948191883680242387823765856956979663298246012106384234227890438689334652169792054190578400967473649224940156600712644335616956676250428249076671360518239424098530593483030664371220093863075641656527748705696877071622127155211388802245103993767805204976835408985791770504623535632124124944541807751691890334454856104507953342118189544364921090853828616255036437470665059996306505760774339869113422461291945593679993267563076690086215157520589397423814756211897372952493510736055646198534390295552114092892150477766929029442735285835385037656990293622064239248950772897451321513847342793779786468208744333626515257495802405129035997919026301946202320823502978170019909721522893078953899421143696399341848367402484748463608815381043828171646553920445619902856066543263492040634427694868792387081396050118386805175785210913866250103230121560402771149714086935232599304441937030921008465989927428380018811972999666149793560212919995596543352762615215022551294445923832750867765346063367951684470191904947529925914125801568394868450135284961635101592301898434874150456468922062525824068607729465796245791231617765514153587219368995369825441558244625818093147698157743578560585123133598599289373367218274989107936052658348404341079273860532432224655474003828174050608134779729583341465015981072649160898508544273156527862468705612288936606792426155956803207725191235893826760309704050302306592390777295244371472217912492267326752443034891202308390979782746568487318687791171119367700613806070664774686277796706184880166304477060259601349406664304767253482995638168202074078401666587834786650736515263909479319079885236342428999104759301300930397570762744901862708451381061825251209312597391185876532448872950592996172549308911943688075086391193614261782536693814149915575102989697460654739999383556216517411948363765964824822516033288354270265842470738274699038923199566436829191822461524907188321644779755857990387594126991021223646775641122059974288327931572192744656686172238073500595347285567058962645134099653403940867983471541841945187495533640202545511530514194714076696927344650562984445709354392870228046274587959890636567571348013090778430912316145186374636274062357375267465971562355456213920447187129738189845018499721785520292377632997905901919259874351322723540346219423908447716037856490646562775910069494111615445777419654491477429706431462700006304423843145600042364101751924265842151889163576563475471221426292903343707411926830208178311927990304666554794991643263773235860445793195835455567441683421608614273585385605579928954486834478229324488144432503115269227380808847951399250794561244435619373852722613148498179228030426078102881385540284936591182141834488856296430053621740775912160969526308497319659879606954776883542016544365575481845988975762198304660452941946285788702519558722107037021761496441412877829505047037525529608651508300771140265466323921660147008468220096576020028244842048004319112085013795158470534801132885169255054840435061302015287458088026600756874093458318981759309877150265169797180704577268227451881102543517945538987315996439157942028165835023459387772303170825976111392913477751626618414757573253222408781046416823740558299370591061658394952025501792429703256441353950975682916746934141845542712688175092294722484721710800050933227106598132878162711231579538935559834739608831949047113917484154601806602872272905007903932185185283322795732429669438984175935491185967448012862286397403600632903766749571742257064380326004807118220211125196956276471641089023192094754662748771136678633185049820614297425919185583151616087451752845512068622281631050411969844104409300769923904212830368786333904282788701029496896262851321682789967324319815908336156388240541632801802441898318406029033977987221948989731394002867222698222536151955575546315208029501547757492454676974117883495318056077150492294985141920965835323308163110520655370420869654703785047096066053134917013774546799076134896528040728175005539963481839985063476960452359150860222552853157914395853158627407445989285740905729816020311675966458657683677712324353268424030240760369887055556338083278240303938117607558791015053091378205494128945022999582393888001838460289482710261909646653567213895056971915847866732453273987018669803703152360746392330060684957011049820734865193188531705248350989945653966208528642873316698411430688385255756355394703534203409678858416217145506668821356510492850343151375408030617990920347321253074493144197475708667746611407634132204783615423464736993236385966004542012698257713821971394672370441542537284526084715739386525403975132961627438010832550645384373049713266782966874655482764373555939328651163676948047886526142521269277325198423991756229659145241744103495289836348900824226259200943285785010228434397166156747429213435187171135492269281000195555654623643009383203964925817432988257977528368851032243714351981960889492780236177873296941697226512721544365634049503587375716240659437779333099860792099773136645596925810509316526060090870626230573115636520706635166305493947796014879709934592578373079889320977038068525707106592361821608939981521218357274721860340283208903722587417865327523532317195777972200424769732192383867944026663503375846354351762948784094528894853563337175236141307384764634541488240720243277571044222049965059412578604522429941751798031158437109590927287935550319013044271618204040231834896151064685131401835190409582171895635282331345440665660828162574546422494640075122291790456447819473158624024629735869117345885792631725477732516479115401761656764965494816813776707590090255886090287516437116167862784341019918080143434799392629023801259331887707474459338303144788963807767685109155395672195422904038727944511653819208850709385208169465014837417850526719342276638185343175124903489569143981780081335437759411532154896208650224059010229584103568521744176641995153214251207270827864657607057688592812421003137687375402848842411311000351400900732081825309611615402547597422532044151455233895066010224126133356220086181944637746439028061787645369631777691468950837333782819657618344502107544743122782667743812159050555588866736173230378156307889488973457364650433810386650514676574166129378580749626601884875288504730302844704490643804931013972439323934701404698595478577387391752916770677945136804590520577454250306981143328134214811596371956786655029497336523633441581164637834542822230787285872893821883321362534211916653129019411894045591067385881210413141392630237461135228453184845340464850308108893490317751428289609732566667679391528649414158779531408309324165351441624521341224153901431734230144832269620911530076167392409728078473865447558485721194715858917051394328991673299645158093710986457126317984661594901164357823750815948782245103398371036947579034449326136161857253706417209654179187103612790749310572023913279024717148723472272834527935034316511791748634258442904882422631221601456179399932392034567985713189892465290919186754593054808605623498441088819548161529839967398633447096286814774489215231262378629826747951915402610559291992836394485889071939309740245563179966907089800395923450919109825678785570047843475411789756504881326877155567761363120690595379366235372663017908024039734887862071038208882300961506923658507100512593256209527477464715561870262400737571203234238276616704686259769367718334695987457187598003126676541972543903072258908417606971064458163960006097939955126607618004867874357602181161844180745239943162633098341831590200115294550474642978833878534980842883052051449138342015297457295936459122325492728266004666151087487453464687304819616254646639267434062466157027100485077124155524797038379962340992615120338842736234393777538516589943820750166100742942318315722738966561824569902535455656775974843286113117308424037212257757307273843257617900298533652816823338327567553626663802243947217001064279947415883236387098032692279011488205703610745637713258433367116975491056994383617528310745364457449971594315036178778649983005921153936683536651629614115007197717739744094738808707877288325261944019169802989640970479429064934305123852976836564394989970358497213926798647748855569267257686070394955124118549077102705787204617034967407538427982036929247614831617310643454332111709023295232068606510043345978269916547982338029746124984472317561464213102272021249344193185887660731983057581523945366464294649864350547418224863063183057849401852530807227689805584196856272270668398168891882867682361477386268398985384425970025049328782233117104865314656917688353256583102568785358574344772853509792039938601891674718455879385852571942083073534630336477580431409452737862991430506948867969977817000399731681581624929089283884103297777489542139699626584262070053453883383688784143290140796151938741630532367971170397567071600260756800947904101872022115543680286948488498139917559251578045015607471829712490860576100998268823575790155878785381610478486049765075916108080601868130226711412565619308904639342696803552711038096824148934073645609184312840236742226317499362047651639513974762862757340985316721598473514916106942769012016077121993938825028951997114333426316184657561219456742043761996964569957870123950049110475024853241800494285355174247338910191050567089894161204508860077238081236997293952704627864589809661616776637845723800497925450084279708199383429706716385288016844755333348129963337575995751828100027359534544848390824113265586215227003086942660009905359251391430802984412488605516669232425463425077652276837638507424850248853878460821484381002553207940969266107049224209106449122395706448296132096461814029390942588206063595093453836185595740712560069877413289552674892493291356226761258333398961535615212191806159082825468849250733612809814202996033893359768583252446561423536322097271310811670497245106418462391839527261636263725798011679379153186556193300623068027026876429352890247055339479925183187827147568509979804038530641577004835795552834566685769434371789461869878237423220276252499131964690812750709808237906223384329557945190484942507093934765781695923540646598004397871935829465863274903375680031973440026158412078343013472064729727563916555872286023059303507355702397071291856375500443752181442911286991148366355239796004644369143262752121043155247976467708906688551950998198499759998379594461222921924046244843055610292773814826015735674927622112622048260769547673758043243805113251929665592350016847293678114338354500643314184184000111512491762764087567922475913376154191348219631572795183996355993180035562624883497290134673568069564155605544005714231305836520545530107486896515698700338462637175261984937639576878077423876520024543760609422395867702802438147869381457254510995376355797624310448812207825994795335320952250714597777125064843706003490232829965807757543530560110188964741330990859115096175544598794458887721592499468816246801499642562496442517495102557924161247043443823393994858228868213847604658329532178472804458309069720084728508454022239809211740264549335329123165094170798251953973933165765008063303831544435681481830183093770238175776209272669463628476714214260891340903500278859390832340135736018636209438910787963917477624923552154904988278387361098277958999857341714353203216129132700984046665196368832403343612930773350966777124311639610643122109721926767651368136453400932155435670567618977168800430924266665520689947703142146412267264400705671063737583140274840555299124758828257085319328604329286608018716891840347453166507402238048837376687704126601881878073997932752171784680846632248855353711420177178187923159593093781195902017573484326444183391482639154766787878897887482481204000795255204612022203069773902871950820207454196495082933248165579325793994902905656701511138546233289290190696438009778592738565980813909630564680542856167857458900406320175309913568534916546905913891809313049040677069284581872346828542767978483795393085939625210800624551927512828171193016612856302973821828162677923795893512553868205944560336477275965126782978019023624158231168690244279237537642299356329510572732208482208809280394474153044641013231833854014059463525491640023785785603534255454671255967473323877720901102797728165251474171176386359875620033349807765833156935565452297151240339909245474718483161286735126262191336652641626448854347086247043694086188371952472821160625516281143824777779645234922654896316750326550499057083274055193360451868841224448845037532831045200332513451536951856425014722666716000329143327407507621893955282591469387586403907347686667498348946899879136895048312499256339085091922248827700233333775034448220531520348682868321955256162574566561979134000021256334406983635219788669850347041746300085950607116863860835131847172425901250891946661770765950292313311120889813284616844293534252553302118538022235002267184280666308500482719731245283080936203704058423056347750476657894118679559006671504070344384405258600313176728365881287654459899976214349541326622863166258144044534545450227970197685079926050714476464014031710899364666210088727363396852842114106170014913895352153483460399992897098393567009523900032552800404893318737933401226067295802567111581176090524471805607910994568572780425115467358367915095012711036813976886171522597792505203522105913922200289640990390522305893339582182567464429105925015668304667748495621548601006398836301773752840272512893088832359157213227496693836263278922914542365623309993317602623416857847170271478048247745762612489425589688290008566203196872451787706730059875166687946501280833439140772754683070797348932423591496791220139581706884007898496776906972898727588035018582789264806196861628706779845675235495924802605500691423789214614791350932709180431713685720573288777234786938331967109405981447881451666813025157636866430772729444622416475087577231852800279148745004382957586657730484617922080697370337902461109715264959155929992478114468228042873064218664680255087989818074968431780150166621600575978225215421846762638942745791070789435499259662521503047991385693503182415436070806912529019332759929705998069250303000103313156707826052952680232223086824744359722982986050047978120608100638427353841200798344332111244025129915186302677077583494480368151312960685142288659571744438243165012268309025231222603714694918367413021686860957437164203010964074582161995956358620653900251717599239743110537875505235533195486495691959189723827222307473692347040942479520968856949302725588021845403507425656997523733097611410091680921449514059131122571134726034325714453778717503202787989809503736467260057577263699839337659985607372643672119916734461671297717372345104059510155814215618310477036959832630316895357734068057412395233823192758341264353825469933444804049787928572677835829926692884915738371818065845261440917361151417903349211015924722468313838399164416912799851994291756809581341372750966359231288257259507747889031680694209541203667136105018990554809506858773657930772678934857319023929676006367132031896283487036340102256025326343209828588928799809658753848622683186067516499280880839025732795022475471784013025279073762449634775021875818745868156155668407873335774280906743073894204274981012019616019489958796081149240554886447248834825236763816008702900177949281297964207054504372033999835995121480594952705863425593235527081356268422911466953915381155112776636449908660075810669651730000793271517174088154906331603658086102086405272504817002685372482016776963667569163043323015611595593288475534578924536772243484736688836738159509043021238877683436441543267675490494737811352050897947392019703035716701988010639989438302137325166489395748450902793830535054755093760502674728722223321051898751645760018488371391328976503610189990675537828048752000223462526473806990213156936853109014238900683172541682661564283461836720527326580629860902425598517801858084544331535936253857098853412110138404907260901826389653757943023049596503367166430874297857226330810170070969145536381081404665929595045102658127911524931007663573262470968928915936286481487998833960085310583073918323401493566737896473761885244489818396639544263199080320542587219016900139502357880969207660623937446675743489961997269877028513216868698423400390202634050963613229396629780793333062537291369971026841885130791056949519730182415952133715359307894279844382081445713740086570450772041464136226949730979315842590901708943028637970886875728754006008786840465718671052565546879926038918649342500160182084878627864439206375283921312901882515752668567113033589740019471999012883027596392579449801832099937455501104827775408965099078234720856423103797864400411222482916986365504980793618964774499358018423055776102094718366415763628240927833246026431238221751058572301046666336364708886578230465885454506205605237953733867451598376228760947069349689532330552336802326830225411540703798500100617040064931949685253215405534900694010954721623285660324045059876830593512038524017369669872551935917742337396020190709059158477099997267440385846760194489209742064316671518924367857761317701313413677548811793468204702594257139559568321163059169564443946549967456318645272405164541702543518832967398671415526866640953585205612470135380169011692594818433540669737014828500932257327211022602237743158999703373982146790591773397514999814439633784506370195746682292138106259182781132720062390398697651604344759090218863919596608841787860652805747750889451460121944219686982625374893218551446733570952819606381477646452297277063209473355152939086925292362560378070078388245942331698331577184542913616235652066535559962623582373669881281553513111572853992651901354910292478829920622882504478219805385926254368236197504739766442230552832622149150696182378413191937597968183447299301739933416683416647842442597384646549030255007237593345546368548415991832040935124793882920240877781746590739851189147305910884619945071331944148442714537656008761555249653540535362272431435588844093490936552816087544944976120367306323523992879218809295312153833273106747092252551631330487601861758693987021792985902568431873173867335818566412623889748458117143933204652727455535794581112962921714145162342263141924393147784030123209739201460390276234853641991671994496611016661396883979779780984106956028325097603364164960725487123495072972645667999659622301140079503857506730831198648240792394117548939184292827011464337966653832869449131357317477401612263050768383878319517892876532806067804533099537437769149516970115088688341613361078503196755385746490320664638198206168738862819172889710538733366533716186602173865989859387978113546128156479032643079755937581714331467967190662394808693689139151219138026877229993786725743677923331742794253557171678046251223007966336375081761690357511480149360774264309675278467714528471326087611155179176450227128241586944354840637979387035483609982241316158934225564603842283186893068379792124801761191357512111806679265070955767838537432194655271890424412901958649039594317368129922597517193511100153248808808376831276358719531118388659633803351568594791231512722203570579258888522705927327680733539888288960340927165602050700955971705904132067421552663857335723711112312117626723727091030676253934255699846856170985266126135980064388834325501843890628438551890321089017164830134588253520071232816202122346348679577034922818069232121535232589608007998249036736880011995818336946820735712256992747829943689034499023595898372864617053246002552014924777751794795213249368218408881329297316839632060296997007767765609472127920929174784461195760158796620454517455203080363738093189860885047303093711890122578798254648754791927035439589014476559009224758288342992815247998109350174463677567160398846877407330047118891488656512549678279242340531175381997600165010476613474371871218824543546961645767801562207472767958813686593696594928201099575855016744913204028552299449494536469241298169748001114495514045018429823016019500384894520754716450076931200029674405438497001940896938729169235117673493631092900677434886921428843711437366363440268287061398490023309430338793267412878294140485086031985111820091961696541122459662856483476575992186762928412685197746177441429644546247962963681425904114704764229490880254607277895486940904906407101164746705122684955602602693537162020765720497954825897888680896519349122328431393897716866533357879918699224233267384719700949371820805789627835539636500968834012702373699157150286359606036538385460517153781960297056387860524754315680294476212535519794368285233366201343751167529324107401359193311535936994046240230228307786662812187227894460774414429092245415835828930123055239684093093652846882082084309661970836693444966454211101417059104576486873117764034927087990653381516313793143259391839916504147006854676386509179225187277430440050044106798096073117270271836087338804520730844862539024697698552249978395047571414860737119921191603301095874316024241033075841994682459315546897751564653373143872890584261573785342201221197048433737896080003934251287005166927609637828667337944366126733870616308337394863485387673861791000378164227371230780309954824323052224725310480421590042039059625216119374465425488641113102282584246483739031875542643586303096871098742042447829577727179287542990753924932456784567158825369012586840366359735118018491167495714725707260217289545756377993855617812065809863216039489980247649167964171820978025118031348742693921697410636878018191315813458860581960240538397152976115065116330522282852720745030580241449281418103896423184704900011465650574964720468882788912152228462707463080507535911733268243514122079581492304160433122043204548710894290220934843525923082810776165526982113214289197762554234475415098443681553482381317914131946457004767929598136844013808989380627706024387066740957880811665962216373179142590242215600823724266660942419254889765317767536257336998657862016415243274503745783865856433577535560668464206712103669905193218151613339337776174993350903067954286960550422221958605031210133610258942507674215315955284788353412409943964095208819850151565061271120608638346200549172794650590288998252347353117166912416722262824366742135136536962901107131919537012101984824093633971188720747946421475897444251867850622258367734846749046137369795091171227657950456678061949436996911183311877901555469100118240055393386915766589199460294844236810027833393367187864101559198632068208047869814134770210533607665745608996313884736319692610152009838249630646700112860055931832530709701536396793900232293842027785906788834642346404787911353888045694685400926942866855038478440042001502790793082329040386355773543522223066421136634966557454902174766576651262016445535344163014475504932221649362982089881835280843670645636834003988919632235103116426494654722182676494904748500951044660921043331460839110979132671059956977460580759167053370390598292300298201857684730702978820092218697461488192004777534903822507122585900332645827986690517619554081594897896949374537897679813859607426655238408217303863003808192267550164703132335041595800354664162345214007969447103176251813472834908328336913282978933044104315589061499646837971827135277610860897766178223195165703441064772973308846950515706623369696864874839222131570919197838813275469085310202273639456773785216490622263019832888950021315836888201114999984953641466765010316707948681349295591208896652549652566824243027721599819695102489501494040259793034993031011604397129708698162201057701354161592027678130996019230424979217422310340130338486186623330690794301846686028593398049297007810778452566442397414370604384462753474772221016226218098390595688429667812722700182068955798361546988886427952290144590658639997375610352708128436113710890890600744065238351621254381159107603262064771411739615393846404739672311001236847968449070800771242919974625127641669026374593261016063534384099603883994607233725586138125227893393219092671455938063336803510841979723116910593971448753416110894770921869053409590172415153325974598304259516373720198015671171888215119942240906643505135093069134759410936227802345466764091712399517771782099842976475062309072968895933979898913832357057412292361741530335751427792366724541796056604499237615490908864050995259555727168941801198265193253412026194524104141962567497158547470316693754546866380766174228475837748340311494976804477504323943812394989805090809411674327784091970170203062189769731056545319594313234801327097711924448595613559758627270013137722203894381909282793712997170231353246904998870258649568471985807929018572574823087321225789674790928227582863978260592452102414614948884032677579193222726740812950607019718429506767402758522854115986190378099253011445109997785728254433633160243553022240294941585715082680471300230416739772528579491330936597254839817380649227332823041145189539021745743017278639452126877574566145097669741156362419322020966911158925860939669102209670093484007006834278875186754372597159952552424253030604632817578347445031706514205374186898050945237354273061059124598299853278565827410754136782547795890396478299626979469368192218466554135887865427110949881635448475114788552645121841155846937087998369479246826496023496871852300940772297509698833892775344988876615955839662596665559791835646377511751026532538559958933171598450553229659389959949859537952341738006854465193508995918168452700743227039296115016962623401440335314075558533950950470890979844441228697783448677712698027463785931074157169776051177966771527784544980114135013274614564798586725433108108253323329573521746994890982990915732861286240931342009732280213646912861625666819540096270565674721922470094565123315676128487879445828970202761175864483967284914308317298497865435934013890458925293938839862251980190579621253204401539530938553483193321483979075381018726783884397616111172177303317488381316293856018450560998766657093174845142543717755215341243125588995622865984948854318921088027384262270339160931108428673370959483703611935016884001815795594632498974909721372622350629108973251306810463196878502700170792653589361767883353478511420791480316073081585220468061940702612696448992918649246724822796575410125453088447230507772821037478736977269703392941367854394065066111086799871722418123306450276315494779742358307461163637152994984995836283057588366704276633734488285874578620883974730614323282267437344634476979866936193622419405904729209349577957537223589586028403299783032729986879283488981357430016301063283116034192708526656368660993530483053399341487680081735918196831689042700927694760203014151352407287495947518770888304319159235890192286888349497163957256450738821481572196400311139310633145979434089854884277163859793589744799312091456846288394567596377045081341156246998849279077065935266069854364749710019194789408110004069782731320533218186514627329722610776972684037475119897643709830541142645378926281277196767562484170340578579364123321956552317072565818780787453960926926101353072452798434098167705995161914851664837807746091809623792539777492175204570472818306139880651640943740692940375558568389537109282457506232399808692912677035272375491408498607918723667391014257285527915406103837553617691674602800175694643957605381994620754438599214361191029670976032673225875752253683637947439801217015553117032276901042995481047638595672692441659874119575736936432870795172312864179505033008720908703234105340472462809820967454641009458837324709533550735964316353215287478083765142336019698416111287083403764545196334558157868914094409479985516562302884834794133762422451926100016282086516748085839908983557754308027646975378594497083432054653996376772735584105823004403492842544916373799640759882699329197336730388795724865847634451553766733763107384966609506261549152928990914123027463530344109096992362641325467590131822156804676130447225948743722554195495628870952015631349507757556275632629873586236719514443641282145815463489587537456415995424390921414250730771375822502656041705771195173610033330157847815751200085273247692328779034308556444509894507621911101385569317834740050040917026586911281526104395471125580132561115423835826507359582035693988171787106898564020367044780650534282494127460862113750112015241295014911193657510455314488818828909743302337151434597319763930894601104023884382004405374704801416662728475600168664453586986819696194905203286651385042076928987235201456886704247984193241960821370313652599872341620373342520900237797689796976971380835295721949070403914757423912852114911029648933979862580376492333787994211171106579009822165915335032278266051630066862495951653321863931253208097684288101115790083035453951348926565995126485795090840626871346391869043924838789169121234429694204026379455495258572295237862168078308598782983805288386061319791477100484951513496319775747477704112145321000624625540892839440605658630068329382325258848428178445277376929880694409232309617925937424778700686363748791147218369983348843075403780271990291482721624246990988676565736660213006627012755795895949038917234154823917568873403201561315408227140344041542101444996833808141616466932098749339538951345584560066062756027444161234369644156751408343926290634598774256763576801345367738076114578682264568764738044145240213970502329349577016575911679719307276528713904103593542886434406569899195379778556659865168527017450869969959666901560470270580883303504364197280861835156362486956456082782663637732293998043808589941662392900497021855882817943025911395261544045215790624507210203054408831672636604375428320838881758193391551972634820362358518437787876258416707060207041199635031823641053964547041053196714874676966200897891540120402480540115265349425792649867107366753645846612912910097312653742388966689899974271661605635398888478095193067505981309939563697198821305607247626705221610100300786321659055357983954247767843658884230140825805324711534248602178832410903778761113813453580822554095873913342459455583543413684288343258030596447698965009707891181667353930674634168592377475583307152251456375524072986777482745295062377348641520051093717750224646488466898301270687120303859419712911997274401446167140441097852417733280505369812601175670271124802043495800356641701269463527845754248611615793316825997821530595052607550671349498497540996171589191345864989162987174300615092922864086771629403596909853415319097570968345324057018196614094733593189506268001537612031717781915104301509044740963726157126157350851797052128743345431050942702767315483614207944872357313387724498002270507893926542445491498774965041145097956572640090786533815193948214656290228089532542339397357553191333587052237755373225540831663824754636546136431564890229204925370159545275032762729022441036824423391838668047670835567605789636512253492655918478992651407652396179724311528554092750099096660424974313559225977977744642882835581696884862063577842559042383782420303258594469947279704352143859468157351784301334154292625754716572399582824000055408219598374622204302329961131788879426623756039138114111274445946897226360013335282027027306951247458167486617649284805382504178656887963562352227920839465373213820359085082600940411359104814799524513236281783890487961031165295321441422440141254088246732496439599353644142530942812428716563616079863174611609425409780646726984470491911407962499349797494126066416664877662479841470948344454302178579511139479567196932348426580012787718923650545457307132436373292329551364524673831192288006874919996129548011556049995760175579939586795319157293801178103254861231735231402219169485603882777307214474997859536465121806203902939948932127660635685246496299955741018557330183075363688596158020630665777367341434529692836815269731207523935397485622813844800024688326434111865637209155803012532028234786285837130105453736542559460111479207031640534549490190030252060688507962294159477997690664928938469422311554113012176657344304914109709308815505923910651338008273012496841661736967612583060139636358002756905492451598395873241922656917896082820676298500386080937920843464165560674597742688208164898183421198825179683685272703038670384686807984111109685609368583475573658022861970666215636959226267030453258895626276987926889666761110852888363857743013866786935471829864479544218183796446928085558265171170938364372660740756000475698558000962319665231719140333531681907958648315869079179922495331718007187694127756155285834503301495136910345956157206373176395814887297713326168882346471607464859800865539660296057285084874905240036853196743447727298125672498572703951144113293313173108016290900646934302151751166947501520187193535885257783300096059286453935063384890132006117610525497412197738534858602399380693346845409907093877841446042351188250173690007828534055662485161931553473145581907426184200435507444848029953402566767719116264363233787391431404749204342838164526031539850522305012966180744543710052585967434474395271061499390017380362323400584054143910555007769109636476840457878080474744814696243663643393051195033456659702114175708600747266060717385422278444681417523704249225337965558922515090094666387404231502721094904477325135069026865021530958697586025456867600566938460331105347460672388704490437008771118803648338310232477352503190883205430063286635427058881832710013876755011083502670673694839094686401346658543596080289905780577100059257191365607023575365075727761559128602442054701745403807055084699231874931228814063456348285829706537187571350739893735532588146218557799553972131354163923599614115327744273359840773945943157995180100672493147114970687238782357738615354882022016240516466862471281334902421144746969890731671501197315060950548719218704494615074569258502303863870533221515976372386972911660085846087980721827418581752489506695945460508171085137886236356221297574159893818558066086057338097511512982764278610440833702607278762707474911558548253560520426811716283464275541932474716170361237978416694559130447698783956924753640339202853940804697247674316430950656595204098722396042984473261230067498357293724573131565245478225064353639474622007932624599417642913541272322687221517087911260747473388372688163110322317539778171468483422716492365623726304951691701100915779739591222314197851323987517445616732931094452261006493730818872535213236333392078321228704859086444509048252415936357761027448105477237202165687383059679317035466346933485180860239090017274504496985571719021468097309876206332986852336506012643006232008735627234799934326673689862706074319892472234977264794084435204124438907193423514716924449862709795621510326819239016581237737279108380709108396858517501694793901076935359919272290520463994049812252737052502818274712185344996253412049805542384421772337246445768210765201879615346335494218076043978709438446991100370374068869462304716312456409710659304234146529978082534550990613357831523756536009471508795091735104133581468114311320212840940885572005957153163823220109876968499376548242093697946906296275013402306936506668861854857892703677639081458006756485741525608102235207029516496533705298189366423045609727030051339499856991768806811830004346580104984170324782144462756115082450161243586916725989092698553087514200317862711552359555481530760815064943637992563748549975429864788721811624319354554180294285760224955394526279355389407965780590605956531845099171316730551813885391800835017097964064154545011023689788987094340204177937271224311636595475550964643048658575013307474849843061808636234511196704139369934118060924736026806989018677619259770157097515330871054630832222253441340296972194288380772426862543698142269299426354063154242276736518953039437071819412597553992396120411365995665757196082248260275097423424780390163561319364880458984064116800903450741087314973340895770232947332657460156903826742268081179027154074509203360685379592242338735523068339904737734260683990401590619124569542682417278847908603305165884423134144113376015748093163970178016605938150904784528484004509353952263519494860120989948259320848774338965533053699568405165502585848896205773606664273436742815229813007030669225236620896594634398185676200212763352624054833430039723121007394099664471506604889074767840616779633186926406587091084157208185493189044640124116981346628167253321414470737718121827306462485812325289213495467857849634461640579286396084565043539781436529579934049999414533678689808539111113461989458234343873148789435472955335008051654822416046459597265770741436658977633654843433522225828355879765539855546969024516881785854885057732041229539439385404524206763292093185850702761385266372333669718661539585767318084407249425318108986804553246809785331232581796519708373478104936139882691475730561260440244604788533130291361503302008971333308361803537605625332963172105410569176547575903624876758913439466724889069458208883841970722113220561517749400772581368192842291103829501274891365128295393520086478575365320637669450572808804350545882398005385244405085892195153637332160011350713271153972513836555571376816249561664764630264133655963033974654700135365275151870825340783926657168146118630054158451359289182749659842020451497869684096306807910981833867175362120522687086842752392950426876628996738792275146234389718781825789336075909139538707994753609097721191835600043604077854121188129413813037637062987539529722028229842534571874325707144057482919084958068395883664754199338830125166635546409976076904520677612866036411840932277315948447745528052522901992337085376890363126161474875879244204108835194478815373499895197820143406393166720742419587189064016402843739552970924685864272766820518504043373737190017276502488362126939246868111750643351797581447191948339658491754072065151224122335811709473971978196772625739228782756662725824715031799078157739300361211338637984554518884238700214332952917656931436310298254320740939490197095570158946490198311537957486738408907287181947634340183290005966773068875129181282181521216457574276234606725043125308187537306306213780137831491732970224773425961913344963159652525050180937683191838245723336601653131832800087433996826662734126363279058250059881781107670410220133707368409226865158612006378700109528339668956854241148765881320232629798297050293486759511629711203248344111325040004955044435241915167202509299817823987834326555583995185177407986508086661378752764779082744661574671596763766163964790334236634635781302878713682382948977404836693066708325554246577505521990749057450526367453117849881767061800840448517417932555804044279486793257767331196217131988360114089472580510312914002330276409580909125520072504098854288926478514067823577940729349289994880291706050550135506640708992767250176553533178074566097457610424864372647218310225493667526737347466292034712829241144635914508213706240063367828616064245040555385802576642217669349878135690280934281113567451792604232072729809196889443742854377606058969415294449445860997673163689461870156345261805390692944652884544141623192196794430018991479782870608206559920709504976572893819679253018028584282863517011464979134198976367867678806189018607635228800689727244216953108425529893327188969709180026205840537568606524824476463299196730477235951136895122283425517386857650339484053905076997609915105884278101658710372484525584039657487458009391888046160925805921864439783357342617824089594627412694685622452208237869016939634893710636213859258608258328179195496392828834922992754293125135452687284760136068753622664837686332993376224550571271625115318754140093584143586387479037717248207669743559709567754257109257926284600528742726080953163481912849257426270962962211599915192449716902841598403442758144268190780865521898611162677435399538025218233190929295959979229648279195372771349325814665124973135002398584375372297625183182899396998337115112914958100004216371069592901172086522048607166228436953021023806470308926592948677514343478137299686697945360517396838782966956811577374720564099272784609531652709527726452632630414294378608782298013296051283241509157000260096650033507561880361393169884361088468503348753122315923855469742785814709460538493723134849741512014614552459707128709456212062291291923906241494988317052566640043842858297244211278214495419186267512985195494181865314813010505080220641054994757065615261049669682071618365495874760664468533438999663447795322852724338409357958416868569990296474368796910296919958251881386244649372404839314667467322533542421895182244720711322548930855361158411288843151726313181921525073804238023633308406248474618823479434972371958986090806169978718719647884633563652222224937840373529838699678661436276874423478063400578692494707683860521581307860786960499970278551263190959330438269235411791333245113540190469957417788597071434834632695339384565047384742084741435312887575350058171428394060930992858763009475578024336674156182645427864274724488868675529721386126153024299024679627053618351857164172576955713926185041222711965714713036333940646203157647110189434364260124606803549902363050748598939846252366587973211112121165690529077842703673568105784584283717296162578945493295606326664821746756623160489243846136179608598136247147036622124207620984682324119972113572594168535582794343740188479499999931686374878473630535363381767063768585691080397420650186092629747343734711790794484561303595676999395218863556440167061532378662829921328752335279686068490925502325355074363242311587816022862164772023427408291063821194193802702808914169852706661660837511036196796909924109158322014723224935338929732897381825338026776324662396299162931166479639075614346978337327276256365617674954811060656300261214446745772573649698931002144304142230506429739384925638754690240454098345337960191666211103440712540595715269130613177005765733870863027062782191891059208482345040892941544153132360406863231665645585786517200592491167398452094493206513182193548847569394142157735489335556855425545680724644599217304777596079258266625804411643721656274088228188450480394436206173954616709612644457875331852224096005603616523926185031762374521305580485846202366445783268302991397844663539362785563686306244331889332338582233998314418233380767741260782435176754847290639580657383173863508950226312859823062181836668495370731234208242920333361423841832348647340856898602274728324655377493279758174656090501675681441619727125505658085625150803043402584060540181842467163629694572011760133202055578789910720020445158442150516328137672147038108980041919058083607875550258069176384660784446003146508172810072960273540688430780990215547880642671724578740202434534770016197684521535258086339532224462155575554389860358847053241875873321332870705996770135965847615777045138465715432290183489973031273585174173846881211295099179760469557234299925762589118942971056128749990595424324532005797501885887904357107883068055760564050961116185653555144052884581294066462861875792368248407094803489141864618513653660786914398830054768427088445891305668592657965975368117211040140846123359044548189736960263818208257731659896920630370109867816439549392942745542045927787739735574031892723153444397049217729849572812854133207039626806786396640409227822611679933690478917675303003734883048761936849129951959383427919769112832059254027823108871060541238729547998042977500544027088979894937868938992819250230828391372458094712158002188530066006371172385100739625112940705586225387287717041339418695701109199995270625946985084217039594415241809220695211409956485027151826985509205348545732609344723286968754188063510927230415154885771953808168892490157029813743068088860406885243617464443277348997284189864416771908457354437100912220336174220689813116567714954291369399449442828943624575422274142568798586679869890338888203069303919671761975945028482243839896203645850371528310768331138256783376040298632626339557235749950051423276264582981808729204594281283872317969028754635193474804711924845171172441121668172850620086398739671087835685396773285202110050447797463576304539285883929822619402926224362962779042663982096875668846186499923557520487212281333988191236110346407800270509427020281718477737064915595276350578158247925204504443630488616213456427591034192266797853699380759498658527539422247841415282442061089897907164506620221619691134068457055549283523369767618255556347125234727702507652941922136568699292347527432590480815420743507105979816421855040977949819848570315431559087049972919229579133866594103882159741184576139457916206014914923849540880320661910199880916224237778877274135444828517881871339494164549531945960785056988218352326487901415143793878309406877892869946718645113647285587754373167912190234523217727978033225061317016903207239748757810275216699473719393437786938295386544513575934034705092208227466909986571238433570533276353577315465514460629587236529306809335792334204224701963026604514582886910323077340841811979457569733648263076952773261028407359064191278021708649007421692819626003680723232381739653061684590122439747254004795987919720076064368398546067540197583520770627052659953608461557279246177925983404188667191364880491800508279339203989734209710413110067427630951265121312885869094642034945640052607126539169843567273208199037263227492255157387942735273685222485160943859107219862222818052595009547703451608704592636303448733147259423624565935879320697487148165422793504575311233040198151873942211986990820546782243042555910482487697534550584118824936492961776234672847290550752428929056470303777091968297063327246470229022674056949167185981405751649535197466429494119219334986532414032022611673206793144865228368103859899253404043859194679684068653794585988848873157749652537024789749607382157486730505152214855588457483910357805965728476031591643053556776501379424667073079890380573110857555173341604005036788416798192933275785940697424290865275550495610857623389997900795137889874322805576871571754758639343598585118809977065826446423874191384797019220055104297853980460743202266942075640564564313579369551689689230751850908781914211634392652071970276729999908736569523743851706794034860290642498496627228722675077668520769322433183794746131182738005422306680478807961711851461916784780243295553762309465615944207029600307627976265035383767500844550671902398527853762908349129119896983347639076626554020218172940617506417274867221991427477125949672525084268132758017030842897221589445086367435627278710366707173784281923905611425241433503019124900608375109548037075498868248247004903368875770936996748305515461450825143471555940497896406766145492581002639981890322782500682135526686813888104806389339432872263154527337690926170062806282121346888433770237013077369758265220786234746578636731641122512635419448030823220225488156373743043623132139832322395551757628379176830501149023161113502090623324066309236442402424639482629758123798448458015212123451038268256906547502188982301474471694280226459726594432045012140500464831162699059697931151900538563909176766903202359897831820294095578519893081673858015162279023283957315880212108084460222706082301669997215412144140129550090031852280298586747749191499723291409044247567405896523847409463116985970452000613381543974952574209139189207756838489806077219335198520054523442173654324423702290717330968676734448131038257654851657130264958179749936424081041919807153484966382067861607485150050497496970278119366532303627269562674687754364179355679613949476507968464653967572208953871343154486681719281144439905172569171687268326867065768383399808574059620822675722612438078492664560951038383296186334692413531558627718039612734619947813494754496207664938304109726736614016517827913243339664835852151368116918279101918301393336624355550741731093167005621980138037077595245043770386054174311238033419025454236026995501441529064285933280855730351952171273961060342749143150112774307435855301295085530924830978154471795510862322830699071211336968487951853643700918566330171118610952520214111905306069361112088949714890919449779307461450766589618686385951924507821961208726334932066782825339125661984359355043779558828486262406383521579169399108846980884931944336536687205936020882570815378465059031865970307597741982485866397929703558563437863878292915006157035564999780830348247228390727764584687275314580909978845912333574842963379492012297739324309328713400095039023059113394019040252894705728207269326571509433919512184844345121472667424195771890028200384537524620839964870653551766446087813046816652927483562922044971585284724502292199249209818212171219078376174296193572452060733573453265991699537286594866661783351565016584651445260126216219696143828517837479928273284648600700724804306691047214146615359596051501507224132517284389819121526204147711956580277104528419951494983788926407906024309492084454372936517836943247372087895898741835870073917748906678843190607655999560272785519758390617246442104700703766017617788047553890445650866169411402418687939202848006113207608233635729040743675982638209712634256127831563098080805461851168248747635199340754194617327239560200578690803361387067001199609408710239432824919405439774293082042238690133568845134137582656439823701351484165711813612115614566995440987144748077901425527416347021394093551022009364044273381530480108240591150992491505600824175564926821388614070694339340371795865388086888986132440633689019823663457666456924450432996484794710935693319973603769688210625372857480249323575389437725755095688096150655517358942961788440997063693820612773390614938622948765786701042454855266877249489400957394978355463675230747796136873926133091859885613144017047010097317072164423196630109438305753634047623205900641817633184498587627631098128333352289112353682853998507234499392174074216577103491034930457925938592417321635410806148270569477089710503954327706192795313276918037466214707408006715317440082852825393440976240440060797004534432937023484376781553478536392779221939546304016189050590201642937170188110354981948415349252836163511816426056812891981554225245352875829879849010287985557510120666644791407198664775355701449210682588969847287758638540904840887496296066508451044774628649002540471867583358542902711938968768335721116177023257728007149437755473668162007856170100066310120152554577436371247681955908505867931068263373577601987924644711686626032901893013890039832863606745883829684226019160289256957668824420651264420655339336119748770743739576364743099101930280490573546181699170726812108628846113692512557977901924316813269785207432811424634063623982908499158440356813887910820504566484175274515718504437565001452540560240321987142556725265250079275079644774507719362846232659574037785110969597245260720035386720214251930947548925066479012786353428947926939152482289989534154085864535117811105951875576482552567728341714547974775497049892922412096877236123839471222711414366751050725527818126192372543106316384338238300803893044821116443073346931695803623002396611767328402340792861703377421743610099376802338534160292552940304302409372899137234373465288096860580265195365471068444599014815477678966000099873661779699525774110223300547645267561898412717046931910017272519564646967266635357797326486638362529448477625354409232993720574815005398923612503755143816957633004125098536379647803953939899451331990052330198481366490623048497569123424458062563839201859625782364132671429757210884519813585574329266532020807050987502577658029041488054876721940190095974278891577002856503240122207211641711042793489836085619956776021573572721446038736880807623566497731705110338272491012785342799842297344010527479851500471951682867234997789303961721664193786019800473662990648112677140099834133266214040015771116696755636291257337449744924750941045006495818625635631732787803134885994315805919087904995912452543697974112890212006595066091108838625412291817285924325657780151376655340052257308745688905821589867424108688331388074708323817705800765369797220302223643415668807755154783758653099383809315258019419480254680552522917562919184024152273524532262147874813500670163052612635513468376788229099059326784596021212174230931475661447096164126890371753032351686355722319058247724705523298518809596139300733099624437766171253383748439371442463242217914101228590785480955535811667972165470490972561087217896466625527324981523945783722110488924098408534041804711881948780578744562503795579611580993944516433559398953003280269492241383982838597724575070206002582512378652767634304972003313247663325313661988999929311821452390815080055924543216398466928208110935460642544091187175908288941851113116027872855795204686069944387347313713273600061919202410305484413878424599070632568506444149772142776144111411615071564023639945124868501148015787929771913259796132866413401390691073542019872278248274156531143916302041156683512929936361241201959400266171013899134855749194084776206452422231612437323655392848296785285157049150170349311970895367190489815285131511076612295793268287478751017120808895948746145945497554528225282075748564746109910882288808687875020379128397641882478465070301283833269165900487344160523999614886072121314811321246340940657418816571078331664000968095249411411677135945315207693580838510973863351877844418467101745185654261318833027159303906882935034617083155430382139958709263526425105375496769385447398860196029778362259570196889566071412691408864941745075390106099856206281143610129954647476496222834385141870548433510642062365971324865413964934441264980113960631169288541581572452942460566716084335166343111646261804555343703470068124333634527899625658178930841879268187898538845391482837027119027590253496927367282122577775762692373258417619101547703548098190965887026039460657332293459730260291426198131241408360370576984957293831714913082793148490936105465756470568054844939284799936651377636965398846166184722462565661535483295352050504399758375996467207149952177917719766436846939969478060571003191246433260145950920273912933207888542039412305496385709640577877589787012885420681888707689356613331403292825755135726090308053070245144012099243670121079168291013002508071942409547119233569616955679003468986890992080498181071813790035397011220600930697049488978942529406758211071831078397581211832490075977469337192884237398820986501500785088382461994108837063933270322617270904842940523940756805552590270657652185176660193669273525361439227266784014756017175267900627709528111891141445588967164501552126769005965598247534966998742001720399882519255964584865362909859377011874092819339176512441774968837459406577321879728265373889402352127038372205510979724493333655954315823554118368973217491243266301917139088191181128770726551972437109515524910635525157411638709902228407931877576574523989638498607550666837851982271268682090216122717292000730823167115649790470429887074434803375524160255125392455288439382166379554689612012148071902173002282491308583660025800786906495226669048470303270330431298587805395951350626186834062569588561020960316670642149204940820997129131190031883615019466410123462540164347504568488032914892701199910284366225411268488641484472616166156623314570733141073252661878092517825734800126036089518222586758235624063781485613745318347467224590603564704814802048260649315902606119068397165509820448553912131771804162587364742566928755009259670524827184975793423070254589845761670251754272987957415994622976282032924092080221090056604120090007260694103534707918597412966459095457164064712983053347273657117927088834565816668205842521401339488103077957556167088549949912024087575615588463176901041439336690978474189156001009930146773343869648736797186186811966044943412483291207206499652475957580967033488741454599035475153143616675196967975015775004536737803932091863300123002473439489982339717080186560726626336271265746502696372414864361226158436397677439715848778844860386722680629466117643096013795448339088397192142749430268740615458985541499923925952929051865675338290371538645362699832220850167574099956496292072108383208177049531352596567817571991285544644215919064463765603837327786539545500896512740852345800353214527906622736628306766473231574620930944951641150098299355374512964538871503292203149904647073811985795481137655670029722667635679021427231704057562128010082565194656057771711209236518425791305447464069457620802959935828970659372170249860175617716348244648280352472672804813146305419270703468339948210585565616432587535366801432132614958393093139987732941286537415736733546752675292811574454549661447625441254072214243986316875115116211335999623093657979838829014451098179884021128156653656652965082857095071838313499008890033950200131315255837586925949526352266469378891795456251592221679052103371797462926544837363535935301305971508225794334693192063079790860243571352251941104357183953395733986871652360548711232261833595848160911664292332915063266761230440608081129013966085843444033784225527948601211584748119567927960180956587823151133790577806567162717115938349077545695772667234053309847332946158455920983255597731088899274487168899372774557935242435743328054020562938902030124393265147560916567302459901864977754775488712458751009758897826027307963301840011294332177637531260327453908409342197921074818743353116840458515264970355272890726095998692712386533197961091697032622051654111529173139593985600487338333644958403670284535646540764085049897574118497700651072277494810305428578431109390441540740721792767006823784251918506335181338392062558965778722210858039854519995499109725713426379210520675841775952421753549262758882067734880258029615807794826521143666786489491871518990237171388564840841029544635581092631153663254531117142231332796293048382361217448671141150799219555909474140176262696860689726080118491382897902576075170917030243134326460261269916805409670508881315837817699047882904630910073748431949309099788998093103647800309283428483977605555941434980930086926466272734279376634015190503414883626077817227153313511901592124609363073464792958175610688233311412226603874568785706132891952397359954720925478865916763166268037475218915089238907668292944019345389725097361872924514685812599451793341998713144885436737119818072667658964703669575456787050072360842706708291378007626294781679863833295706317617342369324180868023410209275145855159545781137939058403751603073269157684801457591374432435169568579613393596544635368624854819650764862132696837673303310189008453290902049059311508687809781101309345372828212214368958410631719788586464515240584421590795000582415358960019573105266213688854059344159872646273017069498343613972360278723880815703236390829686013988116117557338364294298758828972790871255504071920944655537959504346912865661186403214268647655610536455867709223042686968874890617485855788200729379328167530012732896932071188544153829157092013473283790033535286970963223742521874566251436900155793146523861831720863753699584885150917373922798697344738630656971499069857427125097734453115221788187063029888525956057685316741914322998821065089845751203130358911219099590986535065539371297419546083784869749823333793323718212689390284903529903836897744386364367424326698168784646334792144459751362973308376224750263846029719413484569771245790463094355464158777923411381161921926189817735726373959105473655788038971408240743546589931368859903040791058672026590461456638467585014717218304475864891253974607494065254317530203824606488985131818828733382778485579763124920102282822835889627575738614235133956919266709578374418546601635022593827640083409309171553443446877794973217268273307915191763672636643391356695689845305606934416162855187675459609811854825930261719599673352336599429737771519022978346274656211050187877042777941495577509435005866850460425296537090393305757108576503323889223135316407349913717581541467128241597586342596004642056967700162184348911595743127899102198931259263008909746116181775203555992809317084119775292246734870836345281629328832910881619520794306965902222655124504616077642903419382359968573711233165154439048402632269147963566405783402376411187962405358040803364518036725779182045993356638545058940521234417598290963874853626072989239573730498775621295802317572685662411888084846407733019871736757966061556185707944703018337075762160424074264734168765789767771295082127143285493712319745577675920421757457579542869100456408542933799280187435544460467172868999270969128954448335882735703182390867272164976744644523209976677215426254390615294780040211126643285933007454356450695112583407792761494141448470889906226399596137589501263572613945082570731998761368194946533448348199688257586728606055778407821133935732416156911781493473863925169526624596952146078508178854252161118418148646077934785772350438141124195794137695341920276052814257748350743793605098757477461991066672592727578625494935382126908130538842930132781859395191465288891135574624920287307380650719536038225172648789390684288343815086245036215510012433221447952120568004751579900946130400237751340906261496700940059304262665896713494928675039841142370960419079915910826870718677866929140830745930716678566432112407103436024027372259450273754272876362733403261827445187727452733737232126022759938195848828514633514762960746279549085330741832298599032602475389659029691177537437264073984872251206295587197004892337034917413156165789637131989370076240388727431379370946443389342886029729375787238854951391366167742276759453610873054453534984937182924603061377561712647121343573332593745403417556821703855670215959580571977321317682739423683179407401718516644436944669580810389003410183287980997550714362652060762753281983280819584346806404854360887004682881770031148470148342046153460370313287855592428550538146271147124593245591239161827255899422966283246328113066780055489007810888238671040168234162329290337111242729160377749183788340175833840409153558735294021719713966496269398301273653736051055360302998755813078931948105106698206495131296446881468291370985721150405400948023001615912470607072861627498910552474445867521434885375610135305074372353170775152930649397093099426103481118981673832771417484202970508401887926335045449195114593271650330908715237799006498358355607128390619765224816583678977623955419951473463412714276895749045772133520076515823007592793743627748627675370462405584286422824969453702046396218331654991090190094754908259610368316159777396054216487130205936372738277955620787633102770097849688218356869032636042212033496269533163130866803141632153552597978842947146236769487873143730429678341685411264745268239735950549650259561364905958575008105672702811022914382990040574931136498772310649967158354607588642124523127273165317869808708762811072155623443979790388244022647383581943219045852882347479107701454685225440259049188518033634248860386817453473694194700452396868954401885859932966621883564252366861353570382773662243007282913690745685954842122814095579359228767406435144390707993357492691357404070035927107417897730169677501815845297282970551502267763791451891730050658432112167348375855375613703525931148116150727640341542114485572720933391642016605999713585594893908728047137695650799797061681719726475258207508070362777964120175589460632990910452047531978592607921945121071861480584011783493186250178238582344093010921507297460932354672349813481882251516276126524049977005699810488810255315416143096384636655510225634834981696465790462286018710475582388098111948970025876387941556033674343643240489528487327277342790361544339848533647673964108732482052755897222252126605420721847324538154701117298724364107941861782167108585819555665755603033499481641249686616658449958704404138012893512544570271980192428271519614115494591213174946079734571637894106738086145613088138500145906525798680837051260624204992945042415575360462295148400141082590355973657913228845477191576885475999412927609120373745478686862597617005529254986906097797272248115214037763884007348191758950242986470680000261787682116629313123179329960353567887812568897226024527673394584540906606597236504270787742086793102442032690473500617954019634999381746624934911206110240471992873122423740127914660635673307035188033811882260901733947445555562575840061324766112858540275251363000227528116960792568929111421836028404983418411819358505015453897761799448313884742411672750377204875078812229453955367011000305403902835016343710030772523946642289276952605180113034404611627623742733734825854340211553969565419838464978680533074610696167731743413796088419788785566845766231564854550021385239448252222825697248527397595902774592952187239390511944741732353934312169979066400265717053212725811672596076734728934193234913015209927717771223176022129134813570421735325413499914650062445294849520775802986384977931372960210288580448404866761925441001448248259309144522671189331870498685201066560709707182634547885732287695062403326859212710764786447326961851887184275914878348657060027142405100444319561453775703733344869822810506999343034981243562272696193231376212292006708585010469660696875981863958233260494944329866211779275039048647396177293652791662560824037849329842734527002156436724591481397068066980689703425779480811953586297753857585127271803393396255564519052440600288001756215282473838906086675034068702005612815165789300249134803492488787503039370777502031760981353811739092877081807726071614752096505834480735780328776025423340802525459240695675034121738516549216902035575528921951218871704937713621889806359810893024951436857205050191610225652790783774537861977645578292028916540266204205377316497480073628435698191862270938851099328538172096500108724630512826477956482020884475454484542004564009949574973511373901397354825520101744860584354133653511045333979126467938086127810805572741100864490986858133500374235928971569390109647446274071186227687714526125697816580980447328935725036718065702171106782794619507497510168682790507278435203692548153327646651825954959225885049038267506376698513979906739619576107572533342843581548960602798533392653552509490299063349369635879450440752839493030754713238325691945246188582253460534725271367261173323110071053434945452505153557949547065939854081468509899883702706244849907392599082148283146434664981217745958927691222671514200968363820825936493526774868226371482384204340989509085861331287818384085866683268830290138911160972640828719035810653799507798148770551401561403273738481715556100374680315888938091817433544920601464889669502299809124261761264088124600101929451242080295563791900162932371583611001833684561121729887231742488661726704672249306471125343260028325458125975819714410180790699595865444359786987034005607922639872893606086289864867218055030105410550148686653989693193986518543834867842117556211770087583902563856948625174810570676213249794704701564869554305795725863566714589280513700438410418446583054590127201171876083404690737429626365023630411493554485988691254744258708217109981469239852779172840780806655712898331574810586977289513973657799014273229376719877750829572964151576912044413321025939614029320866466299863697402738456113724549871807014164224962884827753731737397542025122437648479520122601297307185131141633466913801533160422718980111472295792834075408829616018986453636814199571762041980392997140434970985683714426369376358891396825624467878397665836351025117294386316479483921369319203157272798561104500013239933479084755623371321089399064326318691964764677151669163557441675227729765323734304586767354634722918679791170583472740288359692652085657889189370969599505154224942299145181822640207320792660188409754823996623237675435051354319314154432639286468599399435386949844520874160787623020750766803708174312582115106841495840372767358394705160555377115212421712074482269920786325285863365165556192044860067248973725292504481522682874952440300385832573042919346298989668128290422896515564350848752929177129260507161052890324413752844208451194333753429562696636949209239900627229992120137649472500475998316681700857963377034088918116190854010373563855081474418089128332837863841692116016757462761707801379337300287712009558317333381948315184145147017907439976832862430151666238717024082316273864820749088088188970298353360317944699289663360749170848579137275231864447757985732988011316501110171865944696471341334346455298154649942656420300503254425003497624826772171754667034881615857040520460461475404492517394209916521291392073430777130598148620855941737041067266383022810894389159668897633976791591781110341752724431853903072806807337155886432226548303967562502510172430804080954129627019242311963694016770378009306218390523441409913020298193334823194616730755825270994390660970303841073607813477389321650253175042481152035492149443479989058808321419708125123910445002369042504340135786125040505700123293888901105414213339700416114805139891390965892585215495749278599976584301117365478743862261708032054193161318486567744013554570955064615263571424789955380102027711666225582663722658299430306884052879049156020773220348278387235602903438654906215243085105526945054528277397081357223294935728390649434450226721539694695668780143248398844538626785752567191541329339793580577107740654216012586297147107817917678161577215409918414869676881577484104569114101828594654858310332701715113331347608485201082637686053039506388351488639482678454531137901459771148972682331541167673426125480599178883820590732157312122853335333952422153870246374269272845266288195283797911564135019728280787416600675285502924457161093689130797622587790023614828173726311595058392908324164333946995068238938611606374024140380321104545191393494590026143058343604262509618980906173576354646873813196356887668370581647462446190079538845159598747058711118960309229612039765642906371839414999872904310211672858555470964841145671449647249262022821952935544531532976912941098418203750389245671452579587999322161458591455567017247958541125272304345775540772945367874214850618090612634232060034394175095976977563898679528860905344558390381030740564949562074495290681371535671855141154874938507447431493084956724274784958737986206507134754409560616353403477189804853556185688750977648024924059058254552295453347026426240088837404122590763308758518517239354498989749701884117198283220511918094977409088758648704185331469847853595696869406195186688248457514819365424188307915029430998671558769444345252581703705079891529089494401348427180569298918124911798494656475125879870913584946247346813382339224397256997859039436926182588188507844134933390167046375760261171990218437890188867097742621028581929623692207015116530083665615199441909879948098343609704644696932331944892868558959478854304140038986927976345317705394540415962933730192723336106015340343174451972564449798691976255749644383343163213925032104030338120738213452034953236032356989595718161845197704835807207748565533935166292479592337584500080128314620996276879187109037265154965601726275955925664585894691359288847455527886810375868527985265043135849763985859356279326519022591376476323310416129199770681875965545210565381116889448437324436779410431419184527941174105197292262820695109517062610660823133289763721096730299832236534131247615222706664639915569251945737217967557134622045413721292308708142288220885845522045244397896054377252428180348192417479155361783229231301803016285184200445333422550531086638497786397896748688489562135686614670173715823822719153205714643000659570267853966278463424688112311300695251085888551332673474125941610858740953694287051897425597687426167972474075359315686837283167186248546985570976391566244939731785065143215893853680629816841254722202417536127431759383082185463418652571206321683126689806517090287438114141971836339896492468990990067840053338531210419053736885729817136939912446698076893123140345144311867328406733861506622242992096593869006425574309150650655836317115069838631607644968377831150766263007087898942018191993875224296230665072362597331252962910968725127712676361828374606083053491571572121280041142347888044551403296849057119594580586014438299735999047898946886298683985092390629455970124096648219079260486347980800963426764572877223168822706339927998626319661239774730812747351451120701450037589373821700344198158542442338925885902535738924748910249394088617790590689898474770646051583052564415001784199495786936117260757733860162008166548665514100243535886835079198382441051486076405105622194123056753011705642458138331807167512823219150585959356575084080043207553053799680395800690236468796985664304731254001983828015802419116761696802037094972965151328671528869723993974934309224468468254813226603874472808321145702247808273094476617244640996086670436561822365015690158114281806681093579706481569374036757797910671139000363756704083401744642553756728428717876203975901849266874118013134895480933787073129726042482212431498669196320676831976329580815003206249446031515976684526584793984100623452978968258675074683545999587771474066263779458589521842188011393814912099351948185594055574970095483780059017146574902463525500966902527405025078774759500513816963144667221394989350967271721736172037268400503299994954748741640453422486370337230024551066781959858084637038389032406779164997201538737230489498596098315280073547312916011466224549233665380096241183309646594553640520786077792629306392063097369887243803963273741783590509726287958061225762461429949716539588883932141344207348638988183321425732459870831614308330451743607492308864498755091059789566275330449903682527457606271484435337511716173691847992592542239907338141119204260932302101017654271295980597701743330028009831937459915326772684023350984814408098713457014343688837274792091400445229704065950246103065613276296839013153221379870008233918676446207522842435604120112303671649914035955602597577826687258312300981499334115936686245384177885264094864719369903595127390110354700749390779970454190014031936278169767787469426428049395321426346324443949233027384668841912373142879310001650839371363514455720096390456714805747744450319445143690001281331196556916821861045115554869223784821663701034939249310758742661687173725025299627398689394288374260069343487259998907200802046716741461551430715853913379004296235286253383714275087669235410603642408134375849124928711815054868474106868262943196633819719674858166892865902412094425082721532983731427089240495673597536791314451026163356286094440115218965879041999936650046733384090444402077248898394823192260023135346598417121791701598190741609722243293555586421526709171807224531505338606730716267606935603367941300689955594256776958819999606106822364898084391623071560409656937736918608401989374610989289914355155420623251984878521848241552769263605466342089648595278183160965727888505836704766711883063174529259061001620078310926051421153388580573849681143088002222176313533211485363920732275587010512972919045746212958590880092709298971638693725863496376074744617989095564999344135086638970614311523894168528171811492837269476658921464801547560594238515679313615760823122064322529887742583655973861068838175056122865105915258059945583045191086388559504109337016154989111258712427995350150337264106713079856503508889149621685616966636261128523368777758556299582758630562997089070708859357171784397178979737452514086002566659675733976374280301016430392072264290007383275076476663233726842916817135730161467566930286471524556336784596606307823179981936873526074229089958566635349033087688635013915960663439981980027427401598754106799762664482742664634861210873469644128829148529996069884625066748573442139269643221529665767754764561949924687950160208134424991271132831643896796403573085831143715193993290018108768440573344372143585039805171225039952111877039853904299304872732064231357372131854072599631275251862876635021837946329282734485897950161052074628069070041270597669376889633374022840165929672688853910063023538207157180033469496189434945588625149667492768451536148436343090513559984416466504809267362472445351372083181361451013507907298438991682487476871395475985271068219437877947913842509097733971612217537147300253032334475057495839920583545597430458585910810889301379729480772864155034347913646286805567380712136194737538960552258446507861770497950825553355302451764345018570100471533200670199007316239444367082386683319939477094358205508684403808688762930112115335171070286643569403517882211882645462085743567490697600347431960739938590535102853990335767915119979739516198019996461732906274690787721377704949946226871798248641778042071167254714723317019857370687214081437724671657729786877237984414109550169749322299928784895058560785839426941980364812884457193781328816615581341118760723010160251142330071799468087358326721991832176003763775534061394530480067576726603742538606296372898311893110171758751386007421651021699289882920712483361329757384852981914498866333458225118902922296215180020252798430597195171046029467812286224039354276588057709297318796762075109363249928242873773361889894673536930893879505085416854698269536203877291818342861647994147353097195045854861129800923596912108446449278583411853807512181318492401058652217715492740539278155014884649543554705431116320260698712665774628881320647884111988025005364553662555769693161535336017881229005889410284018181470170917286836592816910157452443525410710937078720686313248583956857983382026050098437145004388128605098076641007664855720068802926652061392984721338429450209708193497634977842617292269369739538507161901893339451366452830279792026330413797388586513837076113777224156519786502985419590350226622608974011755414872970603626766911332939262878813376900523423430464378095567521529034916511174531829215160162944165535749911700749591467143022998645433194632082910860270437256449274866954229367823202161800847385876121010327383684015626009582271462489994639829187125815197226216836250199711419347400247334741946855429118893797710611272744925747863153265274930289353971030298657448496479463688576538193692545721738740409896953347049981266767953449193385233899741807147373979951870561845561527043058214232289974548944394035347731793872232883756602610643126275307972987470881624117062662850180391556831471092911601168371764885710886767481825063884677634005365153395012392731599254096883906048880273720087551080781985701268399601964734827382109107885381987695756929076396748277724188825660621240156635111597717727624211788041137572120970181462695231247053928960152010773427128538347044993638370357151224796518873240050374097910991942763371010971271199356143309398648298168418433864564955071128407432212532031142935387473117435760734067534737583387628060374993179580274438926130653534048215010633073233718219676463066494991542473805811727664069007557308763885336872169401622114897954963837658604727239526256857288376680646011515338801684354140745836521991820863277974712533118519241026695144579312719910912889476947588084001630688577272007060004207460385565902115874884067198702209621065300030212860925634315998292677741744562143080473397418047546490976990943590747284918540751420823331294486674550239797963184079002683195561980926316349309823168489522618287147377147495151993189579302940886254902625112198875745998971216807758970428430227914108822043545330187989121303261307112163513387555943669540212920511282580941649400559714431294217941804560238960890275124314351101801461798298540735667274308947000548873198451497738238608525428747387619606878616870280913918879562845206232705693874220859150783015468193818659972786294410273014835631273625448339957430857833471645641055539830449883465792890637303332790933048276115493290969815989175708008295482455749049800485540618357026501537140480583221171285853060119930529972170801324235415285168879820540485487865834659645991237961662602772946023078999419392027229905992329521936259658864532070605443908496977350398043887576282402375143280756816089071445019021810629567076993223775932734784515631802376289514117800391186135303593521907125848222466729115754559724458368437911716832804090025339060492203316528472809260303968488904766590792570624952698603805756848457359202240430438953225398183215298362970339625564362156813962596641370509019565397044583740755553399380805023257139024176222614110821290896510924776310631338308516848605899822064423244532436232158266937360721588940127582940915951745907488661282528813709356126656988819915679372112007444661143540769817202690239312573534696086927290802637873472171784144024259070939055593140987650513794681689676214886463660992243766977490138049477591581192402644066275285948320442922217560172503017380168298369481059406553632959874272951580442902610786241272442997075012622310004474327875823191807227930258366848152513670718302623711561092528402571070796027070007329015741189843131120822574958540398662592474344955497213395183752665630908978736727208327485254452972244350850359856979696206031844222957332836026070995624130736840250630710100185815611149563232349897301058877015536777843061056638391438802209491758662906396020123282585265154119259629374974976099359791529144845878427803111319010502666191939077371209330684704954493843229624120248732620789747037655229706987185207390988524672309467349370758557948144395142567692651727624043991516264100710543244425426577720520008674502451596388144096596348534112384331736833255133777260411523234379309029680894156939826961436183390296901943285654519593608118855381155728439499296444929717438936048973400484655632502571362406186151857525095059890119648342096341126847041865329329013928257350923914780114994022391720005607182961585387000160719793276908328569404359432285067585213266829643638422460105780687951141758311792255108447067119428561592665109650496988705735784339694180186190983967238937272415665864440236344772439011583325254836259863605815470137834654444645158357173872693897973909294548863914587494463397670834605144931234477119148621457885990504357637932839430521702346828964670086747544614696431740075675900541188362937969303000293789749046043132494853837937158958314674347980174487169646433802650011636155050671167206884107761880456917300879009299360180603778260115802644521984759443451891237899828439599795419816207863144264825672721735754888569079610683874255082564477496548280873973616348043921470090135919122550648982680561588189465349085475934503532598330774170229404449829900504050200505928107624473287876692553282055036829624169320632353531469652606901291947510127613786354033904982992637162698981271403131820916005950775382070180150230895084604689395962663219307911938128931319360144675187512163704519347277311961566931226218814812858342199278205481885137233869423573793343085269624625989866943118057460327233702398071834012416427659441067672610029488372385966365676806627170223872636375919123341834197936166541750156374642186055691535236771881277625319754879445941430577640645295017075033569408613929269542719259178877773495030167620561549862231560628472768349283030067773166696444469721428338836303703518742197509191196979874508351932680082528627829502454465010222325228771236289471269729502474036747066868384325308327973827910923233512158930469382427747269776237029100742562551481671493488335773785764162598647098215552395067404965241854618984467831629096955252814154167307960996748569986574716650573104544301302609375419158288420018760459533557114453562434500638956241336002081294962335821246285909455551178971707653708181129186476080088518273109709640954689995119210065951235109705606008984555076722601793180049316846270713060208224503628288627630212867138157440014471893447655322949896448310339900220306388643025995128194025613677410554792140749503755416803517549184651439406341247608284003797226874346684035917020843831973644823491411368180744604154450408408654078834173813908618675744903796421248198093635116844503294675120219904733854060644135749890053955799897756331390887089299348822808277304314450979678657277432792952077843145348480448878414347268045153452736268796079518829623293959577049837593839371935055385020569087117732251616088000793494540019181123569036741831542042836415117984036118592847240528837358707036697882799829566044968230817366801723226666660929529207199820765993860173060486583565859672229761268237907505541057916782041320982134365960259761101151303450100726756438639780082880202029264654400217517890685979773355855938087388262258555731425079605845136144148458805851365195239190606135669327386704140718634846669160326563848416700146673678907158315924223367144851884138967737238506513961615501578147111834440666716141339033408377882098068226336289719641165190914144286156398335114344422555019959827186798209417844044318950622601993788337168103130976331590769346809325279217956231190039047992556400396330156167686307215480602322930533746969319113061247370707071876293663609137212404077906361783402908763027867927871539716785898887300401997232993081233318937462180745080881435441217126534310813703304946087820832443550096586628052348279679629412059152237073063624809801508729043453754268040087985896457465031306186449030871290701957465978207856518141968957002118350309803955554731695316135046790824052180183171585497443514486160586685753034456491229417596753554288302083731261523106736208966912302747103557766758243822460927979429204596860802963583519766041638320150534014807469818107699952124521675626034776446896240164559618467956873869529509886453487286185526909670841795167839711390031579708866259523975912613450249650075379897580238104639613383889425430383199859450674088559012284685259102955620471274616856272424285426377831547133748141053404428156988935221141759636877857222728448324944423523839312516436260013960737768789875699587229173475289525963393882798106225367453089421047626503414411277073609930062034726702980080092524608601175537918434780066529142084170762366011462652757635932379209499965260942962701519624106178951105144177873721060376973348097954719987799186761347353990368468978294668422776874830299243518196765248084826438808855803689516330990063167649925892815472097483040394572293174077404205618941562649440606412144675946705529956499888033367865722725133872973126203708143291994745306822660572393047703543818733704418902499805095945235301969491332363541594986884024141671306645227571370128640437365332911980806141220811006718817245600060990874071367875604822108903435419185791726558780928066152363459193843167437641427918678647843338526589032447354843215984736136006487691889920707320629698837650873647466514663871862699416173944643504901926822416624505411900819372415925762387673078737181611994404416899405673949660418279124748167517001943155431684584348779942629668886600142289036090494350557843252685854818656483296659481532086769931645886360831401160139400089703842916674311115736447691804470974412702271549181162084642078760456490467896345448859543936117178883599788464648074715929042084986524775374767713340037686247662795057149378346788541693425870033307317758598438061620734269385989968788666962774202788462453358108584183466735941706654525144253644148506904909304316299905040732438317625663162553999863485317546039338252375822246643799206690435404160019483581106189408353382978364453420239693244675493573642318599178295514806370255754763483831325818087702904263141193687523774478821151384103569598233012640322207791709612369107060088599935590066472166736151575561902444157392690438845658847700027954976408923915765281982599074143897337660468260931040982987062039966418411794486677137572361672682285577695345160946463405238287344336504571779550044961819061587652675323287000055203235246112316533389236127780391511549698799415029819508743396756265339094231021144341786737748671935830769812634919764016095948894448516047371447399644520315539331901454551511004278673312556351956492320631407400170107955913429920201190019704536086754580745584356857135582759309764734063516309647779589723990373019018768387504969412348423271504745539812210453439017215067868591484900389772922982911252312525574931583167031962052418684261498901567726058884433801362715048486260312715064469418426977606365656439350743636811872930801042200891264565499092390722438119038395274714042823118734268122794973551532916322506155388845823452484450200374562663833117556577205563199431950375293389703625619524265312437395026341554722058077135796707882125565502955848360102246063462478170241197460074596769363559160214235679302573677947765838680279182695561941261899149464689020583568025352979253047707896027975690480569492593279012857145809674708516594561852369097640619520920419568061658862285705334502949405633220799379488374846476460845714878673748257184348773453690581955524369171259201052216253665467637051038060063002383835683691829545688130940379702389544868534672430026165573404479985349587617492620524353700252989879896380758897864871612206617321978491685525886506107773700438208110915150561000076156577146146902056606395822921050757567497931681159620746889857285112351077575715192656073362315429193077569381067516801310380614286679172748999637608276621375883913099317784137681410056824291342455606472686459245138967898431504745140266591027541921893358707319737832553499020981558067635319860527195931341361432141873333603405645422663385053499495238054415279514806486473553853880590104776318621131416232960012724182652694569073720455742793139646299080873982231224822358296113431068261629666809252561599938189989542420293812454041286908838173421866625649677222887139498497682389873527468104792621979587288808313549794247375868992773615051484319355812691569385157351619179945398003489674179097154115356467805840371683999959357551397879338918756214893288264917294402212676039643007187779423805990639996250231312821774896276436469587986207114577996663942801923867757036423190253279977800790097044222646751134676666454813279633851914780023339446624927348416178099456767608203444743601476820554748116463291731689572534342295242171485302994747115694253558032348044767372075248649626149576342413816886704556113905208889046860776257971090017191556096183238169181820107241293134599459876220441267280877177755864160299749799384828737443337287598081904618073273612648280794584818814831054128278242682710143464101467338961645031399407373571439565235151699267346680549304160248261867445117874580289513001624584217528454233662184146332310637201188665239484289363652955630210393604598251923726910645958511515140406113389126134617832159309178765344866343231558109074319700436492719367439492867630798858382888752335783350921096675821471586151143292132051502512351012940480668252722320094928680487258306462136824851512320590645508544512926028908521103031472979890679964309724878566676782820955783463524863950434075359810653014300406061856187109120177690870900468527359120824660898962847106109339290888655470294221625887882782558170120012596100460350592887011561723192800653019631083315665712777904802292063269506628526407531782190256277330504618963070451504126025795440988647541800039161137739924726423528431906981855567778921602939304428702230416822548330015842533691439798798332887356492969285576274725176043841508297759022318480652395949989005471877468232257510503907727313626854192125913549594354722920072651946683805418564932219868658096354909122427826641834181406750942933953309353632816398059210996686606999753499365420227422840332060820746474971019286756280200547170392236942604361020302656687311684927633292025983575568372563926223849128426205551030373020717191801111441302080880967693166488108054766260224650453505093537687324653233995934778335368438669154046985276245233897230334002385828631505757927430769083905519251823042085009060637796526818912560766808743456358334375485008299353256360837062427737928062559523451870548849653877954998778390327038105376824167484570608002299870845548553353403970523076238869317269728164552794476133681821664540000373875356191389695964008883293720110813680398385526418392259372162902000112264668603409719660865836800793102800392229259477779168878884003809899513413010101261032112714182843619374597649803799493024107980119285009433159540105193804847259431979406776118977706009129691381593015127786560053964613233195192607856005948341946185443917785402582427652566781149649385468706637365175836268813142847213549361381050860746873410126165055801717179741889452696384419167539437037999464526309332121713081570702408666687771967264795015966620900535788015218943683360807316944812196636429931809159716580079432700564121889845408842154032545942737552091861024252347734932397604188697117386731233585165180659717167237550262880029784032390569660282236077854022237245353997172915226443177622993472082108227603647092285697631146117516685801941153557255031269850877245667897595391510732890022440476811250403218271119626600100315120830348422127255690558669579943122185612147614475127413187365709389048575969583906162897573610183403037894182045352869989423097188063091834507239790775917685746432473932945241993146108870622788939445767517656582481503524061796376501379528608845592377703548338923570949876598349275630749062221671657387266930683044398335206241390090722193266932589296216415362891619930134178836400094160341829099537997285130933556596013577213458170429021349789078604846781241979171398486879619002747872657092525841772346321970452203261314715116350489342015079783471429458784299330042338151328487435101149854025986097675758247188817409349045196192264877298628954322923712913706747726506937121829025584151577531530287856308930087825094883139243540211491582312146289827176096000284346395355845497473051741509883173178339574852647083401760600693190050974162635692080682323797159656837655957694647620157199472485966879176762183426004595427465034745139287170939357536370652180262298996210671507459676255770822985769437293474242664727577857302299186621947250725586181682729348979693203433863076710927663884076916691028715459143302156134878464847182204358479618184141545863307143774725472745983893713008257926217633178025792456440961612127587885854901597885197064652341389806849670009782241931078305814418701942742603529704773305270050109319577018298673839201814984214156088677926875990937290039626858905839667928737268434535868885294459950672097653797974744688989617015726824796407629747918116116183687865784600561083701022981257320869965471934602107216801926558627593913136026990645309609093211588095936866818399167510248599097514421624937688386086296822151915748743664264285311698613340504857049774554979555255700649521700684156352304818016422540934883853689957097844896999436815054217829206216346715428918422592633863840125788291728064333335909153943164447045714532265685468039892098410554691111960441167098517145960221406141906301983801216693097705556336352907751595988676182917724503563269614352219739770481272267224845504329230321868867646291834407389972233455930464492131218460533040955595826138294451621338509179581498586760442358172666269857293201110286239258983799633244269926824815189409324839511231482241561281369021776628450025038446016224563099206612460168658642809451787784371277124280020818646381762582489262117055801877456485928333346295293011163477828310128673293697385584580785917291128649189375648040029132031814196354057249743761687601778834117122666573036530886209654639398386438376447321846291598216093905185460771710426131225193060418135784508031866827757283801326209193217085162609913171647935898455978697304034823892471180063119646703508946747427806256460003123602463037256565723833885205656108997774274296214678851072263881400958412484369677667957873874373150749779028121681539556723409259180577233926712479594347554382466743105875443233044702378778729617775154027232484090256415964355195218453052103648635700450264019555016613993536816483449654485069343074436411337692389541721936135913462480056365441461197631481995367062460387109257644560052966434395362550367659009920315915501808722282505460361599133134637889605607553662300510269960775888948791645057739743677288729373377580666398070163668892582297969269553280092342224906501136253349207764340371459218596915202885590682840152531654169466585899490733884365395909222397194198803213820563411178138521819870720704563411687053917996103679872437543616222013674645540675018615569809854704890643410993136124521157274292442363164196787749002619594821489570894378497181728611286140255590242747020659298030607989994937463555750774939650594011983845478532959707279087893182343515604616729226027617218855258802406273354653415349391360898741712057082455771059947234445330461369995955760819727689954688833903936391275740245994258296355960940240650830507143210653477089537169129325061903931920515535322216747273298991331805066709288915467397795926422364990832361067909765377536559998076350671155284592718107771366582617899103057376424960788068896573767915337021511824663282575704805957334678901062019462171379035807080329418744208133949994267588896592092745026649599338950596011980923772061371932144940197732876007217841472290831513561345805860647243900896688813515968505320333309565013023641051781332998507526868008834683539561306098566540253574166456324296968769978071758662829287085665460498822343193807995821047425414278564331525632788737405779511735489839908551963344836965631457570228660753385030178134937407666083967282373549465838693724003419198846405416047739282807487098194727795276215943702835190588226193095176583869671766190574065786934579172109849846501174236986994683714965922366124127035921685654342355227875321288839934169211684655752282794761678688199168362535090015185676628667001413767139058735938998830310068786822372747826820225105218737137748368334073197741497948300178639759861855758382570899206686335874823396452735575422423893484323281841119830415016246816248226486559107718036640461958817989263040684336082753771430403142285364636375780246285916621464271551308907015904528326906697967118140206996426667506448924316725589482540321339198674397626197140351281977695594363908496028558076477443227253149346009292436094188325120535874019044131536108677579060750150433413600356291558980541148814634808665146948523892569479707600792407211457510688298189348878518289964595557546173055715217935369512865238733228895155685654222698613892768282263877854855480756027257333765430949644787311916216372081517553749563372590667975651190451944936941966100488737076216864513793896746869454326784702023040949207115431905759135215258081589001616618695357307643994562416613433141383437629214413734856799362211809244042424991384123240837365017874574511450490704518429026851114454559672529544161967828633759754755713700184949316197732364703663523657027076627533842937042584272901437423782468287437257144708143122384485330574399964316302836460052977548276960174034236635083546167271347815264076728091493340028193150305330297419825413199705693244661349864620680452698340360093648261760127521964792669918324841303943843323886268726649531893696159749871741401727579858007063277808027974248034232872585477353086119250225191194692342311390863258335317638864654722733281641558437129173711179675150851013572274242952592204328253440771355062739732595216749109787627093767006609142137795410469716410965583376816932220921582027624966266266412015172019912509867306122821866137184929318990644356636703615128983191228772127219594662160086872041766922151292901133630415365804239975118707194647606316086621420548818928249502598690692623991796560793568178690315916376146943288356114338503533829054109162112173285404840473701393314728504114902901321925791995490982504146758653391509725760884481663754040426383035996717705833531598681182426357912509799244262303453885028567116440774406505729712522604154143207793012719549887608805553767865571232982889064732261965545739571814200724056853645403454982578916339176567084708747618306728517320879677670950680951649443769757746770846161005792024962000980001207520107798197612536323149002336500234972133618958788127348392899716885533413543488096467860907622719293889716627084265947204917233345483225703293480775368015032125373779753124374093698486397435777477393634929727964233729268513516181896465504727398429198801104841208381227894602300019331864184257989197401730534320923107978254437250047831347500462199804575574066479012370272063220504579911440261417469084556573208943250925818411570364242686184241287850791010734329829229889033848232044088396334114084670494283724450897959883325653426871807370344497133447676052845275750022785194009583335596654353912554938410867044460764926291565692119252613304219497621898982482267927081056955670418720270749614665907253875375178837810798300639193919659234439455314164366775055571143558455108979875296930391006144552134016151545635748462259452181396290747255903981252339213857234471431635679910696130046321290254127008284688178728561169750563127450530716012987943099504166823536613926411510410634345868682822099037001060780092395411841184159297517507606675023360226231311176154275538523637367477532928771706494599367965097377747706852081263590514684175239760523192951165828406561902115527453474122706145392755397857404908528013465082730719818236852359161240921747796464916835781230738567855464108875371751050995583475301140999815720337822794045868376278655694356898315850369765177623226566744236966188824633524810062938235930641971757626050570044870643663693726624350124082976401784099297131311394262734463010342586171764967568262403603456359823398005232185589512132784407748458862508508813106446230701234823599101425476613421009194082853005697008208391446144432925692496330456721020017139387566319941906231801028373457847439425273073857417188592528708130535643611893201698990036925746702742775336337036678398700300771161781951441722736876290393258484381945207564951677241582877728497381464505381853429073629752345758642006440810927946388766154377861060517494805255611889255665689904280334418942804445010950376065478004631847509728853343086634789791205903827198044330210663056535642202948147548941693733979380884663645904627881989225077512124448976104805576777310547300587507903350071582422676828420434212871683430167471363056393402760572675773570657472784228127847878879520622460603985801883842610901739184354812111605416160453356144974250143506307554670082109859732055161468407645840752370266070760343415840749787746247387759285447456601158073401452189482775616586709007476372127560038792066868846335348761327924582444263579049408002623865494750150950401974360544879494877107540717596408943564242039073975343699827765026748661702090271150284105185272441728446660961916671854453662457668594367569839751158403102774717827718076274014608491820347168393906031786919306485248703894645599879432403276406491667098415406448715288031767674467198866181805625367010847508655002866113270297770449413511482261579247269299609902431007590626280824156797057102218647742579930317474616161218649054179005786447524390312772833996469907776140639832482124759324189763164767160015880906837162284912402051542329636635946383138133913254162227193045582469228800266106706713834542895229907367327013801844877173256006323725109790610219333635746744253591019677843309885063715331286782779618443097271189826712073135004982897514094169712214752507662089834937879361469753197882735692109380763646560191150658466390229405487903093163230635157344771946249095987853478776606164058012303115115171605962073159810147850801390657998511047329394006686324437840162295403031612881526504926280851388856456780884862653739384427379498924518084625563708891539126615649410358401639449694703736155720797571967587136731411299036782328881423758520775439947987613066542722436028353187074449312048767992872481165167827223657475425120704669445747320029793100702944768128675532060195956831451994219477932690548291841197176043091957391284153349236306528364967922424190503245226881381560133106795127422705648969382886540705874303241830775225855314311275363164149593294765555118326165265191460817036377159097913360634409665455600612808826527672301878039453698987071251578256918695627339628170493558847110867557926617401584574143315396258253393332862720959389217225431291546245106669479921231679112786465508449524376580982648926339523371444766501958745094360213787055058111802538801867154378677216511991859020584892756851801790889772901562387197157793952397153764443744266983188167664108181738537750697048454064660514489869321612195199532744072001425158578786935208875703709832432692417230989962908955105899941130721059787216236778859174882955330970783344065144469930492411885245171859347838785038683282509048982986084596962663743016738934571439750851732695592170678071487829876748750232683303125173053207618086615319686560768756878135830893023179033059279154363768393718980728963851111410593244765427416898554106466746296834142018295528645899827529908627108873748934216997992417696224341742703703992350537109131493558094519135271048342851123769283956368035228209649410400649281031469514394589524483876641532577019790485881806107243434087091978957661427672650146360753679851193603775819121879348592709153195419252715741649752564445805617195946788016897525427858128079477326746708984707392159243658315407524477989021008228882577511104112357241083474661503873680993360635120133769954237941637113807209378400132009942365447757956883463120588586452799769625388404182870610869868624671460656629411353862264869053643852797722162488659389875242359821540543442532011071901428464226284158391900180533462747537073054319115803772778512572676820906960592799083543740454265811097259449866473110341009044504082816400396549657279427594865536380043561337540994580710037541377444663785306207758996349642012971229104359050616019613519940098971793346947025707237368424138516137849246181033657267608414221108319393149401451115420712650316507034431949217869425757857351459615051132807277593287453533181233797744831336151992869392105001215878251553947845765129817987051006138187523368239489383830730618409955087961274710260366459003543797894226595752880445086469634561781739630941745369954360304263526674796809843571088830275307592430666875683121868827546657552707893271933965558611251801165739250297079955996332635762970469801620908191533239489334747409500703727214745375971381945164993761270126766745085870592469787136755084914436219280794320766684958370175200128170457420037992878009645164962223843850201473744649247128731293658982616269409509200469941572315567927218029614023115231336886514414289136030467345270811679390584414479739929317840097831944821402402291694845678798131077030777776066603127307584064284504477916518908733112036006875391431879419242515654032130348208711907301586080703275514197166233675540612045785873723709194413347717345725588296102375448378583730588918379907079552739954119931229277004881974065326470112932464907950817647639778197539069668619561656845952295739883945011623654980506597972119493182013124988632963247881480010275468188410824095362214771422054357470033065930280524652120623722298819892123975133757272821963961560592634184813944550341916074233901753921557621192915109773912471647650106853513590514943900284064020970883818882328711134377557476432430177786442170555593067148809678796458364534354050842564705200859354372235756101188313497227915471942426788821959656346797305243893397274850892196145709109305429040626163411894362108461632326644771305668120172105834266709895911086184446847824614464013533853905415607287774341154808320115565216406968491183379409769291157994469361855150509929482462358871295466758739646567903407820853244219395413788476930790595480695259799420338329011664364698928899969740536258881350058705967750364238048369730294124649235773241236807140399427149895462303886190008693793634589476454834714277436312862378596279183804348292450617430103070343681536962804576537343024542283212760764424611844878969190049125961433720363757105646085812305222426875159359462469387621110732005303745177462061622630872788144887552833702260882153612142094124937118162419641430940349086644861240641456258696388675842681362372545313251623536330003537112222549145688175678994393271515632150397547915093978753983790253353174584164047519291177721375379980111094718712952191211899112011403233385012726595858524977108605328672660464113185221646373697888469425738412909854832542994225576963128145802227209283399625510334051734610884801283261716926870715148325746367856171188116412041567995179022553974270505432773661652194933737474315604711643751560693413204850002165867651235029787231596655081053273063714013511417606065944295933522107661959001167084832544734232578710708718589717660545243616430897622624794496896571409513303249287477529989633915008155086537004164588913162468701717196484947983782751404183830974706189692628108473361733226627243504843256837190055680718395717233213055358305603680105478143544655211216028806898841178356935904985243188449157180645611816971950490645691552936398301596831701494857344213385245783359302476160544637950641817165043184847827378187490384758977284908635541488013165645971962433979381013815762433569539350747151534425625117571841061547670525092200442468114938660368074545782016880176069204166565521072089993602567788788614449433317947758669278268537413595921727344647565126455455845956032191266862834741557289198124392854464024998378040496643409291163284504049449627591950908527749116022987171954583029579060626316987457706420118372377597247684080473494132636054703728078152113320920190816340143167756431001560253382559906147202785848453406507073633695065926996709007375639620476759366037092752689738409827883048422347712984290462385293186189650245981126064871166757218592889166152068725276850715794310132600217324581674673822571392702005957139621810859960592511914045384041668692678069298591100578423935029198548327143513148066076620566878855277140196346201895500028429561281725083322862241797632164148303001826706092265339577086705578416749959619874753180998358519775345178058966165662979756937646690575774724386460458045075079057269684639569332711923088596545976800817374608385652289510355298603784612595365125222607361419375951376975657914658405827014094539755538093292384161817590359512848395174994618538795634398530574756342758703587758075650403632808506374971875439525229776008879098847931113842456249323269107886259336966124716000909229690566318345525743786438859830905394944724343192950400732430238573644773770111218232124363191511137443854202541914476329092999856273270238894195877647968218097946381425283225398376691428656983280660066908014988394541996362861516569652010696935185159524665765611628260829122218256658597526822373739248227308355775388175097653941022523161793642831180717793737054912436508313610000327031394951491507685508369316756064686614547976707784284891305000037854475392487061603256169585475491878070689497820835989382056642100330297477585651672798098269792383362879291176037402476074173879261258852847079540610088957360542495691987067838213106247277233007074069646000313663114260670518193669545890807436291750109656509053642267277916951990567746604049011218770591403246621409280656044723672053119874311024292290414934087875032447872940818329164691428125791409053121136403142848130347686383632875284442470578921139898940579038150816145509174379413945804023622260467493877536758980315958341772744292304235936746686640711854787401539861673102203861135579456207256347966287141068516647965414105068877689070132400146458809624644709568294347550649641862373261816141586539348000483786660638227652819772534851632937540506824257513602072766121457699703705720500594066285662268422518303636861132298432255764954404867892357006652763520524416715516619755310713691616122762153345291375357912098097259963450458725953524645537732441380812129094929204601295580991880881116521238524041693755634003972562326618787826288762269542450187501454452021562665553393907936274951966999553474046056983167880734403754800876743183998822398701873180286586043417422434148249704116151100713896209259089426516776617147406223551861822548645389169743380778769418888187590421098655213849411192858894988685914652184214481030832734764864053273106234949737912395119010216796362050446878301590750590905725827436364888069884140199995532124655659737464144483438584512206309371029380728642859599648305784531518300645568819776530044192521259974187677453794140424370602551734507532041645566004024864620476717749050640744648225189695875969402117990575075528202253616518080550380494708984635015343824213986799701007944411058471437362638709046175313507939321806854003567357620635457635053370490564726861658883968505011689420699926741608521212259129771526060668487668800766204822620393736823875400318057168362634589301870773151442845802513540233752687802690672548895308242466334539263837173484553630981528241927295598954497051969530996427463448438207652987841473014951741229918069480345990177277473790237148333300247314808230612708954853132942752405291285669490962781697117140232312363155067088161930098101658238788365178675393342760913455958734570657739689369586566405566477750715953234547191144497957579452490652681356726829716125448825418162369010757002607547361632957410455719768763529204690808798804097988252360427505468722621896139328331536874570171121865032717912412375345869201859923682560400699448258887357485149752561207760879395364203171795504167533258622898233335427159779755547162385609433781157872835506587771157216443856466487623187203654301807611468763797417488648341683476836369727541443905901614760001580607452872737326324544594371736693173092747773525980669327663417444909786179327614512098315325625581753799543178376881505647755963714293500731914675958883417103137528901052455185224089503550958497180294772645289522044109972602945063231410057811769934049493709299595618847433594553576765063094699382652975909505781917640532295265179015391779203429989066570100599169515232625556633788875851608271823059162712477545663589371849685131177078878636763814783131236990504152092296129581625328819194159221762903546519486571365795293823816786332049825071076180792721785677937757521509181083636698191856802260561907232318899661749082872982776300453326425903994333461738606578188406186676924576829982805040150548418935190573239590009496578457347421336072939498277877808141183255263456590286267319373578965034539037328645864234196630862729076518528466434690929740010806624035658120599087717462440057572881319659183076652017858222968344165829119684733271128563495577787494962405375573377617728975162769211486709873040862569072882831121458938757248675103337710072340806673486882910056342192690839922120429155309643974435333738335178004912022859296279544656638345778485280992395308795656585620179236458145141282769702072439712606769584836586096866499316548594043562926585919985527520543314225586369698474582800269028283452115458927498745478437945289322119170683772943787788320296262696590359792020926220442691972142351226101160912560722135108551449984927579708656183992968364487412485083389326306517643893944552399828240256728903533660180093296668075133342183380182940565584663293192934181104037711153015980158252863714055058372009478020562837456467567791504534099337325203608433573515626725098962050621902979551941111016922464273059681166174199697017279517007862655279643310039196707802285127623227231949333367854389780594705813641740173827182759237757834244279503530846822451973355385343542630601142080030906691939370622364711895102410999819689424897592008825903705326416700391752605440787665069881656721584939912291297138428682580621101410224218743350424420749876086498332694984931251681846986732814690875098253759356068224436423049753375164417181533521508217365893316718407138055718650353281667412634920266004424986680286731914125469816828648041993571301917793382475708980896189715828630250918361315739693537261122036796689559095674408666398120067977112085027090457133447938140049373123061160455316623891275718276248408934133216550027248632927801421074534342248227898279765007961248590926621149856813758507700255541546827330638909366768960957793877848536360999697126084482994644295051690421185979778212245279081319104390989676092120290494414667936149278967141900809375957581386910271594957898559009484050016630854854425674798670215033137275869547554258085426639269246622035925304881471856138602215028357242812591263448914410118811950870957410970706305264254321290500777506358203161399067021829846076096833142567190253404362818212345223118599627577818447653320981552076488217234042673742943258769984553410677690112174788979033414939885724336431851182678418931317988283859713661548001050519453829819102182737098825929122589533273343166124381877682721988178800689985120595079262286319575738049549216495579157884482074071613411102266635636894077439374644198150981922352769408829115805543797626061408919715868820286550943683236642083829060943257626278240836763218601734332712102000985632701724935273103511833045989860218856301438526242585272252058015916394346885736416042748757695362490915252066855790402734862073087033765351584811763803600903865323815863566239744363133903457081430149329440642311191619163805698136376376118989138526858799385415079204995743232989694068139353141360637777264897113620337781700109247944919025085202217485723594088003871193167419027954703310968518839095327513706156939577874664068231841411439784314103106711534461502727443503202011952497498923489501107257313819446375420986176057461147825162069430140606710251356879668025259853454537363952360025514482882960504243108153735224422988527293010096776170407465000500038832316662288684300221882558488143184793433040888729444097039965943292258571554839965034705260000417802069248434697774743673184487446550170213418481718324028739079943743792228246494446299732593412224804557419223127435359199392464536796382205032647184512868585152938450557693287693542289906675854748600824469854808033951093944349864926815278416670039393262177859188650734773330694072454698864402120321155131830499244647687412067631401577575812395190422432338579641325923963392869831652413046014822253139873004006332150126444067440093274988764385485681171828341964187444295158329004755958477441734767580615931326222020536768885454220362283496562042643072996910239488071326505773373181081485396475663886808496704230602062630768936864989176995887172684934208705058482025790782036466428260147391203796968117628661516557166026025731610467800859485307898669018372576605097017020926383217575997272570168116762228090549590666181056467187025985680247477139673241470668047992550331765852752849398675343589021883699889099703301421234440880453952782787473070281633673305987621251468598197177324464962724815728553236450909135738313156103961605074723995354528265993868145948742090552043463212743367245948477226559676557242643940730993120923522608086313703690420699135121670132957758393319764107036655962103987801614538404542552674610626312741249984571661964741938790904654361974073345141142158678562311317496524880998328713487091397912749816995090041579106754165333746852160090754754235586462697958200861851494497752723959981261430822902455284097110233655828874778057735149148745975195710957204075830875242273650848889293431080958410130577662037069247812818777468889442094696945062248415614926894533928224222464590069193901395954983962086950493997644858827660156820501535106881980634675968241949633161363194057854900131326613104891227468930300009940675813519078879821220619871416379234032037690255687114308505551258616262615364838753377220343051189633384116320923703973604499138632172925394762023142181179405339830167206669949001943241592521197834286670897360899335489788247319344551195975934828778897149408493190116936359462913937949227381046212701817146564093242135062049972475143689848796540244644099338066457902607639448429949085622184336465507673871548322291433552407374478483446051215323906040482778041942294524297719401546187463376311245807867173934766340484152095729867780763662848769011763004548098467697581040310744131910227647119523278680273338846337935139635770185562918536098702367901929695408779770885467361421259133940016374084236014314198550943795181477215453618988403123201446872527823786739265650958211198831433230307860312005037371283532972523412747797848438122096957281149691886242512565967471149029993484838727871888895622905224173746272846640699509118040568327348247347536275822706087681398052183488697093684940876467271707292148588432476589850319964020912737403540557978938834458160485069660036773221332152888600858934475326866604851137738248463826454641552998899194819115369101359119226381958373777584107472983158304976498840070317365480553416617353414809190362583751332295261509797271888544853547065325246818084283941866983334785213394579565748667414460657477229503617982738663710240060048785608275261055783734512721725386002567010263468312481724856122225782149546326861585147189397339985825841137899406728003945019366109642130932755517635409230476190655321088623507523696295002618086065709286075932435497707804019329258891813812438074591966247901098418150871973853319813494324025513487212496980748870043823283163583428687927699167226872364837231335871352664821151248200382400423106566749921439474007045328000108458985791186315229218032272376909879208695396754999890779122507345428104204086226608195779299558993325273191766173850323494968253676015840080818932587975154863041123863013564284114803440155389752635980559340550052446340194322533029166688607258062725940743906281899095432742071133845691808602775485821179520928357766620469344553472533530066858043655833549848109145199995219518043734181830552307323508618929111739800548362337831981124303276103097283964546634358810146853574301393913220568913973869460003082970216314700437985265593687356436862555813506007140145568185374728061445672134970966729720028893158318241372820270702193994737626877123780382683639993055575971436690053030639296016099284940920027055638695039784539730537414494397421652723346254698067459069762524280238945126915803836386678145136055658089826353820004282316207935115085187845313232342619937242618161202118280714808958827940332304914362036631078181886929968338694079697185416714291914967475010267903401466561065671106642519936247525907995969286439015655107610543930437267789554968570786076807652072280222567819841988663424199925602009532861555417270001622046896705725658731517665848506311257725487696418859107886855586244667910995106180933278331961231352733338184126487506612564076428901409994726275618609329471025670954752886032120259610153846099757861705969965229425580794642249437695807263177034258628441165455522171685998521445709893407237503222524235907234240883092470281021489767895088376756593922802637648096854832151228927126684370993949586323664642137190362714509102681155526896308094720833360895758091113274898050377875161334660380876446628540991726348515778455082921183722501647272565490084373089930047380801056191975787544966444668699991341140416391972220092989184654189761275280073025297968131236510017480782400091512316527672867583047529659622196141741306832055454796136379364940290294551129008340744806487690203760438689998504540525239739059350817281162925942340466279360298782136530266458895491746284895676351134431701283130485043596603615449977700089193932729101366466968717645772425332110225620304958265384531295723511489695899255060402434765147277483974182673965050269312174794800748987100440528855107486700560988277265739442439013733498868334779118386649664524748112345986828876303475100592839219031709339226021613132664665705420595031234009155354363843723935447068905401851477136939872339596901140492792090616540011981273694527563409361373456896211686225216222262525702825359617899751726730134637353463428563933484837453555851284989896793675976964334303506219441126106885014750466070408752596652251871291626176898599407518588255605430592084857144678325610439486891530164452243065063256221334300505840657458980899590625284462996407555076303537562052599595995136193155210978076031481356657286562244324123053967022301180501158908522132509672687686513582818848561489743889499350647350799204701438369051407841769196899483179315056635396635412589211691326945316250132932605925556411124602225974426736762138687535064993890483757393714422643358225026154016200517958225210115937584537163267183187639579900035052683107363849272397711279616600796596583156463177323699859544625707438489390817189399868065508984845147870365043116991353615945457815464807441925251440647019286510139496422606918828156963354455442618954546795005029673873865051849349933718497536732171874549645986973493720454395478814752047548294869524325656280853353116581085878172839589231994711357452657166330823975430804339330726795847836233347716998404002020805863423381775831426339772910793874350015893367641717741581611845033471607189164625186189811554850164292538592410998532665743428098421504553444658981676390799946533733158292859335821551306137470654509265998189860116290973864666288762330596851581357427015718943899249115595652034088001471831998435462496444036547893233777025951575414976693470780848306093010129676795607872714643955842213761161717325427937316354629875172105597009980141288561935358260774675748454412124886502651760047568375745252837507114999427711832311701304094723042522298896467300070427522207273730817651779923568799073238106278440777480551430287890687179215165835674825945310369463831779840565174208864250014727108315708002982222193949254458305072645792901465953864135703570767248163882595627270682909365020934153416649385500659950631068764122650979370405234804251542800568299332650922317672788069483635936649075399677715189360208797415487477839010498768719239128266843508448930706023604186336477725668350196689608662133010771491862023295766069790131457250036677476250264471238407428456812816413847453692080504067540044077661407388882356089660445423576521359291310538462537908932638643611307636990831989954595553845089940143498021671121063918690938702397694558243103818805091106950229196608569462594159672649393554354644297593015452519772142223572371021772098758906248364621204470631680673799888719480317478656592934879815634553981955565111268609295082860813735865286095389437140552535386008435120912097380806112225395766627961281173511527330586858061963308034507950593024566029239667719453311810134113658949366137882197095018820036899143211347685571114066917281134042132097705661758457515769447113799073379468041625988155862524891974525720825886691489129138461371414512477358161694007611699900745780657902608450144031154166405806554551170999239297434028337090877715471787318538505008638357164014855367058950080813530121892927187993987536265117865160760122843093064208023625913260257846697416165830806214370572064808511720936506853468392067464288165256340747310936116947899372629783594384104263638197007093348532496380526017868920222286543639518649154848314524450355185386978408063942309468725704750011228976356362606564502613934404716797057043902836703728928201239675719685402300354378744866462477705828940176215812701123504353642215405252898600583428178468256284015078130082308343934204483287917350054992410694676502307114450224550537257023925268814526694035476460712018043984511275055587184068435721218101491047967344384077804353940540178564069124743186696340571394813260834987412604744647111317291067767892795569816537116403692374786504129288565068098224459527160284055516558816739311925175404382102808716797824144946239638235337456948008855581859126030416769520828470038953457775118938572776850761986277437942341721021473441014803250179252501609055275898084154652401430370698516741195020090262070593524282760920906394099520365094316686990257957929291190160180305795812330610599476729878226020022406543752175962368650483638304969553971289199997397816331357096243286666151288221464648957000171225848737969005137438424634906529878473139983341055916532406895985865228272159485571246215051524373889961602609127161619684526857780867262137702357776543925540366135396132099582067365849126733959959295046824790737200982207998124200626747534139818807875966755137507769003908366973529374503946671352239296024001905820518733902989773067570084398041462004871785921667715573285473811500537912928601066302975785594815125697712922578553119350726312463607878377204485809128462649124247080991770716858423901906877278064378688541054844852489333814089064031659203730733766146200059553691518209227248671833981558108648125606950213155078612305792283181167951556941315665363709142869716831725537878221124514553910741099665718944906627360218366201108922855141614337195391154531166489350766084935497301519526642667050518709331036988889085091949300923901860891308006650713484550944444961263553152184121021050887396178695532092276372566203643850212431876508190154790607923607617710663408519924782587723334080994597325102225775452401603794547742356817383013443314031176270597284365045259198623810485260086413890280924874460697044643714494889873865345394849078730775413169126737873699527288167161310256071873291514471910136911552917162852749614865453219086616499660752518987448701510567061859805819670734346683289940909227634732463250423903828915349427352129477930197241109908728887990007675964069019110193533750365461176444248306346002456435755261697133524187827690644697778176241205540721896391776316306685733490446074660429532774474474779578886333003837017378920645324624490687527011952312653357265743014842502304374570122964122741294580834132399929136173984875543022732452124205666171512780410567663612111942026671242686483326262649156944351355645356321683878343904530811081886889086239637161969822345705322505399114153344512942868247658749544541586254668458207630368964165061332367780223265481932791208394085381640232723726112979206221033488723986762756096323360696133109792372916891164188172941708952270196719306299298310662326491249979212630589447252767155671499246407075804243433283319082674024344579506963004448478339107752401435192513796009678199819750025677459574837472277096170108805495861306507093499203180290899340051883311055091542008328329890357518837507320179472155175997434491797746092860767635576652934924436739972266347763255835314945000858759103949494332912487257132616476109636945843089542718845895827822672666528752564544127466737476587580737027157479660798850936850859929821219622098237369107785545494910942524168053851285422904017334668849594051273939155159959838711790344930367518295242697198239486349881674630566825007647599499489842780429241062784127875947136610055556357979444831889034878269264892080908596212530471068222606901895412359336717797179539703981983171488586139831130754837332146150282243979493657591477547933480114734829280779569867899053623443428105728440528496253084373112679462363495865535361837279282454561602051240767397114978539192620835853825256978420399904703998105553829606755990483980181559802002565378084475314056121279559450023961473523117389096950770808448832461526378429441614658565648351530718339183256114590564020692166095982954297382068505583504987637618115993453865342953840300215617686978094075724685446239154582812540583992172985811315826157588811487024736787607410001051903363082067891221189010921147752606058922395121813666270337118389977832983264992622887947180863336266471251552881121263018744221270368200487575342420966232948219116337205467356486891548952113728907872175468765971904243578922876295589170902331139481396018002597537318677819228636764628894122046758128615081376211198909980489734534105328557243692490075888430133681522035330798962829389009859541660500487592312117208979580365119767751192457481046532510385630299724052477706995466111937890612581235272496502544247443998273432636717570246430534575309387554781985162664191310785864182841975612953410631907634781476005632010816625333171079088407729798634311818721821379727724096550605588106200294868946673538577592759451381557859532233776718229466405194022730193702868966415682791801910115016229151204267559743132426096209074492107613381449561343415355412381676517336199253320780330627694133329755534450533954405418297132796071311990075622220523898309064385406343863327407749435199273356970988074140384947479680400174891568091491058503395218597853504719733019771998966319829366303605711298326431573479588441085239358884500310347394875920608182998670567417639495474449230216250814326555880542596979821709429530014998259601336825546262448364916745126455017448106298211048398216065161448774888797301453805083975190449289881614481460178053177787550104077455360545541874318095491907563040708821686242819112604218803552280262174735006181490362103069986456502090539393407770801906175285409864691488529133814206018952165589552250755638197241985352019014176340263033929596782304743866999196352400088254638978781906163196881182437990197652425805685476867996221304234559796636242366393943961250940590403008712686342846045946081057397540681755041532023836563726575492427467266837243990267015221090238398138766749001608071929082945028899558613199558141862606543019812910309645822583469904935074131584965448705479480212233976763705092741249781657484598264828126403246298261817545148372922108505260225628089298298851362139270885418315689290194296592989893507198744794835783168773403865837762240990251353211094827177211937841674672183832764156325353667901782392333390315266762106863732775233932060344101424212787450935019873548775392883433125267578443545694835196914584054530526852826799140628086097387298383314617518082861926101754064484961100596523287666427830956064893438483778076493443952100898985794037972308186861554510397448202651875131516396081278034267320340725063591473355876574898380125686171799461171992017150579031338621122627783522554723371184971051198722198711551329328280354630903881770037717331092655611995785286073087962829944575512065813192473624276213421348851995679037471576170263278413694722902993787833775665939159135213715378206305769353569793265661175845102081416495442961191383714618655583094920784992151979147808353265240197928237723051960130234735188675824200544093718649542764371877260842420409279095205923738444613048544737333185214711175832692941669198792473453675840098133231051141404391697154904676356846269227733584881074724630541677119612974183470098487576826032010327085461606003838882031387613164297489089224041767595256968071414253858539257155591539603277121159392057065459010747023619956859634440432083343028412739186673345420459724233415774084294757542313051264782686113041428911016476036529370654389559426541831545114901905106042883893895254077243807321347382553226586996527504423655913258881474804965302846116800303627584835180488238211124867077327041314089681041300910320580535067912228978704119260437365112160116901194445536039116322582939846516426311972862998746335941517223669004520070140473393290215088646662618280789441368753455538370840235134093798471443847630086803046955707700040234739306161051540419358558450283536048791382658030609029857477285445290496496089229194685047550902215822643522229853934628442166415211364560531732248905276409690531777614693671304692374647042243998197862319220025487030023388617285656188665762720916778996108062600223885724964007617086422939238389761038171192005830180324832958149258016984384342401303823543045138504023921218812671810874927143994136996020466312938995188587810657988351051703485714835004602555334371039547375314465022494166175406182444734465229699025513179245392476243642035029398761368231101611970531712915198520934964147834635895539209174064943403658125070061604394682801567867024110837874664990837942222434894975466577287549435375791739518624419066270361584493656673272597295676856494775946784089869728594523131211519027503715415928266357278834887900323303910233098067770719347359391885426357925783976003863904917324443375440833599036050490927781767337031762144394886228892256937654094223813066621414273000159956873336555644889544030511612384818593670987047206401948344971028529818691687241817429470519356559094715190950243223889919703005755019744826302474618091460024657985892181620051797642870712224837730376194619385520062812891647757043031282237697952637875995117667443076602705199475317770191159780629119217269948332225905130566904700179298953044425987466312512723675635098574368910955339454137071331301478448867792878753776191283930846175413381825300939495932969540192274139083759465972371894505856088401599711782911760595798281660450711748303394522211453637066934059600982338668938311121891593909767018827864867316484099786768199924966073849194253328131948072134167452944569641302343509838530652244808925607995109357349601394491301586326703614941603209369782090390841927100446813692316439834480269673178209695549212894960222141034146995532982862240110000369591172096705323160670259685230945254143796237566891192071139910130418722321911498105826842029386809886811117817047225686148080691453445222377523054645815867141921866621193409477044915680340619803791108696527597044323374304906040276573955489119707212246685262546237518264373023713268389328802536152552339447113547744955726474087379268293364597756531049282019840907065650474841616510491444176708871032075312700293146963843569713369076001477720523819526622131517242592799977557277066554047767001953164663997763970274943208405535013570327378228987410097985110811621519940818784627237981097450841024974456610668230700974878446252728068557888626752048533668382600789071392172255536013599267131733170352818188932434988453445626425049441418682229846597499018202052376710227131053640133266216887171140478439547719706976317762847971271804716479056380553569920388514343358507225357257289538763166691354691565124716064652351629017914594803452561864459328874210867153798934551011767291548993704012893659047745252876776387280258841815616634388608522049534739734740852653801587680772024638160137049910308103734391756269581594964628110144228411322425983315133555262316108821600084168613793840630733662054069198176515514883640903784201670876379902326725382027496140641746661831663420461086301101736440376519988212018088845870759678118824808605801650151125217951616878927012670003521345482110435330638197605956434373427013981203626328725305452120485040608485055084752861513450700898937911839788529090018396146077216448014007272786541035881093226104300488498328801483520661687556943317709004157307168328341111651752220367744714895086336074499876199678515901645933190940913325407109743323337044012460664729565638865216500007948323924343532068245077602194496102545268960918153453124879660389961635923630036083754139953222087618975614106463039571057043604892295696585482591591861265406075416460487531620677781231008787184505117136133024729892615768442433179520268921788088293629876049813943085874985633227097300173030647611637225558434925748269553279851134650515303672764382838863711173458062229627614623249467209503756700459930834992949362611528561722631045388936586871544019370186564837761888011630089687403840700384146867263839485455496534399801463191850454490205824947720521035295419919105989825271790984321816352056806792083004019485940755918010895344147371354417312586911326951281970243576560767868209924560938684160117110304006615776260564789376607328310095156813347815581513364797744045059650903710983832360685013898090814839930514489895733373190943878967285388951218866615487939274666561489678142190484832834367445972703744899733735462556891130289958601808707356263643313485931326796813029740574676477369499188474870320303065814334343459103051984948706559779888337376659994077976971733227982566197496610984524837844745635780132226291769846537473924882918945289483702424401116073612269399500667374649038583595993725087635471659086524919619641424680822034464461347133836062441156993278034331363253108968847130449956428569807328997167281683426125280488998590566441139705714840834953537861914092049688619684518566273189107570403178098672914216807431098635089833353483155547741474503965282157530731363083291779334019611478665997945265496592156799454721232449084739945080167166106618664330868895139150426357023687110719830525434595089230506795638033891650441896525509857925807286272404857932360830249017607210933948267968514697856226661398711956308452194066024990930855802668233190851566453476607500119492029663763241665793493318779366280448828107101947595031261928989514694758721568503194067082064438095696251257742494786045271747382978962736937738954230630524988490934252133042888642672098365551628826505698430585784704546776255247419338035138906186926450574121564850959381134771448101146888291420616669323819143054118946051944492816618608207921728137822148617456506581633190470676548831229882685721604164899436744257754349477419164984629220678231985465344495579542581418127919047593315150562190386897594348059365367551203692938434083910927062116811491944265284021175624429088626820504589836444599200546183623410321354582861184722064952933466294298636907717194597740959502054180555046684214550779154583843227509243643118882625050954072201474204281013114662750204148442995274023180484229250708003544892737616972135746499409250712650828730120540759426903085508655713552598930947840708064616934353205222556795090301827859172475186504264087370578128437850540430998557980680758998213906791974640153177692425590812372678420631099574729524878902057070133222189264555364977414426639896692018437338025597146779961742801951650526101264299184825747731786887065937959287958635193806953998113618378206865724710638906547180487080968527952077045222540534807833126136883111271648156493869422499817227852226530586529911367818637085885050190990525656700334095532437944699095166213293757579919783893619778572265898379386806787366946406923110796991965355696511200455931743260717757083588048783625135916432763312611792308995076141118703357802215801105661054714802609344512763494821578234508577387122231239549757303521263451342925196416371534667634651233861847311115500044181260546548169026179971861710228016193214068983128301393960031221193841087402275135712690132360671157790210473061202930203233192673679422027659281229316190859902056658548623546622836456088523511734819220421503259594598654688713860264306956899533813341215080236284492938908946626840770395555946989535774832856289373785485860465887082858455579827133006868628152161150076952945527204548183866657726405375543454797148765700658984115591387404022411459373636651751104867379331124104898017508656739193814336696618039630597029901754221769024516500318012770477227098760530940865138653133567949392353533826384545505853413399136393059759670513831326809074788886755995907749036065291982371324025931653751777482249607270964788935327241455561457253626427098720720797969767397624534500522190361327659199138689564468124927218463577411757429828246558703985161686183013236803627582089385670232227992609236899526574445151864782595295276553810348384717215856377665797301341258460354365139007425783577233367270341987030588215549625736889009481055635194791526764834787628411960522274630459612827897160764147277539368969544142875730497140728371397864561390754819152513653022067572701580759111120292584853885344237925898266874703468258234054719464287679048995426492289435978836212111630687752047516595207233519197054080204181580367212486771510122042728437095596805003543987691135672518199389437618874496591102543730637820246460779824306955374882014600712625350564951124890828528111795710182242720699078581024647362367145425915198568606376565973158679713745819841758866257870991818579500932834835998505760528887041907822200309002294163352568117355298077844345030812660782816085147052438419530321160165328551920910401156944489978233956558755744494618307609671496211289496443108146275668476884313718006610631199264630201897109129701090848880036824584856696520406008981546460318026501505222591879682374942766357646074819436983651041618298901140236681465455426057877132949994348771461097865495144319582818209679399390802903695400609049601388288681670227457516964496676111088609838127582608092894875738004005837576050883938484512413424264836605836469953370130747384633342703721335571929905558705908746296899522185099462541504002999473849872219317465038994679465199397475193751808922588604339255407651435002181519343313926578867881267524282285383214885203453877483819453683861012977422811974398721448560208595370378527576031060740090873799839289746390557446377913159118730544939428093813233799482842443918711690545669693375495228287330122559055061976920703826861966882093696451445597826167369775378135965009126558786708009695533120896180621007023526370095980109068895598547818492900226096132259279270928374602399963673536710978297646077183776519547400353836660234790221732680055056962311315380711747659667658346276519239502022676703700769767656162131427504561547637243882096614023574571512419270866643643564036553390872022018709258270273127016141143336573070927639539009460402035973120903294982236308074230378067137556021164428121541082781192241715640307967114476254418304102528154917425508188525151898215951387253486373458001259393247541741686876918207334075807751852037116809880546495085601171648519736657014114331488829225062690580448665632836770779366384919335110059981500980571873641122032590402245562230521154806501111850735365537062921850822905162797962645907026792527565921830611027121150570889372481479106105388588981788260407324753021278147724466895475033927991140326313103000167386437211391578111849802564005841078021643132896764977738662656418259242517328094490464683658773712242492603991084884099340325000140982115630032879355929802556470323281716091937604033910018070665608458295778644447505110350786939951431130208861053715954667731969402359546524195837950786079763009076112903618813022525099137108883065428414238527756517783962043039014627775580455484777869550275378580751533975482532659347797802099484839224526191613950344906013419049611993435677763015314143225133804554161084817605507921512457728897864464264185952674799843210602700419678827868186877512180563212537650443318958130025675073462289246199369226554144198813870208463545631980533525829155530817905198458322523210364461304610876624796651214633834204234944734225294873352297342906200112457167194335343419261327051044152988828487883356640822101151634939916996578397487575120950517723629352594823315129420253674801016108667474583135577894807104798152581178280702777511321467435113346756830587284534846857295496613392635514474284114540818272716336064675812836222028818493871954810359727966874558615428159142238785279731359892425472019606603983224170506097463485153527963890978070993429927753127162779957200388914359109052216389589109621828240616566418101795393870195686602170884605996939011834483991500802169770332529285481917083743656291153839251639059193441423828299119946999803355740839544807794958310204396548497678372871275348736487209061687455908880841090868006634276094575514363263734932333114867209234715025290041898940986028812008805022087504699934150383216767906840833612075232892472048332061540540903212402366958620432784412320677143479712875779298898375865201239459323903203659761767112986720841159475555845255452671076206493975377833007003615751780872441822397867186114867786797846975151674425130244300673202871807498036975026208069466391053261707155380734095538123191469089972683252579530939844839816466726952560550382405601656673114227970654149760714593190250980532864478906490055447427812075167872563820865057217910040263445028599354876386735495123533174279985253482469202211200794049265849633906808263582478925085925182092341170952514387069695837537216953593011247822888683710889175310028790378085960919536750692063627778220715085328111269818887928061576902699430814419639610577026040669715972627008136182520751150014169988872186685737458359312107753154884760054274914709501424128052926494160105950660929754597130616501174112966791303675095324004097948061341803116698883317606608816667470135507167788938654191691612620751967187532130145679869247145760070102859585057701936954458269753500619920957776251030581234339792822223540572299228586287185360181936768119386799936449345415132853836680100260663534835972204628439638662000964980807243329326457722093707694057645092023506825708892983075652854360328301165240018456736214608449401792191872428102455625288985093929920049998695056646354822231660140102500632087111390258549582685760281275268265116131522123767390473500496767254662788272927390497162194407924306262404550424680369232984746134303411253708484926912985800110368855794177026745281807279334188309298057618733360122823625919618801080532888592536651898086324849254614220457085409070373521220782640250319526971282831848742531124381170883428185187834609293699426424781526803457946035687968465293510774477562111852871005991573468960292510970470697402513952409577084811543248211559975527622843228131925934019571244109593700209217101720213593246766642970917870160188370150079805143463169518280283545057398641523240708985313527861456464326728366015447226877995136675906576073811059615144482887280647653597414671502890787194675876387120532262003849769252591304693372223306172975877849599477894168408461938807043252029327177932214762719545781742947318397077160381229423172357928623033688050926999075258105975878078019713633514916053827391474015100806370108966765205359376331260766547206028291407908001100447882017455775450221187433888460531682201499233272218105858707087762462441585887411852953001897675848446754794209419195664771728482971498391319397035560369086528242077269758069289947309644084990233734505355802053663988906310173694618941250322884022783466613449343570934283271005422738919768698141085199915053685860066303527709541538249216983886133856607803846000564368783469004214612409123462821597641026640514653539202645858620393318725156667607558041188056494800090841544821364500900011563610681476460502742325911866151858773061377539041543650085455989591915191743502076053662753999173789573021977654111629020118231522183136111186946683274218973958890789985899675366544163408235869823534698368314788890488260369796669770087429349505950185523869077900900017230293072051836033658745548892948009750732715059419754987134413962113499610245778733230393096630442216703416829249823806408980936409649833823232737654316682679673108306765364163464782713744336544170826478588612215930499794565757460467962571131073988808492572640199628392687806782683061300495776663068861912654163044109726532490194084335351140420771444438283853724905827305927127997721955186717594458075468559997782089214247625888601906319341087103826953279862024232416742822942445035376000227741776391811603364529810835611389819647637055980727437358895913347572646321797090468228154032770382240034757511869590303671927842222453363510095751413170485048039241696315185633671248521912563979360921450527395917727592723087341979356717861710993668298187875867007196624889487852598002280486798633357269935460077943494578790488892802090032442904543634215299826874848342617858805968580057471516191855124770404849858177816436624597056673838688349420315744873039095497941318479243690437661965763131499049521799517235603240140993046872853160188526134024971971888355637873692119426736529237538008122855467133307726048011059767455003297273487023830973631371432154166136463608673568162574833714134466863733824544519793328229405306454507285900866978539696823036487805525230791303091872262989442565224473137653253486042064594078984378557153848559595470382294327408812905546666134556795176233364675518952993377147410430221139950160685763256970312821699964319923304053055310013110911333420672117684399726464754304814502002879441739603599937305395756578151880852577070963078767139149432176149410787891100220953323403532963998140530136005475053779190924552933543629695763655695980724254535024558690211532642141889829061031297722145686090027469013066944337945046176402300336051596993364394203520575725434351381684373584025299632257132825408704581003177116230576436348699332191928552027281065831356656319387482832065006277491628829701250349824005724989658631897881171360358912451771319161192763130771675856351898129324061167635471337331710517543400241384368195233892485609471894984487953431537608089290913762714685986736380792568687841565067237052440600894249366619844251598726911305849419396199347614281429170339655656817726821705464080817264654231004901242688208697656641173521318294879110646729368008867070877762350776044670009138396612931841071455544133629930641459603336807496996216556531516002262637550655080929330655274317969028845823304670444477829815514337726118819787818666807991981133413673230022827632018886489960068458620521115291213910150815260751939638880023185149711437396280961084418029012932045493931323449004813205485693936711760005538676484301205815988108766539901103020239162295571995041099938421812300093758818861229453462148964823141796132958102817157325399864110037077288075266832111123683215445376653307769367417805483542476329747984199936148731816618467883458925843364895903995748137231901504156106750188139855908883872437055752031170246331987066237951205243467970908578153013019569060334541058234809627902226199088182484950962648699851585209053080663505646498451071905063833683471774980251737962017588508210879476129758402942990282407346090489667681263808747769102611375522815605300321007468556907068184835869327912837729408174192501377712720471424682645391318928045120650221811864836407588714156162975936895057686647655604422116476148992843779934959121387052071657701752210799863532313997423861221198569019532044980223505655791870253200653042301876741695600221077527847670448200272398929967848046001110582348247895933412286086957150526053706941464376392377895202596959774385197852689741180901700898296449413499612418890895577211986603865845098976774286343367351444853995033522589439009154436681432477782173270989662957793144505294132653160124305307716555341273587358956629646180503449450702431430003881383068772454300606104908057529610443591708802862479654879690899130195433172600836706287864141619493723153538512387090218804382149052340554472045320253124675422900555787149722417125526109866049215050036431701777490901271888448561200389947154512700912246658026533431131114627037996527142198542246714456699139707748063760521122778572851822455917245976449163611469658986770473687264478102017343885650338394895524159575287697829922845549168447702288153142950333181075576587807768492560666682369640289934511087694847143680674249599513868666373711988136428367951853756125160157537864861697296532612381295363885842783196829759066308075552290035530541275623169248755427269088680582919591887115693648667697805275513474501427705552139646201885418965177707342727141534416798308668886622668343133108950184255543608886609102629761858260496007530123709874104049123204686419353524291485233669903486263801934819958215135178987598273576283843151327022624149887932411001080030508772045985999074043233628435673558722190081709092715186319539539633189481786716424066704641015042529114590605830662278307549966217070521772268867010214098175161826372960809870601373388339551068406353105999714361276226389359447895621022138579900715571536643534983428249342744784016650402987717894608212167967861126760993657900015118942052599758854529521492506027450069895696658865647548618161419795645126499135879039804650319780337519883718516494954228538306842831088608773610805237264756963591037478067252074672553621514510308470838357186905660082913632230369370993402267481527627219182631315851244591574949195801618541265251860172541882154967801642100838133479408427258496418788281657053255613333857390970908637040141927799317207023651276863150179328411818555869274061955325945729296646640069613915331604346529050666492622512552266678629261844814306094848575185187900782862761302165240726374559983701202193560893245525236570998800200477312332383188046337618098921332091579460336022815459668415698336324010920937537855090103138259324055153876394650411980143059821487046328480715197214453603155778283591386004620315432584949808409457514996244747547964537034506306157574595087795282923174836003657959661825966688295288520437947803476667453570386878683075526296539692775456352453752447552780567078313651665978626687808092309428266762486909278818495945854517139536084249950760478848581872606040987024352880460527442343534247492971197260762435717463449703032655854429076122975656703635681984268894170710065323649923667221430159394493803487591045393906036006072450300393103197247960004115555253769520381958908938779044522234874884869295861062851985245370992747448008799021631789382086833120309460387047050295956596554871477523144942367686934718690598269590085794092936957515850300970177159001083434839951945574558905489888829208224130376894419306724462120790284358855253712065361033854604201969293988074066076347165539681265703275995326539585849818645242504879299007166234496078646874343231213730480891612932859145774899503221047596184743895121566352542031214664601424286556146071046735711619905458331369361014038058796030448887312903417745854081943495415867448409099562135495904776798445042966162809746552105986744683282892987039833490756208200221885544899939110018278174904689731686555954164943437209905909492608467238609683871225310654237765257203505980841604816895626021409956893736710214407401582542576549495168152766336938717768392249659912586199719760264001801636025716804381452728239162672649163119836479278907152182465189945759434897744916574419134307787952596142336212491066803373914137366658215247000294355891649904186284937555879530810720796487567999593162468293875590089823563272668648006458232414599402981970101310900039375051942882617316488625759075621504591091579288427614659284877135046167740400802180232896042686914599591540278705245167429095821851395020679120659135549500962595762747981604626988070567480928086486757323190502910982569628347847342104034956424305787507037732906460236501452840687841680280610557359644099634071139358421225884070633036594681580442046252313379936809545703534047382413796066248571040029545818476417671334242700808959178636584675163815942677236934184873311671485983607129633809296568534451466135180575884381773870692467889299545308814448201760191712184603344833392966116372675889260730738846328817479402840875167575428804468317108631557677420722143598651198042675872550045007659887789888916520375178973227264244689904919933925973401972880198362054045387105442173729027934490971450054932357842030951203614948115843788753579603420899879824878201673237484065587792285767395543146827367489002734664095912898660616233941944297430258713999953704956010551703476472576943174772579564639760752364843153595388831207222468023963175434759845249734546211678372389461463367454446857739617440493615458479650322986164286837727654707459845654479393279918405983970034172155711819409479218207415808028669222417184230278880136371804619386372043681575745667473096823717732679302319657098802246608375859742791458388861579540183454565416402258336077836899680740009902762830057393452837995608110520925519666615348116146931423872141194551842421090149419663243654876775223727986272297503527226547386152246187769924503172597917528734353978147538402301411095991861075146797785711845009785411221025220460736709179910348164355450629776886047152308438274224522007207410946032190072734990965579372166534123474352216030662852620711010108792129380845973271812667749636399386729922541701319279135473281861196611474202856775981123694491653999884192343077472163887477972474966117772757301507887596561864684307488914970702462699922139110478265052044600580534626346384427152297282163871747731023376183355521339419266426958100289907335335812174474196279498297142308169079504180615870768996913134514442757717499709814312662868823876023006524450918962249595560274020661703834046761964616769839391356878497593162528342769661096588559022819426355824507406174887109766277932894532657215142615361401660913277841861997895372638010283888567845005891968407621981635825226791615068918715987113703268873892393722973374053685974740393817624080828100626120169690968859664378743117131988153689720890714453991563156061650102865933293127095651387552977559792156889125301722988957304427133646299255806547313065275095600692544113900263587678479231800279116686989424383734165199983955221900989456042393675134286145914233176027526066383469919657987986564212668605842000660952873534458468063884815612227583335871743127493202212475266922371189168640910910261765641089099234923264946153287557857133244469073828587416259957550032782415077432572555152116801160177501704974650024310571999183413134167078270463767242318891264543195044371400754794274386622037516070690232931433324711069233889592656715123307506699281335877096200501756707060450941728341601277821352975701318055266219271171325306842334494052517149947778032430036036203664234628707584939078830048334300007509924101143843640487434340347291105423499542534171019102766857892410558601478028982410953954322030657846194854371394753766243793146576492642644049016344018110145037156130354391246078302884190044514929578371243300729628173789777261407065365246532724973761544458801929580191652153918197007399208782117252128576696518267234948342681788756362269739053958093407025700863796274272139710498588185634530955452317106822879310700408120578486676039219012396727480937424149529000212189584606359362246366772618289266731202377176176531730298551011795757875812519766205079023619003860272887088622473317480864429203925146499247154270131174916749465252587561554695102356286117049560435520698835615586497053014692476981846123164652995588083556568541093386337719122690129119646167511976816683953108869877423114693938666593812010710848483557361917609658462503627770770575457686897490840995275281705780495281782442453789258364028312825635784572132603548473946460857063804150078978797716495942327057338619830058813394124807977858590924692705676822753656982790921510729373402974834157496462657665969319322939178116526420429817850877102259718426081664687147767234498555465630353814838977312259473855058973223558443128180498630272403049257947616986855244940736700848972162410269405943922574891801920083974493889420081391764516712450589059962263366733416209215149999788508524218162009378899316074109747197023826760305459585088682514439093134845866738618396918513547942535516642669388178292804125489095503889951302978787959457592320655537107748047475029889332913735912851065878927551302136572679776873213636944473992843485013874477144494970579940592787377718472195956593132889388191048232532993381079786566413726565156230726760854193240618869196349023466446812970542305204396867545638557472805300750149708476604049683722531524435581736196071385451644091821546806906629105752191887503563060821137736576456633440940371597167058431061712869673759758095924970423050422456384937640361664658458920042561308585656676658063558053795467875561791828317089619851582714735178825068391825291650754824802557414138381907512088658393416674769676057994062997898490525146217219562995041722459066213951610661399828232200308839884509518385774806865733680670023432410121235958554066283683734919741438682174887694919352406224145287833286528742352213728406131635074005527648904611334808765851950703020725973835256339217670981673275049526104709367358784427575255856438328107437147950694651824138758162526440377360784673690891960501768126909091113250865678575685393191181457402512625547791019633964439300472694384433595155187183189414320271169508426915767829616661190812792067682228443765264898025470062684455863893347995749421533794231468505256999506221202106469916265954401497280159610285915315067941423653295593102567500702414301827430147862853167393460270394424521730777711980414222960319327889875384978723346726750907078368572234679345625545716367539188674777767908194398534233246115758702480124933787069344923607174240135992619980592712167180404063899038347482121811302794952550565648184614885272249054148301654002969674808412673528248691445369515763974802706705126092648844214745894569722434881651563774924163879016181072171253986399794576660302564701801284125484016425097857517166824225319715815313617345605914863694410086132746945548173912160109960196157218445577678923738004408509413476572789203050124282542402693698593144211288112260688867383372990649948275679562519759141756818730578405865354094555430966147723735247867077351907545653348215986066883046082582574711051798123769838492937819092894633824256656047055478912016416792173537822462536512982959408089460681912651382974365920073051897517904722586183710941505241078999181816578112073533031677573422744087047570021237760193679043048528837837577012526181508701693633534272812181100558669410182274774140908045208244901881760917846226988323502431790002604511633345842925243981848976026608405275017677661445525729084197761866357101670781924099822876933752797835563185171056212068777275077609655647459933503222427457282636931626872074119647320604671294948472383910004391370808196272653696247240930794642068609147066401737821463645562444266753858609224370446504553473800766933276199981788115940880015037170249038036572851162835168688633272057516668927133655868380895472911185151704623025318648022344336067625507512205014420770817129978078401108716068604849087042889416958124438471688572679860930880280773935303360928673296596405076918931750661371271327082524656147179556183778932804497312572268861303972859098064350567417954666674697143019112123288187579699617928311846963486257309475832295941478600572062857533634694433301966301572942808950281343748223832418230819051090722929955392420128406885841328642115589472171069063814295087260414483144170583688443444551365191219063369426293083329006023811374323972644978448840481492134176394422158294723561369702639051529509459785240943989870725096876846823031616681166834843890475480920714034817177775315717075445916691302595818790264839528470217548577043823464618374193662053270861565699756577189476164216377322070248940893059076345480065437742302369048122982603226945365205601451723781714132149997148506397074047711848789724133886249642722445167092488705712919359305743280605191337268606517159007283976532827462886246167555565074294612095330922396190991695483013785683557718232789779567049641424164830844954812726814310181697239747683993558827753173560848305922561813236282989108302207971550682563295621387898248141031877075340488591683749906818527157568656487184177549217401084287229126922699746275608793644551139710149249440022215765779660875511502621205053499179135154690560587067507765394479172041819878803333775717757118125140232870790645954486388257755793608080715734825282264697533299535172391929050905609562264170872231533368607184863883302851380503742270824164089915858408991133142672350510660223713707440270696249338734786973618416462377814862908131323748117305841620189111753192353677703388515856781966895224709705967584474638980517591423723047785107930764462321905343315800928245536681256045413741148526619883546171926662541046499639761469501412651438707396989731462112852789978776789315046023576585538092400557321838222557565437172095127912967842887589057826490104239369877357632811745026632022398468706719841696837098064016854702120629055881252482648897963422445704823158336323924547943297910546687447806264615848331278998369656510574348642775803226085694400658373721680054392637240401762005116604033754992407144367962771783067428164440482694050509497275201719548151926863869110181836706842454763432202428519375818642470157549685167241682521647854306194495020805214618909432996378964814933720474291479966395175567895355798432516789189894419633664602743547895646402558657835800488289383005407866574328173810721059142413967679081385885526449782857872429735905613241293308873988267429947689661847511249280498532709987794933606156423553536760250291429460192281031393064232291897316846732019515733962258287719482753298785159332230966209619966284927909502067290038966010825905156330004644021636790566179998959158036850972940797139239006305492015981045606801926093053140748700883993397681177366535473063633388922517821670456216851809466570684727176881449920937593254487498870133980679849517567196432858672946143936340522770641395525715706144885760598855533172949543706710413770217795432455990846861796040943060743083945331733519014979931577678921728953827935426300012625225859748174196522340397015621853468883028151968652529471594292295158351775362950813194543475789324886895160264447926982334200267547106593905389903555120435085066094906071730127280398285499798764739164257917658587843395548455035521730542202206450094700411480294923244502759543145373475420985396375897328316742215335931223474533032871119373613630031758527417910630360224067604949418243922669576176385240813401758250390648604679985023182410428365302039276503455739127025884904449551598943710117479535738834823683939626873976850291543048847436658120817933634686908763151454670707991931546975210743834656658818477921873384295598081866291398545754119443920063076617220761141632887051983521815008300304940719894538389043262351184425236539150131840264157481661395957602400543761226910852867711910623307304758729425881765283412568777988796151766067477951951040818377821199138278030650744818594559988251518823479785615375554799958898342762811978338514861291864420129774665817162183896625772787754772523910364234802361527342354900423476716380984417632818627644481728921751651511808384988056650342360597242775209915784160721933741978766321048049652955805741350637437686601970176408372435790721065135580805652825549945327290433521426165329038743307941803166791801450630476506559702628622942466417358018591477175208710782317203750431136396860645763077672643354488751154778362463457859020328187655784306420226510260431130301869899940514987116571023380503558300600646432177844861971264498941903742685116269502942460895790063328764054203647411849835973233604839116229796935127966837927874250059153463055277728705328019871030848238926693205475014450881755103420288633406389177780866834191245079289445626736823732409972596260131868758203167045434242167220152873542969103857334772806078070079171181359665325049975629745832070218321479254080460675435879544212791646994492509285214747453937736013177070731741781622922819488817911972386649536929518190130478809408988104078392711159097872837753190950391990649921360608261548130556330476411048525407651299732408261356251133729316190017554662467720320317661104754269889167805934530354952481161629757684804197620089778511473266788315656902241003930930868737495369912589171740679470666909569239755339105783002847001341176541975345887460630430615069215740824672543180834384827890336551908960669102121556525476685403674921525666813081678741776501416818210163841519959503409572047700485560902073288173186453696707416778990068927376917964940532206358644845304879570725135442683231602814737699016445028009599721708306338242839337591829860839386443267335838089304840524152429196216922782255142503102905686009553003496828040909499457195574487382027046208390055037577523931832553205479431030535101510075072180246335879207546696811255058657854257666938308913051751606270038882424657566609445577529906149035277918939476103065600380233874891993364558721038854492871998856848278627447387076254977826154322604993709327375016346819620330131775533335733773342429778646726369260254782917083718004590228826444495148760515698361717711957958209367313458864030734317704869531610195910743186154085878846923522799198487042735707932609656353280808850234410903408939842116595711248928810678704362922193043769413707485768606715324345292946343879072517613811542996905569477939061505313395582526930044546840273007255868748188162626210409026050845643767591636772627561976068173560360375886424827136563290486612872714948544673311617734906251608622460097477986900248335022782899304552064367299328092825977485043645033758210302196214625918327806275878919375978060643159834674200886553669510425207006233631790562809612279931723080256031847876587370392450217146313367990684678464413692150926667988997080405076927631593602458203017958615393860966061919113068430919046318815358915921193853582719421571243091712846945736536828622995385288346467780403441289175228199196910495386301339315944215281263057752821600652785966774173780425837057301401995948197946224224995040774249514766181155364431463152971705891467368157218545065255671953154157231259573473528362469881273248537737985132606059358015495491010172390138042911243203536711511374590653369861378098006731098686293316109271489955612630809374415747503907655915046988298365306782565383469481786610960460505644907572906157300504647084905539975424064573940889287648962591954336024433971929980168814845955940504761381817399960169909771638127035363464644772023464193302069194011185353683399326207747911233094888618783202002972960051010307785044713485399185061324576798706954289736273188680603085511944899452314770629475239571475550893075242033661981843401744527194492577399755219831544764088935667671574589774015101891856573248916659035501886535906300307444924377702128347829788084122862062611483443183680431652903108311940170072413482144909152877710843973598767881813025235029210612980224938717494123629317744506344103060978157320467426714476563641927378797967142743040518187156921129983337738291950903087557570702387516941615784349272428747743121643928435656411796289619255954146940877310077106122874889413807909532302799269695773990889162910505829000032345769655413155259279850622432725332249589817029804349978703248232945719203558291666180520190940001021843679595280917876397304609237736497412033301003434504944597087643040537095366632386973610783843351732733044530012146440028336480239482017908270788846566463947001175069678861274546927988185614893865747210066539201836785969973785709137880360254544901296293298223283273311914296131078362170684078333323139377073382362262690293492733634719625261247815547143108647307927880335752138190738775700590726878661210955608349656967423933547941263669272588364900377398563711338735732897646034149994878741631670896900094064496966381515878313917323446726263247661871605728233126807883830233224555517360339236564120835625097530292426883938006663078248920500689846446197599607541535770297974448932695664215328996603661651617019028194206405760005741253944859631903133181892485976360641263268908263133063521022719987814481794452571938701683148499675914645781704800801286189567035540724241481789331979055009288087176856807792060078587897529110139950173717539028930744023807593013223823743125483862022598211544673653885554668490577154322531834538687291332089151298560629903343802946134867696276506493495983014562425947767854114922012606685202180107677764754938081960966341973786548756347760552224184570055265744545868445631732474840541577078994560322971496387952755886822242521374926466204931857101118090623752307943484662195344874425861643377959520013597728584389364160249835693032702302432539562685867068165667276538861941533258765840426211102765040468130539511881594349266590163179522675917657800195892651704447608391260078305097460276216324267785157134448152114420360431387813363270894590977330683840772034922428043439979126177396100433778865233583142752620741002977764724235796451932659353207765680885904672941408192671303498607042969902541987807165286278689752137645786004423157185127447960562633495233351644585148543599426687046061329258079731052207799549908895723117197597732709877442274325391066757872803030105198546111942724721544448829831918962023777161288724271073720839916397594768371351977827797532462111242607299721600623710409107733847227548261400899791700207540818389338799638541585960196383546521363370442906019908544845596635729434708033299388309043763215902603742627976436393445373375926010878280843375183504466085685638291987355363345038542750658674937790797150760326812358961577370873892698652306614627418997045904157093625189383756701452121904728454472346748766475087658497246822056984573233001287505512062171751021986651503064765290119436077623209931694409366104572238719648888334703547412005784423387148449863065498854338545377694304936297237937026244648831065808873784229418764414105221934323460593561010809770779152220828553071205568707330992244950552735520957278484122158028510827472429192144856319082499640080571863807748960027439679893674761437879171761493176011768502314977946595727493383814837997551533890405273141970007947792722112306611281297232085542113530692507467232738826136841872795498693791280720266423267393060713068905387146777058515212566035693321635614880275591360377309131659232642283881686579308202275797325749796482589089242192077383588229603569989375532889000717041024755186431353010458063745245370621084328896602718717692951620780912321386937758995030429311850821288440914884001854935217125236541943866208310609246874825554689891333321040528025819634988713663250987422098842294193371060477492694222522364225832434412016009224772829706290911277105759841707684319887652395684941956579635236779518384920489288850849870053600679184631079595709280203879677204321369586522513839855361439531168604196072060482912044841655352963664343897063543586318365673775373381390633871761262891321691195771298800442269003857870496716197987802199622986932897863642201237839191726928098479070676130636852289200430109097299235350655474346259796410870001520235626590846645161857013615814149186348865127621569835041679318614859260198188457167269605070624511456716634011538697204501882051074557377675671295649445531332201577727071315624289090880260908423151023254204134030417318210478995637535528786791232419460897061838728466745038393008991747726078209222369996984000115172844100982218496835255604855798201282069131569583641431159507864935069912292177986544096747143306452744267550616659115073810029334830284274868557066583613779590518805879270388785026423903398360714485253903300304942062212463431002113233542647174042260907491119065998208315083109479864797478742903588577936428052591407651086944898770222576027106793954899674380314044115968414827245259663819657675610589908212326097596040310676542351436317128465533632607348848305563759995017797735136494811086988678054176322395254873856965043157881031332620609516357740980946365899327076912527568278570751151892112239423613315470008057750366030905828701079406733728374085237060952728844175074040383843893310055116282772135839405048580468603804800982628539385296108021824836261103558732682563538372404096684208819937868548318731325204938796418070034439320914075052258310172076819121795320405545048906711079077071103375933738318286057817741604255864078959184176551678763987656871475349091584151638487067933302499934614220667327547319957230079348047610389487054986472707877310018881064765412805459387836155550076599963278684771985710212336769122811393174531380896544744585053390886681366737082594030822199170077253684378340085839836596163656842649793141176918039328007950689858022271152422386860268673395915349066887998818463900226954809835071711538496313857612539888568439263119148638073818485413742729128564769004707535005673345293246804937206199964250382811310997121393045030159423391802169066118288237532239531625379218185859769853873280298173147621106387352465925741856357280055620558692205729508607601185309937540869359555371796032460985672032404528513246485980068645837973269423866891593245560365986953815090707510294036066263980864344996051928088947635682841070632570492043555037371099060285743684637060949017869806659139367986088963668429422442154833900112627154245252931756011777962917223231829119904856075473917865232766953116136463865975254779703487847913684122749725199724826560650813682085570935634031526133400242944935948146331555768965778512029303676236646049664858472699108809468006853194130920434563714217442599900789684202394888814430286593267312122900847006907227319955296053402841546666521272036299501670253383140612751264723697118251630544323251681445909595791812361743123665832411568666215747003035002680873372908815763784992354321767028712383826672020990370358723792529140404922816440659398192647293701690451006719350190036671673744391031615271589841145886526096877171994864446282818425306301781831723099980915505678269288526527050123175740322603070496683451271559805886709741581228599060707377300932855939069130448491334668450550522223617393399387537640915795607310123641101477604485144438297335121234642958154733035003986507782084427036975471624025987822776663557207289204203461190014142749434775880128819787856252917644039488185504182901230629785890231553169168518231233858345584610264372034596226361310660315636853078147917405255612720305865074420009825323079180127312133522245628850336911719834910193829703191679194794882898185617978543589958710653711167137745169055664563698058535279740885781601105657647315518918584260217946499218180378691472086467909677834267176768956605876325356032977800011889973570359925189533989008791342776187553985155188126792878074931831824370820205352812982205935653017401073930896043984533560670601084934691846911119866510873505805484200667681056720087273275114117790224588648325677875552125393689858024884493495227157780973374814514316679066080126727572617934323816969850773869601645469020261967171901382779647681004633081516260363249736571786767941632747442304856388019793641242651516654313207385965157915170503134681856299597026250047959525764959947758981154052508825673640548878165831153429345346829956812896815338027252004824400604771736710252090412867802911817358595100522999512740279294785240686708654588597978568825774755663431710366499075913353971474848040038380354596698500120828674373990932544780886645447586937046254620826367296120956184268595520040494986206561516151438777010922100412852147791478223446948189917088846293950067344655103617570129325317409509511571105978970764197283956774441768490453987132537031461946005944391391538473246316278845221728979136203273876229338375521191965116961144137926143931504876288790119165560711495779630174116266349960964393893071265882401179980548246825481264435936477667296202106121832151172679243632114493774648595524242532165307487471783405698492346108527841550455397285905362300258305719049939317128056123034815726703109977444740549149981149455706558873285426780860175459832673072983566397351405282070312448192389319459547170924838462855311901965225009932609053675136771635600622597566681936429634880125786702958145036717600151477837374090827002631119499538228213168922641621352548186549695417401928302032334689514898721268154546189656263761984330194990155594083474108834679803721119345717679553170009749405367375781744827325749251868981325594143266904356129356046068249944083407815940249513313633481446428628488126292425744678456951334232489471448291937041833095315181443362853192862787453311771906625994234682346218143270385843351159840707277980464039222967746740498310470038582086231782279708619924792248409638989119565939458597875446712181831059062538198704158299564836519678857589246663567157066627807679561926185737331343409565722139855968850892630358835303779367551593629331399152311348877193607717746059610218708339530820920395807231683328358756295254955116238494098691485655591031353252814465662572277228081207617510409430322402789265232999039309413471174489224173931015161648533052279481897915720561007264055908115267512834982243410451432795956540112257578807980983968853556449394636435069336282097064540281251078244430519057243578296754741035054930156806696187460434811856045734085235537862178902173210956425803770809845652735359808851687288461486415374587584908915421596205938179524819761425968440762240540053049538301304488544896200684352264026071001671064117959917829279205928082440450042637827410324260136192612152398323212975354309066542546259245868373357756164504634971809494077319176788739116418939048972269278675554455303085811490352066695751976998905580119396988407740325052394020450137339113603853174602977738176639928204301729594190879989417900938531878923918472299284389456400214640407067287269627782888816848055379638131496427455931069761887706044853192365432492624835424858637861222083746622136344592119865294192132748299560300805864800235174953793312723610080539979419349593386915000097620362735482333006392031473817686773930773827603318982635836451228875856706820845580127476599485697314474242897336852002844336019736844150683294273701690775046588342395323811092708812515545390321389619681296577703022995435707239698162229983048641477380394019443773053350936944432784067319148496303088175561178095420277832890489412251533094182098383976905043671209476149858022815602168851793162670654231573082142861645296731016711380277304622372933102867388257827905365221845850181693970487748420250660213343034108564099569805702464132363134181523525925291650783199093543205186035870022607169461746793074721284939733857715401079410915470606193295107469628387933277977980414866809038363223952558369080079381862033497139717863815681734903966369924699708208228418252602610244905662716243062791990617963884008251233068642212307170323753375793650250100176184529487678917853801651594779016923029878480745389431408815711332591131571508598280061721342347676366181505784782201022570165296007841961425627515960044561819513849528662324065292299147366286005110888689773012007818326184794267631562551186974625841203502089534526424979825839360317483092336467317556009427649478959306489296189104375800409728833039373470711483313962267906945828749573745010556184621742422217004991046468939928893160055282900451157350962331675182158957233497448536767544701514229438249596952928366485778082501694331001725611999308961814893761648187693459863650310361876229431794351055826814281510671940489643093155822389592675011752516028781624343943881747626419579230567065124797075610402594186724922749077049948281344778558827900968325330998365478574391385623573527241475530310125304717317944553085432174860945486576103953352089183913561232054421454520427949645499967372245492233415307019424200480769551745230477317288837020908252325209797030648751552930887703084743458864224951362600183796463498296250276983408179146682405862580423871945974029303803874670009590153879258731065946978792858336289846296194924065222357232863720849540075253088682851233910414578897605751657295549101537556117260109499501343652992682719996604302593573601682490925403687727066116351765869882509500921920497040769486782145932144264028182965514452147762024825527481948159195384767772660747469055812045421099013522353388954938803159403279551202877902159285989496582483122126849938790856339993656262506962329340196439251951888561442037580091781944508506406577214797794181977311686322823953064473322027465049565881608800352206857309315258716213793184002058072973721384924504057173616289723392436580010095323162281923717411499554233937139112220780901677281084172750295500542028605589909464307992229144056247690513033097793757579151128380384481206626563846741184162579991469951955550510087170792847010125729925952141094388745442239956966869521948728406587182685372854711904521367825097074217438611672673953056358064460650831269717902717879966687516184326315799221657373000132603410079982939194600780471061323664086864642067793940478651852305451157861001178190782239006336903265339202269141931963671980850644361941207813480177193165473411188055827948598153008134161149645485219903245397954368791772061337882701900544228920164195707184030520600476028579322350010104869297882668974554574342315219721080749529444895452264151427795465670951749273171195101523454222266616932147909409148835686848854167367130517589802911733410606053702229841272537595192189799516122028949841013647545522166534172166251732666822097799815845574543731889510814634641663274733922655428869639289342457343870110723550640392573253940621689468197977409973182316812219498749374971361813070139214715236561319387502211570654081134058366075298659229353095026481493684695495077255367874266309932970952172765237592046026943154680187629006723451299745095110240848646181839924975164750308863064361080302700489087621810645125167933573012496978237592178845336096923646008646364099954174351886903847953708789005526424808441042866646549891710741143507543109649852892949701942288246731495543037173712587554329490656553207324566140047175896817981894608683653494173046153662425245158732668317180304218445223519048052770576931322995457752570221309853286667522728616102155455758444373631109796603895447765272070969269733846274898713631396517605570450623435379528881057460714494649291611318054856868734665460531736210164247920735119674590349327899192612695731268888604297135058818031065231841877045440086616361436570533686129333401950737596838925323342050498030709503867431740080038610301558620227003526110817005560270206704428572124720624982994520768041943731004862995084209816595985154041830775563708614329388902751924671336289356797476625325505580815904981610408354051961462835657120634994283870889396561764187604502648029555876905020375285222007835864051605905628522656762174822098412416972773306750339333659473343546512973167643495927962384146206350068166157755545204777471801450867276963505204332243318408108755830095547018714390129932836202021431886899091111219106567383091852773938011286706044104958638551651176815479812904095782989616137161518084867380696307160218191870124155898674648788596406017415431165266530088041731828508701349775654077560184015817216060855891742373539680790933164401952598082222806591405747696763967785585167909857146020285573631943435147553873370357224630627868555597789307001322746293760587025597087514980812962988351395114559961123451611586702129961250146135221115356143706462004820965334904938786051997026792871611073593380567924954448312692325437668539518609543389112877604125518320057206074327118134004400390220117244459801582897318569886151326159377313050043519404570738149524321843721324195548384065682869778218229321026451961055545674686723190050336267907555391798056775495918983232288126089595798555974803051826486971625874015824713457698074778477754094719934506329160348233797891723767757602506331061559660279736356103918498444314238753232895115620801680446531993013710471521760765814196237596024199790145759756790493137426662338133479392436186768103368947839591280817334788547009602145802386503124377807073451168655774925610113246869780598883160214137363840096156169167653949063914493682161748381393469107606845753831685125427567402436270733592412134774641279017357669570562915391168036778619142400114518878028399687803173548253207749143738551400539906225682423973440584108064448535362096340709382904260400417415621366587459019459270851424756376148258948316082856267940392894459529176428327784249880838683450142765185995793090561179155668697263308039625601927331306699326424103064681363778969329008015731906373490843165834945493856342784897345212841919891028197191439246964960256885586256426014576851945566535685994158768793500351452184235166230849301130142743687324172738735756054014184704413765759654714160745863279108555110117960338612980607635955309742146592580832560429463768129889305572151020121245448657154854723462414027542015489107504052429086501580993177938363841752907026307326206790025147825856537677511810388968951070527469224839266425416849724423817226493505732117445062232792636837671792649766640161566885785802724976885397068861742731325843368371573193098377972262158211023936696735041466019270650519249714056652542756340607292176694736178376248495153475967109398288641255718495581254462141333688194596728371197232867467521954629884930809345128527502712738838090763332639809850895326663310711144671113278816752867670722904738351328345204613640960137234169814442479583859734408050099697037819078118064371436128506970314455541368787985887325850189445908990117397049102232349219881335690888046163292693625385226460221526415406101177759442816001623867657900596580508929439625596487049106146014667648563163354704052830607717458998303711644405370635674451813574604555827332346765340151231894214896908899859930853455283354265292717977358516050709431525310092658084494563627431096660925066701497831002504240838167394484718504886629291963657947005954714505454384447939720341207672914260631355703948335012743709842402933912614332067099820476163439297474095766554149817060277489731418326466624921086498870328301852069682695792019077296503421182069292205202858249038190325919874565232933031316139854410367539084142815804866652357870770413451825176915235586163638581580295749996060233272436423321451264369580885446819021366999982930358864784669337335643278159453701065533817347165467796568605396839778834822649972637843347768333639497819841451557868706007188894260605902619139808461954140765672287372448952535244959644303125749155669848217672917621692213259401929778783117033817454538235677615225710448735448866762708027842176580426858207508400434035491712635941699858111587133691382089373129591478953632942626796105113742059635170771521741210017528318124280895093800212819959290707159438853795113131086150976759663991869797340540698831470878934460788653224863531391962207459609783065743386594549483018918250247866984521638661826350843043026564381629781644452159473950141048107634411377689045916745630728945627223152587851129943109087559704661654048413862729464249343526936157920630453666215502111862475919460730815774373704069967754122303305556873148567029268111457365301085102778151519314800516204250391988183167999650013701106282127982624095947437423105538570213200088482954931734567573301827623643026419560343067630426235913964351114524354709054661515298088072032182657382278667945997087547260413203738685630080390320015820774516908119742151223945258035776410528554344151205271198055541961798788619551315156017145849800495563208701795874478781175448313809809431284259435749056417452030573284465112707265245031446553576426449916430335958188439248004691426052410512960687380171393007498511821335801598559501238549227450614561595638581769020498364657065436892795212750476575037342608042753882383937329253991918034181515030210186362691598164879336908966391684732998568273520181902298113299198854066304516278246384985401111519237588660758433675135072084347344081597989993385727654412237102332766259017720445966348799927123315138194378103616759687001450583900429015696509379950180139416404694347246018995455834982358080410749392879303201091971120710297018929384858369170689804565778882780076538301148239052311942250563255478310403789470451564373335543528055470387340793077845932758711205730736885216589450507010000083516767935057563470075686622186533984742891557496841492607338159630741898877920649578441952693487795720363342601957136469168987250944035123181140925723628941803585240516201136478274874060500242756344316790850379156291497245353596359254902415792465152258694141716768572656355304243050646630880473880284787852876231113282949731816653670097997493146519424093379192513887036015205608592639517287841635715262224319700940407741021230266982079761061072924732760503833431714123464861845785121575857069920458870911519614300728743637127097574793946299859092193578406667533592149991741505799064243498382772251509088459758211742124842668414728513685201149696887028013924152974896859747088844155942541076453761642176239247341032181692890452180393495116483525915188611843384941043120859366083699000498334037714416824465128936432652707221383287719840096602448489135371995908332737066011715940036565335499286310682387522948264054277489117034342028092416695886907888183102879675392023382470618199548042680443192333588956631801996625287890962053744275356395646922849381273143963013179650961687319151703339209394238421225226745443305526080079011796819647652735706966296163939550542520554654724058537153850490545519351317724685901824383904160332992609718051821665555089425240755898553401071528656438871305282496593444389948358070192532441295759556180041326722049952537958986813458903745676230420806642999259036741743800615708966180768339560360130329582347911117494303612093136309793878734579060997870615173322337452054965964111608029194451230761664181953791157194191984876403841583963773159327009573371604342532009141770933451726687128807920431274274080726974649812091091800885373293841422220436274611123834626933548907327588703541018859291023618793994092137603052268701235545195912925888624365036025807884373240456888413798554869769749742592038256664358878070822760908649535709767915721224028813293277699974145484296585444923808274190258549753953994013455756814584626540826712728868720448849855398007139169275950406993620147764579810583290157138539054454915598959576488533014629004113037293778144247797403228949007349063499286838006028941724187733193402093856320530034931288484588920355125431272858298571578284556892863221199239985011381716152513239989082531852720399962036149509880449669559956134891703342499414163763675499711474529531689074266729364554557449802700832054204544022070934318338393922965902897381111918918743597744517352754808004040946431804970138180895619594219888195433983481550577404286855803408970365319672433987811156387800150330310660516120639409435792775614032709091161616867148446896792400749653446316879151755354405338433649185547384365132025471384982083861717238528768512449192491312648005388685077647203731099454116277074645609032043354545057131748506161748881480216731055450670794091884060748258723240592413387783711136815873648206753745191202937757278437554655177628668070454886043287847664089479553341912716918726492063576445185816451173956441655619744211791013032678547725925935619314284355303729456872124735379061492628830169185749421605759124670338602789021477716424027117441583865978847073656434232074736749860785164636542666120270194163887015250465481455685836150759884950734290228870064171442441984272906550924156147650559309112371491842021192223951692095995940203633925678706981010722948630015023118112256094284143127101420270365110238132209673334357107444227981695136424705287284422208204259023211003003610755286381480436154245864166026160110949608408649898019906388917472274678826970325445662209996673985640039697759348760079962943764016994917238198362221746076711255411259687476867540057250881909658554072113377320819089942555318762973197784469793612908690458629041603219131774802097230205152005377397657629302050407440458758499496007203030544784920160444214631839306308943162958661547019031285007347639945248088635449546160470310230133818249293471681947664676920781721757609789571777039712382877880256181936012794126463083588145614776888566091643929948991261163917364512946846919238671454193186823813442506441380524009790028267187753669165720909416754386165723285763304176518181699170655807552717213829256375040822884271995240082478513463549877120816712826736461148112945469600132281307045614327057445867607804330283913927532469493684853206153572188316558697768934446834679251077690177593937737157654318830251964004820676963440331985066975282055692938551334600141888476867838069676392788701913679643358817079886808564855405743584868831591131251915443473860756498646338785103567937185482484178928587982482859856369646626000654997410806489053648479030888351853441349549009854544776661987316044474100538535365733518930136566894037211720065264970271808769629664919257691575662468903030481344980729353205268166172013313665861485465624055556113985493822333071909418658352810703091192614738233896105442644244454828069750876761797897587529908178992419628193543431739152267412274461129248722633956499011739205317472840962769318494327565257239957149514470044283202155200774229917932111662782589284154392702800525198427639949197027759663794545537107326403474135759895734916188821231570904391488178793622928638836174458432191695247738362261336290107023395362468765212180593581777790497351084626063235718668813778969435410530257663811105815859261865202223796815013586633689100501758233915688268433080314122420827175619721982594787049428999631885744718855071248963943627557938309031622247445196762728059687348281206238017325069283251307360851993659101536628726606768197975281470565993041698146330761536251725155806158078168419990876446536982331694165320303023035073585727546972323961435450638623003367992852648634476782304152323986006179183102592078435022203035577406582180596747087922812850256424682678377857636444495742167484175412016743687574746690888857253455786660638062067855737982812982908639333363678339983953597887979353812055334359961118291890374619756157948956438257390122438915004772069121319298608922017700818243626222474485069860247695363971875244734412065455230426529572186176529289709608534679848513524904905030592686966086692992593428746899327693748442051138867350145566518589089929774652537168473079916041522251143251581392375610964762012498023152711908407701948488695658414640628381447400754751279529910166262311575587741941530562486112688938469698384436806827941369046687589449992294343016661413553230394537793056140702539212266777652529157059915152160351505276188358806175032436947668091492298551023043261604229780660330156772098492116092736833998653733904335356108667124991703444394690588172765960072414659931363025682935656720778247145887182990422671329582455862729075006425730905171272964142206360534998082622000874271596474687132899952990271775610461655941550463909427102084333441836351081471545273331160287105519432431998324539223932786274554110759556187425773562383313839828247842130589910942144044490792041450128991049012473594869157447030122855545153890729272476195630047458121474530471648627296275315520115533356272654339107175062060883703680827310227887541661653530992377511179857189584863893386483724149194976899357359352312483855751766377816834467966514279298842433763839860143022005081050297350705148924378805564727798523669344930207508531144359854972028131152992388877864710856415678092060043426604561117330789733561796060258488193563050054105054976060742505204311776824215794611121038587671406580998614486913945138489097760924598053452411183291197728677053032104797967212354714190290607368002641313389816491298753613700720085842033948065737766612702819202051934959223221651946848394997990988703728462928780464936687055538225196018770023101387955178386984132882030368759224886643874401564717884532980658302399552734002123909469468154946839933549926886521710173259412254412473304015189217776235919479544285415439856403843889106448082434485151788290947704262223059358175539574637522072111185332481349313426714772114969537870933384023815736757712024533241563312114693707514367617744206854387392191825541679499426321712170536076253720411025209909352211505125927506188104436656176849927677972380075456700628157331289062371874439538496307874594216950970998407020285845861391174131084921392008541328186056203253653352496643662050533067712908462030193182382740404653302920226670249968522186464899030152261522369539834562165717445835450322776881244316700802167212703953519589205533351012336327047122402894711336607678631342096218141641393895645210330276255803688002398214040845529489582122973954672188344091937666081331458782668394954202248607148119137578964444197389035045587609740107218673197568008930681748096215596962292253162798519917175879718459423085449919951148109905765194944960319086372934938252625077645537398833881879581688997464133136398459235355846306453492387406282039390735426718818577567981272955898560129341091079924692051614238309151352531697809740858542152886294906516927426903799864645945044216186020450461574264452589676868844253934279899198226130336140367563140631213707223334780826313002003806294797637709088353074541848571572612675642439081520622015768088020574775187128478440902624800647121178876926089872051865226729048699475977584169665501860148436267661349576876789290214828601275120480436293922899382622317755259054994350239768671222578247514258841427060513521189747250170235265796582772025926971329925431593120439116047065872576155368618377305439495533680544885501916885337644246429499697907202427856180312951117669871845368344956913206087756640547222845367361981229506631463073538151526844436255259818740872313274424036030468863921905993848531535517782252875602255986817387404275156172409471624148521490230175331900288382967215401566977534980273667111329259110332627615846795767794417324928061880813714945241138428312798509871739275501788571578774031487808632356279279480884254292782643710771593826161414050459304332246635075533083760567385995446570103249992424599159323197086876016051364754050279122900753317807003706682251960782853286770322321566822916702284568175193768132376118785373641795605770681541237553440002619447454404482976818384764348352998253088422516171475389754483823122294674348689235114623695709780429663064321084799210198411588751992955574822645930484775580747295051832910620299597431989407962608820908619025074056297814137792962599261558493296671218390464391050429063491529212838138367677835732313423357302695449533373817034913970210630487894945660833306037179100027981436474818777199166929638313112380542071353750170547986652701299976263570843356915000918448320552693596998546168465277484806470564196183022490537800720529362104829669669160921882314855898819394340879585069648574543738900443075105911496500325075964503614551152586087309233791913102023448092197196900620894887987581476158894780769631926623638137443517682093764803266484635372856726063821744615396269241019793254162055098650730200474040267160636306993246891998526090325707720520812143494916865119020530778346933667212448919145679124684920834045382044284231818324619498035672421805754177474405546806138309423599791083710026313644981374542929455414700101695779901111066487287729393966461287375861365567972444691128582876172978017435398433882073172682365469525714719872991396642519545280726870542660134487282761387589102596987426986131400678131049568589615441435213082034506260277329984749526941323667992783511013073282123584814228701140416356334294243951598190732698563827924234480362894292725803908138655398089410491738927597384603344893900199856536991367876910679017536491823031159082082358147719922935145419532321204349074443625056929204825693253360813699051387419243124953580672992533863677966515397243876739323497900154715217042004066785445648053129519062014994937646051312164392187128750415537345682190321136457384306587713000469719140064211401325556635407917682317172738176032485356882288047135798891171669298041383480367947133500673907873340998253597917664940640091799186811872474293683453255064110497621408215294595842930722287430213964938320819982346361762363706306770673320088502744404740501257342058356749897782665866005058411581629115232055018865924696645032776737325936779658349441580937122917999854715476038312197792455054933905596781280868307867945584093550332715115628260927262425343905192147554387162445445181568888402605403569143982748355456497452655814255539688515662432406282726500938870005333586726837784267571957604423029403341831809049540494121321496907330569841420371234056524402156309745343670164968586116095562683851342282029326873208076238968376520061989210935561484496497531585584283820100805728171817452350128716564643260538906649943250547851014732468203427370272491419298307973720098349549650184210713784354909292294504875250087377332456303125961560575990732291990568496087630139050539424702351322175328313494928031602606986738568886130502046893369059750644731296948929875235408520154271591109648261212917641262167944476998998560258943670147924494322321486943822973808970335216028480865914149112961420399415601942502897134583358391442428343108461170627995680295040062076351297392807592634780190638640542844314634835348634745053777906580069263730725133907424326510288956821298703188317715456957457066592081597537255511703621374238929800061847089711736061975769042304881778201502310130995371207690870224070767084924093489365279714063993090450201165408962849973459733213220135445538981961621655791214935034639459632167946851117912288192085478609137660200799917759890250940854320743434587080760471736831767449374477931433706576713410118061873451720058760234332794436995662314042511932845966951012291554542911985011524247340954795571459717517175524673439492095685973591647965249505853754153022298637128110694393811768830835050976660444901713288423862874612192759678235541011728420371369529766033289869461740237354807868094320262234690531596456535306263609035440329448632529085219799271056443335998919316758403452950660821511077251067375702998683533445903864576360234769445708472408179868132062859028431084086753314943736432014837025128321333191930752875461753901959781491465561719865018723424993310875227300746709840621014348811419059939196285199452685276286385956359316500233379658572817232832171748765918278066178045230953043498180886239798623708647143898601997604136183730932035534349470765248811114744664557917162159859408316379322309812344069262108797488281112471213072454075707616842697076646732247701524804808570111001343299159463246994808057326288315510836049982969644785115116527190643925371248415695895675551530381335428557024479274927439753561041150131312662927758816708498271992516053377246045065361061914113043833212001169325210125011218097352663799525516803523064033456869777913365488003522353606094169416007265811500154508751931365997937646454261206129530489676073680683577604707655226430357118591484470653987979644095439565833666303037587958032593310096122484112149064479758136694912350709789851476996660026103781328894653835390031800197455905789724384197795504228348569476624340704040541976388785774737199150488521862839238469025133259979269271819041445727897672409193390426250131473080955048241391869554725875643785719429960762928666508204604099691401576288281480816038946021559479488742143984556846749260123302833351206728490465012488546848202197631394654226749053208800981750979884108843843186692708141768688577724686268895566589697682482742153875091205161163817600935002448508183029205479355024309356645360354201254059726086755974383347371420414697647269130079187566824157179507915569518824892795488138043046500125931274250916044639479833581968312241669499606681233585301206819671916141654403565345910462652737773826999361680599199725317598626842692364417646783723437920563190664903514242373637970108824766114699393021412713481330255778572524138307241083777539736068550403066686520862906188670440613576391575854453349481675654160364685859445323143033403674137484420040775849961116007934970705944323551230933422028833888999613281420545390034137786342886366774265935618506999617208366367246350253812350747519692860786137223703045632305624102958974009609021322538265944342489693027917753384352365121004626140243291824953355799858194172272787194380189255524207564857500242967638579213290637979660276280913082320831566000335227563032164973714755007740815116300536378821274654664391787079048352936486740453078127034144093549016003144107755776378186214511164793103499292086908796003075880136477718697632325136847550739515595102128919599808473497116325076871033595314903694700231154502003370437471561111173560860504426595782996919753313641229491036465181765496282811570110032595449942812226364221007270395775662335938864382208189625493323738243183018982145546887042108099141356767189302334298814998713391938446409969287726715321832623495782296325168135344247016707900319941663839409989471367700499931115306001416271639088513711828548443712658818982146559787098961024076356056476596846548349804077889523708809144830680934509609583722811158423912743683432950103692296490616034737982271742108482540470362673891470294971875452142188456049151157208679360350444799319714375587038463896633211150556823811948757099334450341347153449268920101302247865674419498061447053516985248542547579322763270922063022305937540756886141064684215194633710164194261618572746670731242087777582702199984446446535047043788598417105221257883638753898836194198267728863163036773348706913685595926024144718863946728419402056177608170470709996705899317529241515338301840557623246347129378945529664580997978086016970189970424886013939085654936833527144828614450011031047301236594294339546527535206916387134703526749117885922535077728122011006134377519165795306141486652857498338934547071946935858653488491650833363192013996834731058333475770875780791777232226303298742314874699952414484062705692155391074577895866356998680276557374130363772411281388714315249902503450157083395660757974684195137477125432249862658255383593978648419343479019196424857800945344336358998221463782839489166236252232975480320456273698463184416146451015881503143714153051377303940623963580311369823555949295286589073246687553769511902527491116880977088544866983903202577589317327361272386135668026809864034479641274525506943777577237993623305862604733918791925532209009715488468892336456937817158086872007236523530591255993904457145163230346336854746747308408117464465055948974270009343124039595793148329450768482575501589655440090399410028525630455732930482684834547463353581424434641091156149317475828293659170574993584157015159065822234161954347982814618319687256556096765208133357642897068796248952362904407736055663226336384437294377864713349272727166077147080950590831461347383358568945917496278672884370385968911996225391972007270986805996291566453248734386865924880773255289534034002747690356919113792240308954091012566554299737973915005791774967327608896213965427208145117913509548852613607260014324550947478643373323830764050597335575358075568671791023005918881136135730006348358459123915682107177143157777988756723333918924897253899934910880608590463068588216875124339474827015627278839852987903150342728400638987569127383677799467780627965847706101160045595301402903512038541830329504713103462914005191951285605564907771988458895899829234694463886195315301841987162988219745069099971400485625276116618806479592224936464801742332965607194037851965468705296728935186464228947438377640682120741873228645304418455378183967235581080926975154357016964063621218622367400546806993518622508171196197192777657191354464729363282070949313767882972517935621822954486450695419063198243817551575431778974138960372659738795919754468281016622720438568754655375322595308842853661124470227247347408804524367085398687342674991783836066635069744806233632184886900045969467298813288290405746098285051484274213600043294542744081933113907443670892792467681844906648799490437270378672241447366734632821992912561159443489874522168346199269852886996745385064869939656127640459242862070013483363429275014755103011173330652560878259059739687384344543849023909529495536292738423712209688714552113049814281658232360667120952291094923689690975208749137861682275941885338469399625246058966583109032509524886090366677444616420466259949582410033086994167928096038834431622744859567586850296198481480227757661454816289695879152740771562370165528407892672670288763173963528614962892879208558048546128457738829405562550708526637948041084817240371462813611232110343672954120351880011883755455786128307743591972359525290928910165760745800688506302400117709419578363560809729784379866022151887566018125716479138152802205939990016531103494438434292020810935147888857937866400046788612931665423644940481635492052864006050459594356806083305167268994993657704522704971677243249589688856626169218760265953490109166417664355009464013843721837750734827411743767238771361744860269828415429116585625837217580572652251250485036506037913420029508796302035117826764214935293180685282680454332855545810503992411769202901972566705835441598691518409137208876158081669019298367723602787970279873595195074219045536766852032228662271720697480000286953722806226788660208703848793782025027676551438617106350769738424117290533080052989132684586926890424901446973999521527086720786263695210948221915210662992383689236703418981874881703054218458722418195110062958850113828324623075542937081225650854915823407226138684130081513704511605721327377408765381073704379286251758637209663223030570932007098736804222350282920025462040443574588910801861762510722529809388665239993039900150131691259585775690402249156873760640071767944356852571841339875101131852210314471089758333125450281395232814730742245446781799404759781291189347075002527875224473545033607328054483004233531206676733337265357971956886387560648902419655757902757787342427370569575598449987514875301783878997640888105929830858693918196007453839151730526259005163352685106815028518530126998337956888106988499107241914772220147317921890991708612882279139501946782816080960579471668405262403619500743001534049408895796013594212777484202918600872902643294554435412409055077335837930995529873283084363646037467348788798272955014695784485465785695696381061854777649413318624942202925886260101041343026282951620921589455246035166028115863998761670105470879897564444104579061818546931868918593133115355236926296058806065951843334294588628800779491410042015041819661942683143482103821933874028790622974997552058759484453152152339705113877883628414637735037070128583291917919421969004233915589497501112265250986911727891089697731552179347116771104509821189791672444462431847648056216771407775749877163081859208763743581007493677792453862154413328432798399487869378285827639788194386885450592039030660394510919063735398065353393891161730586748822376117173386922770200953633613403875551225460616443994010325030586470624383956680022977610367375054257005067663907996170360545600556720426527392071504666453360786070078506772428985301928442761103855200054825955068476275295275715277037501350648465985782992817550385254477786084293928527115794933328040909295772549440173310419919000774762048407721839611943488053017326579575462229456774872799882933710636206056581307106911904054914005135859453462275076535471158310953023582296713271030277838898759694638785257526118295359450756854473046013226735393729293836630592475734384342313215125857148884675838664555448355426003076916928522079705554269317271992473149103753887867139975895355093344517007706885484065710883314644005098526427434572838538319117140665827804694808894080063086495555119622079984979219717477186415831816135150368174458787714145159226699634592056878290541037773494715576340054021568808890221156863633653420248158574443375058291120859562804641928145451258708048528923511378005204838023990613513404844780314783689204094589352262731762191507787671008329611480325809664435240073472257298675471356712827130199603374156306069579022872389462307397283562380179487279124625378376042892676208466200635885896464993059870839863331843401809772547821162726684440793566044285936828443617148447557681344255781682185559981858743804667848454698895902437582657543430601229290002746980501157984097166167077963604242629038579020513045300979572221729305327959139859551493978540345520220335703283426061661777726889269834517180099175891234129238256530434286419093055958803897155603513024174903587121774423616837809311402237909486356895259918189194920265357877430361337843023785404107895910136957584536831829146734889564933640509976861014459954894815558786376800209916881871893886584285850884373904183373742391763199265107294709687437466206511515007923732253782629984902431785602523972006490330380289052424534361033570883543869598929812905445240099448902909362708618840400944737906769226357031776257761647293431321181998746380561119542739786353146339042814112700297287104687866845550050915211029839575047752024556417471433942402286953957992495129054487579103949000460338257704452493526390997146065594719677457486992866834222495843222972379716997396540281937875461371889969203608296972017359954715713806303017522068577468552689263911441290108411523512677525415929649738382970974790515293180609988790082202999027180139349562904811348876224635495913666590757233326942903336083256369818381766007740952099658124907973605236286193319993231314283595786193411775290505465907498480235398943969583319395124882286693068908270957626432126017331178614565446386159130815231557454137645310626517229967664077495653767150432326525200823098746083492720008462332538970450455443270877943363896725288695552246135037477320638398934242393921943945460383965600689823703129668211650093055649238731721664939408561207409018031794922425789868704776572042865374730912248799444840211700806117087446367401670652544509227432831072159751011385148911546551242245155029778924861750835989606437142334336266137613171351776949180048256377984083830162540543660481175316034782608304663967906577386796224542860659459000326335845024152258908515278173704232073374480326677305254858926420381087297464067936486252682603006739545014153440423860928312216108125404789131012184977569712069868665974067128214693135002914957218486629364159674471441180893139483213813103269661302437098861452475003104543942142031782152402301530078068672434866306085103586629455308047913992069874813825330318037106734349295962712846216196307772824610263346938325091838319301670874839501888250669427358078294359938748066266790791575157735619910930954204793658068361680504670963100599749087875990136449844750690102308088673117367681868447950572317945236069249454170329300273519399714606534224626195530495320351348265694423456457669714307402600309452391373467473134221188463489280543876392532938637409065723256728297781123734554374312795809436481705701940781965418724668686637997264799501976521861323697059310139571589310768838952191255287999455816815537609856652775561943402063157118800276320766820034711814918094921068480780701030406840132110070916656547104447759774935221393640195149908559115284662058083722255274074194067966185432926103497386718940468055654430423938869588168254125103814742419404240186683137748439849476550845827524166448679957032251831549259566323343481241851147835568929696858528249119216578188827173941398374154989417484483441023430337041628023122443845077651920275805723134485063117460402950486081900666733732342625650657641869763730764642125405197735792554949510337277891294337200261470573264188030352070683517550969618318401380957667059346948417396183955778682703276497890273244630070982754725268240478089977927051198992565721575261709623237266933942090176531774881763241061376439638829985091465407112971858792619706871341450825794702586771918337185257834913629116520741017017347335196350944199686446109894766891892327828952659739361411495086382905959112647383631899561394615300152887011691276803284023686383921076648252971756300642914192445166114143350711088529605006135116716596132856855192711739354026478654966057728694325670661192347777763741578782297071127332840686776611992941453633088396660775929065747027900713270256407632244173705069942044430531412692366192523417846717047171263795353811829807647891598766714363309050373449025380124079874865629903050508711758498345740985642866305861981069039366727206105618108712535454602312990671814854725822176477809492993372673489651904958344441186346628456536585768942383311224500685719631855644420462075299430382913622522772111938136015352543109080001191865812934482805475761201428965751731186024496003736152581240634255285077348084124396638947793437872275088771299388618842917447689283042741481975515850656169783683203795214370616924572329972802151869903848059563161128215116075957839826140677891045217023810512518444446101993295457323044339885957218290644206740360732278547009517608127241216393612871027711382221161232478630604916274933112457108503898212021102238723232133886341815860214869920325691581978829548394204111212227715590635408843214268200154384790464518394437031699347555141635613955973627300318613834715787188472208107909089990541508108041057979687094699489356211940604662367639450306832849710191760873054457964289673696753515507239268184860615232825692739529487221369335767028310758915037384966667658480290955859122849156693386732978475346145599291853067483800899989876967775182207660859048721598608007417191149747251220624060236934164738383958345966220920846878187838535726772572505194471300009874418664810507651776362249969803949327350324791577488270114049799623500451223777454003182372249089866515215815110587019784521608406962957615600741084918251139664899169214746386283080599244018814341933803330424718015724078228788192894221116258094234263013982054013384550568088490229130850483223669257246910737571557136033169136132457316617051055732332859846619687850807939035157206751202185460980076045179604440505334251279629327293701613941599695621204849098250812024147217552587084386271737612510012076920659998710012185003558374408904097424743375275896061908272198163871574773745129406322141811506796947872724664605423840605388060849916979394675563207873907491387485578902062106850053685197757421457283522599915509170501727253416037493817556299995521331791854499166789459373678420268876736794810607684842895863880078221751458065414092487149360054397601342271203609945348450202068627238942676789478816278312047698373968204714396029673831537982954536543801924779845137069251098228748792860926992248547835169089985612119098527748595466091075623253455547124991709321528483319780337247607615879224925636257005964495273966817964023934328434386095449040739420054047983089526314316385561498187496016842745608908559255133955998611192867305170798867957298695170558382899896808710860972884569279547193579326099911124284956734880169567239132952767056117639356507667916384234198747142031940640059213853421199634838423157258902507295729477846678486666088015532702183027740374714135341090845254411860486038744452974760137593207788476762353953916622494792248072061816701700745451889599689240843653217475921273392743289368609703826011832844867862775858954815079381066241815059201768754490920187305165558543203942625604385602419843664309599532136270966717914471580258690829209784122976270073927744816929981849947375851356754830074771686198638832682287761495734295464759228601120387085251429722337931654127488541508761451593680633324811670170359387663329692173850737716280854569517912216497128833796278552671857830060586540292853553774517656844132592698630166502864622861250473097478385163241647898794775539439607336949987234931009167195714181389486538285979962948481312162364077058114713171279247968990231147623564109086528551822508359475101119067643299915361605379793436233398279411839891389894119997912721888992660832682742576718165434320029384222271409414052195905120318948976892565812760719774981985152174588145861847957040375618892827848450648496414976709103199114161262882572223831903419683514425130453161789586007361691042342798749343919292590851802185100838545328892193022710750458051477285194449154567116698301039480447476008033698914451912658176825441096025280888428851471614156312769029248657671541310617376937961778245653071434543726510801549819853316455061898026949153047120048944908513841832424263587146794186223153743738716499022715090821241253154089002211026837623105100109603988270743042943351946740311904277522065708316022241226901653839754292590688923223189944522389935861092728867187239264539449025513118702519479297605691869775983386894278310214526188466547185634652188881081582184805751323255566964327696991686013310863211403954598466681909566068851384263897832022306188591011458970914231763690312850362975017458632973748196885988047239867327106267358549861401670075007895205602865103427954687940285626975716846816321595827768055491832129673971445374586743523962291787079850022372459685240704307282793730438536028374178034817283917233550573175893767917118086132659157644147811134593202356456806170610771561854673093892791504176715961393546842587846407813436471713346747345737146696097936388863660311977461607141886566469991676899945934862477539442741279075255531779314570676698175617503364273757359465405643614284578645982053453933427664867219516188055189278121711500575279347499707906884561527358646519900662286936424376546033403213030863867053769130895166975613369370607931208352239557947644319503039093242871428808366911878691577066094553628983817842065221839949846138489485870074405821094190625708312308006136979731991352345071688333331081860212052510047546670106882622389276540759528598913259325979285184314793836765438727270724369910383008777208950154310179519453429164669390052148173794951695189723238134152996274074758680508011999566064203717035024288287785681926115476089140585399565215493920698515397234065853087242046831707408783213317979974740605875752290687311783739897244566439251106998292477637280218892212468169720804852650377622334807210611777988463769132078304086619510421634617521801103331330495828530487762581906209394316523975893692617265190212747788869734588117517586411801433299544894785180751674045657851575254268804074226318155765082669082556344885840503836569272779892461683389105504192178418378539492408527083560473520743510510229323607898918893389043145767118600996906081886447119212325686760981468834652878430187225295524699414095832992183892559696346069267559415384021342156624446629517971926996817847981745365478248090913398893748572860455085705360645561228493390599491806031153408170226495744828191241813857474315087571690611162285714059430915560171958969932890606285356157255360396489340552691551292754131161562827327636476462955001821420524556262146765763657960321003521491986717789561711550695824830834197730657202275667026161677123807948311278357975794853767526750521158448353768496251570678968367361587575918713651893002800778976717716550251433688139900594487666520740648108733670397207476771501753167816741622517492530726191627611999776107886584204758801175263749316293107934996255892915392347739209345044056660755297469792709757034554245050999342899624048579595327468347203428695644445699074759177442818505601730154529157126011094697412108015885726984264699859246844589032316504665772804125716901572795963508608362821295582715257220254532808431105463084351974436196427244284253365051568167924945921721727613258403520645290929858264091618017186797606379270020931832550377651347588706169509786564981692711171615146805981140558669150121000076118911752037323857886273715098772968361346413328358469770044222691611887807785144962608217902130907775618079666324108279943397607754576673848832250880401488079290956920633757037061788169330651410715195257604439342826604559660625229679755520219417164627336948051808136054722257539243614838674928314633667956731244965437802748605006794942076527224137690771404947389931692930770427665746581984833525972199911763324226558190325353715124184481843527568368227566533047566827873233241112321417706186758290907376706427217090951091947416197983837076848190122013746750736712035303353376336174171894933877626838690324652566881810748132438257805003403010646188871946004165862982328286968262684273640444759397185808872964874245877411183960768785259777239092379858910043520636602857134622367789438670525678714677787349314193361432463153221520846666735277768645447486319802974660839765844921936918069605115056986605030545028763329384970376013153622915259827264355073164237816295801473114540574771621853830210900257935980893876845406062148857410095310993865890974884725679966399397298159939109921155957627638562116413706874758356018127762641168360641986197735144546566143744473752458176877355932142652103592924592959735211506175523927577883220350745445500896174876074066517623662885972171493492352717150983818770366693827420942919770452194252807025692834872782881775380759688289165389589761645462120132884568163721610565431380631911019697808798996864462834018616623171539656129677351718043656371581628822005410461241639639079200192009957765854278601466342272280574611250088880825920954915917318183171966144790969497410200216541404459961687681431927531243584740630069448914563587178145023945223196347767736647186822400095964415290317138868694617555594419346851880159049640425466976770284534521146854934033139237877148444957856635089596451753367467168615439697294736245554523565488820912723855917153614051251064371299003286432129847652100078895693368959772179483147494698287538575593423530820089188709149673680153298809835276063881678048998040093849087142522182518931946210639849719622526576421015711315845263652398371248023241877160100743145846990578697039102870604537406135992065788202989713123240497821325298968973951734282641785512163315885307509445514757877834189164985657223039051006019515666705602447135950050315261648170105430022254563622498573569469083002578919399809113781936587124306277087819331238755104841265463095363920506920460889320648792566847161797553886260142191855123362686456615798313797387663609189662691455022127010575613691892731299833282116535888939599608420950899011445983598330483358013649175531611458634802951162161897435804626427752249917284054255862628568199582787171534104234478189707534315864904955137033902873208149632348148489584915047500699626099264014189126827074495334978713887415568126230410808354752774481527794872361709751415622949226172595382659556672272919018553526330234437904445147534039012199956728725918511010653331706386930759564159412885530576723102844395363887108520012199701188124385648271064536069510903892346675940651648712789872894892393312266262979581589918350273176412424527987296140553019634964259265149007655684117186066865829204961525246708649164850816178362947793004388294453794937211078147605643156017054623070742335920955102465461887712924600373980840599887592845983643780519081550122466646060840404548106468347860119633564466303253616286269508472039794462689693904061115131506309270282859815028255287292432710972624668294314296485757550162476742045775641927682689200847670098048514697292554591613538686963905961149528353796545378329645935947838320187336304619548042628600670478000476846793447815403858910525233426663848060684431927702038794465613099034113825343821735181660433649315801643848834062353168496104704560049097860446170147204264526109425879122344364001081481659838097937492599396780133841631697820870745041620779980409989614175159670229758360105982989941178708239011438928104077113728910971860971199490499958494537820075507873358670520543998745960548656174501374154306264483839549073992664968785540370238090950553652091490359157005899717719044897447800808416205207588726107477708368920872627383299177737963942978574423691850119790320202555942971610423988892889112226471220437019935248791782240798245286479090303423123517087823942618640402580373009915958990963330977366813888543293614537419599569237840351812415425106149157816975021520868469706356520575353436681529578467896330009915936715596161519357732404732874997857846227884491279254523440132188058479819278858447135464626369714365690974246589381129512180508167210278494060529493918375763651584939803873850750917837443957443282407319470573708965350229757882316399453462328404815236739749998557758203385459856799148981253505501854742797810154501505438487475441282035371358451402345518030951604926614019226672392412813417373639755451676051957557779167262655613897995913866214672343712287620508568240123557565756327787314314449063948126428006876376250381117349388127719773421018945437029668469358166282834703939956671374819026873740533275711436335156281097565407520823803175324208275937479629156270892804161571406038449458143940644298741370108739264103298491129080845799747792694335109892404314797709305595862994940520207297226263072495359852536908719821038837904525985339632997913854149568913701266571131214551952548506769297154240904632911528069268708391626908189505682150752570791827166522597932108800542587698492169924771484136721094357939484839299866926012915600444548455076382332467247026752298682545115336527929774042226333734389137053390454846607883478237822532436817595231886180963955867808053024909172554484083928353366837029108105049916391155441775152443885319591915608549113406637463039759918529027620683399187046009460602768361337811308284531349513483864465484211151089153714353300495477228992905214854629207724634718124434068378384977433236863427429938526618611027803720022852591106631312454008075975064507165706762213309597856360720218215153033840250493265314237753744204594418696307757445547051619465473742774417768547028937064200298422111772217910316115143954486942540627060483269082756769520701913966906618735308990050665717857782829835107255993155994222258651645504411341640093975609530892733941972203758172282573534102364006129390804928620261696944415907973419162392860071732207291155646289473289943960248382651797993469609252293239206518652788711768969997530275429460330238075665310538397629987902885066507877637201830073240691079836238645001474925306159730054592677227251850526045331586627951818490658033068721375698218138623353919314220526855912334325434964975522469139388509119480437504879168317861650847402820620978370519371871070062147178091781869789908395686806695334184731225901116183994918637843991338912210999074897399646794833592733647893159240427267912626951445018443891808849149479818028635840391710159283945160349963048951975268723831052984937472823634597041501698859596657662718837183242545645125484769993573819201124753347355651490549348130781832779998759439791877683573119238256839537033390884029018569749464869517347260350956194155953126921624565588082330506012777807387594979868600472548009376086736302587709202866817497254052256208703081380333707771570908786950353225910050303029586312056008526421109700563952863416397381266279160133282744254317107004454301750874633366973617568796178166984621685613618362502872115229750648466595383224270933381920364079464983199332584359179051085032222845060428857288350885082455513252687796825119530352245504137174781983492079595374966403725677566656400461575824773377536478458254728080140223467199419592683978100063708901567646659066495154469512334366954334808322812574652998183521478222931906352739148962154763424370769463776699482462097460355155161590141869914119860908572612654629231150304156235950309277550203184340361568533295972903883496228987066671827222863110444469566815729615554930371738890436301206519507275193126534496607132150685084957629103421045577235841700715731757174375406449214590759294678020124140808154714268914193722394139708405055514159590247686515173344546736540300596233688919383358027526227816307808841994103517129637163143715537300071521722627344943570103404035574822386330312438871418768008403954911301127817850360535445394315426286014494821289439148456643187063772414122106143696195157377089590379057977688920444768661501985066654562763275646641967852273993680554136726307944712463416166035916450018345555797494027488568884650602933930383071520836223009509609009565420904245970835729557574077886054132754190293435289379232693681301237199130307653857625388586523302225671425734948182826569015366581277672466593555424834757261887423756393643832130853927029797877379565200753568022784953460183642826840500772473833130706270054069554846634400950328556552062182004789568274658219966833946155027230032814242326720151020395934299149351980219015084352863369803243490514896890053999850927744733565026925900232803974686203826343975338338282151620528225166351960999917065747153132695052903771664445393398082252705078140837916932549006770427625585754062159540506623584269266586329481398697411483022405747859603365246721490363631894349443106444923008012593026041404327677412656471103393339617870820628464381138277294762872953620600900213301807833492034230536450245135111484124736568419958262145802422185917045218405841802032223111194241711144727543118681760300781506739835744887358881642916218642600162148869412203854828708292127950615078318695559017522007455882304325347538334475284218867835619078511851035790560386399041373599203606847769771315550677940545866321994935207519036154855307120214929912791683879604487006210618606767560560344672405577553903899001006176681448073385010917813409147676631881860457833978860859887164385498709963500484748974886074846866653201225705041603651580549689516353159204941361361744453426434330680784369010248641551254189097195167860863823038524894977572549512753039685109438287907014066766322546041680384677860622220657266341132772416235727736979377077994011369269004057424136678884545384119079684960734440676307170543029254281236554852246574718538482842293793077228513207229137507282681997803366614309600374467966273928522132972634514717890124924517869246752350665076700449467939817094179935075896364969370547174460942671112397662291011414193365326240896098550831011495939766874739890678455247697464960986024676081633319930841344325350050454922993012104170413981933151791862961932039456352330307394549746660500233565983575927672779254420767864826997933485760503133519353220575002997473082538676423082682213802114259704464693499128884717378376104712645995630523851108960331137385480279601360249455900083711590521253672095088136512466783139950827383318340076347986512118359235689350103630537557448977531815999156880674226264482340300274225411848314292289424299722112465365629666296476712888215688979487753084427510831529195808245557354214045799772248171926648211852138396030514350348593789276930478088877454939691367675832594081919551128346613680638507863780613050132891877775145933753612530198826310315887051719144970090056217295237281329662142229085155067969869241938550054710740016655756728262147023037378900405403504768371671719274649750931572041588493765722913860772000381356150161913788138104085079169894593052522537721976555590425052149177283435075810004781805815445027647734844178570431148097229396572015961414695094031463121296334710441581041359068989723896748079694650511944523519616884408812959807336413247883214608651513061387145683618439927817298260021856068500366126971477628852478578443960420932545124110843796593985290473514109791742239202722785931677776465433072178902611552475947501027166836065354312142559971721596375715915849491952090239625601094974822502662693688911292334800988948899789011446226986555282448580913975679078526064307807076390716338608928082061915171628648277065332789929239515642088383114705852575124582255774344292872957717235743000909173986970000518674106838736347362187635636597063589126878056717280608898978599169959454208501235702191739963165808032397232865149428928726448232380552354536338522868373676186838932185409272823965543439386436990740405904169180466807508411245027448098803002232736016693922203920347388592410701012566610213121381495179330849084665205148177063072239277362799547101811351909614867638332823919358285193229143110509030446973625154909833582643795827600821656737677723317367453326126802799304135122463079355077292336526788790771157003254045264967261685285294954374878238187336574550842785140165697989616509974993952378269263327030595859015090823448585531991545498950500307525650924045817266125106403870375592512665702067594520608829449905237089777582082173720808066879249382163540478491940546467345816242363533457380459884936898007207919626536824502241279860426572065084007556680215418703359256056934782647678763223890227055166389950560819989015865303908109694964970756761452781801215548750959906280954222314624362157594426529301308409077423580445222581929650557469035239628432233233493344795206966255900166513690309732943102898538013755781008833054598450885842936005557632321199432063400130307427780750998904223639818623737112627175407483597053522165159901726790228449443253913022085205111405793444066548548135727482064248210033162784992084231162257121354674140202553264818793716545474993758328969321551883713633426562056599582504279774698352063164689173278833010433541574541689250730038665515767264468241502662622352198707245945022136203346961417460203284478404480608934470875139882757821635393789386732252184920556026498467454010955306175916225754520496740058876602308458503757750801604426855610896396563163909680193327272892647015651160848240241310262063637112186466520810071656800879044229897164625028491937360663200280661892854399398692721867267550389315423887193562949479410069143057780677696931602240789995805228215917828390537120263398627000455663014508053169636167220763268205840782746132766142918505760966993303862035459667893220612516528865908363585629330374661690001486928219516265669831595761889412723927784780387716195197202379664098568204853713708024490985804802417605884431780203394788088845480994175919911355132052328055623936612805567579402377502246612645591815881009468112950299042561219441854020052680701277085908761281987880147190582216154580333759307774821425459863201675106868977612673355638043380860415408772622429788097362728785394727700335770035940574564483014005573850054611346909826405018090778908479704307226899102033988104858022237702429730918407687548106574790399200824401171205262379684367568189132441709499721761182044080737617009728562019229852912541323952174905413128980177601632004545170498550011604552180830747760545184391997922288298478760862546485616223769146316656789933893656223508204181309912695813284408871035450221814722173876616776564909385012736611535996983397096390151072227781167169120265739701856441648894141543150050891055251315520370093443521917212376186021413555848664668773506192114469219133391829018803218183231751461299304790535300645923171052593179391910814826672996504631827261539055295294144673875290344056200654770828081867508950290132908838862367468524273035854707605806522865089901814832172253576483617573642603114271959123360408196907705532727315401642576061898239121263126157644492299273802033954509238416296273501018563261649722947800221118108439600416931143790505110701272133090922177879287490955905151166446440891961193368408957776018231023978030322281057541055003798813412169807851419487978677739966618003945791104312154716187829863052368801116934031124878526081191038752322946841819997696022457628142071950502389826622291237964618054037841655830129136395561931349439725924224992500628574462098186687715301635392366154777801699965753371263135374125687836553607879407961306818986036461946554107982988597245763111240976058605369336504949103485817801027722072123330826870767310893625910551257855847746681222038324151027890770251757727414912672097893607298724598315073713504250265656545243035619321311237517862177225537599211921284342625731456159315274357505331703212727404994118290503575216412544443371097107292622114111380608563266320845578368790060978635427828258075501927757088817556829206156009918007692223614612591470296359132287600373361565389219417497842892565875834090087296134670159486455858334185482758370599799123761099520465898229084124897649930524170599597561091229346161228294477275212746591845021284479115313685869978990414314374512462874188971055501790789350821441777473087084286834010995607577957978232350655587110090209785468502450788345444186155927368135920958256549986722829592377153690653891556265158225113019882490848192809159587387887896028398781324815656336852498959951783036260605512831670025830377810421444568221081261648339719466563227767437178644044370050208039175764260278714715074804904534832709401794576166081424849902922107971800028161812930170836239407803784838945872431840237410353084922497850484236929000457845499538804574274585509018703269319995709404186052700008106529864020386935292012797096509674108155932810172729812520609118579100026889608056090389709575579802198700809895401420856447612586734174971013286047375562003924588341480546890072868478017029128520285170382542830374572579719309462678244608892559617559119185340240248975345524975810912453520964269832428721559639711862721577200681573034824630748933711257900744276379468817346998315597615472739246656082912390610736308151223519939584819251015606299862270401304978724785502205181668921449538359264619737568901636397256241462265611764307706392254846737295498311991504853035430998126499608312966751820215496204003778893083180939240731955631651766206395853361688702154068014383311538384961203223511097944626018711197541184860212146971795495661392769351228784469987375621967495834968492999652958611755728528163258854057137029037500421929910474424195037305707028891004513999214673220976821329322651329808603494089646206376921594573289177510998582538933250603355269712522309112955675786054093333640851365811219528928279199642246550181102100413152287020511735577763085840859556360382496399877778620423474978199582147238929883334317596481789901607105420241889589792683852084985147341831763995765338388458174274036623066290122079405724449878734214990653068287389012202816824187232516563846399566396443544098588676208314660310032725926303787576717223590573437965639784023035687568281453456495081030894711479977652033048208710611388475510923865145425239925390311225815822028029942863243311728064739721279006931228222189388446497315755497195220559304039816960508193298960822367269240772807006288835101286624922064417931824175760370378848262286997544945044893198124317629069556482686170335642859835977098488639669996568988067290381250706383340149060116321235513038853921349717705514097181415758837638909838401261353263314164059803816936875507003219765115932808635606569037096352314221153493746700340609638927477067289795242287369865743178023142036239944096841751110813485227706845547842310208156290995117228644575068315859202534949941756873621601783404534298155223997851371434708359457435456533146451990133161454433137919706308355125343688003691713322390592254814357756182940553984237505105118120330332841539844478920585577932054226170261418648607476730084161807403246803678852043990712148678583051270699993261185778321928077352991393910236792463679235581442955474150886830360266984880746327651539150207605839289309523424487666712646055192858347850900861491145173960267293648527893606246133828225428788064485808948851767084536545252854875800469420587577482582087997374323342567406550336794872054844995889117822308059394427499719045014377626637504808957820204376097572460436510934349168179305530386981706669865953166518694614969641456566472568938935867074676658708674083450092677714356424349207925592800961471521356725101013349006690860021116174517307808006967132963296873125639083769279885510856452833497289434058674567808249652750853691047804048561514603367215118648961789821127063921678752043778477150391302345460834424490774289586646103194648995056520392605461850495285774803837439338134232271056259047252602424572473986479933128661463568500569607724084295523967030632214599124352401693768085212476836348348360513575443534040475920086607968819516146975624137475893014685979817953907974265426285014768311885927699303124665575725561173070878669408801573475052053552460182735028420709471438037678466379353586763230025712413571417133960809572672306655536414444052998713041743077853209935368548519293483531929536354497464776817434020979877497062781133891796033996061985096808148036514115995094811806631740137263515516601150872079343702922041423248078540538652296862974903737324007223464586908655125428218894905504715954584994686766817435748264495557920516341337513228848819703202392238532475231114574856560566608494600609030290651037063924395772537597867008389755978988214687202845994530908638350237617721521793036842233286136578794901125533411294611318638448538223349926421675196439373221201791474728096757267548843671988529785656275543052570020961335471388537520494902199519362766374255387832048385034651217512943585731483335157183231468754906642067781959137110778540959756575167837506830777499900674329739059757971181469284969504384148845030564895175044866839447535510554953573171280424919721339385751255334312718324084710024026190319869583193899505975214079138891234774023484463440231761580844688860611160717326156109055106632106450674156788753566321929934512929957369659225324737650712474513365305984871362217949121913577216147916876910966904207253805547676560654847266034039615850982660140915304598259390480310943036768780989413689033033065666206105597199287569462666820578880835073716983182144435155091027441135111511559543066823546267374571833876375101074353342535678903591950336541786061050657921407118138680712663198494614794132018216564350405934166667805177378482982077941737171286507790510663055369260043438281161714172967015830003365032942372528616203901306292750071538160134238558456529259103957524360239412637524703555476111977019522436542086568457308169463971873633195421595533220963957358980456453680525634568345611209512859385252985186424016583417624176998712121149555708183052854077540109699991946794802706966345267603426129655289174660115369088759067606879499938464389819821745836679331511584516414927953201725645572295968378622102094314109753435091436685779539692357797587998361477698599371950534205953959044207630579168520703529043528306092525241316390490832543596057754949989623213000500707734614505069059348272952009268107346688458178478206976356016438128942925096124157134337325311571031762628727676294032529632696658685737782643759200418730691452506848980368183649895950724969153035622157961216400508871542822202399484028099040131756585441285285469908777906803780320089066477153252114461335331374106686214025611029222337569559398748351161044425709321292860148293953239857954556151393841974472218624922383067983811578990453300794152298027459360315152697047297799885038737410077367867455398150486004853333121405519145419010691803491121243954644928333432902711146302053292845733168849799492919405433204733384919832999417693278019267894858456881012438164455230515733484292800852172765472169384984350938278693093428867620887851023016885837236081057166487532140073475212826953449816089533290114448636810879173656043444114636837567255983865328133016481085386132509035772531215524314717434496951305555001797392389418760746697963068092351066992529141191592072792735407529151847135234432172380532045695298994191014666578698605769283057632117551565981716155647496565978585086278501237740817195284324625111810012819921162129072328591609682461256056087102046878571791928331608900324141137412029408997502239000230001416089043096584159205233100010961840546827713939594402497928698057547743871313439600543937185488063363214651520440233851885232202047858869140879762317744002890864315185834576873885355740504747230074877859355977925910286903436861747916214731551437775794576331538778326206597801759069197460908130178719165037035829661487879714301586932596741078529223368631982365322604726941174608362533425089152970470786400331802001867704241547544421408086725774822664441290984197347237042846319787911830510362079554205674718185987635831791197269192050020566112730375872620988221532586064100267681200733981376411067387457964173305952487896813462256628491895759962648703023225216724960385306303556450038138090964340300593494117846086341250090191620285798691070714750856496796525089971154865346748255152756452606991097315706739720234119923446561708271794868146761897338566006757334824227773768446267067432845135363317966571577558130954996870719418529142556069533884304348646063962630502372230469758989719981954784568055012929895509669029753957121288458067467272038660157794782842403954535304709312088634909861290185329357103832798076758975532447027918867848232838458312910524628735870706531624904368099516598181995672352176956219635135180260869687899757913172628190078534014217667086742674820944727053206210689375557213523805819570731165038047557395653617367138200530073789218618046759116403890716336055293303562453840502602784577508211494564218921927262695107987767670778090699365948716173487445923780241038162211805506808785197140608049162027511028958166324983773570179425958415115647007763200013038271469155445530699851618086569959063747464081104725753286329105241043984672950489153357619715335957337152526113833789757408520046392367854292325893987178053316316385903543030970102083735346751454525619522432676089254309867192070516271074213287943107865722278002260319658347297791355763448342143000075251005540042642691344572048288216297400978217378496029990760701886022608454459757481170194263534701986630984688760637298197263689357277622714995009222152064191492155928290280312785622571013618904461134529262245846943441514955085634967680876229219541837309195459928331549361852015497960916765431780593514322938354854464010896752447802677573160342163916466988057847587188618372286805532061310468908056956060612486658953548959973318051287994339735976962399033223695117930501361583056132190859748594423286688930060284240988291597947043890251694091120284412889830603312075536251142764285422476214615018149222963452375054714728507096818261430333473364579240903012512316173166680604765395839484233744751355645413786670625779552888387548096397009258149847542292663334239798331579751969223277852453000287309777999884074182448563789317206470067718346449206389605134675340219267901473425386510543892748497311549743539262765707268018717134802552712901781192088667806286086731866168211739446065448161159552046114515509053445611699057257662100963350557882703943612699984023721634472240526038603687884126342794393687263333877689990816401511111027208734740861818988994315161520174993937666486978228253990400968386672855846281115176133958641733295737657787400803420567052067898550872557060088694166789433190704876558583365929567208581707839779536745059829791643227772779883385610372694900554337437822193233459375377573256901820594254912203951173481726678284191849166307466142883852051143700221569249908706162380939657043833873328773045276523787060722662192047463535953034448938036783924897827234551027307090204736713329151761893240598879378670435813300302827079561281582774440543848700264418303197646370054462330322918460885040936129673067928671509415936426429566341481234022196153698476455475737678712233394509194830278474921861213318172305924036764127997634215531646551750826447114711305398450054291707555903456008405804974680667838589551201805458084710302689769073426631544414992369705699623095396828419752838047809906471160934834450282867639802677827403824066400380135726369507049755252536719579249585170918844604789971598414852229407691997118100434559449066050987779531496628960152875509783724042040163436839003846671822077107608523831073727307134262242128060205978701993895975600105033194442453170661610814983488964504534625137001329014021052076799254417671475698272051471617474058884179639866274173538560427438242477333874078288473868156341284027234614324622362827951261314069941135520542119293029547329456545114988170089345449617828516457841525918303476912587531376485378006626358526158165783477542074213706060727763893282712098649042837670581637028567546062739778052618361621737301758232222957291194436579763932323962643027018146228676611834348200261848065625759482009298374375243152945343734382906914649710799665309823451426437714021819424819996970043601339668900864483404692781784809167639907511945751151347823698434772016684239271084564483049702874404636283076206771765496580231816752492713567981346453060345016445390300421782260505646165328838315373743091795643041039954131220502953532979196676535598940170065499911823096979972028593075873479907576883287519837239303993189619498655045422385832237136439894692684812148773597702446993320408585725672389918713443135566429730235760235590604029580943505609832826331129054815389874245822889181723975844396247168558014503249683564388560896056463194384366390818299878959842497880983879724971389911120210836542513474887844465660828938475268344326328509961410017993268917214380910972776383830908146003369677888322301133275607518467658272397281602558250397010855550194621727843697035241383569725232961007738112706020647259807335191514543728022965937624815152723187454278304830038734938986879987407611722954776200813697210778817549463737807643800591726441276560333214067887755546431722858896099055607205797685033780088785043125890687483886958851525552918970402371445680155217799625396012452769744959753177538824964791666768515445278844727536095359241370553096926105382462448790511439421206976532374915328951874419811239872580524635430580201895792374919897632218540022093073807729671579256803315409491765243626072348684139829516234459564506803206779153189099418375372591839274445517951492591765727454511156178204120462357430275721050763690519091275444129696793994374655316432078471783940828368958077851119041877387571311951599647252822483926027448750994531489783512081798138553791685156438343347250328408129385725752980329583393149434072858197887543015213815554274509520112673777363399981727748746538155306720923976336776898412730487231569230357796472215320759859370054021945963287072648356583451261039821942601255454556340385129784072272281150174991259349289462348336859627720866149622425470546242148997181722327876054127142130238260664940299790454195891300575902605099110007059608842677204989604893421418378537666315280819013244331185509267081986633361604358092368615336611293884487940820069193675579162223673890995576333150655431433379546582478809999769829930684703920187885800324216043687487453516539966782302244897090465466483750607497707393046393447127330901587162647281406332389105183224991362718785578650611579298454033459777003221185701537281145142240649270985200010036701591740637276538597053429449288585032846200287174363280511694687866721941659293376986368317149959333287528979415822762267022538911381407191872769136354264547373327691785755754034903554727376993167231151499549876551498345975937523956177735358408198172128503892140905699645155782177647499684063376572526483648190165205563835933545956820537170837960240229886501998879605742318146692581553304060240702080947580548586327412999334809536371963644517562011796286064454482864912703328567671972822052437529062722167702389666400189134989598347189813557319458012273453228834070872351253320211742006548691989125819867537281119349888636642896990893576733596162390509841974672872499649535531474014535218650198220893305202360116205604503199613257581318126082679791117128322106801097632950379895405568104770075084479719849177607827516889199581515537120340771640747759601304676573881148577021961133416976307671032896688391976427243507113891102289861337197953206171489440549167325190936889670088558977076296827852138701288373682667460112284873446313285665586003061806165125465567530353880767206057698470339186906223294040934043910628496299622063559007498194556907792836369467037197720370107944134171538952745849027375678058931808615838142795033115423243058622541597214137016571878522960116046001568615755568648600209511807208514677547911781161388320722663240399213253733569011222260615305001594550648267642623029027744648781421674321427246140250225113785418528002438986411906533400311305578114855641876506768926052475110111050212042069515531049830265451828994542924195415867304874555252054307903991930293784697150146266589074391852641966533405622351650776954717785405061946276949583579115171522729956493636461520113400991940471798970164261391408119340779180881243276025736189422247770608808591901848639294056610080224020437881682578031677182626188107017274832678525294364803090465638373622638673431914236752934461105849766986940273099084973102183788296613123575960174402709773353413570827470586342396738533014569152463533247331137711235029559714397298847267797350156461409714581878867132153017608715875095046550345262052755454727382713823060969474987289374173727274871141167337317910485896488894479902864946233247467849243923549651175819198443061308283468320119546371277829401166453471790550710283696799540822201154953844583401287676097500242596966878857478942567553955493517429788987435459090129409104164423100086498965674496700604831852854286740058994650447893619977724620279444381335463696573353272483209516124306163455477967814935989847828514976414198996425616431840266187778424082386138980160337039393958107702466806373760585828663374426510540892143321614981345731268490132240272317862232030925624123979358835733086835246457638060355444233422448910554493608902831439938641029916444910060015331951135094915436158746283675471880334737253484575787417434037619933948780025765680572803747251117015606676091246178680146783243954298469548506456051197526667292243852293677260498400975648431783022662847223095634091368772743774506099248237997917892486717780587720885787754759799152883655305402279251512685124049405507726333570143233685661826498159190800764024820998800406616328873062810680283702908095348771817337172788891422018424497450085731013848382609814370377089010920615449298287774103359554552755839135845380207191904725676218703363987910387421857295465256594136238799054798669407140239962781791560961252448561190243676208338232880878681779042284284662780546964239055332976566921250359849144583112399544241758083212710203659793556394749810874269559928713253242598914791210889397552821687820604658808651087498516953395969137929994977582014330303697069383075462284010014422709781483512151561331411586071339228084386577000056456433261758501536485989098287622022846996520555513760540719013706089764040945751484091304397333023848303508113700191918770865179257652300551063326565087692646928098910374858845154129575932598578646476094790095837923792815225297737231151632838447286442188696798509969373541395068256483788248416384921094471771745217115257371523584929638107673153775829636291033050403220931248344866435655821137126656566767143343315258299980299110565315166769968740393624115458415689627725837944971799728066210663861500512170447090417206996630227830438748854708296238527192773933644603720269342979448819653419177769383771760327539794571715144316208615364829615222906732147324972364998771182626640301465030975428884819918111256631655690157940803502883035982174862094768314668886098889286760344535375461198451485055030997844344160171978779793054842600000552338667504932698244503468238726091089370436683078156569025571000181146140667248459103649800266446419202302449734122375766170273668237662758517445506257503058059401659306495562683924655696965294515721339267045217711462918352207358699907922826105534437770314119447122735921694322224124454058927871135216022566356334780010850507224780149823215282518578395847414533045265717285980106292890758466813220955084095376670774486139856903140228720700144336498382637811120333312171963551580077692529686852794239108782650946373664090257808579926675569076228158659363008629311095383657604755137908156207700778230862650183544181352023977207876006043506918328872768430933504500756458632773049959820172343263915531108727850611996647949865891905377672566836555702587644501177825348207418095828289111658084237676724382151402442104399513353798832130615749648452178979927229036009644417093509693953338029703968611527206546834837828866129410285657898037343389891447448745920018424088386313117067511396105055749748455803953544136492288402951651268286722035315161064592612776824273861908420034975612067692039108076922045903623885931471471646166970912705698206815042258198826226632118052924111003799825890742239657379432332106670471295234024870088003123806667571945755134055854340906027347072723068266730112004698189857215683669620460261227547774177181712422204301989532264323924747296020210979700788249064302030991991382195081719783568519818512087569560579293734749528906580946206882830902800736523255092913113460717610255777636760700026112005022041077467320876526547025218237772513195206900626386225747077661604839542758937351560343139796069949142897893785681160447268817761089707452916792351305429892082747254892511371188054951836734208404519563996476173235030120692445766734059200281251187331826210569261489750233346461634489775735347897830299865937393912582176674466768046862824023427613621869838028062707657515352813168741165378923838080396252053044341200429684525264102450964900814807515556721242968242760327914365131387989002522914601966188338589839921796917739349182982850051461872263919860590122452257454976810880604366112143124168602805623688317508386114998281214041482960402565393953515977826441374971314560932199421706567933623125952875898515563730424991648768968982907471788256256537066796401879965740556852461300880049204018350527511275682684450702895716137984471924248131124839341880757782016733499822233460456017459236924601747511767544723615437538928540877304908138871158887210967216173798188574536141077719986431116679783002129600173140925231356398033361126109602847648200801341207787740041604656421466112908193173997602139711461319529824867195725014911024201878909113328816488567625598037439787223302019907544314207079390306909977134693857480720062495999867306151377698275784882962849447765329150043308007580381963511326355822504034871385407800065018210893497023986382171460579625496889855468914295554052592085391157804493401275051489540909632881234377129744203445042617905037375698329317090989766205195665593114528178406113780361229710888831006911403978547338494367974575204893774805693401416262049963094785184252901098146338086678080228208178615002795847734497180712493154166919673118385089741290841226470333144411192966770043132201205804379157626918148737259657663535699834748418765065041029307224310258990079845489777936441852832040582993103606801940905310233862778765848383522251454181381508290796714169954452650912926353478770558791500531665220739936288293235249014221797600507400385109329713440188702189917545110824609940936143160233172169846884165590092705339723647285281035011909317078165207111469908725362835584570188721604735906379798278846517196641405454098486780173424878614670154121747126241019261647582273711871180137799798956442518226569766068649238831820219749335906615178914965364900530136102856160280001987590985553414687744400751115067145690815636334633697981981907946332168720646824871043056780469113071312826976315817745353748643772083978480113818625404443691267896444627277320218763705916810648104168960871779451389610868534018079415072317780764665508723822149246004825000430997155677940304670773716975329408191224680051005220077452231128613338843850708215612711752929500310221094227011338935968909722372312972706968544722074947034148904371272805180404707432346746201304323774950396023318337845781788772135230191441317124829811888404136970310828121326124886023282321945728883280602521109179641100932829316592099695542443444784735698903303891061376768906034987416403868527619927515065578511497314415644754325714411170024251212821995164927084104219847366389992225979552682043054924655478763461312245050209912034722040742214766664435891009979398927370304184048444305197388954185023399886008111404589242398552538234489335586776596457695889766860845086526889213124654870836083172534646076880536943426463910697449120663780899732442253670329453796203547263279540011268125709267293498293750333971836985437782749632694696864469771098429547473661201885223796009836303566564992886018198239491762913567661732152649878268948583568528930143806406615697092628563736550214103506905884159398062027522664307190858736053942381633081053047173743706501772097629920082976879585514102074909466024446520273993910734238450453270243146707843636761239888278984523721303933335839430745954285778364365779774477748755296804990847319949545216741613432813829570924334679866580032302578236009918036079652838608654105379164178366876865421113367389304159350598055351683734858407407348879010530379709300350283513094497141856611798986068106810275789442998432689301271535176063608478225050040467474742315099228669507058415124192302503064366746437876197506083102600715075745713277584071665960500735264377890852118770815427903943706521428682997045154392350168523969790786746765680303442582489008909444240239816217329289129905113462603635701654903621363290603192886883976359991838721399934265947662403066381207901434300944808054406711525901456341749648347157777607489426593785719702507315129716561681507682256136301341142101134754921351575892455019747377533153766420794364900739616259803220850985668412524317244518076041817570799851338704951654904761523201236789624135965648373117735203639652368234854469358419300279393472713317505549577127554243442889288547345192903127908327496795259847497070344879417351100886908923568277766140308920223591803827063127012990343151293648542846138835219043667468516594633007999033017511320448539020286361750132076038937416986509883462043070962506718735999405800085069644777690483996145855263194770503151352435507491491025983616663976251833554729550712941402668169218531078985083471777070605011631800843970373836030099461185626114384173844814693129771302189354725929617155085291241260904733288684467880248914949786471210397036910749645292245510635596185159353307377610237040340460791310944252419568564826174809750847456236188270463914956746095629330592432963691024308261155525874743544333980817417731362443103630297227960561093116564898676239915591876865429924167262984930988379028326165641576357617939335216166943424014607260944782813146929783165262494629826975895694327772484879028664419972660127897310545611733030092159418582620726024474465014701674294756301889357470781099031454682980815105263976914822144324839566850627346965034557404010207311400062237845635934590199877936497236627472047191446909405807392287737431387388664069491050374209605260789204507726076247974198185260362950502815106405901175534373550865369720750046934398703599668629030387607382686537244563968239049836200150904401705584515496616272196129182168305240447840914516223312050375417898758621143752780809640872636106387053456442614375680438183132949962609413785108062681952922398914532824987086402459884960974731649895678662230078744273033851931322082603099549125292426010055735456219721143063969529456192436283575024535047161870941161972474761621475914211429966666580033127687058036767836476529053642627901279257909383275523643667759348211003944647982320265860937754286370268584987141579877955974169994975939772882013136051675603954316832766312330513141765674147986465756749869313158181184035740236831617111509883173783652905064613564414343866875708293064189513016340047330449503660517632852693033643493039909009292945482602465862841651028319088199166949354012411547589085537762045306938581374425221272664778094845163755775434966358839778886365399763504168331996250163590887345688826226438938603706740388295322797178484592429560160305091226385725135529676641135754224173066430277901110027234271888783858656718014261215746305461843097173087358768926323021801784373793860594203112807582197333025400475993612722492057607889373614672129352296065041701085358423366415833611888457975471445635159019284909474662157823639765925805719498641480916161755491975168928113257704199446974464807531460799512645537297106091669360135775313473018635689878960440574204136286194004825198150012180942656470601947874086134918858429863011901301296730935380065221805931524216954570658283189133022369928655917372160114730022456258977345164834548636648468039265556857175443004292768084719429337657225694907508698025922836483584982626276155816162604969247726370548688264612249728860836761957756887208976846483077031170554003361230027226079212467834374559113164585491947468955567510306332819990303610046738512442467288025359282691461946484732591936866823289515658615254424532464925654905202989868550247880208098236314176065622049740798508000904616485998940316148604116487990973761340581783014055336279519764463665568153929085574391286502080779023668689195726371954315524279966921001233900461717762347245862268309476296619036343274395934578856229985732046867102434952698856394284467843996472263288210073954237689876985488130175148069705805761176158156149583426138589670960084624363817121856689727130036195888680360741035454717456498839661170808795356870062148982201264436407072934061489572061492131155245862286594395132762852017562224169115914653827890323229920735030571428500596078643022064115167173777359151607795671782854989617610777362366725288449436608901224682104826360988683039977276796276532229757506667899132690636224080690518239684424149986896822431761620072710398112837349608226962455394855255468297159197552530296674463503587265604844441928790907619555918066586272042156493951431290540758382167942390024508943243063523260364606090605905784801291192778524030175124428305236683587443716078425560326456641703067346407208858875580759659502017848466607877250272880594507959654692412247121855028239776810681891689166588515775065478042320721337308711691745640544890687482778746788522532333094073308334519643049144246047074338095383295107334504988354538933071161597313816240176893352932896236533046799564650330615200898173351591135347572773303438271729564796263328510632164248904357288777730438361876650173007201593222459550162842703704481468409580879810324281708172729909743916728785029162581104423208970655731678383531267213735488594135122695282175174856992172306207840000830831684733164773416869343789889331319842691706600104414750029240188830104915906020877045022170269906922802353185302763899267087818291371145018004497742785442200977778140123803423968123197432960399763736679460708206139515202201257352297637834063892803800098663859061155154690914278571774093675007321811001693354719477108615332161179670516602893968414482925318760522071914845328267154230240362877671776650079364592178044659042622897229472237619636382584172484306865939210173635726613125084593391101874587007634571624318503221235124651293629624837997066829918033603542086909359600226141200091586163245783145394149300613606753759026981553100046055124386003895216801448373151483879936425314185033856296522707244603432773076111010455493023644712030799245366428314201115100917696805715540212243559005395969702732093919768253657377436229285986882868413678609732587551999005813458599883958770871020391135048612235587436910178537941391955923019291625443786310661472596625254681788976282697049515372128704514071722969876403143321678160694081326759265673340475790098605969219006714588467832005338307446558851351152757423666622169646591739362672162733929513971156243839441604952716628803919987666709722867060117269425351897659692594214487862921915694770533562276219222663619345160152050985836191850496763969175627170390507145607204352181048738468422101701514509715479399226068127274674672045612661089470212432758963140813549341492503477118387157568447886441071617981717484234310979640366166273847943902741740309387335253127412002513069833227643141291605934507304393414740420430073543414928579028175466999809730682928283770568683975383200748846533046589474885218770940935474714286573767385547174361044769610725962332268245767516981785375423413555996752613461201889752625942269655945918910803303985325791739380767586842179206969320467590145303537092340060110406163583137385297826212994070469663170197990888435531959169742759085906971026186920264826653580475059375741267226922059921539397157422276557932533707321419955091621341829536257153476865778901853469350891763005439272419008040575047169852271458741549127870811769319307132523202441041007865170221473733366838856852535095486434671821064135524912202175321400159329534796197616032065217171575396466980682997099566414202285106865974946795341877944437024841161366347025725935783623970100774949941161269840823221540920227107732066619064925642487917321323325317156889119242195714759133024009367460099912727350248237142886634994214401143796645781910797899773240514029468218472346313314099869666518234415765122334082722683552128909382045153450103890176715521592525126192399921683556586763386067120391147203850571206509120374105961320352399301160604904064301737158479287435138028741377763654805071785174633855535559656002712213974875885152903486742192194998254563933050603867908442181803026104249830126415756303590117007092017767656141271044145374887980642705527261082113320304290296022917292979451633245504257760131598798323271986180168344805784869697473163879783998573075094720378613926583064536966108261649056230289914285257355750880256222543597391868378270442084455709176019077860321133853888957689760206012206835562008108323712881385367518565386549084829539443529306740514053714592774381147209742923620121563846303883449138670892265550972955072981894486860153713128910630864011534387266734427517469469372761146111657871350618612172362764842573679694236558495547344237565100324081519621485980038111036333658112583905899178850063623934805523445259117134959076083563355506986389071809094441741273237301963079941834477323383388819202375693270234936988495591199446591834578808148142676394259720644333491354523487623394910031964328309313998324775075706526845605464868299660284856581598528134680814030947224029224149756623054551807675897106087741125699479711386703230161761042533015467420372610106182551826939529597020172149795386801558560555449587855486922833748327470165514317991088491127947300381853817442086063561290390035078254795475629451108949906863442540128940990215719296657397681059948411081806361635603167099079293708354974894938887472792583064815483804605322138334932069428433339854974553414258189790931617870704327763605582731732916423934930290721969361129972641967355758158546830416573089713834221013746281119903050023623723046253462458323146114789772876803565677563389146150893296531577778522442842355882660217912442939266723418009778298623360439144286641299345983365703112489833792606801239055430204665315308357792237101087784927557268067049676619353147047043048702969854313641621393696512967101424436358184245222924639533426171084758083200909708590580397139731534119128404883920387762127154133911323830379977332220954701292134027383580822563665542053803336306501778558060760181875043927916184441613715664430082253955364352476105337811911069123073842352144180132547675267326197728827016389050071458331766080980973382838108499757948554021499245587306916349531622767001012007562181530998301473713087403178489506433037040822869357076306189545877443223423482712302542657819045451509286345648655128212832436466387065211790087566454593517493907527610704164409638709139772174133084889972698707188253946678296726632517687055805033021555309573427904533774400397331740518334952578035855609446375282279217290463852417489769534210144332233275296447689105097497223572737929682508548538488660773512144642695851479346666156662347527282473404001285134484662604102689260522934298665185021615850366540058058069494628759458269067817294961439690080842586873513028777523216560598226812535443104155070577485340521514876438183437374009726783948756776932829659502665497561295606713590021402380825219115510952958387416334785267540160940504175438504741202829374130054094424429020227793720791983239840239688442097407184540332535831215931263019814328214639544525014709380273633615098453905876612421787836642721211337461232524232891623707168043785594419176125867245765378097115262081862958325699048097902961271670565935572015621222944791446489077814289637271405184372932359870427158278322786548460401746499861288396619082621060083327043343894466761558190344582473663894942628742285807724461110698229938831343585843274308882252706408736236305293601898830587363841731365042546167508550953467020155403214353173121318809021836890193538343486127033934145901080235261366279985600355840453595764276988616501747434210264251496464696381058288869608302810381006258650698897829636972706629886220808470320227479506031561840844815894216136666771551004147695947172917534666843280975296723541123193709303397003680390951577887000936680240810787134102446863369094879478242018609803634717331313438910690303202895446264322052955385462632292440271991522892414877412475443269824787367923762373551339820112775031890072362860619202271996258409177174913862343791320022615702063947058908993743105412503947412721211155928914161609637041492579748658031279480948554238072994418262839241031239703040530105581570177760727573232405400341305844488522059839381188733745923580480761885203263313375868023029418805166999516883877227503198408949120285289621057812634691163582900878683488122063574449407383389237796807611904588634477712432846325355217201010060971780420363935916380064330743188404265940309615888212384123534044578468453267108645299114136209379259185845159928212474334940422161307477439508954781035558730253490339625428968312622349879190743073335241054848714176816870938641330748253366513027894023915639137513132410156986431106424671242269499343823073595761096333760406665920982878728933845641335622914775950629583184109599664647438428515129630195480351118050892587626948704309651687134647628122018628597718791185992800036033235035970935429051515784220356034077598961401543457800179217069896916144919585946808029481476007831566926799510064800888137996832259246070600802102241084464321243765035502378693342060762312244860849450765396121069700992768340717434312265592850111662687035733927306671431212637128407668381878141337586927384865085995338133403092968341375122936011200517865160199041552009394751454650357252346169805237903870563713387808831175383047973637593648914619020185045926691472299220016084453170211989771194379653108384753939813036523874332439953326051370889151219221218484325449569370791676485466455438194077208166633509750075851055048069252595794710287399404021906194121625581468651636058634218579414391651382466583215781992981930669712689045216178093269170423886009277555332045315089126057404326029642209129689309889319405217228464335886301396155666671506046651087497239371904796175876626708630373803494154677398240692108801779545854086308974152640437403306500766731186841943273293291221074145490611912585728316857867483908171530797104902534760332105762760942351955580211911351743885855110573995090403456924414668433801131748944047145745644311103307059040990499371479439909984421993360855902021481076282677341873559590877131208896401103888213209336853957762302237250778612195885757659390494762459083538370082521414342755981544173370276998256384262670873342565158202404172078109958330620514013681669661721069672510769684496668166954066853967726851700861834070848475751299555070554702037118206588043800857302683654746148265564608632743657464304950857823290532282184361737563471386106480366994962034150542615836864313215169867739426687004403555290082223101779334959596213785660208739295304710418444441426345541978835941339847567942009184406527717225126016808731094984707314087206351794979277937584512554582504836783538184166660865946881142503843465063086411764275098165827525610973247764147847711409302924274091201798401262304013213651999612726262301405074710032891428045691596198571374833016067180683827734082478906061331357296976675171786045009085125259694071330590543432656897178891360890450874107059660049549868993336263066757238636693694177064967984557069864605257848666148948540047361164615468484709317937342379274122256363675032348974588978366985489794608681921706757541153691258082182363825485411798262334647386359804711087246245311110882182871828302706681962212863092973454941815998434334675956154567638999477071064495073687195496403245557870331834356882809974951338781225161143905875512758751194373176700196707589585490522940301706413795491924527424423457364173473127599415940388412406348014036288594444142812362291598705155532901432847635223501923077890611219559064175138358582639239310024630495498269092477329023412166592990854342893216543329644846085045662820555945850471407585689207448546646534497161753436820474117478752743021548388236277641598210870257975530721117052284036092288904573106366564257603785632608375834098471706289055269368220642275628440480409939262664007693267423495122136714679339415034085487717069216500232841061204978376001574164198371808677813148479531512182698090422664065374793750239994893807217987525523949175393081992971744501227550805414209326989910955683321579893084824005259693235838179508069501061657291468328139702965999198691077021915745140901151072711037206973085123982812469816515865492507957810277052844791656814105187773830299348035008971024206824537917527584933920656468510034184593480756863210438820348436608408007740863993011220996083664278677908539953831840907078472024669455007537964722014652270285651583395991595426099088116553287957402771200830268755758505680377620838042795264496236529406181806179384968329626340177870151136749567068641845549602664974945856880685740346790970472201430319051344429895175202260939740859571838542163504167907458285809970993153263626306340763097425612812268787933109716892188599799629581878615604085222306709164216377753840724189636884797392953933937781052434118878156524827689580056415930962483052209953849657006112036104813361441734165485682601853065868376483772024935888294064337840475609303535639753335052460626322732653381522861270986431365521911108479864532701800654295319192844492290295797431413485958717317257194102723477614017047639694423107866989678478391673486641669445573993230154323865515358309292505476135202522278316630905222152663183638754308330949476168440552837512819640374137207793465194612507134765260021134840299155951949944646429896537764501619097734369056491355876114101870943860992759699105286425948019364639056475783172132432262881758969686250046669591199995060202416485724260060954391457835643897787317237180642485346910200806620921645548403415686081450782072373203108821200119029087185538540436307493687987902730385970518524112567943691916457166798977619797239097732783570384666126997831177470149021270508864839133139351729685021472392102802731690981453725969209987075883058283840599170383822865326143809800118760957827554105701286385513343448756270914633813460176781877133204107096328319976000522653979324512686716281864553698850236775768492564887727157064374185243742519619017035721041758685262422147088021360501644420111547571788585354203821854700210925331137544257670332079112586574707753128997925836015227198327369162005685311693766989543007855118805311667502450746716879886045133784513310914656814170091975149849771145419591747580496389001862493581871594131913813445904580050221930550938288400073638667305362464522863133987313369128517450129562926021602224390133454216874122530823379252004498818858024554676926608663433471950505468082164453973515621346540963396486411025790886830947419592186638196108947099329226813805727591429229263788492246248606488962609358682007214539805442864208935597154150736554560146942702873485637267499268188446257859389691857099260441249817977127206118089581614306641293933390245822015891329764941927341769814393919058782825488598781469789661635616792151049439983796599246787515370577505165395482664304958975430535529415660006638698975165277024123109519423631773879466157527768250291824441589451726817097899011681391622557955042921040682243203634740724434287697738068200294215653198879933072910420113285977947917262563527463716415047464966349692605354651901854548946592784802014421451734684338094249502589136030598735252205020340301307138360323633794394218123535531022081240097310808786599869485640772754024262100136563583672716292128499840080475887670923971994295647518260506880163037285966427671001725954187014522810120143102779895768245575925801755746839482857264131264360989456948282594067012065523408240764650521762018837916811408514862723904094231952122086724834190210276420636836726541949189828302937954794970691357661449557955542002590426337962004973204015936286246454983174101496136317820094965234509654344653634352503374098416577359240146435301265348896466959801637467657353339229666896536890520651285459952222413417600954579570458743029141469604629926533355311555288239016012136638991787449324751413165636353251543290152453512968324187954189970540247974092136332973581927094458418003474635343260223934482234197815582470176079833703180735661461405561616670168653952863464580440564048594975153475260821438855038949363311345165341567644036597695250263577251977019753551718543115440166442494187272013921773993008840953473202975473113735494179603687707791330236939160041121949658165233342502833251098710278216388082619025518011395286995293443427527210504275891894977516075025670199689290095158992487467699549952054152962075552703460643983791632026512260060955987209616882806832530353523733285937259737393744588642704866263784612520627124266008676370518268634132748788124365456057823875367713331179300576975548414365521725640507814046777680907253038428719406111157172399980132939793973699437939437308743841590711934524673620542935490735209782600776721860670403841423571105358534061273508551018261730440316043580205298315810914047142943991596396156439310946816018826315567011658347349773426613017439551844763664871201025215060528594375446655799209556652398409099867146787302847089657797900178576908975195040198850026276504840325938522420179773359189143282136364979686962419793610474753856721908370234351535771997022469179860487017145746943087958620761989466865862714804347690554891820650713530857121042616469060391297825335413150584779133043214850997130078541674722910513342490502323240631222529852033392901772640704961971682196724289596511112974783966689444511473068041449779994778370685597416844770156902026236195883530921141789007151564365407075755225632922951767938889325423059711037809406718041149048330505243609847245355823802614950802427014593389303028265786895396889807576720152731923466015571207128189315249864487619433235162658022232699134601217210758335143163756359271989205793140893217333077075184085808003064815202309222750096369967971211613832608723431125065115326258682469057762129134233075106113324268689342282282730979911357586458149312911617934684064511336080128385363874389484355468036665542433673628429122369477726498545975505944700738148895994495668861359420705522299498220934825282624994510962057051830084122014135818520872942430311155041592948415293071545484931285896850635630240868179414876141813162187218735964307870224631755950670126309982251837110014883791785605830043701404613985793635892570527634457890507205863249649067914264704174532629454382924842868688559415978846541692533906247717886249270439858167475713059369332603459659431076192880700144897903509355846386784128840369371973930155445435315941730139653922429843850614809944183975125249819151723016897729187234571970311347355040487568937911617873263859596653082954711839064948733928353868413002367064223403669089858997827834015166087925685196010512036218469879445993452122603389498597208471389204926484045574883397450004038257861153762859666299441447480010766215962198402489285308304096748389225848580179904878727344398503940953271210986933350764197081975255210343581675792121482331273111101069973242665802976160525089919063853993230180985297698932268029443606931800587474646293264155749021111580039743706886772419763400687749661678535112406891462990056335536389479367012901656981572300906412883929126090946893725208779404288287531712458763398541240224910839282623883274328027089607454260999282774688488454441446258584602703539181430679225515988051798987175973749349544265851287845816022380839221662660145956491792688701328995098348476490258773407959946645240557369319061887950611068232845054150174997732377145928139096101886983396127594808557841965716824970134759273468985040990167407664157556828779670862271254307097653549540092727769975715048823068151164303372800160578166791158474558192543196786749708319883557352662355648629771082007236744438983712429658059044610666794207795650460043986787032056091861597710773042947612378753347926307649354079455200301311685076374612972666994715111309594467254650702351257204907969181377043670959104511004829891802544307167197968961323092871323410370205968096916571916492751537555936345049668558602167374189851047740537692526656629801911619131026323622845397074205037361561283773593844176439105705206995235021884999544533935835433256192414016166447501962393021363420609269114587126141098604365038979833086022602615132125595824455328655940415649331651849363935013385802942619924283343234665331203455001350614563285061462010140007268964646186339367642439343059335361820463115570362681294608289617163042194868443637868276308668187470943432014921821580320194771734364276147462111261719502314614123940614456423229492085794913306513217536804696975922725283834391907523602069617893726124950553997122911311510038403148301223617944818031798021113758291475735204053898837411378567742682300246009231412692053402192652506127877503943260350055052041275716848376887916453786437625763993956966297318894206890885173716137276586663772112493707516716734571450881693564542868334263348308828572955833543210259787960742362538418663166783215552220592479175886979037964374274851132029948261761150149429275638516966821002257683142005022425273024743430804272879166313363789076505545383529508213552650539897864492934881924917614792746247097283839598500540564017799932783667627303646719650851518216077365093261883732978612027316476607873053911339379997194931354140003537368995900343660857860123562869463682659231706402525926901373585348572488842839010758722870177558538771445102274055602893929196017668881768881996798218833146773512402755703622600162172138768107014155363129732823409583302470697320991188419513073952036267527260164237539673291461325371365345631231747683766817115568476133993003410774380984818796562774776042193747523793132711291846630365518479521252031438570348551282224009708213835774955101893419228457250113591561182923940992075492037343607889846249062839649971060080469746069316765266539248027299876855783700086217312693514445343681136354284790164004356118548077556537760462641724632946767265335919124258108947492722962855546691339293156519578420933550861349981381498288034351932085145734269432630789976668253063123678223791561929726361382305282545575809576671975766590287962273352634725324759197583099316863393241209186902459008753322465868441357922787369270224900652246279663905017045783221075320992691061008679698569851801313886271409534705380501052816676526545145663246504008662726900059591489480988493101810930404559818487034099038881997744707777559292466679050302435280446056294943681294165059283940017977797363403897675691922082634221091660288318817203017551949804182137121056324323063556448852132679977615537935493603213863355146677613585532159540814382752660804432220523489870794152112817951037785351311245140666133897424285120856106140353338346068118288899265290939969633242391061486953233491076319958969390963315766047905851457442493865151945492409408987091670032557883634840686418685378920385391070581737758409623176730756125504272621539560557063668479888908400745206934409037765249339282935815727368724546110230606817139329956216018501974203887180821015608860579053145524072835713965839432882839971947782162734206322045508881957341595980806025751500136633421851334053480394996179548578654072493633359413509491259146877745819504146117169928188025522468254669367960628555176552407056338772634920732824895694193123035181033464776566028646357953559020254911619033599508489125969465636104670884115831226833425930574632337911077624632590323545522203695313566117310812162862164946008152039294959977500788360352781832749447610066071142420502699162026751482968984664469007113724924964615409567252030930583190348241349617838179131274205921581384285975391397961492994875221518475151486434771809237009188976182264315798081165689516546878360968333638283638653436558024419861556109692686188654876684934324339194704731685191851728077762326078599723401848340196210456060439173307540195998527809393670207965763710418743824528994051048750827151602824679603068320036351837462686691304567193022756519207986041463069471547858879091747356957672286840440716905777800447100613239145774080688765763525156130537893527828632103832789907365265320419631076713809059375044812924579822163116838624532259703448633431765714241439908714881089900081258967272429772116218585772975710655584626832775321885651458351855077516623347444868962523199536529181833594664409711975141948681694856858983839994564427925375240245754613938428724278171106126556176500253568638844081282856112674222454328964873314699749610240339969541539543751858111285284260801575437070859401939626349380900021024256676509425010835437325925752751349621600397013883053225346399186254219644008921321477973477921700088959138556131101461039680006330749774319109960387154467745505950286236427004675962077345452976539735220813479755179112577833221861020845021453894661167436553228064295989335919944296040227536943846820564255509573660142795816892187613364383519796169312284462309415389450339031345663486903085894233671172630903254754390646155552280604627997762375376989888102740479310946412531401580677677117003161798274259047366267308118882488272678227394925467784947200610459613536400386299983299236381186085527000184095521355646617022395119244645736120633139583886024176781820829291873438064776876870468287126959965136729775345174011435616952962847837389747846754440201800338735518298092062816955126753014504754260692842955759804823914587506529652584907536818136050685852257128825100561445104791149878257672684239556085217773875861395352096121153346991159681727908940285567014890377714034320853038360452483214323937266816193781989685148166254780769671142490083637990624798452290947047339289257891023853028632021285855124503381618489286008786640444000777878762943610559105967466853754383376725582287578887784700706346533517620206217715006987252912276244214318218836653660527685871594249292961304508481488080310392406493747316210320274061547014994405036703657956145524314204161003246298353628024630170186717746193396169904512411363531506834387532821321978460333459486456831077493701340987690601235063704841257357545879337927359692174194388107794078786940623071382662803148981648438771935093336055448955120004028528394377781124845524839813636518730318184756643736757217492755550819126122090573438022412393315667639863698818536142978106407496622825026819358668425742470271946302779533601423082324768737120679627122222056816485239650747887761781635779706907594614535450564358464938974574130026538739107503047856930555306731742192340697720064576902127789724662627104686901201689421418301197448661942221840887061352408016536050582381432967386207566289619638941261735395334852805269100606737291260624848435524781844074336681497714039153580662496987305748033768714368526047796072330442632842830496901479266458516828010899460431291187290108972745445467530530159212763597675112703481892160069279144330441227256074371731328628686955236343022199419883998760458699971185092203492013162999479641315225658550230535654257707720299127260945729009662810872826299446717619469119879019824228965057567824115940504797333635151643178805352970739953058724574364571955233005612937122927041753065429379290893569149766189398545860869804424836258693983651222053169288567470897044853902108453730233966900155286627236745532771876959532860510893270213533104050214501541952890760570640315309176167325094947100682868489412377617665226525719743490670947867195690105314044524714045247598913158460099646428971044843311737507073553686632240478223565666589786043325596069027950816257472759950631877192268336841294501331515185920297133467532802050352510804669440039635589528701367159793930825615618150776701683160958819676720935477996536709229389371320102390340188505240376880876632837885775646363191780885692879982258205891132284126502027461842816071017670794139562923701422287177129802793720470988901078396890149512780127560017442994195392276906428027921469180419577865455830089714379871002805247698672406066188145534162772883005072729987576838264357723165230463337626938974198995238401702989042542122884174812426662326306576078414783797677471580641731106827226006542102865661875470005685482865060425809672754693063775381030200696232453802748065563107727270086112756592456447508175513710482114650815883449989082181454548639466402790511111745560399125589116301815824637900703439186875980232261237321981472122500265264625003288989942880643991431037796774313593802390755832467093339439246572882771519505841359014615609578670124858929047478174787411783703216613345813724925422870153605919305680425936098713105069982611246805893995838203039510971640097493916505438859174220730317948220906372637910708259457117417788709253172483404404478231126916532490121285644173330292645741871120906138213840162315173059222295318493099373608808503905227923850381458575701216218042449604451642007498608707859328526987338865308141403822903528391794059800718920387213898696621025226682042291226234627940830638652735449759574324899805160685906631537860223794310126960329929417423472593523638061067035529396764939775222282344908248408092256122385751026488554714188073097582306544417384505022447874396507834117655715858825273072673689521502363650196032443140618564194623900289480465751842547684122063536548361616106686912554139659179192584174662057879761945708570800589232138080185874194007769228070381795800877040728142205885665282139620582937334345969777534668792216217388928448428587365211096453263946402667216827679316650082419450374104022377847912630678289614395280827900303341037381712763678704937646262136298333308436510325734680830375674190803817002958880455728904699100638088874407831694827758942976425378826222918230201221849032617782754448514539442160886355246247211249905874051336733054761424046976662764351763886985039116187729300033462899012068645942426687433775002125842310458226309910927437196167106603035087918337336325356642709192663868706483309551683630823200446522409318825269013057576466121901689773383362514568236800508867739478498931518899392344555634868361572375236789656081305554997524516177729116720057859781662628823550895324313519403850143654891204610356356594469306819269021392705053094704969850302054642341219056846153155804140821372089171783179371424707334948852345084536873359641038245633250414202156140780790434463896766812807816189636334147903611424678066149131636962564695558547115839107230981767178532855999841152857461170801849802257162703140122674407202628452093710217145217789815653399721872106500166853532984862815064248922039364611208366183356710222340974381637528386915426731428106142291966333195285624618750756200522715478146182595082205179340936903195750288382971251748541296669114013866927457738751267241367424544257252549995831224269657552800096985144347327042082469664943320759497152822050975524690832951037696198158429575928718963844623808072867540498202194158867379130140239778502262926246435141877025366844576547482424090804529109132157522635860146905731700685506684576844423115259193182077573692829316795146899675572017135647978179287306678838324138535012767706137962039660858812380327379681876499801532363148978231646263081176425955477981365987887995844738717745427257665312584322954726050163953239734950942991884628098833731886330183263853177515748762112523865374281876496157482269630668640385830821659462145494454629541043328080265037413860679310661718211224110513486234141388906552651296622728142120055692587570394311301101957455452282372047689527736346415482562519248510126857006408023401062747234461073948047038998407984132236163284054196930748535050013576149764322948945364160027555619424982974308231953198381412332271274147258271382471584977253538371318910105407761118611834475316873821836869560591700012379386373470905580871497455651893290338681647257839396860247623798619725750112749348687467582274082726902433639174830926809483719831717586792112550363076258683363905474720876519794327601311023791102091681238099084982976918620726341318078993135164089691052287798949482889664018104208161691160623002180730015407305927141227857552995482624479510788819381350683915724400630395156849134931627684382770831190527817927203787695051483398676296974923257021740459138301581277303684774943680818206083511766659566126281703380035222684531599286654533143063550099535626909685688431193991393650569738459268053250837099108234515971435469658221603292831200750109492440964743166796479548071930935209529130888061148038771689127209493883555327366319404307893270904366815769985945013467330800776760208279327626748367323543554251422144230170726873863779225121365057862758786502302768198095865109924526794477064825730562909900522802896715055338057407169024262159870747676512891276978090671806064568518442053314429463374638710596750568074834790896505164611941995395437213146439021505226018722284048392285588287566465583532626643839780085514835997458048662121840887175206473480646188227533211841287476183330410177499600077838141809628849624281399849978054504419408576866874619851664483253114459677757765876766996801632476195290903312460499151000206639361627605124381738253413104778918014469885868274992508852757315737448706683240005477119483733264662879640912203900142583108391689167839215772011957870497725882615522833917318325843441323627146551361043025118278875929830132876192685195379398437801659404152814239093862470968653029116748550049067972233994749615386517112937623736824642571297731114414622067913019571480339906733379465517837531573486235573177325667451888847947266462073986401486084436677648504498181714258279114182426946201285123741812794632095909093322811891447535823828812058740833300743517461950513022482570434916821339773951987650044720792931343789050665523414558077028989417866997556130966605796470993530567296771111589103960643865817035706450210740111224512295463978732946582672528361052385557916231549201738014378951136502247938034785360919725322007386515979167191763030603266337960541939752972210183351389668089514618431514190547164550040004310486161221731091855242820355165302028641354752932738078524910968432107926249313407746774798755669035525408385454865454931818843916783638123614739927759778288462750374685143181081318100276646701015274088001920373399258836505208809409732542010841010091932929048196741305750402196955471940259593504661577818039542367274273784568228477000019996434046944573721706729548782056703304764528752335368060392624644135576641827798777489828881960144605788778853096893276184591452839665227287044726944756945241136866473088866149998350623159618977959662728586190734226287801406141483245924561411954048882854990456373634147446821238626000593035068311096035344457207372279192457339644525258249785756127450498838884924576973957842711022301974134437130177108674981894361385250596886518683730397494646313025484552435315656480195358493048617616110698417708899749981684066311855812945278538833713779569525482248953655850739533294040893059361186906035928084247067008163637109647709313740512551478618005375195536231283729066756824704584910766094848885226637684827907077479244679638675473150226856335412158798472633885502016360500061411087254482939907931968769367184149478215747559358370321770571652729615706165466992695660975260505319879045799240775322199666980766289541101467146958776714305753910914715735444371337992963261216142079933729933807016240407303362477245580248347344085321307139973857270474502604426788985665398144987001829656768041767392058843984223111973593710071896005884209600452718220682994013507657256365580698195547551454082257415412544230344014537690777099545815250307956737534017534665814187586803342108257852799441364109682913507592170686147099698533021027840204023082051722497982582217350405215472771940785954685549387820535109826650346167119544680819628172134114388510962674670696939476913858649105572884643205998029351375304156867729897359748154098132644634062026412062132321193902377187263363957782641135152471500735508313304822517181161509172551058731253116197850772469142140988354436177920304119525301387646858809905572231538807472332723254356931843601514897071600138137981462894937195449196415869929649195935997733022799204643419432916560786973076291399290458281446723143405562831639495809524918356729198688063857350869810804897670010403525337063344434508810405856724709170369200925013082861640968389651752971673604703960025224529869524128250477609735128671626889130396506207735652251439230990008620785947437416118007624408422425171842721682298062448638799169576983315615847495055735821302314528467020642231969772629371858668186396861560538441890989070507015214409259419000250037879507087169011272419265547419245307392854265981322140735042041034115232294053334787914056144818167346186896675025710770849178773184135127745066528618114169291005221631866947879468863575521523749985012116086166052206547512347725281979575026058409803389061384401610992561320129058348080426642578105430316830528738308405094245881699032453622178739131208267159702626140350913328678311374116289336333319227292810079496765438417475464574659607410000337420743811227830785363194953818735618133760060634031384666143774940812855792101782413865157543887211460259206173054783351365492215709218584022450976541507373603980463079247238121658723295547380160278395237424868496031379381664138212090221530803205064773686670947223849003249649661518831614053850503865581437461993471499591425217650173368623202745119695871274962452307777925528554047845121906657387588127714463198088930037796396748519172171862828868598604131704409391823297221699999418441629188937337880847552809714899008861251339382172463544939591828503808721195472425867368839851451857569957270168859271682633361297595109993743625366356957821525406597202272299234790295987166221686690930195074908031597086976926474549620112095983928642372146398498246115182389673412903071527943506825446217939460522042067672248235149616682799653336428266672196715699666404680486682634505597856634696101903252692946758905541828207562571258599682586911674750442514126682083772745811563212756343054859209249906965191224060660488387492139719612426262430376608925086469678757497663929333603338708326001255939930130968707397326831646349516877748779722825442616860526025381183281213209408269953590719255054773691594499988997171173070029331463711798869866140885247329443113088486495133144132366336855204689285437956874401912657568163522162204867173845916382290113308830623039944356931720560594658439160525848110344017004177469772161495683990193767728761687073979493016737638108816124446992243309929649850455999347233756944579508847149323535784799023006380029062061011600515358620440792491759124598055399223378754838383963161748270464571398564913819316277951609630600572491090344084429349098655365663250836249584891435476487486671799745992261815299653696101133977260874575486063381189310423758777674927222819689989368220236069987185758906310342946955797673311020981369168884852428809069906950655622267781531764534135596415751088629096571223554938706334828140933949482877648993963154488936470231422066378813150713727652059277389534740227709314243241747980689909043320574156594254793882383283753392743408614914122942815775450833869698635141765758330748049285679443348097525894477287990652892001747944137110515010994193225135760737134635611858334822682714608213583873524343596034647022751461307448845572682833926823912716895697589463262802969213598038976263447207630004954450170217877236632108692646659354324566974926482102626632974770181445684361971907075898350391769036243878932805625313795645504351372977514335000759989148531910281396786969807118067952189852858068059495278991199522688792626720723887872887150123000707231148918044060641533279090946403581813729981755289719842940583353363023150983137163223606151896567864250535781062406499519702095109247814860533025317763301536705244270658421868543699789550007109230680131350735127474710195856639249214067155617660724044685371761635386931715965720604436843273643676856717158973539081350560813336005423273517889907257909094318114256282528368440306519168674849523371229551850294658921837591254394158168076980595956073176687437523005879262614141822041467881644847546585119144479302846775313710204413250693033714470595618175243449296505224589934542763112263268171388948768417534825348596569897341084973035625855686453446404268723384073563524200128953346386849574530639003289885817684281621277541427792275841554397623730833042012369703286595878949792736676337868101132137373717584001624294001764061668828509390417759204168211280396003758668499844059224370878833445212772600697865690804208787193238608578765925835465082206166684492820118233547804244469939463141703258706034163003958127696769392511782013971081460160273732563276592634917437519097832544345225814522032778108004285867153485232677157709556410582074997190304412250235016729159623942270268242597028558419616548534147558318243875583250082343734655043160510836338939416833362735891392568408722126489969302858919109287775813484365010210319772525405447249286217992935973963185886936645162002481084934754265676361595393053800035082519871515412032424330509671363965200578318065000697927127401654971547428316149452047292083120426482559100617194871831417477013263940186447731949833353220968876636179385767148057601086114861532234460928377119816295094195426161870366033368059556110941258671800670216286927414682727631525760706653900331577889743964211382016321198529601707929469652227355792730217580898932547463115066975681103914368017961531866107496267021461921460633425427405723488924522521626174901066033520466950692162125634635418060425981965384498554258820883579522719214744042631986814506817161786792376456392637028372799324387418473932916547196713392439802924845497855966571434323744997275754477265212302435624407284103605248745293729176606338934967504146118269178391435650770589998788832091316770742550932976714291927038843166327144800586646896927705184175759764078027604792152888740787150359675111448979972468530890101356150446899831447086143001638290528748389843143460611349248596318268762850032887946163120155244222914709919861579751724010058444689642805490722984515743902339404176653259063000544974485472196600937250162882465005712061439788285014048552157147541601127889218679126288720858770411751751192387112780501105519082266422892626054743276424244463603374136789033299748546279038438190677057201341137537091978576839465885717952004265086700880500018896281066192420926324582510130439693215959394649836829344032142825246287480819706728816472867560730514821924347491165718775785361109943248685501871693468373474830879004925534037921700103029512493333589620028523089546826582760565325271130025808867991079630552641394555355889788528392210985889231455831913319032859742946156065973230010061589457801816982386527395589587122377896013883641097653137103937666353428178851047210609921607888443434180349667076898374154014728762821902049333981370986767747210140647174781438379654859504921926905608659025499948920524335175861174143452383258631124919033120382341924908675131183532311301419253912598890800132011577163447979405386169523858964108393096854852895937977983397829255751397290226636521183727911130018281980820316441151950259784301644400904633274125927735848126505442031208573406243668533938299210930165383243899590596527018175567817417481917472908594770042906489556549434062357827979329524504981063516406450233187255567643133357705367017916323241395595764570899481966783465728121250254378091488679388024888735851192643057360698561397741033118113230977256790804891446796568563013786369494940512863775419518276482072625372788341157750344872217140089512080086405580299063734114318527633441363921945294017400397503204070092391342969660786778713501526938122043103526155326723528535776213592292615991640803731477957895492270774758312171463212270297770761470464767560700838525991155422888250394188070834665645217421412974005727798503140380073675064707262401245006575448995062312373361319903940390185791502339863152230177947695338999467963869177925503329818096768570060320736315383593089908550448700954008610443222096580530209880226618721747609301789962101061537925738134229150165394126810220162069444056897591474585656091651138867310574161065373409216174985387758957306764057043103370836896871975890843141529600098068108521651885942095490059478569075409917305707401401050358423631740752384504615781394663797628665467850143951688120911674870010927661775648809829036956806561980027536002995808687806721669885473225895293889145478445347792297935094490949594318444806593815708326499118820725179322324557568904277379286014237142444311743005280830875552812128753883288570650264863349561895780403754106139397180215615919813900936122367834598160586587554004300495558348595745959682564303166234112924272755125997442424760633531913942504781781469618359558378327575475008947340380582607967990928811117640657348264353314727313676593075497605566595528221356003956565111215364520835448826958143397466054242693522697923815678930827880330999726725321938561686957928224173739921127845402832702850528851657047559983192291392392741678743765157232891003627676466010681266991366342809874236385874528525076716052130240906140932210241285890672512538919630437781504631603099633879275195773367926550530865664396810226314783223748804293405509109957458433029035294384217153654746054350697197097179939104249229202997099257968911213468583516936557849247569717487491086249901545638019287376468021308557198197653223481440393843519788193788691576434121495724306539747555990500369712846396367647533924298160616669068155431272639763741119612010066716344816501751333984486037012571105524841208728018961062331377414674480879600351604718466040747929301518434631765900806406365916518418805224894858719273410028191489720225475880327896666170061701492175388728512949901165444922727321896473324679599969759711133567960560388900677960509771610141214952309162830122088153257326196260137136209253451105673898589778931349905244036106344073451930667722501424698557600417348350580200431778234770249769197648582303214234604240628431505532156857129927982213967317316792276055978690844005178863325026432351985720676751832865914497761633851231895316786734981690176943629510521804730743908392080239443576835032058767465025406018193958816048219239068863155939018417107164034891580404851536432261841063689519970554453045050309853640349996551972802314996161760713703749864941650920092088580898179674441508904420032075786001197760564752912929792377837861613998402370926563853379433323539408738746231070504258190648872994105218710898568095004366470783716290092144460412686740792729689056925424242212371683899182840848481910533980608858399761208458872331585018398525317969957786458515901158660052257000550439370032978139907393497291537280486130752602327446195061706087011310462094797381455637069946484016933709037817495134099629837585150091149257987526633689433902703272547179271604808211853991179499654509746446292255521543079734563791894328965522581006162452167996561373851115246110800078618144473615293686478786392265047163406918845118479513226089542585328061233943171560322686890922531863194258076568746137717018679754249681279516985102037517071102472148144185396031622694502423116854566540598553139747677858743376790656183336747996786979977801089213977601208346418946205110598688307917890425163417228128090124135930366525578341439752807112565498844062884663171802833557162070182906820064871009286780076621634311255871341505400032123586923290355392846579370059943846958145753114699962947059572645219349830492879708495872586215947945013609567122424542610027545805181749707023310301407121434767782242564012596231538094310771345933358876968791205529928243861934612668807404658126546659272101774276835601094982705066535360201447585394624053439131539237602540363882732841098915914798506126192583075710844690119202282469568861567425370809081032393596871070448015405218037306116923890244113554317231556228396186659153641579793518911843943022769738278205746087737024485462951998681095124996946171837968867651684630721979553673580217624387915713229830508742859116656519857774252736218867074057751653390156914679738001049016667061814943279237381065755327641112058588893618879616783546766702062320404776080508610728958311024892343583391483204750827553086996536557971877974385640988613859654832450614191060259874123419304272775708717170172748054405034187985988987063718233901269747478498628547084039375144996010793953631329226328865483278358969661529719235241208117016175845770884230142119163398549125860383734816563025157261073909061686595750745988736315820264291772842256170953261425098082693006685411345580164846702800918044369331978714054219317157003921010488449263301115125931093070039819059548163967900545985962969648412540206005513921901359464889869979877623927685342985568829172448737479118407087832829162711508431224901904935534940345567038117063229538462234168289901963203029231186008172373170758347933786973484209326395915306330257917926269905558256041652667158422507891154845373631615230376238187365867166840543951544654554919029907231125466486318742287922040092726106899211392622294041619225407544614195514788859016392221010567571986680173737688307289838156023818732543260769087260576465308604885700166837796442184505990039127214270995470143410295834366300146109837063907179901991532962911600597050130498578733851954201867534750536175761317936864393679658567190971191474851863596296420586556983851646976099891052078753503328537379537845664558037697125577359856492785767327831574630387813429697167548225022259843106682643761884008827735534761250711891932086260548292778059182578016155675825097922824239503589888822820409152458736550906636571390112702744652900665387180797220776819562080832441104338083988025976806022083540229660442409542567685094800286389695528684674472069469167321551707604978644989915007818649756422132993126181371409331535435197917970311510406502627772382356202421427651558869431569161241653393624991584736164605974195217934190630292802345334574336737267395252388278448244487498837846486607310859842575426887839178054446190724694657354832705911429628594303112370062157870114758465829841854758288770018834226233865464430151458256711761860272580477402156948697153498863177389114705992173195763082508772287582743860724082150387191820725677886808432142979960491553467749907034855349951151152450944624481742241392264981452846303189761835125825604275656660015455236378742953886467323597305128025344936662050036353313754195345327929976545141083919570232952977864173117211569166268345953868356064017636946628436150496572460914738535221031048461126579487956205934767347973994597070885985535266251520751419441389223740604828041559462202383934722442011783870826668850530689204931915646797829760908351801877417029642595764728423064607542185964961817052711787339133441185396380079460455698968546894246383256075940459699392999248302667666875291877612179848073087366745642806958420149689632182262502133922625189549468100661453249561564626300713837858016576618975142957890419039539047983853147148792074969839126420053841922065829818590137024987057871081413052893843989252374023823604756616696986957507328216667440351771584266703977952572630660416833867246656936611113521802414793194027238122507379439783760287711330366887822177896704684757422356391317946031412745337935181860113844782541991701867524141389602091332424921304483609221665167116246705123321600051221079856481027933069678091017068177950529133275879526536879115040604373530093567365276150446747615029668665457568168861560001981208550265163990023517765705303161618745188092760369004843856020404487927990568399907139815821838980908090425724568674930505919894662708148917799035157421819219618950808107493923949168199973311015428519996152208856062624397132767637128399906399215286234787661171224660878072322942024257933301792222727222204481141393850396715589069301069534752902619279075336763895321346143054428820014598636586515092098775513170254960534769597299078043097956438223800805366958649263587901008861334658876035000941027081079290206174403758021045811430060057465878749786010230169162263342692740013718697139236235616181177441527899767140235215322728975649549865446311708393977883528492325589368533563692245393474164726867399044060456487628643385532125300923473493858816981728911260816520113512472140152707271100408404590001854738176663634280278566671273868869815657262489225688365565834022991288063220849525206125939662555731573819117010441828638677540974807893831433242474053766867804870660232535800226453963582609407964623573708405572732411599660748550126738186275878375805065320790521899073243726917262650219993716772071789675602661184091563455503690275235834588738379845293902327054194947231693642073965298749458134221174397343254932906931201476745869140407088763975894949816523381607361756006442596941019308276245011591866015795136216774582956549099210178086094743281200163252149655264377121756842572510355467072731716932968440840027856755285691142038216620921626202973329633036953804208267986925201813500042279831051302486369595331856825998867754564144362674469887958885254248407192401024822010029149902238282039154800033579799894437561925745685842292887561575106882432717091785245252762541268161703195307517363569568360743164300232787133917085816410809634448709266146489188468893306323035165733791644643411330221081392929588252375672601495685471793003454912392049547661273631837283369599256227707419913692205365696467366198084967645944907033368895995999645690776696749959600555101116820285404510814381960345940777386210240837466472820500815525496709121298269827132754952072719865408842567144212131429299161703603593421849594064657021040850865012588602768072654609351949057316508001755550561576352668713064726253101689763274342368354516216112372683049909377460083484609785714638797599988028218360264823214375117295086673863387222465068928857591970147205564872510619375997048752711744394074026892710945200411663716105441228153514622765163320771383759972767210646973810235491476723926449123655350133008669197388446380952641730795269866193801414164661316956125051080384473670017047012190689590597647158562852733134288364599537948946972216002451453310362517199118252866942441411374565464759921039507623412815676792660086684008175245754987947377967576434555063358984997098601989952437857959930031187808371883809443412150886724646969076988487300093635203489407668482353242570395881020344123125463902769115451902926546236047081488475761797404057561287682963620319063924052522415510618182746068510707409858312265749322555084697594444837565946553060916269970062224969737953381163786310160662850309088706057298428403834222529537797545924203949424959841124113830688960788665771782185595318524107523569193068150224967518910064539976901561953744206010673032680326659378770238732640625945553500939139571762637864263088315948230126308275153669743958826231568672828732501931806190752268934939979264292230105193908405649153328778144240772049455108498534766185637304690700357271190788660730537791519032523395649981732483095185661511209220089916975600707535440099701606698795248447243422206852812409253033065253178648764359446951287212647162739845138748642525552669699292548332868296868840674392322961578680106022596179482693910359316039400083780263101034151944525272745247212750129835252687191197379811520346154149349763971646127490571429313154202246223471601614473475042423918975090605910534725220133419221992992864081551580222438985995380297394115144021047940682141364903478455824818439515670909835889068573719722607187099692782474338652439939229721528093700668761230802971410143211408951901054297522025675590806669506855990975424155798523715958020050991023066749274872781330752527071745684334545693971360400004238330009016892303291658790290287075735027324081147461705210635836932286317290784651462530823596663814088615713153353954448800624813259632452899423625014118738407524426159077826487477851998363399973697682027045254659417742760043249203953589372166331403761810848364025820800812792504494044959453174881766910141097681258897634435942356683735177369729536907559550672881925198225789185266998635359773351857983553053218183791282186491158063773003553446290350733387531719198180064235627994265888453363455666781177755825077223984629907698573770777763646238852135789576932538179622414552492514394926045586721010932977384494544140047192602489149289101002467953848272755490330254887784077264628940734812817529210532915900873829471517238103796112481649443257291727827711945164605919179606368586002433442590412494593136963170357729815197420563019952084359885819390794769758713711386596038257609625835577005375642458612277637286922598082272592787080435954406428865236429011557310532573981896310767746018297511512599225597853584996829563663036723635572116377857849267026687441953877589102945882014366590963762069909315139850904003805054638351423320732663692412034419957197385963454472940989766678787498587755569433144909678813661533461333658737929638169404766310672612189581898547791929002097653336201430854135473151858175862543462639187808985186717846947196231109135366690232130891661514441904857744455310438365022246418039707871577034361350332302786275382231465826377017220809867971157050573035096073845334811522209569363131169579994408466538099971450065572044481096896086803163445592114566969578099614319529028971029279355265421814082869771707944247583575917032673908709631511500018006382054518403421165955782204292043800523038427570586992939036690212003940795115165929521829298969387002568849977404578900343793051107834873855825672419556101106846921939218512192523579256528277921659306653866860949997744429119904803827015913830496110020704881167521000093727216805228920949594497280011030565787790674416879142631157473730734981661645800776710486170895402621722369136231017745253712975488120857116453799055174350357349859338917284796179421766984418502858374211867040786822759666300496302533173740382762300821338057571921303009854206387579661710863739818581268436048899560456110977583456800269900630490507461390875999656864673020136825954061877317815839336823640722251837221332000756708870441212620850595902926791634805612154422423524603197516731486150270299509443097734551923366827765271225518552865593152898888941889644901646278983570538622212932772102214323260925223246243772067886983373777306764935034333591683785522276861082541331984773887107444644232473014120362299584975103610025155915709956807293943155409494328796900280803164542084909427536483432696036553229820314880340934996965116241900753064132624959571376723094389637024591772543726006802594986113610264452545913298005936938865862854870630022575813088672583575361536644610886009779120613805004606802486671611133575094655054227341615379258300376831547258281650222519018651248804887059400407788299567542226157515821939759448681409216456411782679039110462500803346149756989631689216600610034187685315888892719311429643648261102020105428952326914300094214628436258725236153176378549203293686971410391019137645940204966016755034344381796290999274603315815031131732843027889178247290017947336566943416184079507477758379403182136024573726190470595496793742834594350404089138703022566308596957232370667547738346583542567222613737534675993890738051582416714914105596601348418933311698001648151848328141197352490919896725014270621226076885861140913598794856849312582439966853069114210759385623349149407296033997378028872549324005742818531075218525299968812342513832049712451243464744736517159014663711656752190212369203265603104924333342453489195415683713080589376970615187630443261527298936734303409938509627271841557826980905460222982109745023818122083453703013331641447996529472851978852993812680094392724853239440515487751863843985331617873782389646414292611716687237406593031503910353447964659390398099183156076657483543518275340214191821915688924137627442865674195846294215082853881534645621400224145907267813590442011710233373871626900081555763325110182196124978511540727775427452091290757437363896458612833611365687502432299726054101593274904747806375215677575343552428714799766036576994511803145488063765905834303982872167752642267148456594187184850848574430162829398484422533753021159519379088232835078442439621120788893319219435836878070882009674560968089852444809061670370843369981998063782811409816941015916518683808152571553812679495400225091894998174211911650668859817097841403708708648867442076049871766075142269755577670976133624307078853382818873063440847109253136715677304751762325338378106978175346925801419720041515905268244577542122257702596186683875988351791072018015637461066197714986317156622337236675443632760302379470185819217101523058438039135940377095340205006486179391015786677845378866311384947288938708512647539748555024186431754195939648719890638950152517265429558945420231458173537707854905305725061908983082291345505374480106641742959302906334972990702735443680590081994042750706739899426693052875812957036955186800297899709318169893762313146629553197728009668701308270533656752727200311271483315784503545574089583438843583943825192755682230656862568003927534616244796002227488444772154988380468971147980042911812126400449929859494157527156469557488909723198008966445054402850268330879648124872475731233020971210837823373566426636594604910702219562917011939653293368246425334151131722327145097799319206796969852109815933646198481689211430526687183059343764639343445899375917260397531034894269028696399918239515065997179094944187421921528867568442651628260687435128245659702596395251621290285302718936442968194913766396548322324331260060387189266836217118046511830823724099628109289565482497816232837360144821788240774259369437847851465170180145345823155521559047309166471595393920308353812539968163390796748548385619466056625336401377342577360494968576448692367709158805727961198982108456017901708464365899592647781057360925113799485388206252417342684563630862674180966167885045981565009833627258301973703852965909301136090006819103636187741682724877339949901562054631524223028595415788203499296783007270889540446265988496221605403630130283710527634416448917853194647087885776727763932525825247108311480446859134572927569678541039333260722599640464040143791181036211667176023040666137336873697631829589824631861113012000349371506126509322730771659700846067335633709660514800616313046836445350897446529754601428822381515797015728841002745545082462281278218327854304930105353352663872000596852090482721442088514735953155244084742077733205949624932905203344260366498842855626677246214970815070715567793969736666849551016928026904126646936636083368314150399917719675349427803200607937143603967244198800145285395946345115036908706657669302397606440521288131249923818182176323308453886307262910462759867558034648522800074375489928191291799245517469155482783483786015250038553568700914071207509061378565065827396640617597287394894981376462125483418808917721507214797888535364476602773790986031135919263100783340268314109521378092574324203596672798703838515352769794632443538643456036884236280924127647049597017124959424631285071955208497780617627827319830769183273745738036627426462395861266133796435815614729708944043767118993127561994619727274744450560882859697420524450038739677433533640102540802033856957137768039521250197728725296809829128315345422214034880852825105562413774778900461370183023425503541886046471365185849841702891613767098734958406988642607945794360228310513228029892205209400620024775985274615106620533564868931049519426929176994958955433771522034895974692955443407561344925128532479282416227970996950374561152958172819250246970171505647770005116731639642625316042429389176519958563380493129030300717706777827257850367789154705722482657532178197757867011934161952032211622778008885268112418969958817501604225550474534681168916338972114322166515626357678945942020686378278297234338156743200014232372786008068389902349114251062149279536067649712509148121192524640028755721706129781046288365837013529661748186810976066964736800002326216839882522567974420177955947312603074469228282531201725573000406970374716002059944465488722454814347504185695818584637075102113358884163694021411479693787546209580495494915586524354559377406769118315029410141267019339475662126599009458743083897907016338163627874063298709779025208986179921672591881405320450463420138373377263190979854712894169782185373853169110615655104002047611084707032706736994084598709021690512614255022564961225881073999546355993551484962030192960370070515646693429717467577915199029269894106231325121013305057167271877380947865284311150284618746596100548630832744658026631985364319272657730162797474002749809890176734833334502067761273323989282638488540556302321952778141217309917871200564938058586650930682763434214696489154838285470563091423547689045352731917642266132193210184781128266681236054879473704109992966813218057600852670999623844618537789839525514392082488668761980437801812035474123957914670896492450729771100561736192555666004287743571324434787973812642151694233011067514096369521069805757912289089301038347030021266220295391260486999425192320901966335963201686437284022163625807242594225729105263345942285123851907492742799240551519067052878290503957077484940013525556716931834562764993033689397791051664701190276492267488523584804247229602676201295419779410553699616252215469404675269899289206469261532761257535979563042682058497796785928656950817072006512569186361646567273251769251948297400111561387886866587768185752437007290829654142282829142245890701627960312121652683282948890601196686766096844381438110326832201109598160319967465158151975214356018452423507540117023850929623302459155102527208967176271252123358069336223626862386612589700063218434442337934134618494852350555860883323587486729739745126558393944614041455236947384766788500711389478875350880795867554258297309772016960468912144588570927007653997849942197129700395978255973708184384001966781328323004896904206960880175079545737170906486993537074534470416634492839165936467145084146184392006106744313379344791331177256952448627820022438777782281787285514389556156189612894566633837224835346363281226450054173233777073271569176009017948484323286475536765709357158351882303655166830325310530622257259022219864774446884750522868882273036329693889237095658433991151816730333845254436455641555274465949804792630280111138169577216277176368711810306598427087763748494381895118225284130659818934518817920483220473707830053951986487952818407753648420450646049740003913906249271155348866924371775036598018380762642230784464357992496204934698079368738349164791927416012588115016254898560916386148015566447917500995036537009234189842222527970340300726436602160892230026876541238954555752442919786011830636423239667778614689853821642044030218384700877501464967334285116661597127474999858505955232534875063787974337044008909156277777586276487522127447254629713669728821488240685826549778063561479996420587570700891554224993213648858357497237312315722909370914690770060674327331906051163661342973765096125148621470285145981126212261560295783706439238432128810726684245467448436268994387175575105316126486907135334433406721158575309924803337620231981502426117321286336406984194097786599182729600736668424849445810586664274253509340300999524532325110318041654911946781107906000094794906217483382907261996537135095643766775645926430838097032629339254093373121431968809648446198048999890742194210902592244699567343035455164102777147415867830654440418443902992492689933073095881987164320459863270953915849473274799253632333564064557592951138448106292004761367255649287358704457621462363011532929086208908341887466930466991337911845455440032272016190401317757184252890805059099315383724985191438360027670975178584680812110347848446596444788491203774864677170539906565445548174339637944659542601454615938404644094631577557640328147481914191629429259601598819994271052049840742203326025031854994232738137474873720998302291348102818726699397178839890342435232649015988624640354829093347151109779231739156005760258074919899222521750136262357556826221182983697056003074932416017496613578948455760193010794681668735889104018872795151889698795860088241738504873190350876167914997191828018885766927322953267501571209100937222858811231845512765917318026499481480596370805384715760156781312019133400797709090006887521117799705437240390889380326213403080536302712651326233411705633495029161212145959408655750044317518485855850329852981812664394457553574187034762814678986105757010123407671617948032061011717135329573462718718418844508273933792647141254435781108578392158582064752515170951645905354548503797567253151682597658279363748484423902921798652067263335296655997345958219734170897313521898251954973277590387925780268182104687431011228402065264093551686293498025648656163020551668235507228869249129990304176860862110557180783463612133151902597544260378019865944580934581328397708533613439035619822149392755155717524468656102413640038864361334672422950992953732489560909576379202834794904307915098139084018587317264203644723503311158814981496285329493604766224399047711379068670516615463430862329382619735629058867889730010511971885366299777203782811933644528982639950568063073504573100542819453236164460382445180507966194210438202508049089887588571000484156780910572994087399841558789447455095100277044925906682901513384059735986289170625149822543004805723102180530554608738938537377860635410453465647956600301507930580662054800238160836222999285101409740418547336290887249456585792969302207258712619673789543160086139782161502960233399349275762518574903214879646108196261444576736168437567181710196784458435194130469121557005095773850018417966883324762388332691384475878997893859334809941087883944768968982115619827628206955523180778363826799128412794149959170244217683556926187773306219745761891347615462587552170730682736218569947365478269803430330438790932149671148869417799819904327426421718011381165291951899294008000233770373243658440688177394465608107975143634830790129870305912599782128203392003736150510033760377198118703704275512290662931160740726871713602837248446749722314268569344410635430888404517695023197976388988026978268504282126260210974884964663178571754258262176481497392580355854211672261925201405340704857885741878782571172016998944064614772389138304110681743391118284290222112993608724229369097883262978753639726430450031355862608891079124809229570358115668018439843523367913001402977184619630200336507802503325293800249693676986366249329593487391338955336972693589172586983685066876597209223269977938119465118609444228892343694804496516156951124061926546432985908779370452555919164965947516692995772062970831756350673413947971483263494577549883485568838136288418533306266576455647677909435711777447023004733699160220561026568189178510157568098207719209841212568726909444360643028631731744730931448631560461660405843378976521944170689033413203783934230737876926580608213293891244980261312248939728772744023086654174795072000391372243803113080970864954061838066153946052164974651460564803069940792671740064025864069888242573367513784293635983008240591544494285107593370031170701211485461101267924969307965351308579254516462574475614461907146055161357155843749479027512238379457516653171219365413480846973647858286379276567037089511212544992231658190115434404608089548204882794543184156801977825961615193087574683215026413748394136207131129750374708812229631027918408315059847642183923452913416511959905977588785292736195281451991908820044746850331473161309077392097675597329483029888403637817672334225938132342554067351987011855961537858407694883487608853924191081695987853410594319116168322513236102501241565744296224224882187889786349891854252918945666406173863004991270785760852793625359425380717396775886283620894425326444175752107553423213223684400187141180908654660877806563222987216820389827040845495685881664134448269450411223309090772107590676778926531931491544562661237412079454613290175867004137851992321802943556300317671489202213135217459874429264650543336085347269297637210399242651099167671433329282013884745509870706587102348559243434415974649553999497516650529588311555073130086050436379952787457787512762866671911884291821751859667488397909910054684757850189796198292224944438072273573262964869496226680614647708216828024045830274962138535855998007397243178544762944867824130670483486343070509048100732274219987255777269961881893526099471116613375616721213925807290738146186253268652339956366021372585147200441517513592223693761056220871529384164295655938663610275991090607457105241562894367919573157129221143563117324463623703277486303863933497369609575639770455399058354048067393945978214947520358247471238126862235584781653406381241809240600147571597411890252006390204122547206963626363580062577371521531960199097787135948265830716007613709239835292434715753117453286087044874280661783639828759474931029844463480774119507230214720913554744374680183240245886071060404730319532118973190338329968556046759186134084889470815695866505461369503216973229699642496136192363786816631722949372057795428308227825271947639932801324760298104476790243779411816797740317449635986245706916525520277794399000996736744916934194570710492440381457357615952465144515890848136953456930311745430409966530540147405898769519458274461454837979199455876119364112829764094796437685884961397393250779260079656997876818381817766483420333096767407948366674837465147419911227578936427342651161564876604411468267275503619242444926040147396770450454399458053700265939645909191860629202325393621072970549979077799416737559682034384236359591923262003012893652001419361467385443128638502376332774684162540846082202984183119686284889725821644339546030860621450091485444287528141001054232572242100937857684494381574934067295704413837453977736877712632611778920525210695751240044518385556481212793250563542983271010161644521207572427960031136613718718514211521436950662170731550203385249566596940973321878317353567556489645533084957293198972943414922301037132968345439855069758789175928453057809544178300480693977539789897126572762271591251686130471449874596253337885104407450712416829211648662422926270133559423748097256154263086406695754464108986048121274686670510372321964397325745729923480059043361638559789174913198802450039496708696438283810077813175126625425176104484646244180198956829372428214316858356943251382957919268722085431973276642649589007874267852836964018172537892695235004738754965338114190098650621257450552961595821534980574947368131690258714563124465697634178061467584580796581449333551147688726135710816916148164318770983867464366026089095965184484745977848942397507090211035270900687546540433713267700289989553003030779300728470769701075829244303409962237857403092952926426108318285857323319070151710767491912889048444919995776227914677237104606426512375135395545509042146714054383126631156390919927297744769301153027052990601179860466285508202499830777739816049575282997729252205652614954340628664309894873990661386621166144703841219546230908172767886810476807129232809583953361745792080514571031588470768932414056939232532760819104842211390661527356246916467479123292128546061925924884033973623167160649586941064696016311341691060846429544776776683297071378125077348591200825412820347105976159255409664463932110020485663695439118998372967388235577243778349536553141050102062914225339881763794555978391488532732555591081914213000099549230937957277127616030268538306845571426884488477670169689294235350249198199182038051977891527098943342532053886692918915417188087641791367373377359645871010504649336794718431136988518841161545586254428666013890925893439253306616571839181753078176710842907041969028460614274364790310136897208441588677242077764260986247714804667045643516156371069239671122598524346625876981294322626498925252478354333513137131729232703455190168089119134291815816344595282023970682673705093183895959012183999875512604252079474156917134711713763659744072452913640849224412272279224174845177814610859281804385334451093480496741417271216694840371559444822804836441698899011273791997411833699939121048598611429699679174984455997345136137587173159987463127742025377674653133079081973074308609051295683745075131566590810921688482238882073944697668695715431743638530578090604714247823662351993397263321013528344759992277621723588251109630076943983780595435294449298191471263653234776371317383630277849652008554855996250182769249710224080014085848786713764247299266272308758653582694547374556416062734000752126668190603839597239485447573049861109284141588411787187412977686028711972496974572743861830731208256970941041709964480848232032370774812640588062955572440457544752533650657296794828011677477494809683848508303052963560159415795190712904245887566074833329858785824789233922694322751156086834546770402755145392165605179382797531441269451159682558232483699872666489626651821260767796553861317352536975784650419905817765833055328521659884634186338401115116582223567695229137744884320635986048406589402581133071174157998528423284766648803047036261311246498572926813550605221412251052001805530843224351682700064133959219902194084187777315963095634577539444917405392499834993878858284409978970459699845823911381004796243993908543714559817219659535178449307356574626043748538596698448420768542694569782812361383031967785724700505606791325840753318690120160826822100058959353794397741472726157948981361776034835209501146263379648944658848800010621259635408110103831158219264438591270215106898123222591698664047796438979062592713601274773441682059130876451341907788671904253897725745117318039638159924653321132139355429584510485179355328900202758028889493250055461721448796441961235020673729105054828745665435116342037045544596020740904941798481160303828750941577319361054836041357760036295578987296641945539101121704566639000272986027195812677728403355392166418925423701863347562691221791844835227173552274374616228880532046764245379795302109084181712054891460279340016514072716727082972669007851654799165196380105363877968339815141243776993275762309285668139744050873333178365123231661773266855402110390391454625471082746623270709461649885753505799831662852436940201582777469287521925111910334197090687167335522699623028151938370403335034791357927299797440431714329549631513736840392129034137166137865874049509948281925238684506296041900209329610009421373479748673730586109211804377707982916872313257452357403286437474190370523852677346613810851668834602522048101554637929103962633575415289614236526648285083787652434734757305782839840711583148967870110235782997713074265982765556142770691689079903811852601193275242605695954872718158567442571927646031874640992479458195940581137989987244611508211511272982403286202113717710438017372421790665325249766979041313640990974056692478148449837495375894338798061529483331138524306450870032564970916813421237491513417587890673565610167452999199399446024778204678090939781280537655205772010901397783103854228769540292338320527217146280468395332927903494750533617417040072350546494988484145930535912443894350863238125681053352153398740031337074694094988671691026568857437889596946195538050465168994491329027811485001225532031349003596868888532851777575443427929520193015595461804285720518141145502223931054270196402074087548514394980239883864250182675641614658717362722813893404831979625885314031260282024404616979092074300633156260507472469360664935981902390208193486331273392999677611343592426950811771562618807745422325781933660608234114616328302329293733039169407689538975236885827267323352076251949375325129404938639340979092356305802835447388856194836840096587305119666631236369639983794629600360709567200358003117848923738262690365553514092359392199735607257534080149492351190774734947713599891374492893275478332669860837502927312947523019634987866015427794697798551788076837073108831797118073757315736776451123301534200833926330718061819063539892673824214636728962118255672905507862828383431664273253852058577375604100533671444399714884303336370062641478719309521783271308064708998925639180908927162530566985389642928120610678131406212870014620671718268020077207717437391645458449624845939558494543188596369013576314461228441967735774357796597721052526677648502858594198771463849964981590436120731645915789070940509791028219587280115465916864077345119862181297053462438301497284527368705969888031016853183405784493158424509614253157972049853111199972887842097688245013670771432822378168713185254032825190903011615664146060918178389015821975658858925744518141720781018217954515177360787787618199558300759794359404833301993487571719410874571093037050918808708396312614553634496703691581923126295823806468541649769269802786028236253684357921742736919736586229220106813134216173390015045958174070644048587868477543476583570817517821716361457042397061781573308631785431486261481190422158316636195560076917503793549654326947178164530482321692900303007685831086428427939646996364656124140461412141496027375991907256123388515389617551755782049804109720057267805356069299989891606295150170302617404300547375540658463259462207234898970901298740420327520726430111629330245870640374941305056531645188423501870088683464618258283953817830424221150484781843212232192070698751683142258808477197898368589010993163086481841374103908370934165250018666972285472700279636659301597490940568675262186606044102515980745420043601106092795043017534972158208116203982111887198436256437510783993797189052342215343267272022404563455931763845789563779301747972871282009764275619712893236484494490434625650633551726045337289438322851594297302980310188682129791690581325150789649639787845644026430526096793350865312078368127355513249348432212811864832532536856123592638480383906348005445413290675985724751971645074592537568801861646713020409355194412646341016750190593432061771108118233402251222279902949146371300086085138528768036977273729037555220655903294328138035734531766508716184808042566319501279594149034081569600523929473622767867429177655728509205914312232764645635022829474752946771386408473757620962177435475226466386117148679710855818540206286051382529453182836634895936913388140626250628907512888612891049830396880342137490760836665070304121878559078780439186044489484326821229610412451339873313462362352066480553131517969055914069335845844138070871452162495967503675071984726938800162937939923061796962075157614058283046945413267352243115962463114810545818028974688413624452589654321851190632038594268519290079032488385106970287690972617951313050255348832749161962020681283703605437026686020162965234841629654569079113546932773602697159556314681126923528595090936405071930706356681603327447336894565828525009396773992665103115373900453367876475542919617373018482387883819082477475502107726870477003560786432692249852069345589636213094982945720109006462365257822071491562096054384706107791162206727877123720415408451652480123654250885751784618896361830697482085916317561391553632781403273755022881079435654300586463498123389705271262492540685461719019875748797062005133973056294628105296992837227933052226592582222357271800203395598915333534968849937632288679505039944304119997871911846198375890029329393983056698633612957308552767750739014447517102688296964892486532280872703265787039299940540442773846629679457714841358135886501871200042741648415588144931725234215912773624442174423166877294072166669220449807213513417440268967170509230866051763687014186873117872756876855224263669845192902120698055259547031016444103752536937021717308980213283838496934877245528932606500156010062006786687281966484191491342630227142049386365795947516129427073572257853272309534377137831873168172316822879015113037112137387968948965538981989374819538806794766936392107948383747303783107696747851449361649843375821424851473473036345782865510927417423369210574048675656015833748608413980360050453806510709373824203895358891770345739872562756906743570672482204731442237657621674901353248716928588898892657666865527165475055271380012663822362778334019631300907482406705233270148423642803926952376300966011761314827397064639535356044185134249943502764274043606608853124152609933427339861612362039658424905952673668935345269070755299564707458620213934125244973165487433630158738233480367685127887263473866951927528354507168623741687800708624936300311813897455156666050671343123833254387500766181346020947424699204691959108109789388213750022143634313347475138791430355176744522850625327222314621638066424139225811120896614571123671349043499558365571627460030334275554961677843916066666264042116250476081742422157882755250925112357790949632155227696383450558681696907242192896293763812817227513368546895190302642619758104065142037202431289284825095243635965279956960954435500169820857967693457613623817178927068781490586324338419238601097307026598469918682242619057281085780739687438703672017305721976127782133451177948312314946107371348290013657116607626367185799690353438120688689397846732896242839716058237666617937401592088066087909899331496615977312600428001895314419572635417029595277274220987547997647159611213608014693825933954242305385357791776288970901249568039325956375931717561137791441795946088481435441104975977177133509819103423929706508300206716767417279456106540904637242135526969447871975592460528038347351041363238974670396932688994533488247985647534669910940077560294288982491438220125046889117142125799987887270287020071220880225770977476467313788300751593103493613688961154380984561648302886811369098225338331860677897426085538921869279882280655265021118843173437185193141352702271520607139076467312692246311669656157404356825315756789644527860673933767582662869829171056753663470222297982529729501290095030860245095383176652130889887158518433199296762635779422168570888437596430946813492402271077733628423876961703458636894689143583719523495381580184436875309231883034896773316727577230611518476197388154731031315028311662792588498859063383385673925565856909791317023199995484226378587792355158784515925178363226384616042581821555115267421692614771392875967776850588926025559037289131107313396445275485701903287356630544547715566808431696493191836915421058608355513006736718804557196578780811297187405833031896421559065148500182514268620749418860365644743297580398675507155724312724921125630907978411546720764730031514212088638180574842856457457984177467678953779279726174577081896032142091430162880746391134945041181761782342679403730125079106527635936093238825134105199195030504603482620904597879030066304389296861461632589447474340606607871953984061129214092079257290684056042550947985404331073124048563540635857945758060514519127904390620648418638434410962863708131610134358379270272934598863011195523767944945424859800491404138081955701179042453328395753350536301562852479836211021776193842513242889967062805168951501350558953731742455176049415234715879354736947510011567064959566908017388776814852669278580671491601737183789975037975295199234355629781271525476679859676030211014485416615216718781840096021848167261055113836689992165526894429199345296340123922417147609952720457242160858753240457060600485996769932991742886863952979098890307927547313635531855119327409145554469875048960770358095413077851592955602439142200866206929395618275216646380757147542662993356129794761672178906421107868185222025197100940932364813384512151508099616974854733777119101295597657592871624414649853433925567101241551397698759225214252525793033054888230383120733842604041528929704487110079831139929180066123359832967476731803739980519702283849745780659755430767571755807231710934290196996662555632094496082408171530212871369715689263572815491843099326724454699806961196485967229996909497106051451061048200968866568977496839207481837342277143305546882568138170712361670321746883976894092684109081775383804454017485373794701351004372071387831713566882440443424211215388697976210521289805332457011201123845625152934331948835760299652777398373848230041595081108131299184575598816409848171956441920815098067974269547353712634471967167951284055019247661155409895693685447691251955926405844126144088077639603556260321575737934940515673958559375077412493552272876150332817356952381010683166240900164082956614446642665398796659574433667799149584932548073444597460197941174163486820837481921727472600708186557621377421578978224633178506105964799407404475325992979163904689549042658518660210040659374681534445504060137081725974514722656563132939161482328369449665162719794416766459669483938658739252463494594958101184996058969469988770085339028133617265185790246730401385567934601595658857879385948396413665199562861929788741089844594563303788683079998909901347911306838577722337489603293773569324184647014036973968577294143236417645176235854156625885571217555416535614508866808764718812583041991689571404984751105398492288559387047801821713705570102381172148916699440566456267360447025408815020623576281987130402640597556707385782760552569190852906196658204990446484528114636153152687232761752559874804578038220970306448124807614326958227044875330620533467767842119298309018368509786936745550048384309349719993660040235678556181529578593945465229844995047559800733745076575546845564930142366950674428137125973724464726331865709227380934029601079397788807038700368640218883923018305731508334476832125102034725820738421847758811027459528163171014582702684546204165208776868196254907712410937753873138891879446857552798667617454033567869278565416189505372211892450866029468846436059686172717731681690238825636173147052127934241598945253041418163251094366496895697685712292996023726036369573323453002350180284455245110646969701709160500480293682529396432119054747220324983440151278617578259813352603903137431403164765566612096798444419149622669081646736892972999999211081257409083993634303182892106949571156752180458921874613233887226465260540816273383694364074117033711086918410094835798060711739428775715400121601898924096780183413509784034519938904047464143899861281499260163154482023445859634686189777314313202722207252421720133553774115028479704751160029401258491112084414967429347332789999389121437788222741506282052934447184855060758522029066949415277429955181811830404350972729782858602157207168143154078054540463673706808982081741950456536044227869609913177436931972156521084872876026941650549288463037814905327027863498442600535791752140490663239253734450547129080890182744121119972336964996675082225787790264442434700265316530761544393109649431065700849957986275754215096635844570326795114481102303390431813181237295144364939378620603347273661096426128559372073583982848587070332254501159339522770646470394297516395068183232787181588786509542964854536339072486807302366654408363343313351251667310962513207936062705843500105862775263799303656270354407583814033688502783995165676603086201193266549702866929516038168999228678900662536096835834798067046188041504511349508734643111709167288935626669189189164604482357288694719589652618748733738163787232205049800746924330359997189037599348026718847586448634076405405694482230480368291981481829805862550125553340554864994278656778988537493302458545550703984900440252343112814052514930876107898212371253043908297288403520683261953096259357550744683140236536948094034422207302558069852111448715839873329589349768460479274577123176635883732160332058286845500732576455753171619887024447385469176098262558568958307881749638031452242372569043288888727172820268574534392539757670741527075936805086372726867807142217088356693151002717834207487523230956522585753524004723206614007368653671883761674194747779992460493349213280926973471942594601761607166142657894129899424486011060420689356813301608771512595254429260238405060609069003680736622282000197694821587090590226970559971291439586568116604282299949013603539767759311473568649097097595447043483696359126628535166982412348227630031248944871903396162024865407572886151746487206962076751498486554459921771437162517964839404407008405886648583054476538325190789648637770568825084371129465320500761903193993682206564560463111886460536386701224216979659234033369694389883234346130406390850216539988476170522139953897784864643715969663398744749619054462719929526020899364989998725886974790269143406563567430873905552543832408356308421481756797218816717504263941362838106552849096872644916861503581194054364737514701981785304667128993783609097736880197202239475502831479893969223541675762215275984648005818412210987161885102411335734937070079301750553946761812038528721814962481135301662250626812256612995052973874788484196231915265672600218083247786819304257165449159277775032038846879573832894626728494460332391437381184343045956061849823765123611938908475739977622588547107395033460895617775796382059313517309196246198935623661112058332964220112652751963738249174996907696767225483390011205719155458318835799116734162586904960092991613147135061708490659430291184018953891027167614268897977324854265895342489170879080389724805414106414030515054260922643817630848224287602178581960827521004511462067076664998002741323485779214670676415628434557120572193543536333559283121881762055604598179016989131178316084238136066047520604048880393544965764269598762005004733659228113172568740236687307049417943832977663965260777273556842415905366474910905383686739604526535406147788533186525886767907199855805450283827774819381902330431604251221063246362591995617897916860176636166175718527486814064673540003735510707471376830441003189985955303327743790834609481249500914565984238301616711764187137373749862107484114482717573202519073180303580976772283942726613790384565301797721864647772567355863235083804349799310395294090438927160928589951457683980068132061839110097095492490954404778283696178259112782116365819424647277413621349849383166510670808258820965051011281026212413710633200684635517596967535381887637983301734815038419523169701365954574152206872778631860706394539943989420196723566645125945564824813990150660562400406934221748070223034072996406507282763616809087768453492648834423371406156012507615791453818663590245117732801156630328448506408725651674966973885348011735310578709404466449857431894239015876948373810075379790069139478108722323223064530776816882631706247335465900728636346767000155064176168134473325988121072295805351314375543633826445192500206261520829665313269833482537915146883509365372911123740236519431893020688110157531244209030546571952387199277009602171560162796656229289526698665404499123361554688307036589205829169448066345386654867054165682097203560436882228301347294954735768379844321441437594835610836361187999218963900361060891954226401674337624245791267372378497898730961186024067386579058586064443400889520714093838529047115941196819265940604172602148153716227568634281070028988482672505711709196857144805355319321804234291338679678449416075230074001204969123576170476122357786913454095808034878632334722111106473617764849788534989654243722814013181145891801537786711058684716376702135611988746016788966670752738576906221773947790042257563786487066188395459422568272028156033863517175615534480338532949979071727868330951231887921034364583610420875895555711003988480211706351869147299329066447804704976780312913227872563913655657607427712237177544571054154254455156353267786393398284736219780683818044656625934993321057990114346259410159105171905339638731195736259782290942242663157757830289705576240374259915867859846428055859787589281127894233579154743732272146729583817570948269164631862384740005865784498417403222196011546089412542320887024593751696651795995448027805136742220728158851914764529760834183216219162076995388334608200309920310209980106063645215161359289867313688785481564279055226475017755984541184204575883410523155671962190893067911356157321384477292511221915701729019648532960198642137819078183345708925267120072712273975112233715585532157909449786711698812235692506868540924127011172438725508489111804440536426643252021663941475471682837235569633150632572245038887819700066774683728929127525883146187859358928261370508686578652722795941709405612312313553396477662604548496731596450452192458320274296855011701029215383276456492953226795189570757677481268147724476696213195080733085864869348974276711781335404254887956710935901252874076088235104266453698840945329822126336170356777904339091233699865060852718963549171423960189345079681656052454774960474236081727691233134716691728976558065628320046134603892526703012950132506337621294761750483932798280418629902735628149129982097222538236583555178549712463535020830988637543225926143036244749630501253920676274590519306398136151551294811368114566654629798028572536571570494942710656413656148761173072279869642463584766691165059118072007154890928762859425730658256697896512069356698568262779702214727975420694699964749557921485713206635650468669135335460542959501098744279640621561671576758221025059489533230868274629420785691000185636187067511958876148837504618564470469049471605495692649808328561658400836092732476846159784959899662400254444066564931781959830698276230682606557010676317759102697290299323928767365491188980923807395080543018872923247208051540363878455051925921831714767384400842320891209977024298033505550076232344709813753112464932043521124830407996942951007869273252690756171042965744732255029248949067665994670863651271985361315191991448317962998080627688449316391788061856194623382012805393566428137703774806027959170955295982209739231575208289787499115490896451873336972437419537304751526868836363413445306591221155364382909344669159667978847098120671470344792533876866238260022286969470098822476486071807684634674356775165951092190130673219801434242076285598673965401330136094555875174825451625209156067165307304147725200981906595507633280695537033769251074605470092823104922766271544353451523576858136393318966940039956783392409577219257997153676385110576514411301529530463999442874932200239646129321684165618498448351090781585882221601595954331889737775946839929401755541198671141997633143717834292419581216686603606971154381016095932248529544596264250068925535031357748546526795819354924656987802119396547200711832195850086020887348908433759596262308924533989305862209152518259739699640159606036012796921551422284409333555022383032405976561081516797479794292683349079110198380340459200691130959382411926106417946651518430261065418266714072995806357580900572128505052242197387447134665234670868852932152787075116339844490501948755666949554832907756420897564988428160105204193936464205684899121608101726183704989187035844930630051996948735652353463617982520672944487435581282604763613464690044547731930046291648243059667263604219730654264485219552727043665320595474174527329369032270472297680482351760549774450871056421724659115719505639797875064324438221026145817456445910314627429824807539354729607565773053624933762128674149655680357106723569576419382055512065337200861678644111642544068296133311411977118370248943023067922214639535135569052920813094213059494069814116956425670528600531585869122448867075230187098578713672251054046515489606363307440377342970378625153917455710255852969876488141600753726713806067437003566533017073333032451141328031313077008817079092959374224719852473181276145920293211638107172013677797073080056594907914747028315268968998772070967913888378824283230936099338761836943732454979350441329787503077598353105635684136376892140479696053431378648749606065929769159929080142327748063306689486413718263826176720853971886154820657310899537822415495879977876545735371808001724327312077447693120023771755607758866518198280000265299102947473233041532950821712700643527514864896998865696982006166053293378598521888884954322364938362005694232483650100729362562433142840792041439817008729833466956656864633925396774051326358087961913097657115468698713290045927120817624018111639397752575098977586711494643648916220431708550594413322708628494148497023438164716573616986765112597988682639953317074616504462901044912612556687778834586980370228719972699775725764764115811637862023537378728301479843583189761149090658384910282403984771425898831371512466750906548884975493522579223871001319880028335288083822005250680698929353571051355716247592733730167954136744521510508466582738022610342267971844408075624104613636908849249907824541827126823041345339213730751462289140642668974396861141464149635429638570682729323095715742123893130602984246524613100222513996796497090936440338369637598435046508345549397624054721204080068763122578585595690758577891380831169094127523546718198119042029617159921966053319133937957655657924947615796504863253951459727230919469525730205749112967284567152174724330238195083338623948086209427798970355442785936151707775797714147291267338602114134904123464412676662683665211910423896939524667409047720462765837153847592167867317204702814776976066369207537430661573225765282847053330127631195848929671017715631463471386256389059491667745299062947659485544882954862956842060624132360659971116415965098940765887779089400513605026986310006417654305363843870258596490810237938272607674394491038350925474820843035740692369713610924312317889891514802582307618272266606753397727386057082261702717850067812044444938219784624481230138633829246131720085943001903399422501841643415712946872962231268043820227763382894431777653240621210748156459046174136810809425304605205987392162982861596109856833580021098185591019002233357254806953888336146387375381036838362114636580562929862945536017505543417441645755739538844498306964710622298805285644556994648230143004185519109869614406666467120891616113297319605394525440368657991660960008124002797849842712957233792250512796156910653500960825003375972450898473134148760520790902835946924306934772830144955903876969341062636811078620533202074020939435532526891200533469641714592116067997002802590194273649820041302564785485376293068274212735181402712025195494354562521065677676611334210416341905275749197515007831174220140242092573138299235478730222503223237424133209497025994839882332980428008078483532599414545735546536970981342809150407867454282226694131163003855868342474457088282326144512846432807627941174494715164301646272070340128827357528729791391242776416309096679042014528976861111248667249876142231496874810446146246233315526016604935444138062592017193709192076766312431963904513536585085069303037269002915044649428081380300750136775577749195866044711367172914025739936408032744749087389244806624197808707722016352723717617560765490459098062931483043844456999243864519847988913399689049046330931369682630570417132901727678158187662828787826195018982929319243055715570906933646494146682778228709308799094108125475725621076755159143251153194979888766312074961645140052406214500617850332648650855059414253820375228271425332431120886519217850610596873851177512670684862639988380889889807435300317490407458311204352856823642922338306563724205072961005588084824227203237488214365964705556335739656658019341881546982475064082349632951970694676996380024298806476172643902524850568805010245047221466179262062747072162806608029064343137282274987710164188158872669637267588090975606010020878451426474657814777423079569945480355069073989317695371627109291375050563144854663416704308501740870846263220086876048810219034896420294522902957568180448048221686697319868968264925854635496227019490662616368356881450921055717868412588676088814698707092021640765562486299821904983639756285688013422032956389327987159564501121110753439406418847117250449718748890178012509367931241432464217830467857620162192057236358380884737840530069764649563803799447827391138562951084363414567728155643679797021976076818898567547063985312449369681037641566400814341831631705877237178167239967101785810659641494245113734490078330158118457197108151479727901883710428067825909411569517140881419944926072100659740998549462949288297722900229777605997412937601798445297254718917760803286091333144857121043073303932103319501968005572947882298149723890782197741205042466785872180066665107704960509242906299455258374741800685381483833375227698734462722576543525910951579130843400911773877510301636232508853640994389027214817913345018848913248456602479832541768507172135356185618134204897028533598000273464116836681838310611553670947407290646448007234446092716558995294212853844521136637391821214067054722320755015965957688657091098685301495443714784052811084919732501139451152897245428339387954473200337011934105172245742825711633827418658653416922495061984688819133428565011448099542402451770856188236562482617532238960852685282292424836546347738783032851989476716897214085656480370067525109670865274102168700524238300007386145856579378388054827780198010981935312819335437087892913690321973196586930233830591801497472613117411504843066216164706653163730874771583137451404864047521304464864095106853715845925482803394847170371061923682637997656498948149197455778105269605428477542426076731449862823689806051476164567269482546284529600048400547750487813356715751755157674466622191236293241311324658071589670577167186230281002539573939117211925298554624593193716883059175939847545405964211126948760663011213993161263571255105251770017825232705118553035152947354957598870603106863675779178465979580911775922075303897477331138258254269631847653567081455498288654110364286779135349136403689072116550690146504366631044818791594276761999442780825466352232447991102701522385989883919361680316216190944311415247832313605734166142350233052656023154970943649284504139985496313506019343330741599337485503936071767102494567755986986138561157336846344549245533450983486705985334664195383883774440878968652338987349090240908868866586818043478095559352479186757072961876051254771981922943206304857125231164355190397942847557565819102738770829944493746552267267108512642225587712968716198612138322680951507464833422825054502294409555895213602958697029614661846187996674344268603706693712420105238387055360209724546815995111847888298926822225505433122862331490482574505578108571265876273477450753126844755865149851590140730242274869936559294855003615296499432528063970851266167208718666414383901448409833334211855907183192490678151339282421709054158878541143575767702612038541742458256522421323247589585760225505727697069431928144115210963465972938443861456506362283297726648945317185992989617007531018453149175203047552550224122749491070805926823673512216547918602895087227123730486077921193159900835742903134899769899134017781977442958063161444790832587324811124725246056444360129060034343459810307347104540200158268703680220327267957753279344867292112577417942743934747487470918935067355740667253070422264565417002331822916909027090726924524015063354915733257517242784282637969047149469529948717973232272656362341972971264919328061915303544126279383387009849648845517474090620555038962833691924454713739403048326601899585246205139148068895500159776551180032573317547704390683083332675495731569769295223145450640970879236503112033919142118996787062449629001407111825601435698383009219965302381560695018707417420319112576918438916621876748218836508460224573130245918903094412289172363755477356246735866652625261909599362565618836015866062874267151502732775331703809290526580188237517884251037103862356960530832574628396538388114777256913191163800893406634355201452155498947301040943637318827418976616603671039230365641468719985475262001014315920010369239569342601508570709371762730501273310515164685464851590142518537102111389854605789222574257967300331336240001696751070875442144042598247892491536977090862931950960796680455486998060358409667670035153670704990453249362117540815091704692420564273137143822028052650791157807099018383218644998656844857389332404833403549551749049458555093031236719457516003023117093824166781743299125913047405109980007696608247804185561962997664979744177063225619596228996437921096837851186739082934235566429422046615745549247109306419428641719569994383853509383362967730091701222161401396684573555983859280577599907872379512545052670582323520127773381215563278767167776015118538563332334997187446240766319991732026343176385040239811699273255821450067013432535558528227509209872407119155454909230041837358925243164297842962844258292645544249873015004219684451119798222547549906614278127072516086320345561715894600033989114081834752717059062423714236260873088921453740265375713568152533772663942973627056303535990020481188689480451948715103138485308224315488096810448554562707084232987595801079274752384895978661535595275768328539263737864554107580750145865310748825307386779047970227167175816617815934019811557798511566041900365994194675070867364689555351336916584828155894575454187346241342399338242724284476391380863674790858731141271089796934517017032107104379258701705139390216559985121940766577695496429890892294076640631402745780988074620874913633996394296945889259923453829034417616024194590707847654402253029830172851156984827709260895435874784837247335540931393630260807367230071819040507448890578993255803641800761164963254767442065294208436116617120088656105701389112824939997898643471494966536417763480009667686153931106596532115130685551513337038257257783311733956909282537335220541515838236240946371441367597167958447050103415279227185264389209673418901529696972665331672085465417311618079673074029186149079010680708781979783573918733728859086017612865885045784590801253052459465357643444219585258700959895711258845324449123906242026399600774734652529656257615711907548922682048841335975699175503337039467116294430649096157341789672999876603090655721584913762083095897883267765349025666393072602338846852094869768214155244049051023764999258438464938068215645571188066671078312260440794012734909344095169005867727291368973335394089135340772614859416212548906014692066214004904180130423985833068966837585539912020667927367737047051997197492844747958692175736981707553008967272622989934607445556968150880191069978521649114304681521683328417781541748687111598619457180953870197740178855695570097765306779531982644511896769901668188398499955665118816670741120743880592831550289820831118756686021970121156324330270119742874689684302782723524153296924399719159666557774494830719450786324154289474015509182519566027844590646310802509979371161248869999196008291666429944784495234780841571450988325739394685191202602584984107431689912057283411400765940512316700472746023207482160691463284691110642638458516547405150222535955207553763704468165959113622438843582763965981115481021257541763709809990571740211849345975349062325243115398527546278468884100569845958988752912515715477804203960414740061242651173333606344792366810790984467473167203840339199351666164413608841228409972426501412205773174187441883293449376293600676245845127415159242156403181832635610694033979092712266472522752878781790077179784607162452313379854140073681313922492074564793772092631647230529191844629751860395240149172427296962853939613887873279388422374653981551946022458079971226592875982498970255063515881610058204615444467967054759029336681468502683527004658423189725465538428581357356411516511500597406596336728986565609174553729769968721431924273944353649705316820584571228276937003493498478799885062453028416780459135023902503439542414273847205137984380918509763930551793247242647400200145808307903305987220236090402707224428932369365190243139409310699043641549456026702117992101076797874481033649793426253653817228636672965861859415095858986763493202124140202729112364160400110818688747598795455335256704215871020189682751571059103287816305778722768252122729879479304987376657443721071365456600147948426001737971807793470191103810744508571334137171257890251209020419611697211968487259924578139851092807892352004624458184153913607844621401629450739143130400894794425933303037088112401602333314779055318525200805250002961076473151522336347402615719278480690790686978183001745499626066699695414423812565739095716378866434666191506446543560412814668986307716840039727469011005307664015149554335561042918446275132269975932949841881053399500733341293530617028471179297001531954467161127469518577876557571998624932203899106171142242159506863498988793885227573266376176215410871107481685299847406421702144404725121042237049841695774071163221167315841689962289548165858278044012026779229259040217898389977035492896546526740907283024872405447250266733353798653452029922434932646581222594687168048027590041331700372543662710411205958983839506299245426316287294289898693218371543185981158089336194939868630837667914533768793172580452774558836407617228358012898835132682488269598913544294401011217316608445229522981755418874910951985978568060599539678420155534841624841429893924150110978747611297501478463396481362795125823832109499230625157668817252314965169931202473812229138430417007531939993678363424452858677111243001885638316910323117425070398349141697978798147871133984316833817314516087044214004397492859922406141006285267762212013056458529930595572213225970143951959888372982095245654329101420595326710617626159243896056846345789930287992460309605669594866072961657500839404050446561046433536320140338812239035469566222438626307152349300304216615840439355476150563880238112332345669928520555026555049476428650031227992231038911292736583064999014489962067803295331947820944024346901055405432740317313470171483972406746389892138234075392894395790616487628003777865056059137380581350833144714029554042095254860881215688423025986733652654303728978580463057599948086402527711024077626640869481509620719532397781756945516982952376566182308944279120072317500437204844809060513671700135615881353029583717190434943822684827239227489689738216873970454415109643401432176172445216856454271742864396485965648675179684574632104357742911500688266279275913393280861938048795381204473024754046501393766389234675659814552414034404839960386695703063492270983076439768661370092795594034331765059736632057191906388065590210653190840638193035395697877556621634463581799204292927929389872297041297547870481106903993309723169029825609341579170749849750361317909836678775981391832127972925212644298054115103145111943775519795751593264787251816392739785536934588674404083479050242076871921867133113154928242631730934717157354736063624533392437955604376382001417320820150537717826856505963424785418310476834477840564253220902661536641749668370849063237501446471604750680123016439956860734028900277384050648490622633675432806445156781634802526409747483748400010481936500340855023363835368872454533181270718159373403971081512774911384832245930231126691188154812193379032305821561385771658991343401284326246906976214081864731757659376788926806318819214962504011706508437298637111331845765515538155918527839438258466957946014751088409433345769041704002948944184469421214055071158457765264454667552439624851788511708055517050788896915193038248476972699343659351994593163140304566117899444626903597003878671024155928717010090273165366225102280956313634368397192718299636027057869537822789723153377923441614438347206293701350705558613337232015216704489582797671019227096739740008867047247016792201100454281180279410823294484386708384645796893128483978022646211361735521548717973329742870653475839740112442868619332342109594344690346495489264848977770605664697133368418582140860417061880176350879378502116865963710131455476464050293318848332526726807226064311812718054542654844253746256471519574323749237899370557101303646912794616880111619136484390280134231694697975920215079485891029284576820160178820057263694869052255846482677026195463665474118048306641891837866110023555145516800472704000478281589709248928065154759964833198152609790789004825204523994635647595875795290372843896489389600996599011110089304929436865322873550085464225078664897021927275885346771461253160278323235472325393271201493496501123983681704760895472075474218525854126320813122199230600710995062822484640124647781359887583363251900233594119297756596869896540559159751087976585406123120971676248420603572400031541521063762676736053600582094826333646430721523715867968117576768971715949922069464052089629084554617270107215851928486490623424472056664389823065367990600062328540849863527773576694711644778152801366478561904058669371741482894145727311531150794698149122438527025700588926035433224295006918546091930051851562894939425663886133743506681859379900467656357032604059620845312082700875231675341891842405116274388132376351166351650644491312626981022094914389503562864762861598684372252848273298572816174264307720333845272866148745193371758039776047302661801066352234149285503277973073172448394574151982365975333274350755336464228558327411726242024713883610846885585208852234094379241383187620356755487834106979121084693327155669802003532317001101707500288160328842904400249070880426385181830681444784722713914562763868249308275424825260940568622953353043336540191720388573925832933426272218311118858224458075410932940418602534162287826540891667963936193642305819440918250527300715126121316199634901600042022069524670857728046773418647799761977787200957361970199480342382550736117156894814433402196964648775109591955369027531750107486547572448050311665770247352819451041737024024023986908115582873578768602428654493377614063011146903813362962143018656759213124995292309633202473349961230359619336813810894047435005938191686812644165634275060560589950017647233901439298128207760266041081151216896265255509695391675931924327081057883285880778575833530598374869060955451627640715677862812449572648466107983995819944386407787243869401281924424947531294453584925079356689735665369773397236215888976054017946649196676575428708495478637420838910127137461914849155627299935262179025726799333654468926805663595310359479041625624732550878546831636832464237429776550524095112698186635718973448271629539289457410684396098675759107004801297162934762655467488937792993075220768953614652043981180262656551215498448949523447557399080954400832648153900503457904703741285926167948351006581460053757143848609954961221383814581638883855421196808728354077657645478791814417428259396630159039924075918758212940284660051014095286150833902565644939276366143188567818286390312381517290035144493161828499438026379014953811740792946565044833922051383687564351404514648231577875497300546246452596342498400887321979474740250282130987875175183695163595705851079997063806807651408918126511461410678642691721011262239889038473353073947021511020127475834522205871770811528003114943839752928063389155172944730921872163641374923297708909516220691489333546366743109446146939860193099702807798731376144051282845571963350866630912522292274925981917376893258298831075669278676607826808299424806325191608880524740729215753092419034082034871743701922955598412848080543755802702693293915502457254368958936159635961458048859510364841925307189884226614493455030224466575578597817973917370232279979817432041219387066392672045522868176288999394687179943859558665322102218588780765546153536246116491423441949152277695545792043846829973735415687380424024858416753099107549921671906446695296852551837042485399772095594627617248270536567873653696836546608942109390937678542822108056654866751633091176634559398013691239411160035218187199742085951082104596674636948589067931222566320074848886944564634843354555597129287026684736795579848206744865905083212458183980334926107246328387548275224448602920577284080971557711303986949855536057484525262284596463515692788865274419400499855488298013464138349745561004280588873428465020860616453020689959357425063800656057672520319689707333609154301872541309660672300876073958638527551108162648473605136611323266116489923259337934700184842263251840158259011100922432465601568907549449632280050933816121503559043991747174028814073187774030257854092275020289103736775752133602538724895507615561086495757512681326382360950132321956449050057375302347871362484777253631035268194148413093976152546923959592129638943460750372772905615579824245960001873044351569778160109107641344979076621517640783150853092178445719911920269175391595510303776385566198493177058574808110822129137328229727088317413898703301533234782538370459841576448445028666579709287215491911641061680006423639039200538926890015868156149902870470929892379114687839841197977662075773982482435915688499477060099169640763336798028631124977955760336309459950886906741425022362882992914775776686684305311242623041176339924220329819114461825896131401428773011395204836568212371864708930614912837216130729411693904263846531329204167033920427513977319500732387105129053975074534788640985268587741376709820931766935647960529785622339999933357176140821327409381569506787623340826020685011580421699192274685807934567812706719537587357769599551000233420754915375995190483371874607406722136633446464013092200207691140401123783868146877208609166484921437933958126566039019911886145207571008488401515096854657037351605039984722938047282914559957923030031005726574911036584663137291210533600774011493363467920148799837414358301439619327167904675661373870603957398616339571061584309211557477136060392569042809134112825027733004048937651499915526777802362774356971822637114813952189603435484784142726709546695278741355199359273019723879821764502958253855625394751735048970950046617282041142977438261236167334035535539566453752954174230670271290002320527781776111547657184840239481722799684597271215675482864008603730981568549692366682533713786526634170721212250419848467290003451136129004847341044665099956585471189586095252903012733523452523998110873844819998633401767041264388139461161879343664941105385202984687176190312138652204884326093139924560608182732639328254821014584068798595863180219953722224528889915381311960142271535887258863610291763787424746672308524727308227065073491783472255507575358374227555948703256061428563039364074520693647751290274489128312310139947787165674024615879548507671932450738515808737524193171535143106638338873206922780677949667877656312373267751891853210500672010601592760551395790728453954150573410775934507924064194767367105215883435333441316850180891356216481011649324064813169515887549860271845687803604003069447816846761337644903547181800736638679203861660062650195945629485116823669476690505362270064649637489501523321035842401654600539459532379562374412193180684069473260897055306383590853343429611598434288666268924161622747121302520501794533821039158190798009674573039518508847282446144410633039187442709056225880013292588949930731199773468969892215658709970375547399893681471323988081170109504523220710184303268995483171259812156578220099762452775495262096292917360107411793993170926760762425657322449609225702163055362585864046669452324380019563556651232607672936705940968929812035702325331792519172205010812060545940133965396492049589169777081684844002593946509834062287837899106868838961254870767772505397846538117229323524943841493936639277460207239941411196667555051058723178670880357449690393896669604605982986889154704978372505953569181388653927324556026317022496338864540540768173259361636801563496698140487521312274359201753599075732348208997583638637912714156491040197896832401079655565872362648638712113958652929844261666835127405923381612040402531891113274221371633197851605182003646799707448528697106763390626559283687721361547988894405296718490517715259979777539959004019635428048584662666629655029663235409597365043110264197900220166693986396919627612326432587693215632361174234914493190465435841546213347506265382111158964760243253929960519041159033043335806725198212919647816932118202516440618800274488035076764164014142246181302547785013438637179927518166936818946044114544068232642236340471039822844906434938883837007287557525829382842402625687043480103047230696123570512146909010217894074605671732799335090032111975757546064212601152861713647981572519257763281261886856655291202251586406153222093709934117966440332037572786826278348943350398398418553203933208024863569392170705787821461467403559562071609191705810035671392171427550843253647671170537138039049502334848181519090695896769823272898039367059957580756878785130250273170577635858434039243131662842984887710231325763837742981155424994365276998055697413625504422880415739202585830108229096859174873006607630574175378746077264817486556018906346951071586815161929253375474071799429281639895429675911706056276906425901245533942179499808720426437469518333139597854327514448065081183206967553239028218340183743845211585871002331566523742692607129435334716212297308323126207215181924325466395902658730654660515961964442648607489809597569839658246066581328272651971322566295545455392377419695900171244931535237962448693163653407849639302909678920542638346265166943257776427647742080978112199660941461028473020427043826784130593871315228352790831099381603514858457366286809354702420820283736178579706290737281802979153701572854656290131642783822969107370936803773147355534333314155325381289643612183730742444505303991411483514447906788114438907901226750269366517224565461728807470536979453596071863950653971419494028626798774840764051992700113914566219960523471934801098827708830759657931031775825295727416552117572285664000571501257468904112801758642754635056279392796012157325449607318845108981315114125137845811906644555978274356527351483433570760251657918429954417836846126139099329440755590380360321135000896751617204950497648921437044074403322546863943432649742346512734209908778894759437839882279579886259501149186208103369810324860266242297098844465013484973848892582124789834060732708914129428275546001033289191271278756486594303822111156018002992392057131425030046104085605981824144153777604056910812116724658217399999831231359045115034209923039574978022054998655304310126539019959744062303910642633637663051221045756142562268209140786561902868458458005766327128779079635552247600830596460578036201912199514566365620992648903181357308867393926531685422455958631858690573174519814234635700816334954810050140052971921470667155613507454756360734923000325064568417469390288200208481173481426305973962699932274841735591341022443017715728543894257577829468319760737054486626474359964671437960591574536019910003307050851306886440147895406788559765590984082684941320429113545448491942011715608368297909235897472575507087230113715017443948829475596867013670850775633196437810636320635086516973485390946298433077242848540326137543292532405119105117624158136542686625368614422237000808200559442469295594298714379904608243533778629827217662849533304175092607862004218745668185006203644262754638702051620492173174359414521169412902976898301214899644934078614410892601141547707978642318714070449641494766392152628028321335514498133830716733639031366711273577022947573746064749251821085570758826643950801822575683871524778667772934347906823860347636645193333000974938978986758810717073210827109136857396708625294703856126537894214128092422401919264488600839605195719747015361792273435838301038400871940033904168715813140734758477371262763249843805085564696983680084785359727239175657686667521099202796564975583673284101399993900851167950467070902720443613541330119451677440190545375192137777968697855589827782801232015362162488472479532010836460173226903153587143804682790795638306762956891752624458462611302940758317612688420094034598571336263772094267581789921164683878705087290685541183937704304485704893671059912367391950644693953555889828445613663903940488091937723182627210665532804100931075900015286461103622665629928482283326361969197255136689221175474025920465978538490655160733738755548850184557930937696241608703190287807245156709258514360686744887123929538846685384415443708312606727052516003726907526485006416179840259218028044800288322877449897370198419212542197523867617224538583082884042487922178773301551674652461926998375845970260264479709220656915221389846985887997893603632062832000340494583441131562950023996219270860661378744835044003842556270648693881676700850652850073052566354293417130496808546739707764668299564038695733971267466029016848470691516929789043120484974025440731085262999307778098032427349569141342848302110075669603125489773325079752261972048845215902379063338887756413023141496219166668086530632379121915245490826152207706212491589442395140181196261510623654837963249565892694112186669318124246105537195188978813094058759834440900169431131031274083940434482020601378869327388167470913667070011925875074656886551356187197643367824926315943945102726423884119730531805098927185804197423886582818385460343707968721432323868915085107616999615723198876442453376119855451439523991682425516276557081410518286387235678298245411917614044913849898531146198496386865651418181079909522066616514606754493977943569853749828045911712927883186207259013339644224943447973932761613065238556671461238685646507228211744095585594732141975401668900601613442525052212423824492613913144265790108373847513295497067098426573904182381149977785590393840904023024508659227183646258314356166158804858930854290175358213180196753088982001771411666470862751878309924376256091698406539062599218127634272152695757417024639964255391224127265382114506882792908075741449449415081701496674208975582069670154451018986265169307999391478281862416013790176677726130870600241499477131632066348684873493572389642768392723552409393785537465424091220903527444807062581374000379813109985995000326893624285851824001933554324264075700923297720501491219398552991727817123421106743156303118912070533702229025183645742165597300156469254980108647432041733675641606761812063303916975338789894574870678990361668465730393505121887316761623115494840883316413169645668944381256611768214559089871698743255858484367071347439305348680987206619528551841650147127846621258391821129195805415437307208675926842549289185288914133892780544750380382431479184858022037835622324342331100867615829749632888362404965957627522871320318007459255424295487813118417904886618445592711015810766959373015946794627143878438548566927384375495901097569705200193385638396085257380168605096137023029006266767637007364362330411174728584728639872357289738955698998213652553027151483523711453306687872970033675636938435881750073002640121988724807295507131210436588604013411182260804904361475378127029530329573517844619415367599459207412896793654567080800877350053427188016458872267307219848336350696266917958405329484245090954103206935782951813580122388083941441635203257091928782496703648618936308867247165950373679280366027295686267829057625256290679829745047467466149547360136584981121649695869601207871391630893552967546260939761719325462713263272870181926764502646101191937586978163614980760409338301558898863693135264962304766498834803256496203515415079970671483136256897922539452536503108573941986998975133952959817355832588708328065882395339760521371836911965053559757250385265273116775112248988998060861634781691164935564807078480287966238336326664918427282711422683034243332908411166723092986875865322649834128704116647736286635742276297876829893003826360024971497955888307567857754335557670548988308067555747323561592804820865327721319576906696357210937192259234898599240130335428187049435725467135036781925035852236612050702303288681202801832981704850979171860630924430224090916434405534581732119224748216695961504827022365406296499328192133047255288794927931803149445340204521686968445543767387174658435471663459200862130867009030905639542107204362190121647398123676381565661284070020512907547728894386281896671061459147491213679345653669144965387008986601453696840099483910922726759040450117222316849962692936701279891743492588483130007561613753599059495259799011353262463625007087150792194439318699003705167710459956401040106373794547329564179558970078165130345926315735072778136145598519039156099338148830195086968834641180172519754698157954325208085994622132178903353902803868147604659871262224869488749236605331611919830152650833805041809494984353974803141810708844114139999582154906719571283984563505714898223528746466425069265262633229789166647248652175018638739687153781845744674187862269347192530242809883216256447696322285340232758396891993045554442097051946746342427480919390480792828487354484603376637951319766927905313487609877387295647195533662908934974214416269407352596363441031435287433280332221357714831397733109405208751681178745670900150383341538065420378194646273024324282097012445040640634687046234604202103878032812348373322797957468848948690747226944084245913498643466177380715733016285363898857725604302272084531793226024049177586918909689166873701116077684596498092919342645847454851694941486332826457789924403414805681290348186333736781798290180905638248260408355993350550170306956401670323123456062424982179209487521766137491328887311784926402093314972539406055800820380696545095579388053157182580684379501987334426853199268570418062333027076890817975270543055986510208874477294658470522429285002293484656861860758242597179358644450169990879509779289285903222772773864498519744901879615442708223836435073732227849086667553727595606172678452353137938230743155780609046637806812521426626500346447172887873469957419700351163062852978124910331923456403530275913614903047482265422566616149018703456216709749607894567532217982871969733000917626929066104808478616167710644698926904286988931273793647266223713232789246220943671955275243638521043515410976086748951225707279437684594460855684733239342847042887920284969061468399001889537252118984453305950988231288380221049560651891577317166242665362618989598599034094688862009884833988574848749244486805364489737205419093992103839584822480739649336374687865510709170217957088330309616818404161415862145966586807816053217251175573835766068774801248704909840147370654707200624601684173529681750085848935740854578676212428137818262628976334748728066978554615178259051467530513802167922040455590289649891597518339807126319654911437664651981437650273238283130819871835528532878105059541535097550756832376311255816807081653007892718435955974084510026919782668621018504105026099438292081731495961052631532434381657468692095915404708436418446959655684542657790125674294415782848483745627793269230425422542421254495443104030689399071171294259251761056791270180071635039044108296631617984842156062515645839515730969784846949953858159109648670008939504449681078606157411844019386067521202204439318626360020558146094211415584884095935379703039434460771734745724171855431868973616659340994862950675367336900953984220632522183471645122399226602624312539905065478702540664085268608608597448144742720878990240481114979475614804041723482744105548164281085089875981982700904346694674638733387016366331256112826381481306492428655228977385552742724086697320534292598640756230239914930462211534029184202333922002706385731946283885450861328548525191562372652046277061121610668979597328468138514050521019606232301307677752667332251096464580911376686798761788600443825255955974239117529977747837348108624596323495073936972803691867253846770175469397667780856462689598773776252398290342295404590276576404049224626399530285372378908457910678536925655169880437550754204805217357991352458009292316782410702255873035474856569242945113111122974938752521104253792349477123413902213380924445871457428453150795720350336277822170295249448306095815146629834116936596797862889469564191996567687222828157906871614850830215131105845066503085431676458142907628138822300543366383747909139477138806166982259775599871830594456636074684750813861553881039913364188793017399008752993016906609788063115860745831288819739534369562655470528796835235931079882192174029717784726812714916620198866746875958652764269782109659934964498559243618569052894380655246932575757687642401309896515605965156981633193786569575333360640289224098692917931793278960970846730749559709004266001963513951094494954976681800250521922844268550648220112265042237493059045655837153636889047162635576975250606993479358165656905618564766855826793031198535456086550734296822786146964099483104772596667593871024181851519109623782074919596221110066097928572316887338524569290416839580533369714733583979512025486989042756030007733347635873474578505797289408095602102997486375336059753120047739163054909575551629313588619129362602794186402433361624292019814392385342600859416243945562333139056804807594348938874633059068308620119967586298884048271810164421939378605405074538031741425064818585419659126021414844281072213622234380439166055234423936190727433811589210176502181182973579533463189593446791205860809474704302075321542362590895511640764728696352498205901499225852638979898773099780284082795002529033724769723215226772204373329417233470571736674358487600652914114484131124868395237678510028716132537146749453641683814283492563117672696274904688056712387948895924773278450682551187144992750933135155032163621968122775388126291010016879615334585636801057399281723634672556421380171663772039498090392810514110530243926348785841210038130712492551744492924327926405540573204433138056266658105676835475695529412261045365730059838876309636590210196478385562916637796676089565503906697722289414875369792856127278226988174916124426765523181942796484673377048244484624415987288204700425066934649340392572195131736618215799245855921539553167698718830442158805164947298218120248628325714661361789371822538887580311891192938383161968920605498059134347195665279091585710100580414591162437949960918526521152002282911995791373216985707240771341773350903442289897892219787765048347637876894272699438612621633214912859752718571370226841273709021675559818869850202406023865735587630094536251996424869064280052517288634067899581374421837544962118728821519249932922554986439799480971194926296597432008079324320596339871356715659722879650379876678914632446885365835929658240974894030022343277137276963432203332010956429880519029796671539913336715406304504547340663331198373440073297761358271899742833375285657638499544752289299089872476874060253247058890254926770864646040292734699878150183780187119499674068531670358873905452601805798330135009042228290367494876887073056381534286690214743658830832742976938545435018921486346709882376104133835770171873423524456248620718339829552238241767295512230469669360913631904056318518086115694719390626421580086109132695650900378076794953284611419405731262956258996688468285575885113821240361807452283629972628520691546976619587032680985848876349625021192355768137948780680266191810231218934154356816883065799161582246185676500393418228839492658768180029748075088706025179587746035020037222442141963059407563549783676901830877085542984803776862686059922299733183180373206332408093376306777897835486982389902738519683943641157074289596558652420206403988497595683687399499879358679009071347632815934055294125527337757514811705097361205323061486510792741758327726434430888676278437149317736562641826251986855480248161511640389397785236392744790777865934865134073730725988614372959983078998865041790090611462402626304728970479445790503690552351328199120467144226757470163067901069465632237374844663415799927057439926297692560970470838824308670818897330957366066307196284201773690634685098926299407480781358042531679690672136662667276949402492573296913800231759440419312330729978853978652169347176234660774978463739881782724912958339495323732944089124975976796758865536410973686120632812319563348292129978619019040959880198310598604541620763857889924300290359226132709592260263018568613168655904329035813706274311203605849491803930093958682420273271517656778384244623301765922966114844753216072989145345507140763370875516237315963338081171511262236982031098150565089973164309759837914086381293136430784275681307720606117522865772740910219736379838886004477959674821968484028371623384018287737564637371255942902757533413566314667273763267193604608953669198091289082246740854455034375450036708154706664521741780550522511917141885555271189753151982262414396363367165822656381522202341839468246681677753669172572997042871606438489853723989172107853233356962438673938109919782313300067835321755302684116013566444387712575055493890672938166087898337999959148121290003475460062406720901337591847731150318228912151220172044278216212954320540849360473298020544979069886835422469166495826203401490491101069774154684455015094108392327650353084521957511575055951201392837979487975741281590652688416318152823082210197655905014330339976842761676557575937920507472488313495958984787732711456794772069179342389514675228015177830055795947075167644784469621149051051516180667537415609425482933064080009482944241605115135686935861023667150891059485993440628514027263728765230635284630856897261494460099970913760901595649369492722251133717489372487602676703311215885360673758330034875407303786925230136961179935422969587003425947116647193397548763141364037661407223222785147407941703404723513318624794470789350796335207477168305485320330132617014737622660947710955583211030244544387371300937331099686745455587084308780114440578450099922471233352951397611266120015847606658523216553093200160102971844660558704052598549996884971429047663166055048195090134582614254588114568409898979329787760519873996118063727654120659769562878340479899811884950666312075882147603496346139586831552470242260454132105017447605000494241667089149842676113923328923782177437507190424453306848548234636352564287393954923869102667522922855127402005826972172100616734512053129599213124668583734639691164702568458709273739592738033303663287481717374774134330687225314368368664096474502420499898041141862892973028752199463619554538388955020703313644329036591373958850872585796937722538775642626516415594196424764767585715985935081705719757084569204187940317435137172319961155140396485401136906806749962926084745841103347177765999367548867186052921223596035564662407314810093154313078185078811557562196759429135178805519394498863294272280873302876056301626911576089205774099038628311494879839775028213036722826966308512650183748203182304530326297666253267088005118220606653124964661852926106034480285329597453875502529743599030023139826104566450564207919669667408875165684199116475444244102730241261309264490822126869550866432793483994987266650023306793568092326379846819257658973452960126807087015683231349258722603364889855480789815303782767707352130400229746179802116443865564490536507698932839896422210118916217171491814931268014477283630911103885870091836284441998305112775420395969665952473550927497552847632176090404860805127913105229975999868142635214942019458466179121370313171052731945489592883234589980808411032401821748057363808595453968113768283848312668218971896276912799666229665752974488403217408220839051704902877905963158041070935002181813326393668108669138652281526440421097013933813915251097571524957379864639645104734826047026250696222551707729855716551632601604834228649118211998360794103306494611548921135102029444915819328868174949647890302020507176025153847567346339541962573212549510210558963680604843609790265429817683450075858828854249975382206086215045495178877367336092383284437334614833828310524375515950104871673375151728544548911682157056704005641829912760117302882579261769479076029024374160313075074258637126640175867060727583448539016914433717327210424807201660170356254598190076526325473989867713336852827047286541712287008003058299283456482144694358895597957130410252595882933670257718585791667330498381377996519080047679518810689613546821979818396807688564625020721021793245285144170998998445721554771259927178482508991309474776811969683975900643940727189007076215751336522003033277189941746091805040396182198707000787444950482144722341587535654913605504849318397287692116763313146271194048099039324063295371693237720355501677892849013412984925850748648314330181259783047448243017492322301845596682552528273958115804243588187804787110410176560809644797388038645088480922033629901327144293800915238193681754963582291623329193933757479874159008541206297844859120292989648811234859204699876744366948312724040268985849366988503131645571562024270710441650320584229066563059461616855042211712910293939864816142475711395493018887015762788639941662269126715039648348690450226091627100507949974458003875885523703503193451964034121234565464564238445139190802853755122000097237265830906744207294217633152353714853514323388661741477755314252057214998929983812299566864757305914449665245882389449116612159016116625548002745997133198626747778448180435295937353003671544265249817749871872413530121547097931446609906549839446921573153561881532325831925096200214857311637013367520389596985358103637693513355876061669889992291179659177159685267585839109353848227961742144744869473154760781283110587458134061664467543071314659703406841104041257552341269726854751621209683172170423031862956041610708426873542214715306548029079809488299794650932286084791425184734961694073534245312374075784357496335468524264412297055732980407948442325372105170965417746080201240628967507651204701569550803854656219099451393050047871823204566560416163044919343863723917667148785332868208680518440706110195650385119929509727351250113899533984563394992389480813782133956225393329973632425252080184528278244605627010964636868762520559144861725137480243990731727811096748874234836094175466393488491425040127822116596546409233674378102103213801420588063846503467620381982393595681561071335557822795949177796851862203890840033943983789802684216372459366488653957312473982360770463450056561855657930726759358797107028368132833421770774336804316551870236529135842767966953736690014059523101895520840854423744847576549348603522860865045086985077321600663408577025508996353668967792948068054637877415440079089398914176961962670228471758757622477772003182027107499816769859561338923399320188997580953179311628596140154335406007349341403188483812326683764476651993589120517305517177635689503043805675519149344071773927396127173607569194340514333044105026940226189454540458331796195221843353573060374353035867033756952710094776177263908599449881938174238408990711031817272204619634480566852417396733472318921230782819144640978786983734990086548837080811640044462068263868618459022173266569313061033781821425807841199102746489757343665636136368026989777746339492732505666009533149880885487502727351221306736247983372369590469692572269813374372818037686217406176153175875770396925794792710118064365260633255489563417730115544332642506498121370238890016522899106920802383727723770234425618616341361393553055036741256399338158702787612919886085614960170380926445190032179064504258207839409944069207168332763403282257986537175548154174864072951406211356854905284877774005424486581757593503488682726757324317610480749380489253257698639378150259779696169465583410954003776683631511665828071951256366124738244222863023709293696020268277557888515527930327843490866637853798243405499478906310794341711254694268751425799693387717427146618019411270633023689441875884379486558117892667932931966509483888445990593181807007970960583430047486952981457511377694047520196612580619467255526993568435434083920309684945937743765774160404139621042176718032908483119301357625743208010611694599119445051670260643352830295421281930593392111909183365766123070409436908487904591831004553848441596200280498699269118243850046571578623301615493239422478909894236781977754373449888126624126997448528687700315752679511170413341389054943170631532937489073004565586430303450304734791503091253723489639238061319300192897364789965992370723635660635214187077071387257341575706937169852372856484453646715922716449030181041954498562874295258128777376087062003487092478937401587340935436418086623211733550371425867222751738162056744071265907231756730955819604355117202863664847851440110976441286365760913859527493424860908348309481120611253854265357408569700000587854163491832966760869888608054738168820975863539006604716415372634304732187733519242485411976490407885101140785078777549049658147650104822817102453785619712298868536635343129066292540898782439331299384847905489733645818583146240875181741102387205457639791121642085321394455532598212579001516641963340281749064659032553034062129131967416464778427835129016002348068125619013159163386258779202758107544018239080102654281263213416599305801011082606493039375793715049768072200628634746176102885896546335571285820015979726477693852532811001815240383740306265017067162098452519305271278030847859639974117049567508514362183364439513232112333775905320811060530364298688193817179618763943128614461392677701037701792833519822201011904103880553411824078629574169598967647777763630391349763622922671999436327403339401118797235516263444772763473247554823435618840908955308382062650871790693337200178294286237345348364824138456277634509409837417763729110229536156498662950267877447315572822095158128254955833708721574575855383600022051409997917668552491917108659465717374372224461307777810984641916607604968668845135335988348050333421469092327487873953604054930261251462546687272186295177882677534474369484729958086954267224828309163495563482195311823116596298792492284657391784024814084124391359428092650185882294763402158500180378292727460219630337934286484400857806127329024577728632949504783117253492829133816381887424398463539640273327176048980787655737679557782493647694349573191915649639704378193007697688629774366672973451099407684106403695241792892836883915159264679384444399773777430571520319414696255062828190637687876900825269558645808411314429987202018283813513387912232441762115861589311060281820738324699956187129621704425831365207427561504676335697888986580175016505533421961945965226480073464392468624951991954421318593126928359335097346370407852603834384515596620460505400554122061363018219116138540439098219167690144463150400655575805816959210620871710071476260024702565683819916650935420998547693795311133905471720333014887902358804323542894688869229620962683755310834682212857935047760329653605691791784087583753790378683744402288652058397021525650214167000741846641122697211099615655863661485004484202504691787875863908915910427333946228511368130433004711985358766893901209909058529716705928690985231526465686566711885313589399202205295865799549522143416733936206474175729640534131707947488249554427037469525404387775780328322708581340347980339696812649411163680091115966473157260809509177801432479835368194090818044623672759356568627539083499841303222393513535640268400866378458315709629053850762196006496203159758701804405606802633513185548586467153453561555682565786966760677791816471739261739421078693925141380096627631372812089956094815304671519490317482498718143466837499006776440733607056551042641300238409081316068807439063300622750038552818380818736441049251710765497950444305487260225977036083149042379210609472308399015513121555198495657368633080161752270976146778307520423138431463657601454771993349237333707157362971423368366772916229781028635962142837639440736086631257859267979611025628106809127510878438060327075131767796397880448850195332951755510461983645825838469520280125525339546937556315272600565511087437657817924196940080800639450262495382530058267412903419369098975671573580700155015630438547914471538370295782600421141212267067211019811204878392980052775955031450341519853702521602530636668999202516580645413882827856193098644996495994997713026975559082939728591544263814798586649183446755393299573392901063546636745054105968699966359125062791501667457724134127799455489508672676912645574032777126521550145984070158389973252383404293438586551041316335497212492672736276274627339833022757292021755230642194908246773133238752637969631124941158876065788963879448204196519045611266310330043651860596189783748785676778759639744080980384164557440099081876679495026475175974111438371584910952892407839968294673212863972730503591560886448996461063364761990313069020372248979720737232312405691921013359195862632981240960122608454847273579181416721626995885611125618347029025102010852295946322939976193684703096280951836687428779051422621235920387217016895657652311917017857254280349538844593457866944216747676034699986235252780024387144182801326920085647806396610497294281773751322317579447390298991243557722709848095452528637881150787864388522580223703112869711757614396724341221731963358804575274527883222177200141624042431331095213777881579457695241047033663823436417914944846884100087996021869279814049418557944399931534323861059770188953914435127750404583824726332965528189163771197093248585737381229389333843974877955730197291651194201657868363772791943276902581201784722967348205457494847536164280215705113066831392590342341765136541492340088102573562007888817818343567244281351349443881920655039407704158351831423501260037671917727962526784724622690094612192987020444930379445527841683674246195633375335767563001075490461004346913147588292271233485594319926042770682510658069945022837971065768609246271289283466665011397752816253642445503256404811380938495884081826108018384044447965903757531196729383818969095465225700839445321155024604381318763829679875557426428336228575066915907849103305553662013222459332575977898557025825078910354008489413093440102619592068611005212465941649683235449912961904864200262415384758200994342207314555953554553870786437821285554150054675987805809554289433229911451746404379764924723515337238338608182798474463309305926078366166717573187658138915433322087649696736944362788369690424126309347249573228877325496538379952821822916808862904631488537655822074395506350054438846919196409678447245814360790158761247450825468090107159979178757344644002810626755212837949156168703468239015778770222526558505652812303222306574008204466292759545593263149784082946267001539772405622224186196110591624424269413493536786633502746935452143172943463283400512932396704493767607684121854403510014173151892028264769143846730676921697809969986237776383094783148925663546394439790328969218414674937568702844050254293662959668436407754225374174155734603738200684991207686571199983124640400147240898548708400802858843484827073018749187133342958693549537248186671586020561827015115678150899931682567459479780884721706973666141870508080865347338557092047177378883379969193436482075812661264622763113140897864521392105196982978257821953091242105304009543936232721638374781053724106589875680260743769069454981454939460494840369248338736965610304528628302998056845934782469801439461028411569506521932328870147999938754887247535388888162748752073805322605721885197155956921460680448783987576257075621629964779398885541066593603168131706311637744457721315895611114238024490680953908667316627727322229893468083675195118816422355652358859357544937778983761598139521062905790210973519850397347055292034111205161882397537971387583510298551658761718808615896236534082234839371488595880989333821331028030319581757838374734205173565717427349789575038647837355668924207311816333499230102519525277158832727724273343508922672581383676509467416420838325815470492468685587376608626001057904071850110308783754713613113895445329734580154241303062052918715290065874082234112499499527038526518719066257506275751841510418327983519500974939001040401351611855417480041718882416012472320617023193569238482836367469619610966123962697542582129702476964632670993191997451759050108991033182056532384109466217147625326144977606665047058584560063093924952259538443267917285322113906082022312154666521588538213956371024348874614467442371094050048031982083634727979113260554883457433818104312428906758642964673325284246004130115890794057528862752988520591397147769899765478916522363556976444409662411317140416838151613517078567940156703940272252160014209732416293592245111217154866900427924576884330044612116965308638789206754760021216659237806833687863006948943204864316761691290256467871054083544068480849006894001418998800588898578799541034279201598091710142794700661382051517575160714142869503057903136511700689146641147838893184384548042497451364505154840642385622543272144968657049444909396467704848948956292103942510279793810231686903969019304364067344904857261674552575497950158197957609446442920058731889495095508141644260229193606309392352700566466935664654976790733578927706111524098914743713756965724502765656036271470701215124537430861497692893232578981003979020393735836362896771724388877524911678962539737564712600182445801099081895316982040339842365502478172976259062895889236029010767591380316369822639786513323762057814207035994087732160739441830196380700958909303468754506861573349134210217695187977622791368609936302636156162962448240939689050478950156107217917500951501346023613220751774060055162833498275257639818096729762688985122495322280298393194193165155067546309803159829846936040800627981710361621467634406155071951227082286955182200636884245118750169319626629362276746327636713942563049720658978272546831548066874729008273922331285957248588281870192615571343576127369310576387912528232855617125525424183805006575433119099578314094102325331297947866620406437232670967581706717809307932502756959319732820649948640036384823660317734903442162045286378745046168190285770639795461086399120285240044992824713041815430153908770180653097712402616641717411828210102874122677669906477215304505976518441732641127408988191641102089284046476109188219167895342635755062893742921004850144356152873309881437679304442050160086784135043790484310326888834504672851269180903689909118063730626297120069112669037772457496658347796410129826277154320203297293016335481812618426575486782234792358692638684411976216097631581658144700801238126918822511130084770663299501413675260775034746233408538675832310266184546888147849505366462276196947586477022807388093780426076511157951572788719319044678691465553563926449033516350192090967272838112785777165062804563209469522914196798499093916439536537708085374868738045558840187759250598832496167038771147267053445029898684255347964882840731858219586467583624220753937194155716015340878614042034414009456783498098355842905216067314021969873434030623389672788640940397531126947783799306917272554878446972420128336930935391884776509700963137308457684796762081284105949177080172861553973958314948894227960500637980223729663671644077164014218657430930338235483492838180525718131933259999341410128047013228998424479450294678010465653310218920188753384773215739263020849617860734871964951419342848535894876639846127853595995466368412981090784496910962277703714042680501233681771652824042545482316999130740203844620214227879919991129405708788317387562649260615312147709837373779002241441034692278382304412382906754020352991871360191311736205930780903356612129985273976601583056058673300639137517623906150833228691853861983961786552613668777216572386434411047969549583820411458223578990277384839889792356153930992120286748927407900928262022947664857886501354150775261202341181921886391877690443662379547729440613357317494528823392020396680533905326870804257559128566017347561226102638540138061450823398773553562714815626592458983271356950702519217809956925602390540549804043097077165914805650227095805151917138686676872150719646790663082318490887766179790385468831725297543477842674112989431361286596219645805225859559323111390907876341114165053339268421456633595312560923362173197969930183618748159102397618358163973045655749816090022557820824034654812665962167262265800572603871076406409224679827723751821738564578548241193679143949686577654343784008920625868739593153836744525681143323915107232018429448973907299405051334050657443028781559865351874533039904182657124243819969862617040278903515730385750691109292030814257218308759615018675432819384654921739600660403918076569053104810553663263890141398903088154348500425018412193188277829837833770380904008758128940855334357099630643177399136112612899034760283622718273682562310599604493922419492592757599616318101655495230118266592480666374210052145764588162130959886249438123040173741252916217755669492969752677204588033104505411251927329463101648710013886361560229587988181073070585600982072711576926785617392992795850068054483125499240278374707712406428368020227076969292296321351850957054363264900923835547388271880922865022175683498307560439721261893910583041541198645122769675266745042803811912204943572159325210814112068475820520757654338810202718759100007218472077369459213149142503175068671967237917667236443814785685174927883776636174145525325672217184401967136496309617369004154842051188881594728997106163697993547676839236327295788218479822049259384423348393520365338919631074681593334869075862857596836410607877948108179011492551616572255772829893871561320310402672281666112834687279918759765540168307294213348896929388017839576936263369215372791833194503191872659749442388415329455761259413662299571619178618751128867356604336359207345291683557621079674520562805864630225768520952134573820985412537661916843962460024669336690445501646654546276085476350612116419090580065241083681562636595866166917001866537117218948370509130623637495381342273763288538262427617318477222414234681303240172977805953772891862303004275803806520365178928648756938487803261817116388884373302601282525970755311758389016944485770043836492761403697684082197216961467925678947816589533542040234408014331817710356960657558223965907305378551674709694341329889162105576063130310033969481386191179979529417344792768638002612341111578418862796255024371460546595276350915533447421384953993210032711744995557544385818057518766324656950744352154058037768361708235548585926242793190559088301674058483900787307143094363090940789107482920844326544132340164290558987528639833867985286266439175393025398739537307958183017199859825718605963735513807952844878915635434068804157579390253170189113365610234332009798687675452476296077938165436827109012048896157188456857703346063500001655250907402688880308814004138901602463514358090038820063567425577259424109245843452164508976676442033420992132899977858578623863495163167434033740363023052326734248905901968911159768701451674715359232005075525681973946963098415666086296553932030211684502510628853436884308434247646109802497152951910518551581197645980413129470778766390188728637597185397518820452177094599797307336074510518058508265295911871685037491162359009136205246603920284099425171148225784573631765225831036601898614397374299817539211325662293133775792099317319501243689086884844864911892925763662615979813303475804770324347762679200496416612237971521674829901541333710625615677664378432154381422508573231050413545952280318465266611474185427877036015629490836295874241124037053984711846758055037043413940435171065682170577293055205184356197812868074554107014292119551368388258455499534107928023154679643933010007603269895325145352903710604333698420796519716262221708922407501709316716551959578745888833394006354376017533367487314496460505438324225339491098346083565043597156113130353556454960747794326563684674346868784239463664474692987885448471289676659998485564949792535854035367743111688148487268815066470469641595585461386715551211311031602291654399083549573594851943305939693382770125960055181802705967529427611885355076286296801718517875795144778915766352608924322495944605981075399932964646735652326482101248970128717582509459531875640776485099764006332020507453783252051355783251317499284013124195707931025470648799871206934030018547901285386506667810788773858154069819305218461643044933359396455631505078810514023105304410108679450018215941797473927675679337323875988043042441338390217483230290400011555645893494585525946947502904614089911598449770073835468980986446095509981992675950845945980597266286249750997644846665058346492124770151337233256464111342375393086863687074924868396616684383081513614639061859668521317452327716422235275924378292280237725830687276498545262830994788174695636883875235091483687539519686781403464535587350407054244077642776244855470761187950142006608542081753667540861023756327890729258470851772485678590797988594405613127542942506053438024279660847554772359271421473569111119410953334394913900745913564682304960462279311569276872623842196885676097145207709091237029997280363366882442054982771153498266198821280640341227875867611595685569135755061393659790147739495586212321387332307230987087343649276855478284789302541224172886785773820736592157089671466640678149237616273833925672490417115472535520925035807037256474274207162853520510002948595684832026453596041271031168400847446139358332990843792951408750501141328847017988682164006601746692189788928055402449224459523781869679332923658153567917766866917750768820190710879886391786176064639105978394857964013054702762381334472274956632046717696554052436319226842746297236378460302226268560877875654500723602125061708162700836014976219575802976528528115126831494668649881470696660600709782929865564811014104533931763163326122168631033535147716980993813544379745230213139861234824979070967551030431990731120035971408988604738337395618686730263831562549633606126176593019358103529155625391980580613863274455217179639793412506377301684633427479143083562983781062860136277481775855896634313705994493078468964110660665477159058282545889155379061421285897969010816839852230239303084042649558411691465396599031526781603195986490271196338383484024138732868889297408945582486923897834054252368861836614631866944537858843811113822136176599768691782098225564020811002916552941668047837448461624954236031983777271659004555320580693385286889702877026908397186112282986091183209330573761890384889026685875603325718916420332728846471544648292499028927924196768938171443770007540052682248963644625430830078179002878508424905797969231505708605601809265773174882843158444261100651818844775346361992124248103889797252435617572137047325463356005917610520320852076929031602847000038142661962355136314559805599744328489485831463246302332142936563828107063110191733730093429820722667510736972833316952051253688235048289279003644320555881636976755944595109880523974728973904334022787851396700796838552785146709795263368273194273584320294581524241862600781448273762102283371109462538331329052001739653241488270195962316696710259214813148816844033855704078363268852162219624907991809902956263694034738692773483095149907532039563771991475648276630739894440860789001526987046317897836569893099087199539582815160712988037179476092861746143280045020132799214405989515108299217262152419108616100410336862751018181362088471954638761368152203201992590483506978672280008840891602076371532569774087059148392527568620197475414271952945132726924563387719302588272970415735292403734225690868538584926821388762468860443280890040551664421500068498910282860416340635725875683322573377801111895619149324128067915807688413712384791300401340652257101395882457197605011727840037119326093248051787993257771136305330962769316280276699548756951744162782269990817847875575399548220089346120538786569194096155664822573139220842102127938591873878594686320629678399715045586852181419111603013413387458849266941202498695746260350656669285061903833526467831446837343627848969055318785353369574770072172584715342228223581440896299691687368975462610316345562741837452855494971049242037545972509087528723473210914793766965223394633502112000365455821038041407856133960355669372589095962449552112176988484009873340545999444960370116685066789996369984962719772495018364622443140548918239898770837032576266967221570180984081126500364153963796585546784997382475540542802349613788507775097053780827083053516051389332090742331879302540016868032560820093416129355010291781415008650836005920821669483093685286180130017114150996794855146713051227305270771111612462567319329634519590955602242341250648942108641700803336665626370875164056650492903134356394050908181269343417763167482241580145904619347253317627614921584326205822443747926360894726214620725059320829819528119069951897222656437324102433989441718588046797027257133673930782437996735175764270546931684409708299283434642305228758306826707623092542266687078930416974001532535383123427337038394528788552882702079455225297952104667079624374084161409779345243946447932653462469279174261550208741446467464714205339904275903144766551616346060126268673154522485608505931339367699478389081831633248777095523913469333547772470210436938308689510888346722209869219986154004814972319613935685797448497431756916656497359189776906715259967022314239826855418101991178264036117180133420479446204267788618802472435540350582462066101767975835037218876583290943091461031883589497745649934746536586082028691672424030913272075613823239371582898257388689356559976454005228600260308994840568027459541698086242250308884188094624046166300696778501372307295731996474455219292238891043912160994713693749367287605814395335814774245825338087851455234796008314723379445977813102883501252833034749482249727498466987667146483786030855055637083616068560793877206874793949040348556798242807522803382020054497924796161394427121802134791120259540231268213511188009962027362956145005912743599725714616420000428813375655980237135555852549725026818479694774569846140871876727840481172498361692751861996899008163691905672619861374202196251743161283319826454792921977674579805999814247542150411500774372043078372364631608409298263279895941699303284019272879783649888718020199990549494273241486938927655687031515069527703139179150063413960467149824209304566669355429898962374407572960969818023652801996542264584766006591294937194489852929237887116648636075020235079059422599845561781558182166143628672840494232226825574402438176870870570460323666878907643026645795943314640113603195232524299143081488682018869948283822281010841799256951725169753714343529272384394693994158650501576430603196914926444399391991034867417131304885904569648274824292111642371471155217588350060632659664976323286583718643829394973251278795999855916948784518768122828341374589441635767246908955238057197020359235107717840942121856901278277695592617083827724589292684958819901487765456371709572275952552305622253740484262563038783665125281972435188744763739491168366950605169906541561844321381372282870782947784031094764855145527561454991254608238967891901691711753326414576083991887334358281506823077326120399567625118937332593300119659895296575357683471145454929461732919680015239149885300900178936618413806376725414152880314638687381388734947639774582436280987666788284409339773181868589800292171393372859474556304559546716494766841015721212174760689318822159434003384349318080505982755687593876289563524209596324756265840489368872402092028683315176702993927499793173404754865410660322445746325419237503724816783612978693888627004791262689181421156668279966582011108694418187365603296549595723906801778750076790537101619591884974714880748085720341907845646926065632849528303984317463906095179084492565201255592003580882914952369073663481208131953173072115713682043471571172164782364238337588812691667931306262788035330582622110101187220249560257787848363734371314887005353369415819389373391004246523850552508596171218351346213434277788348341342784628515544626974276749385675060614495130853237147481386776202142744161743907762228686569832834257795746494807292603047736560788486761073774063538664219912566259378869106427263610192521536777929828039458729159079928303686192714600387534821764031504497414036270986882041536680959314309061761621125885695978648322133584653831390247048426403370269331329866399159018577792528088634130105666843480822750882809322341855758698564423310146485314800005173637039893646118170600802927148422413636389346318353727404811904794652538096161601005517621547868931711278040612569093339759533404687286382983790085545040340269718523295917379008550088033511912503386206072517861137231511487777354021247375635558288170651944530256549460926843527545023197040164736444975468059479300885139749207841583605761719011060757609157751822221922027276531129251360355626826425178176883330820600185791664996406485829731816614372801918373343582680431198616811490133043773213410754828281075615833018655558751814275539632258005184163506227649733820095089184620168646395211486570083708705623598514428098847344280198373824774293853692283592415534237804475259714961713161350916549232962877351033716759811618026183864865152297108857855217278582322384681632740932226291739685851307527070268810573878976559057183334710131739134320828107145336090128914605247594874605820570853381066465926636029345688888974774933137780807666577438778641548506095664698743576480886751483916705823663359902555594855536905004804123990060983863654699994063192698908443588840811080072334691481573522391960948270877155606690384706747538616532411099429105410344819759542365303901627023732522114683032549174737309114703840053706338113665512951925893229561825874959423986620957246694926159490033776868841517814593639612321301362340167522910799770320938245138628654718466308123160207641968578860019652939269443308327940122955412491234626501849395372364759867601523000779890838538702628534210031259442490695488903984281360342580338384620023629161700157766338175642490101457241386832896885310164126528982799457129499144934326417347081465853560257196819065246486187125873123864928638658669688732531904257141928514579075230445055467612610183590403097966913776412244364600102386662120815706382023763401503441899336228915040354610922701516137656179788168879735467040772786168041455073178568178658340893949402130534271285936219036291345050862075647738716961133354004196577204573284992101694837649529602442523060882224880113264292841144322844042137964998673806216209078387221259491233804220680445817069109550475911502929280502074773414265214604720697442022896856652226431632473978747540581491880283409871661308561236952276137088030540929894228454257813990663800652964390086521527783755732493951477900875028319391459263717147776549675557651109098181689718578489617515969289886267361633047585426757919927293916087909425743561571709681805519918184862838026940539044841046188424854620367777590186423920504426567189228853177147261051031153174903781322730844595977728906378792018064463981994234712107382762294033528785033388464793683421599358000687317511503466782705279395811045715909813066361284124101458322967465691353528800125333406823867574116957452061649967532784065585294538050330262268178897005863090401131235085893382580523771292121880173768053339262929303775092743523964911304047161222014209726611581811807815696747826998854657235777067438325091439455868124682036575055734125768365229139738504014724133259655369180672917471564437361323545444154433469875861428599796922435160738608926370430394822463826235494714852760558904465398087579721753777640289370354421813186448367925670880697628223971523847989035776546985711875529985188775844299423817702710366748586724117034049798923390995030630075237034750196640690694263301245586350785817555637473576601219588660905174700324192087943167414325419846917311389632543272107840533526232884222079319971921422807724862989557566785964449221342400186410412741096753557129438861236043331511294936317178709258777748410941779328168897977566540690147038543782751541950943319221465839440611648693338785772522515150501977772024352813939833230598675642646742785908891619289848387297974482735784869059388301076749378653546283520252002584154206931343636363537297752282192049385439123858335810777151281505164959194452211208473102379627322548398903190200340223213155688717709347151488507440766837824684719336518964174297169945051134034845819845790047076626459033424147867016207755272661561511221977571962915372183324183286104260123530925167191248768494522380313574840395690015898910560507136768276214916691548624150287446345405176591044128763800675472344879479535652674845680393161227922691049140752790115250751988063431589367374780637726202447293137321049980131775984096936399102339537445427529816434819294855897797506066286201131968029196476162270754247884460440335234579060285502784368218469928337303607477644819102387500547992032016725471145875678643004994388823466871725873959852219677089892148132806029026987968778597547030504364462599289787656324174449114396447283676609879064022837770219798141378193605390937142197659902499279948261629361164860323532201358116232123906807069645714327137445620847597852335850068521498439536637728950043813589822078410117800025455601285245011953032820899076652724447181084762803231031992309028222524612765054027120002682251712996266271354145803217283302912700251589657829598338370680747623712167556222836348543365553381111261515518364990800550662878902171432985942844577405984961009778540056776347097139224073917725480391012918615479345579833905892856294175010865376791078243136911782873282160096914779164798445200971939448880162520081327468147520710704746497344387312910291694701520530930607887345945559690057143834389681410931688228074778799821719423419410299018094357846868273912567527006629040403923156800817010892796959164659350969391176282820387900211304701145835428108843252621579261587756414556076078689424113576759320093743696386320118504999308941862588328696655760652811847635184973957922843127752459830178553084217166709742164992500580410168580515142133695644190160242687134017810763524308077621998948382542837017809070833480921255292446574483541485308933277910982845607838467382244973749414239236509396684610686538138681322794997112419378220166117280463296511483967246422529489022988716255568601915059367560316968344555845300159533837969082111938069373578244812862015101359619702502566014282926512155991728006001126819298527838543579679439881258498971776525985741510754545854467689697234045630501687826651075723590119427610621268859613475776628832585522197566437068905037313434077496791570163460066705728196542248104854814584661100744054987293444624169204850312557932714993512711330913090924975644394752242231909787271416081853773875964571714584172684909727745469547491756960205905984049727664938663893353072931401411823010139182522170869666113392686096365300674094539180864815619955256349336190660894616429318765963433691375106813346213490059650796374133228713899179580961404125471581316864691430630404824333956842974611458270758032837211255514623496935368736721047862563675484032406724726100823244441615097705709284183360397752581130044675115284399684477614068394794748098251869553731364496926842942007878576225772920656927887087144953966175451970278109232005800942694455393647945029523899961566561683795600036596054668904071946462694076507609952082179888868460723090837510416296204807926819526870318407510213832274962271669555894634063712554056291277007356290481273146161668933435415894626346818449825203022877695363850159684630925158911830989209713198327854573685578699522457376139681189202381946251901103095798347052512614019536472533816218683424109171708938719057026214667668150856065706314947732329574025565857825052906348507752392662768701227288907968410629616089003080643006555983425590911855850428406917337696864913289297610843723982010473406315462734843282173297042082428030529755513047665539824205643806157365969541920405333395112446948689886777150125026434333405531034777546058496407038486120301097099793406938816240558128606032961089850688286790429706948800362598938210149967089871349854822198857556274778075280386667165824384152031403153599623655400678742866676207167169976143713810786309171432374792632866393611812451246500660259087638708917590408845026580305054043848333919473164002113502678605548513401092926151022823792149854466684709448434905220698749970530292579350932937867468620910897402513756993812928173846207876996479420892361068686164230542662010471108627114083609552882491391656388417043579613266128021757518527722533743221934320822611793590816235959946192345826967667407482524538555828913674594502641445316667526520727532264794531229700248160726650197951216011359341065367359027421481655464832114404572924065594778526166966294588200006103463465828977692831443106729515316050212017880748867924258564981964458138369777179150922806300347244187453484987652961620755663195764137795148951527883274417817497755920573570606264735099375503865132407353352670321370031616702035456332593157525484355637953813057023148383485991686070927478818003020823961815982264770122311545225110848513780619543286217943694668954397604934823944738997069969366390333348009355502282019641100552233647607712520364088806512781694501013767826344027162117761582160399402002930256114402661348749538597530817661129484721832463076082651095401543425366342976505224397234790504949493643816602588515479023533702364117177839381965242381257990323262029275976467674971007998063436680125685215078769764495225353292556895987153941009253139002816725770137606390271681495568319752345795668394183354211392872518074191066299639581947818947524173586031833687896291668472479481229835320425724623977111479679849258733783923793609678701163765589633760610437262403319642171763312584319351395520803236639894954547258956612933302146084115148545309036171194890944356059863610310615432946595965165444463341135653420088102207373919434266365513155661112588075076061314595207190927273007241979462013298718309025799216507173358690622315719050979789543721339639481060481233467759949820512143199065503658150754657929479466504742773188644667366240595249710748596793450615635850187138483195300878677005100506476100295729408255594046161779441731958396385518461263969011464720851225992895772718597176549438586681069998932311724963106715883440084475972275391443390279848285657768253687691798208466161311219423483201662367228918402247407940236760110390347373194876070497310539194589890650445823020050682222951030153665836866264711084561821931535866749668249759521395266628723470552813037627060600501686401655249869784476740274176109969526244292683107031597564180397225083936870755083031989724322576709623540308020602042610155749712936401856264886048041939204411367001530397657526677166407457137421683601446501586455853977451915605683921065916307493339186486126240124190930883532632308557993147312382965718339706280401892072054899489678656284263566149360717341195128507221734750034011466125849219050273809504892748369090419907768056562662750011913468059185652519223622398983099769681216826084371945076768999052652771779286793242291649588673794171792228483276785106194005871369464222836647674200495741554065731086128437436126145845640925726226380914869208076053207427846038730451058336442317532785792059139796753367522313202732599787555357347737387319671766606402601963049474819733962820499079472613303573462858054861300785028625431945303112526739993768837682773521682303582802359041919123561587275083122738138815540095497769534229651540563236562312076888498287670827692063771512103196656133164803666146157914286326335911198594221528028471377351576261857816433914015858538536087886485320558184864137414600183601012595542227052303715545995275107877335440164729545827944619405168129385106191127965243713380841048564853520588790715222523964333345073976027123744490536065085086965342004406297467267696364085730741050912401854033349239851511304568873181791188176355543274067743847035994179163982949822620511541122502784122834484814363237621270382382465166635728136720378425434241407775169945513919314043893353720772195421504643704991738654941844460810770923978221894282229294343222596203997787101359093415955915993124278776671457890140832431903040033455547616736554187436430346946060020521854481724561541336215046991512860088880988733552577804343140656518769444894230447251960728492902252674499162878196494213730842194261091131444617928475366703357546486757765814859474405151240969179254339333003070654902200340054973833134075025347381625383646839953724822077683618725574567749269876791943629735265469869181180494679709970091922483131556509436535664411445050695317002067756869511219181679572617511261450395385557473671572075940828065480615983590944129747039866758793187437856453535971696773689209696183671659681553505450451086905629470805456089545490579379275936998103205471884990470866989766010487502008375433931225260052256633874764160417775319446890855115777844726234129340139870172619878290722923955266738418097974505667931112739382901158060292265223499876225950370783262778348964358120171661069810666209959934780926517068875801304397237410216164841092164419146697827516280540192690262373447554219481580734635705490864742891052231313063218867469718148275873980071789866148432967597459419314852923174631257994745971657399992354771715911533282551918970908032648468019060411848218124801851629697402233329105793481508016107362506177726910545480008713907749675699949772171665453910052591559323780575620071943661828974448230221044164503812072742643052725581051840066911987631037587973216643438857794124158134641799220436118729580857145078385777021871089165579248112096517504255402055174663610122710931438907313179601290493236314517967765112827248918263627448937985005991473721150322691288233706682937239744051268994406693391620668264727954005923600415683185212606432721304084308292767380890037410017626974189081553506764178787446411932028145846369182667847699642127902484963186223746829443111795808230660810325255950555266647596708702920137065938819689354983234961236839569953980680596166525648927837471025449504347941881931560538236380810480993081194644540438139208533325893048394940195331115396258972968875078862394680770114976372444629955485260830903010452988351989240116606522710518980319951054771871602403337844837838029440380779803120404388300726332276018163846859679717344924327805331181345881060928809722805363122665923043980119077453282781831526012200345130742152331661045771969054453553151294138070014473079701849414159515060585609399137557454416110532529598188243045293312392114525819171996185313152482986713451542237768888508646707274429871634186811235921532163567939800486222200835254436583771688350063846004852195480942386565258624084025073947460613877760692112375243258735745369262071043998550575718605545587762386284088270104397248811200331931327997785771837980295624101728001020251788865609569504048175670006643289445873165221647166051945527993669219646912826353467637482655328705035764764614871027664656536350600239369618860202207840396306330728436354732327771259990414257081517893738931477645026093348153152663935923635416070369425049344159418812187523119707201310755754692156988157096260402591458580395621596174654560301148733229585255029902925767091000228648896786961097376463293811701929710221362208120093511099687184302190576886073952460860337685211793303470659547126855876958192781904879674382184607167307882150495586558400337504455758682910938498848030585764491992412185090489837210024954742615260906170654241985031118427544641422103381775349750611210182682835799350561774917096316085725084568303083113886393845497332107819293469057741218012091307445084000675094046686013789354364242941859518186939422857018536503028716481561828786896406703662254041919591093171277441030700444020313731698904803128083718324469926908802400313635164593454093383817390639704140295154634100458387939424649323031290325064721737537326927686609015728697544122786173071738373023309384622497824815011591099853871594155918331824419086937303933726676222525729226661833323601478085998573607874061444934796186968161867203096599150365455737386202310713785990416362426704286814882917525768548747941992107071534735138426394302155788942975150950936860029992152459976217241639145897371841003111918945870445098775485543089306378129337727001637833659666569854144560598080874561158575684786625504212078927905862241329041586690960523432453319346769539510393103660981518137838747431739239660561176813100431087901121802720978220550666513176267026954507120223528828449285349863963422713904276240188315423615051088884631152282406805311855469415806721484506943019430050913916474423584734048684335003198972700926996442050473517147652338742776872142243583464191955836322759016217968788534759150992070131408080209173245079322083305373531879804907793138393205058023747917349164735587450025335645814573829418300218986162384676274351984690565813527271392791234112727182286699682364564097701564710346146578797497125749367128742926139285460654486051668882499884741942570709739448681092688088699637258688743589635921638737129168966359027020399678189485433159333968202880684995918024088297447476123590274155129714235588978113105296361044156949711922149828594972763861887735234860167729580715510165844355891082857172208130106119878770517414611974969196657703037027467537076503729319699696908498587202724644424476461085472469282856802720691683144381695711541423291050906884281045072869443610700612373819270780565151704657676936016343573841149408765597376069023262969083553741971074567360594558828750425831254528831107858636262385961786344624014639902734585320547149620050306245532043829846886019332753166678761447883672441002914409604167371090434015082157678634043871951164638879552090262374656829977059828531723168244502601810768234101935026358361549469282232497960299689737426708381812076770740500229233286851243116775387199479145398149393570598224368440629469427912445029656959958042100329004268157062375628241819005539347216540413584648242972923730475039363793148017322204609577402456305253608041391432655459745839127133423198736600392603530093350244419016396151648483305363285447966140150629458511415325747364294981292047563843807943168441558668007776473505515259140904631774435185465273589391108383749828821297314200064998341909188486431357708911140669686671296224694765254538061340706761655540186705242825429653449767847869858880334088793370535437578963254394943506512663981452645881503802181406515838594168556895764368216643882572525456495879280409613281762508913463475147931228107997705247539890338487343244767514327601044096406882949026319920590789459299483861677420151810407918370815653267014958165453100998875457451711735154485136522970164607016136696506682189522134711841034603749868134139867917030771023251026667621074626043810088626769357290306126539940293848893434528783463319665376977431086526880249426566315405517039646365355438656325549018582391868599780088923096823024766971521563022831825105532016198209254155567111664001509552586306516921826723398085312223983247801165763906084065876629063769794353049686924197454292441129969502965058387822196839723677435136298503338634455871675141012944581223921186786556285291419375482980990595532694181078621126406878958853030003318298883413992902005422726530777456149846612742131084794121827328468177673206625891142542568697301440550357247576379049823861176527437857083722046479058388474735125802422744336612614954150812683932428112663947559805893204071609851121083791204414798340215677924120181326102693798177632939952448260550285536760234949655062389422835462264182764320131657854139850530691169842834736853429983573366454025635667738584393059839129455388607262226167987553661955211732784971455016531272754813363333319712867970525359891067870804110825286727898616633880693771734855808108258098349670605797311739870688269845971088914916916466203306544834586409712596012445098000891073214410811614687921311692297735006292305272512939945247862146177056694787013787292071838973627619752099655016163000132746300986391348055536466453129512286119372737748609894044414496896766326272200400245703594293565493235784709735561499808974020344848929960812665676760891026956776800991867633137543365291384062823652605456983077099040036869267865735086023421375979626184738299824439802592056669274611715851212131065493881238379364792580766484448785701267055240975862244479440106302131027933859459171684431095395116416441834106749052692130174575234251785115598653571464646400751928533202847304862631585830686809219881814262507628196170030099585866383007708906302368148424815158950822812349355811656910752951855622381986291238611786746770270350908469722397962772983178827572335651583231399249372722450081750297136876714175992614588974686438889169152789446561729555846173334266576770035143978589037353334312328732556727291614460741742923975986466831257657223788696369135454900617806371395608034026462269621151262421762068262863235781282955347785846685314930584741872493901147258720809131904833790268479977107265466291128969456442773530163520001469523788698713407104295399027836034492402378476070305172522947169137869607082699413831375242175947508348101971136906871342427113455124097161058153388281737585096324997725559960169898589008824187667036156493777604328560615626263315080854794115829454583100384860100606138695047713201473067128026744293474111474765092558877198412422852448818089606659408689870928927817315579566070221317857070994453441557400879008639733416668797622774752448843348379770807830736419926537728893909812693167861622226314159676863912602307540118560954407982147579657362814772417250939251768966806518185657562721190291491765881745690790134080824422006667150428842434490074377729252813657396666400349272017754392017092188392345755560199380196085103589182588868024368128531749998466665147131709937320638978252736990683883960233856559836348615475106423059524946575883104722861597017733793409140447313727812819249831227278431161052464253341929526899636537168075790074084325752458887600282202793869955200370435708671909095495208805973699012413092012830934049700528358623232499803585401479468367667848841184232120419355257209755562582757841731319590122288056707241660550331522604688155145779747299683264982467743838083883143225805269548775009855592480985467854179908774381114449369980211062956338794387313369169028925444301265383397575470725343048135036103474927003252807649888820328494953524588148293286529972572765407598648667798527746873364285995251554957983375079319304690206130354155697699865932159216278480757314604975988233353673789105491176715351496898917723393167680624585524973986790149750566308414739218740635477761078685916728800382178096157259271162695234859062699887066445597864513091410410807577568876338479837776981967178789318890665771260827024971399057940071911400362454689505011733939818249309319423458473449114044879874539359869576104284274853150379537417105838362373562005664101777081412541274378760075922664069218349983270450622376410463644201911216694614914397092573370447962165646266189347679081918159137454438829471921695239773257149386304155761704199093671479656293050162550770593085757993970692215404045291984624366996621204207077322031408617677554035019720635190076353944866478475044451466135602712301649066725682703781378733643845502331238293181701594639887373921654172770003652425230409041789557152681534859364156330296503020573910311758044782336450648132223107244939352200656646682799945474568101889214090520575327360355467653136015806892491011630156207213632152592707300536491558226912441284041046511946610441138663892949243903043272426097796729966971465680226326018824623728732111694152771887211708113878138963901748369473267799940727776980495228091295187855415475191979288576333149484025377149843174711321332421644112118335141729106376561235511089674360889106166442080219299159628930399619348062563551020705880908639609623819389831405970488826998502590262379404158208936207478020818988257400325744254044160441164225729827403599627692972604786127795859894529634469988799543003309505141914566980019989521429237591583598958226514117375972199075530479725752494553967207134054879276088623125849103158711347359032823210129078309875155048256452151456077952215543197881546749539867051399559496873902388722254025311184235055792893567999678222938704676638737790317569340097094431611997436198184165704973892928114576618477614884579318427944103178360385521694773787044063416345339654880197417978807618326933205648218496765175657403072216453872143442481734760657626895925041981432759034671782043419603938753869528715745490191713334060558536160537366652387375308783424198299323702143790987633706437492109941006472771992037803343995908178732379971318403486986680341904504692139412820342171618722447085102558297585968722975283030161447981620626215517912409930960774229895330053318605944290911445743680104779450583327197944010886411327418619340085405116244688483374465729952377328683457895377408448263027425966056076530169858582944369289541151346507004103074102593742157864222538145402506448729953965289283171223880711554355028127740184423874336658839130285696797607128003808042036194614124419979306930806592656896981013192357992299193068323842695578550457446711234701970099983155058017501745665631777152162443981877553442052355184518048335807460432960041770157153465691196111996999939118948602052267391448522626430264482671818912746899053419814102650372067682521212695497013505191317390820122250122580889695397318187512243327304651851328046679828011598510980498750324257911642278033346489626433658897942636690536789597908027148787326862527851601429919987690054208949775058781195951527716757630945071826698761491044918682309690652006333099182530080595883820459702485742542436348959915839228954718642814493719961736829859290096628511113613326032543310475362169226901227646286109912613486765693949944151614734754935258975337889494610502994677439791509672791499716610730942038988562488301747179318533599765865862150893884619874903167641361245931974997368709322500405338990535350342164285289011406363094617077565146531786052024874030734619982052901082349716767056940394413121476026894428351353704617512492485896569932200943711856380118374819038243139223933702450835286689171100421619945358193135245108445213938570435202540254095929447601332179321666806760845231714465252606890073089616399009868913918672639996244899292305375805375209057798865906574568241629560001720040158626414999900901716074003638303296640677878738887416889661014189042963781609064837845855846172882249715843708470054693873400360354199991183894988841473200583479240199652929984183165835959857885865157372205279729149315256901528103392398295151362643009681697642826599210019407084847800449278445859765331322837162130244475494995193996875747540679656513227461363355172981482126590743853999553064787167952569585345155176846237418682762208043219990881666239879062221171982595608598356129950636702190842344959779350246492009273881179932362663903251369402521229420003975848604008863445231610570051127523234725816451065902796991339914194678101405797725929380646738816116538291689270800716220975290041626715185518533403676642581095132232297766188485238201051089233114794164336879481127267925838601710731929597765814662297389616677808791929764321360819525581921518169834967408427144839196900097841956344719830338997994334884645217276829414932014681359412664798534455696809146216152894620174064431809085017249682276450602451629031105460372955275358788885821001439485384856631775731054773689959194480529307303661603094805279782114133440303960201532181472253573303005847703025633637150507690983775940340778338135465799128203186955912607468815295227700833885621700988532112931726660522192282430566359009257471508256906347670697764926690981171896235221863927076962780274596922650030795761313403937339982245095616745455949353208809752863451437466517332632425309895704676907092150231551637639264283872910028082622073211792490774010454364716307167290014178368453647125126235874752064842612000512090884522229923342575602681444286086603828887048746125596867839035385718407641179761171236839115173234875506311876276994930629583299465881262267275674224987797821691516472315178812670742194354794314798481475635129937697546157976813859611550957538396691213207739755768217215777135730645305223245578476213118205052147524851375538654511807507246730940636683099936025939455230698196082490087604781163623068981574278303816653683132649027628926526134473740519654776222912877846507685393358763126196533014829545219482816779077781938936189887311911673392485323845831154792159847975999441215468282326985016072823725449158537977643477402668280805488289334649699205804731318464275160244679553774010977424027502945224616942517044194201909858280135200343991205837250413467006178505761228866999577007313715651206786187804427897575396728591018110535738762313504063241202119223455426094622851164990404178076885525721927312164417104338294232540430796199438743722656252697071906443018825632993629311940001576961713257435557985255894314341602748262791871900699738393517863292734001913200860069052688901090158362656509337822855027017122049286464992208753706847201785293271067126032140904179679659833786913271455525222881184553014073328606142365939920236331320482103038295007225883476416696580388594561283012364385860677948955706473711078421412356966385387297011804325497533296922673309773059633985787290705385177345040787807486275164166267487980802086047150642491728990340373020687663621273682892986498622580444196257188120379600530444217573038241924225542792410835807321479633715465616299367060616318903012079977733823029236355521225581489024235113017146656786485753321883981207333346859624528230790588202382354709618683899870766635491665603435434796149528014107813798013808090732739345948496596161168955837781459371605205064649958964410238436995529324064838845821825112161326486447168677030811201185974525987287558443491573907871221999290822174783361988483531294894891085066274896887444189786809568582527906645801492090278343603656571652020864716798018943267271091392285068842442377021185974018709773451765846786065313584506636063115023319596509432093149425359384264899281887252956858987707624585423961424621914104262292642278864163156326271836766021945583530253625733818552356891429072775813584319367508596331523019944755860520730090953421506525812708380760107081220666134164903484827549845118679399769360542150242626736075317448809691753845678959225512502009768410272458812678553992969029640605462043073517954380175454067710338654223305248766539051208727472168852665635897632099664072388739936089103671463017332747934025924772278082460515178950188118841502653766842531929611818894512470425846095703908967140127182214215760640833576142807424479039283171017526066222497991156970410494552953135445385116592971594077480407997958870515404285450650151844873382473165935044394051540496485387146531182733637797908954381876309593444535660154400378492545603851386644861910678357115100510815291402425464126921878125548346589794242906185149114266205104568400111425626105243572030270781551146967045192281109468915291190692689684071776424889641910912815462962558648811690217293232387892201906580196575913338646219596782737577455068247989537642734490748300002363951844864182023243532462447477618746665616959043763666426962145783865535299171989586615527440595157096402059014340294023291218210794975281947209726280235588206153529281615172194126845927780525976385056559771914410134627163633057349777774242152407028090902180607084423760644420700383751438887759324748779529530083871655761150669811777113415996948041861878640073398211100795818012598594339862296321750583463015035411854327052085975072995621781331061099180027465340024650502593096298446984809385764073745633647426652896204981186282740282128624583587241767029956472517848506148448791035010100507848430900625492707483318857464183100179159714002000541569172870757392434236648351973134060255536802970663543003371124741689279254816626840327116038313698321329060955790149048779973347600263119106604371359456881606937142917561944964076047918824518782362527077142596270599300047822481864492901324813628339171306323433623636033091359869260087741081917228213523978615002233296671010761207662079533384841028970741154503286887575027638765020618718415608833056187581622820580109759017517768254917698243250814969813844424285927587493559244535003309579000498786348730543099256631044392568430821519256272815390313494228408777521232194984916058381346597136451215354037722507544049722142191744306245325433749207328675434277813958953348645160332119119877151475031856969986417846438837724468085335136768875123757746431764460204252871546540148164443922079658679248952438074062414254096301376068697249778292466958762456718993117550870799512247668965776885058602191399304537924077711746556897420880286635799875627431880727623762949708201426924830766968387954986360479404504339502974964016103055889751935082323736331342192086963015510125203752043032105213195746000306795876616931039904103593792860987635633147048445249853534794582070273780929712549730646552918564840984973169830575250787931175164123889164147678321060272872651899041705118675461236726232824019594361106517723206023885217671357004311475447948250940388762834374020157672539613028543429559024808757128842847363452544096012568418586368793653152099838499206187594081363402506206186742902322358305174721095063715641164363378243596432363097574463398107630044700151484512212814594786085996970681420389433196026766832630833206156541052372870711898866508389600684293071068489758656647493757422994035166748900494079953185186595207249849527755813379942705105711184095392131884237124902370362108833697474706802413836059226209044335099802077254504211869899060490426067463102900299735010462193612875686617625035819176206350815033286739845760635626340307070086148074269454254307718409806958835477907797459150281792094748080018389403313643174084452207985236642196165742491103720771090355234047528850716475458644566742025893313201509701812379877472894359175193902095932615957799466634574447933006494314284495417552109313359238024598171416594147608682004108654646852132752295128912845565063198115418567754179715576675957399109065778403849855128130846340787050488677035658779627894992201126967805343649135122110313536175255761886446311428142584206376738068715237777483024798563679544984564365263510621108377318741718392185473442596213044749843824810536962605922744094247629141071954139144388603891151402398119304298600801187463715732913108692629523347709232780601294262597498325998973349347000198691486866379251041754860269228698714397149010410374025792503275531017998988885984518432346526643752444925945728053999041659816274610633683286171890814896581926024062537820602783942964130045680440891652732743400995540610822850012759421868058331166992096175496749729938152561713807458601003799590068172982261344101542329995258541739615874133038218745321196195715804901186699804536081234233046339471502624116866757768008618699108491994713326976949380806527444864580765333970941216219215966313208022884376064027516633372491729279017692864826855952525737264202597436409597165823549596591219009989892792624278469948653440504290581432213311930032703412545892168077148759112989320250848500294349561350809619416302030714252750322320962723484223229578787388159938095505545243277327715736814711479403684647283801258206466370477514297384528221655693032081312013342872040342341883558485827648269817583188482630133962620291504553193311078017236171617335262514586803942872758122722256871464729480911113220484718084720865741511235224457864917766370904181194273398544829834921730437614927713900539791977738107817065825191314922304884486202753362694820837819393382249877795427346565441087928964856004726788426098631922881673820128047039758590526532383943837524001386017150490421871318299822634881873173056348887117124821675403828391978511569114120658843926374444706699024283020296936155951837955102388875602857556140925873364846020506924647526738501743598325118507855489893149862527505434944877320376967710292039153506311741005337322406604457101607795808687940262134099488248324946388521316660379408080468207839171829375397590059810329215141618357872231293797180447631162177869398497655224341108217343384124309834941268804480115350660040357344164761457642445186301025563412013702781986621178677390925138746441993138750048013535918303153291251224241188154010248363394534619919222743468811261237409878276475426384553792160553868477419964473131648024605140149162143671448588398957126611739204283014548456180449292887397810769221298494025593203762227150678623546706308270817525072987379603435572726850207420153757988576292516142384312585071869983490029068149571611161656892739404554580301036738807229233393827290042189881614831319994327059420208131861935612071788277335481403095049364907496813829624596465044690650017293989230821982094714396184288617031158115753743814523006901140333692894786201265586135333479360691108535798543890228101654420631279857187611863223014893529082721031257422487989715501096605840479557887569351093670934569200424692114385181421148237587005989667139199142427387318619095116688598644923258866576415423294892856293573433644795440994110714554110379465311275325999610432680673683059833409181861461101915967365803359854369561512988618371501460388136597648070721877548948017496455705192354365210338921980710816477903661369073003473244220206547713866651207958940662468223492559701609396113840600728134342852190263285786070055061891289058838294142624003538352073306632719598309392123091164892322467495582036273832952421382210407411402057178710336393025487439037054032954695693413073610612553414167449719944575812178820191487239994582625871432177205472197333446851177728595812599899516901943213909687390266083027645412214473669871517083042226194666702715268137613998133989475448588561318232773105807272084701646520271514231763527246411790863033736716657166721381355769049037945812695201164507359860769534100985468448427007497953945374508042527468986916893455345400150853823703395160039836417730125241656602442111029786798894253814656310408527148293885979049273274582042368167322253362559807475962491466410099435390682611572428159905121392984499644936801321055736977388780693229785135940263720539858194147822589635978593350722107927003564166551519668827245479641490034393199327032669241499217541186192669118238880441274115066227427379464862809052844545125196119751455212187819694668578710151068469352331282271413851310542418299024472498561060416471130593716134018733159696855598487244652054868589659456092386738232301022654777312604322817251738754394958959550011282218324994894588997990432472477928662932581151051875577395945871088368330958346443367968390259063705163831932840111814951404374290918398385286265409738400761554387423609186766367035202005940570230138522430988317929729742942553574915061902554079097377745073445614406403442137857408538750867760676853369497257704620856539024329061018687065992319205124888549095741322665824895880942068021556982920282116176517185629105255177665373841710421353079147109476344166747707312430472079489046455077535411146832914005709646396929997214502104777175955357397963523484636230838403235245160146611048860903481914192382455637025178770509663787596253352970447292324236825674356239598835765300268430582917581952279422026288314557179380251658428730934816605988603063751375590655503013055754315169225484819068775793231444210797303030423087800365997008927863050059587561089445760919407058670816840058406560862511297660247969986919765672785557229178556983719582031027042435968915579166197353610848949876314814883775536108176434720462159700513010153663371109605646578889519838819139298693443286554391089305629325245516365385401724840686318304362250733997466068421309283052275445676311821908327973424604149228066577335821328254694232974622212876154240725238250034949091951118694221301759368256634421686398245279022731272974683192579717582132870363773059218654904044152872865679161050144721270609371798266839834417784614698304516726508837137529668850006642957208584377028036831178977775881756609707930455913764676980952730093580210957779338479437177516509571913943864270949706006482293425307866661006080294545280650293111855612254265982106172208987329018186435660397942471235447358688153478479648465775566277666750822825963765881950104241214288866808947676798352069168268366556992740845926442517076164357587485933612530114421563495160802268261545737312069228719271031650010263611279248436158433977605292067124602227003305348922210324050667471633901873252595122900991846168620686537126468634923101764424311400776805918111443828434567035816586758283449150701033820008930493728228818268315276961528073079729331071859585294142518537571082569977904156265830071239696449999232598731193748989898349064934500871128272932560301975694450201225193842837407217458628393369600386239097797053701626178213811446923702212091595383869739171084418873584829924412580917014850467977938158575509839806269001185487130047663595655788852902272861629753427508392903459094717358263616439135008724131186531542010931260057735566456214581126212378761349493609580191782447129779476330007778750670836845875371976899768345464630733074401241165467832781082487831184189293587399080765651232592555507375516607717471347267684533852662612587216673162691928666634250822645115041573310327490193690419994215472336329519923005112701153715637113394375791983645086515212886231399149372576034816686228130664419983862984574741883869267046594365203460199711174562076012338618057600599506773990588070371713780438874874057271272738178018344490366486651969849652049715842246535427819102033962810701617061194459912630112099622241953071110515088690525863585327014757124025460006262094157283304769450389963634118417456329337014881747648046677911207419931869281995306864535806119784597454502073984020674450431531386653998728895187496577499210044270340451994403119859973497724370559919659783158410034804955626224321244706172020044515293796245587554080994527113931100549169401503669387227482044497327446763541326097653940026925570438104634829319087051312362962408513000911183096126054738900370174149599255037493099763704042068020330132478846483962723462867088714016341215472725107892635505169309203380545157545554462972639588161807167143920407987865810592832539749754014871205189737664827172516136087961420383277410931527900808330518492347959112096154304269781265898367160405603241870049554302538559369446324129650367794298825033486337786506484114594666304055275200667025988862459775371755179885099934479716109422676759831852783387581292562966128999969473759273040052996360648088159286437293120896591638356283221186118350552565978770689326524800209172778873623293994663424267320444237033702129501535403460233247797830238674475199297008208680287262149810884798360582151725718937025793047680274756735058781599062378751632780948470344777927533926421667895581858454081703791728118741367634245220442407010836152724153262543502852918104579681964721202693743063362299886942470075860518851204781586730436293288037829528656948153630565087247608465152133511811901929401701423308160075126101960676688927087488349867503415509500651664787363143433339788424636687381329323510877029283733269004433412576240151921250864731505085579292407518193350035538275725450937041709018832935664119717880146481062064077165184924020730264995458697815148022307568491182378473605462079138318244357343839174676329409398279753747506079004776334743593127438257048394857352984395857790767456653782363895681843812497511669593224036277631350240760974552601924800039199729592421173961810433345724753654672288864374811216586421207420735669321074562010993611475983560759704984268664572772590916161182699632886333439383738632770572472523900891877355670289889873745602390270083412333319242383066762248405299274546951045022810137696434838678734628388371781992929180918523270590622889666822641246759603710113669511953463261661526386831442115914346705422007274886193221791114218732207633218450349375103598197987625310090809520702541010684785046546765967160972632856109338100383107475058080060477840202981227901846035133543243998785245593311961086633015972720094106487679240489327815145078118417696971937015562908428785653071543856403933495301984704990688717153823387610601667168832569184381561373874981176450628533850726112780061780879017793712139252117285445815899022833739903606098847420468990755637723490316131868361076673655148667322756790749879526932019473695169252417477848215067551147076001480132687857046220912884340320701605406129181902648308467174737923758191143416193340817137874349518241498501247457604057103819626537041194921223454419133536398304524764934178100104696088802142881081812413148009110609692212295746898747003379933019186524794450258228425598828492434892024178236905494976907357501602570141033795452560534275596811394700084171037374973771828588616429033333489304893656512164906883557257014420309132412157078121178646856203326979213746871105172271620530069039595063778246277925819207446877337536303977024260982507656241311830178082033837811553410366100271897403445848271776216995951984140563503442297938039011110116382932727177310596890572268578232084685325078928671264745137307734302749181576060364129178619850023223855493851948462136997326953874318095871726639153828948192846290104875233530711348510272279982530965446267350951205517773582514674988685734731825498193038761218911191643955832307885038516284252362972676584619373931761682978832074487984241548361281360187069332353759769068583082402768033504013940945712305446969302490223315046170695208081223033416053083294299197570789904758451963966508496994729253857548897048237765060053355646690639482172437154403133081365827641653725064891056716150824020387784068217478056395563198532559686189874517418517649633555622306670108186779008962837421791252682777193831493309640172420286427126253200617170940511927423292934044695519582907817801076260382263803788299620056364748249228267571563728192469241100879378093464955886516695716661617417984857014668256038515372797300027848539361563258431069291637361708862981028358753904056944101102875970865462265389065183537926375272078148399707227739130345905517991452951053384102286787097525439856967574232953599593601608155984694293364010068782446717851919266065304888643406233547666876883428903696299338117886820814702141250520194190981423147741071489504795962109500552755903485269701345602068645674274061909885037737758401979583615902709673372733109601637218138156621460301561879913925857281733453089146967929746318009161374078182380006264863878631361227554126423950874444120669726312837801493988368584709981242744042762602327327465411142604752859341263637501497499515371055171143838511766657237979556067964709623694472548817258914286853077115302412471032159005029759317320340955110117159771555679982709540010263937273418231013287048114130041752258416798943078799648853663854375524955357730917041167792371763478841658776228666586151092624680503627010141630276322844496948008216580246146016257128734059093265985571988852394670099629461081091918998595887382096724215936439217569240318739013611185513298842461408964824277422152473892443115955114391768928753679973396128621598017043942620329971108172487972452966813108219737510716671669510772463834311205009810815118291597613903345682763347213590231541569446319063601830930222318828808083753837743945867460618932372443886098035723128240020734524207884637304375929534407946507263765785078108335478746659090974167212670100926922376784181484142456734297146571060547179780021120059722959626950364209078165914146424842027199771346360492718601421735927132739880460903029937088726508310385454100985170025810442579293409232119558561477106056194945526530685419098579635136343781236658674692828541915669491108040742938097833954419414831834782357155155579369359988305717652200984024592014073506024186938992347116640403135267341148657062680691454656294871008999884791898493892763164224756934001029208573635851000538887464679498503911078586015221436623762864502023497781161151732143492531542380169621609449996379404187819142953822107880159360957336194511527763546603396624964588770864015542169449262662332644855687106335696470632589020576603940749369608165843615186963489504795077248057663248283035483462672276074823569332400332372632426558787415087747955849254044437411559899075879738200767192855294245587542185874510469727745256256746246328570993666232906428831243080675592857483434918184951824385284078374937990372253186352479949876593141041778982116180905200881389109772976130454410454269802506638810103448705759468526609963280101007544139626206527726053073143371102822458724859291168838995071103994689274457774126382527289323528828626058840166476827249066505369878464558408579332459546650844402401396827731396758396232473992715080432953452739881344083435067312232309209804951279927816226797861370244923210585604090992790310279127747316717326965892687558954117635996748826351585605907309078176178228747083067468730334085808552300599146110014947497922091421561590699733065784741085080286264323897795930964695539699554026544600141293286072579737214970745411220668154215028179885443669982094311110781049550063802754277515628306874987250973111028913024019651984496542347211332434210352680597757774002106471704528935029392049024084942898875850390280215304799453172048020785653607238813471427347026928148716373408464984072998998354262455394104032824930410502332564653171712689748522370349793633094692159641823891843152392828314863286975288311925687048189361591213189128351501394944428928794734488111136821293346421995630235319939306365405621589757973012581298016627440698879863197344641211070320722072534532628109787810571183789373276700300368817634649309648526363241495195609881179543320700586906193836870672918399761826786046364397346815137700786811207829054135564892242769003167734844331761538628386710196999800662826288125542377995396145989663069657343475451322618727183429325842314621300437963935367075986148101239210069862596645691145676237910683761692033226636002016957712274433044144312224971750334333744059707183232548570603501781947238693911449796520544027016977304051366169088840946209014042120060617764964797996998350762153261759895541199425474046928997346854912627944768980730661953755510224035052827808491136287315544721047901858680820718425276845214664854385863773340328052950509547698597557750887667796385171221285942800686541731784213193823517443369479327686489916067039405665867701878809092709955037528398105145503913416106853843248193578079901186912308963001109889100916916647195211488157512253049080779858339284593240715595109332439705351506873338978461595690755784672275187387124860534276813908420336347274670001094045485488129246656219067863938183424358346890919253857539078245605407381064381705515763946404652159196208335749645816760212435736909097940021034326623703246824075691646252217276485290046194618762556159160540777519646367234458549559458721971678933084192000221714770091400308593514412264244864092480522400736549216608842504114584114384306386710594275901192371587828189217094184200431979037150033382017101838659121411993562097396509350972737422305998151837015787130286625044471495567299430660191168822945922884248186568185615375925311446795884568264673312006308497126647384911076812751848149591205908355636478444634310378223147120335528410048730036768893410348787355897201880829279492565102634471395178332073157926595731623198989898513950756879854252620836653891929224333207301791813114574455312625206742527359570895225296379267974074566588814998374122113317896039137733543794011042403508474950700026602074433532108220043745143205058811082668445988116402817054403363000729736538542413738561075578732214168794838063156915160496349319108276366747865377482374895030141906173667482853428551818112475138605246986120021287325467787240381801183114894585870268761870280757885236861244565707958359822088145909146440214670775477146907502203591840544555350854324340832709376673616713902716499001071256568022425106530088109631143995617151447716357337592877877090189850246039645121549135547434057101443929578904864793154832439307979789494002795330163798371477162938097411345500502786591965672013900467866458058699130831818012133612097093401468720435106927015822811212215342331773323645552080714551568305259304979877538584277350993201813617989734515319997952603632497459464257421922640188154278342758756183351236929245115162071892901636695296346738623129690647709235278947252168333800488983464971195559465840480966721066402065486744236120951778399263153623802530786029498372481465906026166719724847266505789785287796736679021407664331327902227027450643749483823257771444383355329796927003817400103841213152608110270017835589407074140211142321336707063129452806394422514170081079269485819669832056782231231732579983966789853345285155296785509871977569923150616082693698101190284243367752985695123948357829959683954597700982268494137726021569975319879635795737096241539826626790569287999995191131154842146655714762118675240259136664814021842686319241581249583676692280340581396836629074537559189860459414532508958278263218205632827438771285118468144006638903087299619157766773484538835818168285924208995577862233544029704336643505853544598101427702018115653417274555029743055051716272601640853977946195203944842700206198454498008006391691557315466158380488294222003386717326842146374292395225409802207623811390427963743717525887481420836616897035042007104049026143577886573332736621587509532087599643900652266194875415769376548668086797818673617091539939618633031366738335208548172621981539884415703305253840788659919568315411440857331501143616390512655412819835721592281481748393936933787053671124539014891196495052927493993857471545268741477680329690423730203389367630847466468971131604309660688492860749332898119973696019027201525502105257736870897119894750218842409740110637309696488302348947821554257600618838846656706667804758167996149926340888887869871947248903487677976549317400344241488055907607608405412102348993644568425679533861499355100935631283498300270785416761682841933317470515602920606000958695727270211400069128331660394367293939822676171877662424302071915556748462244835867386127257570148585186715340359359582649744203433217007558921225670273538756814864240622811905956111785059465642287111419706753409721433464648535452707368028103371515685603523976740888962774043341507847757881706194194180484806742248667685715507468028706900931404284698155958356811101561498896792525542135914878480683813094201646011047716852875413146408052888840600032547416428716950519800876565823568551579865517395718459124812449598428456630156236851729993886454397184368443641758481122384353922308181823241003236966700709834714666090045998249118815501029657867746191504561869729240758693750418811786813549906316990893407053720581973373325097464601558263888774497068986612163739015500971297615336660512573259789538775171333038769265924778548172186240981804316922331457568190735346249227521143011530594247046310996727171944497871617323347070605997177815347152256544944992731471533795627394277358972944649474053173061452987064147242111827043147446730779678456096963067865051337795014155391276363281972732553927448531103179446790760459324240869920468010648777264266921481804295382723823730837653663102150215454547804983135538334013750715729690061355816622585293801112478669651605730095356224612490892210612936165951551079155767783043207348922821898604366436077734389200845023754392632918816032099507805418163255865314994777804485756437609598663093172648751329341223015876567543519892110563202543291236258211632040922242301873208221711025697035591355549663455103308165839130222520413014340528534619652267182922690486477015478441438204559749370506754611201735861467379401515071482707188171272534657415143892945913113706068228200750731710662137501386250791083110133160747927187746489551907966026625784185409210031254631751792770731239722112613281122547126831720913673048397642537577753737090670992444162824269460987435212574129750090922926356744773051880765003636704619278387312463064840854866502085804672275696334030268405872333951469310508408241500568825587236413026066744669456333538367538560270166510300493544705616240551467823878663322269264424871605106640263421018219515529857836754195018541983414542797950789838458770426481228873447805695467993233152764670010148057161520972143161971816944448216984218969297753486919586003486652514598077132966845039848343846940172495517370385778668162351221898623172134768979101504730608855484830012100298868105363990516339026122868857097336605600541460003396665729208845692923639295522527057582071462942854190217457953118805200833913451234504096107950348183607944693102423136902626321561574404788801558414228345483982476876698098167558614493638827458647711815466202034515029728297822144753668183243804276737876454400731501304308463878832753846417076851431707158591703181461482848097258823020209921156189880385004752957767416224925774793626074766350017678109731125841002033134983497534508693022776699369843197680658713497132483015498246970079577402583139399571946403538169678341802619757856075299523743559309080729483503582569475288170143195450085394241458639626854573021263460768527235021171423269154426121744375315173846504265721093212090965595846791167044228195058332754380960711170453431485289570450464466396869491564471892356249121389800112537443023087072156806055740539071382114485003877753059967340695992663967633682715098351646208274581414839517345380900271672820087412964849643092943675117608178764918980929272980643574612649425451169642376616955672926135754064881888718099075467110293011073599016766065979894691128478074169600440158850781056184043522048427426295877798733432937692124409349286030460474132739077550091879866253926434081115298476948250161426545508167481201827175428583723986324620671414459022020637200603553435009183951104166163838697781383581616968657711810833865395064014331201450820877242448183872370637309804781968054019281703059572667123667811060782310067585893362959582149352843914076208561438510705248217439736014698506084793049621484311305132058342233645774794666663799381091028675059271776371370809224943803298763311082390654449028662826037825047391017619580020833689014667950253381804317139138661372318665218510670294757890456345283519689978292180698778103859424694148335064391286607847023018116612459083224361860161652010019387177656792609428021456580160419272573016233485649077261981116007691428457374771609619719488942765928054265313405210913468991664301060970732628881784110054898290007417358793685773139296192025084687263845406219224799846455358404388010365808868103316575386556985549933128346301622551435825961529196209564697567078085657173293770533353729002148699162615310351260425533986790469059970335582560416027232065325511339181511690766216003639612049402219105726023734295604876230461154503057381772500376809776813059057401805959204962008018014886678005035862591479976955009637748912469541449661193110588084660535218586787633911618702976977198424361567854060535213858266040282211434713017781608032407049259618496973889085011170370062492838583641942521666666635006435628928832933811666400885560381062818566194481728256059824731319587705700602470348791713652266150288975873665437152285974730612974763609191674032551318846087871861913807249250161813844348279491915979039167862032333084112043729473670952817965063617617948595351098466573982223452383275921832748642506404467284431756981494198429656176315772808580101922251895167013062076161238948649179317876386040050665623529393150444935623879740047688481427587693408787885936761457315395443985795641626266672400152923540426573840537967695769346073391007834724950963786042894757809010341611210057520853286869477578015712650853176843552736793007276777536638184492401714526001487829315267356759895454849135475014792406066701214531246292411690206405519754337500404316182564515229773599592897263879554036882677883474154661118511214136043151032252124100991375042352130862297141851865819485700602130631552362826139730765177882208540469912460145177718780246090900900270606819198323926521427726191047153930334447873458986865876646332963261981852360427313720710037479285690700404874535786721606067497078864279620816800499671217672978511988952928944914241437959953916214444309337602243976936541274285798445043863263351489791968106783110851901366116701888155599814480946550923495080193962158306063098837640024722812502067294720080972466490152834436385431183911828663267127090000773974399824695407817067652801938875631980934361515822593329021532571263069950792613951459729618347486363162745867043481047080374730003823284567595478118678079038050746761392296193804605019561782610617734306189498860309568549666376043642123563693823676407422228498912926807395246915741245262969171536364720660549252181662818956514432860779174486715633491149508790173628675923142563628966116025832286607103055436613231094037664823439367466932397172369177790260204215550759666132918705837130492491494823511718587426149216525841956436169252685986562516618023341031853796966331820620250628713095537601682799402160635397895502815118534660812386075814093962221108120057659559656355706542641872116093602989378009800149037197663646540745240051642723909155968299022022257141014131923453344435492080119783081421108751157562460894109567039995318217331159499076304460377889872613200736416954684425783739507400284873400347407415512012876369457966062939814758283279464091236668956769399109248941427972082704718155630317700355205681289800988326569185936822927214872586158905701275311568620107043110869381119691548272437454458131718438130377189852049456571838301431727051730028787089850859361090114469527269382314187081053510792779561355843932086847895692909696108103222804037965659099682377576686075049466945975342729531215302574689753668284423525769240773656773456108399012815146761093141779200875970341354014104960482033165884306597105119550574937303155354348347908281882862059591575290915467472664634062456560048914226162630608964037965253315042782021152653813392290222539713908810179311217011193797209596660626209771129455837139199490801355342393908681238575761953944226554110683898429495117323571865111558395250889294998641653497499209704384568369529651555761792465754219305891481634174143488441725069449830047841161213453126073370250317780623349929454494459115725047324194264192400281987605423955720491924304790725161021705062927065052138105948919457146304288310666136611271773318530663708199876821134842383095853622740794560156748046902795017609888350761077961747438372601605530313887573370100238245169568003868393488116272564173523152479950249249607176330290566654070071364009879602710947529687772441511785109431275409614824866391423885882969325848144709619270074040222048118786341620764736291598840786095404015346359733321509265855227632290636132278535663021117197086874981947268600176636178152644442261140746124870479747819220066704895190242633814806585397771038253752183647941663616660485046828747606237490055293661150266412895022362871589751448631157416479464891751627586970341648105356615140685984972709002679519971752909772469167996024924065440276696534225108777197654270553248217639883525277430036761039900741295766859382877562949205288141136947982498264723361483909989642524574918609754024592169723525899311837415121093499983582335435412111888916165493337792244631798214460583526737984730507334452071101675380485635017056637682664881572496341324604311706830388701353504191083994170996998430116343809151112999177994862581763065577351623151680995491039836059384046353403868519907073187942533741191159093251080887026847548948814599738203473760783078123521719547747923813844201713934328713615161985746152672398253721102145587328842683824497179001346973131871582182318641057646760339834022176605985850164693113975133795308981315433019646997596509970588558991777454052670059035768860611567512904305031494171772046638573561135942917439558568805513550386827837336812597606726838286898643099550281063799956170469881955822727583437013839811840825812390944780465752606559459795660046218766351951454217992173000606040903442709432930411539287028019510348177801504723692529004936946754569590293288675101965033413562856235915186988610583920231048666516365305210484204287814351514377510911761504343399294992702086489069765363450454978441420133353580265377001587400413542276049893535929066238406133991743699751873217173946067041401178874389269176235704650489327303004760948376567606085665536014303979079054485899561175875039909307016198910273805827778122053000326466705217828248845641421442450390815127235153278101741718752408382276949920175729776949328646428075807083970117764118097791147317170327537442917648893263994227176826364454206013740943252759802163043926892687725120563684861888138682674272200682884602442765002129943503934045975741218620546004285838210283663743605142696561202415480809011530430687432404654345156360010906641208641339086753281030572455534685092012399435787921324862387162011804443971977102059657990276046225156977533658645106827328221527505521450647738048335154114893415691374807553824556224995132747972081185916217487423786849448140736440176842458123198244168340541701036493844945713495485316078507842979852356307167265998493529806101871085063297445086947642280576849547534293847392957521052805540705975083956490210579784306861066850473019149403596315447979093356290420698066078659488941650952829946528984365145690172603106596031551019832990154057696763083455136048918721361658375986040835363246413105824924390219160532533258636399587723605193558318076692906293736086174489603655866708927009715816539907682487767178868985198616561306206836952135752890577945623115699025276505261925429896838501730973470896672823868691335936954911335652326628679900111545852601692747543456710431730905983530899298657797444147263302171372030988623959170972624592933999962702143250813202285409458219447891679568620982138676023609767074395012710745193610793407668149826123156487638573650573084793612753228250166136185770152682412555737674498388533396758410517212159072345283473283078470813402193261609123357907543467179087852942123555737889545091246361947722435360418922772464242949884427329378292553813014744284961489354157919901216465633439627703637630840317822600830407286438124596352786512556978708614129931178532352390932207356754374638456799960789518465664872053606898603026561945097094598175974799603898605320380867674450084502828686989160049276579664952405500383957563794077529444237432302977135730820537808949558466696781712339522672916061395364777856055034510670201008379598861268342410492463665121713562516110694178970762038516548408905355211674592615808364531064422917229873231769530409893087128380273526295969529083776711693677756366220025725718442868770452978428274355079005229144704777093035353394118268476446359157240701936875300124489375222308114872010671214941598243168617931500537892220032222535099318125200229876956125599526278992718430291188409632090823099011999796207896640179090964212170168770775651956566071390561967459411899542005496145604613104279307182915670885935684720831367215559827490033316239376590427109880850067997775141259090416812655180241412460182387294303440511880649369183966261876680912221320916309651639375285617034776312386981847730869821368532335079682622226293554413435604322846621094981067634201338397564502378600125626608323671470553261921069779671548499624711128068261592192284026605626137790501847068131553546937103408620583426921893875850116030817672547696813269847016873158491963307762409829861629482122494730655509419799200611948906475863332006141364039709713137648560349231062219610638500774125726914242640321997130929763484747339500625724595682782607843649084526593937540739671065689989339314833968555937769090553275580058949381413759716825176867887017934176949623866070161353516574501636813592456631905162479786083793455108081139139039090502006226830480342268027718662024074027114979118663461785477950475075886057037314307976715203618761274823826937270847749826108572188516029276688153851033664469993457810366781212204760218747214300471661044980468308776801771761679586528516854398520446482644324265819451907603442875907894138060189992718230068942315455051187161044514254243177477945642560333464592963833667269809711186836370514790634490472872541545356548736310516877344604415147506242588054174255097894316467387290127853209776874213936169145649350280974547163405957485316484384007224789115599276895326618040123695169175872510824558271858114205273478131986666260820383350178945022230324005813025802458489968181544561040479617988152158725658280285028080367113710432286523940331817106464932525724981448958794457716625151985087175311517929100900884140682159597300939442922964616010103843579524831077395777534129152850983228653173576416193384975917173941624528342407177552554898769944941765818540261260986392858261711858641666279768793641409560754290713465281003357230599474627600506778452467541343711491941530090513263474964742417730051359469057486765048837799937310403934338926288840150385752697167297586170683511762720400474573549756014627406095863245815116256321895422504345529855572320081094104327470584707832966287519765743085432626140800882980702063226772984258914537601437802285036720670754592784429557996935264577084247527004979782531006096106938365002146196363869384019840149718137908269194027924786606589530537819639814875107830647874296716564316858637776319231353454366603536387931033669491972798049674307612549571405254849929954849329540885677795029961502692322701635546431789615206071608774550587356879993001835656309991906153236573986883381263410495248285344401654906715714278488187920256242187851287676229972812008079061557479903950885942589739269433701803989777330852704136665235372605289590155048607559490531362381059788817300373113269636217256610687966992169160433188766174584031371732376504585935727699807917785555061324880450876066862012981276884545538132618134351086679172870671611135436647588904738770276666211566109155157755938627262363448469678082622527809963306378685720254573468214662708097809505045053958041404816487725360200805096756913093640658604929674143462313852413594332851054458102607938437816215999849362458815249751441901109040707716220137635640421309304031614707354727651013393108321909131897217115736389688614229566218582431387400655414803325369476059924051859611831579727320096313124461725638298958742148891889424688109805475865647948163053716144860294034972787532611267858309100754017685888905571094911238993277114057743347206881569999057544055429588303620752033566157521024199535626163265605898462179009137739276759175134600353768699705115337108165845319531259748146376069754100075307720807002490180981822396744499532774754914216584235157366219172177523545328400377652650197854802944350016622977697960131803662567418278778037561117575446528588816070120157477214821851874001530436155826865150092382537291388923122204608303580553733248818378167712717821659436876597209646022939868241485620070003405674149031542121646965482575419936544862520727529436966981810602260750432853133988528485026295219863652012110981753240652885129093165317092045706278637705278382814472721353232876853249345812351543389932642074261318573586816931413890735892237387645682609752622101246065078222706866342033092146841149012237736116917716975272479260879482745770707062930234258194441143373624995229144467359985783455039277750801839717186891876148744027762362172738337097887293780904709086903889629162081816689366184534290833952353621543394263618808282576048537948575523230727987107287424789188805457877964466421513092011226305210573169105611163770071800253730413647706732647378124820661169594701396164473558243031634364558502087426047011717880407419861772594871255704673319700634780494752719036602943076034821118116904790000702853372068754127045529666099856738228227399910240632109375129297884098900487463782820974572625139828456512104827558505738386355256708476304401518865121463630825911347879605336569135919260103390322456722208357110057716296501516238164739718728861926408509543281725780564454670194930493144721504635323831021909289124319267841035782996768515256365629005547762038054637384894250034753738944707740715293923697228067310185497982604720803376719431975033133187240491810253959816436634174073543733814673192969501130952597578445034572173262989367169778335872474484593300556132889675006742787997677397143841339918399841141696815490403946461682268239285048740198426161741511662925399620511815921231184871989967183114041944713729079503199614230056183645434522581068947408135708546277934022223781832753879685032388200989621760399867688631237526425997537102384586323864925595860568327413751484695304480775387834497169666685266647709730562960809195578450971705798131868647061931537805474349227406374020858817266838855056155932762836059211104411385869259787390834214759930858111949826971043315192349733348304015473841422587270201427139593782396447174841870782934479249410005831664802216950595165148797278068082212734990519794022673166334915502511085557933930072197601443024353934468528893430232087440585484555964301742077575356845328473511895488051832192570464613955261277256544628546710778346519347170505684543294495167553043126881844782585903354043602738660728448170972722630102136145135208063104716917769985236843386862999066069407300347912505148200122349148418026125291990913990995710928399506228546630461184758191434934335641010614001327274102946185659713235468805210412311132460441434909021617039311504960066473678402870812224259544096114496600325037685274701743520099003834353818031250479939614678233139316604111036039811825647856687129270632295396679335972632003013289548610118576724983214127787136704075102000085073086426166374820181596595989275947643327419723466859123515486990858267451028094330437594499943653713676941263988508229462674322176010149238354204881340614778062979323571701593888640036169267287917556958183498329898541532884976608377005353868243535491378094400973297138859173329789990553376153491729446973066925409608739201151984248249538268169109239695376356175947438890295681466864136573006841735177450565578393139046738937312407881566509065827574495966683143057353548362642336318174200859418746667399267292094150664864240351193475058370592362107891418295245114716791652306642559039624769783042999500151090451902650950816742529666031023371826534944260451911384195746283942099121960370748167196926140234633259090206229610594727061243218987851334901637390366552349009573899054004582594660074099115808833221399229541820986972441954979956100443697436180167625551545551759842232593760204452904989134131192245668453442241071056596999164641510285567700704451639981976735976596577950018936512474598612788499991867265380357563076068071305730903494940293081778309240508456713620510625125124584538015898659849072294406152563258409221041167218193448745386289811301380060425786808246854241045948608718039167225550039973214756734968729662921198371046884793438951030364750412845055615439570182661235601825864020925111722700223692486695825625632808356876989631882098038548995548688955149528400260591963147094081719946481077112172178004647294897584541772378352422281959975326737978080816719237215901584407711578866021379843845795746616314465913759819911114095433609939642312189383828065065501057982359625696148124899674031646436551790944397278020602919992470788863024523784612173960337673042631351576507555631430797848436401643324689390184575986629511399382352443407540422709898304613517610808972269229667742822205023333312416974561170535062883034163035258451128126092427853080696615940116713920952565932462774209612977291052163619301424194208662949717313317062681687267890819199406527520519488107930761505527977869406788115230191391425166749541793572677894026844363576755090342725888852688983829397183849891543934401085150300780970007172403269681218354280166122571288933718834041972005266525277367321220002755700739154250626471502321751554902163288282253374395567844152275973413508968599350952489942046260049759261915136604061985712654465590301684247972844041521965899671586100503844430571984486067370452995197552335740819642425066713187692487511684878655102001843597078268297125498053501437416312418285118052896985768468683096356208815652237222553824086404061130289358018369178732483222743451984516095138621428829255035898772624105838042147364847719976252642276463590124651942727548405048965164131968346918134478216119462489411867613030446956273357009419938592036182961408906561886643470107017332761861264217509168272339399384535194528581997555590942843359891561608592231911549229358365135346530169070936679544663884975947852273570254506355900371861377878623325070652979579551158578244494283040590893917746605783097718759365833465660526730222605701860788174478965531125633294753973229336348727524294782731599990103729926753834878724054475475205770411907091118012095029331963578482005334263485055817784944015505856524736487723428830766114265563986648113692326832362806825240131188271079186725361372265362948911301913997361489926571301973554850120110830760382371671711398790105974585432357223103678947509189168379801316939186485319853865249816660750452450152442933895237961677279617691639879345410343413434199528625236027175612472669870732519253367118985588613713106631875987517106836641998430971970093553139837929598158650021650553103614472471736024196237000571014736390012458827466213147978882954191564279586560553304305121452296895601548274880051564827901234526499794179332013153879211896377248979697687267110038964542781477127896710430390834926370783636051611684754705552181274227111176307696552019254277489296520296110766747729353704925262645319206017063018285987165038495699895162670934723014464520976703323030443380248814706884599268979188267035666915340421616505350989023985617834253004805899011219212236324188202266513552569274435019363009603605396151933621793014152154121801557405275347204109677832206909544943183069321878110108971331142235236873497006776577555071375791049848725804181856811530189528691238040644383738747918746228499803051530522000205681885492245166071373791909254801538699964192594962541109131837513992887534586354705601447705023553306963654438509040066070413997808047833677570957614532872061420950463806268211626198591360735723781142596278815505838541006008447075820620440961067586082019255726736923299441644149218242771257926053380177249858949304685808164908276082102442018842485574890467549218296868197775623518791089188085017093311078736743509989208563209925956896459258843851294397606493178770651575263460269492291668862845692331180474667289317434599346036463598621022882325107052499451783670163424086711184176532828541185384740761029649733098255892832676922585463663644125650153662252941294797115509716586752116837188214216599929283711224959799743752078977477995561970016828702176691246087064668869958767764588868150135786970400382740225755734836392927042202539886039705120399668139444057626242069846353272493265845725661471646702771676765686519800959888944128258611976932160352359535492847752523837017416172216679502902900421418811787827334591124582267762743969678996683736431211640039333043453955614568296239599654854323362946451389635167546822022167437216496392069932985176009822272358866112215571995988785553376909883663523628878036856881949933772590304553123921568860983509877161735843534892800372999067688825574954155600845883772627010869678276819115218679891900103408261539740187181436633061916781814278035073420361093944000981723990323391767262472004560262629725323353135086762232642956970188155514847045630343232978451419216399776709930018305081411896960946652966646017658785971180801801475233699964163506010895528205464217417406285177050408449579462570414731655586399863954967318663010704298463537257201430884448701082332905055276357627547617626903270720332420723905962357309792939436416805192206946121485616401465678317738910724463141762735837620738798461779369706546441844483968506849887205012781942729735860774960430227329405139982716143178281534791483159555915812599953918852497173700663669619360990134178364729794463056658093545441368659227006254592190769514211238573355905821842507279927260220803484668921523999623026586894532276068862996585049902067619039601083072884986928582835307987465636485307669422878369909517823535031362289725106428172533590417838607394948031629659924461513343045478305273781126315791900166582874628542401997772957826877846908666366009903391622333273586266698961229781074353725263490532691956181429269277837065794604195373666313249180403200704116591411806724858942900616865885540343014057403531687664105703403712762217924543286550983806551921222626273768403765473852245206944938866323833505059806059260712219974988404579404133848236693186533208878249391414704159102885087127199429450310231365146326276047401603458125086865651809537135770420340538430646770843837624749847328869096060271186060477136511723445135624373318451237444673669606476562260117981758425543187384353437899559131259091078168199419340997381330233608667301428642109075757762646981839119806991093571378381336114524564591706717667784664692468966666968471643755705679068572539560777061509840507628826222678357022395035093436652827104555377276688041153473945523848649860485217624456937874360990900036701875057944715327622794799685813261155338091936102239724097397060796120774336249831140469262556046998891202423768394529455373398795832624824030016268087821489540992149261227742376267017151483043762319401245595972621886342329861456639366330248840307184099219726479809432965676780359045295904865105962710784590892437358151724072919663636002705351626455676732519045460363054928381524750982955392518458287044746722480344838853096325158641394204122837441122354699073059864084516703097906388266900249775406848954032216960923249070403606801032009813986284464678607878986010750241012559640063676621440533001831790354445237295514343317940950101309231234093481411417848335371596163029554332580874617448167892310315056956893959525336438742308839165613653187142972894897242962347294571716748205958187794920988371808462858538963672416296214576041541229115553798442355552255447814012517083825562325913296782550907257841023480747945977808087130949057479433305780041026904363433880433238144099603058140638179586621258683789316502159130936739740921560759657499644450861702867090032789955268547706574526926849499021284990633287326187151305657771681645757336185324468033943728952181773204397648731856752793873962575589358608244131953111698473705752879073316269477653597624557814962157854320071807552965423625527336087313697067317617934873327351776089103350560258845349461562105904088937729188475416128753305016165904028505366138928429456298658774140286364100337849678255958826771127577755189032214561799158576372016225806286646865248760026326813996062400901016034406281966330946839808650335145414138368285653270480074456972778401436622177713074257246997499008606203423801163757828947290978494715201016523739028169172690897772229009617421795878748937998405868346525567644094905591996759109741203680555068467554280777615127574600875172617414695308206687894944131383594534327844995138237470462166167037479377914089597256882669719093367573799360778320165949081605150997166183362977607983437999509868468155447505729991164490824222012194639290455884091819421405352803627784182865311490344198742430963119630550351779692335726478417521089512567413533997654077269187429793237467967417267490293383598110148254404170876569813144858716046420344410661659873423177728582224945400210945468851364576839129881796748818015523920813257423441349582023466275356561835833087188564037810428499579041938460123419319895744324266183653310923996898145803940689561083988574315884206137052386469893930751554720055076196933273203126844892626036791875726120863020310809712908519389536116800852219873602280134954904269369922435371268249722162147370990718664315054302333999660447477334294487583622645011769707258858386111570907384048763348968371875330918974816112339270886287482479049251786315334019933315637750903338947656376510289908156762265591800388353592798894568121062982849087765211519072764720869505229921291281711523814592549944850806530213519247459621108703942887424416525086935877959246009172192088381443912101985926653434843902336546029111970375034882213096196815323480539018287561638702921029494592237861272512873902065816036466358569681803509301914531706727195989520561283701142920824848100482698985119961932076221124799648697535669354361816615659244374316018268183446570705107270009852374965321522121373019447559204766095258487804511554210135934877187994782695617914187759174039451531423142691768525195665294584185914753279906340641648724251205088890988064171022528340695705854185512861880714307155218746711338371790722583054627232616992877189766550103786447581917817625885529137396836486585664043170396520550121280549433700724628233774959978581647779240077061328482295220544250472631506974896145386577873202938992528794708411873810192660164967519297498935828519719095908024542892025768373596778981765401599204347785533384574816965138988645955892053238027527645364098726350316990136984563289263320460910383263658789537848192709940382825717074349189535529449241620306737459745593873499841357855096911697314241705008367314703142706945566751859869034699626725665302561502340343954073978466730880651860256852056627645197979101670126724368107138718538055544748485918121043186643195371577645652990432172545820335548848689302538679422681172180089615279860867011973901269658480720798244310784733125567161407004876402844173203865410095957860447941747651017070055879023498839078515846805035586694873631219049112594311675732489753333079690113972712563382750489427740147530911417594110783019131782052935682243499737186271434876654605269992042638309598611689444498993975858819963142995214407532132198343396905997877035973743362353056855881548658279659222374511724981739644539635217200276957043366400904660489242045305921803240806292806974461481894690644831602590057608527442914414845532496421709781064080062561698361527272538338441637328660427444318271725997978899632877309592789307599659379681844024585840286220083222380805354858630267298722137287846583859303203573466935211630500996101802103512388484150983266633533635925251012940665385243567593347325700389286082488161048595267078669270291025337004129405185202895049493541543857783024397043344326590064505613721406881996511766023976385209524785007430007764653237235135212698616623778094560661153443332777612932512399166177749457908646255563700256314999912178969300787614937019093060028645645948218614006151523625181736753016939475888096563846103797307267803249595295102652025086679080079362487116413964844804051350075782228699194861751602790267549876570543496927360180399906511447254349224231354357202658941393996333525803170717429373142648092926817391617011814026151041240775932516365157399031812918155717216661232560577248253837465608991985151136508363152340215609797666003479425906853275958655610350523786867791999750371230289200747867053686427999344816712872431829896865065676741697231063249391007302764088719567619882866649031713458415910644378059146827939126382133419395440735468604562604182682118772669018189865150437301242319642517309635326118929022521429111889839678702733889985586623890263311483392809323247523016368961738968084574665332416515460629582506625576067313597124728160464897185662539348514182744606483243331045958255894913157177558589024584170297739210552472491577435070965122140580240940056373274593574641029263355404606321608060300164366691842472889697158835558472707068096568820952991480498602927213407287690074530760341552605046974027551933138581730001544596057583454446994438728067616802185687669252249781411059127201645620269327166462641884721959422779809604084256453193042960244081543805430367304169972644567944969353571668709683539432989651623624200345535383251240649951921091365133271296975795950971747011198765982988364306834679606228627764541058586637425925303549111389203562464158755858878345497430830015315027739899096726422794030736606850581227478850059830546540066661086840435420563081378053360370372962740378740938145358393932186712345871136147638445843188032346440791980626293781084288302513830759898271885225161478287964671948529130103906849107920398371214521336514913556189630574504433405210040910335026452924486389785987923880101958570769619180512531205079532963707060156432599887365352090660733463687452190923802343181793292701479626483779152150215756442775837330505384365699049241603450433911307897938991928171256478658888212665229986971370402446416985572483491920015839700007948935968706495849444405820304169550234345128181474130679458533539629598311451631251055202140700522983516747939776132417111948597245601041469430350614572146782340540387389349267052354013000911010274849352186129820952874208822718833111392229287309838415316538362357483877153976799366168944979381499833722070381497758551607682135457270049140861421593459119976686706097332388815474323866702138255954278286796788838445412354405791477860826430346421405326002892898172634046890313528541001275252215813037237993251844906910174504571784420393349478163260725500366980282134934818372954963121065022429211875685596045749004639853778678072445326239190878740924560349806709613542831916800495237953165854427041114227319245091025186223321875918264870355471172396628495607900396483037194405159946458855121380012802421326095453072700027429845976128383728246231753924263262640626734286510747968047779698525936221188601425957267565996223563192371386390648581281526577899805987835270408552869076819932633409047404003210178168616803601064943039368936809863655039506180818094690745406859924548643513386679388524588796875478130128097505370552862388524659569897159363589968547622001309730201752759748643571190759643493011212723350534356273150813529333813910385575867800277627977674588166469132679343427287658982742745676192171998899026579989953405007632023343790964391022245025781214937630855545655932079246052526129434388693957235097306796550942953712676891214279347255001135398584279171225132625119862482042358600192890363699380107457521310910227549974648184423205223851967724472583532474742069037316238338036982112370834063592806342756163927454439597428279754574877061463802860665598213705824020827851389362440653326302095128154540808672487180277541141878139306989146893910154859486888433260868516733284240411685951625774476157820807326527497462685087128712993265516236847486628195884151999586490092496119909872869308918702536949110244639618400336934750197154752361727527549988737711664456546636930682652680649303330812880043964293846752734235993309722740045204313059526114658881211157400302399273673154742115183822883412597253798848813305092689481970434501660709163802432848171453119281174732403801941728947044261934083919170742900985991525818369537421144236275206065179005240838289509857302023494543803350353968076851478669628333369608584895678901332633681356159780905910290931021778356952787799238764769164381867346547037696786782279880135949363044942880848900703906436497437287120305284108981635385184928806583822922924471792009609917471056689839067827417261092043791981771153992618394900117544594881706189070613635048381454326365041081274092576262072176656442039651693859986608429575129141083924724082936896064574711859095729619007753771653893163169758945843107221438174389196602422462459479947805261125660080429798374446255073305449672297375943410164275132232709609856025415212105537416386839363747325820537706198332508886835590333265010623750539554155536958595584415325869011650206062544892320953692451785635787588346659678370282981629735729614469795794351920525022442375937001253559663835489859814159884841022717931975622740080822364785345181768453145668075514814547328163832443567773038303468285882397588579342325878751085089424661902239791836328121577193420250702588664775532351437673254963662995471370332208522096730511858076773854555220667822371851392320048538174321377014321503906511659050037840924968592832452557635866586572434766499667576710723719186123866527441650496225588358456310802151312895889091604009572885345939463437246673886095366645227850636086096464047950947143124675193403758144837658562679824048029832217391810759451743690544000914521933571950652754119188304460088643738044204763553609239348535522436586028243611777647666957136705778658762644274953739435097257457706735772504090920700624242796938241152755590037581434783801437624327945622068967868277506267914164271187692514931343070323172169846973137054111969181339544777713978642808007228130376279140227400767803830434784251658552226971203892272449203723255029093669883025411872539651133428244692227098344180412452086268979317592760853066045135094659502902620569825205060044625972729509222439775752381813514774376345814968681908399382587559340332657957995876194803927520865847873025686085270322718471656575480757013844274048691623871782623874598676249595110926346480520906280731855340702086994100362085991200157730686269927172626470466387004474747959301720546774769965319324858751071377372254000197034247389382306595671586271640572896769672060217266399464085008410843901061037474227448331022907799991292222573655165949955113986506349288671430792090989172656032581998498761157463268915998594398698209671112767660610657121961482762986734889712814485044951944353196523044930858929840377492306935048779065194778511329331162777848015281999537243652804367376960804083216429128166532472294826653642908474078544311651555772771190211898011269450322294539007925341627890883078594737476034309020586916224091592821126003410010784309204489411763405221115899026920884451874652498057783230767794977315972360110790193354114282201001766566899918008958173945085133268572137864272268111730701086373508331614975053748478335039031685660861276184145085250558057845716220196778039724024168815435135065098485280958213442826775692480785457921241154519943003563267747403317923114030662734559134997171965919688826408171603332425814412946756581619657766249541353010679610833169217780125935040066947513849344788546434458783065747845487445236160525591271606286526829696044569199237491035110320273016374623471527941344289589241495722675266052784586730266354346408085803105431419593391667922946333450374163944192193027450275785235205690539329254587057147973124570381657092761507069602003543418898872527975216184672800780521757184565257897771322636092465920158556233546858907410610731558423079450716830818493646985813726540455565446866202514123974176217259895128531286787677779769563397541824110300150804542959638671582975553388573544432560982850934672922426569471280796088176919215962650337607955015056801056004677878677755865984989141194267552864768589110586017678427334390270512731855759801194257344809471992238482776442810103332946673008590518066798604725887436447983111114223691024736783064627458220537729858753813542772027861203481371007093487886659414856220482172027035766183589285575289379791034506357569571947512683337736801618641187163235361354914823192210320247132416718005453443858697610827986419916339545502287022557851142324709258655263795651276607150575026515771640535372721217556646802873960898609648976018580497324836483768750275715638852577791810508571952177372965263001908381145438044782009207363370043232764245231350650309628355540721684794624442213846523772373526958255341340879811470052026004506562049826386835687906830908016617754498269384547871736779683166571349290577484958223985961868257988865806054902702665500111545227765184426761606087460473605373716366696240614370990709608223997655687483360375536173489113302447070418223647972886423331914246971219971260751593260608387054322821505444010879583052419515583354239576379904711203527920078950487355882487339334940966569984486316389907465813102814144730635171396693046707662145270665026873584808882050179328437443719374522448357295098160342746531680320838009786770554122109048338717297118288455452716420058412704226959538227520840631832721114072021469474227677653692381350295820881918829267532496084272407440989840951506087992768047103637405970403826983359056526388359516537624771123076625900107176666249497776491231479820960250207516647682046409459463096094822933769689441490558537644530615694093523043119662737677408987698497064029095201828706456469952141742989293896233199499426317389094528392736642517817905573423312350290389013403503632938908990123913768063352015092645001749088870888926388930924790416445447354748249753448625356114696827570946731148936452252728547866041703332820482778575604750887057792821825700541283509282682529059463281025059032586574491396002941241950815074485145593756553448091900698934332874210613299228003989080613308698152099061286310984753027032587750443547794293934341821176205903911215370883134921923354792799975997416138569793704249654384520487739667603601599231452283392819872821481702901067797445359987790922014090499237956166383224383024174489521408645685119625500247332839996508744173679769143899354719433722984075361040329689611933801909009051302568131000604159132074931806332166760171651686972790510550288710666916023032823038662631434997264414707228384029748697283565256401802507489562571912700790373633195447686490515953306116813237588758485393622322285678683771149313027163994090429144403863455878056759210599591676738309537374773637747332021368000561028469003822301658434093618744170705960901035122006434200684027554266495586063589967802137802679625011004189960210836081992650691324469906318390839187829880036573855014802006920890226481904117256668835202895065326774092703674903838772411546478389111343747185692483653451978933191434968595956236339344009523736272693253705174990669784078135370860240141490931937875847877239896960790884618064282368493743076785191897266908442804422736982505457301753965088681489203321861787521484843439352749867877207947756860522002279454720106898865404803926410152001948232985655940934123612306463770276236061313647769650071359072163314544281143747288211734732118320639327794617305377966599016671127472317124202045178704892217609000591180263654663325262072977139276755610468239934906780281743958022163516418372960629955974693549019486299538990840985805715413624639037571458896218901727119854824853032492847015122016585049228688231959585470397878007135422436699521626542477127806907273182590139015979967167054688956586256193954958736298396207426981691423034020260405915386932828144746962548634144928768034373246991804999673557125848227604737772752353413402990030975434473198204145569954600352000414355689737675000711489090098043411741080906357913142504024554273497063421121020402444719410375466748462958364650302771752442920096864811888721094071577124425171717728697414149322744842384995179175779020996219928323142664201982710056861792974673756377028941592952443908830579334654909056384017910105441872155114867601937479748582062309678721654796910150778957467653579500077256768808794577316581497264136224530716004965776485414209237119855028039121142152192651280886752523813661085200139268419656473433806475367087650091278469546348144605340065442237749699050333262036193136400261677961738537197745582097368033350001928597036581273759679765764465576389742622470220161338593360151085708415324769051715149605931778556150708653852124356144051964537298802670460077724375610893867208745055600231256814840421192247183907161859859460576111935783585748432501637398311708424761297272105630652918535540771112041703939744918777916734858078073032373536163470827022236285400095211913376449530446042563187927197748535882450617127386278183916736753494335928483779080989574460178782319847661758936547071351112030141495341995418328466793743149773125953569904859913418753670111864964040519334264642257963495427914222964386061197955498408664273231728489333689594901480516006287213690211544786633884429642768651813448011193210918151274833947355027670618230921726962901294040507283149690383507618226253430273390107835544639187697991111146531295605534938018765133187417706666230630435450519510015174098042027482191063137535723215818218395784664517134401517277397548268690805649590896697523090320151479946149186763062784343588086623996727928353317577337001755493586131385688269509180143515484840240948235642495549251272110521665252450216399950591584375562066563728626238796747130138891794812573813810940686656147149822164119844076035840229242025893674139878065196276491717393328515163530446409436535215431506180102761029457506156161123946938733599456068903864212567413247581556734491398596461431184704734915456179471188139739228428559166724062887853795209717387768227716695560955030810754319968407951788308847724738258905273105968426812261197499854242935707219780375646496539680340197313957736974906690516596266576997158951816051698814220810994244569755505097970942366927624202462856791427161595989670224583228222399516623458880662795116386355471268433748637032984845011308012392397707808795727154329328486685385882413698052584403687740033811615759888571476137048778750101319079671226527430837184917501970523826044953896741324070947486201352044491870366327298691449176668370660000971929100900566984066389498432045364475554522995022489282519078517684873442554954017591799511180824279420046052858185364469749693910916680137276778773756190903653086640742012804030921589813736350391038651614797658176658763842547227837866534943781945841352422893576841294645315970379278071408259681443464514411708444308888093468342915572368541457373333411369015231884528533312214673032054716059530650720423747483442845047060710215762558188005711994368697521920912496498755850303119209973530885446477738599229390544165601735637443589576246621567289913087653908825130582512501415456368526512051050968586624986501100985923843200421040849760194919533120784493714499161339327016895118977633337461410708266847441849554289771242735752646039804033963761873414224091913985772308310287063484091431484049286122902369046394487723664897632727278714621269461015493960878196417418304061865030636411704665649890739554791986247204650640905074588016507901066004023639012219277329425442799056689011652025483982057123559696945019458679765720175643942020912966235587640600689743559740529509591639109897416712133783095294277428854882310488011402060190404503034134308435165017400305617056614047167508502186279062329777883112702679142511688902143899460121425858378416134157966985040614476191213259245123327463958291636798366462934658096069622243081488197151819940553028995734102648682808312920877740952092475817464827936884907496558075074938534652301861646460368857127145844557930761386592710422648627179612773268746772011491295476498117900128136744675689907260776551290442413223896532890593879864294582903172647344244398835301457822681098639449527267688986261389172756591172147385846290687723084636137220308248795125904750722765843987358666663764614045271444332215081905791977307410679197661475413385804549880657331612908943946523552131840172912044628182936056170812720631865517981851347864514804258990594806287166519284182640763694996239178631053810934810723461976283703826750949404476258628652236031415219338431526802800560833780879572033640214922573238179161746867442386564074544161310360170557596577027362973171878015149673661616774126814319360537708109367264194853432933211113391353291853249358281030762692656340904578940384806976327165767071939177616223508111005473185146082244179812381475929751160165230856191434941356619835637558371306068663801981809700279110951801463203920764992638152571303768997510251019037160891250777517779818344746317331034603141621248711540006823430503482766859176161026552380140210189815334267631822966781902452966123970819186641801491956535266739467383797146732442003710985609074442468170195252355075083873322679469155805715891960511610762433633952611769841446999594638658114004221465497528921329238154957960578427965411458008419597118692302533100995188393419183595965448829765810057187302250666610453429258670311323696181450447992642485943598965091472947536115231637840303994376637882879203000157313009294416022864501813776640206251074150026033987395824093752775521836042093231435662804965288911613902506660157070939491175802333162695199120991802406022332949878818269932020932691018675817805249244916281032903604509700329396314625080021647838236190750690440952161564870446950554675736137998593154521874211610880676584437790548650268073156155374643463197746170662644499139978066961576408893422330212358796091279353764603617449121635224398053967303748491556767767537630700942796132004967781459648161892429231193659684144853967008288771776394778309584604047056308800874931541282489907172711266292066887868012304946911275510429380307127354726145080970210881249474396388285035237255995574348608181032270634723995509283536241449082094784610855860086383483517741091821273417284630058153294338900161479806534411035401032092804734459997861087673158981622371450880395814180916162552369975235236694235978040599662385550249338459409246550992046390053521965377690685162042777869383102643644668492159445617491694558462569036283824864473828160838830138807718277714957296690047200066119157978605407307664324505715320251616512127904803558117445995805167363666585630824674387560887182264523937462958991791978999112982989814859439469865591515533031278821641778956058589188418634142921213137827730952699919516095711372958974475828840830875283566862496393958731211250020222699566469300630956797678950929469132138877300640253553414909668568033089251693332640406712924361754778116173547951955170217168109224070640566787059229623377139063286939146311881768482500488890690145779939945874063458136729573879457703026277211737802484987546976709248773653863037005855950254427702353755210884145858751443486509332435883467243158340425695277560941453754077704131686902314568059450784903425775982482630696994681718444508144749302720803943368517109080365566592565924737511875890813541745588289847651336156812712887041057610647702174052799737395208178592430721721686005336444404284967712334870851949348526559999963118496666568080405227011930855602535687792905461635804861799014349706392080578227474861721250601294876132653867800902340419633823803771932329264079568129506518813261426137369431494658263334615500336965514436718489523973789514183359413669281691528352291011316005332647538232607759353857856295374722380675815925931335225184150778706659755062960095506396213067009015479354684392038451180395982873414270790544684384994213321274095063597052288017465580857017918073677392951347702459604373142941554100633594142037535006412813743588211411196002576496883747784074737190117208003984784514663129028205493904221891976335325448891972643060480681427982810023040320644592529191930772968849949829209712719912386024896528670687308473476393765574868006835841766056787169062206924813285842526390652228124305781431028347260170255339243231339253501306552116075875479079624283466912169879247007780979769994414544282863377281976373359630150867784666667448995517546518276548948954830263343261301233731933834884529527225424017616900891667167626929067356059700959766816233137726415112928091940574705488690180400046153957883518830335996840612994646167500960872623317358505150893573561362389908716032132018976611409487415928892274007146655925141471698297584131332643212941134536089458895153084777498244238374872471899671203187095060448805994350873492195621326535736576637057322266012625000194154637016852546802479579095793954873141063098296972019403046798125290085008935840185874650099070622567302462645682749983844540960029149500496189183947453175641689698764195598203452998377153315344723974664805026693709180138050843980466234467175319671978056613577386276924536200501615829263352001103313591474963163745362897165014036953445559789001414134044961927953714330481896570057722737999678655721249800266850054448707311818789131151358304538603243432550190685219604147178382865572754366087086892091024148557336576781867055604406368752159144958652652838419337920067379696838654770975597951761235418408682972729590756669033542529702526085444732995997416942483168308297013850334817685297546199989131031327333385999255039229684931543022177593645261887035262982542331302133077021788367465955598924684343734123794155471899358729150712235744952927604320184602261383861434189999542739298088029738842054148821620865850803868728095393221779052663351481698230030656175462759512084435772909374836908180575662943238675281159003713627862259488653839359575207660318514850107501457956952993951068649513341267168752314673101606404307044235149071388046285044138022683915763071789907956635419577060339405837540302901340648846600103394171917266115223532257499724191964982879666120135962739037898444220719268499459792474787355525361728336954776726350841065911390174526046212318847440792040637065860268021764024977607070186138012853095259824156468098317961346082026938114642592669397282249720805061640751622463768111733601835018596662361505998887274362138848938604909036702634120890166461655693161653881548074365683607431996927469993263869504616717707246747964984495297319443593726940199207888772653262630513152017350018429094813510564761675098456827031431850814682624375878219211197999363380870140912266626895177906215712563448043981700806816418152344693122984944622083023965546718371015641657893873068749240867553692601595169994701116868219180791177136801274239191415710819394392656334286557501111934625675126940923687716602072461871039012216492707153834017712202484842629848114285424588819007421411121626451571015029089474647954457948703638403491479502083816541344083972834805166036202685094514112145028177092835110972679443352445904959212967777208574410221785031174175257918675253330004784026422533216040123972253036128082771799688950963870156007808945777723030268967202487545130605395501815418341796717577554612919148512847540425684323990455120741854062148015204594965543311457888084941746028757319964927541351034874306376646135738890318500486676226910360960141763574776208822211206036233730303277553178983070706921542591236712177622017464905993540077762460305164417792788829642799761522110250210605236281024924698381645883390549242913546667790138406951971196728519764099971661330580551427883211486383320659203541453915250354021698552856887515178957948853312807196724182887960652501308923740158366201395649319633164055859555613783804650024600375933358405090288810818352721647792481716725519867650621783074527013056067855809777121602662315840671054714935033131008369802410042311091385017226830248872858827869225632168509097170123647767773251528837516501498395440279278321827176122262708023066017142961632549231475685732576159117984289216176447909649442837027874570370411495736489316814843613320375478211004195867606166766839781155662499355583147706495916901358922225313429745081043189956186546274766015932059716139626574911757845968016724738197089949957718814809950342134827196926904640602918051695702040290994506055754533235324369768711672101912419633937252633381566010336491665091785556721986141356399229373689289379960648400924654516874622817236058824942584651094148828045795433629501563281707729690153800138232999591352534584529051302202397683611883410761739538881818419585800931927256164120261294499453284764186250396611797613754027106147091145916711853004100159887334120727098280501038199272445087344293958425205655700736871242812743977116759534881710318640287979311010147159509626807848630756494206390516863660068484942498943643592995808807347187031556245345243192719977581716491673356407603814218200378675815825552148562573594966341172285522128988701483557772506587158403714059354788947406417444026413070640479101342760238556802575946664939133277106921783240195726007552675505846713857065692172774717163570486004395078138356810486990345266338834879958577938913645886499416698917579710057020557948845964475065654055942801331230255377699884137828401918187957258253946705951991698645988431406646187173690430408842734017551514657666287847891390562376012500258157594393759111203857423328941306746560544233661946844814633005065782917404551958810816211334559278502625846330762023192306493639237917512585421042371645472251865701451840963005856801992651181021516299686040533898627549735730121684100068978832044096317663323792961515717226843102347226220001610922262180020838593333186985009118936006877492057934313456325369159892753733022657191152616469210249507484362112158939361929827172157023207114357260732864533747017543032816478996322169417001562592805004273928577739729373533331271771051529128052783002605010489351202172965620964552979588937795999413031311093222745204980743075460752160662350121704012276931147653839470749404809187832136315294434189223164877091642653207492946223227936937940155544843273923391388905681625289080124699636055589596074510987778440555714461851271613751550797061344465020221247649637442631774712296002679893123303771763181895887682525537522018408496016544967709311739900880154523534567057753029051217172688119673370451560832076267641686699709587445876493617325122850588186714723813232803213118309908826313569007093388275824189301745731514128629172780748799952746107878430908509373750153206353649153901629539970193211436103765862080893295669949128409974832651321956484814403604208716798032138757936085802075573177975562952096633641312992430009187211054779869546908398577181593831901269048132904892395529150229176809560407340153806933008954907855489171393740760658344626728465690197245408803722962615977901310692462294839963440843445155908507197922179549191576312888465982032000372966724983491066157413564626997533612086420732790845694854012909746035252587803774409600614134089275950309793558931545571625583043933839006155033133967121313019793241117666710876905976293277246677451683466350287323367904125221827417561230322091989315170689634939858579865978456685157912429795520741814592989031447289694143123232240392849912308269175007779726818204692187443179655917545537982252692445296131909656553920364689769205235496057364445916885932921760948964552507376000837417690574489929654672630983493469924707279198366653103992731447102122637826767546316442949845026045170449866578340969171347540007393879046450006915870245657181490000424043125191470097934502225748925417964623197130044955216541505284562341669491036394069132393786676630538166572426334463050254520198669860025849974425447641987795136895417973083965073234269709299055311957596148630895162969613095272844957618620757988495871915914466511433404265170572881903536072042484682517497430145232061523220182104313728191597577090852614628931419835147335914501298090319393015150053254051977773855344621554854425190635581802949422688601994709205176554260909972846309278066312529904259878491080789414614065547913577336974645534896486910741152298142527961613690369631841512173152131576912935338146766415213388397982737851541064602797682619689350043309698468247749822550289457689363345797161396656801845993803739778428662751311710574157467768862673897966214588693150025066807866517350332339324793183151038265260599050332011463897115610703652695047317810626502863693796057656173938887462424606396962459442476718778770908967065154724944273072153128226555086240422861209073298092588011374207899040597698192317842922497727612669910465441396667263285199666477594286423653211677684775041995230753363573865168618659720536894216171642816653609907491480633192555897955261291671846789448157190977739568199506170984879363681607617203553349956322547371623859643674526994231164216876192433604802929932674776253780343741623472923383055323928569403157107025488227085510879987565905304016483585493495715847482623540270946646556649102691422437134836947489989079205787197268250003042790946145063569935378752933460190678803874973036769489037938731481653727601776925200800674373860743204500623789045845636145686429184935534563887694739207572718603401396977123712121187833670839593648300533533050547989403476081190563506141526384659216966357244692525892423933940301211881689749460365509455788030095199410688554235521708278886552068616634638983445289266879831795256444563034622986417960914086741343538464738820978352552528296952605383255113228518680871242278606735012760315398815095943905693949219662967551882278660971850306943351964826432793645175030578216739424634214988089518149087029425740050345119343860397396681214246007503360865348615973697576737838868567062412766110937522246064309395020877699911757624701437368685571982748105359766250186239816572809675874624012469216394560404096473863481951770116701539988303987029339299112689644417590242053436763940101283730706600599740170263348898786824240616026051835360079914896062611582045892040484957332643043394685207959045335872646548321564764391274821912593217418806475489611131448845086773094623129910076839595243402521662029041498272307225494836988574659021670632573150090750271915313417029633295250956938984303368379781132078514872680509457978309274500174231161157925996904660616942749831014928537263292194889278625218928250990492346626766366272978638858505430271232468208450431581296039738339919086733974552031173485135092533772848173115461985004307814332788709946577247723910057814713248211553072015194255172710932112775689156163314963227368665100045974427911997670865455047859058656593776919795459922940502916554879389664197508097030970457591828579111001624309239861478665102095373621246927627412676983161461966753932547570311769970437418246878031298695991875294304587128725266646549841891919554748600305632084603735886898525280617413181565858370738601254955367224761326762917410336761349419422328978458011017157381188424139007929435919286458590758634471116835375728026358052783207502960772782483892681243325352975507848574196979184617584429542540582285944582922359364848906966379232694153801850619473853744882316505791006447739086393695788616966328032625682687494474090589107192952393293120635132272762806749457855234676906505557450534321900705726705245887673664479447663234775324858922880063527230071714550655262581084049318251577560950614086922061525492228389730504572627980990503766746109708171380483220539839230883839790634456337159521218675601044553770786905039486910515467482207658105053195743381893701517478331434544881726954889046339084987848062817467400914333083834593839989521609396702933782054801117416434152676369491852099223639501462202129564233401549893616267307514278017700424380721539790780238725604334497098773593587446242094717881430617509159453782255755461683699947309565459053236022653635358172405072026815054780084902308183653648041480996866828044687423772663544371186496335931016870928935673388724366902172227284943256033681360602538919938057034435340257697746312900326537242083016362862123616772335370073262754854802734445273619374548766676965186527540731641219329724832682579578292591045116951155428039383857045215157486224669427497243697163795052195473699058948448541564517199371649749690460622630639939849635542653457780714156448593024415962900435766065881864668894862853305579781837535015306124815385123474751171951832141474608430298815798360142863128091524641618889422650028056466366011179363809139281660576889021593050485351329609162080593513404946297380133331802475492671259505930534303808800247652660424959878745851107311817243378489685692099394243356632435647829572401437333471270723303503294406474684163683678529252660516866458832074694980176499140494440311612083155099232383678347671352946173416760205847793906589183766084495425811138051084429689348917994716976083163532821352675443566946012634433515516841074466400889648287025852417359722363458465378515171225622141097519028709389061771419021890351460732018847701621413627504891780942152354456682685938665581581790165994905319108090510048390921679876052377873460497335575912995936276036208692089218779587437499988272393805149183366352660337158675111855172027823511446701005684485065502354016208475258770460231441865769606296717870368759442841328696715063209714846742965746567395211833485424784365470492799671668776079626051756810454973570587904282615659775911159155240561169907728068934054874644676775888017912393609337731293419179766823212292079374464788656044488301808878282645763967321132915549706998650675729400877933298407170816670980791471047087330974387012034104715770819839301393704994485604206280623931361422367441075599391569193045069236689529854936694045435911961855576574883662930477910402061119389452481728111746780081125256349172079711141069641599103439902747761313401288637159792622673820600374246053278098646666789198746845431821106726206794150769028175217188379293089070297735690636870965555607632439620246049462674619075458720260370096890182105217038452577973651556137532086114460559825771225416149399711044515498940963570867861470031585979685503061041083806985397167935019597751375864732253802101968312780527990176070587989240110018763637654659386037912694548724345171816396121145954143118001460550962781591856972625998071411870870533029712951113256429453669059305731097423028016011623694736393102882228324316847777857690328976417055103235837749860416867808790066753222157456219139373036122555527109830926651175549862070432090658783622921294284077348619583379120412554351256034989923295470981395627310791777815431520796054427590140856042198338802918536559608914364543051788099601866532488162883086505987319621518569725455672163243466258900632456715279385761742522900598858008841912653460029918935800034711230750532894909017618983802376120929443707792268656225565277276139697135449868060494182231847854756499132025907182368332950952003876487962179100643021229740585929658939292869485216549505134583752516178862435156721031489608631349595729097625042157255063814268693482470917664335013219947354906610845361731728243595639134116263123967378060760313189900132542640899971823506740207453064820881550627783042589047706262091268760380028652153356659570202318250628801867533895893160167248848277841323740913882764058474344056954526796318359790384999649601036251259377437706227197514252854449173597848493989810392362100510098825678906801656518710223642679576314931435321414961122977566233846799178443760269566129180883445345033567208730525843778979297149208460671526171809703286541161419086251898953126274357098974973509051197662069896982125115577787126099663131199820474546514760716386699006631515487968785405037457218264708930476575877267025893144126074467901012281313461344571019132153540777459573272110291762590742397345539794780221761750486368169344792567047713630650075375973106936666555747488161220322589350437145138695366362562897479600275125845316307315951785001577803061960907882430453164612195386937886225696977860751243728653529729992140106427084364348213143637162272201810380582790370396573120793580744608364211328574165682490552364559544750213296207413815018344385471472219679599122926970055553641468832284397938438719679822371899165131772717977500992740460934864551276315347411446723168380167797065200194572724094210456740411320241792635521407264086963356079917078511809522823570609732164467809721825299727817644558615389184583662768794446891488073480571207482185550997608550591027739011969718880876722210945759222116074106164842797484630504361731054974422378984715681688814080094765484933993459830237916384374108835060108781787550749946044472202816863125096837681944256803800204677416923437612127225160075597410233308765498057381102052832462894946161652970420098168613588289576864227942944038845321138093104675934542376862538398319984682269441121670055898794100575757552379111409210602958922169630699986781315167738586464381964594123852691890128541108494559066112326667058978299538610423918006646156626395174515692204342860508508345633080580989873904594085569367359437170715660930392808280218486190922290870546678116941567801352819055840549408524296194883318669977478163299212529081914889097354589677335626721654643364489509250482098383133898621401971481816905709626796779597925132921006452609913623630379239328832705004234029407834834618426166111855727038171506176918425598710528060151373050386253901881177744339614574943143933488441318574050895799071408546625769933836971693250628069898480866355036679188110459631490482702537897975681665567871878810006088637641221223857162264332793961631552518780926838134866767518785091983389193513597153682508526573450045366777805937477548827691553718515200669780178634411801679691938115632084040863150014386108390178004568044022593300850817974505617014892018846599581478737367794490704344837724006389211520303588466870391589331799956208797925558312255379675270840333834673753552338921704502416640409111257258335841844134264060947069634581902766667361137927388746319004283466402919680228238647633523523205494271568232133484137993534604170988223773908845657082590786382411668532195518405939678412763923939266465279785738721801765296404989050952860946907779032699843530299715025970852312988369401119403531267105626939741191767288526008819657402505823897928554459709649144623967746091347527337438031405201823976911388442788000617251221785419370751579349559596277876533965451855501806352074533537530095532791634746941175984495382027776706610848284740865804242967697086158887030409893361154961179909437096626797014485260300218763906459256431304683806393006772219363787111549747539164156710293099526775250520330550823265336885763834160681175918052664285410097551051603747090866095354524530792759656379264112105135176772051860508997416902642562816417059472147175489773859603118738410889821025445656172941247329090408885296416559459710527411998267467115885601634428576254189350484647858159393920754323519571800799918871130784099509070404400078378386424293549766267126029168257386380928485454203967139947845770565339759138692674035976280655343479571524146889801502033390060877523690181132288590365720555875277105796303457336402820212611545859048088559279636309149461396599471784379687673245200819530180545458910849443632461168257897338337851285071406341072349566148175554235582490112083251769989517431394226410074980304479467147473299075877609254787032255848413677318306067111925134817372941432608442444869359263293220651785018363940264192467045165443198412015761102897178375594148852768352421046630642899453354396621972600461472464743511676942895035931267498070424667433073488307888001004770129896491959657206401057761087413190922293608024559615818306018214825980801710539433198441243088933593143947405669592763154515731752451464020677768993348563308942431858949771473637859669719611457883222485654616496001066691728711495431373157828415030943101827561945481817357043155329480235035253869587095053717029500129104876096812692094441706031380160360848871700833271189068399817529076006769384550012208411939728460757547713363267574853920938362938165673138643039959743934737080695315282280908667092482197543058264127120400790032804484952385369314032347270996070482256329812449233758547832279294447480893977748829163004258465313062087298941308316042733789945725188580629841208099119704425313333571336684827456855701333101058624794614495333387232747141804018166980731777426169345959792237110147346449562402578534454439930357761522205566160553110865674754995694382132784634952339439756302044286960344469852627242848635622705429255750210059285173541949884468425866949312607953883960122402437654942078930149479167920567397575454363231461747722315542018829623123423724657355610176253210861002244751888395232066203260290076221883685590944418607503105248263585624641534664243120508186384018747767402182346665450042623843431866229284659524177788081035886290513769908883576788161153697288431829248964813773123642867255720304306239932744352009941480365018824060428245013408888977069165500356185372968390141758059785607480052799488451588320728445002900992325939769096732345309798172026768508920110966086059918930237685726169905259887922984539824172247878848169126673398086085824626034622677224239493756045035004832823451029334259485975989670366747027007078191585706348755576996574223770820903974610755310833888297315331314774047424787177105567421226854150643342838429869553551564976487032081348779382212488863470020229142761622656826034099981979850083785935544833645549668709669193377760660652486394832874501691988682844514488108605591453877558545012550863441090011817348908636933734080411518092629693946044924459801204695161023045224187774413974771026176093102620151073846488790467084956126476941176588677927955057316655899830834404805887713406779624408702334302091572999071780180333217937054054137548356319641325530281898704782591472078855040562247096155331618854101313265180504963503696606266144809955388587391962378623790714871417228929511312948527319242237995323031584597839644943518091164187381353145374839181468536094286681274416129471471510332413898351378308837454769056426169395088012727008268464560314212459027927061868921006529538625335865003372733220759135967052926308191842546778466120517327553889433627730307504767395997356957566488853674708352377686106059571814048664293942940700600163649337358404165584782950155320156035714669786953189596525402734083059958735779607164263425878663232801531143482901621698173443799592010644253844496839216206203802009306244315600050573760017271242583154050078419206660787184501556183037856158765693371130955792512945726131745221063430814898853455908060790541607231015385138433498356763681490845811979289177891503365837287744870362986853664479017213723136036184551405596599672632382616639151105393119771252709648803175409006651141252155881587337910157429877468313684282808683944231421447316691702087936853526481099824630218417299739062112993910985976966526462919083010065567623948109192464787288768908530566109203715072267477525472651580773062587831787310976607313006389722773749327244314208569451955489991818761375044551668581271386433632574755974159078303484901339341542049121668387649213960814608873880359361959612780655353705620672975344369867623787387984690914990832338934222627655482297525915919163754629990183645722719531906371222744176210819243094340904190880632477845940683231781782631386400011800751539303762638466584903910206239257114521644568089928458360308468361738038713362714201182426873818351453177863433840323735575156084225600230364225458640244558556151980020795624732825233112516017257843339912418076948981870835870069376068111530885597035190814185002940032689064124541504962743721275054335853829324161916630765916543526903825958711087715702092230483890637998716626757137208563675151815244706961163870185469959159504401536241461047346462170343725161251371371469662693810662818406061240196661125618387652953680897811009824084947966767692312743705930202099927738495635574067494939623114359889960937869467656836073449872938234223256287119680323957476230745095171013139699532856543237669442898587856996782425814970836995202658330688696567423451037465102266266592103800254642393514980140424686188748281944924611618178420603003142828640286799776918594131054735589664837428876041125790188325034497629154934794403560412847460295102400027285214358920239229475084466521491750288773805974340350461315943319657478849435500397653245217992134453585610535853332282157998173246314728635129021671103784130629470783302372128885231032884720729940031984425241606156851125829083494234559514939123042758164771985124839496709471537679491525414857894342591161647981203018505706215716120904558514934223723678776678711961416141554435706553928694701151313623497210741778119823149502250931693610444506006589119434514168499405847303383343868364705819178884659409012458486610929745286585063780030076296787774852481284784533069410875376943991913259055371420367490623759948024538653891551251023353345372485179297538795730314964038661852155956351484182756278312910954060469171517520575092879647910734005191232051757898051659868100752203613006868729993189750937879619206914322518857574920777824893227691910721940106290379365961150991668297063129905523799543376265903762513550344768780569583049394284527111926380609321998351110188222938166475806225755633331741093655956828088837120674448585828692043661484996221912426942689080093330955530108014771671424157978898374446074152340067745888034281582475410273275770544517859095840001244578325642041251154009159920674967397737384884472833467342647136193603942361458962355335359788672873342559430836000914529486052046927403004880803760014932829213856067104373126773540593278438806651113275261483109789296905990086936989489751371645518364069939844970772263262133122741148702309077760669254850433074073334315747595536599598327718429533237569676754338249852000021086262402785310033355979703217829137847358046870365264344537809110710515757625255440289999621491009173698809067833284498419286829137469253779725343138132022462971888872235682075855614385062240312857162537105556966394882389897304500274534829923676210491047323712069088692242861525242128255461829149437054636806078009333589454246418777623961064067696033403563549371170437793798959616587250858653649870570787596312983086094954707402199305893049177607078472084340106159800342250890943490025432301942889525511230463902616753909069753569100311815048411606546048068213884578212511973409602558120660083509654054620863681313048811125121146360822520561919081624557983846945526234767766485790288038418546939373953244797962967949698466932363066793685009257429688397827965020135530627077932629983871781332180535689104319840601954046610626840366617039939764746002485796985189137779874434221186302594873411112185408479538918415423681106138161531350392083112080778339424583695075209751881979512639514686308732583817048286296669969965964049828793789675996895176081888738357967150722601044692897155127716040237898217508359629485197567674919159018422475492549731666230303642065973771225708664126828132582306648495984586779610223939986544322368556122308008568855612379884482409973874002884132601143511895299890455395765084052001290135356345271169659785819838239919669854070618222667102390960370832917787190189390318269371466284518135304886541962136487813589453297989514378780289633577665116379346421612213437095517111398894740274016597180608823139087610928949282265513943946126623966105872672597097949195744100548143243145646564809630366378717637645756970474026267565995486303204147750943673243557325442184633905970813497977939046329403596122058351188856956089494183686868671814762681593868573503115603264445431309828203114951578625594496026262830373693775897209300845563001556254011493772880417604547530425895075316348274465537724360957474854162463521348743812249816638197638525825731199214469313467753724119227493297354461022394383137305174275173131486813793693621592468924535353405301132862757308636485554366687780500342671452595561699354174580799597548606624644471509949676130793735858023551918703027642087608293865697360688683278370748939125169194880144519467646656308234991311743803179322010153976103356347091779678163783904199903812430312391405600020193600704357156153060061774315610826031058710629266030172071340975247583715755701210977642430225521123866400942750320181560876330240875393589091443588954619167117329139036720277215890757457918421085006732625970215396125555222405493599517519974726270447889465085713368518910631762315056672561091952602311339750333625956868278071524074227027561929983492769576123028614719680107418453698973257958139948803332273824958302014478744730250267580287251851914623283837140635783146394186684557897717233700917324672962646613709271272864632794944234206148057793510532704774823613511072213676789168415627099632227874902278122129518573252730024636979050707882464527355833672798675135940829154749383540033707595619942964433778998694046247059361171349074396157231065880945333700335914341619209848414353661543005866982523066513622752927006176548322223893037960822157948941045623139028200766408045154435384790066117893974040626900344882224486928311004926880753957561764388001866116179749670479036603710772181885856351217364419372589675971736158438576309904825118542379046381719679247016337434132646447882930282710812075317412883037141871066215462510250874390467638687019649439255361617803896604330382285214210529307134637974162823404036969692690490369466472027741670866030290875592918157228075786306325134295585569461088304596591224962481862997230701198514692631248281748147639209464499487705122385772090877960937458798554297767829536942627913880578023711861468470727751479779623886013924592331825247580325673426280348292831040923390977201960075220529663881129059865404869989721534007040330623519677996137054049569899316074023587277958903107096292141128974985547285337240043096639729388741565673587192202761225996412527519941762099514336034437101869351224832373545836856305622498231267699038632217990493872576331757884964743194410877694202839177637607424113289209772081620390176759222518222438431108722002938869800775855086131573793725883959171139757130257250683248089460451516408653901761552286376753555430653517390974652869356080982112614353307953617616137213048627296897474021579000734821892168604351845019250127624856045055517161107506074175590606876357820174979932027165665480155127842064131561421448456751660795037779615403754604356719546233788619801981699912695484043275074604983147060087655925248627484262761100593912334730080327538413902549552989225529965940857412356549403083236493009710414581244715348730667238166081582774401174779418902406521239299236185813087807885091816363562093109010063050072962347864933869597288215714356588211944945877390985845320663361066723668691085990619140000917861843008102334638083830749848450986892319100158953188316647955416701980166321756911349832149416528657656823102289967631147689383003248358690698499728148123528810500193372248981429481692154572154350598313005190684548837004535899017963768035216918671900480223401144343140148404688452997039226128632015909410563070306727362136991898346483296408098249386228917336752004803947106316528297711485736546212105808427226747026462411473847635902956903897323255108901177828806102769157998863170819667096111534596041673658777622718923688427757252559162462318326937504723538573290828864560985693114043891581913587617398251622080818492417094656594974962890691258643277752770741116871092167662367014330069271264656166598360631812130751176784826495733429831901438131631977141987716127781266672270091918165889445281965186452519304757722104761439431489212371660844901983305986415908704700872536996759915623830648099338998525851048883638248768483178400194589235574622124242210066028078672441324269714936050603803756155395694031433859668667993336115432743847957019463290280063200646833062001450271823859331449024871078635482964299208484545082446681688590728946710203919636988254865450032892428924329408854733774194255535868795984826504409948235712761284067905854272582840890448312203247197786825458372757258063541902567227053032903164388853191697590084106743468846782541399232814560391915830692506242607210427358335043773125920931372809052611903170756076042082161343055458219710190471913814756905765809556915877270921817223739472232841017948106495968382629926661356909729503225157225581397844291468063670783385342643813944649539196287801984224087288455198293502298791711102414613330453461013183861442286504600688330125406967434886316689617982924576407048402870486605239356410650547142630489702769666272524404653154472345409709825637184091752836906568786531524927223673410714266124839403775067057593906536646921907291739133563599509743905459541638950228432807992175029004072772448754885135676354478896947816818564657514622879426183425200104213331601484409312835116216633870184155938266658596800837688481160361493459920805850199174850283288501605294393771555341624836376777226848850249520270332362362120073651124482264214259339622492597075456318093591470413453028123385498852765532037949225443449503871395201432154408241407254385980325916536403026134451032851082811551552757344862294666088568786844131060022876219266694279203063001414304004240953512042994326689235315613685440546451885873408195820960414953606358319915842221381016283195100634939960822959520854972826718196787235654627823991127765338783043125556754757245284209389598220605061447938423659817108139196013460198020401411636986432395613035396667730494825215726508416919955411099721892881032013587235641806246930953948113261863282666034900305144085076383129015549043261388885302750293456764574178379322553468175563525405367539945382641358334027034411943085601950842642446121131180709085556472786193421242910910422279670040399268979398326429683385481475324851277992992115377252225805387303614371234843871925432725338616524180326242756622311519378787440650687302676801707276026962414755432019273467872662598131510780287284170369955597602836691842161272818239269823379358914864733664823359703381232139523814369527758377276109762948291716694415437925413394893578612081244286358529316107133636119578442289735590929708212455792034031227961759473199396277896277635511314207640372652597466956339717291218644334636883011211538280377339053005279558081916576353917940900889077156906067422118407805843446954252324905306613497443679066107582327701812235273979344050406518888044773868414585881938188352890223465780540960345086749652881457651223793972202579039744620208972252262554270840340256770316995619487298406756624343153344930283025116903669128763433438238045832428590944270020884564310806994799855594105878964711768195459456786104960259207083794977666483587628680449334118736502435471970917407722800631930858224596755674306732623041031455432698256024977420940878078888355505406105734926031856658963747492687157407440789030526995802001285863548089459284246651731486781825500772500983274871611485651906800373760680289086941592327002989899500972916379839064240886672271253936971774087041654311053606829234458673320193415639750706278569656894619003242206788080220041703106376247705460385606253085188851512601730515944471849611713746071976118822834389329029718183260215658688359656011353414071705720419587457625690173053223008999877197670966165180323482953975360710908812434219149092978216022171060536134270617624975368812711571673918866746401253625845127548200199966590407613430084560427034983794436729584576793963344794342992114918163724719211573862977053284225564194399302185755839189097865136145955841207595771341301060116878803716782994373622321651552143884700534521375358701321223132152852726341224191617264568294129197238273348118591633854575706640956754592611607669731051208678708391926776327240511492371086941926785776007977612904288216758826316951063643500890657289008063630887871165601517257727244765400451492072797089632529406510384311224959811684482581844946257004317951872003816440632297345498397126592551488211244964281545799961639074313627014189179480204089606481837927386566809324020418276974557809382729564401052852878763308618304211320665517928204261858084781945108969075568852790740001626055293043484981227273495898076019704031322665367774784407879733660439908964670147861009853846126934689201476345605083044924443233431941704761211712987951704232386889634218155559331056360397645615057139328608464787509199910212024465503909744203395642661810229475796871697772437695374669388874025364718589709160705646746721323175833823886346684865351146148749258562525890026393310735535449422521476699338657516412302954610652162223743544576153056731691290599051225824259757247676759055366627134965367252383949243113046045798675049134388520861112681723187892681255212850114494718749642341666528438184164650472003787751130669591893223530536900393176645796025479715458677678232443307121892532235418379264772669191262099018824880621725689161981773994964505406445596636833888948524646314202727410269529370053981919711437005603028772595245351496872110216490167144795020095856857648743908754365105544195738188831848696836179596929073868322820493466584339285281205044866416505367389058864803354504193621355911787574900096429946973962005336499516360010617855809925776346773309191351958492685990539036152170736423746984960093711406944792184925867237634682893896960739650700279003419020643142165709396603551021796453004725333886390267777038858256668648399241729457821051445056788030349715992329576074580166204482490812156859634004653277788482823700810863688053908459088349774893005454197363475493392338287911066698022446029443733034584335060696001623994410829720646123118682723839685893883964211391501383821474376926530028708636543843249844676265154913541340276958923768098857835366708026806476109374032362012891512819467782945670705760308003704714648275553023674707524330140109804623233040177746338270279655668753907361921680040541063586541602117078664785159620098208941137771074751330246801760347840545532270148188580066437808251704464262100476456122069581552509685591469395684462071668334630563723355623999138726960850985408255293086800615439937139268667419633387703232231728061591816150806190643524782056443451048793192138211635961825278338921809033848485852541506057226076559918723886527129844121980750144327304509627917607032954348953210353660329840959115111864002865938673968896738623352717810314305022639402608049949189257818300247121416509018311934715804437506013728738297470227565248139623606852075580755040932422368079506761070983842307360221435153357622319545654468966899317977251147952199627199330566280264596774117090541392079930333382769555205121204444492259236949399301342945672528696763861315513518008842268001963029778238692110509458932737943886950582192417594319628320314076241726339121487940852555063132574383222169438579978729594329961680827359968348241962776210482026082690924395175233557024581221289543197272277289363703078530272939458864979793555967746844741062624564036049756127053044734993835933267686217561327923380801342299856719284564361572879275117789281564132019204346628512343379413882366328750827280012640856787586689011079582138588354025798232173646531507904430196356867906612873740781001515863439575243645398335544425921629851657073533980423607851011771007440143306710053593663924968265165565451072484237238950855746399770209809221929120617218041960178991469219166803240215716523954733589358349109510790450334618781941756795067558969163312397829841354001627910965119386484214484964365329995275336146704112588745963398344393580439159677444458175604356664828158283288376626748920852658468196900100497927831595278719336236411339509847471631830623805439083363240718426685825926793321459440897188083832845901820448253317721060428479519896753572349391314992875251895307274456547678518851853703353019060070449977541470617904495727416913951552226396815496295993617437624654326461952946647245205428160861459294261584930163452023551069254650379245889098376096888730480230580021871037240168171575886717445266684997467794012884545596117263374837443023423548890541389366573773006942552790418433611605899944394239880419405801524208539738777154120930681700497895426723176752631671039693240922632303415038636871954503301291904548993994015220100888179727118613792342799981089652198652109391509849755780377047065924377269699325433138240153678825108889358399747890413039458452386100223549178586486039927566954966116155874215069078664970416631509992882006137824178869808515648598442267130355508796178109735256389667915556520963743897156313274476678763205487059370108150880262557126113881617614065138652141431672815533484594786214376617942394360665382810365954562496605700862454858450859873930766896869349866424057804382228441172612449603089013632905394845853330273216666856279552341673436877659184371969101670960809443280060875587823022339557192026269210681653633023418307469046023874053646303232361408923429108684470872053511281468115152941752987874771204993084237013189885571582005814901249675047788252372347058477754570069888219362188200309639670717533405661079066707080689939689938510810209073968260903042986143924545416997903852273065489366277760979636801033074410186475937205577992747758743676088842215650085987257339322886896977454791719332983473282079166840351648998591272719223980278664190525919405529107680295528230051574500913620057758161628110550345067880356521456845539979774565194951190241149562742658487975237549143064783141075941203582823061906029519343795711445732415826973069191827303625051334458680159236227152763756839247249846657012953146395650898504884670674540181996663579616914862453964729054227665583190220793141713733464845978479566049073500799939928661296393194629302963543548201955583035695769766755155682655116263565783880974445374734562538584751727107850090697258034685739290822480849942090481685893148502113916837697329079748190556669831460847194682054505452752810197776489904088812260568214373400694427345380356452420896984382381152554530329967889765219107394284530653769237623553197466399450965127670353256768433865198803844018447671131913196890025045712517745123686568349008161888660165218735670139797048840942371993272725737576632539200939683429642968152095583343640086487982247437937436368006118776285577457328298717507782170053311128330804217627533701008779818171865682524375984942053120637474211956197304321292316624628830300146208814691604806180015775158715838475872187025505069896654453557840606120508186884877589945054877646412940913748386607691948651368542711341144135734527424464043143810758613571803732333056771114200027785128994382604662685166680678890449168173870144293276014056335457835777807503789505792046712881047704806101165667348045801201038071283638685031884792067641097780568270636823231093945269433370539891714570823586280908567953733549344914114675831307929854599547690489963811577573310742626370253539368714181957988384980266052854061568050776773780042707187532428892862301255476147777312482581726433461000531008402744586649253663805279435411695174812954685005529612084552430983367579505951151381669611078819776526822972991967213618314591527508086141567024361685760529040900185919212925019632389359165249165829607887386349851101796466444775774846668550806505425644629321182687466844450490134061413848624008134343664480868241210419873418461103648893604567905719349453972756462946644867698343936338826304580910652285391718310162331103260875421009711917276303653906465476587820037839541000315368346378098770321331661372226858695996122527407535954812747972946984966686971436071484302243038898843788107284022644477689840408804254831559725485404540310772911148250951947719222858850022665268746459145004908238520324637192905455742282468836813126299627677490950060155571894986019433452398905577770073214340067587893102955957944581696036941429911579242119609004352901678737362909157298300028563428707422885379891914440301319772785900640439245858209965462495008163197061109180266747352597341547615160355715861275995972084954637528635425839108298552914266644132182550673244988113274018080166885146902730853532804413070207442839140027877473398156428877676397772332346700256739588641111067436407422813021952889602800833212157939697927740405713439904226128640526428544499921653592698568703931886379518075613353122454911458929159076473044986787735168221966902965274306915222598613155210137804976429639626796657538261955867277164340079654788057871478125885642165068888124971628266759656664043169743959199282397906899692236619452767480913574099131399500490257760926939167268851400705883837845116402097267696681262155727951648387435835037670508690651584716080385774773694033303026058933175024219717784163190980648614733440745272581358849041433338895761590643002364476918726749256889779295956012231366570902865095428011132989625823781583622864001642533730418330656405892458474102929641632157071238899391004964901778039679798896855153244794525075191710984250290476811424259810593180109663552612771498778800373454675818403737589912738522281419863119874106847513838553290868332637740470779300964013406346715067195301758741879461838433513970309770004467944481066828048116967622521699133292479227698308325213282477753639818752674919302973387596364064891259195546021698221401146733939417018319064263663258038264180110963084857381414678347042302630305534829627877072992164054726651317255789732386447015617977757004818719856864006319976244364389344283014237709033688706070194794973924180447042306065273067991963858776175047068653147021122555091153603688019536166902026110884324767016354831302748471070146221428473193098168152841615756326647956964074308099076335909890393739612001730751802883068230415719128414846673676892393432325446423321703042620526284873001178265684500138224166507850046654617955680312002401878592010360586029370159816163502387442544507507544156171126251453677324564511561575077524673988104911308230909750785646974343831954936939223397772648856428428803570059206110065639083887578271960520507471172760268451900868834174991264841693302536767318252225115625749067157582775285075881284263781222045470981072922325142389643320700034276155611694433052995809191920497505872333782036238179415990871153272355479197899627417301650703942171055763119757932381617398530327283759804854015800350685186235277507769341155839700597561900758279045993794007228074125033732085564734960068104102935038131561752012247596851431834740849486240394410059302720719835710080302407769172242049459155954239782184462394372906390827503444044893956804563205450857738633724821733231081646131650213734177437847157135738641911629693651364827136758802012625025041497165827512319072688776796428819216548320594279757579197877683935212635950563675004014366192848428626781080995845165790953078274129497827586843729137466665329687171194808666577488133934503535566741178694563330771818286191976804281363510300505259885546145807747850457886823718068724012264289744906848807009008944481157163342791686275040235790408842269005164547665100941545773822304651906243774090213205844682741015496492554238808067695099434095999206335927847817775424772012754086723889105978267189715871451322777561477040649797773077059534283704977400595034159557898745602744227908746221053939037777690720586580433774424914980489604483251718082165759597528869899680998986866459627132989759474138351688148267957832997463774773866288881726947309884234045233207383187940692022727632036993742957423681420950483860560938927765343322180303722585760462186938586156105349078099305882774501627389643812559584514393658546517179100604042587081517798305640486735198815773862173914518050313698183893853190930572923622528960723796434453800233025378104912990555303979281618613064180098759603388613573654383024991881839827003621687209434919064738457025152229144028486451622811826454845906510715788646116255418143995764277184445335778359777817694803999776651915550993392238237827579188314778604467064628932794997225213034027909192817418302284977510106178874152866691324656577302360843144328855521549773528075931058239467989490305275209806055489515268350225035795012731521330692621328235784111784311053274986110101843861088265286651832735259869507385519048427907961675284176419079457598858591677473095519792099951647118844554972896095172797703799731345777735353197746909620814774687728326860671690943253879421173106699441357584430272256268123063677715808099700933348783539554895733259970790827919698583075423184881950074884138624817473689988174602950507757659434014339311963588806125881463827188816988280249616716972629049242996081957042494263638461345986534300284752632919007596477567655295796451349396134012993021015148878809645106383766061487156966313096638411794780677589173455426843105152771619760635313980778712988855968365168784303288542006126381017729524513119106748814062073830533271257897354777527582177530850111336469807684509421963297344057638209710262470602350721398667097770853365402510196697517109113213212646122425522892580339629263782748277718058362659999795233187674501370752344767028231708437510721841429717298120316199252136178010189323561113688815946243337079695579292498653431402991764801987602596548152357084722138646187104365877180222262712328089499485315530659039942540240328023367659550374417253716728650206547334896769471442660444696886668971130566822981549109921781234071375215918850770835116931016959641533616699124260149407671727026081361187165076306941386008816960654318515118937487622762631329189468998997755753946509874378390899514999947935552074341701341535746852171340060085893421660690261764277573587857780051066016928185012109004589739469493384704916927127074771975759211500367263683116816338457433295616725058730856421598100818928428114752299508086242298694880402778198421970053491260449096879279709443435310076888767703400955375088557324344465526017307897613051046260779788283205507658831500918697489684653479880108492984058654335833790006124605489326952501887141780385735195727629166792578010359347650335449060398292221406814016121939967063857446961898761011132585785435807504057431942773035671773360638140872560151831018748923894399035114420471173581784828111394437015330097347224427276522760359383833555170930828738819009856279189360321110307208122974639151211454327157290894273982294126232294710176508895205516932363274922530138525712017433996177134920092085273703997475244192839531752015495376203846229901872732868517604873473408222979487931860183654707893339472458379844092397817317501428347731993526242706516009326693412390589129963110015524846803365025094094628276287843955822755443786886960293939876130315693769913766577678025044088864788928350069424906590168629872667211571819774880109403183716958333787648430689039457099952336189221304156782521641211299124226871145380779172928027724730351392029054997342873967230716964917088857893768799435920176953466155783878501451753101966295997441560464612575114526853197319550460548613529364571130886687721838484697031446543264960697389984308846049153791121136195655861231607111426303687281087502036422179586661699437547822330531790911628903200036557339994775972762882304957603300643045536588526123420842891224561375613399392309460692999433425058142150234569800977862228339291418005525549735422524959069678859260696914041401802022293410460892062657265052618429107213356827789915700207556484309464020537974491675524386161580920573302994656154828049631931734387293993453290198775219903023256650657113386158540856463685047374828077042753742850563758928772988167372817080912396994398188116009919149784735765280471038740763226689670166448898271114216678964934715817318562239965205305284621157464173157538778359512533342003670079423777918531103629322613441687909666746738242826572657020764088319310758342044836422642651209659383700064103232852199265491787963944820977749349854061665817109944067277613266150267673183774771371922692128999540023160065118974699362749897375360989350822102916180425994438565066893285512490792015797631431225229968946494437702482909194307978311736450347810485108789806835320905615271914019701218516530804729955198083354628507125800536969101665502254731173563318506626940581937291811925158890262455352285864623877266640590080410950024397284639907491217783515571070112853011942706443527748990398952026915579308395804460879441167632857102641680333205980124802711429673513840641298224363387608038114439626252911795148966975932845966679535448214768346886235102784977883592767057484468425761123966942542315324305019448452006392825633246066326238927160408934551845190832347477079269757624588869704942982433117203411521261203165832168637618631316435721404496141313250858924155113660100806390973050697109481683408307374557619792840281319049246623619454555948602912923646525825380340895823132602799785546078888343101676254724532320502398690712365834827979470860291855720687812060859308306163859662086115084249305927857663709534066826901794785716274848699135056113088643753026809128751631360299061397479695094947664269769478827003493091443886499537809540758990876684672691293286394350876154783572898687573163204558584333401051012556394475999522371438562812509504166090875584503840520161881810704673027493287357311146197981557648633481116611418041874593181921517175589186777428561975740879278027040291798761948446440738672388636577415893345061970366233263119860942866386916445856786799408162639875211659272868830041270116542291283379097962536148978427458340517714292597064132134643671448275590953751836509887491177147487260279914968110658863937831994846472585956206632857458627930641183775657228772884952423415006574087020199748427663437567107825250572275004545333346667231106378315800172400713818775716863420002327299115473854087985879790300344152096020449135899825593143324482255456982865375680868509640836220811920871726800687334218059550474598596772082341639798441027873879394316281099261012652478209056188626866693998336215805641479005657008990377217683383415534241374829518802571616320882542676663573177081078851308005790927946871630319473765783158408964710961709137620453526162852962141153121209980724813642348507689379996440439964024832598561243239049597606467002802241810394463379967789677061720857398934844908248487368277763776946435610631903922077584659814464536703871968425913037724475348382346828741705694786937448165582582851091657538970666552084363404199703698396263791256278682411629733370396813717980425143711200434571921029716384892586416904330983330920998568793944290869632309980140493726581161775202815875973061187109073331255886516999128419220840387884798232859166772330251693268714920031686896882291800511661271803248438532543399086430172965827309827889663211618690777688996169522259091533770243491626131932390277688495858339514000815316163358363560003168347704274611084082592886651985134068727929009981824159029793501248900788862170964959635504623838113287201315342795399797681314959854710110678396271463686004294631524899921598117867192418737506176585846318273748731671951134547443190528482923461063725792616011254275179584624544366133002821800940478075422670933799381454794923418863838194609392837460573024688404047082989147786695339929043687470911419332361411021660845555663665723199028404624598548213149668319716304330961587120667818788491357793657419442603420542329934858104029588353475723661389968380049287486684261407394444802829938818536141714988586269609468839591771994325441421698002324111200140429143928303423531193965094031598182887244227694391682377780966853685368114308488612057870777024181201662223621652807740295131124080206499615372384971527533000055654339916307804921997466491917217614412555436501158843350912081952056105438589176202182191403585805296564934745639036441268091784443630427851211559706397220888014862967916581522903896572118720877726335514751798793775235738359830780859265709852765780656737082226315490360987797922243603568665419681118758126103498301370660460324537320118823560058215097863624447512942573513004375579235707470401829982870530114325358434718685767174752306843944695822274684661828733660013038935216188053086697577760277685284143153655564901300851346914982046370675026370980111666872081042567603253511404082240038968219725238209455080219767488858757221989201633815325284329994975734245321243498786218509091225472915770990315709053860052782033538095986861858416496047018753097218151151078191982870965694940627497309525210815032705945899598282543386551412582972525105858161691720449028654382565046211008394977832444681697082713349478136256372869451118903657764934389946023448292237758983610647739366410582518241586371230414711732820351811513714438871812535860709627520012769755134483038536853518652776894335924100152108555785517719758929091953305638048629191612853919796803336185180059278594764511619024911027322337703476984969850080833768413355880474383187843854600889330973991540829438974786054991389900985428175778536549766629704385455179686442324720299601513888543383489468575750337730803311356564231222237975305365417112519841415683223115814244092687302708020926234627058587844163541964357904692588744023964979168000607372715398410709375864288314767142413431670904763195519871769745623123598150071775850990133055517183616161924824163920054017899715664358735463895018721754584304592680153302764084496232700563606537705772996249049950201602915875248813863200262073567242079015631401913564654553293999444506564481130132232139861737952297094781373148647162027768891063172950384992807819224453266851125610069071146622971174974719566558828299733028764559689360676064054623122074615636111800103008364849833490835240417884007482155025192160562394971001747039412763668665660272925738276618794054219191317645146251270533669515288685909856662373115155169552851164803801848100838733271647303398072679202661837841544328503834624950849262360949259979123620412937154969069901753717739868341681782948137319355326123979478868044805395137359531633144478209475976306756148612046587308310032287705195603612933947722023873323075881494893835424951886727919180219790318563675453666672548514384990262625405454383579388072320094564827803635095405386846941198388213213199830558570807848031956554565564459790420571511478893008803249642952449835059999365256508503290671266296593468267863073495794239594778122563250417302621920279946925797712067990654155537108735917897051419483416855699753996138677722443173179373660894273338839640850436438936430277119489380835787265650517909742740491987334196276567867788904606691431395041457670837908252038809856145514468680056954821357303011843152343053797816174551304552564608810307751334607174595921458301864325328690017782571833070490060115747791387651681205192969279630320435152652891775027738087124411511451539886932865840825678884591966840922672933420566689464284668022962901025266493436598272485322781410517624285667177455193908481629906838155971355991054606294287006896791004351181464276596560106914910638215094608071262356581377309469924612855867936946191861791966390161206317907617545442064148728363757520839652601077162959905692853985999869942711216392867253596165581904524752487335952485228083880890513875310472689494098848947841336051248322614000832206390936062413643914934774918870363809699377536650670990160324876172785858247328410745395516188150998688421265365393483053166221464954273662293271978678025733122035243766982119258101264206905264375733023163891216258582226720148116313861154634443110237187553275687824962902696250812072715564891139183855798417380082678685902699906958737066227829694356577686747087079276157203858568351469766554204022414576748325015897813749673138564610313169720388917234917608526689117045603314141127075954233325144674671734074091756644849163311265029246799006860071545185871887673725106739092454247939721270488650367509765551553302492523500348633096192661622457650588570418953458948006948959488440637017847410454639114942697640834989391312467110515152198091001210826994158305119279036402414872194861083913898837298902042992241493074466256237093195662643847352305609738567574542290203393074384034781841186877686735641906310772333218194524836448904043361645583740688410135181796674630448155803810593180521395913320207902146748083442830655243541198107758145211243126716566848875991367991737909021671591408870406079692745020040086368303848995960405036606851245944170477292203432351735842800726530678460634129095746949874144085834067364894781755935150593136384040571939405698351968796798207948904138188419605913314373360721431160102592101312995088987128382387970740761301152587523051320309877772621131759567320387509937422105857063621400305828028284778583429065446533331240745915313523454543322004872542733642511173306061826742344795611834824752742067034581555025050497236258694549639046745312202234845428443720400474210369470947841575265797355037687495513029974877169325989600305366407431725151875302004841738827758088028633017899604263751261947278304800190162136130704692215734430151241176616695934775553047246195296008423950075527987366997853428313452405560811249599565794172278400315882483594834559049427088658613911062080430554302698586442316920749946048492425442460907219360803084279540834525914241928415703889796800199499241163445310800640693245377436036574721167189751594211955453372398092198575656364402096735845416794614365173858018571044202056900725188482541475693990949954990977629339659189146390286570037791684856818197741389608820189831055847668177696882673184381215813657866562253615406796515263106231705696202400200354119684714758363141551553621613713904245205241069644680192106245840729849070997455242985745539076050175137741491934755994175712065839963506711285509836581001025074306219559795883292980412230952532567146524609505392290148618829035066097166063490427548815252952931984459784785123206215374511118060935587474425489709993905601193601330868293426185799462146415454203844730671097981553337711177010259995291461075048073969654469890766172011149976066733253947635359631133561247545404521146088428130586174595610497882750396191563035610262701226875219060246586906975797186943585236743864255642901057003790322512890542803784514055695268066680928337558810563467983070781184424528694573280101066863018173845315884374096676061396662288951762605837620636492275549878782405097832211261133475554023305443861104829426536041801560864651077782308705375764735042769444695369723541089747841015626671196778839046075467405949014778013981998472941260086430051073777351619702129002239078248494011334869312173008848429704902719400089335751777692761574354079722732760938430867237093044948035415297372547922674476787276674374458356379989547965849622357729524628858876350636745704801550294049839613638608207128983834065055576796042490905904450558055089715295227756545525385733847735502219323223778685301710555213581639293107918599235509864658208241181720669569640754891978413139717425593973691006333695630800807439412186984902692472279662480166161266764440228050001433914330792381795544222884926315684519206904214538409382713853956451158923217398386176175908079245947698425738118932991947774335416804115470158112983796649462705981984633907116077721289401511541314990649477596362806234941255561876932787165269542347272502973033392224787551146220180726405180729123733091353629597794602267588234204035302757095595450638704912605114448172656682169327170003497156251629231201729393685051824941094592337554164129272201692595221515816372332444888752102839431583655988016954954179071383331532882224526082035207361980368453605213794377136698515695398179839554583049676745215542275064248195982885686832640466179832923054357111804750694325337219280231440281281541935291826406658780020216782698990869087632334605741810810152317145865157189765776743841622738069076894912229935571519403005023650034253527890403680357164885277357407052188440504513800308429578442721833818334245192105083478900151628364345337270875329921044445186008334039919040851702305762823407055249660694864061070831197548085302698276692704144438186869426048440539801035828699923029134824048439438707604640094948446259318424122980885023848295100187844104372029298038763780696502999715757791511079453969595542072343840248166143139578799192914465770756369025744996190599954972139574225918175408540422798881642475135998045334069557761249008390042838672028425308057631444957466610306152944931220311960827631017519549209372093176818291344657775390986374342689157600272991374960012733944508730011913875239193115146314359011802389395701466372235735626581678835846054526493411160893364658573721190986894447105512236428739423407353457902573798282575120090606633029221932308680547421326116108442738888262132211224862800841862013213970745101649193614565856077301229526404858166857649057010249994835741537932357432691189059991021853797723017066615027380786874135697194004717195971918486146507427844526801167933722458103035161822595562415102807119482525068896920216319488368506023570468095828215750540005121868925648212146301982847959478673237154990502789780046262951270896982214312750050157066241723891163689730415555963640698439181291079578466221772004587932955553912364417570559181315906771460579226627432222580467679483381850693119144411630258581068262942380892706519625397763211424674561968871628531083846472238468984347203601797111728232806894199229197911995201964012481236442049331265974006698478554591484613458013144818219578312898663617290408757503211260725771152040662353602791418560303697990861751292995173916188855657192045664774515848813600872118697658578954427671861488308472298006395346525628450135097916385716469274720111837166339491451259155784093742595079868699855016272057310645892510115394349960862291734772294773179407050724721103068803659776579639609507370188563802861109574990916967258817525605034294260114445782848024327898745415527999441000184809818480684765291968148700850469155697680312759717758661570577688047403753206743811557532470926948319287376834239395840632747375256056498931995730235765948523537956904521375948632875477688100507234788621767521437437279439469367791549006520849834846976148622054099121200924456696988765198179575308388357304284040097669603745865466040226414007681777919061278122655447933193475487715514968531398927199463353941903846458112872916962705706506313843626169960016644013374945947075613791024352025179863576665308232854500670819295456182364393685877791743038668711271161701883700163655905403101875085347519663678303534869561358655986251578614196412564858339530553996905478230277054357680210841556102332060307767561964386896846088204594492552362511277940917728567337286941441001945749114725190003504297444461654979354520867319748274457647032505436380382104897241589770366602594158862781161223624018449535296639098741556623525903891768246806812655668506326656581824498625476408828886324036147429696342546412351233164483385431295047120720449234538575234192237286671942862903430179215761935992055145397554060498363436102333411865626866685292146643711202114200056298071398127575980927543654120526799329014700042757553714375174116566932334562412837314345467289326732128320954966550120618091082195174504228381677799866234143677069007481857622334797914143092105796800615947648363569281700841105814190189469292312744295777911383516874138080073768156334211842661245398483033867441508434093835577610973303997943230816243010073302845098123153968111675181965876441430371106558832503455581468818009890324838277665562438424895370073259484016818653752517355723664869521429169616624855601732038419642489618565143421234618192436377409889110300219078414838480222776426639639274947382408873970277267475778389660793835194516356273763379889422779639633658025634422667966519440309890057240449406509174336905293992896360140073375053972922760146504427425529242872123403839966994902731736638364710944058586917867127894389813630039680514952536923990479128601459161330000195491265050295552582055487321377353994339108036897805021397900053853933466421159030550966150785803855594931968978097097287071243981424312538542115423799572269788872994761501414567945263026100350106892434152845522280207541228031421612647405136830142636619472336364515874886874953634698438858724972170933104147483752692803615415707348367940579661209783343680219643084185635439570378359361930934959941817508084841119994492863296870337962938986885233548717144440406792453002879942224577758149633821427587987823134313959306370894652677339348406470333850704929875857233005661926537347795754316189287068512934366886228823926503157130815867782468732270915637598314077266057190973575843787007512736381504375020999015527383008653471099806109188107981598419742924720898583406997999601958427118583668246247049354424282962314041652601567983954600252098140503230378888721504115719005591549233139392006721350508368191816369067100566074183615480635859303888558462291490433294818193866993685287272802459422361040634739267408013381940808288110200335085623138747330737171377345985351346179083342917620133422864930403009496230318895579832559203086269453617432925605856569534207609566589507764984486647907744242587599317812887405981958337352331531815886707488496181239027918933088186337440627182723753158863623988244355704027966137627614163253462299253281835443309697914520904820700180523452688286927508973635116491964038477676340687790447523627504365957983456331913380392796703828644771117560638977232969944115251774183864766755835190859686544618880535206714634176053684407128226298479315251364514706246913829862989701137436814521116981961639006565793358030863453747820492549103295639132012104356262125819809236593237762064444200881500196620506290850763248275011819414911538040629481287070561459709683912775714140260860727576833958218512072738297278105488519268110342167238047036406490332928539612107841489586046442779153348983919094102705574468448568623254311248378865102200896326119113830310580480658480162171556658799159174924903293208316135985126304726396069572782189652503813408118894162924532226922716030958007825441602823010918318325511147598819235796353200776469203430678691476166737226255720794016003329233002201660872346930802148843921689505895363543286927257539378516825487286291940583782474200974389682620404807995028506798574747776229288870616471433948098232584490827594696153748843542651269912996788981730234521611202764708280028006370036429804482278986556897668401805213104975744955750722227312657629367492921888315812328430895567690918635734973318673063926792040600144974515992779679107975882375606497705018208862800084557929784497789296660212319991580611138054143394777832491261691361830431682937355984181692787533751044424638838532011437786717457091849265694600841407177140554953751474617077896641227838847724888206085383211103516220836038119955133950146308325802861965308097609003784435524574138587488336609890693799058959403493649165259554832244819235580898028413921900355786454025141604588770946176557484187997793516323817486460342987605873378709370589925100021173428741873470886490248487599125371796372022585003678712289693984333165965148224460867718991205614814194385217513167799281257407747403895161031833937697642279236995214361564494126009149704262160119153215535885007909941666371028144695911756478717700901955829268384311475016794454379315736627200189718421203238788712204006682996152404340409564226869389011158075761692780739033298953007026993926763781789414020587147824853810493412176119504615147163709600797955773128709659825583762148778399615537058188088431747805335230833104882190637819589776160663809582449723648635629437618353549680546595681446373623538180066368867098422216514122234116101379136396676773704556721878373843626624735928113469824955772134776052596525915058220150417935617190001635829609344573773750233713175832136556047371168466099320014943589846596483853149928133922525044786160181236700976036276410422218640997751918866078058815918439071334728869863858587283153568700180005217137525935590676003669807735144934874499698061663774127837176819314480068294383622409575284942791148866444506231735739679070320911063820270514305658827518395162566059362008143282607771938984524328013067254084704485046555932059179306837585545233904306947388253747092400220679785233176134865932518253202993263887426228765707706914157016022587397854694477785694471590954164025013349990538664985042144801502391240332553873783761789445054110509269107796121440333785947864465329077463967185985472369125127135626990644644851350758260987957604005241358799678202207547382118199055801372955962458696394466001815843353822968432249562306490058071941170603181439910555981079272810629458722349832126372364832122248536847692181655252091335292276276464443965877035447214596423900015081626322385578378537883632558927582008505229893870220169628509422962114453276173615261084412200496673063705184350675601473745655484007942705643345960004105781348469706326568977544671869935357679195534961902610094169643169139450533688097485195867496804758267415558776896957014386979370577634532904681761931025648778466559093131753529248606786307442913058296505016005364904844795456686321121824544788864260669656421167229032881010571806991810856084339515734992242715932355208444824373737923453796968969883974794479303702123330873094333660961014138331617711632094223539293470118556240363748043653332123338566889212404715727425591414821762583072241611201955714028389678415281359020103487386751792672916719317074044432546357813036221776299795154269595278659205094432602133094405933520855508037225756097150730105517201298851224289030461326569397127429938671429238692642347663624981643563321181651563576925424543164873739087803039713806774907646250065802709851454158161326447694861182672101239416071413977284169550568030552534733390958404367856824756348138968926537200327824213356154477284916540306812541419819512227613452887794494532543683892331386265582500594851285765962815031567500129653428571518802481172767173895696318092713756538745709344070321715732934492951055370240663973223872294503222109785259261139068257566381518071428436408914505197834799202228673506608567248100361259645694437774678476446719211915287084605569381855014999353864026342262106126413288161402578809998789496113065639166657489570157525435691825985081238080750918614874788336860247103918904161795893071613623302115018388586911067522557565520026664311180689484084354015242764063080520104074845364262527100499955163792011435657810656890469697901698455764552971148919039773059815387454287113133921948036298863502381970763570649848542088120639483602415093092791281697395224634308424815291683004735424562639938449641597043038918631649499820756728473731167248793628079482399780784856925726931848660893511853253494408403027598042365719494412688948822841256632039512529083283965511962467908864835756402225366693034817859361680195945808875723281605680428484401123472928679121832412726798004671084697204442200867899359788969138426434049745629021823559404007588968209436199665189424688456457411868383297865509979777011753057871861543425292125035891358967106929534357450137000718902264027453684145615058195225010770036911198243162477975557000075510917393975624668207012935701973304566048675854961883707030732879732009659140912936568278124632109449511987074093770013390970019795511598365249934197158635309428696105880975380358833628839732143662810705496500203115549374451073931463274966472552284120921674683190296451848558282580220740930380850811235412865836580108597010516836011782686719105010594761852670143050312221647994997972250549103592546737627497811629863607320611686135153681150717224613043976196028275869023105791903580717164955827183816354350766567889833544864929320047841706789182980730222009781192446526301016925757211469393953928983095366133811757127629730373234296327950197736475160838961573367476591042865870216399226752688317724905285610066968428930573656707560841906102111026549567814403461278428154829232492255395367946209026936432392018501304282427635516231273510234132202495344880607189985994290947432205233968170967873463497344088431697604302608885286958148028864739998344131207509013228907810285408744994467402005785195888812730849348181524529094017951917905025739982168740030789929649903732827699597040643990904036397351443620542313846430103016053506239513605620830595024268701794286634459102059520894161580508348698687150853011558711742349157955558770802289154868126979823051364261167618908312028640325348532983597873221251418422140389080420465439245232555063325554082460481907903111553844083385929442619404299152168591808360811004243600688062642052463863932532884615430650208652289920757431282853687279162800578782174172710588743670630963357272217657339549479244888468562623506066912829496241203787706466844581517699843164308002377905521354283721883476710894145658992890116077662404166209370437033552989456140013696421193434031154184518540548258703632452081773549859702796493021580181346000014287569785471266857596748238096487892119539218434013187902468561474048027283003181665092255765065100588379187175349539282913090687374286491698713221144155436986488965861463258231111345652947131760134227594468226255145536119565915496397356156977029764526542679147447971854906208299320728894103425517138995391911020117848549375805015326981953522622066434961346081908338818784759934947234789901329916933437996194439944773453571367108177880508785857771854090531627066570078851240887486685554769244529140436340406507784566624930698722208812977210283863757920399627555865835773797526737912989935744045204423852165836968841582271182424729944450252897787590188802539396404327176444876810360182623633885930539258164296636686890077107042110148764544738742036082669353040930624391273892358499377440601122839226911756402894901132357632750410099397338467078125537114098225785253460266076261319402239277934331474726904542859404001543446827919702993368648631382981974163002819264767897872492987178971737108323101750132141104033899020485298235568148236483348686134823259503558585799761779715547753403218681845563414679396668030946530776903630316612516672775563740604118264242993754403859469584355062195042263527309812594478854881614361065208203652577059799708671101671272299067574051897117259430082666021074107866345585009336932855252452633814334166887816411521773472924222536305644182257452320805326982905512147067619433746560943221148750330288038515897457567206495254002252923982061499928943201371243693206703839864140678521721708267909871240165527432924836813390117254772392933357021508821165224845815851493645045589284149675354033103775830049963373783849206423011405487683137183529206062590057882679708191577423270242329143748286901650614931663521818092236957710941620611293694440732528859517040380877945962253941385865361186142121869703708909625554459512622088109344696549883657129327209808979316294024400190147831106433271272936651766865599664432376988092073868692423752420588193190761429371791727719666129637473906260368152497863559646335526372578490837018799507399575942110855886449966468429951909393392267556900523397027462215923152054197303322324529354296092812324016574577979768160167608791136542170915826513293393598706744339510074490644646943943821868273071954970161041316274083862960999325396432921595202993792049429512978875992659503544336670521152879735182508883849667912926708917450568477078473004760986862165672490453088819689498552204682581917541840852576337812460429996989235712416823104672706645229539711344753939460297404117498450097355794354770864236206812176277750029854426316288477635916468805408092191224074781941464439030085667271006355830011513586221829618241466347063088676300467499097097163667076480655102360026617530673819705891399906973904128832968559334170535412004299815172882359699570270167245596304235028704696497470840976177476879966944641459864779076602338698878235743401204626370264654824423565168351744902168359913083246088572949194493822809628352986088373492247195114024825139784248618896134504908353058778306910469914844337401469889145054846027399756809264791346568469723426064896591609621564784575714932664618876727043294353517169613657130273163163155906861378401207765966502792509112267494139653304599505428847416987134176904140096159685402265394469367156518150949909843463461851917707835793187033874245248874933087502417784321256092301806801698897576137515238735219046481472418860519440261619222020113599416194847611859571670097127842856678811340650673593080114524233644863744207215519637297983831631649980466963426934170625765095098832942806161332265631339785410441945857641142480985948394288709536176844442158403024639198831996231044690881830025945541054570671199247691278506131224669337710374526638750023547818899545918190005066265633605684234466525442914422396219658991485177924791433490669771723083036586666500512423230314470227157883457136929009255502434132061771180797475336721138880180606172883985965209348498026567002960000347306287883052611735868281487177359580461663611400390820208378202106038207618280527612587459441801910179129506864714504894093046207458622547775613494513621203833191295684100292815852596527791137213757797968518482861772469354908754221242267919352242155465587057917533218090008809590487302392210665633818000632182481337194391293183793221351423373904820635436598138862207179860932126726400797879462746283553404039540164789001898443671238003091266359039922524610831283662455698414828297337395926078865164210859171613592073679523726480625400108882211454978128678482754390979152342784034725971400697622030530027339916870843557184999412642573561911784222056681505297543237120564847643035861425662967302171055291199670219511010133553855301308473726574104182293810450451798402515094196312118988575686614957110991255482751277828483961679129086101708729168970519133645024360888456533796713518187296787263740435833013462337517072941953137584778226545290139828871685358530867121939969424243177541535632829771224178633695105860718017773717407388815460502834055419176667799763480190288467728643713580578118594604637334005952479054346425336335072437433092723508171952239285712967254212503253023650254262532570052091943236589166271838043650579782092403261405569102796796227302220117121059330638895316752588191487064968946656209776559981151980197795292614227605852257323402368937754250213281611115746325777533530415619816733859407552092947730593294876175546798792437190846276884405183227221862155261672025082813892330673663728840836900015061295627969953877923586464785342266860371522141014886627750430592620450695697997813634767649720875616983521340165501456040086805920889205062366802917342415151808173044999390084813403343928042640630783950720182726200826004476022536727984576093669791685946899425587699461951617453554246675133811554240018803121854449614490809078302554101402861057444322100162671509318660155387908707248183717417663032601078513410091465229159072637117750342150127963547726407553233975074662677537669917428333962020909478151935398475833383519217791005465626941618142249390046219455237180630549033780596508037849883619447956180984055810265537011866895055591169307444874304520743134808289133933365059000355849102224494609256165077433222157059166153605354557315674582355228171854178994288694655733327553213524011300024915846328311568302373679090484209881382830532954284688039785395779052620905079658171442979584927392863750134465645997408767051860282240513242788215982178308551956618729758736841487102113323817349287635955524092173493386884603689796942241839494285974099677104021546508894490207285064986270020291778365254463909922775057546457347176968086462836136929022355151074083791799978093779651529976255995560995353654822128986046261589063511445973696636174129877722417273136026366602112477637841436234616160938498530221520175520031439290548094300518277781894886973280706932640958076195644451179511803739605790437897795953806331671173713046375170984352100783960386075886106512064906455169436178452742560208974796052084198363451721901095912995378921487864686108169793686899082159527622668962703202413250743476414495323574966632099352257322698240765978953724116909078145052656004499544684054019737122374807148191822213639239619973486214659119695632084184185902631214817405976824613039679758194384269652697265058087263289966775835703779667807018221825039353446418654993353774379763762427645452834968376014536149794546938618564294527690601342130356535934052157538979939869083420534038591337311093136934001643522004262027063980228420720174120019400440471285575012233658203518216773767347099696572307690740175583846054667567626430272480184958860394787408229029800138098400132250746872399769011070080132303918536771762841351847420826365644962233263015010176102593605261257999260056895918167461757168466188306517805261502119587736984858020764775437405582680849901047253664684487193040409171003885317528688305795523040346774876461175120508974194996285816995197639793600522093936055499271503825113746153316744806087570611786290393744520321312628889855785793972505134605545370981573179749630316317214794290103746690322088793697588023888058665811686000547409948285532553730616315843101189576216066239599796244832331069578380847691398581830222301740553470397256907792057522225261869908503715861242980074298843920368697014101454810028991872182958579224759148488556561028840870952933024528011782535716616783446253300443152325272616695677441008570684877155901132003997307604058855877490256237718779664024225587986612730894292016105567476578796381332999838493449989710255854948592914705969154934548630281869965227156316413772469142845069738123805882691026743352165325208496912382766878215403286863238001584321803173261261791783018107138463417475964410974155082155739667743618941177321634284993888144415326120860281419492937683719997363389637757872153317211065336757771608649288702558085821442074883997094249935559986132120539225084451024944727253238460453409057286524633286068863718522957954441863486557605758763599000947448761947209806535243120293556316381228485967678220349727439072971771274961877672116261110030093421929510199776266966009897385585085514778573651488259745377611781174226431219895422855880657489991320799755825436671478270598560284786492118145057133509243009405356666485023986639413955622824404756110994136663352224640411107439978683631313844286088391584058414618828767355936221167625034788890532946439193664697951663872539178096010949549262991300131927343341158714419732707933504982974567093449243867486163981978100475303615052078715836034545820239479424241963662617803957304315590348272461787661866650285761502604358173509278429692386919321650478967596371476410519284664626311546549786136544531230538396701564816989265376369563298467733411880445383164331692363869528434785382749451177777204115280806571551239432197642440807535128225742605604286446771837709827209329862720425755795393577650610138144075918139725314844736528779857291140499040118725447572460007166824027788464309605208967238357199163270451345600954784771526218188001749129756506625447235083189065568876774746547495360979568732731263348033255127197034766195524326554841764961089791280240332802565973895060121075949846144669327826269769497203860846290647693726414134458571178050598436899754201201012276136181409273764502983822666819850238469696737612544022654095259537837382077971726885913478161175381340279837133853296538490092912438514227019737087516667307278858826444731517723691662492978958265751292048193486742219110853337727318607337405462149889007652904415106852594822145997663650332669107079396768884260060242194232728964433143559200966755370384921950558002188193245371471751729321689743050695084076614381128060901511031682473932720762209676413165282773354898361379223917168094884042007701046694543570403768100450544061085061331755639409704776569365710414677880331557878196431446341110289267546673437639896691829154007407159659754323884531185435916923553042678186994568474488404613989666487761689612671458917364568506409390194875458349400446757705118886935555185830367764062771645824565218905060321722170856919142517944679665600635598906789471637648031080303981433057325862981306076335516056667114592185275615845745046048327504818475494005034331940124246395970227505094698369645358560500924835818022605232480466798425724278447460241514145016462285432688187740773955818312715812613515487667142347352899249475356074207528059752636338709827594644759114130259966893111890708735377199847727378338309580116323639796369709291414122625760821702410801280788573962081817129904411975406746783413578841465750435301360167182553934976432682120852278204323297365055171967204832737372123000936996392490451032731050590528789502701271237930409182399937801231773310731100042741756210379316482515720964282665176184448727493756990133989969262018447618096320678633829096064452730086852190623767248124612714308179692143366662450148808418453692465063179478894515984409118478506838488066110134737989144422378346584865408835159956585052912136270640499407186470721697014437606094596805910246210931876362527539302525462479216987707843666832607219731390866329046572959171222840420440099853180791607789008747179623969065000342318172151351049242818369074058089593541354862596093885254217819732010140674866807418003803517657887146645549011841071435704332485560526205613730447550705229163972195447101430553539239253933878572367376975389766967302712291842838549606446448699310193696169176027116126889890561993289709795572635453428205757005571186331413060640951476310631856263158021464265481969051210001238790065866710524922093529324647388331292449378247741219457935470920314278124212592503644731981811255485779751416501922078520110330697936990840590016771956127009125046693756403507921787609129491233218751938867851100023545709916097430608860260828711466509877502665071587136000320742286709064357541016546144937627798875236771513149552606604095311948852722832343533472536366381990142658650295138171803808665004440823796662317427823974766544453583898247055409680298412616871714396339951552755161045904140039945785766512141435348914938328338008303666720799742692868916081371613224643842160835277814288895647608502294881491802285103271867803140332821208834388354250112002402622612802054290219260928701332805958206718507161000108736885006219161020558497967706850725279475763604386470832810659100660182087315227457070522724404737310023770554878502266289466934478281213706136079186412795174670460635324096159987145837830912502061307489073281722734315912990399967704246158517260412194567518162813139881774664391612251169650617502727061968875140466562262163246342870383048699143449970123325499805131054352681110133894297828559817716370011421090910411935436002169951399779391890218432551777536307675747038505082402575743392234240054008378568201472961551136908599650670185619038834330835029799337898732001651711144825119445421874288568209300766955255770662598019335257440068278044156155243711730904952723320397856683656148120277972927639083169961988124423368154241758982997871895095811185955861842938196602445621168136135969646400723784866866583886206189582113181423041815510742826900650101365516416359666760887267501787826573854672580029384128291639415871209018656892174469948993944675146104066062135702704316677590522771103251751404404784050913432157565521873482379993337089179694406806259387192781294330914111815425637665697919731438079127146496950761637472297936981610361368368662059387662208854111166689565411700574724492398111775198644075438803371285184316968795721679943835968906438023384229119085667676983679526253229284424524111653393644017812209969591297233874012452173181390232598133847350767642771936108736299058627050492713127465063850801207723535530665000624006041641830112217363502341799608674963329528547331848114844822509339622617390798434934139641574819650556677098532257734562030452054318384210349013330539189737576234387714513156368705425698171549607692715359392022409178983518681895161866206684408919800407052861574011040812600959752342254617671837514398835018957233389703237407190336585741524414092251001448921890023215342678071590934844453530668425439535644806861037404511989794441225928040826177124599808970901828309327471728813081590499505214243368389495239922988373869212743444122832361952240069316755774761760945058629865975570761118272852521507426785651445127615519812357001748186803595317038541139279705891215034545690172099107459324329751787930754355363626930649730908335917782520042947469443075615510371296339580937415850056979867952062739687827720228250274289513990433554259507715421879263570124449233839534392680704764635288637766592744622882920177095338445673751934665358071606119738850651587467606277211148870521744624397197656525332478180962290631897964903284737837879387591186325810309978612515570481494419229389763218052137562545593484913418510923095669248676425850309761931137607476866194491793398894120519121999227342095163144786661601150192681833966583425115258485767931255288000327008327263271168322670178979826384729246029360447315612768272211437763851553798158806496562798340146742131363094356073897030384872203980223096991757094071988786614398738822859958873534980402897205247816365081944618653003716748753020556583584442017467465226311021675755337333450037683687973482068725938679972840695972592353340242400555718131090075834837177018184223493473076255985520921590659756378961310184853286374333943201785341971406500822653292010379434253233842627286370376694979021082742264688994833580966446927891109508724252441990622814775305926674950610903628976349301139239658403347019177456885571771132232127635916728198802022136315892237173107339180120666816743214597263527419536553060663828783498619070141877527325327330189009805998105890744547755678024715327519093324897455002284383293104860589182584500821378880647461691886820381082953458448838083929663280583170716676636371049940161585065196248346898872278804312729054892050411918183985238103193913031269920851940818780909991616113162252611715963088737587976961166217263012511137592319020963733047928083277532063304961893845074456829046046316136875973383774895565859728975658378635682459622881790622416112816824382225812484822326519281644957807569760868389424984147186647083985135715132826679352712140326466855921651952299389526079244419627450724593072847749008981889342881000845319563240868133867944681704360873701282514511253406821117794183224822203994454405715283004054484921921173031839540662276292056719148514163027919196297973543579704493109808759367685293478351028529295858611060964433687320166118594914412440795263451699764237433818459019612323117669891700289600466876820621481051729465545498385681137533650493383237536702220407258759480621768840129330195568041781613744670774374187458802485309361016394070208957724293820409733391857857733455217379047483617805588394966515806628767881589922733735440382118202120521796258106343156774667047076244602487303602366456768364890709973113280439699827252148448313085852254755733934586941348049822608958091973368374710419047380775921572405103467292830121002273742188680765996120372737258003686495782035777260610068801877030579227848236109472278294843360696061951686434107606301025881655984675229727591570571081267545180317316306240651604867046991220922160312034572030232331532090639772558154536977702502631139579087479180365163377586936515602908411324659247511841042137155477831056327368066490314021056635508736305390596223215093303356374353287820218430004362466932250658899671558500354224077109466689181311722622833522965115250732805827588955467562241117273070693283589870842425766286764191949917874494166555220072436043632922078007162932790371993336352038194867496628100089599956362367286985170403905569253254990503927379108844832370213920596349157357976303923713126429070991949003617433178499512583975786939504064603929816174418842990928798148572963403580508700816545309128596434075617812009975240130497066262784036981166926313046375957520679843587715536679297453469584856485475197498294017523651885161881101862384413682117012428540364511363238184131497945911870151010565598875702480011857309294987974492405792349461366676273137601272063368063986377014482281589645524860195255535596141679313958085401005729650748297076164321850144452689791056866355018024663493955466238766450534375021537596531438714066533491870965273896747559564359453162284503477135783584453443898757543179268218953536785649212115065252613270256382477459417527995595727077509013645114721101932139749024264070608858182583349352700309315329625138159399515051927182056558442841552779268445473224749751815087498793492847997932628096401019411210640713822514137652051765141528694687516069452989826136219398594163988121732477634812237446670002385077439735547815059919042067958045163258130663960650886755468737359581561919071406759154768581093518836582057293288982023662619289994333571270482515858401445185242652486341422460688152384727217581725269866151635182101069197543612645444758010501291489547204526427421609553010764538487597538686074373979797056440178852754672937820894916381146114624145466383653989487642054704175520344936039450415624117242127825291309232464807790706937597631958918304479947482843713655297776393048201245776668068906613940499886717819729484913289543178668958848440574788016390579256287622175476363808844997750502314965921922880974152840305289531911306715122220190935982425709349504968916101159351892849874061084772034176309604711085680702825946793688857888172325995122195216758778537425714163971940118303695569908495606701554289376543795857405405014573277871957361500082401771483019940397862653809608617558294468897713840694472903071691145178768226085698334336660713622414687884427439705477107290074901678733700239036798867932426160417960167164015857983541268396519722436493132756189964701314776577464472265852223092408331854975928558073861539431892258018517177063468608899271790678460916781674520116302471848668701074715019402486303348800344667457576565956058985431024018881042549077976421723794780971796784069531322343674608223804246062440833857085067437699535885621740051066400674817612028672938863934169393181707877553951992831115393758538151352563790286959242761742491900736919009565023566524325433746612605867650856084075377571517950352437320047557051959102476729636026337426314719472201826648995960194735474436685094524157497687339496542571137760703038502573880277796717997200011551264371721966124825832912900385063047934066229124580631354661322848836405056844591661918172953651825476354577836569503077307044648244607004641803598951281389038134121196248202655049356453115496552476957348398307155946139362985042502812975911523911405938033904668281807518513812096113491603095206235115969004425743708236800312055463588215555809722279349225906706419203534922394147121731053903634199490203401779114513241826143450102267423647699446769069496377907840385401608314310590486930741901570917549125180912234163308677936151647830495798530097578561475693439965055560159279759252550505700742553573437846028253100509609869047442862785105541259324377470330851571150625260330222934669727588820673306299494974058591430635121064813913877582650523759914829385312375287565573962698549707729625048847683377181263451648149806311588867861040366192500376016039834569890922708425805999062661981447736699630000968821747232107122674025468944366976581703355570896300088899769921458238565323968324514500666617254113311559777925949037895877841662513047656327924620941101947852322180865091423973091802920853217221695380166099153838144033740407146094284875687990994973209273614260683176444563593675912827746805367023827571020165650507441848077679388391130625231698319940989970380164602724594844369462760311809077299001945868855424211076197976828692174785334792585651741714892784670165196162937244525532481764137196023591739925818193159232081622108904418717274381519992229594834766181716380656746033275737573655686698175037813440361808548202990322825353210813047330021540043401705066443572853847653643456382495624796625135672322672392596096951899742559128149805156772469600516328772572171329920949055933046086438256204913029371525817943376231008414538684271590048762963882708115520241192264240708430988807763064305082708206488184237217744394626135416277294139638760325595889056458303232318209419525925378192870535493276866287881838587114940503087564981359674142590271313573472265798783289375871431583398147478303681130281491134220199376407355586678712277109522363920095670323531925375318640675442821524332906477678158247913216856379020796738288530801134753759988912998893271118527227433266993897957740084926231522161762548046804356623522657315776505657619628260651313163972034934837831017501590737949870759410150871375816198813559445357586632044979665774880438173070635574495985887026712189884839973962384772644136742127055068085294521904516819203832975196186222929841863389707628087737362121685972907781024402367603783602903599142529923578145450887920444860771072645676732852406908920403977035867430788403522008045272442564749757403462710588453196261071130734357139937952984809337283746236965656790229133536186756634343968214059577205293152187379208180780109329100852100625695869813262349081165300640178800243287343243092765870353063800258296695763356227306902106266307057167620135441482902942400338032690931315382940466668682943998865216319109181831147001766528805342254126959166738137391809854769770023269566539484782136057936339313299814167235494597141216752697126178743302408209764585332609976055421690302413932467467278212195922414871988892743523554343095569983024280024048897558460099543654365003490578046700740087283277007961037655783274714108562518752710098340350802279481954823157258080214772640236783482674305173613995165109524971320273881351590933800671866441867848004862503739273257330211945326649343077456099198723276636999484468088892553870398602943588100952299652455555640077999517811334862605330819391362176969238670353499079170142655320437616093762566895946491152591927984127473900320448336290874850783273913309190467214317322310562506895586399213849582931746351644248002961985863281977288771703709883021056827690472063454935066855200038029534255297591945795219876684318407776722321942499827092561831957120618642980263663107523354008083418826497320415401615344912313657310448233887102733504443319187443076401332155725835871078870531529831778366106478358187321354660661709635998481320401300971049387369370352054773661924890510033709645437736032174599991519909505986753089698856913148133174888596356101667721231115064890075432323746533321709793597226657368167339853468806038896292727059998676055165867992950681983656244907060436526598977555648615620355144154268111060793473668898729503091730754752971844277356235628059066554398062445174158892768304086531870085478638198289434528321896807311437152043123271524850337898173192361398450744510567646546516326683234780142964944204142670889892911235158106315645557317237560963491689056143534939029189364896560662495896121065369156340984899099737559997009244946439865439287804582366443430953729271971823428761503648211578581999700612471064837093077719172006313493127468313150465000463953900532849288418878848386742417734742482787876264187950015045948478444220783762460214054452993440160203138551604195176062530097599065376619105618098652634539803740553979998878811509745335215928131332842434087539311109972340563836537811130638279613154482641659444164966660604347376443624273362166358052117804897143711908775100401380402299581833808194429211177136530641389215741425353312416445096327393980894128569424339442747736160888136239750810365884042884906390677047416304472932124196789476278272522952660068940765008743144757381799532800267138879690395965727850350141787392006804454681008932806451608266590943949546431318537820844337648372370669630369763347311760140813021474328524824415793528557728556697270952677225522136409037138644420676237843160019411823301614717045014636088745877521385710206298066042152070094436040710356451431487874596015245626602265752462319118941980056528579026865767054756683718813901733216778218511107982992145095174961576734533281546417618210612656674280068521863021148234768512624442251734760148213130685880026746690675281374839165137084122490866863710035378744227515197886923871839248734842177005610256104549811267384722465898432026252160371535853636627970698132338928231746919725932930949000509052504191003803631906059645263246162806325209405761825114990966871515136054554831671318262914860870623454951498613828117938860204967191755172881987076925104502229418538484380539765873327219872507336749984963030913606622107561655946205558665241742587630760608039205884751925590276068156957385701659537700667431690112867463532225331519386991709493210365880799511873409734998516958293274311665437758331287029305981882361763350909423497353607106716673906041985170925316777313566886938075916901925173876245136950277722817045368085790459815936656548140647482244895930031565903291043244973629838286056167510473972385171179344998852359328999667555309514295476723040147398422825764806570481280618287001550240675421717252811284552955374142226919485078467921813250214304276850319964171267215036871744771885468709685798812438248686971600439398183853292247810731947879402163771843166906207021212733952112775395367004536377016286296571994685170239385709149160441516798298447481005900805324521341430723857198378799085171289940243655077273987266075933883008146428902097314487123250903222111137291846761536203279577897973416966495212735972262321937513360569023474696686219336138131101367960326741213602701410627587023607506137176891310833734786607230557620386468095884074553726229311178649267490056663488313120642874779471533871813602463311900986198085998051166115647682350429184204474699064191885505223952419701175943914774206615394287651109183587436838226038160070064948311942130854657326600389398382399115671489310756946193862705247611750401647081386266455296476936457132437953016484767516344472815320172935130351877226486448395846579584888309936074513438740270262806273885276835971212258521720649535060129518345720433425576567602783221200039391323728847474618326597466546988728972230975644896443639399215693547160007611591547148815593001904596667714632380613451479862262623974747911660977992600561278606132883881311044355523973384073279965679790025543751673140198716290924467072740693523661498065340499648405393880383963572054645212200104961498248680283305344308595130204428166446219533588056193765486043041417480885123236804877192797438916370759397811321991736313533767320611134974394207928109559575622048684521303692867516922085486242923069130361014069802630410273194604601164654353231533088995621884952238694636045954840890980965788935683976396819725225927193646924846512974930843063853973008269337771545181454888882286763105137895492521872371528309937971974011974878592652281785899852728562584571102619406887310029232392980903235951806677660481549582541894770968189628949391730960060919029893744028182278882705796350079357041110981913337686116309428073094933497763772193890076845524540333556798433832705914170730701275786443735255730964466559301006002781729334388165005914703630964697912474816800501859017696687668167298629183958078748572080497460178502397909914825187021665468513957395485198535775578995020679693110311586604921226964366090281139861115800614157613994226498806447469875237596893323828128019718337187076494612806585098024711620296911167623336450528940784522193732178520641535234212533505302953850977302622562100776636529533165240755694837875280960085319739360633247009700789024364616128349424783623768430889805099473878688017505717788242804562118181764089481897436341448798755729617875305372360832623469902752669929200656246375301545906154012765526324879583516075902465194308492027899296138443134997755182136757390980680017508926771537617442954228138475028557783384794679802319946370105800807593969706816610889315458854814063357413366542823652262638884635991566098699858331208269489657823780219343062866107107257103249674817458207354814260041238728881063511078947005152570499169390666969829141673633344384016604687221052104468713607632060620600052898141708313806379787458233730710662433681774385524653306694305637532985064551809359740322140232976718776326985049357773835169298305880586638840800322790008469776749896177588096995615552040366850683075717160233874597493797024126784173850355903783886908831800525529599509835127332743665894071445055125120886916923442568397600852965606927361301148183945901518455218585497736723721030062764893979434578590966854626630489359535878223145694131661309482951852245122512938075549456183528173689331731915028794164307862159221497229491069087114919913061156890248878295926898859558594549507246865100090611987094460133142347464316583373203823983667045909602584804672128681393137939338413186111141110517546537446211173017625307406713469086208933908301526618620862651663203901421726651765957013382143738683538248328789718158419908608945631895935063292014170290180688949323618763552506056880659965950697815855218320116091288294323455185864390817868015844359894576315913724994493850598029708390921020361833602457956799204433723628737774448449876828920107893469879290472981584841351337943185875420160785054204524123165527757430119461945249997681252354371161460995723055810755897896309334926940633197750522932461002416141842917461129037638415369762524335339098079031472689361415752088760836186227564879857807890639127530847252136350368201342624888779832603274064856470199927681388999238210666475384079027683670128073313660781307573162983629106440315957396519576067841824282329927463562290700313165332605187330029275590951574755244874280110685856349890395481943095887144828578724957647653672385332850961992409294731581591277608799747989485883380805554363070008033148887208797740677986980050443196830973462953744919793606177343863891793691039635716741609266307495146714042828246343015557801615792694786144569166656713319864713116735423376189904078050485760156475277565122913432784837696746138529925479924717465906867810758436139362455147038365567030876161381750486048476184858814493687323159452343870822162347707365626898270423836746737376842049933421247062725698702759827587415847313973368387228809671175184400349761680501927825873874123190139570650987066225719798049119997266057203809038873812256072270856846142274771398884055048527412036446895877862070354188076546505074844849325016626676238048541591769926716259101130097292195322572320842775073716721044755074105447798101176777940465718826534275794380706016900115454624734371983591058737787320412846106828223131840464613811841040012128035511574538409987391011673469266766035847907763561327236606873085576598644636808295304936888244511956309132862872909130005301971971748126940622610964410063987797070949987925779188649917991586364609630123761451629925382130556848245434052225006684177734929478716052062417401093422380469460495374288321093859283247180138333557368984258572602333718986755474152411680147519559215465648492150113001813668197159111246209210649412774408260598071603450028726874319383006144592907289794098885923269253893739917676675761713333009375298596931203736160173441558938927551533334450825938980847866037620924867450320026744881262068070422140656061567342121831120291752108556680626164108539116213640552779599148450191386406241011914212162093792280866599213116736925293460808870890719100980924020086117223372275577399142116431104499919689395488216274882791386665566962770531190829225478037262855287238903511534361596777094841222646327958220215070630906145809520500718680122079124519316375140822100277868197751701524284952299687759124809796518010744437136195912470001404760508539717832487788631658077767542057267235449618552099076702465705041503950309157489803014932618179361022387145984120111606094250244280044580590953425292711570877093478219995928801558164175924795026154546246499862141444479729826623884239708219871482840923006372430780486371757905032459090668364290127491212929603968259806262844772356478506767659161246307979519909877319058913109593897620694280306496451579849220095271840814003261760283096935948169260202706335369272308911736937795914822213899883106816630279531794097804420081537381266518364513185197312758521580910208567133816900113080316415644851011545439753100741399014004798297852933053981469619363251519789168935237141214486984043906658424251630110727536185122138786043813841497408811767435137198069303380230892102662407570963110278332125837388702143739079777484018047701742447383006920424683965455449770241294180537219513251138525287939364550071957043865490258553477604032025871376543437907453304201327307557243140375169934295444785241426978436094295541293535264639741601557627235770778189397967477744247615719842463520565615260059757519821019556018854881529075018557566985070713678946255342841417667237164581868084589287670272424413814817808004449844679106599069588037653278802535810990525223641485859967632473589088470013420020966248019037260414395951975192711817861028534332796371786215089828736873054909529038655289377412944493712722425878258108751320216346779648638152992934302887858004837719923049034397003924579268362426378411583207459820119652787696086779242314912657437015601091717995341581388609919111266475669947802929647824758223112794223799994651942643233920286732354341624930454024204664182424983219625001315306559335963750413635961723389898878492284105143650597902973524378927077709201169639116973916221430950664362317967408798980125447431389208152037136041551769180557995017041733886916944976414262044732661723742711880768089516480538603450162958306822680501363876499472111921972566824391476855937309745710407979288210561582854559201276116547737335756458282312770188465552180830107010537600900247939814619928750925841318641850259799681943461144444095330210337467415956722988064884596122645314214786297185176264200928371364328355542754883994015968479105363795980827277809319688300960075001751432060974383575664278769401432276634798264302898226082628133397116475606618191141628765868351465916804551327951643326833849645866264636870493443171807955519410149167110693972890597948660251865312368205547467896637476691190568327427282224829339284373522844633876471286077274134242858030964408967045675231979058065982876756484795814505101818584910030561131335622737665893582710669439187580730010947321683175664501971176024118046257415485238360287717593422273434160191736477522761714494548985636759948890102987249469192673555635139460699769232792909072726013450101774833125260916756546889542973699869952550273182670560660559112965569353595278319728668857359985310009784288956668255314253696573450775807923506866025027377952970208692002455481487598818710507681369566362146028641587756376152404923602039710535899468519100846958419908164097928574869681492158139801966488847524524413952076445487968033061486018531746551574651664964452634630922087238831309324460046268199027114535574902010314891476948598508747581503419201792709437787987158266457596214324616104830716754147277941575801385859686687318265681950213625547460193910285368006509670953921768217005832047081586660874505119786957225974940866764086697215989926614010862022503772625196118974603909101030295024348470868824281645264412090508084624766436596513008274500842718972403391105960790028941656431955861673050444256495519067998695374874697055263849853354214700096673693095024471012280790443365146427988464969467367658150586938256060641346282160762932444010929583985663515929047582170021830050370396800306341044574627548977154735987013731393787772564001305405163475779372571099236960258509821058910543912309303334277130168696808670580122120408841425496015763052192381987450043665449871391940444437064544268296815465242554661094216732694267027361595588244736814453752362450161541352603270836399848042921751982579472591312397179435927725856854221970273548765476354142563177039959134680567488363870319099771637475954205215195619785059777001040393806687319411874677808687520712335293814980301943339933298578371863001929898811477890159544942852157808636736588732824899042942508477820915442216011928097411051786465763601974170817465954546777389479348597306021059651967274736683615796514838609024176229692377871877994913332703685415632346336365958822775719787055238786244991907225437564121054460045540404111765845689193148763398841590057708138849595066330977144499751667165587439703828585685141997350466102171687835022051442899073910826696282367858314263504894714814792208338640589815842466781231831433152892863562858825988461941822509009847431488119900294596190051440295667613763868128374320387051812373128719150389764345479443435242265695043614723523259918931200454934378702501284032991100852786411292349603669468429823687606034297640130296934512106066827422289831784652671615347456927783583206173149340621224536950863918548685224367965148201130688635953177307103014233870082721644405245127403393123524739366742472963138102978287151633487541617266551175723869096606476680887353291305350511397683050287873209679224091221500109045020667077850230523512707675142273830326370363851954003303236750074921916329131867350601748551853664878874148864322239239037143420206132787658849105999807442152385570017654952519063553101056355564302210813574660854518543015679960723540023238685657846548725633517339586684301497951933649232210623364704808337349211474565493343746661577911493489980312612912551765404401398443241799488656423652004491669007395324263836287345971000301209041399994947649325551576091866218854975419676522245695500564911642645159942301952535490851060970245051689184497457778227512159849941025311176172298085771434378012442642205420347281492222737661005198527106862471840714041063887619345315157486294336829839886276285684031891759305565048298088128098495531281939833678949411646165557854584012893109264165382253819047432643242801408393603673839228434557180322763934606893336281636071150832952067727681348968943272591123849762765486952254758225238485156995105398511219958808406512319147307428885645409422147723635844522832546067174168241061971584309718151779740601073631773835977348734338533570089231414169306060088399735610651852796551425403793923815349572658959720448322231620949721532859476222893334301432223710114637413327333357590020026633954620412650009893562196047320941266018539044504602032462709807912348034209948973103297627936046128764112876550686430463573488489792428140763151524910742310782434120199831574390774365929300647937703617618244844751029512850349492441498079173998400096799120892538635873571711803858777719102619494039666814120580152175223650366067435549887734130867312763025053418726980620978014510350641873954799753091612106440442927205571825223376631374717469198172597596729282366500797220507803876711306656694639334108403954531144568440127946286010846601575992788530457150222356795406845548756514193012053367790130677175360801193387307151340895497584642347255791551747935760150906899678645500869306830733461093462807139930362009227895295146110507725740384667824519405530381893982133361231415966129907027203598391789418821138060514018858808892508917625389889489935165103839929045380030309940722571646345912491134123823053511536777181225042548907454778574913720195902286067305500628462751457482694343312376702513667818042027640627350092545344955983852405543207757129856922505144705701316654412410214578428570460335992689919052846404292062718503993130198538396468312846082542100408195255732725721141872232424368947790909020298714529406327675009798560915734970451467338382809069738694060685382223075904645744950113689440747194116947134223029521045396916830962644944718544133992851033278710886617854019867222931204440458773057107776558908328580567474219951465048036039722597737222026862989763036820441911290380203540548090203253915932268132933508906815296427333433725423294858355861201644537518608765595155335845011400105985029247620769399412034891200677505885422734137683735460277487500891958486288781006368505214149277186229435423671747468782247958655471611491519974671848129268663409165539873168381135194446477712938025710582684319259100346139434528026860387051770496914971207458347771513037162203303900214694855333697606001866931238523554586443034450219493285781979625455642058788942764346877795864469741368470740593814014958729929055808667470376844781022171013708394016916401486582192170214831948291620216716219580136496873830952155877568933421533055812984885498571854042100641405009153933757058167602262140575321464309111515685189268176410886895862199232638205315745279309260444720612031736026855465261293899507052135962745024615256615001166857822854596235851294190077731910495468319081770412919744377059741307516999496266516565353726580779857644910099072062895866352928133871004820102908889964856303641213996479964370567057897096528452419966794184494966668488069601622488739148776018326292712008295898632135186935933596859852409747789519202648194576540399484214312064385663016876848771420743806122991840822978396395548086737124179471790660207935040800325426029371277389163825425749478044770908156642051530485373836264320467183047026581001797337908807059079964149525305037536880901410896059413540586685103935935183100298150975844965487380750072277807110099062565830201142137305779282561753952695098344913978280361368797671167407353143730468752516464752969738840169394633756101909748446668828792844043688939959879389581804590893734607094270132028698996730726530574453869649414013665740697748456561811725437511299706942129282789039210174465330532455945169548620490634684461439174138977142160127983279773155326361647639665427931522838053094166157476684024731171312079259492488207140426355783395769991700927938249300742415490215815158549245975256528725529650351115277973882978930989048660868042419579751002019667857923707419748149509030991683602023769499345809418385137626581821377457207457417307786390291984582820718243778256885867586653065073094095695244026878231240209007818133786719130849881505051877903539539901990885854770902149468409168955120800377724051010655716630695943130439167608493403541798198073223769320248359051065322074820099018786386343811044726476072332709931130310714433001594234821486494805583469006569215127369953232909086947507229117157808416862601318103268504517893471816344460194804624682091191184028902071413572839373209391724041690530848523044431732815376411447935727370912262936851532506312988723070026630446163334735697334524431974805594913034957129656231797273140075705614176944254621599355414931343717119787391934537587154251275254685188588477626877321246169450268332892317492080354649171213575961951953576361802846328170219051878771553179304786001755432118409935587430224344864455595115661141837844861185215148212059897884291113771796361888038174880674361321967258663026928980747872230212840169712817303209682881033309022249561461572857628740146181762525445678677827232883938246036627207838858884824598193219797572722174831490396159906099028531924633008049375230788399410266129460900146764658783340686591862600478915330117980512391800452908680384264615363019129241750270711210831062045716042744193626124676626516757836426619475786145183618923457481279863976147937216471566206252944383552502184370820739647959067038009078113611482797569860908986485680613196549047535931628591043251299788695662755802710829086352756003992035871020487320163240033268338376188635978423782003251479451981458369971637494990217198044698524109173714679695140951367471919974710771457341026942457466032856004963378717763583574285654775939856005694026970863115989062265292701887962575378336025953052456901338777836949453907804866675613362574766096380751140844957217508450314459919815154226602237708606806755991953741148788016518527441194960246420905006220036575273440823813205091416184388532348044022659278217109328808373735104277049345662182577981569511023654326588940882438690613933770785313469021219471878458481976710231103083452503633546270462434851457775287189028852074655856159404224355401160965738258748417997661414730901274704311752026304707968143629964887279807340099207169732469613988580246702793544050933736267097369162358029760658780748760807015486978984276187027623795101215955141558541872765971711788884468558193046821269825397616204547005853163522499020479055990726064406637142590174735072280483598725554130000218990709417662724343959816715386878989147871708587618995037846136650771244311030242129215468467930028476203833969360738881930112802487384716451585951746895129329972052675568812807751981500164092711638314189161309418023842013106513223950142300659550272706886194234157667819650719575026776750201691645237236387595018306229454282020165642476741966795871213318362135398289387855993069485117658125141103810971580055155327683228023108352398511268200107207752839679852171246833852548986112563729602637976467516878854189354937258718352018681677001966109087247423602958649586386413035043427760714626855200085096991625432323824103533135750995627662612450063599655885912357876157884567961713670177674419703888570449010203012470586712461833106172971559532615122995991294219590160206549122131393748424659994776996922258948936592290283386274913254615603849623150309922969118498237575360426559529628516312340228759487538833432901524323034826632287384339547807263297685577684256516399658893590858379543620335521645954527690624649836313002338596847149121571727768993607415004555446554389857507870896174230844685977089001393513378239955324509217463758737194073622279344929532679266461036905246303240370323216081916151364255954977860532607185072433505631066795711302308085407187784853131952025238214038027896819000778892331456621622940651654459006499484510389316059335155440467491075635713893879229414804845393302081493293384745722369084957208586863959595587796691773481448168424209585623073339764048426319545264449692562870758733650344764993865071342907114440064880527470147597797906203617949036709314648837219505334706276798404100644247810971794780186837002005991357141480275596011003114381887289506755869307273728032035613042547647170190483809107927526192762000421279796759041665991307109094189241926628562020961754182910969947020862375190035772497360496579251724115792539972000035634956300886591626295674597389481546416007452433346303324322177172548578047376293427368796374608930963775948954761622851539875580067002622071252626719408939973266788546955553947158622860057986182378494201921650097474361533860601141117448415870739025952394622467392749729416081271654303013933806786151280044142227408531148855529271127067470802362003106153893687739862476716647840766107495929667578494920322405292792936047862147867554414468826543804583042915550265274903980804676667092078938195732874990135620682092641109719046808188978992570708712958196613685192177248244152994770842967582405890202644605921193096859023263745069328270962454417777374795078923050531964834816747045903296122692212084387156197737739131043853406831764173450216496140332695173411856673932496001859615518371128500669799224231589240281608289866802971697680207417201692304249609543586146679720885822441533424973896752456550686264263452774411501898320554834880564594388196469780421669718526623599093692403611364023061139616194395430043892140425566720653964362239561503460884946010552647875046380257802423470631741329156605726420852894588501799522611151223488356024423167288817213679494939865660072931752567596728298433454833080317352299839918562951649316946965330290217047141466991186335238627202051240859524050706226105737262672975888741134633176274649657571761807590468247707704691282084872568977183942672860519889272905762909803143999409790804251690965570610505380523468028175963868451183850809800039494231253110257707795814366275899252241693058607459619441856668208165149175790433454771648339683655728210125216872881035108992221539809908147075066147333173972620864911336036909937202287703746823123293611691536145877227158144678862295222345403539622854791079425703237475003162028128716402363042057486140673042567011171121562829515939626341369932344437252369092860094174666921144743428257970986686746800767024641468887090335337453570019098579112566749410690515398013171724993464766744487815646207123502859832365465646708424142378453948912458682565695308332116491102210739285908728175769689262021384451323100565740620290886777225966662543394381368961956261765766957899089635602748973555655780694989850866052201537344952437980151755668375934480437139655692474844331505758309649831722652576752042617184175776797588694479215470548561560059081809221664254634221064248723129669858249456541181578489299909417962756282813374371695760308682444566554894890211670300669964566474449580199991419435242294512133887189029066373585897750548359873082626116230365335023294227380790304547808476815897739946579477548484900970400660694405631693345515274766886437601192583946846747012386297613749288131450316283557483046659233617972360099783890706949781661623453048659107326475413935012416829925866602230715985997146972276239632345221825897639960428029679624235183839525805460807856086985745636570899001234745294806838799820923500656123318370727017332432135415622975578396634726495851214380306197608562381703576640187899417826423154696375244729547128948001973559558326094786326003493126629862031958457466623057784563618132492148695352154213878981946323740014140510511961324941025877702047297042669119406163059822971971187895519887132695624942690107369615438376283948764291200267039508312785098614305465706176609291254126409016150768309551426656658445331336953640300216608174012323962390503645860617410456673393220212751658521871336566846739456222409493432214902964783526839837457741444669241906283864589916545272436543441470625845319803564175568769749892860165673667468745444003456669354120765603773912458683590814922506403905817069279357516299282762539161181533555131789431022652916306428495178756072286193548188159629944213132066060012195531772219666921863780997556498444226942961816105941380944729362962185569510334734219266110140393606231955486166556594410991122817130752330457788335188871219869570205326616384111313288688639364380384745700585706853851030675984871552290549162488653936595236328932256501403091672304064281258781480630744883688310217447790128868203801651960358295093227375353120217606379501773319345175680133991231508988865291239119970252873026054838834471319402186708328227823957845122585268337489090357737644713396577230390060506825942365596575948485970427664467565011176597452560158370779788535460622124260651890197137716554242984368989158080248375969436252118806361607742459289127918009605185710756346018553829740474432977510699853651025126667994269023118134287904641450577168502240280319438146969984621642060619551148090384035784846938025645178742941615510304804596871000741048658141671957427878067223306335670329694720255276088747533013380387047528913192125320764275142916059977116885494796919795129076743281226334302570757227370129445401287755367931635577843754115156239091160997598547334704423547749779076838958696145431902804975207325699210794956944156177478525817001222944178061156466920286054389870696573739808350888163089115841320213173981547620444761920249245262672331837262245690013476077407077839961933096902778696875807077279845698091914497157340713166958495479982078190575422923153619067396175786867973396094937044039309086421125534066905486657139785081626365932968993945766529250466277948786814877552886263699962224461644737922172556703685978909724059871805052289832482534912222724209350316870860385042285269178406725620593984847449845535167777437511186259713466570766634427455726181301762392650641116172386243475775657393187643846788228352514528174258399577742776316799211403723344483079881408502194101788788626310380413074661608245512423750207485576995921005180764611280029752146185699060134595738234816747360430899705036345439309150024781569731223825413447119957563478584757672791729192677875338118119528386980723208697483273970038312202040513712891810911498344455012523134379579988125835994065640042015259612780266428019483935105833079538147400978623899676463932926421534320822885200866142639142260014567906244388479645034856802806091048423506750086990657195699119406525188014443195989374837838070133890289009023938390906522114569052889380376024770838214812090413832005685780321455374640121488028733037762878905222899153349415419548724344988128549501927060919584857829484639597790254801743221962688393761847065941426459934703664596103573305246298023281551101319718853122421524605836930587095345577225214106753804426811189977302858237104082113495083356734653578638085769232518136511246314311003287652363479038188079130219472752401225653296971926917938802333650366114196323210389077050967009417575430910185655874839840856280978464646862673254182990780392007282244051397703248640459696093413511153351884412054843475456828493147004002083508601984775818151321107633649892735787368752632146482304433617585262483382028280909742761843293341081952428300124677766238917534640629977103482075038813528338633181699814749229288164494839774701201709983702248191681390184618971458640282473707456312666290429120940661912230405680564678745758058398755631617438307664504348937715204260911375775371391668126367009940582313214937820963463917447791521511368768930080297881293662817589881547822339144429496100278515722901111939463731983238708568970602901959418620003826556109704192137021741424928726553340355617920790082497473837118052387705981553679039751629468325098098709405899400436444932745182190417050689879969067924947365827293701686130896811849282151058224798815026811485224275989303440673553107519359035994185149405838544051838976737574203599454467190408550143437758541499265921078256885200088413821871659729557043169937411965907278449767850279098879398805845121857469323088253562186982999946005277124444744990350583902051395237739749076668223840289455696460154656888794165057463887885434451148512774743574734223829179961773244847699248921908553450447887194944822455050819902307795841085725025811558675068077171511994851350385103392159612422641430373235427568162955628367980266777808792469975481117651059602435093656924378658381824909875501533916936556177228160154346510723007749888512952448604417506899247962220832234422622305797452817520428427594846148113278382254783828827263165385888554945301743113554440470518786762507990257268551780965629803607441492708847085267782755880577377073169459935458208044717674933957913701747474437347758708778156580675286706674545268340022315891618858518582084341136747357427320299646259490921061307756248201011625211560026140328643122290319171691067111901651827455347406226032714280652416524861117549270689363442976288014594624898693668397767374145644732515896522183954072422777946087430641129539093670187917104578146785183530183236032973101190496783794898000518354916567025630695843304520846140738066200875874755064294882880481626998859265827337338642637937367778173063962327506370660518131712441617664591146274603444077440291374249184842223813861742162159182125169520228768700619480227194899946349059474803243976679201514536243285097129245209455583182587129035026486493327573208543047742453259777913481723729607450377306644975403294892927055739923809765612900395510737134997284081805467631508845707869547519033806865878021800266110379120155067877654262777979756893557877057297865496195606937334431753356931926659602358335023094860125785929191983925366161202746023458636667645945459576687268339636385354327762730092049029356122984430713228148376909758557302820882007663495773403248143195176816305386724185302461852043274473258712002232765588762879407241445761522893630884262378277707400475460891385659182069935846087390349426572111834544129949117541487445433876178125463021365266743008875213525605455143646663721557516519968439899378157580136083211702492306493087672178515734087871329291118075767956276878980938845904636415800198276362570629096609367223740153489048668339210764627858131255590256668667128751431959075325394455309275268714001199533516710503552267944351897029231666498573988097358025797976651278549498659420731892229022941092272121969837889346639347554691251370939791310240465256490589120601017347921981873718304807353090684307394012917883937351309828690860146559181367603811345101815005028828962135290458183589137784503312286727547705791366169793748332724224568686001753482619315708608371555257646996099523016572640258428341819159322370787933864378475669054449438172874452872030968825517178719561938181664206745405071127566321435809186942090709604831937799335679823994836128266966144193805613352676101953392304042934664108346914739939820192185725532461777630542486507413943800734215661474472193595048076274430800012251831360095877370450132445253681300301232054181819679585936099541703639967714638328821354186454046351739874171946200947909426902557202932803431106119972075069821957370384347081866856790985189659755296879048866396705635248672295576166000722667868481317678643854794970233518802386025088745100696882496501646253207535236206341191559602856225007235256546977581677662467427737335998766452998103785195518710349991820549650724864585912805653164274437195743794872402956562364054998039210811972873707660370544451958022413978362520233227848214645347796451275708579793164266141605016390771678670505309989201564744705470637680391432726884466560939468472097227892506040972613449873348470834044285516638640910134549936518208456796939226475957422467004380956135061452894071879057491824094296933724602728512675433145437498442363040774065606570705629619799579731240513283227488529882240318421793760496187754897044675459274233617679991576200675633576095489659896073425603386099882934503874184890426056410624215093162314868303584318724089118758608224867651392296717071223231128117043905239259138787244854230661825268164274523271140613145077768643405383412701045187324738306182903005433976962577850219550703048477230603100545087382451437081488540916063155809789475065130681444026320387656004194648256699774455023838809172497811878950725080755027872289287850579879119092305703158929491654195501502750411602415048039663857488509996237002956038247733198618205446235905591246054532235045904389621367806245183209221705287209498581476159760573085236912671603563970831007460346747434705968470015705215812418555421592476445608776835644775145687698825910300677817453569279737183008609747276967645794666286323008002275958511234080951898752494008114555640507178495427141212956400941479101538813163103562433732663742789511994916117162069287843488019554852230836486731801036096967569233843137664864937428527141601294688108323640944324679378439435690671818185933659247533776054436535507837139700657198488139584552576891946655882446626207020692940480219110755256110303518616631030763305857193726791823803276904762745048146664124202755688555577111566145766726863521446491340639788796624384099773671613882229083036563375732220430404421026625450462756771235534904451994741561590459369000980433919187715376235313849539944020453077510845758308234279899545408227958508335350372835014656594615818546312160032118869093526504765381032224644157748733760226842465465678074808411770609430003571655233326496186935461930345336189618355387799050407308563290214227060881024574368870146298290304666350754507573786815970337094882173381670884497256113164520380383831799332590497518801520865842194048540740253639547681583841198982613024118209990226014690782647080475494407395310285762889193009440893493491695027240670876594707750788007966557665471595904981342099863233035170381804640573924693637522524741799612192442296938972486905870352143215590454179403365539392345848635101968510207379224118301875816885079145433317892505050896600175990124104647174340726127765695468562805756543102720605942689943779309051674011772402507765249983003999670282880762865324326726114655098686328426199459314988267832599172756342589162841632463923492756803895168018554249567461740075723960134735442302048842329922832745874254706923474587577579109532428433400858960947364788800576554315856013161874245021511702982625559420619853538880051589340950509835934575228735665355872755311244253429817580989980414576526711772788020898323727568388496810853025171774441178111080712576286755587724779184242887419150168186577065835200920197711782384660405459414466681903641219520128256094096603668331833378908814997473547394671424246745426413009109329991994948144584498019359002590246885662609592433495144129805738685768168481873072278674142165575442538798327250342062614828888386301529728030731596856743148350472762818565445023055834533125943002952791650695456749520482386578406943112610831324038823073222130427964376590192139481297715350685837785398509466898843752307963466747882713454025639925460020622627653791969179719840757744725469153183614803867338910646374926142354597659534987930816724105154490617500132716286914687402668996887144573320213118071195117063068080993124458152037222573365301150317056926421219821589758638004168328713563871890966585107749781499294176958237786586869503374736013969120036332612970629233910337369821777037289559746584496095613777764019091694474720750266518412333293034119026095549078891380221417633077291447735740945273105212144045896564128225168694246123585248385301834596195546569667707951281972915110899454293032376982411416501573633148179240557118139972644246517851599995505746324698681885551602908574380128197624008640912818542083766992016443458548804730244403311862467742949863382462836802189119049068366897840579837102096453749400191775919231289009667154808800379082203534605505932895490264740227447756675745273529269331033130006246223812851005694379640455784175660924892617502796768783510242469736816834904679169160055995185006223004954869186546664552786436065930677431707211619582531933115677502822522785275945084780959427959150096044860616489904956509637239906451242286653027583690182552429787040623061889874469925975836663425524442237068897138868575239878495820320002278051882024878366878000895233086444076715922275144192371552451650602914506378344147971134934324644778828014913622766159656887447622003615327662512253868138335971353963902405034233645796409761221119778743533163868927819527233733075621783844274315520364174254857002275084009747174321143529005251442278774245151091971885755324617000853258692002072657951725942792510150085650081795220838723239541403477269028168243062456539481566709816206221490426914819783330653154387325457320306883605795501520777881539535237352918268120567149874636226450000011150827470887612811042877330113136143805688580255528627681900938874776281969378998751921033548375443173570009166030953085557368184660199529343381701221660571079460186749917175561995379597206944611530631952993618606989035460219390359565225698253996996777567539779610063395525056941352125490698180947829506452269395664590349631403933145832826044445490387773331908864121641169794064477282233929122088713849812873743099008776552319812270385775796152448857555774855749266919598461151400644710630222105126960495759675854236622322209980814561931738009832608797208365631772162507762773165820053638111388434846493105111446677690601405163523479979150515265980691511384539474786918262966526035337683383091531885447660225253083402061245867987946231397554384302301050621061632505939044044787583118566298348628316572532813443934291405338007506795298985737139758064995779962626685659619987512137176448583362231460850369443256153843679996722726803656995994942397056722642015397277420653911809044037748073788809256298466273897583756424980808216621123765640688262119431538070055440571600145652364994840783790549476871218662760991844353581423022440536335928669673990661235869891526306177112262708039130563054834654040888110253167196080158339805897853656619946560562993541649686669062207357368018331405576751808862265008455459713401854182239448089932961510786667036452555160149597301281972158007325673350278545724896278016089217546900017437492520855793547987466019922743155920616907379527240909121898582477388596259243573065612964831219190060415368906050770735664715554407570718006457028120355928522533602871935726636077356899127023901122629817235728401204171361473701663525355659141219695416760067003507280805961174559983412930749792414383286336554231231486624082338438790897011233157490536460355638431765727151123017089875498266644918308992644337422665667461895100721652192613639292153656114517100251357723185558313222340839394671627494141997234047525028160034091055193615361530957963586059031966860553444137098060867294124531987319037281842753363744365495898289470507475818711599948770408196156855912635699171888153362456629811198357862608034735790538169335841110426572944507490982733516126903784927525529638536126641204927317651498288178721533305569313582278977494663119719021051352072078545006474930300973551589609212085324657148785507172108439694884376042037068364506467653597045942062257316835932648374229412523609425745186513260350714338608564097431722991835022098113859293083353346294767811385729304194899641130705400384984568346786088249391045359389560537050148750268079469890759837794711756783157230075626206111461940673951078197662164258743416951348643184569157453030384388508235404396528143808751595416623184374181893754222560214844269983899645861536914232764507619221710698273492652709006119107723485176571632368239106482029250774172659263496482251390935989972807544836526205315947904569347869639252131236716079796551201209016133788865830306111753845064343412978020234416805033651356802160657652085811761310703893031259920773228658589231180539686257077904326588090604314993309169755684733759089574436326221223407967793064390177728328711585267068756164408286745597901272317851628609722731346975398178382514794082891733673571628608421495231685700949770446996426122112966749875728754335424523692118827135721253410562551615298426876726071999757488558788529193131950017769941554482282956020018989559410736765549036049156806139040476147108428442641385296267178139233868447014900772737183016059560135483442307661406544314705170612760583897054188838531135424161871653086798589692591352794196201023135181846618569269525965611265928127487386496800344047204778486102483148995351605949237179205451715707894361867044129999661251489098956984626903269440500362154847259427472749011094947361459385445365104800337113249565051775576259223755540840518350223400638758031036113206727729212219420642068506475633055170508309915216908925627330301173290742481214975115406676411258962413549246375692099715864579840682078851962391721781536802818793790968537356323162861961768408945419938328834015192019833850608702636979303120710892283543002001321612132045404660970508914476534639597079049474257113501274149004102497050574023546753227687960111087608733786984440429296836073107427077677945136157205027252260773914168965918961199032705746686389479282285745048278184451228878582693154030745698396985194773888905756267285696119420056914025634493446452299867568453447665626333495101757571451505225449364583676917892933068550156283765168268269412007866002018665823030941761211717744153097307635814429804255205515093580992056734749612944985195272976699803577920857671863139511665102570136289826026260265386084053613406935297082260459664695571431144806692194205583912649319404037981451276392009883040762213121460657202631248505659306470738689467123009684897626538956931272543787099186375728462644335006040646007401579241246869659395762009298511305375568106592531549485847904236253530115483780659558108624010919341935486490594659206552262481218697197488340089998053773913805138982186001128450991969350774970888169696844964430931998354705058895321796469273014140758095386840071271620462716839266994890618467512488212410444966429573951098375166138215682316313292664071821094200730934591845287004351538199638543707690963359742651873001185122148942063873254038515250743374899748316913689879351640686387335453135844645423511831383004900869255859177852828645360727848503705930291097651732154909056198963624651758485437257166342311998656515763390970418585961118883060718355621173182540423731955551692127431418556495318030196591597423909917817740435042524400462509951615092130113060252813599458845174345049952684230861960409704861631356259192895277338765500408579167617174503485045220705174828639668611089965681519348204071269845866610240503091322734694735343785684470669397105605623389852124170062774682278101873684674679070738065325379910620180668197795518032446435406114954006916485190978681907458060497896726460354852491531967416647452070290907989254893824595867417463156653059146978751677959386689940111711222268638363174403841408224856639275727259112832269537262216042066343008949192361679803702188550850906488548720424972810905708258771557919236454523778240495893920266407544062894386413626099834130559782905212614661708557751846591687912545888872439335567359294331934398860101787174134415187543230272752339232887053589799024149903525868966199914625257912825809307785210591996944155416082697735797208572665506903186687758957428069415673757031472871947800151530810363164506420130943412923501652773219236989609580118358540648994649190209820924648807260730888110478784615961343586128774838391498115183472124297238041005421803909983341737386773962119141262578002714344955304116311636742242767145116860023617921912325478901340386301494623118198860327537195223492433884769893914575748871508977077553631551537007684830788252858910765289401916278746298969475357995139221199809042015084294322535239681439614578664226464207971878921632725975614288605017233329596860656615944757016434483763628663775996608272257884107920191547015877461509739396224228850283076423543733607828657543978181024873336214652340921465600827206919154407109008952242188227977527091054655378195375387173476978727061040909248668376943404408483066919521908630533517593153653083876951265353464270009231205754672556256927726230826649719431393404637302835484479954259148219010226475113861666512459746408890606314312804441705833737459981787072306605152568758048740141407818683756885311087280923645903678891138105130958980033171260219060019722055147239273002990266201423765407823042303029896736750280345368031881630264918288181713728838895632291116040360778239831155186180219739280082444772351392851781042693723953840965622841677178617879531803877489436041267744880542354539828498766363810299001059971593640515579830682743058478079466789753278776557833195956396460362220942956992493535840276449955934350385184130012912683628052790104815838744616113294323745746807308128018043851788743818060436023959829230547540965583770022384046951789625692899605994187974357573487893780225640773724200399674209382356491111971902437033737727424447555546744561278520099542847757023133110997129284903226039911227456422272498184321167340749575993185404515149626163140746536667206825176959096368334990630439200782145333113472013150504196909933317196173434128089945425327920433138118713623317763027324863350099308759851749104749326036070679941971243465662904579720607762219645513205794519759197407917124902992569782645283833333976082957817627564306827062183116417814950354216521821932233978913082950079300121947553520791917425424690168726999789023801968502845544844152984194687096093885024095016851952759486344317816278000871140119612207736458463276398776463120422392229449989354090289205043288667716338908356724359951282971403610759035568951929222673305540214625557390131018568976189290618018075449130480455413554221037773171654070471517171303775241950921542128342622018277450230662523817879449484119950389536732214813929286494389862827814947710679879850304344764887620483194625259005613283214560255184208983574626634802716134094533164982822503233748912562470270044708938850545174696815613351187718581364199054737582272405596024851018177623356672040308497363834298418432585610891029896184861406986959049153256948053973223551080866777372126698627782950359240981178265712037757848995864641704970081548991494077868824991540029326274874561200121518851366642009312779506791942838287695470680852880704479450766932825178648509188175208960776077220621884565299648150386887049207052683893810948421090628005905513101748036337725958599062469912183525115194353436621205647294552169842528695992236782079966029585726262905964944391421639963295948451656497590285552343295866157987996060010224102127592045477951314210739721418634466411894083309622404918742273668388630138183220931303024488869299366072659103512207690875782184276527830754134563739074709635517959776058660765759570964152472099062334548839521438082631904595759528563284297879811617247921883649057926787375438288382416897386850202823584478447998025944906115655228816380514936439957060963612825039240874636775753631326306149699713114018500426249140852535242261203544076121866485885283923892977554988467236162832117446499097078813705169132912193108405091586110186922127338833631899337372154113789147376146152337690238212402486449019263979026390980557485285146958234589972052831072063045849407867183650024623328776424482999711884101041103427314179775638552399638157559026844000067522450252415056497463405683338499864174110706729727830345687696443816442848342695091579429438623495139850523767414268752311677308508347089087960431082395057626376785536282473429871972845123112107275836287772312145792025176698278896005005623692460864607764347643103934719624929283703009844457057739594408495683987548197792011503610742919382538006767651429504380643544643039464036803301227136334911163875217123015487914408898197560453649215147390576560858710515639509479412693859234964483642828685125145721961644099356560274597612372717339154553694236275428829468715754004326952586725970493182533610638850472819824421869143463579716084153498770963045423445069387237861614196079214021145204482673277138166482593209518607418099195976109692361669023851807730667533670302079048590721774536155296577052974253333290028630536752350203259337037992913648024961975049470055183907774469926514591475617826713613032066516692707857634776084980315666930694556119328910702836338817790645288523575145459956895128223125627166935574088954278520340540089530356102377958151911461927326633020819585081073510262619372077083637537700339287078947374101807447987596093932990222450252085826860202523630217683728562790590021191315485575674090067230460548569218335456575655185307785268440957700454320496324649039886192538453949297612439775794692715766790988049151435380716601835985669827852379012285039713586206301558872692235304960067464890444515684918522646629256708750714534959724621527916733444366524894968358365492182803054444536105815185209161012596416047869769501177083068965900603107144869627836242272498593831244323179175729962509086157732154900540423122058497354183082163163381128290297323664617818713178291941755597801475028844675072093417002763451658965443687282134438771114721691398803134737629176488223109706331853950386850132838845641561250584686300832481330791031643763273797413961968955827544696489450204594066713923184770227567777989560560548262443191010467055155951340805629587541321052388023266079483004538751642526313845132470894275844319828733696838198197655891836525370612158138601917862021954238345915699906585700208859377807627554367589928136916298782331216586656328262120304953429981352517159301139907536663370669400354928636077863584221170014305089451230210504058668679088523132258146190210812911270005282746547197775966855765606421460360416495083636694608042680353518512345904775108615999431136136162820680301049237046334543473813327559480151398159994633698109009111607423610367587628356829680091581094449809462353664184400816083102444044386285699046333961079690541628579921055165863379368042640534436868309143910322025120669340104772684837366975073214774183314744938501484721941200228015310349296525162903514410290961837998468597178242351009930756916592689616609533533013112177380863358263810838524640609624848526561336039546229254646642528401331614997334794072567094517837847426171210780571872783752517161063526489368264158689427922484548743551042881910543291332061580206745385295549408830102310523847166612533711599445969695974790477602643712032502386969960130387265517077970716579087701003049373391114061892512194405110823894749804843773094797688674965274094886437842488828712814703297212969154549359453560059632794282264017589121302858868328460985151764011711854750507830243573575263260072264326797845363289072782582452358681551837536051526501894600511253511607939882226648347428591598650127907581921193764400037430837431891724951532298867566060001524930571716447421880918886656421100061254293209007916317760115722542420050320067981447544564423582136045383541342673193692487045720510744772552263288752797007200933252774290409712114744660304759142988464639574066795329518905967400074799234317202827671779180152314510959488894134610243218905358308920561847380913628011744229108446084230881642767430333141018112339032747218944548039401471667170498410495566417672195261293007153302238853111218664372913459437138463976511749139861565868240316086736850566041340822166617498017035020843604463972371306848973108642993328655635045500768915990342531930258664627800235290505594312536720698191941885028458914836502557084999720396013447850794797934413716066477377515353258518135130348575893761435960339535675800985641529248606320842772117906449909495657147091333859823358555990056470240182131218695431188326270139350509769272014405029980354588546779567624784402579870526592051110300681964166996945749997761220342204426393030100891575668975930030401704076977694221508506440199313485212553579216912344242067837540376925043074588423724162207077265183346509014871415703483987054275572486749658614198397874042150228427927355154684541634547465058635710369763964419642067222642366426036015500506087394474664032375539229867573163538147781088950643968950736970646842976981057226843927053311087045895508177489477081082400540628842730180448170823306356755845959160252337107073282216398187661367251076257724424572346390287756808423811367129310006694718015203781993529270495844980096843233213868668854878908823672592883397240438539543542706289607075190275897491854667471576445419684925276880053683307589409590659578964396015996849051637599210372159940057267643936082312488982813690954583520221731473735379990368743883269820239574742871184668579465453248836611899407113020866220988813988779829939219927358095370323676206984691814712061846618954227476450088816502435044961828881527635924704706862421804301839171651491710656980916226980579048100240147081871589770609292359500105340011517001705652079443589553684496714068884989777374582123658268059923585048336682626591202992144874541823769815998769447276383144790650193321631910369530093377871824813320231727675694736532335415966808872540375576457937974752144913737252988106981965396402826939424512996240699509273486191492000485685991447677590916195787029335848741352095661850014592890144561030948914375119024514374443984737945406190251354505480346400458351097815898117263356348588249240035573333180362068819494723440473504385736024440001631465715523078071554653553918813732015202791589536085945634324320092532443830028756527889833319773837988597084574832193228462666570394331261590133480521927931060110854277587506976714589724579108724996285455968155862647569067870064477070629970371022834283721204336013459394014357563077211217709718216603870650149684561417817203031235356443692884050010839090324495008320418896941954188995440089234105925838168976011308781944480224908039994696103302462774170777480969851045226356061080088649457125696816932494124171919021915704799395827949234536653908719839505170512903297952219091216201685676756771367751461567744679262802939184215408794427087210623500350516568511875511563704208744604168542635199735180784902521826238363175484427165894492289914209086936169728591106499510468275476414694479806177135575206531674579771314706215059268968927893784981997362340673132499984346444731039480680768461028116631586197355372427430167572221911582228484241007698553283651148099423354088449095623632058006254208236766549276270825950206157716770494304774636192993426774683124667788832917962611473944154646029453890250290914398250996515579193448520000269327754316534149835673991844886661593758402961790627207145360297475654408755772103645779301875824170708019378316258702718425337731478942652241520919593017704229617354235707607537414432113250573508552998972855673532205910354252769347586576886039683970548892771133283903978382257060846497663074233683666494201207301193000740789133914073042955270292549343084172441337798211858481013500322121017544099704206475586087019159133692108377615503094658159448478442286923953090306291332158074991786669537825599995432242618367891308660338208501168541004067615231389748166819931244772814280697652985877328182892237844813549829748267296961162964060523692921534361257074511432159742268753839083300365988522173549017936903887771586233361894527082172910308403978896588676203331037286600193662942699494819232949860694192526024748793772881511600148099547619987158427788934247619874565037250708324096286973166786255729630129493049271467173432991603786923224576880553710605112847633182042751008664579078403009200952915641679699926990655706970116237101864705060357425952722703128578039785834239742744813421843659305269927590546058145300688491644283761454462264326800194285669312417759941407475445554243113524632833580160259275567891587889654326692432980666617584553337169748733368414045791446956422125588259729847296659081084407885767239901282369616993531924623653994799623286800961983000138439731370500951255654790140866985038228616040265933958269169453375682322635126399900647396849650286621120120318031393496360755256475075855862182901024135772091372111138950512728468094858061262902995984998079777653307475350932048114893583349476207353920298922591621321880192333029253334118286022806121992927058125811135693530609455666646946143588468938112093732283919378708353083637040086618393605596177163210770258695238133760456222370885277973188596652413158340538252683301925430794313692418321569221315791220991823928862422739778743899703229486678694376355326388122875796642268586861452078905220163672677865127335260807336411421308611186912446229900702414111609905620358284365338462243742153240243772642171766505053947593635877377548650633147296089788438793400536877440711591943318020125881092157368096619342157008406589164553925318063977538470287482819540090537413451382085929912705202218529332758022326211125887432183479566665639761595120445368736498349431541350239834104390422462100281227488398928564016984668585964344300862951150708596708684869978321583517280317178328065702808198801718733177295037039785626692952733163271771865941234950897562640909810264435547807021978774716977721210044274093563306958302181094378026168536169029181329248637291284018000191978388826514925928254049241317381232331662344227949117530277207675452467437785102071643731416681146424890154996002780100416995725834420183269706519257307758489089620999784229681933522952855330336600928892060547716849782276656079074962019198622191365790968460337258556473366665727737934655842661944425968027559851767048317267733824306811820609312978129615516676985327349136944287895238825344748093734621935293986243929304040388401788721680261157653581638512696081570966985617697826952371134132407471877250740541801218474005905326874506335957679307897014474877672686462651494705307647574373599645723154432384475088569573423269388057922466497043156795627209952161827125683935226348985056610660786607587262380997151413516222376812731138220728087846160430727298784997553912318571493241506191670522081085491513654218468929497258576767051320593498777187206990645509721962870874668094090504549446833441452774244412657882400162890061736479009862874522155908704527674957206062546926660864710272420382073866788593925811987223630747824182146814675175198463423284524618167589762709330857432379154686276392914635140432473774465101338161849568386839120971765748203995268687824175056330258907914383711667139492421472237165186985985875961418314807174831225960882790609949682846194988100721680032544447754888100133856597056387508685312887556958994632629708116389969961951532653483879831036712438849074831809674684600623623125570503895464939454632923199119026557627855618422785839235394129546149202090112322762033552666177220296460696572759755003064129271213830394584830706996596269536237378267173527180451459349064211334324725091408424653086413282206309822212049439636133663437983861317182102485089074847365705062270328481301846338679922777261278377849716540174986440078531497902871786323554941949893492672183000363758567096057947962968644187740761165159247690720042795502450205426223064793460733229653277207563739142624518736413831449693061029927784870682668506834885855587162788357256963186171922664208555348109512247616191036992233689617615015421146011903635589672013543834947037820863579939072252677557451694984694361513937368683207764467649305051504879345987626121499288481357491864242383926975440305942614515905309220879889768700628712309614713070071712707115529157190366469931328466278261697599763310650563031333732123817821508771672785783053412122456643222160790798642949206875776825623405294250675954821056008186572735190172913516453002561093242763862487101678245158994820981549074162817121451029052301261003480990614991513553334240498607041108368770670204982092403750148564243438519863557736747909582366821428635040105605244934896044048576032664285525861725085388184248139005687040185125962403161851898350892692021008621680274000019564825228935808471869437827981647470528080880873120961165130117316121459996867503233101807031480303702569951930484421466846820474517758863688954450338926175100553559349062044685288597499023852868358624373432658985182720873126284982604904715011616377931434345803238733118309932799101449811597803043822908100852427546843394658733866280774173871297990914844486635803849432655404233973423000164874126147815729369288903209726804254255174733633280145021796256439883127689345496685685753375572935659717174325439365004202727482546224388857937503729029054222188554819322888056876632637281783766057499015397179126413209922838592554427080433828967445349482810427220651300498368718446965277553905389068809650855593089960178893377920721353356438128027041218577081683681715692987368659017763832040705591844618382614027157091321881210749706563290842185478670951756899610702999906950838345046772447280422334638027938231129870177023086516481983279118190718818021057182731120942722962218851006051901559329817108537000999703741048252733698516251357093212195586214530141353545364870971877920921389517880600392165285124924156803998431540170832612570456994604556964586000408962527048001825333055392519792254951754948562862262057805699744513986471283899193789642435447290477575716929804041638020169282613002728289180982948393753166713459348084671519474619395514061960610908193993499219657414955091334268125256653899367946654011957801577557295860275070496438709190465246877971974475505463462484058642661036990768517485342786398016513444066302524141051552371719464415969067092655376601885030611440728492179125056417352004173133146074767179025804880961346110053945780122874019006737866005963650397950137165844977891718604419322709667829613708059444654190527598139273613566671192823795801682305359440986087453628647890343787969746953253048432541188476194570252432996224287165928183921917419224256323410390225550484690905325236596505246123410123251200347055914413435729705684766477360764086333448358122285736860254789989607731977456999402566628349135637948204968811009656973664859562266633725864442415346803188525836820946373851753426916975932653780518941503787167932771787180955002602518569149442718308036578366786134139289775573624381899659444099775945851444342416103074764403369634859122128348524776853515358539761740684075204191267075247106923279374770288238825094332849657905667224885614405682892726459153437045204480213528853895499410964180865125195039287945332011548460954579421358842777064652460616316142452267673397301773143619964584904101054438629824554231087531515779539872491036296304073107937476402838592985399810228493675843607319198292514615622586490320313914509963930466608661180619663109391343895592468400139180010449183135793701647815995215313886110044721075655332870407674795573927333767660888680622794938900085414811437050116761266560951862296139747519470579145880481259370826949702905682868341396848741812269771550736598107766310103370842240678912364085847262756125510060974124433841744252221388264508962834351201433639168014875310988228359004355319504544944900568602458181792694513412199129662847482534916451916663077263036358878870119853268133590284521532848304366187796622481692713328120810302737152673022916277018945301490842267757501172434213687720449107363180871513857837477789166112888756885898134109437032012510341423461975287045014401331353713773977575752522286385144138122339255898213460337328537409156181844005648152656090042531757932322310386329027435791768365951875722177112651729329316954615039138550160575548064142735968903206322582786783054872365251924360218968211119060754366336488122230430223191416809630377900424331867272161060234537688949139854376837013011776268880375592819524824648002085153550092709144625611918424060105924228056362158627141983336031593726776482294025460551430151125303468497610043136613917742919744594460528206323480775660158694648984843815109492264532767057624692999338723489777167983949582129596769886680147570783276084585080640839473885622299119387780926042906678034348058354762290988205808260045044299543319191712897201091479137926251097122798068159399322694743363295967678641687787943588492854920813075675386247034843450808642312197518424347421198685175282354265268966303719199918442173190175439094150028702201725787895647271868199920803566167227153179874213433659278574514062296121568607959062679100165614357906118716661377309954732603457268341021769020747581461857475771953908281691389827207472747518797732182626370165230281383054520170988268727040121182657196420851990362455016858356129385009756492310431176997169204251947317535357347616010681537161890641462073650279990139130440108641952248439642209470995012068627187596859515068776870746658234763329656604268194715194151287426919072444935520177036177894741986240519702112475547687576446735049004386054819456687226465083495203715099643828659909666796130234448459676929809366888774835352344521908461642210298937333532852596052452156544536931051909058181737638921192688888759220338737378143070804198061682111291881948524271090397122510219149893617859924665907969874439107164908931172882823792198309516010467582028367128373065169304232833573224907556928721433507909076425265210116923354840424312627661958786893576818637451599490619491634288440008492564023925825499152631638185529831329659408715171030474387313453389745075845836591264523068885106587885645120558393340000109207661586672825689858247144351313096033167954371931680569067326851229148717577104363049965331342420452614253790867153976496931532007857839225180330247693520587722471072489860105293552149879132697325696027430421387784477522037062769888554292121777777380861321660919220077018440119363732318763750609766816084846078246096755250810239762479087355324354454207113747967080898631130914536520247697168391071819372078375448269745004952288175308853525686020811195839859971285194163600305805956368379464218813212954037105575342451470139645697268157345421204172550257491466477630170127624386059173631202149934351272394722659596602915192398627368756052165137573875771749546705693423873593225883331829260709387341401882906766670414685744365644362195542053555170472490505658414208083936005948517067241675503996226534949320721680081926532795349755807040850810913712464208196470693676989581586085981774662558844911485373988557517264979075910131183470426083697718319734229421445187820899950177810632728772644644372697782838054033822615068112722335333060142114837943373344057752873998879479093418449406993716158510440962937219273152879906298710638499314945535728546987143951953658565877367095745765256292041476444102831591432062699480349151090019456549733536183572434078403246956700458603271655472867557773999983364984705115543622421317275429652857623033164820982277953076441510427625660643396062818798504596394231816001847418049237594050860899423312840873105941703363309897743838150480773726633319575209856005472734218119075929503942003671220327570070532666320936702132122367854556560456224273613286338105352203765450749675771311198272015841062445733418349603252600458950430848422594965537411855706604645553939216053990020486205202481972180467117235807525224074068779958852630883909513577120905338850324365471861992722367104656795059746655659153403495049874878918593119498379539624727786192215775201092960791386794258454993938855612022447030668343279656231680185590642958031455672353385313781690267827395245679675511051720556144702094148763163875714721476771637044776906378512763017308691909564891908257750719899622463936443939664174177370350186678582577440364195749116250837605442358100407965247697704162321021211277795403608860096759333263339644681639741122681058502997460768455508754330842350068881901712744355819485248574306770093069322661063669102412743790217023725182883917379271389535665507923858029507830969319974888994218198123969198565945601790727275056482850887876969732719419333051625485934031812593500800311401721751494907037182141367044630094574293323054055591918508762861748111863596086603864660720244983129550431321742691370185664142177986842466518301444387714547478497869978900417395539617907851322054052921179996828853811318200809150129294359008011999211254656453062457787100825803690209731695626502561394190854002432401544001672761678931309751916925112070649622259606742385455072280766629111183829469014544046747460243165472786152405763529059365710968845300577996758483784679456749037918792690031073434386089573052123386577110303039417485310352286166692533965088304507584184236845727014170654006708462018736742052624587687820473517277145008415454178695711898668814167938211955263304963896420709435712180890367114191632300661294050170931114046024879592823942167396374493330006465476382023254696884427961758023624529033260243544813338551145676726289069482980965201687843352288659283440044215124968823359341176038650783674893456714033646923780889672662948234520069842409962961814920459529198877229457384870414851909351353271386523491799695641403352354608318963514786924445656914048656184223205430655324620654632926425121366768721136928965614323772602496003134800685968624446663172106641791271634494798247322944324141150049315848472235490458125168991266720051849887005318460344875442625689816480141551604604169366816622272662092179858733781359699242438331097554350971074973928631189869348669761951895888941388679380226634352329950666190111784889809069424247696730536631866210252180462422753839308537597134963065193526016110065228524787431566619103935980570709972939955979881421126856131090427123568336975789174506636274485921903847188640808021332107507858042418156695300581495258146016335233479384951364607042614132182066993344552975423161968189613443776857957847270581479253568415582799353423622343117655503272603423168398389941317614980816301314620780627820948956640138564559396546164462641206579967978195473142678337920277440511419211725315118067852012944452988257590992893151729138003758834060670138530884298910366764212126805595464528773097618700550740774815906953112926994727667542316426526345419551543739987471078850997385339996524945400572249057767209789857486266030629728450810747703902005150049689767804438362907286325670559262432761073167887328244953084169170327768327958441166052052473621140104855685770517574454104203459926682116191701989246060606127795167966493177284639039437655650862332686137237801738247163269021893870594364527784236256721720995927315538852284161586038915656810197640013264442699332784992664155374683538006288818486804458736971094363380704966852758050177330226424391576106239361364936251152179006266205200375551350984472910037007097375750715750636965515328621454455865832985080820654351249610037400296230755940189657823963703125787003770326319616766337371373157844489241162771559235126086528537005736925511083503734490602780293574925534459554688440203044455103087078602069982186861652087796926720993247211709449598185094769334372896362624058453030941454679543821510344970931678774536076856557913093179779108712945118395979245662975679941338408317069737700648993389591761357209339329230382628775472029406074417827035494775095452843614737115030344106749625860903352475456373685899274409932113828331151777384211237452349321811888258500589109797196444279824982376648158739219734874159131562113209746901143403484557949129851378316468270810396306162158381876436880255250864848043114674314011229616526129420027700069250410612376070079319073064433813893527772716328244575516780829531221125522086064042345014708266271310580980266162808956286795571300729370694415653494891641731604259408646591955756838529716994512677715388606820593632854240750895678464158242743820497018346035318607215888245187101832789933778356747254702945913528845506483214661571344241474473130385486631139251956005629453999794641068133454434955634996909411964341140727545739099403083302665063781966846280880497569939811549123655326198044249684704971475689335554445076224104747514580524832562438894965827473111718428631903077681332575461255115925687348288162699131212010050576363155121927015230204441257264973087752438069279605207229367906361011742128566504934889856004203617753842531203228777467790658333804895325447678627378887957426660206235073430196539138227818881020313332575242846787571966725757217091700118423260472255335226368119183234676532905736706011415053883553540717702475299799437661900553218900618590680824901408812831502287877599263980579366252290884119651291737604643587773703342509704492001235452595579478006507840900805578219523497997547044122646057376853940712083609881466431345165455857043647431729658543448972510630411969266068624572441016633029883971920280454739982377759382209475177305074810427025613022300698172031705257162646055004172924854662027381507385905526918129112043254283395686175366148818921246634319074954277050748377322451516664252363585585119729707134823081196928048356397874259583620915186937629385364180673072228252705713770849364452654230360816120607834990515559805754996798587204743188253560097160644482481819030837954615168184444544526851292332221950455439974981264077048727191085458025206796575909700921318167422202779032839070628183210683423091529180822184399845462915702457075731664890075600963171187572918243129669131260455315905820314453767190421148904995747636116375504916033472748732539898310724891936393060400572529888328514211071749149426759718666534438867696048382606599844214646235769146134642081536047334802155580988507256881910699751944244622997641875309620727267843600524385463247674108657397252151202587383388223156800279252502166446805914858194334380330600202379819902112169413305762500116304397525467232629524716507963802677192536472113216848160250971550423107235123675378976160526892168236155810934369454594898069401666606218782684504726990268017548268784236554513613231807647389959363388972989741346862454749350892701369196050990419458190747007113748505468068885507333388802006828151378973806751220510601068988106457224587289306182046233439645269029525679769441674147817558695359614109472212974944221576219092828242214943051569130394034599250479336074055483482550358818786107512161331536594407481965300307101161522585810619860693864837572352971555711473390677425371831567205627900681280982977013202182051769308726238915617880545382494275441649477812972238849949854909904000058290653017800250060573012419584044601049046295745350857662652681649494493284132208653469762921765699392302453920582814493778960652751480365990202371251502507122353985409074859159494333683981996547859471862566183293259934730021615263355254100284627213667961044992178443906100881016971993372751063260892443862486851069380271701028194352469183909370325122129898029544957403001874933493019737253729610945873026921110414017614089247139080501444222382906206073275883306483563680048244899243687511779575565595260000926416745246629947871006992300956208008803380475005441242002381281872034025713238108985701783554153734385441363046538174871173526305529221539875079167724559218626415648213700376874737716366289704130392753533167134345638833561339749104722395427609206526406524562175860200194972901361059504537281977530347553429815365209817031564799524231601047637790961279810979523790864713066607850008544255369935895533010806565879942382364015883677280741895233949928878555090414423233496298321453166864748622041188111782114891073757555873488042889930458523804231568954945962416988716705741079973048027594299981890104521188879293965566306690439153855231921515312527763637919626160753304339989167483751320228149689629356784852183554679058933794981844272995537982730801597658107822471963080690616533355868808237775818041594501387630667485568462803530158772409142940177087338086358582105597429468010643791722582952282446200498873992235822131653964088575371847277636672068963076878370411242137925537581829666628651847497125468096508972747582321598456331444751685518318885677882761253698743097617138705972724856763315095730529656374309946368050786323771871917198955848459345135944146774572868538046308213093141736499019441735711454624717513651660540894793787148193188259684620328177500097915571044693022572867361692600976855836423625480093546314528266719238534278629071577614335679293405840788806508934237058485967900170421414484290979563080602574756514360397757840497054645166008678264494341322079199726658653223702858235433537846263354442779135168730000365443775237036733602354392977863740381909305600132772945036760383857572602136471250298229478349305887735475602389632181107669699430565173261219998236285937180994170066268979478977046992387114985885833938131721562647414346912006932189198207548142754800315066913690370592158460503635334297285223093468798459628375995635325372419603009828233246987740576592837335698191258465338450970761565247772059119921618293009072193212296437089409419529342580779929369005343013852807308064812120860234430125651879153778815286330315096728984320718585730685960682118824299085019406688996427055804630472618514367645525626456145935742135601942210557587039585145407582720476171926587667657522605163106306399673719618827746742979600811219978418762921689857075797363710167156958906156334395794387672960919764559843341316584869080296714301213958452170843946932148937053052484253120726429027780774072093395379088718612902752623264457224600166086769558155914492718554135174943553429621896313951369114517073210401104625610529754796776904724752018735369278289050982167492063785439151820808109990883376299341289865057091426571160124634468691825049527297714843057629763288054381717612158981706901283380530403769009266231025135571498534548824679538180559686112532008668124318408133395249602099974463785519506920518902857220521970549102597663420059390659656337368782056897535045926539316216496046525064646129310780411759409903133324961653806530160237431634652215267453722458100680530603352598220766034689868797939838902757595226202341097198752517166649643704467788564736334476369969742636675161848641925289236771857770427089303492155243513593658808897818927862322806690962098436657076093336134130311596686274987052454577017323243700071207682587053507500391215045362066255809003455913975848589732060103216745737838327661813133443556441293853779701710374180602213639367751693080816107278085849821150654825894360831300017777232015638517781026015685729743576078723499891667386347517634269294144824109662999095921831538492679128777900780030017748493116419569021102358998008331621073911814866054376894721555787152676144887780864222786339417235076365115280812068777412712048526978934832426110500933030014183135106904279372894099788676859990921364154795747044888369487829838591168457506482443988469395411729671975348835887105587862205516697606928206852193339070327953252546890617664639926294975674686809068772257874210872581490904962867154221395781732906665012085561378902782525988130348863063155771905686527020641820908097336244048415584529082504932019481687487194229651120521817904963171199816640248972366426080398944740835800083532376659956628932641897011521897626369791381790877896978205058906742237031637876376611608725582723908984258905967418306965518042803801360636820462828568956368993868261217978736532401616009229047412275194482796657859692933513442035687618718028013395358144460058876293925394706087001537375138106777880367063346332044882481809485909420089149682140085204407951496032961892506279457521479865640083358965017477797747941410015027743633970273951419584643349953348275540573835271425405589327108495042313200979941537685377945721579821694940958431215172435175422757953566591962087114067354233550866032968736735746596389263828722030671921682226005321818726541454714924974054817839409014576091473511390476144230770114882949188519212511412538461224158333982823926788576379427901976505218893503867854438413790907232724044512044562848853800026848843664261647866971580034733168464607155034362182166301474236806684644106506042818356108392773777459327354638190663445297747136228077493933376938805651220870375087176926996326421072053191692903029520564171168561575415412244992032601433402690186459404016264550893065385028017545908663896819575250522509604425666757273800780320047938982037933784225300661263833472613447910688776721047866065709081448154561539693608100694904053564116784532136720575247351354911859972774665547135482794366661889059997437904450612523901136173767242882280552547246181087380916448770162418486746553945728335014996670381893191049929961878388293164598969904375507731627847717174889130291900832002689820178436656927345586378968533162194822128489080431106167755105407593653947977757470489500636357837460332323123460843628231752527489392747626388861171200188558132627835042464664732744441921339152844294046045932511271884722301943766049684354971148747732082146274832678211779320704997160106896441531537165004015110164847558151022392769850503737253714561882406181508244644737934595736346361357942199210707137104577467920075527017618160161057955193310603350594176604728414804820516372955833486935518039781639304636334009665098028805244671078169910492694195084387118648752611506673809016724844950249321969966360539052764178259557790536485475013058055831609780258710091870744171485566025962747571687145762325922421548704328451687746492230953792069648831217851686476648648529429068290158406987037316971500840163496719700626113317069697004560354728651666010025687545694629884936598216657357267488349790170848595057482458061011262199508991740876780237039952306525194381272686473529170071117736761141476871367331287350307418275885991751461801965549413737220590963919568415782381424716878747680191747628333593020667021408705932487042338967299332808692141341013651755964613694072146394211051825901473438840539548613072104409290764237585783195580357558474112447921406113075500206480652578823979526108635955187489267206756370514310780378921436497743878577877165221449795135570974036224179414472836674186268360200844211930242010673760223855795559007618646040769350831507047920256714062566465274274459289703407758121506383723962155068855287051645345341800307280710399917292821198405295591357762776493410975090724681106106980476984950395057746815174835200435221088107824524584852338911082324215734208943060055310936715564804621410495904471128581503246904557223391879338897069841849028588453982806688711463309260770896848985674756777098199454930793008559998205033769962827096939531541775185435809871963025170421631948353586205594283525200294874824280849896267527986784139029802167960801701234708114937782382265522460598931262992059212917488953138747457289991709706528991465274036789919578598589874312656540044562965242865857665762655477450070432163780434689646798124337791446858100643825932676223481764898186934548959011115221757584820999396559362075187780999371467664449628084049202528975202681841188510608191064244928562345121449525813110804879701980692138872692330999161931198824566055986257033366372572236622992233582381320515901253557001595375828265514090535933524950403910697088710928654036371092438382440105540882211376326888154169680931455920470494127133112623515217708352158672754519668913090189485490135172603976837881397235289935040617551405616098267294542399902582320017926481611679552584160599894894649200835931329382594460281417875265535873589092671109676034590377768179173132867901941999140896056839145260826633324102992583222277921698554337442427344045377724082576934657533690645819937390091041187358203960929510534180953034201684011851580988788549415685001318526496008213377158961840384988693578798095800072009471819863579984027716221973274984996644822517893795343670308902396567168669426139760125446253024416161596159691451536624689163528136551534223387310224674832465078764539274643928365190668557252526014633571936165754200218242461384280336483415615284365133134201784796266136854880354975131643091167784325059509025830183118683544498744180448971056165492709610722833720901912540472898194787654783780572287268902123754405601792923919267601176521037279597258382890656666442092607582933211180944970705235788952107271256099712890430926829145344296920525267801444968216303047668039551344991680643152782327441750127205701822869026486253444793235779102011161885866072444479143629702788213153668431947134888042862490819247506364501632532284341919338352703960764486399598593196163840601112227813911632675204302657925211540218139413907378489118054123485740601736909553020910396046952894302578501060925675625319501557263741002751863866047861366554894847557547972829867336081568889387033350468545123534926341387042837804029596351847529744955000839141902982311647780356439650788931593846942639692413042120218539327449496207811523890364967943750141064594389705825718454819510054634266720337669846058402653936135477683002162038300089392030148397257903467066336931084504135554865455732835838926882467165673218957911147744583562587819411391497768145059088362012448305170321959268188677282749784594353768111916894449986187388234291124672261059122394240423408337092160555988673078459455406215984527250949302106933527628297791172171608658395624947743767297580434199761487312773952289946806921385239648827235497740638859502957334872617358292799511678178948168226056419917441312980576957186695634606323785336601228317379783976124533944439722689014776609807868344475185024342001578301708624265416664251624468374714729845288636457731992659660283552502100161864431817120908570141407893073215803383995691209499626928543378894381732973234176789627391345489471601938085605848922250971385330552441016391903427024693853790461468527178803121711013368762701549878614742097226917463246992949607841342433790900352970706088850817836820536563644414985827523528929154071729698894784152294906032279776250767449861160951675810548535872174588108805849543683235541215042364706670495243167458131431274940122704194025993689300489896363707504362302972449286688830234783061732370079433864682380140477113176383302460438959598358394230547858090791803191977313563501344449754232408253870834772979334095902656228551568990120040511588786781303861049361015354624603314006515707639393657083999135329508998503850103309639252700722231521559927378664775376623413628180307801267294960317000852846501634142173633179015311492879108778221369250124648593667050549596912373516291137925964440300133853814058775881937403000966884665725840723469477771383966694555515312973352561487516687295907884262213568588088989795014619020225007652190222194180425857280732108155377564584937767501102250590160394596300887408209433192757213406024463190760277581497248645318094976260550180489698125201533825661406296776808315337260027850499351857484246881535352003147952437949926708275769828309794668868418374599947809491582308691261946653174218429635414084418369147524921871508270620375496898889760900485103229873276007902377923492321207287925772473170207027831749453897010204663061986959832206345916703874502893500285905933627339817754680431383274799682074858701514988725641311380496572688204860294154317986225649632599399782537377505740833538363734414289438440089060667853856819772779756394870571944584757626229060044028704365035567193848980340731847539231866228686487826935595900664622440892461050702434084051339678675658599532094457414886643204421064153482342829847997455363753434861806995348702355269142547619660446365601334769004519963089411449394406014682401611783106952054498011195594937610421996846747753064484256700656002952143843237915850753165271528769669236678256006825069173241584776741256330346414957146948742147045350686378958997737395520999277690033051489616628205964400980782544140620675296532926210315795770036048469420032208059269453426520403509153287982692414118647474142299242953708381879725802911624531093972505633751942108168923722842787849879610444901387775544441450032625786421401309721340220057027047526147129235854100214949978685145380742227131248028600121777603980089971924179987301166470514405658358390796522386021411967686373449456914166958230489693255409529447230111164150047950620795090335379795561402231112899325385852288955302345809416128130440010432989348959594747272029580380795659234336841190351873419161597595179569980802992745761897193792452535288925944980965013526031022733122625691705421912168051282020120435383179095803749281649980045276091188051237733372614547054917999571080375487863583518466202163432229561326094012111828628440416829127028241679967917303468798549095247939411342070443701047629366798283976034204606881406240868938413037076995419989261554869407544675858218690907695764297727496150366444571262564969910937440956293097900914435065932630945415161807702892114496877161538623533841043881451339637976361923007116626599432826380462399814795033859421866396365266598074041185117746766165203668583316879794261869693682776177505149377130770770433448434129388689723366175336252839082353783902109542625323584102781378140097165353940619171876550292415089960466572467793360209618933916761141896725360784124106632034046581919624758493528117817643525530379068083789496557729768225089420489127875585494134890155504663578045391645104119660379449962941376571237679682918413157424313095362223267748091664589469292035642035772257144961290957312147495857897659337949217312524463638654197419565444961165109879918012971163517045021466172417095934366569114073517951159602267242206167378349564916902946133952628669116080355773057496454369658020214819967512018908976632733677248665432925852806932317597864595247548310679735195310549426733268555565629708808761599603482576287941444016561698477859436824424822101736929748880499056867100357135302790354611230485208273927595445880934352341679329530966245284928526078126425079428652813875057867172993561639649906989941115404059608652068189903465904260818059000051396982716920692696608156134554479294810606723436951182166791496920632718584707602574682371361926248565098501990965331456797284930929751874108654517660782695348197839548368458664531414354021549361177999857331759161820266728690588032715689189616752519915730621436840630175552344393320702945741380344462539501006775122100344961523381999674960137457762602525992716378909570937697631638242078877801720047035541015610362962510724207819588978261294362384811495538518159962814345549763323656542983908892150583390593599618696747345630087014090835401425331951660542420036095725845594873344209811832282265424568291579917844385359345894387631674523621416645806868453525647773321868834360206632351297222156739793444104960113407041186966188620258918687056103604959152205195052074625590909441678849835557998386039490612128555610093638942357172560836073855376592254686249018568547652740414376827749213556175407651830264527500730162386335598062621106626758462627485065984181603954688428087737299953712179831153162898758647762302149769487793475438163995607031866354245401936771706809818502683125640499736210606595162214610481764196857831408900919351190275032000238115747021440139306529936657711955469308028224747321714917581933575314790681559997187013945730956964430335574496467659189746633378376131320427152262613699286403720323447063674933584506842644846405870673651702593423550469764831747546077832284650472362919838491720319868650931756624999897213852612975559274591383759037376823433795873470757374669022547535388380031081616261230077514757445650190410668677380681533670480535090579063892011608224244862131913414689437591179657642227756671587695681883404960208879629109368512719969022101911093251766878470403068905296612700769276730760895241900353456978174171011174835157353360532873678758535721064861914458276160033666802420623504630751875418582319352680979939170876126483394678781400531884513528639606627046560619410299692617829315713345967472395163346880228497924554885655342504983805948080865650595386712507035618003735892269047164000285822696899383710862890372217325151044184447282329205615452803485970657916108624951266479515144760754249911853363685531960931653015248605216493749216136483997965171107165612390463020992118985302508754683425222356442384959970186289149284846242315659453656619462918596721149668798421789855109020676667522677630757186057414342423515212671325020797166789608686946556007842364617852895100366646762831855699745196774956562411531226479271437117662327381617926808184652412875922465527502142336656156828449691026899085255146102891966579029208658023584060681256425875304097983303365587099007010631957458053363423855909071076990190634441570227876804421404807014390643788186724055484185941721857387183287720758092354937023745882416135566725639099095398346929444517340215375350324535096018924685225335837125771521431373175759604079610155059156619425763397304820762708925007910414797769588812337096008256806021376080115347315248083414887858399250335795510509889286003390638630230521624665308240452395022263161654208158951292651850806313772329309053213195596135872549845967072105916306764316865902611012420177670470832706884452281378233567550601060995802701221776280077106731209591304902966148948004179170121663017329136532270907203941181519117150937766349677309625891323711850890218714884922875459572972310643104702881467948324902034658338659668934158123762966899887885066122829842570118952444968105365586050500457926254036821294002037195781370770020412648557956145117502903070187706778065109386450316199274243314968841976189152438119396779741767845375767409212537091877985005451699488079319963005180114047690637336437343358550513441237156550087871566567964080646907776815808740150824385149634744332684648765103791020196558573677642517005731159006952258915708663227841398214771549482511403253185134259721142289072878334286727054378554869532584060271874526323978852463753677917070133797490001705360598500276382182911162314955333185794066981626623032359329281208780320555620167514880978533957179615360222503764074529956316720757121027059262233057584499285891743696672562860400854134074696249590999184569367467274283989440789805759085422627996014024540188260240694672357210924855228189104483575762020583036140295260037379060744711817590414456551802059638210181814881476522911408269964144992791599532776742306739914050963283737315530307550447591772368662906461237397294711471004256619501526755737661376627465409508166992791223211462385516929376200692185211954657420116927022263266083552016544710743789019219372313661490459097263746072929660861491604779675138156961511832517397638707063480941963002863334939108895263558942555317769707396708855859867910610689586170274735740964044503776320080616332003358385135078069542053245965984598410341636739114114243893017346688534015174656293917578689397071179575706537226068885644995981681497634772168333187659993860214569923427829580237526069618485913964482080946004585815746066625105508039359456655679958619257192300677776486484762800408848368124721786558491727816473652557801609490424484751609826695351228272615894311136315074512403070814694974925574524943772824438327194227606676169358889751520642196440929834153709860126746386413167976431046052519468415562463775197507649737888810017686574030383207038727945017522929819573589338426804187967400182623514536599729359314134472689010698038476717406030152136629805948645292970584702074186734834020943367106128798260308775496668014669539507971494404463078829313902034745339973001552196392061278776554449094526304984687110960212834910992313709868919400119494672656909360580759128545316196572467547469892266672553674421329177907929103299546280849057967192777071104908673219702582754258323197374839684520924052869288179659127735487887274524779945078932789896346578719574737447577879228849188027505864109681020711255358549360289382476932755005718335720989084620549096880385684016938255582623681333955721545493065856089358568835337822206083945929121241590619325779609978490242429849487330669560770310731709017970772279677794272226678413713055025418512813224398875760869211592259547666362633679443452908097977865700634378123737419665199409278767564094249429501768554938147389664254087637039822411406827799078222238819914289266363919004601950135920893037412550697332940141816904729079103057179906494939904800215810960299494935518578270012051608702086326815012872705480811131472598802128421608099699943188988666231991814894025639419971881127863930237203404346961931982099054741690178018561439470393827535522126512563942918199028111365351589139029833328300404378478795212382944387852710902516168647515072323271924753675186441725144969621799429291716838172835324538687097747001268567078206872694486691030147550641702864191286598132041895338924224621397048494536749386726905175755629932162752763722648658516370487621739601796306338449186346210272442649903026061281174580216961068326931651587619122344118332396165055991631258617702387052185005969888830666767697470446877493533472070241850075119628226608771008882565871542047907659601896035030319845619874740523473380824100526748836156106279124616849940509217580348033362366126398688162683109029689961510190724100733309303779011020469840329804970576776954504892068659378277130894423063308005081322332709754668306611331376005295142533504001921150233830431801873078812400220214168452813298733157796187648886248258767036915787029402242363290004993412699612503713464631662858837122998839776791703266948126120568001579320549073212768985939138810564909643644708403660330433119793448950347731270062977412573849405516038158387558385555709867463779483798815689145261771274645078629317196584271004002161136927575005069074086524356302209310425193703639342816353006786755654356952393941699986692873421265632591170721783540099379326547530347529877919100446812437342826436950497832281826153393287520695803930360111710601160386396492852223690383839237912752153445392721436344618530401116687687615596347970931859714459632077988392889877179307354592211660182591824751837724880104902340593672088293718174937988780634199050785563266865081894816474460218890258947771006526801633092077978340391537462197505799733219281445454214244270966696734739026471021938567352004994561429359663482928746415047373317947067528729041626737601929989298447783354229618350156521430404427559014828175468839031823477036569834786556894503812335930054795854048378952895784647968784283981529677678291072995382538212813585603640510441220530051698868084405731719065162238558362848039077862053450282365359661905406190486201537005501607741126864014307666845150737651251222595628034895474676075873645597400201088713124554160034804376719115798022243854303775014918931918539358823230869240988397095380828606031391182114842721769848593831960167397990066801579169950569799780625346946485738813825377339080711773359112696360880219024460467070374592304151439431381913231783514643303766461816511103040124302112535461166927477963102360201999006135462723469529409516718522289551203375596882711810549669925468153701989463057133395315935589406675954101638064345494085121797797497978757453030109075043956599426494464163085326450241820370018440015070152594597272460806440602262902356847156877280738621265395507254084840346567414855881826437656371993665588039248032003097287645134001395123784257270213704707966718292666498225537075914495551844777190482968408129561050363944240565069003108293634794217097480693063434637558216874261168099630378897713932073422185847367613810284123553081664851374085098602014042545269203381096371183899553070569047176668764924882541418412517715859737405575527543357086160708681817011875561622265046130589118685302094167930929649005624278552558206165143490857287425356648243009900724558300221387353024586411241362033468716190740797713310199379355516588148734144796327409252770943859583168274664413308849365534680749967293921357570762906331188626969284720122468130899472854902490546362197568675476481601095576687507645294899267004440742122885200434195949856633449370205207260074879227460079690647894044564089202098945200333248721363791194018460427352623146270992157881608041407147317695529820729622257730980841488246320864253431469779454004003210514769000625649548011137676426628807971785676890580748177388487947335760678489456713318364409324303666189452858074269635105985427115285079117637210945925624886462727470739249070387254232319805544578781067395237935017759708992479928603099337230548509067555806141201803223438915286305146258188649729112001357574417797484879398843989418385266980347430872829100022572143040247895993900775681827489363119294907729510334828640357467062924831902104608750222825995207495123681612274838025247912349386381108841546067782904661516573484667146035251237650492656807187267503851879019356445844784093307494072316598036479923701705455589509134932111016393529907389944374598178632623755663587699011479427390571119721743591564716194473606185972667943929773411195990285659759508755150979549478232063872083713290003416359515672343534238467325670885315624378054609258314739084808683987468370244053600868550903468377281760150299998625529868506006186999842985453406532741684760051479308434394307141771763533734147066489774250333392523727482395262113564874972153792989960286528313051724052897076366939686682135340418992454215319513710907670625777274107135201208854380817024431926378738096083864480199081392969319400226628315780978890378579116863212255069389940938392120180432433409183005051111302980065116499912273794683428527253529531558645050510728475946919311298715694972482128785834815878197611836119649279927292159857705601017969324037555540611439511866998377517990798527427876767819360174044452627566751081719817027891701060236092262797074452980482367952931489397881381770674925493327295712650457424637913672941171518753084517775093088371046192048561609541735550231298656288132344923493193723971708132176658482334806431334124712683173936010870560330736333683607309459367025026027595140634694804935830838981037045527370615762410437501539628744786687116681274151412787903352913007311452529936160539792185733273270948907616478158478013777130749987167398928983629807006992423461710447385608038836905522876888674595015101629099081438405825523050118583274840913213440500099963647085130187002111472100380009174402859664038646867617653664036098425491868251953394746212444321694758847811218683048343982773631787619625780574594082821989218080773517509062312508403049482860025379824065820091834695986347727260345976865563635494468632154869658117999529559235451001501251659012068298017177482138608379164122940038841048068755261508024396771560956288229981842304939794223651608324728773652177465436073368381039259069070920099054853947952863937124652960953856467704843905792861687697309012307068687000181631131776417499642474868117523632617543180365386689947492480816076521073639825118607684210295100694809844422668234467182755482107580270082530663519850017786531546646534663218813203115723465772767274885821656468448750841056996711025478928970416070582439857255656296839359769594911991921338704801231343600857696731086947734526860557881575770155852859963023668723903020313168639975769489241689469085559467444247305469408150896343907586566601828395642030933045744863544211793542489950854110585473564099108927170294499435770904606502588961875504221093242104757393342248098321249680470275371083924864708954936564090001285470917480227873101520359646350527572852186329531697902732915692713585432580033986241712013284076705714432425161817937078912040284927505619030913208617241245081403159631441045978762434868446340853185165394860123534661357735944927491130334436750741490949441847615029051845176140131484122778837318056507546664982715879367907040501590427871143465197064538276338522608662974904202090202745176215672959102792393613841460580377025085456152936675482397204284115221702589054960700087423148008710965990873772671262437785115346248046706477971765067725052976427217494473086752140407111699056112821553320641469421617418227715776555889625407811147405983552634020023183210734355830450869617145905810724270809703452227910145147363731037842818959548097194538373050610519617379151166121240572373590648703342470792611209881859477494119197133244867265857383359154975722466451947857060250848497548288158564424781940696171984543293869619874226039132151644017678318270724041728772119583477384603549708027705809337073575657775869802148753285711029294859269098573550087550475176853200476868898938994572426043925231533668982911169109422576189942884230928094391887196291887841748838119979025649336699060054099712619901794665806132747877212493755699482734596372504333672527128942565899709825455044972444909536762777099308349854363023524369153526376943880804659593817812617834189778977882021712967373470551518065054350209301942852752044647095592399382377907505090255641032862148439817658496457165994147188649376296361485584129092868614971066819280600019089762748350244001685274795041575974281558654982183902608195644291433818532073837154148109565741680400069889883308946075118371069289911009512531688335094227982799953833132238478549356686427054229753228944011894066697773148595054243924822394103728617885891782704923696755605232250416207568836803917760985186828405959267040063256668788656385752717761724236920174847193117269816643055496589466957745539543312749399898469405517634134259488923601190300810442249821480986186688353599509114865205300023886698458817556917638533022972621541916057652452878009984999766595405207862842370490280122543043446987134493126384428787969032058034493955026255184978956902079025044481249856613724062273462331710976963561967666874940223157977979037082411917495663290879320212762095027838109583321979126451108934844940912241500666933081403197824123963964107507324456843761502210467089873843858682064978735337358701943281659286045606371438199639728666000104139084490850143231293968008972394175028060663283252480387697127395300321284272777750437446670806366200548867758590009430412248167512125198091259035602461708929698052999219431546305820368510530408171630725106216114318379007963566226109366194200362527034002236814051807455932834818450343688595562073726914787609559663962006084430499486834014290515711966892362045705635698361928608810145564357862147772991576231332942443341930534944815785100578310220733160695742468407170254613908425633975265245177927957799563733007194055620389724124278877864832032748120773533263814884813806291323428378467126050253397089412402050664504137519644822989370090225707653062375529752764996605744976036934896171387386881026324100672928815798128969839761519683178663325748730248446498037674736489041050005427388801198236119506151162249025959135721911891922401801514220659417644163421993900556125709145297193573042732353120701806614497771750571158388503390235440632717413532528684412171429427281743028204494645165487013485113858773204524425315111480656607269226550496203105323124202431122989961296926321450607455072304027416109304312970971653775703397316466560086194550920900559463051357551686726693803015452581446742192579164947713141366851726316394999699284114508313121397256208671200471842935643319120190866918098445706949575313201247915206574378173778941821609670378446488623772008616711281745369603939962377491692741054979574941563714591085574818210556237580572989625804275204928510592632731764063077107362020490048385976806199380060320307396226697482259701822830501209082799202003535192230580906036636009772294502400268359765960601621103783307279555680722350160641847722725444821997361928339904882145803037630145611723928295364350412509784472752308634750813660323756981857119377420623343952985145982733859042709315502911842824908251329682601594571559217160246269927253076819417188041620219679728802433400641428802542642701412718796438907934924164001304083435532822945885546154679708394567449268709542403094117358030267828550506721546139988118055425927984041179002197914164563268160022324091330348890212284448824565982535162692224981970108991389931492697574141985638520584789910124958583435727409735040382316967621700841173018416959240319608421213716531258683728661856619415339797053450861106189041585610906805508006277811243934407262170379406603925808858267585658161801852626633450692850662276946096650188264285434494722136135849719972501727186665355331875408581721872759017048064086568285658837527920026683645510878808018438322271508030507982058880394750969961587728844280173519273759287618533113338052573541741015724896235694393583563988417607509099207723102397188699383926840568066091973310156823112512293827760797893266287337631559934815929243814685038985320392683400712446414381894094116244034663737892180828201777778654759077194731904366996579602098074341410439510083006597329755860518355990692048979649078199734609873540965314513000339555409327442747571838271267057791621953706439957178200000454975045736292473116129393529776965288325976204418221214039603445565954097962202392304411328456675224613615903364081007049996301501588509138269575760227098233217375091651297777130252879269349795130515531700682875211543748863207221632304178392257995648001046777246503785400140192691035017716200960350512903129892103132816415524504811551073267561004710962817527001059093271707868972456250653026461276742373710920358317573743385909256899893919650348988869990983072877004838483390712767862166509607390825491778515973577506131937199956836850919492458243974867624170982982958716008263081629577021587591820351478747781945881557392814756523788924294076603328292751408901872453238830800353600819772391628558209244439999953574917243510900620600604847931731349056519841540254712318436263065305003770222117614855242458937530308218244465164104731000086939354631494333467997182229304422445334808309313696823114105653650647954380596524065700442356707758697490635882537528581372384858429585877097281615778088589838682713349695242662239792253896519932416549297219884174651948895924793552318151804849065555677714058345089290542156428493403717938693677985764453554430139630563564259178032020565292275984935939061056275740879620983597517836238048308534067863141104447847475159377946200106657775020723062563334598811401918055391137766696119720482526645889798239691516021288152511971151413962051429707255027102916550703449349032376004307100801134113638299437061336776840195100111938390484326404087556366493404234878959524698161609339627543070776654690679261215095570327546552809491155466113720828798538291638914933060130613254451311001739787159115553091848897124846252515836254017215869173197355100532091040363731499629105104960964978491910120053878659968796323442037055761480097054187053438584100487926021757093052426427089488827741268264771414460175180136498661164721625264612235569845793793963873387371965912125676561656359103294143982531431103232405802505447933029235899783484722088923481868852974303693936120221007001299682617892576943476650037601661941474791549956506121456817565480879194055128782179393317405674293070959776070116479529021936045805018219174002927017073603801845923331393761600793788102462584127099431171532733841683231122752180825329540242752521142366590539572106780189856557547567639801955528984273148578908966768835100562303280346062119866043252108961507456462518389715338972090132979389843125503867823106585716021393996357453269316700190604366463241417646505732540411202910996961279300745576069682382849989446296051822996612469534650733908918446685048392093460197924355142347301516189858961691328651606404735600068297361286607642664456690527261371355781422951775035547282695871780348866281431239139545701582901061219190160358706797441249092837376644799765345807314911731796867854657522687364755908270539743314853709565826721886884898824518045672355113477785563986558388486501986758576617620725176958529254935352309030604625469423521275722778491162581480350882124621651203717718619572261474470955361234241768377195671169086986419850624827711056882145736440058284662601834638977560083686592334226652920811908157538908158968841661276793133309030825930866183207012345187343442914504241156460941985800123657323515173628079816430091909513895617324213566452694496103423787409023877955898244965007426189817763864349597405762675941718597903224060300627255537501259725220772312603730865747725664698285026132292593559602803603304485157333701272474925484160794253778829195204354524330629910048764830135045738547519727257063069878797868730259145182479041599441886694706348019081986824609865080915874286934533120763783813389712944107764805918311506497200983064246120412677811163540701397396969803246149216407625097426689934084197239251779624391492989104264108052801489542529535833041794534870420050845512890637252562492334857315842245790311142528740522985436751265733990571610963682071824416317171981044885226079509352794119558278636904642487402900521130887153971458576328247575789563368595035189469269743829555359169884875020682694932254335470133235002441049804221193237188486201314845077603088165950631560857139527982907214351790744223176496345667711258144592209430845398445016756671095944202212889112909312107948203981843289495963834711631072285319778287277326639058464697324154066488149969416875311278055786236004271390959963001920531840511027062542734995451336445772758604173969975310165381108198883996363679998497219520924793785554969490409105840081882196437373100619668310864198924471748240277381722071127263382759793061413939165679333422684551977655837569376229328018687906948373248264634754714763135240898650325428513280511477687525441946528769315665135108820437697284802524335468792536697441451044772327119538608362514647588735039096641115031742474605814387513284402775889596333655584236282925614449656929336748604858210381875445762899394113051256041511077805716320636798197356874059523573026141241101753066167249930462128579995474174894518707892588594261063180725967844819608337310180307089137152779141313540312992250578842729088170852921532698232299336269776600644369517645703524590402622932599783977500500858937427624069538124940119714399713575710571941625425387513121207460020324790130412814006610758931702740207849472709559844420663279635470587438704142858022547690242048268944402423356072558559284045775988723530524797993547170403240259163922622055084572145941791453496306447032939991307333535067955448497107545204938882511812665717476168081848251995347067342158352911924613925559321781021570800781250318734240262434872992868202131085221337636894430668444674634555722867168074169546678689331687984534270499876133123716186698144731275453656903911319512547538856931722758675602873842707192689710804272466729123891492017234278087788216390976682013750122650425862760375183830974195568987726319409407999084579274130212186736365349901889970157012826927433255714402101083817007844536852800135311766980191957172340028994531401983893776164426964948537926464904247915265851124916655171045899010633703732036833097017031797973132837872891692100324451038302786850511492131395965272767549928600784474006511826255294856076704372450092995594908889880467403331447487163100029358619886907330888534411729613807343103960052055574265433954221172903256484904245807151055370008405491576146669696914403370436736731087928467129933692467363280983453940747393337650136838002688658284687101816887579482756078336882897841681746036868076003236128870097337164404498738673286719262909105455566250949744079479543725751726532537219914393364169572230786104493115726703753346044009974395114290393415856395587058417006234956631385946609431914024138181752730087655168336592579845603440977830752865902586350538144587479934830065628111407976430615405097591473824363864353267483293993280098864999153686115467608568212921838855232529685634303759641949080280672252602198367733749192033704078218898891220343363328059572311359742264635674081208919555428260335774020183745876822945927401416637703808946481130895275089808285163430033423122978487024436696522739601954928543798372894613324968909536298954730272709639053094238798961497377370446039147185424848107164601650734776522251259882992970919306096978001193340609352470612651946878845330777348344219898454899884707967861962586517715956311821207891935633998648095446175758764082053294271947377705204444080602562170475052152996971565773346016782782302888260561409928918570732188278388048060080531284707253559120121535848954403100525655289809648348313613249983809106843880092501688700824743744161682478777963636997003625645288986355787999656791609316417268675226659524192497837190387323543800333374532874983997297435030807744440214341785019431915041217514377806523345292436740024303797679638218279785356612306430973736573606449458867508147345748418527366366524837379537766736142184822933593976749386585445411745583454312809057139442589010988291587383940112532940131439061404334426463771801344973951497243537766106683563063372933807773373848025357376306049433027595909363953480356501412268962717239346970079575231560265472658033911998427762441010748410579843255662833649765115256219571524828561670367328924766499637598352778822062386404552927766292138568879042465218898290025133017812931506117348307171407753470112285512098247802211222177196066747439924457778587161139108822673379267315946270012434024235261586929415732758109856425570085208192294916673032784072073241951141634048866420672713686726939727693546518584214830480774502854818490610411109619265490091496472951480902543090796518840661026926433833339900296129069198217673523742386178679190462412730474491167040515549037418992192632673462650789974371702682548143757789364641535225750366807391001998043439920329718856752603981651208661232573880910191094140795104955774779698372018228994118404020308377842813533871342975477693450281530644220548194294330590193775883962000784329823877686933870748917444050092544975329091568035602771689194260667937874306220117984493256226081271230107052099925177405030362203941719451215872428754053477873847477146972170614418906059626605537111322398753806573044457647329852633700291479260222480794013783906681751855492863636019868604023277966179995153778007171659952956756265212125116907618473723489972659631159048303935997893847378088301843734427691667219279597999097790870392061650091383151913007972619206543950986995286641024713459050061910847319026140077897563580835553309350521239205627671847990269917828598829027582285882289810852482422207226482949058703952113522232761626043550797406984497655089263839352070682062911921367095751375525978315708703048099194267922141906755543846448165385259409229231721542453146246500695200456760347861272098089978953885484296782048430141825497863076010978753639562712998499340764904559606977108338734335678497037505751310207736152965949529665286034671594694831176362899090968574478859101773800585556212340521610566170261564707850093672424760455029570721544057260139912722692191240205373129392254219370117073144313129190789245559378420782108421521327035606486890931017599382212204954364939830802912166556221541725825652475175385492566345078888166288811186047893202301602281944383793486058210953832794881291811580877610758265455514435937518624402437557487109419041861249011565639409369650779614708949562899735900144248902588036601082167332100827011303696610284473571772228760882077005942766807438561988136206901620763294252818192077542331259093379602053228859930400236813698416570521600640019044903294600654364375986480424751008075974794350253164104273655620244096937951304151906212515902001636798168929963091065975091583822074691824169912332594871453064639859285924054074597272018224656975602614156304135305162576470208159457565092332276242368802296875995618464908693248248261469948624521549739245177340622655923496819866690786552879409676275186024107661526909260395278648430737735192288016472030481104057410069870019216660662436861983970824518282198579298863387356414968755100990613756689605397079754150146031271058207492629393430184817791134315212780670502469120435240378677483353876658377054444230587692908721352551507674502673390244402924722818698808291123253375574089700600571810796035113379398857217596931694018109058187604685421290983222312526443030092441667786358497496739057287303293235874124442074759256313224007617212784006969650014070263523727633561187886575340998472310375078322314674498967131114364714393314971402502516030573705821236081782501460729224916710582422213049688002202301195820313577992788291090416426973041189428699312012996318352401011877661104285449952802239267475178157708438166437170241850918311263933532417320585075583243398664544990043881131342919787404820033939242493102939896921396123723080413844004591633512256239763238275595541711183570651892013517485964571311927301153358998921014031969956372666004455252883336721548513868549347268066518982933464379724547002039070319916877843185115840254325258097313680913330765501693045995849540739714316992405789005956947558485707754612625036896831352971904666169738175757911069459111378344388437187601610691157131304631936124048994362815216094407283927914560106737941460202264273751454733018324155403820054332180674762888848369805760521573918233467645665055071423171080363165179648295491682493157587085864401254546987775173239264520710907253572990002023640376245690850252273368441690604769413165808901189875657454508688627184804407435907934789814123646614881555704846426849674976489942533638715666021017512300939700743471624413392976359088067960789809518048524400701605489738811499780635953975113621994695319738836337515526406647292562435331191846496198399214439302382942116090753862631541057957817331605305780535340955163527535807549776869974577935398323375573365719181437745264267895249413206219897594646708176394472719487663696612761456526605896838099662130729073395153138905030119883600993011221555430249177719436140692285948295838969267548090604619346582742598573757105875807720473117580886460459330548027939529802257399998051667361054986937878158231721995763450603479726827518587832051287304622881845877638950565758705104205733365163436469446293210119081280345245067773787940791960417082814370130380395735414244858147395420195686632808935614409747102009804659368930327803453516387127772896294744360335445848512230116766527960585041914595542152331685974982080512572919022850485730816157232186889078664945809293295085129641977977264144021822657700045080613482978006675094455150489772529751997589725878267664481539173424557285948578443283967212453246096002933069601972039628870438313561306342683706903461083521543189774976517886209727920490150364751020015307810969450878562857411796015162892538253896636388305784482770479954438813816780612598260979938503566988000849418348742754260917881099272957002919170883170467285554508549058340235652885217567850848650541222139284435454788300859915493720710629077744165106920793606430749585641664446840694795919681837624923916286577029748606771729161624421196864467719513391185966340982275448985682246465136989997344230208710325434693548610118626294559731382888103429504598822856848630998274668158833742836453961869123224666675959049125326704734417291141213722725712244202683829035060718280718738482713038322472235838715623373858267964351366749880463023674103498127330115192911244789831201090249030732654733415177883432965781142956725276561222128332236871952265588387625812414641044408865825128968286554454551599398498041626719734058573426453375093555100562461362225886154456006245363707333838460484291215005633638826798631742459980326818861569086479675871386852486372453078540261521503554211726257866809672048631859634737824686840094839625960706522490447336310684246471886755307922532333400085647971736221519649866285545082480064540472252675082536580540841680926014679737308922328910199466496909667893554311061212476591244019780973131275171255161561090512598983656012576731712676451513358706080918154506099692942580765742382774777693278192777209178899390394254615872773992248973735874330920462129166531840258724765392380026500774045395675156436646641486564853679574676205510730902132268815702896482042123053774846626959308664765540809264188880407910932416927758061820292971356234074791919181666370180506385208809852484469354857672075555160256320649986974759130651191919641293609815231653372039560396073897170974535982238204752935451789593710058178361844945636481203864402979841534894320046733566247940175455340001861833205047065843203850640253183945039181953274801654551158169447672368546835885604051910977536922040459632126330636194785824285652512501616202993568925250462440210342971274652879071336301011963063295761818996243112458871717121235072641227139694365185215115132919363713516491676471223417190352454132502520343592379368178978051553255076693227067523653993371309496055070593490446846955433662784531376295960417604828584688025830691003028493218388736285328794134171278524662070773500836550219431789326141228697511267114430292886060604360514903528171516230402172528021684988013717513483783025134720094718814036500529301015442632203747129076491192215475032402161401094615931408462829296047514812062026965058444098008823555679639260580484695352851824500669413821610343073411855456017405578822719512173129577554808890650034116981360046970040201838362113380758871220100705650658990431955401795343701561973950594551184223211651408372177702389650565653215728402360198317041746978112553839991623465920817982407959966921417323549214322459816461259718455313659452957389103951684327607537964442036716173762980924978966226191631414489202768878055217023288547680870403401045587478516770236724735026320537696439945705333200829467237784004189776547165216092134418761925929151609472985723699149265629206889883323332946121484725397454714988690181179000894500538276918138945112657542596441204027570825841539356210271044664618583014820111844735652407194346549343890745837823936417353400722635643129962131767870962481502547731776564967143460701790252320653425752333823485608895205512576375234688982362565208440266124751907043899143697381715235562923394748661733805839653683035777349419775131574367427060064281709521759919489352874451354177838420287900484324273331302245356875674163547363832279011398107956343340406634128460449479496777575296984352674597226602656590613519756214820861546175029914761792682968506497196202855823108052196386263087708366522785107062929242720595080349400248627808716434854876329137347747318177766203131488954468403337837547773729899025423582016407294561110376996963073712803831433978987180457861788236868405301580993289550292400217419470404183189691785236804973995532470374813252563533650701511709283865135688030325130526545858996012627745797633270118032349055613689416829728759816911426648369842828114610241133692884155632096813063636343021962661688222814245160367934083193499224323258707746615766986477911491942606324739648055956372405123385933201719050568019101479691637772769672242234963123304114086148405956600135875445235134612385848958879460696018717904786250805297998110106728655802084391785322283428210061265613493280951567086843207291848329466586418698828763240030575606849979786535456051421453511278715868713343320072231087827781577769768581659612366816469657870682897182162689978710341587813076125764931228211318888979673170767697071476369130386707743782056234359950730119865625584673460614387836300017992242207520437627805613979474602222562076276335851250317234067828160704138667695223997404793229086326643756631046828769917573626827867192235092208046425460293601566075306968026737152851256667112091011760837557610079969701011982763632056381127680444634279947719843463220048059295407424202352696876042015285804911221724708417425260264674205991041374916663790648293576464643409639431673523973854080367503943296539358265769488831595595175853354856204979699383846326346570175635886420748387716885094822079244606024393629747491182286061792811632875286811040896886299302825402838181273028854925248961890933005550374071536350092211147767752435371633521680963217277905085880083548071286441663832532405219734399948368013506492275149717118938835741134471811711843329768415021265341401511247132517609779330669546398556350397013020948734374575957884695028078267668799756822548969969137743921478854782270321474017644839072312474425224843671108450433564535180345596909610606309061953700524044225203930464637314823677525161812570052407341082917999137645879652681939401840203325367507504178993917517497527640414762668981600848570965953644787641578747302681033650903901822139059937597893558259045011238719021594015979536520210192441695456975380257862800808662361974625850705564246902593528623493480162058300529974191110274652870263790959143768769761889767322317181538438161602675210621297291747074702431262066547487197486933285851355092988036088837642381397520635987239044648610428692049271865850838131634773680062894973271029872318979450296482654900276491538169351556372697043880494629872916039272775853129084262004470281496910108357340106490911115550267195493078684986106569533464181684612226340995121797090842119272090741068947212306589135778204867714933699225824982526091087384653558821801896368324795898130708766436386692018953954562290605287762181877726066857395950992071021107772870427821791423254771708379281488064751503311792147904749667906444517563325646767989963602425062638600599792732218994507525480674783295433420274907559570596587605512130341251506868433134679615497203518152033390195894928378585541286093819342187356968735373151785404548329103800550349493758389916410310707379509332251107522121838758960078898184756484547174865976915490898256010100607209454903195137927961642555289084160564183670783121290196821687957555564357373668254239071962378610912342957298848427218108344079483120918291723704725927741562933674513573370261482231512944904619516170752358769477185078666500571339838621665079934051709832483687415451969952142586544339087867261783194364391537003984078751413016685440671655892715319141454024267682368162137856504983419690323248047645910485281367664990278009742813607451536407508037115481550857985652324612798791776439430454008298093487215616444042274008768557275903259654394526376139827965227788206819834429548689030255712132042593687430742054025995907049269862152321525912883216121357627444246676435932044743179128988585072648010130223612163390414357051805293450562053563653633705395349068408093888696968406249756610602087655262911113575542129067003407388643877088436389594545845694755980438958733024811342189706891833299892195081679462949934442584980135582514090080725693771310707604225958506047901044303455472139556018985250966365330584593157133590245660603369345332884530570061926695488412078996057450976490716482552773773540781965659744241288623546789061976965101153566660519041910089258422651093041631591427985107509995962685485436114275390371669211871939048961286129526116247560314333338410006172796243658346587729310755947012567435800842302528360057923830565680520978401489970212808765725588728364835896628236178106166173824155001427603974666025680414378831099485785795071427524931142931788736083419784612941117916858490716865705314220715170570899877433285479904306060505187549697682316128270605038529216411147548576995329640617936590072663517251037561001393697738199241414882866626758617492939227338797073875522367744306711376327772257643435723322313452244614157299407781994200544233176429044380290109567333441790295010680495778724898867222840516268430980216576659283812850985495159102785164468993855075841150214821311396992541503019868231431147432051715794176447710734430074950758449201335388142524164685334633353851138059565987307106517676613641947928665900647528303463199698115078709782093590200377399360150055913469151475959751331901235342983147746992389131350100416034013685548343282802961363365492642695904287617038485854151656071786339028690406178121348607694392633333064677871066440276559409200639472622853199786172609174576079265202717596815731701523199134315435568912106151709603989454250495241436284240174960953398021075814686944323864550165283070223574541857992530196296625791600348019123242781274465997237652994104902031392133477602052056932280870421519699703309751189010866267070987219925083094946523927378133879411125537887297646852939686248808775804324908118731956461607299723670521321500817183349696604289457736510551018831354819208108658965617593654389396265059044226279942152184326311043083004822145902757102442318266145175343136828592002356927691607970396066740386490941850075973684326819511262473487679229662954587991644820269976925158327855935882255717209918678656000287497118791642684305147977915418456631117556242282925331310108738396966785566013164474181588136744895857898301334715740968743987904062081792897206970011642191853529164105413186970716225901853007398895330433482144696940397310587431741250948421969084681927057314792719292904302770054354074956182132507965009957366276163949372061294935257450190251134267385308541225596506912166536717058244283286120334560045146370376269701388652657305726715946314954859147684884897159487989290859143522805184327735791970145624733637406702447232442212845036099940610700856088010221625071294362637078410503580813200604191908024269028889846514467955301358703242386936688645575939256573807926877504153190332978621842070586064107854365860360783747655265386579990302340908768271955385510084012562181522571616382803096233011225453598150556426367652891905156940318276306012928671525697036347144466122013908329342939713068112541108207336089378298971911764082648879483409404004843206996681703703248162257253910857936147593635071332047343312548110656710235790090536571565628028500187317451888935136255727408965234895486813837278088930537669665509011184330231983264530194888664802566120124074960446306462973448177300933956911611143244912089880287525076208062454945693238316135144161197319898225938539069032927813564999895903338173189975014021983554468413135620599327405581736353872509481081048875233133855335139468193377441131605746442563504129327243570345643752034774401825310783638422650749479222105393863536473443381985664645835481606509929087613414510078231481538077411981689369704937128335588775248481371540114201391687382119802529514787367018568872529252172950940002908728394826573106640330907755243991703722084220431068836154067931035174297302543819186345352155806187882907273794564066400771673377515276349004893850631768564316693413377573305823561403104088732962815416038820595299252360612754511473400193473816338331323079700639263756795849114923068933966153481191261729691157140915959096985313698557206162455360320999604876773506260678392045330877692280074290788856035889797919475049385998787158606632794493372123268717230226281385638056940743426171536591456653533196504542451666353680471951035649061439193586543818365013805458136422129535207655404679309265409660162559540582362081141373439222364991854435307340287763671405088248781056845538726105376591953625312577254441009232336040942011766825720543959263855305463417813599772834135645631563157909501585164493966177727192489237410249646569239305240009638160826989434804682034096792313497792426548678330052229755817404415675706528682543352671782077244191433636000324872701707127489182119964420133474358004646013851807606454626768686788893541679767326726126603241415076908038884821041789002638319708485429145631671120977323234988478468524389675486690748602429685901102928127166688238949134118606503118278051035349150579044407370143229558873621596898688308638305138884390140136926244769649988557131873655439522390476933718359533890167710318384106128506591457496591948809222170269406559886642429830420537312938856910176348624423036466928837980841570692531623216531346275759821494656419746763941613587054526181473804777639418044734679400367492306562492016661519556131995566628778115868848461810808558082811143953110623814829832868488216594267290605443240008541451875931707069501572001955881930318208397973319504310308091399622201209458134783234122925227651181164936621056625044902583710940191951550942544619312795912587184653628589162572027202982421176217328427066473582043421136377184095803034594199751244921591373415501760371039285943220265520927521889508378673706996567098090206049482639289216519864082343659438255901232022715602089175417607510093718946953979291336533076240843326720498898430556014948559434438897488319306202183019898436115744525998429694759714438561018669468751675908708064118919951361728312656778184837623019201904125778854773470523015206582594644442318604201722252547757106822108694237335083330942208641043577051059470885638055827392032870276896411495392106044354555482021750748117153811825532016022188015642598937322691672402786659406198667339849598430774583045609597839055429694288533901751224069320071525593427855440142338605313859656348018227836070591571819913766818610337994697879025631892240804267366241446366602483044926212643481237202944478246747838519601369766653028550471308828170926697997624440893283852866145945016491243265987013924524365789144306352714330650209716475753112161447733078224824274260413641695094345288548958517465463395129993202605833910650856641231932625479475626852225293482993349127797985418187830765562646976079841285021202004635079369957478480146493417226788845328983577596415045559984801050112774126532979283516837713711235526164746226209273429438642897041796809136059797576218001026742636355892672940561042393401561010633123607691601577871854042104715412924209548589293106915082701013623327180574437316753650813118918247366212976014767532704187059149793039532918713532563152672225408363115219745456030143276576146556805321555117438475403355068591338991850837487934067416971075401602390635378349305879270691376778812836505825318977710461617195702930784998330589373737874117576445949640065075498912442176907580030240866771657924173121423690094136305759479796760600125054665416057253843986829749958155229739837499269138406876948934535834066087006853689286249771424657722509233443532922909401250318394713852861334113769397874654583107081792131037221485584286255010449960020941233492464838395190327331487769602500128270993604869068523406050011947304569000908237115380616495734613094933131156249167495956655504939604215418548300917117674269913845203147628736001333134010929690659724897944673905759506753132279883331484888868210149897244357977184924865880745519453247526112868947199573268276650574444688978438394727969165720843099952601737656243624280411303400514584936002258617941303644859794627023980028776870007352075365066544140413599027017973557417231846256637576954980873856052328956248101552964078107547291236730337032318512070077704296782579262737253762264837032964609399395204717299571864724695377069960501705584915685023327369525812520994443649391713679112518502649035906128427927399890866509100829676722932826437815332871238639368920695271002615021808440479972900785864431763650875687605491683021925186973863707261195630212765390584050400933976791490027974898440984461426692797761600464732509608759647739894395082204034645547029957701892963988443200229269833178333463161030385077525658634241980039053496779612690865174474096312439767438885754607919725156230303244497953290966880428734469859727049726241720259265880458148892598457844816274463361200058074557145417582559071305987770377375411066590115208767021174894421969413561175169215055386103783101541761391021761466070986689215426271262551076526390537825164958439510237698305963528609735314676397916397260441737901430538368995818707331574023158313143918483425802927413958164892312017339888486535956432471387470911377334587385469026200970147607779396717851958176446400335081976541217563945190932644067517559748363261620889432791746492313278413589501235100787422482049941352387748762675653931398367307352081331140233701599794574831471762649105570160932035271135957248659368266322618424970466971484925405362633501949750259621816779589833390756484630731769007940195296288982119600402347535647503023299082531002050768021193602307044018586318935476098718852915650004496206195632096930142201617652607885534504564820495715334365814341821693198870278969787000813873257280902096352849745514386481525078673513168345670135637692694384070339953974678918487843000248579357058334696079086077598244969613307612593406593978083394119005251865921788164723598780678845620109624688896495199229329287877439749395158133290592725906533614538078586256537898722859240543026761299111717037250660408250345620333191925623147696270475153700773750281087276987072475788821805810230342674547279366813459919646199147814436181701404473983585357276244970900913388442473378670290798999106644978512204694201944530296475937501588050196768467189982524770703018833471341030584503605233807049437897283111654993846117223535792435532185219870150165469302904994187851095516137129826708915441850531045989043575902163313951300390460076120574199449197429611676099369985896969871447698118039923489406046995973521472386632557124003796504947551214278023471547537931589012987557379070060866499920021459976283294856537788607404951999867513410348832126543705291878791707702466264919611888524672075818639660677918267648621790198606214098106383931881619682028892642320781418894800361578887278865758186259625736369770244171508668635615446641114305014113195314665835897281483151957785986566649799053213475095884693385789092304449866517297217286329884616575839532061519042847212993792563267274341142125913760104700744086922668764925892978583508591998408044294595747434881595685296960113942581789616865599628335594758110284112051087459433275050578405424274104350676428894171634646759201903002303937182064071999030626571714287066340276283871799372342694124328446652633089107407803082410170917291608808824242821751479953968243992734574196045733577064675177661270805826422409581712840815561011756364091451571501204156855465852339404810187492696536413338027019896536392797657961612802221981890441112577563300830710030796586921272436700851059217218733999391472104836488599419619263910562714775752281766512017227966174491022164472172083573630886666776792905226184848181925838912125586463351023486369774412100098613322000864456200564479292024180114917477167131126292142083027220195251896857519384318366200174684427240695499170690019345611085437964027438975827911577618418016636785358180678222093593845780199976025198822355853143188755589956267537178006919471949476264518596383117345132043330561693529753069834863100184781636502994565581719055473837528658838830876492285787747836154332887053087676576565008018410132285624644106961547316427983167993909038803018844335006799822929566374038388388839216070998661670495857058202903368895980157018528634301675514855498335146290544332458054504540694889195410262803636728025867423544431086984435038670159505800252987569461100009940580878129176372661369192575036458245474169847465468957019782650155920451749474151044944466047141141757196177469505896219078082471804514224568703513947228669224935217490169487647586701247600035336122892250909008684744916988904610232306836831006578457009903248814705344165887611139019697537989665392898682782115662217332222756336244239294238708807979682328382046927707551983725930842092602555654300951246352716989805391215348850089185750546380989324687898658947875498297991872091722234265079335895266107809006893427439755995201336763396695613029049771634850079005089176739330265989989982665772432170684078014071585977688592761152382317617501077880540174794955713701784381984466638902050535604672938345918134091404984249481681014387171220693012874855460370241211130504881183631993298635515840480199422575939796667642900512279273244947822809727116108726628297060957813342343120406356114550971756457304211033874070591749580607445699112146872509990293811338872728196674531108942704462136633065516529130783918256867919201927532561584493144017885040747211114292059650647836254168716629430047368661127425871476293550748189760910512090924042978949499710742849050056727363342336954747229463078092305044643196779138368586714470333873859241230247622698390712914158162854048933972741569073545552200774526857842577131006387652463619227242380423503195117439372536207486541876917647476234179843730900048694978944250574752298748813317922150200337299246358966217645086667350627886791775732104531571385242286712023685105303527766386070465814372765584961730804297178134470198950139605794413338167132639178518132680790696511768827006883174778255860626466452722605939793544999570340965256029667693468574312461915135645148928635081011088885976261096556844164333898681947438374243049485073214552110335971189926046509168061576809750889412224823136090352079868563552106737026410372163755445120701957139688817773338655336995078187773630944617227488948681224319546187809456599969866703301115806285596135134953477665472258129925197834318623973675056663418680947384706413152963074018328602540882042024633831808239679426189239081408289867850767368934700036539715930360823788706938517848959971243992495325931468616600101668744475133159628870189403697381243503205379800604829291230654097872044124782769287141707605747333687223891956315823353309686528007841477860825801322575693094514601537358255294086263425669384144107500411472843208043172443829222510465336354347212989830219737101318513578021707487625875378198214617895256571555570612170152771365450593980491982058336257664005054453955745367963361617795446658354007811624269150223016182165907340227028694908829460293101822770620639275398589495753314181935952661255445848858939238572885617648116919937830909696816556424548297146374350386889666029255148685125837635239693897360963165513592782105703662302186059263375907599704238916955504387996400764009782127810251393050190244900778374091275018780980539208093251949000906433807883204955247948373818713976037251676973868403160609988334331915389637745268265461746211487596748099267915107083280808056137542172886658232516990655788635820621198753357058672736374267173191704057488631916263410194212508773115030126075283316148016540431014435851513435758612753868781447832683970486665151772967069259927529537696404250590265334732887656319592554942189835508306761401977326219115614188044142793864188154796610363281401070551401066491642165695292708400900528744718110090450967563505198016974124866010522737469389267761971430590798971298644391598466882741375599080029900222418223245219940279816165356254154581744787876442013436437919846874363573222284790825923297214135058196707552975035207907995085655286652831483433855107545707397237392568009999638141080616708828699007112764537853319066573561106585709622275718265333806003562482489125441947967444208444711330997654771564292690151749115476415576931894086306449701868992657571690581287908169469942167289271681208956965826987238760441508154362764461537646059226917018207438007539932753777781183723511534193065250657212518826381772121379143571875407531529172469413282494979378141567213606048719906581883103210450490862381913009496256967059646826775649925406776443243875824522959958057549652995152852856547535042257565182326273606638918430628134775186919795840167585176711697968572458823114127930681898127952114133100498863522994286348190528591269184166322763814390529243236289941991654063435874969607561025188200312014492025435734359015943432628507204721446842309510891434346033397477360860875686882836053273616296442455161606450418916128559526539792676528188461721926084865478622181845615251523348284958094139911930155661122679104958775218842392379550791938293115968377017886748517956415122684449133871437423931421271402783144280504008111184865497668205206296570346121933111509118635339924335118921743930221104966361413195914654764700860976817532431405591797414818786211047463710771208847703607149767703186176511426389815305959710995336695437995734364642016016520251697148440510956388469112542409336257795785847779450187829030059528021519429402192588003067417884220909996551946591048611538746994343533705564901612205819823858234363717640860423964173653946181837672842977707904628824073012143721384299761937308695574949109082786473325182590435624532507302186332377768304410640533006026136364823108620301755228995744987446897629983367342135603976188879184474561336384413148759941203282756695978179819680944811041279024659085848998960237671937824637957692963973937140868292640512627691832583132872273855107812558968842585139389775463121021733558299172737678387869844392435639975149668428049846029372492994217274167030901595200629414328656011618421366034411489221806244100810675708950841041840545231177152552233389816112808758782490697123464131213274720040653472497610344854384435650007710093542088966459231706045564428694035503775243799393890953008953110838811663062753944819280704002864145973586103358602200861008852166251488336138141366579756261526814870284621644327156562945627591807820548552614078315382225363376928027378436318639080899475750875937693394555784480517816603554721894395166434799831465154020846556392883681822924609223441838032614802923337687632621029658930994826645544178988817740490381842295141490744632867926374627829539385549497681925954405868712854950935599971771114008786480083977993904423058891509842319700762132796202428490211534809020607246534991575645534835109769324214980448357580308913425651582718373279459399308128178779634388801898096545609325590964973846625213964474396776852611530952676168741634014704693609458624597234191956741489140961713052946889868905872512542524116039319023602409548625971489248709252061571984318766747126310942765004329720467368512621438611655574531463059162954817982896191829085745641452023015061384775191689887363740724742107391547911883601313972890093386865509419633856556262905029689676197112047345195886043591986124614138992131836436566210513645763269268493591908448371099118473250830377461822838887418891815588909777912440390645317177553384302177747487568823372767998679911671519743063990532706580861241100313590372479280547537367499805871785258824024253265134147934695178056863509517138730134209560395633809864681259978436099393443108152222099226953543711399316240101919442430584194314462625216751796214836251750565467557586404381673070234962730153998807622205042800957274102919561421170105386750452313441131939301414411531484746552585579159205486409515183011780933077749620843486246029818128238138491475407611837054100003454871607486995150395514897769619232161190972804272746023304810525194404958108941729677674700736513094420381654210233384964798238873652408112884607296401245137990428610339585389806334439670810828057592879269241831758797809746982831604981426903828299394526598081900013446645807877139102207521469997536202605075415706318275315892357135246052937136502343363685465699251460942023885789585622969339450722521202524644802095763254884229268898326380413848163141226491666945003765203520747607758518009741402489419674567791935610136595342825738200940555529126901218662697522619665541265385960958460713389402314528080211380656041147717411412114443907888595486533851610858575819830128987553602182147673409968722316162956013807403359976995608731267391296771726717033011556582378864307250180536429090367917808597811180087793526308255668571189247448211621835146319906397471278769434848403660684919831365840790316157789198687700240351858868473530946395481438545718934029643301726848006310045191094576326303268688289359903723776775337995985303636113640133401403108012222791955717377136347914856442690452536814096525993286126746793903227085987042705039761021073565713342156110272497838764859589962084764909571241408303594159251058009571167260330672113200221063251677741107658996037485059777433899304484454448936974217485098892983203099010382624132049117948201654253079788886006244747812162550826580630669929002270555024202010968079285672628366655842188101082068911830195079084608220445787954932269510938086413615643274175866039944350852021958298386442267048582371583331916928822976747477530992302369163861393641910867948379486061250665738472462721815086410018448783440717968465990250953669282988986975746995314097450538755621179476368677650984489424487943217507984372836581227478123282236694738267004255586284551207591853951363955167435562829013814446481847179710131516124524885855266657311563051912779069179801959543531459967699092850412740730309866736721890693877499267749315840276132002885769942511635761120193248752755974956523494400720871704848075801182467987021035282075872237867476168059345656536969280521293881311599187631244774697871917117737574856195684095981169156719050003773409173518663780828603791822057764827428915638961466246537198133917560338631969146022739513617913280987963870076273492104209908632808254375767711541175005156533953382255869014959524398413682011326567228293304776630864782293093796011721956413645763516812200234796461506219549039640894027838239382026033982055937953783812672791441823395867555397273933126235135077922235755813150990264847160799041038940554381964123455056812858736524512979290519800793551711831861968495772619874157897705082789636993483774343659339862616262859524589810111034270548882105023072045735559322177599203471902099476123300254861393788848939183467904136418916471835059521737372503533654209360819237320562819932278457975396000663297599687272883935107752068762495147480596298193663191526829702504433697249261420013550021259245709351870545086413153298587648744178906482359222273070975767519465679407971124095754903446102393731862472728454552813163812213079484174811398280489186382271187454542531953417779088604923011411227795547667439770142676278911171305525256523085764091999838035839675784024416223499642726940650340461210596525118831483407500054265541366127169453868677741318807004065231500368761855962580845610184106444189051369155569289262197975597538904204312963540044989951458585277244823291352511795829239834417136655898103826365857197779171076725021341660670595668743596226389455028328925015990710033085648870713064304086072931825523258047552905243047984640361863921081479283629491667422946360891913706211568899941950423666861778902302257299915668786912813408222712290879260963460536269500480387092001223682090541095999377154916161367868897299510415872137884557391258315848813268960595020282406109943310762888712409404020470315770861919269876996937514893354646576282737011125536912017439856950881861535546560319172466548541015162433425852715314424362064892192234890410450330702228223787870005509560591730015893343445903938106906844274854408137296521472459357310480850851631191622274081586636725138320467822187254984565948849101408490909285507921450053536666617424011434052620719249254226716728235834786089102005574762921190560665968519590443902535699197893205864007302005433244570890519446592791463097672799819057926120321597255542588166596133475211257536476418184670654959558541963930118725752662901632955723263890981169356368041958897833864487265293351208677442517960359415093104358382823610354253179579238397503349230547163695034359185967978923903182684464897713647824427518457398509744022304145061771045711026087447884220750449928025785810582157519192962792506073554702843592501033883676787484074686040472077001616885662276148175713221523929403133920915991882500212783120804594638780795694964111792062116168420055936037189972742172202765970480092010802183110730515474305028538428468732801551413231463806259250985138862017420308613124362955325675541645664384803809758206964065061579032622582466019753618386193483625394088891781974655516821654479999484454156816062238519971065643640449437758582704402648526029438393169003398428288539023920824195125462718940763903523183053914807872982133560404230340401715557430878233154496527864148472076174509845265673878270617896255494532781917527504002752848383483032584987827073139532354478938065211474430646094184934053247802933922378765459324486065914252616568579932976768974750732318506651427658792008272026218087123995113726348917510853132197278097448140405734705475676410898397023571151194915106142113884766459395191188954819173949144450650127218290526437755087914041340118260776199074355857842502824938168982099614481325686938772717807251566986329749251003396844120748082947668041230630797875323036270749339362183416996548151983505267456667093358157366105498624981628687604121554919186734788258039775947859391013307485282512923152259166822371242871781569508302049401663371740612115750988651985723685549576748580088319631431509456966348188414248273981907565278365093533093858779336584343566522011227811718777344471382927357172673137737340782386738097469972737875676119588893171979903025846572929651291812863362908785391571398298852113671702053627916559199534144688234963335865513524932620569248217906265848410260518452024934610408221828399982574136341200372987308288003165178637189880144156321183196450284430911543610416183081907959343337010350649897065599345293912301241527757748320728884222884342444264729525921263578769949339263662698491867052400912990644233936992674378524483523550014578473863577769170200452065227280897509745888449584787516892236769007315665185034000171370301969470452225531216080624733705023050367538225937623730287414013663600039780035528215524205934952592652335022165603182244731751459445597467835517362623535925259767997922639976685535480459240523217086843292130213711680863856316279036915514677136138288328429471198448363826081744158470195419452083845485049200259670752370385385716508379613231601018321359564288324287554858802585940913782298114533633336711405348199608781088766482644195425508822461637148817867849286569192025482379884975480561102398448181931807009967283497096971802018856437869204110696839724325666191505431735018630052723676709561291025520430320595298621678631752753419951073106787289530261001865885790401074722950910523597756116216023150158802045669349148566368930280995665106187550562000473634063102009444984841125425705460902291373645228824353622528365609455024951969126899956542004709542475080990759100071407354447095154440845442257835888474480471272395306868789886551103021383146291986606461010805835038533819306135033387717840403821292066951881956198514102134236909647003721704114144642528876341027313354927952642788489383699925314481006125910540744943603724027740436614452744769620409150181498957526864239087695677205120088134714491931709920143336355000107093703878123123662080756032099875147155013446045751478411688943582194428085750302781221504629998055393620661773562530743002637332070532638213599653334806181999074616653270072198184269218333270794562376839984336595493846507237133641513919813722314778864833659185294279159878350670080673101726078186660624470001578801268100902205597160722684749275738228129131472132383670749436756829421900617654316966689304839845678359714728224860571140964300148646977921289122730874677027589935223178192837972220402624045558203404379193215219504586732505163963252329072767236135167811345935191782862041166366862616447689129175919623034146753142856356218924176602575512019885597599990963665217216499159038277554599117182089884883028236607048844197063810437990380282972766261809934323069868321328581724684323171600100538282894552383983611559600632517185326068110938562733354008307864059836223971568835620608813364343620615953847093022934944530831831707010152917646877086046127578279617114893003718061938602364474792758659556209489725512587207910976931673567397238078302819452572019307911947228045206798802784109559068371735983415094703066354329900418449769271257134311908025180825811877211992970016482127506571188303160120954867172559337891258754778901143082634457873887129047247930461179410737038036190133204644195780193667688149010914045216971188588033911717029491099650593074271694216814986130533411678676564820443878134167881882210176056140648656023490834469648857208577316836574277245957697755335549672610546141155603826036777519794471552499179567755750058433412895622187100048081983079303198085412319394307405137883637613091753505147107713265330913961750727777055719286402787110797565514259388303265510110144893809217890815215404786308665274782228387064979072642971048275668898056847579216217100195783443271455951793189837699030519879735154218710255009277585360886631714368612955763028349898301134353424000036099892133670426806861864894639145968460290461759134122173865992028729918884226497459591270816162996531526991397809627560129328306673759326185237638062793281486698431837169417722843994283182678516542844125009600525657685405824617510574746690976993913933818381421009430364343764593769505251740564838727700958198002810965666982364049599444958724754786642942611622806096412820710223497110228662294069181138143740303560380351099927292716138495710225539278212025318328472808027370476819467012756352345005452188885517211248358975032654850877750270117963708740831347430508684449401550427619952002824675939082082294715907792658955994585031051532456189463551398536210639322774038003893471329029088009490039163729566179367460393726322012584789841222959315068932437834333152007731195937588197576699595586555290241291715700601753028338906806191708479628053921653104362960512596942127053775792305748532533762563931313850242763489891830746151219308933656556408546778790943485639467649899268066044880152478171823003327819758477661426399887933285413831449405274831527500006157604504050600970916076646585322297646400247014583435620838805640402675172752400882182485180675963834730239002325463822176934593494677370705602808907825113466284772915963016134855576146755191707715117817727575995382940287466391566330845531451340266495335822760897792818752615871456406072203455697205480040925028874714298155262149316577393216789034190893818189509533279331857454769934755621407963748537149696303444389291951568671976036647509887486693968613624369036613736027990170033180910151679095146265373445388128624537099884170887686746670912303211477032171505686376621452203079780925160209146423472593608079831082496741335751802659273285170663875420955532251152636484532987092634447508169804415221694616569732135823831301650437188899969998237938626965700898161732422852308634355892908354218223984048211839673061359158902856792682850068005927031821849460184992900815001237970926980512623428290370318303421772773978517299686990624319517279059601074989999815196002995922631317329761848507336859957086708599256738584184616845001552992043144703280066721605302343199962978838106863377141136226061555575487457614464887205556179251772959683782984260272668043087943691557314361805776640036481733477730630088774086465197348621347607973734325500916056955646410704164600360312324570546487937753163574179371280027060075943386477365331802368689895494781879872244376584727884685501367000712821107738836562742084620113088913660256525782487769599121795373583358343953814621885560112794317647544315049804007332471900289123568250737097681485868863848653444988732762695101030609653844582650600913766680587340302368476585908618630590535615349198728663895398207522452197158646963028684029186598523794489352699555221302981674798106185034475952760535983200713778265408156712910826801534945987094378852611466293806222554357600351415630456863524753398540534971680681698275042523333285657555048559437856968050156317123292821633129085967168572712356236722738922946694762513693835134256368875471926409793890805938014718067582917792605507080844533074566147440523168401659551537228193159906436258799734596174547437282691660404361181780254600139139169718200774870282362994961815037129852241615708835813127823671334777052320449084821464263185106649740130193691078363391902198702749837414399120566700470106250928619561936272515098732457191856530274898209717363159540790488863886647558053336901853151149636495856267541173792224746119746340303389205019493580897361870616468822343369584625609147763586848582347008515074049553864635873021927289845339020686675043394236652878962240311029542886997099019503666746556073810411505309068269337345270751019430279695463791098432744558732669540292881105884490559324193661785500733849704724725348801978631804406978832808722496249317584661608647490315362446439452105721481825772107092016676148510802973056966202859201779210425675405227086545908384938669015620028959396487756015954022608046187909055010681430408367096408649862809711931127642272842183272238918564735732646611450539918229852095956668777109800023702376814051109122183682627202594355866823758268526975255487954742462621715896499212607698928805943206205544790564228949157959428972292241519358162176843560588905716276469879911294888484531543559983816221300811287815699768442304809655485638794763573309857949399299413956311865194421375319450018859046681520825690168491338697676499615388985233060753284804313844728759637480370797098055858194378793450100233587568509328643647746328886986825765936979103243618904201072887981226432858948922490549687388600977729479270363762476174158856099389303801061101415732009168382714968532487384084956202964486679443574367194105969723535577975380256939011604426175937872007601919187512354218243338076057984742189093835593864652395508447984875891877554205098954795871819377427595821926128691788147995109689957633973464674806591420427355786617711096025413199426180323141400365333056349167318720765787845526528800054535705638928100456260960153909466112661006878234559444537888017045576422872532820244086003742339580971454817010314045459027318551128779651453351049558165914421938139856037482121735634842641572222053884083281008907195592875692113283761928651007145398409435121655447127688217522995648438330771935620828499664582712684571360587765049176962028084422280423761269700248792734473394605515005733394045266557297526686626240005479638719308932449995335755667055941831859901019408958959568880383068333046527207547935978315656469263941415390836116877545134133386165715887404621513914486112577285009655890268701827806539349639971765791649891008076349445001372818985952680328880823663121508400575042544052948750623592482652599372373365187043225402267889811054966165843951006778883536703005459131555895527579944876658873323891133036677114489488674222266230737780214292547778923848152615554038301548811782291773221660411245974252442464613831936986617060139333327856520388501354197781978837691721045052106319505123129968171299906591451878163427127200655803939562940132158446380451379486426196482991040655457966049752957998131022946904306850954839958295466463953179446896043484882587479736205174901114454985535215105712778718829553174673260321067940786936757525661564280531743253281014730994395202302444522447959009619382651304433855188215662133890941876641765495695206987248683065208124982166930803221758060350554473176066089348469563482766009350007875446032199698596893102633992539966940752208556832676379549214112131186977118202169456518960401412286573442040217356664619902481617796112569705112858955622863527729322903495873783943554342298679335685471059092876417085613119009219509737954126225389557122079433254567019629563890398435419477741116686023575566757730040384754672876575123785558134047719891376961035428516486394301899976560949111533378845398956384458538708087424684769020617142222391158348178872686399587752863941770055111309939696888693456588219381293281788866622217024112350795592179215842527958440021706542578842042307164538295010149642554427305463612161816425330447509725471522283498010359044668250206153453748365249252232922469731256602923799976187726381715468739627323535714619426888135609908178078976501148172053451134816453767473559919706062001657857378236861128163416499756389390000998118360202465479607587827508746780048151788412910545996262449064716296555537850622799591031289263524302808267206168609368100972198036819657495532834103733046411029548976766881464118890132396328919266750313614954458841419450656665960887902633131608321964027624664782346057674558539680764573278216111125952787209598732836127841098153883117875470307096149856720490550907090775242535819236850585788435378530555994332155117140653626030252179793075359897061252227888318932706786871308210404393106779595081060927833451364879108163512619819565576332005930321288972613307039063471150058207981208025002984195554928876881117809112041639056722503305218366890573327103400758769784298622367418391480909847605472062947093880545597774157904415160281507974645016482051500017734184174909623939637520139957393548000058310861938976719739040826324213017010353922255580411672249555291584961560573119670793847037535820492192681581077823644771295413850234938280326052211972013026499295967523420613159521266169334746156168650584275021226349621231988490438458700648508264152925642259762084375820736936402230068053621542882626777691231734001031191700745458759527626224771026946445236229641186043364393035384092934978203410094608550967047633703970045010617483775872353601582711241177305757957830042177971408847147970135424564099157279121308171435218900980172978348771191366714358915328669142435012980922260432544269454021589137042838120941797678904017021303024392333510308026655487152822937978739019857277425112859605912397585476465983043348690087514794762068017838937998782728819561947141522393773335652718016235048227317499754477986610281909882429318776592673819955454811554375608216960287129211141896196349905310348439887666313945054170246703026228767847627898924848190988943749967343751297130670989396071983689521166388588794047913375745323889100425423732655598585435617619838159257338066560284606753826421730037694650569203519059941716725767006508293107204683949973319491381917341022725088527265645836981830629393347475283785967236229115480536080712874617697225960039135472193404943150199043172092912988198867133526700773305921785678398570465694943711366135632165786964686233544595755715030064375363393029600922134591842136300315114983159497018533551121153338462521987384379644475675050483147285275630242500897227476668307606704819405144760149246555276546992300306753379105597049851901155636149085622829645081979741635568586083168060065613787202459107363104438812030642207172085021218438588666784343922542532439222789040485036100900171046532383914802409405819076086593911799428787625087109347372281790996899928420002402466629586538093391937756752627374582640532491244571566725368167155898954471814016955000239790018618236621708253426017456491574878827260410272553602553330584229517477735161695330199264764094267530819889871702348979643144779557842678523252602567753575584254973103918687579392795043129452826746430742515354398347962557415925634541298153254367435568835852882448520342963752423414331189265986160275015884343985192175437897221992587177286526922860651932435944916084422965644517519718593883351848266070987772305708465108840885477400234924489932300691071753780917890439289834894044819113199399849430107357651244865502493443052109332977514567627423174003938960588603481737705272056035408439282922696638077896081704497320553877663264742133280449164571768550561810203274506113768310154720008694959271136446059563642042267194029870686721583160670575514139050678391895357501589873527600964704867464236196796188204983149598702980046316419346580137426280604493673086250448293926268666481897166710876967203156068673315834403891184239367004007925241802301243731078987756763864081716147071867876911069314298573040031757403767663762594736963410921470766294371882252639876664749520489323831256394741398762510344358545211067244919574693480748102916515659952059672567541948584579540102905988761751274082173228946696051640714378512477283067079664560334258830772013984044730888842378830632485372678899299906575758753909379496416527360094192848547597875795979862987607176252773026672168533090543298978191045968695920696705375444770450159814065500592264839145763000742864630992607817393947449102473327504385146265126069936085232069878891468599005607176498255003482448234318354420688987444012462159003391691421807735962764736222042469738089222649758999584855006725813003162918647437510494627680391186755602387090521656162306682225698186203152888874054174082274001666151441709635912312255953751861817294751424520812274172055356721524906260811987701243415817569049377787825529041492314319200879874169059086683342951195198653207948055958301436788094841000674726195914799013724770256844030485516063425325346117512218837438380384924636456729193274299609254333140984649311350766210297894475851656780926300241087744881021056989456133116676892084021741028364254533179951803628255407679318541973416284522562668968720797439622096037376468741192082360341181719446769150537888440184304258516636398920467051119821261900896232032207478408938356764431988384728735873493124132469789462814914924169055110363512469189621490264379595681389184934302509127389410247936268326979444888039607019888509816654760696844939556917639012909627943144804551270246556503924454175735536291679993433219898406636971353704497848598918627104170589209164846291893035327203943477293354373420604454525136234760124827543523783832745990062934907111486415519468980458781270143128401808377894048247171791774949744602300641418171680184762191014182999002798026007658247188966590999603541938606166824838934390360548892307246469714911364207683441663446885693893474023271796593081006501862787206859461748501928390637901530561221014296363211790785227488362172280365271243218560012779647585376030689442012924524969526857488337491680277847096196981541009670565166034556980557168830774692824397016776307361873741598005653954295793322906707428825108329363357338631030853940385890957373610217526642345827344210962479783247938752400974965610738723345468843867613231044125289251848309325479417266867893910050021134481374630309054133676652962585250068442597795045340871494362896406233067599133908415809740056320726628456090039099638153926981715028744804553024546061700808407461872382835002860272980367922426932680021659979684771758350314637304323712882224009383990538231860019260900158806275878550574581502721790966558208636987602946303251566180009255180642861339805389127458164131254047190141001625123402043613971884214412938476399711482106844026496656595591730712265627078668942125240071692522865229397213406520685239365888784365130973820809352958488482021624818248801694651180667361535771686913539588975519881407031454864079233021206451545681447392040601095936965577157761611811878859832665613974934299079547471158066054218497672758893647025864624453470651015649175419078040294014507073902697468130816591100112411737613571787082791185292379336277216770713365228728048813028978961844205237890847815831912340874982754254986136342159324734584568286740808376456907009303758400475055379486456623049610884098032787114463595673810190459198080492755542727478645099926404652069219615210488812245956148990313308997364255094198754068715055452375932713088255466629722933378359109672245480737559745739230600164145489231066471018275933279790357408071695151454204235942126387754317364514557320823086633916562531215769332276863468295651802596447974689109063169023021330022676903944690048294132116225703987414552101981822136884603477789136570875528188813972159701277675099589638174853286479427823211927572996903814668674579341737541673336346027591375252506091797806140485499556847247734416233152198041687770315861504898790131056368548221715834779345733785144701973902686804792315542440676982163033999294952059828937651387484492698820612760458454910358626720281007458589037352942976794160444822980137126417668436048194980241936311713940652834077248096995468682550315087066245051847998411751274007749179848595463849894856080461181149008188628832783370118358999131696098718695752510339420384766677043877733668758663787638510826937158969455895472840319657127208106200154115773770161797803874377946771855829581946193038960750032791303174773003023670692901892061848118348654923101667010005190869018143522981255751884495279468637033407238224439117208836358115876406714871394751476517435493112608711809174417864407441971882292265933385246143538695678551686488128319965139260627006481577645787180596813234158594744728849499379935378883793931259975867821956822825725848744934515974227156836037969358434189156515725181132785092763991669142911472239889667411900918330468036428975279103360699791987188352159254331920881763444532725657022499859997433805814376276883158883198122768689387596167325766099402294527850140481971261878116117158094505523579612218216247199489409161469189185673092297486013020475626827058271304383348553043299662553846023664083645715590679947194175915767183497311628008737258920213308358451334680530364687500690893588823659584599869733228138185185198764771855351816250918988260386700637015727020399871056784203456630970144513936116406722987643569010714773941645307923108795569171204033659607242793876210087931728913376396745697698054704713672136656210546931517311938252350488730607785678277584947535676977707462210919632415147793240160316600047286673653248029035396686703734320585794293164482430458132324275214060119916629673220151751357574618347673370246427489997412814181400823788075338149560316508116658962162803385655106925827561570706985094499469581437595962417286845180176849528455687266151664203628221167245167833659588128870427784335296515966534942148187707590758503583585588238588031437766481521762969144480410426704814752992082476481972060971535124740545311509871418820808342303995814294734815013295770788607246390471664619819138670152406713191604834247299206460021810015306019848331492539768486409403031931708777806723606402812735972339891975699888551058523045747706966162765732489248380211853143367629366869171289917641132988206635543330499616168107164585868713014313064319933216512503305915889774869374092195451937884967089738651228726327137404574409136840666977748395861640067469547887175801676216645934186399208174622525297788223631679268986029491853355701663283102546623248006151074903874521069086153295331196878386574223433780011121638612792827907997831118618185575656781000708555984185767733869635732674161081697073007951406025366468227239863706667629004346910020496455443446039569898135072169932134892100235455790999406133913726783557827781744595004770657780220311170800825781537655719879149939872632362331989684215361050175378753257326471670313151840144917735223440850840610869386419913047882169944720633183924639787831754289970807180068796569663585180296511886840113401030189213411196667880564200833182078638522127818548052992894096828628134863921409227762287439402727726213172970616286327525076384808939253925911189108860880623916894572050058814644027766744814701002913409218917152462490370190495596800234693571094952606595923357306556144774679649142444979563436972179928966263101017497094346030528186621620553678820808542817010577540047571273241295098336667182507799502347015603176718132205992244342694356951792027107947756943066011295621485834902081051791733355520227068202529633229763523521043341074272597469815232822998506504844434940544003038033643226069640047249010773897109893225537802506706159930697291340214608949624873474312150538228677675107330600237922071135278410551095146780660926350543084618721439297035505736275986486665764133814230998837017821116440349462946942968719192661208003517505819557895773644215482002028601972238465880130029940235959991104439208165194523286795439603863676615188361109616929518513980837351879185423901448609022440352615746751618125921882490490163304440296242787815595986250343666788429353817248837749601573030945621827511820327599070026923616938720067898664239941589445416781358353310044697359333684727122226390551444739336336852518870383712720399483292624642700418395428641194326797872546753064246300998041158515387991415174679681472205127463682781069326243830661299692422333487333273023235950593346246720133566368299896548408643000885750559479944896633603987253988216638100397033713857052613004954404570334920510506314720377082273670509226864647083128793067016298933407940318887402790071087151406723005833495979148504690880442350335793180448011481593736948267821938024812541278995947175143951657757742421679358941353541482223684257411995847076917110395073218786973420264945358901386729938530291545028218168909972671931056797646825733779702638825422864553794838838091630964537836753309382705047802097842816651609766141274657607606018753141241719416298233232507246033694301343361597011996512213957700797020300398762060311372059943165989129067164659667611872855827309780541042087243551616108206625260347870256635570504895331660397171165580268325144240284305896211479195556112065198126593697000064645552084019247710728107712880477499278781387284312734416401251432722236219675360109836107781722545897794945803525538207524947643295792039855263029546534003979993362084921003535121531427750153523849212171140552719374230866402564037749719044137359636989345583636524336586093963123330589063568292752160751589594834131354814273066608727423533483801992132140903244689583801986833558731494858628381699144229419504854999260634880265291675107896220376519315196000235656693741001280031659414605324733266964372596554490436859372671907899120788530838501301357005757828559118521966056430692395302394518587510050015808178932033025984654515933229850571703459818098129493852200598079762650848817450133936985583554687336853672137335501806526836525985418592587277625141344516824292653678839302991287952520537697917689694956656432330976496611475364832343501801978841505520172912985262318066540370844898953860204566892435701019020500443213335550436514736164310593794253631280997638592794371705774824833002976498361117288341639293854402519134431487514674914994484356659961720038836201640368960902675262406725435351422968714797807399645372694973062900661206702611181007863086969359484037085804940022438688679163760646359530002495189822796461667794731597139682399999365313425856987588864506337930270021139275982160504808787342368889947304612510417922279886212071484353710092565567471833083012667215796748789731175688707454335291135317004624354989958325144246480422194809361858976093518213928577888307877683043760247948768918584872115102955490360834783866811464587139849174519719580987281836756586522620003262612772801410047649344722578130382047754849778711498367867757492665704671222732140528226131880581646494136716665391939475542185137683677363963824522269995486705239915681108876534182141443001510468074615965084559116425632894028707309061018919754065804178155452123657102477529014752456846421148474394325243155615767816873341997227384252476328405307738593019388147940093387462033377052504889030079015269038003930211574601384377766136680812095942904419325901995123609861721593622962001549893820758724138963344793532459134875063850991851470621578243228694741530314078812793234343743687051601858057466924251043072565238393895870551107143896441482631638555437147814271203605689324998052590444954822655287159122904593818714994975509959102882002723606683609644557195724049578309744336695014752034378587089916525680376967326934804465924306819574110985279328278238411048707004170616061724900760075702668909558387448620342220813257791686404277998925700016508617818436296423310961674864554985957148413067907413499983774219997528526965450793081488133552499500253726724979217876685494406612887462560007364578622357396847477905315910295246078937705772285790637813342002185647020113915322481489415728741398319799668867286424665357071832993882895282639719623643728809523834012312476753281254634220088146339934871356830572687466171642620100532692904071036330395822688939326947182366661483628544200867994946212195952846072836999295347893910531022652800968937605162143572576890331436476747436840966461723081784956671019086708678004978882362443196454841778949902358943970556344871034859498223390902832403568571768922238708706195231135805620750891168510037650564779597428505691968025038277937495074939011282238588440019661448565289664654708290662208363766580986097242216888207418164526127485782051945154782763124921855666209627070559669844437953416090782797918079376621984520371173617113433371466992431942818113465398369899638641331806229753598661866449833217361952446450440558555136828165067477544845503670810573729482083166392357163154569317244893294361846460796291087134729989323442203023544915587414398859148939156089748234988491642471624935543712813929025734722907752717836303833283468868177790424163415731670046642236417882214194891732215060296656750107210459973242997799740528313800313431037333062530603260435657150299512392432875046045535625545556610134901094084506338992453106764661098966641834889425984986835372544418112921037735404325662969471587387173964674129389345884281422656388927385955477161570162314887101779053156766556098034733464590172385771738597393127787842537372883671145615223002841632722598223736453820392155320689840215869796212909437084073093376567396868360383337236071269973377690644025297689965785844949116869262914703267956378062672876384744215882512835951332969850160595402856288608278267382037472812753761320986764461163043615218296422465390044170772459445669283739959176509606192987652215686354557452467820518064705972505149011995834121689683362869403051471973121931784864899023280030483003127740496717156723153084631531723848793586225199823525410686289820093335716043395084534461760584682901838881498322031051892998651231669201867941904499512611000486497374031160621429715127599332459635721864258382153199046363946997112917315891593947137017631724407319385621382288452456800373612878703862690272006316906610178279548935249597866059487923854514383805161529533156413378081014902621154228064846319367576406428962298084472446889442027249622805233370220843640747496620653661077499548146789740873277096058951017288433345081240641782072755107791120373993065236805485530427479754928902305695522767426311933912862503362224918910977252198699535496038185653111273685130643181246556512568697447579954528189224183465086185060372619368228685761878733156631842177804977821552818804392554866855969736158080447823292008472950409433352264649963874264832998321786258752268949917464764714614666954484468453727972468525827879700322416059587378042831092854422559450306348315607152653041916024480381112334704035896180463920606079570655032687254679341992720147604773496311264368622826688894193484799761987218487096189266170726940587443095190184330105721657715335485045135368550393960392361271827269630480221673931879783736550570006637778882362396953792342601891254466055247339977874843712653138891374514848354940046534886268016515200523111598226888137301429668553408063834749644209528168217441069836022000757065758662760562957787487687025405709841478575031216608174309122272807087104304965559535663848591435123882375121239840391502105385323541393998740928746344890526904492452562366998611669818361816098834315323585824666353668057178671086179539466092531811351883227748272645897249503516254111809311302038055757634990073737364722385466742553687546997287431615541748896621584398196471140573430410130751746430089791014155378932657721345853073649878519304539710270883889036370034204265341626139309446429987568750390220428127234541371470484982997908361250285600579964645341458140049416259555976567595450346811479176401579484192446802692628902100593027213848781168843592123845927368659247008049585670019083607569477114801365144246288661068390512062817272601217451162349437187837058812148304325341802579185234172654832696827228189190972513891853505702586388666797223446135810817987309006597643835849014797996109755522525334796498817817047694304096749238624480332875960932747817267204489069046457383225597111632689542198826191197510277374994335926227261580776684871920993541650015654509802036799827043151970377428720442292465946032270898013172755342607906766088685431968229763860388468995840374296445776218780526684510373407486310292180847435673040018091099668630104201457668225062138592671621783651636584294258615335562571097785212435260289718068092285056184861122936364243230457486031901278549987398397330324021661472741532521490708303084779334195364876836996152227312394922548803349901996733786217427989648000906222632682305620028296942403336858411475116805962381027137573850086553201426541826276920639668439532263973431213889056578155577443220691804702551990338363777190712069549263651823463945275841905868523584685333597197206182047451201420418131095699385848687425542995782050849103103983511812488275201122073670958553789187891259195418496075940744233687401463280121112367463105312835093041897957614728405600518318615433279501868173883172820048273103032045706990200351863286741719002847948887788084594680146608093339809584743006000688521313290636253090028975650334683627053681143777517691338728265732823034531409824795945936595336565242311085271815714007821557247234538823540497051489631161581614093797065708139337335313093836112925002144946725161921614230811916870433146834998797293224373252271517014096273339984936283184799903355403314035386319838114274733862423391432050230663503559602232927494915944030642484518610668722677054151868612139271354188564799251366835331753277019411275458927804058628111116603759976690383197810540960937250353733582703038126558739548815518690895690093812018066200242127671964460030161153532079402316875048150568920531795761745091872295838776595444690702286979154195346933239637078155707032070407914448820836559466046669259171602748156690026326716367597656973260182446096239455807870023285948831977804659248995010118842062154596832388646754038188472919255544479526042003341539412788895638989650528712375194889436175512548260199583439102061631498900423763386892413927417155043338229210685257608488988566409036446107752750752721288088088587091544447986358794778823935300235845560396827097832887721555932600502326359679638239339511395410486739491125709542377733401962739694150074393064732590258868392543485304130354214441210985702773508825313095077229948051308548704936561884719595673904555329250490452802352925460396698973495751437685135102806535140696149887419453782017809524040367793995784812254843356651256839766518321987142969919533954781001003273747892474076132169909462581259943932778197766435389254426637085656332419900503431119647390318528589592185012348364814274059984447194710278265372045158978337753827353855448431700299524695669432671980233199083229834731843570177170331642718213153521384453166260843668145006947343094668351420345041859661685229190272308627460367889459012115481057968385210554910149366212018358836867453881559785375605726956726384417001086304108570937152367777129463582158085390365795867124869189306141971947417954339474004559533997812116039744464798150484624678395792200815136648366028230126822650684123384790435859028180652135379273270565192685347832340229401685285236793575845872598778492483670506570584696123426405735907564761286711212210669592571183134917093992502801377489379540884162070967615571992904609644521991275082351766823733837262534290067035866678382859439215559040597271058020619676408188983677972812251102698316640570677996390326143102370794565952910074043622710402380381581730194449130632562539796380331431594502808756649034330021393833757635815053282170643520794385872226241151691801363650628674570705827767161171160779855683493831869216920117362429292170625447451956097223134136277953922442040329229367696617686857271806820816257895151224948640009706328879394752346093215237386099117943612520323115497747286939342098996341027162978593922280248886632468543229299422626812328192213295957200926396295365625229859239339200772977067618263253079102762992786974420800053656416172296499753698575554223107701464856596561194397395144927958056489025154655205227830117628203955861934460645280601032868991169713642918651443668471445572085208917094168811858328412644536156461965754382980183534900957842467643571741762776808736885000901151058607008893767011812824086720122310421442216212698426521836068518911006615752262460164861497751394046164143409762407487052025748968771431848981455650755445445145630252880661396484271141848208949224868627706152792327006925864788904703282750779547424302595713761552887302479279998791130809767641508191428396859714795901428641990724095998170447593597391221865387987304796127009778087000993628554029908635019814965692528758787303988720363717137268244186330177821993279521837266067125162946753087097378319076457426415618164725391159172266381724453302033465812266521165938536529375179339049280795511916762284777588256764834511526863261273146960625405575844509020674228691549526329924329837395973682389798048484787101990813985639247652385655018420657969233000708286907749618128765555666479351576460788406642728634474060835877739773213241195901655108317853824447432956674652044335321761712012634756767663183983046900197416194377149461260051058312711944253720799737719499071158613445212796389386047637601953169120907168418980850618211467966960627971242299588211161906314616315065758626961117849807404764932674114637312961812929353703885709273507776430413809152059290407578490333787686911863890166389074705006449261192046355688923415247597752790603502869152951875992516967731724214505785621407424671921091701589125877011914965176315307151217657258583598102406770412911390286641564317517854623166829770140047939827589226192081295375552596327904575907093128023495490956050612336566007191876163477551344276533394196491490841375406296539254310193754187176981490108817158594941050887340800594179479000603030924599164230660921912256641240295915715883901245573790789066118219683570346623168134025631468813499089570816991447831110547358356015620780143482280817493722090346645956465887784211817954101628075929766359804183591530812942805949811460587571565111671560325848286163565890080824233451827163923016799574927375973108735676006649569554193954902744663724256352874215370747359565988681376980830977154234913040426299103072954421373442178019029570241944065107956408727924175649976035057913956596146925927599125939777558756262320763202143047659630338611772601875333651729635676854340009353600696594914310400454285554017453267403618581282159397914425419837828165072028878737057079688935954986006489724465642184983503113550030171118826268002383299894849395359412825168179086500171281392528544654967103806637934633067212814057871296069578201297578636635436008882694827656770812549502805514275594164581507558422549267533203050707087018860746679796212672582455458084588973495302576445845985805385370503355566689766020858661222825068762344963640179635971217191192393277592991082312080529081638969978386707666908970727503844614938259580392105294283049347803685137355912524869266959488038734324803859845649732924232848181110139005418984431610108516094801456559195409471680608398919825155344074219494857104017554175275831871878616776143400243642376970780130115623872846615631755369156751207095089288001579875150485266635195759303734437137597602588733485609309627915638577285760883444362798990678893111745813471016915059942054660348078153910971358780983609855554473692617096890471605418701205263823622141448495902089245727793614332446233840101692739041935854410522550646373502715446244718117477297569011093099770712636864424728021187734562617113502892795421876250803314873650035855229527676350029517321964570174046781130305084072944380506316732036079110213820379700454300601574363456265055908407203311256309537732364132296808593740587717634499770697827035036809195289907370835618132072859860750005461149109649767395798023659947406267907922656429256103113369871916138684148148153986426552651892460805538765869530689093426363473788837552772934536613405207364689034868377495881970413263261160993781622061150530331334601558698597526214268566029406985635099436562695514276500288401675474695764945001794917728111430262575905023400397209020955440406050147420581251701184769363581544544206639050068479838693470416412899359758764528216102581343465079908629684256421988346567712662234490188126899803556226026871848968688064314062726974820451063782947851301172770195222560955524891441420503358834646881246033778386174755212045869311995549444039388075257502537757195157052430740042955470241051528011663068804628698586184465222584060183234527451656033593100854213143118425277064731601814367446655718815407302360500650624627919944245407689899361456000355186691125310563807263863601318649851221027746310515529611250645315780506713543136741477156002897564304413305919118660570696472509291989226367236337860197997097309168511517049765920454101676667139141253114040185747465867418804047523108585985035085110566277879522837173665144392758502931804663217494349886215006728048776600906591395002272386475151392229613044485420304973897017434789985033031528048569714652277867704166530011757621341093573209242260134143703922690634736662219289042941930607808900606972624917791519175402826892910769641079380988277201946954395425690464682137522620924016864538365186877448575230235284949092756149566147438291401908668340689722137781051504763542012996831127837599866305323912707565619378028234845128932233759783695603019226695123150306429377906562724100735641833653703376177447471755187518436455502475977420977908653332273267505214754263690954878151365120355329314501061752753345305963387690614951330233655536016024188456047985982173540968652017162224965195478447146728113874365235140198362006595924286105789245733175842018591021561799605370892359462219116705592153920797665684687713560111476576550692678310928642102080557373596426088174685519050101102676272405834015786352008748754249992257771031971047919020440674513344137114175491035139464114668334995624271330902512733228677108501270835607686101694220837732862194854939561870545297721091964817147681833672891195343636664584703556983589678225060103995460138132238354321967476520294484443526939062435622992247505735236275624040774658191848424163200652621006166487633405600660625422602564468011546509458796132927337404212480797194400568022411761170807664933415172936782520968956188376910652757331965123763666751209084948945880850377635367865037729209695236156131911983693404905208490933466778427723281259336019326251043135738642924350845988622636148116031234077060339239197617504034530774688355739149461953303285039807192032972820414304475484596587300120097071726244475378101554409624997853895382294676575185071298257561555954982096459360684598281315090545684173544406893497314275909845259489049068634406316118609862047558817172641579386301156114204076282050937889121240982373233043492203199344243629540707058975528160963521249767455362657860870210302830383645828871115115931440965478606530600899913914225742758054285595829246365464434061077205441287941292399436801775916488397509132981167919195745367848723902869271230401524413984755975557854582287165727767479474616461608342724455508457647847034904199592478469555232282756187516680664354271581090962957869259360573302811629398841401037907911116633343400406574093753555755130077894247927352776603099441190350250162492078302042621938113626788119376260066268641900991488963562473248198094537264054837760353213681413075853723537987263093147681175233107866956780721379709588054562206269666507114334408225084199316043725045715965113775504479328525273288627528139183822045494472463240117874728789716665206113211144880801844214677043330462434290488719482090612869534903159527642064879962556288743724724928817867694699253314570873701072164887897256159611344296135960595407168529323109250403904843522301670463084922234503557020393523966184098174196958987921274397012233938175537897040702584381399700581890007862792923060344940262280476688446173080154527983410374112077359001898797320192292512276409051783110589608875489264297695916079186025169935559865494671214879373991989246754291544691100263092436781069056680073647193631212583298401591978561445242835796197461356537123656290604998937119158457633059199789212097758559024860343647962878330482817691134047858301229995062629046705386979906042136147596638562327993668854850018330216885542472977570134431275426738699192489602356949116007301058606891859183459428004535589863980604396208725480984157995983379421948288425400795242135829157547996997330348076457764142199233368283723705223580208486520551768582549501834611977648825434356373085009947203235306848821661787038285004661517601201391365291537550747293216514642491981327395399264020450809181600964346416887600698747701501916717229196656777447242506597357314162298724543293677550112094701753129653247077526845333232560329925711338238510950432380923866423656806630422937407047457895693632236513658778088672750844684453889986708358910043982240205730181123287283277065460600863475415496228217826675506816879263988057328363572333230798898360972834861503120309670940305076311986888191949942361982660993262238042781769083870463567109728212706205932954610612231486066608217803558614392644585496926654878177392701734373134434494992159486142524519599859486143313017375996846560447372935900225391263727748855442454889220142351661489483946452319340572331137184803067832817512174185457172916769928178653593968026255390922789311125286595230050791440014735453736299301535125116041484756702850974959069231595261927051415236271078098476070586254234867063405315115866791868654913814093827038310570525757327792679458576069000424525197916095095875195922433966136094570188102504426762851546272402356606202667899732950985573927014095289245811650294067748509298328897547861380566949216452874729792832516231100859158446490540143233187881959911777385974192121527999240216336350870166276835293580331890741693830781970120780465060957478066466041920117442157374013531603088423832550143660923658541227725580115675496310548077121235876181911188445382867914394730098146163039061024950007831114571450471360390497493819728618325035208782277088956813834378660979872881514352693035184653065191074284605081486011717911860175000592013483262991889648295807909999941771013279280822987214665295233212680953245249253791127490869784608983449918833110935007559817039644878108614756718207151705634353132773441163804278570388829284256658672084279760253074994306325872783039695337530193585854976255655256141908334894961130342631307915442208155970791620011527345523536133473537843495025689128947097224759826799467374582053424708521330547433450836683434114290207751106546447244619584256352108905133934097402113919643551122151920901516760104792152610683756101259130132969438732198392130767423381816301054255193214029295850615644626995287478677101109461651438600458514162177985907020504385168442396816366198209856412401584802282875737149743819553914277183245720916147359402453211893426136758098271549539754840480240351188366823665210420139930707909817332559085046147490136082496648417642732997619949158992472247933468980857775851569969271618927797763482059100017295318717688198465742236176260889425507263251723252057331723510507072422714783731662515929964319016406455782979411325919926810683203196188236009171946795546359041113409581606888534972467603611118605711629629348275083332587334929863848945121329433299911628003055076104421370406216917550004136763839972153321323641863490979549711603816547574085916571186312482781505837257234234647046536980172246866242462703988182251839212005702151521529298453625429250495359364413815943362709738754510833490277494706717000111036309370215267244167312016421930681296601290354845277820452394520606717742073341176689757604997175680074885526828689477153357151279115742107741827337640420431126783284865659329990953456424681786780875118134371993589415266284671813968072561234938236632552677195396633041384387646407375727019355100485352127460575400892842895798913338288531105477869843500892325092110369622588281171369622512780177582827828032589714477016311302421858630919308327272871373439505418786623841146503033317682346628370078971046231789808675691319027228208966801235934849110442010128664354002578966910633482930121294187404473544245971502518337720694539606522857182709693501705387974899259630866046955869825669425066404556352920919864730012619232860783899274760653359527281277591961972010489408738311812296221137850554788784976095387502723546933594032074796775398605706129404954640828094200764506183747995177351493168903260030661038705430213883457087791127384280956178405331725960824570099687149144924233178050900059721591243735247782382205677697206969471185905077402598938072883166137541564305963665624223864583367624673724107285644204840061211986595244991517612980064070896919811907723636723450626182903992044124263611339522510956449848820257449388883173564081756137476586935834728320112241366598515297126527440680080766866347472573149378914652686045241444569319090114699312210473448365634517871662201898372497128440441500791289758132848721506130237434295186746502235614760033784868688719268331550853619572814183015225018004825641881898442077902369267304028630070359359459927730240288046755082734152767724317094737489989688702636538490201622162958089715291399958195657006218801862802763650017967256604033586654762414090429296354979947782272513115101104788267212558280955470331118363200780831706894797213170003462426069137213125191202145675076831892466622973767874689193874911326122769791531416980743169807737086997814871111393812369182367801373947199817864351469869887155154017220772895584837184870049972661962675775294299249217329093772917644150119682401536001154468827493195320782271180804219352650893632324822734058266449758942407925771049920453126457433541941560815965854428255418092738853318299382477165404215994768608090703663999776538728624815845759705188506856808043025632972764059185186250568958768536232328479132229002778121300168310638779872531470719711905230788420954721600084272682494699738659896235146633478236311636083101444504550012697049235357079282688882533470725246627185946037470831737881058481737786232041475042529786753762606527870285477597903853392341942542967998265392332710962210974283894774036765483799964392965579730870003644133079654368048398099865779217063105974206751104544653588093658078797455906123490023968481763236666603731650916413294659600104929223381630795007972677483669771782027369632959888314595405300285849045765019193439121755183789903841122198137479672640509010299097502512606686915448444795648482016070315925056530190873255735064193476303904620289107185092456737299988681436074652830112838679704935828906348898465984275605273522087794309715685416200207444470282047017298143781960674787099029702499705454440329908262659940043005256479851983559522736962752643072260018312327894161213022812053444992678475196432831307519749458224672621137719759497425790038835340261241472114348065936905256112320936053733032250676407229587526745025005211044663958160734971637102011665698188855293275173334320822157018172719371242168747170315750778068006326108138409439756198889119544190395332234024364175021490969747496474766819761702187785918513970226555256263737753977197645860412005834474939881977565433957538392316915013639811194916594548380106330964327844897631745209202696214115255639855805954536860045212765534642584993765429483790610965167744858570912654541956224274969638800543782897507371259712638637008711667758093833979124914981557748349246501823357563505563543397620302277106474186704737272999654948121072110508092299183752767100423957768622093459600281632015029955706029694353424438679978227298531829922345369571280382399162498191687746863364378642520237207243135468121771136786203145808215643629015297721744003735069746014274255175547638195400124022111706901213278089976556155765188649747078303333861468458486463476799355377602687963131061524997306623796286588249879573390603411565560371997912774818888794481445175997540728839302697269375573932125220185125986385966914925140394559391501070879466112318822611902181240413571678828765838340493332566946550893932341716192126834760775647865993239153056065917370877182019691720378276014975705455997345395489809280820413068648841973503556902852912407069619656747743126376731826200919828072540941371370147524899286680644698037984457084420396066026758425607097024491395253938773166366577836372426848931082067378972441884965532057087959335504466499498955878039971075485959139972966157781006559020191042419194125451819258799079927326244875096446494093173668742515204766327578611906053088893980845274760670451506284482173818466718546526754656699891507541969996763859780872599763544541052210085100660966389816293850785899985625879517563585608474965324251681410440913457098449533982244098228910134609821468974963318924233779453385344884603024617001946618379178687271762971359934378254351115416044776264284885968123544945749938699784186176106996950678754573880372994905638858744148631322458716259039675579603028247931071294979745017014976038425300247929161119474354384973045219235625071648513936986192880103996727633457079509667257349502073585887708987966041106576100079362379291416606477266161041715443198398507590002573112054595437830804022723479442038183374533464706136040664409174111349108489676002461224974868189120724969321021198183505313959051019837875063130594163115549711386772819959911912296508484985476345549956024098437937733835136196112619943405641837535834613367098053891878608379705559409055825675133437991464159344145595502278658953080006092143269459408798332568960584306667999312852714466345982619796426288513692665601183183783712981580246655536398658551975161938496612196136076713299573790440437978623115734262918991334723375782370211841550885624695557831857735473680166010115912232947715231260689338840742675771503685239221581407320148439597566514286875632802811513492004609204222221545306492537109095155121658181263152530520917844787846284541787155742875140236594177881298123781854273725669026176603883796027583159911683076586902924428488279965972923199125773812093030027898118911725072238900382022097715699205328490409296438514525663629109488883945683343467490966007442161147620678467295243574112097496587646090492851819756452888936735853242273705196917920921308816439712473234631420129831552346528307927538457971993767119402410882932269898705447091069750211341351912290471994379759681151390836786793339386571105074655316310993333231060473992113906391241289523819799312701006886560470771898608449391861176381844303774906804616851271260857825414587046430856971366949507801770250699320687456888985919155279341890865461477018450429844759797471115312889782688100925230264675141882101083482834174934434173912193632666876509892395455300661586012951840572380237927478990752809130056452334668687342787884185514405929006047509481876968636976882851323571887337004702657229114310514871089924485764629899538191191815447217361500126216050007616970188068670878875289351031847950417193774055590134751268834695311307113327267064898988712197821961057472571959145482354029405206604801798950474164883592375390018090881982837660946412879955737577796523390797216427777168470326804419813205801822800771238693582563877521618544555814840057250862849228494773120406888884114116867502802186872766430724906358406740210775714097901797290442184756943924663483097869099403934638900376678200877678943317070014805190568926989795481631940387706289147823415647837898683427154988188048995617811055991589888480953527936032129765307360050385487812192527546393153742092043715541150585340507243726630076044297695448058693945186477424330762437663760716527467018627526827997430274031560897025912611252482699650192102729813237741634855245626993917116920590983860362729094779338178976485503632702728156334861599667726865347620223068670887325825425480744228553270755369633882318102940444250619014277053737186806458456103552452716881055433930334518600254992459360793841190572024935708337256458435182727640179308102485286306845795531777558421472315558194771046332552257510787242426075933407597244039921539850190100356547701830035065177647525629729846557471015752124617869322377520965069164451933186277070659412615883849842546389817475356848306772308238689106618629610104493755381025932267942473533787200638032234631226340798610864597753443313149448961354497378627562357592697713964039388095473163525419015212502416403965189552368046504974281069612797096685233846749384968970771555518456726301063475011633917350444325273402952057728982638127147217524579222070867402111540802129975660347075545735401657652071340935043927024605705708570086350064397385092025951386905676568161787760618628597374948072679827524249636386278817811778061602137041822157446758705783126109104267109876491091690031097576642443964955563297890801096763286412613516853279450763603781613507133502933520698193738902943797116415983350105599485609863549665104042865025627935396020619770319160848440057609995241496479269082349442266543625753966044789703809170335687870116110405480891723643656917720697005792044827140675843373658937883875798728999702244200498239927919998552984156915288619229123302382560130003482299607126495300023789803401737105219375752856321500049793198011883466479674218341508136494164238854617791099560092404004250113442395168386945352749644145924361326392731759058502071447450694294056811638293044707232001302511827917676119512083914808136794182841037334935580055509779866298409697275736122089742705405643655386228636723581242368847623580955317873654191319676575924290462808758059859048437342129997613706305574026533812383427506647208306616017383040318271834010922991361915135053463948362651909334439299165245167341104304521805677526176223058401782768091015577390303638455406645940056812838640731595142415476468126011039336884705053234522049739445541842941868446326903503527540117473714788533841877329794019479443679731296197819949880039032655407106193462671045212828272578500986824170769692434738882373615446993575687524785970904501422231442613530625953452894304332425941660004667032106580639345132921548135275660401943505953619642750649961476021531939197272424693190073579350719362421685852893967166855269713280828713177397161271761979784557488127552266048457956146077021376810881445536982321682840347956411633783964371943131345533606594154588930364503226679857945160312022270604726177264239571492659606161263260733384059814964893015323000930286916120963988493783685714335140716759308658130747410921241394319022613622605343016941882035122244094908866229936984352516210389963189654790184032254660401725741184265923119272600831005001787459290856324457945687156766325411798015855932735985395183278224004168090301591620690133708653684475550983885937052569906105198512733284146346194719966969401289714293156032252419668436644536737173692716102643842178167061932084145050367864942395086498339375829123703772796647950481913925389657907310799392063205904725436956474489088857493990918562851655292160885503300566570526766541424206930610296558632407359989419258570506355165621644085479172288261720762891543365013240711386322576769972387283955023869609764111471903691438969334197304472400607530329613239374705055303197587689705919206998369367920017911928757068361371695586580672206966098056749314217012718283104864556473657223297418169780723741683392726903235859231821833701562678222977937213117616228338027403421428173326973151316549052001703931249898703961650610314220608217610885312876413920665032938571946907785554574653299289776275635931017441181621056844416584498905661535845024729978845516266077810728973223281694801493190343536620870722512427904482688287889170102592430039274116995432451806627787775455056557865676272352810905744912045219304488885968174120055295253293256606106827163589806613698755709585554394371244170671616178165713624073220533046467348966069062034696591037306218500732295656835935401594681208553589441365902854729707032701768738443334252666453191476666635819630482206169975515914387552600362799369095258435237217799575729605744227057823896070380592749663658451827689413092035687504569239530484125600473684746920142149284087744139003891876111581873472782568492529141122054328047231819892793895077595532376731567544964793840218898964770188062558032607719928052585946623539695720150984835499443026518354462179701025481370616204666487089619974494645890920036404720090286616933782657583549713982230931747395466894259995770609572986761411512346440409061520145234680408528680905318824683479915040527535767461442797380416916064307863431279781183908733808413419780125116785927406048695306437032627697193981896893687917717352655826573836203186794476375862743285875317983425646853808053178788320946971771306308496891302274102300442631152962751029640764336715263352526954868960132991112431767393876233525963767624353848802555629360997768096648055046101846748112489747197014915115904979049365497015545911639828563717181388674969216886328364802460946382048502782069371194935842440111548825274066617468878339384341683601089805171837095957250505479682570076965930301530327241295503936747753206359276740623177198928142917785940850162566353553202176261706446072959047791574876907983580874298008949007927212937030287059628392649619983308511537438866650558137515515120248994216451389163132818671499477408707278473585615423430013854890250516065360039845899906815715634633885826245125061636984307505960675370158085868876594506068446653400625096702988989377419977530109770353359083910532398702323145056993627326714794556202097382692953874654823446227032969877412734970822807759532579869338582552289660782293671624599003194307657412957797325278117696148146249881670142651398126185790614702546722886218061943439395231250101875456059541158944608258659507861330689100956051471374903333091839894317325064863003461983167189066043107173014538118077694098656107085394557462099763163175085070217260545889612941889036152137825661538949088804608614498332151911431128985308957930771587366490672870196483706608775029011404025757709714175452167592195202873413250320510002245105912362425442392466378061199963509457416562103683444655282741762371173116801161289928859309396076021023809346722774758119219693641586083072516990798381982335126792475758392287041183341623060781899785057464183879217342053581092775861067223425685898012262849532020541870810386760916588970234983293974307275385042137423538153898649738719591464767733640010865250733188481640623577610469808019683421933323195297553553246127244179670890709818490569254291601257291390072842131328698171447903394048433758960080449264718180686620768669134582547400300058447799690948956336519831066916067788045187473360801473776825369015314756854208789474598066815343805321107656585141276839954739094727295230304763896828621269218905532178937277283007488469716499274649723776149468081671612426972862069840840206399237372473953302175382602883268263469240051386646759020783686851919578445550807392312400824230140495955037532555761101864266815333611221857916669682617378296412747121044034646734179757902486773224437259523395415596488091218221019977371470244775670063322282971032491152339264631692106269329551721791594552639628698632739721820754507236512672057031734561712908591361527851906140324460397713566541411206113766286062033966581860549569577091051226059318417618491088654366279669319176137118227982397976701274642159407281803301746104625034386506656546595307999506796636049648232127396106453470898940365520287773943316391511582251724490231201601440467507869851927605364620534532795094429128707170686514148977968697390111955820862758533720894249438111156158209616545001382706005077190507857833912504116598032391449279912464989754105048294888261349712732987498915428895793261924679694425189868070238773872873498157654043239514867140668081587583636457147272259854201968974345832192388913064266827330426571082767065105201748544864173874613380397844483000013547220148019063764573980851001222449226071113988959030542767258028643606014907709524842534410398822134440980785017566069648902614946052404109971654773288029019928236210227225986057846667692498888391701351274908422915125922661359926797197534679000599973912421741132156618600097606524458585609206663358310920355649382611999299431586917475342939417191430391243315199292313620335068599865381316384849856335308623552294074557573141890762470282119369759594893553127344885615951540306993594233188623871073069738130349985561252024950851071239742544655714908222680006796821708423028442014524659147293172057220146012381110304587237828552227587724726903732748712624346487746517404299918419169468643599751458824497368236288017449061547307750521894924366147410575568957675021676424774407575368856856635116042894283208615576362817920878133849317697179860655620572899852950977248927248417904178277002688076123675579911450020994195183300190311955796796207635992467132638822041430151724972038514831719014034807520658899911359433529331375759741599814132793300816166814771891542043068176103616724891291277477206254518545968661433911136483705364899741899533421742593236026983885103037165471857029990275295659985357764612040279234290121101977881126413636684563966431689542133402709125612564691153619020235374799769932027573175331122042212072769258588005337425924188114442853989920554398774024687965842220824036854478658640497929602125376752931421944052540219258818195248780604170697246560158936778451759395976466949938879193169745238230483451057941573792202562487000229002061204455676940041448426052981007421448151821348241664784728488023047325542016173486869198575516761722971956595588658375980162693071249610773277425838605162322927034275501044861274221954697628679613615414006298687457916759485446703499620167754803978530919522794040583112975742953821824489990429474664333775926139951706159930338900617492213745326020171730258688141099853703924629635631778012899452166984359303886392639569505433828465915957342002811832701791390318307604860191984001077744861057807161910813043340148286705761165902222267346270349411309730800862895682158217224992380487020595535712402839726706630974258249971096654138322544511751242880487715716277464991357876699544877018004712759889508337911263478168497512865245737839144468458721898661321892097329447791599313414822219106977060776174589998082358407647357908327468877942260414054394497554869954104929698844362240779363568460983635714130642794911835138762906369478554561144179132221911979901332331956507376607573940052697752561749748844841121632835461910853590470355973458651050842344158645994568674654066717041375166767296451843372625986843684885709940686306509527836986641356509203028180541138266641055498640115572678218965796111652002303498790982790869162053708816421018147633997754440650086902236362226094303661589984024912327542983481472903759886335659107867823697449824534297619587682240568475640989332471317004158098271576929269948067026857185587846556608779997176357297876813211297229017764405579197619599817754727357876963089529847657453109580101504441916159201020199398055150384246253285822916198126316710567963154850653680878203940419585151876595382580679950905937740702121399938057708331093568873845971042000326532121942282570586290466274362935924481184676567851216954633021487307726936401493665318427797672329757827378785251921389789895827619982429398348223922117098166311444873600271270907898910681458730015955020895025668742074812742877138515642760062491051053878354066609673918690041154793179492548725018445631030925656437365149408640489767864810820971498015124149221029074371529306909341685483596029491074780432724353581562585258605338879027618723571312538744285386333693743696830833486079865939838328883883723358644297556728428848591240556774407842408241340704557557844148875047995975514327794688020999102980001409065804365737119107091144461528865847319332480857364809053524226284728814256481939643867972616153362927547747293068093872710966164757403185889079447837068155340891416930774997994474401560716672317960315565242937443958695024361134994449307078332691774653430034203556062925845003616446952658804346629428242061218961955222473231234204718941472180027865357849167376119616802562521772385763705718519794843918174254711011178169627895646986168191855551740562859679138274163891438772015202482440987789975547519642017151438784444308500034040723733648407308948506620346332612290791390201147657085521318632550959722474920257067334954943055373515872006792222372839497793396844321017329094108882008959822326385011653854442504365373057537087922676318121045365306175264313631845426290969435275177002019473792157549993513286608114226279270261167220546626999923514299099168631270746132175532055131567849114354816175077047804405402953075998284246447229649156405391595602031056885455817255557878513072582262237013426284460170344358716297870994908405303126398411855672668773647548383244665499071928639975861546483708439331487836040348807616892495338288135529551161547939559617721852522623790994058139264217706510427548014611031705692855288958705789457539214599759599999733623457229154909058958857985362080682913763681322164854992277486728108584800052256227993919471725163337095537165307134625933401965182464407437824649496618289947253726572539053690525374260158398546822326516870339567084117325141299689411728163722118341374945035223057277250686770223057988378342114040646671146015733902355673063518541836091912140684765043024852595729802230238691681100190616990727900804446466534070052349202876988737645673906457948752718732002888968418097802316706037809420367465776297459303616730542686015083345320473300660307143621527386055406773586380332961128347290475646659406131390231087422798518660389210753352035393888498216240464574959274996448295887624090584204120205829363238619746365167791845804183381273838212619959556265910417696007535622950563556414545082891347331429046489546034473479846768825985770292941837487512911495558319483302704726873657843038460840653233588103654124066163910510015725763486743736292387060295829870084273433005417383628637025334418978754421719483997544665633018040141284323644866881416999073600289738002264546419633421423246324607254753619950096080036782243041293389336473409382114293928186792925328338770166168370026263267088733125862285288602685849904604883140161699937767212315937509046790484693321209344806691014171196858196920616635371239686473921725693648664472015908567091544708030348233042570099373831492085151663463677099640657704661572343454645276976966084572157753358840047838706611315034384477462213327546989927345020996256710139926212824880586772370267638459734839526888276902141191649252593314866490144808010508158039159644329532225183960966528015222786285025400414419501150600841013328463410262763161079836672999824076273436279849148482371789262359691624865733456253401136986075535226731612264835744315444755074023628394386700036807943423756243578773700433882204231435316308269763408583368582937333410322008076200008417093193836192599021461599753645755775233680965462455859985612958841524062976355298366440312581587524786774867218324140613099886120875631968173702764243762701567175703106689436337514870553903876946875867696064248552449377727115645696450864392802267813533904701426727320027951480186800797340320259965993278618997072268747433089266744792943671555192386198927868101344001186333866358461815644295023854098118762445082929074958922513540877631487780005530636577103094822554161206434907290869510848032761821673061089782961663423053409086153842230322813032724302794514386927519085358573276882162298638240828519591782307543738988808191017089597199692419653963069845323450157587385392541296830097276822705376693449162831157782764311105557003505521918320340797004612157622658102586559834987427232168865663206159110804046218831191490508228398558013036149952446290511463832668264069193752975493274192024536207717190649112702274327458442079663047656730897266273321412705519982513610011912019597088055893152231796672699201288258871287081356825711762735155313463594728855327166401978272112330843040042560685985403183478450551252199982317584236070923816514146606880669854663740125653244361369111533246644344150859504452051930023784706006850498831355559473721992296079634242693853322136544848110489652524492823268623055336031429136987563445606736161397938592030634916700845389205694209545975760533339671088638541191936340271666496102786607515409947952495695278978686835466038474086292582775888847725402160023775429898292446480687107400242791444745287175364771544414335371553295431575639443347665134357768984421032288604394996395715106190182236942083388250529380437058505046824776675548925513289374016485321866692030290537594758971819997894778740968305542898300376942239833313220705765988796646783114421606021333274266072702063464162242339524726211248909709890610193790684549657971360248044433062189659176448970136417065057884432508520443363775282579451689084926001508973760588422435557184625171144569118699513316569401519962436632233160184184963810091557233292265135782450700177734624510997083672947144375206557645845476713361574713110809978714526142651231266137736833055132482443305777876280424064713276677593213722089901242879031027217999734404171356786540633403111776327522171110934001516504278039816182653922827975812660856361981187808246770394562646561258874326099012542297490765081595492598722503449637223821541893662732065888842372720281579995807879629572232927464027725240449044267453315792690755916502369223680687267729747547380253819294783767895076580256439997794912723845378994279640908198919204865851219612269409956128560478133425957051886037037025365459607495417793013530053311511154771868245369539520645661557405533781717748072640962546267765772269153381151664911464118481975095959960662206156954008239951824470098306730656194504185551470690316630012508453947000810132768671007020986773082590076484847597584486888458509638415066856292468581095445118847088380714609174915996106100910099460589488865193922469452286812906936212662086555920491367904487104453037154029538043678469842808637218052583630846678755739138539840228483287633026645492203119510006130891129505999238731289659955416479077030969714911266819459452335675617343435285895031266963035601824953641772780166574305607794455669491668438328736942591442065638991668664321083831877171372122636262819785627747030978559751340357856830506803251828789330110178253334635939595121220291781228529479440420164309546809124091449790736720908628316912586991521764339519381287531524431749130040194960153238960745731490413143877662874303886602997471406562117972695762129255797464720561603288596158418666503211179004316354318158563893809789862490631597005323092728555118368317820138361587565881195147822164698052871701045228830538225778589370213510835374924326059379726933215938293484214926494296174748400753815868904945633773118716668224812758551983678212977615084306733026751277296461846759118762235464982890688472409773086353142729265606620600214148065015529851984515359329210630919250824908207194116172546112572994250745389404803657779449937581185008588020957572229021699513181097115302125374294887568490864115293513960192572560107763765601208465869624156459818518155033362380532440257876973990777592564848752486266737787329720951686577293384717060729353902338069408283567780932692868260887380469377636703161650398607619859252475932143001902153923184030550823790202882351969603944171389554369220191628677032945727296902895534475512348791513048196813821377481677635164558729136390268171420243511041652420585120694132497115072366133175547433267949489342474764943027384366716193064999782453019609546990268211823087831393576617319757605267064087165891708111048878713918553157681313139060690885789427364106492156973959481838832741194208620292182957651018302714502995489173996700320404574181947290722726658552222830761145875443960149396872030231996465046977494561425642165285437153995523600483912274795548946998434214239435541388790561032163848460020403143768246461770954104755570374633228783567511750264747040949332908178847262287288188355365953009604791984330239319011818166980439954752304474156928637922368703300480599500637894785708177068721360668205291797634227468802707243823502909554038182639270851491995199710626748908688253870727743910329770766127743828275843180652368491049075771644834742424055466533805765513329577917256035048687767677543237943967304833973809737703331970376793666052182098561027714553785031187733471946888691554508106407984651998865777867125134821454982782970189222024533509039116289675040976126898757323148491204970121989300251047616825277867945019804317113097790494224272407996074960733402449066432840540685760683345864879193639801057840548918492169179652551831199209171965364268170716104907418689178071315473795180134576347860018130351387677786480895627630539727275336211862199352483108558012895511913119268781083298128984573412240920786633771199111275586744038573783792146874848441430349891160597852479090758287694709685635552093352764278028672845493519532290565096476312018893153951310691495170600855889278374179780940906909582500979183515058829975101962546042957627283980933569516900762769449453295736047236638868006337722798296220011136064153853638064400140014804769203006498447664905350634201754551530215727622038061543923736921671746803832833317567734080971607319121065265947058556588268154737785404261211303180359411868932465876036806182368476766258828587230996729314533857927007015374850827384420583791015109406047898496879762004923722751532569883656468341729474702383173239733717413540930490854119625343558755422060694497069403352004637933408278211089069923538260517388912252530766234745995532640397193892207423475129475342262793262660517845546949811044781339071865024740117839068541345893167006869989919182523110494507782341190983507646824072076981151822316818125419142266654128162676396430123084347625774665438927815156444788699922178203566903836293934905084952646714494082634245408244097331333768265476440089432456396656662324908442101963039518473080118636316625849141536471963667254578980790643504402473665051455155582954993143451474950222133601876226914155042780784501414608490774288364203317440897579830107944942976801173132367720548626859325768112079541445482378961185802549199116727114844210783083367989581485400084221574307127057987195206090967127895463000042691327754176456164528638280385576488443991049449066284965732468547750083056885173681138439709135657121366669763471271054146933410003553173827023342458892164679131635530477993569385027967411160172078523370192548123872680582720045595787336489581691742533451940722927775772927600202895708010634477909206931557017019543600664734109427063834179235513989057334481308122172162199279993548548121727566032594394606134457319424857555536872125843815651545350353736456254367375883429971384973816569400518371470246788579367563487898644881567734368412581316805238256572177180484283200616660047936159637499476398063162712615965510991169423230952230695218276980369875118704076490858622384670328087056845403866386469206853766217436842891045815568792160249317186210201449224826129481356886690666740409801351801622869597546150919500411167945700901399024646239652637440922217460675851910359152437847376574857512976365713742819317762537653569301799735370545363798247643827210656068623810234510833028975461331481075568781586256256767717866640320812909888934143283691322037701030741932368468051913390840232744363694940101200534978681447692052214753938018598256636198951385522555870730395790848622791120710876748969223498186106144921353637891515993537263051611823612465920931610256147605793626299226954765440413920775832282962100994521799364209448246294043406293786217801749749547008216045816084951023203875859700278133685167224487981066412181648342281824784399107241898456217700114472578341857031915753029555051784995997348636671440675271462509423884415575168822678739841086247725249478636127756535632196321377644554884413363789597509430242954455699914847351215562756260500808727382656627141003824953286126339152057638965257889306949446375094963745300051965395345977067931947997991123392742583426174534502150301468844928942814295342087689623925472125783517234068872287746946431676352808938472616956708520691247607070300091601850995838544208882906369142529523662574176971663150513589210165552136983355591533991052048559168228935785261160376539601102382556445432598554590497911132724332161978796382518759673383170664649601117058367219071405546518622241691273526452208654465225229931511911387740720660213767699469632151328087605408591267384662201309134601675690818122827572249938503034457333598638830228910830133761716066567073128265710690464596568174989230006421822373052372004435074488577993823193779844060160067693507578930020557848119862555002934989649941884148234134434946993649021851706236920387311671647378623953684120897469223121881911842508635581140505690472805309807618962056225341903725952663215637867533380485982512194262448196630678867925029038669306427273486716460725575857014593582012933881639152689001708903423437515896255923499293970125827950761163799015194023205329132012358925634236584839500334214854751043653683676413803747734647202332660668076615033142565360977834583915722539664937886471785691891241946637748426378700802589717812010732127448175619672585393111043697790673995274893553039598717265355532286098757734838230826440703292446439454463493357423092534574253182653838579900396832278447550190069749670336587779695391913051162552952119738899966418001535607429293051056851382276210318320959516654123058549150249679893035004082574837167795566220704378699546524606908479418879777708405229069389738270461888366703510546103166653557514720425193421822330697939108083774200685861452394060912116998690096525147594374682319861569131181576053229445372204913828026526917634419394724800859602162827784651737647120967751420339289441226926781461896330028513364845158863209512509225890324992826230445831311770676901919543874949731784772838789194126469378416338544965480653863487473251532100168980023686791960018172251575638814426845238840011902996550408539695375004779834533727333791655364085579212961619424120942725661397460114609054781920081550368107875685293537876588645414378221340599389778172291337927239495875549581916682218014698021293932044081031201588041353407641676287380175681263805592658872360827384219142476685567203870638096857211010457117307032595173975245472316020894922929829144808020145695446093301366843868622066454662264943933750927886752833258494144066643981418895014774702284682361231922382652732782895222735204777601102496328880122574689827244952898953412668455960187545729594587100978227872315717476970094345075682252738984341306794015098194510974549688762945739566522075203881463992797147272874614570720970265573817768831570052249697003714856626901854372289387109166746077607383770403508479558313713865157876528600233155688584981521756348572890266639087919791810943328815489321926888599759159162299653237724888105078106137974899965597740879224415109817757675159862188000261030485024876612195233204749567505457228547964430061045386573915070780996593790814489344863854518627730948300494030744522174498604095695208069314998453695312741117234660135389117680729534437690540848991482213110996528331937603807965063560639885818307582318258733252933525436180516210803274922239710191476934981982224208063779849606392997547382781497532490806514621711639489583255309740089563055214611617003201828340297750379454634250868774795728701577688214899739122744827193589470085450443427378647038020898152000772198697635261713682402891246319030612071825646381833575788861572163071428390552471907948676710968292914975108083750695021910952423664170812843842375812439664386853023316622207029649721918439644697594926537426969740341612374803052843227801991595125619293297481187883049890598227436126914966914778569204399394223492978399181950881099360650234390893415459144935290625058504231757844925133176277214221765346721909039254275998741528986485831202074069091944409137385068757459078897289682965539467864412528206680431375517567973501196717746704196440048431575105958823629860758581364954417993088633066274299949460096249011137104152165789372924743360633218963636375525444011539092173308216054918122549320404248272088619968974385602464138608318031869177952543112209212621152021911381891043440046786587915969450674563439951122486093954452660488677639042689511000386209663202312296082928714710717452705908598121704326084637595425956837477294794338835531515857243109801017256869161647642079412916107324170014438523402072220507828779487713589793029086535293552416360134606763690724247078338609908739468512864378250144454749718161995947967352550813500676390545857290659421369749513371214790245689147277419497028416282690735487139091622088933278698760877717688778745783794902812589766946052204015635989289506246419270540875528984817421699314789040957866735435427597528621108741172741186684606091463978042387390454255958029131017031139135177574659209211793588930922972636476747168127542909338282386394907171659676423585308177613854368427963456764197816709976431219585933846799529829339971183735230731906784436257247109400917261713868592215639171686324946681856992820543527704862936154422761451072296602198319786898700772176868892481983895809800547038108611731020573513257709192858025424838218339117333266382932636474691222275539499935323323533676255458594582854274074948988061703671142093130711427397317630459266624346188353659459640784503334360260941598788025373690255373603773820585046135838385254636523037458646223449821504854712511951691743535634744360724624113495234273064751564132299285259468346597172528994141909453883615730611563514159641103754291265449440607819855543515757617721968343604937846794698870928389321539746962512829551867330761894337698629485644613860678991353637669256050351478150382500838417470296071908237975140459224817967589869695451786699548568707614993737509236819169595020077977463708826168473345225510455846946247318821463618741656015742241259898325651953675435466173276786162255256257687584128528079187466053135314120279032444982466001704298715012250167530988924691306333674449413223519437741841690662573205461782275572692745651518668153543089528164404014287027876323121816202681192220410125259419491517557713224246328671087843906837683700989364183201680063329744341828807998471596895187024218513502560367067937730017152412057205149586226631811890855733071507516847265238426321883434195048662992088635547464795374129338268797721972104444221389837921686741732930057348384127062799374126915042663433167395730714611351222515628976241731792739202633086812559605332634272429352348721946656734084249768426518049228243114646314534140381417639851086535272312703528859825653588512559284088621938501832478998114487062912430548725611133937341712186254744924276393182604804345873531157096796976946466494378550642407705933881833482776710271157911754863633527103260317258956976793740464965419734759590458865802740443551130143101305985210744294045246765157788248471500733640865903485667220534726781898862310785894766253549529318413431857642938617157472954366394051094137625650017541535105705259552596486064189360829098478591267519613531515896244973944075984899440181868047963609599521800715378040219774478226324672376602372587454405327560162672352671890793627613955718864324169540165537323863561729448837016120578120792407887867043301121928883966447092562148133758738944732618228722100275021618816327929614118965521692798829627804173322651848150502610737140383259962363726320783851873595198676248793657523684923507718293985672643776931635891340111124962454277506538121166012153751676288125461762961715082695417222495750570760417454047197465541740580451479914166732636352541541644734312488133913644761310129980761965174403508298570286361260781111677207620602081520565888429815019505495247809082984676529910733327751962697787966995587072370738756371919219847517266723537064297860230371644990295730151967721091589266617499142416765538559452494632738414756702861936769463782743558142392555998578424471943190021545526887351304341522954655618472817434056171252112352196874197790204002159394593230250188560513663690586526679575006846039770778587019620171123767740368985101820539457404705692104534322365057599093898761025449585096516650331706516560837254175775034829712426063972577250036890285063782391484505401632516767026816458746201706029208280880328399426421206900341315655870798178576549463507098614549821056072465226594702660008556193466230319607359547398818518123424067877490847343895559365980443838492028927065473448086592038537047756743156029403105301555622407343784233838488080410821570032826994492507358632931450116862368600361887336464859407135543809171290113653606668025373451758657305673502705399458213668968648703405491556257198264621575134816749728362444421207476586235744023314674992161671643134956460474218708849432402929087298540186551567834862113842514308697750244528633171537738674090885635532486146295911497122086749692494268858171464543114459258067899555825718292888227877630940922277507593566010607530056109193486565054036858747970382316948352433942400076066105077945729129160531568029051780368765342458960319606491509534179332651118331112750648053762180248365426568256884327437403047759624842133259224612841952571444016918458132433857425453330691933869930079742253635545435009627261464950775528233834693541630249333380710556648445981837755003270516172996701848673511808430984431843857800840329681507531935760416980355449589275401252204442898783370693454011569845546697195052884492383326636320514628959556372308495340471771132018495022664692764605867262429042624502183288871826757285768906949128843976021345834152641563592629398958566322110195404903208394122849800100710518589312787354150083330347758627810167431385875519123272939394720865055191345633804236960629843639983659178819583330944364986123721728508258103871398708471191950827745061984412085884076560402539448829940336437321547394749233800932547566896327571617257838419380647888680378997493294454967172627697747396919301111432446517929473657353087002583980336520079257514554966122815513242242929366003076618421650493571600472337956634370251456268496156079493568129736506598456828504306686564029160100705867006257897767889629647596377191198119257143147328988457790488807732745675333451948469251117974128333279781651526174081111486886310869004437796022733122514011163674001852979399265941311997615059556128721329169810204840514897377700660479072271118591275319596802616336284397892440143904553381637054669892416322474598886953995778947308966588510281167592209096993824699623068149364513818999268499970164146480364365215557345779422518502657011658256453540356772547184702926954433708233649331053903333414769856962416453064347724708068811960879377421133097551297272355675991731248411681069977065072759779705757748348934716551929823898070900307506182646693700168768408206058394384928469925954111730188023209154422600592639013979170944989437052490698958989797585283668097194910858548840496734393037437808963302918280388594616907136629005073472427494383049193557667497002757233362894958847845698362527940542554202799135049259668390728218749095478906077841293065141272760414494185701226487324969564001051408438144040704091494515793646271075415317473962870787648250998381159500226991155685048393313550062890208455443266270695789237544441470115706490302608441193261596999918138008906626951674780905288284401721827341622723779377125104888121103927497669290062464974349221820658745175427575915311653575010850359450644040913672684722141717857023038409592658543953866876675489293457782701736049720925953113537041672859397718834066506946902249572153909935802936492849119028259712725564382033195810439260520677611440429131463131920701364987455408181281461390873295463934346793816023564229771685475999617467995152234349498864863737741334731108915410179204727837248673992548304367001869877454124304545292298694009388033525428356416741857894876240324173772808551570299167396430225770042821159626639721072773813569916393035312409673466249733603696073961728867595553764853694968928771750929399043086566290091059615783889699345967200715938715443725522539080250215039502652454062125124788399795952052388798893096504999153594588229467453317269696041073366828459243796365127487911767038918417294138275212333546608297336612579391133387399527678889433634896602298200400924806777165838920574199861408264399992003653051174678618535579412702741954242158251333345793530065706774080437566724897246471400012811864981246779458540531622691232178739847218316232100273880194436887636491392859617381610368955762696961869131323134595028564694720614651298115675280603475747350569000104429559086676271620785425157187309348729652098785825563643798978774279950847805362714786899205500104196311060483207661029902504442898821701064018895694792044624901449706150560002583552371376407385496825019198624843385975928851454152908503363750438245325114492425904177949079541649208188107315875446226235212747478766824798353319371656963588959523697729817146474126695249203891803541741884894724484408261114464088178234806419550772875187392583641780394234304947668891823718423151698795636590439074806280005634574310083322477098542370539905797938913810499602437667589336830963152063667159634535040469909843003132472059743739087920043930114413528934677698530494334287970879857971269215225317038643731031177699555758648680684016594100184753605983693790113095580864894980176791964573928174834879547537027273033399155646709842931911180845935134530187614746732637386669548165174046007930563331614677099515933822467562770084519577921534774043851610530117144207947617348663849935819435361777030394971035203416223763587387792504485508984924163750323892977563271473862001113487554180448895535309721819859336815170409491484153626913999511078731605110311199952540369226701793784693126388249274196816000252017702352476045854085513447472507980621033703768757261787891042450893069392090727022608879991741356359285567975962600117181592744855037507767039247703764761662012640119660282568963601414926264177497326468195860578294631935835965819782312787703206653284056814392584633099794308869890700344267159497010644168266339777311546804792289169014799705887561134437182757594373530211633308951644778317099104359539223215397839028600937132945535621696322147502144746937388071956032337988809449406473102243422353953936748342872525841470123212449777234649283529030388609054043468681162676058718895659063743247895259352206941652638339202653754341973576397059906563716408368067497138606742351641077954897999102827349799584296818554130370479520311917751047827787624797532305069265531910256683834745550084020702009748177690332162091225365911232866181388386332938174679296539252039137557221963942500631553908078061634223055399547292112197172789138250645096736265370330021695077826599193785974639867921084823417065345639767305714471110367656167198888685788270060277207714093881043519374656358731913761414521370532826681787428713872481780755055623560920648866716266583484192168434006934944512874452535430646574811530541004106829616367915644554373030339940069790522441980085379018175972839749739630124119960973243752108480616991907837023530488032196168280971219539556289675996867107438871314482080078286222188932970825182401116786203371860264966965528682234257981276848872616507288437866728857114933040571037967602154422262835420695104940122930035244704153365404951068728281108859854818131254296242279054212356769957269638905746007460842745470412117718000287811969550743431830904104700091893488557713289862788343201973675498896637016981491149748043762808745547655201930470167825164642222475150392245703824049894431207371219855222499162963643277960254592007187554509827923868043155654721537294127589433392884495319141205549875730992956381092820892717959186685853870509292303808379922521397623529544640723073891735683932506692729220887170317614574410300813672310514098729275634145105125563724554691067615012420890235667250403462056143910513525840902621692390048096325808731151643231457897594693864800732202374801136448359861492033167606895342438702614850563250887726081841157806023759301123882412918928989876985800713271181800918813608702552755245401417237361974923356975387838906582499887841269837940297305764484900152754798405220486296422771866819363404602222033455675162634420466672414264844560986489710218944450707271271645992795870702950146859999464338178363886950078846613564530684481464398284867955661962159563957824693569576200750214742746128145642444937939485547807734274448794152231691963204858150993090110703249699388922816121655501469857611337415782200993862092042211755856899811930993047719117602616439497813319743433428917096668273272477006491297366580238075606604048986263445798369732570557922168568053384323632589706903313184436324629287268317166383786197765080578635627092982969053815511481135317205811218489939926781801909406038349135945554257861154158001914692521380913406519850509755877205743459210448137609485218610381882750284128833043900000268490577059677257937564823132164483525661769485121633527607714413213299170098926016307626698904731367910099657714828395293096281955485850361188676834271262611358406812805909664339503521806810986234659912521463509221588482187218009768585554498261753253761952199265741928124825290310143486439870746668139652003433106614137042874348518999145930164238578737903113400334395330362625340397961338118887448490732774531709930912029750076051837821169249088227575868345588182524534142000948587920129979331392641819425347690037612964127968987200016760458017665207122780202946600128720016598868361506229334520722516092960892088171910012721633808299621573897618546678851003173701541629454278894055188755812373663093365059651586251079480896151774731319448096681400962688486398147176591359889728527683713162859322000094273727393907673714004700364437626287148378770224596874053410337986107521558941374318072625804706959826674199452531631649811056725395307067601384222517912489466786979716823575689780746694858329624998608532372575885511575924566107932997306481808988716143423356672298731740782627692650747821851769591484667575096588999648342144780024127367524365405764428983475114472222585134952191357317459295430037413849669347356368773033849366701692061598087250145038588353274199377720167153874508657284929951721151417315130242405717570271366713293516439563845045876425571605264391939169156304588784441694892705338246654337105818797378695561490359789754331952855583269610725616689404415279335221176007449482742296395790578398350636197426591376697422448318942042831896269955194493775412794575898584339142255567240513848645556480856031773243048226570819494200886910868153893452536803412519903663418495781099440696826073442800404751742427449891710239629268961129692452362986681799070012971937360415138446824616516160926782531279137390374116868713593786181906582108592778010192478540709042567551722653466217494423911633012191756226407752350326278153383362391422191815020313631883710978265553259622431629527546032997304821006584055928734268985315941033291424226900959915975547204887072107548763806870927060887647741193732564277506906658095632341859267809349309670966797306382064540817393842626530148127355496294361339183454040043170143496248346880057376296546476912676405111746553032877965728740117278737449673187069857808468163660435567045516096343286800672714336023842298047480614013035340936108728564034632012249936564980742105226787377082897994919863784895630900024671771530939419967389176152803718774582749199066406854800061669334466350609651973956038772579412328790869819693433170538898555625133166198738206825847419050240176178934517998021369650919512558726692231934630187528188636501109507019932274307136242126382464498770791452165423003755964765317411372464391625065003573767887932160007514187909750261012761339215105632706058917515268048927423617779048266378498340009713074425553597717448382553917216759664310037354545104720294853683741110443707284284927550495004349911418740029012414583581021170598575119490893021220164670671500734999612148239573445556142945214090001204968628808945093242392015292895112721293828011485381725269789832890778926867693096501293997483558210495079809407956631620693299381249598746178018361449588341596547040930158591534641066053082397683470674254852202097755435528939636003850262725957707230453587564904459911302023317008734918725851419844557623179642894168593807203226159097538986583098715701770110202816186221029553320493101618473193541657791945996057895749696534735207851724276156115197698414315352712936631544659600029523433966785965548493407316158008155054417919704221151042955325748662040594452017502867282063831281607877464734707786366169284870574976123796726805210970236540943297271727035340040784282640008623393455461538944629033555831251034413396668629257907356174613707086414405154893916902122402503956571460916837717712362407454211591084240481348230083223472294381983564593986655303806472468688272952275095253413534190331361621325873632540964018764174141381830054658482304426056246999161120808973664159521354008294906579703978910842294856827005317068271973880436665910133088573118994187164391470527255107441754546088744474200367196183242594051161599771028728301837115620209792739142854394885602673729830046105726967037805847579661319996095487878517857890139623231706410376314702357609662071082757663740613396205014936187495653249699286967098916989972375621952321273646099250079031355224162582784397974661080762235061495860853732958930068021660547101648114790015312904886648626972479420244333602344312262345032829889302920488902660730751906096025000169650216544289288967397064945564516772591383194151594093866853304530493407353957326105907381090767608355029358081280378085735024348737252083645904129390900431512890735449820931607897322041220699770500566584989398209986382541253050095722931502578158120478177406322465969765260251713445292356914984479928314838865997329929775871959167336319998939229589080408569090032000981780480972226347305543156822235291968161381662380528044060159099229633033366749480586763126648800637054165299456004987733319409588522168062578818812708983298469463635090637363330218401539302175160587219614203789806908434349058345325389410319543092131685429796484028854928636540723145626395418758185434431009828199152571602552099199072591730681821956341576906355209610788303342912290079372388292327896008232872823359979262556156501475655257693063667567985647085750414237069123785109803613521899042171302041006044698424702747030465408214215559744094242787919589492238565152398357356732157501467322297307220210306504854254816836486546700229705345491489896874704638416600190567057589350937475168831247773469373390150302230786759435034495092296839005526228120144252817764921863119031225885360717533518710955791280909913203296340190713238150211028518554836284911784670951615073937671422578834661576253411730377759169949352974619614690453421802560280717992551778035818612773487819341385352698695414791352740372967472081259374958256160441465514133162555368736978490042597530167597193490040888607106196595869478907182854841661029770985010575984066830239016788866479332064692071830128978396261651077128947209159895344348510772678821546697794073540470062455608397682743970732023669499104459725528815025972004860434325180583252857710392525325072664649628712211131260865599053658684553441899606131535137353177066574317964434368560592773702724609745313478025235662148357441660712285974006183774110637067552292313775349611319462559362978270116509277148541040207113359981237779817852532179915263653327497694321715468693601528404472478275318570796918429997995707264809237172207338020288253318229015652101483779350600098565598982324181417492427105125023496449096496044572453425439538282893383456152784850576462523877325172418397123027498222356496806921641038138416558918373671595216603828973301192281235070369103324812629012793044880468636477396657465578925008695472269993758878573220003141121500543123657370989736423840671970688028560793324738356943774976504744996019249331531842841836689663643466574106703104989470881619001989482376654768685834362415279626027999521089258917811398692769799883620343746091956577131541600995298992023186441492706840852702887294539522517713136960364504018774701601335613676091897137715003189398814047543061971897180050769459654536948910906822539923244614301996715240816602999302594649239499965245536651079964629481968817467501653771568040504367061902846514351484414952550886783601239640486487985478454082702561676694707637986940234888416224774495176597451363852975890754564828830411576442680921710163089031614777436214207319994343513691469758248910362985782815070084056680855479450316256047314813777233002577547326849654132710663532212393479233472012216365039733848286577699684068004136505651690735207462305027673954233492842793255576891288905397381531790177971995358852697821333017510429908182434412514751660444944792097050653860341676922698920785186361228223811969577752826995459711744872350450074260911776416030782454875486888852584880920638147394653276542934787572287197590366514101763430997875775925328632192032143942644878313265129730727611359431742513823535283500975572726091505027843443933068060527762155045793912241540565355599346195326779710293429811587720949366880728349319392167560330231407807606083489109316327181748526399090490035389558155095007915126639432095037644626740869291456594521170022458223472771746407926456102387237850475463130038337815105012562998537938602635179461017597938776972832218411158304920182390934449217217388883424496176587197554352864851430341502668135612652727213513538376018130791885897516627409129135976234240315357538855475508221551286171180057511449278942011220584602390108760912714062400349833795865222723900201213428562023114951268304398402759306609356614756659264219423522928636314183232501326116479499298013956561332795533581376100102878283766798851490622489090476216627851143653551145574471503772782596568359785757391496756723618005452222265345027154464992565708847529134611322118847572906939250866573307316043963422390696704025329681221530835294973733966813589240885485834383517977086152098174207598487645721969736580122813144632120176657062737322149135461909553088166339626698380409542006751667741840508686916442709784903733112019702168029219379266909475332989688268596560535591247987381734999051828055924926475434669424408651382160318330648323102803646235676235591409283498515282385561314271889818070083125426341578626204488517704223761647604076099041858683927591269738730338666147932016082642327241472700627510710198528151107309753133572028495825011040505679929342499198654877763493230257729576158823373977927401600543740964776598684696812373685599069235825870131303693202968647286862078983390035860029228037320323956552347028545815040962038069652746654993015427464657181158289181898306467594962767329847534176339098249867255830954187594828381442903339073699517021063031417709726928945929170362588964541230747992068312371342715602840286825134537602616156125868647709146286447010580804870998119500818654283131521832103030847708789887415456151949654091278934245317132915123740866367937882634372791929198608809193385367288856669307094352050844186891694682365420952230435739927819552500493583981047837482426634247934114094140716421341726701030376107711819632377265419590379365930366081083157430075515354591239850922346729304912976069596817130810726019149051066632528996924959441237318923903617588964635470829393090008200824036887218209857477367866379957952048189694716888025580599966025461128251152354407983135752268743969169686051802891578560352015413729613962729354641768388992026240074751002780852386633346257950841322546255422693805348675458035943543003110624414649027720476870869607698139570076039323939613289497386768549305310443448753803218059391357603165308977130657731640352469506599069126089716919670263836197377095716581417688565295513417978656106270554006975125132893236473778682883753880505971984819691494772707109010209001136073896121813747629007441024085019757772525885299491868063405807324844691316699951210852449379941458293071072255942088496793606809360180009441482638257859637625258357756977836940179323771958209568292708370669655227269200855924111196993414212595544159547108214572455098932063462142317224171382959787519401305838106833939048037540060402284222700733187715768951363166563678938911104782444479504038558305369299544988012989641501802428106484135625848583772960945115366948132662269144503551263268949430018757126954633756279661975693393749107348683342376771799148624082352414696549052943041099806650748381408383981222478498730643525548306859880092620257080249689028912591949779443043626049562968536553180459107241796366702258930662763914805678101415767898606340418075322774787810076105224100370689647968885066336825786218043603114145286790845306592142408623306580448190126217438267251936153086265093449955257851634732821823749256999412212969212845773047530305914523639576046899972051072567702486213302999856794282542167806357679439840551672207839415117678880508489728409317216131087214353864403410972033853540864823559854519596097105279504202659551382727690506211072132273914456680244682579575295540356018351558113473667988237151635625682424188758579568277577073231201031583027542012752516060888347527014527644425663865521616112012880119866142427045040554497821361978963714136349633496843672037968716753856709670120397326440676342508764967848885162498798015000811711027534364430381410428775676959972793799839730611323509797631731370842794043946574123836707875836806198111231331089418612508616831077541566948342449039938814705027485527998945842751809009242794327104328069455289961105965493177948866062084172078564677294085704414380229242602234276697677648883252440556082647371483185590774838562425275501150953890965766541852348114816113873209331464106562029182543834577200790958766319464034871589185684177568213381249082923356739735070952691929635572758554558863237149202837260535856438735471506886730696798133785755202022647288842010496107435500910691069867604909784889895784422064280242312766717560952244991582875222874783829069887083695244289386825106833248022127806141164660126138237979796428346620871395778879461492907034279323669134636227749337276560007553018125743136962786780952393767051445295517929610712167089090194668742243068563937543994680721651430842323660486508741178154845380512239665445959025011545604112136268395950318366469544000677031346201953694665187089893627907831330030756226383648392911121158928914009110690428949604240870661538055096443887943862036836493838794919540951806386832620585664892285714380536666770758052005362037170349076798809884108192966834528273844295411831017285473263807086247894849215592780678291961415874709664780547364457735509778253534785437232768291867587768703861656795164272628357872561723985784088417807095159900477595154175675732663162965943166196930248540761948508023058151670938998385050158733498260075766470511429608541889965546664383212258163653542214109390992736584688876999827909966031765036394062308160800782491438025115034724364025338698649971467810152539413690903900824767788476360688296908293233801095313285962777885727354821537245466613341982227327340382541244561401688981490638008896357888295074327588765968162007046338410331164894035059710686827313298336545021451930867320430320109900832221044788013933005601916765448342049677497000378586960107443810195293190638503907873252655202831533242613357405054573422407537845567249149354739592786601928776325040502661597183847744343003612166704238898213070391717124998360461335176358936185058321269445149964789428447242226793250573422287925404751912025431031885612359295813696529798119822097202519674528254611478089651053687659065472564336981552409957529340307581529309926400358588962525208643869076462833472469683542673599149411179392826981032654216822195681324554834224676844118113556479379650039567364657084122036398458728336435834004814300005648617991283388322564653837568483900959842590206612205932363833698588045273343295496756854938513379410070625752889191953733643031553774130765731957709029962519388304879625853665571047588897483470154254576283567668718218915311294720937857847309763609939584642251014262330857764985391701445721804850927845572781901085956945169101200262124336455098598026488791893028933909829442522447328590771638556238710142227914243178849973600669430602187401367338494930109910648678196577031547194101705308315897217926295423725946649977730584845000807466777480892703197934196063587235153071404206668706581688832390665943940156421529870542862248715458011620240698975936190597463746454784435316293637982373017418952294951537687683462374720332139180045549280495388727970845719474419165778096889377358871804115878688439485901868500567877170002989761076212659197459231540240693831372438998526970303356552598919263760437645424676522940016232578429600726697256536342113805031161150313561778596124355953463691708966591194998872638043711066245938740936102329317081111769081834195953985408727655908918311265123739055760561822175308817767948268190998161033062171796110290034728010976457151147754186705081462471980069616123391513189541384843563214394922964585447604024209589877454201101470378829659202771139188692655543775326701831561404100085238594440434294561260321197250792312156270968394413359695521796405226544033703392387769551424216617408421052778607390424681227493250798998602489071367319260246019188262277529485548642745781230978354624619659353830552315063922064693936191857398125930247668067808524722349929173118839478871698894593078748779859183527518488008239118109081177232236381475599998433788778027051127905175704838358604770152520745864540554963953631121294970185302394050330979532675853861993475601138151267086585970506964158993818766663293308555113004770122859307702123279116799631925831332868080582557190795517430451379081461366580847557203066849742159364659358800847178751057092733111343832247698407838268972435586363792078418844978889546462269249516090451331180832880380883008350007335089808053253090531169606273704090816792644418136804778108000495264738794082603363883139945695301739274583468651923288306459375839571163374788119930290626794116761775089927017207842648927775037452845711236070119341475558395539680568450242125407638091422095416166948444597212372289446659351184716876561674151288341185780943599106859246930167038975290339243101447793155618599882013229224845110718867130965065898947446219481471294594929644995250956123338856131823916288802491172606149652527094565659446111140489001420429435043999587116602915666608138199483878631792254612666251763455805599651327712942525209185413200217695824591593786064622514367457605287568065512840667917387577498287150465192058188483799818935348012572668619019242731961587401095144621154180264128861180972378898749128006785198034865483643388575430851906820982360648897403991105044375151747007276389131869725791460008797536512640164280481993038786256442581326038409714468426553827489560537380860027342903747536684745894840790278830556215360248622253680721118756420329505747675446957243973426615440008763245386105998314683116277319313813696739696426247749509945553133639349310578156389260117600129199997425434140638309462918869775983419288879156239878945449892557106455477933753401915225244089307949444813088619569764862097136195543197225603666502329555138522431573097438405812766107960550181684789546610153814088774962030450721671848489794976966041957407407252390444261916484327438367892397735553355224051676986965395522365450169003001895471478671836076500789041435244068433601431851779254259366507771604562520409711704106996100599728828782417659345950401016476419530031741107107766041141379205944611576946134927879442744060184469922323188416628596096643749136446112212352961571071534268467791902220553117809153946487409515774662410611440225678530943681598731117184743636876578539523582189504881082490317867272732953446705368958996300375975581224454958448400680263933707506682213676697663986982977142713429563609830923511058045935480702137784526311570996689364305478525054448498487189289444565247495435615378394964313031583849932443257419312807208083822823515222610404559427786169574606127800120155540030091372449781623467505058714565046780205701696621847750040350722168711029540419868184651986229054022648594330392874658405912903589690795562160897930682419969078681632796906569808492188112996933987367965286449295779992370788517464978614941146477506476690790312701788393432829163417702340341578099878337004333004886636398683450619687756552184367675595382728732150874746313123625518553671427745234428706901722519270922308730139529574411786872925761295923836425720189981234688688090510929191468613564243064377813971707701537602523012749076935332258840451407463667329002207127826180251391926569776346797723566805113117704860051639676298134788580665760000792111455819189716224026373248961330260329825012377135775782202263718201483151280060790923762649765316468045272780265322899853483395559472070482596861540892319529852933865698831983141850106152404664800616261776146576448741063375682936965713453098732829911267523872912003707637503499516379046432170283776668337966982084624084228314845658802961979263317197616210666015004206238473904588404766415618484435509628519162711886146842544299791048006355969296140929746367077209230170065961111892352035257835259479535297435631390934037123200865415466528079267698410992700567584129710312561944631830860234808039236002122952625673828293591980028982735592251184140692363343851490231775618849072251343642060977310670863045845618897884843470319260640358668672195638844864978360196439902010020420683483182918643123466876461856566710496076107957219911582733580001500903850891460899911633354913315628347851124728956564660623114448570584448202334126973715401808245037091186422496147871830213453392815475077374101590824709149431055436711264412101693876397086133005455009723028080443204866036986472421748782711193131705045666985776971776905027581308548974818882996517597736958292182941019699432150805828573028480330605450551747165046108933816201913063595212740491477482490382475367973392061236621133113614067034438290818154160655785586267389739049470098672831784504418015539768761343452968625961021976889442439818857433990983188786236012657750334092039784749067373998947385548719499240643190424820224214076351677791978114517887653169639871032257509123558420074956915780209787798865251161434467348103773156727334646044372950414030904024853967061874530752351853600997980466573332054530804527660424163170061428249349653541466490093165006082637857655015617466530962195616801529404819881478462234348601528319162355941659897593445558083479333796866297374016167900095494496323759231236280288716023942562466805374530392117425380672816192909005803257405950237636653655473998376284505355690959595250210337781706110996768378355716651353379705868144840466258389609112964974672673146794940157080501906215560372940067294166120414867246871170008905255567440590401780329175630192822873161333932620057628020431800916972241141423913240237901280849694643935457728853203839194356279562098023051281084210100793384415013248599770899237654704800545313855991333136075041861722673923812360772832979318764542233539499777820323611549970273501475851723763229212633513199763745483314273903048490801550143259643008035428606483298185901527120470921585203463753323623695088650816750321761288575941652832749254303216865424015706148623755756448170640762878546098652688939417856566049878299400924392604451593226098148516450264263105275697492438392622665370110683680799370592873485276493414144534257305720091071218312230627661664656483213171131897912789801890163073287582416474938425981653698956503356898141860863136874751170593722516731238060974603406075934190076945387233382566347719641166659397352172189821439085910709507779722387913211327899983753195319130617277525201307240877785071702747087908235842700220534934605838331724623189327862048000732433986115236350668075956937989892007966595243371392580896610357347237286654511907986630858201150995599543212919444637454717061574110294042160320690602627953892475988815812669491283814949331189959033199723161200032142638243163550558252286907293574861584633914737225072248752128661305172660754671584144433700037640838640010640759463410949822821655607793248992771075463599003764099734936971134708553624757458996846210139671844644833984559773956130584138135399673410502546842975237968139739795971819098897091354171627453773243869117778494530204289412378494917424144369755140054705677498178051528593061241254718781043111655856879501155413618614915899901049127131652788830016453592215674081602322911704043864608227805587650749135923118968343643042224875053465008773486222740231326386281415010266868387402331227775471263293907064965084349029767281655208957207169588558827341034789024264924758280555896133086855313310745667775053163733171990123873082288180145888214768669316708929867068259129707343250600485457195820975654297605046134472132454167436508000632846297849281392967975855670415029352643769561673774694285753127742524669142227323460862574447208772111939542173900335538259155334830316713819494467156509397546129637277366374861383719236586906227731701976020796924507094512426425647096762751673623084059910187242174657447442736799397923972109757294452616357910479098004847553964040789595528649020600013809756694407900354019228093605253004874465469869157650460370818670417765671974447484435339660344079402009627364833762817439260663532505463526672014785771698267238397548173148373489886448650040363153161754754587259911447076720624465088070811149885842212781574852360322202817942423948416629255294057111138217532062438027251038070577544858324518666082508333739838271243950302979310020650113001788198667899393128153664718592609252174633518623220846311537382867438135358607915251124530679249202531890565201518647243560859701371018234259257753297497734094433093232484192259464064570456555664036755494820266237705584658369748170831031875473383191985355363484525364206883576645520025930321320959857254979529593101810573085595770719039280629480347419238966239601324196172534337830217854111545560035267070478073721807532378176604193431981854857196191903775366840887119376689005296076101216571459701181336208447261944183884561726509321884244064136302921403806195687740990899774206175575946169308198628461595652110871054152092806067376973089019516101219506290318124852652080107371782294180351539818845587419949691112657045855016213874442965367805984099104800837380840057687563790082840248515882106533922504011199416064965665278772772253699274913101815959943332552705259183080655691269633896739393318565756635926593708200093625538299929714692341320286561248547101647338684540083972186669426774743120793968304780777490419614108241063819576232587783179703691373801808163979642901133473212842108060171578509815102843259197461483233086069050908456805497918585446885691653050491069643970016658291118352892216343033080521678568419281074371727977190663843832811044312425797953699585891115567803936323628634342184657368653597069553511744764607762374883919151829530247193798575188026472167222241886911300354969965112147056835196238505605893975735951501397589499772844608142731499125601248777229576187151198186681679485525220191156204423289503185109169152866544100005267618990461085962153954735071929276600272086034008090334668339926013391883800198098011385525718068074521170397231594058020817880132534362210492490379142680173493027549037149468190467803790717763055763877532354476249259230187528321089557170714196776299813990458902758473781132463392163882758829430955923753546560409056121665440812059916297648059856680659784308282025991823871571528999293870556111811288685253566165408855011240388885438686988676235895590046096141327554984881036110617048460661540450445090604984660976481632081823364422130293695130596753688393649646412188294065669435564829548977750201081238932685511516429767259513719181956913229409900219691235457874432555170198952459610321030871031510675664011266016312308274424010997503556030653887709603920025018472281867045269746995619351205279969646855619147292637705366071720853865076877152310245638351987583173968200927285245219766700415522360921328508766668159376848108440937239719650478854318577925739218298865714000317253469731304369338392623155419523361645149062278419109395880215253589057031861257141227676843742853854393286699339541733001066363604511715096454150583564234768559910734487063493397574843912911964730571270812733239609657358954344524941356968484013117364657435741776382728382285754018293597976753238096031640673272330059724957356952872986784045512562619774706182548347621553420984137519508050897191350749519735169354110321363348892047334458410712332370912695214303379699307253588532773079958754919057503101136024617361121061779594025889707643541752872875537674690738914514629536606233097900514976783203366302387424337228878731360651124540469170127033568188107296436866949603705511690303454759053590728028638536825964405108017195390607855404853451073672798666301612949476759236950099607127242703113365321890121235150876068115951428923220412140978559227782812696867112417922378599931911852721336770621441434191078035488372840755601499694899037861232264899408159812283278474266486974800922594987059452808412620377865556332183351254929190864900700717148237149929828378539733735684305279209228274757391442217589479735734348530843848554758340316437979784796343447875763729537964120314272544767116756607883087651501793961493694335412864126661099898211263119382922605843537203422975462126972562223931681296388221880030694476498756047200762959834128844826713393045730178471612914236558835328220529083656257540806639659658571818153842263856137982884472662819032938764253459757780894101546885782733703155484532423823123069780136712613816906351135985417684808519528149692281828388586077627214987753046192024761518934121719489725489089310679169873986790320495517810587553702898743046058913504281811915620150650120197133509154975109411641794108795762104267270890854793396745790664866859802081370292634677441766182320208291508960516454118977226007778501474959984847658356355992087211369565678764829164653082132313873528144761350451489959258440097993484125042468460999797749708852138104629000149499218258961054809645336856411400087548840204791776881164873695365231594143715713299553406478436332423948340945530996703471740912814731911403878504575254181999283935616999050622520768242028460877460747425905406130485059193176421115040997351616509886853902957397122739050754443579609969715835079371891443997363466487046591426260821430399485240682352452272517252538023469767971510523159516673079281956957565116761670608981280818065772584942500345591583496575012483122651249822090805534706081157229982003669438679353896855622193916691501585123235235856089303772908065338952562381259118786754583600670536555038622773358254685334520868232738999304189476306364201120817711293771856600992177700893053518954088121681619780422675784462074478098300908809241217859113079835636604642418436359138405037688457373083943477363969198492592251452652813732671150478293147532801532764586009770049935960497204880170450033699860172359144168285345834003159145578571797746355294849951547318551631349048589043895372992326385523527001315527053608870035819344845644521649999462641832879449748967118960254055821775005301887144741201403897604400890134647082301404460108815985372903980531584440677733478359011182464289648126319151375529399512049621219443233744767520516527646854522062322903633852027356133766568884017735735214404841542846269129194736788029209922620413993434039279583974596186311016474701103310551885571703418086547987958038337058384088980839039422787049804717477049088896272687328681523540599372005117220160831730643565979401474698097737075666296311286200766705284000393430573893433241564992499567269509538312321482608511071639996541349925426765630803076006815770719763800804422761789148088401961048969540956940321090429036060657121671951876165690061394179052386238372088405470090715467109215103709139750255356163116053153550360156383855201150003223042531709502859318897679844643675752325862008170259666327284727382723812746187614715774093022312035714599527459050425433906692405771420317543591040533898092251218242446501294890911680949873624160900165710958194768371047522284212993646503292945005989283334292221222371475014774933314459156983248366416850980604702115171817303263075892207060089164811252558964741584171753722695565211549839169081710030599094189832513502149734159548741555315086381087756811489320606277520692422331899881053428126612912006108789373909926207428710839328913888264222942032449621522057491926901044744502783573688137426027328058139635410183490579260146113924591260792738797023763588344924488670370921476598757120096680557288110759408520164237109144635148487216389406301273801411240116684103108044221178814683592831910317344454252955302677585576927501987052780867193342199121514138482742055503947771895412797529316333715987660033194973336376088104007926643714040922136489900550881189992644230149571916303751567366349871857731767469502360196872634989543941856404433035434577717839382953692449445328008366602268601419775854243675505234600861356915122753135907855892343968422282871758171665291475657514403644942767123620444662012961809311946724834469987345815043190127114619368874403152657545396492734460231986544198732784421438556047758777940134753271583613473233954094229607122043756702130495617789312729720613700542199214446657363430464068807862553766712609865620082296710392595927528989953817037527193661766067794661246384854283120621133504603222830749708370289747408272286806924554121355221447515550933671004456060132597653474713791165513274789949170211787530845532457645858333200805153580002133810625314351047622570000463859748986710091082147273827497498295827302273275349793420268066220759956113745181899854282507098667931403373825046373218385381331629711125131628909819591383396502184695672063441223950091065851551563919185639175755244979894985816171617383821421353905416782960724564640220401593628334813491133213941674440067282006617577795344372389208245034292572615031817173354009000666861419486784622422975312825455991678397128820654965054291511783786041620228958169677432168023355185139739417983710304815332937704052288365324472204953330426519674671017734345016482990841241673226242284459279225519779444139879198703259087743568229752314516082511129985365002754819656823899359849312168936672764299321575799502399903761831404483363201460288606079283440141580604661217103396028598558430371035322169600787603341260077236030915282708064733519813407011941759601741244015516331743872749144984814144474198520268102581550876956652956922148449469506348061459181526511291603936185654195592892034472925301654034209176762942671989364722456521967826921220768614706253996480651470181802050052360554965679997944799549785325581008502604297187923420934286787833910799342336542607945702640217093731204268374161731392182471499392741024032662174192493142809074369929513842974573868211481109611740407206016943338784985180680140868115651046592558120300070055532840572961434459483048929149823984388132766553309289659052250734685929442299990503274429447199539111129791862202119794678696390807728687321543354083597872620790266199817699810935756911907220209109475173580547927964237065241764542744538475845038153354544683627327140611227082356297693821941197212754151288442312731708020641289545014637454254407168042482933060931267479752963408831927005810115749621679962716528983380666215606277763651081428244046373108947430881585278313246096842711033968725581091219311993295025303059233635612186115751278777426580916786728911248142906764581038768995524601354749389091744877651370939285325103260896960542062849497343933049588470342322363668157216720585765194810734155585144555096941953926939794360896246478901558388573471874404591273611079205728661611566841595301132186536563381498298852089744987794094117985203451031645326214172942082119954192976284724014388590245045906460365909648495171876717286277105622743739297045373822736238915096609719955565766375791925856890100518358470475672155958921735557429721900362831581752096722235227460088370511695739281022996106508557319013014569696724003107265244512911427548946052613167543951343047033032850522008366585259760483598230363145044732214531839046510737991178672561731071065562706772011415083541885639103388323467770221885579679590186193107038938710246203683750321194156163810259399717894251225678185432606110221776297992271858466748224705300213534622078919018450710667698971980033569086091957624888615767160977588437448921220443788800496587075852805399362958021065883264306201891546518253549530723182927229402640692014646250599401534712672465534604304509193999929018284948636179622233035839748730984472083172619413774746859950965027144808125359633705438595535501734543714476777212402086110335272848508857264420835639498886375982831396186007999704720705674287469553931805624828151538160274143634264866012978791324241465593796638112253758924372188765140051959850345660934060304183654163019460288523752502605719462473266208207075847567920562206128835514498613044927638838442123404449573077740666808443248373623866572316521564756871838112203047036182335994930674216589584769662583414171092536109033534298814441545877224822929223244503542024905771567519757133925270578361236752540885902689392771434298913944340632089656672969149573965080997491339242696463734010190231858659896369379200495976237548875748453257630908394090713455495892255136050536817575168543832713012580331761817202192504950225524116876818348454997557424146933997358211840380887613829650640073652392017250578353084571299526569015555447966569031433350180494499009247396321154335317171828657388408208657131009066042946963509789645054357259781658674355503264215792820326814125430378223913387817705477178424122491977975789876542483475576796804381100250164109906845431325497183534616357912504107774179141524250744869568561192324405517182068688853128808727810178743811830549062742823234780069803441048335615777348305055700440810756561556421604941695990796312603685601710780441066258188414396297387866481777103161832655658743934641642633122834782233790956376538930317079955780181768287045188793778061519194827453429915610648798559711759541439924493737622485160475820645477184265182359383287738717208425344910926799791172984805511523029135819552377988392492259315492084903174492284544859313948297254902133898386633350162152648826677724672938543199298990733177268697855020444933643278049586515240423434922031202534273881929386686442716392536747724146615707450170221622865817432256642459255594112362989479761917945776994632144326347498323128144893893021519991767522137276693198101610436682532329225748278064942031736159246612120460693827661397972341404681187451477919309084426658982544086700772637250752633126471898110934359234826393439815095515014959327913334063054142242091275565619611497802166738654999968339108119189690769145697930061377260230306159154961600225949670881281585202041641247952168846656068672562433225331003736451199187630885832423201499086092482404778475250697252627117609248834159679783006551502216879301127566963416143116288214535935958867214699357725040566265805266490894378210217682724662041360968178587656294355812167755030460199288556924810106806150589844565804830696553086418113380067237571671723681775470532548466394429451462272641266502333308536726739801464966299253368251667323343852340623438341780308090747730905079687194497742785326708244041810032703542824264755259531436074283804408645505717284267479612152572282724750636768226200547699104547015099746318241637938600133789814803831032904765330218070416416644225328721586719417318491388843127106307784761493328600201505553632051808627764876230288045731240009300137656201572186966338073831400807046619623143244442373250198513528556422750799552566322226158345194207382064215378587780957370310233468957780535826829838609783758149416143906017170199341081979141665823631720824434956802516210977313241828825568147030704454950725513133041787208170574738248708429809736838265308403747314879587991169851494695454844718983472434715503329161645209009252296551953911424480601963548286704503852577311239608829057722133033786973404548531252563542254938577827073832732861469196783215991437561375258379813675673499408003332443276852005762363160277624634161371652562794928105742241561372358433367263058778926918923077853619038689732494359256927066649205915722517153367698929073627597522360886335499954591100120507522426309017913620339704576207487732521761121520151080888347933074768063241984171963390106107671869766208819085823038110190517388305834567308682219728729666929955143115790780631183855257082419681152995774858213314192804191656826086968151725980134740651183501034058823068379323695968117209100298135115476499037627645952502441257633601806089362279447793559636119115251957400167231134554612519441346837479235079594103064634299408304791056221347394110920880977684443012646469057281381162388448438377097573688535103415531937465890318607647227960204039495501482257414942708671151841533228694064346564101906185455936067701605591678958743090686619215950806128179270230526789473280396627718327013041273270204318562847083665022972643982445436579809468332689274338272322069174601241754168360462176242606600532433375832982923361034973872277453009085582803122420158149503137210871663952901167791791067731826189527551648766559328863969378244216107225191400661857001829902937539026509797804334476239062153357604013629290943334776738422624739503234719085005283937100556557864981926375343320329208369332156904969047266361492150933461203136236688455346430641932412702252453663191105814153292488313762274525969173921848163881547203258158101124396799112532844062609458564211822929998913598702217759328137417833669973437161233151074850874034675480669884070659499843211374031509542721771753813201777431067989686636270913249366337779249524434694149241822899425931076190852571929685997548663462784179437509904241126175234137851992535958967246688461117911638843412207164510969801334384286387435141705715255655526652403894139728766517979592899046750761054753625556916638259252384182144629955781936401504988132776130662211392681402454234315168064687075207800607174353924902578636305134897998433307326755722648205665873678356671774395247239912527445998601693838449767264197737662999339535309762462869300225304451423197720923699013536320248692586688988113869212529086129060413158108175991674596608270632287053521726057690477200961178562646692431090785386107845195229589964769279921772081137951281771106860303078566483841870169204347700252954619190978716586544677009454918666335043530190976348765205768447351035662238576687420451588893115908221666884824462648956099461001164572807740529517952342155711578934547360792847288834547203456466156980323178938703590866410798717639307426784075805053736248955704682159979107386842789741160060831557813021582134744825194182738434093208002278045046924816352704205907751724055528405988532989156950139773676805887057533146617305097134309868653042919321159636994775617966225836746218699877046279115708774539807235988292628090160737698451716579373843611808862458895180173864239139720862125391330897139822683063932190865411671230648633294772325688177235463451773831863325917077726807477492093013931362266209963185362202960953395821435468531604901370942491232863502499306612049717628692272125294146698995043451314533215692911230659338534267399563404678817601988540907908895200866441820645322213757701471315555485128359539401683271706779199765045248736779526170522604185994727859876496379422218699796513705313702423992070172964835811341093540702352684376390545284383817633878943598001786046243163245371452142946167856570260222546437479856957871140631779236464515203162710790820229476473100195292511508530600280839762816780415453151717348298065952310763421306322000571332438903693532103018345360079761897772149767643998299767671451164239569444475162819130147085475257846547302170855170193102649455907904878914619996017066958886201842249959744414924516706007451239699093687323271782505166572502070016746970154191360248771724781702316309022958612396648346784080731597716269147395398616311281867301700410698104339339489634093939370255656174677266856625017169254317247043816407364929084633716244441806147967796644988572007634986660900403253201810377759193366728889399052813414847294796243399042072483498469291707749590234844250164437106116463133107703458043411624599094609487876694024501867892883552104987682341384947717860494725920378371273725900118350675812763184972582001332360090567863749159149957408639302372853895522295651514648347782499147331730834675963854001128133096516881268880312495298771340713827044314837973194415279036816171022456375186929014936892599856324366292221893217942588541595224071043634931205167847765843383812935044235476134242662210416155958836703834441422139021027330830379632810536169888300512394477458500530628837379345739178417312730730741105983543373424681659032157380918920643018189942771228547003288121544617713439968602719612103506122916973105830536184187499156395182335582032011393841452322270924161829113840540801251033357899294552735687340053774361454687497782866740224423957643657408357748239202358789213667784748277119898709240126781356923255312163778438867262375387181190765036970215516799996036525688859953840467578234919772046010201791057847499968595631442972579697782576662577325903967668658173985308892300464688226075266702144715896137868704162268327396193243480715586657524106015354154972342003560819121525355762572207142407708218389799716320689473209019686122268480375289016345715241545892649330130734561482978529491349770419053529520175107786364119075415374392018284321361920215091380874217333765200185965942821851103005822289317252456785269172023515103477384159030760643813127171115234389608189287845245840188844724787082858994592615568657312992922252461123814721190145348400979809867372472127576803863280733125617016415777303427094905097301384266650470207867514357324434446364157547416092699774045943105090475961013195745503400751264131640300774063868869244553481545308997256834558595432424397765799121001035742292329819034211647544602611589532297724548022333986331504797735472525265575042514676889506275652749543745424246916230068042344235656300518051300093120439162656157454400497418369567283485058537218603904446167758663796496618040520633594602807047622425133691341219158333843945385938185673675646609584248892790595966918112743255615137264259193212670010084759178782096488403558394585263923711365379308282284225465934569619348039673909679939013336203026958816244025851887155491644082361702184456224016861006730591291920464531847375873975015769823064317859841868929093309471426697296299239374667896837032406037968295227946836305876803472681128589296974061945228386708585317316196055637953530760782429558250121561883983793847359791642039920300601385415177976766898803140436848469539093592722518937770413140725073749613578740485207219992222293385878222189446007772372823358091060210007554249424100834659022511754846069316457865076397995118807150262820281124212153311419228094684576491272538231362094401684864657588845886229525690156747032562592144863506884795257820524489782278917188775995830912780023675851708727950077265005767693705551913052591872339382159052146184150832159138060771589640521821603480142885028876691408075057910015428174615979106320088435957326480086336226221623585044139669110741367706290737569403934011732630488794540168864244348541061695251118317345486685904597164557269894945146676056147051401283685877476214652997859802824291880040079335834972779703529419676094497855627862801843334852965913245111367957663846002150100279763332564420636281320252200341352136640901634860792662496633288185477889219697683037743216597237821827961077610683827992584074511769013388158461528039179059747377046775554961497434470990581541590502672462774623694956885075160128255645125931491587194647502321442814729370422662254737738042171140662782013246629651413188836239728603636346557951371254004466783236982402429277827576382370092367275581389608062980325713130131211655713150884532635778583575444772198180088722285880717307783982502452757137285796458933250853742933798290073780175620997520243953159634975683472341609344176173904336521877957813755064525122741078960392157519106507337297115818046478138535524930582849594941979094759604595977259110473342656450732848721389561192208825485361615137893160763742966503380503887329309910466575053541446474720700739901705553477351934271208300132901467028968714624102381338983105377972906029692803793065773431829677592043886051694605101936721739268875900911452364270014588664885425675028492272322092146735332349068596752759919107865320887744489581830210514612415455386304719394997440041377756866738336878284732359681833424001198020542429919027730027844185352681589751571364669958908696805933384058556461779238883908343344137431172796025924922443908148823445646223054325257901365630966621429803841844678352201667506942015382828836783356834858796058934160919799732731353657302090348197711673169834503130484350011710445265377238090257924977107914519683614356507168581696269536158043542659469281132597722511803640896556991044418634726464173882429546837370072725302930407761739790627486089135308791451731347314127644232325477811905770680011567453829264339757198345941181341050097167199270346375790716345383783464651017564192705239703649588468063666495476796472377389240193985169602491517025867069030173900504952362467299272090555468959980700143509153368747418847117416691879351710273395818888727881260040000580987221694076834399799220648196073085483393210572421606164431304094151318070913043126918919341107559983287228945680948559796548570449753972809533825335153568314051045511483891134322766463763251816744854432061491822258924756608117552609215335774602767043488476074568733104004134180852348451648714974841860496565905485733749410612110389754356224039740507063687727283012048114351224525235366693430249358804591170834410211032779243980666207418060888265649376678741888048224248370406886290632810279326636243018832917020254515778296335814952262203408671695417362263930291205868831390068386375539377847788371376933764171334294727543242133698784004853312009411363662683235613545004613604679567554973428909656409574090655898161150383172363706615843189077604325160746577684460139781419601682372245574659309627123939653241231285223965403837243000984624848951745289736421539186791283090275006402508693063481033665781527828593176600137892727228246984812823370672303261730970894225884166158196152463052456661236228974858573929594041007562467877647489506440058699818391133411194707440947162005083024405185706139375370537472438698874531501514917344883489392166621466943115639567717810631024823618371446927166629066648884430652491366253954219172584111618762394651376591152141133594959612471205978320106474931089384804652092633574658059004470310181636974493903197270986726288324781992546416529365618475776778474675423398778857428471969092589080509253965648883096379730339318387940616307239332478270921059463618906337143355667131180895759714701064337190323721671367072209709314649551085926414435432380136327291574903082469607742060015208379336693502735568580856310474085729197985214944808343118844159540736248184090809787590580357251877593634738118699777902404968695424687077703082937884249125977768931355356973320017576303992050021040300206726735309013702545109518853425701429315743448318954001330019863516857064850009645116143274273811527060419978970144694127053060271307055848543143240719202193200283276176327369558119797844363212492235787637337014043703906736822007615619923784739256005036274971125818742563649438918633004422345766500060410317376221582558270804438474566696091373990761516244297851577199690360182462490705084922147909556977988701955707404662514107318367790636345405402540242861891567431540028625966909556765717662824583829570704616445955721110796362225400196091801596379388747596698479539791424827903489489940964595845488414928642718417634042316871984382961565584522667838036385150685812751720012698796951793895350092512098882538128393392279147825167189721616359190596145234973765652785132390271992692723599134789974761906283253434360850563532553481951257026563879829218905805417536663102699416227139180953048672399420790662534539597924549894109635165023319836113677142477556475881579190404394925973727524015009410748632948746705664498290096554540025415983664370234988242422761502602291550900092017217727963974699306088777887338222644009237363899367840255227172419936652584158717369881038893270438296131553297864114039350316521319812876328864670510265859275699213669417174851982726747976201469531049211525508574105935949585941259335312689629029469075262388712374487928535315374796592654526465769675429548963822771059053549811995521585346006625238159054195666224616007558734971057566058923452359262271055522253749285589856297963279758449360080025946898172779481369783390813395806011312815033329557506512444353041254391553702911144419934997111087832165744247589942732291781274506667242519412677923218434317343722456517940135869193811848187417120223942198475466479674319940816901751082937868613037954350441692325597301002013010849183215550402908873301451782146037488661077841678020520647610123904110556702762514133777330573091136879888639704237972321450950505750506379792287902104914823783934474624641343852332363578741576510449699836090094874950832501704035686228426041449173389823946215410991199787271200509080128212743165217751136555516334104329155383131579750289449097441406848347384217681859708635547066109773416857370892592415616365244843896406630863419136236606476460808726013901287723663313227314577197433126616019793803420833679864201627110190879347688456037504483255414937244300756678644614200228675364192550246784479845485791138952139935889335763872429221898008385889310626764841097894301175509602628433087966228315583912648853280128672795386370007786854020452562586868131165440513401668360419262842639939086345056037748496109398865358154224161348701545821871083246385259998040536791249210056594541406739029194200695073208190454021740132830788298435254501039950194970785240035877218452532526512149086910411804655566991655605370468995736551669919902301774049945859025946936981706617427652523031241506972657035742470847026904492856675762600789395760937767174536285101019890471491141451559352236108804710318159244347356589331625066353128068792424038083172163197582856095332711424719197637641011123563125135340014215507295743068828456499543937997989729770140453644191630379903948209005687092315452283475388006056878017923704862222847706177110015304507332219092290647727293926194956485956637886840309543067157774168211410638495412223957472803931465791465352420609059823796173348934851210147922248326441185409595304548186384672340992718190622828694631364948868335368994650264897289394437938894111057911070548347482505290273002575836444120076665985997024291996577747366019741647390624759145594072689903909213905589787857689887866756459729150745359909666524460964982262061759750872294986623169813362079654111142892305937522508780025997890264625872331392459779512697514424026732265407473106354017794953135906695025473759799306394510298238856061331330481639288807650395141384305777086916745545219736196773568977396214567510886619984036060362193117534765568062444131440548539117363353379286623590485372567922680494021281880761502228063722441569488567452454016642504844943612826607833599898926027302017280089185903916724808217770286796150955714547017366209631968250114805885029264919737710338026478286916736196266852672759667029262371509198630460085496970947208501853073263036679142906142414450095983855792486467183713684362364690498294697113396372111270048035822607610410953565494888557458522200523514845565264367520846210506097534287778173267513297347502287662290148804530765820613028388027384984628175409746747225277568413204040214512717171862200515914702952000343939277649307047720688305406115691683209179160385918525128670438756783195617992269315462200847780359872252948556693301495592402397915874515628720057400365815988406424623017277992375185893099524481647545501749576797915351774993922335714362844997699675383112437482058677913848073222704474286537774829402460999148582410310427991921558015894548617141178256890097105946636973549391471317239488371416508886842579646328942526207061251433016812276035738737573019390878467578291164920642945945001536332532315266153720298501164051633282554609251462119981846300839654001878151020204415873002298362794375708105146739453049555019260067804865042405323909838934442951711916538636958453956965258567783502555797374587953670362271873827729384624791897299596579082520321389160232858191230688754089300388941593043603558742647522432004629199525329949351368285184873504173364441033107690399801797439231591998815572828660884091757016656113870541897183325982450602328856816062471916486351959904298890829768914515467250603047120399793751986054547628101811730705107897596245129511829624814041699298658127498935471196609319518040161659454702385828992168383760485204075104714323675839617680505604796122721476485823451087252392905307016955554785090778312883259085921030364104484525521881006495251473749643018944119631135040246624875402433478407627186142654287165430408420616238660292103706755340424522889123854700714136486449955476240795617215416890036088646973717966501469185926263300930382035749781640952597188960631872030824940746158493531435724423036899188253520749580874209040575928559789099381248229099498320658985717466080631827643541507761199267147813085071435667242320559790246943154937915910316044406819291020938574018145472476391762835807680204842713845413519305427706531367446060756050423708713320178597409493291933190678300650419229019125941986090990063247576183100659971053653791060195783915140807824802329120493030069705467935081490247621098404206442484298839426315160048250279469855893193061841421409124712890602348431796487572874901807570468621230470900902068403735485604525353751080474863431774678019664091655192662003610329645058964847463883923694144983373133878918754048041767329651064797577376647961358894074693497219894415558671221723410167344487176603495775868152887852573913211803599141515104134733032934266667292773893944900885080277584458747284031975603290920386785004096480370299668240873366349995424697022661405167419305792895770835436765298385220542232052060481947142939664732564957882549680696265173416411853094581349890132742984902759013053043190979498326172042997437200670619650820429789814826763183137849098290102121549404019475998202745652109805941155425270502346319939267945592525718308915435108798324842572009065756567727614703080080803850981521230289591710071205939141457499101492696724026661903090926062361144241751832089372754319256784983123413582361868223306836739648650402082217857596734515621937449098757556177891559472295956478976044018521407036014253078430000319342939243870523225551445914802094414606311043858435352716093283942353894598003757375691964676409799776173346756614167936164694536860510180682477824175083668424763559913613302659414554766932544957999808951417261634360993889213750419603741020182158966470926709605433686544384527308828624576784899166383222766685424364005147991504118617062149624647297737758102575993770931958140394350449358539250461034528494982543626390476247493057596475001071091057440097128030667526059023798585932266699294467418507238351490017035453908903464575969373884479538674876840727638604797575154203994079839445024590943363857710377153455626528990583765301222109559069744670788308471409552194202177954251132603350359067674712246927446014152482485153464989768841738228118393696344202435708585716856544078647443359775820871825685976365234176423997548376168933195878021877727304694869604062283705005304550537190070231773194140533040950894673887842100185314805713382790776007068819108649873510200793276908242955517643609379247912100919314979540000584556648430970428337494537183510754549981554337999818296446675565820081597399197197146896961958791116881256449401343751054523894111057012940148344204248455902302917884917643587773670639233149117339538202441727951433732649229447022010358930215497033638080473014155428154734755982201597830578368100525295691451820673869792914328312086451563980637828594653061792608610068999155563826056881479030455208696179246846068985119292070346330363312481362235782318279675016607573748395153046196856090090089234896447887514077106819629040844576516239373468664185292993262448616564860663279449313052406804641041785451324797609070135867689552211553937046055283731855103681355795131310532393181009810883020661217899661189621421723209099410391753020995672346097395477070949977751891467260038021041475330635001742559681501996637263218807420519998961135819409284256657071877099697583633214428161722207729868267459231122014392833822307440569017881259249027548541717160726579987637274357662210710451771926416450495827410019879042637490996375384566728005473227906855314648756379141301353424124065542436147024624417554105351414853919511275944630660618455845791761549610192538328750298248308713530173943413453284410763244321875385670803766080109127401430590191222171983845042908295612846677520516637808786061962132091303848414317892299160988834289869494518038208751437806856480098846984740454366767466174003584661431276398480949108122260811472374577827537407849676405919798116595880261963441580403782730984731364544102159375191129502199860706053147652579752223449979597537893417112943433494546005772175706342483744986486116411986402519176308473880774242970396518029324085401050127264912817699782661895950111960097729029578297960093990993242259567640140340523335231162315424486707942038848486821247460248629293739621361503015524117557566278455747666083982683311587666924465179983614522944338388061340814715861293445482841430369978907149629785549656200678829066467914502703404609873532180119926449584908592021848073110057178170155603280152604032148556451394729981217481209456895213833267827019058377763599980072699313969379897961022346334858103295013444922030834486655554070189694479118929184146904619821105172345238373537178959376695076505692336197512845531529125660269124257812608298241779246372170012226604296662895532185211402524464715934189750664081905336865194193992044498984508179453057285827445837669574908696655855697717498219296134789996848604618670675201627362991273955842040944206737452391392969252741774541733019127262538132411264787741620298293067310594984931628924382539777282424749728313042569695832274416106530203334541226425568113327743347234625129345162669889874508429147487014882090010414067564009024119746262572515321133919013291321928310867299578228512730670748197664820866102797271664809617733617944348719781163442712123193925052617770348501629922947930469900607713731221412660124295108150567714027987288830824896344271639019574042851056097601129086409918893457195285546977555473909490826424905953563808529903460972893435767227829958288596554273833750224394492246736912124567037964521989212173376505550935093813414852659591174040483922881344385652811765891403495232037514692830123756260886942267872042407395898895334345092235170506517300322193102002658782964733309886794561964974406887747575384368322775481956319432184589158783822596597516981473543457635421638814676697711475181474141522314690845866455389074038614941679110587083846142982579550949181252439594963596005522544393675085335463715056694692313826530436848428606559937972879678563111359051835099920570936377268494263329734217440448748823709224495969712946699278163615648169347733448419632244809185169949750290486776160118810021986124948009167113543790112628155474732042937110880059631825628972578863103754419390379509976595080602506971307025860589460095240961877616287555709790569359840515208395521430087803685802533201846204336627274761225181573940985255090620425460683923284495040155463855179880294034022127063414266621909930982314464235648598222411995721667153006724817343269116704037148025359715555873503271693139635468592083419005511075133275698018174167779633771179755145248595771184389849441377317254036872066899500905771982295116702784188983303875708948793478267459564550699287069101387988646303470179497447037860014125575202787010314078228819399123329415891691344324948048604204745396806276366560518115813397410768580270594403493532913719656401752520243184707336283406108064083960625104544438610704852724901501962088296009607037870403242777177620456819280583844404985909228019696017329966299378387185423960445245448964771995394759710237412296771575250272043521234672525557943254052455323183938325591436428225588894906297522283692516857855170156009750966168082409013178142514293314745439598572869152879582499127046306302519741446313759223120249298873294569634329789183864416083507079493896135404122930856175139174887388919452024454809063189302701242399880251120935589833286309115921201690423087082519882746070716185524533409647055057371115557713230566783121771164385729781158271051252615105169963077601647820137291286809021885342700862922867426805228774073024526741023309658552448867142386497608520874707780252213844245359481692522506146871643622688700770579929436359363160690873532867971708060965516456865827501757725413246905447542941695274005176786456007526276674391643163762967929058611781501160127170710491295998616477153446692051603858901933939658972678996694286887501252939743144370119417059268180106092869114658028681075246646538800655133283835035992454252237531285167213523541786455494713175583278695924256958766672201304523711855709745958331786279994669744974949910076162855984076416334320577414975771892656862138252772590577329740869675988678989813466956050142039487000799946785176914906889566657357006846151922759479451895256440178301835802632405978524020218044802002087967715925741765389390734507827754335319601198810535401336234337037977112902881711986460055928689353364386058281470732439785199268703886351310489890449378741409221959385459118717080917474768724375932414517979484403570841404258120973802385430739240577884885858430016022262025045046009278764755288311111366801251559036782500863648771666427805339370050131153453512129745281138137359216642161440144260576920810162442173182832343391424478701348375254737372343918816660163409443719181320097857723282386185716397879571376417070896964037627003397614372275730095667536746171150110460463180285710305413486047391989388696984240987875492560185674216366452086323012666829719769142714419569474832066084260792511717388725558164535289663764367089008552286403399911950646384397433034933379043409370860087287234856759923630435859139580475048369107695683972072605161013859081481910762981441097542347529474262543219056926892250591340392478172616457456633985900802712368587602484154855109080025081160792540259335097999129131988739094391275643525661404011317739637222634651138583845982433993983510218193476984572360437182942459702402229983781733813295436903395026545971077792411400100378367013218204379602810644381938858753882509227909661782303764717773962369579968035369634574003989115312802236277725230864796953322014888334584712795981355361233139653416283668927462937909493097397034239666878797886103091850151756055599131757510817636992490685474475424208977278496867570628488801326361603944429678765907700618119990625223698810054643178966696553234647460068578129155224932703371069090145734455111418112478762031895399341289692585110463065798896050610684816965361507032601146200290437044765675451263777830274648078124463196852586951211428991180787832369866705398902284839454101763301605487286743127061896902625236820871781718818429338361360814717173416613059731072656559125932799504996398332073555853664393425570029896437049575125990064203156221910395387718933835924826840226543620382825308930650082950366280072213472126456996100587122415339118386068875022125556844069627526855248239724007423994594160247170135317052726318007433017061072903707550113123082387096473952437257138770050732273321219191827861504649250250785972470549027428677739965761759827153504614857651252197016541153384774467557311906062755957704383818500811026598641868597200460537013340789904142216248997731445372392852903622596254833149137911112942003405605945345822277996463304545625273938882101986378864636511201374875136300098329980223039479414982761140462842029531881472624592762257095588481641190800140478848268406449721092674510965756139450806746999185890031805512434492951494036682351875036405206541401349981692895000519858177668062287845066666202042187811049728291035583856226747538734432521817206708774659416955181145123123934753021566209669108213120419236729963373387945120336347603777888574338891094495828219357999278367001394821900456884784022636313912606313553773136819075480065250285478529541481852879812763640419790766218903268631166438081944793640398243604117829760010601129485221688900007573726155294729610740628241251190251229826120469917198742184607380891642564071364031014966292198643509760088271735140307141104612285888282098512130791567463507274418005556388673146068883995421465249754244483374518574086569250290596691370497492599096718113026080927865494922071197050805339475657002825812490745062942192377627146606006119351513084180506113628188372447478108259797776160076381528425273104953133808270173961868503732625416672805589613256907297772307005579467615711062580737918841680486890620674129668650737732316354572404661780079487524345256061366563001446567911171035051634224003824441883435594771165428145380242753400567137863393658536096107408338752962512305869080813620316095733156436935710655640723841803076674859517070016423534663522530304288054594508963281235332829891877909215311769523829282579509042925882412215104913319521309579085600347020671700597263464721968940635019948946378452425791960426486875473173765025696670840360872528069865243545465776405900457661366897271687504304472014885039138408218452392607401459823371821233662093229796046796568285365602627991144937959762786499926666284258705052647415631879330518689370897388604385817840714623226705066720452645425692472080202314880424863246914183449913497024340740373075561370841268049814191056170038263261123727077781750514790227678435492059819194441882872037830205011494776627290162701234817610294887859261685317809930787128205862226924618958339071002618602891548709123141629823047587456937691425053678744020289694954352378655488560791601002603405544201231734605132814073832017512098918132732958311299453111089617289226334738148936155195422911187156054190315208139439156779300179522087335773633694473106111779653353061620298308725099828548239672652236494629307526720474240401526245324844916463859636348273112667436421167703969282147483276441563974733776358413831523518887786875639256499772074274204884547610941171164593326674549827898220070962476706496846324178879503546395094356508389386891358697468487433775580172463474155009669467262260710029397688383970712097975078647592053300009019346851198456032099369922815978497688006281319664104282201610379427496635834075916127754539493935457747916774829909517059923414422754025118355776919447032582317273447742736959353196068919464091381664209878523350248138689935447597983867577369072292634973161221194620933846099753512956870271282339343187371531548240306781379118392242220672388650830416772755699000442633873178506638821674219022470680814707568249324889411499193274892748948448214291548439789923827748277521942003344926440317758270944631121920638342829962052161501466681307913777360158566709181692673101526188161097869381264722177995557272894444323338837964922358261226055406334931586380508925321770611387677728980695530025750836852943719055258750622313222629447112237574551037949894909089972509275478589540200724228582081785830261463135898997591307237784398874691538960344742890891339108694909067526618590082145634011994881659693572253378756044929569855638743654092247067879767730529604550744272053576060120083474967995986041857099317163354007695719790664493789017179399951618307700377225997284641386556421463377155391437311971204036709734064581104659627058434391225878137424107004452381998145724671204119521638364877733279938151348086351756369861358460491448909649916454779080431101138267379355145789887474414217729431785826368425627964866840716635035400378394433878484965342391606641730401789287585618979800713904715536379920466719390873107642731639974519584009347333528758722936779377282823472778730821831256751678348273408482628134037323120329888218069965335794453297082594696520503083462715203170905881840485021841955295196839792183756312179336771524414156475282769894203493043132426100960314671164298298013699407262143727253156583690128005468571227120820155438895101720821678646009179298643914022430325954803857075240630095351899532837344313559707282424265754007053791210600806549384744901515894488546421783979981744531726266993969381901925548114064499782024129722459956957879813351873251609944341655039451684359964925622904838752608964002937027492090895239933468303853226843711400983250294225944246341675017336717564069557369811911312878281128937402472083202427183000664312640578151168560531023169923025062814929251874387101586840638612484109301834525139137820306798510467141385181416465435862379655480687393197797454567235972155397363386431624176945340860506567519724183770082582095210091544544971134708498157177155183005321419283433646571214939147067760619046796348377794687166914632077063727717297278682231840690778991470054810815608969809342769674469764687941967842736241734814499034766453770393809949581166222388202880368886030981143107529960103239995705417359877942657018448817920585323249200359808202686386290293532026896546966134794344440009368603664472453352094629364228783449881527892091403117419320129024376618306764232649093540599938389233797059688705372878910131070472451701422787051592181184879219814461064226121150051029131370286429044304354325874380675859971062508235082536700488862380266879451939358857487167718240851806421749527226235390655512551788617751066134446524498073766756461449398311369477081371742367634124975945163552807098793852857337759401224876125660839706346190074322673491459659704159604045998023803440722606536875769685590765536240849995265442707483771105424605168208780423899957479965268966867395818260179419741549019311594283286269339461428119018950143864295417582182626864874164552550393165605560029220391168770520160728991704667031477369475873872901815979482382576185828946114662495962739035382486639187425299856260682740502378344779690768019633752128393014228448400583753236753082292631038926361406929848893731537008306407665026885983512051314195904936023509046825202451151756576185244532460256391020448835081034078258068153038531186342788406246714971767396220459188866992653836836261469199709332234697792633922250928502147715568825369474721631182821991018078169878308950407305869291591186602031603447991695192541479598718450797659191229703431366722648852484835003213789867197818553382977435814323304031862053622218296806053814137850838521081376502802903762019829737889373652347717909070213237433853761844667495335678118401176854012303417506740491492526983427193561448046492014191590889611058554578842729918297599809404602576392716852494636901689357085447337129637802581305435032680531359158467118423491714380471105777010928927368802035039109217543946897063805176522650798532253378770222835742304886260185164458496450577353829871850489224685522417059494428955520436036581580723129581506593259064137493124811852519948068919282293193166735023675193244332664846208495014037081508120414680670406523380519032941731118049746590101593907482174132344862940013898157850561911241993770182417099594892014971010755093910300808768617445033108805647016036348886185429027022920795616850309382216991408867321698946388630307636212480257919422763971781704232385117797883274664927661730348098022544628789412718195352600051282696093782246375831330183778855676843651437266176817481722082814231544006763139470676346258086080123192150481458781518294090571458204924049517855775399417546300684883402102841783417128335234670787631186703898807249423926830852387426769778366784955624293287455325521095929259958117566918707685215347842749632194759962787433209312509310176077180770257722662064875052136306795414046083781666032663883252374969950376871865774299946283711016775444839366144467303078821914727345862533291961603558458246860893450421638377025144770336342235378993884714803076705164105903069805750249774227600870918529999990515022514944448782168445395970466492463580504406654429618586408956132286642058541152343917703261782245191924688459746268403572718281249678679966011657185976038046475285774732835369413034839762619056300791863696084118314035515871828239929419870906251703072701993284134514704799296191895346296088127991101214023692423472326165584237137065418169613248633155577220240583554115480080449543031199473227012574771776029108697421865278113726488166214342144305330079447757053948890729194446340816410857260085290444221576020607799172346091264176975187201217442628794808353067279194116906785640407979707418496343613006894177453642867443984112460788736462035830564354447762422180316550621523000240429571742461319194010439011660693215521523376600615882405577916985812842450780374582889180674035943987088564039966022822460946318697567778474714295830823718425904694302160054897757690439827541649156058475701612999553837058424516344564129827979929393522257130597113317680399986106371966599049904483527141756043184379549956514133513518759906659893773156773897426696064542571960305560693905888396182723815037807705352666975965626444476204183618163442382118275690284722389409116593676688500472659018011218294805651711453355553776686916728612352640060233449508132790657851243490172843418721970355119830288690245266423405490471732553689720461265698408760900888155494623369407152673318509107731663292523011045729222284266414709417717280287472188576799265956520195548563588300152854151415583518988494648132733987303261914063928516217001499817242703384281009184387590765505619959837585030213242210168627563584146744619919103674329886299662080908149604323889382771531441307007602187279334696997690846016586577478061519329434702745788356413419897638129412609367357926997680324425275163888527753714295511072136218248940245352102148480692979302765991295678245895863820262357392023717517756811623013266756111108397695260364494765456141802597354698530216033598303490182925621880413746681720717162972056088472445789648337285026260354535379243491599625703139257139314515885041016013787242450830821957653976496262332830122023375949806582890008389807268337832537261312464540102549271847761175240942841770000512512194653469567487520244443931491223986960400857701044816111019935190632270731815084638020255737097561857349770687474524281304593862759306309130964899507561297694157628629614908402394186002729622100436106056188146148531090961044956602593339270747893301669870910007926375924727399543515262795284683846656562081664555083174972935103872318962261161333003438069037868419951048367512440332244098079660557336063392744837177750892317645423624931262988301680939853571865527169829428547239220098159663952908278167408136034249954282276387429113631042177583834132303264978621267134407228635409908352394053918421754366897152629869375644118314552659993726189500076178047408366740005387772901590250515194108068433577671122710686576414897919466607789474231616071029917735202583927018691408252376787123573907512009379425276389589021204603299029122780024214268284589251056953571854100464576876848223016657272211563423172448959268875034580115280922490838882710659903644849731418503146242510874856436695416060642033052578554551848999165683586991084497175691604673353527685020126992950953577137193315511973514891037352341950840045559038964891741741061246557364780954836162979714807075945453189506581489752763483719617652863914347059137456943892534671722511582274335635216086396080480958653565983795746722401666988726793732506697251971528281410174767118324349330232901578489638756619451688726408515160299141090564595526444066062982905193956879523365608808801307246361746657508963960736980197166175175423833777976955937378604205721281289332692335187797572761221155221448456156750816830844242208034775944091874323961518379031382497640621234599705091810424075152152914424043388902604106164223754066288660414714803876718071634313536522849212780123573299745885764497440550358054877646580765769249947872143352403757150382725890961208769968393722398919541763227190269872131136071976967720560031108535362386594367654655069610479267584075066604355833543980998943887422788391099091571474545423884560027121804523943608915349443518105312380507658584762753461066350724674387693267906637850666738706667378742185542707478057817667096143859904530239042554440990529125690066955115158747861239063479800812200399438853539902664978191358169491488699964125345970315287364496451659491944645859473002899722568680743890312620859678437444960650925968211681559817468701090429805285008916080308940436783918809624997246498118815452517371414208493650346430972169148375047214926923569073975881923299891627847269914238329428465594978824655341940122011393670942758766547255311249299774806850598576452085675515584799092308329885122505619104956300237662196147855495538933434585902197197621343110168913256309782354774086531669670175224688818761707335745053617716808372350293315634186449854831874416018648832595316532740782005559270485871848798234583570777239064919665893243063259348349428251744717784673112151559622011525164154800268314337982023724896020370086902325108281905641327706684787423032332533172235622345512431256040243050141734530444999831900953425646892853253686493793416116022379789207335493897926000541317341374310729725000038261464066535703827798725481875412675334361940897678927032025578224937826385675945330230825357095421864367012177798709188491633459004336306427403240335373524687797857362813133439493185894097003754567249584046808976772730024668716558051320967644125767855268307583517092464233126755646240277386969286825556617094123553304497284769025955220361124112138161957455443011588901647222458845171667692893149855141049798037020577066522386180659133268890807188698468564877776889772130495634380053820983923834003015861955724961586589189483297592260919584462315987897838194604034443239549226028744070768906988491785286651758225437755001196473177552177045361656051378803099340170921624696843941877105907205375671843518375905782967850605184793095482198851237193507898421774249416714352530871767789772239702939557726729749212975743497283836638475378913058466803552670046829948260245375531092306778777578764428998309790491777405794137872327163161144140141099900511300391332661040604939391790843382860502960913737002480487301410126189565192941250335990949671732785125736929221099988341375469900752865231555415156677000076147991658333154017013873187053833345019057527247273923931076198897132823426170184907699782913756408103495887600890810450720829160905753674512614670075852583476845764118171593097795361988467106557190273818307027888555825120343736764855108275770093438131309460220171013761176733010649957960207832666735178565185119374458558703203685223360970511588462451943918073004574872067620598188968906013011793379929306048209372300469434523015983406948534447290566612482880248964575924925584218569255062648225557348887312187130327262052164119869036943688541248044959801781329662741767748226262606317765840874055085997651176915493644140120531455475706835252062567000066924180567668158797099576646406783692832624056748035604206038035279736398942452014400246961710090601015564430350267456167103170232858314294980253221374070751964338109523287911922516917444927435640605541186902709080263683507068481729449740096324865334246488211908539624375203484265894495181668993822545482997289954958543185973348401726703956122889560734918570686394732254892602216466658335968059197228960677497036252932410888989640605645601767209639601419136434375548804481149061590695314260354516212718402848300898376306567359182141188693355323121934520359097904366877330285040613647506398238650315319228247745791513393744660099389667032552743606469018122921288063624200099904429210446641274288008968149850616257972062067396520184753698724480778082672688439239269633034104222949233163450829027236235305207634335011020889051237596919596318201037356294696625634012428989053767073273102230403796720163197820167477212782324001752060394861898915771311856440932703043821651852100839099017185137524992370190695010333818465257792449851099199915512438290516436193261921252453433882916866323033488756047418358133462657879190298708183362385959870837217258864682432319539477137333551206098911660449345268873278503219170817782779024692142121624966300327857935341615124729815052475862531882709611190375182915141091559024349998112127581686417519224750560802597764454296973629364908038675351377329025296896777155248103165710042040190848130606066036971985569055620583234905966763257663102731213762354330987330798102691688950512378701776325742888975148571049304236928721238570400120472445904570884952461812307364789043344620819433093641013701570351511774634238852640888969667590271607554334968155944682555505095631326862703668292918527457141523392749186289128005383508712597566867096325497137323562096454670117894111291938302164730487834302608480330336074512226104500212417053031770362763837749657591535307371182903419597158438821028871306007451052304290697877788560355375386573601377202545772059494216462376467513653888136046038712922558337952207188649718719872099136627315270199955020838474015225280922493104055792948993121829812563358147246275655622215093397125430023969923136021283745150058169298284037129039281344552864431304061655676021265082480792096583475036731307231634000906727134746488163270543155830824480452428460518533872484170600956209152140582761565976553633257352879389120164812486085684301425888231867631568217787374999658220747116868593496054345728750688337980505204094558391462396524564587310604185307086722163456497230763795351134959393877265372283194418416666311886689121679060405719623506417304699976627339558007903453406950566885506341798220194269248219197323036202387929423727723383594199253449142275807624738410077214559446519099897676971591622694991457360947121191420623311660119157795001774272307665587839567777500256903167619016582314766687593513696070611214627822821982556779753518663314653844436198781706404300834340590608524341339641367510154725437580068965128353869341707859020025251490012866184602943976371574069901607644728922037846757014560737172485088138886677286707509458483005660298820708165559892881636927391698330691345550874634331103643248685960590837236766232379373685206573276230454671223641067912740397948143869983147136720096454395128153370890563367694251685172486153976016181171209729426581813569559441286078627545146280111548933639579808328153974410793278137499302771461567933271407644978170892022665142333629950053146936836398150530922297514243695005082089423871431923990684222824522559898303519701736033245105677723608195727105707354594350893935309635909166800881208265569223628942647694031854462315919846943975631218642176820183152754836442353787599705553754881924850799579871334941175882760499922055764755453520826389545780886784939354414955092597656156036863648961667544085279193531113528291331954287574917589374701683795894492487787921541369583417199105854189417975223549968921707975767648980507059249204184163755096635989516631905826284902154071133066549157210501267758076792656120824091303118016756033718905295305090861201457756103792239320735160438899490293007631243826136342282013741307992765073803910409033347776484883016470716049650775854600307531966691952960489115207482131235137536893313565042512300774381704443532784170008421535165809791715789618827387099032647234733561479221618489407999127710245078368890683496649579436674672580122520583148511455096209020273303459767433691445131040310453262763411583242947201246237744370349292587290162027152217702999241083796574249972001107007762040497935608644449116809500864790977296989892592380623118882723474377195283997905324455829572659007205732758363494469675503746181715677281921691360900955957920079046963469539336400806524826797578513266868048202386588234593346942229646687044447922086977309212533117488609597617976139312444932588587079855867343675862540411083298383641358951250586238103391050408025835333795883451344176214045541089662460720421634577075777432397761592208161302337032599141232272019766649884755367555798068996578162851757039020762815878453469219539789096740435924667373061840356499954776693728647072631484888297101105881646380640382617280555559561822829805298723790099208908148156433597689040018365886348622152323489247126782823274894190687688434700488207930700677891053553830312964431480800241935859836498710740862811946434898932647026106742081416421981979501520296846071675270794982863380423871757436548556689439730365234436669123927814557406603290527698756837990826900678569834922702047747076403624597859515516039443656362888308367403116876589668395417641324110193302440697767424347564716275683598675937717996399351168162111630258064762819584223350190142684785802331831159676825465632120390172808705659625880118798302972772213209250144091202847060281092229583765921323419480594427934525835777021464980600146784905536667700168031804689506642601048181371458458178558523949790263254694800856001870559856514870527085481611989872812326587938622303583885844394806365650544739827331604161223825880043880674025319627194667079643474148281526154679862431113105011099365421181310093629374825683576174381364306848318257934467506844770929798383638948442578403132380317731846694047202294619151140694083030106997959124273189981313531464429757073757742954634335496039417398142804994223409716702480242278065198919695286734716870176548764788629460892373980001600442286826545208489154641731596863383392304534092184948059533434326771476061237266752968663179781516440242335457701929387728436208388159332339315451064453794506521701581885165875102550019915143418650148685263177197806145198563593816484768670224031810598588253978510745492718474219680618879309543005257110611752046863264085137719538071049900077382691328385014082389447967742690135645394961706804754787999743203364253539471529882642108848577828070728784504842575542250753855751034903158701490782585722014337340745769545070715280408661211212256267264614253619491534806520677315627367593808234118364751140212861771397977680385084004293523978492488599602145420290175198930861917352420820175817982719081512401900605867600877868703311804925783892484284600172169060917145611149699063802035849624675508535813101918061110014653601212017424730086854218040734156402221597426823050199806718677458475481622830100120144904229994139942391479840878245510062869233774201622412549041546911883740694191031648337064522493849535338040590799145725012474145694983339342830365911186623480844453845099943896156683978221651327082030413251096267932303639565353802875405179050896991194095426070747438568322885588923272975469752094941266588554587073822172517489913851097341315659079573624222533932065595729177346312260666590489206195588947484834263964947266769336134863352872923769543325919863900488428826580596202419831538164000806145669810550409231306812234884186950522439609497138024119218427171057505076057300677297299810096600494137976350656983375577515982721306408742338997378282737734676710921490704166637237105803128182847882458152873338464270540091151704101238367574551294858587700584290390300235454228691049618458881887509516509472091704087568087187367241365631149578335257465017103836692383784523887823321591139277035958289131955897601675111110631571318549100301406490418171679250194350242071368575096229727377037952689571543122434276357656705669207378440023168540450080293732949186667975874633302287242110174910621402985006106358474064092592236714009041044345606530974125107445284350154044025725788063196228693352016970594181706280786977886659290829433979407183780076070665833004427713353486342181968570114511977780482714223819957756775761664602602661572390430408895066172709958930397049394301688031625716648817726856431750493378199605892088033857168031413994611476465451304001450985297659699933400431883367474563676013961193623752091049036083899632233581943267754234684690125683425220183601929185781572406878235913645837003965178535387538385000510190830441123558693977399320034615471819959028900345335362062357482041470195450078211293621546572683055277850772996248198729097510890529446514272710902753829197512303886964355629174295863570969786214742446293101256895455061740429517546389185910743941042898733498292912102835813344533146389772075892878830668011791031241971734698842023129433914127813698198582719735402091752821957405221986948838053453612276596949766861932282104281279383192561027173178945615776790848556774502769547634397282325052958951157529592049302730300867546390500333134453162400085840987643930027473522421657443568500087634239132580695560911761211098857441406389516864158454640641191425722201576690898247273672396266545537796431213831607452008252655524239160239306341442586384106731734974830174496612510145480061136289058764533502089972953957490769940457211162013888814131450999132414608812380255356550343766112386467918787309557009573518375485113274480982838933228131834581405873925297006006063668918016727253909985648525116395610349153561699477686471679048601223091461875087253027799697115418910437545652886975103092525461156566170090156001178202660898150010313054938042465383870836353032704691383388272715298866915467049526047413564264761265772259011763936903700907456956307020751507877379091546871402030881956962885306495859598076159398198859023068345662100074377431915989640747198353748384596805162390044312864444337012890826793381352089950095896026454003499904282307813998671668176302237645020689258030437893805548912487874592062246368740912534725654811897650158922801959305675864238880488327508644830465455702488953172866139647715820172880289153036338555056787630231028745063639923289619796206042596949351772540645559477149567292981630861860749738483106882241049198387515624512737023683565886897850002528537704452052103299844310347116259438169882360453509215116881869601579660318089260231466275335719389286659013878167371621179021737859969716784809426176555911405271417902611943640590782808256406422387014034910645226710691563974309669071519163824572295935659514520108066468889997050112108848221549130368605540429676357495937883474260883763130204452712387021708179364413556396187792297234251657755973884079723641178061654305021905184079166318385261191601234226868064910713435320679763078246907276826763769890585764377648886462392238460693451054313055964353818858114306637177684054666384547774252363980043121484757903979309318829883535639550826311331448993248040063705468360476583522880156513144927774414040645914956107022042330062570138230815119345029804504576634207259192191828310151075864462887940446161364734806449701271767206095961338799660198779699644317923472691935901737849343144519919400427792386781605073493386920419806812602165305850239581213018137546586624118293732918453460301760991548168651006662723837111653732096471712643138577938517316022825738521736731452467306473490997089183396071324874384121080646787663124910115733171721659114972079886074968936171723299956701786673427030696111667590982678425361434796254919858413860553161860399524843662032572595263952267522318833269135709656276362867518905127897443398532713700063819316038021029387396846804570910220986783555301810028716359657657334671623457943934184105211159050592041111974328228662736531532635626001700149866759041262827704478413462014508610801415539041802463631409867520725481175641474224040400224013814665545440070653970373582827877617657078858847786081205906489348544650694164290161788115075152138179285116021109594456257539880953160284797792179051310244029187511389051093840180507011437915893420057775411226062057468587697954737243340045299648263864715897962161605236002393328186180778257579397722184063445465175092983502166878049974344309896743016815348737175828693179959544796615351128054212412682403416305292748761095698085806102181587585183696955299465939211616084520164756856631665034850324582623766373829177411196359468653886286226886676780601328474688659411771383345180318292002095766269077272090090078229703768947128313418807796297814945762665388756887262835678423170947203843811023503421619918303081270853856551044162297010905781032300577522120601940424441411696483203681312246871890702066345120855231544429960280837930376082210727716554215911768704403786881517134484549442364122566400150496865040033604962806233351554272148515191874621068459175153097676496380741535256626499860333203048071255245917985207059849799404881276292966504529504985536200836875331086292831659441057893110553626968789590642183273917890109488424234209570373056378761036398848120989691756347687473245558863744449847976892377854907995463143285949900798899254423426841220380391653978380043415536782134311614273286775435162319676901433482460622173007821703496936877613682583354908923261939549502423349256414643084028226782552664520224520474214797076628747263987786472813992617176910677989355633596124107793522598194529752853985499639985280790292968298057956525596560837883604163519068171377004378680853321538300444051893639013892503645880976176312206603343869441777170354434728401527451675822145549711748176368793860244732124839145203511973592694231383560183441455482224315559686086316634751076431998978352679765906819855155643380861195252369793308914324594652470857482786477862450015950635688471998249902322915480206219212196535057428268658024777858335552605552481960839948608777562249553035581513280182802747053527775618181899646291909961233250344994270560073283164608112629083690904128960364536746774698138853841608425394856025859227055406645163842398998814158966576047252158424515723285269586057627148189959609259284580002992728698394008160651137619578936023765692693967630277361013623211073929600021663868179332269946256044228497114558419823955489841367922779023823664182958760354745614370133436011414999055305719051218223971015656664769055321689864270134857980086983627563307014213923159618883607841981752443219042365964112586875560127751964270873390401929618229993826060972180308416938331680029934078897164758407065659433999937280484841218885699160408112425357834166667230725456136925930996382025051677965465670842687941307790794153832008042249873180435766331503394952856488772280467571204661238758253838348533100040954797854701433249586504526882883335964687921280042215507665551958990489708472639739494329879176741772327180277164897692836145609422882305521239048527088388613186403691832187236642408481239975789448123721256272058452601948418553430291125916472712721385585375782596024456576550860801768921827365172863773936204756421734070172282950449204459247939190407296358924495329541725702652342184620338042238651105714609809695603050741286917911267659852965889090424596357348367175650436628299393907558664061158288040376106080259349847769685110630908912093768008926349665949035039261206651626975309352001426328552350328085010683755467501467160349205651391410151144183509041568670648308437963358762470382537542942612152269377981626162714287965112612392776883116797949613019483880540630078294934488610928253787282704461395050160727729183712099299118834509988441942994651096877739943449755736034305476300184469842175843167014226324952490544426533652166896741524604622381074912634224839289746904242587083629352888787853255447884008175002964675750624364610992361669693084980369312142342113299175826826603221889006832157944440964966745067755964124097920326773326763319500429972244053983818018839810208672057272879786154829264625465541519301476338601710057949378121852991414042093066324446201012117341804742437889792399211406070874985135777579664755058154597450656795714317851949569566534328962914276794881334004195285643365479492458825742301734810636831583132583445894948133663190109508679545656202234370710275970313665725575875417599602544256005769502113574859732438358901567501706485367010799533797953166091687296827424472189622794099102055955563708344259905497675665191462833358614158668764103461437942209206182149148143510528595414205782725036077245283419714328716331863718076608163774768373382113130347994944139128674151194832517817014665247206826412932369778329122909468615213783512310678443701729845316155200302590732613215000833189292051580896852032153320792510367778497184873713339970041701449244478727057050416234643744706025672006652756083130279358317283421101793968000116330556758641243044969388342532970459238458475392762412008393276966266138545741229608855722734415412544776603633581051648443955471071139850067684039447222376204626096016976732715675810570774105906288518821343148228581712401771385442360012014072274931272487993500825641293057293984441924280094587009993850444667400807028374405919188282846559352337108069937082656811202153673248036000940161391149576939272479055010630396496570459545843111172598329697042919078415527555570583308111110548040923315330424494479184738237156729131080219527461321916241487884693754668112214446245743253869679084018819563869004105906120064837914883896236989808305099873093429990194143989639708022426878866848435402349957466293725534394707772307750744939711246202225332439570025689498853531404115374962038489875580402328046872792739252161880401083004320795891246592724875969465798514140221948903217102539177773375803587600621170876645674230321630331439877470746580148717979051606652813475985020969232348726948817649018834483926517207434175586401321211799251667307020163448029391399654298648440153232380683348094493591484504669969025297231106333064865881820790605549662340651281602182438529204536043216647034939102075444476220618918806491276937285443304574406595236948291938383573926593569179992565126171706743339614406289317874067296427514639799539591306809379513448829725993837282606663151008190809087481804478871100589976526436850845978799069876137330197661478440785243267633805220817269357918078018258611214694680432852495670838528677624710130321795952684148824613198364088841525783196456452585277669342707229533005809127685840614249259730708915679178751089443643060317146781728584418436404594507807882554715083667629114811152095949027927602067651526063954019511367766636016816028886975154902439656182060220584574228044686215055979322264789865024231352103975670216172431541900381827934370946567539132521597396455209239885273846607993867351775056223262197785301484459283144127736432184327294492917587065943891980193548468012868206166289012838095094179723798007149664018300748854299708576088071269210757586577868962261236639266759841092506356040745237072192874680401682360390575345413778949674064047088817381619475640019149704018244679165991226850040777450622938265009815180324554391796250140654025985371760064924679748360979876520373819923954426464884282317542710905150052339720227510432043441740956353013697315453313156135131396223722732684979841065783677105314060491902344028788770184191349635791758866204844715474166405024591170701884123244192073030065122018050266041369703402687597343118421723518527725664504210638985525656360116329116226728298187028392218826037178127501921457475383333967233156615414273506372146993434681650112816039143718613254331355670376789184756608192787524451726918922975202478628984101828138560764345276361707514972574849756543282294162600059264580554370452194853567446970936629850028614286732128446521517541960429678706897807299594135211915104637645826276620178602460050327908271626870965599401338866993939757458877360268702887589476191048266035867558346798219022514757374874242469361393025147619337365820015094997261433468290553550312907166669638229771592296331157706275562577466559638025448251780144716568892098063243404362847482635821204930340895278918871930475655475962164236100705209989778425516988963530866548391875561284503741886172158736590282149378601962563034771231036218017072234988546579066743210020941052331766965169934474350396451085695199661713958012254315516837163152630756110604519764418064116233458330637060437943212210298169214047536782315865273903513179924492538335169325659602367070532379485798022622202923369622496774656990972131337749791013056454985255887965159364812126371347794244034359992959436252984060868752028434832217532421003169778741593419770731544540712305194203258683208662173613652305272799687069002272235757167427356582423507970065036733930940829304033042048288842906001534236699878695801093968592556605814048129930086332908678585237341369445165212692906714559824294983047773353642483317522618625778977899428256600747026087358029357243890197303028601745485460663935803164779883716682274425050500245781498044958407858564163755689824725290707548626243246254024692771592143536081803073569079289157046698324079787888989312268122102275042154815717481571767127114193307820004461868276286451092097101790498620127794412719915435581853161600269234228537269993511888669840243106636449770813549771293118478332567956647020915933070005174571935952447619229983830422963071797203281533757475057246132077107813855793894014424600713678142836366789985023513620728275463922617964921540081871999270570447538688583366935446367248993679150067909388115731194475838286872391396065223883187549804710713300286688537436181560754169387245351369017405872950615075015628979909963655047093415168397310056566981813362180326926005381162989182735543691508947552502461184709890860861045313373185414944117728719083788751550436250562054240812178436075840592666156547486041449016040310391950973581044740355380383893706206519789066978432923884059970602336405654165139310682671793812116818551364264942372554622659696817582175920662149901181684265300650072011004582306093149695181111061337312466095625596195084139327384023372929980665132499754660700398729877518077199472802059124455615048334922564579371750741205022324055866175093875359811550358935945777357111350398298580788514761284712216194654452600468573695657054293665181327791656054523704818139947596097992667967505337872732728382714373137847730175140215973616082607894721852942565327138530802804839414164907864608053508440304797894080406723530882945061093523340416399750263478047407239313135698753065717002805094056722671966171887640260325410425292912944109477460718555434800884120791729548579904513950878050358201500598601084699600710341241741916355917054166602388810252899623073442217733526614777330087562313445440487491396999120777024337288616568860871164328383602985135259514070026519602217450705926151636770498464839447202037364338609544256759971993800079429450325043840545192502279352661014623065857086768673869110728450749880434090675284405955766059508423395719697636303287644728970657590687234035493281371821160766953456677618191060665032562375004735645219373525483698211885803376524697405602262958771299351870268283488130481410643692353856236830734072760671104920509791415001499832362516282665455796664283794378291047185489227898268767522087302835335971779898824396146489230234569651415016469189411419828858121391716575965392001446511735845868706401369762951406561573546368926302772393768740382282004145340922945691256148024166490779813067634729650325791905547856106947846074140426656401634329620972846993025121765751628993182648358679556070827763384750559004983104196598073116755947126855128294180297380132613583071816916842093533575370229589816192309720987819241794015287915410971257963554045133239925631611940671988192989097611899381882991680797631486168925115297198065329542768252050979156553328871469654922065753337575402317215663798468700229839647917679531130283485951611209293366044769332232967961336990944872164442069518728370734016583552297057771025761964111260799806810830243579295736239428481674764106122440888118774213545789345661820437903481042132871488680354672404910243345356676806547370876228579490435475611129990750272020910967477398546099753212292787558399247652333930281339929470169202263923196292096459618324189048099697298167276085800131671936798379026304991482508202273132603702756634383139152397471847095925415893874708065491516677745863389950069371386717538490895321472670228197833926756374869022206795305740368846324171735152879035579310221168702351256169852326174733700921422713472664277100177504367974028482473634611623829733584091408543147307181885796017444659397662662918327659548267409600191932911351845475564387084010302535290705223176098167400389917075616486496588116138419993053806287650798706447842232716467537164391600240135495901508361621242604575704475942018709401996073752266028671840225239197095308026598496074958678870425696756927680373089552185734005933215855087738723587620224010600054808121242935439332983405658473051205862766622281923339128053711072305619104143190842940002451965506403841425597570373199810406321502271219574073317221039723285227514485686545540783659515157561770567664966769733204295954952522204748208609393527736854206058183235557394996344512618374713807357248777583598998766335132395540361075719361054884146717284346734540155617106926536103161401743411489220955614132760842363625195244719298279485014057409210020187680771786836102259792255141093954333629738048251017746964265305090062417925019323256882197982890540006187899244504302771458397510001726601954252330047769766484012506643607006076413271718929549002228838349548781382673723808236327769993358221028495917410872219991386283750674766259124722888149097085445976818515613151692582023104594116439121122448146613442687941022883043554738041440107695787744621676220522866864544613616155774012167296671572111666148129964944365922956040768368638953757296354199639703964747267871238004047290748374583693598300817440063644518614951069531869486154918201965803010564881030891795015489135962546829691739627190530575845785762172710434074925598400638389297079468878625601873404547373566003521874092184476768338282653498669929455662886206880673110385289011757838837737101781249883140097410870754617967591148539020391046145771166827335134478641634027053499683641922100777645968745685254224598210824104896273390828129712483124266484272680294223198909722755130493565649064981947269756261441683701713926314633163214546045866273314818810589376849890193083236165980548430173634777492982991365274706834132303647539501622123940237752492641332036990902963001469590698980713613451036878912926511913363725751844824876986102177893624217009101873394420781491426224050936486042016471159394945572602372460230366942609969779053975846932873408424151298079974895616980517924193405565643556593645149078344096340349142897715091987070231341061556546694416469979224009445196273936451206952266214519961378036295072096290424745201008059368636191726211368218526032252080841551042403172519622185681822998309855083003527018715529499325188641139412788201579645083075054636199875989986671073910220048076547484828211539833250468695227586776760783587661978585633115844482290531439773733652617617185206702907932407425881272373768263179568190940587775615066978442698185855340906540962644372668790402793157008020474667193893386765203454770077139988827503102874688216568817522837860403538450603798546064277692003711049755893153030623806191625600422708568169929821816931056495423726765433355805955855908010799548175626590541185808734933872497474700709528342356393978500116467414060870450853735621835624090530699717976143617489317127606304400951245465589493649205163922899086516564455223209382472900148657012412360192098750015460246246085769250526471205700901599303498528713914546212557587094290093465042119111578530009281157055051408447932760945019654444840861512594348270082787251672566978091106676412154115729962745355529541561372286809708345359321408811300632609539939972829043471047277147409323440442150105416115697706289966500280699491856291431004293819185711096131356091200385003391652808127735239704515407954535604509818429662591263792403149634593982727653518716381591260969199909787352822103439514913532432921388958140726144143875053525801419499498106930712622986153203953663238489469167274650406425439552105476863242462859994229625684906667825624394140219020266886306016079871075627362556877353861710218324768059080755001064981024112155464960650701898546157116043765471476646589196999949199075171566774483333803477962461563592654493878686239944207527166041870946937167377865377219692420458693126014560140106392631284809024887125769036444537375294924779537368108781013226750343330207576975546463418326868193625406934065677716136317536787733439891016906009501655331698603455683474447501153002000006501930106632975442549930354503221220856427398933855744514145624530642673976114314576757671757804399711962394221065974010826468364079599789120539538540625677758196469726379638222266409643893326728678691595622314036931001234022996251768545649863113139508956832411775603439593201517117647095821960125708902384661274187364898389529104071754631653336007821999348687484664007906383274624681275333731671757617526877017874633241269206655786265158514579778813824339010067753242154783812457954648957966152225182114287632129169395734037809744750890766393694378753914403210402893259965302794221341854077036985574261936426547905274279388758173658576866352224474888622148745101405249010165848128969752660553659464906373468133237428924446277866778795968089096298950426269739619597069910238488469757185995651468359311147293852540299281859690763817933321328250691231060774750241448717284130239558127524590644029271891144053611085533914723291726906478399600726437894281974015058591423787060452857145010973684857744462399545596445671381518785749231815410887174913768319943177533457491293926830310512877402016823287091959813028556742227588347932076137492861963499970107374779180988481521389899207961261825314998513930081312979998253735589597500609720692916553909220347670924035517660436263134749871877699209218561958400711457452237074744081484685374594283417649293786348868666237592318791265386257022943244432086522400712952859109268289124869023372352251788895912249710556168175402686197247159500554622265380207274904204108865526156073973728816161870478214711060042640666425868456967289588540005257314148584839755307505242028386757525505147062320273899483786516937214950733894075553946127991150759148759099081152192020932991398937832263850259943680942190385923256821827658508538028315040061649872478649025817241100449871412492730513993019162830144698622529605111624020311806614127412892826916466893015184455267525518125545578161372140878920919908386966391500346206367121191087975983354706152442835694225295747130435610390936361705634387229149708140060808772962186260941366498053153481820501367662394921597235277287635867512424991068344586467364562546638809721787617218545932450802560907163438782751508893520943565541789109709006451525566882888976490255021209353737066426759275477411310660218504392966294959668908726515426493987027875372806705822673974555897881164475877936101991740970540696755817329291410450071000619620294290562184604679441298419146021759424257134855818926601144854318304049411213124444868555342451914178604049269569208877225363727508212256004664350454349588407927024442671010666313855717124347978623516250353382263523705877110056575794913208157956331835309249249156972225468763201855124801165521889893988798074044208003260676605342167438096173322890924003025411943743697912614926587913442200646897114161886973754732891637412651075970035103927347490992147470867314386639099933435214408271266892930395202505446071759442884130988268423663411893202164194912925133417574313269407690490281476800773068092428835565296848842215634936231824540165721456198668999128622817308752009367730416277576461527451718286307235204296644538319346648860669044519384464931953057662637580083784994928888404284424794948902326267051622107374666043200817276259263479220863974287197555198244553987288065531405627507382813269796191348101059232410998564295271750835229357987737353623083373875455294707962221306451926440738926337219133593414922797548797515359690501612017787489610049798585576444557341176928502550681034332658026798277918368586291834914808715174601749499196930045513575743828239993282262296150972399944048152554085435231794709209902804553426640083204083825190670526494398925366025951173723195719876356750709739421135828743744927941303312558058217247642898962514631512163325538763636992651014979795657952134847851572461152576136881237146463751682001302640751166351034586847793995947834398065933678002711282943869363667400971398369492047958125182794920875493342086098902827159512124032488103808374867877153520151524469757715838203428262819170513801506269293891202648770936713939366303246518236610818771529226842821089812896339981827205089676778778923003005064821929392211911630521473736732546746771849125913511500023279976038104612914015335304715797856351700116079637745536765165283657618749482287488110662617770496892157322834810389209318332388592705352374147949742078044625478953688681724099091556589042001550442962434341827918741555090240462793100358803841255907034464426286535273175108986871314489318635740246997219417845330801613463057580744141916048684099119342178966312814182378972355537458617639862820134180350074613502143998012253760616860409210974568303917980969771550618916041455010890604506395740841277687993389603849510238228953773419540160936993244327758485987936438147296596611621771255028211161309097408700321831860199577667991222932649502792317725864666863558730511825203293925765861585294914560618445367336226402770976214601350866507923772365222052359905560166544497465546969374547616185205965329482552796605536062388309910125468863394880772846767440364863256036853805790213969932880278457507682992752850201640103504508999481559984024239239063586476722087809766803725708658579270956812221827566824433728587461555047704134084112782021413332516878086449846867951528655422555859741050619822797104382632242146380180367875154039673682049981334347723763643760665928473213303820924288051792571596352132622407595769294517233875547796429718579922250514170805897429296668761517285955553058719441456220282240157367888946964953889716170527364449965233302711555283531639403095647120798497493754311834240349296423459196653008491910315546495716117387458038737552668788349175245523623685391371324299888874648110146600028851142285244336172461503832831802124247869393265981051802779868023288917354301906627849811549137712436608263297658937214636875261267678212223583495899171936124661732458244483463120521768516950658024324060371043635246722022271612543845798660650944101687369146184929875197053827765855645767760614751278230894134684623914051333994025047737680423172530983593866979124733609696372742144568924216857536431659960066337138195535423569287832560562889174502067539198633061465033486287346931244678864569692205726866595298271481814197295105561044411885753442946962507040101462829452446572557479537383886643897292194027098717767654656474826884270172202150181550592321746727820329703276992371242775483152656850650945110864414526795275036555258377434090164064599259159518504591996495388367206929903540956490883567891557381332949820212017620035888232032316959312337003459136868576471318929457506819055215936344870671809164794153982172196858865330209270815147540972679878256185701588742020618902345653905939450642073212994766630336462617374313399790345734612785508775689640640998968101081888902528952446179103371637028381205429052660655048729082206443634204902676439775230242980702670197188135825011636803353622631691593962971487019036318835117721324006611562893980297025908375093692362880277255877996226395204369455845242613922250581236496801865216862436855219406676101452806941640442479417595621808904605825499081164051491875656425941890382005934104594356146230119861877742411943151129284024800138025268955827499066440917170189084974880781516579156665526504274279325400516826274996071007833007843141395714788469059144014549050079479887361135036869941786005755457026937078078770153243025760296111292698927293130637355863217677370588874171605883003580517937687544918853608426003129772870405017102696035086958075834111105707086829375800785583038731046044920197872012025575296975934814963766169013496053824393548995989774004390414169669446065694523825855038751767498104617882584396088377162838878678081468736156676065508935980383950281985234671198852325495432572420757009760005395609841023285156320665128776464473409493342036208220668197044588852139702007346555458418635413175710208417436469297368480022744731610004034335341346846755251565480357410781229418508197192240739038576961464958162161345484994581624664591823064423279645844521261052789376361370847468021818024437305528888088347148226071913498757720732497761596760569470640046293624193478017416488845005240676652440177691258372249445183900642825909259747197284786338059643189667805548741353112613313857271489590164579096940987411085472980980628486523653041234322142424564909135291805997941574465386729139573036298109002559240281290599460850928379563023926273824822570161287067928647128117491914726938983034696748433985607908050079383109146293257835082202686037825669973046817234889359895751226047908363053757467886040450173169461507019533431349271885627834795660749839087207403094075209891710683270021517839127260619251957958400017952583157940930561416601697757289168544942893194879847007338059111967052156923184054982389955395380781103056570119506757755910680609738236709047353049464302245541716657317807952094480761988020037831889020294236327985388411577185953908157122454620618203730114771230200575663935946501980423639468115694644197460998779060301795363322253303640916079403812597119229677809357846177267966414432095908433879459411008441791632307979159395798081372056449371705221965929133354728307677156985882934319653250420751715603713849655495316194234733561511409783604397860619240110693771146314705587892354973103524348322248647108763205724613232528369951057497572292079098621168357318841038470101449266622552064430202914276052961844016548344952024273971615914618656154267421688954497206655658009712431672371985320219508940971079193220521626135988017742017901677845686929355611081874868942600817914706377582627960736360883174082677689392132053058720174347146849358220396880208224900686574614167822083341660822784974350121517299007043262415367872869482618314039612599280287505013826350056725885054326063104239469416405903794356560112684004570489601267324468238778366993910271522264720619982303204673184866012530848632633662239377945453853485817880166395920034429180690404806018946298198774132649337256533924546126763247270181283256957271129893580520681690190138173221042874945624316519696083663204395047935111494502007792330450293925067357183862645615043852089747660708738472507822835800001008745849744719566928505891271428759871787693980135884416269449792672763621452798116860733285228376534552882213634633629183769465656973056465124840856725169398717434575697151199983099464347176722746303052770986954795805328646076749991761592549681332797597785291168113934418247897613852877881592012462619482149842395377905760480501786224683526362489675316075242110699471817488299650107745546799463696913928143676912210919620920871221210476343069709628003150506413086389782989236708913337215194958468301242988777270449671667612167859231307723444557036335444802984575611610662873208794894812140494652005267251210194724663847699857391064350187669761658131121903310172706784829140662944620480500778325581395194489817766925965021694179638779513579155621898856550874273396860808568568932607707269617573719263656651640700173696437641852276688604935614983939906930778597616225076105203056639337729622387513467388707752678901379004085798417923384628590542816937748416852895975360954610364245773878647970584469229162076464106513582274602166245131306270261214146787202090667715683121405682409190332004230416002717781722181839714573734001319546753365168457169692684162893684648515533905628312190435767578697187238463502647430072233173155928994678786479485390449566123666225655435989362511947017921967683686681611077315573525789847029068335027686402012138982025055513895903890983430702310707677051389742529777831863377427449579638969146536785459764259444248074945551932798421593705135162321072111583168220720876070409460767781009487979991012560956120763779271143853245013803775789613154476374566378328081486709726615661646154581569854483346943247712380316126826163638101824546073952059413444148644644455460298924297821984556204267172091356842880737518451170213090470653790075696177865236017740748309763915086136048045525886507532512907032034578684977188607773009167917906779398121790176322165209231394700064576935697077775850576272565808855595347818194248580418088588799768256531229683829300800763818719493888094777446757085491831527363599498298730710716701684554510488211498484756760093140691286958537361040153020683042357440301679181256979011640370386908130862565318180419133174046248525790256232067676607417005433702071291737330300132400559582042513065554790823768988354620481847519023877981716111169743588801645259611515742550999542000902975175336902659206396944717371590119475342540685755776089256732418233071838939426570280990999764528345691639070843935551316747906014598578992151327190424631020724925271580412389984097032241935642649003607835525828071333582165286205715200554154108140421146309794312427349852820641731782409704717976128246161348897244442328749326977979422565302403028389359350656985191170248624648360708989252746088628530478282518711206438810995966203200688358000903608695964839734240548653508946085351668524997403218916282179742593564675125371903499033501610830575409435538164231344468816411120445453122233874477350331399432876734175950134324776155132535060784693671713343289507675059920228020092805609896764481800088748897520579403947093743387120804678444312505729920813113798367247884714015223130419829922248263187383613480117441340129217046844582183606027365978852580961162015892099091784333745058112948868057084963380519086086752916053822862975904265175535862066743941606248661357384160587696494861811331299265869878198245285014460500202902081637770277336615706338347271228342107317222156289360313062433418346497001944382009040106321416319809146728743197929234549640740915208063938979722199631123498555693510871357164437740896289995132840388357005646899290758069026251754527200593873811576451691065873024830292758762599621941778179690036843188482071056707705616840149243868149600152638390646005956452077575912927678195362519786299014282042668652012271387194655163413599328495458857602120630418696716191342801448020960231248493172486025129892065672163345936531402685380841936167802417772544547771135149946936817011173288942357821263661176231440278501540982705967173976819924289922228723393548382631153595256127024800773529930481165513701951569280753631826034519238423238767962273420771853417771853371188690057834965221898931682073544600194562476375192093740949354604745903099492555419401974966625188898740940288426007646988760933939511606090337837704546604271331566178774842465923147906013482680279644182968354078768328645918045018846306802743021978195098655080571463666376429311104877102227196982070413821965113079792968776739477687165969002202139107589413044829340144871418343191731726799274589388411541202605234681605155454903950448710145233504793837437234663860750520247607797733949824267259594108443264199036267535021380884056191867128432493044630468517346490392695540098361905218536043142133804517008785012152762476897973782305492429284070133531107456010865215625371760948914454938758687695943854082935145107132149303561759247627374650074879094792571599122635259095594261909262653478117751548844460254146950419561146807054488395783901401425973546410329581175573250116979641636354742906045982492050135412863316732251925725962576421336512467257794018457905581056783123912492098297187097222968079100628166359669379036594680469334201117513565041058706934216994382302334114405817094849055643668745432451022608934787171203291938411182444982909464471877370843510512515719271045312191481140518947727896782938876923373141647207217328275547607944503004953542694699299226275698005200724957363110836638397185424222397243394522597287084878790303082360462236087127707173384214813987934264776066663953274884770851354980571742515736768492056391162763416049091351677680553451835904647238993924345053460263746153090878672005067959499691015113057506794729020247100925518849692885315534504769395373093464877435654348466737401723818995437427457522183017658579821442785559665482078835572620139346355389837363394806874263797118131206729296286746088044049907203086698957301019223830382885921893141452101370040412633599412037975808173363052062920175531609209273650159667526884981391758709053588137129924220756590180960613462138548613960838973955259320320048016948414917510830306081161801439978562274168337190085149034871240604550512639494509253646939989048991701191084458875409409338840565698099674411088209213113472876426531795293803716648982969111124240457631703330326000556288598945929062551329013440431440119921561455689045502174472770596497102122504110722259181761295825344696331688508953083917196047811857924459509093460224990922871720516377247941058337416236661970027846916474020548475371129547557029411580702105067916589865089633954953951829077264759721188589679011728701797226518722205899928679273658492588096052057848003043537060379356238146416513777104425795108793387625378675269194784769678645800354532264506820171685439880119096544455971752047592685451106477508027508877368899661926891240746953477180892979963797083404522939920380127948798320473379884237215341692501612497460887946921842185737815570529130640831879747946945848118982630124513253533909273954519782522431331236003969294641982974425763309769161397544619905432908226599598863821310525233136705944309037858800705407595798249217468197400367134069411856819719553713244523841474502062789428937371590397324682216326098715847547369801912398050668859071758821748216135382843427354381041095064146506992905552159514539888136136479449720646172990999259989094826667116202512709775843115270460198755785794637884479181440154178240133359081190664858609762149201775514387490600868217983619552990788545532720662124599579929824632830313580557443834374542434254420961443493759035845343456726669734038405993657015386665066185676399073317138653058764505261279710253114218463250635829943811389315201671104659148876862185575215966454506606405674579642995741532311677009405541129114491114828674032171053681269126521477443044223607197427924221951557638320917215201860879826400786613835483180248639417200809407743570538795656143133373434002915691909112331445586789903756544862310097043366302552418921663684100211660352602175572019239362437494966211974642704284051556925220966369679165735726776955528102595291737601279796732484699281507554705816420659378647512319273541823276714177879197909454139456197062956746350452836159043387581479856818468977801643908703324246532084283293694243841386319026318251235665998032539838522610627879578452933656105520814278365523141803971096595180118097507411615764512055102468321139106800638720029313710085773043242542349996315901849706645253326493737292904527976903340506343901168525200067102117269516619899473820132372951868785570396884818691045891784358868736993331066684465859708353699658951211615648084459907631588726232024162567539925875976052532032464668652035990704497793375463624758508512916326911165893458387826247724134632572710382751611152290047841366304313285069725903071441550223968790369507486658049054787444650759841487158815225935028022725194743013091984365192370441994140872285856399022208963208475731493770190412348436917250672815825758705277183559480045638010432251388753539412262685848604314775470499690162395112205137754537929557360640125304625579486646591991741247511418992603637965885236284636618983203456726765623752180072826101462082433606385505513146198416681138547056992640067730753312789398065698053751711534144063704517887811326888168151734554922617046838583783279865098931400562910518695677357524344728490316330222524736998064781812528553655210251121597333823619745004533040283295162807653779442473087681984548487317793297598427465774380337155803813838403054881677867472542575085708489381303797069867940259557980306951612979652655396557632941990912170417538155172438586808230090757499931246659302333688782241693356362731909970650430343321658809526495955041171454576424855065635337382652749089584645974104018772179173028523674700546552463652523106845866245150909871011370601314493374029897693839037133431107661352595283685509891374542759042807744582397630157315646709290687900144246581020028194810076658330755275420992765309630410264968203067551406316596069785294861328835295743133459320425647834484530609215298671385497667550063595603659609912873092163643665190659043376381213637172675371331199874281089926447226942160958287779940520307357157599564542537249590744332548696122799321150895463157117450314983195091115167364063598604928862715931484296874053672582239475059510313558725642600257892402084020529820301992158124756012883691536360451804399276757234269027319278516279287068721086901561155860901042698456013725716590428451946851493436918670482605350639497380202272353401485766691524579938911591602645140914590132545227426322539951827587736939015431909359014479325938681156798174228807406730652262733155549384093813326693133801989651277160033248976807116211372801450611957030538162658213663285858421046411585707443856860426698333479451008172870904715343879084162581518780824418755561986842907726802789930834515291799843657900973774519395996086847870453625885692903397958959348282380515393694750805254186004529525303210524005798267085897703582906173763870830089201047926442552686636899316803044048022330808453320635775711568339971618140903838003253154033778892789308810774572600659245744891198433633976474900268402475781368346197200572523275150038202914940669478236858716479512920984004725228312732086344052907382600338900870284643147378966405398269175761070536868894629869227378927946484474285628582842756306184626729962006080067078826198278165104925462653240425958624291098406891080648546075315846635782019604867825465763910101741978485920372846855357707947522111546661571934661700091502862620755698149698063753537029159123717644039091996511481929189288664438831599906222271195275398969612607231889790733080537364962736303313981496350955752223814411560534913495108072942136872349995623256221884072495712837436335067447351859925452278110882938133827496579303941464919695337296407612934067151214583785446794510057116544963546199097560391094149076811105008868560183875254726357878259504193362304783644579026166543380927055027646740509838893439619168685401556388505726636828509321743232189886395988868535913285363961571386022659410483566311582858337556598866441524419497088609060209690818757453609265074129190031497083533335975715963432919377262454566515381047673965013709335865325645498017030365313339006036085477112568585190596805434183860760383433896969061315033544503216417437382960434775967350436484323114032075566371529836433874615394397108489304331049951615034696006146881531302169410462908055230137729193960447795985378541248022248069647617661682988842236877225218690090355168031213789118475029741461363731596904758578767443037528054333922014579220041573092083250988283821656252269962529064635915794461682367067336208297632735396751654625584895406835170161218585100745732974976661402757768055518830594471452285495202750625980764316945101703363369800349671357094048655224074960415732470279445353440144117805888822437973823676806125657329884788597405740233069197931916514138752027534513241920067033242944860122479163530309666552572243026005080243369104924699361562430282572687184840263471462572586610092137295455789732481996632809315895893025682072947040372522465167823451803955954458035030240275333203560680798226205060260942426926258155595845302720246748798514085184888106599614436375436872010047207380795041229225571397850305041672964399940733652602480458293689616939329629894351704604301671333940496547620520645043539127052717601255842535221424719348813384382191585731912733461200770712999632044343946024768117226385850462178063028278527937180572502016751323060191512052562128453266922799042830862189730853351895700276134787505842226287257373804991410784543900968363655626369630209556950473809010582339786934133812717059305771979485524059058755591761692563670095712197288810106464301219483282096268262556221439574023462614674290222960834310445995251861470824580474121037953689210666880693153246711590066163924567752478746444044132241870543746841052970175327513948890013770060000144077886224748012408452345746353788107824104055969662638736529330472131485834675612573505367998715889266688768089911889726608221247482284443801627949221344353586161620145636104308183810604514240965970704762697409782161010155413639949478677871136353905637536527406642118037134876116801089190863738069712280995506443656771288573050031222990764179411710643280277822273280773746764225524767911642282023800683504943824437089772026037846825765116359064597911838071073861479428630997168838749438544113533507625739009474981153083210464701197467198734632832182698740770140179684980057558584056940239355084806508928028492378966593686681225662637452798950286049091696462719021876139878002748081234403898279733491912304919677571754287001109741406327351143513327350840211656086547360730743171889409343366680957953240532777197184723948948241687629977007953741665889888384111519870837806884720747853447523090069496235379945100057888112605367958516592126797764122024010008807047624073826246946104811225005133642530827174164453753996167126266370584898109238298275276832118529212569149324743460989413482720479193789131259697387042232232998068804700823621546945787895800658666067353809524638714884198929254376939236034135933016145323661746328371727597583720666312914659701877308917182307502606380480094140728826966894993813525281343395966325425930878235805290259139757451265034064155639938934918413136794165725535504578138470088710828587018708884738596027581369764907960617531041895152997467154546478547050706413291714256052696314741358382211166127484229500135983192729478073490387223393105357745387107599691318658894839072889656296640652274599513144337655778636144614722599092245793653708128678468095271276489584255756134121614524994381079539474149713997556821972321871982692039779101590467562668959934995830149520887336288506080699149363140446295585160003112626680712321139909358429121299719424115852502515958157729227331449555154098627351597388257764797511395889774580584159666684440226491388996114055308596750895224404289442139881979196889511932346346256005737063709690924649044450380502051503841636036760353377989212189853618072369160121495504541999329129834283132823078815156454549834405876728542284955394914493848532001237800422236313954735093470273684815099798091875313305506023102476886272318657795715466149051656636206369250530060975455425947957451007108796969384550270335918153509695289933753930946877887762039784577106282976835408348244439163449935853646868746772179274018584095688757922459210195154589199908377360812584107568270165324044909084260651073144089003169997218805427469171746066254949089695977518796008212243631016585942417303795923205305185052921207663148675218552584115883934701752510765762932568799929358035057021469750902248044109298429658716866811457700080166453551085460272019839080467379148842045485554586900170085494341585207908180293605165235766799955111992481959503755423270200975852083319846845561382949517181258461858629485024213945237142636145641667614144503081864995368046411272933167516665129771153254330000749836408785100054493423175580270309288045900491381187477802234493347726094674199743035178213692045524663322739723608414419425617043331073567998156273566047667556451095915502284776677382596958166397586032769443096280249595319852091999901034167634409259065490191383070920716676739898665159467768818076972165342976497588474032823892203670151784656722178245994607880723273281719457589662585404527967504216590131752935236039663067370229572732742765305588519566621151336384733999532970784922072256668828158080371141254443955440692494403548848485349545462056984836544550158869226057354034693631371682699633912558406635630676222625785573002457519285686690063293505747114218428724307022927714888078219426456590363374546529172668492787560037416662005036004053753817249760921188280534404976674857883986236208467765006678624746961472733567109028022071101495171833879080709452237176739789115350566768463616684508475715779132175285975125796160493919737541227134821141727121590251157316886902215384013923514513521158559799113036423644415399329534515097800587960152835007247379521620628544742002944140216316755806097350789600817022694416070760591124658464205830942655850943120835344324465501641084264898737021942355679460951715884528136223130202486740096150873227532875141683675796077792351371193860737434720215080407630979425753872644728622975710697227953230932579843135118209134449504628649022665437293014491384979841594059682755711067913733999829488499469898764133431361908372409629838811504582413304209076379965243496886753854211028379422169673678017578626575242879196719535058982692339359617878059652169871810428053629171971817554292327750151944483621067736990803008161518872143304217561124984832925308612568569041022210025103831091721896114482893388000329678764139319901905614559485056259450068961602284000257679587316813418419547034027620492368392297840542887386391178154441596325790908844308684221503521092467071710728647867594929165523486575990643891761585005169646241143060118201915552702265586609397878551548026384750355294825988062916095357454791762967750713650631561519938335864028588644034337831728781629614511523429901074794867678284107723894065645132142697134034324584670930326162368599541072467860696108971503104188410606392955568183415721665954717004226579474981365643282800767104978712005773181882388211745961877109539232827813049079368152846575298374236328007782238225604586791234335799474656764439192428865404700292413026428570150788672236658578529596252781917751099366554141618474732264160931262230364817351798787559762190518953983344134398469170004780067274363502993275444163249789226260194358711512131079468863289019600081468491636905300037597533175276256978493060793858836078676239411389945441675307369475266588032180128523889259940007258814105604617294168767322721276308995832332079984072255086841414123983026148049740179086560030310075076705837042861840094306411605320022310489008936630442471883537431207670126684552123854892611585148720933042471398558576989714887648693395453078263337662293527421509268623784977533043623270096086848000028242038917545532714075649903193837825175063461258254714061626846370715617074036331568184529497688450027772835922506883588390914541357700441851175795906980878763652961920476538450015217938699617918646804148182740764679487561542371807953004391345228679626648598771337844447316766892489781837448780832098426221644001629064989786589701240571102054675352693407154769762854264451250716981940573054230521338685638303688123498229218556657099638344663906541889300086570094085471675764548475178269062672507149953942921042678407535034254004127855833384138698529850644085056477910295476581371848476044351950975627674928864631955887130413551948692502708626956033757857015378904657833839251809332824489438133091404657442253848967131944594347410133032409973662207879094523572027932684946580337846395160641848197734326428954757520453374567141605213534944688205964265252115281795977039100943224461894900836085200484887636776535823849986775251303547676565089926757098772279194168382840492633039978542627225152548833705543508525885953310427326060541409692012159049489724364141685872470415521766699341901708937802456595868944799519736532173233455323549693374391560892222944616283063659262213801874896265230229383846293268836180613914769796006290734140631470376822028107077827955471562770563002440083574441369532950159792906462166010562481543644148455336172359949338536983193694118226518985021006571513794238273107749032035471404548496124906311208858360441473012710523008149363727851316914030011464935855207901802687664460396529751991992170351640230659818287062647456980840620389165579828051318283306543257400030095829042923091637144076197716526159575334943015002386315626904912820552604916526299799568114514399773495142135010489535234209233403842208129401835207300087725583994742019981832966418185227118307353389189317441866077850178624648020802755774771282333657779621392261715530094703887688668422280643436641507694598870743019721384823193757856108628329155291347392258988513463563978410870549545000372443211793330813444737022706253885537031282827410578422612243018707383376277700812619333786450163388540441681475533053045446262792767515238836412735675854272275764742076665537010513237355206600914897847297247009342274835643772839288322421423515436919305216029840898137769417003163063936623176826344584584049148623718298972416493323510522514967660443812658240818625802615663965945077663976889453144029112895078646642640985759133238942637607016758553324064409360035677706371893338687664225875489528053628482978242388251557005506604316535038511032179260792010384752944011803845372859077056420360171676996906130142066080839917257248199362993918504921989236144375012436580993096773376857428789840755906487043191513706257117075158613024666962773874717400315080681914021560842891948625491311157481124421725842633033735245046568957615806771525021682068111631703453189011493442161548898997799599942429333947204898055116801059542609993464029499212290155443019954474466176154083170057839144147192554433859294876040728423058131197568760690178952628785530278131508209496318352686486740552146383356625429468001895610955905966539226106074214499005357672532504988454646028273984562014370219745480631145142222451633792314849239734197960136870388553044838077549388178155681145160697414053649410594194856325774182330356689435399294096669953355314737250798200430584649856963750879783018045248227825359384512970239448762119418934324853988142623305775732538718285104644284990352292644012408505331018029306223219525335792521603827676411713923768000235743855073089319089325406100620516400160588863227984358039436235203773495901629575761300100748835235472415213140629619482312715351288526110879880477123766041083408752863805504453942871752328457249571827449858794626818486228527291340535031374971575501609534826901476380865915460687351907996683830839808979612405663161180810915474131158212835681918280295569637545694441292488645287935376894525341197341495735458415339798116189091205401640020644534946805527655084671920458716562950303738851030771800358282877198197943415013012152163955948090016093134333999483691530269512428509005023508058020274727542770978685303012542762384289407154246591345335210961495149885076429538998863819750188551349139478081239030984708014594552273993556693193608244164140158098188375806073355541150720557629717887955056108828229716816428345517982040412785162013205225397809449630394769573555939944525940886761651854847884721494582937614127784326426925600517440359558091216772442051475214276118067183277556353859806294792033719418157701561712037608226231324605696168890876516677740538167760857117496915080738534313703723834925628288842859679066322417783311825265109562164439877033930371637333685518756020177482952882112056618585826404157708699461328139953396645374385782558501302478524075706674675252947214503844600921883243723898664863777681645166307024249308266794563910367349039826761606606092150096106513516947793040441491744716362445989623573441002159555370245112946994668641280460542257636042935083344264285630645078744800917852339022462839031144254408624851110078310093417778925951788525255191986514483200812302117217252182383373229608222694144554154444781600296020962201058128475123893250972118953254607521304741800337099017275002046980603441809116289503709452368663748324564682596993995045737931141423322569976059851890518151301297478907990108036278705719852364881521267019754891950347324402620195717461376188735940482012100353835186106479850900860201754975864116875405484889401949127802877504572627313753495133869066467666212811709768191821807315662571308330904939391264932230224381886814950967044365160891253129371439642607256213319427991808080815335723190356458752992768558321998128373663806655948797397578004081004718985679385619574413258932858727130066299628483913314636911930415383231662896157299322591862810515425334980550069947077335162093645638859436684295793658518045581332930699655602361691837096853524645564932885054631710988046380917926346010876206596538225988177749167220675193951958383570053268987036289808237837518546761991441262726187194442428779711996023135645041722520445865837333681815868331517037671856321431172097593443739594615128376910768639687043522180968619670509691145976389114499566547198856520721210623650672605263510383929407702617269400950067853482435112552782495378651945264233797572763957774868801675043214898916007742257730642320205100249137419669344261554005336959356982365598771623171890499620910893339862897816640184149048049819112516142609906435782820995106816848555975172798386037359703797535796417880510053375675612270317430985954615568719290459760654110622080071996510317634476750511193592262894719981310862636973427637859966715896618827878518757882442175060613260615890075717328337402315299505338860077523153738327309936059463236294837825344806435187448192917405874740192331815206814834468186788562184860358958244772686263328444108343413095281161569079008409757158209102353420984463182059223140563645358165609179664268444587932318128808915943937095833763021511015313914544560368233537852142916086256309316851001385544470486551508443419295622884068109575080496131584670612693575086734972737246112443586788889174869483171567273937499068927624264279643081761387516635130509868501632714084468545360435211733066711031786719599334474533945970693906578087820669888187276113667045816936524190102759075345398892142462604740260405143103132906337492076633975044312934331054513605436904094949742430983427085908865449229876917231764721866914209693895017287155185025220092591596362838970400513686135587251812340379249205088780606931387327037773966747753754984955097007839940202460713450799131066698918344037099989672771643974228925410864079297929125359610463920876333470277471352382020354255434252371945120955030301974707992288175862135883039546935318491829920889755735958242074621265793716892118987626636680734206549774450982926459258865010398939900130656060105476181168936541459898709331926780963618114469829037947801712406859898515200851236860054522840201667109493453637295479902019603295018976734455116111647350905693289744425111921501914955701202368041272502343467689668629167574470750787756742377135140017969236673655535014637966178950074912490119292541725015620153078579276274638783397253254491186869860073576976992220261299047102009349995141204859156485368269378838967746547794304286904019609197005693669175299783909660600936866187083351008202670200946242745096110140354496225388114625128363056268596864363955630857292723097622186396291008894738519520122753562859929034726874456568776226374758000843099786208817757691163779731129894947658344653392190122317342017423704198774278222179088403748556748950908024269501404066008286126673663647117350193142604912372735320027691029665415614637104869989815147140220077920549646294180620450049037660091760875687472102573683568043976097900065335176491008029728865131630230578584894436842424963849124948686877412749133221476086294825080902272356084544198991867140378998745528531062307875449832128016966120642702357355533532725003808337077429897621898644293391892780187219852806628308965239750791274117156424815187345878078965203298453262877154235030060075940055476642406297909190092663649647689300204558508795133563444208216852402795888420870432069740614000950627874500583395905655650727082969458792644226145908014956127451318694905863467380712034808606260258288816021257608166247035252925848716827864675833510785358517251852621124493715147745461864910584175253060296031910682163711961194684975530551882437865517507142883393565412479252692020799500642927887523386276873519028672965965402429406501999612592800509541666294552620821674001284974377964683167447208202287906103337151154662116989454570466371825543781060806600128668453783804233847430179176194686435419001941200401273728106907772334137268252830288217625059996191732740530952482656649079454131086630444260088448216683030161739472000839786644323738921635586755824279141238155348587016427188442736115435811650046430228051823119672281380132511120360542400933945515413923762281514273200232712681592596479294297462002234445165325183585136610286413963058472254085031086705958257149361862935249169744970712716591463216872594713048791586955708333094452495828074092876652204568120463512309121344295556056207761095351210219827447900864106486135295557823185444997103444399857269008280097907431962725573177579542482520331547561280902558334707052569337641040370519942743081467150141119347041992620668970835509777695356339849246868591332944610947708368893618548740784142120360114480226194179762045863403576014446828849485493104399523397026169449420383150520123104653350026152275659211323170386730602966913107046855145175432491395779867254711495874379092761185001191293698272624137076983591409847357403467947602579820216861292354742050641515498356632588499701296381096401419011646766943456909617659160950001904089393875991895455339426902183126970103553569123836471287298687066688874832572566128213040413319698714115256631118286270896467066961478188592546776704846005367035857699887023159291487222997962841639741112266120995967370962963759867993018928897553936428174963484295936806373289124644780414180887858775498077797008783104761149621739994978793520786119497134039693230560781059700046766896212703007918387243294211022664949525066796766014650339829932284909487721601792088535493117206104445924639914278075841467351600442579417689841703281660479561696550209571103987703173784045038690886741128512268038123807568105652189388069466431842281903226409771404837799369992619050433781449929243043773094217284660650682645798449291285152607593620459115972976763868335866145092316928236728751262223117234094481154637358487120163430877462958634459387708408207472098338240432443551464117953835744863494634374667414308503752009429166216590924989971389975880248800589995723261781304881795194089510944488580598946720754815230848394347131954264158874552030978950897628714201394714929007470248227269054833607409214292907419954353362746916273675104107158205599957854484219050503781969086108909121330860406655831442124734640324897529561639366805229514614676249706349794732853471583450509574049709624555614828503944713509858460103626474012273554733508355996496889509294431870437880514800561665407685516766526436944638901993966292373742592255905344180538853163868300493170194737718343438150340921321310953455614318441889728330066508784548980406383984988405983150145094090010341403079971424443573639123807018785208134591513065729568435378577635516147880703869981266957206246077910096298478626141611413089338107178253992392033839437325970882995835849961226216489510303779743113076258744118136457702954256273325951029756016279187199328312980401542495333665601004326079283051836711525664691154733086858347123893306145212880963302523287102219577258303098282893654872923221127170471473747097284966596699605075631107360106552853068402323562624539693010518002215948478604380661173355857371453244481643007570794846952859882634484109196126790028267835244607726960756195519636684573983042120933298512938135901724466626737153021214410755901366305041685220587341635245383372564135997570671140618733040869907869958537249702212988734667334380058842734763076060486301059905538120110701129019370152335125081103596863357729008399560546269793194615058119160174568853033857971716197502832826898504232530945665237997027392067873666769319551277917182146300018484294770150862513295574496665725372090979132290328812523838723555664427570080774224454300099789477990062276217434501651868651770324143658244018253458202220966098133638680719301924258490652577315576652979483236515161523713714406954884860991628847048694264650353105544170999221010461019243668851596139723372507383943035227348153166410628204322913955425821828885514379301371490356135117274676094165368159913125078694371428570465413986265809675531536571866495035257128613543440076601373453975121866811903388908603532477021864694476163486998969249307232431480421205348490967315400587869288093102351479671008957386782952227608619400154588276595847091687433313077061470125261102199590279918223463017168975709273167963591037469192671778315743328637014415690019510150858102397377179772216367406110656955753845660111494147527228564871483570122485715429250373271382818439319726329650390010732114701633079384074162941130707793507999325253817923300085740112823663670384763805511638103306280814618997606495997881562630232850256820089393312778199837626360945930434232183197865654627535024444038620982123621845096597851325942012834742662970029532878143022801736479242203389667972995703329448535286013155002238820231099292257533985089200407665505073711448999236691903527560296312950467324779029469036296698351422814063738730132077898237237681306937268525116829571110910525632801229262731864371677665286214726040687783957464864639322108558376622275902404505045261137860543546602548500733069783916133040287831162320147821407834484517141039387967361095624603904254877551041202535799411399985542151663181475975309473057988278830618780985450957837888757618559202881684711038481310694411486980678670090514228381321235574297535246466076933614206565520789188930566084816191484832047470879115479452660642259950753133845851254207967443311439016375591581749676278368918790850759191431296888835524093488892987119167301939035133310674101101059417930225816483900230274882809007055338803503349899336568679895418014749067740430913453061322468381059488739644568791411387679334260777663810120564380462631627926511120654850807074639115528994149717046713990944772861778114746981407730870259630394325190807620721029231406257748096219358309678340639712820773252430033248046709749758270935026157724287909010651132059760137561157485773198065924113147143138297491598240667321378070826837856073674522598380337694934005907788443082139206345754744675516182576870617297311409059671947783404939153551995494247855561132467530744401924235604397258676732055897962124800187833913208345670691777694694156963208332348913121230720083687163682796531709716111184035526538476068410995629891652770689770322252122723711906336416234914556740324224423360732532358434081680898970019477230644883981870347201914275472875769267581960433905226115939268151069522981103528594236971801757092186754011820316467518527728703466890991682123012252631002275512977828621005160113841989120547742093793349955116552316091455637332461209683375704644734819603575634680422427534812314294586961382367463542432737668122838803101481136296974457984075327926032235829639326769291915614451437229991651328854434062253633098715393496902942100188436857681177476286493983099227790041106080954812330069614906109754759161516375118224229494031503080120480005071668351011424306662787161655300680079514086793323980360480230222055413081319560351056088108953587302790766159523988757214699753208154452578199148199306311693122630001177948747728618953220715021611160677878753411376560422405222004942384313649048452203893946937819989399547182478443292502317692031715664130621217431112541332709111977548119015021670949633567579626595074623848682440533958333467448506837146391417269657899962452218710009817646321212364545531846051116193807510586035977890078158519033247269082847497513585335958427664443289878430473899956054375468266933904049334486050872447566417597992385638580940128919278335401638436123168694197941876580876691948495868775221076659726679471866073332950282127491881676217168135201321105289709207246242016567864582108717049418605403862590690891813633166395501018232542206977498502892126258534049771364343577717648578501447661297159935582494731070121707686211056471973767062085128541302185403024391633746777921129501565997887401937093108449381170415615707100544008116981901597777247548552204467625632586008230232781357857522671400445005870886721424918022538181150423786448050032073018329976472884481611621872254463679206975152040701510805259500708479352582330046396090575588558812788326306820970649408869565030886946144365948091030977930023449562534707404280875096387251839502261977403408925612903118456192659555685258345709675935834337997635555223217109432305283138363712025631641420580384720421921288898611954482599130513022012879816212103002883775997118310199676071313235406061032875472939439477995742283194902127689444310402499699369672352605102774545933039859548003042530837234418479474077913884681819848787776842550270587968992216861066729993578893588308914288110881257847500935032449261534735007188707209615732661417518119563048665006187278118338777257343157803739514511028211639046872121893595513459716265637103907457590924180845111709147211927212117871559053305137909665999860429550878152109950727422992187900562557457602069916056569042572964954064263670565218853273138784297241886571038790055230749853351380503856784825532607807476831479880648602733613406600270677856764625405328215213950690994625675256702129850061519995652058542672006952011198681359256334999004413874880766819782486378091407426332035057233771645294206006064272710699274123137583586826082177981114132662376820237119889171901380050500533071953761903715414494792265821235013452838635389719957717923196037724987009315737366998073273460601260015438979503847846863062497235664485729634230727941676281362267601659567308742223466625460504124373679275397551254163890628877517982448021418190179453610699467153690715212144844705652177032681286388390347621827722554019669204602416842801132001339860580533958581273271749234897557884207643524642715310217144370030639177368372446896759933161661687696326642406909610706865327245085523349417749361968457049210960096438434428505706980392447632042450971124193371764925233421793293126163242148144314795773968759931468029284317970187469602622181546795708040962602769499305896061446100160954893896973731050656043249041285169980769874304608608110568130226234342819395623974419583986306485693545464643292457160448042905750845738245989872808012841156241150453815829086848311310240603122610987901159795970788122944852692898678393978822641735929309858518324347738283660550147252385884844669466916329007473206831965541680641215544330757105037103068056469035792405783732112854640858718076558453824677405589387961901314083566217330751817714648543034697885194052341922175108319133455735304737767141988673690865730342100846654397137567641117688112059072687550461874692722947687916630935774278756779208605455352067959440744920846499278034553527674341530638563717403240453117688689555007490687353323821099787877608838107778421574321782988813079729710764605635424254677222629610420949984531053392787959759147157769927041325729185201616079159672239248837944507276275938760826830411185553017595627709442971931717863795446589546034997559815846058358724142779107084299234419808216686435338297587145941429118323087768730904008631466259646956270862016917481433260956680649711349307065208188180680964085090954455680973986355543378917534665332958508678000266092509117934432478109278223724339857778976094876763552977957490965341761400320374863679533983318473782914432004628510232948219124351967197843344338647789238541112456012703781781653727887436041702232977469726218975136130015003925366364735758050920231015622522098301056690895013187545396970381474095239191055213522335851068063119748661829728133216611217226962165850881910711722915115453742123100487360543759467992066849500241580144937762119790569291482769638142822839698607441453436798279969585097260544699931611989691007390939343300517056058859317114775879637504968977557612475754169100597290476928086272472183748801855236890514939813527114278386235983428794427367036347314572673469243206171344244393032807649040613415046157745697140685368524290922298032936799958752639347582586283329033658700984558364739061341102507614087363159576070570774214405346914775503874448122549038032923227516999216600301956097813769535865020095340868960591295891638918794824932518317733298568214923744264559316556287725955986921948729165303115479506221031441534837337394840258714052084087645665435231952430663502879595410364436288037974713334907213387525417337554776986678321360774997523638909681579119051346987767974399891723327344696877705519912815123304767045495825356531161960556398509489352552187545345181214784329455989731265517094955988265802099378652735068356740623551608108162513718483233505939300947149508172278839335149561802045795911124665459174672203341103927041075595371254587230454846418920119855713938597183548027833612595033158532261212733548258676745960001182603159217150538903548753831507515295068845636619088158611170426441653625708194190293934467351541532550087100111007474589407917357416415726668289613911245910318367616261562118352160227362493215370916888088608994771335628416819643394826655481202304122587247496136772607461056630270391248271124505483278350951468649646300762871483200793529570943496216448731064655121244290465806270196389583520299995646781912200421742469844748512331179851411134750629092194605511780541277792805937833545820072504068288088551512383599917189615986879050750289236602133291380664581183497562877056776624295469531676484272645093527461221543908410916792661673535138741127436511532442321036189312413584874749684625329512344719232901694773567880986079001357470289157795338062217585098671464641769466804863000112479064305204209924556108956092802458160574451916149140212794943463140972047825853140743571880754423272600227792394545610400802113189507650059933411555269317134831486149356380270406164632177097412496957884040371144872078812329531029671612354108211394482788377413371772724697064133849432718294791128826222730717630245206223076731008652979270021403444134318678189867392491956669497052403319026950591618044829703832598499293409873412749358752007640908177307628754230992551982464490207264291921028342302909301576530729759804660930734550416453740124840555509289564982259225753047111404495951861317219819890358918233556582564658383003530283938378069485656700970506889903550994347443678267238057180142799876434521924972074148745730179127865259843408646151022380041562273322892075325446945373448858217996264628444929525879721538885124534458441408213528962773310030830727436036370034218919478326908611158055516799007524548565779966136789348785432346767905893493641635921004148434607918439582600761184781106988933510919185779929089226114965312306334600093850310159933474178363510447507118849165098343472814179994950715783367451329857272043924129715645088012615458575541912290340327017897383645662954875232938953792493017850305189865530250584495879976263599436068849052158153567833955713803307997980035911919560299410009656888967175318739818329395757157395434339529850533761801420218270866812741018521211246355546818795298562164589989689607745708727170649850915537001856040565814441656834290972984140027695948562812605647515263645600729561306183401782491071074466602357275994858345256334582689688710967204040143154601943512661594355134124110347268823241715459685529407094676098705449282031166726663249857818920489600731209404679884209957302874735799875541374660594704281935741069327829015824114099275291504650891342015175503650798470544326154901489518282224863604407883213985992074893615633679487683462897833886095941442985220507037484314213403733645952500732193207513452580536408521176281018840889176957044843647676722719654542206679875780395463951889487579934936818770829658130081252872185074912736862910656429839436151699688924444515399633535975306973539029006692431659894572972478752365202243649075365564722611248212274219420960813690878122759215757870931580884457020565998484664040508084104294615133418796489878228539539808228830065077089608101943275726283389000215181834944879406073615509352549574782402040379555541496284771385247482279971278967235978781975146068488539454866681414047609324698832860546066793859445433433736765751902179043997750712430199675439681730567186095482332929256909918122376758594683303813630683868169724916079080537632904576019131600732760210678857301415732317123625782600910108751236793195663205771662127275833751056806575602304003864284330969764610828780479973003846032621932848703041596118971770555950743327377575933005140926566275108810980471976052967771611243829379086751025269079554177079626734189278505699083820020772484053160060846713543905077546529388428735029823610873434667979918501649726979801193808995848477623599001986380990526115378740021810379827414921386528668771845200041021545167050272658285537161841233413029044106947334568735360601145471728491300607961165113564117652023851564662333355837774849148627802075534359914918693415921344184888296650436019769868491614361562176832678407137256913004332377485726410000609811688945609292771514139738204491479607489750000356572402698539063537594189334822920308410328949977548909228099617264202890020445835716840525802378590564030679130480704376199668334362586814790321209850246355121423226089135872280893924830170982554201459910114949099343293610293936540785055817022929115320309185335975577859079242129294383549549710345702436200192922092956025775045781315522978211830691054959780154472908281492355706186131923328060495946745946881831891444808784026777167637959683843837726004025429492773976593543644147279937353062309475882552633896501317463624951223742027432784916917894502602599398220651996904839259674085015437271061324105814033354749070599940881248998968499148607715299814877174729701891378546823284311368840503832402948259299904046412913407166188528583941832853551327472313977210627526835280554857597588570879677811040811919549932080427703833521827018985574694696562530646096572530478897262796471760644715332377515162553091525511455479111339575480782654486297262705126038531782823968515604882841480192187669472459997584442829572653769902482343790609751999577065154641564330254418644635381311974350466182075638162468409275448321149457603686653059575962115185737016643981523974260202965651572091456691379788098697436824736649896398205844789334520116765127610014173911885669495008728303752178813973849556759214115334128690535334593886893871280478393036574371297619201945622326286337963428624435608981087857115771327646895516509569238060516583796389223588497941222137117210815003158875556660215915093372724761498908831197435333161152123885166524833961564172174353745438461870359662280277718721543908866367409611986926477635389509792538673084974641932912461016653167116846001096031756215471833957698797237806544297821391888334553278476761074342735050536634460563717465522207586127984352920624142050164012429657473237239063395590159792952491130679937339850443169023380220725828022098351894491329739023117968498825657902091099133297625252432042604240454462810587289167970121744746942176082538399101816755921159855847514207397931383648339973926426957405890819943394635434794837038500307488144163723579618596059539543069400100487713324968446725002013216881647630621635147817116182590319559122904583101523122041561111521885231132351870526904519571809414078625193795534523826964832273727667823249634042905615407161638129590817166920962404525998766160519045977266258104455210157111737004839507397994609884486218241458515088184804910081221550250198654312735348451572529374980263928074654807914412298785270801541572921855663011408308488027835970099849116359118555819198917110162693088260446281585473127989261958731274657723939048755852846313547835982688145347815410058758707107027964485055448723592288900859082730353314772980905362523022553739334598226364384088573365470768005130937378428632301383575848772630742445030231172666495397627152056678773097588462119918349786955483373692422124236744803067787895757528935399635642487383597532842079661062146886804240329367803055664842488207534249281430895757461504446455156151904123441149073320377028172505444661375084728072965613373355345802658807757963026452500102200079130712807703806501438068189649917569918329529788802112559551410003211505429082074489558986460248315159386297740514447176505666450830617925005243475289378508300335077876198592963712629607894638756762492869204327662123986317338682908468230978756798817654895008861010369576416321390609129640067420467926444348212912513144723944147640998298439525736483383238938985120091230560196252522827495076009994481177094152578205961203060033551846794177351067325058088305974367031096740159743811024509113546858196856912183763404841730808557001913912736799521134119718969838914331577377731858978131288655387380820593686401121830646352393799388093711851280052544743166724154167213090981546923631133352267910110868207562621744483698840196303723197115191771649113551208532915406894118886753298367221790994241586854101168319373419522058535840032193528625900109156294263944448060728308826301154885726098833826591362594670492956426959469502373801926751123719233263441718846722650287797938920070126851987885298236836144570681045207120433812355133706195923783920231416214427078916349088290810244108253452398369446266324793192260713547423879903567890056541392167728389695769699855481554795551435793343753612549828813089737132696576087145249284708340009437068856436050872042157661678688919652874148256413370269225775740536977236722805890481590190165052008154575272477418117277959411511686469609455870544693677739053592424249772235482505626367270915512737845424743704285434295986273683843012067266157592651045006174144031464629585569845092713112125837567320739491987387632794474350241000651973677384560879726458248866929283963791103806938687391198193996698945509766814441013525683241185587728069165769823599061870136553464233612109809572705208676655018982374046926324281481303264922165959106915603778844115469449956098473589939888699577554466810427756218146470733194773633704280501464857410944988687425036520112058921214968966365128698536494423374739774985298462444656778785149552952317097018097226302601418250546816207874802963058526223634783896779721592343245625051955211951633179258951884404699421830269493894303912766328709184101110710566150719447404200706487647378704979079069173604137119653303638208099485519831747343086757584488599204051699979463535508269064260753882394658570095789117429163255986552885193952698745115161827971635802895113616579518932228396733273671519846670770728640603789512443235016278240169941738209164494800837081761849313838171081583779347176624774311499871004784757314368308473814228648668426206511747267907192211044030461229598650825228504957251267697980268935922831856152894009972707771873600682748858118802535934878394528826869675114680378333391887951231349036958005815848721135656595844295874004756824722472323051256433491662133584253944475696093214726696153356422365460840030943962842782136979369557633162813643999085675046734454574007502672606525592051434648096710759949532730182089789603188984651857783089344044669792630702231675503369912181638374187881982774302686382203020717640773104855181827935812513692648461981721837758161336724976033444682015643275144863528837554262898652334393408556224676007253674354612481511692431912272805773734487400413915341467086343344586831618140054548545115127799247182489095476153175299356318192375110394245498720763513812062140176679973689844459976178970280285741929152074954102657882120499097773987946613561930760728471527764739732964836323731482863777094998572112645973064177715378565698669429118093520658360162499425973602894405533123288427699795785030185871044200439003515593465660329770745023350634342078235353086518549771234968649701445910162601169181430563720180580184186144889401017089963683043261233461554318953814590912658717125332628244310900206221531698924853451518340031403603369736986736833545510671414799068836702208668146669843011393910759278744385066493041070581491444590494021537958424794182527749376718563581347389945025789505787235206192230764688719307079672043159568746403689616323711090990480360395956707239139369670124771920144235992322661654655760468063558246801267446317891616163266860328738367267764990943096417583737330233672804870984537660526683970803747537597671975048013084091587404542814789435610222855097617547511954447355188934286826086507128475373055313753600746346149865079350912418407738546067121324254915016276625118522043252731864964179471045748606503188613786164716178952307278813778457115945938324052071717924297119204029020215824134245316567739371967824075860143705747266759261296052412567678213738632436921921139247482470491211567457364749062754499249018482420667114699969884417103866817433155042960752608883988716982025278298019304663803755884889120938953850794277235393782857286849918772858886035829874577979587428202461159440437555548947186568927493398472119036102951555054988631070292823111012604499548575361115348890149298699855997869375718523356618898160734519193433651585460346184048592956897452639783072748440612323361387215354891525344169094459059596537016987192612084950607536790032637424272357650846629401977274061802645363023877510752299749607680696011675406617191328610334503201367247631968830381648136752091708554419865665641201728527107183659462201513455299425736293305292067202128087912476213452484356615129651641406318838154262336559787759035697349890024272602751202586744349681844249492573723663118874155273627992102804773449936816744751378401898108854167089567351765153491150814713482754428893563039560100576733667261832172773125025035074642911340901312169432454633873766674173869746544940151435715577640578099487255167098966328309714559222707329353090762567357572884513941603030710184353405576404565869098127052627882778114107227813841490027029208609943141028188806856189209300177700109702606422254056192779981856354064614818525311503264271678015961751051868515015180856113684575977415907582917261577985823328275140708770734514083876917680269209004703531291930686514849601293349705562079472765315026254324050333349897656303078114252585886864055927979573418361926447603251394080551096190241635540466533315997980647211446014449792108846533093998401076484801313394646567995538499146847555287364720568093759971990516774702146496966981909255071412575511127530741226751651599395408428695201442379405023872144751518980174409261308781363587195467485322352951250250521674068813052237802737062298165047074877927431986712045198384286757928320376987120989749630927564083448068785676836261030973560476411793268616632762476866233149074432866981110335791828508106669162608375443330597146733805991836933745653523383244081436482764166451765560869177838703869189254839333753576525308085490676477121805428351744436363271847083420433453573468788353833578185957281446960493815897450914604441817551275168082230861424678340445029022381230741392442376155243112561993831506097681533856032067825717240734221064185998295337045669934597052327161835369629688197316734330547511606095649599292947600450048642747744414873249035444701101444950565865261199668757038600520454490701346103943833842808081048268488427599359437204110630885434512617235355546506611266154242298006903287356151012801126210379700345656409165649916897313301452235255954310347892170723340157266084365387006412114475565739369789680413874359962665522169798927117537826567145820325223825556842246249340743338346359893462391925453668363672007315527191310297036688493324644833097950754645356029879170521270820623014580127286530722581703950056767195662393690821241399888901486898092569053319163903083929855598982304928937242266353404274300553664183253162770356757847419744354653216519802295314255380239850820732596866728667986908148212619716850428775203280472784199570666047704379868394394031658638138798556759414737987055761560645567768005942409973863307896454284369197758027611625573551170698575110061890397095605115334669498497203354075725779395237445728299845632867888305278253497517078228940894924542310883622567997677310849074497261017818547503107341367592773806998746676256361085346746267658215045432341078856737693346316533388219498703595461172343132909434613216827997955311312938421687996390961304890837315740715603723660306562106378874531694047167838334752119386835000121898508141813049711746935670262131906001786394973993110370458956980562901471909804021460316008613425634560787667185832017111256757433193934480401268250449628503597491353355811335633020869896330393069143714039196846083204016588723280102531119320394946691651363488684304936340594852075421337430479542953739589228986333635415504926278241310967975678952539131125818270543951100027430875474129686706403425191585364857862158470491287136300913482638854660130406872834622034870437390115472093985474843281723723693395417027296192540777063868024435915045909458159093011212907312945275153974374083977107204422890890823996146279312353102005904935619023065756007659418315388721078062164305550826369780312494420170068436917478646757265595192092869622490980437229283716570192428178719269809976718243494166267166672922828757417968563615627382947065286108460353998445755650201410338048676763778183948042421402853403569092635505175618691483568612704286593730478775051993697084675807360505040726102860773404637710740697038570555225562537142675242497616668716591386571587309343178603316649185065336765959986542591824497324927953474037990268898589236302362132111654543547191748660932510440103314249402130595143466711475949215793413810553282404539942465527061246371525036504030748230022466940890391352107946000693572070119305896044241920774654688592683628672507746859301902934666844785395506266990929686866737809114598147158162777288359966768621162770529270209318138694910516962503737880805384845927441483491560328468360081221366950020339301787861043773617165934548641698328659371449588472371404724098579828481526529917110689341977289564035244407894531880993012098822166114096518661599489031735552806205350255154911749606415927520672626503441128992441098982471887482665281783638914482271430803288780435335557483227455713203496347595322660578328367607613708557302265815205066661144838958695846378465109047500406510519087792011246339690535699152891640712888397736051940040939293274871505372753754942091009091652389928838289490190281936475001708812410542908439100070207883513247647227573700014433800743829233998459265156221196703579238367519435243735554292965886944945073092970132176104754615679121410367899778317315326381088791665345969736636818437126636032097075173508764480958159472739147149208698576363260410310742397954083773502285607657275246021120897480097464884077661885087409756766386579878748230288131066791115251210153114864649752855769775283478859662026796134733997666194667654858106206178865205875555014224287949555493761334945339581613853105764738957344202882658074422174929236439107221603089615915523346160132813059839712536737770203786508750732495996192197554837057046127036933361739622798027013688282086502007389265719564925827365277194227604932185188335219560253379434222498928437429504400033092061410331536805847268259191154597360169087568051432635636165148740650042802904416246974711814921914606210023122576979834136504031720840876189891671546390290213117303693324800018872488577978379894012219225650703373615094528390410029859450341429960532342002862844991483325893559734351660231214309733082037676159150887789108964693757006775585501374327350937055224996007709295636708408138318889222820653300919759014682569729503593076954054548017226440216936157482176819040095673260004689211569597870528640898108605015058205110518548761409379731999051271834253213429934479221795676521082587946486253712467495901151685919821416293813566915334139003705943443544745613838028830879210233508279324520565989131920420692810201776525794109105995054310811474102286621550182351177390041634216224094985282663544268499060097743286307347228327818145626083405618370417800991142477062973501117273264943703496055154942153861766506033817917750069946350120037302860360143942715387620837775066300150620459381395671439504466619409581779057830745809926588947242366916003961324803463776707939527622875681136955895232532166849914804820866889572051939343624626040397379269579675457175284785085650366418366363768943429984902777194415467503998747489989476802879540852698685736118545698597628848200526509630612797870135190895526491651589531183597231691274200649283751942149335842451452295035459988591908660700318291574284379106328838829579541888140515333212062130247146174073593044685044155381239840790725367340349875528975145640712154700740048599269163068674175598032723200358963679909220047590047864508168534926224136634308490565119337027867059576253758301376287251511450747754250454313437696747538658605302897079434355636625639934156999576656724395565656116339178985693732245031262905680102746565529793456078320258006796409733755299193467438587060497689642353827977214786062805267509181826419308947832425308445121755503013071778281368818765921920123275806271137032164062310026744182825888836933269856752470453680382981238119302523836123624226015310935931129853067897187212950534889198085510648502581181512101118350216855123074154386914602573492954870677894390637765361814469659586471331237999612528875059962340218667020238773084302893459831137509437838099342288061148895124602168777868291580386478478233200768106297435676570874365745339445126335198439386632056705296996230312605890633933839549179788945157894142184882379637375926341687450432290345194300876794245009188925353157880062946149327211134229018479360951595042122760067874925471093777920191395357842324241405735062878177806897061457588319826242309521929531878676017130987320397670151908444570978925881612120402205448410701760868520669592003366723310751986490542644860233436069547771158702420072954790544562618076913148084536578093167478038235207325149422581707547932177746530888745858018382884654554187974474719961362403051018928422365822128752958985423480388409965236903839339759947363259005025510152735150671356922180659775256738185618014583528430455598824432312327589538909991231377572140986708610876910816066904440043940942768568752810985664721222132245800727043248012835689324110430885645681815717199497320770342973989434803352601268401301712282706257289525428131048781381798304803726209786947508231478742141400358697188854516259803698786309694486855673429222980592161031823055488192523315973460283173651537627683597842954918663540901980065592373645066888602364701978858969564487782812654726376358892366228694376084937282293534477428209467384477574930536186379977019792618166008311525387194587400070692457337475918209451423278139824620954694797776137866885854564353217081583841681897099175721729760169178890190239616180849263374589925050704696693679346297267597250107676345572930510942182500299310716690111666441972916242872449633817777013103162914839874426749719831976270410981664196478451735179846116779883123462901367713047916538630541170796373988915849564713782034690346104326362075286434061568428144575668419887003888784270363698414741465846387047914783463165795664535643236177913666826987761587948014299955106746981015013663973997313564902371890085424795550138955456318572988013283688265135568223260915546200119460308781369259037646970289095952477161082134317798991216629064038518220081009534233157549361583304974180025360894805923671464453069636021543499331111135009053176575626507868543637896787074266208001607487509264500734901656269266696528726234150085218972537638728429596442472533606063975486595285354377777828030421433016084293554355256024201053054382627569935242587821214983780872520022738638866944299759456043322183704093465249836934200370383570255331949151684586991681161312101109468259397700333551716511841244905740978583041081161067254427474838571648296328022259566021580488477401611128148154735878640174360990533733753998957044000575790955097015581945165153320094583033368003926173901764280463857656619531494244365501853026185285740861076978351147451326895742649229110029868171856596979364167733234970208435133582972554075316072098480014794593675154454472478313872694521505008402657559525902079932993161157591711551051425071924610709515499173131694123895788180112279034620597582671973510635950948672824295123495091849062109090179596648560474620642265240300961073059917296375624550630643989006567073815341326541494144565040272459277436229078387294749990384957057823198091422295140913475038409171170032799767891966227921371796518204229340146413441648528582773351151955142015409739638007212730330115767213571816795237286016277713075570153456441729295452645306278778247404112957742109267880174809567125376528669891113079487289272163409412597887874747331850639363743576485592112947229830648604023787031695127954765715238694458446470734847298903232806823825074704749670466910048489843478724918587982502766451804207832488273140185581881327664068938169889540832143736837127046827066742048212588419316767083821025420572119832243528997723132204707071584719486257248493674281499796306753157345133253813317666327477580331040116337778817909699009791315564313209895937998763412614453303437267851351469450304729807530900686324741319184584655509548843925678744324166299552164113994921066888132794416271810703458755570961919953586907337371826974745985448836359306804449260385397916564938735597412635570021938909623243723337999132433178923225791543279324775976990754035567953288245893558123696966974038853953409543661280020540464061482725471128711587819573765324463381016256780377337350964462922353891970187031900971099076407788894050384797504966200269798735006679694176121462880606812242475455320355817928780432498489192820196752255258073839035799081731962227832931268544658648218583241807777456556050646623934903452663670592587885803923143886399611982039269956913226580223188756033133646306309619046787819213342429612972365109673990091116020918983495172311948281996518961443212564339656905750953300393724474452499785292685431998080255568038554752349941866179152419000499407433965079926530891769405207682664644077311630133136822629563628700739090922795005500131650096683989063871199876053314392202364600460097265423081316618396111677121617622659252941558637843437558399136132806829930836208261178030776531147657248557487047640564370969554381938987107731356990995156556507347864103375116199348095534137414668392116837293693361334407501186239863801589611135838478857550321261143058111269642251017431895684883315584336289106493603311827527072392018021616569285812382091600221848024171207464942201844778698971144164211537178548560418185344726325314994539666862697894332721528592488857839246434534565774747210583317461547206066751167356983000610333280809481232977818206950848098572100309707577450412040900421399723206394825304689508792065214758232667291806813949885496679444115108677102178910677778046965519197294072745126487837622527651166188242860801207652715383273151372250541921428165017702433450095472272724849763075804841597072005260170427910813297123527760512898174918803407795087785902993274556340871209545694164993089162500243239219183554223408008927165891262784672054899401301142782523852043867607160087546080633681931321719197246332726758710493714707054132153331295164921168699229715392249610798116823134906540796942875433130344060165426871201917151943052573953567200323269212025578642821832632411696438296611988616897259300069570291243601017644283430725609240806133006162571834867237769020992873190216038207085186473406844661899264439748815622980687332735971821689507324709335771964283594804175292292649599586731126453434245074139154635442583898317364684800231531314852120855558031658864676005000017055552778241836420562578837028951164672286187346253749625290580453776141202661637314651562287258362821868222771643623112639263359959976560664375495114021602623279420575270539472121292871704727399735743290823090699510311538339381932805840343841246819363820902760390571591218016766295501805745958293918497515813395214755701335793846354690576690895896392711973504307538310547865558568732335264080482981311805937495421176964425579168522869840324151114018982512005830871840452068033530104870352683325302230725713248303170100531100899752864829091697895156396727478743437857451540266061214832770852008556564120090675440353395413346514136301483057975484524341817968957682970168386704586127788512414243325586521567346283673941795010211794272246705917772277991962894374491367351759992726443052642740579343084051931251095384814261598628364329441944016797940773098660968351790995425790351891970348339112691611048673683271753631076607192501639141927191596416389550893977341663926694249378948334705896447796632564815562445412120473450475279404069362281445748508812318600336997901025413598306877031356999283498837404429494355661208842195059355526227177722349826704303080168201583622053428456203841137351939057260471065547599228760850540910536849898642657110906696512046438754069985185728864581603676161230857663294820487406378252848639152271573329688399577772225089900864068069101126860183497555799111339245842499614377718614319249957066480114307309564810482763052133773558509509959294419309901900754652635751247360208596872714971027842904826565013687442004793460380507482160050176884516836376178915101171909596155441944790546764554015883974474235136256455421697478016309043880743196926304807090109458298017625899091108509716893118526959234820698580698987291703793882152978021898612401244305824397095605396661400729070398342279617889384630258397047129408920353211231215497846281765328069482225080913392315666879869164412237326173856527300179014252100598819172255699394135349842837983232334974127461743246503878944199197671943947001342475833951753407644124884874482659217171406816379480001689109177259377212195214080976180728620157531237603041282143088808658682839899594423824514537137385907140314530901598465932075602855655776610426576651633513819381560494153799050153819895299300156629538389015861025364929363320577278734273682921561298480614130359422888735771353249706549354725944812221990243635485875702744170553882298761712162457113861339443946359586035558887322106904445230623709987385147686907701827406653315706088103622014771705797400646444991633920017433283531509301942360552104221536412306168091908223520177277722590793456973115883597521324653636263263360386028105781561639208458789687982083497712258549286768598089011601467893711714533798787770212378335497751246281019947164029503066199342072193825142467721530850373108636906985671302195668075636945587124023195493272298128011725854525069173243212797568191343461220042361300400336015686917004497329884109667759008603175169466968443592755851029435589503209580800495357858451924117899293810569382792229651337342460885736874503093249710143670888799268798136770264833819688551857392716434893530423883576290674458082773671298189112640543910123881680168656367331127998566258268659847838655333104955109003741045053358456386398998543338074785836859351070112346669311170576398003461508324966667421303243899389943394033496187384896151449585199377122438006384183374050583462853677214731097636378715172301959289599310168224353364346035856982516064805090075292450322719577365755341945874865432634538468712751051314212800999154298447323877547673325365001015656943986066959678729686357527443926946306415577336498528393107523370357591437054378850470836371848313966503797298294302116504925934374700884114226715253745308862494215313890312383943430722264107226461009129535367250032365520474833959104367670085639693767132493604354262031902843930105277028499497467220373961695385948896242715029845712034813119432486671970276341704758841717666975197781475091458643428012605401215493662078141103301760691968348153866106029959047867208802282870391263856320640616714902774670477474678477593968642444670739430110678807710713135178498898393021147461548729897331673499121622937970383732114498886774847706475321806506813496743714000277332218987505378023386658470222251809035761929090411722543312961734770463450389970409113913986693298224035366748023587036141581002864639947460707120684500033511862345321624380687572774640342284816118570455724448529267290918868403927001010696216089289352084110581647708545835908641497784797750281676796225062056710541238209694085397600773639758173522389707675539579155906516037439855111757412274281769300444759105507999264110304601963568429105825182334638401031732206779083296208727516996528125354597196066512910616883032223588476697753425485592793758698283695602989047747888732889880088123192740721128950987673140262807378941127414069102310443127785071028781509802179903118616243088153047814387545484445311582335340599324175864769404677337911939675283761682933548157872050622216360812556591213480857501274309329184111235901801285078921229447847774682536181764917958011752717901636749298818692579912469575545519737552004106573904712874411851558053406705114981786020371766291337863752201641502600995239978587831488622680384338862542858466210385025743540837812007176802025125819414432587611417868511247372551757410283998669533006577566429716681587378741222448035704137539929601294146027511227344821691325785728979083918489092913351484360780949234285894339812990673628373336927674277072950534945759675088509144913736751590176463711108430495003079518309426188462484170073164401077900457371182621141472430313163279125052744691733189320594042913146241373838070795380471713958140169383251406826074827413383764340107990604701360319940975837918285380139148129929952392803232916822667287356207812951683157575917497166859807422341877503584012441681031427675769115804142928019908040138019997061052256010071088504268767012799322755517506855810034073942238033670002834903381684978384579440941010164176392310426148680930421797108445481122310664176153053260792990275023515532120576319980649469332220397391437671472760029023606881006353932607991248908138305629174702779198454526320981114311312356105710687817677345904785170030557998881336257306993562007037324979780252094093841130523908151763345079915154349127694978426426176131775284322382721683781572662472642234586916550044888160054599683104117104004005253712340310558382269568348854293268679790647318508510621266003132095422205628913468629106246999295613386880134913281705686258437204145733287721204034776260090013866843673319535048936516910984270603479442424348674787448173820379436513086718680913905210902506992730901050800484688241649453162708550536982074371925479802105936818137299243226765258193690562984680751249884993227766113896997042440599892311258005605786321450723017755478237414422842421500255861648561226853782011404914600143905806956780732216799080564733151472521187971361460776012816403705288788724365455153135144557018193688818442073634973053652532741911286670535335327046034317824247486206722193916567648222221318468036562657966277774514541728802591577298622343750915798546015468411720548398975689913010994830635858678294677469257087411267949966141400550518800492523917788748815486736550383265564206211000624510350860712603312892166884190779604731687689117989226811553983918654664516088230095473340609810683839884423677602316535979758563978194012961398689968740047364565409168324125011293661515839792897213740148154048926140860049412869423054214996829143678735902317609801660940838602730613178734972526040653686560737887109425492794780706935758796220395389799381022664998903044859648095688302608813374213961570879341138559522798719315933858941160340727983197684552960833871813882815698866801631112650579003980797414643978026567841449266798900675845524439535288830774810311429493212818187037484123244990057525623596379832203461740628101954046274252096900428168519715949080363149609685947352348420178901262891742379367230720779294889669311855643854900350578043868957353112931140798391783696964905945129290791825931128795298299758188040561235024225154737868438031548136192282856763685924237533076769814874887832729313418498010410890327078382615718817372039429283360697010259324748184746156110904017390436780443801893947367983251191075485140764025709345500561385134491351689818834261707252879538187532504115387475638738313943919435576023480528650739565463180450757441477090168318877830636299515887795334692561748637427475255652569135340433051780860454208897929853653760592215227339636507855663549872706103122801935612190906741561242705008982715160320060482203922792855672320955423635014684126362371551636478988451065657226649743581602333667058742848156830331249296311793159293222859885801914340880306818558842371840816131631310286810335045222248929468128643230805200453831073694032316583722876530565514590445323298872332870698429814475968616376728156258204158838822800720911130636061791078646836174659075209716629988384650729166156119596404834852245030764165489951835372439211977382696424262632347385409308637580807440441047928474222252334637740909899933068641047556627205033051011143145269963041572627683458361768696721914653984349238193937181739716052859874617034454580742905052191405799373064569881830160674668098859264703413763188460584684846056757360552001591617594794067676146091172506366978049334769920075957628124019124006088605789272545187690094030430875241822909951796953707768308664013731479503567240576855954255041486173453065935806626334614951804880998624819929234198613857740189679379853616321778202165106106631910077521715088392823243591333842493004039485564540696714669314238118941563413456340144566928576072222322685494169973863453175784768457492127097867562876950921284306885474869817334222976702146850609668794373179475968399898741937872187136481044814522565560346549449242892585872323742580900493482291347437031684502513325425935101540977982100969779358145631157704045249535370671877852381883644367106281493078867962557368897757507177549466500249599659349330458615574210549089441979320223689878690772343766704328079712659461066083528387863194284110613331173701158166281812889512453776335896116522592575604122225867859232126589489252732129680613626563171788066581343464794085738726474170184572635257163032207726306106465603241634464311727565473511464441141595823213228245847773134070098924138557623538280439209750324199866790303421411425568592517825115663835102400810330085074856680616650235886270072542910228556369741267220465002260278798644578502093983116480672249161954450390651392774806943302371460347768689435087421376305126410628723703125885881387750079148407963803358367697333489473039910046653891986404271928682028458607356545206161601035198250202877646124487718197486139024225041579192901107981647183583052811120652410179450189889459685147975043297509824593128164267109560760076496094147948407810481508277177382996023513286291401587033447173680531965630522759494494429803696362783527520834122470272638349986293391381129043904615304340951752681480569269913433657094032932987220812280995545634162079814333898508365400352175782512837981830661414295185721626656410568823655645614970281309325297669851592145125289806816911749179405519619626015664743364195997745506508192189367793008150594303574162266698435622951422456512371994944905489177986754753612778097587360698888389188747153411523166587049900633543184629190275236020133337139358732281870329831975464776535057505679907608265851288662441087524836956077805708730741207674902091923559143614449380939982021440724881400070221113123450278366941267357977873862456910220953576832816731678028500544397610578963692639619793308995543033562199734509135522087717444254551998099403704649669740520086085632153700891262506235932508516335661196522439864879050123397812212488776580332806448057319757324197482579414948232879990726222248383436717727192173076243804493311804660412717590489701091791886924561155141953213842814282246429265524446975323547067254999098216078533466095056777362455955041498602440546413810856727727077355300971370145740656725848104044523794516118514201833159267179004196010396771437573648190263480329779089894967174536800633123586788566663569873191419327183799395189115248772706869132807909383038702285875807826849258959620150374868803730295454780763773067433996435061834958561760786513296214837117540429846859961016775334795657389864349066946288763221349537004330542757512725590788353326875770017773314401793520960737190562649933303204531098552561820674825473631116012251084175536787646157152084800675240513901034296945415844244792354048260228984530857027297765999492885074705849211590763095342590846385016216500389863769625110682543385020736558443589455684293537437895314606819466189434339867993920928465087094920998086453409243490915550892148073336836950354543282945178596163575178872885469134045846102494006233297921759091833306736551815875800287630124862403235518816853174407128905101336172783959966155678259507654952511438016502838965150301295525032947623709082042412234326132716435573083781474028780416488688575809197867147195184311646773975071295151214085331205460815971449800742806019157732370179380010757087994612878394189151681534676142262815059495187296394388330238800494228684520715411977350538638006438779110333561663463087711764620522448211843698161278210397868010646227436551183215775880186474678593903300496810727499915190310374439999705369900763197847510745892891881947006730775780239190708071711039469151511787537167506308343434286116506451941538676664909306591594595900784905848699136542875858132278075154798431815134638091531039286817422333906946815597525883104851776331861497328830896951633670009953772258883079021535723713676137679974669449936315456876521909340374579754045810836093998554876059684551250969232472906488976673547163847527971620941443895915836214698670442169420242192899638966517384462842928524068609852770848564947854614379921947656141090750340077404416644409244293546579413807156431177029644687337305649161159032692343122645482323532190675445011609308797794711718398023723108273679116557713040487921494428070466165796104656545181998711626956060406029394171877816749355720547342019726218259840875398775941262337825593052255414587161393687470793457016316233779345271652788103247175302956459560571973839211402043170447837170492723704897200239552982544666905924780656826355817622026567168048873766114230240188892046123893921743178077639908304681309667982526698981572004389030566223720306012733726619622005368625354473514065270784908602733475999206437539418393394686991552186327248026522357754971347849829183533388088610864562713503833889625037186138309195038586561412543372766335880354579680276035228758744716935708074992712713190831746081934155926768673902628461072059382698791136164029597133606052627333013215051009988455943633045944530373110428326884464088877346316244626307741703914580695689807065684012328463261230452839937104003611130131942203973662249485884579201228496981185048618314040646082449607332857071008155637944272289978297424658946666620167429092681286420966874944346413616454841135300451126144440434193484183555997060192595394921241702318686318448746652452317886479518805286974128800849580008988631427879452388027804304575376474991455952638775840798635851645888575880940158267665346081424776273319957872196435498175461021107937977603577264143876260891293179708618275029130273785613314190944822142733111710001121149736818628576129267387951875576369725091168834686634211903568154778534921789571513613096313148772599014853973244793717488603621821654904182202642556551528531660649827165964423424928832306901075069740182552361187417869594555953356620735720972199958381458570435982126033294205609061887204586638626882256017839873195205071318822119483438296208195615528187943490137108179513224691381164551288557347827579459439910628057297747834640994036173287269670100520031869753968662380077559853697797683604188600561334688901177464490205858572676720061710157320983530995392849715094058535374214570211714893137920922128077775341545532163421392377469302061839179935462329684011032605686354240217156144269009795792872154287530040939681434945877335165644334572207586712903624752595654135488177466731226254300483036399127854327601347342985245291609584648214670085211239393070140591124363252297006241387173818019058852243453403176209473000148778606985848706492194451407384059070177912929223625317411941251645585212796480018558772109952107547070437766819216849171025181278364314678233986690420857447008236150725595312491994235491295628632435742861858762680541114054169334203374635999004805214340179133899665685102991152561479126457866735482679753235709762351455473417884621017598206947833739986463526835764372417474241520046185145158184692921675760243066625467617944985142712828468289504710994474265495430070381542130529961349393295166837093463719928816755113414062842835327550947062991668966788956117308553210546087334680022816700548915692058729109037740219200669935797234177729452305838139274363809563196872377060419117113626662600444289708331729308691597367342661562983992369148387742097502747595931591260735789987919367612322024651072707016472894307111893687923028326785095167023067645610728079164270937399655573669138009159695012312306709278400181275826188543393751339170061666606976316604996864782650659128485606984912334345005775728160900920412601560499036637199543269192453222439813938838980769137797878458456643556684491953386530337860438354416294009785059834777967009377689792149057398131034304028171310390479177969138827154288159431521846016622045842438185502143092361164301777331048133959365338419060854687241084394515172442868581250248027854945480824888418357252694511526931974463939959704307354492185954098411631234626335699672772829247985000698882888713316669790479627684623877754504468436576858730345707094303774148964955163556890738165648309080026606422891323758713383958477112040281434245716267022475631164250935722872809148590945774492807928156781138781404441996993892210160700855896056527231303885839207994859439607873170985193444706138995019942592655345784658236905620316590896884589072861996769251452006249648658549697328264595321620385916098072457519499348298636731457213936508320936397280579348079573076690324834125134418403481965548388323536317749850898322545806725680493878037689999361636787534601882166129708639419666836838388255532696243572572588538392616766785004476658083009742452227709635690547633421496482756618115008512229309852638601530531437500685169302402418833479288425169610287261755812533753575685209359419840298407066922968557480975376051948924065928689135879946111155007676230632362219917383834309490801877491819316379511165732096138441368568039181543886163211576401715851919979045657063881234999877811603549005457959124198957469143542693631362063869790277137997354308126975602365780270593909415492047165447620269806623003119198143737401564565803633004976701869169925023838346850762462656940194053238256089119927070342320370748467169980778320084696199842819705885144607569438257927822899632367874457808855842448954363563963367633713844534134814826299712505392006643910081096577860228382004559357000795426815680493044018119687538344445525194719723423075825117486449425743221664066398683280125396622664802860158541476585797050543996761597380896621786845297870266628426112913407897554495442460622203297923388299349393275283389054893267492976444550420986015310957719099901550494944282612956223101330676397658658858467013973901821500105285698981498505285730253212095731779694417537622055304272363924812486711771192481221434634889819475475524462454054013944258762654041498741220619569512046128443085353719982820289808407245327280375442314439308045561215468736434080525570144093614751249563748022332471901897297130214848199472952556849870270667960439657033195458857410879838963706504852929101709852212364260520645445205169434568622685969016080006088026526847979619042000236270786651479614729340641811300727172302890660768737394655864479533046308614120870501497887424570981194250536579080585929357731044893253171505530216942255144624924602007528204166733859435191581249344122434063468443763533585265308181099429472514954215189310257586603904568040950747596757363577195293292877007275977083667630226016261512444610276496210602853305576696493913816433254284940976644763987952281475630091521082281885606771955008339122176533347687909346266698366117294563327303510369063210610259291380698952563339396105057554878051675249793845734504759576318296244033905549011384786199527700457941533937181642679545987482687415969452435115636427594316121204420578705688891482122625872013902846199739201128501952970625410235639597614060602235809242545161765723596022194481850493660934895802764587391240082486854621134121731876586527057751279434152726973871459783661337832499719611023046717133938580109756519993702146991254953917727820012019252183662990548469191369444672791770660747970749786420746636418471801080577564508013155879104082466572602831827733064048132064910234917309993129176453211267036193497923366578640905859707266416157701154651146629642573843808305583175967268312949266387264017399515981156791837917990021799229007610047582883831227619718382072316814015684034402880667064234717568985801139880960485833089817440469416643910039826268934462494703004468739295476725198994276757702582608454538509724735574311965209047538031819615997908033570501791758557670930244688598421082105030234707260528311199952708880926329238173687886731234161484039592965522450142722396278344812849476746039452113608681072900061315384473209796273564889311569638269763257703441392871064980590629179837688450548032832108144639929381747074586553793707672837384642515283120777666249895426039794780227962515520588215254744577484640843029877127571827764807152762541868977166415430526641253478486501888568252895279986148936736257045421463008012900960383608460425922016263155559726043090168891262424654396641102138298340143354820042046710514874762355461886296657996529579374915700852011388500649265141015277179822494469571838480569468638712482307904423095432886158900273317339419006920423308147284968347873696019330844033402262531482557264274236371865594175907212960182403358106075466099711166432721330024125751515533790136550256191572501990475026977865364786270097869340139275467929172716846962699182805081947599600731192766056884215059355942212557443987593249575757424646103602110999145214571147309176660385549984731790524018896055354232275459150267608982565110596432593444283090460523644525397795748391882920985758067358511414076773683905565214060643683698018914098290773383094187654963805010664548456091048914961634612167215163688463313659745675490127930117265207445127893940997292622160289825502771793060470745866981185788677518925224722548414684803334579037049970681719080703752373532783414819541260962705461815248206014362516815615419501830404124152377371856727521449363403090743440771494385448530672348126781520404788051556386269195680934969486594419133874072167960879198732268771057174555139721632664963350812936492031734325467600005770010953554403003904031327532360465863752093118635343359093346430188956681325612708703445010489183664196851368346759738239066944210577387632516784246988077121294930395435516986867882470428824761384724007045768030285661454083176431664055513229870568974372080279962849719287133855100310598228648630949366751287612850012440188306174082326321950575912032095586538351835283603450988833211545247774376292363132004967605468667202350155096170285282787610983377485835276406908852946975164184155522232166740816898899923337173577623586099295708888861838568708869524124712295558774737700762027899255375216189540409493992226087178497534299700091601374851820659590633438940614486023110309163769163836986930024439552325322833318058498322187783714415875063094897257172140283404430980121786738336976367283484096461984125594535480703599591431771933429744434196284244265763093213091366664545135890645985680567773457148381025444829765041219058951136583498624602796163213962879041327112124913374682357698526136169192634668795167183433959035684640600523205197893548897530743692624923928424019325845770600502037500542890202832930858842399022881337105889334937971064189441779421093219149772405121701576438862595643566133417988930531078870532811372678020107819238120525508590722087060618887829031090481422052098252299238475095982786769121718646339258851348917114410586187032731007086718257804299613808716981262631681731336993171253566636646381124336763847250359736847897619465654663559722556678173078185107994443664779075667061184963514970817546295244621226752443079521850619932568627957013270238841642272208057256209698368815504540902152555098939771786682058784303384031624255371584162049550260325045044658637060670778985542362164290854966808319647477053158673119992139765719547884886566891569454093697823181440827020035003264753146548917922595516616279586348148110861514392436207234923374119166919250929771493036014468009994214500216029887949545881205796702531570084970080214807910474210926037052910786604177820657690818279865433216690620137014992754652951312811778956332579761079893835775723750721199167488935072547445036866178886274064188973261089304168804214736177506836264189752190578274024779493023733887822658410488566191611008056466322162341244424991308793789159977319014040263148509017773257733682982361413660818797609300671848315230793014551169268180579193021828433061824092096389302635058752279098675021194627425095178970275565874680834584435599862218710392667403479049665525340161341566329035980764556686616457038980140764519070808594317915499612337401884589256709695446111866081523123177955848786394087464844646928166321234544376914257154707395517506815068848798294894790385853262524945600555143009027218646520410991578010354232348284610411658623023522479079142618184174037406730061176813225316520078808623995488119576398279581862495714374888141585967290940217936906219737705598715567646334283265251299217949691439166963525401345363165647629447734791126287431844726298468815050701426512214037884914661532382400640170080066537949274367554811909847370165577888449411941039750506239030263946629520962929107222583932299208996201580792233908722955937493502156784034098604395322127263487695198263238795741201197071942203213696231895548256036984488496253906726208039096712606083794453490199906581805005718395901080537780230579480140773657043299075993706452963406060981736723370117012989918780697085346814355004737899893531241041475148590741199027748661786367964465269865335729909658996124057732952589705335209268971190580740918801752870135480546896067772008295377178369150153883670891996884490680758762469623217451708397385194195946119447326267774278326867765211381576251486734439009510604207947804241225519887376894674559454132997409249217790728458406750712013842870557704861199063824120012112099690965772266326653986535474234109601449849276960930404677106524711400913687774876633868528977125434571399631510765922411640371255215475895976915576329328307236321433207536093905528587904556302194835295827580062375503904218337569819750644217302071261626909018378283536283020585457423392773766624656735949686420784406669238944025704028731233740820671313225928301344760924914868744375735328130217718110876203741106042713759329305245374011176022781993096815479491386093166633660973671013221584484882938179161611460679265744124735752373171917257829072778806416442903118714500722174435637790524363280519546073031369981276454128761625128395785097635756641823995055512024815151220829354288312087099027208300815611253157839968266045040350168334427997331408879820432521153530414541682508392830999548998114201181796868834957575353059737227214989894471480925658143939512060075237155285859454013213651260185211351597827979818937525790943139571112045835680618277212882320007067953370413068157059211736886607096294177403597120267759737525638942386180352740726487641716132935210667875203650556176098469962062765483035962391635136875980535098254022418177934343269488768808775349620344440883484152552513193185631280725017574576117616655882339293007977100273744137474494152807619857924780058243905021150371180183604937747906033201021821112561784409825396806563527440753895315559520207216968209443624358019077571144412033631784837997919508744092414349563780392858731779011577627058608610333049488867152250778845865185551514111383312885423207256160243240256447018273583375206239471818056977838890186511844030429865790765480868576031437149625131850554352122797731931715467544175046725067978027994096329007103670147556026284386825462658098532265366591686391449025746880255089064473050748006687293737129351051844695577994584110537380811542642815967473573644034586501751600305634923208658280657913231177155003163422871525841264591191039338147528725816552432989967355041053793991629891203317963125148643162401667403814026263897841809887304518112343792431954917016136530167571462491727270640586904661773450301164493139707439357963967578203513761188467585871640914717642785677021451864490897900759272104726245424945555555095527751534828838543126876224404917963175727212889798119166778833648639487178606094014642848385278270752127891704250878986006290278286465425606488069922328889065648772045048000186133128315779276386610006960810047874613598249665219256027278538640523618265457175839213208446736384256076923533556851618792187879841201092336957218405478028790078665414364184317868758970452767958747830175368340312162664596742371341492016947503611760563924667173950781329403133964973026199189348880814381644221257524919820138995466426614894919101868571701690430733396312370179931421971066589203868514617786112927410013502763916432362574580593573961728233034270807446116100022497316746454389174328228671145222174338746084660407537227243969538326517206624507259544247997829799187268870727638287378380941635985875714858068578649385839665497497139036132866170364169540513536956565858311713513488638714233079324731803711925617823210001800554239915078695055642197140634252140039369308000546340597279402280342702754007336761652487963392356944757426764468627100631450086231090638143420209727824729788930202263542624183574581801043086320678590116155523239001246699178981827735708217824955197903421287957197352646134157779085839254165805971870379312291860970994720346921167984611177121031624709058641697018471640149664425883132719119444778992911712949964288420834489602438128423147795424836404971321450602477378933168589182617475937177227872547394317103532075396547093574414250728026246223828799388695993912589180399291445264277453024230173982994364469920859554059770604672097530452742882013151805146851255270376466582207036493607599063460157306254475044180813777173101952161188178041684408003567701158903846907870699623355940608831299608109760370333750211738418584363459854272149903606117134411636752011912860816771824590823624876150953717986280155572166494175282255783459364594020673700228895650903002629013337648039067327783972347542261582862558110859616428104192618756310161275261819439030658535833984622848647800425293385127771526430544414913726942385317494317814254784944211995558921838791843964518560164577489351809734575053998743411276682826521251495572429516007628667462857061851937087699289763472754229557070157675753485804957940890509786178150113377062072653442659876282988502903613903702465670091702590544511186160226455475684759618103309760368013885497454785424977138220619492196897418856400725227921576497148622140496958509895979165358694279758011091060469701749398607074438045900100272325305626542635317118688381308875125387598929077200994341161959575676169861656032172950773016872685567184796310812762379570261331061340210693388149289964162103733099168981783913299254804989623402970187337205018852463970208188607657308830677632201249839205112443790144686349127952997645107732343836040003038805748970292112661109759749171262087813356078388486077981091838506240655651295864307155304819279630166075948897796026016250655910629095789455766801865032591119125311748204877736588989437557428320346213522259832744090885366436399933954624253429415104551082788789434323030285296903644882528666162358965085542070657655390727589671206966830632611522694105214886363112890158228283010958260585632335583176057642735631963325914188464590594627465383175168691163790043858946684458947984790526077869179369131433694828827818368443015843460444197143953497982121965529883781640007240300664246998840765553045845054357025684399959506117424052173209811291337508272948396557977643297633888484276194704610680445869769417197199757213218151969422407985201236956278951831521496424023312332573693224269546155725703079007517080797394597753012511683689459966251485439917324463649871221999974795007949933893581873822304433830376251111914981151128742293658143294167976754935994681420751392163824464722392812873368501064309419146193362345013426153702960677902422801864654028943544424381135869179505862527176982750448484014346713272212059596543136464056261058175339434567438073444503315695167840793788825785850655522758956748157453502885023117712707439075822355681903252961560524664657309869245219533382515010232516143804872258469055502903161888438647676799698396272854575851524079131057540104792030490569401983268427253501961560656503456872538350259683338775786493578999869336292236023450882823073234102839834068100710293042011826624611730766654535434511685911101401192380670937904622478503250199871359819947775430150813407855543957394375290101346720597085780709356871802794270678615850945543948329907252155368129208384391731902973723364412047353722751038557102484040533840866739132037870426803446979700763109950317444565169868132884673511240195349526076754977122819612810754387881434514220880342477743639871948330116749774092199137821872564211663953910048989646728401834706018033016545927880627015448040993620583441827439616592263173197257971156225037999925909557449191240473178969638814944524359770699695261409709390689472420464564179318766206329676624018535755911612693414619512415570730278625639944879652950704596478018060305269550550025003193051413108317513409103617611788488439184005522515303856383742239043713896760321383070714440390189206542051840904636384326759356535434994725156646431538480580175396578112574758715614807427015667633003204242088898644060496379768867785364101514689454283485021985030934213729905281700063705530580671129234467081999566305935226266263107111286168599614895365433873870603561206102169914972521926641254668514164055014571524718513972067653087195041098955202198338519329751689444581081540084403537140135322999729735624649765037380507524423861289052839009064693187311020493639554267344406959204078259273085649417397236752948402899172039426383319012519923898144691249268473394469498819272923689668636311621821084534051554104824682476665276911612468443807577361849599653659655922091406697001290516561376228377213032968835736162389965219441902589195231485897316165107231550588723959446359270112900026392856719616627034349317880971701818613765042891012668539547295080950304469252992331047979017532639518200857608513606881782137425173153606956036896116434357996406873981646464444297400754913960340736800612331985014906588171434081204247811234176912161487232388172243750979831781165648093998173313262400015882070038566741393065492802480213384004513766137090299606530712721147270405545212703099146788797249842152538312198881326072693241148275229212434901243475843210954893610174498420688753790337411569643327708700562049728706524026504301682373811418805386064651892778719820420541394507732224279867607887672153067688388318019247527935583563473034393474387605875703969227342401407086282686854975580633355282696912048392463416486271244743259779823240767173084645474573571360603770599618446074582075707493649676754211104939254223159676202083213966605236360605617525019534243571649428577473854373529072701860507665381176097550727607060723638823281956702882334199038364029633019059430280625462063170657996607791382402804846494505763495257064447988795811880031311520848513011310124671812352537076447358084112659033540090387469910169963847230671292506415487420594562342522685567372541184355271104912113985752468984306262568578995192187937607909882413110142246871512251275461134580016482906122729932670756310885848156495311079769468148640335433453431668008738090878324711405284557851891222193619972597625610560464614491829688546404369337842029801367183541625703461283641106544955464562986597479007909779618740607246574796968347612674141835785570498589543536178077675680218200197282813874161744655700906674800939746694956112185524053149215491103822164769948356127297194848114279760494902306113487465492676437886856634178000839823058724798325540910632959499073599400732175836269978941765061533270126939166616291048716547234816676468258381573061712683823793238816015533921208672257904569628729892974508330907661945675135452707792527488711247591192144043423836108543368095436163460930708087237012082948482600433815562540414977504078101071001214420788582229811921241258401613297844953131862231330920177884422956986453882734142103054353844046271292588190432737981194835548920798834334534419269421824155817931189402345214825457480077498000562965459068768173207245188741375399090332001857440359245035501456071059899920886811166439176971381199944092619958894962602954528876148817294379900591722033008364271564781192434290916517114667266556435786730836799569208206178825736381937822106778191562000989848063612144940504060141508080325147682724310656900543117849293121078902473301944431422169306782990154399833161601998943073698703682276412746115770681261493723441792008165550651579583051980855375000218491030875228843449408006197973376270046957953628481602669246713239304052957003893857521611543617315832649883842511191643209814129195588599642483219650472510350437906668082210630523740415044415917122579933562362520177815190570747189284724977919405832199805341487699593036853376815316749464443008948713926118077932954161934081822873522760670495505391412321313246854613685271268083465408395295724074882196424763250197656813190199524758138579484306538877087547255760949330401512783791650508491132496392404616856155144725506087361078799305036841765822550538309008336958798018534334981098602798527447193153748568123341977438941377184827966727744044293313944395134452281339931391805283647145481869278747473601628562689857459289595966462519006791886270763178340085816588956751361946305464878892441759562878578962867609528916834717222808883916006882562355842578873266978390883713870692568691542761384106263343442910300023081543772711156912252483594451298161229352063149475945261909331544997090723072965421194201788264066649595600371703258699358155691398007009900775647860356752752642582390089271037416119823500318993105700179946345110737030414218133082395846937957278385769054730381563011524036187900666668497255229414944702019912971277206804017039392976357211812183533734576637774504734121073332056246088165100680874308170722510672671538157681206686253397070704453363533767969627618311976928282780323447937774302574624350757369171667980077290826711575218760623528190674227288554793286653650498258822595365177471019801983867971548644540856018126077463795915038024321852938560877394708532694645248865940250248414289449225488758580915535309603621079239624846869197486638218854457651066406997724517410326042575199089624317976832102104306883755834821334707136654540375412040881679878371010721961108729120530647646203104073378992782030648107564199093992381390957335036509886054658109994581588395820401768192280792807154480257202131838772383275319425248543605298915307948875217771561425602207438453453282430772814413747070013811571002314950479009368120017083443594283818212001865702387005265336979694976944774737168311358430310566593010393207715147128163717293210545453464491969367517755026209345881910745223371175050883931483555718285672138959628834103298820145645993432781077042099576261787295080578850521490583022484993068315833769020983689851578625753362191250637223843677795366428922342992858227688650024729069785780148002038768778480885855015951979066597839189880305334686093997468295018503077383588190197688313998751911921889940882330200622685162658020527726069684747690722032796939912400677496901476448138551210815569535299804396986564296915571269411800986374567103711148807310758540220685180394973327124713871340270334311123340441330349525289258639304774203185660233737764525450332105078516316393312508844662914786434087763424356113109245161549047897620464841580918859500868175293317172910535868444428434244560661204931992139968871084189592786211802823407828528762499140602093887947879584062516448803289046519659041666062754201340215950083667550733235743519012552323939378370908252438897856557218282423898917003746168129114326275616859149219621363542630550037897630042942439698267015450623011861584907700824237920372952160610923436703188372649039577986781305529575585608486994108935155378484183010584580679798896995353983468917151123992660207522821403966014931901939111915742487996171622179759270091748301067536291694879952010798065736915075122056922702758074672315451832896496923311016336138997414838481382126643870731312445613431227824974323235008845072728016436746782733587424053702993164540985744623390457973080127222046953185434677253231467929276655116798231552495239303502704730671893523477382300469464160163116330674573058452844431228391121791638408980928109653066479378256995146174188988083401379280543189662539844152306200981858433147604571996696261332143591157233409993483484249264779731205492679389659424275943903900647486668214524529008081168316275081999994958701058032438761496884398887673053263362489482545810661249925944071779668501800232677472024447352676254990204573390760723962659537444897702553074629171095101289627140708538584724642353732552923168881596844094947014897482098935617033010340781792367774900750792618329867033515801618970103492661058191283983392311462844995831384078132510960891460130422131566090027676559212596124376597288839287627689044213814358634523483089849273593715201783541133795457378169223084535912300550087498107954465139411478672385840710923971079207424178117557781576962075771411727381902099844634599045344360580854847055714933757655824496068249251263760706388008375011078518823298997309091491201971755221960041930573616994726584920746813759730483132155474992737565579198072226686622081465917446437234750761662982162615451538357767272378441148339101043488147619005690827364774553160044380844169150971642849834853895210341685094549662739317613963004174148328737597836279931506552613043373245615186945567611209958805691100165433181031078423027269196112316329400230579702212687739556216535817140041082119711042136073147747919099940549384283052745022902772361377016394822759191219034339200833700209667617833017941026118262907535969666285401886978861327950188226512182895308164248012568784610181394276978736624872451151752428950826745449704475030725985328886134051662949388362788656291854106706776000701584514261677011143256931710278885430441055850153666976817424484304366673143843147808817562733266751236768982042803048145929215456778887127686538719769716956570067831991965047326428147910689008108873598336647494380483433695741663623680657597357996142083809397537010695019446014375625749001327625067423367013224370143442153688782211301632279594308515157827659684063449690467126653656772348205791640517444896868572235131799165642541096416025961942823175056186362055828383213592805091409703312648521449272687589633040902154639236453934420683788767167628232665548951284890137181367853302969415954424378955050652577859418472581785788162207492812011606316668422877036654584963863055810273822605679368783685787685486121019402478812663720110147906794987004935669807053560903246300605154819120444243403232655427635198737528894491936745616650521781803242399811232073987179276735268582807442035952635737013738716039229206240784280868891830214812382199144347691676446229971341715933567317329954712985994304016071496258336603567623088849191928346349452806109315920184099057291393312064988332624629366030731961144175789460273998659991849993945841057500112617671717751544226185848386152694836702639176206917949901267446223808810763858678183462938630154707206415896014440127903996721976351662739405081258062283048779635726447572083602015821884678290547675813901927266125206363758080080411448485476530554619413734534636862455118472168565024245650465397346000724331677449282087974575955698028727210917495816570595432892796061568973042817287928420560148017899091827849712363634620125155992345414223919859697904075870282035808667764145739419632265696519290729110508386452525914462374294614208375874566286390357092093072908487772116982359368040513910953893712915998211275839552331862772066653819287027405554901419025806523895852406016970657487048448172223537807087719785846710420434412747317616708319101949542732036973195025935419586240741467227270715900589827727570842216539110209274834760012199735487485148337500038533405452932380942629007158219904826207810822913369250962342322550039345045451615167470490152611051512064806961507718737943509378856139997795888458577172583349996361112760751585041854246162514291654010546593712997439838036220812390671720145919730240248490206052941376422792413689205308270597126657989137765150610881886109044751320194437845219684468275003745411317068052992362729682587360476233640853293741861182411324950900431604893829426518426668247722562645585287513290826153864049656595200318373730386563167090695269795197197922204261265144128022127493657176713700339661852814321034624290795264750520116034998224362152749572119700546369381894311289182950576712848076474160578233363292691666032102361459497149282304456434920046991488298383404018531773864846116139853644664667182814277113865781609149302909809461004207671424973837304164051411767295608570305894094346974726453590454867562743468377313317493620798507257662015726014491314088016060000455695941662071600455393086847230066539497545690191862724184737519341928574832549945982483712121490833248240801069767697692338426444598654567792858998892123371438085362368327370539579134744727045300755638405530531770639697647949834159933583144854872111117697134277065546378720981158996834768402372238843788433493875094330309513187012275800586245880931303885856407115250452050383796184793728069271486303204766007898963254698920120394439498243439040975955579422823683947170965182966066522008596485136454403034713362241488844522770517441941436370941822630835880837602656940058506631951185536411641692385985786803784551948694463193673466091364418391760853378841888853998749396430153237093629368380945313857105463492380523051807987359111093197835278262000386158240059343099585756086946585645330137315890799832461075695730074395849237388786523405606143163773732878837172343421617888933972363059232524313462364660697657985854987762617901849877069702781391403772582183667779742731024159834498279577795787568346093806023855686949902959531997957972479101938681730849693741863134777564913705935953521129556250868837412373621271542044133237444417962962150138320024102773083821465366577554065050411452658382075157769886353709277789543508151198906585020252136533102188128552074829995812147301417272181299886621474719146750945188732211699086541613749652064491903020410303664640719218382096565044129772602517402797292345040862961606813918104928376148180149053341642501986573782152785768490908200459185682796213023626677006758118192803210773029449865737211487090886722747013742154481256794374282826027674610749056975690029104343450714910318752957690575047291926432143789010531611001585340759329496726612465839221897436755083158712950925349760785357745228035326960247640987313357252568383389833114832294824407292472407732589005946604357604514879300169097058232395373892102235741649895796728044714489230079843873839886481048528198780065851818157826093135597001929136346183737951625385641848382630163465875799367422495785385265904228020965962788165613821671207810170414266076309179484304643215646911935970777186516243736052520922553726135897545475146384578110756202765692351707893486387506438892595464581096614533337606473613103721387135455311364204421190604199197777637008940518307260405327001371596964798249248532937784119361353781514934177590352062314255921897271574751851094733350056583663022560091496267025208700708444155813907514736598322876290543962570596533221648695652415634759363097082118371603675709137470716030640119145274781180547962641737409975082853776348161218573512013962473461918117424731459195622707430181435748565541982979216579961579477246348991283141853515142859343100701799523062685477116928704847298711613936857867989953074379287894342784336912562305782023001529620233358389692494011061234829815284233929039668033790849394441035182339715328198059847698824461365233861497883863523944237971311822819372358794877304578038474302364380518481398393686556552309350846236521430124321037437762716619460032416328413339625337463270361498235063844959177577018890199226134111622630647794828922326852520021912165577481660899862182320349714901779864213745509575683133834443638603220761654028563807395427895641294886853388960905210319327377510875732301498150526864892432557750295426295137295974798690588852651676743993176432948238104673872840805904596578598683650416169112845641346413758815471964007651777249731435232773332077758100444740357563632771434728793265495458463960224916734428543812531978082603860045768997835064842981866066381787397456249780438733361484695042900591445496755333946838968121567683194850065982883086823302015296483211199937878014313845700974142214654421273576805713972612596473898788340658985777088443007087013625802432960775530837802198175224485134899367400083299179493592006903041187363609093944637040303838269236337228284759721082762684391760856632145164480924446213366953329410257520653935328684863296148803678710052854697199914630967811321786682378234388638782947974287767025342482110117394315024516959466838744818064821523492318829952163860505518400116719303694628677231702324693023057699061351424243276297438866909298788842674062718935308779667643532131885612965269005096435172663126532602826012420210852259402491460884654733173542386853903213589356782518254033413824333668257204746096140398060688148250097187735638143253667147443523620131780578403897396982517698419974107763983855036979854013285769124168312204039354387119443457198033817861813576699100283026277126564998621251273252759885303121611902356668523933970869966435243148414515843915032829844528195872736431121080509910593234993621697580209167981509074158082556302580496355896942298133627549662207068546182332939267837742402163056322131542092882484869893949426236994045330160110340082034517163080743490479233266060806001265703300725790626319395244114134156955861828991111631090715909494173171046890485323090523005194464723209248131077455125269479715602344078003096107035009768405903992563495246088102391465192377798292197922653914751029544755505139048258959186552576932340761362940792554811784502263944914748175092552330120837790566253772962303891186457916518099348630414865917559451661162725225809349526598274003027628730517383675707161728360027525945647645186890765675453881313181850841043417474931170873955629031376838901253050138315835680160296188416684973815960054355048905129561107178539100117414811261018127140425363611864503300605082343458419898680710061309776198902640317401827216454734381373720896274598356048517432068766785321289520350148995415568033904078358994234348530154583900296599308245110853687077569441853515556128816892692156060974636724093835000395363458807881958362759826376569621885635747422667239211218607081769347084706016524810783910837789157789194594459946628978339139249730922385784914520147080780934419612885556682819017737288482290888838879967835615530717212922784925113943487139597018017570948772948963313683516098535945579260059887754272289290647540839624926046548258969040776426324474136789215778037484443750571821380725012471001559818311373718236709013060212123375202097589132295104346790443245797757602437728283241717991718351888726576379497644175839074927160899339267968412526830964542414031417408672125566983805719629979643379460712239647634426180550521972098758338963607022236808400583311605033750057147751224939956610200936199025762733377510660418865277571361733698168584263783596253160984428877508610148921997907525055017760158889249087816105873539163147678714869561098772962916917699192266328418654357497426824483397344237434948399335784635422496579626217015505911878391321728786679377997320934148036545751722207711238112980271546439717290939503364218194223619845963603300689622580681018446517299282629037551397688702736198693381049606200534617629475903386706911261451625618455270574115852025625494893242913425154804724162980773749666500720284763140173229829902469001378793731456119635982541645317880937496293773561531748912567260243570607843096698342394161590644920842052779095156838015773174342662606003093535556365389786545221788044005583380887452865993763711802566023365085174186030907921183719522353922687321776381132309594820795960278405962691355113926712845382136661604573316032255776625556969490695817382848012721433756160566925716691109769795630592855269263417186596407696146637874578949228077981686675003622073837172416366443198388877591629424816667484033899782802123262573705958805233730218054484567925686030548308668100567856708746231911522754344991608464443107415204749739933808242879532649333702655001844691215100526320473582166543055191995771413227834644158932654904452146877507877850927520545426608448085612691393547832928813744373415502864812031793887276469523831125458624936698903131555207274060551598504651178318756568580807438761827641445857302311051216455213726176854390468079531131806456771853081236091219134013828306404612034910848433417277242184507604443312343543393533494858167995826908161642380408621499289073072637839255842959483537891889236067346171819837392817896197380515304180149348939221278564724467578670294927970976788767280665584938121915231216063309768382933574845324519941193582737851663474043144325305033923732152792131957040369554406780699974456829709571223276895352001220397844573601372746650021123692281761070572865054117333129836884016329338016774072754078128512829287335472392140157537452638381349546099553354254973871925919053577226178951343021554289393883237873251065403326277656448452883345507586214317340807819969997163315315958715107960897527380835611726691342912687209408113001280162469916135059292518106252314757571755719180961951712971475730888177299969167137414175710374205127875242354659451815319252251339382871364318099070478965803999664689971353678482967971922987660506387823090676487640012641485055264235705465578323428902381585709272748266527255147258159186567652934848667001822556365996833501637607130072788373390566577591299011996883188433772206493521790221225451206414760995375109054706120560006210011230607514866832091534862548068003188665623923209505036249129926419125589250839517167871023710632243060294345022864090313565846052742403321713767530092152138921319759516483522433510101079680432350793945668068633783116580921931442901119000800394973336837942992370461236868124727889259163497400270355053488041966182053364124102153142112708633821293897040090551867060399709937175017032882651346365578999600011397124920150956167208862229917458881623824154319710773267500748118508645252113899062195643843509817837306225773113788172418039391648054201345575374109187256357735864665098277437939899263928668150134779551322276220781059501082159263880324529590992607526732257080671558090404902128687071598661656736520301342676072091083959370172668533079761502476268018985443319339560909895328676864592354262078967504736074236619885460277436200579678946496960865845977625554848849435000731825283871552446326390615791927087935480745322333861926236605114483796195162733498385193277943876938731236872266298577226869208479023108624991262652391605130901540333384587361068667870559539882177224008781759776712012491064032834121559073358795889161276638835227405139537454031623245979243619919795334713316697836904592600297480047607414851704763213256073194270066132706592753403866460106658838611121324043714256459465320406477282281984415762847297027473860208006829600220585360806437756963444553725082020023937726942734807231167453315435466212871864059945616871297674144458591681216376608885463997922540095672348484066714173803168799418706758315474019236179845990200851059568930260425830729618207925420603397465114224310784672495358827215262898138849119134480736720880606917719316813607521214787590267935104969489954145427069593051631026018041985189993615233974609361772694434314283721649981772605764250582412408932003175282343348908378077654082200458977091551210430092319857226548924433968147740231407628921687049386918246561212997889694614922180133957415650580878203436771056964672672392584370717653370350458139303210137970076823706480521559116605848534918963362424640632938672517651903169341606946880744296076692106093423960636468969912725264771639482746101185059114699660977313416647842360378102212133779746150656542321206952483473741310589363427725996012278430057915394513334486801849033170596824032365032010241085886900379312794979456248238660431254825566870309835121795963738998823922108065274424273918049766067153624021386090208345316844604473362913679488405198153403039491751896890101486865152396613732182563042989270046059409373480430352948397386236487548256631940086218142645614748936892857562044306403187416624770192637117696093644949405477513663577519611028098561224645007174424765297934082354445454948144516504001822664785498077577314328000564269755635423357992195855212283654207080431594254824874260350910555256946368110067240811842023629535531784755992774891568335998992493985118683682779229010733191943935467084827589432369929095474144761092225855184009081827835840404682938677219505214944181388191686083120815098691141428509933031946802459526772959310775324192513805206407628591609993384999439637047237637572006098821375219251320392914828640184522847280753526223438559260885798370406677532710677210141257811326122444368511675750354563399501430329787880537438978880928127580894532347855486613624483193157005154803407104863318603368960032838074365453697412140670718626410308198475466402326068012535074337833565920539113949199504103722875722036937300053222208181669544816514381424735417938589468250415415203073721930673954557968905499059896779087175625098154900802755485777713436039176818705221062448543632555432586404785202370896585681575278232800156869896231654855961633011982612654326689265551079061467802770897727483971014073819293369823879621234970964897411843217744319972725966109076586060979111499528168172627966581103921103825105893810126289174925668974500625939821069701551876274583796447351739945389485169049482166723293825439039535807118391694893077143619654322037251897124487203372915368891678900902187079075947683344376395840861097769775519091899380444914338588879438752673072716491059563948468938374255606730191169550826759980942676236440219885787045020629435050703815591838903875403980745889996892983115422186024829645871119558889889666968591284766952431953665651889749969055121724208412531660967518824066723528349162436581409452504601297669112640768295858240873978126845535271078413666860353581138174780209903045862555261233710688108451691324410838371351259645971412684825541129284385850804696800177518242859013856224701934614767163029900274572528240106854424359558175160182796489064569784848543900350679946351329983500012967922280308505227836667250824445950840038230529172253190313546875565216816493068642169333326849860071791947705909640449422091004483814450556948274474494053489814574096635742710210456366482834771748356546023591153310302365014673096342856010298741365276560823934774104273594346163222036525085478611076000987465781108836712368044504459642864561682826934889089918285195834092014663210868804019519795639587094667285714637967187088708477201399220815340502705233144092129914068959935011052492908066294536375233937010223915888874270539757733346923383399542495782782285906396094969391150988528438372465516037019991858347244670999622373087762922451892132521191266101929049172553901860541650755723372753502449695214734551708998952804550308609378670963925863266866846750523210420917459900019685187453207615392494239977163524866545252508159168874295330191250741276678510720692443880111368538219858979718038401060158554039127340031249899745445407744874042722238539231973757009295177467961227280647555441282773298231532546880043092752506692612259745024376481686007860708566986703592480253724365601663956349265610705511325592208272578341772852632693905349889495997409853691888269340151491124896280429969974358834551689832990434738359945741556565168740723893763425568360164757579752062794317926719798704451143090316621077809501122089037121191004505185699109804930960947945295179964997692277331123821236218545986946266082203552377313435877223182448504600786641981250701952962873812398490520703023163113144145499263074815362280193753101377925595574753757727371880071307603083879246764153534831175080890041265114413720558199922238717626897399303905261938357274717384201029791899079709624472742881334792324891834127303469921727431431008029487449171572703901369111974990426812484893475305873667428697715192214498465815706568981240812926708411062447936753924148441078070969811288445029785630128265273500553947796328679524572929894106591206435096418596973744172502858254669162943604082839545010689691997655292045005671102983084862310433654065782176577556148530045138183370828983139083771951588100940861202986350179789201723970546960266215058234273524716671400166544082992636840364151013435100640632938395442855507089304175410381526382404016735226957680930365829703586660064851156897369374998393317879026249853633265075916272851297329585953114664710013515601109881022246256354174118413914270809976560801413167599960454771633196363379476630809710511922881354814790320438938739197019082563562823150767358582373506476815613951027360014196452954744414726727051783246430136942337778315736828938743916791008913850003070978168929653198216999543254381310412958681392985403908067849639232658110482724160770327501976726288263946546252873650401792877704603473199985331757911908550986796575926399450576496971455404324830184833879043396627813301750648470542738941307487466195444955257541899485930739838087787301185989535682716335526136556186715555045091343895719817609234559940094227364289927584683793345429579435484952603411559598559815217527303924950518546131488755275674848057838311740307381145707739266737431674166220523879126982363609524244234963986054069158719667314180367684708585415033650891545554417067893271282890743210721350108236815519727592460391657849186474368862026784717268191475918622871832328457665696220455217945288728162208153355990986957719475631548671492331230784013594780312954896837222026351028570134614290460965711415065595289913953810155509498006385012677883854999339587478059042544088687169880644403417734378535015345330828986070764565861526189803945975651837938302802691600984818058437201197064024641881659557746569063290252206724363706591976125621666192439840414571211158897110679854367366038915321595946574499300989757372572823227751121374498609488299162144218630645617029162076549800473774388432866535618734543829810930940871059068196456223787566202732692557284218670849354052887433470418511688947258284854630078698632641466203682202719215439330419301941567821858083273403811096146508214469992960399332923681418450720733777746527560038626212034729858870986854138281924277332912483610776664601419104036457230709258251506139632781700239644756980376166615921796948857653607001203883801990185577739502836835786245536799015507357517803092485545203835340417742482724125408447255114506873526441435532866942165343708833165071791515338647595952480358949839621561513818430416319512901084618798826687885539789518996105719311585188751264819583016663860318229798411541063996739795671184290694377666125372660006580276947197768553578896792462394687835767548496586798357861903124179917358259317044321355647537280662446317770861476704037054849326988175579368344882519221713067306570046339613820837303966410559921198792221859974347852387362544013620997288993943127767266740835818307001729251540063540113992751500893632397200995466322037314875471505377350343677105503039753176196649935830772876407772996306325020041361378662989752579237450170768695371898004343279898289003946633346341834878827886338662519297650723643611754333953935732828607631465087463571428969482744683953930471297151499625762890248661757070162268077894915615204120642116890606135081722812378553483583902973761603518864246660929128114108887758347369033912482369561056793409867033443135766212773847593724375304579907797380221176338783394031224193485777806788897909086478067394886448291238599496453618710965365744153937060216522434884023143459562955875252639922777013587724023524061533524936857002100293035009877295543471370758213590908513110014395334876910614173701893146447223461684545726445415287537522787567008703564130195635591264237113711356910415859054849449288695319842951914035853738485520018123742735432611051333144937344824043597004248594476354593508032529345442989029968826217630770839695121268037417457710744730768255544532451259745032559558467081851286261761080168996299449581786591918767912262305553763012056194072187959277475586073674261159798711506546106700186322117296500983602279205297045439724158825245369972595936449379841185599768846539624433029960859302970823485186898326471478349567964079830991245939317741292372023793576375510157902880572168196889870775500416135736980950211424375105312222464597268817281277612364419694648183331480099269299873758338466008897804534772529584466942724439452650569381791498532991797836931401644348276815836909796008828229050461563865596744602007933197775281914234932234775122076384929904393141469463784876217738189043046132243645838899164964591216251837659235530798445802405018205361054265274730298911745457595995586002967713352075017286321629675865620366634338557979780549918235347405771445911371011659233743840141448559240828538715681640709711623210186253135070296978594036866980525619716613504836475824536957669153170327945686529617653611421258588940704036699978264785873337351515550557365705174094900436018963539064995014994776957928103781088961062504458322644019900724307405210008586258063417626325548447820858404949603344234465336614151626131598524408676398224839654254159025157685968911341381794560706750454601650360032874602599771823664966154756162554561367956153920949810255698902739666549199440155455437980302594475155959901699080551979642755024776218796367724747392959794545094636495658846207269044073471487857969332286403640456639351196172302612297094988210646047313223477394938011485474723563769442280471973098258427890434329230216591959559462313973751416956816987305942236790456777450161670543818909763224661810906828927913560152589079275428654560198703529513921596724392182479004984060878372117800747178680580894158189459690712907209676370962993195755255683738442153334559985879003317882530511416054463600630672165336512984101748303587648232755059878639561392783993110374303822500398719870629992820642764461829992622322633970712679820841803481983005868848853199189976881311694180595535607117748611247707898631344410355454941550975602952650036168475226277970362650525702203986059972794638493976260452911966293494309087791605686602478131696818116806298182924436695010311157578864834872872224914759999351294981214508099002820416264691932612271124536330934415294530352606732908594795570503286476031088573558732233263960959530824326941229590776339358010542556401058911281332708156994760972894462823143492439734663573792689944469596496478169017647762446372939164437873907780145652050927545850213290174483299640890937913569097482040446477425920185096088640597421103360713398337671822564584065864783155543785864795266539658070634512464900239363181684783130210395777320128271269154974017562515608236267046712718716453888372637809326827079555475009312847740056230236862252696721128230798558347074504834553300010086375470596792268689279656131899510174824726019692403532231247745603865745159109853861334600538387689704735188456953976272373267249517951982867331634281137632473836234869630024209499422557930682953399381112062152788953744399054527878544201386193727877261092065505333836080614521699666983278598183221171330652591562245693227326237020986489129719673124891065177727993699545217762416887519179685671831813054449056935773308070087776659950735270874966653752039331596141194435532531837159638177659430761700989518708377051725143418308142591049697164763703248234410531136724561487633844823147947198141529661266907586409073041328704118617863053265969424455343467791840515727665533994044824333464303787375065073460075282807693684293977920944781368253009985575348388280894817451072736553162558665064761599254019341171918257956102375549576675557865119549989083696314162643680274928944935048500285660224283952449267988855262548115181140788255550027423206964053745538073658386566842374796448533242160966842914280195981892316256137797259462859125302882836611917736616579881222547919806388723346014071163807252625201949641857542633572266653828641490893862663412008941198756520693890905762831901938289272111432439497106693455301770817927291419067375849210759612403641710794977609625137044076519186950306175497384034158070304624324192014044256448894844198911087866046384120961368309422717303850321054225859768227863256239857279379198855398165645209273682853784220538432542725836258860150739899193211113353154623249426375730335774769774230552772049865419295965605025947606684546376610116881585537304653079157289985019623670672280005259260211190263263235672404388186393197975991986699100924913256611997641547211635766339177766668496768288055731765957172017240990211136148921651920987791813275636226263835738992637150969798179553815700523761395996810369122662484756503185471964174089986693473673243199018686832258884743909426417361390173961220954051744374889467657515682234530716202889225021592134700961938125680367095928213304369902584446064920535459840228307275822617757247569107262095639839241394120339392625502970779738018410347808356233673158916724430798036745908474802755246677241733232214746358746126490424737106829865715735233812937933378504228505001660540682553587642145090093416458597997835995137507667804436742802616069784755376164840369112270572002505833586866825851037754400393987773120291464143588326642423042577307024807814384760758171414439914211881391605706293005110805712509707634312011537696370458789771419799050199174379263369501158834213054662055035970533914804662186864185651720551486651526942460271631400131815906497682959470493418912599648199919323054326467998783887529252509002686122475233791282906251265095028644022232855908941953833576041687303038932684532419552310242438407562786846263716903349964438571273742313060087262001536529633161140905288498801581928631059056463211453800068563483515466561546780115607975595317900514984281635403165759648701003711555188563410475076072046480952031364168745096021394474862621239862703177157231374101600227839997061540459345740331332275795748232238336701063383062337608128675637477217313502917745530448141306093519096738245577236571229842564526224120183363705803305541741833445468338631062979077517413735819128959542066425849913428869205788843071276041120434032317079240514001595981053107490830274419386033369346253909811598989483647985396119083593226930898434576044139678134955500075831803604505804733719893666295809925602003164780355441163467405735985362339976895532204577249021241973050551216433137326966095621893561154656915061118028746964752808053868395085207770665879992838864469116647963901632297589281805980648589583296017870145425649989645291334818123080539443489202093024635963873360257876182078146407439482649008035128918674665366313373681701877837072081122642964971279724046863825120093573770769339584879381783326635511985224970715475022938304906173335477685259372977989029405063666640001995087520792493823434413893571421857529594648435991326101939233244286067810094074484659692763082578028243440321617703055795590727808433739473019511127361817771742810572385000390635495494001335283372023498643533608688163043298154761914498952239244393238394040281293914607417506537398881121781128364521289709595779510138491781378174184848744698158139601337885570031259978610794659885413851757711169145040778421094024506635910122560183033124486157093807337932267293392196226519893421056181533718690612467044741669634273583129517076092496858866755303381008897755719626795357544338272690350431944608025770175218226721083796549080347518564756233724749723424385451406568268247615520536381002670772243444857964617031702437884517130243614884661346119010487847396672912693836682117776931792151097082485662022066888007918028503077835457629809641541014833287198461744129429094633582022886355386954845510577724999668897651480352155352784466929470309726556326842533863991556517423664591231812062351242280400988095183075129713938604665676141262548969422942495425357113903159487665014348808708736224301837439394454212656022025725381918043432365625625173357328634913947041218980974060209306786438198826280913742749066499819266839185460045410154535193070159193431290605434215832410174027122108084312193672923497603622644687193668949089917869971201448565636194703303179804257078737082910135871704012474213376681628153339257612169531537729931602796014261116822477709893960548096603401728530226545777252157870396118618167336056244962900070280644706963929245369002871920657797572141692216604038866777881890918488047160490500750730367094798627259144248290057426815957615502096700590933206628223464386903810027402329574406681848349513735668118578443499813555767334450651841002534608185415567482906602828378164438064509857027907769158458330097198720038139806307415501532878147565847333250337252284698509202331943971581240781311800492455089773653456052040134757843597123547294240254124114618391788906188622402099422956415659630687308961573592441939491367872798925704637803844114363781281284155376369292408958849328301320738020074587915708181885992436209609025618903217920782372051143305711156541724290971805523572459004351636118517275828387411075848057142876699754968584772297803811186476534756603543267593899448829077404233517042583014401587876039982087980276145358337375559823741571466740221094366024323087582198984950067376355009245645967106709780023133931387789384308009690029578649229397164545683561128035412112813947747194513381298819207122500336366641032280423151828493137250242754702909449268222822457981425574327857125793847600168690483195712914993995632726486191685195779576959806913937925763323435849276189868154333468192936135532899058551538943200939759074853065353480294813197742792126746357865639817414507402074218817994721212654136640992279679169153248147847685352134527271107468292111997199808861019629833044952286296736889941752498208788632901741932442408657810231760510981728640630714921358174293432648668009665454860054300158838303607694934538656870746489296322403890934963093734666014741555413193076559139124419944612404012431185451073255469724369867505513850406793714778590827315753702211766316536682322739967595731784358936855740592861772567815739248628499486915312102715225432276276432116557831152189739118790216483722598699449768176596207688534982243303439502415513938380336699271741813398133304192455981808846131454077766519188385164713620140612170205704775717003611321912148789976855025608055708183967969281247585855693152991576942577892696934717415279188210554811335669343254708413953634642551925937369207454077478793049124207421135884328155746218965040870643092656041146623478779954066169350472227266785984113980119595098521389434679913168275721429478459177076687230157849365352081175257437461320518369097648145715354856350750959398911231401658996828198735280800574708815738956658432982172707996030983827488795691911975829958618556466643215537635540381689012626407209062626335036633254584699693286154428129531897840070869523791181896939049631116834845786527796223325564824151059892081983477751180707859130156174243206954366997516885120992804975949825485526099108541131456695740012413947042241803534395807121376940627144989848570194284042378582702605980868504474712110265849746620012189037233039921629890293431085324386013239612465355631549476905071683079590282045434513481385979014798108630923318145355194295561459992961318518333252016270169482327024073795942678698837672415568969059341186358873080427610994577473014694170579935353282004104851829757773070776833060991971256006603002124632741375700402174356132121638857505091861723754290034020402368951053840696798338139476269760440235423242857403938897692252893470445899985887427109961878653607182565573995979836802094846218650702362026535144482289297939242522419963312035233244998251043891178922584671636198645953846205053308232389252862201770183457891977540092357804055946159691673813649955920852480612406416621861331231387069034915768817314947416742983731877598352807189673523056971971246560221521828366036320455906014839566663623650293328267516300413686160438069133422199983534074693294347803312777849224839742596595829354770610856192838383401407903548285525748643610366151422429211704106955251298669102892585415077489644438190425690539793481705124087785572020448422287632116959960744686021588416204273696776122354019279823491261603873820399941022293942949490271633520625442289607176697269415332146241498491898107622762881985377145972699917122840415907747978914524939363828837482924253652195838436521569603197670506482720153001550198695746425064756894773311345567250117583059253418463684313606186055077015181493944750049387035635135733000124293369967667013324936836765225592454668592916067407676082461661720051722338124727347898176146617738051833818068117199607023426434724100876593056011314295823056678948810118472292243981624304939687106986730290711998482110271338084574478237570633316614600040346835286490220906765998085172075295760835907902736314748415162841134235881521402333264563230311704096810852732136023016617217583762423950832060114726837154102663205935820922349206195749046558836750635215217580462309729888211165054099498497069220738370072300802617299802046825197612728652911707365447289277028195407175096222189831345446848311581141725196106952560761309269275687143796199222629765563356902983995033632665564595878841188653406969431143642764136227322871077099771343041770513529980283984419520432140046810864202515970834704927519724644024725712754301837540672165585272853898981046501155358501347076242331373255894022395904580663352452982898267533218479277806408987107357553444357876115925509250356963469979511517030750980819971635636226280536370930562679607452469467028173219860652927679630225884093097186213454763058370458236896687971279420081877125303928230055621066260752165084908127738078146388809848220529300510467856886489714052478825883551899626725483773926247471765860234271626869033520008701431044350529665521563595882451592764032214993219998902641945162764732616438126933180793901148292812445059364250410312755563099244653689117274943434075097028923703902863904651635615838572690929188386242142283882027716250624989595424660080333522311229942689052101433035839810023443259941639095511512119778390614719209842339961617009640023030761438493862329415973432733115752344274190899777065649835404845014717944700447018682967202653908857167535191255887235207069930076214708995656701953775948351586237242760507795132773776906618047958589352869792534955153359683992183989082631584211557806344895359706256639615229645553723187591370813343807579611391850205303993584179593899794165790415911497552722774986692582768287465203821268560781325908620193324801746680711622260469863966412496093612297106855373600630468425034520635839558160289878998391712971445541293751008598676238398003294158338054814762012169444948471130214730694150785653405886878161660349275744444997114257498692070987748275167097354006798929067556084774954982567355138137484980720348370350965624157788453265373183694923157197272775498374692944678890252608550121135937634941229947569083132701163468399955183887531722461344660686776726342664995271963926185272598197745686121862375090566607249334277366045093761307510518245018011594314262732598251889009150787207479205549446720019105988201886183897957686713914611789681473067289839063440469247803712020292620088503366244796899129807183511927275728297715706449302121371276007807542704391788351747377832258460686311002992561725030680347714194399873053635435818684880182221733402160463524162145114363560167437049509771056645981642323835201889762695745923639229744283423085765889893417088904557383124001074451129123174018029279555128748153821945160189923997279471948649537514916776508489108716363790703408081743654953983290805315360914336716609657739389448461889653351648093648073432436033299832963200214599539022016063631253968240822438959420733025377806492675324898222850281976148748206309275141971754456268829918016711246430631271172841750033350212272576532788776684191083549005847974673593225974587453687055813596402924564860749803654839170262062242516883131254418378088751167464399624589708440071659961334246233890071508295319283230599507289179798474615820460395773176417077543763827839860141179261603618063898350676506529362431252432523203645833438733916323079038161422547713633266246689270611512455635683673370857673638457403249656133258092100123617378761380914329253144376058773205473437564219066270899575759058230404201949932408333416708008788131436045919010213742251921850845167320896477032219109771488901705015793405490962642819192866091597812128831396646718300880169903330486506068954863291857098154386654270345311303282122732705789665557673876815952299604487076491022092164577330339305120127556186870948965486081077483673708714529536318284104004001931392424131814915105034921781602658849622121350329803261020330394720019036425753112019698475037027245066416827672817705844229597597025034068095633657462985535675892793649231034797984468194963360980669242405040911332054772841255075449262622994209396578325711751681196971932073010728059689645110691935442944638855730697133419931958835246507420996592435842328675967893611292203150891292026615543480096775273501268538856932083709168623678022449838037458278806657210250950373940909273463640888353550021081230867925934151525763837298740790056596643989465675464670674082650948415245784843700602414410249091729949215555032751322820856996904989195939082598704703055714914674540054989212651786955244159800599434142304187481803670287789633946199310362664557171596635043880092271750946940225436423334554449664862594861914458374007688458904662781569247047388878615984948376125955161330439307411552944077240178604303222452037324581887234699250255417966350197645626340549877397781799713117144651779032681455655676665077525993093781269623332121837949852758679798691381718486327866100744858492090244539360482905813503572830535896345809196295249890506652512597876208866968247945956437371822756743914969688015239071421584339894724389481057532365971578024289829696566102183802029595741368146652429409074130161296676846629888604282940998062433586363836346519140380861494010467927458926592400522320566535331328143328375727632809060698817243241088595019152434777029106557333191361201185092508560716273809192106130731735851390317019079331380853285183576489610573387617926411371868186659810551366103684176765510855369571172701241223292002904200976997457090305627827003375732557113760072054817651950266331109733619149094904746870014974082982085929691463616575517224615693842028785113557388150931055207252838792755966848886172232341800236805605111121018231915716412213552953311959194755055682101248174448788918677047800802729012520272380334455605985820263706795851516697998792309862128631456489558175288986206630497275673501797842165432404305250821820248670867213998007950569535520577099413591574381339962780273470006953673425506473494701620639794835550434897968699222323828708402925057135852110851440760044436158799428694815607857062661638134233958965998820938861218749571904582913843077581119482584962428216249862824823459993454252069599587614918950090516980059160081702230864940282914012964547120155395429473967709122066709412579443260081139729718484884357261406619739497593708193918721432488693783176267074099513812836804624343673550216222098527212050905481460486307138616490083527150181383792037167764814182000495712467572584602873278531716729374760989096343966740908403349667932975105989046929510804091663507448962414448499162448479948519409162137954715904385612411818632331010669968358220633225572628061065913058145061409798856762625197774637287053754266540379380538821426662867701684185447117428494487116869212589187852837136668244517275869023685753903312537144233934651665791726931572261214945747011742052414489979629089667560897824801431348270478993765010307628025792659339411520873454312295228125165452374639822090278806143114026938810424921818188834690755541161926960324802655748248773080488819141431104695009471320926028980601481100039354846768718462976752350550439143714534462816250035782542422966066632816719080262508002899403313556608184145207519077536132486337115650448887485705126250952343392717700549092149352831059475465526836512589191593158269487904332950759324172738374807565751868654998213698481861015836359599492431996837780869276938682047741672487986814168599281646361188438635792900212906711704684693080696974324878469748484894029464945599105663933108270717858136570433174635966297467040586108700352979139969155904346612609897265901284357063802807550914330537826694026755980051709522729319213056613765824638756257442620649732995901006020864554017335202550146503781697668460365368123471636236969848654982242771687203861735173461704964256744991226353499107859350378388650090642901892609546905154336940252087627422733536439808131248202427327256889545901336380715714668626094764952616599561099095870664621263313538594593765848827266047478214575218758350089403889732295840834616797176008752173664253334593400042107710119082711051490825270099736236161496147982923857657851439835520442258759678598073921818702020603430620791104191680432693976119874393886172495737572758349297918520078607317912168385187408673596266146229471403498748453564094695249066383703522687400945565356846970361377472931903166605798451660555415321846582964159382464604032987461621553810289939244431042854893072348194176731778327706480758703196307985269239033596686577391983525976886825823228337635517093434744839123151993264170646326058740394959599717579466012285959020581314032504877984315103113667471291808661039894627972502179495105345627005082615590600760218195608495121811480167952405576749753403926886925105980237377799800162592986245650081600393533144697216490550660905986535679003562164290543048903263148009497173514520130976046531856730602532287753597605926907201001383379451379432437675197519806815950676912571880938383447151416336213591550710548090734221813209960123861946755722231075201416374152057157096811795217745932489538546859240653485283916363483207194182371921722701617910542061947576623527673494885628989486798632184721205697663096870937322648358888627396584133563067281397767463399715021704394722182744030556022128309654039926467062739484426781505941468492658674291142001175655812894308916704985225818289549106232743445274097268678216322187656325324313972484558809118270073908729010329528774114004548614782123569695367253236097190832852793953359576216460385020959247067225289570223660648241493455305262751709726091315917048298926512089731329124290581045051087306364674921344594902550580456732374114301992016395837995305794374206890697637362336233706678314025790757560882377461512698782677605772588260943737928776203280199930448674581561680558936156684744280022492908651320915205071386103125100267059684602472866998787473944676860859688559040504454781524162520564507512053626751872493124895932451660623933431461162754541896361575719014787282426571791906706016303156389028595191726057220671548999900709394167456152073751759573518878155987749661796836176351581445696336313247890088329966443045999491270456245208475780552819692170064640194509252632726732920361238364926164667187643950444953141141954925554066566342494674607086192625062730667458855028076750061975053816425420702328561806958960174233510617459034592705274026563185265855276107652507808599821088878712575095943328186515609468808887636243117945234841740539574235467447354796779563447857628171407880774945474969647050067301604027598023314630703038546732888399547800508576283306365280931349651652324309872341585071378243434908922461923203333019706430544802895154628200748770458172860488697667211041513123187926376946846439403986339053962939615578640317364975525542417587619976182979283734527762943004223560352441793300044878808742696891993415643929552173499967543597912644941365277837044091848189572779891536170629695002748528940361217813626244529129742591561980037738393399380578684811316776489567893175715365406164043238155031306368414306939356397523933662469818087977978831200333800757193519990029710789215935851626691978331357854616352092321026848902021637928170446183006303396416547363213613298733642974957823068089857417926072660018825989464671955163184369958116149625629647028678706309418542350487114722187010754314002066565660174498260406152955963608750898327944579267338787014951920979182620776136846467468200818261476387668299987755270060189466657929274221956826543974468522484201743465384490849282111815869676349764227708582108269727665660521848730381047106593443092199602225915047460696547866704436703424358070066633126863464929158500019259044752502890997720063810595469806577404326187176979354412981090502285154615485609272508700530871239758256137998634023640911985587489404136803248019875799128522025794107548259287922377060966032083586187186520865507169294042296031308597443231938324987304523929025349418423273328917361767859884886122886031827144885966502140928388883603490838887514020402885714139884806258107111104647587411662448167188307031878175954347342860264849124753686014882700160267275265793452019939201992768907353415745110156453108539206595453815650200459778273053009526893791117973675629083689676124664757378261123301013327131250161593758747880525449154907215900290338818404261684262219412494944073835635625342424982183497191862714140566949487572581723560292296419934675154874493065047880522878561196118103557518648088258840486388751504333772728447706152381255308433851509721200879252558777768605865602084431951614606048664631503336049785920782011469619689877369615069105408578214148599363821515871114283255384450706742339542611674112359811365709412141620310477689537086103748597167725511037978147400706281239465083686297714956018109504404691455209719631700462574368649877091431213844271120370075700408975830234746204013219684677275523928699632455606896022768997102227157495587603876968803655505015971405349295483945372822405829615570158742651324485526848013329482138682659196830921510336731176222771780038816386813562940536384842920140863125672121848644578651566310206650709711203876157308448233723154065876069800973867187672857845205772450180349567562984873242867466381546147592642731196982295276090131875363327470329573157899539935012478423767170278026129538160161702166721761158893233102647590391752350635742901239425148229559306499305596633659968167727898255251266567019003318896814990578981436557965541434080876357959679030226705362962904915660332144079863525005267218297716353357972398938307907408596133542028197384828160126134389150472323106916725242680233588622835452056262412972296607426958015107518881927379627237877297937704896748674200227610707886567884435001468822485165208538069733168902058525257674668693809490343202099845180905855200749533278137871190645784182683836773159000785245862141065260190441629983149355627763052526636664393379686642488752671760454119499220852193444597313004488118870480599031142628862939223296337154525641962302373986072070033902893402126959158554963417868170515149740509561012178224992539594180084535810550021988540995935785810982856879097600055126647242975531964615788862359924107809474004981660422453072303651002413730692394442716228148234948265417212687612496296812726905067434773793310489926100843160484147415027336395607123241451816073890202150981756085412594487921215532753475084530553116826093362316392131901924076588657328141632065148672002331719844150242474426369872529773031323215075898400728894001737289431429066452071280577054838947797040821938569061582692298239276711795633529128552999058210520996977180112712996684573700174407704307096206345033476218355301669298216998980618873928194740389258464980071116608689921701414531280030181692123444346779312377495612182294751602555130703150985148527916908540231802868957758354357117788840144837910282591079898797893218561896423015719146962241873783540185618696035631196390187897454043038164370862459697175980177319294085803868680440619478277653985079842145983056951728810173553274162294292261237883292750737118531266052296561483057743736394181780688354845919059367817825169251319472263000202897285737646205369052870914510232515548835267527077958433861173000492198196225691823373762355468254036229628299925011715778487571479239764083308751116565210742291380927285536331387774874006489945034889995336515234095004114610622081311308157659798634827476484111284122185925082880379859449949574243555952789484877940413284285100281754599249866009973330339444474263240417653062876780227111033443154388199451332644992824179484520207617790444063001820026233529828132212705102607432476342878659632741648908233767107570640232892173680373872664721311088478313047957247198103833761900587958315944842510903625896873268249713309606963345981254877173092543494701802373097787275357530362334293883935063691162594755516003696380635991322223780834480884968687006479466734999173613642203797518074782812751826666542442043919611755458876538060087747614289782750921708978239501195284032375537310472622234386641435394821708642873837991160843570882986736358657105802689669252208143854716209887280900365394673173884778136270487737776680666876060679624402406274107341564306909020550603858411868922265928932420810903237738987605778951964829605742541022407223131618793682758431877654900256001838929359500167477529562254070697070192176149030424925965433322829924521778825125615243900428270285125608432639919878680673544047862060973728097835132159633224049663526466521187465269635441350804220946549339264573474984042144582064291560668944302258840468390085544846517257680965736638240345196193275157395423965668310185438001380011337096641518175374166782153765344790960893133568877010782466773279296709250890342294214307495032309236888485509503420910984315516635217015710550580345981098187880831253419316319839394259319413070227137198271219345981462901947901825786132991764779650592572148415932026649276624533571622478696301687184752851833401518796976678569316429677647171683753318966919510251934726269479567712576321194675524017962706703073089396583645922336860684656936494118944403281423404247521527373750744094383462912994708454877898744217463384308828704384841157476053874200098403334764916118246558472449127814999206585492051086091242456009734248616641273949268368130464679606839209781644350564668792526747827251279750506762600473016144268748388576675103790788440654931879058613622163468155114972161070826942818715321277229822113654562080155980140089723937459562003303479137565567271393792071444196368783210006807715370753543239776851668239262215577692662206839419316367547536787946281428295382327135408939680030808779247078314254850182082454590410141314669896685682247743738703984565182536731789010852864582137685475866998029314646524509929340729366079106250569093272303086202691820480997098613022816901385495696671964994054790000994202617050505725910021794720330261462849504481115453039846541049278051829109045350068322465976129559760658184739235746064085061359041346155325997409658345389704553253762032086261411044140673923379706830670353104155136288083159063830264184465766880419376156461408199393280954762866793632610479168089155830344382470578632912713817422236746521422487630723435516295226664747747873500792529843477915735530102249480989883002487280077454771223364266703768816914678345661684772588487322678648304791720414293550671356344767944839978619006314688160897643354375780663857484275613889249337451109240999791789223847320087559025145549235925156242590014617715501396029683095038232163373938163946835528520756205915659157946886710012065495871247702579944298649740462140226502999681015224312459690868241059795970717876605642605571026700409989038249362376610398251703782812945229338263483241501544332243930147958143314934688439908584007064540377133550609671278800275432118235374374398795400859682121146172511627980695159006063764951769856850001482875022898871737759489427154869400213336687045826782723386247663983050226408562661155363749512507109576459081559284478122579837934644505980315279230038426954979673946281455923975326211776903628483858605493032237783982659653647070146934805309956862032894930512341204579712450042161317618667011987398010399454493180487594738894639326647951800418259460445574781955843757109050463299564631179271586737968298803984362035152211982997816036689862131525353650540830364240917222683325293174977564971874971590571323248613224779058127173721219599634378582585596678525127278931805387309848411296721078077974622459599064700937078165829042893842612560104459563995616417797187136473946432903780728578633331321408118776683720032851511557506417359306472896178932778891919920500111677108371312799605170053437089786584485263438537659730350837981972271511288201586415092507189301842393848637773440904077735840039865497066643907367981544673769797937883197062199685031133303059831676798895403193228415437427331576872598305700125252748215068800140695079939692062389884456774110438554747609231972704291403390019999286092501510351386364386070533418034564418523868139767822417640971045944645399813739431469455578189143123020379062779297117874938116055995374642214692179286732150133137583400072876555282248327907329590059447729201076320435491273223089670938707614423319810781692326111735535579561309078492522624271112311900363445964978964500712274024458876950118878137664785774000074372445205823159693057749084730516421890894700779323257718825388779434488110136032854967926462689092623433920552498247404311417621312575980923761938025670711073688138222041305489955678051376930359799658608106911420707066357443404057584075760408002844969059062927613636200072456585536390564149038505769280324702052446557791303156242927940135975595293341440062295859714754489386700524407438894987299709945203044657459072696276730441405602469837606810055504443653900034645320597027863996011976657973550726862376295419086308304691179013283724422854322185552303087116194510009577290548008197699978797492320068277382598291660150781181645634371475739275685112460206926821032832467079427029897510597355580192400423376677141017707125658585920648457239121552924139896922110129173222292255282837084788394609107535651269788079111797739886131083236568467076490862683678548026876583746425002160311523152496195375494119272775755245820726368424201755406844435608029652710626085875916661771874407989759479603564238576733489976837165638818911091419391255881379245106505790651819860131721572643464229491276938506701835282756937294455925217727307165346477186301900019359284309021005088887135166512800814496589384133218443457611464559539099320898225019947817234809146856177843602327720619552355851510067758866992783713236121755379481724394122949840637092024435201535667348681360356503459457554619204473050431032300823179639755538665579335474246211104335387367467225136646299611003456196266440792677587598161682222875494455024476717978787080674032101251027233044537872250162803655962292816516001115932703026526787197539763496847941032238600918891762017975777294534202618086287867602670236649591717313426612336609899810276650529036965889843915168292687927695495103210464996661183926960557076468710645616950843731071007760360503108193199078482512745689175853964379767623030896181160840190193567059706318845833647016117514398507923645599423201650128563174385241928069102131080749096559251562565361740130648919562067047376181908134678249768802680636449795436882277379688384901861234955042775405853906283609077560185692835168001412550945263524710261881557154656567422075667264073756055619820813339030039287602420981709750708528391256173343097168635792981297698928916060459162067078539792144957147863918558333123394920762128070318013956592156061793047181220560720968385546269467492300383828140547738250133857772608677905336148814856496012622153075238404603320191943176122213807463970346455642295977081045132076863691444086959218947979331302129983481441205208008434211825296298511444164131582570569029687018049725994459964493424218690349423095069622700504848526870211334206273476687328110496953272447297133056283081786247775577801160584293066813075255831072513232828960774223982445208546960389339014204937730970151189797093354080694111949367588108831458636040805168524124396175544862873955277976476073237302014238233508560889191909995495790269637637316693484960693403220688305889303583613242249929372573466596798656674246062429819836758546603688662196855899205780641987445444545506453168021503781635469310490239720869869482637701236151830036068213050488645353369651390692227108863910579398224236749206809110303752372684720876693277857042082458612385655653204252356578414022230196393049230632431169490623742766521839060233969199476416515041659536301379687079641815666460255784464360569054027219570182218376748900284196036916884275234914886435967623331982094316725226934812097517087967617357816439473380919904745931142231253351934994077354318868619082383056102966349342172380240675091112561901504832656693916605861532084270911642556556793364573057718358235868884121412385957396408738391805340239011033005699442310425630886595407374638019454291284528802229190119272100416087648686034080275167304274234029363841066967565352488881167377269514612331406565371942159615980033035424973350259421004633256101005963241270640265696015326486379649191175704873769405224773614004314527899956032332193226240201113596180088567490540321933538561882529860837111435212154286155581885617877444680194190430786238656943559409260271615168717088077824736197076719896547614491537317567545234015354050883104582828894713074923181971750855332074182542851136281614920624459015704384282576465168891778637187643729960711230300553765345735087696920644981226619378768909952292753588630628683611842364975485281043364487795659623277679603433984640784483707740008801564197598537895978210863275557642193919580155986668568366534871862974297379909565179258987644379144975530249633841126822350966515032224913150692177418384608309093993171913546592237151095798851260388613526406118883777948053153969986777018601062311964649101031504234732188706752662337922093197589315739440830446466516701035660235077462973986790404936526555823769670834944820153715282612589804479037300218585508547579194286916549690609689965193215068942045840219160416116545099563187041038425687674082332855118856532230235219535772672022678633782294396752702473860711348320670596553651096458101316761612819670443656901223580806536334255871923951386672796958948374694586261118523901009302695805682096142125313559041710508732327069136456827751858362175665781711978252860760405501567857868468090860940041062124958592135158554302844442872158949099428803426322735746835765528318868743878697765682937541062355867982059907009435731189000180527655464286248045311116088422757621390708144127241344477528017042759750605001793916291237617332074863372236572305057766839966061971976365986036792172344399108258189605257511441160161131843375076880611892283399712229868749326386993803158841579344043982352920592050677131641382109298376540219381875156470692970891085440466771317757143175266528936247182217814665298786715139417415755760498308227959540155875615601827118681073060168359795597571219456434625139306172033888419972530869454613049183946729788432103346847099626107216351651587934363874064138715583494429161449088825529186137027290678530644483612184339422500924681070637542186870604464218681588965555588203660792929435034977461654246959862635871146890273379150187959254876419492367030086006119370516373274426457656236698871706267422340635163455611173359158371189260035766760181060309876882398719843643890546711144446990911935756435681777655311760757729574746457632963414164735463349533264577566357713474321956714083094115129163582472998819225494820943841755826431803655665554346205294826529444882054344141603048188205927330271146245821652796268874455997986341102545772581051288744765016976048595854563445294048868772717089466657978075323253869978248374200862253839215679234743689350003887395071770374213008106465043783146779599117669080593339566446479259126111668010917972403094776606986237769741146052029339361462519035141560439859726421669602014038545967001974784437029986673555142145353669629231626329948511716867480684547911957705706402787818960468941483828022120081720200318049347145784896039036558148112371163693995924503374560694400878162445546810357320382063561061032493147117349207222571166508982071362204649859290772588748095802641544639838564151332522772843025474715309415197291738016708416238546052620397768996221749996993444219750340044390136622189032327438729800210260708020115906090740645633115059309373666571161313431472600578564798435214922626575194954539258752468800291536934228048724716734873185596618580553227657366196916155327712256634107635930190100896539468160670040756664917842106958163416333722837502823693597147535501306050567013880454646639614573060949687937734385124284630261759415340102948772443584364229134302705171916737344993095794212260680612365314020500931185156838877227086537356573117132201272785605339076842065702631590089924320425105882332621152997849546835796840464452348875244889557783510766683499569488127790469717261269471657728422027963503227475372568778134320469972426314346780078445285259240059186917911053451624254634277330178141423560286383362701011388860394907176975960925348911372689675231878493487373854840650356999468858357209312265247861436684420814317343050242569359817440975561663052572649422010042467324953558643105694262893381861864822381047369263669367422276097687902248066491921778499025144792531111215897076129118387710153279364697845860632217197480362749622299789113660874460113961785504907228739803679714893198709234463551077854793625031923627018298904089174400486982359674448188757901422924858415250311040120233372913478094344618293517266140355096536819542181607156995066034367687267480906263706424827291987200645785715835469229488753100283261456124364217413458780041591325217067621071088551791079599179590769562638268684361867334304670361750788132512970840491376284507228354833169722620901215836464338947360485231524789584145517203670339115822783449166904670498163920517533195511065213034890048341200619385726782643474069781514626637557981846953985259967299701239876503545995823360347797888588497163577211643864840847488616263318899463906039475421207825600272926288790054215284447146521330985922763023255928835913115104046113555725968837399101031981603304350478107153925679912052423979438780377430770072891506925495993556317990611333839830356097801993022850376650066647413220808466073927544308705087167604440281097816835109039335189049126292451102408106452776386384554808906667088486675785735754963486652463884041188394203276632676175679424435212662264489680125988895018741772591382317608792907044393971911750440414494919407153581106469214202747761912952894890231657594684345285236021477816639479485020619418925530966863218756408756744778122397869898349279339773649352147390825547756719208318253493298047220067929101034720211167000438872475161543439760184016933560387187496059840801928200777366529307200756559275010098344649491355678352700156194135147615606673976798815579477831550793010330041747576904360630529362855696894422317291972866475602736271274661655969250433171781589611553289486070794859095784522934197743864783012513759429861730065760139860976043728243490924448142103129778793788380827773485685941546233129334258688391779885582391885851127008269281262834117161015430832154974816646362973189657748375175765669344118425105482038656434935267736362522882125416134176583155316776869727757314703492641329446034380153245986670263142836942910137149711740348915883800308948481512621777298252069126707665788372731600000231445453952706292325021309510531041496935822584450472204784765422838816415924816696742442213282636355243068337547251599017973932976495519942625077955713119849241825108153328582638786549203323283393669958860190727117999776925142339733438847261792230077255162242080133974994668232109396186064328892911974095285673393752019550277157870581499545156032070298121472758246301436012633606592982441337660282145566092888628350467999192811987767734174052512036943944355266173700625798599178449513826907793327624849901150191228394196809083686889819646628446180054096348761589564689040127340083797406342660454024869524230601183535114024095087662980618323006013903301226810979579533275906026810045424998061493124043092372391795825497849827130132148679466407471208593785697391417753803892238053898983387223041165963263242146368490845876628773092676361337865691099846659529842447784808488699976968178063973128545052051745611407789580916709453519000689505378976242014849308286306440628176889382887415541009536133911359743717826220624682174092327179428213845932533775872278174999731224099543899022638118833030459209546763560788933164584283177687415800552801028645278697975155801465016570479125284488973187541944350861506380349438040181072843955566159024343130916184733726501993460638804728538970020198732070820621413186726422546239517322883292032124315907517191601391282728476826718442755185515514840798733936996409589780333406485892466999763423002763303543548051223741928722958278680085599335191312882560127175311550818424496909566786255130453962023737596971799283471189851074748510882882652751624265595748363313688100457779497663980816958110119059726491440536407736490177696417697542388838127800592580706142994932188124345455486287728992962309101855565652866766774442472402050336636570767949016511162353393460270007552059888231839282751756640065952650670071303169359736484597161005862817464782158657477565579591597067196813580033551516803160147429613342446503257963933099186893818721905156501875610540026895580714434501032125514109105863140593780891200709695693614807991634454864316896170621668745867344314511332512249005740279316183023670032527025128263742574836173765233080932066711610674201636557904093734891826033980498201041556457282982272692484857862166840894787674732591781081255906030347820130062515178074453299072043050902367343391763813244363157508121222852912744502593124703397049523369001872948999335777019697082165679984525943373253991887074660253706595147577542140318213813981487446643467415106270301578520017163060524480805177209923210512377762148583128667658835409097746533887511164351085747743387486000763232826150599248559263874144688571806591766623960010787498727913210388937200729685153797757409540233227984144370892813173212268186487038374492820035013922992038584816235987231819099239987170983427950003141180774409759939127298762139732390383987564824719483380009746914955626526034601189517574517630469557208945406764402375637741198768620511586352869139864075146462450837315791538095802385335555339110666437334411299295251428804084425699250451442181761779727068151524261964405933370365388154254226282333002257100606011900813092373525531371413513265871652816970455563768376975355522705490183840122552538323624999199995571916843972281768792957801206863499796642694179127816616875387242583536178854370915874915679913961896299232669228406045752910544596941720876580878167567952830095559760864290183021988952388406791619116137074895299186195974919811057672933382745258415663762067649881170786549968870052594789030141791139466656029343455938269117896379087238573634572063929808126616021228557249153757775275747747506505682690585832698538542915106288725342339800376930840368352217264387305973877620303086493021296253190402896702159315805294251435616797232772521001163503240830016765441945632639198638736997953934529200832980657222731269073047196212171664963738614471281018487355076929263236904745703155078924960818190149545297144705893916609587061466830871327068868667466736986815154511329783108688863292233521129638736963794819222248400131108202990910119305099330257075974602550617892599202178089396336292864706184872735915107749095746200083813091770222461631691032530585746798163857476997492430300345198313316255871575766060078373268683602863737972914869365714165448148380234503644413712248653630765691154895651116847921344506165096572541472142084822176969639491325118602766661719447627115156810742641128642711294852018357433921639734382006192283966026458122637922020608438329028837147697796887944457776840140127394631068067476848534769192432225785987763630319543942243129144948350839144772886983149081215956454026326193341807270316650358410485713400166950037758657440841973172715169202392706706212074104626343496511225648585124343865711768259039889499775107235777584944801884600893400909776473420146982861295703612399450538930682434710985807671205806634190368144929172042196663485182533658837593939775428865447822517942781271277874670527040367282950162540706185001664544222811298275161773702859700021952188872320000000548759437541536147495014649834023152174697734165248616698146622973561806116387404702156329135674920531937717890979330491917562129233623201413735045952314281448280607510945520792953304687725204617848795958342954961474993646714886019488958534414125791741986268935542877591579049759573780575458502343728478349747878518816453841180827100062607778329779305800596918132262020194037837378526352458608684478338833359111723325873440489527396264399018529078403213419771242725078939308399525508317969693760179746049352078603182367963860014960699378677661117579007371188089305605254636897688790996587234722085652397767123915959651890713722408231847037305786065345269221135197514666739416968833766329136990314524979447579304036520207840022147223871567584730862141170870633976692492132792350320281972841246887243382863318043335224600544488342385103432513763692271289219061378868963022220586464924804915687324950111074405225087975412464227113027073259284780552139371344489181678049835328660342703504217760738005683868776698888702235452304523090132199493855377201204962872458962537797105946901953539247006001376778043112107501350748879654752897081404828444494659753810556626278430249152263836552781842240856909744711098286235968758361685907693119625717563359603186246154182484560096020726612409129958535265590220614550242164345291907187565994103364940023802026554751143448544694880564371151398678076037663472103845856231865361083968173111261859877371983578722726278880279697864346255790472227747941076178508026965102377117488002190848577337194129525548019933836411823178840212847275966698471283850390020585193091404750047652837228444368475093273164116924282552783464177255852729096080237528597271133111205032875839482703659130328126807969811750512744180638702501286664861271645634651927418314066304914566681743274619531806635411890043222167403776487137747141577356884572172221434916954225816704929614593974178884253718507752459266149655873902508547475765904320232465129505002311093344533909778638034611227427200051204826066395998827526571418896521001188942203769226921479559289191594704151343266779747272050472561265704831128611983154769141493580401302479018089929608353346280209818397156476318772017137456144655725300270033498436443302792349548078152028827728545102606261315444593951382942647820446474181801989227740471326952133554320195798713807542073279390404469693778380128295489540459073269816353465506670511338041810784042142990685121720330960732459050763366534250700513238024552616546444672453210992240368925458869042928769904485791017383203312089349101990855727150715134710754916152556851007756919385889978860272666077337168931304378767105459826056397549419323606724926754066751348954358374925666660568273406618256796865998152491741050038046071209631313494813875499615236001597321173718545345323568077964017650905652520660859719595816676165428771570380040093253086060848220798022980344327718389368287599450439828240539407918531957255542499225023161741810957098797852701090436897061237094474650311166679031552554370553913669425281164303193594108491779079912605351217380749471905940479610578606096810793177178637311449796298213247705958291172796643563117800707889001305377884791325140809257039579179957260481831953237675186925613418266871335974292931235995199556893789011581194083199518569033826243895438080374680014558665453672649311969667864448364372992278216573009460786908803844116356477366890009808621826792917671299845995836043171297621766672115258744920754457531504701336554182241010994878719556532528174341512535272325110247448131740763568485752538295747119991578313168669724103998714734768316519790814264871899137075511764802327801214308456932941255528418336797885334127924342762270227770466249264360831323074338382144083367884852429232688078072819501538117172810529934108470391259701529694331970498312187676725423789657556005538654240266531222354844594901487364157889942246819722065293144313532783358925738755284522600252096227412046324287115845785631520460758830485800547393259472321910640575043280158120858155870794823423447232302266202436342734555855081043008343648235315221366682278655066978441274816901445845158944866061308145551645679768319434969686710582642716972567138585856537632982496269478254978048561923588678092329545860444954000312898417198525277147747674136076950454570746657636523743210911912658995437687191628184971756681424761540217185926137782445175618798442870988104311914118993572619420235443976262642109688743482175060392749218118703338479960806138232680082843621858066301447363249586141384004527556041744345107028089586733310894287363676035438507297372759292719221616577889149683435992605244226274385009752595186327547813446654659257734722924776064224712898873694866492480599994003344154355413896399784560981505631073967358187180338957922286944752002482821200776117025789127305679578535370798874489985938051437559814851958837211369926504098637599231735972653875829629900437589481358668659938286265436854944175708053341463660225528459686173508164892140849268543710311512304713945931178997189126873056843454248584790106693645541503378843305323662221870452722125877176607674878419242829006471622831086972886928718117829126400114268088084376903170428364347189269916909027596744389394856825695535769804971649630218759618935290872162680367971563183738650858123506603378669394617425783094377958510130808753345006400916061810836871337079761798876746338101212198817451471698816869187791429472605042182629450558715888468497661617181810676827310087267003443759901754554298831750957882056333696873388458306647516692511708800343689337557409858880374107075894121264439577191569159183639719227259671970275132135194754894355709411904594106411098427609722534023246284599636051007704243095705311637801271438032190236975612514194236437389498018233874803883099933436886202807900507188172628697581948435855749637146018256405551647684981368963504603641537891241785240902682929397235027798012717781213537147863562092288601139393443176510588139830252311198254301714019015755631385150735821117782793609536960960993336481563368676535969358535388104458722041298602309611063754182970489659951285870557925636527046414421861367588344014424702529005302584123759594989280946297320946385749295095763764778670879444489310256350639147826793378290264332290756256406286669343520472866260138782500072492972473429637358655317999711161524970286900423533089565437177871802106548403464613488669332869140193121170476169196108395361563575455459812128009370255011085855222577169006133704751789265610976015618207548288355599380621182232188845316061402334052899948352644571078320086011320861326128834882746842848942693083072651236783420952211573238872512090380782133338237570190293224398238572288833302909987986220439107647446557030789678741539398139930731683799477370969356756656443134227706614938949018988805597742079671073557983645452801169945112102143984960337839701656269298995677320978241540437741925533141506631163661663887665313664560917717399380186884566901204977649936511185364376750062155781844721159274312742979149672000531847783632116578428497561208537081959497384496622966827759071134416065898727505459460155294492146790758151695531493921839418372803422782074175595415564216682710822926016109242765495199686093844892882297272157056865191234834785306580056455143824633434221373658256524555604154843102548128186328372247695776239781340697245421348606595890414023117471457167822339886226821596453408412486336051879964890712553498903959453086866233598140147880030808806177483770461045247317296833581449576504837806873424025635354811393300788642445859055736985999258538536374794536401970769902325885895168716721069498871241664400570931048289214315785125614738110789019489064708838273481867540551412974224618572618625762159283786259813426212668488823278157730289722781306423345555841610568566040234257643173271985458686107449614344298903012795169108052177045499899749189949548311499408228058320411337672020337354462000066669134021366870399878486800187465673693459484431927435835982811640464633663413648827173409335909171763798751275656089742482337643529483602285410915445461517647381846785101938331844044065672131470947421233176155119164741182008627425905676737184622344015401236570369447910287828994559554373692733684803775003871167181077809770986522100750506944019434727905496463914649573175493834902456274749333576346963477585121299715407085997267688774733750936283585541781038936040475850224426417730171271930282945631052631020229482516261975653724535609853210334533636332433410288681581930755281866949280117472796630373226684908989626400921354213059178172551040230032898276830529965463520207053319087328041844182276443842470022576767265983366274152609843104566646854464468859350522706856491309716544922581400341929843105907523759308769629525258053034669347767928424010349733983114927479690728192439888450761011798962952768947341613522905243101523075741402880907932188675055412161594279216229385101240145074993138597766630560947583496859386033322357262742251856785952162850707692682448761372650575279430076932876943938381730030406735540506324158915791217301459492720392694256817349598703264549675272409236951594322266550844430068049823809783561553703670228102854036603018741328583984506135351246734381796684219081920880405937485883273789308036102476855784156891506670142784615111786388459451871513697896262916792634156650441951418679232779591803283535399754927573325475153669733478553311016619427945425034039126668091142018237612304663196933263548993296021667790296083127537297512361547470656534196218404504571258160492622989070364239156086652580387004835760602040257605137821768639194957874048577579560071386881301645318688355753988502634391169776716141282150901836300831196338647539412722157749910218526502916688789851134217699508029538225806710505272097876528888126610126596107591681093475800897234650449656804628968435893667964910668995374134528745799541107066851461883199485708302324306197559804760633025243797933406523570024685054574824197834694499418272025798812537062806380861954763134213491797568972830556541518329447576079605166166170939750663798051361591387496652454865610554521169979033322824638600320504944646600156944532262691899882549258118810888905240374187494181436786837975592272399294462670584806765520817036034704100084347127209356473567250612476081061157140414172451197027337730288743825313649287907839214499923727475735679904283120030742664749785121663259510058993558652422498315294775073128363604062234331156942130009261583412707779918108238091963178085491950842554739112582533852774994076132636856506230035852894819668237341239273897011475264123996896436064810923286299966142449476072824557141125010707802020041366833091646119247239647612881461730504733621947273833370521228710523618162762955954986694632120793206022511789200171163919233121533680047489311490018091655912998147842148665090252938216849210288035912201775098603863812064957538252259257604918382479083139500105875119143139742671358946919643552446907556450619481854185023764312932030754222865219174046469378339192417038461323166499747556136322209446169007839535912807242654852341471191238655647040538385423429553612478811184021379365692596083723310514888499771061095329296734533976864165180706294390102891558665481256136506309637903440391038762878187008545914538001808175962388581057504700360153347697505402009946672343827526373687029030167308669097935768409628168027680374013223253336097229350599704787232661528460229095396259031794698647170963213335739804343391356968594909344679677191814530113238875970108305403464104303587753120123828050581546774390445624980024645125894429570135534518505089998197092725510164595259392868456299377003504159267067281495087889602360287607328193170833544593747340143796345260456746858061487614143274578220202737997549131891081877018275150264518092465182197786683849206856312730083635879390077709091288217253839060429222388097190374883094579704942609900133193602563061860868218037923906743160558352669988870078268671145465152493123025739693131966062117411468367795633626081026147088164069898764596215158627031098425592414162750620506598838921600915041633573025948279517626141056221130305063164214236622394830468082379541801080340977308468971980256366702225193717190708466576450693719745056364571044181874460587007887735850954650776747770630160181238217888529692007067869956895963326100824957991783480444450255330971282019877438955929986880654082527934031427278337854987453457894423880987239595857270757390481015090978784675104510840371761554028894053954220488230694519870610497719015353465110937060496280689974041181330341584676345969291064254266646526980579390370881939948073447640499993954592683741940363715274499434710696888471938912066216945492457542475678318967205112270974950052057570908219662852164601377434932027350324152206367533087977575973119525214837393509579196312876840400569026818615656105402596184789371819302815021586604160032692909529738096728896192655870473222605805838297558651949371051791852937091375136796559612086712159693685758085776559634815059028026099029281649028051176184304812937261081446468433364217007640108982833926588195228014989002982430261092145719708283009968788435776891695269514769043327087688012651037879195023980994034578503053495766828540023667975815289109232355287806086532051850977893210907462202256497499667604636178369409109529337618529750290546965315624820908634265717324877604053626730034301292103601642062143677710795351576254380406148822599732422747425230050394874028154046970929442796384190905040489418334068127602863810598304509505067984066624688482967501116880530867910021707982405296626265833438146777231082909701092181584975033228565400259570401968425597821287558271444358987315776780355575475645580983858849190788848805884001037678732538145974765547818293710701468596456839464620686682886218846113838815719317231300041672829905010487726542302561229405223797724728839330150306915436781272240062046960100646398238415644097158159647882531167476258977268272519884039823132741705631475655244239687813735622816227249364397670278756126792366186480798704114759773455947468617848792942273937011952975286693521744161255201245535436817027766121775449392643561429087005940879467474888995213506867829306023615218455370886559067047432703033399222799262694948137463684848476684918691136096712475655008245055794302570536446802859002352089448969908377797700973295805948958103295851585313007853828468046921343373269724759363246390282404930416728462413509994842236297127723077717896860968486976928925834561728275107266424311747900101250183642437282339984106741826164168230714295043775264774131358750407014364948792301794727654316493232912003005835465398438951510199123634266239833451366738229156353102657662090553356671357886103271694068829547849291400491604429932644557252494048373041653816480625804574207607174612700225288819857256361029386279490983197947066015189145724157650690546944180897085841269609797019703651125207856626545668431160342481908542757350769184656008188878153751274010933318522404780422961784305877665717652652605278194901790814055003985031258277083829204530137744470928329145218519795795379795116187493609881160945242562000995265553146190304543963806561118896211986892586656377873457051456650730789186702562966832225874438390789781081814708246665944716959774273588972384272769365426183990294376186097308250617293644795223348584735934715044206535921186713341023480412918939231965375910940583895893772261768533029132645388788960030405281789585256838077111324281518752478646745854743747541254323665031636370838062096733590315813912417416453017890026489527636227952143542944103037037548143989325946536216670517383710670675035117630218213204482711268357998980447066450905577088859663825273543296336922592326409053468489641182302861999048833379897604022834006177226135055191212390726887924688603673916298098363769160967184751336551645626481258229308527247735244467796347456885217939701628148439063860743033215940425208898743211738398478097931588025905787652048647858970121485435582552532106551901793018832734329272996772477869313783447221261787086407624239773649731595029441240178510508775736201215937880826300268489170113241363701902826777004637190416918963750268791983691161451337159181398262827610588365873133522810812268377291091149367084389637127388679261071470958449221723231671909756349888463872247166273035084476488751264145394879629586384100409293020179945906771008251121931164703760686828700126612831598429517192202334348602708335429261878440941353655570145402579269221396383430911079264179235891223357544805267338011489594150632796972611194591078324140841432186190077371554222052123320735984597062079464814504594910073477906728008191349374999895805106562347643319749752740789093181650763889311638771221629855133069762901638502218812587380365464781214957246706372881038606248106951532486539305924818024629713024071220832555383939648647020926434966627973751089087336802495002717073708421548911237442870205159713371190467562057519921373839957249499857601705364560265372406528099710041500259695929344610754041622816379922364626479601163417481635350177161771904051200922631522589236071918560054147130493924451191951728857156925228774920527707514462123118755439896452586370590277242992262760123440814839891687604633413539715425705197118457604562798349577198956367058276149762004434573578146645374509380194984305615726643614461883314518265984749045561316739284701365551073417268769039185107659117675179735595861755097460730501265113274936738542967874777216752261493672987301948415155658677819066019371973083932899228130901464325081796677721991724442435865437395443304326026057645839730238657396143086592758857526870972079808702372595457728615086948435604793284577661593569249057910496243875540556102582627956070027805449891771728107990579992405368760277853370201409117464888269099906245944966681247638955661406623290316862341947054071099130679408461855156969362235419404036531486219326366966431330248818068958563272601320961773427344863890643931992636736996329587160095073578777312966865164033879817674028693912291130819016067124254200892835578654299678456769096501839439095344232614159095827971967052362976956336596949336370008067377504161602098116916424081606287478279211817762988983382451997579556665113109536752591337027624057855350081550538064698161372136995506987560609063936039954495136092701182571475342666969521874511688451764472035902975602896849311059002434651564377331392594216547994719609128462614781215505553560714834728181009419546942815497805795803010818358924440998444123716169544043031943629729618528363096638615681065761076962327893372522686954354858867177573506435905646155554356980700159252292434291334194202975520645984652361811465218578761564059177380599783010046437417414335039682344657246312288507017406465537857905823375769879361140526247918138169185902485594354001969853248670699103113131402382562014056924854472669419168944129301526024663300287673345584600692589656850503319731620212743041548545479153144582281982586221572441347589112668316656389598711544159039280368019467460132255886767908156621438406312111222832421741466370823671432002685872658221783502511141153190588902692836282489242136266005331362847876427509512313235588868467905530977877073081861450851292872040701104425745994195872379415769558431671813392944765290391960303775223823756864455550436234211015916057896635806504618515793693328212565353155571305568941045983856179436859136173552691987723204361943872751683201461223121252448923553481646212693562057201037330461916486571652046976928598470882576398431989192071293063884771050759849970121796636567916258078974616846744573333493071198859171289060975693184979898093022950852339951347618596370360102752781345102411781678884406558121305650797970066037330626828832917450915819954573513565295135161590773152713041146845179030084100345817421402299319831478635664428014610219083370783093478090642921075726864317071784926182469829224758302019548425104589608762556966811553817752930259838694317453021723702466849287505801289883023050782588097155155302666535220550813679023384215340812160618630869954977406761093385758723502322828123700590855769935210513226919906707884542007822155510373175452621591755748255842054237089513847184244393169043136045466961732756316916345520847647216820111244964880053351100379531322203220104306309547240097654101418975142399299389529565648424867178050468567900293343574994980150402555629507836554657361227368727982236366486490025024654911926804517075901915058763263510293443655688916091859336609177544934229395899689906819972332576525536556619188693451342708023691274579855023463349218882033075840269900137394135672126590916488664272698383211706498443617197571009735150145553571080751350282509984768602058328340541823043555654630336151824028485021288158363463321226823994016512298345919119793871979915706701339965988005190136900296299011156126102615380727220224322651124966755698729881151990924727750475490329369604970555585986694289066776605676010206278688545159528167178393667114221403402327881453819787494010163836730772646038501757582009157766635136859080546224558301296897754487235130283430764891316634257663846806602106793970614069532213459129479141951922245414018597743208612169253135040125259825964087347611901209453406031316713683871716388430173675872706496184201548088637529076315715268516913869422078457180436141523288978898150238652542228983677426878829175719322162905501875279773389729993911793481543811296308304469806095726014061389517213250859897976356479708830674148091688771287965442295719132325458921056032823530181078537880530246429138995173203394593505385564582937605178632335759069133019665602926425657055796483787319206944886906621401989749828046387295493426317410371833169007748367805531634382332675738840040830804515742578314534764906601826336692329088652595045493572529372295167843419826927018091958825345711758889381263912725979395776894393303630421894969818112152636806632319387471222771864148168283299833761058985528503187480923650565111147482824325295071478903293828885077974116276020636930518246729219680947256277701542542067250071354118435488617155354568311758035350245166229783267599042824828105109554530560644877232492088069158338874018313897449001194024303861755585675479547358523933780861761135727068788989632795245541638125915862565883416654457639363055505701734857162928532041567155748263035997211448414399694799019090120241989385186736381645497975348883785514363453492844692138237402624280577726685541879352814915450370007479008791317489786082916548876001128846945641076762664399730682995423241677749622996787477329627974127642998893633216683829356232859082498570488187896326918675477828722229276009007552602125345151839528113062061170913099378523486515836390359020275964286994662977751087452843992419293803894128642635514580239294453857963372813825498040003767730192812810324839927639570674887725858863468063268599616273016578259221046029605572226127252718285423275554146605373841414801128056508899351142682765549734779268030240254199926239047205647558943111106136079840746694394592666737403241191522185471810920231032766479576481477109821046262094053990622478560849371027891065772406931676525337676608565343591338059788190625577577496011338688277704512253247153157053306394985648878372898847827582558334622876964264711639681749561418522806314843048418645325309386471141974884219720949678318574736327683980346859641869271798960326629781932806723292030357870315567636283217132483075371156096115244466536866953943526772533905894867945870848051518370264393075012825317090828380703898939765639905721062342075812555315086636415063624508150466262885162245921066195647314396803446327759111885223668606054429086392346363571882189914163323569502370867146516716549142101081467234251547518234524292190712887856344706600349226817687721755414168498306112633880813059502038668198866322064372755358725536838963837858125949433549132928705598437233732577845537295116704699714572743750102204429050651082146476859206111939877740875982730948046235643165933753057678793049053575048245904196128112929912873585450361250132080196607005564636469927047456358622800651162463617210862424312833483598434148810304656095678479723129595669042305297125134493778931625037910225650785259021438847050597929676439335853051084510562959776852648330793025985667883230500696153165789221543569218917818824103907129127866736459279912775439646282979189478607185126247340105928038367256126641311038447228955544871913737384702944462244959837033630026611661349072488336076546836945619973792387803447927143420737604164456764541421547657885188575144600239651806380396618995270647925557397880567806541325487457113732040022656210220547996955603111232593031485199772326234223126964090297632587222051350070194428436423242077739564291158137654988284358044131980861634982055111359683611665655549080441823413838747118037472972102369031429835494934767316146306802982598860900213251762617267471218008525321527468246219077044227698328695135306373992322418422038568400374871295256760644927426762588249340038513794272431913897853475431439962256578762510341618478034693453518149645620202148758146012236062885164687683913384189949735305430558878365075121209505437504720625369122778487235537668545879605983715448055641916791232093816877731202142730412566249963177617994939240157126142968268796227957309348161878452050160009838732461523741460578039356808336253092886969489703176437962515882999100811916652189044028363502187319756909467042013467099365609607670132886788700257557489612887194153612927765305760401596088256990456684610448744456927736782446363515655450133198494790539104519872961208988892814252712402563222256683818702875346998103215483549308293596470914119505496204052040780120315023105636681288999502763269443658069156386602558360726656677869119655353102877191821433495010684065473074982983381654957239898355485448303324529442015489866542764781095183136551036693545220133467058284644478682962534011217260952930807131225357842689966588223252688038600083553272386112632300209193953664347194160853098703880349680045995103007988609836722855873368410904617810008656231906496848719665898909418897079921802280266571418580567885090407729045091475515667440682761006369244756685460175534642083905862575290402681028679970221206761242783217474658883327091613391500129636502743727246995586871596560130380873612374666471151619906247847498355219715314545691410105942512181233541341895610215672326248313871912225344694181921427816856239992768478747586649941435544257459610060093535812513334893940796353533539864401455270728312232456755184262693816922085949749654387460381870912440950158068827931462292815308611737731884597879673931246908596167606861874616020038896252462791295598160044267424248776354925095599062271865570982847242737051307319623801143795205483230222207188298832549067825224660019094048094890993531612465191127438859024195445824814999815047761300701251560959580683671501432219042892980841515819449291631845291018157398055786236753924606801779691059620939460937787696521677677566322347513685099360961193521616224161203166573986313195902563807258123627805412711283007366115461013771299187459352267749997489895853403877280570270037707575150366157486845447604897005500219495514696360679503720163768157183569484819339169270561406192256891582602147422473954029249364071056048970591962148671721972902974491758529718329275923170464570966066342045722456561633733037646822437816672487303611218607769573661024236063300650990885143670421209407322775579246874096110461497991285601358266203253959757989428432923061943390479591184208090809959887632809871622781845458045339571660409399282237770675975835988566211164712234792450302598978627909685346522237688663717937056950826320461026660515020521015790848804925861183810599611677528771041861994710313862536845103499156723552263250925052300597976722308098346997419667896605410055228361364623899110699196176726151447498838194427744738789115264644876469202362527020712295385434100922885491304357827850908236993114666484573045953713053457274335660993192034447783730466794243192631112419184135997126541291681070209018904576605375112694892422795352971530109228476049753851230552964200450029114912654928101014011198303336674601122277582823006286995120035485739193021392768924057008420004086214502116187907498488670442402209861796528869478824260988463043286078215087847565700580046417211903651461117519746189119303209973828976388691841103504185482625970284235379857800758536892314104487530700653894326979439311506575269213332804570712470300188313619039446951625765935645051855522035184996584952939358065507565285761530664970331063435758028055718411538084630664926248985788654181721240901676061122525207395649176127885994507784877071447542224429607532853554467100551609343162128532769905698641247691600279580722144328154946190348872814006794447844209867014444576997621431753605270136882298930743756388223835565550840652065689053870722473772739645135850663278003789539144571715906688360645688900405441460131861474737925933507455654768689890318795968776016176172311260566287112057729393603019702027586287639420712963449054391910530103329057122334542597489776006476163682603804277507971570603483516696781816196222793788857057479397535346245286110853171167070621773192570774348843197228455124431011940819008806788595588527509737558528937957022579393253981259196782709232079196848518606905867997623475723667908228490690815257112955194581448711668413589731320090516045840807177568093789085507859947866302185448107981765604756497775231984114672692210051929628521584003519253642320696893978772477122870770243061649591428180159896242162021825229084394232579737013129865549718415484540506851769416602637795333077703884724194800372097257470819167010739747067315400653705394863631066628910515947089437062526926637821278993870695811216914988272140913774688610767958444613405046623135392036607650777358827069184864478263112721648659084020360403380462243581607517559268418534804147201466448061994548578843828662826787611027198907237126681432278456388257219540074313947078335698364958092380356530293831010336442524384028175588463469585907206338517759021889127578774310963151635254328505488353260263608673701049329846362306636922574341264522149766154332047184460573315610166588628759584459204740611492205703614803610596852471611353297172605617099408011385708367965111227084180840187718651139497509148983263748132925011049528974273563266708304578723718742026424410558741910267404012141877662447444217095520550881037428866381557343816398206206098087560610776793098649734679224053724916069010776674119743776991779363690257891365913448182050266703951880428600760666445668511076403234561865827829178265719527153703219850155459352506260212540502787255828471948546837967540004734475562324913105649202233358100735071988199501791098657187468974237661195669043273275937972905081897609892552333436706991586279114704272721403200277152024596750811881823476486326671838302050742624865107764939398954134792233917925046260293928836744554688182594508463082284193901108718780555064917129271682220515328788173420116573426585327581879500525634746121055760093072062251518244117470335304521496493668755625937470433270635346835648239056237552342631130649529430006888524048407555188111652895435577755367294830391177042359231293966839967472967319530682138342417890528488149553497863758174959045695444897578297855691953596731275993621149183529943920025154899722859843050144669669686292386996295658745172888472963227404117486384608708167360051156132705006766052197940372056518866869967222063904205486454932048006488546317946850084044371021111312158047006571926918259561001498397352903668619208401363975691031382435294099182890602395438101810101294797310928239697656153557941252601669383198211678872482583438016083116080117052084056302688916503604947268591533124084142103452879934619527530114590201815119038070110296899844086491743760438609957409474011360518873999270560898661644848358132384346063301710547779615556146003076431421885394698250601000053155350167740827832485139658786507648310897356730957844153164517593518314651372594942223210987651825811203587845860511940135635549886707213308158552678148878187092360696303518824312989909420182241728232849392842800398276218917571665933237457954022387566653410846343138787998593664877906820940149080178509079193161413724857218057788347578153131847665433844601247052397205186711360332085776373848033494457369729691851870024780094051117653379158503750072772432420024012567065459260448241089165173599845527006530137025095599472499660391913538320949555024079579973554916933173538630649623641219334887678674376049197382440521463275980210633083713279138701908872421720843448334456069301716281819342348190903246655426676364715163181060101471358024684711008670999255902763246725484252998398686926953092297800851498946251013044509475404905327844422001090649280075272173031140860666078394715548414752893618171899782006615339707863944695601850613481482803317815834674328272382901995719484095628481342689711903423764504249310771963418084137753013944891782688143604844962381633894574878181253109209003107632421461794216044555765387820002513352431683042662860612618265480187703723132672385481374334271497556275498734981495462743390678678001235365258643670831256379868098936645247122763856247686890647190086990211658701627157100011481894450823749737633343164103046282084676634640293670979124388094595871905893270487744359372538627473935238031611771648025235088501395421504508537928352158247911713642727984836433792960630367229820516504642562651209717068451214150737133846140975362935003547748697797557279617247668891445560968456540773004018444340455831108773929023831876020855622179338234591094119016259049516934802832513978064272662051013802728276623813414111847670110147203905352279893800599501962391312537408441321670473642520472483375080417565142327335743335461786473959626360070356697879608344805854812513728754468230210018103073807724334720735489207560883990211453708683008169398972662065413867065972028112782839098820420066545663973562383989993450852876073769820884268699189793789245455212070515149042105511083453581122822957580335141903239325011490484328936561733588273702154739861767677498262084817599854170367138203404850678209359583075288506844745133260463125831441973180412698612572869609604685909671022864660813583031354698939303333879113940749541103082817826530504328233356479182892197598017191576485143090835961069479888595259695826603645896010811189548368593062798178586715675444117453925756123588454130167740741317402451357632834875763541550516121583775249392204731923075530775658701529964542141751646966925150006275841694190836231296741036286280312213897475042225860724998449543296798444441484439270663422652035142553593862717433822991970812809388347293897541925548607415800049496772553665686389285423305966214609002066662865551682750840099887473525743443234110925167431189112928331616632684271131428758907925329560556625083620993714975001998328215500956408902567757943438159662334315265290786844210051712493622567841843100478493263251745532536325866243133066322103248632223691313875660370878621760944920211310360884462415637776408149422445176203132834920014367531612561323901626131991831866651624151554008537203753124818422138813997922416187505865335195978268648724410628775296993091868715077887577223275633751315450811926605663721475553916479027617885520988106845934690972563201892404552530719925382880295882216646985396776059772583202702897552669810746337389429029693605843467370386539996739920574387975358290127144688841621112971510618895985669464999960349703661768317680746942696069492954976589973404965536663415102919832746567113988992822080530686414895597606345937271506847245303892912362988452662842445235273753516499274845411880658121059330293752351396832504279366913846029073157324675335412557425699406779705405844680984625369817931368519349338472200844707680328735975383320801199200967945515494221604837380961735323290687043094224572024749890463939468236107753906592913633415929557467584064194969177955146577124104791828796107329650173818706411167501081594324542409594504790924420972000669046583996578457475437709941023835823568278301994984863716951684481891454916027084998919765767600540930908199225807114596476601182611744888996708957778104673909760513263338819044264089916294988642441379777554956588020604307066317577411931706249234970131165996551765421255008457926046313909247866589459533083462857093387000898428826816861962109887940951926265510562028504316016025355004578261058827064429816790566900379757479977827177015713560267137921401054411904230241016655443144968801159080712765054059961365451867360976723295886509231050162142922492410717493111949444035523140667520165509281048085788085668098259463711132311605933991475535985636902502036010352606709046564283880462700429108330533169451938050399461346485538403916554478373099692828566563302987661700768410362041866262359284973155855478931635995738857235531224617495089292166710512166349417288866640515968106507513591335606688957268438070271374542229073850330325341237492300925283621672617865221841084340125763129866614631570237324153061875530448749141342525781326569305601106048042177207778411829264478019724344892422008438668589904306611777055546744937426725993350981997898989284614030386100949907398493472780631529237810386841004075715906884108432176291062098889382086947354504419991512488679514829463056939217234515004048176531709692481066757329798142066258958458213244836452662972543382153036120881311562603122170203995035759410407629973217346454828249241255883479024930755348882985951335172259674224754159549695350754867039310859035754367449693895349596541589701885573937171822367786011365097136162937725239591303839916010541410729725952314284186643912830014296505779877234443888143639014713518416552914055614400405945916657521327864406879060589571460684557910123491702020028889505086941018725590057601537594625907800423452413593336394354681226984148214686392759919473931150240452929224936526887311380180822485078768255171298865418549479927252460790742095160250812354723110337553785497464866059258131406045635606847403959850355208711412815113241996092760304065014682470619581244299373294335961949353039139484679732732663521592788085947157518840364163339965055538434736363463749420994134203869908718532565787805184913820057333887453618737313243466242910154038471046727060252601576702851376303420071848827080043180824438674339407876201632850168012891544476447782878097889162101412237745300544556329312160765685008524420173259592222202930059951181324523240686880040286075623972548292831859146319584542166544275819221733637019901313682106616782907892732332591247072518636610505478206664073037243070017928741596058304184253443356172470975822330397451544266176180113438632825320272924780891526766585487724030753352293714791199253957348065773305596613450027244960794478919787053166455625253015452352196676205489457168261063954160395554289726378779728024684652582319626115482888444172558256852791923463616264660298435333413549026275756527774015474227902127266887319004219585768231024761713692085351700580381609573889638077169843618199526537685095440021350212827166603434781539627958159859150238541825441069436927475181290691461126408124800647488882063036519601318443537714970775820556177255950322907113197668767128055665387016587569872863892823187315622723247931396116818346049896267175424043484614644517347505944399339283178688983783781859414361410902838856912286032764374067739336138711262691078619023418011709377862169570385831241044107355709246186894846546416354205402830488626870873000573390208752526698718643934751570310069478446511351755713805732037497867235503755303837391891651497333522247395361421204415686945130868023883625590371064154038389707907324233210058064852497227226246763276090677789335786054063286086289922606285865114335797851279601969285358593429002457876118878374004156090994350763279772816746587887727242248566130703304848393917564823020536587519520512912868961541285790511816163239589016883730395974771198793001292717908894273722103931908801233593004620632141121281471267787056907181770450248843432628753272168238324725933811821436569984107164629052001736039416866531026619239806517420472780560254756510562524106059274838363875224178127205918402403721448876669413001048490835734786633904579004934068685161290143231748212189024033613006510607927541141141108825618450458191816286887663356387082307630678521982877905461554345374661742496448647069997439702122391280094208191107728792677011201343676248800646555407585405879624664644417054450448014592090696097649406187460346397761558144651983250943693111951387518518814286449496943842863088979296816527321593794237064263493095842947711217959172483298156899184154459954123084180402870339930321154442604861357625758421303165020635630569978803550077162348580655901599194610676270654989961907658172209342440334250934746043164008439731325359987490914156386864395078228081986945960923649690206324934423612953354344942678835100602514151900307676437843655145483897363385798764348480743667929532381724919270706167735861750435817607437006720160288592698496348073550083917686869372212343920265143367958959381813311269527281224233190478874521999904965779269531433835437791257959476496892995563013095339605556910506252486137330143959112381325928088690611759381853933684541960215587428201828460222951518923552050961623059667710129509059434132988562834871782553607260061202223956660052231810317107295942037814483129357075940485865604532076441814945667863673653933517089573055801418324260805059931449717411330166360836593006139738644083212541513019973313283133859064777312829534300574116288363964684188007555876011456273578456294756662623442729776499693900184822389002402254231797950394870502440493759503093796496475710817146333710233242747974690589980916789967852080211024882778515528668777375167267882396345721639127932896670027392687881081627034703801814497462044861951492840160667201892495095781744252193003910477113662528588997765626779274612393429012545706472540564624628624282520320397126554795294105703819454296545976537910497657088554149458728618998293667839986611736814483682435325998724478055039789202434840164506335380238013118755393880503555972186707755253709590709718832215636560367134075170790964869295606278393409891216127794748777140673578912813894516118450701760441518544169744598224998453663984866402745772944625838064726124871775853544019909195696172926425372448475692150856595693327862740388218198311329255680927551318108870523125297977073930136569054742549021483285340017443613939336514725809264931219116835064310135519166299326657524081698641844729335961663501210636538663505632088767515455007836609703176589263756978787166182333248262427261138610150443794458754802808717075035034711544828687955227734012834898784450551015239637350813548614200271064771096807572784195618239930936631694406102601834274198910344405322792182620822338664656885125863495061776116103618713048655700430578039466833263397003803477766549954807271912864578702311413080485806698344255385124748194971330139396443177400965564182066982380671684185149781390579649502581838862647944810749230399828694830393566694446913342384428203311701502820238912109406985677220425473057827261272723219994108875585864991607996129281914596070227815527062372504372201981022119573907653240556731355210602874310877164962637588729678184194552767807947476324618597371976250778495384477222425520265617988063421068738742444072725799469559183603899621199492938079097310196940838831355466853400636820370530666501278592636184852743917577748873954531220771542084821030364352682240712268277218796359658885544887726363238142687640866642032532505744093232075726244372617265100527765466393188017377848486503050795422927138124757241552359381041516018268101345175021185203930297475014988478164187575323011904158953088841819071328616429293331222557216562785647652636750089569431172821115826520395675291362328940542183423673298914288198088854914018291663771965944809879970047481067930691613663074100066894876078523129087777699824464543325869693738506049144574376044117707874685778449244465313835075109702819907249117092142516259818475812187744190706610951193752709250150608681492399498738346850221590995219089375755717538264701310955148008160686181415489305228978616658851278075021831830826522736884929636737750576829021642769312471318030936927248649512379205250625255095997986870094278278001320103468505794551905103042809962100896054574994719381281464057730885108540980797974292919191946197282409120742936027128996130315053919662522194755446163800380149194706642048045915935235645047788304893217566258160097510117424233908478728861188994798725920671762458037329704885199822374950291998029164828711172329721655199697554227465453965941106555912849295024340999195772917750416059574650207076293469946800786974149201933940362372855504612544928246913999512719840781121777203927163787358046975219476454483362683310013447569575473323323127931892642147660468412774162977465450515144142543720323320905957350577658391764023701768334884826053858764339826252053892447447330183715735482239524906206226670862686436624092578361290651509973425011396251594402309503947523275034242949878226385872556307697478200389706595702521388173207076170512584475104851787229516188841877100456361991239318063826566096172000494901189606942963596233916637311401950661596280881663222826039772997001384743028078151732013470624889980115140254606484067092509294624601245656831244032308965491174047233794901139782953927207784784584211656248663892529786608226760782469255340651222229781058484552087392421633225761635088746845877269368303546710003065712600259616834088651690430980835545097676322553593973255839826496771636470872143533511629199404557526257792563184364394012722147747947249370518615642062654853231066971607603529114697460158199455342571447260296030549810332098657766124722530158147015934621992600954570875523321555845197241578868548257719761133837696850737772166825134200247651128570419310695110852893990451450754301286608565316419362702442994425641397278003796210285367572797187291294355778185976392877281508923262893727049249220099595956780212714929302962441327745378673312892317088729976140231120922992085240852341961557562276300026675869952601141381177237982654801791177958506528162524567976420532206528081145909467575914211367154786658386407779031206630867573326923267311795682809237177807891877754304860849729045425244281436362027290754099777723168526654045335729910217634418918471565257805334849077084592640475293575471851382040540769111808512009128116546700239250174616616298649991056343348808700019647853005005479926750258519126582377214240073061421056218121925649422829540817544086592003597789883822915484203428370001477355753590314983301499486011814715317593582358137961572279106104083482252083036319103703510953666747196691191365261913573915353945656865842979704181554869683015044248382780691967000104121713744213754658698873738129259182425721327743477085551144061935811731719769130502171663717078905691235893031976723531146342722778110632294337638602502111246851063425411751797270391955237961766986072981707795062097976572094729439363100095479925614220739521255767062182082998160674336929918200344797985612212004828024265441671024352096345660470176146523271614066653907427924165224326109386065818010420087303341008648713437281540811270626145000184669685493199654557180357765723232189835196970432448675255743734465214927056536428558178017983755058145502167327595387335834487465031027057941952955573645719617332792413703207781630344494557729661795490496288881885151452308985990897336409861756052585528449504304514385062004693766163184192723545616526858082556328176498268027844295429615346832999008693375188430797075636586181155310780471351287453904041354117939916446740285340219995252732155964551042566079100748356207534652210655927016947202934936047840404888988202352616189336812290996190143429142865754902931706324891809070504242393673190749120620822841411576733983055742219905148026667903468320376462851688105703750420251308048219011423616081024786278797996731170946044884059863251369017841462598138145355946082708685369512035271369842970816275343026269217567352354855267068325450079961579710883870315255037302604640002312408055868762841895406055310728452118844790767890250234696375315375974043953616989614401571574590131013798267880504852034957659646567104053157980101957692215697691382536592864830752357308350249191438233893245318238947305309440958969485375211999292826458837570013025735306536929186300195189726556862084201153391714134728609615049185705702706014498382031225554469332417433885737066560514869401620265433706161655684565665465270243917553672197904587159231118746910675265885239630187155573200576837378737672283621005590357254430172949573234827356032893876467986657044872969017193359612323758656906298608685863432146370197626371635194963298103295213009070896261965293434127935965980810773115241064891225150506462012557949882211926465565229878003094006064404796080352206992545515373951453379357495052040853309168363593472738682764147475862892185995648324170144668754440138285571368422207497417289091252332628833166127099134207277424118529400393978462941694813885323861833362203937444046941026561475156431037733843378237063337102635524891430772879858122698314793603402611022845106367700938776575055864675474070002797433041588890281071936425348485324080802976494284967792090770200804334227574513349211598438515997055194829512280210535614293151343143778118887103458350301724266458903341902389299271293610924408269835145818551018761127847233567767410835100931500548552696694237092058076040663512651422649717126043941533151906055264246807244478772799659809958878839043952702387703343256363812077131426116093577934845149201035531169500641143954023820023615707359706702721647363968478128587330674020618127787183775715077545742879344905270481805750452595445307761649410542792524659944577672532026172024086340555133122801944800427557331379132621095630562187679575765212550241781720389840847920184482846345776425392067646673916481701273324554611646622495003557820248190037131436991498834049993774231093548276102746790800554859563403205471768219092192946266771823285860671861911438980821879035932017139774124823120568550614481311317978807546586446246668583439266418228825279150505533400937568698701959553812648715920660451131264735235594492850597628285996627607411199771226575224776964172471276461274851810009363936567082978624330462582250897467940565425607617187849204991366377531452079066486659808137981017369108241900616642718228713339328611843444637259764356862731273094890915625511167469649091135713462418934739501453041488201740830562408067863878904513959003294715897776249063299448211695778968457139277024981272482473496227344363721070221089477086360235720809301869826105412134115261162556395185122041210449484050637699835213293456083134409078656174717329017358472764600116967911400146482181646586446576886146658082750237502863026709001280522805726626562404044246061587335860975632913920646070446066169869408996426253354558971380194169736634491089727674557625987954250017293264279753358442850408604899394545422940690470759576230213372625042372201305087214087009438751247608185966497987311569614233567696674063091502483443352315584765618098177972102578044608033840978636713703371551592918056056890536286844519440667281239359754677248373808795826263087926824867146196776940311020866213521651049484427381949998545289437283784303017273156591215057491505453621085514255081993600650023109667884518381088322534216058122775499986538574018459938676143504337881552199928766439753601281788317678578743510807863041443548168727330932623184179987708921882828223386445465552517144312739358441594230990187585131490109074839624764472205005160937082835350047017755225841041557084605372672702017887058530694983667698233994891961258649775875793576663805094627649145917403247243147899442263503965084116192243232450637825463173890459590274719067844439152067121196712709202740390065677949064694221487457173187228084409365944349832519855820993845963759523991565232919738954799505415294219302013025634882821760622184572414842669707666980247381433970503564607250571959202304429461543344544743965829053973287107295440071104002768364067316914794450984957426194603212838282058996952401351322655465766729350520704290040085767688349420718185785524062552806430876952975958670234761548111534104146348378040605093118937201596815682639050164075559728874110481214987039722393352753917335827021829237922119375692995762189792040558259993648316106364644163017531528766439283835402007572418313825440364103028056428032351711470999249719883248021838534037441442595877382229467168377995669738100560878875802508305695656463950392106212890123806603927745441279606414885445818959815328231005928475633170333124934508157778639454935695713100929792705081484315749380001850885049864379514759849820310488194748751422634018499611912747607246037220620419869315871717098379352492380704798379873571352781188517586785633016650871332510176528607925132005397868615570212979536635025798159821981159888653526124912798931567712535688975929486739093910534162991332050638336628946888100700572867448853949362000717232585383155962451155658811701932092014660294349976205663154053143149505878208891168975752424549004817843112510351976424873792866243069195085908880303634481652588783657016598089599416865122109446597984350561566981017272612513160876499572802688903488207640522747865990223283745122292052675276884899324419982445710537427754909595272246167742262544770189546485972943202621375686353678158174870627763568496029922095901516558896286046903407475428713425668530532974671781504292240687801245541398660927486333644141247375072417339187381796172903052245802679107233671515396747475496621136356908574206450205014531309025102599158043239340959659545974315124013195342114050117497015340962572804799683386942404332528367241286404364662817355106264876126604458722291568999765592413806212695456390185977995380468917168684881089771700053165773683893996056809900673444177222164705417932910277281257437310734703643236222754724551917501467408911616553096312402807046320012638427292795147715993471890704278943759024147353526160471898490568143384285265336377877370566010290081113098533989089373280104403126610890308383484787519182494222450046719434297148962605012334081734599869580691862691788854378284144946954678250662461541886353641633753990444165129098097958643038528020313683854395866731081870942390651747213006017804443508919240553504847382295479264961822157695465867890272526790663121256890414155795741374436760758556714585258517646077554506100670193410138958601324175270794687056483182403173022776252993976705400682352131431324943860612662437128066551696751523067072455153272473358189515289879554737086194759002553114396022349575157244011187908252107257199972803183584776180623735888858018345438191658627908680632933013312517655866794855044534374160741658418858561537227584953427280486919876081578986199269803330841712145521206010007657498537373377571942888158500124630763058652591132496142015669352070752308503813235561089555861021435163747246645411032348734159768663973424284349195469874233502929640354124447056338325126625935129223776571427761811099110014201707231859839680136711723611523697682738516165511030664364599127671229566445497270167983990773847132574855572576452091530217684496872868920909936783482062478838943103100934877663891091270293838623646823633148434783456444711722649819953264362565631635564000047707058864323795442921880717358759797512982694426564133105325735299112393666160627461660228424798759045158733807884976946548511174849863776594679247936647113706434843923423622058174322321770079495602070776842629220079804115060099302180456936490164223245962852819476870141298215020100761869547913580344949223369036639426748023402902116954071199807877547141055026225372629202528889615011343989390199730675881497430217981429811266944899467515159730037064951101603272080574673050019695806253358129910379792546374709483552221782392912132050575492784677461397003778154831096727449421133055788863483595200586219565822266519067663092850035074946985295633038811448711041183312029999758768791304494287386737658166835090809268179123731008785244396514450774751556497215002865191940761879810606219156951013044911307340264977076108909305336070034553173440274060579835997339079003388130500308722155002449440691697356619390500235367051167652044964594775413618696768291793576005312986077158582318669591846678802173716770278362726991208343773220040726289430225545692198020760743929269434989756016712804762582741227350503785461604378672681179182201474320826874185619653540352488083443722415030120448102772018805020037338841293378237045949905952466496049906783777492463173727046065742117726894397280227700604926706331791361691726817011248581558604571086450038277491122198034765952156190254408692965879640359140090992984504107148505106530076749624959704453219700737196579267418178437547829575840047581247973021124471078878912274288838254370011474613086219823384203561640939434351169228505617612993003863673765366022506723158004667413526025450106296105845770295710962199862188147498721586689490100771894471831120651329255447207073896898088839227430618573164527419431467518057724679061576887556706299612757013878869659808065135574409765029877223408755892130901820406463676832295882829209609474685759541076967080726089061417594997124436014221716216434578542786556518216752902507038171631479361902618222050381930869103411955376262062897554245402772376994844181908173366858990819695706930427960105446124062460441017145653725396772109362387280121006534243697633766021035455010403482845636040564394960261348331030825656960476008083845041385665322105153010545142020709148421386543381659588174276062323838698966469457888578880047526873626898218417461005282803658552500580915674386666982988781187341838899967718953171318642615028818849057907366791382041193909362164233891068329120429666436518664473908772783132958718477008624957622223283822520563138683948345327415591484251997637683985279244495112417174228619649382266329230207010517887275797832948313401171176427124105902655491014538100869207542634004806735156837856729972066049182932436730302622472113013311214583400136652436385890749759299663430884714496568168974937291787817170217634950675418375557985263899097356389214891557408874854189318975067188896429479484012981916361355983959101596390038128565386917558359296927681413287992877172690081139272258012934310398547044147826780208435729679610792938698950066867175453232019174984958969918060946690869521005127332005777800818260082677033624818245726242762277466358835875376860113354029894669450639431894594816859443389153289934681321426978711825377364034082269815498012505075363471807777803201539018290983166010973960214045954214154010317095481964159125390557313452732632211397106226116844942757041035748041976792502738208803564646425618651054616278348279286052353949440694620189801348438954128481073558214416359899888942151327952147458299230235423701759981243470454740175816473540824798048027439531153291802010930093556399199072145202388951920744563654007208782121517321510525780172339053185407082185225876530332028342342898012737759180979562868963850809881185247856677118334470757596039668624693757488866222516018612507160441240054083792255295073785678588474253335174648674135243394981144673143714346105031258873354489453639849479964766671493710382528581240235460762010041593806351635684743835393369484961256954382413268319207890219504727013902621195781865331712402948896421075038301654135291692759067666110432835955099741372657070759323833608800567943891593089637593831224274331765081657025927338506127285330675920021255511328127639148698060549511095029047654946267104492150229286079414142273068499812030367895669514173107449881679724530157646980204428832128975416419252078021603741829703253005153266898520564777196026545893413113443904013245500117671983019910292462312448202525287031889212039383750912687349301604332841796522983222797649094604788099585164228962593227197011113367737637527443451410938625287135458693252743162212929031495332609168442280709448655086321571823226035300574175533943683821959600341582442333836766445746574290102432358188219315174219111649794408124400716705326802082532560265760761655828160585625578449842716087095827823430351791253273881595978096106522038958117120245440716390408210101928617537276408468066106830791209420068335630286175180704911789736059913743574289025546068688028125957772387196598366515921738248251115064566949727225621102289972785344066663118534873854985114110382922725593320166372081526181875187664312423617858744796572347422245337876336897308444239289887693562007797763061883145573628614724509460098919801374806181756604403703637431630560795685210379694705767862197354817414533059335005378780039299126032296205484212948750341629521773551187027166191187312561115745994553350508701074156917674021665028488066338785422275261662118336944301885099778851667342960206653436171870948479791636851056184607508456316945156604593151533811919731227782162034846060040365442749854386805113566401881368537221212377502315269554910630217327607825792144921064483017239537302625076909933340343088038526300584256284393057932916070981354218302841264690496842508332569560102027611314976428321793032453194117662319803201499168223171893295030203714608992122594053185159023977154448814458268834969822238053448059370278294735612452273360772486776186818105775624261798123132310264494833954781097292450743777215272764628690498695803013032588831008281327290371467460149230352147915159345297416288855119748735335236462613586908194649974879178204211482215534644346061119772890190713002748898784762886580103864963388020411848227434122797125206685299850810561236129119763837100382857983946780081705883667495373376594220673125220380759366587255337841160652031791014549018086183709017078956496032795507630146337244769487239400256525431037312717397588271238198558751301212961866192496379375241408313799992861839900031825838231592330472316788256108479225325994493454903668968876710009122029311972023552475433169351368545915366488664121234454293683824360217856974423227526938352482829770368356988745774309376502267088390647621820355139779329265454328138988393750940867288830348895916370376529912722923750918861084239141631636915968786413438467722777888124266745403725924401861838225268581781622203410122219784736674897660056812221971216005273134071111032002910721519803037946213239240160337356911471957401353243269992282399772114658975539306446959637992399411347451624759155007584337912072651458179636167981416553284538790584323499880783259410255091808530252534280031973604521990785670831000583970129400757041545082516116246762564772408816902398395223749263107580938352050804876747675381116664739768773482004563877354243354200211720448055260973094767214417954441520043439204500666706249932078433683420646900584968631552369001552471248438755735066129630567129371372874763252674947330359051148546675908275954964700380494306435863331350493625728210496351702073428048030932102929558680861906319732555917967388502672651384157867218794811705659448704002680610539140374062816975417831566196771256440462976749585045855605746712966638904045197631856685714572643926817146861149672076907922226819251441993401506826843283117750893790423150195528881097666877183514873294601708287730574489196850690182712240027083068319943964275090588924089266686309795040294515587499382601665152131789889202714671195083292075846702364656063995388308543004793814894834142610843002775139324322836210666573225008352884139798293949899326715462399123851499191685159397969264925465961070994586157877992247558579399271541446875306098752537923697230235043870057812011369281130090942970841810944849992025960512987311114168231431652251934136748898003908662844716364394418503922283637104855678392169868749236250242153667619726467558917498372765016284167593045253571246026639873350776098877079835882818418540204365238632908378768529743810747839389521334000395876576531697154688135126807712102661555866751345737199147505707287591568138615788230532519002615208694552286927067554943368084099741034902558223141651384931660281362449765271775974795600882225424859231705833825926176073856940438672812069573137818264678302568621631861080971984924708071919357092838711353921750907858097732997013596665839198052279706661023313759769491026620814917625410812166664874611670157316485550639317293164345378459643473708842051094013869817607084139972006165387985584786941811512780950682496352914232063927379485999280152118102470826325668745629769599843447299525599442126521518264204890909606993731482689533714765133067706296535431353085308069222638055872967138333607561103989229712696798084898842491665745852267325270134667122288629384405096673186821530565067705363751356145590258985902889478411903930932703347980895111997462712628022992831197535500518124715606678395446172118241384076244448200462411835391794825731580063118634280615735856495938329585479629012537638122565428363605212088783673453639808325371955142824829347336029417403916273385923620529368550710711082016621495938861585063133273187137343771786369102779731837173454213127311768205942548809688754321929875399744831928443107247116217786691375954233067015951197027377088321950961286449470205534814641025812917247982362858318085315887361490533968223659866645636861546672394907529268642886207969689795460908319769653186740168518668658310842060154722057148325519466362734148694658007214942543373244300023358150030917545467628856441743861753024919319645137541274563766587474062136130959804955354920821058646975466159317717323262894041947326458991937346957404760198998897506456428972334649315405688639301238614058330115816595575102142016172309419689999465304762667740405454904485665834459291138714332843149286633456087475951191976432607343296839942182744054934577958537932597284328365548654907066957129791836294977367294654015369894950334246664705374173473893811180507707883208286756646167731691583381510498842900389027292309816996282361584973317454784777015623924421453191880842038184407738056460298906694936395498227541124231946896903972597831107910667694761346436315700561504306680969520084809249592637327388459790234733159921396124809422271227329468850576034902446483116627690274043631580532966835113231756391877641975342925320725029853345685225044538875054542118688768113977614220807952530716557614062251763674300773967494203405361403943692539014169286783764347986205314489440171248920060764454214012963725249084262461533913619595358849913258856117791573993005437563898282657671526166485694511935385450964274003523871772921497708165969361327920883551476555418488225438440554420130483938973008548605940792528493229436241277128184288087977283582549527692790518406920251729474262863436722991180181840572146335818010386847542488343588576853595080051271509641946456291611447686934524874025082307674664653427374439531643189843082435514067309366731149364305571142228681363298820758712297961977278763962975082274752188630272317770422280625671714840022388588930063192118934590458649475881350859565196177364779814962382751264203111817131715708587293421792594132945797556545429578543053000038579885052786854013821802401393333386378190384366211443480239483599372383795632273029909337293571807452293669122876457719527167840516081616616388200057443477342912229003891872450683258532471612271507626097300548077011932459423215976956452141818418225146436408467263025258017035439552054156893758143002234823917858172112043843471371332261278690559921569818921777528820014583143416424090024605174716049569819158184206811435818388947689263017537372062888203114840258755689599032118088611176178931821553474726664133542995455448203938716977222454683848978890901883532499686764614715227065570975374199869581977361628366213079382951316039075161939817966171608402817776545059842795647773879736033651328339751230162149582056521266691802661514255998892976344602809288388381148836290241812299961061643742563317674827896250283978089892764485440663671585262368495459721689667455091495348267745719794438418636605154861879643895464494799688063842178040558327273149467836913406933696705893636905210399628455087711916878453183830797110080632699191800622448357363357755090600585835880726952721027425289425337040782390679041891765418206237741332285621247124952427224228557354438117114615182759927320307197610423252592618715113939110884190503895810492450393795020749648753753239276855340028470272611488634131297770231253668423661170526244015813915837597312593141835494483976011774043879635277438996197339893581038112671323956381646905563617672219736099139565555403741999491566547825091239574548311329606461169892080542775908607937520673032749792944095228511456501204668232455848370453387233398021290408553131302181762251568234114661115970490182966599451231348614704992143167241660221558028986909396853995519170104982601786568954700399168555971160688832027708368230448030623812964997355564221720474878170060459539874540771362419819732715014028498261229923795932090665403655561835788498902116042965112830537907020362151431336010827749942522844523847489330371329031611307397626108345370906739337348799004304215831642222279725562040444280370156108946852569314185353425857425069022938816397089732313743524915261399786659535570880830218243568457713826029826644739044479417537190226865932286550123434634114388144028223827832567289849207114097404298542715550848267684044549222112110083258079242549998086349336675638290437059252643089787959846743857297044270762585143691076005733739855250065412013584934299091616190219026672995080601204111732658161128224097301293809381111441159806140966942629169855173430903203248623175678915878739198564532461162974950251011231403239194469123038076719889529968595295050431354888150579041932008524112339308070078212013440115466869204666217512555142742980986856459451910957107321817407197195703303031948005643382023665937368282132596331498377256968276395223039703625632334124192645215716802755901319938159529498851644842433331915566490887572304285344151606401740997195109921546437185407173961199079346626200855310365828369393139489927661900863407174580356391421993734660099390352735028534798081721845699322535747250312575231496430765915141326522909613017323215514088647198256874630791114958961962603047253861196682951263770855857645534824799178901627496961289507264363017343125426046016675837298172247496836795740676653679819582793103453182982362541960763973854018797280806840722414792915240094186507146571831759390056585082631723198279228898866843067545561757476354831317639703477760839404342246636687030355590527919502626739027416173891528150007050130646525763869445564149371656642947600487851041023257428111063299818685506631122370226710725243650535104083823777611309796998328749947476054164656693802362604090751807312196006328909018797349055519760647782356296379973591648605499158132687507285885983881842966417022014303784162838229601832148138033596187459130597050533145602007491303781387621736269401013168247418021070152340446688258461353358384379000863193706213542605161615081921118654179505382270468231634116678124104273709802318059276338557385033036190031680988458299188141099524778175620821307679253334583776452751590091418121070419807114299837550091177097258052391005982778146938040259530542473420324074291249905251266220992554087855653647385674260109686478035842873836147565924714005944572520863806787313765397934783867360146874707894044580005542966629480278269895532203998947093915228450370313511200720637551967971319547435917020455219142177408844274892642421806145403296745985423478616301813667622290063138884963717002769074827412063859840718187558643926195320599140930078455411973463084281900430964694991832332802886458096961760457241427800489756291573560250872225859505974292470835000604259427317949661766321820369517001995576759874050593221583369758021598843597868131925454813571820693449432088764017555874159952648028097365733586544286980524689088602952634053441440626551776709695905819782608211562873527054148844998801255683846425628570660756666527624242525678635104967561851671159641486290979869621102084104655183151677857167708820217582333623453591008163691370556016542934914087613108560549797780008108943032085010793814785498578191562955782927560096981625032740126007288534255110877627412147879127601349683520872821776737108773418299512620374113903744598880941162906816411263499008063110899270859607179605767550199471277613080720461478070872847343751196915184986957818033231232043874608580479433188748032198112267825072294327565766582183969595544334182560598389177456260628082274716002313935439011548549384189120388802687291014037756108112698869939396643141046915255022672367756419587036977196938228691588030259014947802299500352145395117174142099808013016116792245248233222561200367100902845489352397357867987142157944276422503154533069274526822059604376273904603241862271000069600059532027984432091755631558133216071707702532987898777090816930977080064982900443495026511900915010168487578443175974332872898773527221317967361826927986663672971331737663699673665324311672330770810628611796387742426047550175723873644077073014014973989298087060489778870911264514216913414242471382839097479297527528575849298754726174419301990524132282276758739319682461088393822335903048400088874659373106717222010879251570202554044743139876149658083732080473683600557563669163010757081375093614342574461063638913174996719781184046688979416288796074009454807409183481357525875770718052862881122783234181049189697549300530878721737844038525933061399227536305353877613735204425818340245263752544408249501021355559223162953154947112849365343310491774249553657900387429892677905152109333573215066273272163453812900851534805789779339312641867585262098557677863833757014050949088111189214830275712969027768187414987253205332588710974959394098538141609055043177892431479651259464020702526562482277182046222925231300368286800154737182632321116293422500029979867911485338331046692422126411248248395872006486312783702253679584278022844096221664021946364755466646870064047203331462873711081559438336843319820089256200271201205125272013440844547556610439078252603251800309875454263404166605764008211277731128900837954350511709966008329253512616670786362431200999386180649925308391301458032163407787380214282802979908641583911448645462114890113745446054538045688866221223223273598692274645313768240079635013060721909512226230181493574335938532503962194566053944637242119709151741908274832601000185869851893021226788573644046827018893888683374459915202076135255652611292780669794770470826493882371768651430547340474166163398143704523514636770962615984527283746851301505718923938669925883012160923491969682462608738814814441301392657425184848709614135197423567123642727641451458084593907590628034687959297344178346644186940177959617687528420150549118328509118035185053333640366735078111016133934945400241632840689844050441079377362985208324944532322210510290689353044246847025815573980100767138989575890955308742832392844420939127041653409262990040052850716300151003183209948075788853964173258298201489751169738030660450281642186759774629085788901838003472911466864948162593635765909167604265147419917564407114084366773883346526983251461008452122573880683527287975537899489626573452296883647269055358685003209623448063312294224602421086866006399137446897647964514665126267207934028811683408839161078712527052012418681213907893263988921228600562593794864523116448777610162580207790563682382513170527546194253628337201110402342789439928392757179830153405409778246880852434430469878406111724893754414079205590557404532881440848512244791438541031565265520268332730351985206369833256452421875053775281366052499919502379993917669745751352478903222648823325033678074838690138306226562073547200812166738073791508696371827469584977924014036182864219185688408165784234486382894057659409760649011104328354646421132573119635472764141419292341871764978399308165375697096534524194944293654084004992335558675492466485883295330483366588121201762883489133531371140273767592025546002163216202787472335353434645590933591690556587780670150632882337791143452096349764264927459618304264112209971006245871741681867358536620643764735400465370087267612471769747385900111634497063642391530585645373590501516970814859022388069000015301488758280612032459366010294647174156933238181750674258591197555591525536775441024933825443828938628371680457584720523243343377131691122916509440693276823100465663095866931505069371695123010646704284207174608245509697835481515988075194849203263088987932440790785719953531989619788432032833893095523108680430575862669989401877759855445325246915909040454716430098695870899434886365752330115956999967480408797610279108887375050536459348826047484341986578203427355010311707606536441827580152448116489699150912777903459902791471292215115396712121661574335670381155176504091854752812682301786602723597095900726219315393880875917657740428223078638586953684546805114126977451504821855510862901241299887086014160929279624714519917053534530892336780461216561259739680919915229960039959985568117835607500950017460788941265229741325077071512519565157420742849805438939137610722773529970395765641842115228940911047003816043982486185975896006432679984388867170135954622001435924599736137885876460703977415970472862847408463580273133773771792740318219819788946939129070537356798935442792334293408828884851989666857570789058573913161395622002267861265208719350302582857133173783561271392200095096290767755960261892888612141345734504283800457120229601384696894325305082546040271328032632553398542736558586497418576372988798982136539670528722636101246121517453491968359546787708921089004719523212718178642700561425290667801768195618633974055983761922628870272889540028680552036071745660191331948084247297822089957052666848613683769023179282290661441096336802689150446199103931611682604299111284837464986856460450699899182017537598450108476396914848918344273691090521508778611523768801444207055452676508762888984195784899635441227326196171529554908692682749979378902486123335457599562201013644059039454782514381795475886854916389187330446415701785946369887240928299080135364077936798214629123546262849657670045249253908006164867758025141632644432765906247824234087321204200733756145479405005137387836378471483642830247497495903998169144500556793351733614838331024852760317066780343827949654920769584084287491027070971981869558830305192398364020448673062741496503901243838978450109866269311309701281584893684954833893590731777444379890172478253530336759186157593926174034822424356433333786997098810685905973676353100514495979415090770581736737919567157569818823898245667226030111049317130432047397689892495731068087410419281486720813473024727901340197810139996821216744126795739131189669069660450125824373962806208775039182636880234365833909643531345544141871552694918216085187226083970429652119150646474249576488386435633109500813650449041865089166826647466296960957107901899522406118118251619652089171475420080740690911427589679974881694470893911692906226156926138418190249280330393581597647337114870505379286221066544127592193787985178549737515132042455624625300019552140489148960540535760621123919064006225852845045544707234127058516476903564397160801044620995046695837710254754830930670172866733120672475951592005445242829078691562742751895777488977158374100104279762477439000372844233078995863456176943049523543895665314320679022708644397736695495704015247730414717498197649822671454766149855266683518412163062947517498854312061917088357381992819963300196431210104411334962612785135909693379718407060144740043461275904584116054877033471811209996678765155097349419563019868790884835963658981227967601349345082393148187256800128655651721947140955115948227567447623986831154937089315896601859794760048421644336733804111194915504049850520821829919906442901220297716454773053900028673680978863094212053705623834951808202182313291608228810404021856549928355308254066758921833385373672334452927328423787145487375875665656920784243485472116151473214643226437678103307205602132838290031110448088272670702940825124121136855898953413133619935139863639146682469147262317636224305152333048898517492730364605866181737644290105958089110480546865357538594671765607308736663367343273449947928067318813222844089803983697137991004661408579586752718635417106935921819511881157498538430414593177116970330677295478489486816142189589664957786181688608560280423097574250397290928883375490705901076557551715060615694438895833214684394010521058674820807936189510416655481679249431678157468583457913865263592607624743011799705674489658274977508248260875881894546865755263953573975409860740960522947552362082290005674247050286242974827912814307826338055614243301862323463425212034406908405309128600606439820231624090971460754421706252018570681174287735487826272016770565894304490197830680942424009664263018521395525749824361597719802362927963316740943670362858365341756332956550924023655257517313971132620737755274332269679725630050176356390956808197579295243269817353600841882138656642317195453353270171652318099817912516608868671305891665698626382951564593914135168646888283228172344088925378420015040946102958250473883906704827478827730221624826877465787885274620342966045992408002992349642893052460379820475614479180266758477015120233606397933013971033394801235799230335812353887833765776631958215694781572295751604419871235527585598607064244569051078736058404217555390107473150993615330043784603960141599869916715885686806987807160384194008644196361865130578612417879091755866556718058625962599068761248496283712755206790466821519053600122933515529751098880998356394977206616563509243899872252190653148808641093642497366896976925022990270840365913124820745612981528666234341410338454775071779129568878444009010818775456497230901022807860134746101263091046969717054812330494973573771602169601226244214098577926202327956470346001058716146996390297804714920363314484825407136272748652754739426528327093591881099590369794572617201942379161484304299969759301199338228562034574895891337829339983157087886779448896852167886675342392659897320564954440079065862229871118426396830100792788682126766953464007640785870019008142307632226538188640562808295606746421255848526533805663968656753925056055254000905044711515401323311364202488298572783444345640829670499666864453704842726227544807955318479179329566077125266544377166957150430177226680452550526217155173606289625737158888087696628283275156778194474974032580624529953743992006754751280833024805597615919433916179262736139222616042583211621026875186309055040561879410616438250486245939121127314251466940790190764799491751884909435140903623478128644636348430217592466729006564187747587427408420486415827913917985322317700736910314182088164875489774926769294293917933675435577286559196579246096745482652892568523170571996125548971106220904480774860965472700992892634824078961772283182628062459021062634446817346209791249462090114518112296714558175183002844640620304860234444587698953796263465649231077391827045690962854990298115638584875798420307512821821197448895375119299925122049181686475288430157666346788663545725549437926311311580026474155088411125068995424812936308249569403989829802060175810556816260466379038123685072979236543484063969846182934362892233054461821699823427386368226765104931630641288756059388727580610135363256183356403370760748083214704421320647865550938893868062047388268422930859526715304138558991412903686933069109881256979564360765379019048421202527030674128197342469717766533716970862528100178740533496487397298202820971796107007473322824073892238518692001244538813870165730197923180862378468907501692106722506144928242078586147580719617445730518694822273952249659123622473067491571678825279855934022333864830035797082332899630866309935066432179036565309717082654989045622056529825326387347978455845686019117289481664141259059503656699076767588857858583225994996516898302496779783055626225613824147894699169978278389923527640463597058270042436936858544295170728655172221937557688727482271139243734389835657069504694603887239647671678528554121355947209158621339230947035529096007877837548183476448990920554243874980814695875380716878452350378180664438607982412689119339010009152105997380639213829968913018767440907683338119253170144504132004043224183595409471130654860018484152401085515197903931296498848862599825069975411305310045667066090118259056722351221404711875646035162666532995195443765585522110713069390450185780582449205123188940866852210178164571245098569763096416491277207780090784251894386305154087072788782340100362138587280110052018663462665849425000983546874010465612993436051420955688532039774957791926376778339598957236356540724553870396230126527330537096033781289924354454741958691007374334767900969771755928073412370840421848339985149072812105872119592761154709612978853418503782796079367266316115159231784173586196610223586294256530354323274693885255478055181605367732139196943833490843659752607553451733306683141976149060273277391507064987621044573290573593963293456773638543911888149689385979011888129431268319191347835215854152164765654652548058598985243372123769213126539027031191366481148183803894619338236424006150422416005984251603326907483655295807541834619875723217559180727616737250944286247265449955962675425728187200990299907623612477756077904392115447385920194559488322100223370646667153990198349236660360992375904240785317498734816359817986265110517469118263161737044196410884088650443109794051710043626936911601110965957864974281193611579715994100256375998869866695023471877966777603414444280209618610426847789957723397502074790428223610665646416506875911157150602714902372375435935431301630172766518105455799059240452818968391978592832729142392122907329269808046985340385037487369249059822579593653228602861549591202686984708486098323242732394386411103467786060894035334859893162565680471060456225826159692687100746066042245528519205916330618647884138872779493243016850559682292175969368407004306542510266576535482203253090004308285382766565854939505732565781821895200058995322233404761672888495383865265938408220078734837693229285531488924802104826794730126087761317459917982499088891589303276705980145130301443695070550030750466041329280830096018067484676283693890690122271937090917801656934850136179579923090248173407136060938526785744819065349678136760003115943506084264403495130364874702104079281663471961087497190009877259912026038643128877082708164457111759767798497335769856557076386889949517534732404440675469071459030662482609186153935540010067787779903118397017357993476264202954319543748688963455660916238158939727799190252140947675558119192795640909116508449479487551137709165892097537647745777130472779010247328343483386334879940893401949008911853012346104981719922132765806628590999945131743440052455520272491379491180221861627442357495451705783434611301880989702883033375721956744909217796412777503404905193371394328142806489447383568476579547836235583291222365398725397931998166206075224608855282917371682987589552997083772981446911235715311414651335786908874083661353840272003596449939074585071443948060322482810243487304012479477056978753853619056521304531866289406776937803157255354573988423928564265218020677263899789662134863326730668057120790342105096595580036152727406823015851854188991631300328502672090297017375598177808327356111086627568541262489937035877024190138290489450622263885237799262322713250229309954557633454322959171576141353015781989513130368159727556746648745508742426858687927332105615630190126048260261531051692692786572684530454729240082213905070753990402645598014948368261942005464550701288734426452106251850608452832456341183764965344366344974839570614820566678168372861682478889769119143248091620533683103458991764788286620389776583431362617355043754793988872282940623271010205627480989605890915555798233062320793585752793956704681744618636096697791618003666931966190586898626052965206371162504331274902892177144755867829983942533979912783076742018123906878751863717115483681351646677143834086124829278700431416256567347329078463185052474910772983466228969875787600290463923032459270527151932229297236728248517656619177498523268448176417138736435968812941579482984201897388820840357026584113389153871662013009982094063767685810047479629436399785734024864059305444127509072524103866849560333315715064259973277190199685935831354944156336164479766950047014784151160432627432718170815807265585779693308019669126710877238223557858491898391522570970048038474637724021160795375826007792891221884330927767667209674398647558548388459705334704138612642187315730017490427987499249746216415616583702930487185560065005709218376537483801142395995294965773269317332513617351535749917624360182148897405107999744363037460416733453194678908747823421316491452384943947637635976603163386787941740077736759403475549535832546394392556698705594497720348263290501389186575909943506971497045485042244954153332570621016087854016830105852350733641821514642168877032817078800885774618305209238236768496376597313119274927128069210845405132153914542785734435027958207493467196999928070921459856775767133398419242904509200429629394631656457742586637345199596568193385777592942868448795499626336881077219437714850015080815295605789762301464738863918742511255845973653656534377376660521348384499425520443674708819194069230517945834296159440475541503009740229743336749596716776533804430611531050905131985068444722841291908840978578132725330357282324203225975452597297650894610782008545140352719528481829525617154707580082998608431060300305824353589517230543265916636378792324885513312367084330313168107336526386003781180860480715423487118637928982884407932584474564340408034257698775031485516039119008326041732208076082540573096819823572497223191966255349080350720681831568558904942806407982777220390815080964705527407175606083759264607205549533640142542638525065502137261600482200205512545146900675225258569627991012519728981523441785298125205326234432965029513547175386939560430721706665562996040246211641481145363515707100497391185326264790266969477043219690736175094078415843344757315528810570938457285931378180910033682978538474744944592348090605725166886789702034390848729871192817830016155809345065013562565090025342282236031902448921111213162786773206205930781637483831053999277803090325545061757865685058986414416994939727140534821582665918336885737687957479304830589345039294092609891389219388634167490935657996690506272818812390526389369394515964610759532381409673469704474373202514974600211842498569873478705932146233486113381269725104266010147076272807733062231731965006963872514568717027410236420678744976342700339733677110631732789972004938135267457001183266286069231999992189424303285736179348069976888124801320527161952503890445125650882184629712008134813925864460369989191191867420579690662823147287182640562169785611647711781482249954216719184496458604389154130822061331918910111702963612478188163159592933165291000562172743603404791837724970191620888684647510136586204490152042966788752184355700780769128111686663751074983755555840685853619648007939213892286467960727821595824388068083297565931894155615336699280943494343725390226714561836976103235255370454019058027574443832835467027516470219909064651738449129989958140914297414137674544800067921432906764392663916393726465868737603492243910901121096977632424823469028119943068088400596273270177712981846034923929821113552006139493650976581615612410440173215565146462787611039387290419885668694346248011876096508259758975302509981934876030402446697847260059436588353697177039001634679511935445660916938044394241513764094565474783341759095935029013332426576832219823108532370356074338650453048549999960276202814364875029280447259312486817737227529805627941800415443812136602687302179219292813097857714504223867714139759298583040413851691081087455195651157308311235699848920786467082404828019919231312698273888941677584976422915226210490823288979342968721095916502113907746501799563318701007353078401268650441877648583398732982132540929793548553712953818841299568374860223599957022023957183174890675681322114718105134914902510195755196688162690137593437412425909965453168207529196966044462104836877773501836167234037621140976649923988842342073414048456622242877742164215883640051063661540897150975167689424636660329758100004609714133129302264013471889556170335253388505824222470783940415010613539746538855402378319082902971113215149871297654740637932509559875921646708092080682157856608865347727342643734467107081245385933484481874155874409483081775156238575474107363579819080272220469138524264660644250901834564735039427603240034299709593641208439216604378700118582955815370187111962908533430033407253292545062567135038241037971992704501365933332768375375369859321195066376852947956019787433915944411499034411398569381567406456387445770843091812610481711314780953108484423073363596915142318055504719613965963981451769442090416498634566771598193906475524313814421741887495148307908736236146991963339655812460085278691416276090013530663074719760218348513938209018849451245942654568011462005385204437277880285018404044635045705304242907980250186531045222798965727487234230492513099269043398769869048885538144746087587380101169170525335711314929075866116063844748221349167863645880198801077791154031989550733208791165411769018369225084549213308173796932660651970518547647699270245461871040638350272127270233100898533217902869757766319685623432104711701583535022118185596498015950205077901123793111450649255637578310496232925513411174555264717378678665764109064759510576026859928559803773475750088874538972902751179983075543637082284277646877899541720424395732611122910673576454726123945057775165722754711235653318481661337391297588905545083910090261913875409814860012063202647246228822013882654977665645493627377992745094676121358426775025747790627691696346584662404646766486832307364400313928713079312777827661244480260456677871812382565709518295471258103135542615803691102754855939178276191566817421062512186893487664549526661546511870269269955416202721872990809532023480040757413093611836520890059618099200683719797802724000875192668796068210823071496284931258941567007247238335510089371461092385470418222655970186521838397142753843968509365437193900602279829521693929423076890467882409447765920998735494350483243803463374777697278986270597899589104787786187859515973836785215062864490031277411708005712448196913705890737219061905061805895465312172519840597691807398696023722504226505979140242479246230778806893233567496098162799949007371672386103408424195864645202745516596604294061617553536914255591801913196654596620658248673967394887488085753191973022887430007808966112537333824357756369300326107780392879551684030524576321340892098550960884552479768255958936208495756525608032934946966084309457565975032066482744669625729535401289048880116580716451976187750136544401589417572764940450541090681290325708672886965787673687221304484005390812857362837519356254560872642176889805213628935073052177743256214248863983075713283882091305159654716707616895551207689746019944596494501717854966343199647493417283679424238356622136071116773148888330016846334353645470843533995787480998767434792270340890907602928016783607598765780594405147357358452066356956175619735440485215060087494478612385964494201885823891642314686066802392068191145159892930766220594935795777847593942200373707877187818651248995031804156046838558859648547463372495151269837350688657231367173118588037868478518987144135675048396412507133580139659208802802385488611373648243473371719874884332423276242065299896410880488069543068409016885708498660400518321728096425790204336648617436318315646078224204440017646305756339044043837674221207238511926676581974483596150824963814572995157861136397556434673595105989496332736757243434236450921053994833577694776678834900499894336646949405647218410081485889665139445980547398908031538835953024573086239905342164438905797011282664112242410996948047833805548447926129668945826893612881356803273932045023095803352482600766982446978509087728390117819514801319538601193024605543982364583593734649256368929567890967552249732894812254499733901923760851841762019175294606786745877406554278394517309618155499754847073141152658842740678793032637308164582410659234571722548933888864544041989189379657283466959711087757877046650430796640786572862244254126164554789630303373958513931405273839015522313194522985272815363597073094250806728390912635748620492663604579706281544671440938533847566216339048759589684569920849316074327074033169765452886336872635022390086161179481058651104591692795429605598844733066944237667966227172717760322332054346934194552475063141083722232936053655196025776120148490618395327400771730162277822300492993155052639265325435338935321038226112359990018924254859464966701568608644209618430356086571397519891838856099336446965182176840725042376345555234042905768811866168510753940189625506005019424908830027818987504138188079059500595550141815981652300244394182582421450184703066744810927856575356936943535011900673622748770692649815120607731585325171745388488274338658989475043732293334925011972176969859359862913956927845400442074757852911582868302760600145604921514388203902289900596833110767163289340988107512824916125271696914961737023183179861343571024422084913562333160583965887998453512261390389332480996276514237581668709050882436561884172358134465040861922829984551216594461502829217124400946885496798060918242532603646792554017449354276095104313391338414740941319095021145781590932477368504011770253297250948012930093472284236628354805342754975742215689751269687054300919625034007981339261706297615046393066218986683983017437707924880435719611619703751749043006040415370863266998015945494800221916600245783017734226136614816280343448063349950635729615905341843875836143850024035186131224491081110592210715925751937428620353144342178908996051886733359264627644278618759253420300057442992075421282403579680101635792841013396176743002568390773414538148889926092747533756125736051673445254255555027811436503600467108641194773692838522970011359948138771376253185880061350451893227113475157510813855872460901867647793524484092965700555815755725634114282392790909188833901670879570646789690578267003959868807148481300986435280631895649577973271540002579924840894010518383177003496703363252263935702644876996705374092736532533275154643940928707180784971006606316115184039849378142340162456031387051279259078421068137208720620061516371469448765805031289236118811738931615124132582705291581448958052640115745586693093750973600519879278432245437031432606808188429673433408743211659518115863681613646668169707995797663774371164447475202642499250964805315778757432869778219555489703380036125932760530718196121020050054387973484699149219101947500943891474292296567735650713942787823274747983603555060591527671340659012540603975977690183343499311182540657298981828144631155089754154599082576906793831853031414993185808504137062195937843801134000448869849394960923309855561806757773401054450258047996390316082249267032587987778859183380806600007034526109339521997424694424121340897898489743487216386674166209948682596009478872509138268919656253583224223716329342377969014746589775624743888510237368999900925335557340667677526367224919598210242707836568301949222638331932803278807759395903263604120802728750311051348771519148463511627461082497323341374226856925271967377834235911176197536291268712980892754862870722285384597127554862798970386861874866489844063089338334973185228043455063059358703677704209693368668385162498337945605730774932226742328620098680511731573643214765133849653131248534682980553559070426308509674755948704773183369750450665157298715492434661843606100460309532081930249645856766676685494652890932680640459117185547007990083041914732663928397253920796028667268011833679028736980696752560967033467239277611956841804750006313936263080515959909579664937994538578235364758637955441788732943114998407585463822554198030236044700801863617106170296463276329485092117954652004633909286496807234636804563358440650240757352671677876661690554452713727361284731506865518907226001937069656748991917149775524215973828551435592407467413107443456391214192442379923189377246251289944124123890445237324893437977083809046470519385787026081134666031356964585810206295136730089298121283172063040521852430156696355056564131285484673377735084506085126753662347421651962282596827658481124142190137002311321795920825568727472703249617027491065882111909289204435932242544088949055232169679105346631565443988160736312770756150709559557181622480909601616169182013122783846854570979780481932356315536142955526158171178184078222600263042727794560489428855487924898276486960600957352183417818775363526740478759873672312332337456454289022220867333105053913821650878612110788006340654282557407964172437841569980870124500172756869080253925086387446496959578838647707411284174619855290586210582732895143014199694451750712574993750491381199972751548582292319396549404802917162891526156510319389084003127961468775221952499169532167237820137650653718268278847693914179337675532175076302315060274560210871447080996789322439843022349007800922154543158894722800524752444699750462020800411593525026529709391460323794191894715955256377380287273822442520999676927564956483204833789518268032333641135094152851817866031249395340292637391045325649784707342317599260498013666972029994677346983924763452307685746185318987901919449367013154292284689223805080011833286051385894016084802962676350894228152603692563934870414751793594856198673546135268769539084662840236988146872754168839740009944074187778779510335327957880095507090016656013730717906533394478789008716598928241379893346059099670128338091037493000146850438417699421386084832119155977318438032849889671947776892131546686838522257029913245289722542565424945978329047164632464687687975580547337387887070403529601398293508306046258684204251048549521902558890636025287795902442871933195373533964612778105507765664587848633741362328637054274690518892332484218791123585373755351980094449046940210296582226964884924019992213003959273435393076140529011540232307975465156632082482480026339666040958236539439157489401488122113595620373022440179192466726129166557011124371541909715249239380794435234390686752176828635240357888509823049470168666136162981590792257329453100912821077524036003895813060758722584544584511935935180526942208960907920422446560747895941456026614182822225975822740858405232179133599716267260691742606571778609141660395085771093845704382010391724224104655121326441760760471176612307734160870164779074756315621964566909230581638353611429918658591686721392575202892830561538703291761942905238605269111407169532187370676703946306034461051033236871555624864708327044231050944888880303986735184192972620555036250481249426152324744025396193279657386206418199099646333845675135036149354569942228675970475166366959569946485715977575018893197077985685431577758463234849253637568979488355379336365699779161191316288786479738336736277540500776233082105949118710183528567175826012001661362349100723576803002877581897697303444788923759970180453023597092268561725876363643450634543527122524445120673761954621698798724841558992979037789999199460927206514300636998251460494579841586486381999985900482331074693580514124345784154798474717472234523906930615784322154803469999694956588239740438620104740905925579625566695422228212992466042550623080521033158727721612309880950451201535565585176056329928957364765743202733009564911094700332321677806478701552400012384291931046222782495249483672167787528527135016790484908023677951695417330912899556567095635289084817786295216069594963092061823780981966468296170818235701107770630795925988610945736977423087592893684893509516052879016323560817520753925439122008523948373331042224328323653419931021078367274031313995966786374721351254176415800233889952507590359079943369822217816095903253955119732870900574401743516486725131178631520614164532507204092532901881479459833053812618533044177084812866963133903898020245836374996081096406822761164205785824616277796602184447216192402482118595135358312527996256247786492022112676181427740997614916884490606287331690613840350962688036405115284878949574816533459422431527323235183343810264672966413014841948381639711752636337657222139754868544870075208906167662121729726498473171476816562539986389547676104218788317660770298763156713045389150740579050520925402023530724997775224680462602016206487362652692182147612479744946510195485204573406534225679203327083058236098965941763619354242365064201627179459023534830617869565761978242122331353982030435196108481436141685022486191545171069717913656741474895471002975077680693742162168957673404902788450570142154714715301581131035593340373096614195067824848881643511883409142390707621708690640202951716980061053845513837509542983472628730072207987496263361612697245063116668283765159284995283371742254722938571945698435516506702803032510012955132480077059070581733983937859871960929992664385267145412866530538062869947508658430229611255836870127858586192071774580569166938122678255420599561485455539704216812308940512127902922447627941887443860703502748403117563532087684638451516672737142112789690034900645320243644865006276461222257814823566163356838310126896468343714733228763964762919042194892821880408308157386237117085406702693478069724109364313684684767320036993232600481007565025859209819276323947122989376241006013961764647886606141283378533841568419041843883976687807408525051475529144007716573241478152152385405331503782532639070794514259899567435617696492970815913943652933397258012780217700632381279239822727127666047362695241765132910067221237789835020715049537257998042130834563860881182177726951627996643577907815214567125689870515731304478808157327737220012131549733626351434743121291825445824564688206746007839682032853535519715713397471104949955866185682202280405710020593442212249154437691658596607662171549747291380684041039364229121947847652043152218145966830398956674202633310879602017875615624470315806482906814413630308739425904530986352975342533070407422430275492034655724950631418485778489654753424904901962527551285143029069348989300452768919843811144394283059408867456174187312875928571704435379666913568273677304839641841641661480853546928003043514020449978335286503348820518623843831777216023348290472827027833418440855579238054747740159289173488886946181961399667191176404799740522656695960002511389432488368205500933760511206175194952612411408995803772479081892302537527332229720119664940307200544572021676079668175170759284367933089081004701867443137411550775221463132542134306399083274762743822372411048189594248927400664156285893739465697785449940712272172003544463841286275725721617988655903759103121180833318827742478516669503737201112117456015891976786633711882207999099687046768219491808264633628801058300114023850096206631770930465244707153693271489142238952361814711825015695927098425102966474449890957524685440794748978025273257606537584470173268265528265219592854200667527997257419018303229268053689340656334569244062497810303262045315186874008012176247603389349673755573579650046441878602361978724606401885013714502346658766357756296830607203793983897001141641530643754657623357372484514947361998723156022420587941534947455704940273375206572385363350213896223360162989469973506462182083213709217071214303186897173535586051835504654233577946174466624422759580540681624265845103791387687683076284510522722560581383654700483765979597478013749933539888799952604793296627745006664621143990712062354898556976944161859476731533752332839504823172353644672539029516628030059883049444933927597409176297945981811984969159559671465071229271163562893743916535946388674561814106528873580238939547723673222340649847506563606282802739924036902696339096340049169989456966395418825778622533164036521296172620123654334818079654149253123289025589270417360347733999214644862810510642426863133681797784938731082377835230096077062439031820021036675424531471947545329349776621101040894107900009007196958879647856281470510663623997186072674051458118172202274532102535273672865409985454519132323873226960681904111113764056121020030054642109505954125076678384298471504650557664005496095755971822316079836519971966122614085117663560740085415081357831291311645714142087230845080122866381663708872263953304492256088833311821021723181340005680552420124014351772460861070976120557273930445539115729596502493260537410993350998982172381248018837675786051560499667039120108246934106435127882456595798110559339419736693508745293575270158281569022435800980799362123152813765763997709884333622755220448005436442023842624601913415262652746736291985974456105814325095813871902316526758020006458838845398887069917911557627874246701169095523039867362920661642319377961077815120430189312479433273305665720453581313058670404051611272483228112682919205668129845524520703375839517860981877000395615083584172874995742443608731829221941060981756027914171993653419210067164698582820577996587893505422224807816904143060187771374828962108305449258238647615723036912607524397970568079962884787391479774800856433558020152797899106266638120191548746665291411477501584267977225397520642594789991743145313708984398673947709221514539013484880344564998916960197421681965671671151093786398418416384699488802648929538305450355365640750389033437256050945984436387382500425668498049082618875399291706551459411345512940491512479916495422843078536355647044855788806741954579539581926201984502991430541176853478607461701884673667099317285929703192073602118503820870297187470062542190095082479660510458851403503414122039753368903000144476994515688955535620685724648447852629551404354713648448265389855376595422326248529580405550387685220037551755642082744829946565671028735855194655667371603123746960302998535099019634192778436943005492162813862222498855105131404863256418115470287745454463506691912332806733658360928304449428005066295457682356104149549300040730172745706417837895958387508076804163039768234686828604508440460474113675750076762666594973655043000103566551240886308301290426561910012326443401446319039929836977429587118310291282932542035113097224831423873707910729273052325970701158711505362198946691503896642851101903963726181180391219279839346256085643974115733709964173548537441006243115106762409113816793521810115394512472516510723802964124141619551342641831519796932800911795175209334561602933524827283884051778296790177652170436693727892412721773287904546309237105966438244061350494045263166428952511452735277577466765776129540764659418400959778184808329210753293556024887148761587812359731449102702662672867015685450664789922993573226298264098423368187391455645170665035443299873554026833234570682335422729127122524745901285504591423239448599762523761737888012122177472852505342103210154444747991829593777701402801819117700527867805910562114089798723073304325120095458616442215050526933850768071147251014679324531865953275650552325536199122983843608042988788030987579941345050766302453238949920415882480519047729098524174622405408820380543746947995558369390331510423680171490580183435586169513422958186703767489618051423978447339655142053181290003306603721085596802297084666740822679778137488275047438570033922351120982009154631812838430739319597139844322294929951404480307312578269125122531234238785145944148871305378937925894018041586102261516120977741638205675434813549563400843972822563750045115793894573818210474148348039461363946331909072055357652762407168551100881952099758021004264191302168259705386558166241445265112272358363229365201972704970615644371695528396360996039493441467885320631031026313015046987061442454740055827391033874065088803334278564855515678882802584668104889025354545310509892619457093776471648429280797770038064328776180662495080171947616675035336286785591273835849774736445808016138965552027777610700934406572730987134766298253687947341343292720677635978375250113689654322319898035718254713101251441668231462269056639576240875785325679464289324236420289142791793151668936213887238060541621736398722363425366545408925291339184118664545862975182699795163516307378782669238285995968173153685502750735277855093955629063473704969803215745666060319096799213190926338516940582935654618467184737377327558724408954162954141362494195356888735407878788116425058332856682220998263632226699898661590963763681107984122563533044546525128519742776295965285094064876795390278076700042195462295187885034554898955564969210813157244615784347851840469108588725251158610243176007074155073695290295049232375601636136590916679476671214079132929266796616784405057525415592979498496284875583741402098484375371214323398914390744010682607962372298295984318531124166680200015394402704450509476209612274185138838247337791571453206956624326067699423085146654892488373206113390959341908474248830607824123973660073421352768449955226464413026273320654681703486327797357282058967468136193727681574618250832456388917188885337257163463571892068442198636831158738382484998361168512025894625299325351354860028249648951727722299486317763587138391591477464854030859514988535310979002692394214471209906494375076524160470868813838553954806292887985644293008018696037205045074836957338469212562933033275264582423157787362715518341049427900831769919983295347243972524594352928136356322122831452738680818731006292395527275766078394437566436350387760555697887163765224248340292093031783872745213347807608011406326883038893496753044394223817927651294232072571554177716452359525411978497133019781330724000314892102703743111287258272214866356803833552845985913475215397466296301978132749288811574143714478401842621359221263545201736088407475415209401211237608414474806372120568059985564441926424504219173673371162832773910702338735695871279538535203881621751187938470626696724078924708838526653546556273090815601008552809923667606579850652540305076886858359358488942717655802584858752403492219304896688512083700618096769376110042663069576245543681709782184847157748915627487274810644801870595569749273895202473527193004216107325723366835089535227351419968765574768143495428698663395540357171397875661137327191108452721320937879627533725109431545698076801771674126983639429838380270260608357427568035536413402762001242622673192361712005689765595908231634065653849340023862085485963977485632221426048617232412009120917888164102281899439097720614811107453620787345582755179902547117036057744186825653889218193746510148575937862757605461851009162794871063155278307210353996831264365783996987241922622004771276298142642102763155290899308908043698529507335222865957668955174693329673802081562690693182792269003629979635493027585504566100469203497018684610163776024109800813535044618065800860544312146520046773271096187669101659799514923197955095449305419582388020277243369501400005878435745862716857877562601044958315505155624500813551643350922642398673160427066248064597750565265076469148716677196754037621943325584913591439602273310381193999109166612132952965593223698460226993042457422135794225130740655133124623524059891692664507267851491796483814362432624869034903436205198193273945512055698537129549797535083173787202630617676509507963461219657166317439469298649892598012535004267491464201389031507128281459470652441579128400551152095622148591326214832980238203687702706063443970807919180702054974627390681220424971534295211355065254914437977032504685543854098775122730706739099877196358781552746196265815025763224431239497492268329355004308870838576451578192328684043136016563955047265406574748690599450157839884153180475858155762017954959523601018799801651206207867524729243068356024249879856215499990669498588318456507160587539749962899397777175855608794273556462325808062294055606287764775927423290312685941011281009896448774538523662565747577514639507651648803901667296512117876557029342756954535164023439125153074875256847150333753724488679365009963935238615457193529818484144367315928819354970972138959618269138312949578779781597507514400013246681782121606466720315408724472631981128107518308280982132237914965525730092170509940617201072831658353665473574686383959993483561318223134264374396585109931187790345880626084681040038355369544715795565518736006644187304729012932997480849293675385121594016093905914027748182713367003581197220435014868324368832943737832000592927822395971976912274566231315557072123932335033742840477206045529370672106133495441621226577676196876938071407487287091899954688902046460102654690179038608645015384903269201638653470363902917624869786242479656897258108281906759650482902028568176906295463193202232782137065843821989635529598299975435701896727158642720304976166501154165958685218320229755065713527962747934937782658476389166497583781527104700613981032006843165056440709039302968296636684125481594919086414053654729276645049374432714954312031817532719179590056545980084238802311921995210454137177115869831421407200259718691145912465195184767914079065088428447263056751277589910896099085927901405202597639902615134383854960575556112275637724872739012781950527539825053721175202265873903948377361013356015759150524065004553460160174967890314021128943566410279040801329608176056098663558967524311350627790723369829388554279310349760780287266551821636911201415345938057989127809147456397430646082592107673888949975374541795778099443160344329404837892658263755061129872110675657268059535054422896163613124038027638365374771615943479847617896148763016934616372669232534729430607298287279249554747884416458451280998783988026239634146318860826113502882744205299817071521542871184592366716665760474271016494581021542034943257838069409721120470799879950802748902758075784364243191070987326126090146387163825730244350697713564978455985919186650273137464259488698006438215298292841390485112545879653500395362767827810494598502248356566728807306513578597358364443216319169985103373303065944792490412316885840378046675431513497403127861701825294966500939377283066856790149465229190161651556083517362128630483675728631499223234685806431368340375487656987962040616706485605570148652490823813541429038009008626941330833177522374266715209617046904055225002369242806921529566877673821644462262733456566199108715468704778164972194952476110374289184598298765026427524165073205056722518311542432786982021115297477695458731870054263506313525103843406366640912569876472657497498806483962430247203600590912119936037676003522068722025837158073970514994048647177380737646373732771652711029969956893216886399811842557101256524940044931707124833861414905272213120787241072736495921066354502841870170512311281785030468793295939804745723325149129921452856038110967620465041876752931565499216608781544690789710907072868380402253801427216288795522798024148915380777302423456016107274864668749966762139122413294396498589761979458178206014430992772855394995067349570930623831196166552919004167519935366713575786892271523458902466586433863894123194712684173819334262322229741826257290036314569723772014185084686062435299529750319483848827399764198990285312179286123472414543438317944673011853239335404697845709421925261701325991139797608658037444814444986205365530204889519728738967353384988969961516938608744445627071630130455791868397144649523294893886608754647937969612680921817780714528396093186478154015372746454652354619417600582517355474607157158656478697874069891153891383147533015946024881519752371080459069452231807135004508519272511423339998065660461770069994105409595549269165224853177462609789972549933489252471669644039004330421343704134088364958366149432784514729119602843021191506626715441404431442060851049065084593895788648283341046267419646576579521816623979872053728219086115265685898570351303961883206655513658231319522340376272535717625976836569544183656466303988432932476674623524357693829586974154992371351737283859443665317975884785098770555843872199537024083932265023470095894857783299062060626049719686848358357654742988297628717266959254741851362334007187078182541172196542128645223821590658699237890690663002164064821282721734551107037289992813896333795169548562462165111404935063362342236392693482277532833638388332060805752497925406473754443317456820168600633674673054281064121437875159399999994099868182405054018314114868441200502336447851877771254026371463736868873317869972830131381894243953413752781411831572174290563472124181555289420204307142184317985099341995640439594933189810200985321927387385524166916391593372430779986805631774223217730411219467769222145770707282792717086710358605798407981305807333575461648660779631889449089192464225064534924080864223305931574261019509617601301548033675779991909447705327557790166509912780695769206549174641082212838144265196820524471551897495643675269347098898948266641857861278501983574891183172849527101135738694563561102438917765197324622184023384311122765843785231911894991778994299821022325941644378388743407547172867255612504610518654738170324821888646854887407055521214659008203963133434170613363653723449266296510147679809506067925761041235442671177246555021012076632018579442183028923497408615361408143373226952806945705415419008805832954636827709675417475882406132136361020026495756013011058882021538478963550470679269706915220397322751843018620072175569151835081349529080087798913199653935448519096664415080994288016819234791044029091128839070086861350278474945151622567859623392134515390158886132827736050547910848126335426012250976330484057065056412042734741859704528287224450568169430031918622040888028472383227874790503690464973976809705557480622150994401479343067448269525485918048339316396055195658152205045789043139233656996999522736529666119734624588851758092580743408785452107038248364319605546132469360359189595405828225054848192490515447399491699590297705590840802252518890562461180237548799484462580260970918512966330108594553161443713692601858871699347100131455582945771824910632279213042632974139030933112070735524532580816343275773389684620940302686228486391137214108926732530416084928896245665752390645293778846578630521778343063056063581009504159041189087822499451086630353754667389205238263214833639186263110635799382854613011626891076548399200827753882417212346653927460813923524180506539080841391787689934984572713472155432553096979387369632005347712201220395954060241726319674996075910369676065847386323926413340830527135668257982553848910029746809662732204494774257488694467614109739520886774063452137840476158396956320871955452595039122559100791226956501451866659807528654855080797032850416737893888583021280121706488429979412308425079090318481903283715254298675527495959905856601996813353977233175221603137278652122723227299142068679480332064158299854785968452902477261235334710754532419418888728576734512514845965005012318408473931479889158618926131609202851060206447898585420864445942330606632154381254217426923581656040545207104290531755734202886761466397747709612987510702648873583236373906496667673661441252689178619248808624112471235141907581395987164447236209493232620302514166174180155122825411679647832695781503661967468660482815673908878873559004497719854694983577525670319831524396775604761308443617279209514299406841304176681305765753414118281990569030067735161380495653177374579640926752401161802600730209827386131639088074966342442429435249874053615991607796339827509320284588953845494579085538228656735635910536951175223877145416852730967155305094966671327789472963698183846816224569796661096370139903346002366219808465036269381896526362140061866984291174432692491590966011790104835091119108334661696948398069090725782029400079959474704764910759728903545274901242496713488149870744788522974594109037418522272594517212636542040938263081660231209243529546576958623700718510846561775154723105081242815625270287421571207968358849567552301321107165948523924639288262192821582170971152556119959098050478542118220655790589733042130829697486942160922931145598233576893058608020749885534077105092122436040863633006839452314142024870940831330745407202234705649522676823566796613199426079801571066527613684168544766023812780183256828904074216110309694203015759735590725443216754158523166317875051339668992579843981700626166837937578969107056516502476947060140753439363653741272042365274169780218090132023745183822453136157140685014492747699421168337627547909345991056401310373000314476634106100259577540621362295545900336382136495191589314972478519317885577961108139517813295283717149412586642254895671399382836037204032530368521404929815861777241389812165515696148058460333631158803086594918579576227523282235163877316512980630551514694627265426703591342216494244049736566218434752037952278459537204988050371434168901449969661557206143503463266292244391815833296910061704010068255578939550197321745103849196958742997171150975414365581750252686320124707979603553345721834320436695349984930990344713901736620652420347273847394432549989934901910727689284402515456400671710556505502330049929870010713351186470392601010078176848337622815431127691462271292928695767179212408321296389654758606210208985587879139776448959785410129687565422480567691080219020995741188815498782788214970979590844756143674154617165513830002686839247438873221778405437793296083171015438628966638128781380425907348635887930854956467190758482351872929742775338275321145465478416839772846644880707226935095407341660892166654383451625904872911427890485282643143194991217408882456258914915850167433892639749948080518766906388875150420395820128866871546998596724323640354048226770158119397315178071049467867474147814557296701166076350791412099114460403948154868702441235991046625800081427464540549445852993346811220021189907133093017916771620476357837920755455170911311661728511400947272469838417290949810263452015646999968900496221968442369820688443212300719599003194052112738885269804181286547544123180242596452382290679637791718239794764818553944834676498372292829696137721573358436289064218531614154947640883668034376736192329225053077955305264151364481599581062932717236846842135571613151429640056672824005214392789943201640643850008079477439448726609547452018402204880974775725307979783836617858490150902841225995314741225018076768547554404946265214298596659911693318608198623094809152693785970905403505768556583092531096177273167244812245963567289926445586233510402858845538682720059492130888820537905555822133185578823131484213404138304105557927684683374570607428479228136411206906385520339711505188108774979593641774801534971864252090873692364056970276635554937798475497881033333152055597127614868245039712069657230527656668621747442272746061739254807042232389683836874153253301548615065603191448325787849982765472799316073856068064184683873344754674043009624806787456676375687086587941745527861666895627112811392478965529512100172965732988864561980687306367447572586035645556769031992910090664548966608387965225109850874647752259677457933173701969384783359824063777623287551515572732730056201598562847180674044431217479916717401733610726933914722307772999206653915529199137950207108697546016204841252124892972137220308216372391603134474543458472736540222941384115292089007893254493937001601165063193337459926505607651808857556719869157854462127925101010417312205027652701476608943256768302073351612542263843108789244317572862903821447327961047913596286468727367028550046378069105994600720019235800836696778483128851506259779331956396223854953547012552181944091017597155324872481560253078700536308875910451879336812791955396204479941523914556042445921149657452174381112369947242838826686584411928954557707311671242783575990965158041376317957402684256138752648490047004668306292011624893913129656643456608835463672444149488454033536745511578045077737149145534265918407516033719149936534214690576692562197377312185780953270922729451678447878580753206359649374891233142660722376402790924751227248805683356588770604545035585767100439478172570595057379000781197514056112307258441656578608354988523778650841556485617886332228310163562262806180355941778867768162816521787697323968126322451380606651492832146577437521401980072577346335783881737941540397829375169373355275563757804188941632193183081850011968101639151863848134324851624474629635494099751945613560230911965792266860440266754155140071818297556419767912269876686958911534021873613524999841522580487598521212619208514870516780895327309444576441099469941915323025679701514535429873973331690921933500030545121797672007574239156533098725954349860609818401192573714059717711243489451764689609564407971448846364447175501860344621218847810581224437423129451411313174125149405255290221616465206323374329173816543812420754592993079351945712608168572309258769453642219700407773337688136736154606580117446661295189000235244883641742631899092333046366691727640865093907383033213569221451870978446028957144496762452907962090462462076290592361191469729358713714775510226693103172416511495669340251624204562034738195519176172463237122471441995737924911815161476751219003840623907563867633070494014145667147475292719498697360816280727666737988524466613282202741421255219480370244659262294083825622103736400465050917479236637659820890591441005435634820537163074857282929393487849215628990500914457677486098449192624618455582655151473113285474652309409404166110148057809430712127439729134088647839241268864460934465317686683584711038604381031460734560846113050844895160010365420266731492670502811506407082309038181622927378110855325076186222823517379040885882450346320524277116551142204855368785481454160824913132983100295204258681615033553980723688018695589798540397626788009765216292336948057594002447659051524039893638217540644870303338854689855702549481237673788796965825656410331193573749989526161697423274302947326129131874022197873907531824824848530327071160851871731141890566020941368774964040323658466873046429093070081246765841034483181744045924525298852334296716223463871866220152625958543476747943128946236293364413465974793056493279143323662964514469424985549754605661402121336632975906741870386516082292176978680012889890457772221110980827950708807523052628859224449995268693261748608715439209821239694498961794509275894652428651211756201657080544605510321970737335200406447771744339529823208079351708539129356998720510942581553262180941425404805028964614609350196581060563725481186309734966350333107899456778812584532333964907626802880171621824217016289669906240415937934526820693819528485889286450326147690882404961243392652934946910294368081809898323807866938677322098881692926385155525354997254367271703518893393995722000351426562774739588879482818832337203156241844083498232497532218519099986822457940408824824544864525071745737909460529131157782538609815458859165280216796749509769034411137818416064369505917455793438776914124667728858474146061315756863262643079843317954167979591354208925436025846424995979321969602728150553799678009505798251424505208528403582311028010567275595840476259442206422852671051524769356667286155216079027541920369869178310141395895384145327165929672930718954961671660252981177205556104083744817594598511991702716719588040300279953227406594749359200864925735031001029880357978543921726132148200093100986575238681159188414296744842675419447067333171528751361223683550963663430662837366935716415342191401818360637920408684061111981885571332809473946857463306295867105137163309099615439310370406533573684959590195663811066085522580882503667543181765712218224040979244782609042186668928775077614912952023008365208219117092023805097978992571882266984677675294826369762822906181398818553869421103102087632783008800491352546568676933254686234927101611178882046941960410397910148631081988910539350617924453871666909057715408567215041088391802926742623112571057646413771936100251566353121937840651564892668572450432287711572027216602448663937894628474998793217859595307845816180064917851388137330459049178774008406273141543339333210005925878944707993029018330796637839120365819306442630638099468462852484571638868052861680287526015861609993292010326874331475043532293168092359212706427815701970406861138361827998963084133331100552617586872748786848951634620100636786893994290577333698320581435130317944191303683385268798603111116094678903695133851305975282942572533588762281708822975003543656777139741758295735015790489988545162359014087982483006140975933206669007482528891920877531909255787920412854906919849817588298893096746233799919636393868878456705375342476048479316664146082961250208326673465782974662069763756764264825635885068684069075954385954665517281148866581335767768435059836830923858428501940626547615134679386384731127422140222537017171251526313597201500948644602088848492140867196389609369751849737926391640438122819965019175930573350407376396619418567770337607486193374898968798809760141560210064494782500643579097959308116397801425067393216806327181091586662012438492823669929606314696330605769392273517472027544518032033456224124569173808945292697227766250547142117253165441895874972589701470735956176414864936011931000502632704902700752739041686720458899580815121190657097754189112925464481974621609046170731504012944798595961391444745939054826899275614393512617038434226840053358616974467928483497042105145357200702999215458783806209512577095599377544230802308003023524756113524143498270310143489587820311490624848840173777150589650426739090845741328022235194146481643933897335681433019595615002769251201872116290529524150708725533658863572731765682872033681417211168958230632939117199084749603034106707155980431625332161285918918015182401575860399697930652127073475490849756109841572065934092784882371640339427233798533519864348070808553794551038757065590224207021553000270460424912673115466766613755673001122601239499022438844891024995396674404527218217499474534620175809821117629022844971285989359337806349817154617734264524012367827926387590410890883245602048131303913685867742231824677958496459698749567093255822143178728053734886181480223730513314731909661983960891998837417577773102080482723309147369540768229764500398713658724592876639745948746125000734176258111428206056302420571168523285232606791812016024689121034803235282652104688511940132892577274134373711974333253376506512791843843166044433841751943063288272378404002375841745027758048864462639772685864597717556715556730328701192246955905645500686575218668097374428716745197869071249639428851394099119089584048060441215382466276158656219353837416828655788318966305929449255226079748915850077975576049814305654898958940122810492229487983205134612572587735455093916706686317489661740714546933786423860381923577733929844102079041105802696533280135587276981064176065590404856352741983144201338896389453198430684729963737068946092572907197813684897656939090109482654036925953571811085217728085743624815768051431225302606043644615057216844004371898312795331019731509062311978026065590115276544480026133937245634675448128489815532229253210237402206316388824698035579093104250627571952321859669955393761553522908591644287700803694247029888112184629759298643810052914477836592393999547791146407931928392408021906344132505891647861815957793125747112505873071894211441996872774638405664326715332913052579629260000868383196046713225867369082120514136316847356247136999734789413381287266991389037228987312710252448158191297693411425150316239062742436775729365989956920884289390626938774723754185804275895844197709938786342433629733887087931629674446599672097175142966125950744077680040710412603459562933583612947370064033220454277964136257550054861243644733114513102800949088539485633718689518009261054674034938966135345797642534921441062501360185543277312602941243130798114758034731627706873872306896885405896997607129141078004003084540788255161514257357576543216380512119246614313141646652310038787646807038515783219946206688377778362404693333459683652631553070172782793048533297340424688890065694450961215213621571266451004757353496607686834404291100380083937433564144720019710794006836778694147723394162515141586763660552477941074619215733134652239831584622593325373798802532585618309119660411236021821028013131666311919403623363585772641443311723133902733118382940820894941906225741631490031031124689569679575539911603077762522338907843257182386261798140068498929809572865525822302453059227605516403002680242370120809517565010808882074146044494358031453586986562166103295822798787797914986759605924245161533303336773750514991285484043274090496133862312749836689489976983524664974511807246681423309314371714308973079315615158287299242231569607049605291006604647903502270274719353908984505924349356814705227443016340895351939705503767424770008819385723749537479660546752871967331523151384642992734579794855391694111861039984644209939610150573222207522336262034479242928014733113382289978519189867375221789803546181652718968791117901913030843285238836113336554545930122349873735568767726893971773093875615908186991465836550489255608465638989035399851673156561158206923755307801071410536363255778975367523848751557366009071533532059834253654004923784574769775491576461189350017300571820398415842332412714854516867271392397901675396185326632435144176168288875390855834712708687512046057187840836018351559195874206019972790886663998981164318085630094587522258664380580376174833972274679757426520550155709872597878071056527383884631284802603652109023142008945153933721805995191383572394205213831220445430350384993446776942049112720483078440005974786793111697359575390685845525738027271724142390021130197933290903965402899716732632089118691611883105939693951766704195036092044544262817243651621271827690166292447669860588117255992177836511917656970136580466603809868664069404013100269365462812148404085801941412760649210581822806112125520283216646385949630955708857951193582358495457996436094518174847811560645631018021363157085052034653335158613102166296505129876597412334968614037196527408432242082231748863431301328661983934473089724346558125423206862309373026901555124547073913909297036963362258935341682081879950288628254179136423917127498692174546082834723045715475088350876233927390112664498074286454313171727022839938358239531576743032345894933373053637590328747856376488442722635811698248603328781002787520129451342970825147575425753541410650804123527980285000714773267814487184562484192491835504106852227878814185789878705411965267072938691905360844978384786789723915846645794405549164410096543796813521936623036093538830305402669529688637168205733776596296064315269466185937650418322225817417164266007129221630085707828777646948401866893190973149172715595771241766227800889291994406565733700039349328811732310590822254719856229608166587805745914341096857343229784619820041392191021851834972208573747006148857350411587065225830386707128379944693705098108030155071860736539342514047236082664677202707071300241749977705194634364888313809688788877703000511107779105647280795603662188467841780951974777581589353556005933114863925227893792931074870569126377903812000520726640692356103607381543077680388887028192863628329073525899557307920326870150920885198626939103881297999208538152632403063034944633489671798508433094629639255234090366545975915481656278193331042169842832197202095432104414762576376956472570199131771108931755175533178540481815845084410804472784665550407029566871456229722808655113629520418312373622756063528268484477305648271240308623442092298490776694599799557742617083530837617421486707160006301254933853269498069508004308395500136081009094045529831874971947387480438786626888573056380008657457827490001322526063499614533127376607298320751176888518931781847158989343199831172532603531639424189904495563699072970702340983598029158373538149465811120683165049694184195278187916917170229483518746342288347358031855918888797680103942799160440473495801878625697375688816940906900966931705905921923180407743386172627488069571012418732677963380863753496735390884598340499922328363657793564771778917186444827381455279621121634629156687672577197855775522517664701909214059509967533533175539490137246623448479066576342328251733873551801383930166693217912024792424892190723353152328179069633382421417539810369965636853525342419226421736424197370213061552133988943364011014018309662162662425198606441419018242740552237564726859987909371976181641790734703970892050165361137236663871569720605964501464021811282726982815911490888664474321990276579838434184104543825944671334881185606315408285322843538720509245190055339090237283889287453170101510633048602396941647801563734230468607290480399330127282349283602112026169596411834784589498649110691431252932067928905005702058863667845606829186568489077483080146195348189160053600039686897185915487841920277401927474476100517599488335267877413478151792032781714700202978322044557569828297964660603108800698008103878953550157784706147952556306238133284473414652385622780070826484394345854648424665825427143024773497553085018616260439499894011292285859765293650240180842641348925422547594793047922673100436766518829380069262242427708048185300796688261641266014632304577653282642422580144542597599368972128169370677945390514024054646378728922092453477848255552216874828103689799052370770405284227467572208663276214714910750150454302078690941821341216746588552733325061269027292975256036038066701269137688765992019940615982143723337158517540578426781643205142356093658013458956766083518605114723539108855024831079677161137163641123616422464400043547408298885212934187753139869983011409395691675575899960666192258159270232328776624154562118360690055033342718986326934177100670003954331155616337224466335203037827385131885125922362941294706084276903303117516607644117203192744565348676900172696413290870481602275343108849996341760044992629610014687142242770606066715951096169601819697880603296710108482092522369097816878065416272112426117889459114658929729176840914506261938344726011295358004234591943541087485357312739622976294251047544630094173839865098158492507938965530689439501409621715980230511189917224552234980474455089729209613421519208516403497318199638676435272972914882147666799664606441989029071240769802890873331501040072308682950716952370997048886230160292148855508841146754362058120102876489764643357385529999902452543963183594052701584835079187597619039722517677762713554949669016653548346849469569795601788410878956093045335185156382180866822405673796254238988407388546008937026443752723820958181870516080247793372560299996141611684578968814261600334666189477909874777631170633409022316395505600445349396845538598905316883743161463109875426368704263891726379154793785329680629151700253068224261366101432091242768489378071122903367686550850064562538455926869431409107565638408006738324092460083938370863409794008103419240494131575148074138550571509494463439912630176941732538499371423767908186821001045915366408507877639553618167046834670508107185913906406787891259389611530867582434134721630080562497698106566578869881143523564743960664831545970460659478441926194441224866135389160607978048276693491321774467894831923737063964779920455890495872635752356854886049987470343521177003904421129703397439154501029206431961231124996595232243548895484676917424857419351887399665617965345698997606774657091895245468149207033897585962410056617954631749233444794912887017576751708352095079509150901187135355281894900692090527525211754972909718347675652422280261315995105339016904764577401018168233954364476999776865248043636045323020216069494302765140060186351686223826235856974976111484725656323747530617544445785076963369281784195325594332306249393189146127316271969745584603029231202226910581380991238711589629460374817679326457218111378348963021942984784353125867464585017887474954793485744531203628495500876248774335131953183321581025323619952947424370638641665335603893458949182295814899218213750301221173900869119029609524807659383541296746378999342337657917066762756219979806395777234229928946226362473192248032514445432348611464942001843205797363603513164450280893932301885438784541337792480291121975949776870302017082156132525454535048896008910669884710805153703202297469469550431755800053127254169153391202312152219166804220934831288986390064981732698682139593804275561982474416852532780750929216550057693696007384515741071006547801654840174649121005152985241772009751132931353524822588734882830711962094650072551127797392692412118232903558334497587326237156586384388421947077163060133900743652824925764673744809513855813552543006208635021017154173477909323566576540280130578379917248664987519141996643197363425494610262522656457872710183804943634093773456136379843679068635980916252892942969756027059298318218304417813752410835467281156312397692075686030171784621731263761234216006933878220840114445302425396890901943640412384489460069435885293106345898759920225762532341109852114655860211096378683925287082974173277911337951364474883545701724852282351568439800348857741163774850321018720906218370028471129627989635854956576295771813159836215720159692742519159478289899246249355290338437244533064802068721461300171415531264813847141963399061360835758669057842178662880622824025403603587652939017611527825891281729602184579238503901699496227887036351891508004475029624322921773143533063146840281876104043808103914825633442791010112392243740506768410372788835943113416948341729748137587886531073770696227695726692471981790787133275348808485456755593551433460790809441306275250366436689870608178487822673865216426065273094932554693203524352168266993848919993068469315773508562055772064381887716116105981902651084401384784333797838303475845994452061377293423048116741504798158630035461425498660268764165536431677283197717320630556980328870973049063469313332301769361109664500365451823783024533537691728893270111572288801097443845807830839274251011676360077740006620875136569804701528351724780129826484539572227821197894680263317734980954525251506370051919336181386896634357592151759270165571525259410488994949500609866777491079394864811263411966296672463262192134301397942264605518774434421308869485327287682409278916006763911563526287260085569842265172051236494116910985858968499895238795372351539063675706701255638121435244886032903594585917332217065555736855409545002877259093160882382502710377610027861599791066862670183570524603675655789810155211768353316817754484039160217637638398399793521889737697694093820467408180826994860678788578960927806527329356113095828440644977629526247667585980030070003884584756022075500635931522308179397618825527793277615521115118830149961555431243159819660088074161156464880995703791219994150748767564994374142915401627003544652392597422606399970550222458781693356202080238567869206074190231342257644979876451048876508039856376334677608796370322883539416126773962637065082938159404386432065324740469606924450294595634476061711475654714332181198651989397356784148022052570991689020159678661647946007258366797246827614324364970296927227373910343294400093166244005279974816335314418749544623513048624355847240346136964670731411689066099891169797360995850557024298660060344430600773527731934707251277447597680500184507564238889961260197166912837759110838948479611252507108132312163776046657580441672474935425119078666289188072498943933861270601249570687749185943111342470835373775123216029999998130881254841104878952882449342742261451639406815362968437582135995068451684672331690765760434167723903979942268095381411093193460648114697374251200210368760961301370953095276843846780996562523368158800945539712082559782094394498533145165249539166703557377541597470436138391955228528834230722810178769392254670824234651627386267176178580682400597055976962499468008464186953059226489418716492378665325520972764966492861861892117660414166353454726567049811120355478365413224227866393408626571673171024370594351904568285650602224113493202508088878140980634129866214719798541205715730960733971066102526247789985873988195106037254790119463542321540475676244113057612579652207572647090666319217648209936858816482443564048794604135911188017016174456143036049178812409876384278767879105350321417597143387673431469673090560520352573984077548396126903913651885444047657418951121525259956153430972968549849422736114218011447167574392102647966135540920995733792599051957858432742097364999723106479369057055143967641035460558458930359994384196900508884793357106807757379715433447277460702971538413622245850632191802080147465753257715376387197739369013719189578135472001604165439423988398970940978206667499282045630912328975560691083246701878624587758829763699370113472659513636779284022710455730687685567918465052539318784909751453268328813316846024046463223347082198171402424772264772741638212854190040595850290680162181965932508811662804049422188856636645518713660070334327274175010596442592397395221379466903197512109012243608803614995784630849174551439553426558799109936349834386035728923885656680655845529894967818402893087971417233767167644068988958379408863155502933207635423870123796545596750968416238789882661847225177102464956936902457267261205587251957550652646474628147550335136251183391034122590667484654731062280807917266022977596079976391549471782676678809880135215774337628615203960048025851182235479822861397082070546316500201154105688820809335691346991863672870214204446991642481006081231422490116766113258245690552000930006132954021666971842633288434440920064370739248349764385670195299122910705451213682830907854176149917050898214573563511012770392541295186457945416984501277258042517379066285167790389860478145726112862257096026659323496546535116869042836053040813286535266826567098975803322501263804366190456764997706360161951937270481183754057498471489040143050791132453250419825743070760322594454271417507164996802212642140032353971127315466318597506105063669501175502388080226803199254719789587936184553593236842566715702237958357008980158601549548706489119660892014297376755915995582267260042337875834777283051554700307972649776331728287107075905668041197823397172045398483621408100883615533543926528768683387268899140099244205173670655680730989814226135044993165266392079017872304794524209593452485168403913490766740872092745380963985930129694533241710945830019259179083924822026485543900992786634725427853355753617710031372219260242121255788988037978957089715730224750109645517653708407408740598481389509157964641745030510204362603340918225174584952503250140476324111447783144518117179431343942658385058217289579581758041882150758571952837321211244421968356242933077422466166869494720334441920983353560285793729496695387913456588329384015332023319398010969809005449661632719253729337625208415044324788591404523058608943985113629204611915860145107601944444691123801788833937361623561054274566367882704237508729813038312695720959430165932528304351684738503407310166564399423369618823594535381629028090165350968321725782292476400534800958930860860591078621685423916478009523566257046714038977250663206223856235985083549962017812425135752747027969150773554672385060373526056573059152497962996263125988073277087142621077159593072523878179254871299421740922733498072679815913524180011380396439649425374788567436332669235838336321492436080826320379379097415141733812955187670575441392302093998746972787183184873306936556375482212958602001578384907278970995029372069164333898155377266000060006675773453586824383975042408244762420071393282037529666221083902035581113771914098509741192390743379408678048939728374834515968954570404666474073502703708534382641978453818713678542030457402053315566901867385322238661648837503275346487239134792217982946210999378027699409041446295521796861700486634210640523480311840249403351630450496036835917248618857011792538937076103399486277117528343948050672811635794529993382720740324672421103824275254236373215512329167733740227595245766656488777435318245943436330175696605020226410357836642320757710025431236820183744367751692201804635297365971337887667410583495694158603517062529489702106379655286396742884423326290106961506821104434998987982644477578244266420848367937375453652602914497387025265679541302088140627019567354843632094480708913172052190023205416772653315976270618556905560427394176582213886476446605703318588360205741112644090129778199984324875888837334112905698698083533928711679903332651328675420909928691751349074699319266660591630574451834327116763593520507111339764353741131638452402080424720095605878029050926563396467242332670522805965816987844355560960891021238776592985348509019553978578071496097823776217568920904912517797640263446551393036507794842621612119109049750946205478859509618253708308225877517541507280559025125284021542805653081961191862157570030665731616392952697345189771617688049554948141459144554260867242699319382237018063130608047516980401112403560718419031579762118493868960647063040685691272448325607660913418083897524770879116475023782286462195631675324220214878581232018497813398155465562755246384983274392438483974436295523460249813657987953405165497473960470308553919295268498363873829181595089600417777329694033173284276926444417495381727868157038324966760174242872220150561008495730740656444783768141037527509673984477263634833430471558624396767919666032968224864115331259412628313461905787046134848502147203528684010806960012024645678939142729552438050106269308246507274358534432795896370911182864180570796644791766197421239165585176883200793452300734821155574617058253637339347234677074436562522514554056801496920110616650655445909168592981320453482972966204687100253195188162124369874979934626053984758793609487576379120021492345943556621871178493482668159035978331524962637317870037932663708889970449942746808774883003285944816970079291126441208873496509336737472882598732763276477474897431488129698584178010268972496416478095950977086200453674112583710149419973107252190788024028552508038234175418052054693223554733233006119195398435449789675967461444408209098671812729880154340383772883989434704550676895104452998671758659848355842735392085644025897264066886648795961938361856307775795049443685086498366793794699998041218094346172617986911127086262658560020055212207676197544540042969600488365294856547096906387008041280166366370791863575565506036940683085789753192469159377483926768961118564395455393265999661842127875694783094021674761750832383302472284568501730531877816495573198387847175409474361130957765026140305489175493752161533626819751283788702631182474129716969111144188330130761246039803690516694742465406470965099900768536578914365287381602306927516169920563486411494666517875716103187026416323018408428081666449786968085139621389526986381267526960196994348142791632256610750579750745374989337858050184054777330955573296712403113207540765022405323381048086736980611434277093550604661336776024261401450340332342708023757403633396327384577412555188054785751031355061278887988372156577228841495361393243534702878610949505828551123259465463540286927123044367002782019903163001442545551649826351312545583274313027911216990190622960852162727602484247761804446923652878899960283932228196918240766162182548338701280519418849008430677621107362008089390330307980891829407739697805188205569462349072839143200954436447481148977343314396829543041515403242664804581724644305412649255070616000344025410120931376108590228784056957289215406815093078029491195513100675735016366614276924052181553021026239023178082220663565669896536288030880066310985787407052986043639446958270110023912749673278837913124490140707797409175643204525773111878964571512965119740290947377160313866619786279669412415790450370341822643233815780876947755671110687788689795386877365544007414092504983862389877816350803659009689120358817527409389883425794730459607295134097070410272493436570384097478127365305597680502439696609452539524332760991625671900712481657340415554173763818496399393986743728728976000491161210343319105812290433240895071940059172704156483713196358567111725868944993204422517160295745575606949069337021915792928203641144145767813848137221120409378353431337507784036693421300046684099737653137509906084074153225017792450878908057357070501643392467143528780835326228478018004179129306885036719142254283288275924054111162437008294348110500797197109527872101514647762576841083747597161187372587004027734299805162235134665232682670369333884723783480941385543581532901121421758475465651485873727881097284566048646374914926957558667605140681395902563387965343053739431489527532710104320571195120737197356266157475814780788031116110487242274110796559039321532890486444649834348068802039843194338239172073125242705575162269592286982000837826684456085021972483447366183222764766728938346942404001031367100153261704051338289503739547016636437360175073704847471562114731914332247527596757489780286114063174348830866332045048713065061914324320740414229267768764700198353517482117716049046602234083315958635381519427743583868317887432385410881596656341491800695636386550201149877240259885812608513289461452785677326437216152350807764632202642643531659442830110411773699051104758029931168894751405998856984144093226362247859924888267797366898449548123981780878872877915536759534709168947289005200044690178152962881456636674077857700118987745496250418630936959386593738509482724106569367101375898903305756590099015503173900188516732264653161774668735670212906714300736741389539772168444538473776858568601937110093967822765265596077673325568331592352387289797837018021138225101694591117207043725133816920029641252255345707012158146876532370334781322577646525119250570563220613216581372720040436782087350361646860032767570477160292744267688703968084219378829280395567090208284109915743147051924334757180396284514155916829840996720939014125217265059226366036485148117789214833680263520246549632672449557377506353093956779651862618528250059056946944308662509234501142436926141608534468343597450851760167802130851676025218511676685828346897704823573350503408544553073054896524913500381796631788642080893863235343399491290965521793293468551384940624195706231208011806110923583974611877054727034286959844707356157208548334018374783659720710829443052369707559145444844803176436968405957116453441558615836008728657995805464195764541088713361299038638737506536712357615151744571646027469024281293328383024853447754833096330800034567223499477780736366243018321838415437957808212224871316486357838042688463567323721583444497436336390723029791555451574229303409914297661913980969051917330133115192632482129871537782004092235109505547222128901963669445557324323955978942908663321834590368355738813180589464043995982726460057358509686241062971458540308826386588182503541283970661985278659210970876014910299165007283953537231870295413037752071144257551878295512714155091065389034052885395234349582460590502702902491596007861876754845896187596674055218651797429667291667478967153871975147553431939820859272152964304983140357736490969162981102876028806100440121512546877732097108667082290157600634364218920964782515101410081495943577392796698664981591215895780891351754256875923272677275305684722833947367562008185793670802649484373266528747895151495307255439063405520703914381742388335207306556959538080302074185222458119019613316584311335037973306019896706175761640809384961959152362115525985144973886840464921123207992527758946737050060069745694422094064279469221474851019664802946184747638364676998669284629392830524326498271526102019383545864030458845413720777397246668082819847193324931057979012731862924175933712870288023094201174850591331024192543720689501886566078627254585091912127068286510497895213235616987658998686253265913199943668906278431800336403026309891371010336598466178094691421565924979240315535023494526890027247550998680123576006888145889116806691400774594344445103822930915257730359322906725188728422809207930697766122361790816342295395513317043408922109668710737326672550947179504492370949680137717521400433758852251382546055182865355793474162894906580038122354832603637763397349694550999443146408645979506692009484993453009069949811999542606879958285621733346919688873891327581419985153353674201597762082114267093679639177870524193332323869092785959947945355359614036247562886721643932921628767200603229383796571644721983544271253292820402206830748496206890022856677401501493927174697474751442991081044428908032612408837062064039728526243598668960697084277521597713016153356590465278709093129075396172398928395320171892008868264774289536014090055678881975438374546217646680069098277417862386288477628389222323037776423297186611771563317889565481108599509118684674995801457496327285250103335103229859479007626921588778055250068985679617443642345506702928922779760463759101126272821119100344688458614650459435902851494586424324392016613297227198278437673545176677629298402468817432151763442910429751309505335607292406253130894833879767272429505109790997466839553037442347788112071549260747917799959184951818504349812971197703590256772264563650101446967954520172242038784387072865233965665735362820030789480485121331797170576102481218007754544755716678435450440577003411438117139612892775820166458450805396106025673976880238583559078122107321696279383934113941541784232629628338569479735392403459924914085112752992183489507664408516168623802587608023719437724898753516772370708291567949289420719762979854311018759333743989814793559629904481157943471487508225694412333580247760848207234808406063519974551512728785124990502626615133245634382505396297866886087122622328432069176777551738867576922275867138192089638660769771186362869791441988473783783837925085555804360136633885029069889927551997895518071449243170962434845935426365476129128840033754546225571111962970270917405968174433025315992782577274416735426108569715376991493155657530798753366364560287124997818649918946345999751582231940968147765638965701313997740042268389260693048370293197303412510809137253861621835537414148837662827253025984081680761203457242737422854801864416964635697520837844738774148116606443097110698856492808074841559523856503258676854495397342025903239783669551374814595328916305333466263943959431964956230889615949596817799207710306222629232790731145579640368593194035900169487508161136121592019287576841960715176532546666325796487518287043927621584710443787436554516814948678364229877399544956545768073546539392523439467752627848923837145080636975047819573208339367160442731303733942844452940972416027197435780803051029299815356334916437958137466015988542252100158128382185756449241047762236496690683396489811758493687208006837340706226303939099923425936883866021341528461155950594793483230968118866100069096306996929089504674825283068851515632607443533515666732468988746455028044103541605071684843154243924352256057309089062004711357309202603165125040454740714639020307645457922205215110927322595368668094548129691819389874068412830166120842590966111976132995474711516298493201644561911824442006480159051492877089426363126218023461259095899804156985100543707736894288073392199354823266085392109468639870724675190858233815667807881766653204981109696222478939373718674832474326570554834651833762077666045495555099328693230506759344882059121635584545287319522574587211629727930560264638496645491093513799369206090654876519898501383195974976534085276016851693102905731110246909900495743233911845931749480460243188617322594832509953179263244236721552009641715219549874980685067765374767849085379168587410231963315855863974859362089602042171942777627765683208832611477063291684073726646825532969994923224819461856323022329934049915361175821818832479907117022692660875943081597278352080300118936763520639416826489248139161652963550614407210319563760594513118578102191718936984172273906863837098932757313494233553428203369447411171576006284861854491012211492982420065984450761682299348171695575275892488826887341540264339934713333614342037416884315406582682442666241201825625151653907872643314490397095097061317835567727574146329128119340209968268014192294229391881314308530041098202209466138664164637214193110038648136312967695695895974674600057575095577335796642895722080395627595464306722504811278524229844660935937576412860124766196808365346042769500387276322457582581450262803924311522900605590041999472973121350760710406347371988653554790991053472795411389742139312499364928771480162076788154037312394157177911520609289769499929942261581412391208056167768590007598930911505550481664935815486288970225969513042150638182297123667387425523350442882976588324782193165903970975980419902132793113608549750790495843743772463460836113621761008809840909958384889002237144849745658594404147919959785209193636495045913802011903927695546869800633255325401761145481228112662743099315846653663736955511702781395382681901966303235301219069126461360503249244725963177805420863987421385248005218413956658040991761966618783019237861946518397435555901616855793675823319227760210922234527570159643134425298327016165100679082483574113952348396504394530741476763460645989025293953208234233827895197744417270567590441120932534320942517765824426185562109707702961015193032280399758975677126281841038930920613396128343233901698110282407710992494928814643542824508608119305754857820818958251528291107845633680545559894405698061246954278462778362667956012407829558036322870399962494502240809953423461546142045650311776734948372685255704731195597344295854721057427344569907499187618144451858636438580793618162800737821581377520725806113423356261246172933658922907433855585348138837863102238599713899209334179120291679624918784011705060077745668689241146889100089426720586135690087581052963852135652564759377960424544046841623563333398986915140578125998828216438162794710327867855199474763982636324382206249007333861880891527504723212439348058039837588433764643970993307905241487796509364997320503253222493996415315806443957125014025830963828904541025662241647914846253610403416197426261480196662781677077055125973504014703340127743305675532863334600895431036678303697604837511312583538992801642432945716265542078512121936383730642910913077466749701341626081415203841657989006966985845020361425263493624543731390351820145502572718347720903674829972929529019781789308534305445471919781970201978408456544854001196206759740482072899727004882290076740925741741316750210597890281186616546829822581221494714698746327000534996620504288989315936639760267137139945182136495065190316268894342337424945806625193866146393948638185919063123759676394484771885207636731520610315957794736112457487094069963500639647023769291191210812495793106326785162708127096964053610125905743095141783746088294040345576214910008936842980528541203705655215432927199745129696811212602297167414114088127789299301874449119275122285225837679615518564598589018708741374381123196460087944229998546851672707269015979098874500912264121877465850556794131398475328588321449266667570750908566768927168307242741708952656952238670831548580148346632600903944341686534707227399519235747439659215014905691089701660168918715730955553037727790768917850696840973865700471725679965023593538903793104511508093612395389165412643619492613139796513216607661640453637522701785305844679858184774478608710056396091481305664946064469228215068553417495202877561173919209141598939289674600966276867349485557710738280694634109676487142445232196684249079047231591398217289238060988783297597751373648525125151716835879953314838498079954925202182612731582947628271576678885294217834776580451650296863011500170243544083943616823233222212057631446672579604218921932913433359111892528980537470366916466418297326661561370929023294069725196467314582800574027374626870247174703427739677969039477789984305023541351489881469983696634645912615500999755713503024376073920787121723712043802327923556678101863799090041578915709606986152249012864902213796798089152148249909728594546271170739935347250930129326239836547858747699205745250633039875507758675523883502149660267986008354072542027505797867907922506554039191942814350102342185345940433699789893377688287323656196930912354546874302998146843371634912681198114321719633336320511703521601885546818253106834919672492553077783157877924046979439997498540607223546287905350666833805978124629985503623235762858031407979340270815844157271485739850799359287759067102373188387885877084282034761624340695539241185051634094509954645856381983693019007780640554691090816481958279239367322535797701776944003168792600147989906182424162672717634744496185075806096185256237772272453276024457197842844710649451361394486881224884679183880544594516697925395306279832099227346675948334242716156561860134746136910006777826795168879934788928237915392032340525742251545060035486610327132122675411976102750487331734954328863350020066173991094569226336856646822553411229930945280704452733550514156683435260478573289408262899222609722484949910601478012767787062111877177487096509598455257617228285245911461055425614098080051904467211649293054050407802709935364709378182206134456286566315737366816057274067901197904183164424278281882228350267265786658937052249637276780046834948857802517960056092485005857575583435611692920490922650535142949439678016635482103095908339345360292065438660345736923891929831077963097589798653059822403604236693204576250285800754795661969351116579342935623043828095152819483040965250671108168977222734014478357371683816814540883007972523619938834397955469970312294144897034932383039840899427648543150106225866952466045594256330159742646015780230702713400340942981442197926004868545805403560672545924173444861323029679074248233579231756998982773348626217373368643224651615370393008630413278957786628762135093107803643356823631746958139333747009576160315863230943358548978734893773349890544920571569315996979301036731216859557798058170991539398210616918880181548757859645210135500794645505442636518784350647657026149068286373367483771461220140362262920534087367514028264360799422460408734425247399154292048016510550999563983352850574838326403181737573748708250287130453903510259787877678414895323464379715412487251605876703516797622444049341833564365747950943898767127628700019462487699371026452791685331419930425471911925455896382694657191422614301147305527634750689873954380292562887109017241799300933606424465870435456167041643434074518993648359437267757951141801734974546080971555117138470926500105781556309109893868239163933905532432102462316311754669501496411932016946552743136705557141773660638058546477383205591237108355444708905639567765947314934257609670231757164745857558085496040322124945113190508491657216472552436112401570778607065736910519808637255733175966126610537146808326867191770618920171257565242284842145551625757979320410259868979504057794804586877157618731149303636632696581279074518531719971875559397205887068373305474611085472994811670918614727657767619690587593818612425618251006342599819294080630652188325520870028008314726167602908846384398566758102681127715884188969367883753665024239519404252210191761641625603990753739813974184475392362406203515586421797878286439015101017624362946977285932210666576635289580483544944926511347504021915605569227727402779187938138973078882167239680615569901563359834901144495963976835192851832708518838569846270472343777334115275717490903152425942178827467433875099992183219455803860810413907021134365758973231980701745315332975013114946753475237588919016948114756244761431530505775552978093079110287742005763924760044855900896891192084289143773884728790420095295822907687123766943827030266221466063561686093506521500028695098423865496048105490866814251752289236258400135783033485318208636108017206220558306467876815882881559507351543991662258910561669307462828474445204073347851398073953148353418473972309971291682943368058823644532465776115783403821929529276493841034595656460416719467904079767272427274604085423522493931055320486445498751571253937237615694147337785279164818383110108307125697785879634168401110467495398158970458561867085643969522703637500375390075714875143103473122804902420477626992298260704931631543174209868238286719101072241008216295439906431825651447673536812865996056159934959648591644660586653348259753950569454638996048914911718550020789941119219341147965441326620825466937418980200041732889468919816337562596410911391940435778413693754085432323443055895512402585346477821599398977184442209828009361823199306156017934059767254381390223213813389387611191763863024565214959841968069677942738861159152785264958050647562077689004594917519105382556526389858724831818032970400813522162409971933621037386840787072156113804584346517994005193242351979252094922967700587689680697935794576164643889081084760046065961004731203754053897260166514178876083119244247033343859107287879122567611870033900969327541108277579966776565929848016495712111157782051568857084457473020246715654890324415892098810553156046709118483559111307658597774859002319376113325954166070783053287707844607721764568585942396041918803770035260639515442761660400729019746982716747461640945584324561960569411705292767714162096026200012989368334338266370080855288130248089091468742282359342235328396739071914636402039147030663339083328021077599854101927811530948750322871485041109564586272517483902574829107564657909627895306870627165722156728521779462874428133859383285434212453203848743987403429892338402321837100822210376577772594466532940851131352816881143326490946922054354081043946116093422331959766974847921470867358599509057893920473948075889070002397632651438366940410089069816007656868112523092976429274536618285033355106584887572831080352932650900263705526086775295594321381141946278331483413519840512985426018475198807406535164722614372906920456438940602853880990191343368367934914033730955928504591335499893240469994973727266075833524959291952682954778699273991430828613275188151085301280325144598701427306076517323111077312748007909553464189328422646509005351144331850047457760980051560087808625384306597876592868076362175494241304718471047912059000588982488263608187386593792092871612941778329852734128760398672519905594868215987833128066650306190959928521518900337179008185818798636714848630451089575949535472153914033045197727137734365459800021721216747591172014460923597496304784925290342793990655335696817590010361030038160796681536050762897158376026514234467208259837762308085174591233068191052366735819933982254314437823130706418598419458597444355522480751479389190787336748359602813513271722046814597138350363515899156767185274986074888826139312641492554388233549542740709407616168413384150748382026671107702689031681518562281295012215254723261145707577149711144195573851193626632867591239507089925324516255107952425108734975118806462060918821919138870432675631790251651714169290050313438917590948328705547646267505280769441963055260313541117101578307326702751018188437741284934098408995123343805137313795729432131656943967471964714071559134193245781173346303732110311028144604167217544471932990173625922082623481830425005769256550642315209351130881294393314430501107796591167919213971269747449520564864791146329679632239259187917035146186972024754209591347028602638681064268876144061228829506140864323722251463353644407051572674035034598048113467617848729587098921160796045972992280041891717594742424499979566673086804332684356707230819107252834526125033830267780808180371581608901658035393402972621227032351121952242709377750854687542850925726454949423929459572667552904689162961736546296244536861799629771316304740981122812816003919802361622825919314696194344643208957503707556735180805775936132002272596380604348192245554614548805489422232478689393449531153491622439008947655876105599904468307941120783221274434875722600269911520478318823156598961309602172359919242666126557966632677315687651171404639278940071748620781863551467169968081352920825761533392345808237482485776310218512054633486319369718522620554316137836477628393534614098942325041370753259958574828709466178052646138495835611859546068868519345824787651887036317549258901621454507327299053545172025113751493166629830609243137156945110549913296140484240429761218047579259178294126076968967997949428150856740175943816318335345842021945683208669504565420158344797342643449351679381350274662423853289488440638853368239396335517305410055150466284288482200404644031018287922855937832212324468045740819513529842347939925265058315730089956073186264536504317683398993959345561841454774706256458456657074405029150258223348724714814669751220947782262520481305688288800065320326862820919143514136345232464755355714725440410446467682944205876039526142882005517783559573437669170396569682639398597704889786870363189004225844269830308930810645093664767304193182436628353692143226037362393559544419359148450659093918810883422143311023257261127308570900046691551953064084386848262998688940060581570006540570405906773528203040381706161920522839163805961041113109756142622634785827556394221017463988417297241586303689305991877096738912562669941850908283279577552424130611135475221766160260972974145192485447638521111324339097542445149357775942275399976291337816004827176204906703431509945883796608757530943597799646725243967010645215438190618778962794918793214494046366134452588387257534743556410914668976166095293206763199993323214368386488594705922036341604608258088881329189090918520802281685756145859521226652256492431545909661778681680814765589345875813893242208892431192253892319424065229839924934215458488594056785209609821131015133867483154193394020191984739018930313219020480212182189582284049045258007673322102957580827026942468174184815681653202275979511363491011307370560924001101664605835745774170842123467428399506769935682921638537860028040917730302318025839857207272439392094200141376299582689954618617571057192497338460821220116506511425421901849016708768317329947361552831043404694298186397601191473811527349230306962901985833015562005274228041465396196684363792843108804324330631582842969189689332298176608291534592797247300866336450205329284497074059908311986244339006057051004241486830964225787351340440833720122088667780738568204916970141735499609501735665986231504263663890115635465286260543648682214456612078269559923478159276794652995154111013150150239644111595936879035494353954908904431622242419258987461169042381131516647230441538539799134437801613996944633330158514783826803550856970332941773911072448792124500752618065077728627054826523935874261646965098735529691334736921511419453529287068005167806595075554184318349095341326007521736194832503374841793710547454273122599545520581538532725191030779857446267575804241481133623055781412152620631348415169045488992679915805280280736983328098588986327036728990219500506101695200949635247486244684831295008918924849393495725997927211792586130130471877338217525862108053217442222274267289647845284416937629860842768040389005363090151173216649415199278540988319179139618366056556472721943362503353429624512562080498648237381715073316707838505840896373439163085392230483087955822904569292982260885030183686611053178452102802994319383631240098106646197729254171385276638740581603267938020558086640919986820937118626499346224224308325396364958321549228716574478583675333185459227964207376472578698284444388754830316446971706986771456676869797694783113490234027650126333410456389962426968771788178987420690847563679041499040571587270491353937879186785093656517923031884456504451303452604209339158355473370421232869425300276530946931367364007260255802641554355675457997043001356677093877248504521261539095519249506774784653933281472007271279871721151608179391813222846544182288231442625746806233600748317150152308551062820410752460894400465032544879905030929610876043582643447439570579121283209491216834780361567312130844923342895378398505229552723774956766799159126286065506698657496039101215512001829925018264659502567503973411435079807321905946631073646990876508264804120843583356502403969863974303876863070609729645869927122983848031759902760886732201063148733635984980743530312074246178901422906027505908562292092087018062035522046318196558149389942217140929665297777155657146512006433986512576105071603768759873656709069516029900355705819021273644537741377080986894323053175619817251643663660654148616025104775624144035707005149514276721635378037261148479725064877920438097976622168799324724877764688291368526062988696040237235419862027565557287177925664793730343386562407875174516890153539057981870524206851925341650036006554063757545146026314480507863387336253344526179073638194022256083038476570123012121638046523941725413998844142289130351785865749036043472938464638206947880005869876636441549700902434187465986652147035722191056433552624386723611548530295068664064649583902131475248702741878920058402319150669384004108841186743011192368075079089181982465875974484387757943238678131791802797769182982795961018943108367577572680988597653175503834146569866409936900339717135453145602579102735314405602574605093663979638528579566419286215231439140669259448286226648764341606644123925334799813533722973155545156973512260597823853870864611293204178712171168683961604025898024661494090927809489064669082521217977262558473277032226951958967617000424343391330477074037415624266193008509974611474440782428341182622704005949223279487653151515135363511192534138048140141331964211773047070382830530344319420287368238966525601842929709543535627689968160853210795478720647581368430969279041828342281940541591666192225333944185129777783725267945991764961431029948845486988766804625883639678305292295788926097659171981006331051870817388664075539850132807576923274706537219627231788174407375409692908552247820766520502356530888485599606300477840385328039537130325144637364090469976327199513024488079634211199029359357712788120762868504273846128790020450419716852625544481294596973420427090832383451252253654041827848025298401732774309899907019889365099006285109234844036886321741598663612030909143229117758979299117147307728087238546516750289165771033902257085740917648203181076967171479994183457560950985925348964532813905870972231673044556926141256333580928442128853676253078102586994150496537183021433972807912490835760483767643137818729720493808172152225121353801736730799241284419784267084837740689842122608382779273677254947937292016254252306749476056300851432344929700712841917884310089629703857986084981133715323038225350876563815687352027263816047742688494317398399449779051762517329715560090174581466757302769588848464476207747688515987064700585049314880131134316959334025942712181976308830806949607744653400392136655946784900251561032140176509241469017018198781301513247066880674056302295775852261275460046068300835631531051952070641103349867962682756464588729799240270732947622892662709156204227467642260841444066608648991643973411836804292570823370147612642131761914208444442835341667145981164422820998425931650266831787122602678529644733507181951776238078344023210477403267174884510248305105916510850986184943119304625135933545585817946046361006794754423397370782954159759803832818273784413721839592213179072946977818341708632795913097551660931907439394346623614018619456857897957002377994698438982698301059154159874704836902348798448763365286737030793525726979303990658066007988728299327464656069004659848031889769755642079731708302318240836828246630719021117394320562190786255759522062279954338437647066636355642944196287678516826137653111708131255153035895384502852959347743982497038856547127971720833528395585603397098493310962985316290250175942906134726359237461126366551773468738986327303391728595763584020749137359793706373883298038351991959962871954499529455102145747269103468099626971899256001447283828720743499391355313582939295931698360677136803691348937324626884079799229287704849214016885791596948516233690616186151128290628246323329425147429467140811938075311259226119533439930300190898497027176669873002134911711268698695164620882982047957934160467414706768457684223077187056094307968540728951727350413707397863651058816521369256671737851403385508244292575405407453151406763262503345526493167507693244591361656809791011298023557638697766359622394315670439150300378034047941271744445835037560603920490542715407471788948470681851240351863301956764271354744971032416700565698934207842344428359337771975194055117084946469096939998396947917692111487008558170254655573222032081037384681612671678724348610337382208836245804024209588687674597497499446644643506379159108803876801449334368297057984147132943504346129212266345639674231028446541416538363863713910948980597811773601573667839587034239435547183084763934009140041330829793216022747568811706124377996501318007053568965719750105509438391784159628618997220534198502732960245546173765722514025348687135341647489615469935181945400871744924654059604598247114190052444880283447964849508571849378078149175697925970453907535062443839412079065638413581664223041890822706082085098185050400362380825501567867859866684045669561307317678661479616991870201399442198379417644583977451106605683205841670049143973817405390485402387818965482896831599827773567234091119752769411177741857509326371382472564986343475852837132978240764923608637536487819337096912854070792129480279127848894701132405335836151194344205693372176189479386773804700430276394550345308295073379613609132126227345698411962974807279852569800652117970005631968029863381773460450136246500892202956266482949186917862073178530810403943072452419983106446803116691919026769591703264291604773757492406321822305470501434142351687087770222933300230475459504776829579492689879050710923507223556759325684049969500815736420468547761878710419318978506902674030302116731974015677044711328558792718770520939278254998083726682458117010646956432779847889630231208377206667507586867146154783083378788922460447248935998783851446328313385195608940154019072396215278756993250358490216741354548216346904590774098726109027127006741744474528062779720798134697283758900672972746576349493494717444410268564543440232461535350569522796472631945508773687308803266378338025859066540179808997848136050909047096012416803137773931660349911502338660993347359540163853375364832484092446326703964974421135458977388831145764461599806713135646891714879652935030361449174272691495699847225675669676941181402802422815299700102072391778607876641676264914518732138108121900032316676007781412098107028099182176745704868232127203428249623757422593116752039361308559516703246737250105136962924891685084139222244107305377202563690753962227092831195789066625181820858344368415290913134317531401052912318982082594147025614573883711980525744304250567701539531380786610353067355337289096104058472097215904119714765069434680573414754885355061584101440139823921305194672731808287442302878578281753010208220744594827004652938753323197344086980017452860010781366581332471529772461548787109248339417439595806883576071793600695517678083090598453540789310048216210323018472991500264176733480876218671566953301909830126960278746272171643955330306816316260143686995610252651396109467531730704743152391973220271006917997689594430618138940822825570461137993842964896793377663197526699337689173187988408506251951212374173635820135644315645940441962859757691784341357771776958268406805008039379374842911556190798387525876539456561376406363688882299296229993107633627345940322530172655167000594755348138173148328933680767786694065373950808916065628315232936593845570734658469878326057991687724585581514971336213217994094023235660593984277657957812451262093807403287907536514901782584640242239168582622598225137525263500396411729802196511417374285167661717237018029064163620426102798305361778914042699105121552492189948226807866627595278111846329071741501062215273454661330522670856180759847201060877586394306013275437811566984893892861738016428943973316541323174100573362558282122102263340117280278277688095787203890837450372888023857717576782394588752929985683683302287353592767954589815037032352640625443333514179638506707064145583487139582915856519585533909782706403804342292243072416145143764000124035959352561866578340438610108811513548789525341425377585207263202422818188704856646680094436235128558683628354556738171292350533860184693801140414568545421882237243989293271313054242213830566166987029540888753785603479724332225326852525361811168485035193358137988813203514040818009307652169226828649516623294621869248669548127278266955733369450099499460540175059762212277538395491922057015604468741810890243057692840512624926831580052171873831789208939245197658980086170593129504063466289414791151617936730788040706025465940259808620716168736637280515142752491229626454959261320216259223175760979379377167033054146340932799435472551220926302758960707134054941380350896848985558022806003790395491023157032946424267249170174149803631847871157226559219779088537377869559343006360403645397445922044059396083001034070330730931256346694192160938275496801425920753657093793698821151308800476631096805424080273252334678397724522845994080838298755585032324668381852417509448047999807294872120451486275166433842959082223875033609300399121856460976824194540242752307689444702992603561468591222763612506010166274229236771401944196031464494214880780990819003727530354269474438660168744956240112082440983697849946863038325553920511484322933248808484625996291218583205694029632786466465019171571715559779272958526676650176724313503955495913966931154099264461487368656804681413165736877667335011882528874534825637926859947729166587692755178199725692996576278954137341464939167814382514120158753572940114827824844609844208355138075467283601333413628898171708965524365412116161590186124806475655813439907333134640594273743649386564844315087085681002601915370814977377973205681870851012427827995510493083904506441590332775710582646444581141822742392038155984435827340966689000052062956908465258741031179147258337036565365279073932150385571876282104525933052515824284322739482875955160198031282972539004545302046971773149867330412173475469041420425356154037120715663098289429688262323290015957173518030083983005570602777667638678533115116810494098361103643244660254382624105341478061040134486588221622945425866298391908329332849954798999617287270804611711863817947198277486643250138021793555333678444058357982256789658948213382254879292648864197072901205763744056608180679422764711139066339669752591382672437868998664117314252845394551398531379472340231206374958913496971687243830063772171985262803906179789850067868073244845087818869904155453757641733088566267915190000490240918573343662382861150616080979143539053621551868510064787170217997519889740931905352480295759194746311233675398270825377994523404850999780814053811070702005381204952941817989868155858819132024157657036295449780837758224465068113810491851968923808446133639131963091951025492293618377803269007076749017609911164935945414815348525109885494461321636392330814073685657184224456205608589028336607401598930426924642793795545325281980285858234820634174057333644494551894697231198263822905446238075375178930319448462995471489036112695261614831467792043630686751104221433815544591705686538420887361966581944108104160890363167149155376147065209582337406783449744380592017950261021217519018765245434857613169862106356406774159459883326405642983526125389088300882180505643814642774415554705177829790380691678573550022434636860525773221281275396271040914030527306992265474094718599771484877799377282578641777541776580122436291425446651351318366849584913019364050554739809475422427255587701733322242979245526035516696812888009698548504954780459904126591145569467290161004698268815428852041128776863007833886248900937629319153563882402318254228945443554032034805635163819764996269681998890277101254990684550733612706419005388962688801109064592792364627432653155810329687750529039165677466750648599563626406082159613713736919789636743758162411776879096352117696850478057760467313688283129688977660834839741903500962455461067697873694087628979948013392655980366006186113337015575969348054602570227261578775837444862211383436115714864764722386631712205982309903629900110124097467019297706904255181176142612709102336208585002528100607266699125935620549769427173674080391445988312675416362891007222892200733109685556219943319185734337090752154907501240404073665047271231669299416946945205695910065990419652820435471591852574206008220644599712410324055649143582753360689633130773337407463836684930386298905519199997180398239934882067855194915470700766403553500709945749667949919253827008012325092974604367476933680722991838968471834554239119021490053690367041971410886772988280029527200960857027615399554494053332292729870016737189995543710012282303083522781951904924071841974867122201580710494901704250690535979008291769319358677470442813784038534015259070236644631709187757209495421287678432466828936380676785423454510813766137283114434866196378023008546255405718980978261486622510224652366346006170934730434726357602001493063129395342336185252822562349395986907117405417676212843481767792612738408828662104461791498050497268827128563998095060896601356371703498601011878756174715313644019502193872946123531091340812833755916411459527866728813817753648411083129394817883076897947667310048612458998364858303753249403472450649293420106065715397159299954823259225502301257713007674349718416929984158433010495391236422326406638518085828181695377962828309202296811465009405638468510976145109341149413162571659800435421700357840865652310331717955806237141406184678326775003319278853475041516371208987708247462703575547657209558976136812781869961624340118942819035178299000932801863790373302318164408761946738612333337775564522030795397481650323534547336429025340988705915737629560675204053634158402047513620241339001460566925951591095989998479549439776917874818724714626432920120151323435865292551156388661343856390969105590280702755791925234440463390234892733593289906226549916189658062633431037806778432484816121663742570514926357654510998806512313353979868207042258537528752209493234172147218263825059480881227462081182411441892050366333949609722793542533062856144571861447055431554597825648381356995508777400756224363535332830598123093380328528487396593460126116614038986360877843280353910187842262107962225524673289326467030533885171022523427336451849102451762221270045617583056098085757729933355650629210005669088735979297809295150893507601460435159734080160115629428196315492433764714897745033389733712274767846310547268994108322732857971551101148023712814468803769630781097510170748468660429521513125897718821251769797880497546828196243281729156136354404076583066839764543562144891379994814439159630941726948438290613115124336544661063354205608186769754081552317979487431608825104057736587636228940696347862852692151512507907582559963773274642054580269005627162170265334089053982545694314526731383163180166569646723755408045558982416058831182318584735110505238267013958094044348738991374884475353552698714699955375458907234602220233346499299283929436034701519277719717757565018628566386012013465695648546833599565527406087830808339722574351175047381981929223902965806320702661707377402434319347393363998579045488707689953635296821327704286221488009636501110224148936170847802971799250496701896549686855777349714788355169298970025701588266558844897396715630397561951440220121191278418144164006227870927079384792616500441113998870498554442627404858314318090185850887095105181949356863508603380286363932409616137576303315379180987314644658490241632793310013773325336474526691070111173755293389509875690326349800785843733566768222862306246089611493397150697245234978532070724672067176600946708327738258636890769135466992913302464227079353742508658233204448058231841192497088676906232261964094960418579089221821195925039777843053660945919399429066754136091551375900880104491665915450195880205623822295907687399464649549883636930751537692399124534215304413648587743721801930089247669501375383285684844333493298647770905588057913243911204481686427509577130568218345087445470539879258925586896243342245636739496386150291536694250350646300924786786411963220430037051556505691203312082846527922379155579794246880333432250489267316795597455338305987771771847814654810829832707255895669704096264954840590444145344779329125449343838248591353740278778606220954303485835441658706724906072541915387023564252435121555493146273667268885759837915208275986266140074909906285235950342898159408242028030945536231032722596301705903669497528737710581318859500202930955722265129664001042974921690043322280700039160005290337772820546831951044650932364370056208791097889382556824573351048521457622195111484397766145463931730557526191805139978091282382402902473011416981748453340932653455667563181960939794735080549201512698998479752421330903599873434037854585931519608541908472055328825770846649903863025379493569338748004314695033669667115128900727250725398469043130396949888112808297438596507973455402227694251416513994895240960553126005517037036215081231896071269684534860410639245651894872465351959863690554905748897506642675782500068124017658473702594183288598460679914305121939330458017894210076440334719929107319067825127475253869377306352382116356799874911073940779833246376686729494825111806629828587012068363433868453085839578747256059040507828397395010488575638424827900126094814205459427711957686262234265014687513593038962893347993094380559922372878076009045631567805979845861317401747505665965096463277028319798339774872618454819675989508542845140848644979937290590070637120341501361095966713133271631679349073456562763590919750207636293547030059900105010685082559435348461391645989987474623964412836990009848280990205697854376277746259402315880471272749590703701138735122964250853025441718955290159529672339030032650538314109888400827702887368925097317180622592095966007418945776823218271408952444675383154219839094061747802412484286023502310786367680793234932045559984875570054548735824360193818173942142196264492317763966180510825680241516435492358074620355023794799285102862442914756847061397745487717815325795223525876405433104455322753332855984505433845167813715652462322261049027552676285012797651685500396636898929680791208776931157765848589741093078035036083107702248426895096573442887750103337926243592335401478440926530415732528503004395451590619709358605230361793642955745394929176439023078636712378433082541817023124439653479894918282153045952181262029838897741322135566205538221371123002233867963196753044625214475642726231174885285378523941277214143516930609461784304621589499754734941327454873269279843622804768418236736800796403764951570115663588034868562844282809723052790497408023277834477443731100274626597458095750179395687786313586804075112878974825877195541672819638170454859102276967904820623550307405705214424593066520572500891812579888442189843294180269072861763714930423319043834338021242769665259743864583582257300313320843799647935342028682993324452430534479756930765494551576722030588924280444964993560682331194888287778450230451028575175658994237255901632118778305494688031410610664060114169220108479094866162923452890178079347471548271141984464555290541630986213114505766378375657464440100653825595331693556662958459105320802134243072745091956239527066713715264893148970641113566093749851806008645583786922101931748489593943287202036217260675395267144112396920031221088140642667435228613053413661554189741931764179062893934437169854997252582447336356220498190393778950645510637575236890081487691868219693240149498040043383996148797683776783976129624959635498521878269613667895787567259430334479550273204398480087414204514123528193683598182347523512300897205579525198555450504478792107508059844183134278624522038166018434400491941803614055003541634408199261827360374944017991793148179773089372223388316543049923878947724854994043352568683396922380026080070316746966195764729816785340797470963966600641949760799307723543263486048166164582125561428712130858318929178212506713291610654145930143213675865682911774475952364761472800162286690135091626194134225389419736812313451430916422399522994318174090418870657713807452170435358545171850536862226823585268301774566947547212379983156846959146409987780746717518367062036299074902983778695938548994905494297638545050750196564296629507075047353372708285287340443108596883832249810842885145481168869421862307964721006529495934003290896862018894498973244125824427465147318155354246311818135073829187997604548757675944287304559681158600926596015131510947558154987879258432506856696752443217253141931592372790968378636654073215718530721009889432575694935040547968204781065783897548886787347628694518568250201192410704216868312202836664013413358046797920836895686615722487022615162060304601916540792011099943358617833975350747669530552272963561147976328672713975178832360047081612078147766855035392821560293148801206386871287253341769908942456954787468023452957707993543879123293545708522612611730017016232148743423032673549763492836478929515110965635867276625421899742127048142535847004583875276007954793626152163586056462083575626970136511685656912850399045839125402798264336369180212079078841295662535113970040653145635809627918837640224132579381091740946808319100076556653047614287659224933783346384530986024073582279266498549363352210776171118276355981784038205278407006654808992860814996070731047058912412151606401121904647087119155690788189337980950796955201974480828526027514961244094209743230437366469391961161935642565369213250698062251001028852174800656234443120126655392714403300798213494236802558655702652568098700407082024223842174079134310823290879698675899329080154870419631430542003050558668717229905365543451762825921946638834301302821752639249335446225827563869210418913457893179849668682844070033849973925543895159541659944330219634922434785494557640428978900787066268326686540005129844953345137320148878797389325066715557806743683831332324185819237735373406398837893859311828897422150478467962805747881498145115769611343337363043057845868845775792307867588408856752494458830502851549022784853929193047822430307903732089672046271760864722887132816545132653239812675279964239531147520404354037618734390232123015147640528230472637657997298218186093134671500065754271843688465678096161345845049210525467258456212251662205635211387786609588185439392739182794283827325840605221412626028419960858541539715876798621827429972858667678283885416677031270379395152462468456191802194522034682523405966814115523813017111260236567158205015956079298696610149403510342770157731533000496891041155762989570760812013849465273789113932214586056033361821940139479387832887108520091855962412693772770221617418844237333455100276751562288785483377621801206232837332387763539383679447057144072784540722070333537397939428408469576013607195986252669155461521389487352547749413028120511817106605123882916469402627593288976806552572537627858702080033596796382698730663675517345028278747008129462517101703083458041931228979158871073100918455663544768362185894029849347688440031553121100118935729124120173729680715399833446201516901718310173949331595824186231400547185572548858197984348863114551495871366615420505230420285284406052171044866743577661769661074575373840867332695031872247994905370465200538222161361271000698064511388595351342369692497994754822569111302189800869676595267529547657725629883331766349308322114171408663632502123670884363738809977825603909337920231157324106963066762755273362686521794005095401309226452720471807049170225975513846839431611800261335714457953553820072303157086506998236107389114883509213334947411739329021585739204160146105022458893205144024227874972097825903404355928810641122586478055354749487114148881725102220473058716165102405450142029400622635719799433105122417149099750075513866984027288872461532628057909888946083121463908603345370020862349166939633723877929262561895581901595011556284558889060800760069435413477198758109919454120699296450755581511297084536952075245413425786306445868431992646472934589190024730163495872186491040724701138150217481764915883408565071862833845217843225417990933052007062199982580574541443381308719766006022623595104045848943866609907934877935030151635220500228654299714541794885139880888871608540340525012393088924647792209909416321274993845368733723606679657329830924680196345371384640520330179749330324145534513951403862594373989127026036260366180118786670932274126371244406739257848318779946716132748597447000023386995454971063086221464636267614069063591646451939244358213586919082384726786919646539665765604304043336093177771218257126156877252193241029394260976453254363396864475584566111843173081988019895348212998774846697937146617822980348778478346646348223475999946002351591798504671346219589991258453636046322450670733819680555729333186860689855548486526954231145548888300724125531686653115133247137368824196316569178866141245328342301619949632071692224385193060621699984776746166016263324117702886117076497166185964685879681208103228826964419139907027642842295560284799157058180781061961407688576584687426543038488665173261293188826296590283927349853844664723849887968783154010877129789699704720363552200808556999292447703508640437117566631394635115457324606677042205734657159808506283637983642811721181142999062538230692614395594004673138372898568060438881132732022144577158394405804314215963809725645347413688761250705883452646640914941012513559447594294848873326665189217894493097342299378738353702103213498714092400411711388174188749974251280929452678060725374832467954734158302423670260644362018524905585059431943470720218280589820304056489856475835157370979298613056304291490294079843608992262479105785974726489773817605176218597768359454121893234411355114796487743737525916990277006481815213081203034439293943155108038141816028170209315315462930006109331792131173163999059374329385091680991727463293185148423660708825147380242478423629085716568855729968028047549090110915660244705742107079323071182791685296865079701953814504151926090999910344767296239510976091392633835079335228154513806941724912022716924312399466181246482947679504553146011867060780703375332283560221546497447546269250831908321352404268306940842466428335071320668354091077317848466065738782670614761322973585542790864586847044226743976833975160090233024782871301696011397963220272278922382986626960567491556275929899295383858373311589168375331393684275425182950236946767540135182231928394422921609458016521940425237753554917119588393445967307481085231156601906707704508896391809359656422529028496517617503447649562476651447724451957663699416419094894421423683540408975108552768127603014317791991970217770219512180783519879789674168607831739367046490459259488509780652529314344285741311876277335049097185083767991746190570872481832793053700115122484097320081499159858110283447388361711387964775088604306491210659936653673785356879186096033132566544163342367969673781511894100397578741358455820315531297296230564183116386172162249415600306023883001221179079889058848355160668629746602386170828738457614267603422601886733853873787606320415856643854536270092340796317271384613171721494649225869105164351598050628687586617274114935602530950953936499238998494133864622868975072261598157126152520587292238829811672019668567386776589724630780463937577679312884356866370703542736336856830892328833300488600609955872281310794954215871136062577651384691251540849529830780001082283909288666435175409127233560256004717891159072102094516201144318033583285147482226276444671652452647883484733879867468615823939006497041912980447745875554682931236671210568551010557607385451037963526501642418038857781379406779611646237785232410663634552619478924891944508274637219974120582764214770805985289795566651908084971392408690389453356057977129799884301682132109934647250846239411326667310079469642637276485733512054183223761198898607913487432962705149590142098931667708353391886620567546703170288161031262293556877850381067455084811936391313724320865663279020046284417866906874944554862620960477135635388396585407099149195950835414665053125057027956371769393017559218011466319837205758888484901683272751555525648134417255467544498179487616900060046592234384906901055795801125958469984890933777383888988480876614079488035033685962853884964573000734670686572516856946883184914966996081428091082240111435597770031720976053312546872222037683526760287897155635973449660008815255506596088166725499915510042289484410528913670505569296454735468643506008117290156415864907011019148511285039201137263852576142324816558719613579083162397029360532156981096671224296648302281518116856581987168217506242630634430354507804637996235708640905380580838893618598975694393462450083845824400666328029612964445449886612347671611668260636273965938079262550823975987472327917659814311377809330315039849274573223184565085181054235385758252511269090148432632384250648509393153739036115943124332651154107606071532998359170826086367677072913013745867663834885075903441664939103696403107371659662296264680798918557946921347171378129732673656357995643112497380813921179581868253547822915162611073813886867541616669117970176138784914536026256752078290079908443096642956424115152795104801986848235922500302346520511274554214129621281247022897005981533741202254270343856775278959808200914883548382115328506202694147187973649423145081431872374093978559697506528553147355051797953616126194053043890166753810345829953780112307398837326559512849837433882158850004681347256128201852584810177261953219058966316372194845027122596107462384157730209184805201529998805850522472410385816479185291355235158112767322066511823041361324703419238041144668675916344666327634611090728674353675389909725522258050627810007212893134264540663928989923966399622883371075241340361950712116826306957857740544730883782925621388617138731995210938337633767347347161622925561218868670849083792649072159970661385661433488572804346317445553806158667936117666795488022896499836064845360701457588183305579977149276862842741278025602409321413562871214295317117424920185134675743068269768112537512257677672939527098655717824933791129589413863799117390574336976193412072107149534152205789246201302023806790860971363441202094695298274077808671274440314311041277818088128163765003075744440819512503525788831560483572999809567916452248100913459513160489954542982808120613503734895511896439264081173360701239571713764038795023553082908343787735416477885833872472784333603032120448337623545925773155981557945412012621029148714942880737598743846054898275918191927407728620449985174243889291647175676338718384204298833417900742700179552724865613979019312047479141448672813127803246740695271134928159931888169811139308850474115173796429006483106545724627262967634556467886022435782209798304432225259427012833801062108028450983868340974462717861096833314879147150978082554746627010474409423589907288341722032869121859599305712827767146765011433345717477014956249559165346902135984558849184946687531337550777178269357209396326564921270791016470145369354245822141322921356310227428220252247499440997139557217401555728683565595685866304120533446989854859299189584967530954081101074484902901307260911819577495565441029289702400976748542604565253814300673213330092105382697207617378304327105536304991709429146350377852385369466194857385230166762706972386586235283516117562267333673237698343198039635857555988110228081197226293350935827834377701884602769057679934918427339975900303275860839264359946747228700105571591035900300586254667939482290318636524228428444916309996353105495976257636163305365641215930529585065057834947410833709582818328008676535033431326802301468731716753992259178295393535073073449847726373436023236074075935832906072362604189895757256178480064147597844460015048704315876806843551546931881421504786228239500510212597372433817282651858058746128059962025461297901675594128105965421606581514716212460319187265443822225150600432123348623739132765178385163929019120201642677036284400308691959539033872468335870659718669077545915551469668398133866763709888118901903667747483761174288331413199518131184803009122467757325166716082018385827051755196416014558437010570755563728360554819425894730022086194063568100542157455186984241078762484286529007622613575011231568256669266856719905017119973207253642347616051748415299328506852469347544595558816940276497674599451948472947471899983432694455121839553996067807315099943541138455751654489658721243234084855085232017239467156907875871470820756315662304885972457492610877799048608625677736747613478537204541470590153239385197985083532015998217918155912103304552806202547962417631554747728620139261835152620197297393655706403838424483247495918236272946492561518406224237368529883675488610598557554621684997537143965882326787897548210247733670195042576839965344479558794543983496575350049343371359106149532719762294308118962280369718545964808604090836675211238313317283812775700449648225307411624475431649366030169778979606401981728014797916763481848479564866263651845431003222400279077747426740369105239430999724527144945151795819450081825203514945524642607195827052288753518177492086043384979386606708255760752860701582509702338774212256272135719325572120719386339152191197142623187322576035350220860546927827806009208201269104112756215932228896046381214874214861056609783634002012072639580922902282562197485420642347114372560392564937383684078703607470078713936540969868028225181347683192188009876545070561065701519578805997539472015635305461753573904401997859499633217178421170023148032458124127216174455235314651531000710336885790367186308758365247880233248843524874675540560087398184466752614514111226227152410131189809576354654912389421818538141487144317258101835457671086663339013955782283415067160431352476947585192773980949896772432480342295641922554165439624068256616877083677433178814406613084902545720098579673315683874637120282971426665178695810380674402136034613741466420938628463115332849812851634386988644885229575714209311459910691796973928459671623328048019513107434738676715229544010879125694565602000152254785986697077549213427119493207610614392198922800783208318971092071514325730972042606050525422226458615658359062593979465311165688068624348816102554130161666068035951995519253686864952151590823035883886165500454626565869782690004452926726186763804197225503722505576690080670530755933689932463861703888155254447563632972406369416035632190508826894762210692603893641433190449608348356070203424327033073401493121029987899483438465484259306232168984561449555702819434048997464131642583214050387771905730364688673728978435136761348495473468882295342966872057215143156189003703148113056036567261298718816292729049386780507248223266640044769702134903422404668651820099804803354699372042784392369527311422373189731911885692717327695327682389693241779315206159843107638382700517985569438043503893038066852378422506391084252371401715000475085335432470210141211822279948328234682859189763592539781808890809121398320046371058865293180366614888054068319255137553420922228492039356097537276662039873908659457194225744434327507886295683187707890470099343269789779180233771236708426510179598915203184660425436637095429214420827933666691799765396616192695578354929284836507104711737482158549259453993416821495394698550130156741447903132025093436286003948355915325698013432392243783146435239082540757088994268682624027972676816858343555359763102694657251673153094099479942853852138040284275736841162190368636826268562369327675894560185079797387650496883291786168934568063622257011155763565538658978243810830874448665255807720109509828257096883026724563409836063796749386354636757372576224820448343774723150209786454981937765686247527423351052363199587617082365422792693058801173306667355383012088358715094032595213907254148241342662810182481292847149743216853665230145398352976566196817500795005545631296450998287975647508238257644874701807920218256635942286672050025008586622577566039391329778539839326726423066263422478714722129620047249685049185999533293795142073556810612202300591049135169266792053905429084252122525000769073377732715056951149354989433772952654422825354520823101894050262080857082975811526654397294835288039354967906880878790328213235642297395709277190971373608757905391775485193298531300172026800410180955331294720599169903657686315262520733800811972391575576135736280800797544997614181528143978800383460218960219314343973791510022633428044862473413874007047535599858184178001815607288798730476356906628814526505073356575095673667280930791768892060093387248413169056793916748504688311187167069871920301209625461495893458236757965951808627188549881555741940578347153800975965493209848442086253332113486273775871810435210325820780185521001885916630509233628566702868935534811732070459669710633198445713320581395481289913768504975992958805282148140627791922747684782902287568608443064040654239363241575861741363093512895549657390772493128128274350524609336159614805399334664049545000067145763438125603230727163937122039325419558794536688116905480860420612277477863455462864765154044633545139592942622617377316660999210352210894817678993113297164949354796806166158420236500604015697134929252164244526134573345095004486597097559097947177794602436934873952375899463310741995517016437402608119603167252240952487015380825092636171461466522969398144478995577719460773993279726282351904897135412743348331395705217493286463251114864495745942083279016721635402492077160881186653786115911181871069348176365680196527134822055678615341463777105160719869064595724061213708707893501878644100823116484393249090295407500091424952797966140067341708784209298433674679888559528359668486070591776834284979045900343513622307341517513301582644476673141590827540131053089728458405837010619430737108170145948377882247016850607187908666073105891017571288930263369514821844977541310296486026135466547378027436027085327873860807003492323658806812443851322376163100607537874315888557005048716069966924102461887261805512405588368405383355107467513614789072960297427402770023213416226279471600932600037842758755791701113855210155917296561813042552804110282296809638348391705656605881473426612805358645292442710438199051335472695540391486443196805595097751684044152131983755415380795867242310156173393130871712004400856007862040799043020935069468593395361364348611868479211129225454235503161823966883922178181108849260554860435034334822702312261135191599622215250553374734013745545158582234543971099561912839433593542569656589459273782680321929987764654396964458048978017152186908860645340953511163494155279842300095532027651575180006759321664346140545915621784905202947587940114824343902660133701973691961265660710852377380305544276043803864523049333209109952599442783605477245242380800963467828005498821498456977996587496891642373895813076726454372414935334301381645211120675305272825951481199503044130366811329893593386668572303953503498037066669231192207527739664168256295703226281452850284232244286607951278218780024357892547850680970639845055472813850706175091515343442142320181049075047756869062028628160916955347089892947367587268051250748644824618230979625079320202119601502954156477538422649719965080052471493862494946288485504397159665862171683027599351822043533556372717346844472661118302325696352398187159391022719882024308277317322894107743552058437981591929295996582301863568999346721255367929584585738138938912946688526765127951655803055269842438271783464435674949079800873814078878723004859641269838670750461922094322314911499231521044253734531682938414094978732480024985932079487616420433358856305679767529077686553826537100224734031704717287317217164257593233048087902475826828017400892038054850217406963631660515814858138498348922970745794024522555810880598466670536999624396376039358058415719269121939902791998539519268281800699180971630882779916053237181574870823327992391613213968790615826463513917012287890788535533692319147794730489071171676634072380071036169932875487264757596476009248113623416823527817968723718151400676635491691791923592690153566634840336403806156646002110899708485207498271676531190361139635313907037762096151230362066134481459798616364618369745101782101268430401400903203421638884693079311389704685947317973157996075718761280752310642243830559363221541965592990600589798354725891307818240935198698411151215745558723970544454144303982303359073474322240519337054951937910351423902041857328242725636288212560825251546038824213085164050777734594544294915512972859302018434500957515350968663492950304613741063020506424388095928710116394510215848763821519447022172554761824099290817346963160639712534281555440211296646856320585340718837410469468751360034643565068591846914764052127029557936085037636139404485167713977906037202908211347756777812724207094904559157285780587213444077710079010629861680358593936385208280787908254137654131020454645320050052260195058559043640269200932242843335158835865234677306366154435817677636923894935894981858626119977555657324824876339352658257000573537364997620249699951559680615003431507417040516998487540614699136599568698593816931784744257899353060332526881880182140475517056478271270058199563889404817752130593370818451737440706683907767369157425234273176583239879059254023066395181139835078566813510937690233634555174941568684934931606188031147368178302221172399474340561600702937805456933173735803224257927883357923351023342193019800698360546878992244390014244455597058111012358634908540207588453411004047988858516484052989249942006207337325028232729866959278709666802147423104963325831590809984483239269884082797083365154145592121007187210284701512389813565973080067301759930921183657820222049987443089305676119851979819274304321572156311686589558691359940472680247978684475988650019171953391691253736241057710968464907171705720934943946069330076518267544028384765390602650713242000182633740352528611078628146848326714726495004479224798585749987820588016425052661046812558973249814788529490717924545166496781692024628195627267782677350156655102743125472483359853255912113565979930288599067200491185839095326727319445199141199579941485254878715178234084764131686666715273564475435883758375895751821111895606528309896021293032981172971200700671064044057173329929717298882258150137054661510748023069380612779614020744185149543754008434852596280963392264636888780459821996745016286004362920094099062381828756158821856366663313817546303167662194782098183789853577097580168877437945653034438829681772073678309101899185708826769972850424287222068306206509889119487521622366691387739144838750840388748802405589290241631679024141272386809222634141984469982641189261789659848923836247025494757351659903983354674579270480964089221616321122706603429722389962886984282770964545082960258107510505303976825337005545864015288981879051150978048563399972983683751704968715708006878636470418903443035914449164203167004703747360406172890997578899668603820039359004232384547861141520068211233744343687710479278403050550468124075750012021868431097052674712786129755047234402953155222724729541681728938737327614724174446941192652409598454382375315155463644820491180043533240474615637531750898467471197205347829937629098400456675982738741681304547093730451404332878735195586926786012893025803900593659355457428612782995043815371253406026372400696093421088712766551626298052288967672181895818943445250604555827563879303693569421260915928081419370345839801143826060939365957920840085421280458123953241527414496908293355846590139275059357603215834417534093532230734925537657261259758590918948328927814474341433841545748628160696534445145388610003265827421267376569133237457101395663734550233512593312295760408936937390290359475485844589822653761267147807447758076505206943174465418851789932102454064267775915974294728200364711201065525679447737299347801061946353452771606252569180695977904754533845566781983043731084796571076130262449147111829927224963436298727571667362342757542064319864273912247190772014204901179331539405937242893265912987194517602038332425850153332175218435687145272215143693718855304418662194910801876911834154310602725315719138912011691448075198360864496452437545784585713641272753631475567181967357021583662336021127108648509354313757456287464219128923914901500847476157560870757921645135511910717994305120422508101620962896347849230782753422241870611969245328113667154211336073110265230413740876833533768264522575547860009662742707801770612489830662430257031035040576180279938526636795222732171378703855301717727650530477400380841525191085938206164159758333244586208999713584612160424976464514631364419670879306750424833035615296477008533664707094884564840175787436462795035839344736177171897571402900283021916251747692445550887561727076815711954568489870727938680844493799786599979921635648032526947122277771553211159288040740351192864783726678752171755713228994191088767678854060181451100128356520581470234539599482732921987438128301629666530056451626437193631490413342510642372250753226936073519078936222203544636888215249030406703304453397040915957093913458116725642399647466412226214292771711179197504234873294638440476398653736497107257255941391910158030883462243313004653209720709671601620498357182340188597393223867680245540223866269444834817878251789674774215287593476863072444880875778619677527054782329602239877385587609417438445206946365277614601761275984513698687582407826773293169919467984895430290738247039114431981355066975727257496305874212907441044678946998520527633476809321215823722553489528916961266481867369351638769586300539498215978741946507599279863284759525645775197026460431860225022697229562918162321857687550155212547731145554311593870114047400799253905158392504818384947906576719314311664636158122792994981788903294522733804330929215909649883921112265443661124485347772362650707710691910646695208494712679266857057099189223277260112088095867526353547878751477831224327746853392758515616017816326402008794949152819033255046147670853356340006045549606168908991947194479558680441451350634328886774333236987676356340927474027533606749012520829236654213099097756723863463609009243966907710900579809451143490824661236624535058250631810091066538840276842203146304577813711806232241320474226194103539140631124947937933398137381779759225568873185381928868429427737398309396696871381240775073535570541256263044478504870898368938057808212622411817003373304624764997244679872506959829550016024105050017113316545882158951058823623181951711487682034271529298661259673800193654472292081867369233774626890446392883600900172570625936847509578830803541952893158074635413439195382793696184329166082158652915011071230383646206116063947594292763779769332432628675255896271202018116322810117850653459106562048746221340975193996743105036398717819708539498493456161467382906530850890208674797594655187605454995438550997586476936018696758613319891094854527881633450134178702094829559895621707261314494985792307319851051601474127351963885087681777681120414758246194369040420088322755768244837134412573224049977714676016693029783980697175282007768797886850333328315385083013319418790103026609756283623320927888185535772377923469378964417097278454670031197393372606914433299126672430148408462529862465774465269057572606711841960101170487290130803959137970376219375465652877522532295710114998371233390654984419218234524262253983960561651845151736764074595576911390368992754729616241085151421922996139872653450947031114311163280123530878234896390965786316308697456910553989569676182383189311689331719004714052240278329810010078888568995954372243456048256420633242887972355115512082591925219186931319073983652828220978062869958086129886716635457043294305138546410587428916212441414545570954292012457510296156238527120040188171228251189550983217453453555045390369962685365237018131233844320441043587583150791449452318866819902368786247129470151946708712923806273953443668309007797632589131035615304268928722071572914899227889424386645831503090584147853461409072123550606379549443231501009300093639345200735001256382127451996084694908768235653907848767140159037183876527842040292905202641841822349054110194557690581451177167879837892472764671241499056509002625009614185679704929576702862609033569540945162877151779193084668041372505391660580946673977312280270404988043790605164915889973848323258137726149690902623562158421929754461113703010294263153129066330179355472378371822412857813524115796334467336419001262812984595524074387244908103851163228658035489136537163799258729703762329684757924418764176314903121184838976235201402394706000987623707628083093056305384981438061053752631343182545792839320897675252492634560540508129791751148236058349925401559818229936718837484552910711601939864281569187530634029334121949405025846489304437894144307944062775276323104627081045067597705840862418838317375122854637396687163654413443184927778954781675279716399267999586240659607848028184032860355944215890294358220059703562122794393857587268781296929569684095853991808706382292390448660273268135334171637301658601547915751745964091397717453038282458416166289938525625684241565528110755070616170149838763879561712829227156845689440569056695061252279159723576701209820724944484040784117397956813543035569725788916368905310861654453998340844780157750230563349256067604677044768685865543482125412209210380309907797473468823712676680495215024030238237396532579131793626152609947101988323336793399759388673793888079263193660403239889691046610730861353321850821811321644719438532279842771291268020271861222386926218593481915053165994947333936865796034570964279565717246191781302690603048786327507301409552366442401857651036587335332282103169609118134180648473601618565273433983699390440101845735617353099064053917805059260799312114336575401565898884594629210827596924889106161715258686572504312898841044636608130214552991600218972810448224193010770449745169274579130889714496954602339436023301753727793746602315916657857236928305734245113752448509475400265768502639616552302279903937614311142418513798559165069177724635712021935219491596428680811901816876917500918470682650350883224492040412607145772159762826032668110071255965316645534678026465420909775015097423496643810028436589922566000616960515959408300174729565590793114472302135911498554503650613873342562851422977435350930655928576557379226390110150145175866244504025436511158601833002643384912866538795671464030153736893680620015865913500996025266945775995637070776223350787254339918056731912880524335394463495031960900524782923376551625856946618907502141078176580130884797620007613048573401531864006172735543974857414755921248927705478369291063708860879407560906600460728416412575197143177806125336927948783921593955334067261127956137619216149491408702895164971258649912664551981004406944294704265111666337297195812697136374912240655689213178064994765330456194406233681068011241486301849659207741399407369514882303675575396776616589312845063516960340857484501225779192169313053287628949684082085826751554388475926153856358936221034731922553123720725817451269147761794262118033066101846924754636419780823629418472845146967270351103745328310512361988270622176527547661193237318271033215697508234118234450875280909875182069098508669191688118994357753426996534110465988911052843550275653137728207843393852047035287984915081451913941962372726087343867251656738008946412143799666128086319184475456781757347738767186553303111732868052097561570554299691749171851042878866572594319336981146884671144297968424047231679441076407162442925194395842134901871333536022794200328137757170203251353529649623250082904115459684597982221195970375744176666590966139478426597019098173422501983840990915000132329009313442236396436845769671854853809015036197628245096647846788136317918970513602776936796510756470265306389586115044594451529888652936151391978406039528347517386105244935663590230380226429723786309465472076250775500148345769886009910499312316226128329281682683567999380895933271662015987394974175380872498218040936687577790875049850702890531533022556995587238163043366928347924609598935760543190468151996206106410675701467571962984766766217473673397589024093697129997545205960448856526822849125577946276500421566538548574876580207446193964627064803895290210145903609424396374957646554988582657209935707194249908398855943532319558039820218709904585334179873663135993156011905862105822000567686041510765467896036130160728483092457715148650508506413743298204895688590069734352344874496538172634949358938809198696925548501454950594404606521746051025062726269324544359160440419583857718078969578765180933430329926452495946339869730907091647546297871195482234898924051736157672563985594604806788516261193682906447840929159748710357037910062095626627197633377929999629939949575490109646723610021889998204757778201905403770240915671817490777651894679394143243462475133962408009450679819512254595115831108707139906011370392555593249596814331386822898917964097419451745200359268515343148153905789715861562740599478661111551882767486838145359628917611282103857850241407480886616134841113396478296704622515047198274355990470995129299088630492247363782017315349300949209417980846562722050334254398734365306968678999369066751004329648611772016386237639479376222970253777463712654554927402693643668924684143337957613579169899958595264647226341118259766184648512503605717879887787437101415472375918252199300650362706423473923209274557350856492998575270186497068213574022795004795559870072613354668571061381356037285065755708966632705076726819593697076203329484923185911785242305380985274627322275410218946258016346854829510698846576109824189769970238863849934024448210765287779800908649337057369165792701616231825267820254087811843894486501344512737267177750147196190528109359553127590563975536061187994687642967882348832481125877825277169158841425791075523252986860156369736757290016846376723241264226693843318330221455885911022358460887341364551557797504893368184065996300826404911206450847232558412794304205382658347074588498680927989086056567358339566940037101633861089157180572479248421111079359294538894367421101163098378387652667279844118627576198875816798849979445032017655176433503252614274800135071380421122421123713187223442638170303054467587700046032872902353689622630095514904036162004717857839338976128478524350936153520451566606026794100688249922990995117009779674540545603964773868938087206865500860135094884944873958998370285268602149217236204560533838149840831056912143363946406566396674934146565640772189422178663392469189763639382526464697969256988732993514673867691694080490732691785666748664687346225110639432048424556221548047104395426920806489540341971751198592767616910440814594710169310013762085923199728976698031149643696378641630759244511724516034059768556394049627265711558981391759622185071452985982211959802633788862085021661612449157744154853858732026491711198553619073062055448410192262371534407628023469693524971686932523475441229564180258174045960911791620663468985080630660867161273691750890890585504814800888629320852975299466324586741226535761494921096355510776145852591932405582158741342848187705350891329631581826364230224853282535634871335278339539062856560417234691808263811188890154989074823827104243814742681756408218670113257793252735531300282876064905670068035778598093268514740761124007379794258761069553334470301712151266759228240363172514441751142676364029348827549651103277071036848364591571725647699947104938753505669929654756261932067280040003732940038351344242418373992522598344345710781057623350847544742241882584671571281727853758452037505238233631223022285781871496441306657706018012735543215652222067058472205425265951799293992353171257004379861402481613622653783880891194313379540325918163144673024055182925957854586880648341694006388174703521324713380776011918041296308616493422453456849116699713301066550132409026998429919925813848396213039026748485470541708087421669908932300892635267015656555496957002681977944190047505424504020623378834699042635186018300604472905424780889001567550767004348448352128619679206879499916807115142462928151222726834575582111022477988144333802457337367788400345377315472315622409616192755615593149175703579210071934255649283728802333205493487649888473752120507157872236900882316538158144248939563753510271381101567525558625908002279691763327439993964270031681335927087178540924322664440224319196327583252944688302414600486001365594518344817098138009168201454753308125078228061057769737743748123856116617365271319118159499086517751275262440815932529570116288641972457114700712641850406860692134370824798789225244888178788781082576456642304901728369802149533404569511890214049964066488479009576169441919909132452708422991431250073640712265816039354144731998806443128418724644325944656791589084321984408122898710272260933793102617151820771277837099881196338245959980838447415054853277837396008316462423010867680905802660309049474108365490245765185778741644172416378316452410268144135150482371720386103164006334995846174315807701534015373615082305310997758293220828303597695051589898754663969805902085472061573768562979697349007987953326003797235083128877738043785790715084016217450440121179748734069185263192283592972009323017470720355559705383295287097646104604504835401296178110832868577328666756386883447310788095561550159225734479505099586338071018118987269352799681835939815359918068179785084813437632482554849328091629126075616859747778648858720573134716570826141952040452789970960058423729439702062111341989185816364557215981922149354735821867501486672630351708475393044438975970173769823186092473391237646779583782680996575346304153268482041998573651936345131311178119863220633599737390288009803006736239246859020443938544566258226306754359770793225162798208054179106245135337537664924742999362906507687924198503234740343119499801424109604626332723442384139217256622164976465464289817582871383378403001338488481293850098763889072856037050581974369652706400033691047565053557454800491506935851603560963808690360355804238900323175977517852494786972053620929365365244451385592137483099581931764416335698094347339236055221797350339527161442551714133584637774771468246474405878519535850141067894857526397263893704876465988051706472494922552299679971241257917017831075884416485803311131655920707177864840757442493478273782076334091856264178107597993692542767781605742100337447126340928773206814546810965073344754430776530902004019150048757839553120142853023629612526002301587150033548499379475949244893739448480366939390654623952922542090988310798435798231512615975428492711822557968863278005364327756560953791094183567593332952588741385260870110538931476119519679167671856502674830249619804470345003165143625386435415283093509183243112045552218752566478127059836288857264875313972703658455666511102292259509957336908762009177212287956398305523171071253789864926442767221682614729758377213823907608170836756472357229710110733621810362608554599005678224680493935135283538430986431416639311491842822939133980068192366983854410996451835998019847467955013026129432214942534914710095279285118792580790666732401645990100286852345961114260159934773534967805350993063444629178167024120647751983691506665122198254749022897310977581045564152633547516126404800193789745901500368672097308442883400899439960242873300539927733342735079075589873466874193022166171668701320850861763948173646926994428511438736566539188834922770114578464230640833820732308689645096262551341164826865965378843826258217717868285435041354499073467297872281659579816724613783427061887912772135779076209359120762601383951882567970350674561970145432077025649907082900671368375607359351231148548419922253285748137666654492379333858261294554880438152752367456625564971585389501583451858417149981280412017769122675889808187855283216913360479940156694775632061064486305030156946087527011965659214048202866426278463881725135505820752953629501355936726642520173476136811916147900973042562058469741959905464949362495820933180335820522881727725564800633657976110177808455802751119932430257586756276300513982596302481641825957567397711621486235182698874411296572499265591285017067984422419327791187657387715363232905223746641158577525560617666795455493452626221506695951368649649088543023986677542594670579923049259021500985068154216741820419118704922044332972379189536936714863033824328805317548572464597411940825105966227612233493935664988592461808584178024917120388888333943474105631149476896954504280276802450066678428012807835149979937380275217433155213229817634857390510647517780770233153690760483344744024474874303155532369580869599851993851236812037774017142534407080653958489461029871271672517956638144772231006124827088769323247144711779584057489946380214164224588958443646912269134606838751986846356653253241139343231108704763515390416835667206706640955394774147593886708292815895693462617360178075754949354823018700172091672959484200965385089850545207856001506038801289541572968980459338383435263219756667839287180847750712386705558732109566735394531321796893678739617563134266984677311750727694597650452023660730868417418492102894931431895047778770259067296527806922045618718862065768821792347148234055090126996388312686501082392967049712308371345617533400877925971016357325592815988529000254396205991045608195679510558118910811143334475574315573898645728077523585055279281857804533193020477190948672862225092652798627347500961696478296093894835633878894966946221729963611658834286646445071604416188221855842874214916248347565466298207929740589321131962658054869184830055678838387228570966303828808965919303896535996117263855191666100009968012187643215875865725097242776123415233457396571330116568933111768062951186299607663991394674827659406140137562028353750287970285159068964248042200350041108504627305451554607937624101441906207656613077068437272877668164933518627804756511666793698130383891234001156313031241749542332927332197535666124994551312961965839975216999349437347028153079340401266693456764511929116491461402587259688060506405336803577167887277578516153396506563260644399520918604693636470739539303852802808223144252102501947828534085931674566659124114197725913387788853414114066915503201351281924571837593063428368544722282218114220112485512301292475034344315352598570988804709092202603592102634941038341164193469466379856795005393730977363595457183829570300877753099490232682129056105073943729941551965869719117636424033701830012728879580369397715982557521191377792366290168926385298157495839114226104988385087026246674169423744523297615711861766984333335391054412211898788171808408934762075268482487722310200901971002941983898204912572822110097215225233921274297250371866924031775016548237207658720256699294636990944074957780378754328983496771381434316501684124407739191519546188315170691598676845583317085109655638417236098884803142327746815764233903207032723919432059087403773038093830755078353132387879342492024812966566489453487199257234505594136724868832865077741919135656920559438611906043535664999689684190228811473053479089342591772405023489742055500529745116750465616482603821130896598700165272817234743465054610640327699391568857058490921272406335090138915719604006987053484683707346346607052589707592101872706968247846473514296890958652247774437687156589077618104414987301351844547829716164368020194543113995201000765204180683949459810983203906306496346922334265121219331502661885685904311154450587851101477945718983615032138152538796021654325345883053209581916998890123773387325158376699594205208372252069443920116297881062592626077818200609745908543714361080816456239863124021741357388150522242441160988010055807156501735407620361350432396198002073448137400381184465067321582373233313406888681476376785379568285484954304320382130912768247752471514637759941634637007624743071621769474184560787399571673205473990716647341316387549721462862265516527878260726236059934139368489474615252210480942843523431907431520277549127548025007236635040419525408765301345421863247479707446764902419208015171679730327037693512971963306210162112599120950676193202228852617286723340921961379292450345014491531186643243411399085134203636998246693259854139982357846803503947887537965207943856158338854584870535270055115957586204265531997219410186843563937348562266751081379310853055427802556476226393667585409299427120956117561852670378112578741744399358983318266511637199244829403412287954209658735623652012565308095160736827170760263952283318013953328352933880214790458581780304918045495400942806028006878484242429590340269622518352673572062228953646930134544771039092617516777665358820014042020482453461711119007247428264168841506279562435533042525752027083802438542454860852879611023938777259310781740586648737039022692855933214365067055707361400089605132593115467283644778071318032986788601450727398805393791479090044506695058369210392888446026940014201445440686898520301250769921238202275314347862581178697393665774953881739049000567660065858260636305293315891582010259765261859859576620585520715853604376238186963898355629709597596926147581038220575136375444218519545671242593483649355326188484884627364135017760310324664663160624760430194480192830040399137424135056528098253187295959865012815090068639884975001428470176972405615537981170434811959851483843562318178266362569946447229100596048464690680006004532259612970082659319212434127005469211342561109303505115293419957751285261614137720434629139852077564463056349423438213790933876864278858393778568656089214573194574810830231419129630173589084626127773234717229545512603134431186101200544973227198660123225037746402437740754055947615659579471432833309650845515583756919800822393318079459151184486786176956693033880650490961218280289464688149036649579214612244623621965440400116517109942498628270193263939761439677913347959324926503224370644761963826038211608621320626773392617624827329725563447851893914431465940742746610172840400847487376663649997052156080800867991405233128386111804084575025340544593649212920886767659767771601996267630967567532224995665954197961522926132595920007997477874995221192965840862725340925055814803381966401224222924457988797336421511135636156572199154116899380407689682581773039548617442287241625712700219204505613391348649855402784958670865784640534131023835169785677688354720594056263003384037931379055483581356734246720528996497597833855136326749610696495644959322936003793016028648026646062408067687757939752106952756851933188414305262215643941492554784874872715940842865044667814512637559297028153820526280390977538186921065436479967608508668955586498980618745101517874679028481551268815243774321130343581411303514106646524278048740417882376619372699590632331122085424736836427413055139836594927153205889209010429650376277697062888689793175607148709244755536984828186330635299487595475983861007805124347097473018389387245781215556487503578122849966336249728113946075223402722669356131387048345579246063761433347342622814897181148325805977811683016671260369168397802258774254183914579966547448039077441734809008562072445575746955518823012572900286231303686942034645369872851441279006968468510717088403691032737758008396035727536595699955802549934531081828678947207863248947181090900000738045373871310854284262703424919949725983881571466078894516541714984787015538218878298168822370727598247993829575240282385911497188043602926900585983904576775272365749342454161168409401288770323682556840758276386595128270024987262708752865652973262192352829778080905787234799592092751858130142832326877393825487506751484679551171554807020024389710313971682218843349374224075365535792877881835449464936809084597997262287569281565270707396914424700784401692116947938579581173935862479973552614664816500116056750821697328459813670378190722630744639023574845289583502614535626571715560507477200368371781511035876977218122157211584788264884180890461398967375657721404605133784428153013398240362842747872028830079498067600419841199845424507561498342522899956910238849249146695932529595988362527044461665970855261677520519225473941511812891197573107232766621691093076667679026681067394050242361733573479465647039228055653001332407691926024172837468213859123765970618223446844695800829860695914795565633014626695796614084260780487146979423807741025970057511201713735549849218830713246086458543452061000594922324516063400683486996932996638917773618851007406626174328911146779196975959115090468365113838677738613898757871914659392252270453452930682196287156585614612528770809219494895346841126516742734054577361139091721769975312189327838986999707524049798859200885774737506019976554187083161821448033926265133375075006913469154640963971834678335359121819893654901625943769464289791274018300774566113069351241858751188572817616805467165906698914355174912720852601134055303623499356694722942185327962944385778596582830839061945094042089759009630567574430959700259535661057887333223156419426631862172927335073361646962864346383711417359649690437006535677788374173705121942683951226563972025977928005867969981677049601527441557500653377965750966468185530241505883321655959538794080091786154728155680659610353877214964084141857092391648485389583241010186492059357001535331589488700164872195066475643445643235897738043391726282685989075193167083159631244352428549327599250513279857021630047786588078658944218360400400089382577644826917630024293358027104612115659523051106753061128636179230542019754999026715891283130111610027808420526628830998155010520532734510931607237997626834439631915677326940917875433341793334383310190001317099465876454557841418417204319133288785277313794058642486525382616467582284981889623304740870494632324172327900904035575140002418682559023427291741093737400541762003902022488212167567324527797308667298986985961470040340614488870316153024734786670484084179620931509237449766517457159337849116656133993150640667319713013216891147947512025190101638956843115856230546877527920508443938959407267877013389701913863346897051858577400281922875343357035254265764384521711645180217880768292455403848462328386111311537122645539775253375824266586875932159277492892662497849889353638995017683131996576040906715356593643952442926586863697291593523233601518730394046108152427898675404857560877823483179458763852464757202154462547458519169452681537567626816622708040826929625345672626110466312295221898119069422579620647111563512324954096799582712186485388351306364850135755178142726991224568709625381039752608115150523197093127198180082078729683809687129142752669859859652932956018509449962017294814625447937227107800505849450038588581464265747400306116190678973822362298220231623468058497370068904361038344712193814991850874604716841256876847617916155841104238369381642025062633309415679054916695034231545891368483419580309585474906752516363325151670082303423511855711063218582433575970469172314135832637973312889521914425682323999771207162683743383454994838876297824325054698471143890628154800086590750931028640028862201501991042971738047163383075427086487508114617660437414185963819259925985621406279969149048931056294758866540218058849714099979643509390504240020109018663547435969893217374666186204071000193459547397087383535990120734559340491716372700152096584718549293881245631876535695327224983028569310798438605954842567382282325445635757987358451867576815192238166983943002642490039052561244594296826039874061045179041022669439410466466780936062024389179062272070581565319519767351739309730275204581659848658172769845729899450337350183713178834978346412095596906604103822601893081793618398176435474064708302205136147092635690805574888621533273953271645510954954866437127125889080587604705314369010571777023255125579616800799680163698177413323241443980660095173390597090859259192485224224175253755326168602591666556195189067396655903906738407128584557391692210567468566324411670618737387473850297129031250489485805807298728113538167200133682247043188657944871084881230327479782571894968380428864585503464080361008522012296467803854547754574359383037026743627175240903382321723374607678321020793320396908349498334025024370709781114037977911184164423905249865027158152739849347085800803575142615254789640800142284628952547382529587928958828394327452181851281139788026459343987305263635258137449017873252913897732272395471199667550347684822273558104515970912921597962346642252516435939200777539220328790878889167906175432996721371571498296978388751409832283953618037840555276279026714023389040834915836382789910197496975090078010339401419748338555765784147255882100912421415101538259081828534231997174561388091795785304679881697535383424862319552524358428400532731869329150062658887241325565453606585622254550374018596263596552093555020805060043145980254496193257545385215495142432289683587950585107686844557251129587900453814293928286638315862631657119753728424074468446437958086772384081631613804161675986722167713946609080791016648227063306106836597638897199269612173150819516108386227465640885789535348306627959657849636234676834124597236105043281283217274578967706793709822839397677631384857697752791908625958434977584420961402885555104095050130885052813328218306979178985185700571506584540211918048155121689561724128179603230021989042978188362635452720665102061430928592706188130903884204234242524659271338944709814178409702957292121380360340421204002891064821655785020625493903681764465929529857254967196644228296884484465558734700779285450362920791547889926444415868822412614201982990782611065086931959287340837079903474645302184199944407424426206107587922230040034459268955887711721555530216552797814511189375572719830070028365645303484359705740463975880179736254595462056385593915289467494972214612499958125763065370816547734399483473499045794921855348489927719743254624324537834196373939797373588155120273016436266360527956125032642469748359187676372533567560825670009339793848327140493470403833352792642626955174098257809665627924367837406416934881948143918894507291597233294565651756523613618823508647536896142122701145311407594867935995622009760920036179442520369203926897009735823582941815298432142369806966733740123911332260807683510522356369382858173525096667646562702311524584949628218711290373943055520512583610024400137523220762354825029882242206414260359055030663238964852567368932566664962869957565150462375049470667234994904353380894834455154014465543746649139359634866214822906711600419983543837642456385904733474477667192147303194645869383347685922407884137024279214539495936272772704708808103748749121823805254959715665184287057783761322822055233072574833313428318292230191603442908250840629177933898484309461528623396176493191687882254772516390775435556262273333723666019750103495379765669702131587581171230672203537377459279475748030634110802013765960723814488353248869469907165357398501088140475885161526207069090419425974685711413858394810830846102911000150438021940661257101069793212525317502386059737457348125878734187292179801042684532975980734047773033567802647193705372793995086671150502778786435190206582911277539693128132815629627365747103115685303344937264507638738213056613008921860604709895462119027110938167620383342380721015871847116009001772487959716912265481344042298945178280732016525175497690648359950581648255072135354401333237691009598209221731357393584596787760775335953826187183174298228485065995827186716434276038542704925267179460440338862662275343446542224831530985944130125626985219079909531299235223749843776754475371098631268106941601806027706596907139693010840993553906728209459863476341798339321226589359353277677799468157871101229835467465176597363059496212265879300543760484349417622522890289570497793133827317738206800074785552651826606300841838797326597499505476207971055277764974088375473765944605997402840443770189417768010352797246780320320978931843783816650054976907800575311504382069674176961532536192627776507667555459408990764961458288478664917521162858272467594744620748123164423910533033238464487983971851515552846193801794358762127580611207636639037073757322409521623011100777065094810348884194763678922190339452792732176414413732568576138295900418237037960323205579513087908626141154520992467073146037434960806416687704967547146466344928246684698184097965659138906308742110358895828786403307443716448926803650175749632199951588534204617724189165123229363970618187669459452530157967276494991008696756420667234631261604889600305024235642924877568411190682003030857839893650167230054652681537884266277919219619344671698024378499334283111115407870610238223094756612789538816461903907483362676285468164366994479536055536409115399452513707357569486587637489646367834140347281270968804533931263143104844768464329035394841623825518688724779521442791024416800170815336459920528995123532381869588148662196812887044627838487932647774957141459868744638148251100430452129755405449009179528871492011112345283413459846784718875548514853258982949175737677543398471360254762783862100335230565359904102628016861443354631859356099017143708133238428963674625367130100183935049550854934176218114135700357640858377125041298925303225255887939468845136167505641336871495857618576246351940004927565144174201552806593920180778302986183784116231182644372005631175878010879353442860885423018798745608142987430133522425173306565928565635666952685930067765542522792461311127340225407365801149946915131068477751509366947426757268327584390903496965953974641995741545856557588419626397500651308669835174441699558994671146183631291769342843631795196350133611508431558176118469390207543196221599272150350075631972174342377066582633913436300215434451364451921322756760085259839308462292513343588514082635328509369742295769202793583788822897398619473639471079791092880729319846427014765168902305598795994963594241969732672597716033100919567307392655348094880528560647357087113456014265921934481550411209734072322057584593908381324431120297529627558767405710565216451877950162442849021631186722191153616639862418716339400680078755963786728894897719044847708141969716170852323414237155903058701538377910507724863442269014363412635235701162135659001799933835717944367419513704290276201836928761705935031809999257145239150036352344134021726082204805300339043305517623692188731955874094051197318826559960530458930111537813628736379434219814706926047406755901620483844691209615431771110193063365842314079553358218897093058063413953443337000157613251504655726549422302978313780500061457450032315986649326162972769787417973736226046715359125713784331859790424754805263581276903402597865750116876018387118882100668768285913260701262216381474777910809739609644277239317895676657220756464813879080170908470605572828894009105953504994395161578405074681375526977331168244686604068889732588244233367967400416848150391170923764621474326124448035796281098083049383526958204745425557406362380517245760120693017637282035909607551689467508801937874603574842413452506742061572835357150988718747715219867951487246141276444130962466896930028139999913643137169937532618486123491866931684598345183490157775322412278791373952936748994189988594117118575445913135511797915479943183545105683039762491870172301816473246125594779846680098008092536564548520868397271464351056586840574099246443674409885756701201288475970491757895162971455336007868045078297285044311550060011855073901741061669687482897258864061048476783560423982244112378394758620013815359774012863641393237191914457115073895149591131656693338043022828514782914046622120708569822901326118007017283872370225152078638890563749256265809497500894730077601224467217938511493850379709070395565689953426722201390566328696233538249253353935362003345503614784736556396402041421017989646712061604803579071515896097800691871400692297398608693064342410055272172350852418374991884052918950864861524656010561823437501398232161255841221083030409867665134740352183282117757256058351203869188444966871308247409284019618310264048757372844957832639524484853848134525000672607829018730815699669488525391779795683387752407360483856579972401152305316082620836092789455184430024788958763314947603168637380869660675722360535754166702795165424216036320901081280318320475478282420075853929918802587582318727895619395164189536639590697657634743389680615147656123885302333746024638451475668445530492289962812708402601390543774621400064235355049434355470459328765570357692858208008388147599866408561099334544338918129672074439246056823801884251380934625353935663317346512621963144051353182679615411462320973713091800841337399263818338882728375735288567330716409957041081603712422587874628752243380311538779435715368889098471291701760308871066909932331988709492232153184729337566935460029418769183424648994896071017925724628300365193602024927648077394993575676640201104102565255440650444610043802415399496570534065961880330097978489043159016141757723293004659437873223377522873742308007842723772524264257777690510278995513681051870020588239528620220187644826241312152401726695651934883078272834350034101849221603960292911515224052408774878383906399791153370513153470092597199688033710067367265024698593193463759392678510440552742787669601662667926329181092475571290190264137330420910468800978664612820909986920977723592790848504275958112306993069895313601465667371466205256895251905749983855896335527775563874659838664998190177150716622496495939055379678039934213097029259911518262902942033757869151785062048575569547642608998931926118456515609090085034843917104176923571146080401378527105018491579511754796939826507349723285237742388777134381827581051838180958087014227354148459842091234532899252789407044981804547214959764211253843239130172154139252951939902685265682672604684681924183590854584890944360838612138903074571471864477478564870602118101068698698975840809782175696813691661587535108358987935985937483756282179834190957243196889813634536323968036310890230283112306587281781783549158020959647868320733197823559159272226302042324154703153181514819228986921792863283522866465266891102841791743986846089765765442021973511966991125069516681664460742675698765668848493643341625763015171313350377865806129037087360673427268078568354617391495192260283162976691418516149178512865075846101305349324009442235573777041619200456838039565381963537127874772389283419617564256158510980948808533625668595080421095783384312012248259432686268615740289017819338645609086060425892036430813287334733026957267084873228698449401395864208473613824241672723276431919840252248008811048051808470926149896106964953905196606603233447633222595217073340974976302463599546896017924961934561012837260206400862149143397688624748316056192247047026079014981148144027136322978519202465361058124964198905856663353341616578926158986665974883556719884667752329226509644221159877418836782571295059791555454800955221954503279186819387501628291459118246210772685287299080063071422959993415960909594083651665582919482928811516286845534353224258131932936491276432591248038250323500450878806654215701032833573641293624095727531219446079702015719883183366080435056348810898554878835971371474781793536723369440361721579142345380282708007912755533230009596837364936519714135248216896467000897454491046082992161005959298985816987077199518116886417655893435423293723635344684239933557391975347137907037527662794032737593573345964448276695440641755131321977969747176913748506846458252531374817926402499891371169224732534694979386038451284103548187693683044970249198481505650673327235090135312912498143743910958133967457977623877225946155301676157884834452231743319332772108393185113763859546250838497165629369306613691878097827210886431820421594386369270465217895743465331577301010166062429583700826434066017350308166101553422405467036448403396416236062192276406118572478603004585010142285401182735124187295036642341514813588436472578345094696465029044220531703980601222634691720524346961597501199426494049491888146226900634758915228097820876896029769936485438979421924545741175241768417113979840342806553836681143987155822721622950430474172365542808923326242537825169173712005892762707635734916278584734302789046444840472337444437748550705452988907154809757369074502427956104046152358420674694125607582631220907186501396485864806556268747276335622497513291443839598060798534130550090256574316934923211096635572603329112983251745626586487122807776732412720332086301780671663372338498404649391673463584055211059265474006834685432084517522470844246505589836786042795125705139452877412166516710465548591373022572236345723352048116247363846152990984700881050377634872533349664154874931946574890446248335481622167965800310580912570303637118901392839720403483940407430445166137183923036466809118047702845448011610571848587365606580766342711706507898147502780537664123582558118141200219758242847157726202776303344614898454031424831995244253154624974160634373767909978798970703805637144056901272469626600854393665346105062959032750961956788441192705522933067530830642539215018399934090418597842303927379263937522367648830610110032399600886849332907914662912595117591859047539192372640167659447162550828140516014043072488304627287041669188093337188060521212742976300558521983924034211461179170952004557552590611787389642483736111504904116488435220698557452994344930885893030336922505511691242619981944709976844365327445229293284573708874638144905541300303230059211990840002509959450008252336247476616466468468740441535246307519051421710414751406873003299523668418710138490033139220071361141877620649920570217713393667491554582991401884808038621484127542823198232427295001064414492711667019533631862034795858423354347877295671811967423781172561031159404106534906577018312609388845011156864166870812889194177194026967296634647127371201856749282882223621167071881085605504846595854281075425463030104593208654187823176263413725935561391772371317607895634685492584863622335610517442959648701782952400981241093839301344999253338039645776567325941402377893262873758822643358648313336912933323090049744573676888583172687458790300231890551037873490772638960805316953256836938587960708758691013782211558995399593258075813849901995732969405446430203413108036765094150768850902687612603411827225065893308718855439473716398624272177526583254611644890535682461853161675293635894511351281861626785289162200690244839949685585326659041259779289694326941113844513807462024431198962695090829839668443994650770610955202714320822173492931708438321445291183163305073859916590230077949490210481025998733087533142063476876186271370306095883091211031604816307956397267785621560776604331656358638885250705264653445849735490402174572435768610816129947968217055423190794252567895970102043445599955203427878532919757436505431938061086957324700579992639913059694916468702987304563209391030062915504401261325020761710987058210887411554983927880775632968639419833904774341548174234103748229004483557096397303216001356873474290242209555942760652492485354164745718915770675561339685705559513256345837703946825294478832084649483798292041900880712701455823262498887579682957730849628898123145474981965303808567634416804888616871219868975787378738095094286176613588005810478470610336336478922304993657458103321131247506361368853440439293401085325309235183069921054695557053058225197561431817354570893956033114185448186103839695242931996247576503551986317436397596703000254805624402639528032745344021522616316164390613434347859815878384442563665963791033906289813498254339329644628353788858037416158408600147193461661583638399948579375450779977314202048413887515225466193450462846349281800959955226795156601157368929365314129347866663288416493710486304710359762127845929827217240187741251056628468688564774619993705817090367119788741887711367527161171765512608915980714148384528929151806943912065438050424149579041295272236451226260907659396550235180112934349831299970292019140905929940506471509020462688361419354849951473954056042258985406052716180171914399586882219719635911516926155253346790370624653314217641053939671189202453151405197269688596947258196095051595006727560980107827152208505230497478512522246781338376966026111066030906118517427965401575227757415203941609168274056287951602050697775339163265882355473076699256685085072825293933872551635016016260120934585399627978941377637498727188717178682839067855310127216939153285376648873909395559118743928578260891389231039752070611811697570215438712262338232686921665539136301853664386746789319505999446183715394099614620793104012435604367704408618030227205081397758369797814210564893163459787787319515367506271551953431968319011978252509525156388757367187281298554568683600652544178708984388086944780093168697144937653270559529877923005166254498071923635282978139794337693931518297926556095980642733492990487481777874617871116114040511104692516133245619324429508902874640706065653173705474259656318717492705600424188971293043926661003132747133939697426222833027803657802254893481109615560700240157358360326774378536827062390394253426623115466057878528647809651046844413677619360296745353004602705951938395488457373745413883517954052173781647267952277264993924473505247525860347304772147806641517749543622933930432177333488692159671498071868504347645607190547757063121285715033715066224942042554092664133933853313610048971824308279544377659884108575261767283269289537467250603455469449534586940035606443252431657357275553144305429209890318011096561841850028274266844779060392864372158491958502035145585130203913203233818158718500335583342239501735132788238575548945594157194718462581504762353117635473175259912414304109986443358560691211469051034917589081187552208068501374689330195457674177188492250321498268184870046401085248495900763309734638936545507045563245210459860636953166297050944132340887324479352218074742145588128519941465152875373906715010241946369636199201108549534495114408837538826193463805737908325098465808054974878992021952308012980621306435630992760994753924419658455909459165230795415556574221143069580148280954578469669408508618042085765158590394300807730643342408139580671859643246335809172573274936303296614756245321191218707374822372065413134490038857151649013114118518703201882640805459310527680626367051311502544732088892282652820799157156728599177813456507117396656169031492178328029519937310991283526759129613673777082427686530214409303438060494952295559831874232715518027585221449255591451825184333632489361441640403423608161389872111023335219658700920272842292248873666445980945060018241851670501469921768466064377892999090918294126125818223608729176293806266960335606227840249589876115137069744506067330492416600192484798292151424699547421064161141467994987263147767050337553167240986871862968945882854043502647271354467369283735453056120883733595024056494963104195770121262544353590645018456547982281759170670854078493648366220716647666520311700322365348547491917291014037307629561026814973177397865501461458981326547019607048117880277506051149023560721521525644247969503582080324259563445217428987537540628660661888223535135167707628957442390314551186157515471594166520723984574394232806538886317791151568347406057035827803099919243181492305953459199870769725900761396789811541861391337452011452693898504486953804749045387233979968285623871710858419309998058944182564019757512296253731586996398570434594702602875955812490497081579500467022915385616706857895465823008815513180555690968190507921277384792949591062001833985953303169311799873278607826794613785170261376218833474167824186702414989058182070259290126002295539757381044411385618525967251203868071331477192435150579823135101433555027312140138686657158091814429786669046014922802161141234877546381246923986572683966292145386312668011047228480582606389813884630112768949563416472660564429801759188932907331564140749562258043283789206053772562614336363703487056106704538969265461758060517453592538543579256862206285477022533799663052098338458192941260354399326445748898571082563572057306443406416315718892761100624260639246724284533562572717787269718675093984555728989663660226112391565265765210104749758123054168119247718141280929761120915015579229975794873279961475111068909559888046384852497770005215999662587267121292574625849648235176880616427464745188730544106752484406859320170310383013519261925872038844111227212494108057789435957800699403209092281437645904380546164872369131661138441597003858946955726650778287115604456688774331203306760459472986948668410267657058683197787860390743666239203734666459698526644793410485301087960190115682018442971856686641825470523595179011624437403015928215901957725445124207285838589208539541507789708485228769874354310071405893656844433471540551621182581241174260174181652750459890620780060424409529987895647392286850290922709165047864383033688308285205946491389105899256363008972029515216342630806566692545858333996687036478400311293051914844557374047412325317583891920280489638861099554127855442329609274741212588208081249418593475365270281331645424050903847434532239111300282273821256031331255286165059790534786239335393025447691394689376286297981885794246948115804855178455092724287728314097828802700054802379231827538549188278685292865825461733342813842705775106754830592525687433678384931537781956639096121856403066236516226765963585722682646270469188615734019950377760627048442134673061222486954263626099430171361471921742412947229734047507469798739600238869264211833511825531177063625444773355266805413867057771562281830436817359738536112093697005582822775605544734683986561532207026426145276645271513631571423590854014931123975365152049350256069025816921741065593007926901958761989264109681424961614186192474965521245839135219052545339465251756954018146691611202877349709995994116840710639893837378703302325199743394347565379028471247807272620783949743479264466294036853115538442834684698397499579437808489967105102566406376140008830175716021663726740065464945372553975558345179568118186934076898714821412579689802833497457816219910970277068674869424658696297527263790621315553394105310088294803922622794514161948514179166648149743715138195148435714693752669366058151862328254255416643927424221548826432476413460123642789771915593513782453334144059514617468385720489079259594491102452630963678318784825350702957776009754604039333308351221311667348995080978349795041362691302342988531541063157690994326968844691877766138794377443609476332640931379066889759670715423601612828526727538528826150239657682164970325920252631439807346224074647819848463601636442274313726460912617212501386254853824895958733672852206952882487680674634829634092296130159529000459683115881210556501638768347097902504155710095081343365504815791252491835477724462087878907240425510757486817446916257818403850921101440388301317950537500189449359707640069319090939128610934976908942775261734914715012178441595562744568696671914971469715280755519627747715893088627301694087764794105428227775014197226291998994850951180140221329549782790877787912105260561040842893758325952077700172160886573647296898630985300898395083025150456458054406094680241556303632146921983579345613182893141785677966746721757189514757304222729159871941018350210771453966635916199403882034657588251887827717354520534937671155898602352560391092555103246572269516429380314354782677967419180879412081557017771549845111516513100668494689555598402197284885634551196517960002591307189333318936895651852536384317352333523506032443971075617743692132769485564906640086709146743478900904128434894237933046057748621371288618118790012184228068859060953066664793349224119966927411409971581724999409846659684451341391902280602094541346581765187978477587091502096373196628593212523413190226595030002756175237734134009328759686510851095059244852390502864798078944782397053864678517886138271475146401927786560188541828560096667972791200241887448340741768234914238746511013355670754744874208490360858007621731415256778572294619670541890637453998375566913201931732535581963865540810797142693623903001677447444713336585758004280278350817824941325128282363106634070013920586687500803781330309553675645800407846410671409871644787294855419070752585773383138062654172911585636274959719830877505950082404040740282430209992098747270459612417901721648164440613546340157713152624903112418575513561229838543238110824083935798861172746849695386036396935555185807231792285221019703693810861073442248930586781812411062651739177576215617279804005398209750931242179030355749920884510280099466034459506995287003377310916022218303814198601822953415527454120600844820415538857958328533721462618078321806993586053126486304678884166120811505583802465046289588737001039423115300839624708308862184667097531397246070518097538215562141523826607704650517575391610883488682655557220725682276359416214749889252302740714194497475198582919901198198899315360792257926853980638521199599297471306228898142690646403330798719834131278379610994832298456700756791905037958961220324532429337323268802986085821587661474692760105380005895066004221539132195258475211283247526713794292613728599699462634111517173589677721879433295752639038815730021938370624146427053655888925626247849556086502393096548850162271531948577218880919734686690758232930075498018297003959770434150429041386902422426531208613613063979727270053362120535377038605418443684149947998726944837083622742587150011482981380092848486203309263625052395412295034057181625326485979786664978090316408258012188889196078135223032814431798126645570573524221180477056255407258464120186131469320135881480328501150211187300526426746512947211178020874188422366511560481903780412738333062768108136431172330691214135857719783204560742064290768440760748621447129284831802628435662476275601641623957122522113848787891691128318142903699515670507380828682444354079650906878375715850152343839176296478736858901247462217406579239688133066103323043291636814172753365678898389866725871050746054835438807584535932204997225886294661659404716347431208631262553926674082640427849753569591898368415677125750912470319201916550185126186265498770460088467465299387696074921819846770336121105925618523369824914651814711286240527946095905289501230865413053132632376970978346821287731694857959973522114494501402949349329234811602246107722860429314273403000306985047119743589695133181503602116910685049901592669485759054470990146084578946007729848326145023291748601982350420348228731682457813504885764784073708989828992706556575406294767641829030291891007152838880041874113252135206903706615883340610891583655416075719431988191600677583127705570908126934028905382391085946174597325049419562915552477033319341535305651963820150257142174106219924197866907415898816534406834870450162683605100751210095688349673826260912727549339249516425694775097846905534810229630447344000617681594321380857677164322222393885080954278286770371434524778528304831247182759730891658169377910651342809278583937955787229752205564799445884280953612439181976377780936771433701630640061915648908646432887769915285301405038357735922430917976331305616544443281171557059632143497414894877049996767964876254064022325725781063248809465723913684775582139507310384764725144866467773247316059502423107938913724470223495586218519833232420650352699108789395364204299498451979610945764049617884069030121897632984411839792599279892071054705474695264674089330319634301595643914308605518039057986809006120372332863191502783232556500512924678332342083791537817230565569610704514538980654432549006094183671652379211440875307088661471712350009796683318855794146188757333191425583868751832862892320542187025620536197014027092707206263025401332786403654743523303502819713705198310825650607652616593364038434233019971360360658032600918643193370460744168608200273056884109106955470954002410467679775928342645676728363226011919489092491347487569767482879438416209838355267069323374375966995011732753789150630529536506211313461754185136846264147856199359140025641449569958402985042305914109344864094296801758170235754120069256747149200992828608517147806395433823442254326110152744154831939319316725373113192201390390462993360507665020460049293295999756547691755762522854344276716466449478106228667816529323741435090297680539434805557696967628126725566096987531904985526835143368896142166865407323352545308375780082990660430914947902567835755905411357349131510714662129935361243835963571946542398525020325748583256425778710331466146648850740640466181684465374927983783412536521887914636216808557247097546219329560781211105808233918961220041868023527517427220405747386258367961581601216985272572136570585920891223901178905553685894917312061055869004743164460976254828922066162586628794599330297619980736757231732757080004540854406657094087538291225035412587306223580976683000490748861734688509622631376351148433559988162190883201769021061120815386501885873923032435667830331537397006294661998265431065602813642369631050236470002463955605462625083223081572179480000415165840595032065819597089171764340784527589208770082608755778384626252837602949559431982558280690876330204697449610948673966912628151934211161884535098331400262629690618618347128139093825311158310159175007883807106240134879437996799112328192635260252370531458313829311752280747449210830292449232960941985328721072306361646747338058753411653484604776978151129836624232601765748819234413712601334164186355472079074435327308205010584990391760378078403728877305135241536463305062676183610651388777858734790820207137794905545979707850148719554928487087975586425294212297442776807429030004115714959254983022322548225785203315714853121719780893246019920918082637364694353105606071075732330140159252129187841175952747527379976400719618012131323781197206132140298032126647434176207191855359412297920639003503431392820359097810454482562388165147278052767307922431123611755017535488962378937457151634217572593309506992856799429015525015014809533939533198862976034138545056837374337111916479228916959748636613272961338901075970174647842931810268693934594613499831880788383193931717886879753498572556836255439016058552013326550896796224958581684254273688189198382416577581602908478135718528863979878931961857639501240073151177389125292171598590873027360636918530900908827164066562185652753426456581257967730795198437885497428875343758033531515939171828504091432949534309839379828504652404384322655093529561762115147028870871390212134589454647585423300568493912797635074145934859321137562091008270835712757466549310545289282303724754345870253767963632414314544988413826362164565976247001158971519735815666199520007744856850095336981433456099136245898041310243664607431533819048544236457944150366311494862344678963528714885623394218825205905321532128223008633209555871910277572652237582749965951204947765808796745176660348789759059431320672848938286605664417647230230667103001267164389885570096947350216342828188796188014658256803320748229302817048189372360751436256783031056532850349479321378499351483892271046129334042024205566414499161280620663631218878794527838871027476481783377049698364353523018949243702324322415355408008558737707512980283700023021230195124810450567753837059126588458049019681071253672330925159291339243420781293810212896651194930829367225611831878650016619299337917181849367685475639220754915778096529231219360892985428283360916303856722718887408401430628316450902798300975397267833506332009299091235431215713871883356809994075737838117463531101554278168421650206893741052310992681343080518435344505243233668231634531592470163863380045420738527389989567370422338373943823734209396771240892222036793420963262190964968439081539533789210998987497775706803627702165763805724534391852916206928774715202302135035446780611267538108890046162749821343268594077626423834674972161750828730171891466875682984720810395544472756736885175195785171930255980295891897705639514455687219626953482767156275596293313913145594901932471979974925314320969804651378787777916929956068366311030956807758148017661890460976604566870894795431288308532280451153119948488935628078224142845516999823732477249874752829227878572032766143388848827696808637629682607402884893879970680731408173273780681043979237820383292678429053881270372800640625162089574926526895753994393882243118981263382548961420677157931337211591304385669256958832890271968113134213185752105370850330230224175443615978364353093903713369096175859356953437519077569418811356734336162890676926177283118299018912971282836484140646042079894606960428991409557297436537607650383619220451000926788854910716275347451394643026481409669694203522505548633161731665300176751347686407999785465353009703468401602469420915492712328177818847379869988088662574347251463947553709485745166858696812655107941462274407891661054556573420915705833834155686160352755458326248795013353082157076695133843821591264818054316619769034445543639089424820830572053816182469715851205440818331347692455830831261354571449452798429570344893678100692522723819291062573121848694033851611065214489126560388331866827216804832728037924356285066457351966972517869890723544476018506934191351786741449172748023507538124867645281685135076555675946760852846149141826139877882591699744905535979556923628474205922266079493773112423512858001917821186084773420584948956279739557406616933931823339533003122434473990735591285718119641016860790419088745356625439366284345154438155936784776856004780622809196226865425548379955786687494260143938515206234722217715452262942032021429551463788888034505874484919521684262925030287347403211390323605699628463410552160592864405677483510133591330589771613020505925525844978912668697951592983913550762324455185278303677589087364660587058357994645923003760344076212287873911154500806842319336711690632618668758075788873124804054412583932301407527746696914357718297047326779084861128950186242381940689257683333356245829897415272920706909994672336595889765525224052831141572974955875250744923804397746282095725087352480030965009307618983968426278032856434732527204811707183115969949794491070184792265416587556351798526622481229172194017536905131776890930154555396605323301823023278795557799497809737446087365121544785615878320675858952996995758634950852782078768397023054654470861238934908059385373538107352037578078428071866741507710090866969587984212566746601017398627667669115101155318652025351310023597318368211514334531254190797859658443354861919317659388581947861321804385148722526807206827760963223909545266749681425402648842552587197100297787191194068691532594081252694077090298327431402258140029546861384592044687409824616611326505767805836287699928619465585204686010308290959117300356239264205069779651784851110388849991730364812489046136443766012782167079706745867473507093282808883728639700597776070644677604324656237773418822491470027167519321603870322943637424054335726186911179066430470383612591520875327053026226548930794533513921828167029840101731410902391028342892664613515965735360840613914236897420479835160326926933023415521741890120464796776188438862434649840670234325850976899375795814402463755389332454977565922333653816559195027462517882558722761391340125377292433576614112804371277572388601551205328022044547051542540930376696092813296871325665029585138380067077976642793620558181740337481921843697964384859837260520567297407600944883551789229537303191404770622807444809661372047289541097890105197115662033046156324449321359478559453997416398767036211799132428988622200096771463637469637309226909234326681112284565443058159114517970132539197595507108892714723326320593330564001140817712566202693004984780859949948428253122510416817027037017285648720148301516971448020790435778419111120106031964345168774305952784532231277719582157935606440976133158411757113426028882608486861684331293003269004447737762553899329288783538214625062688665058263766693116163606090228359653869336442616218804217648717878290016872746588758319026783007202778053601281564723113171960489123159579261245163329908245789008242967233702862235365002721366973853782117376556146362877203107155492923011245610569550308612335603124758898431023180897044316596483910921836700307045605371582128171325759033620592971086508216884939381069956003540042987297614526487248787006871566375884141928627702555978279793081505149846890282740100437407723633331370095493849987576982287524681150770123636143078976106356672705790738002921217362284973327000113819159746234324304781715825393205009105073493687592676868407021436392759971414027122548582996555930412116715706930344241514451287582981352984180430681561846243664432993982499266264164322949382378479212113441875248324792870475845591167214006691658278132806973705834144928618807058094276609635509570914016945459415807191404996248031800703007297434344232984673952225651440749315839211690342732271819224659280400049537205205180440069310568015171593646066199561771206898534315050350256735298180878756897494167338243555645785819601686806468299122113770219457173160590406872514476263080161110281682534292328484524946584610197162248893943263948558655246014016914821110632475542561008019041126364478341539741915391038354897251050445447774199972998027307838899896794525762963554773210805166576006218833253554574549085911255091996844963287006068309032527136380422813421177703495148741507856294569127484357900141964079893594930664060433165174437998062751105125421051070876344240392971873567719341608767105953659007911342792059322527362481987636508006726016177767216207330651030029152791583750677197502178531082547261800766501526865891518567705901146725777915192792959487892897636788430592025945979776578780050789679553339154724335758416540993143694436372702219657521591087163037115069719470636518609252771777817687462735283520491830911698936068324533417382156119573315188967083472989578280581325152771695536300184702069666699155269142891305460278371893175928318739611539978392689032165542284502884976822593818097956029902786095735007818197709003199729791535913576479766554718645298709203164890974632252931053559372409779437457042776302605101415332664983390056822831358019738463194523865825894847178587871477405365834989448368867750833971630933681080570481087456370061781619589037666356364393959174762713612976076514453476505925218667951346924527196511625055227396244288782418013431161341582157868166199250644915145784022501779009611239403133684446484975879526064852301830241504865776523808561970113365024986390249243154987654000547268839633194442870020201174097680266008332279877465661338784151351447972367297469783797859064006912803920676100384448804241471299159340655389617153849082243290964819480020252653247380525543707309584663863449339700010026332949159742953245789663542474000773658844731899460872255908757194834735483436894759208125125635227822898835991942095458971847470398926705659589795561907042993390117286695669279504938145145893356314940544810598454555936474254167087416706809211622381481690544586736133779570563263970579279865828763682217850418701920630668955578920931520128104891168500351574700281580640374078762887592036402972639062391090312126483128779379461368223697986071677335442870842032064458550924937120004237339020603597102264933757471749705586831529735583312796437127164583048024204258335764643183937029760631632963306617027189983652095529228158140133281199121296974175772241984547273652237964283942281730585084136391445708517616898956170026192182492327215323034036863882298775314372550590933339306846976006075522242482448998536836569985451619607173448125824874651353324017854226899531743082484448517400477853326914988361843500820419821576121220487413971580656652849978281848387119263337829682880416598431400144480593607386788761469723364563789721264129812749479478206725501213605803032120634882071317895158547967738153078221245223421007821130693986413175983892195145896433433664175360350975424881253355330733392981543694323413997516082917718501122072261075785169698980424029378378116046801096924406184067706231714389396029760221036885594103614305139577542117037809218002360989227369119530564073677369182736781626729759595239272686257806725864792605144895545541765138095354800276767718450345286657454453839650920976336112450563654134142248177274067021436236777367756636990861359978692913364080107197481619484997712145024262318104063832682263692022022855679011130039617200080007663819417888775822706470935061359425064990385613925351362823788453213899841566597942646013475636750810793625503883809086626417709105776898284291578277827043815049066913208469321982318918350057985176441914783504303106708887932797402331505631910023304568693292391242593634501967646494371452737966113172342490991878398543371948509852241143780751784788140809845193149243017892505777797268302432907775843953718244276009460252681777277053940084668303164085892128856434541110502724275165248973835987001392176755072336548301407791422463136444648076506683537293258933228406512275055888220991538736199938616028734223994336602170565134327993168852006334675633741811492386409462886366526468910080814004613939113314690136010851338855786073940165676155477459703047651654510261477281505444242195524136524678773735433808894241750034270216868115021243836600898237256137433889019487974493884093732659786997896352732044024570786441525928651870705425845902915657048945540965769832168543254769352967680984497605655727325706281503157312220020406885353713620369705857673045112124785797768697257585733603409685949309794959549830658075406836468374204355129773788021520960670010398080689722567448175791185777706508110380992318581916371192270039065186037678430764552745030957528009822970701572961279567734916198850855946410419446568237915118470847003887410305720766893989294871790971836365735205032058939841514327720359431096003237426726241541009255558388481554285641686258421648243417654041899754497726909193578519848243930867787002020300220028463891288628273551981759473898781710273517588800467036342488659881990632698023741915223905698298707763432307264695728254030323467189053622833071301056986464325446512762327899995077809821410319315885820761393718046359127701118361784220537885162663458013949729175697483097715487419168699842565239463316888347776324927104617461833975508614232366699649791394637150704405548973860495904142495988566670311131465868580534748842410636158820344302363576742339696733180226720596505296241029512755610166962618252463689724770081124319254951863095832726122781319334598874387630214789154841112324425835877617965838014206687547413704474806680496565798554166815551735038029606095808468531732211924078995791842398996411796432761336880085113521104443459055982952285181555646471401105019456651072654017471463930960219110834288767493051457441261643067352557663029944066713505042681537453360299486256485358276736358454539702593127153281391111519388099687745939297282504386515176671171975255759528119296340604069070664800766704760921556196985114408279075067445462042669004123020998942492516642652151383908158965165025829414599386742035602680208954234760888659833556566961345196517041484761233764221536014600840265344084260247398482354539462197034075700545001307882693900592069838875688667771817093048685610654613022075475501591235640723729361302533411244771150853940209356113212386000198915887479624865297715320732684002009300008876310285169291062419575796284055494034979127544893094060841528055188635467317464094892178106633145475777387026807950129863345539460547561749321392420882418610085458542511759452028124943075488454680124578079889685224376805371924659951404054408798441519872554657008206515547128905475120269138038161146529875488311048199973650532036250936765003295801761053943271362847254588400176913829314993077791273679257848149001131054718014865906180138972922022367267928319100220322620229951866756633060374938322667385367397078579608842838950074562032703649907641726861167580076221988418691946806768495219309927092496174915591641650608990809953265131171887095798344352400648971327189216107961146489564980546530572758550306567230866415832491600963581184294888130286128565847788692747724418862277186587935614279774276039911645900479718352605607284062127787039015993016210305268360584617107953209996836281876632662519884311895343279780389125123756769042290506810017515808000989769511676635015298885731242501733346140518600763402157613676059509240629205549581416717298302317764252763291496999272659539568145180502301839562246926850937667864243233049514933678698408923573668524617157087606218072603906559863839212635009960088174209648132996843057931951342313219568808600416891403978464236334432268870522877116230647501211071543025445843636058414085025946352981251743960523427705806154132508588340075199207225223993975852972241832797169037734187884543111381362509682458723443958704549546625449449736510445366499454194378144730900376454797635579661169482022944189446365620320109649273341070598317540026685945912620953230973441256313588189001557190590424654692529107963369587680981928141791335960936012394898765299012764874826649837187023116934119400745933768522570867474723981118882152933703583798874436996263021794893049040122492933484739998255327127157239665075898952499346306629460401879688071777824701556372472665294241124774967809353614146408885465620972427068476243219582303066302332910123052684761207627872436497724943326380955846908167983129784834697842076727019611741631574643285882166673108288686761590964261918107224378950214219188069267115639635646145168042379700796626313036188229236052512951211750236319136090334290074917659392566936996028774853310414470003079717720423855895348442314524236359395106790195988404277500147504122024037927207407746346393776391749645064018228370122272892642614260440896436632553234735129474466425668934976341639000230931079584721680608164320813690214566218938286963492403561135598181230504615555891880957066033967506508612271567377104512578721765522398196486627581373258206286333457566347643092189044314029303602073205299896727819072622324484532109376873171561348032893417891035998037775261463115149293386898876923987130018251650736261640789986165618254551337365610476173637281804705605252497448375193231466906965351468311327984159863528598817433522311938169835984651141226980481469453293279249854475461844099883124447598947499160070696337412590369772685026178853887539043016012808502560524515831594417996271076246680271808244093968789310635559469163358064280428961066670407587494554793023872695186618591512233557114676341307244671078839706222156552131851487534789330190901543180002872768432844853451827849636644499071635012537711821328136170646223889006579792172909979619199139862498955382987221032278982204750048481544777926090314280218709155647652278373989046510455881971798190048026180844098405052885666957502975104571455920618183196276726391213659522784461312880886327718845831218981732481865619500661802824864305950236970045419273495213401881549401820832608357604740406344730237895619271805015698371554352020394279363292214445869755434901712615368347502723214559121569430081219014945877055694470396243844689309690291789229984120527842311913034432157067341675743348364105616153997750425548077160402432837460714980886601339302499552392481511782568981230306235644020768579441793244048130789301820931163405364123289809428080931978669334167940985056065589107172579047601725312487655818736060764543767673889511085312301323245072265634944358001420906001272541010142201892583925538564023235444297754035309085968588591291402999779959155664918991281805885103410520696710371691196691762171671917776536500796947344398000060288073508732506126407690995206244297792052816043953070511056485574287582853548215838738143404033633174429152384654301548643294471428186788597730459575847229606293788561972063846125476915581217754805947121167688357956814511305830941039965709952000388567632325518240561223831185233022571329485983235051118813672205627145654319974328293110127250285201497066149506361703042008512687462727031117730920188738598007539710652745647339864761662449002352942230264739736291205645005955155960420322602380372566981694601515643995991448134151021774634884209250318674451576084531174652764552315105569817166831846775981406940374233126061645514695315754285490212478155223884850478779132473006554853124258770697256911299118230436135322547113065694657449922097091277261313079253481204414878746357784784089922944185672400935711055385787981035982834031514156541563358417211532615780864829007830398165590666222237449432909845232661524849735776767751168581703681111676899044407267203862571301642875358914466788362957676929924337902530186573220266479794473653650071700790010628651154121961473516014309674374373360803848797610033339406850493331409427604576412223452833640018169085392644703153309425910013923076177354048258877338660631485727965749451283888444951129225475524348662156472130418649465601512838214083056984168166337624161324607540119344348061866688392676628581217695413652884897101248439355890071775390071469618419583023892290710818959125324949525283339351190142127753782334406244181271464300970864132987013554871557508774674827930962806379651196433381078830292329417943705563027439133482715537865779767646437830295637819468338868992946986940531704059678556075373496495800869938082415279328121389226264505386494386151035003572771336647318081147083870589817676384833027230618242165813709844037695805352121494892152434913239247577392308137170773092831846601671923878045737288292587357797500418515498938571381485482234272299184184465083856104683419139769679961813180870794748850807711015981421486535521575656985729459458874664047530329028236393447190498496660686173689305540576091135297704678565949872954987957365442605640085495364553389938560747280268171975024131427742626550435083308133051487824782436171918145807689548584890324435175387086117859782646353455266876927037468469838121764083589397122256028252002302089800168935278848247754510680100885652660651305746971458186638988328322692218829526168333247095714508107587874060124895737200831360725816105216915796278721237102795020871032467010860133742522062012825307811749027389984905854800263662161087796887969355871348114059821359895547550364543072439961008957244623023060327376999295182737014981026316543644245734674691405603104262354727585237901051079597517349406134804665146724264376341499704241772769788199331399799668254482909819131672839051034439004370545777312783386897126189166924799887212967665245746066209159325620215785006513691806087004771492543994381729793426481656836267832822030172594844563486447500480630982488943604220887738673526542166523320977268482580771998184378427603413780791418961558542451555289129785117676671140988459206904974179123990409552342189365379843307801403461993700044818055040978592448660111516159585357628973637792014799138732971870762361536264065125921775812948384020603545200914632160254480067197860958330253710711455412504881737993887464370944046345054692115879521911712349403307793023799142577406201008613687188334789058785849109752131693405611677045843781547623707481299435303382540076002530079638329254741804616250045777560739766546360237659340462235055686866278122143303609345248064338090139935794359758547533461271256514879361053674857512486770597267443359266872148156719063942807871369338936576982681587386075315373928495965301985552082142326675029997615417484235349534633439224682175184056555233210856867009064085787512230214078034594397961967413083200070246000442186585637409823355540206866948500333317368512456797558725376022804541986338008792219371891536969774512795173218286776027527109732910630640038231999094493699478852526171426387287987719686652850351592757482456936874521049969215799969030523203982208888770067455100875887200735209589305880357185528240671841709973017869256165053370408561035385217022621106252472370436563103596065341635019249176594159589412008842893580749368838034280962014600914248279575318135244290885428957602666753218018951396466794274346322414588817698250886660149336027290701440550096485862453016574441422266634001510363261860513285414986918455279967603554679439280090386108393899880914224654003832602592375090143303292139140920200445577479884962953700875373343017773073621162070679365441941518853409811079621224383671005107359515660301182721680272396402622200074067614338946888372625783357836079894589435375300024536786355350209228089966222884818654447102386341356530202220430120070198562909366620445910632035271537804403660099477920070502739628795953864025728356324970962800487121361954320918938262140100961056797195659268069300275086138648599271649741155909947572125484453061895788461795695407629146181963333311753948698336289492534694100078714858219816926106820699449139623846222529422738422523390426703551471245763606230198786789359948408262433805793013252333322274362932608540480276732853718415447267700349720136639393437682635893860840323850489834860373774742673205857286676328139345993211421649270856237779919945004840049413916980782312601452197455194056389516707595362419184336177565941180613279365433314959441914406304737459180291533148970321124228862496584363416634578282568749731275715454984753857151218169201209967699592369951470283192349367631935593176154632279415736997656708807016830189957125005744552203951176717285031938083038175195866648989925705059420643628380845932312956632370956881974920358135406989043756560168574479410365265868085769973931327155695114361635482085251429724735597188953742890609702195308947710897702951553699071431965150082501563427666769714725585017468685230996186436651015940242547410056329365399416524001811196822799103297004451183417283934494668053761880107770993182154058317446717678525237765699012510853460134147384852737268173363769243338652311178622594619015649711153551487811767286899635160990320767794318867975125207266090173467433368034035543532972131971248841644198656624185028230826346353177432046482986606907882076523731418590491142893558946555830220091708001800446933433237523873373891488480444041618445895801933694645133846978033981906233567159689682396280532583610798536716746461926311782137108337993019660334970967623976393088005790584897912179565740826342142420051648010474623339651318705115603451614105694082551621226362992348587356262734965270465160057598038628982739584446018700068642656831182739505304831782167740987819090826330186542327825568243847071768939613953506197796619896394178665587925254246397420673172458751011634690060589758107328341387522348763719896912802601656700090196484145745422174278596503805213415032773435902031693373746009349108038114724184272117145163848829639610029745011080019165674497999440266356620604982053874356245897032590732145268431170418706110456335782843088824509008283076811713273599646009520396745394410238376207471374270904058042145105677424608941343245740855822145759180743802683605467889576796377937718078374397208326128323056351449833376266247540525088763713712148551625356713352314241288523073607425393753576462036640139664091308599263291715809533462688798695163436717105542100992024187164435327933673226884501352693895473531894684603507836309699071498619290221664409561793939752587346083728207264961126057043702697763340883064534858106003351545134404071322017126460440246047111379218405982231329920077185758730230376609228026001408036164859480624781444810137200261807939652880124386154960818260691178679294387174284887650103673044821203138818973711201983864625188394748075084470682321968056344887104223745969209570711325744442387850515438292675902482459349440208297813176539397654852494123651124852198416182301776963869372158305997865065651031853037650768047209869155856457955842467366134959373836941837318244117412560374605774247430297245955069953087396709685052264705891890660347046943567418167506754687037462324130001793386302889034687233554010209724349284417518318704825752231385014947569027339535364629339274761260150251514851203807592673284384747830014044489695083001323633849042654411371816117056257899568844960379069661227355767668070347727454766366096027867556583134166497264434755653942929099485409902625672891877149814842220997049598494838219096938688779328145299973339005161215168669395757177835422341679898665117134528889360913509380409019922860828408756213799648479160776138132565229022389436823150254650396559413711676853792426703726154281867720865494995747230659446196146976276826615147529593474179238413125760138221241445843344105207948468499973778710964571618392936962492653199727669577783393771308941485167129594639247562993413231914442142217789007605810226574357773472681673566122559596062136073371402696687299711387882738569437595275587955719277277706918448685501336656290586870837814417671701426536687641680231904514285251219482877356925209365321878526125175484014294199202030649416034261070641546323326093121109488563008075463462153496574727867726416300227050746236654438390145665814510162273617938259198988192290466917716262370039991808827701155468906306894849312167142646249172456044249590779762468574124373269148789388928780093554221280845741036914303275835478013334585021501078873347719004575293381596545539493222617081414772571059359055639257881807843259598297045528505859080438784149843284880836616876598206587031451875432660755146637649218789474826624909337194129996453323956919229891517652266464910503516037892843002472791855966912336039455537086345640836622194419087711213641746173112431311353426795993983532796441108817496476015735154664714541689282563802346316438922328902144968970206402471450643096114293952293473474524024854544241606005651909300696721205921167554629877316665846439251024383126233950231565619663176236629788020768271263665889991501928028057478475440172318890083225023643312135475013266094396474256995713670371272957677732026623919029683539846369565922054943403034591323565886101695387440553402932546566796583351061576090930326324089596886365994383746924021231921631017578849964876478910121501127511319100167294468773111195282057916327601080427732309782654218814668623894801941677943998881550273583462212135799734182020358456022295565260023055010530353239174678930989153104734905552592905698724524242926514225897175427025257636267189720728182741601870095590568520372466504067419166445538718367978414749137544105697433144150124472257251332031108075289809719933012246696503907922195384537762830290502674093388893419663370648191260244607711877342512936359463910454927057902429463512651284299536762150485955965871750555561648573888356168256036688902147955131698882662693972403364157300728851032076063000194901347941176467024624764858704035463093858189705447811077950956360250761341077909153071340223757323122810813272156108667189949590929314656723482339092139682013928122509111344310304587052898766134010564769786193029674043451636529309967234719309645383510937280101329498007637291953517923934755697210557578405289086233437252509446047026105771740228928136620965249674037940405248161667001770786795308388567747982967210924097210039182089397923916275814050194178219361902671324925959797179073643192768937351645285698202499856911534248032516105865357304883390883650944817649507125351729008307795912760623301807994334405441579043158808448454547090391773044044163183224145118234411946826501081844873493065106384050914132257105417725970798400762977715386179186854565972092841111498585321638827243340634839628090500279328111338529520433602274995474797745621591903364205445676512805612925111227826409858016769776811691618945741406781561594583148906172732804071545803198074777276522329437355038910229360948012886854221546885327884717792227602247864567362506625532823966452855674426641529745094384393795916018841422699263228086300027253761062607149248057330449265256404219969123833675567310012552504194900016520646522513566009735690644038964616327446445724561247427268338498388389881948341070341711554949892361963750364648416112305351178916566957445140077426683646285510779251387113752639629710659517663827314195948735760571475964078563752552804603194862852562563468152608690459876665609980792728712476318545559825180751733658546895371102822785817904347750376025056721912006125313966469004186837876756107588341213756398352283889717820337284381561679494946951168215781564475093341789273160947113660127444525731832301705778003883178369374198989045051316743518376091633743077011929651388446280076712965996806134108837844061714599094000322776132161889017238072565501617640728928155632706651418711017548824919059109596779508535514455942481439293360631628415804006020995754109757510137471550701872874615680776870305752166620046374772130476581550153351742665456118375445683592502578737367803019604038398347175225619122346686737263638650174633911556781302971929631147132055360184678731675384085691627046569748707689306600336743127911958424181833318365467588470704600946125584007475948905264881446768066238493583480777137809848315283449851205253174737089318091681235323929275884733038786462691631743978060861868573382262309758843928849293760795830080306530963838918308504566356078786938365247982445243886459931876197278689100460374167112387165264508917110773964068434071597778384211241205526659068513799358923109896865596430088733604188415962333711505805832491422705626117203210118270913553914446588874084815116165480965805254342535928174895067685021548419336418522808834801150235598745597124864579190991235843939940498059525425052800195240712234211203558036634181672781230851812153092917285923832078421872187646624585700960294714494642160947581981423088567930533757631981193507597911021877513417257379424831691791429181443725987462485006449312740932779094013739581147772714899269819014146972162161255803443741285867034308150365631407873817474827726314688834870433323808349582203605153482962721367987481500016858094020970055945939361154341588836341595000105454317487064110834971110165667331179940274547917189904937046862219411395290788007833724120528157972791177097155404545749369637227585641022090751159829806646001695552004947541918327207592704596863484628092835051621048763564240622787046924110128294567808772535113969032166073517068631987573350529182941340186304012768862052090293050500568688074204352592368114090741507724233619744231017909762012219169436477430870913384709912237035122519411522622057013683365079036381556327142846443091094044915970241067090779848458018851755147701529168882041550229239080322290759022830207238310862821057654350057896431350120041271614141952280612790638140598441114949058030808698093707526816313196702196341395260226631800713677856286548400902277035578849705513510854312909378715982246924569969243213141136814930815612174141141453962038212643957196864537201165815182281134936609832865091567018164207112964906387030393722788299774524719207084334460460258479823011935207680949160620361063191408308215937594766086628029368870848268595525872324637062285869556934733876727233845516521188134889470802529504321908476469799920729288590474631929933998461360417336899190906898991200331781709193487138942406966807956725031199244535215740244849152347714808990329760668953148090855845802349493728230875491320486358708886836094913114018695528467618431350466120083885022083221917395427238328136067554391834900101158993764122737037535074351495581091861852229254154581718333602765111753077090812917455071055864460131812932255273292335609769012364470572172072750429307531323188679545472481543068258946415994796510280947805389897367503349140444166137408850113755577854810880620048241893115488420301819091680399720991806909621985413871599284084862289491130047681537340168887003820309625839979790528996376765211136550439216602497196151439266147691581206550439334810656200326488171564543109702060111721588061185345518255591057243434308208793801828257647714328010469833053773247642795223232827351833429658143670963078309367113414096509849304435912775753240666213112342349283208852545523152440510079823996832262459285389126192637341963102415620594552217303621234890158465290960190621406248428573935672037569928717741396106583117718663858093347007170483489152537768455223431716680870974507353109766578949513180846783945739794444332037382683581199268356391974596241174128814273848595075391909749651515697060448924626195987860416087456306432827345303542405090035602639640952381390738059720573555573017079601775977812118309282648582676058793826779867762807361551045282659745433626457603037648670934284813208656160293352038058962213233241385576070978406530005356338862820221656672301361377707221514617213403063737617794864854354253968429122577451957113583066736337445131769735757043818004813620042110110195787582153557526370906672504043842999367338601868274925237221473545391391361978319958526199575317659920484392304921439535046553864423229138332769056763751694042564288048009429741951118158833629528158485385977086856747755091696540632316863366051521944346724351695530084388003067657109914331086030408770726725938241965338231305620159692608968111585290914373014682540162816134459961268576157217449378759966002093437816424094635764869246932007304979190808480758530547332483800070529419265160975227536889020990978689809341916450767347063396155715378146755391063493276487524398867156037441029112075892243768468127448419221745015225414638730265009395632270186841105216358429198499313562100112751353450564062165270241486344044275803291679976699613106251219951542501272154891424104083265774856385905431888186395802210783698697654201460890432536164338094059340875562726109155215559750889399009703960149992138555887625230407372582766551816249032911798611035522893151939726913256451447240824888186573084462395341238983582123452341902737079700309068135123536670137551566292240948381988996193836743518158883372246023266138797602767113690639048363157741379140347873697990063679274135253231388424213535860212312146126853165453745204215892813079171570274099671063319362614503894441945945183947599709980211835059616342090656899475183495053925629843360453240884354238284285464341476931692047906181684827785038837032137877946205488163157401973689923934687641585537778854172239258091429640710132951258141287230795661699605286830776985435130832502663852009110295024402328382309728289379293165498581796803157088458921102591479859120173058353239663771622283215545509637899129447051383964152723650107218803132731012009976726863532528376767415504938204980389589980788961298984411418941707837056343942087691077349072938732431657111530617888159453051127797065341615148147116403967317916267539018797229704199390566998564649648800597621275962949123823400421252255793875647921738038592773925530272356583084592631900571646560956241008663983402381541815072017080262219985389202440865732003688199055831999129169843720924010638642801505271360126882810117315041062766769454670662849556061704913922185030266790543205820070984299947052807421208483407574792822560498890828881181087245092523696809514405174115090374714290514983654939028457423319439700015075755921610520055588964955798808676896668792903288991911733538490756177288813399400375173901267567047188618401546486102068722488449611965503788258357527723904064915967531783359913237127491080942672042517473227488049140141873943729773315941851832074359385979351371416944685333898369571621603641501699396514925800920788348959285985590214815944820233048430449521011160373336364024988885592182361860653961588445170835219305036802012929697774978787054501217304157664529724729273466894916757123883336400965477511126853748843893148111541253442901783433829651599555900187069682316874154847481800480527346367120963715927012134124822362486630799955706829517337849066886847315420050129699878373862596909916147560751451268877592191649726066242592111759055893120468258053372015084364085656868075385314117673060190402764634736074548665571007097302770059874678270592868612065424831313353062501198209498686559373241550636439881391773181993860501527603865301888338364078425817622753090398735728828637608225547630410972698175968709280760027342651355853835260494995219006576193589338219980234813858883759374698840334191899280937057511093059734953110045563725803414642378259290507297263745237799708356974657837821509201991449191486015067842993691425609788509479106184562618464930491389342047755813528630600034955958160177618805299979264272024151598009161278613629830920301304733498876613002319681008473282435489645363799223061287154341907207498161706596838624672661628891479461123249514827210440159523701884127428546680479808280048898280673437454109871384630301026498138722072679333346881419133126562166712109261166478734701817019184535685316315217879461882978783189510346934658461129053816605156403924814530229195135691601706330795661711059692189177124797000880742497986924569132130490046590708420896621008086026492231188939945972285577761054220672505034684954132113033777063179336300796690436307466505726733085261685521858034728517325509764390697952648157600419071327081523213885893011027174066412001876225878604350585941828090782884717759596638704009082742255777723458325806823088987466151799001868192644138167695565293838003910840238249365488809716427295697631421761931584468577518600910384519094696316930290639024404656217604262060417679014202433113150408144956094159556087659092077466558486829647634317782483610923288780530684992030861946295094103126677115840895837100102887484646230742701868895129849329268234410474219406307314931277946976448206612614309680889461505518098393315043353937447034643688775545507117966183090211180258585956723129372010021635980663417315463984534741016229899795263799843248788484357220418222198051624682319852877193297770523651803870142519166450322994077213505707866365103017411326850296401753414537655623903846777999661426659280886056495375875122505352603690509108521826670125752236827169260374221131845274740163319516951217583891000870964438886349922024886941501654208271484312273418326231492412357311304079253164733685608252295377627848520062802497492598750676450893093793715308369310489910097801282845913028129277702924552659579388500701060957060001456118445252733612358938578607343802324749108408807141772147884381825548366216223249702400871238633985268404322527618951695301912120428710391803920590281277981965165449051969374546906628126072668093318732870222533096238572755858733520816047278776995321387371794971352539683564777732000492438131377074620614198059979454077854720074737137228934217372904549333548458138122983483712997294190935145781633096182098786198947368340586982833010477527048496425626947529216035217372826316162028700499186750539271387905081422624268630763677572581855223094746158088593520370862212177107915977836743442918929941660366861879683614756933868920951231330419117743943948211387577178588933375092487014726701876833075957472954500135388068494256807892384755079406363328037910221701134616229901493667429381766821336262500064143776852656757931462203185300215858740989856451352208682049720661523350753941893512371555147143369228525207051422580450604902474035450443030362986767215446081844390430661343375988212995029376361685968872044350784840568181482023722736181146855036934099703809312482197640484418709107419090150450480705595496257038742306725562833745906192209160802223572101957357239755854028169052208222627518493063270582839639671563136014905276910315561206516430828694319380642779124525147125301172636515365134561238197533553707508110961529593938682743440182429965244077176532140301537306386339934694383290024658703807381165762012323147423475978042488529398657171771693649176037675251054131962026744737102658806548030475747071344664325302648312883101971076400950221536045438966488333483558469257810507769745941285478499047735084907629383650819963544844722440999428714044186635157521565220241428385434043160640358910383535049655910380441630212284856987833327411964813034993130242038066074086582290452380619704115469727860536522273270021489826047143685572713366134582584777742464116579599250502940381985014242226343958504776839396040619106549269383616075618952694954251412673211609645912782404766874647797534835669879024674702690817268445384263596497612944336897730272644763215667661491858499584361324985453768929842358302519786791526592505863160783669999317009060378434192466744326072172295410828040912820123715393963667864775007924989563111689891294897724663331342446561405994387197332412996426195764017674315345075236869914126723909011946273963697108766471728516922737121289219190678020294222905791301824216766320888784855252517134406484994044741981549636735100868579689917315748829230057110604196003887105797009410518743951518982111082371125654830677616592682703972167126685738758250003502026323699170825115008320315134023928896518138035568607516333143492382934703715557338967142888577151520526569406468349403521522315436426617463629561346799314169902065428027901280874672366412323940317117472902070632047073723507995476370579606579421536735694815767053079683219722737483906083256371696814626847088953857238258493558592073032513533122355895952805245284566546844594912492104445919487321346935373160559138272387909886941026419889863212712583899192184832227210957667752183038192401476318999308262966770478087831723219080937820149969087074181122805604909455447636004959560186426738378649114352402246769875506244311140093296786925174852918324827288147042539403680033393065596934276188734494574098916852194168230343189302401946216096621101570036652158590839318933849061792029887761575345358339234146591666624003895293710550477878481396986288424612762574512402619997798314094361428272475163533934189877472290318744564699829623201839509795341733829362665998480478071988439604297560168478119233228138079974275385570381795717944805182642143986425284966097984183239958689789801204035511781875566748608893153112382106878842646341407869204050557411625456798722044997312890537874405620409943486895695789204850720679313119358010198790156358026770331621311774312557228647048454662192582142474555550202699134619765353894700839124203462160543857546200148043790182852985882549309770691631745013954629777342418603826791431078804952926275445323846982293548238548398622216802554744003779747549907705379923786415516831468359968108385109896871546523128283497312329234266347449912607353966753766194428818743382237564693872478203121704854525729207385407275983496804907077381466303305292988599372601789250281274850390431922968000334226774614300111306197588193746907826395095747201667762491476376270374756522668145279641106006982676856694767959514373350051334712951876018132712927183595197828196101350900325540293202707220428515158527716054720650632889203619189540292825115262631776304919805434699185216182344002865449808708460426695289299995440166368805838115338339255359570980585201146274266144214212579527124345287540633887577661154031704682726645931823976500753635763106349726115414377655727436109201927141992612162025616047017633203530356945962298594829250094375836699855276577661173392105539659423037384452740400978745670157534579626687154530919196112894489055238874600508293851924351909809812994222093299046903011227115826167972671034566392969982354452882467981751500879196001887597353788091762812253830632528989373416761336198378667411109228438479374394376021631042522942916785017961985601260429669115567823106148193928149326825057119367781147904776719840161989089066187718845691625835011138906423840175169206433847712142297285748508374006075153698629017067197461471950801911096184054103763466223766327087803104336038152413157320376472610173853114710255732995687980345484226125418296465210315035599640278309250546216311912824792805596061376314926719522375099286851773924492849944953450844983076340569644749162517679294633487134529429227408738029446599256527167236185581922710493188160019212703596393990322357899987638200944448236508988680704904797697213034585515132345747584319015791689565375857875903185914650119568671649168551927803293217667323139476047680890505119539241914159026103171564408827196493710205983382508040007790851909566329724035330868416542611755659502057177427400754491552647906705419768726756907039820741108957019709294914543732511903734360902884627050440743284417287949972985924030948200617425522553056236824138308739649862498589539554994980670088239828979525543937124841160351109961673395026921629911071882819702255437249299004477180001802825422330612207370960976902911125860452891632694295824251125515234601527361383164056284364563500237632306232690083322074095061079934703569072403596284698409325597205189465060728651893104407467290918714496096970346570006552781379157367652338525744971668356763423982672185951410236136786353884731459382978600583857651118905830277817855324139956149749037614411951410387536217719615562070906458083059710152431258584168184972010940730774434452797182467871531360273899276865408584624567534746907756287289993819006382967625879653258795445940121682099824223265536870649835728232340240137942147333448137441071140600612043419147776889312899559111828319396515029489043272112447391032106569251262923786335858576398206851140026965645373462896839063633662224936325535962729249444400260410542768357271334431012537871307293836244338063954517767813240669678491944721526464397603058734822445360734734419929041547696651043731431192359953612051070544735566296029754328719709040976353256196888155573944488437824816111011140229585799775936555113030870983075276521327109870467211321807839241503351830186841352657827046178083309740878728620509681168015361032838848540114978067724255885044751960124195414677899036487151108649339449115969483177237866704552724870290728393847563316219557688335867442041106428019257417064875563861341624511103373427209015189970226893221311202454222239144363700602892579951923644824003135192926931619729237046022154439272306577903525847128139145677874349029195532982868726933970846514137646483648594284033651967733203412854232317138863285554938712995661256414122562060826822266892830959467970088383465487215550539763071706691158256006926365576859804674226231336762469670467069541744203675609350198281777041756813919129754107701908264989591279810811817883076529197226352835667465781699167307949604441122611851788729135167273513167203763260946321454212476281829166067111946473105940150784579337880565486607836840778181958415672821519943847084185436469110778222756648673646576069108250068286573113278716082421310862047432778790005137366540752755607012886763555195272978100685622185351664227361223809291372419228734153356435078717893142144705807753438362221024803494042810457875687888424827421045048651470128311212722410747894106201572468708278673204648074717083433404053311508384055096622044727014312559557279563373568811271392997081834760458578750205373541828853410412196548449646571664839510364329811169507156912876966119571149182576049219967159204590970482973109440152891243704605244837952166029367827964732263907649313285810913929286551493625491242537804599873565310484192041625165662125475251873857953582907149598540548953438620252954758681819457093236618725426637329975435349068842174715579969409618004730832602603368411328012638832972043901147854655482161727216891971206378024328818784505550146886730755980770778536937230054848460238492675596285465621263998421049535847487168052382950234554237773164955043164890730377442299288501002987402537122406454573857325386327306782651619776937368674329666454014206149738416515027482275567231620388361212118122668828871130639973605556037370303858472429115309149751922181392364855199796879007388344315549187448207955851776943944199200535596628015355836141149417432346134742578442475383934426170653043637767113019978805556244340201675938429786767772799604620617105124044553076411651118860415848906866631139215177168061099207840175702795779276489483442991256375556708771286057154591029211354060916101698478745470949138917651521223830207239679172530279114014967335413221611679780536933257251355187536789164239973118448573608609390298326043413285060418281915385131123440081701511105194301454492308307010272156793144437721036665581395139699997435271854373025335370671726112345560704010155287357004914404147909105430150477443667407973987544433465461637016686728975241601434180043273622499487817459991377621062896309419115566425965663501938707359879032590735608724520589920530411850193670481740038987360398192063696512831653064423408994386328103632139251487048667863801773884252702966642115228118414257625442311880449694508606712554614715100451403894896256448956065292751220776080708645441264220701142966199251101487291121788069764043277482658131414686598547434885239412449094681625078904398833469867286424729687649118107130397088826613544491515175129614644054603862789055826011064211915189108717565209902469417916158640172557344640050323562315478298272942469735108438270614459352941902208264923452665667464736692590372995371518432887778091214322501551019278016060877460361139052631428135526043970784793776607293606468095285332056174631967044252460990075891885669267496521463883837024161735892981384442193581695009332984291707971477267065459050843444491307014514869165435902123466471526438079499296112386406980131540073200709186433813213176694053137806726470420581120798411767373728614599153679404577141803966896161294548941037932626453006354682675631266220204560616538138943427430223084121449445330296688349614896663803923642733242924087975109529312222904394887747202874895848458902005600450485978189220968278638268688698110780316608943641413904475299301700065471670760533188659382335513014933587622583262867115497043362742580051877477320887558022158664672084642910650429397008011308069199026411043021533833257026274917704637396803563015379205016893008437178087233171389081850661284945404034386651161604689399925946267044536190660621470051629735926212050129975476842763416933159096306965527501429149539231328381284184254975322076745518715291766550768634631435521775845702929317756225417310271346504273007708254980073674986900857250431055010177807415487888577558103302541853742135514317282985843862457453993322720847841665417224710430151593091370350861018066424201956617407333588420233135577327975327536568027110231500231130350664514502917243538614066981606434133508839002247653608719066239473537663568214561457088528310077452766140802001849798937700692800530129757891525987793747346894286243952701566418225041618652714683216864162847264099188709686708066579634706161928456116471042020088816691109372303032789276577961101629788085711927746475405886513089444906113926857765782010514003862081979495253285288005346706258261742478230702129088817119185058738496577500500847643553716504839031249919448196854198456969300278126489407603970959337032444045316941227187851905450843694493229695641522370348535894241211691696743850271119255692706232356008973748720342720988032818107147255030849541742556103859759785899456499754862274295680144196415678111013715390443482773646047515082029399163687262883304631328818849935253953875799078236670599087682479731186399312507502401842840605454600730037680914114331825977697035743296505158334476743379798236288251212104932137877008976232898396474287282379522707843756870282447350879910539296345994183887288885518263925752715036236938373200959722448299070246072188872673937853333973841046333188119282528589387998333809400047077216990413413392263331357902694037306226538110546597019746641045285989085471437350320998079815826414246614571223086078977642876380611277231104607458534803908426937355672947735195340596425258450409187331722540473988510371087968898471495863969081469521495640453814873154977579545951818816119698685430222654819524231480771301870833755799313878522051437044682706745949882798201424446200064971299589612542169059141291193564444612502723194248507199579479585141811545972359896259056999182499054336445631364162461718690361635414119445722606963050623464869063050492256512068570989894796674277609241179182106192733193872927464096591769957725139152642596831852738358934258139054630503210639109046510852987139932316064312470608984716184598883679076848277222606280507336614347953198593700223342850357268692723897217921186797534138335975893235426176496911893628883190746237361142921611086668128496972791934235197993400124304172989450550523343233676749422851956793158845432194888914008887038173039752063725684893581771850828144808756798570299561103078665882285523624753201150765166637893542379260079148402592619190214566208443941569129352531480503010097517772037774633812052375399793410182116773204026387327453191184205522061936585585193962664032460444201659145937846636001092754620917649066504003405477995267835220224840985965158759400318349375023437697460164008397123849776413925130185202552828366800927146716711964498996095818237364483753162965426409215737220685914321583355546723414520272473040167467002861109148762175924088293174562917372998862558562868051393373495680367339954282683844798611677127000895244164165405759292633072855917191487140737988880536288930477511142591949717668243708256995302536547517568527556594782843425157035238065250187734489058075719860630518532530702186813844986362818215417930552895504441361796098034997875394421923034211345624681747720350967756314014182900316234843965363656065174766210152068432166798738031085825034015268371583776968536469051064150014446939150394464378184715955820156798516912734852668515756641917978615743306638905207498013058004726569659969770651482489087858583874679169160868521972894982642194888238241798697066595297944679156763337056605617464696532414270693529491853015718583086949155032630955215810671300852639704913658414157772774408230274356379749674728650258421997304768715052656925435979795851572299833293613247670296703724758301120350964782131173619416486710434454148100952799187636323480693754970388227956218367396313874134185296104531045831534311289956899178435984780545975329435430198800793180907035195594645910703036045248460893398519953807906028982646541649400578575042566442445617776469594069581214521054209815941417513467589286039424417360094980673504400081068362645860403354085329943012446959097239831780531165917777299759570065667818488483846082297313322827060237029412906958456470621818360085370395718923118188925961704636391067228493543953518284128911592605928882479194997874552985425973311976550074982483952060467692683388576728163145087578540428461500579843856824582010005844641858280707467710082857833065828807300849410808736214065684132949267386422176314690801903984158071679544387222617834965797387829397377138181334555643143500604180400501821071853792196976878432520551638121657601856025899373544311723841227200770657208629169497025303887789051461371352276911629385228754219524043560104370136323633889377002829664341303684695554007403857911085071779493588086894514654386750944594454744031158921974064163611101761760197815784920496656185667628553735267869478162779034396399883080245659275745871792010992254110489257219856510297865893359421391667515598840435410973791594111645045079432812813417719851281618977704941574336192697753211365901039885418475773355819355392874881815693308409964355636184273806837854301189202452824619463091705688471588839993408641041431403046779700533258741657730719083935096255067664876615093838059933056811954933980132333833939732559050063085846278847315087006663641139491590702600244183254752999789010367916801363578934967430064375139808458806147654161176032439621242614831107204120421742547046457954527731566086951732257644441372613380419760759082795891859202091821815187322834147477158027679692371718927284458137538963346456489663991520632665706012815814176786259581067439613072700797592162725795746511836812824181521551388402603973137779566780053761395428738289154607175848240008206683396930448345857993554327898159810150914875607337580109431951579121473183346696211567344401109221180297164298053530105471162236939334611578184082798569454328033399078254042521543101367710294158043849159151340010321942271102923582172103146667369132911759047837121648542899468438099265950371906120266855395596178622714022875224576318120609540337294027310565336746366011986266706882705846314675271664529823194797752351222750625135733415102497658324255251060360738969906583932692860310569108380792788616917080941864631739564971906915373979962127888237523684426819489732879306097113455668145600820990906687759037310399898540478504354512284562549132502209999564002888551739694915917658061488971992808109106874187908976918742771552800304216576143850170648506339261593384674205608373838428327274935197414481150207172010783835640603097445903420025710521890031277492962019839839211522050351068896418315404945596422139909968133641863890038270065662683841128863083193942830143935852546563805630448691590773666740074283183952614753550495721848440875256114559859441874977178179663223106932593482006471585088038095126398956218091576621235192107693290808957029600597873365260235784699086184266346366093886950751243780764666765249017230751545777765572614192287728035810313170551357482569580851960607514057566328818054908460585871305455017941285780507052384334928333559565080197152738773905879944151898727600188134475110022546642827900961592063501289563059327915277480555563631249076471168786059691549793073042765158109813531128409506255011524179336822281842052642126225917914702861462782790230615293409249510180853049294273573667754230842924536568817648454913207911754196933096371047529760219982921761361911753439135676978891507695151412330878678710681759878750563128232056513725297940799859683294641274905734256441420862475296330098448712205282644896168125935084568253287267684574645155599610549630311323174845673325154182106477924537588998187593264367264836862664343264107245852907241451141400253459782377135319343770019153254801005892116141084205221564428622732618314877018647505181845195456935959310989231452238839630555478034771085294073667522721426766738865046496098175841714299769197356154086478384136120306233525040305826503079213493709612256377913769281478747482187103105225575385477220081834384397603516660210469854880566417373950219288615026748907545862919760228241159524576432629939611059035430726255306566999784940686289160507813723186929300179582634789363928285920226885272078343286085502196131966106394473144607874080273102887081152547051523321542268774333038432730520697682273841284028498141642995075415452981437145179188374358603791918514418223285641439317845857116462009538619425528657106411689614946675450583455156420393487562264047663063990968832781940194443790344443267041337898892771293358737323456751590066218146933761128836668033702833827405813714330889808506331606087845066338751349185022907419632741178474620410194716631334097979218108044391069686315387549221572656480367625073115542476460386953478467559469388508770608664951618944177322592347283426627421989643074082990527379762886000401308013060228818172624170418549938990385073661282568527965908205752174136280913413497737244024536893997842579161003954374891324118432903147214899193440203701063039719464892243081848948031962477416037817127054680619852780167500759118772870364849413541882940318516789897131346281142061905989916290996970671735581752072681853876401087954689394437033709864885803601128266051388738217028723083030688274760463613633433017929417956370133441896849864051720708731558232589386713654097709092162215646517086016876670447788168954648560450928082175921851027233343092861721044882612920478701738369728326536051735917056506957770247750356619932179334753119457603626838692313052159782730973155884454450591403834347538982721197985202526619866652728568151078623325070067958440427973943631428837960276180051007819611263091024416667172667207663026209791418508573365995616092731349137814083879365291337166921613304111006854249114386336507129554702372434001410612784912427789916480298187243127878216391613253280310498819109021612735882780376753925075653334883469472070645032925327593832174075851881796060020875678868948259408887457644026458522079649420965777732356331234655360089828768260219543363805426779207858373526714327442580379321015590118869540916692711805157323374408398187415382933999572556419655974532585180883452092948870713148828127056121500448096526300356277344642803732549396532773665591175808870335102824392143061526980982196888832163250557992319153513361488235595425999071643466578761769019481875254121539463052162889174372550070092431556157725966436572772963478957592598313368159186055628787288162478176908517072839473946850521395046756014865879450400172088802940371226722970727283291669138782031241273129777484678237017848620488359811772260066825158736146907700414991589593421673304805280180054538500597811027629660622855130320369897390033729073987209012431083941945474694454254293453514300275112551279216128674979015351207686127163598435726766626741067621687820602431105802850208544724091566578111962920122938509670679278962497909537194379505262166920636693624730029265258128700700213562063184062503333176933160502896404097840849373780742694814214529921603793962389056385045065434931643259641582367970277977802691010594652653808434495156933214293647391123563123147517753054557383782899541276473011022144952913367301238886548940723933829367430465592031134634948402720250275581617310792637541382841556550735920672725515578606934363518986858604312564533324052576736475220883226055940810665137920927137784048936084421859241203025524477171471706301021139242433200265933059848688457532100441347686697961661431451322979002410100503000281915959086098759648426793170337229262851299836049408471343925847166748736415603321727060203901750928151597132015078351700458626275590916798240530335498975587136840221510028392299845854429576481490457010460150962271812867872286498792627685771702563595442681422788315238840570234473724057712730103763575888226371676927472910606492078971034295158094668508438061374819780698755716302515000769299092030389171632231475535047597943263867847369112350698642335757002824665669961822038978950918648100746489869291909582331631259843380454760120733413253807742612062630162761412205270222448372131103829110077260368378489629075631727217205945829685070180223032406185980829075592955050518698776382734836117745178012668361855744567523379127110380802985452506501206899310955921858841188262041072879261184320814265301141909625345296797838527716709744835529743118775176687653678029312257334008839185741779731451117441756562288119045880836032089441325002770934093910916333123277129394260891391335577875534594903296217688106481097901635742264959077024366945105522760021864033178120165291972464638653177989538659618532329730952742619506591663220793309677972935860398175584987088090108208555388591796119246226777883315393301187936201653026853244144595412897640545205410578817680913279973030712442607423377140399642859884608406955226492322628488974934026101071873824445357916014516123900988241718685181297230679709312917122805984882346220155125842601786541021632403502428397707987615581402210260080982191258572266903837471528310579687683302221680738466330116065776233725758801034815345460366067301035383770821131625232884595051009525851643793673916064371080561544372839731935342025346239971988081695880371389706796428842174379927846580998885929944742875304998175385166243873677016993155609853905612923619350330268759978954299062885410879639649434796510151467911777038762583610275733771814246614253965175108833724644402389223071344412284170347226782091960288103366268731175092728947716067803917947236322880791070358981325556707627259094915241978060232652941453688254947355788546984265339170400006508080746535542526355060896428887496455902253893403468361097941553581276726562092618143761335051076146118799866247564872909007908698192656042009593754537453145023664523456344160284082515298341190235317762196487751854360009825219278075392761780115338701074846037013298364526630620871752555535171783004030705824241474372586896190957516061889640252013827984366977963068856500030678906842782791604966561071996171467392397973192479130093641320336690808044704491119745956875462893107153132201996835696856272353501945272355678293512849268393369573884666277093906718145327052082475615567587771850042631433695397389160518808969699823678023285683723962728491868386228503412742459305199618945039614806973694652244798792899537028025133077249869309427399512840052557125816643718845177262205434422188699417181911809812903160564332452255822489669734585282073152909992198549985033945376221792124745104887351721946938604874090792515314969289397535360221951032266467416268207957437700867261229995654225862062157445283224730200510360118760284240800806471888297108111877998714279112278014303488886432479229271469115318268647862368367356195650921951855899302284767116341593394449402446140361647662757379324626365937407820455838929489097732324369879573657643577461190232401799365827128836402921145021899461817147275070313409329660571257820585864554702345415825550898176877320402204116324852024528500117402101771624535908372636113271716572367911900309605415571336912100071848675951054954686715620393811020991269934279895348572660818949636758761813071828582481481452238670748023704640107788670122538896094629953003234120917578258233205887263920630005971660978346838267989809624835106450275445270979595075494731513744082886524825334521029818958770224445013684836665507629809152110554717559528677874949057472869168329762506211475356267549186309765224483333160349944070911260219621152072108025282806129035880830853680084904723594321037609771915084469409625951858428177445732802655757098661352521264885670750410827389569480861046247404812914594153601064490836262318742181738105508228081395484539521979942381433337288550386920016377396946332247489881245621116717531130919538084894621846727673635555896904566367726489092062386124188583309452769524994455567676777461338732348010660047506028290253510726664681561769694760204403633073042620717998764443646591856300721903732333221500751475181497424010599073348403081045976395314845279378492700161840502078736099887949036924322903624538676264509564562082029671101256223988618558487154286191831785610813083741012473325614835331462387795746197919209434342958771679736545455546400168243595434487649810205470397458512248758367518222820873846948144301850479783428147028957704983611444966475441900760495519475954591153902912880535912252304522043292619508027890269508093396987214070241014615667173139999011818730947788100616524113090471357793849462480889086618673473052756019685034574663555545319075518091657353969777644770156613229149561249275984524135407455123312838102177472447458844093573722374159233168111776182172848821151249116707116763383629446617746023852434549344305693018628952016898767741024230344074216252172979935385097258676872746663788869442577940073171346416291776022683265548609150034261203500942781361570535686951816447101766058947147054121318129757586672503577000048455788515551941267080273451704995697565563273718332997965126337195997290697569891243601244252868275858561684043145333935542364323512726000743356142692417273678456996391098417274802895710438972484025366850593526520123416501508251808509516366600945585140758469047862453542503427454884189386441107286521095183859593029377506058466701824931568559785788509338865519373634851103210341962829461571562849234886865540566844059550532750848172636143764147732452802215497268460624422104189949952727120878111564962295397266317584961069356489129765902432393332260184513492989346678784522813846397230952589743956135347110768715088622169366099527872933644071878178027212026098992705261383278517963096635138472726474497515588668465862615439368586433985933180263996995670882138877305581897294422348857854167670993451425438999581311818956967600711829595051853704070851528902382762417934162264772895111360674497634701329466799581644116848313727904558696457624570969330512699838544044273217204125615283240957561797980125580217313900570543125425887421097890221794286201280289852289415732775416073980211080874989789897300217768539432640199721983965791650317816312469952911168394359509358441855776017580522018108970528840505504640927900956798005603922156441110500110744351064390454211509655775147703768254826325605524699625436852526017327588136082630580968176712484237164508653801532247524167939973152412943395917709286316614169791906953975161196604857787419821568910575938770328069712028783629544570168850544444178941276314774013671053778172409213882594854304284747363243996120103820426014951781849517228928818582232980094434254539704639053800702336877893706558009861748920376650332991747435785645127966561621513658139646014978253348558619351415782293030400914391939375568010880507998944512050742053363901095072081642055027089174261758950624959926884162436156045671568070122660493666188712320951034766195105002331851536090441714485619892976719374003700803225967370051358970207979362551460219213537887829223659490809673145835895057431379954896474393212946448650409931777434536480878716945500065991245017476439434074515956216414207225450199296994786534382669761904966800832151190731719748206080394603589128087030971724435943144316033806384998787381334654985454765710241977013553349583256914613608389625063760810992771481140229515748146210978088772354658355446640473520928815846175086181548175622343172259232911967414008705480726663863891893359847909938282481452721509035080886449236991217781865203422905495247698235411201511302351552859743753815026371834853306075579444563602868332836805744025565724871603903618297685077280192826982328574035123789540915093235403246961654397259657544147098790337042687671539182623016844096507414526769575094968453322485500373744996867078032175707578542201480249464910458652393434553406720493093887505843291720327399817242686163730812768381897320650633749391265817583345792978885281376084422837075406105363714318225931064675918939432565572369761933694197122281293378898604241702356152120755094334646748523670762160990481333609736748146313662837504355238204944174513898798339167911772692100208204819839170809504941754888455313602812178665137377838658615816288584812416206206421853454494562262008757397557130207562253933478362949400881001174781656877991547874576488534263421095482474592972744572435892982059167306119840662405484067511962362756767764335398018343520505924525147991181929083192148540260969009116924819937693065677099254447145022310397573379511799537682305678199178453496024925755979480406615381780187547625451073233172791465856882339925829393097484970774660652768431501722796231578319469495526047208993705173944595469233217190591981794517366669384523463244619813589555187813027507756051249001540456959822364574456978739217324085694936034117697940780428156006800001972438318951362256251535422087567203252476372366678623615669024667530359075108063930600668990305762091312451699547176110638940077963958281400691201965700830384616575186537160038083042912922720204971652370358061472277493788753013407318938081548211089528588967509031086987218742843044941418180740448161497263419433688382353422615459915119937888402308017680494262561648375516167157031882345205245232314616572963251990196212776758086278198213561037460729355066494823367404749655029126824333227168234376006910078298634898648661416125759714743582247237680667046021713419980427818403178096163792271992621750368511063771274022745199022746497116032631270741668747369466906431412611149059417575229436470825613068307826826939206632613740749056920705348669453541711254021400007252789106513636335136030153815564803856199412325244082798418934985433792995069373167819931890509245762085488125259875656123149856744678431692313960079771441419082488240365690911170852607745148828660304251040877303147301430551175346018666307825416654390131308674931201667978641279379864865398527189946223963479865589883074010163028181350787792961490730307316416677049324358807042804992753231051432058536985862845288186159084814756150436709202989192849029510968449910351399490325278555197641172980453673930816932384638815982366681478566475484156982304899490506195931655149086032201113730820734691854863222430186329912298936397018481840822588704654713908227633798943685798156557055502772670250866380376788778693230405371114031758976300098071593194375475749888547273437855709262315234899556007260141771265421821838162191198007345463464312758457144586559660976868903642022599267493553434484529689231550610990072673041955528137754683555652718649157677419527524408621073348494214258157077455508999397602538710058861867342455154410649011732914768685903587130142142903535349604052498848460639288501400995430127970977754571350485427052418291027274643946508512380438964422475836957923021612659780505219328827744233121065004916871218765843748110228002817479369231835408153437610607873013720546882294753681626841640329164766912583239591769832698890801309341340114998768542278023698768493276433958716906530606295654318725214645415112345836326705800296710324450287428736897434548776716329342720596680186131828743823384197984729988583400950032639364952448920060808805607553411804348922133836763706728400403791428357437625226221817207624052039941492718042675342625196198718318792611857679953283208786975486274623714810352017509996010352580617747289182681796939199011369879010569504973509418425910356127062972402242833129802684527032085576921235935056061243618499081275545319046208577655189846558959953193873356209736500724060143202156749911688361804613894190095137459913369502108666839542318050879899623212705166725141234123733136363908753256401456637960491793590460170817422749901850214663983442295458526060370380443718245866514508885262726886258715471211687370885167782514779681894137220526753090032683076288171034409799655400746326703518591447393878055574697775136225732907074129611251912684162951942160782182181189377359939621537193708441928412577836419590225339080441664302606404733178288253925288699857575258577331395428883525417724660568408562574778067155918877921489180611191934520177327643398696323768864662959980443638934270890682490629486779492906463968051204073492798598455935480318999299689466129823206436421095004615939522435567399089517434440921375953417525012105082236473208795552612782968301232368617781074713276809359592020880049850536424405240771399307192427610500827939247045249649873128266427771896817020411030055289983821084342014822302510899279365202125116384142643168567079536336195154561590682011263976453034837941309063155564207048493064892661831455196309212271648227634010380136661411220695459870936328574079314658110510427180058878564623232555768696099306132894752414683228367302709394260211569117820513436265486623734879062614242880505386119191525097255134124385366676512086764420223223030613925905951608082801173072212631696015880444304560198564242016666715903347814812662368560598867173836883494655381404426291793458455527711503068794788845409029117989786974712184151705884554875061598690912395795973474099877319589813796553838431753288910578557026617736627997408619076801812903741354626660846038631097926791474021132436061460169429906065285531497028402781254110168216102060925130295204838501476399383815646733498526182529578706284125303174667544865013407566340172964053116111309712817778098237210832350154490343999880522321548806075547603198461093293826280817708674126738462653856176318545465280641417443665040370976339219960977864133721806438669031452242448597242253294251781442946471966426507682653285390594879427667298177612827161329218422124617427304307463317862667111093407096050096466849730156711755173312996248403773448586440768072522565667307667642702843647921637857034929183340360430138592967595745449827811696262171840627073911888355409252011024469548396774076710762495341822103152956904131611808418154425868166749803485920594345186962685644725367783747739391996592865479580085641195037610688493939733032092629132321715861757074922522954748755359309799665659094962512506268163216251973500574793083479169467129509190638028250099241040368668312408784087894254415494469077036612247376301889910277995090870433063325120980489885092652659329551116770567304547547196469583074874002493442014483021656215170200813811095084010453686027831654026346275117663746157504275508204037804459000379641736056286803701514115977275650387755664156644594505955282386923080450563322482518182366046531652847283182544166643321578181871299807668905176930721074495960488801124375738124652127285156422755409941053719102461418998314055050357137470516101063976182396318715141278389148420978495678361121534896660378473665370802422472335238220303920598256717707607441766852527512118205005167630386184947175029267114058773143143972162878979678429574083185590564636372350678161158667559773188938202020976027853708874984375215636195733742345352526947108763029884940438078058388792590983180615818723963698387506771836374964603491311601335310816083410890412273527974897212685797271294698302448325392272968655501657168607153073820298377828054177105876865600436569408766331069396358044979895284814138359871800082753229803328477889569286716800705727885866415224908499650971227678323258316420166502325863472998703538655233315667226653981347271539516019319415148342122724561798267243304903675046210057368870833698284402403956096194111141164402250802273173729688580001240293830740129877727833260679223406795212869455326004706683588927163693711852805371147858284580871927700815464148321861276084076965176261788020035786476539281616613676181377214065313235992682189440359364346110256719616837844783643021719129635332643468953283502536848062072164665767598886648339066472956301232170835896033809507374236980578712789563927399284206905331512324114275861169155656234987660344776409954552148205365985430142033823827158861056990683976383184563061078345987520941683301066821198056834363032676689028508407431581780792426505578405997802664698631472918477991487167431635287318951254379943914832055855955322232587182160471052710371147307639454940585815092694235380321612625483389570823741853487162874528073501170806395555412969646538716230810819387598944968017021725972626108156074343798917108497951484965229962508796589097502967446349067407388760125014343188823132451599108137911559557369117836729097854566118172909544199572617946883984180832012174665106769376686229945751841033091290691333495610985503332227204549683177960456892783818656465764216399005798253290694134933993071011035119260224156876923879436291958093436702491250126422858018287786193530540426622646617904790057211089565106462832210140172082901059527589113833243040576711445098719904371967090370687028077515705815193833309922220684260869855766673670942435820477084235528070310147221141955105950560491402814083728172545906658928195864710114664128090513949335380118095980102666075755297469586466003699310610774992583483682951096186256625249118203122267066824685854799830779175498229702772559014718793573854198178643080873323155185206854322687439961913457901277199652360372135185911597263904660100692485870944274758035146476795946007331488586027303451735985542255351696014644044123319792224044794861238831939108792166429896683309270720310400911622014461094530884479456239394366256221317371353530855100368216314501786513541918800603088957568705528546739020594361626127937052274369998548355715384077649691041201935939959601515043117237222094623014968048234675783308970934595648502827307115479342780188141225564845097930838130740311127521246494831728791840846333147943543417440080828607770724728370759909857090177898083318204840764446142418808764361115699431714104010572575118506417529254512870754478804929483337717090629325030493722746131006836045548218170851192540128103786568682150751962310520267485938965406913828128486697087137026638058955715516123221152643319493709461833019764677087673475180424929420436637876087272526723599975108648271285780608338191275743193557716891127319586563477734093288540960395368614307581292722663225059805998034436847276766666181405361351732101298026710894520555532188482233252641145385724426617860303224310949594434035026356239673579243621443597366393536685585506060616305432366287326675785232104011285535531841610153476571740289981472071415654008342862693134261818848794834955531695456278559320787819297027595803873852349564843581039466162386146732565258350348021594112757620703044477381859332634204297688535916739652925157851113966174184254105536335791610259412331488560789241831149469109088282459399041407933938203912671892658886777048712210105488206430781597286695364953110073929676176125550700042531516724303132268217800028063564571689732513717233647180506242251502022911643276664750728059096503897105494850876948270435822242942300264028972644118420469839868512742707876043083771136544424796127137048241956679456984143536351786628778981247859789570310078006855110392417319032753220163657111184392173567472858229717629890021437350747995323734613569599773479996615406929406826558761648898128721168054726016865905886240169512685916454951171683853563579410571180087862965761864211083835733461561600360563069255508376739495766186819842617300705121386578873005171102629455525576832107348678885216055667071261276985282898256059891877469926739267402689380243341267012973628966641719404023173797845122492581623077995041668023213528090661695940115740886729550790583924104513056367585843533866947969961349183102007439283448597195341264031434195239355705876771992177110451172994131555674701837792954091931018755294418700566125835023727450408534387669087481299543995092214230472973291651576887118404644377288956100570816786857427665575061261205298424823317511065251926500440246259528546634971810128817467414980135203111993107056519275065744873661966020606774963125288687357573745085094169604784599775319728771832402656047666022738383647395086223305569073797778166500498237440059668256279893459182253086928265845728845851128031526644431761197167662675917465939501430548134289858276401214476497718293841778636994037689754375899794310053687452328130477766101094427249823122637762851849109130108938525684945337097331471935969670538886366369752549750035331052133937379169343168124954786973470372579950642302605878170634945530974068796346674825335083497175458491372623603730182471818612317261710936984653718198072941832191377308076830581895991207866920754366658332716420033852387384468065991204801129461518903796380376264448885873568231932677627006284104307617739947832017835584057613160773731276564494758126479104167871390719907828185417974905834443722212508039555391428988350827425591719276797444840284860308558629153096847457874060032382038026393362076416079312631938603906187272107365594259785242379861732400557012445202808142347947209193756702769673904369744716586607972690836976467622232727492074309982133651037805659189179430565933040606247204202558118711086002871833483206316111023760407022785052299388331651270008254222389643248062475032049800485453431436072740130493914593276684581790867241959826468906637000899662983450415255206046027315561914076951390499363791171272613142210874233639484587654513729159529670542776030770526536096165026250534442910152103953689480521358798821876362307589209886437354356108143758145692236260314827346702092190320424459361374561101227662263108241036308936389534701442787956132950792446963849611820971411774198535180040301665775332255905300004284126721008409113318821263763929111630171990178057367394503847562450383223198527055729447637043087704928372663923231782806278409616739831711689111222870273687931408548171941451697505288979872035068999951792892059852596422515382992782801587401738073124743539651044954198249916304161082973937636427297461798055531245630753786836404426834968769382086346910220028670408550634814959071959968128029118107667729077455546973968508816507110292106186986848174650388566071056286522152382166986710445072228737748067235082839334225282955716798577318936847137994745483730609589115234237804658425674580260640389128332235245359148921882525379060439055240313310141155837836782488835992706484775940843478409271949221096709370104655811098069980415917610223208936900055079497544767832062620057014986918997593574657609531925716352312068599706119240619538469836318168578904995408441922878831724788438108736046200293494875077222822046152773998311905154118773321667979532381769595468884842904544524706062572945794028725721159824156329444732499857772076833031005587323933041732536470932773681208901104164900592778738567415649649591571339216015456878435994560333033853471429198627387199736244932794355935477312982365808923336244659707795986636098171356446759607814257982894055971329563456144460309982976138431781002572849131438416515052738204047135438341061356497619772883824985138992430385027787348764432280256546655226469745692185219426848262724638136237778661109331246083415766375258295639206215648489569414131293205983028807150181826591725052165614418135047782754265847287736132849505760059398995808707949543348295530614967518730500526785712848618093905127354069351335910116603609566499532439335700819055244182837854699399936193788504028685064195276156852459751166707002873681918573454518281731736515925099588282707783207814814465181139860537811456450589108436936745740002917179538061163798445465965473077982431187546885890738388668659607148200396161390360880108971005422796020397026444588658906563193993888184262521996239942393495558581861004181868288902089388391435387523295537416986206998962020504229295456836015899927772876073822342721109500750088325586978088107080224023725232934688120414364831452744052996446317679940529033310391949010423593516072960015111342603312437693387019488543909526382839972944401679545764158485484337193703788469758666648494320558027975594589833430428804959994675373185691399525597716214833097095817935364011261852228240929177119786602954549398026395397269946376693327907089542700678302415307112132397461630547110340459805797373673565853305493655923798600842496307054413242863081975436261477360964033410196481944819330706513840439120826859064007121771616784546059456868330150114285532949201573560105025825403056549180884097386877022508260632365527533612924112331961084688899169307574283630572121905530713488715656618384249989773270920424010025984727872242441845694244516245297872317790389450002042451887860479513027411891173225241579919659367647710467784824385064475909388318594059345045294637741197784896244614292623821155962216461487236675289013697981577783898112800224995174710481875470553154695158659654014612030374271736373391451713988897922503988667705029858583456507689443050371255067185820580142400841682658709909148958855863720177373970115051937420498139570119139988667521747504899740662614005968839003723553144173762645720610142164962984646515694301816816747187764734552704318422500490402006796149029677737784468537219091318411618016212992219245956936144599440743662662562543426819366594246652629945132287611653756911847613456801088671326349253403332390506642359933853200738139934276136530085292099437493503224792197933679502581399211332474367692183956445046104772618391308050379098764539689135967883390931907588702172535695080179935974094163446173619614771305717582857488923934541871874139062575147646462989695679378355493589434024936307658708676488268457244859375307116086228698478051374223111323221941008850851918960529408432393026305457398573403606577095996001228454508840894292059580330006017095662175434124565655254444430348365340118165341713055554443072561898214382006904484731683242865000211008752545501343315659490697965568328198975595385603482545264848008090429402740079218325699407331199970094224660270741971615705739537542218066525673826775171949321857349948016913953515787217665811517053018246915380658883738811640856720105448641749810356791156124737606840692591600313967664404500199853278222370594729655307357652535943674867976665119253288496416572994658892566014849692670122193677506548236775822190244885615709617917237286768967876132738645167040295108485970912529072104526644043667569962825736537653450715305949655322631887118785866674985234538100612221932129620118900273246995226873803942871490483957528632118342621189671652020164188384523256200878318730614661227604739177592151585509361268228843261058705724347227312885447114562088076994974362422438909059712186446575714548911709545018347495725862736708517221571647366191175984509449226033174608898073158944897489217387075635973302349980262261805334201089160295944055701666930240926691429050565361086014721318716834116532111077176685677034484403768972644431071651371655690750131399716408198009763384584343969691082306027608893278702288908167555885924005353237892423253359447171074209803209950566440593277162021601247804417571088211819735848546854934684997026837870752312741746066797473802277761952425922977423071602430709214608991275460712948238823073852941359981651084693554241464496500944922099065756595631773519718322538064814854140541165056729395617948429362615171547411702630295697299717082216771510964430621302290594492052461439433819358899603586683657881233801947024304905253957976716963622065487042285346860135872546392193802516962289766021059301638148491314405829586549988740739930326602248470100306676575468685199921882451752623454990260130060215573868371933585318265003130301121881905298807181060053349419106336244800354600212530209969165231399797791312106507855008187874279430051679574190314807214515314124074790808469339476996454130888402522617488859960386260611490844009070077146702757051935057581624306455982712942875199021038825971716941050548392042484661528053658557469772650049855737023159130383510806462768430857060937254369899570358596296155056691289768888282539078145039381343626120424515710911498864754659371501047305418190638638774390106647307195182103605038745507124675795073688608002718592646656862542524418321033356618705770692627896877094676727035459299887510672871046380037371857561997105077193406304142149106709507264742781914509699722877826828973276700407043089667011427382399752677389243785918412651722454028383724573086853507333688778045580924010218249230757253489441007859758579460959230380906410371056074570348378315539728398120693790649688181940162123759105270620183383917102541821023944870046221762320405402498631720774646984414958609996755423761627905507373471106771990242312563806171585263827779918060911044192881739401056357423251049256621300872448322605974990558784572710516984743498229263430360803103877976136747864163535016615849524718440583316526220564160709756684799299146594236109562615062999746152853142831066030158908202291716347116978968317275982109232195191033714369766086443950070247784496603774608246617895233177656565578170189231714139479307044057490013419373820720949278915379006452229120549880136392947505281435770670994641477738934898789612300900828517265912730018488023399493455564700332800115163609172481416707099562694625906140721572670909532715591109109425745323336187122916559977402917337364840278024864899536187184537045036549799928400241244080464216787585410084690328155393375604751520917715325331392715186475243891377249120802496509441466011277016939104397803272747392313116408126027308261520966704216484041376673109065710982634317640447795212221383841106846877328201623712861382934813049288928948229600082859929640361844237962206464828912255388316967704052680229280178532537355032042517056998539540093772533656517179494615744217262235750577276138804748535120223830264684952671565491787149156965019143836884115211494117989120162627683330627378456022484660070092119371101767353830772204780166848932083639582079055571007657849544244036327979212300775498062692251812490511842217139707470914731868482882769534833909453149045404111730712713844362362828369684976994997007842905431873169306444613254598832934577802409020610321632708116461745538730968839953531612646121349092415507673130454114045395950216246829092321738251243558709019756381031530095194986996584674337893238273693694191424919724856678438391873836602591567924887435714857717041527800077397494532891465289301196729174884044023094131292040576389659814548934042267928365136835553969282063014649850223386294003188551316464910563807082445963136863669189144922064225749281439686578106354988130194649019663201551440431652742260477053190562301083835300744372700549002053461351716909095785034477857818441734851497987171121577193919248043072978179083131961497162350579669233871888244844665969645786036585516679938794681088196545289499525070133383267750859250473728643239467739727021688464952921138390532668937179531966563372744208163534121032342419528839037322173093120766972415804699224206093168835283185813368464131921283222526946039825950732733865828099084257473459252203636859326020314865877891788686941342257423048790143431729836259323820536018924707544968011655375135987757990777152299651726073953804231755153001977786226986658745206614693105670891457043617952805864442595820018999994344361007244605908007710405989803768909836640404185551701526796142513131424369436810102300738201749925245827236409866460305916067034210453419528667608573853931120391278858067204427556871181911963790353008686880906878311512592558508749976032290679912097240908637113147450371321361100914588488480838257218686389709393547880427370065331368920410918795744685012113909438441735017762840919910485324481604282977293359639821959305935075112212769675676399308057343028704588881782829969772240724414869716549769700785983904959324775648608523191576138697238808222656434374514923516785347428371054407006275065115601525118089283625926268017771961519731946773899252602635015496425180317343519327963702427690569650726829728020970343335660574051935089276908806360756858136706682211259650655211587754623443921627085119681529558825259335457915153923199811421244451229378566763224901186835070077383057669286367807702204977514645486638581859118619912837404042578502537261772791139454854386306839172967567589695671446403354322500257067594205972024166727545500767113726328801945798258358801740771018004033145293206760571423917060836781632642170353376736222362064818850662988309722339908841911297701365073844461618262861037144946779140984954548475699939260200801762591902123520069568539798905151155603876762747118256674909732035226027018540179707402377010701007768466174167940879344219804778549366128652096857972638192519874511470567193748586377181342448343697047883297713028919715411925993536611938989704883297031013920852992798184040117696005463966036824774104243470598343897424472898120924893242912091839971029452606697608886005635919417482066764217928771177993408668028500221945269379272528257762705007944149422042112825217588535469059294570511265398222776623911091427705867848966431606304669485191428328562583929258833969290751387625256926998733438615848797865628507326898073017354084339957934183509827336052732657834788486541817741414818967888994342028847169640600686991668153071216285622662799706202245875514132592722850069293463898026766483461521148633584397006383055369788348250000310861345314116127582543890315050268214003737520062146772737314857953162117338504763201049893935181614925668023578404244083462240512501498432795582175336538718614682658689816318006547866838906153051264530245878134050778188407018486025782401349416953172609044424971521521734337064974781894926447755506540921362328903724499416143748071716085611102775991615048616180562174259936190038574556027152592161052896376473529595158333384078965028486120341275387611513445935474843875078753819959860938537314411294586126432428617026318203959765421367755746266710047160283940242804516819638435190710828782052048491877593833752683503249215527099481943038574110292445138906489088411427193190317140491646079711568162433705101959241520947224688842591428563483873510706846515558191015873905167034427569365827176680595608742708054568314501539764787435381978683666113012361895465542536944767018927322899164165204362373605577096966211714083154487478931671723444715552746453890675762100399328579952954285602978183804652918821677365888755158204381438792879722887909487407092747891176826696485921653702521747216364569372231718264423145461101671790916435166791314065547674671232813969273186164130488123130091288989820967775555466966596395860093610737762792358877793862430263657920035646899455071629868696515692749189429049237521601181188375427191814862609649465489625463627838963495196209564270898823594310777957571055839147025483539186017166619592072602182593784695653933228499633744971231991538376035024230508901528855235098652783660300265940405462366164505059089119291537477895014457761065807502080983107138799550973638155072290305028163674608887261686954305055597702938662085524006882196428741803678883647646072506933169622126791974964803004659147081396538378739802751305503747826129216953477588912226640949310750757932588140644979810013708064734269152420159440153521756548442432472539742778407820081296056143606207551298760265873611307174963160260932556831783283754273123772517705397913274757668809525209200776862008141565943209666067389500969186540443356095038685975407467865812656287739740589459942461769411990746530311430984207135252292329402075250127834066359546357767171372194004067774511529102396377298555416601808024918385667617449451729713502156947577467381900091437245711971132830227531755306851778044925262818720726486097697839627070059839319366069229753250554028585797490330345111037559762036704859759675470281447213199445527460439383596086105668188101900253928806352144342722847955166101020027378120952561221390139592931449798918881339421900043042475307911090659137606362541582846027127447568209445553048030866409946391208035582197472416756802110329041830884009813880373112128271987234112027433238912753933068300624828963962768643984693966375952110704607805823630494400523126498485838513998858794132777760453877253276146196369396966178997142530639470358122556751473330585161380034256708384977987240988063757047321353458986081822994152871337693852374794879070276076246644754242349309890610052977896233683612503771515184286698431384741584544907607660289559399922001991666833727304870514084984412201022289238394138063068826737800129232237386285300428203786956092223602209562155316053939755625412237181960865636387497567688645395527868619452335493397742201225446600533881186088430324066838261138121421279641522553448642458906933541904048320867158484034940670799804622964954396658401815477416466217135447258754307425083740532241486198809537642913480073318806547742991384168011089491907816558445570814790970594422313933009245158793648281092010679538071129799155351073088897629119322574742565066462956826790110844617320343079594360444713444675797292254470347669209178709590340561998116186319192461514398253498599977585105686396650927906768354146343667740544524425468498732924679670411279563847432233920431443793916929466612043792324581373579166370622556505702304153202571033014383461545770146727247868591976885773667243074362328699103270881114459682563382971680710843658034197249455904898086540026510560080532244110984209230008279773085563483791902157449015230916993275970139895614046739811807310017050461315385121031650959538491672749540856629798388054083291579109093187436924775755647988914639423111659583321210074510697143229899711541615241929075435106930891733398931246657135821723840242230017626771219645119364921161318690141922307250084130924309190336807573979091402011599261855760151103873076895183277639303127062762037461246247023898815480093796074780199472496743284696770488578969913831772660750174237894556871696215200399064420958401545630123383500047678814540962034106632226557171795964790504647932917636487801983138967636515038154553031100252589694355155144215888590806780777751299088263565839810221073572517821595150935063464709438662974449674827384164200540746027545044034885472060673777214467030491191552059023145151998697265277483048387059717843999833801731429077972302022806120273019259828120267527853330593859904399898796924429073586354681613705429486669625842155155000484039620432261172270309874567282204566963193851694323554200146784456585351699842768292891733549664911713122195901192570025858907564258356329192651530244791157768153208421120279899861028058903016895798940707822350060174049517676615225268897434966687457491485408141201573270730242239842834114501641741234040647374779812755711715726874702800109425984308196336647680301849953562649437629150771761106171626602370261045858097358214117093649758827539028078067409240340964424852008832920487045592879885669455083048197728921648592236243530069487210038909526781496191353117048859209742437247782140035186770773717200788981715634250093343591279355860213409039759101795801200231765381431770419038634868728787292680226236948577644443007757513044001708462155186610188570852825686607077032832278838562123893199076404310711883048317641619104781205959349261459910305044453634880387060388678279467557731036074788685975364016321167503899460059503881968258700494337302096557179250888581731097838489445139239834585194483263749339496781851967035757501038291448564787928423171076181853247474649832741682864501414368269598405198730600141950859842197416363202518151733905675553803066217674967383075582630939226259883429354424968770091507385481080689853147759798133924525674657825293399325697809988495142354204752424856145758480375430539014942106949809512982140474635170424519441086823486325010927006047804328070329976425678533670084086179176174994429930450770951872554324450669079244991777144327051979064506830521144416225851402534469949060211136965143187813773179850106139027138159700696204946340453646677786437157360982058388243814834545745749118416009599341384615503049322319234467733177469490170703881348659698622309452075672444508079510936860916267875137022214462981771325866393324006295302606130246785217888489430940890936127831182561807577995848149088715877731357193958741440984960894811301378398140502523369403839970864398248487756928569093912736290463148552427950435098787111197217855726603329972187223550225483346335220260288038911057100160290784589724251811018194311948709257720874171746599451889012620852547623766916455063543601799083985157295181813525974667504436279492901344837465337065393484000831576902045758542814454178756642579466078578070124043304364283342203480291822062327104968083150521559046875851488749496423017480682745048058879169996621573322413868478870318018500782379263279600530267966465037558885510987324108864951132711185972154188530614032553859047288985256477506675102844787394333298594450090953354822142847005239959552681657330573132126437369959184496138245023801372971385426797678830481919074518263802061653258585181088423970179340594128324959874185201168729729239526104824605913538812241015725374323844743900255605324937495498618719203133390627374795342353061875879235245407891227690584649054537634640024266125605156858960641065885647188140697947338638989629099873120039589469857238536210300758050401373117203803564703221084603155396023863948167644210522497286491473530793998142408466735109157152171468516161025085626011857191436712454062929434022168568043567088518237629159137025630467045870238974627723166644418585311175627256793998415821127187509927144695128339135777889928450872998255041672886436075983162600608077935161067819511648874682602224810112166593766739389288227482184183130298217398337760513185463793213730425304569915056103748740357973890780667949651154434023590704991263673097362110247448466035996087471316400318284629394035440196470583256729902133641145367783548763050546336739746552844488777291095641405236556642826033968394616038670917170147118036263472894837345396456447575194709152731989763976095737996306198258567197015231258967401681508514442777687116118337421905183510106862936615538106210745467110228905663304496010838194158280490545005297891553340233906201618567471382242736938429649879462808634853636440705579603712562697232683944497984520311928626997586629431818759089918789291123631547918470091923231549937077824379377228695083499730109324260814928395830736836764991605222558940751337288463764640543276467649202708368609180920362025019445719105302820851011348931049781215071189081141603506235884861717174679327222630724201272250763808926930341641062071440312363022823689709005410700128296438437800792531749077841867443658819819587338917155437845497782430774045779134456181290761290777571344283000592423926934656277397394103091285012690821228378447979616185645895482059909888624419522791141210236380593656834056801835119594035571657404870472274935655876955176225232056890883818668116619100735304105567569038953440746703558750570140231273661488775311490273954442739554374232775819118612576366719510974258837700722629367965797882984135938946520339358445092274087438363295415326692673259009722570144134405357890105347100605946345301461920178272746102858097288715873285199643536704472113655504281906664167701403703943449836067012972282906404988967654460915194508308981562062282626456735434764856303877263307862996307108820345761572830198524033247856584644372321412248754603113755287716060687140270873033094441702231222258545926787610657597601352545299840885853213983555456407306831816872441178552558922383870674601145535893397919308623325098643644589006954797983177410691499848297871501342315950368570419638444434976333403093673496809277736070211219100428857329710932863598072398569169590938492394104184808863297200170374849019547200819881283777421451760178773497135739487115353275705017138132742385710890228880922032476890381586309633498929569937548021330487660894769108196474292261531656241565467639410135762712498702765987236813528284742885195095186849869509794555278044869305241631325425929526417076959680889658572914395587018996091887213061016764394493412136305974479356270101245502395557928083285663824750278410061286182035503377651265139173716071820705797717699582248842756139009711899462256174989956754416768188280497620617417607171214182975013818780959336360978047317650632496221220282625976336676166275353827920742580753899451479119691568771617247097445559860323568591954587606500140105880427299143198622440065918895299887587903564262398552701691124384506770388497323586386317327145743055179646374740148638308455592942637251663367291383784747524377229012361181224355407764614645213539716766013684093967312344494601840277224117719532636372899510710254103987904832659503072845323033315760505013105209247694176588701510056921242723879777596650675178680232313816889099670386699619094775773610888594742779646656373728123128165457400713177889484147678360563408547224809818864295007731653974199022290730967600236521540576522020915636012183788574476243255854605490573072217368561884910963718211912260640047869776284160534672082798248836156123963954073864636231700092799013821276054734504367950571360352394700123707807926456148869604609752735065181011688842551405893719880277188247318197832924977705418443976706573699307222763250649958488230139458487934507449636539651084777172577443402471308736658710693255148556611785310147747850953865777672861375507226016146517294308261074827642430185948055382851493157749008289096696538839594608321273845151341635739262192891655105263692121642793033749886705271641736649824317109137651176275773862819421310037545125004261571101505489274460389988207959488451159001714568050222075571786115388275350033789769817461475412619430389982264498510129421212087769674245327163866374236722668481568767318309523918496932818920886821343490064689346700271299202711235623315335163412652956244604328965044077829725233067978180638615012657152249519160472396112960973359536169207941407114355144828937525801583573730973682484211289413401455457845971831340270787655859835606016763684713365989756979879993121870269467219333490308189412973763085585216202748568694546025335436952941237061645741517014275651856591125386454575123014730078378583070907447790146705271220106925371647622177382462536480366936913414241591907929409908486540595914064502355582809425318917667759833844826043201527127898329962567753117949058452686900398086699905310642270671305326290794665656145602377164498221138040894331893374415157270024391469798558438752602898261270519682884304463349387218558729379914169539410494802748121468527067855281902135615035065231736130944336771864200548294384460874189363016371623360138744682710119315351579152271821301250374228220313045001127290822648512969825656800618275733073544727995412096761578694145788989907023436283240773183608459448127053850472791837945335875452281337464402946780473791498200821119901587514716357361496532039454200099102059894011882481196890668137708297619963596779210969149009098604083676808386447666495942793692766800540906449484042746715909813331199026440612879357783968436971623574067601627896531407599676913355806486900590233699559552654448091347771624716607639325588129781870539362820191617733225897625909734378261490622265966637109092882147121117678652330525713018345676542442420985053240905823884771366911055280206348061544266598522401680320138949883002051478447031836276691255418241549816720380496755229917072782207334057981321154027924236852872384305666606040315426491905719553499432330171532991974723898625588401231557878197662958050323579678111408472168554400406141105329768899444485578838897651956145268727241334190490360739956723663451963383822050838824699041859138666745413077397830404615484737048682497566683535540713608066397880014023985142824142179979247354509211303371391523505727538058913295163039373018303988649774855966370529952198085732761534172212652118232178451749794518261798340598806658933649095906568324309195546232299096407863844824020050321818087684327314634787445689145084682021629449153226634998802088969654831100595216495033057640376184617358400696970687072588080496839567740170468959927326535069465942945864555946050406085307466598028950938026358345453041991228259025026430913555748452229886560538281917184719889570742852574530591251591533840906569110235858355391901240430611891917929532251506072349570416871776658394557786128622105847844876026638287642806345682037933674500297388667403867748653862087056836615879142573352834778632517355327408553295738039056915120462632993473777225467939251484531383375314288681483366690652872804641407911646955480144997982678944813533248037122219524830813218560830567187883077722103160910765618630974006760139826201934185217478008250362429257233548731495358542891606951650482318236437205344324498189006667369273385838656770199613910952462848047776232597603172993440933766088757730774920725105965360659305555832078603935911864832221467223794191809424071857064107061714499904333975575878963071197958968074753495001869477848395517532417785927617556646692681918906721574599801507802704441308412792160879160006637681020359011966879502589211858111576886365318658256289659336403171056844092323277382802227175554834970768339505848605122132981900550799561956672039038006967855527415157196323932588202015389207784284716950481379905952556390509822333488075037828667181265372453537831798646319570812764780402212177837731048071493873206065471146714800617925513113107158290759554471392563030619945830687108850578675296500962243043097502248643472468026764679294941835567469883491700330633200241003890749031102709746625979265846754056915340729846335092030800173040108406358386903137899053154748430213714982230247822277589576527895272848589752196719043987262720173031462909680560603836417182487197985564736098465054835965849979312986334716211936933835554186958714379715702690442802328305415818903322518888981457456402428873606293162729639594155240589248654276488401529553187825608367026403928467554704811613380377980740484242955881009158158568350871943720997750682386476121444468040039240980733987838180970626947201414163999971788754008861264436956734180487743666742234643202761015841181113727220059255100094944804466580157873727760231362764886448707985847522801197782042807442723676161068024002179264586591932547387877247148573845249807230332421019066673986750353882342549886598216564939428844903464699250393427834949066156407561720459314903354512327499728730461651111328618586315718103938982822980482217443002563278464237183953978891781810138727932157618124148309188621442360461627954614038239686920937814942030764654481021455468050495608891616328630923471730167123884100700226807750651606469289487530927907907732545768087557647933549494606154917434887608459477651128902429476352173805320867410166925100621308511437088424145696300183361067743045916985248712896977687547578182921719356800760332219702327355369194531154867588664351380778740046732561228369670530961667201904141983970631614404275449744360032066205326266138844689432365334271667520431815319507884813045640153829737919600491480200207919039082559161981775840420892834660788269888444372233205038781926561121184317299635731066620937447903080269011714911759579004566785085474358667990545505338162255787832287585170274364225863876567741549643243626314420725430838291155095187169669533289950314057828462883658711533455894588043415044787767812894988446217122657956108745141419334280321634076090844793221092925448429780215758930109219674553571358737249698685766171269943538079433665616880055445619859840799567973844494509412335116255430577282772999907774734570370719037175081066527854926301942908269439431994710867801725526966146370140669861393157886324798261569586620092612669824031959967546402681921114979497475059933338104255868120789981987642453950091335937125865611061832763055084373047380299172172878960014977226734819218399234663125232981500633413191367954139693287439875170013226486931851778025959012330329904282589675429119985319091052067256320490605034364073631286372652698631018278031585571601785162961477488969524718637323339848009690320546671168108298680704899597093794221638433597350681251829204175353507242928647472535452118515219698313670202611473700556561755602799962936701247237317713869766212379560735084403990797805102852689358679931357665918719581886781574867676475504133478388931745373085730799841578721176029334687454911353360838976769196722608152923920299819110979952633645299884967515508040597242212491823429711206946945412988757065967117263900586944441954215710224818051169170742749606221587752196557618464650762143225947233259000833092816291405110899214355245119789064648403965908010028198627428991059097352171817505364974609963915968439411163676395413008837964430408187158601579042476147517995769331077831823061768760461762450361445606970164753457599921106178646654714187846449642903130557437503086234391448025849072582307879860496301353472589681175695593261264630840351581795097054592194397567657333923681916693314514417865479068554633502297725893461185821508405047735763570916949387912187321566772394536692631918613486707803111264387367300809290264890457560101889332826033410558756104973578627390939380021415509681164332964584126508548182440098689905766256772282779968508203163441974096931518858491303771590842585573528370852293650588893070821812678315087379359591105293430851484847066355042146170247968735816484974716470118431898093844657118364775975350654675529345594580070807653134482302540247985765191750289956095025582305553208986542293905263822868027854481345941673734818444319635059993939948731079481866905233020017573870001200216109893695966074259449514901882755380783042079600009955183807755400613100457056207055174156860102904148037788890294351670521346954676567289770368832221129987672058121663389176580920729415948315896536856655874956633027078926068260280339734771213069542568396619136470132849934540053464507820367134523309594356943278699470460643778093922245812795595201187840108228140611714724862958986689035409980187142308726342465024446704081555184287452504633091548495736373031446061304809087512565897284101128141782892696512836757746229588267120663835613081499449254733315312184019944934257148474174307841072189798272465589796072239909800229432401696727382917316943172269191532024708766291212268763215094489389652919027781364761732579442854235054192694955311024819911540106695530351952455077641060099578567921348878251467346186757994534343163551422451957452988069994588930695225806878988499445882322106121271037178607701607246254587013338723556196505103232511773414025412100448071967600515521770709657385753244812857778350397815646023954593518086949295522998835720120677689065126426718087237139761086575902311883138265344224712462555813482812425878048945080511237198159447208837064197505282182291962768531943031196750405128532152054808454119457157136676104669174716645468410818431389680525616873283236906301588404918790286267804090548428548288222645414119719398907946097106252033272778865732770115487660854310766660472831303698195167031331084499797396842051896644865820745981367099627877128924379739476661771361266073595344565254666238190325613874977271477725144574717160960535078524896907107463887610709330422596302215837361607607075644933668158420856885550323516898041487317786375664322228592364792811867387745011639118464228150295619006785534675961816187866414111364351230855929125916350528154805180291457768613901700542221328477204900671437418472865573343118848642333242900656536836959224551710192796448487915592555384366515902414846096138911675080035328427135039637798948126846426322998802023989553214069338211033232656549469225136042203971709135442139111152145748663094140191396312337074221155318334317870253643622469945307136968194569558901520507367554032889828418681271061127726832032347270585957692293477990403348648223170523088997271060650722766838606245501398289386011492109104165646950627440257886069024548901216625779132233583742540838757499040438133629116471009646527077380142378192100077167342345101905897973826472417630433578648815253624860805230963121700679333667541972136617540639761643002673169879364920938589759651569175472916638743730267699875200633941958272624347180671126945118624907709866347591274056471755691041100886924074417907956481207604851435373870484080989326488123266312647716205576410164326609171683079182834150625081585560146735882117278672905593291458974611901510939753517820694737003692213320481912617762642603384459431418878733064930000132853731915016578131270096798535536836438961444227477595846516281924695804030839709623436264975704642278993317753185912685368349770698478722131675824359321894913747647374344146410946020527677290390524331225840961295990843048433440594705250785487419326111503209152246004965012291153661495409087561642997197539673472078623934354515416508236653194055440693465919144589616025620492061383053276203463331060099338956749645711597982717096528994505880920148039072646381479530045355488396018376793247429030743881424819175428873848158229889230048091481369235026678132657756452876328693928549225405716513236155124902810931557210066787600768654702302849675824938806574760363669279980947611896751648074502186760335086063438553887970529740402795162336116750518930103618785284807300398889124539991086329704160612204529422569322252875062321930676696194466458341666375796668364595723240981394625921993892331278542375113831551065218299456578716327120949807792534650535326550640562979399381716990131671248469998041330223417509138967747152340268348559138908275276471157831565094082596365476412635524351164926970001262279182919866556622428802655441429057921503076171781723005340734699427316375315038657387717400965615467663639761395682628176287958831769231927030475506010129751006217038162047042500695008396766776722003030005320177303794956325392350503856509948044719975911885113736665137633382933507448741085241084966249423481960720301036098064605789654912102981665005513815432146217291488531896647921465666263302764641458532726655397243060455894587624189149752301147001262207963107367398104185049513461314247543333022184119573757950160465351209836687494005824968825460027124108967151766550299449842599353112527443693121817463996784303683286183987055949869535255626541790285144121421588544500778249854814416714075472282228117715791818199589975929227570641508142481813977464466459700347675543756341083393861500283700982415611898126365771699531981393249409368148629562833393240086941074191206597708504241470198756038138967566972018449603177827865146037565501721762509977348342124393411921192057793776485501967720303909395495253292287653976410769587870104761187065448419044240836728487585215326257957582168332992088668013449146501548480789184069073470177467646852845927151896130976221240219747871257473054270162823131260723151068181353665532227845243335764977463567907922879478883244655718359737203511591001491672455130694325958291366575348255997033141620322839618203594617109401218591053850812481284899028469110486900549041863401532519786337078356236584901565387688891232222490474979138985750213310544258825168677689876333137226651892966886109698106975405972028180164835951029408346564687696402714304434506339345292096072798638444237314683109355203387959311170643432814833493928493313071932750897878409061346660035466298855066253914453981575374960921216207102978886473035103667509111940246388461071162983471928746432430206744426527677889222397214428221363049174941448705180528967875650472848186614664677503823743040942239392794035257842754569372386680970269046197690582170397955308893758801016041346180299334206946140108740929730419466075435357060355306914571458278425549778802062379022002035089484081852788700842481117273869788803791457465940747409033500809521227036582203082879091560903335390483893860200316275448557347026484257794204684699931817500697236151858076245307064433693587333885935143569542156276778568097928544881578935001268178610422678436402667912353850696407565169580558374443574226330276206313326125784870991564978245079511084535092380461874248508099964079132947233416449970820929060656568022444759995508950866979226531811539322746762053794540285736746158410634142593668911371131081440834842148162922792444392161374536227615526290992158943664431043184170335994901752015411862426973105669054867795994822143261757687999343488112988133787724342985929774763946089151430427098383395062617372623960700926062217835120158270948216308668812719608329999870077636357799264733174635941561843924610904853761650891214917688465582524317156009138823320859804964914979433784419938831676750003645255251942377214927804393548651641750522732756737970317077324191104096984917214689326117125349546885151607248997363763326661119205479660617720561509627935127689948735202342703454186977980675061840791766168010495255228652474130131436831754714136817805509658228075561114159012551936519576386625337621357333612481679884652876743579351948951849309477528433282813429970128231345582496589620942018311686765073661365737605332195391506342149791026941972019410959204187390548363280690859622724527216198455942687959067762398329708083860974977234472259860492070699976312267010084327010001054341369926056782525388379502448803625675135764491176497368511166318727685412200221335993876663948958902574113585902390141508093796049300193692671798435256430474275024167715157197434451913348027112539246674262341580807431933911059713201586401386518989362177269954568087857414876850910336970615271668593697657878426767899483560376639420660590663896204509102363461327129003267945599354043577129098068186444499383486597064493944249907028145801034927678389466095672469630417019378518912708443023099122307473314386341731628496321703155332167619854177308042078803471570964438932110785190615674238351869954713621108790745076519661822676996361727731800176026720529135233854107033741550142109244889691108549674315939808895900385372040960776770743417467452195933305886872284423209163530604440140936307662561185928926092234856474321789089862145171780631244067170570164230555982806706098637396601898724364151377361533852687725458238709536663418794521058791870606094887146591981066818225571421407122867745005368723111083352639059748919091847534537196591795031065900629526199274061327930614731074190087189465442759906568470594007337138840050181277459857806233133166204415033026908035552709992679441984438397839106392585573662801237891317575278297263100954410385400826421930420687089301015293714582659889766161242899265307016603911089835485811208072050232527805505008215150805254605740905682526707354639527504443648747735810193485310079395375104849660869762070114186731469881029563998897372694493493159453592419991870057546026549820897672689010197240570772816954728258996312044405417027966559488037952009911088526102875192044000048877726976877980800409554003079276273368465688818306234750075260087718127407760596938300087834018477580906707664613316016927658362906369612964411836749293652468622688583256110648267641616903737671875119200595290863485844945779267008677923327495894774472477568241236670409535500857672571989736449104080974834866671010173801649739365059264205717276855357136380938831315140297512582670407563850179282312168331490306806037568424435041368527983721664760269283729215128656179965052064729553237533737591261110912992841918042370273728223160700192717413828258637623301228768338024295084379040203292448918153584247060437151606990687978035592874420249719153775869714592556385888263549710547887470189715494932295823201374797548386310950296690996413409240260573881309106041561082104029312396830180457141231785442622021959336124224053950253485428613784873796429227436220286521660997517286023114657998063267110945805867119193343072010471673255391354171047634090000933605729423565730627284782061170824948422912140329233819349854979342098952216901142621404683857696812194371557914242799499639924134214463853300839335128099229899243543336901057581183925742838523744502923707924170242639256033434400197827547628151078479693042449533482656517092542325797462487962124481479353990058897941311076674762422803826543666703536322056650990294359318068380063535629873186722967430459927986503348831600461444313749718067467258944778389913296746198858704469328177657895230978839356996838406166833260725865388047469434307991014064689657298129948759194660956335379677500069153105900577022664454065708011497126769020088013301016680349099690203103589074450879513775898858775291957285638990835530670538659541339192613408231044750619000616117336676852228040421522163476566950140358303623660141320034396119778205615068237324513448204831142313036633823492358246363194241610925309132141612114335249918855871009304924212998032314591083852091523255821633365894927230322682601318190781963773502075828413477014861877971581099787832532043942263780005263884164701599413605326297253454841605504037506425344623472995645745193581498074795620059963882092988396965903105312031553230927849499177322033224863179269146575338569806720309756601940000046484964651238405871841395508906797361756500280046019017024127014606286212332028649775771249896171546461430187935579014783732988360250231180583481727533257992203028529949080798165559647848263759940163091370434387121890182679006894599475117410145909570409545693306079204110475303549913215150605569652923017946211955971286317520883482288926618430879390289801761353702803415242571547406084626366921786281541831856242678241522598222742271247369130931008968956985698721411849915038819984817396646156173090417210132052010395291475367419058957881520055709489089591493722569907392966843951265724385850317860437836904957639004110018980978591542992498417104531738536584978418209497174627901752491509094609972951429302698361080833453807507031149353139518257097773989504557024846012528049886392237056887233461645746358299016010091077751844606540397817933005143417016967716339384851428634780689098134697486534788200390204396237446734315535254353454482195413873500403314160541230752775144619607491559745326387971837562429550993663691816046333213938430035354535932473928848753328265217054462661956130856673687804092852231561269122857858130476238101239153696516582276117757643867284060549569600920122920044052321959679145303925911897429027452198722811745032862559060974471467326464640868204677968034078845079863268115802802189285203869922019907416473875031745359048225775900551736239480949870166555966149094041913952791370731710778872675723539639848937676051462007947890263471179990134398862264391992640942607318182178501766865128668656474103057919190166721840267684734644287206969294864370287513606321093994760610865887300200690543323859985716304877160780376319421522765305363585115288057883343178411344178051897961362614167723428743440035019599494633274467489368254868456337199015203048171281535171207706774186797098435280174796338792492895377682986855170298016038671513749993327212133239210694518859027438674720061205550163491043001934312541272033550326460115121244488825192524844487799330069538613816677079344884804312751765867634915955470999181902783342346968868442759607757113117834111515114202229295501052015436852663445147451241112757940604172217573595004890285949754124632262513073511982129127775946158535538943471342160602211107706421622958925881753238698122199807119622766485443581990419423251626957689918728225900665086348855773424330949358376169431410425308447899750236647863273478965168084154187431608288153203404175258705511375241470354970724669971656504342913095908297187890780092515150002665634513496363421554611491098893823441608082956964618700106974730245591549410096059523420174790084502964011073174876210408441055378212630769433617428749568828191228159087584566350353813392159392486233678184319066358248103948981721144884221362769250439205611732302491575216549203802736694139896967906185639862130022879523953896534857557015072605387876078639937718466132962375507798005574045272548191008819053933067367868291261290947020102076430290431262888731916392872095769738495700625527935396635994746113901874042058801090161732651809341917609970864917831341688652456299908028420804993932737545889926044650727727785466973663980899459126783854103253560404789329911623930863681054285098677300456642779138478877015817613655903482185421427322696329074856748034915676689190839309897204267727585686288947399468836625226200340993793025597174687070462274346660948763976086554146348795650915190853946501587697300994878588820501946135733560246523991522314445297720421410586016689571759738892851184562350519191206435747739732470433179973893900311909648991308530645109793585790592565542882728499022304533101179166725195414791228638595151288350440130823744195112529046751702062035777162419357462064504290283702717212174750261646994261243257701893011964142317166233186990963984430499267961844254578873794245328967539079897737747920774149334437604569027887451700773824241631310683958632766113257916569296744643006467342863292596363844603105831198317531002199693681603995639959006286575224286381233814469307986110981783665656017147605868495054164658573087273547586304640667011842984389664560563013810299411580687515584617676639664485522634452353768509389409683379351205157429725867222994819336103500544996353926589776490881735666720362605759029508852751520073942666461120292181291645475988681774500090312753703891034193036591166296341841073383545383681010384437659464202750521224710310202122884088698167397891134083749737140009123418818098728156750558915367685808773700821909338336028976444709905965746197204347118982476121510182598040621464039506218729986365623862185576919161387362602162332260595117615623266801597290645642087359304704931335026106190050357062269411298470516693179712690255609624774616170636893263417643238151254636032322442311443845764114128079947473768209349308541214779155493804431124683131637779465078188708299035667563575461527521320431419758530743261961246723700437545987182093484055009579695676353946364967902166159959785720279853007584928012472952188794365368599535199250470971881637105903819830565050346747178288750874818234708775790063817306274543903763442812943506598621979055692695277860881348078251857961253742136978874573722255959407786531183880527272361928909727613434992211400216385097678625340225971067349535853749058977092262437827050498842333480260169702617562504198309547637319792230510884883932183001112668056663895931149369280698496830645731479753612355141148018143900244305910144132823260522818468932869425222350263194433416556707336379760271137078096569597613921715101321132385848354545760932022660525816884362536733279282670554030440220945756830546445165570943332985499047483942238332209085325636530131014326488214401394383778661644943709263789784025415371105458395281542251388346987024914423869015235423976471525480126313494295548615613601809860615366861826062128684120841050085360818025889367609468735806700358509029900911765403896117266098681544471334886223075297122821232929125763620086395498162902149077888351692470261376916093545478515303526034649831883247996316383610373066170432064626478990888143364492958751332430771314499168442465152913240026230450431673641717458521873654965755703755310625000744093188578958957113872021455698917417412568129929596835869314564647915727717422859318973921690429997548578125929747259885179780978901646450198112858050066115226649221069854344228432481011891251307008928827937857867737482183264066939354843919110027957123723978032843012930170359274936532392978456868958315571507819925835436103306867370309030588260992029299521072289117199447013510049611525431450241724802881716887782415362168882686554358947607098758216808346843800236875486753080438715485905690691295829229141413226879632698260081936987115001930384285116040316829051116457188899626956440107463060999040832889038856355800935618143697647870906206040297182061480991845138948615871648445575639213972891168177497654885870677070881703066703854124656177349042946129276192588508408619764671004061475718261824391460483065669187740031249017737564471185002353312263975933440848763728897959739141482545278694039327998254520668018337636249890182746617601714252961234962524172126087097027211049966672816151760758506028963695544621367488231841438943760005160108594248086477248295071569567707404959637374813300593420420790060562740003701511319870857022330610307776479000871282949204243751193224356180361962546848466882531605014637747656009108579646024818374773211695332302696592115936691574862213041625271203368718838815002708502231201106237723315156331687828722861662847675579263911582778343502961121345752635627122787321078760559692117193962802203428260843968006924770470112011927122084653026566066853122265816018092621105097415440239030041186181511183171120326409536013577297070917106355759547267475065685256501513300745649762564440765286744515442273070932415129341187134570325213380183280098128746114653252409577353727945055643243504355716329720466181331722773513339361561866035494479050249305794945164280075890893881112394426392114000918690540590391150522399367539602140960852655842288916156213304640392970713939136345451783566344651044843318288395461825510137456040049984714907281415163843840471427242797744074771993382605214602195696611155801789325063391093320840698863104919098897684871168268810593767848678902164134740934598000649329861733962040270923240612032499369310252586264880796566784091907444730666007259877984851938474173785124150934386202457942072314089090433301905451912481585148346535448756286440988218413541981877544979130574446698899182087342930779513373848719852237495601697062451922021848135134371002775508856811769588492204935331185727833542929687945797484054549059220028103497646258785680611543462373089854698362923666007433534474285893784033993826166827867730491845731616149874981648520570262147683702050206153527237179254349825741953447745322652139227206693325932740895929409750443331537751473062787359613348857702942349876437392753684842610359307397020697191967804632832172410317258242427242806017528782399963896841384884550997851055381810766710597033793116039023887818031152781883394192924082863114970658383580892574083684731214356523288449278761166804215804287567105038517512499464260487215227485528770096785342778599641743830251612098793326060496346384497371153909553516632329394974365286879799366128099745318884747314591815973633802251054947682933290149989871827077175477167292020831960348515189932101647264907918376289691307507928201321325523662752962885685886644420510759059826892866234803651157560253163033761994457715373375028094774265155206574705590645266604110854667817815523381358594897315806727938543367710075705851629762238402645842961745683837405201960139531722715795013628892760256096513992960102891190903276502458483909886031188078665738882483920860362663733807918691619885770682517783440210919636148449214007004507690204625437293419855319835320756343254936008820567611051591192863424871424612602201810591762460174505147988324445577502398309501517533297615451557715053097349017150645532785472029790528182194627986950909313990772705904096632202244399839768265333215493348522558800859244960426917612962880636099686010835351186155757016028520586209046510452768949399051708588922637544104226963953547518289424056250318557479839045061456346667316959698869907419301919753818478013278421526653921343649695976859550657281371965917583126664698545652702986460448994375213235497039271663664676132355150944986653773125581502161414680901312708527357198534125996247295574241870508564488120878721627267153185453726463138724011750087892133925491476503816733186843936433817452919775835402647645735964440518202439281540711603628123166009920302198713036691125343712588735136513848314298303092220078076469793901714619862001716866498525451750813516608705134778220754520442801787346633296468896845918681226188703328627177393867226708390405766502292056839861553471743312745608229240128316731918262338466983655059573154463330692667113897398303881390696982195703885014012597963183511712829712641944480451169555958196896408974396491048658403677422437727872104091547676221169938679262980062171673636650262190356818252353649800960162737490271860280827593952926810319015970480708932838750845821383032858994962044057137569023165889278166146100832328295840519462065040362919831667129911916980725576900997183499120615378374809990035778790050839982325582742758484259835758954805001356997519531147851296908782513213183716469587972013591705092363791426478939172830154115838535808562139514817934468238719942713580715675488829324047810369568595445114074766743505032195730872107287324066919251622005585955736806418554893292102391569967743280064401119325250621283879208813632943084640236821255028019114507126041952401320420342626734269232208930618159002807276660467384925936522836480769798227762712149477653499196002349680156452318305977198085368167374757832379216709408319346205221647358698879979737533789018674607425203797964349166633150527712328180121104012652349170978702742997886939755787954838131798880812310686021172984709177992870395281450889330218879372095727903001471901656196728306851101477242132810870434120677165897672486170367513344756486931742350608724064443335006884064997318811192797671838810304194933585649115203971080500777941367811874605087902778626520477286393746688255549676635078359028577078554486145065994176499081471689668111892354998478084680632519857479300999639127554924031560398561462047884943651711153477321061923203450413337034634278116683799136371455937583717276176517097720613288014951746705830593271796449222219290604721227625800378206731433361497543367685724953075634715884336033792630447442104863020724860328603930893153751425896960436035271483396177496879628894659083948532024392775457247348690816379495868155279102327684792199634350646011535848734463093940153785905737310813791856394060143247155202036409503708140283354151104669028884479502816307323040572909908470259728465595583675981722491792591113778841178581610594507698972369460272506420525140229641547711419489975065386551245813459213340263462837216944729638099905432341856995012043539040557717870773461810237020949657626534646465017100065791791655019531464649669511927549394779450152713901228929471849533506595726411162933446527603926504687287099746066564569689271142039604046945824268805458828963863888350947627031088699469396843913241219563147762744073442437079080706987863184384355249088471253170334244849382008485208371490645694425852971757240372736213699355970532408677812358298876182148012709257700654050595631923299500180899465308157207792429373968411428528986433537132016994010565603576648469870638565320514995195120909139640606209645041953287223955268903924793658664343121999515828791607614927053221298589955865395801382481142222727925916339939181907747094720227299704217760492814622181077158946986024815705491859267478851554350565005316624908613513442293968726743147210741366882074686272398458723760471023363788567411726960523053772920958161278892974205429287343831139679019358269554699710789836384802411655072713505871793793228371105223664838028451183517850536335646364484589693687541027290479957199796376199124379633760654180914553428334213911768405973133104674947782521064602497910494247543524969851136373986601619740897389029420303663717462200866557849837752440263910784035139330067949137237329390178060546110424697732997404698236662011176103141448621060549427109229264394084497644486271818976097048273578230186745466964512421074216187064468027528572721881756361042732184950480056335053769963262530477492309830519618950475790094749685286832469938411851441852486853742075523755613960157430288505476468121289231521934800647893610088967184171005558018866975025480969036253749876453739988989338268845811669000953351197150971543372653272444072482487748375124832117260154162358246535497473627576814766761930958555271044574169692638770901781871902872765568684164044568692516070305642345722026292668799317283544983463910648027597969248226981362662220470857300601569579483376488171853785694443160134335324969807938720472740573349990460337335100466816623531759263982770775983728390973452769960563833490205560967088884733333951708242446182743145410664735884922173993567078542274231151066119419340219575898379465431701173800055807466165195868007997528786291655125637069881282786718285348129688339843989983932520103592534022794640016243746869677275327398882486882530867163130206805852340188099508136006219692407820357213388495938812373547556672083322607186719412430158185283187771177969422057205423839850098988168454515993942469749264413421823330167536981284420587051478301576403245392672644059129803128498713464650685199742034740936250774339919068764925886922278069191620100223467530360406751124370792284495737157051105710818816366015812980805188306888369273010533924207377180751630742220723841997785060677533127319961379013464729544640325794821976060063536074872600942892615716644547203633017150852705893689616504430726469571311603237596308276155289778505328827806295348149043391015711043553246638402575136600265859649840049972622221886542525747896716458598014526792677737600420301567227522822097156523696615705024317278233136769872078410109749664868666443875151041781737584756844773878206175016148499687545570131462529344372290974758049310917730529482870769241972551150151347603225996748776044974134768664692821465494315935655881695317818336963977383032018419411445823984790315182081200812664340008077078243396812797316300330016690525108456571755888407295040691684191752447522780346380027003650714466035469358633689456286963497442921039631055311198099085736938021061332461823086228028538499017917098016461491598494566379228990908273053749016690508363608995500568998592750085116449707874180864010209959431758631247149034973804620769124213339230569568743081306545446377612089410824474248718101080419308709017520033067009711923765651572592570720782227162308155981512086671328244376579656773263362832327332963344452798504004708557200912923231383359840861450754799142345090597614840395977809044107659027126968118560687447173882430856053305557009726443317735260137796494694517110616283717580410912792158327691425881147862149942094427183626760744082833206945288891593201659484158973089656594897573754492068549127435534312418253146844585765435261719746200058742750257393439529513849065325060657579861075577222558811526125401525145145180234716923265070634583200982224208133565560392811075382338141013793562443537755894494471140450975268616110539260720022272925798565676377056388816456528659886241703002020751015194839639130376125411294411428288299454943180198090757217263338027735197743843882743134805984100998113941471694167392596273985241989350313592972527469660288000271788882185600883746573003192507594155376453227563919587859335487741909206330791635160276357120642479628699160961331583145441344972195307935570292393985576463134886661171356119262619086622557138053184512126044201078610083758575210735929312371282791989742825206469947015879746663046362229060086376245377869713535080159249497672891808533720132433165568106949609607640975882260583370467525019868936406388733785643625280158549332739071498925078569390950663339356359756674034361243422870896994423562895892716945819700524934041152318615982592055613439906331637280651845445146766270777289825038189869033128893705620263400214182244737870697995767738634797885443725218737979988156565054474664331917540302059869778452171195831612164522699070751212585318072255151423678040553947349864297593322260420431371913203241641636133071208082870966627684697274094250564688199406027659616521529852803404359856448402130758194728832474831598188878499825190814655103521183869738475752640332030756297232259604200882293423537033445651414401048648078412220916769029726978292504278327526206240312789839215345296562548692862522915867888957236429827937653902854839005730829645530038134947679994162947212781259873867336801910812259594942946071445989453159336246848580947361505786987856701602556222549595309379624374906552093631716218683662859688708160031592391704731845873940880917910536358495608365756900391357735035191638299936280083996298933949360028555605951324394946578990645292278859045476364618541731614626712803155415019770620018764033034545894292282738994018060206299591015003861280093000932388607442454767234835456119862405921544450928431452410617696764990862075489186521724719836425936782131002281619418795541334854803934080968908997839547305437670682203969088978381670755013730094771067425833317009815596114069638682139102616238340097133609915943058125559998708285372131705197127234168505578851161006346252329771718374763106979770333244959284371235073641352513380846012313593877449570890323940104514352685159153231629919302318635723749300890998771332243967675121755617856244290064028203821553260544420900433711116679105677885527754094796300102519383290111486533331912604039381101030382109250729561546008811144975092488906185755138736739612920008082089767019536843005502754493684938063889707743501925236301961578624818341601470344698175321583680073477408475701480066252587501771406743045903569505261980910723076421148714745905519226191367610539459910563707754671104886625969313620345729162058291174321298029989697629827385357762709954530990626845631474962735597992198125141578910093852383700628293586926488066215385919084460397480034406539498150012366100800470692442267790339321577874579354443783143620408143044276242255982972891326835198493660379814863585891291056171468508649109995627189482911244478811929890938929252336974750200157098931936637178344643593166059267295940780506080262934103154744367060691415638562313592834795402810700984097892062535888343195911354002429384899038484957271722640539946299438191549315156087071861958822634278994459234482931506891269665053530686990765774980415392403793446875496592389595149213949016258248591667340496637115547323050231046051917010215494190704233655887998439798101306800721594518740101586280038321175517871209573250448853452552680734300089493122266235911252960868285752244855450724536023701718055827019657217447997951134952759374522018039416482230949324101692082482846874063502934628836683463482635684239355145989707628707521190072721735779172596155330094561855554625379895895139104510666297337659257548323257972672115117482960450979778927027671247943753714526920482785858990109834075810257336473535346259204175748057172992902275564453383136393969152998940314862298281335035689751159137977596959316120490187780286806955797925108655804149541579402460015396404871394855010161879679143771528995528227651164847179509690740062775998542348027448594747451451350863971360275089658491118187260700972084832306093376095515793644995487895914523100619188009463995664252337282064102167234694139188227135027282457163467601142690475616905733198814202144712269782038306976058673608385914742153446123608097291827594623979607675594840627647221160028060212337860998504361877846974658901512910184578674459381417890433963894343437650941190630756074089926261679799632535972821891720822187049022734201068189297549453952484689898249095534822633272278674933924521810753171207673532600366098070844111665882573054728225939066011733221534898843947163865136817556768753189627714251041957207943980935604473328413958912682773476906827040724787656700311917656874877066258429765719734366086116374044199678334042584663882577554882139834999074641071903429199337033449484372610551743324058149020720148419714896677650184134077494293799312474837843147594539340171254583325741822768185541450487511769157749751023709395842047563189472130450082754110530789712295183751944135974530553669263024020364776838759829953159593300415730273761687557291393869678655979299047461273021032277108585660297139415605465549753342332869414463877021294355447987844639941206860516005766301839863657197817515668741817458000049532880826877427580540547175769291910790601900960610254085676594929002654239134985366112266007042075287956935070958701919402998504618164584017653256333216911550777777355889223963640905272468016025665571261684332541217616889631635741882515702871878068410397629274060416127761194703104720929979157063402897398535559586048367587355739700766016704886004336290091726747927443172693981592195035312111556983977810776528968321241170315508421996581238197233896948288266436099531820328505714333911043345542350369484237857609234008977722046553073118105481341370811260709505222332092756368738394656939066322714262073717962616769095143987515075276622609460685986253681628853239841065178910967355749077361056776439470749141646090652034777331672208214829351951182513530598458368355045045734712897607869309015520992435230157073711035074319898191356617505743501566972284456487376546994543030263405832767362890382250999576650156608741754086414590399251461955700087021399111394597092546054143705468303437802851999181031728131976074192909625524344565481809044987929892973115710253150115304227150442406665503196819074582778695485676532907998300908059989021858291064491746439283352404995930352623594086065094677933506037811822885453023706291395069555822941081940477402058971419974978170519257658641987103375792588127625744654190429500651717936944175563643744011079736228060646241295994700174459764971248844433155454396097425859266085878732332410141640266361082406567660076604188543684120926070411406357510824653876809833473340100780635451279751771440453105339723010435706455413023288241704562242128230725690441666157162037953735173943133156729656709311528895549343686540976757505657098442459109202955291374784823414801667110062032572714748897491091021234324208353788390950579513033841277832648180171365156448258418386404493351140675331695637129425824305433546313798921320583056358387257358057346923803887380688308213318293509985700757455673286291073321689900046971892633727884916183033329525632035328337863878493771462181034963779563477894107351135973529927253638155146007496875010345342198056673483224319793417595201398231011063080753277342039452135374513636138254252679759277282975096042949784748223240160905361869707675022135118523881284775432474864025752916868719091062096093485483576705067103192631935273345049577750352805722400593218531771589585372877154587098235478765161631384458551905600212042251813235851098594872136430154463708113766644767241067686363873833189089546854285588442599432145624080036028416341902125316573050705680773998769145199345750193019173550837401057653462737698339685248990885155944692290212198781331515837892665652528261463889024784016540846608002628349330628065394910462299779263765264513627326457115988675078866023403398670114314307041352245760651839546857797855028130747756410432397651388766317848602123471860005218075658614250162299387737489242364863522204404262795605935139307153040518334552857475487187303333255190735118549343056105978671721366282249867626196727964645182582334408797508610013885456353405666566783426746696559041011680807366898949162753847056246042064648907972597856013070575608050342726642128245880362316785110908499559266910750901328595858092122079881380521382119616831731822778453538330644101006694221093935481654981903367560432046443800020433010135270617672691697540258889499878662606053117698383040052976818945398655866142770416022004726906182847410569527953197008152627449545955524997029911022388098518530042585028702968774780700292484639630351182128927236784919068327038800331527563288745632653617730855304239838744316318734989780045277985014455916476535057737934890839412594285744134223659908921242842070591270652045732192327679327527404213402042785972301515864332892693849212657243767785428538200499836262270095004063431332463801468557887733094764489951871958833188037734621775652108785635117746045125002030530923987379597456269405237794942752213888819562023536674238050176300769798871672889309597965357916121878086333835395434268168162627363201305205525050645518659164751721311080670497813627711229706913377990909080823087713390061070696311853400409562952227703746285294866645835535047552257704281511208366832169070587606127490637744168060514471615779972208069742454412408115894288139179343231997748293935884453725333397216505693387153989398568287319058747713527280207479142181564092688767092651109248296053684775598316663957420468407712074393773921700401265733332649189222040138324150001382744866034070895900033783693012836426262868703166091901487006180981452149584684704971979516700729593367532041600024344190925463826660053916248019786048760022418043505945890556865737650130765390659274388233359640793701935548053940147209256518876758010368925884286182484428447418754428612349363651022389299067651476252752058147484091234648342143036660731922497353988389908227167045681211657779288028600476538171598726745161309762342302567424523048833892822875710137240194819953388112639420074868725498770319757279507551749586518344777014833768356178559805765036954390261008171353568524253918733287220755245307475481113127360343106540673867426982876225791765919298233317932317364165128091122211932236355580437595896372526036456401048409826313738160564402367333158532548007351446096285462869046216545374982351395051654597639409410275265872125826691740089330847352011851098243980947893065577724181447161877110324094384467913025209826356984433001114665385820460868043994410650735617061745654581324221109255152218156923846571977831753489183125266381228176944776804189338663599106214312683089579388188762704669796989799051532985348496376897469829120471403348369876783168370047818294427262317883099766613111953322798269964006290290340351174226050117945036943779337168186378994449026840158914251479374970244123678323213418387245751280693278929788612726078796280974192278272325764211203971277873751603137926735020311664405797408337086670608909839631377020041748036191118805232220707061841917725365471749608701574808499254348977615979755804195839053225224165092582085077566501589785541910631115439141415036603715632347029602396134604560981897919115332673583271791527288679414852696905201947619201307984272247282190173150117038034271763993322066033002515079761024954224807620395532925868148644435598541415547852744412197286688482871571838976620197845103316320181594132110186687943214592639937689607746101434211461179594424704032358436147504338860715998370833645790556151936481035599969069533220673520301019411955562703757688324710488183202885525738372770144724869299046463853988777154838283618000622368355593720224339202588568642627739747647872864884909892218025624403883342514946032032765843714821633156613257271438541666932245888763573038016868359830360364438312409039247450089668564174232529422033654237126313865522421985694715096998427054902807803581135842115754721786292230155298935670700226288224459478509157709691161818002549899624860651339665177276613044083676157777617999209993804102651352512221464983072612338430147869397014724514473892232455803391585099906834292781559330444954560328557510080172445923355867941006378673729180034872762109117021627933102762158859326260865927422788202898958320919800752407035073918872667467773999470889032904600047594581911797380407103407172678171909399791443305268140319135311411132138943406313176144248476215564165479574779609427691368537639704791390982745606030675806906943676876840186948560428844912031111691934100404981021823747962476895014057333145150659527086963403132663109756207869398067941474082761511698110394458607609669588878904946363543838299650563293269123071953225677311198158691993496721057759703157143924506301946406650883967014121493094769351564453595638126361131475412499872773569457228638511606999430946798349953259590641785065406910985770030427015275462002418204499840864030637470378522713614332514847145795977353011125702203177198520604490070607156400216600982788804894022487668429379159525075030560895741177691401993523698216713467995228275116985091277702212075753171207071486090713905395006282782430117631439704385635124728219987221316507010009795936284030447255390598871573419251423783085362826607461212360530822707394728635313211974496900775885858637092019795436614682669681607637761168189377248491178707249830967803348907047548170532021529998561613279465687166212979830032434381810530866341254192769972110459224316116862548108610835360274938343803935122463189466832923983890100959394936607814523217058667861135071145305924198913724955124536501091877042147211971187186745602600630886697330593165654846706142630192382005977209624032516235257861616886786730409962746853116255951640317958845636858791869916852107868834167812453451612268545534380582770710732240124052586453463384547206689577167881094251153754747702979867572394316555744590767162524033906171855581630814579116867397910781329254942021842314821282046926568308612274004864388647314078266361570660831116009407179277132093824581246721894312432420665413741963770951797081348623175963192456372864102811050345846016560219866104959731112759667124318461306461996208639156291637622868886254763521177690305809657415695516549485119491592171882635725612327059870450969745755251886736535909255250226050144208070224433971645501132492695185009160350538460530700475043302691468936790083062526189909584337829688450195679532966196767687602227009621891967420212338882736768077460293794185960939355401777277840543022821801542917693773055365280693907158142705988121451352956544473380061586623340145765500522556029280627663648317241829105141080164925282179245647971069538774834951529686853260646408650672446945398061622355247205364823672631743190319118432152920736975569373740519287336419023605168999397449463244043020301270475394654756779991308444630711404461103382085483003234241794378484546298918466247272119758072712718053253429885885090065071099168965888943433046005841574879938969130015979833471264552743715794620283205957317714269661473543644780773167748181887683496007705297496859524073196671281628012143339859501955274343342215736590088036940728278466963739984945088616649049829083654574924328206626414522835459490666741683895895697917877479771311089446110287938874180690609002209288300506848039696746143519361495275179838898548712822876388206389022613356888142441708424526147231363366318369574752016145299612054593885239964121643775853799251323233687526736439816401478425072337177640434867632643618863329147415692769446123632929012610725714884550349382553107273314604732016933064159339925902667617567775393172156651039020835991091266089720037249001646841726516490599981741922329248889342244431302658217293233249705108766012672258661139887755178345452486861383261784313331868433787384117255698599908913010552140343545812104184895988496323172844462561249373895790870454039977003211109492632009909165752099075367241632941117288136015859276330446147176284549869029961175856592520102206463161529252215395909570236808242717190737676597134754554030298429757751697587403006045937489152261929304731488519836121267571425232869266432907686983726432747394133726593160226746874709354291436353645351889725604430840256320944877286868005938495112752707711163276378824728348030727130806788297553800097275851828878078345014093762953982051160126291326387627262645844905446875080616502039051927455884854701739911318539392771628262823934544980592464528494669353130627980814572329067668006731167613879015414634435695690131468707630301361211803844327640904474280122930873278390974443481695620643505689997586813116992992862542711410906355428344838833703037641660373580955188665325188085383448159087335608387811598213560702022984131467450442199010029227968784644014364293813445991240290909200039223796414338930325395767054674411441896181936419544679950309997674441603728511299253190782322180064385630211390511515770412096552811149451522420540223486413621938756473781286236008317868293697465127541140945070412794570682058545600728333482955490242401500338730681003909493247805095354015063118482994322235872123765413704530968576358677815707566024873707763742080691867783151290656114394043037657679684197425028336846496354155501362506247343429830470432519151224724935336170541534156956937469677392831314298963638882056827985274601159295827347701709362462200380157109506696665401095107546282325041802879877195626268219464716303713838470955259229279017386111082067554355113335534397550427367046539191413230702847071427725644567497916650944143259119835222632563197405017149449589826426996001158727776807090482073099310178412176165991331786416363751695409696636185385669399362459147641520124349061174641343621007269273168814260825741420824040671162717154101701768570051437836018429143298407047261479656895983007878277633439845764478618496111622711831365948025645994766211099635316912186987386754818410413515840117768570732431466448307794571108738327410027994635589912079084651494701769948350797632658826114151409536236918076976361926482744027263895389397383775934539737998303049006052755111546107314060058716740647318538224022400710985215330746701833853570784578826748452682338731801199403037897732737970234293647538088547724887938975804638482169484150797123362088569265029807570751973222039345308012436443085971521814825816404777268780257005140988543407863196925611217626247343947886444849728538468583334147736033502903494313257611210919221106172531396777768806313276030471686610417030049180203637271017727040794407373208051201074297259792549423283055485399279216827985176578980613320094611929691202710353532054279649864414710181473004900741972881764948851446674789668563966780371091240058848236045284310498650063338341130062040974082345000852432899086113231820969446937474248703168254350186815967528676394733234039966216995774002819272279702989880307643218211679582360551659196193413711183551256592093001167151085033911227244394000420510908214436118705080177914041431580805833067905205038649051001940772637188411745778395187597759048474323598909450070724180547135928975179915141526629962313402867004419068013301054979284499140069142895887170176243075649920154733477228870932934112151209857952220000972025795035106392231729870836024764772392093087965772210375613108641554033983083046630376800821602382728185264649900311589006957093119275464150516059277633776211802854887025750949446422710606076937947069836231821981562648948518883118480078083033809383332654218990897435320461794471705062654368517745232649146567906576615995674615485719509040899234814938956323863083348571712108122154923385127427426073718362659253475303774681552993512389527794941729455767248051915712691620239230659953234147863640082335104209032193254201655376267652903835967505193963886049940012884463621000253437004624559965330720997485161054472379354827706267966441319942361887301492793215454202549113180127640408478778876829113191234828017318353716599295543497949051478601509188009490454796780518655775607583931889229171295353442686583594183691308214907668749658550183621918952036978775949941036898087424148374588385147051655930070432051502186171226932994018700205086335010359431699302097173322599611598851721246677361860299163578822059361793152415775690118710733457550332261159815539122861678606434463632755362833958751859527011669571740512209780392338843347658301005684093075042840046810233650078978426983164630693801183665597840663262084522593560905960557430881056460639698328935040613366719511110258952345221339564561286939508638683774873617957855165183535094076688710928365601746230449768886726314238918523369932269037737668300449410249896473602743208464641527865697729766765011421238483458921165438376363944149556298206098726592679124042836893503745111503372004954626075503620907195940384865689082017689295056311628727155913106325772222084007995707031986408691490702949511826680947876870434568278351357713539376127194388958756019626340839175128164117433958572151095637303979415410538492006015697791060128234412673875030441723084825589674292656623529474136424523383981004141965672195242377740315573519221956071871349082451124158231179638896787567200164075059925134770120100827083750480715849319894353792999514260861248236552586593069187375031850245607381984234804030622999386931163411362386697836547630580301986013179425824759912305477689677425832160864868212489505847054522908994274390384721860597038052196937653197536701123755269848928962752046496461034388959619455571776345032792391240237506300460988413378562641016820697119883750634031078893519739761120960343556612449331079840138412690304447061665295489089601306320441974326677150004515283152077528642018673588071644254091073285098039001723704491793685528921852754528931118461396829496893426609317608998172390039032072180876682024234227341442002673303614094524799961898902596186091971369474692030472194348734945890391056795492339396991864707485081014475541336739649355707448969610811596953070182631980486157223204161939648169370892006585095683300666710052995152765877863868566142269093467564072384277387581863635337805131863917702584066450545917900796359056099168807692627103908727958170498299293322532269867314819927027334187865630549227863500499546012421626631523590851008054335141930563729453033035785472509375829552002216113927066872066906361630876302793758473233375375394428173934677882713045423235029508103298725237408939528941287036476779988804171750990373604785040538995022198953388612831917503889431469775995753112595706431698111289679494845860389727269332512760322606081490849820425480228661850225507707612091445469392055368764391180152682938448017607158818831095704892646481888404121004070921118162988587641618164516171574891812929063728468416971018079955737311090914826556149151538514831146812299118353661903866941384596106652909233827178360101485655925139696337498490716197200462960883964910528155575850026050705100614240445938759516863198970828319472150771140387742746051521509062469909649007057734969660004485950395710346379261665356731792376855921843783283305892857449091349712052369762267722284669157292836828071222074326797188504261057321450876472218250953008479939500844155261375536626557105357646478047354726706741986661741842326555074009355064624275146531643443074230108683421927336338646106546027527102947199759857668131226244831613972321266355531219836508178818509427235449230745789508346125445031655415361608425544134938646438012713599448324514273193135042258003194212557389885035640618588282767151389910465894421019836030250133392086487219679565592285378832841088688556744944624984526614153380763919934589500562470137009669143566341730097745390449299474958187129160251851174679717660914264498526969259601808519620612801328298763330958873138630714826565135383181855887178917999058797398206778401724812052979389234530883670693341919899109244288850950315966095739009651884979229552842197041819584608308935907815901958061696657854979064274758888062449010788067826890546102045030192191733808156431782615033470926465768164045885971421856014459129059976192870009852076130010640073810890016517171629006215699093252976793638144109225740243456239867414514977983361990574025512604746649540084765558499439769261831209124510169067772266221264991948668275766763780340484844237512961166143493009086909082305159768111835722270803463550342905793110744975998064180226673207264465787361847779712465033351246852566913904686997550706825095348288483533691880555032900416632345665320977552805071273974410559535764240947274082917534434988184047604294525742315158749936205252104469426085723231899271133879983398795071738031982805207654499983099874755636217715406438396716070067086494594773745981967203907891078864209413805771274869537595461376769141925905301298151668145494218499552273959372609419347496622711941670605392753992754638545139488845806826083779063979782431324857627476498779905573448549164056213078192325369078139786655825874387034552575635222751928414287285546070712721643391941060845424933144496831231289064440398972523375777724876492620918926806687942877157326167207640101818435044236774742343021591117912323961401682709491427877922052459280200404634498741115860608872175005780699884672069697025242813461886014634253955945987464103371028174860804928155174574484562503491526113115941785766336608550330487174769079060040469956625751409423349456078169719529055258359977132625100985511203038162487907839696433841362482476914173903654410724947958107220158510839334683642822898548699639904444865297954120391394321170555973624664348740244495057989735611234283159767843651909993626186418093861209974500127268357277782443553556647097797249308900842903656632616427756571756282093209252161169732105527675670416862377838353021636995421660929044765618307700510726485839586938373250340792018009276924205524718875379949269178319179738300918744896975380673643570426905512908862889813868739629053256900463183073793132149492513951337059054853021247919142160002371745637434035821565384005274562146435281949152394546189913959618524313087986761278127803218513641354936910461861715022415288668985593574667255391434990387286040865210375885934272437064200631453333548885582459844876845152814581258184431604175249020757762284749744938734768105392746664237832982186157644757187201339107026051408715095707408899689381403046057392959343615008935013612154250342767083272995921806081100396872043461238183892567999949131356982730063112346115564122484678233207640856871514075613030269905017545428802079088427134985313663387717061333429803385677239513015342847413340183390185235614202399940569945498672820436931281653187647030603212014164922532187411246272066418521603205612454577306445188686779316367335059788856291219502985344809437273560529363444746700568055443695217295534104937757107753062916734010790505590307701623403573532396212592127766704983887043039566522397316673238555711393910277626421237510552408183417745727827327562429334797098533825329560885215134796876998715717252834049966885700909907961110738552630639045899126086584087824224446685933955787775826587014842397416264804165813941683626388727535910169406510980230840991080096170686280592828257492200001525696084313192178985673289789814587154094265137559696907878507767257845348133776796628020420874800699598345763957892995096974373369346842698805658221915369697060249518800392934710521508340372371274478374197462702528707112669217741450729492023059055311800133973332848845578084683105878796352843785501434152473643083351374133999968488570948384141584582174981268014501251214650670770915754318521921963937453275138639152245684949560169946222789451611062217157709390109303692283032084315292271609958909699965014025500914081267883908580500169174460365343791627006818093221177965383310228774462252332670846320322048209510179395861095631351589150679663146326957318879140680277969496207162861346320111392475402355714492539362281716071858923599952197810913529060026460167067365612357011712243919800688883934080627020901249924704618504352380365821112546292679840708847372678010363597472211771807146485282780684042151126174862702430455667179497149265695799482435914897675508985584850249047269514319431261451259049381945778550756866489979779396311457949717163104857566485122187659892112233741574237217567961967870080312696760021845919649369142308635874867268886358327674210370037989254780234047107294027791846096649097291468587065969700739718433426482012736679692712547164100346230966425314245306677485335860153702978293139103344444283152506600454554254333635849555035315791787610875926820402777752460789957606115602080422986058657829214599549835825400730153010110806412318152268467268812375565520417419468272766800641135698546310706586634192717486905254339451113854669917780967445410768156372811843633202085713980073505277906305192688845053576912071010269241381127319937216374660912186220364102836556592780918781086687655207552563715266837170724653642529443817696472468080230191600599476274465321989081078243074269925026318315728962010631248811011738231663455368088889518004363252968520280031719502864505965073299430154787557510529023239449605736870895145517699402465539118767521388636832937924338367164344175250112995075556825821239623614958621131865371745834635769721330635509132510583652786974572910950642758005785039148302214575157465051319722975370134872013735682947706197677516462441656344534011954780750722606009208856632150907727175194687440259046573237641256964260536573972928128685191336610035945502652027773087979177709194036675995615508593582568708445721277838907352911970682865224441470385505856522289031832290197433825313963526836248449097108895890199689085264241674997170730076792341899272253728929887509808345430332336750432741578844930956497473025856209885201394870349120475480404012129964602304968183120657997763252030267598369811202666666648020903078895158037079546938847035942819621480000647850154212138886537746021962946700361002662786191654395555664342383626481197541066000684750263800226430654744993207799755467121347103840288678654133404157580414108375068295502497403971467596180396312253876380860447872265707004661544289954551273316937629344657039147469061755245992546940104468607512689748820725118783633101365609805742620445871637325447694668304189762651109635444001746317171327763378124424888270591381267118036939716547534511076196611735440059610878805463517087019611932872386980594318998095047331358264736131812630694059852507531604844526803182904076729251177780173049932706479279921289175824415732128626679271056620200237608376934794330236434284218183163962247631008536767528677876237190757797745837772408306257807031564743528383726710874604158393757518768107840418762312054157734620140619053428091465103573970575092806165692964893744887601169211761352994709935441775022712459300074632738125580673763160942994472039353909841784766987436532914386561572080124130785550542250309880258424173188062337436634082193756891746360120491588134936669929066602559558520252746990863538276161875250708225211241108594356812540859279343380338254671860822567306055898748313563496679113613308611885548727041619646608538032693827057359651652252278691990292668998620484240882462742634655917083732432010277730165308928996317803292868082647693333540289368270009286797022832034059380251073378112100614200091092104367418273799328216486744639614121719639191841993092864117229465343711189993681572196849667100845526255299165322449668107753971245814947664361037975894355005390832914441609400934886254909070760385170728080427137683675065164181333675611642565407220143657998802529407988947449303815614548701869944485961996911306807601955216990425712758913128277049076574811178151269639511820112785236605951702381400903696369674653380954440360154920584429708584580173912128583271056919912563602296523250729633693253969753302865773411540041204285909143616051443416878951337472068978905901924400954357145305519464842024430309483174021908571462730159136822973685532529115542375605882038646675713550116917473947023827370912895490817232006789536303928135478417462002265464761257766487001016114137462833456699268149668208579543999019584158561584652065057806020833706533467714200538779920491589527807155172457267074698881401950111296594955362496858830875369602287504815956325008282695175726667173066426184387213358645423818406460305151669175652265696773569798629324589384838226766445140645295249812814503730796310723928085917870223176172765791819756003470947820088643339903420858364051878051102480977170778223314456182621114359052051130156296796096892962629264718032930939791717828481731359648268580573809159257070473961562363165469349452892981573085997552715699789042644727597474001753796531896084305419583144257272090303849977193095932238279863619771964360834076295837477878233138278809479168914442415962845519317905798407149312593185140062744481756759209210534494237154733667804509225984751810237502256977977492935672080239875655561589410083580384128063211727157416235346389660595264350615028603360549847659402454870833203711643750472697468896402424491185781326263984063521946753131351678817548804957137432708656058829392349026986887990052756136064213901216544307567319685131335628918631451597171145107270448394040070845504280639910253553147361615405853676514335977660008590770120642707005735156837147047710068222715676485014893143765103633921597631452643895855090332123879745925696404652466876219220037691811660596195069107369630810241110469547116455249026037390393886770118901831536952133126035272066339863433178090143080494402412392603971579142637406235058932054096811887514377353770059249337317660978915034200717891413879202450549686232230642059323245827228023089764047554280443378186954638675146276102239731683906184809449646271708714788757603933798011729681831839140889521719513011530450109562085754285334886776167551225559305823926986395116635444113293205564210649085342539472548843103124386901514228435297461763802254105530001037637825910630827583038969403385065087413958504759406651395556510440362147554102484978704744144700815065998354745780808910842559600945930660652172373115748266669007256848330563311530793522214211739963050824888299426145193447765903557617470830497093658661601861281408014044104109955497062962148352031367925435299108632345529769715388951405025865417066078044078332851739433453430079140184110240569899781836628071571385119548007324649490309444556775061784323039572479090696582887459465333277098104502264536942160221464516313028913056560510266540161012326607456986022244925038371844541277537107914896454770062358007321835679788253926926331703344217805073054466591198303315420329375495364482374360004091131217309982039207687606070532410636939583761552549100967077739676202647025612986252539806752060542901399978266771678684763723327575686521042426875658460917732732120034154931574179865342891227665675241835202030456470633794559776103671446470657810147932987376151014174244230980407658977078153059359142936861895391029860200918847681039923681676249758274547833139168556559176832993023353871577296242104276333740978142173349473977532148738182490414506030727731349279370298885041416411828519163572688488049653468987597404377368824378733726956904347851574392632876059739332297422418376874276795642054583045027039159030458057001954509933298897094797640146640146539713627860717626410421550841891879861410199677337045246232515291100137605784997966371478607914539682310282087709957237009993169207282745486467304941406417549383523346549692821502339537321326004363323068667816356599469035049610577275389950642940243118423355106988819300211093268868405981812132842123484762043445404079727769839944576952798186146037034458477744573150085267223528265243225549321708940883194764441157962033728974946204325370541381129184192649328760054082500141110373137930840078939796678076336456868349382720630324523043093999445250682338489268003750503668155982155466840594548418790879723505754716238183428057879069636237006820378606437535447516000573527044351131747765529802895570102970954741363901255204383345546345236961708344668669522817759036610507118558843503609639872205600233257796805951030194428015725551146547735756030324978875838072559963415421551312842283077319727587479631681672560107100305294792246133046782285347044123380115231959941749716672685762699307084669437452607255839280406534934614651580276807956420540624904729804304330964919159793738392198620301704123606974109967785777500124910964585505232812577356956701481119024531106933586081508394647322834274097851119644380620304472225518305892804506415165688875669687529272284580134733182998330067326499395488737922650116359956153155468097633833899078869213020047468298199946282812660544218506278211132506257805267263972576628129360569185712194975994909829950797624338526545764442706930280028991017958880600892625073185943148174117436849103039697734227142236867374587735874678022641074447565705331445993414407449043073638280469176232583431543309522644386540913149464375317438301517767518698167113543689595876938626747911275015968159162325124228362374298391250488466326335819025285043745848847188943395197518833549877214060522763966024620695469120134471632498560505316975055511370530948110729834892260729175643420636274126250299568133796769899768373270361290212500154774831144981392974580125499096147176699510877061018791378070834861265226150685149594675218942865390082722444769088476718569000925904338598751361102845382357526258820707169578373783580809516223951439187715111827779614947435903937404776046269462651616385409296399314293263838724982390896458400260239838486669452348514995619920422315749050727726888410543799803050187933073545800429283948487175154042266127973033547120889370323766445434186150532944566788663270273899534773762865100550982720894336819992221515597827883369237011584164938871313516017211947116282827786241836839236858436826448988322013383739712838739881768273561274703960246722807454196330812994185792798533902628743597470781997601229050857573871233520182363142291501684997519594737234487004077261390932248449961840508724748376178946960211132478787524001895123556979496859894921623003060357358577908322251081442784131824438778107270191436111203806138058592811417740536301745494895349662021468115506628440119837742704645541980059741722551058666559773183596635525669731596242505745700869697657590522618622046703756891688712745252533896007641776177203471560306526767429339124852588484249126599139832086800946082540929542187295472407766773914628285210674470350585406755107045097877833063435200807404687054347066275720311515622232777619106655345672689728876163645863689138551833738883067784665687095800098490000460089335705595412740341908087481437921076455703009339387348073850130787432031349550837680052074242564042033160441247208788872592129749631732811866557254711759102541539312152148658685969740044822906914958833061013879956622961311083221544202419438404787605152120196364132769239988484732220943922619457736139100616575094236019337255414822029797843001595335594034351925544644317324695317724038930984309181924459036100693066366097670503303023025256101376673534160368385512475979523834720906218786658069454888253108006340577340197255724764860033405346913704096907847975708264162920978763360622113662896374930103984947313110211803597015753233148831530163347255928334798150529084988959040215695209968863917700355368257168383185967481826003489821385305092537031294380936747094953768952643951232066765000463903210743612904193306676258518955783544564254340871402283671507086074614718790422703706253137446380286411008685036288178953919865503939584449316869410327779955561120021388298678955325695999743568269799528477799855900113736875707282611928301475102499685324699744592934330490209828166772515064508172362665872568682418205633103453927131835764755969224119013186788488278871392056754449708605697847392336309619652964290541097643751153250528746303550342610832157001286460238373193446734217318659964152303479275517055120987554651421932639043907049763751308078193606810068969043256709772627735510792523707340813442942398460072364704987888927767748826580516376341585481490108952410760763838780090693949247227614242837083627217351441991261432965203972253964732565561680171459107027708720297202460162364859233987831252462699445397205217730218968286928895881221639315110194558458576925086023731384168415066177829218622435787838316172226116174972532516026661540206928781970841063818243447956223556121169782724616503748370427593854236986369737524759024046503206668009538520534245918854001307461649730599562142990915750748554431077090000242666742376060880807977211195707342296408487476813923319348429852681006794418014478308942803251613918139995807134804441014078550693064561648263609090634271161184311144814708338194161656929663485427326637257073120576672721099879914392133977278298130516337210046406635223838531337254791538244273666942058523039581341162819788598849375081728357218908868183907364751447109638679173787263295372348200387488203076462985073877579882463171086414142497459840374007175244817603305536049391559370411349400421360536129422099079012978717334333028361688535278079185123454441634972812623698179749088148652277062208629189753121020099197748697527673419791465224752647747516472173088077267510203275135376201583495957013955786915400624895961543599361360865593006302299008768568338781351843577743803525138924965762457977681164968403032267965255033470732081286240186965404391569284814345645766186812329780003470838726257028033082747732860333292594679308734175432805393942876963940623488086540968188758362085824559031418810312934837039590501935256027312831832021678457317452086246481225438547765809856585441982932410505934669008144605496182840229374965648953491504781939021403922055893791626222376115694560428313982793219826075901156226965532609602374058706909706057039045643130487692942786200445262370068230561533081138276046138405396338288308384277641821480467396669885224294042877519606894506094777164503849638636056872837326143506434260383310439935330138640204421435508034107033987267616791030458519588299107145830023762471057490110707364033854882349858555941858477369698793569474493553886652878318410593964586409073411766906438315061607227773993460296243682104795672947438616401182531809284121427629136686973345762228246085792920250599547449273382749523058399263803638146646597081145625721005677848815520529895444112158953334061415784914797060442597236114984262281165274386681927247526184181707484277284818483335880015763329217749331449364538793470119245765443880904481405048755871808199881727934432928870899038345778259066748223352014074216763626145585871048284899300712161039798781627003230729042329237659643629619088095199289816441789037047286831451281503319455584250597294002677344507416165323290377956759385075171590569671047540376344532107509846417605848403654367699148081878285819293674304779501149076500372202315295181584187461257252079565560909996313976092819125296691252988024514865079288547683638168692306184568282639474918107798828915911833212783933498837118484044763227801768203090154636498470867726100812790866393360131147339547515448925135888941676211781824927597163834236860007481754163905277225531359704201718696703680522018373169513148865574397679688135322524347826662508100752542300833381412424174864551893286437619802377562144517948144145752581820507341330526504144656877346823794369882936729200852098159582889540269553885970216459382671780889261343168523132379761318908044728743593766892458177212212395862985770921907838476030696319625801927877137223830949154022179778985316616889519878314719844757805776698418183116307765460889684281417219464815203618644383690320340049740156655912675921091692076037229431778871597220043420682974377113400582561550921122216837232819278764716248884846291134381152817433560783911419534266744224298688736432118681373108462272004217709928606657999004994226061898513522615817551118400734160602629769596232771106211009277323964381543787364262471457671512065439995737039363852545030515515631107857532764546260454630172307810035167640664957511938837443335370508277524415796315278956001549978734279308738065613354103163084216199499075611533180431515218750171185130123644933998914157616893992526768639867294846876762393542848423462159367703035756896668876001274775018389061178329087161374347231965257917772247381685630187227975898888568468933765558367842268358202138908712371180726462229416540484712330544523052774829975110771310921319205280913526497338729812209205852873731980802528978907711997441420791569138863087477386021124083392479073789585510304752609298591452972255088150089498345968133207381772093833284426309995979069026389415425182173585205605095998570384631723049831230730496245148174736396695132211618882322969515893918585320455166724578133176597609580070135511704697188038994433458508782559863752260423682628160122150559681927739341890018583895686253145217559295073255930279465598883383303533868405543049570892468037160803946805023207621227084681874425850413469064436358134091168533874388582079019726938227893590200512534424185265329710014403981245336768151857056869337147299668597618428900119601082341211107103805817929638782291471602640403049759267028416473315193617662699078645648911609127968977370237982017135864353336122260308126584959268867552688096197827132331058469783350520962026604164039388291172800246866769718191762771194118992996098436705193146298952481881788609380873258336636122668194596476136367328536772906659661797806730074769830399806321283406810531213106158021407044295698624801831169431373382057342077124207239585727953718271466512230596067226515246886950665502147375371724208737712162570171533854535424594967082294653294766858796422206888996120088216171165649898558273229785554211605260246674131716894296045865733361437406487029578360228206229261129255142906595169555478882810020404260682287641933428771320464397132293535407190779715841585591501398796346474209802767520345458785378053051220438512851951227767539250977135202284277883885889821046315234868285272863261224112097083703785226124440616962241294126186026533248042138202444031151232929559567455531246300228016696470488833828952230686837576483178965881552261380041304112396164171768218070271405264104512327375029363412239200341763289199080061635220530224047429236225063496026034188562313313904766215122754388287432904898526331917207181899019366739106420201784575372595240091263853840241504721147247151998011108374178817666342241084074079318445905639659715961043204326459218749579516802795183312948143165032325295183069920823065559072897437370330629581679774661339948446825584121302067700719572172994314021245284930889623945223783641475096910232548799412358788784991740568027340258420492531953425854753566627107174569308917407445329598117100843892545459364163079109904265391934868837386120499935152304076800817337248912150883194138935977112502085955053130350240363881279831653522940834457639641459426640004503252464997467585332833038101516782629928622004291162363065123444585853357114168445574069337149484427503789395816318907456510603373276975367105942040812498980525659053565452477225605408008582343135388293335473502103201370663676461908994227999357704332610475642043408104488451482167508579619094314225431494375892658944850708442388313639740203696293490299724334441168712936487214635442904057768176181875492574095497441774266627793357997748774505640142369612908517851247555663166650586451945264148402592028337022952772577113376046199076086507562788572752339517173715789863725701780567203228838232927448172907640048814032603479720220272311642810437688385921153592583818819969184982610326020104923080475361037082371235740583160385680626779245360481315953423768928374595815909055541490884290688081957198401358749532239060935680015725161775749743267671713425489017048992613277031950957489151572696091527002673255413241207219560941196109606292777190845821997354480225884224307694500519284115229687906141417026893786697150889961155957080306453463442758124728019121364624849195058765599187760931487022983263889794309254228927411831201138519778575793367196042225677576474840330691931592330925960484082024008057898252842652963618778205383117539373914018114365092490139839476441538705815032425195405051427539109799459249197881237299154669843119381080026999104547266252904171522379437244269224624900275982949242806101099385419963654296331804824459420379369680895462526669615574326868779380944035013098818532551939280471538832559578920096147269901612399469177598539374101512049830578680309060335491536169752273523621856989572468133542654158996697915176819525231767197542364492216339485201799002081503996290330542596608258649897842019743435788146710966255951794746001626410540933287508914321340958063477657278811261893941503434182582301827706269498605330316979435008552718429480624170446486838516826389215143521344164875332107730364305889585485695640274890342127533722256302560716309792652592020641444623263140776726267603237891542096477458550195789034860159383204067016293324280681943489010840049159987887306707695597234824458612418307016831151285785301182223044730390462271034929627223088030161321364435180903360075598947260459658423194023598989062267305053398470873821772381333554634622156038644620719619374771633968354755272927449579313271377780707486924605260651068735553845960034253434395531458195640764605954117572529409494627325179242973474365743409058991476061177390404592621086664901596873884235710497665974892053970465671989675455886324021606920367209194217049990736518650723212662444898704610323712380734665248521275381805967908007501477123771752132170241971287474299242914275921577684253957803304961238072233860161255408498955108739065253417342846294916536270710157340619043113371413736105952580226013967928950425154638148504814588832102723733419927496568973430371591604309607974720550190371045983838234866068670002882947515152915819275176333758661091244969665675346529903436532781361546435328975025519750350121886227966383914181221950203370397773079357420191415253437159434006474248137654092790838920747236291225281831668081403929865961990010323168568913091927967251439309991618622586957723644727291930720110306488059732970241598454312767740049850606208026749298736706063628007591563981513636797068881309935413436467801189554482633281176876769106004928293742494634963909331964725806467162991171109683868501955581503440854467775715242101010104392711959154660004725078115817548141242277790804347309406987415936329127895582990031515765305775612657700656908210072910812407835649074818967208222821709217603862927287432328697158600298054925876806512844528613502524801520472983873536729745336298161343983710166027045802044626783847118826858734131481039341114739672947675152474711274001438464591388801231003120011580388328653946781204362497292884580799315379816972697978913323873506462443391467534823656314360443303886988848980381285067374243029125766779712837392762999975101042255753443580069077645875226057797455410442821405103367958799638030289401480258712920847296993148675282087137895354665985401119024927042078714036846949947770760641315437981478991213089326074004343201979116521252262095749209250795791590439879542923961778496941529555772853668625648599210126308538541288430942375748721413333776140961258236935848981127557527807925540595453236548763070489428360043139319260933460794403165710006485318145865498278456343575981891877276572281053967699333936143775661370949265611475798749097182248304905996317238313493893824731356211776477479432632833633010509634444223114041315054829443656485917275703392913912746374651850329425436195494899627211686380737065897841542867387251723667524820456217863173331821844526127692593263475516446928190590937595567418675980550546386525925340920457356302265449042641624738815842914044052876985901298841158182322623476410103800418902338104886624950533938004803646488657699450275005224407615389017102846624427682324200596839948635790623992186329131382090508635518758322559885890846370131670950878680195445864403965965633897239399956175596219998633428593329828970679435079098725522688921922032900175045509178570399821078015090667901976679715161292893081509001561579397652654785217315222741879695461739874892382112089152872402992271458170757873633381300817620757026691371976945483883676961349090120717169203373310010152095100572478105946338898106261567846168926400019566366759328088404596531796171071554091085573915007898927803730986292082773155787421057768909027553040553160387079774786630910358529018586837359213914017706478432829489177954857479484103288410205102702012128588691105259655095326530995840921397872399276936862614953762865015752846140529459894999052314074243683397704329964355026332772844079750717884751486273300540921744334739980195581157470212817368333353193838705981020793661903603711077975034985295798214218296050531137413352255804555063795539438690808095312957073881707488931635684292922911253012141591955088272602648695815298081550381326825126066767140458356170313963815858577517823638650585835573110322992309001834180892071071367958842848450587262183606692864045969336586692711947723463388110074204666455138588670269868403543837287217074757015059775692271163627180951638230993513362791672176753435871163652815392222888256307116019350670252181634275211020713850143988697087256168611159262523656493777256438048709762934880400794675440040772232163742906487260239307198396493583499729590215958523581414790583239406335276579768248027699738860629475294953725218512005780240640451580354464915079040977124203843098767122333355281747450296301945095870720056309005686322803443162483486049169471646675987273611334433544711614437986688218655585619473851978106196569243985216783741683300818004826753299919384604123837750198451268591727852838094391337816852205419036533339738811721085440129135076729764004875481554209895486672791905386832167635744435509515961593035928632584949428026564087715752374332266084086339533039913085467703512149728991680085663892647084401973962469840298660443648902527561149969904330199028237550276736430783449717448643586730830530065802255611057119271389593520181786132226161000294442001169571118016551347583633815930836391062304041652148018011536508702767291105009387215160341323898823105761633263995379481155030044669459220613412118027036011132690527221322043267391831947189010268019629535012832155813778511680657012888144282512214143451151861304503913646867452644402451188017530568226537192349092115687448696382654564287749760563736392812055923488681877857379287481464177105271156052906212026225867403704574474195166363504817783669854189865154121518214020427387377189129764525257332183832566761620382070594302387453916003695636592439971036778709112662254778651014300620269653908532544070925730871261205321193448423482696167864337208114551011053464212718287851211283182467105582736051876116787057675140065141673772310307500860723634606099051187624575647346578653485749838756292399389615601006301987237765976557689421744755482239886949250998268176859687128885242427424610837765487819662197616850439808862516048961045994462949892079250736266819842352264797683352388993342276891214001343456543718470105484259999234076175590955617936826401850838211401094563752414402349199886798993325525679299896034304661687549270098099305165119813362883199832932376386042535334224788627893925995632517544936664477601751295925535069351805797983076370180048232374142976084788534908713593033546463771349220578236476027101368101504145163763060979559538835340812094791648645677057649957097782154660699608722827828355015307751560528510270983128335729561504991637410695976495380366235306394795397994672980284287908442304127151381343322407030197934424403116298895068455499615447251471592372006460340068080251892359933080941756224380622851640739762424112121504725454594567025355895812753350456771721270533490492233761346482142177251670067133674286890994965501219241948634346045901283349089086827358228620104832192957975971043997542038013907819701965840080512423958905297040650486409186769785449274695560733764338334730617199285606664023771889906255514963214466214027701727392745255800654354188444073157735991489352762849387854309140362796896746720051343293907056521356992004974997945466163749537035463844893006682079561754885147799063266180481259906686353364093210478396150709083253366842407020156057592944799853669830031043612522764611574250161739069088646744533492812035742381421009510097912201715571311132613092338833259759638736788122991346711677217258360094490896507601069155580907694554220144850905996447089493536666571118645243467011300065226411437704027578821627742618773420169653296279197025624203152093638419570210124190980777747581776947151505179619332991916631190232341887497172869193363368456433508510216001496360631755829194134354542638917724676059507142129053703610631765597704864235286245948631899641285269833535484881485531573815522005959641640662624222698399037400827314106226865372412808547554294633319296122121003463081597332235902461019129515994909520127516181869321830056737744640830453972048307260214171647721326623378101833606486430880336382704957809252796927670933996901430261465599548644481778061113500624466161587231057223993550227063604985948679198041351136681148697056268026979814479492284895344115792120397510527586872782181314095116798476886728310558219508486244076302289765723921916616073511721372854496043125127922608368489326227860189101588292364466771322367811030570240517708686059829571530533536734777715964357624247439532341149306287675883498924722194302440930257147693882254340750387258697536461042157954175664014478954510491807210907037725831762582022624233151918360028136211612478715207929660526105754751954191101570838832781478090493448582077407974563752485752935178544115779052293106478630415275787734181173813701962115298395898492962097157324102340370435957369106316131677330748841800176119744371289275091440187938287745024282820877088514428816462133188272129684354424373230799548103259776314241920677100683756990947252988114372064318616602202749642645911174128984765027323075436931397881175121202083289263295177866434378558042837715604165147181104871045811191930698606469563864367827041239630618965032317569947496494945775512174265405831681719199836394860396322724447684531836308253098611845462307346332384941556715164960753249952408604651019302612792483269323953001412432204849511036103099470115102162585232379283381196712716200067110488634142572235042181391825558618143489316462598982118819872022787256452009926839532279285801643748197199731751144001137725261870544979561196325953221237847805795454550583800019208621175420092636607801763321485660798406658497051608996591661817887312130932561464160739842065601887163630952481423570857826097166006281072196074241753462958755765739912969749436058896773064635388438057208389686698962727343914420143841179566095960463865892870675624363651243168403731722539879914393616818737141486340201495984903918259059576286630477121933889256348398371812435775762827786630660721048518398906199052125837104132157678419328950192688206934134002622995126462666621635503749138722520187279102977349932605695870173372241743917453662824526223199163080964214534507726940873947978124469349474776062530628745756953954111343557157237857248030582287614274465281958932242460825364923526846913687596635110960177045471058370806817202525113502430782010066777236231731702004151328298858362684654390041856217246995913959533276974643482928085456863549916242092198431311799639189686132193477554216041579711600573242138200472521989825904134826821123153639704878420872434946754513701511818357534989173904795773321695967852971316202347118447389000619638840484737305166385998064705688391964630045634124465591204783429979120669876616582597011630442424612384370887644103308003900767858326905280217237499417766297638923428919622734188795620386740740047404327733572991195403778994499821992062849117221090700735520692451647760746587984404434547839959171778041437182259913019921266966154537682610793485855100715201149957342501701357775932378549712466002505595745975891002165973676600718146751503188012378100226135863662738435801650926200530556701273889006537362695172340655487501499833585869712100700338752903215357045858135480525431224874355947953243849131174066493938002820056566595167279830334249386581145947794798678050481660987531050882091064425562109501407168191104328932136589995404781764480035960207482213195104278251622259555725798796382450925814025047758778174315703316798986215610569495543498438626815420129121758371399727635675817715721102480640933643851358417528726739394357878402320376498301070454774990084644666724478806047839143959963003328249315934552844249636817350280949610048693243339714676013067759282051544248751397906059190905771846451745433209714399580244421297086448583890810857696290546609353028400375319175174570923842200431469036723975494596966297251451408841340122259076502410651878242643543885417712845366219555107611265262254606738060986069429739793260805392915624308242536593416699372146934738134839773935952700759917357431416074250541005479557597620256257465143383314139895169404726161384432422045697576884920438151223434496892933947631394020811035142301638849860434429024641861823439427734589790417776752995492620674707272808803586162055764316743742015373078286033063533153029406906857679257963616594612570068968157443019373788202637893212393725599165372869519303859585732453339091292357844291826387986600322348377968214271811953355662238544379510973519866337749315057117201200719564852029203516456078163722569929615853517653392293744068516038490292315611229823914990957216084779158132297171378350142848722361876710335480498125250063808497428953102967699626476167998939862878278277716765332341223363218283737910556952991534798078653121796791380294986521011308384512111695399735155816868687227286582488594384670428029987086199566897826288225912176001890709964807185033251734918431306978870344804544299606419214879475516896101685394863661888017388072350054034688453847371940053465840713879398712430781032989903610771607553983025797730139129438408033817019374754700007500998260324095711252222490077440004926290948190238419046542070752990156634950412248581120253647328092547936741276921297923757283174381042961913205917537311723271391803904044596056401860909033385666822068796696906329942242391661402575820095314080951025239457495752544447063980330380735250680783873001744975061293447038021548483583393771903827139321276362644485556303368974899827481921476507867084016986079168101979600018859761568546783885026613869269953158223023324965692417225774165091770286950320249441131025440049069881868219712796258599009179224047147821101257077918668909879181314930541493297001570565404583714042345448361133551199037963636435380122482520513899809819779107554890520105913960753905601842318588848807670764978228849876026055376172198373269891560375222168385682183491751962113484392310308834018933791646477837099062106405249260819620454148158547466243778637200089964414857617702905069041167916346847766595819181459913950753712412998443491055003015243182566402683945292259949207075356341075350238367129605445949623497711084885840362133917852199397454343635362616629948959434581155493710472503924967900616561186981473235870997636173995176674801542142006184740634835396056021443786208989188328277096938773054887696285216548858200437137547362676409417094880421450304244313087968979751161158170123745921728432641513948822323955914968315023001619885735924547708159090893018518619956734454562503649962291287251333671714258705207070198652619498852442951525490173339992889945064538433136350863187144283065487268750932663285008033479259813834008919528169940883216708456982343840211314002962147762722350947381575243366710660664703107698410571934217291365849857866640679258714354723935098219908519712074221979521112138658073248690023963742474049907315418717658832327755859933748662183823939951126792945358627232935834938913035383728003019259291140582894193278212074229512246403150105409498493171674803897139886476962118338869765339150418440316309258372543145496841210414092388889940764262144252813047842289892020869458980285870727191223975152548714942550082741614082197113158969649251441839703430816859896291849357193028610573432609519232540439002157156506607214828167916210678023627553573794302357019980667657700686390809500431747859642384128024031816965239923472538440079035109232489454459495111198636693338953917962657735824944325166775363900018783423574086960602547047497726426489208351586598017316843749707583042781231868463416499891152125501637309728721620156208805681421024433276564500608779903311544311731253324192137603702831918176157507135391589220765140367099084613130721901620960751768180227389954334304856661185058335872222641374633757773998088437383135031741430140624512319824568138772438262207874212215957079051639009178617196817637373992571294364613295791821011080237139322526974950853976393969502901683673199756034090598909549235696213331311387043858696293474707493128894638579499368451734184338838439195461137641443002610383978746438689500113341043031420826801980089971941101506587556738775435659995371612802260646518868560656644754035834467929232546217694356649760591988131705353665776655523055973673338184066093395716493258943789892101945400856788988154686672054477460633723082075999356779587279043610527669298719179609687058955216748849537108185843941072224809785450778119306205928408348992485401516141032179149082963335898479967113915308625340946581379776731692160092250316131666045770386634485452945613771901410865021025989089733159180861364306287894210930673862942126170789480319493222723379756306628845505367143093669336296337973126287110008651827901108911000012826127187690378967846954188524225271982014130900271781000750722824156486329285792095831225290580778489761053499298822631396924773908914715291422982393090880254649681133290834578831309789506708614006685138401131359379482402799974190035995124285146376780890205088986695917878343618928467517472248331327917728584073392137928066781641288153691750498083944193113909071543461633352024071746392884623049213523034871195062667545743628591276596232839692489932219205584709094100625275104949470296915575408012855422146468894336738465454028295245225742958481168288878213786528856293433237859234102657776175015205788854156824200391106380801067977078371157846444684532285913358182678481177992632620189498347916563699017425983944064909313394271609362764557334159912859909598863737578426549866874965846053981951247022131590581622131418895932175756307394881981023723783827130131962402502618975910661075665640511987203195344245501349232784279988775369644825435837783289400517371276953890587585542516148646060243973493133778808462186277686155939281453129140115822016650820044859473558316574871953514762015201824536776456201520100985051415373807545231803472844454924285580878473215972281922574920256531472211708295454072780294508284461111766395149758604963597778754916691714217232526181318406248625327920723843144595628151644025900235403255507010497374240442147440642435433985470784974177300122468694056712050739512965997463051538878994798859332779201808206678583953529027445245889493651068933532731276204951685600173669634230368756352799063931471955761486271918189995076836949990874091854536417499453468036083645876805677296141031017481408743611925865889846385977232131802963788200552732135320721089918051007127003439236314175709975864924472242967617341491590947341167254362441050603438025853261794294479734466914295551563468678395285663656737797723926844004883068194438353355293166204900151900525044258961000935501558098261688630565768943532798465823993233842796595229241986936430626554644231338535777973497995551544915330454862862484091563135582105025281781760485437015667310908792334337169996100772131494944056040852597635974085978886466869505293491448550811971159008607161477316926734983613222003951339380891991743624590015539534753327109125560201798092887150253212241892761223203813887272275511062960102594916840287706556454321390519367685973882590000399542276443409335522526466314776094864162490716651010279221468933465729019539818525753894250001978027174694043047313118628393191950796097588421758011885768879827016316172983460728976896957374507096158312353754993305600679314406909075432396472036920404270898224666858498915053455149033882860541255368645782195945972307457536541913059441911655961228958431561922635796729727239230456252264238576509103985840920643714721095984815796665060241539996125385753276218225838347976890547162660006612950540151461970747421402548953099312265401035789955653253101170433006748367295774011559712825791800243242719411121529085676885549813492412108438405208673857573251509152027507026475349419296620389613308303355940568304524842071449196020883078386849124427604764875560502398140884043682746586518266837461148487403223108007859420300827670690933435135148720053190811834433748920948515830921899281730667040485491696138929584418088555836152150792179816604627648515048345653588457927554326762400721780975454509810905594176100118423372874537352151824342159153817176437810775839678524968023362535174597795141359143022730470227359168433820650604936393831004022379612031490560437553711586178070802010145549170290382125335234871024214913983937453936975191689990335828932837287251698360193602794216131858300052340184081631293857973128760046954948130493633321350215132613281609065084138933903102174662404818387834747347733927855089357985689189410462977640766972593305364026841972356145863480416037692697716399530210310562558429965075631729145587942369976726104394254251761310162871857143306700770719632316105907710787559910541908982843105484360038284471341680851290884031261500942850735350048507109467435149830603351583016127437446561522939206705706529164783228966276888565371702580133239339462880969688020631914534624052796586931076518254317904744631983610681630759615814386141774757876703568625456551854351046460073789746760019383149178249676067212739403164149902454777962364879771130585609136938815367785622096431068026510318569279740558367004666729609432105516463462289723756577387364795604084237310628212466780819394328413875599098982155682144217705302841604697144950391023905847941769188058431139660614901843910615336871706556713118470497984435840028429456702252768238035056085488085924844883257235498085266924694539320493027095494917963548968150233240991550011047715327386941427760987314196740997315202429579791813372904142557472197010018526514296182673358713080751328027501809371426905418834835084656508262115629874521472541318581932523220631022696913330977603444004876338619330185552996515124548256238610953442251488197197832419829911144004027259690189620862553258979256582320316223220993259996127516338537350372603990084535231997006547734372561206298896813319770160016067304111311698881438891648740198228741758837644426093232709926253820409525252582390004800219733745579591363811885380603955048146126325602332309547008868901093216332997103191317787255810460567490454156375106979217041636515306078617321703188614397444558331831774231493700496839572129569841970428749445214305497019536091029138615743528747986171954277388028253763381483299123683876976506311582417233953477493430930039805845965182572555831913452799768490815893401268008532350901754400006661175903233077292968221293437492528079333697300930523349022622193828207875430587630233024133726620998470550214037842610972648784007551966179510388543124637062466343484787065338170802863123208213190942616462659228985299867153736092656099704853813826578856560534067439034799039799401196708292403170528942842670492911220909663470661725084094578195967028412703277817726119894003043161680179332528033292110902793425427501394409568115333365979282529114275851764849436877470873456344137582443095589858266587687887179306568920445815450884199451865594411748024847507551457668133467515900340269334428742891500040691873339534760051805759916906587057519519892551470427564331430895084222640826104246825435979688880684289511501699948891485844720838706114783505579557711948613194708595505695839407612651270010123015674577816421142018698737820040011456604747785921656591357748618985388676231401121649934920839602345044354058012959811981451269438578985551679472257143197372163632596266405490596390637503888941860815462845038031432390611102916558828537645794979003405948200051239039061709826483958543358827194436573501283570896933945293467294610909569581942555572493739184125961198969937812260872899290258318631042651557812790801489519124815630039222072409939021856794190947364594593580632872657752522868359380255397923742672270170432624983399788575384884781585770871583030404177133975532851783752635751659157130377935753562662935981213450883154862936535170065563123715470789995606401225320625078941091081577610132473219139771319133722568594885640111038908741065733910167665451644292100006491436717185044726546288853071873580218636066194994578397353258399935757150095351667101640871942400648670993755805627402724785631644557155758119350056527083982574960664014169855958765896470235078975110706699715582976425714442145066091148313820819107930653980955122291233925646071302586220397924292802622390648739692188533237077581503496577372062136610884407381424367008151059366189849778719558802732286480481366366782848316805061945453883201656858576206841336365800471393708969834786557613021993530546428895925764218659270271874453937163109788449103846807609505291907934544512183770359955877560126800354811000016723977203032131645441179808981149734382155317772827312632400715972250244082803381165631990229722612225497996444805416418436878627530933026444918502298643258920089648867833757446266601024387808403631699565383583553438634411572314154942462159038492122114527225238295661487749453251318238436156703367284219099001895085236963752419454938552280374216393110659814540169115767320352350396897701050805132499653142467795810715100052593493025973290518465044403967392805891707212136740080646898117649208510168554215038616614259044444460474075027720374751108612759111601661620120679773586004461223582170096280845463013532390564842973242887390522759452242718341451615001868509942159848710824502546829614215706848930543479064649360528685369412935899390897344758733719909864484688837001586597308809850013113919647067649756518096733487679268744873930766461008680374266293946382920765121568995263661986687763962556719667948888484431843937723424609198976078982168222596984074219966917664666623400122286128922111851685674144892112094575221689178797220453681258478692594610507762620544656078565054665677308298000958797909488092552766941836643095481727033468575685290338866765843436281107587916596831439372753721591347784016552662787192165618513125072247768127388513776949810410805319487262930883776357469798693414945490138881252978092689738305903027272456634491235561215472530901204361516030413825171101638834417366991197003904866090588001999451967196123616054312250396040655681913511445525844099520161236930503524587944378706041453711088770364485146883304425673911588691665156063162391328525133494619144264622355864525655619097441615849568320466446909128566770750382583039386542156078260249525523717998843667388632474532341213707647837883332144555700698578087460479899273951608067628594758221156795281139665629673333487429802426140219408769204471361988298443203276246295902891892890154875272735199946294372105679862762899424309409514484988284201756380723426823930034374349922877841581691725788936953525062923113187171499107421853934014287092914689112808403650687377606064355257660414553955524705460892659517080154314396825463238145979058100332981063542120691042406242753312132401402425521331390891958024662946840907463781695530435088520028100666567367739150410554759774647780824303785856770889020796819635728899992931305713378224953054391499128325279884389898971290264855285123592959346804719617724983618225206959202091747818403848523947656173000579039698944715606548031060887397012226757502305424824576478842676932173303695493261853841059325846458137318820089778348522474290592516313474922325308884979114142625823681123038104935587707537891262886884743830712676948414850420230224219017366279718710113416346777430548882843174999610874790735424605221283051661870329564156562950776097200525433790732566560777873704649728412632420161618384790988339054883053720624685192488530009644557736853257857812126895959373622609800360834127127525930064838077404802937623540938572966392588298322575225088426917570311846614962859883210343385766505214374350072733443253491119986190314928626816144970510499543098131854286760047275850768436025085590010138222900963433846911037389804254782443987823158783163337987263855180173067998504728750228680709708918965411230029559507447215564240781941336428475285245860200589452238672415915005358417378260994979713388392767160957992754108415151059110529750101770494384712105786774205180284922174878543272045968354362297651994627248462182698777780218084507807299528619744183107885359609880010412117730692479857113188837480315970572235101061684680998431321500491997112373570043013763661029976291967312315438571602123739751092505355122609212214043240245992624163180360009932943721317930364724063877710015171647983593677446889471773153233988623378757271498886153257351182902871877252997729712939015464265173988668034115225808242241990516632703274367082793265720172096484724916318036906874038692253189069673952686667092238907592235412941482023609076320586127718588389543334392513240078634594701512144691838273124284383591184074642942461366561797381769160704730394529854704127895984748585254899444425768877037029593194550358274474120404468198371896148371830986261568438960682937742138725904651074843197571039147206750472944177378502544866676708464752698935215962437940171817964909006455057145996032493000739208341329401226925240822372859197428789378791538928881280859939210522773898632101060259831164860594770680745273514140500861700720142067760758016478685646925908785093457395423200427651137042225281910691984329042742305632046042120818789523678212173014100167174459754172087521303829606806012920869296153930337158415566564118998411721552341489341598449183782229479312429195765543593568672450583038417287282278112048034495358167942610964988560517480096880935650370439692723751263809187449929062763769677040486229352731011538955728650283427675919906555321630143886641372403215332773914580594502859620973495896222349048617744521765068428099224815846272565690454807947963845473246296739596578262943118344246265847671510295837294702953772029073629472013224587073734930679716121866378984094311016121492519048565920891992489241171711746391836024760907124286350774817180593263901471810950571946080994919290038525145581150369198551399158926279505735964550576885161292994788575402451941981322239023494732963482304362251003604762168652521946334488648542877882264405339625353749798525772917767099793824374214244953042037266891936145841129426199985391958664534643595522165769371837227844894403173886488837890438199772148969341607326742818441951605235866196063019960910178900512236836930734287005962076879044663677730579237946266377794074912027265050749265210011693854698838161836000536920058517447911580361187745334564852187268337536314392420647380001660785807960988402672911163873126184726061081537079227994219081829494050183631389229892819794717029921733524761461929704798613397023827604644003493470763192351130568758271163111787591473922597432929302745769852074318673776074344915606199170463743898416678633448758479920590927993815701778504458460292228726479919205095366842610792861055018350619688927713267761313629492102103195813233689450405838841948291044158065027644840810660186261712078376167606227407671957222930267514298201761222809358435932873506279410516983258137164391120130083577629801613165079296154417442988028855841829602191065578633115195896153507921136328847671660487962295798381727295209717265355069285827205482322665230049413199323961527365970180483859315103045514038282656663416485207353272430551412445560878387745999813455085579665109810498829046493088476671769833202333700072201056231879579994635923418848957157451431100949837960088682880308058427497458985794136316364702118791117976327442816626966741274321973931786658012810870202066618521781577235168377124223390477335313250497367704147104981632198847783967833748404376017721853461395165831842607295468270972092499615421807435512773137290035022848927714429757499800352988948304225382858403955453982978366031068922043939771924132670501380504382180729614710851690479487238420898616695697058593835668481922084757492820263324393577001692502189544119822122922756578439835084028586725227624757902459372262398596419207954771692469923151336004457693293411469283917031748386158705791824668142007283437736927463183971884048424563824322028670719542488504686774253448806046101247908031773706086281569205411366669524721697663011546796015022626319989306650729489144645158018673092804688254892240840745219849669138777446982540359078588505821421141707330778590741328826587284630497710186108833016312049237243704133449367398565964378368124434770620124378661438749160079078754492498876359326847129196228950639290049963649964574005650415624020183561156890241423162459696587531987950172446144227610113715454299043563832190782331917320549201399725796209280010982992506507183910031688595283934699141189380029915688482910908716618881438989916156116793160808737614163365997717327099326513681269698917783441389459521851832756573237267236992220267105116664130573338180518222471397754727005639039836222169721081188203697894550875529875604669807346429794519925097087666986239472104357916400260312511845773033701411192791292498781028059342900861600052791660699111051154393587809632770427305283066215305547433657495406971727501856266285598409391542101765794631880144804186966749403965109525812771367089935428024772935066466052864057949533346580910961193470881537593132215211752732878753454592026388598686362372863199483925532538557261321264330064559505218785739350375023602350259253023654682453575560814045111488731929569611191345275720471505211580843920345199074059302306087144263576904039400029528807608116820229784926181341569088889154548812480794383556006595877173813527370487385459514619654757383557207872154167108971505994592027934984404053100850373742683951374571632752625681185654609761617793699957711569489145775557168721807986998025638084003969447023638509972852187714697697027865634208176722508094312052264947216841511440651964879592043851902286638866954846347079006309247495504632625135001271771477407813440107301705734694797990257099716613954664286048714546883708536057299712292980397372537333354210234534962574175041092902314017491180982522097892466279189228210735408810645100671173537277935108118775452632873143384499437357428057323301434859106846603299724192276385660537361017321093578085362508412649974794856860849761765953207779008600058975433726086920321140708243142497478394095649813074694937569851993512798208006172129544361579160264375062836897013927430635742023213006809564058614619626737392106242830676892863482529683211727955688926371447504208917641965718433622047762557306290495937556265139881325622842394242763552121340198477396869527528110989173138400363240960440047770007050956356520340126959590308815191677875438693052217163917221626535403359648226558500372652004276410598698397424915742352519854211314753810433039943886998731474421599102240841620355866599376725448099504684624401192001119998720674341260225318984791206264046529546996703453672373410042619953706043796540274707684173387879053848914319253482288432368124183382939461894482424366350082938889418595262489823989258555740711492200943230524652958762074198214577756150178067602573970649159945497957931719935167719333159601216357375605915711561801532920326556652889516647797115437268223971650842963368724106535510733538200911818785597996249325292085080087780202961174348889490279705703554158601328894107766645676862599462579457836283698092012933433023493418235059858691481068217914925662220855514706394134953164011232453622973448145469986583935309674789261412185625665053986323734318412579650675680837464658654434178294810013193852167853737369156803038859753334339762370828441434340402552964297881855297280223138091930079111570081194158136652797047131924421272187904672453016093638615254979437839694230293730116749710931116066266261699141453188942698154878798004470426933236207812329157355878213934962904203611232707872310225766485040012825600371398389512374811142101784284096808869951405937293712665567234321799542795516582437437725802287276951130849996067069874023387512534930440994322153511233062236566529627064465754042611610229684436158559629432099950519473152941684832894673917936107676452534932383616364272120407183812881343499959777680225026864507515592269604553851719561468269237415089203922055877675765258983470809316342613799999150501495780004151659341578080791100340465916727006896508876259534792330872206811161440211875841689931992069981101711744645997366629447382961347414011221755460876698630031226067454735008913947856030594353356873124461811285407291587219457232133755574844328953072717114231457829117589523494129747403233290994062165949169707256371343884271977920651400684201815207498539281045017932102516874135232814643087987679057053221748297298308926309972398387355557038407497298386767723103973126421978785496566152517277585892129240242906217878072122946736273039962472421262616515397783611557352001710685962282864605869956666807551405539235701009222569043507276043668521887662497035141727064866483251619231937046828641633107166845156898503771448933633287980338588113775688234534474091499541395847489099578035631504438928191005612496785850450593564759699230774687409116673834225805375084849290571209454047956073619021512446340773327516299156600708586651851602983366377924798570525029734340939300124535827151326812689565126435770493022698043122951871971009604136454042784907081668248589067444551805883803757812562809791824599281108417402244944004657237558385976388528341975299797072253969347356612646274228618635695225516883982667896329848593237359881381222323176283797705617436579807257407701056774132267605487353375988077919724204881457735856181734657680030189980330698744585980140270004929053461012025070173911520212158933856941398926842356283645273151313376336871262281972165668778593806511700020022320658987691344726765080723626113790357160451714299059413305337814772992138737773667431623526392014303110115647234275606360851390982799294521201760473235250369093964594414613573698485548185704220907781137373448778433411350217419193078698962450955674701259716130169900774741635522915851167081126637974826061515699234506440646550162382589119700567547970569606297538896614575195922881070530063905665803342076616714256175057721231143403360772614079437343670779155901178154700812686284675934062308594589443793661241609865794858348404436800323546198603942629227122271070600755895765126831259622175453994895291511537856893860532991449932063231147152681582728021674545098538397255396127928020140564306929157207778495530748685734277047694279484124682154659244934838227503618301806284820346012593654179287337848218003850263704896363343483109123464187862108959244309954579164464703828641372044838775216983675971043602127227637921968059466780941058521426159172481890240966990714810521711847547129106774539281315626075269038331372046432135940704078790271344161541865473763725500350762413073736407260285633634237189939331261965848993211610934692734300839305268847874149554088533535776253928340505497509375558086744939868896642786614637543177277608765737302176206399034127543407520237494485084494886828613901762061149327732124229181137395168430533797837643226028716073384245099053325810948490436536429212948080398883641995290239676691777794454194375632226557047999170667066651922110719382195757956616301833267100858472874408037359387429130186359418588683307485716799542369889469246210176510594656009995405038931307547646619145620512170138632025809900358224265968008721336224545685644681001821039520466343403853432509306778600082313725898652473430364035174302082827117981445274165163236018821675625736464840159426292558660551704277048492378325727220065014214344560743560503265543345413971400000525732281842847694317873702215320627329176881919923675747330394648850543745344249487557249822191389704110957245023196606844792630289861347449986980770198994777967050454162491220883700949044166472875188638878463052728623367330141677286309130088656834866558482037634778165120484378013523442212163971434870361569183329613969416485784586081233571133842417079165306869132314681726917799623307906948291347186385771011129855180006368408412967212266581204210714178668491379380934020309918844182883807039142446859411598677925131595816826659843916230383699353622457334802856185989581212937892525355674940074738260941423268671800020451430844945615311197504154500902475019405388976117571722428598374272762644223262939764102736369987049663624740521054869729423369399123922888914019308756993068478749780339200090507780132393614054930561876439187210722224418729167863059552917731857332060900420886851317720569086389623993714055837928425949126622049286069389152848204347395150987272237267192956541861923385819019432300827464282003399341288070782533065381671519587396794129463065990522331859305347805835065396677306319090209339315219040933917750643322700570645735245738468303187370653248109546333444904628987821755001772988965200478162698185246512377721011715385364292751993889948399910937993950550945956667494098173875136281042609305307678167759036383645356401912587965574455608896909966684142763525020423625458432627493179160270598420386290011412762965399522832598789968034246317103092732113773407788378441672308923440441249877219254675447938965552916035442119928310468039001633299962067619719399321996780433610317180423329338766337325341820254436965708259628905898226391699933398295708632495321405229050949568134126300157135400447882523256950934793637120772121112986228539836839312185577029642351781335167316903653577355566513836804277501640364454590390932414789445655734927920566634353808677993484581925781816112233003924715927182498830674051089919454006549201157107578140371052709868445556176730469540217421655901744946585818751549174111961415244812575096271125190061702950972820983197605908325650669464578065476179886479134575534762704576247769701300588387647784277027609384022234718082331909371390091387763910986941484014278578450275717880472197733432276217738036898889499540312310662052619809000587642305853208334094198795528064247247311512084328725760208170358142695736891668753799281052224981822432645683041968176337087387128298643849680967584007024562303862074493815049219609046207683762315756031650745782655738935802077980512949031280913880362023458245511390189172075362893361501585704505158547208894802598727158686702280400524432771534382639000755474143983510889148465570912384753425202322263552669356867356328473274332902554852127483655690426425173791900211345255766326439181207026038868481899811616103507430611470710732996464247444018474790446644392385191106562900544195409277408555595928112607604928722725698342344260485947704337506361960085954899251053671380671526649197081021712501102208707807183626312883225953578826415210626748856118078669655462469002522549109405779694379752970905908340615902434548767903467251821091283211952774968625671577850786045467065448652871129654041229345689764160303480748503245703019905128124669226637516314037991333292674647548747277710402297285399112878529473544400359777853232584125632957027480536428545176045581829450949547327494104531907674700181690195117676677384627616993292806423377907886553153035830154536798693671922577136350665867933594633030863558636894336389642049188378366830099691449110478264054357946168972444347020555115447850257693663059873585975371870409013134052549133529354687852346813130830439638607330861537090116857067215361334911785780186840813132514264446818001545904435579519612193104895370535570306293680508671453658223064492825238276685737699781905454262453889558864265135218954364779820325765193640642420459295701455606886235182101711182875398944627968882218598146444446085111535406087292540426238502386698595851118494007885664607018340956260307684608512862124858543373326160795468904371476229993994193482581193794882892880083135943335558805050668924873068175162768924162664974340111081498125443870435281582918207683527481114929866074617438145415753597999825164188948929699046407443296818055567777083954508481993067843586445469178519789295299124567153318101081922535773994861990408721798847675338548015213607177737997498546718982297968847765975297816758679267384734011779349275478021161742919693273785055243452996997182442808219817509808462447603401888217827098345497551908908375600385109681209127477198172811714257654780459918842750579934626479252530703648055389451424146021671157705066429882062753089523077313447495571838399619345214752334604826587631265912690950893415687844914832700543420100085625640493699300516719816153320743216528492872597707943154047605020859434916527277217022004228869767883363511059397408806605150546229200301701384906153305953082910272328400923029175983315451084638674010823767517632752457090044412116249537059259432217681964634917698923477243570401123165329033582433527192992461129133856743923447322804139009817289772633100359284301038121360778438359103876774734584477121452554634227926694030317020233570544327920788852919688497557633948029611897868874807609476581560277058146872917689863259662154064414998581217184192649430510118039292347772112158170262291603181619961053492329220534713647714076574497758814769159560805333161020962837823679903130417130586662499917106999497594356917307807592543367408628026233528386282859680132671365436477444001231191744365149344283002014621080047571261258049217882071219949803191028186132944813836441494670213794397645970306668975774862193624355333496942465429895383699314095773949748756066934568363974561267606302520057223482127564174480172422020653336690458500248713393121123950479371161149135064430941312010734470057671806548636301247544848051852530500355860525502757184456869462452263430542885642904140949894980257991846963996651723353245502372491628813681490077924579347249057329671680429018919074169697426375262563516004549869562849266610624746312026476816996092366379432263824654771880608601194180718201934291785655131781846053249821973854309160077588544064615158983116198575193565912132117240196460968287167768592747492086947310030419373320792636472947149494509690047213969599841778423857155393948566637941098940078089843066800103375634057511877051760090598569814592774045891121446685671676727050057888748113674909566400565814468432171344883268311457005975711780361851767592390849835283557800030194379434651032662609006527978072750181874896699285716469178084673748588255933407847577321293660533729408149637623700648581744137639724843455457118587845628945390223108493989455303656987299444456429687122772777979082303644391317035471529533910306392748440456700252234825491648506039131632770041966399243000167800240149950274451095026120735865321988323930481229190620660545945022816698119442215950777659803145454488147256083126718896709406253305942554959186261960743684235899750305143460115803652137278290596490562225630461373916670930223067807364518530020027160053833288141530217211847541773438489245365740095265615586387996107590562210247523925761086456468711860945163166520294968194309256355777355133037006475156965652424138158731844798988545108593718262855804886924897231039324306077493716068907444732005050998524141988820174849493953443729196566229341297728850413705473412498135336373012416559556339071836808491842949909998305805028283433538746800157253275835917478357113882454945571713653409104834562088523909762675603524469456568318412207011408464185142403957277390154056044293826246314257502859661711844171476586167080388089645157900505539562608348733069711340352972616726229739081426001477879152557439999467426803282251045250024076798097107429464400174482388631724680694859221762859153911592230606254117091716432846751312561700896321779235991584358747497701866500484516243172009931299300305123953804649087124327730767690039424332537971293168643878643640234842749172749729446934055391958469358521332395331838101348085421712601582994316759230774815186477763240221073088875362912448421856776086443169680464789526181168088022045995530807147497121288560467422195640630882606320123501724671986150839413784699765539330946399772363427318376881154875109312090887958211756639887780813140165562474324770932271279487708768107635482095510918897408117570843001151122391887929850223840160909370735691042828772919027687543932204277676905676340849139984487422691565465926415197636943488076601947350932175112735633703234782326131500020382240652546013924954202291070645165623907751549111721804578912723459225429757379515856023665622828702469680083490867267263334120143896701326626704484810669625614277830987687382542631346331518077199340656223984208361894059345529429386929815512461766360495435463157544759737663860132074278861475402429311333511757369582729362097840504555468737724738895465698724696789553102543258476417187453896935821578483802639155749119346635927605617512925562586666934411549249728383311683252769395516711320719859300318853840987836460190658599857412400401124079642690970696345941283120342227307608414690486630265517915736041864171758138296626926861077320608401462950143497029697054770711541354535050793130701924288657275432490355495089889852456679420324712788370491563117444146574083880676797940477253394135497014424859015525400192976690289644532630993369507356559392813291146861988865284124618156959307229609542408172720371974747629562990215358380037881457575881080418169351193779418738716525565613952515260131646563107014020448203639787704832623407708197709120322486242637950530329532071838772923617461838448980788805076499301985904591952300439889852712289542524977269847042200987605326768229935626503481644700024335207849767198897871593164540144603574408401372544456526705876546028924185016188784847938558497244495748850447244307068459226717543159604911389333401613455322113403863644464812494528718857959458074889511066030450345548276198175218124274545533145239124111305653271855679343178330080543683821728015500095183942532008239473612949896482261900561963098201191327666813517496234041395839382155594760885031738351516155816394900119268003042052779540762207000594021848502497282536316353918443651037581284579796173224132355120681353435388273217718358883260941183601355975456700705004445028736261367659946714711869283678194916376729322417000252549979707408691081436454379174133495894299319206835227471019365514694279929285762303806037182988056825086099784982420807936058534210870335292408702242902599242351015661968216291833081721342517320532011420453397806793781742278167112419433367563041499641753533628613119126852644097413511539232035733699945530425345308352621603780669114680167068245809487554594566601987507006748903112987437171126244351252545276016610515309866757046445412336464794437466840578397080050316873131426994097493583647744261497742973355678806716437969465715187486915001333655252029878704978602341130614471757547098510470528880079804233506640115257024162613365064243305983024751650655309774134219222673162911104344717686670893955709730903105183033885570164656525951765394692925110133579129533617594550106072593237610072305184741996579868475661451133730608014022830809341497829017473303860828095034778505592763348948726480839558320671608143817839499975593773224422017982788152679284399047383348880236889174192566521706073021687879121210419181639506486424414342679667205246501803769155569930491302436168698548943843319819349799567631330986104060596252491274614745963960373827050956887590478423572235065477342378439935080826114616155312253586123152171823217866544998248641469223014917746305170173895900582439489761690787783770731110651200602793656474966024575799730315799906947277977986349651025390186769366686478628876541341443144565573499019659335305970157704453023451085065959384930607612796002625792409064986206765479393948368663142442586667169048811671669962892290216942081997639364900344312684797400573195139951198572337257519069735935436804279195834265950677539732281422466621388109113266133816452726930393858022817774131544131386539808136902196197924966954110956867900164182598036638932131732885187858581776633769600010874115306260386643291680258698640348892489406030161841715836718850461674297210061564433216735584982687473558599082708761376313814209148308778721521513439594110693684411714197300413795744407418669669507800923689278083074278872029349248879322492100523300968766907409230327373824392290795656616505244652141151369206673235391789896436642424458147784283162952710226353396189035412675653664931992662370008156031328995605544552362748746660269424119178839599024389547786285017641248036176850934084168818647005300425001798829460396259152759058184109188692048588774579267275952585980363721229916404384445312693188413827725645552935607193961142040083342636454438402266430134149194420843680082693458690751347749219942584940008430794907132847958890395306008494505267077015976035600096743251245100212372674468048545251033245647908592702396616946117482637532799809175183571214428202123908200314391254851660572038931016978190791261315102475592963736566616328762266952195688492988628876752335563638764647562709276017320606343994964264442006102940703179015689324744348749600124496975626786095370675900959563961251464186626030521839748494333203300649324717744956113825719613407357232096899465537604512635733224104076370718123993010693757838732218023890795425946933072668172657015697582180610699682715269370238911848634556282835037746827356070288249974015836235820690563539426876744847876665226002036479014657997876448919702441186861410384790620025586488197821758966438976703584968839034553298620324418581905862140747423949852064437333296766189755153635408359103904942146824655170057000588438904336608749081346940054290291693943730149187069992064973827501316863497860303680780265772341902092889054443646161502673385485602848520180199679101505707954360499025489619015115342568248781159914463157265660610474406518092868329703887220004623007432739888024756667187359351330971311384196290035572598036362732802861275632073721751191787113430321256814364805461699205990823778690482499687524619426731897195677272488411522260196831588582124712627160992685625345715577937839497448645980709880703297242554099754060536299552526211674886131359904219825922540450136091764364411312187485650621050042892954062916742522657725415256659642187546511930192127034652173744658224140174526246349900233230792270510822870351967912870279983829870401469626474980525198411006552684767690766053796393851585045454577375135343678406313198342709573722394513997308726100893264207491676704021583215225596626681717301111637915718703112157674989843579230325259905679307890075733052017771798001976349269474438857325261313727679877023982095984403960486108734400677673580653573302142929241157542332574723002760546627255762678733955607245086804487122307571740075419284096764423925128483697652929333045339756912068846952898983703511344542764878263043446722805095650633572777192137461306716231411957773513497148207252710102933373640315145181765164968492707552718982866729421771783714507970752943448233310079056062372137395528286653062750141529508231519203074562271055419280731066728047035054953929649275317985357346640808632195808366736938259018255436410511614995036966978056925448254031330958203781539792185491742849301974111781860473618050871788322561233370053575394826560817229600800060163061806813074588668173611893998718039723436326942878484766616402863514935658607651580294650487308714349938661452019506604873392090776195522440654019505733336547901716728962385037250096102479094601566201894000450293781996869625084885801944961064088203630261772154071133678484556854871519335084270937151546618890212476241845285999794298310542551978688324141022390477223201338433017361632444153740069098121010024677191168724449843531328785729599682691332923672889835083319190462949155709935016998812101842611539221259598694838230920508884202455146573861269618427515378274183000534182685963293718391096802170614885373686899770442092999296814128067444115531720908079157490556365654765431212414699651494490996843377955127412286048969444677904564354417296234513568184513170322997325587608034384349073000529734793138254941164692108717325778852961685044783542138871843478638521581173097047186612371032719660745584375714190326150741913491883180184777369211658975358008314931872647993606780145844306328687441037971235784488107325589462742341211120149017340782972579931344331896393850996607849737646614916438350568754758528402381713102659418135071941586526738880103981149089497331315609354989050105582194602090589559951516523061267288192647014050459819428469195305683509382773949649561915638405362041348921964524725121680956736676127548549551859443819656735673159403805303024781223048041868416864724529920166723406728143018324540355378049305033519354757266592071329574287212314197792184097091815940428926845562294031072418488032183385891916625850742671241688871623175928056719402021911971571294662275101464327869977252386708238866080154809750999063307756901773514918595414666702263286891178578194819842878041698362943635182444326711924989160939886081991224459472802758486931042322389825194638253271616659895119429642094451276915034691342562112404467363976020382958164201980916433512063531324478638719093188711464954823913095073335493961001305770081704032484515156171988450561731503007298702992915265573603025452116265073465721296962399046308308032955970345534132078085793331548432687758696881576813347691217930256989914256497785929957638342555828276880942377377593412269032573560869991322407380528658806291564409520415090363725584752035895403290526130405567949050237959342145958557780565144057389293132956256559074943665252532740513493004410205676274222291042741777108092568965427169911620596284302566675599347337234955400897042218496388238074487903886155476341716160303346981068294880226230969602175466525432392983058097347014707263508268384075138587720081754046107900925464316265127956559066001755786294241170514084015207455536799007844893512608410378994926324095136386947025068034304799693972853678301700248799418534091033519013611101079975207414216340261698587097910177676479240237080487830815552522568669852681563267441772222397186007672355404039301589316573492997469410170508228374409876899870390769445413336734207572105375851473672574820538105437177443955255081415568630773896919420747966576419591720668204034311919653235424850899775939723315461286432466897958734114437058929355140970975971962204271926740670413547751137948857402658776333142163676301536914007770535400466570950832070034631977243107852088089744303609235399702319613170981801093036951628763926643885786748345864117019468574010051672565561570557072035175456335828987120750943497835099616670419227407901950099671399700874841126233346756655896908117657614833581309245939721635398676318225316674416844737972254335528099291337753392284565151634678896912220960460726819396531342499947528528229703601742544808562508231790318736742399963992470226688997827814757649324175475777611959320076939407263291562026152104424352879096255204676111747859919483701356220938498507275101251059441249762262009640723804809724062176061929397942624248827812936849031713916064000090334308803440396933885116203664838481280918885702764157257996239830649506680272288161417029550575666371892822406010771898903097709991697187847106941029659968359344632680430197342413006218403609504667203381831799318210926638842222739289136677888149991317280990823587842489513054458848061431916869792122232620924001332924232843126697275554775750818730031149940013495545251670000604048789825161461669931369835427411907385652164741364734719628664678564262110521451297475270882918030916590296683240135576867174618376712425989463594885932254838553024218611489029511442224114059203160266864440166000212875099315565960009887449827905876630773194952421314268048953458331502472065125551170540486062382147685609072092032671383819778858010876409132738824010207925899284003736981138294148074371664489098129717252377226308319191948248617081560811392165815416743939587171492443675734498144393532722272863745947726831907581267939277734287438672970792071347784201808024408040892194840301511911687314787850391496397163106917931204647231049035468452341104652280337972040806542088920958228964809578114258554912505107315799805649251064671794830992187748747172971258332758887207003693255332267228761579121826971568938555814171956230531660213982408464194668899696302813814492711470067746556655592253167565929058309926256381475598905523941786163722587415044669404406900909997617485418689918839671873241492942059581277093695153423731980763209772973683279670243551373460139766655298663140452163147583865416464027088956234303900439086604805677047398754644709040271799938214454197219328780954529940371711734144379627368198731007991280474846371007076174381062236878506884730695350120465148417972623187620372488135662375326849253679683629720123037092095555305111537130570365247361197469383536031652632435258942713414063506610713325943141835801194127799252915651511209540994645191801609816391260682083213807598202750626268034266705590448782372478078568517997434570590862832210470547371128590962196105137740822468260205400771017782695373603610670333192220251933232803969446933149741541779445524367433410190229958550709439508305872492200083558992985195412051555464875569658565446011040280060237114006685103387529443001420723278335067259389395253465887773473699637112841896421028959633370797656732971510321941083585337119046619027029944086836915290994952235289435638850232939464914839358323516368149909828084322258532324493814928161691532801557650109101432159293792932347516409165893213317845620689546242627582807322819874003921207325358743748533238528726435231393182892801170149603298142446556640367113074530234820324996352941630330735660774518906746711796286984288853267860927087948597013329972447263667836926402320042413931861537153580509829618789294706358749128016397176980618259486669292225795493084959099606817981332914397338473453111269372761848629760193491249349531359765858814625631790230072176573844664842261657228053574151039135352032421047150359552492305725032757470681148153609067866319380243022664270897717988428507611977268085492547930628926593133394588917531305598557668572470064598853555642918338400871070335572192287101673224844279155224358931000528953832645716675157558198613924713664510782307640627574165853795116726379396607402271305329562992784211707955493465433869426561896758880411111590543460681727318944227306894495515544725418821125407001359836306044309313574920989390974038695531489828392760134970297954652713674393014926384209424640626054721382484555471991491234926883226933893996929674656916458991879628096451297228302860535721082858715415076433536135581324469203801522233846789930949240021223290685333479575229969444736318763178590460015422810788002293360905424562999583247199274967118263613351090786280012816890143992862637826314039277460411295527513159849933470608862562033535149572429847427489702443676242829663516782474136585166304182763762056439128308740870215752766610910578052850837334090139553262215460897409761290552142475084504544988550064534808962694715960252078595482166377460282966882250508703472724779881543981885574927611268093132476978300926399819266995616326497743582146371270018369404440853896361021325379367751510508303368114890575611402979829722543613291139109770669271951181043854124041891412526206540333108816234198326841272363236693769506348379235936889020204285462216077450753578500278079093734083435212049401740929679815086901253578993850957885008786209754920491229444118183113852184661408241067714043539602238111512605631378571407508393534355740980510637622730832478925891754915779207481039630488861080596846882573543196978718479614891587222889975765554783582900932161233180901909759914004895447730393903735274540287617745460615315679113660301116924391733382252936873647381539203034847436954455250967048467700076666258400696642939890295375468911001395121968267747874791301418543891287403679890757846957090120407246120947337829750593221707600970831165001563367180681011095459889707010141586776448947101736468490100719506636244768309106785921425619572169755701013133683947803716312965502762232847448292911020486800804821950942527257458019150907408752602994837981790824865082092529779026963393138073908080978471401559827281500344410363859438479722488896106281298708740490970647734052227709720386893234816218750560382025549303850535620567961946205954840274283989498033900845940700695443787016942544742494618110166131763908768312203911074312608068149828679128612989421416757726973424889790684548732670496163247373211630189436663983239307849097836245261448400957065389936303531707436364082579492170542447116767168110306912323776405698606429973248640052354309379120217881922866833594603923783249033792234231828650044865066477948599760571993110265591262616266726889955823065170029517608914830480353151985779179867483505617605588178876439477670940067752955371249909337302167844546341113293618896576547181667905939292526210260987067655850182073992627112921020974185893852189030329423719786228928986712220253032149677732058535694016034526428893177899186277536825499395632568591133322171471681536516525279113866795764839740029356848009102184874855780123328441578715258897375701166888786370163933307119120748173626893632588863556206605226951858568003604218135380280134113307543266284974416392020318852928858483415957149751302418794249388004714315020049810442975399179937920638168722411911778142720150108539628145938641540152525092538966234068167431619295474735145203877573157923452296218753354235242668858872786781289943300758224656750376217152783639117803409639788125772581955877093239649288797992443729863496897428271097512860730804895141223565160323045122121162470267424225716945663052120754120853570449660278286052591053934642688149962046148342167340723705470282053174616401298740522619663930478444914033499861875924675588121358819703085467123677448530183082245192288207190417346395709678357021819103116400454417275537272144215298234949176994579120949508062984590910410153383756512158514257472187829293304612715719811492497363873939795484122895046104264176835210091706280911157558702609757388765883855347789262309128805493887498558867517289878680627893189608222089739629518463876114541836892492395533472552417967011291920456976115142034056206872739601575119320185833389736466348546606571403551505526838398140929020299240575661675751557744897191612080285797473827752738646266051281019369976110807537110999510055553713374460252308710285611687323454288887691331884349330067283028131175781603150195955163596395799600275756649358861995563170205332888943176433374366018780663646124689523948604027307610565223334643637742178915697596209232974241368674872523072170503562818626963516016749686805720417865498030281310563130771520849344098125915822993089039321556517720416241084598574143385426071896809329777223155609951827274602529382869663823893377861168797869913739402950438769356222357724063907816691671374523395030159875937586435358270124420160939534845519881776632920713635419961718063366857000680071589484370556744404952787565545067291127347429756633366093281420015314864507395981214863704375478550826356480706509276361250165295064737906098491974934976541161594711611377323544528436757597908627539945152558243984253779011912766658276656199676111407254884720797800551988454816714199200619161016352356175812654458137780678121883409847854197635897689702997538714199825806295403715289094320178489236386726722130039698870678576426956199626747852961923341750475512512327552911431797559171683740594743824314336863599256725644620564148508555023516828169426082975055389164315244514560948151102126523066796431924691100585261575023326567806511909451137422007664192750627826671554355509109839835226583608693414809844555519160171916769058670063967834649424672340853246051964563548004861203610327668796202691991634247319180033943603786071009729700384432512729266512919303371135670826549010426323329750020068365256299564013222714985474536590427912765522866886538952586963835659884010671690185809811079791850627261632750292298197409933765192593643189209518443006926042522223826732986428349940477292578211272219937381404673870205647139386297791558383581833948829261216387171588274265393317477624111316811933011023371600905954228901355286250166580467655937705294863806886938084984134669463647123835720440021181421754153050537460915370336602875391020113577102590417424178111700577681332222130973789998121606273829664663554281305492125139025357234228963474878786785302851130111191477398348578010735677538659795009001925596545077863906117214466981129687314924253828253155080995591760038019247981564780370876604948396817999643800163411198134378913589310383669161025452048772707103543281292341317731452380146184141770200231157955930860230155735453624874972251607916980366514710744517737251866241891622445695323870428037206656489194081442437201109266695644165273288396235717771021648209832533692575164664933798761134431043379101734432253208195171126962238071305242403768553610993890034159426526525915679432433432927985170345043117557862912289716097010925506105104211450930954802498685247262601320664586497487068072137565227346175485153546267966172929097164148260445312340531024524760799569276823653029569552120069244988580729179961182211192161405028100421021142024974314052075284186342849778867651146266551002160865896012737604903230853654430281083602185004029037545653659042138415147589008250849701538235363437360384097292241298932339818658528638190599264874494716344921609774549616298670157136019867876570570451504146297092644117974753292925080298215111267264195430825980008134719780303611197847929521561414980504518434156206439106547760610731709728079338878537622916588369075428769045348168627976835829980352965606939971104072091896856478097943640022809499779510627087365308661421574514410003322518722603760218413858414950865339135792892777800132268906789991039697415646467350627225531693075006347126808121713040011970090765838090745125355791040979971655263105855433398418470117428294785672237902078260719164159780558407589805219519545801678836684018570491511223905209253709450420351920876182562818906034003234237212435837580112512570202197205930302982686147465335287021163318537630827689729340429156289813013601940078092193188310149701439297897646820653473398813573977769339245242342462515086353527469456044866575166544228456207298814554687244089996075818842987846379999432547212915531946135941096493520410294721347516345881246777598378881997207953775681551791436860379072895238870962473113691680256968342409470271130440582682658515551373293972833789183352369107729961704947116610178227527955231094383515891648466852541699427731081565421277719575814768126430070717329085742457900388411661185999191559774768943056425389425981051608866846824742296465745993427195712205160762372187152860135421782878934064544904297615415235242433250914856842181405265688673966044428335721480080484335593072304433953525118422959573468643962993023613514080274576666727222344255442691271801924324311839824873250336123175099104602424353850465409061641049129805392758037676600256540227556047533353341962542376900764049169441458292440831902321926383952325784207725730059565675950044365283350774055614863813742762050851240386794471571180451676708479290460788424665967883726514905409671170249727966080711600718719820203464281930111009903281336445455478974553567541701071639509384240540793523258222539340463502393719106846053507583102767046771632780518381615051901210134927872724081416803794287818843664341164717035061614894584910294436838197055014894318791268031441941960838550323357313321392105639169556692748022301195846103960744074319123188531327514702010448448778809291227530571852605732032160275850994221399548405313518583555976895563271159059369100844960591093462913155393623012182812449488810230123866852502723911039533408444876214159225092867359601044195729825991602800248006305469904360973046248948219436991569640525144547611475953885025953763850834195800662124262239177371493529844036454578111284891229743542500419499575410315984195170290943112986930200045648643091927781737607204031859885604222777615756939593936801420080391939428614455449834365832259662394148475249130713801458394179675893653870227419954047518008344024729716347381426179427282654772590669673547530428660561462443385865160194121859280440800246026279977971958138781881182719968920207267319421296284544141362638316012878220557821612964531818649671680164370447219015462543147124441176176494558378279826180736894650954490593209747678540852187365787374238361991211631856504731858059912053769802036543101763397320429891643367783552521376455886140677932895594527332567464866658005732096922795770560412015031488988393164155315296724346108421956646963709829122844092803228592739253961878523256954052537364410603118542121251683420265052667128673665557172055450954122633268865975311756121140908820427822005164039602537458644412499398630548008956846549505837160427548104687305146139079627088222065766437267906943914208844345012705269374364922779880903071512722185626812779988910681216797724323991940507975271336731789361410660551890787466913453564618132030145223241473815024202602037396373128222026202526322282665201394448303474644751924654925221968026826453092941294386602289119524538144282375185579115405424163204725906501305365464876651884107095007979712970798396006632899704479800755203097791078414063772481524994881326513897747118162239733529373741366768144103016271331961421091122955179024010797200334718490272886523215765624593348096762891994009484809972497523323868299524631791279614924393396150419259547990567863018441001371255858022303135373948232341134101907345938528496282586752888178701298065602152992239899418754887066658056872927464132444605927555774912908066106181729451332986619349174430793672690043378080229312039616621476604699777888126709464296213301453593831840898668167774768694777537229655900880285537109732545157384363717334988773961731261313983966397481061320372458897101116004814169010904562733692822163640206246586227346681121123106859486354731518923636285071620145435035262821301969094925956187651977560199184972850337433104785941629756390480063822226263506165750103671619667230688637857070768124394962200499972242037243003682390774275953217780324987615243759397790839522293180930064949087174682652483227697668379461494653857306748827942759745004787752305918375831765317190803787396765457866978543532211738578541328693433065721228870952540726459148038967878825946401202583106847215435481371281195740901000055710515709080835314543812007964596963077059470567836846953729628282884165784577683264963886832550807705513974816813799445279241622475960439558769214692836853142731854484916568908534892642834084121818539309089574558163574005531613640601335024530686697577211892570795030038348627489348841372356077347527379612908140770872148587956735980756230348254403229434663944697724785299066339606274243687084947537760370641011679599464817565253580382319439688039799927341371289945261770539859360318972565397936866090820005048760574333970060615735319410838671137179081722417572239706420315333805468048118137527873297414024302164628952695144827679079842098469876163290816256593575377031207227430868417047150453492806551299982965109976049431509040645015434421019502955135455272632979927556750611285212159905625911082342512841066522313831947973324304575878124113823337077627208849721232606960959358607330478010316633991181927467210471588272752522464070699488294444946119629655704071959571406286709771649623150567838219898424313472457228319244792121237217001683813127407887109202605678003721977247663528596152502373140586378156028468758675997717332175309916592235912333178065015296275770995339597816498820753787543344261979982150319144804921121174197232595927993145857216020090344600059640725151649209527957810055570120329762534460106151997747246862778718586443740918114401752339772702810099520866832012051096614803376822578066066033099979195361295009644480024441936018197382043132069762690502041744744575878354012296471707498110673281758628338219997039796586487490482825489042958302531297758827195328182658223962351176784651731890858674209429432208875028338030247912769652630253620180107950916993192203843973125895054855183420890970667193102400629634858596308771132628523510566663902727799363340289416226407207696009425623504275991396548593913978983173343191511370474967708455257239351236881762852697509711771338709894148605449504555200892065102900115699494126248214968676381879169844183277851418556565526728728404635359894201157972358651184963641131151287876263814077610876819970927886185540385814057029436965321117456160490491433231198093011749739789507396290805001166624708050394277145876544849292541428558987122852083407668811005569995651130152985196142466780304113322410651022737912121845109978170907799154972996567501205673285953260559035495328557234068564948119447002415849720818047002100076358914066380494553161565894270155959131152699172909838163041645259187805257359461033592843010524688945254371156475668690861603812069770695359986400636496253840633385255724816745432890730344159509472663762911045494658387856465455297515251673537772986024078829379152426294157082185387474901443478575116749055036772341614991748015142675121276110781134063681141497695783000083243938543564842649243249698280599250094262546746710323085278126028472754714883574959526626896065346024316441128990251232421372645781660204173618870334511365533045833565904584957597955046751095396801042432959678603217190285892782000834784847767827358327611100923494681017346111825833474984959637202134166211825553673726900954515122194812170776347780563822845210741015542987376378636221521963780117322878824228970572062382935466948595490677205655119899659297199038790299788845904935541677745435068636432520440247159286855547059751156870982505834456867018731220395891695108123066467083929479913576145880671359724785239625525980393006428930877925691537170256583023468260857902063341354777022787173022111088386147427528408389156080423941050115538823682006422070644649173121624036854728016281310302745789478636395773479695406884528404248123473137890336400640492836793323670980770036990742275778835660980109021305628572775613830557238333634390682315186685680408121048940021008146451725482496767856335571920631441450517090817139525888800345576127619251922900862847480561265637668494975103442696760498269907631140422038997440117813503760158848826283183890892150387989247952633013937599310677065829252653755938556732514808544770660070993568992742283067174243650507483463173455055212764533849717317091894214765532034370313418255686510618165348733607493838786565863184620564456157336744558226379964337516256876575365984525393759709329836702796034893263564985217147542287373048917828965482627305876157178613003662569970729495511349374613908734250123794985282195116483072648618943571961969756762861669480702134226751980919641858269003201102903878880377700191244249474563590270207137470992330314848944319367702207238102872182355172629435981084172130766424583796435094911381122658820961511194124702954295990835375177170301311551646072961894006464548252947191138234417354958451314134472962975695756586769537505540417596987368946448166558208567106341642156145238324813028462733809322486540624523255375249891955814210720373272524973257388150981564727439625727747431461963843195460050003222340781313983823022984425612723581570514015654591311172553691479591545593694659832522987141555013221412012201838297504231591049474488221738058827615361190968360308530067129038346722660674566458013458175351187315671915716625781728282913469204250988620036571492742897134352258233085381299135055021781838827484732191886408964397688998250478304926667264718428899327633716565633226164303728271286567081953940323786543170286430197595459368479376286271308777667450928233751115484236825785199849474336240913030529601022081099073148016729608431531563602448015716932146067833327853645136555393300940452411568059663401502693348798734170846064379903880690352029967622241689930246391068463105898161915057649641142461675540089139364931621912235857821526510827620345308932307873101791366228721876578697732829311363329604758801814212244712610010185643392925318620790334852817815957848422342780422102060558232673374619466051490120637593697122016288287674889616358497044626014479341923295858498031163879646472956050506959467267454338761649176764870952888838244344147409554730834598685006432143077506452847871972902477851200087341533422118050810373015093804433014167799282776525001936620801964158076138509754398059666917423058070711388633777128357046157196200199531961571696622980348990173390073284800579673092772949147876996259181942881928347234886196685000660655601394548272634641901301699278562126479517516228962309616887116516714470124155392006102307608316136518553272667560126553150947437777109074154791121821217950206746864240794054706344003842694416585257382001772435065324752073411643917173213483067684045924495793950924756982695728456907185766765788753861356391587946768578540540530315678459078231904455791403608929559314687596478626457426199470739026926037208038482844831721071890059520968746105291923591629402409418970400091140248029009315996365734090609411684083769839856490554485917828407120183231904903551860887381883521023004515993274940614035050186960760256624479648324223880979673328617284486987040945941283691368026039552762814632329534726589806333628189913917944720583380245202859337230541717683767860596209693545517057731419018652618756714028460042505287060808169233481061001110403852003737890034451153010011507799010225247054047169376939721291695335683194076950773161250027725319703175304283073417505350215027079613943455368172161892768398533268334936031316952348304795959210229170893236161004569581647429941088160728866595908223326076487340577355629181453815118841741039822373059956845680841240841427797388304976168896369848019093521972526441242928664280856621014659834928047483833039104615768529244752781831478635922349360016468117732122405312114641165712129883202989217874811978170636380532108657705980559107338080437171631569060531250588257448760687300092465304838417912139678413183212382929871692323244398591070104021597259800298091289741949673006815217496121369946127643297312195666923662609543973033970600715886205508876128881897604251515496805914991937012556264711877787785878375645366558825994640784913687156274435969418092017890345968408408162272129026567060723457589233982286732969478753325639148093675474209210574321876513228622442848266286778646498289543516898644179250919171582199930824422072798296548054749122760802310730841074330685396051464698340258397728024555179268934259401234702812975945112378269699663982232417947043934211860397199118263740376672510623699127164778176330634944189251637048498662216546599129045597055462485132419832700839597516531605238314568047343529309865803916479239801733044647906215398257330887861999749115933259614831487063986534965236399925953141368619606250154974509962012141783855022768010033947839845412087799263682464479777004593517809694569912508842323018706082935092831376597794937136409551186266264353242252497526919752332270823690241784591743163918875385823922162097555765573179443017274690575651617421653433118524153702877057923317651916157029968108211886006690054856121440170908552706834935452223509963291602113711894348735594413838892668667369416722449980796070141071708928001544753281553000336804777008526765148126378011983754835128984099426467386611036365606323473713130653295733781792488270500484944893221308271487022497385621645186779530178235611546792942648352282881086382786579562293194642831764141976790048115271188978466815448484931304084188494132625794952612279928034157439775560113555255019952960336868742451891018376130673057635005899308694114236093367652940516506163546353364318261682111524516708906132175706922937980389058878890495522415319549731076345404174259870224421630591902435684287934090297396958496622561445685892401105135867989094169393078398991163099492080079370949351270564425903920613049454412601793066628915941648574192313972036177990285223838986175298751232314884009887431574827911472559949621873496917723223051956482725393027334030694798581934949228923265907989668664481400278261399056765372266031153842064585280182099068220424947051763871457711413933188055341359341568433863244280455648425066999833437434113594533070050254464144414268052472191497822981605897549912563191407475782766955936574542043699882116718844629143792055333991621036037713482321559314403749841395366896342454423931975265550196956139820234728927162580173002526690934729328913130296293366843775578694927498645842378730917129296159355527810004231927711085767063092685478001160709884842749317749727322172755512143798501082800147783142932542952121369754624495535786674552919501050591893639217445191006570924159228818315263610210829282074955865261308428916350100850686205349827385038825626225120765071163352328762595824924367743844407470587413025014603093677009365867040596195881855804699701818894387511044230561103039038824060855713942714399720136528673718955795201866731580467716203431958003755274131025822866617438506481693879291816786798700161186864370326626208171817642067481944603745617972470456546688213014887055066886662154133871908439204420945788876526005332654301050488667142317766910812244520052829722575295368118575135390409013073093388226968718845818549511966762210213919260760557685372019648390992317269541020589219519617163347066059735995291338187047180762810818260577696135429138458278317891453036699675461946125503855569326910460705731820362671127157931222425157736321994854725325235352430401136248435528975225833138585240335043093451227179478326620342392352184671523069796403404409150120311589533275396174445203263319220310711349692976208566172071257163172102382985097361905860720285404121400492528406753643077001476887936075128518395818234817126912048942948222720884591080697306045874655414614758980892714262964530422936962447552890734999552526793338961859668412619313679280954208172771088967803706979341751993589198921656844065848881280009041914049381728664907765887758210720341571054462484870954849861946279548177573114318256558783345757657716460236312543665538437324203682091364228935959665700638901950183694930133995459444604821535215388520384936293327932001307164276005267809691224825192192960396829024387271798328271270086104512019739937141284701022193571421457612311775482533907133600759880990128770238064690202941287394283781233287142770395353742162393747269936685774645289865715892130852099127544453501926743885180559021309529252422976570832247557716122828627741011505890929573705505746606858583606977772582562315592813553195620691228820337798458907720803382174471532261805830893921161994910481490457208175695811110469816428475708997498862056701792378606699026777454361439133896706077143540487587007745199429142525444490313964317422339287445632695963482073596318051387338263386819091497044791290121261906427833722161234134711983771668455013067107187471768338179602131994569358037626595411025991286079380135624464557467180392342074252767237945417407422813541568925030117962832872828633429747116931431879133973930751086439605715472840292446758713465813117788390570095293454049854873822051292507950862031253076555440455264136092921524407531259619436727522103025335665066187381643083607565360063523792584492322604597084866677866495258825017167358266684584589490122578198161836641213010803940222257474954556166188033687644063176430717370302622645917005870591513873719476121231125178867177897537990779822187614202133822202883106246803524323431606859023143954432535189147030792647592733040168947592860909872664502627785189399034153615100769518984289327089429092213831164168943048225022464555028139064093819559625095938246502674412557608985588631312977364679419115441984131524833637860780630188616140471397390079122231761207174023759012378943982139126938174355788961987713716324529024587505326005313080836123765553821050868771907264508456780269881969294842698456347230330968418430522627366724416875868002163505071538812681630234133836451509807746695507685058751797341799316080938293438868536151194973736157381732928107525384853797495159344467230451887235266329809397836607003575641139108621242795904239319650160841696752033179154360489753788522243116723411324253273154781025959987414482713670226186534530577515886186963169035120474000853343727269658868922328876511936240997537177450839300020019406986209831118392446331164518224307363109580762466207770507685141463534472650943383179490777427673703098454640553509182701944499170255734398000727688631939434601353799104529912059573898945427156412863711348009132420284080646477106536427217742067249679759282750421640575709686430049603867838249360474270406236098166908722049818360367649306170375482381263572789226675192537858005986787115579712115881083969461540742906765576691973920952859337736319120595611754911750516957238950952278820825051866384352915140926608861291728851759481877116061291466875345943573735167224671670342752464511417649897422147506835879223199702275739965762983334341186137494040580714322294840354230849274253940935301710710916997054928841725221227464967250459885770414714877610741655673637989275269536365515188550951064756011078754075087799542208616737832844595792357688587698183292608309254582471878477962809757902734974991625522464242066337990101327420535877976734850810312187988047149991650557511138715596967000011674652382817338947267370016182366994077720473647549130155859324051077056911069123375378804836551086237034081501382897373255370684154313049724765705535624175091781938419246231594428911469247196068392489060352729886372365827843052641082746478531150842893927995894262643920919752262304877613358025833740995581399627951362460520743516391847392058484579050011271071933049639754447654197375762994517017360392903538608649478577250928005031599708831055406363057767464717032230429127863322435056597779840532159401979519191625780391577876145949340410774422530604267673709396149203322205419066230141040665683413062566914590159600452346433722960575490137370564297881811937693172639268997126982183713429818871427904260960798918621584629786817378662052436335167571083963394783063964357534189677425553389435943926712977226245875117587777033416979980511372800404567924813513776149581745526241227087721606477980828557585716677315743325559910228457367750761835854515441686287227225539073754325795481772425066777143867768224911677348042085613736590185647429089922247563546849882768383980188969889890237876553334477268224601587739026002238038276470744930315002639780349484019917967557202428441075767161041303275763029940650031811696882384784626050252097368432957072219024653046575062490517388871492721774221151591532193294322204813409856592651586034811399773483065018114486239440773372048356445786445240697812274645143470419856355889706628776924747178983757656143546600483931884093526773788926317881515874246863300005265123282315019461938912774328330416667188227948498136086563846037453641567231520220980170685261255492291973343022920087415642467984020560268447394533845152368799723980446787309806351814754677311450431904395880665609144058820109831955703920411574120603805226310798372848451453310235055852914977220187808451280635496122378934727768100686174525971385466016453493383110659349819903832275955438270512485171813880488307586983091381278906142044947899511292411075137195637608831037539967804065896431033200173063910060723038159707517048194060398034692227457470813055204135226894190886236687115156333071122505920590231230826328215390612608215723532918902367172721584924869221417959668945000432430769399457615380568721809584669784701314214908747686380046249640684300692330205531016140311184411780633558833583623103591543946460899723414635716005379024483942270146020526958702513401510505120264431548413030087978699488630894239328542300031652300045325968346735299162406220204518603056258088396207305484260735547358240870285509188115007312045919838746641977986983929913563754431542735634349746503892293695265081053965374599531116092003761966567410612586881803120498271901150299141414418645698155864165646789794830942390875086081872474628233148108597363248019137874093998993868007425872813303777704163077398889267225925027275374650244421846310453011303836769629537249197557352683107923502127127267450832778806566087026350776515520961432608289703809454430281352555817121909762581840666719240915692344108170717632222280371410798746618027149281930453499686841836089135061576752863857640848803870359068175174355691926569331650426744065208910154711518831811180573950771957493507593991915989968699635745804755241867157362473150539435486195622765506948593972879851535072443049028830181378849322780107291447379905852358163748190817891825696518735108896958158273206786503443773540340707227002844153458631013052152887027792028564258889736574447961424635743958783923832473178320665943059626597993040279075769318332725935364096627730232383327770571575793748103304749769810675303527887815413032509517195869210669092905838150862020830734574269872432664683987092709334247171905903060853531588623241002235722207790365736721336593965515266801076387995632175707434055777755497350677107201658058662850873955090140068907887705264438750716967743906369448387312098518354967626694346589384263346498953519062699149617221705531501522880090608955785746030568198464220364708661659144345185742424864155677753616378087532497141441853605155564923086976710559714550461494253529053219371723557909053184433696196607642032267797610610083323079321661869542113004353769028372984803566819102767197324870567984696679869369468590043287392724930909314170539675166336272597634052266244866718211551760747335150629410873177901863274134367094893227250153673303607181896768648108947957685606377179713585629805564896311188973524613151727356196488730462505152456768116436940551857960396269132872024230529096006328842065268074629621660067610012076933509030371934547949031101775762928305124038525420857950151288859294657174622224833937387887346634604591231120900890131711315164001942419374363725345881610369927194439669150600076112603946234065656712167284947594712728673527626459288797530275857505162975312452438895188599962019241295861241407233915291731386171189197811828842085319195085977001123395039598315696647718753162073377558318702458244677591375146699396115291901412972036555410748146942256944874679287957744892959051657115809457521612087412789052147870019264290273919592315424175911905401900832677502415576683416984135612195470079481122257258052019659971185259697779464827133247787263409786446606376055862109588066457039395933518982430478046129066764819870053274772961455743963129610711560852685040803037156561402501779913548725987688698462028103445910482579114587639633459585063235153332929078876130413043174822941569636494015270190382841932401629984681320621509654441706444176269796825701432728437592973064203191039504300638150675290622892145345245252338154549549734917777326458231029909465533392625972699430242948231406117145520423820631537957831230191270889915751109994674734935790457514425209607678559277363725477186863488593230346520475980565023169368903811568217966467435135570960325164226002836113596633334708989793651645211001883425250861069272418826551892109609216266185167841427338008529627014020287489364109218346393597479038988797921076758324730750106515788433670286416739920545825037590566430602471524050552715223708006330789648857807315677055324362090326285963766213748247859193035953403430942570692589877236291487902166596774616645882955216629855522021170024445098149217383408972169309726331905591465066166813790154993628671469631443633728520138754294435650084840739950224465928830954135862270240480547902334588982082358241576574655708678149242275966862570020328736026229907163185430644402978226968369803381043433309764721847680148782409904488017323995907493621631159880613301377805580100493862677477772676141906537456812439876815291947250950832808219574628023671236935697691974280701243155587677577905379710176037555774909274463587588107326581192429008736141766020663916143215887033331982297138496232973423319197571806983977680707009437961057051595541734402950562473454646493504342678456588753142770516716830119395593240627598812214314963345242773838255119003274254808066260603912901569037463609825200504491922339012152149053471294273439470762639545415761526611538389787635101579655983418753889205898838713242601160559641049841446956083939164197080716469441289619490712889489594172293306539130563989019066384337075260753721360645249363696642568323543355710940392208410421381290317488490812162925386285829422789437806563982970027411163259179741714432686559723450755769756864635498470191854701695654570241566264728709755668046862648043198990280580845596616874755305563657287811537981407868352984133671036931301490397075400394789416250132539377677903617106133645567370477920901159990805203895541271653163084788956035896273966872250025164704720421372895791002490629403427797660999878564396080982507515002546884892240252587326848146286723386709919090211305925286908130009745956931367271970335893244024562025830253903196504934689146152703002815201719259250903092765657892568327494770178356796728614301141169049975671564455109406141583659079248090630230884325523983371906228368456074003481029128726623408103803157273462961373991038381148147526033514642641515651357641075750428815401356089484621811391169340401804170191770295023880121286255508252070360827092188523134112559265780402279129237994448551778575403954930225269614074629684505333840414905627616708858274916315490897698266239364263310244805872935552923088976733621436448536208429397066584797938663598711084251644067218701126325698421419958094333724512652390505788941336882890919636740005788477052505258496473957905570013366831109567798552326281263676777684084646120939231840203675985225907082608772319985652560001203959261664075483454495621898796016705346704163452085193338462526078354636831766279809521689642316417451797368198232585996778220823986113916760632579601810373285089255434695453924420183876211090838582754299224714991245559106014769446435968476783099613145941133867108924236519257967491597613114161214034500286102699911512754361166206171692256019670285600981894851485580059440382060335953306539791042334670489371873070293687281599540121802223514982167990759164125054117867710780958351902559685069207124939570078057392946033941818707314041519003917281775302325767106192019462998736252336621682448295587839509190285784967539357338436098861202825778338210047536612885035985964563669119124894983432142597532230747575782707882770963874242712025169670457125787356834099837777145608616994942371839075917583633073035047557546136792251038931153597993022389414331620222119781234361274935575789496495855246068570384483740706173330491163355863380052496970925690672770263266472054717646936067066647793189323877668378223792850382792670694914320184832353269706337497865028844128687412943831562340447650098355881595358438047629024010834489777295595059371298371546752278327910702914158472255717906653291350423930212544257324738817285363270192500681276829985371636888189367792541099604693253583672187146739276773021217273639399324237637676465979186809856163221283847939686171770181849945958996875537817880647371651467472588217778412076802236426453316733485066705059646584626429192617728831673038991329353765548899873955387173870292898388529980294639180176824062503038594340464660356697127598933813029339661295254631640471292006477932120747305741299815452184933410533378427343813031854835657204205564291927285741009096522372681321726238245240406823152980783531077359119741292070284524032875778572894738129016194262412931899643668379501337822487778040478399886245014966198633293996420736367489559829357129760846784936486576946363559904631437017003861030750616510681011977925435875672866241275756420923401720213428054631160494770536555127277586571943795111144528783841517185314146497092412870796247534503055208115745137307577642852864382690803377013211423674156915983444478091109444579854568983616511730181590025243883444929900298576517741243845683034493710653134614672038158674578332226305487704142894865694834914547033786506841625742737226270622562993495705748602783583146299206632783796391462268963233323439150442591245830346619273883468031278687071319059921344286665877199634458967584901590400120435038081522523209173090359850247213001766198463563215349589045546051951566115179424691759349544162712669059354745084847621600218913204051556306680563632327109120324167988221671896375157614435000452326874458740183898371117610908585004692729041306744708719172098314979980831733019222924785410570532284034696926400487121148332642745371766427412098195622902763522121625104408134361391174086436972847228876590073768656292974934582900122833017255434916528071979543706016932555772614132083033926270122189792084266390722194214393684382221485376713391520934856995057052356988936077040122693895446160677319650177707533210181024471829447042702789417250676788676623758896731245944022264070692954084977240100821896646107322345906289653911448507026559757098461654893347348009729074673005884796469935599642805288406343967532087412811361870271726321301252256960853982129095114811976026738968211034737147951887360565375118737475142812533761607468625035725654699155432087208269524091738146052543050227272538540260613368396281815739813702027487325892664977058055912939313469836732488683895106811583552116586244991067609295574651958982664919616561015043080084290300820102454237719655550450701824556725160167300275131954006800038281883898322911653153266655627812159024901394988319661140692973324785325079346151158820912361590350003531621050282668716686126703182983777644968526498689971368918201097117990750330875305104646076872272615771567561801922248663705809292104971227756338614090076148320502378696217401291121360312510963388720125647612146981083253294999576038023107389449926326582265919633392658701934258788856428645002319457488230383685609031328873878680695321228190680302326954423227044970851109346456372571876666418501399140365410945094615227548988313220740461320414305212505027003406791921130917644445452784775340772412053745068392946443959394124386429703719236905442485449784195889958789027667234912651639767961090389246121381023801847860217331636392083570679798583303690576337749118799162113560433189606337892805506229085459168988323569188011064238437113168279064858715983070678848936339784737371779370264966475327082908469831103110470738209376450304377974254291322154229012821346631225785104418694974379331320775940486254191254364584534462380221286082976875065568725484490259528052379731650190533031786773686919325423757253877761844152668722674431704975030969663139172489413364318707750310559275400873740062530047391080121527082372330903177245516975299275611913314784055369493927625876894195357082283994643665779523922735423499708471748874487579491659482102010866014132210749999556023325081277293009994745763556151869218977224295231197957070965970259628266680028868755743964650479406901886825327185719535444618284717680479389833274332868061634377407610929159848804543836516646039993877826257005963869171850892646896977765851803393316636985190374872702500122289048186574221973097955644173881248101784707757882549986333417821709563698286492258479426743516531946844886963910189922156696937950478530780920700758131262159007729744522491914172127908054099336260244466792620289315582859555704185716676022660824248172262331710658991718748013246411121398567127526686857467111546334606790765082921448408804060978004616772709241787618222533894243274651956127065781620594563727231803762436373765544518437784474403115576887278324380199924294316628676380786808219912953337148237549134941592100279731160884592702506253702944826562799276915216700223845566750998230961074804160621779617207618550188240096185529226395004471687399405111182366232119622551896302996089867214377345824888728676245964898251156554467880607886965126860056295456059172689996352815040047363113129566228183223836805524210470193789289628232025787152036346205127597903112664450846804157917035165820657166623330311707181665241859615846579774832842965868961930660922917191517847235992080252288775445700105280551685557791060639778563030873651994161557175827514007310204258944536531593231773662242881195972446601202742622192414975705197780430401058470306587657595386231608048334522234848404816428483423946958607631872354974041147583988587877244307296619625980088642375316218413913529346760438355364900947731090238590132167372671848615839064386940721164350949800493849804324897908383055199435101544992617155253620947710249653819329823970778659396644296968277923031636663149986417363543841643866319039385025894766613370911973932683358353934154866205837111649891728444222439123910517168163880458147431814112402853541107521026814264076239105975213580066602694631244898877801082808273867899349059062908204972070907679099874313807472456599912026713848384655785832695398858270326506210795876666407971911957249589608771530205095973692657385126735425196807163265331299559363237991229181391368154859328169513764101456819392197087901674498817304813051217068871324772315887121576798874045509096632665792346588269563759849038788814688286222111218154150388248502179471892870832249183685469026254555611485265286036780530418455811566114924658587736908010657730918750638737640278477260426371375246803529474124981796627392975841280968252224375874478313512555666601862357248379996525225854604153544716248080395933390952504763095923094860497625417714320313774471191633939148381642546049754558956979737962255483288675462772017144356597468102941910000224762484318470333531285325775151787723620461836899343823216377966067379288473982621740273854638785154338721740761600319733902641568878976023777981663348155412257090029387607839457399962720217231191152498752761514413228736431070580411216114957772694901575870619406144231598764755432037268435641605769878169103408978279622538606387176070874520115140840513743102307792847588871938003312535404943793966850825583342348263619626853753171992520442442855861420923894242143142588413718457835155436761463539717899665390000533997089451899802148061746651170498393534016593815794142727082181255147447314890240646819762841220191741665935989029125992421926230533272533336599002587600961005961655491877420322646865600902106487055875629525344243328012780528411411347977750779667769537672082003987156756065835908246659413074100307710529821222140894095180566188777269101354316068921537213111218710267008861473109858894200337934324524159367623388311428156844946186552097835758757777281405057708978419424110223522368805219609875758597464243177789564824770093093524434353492706834769928468048029737833868183604084709653623686232037032716984066587568155800981428424267207358140878184556065128394652176167689415854392594304693682977725529656727634956208828060885227438523590913843619560645783778540689629815894270127261603751241828591746232392819723597406599774319298759280092631764379011231932670535643399415847151297245282177443430473419649713636402327681372798548041858298633517421457478803034933413091391443564071593615125759781713406150168279073991001353771261862912776163493794719908767768608677205663145992496607587426345574296487659030450562700150012590058479538660875617564962632325819577092959894060366903963896361363641649831554706134670800756567725336503991548805159613250858769722962169107785626457007237964788471688527971225649279630752110619190021453235459389375309374311762189365160801608874200445505703943448447831117575978569400780619713569035510699582772150357596868463947002535528258057278752876100762628957526009907053072952934164117742682167452845781081354688072568062347015463802924088910180037054911665343984772845339166254392500629992474831508586757464114647471048647916341534128381363067902348634950276195643103890321942102945625752932003648254043493009217357878744983828921399757461095164679385748395804571032595149409056426245680009887808764981790146086308826286462015783978639713889387868555102885659004447495296884936422392124221775842963417935898397879804088347858461329226409684405809113273911476117623012919722087867749669531954054267421205872778635306176037717256722114432791523339101360378209915414835290965915355065083817399507952973882728854957497361603824732321822320670434744148963274376333527802445246492675569879106788520047478178204751319010417799512770632388042017053359367812596354560310257456449111526054982861499759091502148927638687130140029491918742929965065320410666265107988608192598850771587403159985710425402405674406374867580080939401130900430286701133307982634387078778573909191051747178060012393321752674472498490669869430582299702001676459069785482235107917940810718967102891975656857256944919488573975838136138625109218589520785540337767277543267034718433345292093332006166081413174752743043129347357564169805884857879104159669259891448710886886285214514567790831334019580818856165237495553302217889636830553040724773943470256897034491054081316150654732522886323705381146043219859914506810358232506837385393651178511015822354735216512246235501863823955885031202267484002706075263159839780415015075568650372541516803907735240715868427768855592273335664178601332126420475623378916932274960395097071472182937749401582793365625175158895294786355919577301353342428867676256997698820236496982255037222489957672607479224183823580481659620057844111766457253251249691114326598145089009385492559083179232007625165746942696656860833465524418429946380495833998583815276746524943833489415990301806660710359936588811225025876626485618767320974059107557477140651727200070751520253693767793967908045369957457507403200525279866901191480078523416510711511016937888615039081127411688149120134082575561243983371222845519651228463914249887133550393095703424381262676196159551619567805370560533925750948300796326734963145742175143308100474850112244224003442785872694137878490042264669666287045885255531813040419565761783139969732319246431138892364840867690978511410147915013519278168468783539578498804035324897435449329314121866830505382003029125878835850345545998493110286281385050660754190104911087149297754746718366836985413661077292940084980022180543776591142486306442195772473215070391866660962704692614604843678046653153695607209332562282068686030317019914409321352187011629823784357400730586881185310478427312875149474200195957869906922079052530603631835099777144545194194215030413702798544525973145714945798710845203486091488551522827437240936157893053689682827098319866204660942125966761250857870640270213424400112872901927586725512621116934060369377182131504905848607281701365049899241030831004088651111825406908868223019575511890246248874001215859097174502964153374848151402193465291342186443653816976483423105970286231798527127997819345979993148907687214400022514560714963173718424593538661869558244938690589805114045210038242956024787006547109938487372643416496030423897640633304648092008285363885861277177181217363186967581381571092794801770723517576955852346256896135718604413264557014583053456160450240289623800997024705902966548104952433537270693156135529879899336981625673505742852457138606088000925105333457109685334101688580056127114442765453360203154998221562556948345890930233157928087090253640383580925044266127452061385815828480366039938187830991308504309825574774282617392998247602306569390918216037694916154809971105652345582699037221113950880111430747689974357433452161139024724915276126617154649381880202393596576028712490857287112037109074681000333184451568590817499709750276298355423353300646995328337080956806093563864481392232532721313541918063296066624541265035011969839025516572144019218731424148127643437624244035683752140382515924648114759911426640983389701594897158054818929529239561704701647024252531588412140262018424196372868771893741584360840717138410559789232841963209116836940437254475123119224005908033082013738732734237459619944892503971127855640486076692100111856070565653325230151121545948667815456606946917280679351366752268574377098841266828961001724457559868940810311577966584786429104769592537349642068914605768232317739004235537838341903060611012509887061237311763407434709867298325280184027687158917722347135138507989534459931463450031762267020631427948567186272030147300872577255861923374958725440948487392150320936085124593381111323343656648524637785776079091465460045251142927618568951204493929014827997452702692099420399435774417354126426177716801376856474505394651513769325946514440054995835229029683087642770833425131336545017918466137580026822406193525802203858173758159589415827283069914287929377665100323008775015710161638498433807979877960461952445379339375582621304685023218045862929572866311456488902501624391841822678598728955148931009284094580879189233353444100896552700388220222358494727231011114800867725699500941496802472409194617079329234917316301762854601776520022488074111705647409906532083243501024015347375796203378143135748681056663093701893372162236280580416201731034590572864468000571953952207020781872875900231631688885783112069586935119185689679515606503515016201590395044435722667662200263247272213616623174064493205548106132332657339048699846665779455166339547689783421182182683292509991331093109362452718678193572973548572614968817893655457926187615906324624139272350416659788610766469452408987694378274353831890625156539006090555490666114403436846885692642125221299310846345287452556344606158124839226752920124379831227283125444671158265405987181570968369540838599675875163322480472890355094582022082649415274420512670296939422596457018836533245337478471044841625416890352702911879510935199554951299033479005638949518898923746343338442656146163982020899517785717868254041667611891281802374100242328146242383044829889233718643026710882694019450355568291465878355711370944466133494805850205273718891526707829533022868970747701363361229270296412678039173908656857646735335367803220922405189266880027031265423183424715961040105565929701372742072321943343745504104885162599107367256244865843027338227878324349467857477788642443054268734122631988492455401269554032703090380603166283886738926309819230465745974951983932723133468473715570313636586297557656121470968276396567853206186257157946461202347182014814028503967295910266443606779118854030549316910726349095960339096227216882968163038934188465314909109649913955049641450333423687355444650799230351373449570186334070371148496937659201656875236037533911279093058806327679898483603632356987825734514471405071653386568875944771700429299547797739347101415092767454724052986139949565118186205542392135847727208516502709772741716269547563693623692889244735444356007003061216847638304704549107991303535807679720024273893530688932580741192719411328768531125462697093357706489424377292424076810565718671507997646515440874195414444104112117436262897268360807643514976704224098871611373691717463905464462036038010824998315983726945557414330318874292521609100146589149173224997055476353427241825285509297027631753187989993286167323871864215979007228531764349961669121136528077556648123225214956391992919749757713170290118648389682316782404460230839832041286240413055654757283608821271707075966086582932492733275058068846479257336476368166682145462314854040234167509717551018713706793447029663564410169703481785095914221130352758746200877682153470580739678051046608711887145934503216868277472749508828620282584276182571304167070807629851493300875514270830729872324986192898873606228534172859691249483943749190293191852085978791578754695885674287862062394107452018125360694960047594708473064203188150620865319230870063994930304907918817215042940865628236866453877914212094192424682818961837918798314027675549220226341744426810155824645463816787419113016885203209695443369050688977774836429713077942673927454901792921242617727076732739376749542340621419420770957460509426940055106037032824520499313145819345295913352816940348069787385520631211318381139702859392351842229831395259659938897841850302169232567856067434126810231743653943450395092952156440158079671535501598681562287583682613746931465478662236557986344560725559928258347604505229684360551345101074053996027260411952671065567147518687791348301286089092039402480503072033034354656779990036740729969684605806081056694299418384286906795347767391281460917704297327835637234740971374306010729782421552568425022160205431885733130078026925876584637242984169970599318509060238573366540834985661571918359847405549114370267579558161471487366438909469865208039276591776546697332353763213673733772996597359573285621406580106600675031528399153119265890824837237874529730815091839915351138571979039473526678010691191541244126236913816840670050131167818287666026963348903821203719104014424056954881273923924146908812793004582978609144718908720964873599825319556323487100939725169001929510015197396258354203213223282086938903627342118393768846218098789783284076121512382409351216477767529616231823688224124734475774316735375620256176569658972701686904300349950870702526595315938830504492536262002784658294172360205055316407096584671359064784370526749591187676203577596742452076734987283672484506482479146994118229260301993980445754236056796092029637551000013786371817993116573673246143218830230613461563685955104691067833349697951068013054437655135036754187612497789016688241866070704132910345702033136152917702180989059145223367755799890460223656291201576973086265291551549003409269397268754177660600730070433351653710657943469740528367047964724896223263846157909513410693000666698352536949745699915751047729096816552465804245064767404579232432508826402660889597599400094557750740806583044357764148658498088069638004237632650862630710021970168248070318523563528864128269360247118834945241906485885644985468080317068508033966303015403744151154168196585798639992881478861996519326534135399873668790840587864833519409183321729463624258883573898329995623395724395415158069711643445557041882410559063932867847797913302821600830273883203149625902901081208458711681199793107903486529331111123877020938371178529060888481202966489049262893702267230349281475266935050649107819877742893820930908662845521682743489039352512924440526176599760085657652879730593558031144355433319028083585974842439121647407804980246092077512809170253092690239017932307754972678975333598060099452724575663138223235067962924460016936837893371627414285944904907276023294627372453802640276013538182859924098207639965582996465261511681296903060547634799639510972896731594451306603747282346755001245783327705757636146710761179325998248417985601777522650542912370647975755305821922917948182982287205743081052166088807164474363224248436862916714732834482400810594608023304227768563700517337876580029992735581820980761120608835385369277124497997337493995375066980235461072757036281563693787695687328437776431926250368270207820381299390514623171295434097059487588854541086931946548330718825257443626674675298620898000560988509218578616989999292964712377558107556382137655078381005874725895038275668702911875402217722478768592027661899180168477349732043275015477876420957498063900778205562527686186413562342191456995748324426099402160617206613553724516753587902864076588766520798659674110745369867733708681823698365067842835992551697145106437335732059196103104769302844912205944255665850594659106049844907361433950578854696465553830601201060234180997334116274871481300011067957032100744503629034873126079073194946805970878019933290287375285212464884701217082762855120181439790310174633643727607363440348875539237441591842770932886660731743545823259340460437931743986571897086913377847253171558454445242982347624522655717469520103120033849567128783444796940785672323913921471023416480938651883040734666226266133852712551325583316143568154334365694110853357757456013213849246010251874517489402082644552397311901712061825044115927105094489741590105162846059199299681767860656803828989178438889275220594196557740947490268499844668196835611058005663569646748050344305985566172372589749817362261973290866489843110572630785479218644989334079803555983345556745843060109097298847922954680675988387693886194309662166643425888809789473649852742759024634589861961779949200461289292484988168056950427847093717109151707780565080730170357318295140067686092888091974221806432710259655484387680686506287410225202567472970911524258449141390082674567810206890298317660889121508984482967173658193586013708747914064498610763804853154145994144233072166066393939251527672264047794658304854536744811089186213675788229270011910751510673114878556397427737971608829971991294600263061342651753132484805728265245013767758980852413467537676017618473464632541958808695763855987326188812312234863398578489844139683187806382003249075161267500513574764312381100850298542707685987656414685612465000515152969836284561716867139829842295099861775789028195977693817116420302259240072857323874536127066471230084906410779084543509586245960855592599496442943481242189304163980505791043489801821060213528609459387340371416351941491630033129861970372827183536685668872057199100947185053413049057925338677040718535484797201767397037866794689523172116111439658744584838363866031839818781666578398651952667365066431732323561573420612259765576580815028678378034712701734376330370162059017717669315778488151428616225689530604682343557294824902731872243637998240645342708665503913443807017879517507027560469701119395606728064348665476749107182773685452821770826121682039971551439901159686183294863997379148535603448537964635127591792683020688288891570252580795999602541550577355103437644496538927651016924201109604535145493601456869259020683685828640746640727897388457309579174404969495361352157417972663926104173041871690389323753592657299660585693792956853060343301591152035434643695763463847461770103676222287360957480223934384371602235623910996574873679828863895149429523430937661897537547828181292331616294771045100259557688818229076733600143412693643727484148904880625872413034648441887835914057546734314091999213588090404108344244274327133559961414891026047598046209858748715460718847965724717216637214961783343465831876021114506250613259353692496360438539384031526391270820676916146492060122715924448200205433265584168448416287096030611470026573329106565084586174248627920268730621139291092416394961407427501531833077338443770476286554201404267077883089982201448352249995516395704047079086740711735236898966356417948929373345016928000333922184449472678709310845485131374075795444812892895521306570329900265993445985815831068771631785383613925589432429622509341646276459787326745073840605929263098080883629419968412270011161368260570998226186722893135015085681323005870919059271164201322724857004496619020227922874786048993949748849042637474978605190441793622697104539791296455873719074631325261821817346562026867830218819224891800402620453479798653902383642161066406864876060241237282981197501407415084511669253085418833848698213037273601196317178885438709190989900405490423871442121265503927148378262437870518308792333192371782300540485146965106522682532283845993684718650692707093282279182638381543480208384141586966671251230977929638471098544364507221643381092668140167715804840870170628542882472439630365738603884551566905383557034952894400462001793838784266464946848269584160014119154281796497793846385930460158840457641460147873928172166432034867038620897343913896218205135020563817475092839438614748720597740153789890535630366949891482626334989361025466409440334406621759106962495445962545368472681743197299725839037134983176064760091863006279167764753263776710596884665286869654017935699532065934669372338515693228801897614784355353315718305491190960930803341611387159171615971337369612536112729750408815548837251910821880135570935441252877690727583094065815405547767388835633738083549112348115710542839830398264363575048362184060105764353455844831587663504352976486596346251282913166408403662793961078979461968675694987313204741383875535705529348399582380374104672544783142863677377362516974823195676571973775004607383505573892850641677216592639505149851324038241019938421132021858286784310949314720224525642056512659905103180169709616223629565096860691504225389631120501187790982693299769455179091248003758423266046392790119182485221568227268447436352799629298989402606844131201694853120828350047050070992950647167965872360086861463394074367111058379729145114799280838150893299268832898767548175471615858760522689648957101793522295905787769613210290678587833351188673994232101582106693992903984681737187972358574935925410110467743755856336947253171143691661005635425873944169736321830822496536588799674920001004091489541071467948653550479532445916433148163155469182591940825113661134745414260283492690909006367956483214553562095192427159901881638681733336397598735664073251804460889424647033553222146451662629790244956322075306374743882450899527985774126341639874654083217418189561450236578465556132211812335103869529377177047157368905113999413418823512868593027169870119188558641807850459166257588335594109085313450850598249085041723740487711747341933417288914589686246972781397735462802706497933708865291412936674508000916601512443712768012775340533937258462741314649208839224171327848515350104175389118182992858202484620805664242611484056797741568070328163547121306305230288668217008273802939873032449285829380397988816878775081708778687595600870069545508958498938776400065097205458698889093695023790066489795470986390793356019585457999179979274247698121998391544640912372037626772257094336204097631732554045505390784906390710205627552593396480189415078073411637636082722312422722017117852147609013391667143143468526423572018663060290042349840033931553828099096513280925382676087872614556719136784780869385892687928387625667670200087719334797170758800898582580239279858546421701873749759770709671106778051316359874894328689739561092003078932475048839099334277245634851900695611781704236346723054592224651082294731484661636370033937262844766034792761308903818474786415504396782293850390079294287303051251605643812086745079302162363569475942578077132546906084058296818505715881866432578841602562552322345656921098985493948766430059494755979313303261298863577927795816331940518120397863368896406557284955881528180527742620987116772868174918335101897474882152634344006190259722074062361263508291987810272786595835740094798092836119321153343572385949924636128672112464881263554990281237172500395495717118834668725401301979530266545202936512892530875640529863792654551222295065295932275722293303176614841314011729751268447466542735242146427162246219667639193175797204973295686484501673208487732833205432526909098254516867543348922346502705735580690070007551026529786053838915051277034350689853218339762350230390894126400438210353178346788516634548728297647636050363010484118458164863111748369759791961908627432349184324512606524992452476316041979598306416399537955164058610523548128763798304934885204181850716703909565915850920513152264352517515078830408953183265945022033062118058881339571319526451898937099560198975046169567530907115162247022654852477161007808137547495548020254075187758817900337115481724722453402308398670693828824864718843625430888336740722889951392807525623450333022096792404921535911472647841026504271604754504479831562266380334792352954199544177215938998705368195877788629505904418202671506514147270457180103680228587932889275546046162093230882869016254225246542204899984508596658079316487399249914137689252749807602424273681704650811664539485303846136710385958903394400747692829143252066211407700836843502732454767367066872926922462464513470865735777876510468105833541524244921751561438205718750493366307588873390133408721623131355675189351963850035526115886826936938012151287655780402554734095353755783991246159470458810912923971899593707816647383877408121230529045771354160969819970437767577275484957632865860164104909790035711052914017145841065233210589063523563156605445879768085294243328360315403405434828900586705729852132617544945395844337083251464874255041826631438325195802804090077669462869218420765488052835027066282309856741167924299421922640344445647264610362689209550948191099223174708617464824208503528159823160275110273911619201901623023492604435672497470641035963090014277208561222030721149726034077701538905896944774646084933740474850230379309947761712377893256420195298528826205490292121355009850010069270604974105056212090707628898604745102591961034095689513035460654772107777669672437886531920262960606139451904127790539658945460684187895971964927886555288651153150413489458015744422720852662471477915856212673316721897653335452641669447384726449014418457761114172451700679573109401871521249657267995228693410812744604842353947732182219385772393458282455963004647704245691935615118029043137909802772037860289881527286580643604702866432229469211033383500209192881794996333521437837457678757218779887601345491531896114618200358314916775198390698149131018596171976533632536615258103141506045843904584928754985783166939693745007266076221606163938791675535195879381273517632286414068776019648979159173813544821493085975056317905247645165091842590950504719552831411397354958872721768959103643345261782490899987409247614875213027461432503331670196953270664306042643480134665137848329946545810706722924426435874050422401935274970837849537075287992550420776167439924509938682280293565694741162677822262863291579336070860039303660253996122063875286128989631437703006369875655259346031379495068710658700978726390098264608184238992521866906062422859493474401991223134402576915465734678951540949337697538350962889415700057127899181765231197714284216207414440838607947301664648266522905190263817214741710685127030018525979825910389450682443015956597940044657080769452567702636191967379430435617670110614209845111587683236277569290656586491605245348860317279493773687433475845262935817308550485148190889720395234235914654435883330282107568555967381813162571874341793517989229402799071296053910320148458113200783593714677048093661732070499587886808398066403244361338912616136939147895534021920680176589459712521601613651332820455656599488924918330783600541378584936085553511825004667627757851855256464662472832421438652656216261365739369442911453455803778298911856686642446239287028062004179442051861250710224192861205563438930146048915587626496646531473314793236183092101649000323889143424767705379234302178451529643972998397675540710337936316232016133817009324717509624528942827736224768120417574086464659806836201349434616460282177451824190916857104453123067068049195714395235297571621655068470995885224114179099912259664089999176619116290473613792457846944493607807591367338420125809028897958654166411125203011046922599608155804834040566323407138306952985383544424834697080884254747327756415424157605438769852426375209096181153662944066662457309563457128742900387674328265203415614065142413637370002195754389408499670968871232559734570559863702184876287807362562962845801112684975326761633885442851475804806435845059569903120001921500445903336000455597324648094263405286618727013266511004883442288953564463266020890152456923517128950149265389122117042507194539748391220163652555625862332526725503188323423219465577721159438529640797160596839431132773126493167220871784424717171496207688535898589843766366706935179098093943394333943354543802993990636896453688774574736310736941439350097319205496835856454575663206482433102361693713399757779236226392207009932273377693088354475268409763957388315274939056446927435635576108698449874529664761642369703974229596321574962397410157731119429827199740303985492426658810208274559907048958164277891545400164924101700013622257048489854111937003739812961323332983883966572784687760145737447871213959586044425649942489488934062453167660993564341313379276947139183214942226831832507472539163579657331967326133458784596542731776697061156771466363515718506822509715219714840631159073510986190834881646865747563031195764046460887097245131842760434127858741472304092979153198188686870858796436677485542315868118745007580558688703997112797929451696988050277044016542685726184602549077689628068760347896751247966460220672981745165880842128896897474521472195674056826324706565562945995729421105321694642879339321563550217417268833438199516950446920002825286040062027383964198223873609728806939876302675322338959897628223026814617430670736413580801766407301242282339339919256778550418889655565565301086869001202040312104387967844844804963606036843573465056506105150731477745398470479794591973889275853828151238364193084468332929830307295033634583189146835954436211885254487827829996645652894929530081892480336126625703193355320125504091710624290605861107286073864605420448017041517893222868916954061489668647440263175776494481467651953939005128935071850757592591041482725825732825920985837614354297126351687917450555551084164978303070422140824331983363465066057104886869400551388847543843012283260836376934215412633841157752326298149699683254505690677886143240786188771445925775247634375193366842822907128494576019086414495903018124367865347704678191122538667217463414508392213023160411642619508127783751704774454792843915047056380771438088552781133542554412932580592275824551762939102509573022932853135304708516743695550593575720719737649543442685831332842996700357564708273247454403369060158228866334374332852535231933676799328191019443205797832138473374200905618821837628064153526502091085717604112580385362842633837508743918534062868814777128979682456507408061748613644593827024143777827952076672192843873298443558447545147691224008307546711362538204345396950094423448137641067820932903244415104440041068710436093716993581274794391660468713421048217547540292819959724876773666493986896132141954799261290518574400113232331063460173437554748775360530137554961376937359517226311681231451614599103558170009614330224400040030368979739810602128656793144488562237517777447350030837197802112468080162607204176184100102369206183568964723621193140625411062901007570057188279997558017658686278831543048936356809291778398115251627519308149861415880645782490005829044142963136492160496066647898615833565837065900566578413278749767193878653252706320411552217307228529191559141215791242593742579292700435957683599256950587042621088113732282178576601820006109621703455280141693899189194104653601848186858461143469239638272513866261375777480909854516013426975351630244103527270012820981443453293887807222193908161136071375379553591637470089527506987875633324392248579415982376241509247786286472005275819741882757614346990629531899359811080285569920117551321186986625209643895697100998454899424917025555706228923530296589094894456580067515126535593919498864137596504143641074986248582780114384744706685614844780348097403629363742248777282548524137630391403493875237998070474722206794267023157883681910014538335956592650138963096514650586180394716047663437690417945260509303278801134038874338441042898917531149556888711100754464170197389354608417320959764252460885227882765869453434104194645657650259584547935786605684127628619991255747670999107310978755321917193626870034835736986156836181798200721660691426768520602978352459937573846403160393420990214398081487837914527125759659820977652586649671574011415741360856799725280143330622126729042837382321573928822178339050978164258907475499787393169329708263226213508130314773630847928969281777003569886700669659410702588426421566736826863416455598296641791863944542413441983521630850165535220697907385120110263544512650195567235104788937526102098415052963206856750487682080244080904174227714737225589166145313649744863113577456957644196747054532133815194227973870756592253108482223550840770115698970502966577231594071987057847607941472075572450573680113084807233994993252289992017598057695180621860685808955132635341371466734525425136409053043901187212334537911296464104580322818356103724807276388935961913323605851137470819874155731185250782227390927808304700211341460004730899960812561891282124778621813546380584243415325437594268666031982010641789476720608878990977690302618315805217549605436567857210443346854517183533964485716507544594834909138018045560317485186329685652438773401105807338542762588120498293698842103529295209786419891327534959912169423764779611823028660711717336422121382326170816621225812243126348804750575074630500583589552114939302366283859618835880400432952941300051623504964175988713505568076570426471616443716792477444655331057843061335310133361220037638181716535579262507654599273981382680120856904083439517972250183883266968753347727524475213637439515229316075724679872164367953254857411459279055028031071672567579234484611897573727872786351345074807654558747415302748027786999757183773478334754423577963863630195579760465564316590186571732930358637563185142552774038101214793945580676889015462274940034437611285508937237524040208916250017025358277889148873225533534660697727711660653675805640811737672990686473145805118645093321509916919125329964296721781432138839696067417991992400024971008764053780185675510944453913823019896029960819529154125500906398821172894161416685064626087171516273181368408463229165419186031650665648683114794324205184255118033241918394407481249817081705090456770318026717922114578878118228962894339315218676313532356718723184026325456656780853744885703156933162996270937481483404863249153560911359178383437306847106711828677125901976101773527662887297272573454445394035199306655170647104014394001737993635704413798988647712311708956658664576900895805634113043237266871661742631074308856295552958633261609274426935675373635787841722100903546182558845047980106014186574029794228894488431852776349636738349144309563448989742452530976492083220237945461540362515817460281910925391173969805290154424765777809030284090691915759008168867773196668669227033277311393353550979324323664385610607799474011662699946914785856209131996112673199591906776904199086300353880470241578122868843140891544662675292918527485988162278282907786907010053212238473291190707857674543612250254750519819027900384299612328103627517110555370647590265022540067355747738867419314846535649301425787709337406925248969256458400672790625508641900614717000732287817112369001924922958428820514666730717658379125324057669252148092214813556141857852056258875888705006934730285290938536405682715634380191933350704095604236324706923531752086152666000373291831331403236009225712665434373309844859009016099188430355794629036346125618628989997952132205930838527713186913558996410064406512413356688397607392704708797540678966403262171967157887121157362481656721326355857721052323394513511749782911937540165107591945962750516374104542802645412765580121949479464733433158257461086993241008648467424412829750909520738723868236209713124075838728864408525342593339971159789114036577887555785091516515453395148130639248973264267653302039126961023254560728544877997491641909006468255267190427078456886627736417492872497341397589977684784047427551664194931883102070235530877736865246330448015820344059733156378638464359711294988738383463488842670805577335162747264752860234835194512664216114517893248049979600603403818882140367511821489634626609289281443194526756645358149969517848315665491078568614809518921598930538091505878288005699079674820341661629664649533296739506699319078132069608949007082647120895362517149052529408069369582373339397420811251119423262085408966848151680971726817796392258603874212470626964172375172934585847934381345182708302992860082395194583676953787582855856636639303810504396268277951893417724668647768407124590866462113527810132298997683055957404448225803540817216323960538677432237285458681826880962907999932999212086230652720016130875750322325945670646173539840428898617259123214994641759329335296960519461739448062474612544135889575614228670068117505831500316661261003204701602714026477473589160311208594782798734932959811591677823574562893555382162279967563668765583045420506031925167591918286439305603821748095866202479436548113493722948241309180596573822008799248006071013022404737002295846352598411268471436692536240430712010065914184526022637236875950913787713076561207838021987613147696746009438509979379428597144611029805485897999169933187897056134078849837356330836098133040259036841293221942757642699743800575606438727199842517657117692557222214460284533286868462101638848843187683413991549405828210842723303548648334366073160385150109707223976591418497861399546357611922879878465657595865451808100786013535669458912276183430181828855921987385428965827749099207706085395085575909759203177411096992655873580794526925550406009740681503217801776196001547241225934753759426075981873074260828355589117205735648861599780072396850595963170438846338874183856752675683006755958464369630733536352145129295966901270969132143519068287290247588530807884007184422732003413227616801084533985744374321141946529770921084896407286669817416957890153518152176673779977285791982013003373079530595818871637749713063431289506632398870215588952511739277386610354457052507594391259948329203228058105622588167299347680326105242699404709257509770463735885811748392877369729699481984362286069023627389833401519556333484755156523931560719113875170248181450070961606430341716681747062921198350747376669354566103733583607106216577749297539643102726030016160114885756915132787328889873564178100762407681133125003451725512441889406720852561680701351829211071659158070456886107989730194713936158697426343163322702595205442253436211077431066539633626911354806964212191129094058379141425452287159440712010184940960095087572503041278572677780084568313214265187176177263325394585485533061744484780001368725681164998248817664657539561227717573959773833802558703050757181486482140792117988608509611377436967914204057971826563489270484032476248572074740550732768374693001196650898254209725453483950281095997605976906641479818279838378583804275152347301122183642817853789981790390049145065527981490648549224637364785731651730588459292858141473349881936134347541544277130059638893667228628839082775916148139327214955921943077392397210003256328814861812482551477402054850408465855695414417103712969179871194337451842245903301726997880794317803189409014609803022007832658672924374380010092342364702836147790017185128323964382135931460836456425577116089688623658199335572462634533056016086848504598545456620338904265326889823660473956591031708731470706910969712058193036135340549091707061156670584819384721329811111296532833899279571786839999435463651409839403995862811759467750503634369872441205061269775953705428729659792624744931481750832624835298951913138985702530600649001485008308922698480298048523329229983383369134767252377803174553250974794055881372086315012444016465127869537298387315850716736655219370221287828290533639702265881094591377323580462113188457474491893846618806895574803465207802494667363380559687484925106348543066133025771561041318428875356739465255527625816215896347877127007772115166093645689097045462548312849964346542302518439148526613662496392888806578584710324264578213037317255739990647545563033582296776741957506771816528755039055625108787409735316171482256446311410472581030571722365244287523759297316441372164155483122291464585249270070584223316882100628601754134905602942469680269201436192855382242721183385383141248224877485751066368114629837305718304465307318747376786311684135932780249853155360903372060141660232743783982611942431674529671283764026045040003716851511362343034614995634779992958530476692275756910209773567983237550845489156365146901861291999568873201667476837994535167599840328066067105060464573057058954327207488627961592970645820830094131888181215088822085540885928638048158273398670791045995184429620665314052112868365356821204344429630222777742424777517353829255050623421132987039760734428822958000644038642030543536818578175907846344560185299686546962176881715128029681269945932128326881931900676609148532247474489837546270304352743134126980075477741413890100894461551857143439907835970735162543049630646163084689938374793484034307757175414612225630273928268071389133884709668036280316560874848025067025680996872206021781692368427453038388550113113696569999165359710309921634669618192293694643613496458049870881382066714747197242148275274405383679012215122817997188332205928685764831059946072441267709416231573400842779674396395416727648797753876383543594119864353165480138913810454177417139938243401784049039137734954638822572010048779502409434356105948578725461064087144487150999435969021053107307681029153360972739397014477877810562825650611519870021222307219160100683155434275862843863780074614810638536392515550817581739080275390374166465459375691452767860367951079993280460839521913382047198770195970139403044803217167170838989922931601417346690094923997836615576133730930296791845800839021668051047482303776451199124504898480164498927564964275092271760552783582346769746165674717109863980260627365075657719289826567607346738510422426580408266467630534880036839153101232419032532573309120059956891310683182099953209682081378529931031129244852105329623644802415414771909669297108234807977812031581668670190612431769648309696018850992627916330619066469350177727793197906001098525756828706342069369419624533192632259218578025743682271076984345639096367901059465789165117303437787560965703212065799260996111165617336467558064053953185722845271342167298925514373016501235248069727954214937853636539432992495853125540291329084697505280692632044491311477765107196342591475368903168900711765932201238793407242452592508724126265132951644011539209418625749343812772470072875739735563713458986083700717705025819063899425472179590665299513452935799846486385461262435927451004867415786524908059458013935168501453540158938659018940334032171189787515045302108487724315477316894773398344931356288108783117228033646233646747414259046221439140089411106313676963602831272918517369801177646933116583005835525471168665206948154182734099649230988797940278991852355107343168075204819731576044246764628571352692216733926091778186570490666823696062688802263277907144288716735623893691092836230205986553657991349543679561778568758287835664015273235765655927992864190640447842177266455943858831041620799064277491505618934339010520622311174949863033404177441691446150340225655882809945366350671643245150429412168037116806407883697008747129240594822612180573246572639806480505087875880895234345825246465565278678529275872818477697404234684169162991793567063628874526640268189743759044311631777871112353238990338439922242324305355331880981822530435876863981926244502846205541672687338862108436774534004396857084674401193226186800256550278197435841810147831968247349865170399130501242577102557345136009252164649075167839879998281156695801096980566734406157034923947231500162833346816817173616873198284361173044236421516402093466014013244488992546817996434016635934112262500234168560743748644723971968305886560650366943165406967843548044326974627973599600557091117566120155579524424827510623299712989280459857132496398668235779392683782517081852889651742869239133404092199992473477479757046555565470587415571639170425566642683968294976462255950524132279579926146061139991207880502280822666105435766184717900776143311123085765477762956313213818284356064430782775823735000545041042707968250655525419554999439748172115807781426195435680410581919538027532031790687920372379137351643115435855072970858362990161164733341259136004018781039020896278483085060165514097380012936188826796098250415801854772466460113040614576322484115420955644182267451220379606325031580906738781033788508262399567464190030581472219694387956546253860030999255059235611821446918037690168526938366072882941835515713602568280796233048094667183152662128014683613017550307934562166630860365082889591324482538568093599297154616411922770247654805954303025774662260143835689238200085073117858566188687007735803990018864456068417051627004783185476399857650378079821472036804133417723254368388825725270820562456538996746702455310754697745416751765966989628213568072247054507309877450569093664168000422785120155915169645639608867139527531972211756033327579718185720366513828677292346772413445284603793628589750404635217782040070771343489411472726249126542923433620878238841681272109282808587070524718188732917893179245155914756804910093653147315740335836573958114677134737753574708053271570233361137451524187194287997048948203465310481489510949293593988630864538486791607982802691862037799090571398313001943544945724260434976662188319983764557892182919529600817180462229238608256000761262654342099427508301177677302326109194988502477668504179155732571288042757869518786317453843833284754618451614724719555319523156727182036972106904039039622617981089026534547969166817040884129920918897579243095404766450084228285101851620382455065348108594624902392772775787817240320212559955513196080227924742428902437759874198587657419351986158259122916371460349550362716647741438124221511157773915158462416511688741510359901642132359192881398597449021245167280021920674239658641245000976414672168234784067772961216703499205046060774334110385727464001461322665910773712497541353583277532994146951277306200726248239693216801685768887899819367222632503232105271835090270232230967731580356984103685000914293376741795956787766808775864735984621102389736683579638873492650196141893247243917625790288565730966205399307902463240647414215331396724619220193257795064705641704186254611507951513824446828990019701040765337409309906170892347953466838039995351042142360173178109517622700822643517513903336689745042794922637779789773882293017308925767439600074224343856712560161523327656547528460211517087541350764574687957761886161857595556630737777787212789555944149983187068589984809156683928946880408229033065469950862545864338302673967141865131593268058280313216965502873562678601728989248732133015166533915650296681232437063505739406860888930165992625440650787907313752813039790231017726835161031701923106476319518127305474374712470571025657222868232155421726312504176898438747455956112777340388133533798726815790394013725668765974300063091725542552655516729569867032069940457463167780980911641705634361235760632114854742936546202702838808247836162067243493093809493619797368106323641306148242086840291557465246796166105644170556675200624937276454180823727789081011260989798377006792873819684529905593067842636996147252149256441265895159059148012401005954390649295633639579275032706884554274399640439747114940828559696184992436087705041483710366807977705044655424161147563038326147157813250264884225753378628600564283414003696840669476270702562790166369577941277984848694849386821420256976202127447432049942079498587210937796209609692568802750250994142867541681257551727926097729594904267808156374303680513489491429514080104965652153690850947223251278522177306807889055475665073099830918334523825933100367677479883769850530886672912097680873251461801582976667300978983999950576454478159371721937732826663703689605634079112587569687328176616949162212439404163709483343827741719943118046137730366356788457660664549351714378397202595269547891214945465790743181813328449870187563671633943187282565811110273806658450583419514347464524937841321632649311627108350030400284587833657709352033609498654442916005174560145405478671139772129573245241522913591862714234111892924363105567178601099279550901277971443548526685244421988596906183746619534273278109659207537353492458672221757682701236064449618854600609938083277537441107298335692773408571666325231897750463532405054617018345649233836585920410684489863006868025339861801019249156434899913547920270290328215719174174492468855787361768036986312178404340306230144150929086142653704744832998268716085125466766595636420171862019682347419386840020516066769272245976548640238365448719585932753977588952384577517900019205396005185484431127855357048103702987099314092952152660214936253463273928297582260622935111378933680243598267945803681991743067972890975460587741733413096932001571193558814414563426051285161947978071423050417281585126627810997183527013640242629118721961579174732413733489491411348060010148108441755178457995456144030446879409552755373965790203155334865304334093223787322532753171402283658221421330072470661894946837668946041628371240601655302289310916300410838623356968344097645576693471592476072607648118118157809526737374561829625005333233840046091101519455897589570463105550800328690140914235270968536697408715383120883106619840237357466908406361564690998188899064390017716716443952695719800408342591450934245875207483217583493106154268659526186731758856016798825734920749199288290742658245351656990952656860714427414761390805518166328108051858458246464139514866958509626461427631746970439269620794531136585361622477569182400799357909425943059922090099399299719025299258245498621569949766672256964814601196752221420508938085039674908725415610663269966290500200282838493806310583529634330895137260583331381986522045042146653860038033385973638987290006712859832787771613929673878280089789057884808707139346051285362804635123482501167651056926225915303943534197810030507916560436511827135903644891321824443437220334949755692295938299765377902657966781134530991108203506363131353695642819549176214367041868889961146308803111461292243778451222863511196822135739583628882484218377760331480744786724754456236353884396504318736631427078101362189569576318536187757683798878834887087332197636801024666747162665555833168713681351461671905610194680584752526026030316913523650920192557273484578226384147956435046871756840211415096624910820804012853434717074133097416507729055372002703408450365148832189202850482848508507144616010746116888467414590379158887755178626898179166928157271370671358915880116099024993031924486886552393722745368715019203884718398627067090994535158206810206647416514692038639598759976049931567218051898431542778951226691236331855113964071967578726318989203690544466976179346070677431504690984826009314785077692689200842549060346455489094002870138070994278484484588734579539664196105359112256096978570780421511440780863059335446722798490517416789614576993821756069012707841448905689673001508192637647299001533673292718793208853316210973332985794793017374061990464056220380461079987698811143898441119849298286844156732098557907006244299676338133118456680717798844666170596653826867021642014257480786604396106199528863778287254649298448321955990268642619682716163697525522852445330166581294807536444019429089709080516013478935509590216155704602107404197737600476294072803124374149757610402189409925206831534527438619731459968293604388444242402998773893251841189944602728452315384333250158462199002349198058027942129138161039309881381407361304309544945376119311677147898212704760332493854740043625021008934855080699047029141007516728852958109247517900371943978541896680725719691323552657619878501184322434800764355607709308173058877925007177690864437501888420918449605295682091374265301414424003242703189554497615960059798958314869872420078999076211476957816184942348152157347341731601433492709697750393433398184283807997367480724693227066893751596437177778952674241669431794694917490559474330539951175426229040211333071376404712727794979254032674423572379921804588872723533598724949521296235257158749453627272381892178893324561765253468331492193898646442428536899522730551911469176197429824582995816210088996831546961058911133932066711980929955458485341119990369626940041926600933115062946658990375504794157615225704103332080240996875138774195233251904079456881045294478040773792070741149452311405030581447911481030275167722267170330285017189552746397060695866704957658998273881177958377744051811179302169285834254884030113378856217800629926160116514998186793503908770525948550051768347611211935677668106088992576498825126083413456129337051476052582636017261779603774851948445909014572499767360952841414869002130399107136143616424555713648743359509973717242599139226127585286570182753841421113349404214260174766888521498204484697270076303788474483025992798115991062555187588328875896900210700895560126333304994493940342161613797165587906706348301298611277922715869896236628221337457329137284856056639402283999473350837103046895571571038512327719404193763692388571308496573399913183735943466198702822749105952550018096687360867556866435111369355404235563892796556385331323640321008542411017529049418436877464353738028237408084305390853122770695084937948874579785434914669232233397362152743307595461474314190069801854181849461272187952548638368897039504937739149219849984538615880427322318253216629036891988753228927747202966127711763107060165538772435886661487191296479449345606559421255611920005295269682576133181695415112815598307000221825628544514429702349758542774984154346894921564636693896666688013884788019300899589413417021613862460756098405685343536606076193316906927236402839509052186340012880009081397877737039911840388789994468005876171235556506286853881636382955653705186041575299680327973856681276452829260847823641118215285322114417487723780834981591851621795767832495950970456926503429950073314909322293906142275397327927345559224096203124701913673701573548637700907577502086494807512916633066536221367947701555336708048906958182993130911998958573927924772061015469829367853115047427707426756490087713515399372378908646681278939194909923615650256631304101651688912640650177111433930178428678426247218257881399858292551195769369840813723366031529449197781646687636514120214722151118356035255118062233675252503576961423885511933699891841803900576594464866026095101418622105295495465621379905019055398128442180690554953908420430368003471344968110141948612919759025965480576162639934577893943112777757105854348887818651591995838072471672597979988545107022673465706658831566401586562104767566514846272040297672050271693188587206531407451422230987798686801354537691251211500361152701832740048832962714842454831402215743578936382661483236326325868632267215048556664304880064877351513504560615707424155936378113012605428020013365656505615401585004245346545108383151171894793965878035032316079783212176532994245403432949260481396687874322973853247867926181662408046873355757641764301091715095706307239629821323671993507881734058565520132729428622324873442919640508681983757526696224288567169005802521319424754348940297665403087186582743131604266542144778347201408241635594770567801235082150318963806426949769440487042386580664018108101254416124372147684031413190921342944874272247319112843115645562107237145359091060679602194169729665830399884105534937531955062219336399742276889043069621944017358184578827757391555698308813395992896287401522459379684701211947579434415982151805126777836825570003957481701338473600787540293849312962111016324971098159598961435329071405742803463467969264559829286684261974813291362109450392178572119771698574007540381348948828525468774263693017013624451399483224238343428160931952211358551217962069097648075929777287722190149128413993501623671082953240883499931707627123786506009353328059081067406509316655632064101626634615301857493110842464095074884097170981206385432748785658025513311765093591445930420915396028605295713330826237406322380273710387238306727892005163422167728244064748809591333137261405742452092370391375846375560926638313250717748415114907988499383600107454366856941317303868758379520712310342036200079319921508998833346147280176113078843459252985768584033972992707880871653013188695911900367736410547505929095285307615987787912608663756054408783229760281083523716382896197114014072218625298862534422618845557003652806774364075476841788203852308460630094749722595146146271804629499406314300945610289403005668933548281607145904633832257148339147892937247116811684388046593365514828807389339670978076936515359202654586348866967898428816155817486127492147036485414473690888095217208187676162867724437954473763291682768570397502048196589934619590333353273151233828516047176232227601965010700855313612170364880379651791870843632695942907586785086485212423446120608861071369849992140117108976080238178554331788258573351157861378930544040064859337409036202637709514384422624721228010522038977632774797518959240474124040890732251890047940363330589525474844844511291389782817843910085271907106818178947237940978821483826802413985578603485890746135360710902977828181644964638473190715342055112509626077696226608047208819097257943008154618700191559133926415914392523696324698671524366046667251806077986461064543021741025664358377735970615964390320532547788629496342772001345901471012254767564182176904550664085010297315210251454989494080300459973109961229984244017107989069792214128571000069043971925456430599794996284603375514780425149187768744204990504782531263574261418477637595721996316230147020670977107168026672527255943113139201181690340385489566936382003437221574719782316300287078650003810217600378553070142812982052258819058653911137602143998743715607515638481689474606690557387279564688906804752280977635550596928260022665618263019056415653992639234286132132831869816295672788731692642977153812170272716756308930380158407721282143907275938115287939550348804453134934486372995822237998919689629031964298002457689668285350151516712213973994594848712572177534195700537455618466491388345104510051750676716119428593782483751161287033154692596919253601030659133244763715163590846371718960505955155705103356227312571794485857599808882666507578404785550823670499439576025930445762125655272448465795998639113422270098490456390672454829517207322022133603179878914303114656416111226290406342585515441672081253509620877210138505682511573957522406678318836049694827043626479525494948627118617644925154644111226243814424493052211398985770836757941030434215724755487883774900004006254096842227014315347281593198241620920925736662637016543247935969397043767827127354337200440937101763732723670409243106913354538213128195519163999167184730833013036358122550391298714095889594740640060677583691194442401940746446989641170004200705974218313531644899332365553350413875252258228915892461631134144915067006258088515135204301338348416548389082852556464494999259385829066473214358159884699688454818113076755561982024659008874447015191809052637810207812618982305325698631067026391197990555399170771402778807378879276344471612951277779957807226480318432457911135582213166293206682005063263245271531590887137095705324664240109073972558841913734742044763155021658795511361526944570871626061262841305053871791420406826325557940633846923955024974704085527674359029218620328552564874066525839144477191956511354213850437770677282100521444147029185232728594288976753916595483488334625946491101488259767296720688399161857857061410213140217618747310929377643794293357197189870851843987716841452179429872527560101059054434793489736425887567816769164772660384941142986987530540769146795810462504462003427936322298220652972586103609821669606156810255871584171225676204434236179984207997927360298800137735211702527417332287624233647053858512460296358545636175690482745678035179404266345092638081979759597360153936887333676349269024984909017112736510407963844525936422836847907798967210599832771886480237640253935619392702007374195041228022125775147852270941319339714872397360528109531149612421807010734435962708603910875983020643256642894261494878919549222210321249292694160505286605322151147395083418794077750675861388150656437833791330229364046139173498182007089912178791829425199912353247354670638649657856127529085171907099480954498889791239768211272282600005279986965480673535245256283978650212650102004172189785150237696947101326773988313218729215470313016554837652367143753197330543189830992864079130763050271606666607374066040376059720185504284364942577650886227081194173112447673917733271581015335387770163415071548179907493773759443459114359818922890202251031126642488137954519891022878176931269589183299866437638965733782380852576774344620568710545056980013851021731249479538083363065726517383074561245292725957126294307319550198459873909797810811819248938201873241681212395785838478678686852277702191370233683818198731689282525647118478747205666833958925242401298181915336495031119482857699442007401067055963089018588608908816308459299012049086561375611746389061210736599842105171641501687498763236404483346011101979503469872956878871720032083241579046694317750297824835158884995518491067627737562474026773681433720902826214909933263961277745658441586040409592913291275928813851152630036592830119465972490256630710019117250141520856939647739673798526917294062874190744628611134958098664887772076340428809646003354582367191739640187333739822228194722657255474766965451099338004536824655186620620491273197904465065728697213505021381648477201466560884471066421217121092011200842205640764196207665810722070870544810247923562638770963108577200993446416158270105760160683928593408016295412836297611042950720385229471517339282083214259114732105508472935684436195429931689115088092792587493462884625247662765149250732435281460821121655073239422953840322956854436329338396913429177669992195896955596390536891903655127693078802193630235852004931343601764026029770289571604976364232018730629547803620626438154387793115676647882165674763045028621955212300842075853326996749951951842818649573013391345232200957721759167836861571866157640735463866115750320447917071634458856368075659313221454526139291340129947576005321018203035858106268215203454928664377437605921764791630044713210272377638895922643469125546273739589522021374123800265701452778959141248402113014429475490015889682566792167535679713711676056502893303053800578563774141818054739880573925816347521314682771378198378043055773245178048279359639376960956768636909982152611125837558280164299190752583921694197226991799187603806846855138690406960326840322253050201846555830123581447292892148298543996490037438836216351401687945134817302883502480705901959279912791222931165792383509788717300897589011150374462038337379076405654788855621493456284682019631676327007882324347334356744249434409433125626688008165659188925363656012478863864287785433122713584992185624084543477499942031978224524237841168411526680718136603457301912325002566017965010297542196748417158874668033046250013931029478759232816590561144256077927440643162487864104239306281980163219401444950396136167720203582919200869235050606212969944446531641228560103330434183542546577314464402587568961399076460986405150244409255680053580910177173708159572196813963028839811573168342110530821064777221989456182922634133356626190959641993805066968641898712361596610124816809209877568492026512349933105725081696357642250063235228545240586385566261355935473539075003172595934468610972572960751670047954732070421627347942875075641758280377536024194250959134858662807559569539307875258834292383597752712557181068361428866765948736934290283094718970922822538107852400147188351564032983207338379690241781005724136041063510843891661837174610475903129500805485773131184905683817063775031890065196217467961523376156432753712818165834525002015488618279707092510646948050831558232641087653953461914081453903138603679052828266246050716921862063223975975545627961633661912485662319353637023879481635437749939662982121512262257438145766868734540350414065344146608235885219700611619178119711370644074849622085148835734406746793902453935267877138593074232937816329432331366940930352972313188037444501477886550359621910219222436859049852192243765934453919179017433847585236505388058318683750889417887927525984236973661993146055648572151529806515212664757979397996033658649019948857439602356065088099514315519408535934497779575120836673505808165041474601329660689088036670131063440082805561531644332768350645890596627936449170204939883727684765457547760050729123017144040809888473502962546282704530087149534722840329375646187673003378663694198422259452128511555951653849322566321053783174408655048864426592828796936188188030733721758354516591270889667150417528365576082674341782719191207534232784338726451193935521956385661571728479660931998038928883530498818519311452442657863404417573995148752899171127027638568832599158724998529233931363040236297884175775040310572117983409471212601061029513870536804511622848542935023066826882877464707025624502109932960629668408476238087027229912566022814016415515672003999398930008119961424574274248810062767513164438906129254202198994770427642629977734422509132472063052974979516025133699674869344038028551001983095867134852277291434551293103608401945553920479000161970274082007993670824301563044698943243715459502515273952726061129446290853501704156814379192118616551569570089733040599280202369445223516090300044745812641766298635296731019939098352358561582741300227425201367576061526503910015252774831082821225065703747130006785589429468283915165133113529706135286032847231672579647049345559648551907731549271882803754796472460944756174650770415692984715838321299650665350800288066447978657953389897108035029804203261313508449432697022017166984742362010096192384300783891329997031866297680178581691012439161027555496037403530959278759902434687124193460961280405806968292740301382347905689326227779290245816100618507690238528131622758616424208392489449402185974379637843864138358394570506359993916946108502026888805137638432093872724618843358692969751871933504349212889079434355656500657536882224475402716948549683680950199288787442024458215659878850001182393530362478243942110434466854947485195932942967740680592714421705062430529800976548567813576340676704947345893567157464068774271512626806868481373496508591672875515750023148264112760589719480344836629237902199035290661511915843965699288411625930813126447585958673781979567814056917844932724648064928404381423001092707654147177009276126527377017262379196257483380811540712410295676031117548086746304632343536143820780891632543402369204801770819599698226398762713777769822205905309853377588128109876326487478041170018223345437743753144822957923762348598874607295797261335685695521320665606882620569264075669591573799124578270314142694426080436623222599794097160837530216130428367974076511773921570369720725086814797858958825443737415711532626133011939238319752680393203969648876898170741521575379029454781973792608314453665028604229639346376599117833146853917713788724150524000712860104184968890571393036293421658086371025781283424452673684000544897993121204493957599148366582827303378297343080430658284802475915577455414132987116507035059061881057055946454185474301762548092960725177036041541809876677873308335836911455266868176279320338187641576629550402955380424815944176058800185419431905084697140856326060773834644436072957498428897541595591905237267725021261428351869307097317666321781922798656804037449502197547863085042807605088000765295120725994405599466707420009516013451845294092010340461489849038284335648595107841221171333002786283183542196797389402287484555752494089583881271003818092762389068267084273481176491072205012017576407418125363300065158755122297573490134292797729181203921474440266909660256950859780352706279023825149139428317014646492091685178843388386590551126952056882009761598419059603292964200054209082959136570113308616428313218074704102741935838087174099757298536122351100070310266290409192279343708716914696228864244347844344378254198377742594009745621087621346638174534844802732797153171316270770341087597467285197002643071700959086262471161394329498275148921692821810683710304351670062892047071022142122725846856875323482086299140488590156436484431395591354597838851542645087857460264679403969293208155192312346956777811880261918495383102330402188370126028039233197236999177573148056056559104506977452526566144818403555573560763711450917966946488752934036338552138685671962565125104212884630712960762668707668650325068718959485130840587568901741157819950854722686428625457037890096046591525689391452745235368570770755771500562751608157555768828861071296540008792787126717006574513613199346060333517404335458630110925078826407801342238653318027220832457935623728001278643258559148961100926831984781478995511193019578385292935786843061384073561563093852363102421104732759412732142888240882531159682823630336320391876058694066669920210883000930078908197636377754778539769062837249517391188470157580982470892776304214588476544654246394895129372489134188775181428591100428317588661406094603503378136243836279386088764140056787247100297247571859494995413141065334279051498912977626808689121925040846540140218319215434791063129762069343159321323739153070288991807933725163462902232353374131212376704141175533120768571325868244854102825397786937153143427695620047149275381354953838127808822941984512774662366826157903218338419384286767606235997650979935767506445994671196422819678740276809517339202885198545511182658250587426604050586762827427408696299153288233948499482170611376802872238211121973836120553337709516606472377042998203539432578848822810144479021244118738247189086644819515066399335983129670273766566097225715432729158533163430249287776365599694433342512973465235780670230712387681105253463869027480500673032042250974663593697959545120825305255132058924462418126244888833365957453405810049479766594283830898655751095292126718097370302408681878601044026885322199485522686970446737080472857705220429243444013257592299312988633268053394447067508640873830263720477102106963815371974135097351308551153121510111631668908298700293109249087384627284721935171968930967483927841988342411089366100873555998656996504845247560595004823409320063316862675089405004698011802492527705264281391606290524257759813226290575637536868598959246220671619151528797686206765295157631983042163906617094385139823522844624245713893496722263575526398415490929302655244670595686788370262875905823016608396400391178177909029659842676958857267371557820414119733226763085051964839858046981746126855599711584853267437772518990540603923892279882225505002244491803411331624497658162587547485819187611045199803342016718192006187624817751954522333086945113279847121274915636048136044005156561158648931543505103096195440272149368894280853173720282210789726802753923849570768473646699913400699832662614697929619158217506005865859777420103914953423241482333774057795637693280981368061805233001435557911304887215365901474844914419756431507489375291700182964983159333199292356962676972860596607408007369228057889623656839149841805293054326943880013232603338916814889834146644028605937273336776085778717993896870525801622185352856723437034423904316194532994683574335615019488271991783906025754803984324212585115140812030963039893253745910732736310491864595481478593008801385140882900557454989782231600037530383403013356261204018330297477867036235005321537566933299763279497864170924757074223050818253979473333258605251796721244222371498742298091563011535065153058818589450388139785482464879224701114611812559533006836868125366689133544415785070881552557874134256537248268628533458408132036630774820834700831477594233748554217650093063127654188721130762835940518916628150941315436221273829094575723170164129378324206003948588923548808752636323481921350714429947576825603208726792361443592432027114341953206080951133670492171003452823223559339003395130560126391463068390046114520919080151363664159054110088661181546971205733159749752822101357294809395740156786257522020285694250970600680260442721699547111825667914161393893431397168766085632378594213019256096205435353900413629552071063441694381872018519195738147744411902759125021868021832548007842021225045542178944396685496697861939272110130404618584784158029087471739787849136893720579237516495867626815614910266597758090825019764965058103865481768352851399831397152067487461152460340767311616758567902379822933508399321751865919034801614077314911846044361369258735971155723874157846615754282902162512454522933721182235557538977414215815021322213981467505566064899423767208307166535263278624540119795034641162134700165817894078849554234078249029083630371905053974370160125269485823969095622381064939272381650836243450388900560001237244805611641081821404331773726040284659386853410088196800703171089900335020518918762669080361862524276960165670878233465632938112347473914074003155476516963149910632481288758391787126035325722588159303830385320338537613252981168107095106544902667319661874628560772051628761046184058740890145340240337818526012653267178032057844539798030421924887512096837697177418129856173786037585729922587920118286234608330337384079848203492328471159278348714240941046082160065457301596296927129417181576107719203768181300347368088161662240967068541887284980155673139398266758374132269475437517861734710579884208592730100129663500019612791094828227372062203869922629763443474780652046733287427918821456650979536434091432264492481616426967355351807625933018531290031117949755696247673392008619734152084042496861161377265188000687690074645597088582137909163388032119824209431818816295573841293204731953976714323666206423111039426934347481438538898216435416771161077402684568702806134635277810293107489677056906076625058940829922525904401106721166124809117915617549888485240251352009392540098974160538460077885792494327105224489044874164940093667432999093634847873484910122730425714254773812820420636371658577620819292000740277944013370396104425498496686265434953324585147041593644051212611522780626368527881811821204390387191276420683631646633170954056161779060175267952548589160118009114796348130737173912951394587185450395679308482902596953098538831524164661166001707539886022616945767617560170253018005769915746211912391558431142185706560519569224443278918024425237858770830403152267409349762754372706556691998653627263434335373673006717297843574649761225141180584853408482182641968437909974471800666124272318723800863721376130286236376747295348859792150732031566446569624266845186477172270096153369030109453915488338939865843696887907614661664144538088767798535864708652045918262923989408708825252527132834973181101624034052684114481697332057744986667173903601594222853699733079233561459886892324688200395278352328384112558889873106296188560403487354047640193157170451854723930813974549309565886189765045568226328721406799684650947497758363279005756501994999103010660311156640912594875613364316270717952797629400728489461361941402394604580162930709791362864149183459258090634455828189088043701364592727948340229368613406130379133991565394069707016235755430461335367248497995586301462672575420387718696848781209739921016735251783535826124627347330724425903270923738645454469322752568514156110901489297951526183558063984195498566513624195027965578613465878452960176461823135013096378842144471919527142532292215327380959883439417670118329240629588055350258099553993774671553584972126817711507810543920824850343678269842185267610679567683654016981974919743769402511329245389056561683220638553982010180901344589558945067204691521380339219585386201585769141540162151656568503519667441914778794500141431695223604886376016832693185373882134422402740061087510540503760609049960910663351395194861762032838980615389280909390733460890622663259930094314175747765634360857403689567749194521694244190590352320018471341415685847882879440437170806520874386988749707050403702884983719505982206665693797576543939471205639269045959170615480959917274682169763096645274912532063290574233550409347546676538815172330838160023080793445447956063372109391228691145393521731309338978822647102131898924969737357439639355728545108195490798296234266095094238587165606440286877821768201358588344160535164456279439322319124816665123833946957427792461323714584137183789876724935323723069589023471498373185212739553290847254361649975624952738056180155714271181913219758351929718404631307074182968288445037473670718329455566835786041051885324350407522884069709476495755570556191585018362268680816037612639186756450190760653356653573350161779197054343763918715320706284554893809707775816046038997743033360527994159201818356976667293345938507437724791196392613709873142808085081680814918612626134610474514446236254959517419361234713638704217658700045609904580528351212457853523238377140346181544441017144443147323821153766084871505164382831494059919615562542370780652047500732685113409517905248260739721773412416883288346423499724743258085593420989790269678045910488019994311708911996653200933381525415230146273301464262555029684232032879203860314198945047544671520087674286948557887505975062932128679566612326958239227806464195362486579343065348457040937388111061898203815380236990053859544765400730518080687548621322616583369917494018306504912215240308845634750582910413442121479639593462975976772519154638845107905476468940405986961155009485824692431923336703456633878782984679757396590456620985273110296235418889635684724225913904442157157600898941720689034793711032510497747599675090261866266337082043262409422382834074329795411629885446437436328892394195471880149265780965945636364301541574967443730706742965329957361640120089415789661476615016540904858797683847723764622314445982141562179085576717980422675803472643932325809335526254040144334627290460761545426487531148874360495361151575007197920541659997934716155035803193824680400161255786756176005691183345938380630620840132732553078374176047178157594352988550171206048988990898508144736863099935379387455209209590450154971377351951841278553277721665451435011178141854755743054820812923746680695757548246267713042928096201767708331053052072929886938461037709525629964979408515963451993935147639056162172782581605247518942559571339450687910580660527625993309006747438931882271916129628528442555721429678219233295719079292081854677968502773993228905848395972527801480553879076130358597578814317445664240078845129616178032824688457577059287095888394726254708535557732816968925076571196724104227368960082520595249213653330214910804339440886058029865129030840541048919738433737395102261988717357912381566444719514518287355488419945189582265992156536838681060577864406658142260006201441079857282702034591716437162754457972044539032863603255721626729449075563443104729579472752343156938898421319967563401952070937766623418362582771721440075157125311424130781802303081092632020569162136833603279547831857308616662962057791695027718206238940492147003305315662520687687626196459234184630951737259481577233183017317948643226143867398653012827023281804234170107081506905184820314775457587908687815293771767840877418660073231898442669043341079024365301827466710256434781475703793897869513122827803299037581058395650766668039513002907508950571081116114514631340016501376676790955320902439150489376861554796966641245993503117386748620471929046928241310440786876217925364492340801526306310336581480352797565378614243388338598249985253855287582119929863422149118488789562901069230104999082304496361659222015313540986793748111774970196800837777578079390794649916541428207069094581443315632414860334528807575699063067820143157669028083670197740664769575913681786524477304596737140946212865934256926095659375300535572406898513666667129878209737664709095380806672065343439772668227253129705309392353054990074761422315583194167177459986276149998093435463924925649010461580502945096521135399803193503398822962003206901562887472409222596171318966860567417290295497797092867248726737232529036926923970405627920317159491479765591737600553684058718489876912707284856755855593730697665507521071288025273705196561880030389392706740424280139006765520349714492188392536351666672803627450454676782410540670454980450293115371736221344823377375544439188476862444749604575784476016439124675911805529871288463556925776669251305403520781957015049023628515857455046498393224979321371861197945855062073868915678432369372985961367474824803835374117845627319269884649897379591478167259087473891512899507938667721908330062829391859684901429321137762728212170896154134590589530773568067216924359392456704339102615644729949329925269862033045335819575732531925267881380334482844249104726270425494277156991131617337224866021426945961221632716437586390964109195926351596247565037368524409995657056543641295040700661741866894951602592280248617236475539402076255671475542304383945875632393229703215969597265686779329345941575780281863782521707947955742043487724583031440626463093134814161144694430395089987694606666504395500500397698940378330021007443660691737091153019698373915328961898922328241524138124126794139436558152860984420248079521586869767509663113788632331771818200105842526191178760379344839713958462035101529176302189753933467295871894439447979710517970355629884060931674867742227106839670858058649298521196856277362788817474751904155303025422859696827509042617049811392564122253535265217105679040648320987115047746167563657233228292612201490216948664731498110844892040523507271920024210814258240169577371134385753511806986645615295116647871246895910711193467003655283887362688435507762148797627325476001316026518250418771181424584056651812447070385381103995910932893645542815041984549618186988771198504866058012212856551809266281361940378507835567136566695555813308561937514386791590311805888597701960153569447693007867854837472737421883567661270493530013242436187096096241573069212677674151753337212142931699494071216770028101316402918409487891370519799945096398423314669197734220327620107800390304799531096625547569954358680158013602317800457688581472149278359406608926394896087148162811595881495755605386621277549749107980648715002553359888409642883561478721713867472384384112409228195790465752218819178889606777263185748941398690439536197703509250933468453603687850945079477491304314003694855798008340625680035364439163375641378163534769585443046157577824148589447219715268784333844161308175287294785980807458958530349549085600039997451363202468204018698510659212691734620274469153579006709397172088778329839683141204895240321755529745217027374639892353306067491338369121318587714028709527444431514777546097684513966043530098436664884841366630902949296148416626819716174452077433863014679681267494594320582176055564136206679438411417637901975127767864666546071734022866708983159879695873766146410473920985369661887077963485607633966362760546365636247630157510899709490334333671819967192130649813122077006024749329424132316893570195422540215743653800559266695387162090658799200474271806496566144552521344351433110984185997024654242372569109598384127496765486676354877308383341691115366787845224466841472466431959037470445764307795462259348876455476555145720462520186653441582378448783079002905594286139037477049544046470125282618152847619778758850841982039563928720668378676707661524639552142622886298232420531394852849321883587655862276980908560565409987153837051278752080955335573720089332807485918273676139921349573531527297473038719887360969568971856922963049333136543599131417243741099360974863982735300729345927335064437115485443064261527109190032239186473663536956165859454234698082697426048167943833674286970050854640621681214647207663634803640705341891981248702995687115011687652666774252378446224885925628941864843600040007289510670357714133655546340849447966603249693294969842867276361310364730777198784862894781299841039236845786323486478282892714978074045021903143599918990197389244783932528432345633661658674105941722101415455109795605426627322469900909718559486465479156605771252293874008097253488761648202395923522252768402892900204643046346825549350054213914239290694227152977759557690431463994854186131103924394310778656330121248575410203552878522835339246152038618449259357465679637773592455360360338312464763638554621005969150186376632818568830137833327787822988730476238190366538173904416421712197082837108417657294105029165791788003682995879979674251918936527300748569949858904563626134615492526554759398146437493745581735744995558949097860320425952872435619099548257091242436418006274156246556658278230893461355190449440249774422656665068387410317236880166168547228252823191703245524758168780556852397456008661185880102753801186720480431649034813208077701812955779330028732307795691302560300682460750316621012730020602009050697436275750463123684102534852832390037964492976335142004434945626693828370362724111513075166407915843916667288944255518727075906694211799781061084880384034411380158583513558989031737043315559281184136923043904301009742796063264254545495511239893641357607787572491369557478387390982507822342442613127018261459250257729642167898155538161349777654300586497640218283921217740093868110293995638090514814100275931959014095166211597947133672125875075406360184132904781513179326856800057126965419340928791190222948243356634014591485069173884136790623638654288229814362851111999042342940955518192390896384410789917002569121263765956197027534459465193411560032751141155471825222203208459227629898464223272940669249470540980001944556444325194744364832654950227661792971366449370883340081052539905591471899543324988144228617306615605404025706322864320008307572413732582150743688330828962307882694897894973671507793904559770213938181241618930272042610692539426383224613709535138892616930049971805601803333696784737720968422755980456655748004952003954618229791120239854934287631733279644949652719492808437599632224872489859806526781817336974632579568155336494525234626051642309053462418575486766764513669371844623073845579001105416450596806480636918635587281653231156037700056685299105248021278208216063234479918621925860417971528044929126744826728982405392430419222527861057869755726126715140779840056586607666507022629296741799232197702949806635795223402014991088697261336458199607508580808738673510891843132021526995520716273159354436984323748970985937644447681194769950226392561002281524833222280353261194564104931974530561080196305615786021346988483325779350083645159834110041361887114006821056229839536574897123065015710865579821081376250436073805463194241104974831243095247453465514914659436042856885234857859013184835456910228655308123400172038690968286274363276363424061579565929261307248155459591814424935033191605806871837475117915254487445832063037426291950471270413559818480023118167450537452265734262792780946130267988370191433118627324671230947009119727076278193529921796347915961062459212810987686847744576818941784230840097407000293674971441884470193120283897240478313384746033161875857283851391624315903852787618570482954386358900736453763462694766257863599533921658570536946217598729904212941442761942124654849333266492160410521595846788569021529104718187171165216178047614449949597461352737222010833679056067826315282688328302574298446376780754083965489007218184236894144969415813630555227345419089339529663506323343646066936022443116198384961911637194341347886723135126311658849761375586104095006630533493046543185335822663070519311060917687815343513091667555459601957674150188307356872045178134183896890315875029545893545827104730148306909534148548099482538932099379146242431176818867679995379369341407445056020047544314918166202962007746510125987113555990439923808171082156695630017444009654398024509118868726358010173634835509201446451923836136162239909231338546607099255934312907730465995762366379348202021857237127327398266803282770971742605257479594965442439855788911535214549887035186507189902741327633840760929828187611659270201791753120112212806393944985858067421920984851848544081808581895057508731972774238993619008813681938909318725086025518211278773851295416435860018568147128331049155167980777262201681806135831111201823775126744591531429577949872766689531356913562307740920511425968306997387386212855783471202788256778302134876811537143999321548109964858102562755344287810146946385703461942274152819352999683770837139309288226405946166297790350757919073211938986000560748083850811405783156569616010883610451669144511772915622631999835308800692272017974757393015049188957173815228409144182492473195375469372389360179825336065676467347367142005722755401884702936193481952976799619874160201884378548143755523369115097719561594546399517823934512239007082713763933502272826056876373378366118449842560729132309171282143063487504475983559762701077712456089902893246697026741647918342321453528269247849512888257058132287150011617153607415379588824586853540377482687365236335082008482796829320493657356462276085258333167077962034073575254859420384326493630270062483407232346393694885260467180272015287749618012498053816103894858503951045207695207276015517498721379188774495807527398523270348593599780667114815056194411923790207928716236418172539559142767237614828113189914449441356449886411674856936932456644549761011783909100946704927125425794608586493348036667314236861819336068786921464561604980935547353952423265251137265984840631600402671936998882603618380783127059699067176701322970770938781783852312180174217277302406365042162526995667429429409352678345638222835748905968351284528566563869903414877768709590992479132654002618941248867895340079639415468016011181271703468566170841653943737571442851519182249129243374894568621201559761408311128429516071852676403655308274857740501808831811600216676793662368499121812519567686746786081486221220396974784815863652796876653603993299186569573440807991802452993503290285343849911595518420603638888833088798969931615073667390734240670283509693347900753327489204961276042338411034607458974991491230811335644709917331154392155274754430068145636455329844990267616971398000841417905186997150473899793323757047391790066713751425688240610798330897970907107343488284832307700995580632724364510705441879403930944860777295404442467620886382573671400144427379032483482057685397779975083243798413230128881453615249841162500527607150222629654235688554149155590377647113471707646319195993530409703865479741005381419085430005827777339813966958232530974999381142706496730910398062412770585525233334321380341705970893158576898802798472891411121260175922864553290925465131533955924836022133268879978179391443047755040586130417504791314410283000703703677995858466162916701838958703679803884429494199811534076534381141639890817191715558470424173931996141436401744004338194262785468330344908015233783476725421308800151256378184416491029704271783691546560318032524207896531804109919855101665561251030942571181473846970050233689492288189654752676668306015778207471485678768816803083515971047592611105261855876627281089196870564212049719040095855724996496044083531531226079030285917572567560060604777977538117762104716699219582598384081476310364825277073095083026258416817558104617257701462722290953727404733718983397742621814932832750984176902018551244687423709491055790635329736278376202688742988248133623039676932314736470326185956303426869781209776060147355919201358808090813443378765293059920758104793754177268712176807574344732892041926286954805668444268289435396798226750304254373190292796747041395088919704821576753523102453679334297275034653276629335550160907435972751126637811089989246455273225186089729519433780533603712930622367677532818373762035285379454559277540462117022409333184056483720005796182416844144453724790778360426827378541332250708077132213079828073820320352969025518526432782813286271789349919138671623784049811232132826190814657782069995299621697408940425398033051429281496754936847571821452936320235705787209973161380845854435226571172454445885584027158440845135406805157685980785253232524977538054432749318545857883810222731130697424905560617490551852453443552884051327111915966031250536186794804764480501208876879435360503578065446633298870344124885297646936760594392324588442979601375174903672486481606380888508903001948905630192752821335335909473096438419019357163676434912537504247136054961266508014836520663793953275264539781968968584929794880461989440085424128878792662941961436938506633232744275267990103617960868925687964714185578006471355627618239217553452819312410526546629226865457641320987019633488718596066134320033008817076775155173877573758786488050727707292247364629821583781851981698228464367821172963279355820902570354285511520817235671116641983359852145692297135274524072937795611223122445314846563883202637943202529405843245721474589016045237655599908807491579805125604703937167818404222069126485286985639874307728768240678634448417560981951381180009881937709192287587800023375365304232227596431223311154822053710106498691070699142123615273863150971453922196825700943741798242194313170111772689239925265017597937210044754881939324203029782047789489249949933545033375001669479142860867053722815912379680504900783599047889835269704244248521771020740136360598012536298510895621689255022005125737665243657582276956404591715663650094787850190768967254456325828605234317566151107900606713310973320565580058929345762997479610923989053589139974680703478420291274957708741609981937977915892974786506485585066759665972878699747175071310363720601379805469417118201151748412890199604514482644900629971099091168384072858290294634589062207018370483371499733795996805061876118404918955174257089851794858776622497680025081718051196968462224935347990871452673494025524790120951574631844189567236457323988299664025962657192843425854884663571093273971455430104989793968346304995602496307183544101467765498680860298299086179630828241437464116604885866705682577814346790084810329654487012374591863369284775278802339490581973104010569433991472677871206942124775898326250002993249113822032761037280845894249862251742758104550840699799919644832819213831470525809459177705575154496401761687048999112000096722565376667781078241080000082226646429447242460132487779257855348349027482705186709979449460473838736329284491930628489456862956365758973298924625739087492713026517372774779039923548376974508659347363456622979078454665401696910854027472856519856424041407386035424825221957811166087554892432966474425597904674164998143355400257321442417697323860398546555126338569331587437629141720783918044546495010518170736417141447883318792182567629760299660116499331705659874166827279263160385349305406075696876662429038722657936007084962740398739561023665228790766822720107359515683757210621386701781008410777503149250344616341478590794010826835285464657752902824336109896040340966770020930538912652662390872787190284452827388500001899495122422989351248698617018344075687289145279597092769736985225518309253592786579709670037712202995484124102244265568768917342329537308215726806235292650903661710207486195417235967054266909775581836970985664815581748916268759426291315364450824901615836580883866114732468419545332298925832268617361216660471124763283415488334167275116553338300677599426005178199475304241783934860289419897974382361109646594687477440076373247356132173814503653256691102544173600864739960543898727648330406283485208146178320322205666026479197102485505143993684462180587306563726042827062306604890299632907912725942018173166327639774515256531573489190216616991954178342939670422041696966020870127248536304472185785426087157479225183233217555456043601276080739162456716371090672549152869983372854178938885347124254541342095047690874572001608528056996475112805763999587147826670194560090181018190910143622500229601169792452852877822520312128715918711318653968993176610297038126807625435356804428857293406925089546570368154027463935543494847227209712623470754574301129120635073902161230186088923908207162781025854358794691979581259189885420010774670901035368255165079648218033203961683680458782231725479264265917185702671904174343533662712128124743553500397608300989501388501393070186994278993034863818813459169783812532541180519549961473190301036034840329174758064522482001559977993845934651766213530358439574825896304100632745165372387298309324189755881768256224893061739268181906088722862547400658635341444153334963038919788751089581979553467085966691469076731268658766200976053360930437847064507848997738535824842873713586184841593432219009392372596963635766500204765957701528663816410216954139832104707480625536955822265246296420985986010892192530465355979555473567961276413338538105073916062146609819565708754817704604632161770593806075172827197983057545594866655728884270714763375641896601883645354420536089373204879523157598527808203383760154542460682738034546262917747850063037694118856081281450126228971456641239584000670897582638129019825127031079064004514173270309855101306556640521008057295224068060066650768452472835453071323838157046344353233890227954468610236935584176315001925158191023276861219467402311074650604713665590126942491181965102318519953412430559536399795908203167793332520813908634801421392560276657573668134091655023171092097889171253466721501555883090423811312896052941444813269886155088137547341919307418828563208324865707521195345308006315400824029163522303800941416018179760563366728130379270893563151297344413767824314831486856487271288414101171041808166767737658006714375415756112206157344475342764468928991060167858234356015958057980482855058378452129872559392391414549939117068504676755649258189775715539792753673773205020799821695510223094003592123447072452609026495425573660891692827420012829909721702750438244186100267670282388823420571646314409233684010569536894148194255226865784807993680713448382642072177648520741777556158726445080281144317217291284364160885855588386806625121739353049819535149240679288443044854496079390875331159165600869130285513079837016763045726453984716595037348678240242929763772732498041894845336420320998837189354291258966581214542315101307125567408521913945083118565673437179798470763256190541180932284905549344295374744536926570028228659387773567156116924750320894860437124743234374586805072934544767540307702238193237466369209871941745813080854306765984096320474527456053033759110714586924876306510670423427862162717376349909661228659583795804820628155725127175760806764111119761856896824947379077172730643236318680521197190695851156803788635133052874496307574727785814865124796912484629196097728265012156499521892364665128778359809070540438254027284778562054380892656312251298782564308613635422874413121176391558943678215031488955315878890033902423550264810272177798407975615386632047667288274497273783547798180839305499173187293919395196884594358639773731326204524829035676836415545303461491313941629486489867914550346058033145272996252396146975097355283565163223065316395056283521090665792577815100780541131200793743993197392658286149851897758134343245937566374041740528245957722393992446037971403613196683751441812153527956495024452532255233313267807188764149815387085964550095710297319947450836038170803074018460622149939134091674992111566117384288827250398342559462788334275452785324798062193227516930145453242114423632095718371398514786571132733270623442806806140248777406538730417885790344462695534508915631986923784019091679981462014187907097689931790038100808207941578999753941072305500282850591380854966539960411831080411232920092376825558948708230268753987512590584428517237131217091186496739213871923190162850916986568562489383529318133753560042497822254354935800335969056281229002339570327938375255424075854261635129338054831828768987456058211781166821010583882985007890989861777816696817143186597944518632160552865170807149847472742708780899310506545163961001263363378952858787243886803330920504383038497682237964432484582982305266726556471840482124934759927647440612695091109976821407837194230455583369216013240804011853246152648578257647162108875269926356715139899962925699333139937683714507254306586136770517870884093573168391992293259650001736402320429283016386585332465508433151555553752840365692800731610136574793378727665221759656614336654272946654269625771685508030946277473383442932756904147770493595125569158197778601269781340980879193530598696879236323342597800821444299059941120812875123205939023482928228141664573978330023153485901007220005897036644709324116048073270645725327429236814518785821315126805374602587604028375397741429008617762105032542626034745208021046883791291707857483949312806824637328797704810255601715048259704178908414713080777768254496506180004776218982218317860198005590164397321090678330100590091859073905231722494444149577279666200064174066207228251893570400716759433604333637972369438709994194470607935223705416962433939289925659988587725441072137819883718521149764426681624612925483704605449664732351326099151906565287761174092223377393803366026945940813664359523401920326958723531835555073906575006576797879996694408770366503329310998940953014434661006831910425773530374967140695387257918083453760454789787427380860239520522244528652667081467365547775867264742602043835768740427340204420287659866263726622777019198621480006122123258037047250185936687446404024468641856575699919992469808444154320350940010219260474499874660859710190016542969807343387472568101117425375513467044760535511054321295111961666689528119877705287103226213624957183074221349869754861999734727643746337569080387638878524094602378989737672400937700843766567536515670951940028804934514555226927988134925917473277148100191308776076624717365212441744303907496516208041356838985759145974599838125635050213773370939573975332909115465526785804260840809024861921850848288553097715600718240003548695491771384503047263578151067847871401701978085613975988445947296300704069536747088198039225534460281560019890206202347784114315675087239245595765372761322813788233215640905608862466040356986106828224739770897568758719844143268441503255477279420471449335895387839685722082891291070125799006370266180379354274799433585648261227850364705885381711246008330742698091593983789711706365380466780025726740029292302696435302224601643481795000708807798898681040553007216865782517707390049980635748597685541751399744135925904675375247549116555166492717682238239838474736980475793858866609337549304326041383298200479081904273895602570195184617915292833843162843180316960717201410427198630467652241214929773907876421226218034433575328942286775310636301266598063632307784996632502434059803744695488860998776578510021761969809452412807370399687174843477200311704480302210473525439083367312693132524006890085928531441814945946824915078968183362097663946047818165284442174539349087651556828362003134587031418789723813490128841114347964183938548546050956477699796784643054565150364618727310899219842514830544115094235830442536482433413644294085080023387216467531479429190438175385271438892162801881391178067342286042909901022676119233780038404878836458271786944411073243285370494324105226344423815958685113047725003639473975647461413752382630559625000187875702549964301732347127957809445953961660609934730094075432613517205187620865617876238262856290201960611522619709489880351290542507521174822764724719320084728197107346224421995525825335829941459317255469124011679142746431182146946723504463071483913063887202773298070977340125481191506448876794005711379437466993646455102645208615942215099205634517616702328090743158927292491070426288174252630481389890835422905843079472272150319192779553552158885124089322267997539127845450612247204449646228791767426437880370081862896856717447022149849622706098226000331959050529264003465757145621587221308306807244783486192994412827268930728065385664567525050219766829391237019321591511114612409202029479534960277869504192153039407539789997570230722677915866584189668950625443692673550981277048961187580022796175833064745693037345700319236541888932166032379404733856737071189693515246888260960640170096549981204339773737393106572285394422125779231867682627391867235833766978293472447659523825224274576889177598363903138209137279080321244475042081475997227084255201410363292028190620816666077328365670716894982741982794559370650511808383601774609582181562255227178015809905258802118458163979120914840874898842051705284771769792459825373070885555292913333179088390739000166479543950446523827334551045977686137649398677421579671924212017258451302396692572521029293045792635210514544745385927405968782817076577361555329083631827846289717338102932496838560561297890744518387633191642946662722928020258835348527037678667530963838161196200571475781385379570076060325109824226518146746567189572467455027294184763071293113124705032070042104215123144156948808384447935398280460597872174227417386018847123818906448074653557860717717565177034901529890017305569850843655005513227126180493640683974310138744023079001240760344357483836212498791253725432181774557975560500585170448088484074051448035158464007964734499555290176987217345161859201321730709238497609757566449093195491302267519767054815682795896025941723555401887297477949388082395670022024821361334440183355290661001018036537452278220535277829960566606552498132895856625229162150632786916137999585212859237039337375421970055713592488905126479133435130443356447598055957298523827122945000589038645875079457659813376700895636834529487314952683405874469968123725121608742350864473652262373010101535564642194404263642351935747945873912585419867261069261760990420195640048850126567830908454927330791522556162696038795259235843255722733925909323181591463949623665079458513415399726674382147641211189857990619806000523575204925768175601652940107999078409434755846493402645316735557489447376004898368546907295731422543220741330266699356881374833951921572966846743849020256682787901006391781350209685364805954467037610270216426603316556674994025562449902137057879335541393294941661840717787782105261749572409713001881688603312654092071273745360621668788458896407884137466516137756740877159742838795316828175102060740985046653030212769619019450908363693167505435898795524607046273674612238088529266796306332446053811776423456544798110098449822341295708713005331937215002520761289343552107659949504244204599356782374572707201673878964352955240691883965123118319108220282250505854259051606827457517054899590864143471919406113411440186779200862642554265531623568012845359082251273713007961825403015622628255548375561573710546180152930925810077172946380264240485114674064126062563997266733333263390128761787654293336529230971790332853931700216035461118505041593434991989363996466151888490291653906897606587071820649446372034799223646827615512225688558404198267347200792465782412470579959581310975226175972942503663034999723898096281621937836503623188233767886918645600447426481934377227397653852147073078642737689557031830311764782120911336253719828917569808104646838881410514008948530409873464363431381489302969386089054661717407895771705245943581834771813188062567246385044710876671045449055702512303329019044266114822439218901041958738465964141839734348466221690892374661676144235668372208237497620164266267595100265838806785323071120549671165906285134720402897471445693379849646903657979023675802117640119210431301043691096186605933630051261536289600995042336605671173389868105073753751123322155545182579272555601769336968072802627240393023822514739601807361455518334550465944280396515310605714219215588971484324076550070725691965144700274372907309244190937627689483211940905079903369527477951997575857469947578457052041029509575768005076702133413314594552002775255166782242871783808702307278182241221642164465633591199126422881693752673975874987064547298848939585922235784197326059358910518911442734010609397477605920371350029738711475856172817851719554196992957389492871352719577909973359005938789305777633133823428831450643506464752506510348943192103613951335937756117546423621655116367109890502274101426741946085461105879998310623040841482420472518524388749151365149612085119510559844229908422466009083365077070923847540160193241022895712253117705476113223290948509034408156718879456204863159013784758260338055685264549591178371255609602808462618911576109780282653867892251240872550685951913910631371173279159801222623092791376079804922368587648660702538182599493383760874820979567871252744834116159102801683475320850707824840075951758272134085201143871286234629211109998479734907290952294635558918090221716827742496814798376801913468140069415753169518151292529965266148868538040406285600208296444792476496321563890558204149180425714459527300033916240820549271584444187715086163593288131306606178602548163748844912837733537133122358337848590059878129290358198325084221157300827352351102317493869614123091843939296180946971901710315890825499698819023226061182940589201046010268956680729787253234536748462369623834675856232762451541912554426408724029986810299313479813525342265643021841486394102087212961785905919585462839752357551061728900384433792896127343998572015928464783999804071877508058398035721407069621371322792196087515175341809449285983355767989498477181601439812845164415132586439204630410835782512217470533724151367611679776657805302909561180292142878062677387021608191774716336855093576408299377010403618383583684467773872726870426881749997299680185043980901615614937114626680784050916640434758183477489224830082813177428238829897600194304823656966279171718242337717886796124424705193151519745862893834474875656216120232415316680286048865130605073632966475360044985388284676450686258930542446578524218674136873846090316082472925693920152428579093799004916250260537663619461891150997355948869727663407108099559422572483940063190646597935576064567785544008423780909790909710749176463607676941326140753829371289474218339099356368339398609337074674340309578720504520203648371087110652581172010240329081116995815533575524230173167387514945219930133578439547505499863405021014460703743895439259447049081518284569448098478750493029039072182841686739266076265212148967587103336714348050200476838515520755664648570398464907735947906765922419618818727166172751436287931301575866513379408214296565447510994734683079312783790854199193170319199221387438463020719021239468551221135186482728703670602582064118795685498736566504797400978339532257924017843343045971546113714895241917785478765340839391221153796787202330248858117188304498262071909444733128999478316750591136978085525266430327057926893647028913080194095666832044636751837547647497600200425245290301204808100502430034598037164168869664972682033706936176701143357699600846923601078410674022634562636362189046218155869859978466735241790551030344643640205388648706495646638534818957052725944115481617914950530082387769332061331978126398327802665416017445379532915040464372577905571357063632291306220203069381018003059616974352864685402888522515748220182958777836175270597543133492980135563336860684895160247253891036302726959303511818119836550529669582976630987621755491352531504063746369114053791801223382686042205158050755250993739084247052862561213534685646513060334088863673556767201534313106933401963535474873850304401771971252041224586201940138707987962827516247372068142112590290381313381038726163567586901571161324953976457129348962913497732327679671457952126293583947857363904092103024145177371647003119219858997696117982344460461629740493213032930161892030693517512007011067971891404463637321007187424452393746416050244095765085973997650571427939166084534220865735162920327460856434445723395607401314765710021218906531863178295693754668886288848634784076958985410307990475079902466520151929338023889210464572421976630925835229740491059037392109376080926429022190558991158626169956131852384760332396451619937735771842202944850260859485878382329024230857547576535400125089905814672635347421265464903407070026321749548492982544657983425261080811195908786837110773764235800453566551138981265771059365733072570219487328486046164590302988162973618211121993438782001751216998828919888603782502227977651069336739982949342603043574905616539714008470357295070245572237802327595812444258122949726254997933986199100918890814385126011626954408216054489462777306236868807109007008291992593132460375669403518194082803355343853908218718422025769223842146412839220527304389614670677840813583574457465316389248215682349404548388710144269872374176053597207116903952345298127034357928547825770246946748325060327013107088435541269951884555091073171192091972569592017842021899125642958186501265931274823386292049478476330600865845692714607933948245800366356467378247138222611814322837844813253865840160877393954388093858990342793078190352226618301975125138042724414524534858981273488175589562410114394411646940317520130449192802393317885639335405465441039399394408451101456592580939203924372088255246404761882881130748863559032812599384344619903752949804027089576680055120669361166892497206150673231806485203313617524246441604953270244023637113190490797667996787679771413939210699486730126157518107166826005378234323213022723569108989856269554328798169620924943710928341329685635523501501348720777007087188330578554115203806586964686594072262415233198023484800852075043549362150644834639459860102154425785822289722434945270472856316193781859655033746146036751605877940165843569878594672945268293955144421540068827500313289964479380994516240091960745101256915553124350051992680569361780886595349001481408356447456497084100011296314846391359235053592688159560094352154052801776427586249202359421847410349179551468944296105268988826411068690547689631518080000749355402950340536726111662859635380036052418439707414551405763182172450178673836867481248954914053157918194510302917518641978339479872160030177039717185379224893801379651294693348468010620020326552747465958544760186779474086465159316348329049006700518208426962542980189524189220318305599655832377602658421873606926041422283950605591498913923316219322535565565956894966506602767277094591893990748365361765432494446560918934216682268897104214724200389730984527029054331030696640154767772976320507646017380684368659011722239117712395594418570325545824505058016795658105748057343155504709483367251206824901145259402703766702490738682435550942907750001614365001864521343272188029422626169417369162817234155422866470243530350329688762440619194224643593955139279519042619443763801187113302558575619081442256167738892596237146187101518266626034726482149109727403461633462948364583107758313368650610685586083218281215647433371649865948051566636987142012334369344347485356668996581192716981929417282275140647082178787383665610695724282181423348599317674913123983800616659796861891019199038652919708730300510894476549883984672971589671758523207979084870173589716741009525425381066926946211472032615402185718832496795699028459396846298470660367766363175589595562925765764621915007843748132003445766182573879173170396028293868013928898104680190005889646275073163063850373219237929775923685597218790048336513383949272416639749660802161373028359375528096881885729356452056046005060284359043447627153732191597916286738198486086154608760375999792442193993320733300516534265435902538234792145984907689446062928693459175502428249389521496287343845039437230449872765548285574251446179104930387453412239806197355993876945056772088905312799837981335799772126785149257500994650859506855012696931214943306840045844878197596678149716258850644004923769945057535758557567637392884678449411328309140272683841160611660051655319030250816469647717733233356615158295807810659651882580382144213057234421565360950177571585717309601897714757201135134772516100399465859294481406637160994416290639433399000784638033756038736900262331984009345048776219847324837378769038390006131848951208765037697534214146014369797943638686948896250308368111003021888963993166672996722026988152530611993416076522978638082745123316187843259083285974158027574265823148765746766720285324131520738682612362976814687531972256417807964880970761274028305820186621821668670849867051765862565649168769501079695420247192448358145989873359075757258278353860650611462847585056643923416111385576880276674840500792351870528406045273277897245453047555780358003975470487692549492379083601713283523302556374012518076449834025717927683756679754908213923688732564372584986729950291011914845953630763092752061211286623890345959826034146923504892559895651457420667908682738626782908890771226949555841592996913323702088339779532888229831015041785922756372420878505317290763139516091302531231266199505453826212111429228818428486749016574564800259680515270956453398712302090910461648914526006331312496932999720182852422169255664085627658039318641250136676177022089028807433216327490523936056786761755506941835988558818580025880524924188312897422385495242145709613998416546757796859044524279661865160509534886656591908054749940769525249587344732587289964347997359086845047142193935558778696817586249184077547860254695953361568686894911714956186145951803566662242164111916685338743493115787815741677998898273418068984900916379653310255356780287202339338504672044731534155905630429837267692823989199107530515776145153264030437963399620269839455003502156293198718389280072231314709513279567818426749649283614538709424241357415124970896525453117673666414941225686499550479128770755779533194245905104170210180893323917302809963120481200989284314908941531063256606302655203712653813985975137085729047719280772688383029735011289458867182500120291958428391643661797599170257309073319292847812894164635971110435505067318792697115016526691967072134719369369870522459198828192309801206072245794206816394802219262367166221861906776689716296338036549635364300023513172557175206856435552206473492529957366516567806336694381542341592660847198551835681915787682177805765979998402477246177876893536786215826252556171631890713167380237295065809971217196505230734960023569785828684148235499433707506203177590223295884672719664320549157510143399511408779434222947352322339944261424500116098299578654869353275260865999920370740254892989862993590650777944621325446549779738358561221923353442072929992848761163846749824840252154298541958106542842086129081562366589656809201866601635644107440124140296476388088261527170302333374331460316985724102903546493416226999500380159996125281107466425518650010246690061264525314670039600557024186895031964353379602497998436755184513710818171808046309993514548090411695797528202669247659785487951190263086336496590178550976012797185539020800265794483122688739882930433165372997140224269225753101837099815794158289203583395372747455311919228587648583755223509417467689693368988227440846899292583385400179869717460822836923370083035531179769921224887747913012881309150984641410988106881735560054274953947504770250828357162469194951151340943542452625615126140839884984806416115216370623102806404880208507173054003668346928243377484185629930743287832401682145267728148796167881296586037960714273874774505950421024643033805304354379852105262909560073311996450446122541514877981788730495944699119544069835122260893567668841827212082888606410928218165062663521700929817763282310494590694440657399689434562453930984722236193749082669208205268371160894596816618636000942700165588959535951716907062817504376374422112992988763567086771250558132354365199200743978228502798312368360348197280808005144545483665671402341968330459555609464876806376265660115097757984378023802596227135983690065106749472518535060582396190550741653175522519006247161328435041557669635811932942141382121217731128937679489801405957610207595717005057009881977497026177333763162050674305169840407741772047985588401275780304002296972249023998582547716393914582064928887833809356590690896406044295315202138467309416800292252281355873422176925592822904296129518837316056458743763876924183615179654023349947812805768484672143840956147961173046507523136276171045653367337886416347353462345511190458609609859603691207648594764868517531458698870970893283981579507862783070350858189316087830864918556341097593429070648601952843411811919800225684140164709422038199661846970853394197644498785741654572140663169416016521519268233300000665903283929000077734484928062114906181013057446973183485726427885902636969079602538090932930384558920578247278271889336883732879529611827305427731063955263509712931748010525561121500825584676628887635379631144734911507065490530678975091902548648342989337522606747900860103748141577670577287396951457060692854187020110373925152958639275082368649648777221718528066620045890026813384763141283283926516335117002920391039882529614881998246700603857877760470215810753863351342512645576628556124716279681721870516514002922627994573625626931864857649883744868782695413804052825110266455442353101240423687335909495450118430840523893232481390401114260271347268916037347218622035720837817025897856489546127108460121972331357471583639698614197942337483987445588570910838505518753051453166238174695798839412546284682060914679490944864059542027520064276726187479393935614440177656770748153756823331159159259557834368224768176581691281139863635465084116362412983521615395778798681818431414577023725740499879801030421601526027158237066095349307870105240819062405828765013716956467035353173770174511217514492498079720305188388195572498056389746450460416209633736383200700712121521336846876212421552529401712948656146944932506730412873651136524969607603712483411508521394503884715182404251338930330035233689517300970593821566662491006224381071592111812012307461303004829299185474974582918885634189856818717669557093429080872942225719195211378746937356390701675217041065626097048806450751021249259846731071727025551238081605658060919406501356144528249826726539703341797328614344693527608303274760022713098474859529061863817643317321026003376567404601668585517128888052572823797344263634839776896894809561346166660983255121820431314696937158304434829888623717450337630382791090380135341822394798739514192003152250837105451858934665234706578587036507171891074609947369321877880617743427070370676438490543475648878776248903434700591250487104883341470951196026908503430489164254483414642634925228808201219684768950868814447012946047235303706437218153238575942081714555246658566970031537213636697022490119370564783123465134872524221544034030894811455471838464915329403636731951654094288609617323398431390749901136385347151394031812376043735017752199213465811514512323621200544515523212042459024058665835935649323405142883466156845095963624513220155092903596329198539226269064990034335445967537219175987177433265340977759812820920146824138965810387783744408305410847234865952394102197591066302155874876457595130243002986023785012459329037234320052619729063916109301263694807535090704075074599552143577404710601144537381538321199596457067653345325885309910431380144575595615810628432323213985816345318562883829422322910863727313506123142771173761533337872130164801367752803481796838295944067469653615292190863018853204880159782671791023359354751933969930101233889291970656837409809935478923028296723826249558771396030997540256201875747659391589849872243198292713420327145683377563898831129447281993113408861439402058653756004827401755657401043025352368897342493294105195852497808540278894853050492590600000073931722940218477391814428010933300023138555839261843415284429154017527027836974171917765613969457405796984478742851642983498500221170070009087098701869075849512003090770627702354560004131685748856610195517077726901890838252381213663582675268074119701061743368802952063507719768998911036805304699970477715941558249377820024997172517486327404602790249384329621085633634831326755193013102376744143868957780839527663756460572634985854643601739567466034392697522973502924986143973359410898718716555653089163628728389301430976068561566627063494124683692424375516123504452492616656333785775883961350220703248710028469857298452111831103121894419918019570967200101874126713455080666339534661393534853309243366494573471042990862556747172616976573705819812358159360928807077249534214303639139940692663569141922393974930964057968320516852376863039605514138276381171761659913943287352842314912711783694478686913948997163395818427612919538436064304011840070733115743235296505924598884283147909030382962562452559526850465327650466576210070591997350624008113667444488731683879699403181983605436937437743426595481278785120342863679052207626381017212545424430939401130714154189740907504501377030197839615290217791227100490255787352622589442429623217908460221006783700690491330248595298563510364309603619526349948248884953391319571413749355979685301227524704359456445253636729426584870831454913475587936713564767021380846497267921049025009440408050789239194183545708017228183655943285143223386965719242703660876966856011149218393364483655587306490517745162503350914287539662920433319564614566302783372891575911112669859612415994961139700405815230502771533074268392500421954242767083391962591468588820665650684373223542392819493526629776270458209213114914141541045605950431221260916845848779142864338278100618242509459121832315399963230083754549106757984329512324326634363819236730480036764351951018121974738671425260973853459918883100877977049692942806280560782508483360032208636169838168155450548817311194363559473325184792087802977690785017797427218446128438934547196647065277545626222428469304465264211143332907040023062746066480105668382511645587958478325369077328380463482013762852527966177084718487196313981519894042571885590829491282428668897068686362653812664075892731232517840830541151120377163163007827967247991914692948344171848117645067911322906529425960185087616957693999808321522282676842042520996043003320059076221658630225270045881867320307070316780063028068161119100556442131288549096702474556285310069587573313876666208872799230294271157229312237518418229932806306425406553245930877597883355031955683042202476141891806264270422521688481330306186032579795591428536280318064493659984469421063622772351871368493307093889379721546814065674991983915721910083376238583608173575572116078724998792566251887625021927087762214418245873045064194379919960897260633432517045084111883658951484372853658495858732711122716916098834136802999444241369271153169909256727620544092858141280896520434939893883656479630256085105798718168911280563769126329995001141633992576819915872124472080649326552306587427416727250904438491402056571905355184824122418034479629526904959080611234635922680066125109619757139848916850483275658754001670174183197175785227253499612936025607595949541552891760408068590085821520496889118643226414449159119705328273934149406095690056148960718039533780507733170827665518424829395220137014481478693205627977210055586540885562208875117391152321347676480055184295017096288906871146731063513757448766019786562962089618816462087888887697177112053780429094106983722363589704565358543724241188009998006388937374825210029849324761605494860615973728227435489210332062921356859461912751378832513923167648170293418422492280064940398618587192327731493231425677174701177541048392850361190590626123376167703238603214554879123683299525193596896504900202405332660752988415463151306443448773459500489863416553749820737794332451467999935581159246761329352507743138355228540595461413054843790426053707006440096044245070420767075680332388794237779671029643918527169201719785782160570386404041998603994375192014067065130381218456073253547840276942731460571800538527240458359755912677092540556815786276463481891018061953055261914957276498858218389092451397531735368515525069048984641579507929373788914501351691384751075332567996200931001496492037354971623687268223484423766873966473998431772023105043344441168676195237278313014164759132663842822205347654255969192021249990273091229226046775056894305968815742264357396127956460694990077282409562264115139251059605604604697260922062020767384934327753614201499925915667055078654559982514867019487025458722293029570428910548540543632701127226491712770985883602481436491126527478919385953786067080252541775577765875321575578530477721671497811817147221211766372133617412797431586586753579380672437005634440933893188373861445971459011856938522240729350620126693331752845550236492192605744166385676376311094134750603671452817050303948829676817240845440097059466539953974471024967406553702653639308056591967650263796891249951187271776091467709797425378322013297937653567892334116568578177661108620114915180134859974665041341936210639668396418161685408215681853847976278072157391918990149300089483262693626183749655654001742795140978697960477971413793062891071567746147489554268031099114735686035910300625148826970611794288764389100891283687791265335913221118034643873687806432822624892776547540747321213791235272158888912822999975650817654832600052642207194997365656255249255117837122273767135367920392650010738322930380150612655848252285529789874297663391159381528285635274348942243225404970354095857180692009993936613714653987950547091651097240526181066293474172969479275634473371134765974929748970901757284841975807946986737529414650021972554673438691133246297128707094274729467518688445325002970146562760032836446126503335055316611387627253941743426285834803390605503142519756105246009669124756697573457553861219147411504241866403710200685608974426750698137187027966352860567332160168971163904012118775892942807816461273449254296082001331365843567011292357205413760794168803883793473460312848355529431797866283188600506214854365407090112391613872457231184770229213115268940482316754306497540899443285682163028642176974649679835678533750266436608546025377602931792205023609142096257020628633919684357350224814961197477212482477264873912943100456954812136283790002995528858379083646180511167250804869901121449301714819271776588405775717119010786943636749525009288588218026212649088596510942680036461874037838950797826397753362888375536375662422898727037927920529503507052648965541327318112847097300591473820722849948012725271872353172838370927875382819479352690709453866502219915292205296424139513975588085694237396283703131216461163921430472418229321718816095659215013524740372162060241403775296656394640375884245559697745415161478551701097531601144170893291106274038597037521881692463588354742256160574704267074558292905687215781944097022965247260362649280671144983050786887585693884729008490024961904607578141497254576382537528798531436768117145299065774378479207875182906874954536605560743045533626155705362408865096129954085607943788552267421863154898679992370987316312793310928499675009543633682844385279781102504342420788513778173404507069844655077429668073585605149448521419475087089467944503312540128702723315408219972190856989552365173768370595961509659683071526654377545971727968838670297821856257628408958346700886069722526740619437188929261943891037961157072505946893549699070101428158037743524349109179282868568713755337952539499329501983620496182816018153879252346006254259626722747915522164796913604659597102120564780714832948778885650567511463914000627977180420848059484622488351726413077253602661321689893090885357101717981145388617732321250220524759640400625522154600089565725467551869251017502916065013723157250248387338432077423008324856594697489975216998355566024205344205395203145194168738579735384165983570655818223184772010935422418862017798545421142274776166011479737998090077113477918100369068983883669120732304875917827076038854890460874762529532399953731972097418945058971395821616900526421350631445694624076331780176797538090419603748286525603027876382408287321432547460885388537904049415558778968437574349462276810300954124287426261665710446166791455603083864040077049779561507707939906316406409436359558732263421547712343355860725002379891760811776788265379465556774928471830749558850406650815085721785786223731906358706623232579646576473526140415154921129862956344159153453271558630022992538751639218732315286893302871028855620764878943670148608052594237096713418505440874370153618773950982444950121424297455439354879399804920271811256399995039118647940858820166806350759600542323747438325609452478676620968144031623572636204714131269853749742256154927983352412719197626310347429743805796419951076075880300661374144332350756309395220692565653964050565884172277712824425618334142829206881467976577113768140867593415093408756842799241764654884418172900420779452592004237833913646927845295152838574976536401375789282189125663850418274598832458213018637117113963341249014371239253091165977938156576151978808663149628812332353975138534717249923745381918605355544108368804647745977644896541668005911473387109174540899041142150589671447343804347415148941504143086115295336229050359344577025328494822262302564808606204541615169172211684778957017148452221201467399491650740432352392412015960759011998591266409104696740940467682689548842676188347874682267060504720152518463920910818737969407386978703867484211352988276218620165549847460872704360810965981774607331904109951838638068394119837441786051362220014733842179304560348753349902607983450299165436132097623055742709827003602191274951076484541296371253079504209770982481120737882175508417464152706210102911581231227084436262958858602679724296282905961364549789506737476570395253333791325080141694002201423042711410579642924906848419592923314367100479386546892638629716846228617950557911960435821773587011353021503825887540568699586119449588699852605701557256230446254431395116042254728673444587434781385956491854644692554863823063477463023478265978760209094567540817015999512429813925572938243487021004915094821430793111465282729720113123419828605679722351552732339711964056531901408076310421119971034892912584804230070157166978930316438603352703159293273962421356052668883699796613818444567047661030829991748102595281728751392662673339197045976118415244159057066130616847001335654464997239600706850778882196642846004383734590062341993465897554205811754862766060160172174342818855039191565630350897282569035200740680373405351125920573494469819062110850633144809266729157911840974747943177877230540738698183973857795745323461755626852577901293976726409360155592682914743401497454122319389194483024002042097894314758399520574733438057018143158763794557174474453845368327185550284500631288081975072001011980228588161001869562000794608450273112561074368439697380543333972724622918410537606398141768034393962957951000446063382660939460620872691960806140918813320807695280012544704682073442146931574069475581688288826083489061118908165026265987280472463038776187451004490696929408316469063674085166274285853984336775481860158890929561406954309908170579364742217235416099029453729204330522263576867913814657862363998092804645847019293149981393023973225036651493573742979514871361169444198224225256227540542682762497666018358856359778624707173387627330650497401674898170802468287771510839136550939089437818683355118187169077800676243434631847780736396719869914737502964039751081868078501999900582062354115786201793401367710091522969948228652378321731284354308066745219598465606992958475845999605899195079127812699391219897816789488679945987633507436271375334427507176781602053079578696806799944539076622393411552286468069284862529646436230289808082507168454116772371960934663391607275539744972389152827005832794115265663856769696764298414235583669206513871146206400839242138991885773052649332026119661379186619359142661927623731395846056013761806474635837039673020759486386589745606127616614254700089774149434599927554285225144439017756298448646860026288299304233851795975937748225197212949668692788312426253059501505304342433563285406301485071496983821535368507846117212510213229149699596660675863405281656662152919026755392946428981573933897315915886702948776044657562116627458441475951578880954409348925950119605671195442344588991088266570143762183976342789451039502977382231338655868005298476916752593031342443225614458874815979556204571001344776830389780267408732928538432609076552401379805640618920582434388387441529621963144481027819395080233826676970211965580756194607652461672837859976211709557254673879762753055901183576867984379236912014075476199266092279069073446973897345610282578483117008960443848186113210825867249824992117117981477130575853282961528168245927195871725692622406205997446615340413322394845096213835339177622699998562197297525167433549617941638546180838284271540505069231161953363775660743963647537614314204398460134218111602464273777963908612784018137879569300623541688307666530721751900173753826818953798266080186832839810465806663641953794454248916177990775074130722420713782963165700540133209177588567862377522454180854497158301563078637406485898473140098594091867823142889628813289916693150324930361820389881607908055509073730009352984631940286155352719217117835912611229112981119123286874149200594869440239018961042926582068431496286178972730886073372949496714789993922642779773378140691714538521233947352443223059623679937261197715377219639590658875081240833490203287588956731887439364405560202379244375255319695183471322258763754209506387751683827593084317149016103745509587760896393386165694672599965652279393239816867124468211321692783198745048114870116659628011745093422834560725159018049730768882873217165213258011464228211605318170991994198985633350513418336218658869960147790648966272895667358904783714432676374719946047047766459729438119456776945284440016097743568690763494456968378718489907629098375500281008166954410033789399393935915871660178494914008846559900494581296805658911201293505043053291814636165612043281645729475794788639864336465924049815687893543559318137687143723880145365525770806446190031380230447081835586147928815984604840293917206389523163709559489709070478719860695656677227682176496901594125289688391755239277177834058504864797689123984514964565515324453051316301422719049926612855627470820102939433176168509451549194957598385366179913182864326134828854874847258713487235575542635804207170146096562694829859905524042804621935714198343793432924002728857636562825903131668826084902297772895080499609099764776505772992623723496884955716929985524343081922759771617408776964762494323661921723852549858208335300592125271451343487008500241176231044986826897029942925210272026892771085867328801068133353908177382583081380330565329064086875732299207093982949339071573331105117000715210733786126508406929017777713696295940427380870432595075581961666252294677693488346972448608649780661035269663384110342884391125333804596062949137939123974193491114420064034563562286669310465166185359525045413354866985347208188369456016643812519963565111998237786818324645596557405882299406747309986292236698607614948206464517279903898213404371477865502937099733990433642218273473720525892607618898865208279929720260404978169399758577374667997074416165274113328194146311654208129754628554723541062137041456443776888868965338723588021450516462279481965195235901159793610855723445911682121176406221424771943848833873980034317664753634007141532605279402272829006233646593338338626656258286527851217756766171935073483670638073501459629580922880045805147645601338341444841155896293986134194433451828871900007097164391004781192969174399920445342217350929368140626515072972696707437219855813645277272168963390093927322466206930396533140920128062403519075723035781271099291804342438337964145318713341585415917090747562318644299887285681927176760143810226257591370079341439684162990803233455529575468327814419233707543911007959463295130930770756829811831135904705782609445794183722003405146636957398130862911450624321111467488361722634250963529987826760443282785757999229791711708322547606078538322416934657677886243344292440549227428647355896603285101561645687856313245660841539871419434431019985858669148141771792520199040619914645899452644447302394802587037589678769022241811604417262704233173508443203719456539597708022704619667819765990933479993805679737184044125132290459298789891185406626436712007501334840880907313426970907026263476861135592772731186570678106115396547015447062742590366920518719118448804803603544100887688509513473158155520607475571586633445937559379591638738556246101892457973071951414455591982804218840255735072655531079713562889214984515076857097312088872599303088085029158274403659501791393309837609016591776063853809559078366424259129347390247044869169333102466464332182039423424434560987707421320316280248628738400385860975117205630530593580392701692291887339298835008029497815556572980158313614080782108952387284103074458170684558667346020118668694131783883533167447128955236362621855771932366164617751467938426622031606538277267392697574905168453082246342128151148231253339021211277023458727120049015373673143987035183659436046070760744675388928646674516135449892581593405957548412604346897020205934678089409455039342071923347589311133978717411041457191610395306139508121332930725254088255142982984940612924326644899265835110308734775621280585555631204789520064030597426948063648573619111354963989455820311267238787781412610389750245982259876606455459314224688055385321033466393239805785691737803448467247314590797497988673865554084345962734864469944059474302145147517075960291168723129125190390206830892615167296302379362157645726046912180300477815408471039542526668147374358743392842816941946328919848908122144379250019004126888644629532025266563305900097355684095284630264804748153289435041573596804054998397017137751997478774259789462950960579269567409725614559232427297906509374172718039059701087826274388358449808679502636538979981233150933937646383134935073340719837977846639290694287126236855903553038328421602684435671710141508613324893786592165854841440796632182605940897706997214548923302506392390998227855566814811438046103960289939018773652196201851814443680273302652849160646723202048182497785175789697682698868955448719087183095484516486759698945198992305209426707503594993578551199847019264354342196738642429925086135753138074452419599849596497060188761459869260363403398613527983301936194624676127349930448408933632528569619174023169213974396948208082527448349886719041279691622671429113126891243696270070191416419638468292363347551568317374627361183941594118167743736740849605361994680275034387518249473908127308468890191141287754194454350507178417286596216241597626490398112153674999979350340463827592370252968196286885836918940121313116606967225465248851615280353966047550787972258596269755952462410375299172068537795137996636852675794165258662296678436891751357583795459446708492931792968818598657760164570456606797755600380381239102717119077817247594702332386570606957058618487665477070294095545122852674837250652431014489172911562327993369063365675483885341012095327259988854967057660404258916393079784239926066427201487123711033395894920133776022238934208806855918307959774806335609924946347239228539905663909095419915065182885549240981744554048583999877519509966825721900782603623771469026354324285986526087985180423229732812406079072729239316773134298152259751367607682885831929708647197375843338575706173020322144168164036911313970236672527979378341463871059532523373398851004245502476903410972853255561373015855096930887070648656646114965626298752922321022705444470633233114586302904636276209560208777153274343423973597077210483180513005657675945212841211585371704649344069335953230989221459135078144782318917264659832972400280058865471046979164208900268830630798760651175987729868472654677005865036800168815622317870502968015958369376836388889457631345223798381367719191272502606314971721943369495514655196317348956794132209636622006997076474895796762427669962268406803005118723419342892848275339802922743789393429757077879602182207089931882408116775796629801919604693994901935239325110229119664898815421166554197176552242853384013672742247954114710930554106897204910001940098516584242670620348647069864809707732296315073106362064005417334894198977313443236812960007377836394800703495854870733392569360895557920210403749204264932840726344279588885681275082726187703145134262464326721177621803960977291763298102516342612974228639511408808848644052628454641765546339809281744135121057133044246867396646824434188648262897031129764500559054974758954899496358589002340703380880029902500444225512379775388891664242093685326160201541438437961572556765296264126328643374627299210834466262844329279335352174422632836729767149906137833745084464047176822532560555869333670345439073734761906237388203200002578439953592329923431454411995106978825732740092719058775176084727613932752474064475797324234543754492962858854416478659739706015190959258790408212541854982873710892784526064298964585701185555661922058197951124123687247231316943077668415334516188678284422225246619190202861697639112048299440799732705697788425883466619171138010894006124352018308860861330132888692041698781243978998897761507458695359630242251418006169191142919441359337049520287437505617764410822428347981405695558417105863149370368786101091823228667138437235240969976962616241966914147391859435478757287122399275349221729079743991514626089066550890231408096192874673994218911378497878982469235445787980428128709514240961353963692857915435336813650633526234154061344108034358750241110194320227529807094520719359385824861688749200330987998996201620241201002573550254337188738610724209651126331621738573009304901631305977454387915412558232304153356997895575198075789630079651016937092284533581235323850422745441001601608915667817926547660716734058843047296545534464215900505810804597274218677968945683381769985109266879940582300092379420884211345302757633680923384867581410848085232461879915287581214033142619943111473320624379212684272272294670823049626802114920744647392916581440423644683683199358001854281850450038701051702793176636469234508174696922086118834725207867268744569863918466441923140540164697790850069077436314984941071492456094771307323280979840650429458892745789598307448573558208787356251722581327056962307684275362435836732847561102628493073925500546877710004828473139925965415973300471029124723242178062946447268343795979438167218774831687006614920355510122646328038116722144908421414812623848988959677672048595771223638280810319622689586532102924402865247146047016801188092732521838939045908681441552617794816879469959582867700648356396720588669878652452801346272038393492538472096657828080553154647927714203961892366855161788016231415636231838475993669099808191405867368042729167721328865420027472090578703190374788324871403492263118437955810268303368666912606099647294891571331389352099124074187372517649821548336817400411272239601848722844766197310098110960057677980865026904983550185560076602408193317792582910044480010663908779918914810549904680029107582673108017908963534639323065125207784083444604017978613148742391301547035179023546521251120668533736284068748141781059011173042643195195255418151185109318071246151995311549070419182386617696908263805761368759466799122252311162646318491464812054725459043003155932075979460171252749378096402995694892801875447846117353802112795974602938588351613716646942037044647325529920876774598301855996430263880746055903607147243599518757597730036329803346362654577942556716536407775713948719222165649005415135099388581873203391347754838109169195114304069512721900687509185034716154214465266186379093538277791139282751870160223688608947452242735557836084199535443083453748084895864803173722844536209805629600822689461988412489245567198022113178412067846423864238733127031908856976975412437442854588290413773693592434033060294817667449479451155974759838778651544911938262441873169023608261348882052609832034681093888746479569939254289356749525514406934493702992216373536156390192106468477094840003991077063170726892047766240604952568123673587045135107639296101546195136708162265959862888524739481160801185299773208790674138430811488436215390285488041900732298914276979915898954506279581526996481387904444864606479729550444633869069029210405504644633656489881605507491578524650915854988639585079478085420758711526787907600437497541858555546087817326155236758247484540223693461144800307098479736230750147428005128496951204455567680573487196650884584802584966058071737428699971623353905751583258189439847524610362745552118365235996521416638229620009498031485140395779848535485593436282397899122242358583173618821428738575055575590483180556419505931779599053796955982643479909321725317820084782131180968635736591433868669528801027102299694330911686593650094790712723459312403567197992862748367827304127341555999530405071587496930591093364673189565570909144406299447161763253551976943561232248012093603935311743442893235169675891251740474415041761059356418371561645113906788486235955503528578898991397563512587135478381652320083413533142842351811991759537120862307250578366489639608709117946863276946960682369570099671907789881354171022073263317904846750578051628972411357270063847517268772868401699445321048229451382738614657967064298467778301012024364692771386683355133254351220412416269659323065239016845857486973671007022170388222102984977689064536098627883050313837933231674051899149011271007357416553699540232234313561749993706195696609035411231566119868591920308362920972814329767589822521897462565840405959744707808518483875267634253565847866826858567289543844320328975309802929469209756035347703770252529095371451316526179090978978297873510544610586103629502989050824310579095553773747943367790111826124193614277529217999323584990139853869579189845897503183236141839604936928852539243295327192923127209140952545078421678080985816654624427360464901322590423526833105399352812017872298480188374808512213803392325757018573494153189937590804524362301407832471107819753170825374903649781522569897836555391066005967942154332120898829408251980632252274879978030127551563496959764081056553735949727369742834654215002774445104057046550321812907834692236604594518917775137287010472935159326782841426420416599114377640762045328140267565575877807699151153361114603972989986842437809804845158097573170142917317144577589254869211135492269807751219717150024009866904231195459069759265497500633697365465719965731802816245948304437507380124502672745643090530118701021548213148626789708282157691221620816216181879975489468494184992687297062318333820306259991715559574763651512858964330302660396406899399605680909685954050816736822068836598734439310496876294035425205905596441538367824408958155953954013365166270728768231284022169466767297832422421890473987474511248207907878766012722090168354014286712295435196989959345303070472245796992902859274882641779979235990799142430418219826346962827502705791122858988309539642308829266256767359170853872047126417234197458280645812331846805987728400177216854564253084526160916451479934630368397868101635316273322969384053549600327504117439841503980416257714415936704572982402319609247147220699608613365841742182426685838632797292069451017927781761681661599326972738355358338758230435511332464490644599710185225517946153822468023230529604646124415235385099819359276723740583379701324188482755086493195708270742681332944134490643116162998645462811383241588643867805265797421062542908471985571383316277128802056340039961076061469728418032119279439780021065528363189227772642128198682726591200090806609347322411528398768560986407285097689008250677788045693936895387337007727278496082480387702151832271570211132134698293816721189790184164006565210994665156069583304631110485578988989778179112048714743063036154765385089812469655104354492754040819941339457640821080975487029439353388067591327016713973728062287431427295362063055957052171951037038024325402332647420008642453631243139556858144533100944390274767148640418964415955580178244679681400578454384761805780838054073087889390939681547551897424757846924445365451960549869886408278812712645749500488137629826283387291084068191777475592879793627476389514659433174614935282239770593711842741936996460627664493143981701944772924310701001431149784704019849611050857977764315364698790071940737847856994059581059163157301177899356882524750317704162578781707594133497395549454841861403027101325687997570317526715590550281340860939601058316707007747397011286440598690946894143621754604076292589628861898454776387432341096074627506943007990853662913399490099898454675041987821472356009236225534614452233741582703272785292443452079106413025243172915937113980861820885824736394911439032012124216010996544611899583979268954001506475968881073268708910473071718692567187129486324679973693861701235414179339464726369100099051936411196924069858840526415307043610911944076654191991538009985014246911790036265869272897127570352610762809313304625784749263093588535753932119668070508893642895676084587030319845032863641028733392636570314139478364575599726362400538569460225970193307593064938079959056747628407938595847749695181292727031591391114956067010034149981329661639949935145169039080759655112458760293143522032108850412972039722657500539318301575268836815482190523158205604746109783178563975202287531922191730473880121676998661392907621984427926116535937044021859120791583857050359066466559568172425632889242861850474516116987710373668127975656921022452933134308876344725619019323147527772164651916953076556058083915573143246083534146572022569919846574354882390504404303751510503864370326184539514730127224799043136813494877728418059039582925162669018797954610493527679464988109655009743212336702697547744610316542186934230185656180497081633130193370060403079715349851785106309566320731958043413206990182432846943656618660231471280666790466758269977067874492762843809308554718756260682214083227217657725635357449408828401827135176265785338855057961126765261902367813980231577186225934904336157926264787374044129001618820738399068661651448155965036929150093785643676023899985852367768141449816399157909946054921072087283292765391233594415015690464314750262357359506718983028837273768946484315564930473965596431102061050349950186680435347698509419877644290248292965160435914962704972387721929902247605220924768509881379762433842987654796595059528101908030754412998983779974990945642459478876987248630402488812746442341685038469343682185270758378351672290314306681558711130626546915889079774428058361732046274483002405760826294709290071199078125948337696653327042946967671417243473540052146774543377171284601337126588286872425219994819162274028810922083076305427537280178505342034120827844435054587376599611457400528745240331323696856194927272632133852402801762498961252629527737965916434473061125790220318439398168589985497853767568766396341414212847536441427700366808371417208024986552007289948017285288610592107693845564021980043946570139249691417427379797055976435954939578431798686875912038363980803335185498289789927800980357957462779294199208828847928363572251672264357319976621330021586555511491519460229668983418532960868983565459066149363730983049460344395624037640878084682268730682819007587914925613781579271334105566669351690905051633641542954849696423060885868843147554826114212578487537472138607362039467609368210866748622983624489317410380012284076065273551870864304362669016673044217633753126534406388542238705854685449560399869263976175460940118098183703896295429437845198139214560892242848084377099802868106185597198236757688997067491747751162479933458082717375361089069916906777617782526845661266549096008711855936099121266378082667788390179206695520441186423163843520523915243047439861938686041121317493942738162789522280396622406281518252848687497699681970814912342762879429672386639166625495849116145692864484074914020219545572835154701038803579988595057694857310014801504878954679220656526013512212339783563200930526666380700633473933350247678700234308078608326035703844376866415685401363833395098155529208058580019266284724985295640783339448013438957985404169905291179670959401757321534939348454028181113444977707126678199175198037627879237564204880006599937231369185329862807053534868449386245771448281180896176006296460457197583743205434378529141097981299921997543025992984165053695363297418338754827536071420049867362988634387502377064865226403010301604390683115597590800488582770614573659837988757439733127744605038296081740263875749840737283399573692380299331824288642469175328999031506016981650651984494823674745896359153410573793808184764250060271905269007254223626156232716365345778215280841354887773517810264946421471683335758948004613783492868888035265256798258497246725318517494854800525585528870582556476851640385950454216553448120685800984983112409613774131255282915585312452854551466547657600353403163612800359019282112587671510399918617287636395339224891146335435254262280688245966002716399463582855276000403650405236294627022626802432077044868130485760584502635863187291055433652446900832155109353342097148087473466621188100313189961259930286557800476795031799813145150246774950094644572983747593942970097825896872753355533392445530123409324950059813096631887726749291214038203955216744197373198260680475718077083054471893132165496718688378686264721634245167374567229241044473083850538879278695567221511250317733453681410747013856455360398658820775974096691661221567876565323809109837258587021875387910267437905380970147047607846418183147001432859831734696469697578742505353402479444445124177283577510706508578186235691039125319002082544488544582903529488338692524984015305394402507454035003568838236677576820691491756979439364837242959481279897027390398496726586845018656824245059226716544508951077072509989491607562894102710437578025257519429207024684888572294245158769647053208233782023309050139289166283016263662669103757590513460817853507690441336581582219812137185378499515910520771715415226009958582114666835088418572696795951732459901510951699392086732903386182755196685510159261077346123320769392373626732930564869652026634051593057653649028705904443922962485972453548457693105428189803448924394729681167190156905161104683932441742849225732871924588994961576371735969795182147795610237015678542223161217973007065369027864432504652307433252127887156731869365714351714905466799444789274099279497089452728291940643622010653559548536576267498243440141561423263289308209324781960615330397828563319928965431279765731756575170678598815413947929352590490693385938670700938897354001653236217359501396013028077215262026439657862945714668835145952350778538580920797731840043186451279326205592460033945674647125901632753628593757587196579264219733642750819051448142527195408708259970234842236337490484250943250073614040740215326311688261279494150001125325864197922554056755845601072396682711962451725822092228176277415724646200287321656602599066150330282988209129479910662479092831848289673814115749466759191077694779589435452339284000104159122772993912980070733178351819645969300904554032574194977350701650999334529858032596873639745166428118427123694669370439941410981715433384004439760541343710445147307015986631613706438368031649707241626583381035128528661253221926828986941713270430727163578697495395550469640922270186118196285988286284742792245707327017952436783071633156594047548748367961527231951579907304797479949702936585069953748396514949723066063119953601036428300185684436614165950423450427400092212231819038798876984243159645532968997643888046024960493105967639298578758079680338905122001265880803164083594704918840003226905118515651583020567714741782779924325696235981059551231320099782986098607655165968080477822528418915515809769275009309663770051278097342623210489954058474200298748113606793767734068011218884757727123745115120127259569172275892157929383244192432227913729697655990699550361800820683839298573881818614270735376854332280653658072171114379845013492752173845565694523481766546344605367012118064802139855931524168888250604357377805479192291127077940353128565916478838635827821434404044673643848503098902630504737436732228209471781237123482154200497705016536367029479939005197542512211467944580491266294447864879265518643432888055784265959264294378367279715627167132588248226838015953546231728241397980282314966154133279716770408073824120984815477484028500801671082139308656618832939579654566511339356840548475492325654915222387592553991986897867734688618537535952627463693795016401810909112626700742274927364258317059142510535940580672375934130632247313538214313773390677793624799459563169263288966631396845151986248895635161177905384835529510762476095141351433777550230092073361266599907843321443827148233398909525480855324801186409528588013414045981932727012519955502245514636861252230410008081472127380399469828188759526116341954964565371921841048747206323746090007091445374097345422378701569253346731736468241102723077559437203520725138627739032505245605446247259823946970661111548373665147921725334048088346093688517039778584610546946068773765549232379148127471024510635113643870488384944976243714044140849323619533837172638240113749077405526411857664809634093690881939516305347812321101858493862387609681936538011207502406894952897564063770082022218721574876781200060966118498737459004542310494632854305221206813805215103940921413655383383082233142711534715213229644952965192085418721260084378160852286334977094863696440831586521886889583368159634445444829434001779143861475383552372897092893938382722228174191990071050876939206966233274426775093108211498825478908594909201824619478353389470274437065274477006175424530883300534690614419178814942314767503303060518876450035235644654604094776693342725421255553433122040856598199462677668887575549957371671768474632961239541685319819821683627949817978592355003770659498187946530738522689447809429297872834116164562941310921845231456483622767013524704167220267636822482907442390014287570796862104368863020578542987914735836401789249081499059331613926009280546288652479741508399307333834770302335077621638823073291846408976838191204437886402819061666692269234742656729719803671810550061210547376415826783995691997192380071483725895393631594758421228295205143690519265978955374887489058896627822394330392633728801358897932481955255422214254569886699067536154180357218821910154467237714134093043076236282256198328073508155837142347223974913022244989290177074717781469206834982871839962716771676615127538950770443473701574114640185034583007008631885220965273421933019865513825125174549798828695183136386340587405278332787405821788459451287277029157504728019968086337949232239885142232659556549824420906957295896684718186208022231314053418385535363328891546046869685818813974804798453344712574705481574525893033857115441976581239865691961044331265613192066877251705925788338708818823135180316398759458533184073255991169501572693541026856074382895952024721084758203787429567726905620481435830676308039163072212072111120888868900588840867737247445447086835965595533864327684718043678644693375925707599480326999413757701371838621609945737110893078510137928638066994289116313441413733486601561697589404684664699613500175251533675211286066941704964410213378078952545604114682936305971095991786444608581679347274714756579611492449814794806321137983982331274088157330725485399682457888067963968501206725081792596228995004192505846516240253724757112746895461364301114369304970440578934774048327685004501504548734500786370296906456069686897195172406467481789090596883507558847868585920856557074547581040291850118621173393981866469203196498850970754166830255086698426627135669453954135706313353443429831094845690464236047384468439536126610073114400282725772123407052122555074393341873244916830199709912300393020793247993515543041233440334585735035517500915306081988629615253222170054476507332840607268048404290017724983259521549918769755065087478666454336650846816982694823900558772223402469300651566249442129867888803293483350971844778332971770715127069019948148374134332302462166568954144496580677401417519848049316385378143040674192997781894893156286431949867644629623494600133798565594138939105201607331362995981198611181073870284382529540057814121323730997699494956915527040892040476408077794369040614977808453098898895004673514489305622323618233567680057566156044088061650091419091208126481749358806448551290380908829174320180066960336383704894066742017037262273117646185141524068012384495913084600009652180375345169407508854704695103232027444482615181997112317682618484929867001192723498486407474893570075742123375197554206450287010864229986510969593266694837010929074952512540851363388664378509291184887509070151466813497359669567077417004313361796217637588245837763059924859141484778259561198454443991712862602485979425726187331076473565686289616575093876523602199916543568157893396133813908483776409553529326635551739483522295278353796877375000017921116166837716119893027423459698274012672544851621040440309096555449283171718290587277179325127317762436134981296223537867234182401371599646765748138757366105191831664399673108121830103456559585781496190902431765848812070006083719390736639737519959852826342674526760226023090188711523911130785726387773664021154111791379795378894535936352994118752052667643749333767159640681186603405309674433926959545902951271491929184839072677551483964853226134413948979049593243043167719512999424809591578743372916773116769387096694351201504699078729848461436603438632607403155579419991267134529638342216955804268747250046831834304906181212242259021763478842502300158448548117790184404314563332783466809819534198326072144586881434594665594136075791589510931764870074956893833821064645796213174129193116780537313410635199829896860590664374559124151567623515184537648753825578923122069260498585889383526675007213427333459642214804308612770481745340830486664475471666957657548903581237731410500944538095414518202295035871472764939187098681120158188757396624439006998320978016902869121452701646191747387285310357586838217480906678149219479130141023481534250348183417931724567128731525015099400637368960852396972428734907489827730477219036883281195511650473670031440768876761826184688833121445966573011134583352746523493171352368565279873655096077301410869982224810966871681245233642237335229244949099844180724719880158790672940357408413921579550461946568587418050822007553323238857837867946235544684920053299567617902647071724007796799298052854252385410680833197460923091037974682977612468144116418779897893274451214201933572980179957160875730105260184634512450666229621026155729159295441083321191331571968422786953274642542959273115354757580526137173618149486644794341095071197784930806501797506801079248271798405658115722713202269926104836760530922638377651750111453556234169562101786234243860012942655791120508922009959495813213576444693007008645877094474919416346995801065745539591313937649693981405969169015295351403381655282659775203067234622196110468085090075883687501124211783868706718034198531029240378723625127689789994851329398391664905375465994446692721422715974296143996709144771233730530186823670705451636404953965190489429188055996067329083199182095263488111637052490025371226671546604433279619538645936431429378202885195870605235504951453719473715776180332444410614920692834859651058266399068705104212725235121683584777994607862212685893255848388672350689026380311893027450664763707907603149777829182639850728529005626533902614281963768974442385247441861813200154724868816817917065217992226844159674641953501492656930483580762612910822444089569956889069444456004071005965892294471497609995997716514457391346853700782121247139986747652331209065650515354306809966217809155195609969644234662246786154163826785610864252678811930763106385231054335775718540664000569057131173989510903526013551857879046646602808693667027298293795292027592253150694283853955913215916204947686664790081223931053058487967024410620300164321305310127534902376339259774503723598570884513784285737809428979519719998368466152710365523332231706425127367149412681285052012124322801031977990688857161560261122955579361705811415578602965616647693271393528954572554379657312521307766338046681527607722076185105683468703216349900694683808137895282097789733490550862270429308153567193370402683885150316252600918704022625110018427420468326260642443798184527442248274441414535175210715115474956653626529734067169356093408729344975177806669836880423484277036429765044313556514124722792250307108680642356179603417130343374054022220612515754799859269873554941655511326436409761452424048574203241930931164353578744679714719770625241334008322282960057650217987581360701848082558032854888283976802265282479259649442492062142428090636770497923967031284780890643167856080157768399947139168479394233729840516031806256129482056194709229129935950086258339778492306610445781927684974037695066808486009017893647720873338990824182872520659516175868609427843989676472625905387243138495746880487030935025832517868279482222870884687436862289046660969121130419127684479510437575276676240789305250768775785874124057548133859689819350271047290114544034978341197870555834615276443207725541258666033298872206662518181174322605582808243714294983123357243926192644072451547832640640322993012343916190756513854280331539563773232899307306629593892537777030653251090964423869516925793500839951844212789194789983915848749031476634775107177213931917964662262844477030231645174637666720728408494298254874479110555395117753618038232339500984859212815266947277797935083638767771068643694119992136645830376049433603495290943397845404944699361308924538732492685675314533829700448358306097572700587797891772120718632018489031669598473067792684416272316152183200206723351593400322026293396313727282375316710669388740908393753516788484533742393218194693955018137315684612085770352631785438428982244983626653686652737540162476245892479477909228985300896106843450355293836131578891394355182939878632561110433641531571495454611513332231589002223835577419961196737491279347978966293321187139809398998030447366382639443874778036843043380879204074532402958315141182771599832033137020731702191356662494505729486797955342562927896695073257697503283604033041659604200143269521319901732419117719291393613634337576435174670494545211545569557658255729129114738550488367402520182819164424409947360659362439500044843272410769913654432285223846465240085473469024428429863909965273652531088715007837447110319323401866061928498140462340942968792776028649778101981071430315043591976603724754588068581933681535222786236578220992009317950282801231961565548662175841533299809830083245859121652310089681149904828105380743804835962825971966563662234102547601142295561641367816919207595949410577697130215907951018444025814302557598636560287213226300566680487299976793296328172046065514741924476386898789065043138313662191166856342981612648939169311139349423677787690502046533473511591624860356653270900482845109320604239871160738323238674818595150137419242260452412703438017126218725041921720590963351870221122513657896981332140816925896412746962012730154287980868680877585046583748253836791789523122031895007129881460193619261599254119508393445172075073594649254968357816105130012986669383039154563140803440681605134195769489510299994295463249456595179272531369127835653580396587561356047645809105894239293923721532019057367084383356768782738922983729432201451102888414029892465445906584584313102556416667488049546295510413566746990210476610225117192183705248518086887312723639442022303818664249881549007217422261433645973936649629403505121325461805587596514740527003140214886865855960348914347866249062512647092410526114998620725835969518574543321685414938637403911266035393001771771765888590018996311659140378046789597138624150640104904017335326604747803136487636100728059448656134096766823821078237544334870267788589184187609122254674247899199190710945957957655995559403274798995852563545330133530148046924993090254107193056823156555692912573487400669124216728846362958486778036761205300810739189511162057358124019992478008201237838756471811189098594976802843303728772893770223351569351958682206723871931978504761967513544355573394436774564451999978902534877953642877032761709292523728585902339589829397724457815761336487417899180428753175773306708020766227849184200556274000348940003188832480621444067209528578232242938141377612058129513501957068920524008322829368475883152843131683800262369942668571976996669842002310915410148896053676181892624281922262157109896604867592308053563805756739788354154839171264944558255571273921815304083848390148805441219903735475534615466051789601228907396470011863148214282398531887244179421674712410120418196120891043769525849506499440489786803300428916632260290099662865699540685290848503388478247694819111084499011348224816659250350903658606185653093269440792155251921046846781394979132705588339341772479941113848614848461920284743762043293913514436060308537915484210768544485013898451950966918123489164019768394540995455669448859372143157207427864831697443163129739574777781779169300063531719566777855110756957493867687028356667332145705986761035969901880486509018772900217122497558499725602653635342076720200788712088818430078135732700670106975522720820907462914866787013700485439573897967815939976217870162983522904816925274033694386450241704770527198397546033970540932731907960014048726488952295130528760180771023468848106933938673494610153600019692825392552059746320331360069742322238027170428860057250327115955260301805387600208966071157466502900498621690118898730297734476337615230784574005332143839683296116354128217992723499971144060161740977351311266358896578118310456756641999610512627030884547450354153798925535308566065458713590103373425395929849035322357055328923660290223630150441320533173905795791750610660443851549620599750343682223450717010573646061736569789581901152151004077369474396827823698481833000066924367149105898272270101264820015457264177462245460681929891593425716517117837747726710841743969984290514196682294237069248481039757153231630532763190253543607434050782573553483690364550071013060676628244441337723344234920142850413608694823430232037703552974976440618101215063140745977463020190024096524759430219060067837843943993041784509568835075894024423041144361831319993290811797389004281172849759824683858236852226169853817046787750270445947459422162440245145294919773667662111221234870624884183724507887500981402601148386077483839083962079567804297788561598508556143447313882069205621101387242290826229319657410608505926364072381287980162523184363952501472209524496302573772431015605941562456409479498480692297098878009883559288194496910390879991917537693647154052786949145543438672418572828166084611243309336473720604824931450039760864561547833472367974024898737640076479887814945724528413443964744437009034787759117264590283660250826670919577894918808044212439538859808745516130747414327271532545401303747083330780229256466626364203224775820546195147780043461306447670309630145865494821292661239922139139257887629265490208007058276334957002113958788815157655523483167913216048507839103455410379693334395255843854905428431438476968341905054590811221254811938255920717607654902133031481642057006531461717163836757668029923104911305177393262606577855026025829833552389522132149081814710919642823623933878121254697836124314393593556625755856295429358526422037272923116356244543081780307566657677796175769532878833903483126438839551891270202790602493538585779248433924000165828918450385022408120994567448716396719142789711269039836741921178439166690283534596841866085931526721901451095333664669394423317110992412700321050612791986685158377670814937169549952800191393422218315147805674512159040422205914723766491114477712626412312647481105873835090291463025380977289263370193336729497201918829563706977999512957334582916950306739857917812865710728962270840288050564961241020765999597084627415217393771907376717950916328830717905003107618025867810241198171038293880480726707639638384107119450766757104604803280732492678933715673769577366582532288719533942062110729101886859409080661775058806121174616056360728665969534183360394866078993667877532982015272584047311595010391926269448707417719453280859631388342750771917936722813509946808082224574513556486219848424453626851320211335464616536928238340614042939044824548511216981479640511038236997169887688804459610414950087666143802997680866883662792386438091728085777048188257654017975278261022911823851738161892141272557779034292865919433506546089260627585542931855940610414638018340603319183559910995599695488649065434473393177102353376227813297091013249442798307966960513094690873382671189457669006787168166201741091146015610084027101602666681120040544768573406821238909512439274264147203355411686030095062758663653510230563199448966170698795215688979750947105095951568838383187372192470377809452936293113789563894963086662959711365264234349833334772825073279847158885340604673110085070581318013599201283056340282763632347419377515890990071579958739890409395821310328289698139142266282095308815802589086056152962274871229316283216163971456792830261240869851487113477275018829981711670518967552154044189040855615880341450239999709942100769191610142361581255552803124123910715784289371369289523222533590971805147630853090867188783967621464093362054537548801058896829615689558847953825443544511012741417921120483526555971583263109587310800712108735033351481515915551996313288610310996704946326028894058474758363728455166093501309092798267670561569281817359803308978928937084860398748270591251768582268876531037757781191151475801363325810937776428360973432105084096526339439873227760108734164486849508395763810456570220702197924170439801924649145557726019582784288402266359534170076643790530445682791472928792479127134378856453149769833865222784133522452278309447124609416650838713960837059659029388629733656315642704833420036128950348600246818600191366936070166568863273485983181640610479356094855839958268310762327553208563371956707832298542012385896116859535991941057718683920793624256144047116198377293608218514938312305784421105298200139524192070973189930645122743684439140426085133209200811813990065756238831026836717607608834503859705354922131180390869233709290888591895951680494816266408646607568205762808422877952516736932368816606507343248822904376441025611499319436799002186666811474113494348856932541639059084435725613965680129181012692999776597531269855206573320152704710115551685485476016242189681102998240541439184443434814638143937718235212699344182911323087661219705944102668482445031139256099197831226702283498503433129441497965081367433013732918497412154598725452392264261740474708617506898618816746757950507192404216365517019051102106846919937662496288002999409294977357765620641421497016643647276224003251418345048703100641886422425231182304486141557608510135095022379481981691586970515149519637375348459207231011163983765882821701227424174801758269173110026842287853666764776229811838212462425196483354312622118265492442551729315523426431548278452933111673451475077140685141994070808639882225124114815171618647509968783600326414187269509103498846371600273966341907616108834004168693182283036140622734489041475595668127718680153700384553407818497873465181909405830716432563746119684734835349877952468614630598403539409556204964860048402019883392377293107237929911819468944959573786537949121218780698954404861550746298375335411983985311846861487509316526142162276035951618229851439678507768818249734728854971387968662488527658580819834073552397637664266119529398414044561456828286705093928945190335313173329264841339666855561049027754476613886178065197224658513872745016095903839746879971994597966614390817937299506769538823020873088909752382944092467515685171380190686491796070992728607257614940823854363847792532863782614612897406357740554778586186402700120429210875417232888028219853178227474598424067789261289440725253602615374240652871242930158756782078367094666704816906694619620883384879289923799832196048214516884685171288581128436276203451972097711865579194096627074015140001332920162952541485916881654190549928625822595131641973360750036791474420401545168354360544128788949698709566336912727216510518328710738241410056703532959827994038988785828187697191187396409631350836312163503446681613819109369763901408014260591646655489872527356269547717230483687356430930783592861106226187135025753424321379354792482595957102763410148463795676058989910855908914181776887233877920634489415813485381558266258908306761770059715178558204780626321792109618534819273000888637987718378627702596681339411818692751316405765120766662512278391272923864455254127553360579110275327155363156817733051011413582813460946062669565113649566223812688532363365401363207138378339882167372573187243794355744345670784168219029643081621726961891942574959015656609752263378532073647250415821431913938332120486461210445358468238096781931069336039948447745312645267222209046109638967309635522411760114615126475637235659400190119094700066133470640120398029975484579010278389377650621311672146621627226737455035509367157923808517741796405004995528246480011796860642924208350528713106884044404178401163573001936904770570208596326748380738241284044836975394580603829903111038486675317315237818816299122697524259138682421940638440436187301019294417282438013979973811639388470274558685798207886416186764111280769281746506008568461211960292456570265658748562523324651976856524422643489077826195860556726459418492315941439077875166184484045985277776275199949977647436816113597137075180269369801081181903602629174854350626881622007839919926608215826653000949908684971889422903337119617335952492805657239470673851566885716956067258794451585994465337282798463867306902671675522791939088475227016556346215243395993126380324422205388133153020167692728422394869709055476860888468294795842071242866814086203984180387358051791825272742114152972023926585260939825129202385535725688191102235949024181925156210554572836067039259240062287486067538304864908058923218859948504506225671819148114739579886978700268065995702237853728430441316053944109503044609046699714015865298436434961426700647710320764146038749518916879228494061160673436146706327979534570589541336087924886209480853987644369627965656376008573289491763837882293017311260868489794303034430437286173506497532016390987594723205008085746096301794742464047890528676412677856652344761703949797910269313312499610658128159596631436505187976428124314207942986016100568715312742289377139547976646987550274172653910880755741562995352964314957560144545639544112192497133018594789696638888925663712536778534684100769165514867468122091274084671337141778039524718503733398591758303421487399621605188087126370536438300124812716710470842403536396369523854731496202730127732671426462160958884407203103163386631082894366532329062239451464648121274821417919176525267274995799788597917636036127710318866829066648628240652461366046740578326355033254422644428433778492147812165682150760529141781403356953362773120615464876855568846930647589733548224510039511768120064202437508148789204606068519505462074814151895334432050359533776690210687786534850110415691243250017664633090236476172604113806703388172908982839657505514523645685703294831906288536393509345249550234474347929951560313493720801156556596215241542559149963178758989749762416811491247149332277685972665982663032157605773663799714612882940076552085281355763883980622636110622244691069343316545666943247291805362157003768994791304748634279762093586975755470814679996062790149918051063196363408356267958232429024704019791305952741808202651700100187436979760076983239966241338366695304802819035613437880796882866510333774480903271348160423065784016934533805347489939161442535100046892814916956238153412419752955540190187697757501499081920475405048478055636902940360928510045698216438467070965388204526782527187679619872510407458666002134496622732541307850085318619722760704192941420589817876462626085090358591070883886833193616784014363627465073162141235392416654174548213561563561623656252651491650819375316583544449871622845352474656837785225027942617126552744614784540902961304940381387837132925910191782977893539089451243566069745024373003995812175744584435061037286532519073378188444114755638055133477624316933458091537409933443714241596571062988603606645815956902014548824164066648566885018889775514653456375314738013776850632072702427807566293939219501165763605255205957413158153541724116086117455616318982811964347972846326371419276713878458361652572680951071095204668758583756265820274272890870818828493620570401773059177670484463658148750369573447933762801695137811984597650903670686038485164548963626636033612146235428871594859246888051249020783136170315414141496628270962538824536808794587700105481884103040050366872308099155952689885554981664529260077886992250307991238692961765510415664129938061279635508187290079434506959812917714492713007925956856830876267904221337821445315890976160019514752410905720813098711235542701147200741163689025180126414090117739046190790781582316326797728210512409031551127313483338369054372937775916438195063885690932893047927388630349759039681732059144996333486354023164179257513397618707732919609370196206148448393509810778606562390033629510651659267111718799731932040173258251262901456729035456412199950136133590875273542580714992223801218614328489952129760514219899720424015696649707634850886912983165721934720351711132953447329921618431453819619747906976757316803128030593730925055573734271842384155300793710302855200215018419974592323557954032197473648245543990728418691199348070728793636828272596921895365599035793319513900235271294079478922286774127991554994102776068697005416897783244319796748694777228220104690786171577858037315724914308690445227623591728203632438115299337720377205294747553721035020651218300952613785607924109073574631161435731469371586971730678150368206593205900867691769576638032677168226354834823782889306043018107161370769081494134387401123150064700018030993799334099704397708152881903888895625863347121948595587709139193703861358788230252021437742184232697382107142660150923639871490413652819533892229958752253768040823665506151481434038924566512931873489988101423775481190003350012177557081995974733595028409024895533975382717126038200934452807373088981736125527232329483977934938129822761868977330640668523972555946995343953935749144142549459058740910955100301028300971577353123315279726705467701042007631609955096075454719375751910943453559169716856427517689505430267485527392540234411577624876384898326330292385238118723951274629581182829035099760791592669267947990705932901910367755751850227812784038302548494864053238245955537984792680288946230100849400235759090704991669652944284050362804235812500748309663986255855656791794237302468428109109059072472617962745933072292248981553872794952042063415677424642059014754083292099174362458429666931601528376751025356083543494028967053599535378579711113682252535322332414656114154744771514912955469510171035335005980856575586985090635774826247864662711262830192422405797667673946382715497838154349066031264505355049225859896224424393836306065188183044318846077400771110066109051834114946997014391793159268139116636796187846926200736167023105886916438480003263889217210823606373651703409024012534686810484857335946390153323546328508006689972319922557990982778639165690861739049053703329267738164829167624052261739210389690021700753671220490707195698011162707086411232805143352017578968891117695912213474384403599348092346846727416007327354644394222074304485389543797500247766260396366134728659821133240055838251895128363988917605371386205704821957166822206123921161033894933813780683056850193842992631996248265825748883729012854203413085138675103386246437406440546584556521722096845586684516530296409118580597714702508891414746407698405543355026411144702444083252449534326625358439233685406664024556744560484288292112800984344452060867868787810224197363521539193556570751401455099510209928774782930255286090626860421302354430196325449228385179673799278472889357180568847028126805838307831928469937248145303656436580618553585855005505225491715100225289060590109653109882346283379064783715797545807028363431769820829139190596654068996003865607165925459146886476501283834511273940904910767241173134631916113331086385872152555309058636988668256664965383530485800917330396468646554771574234166202643493864172527739789244734295227127400292388344565643457544149004298778630543472105999252844857724875335946870585837536640071571061236575718415511090085377062319172896460914945110327744685870492187127537309917237176723108838741531021691522232518102378823921233532965360378285510474948611550001970586456397558778510309540256588299866060686829061018477751536113810670050820574961215238367941305662541112011454792238754942787338775307057130258483133594334773721254402312842081322035371839559598931108150096887235676463001704289929803840036818074400085306163616661596669752413384954342655778638887457294142782962351306603016450313579472257386813636275917004331633409670458004827182793871483927445054036765307055092956082706781220320266139737772517755493177574433655528759975824371334516522673125472169396520442618050623934089958354393860555958191972206117750752352523913355747892789267169644999055849559479666784249007360250129811031257114212681540330830424671414600595373586942921958866160557560168536056170850263879525169395703342678996564193225804764536267836965706951015825902470035892137358631838812651046532481936809801169985319116768441157375154124795924474053473645263968648487927533691535110803431360914165955763674371243435272008531235297863933003573171078576858404187187708123873003708960616549284307572266488193281363259746131824209136885476108600316737033737778154573353062088257152701170101463140232609779132824073651502382743792680533227642241235626369945215486627591434692090522390835906434811847349265815694852300674910221776496764620748624045997579068844690901557195412966468010897915703193633791286923111831093483306252747800523336614686155321504048947263723722418497656124059872198472418028092542438234906565823540640086950758893344346555653144248792160528614480887339310252557704721671730924787323340644552769866811193387309223517697918964759438511864970043496268111603165107018629523385394207499901465443911402007419183609970879118990699928641631839281124050185248626254916395139458583537920939805256671982622813098751230791808750826352982886272504802132530344741758289630397931293584763713436336752656253602571367553112751521600384872838074431807837341111052430619733753645198335886465343006763045941391645778511051498417703869010185778847204103730626922585767422487209738617535831502491552961709245343167409824393955239122722566122437943554818515155008336882866237190342668813693450055666806848248477731463785293602834750242857446614456739319845583789870999359990519099534901684260300074236468308072485151376392328079495682245718534356675711356945706180130374203788185693173594683558745006061060921796952437787587233913176407342714249497647055943233110080865634640222459839269254731855946166995528924832300183626984235954801244823882994515430572025483424290906625638092174934352417836596101125537562787912589668666461863534129984769606986759405600773506509593792362408203649657387846787889799902095403163764249498497695528490313922650911991164055765023321973199333615199969100653215130718888307916552844557169447755163965994556428406117808063356565638911589226752029988750703793153779613392916372540932627439901124007698195399571106806502133630534474174212798152065579775803319002383969127003460248764095870458332618755395840889941893074115380656619658632375593397894863370411718122426929327502408579134826242100548647042819075711321219613358984549599836351583416978034814703874632618552286473306911129741666681293684401490609186959365857414081230687183803785226949068182200384492938117682890859720283989460489512294893519778378142218346026055601246102497810356631675229047447105067563649105846446413604907249748094621909616665852101882661893745041302476691963204086705962660082656928274042794442486182970973028969655742411489675871941930044435983158007844733639553777265756794208135749186104562717045852318960609676529038994211398182071681819191466460125612440177945187265394639648800998414664633669128201436915563665270369525556391896415093348027261963908873540541063021869099508592477631727106536183289941745548521501908961916576146942849997007360841820548969008326407787841113714252151634274000879995242236112611898918470040507932590875539645121494038219453078024062578643588731392558410418049992974573258237056299199702860671184411751599845255048658190983172431981206243271419858280791720272926719737283932201908190698530254833215193270412875488529207682435034524927049215286575041288894038743689954929053433388595511724618379543573549146455073504064575370274497323495907593450403923188482559095384377129367804572638737099186141777719916008056122360313361201113345948725437673258952587925033714612333698693299452198175152518490554991645154795548330931376522766811666373811975250780148381351874609283252140950229432782313919662520075441809224823343027418433153877221747897095039354536935442468615661920658713363144600833432855193616411119814954732827442356395675711584689894685511083006172109268144615827174265875544153970790117445383966701515441384001839829324068694944299179446202871673024743639707260348630454859508519378077134195591511432726734548638033867047153645639883567447382899304684584416238620975342448535810264216671968474123629819306294298414731401666731402109279862277892367571698963333384909208760348270960816033835997693173592574493927096691325386509050312241460073552235920482004962479968014650901493358870109931675101433035317757264967697173926119914713541717901084108464800125664705028257165898256042059260793013613348833878943085140320592278385488440552489517778029508685395182661473192701373843910765980451174992689773744091614987662430419679599197571626258202192676408070043117352551408738587825167539453034082697893510095842141699025356556827070431731541865073766516401150836104973811326665773652313838133503043461421505658361123429250954463439635428732080943078541341595499730332350432442778458599491956320198921138005256429589278657167836555742654540162898531320927438847641972585026161939671311986525144839938808574056765034573616078591727510004141977210785336859317273596620937990733257517893293664103279588662909118197555657436375947022763971445247574250910897875334957763500845632459896570441366336201118698121769332555376234746247647710491006549615918179486106686430772326706248457066923545455134215796648010334122932383003398548509198334991155460118628035678479938790776996730845775124395094255321113840328382193018634694749767497622339390865779460136326292559385821143776624133060616062231107275587023303284787606606268987931384122270596927753669018159341572025198762601569965531766623986393451098683109612911794724384260122630956565865713684203888989180462716772691023490731420158257033210503901561672818658607212272022987590542802960448875063683002899424787954140873975210530793595103936291373194387101741294527229694817451885136825035918856030121479064420003249554687848485404754849114580361906080298592964667349268050265615627706191008182773811286502895593177154014035444694151434170663455169378916018369485482311015427954179938806205541636206533149460291678119052571596414272019841697084656407245247589761543882486789311726043012157544729378969437631810571768425363776144247860728693020317283419807400917157362094780990317373837248776033430710448776661318908990103016360904580125876093165421313887177736089769818815009479833206527465714021103862903044111731816713894359313653595585875520907065915285503049685081547813068003364593629393211440591125431032855092365237156355186791820393394627683989918666196948477857479752432862360387201908835634317256232695300340654358144970501893938525780900945144843136563681581473994253517645865165231194854434427775826604714326497727093273738195633351868414837600788670670990187105982264796167305757696720270778502877030322726916244340042712139985239618880504932065921420624570748900887644847275575706818123102113463955598556745561362169491971481753551896512789942643155146013659134738313377277129579182672809634658412359869659531326760929869580011383959604279972774774142256215483520818155248794660251407100430635937527496000323251018051546395337992061920083213039021258103120368078747363601076075814329139421138905391001103363773567196574390084704373244379900019859145881671839496215031515284142485800874974543626773972276793653126981114352970811631232697636110399592747262248160258379638486415888044280106329130124597069878779981478161886178937013751326753265131331677818493531570335998554081055957629959076103701305408014399356237372968775626737106487143842040081879693370777844189580078441742717593778655453202291549394339768003709903405941854852043559693099523150868844755867432849581719691289620139112830476596927590177307913615707545222719362283448296976387041772887262636273746307471190873399545533084559052178922379277444281702049009826246793030581277935703262852444147315120691930755127932130656265889616516584310953207176452781193418105554106733165298358960526253694009350740804237888874690449601988266240497404890765460599853186719500422002032364876888418956321840258618627576160710331861157465596127561965053762033064841537589360915406429464475504304899434744687989732662663566043242220246973955748737804858318950527896471531166197321104619361931589441835666883978140333875516004052883438560900786789339588726847484434130954141541138821695383833830929098532104979154032143828218547970448373394940414969848635301548680889931908156273569046658511963105209535277277652079887409546870332514914730361498584204685889658386941773916273730913548693917027018610449537117291417151049677822339804967154662944815080429866685229624618204270640398852429086255484164879609114657227465804260846701474560316780522626114175283226028503494611476643786249149433522686308234530184373918132027088375113953344923857485589523830906761109174315623376284528703082991987754203422204907364602285439903269576850962200403035635261877954559265700050268919355483988470406306941645680700020517992533114409970097335392979497631381279391244178889019349777434505641711186647008272967458282129675700139585255456563573332867000073435883374677710411221979499949713573764664777568437203971211527898884783720457240522015256811554812731954313773836944194254725754337857282401304747372817128257843510863041511359583499402089188844980197395970621722688873730097028890898394247470991315434299576130667239131178992888924075646194398246436802130000550971207303034810512523255228168674811840235795619774828296404158662841524529926967315411750341452210212890493828795425761885922238942477094104635030437902794374700088780307620069516534724574163045504049469530273733946000081361921885452076248257074584364612631463624779504280590007755193138637442925092875479452052450207765779599607191822675317759303918613757534060250727607403953684196556930607965517021498894248845749854389797340245038114768619544877187990937647226910325040268772519878417614032926451355499754242026769079133129330435511826942331816365533525180928971831222612725845384697288164819329785056123940784028199590391322089837784897469695680554553106829193292014274590866390092150945385851322826204934178128151652586470164028715203735062864765171197659996697532489683820803075854508956381467373452848629517349356777246957689421951815168546681753555689788059172958388003769160956672928671157311936630716532273471761684786355545486617902765499627759149373174926727496307193326800028425153298754803294094659668684112179984527142783715258578691640779393709198833496720274340041812529629197955964679495533230728673918373927459735067416459738667106659238641464658001547384367004303568681279900614031642111503949028607615960512760094653251701984264876677662842568602946177479710063689628134246942541583510729341103113866865062409060041888366340836844163404263299089266956792351342132400162783964253619955329713276529474077031444090830485171004638635009641757030742835630341943297495677253972840283206250201844436897736971416499409512860725282542171480176940440829690088172834116433191972194066682945389660428695236837724694613957112836783807542907974296293122657766924111550645497601611951146763534795655812180902433301747784309518947575292153966117964561226719793779015994128942953788445069812871666652949047943626549340142327162111875002202537677313333527976336323970071810736175102493099393753388900508853484553258019869964041721880291185564660830813526917768158269021817593513018220195313087102981543936524509584429261653452741622716840273972862367123327428522465901973561990294205102060243438068606223483064002930458303450138169497766499417010925142579411004283087509812138575967917074112985182276771970939776775341308804758818283663082773260920605167688650093292814111651875752256911194010080967607018261660317060191455201303230975390052426932076738471123980052834979385456315106150237707739949370132420469449513615170371474548871421383084802673800181102640054916632669617618829994763182854257002848739596341623181834883018586391485052942011548341638083429799961371553233838599181244288280947930001085094190998423439887273154302362576623795389024443557181101117164208479295327114133891638795595595243724626491680594579428780346962327322123131955297012454958447020988902496416986614821933828886188038643362872470425591485127197998865546587056795729318686505366513196874721960842550847550377315078767900378825597234222551499970058259196659847351978425627055636805218362585419609353369140175250957100614323962448145998806712454368697251184210571328237183184417452464610289175737878731701705879027830021705488547931272326403558374916818530666278816381972407138264219667891518990957372827428675854177271221632798539145353654267627927339689184747952106071718802381005379115282560395534725525259995168402250612244493542399020929651997383106486108084516808569490358078895205285789985528705581274150193691214383534400880187960212675339116738655388760025051118241541516492449796381112365700315486680796760797561901977677960558144742716091717229751004611257926919698267556706697600355891456691353169020548264120823760082140749686294523480291214873766988839231045417845496264426113462179431760827153237602289196150419679069750823896929213629272456788110252358387717458025071892214989809919138876905748409423557734204023168553523044394270055230909157881877219348793222424530932123410893890136869187420281541121843019559294461579297378389321186031980845658157881617283987323137105222228866608042170402969878920149246762469722875806924727355707081350276381517746796592501296285595887481237367671011603902812256166919604236170205749009561094673671593157845952732860965507459815422350662156412757701993320003947993302324698535782383515731951223113660550850572117525575356797438630504149942690751438290707376899940544032579369385370623990812417231461742673274280743767813566520490061563370727852682738072387264341604041521347291501503560572010879304983212678426880541272233393311278796804065419040837024425295543699926667060486257815559663305131432223092730439070928877863978810274691234331676819734500115656365987527559250706505695119545404825660194764334875666665677345726612397337457247187557935755696816176300200130978076700912958103905122694284774571900475026253946611572953019008948017692458371218590990066262523053467760296665505214210250046433927051944660665593034982623151745383049459183421734615868483281322136223130969924770081501899215471255285805265445222852608372716513373926894336609161350940160390150032382792860136978367965150023892304364511634913368383917994656809882593370270827330139204402712384787819144608554545425823849910710342012665549959592625850049741703930741021545947422002834546798514137944291027909052271189494022613642295341841190720538909223743105766133194133106889996044008026108354249907162780528615938576800611416741394900895937867322085281336891641544963989644341987694415200559226992167735365564779899500646139189061664596778242910503189122301616926934396808510642886217836439380382319630068874673557029873709596533234961048037637701696983393424647389434996892644108113083432242147883413648846165637472040523197870067141834665555879682574508433498753400031266078248699681109397080536048151674981306552517956361088229326685192176969843420719095359570866774740702791319346665938589868942841311700588401636524098230759857873598546339915659879078289857886116006720635472478102346766578123284295368090924496999453081949628402351957424023316286008228468132281685350701318871488163536512813242054255395723565379745257373421405637499305386863997358870981345985200281421211732598392313025608233880090834497454836492101369710362448596139107408969363168534628607362918252117276019439493286884395715229313287005621760036262891276579994939564903431766131555468058925952235597312139051033209248748531930002001894418793292286133615115290453259363446622803206619509535886512864204638638926585635497745239460429523715475879129619777691709394701459235329839208777839764216551145486351441743526328344007789601150996283052601652237628271280465482768710350600389933793359418945034504812166195743009218436006687365130444979878330229571088998826134916624939995141854375169503043970862397745337890438246949706939649339691349993545298587741777870076594951761538963071023937536160938862999412931085345005690247340463399003467378162955832917295289343956801127918439105705440859138306457551283038194797727303084331499683144482817483228728708491156667957269422805633335863974714134523697960380605383927457153636973927943120372447262950921785907171119063861603283868474907800043448801685710448895999390605255905432479561133934199100067887430305639133935043748338347788291326500933504673755376751063736702510365271905621488748186490608627593903735519518073980765076719169614551847326732899983696283044579922765456700746678550548145617962311901927819489439067168740762405419014908299391991317210616748546772736926617622843772344730109720756874172235154762402567941051884705287742808595941666467229233009446927469478927955167360894123883687339609633538658168330645705564867913031046900134387778938883379948374510935385892925072328608448066464893556211799553071385849902021278673595248735961133981917944305428510087233979366053441372086240005009782741267631391286244856868847915490221428889230164343331699961967524738386786633902354253967069297388938613051693664814333937562895254199338810946538696757601509411055795546536725277732657753092623938201131442486713304027623898225181310513466911261170859251983657559466279462428147450633161243337846693771498052848337522572832720725672919274742429318507307171799052880565097777595111909446712576694082154048991733165690743042642807268474970257283367593192746980889080838661580926044379321786610240047988133638296584323767506077543725313559346583546411503306687795263143540907978007232016072965971164736018586973185881471626150267922834530330200540830083742530610671220908381894860364609618867525743860673824021061470781833648385098642625567016262782517904484834024935048078152579645386772357722551259125653503406400793525057049014652405352966796790600039497307556789605450073354297500804069331970018092366428483965342470872217668657042360227236646922975263309656037566565684336812982780566778087635580103898745737089588028156661323231821432047847766991443188906040881143591595675677131360925751263472699494497241560560766955820533146906420702128412143511786898197975449462030245882017504872598038297542905835961970139656784937563894699724271802577224674097402715491241760785365005645750550792142089775039510326921968876378381152285706675127765084569620388858442728442572890390507474913376812608343694363878720899568990487998581317399009714079932857692694668210554665121657570068193215570126216748726246039227237048314219687386819791020133636568078978072919369148125959914963240196030124899548515970946119317974596261824520174981336529351512272872075169323275935724779252520405318802865802292810035725012756325658468495826181032930545118406935304255982533081651991385278739982458849656037147804685883899346677565585719959914737220897906207358523322443197935438280076611718871119194665798086221152946129655874258737960514338131348023073871181897543046014122471990941040680741294927412961610911888352556766349695268361627044661273305911144321407004746400877322051539145894690914000601186936092800964624742323310818257262376295125386668637692828537427759636769921949659743063807761003977043022312606650022382760392053739706095621358750146495133835725778478876925420788064477514276032148191658884370988967067913861225546732665036261446266050328378721229293677030636515725924153920172027790575909529982115692385071609870326016246714723303920954562497338412658547503473000460594296185525928071468328077908478432913328495519346857687903054087415222134935867763207461679310168363384437598641863082090594354356290217406016787856051242416714123128928613366197645625334546137667203059572082873345183819454117741790415796445589376082488258130656698793437306148504019932487205353921888405676893466386114766354934179742423418176713508238792275649988958223039619589103499348656142330148946410263085710432303500066142161338747795498385577973850345778625021529454147681295158238147704030797018008436265155401251518000766321719035008435794635090157686384083521123546979777533303609656161818953072209690881169987701082441903734183640828339324161407177017993133020777775454223709099082362344170710680682824250768517312013056096795531742469505656786887172085534314057265432228604468054679630034537072977478739263035579601936874403748687457312928914610564793178305612157503474536835493123046254656807597072278242857170080468353371951036476504737212395353953610442294246215225472267713633875584634438586514459387458437736050042688528675070554443037611477254334729580882644957987193559802478730844779074021153603717497985776798759552236864676332961687328708175135580388643235575482789564593679537973422016076657108937979846588262184856945035763305377969431046423082446053824741875269538735085773347765713064594469794919261587928983007212466686392765779094778945081214351577370258941129419027950069184908863185560834835506081952601218399192750822892973098614274664305143167971055757738002609180462598411322351597998357822238518952571566357431215269184187113447459061806319307066155006773004632695069411373183952246017695018007246520008013672247371949995359116215528113455930532717227262811368158270641189409965110849893646112680112267731192060650165596445433575248407377068833505459584994253810563862682552186242197471023309702694632476147405389985511545970923962047147559405490020721921683926574655582257948224372656262123585077116998326418989962055347474108984709288997932948498444073645873423248962346950928958123410322434318795430545756397710711454301330356117945547379704727400030064931170576191279989179449193022826610811891926066326245524761529498785913938253151416040649711086379149277597382864685819420016148160839533977895707457687021815741667313402317330616760674646334455753787097865256725919749065690010507076227689677818052194930119530310967596637022238078707495907647947392391210976810389847219762392135054618381457275057380082394478678013743592256933038537724620322234927073753285419141294403224366174478438893564758584292871063697000080475451904148078911362219241221110263276768209233280071333609739379243227223675799463931941884735761005008077065582615180684183378629397564001451172068523101621751806623958166860519967513872024128580453470065392300422151900777133277140830803796411789312126999262085201592090083179496876056836488431926203458645187600551379168719052731071316632595513396425819100070923284262185422584745176085343409010735631954305193391903773231681747949745089040384086918981229845034789512914226345748214670388135431267214614901087760022633919103520657699753777290199105594886555284460563713564550468907635670205359752539426689847102145895301729136610952863027733152261447204243978896157030963161025296479909875314135763133315590076385011007790889765772769590901318389236111182792512153379393885756487716435779175455279424153524936624523550546923818074084862362779813404340641603712841223888648128336093068289063821869585682711332918384544443700432690946077374489985697542745791146180683462427176964742524640203655199630050235023130652198448771225423375965570715903702816309871651570013020962059359284085398864251510328413584235296370976308254409644446954218184836810671262819885801567611000986798204888344493104015561838202153960076261570974133768301178846274068294400943525027150544583743038448552826122654333227988498862141665404818628855264429252557959382432944480166669610154178078111157681825391353932126139737182938558770905254715910967737796386393244269956074394330177822161943077867290673325742097361602739132113702410317660718298705970664798227016072327076447017819960005379598213771812367919604289067028611446010810175726067277150273498810981620376241423805964148227866684383169077822722923229744768332799901367456768810232224184364347789377223578604965034001797008867559049391988904807592795060060127734667357857100435536967297123958297206292461316634998420255704811022554103317801703937592108699064304920994291030807893655459939419277093935767617609585908390058821670833195853494972984117420927048391163228386568558999764032941107014768722233961018861229221380455132225443106416710655771089857477532327326272842196876401193922772771902387960068332330237804312158887654296686656188512424262958692674235628951104644683170190830905222650890209453876451581395266352297133300124245191924106446992502243558373223649804745494710606064262329787950876148852583223227116535009805178574307181791655680921775253035421156692486992251936523777326024478076843989528499222709200973143715222478932904931971656344835871038605501937721834691664249143174488984873538099925652185761428996982000518881725976482931339871412658614424352273379872873976276444537791919002809219750286403080602815245636318639252886972934438715892542471468911962578332440024972019057550861681099068399245589083990218882377309620807433800018629419792075543405902959637582831265744472665789868239432483656323450910396194982043382373925435054447642293678422466276181444197118197284116583063957025941640995862134119207088326216718991042457149307735597974996131704327247924387516398892704473642123159414138534760329090411432932344552150379745837740628995726096922175862509942972314714724940238240707301598218861034938883574443331762389706272725073357842641971914170483154992026872593926774494188775015382306036145358897225423575811623547147636986036682405436827160639864144962066592383461635719806372393763814020149472097330495998688027590981290525868583839596001607181399033851507478455714796371839477129496256746504089576495614086095093981942032025835814215327738347021497066483410010715464571464748819956299289164614505044583216743103132315763603656036463915154742389639337200512638581790037818135532095144704114795989190028874203633962166997836762885147023280617638077861932704462707540811146060533721205536811379713047318083428491372349670299634891169964557479074282760587757845517143114305139706190026291029860715308904842718973501357788464014979722797399141322152285002101171774057660660190329657737539817683043528929426398743858706689276107142896166517919171839204100282031883136776085423676710600194215412348628724067194229319948522819999283100861981797557230622320457883536350072492432589335225698617489146374709916184554482997175860266528137279089876033308580424525819594665063105902692223627216261467946837970766036500608358210970754583247915837697875634659686275115670428516246239513901280223320914538716372431974277763005793075241270343288048788713581083878821279775984242545198018632612954089614931153680774019216963357399349293016689388657108244217072814061638930865298034442456636464657754883439600746812343425013745034620808772604055274057983613807626967135607560815601985846924614674838016504585795402763345232687000099792469670153513898895169975264682893337378899997520045213460214982425006688753616919314884442167616576873928526852804160928313546531093656403749579862295118652467835288052731342027185418479549704718100400499960434330045676708479196793165411854676316034326529308278189202246996066202931392476021434445428639156422695760185997881208230825804452882768383151150334035458024875620870654518709017047697415296238850557097911956601995602078400842631921991062514619209372431222840637070465885608595287013317331194848240334255777976375670151835352722232982534622341746585424169231346261692649394773959938859455835346089344416492031176228256531790098009670342099144369453334854305333384604140428924163860591496163080682602988263313159233924418186082528537438543931406548569404795301435518675726621440431842635788414148488299187665403828870667080956252732783103294225872678949703303105003616376440538253523799144075246042529236336193905101126495760845561995907725761314228637539822111477258542033279341735276364573424139149758755467850645210233287991220356200521569354696540500851417103248446202262227946419798849297829077414039053090777336866347451274946133602417496380552658985388339535452640291292855554960616579247861258512202181838847019162273590964976245228421656847195347577380545748788753804758825779836808387191457736726248605682982646313788887777733326918360179835677121507196131981561497885840371835489688027740396183649747625993293319238347663650916872871613786587460632658787901874027664624624798933528751972200858980832258115737221783777305767388235937114768451476671880589402198924059388785464088249385519101153402425437178883166987274045282382146142600870225995720253649594943547483812558264247210347779393593432035057134694446613367524249630727610154696520854197810586784961333085265518047972899930265026409013987675739524097783619765215230412787901392908065257907789005501985493251530494495830011070295030142903062768282848858535379412996766421746940833857086714363265646040406455039912452314815502312398039091638248779998750583540766940153503899641252064481633310901513073642816312487541358869083738117445309793521245148697646750333448662354025924714171223155666270252918521784095824990102743983045803691849331459858597509439732476876699324155358467182413557825529867982228010061175396693429870748819576307541702282428311731301527745964465750741663271431565490883247400013792039561067094571062476698492779915620842492599969425787641159247056630434639028679196414646448797498928128545222799773806628393936817444680751600715559145008992951856177208418543015747677053740626889874914581164609837697449365767047206876893245504396128164256916795477819654089680409188690292834586980050574096101975612140648036911493642844072529672186839240533994598491549255175538937726697644284534839345681532970455011868104183491295462578802750446167530699955533694557717060018470899714229582944265287718148576896888197628239762234362510316130547091528742404443756880652081248066848193179302530567544076708924782116079147694242760822451449530982787867553943743969273933827361218760659835004983194022925124977273708324729153469447653704842146348654337776178214298406110978595653321170792524031947192919891313289878270215130824407563420639892753130338199137400053457441836319176740564192953402187920247854934090945394926500895016574213019957577560126589731544009442736989121691992344317178099159421103090083286686944921655437809817244520048017053922782208489422080088023899645269826449025822616745073970145795787394927153375174952520045625059004062599043737517187515381477270001519962073935566384963546478162060754402989661711436714163505974492835437438500395795893847321464780562799502411729950062340853191408778442282970149120817053401478658099332025281695393670003401925376897852948056468338031284676037852571902361507162948782502462268751222727516605067025181306452925975287366878783276565408011797168669823355767278044717855665452385103381114397167635157800989826707275181212419483289219252141001560377292441149559126673238859810969198494327125113839390496222349911717313906562414773044694587916307401079582890769293791906448807555276849290991883927966513384936433998703034200560462201133854629897471847215955054152380865866846002285491609649439060889213658998736582815199348272292510224344887586341410319902429270201911926461048851538077012476069143832684869510198734528447232334043722332277909872763820942547912558397161526235839981358423219983099499474875297634819071296395066035030540434003029529785122141070812157387090296034445747933107319441356898213159982037027662786987984423086025698306296845019116778161592154455234221876552760964365202983770989810749989175266106716011505657017702111403383292132080509888424624695068930556120004546042559281666212742715662779994717408073321584063295649328016932498096615063473447813452077953838412627958231108739029556481020811409295711143160408549699404414616625205609067480672901147676003116017328722739246731671262494036345280298693094934922566628308348508865813878843476110533110847215229690135493428199487104036648882046065518705653334160571488280721977550327336255010452507783873989666059398826735180511409639507739392296095606299762779839502653075058112392817710834218612781975547108448046251077017458914756626248488322203650961612731709696832952619280409977935908852117263075659554276685111425957555906673045196348021494410536653608919429448577810701271349414962286576894354217284970856626202570187802997884315900491765411666382490344560438758098662803548735821077330450414858547202326383624867590608840992690911312530499514087908275920274135432845443680377790290921937021956623408945117859457686520120721039916078161149726835617650139212375569943597394303208755966044890108110412853350335103350022126260802647593627711351391673678930794966837322012152961594055047991316400757289692540749057032378331504911820053656816058952325944245743483357322602752180738148847786637462056206933869427460891302008641905756536323629046655646567159563610491048164467427873770914910748108345858189065097522084381631920894076164433034596377172088716858672359168065471503921752390539183233655488519783039309176530534642882091174980435635328783375535191666729650499680222891224865116744744957815774034775172315726151491348615803931182223736862833447165258526895720921142782583966416075067176789014308811212218415212755406339759464527443570104840396122668157621562270085066487127059531595795180613346590226869763587013456459731178736038859441129022584187445379627527017720547966353602315097806130916379350333702720570504710503453453581332723887677231933637401964325614533794772025821021210479984222300833207280920182294600746975554207663286985486421275698987020059733823931908804318723800261906635048180443418431701981015818915927979869382916865027233654337379187958466819012678506296134764375089140461180249534306239125084528366493713722728201748496638548448232115314670175344854428429367735995010897426919979945762055953997164160673804975491074182907028940669636366990556870817843088579695807629776669380442486317608489943323993766677232471295799841142894247414556650551792140025236187311205055815725882514291388910803461418553576541174954599857202474180047308713034679755677999311723847302246586421334690655528324280382767040527371686175832724283850576421265941844822100484885323105883523342720308532591516681871270913235983288050309063846162100673832189011779846082035487775065353630929024115761769835297436038608242099948574197456353744971038034156532787103445124519190959693321775721929577012397461846172512263550212564443064530548700403244065536424249203247771453022539591378621488764456050131320234155833552935202788857435454779873913931802024965108192909955398135808082286596428715131936209771919762793984380231549085162376635195753543193331408608936829110044586258033186820781461798356838244756021395928599038821592101087480693814092975264253504512264960484793598862392942087082386133951578291218545483618393402014085299989319182016000562803168291427001274998496792616093677306469247840123550765506044158621538383666778786613979820345290375311696883145960429503134185909541969039999056279930936294715204603361793445797971968361055160724367243572885778603204522134586747636749049647898668087795817510760398413146385091866387904920136802515923437182309938743951817618698084652099020978557301911087798919089925512742801932757884710763214874145328035051518133474473690802626833096765842547326575432988203933902053785222555506362064049433071112351123854687972157686553945797254522443069862881329187416743396408692556018743797663421248461132287492963085973218628685504044666554625772692129116728534864715076029319189055134238471554405392416667616443490317467801103325287132023841099796820977912831085320665629494797219580297060640572963170696772018876133793859104330574281319959031008374014455705672029420611851052076580803507935459370399300005465486877484625297019217566448894855632754098255435953592642898986932157619414568419142417656277476696396301861375535268502351824048713411983366713373066269524592468217309799997060826497304415303025864041172086681585601562116695439190427970926650059129475038248641617037354910263533855770983826426772731899527040463083815526042246655345181736008253803575530187820694497991861174483671931245354130360803098871770503790141775902720731082689994815947388037149473260768265752839265685835954830506938853195696560335593193794302553738553112555941448299272385680328082376805896438058536528487722907361336034628653780550988007075131374205730572029852979386663123283164034461332896996051213146719074109883779423956710365003284207524464239946965674257173968924945827885343434943376996511889803217573293497277368224166434297081246456384029068627319749002934508482962414870692771726380346863095848255594868852739643809448793399507442884351684426746077520430782038223130947510657567463682635146206940503927412331316896608893428155226728944622989389225260299708150180670657597092058914660409215047242294944399822024737030844601412531892675535421019822335959408827043252415156187089890491887277313678050629388191343519922342054438623763963855448455920510933614716205904934804425652844068759389423732581477891436941619552092973871525396795340730041758447748235108492183195465044181421868651117888593953218987108214597614300456160990606814381841550962494015197728550444196160926180223831282537443773385799845363668774316157123204461496690770954777654402350977682529309381868788341400085638747492765701993113912314375992837275415664492096702446069968318209525400864613639606126570631418301761904725958231025566949053515198929260426672148053972082470137135628790656712534701677141682524543035050478583991831016235772959992002492596242886071732021653864147609475909572070613240415737049395373777821554144536518372397671235575470573350592657799441131697763175291491993103632857898754096586947725696045371511069018336451557810839184018037401193546037049159772438115943623193552792673683452619487840064987058400479430006257981590496472915750858788496586676589962905416448367548498463755172668077595705809199125259095683181621343696864858733364184913843704380187048306939221301223584242506013560075964337193950991429136522998832283802554378646412213766525417586346956626615052963734756241561675874615179694362905953374775438927061970675892061835284500467236866420869576158724089968167770291145346990817246944645236876313143159914078564368094442631009048691674975132139150959021067132006849078126985195354957789332229280855087026565305846213530922776031908041465451728142457515433602698077555318488207403918245325235755536176033975761383234307362611250169810627327564900422920591113716845816585838697842855556112924264568499470362979248779077921129740443861802709295159940009812936409627264694988987810311864325252232028750843437609553203764418435567394587326163697572197969866065062170565549383814594846330411714017981119867271709742734207727105279836420087459942535968740883866459111055709500993261634238141533582842061510621815004895970819743706519459734707946300809984858463260592762370358833079844095571234198173760428542891086147691476132231482825881851866272055302436735774019487794555193205053402738385453892374837670930288336749545955132948385553899205581566212496793501724357635194586586716964236923674024199187617517265148140772025653595159618634303617670165341704706494163565266574516490653542158328680809853516930331976289767991649568777557435698232397068841864667417717453140217377888652538485133361108970350011223136642998240222432581128686886295946525215723485844758463103808721161968187833842361845432539252851549038167811532554102535449441584590077244602588449315455650753894161538936784131261268232518088062072329314102408945549710061681201853706726268383638634617196285323526678905722174655376889830137971479715825890201514353017784042390053334384114750555229787877114299863472477287619945184356858225781757332183492199556547968418074512692716925258443515249804380954786274431109177970750052401903061537848064825958292247555671377134618557912547954156952834116743792216214264406737833295324907981072723024864027632983732375810414958764689261468346600259099790633384940055829522127352688221317406428706523866988955182476420565621798108783842912802110945072510756856698970476733817137816352136826272918144360827092525347956904877541350912721090801992758085880390943816001440357909125143037110812059429652223530126010061906651441622211900290921171546382253807999203754750196602104547169626261456669495078611588468982527698382922770178004149060139746352457883733230697940181559729324874251880160013246099528976112070100985921676434260573741369244319348202885669077958281344600081384691789590555107267178912581807257912279092920867644885089651564268103697566174924727688418360783191922930124363301417215367387462702597923580277298358440354655370316458702593734986963179832025848834987886519709728856831648509549067619872235445728470346099124838103906673476466031493157032563209243224941478983373086027734126930329525208642278348373120657734943893114597179159082781373803496192919288471406835834493626415736754423733225366446957411179091671265312833005425884513555082707051387009725034303452319948273963183052970953442674318863227759205329782958506630290878535063273250065230898230574647003102705591970735651890440476840585784075307961917828401754847197796209483800121590999249781667120576244312852979229359148935998337569842178571475115382514504663072052898343566403448655124250762195088678118405038644766260719835344911113273949613014919117074442852525730901924289132854437291499542527513554314277195028506794333381563778819969814410049610712348261803290826453398807310015469435917263026289724587221895192334993117838689733534755290031524615046182472910864175861503819049812798365411249239068263639772161489194798445072925849796640856555889853548843405343886681904009788352750217892469213623234503190334584169860601246964422769162063035866729178874097137479380244627490728230658921970860087776425578303917040619995284711213979606559509742710553893013212835334553625274419675827466455072632757501604841348267862704273813815806391004977780682406933254170343482590434371391131985521042973679535232911409377454712618040050585492543934580179287876614638820029418568607505511172259646862193505136721912803542809613990810977897615795297760957286453137718022974925409059045770116249070723842009627435766535571453385423947174014069391115038829546311520515872256982497716225278191678689287218902365314226443957638250816735707341705900478624486359274682430722575220546233792024200468503134597595797497512098433661526853495540644132490726901493261307821704266237402831518317634885593033626569306493756140737685349857237245878356249697910184487246673761152118734434432181161199967279024091839210222087322873558993832117110141399267266366394613060875699360882415263812293591294389602473867357207082662031872315306734610495564195900217224487104142374752104115691197411110412012741368851540923930318122189119948895366813486985050482494225920717185884531133927465537355278167352371783490945998858317465873218304060638792228434696594858547915465724899220839242038672565330415027774120238571374198652921484944373630123546135483050044201991028685797112222209275953644148046740136372638183151644806293078720100680649878432130986526543078665535083383610517961847185839629662916810271400888343263340763685769868145735271814875831412731146277558692567629007338224097397611670457513708668518463295175389640361912101148697203043735178822654920824945551910692074164384038253421183523493956822466046531147436452140767924781828799714588938539744777024509077720232037335219779642349444534422202726648670270927112144789109780206438624462487422702795111223334612017426541737071766701055402482876156535729292378557641016624819478952184350326743815178062520745484413173420855541537826200314271920126675261177120565326067048082081326297848659337967810339732813669102704705595347094817388487151227421011300747632652883910002440566441097125593774664041597887494906800948753192344165925231833106257644361012056484569662064708005137337671058211272354377335105484796146639812001290244709895767106637343658367825703003754183792305131854767310827478923901825928357556402633498344699779261182789244358389214085406561372568566274275795126426028228167003278648586228198954734776774277998949183512627678144623230980574213950879949643793234751400837214287408523594796013883521459958984597919512578047354966146392772203301243510244062844525187147964019390520766897840746378498895345726905136540947066670848166745894290102403580666833731425184922981779399126078423345380421993304839423289830639399187737581642946916518103897945309800264297354914035531469261579304413320515783272060854723112348226600223658191285159413586205278042162565438975869814923368353653739378340912721391416950603660106309810291363744900117428799883252996318119237110185982652533377255006248708660197356725163918482389992386666809654977838607182489865577885971189774187330956526669303032323794693986440050694979419833989253828126463949998430074531349399887470297149145533884100713611047312053641431826099260687205156884545273899254556033735393259311930707460046014909230545077106272207181299252710718286818933638836465007732592078159353593811216801002259672860676417504341691590702249596773528426081883014168723101940310690950003640039524914248089704355602626903484306110830716907731731812257018870882603839401126932585378952357795527202160447790029663954006751855900213117295906873606529490444762779164563918335651091101127332900090340412708119695520377240055076688942359496479728739232821961061763411900710286219492256049053281660516737156569302925120329858075276297343360006299315229271705224657330676882955177054171498451703591679099766340855292553454425675181360919789509545984012870792029170066606597354779730984183616702294026797222652549111362733873310757015247385885399833329952963261592850995865589370576170881611449975290389403230568289589724437666023317901379230354763104135504915731588821065397173319851405583202077729056997151064493914625508877095069292740426111637685578279179980683876965217554521258176026817173055678114449950770880706544570799496134345421469137996010077867926320151153417736906215189532352996999564746404304414503339658946098457890820977476473724220100227361066045200235289749482820412806226326301699563751199961063854816625259048423156577279738028768542537810502150652943423033965465736884781256867973242951277976593322938829175068662956178132340548492429626755785250245919362035639993291233366414069532270830625847627159271152429334646630466455203682788665691307038924326448543138558758675108320102399323293263772903650972524793899896792616076381278171512838957502798408169318402598310258945889803061451553387043015362722895285191321990230232728071287652399768166450478959390140972795098752932645101695991230037474922500659972206494939354130962668995808729875486895208516771779093397918794805323717477216487139922146501032640126113183895135125614154466159830500532933446016114522743223390350502447445660277185314667057951497351679459093899639402142852236470484085526991688883960334486378933298393474937199061946711580845051761933815998266232649061389737844334484735495270472052509523100420007881510278418259154485043843020718098432309437257071267773912428074709763781173219320477024790237738773906731909501374730573488498498189857438742180653743880020104190425481068181851029185870338077457524174190485041174301043041685114277299562526858025222502567926421967591294009079975840010250824587892811091625874428790568617767710437357940997691357854362219191540932618210051738040926919265411711838272506997475360365841904876924152642077346509594681531923963864195648738350332405257365334939955323514517172656999301856905831307273210246274601118889120340273275076976076571095509532589348528337577322633035408316923808668559298185244613282737730006357348977764117814587638040047098513737456990864437084902346175529447345185349120702839714799618000670231929663961122021357413122536598404387086593580807610850263492177049642967367472037266910500033865186964045845945331146175274797372915384253391150854869156157050137405582740532927469432761330041713084905025565963471847928902578569237087993385733803546458670446644569659684812948194998007672832900480780297810588855616153578682487284178073816602754236507201697638299911085855034509076213772464511713698026879320093245199240085179698417522778422670888047872651211588649523685859370655586360304390170853221254765075798660240904110368253666601235889833914573235707198248162839708335502023495790204434826906436581622384495796396498001883677302922073022626130500858870889723657864120097532103178532182089682027462268222119841288950900873623999301154576654202087072267624725261964642947296509079278831264235810811186601086045233624573673246252472178365349122963925808295149304330075115059454513422552541755737152716797573124879722932595156842199360967161279525907229859833640226883714418565016447110661535700792165648949094620394538975539202600240536732030155704551629756989378432967167962906597419921500196584322888777597228843396329549318871301775108768006247272038845066308924653499089983832592264785887212516013914463501225400213337155572806688303755896609184789487648117422182081608947892464882582959190459734047556487158658867919266868908830140540504778959867675873667355073227946318574732946293198151197707372666470166725722620245411050825169183480513230719979277000997061554474947684699372979772325817836538898495882969304589270710964537944234346286389377817085705099028881434603127805909559290131346544099733084809446869516268073819174519861961002881834436892045087150952286713176791163207445062552784237903596624841909281964894447231396523792812701115081080909724391919986504044354821238154452352416094576610726788357771938687080034602064073063062689219135991384157971442517281125789494820589657068046118776330036831651511370832013865363901082784514090534862989994030583679131030483602884814254683314575526004862017875291556887442749159855162856396093386125234787360552371443715316207997738784528317049077113799250189771312872394688043729390739926211392919436239011748463031419249060353094029130150943884916165324958600006572726167177452476380478311181704287722451334009440262538823674636678525657156997383903418593564790815050592353344695733711239245749009968850876914840421040304875088287043071936241848664138730699347625627586852306762510120404865454338327429053872441434381474120701109137832035445839311271875905678071167492604801538198798749784865417334031063632087908361441614208153282313254783381379600039241067484990823229368285256428763665051213860222173903474051206925837505221499225336502998539217604060647776279330868485394915088367323440181362653168824832242173407244149890142957473980779573502049482841687451031350183669475546758789682635849825946490174765197695404156842240824710469524753477751727872256031015745904390818073331927514613859829954349731880322380698741194916184939386236279555002296495976211881223807041231182146908502751884865706868809756561122983452313112825638133813099912066682212420280578377728882033104853927171997299146985791442966960069073769686528478624738841064716972382385851879565327298607314986960419541898445934049583043366361938222761749377112041517453813539411802708642492770291522665411936409072076520798210267650518611723267493275627236891025448675906470515788499125535838947491554575562928636742444415586097166467075702524249386785911898913518075973056709490001647409884685000143479821096294807982836684186193230525132585137758553998436717181843710864302816923304082204667829404686808918763678833860586607647853513476586627709179414671817812129443492528106099287417967733942908181906657408346775784188453579018299364061034072130162995255830283063713029666868539450692207373671587852471952115922906202628509084333370212607319647121899315725791388037177674533963436448130468385752919008036591700580851716277058496419416750845322929993048190149734684967386814073724895255730428004907349935012511715130395185572808187145138372362033721204757122837390080207590154830979609160990741859330841413166995182228847521914803178528112704648503242553118951424331401183299696366436090306643181361284332101505539802173124755788815483401220627112686686301806706913045637179858909415996702604560690865496216642129794070929115372849612851306462910337261081588494193397885074858671265573697054772368369947052601093810076856645218550498419418526479983620417834458957794734173220915674724424774620171113607979847727224070568746222807872661427575978987652894244445191735640091778111089167089696090485871264555813866965958299151501917879433465215405542892798294954475428518795175460571124626759626144799356590233814792942048366106863671724960601577403988292092473815179587055955520694909153593874467569770074542690603305421700949379543396556419559635290561515794298324909175328423968212298882434626631193338953126738977072053759144098039725089722972275676070438810421162059120819163003923355614957203622847027529146568984023137224376019650994884391132996212139296157496537782771373574223296480846807420694687692214334103767798013968404078609251348510496151238690766628598370329762698551989462035947376218077274651357297690050256703174982675725706663696839713443373018199616633778292191770133210772893486283550166488186048022020901043677875519039850551940835898991423260785150956201184231399897603596340474548822209351523158690895035245458330063112208149910880168315412779080833518303472143726843212278649057395494573818638388180784751016102156964055511676315685046636860045050378894832486313197308105900042958850304728040161342516621982027743142961345767391337393241151935350776209878827987952967256279808712463240442530306115440558316548525209934784635311290502328848415339656869418471229048276927675126821529618293387571940398024667826352164591883476687530740167075834782800902673713542456981380945464254746462887731632357645176551672293903296295467423254986908191219345963822187604202122071535340683511950739669442233775185914933022991954882178030191223629383465380227678091022591548396930098176684355039033953969435342324429047239852563505461896670010073782012567422056394488730700258320275082704043682406297852605663381402964482516252561894832884491566069898366008199513443592789228007059515421322603903625547471603424099945827540383412934418259327529145996430761852024660297244485156475879207098520906903864710602463557955398402493424053422118909034843738760986682729883430758885099242218130453142955716912609063874873192494462053696561391605277747402856955162993621176940285808836226729014458065346910968379780440856665491217256256696339796230048294584184048445653007987833025144970927708160934204527801538398950903347805791360431221086631806415788654529177494103366744156253185717808421761605720326737665255120162069586323258647611494217653137337428676338432503048400746987360920494056523900326826115717653239801107368559290795135874490702225952913112796214703946836686380213587124886840223308657241879078492240086148495801517006999165844951362842879779635385256495395718494139133199583461968681411541897312948156693697165584815433190428137745249843260503332399539343310882855186817478427405208265107084643170478646450968237645024503138501062845941994246954938520855477414261875896849558773160355328055302210829619798361144612739885304401333438944507872317802303769034689659903574740706053029231042588080427333405757912904246521001823917550231103255876863926359073496020668844590896342420781156388585919806722091939912636590113605129960249766975502350721585166645991981288331575055968207321368478685238713475757781078641632875148954837134258877734276972337946579398507338093277145986748307048940471806724801836297549579211394022580770493828123729261960244106653014903229716362380090248419695386767042254386772152340254815381295020194309687672960028161303851913217578069570373342910384268556930573870589298386169785466996809586463966832673858234650278900258563821670358783647745529694007969437098010949995062405404852315024762632583862326300369019577486140961462384720940904311736959314998855041596402480991617975126419578487632925436013260794385325914500253122890554668653253199149555954973126893847553409306266304352960127555476440683609084901695591314497101129767627269447183506649340899996908295121767403128852454324332068481516415543113516185561226267566745838584824007266406755698849849866995359307957353600961758046289752474372145702826462937248252940636781581911133163056848843995470683858411997423880088761299290401784822088041290781646314804322562656322577008417761569849191889063824194742575054929170887994024321324964271792169573873398688709285423431192097936390666008953077032715932211043167719728637634683177835966415591196580781550610336856369499697610865196560299874026051172303929633919917078612165402457485753474013536001338230316788490866637625053389865629170818980843579590466496109473480485590934751856239118947231306901927681532342743389981644235144570721332547136551058405678197338441221442427708704209870169116500858370266189422762907636308131965835575909372139331799605848716567439031306076423331634776678550085569880884563679844905648193816663974077479865431292786302907505545055119353904260577218000188541756014989186533681736247015838067216764159619753680957821567125396961338279759572721801181226123871183791904069104089603450133231495020599607685438251605128810525377489731572110852418827860063565187611977607880745670706807341334527607977193267898212689550916748192883353250004007809669063055753899965810651580446757074269114752687071165859107656993711986344977596591592935069365960427520706414757662465600656456990295767451411953190728698295946374440601722103478464500162915029928656951492729313513152409579437513778871850638913821102072943029195616197936135539765233574845545046519952978663090247006790309321245196322739477106387064303486028326927770950811527507183294321760806996108924625236633055464268013432387282532892207737979899730927744706648821403129713709171667559225304503601479360874482939786417925054381580655105617133283341136067804015718021004936384247898152085545741123986508986216474169599580496286034164026745938635100441422600223335624629903235878453829730690685486558982745805385894694912645956076118645951310351379329053506147580912087558222789232419324335764843757629673187011529209319004623507198579843493827820958444512768721555533511428678454743724162283685063066301122208423345506598311543264752252558998253586317626130327632939562767301255299977384229493670012330106630637610126815160199092718110504028633603582294913949702777594237577069599708408665561273312030315781226794846933399928282896066426428460439276157492083258600895824859311167508898252043384301086025391561972253929369960000411568431119855831464705098398940556490327730263884808043393078855620883634801329574658744324084007139458544670639616474611533607074075613541350676316453679291329108092452131126898316129021044270495995509403212715077267268363213390460725655642571816223540076248418651387770184031476153011071002708223811356324740116439326284356219777197448488442896749693594486088608888677563133366154792850228474427990918001507193877184218345287168201110395404710400303963249762533627191436394687039913896995046171673394128483899596975909188347054265797644966346968221356046734416951009300013979380929487043980678321860600784613636881046470149038982804418335763784327197072334146994319363835861662349731146967392683317820262404880085898581426090854090778166239857351915638198977491446003321749524405495524781080950783164756559270122131216637567712197260837183097552363344180007045393157436222099967120258689747563851422333715974203383396373933149573149883190267363147181396013228907637177790803501899707968248090760408786258746162493032147811969902180868512252364030130192537642419107691945977847372365233125688085115333046287522031309421552526903831985652465595959690760786546726975950047967769402495470888876710805107305357785063268304061016653506743810212380457038010842069213021964759626837394360035557162837216390341184021295636876613698161884992670303648473438241590313671503023214035992787736089851971945806009877602689067863414084451719537666716156902660604921458648497316037511727777272760583824911671189833103809037345803555176733275597484116864714230245439952493857812171030784988346520317793064076509683708669069879913590337439553106940572567113049791538928961333536083713849418676423002302188225413756942560056528692323366806866274862710889840820741991773936369802304491795617808477142371956387958069735256300074852630449773614415035077833756866870734133135578694211976979543008877453261689364686627883653809192902736734311309429074685664612089648261538157616244039590957660036653384332866540783580223760138940031847231223376074714895990514603976699750390807521611859799911406141193473546334997663319522072933613378673091514519025748776831802071151568112773945119979369077865556138809859944048822979506456392627314727368783474408427432832743044166667601669238565196062972498524400343120018371845892120570443560698744327706224004372652111029112811262114848670810964061057042484804655616217670920767370509398189682416909212387603044787777683519963018767555379724235482348315663857018186728647487608941055488207374073760557950731625855198512017459826562015766441108556256983258923896032680257738629301468090073583916979638580159739403941825744980786023758768862967240631165430437952737592545129293466973129946051666140227101932948312158233634423347433752310061364451496137288297492875765359465842453381247838467494124005626739541023070414512100906289686824515227106081534001612395207937398289564961392383276234497836492974718363135228652158610138081979710111955008150930505232509950792007563017810244828326448775609929449800311285241212526250592999824144708075561167567366423225536044263326146774451879175136717193831187416813426703037807049341845320881742137098127691447032637192045550683870479760517580634080157568874875262303159752150772147187360839145800236774445985161164939322490427998943551484457713496468065368544043148342148994846923223984337813025415311749678751366338711979874790638931273345326406435675349122864132299176430507959083179273530017718190572895981218601974425933376971208964652750945953370136584614585458422170723145559827158393883887908893558966273943607230852437533462145583802144432788453456762993458552258729202475815105640795701525485355138785387995277494632958097016304919752385022389940612593429699347795119814580094882554576920067903991098430835522246871738128803067961793207731299954351897486805088205726225913562370002837769628934086295108076657469305009762669508957153350180091986340560492926074409492494033710309783910699122382203916823003246409973588875198285834349032728536917450094476550578566928151995864673828919571360539292672738627450561047052612699645297156095279740474459143315799268708760468376733563297783969096155877359941457951130861982275379346271210824742267942671288526654155587060812924186422939417578970734026102346435934873079553100883148171182528165591932400624979748724705083811973673618093797915890544966172353331269035320957143560180450540949251729424468592129982020154739766733773804339747303707299281802745045072826171327951487703848413552738831646324908814638096704679760588776430087977149960747904153130536492343067068886642522811404210428095115897415481212217782885149070706743602488864770204768663101428938346331993911603617443014566515607901976114457443318608947459725858926550559086111374086645382091608267387190633813249139126974022037616456688362540352768786353074059514049706271727799855544759617716403278284312439821857492029670398484668049213406893070893479813454856052386422680286667321240734190090004345890026289077765605422185684491286112845811312105185280601258710804116260116791620147235487369951303093049948162947493739760355873604075293014662450232913441901796423119270570056398412242673133100077934783596663137085033004430491105623025884610569944877267932486541465946037885111839689360947919092036978508482817385532094920231061837983818753986541151423020391035144626059349240613475057590692406727672019257012550189355455065229957914097818457919469126137383057667997602407941322348680957575932023731930192463395245010694507139862086091343180837910898419037898064214001690380031066061469582695417248521732768759376390411256537562780947526178473502452088326054070247068630607670749539371767458286471783292948706283314562404181867701870456932776813426100632223456021867098251677226602815945206412241203059980813591316157182503722477565389821657327838924366776129390978572514197126152803986873317528967047112877586699471912300464261475340478601433710491198235264065571860418269855753606503120900078125815811959009442020112435158010265307688505047685580464194300783766349118623561927821815907429656701077017509260165700436287999835310301734070905455511901653225121896215006446493956153772867084705451749558004675779923242161958184061937582159088037757948464350185810185183521478683803492561802652506676772054523932382400882099624322941738112431673071868245091382831775640876692044384887761769966727285059905304794845919692342924997151308059341516764478232113978921806385874295553400725736648127467296865424008345100580305183698694544502428813884846388292897771213339903850089913422214684774624652864115080454968273117400607081565469031682932625110593869364457792823916608031205503589744467355755679972097630033366589774555141849038582432151039021184271375251107716939756642856952155306545092906398081683862672240080308368062253567851370448754958694292174724865826027354133872829978405081863589059844869034798164884194012505787910160674370242817156440445369464277057232167021048138302292621508145904516471671785591698204981318046965453619540757953946103959191624463888447444976200274068607037553775317340417743199771142780723737635170869965263694045102768040681274206399087400360395978636859310977040089746678954072708109945559337592794158356046422682567949763157891768056369304665130370938390687166528685766852245379033518897270200571492612348261475973134265317865525494391055819981428854205534459457101749929968094423036238105415249601071961118919958945841101274382196369233789707859902558243987427739344030635227268066066561156630301395300896593403014416689298298099274717483774150839543095941353590604789377764227273786259574159371635942635847839847090660950131954351270623994745101098517370544029067212762473957058564354596485500806542863304851633406761345632407910249054505371440753782106649257677987541098224325442225222816056441564487324688546508148136463226508818379772425926793644364462286734261828117710954761316651598160828411115391085104558112085290495042926551217305425241064270474323280229382271129811314671580600524105822937401060741508970310794176502387751485967083730739704146316788410250329653968167836939000229836403677687087943291777668072411768979151842292837329883555719521936201232163715599372994801677794772164804079693353331447048578540489321551660601576591573490340230780765994701381259079320270625329488913344719262845471175946349101410788990620214358446290902282212928181212404783113493539538770894008029019692587530998468863607858259274312637835198169499776586668322052386314797548378074147199397294384783689676258166734861539277557060876980508577625653323602643266500045924203783597462898975777031758566373807866968730576435503777816780883336213199341510661040458764310112050857737777497071768840027761721742454728645395921459990407522920048817465722268273320822408424071469450087853820745547392322522852623066376638664750568749007937738114004272402226064809447315937624558922677289824554607905534572566540459759204903089739767794021947022852665346581163441181736993345908794015752161474234678855052437438492710476670908824618939077471744603871821480812642093190829384648496389768217580434110627796372086897949403571304913442809573868116595567027454942573073460219601512665744553506216151160164339293076858028547441001376686001078175065608397088886825096348019091477067545036627997876420347482218644390698226178171753398928223766873092874287693311160318936271150460762172785652125297870914382547568610437140417488400731759503528762122085516814832523943128867809671377971578451956823938244984766594136032334452782490204650096096065478892768602406142976439088740252150690784485774206110768832238347157135000259117059417637747476790745764926362052200682216911050042144014254610955242620285629068816809707733949591111082725622164354703004598752609556524172272947371876566492153777084316552726851351186440076781037584621811991588682081612766292575258432086594407773889546853740665965370864501614266178311300352455815314916007109968099858834918168242104693933740496901129737122914475319430181310984632736061067209113220569310239543981575923465808894866776477121383965373628599937940000616623581230592136776445291090814240744873242035461848367400758123576182299208815627213174073961412722217064977796975918802729632814030779029963652248486168320161519860871111217921487581055234807708453624889912448917056272472510531056068314371725718922611717393905816910454032711393310222131230351434135185402853884216799305412986038135026118964067761957084189653964183350297316428151545764597030567871630290647460419013801955027492842419363551352349598563014907711204506236850453720766611892511110567204150919638024946319848864075667252147803781541398721112059640717120345824734704660382738561101818774790892047411932158369751397825255556454015788553224360011892221339051528413553467596944581849022855978715415275715951589203317811396824109487667805439042073040406519428179018010426284134474020426217328008140439880332012117006873949295217863263830325474717371819784206331445365393797674750900720616888973217283581635305379925374337938660611633359735729446151253173092895467962982098789468717444814176661944911358066710363002846507477132269949635916280640097476981873325906375272350610537210332515378707576743199194132557199864304653471104043667919921453399487058042375588595282826394139318324653292971105805744492594267799787878915478553958797615486577897363024612048793194972975777272196334200210128622998427748656467538496714423391007701149141636499750798599035295351430934861433792610470902635772256386211420659634740924818136937633513955190945405349706236432508710767342904894453352058496820384708143516433813693214522687376306618479550785679225490991681787283356030266711695045290507109358680961202804520146014944916442078762127825903058461032974452346314090173199839812939604745750888903646093159444783589365412455275269436742122355125214994084645399670263536699855127173905237024199306106841971518077698231894718905364282307604166729856645205889316052938038093628628378397228934288979668654673217632688407875788925263664089363784396308317053113690331188900831114125810414681645551762426324111381409950746459114280280084986247135902621331485040296336181890786880281816186517575523647029720091810178581746412088241097216864002868042633328830932310039465278608741155753018314574258648771971172576050651777934936929658674229914166527165902219291377944806887865528418476027461928708501278111630223294816571726442120809572585694468397512037821534669737606935376252955978369804482022696809799728821799334968408483574307904491071463409397136202898130697062995959632392296114422781232356055529267849515991379583722592838974300822106582173592842457960817218982322932519314860130660248115092173241297558516300641350440505314237534623594786578323413361496065210577969315940108815409190509814116197433388620474993653174713134577029763730553445984236361329891248574193165443033808019274536009301694079035453887246191280867057390242159907986551011516833111841038341038613538772198304158197020750751724484567510245570106965125465702509264994378617728515681016184140588114280744656464848802362410402537887139578967195018560493893610809328490205225212446211879150196370236020441751480994698442905388459454057832899628282546805034427868570687339259693403033725730403563292751520103703029723084900097957662388297250934404932474446656446265767829060398009325946952778397406935075753428265762975178571906500158202229139885857122805921637010261691488020907819930021649703427941714516569093840966382735241767344894777990383987226046612438596327785148236966833103999462349636614905955644764228421790078045714919104246461316139747753892147815278638883224237457530299387238906608570656665232806062965050156422381131510759784114538464458090867275878481111321137531261650628503917333184660995797589656372906983368450230703481672897271734066415960726984974303872788090068209689805375998497825153257518391151082658959768505585674611321955507135003177926452159598633472244750482099712980247356787255833906704151703527820887387527892515175360942741962408365465694593397723798055987914325016469543891772274936551887062966571343809091674122235772490284572372631162095874885009584903415864538604003621890484793877552295108285902654282129879294642517277858916895366885521030515381861000242020226845792831655573585757914271607014145109361684013731464182618751326401454772401343838647652098061876564474785213251153259014975936520887344035025357863652864567451959333523872188851652832155986069343156743683139130533416119616748433042756743536525189774877818366176820012091129507989088527739561416426224327575010420331095962329276952118989232285214464261501553785479073604521273473567326587662584867973573380694151983380705359736644942751623455532978276863493937532617073859713040851980886349818245156373738110689958771648974645869014606910339586751665917965023295547194646237582948480886978361072482134396658063098191370528054417430078698202969044638228201498503527002877977991629796960092926888617193526029741844733425244098032152961386510385175838787863952581139608324860364901169130696979803621778947487998058258484980726016627868450063602054083609812164812439195028819417739468527384284886523895780947391773234533135808763556784722149494778559200879432683056381772688810232630257515557491572321075284849125483618597666347940224007237705057030424994490261590954680003000999030937473229339905270517140867953135889020704242217315014921051943417367701374830601402767618111771547043367937304833408497915289655442145984851365577471316940185772171807032311818048055510494410081325123617070208800405261654148479029701212755433003397044854653601900475086090461161173476509483748381307472950083668073736722383113227284806963953416805495551551870947564238192781321325275376149491189142028405548537786770100446798274596923222324691821211362253094290058954663556549597104906963690005501562794871873592432289822217460215807077788012746186941889609897660831123352558479978760546513134302362085359352196731714070927493075329298743426500828516256223333010395511815862319289850547497297268213903370285540692965228361635672921451826941908059939680451863104095630362549024507100960251582641151770754655949899198987691002948774315460875922945210451232072166000944598374740152556241052673994875826360846175575024337684121498332894153996529616800272919812647306735466686009499477238913559089050292988713811000061499664722522898282496032639915221948019626825629052322777092934092752611189440437866916991404435537338801649109286965086330578958221268412567913734678199200221657732449727460776733608495395936705165150497120000394290688813398331231201156430751514282994735635975498435355820112943981605329371476563138313196578526717676554053066962086787379236081977720574160074162781880043344430351394399385183011699838150256784564326897515686885180465236436035180428607618778491329686310491910166146680305590295218994068295676974242187154752644618781863245694305273101037933902922225104498206548662015809451133444906518363778593995404431764546357874829024101221142834720676584720138839301149255206848980332828969270806518437535667735558759233070929881391632467984276011830780323274846268785122579732745809864348927549603211801873917341459197047181755705165423078211663531498129443768364368166777080079423010647588113481373339830482866999118642371348941658159867642468130218874951238677746248344102274978366678992468643732663826250475947064018216275946624562047583777987402652711230471564589188430092858350563131964057026032626683302821107096192231699496278808929525055852660176747973412343402461755815119427813661646143637986028773927421408113621716140514532691731884190814799724461433823443922746118135510172767145992352290356527639368310855463968095615853825585268992389676546426281872655129239406879476236063505648623789472703335939955241730101510297517523229194994009285787224966193873481824904148855339213714630945034276636237265812372465214125423182026579508271548469147410336315534195857291334071863258898734739593160664605004848929966019499176490056054660963834424397247154563671480033507495572733572388817319735483731061880840665534807041215941250784266514021769626558238743217269904453549376465253415669745786776667265704309076942247798767514895989147731543526725731249194403814616440377646301124280008577080879674657336222505190125133484640160670891994119701015179503757903114334254297397898471194211859480328733886946886350032095531195117885849837102592593515823094282498565882623420088161740938481894158822931262688052902613205667805807791733609628643348745809256102406003332111677803130991558355777918161980063436912580965550121075908602632815814370581103119784578410058103611199882323080326159172751297684319106510671623865255424259010703439775047345793544577124436894274103811238978692815146094480551315621473767915118101205162121392286380525697917086010487143819034937015393731652925098958520727746772075176730902400748519249756080056325486146251724296303660558855336751467376548588381173678479483438913925907403025460911034828367970194326266879884571428430201800094842481134011598948662933932028712501626729373067348020678576284562850240024131752055216828143503941229517554091059712564977910195343261669516740991119362745285794341731614604342415281590547649265706859658437979435284418419845128280024595452490624802513890416044747788790478801455132396956855112585629226877951109008872611741834925003234724260358782095790578836081993268705823915093810726861809802542945375678311169190688450995235322936420494223360133406213983337426402899610838892125222579264643066411730206825821811217150992638498487139041915013497842429361861482614158260880102140567866832870779400180389110062219500806995284985600550182781320132954801782598032540417922908222969248614300163528013488530532131225927724766866682962295550067963760442226045779612418581379492544260824638943145530883312807820519123955456255091127257352208663096360027822288206165538704505773568792411439870679491380338650243805866147114556662989277761349523255749724426337113927359868593549268800536973523146528655773312594191421897507404151718175621748176059282516238369069385198936137085677791226991200971922397226784148273179558398012583427430604379210528947099790854487831998974829433105020629528789459178597337407394959648814944387760918177991757764494368200821023117901224262256120476490726843077098742940193811247676426294806106940877933367634376702292847171010114570279046829907015596751624973720691184708716693013286726953644100495052829526829045839968249964486935212657695555558792655655251106723307559673496955153890136750818617031727621304403850339502985275240779294528732164310131223929160084265285213142100012625317167895695385948416678673533692526991131667829643769752277797245040257484712056959484294569362762082374792095335358426047254749948934732334401385776030247469698580980008528844197033275001685262249436622828254383810076865511653813697501767158752960965349129424146653808416462654301080656053758589190532337607513112694961485697694892057719514694203094286430898481080449871031374854954929096713430509282290256894566809571585111379068132431887951181441804599456897928342155661023271925993865497912712749379350569018254436495583074850906478463215768876816533563908275771893443721279031777783033074059105010575174042996495999403438596181394443965198124966632793412759192233466038765654538147921221311704624911877966584437810292625311762194284987478144397401705078216870332624946387998198012002826837559340941921834440395467950714853396889917324107382915322189974531657485997857124801942808765163046419333954290840204993217126097500504471587325677273905511072576537385507589485724798790632910355487760080599788998046102450515153668396262829376104469934240666644959551117655352029325428648574417415603395736836643041930458834715381061460777747550678062000971475067055834253951224359989094532709003730573389504562948829660977699060270703346500360436090257065564000792557841295495540446923902747209380893632255231943553040495931140797022627834936364912278890968970082708790121584376891124518533737595734276999134917341296939874007660913764630639257679041628578065600679738356481264073095801723141354418772128758145428179444131895463954029134494901985062041537390864649302253195890473717812121128138468036436767122482789725091531429680663535451435487483955084549234820767306893773265253229768768570542138004186450429354019792313572792518837972643119286513371798758963497785812801856030171172174779544711784259774130633517651161483669070243528802283101810841113316632871991992128078762179115561099433002574976279917801013015977913210609578771755102578617385251177322872184719470626005515888625488104978179298450936317290769978996002908018771748968655182828086295137699191047834520238067064579986158268484800513541216541500696866699454907585945316664238079145493939236338096750583784021697649091429320136443706974175020143343950047947724087239611278838364058823835908109093523627377332856119879470288107096393493429859997719713360824490678825488445899674745928840865255477671111524565162928477776258320879503658849415972946894530987759526977771070261541691590972889562146194020900410130898457628074233283610960272194019411905631096530230864805567438964946471395847162795302920073575251157910945015531757176984521719573931223816056969384428207614357371987673407289674873556728045168473942276432963201282934014269038704595604835209893284836624144998019616045033557278187884876999762128557507667857654592987736945063178917374800431561012657186734073533262897361600928624007361455132371348562778710231683206891400647403830829688294433407255508832936338150289663819523363209709381503143825376375316259116440797755281266197602154253727216003319842946801725280599181488481479474139863373330564058996924929135188464325540969879346812887853033516766328123236065952443933989911027043524187751964653902316220780395918119292112635682435699627098778277410728026165438151613075971442951603472272820467255749112035485220520711846996065697112274963248823812332298792890827034212224372587086556677539936903815453668875199414205618283796379351762960681962374540732291307128045056132903792447611511052338979241436462839160792774937250427322048333111296970396546629967633372968339720811601282413101310642500921554235949870486156049920586054117581333976432054254435861562197493483539557230167817759406268899053972447852852402315885313285886767365006691660873386229651905077723835537861352340559686336007943360839141676083437343215975874685093367251588125844277158754342415134206812705680633543600448857088359500994815899993796844172724960411879363364268553547546931648671331696151295671426517929230946342534175516031790220014212326845899885523907039213133962551413331066870470673875309501984246082970866162451836913341791250678200199468268049733619941106333285855874809879416353178864484002256324016539574221291353283601958942316665983484888166843587709283246612559052110945911033415779775669124142305585343626216263948418114893420951245151813938472774932208550326740412548083280600943673119140106002578893894389755043671705771061611124197835883378246438784434588024917276201771780290608614651362387802677299284370801449542122770460987869980625729526078844509884629612345315079056790232042308173801890572708650525560527982808005258174977921013231260389119949410383895362954806927791830458466919281379788921814598952458358873056200446652876233955194870929711505702216389865429724517397021501851178865843972979736831029163480659256761791974528805660396480759365672035015681202565152295953912272399912566963461315404222766048502561928172007112102212351361952144575629617031131334629270363091496676850105676762481820777252864058908902533221620748736001840938862566116943883912501279487000546142018003845089890939983871973962425870458464699055791237407528430380018505723131896434890278739442923488775340738707326819313200239633335560135215393128273161334006166104149138906109364531529987432187102745008417568640584252941903229466955690837101648345849370469443426762927502905360283629049320128803227235545695498239333192287487085350997458782815162917202999454792539573636291635723612375841835118627688728960166562501389082015078824774067285643180266367919567294059597217337981345142289612234832445748022635076884957450155020261258349780739162398141839513987078854430847509725310230746580850670923770931468559624428262579088608949866831615359413698610402079079193025693159970110430002733729606337799715866074308778397762985157928421890741601851874356812291160437370615427562640358511805403875527184335530460715971167646135528487678479210009062224359605938190591635497770153175178154478752627182122656630303278833357893982944237038029344047106661693415916385309614088079372965954002470935585585179677473115964498117159881993737595261657273912047787171235717223250845341484332092141551666155483640241503462085812126711717365609483422794145117373120070674426714425435363361256998064834155707928380115259896690791712417099934885253900291021083072424592189026300509873620318079136496045864559490077495717046959405040079683243772076654157326598276229190701476043693617770002140980334571395064433881717657324292277837354745760318952348649908065639207270255995860917826658009096833006964007290068964090420642179662535303371301191281176726203830809081356028209176078679042512795416430086878119581165262173765420187517833317683580499641120913561710777483735578307719442556208376006266713007763279549959878754190412604540853963874134517880155306006509757583448166416106394564890117874790083421923891280978317916569544854250886230533543351933076605857515784905799676323509200783027814408241357174950434610579351755657190259469487539070255675166116585597686976062551501264178816808114380034278590524832730504959182506144586464648884985482524104757359580520585354140809036751556982714796000944649023946881516250087234738062737927859857790625643034641485157114009916369551503755477705457491976218581815450171139170426704298450826322027414826842885064520440635014911600596107744505602377073528881120818583790034163935667011116754752336634541579842900361815759882253723373154241929149500544999138529305135717941477875326173741574175453050780089104030450736314895292954598992226545475387391191001676875605889355844807277656565947075870936067908413025254037855928677752782318030051927801709895486333102403566613926058193180045778838123796898265422384582785489348896858712850384592602952846476547672701277615299186508769092379899435484368367560673772116341454657148826503560035186969697056333433937830827646887042299429301535103880106410801013037115592552071876804479732268204058646860929909085477719048903052188086418028524805664797687383185630751759203360347134830801300417798615272501320721328261287906657199900208343686587964676968107197006412324879142967649607180873035708544278475344332128089154536471915107451058393869218130291532328419049707985557129511235208627315048932164308825331270478935110548082963979300091107908918708080130151021826104827436265889350831810704001014349226481984934030420157830133085292059671934054628823146955799524192972526338822629045114212164047998979290290445682178813402177471327321338860018804584184858385920971453132969680388753173695749321783307596058632038052987000440545459105281806027886206659123640488177750231946305212715472207178368825608856126382056066951398808727350575791751440518030645285324699824096443157069832367899952202115026894250333972648207699088724725888525938341842579585818492141027919663043934738120095671999158306414902671288470635604408525863731277294387822009637244876601818575443927107595565153109331885755620289869323037549665077556852415401024703418636813412022088788578163581369237262947383135740554037938086239832293403470510764922530591439022165578738892218049302518224339446247433485842404952368251424048836148155692626557679558195333548440837531062410191209408295436177016246402706016344835941180001963390613985305641623178962169174216571630176330351416890671468860315857994600790137039311252489642568020758211994493694033208761531486302088249263876688264526765230489673791693055808616754850636204825073948292235149681266896709197742316729651675437139634104334838070632288046120702329577566812035490337661088940014435611798617954721036821134947120224224755467532085343731140460631972644943162335226406054266131509471219902064343134168942578527599723825582709092658484476948577725577066107190150923864941110868306975895440637146677817881269199613240513333131597852178658036415358123936885016966178932201147174888947782376380403027646240444786609974206280171971920867749405869890241065105282302146522372085800095524656861348180462190566897128770205991886989417399117537892916721568427892149679795139384694861827687034952423374716631306248816484894540317602924025038475128214841241235375515290753292276667228471132796791993167177456053471943317175432105748703489464790466946248945319271205222102084673277141446962731150947183469611855061325482332047131977042312124048999251889428967969065715027407295029681078159097568477795767141352754482331850715656503850163289935301584272359220140839472464984345597025542020347401209018608827014927143326832472463306400025285252978647622252107211999418792540936388484849883032136880445561980500688458343678831690086207981797074241231551097819804181396038790315952926697053695805915975753833971273655144933967912226060709155614193397287366756049393224364592474144410127446957641591803193421993888307240824406943320125412477566722130172054096071694863194147906232090410220983242729182275700203292652688131067041232660176913232902384640048668453045947374831239575439418328440037884066152896411231233483587890335966565680767257050065540704165123924922635742982331754321133669528305710134280426405874925417709950568582805902207710129533092794739752608470323178943733928567811268889587315949456457312290757774066940331831686977472341924199476934708925594453318013849354193861407889488804332226178030115124931377670526085012190349801794884019665504756503743527176300524628333388941220900748353964059955482565819356244380702585244593916457584090753483589267169047304725622508972830661130711025697812590666876969552951118116146892875906088831008737104710559957175622637930377012070281285452263557610928584667406968432106118849422085635924271257210699550562568429225487052645119918256212128345057172592051297493282405548816489975452600357493867275485368865761969859533001571446558774604320474744276444005193912969052422424460117084418265154458967972264901014117979534404895724869027053946909557521203869198753258404191103026200822436603525503571519344728246201076521233747538580106897068061727074895015541963732604006196853765970361808094668451328239575611460304769107678348401240977324389280571098883035468955146141976920787355177563337503769722902948545624798103172108494671418579361063774929209041718559808780124210724900383477369361469457936706160949400105695350476677166511755901279750532604694662502291136329003981429360115088190860284354179483655264584292676308632013768649777996913421216438814698500873734728230024002802509424383623130203100218296610558871550007406907959735501768190902229130944890249971516437802740112414917405105800337280882994317884508809592071763930340071497129347064973931686920147078562156636806279577175151974157386351105251980516131822562724457904000497142120751279300193612674310906080339053638878709915383482362913835896206920764207643922612019867270444955499626458735436587539810232557421050673139487627392706956708071208090840053796012538168860010442622941690416190443976152035816637553134696649452887198165230781751512059213271721781265532796097915423711993515059159216916202339160548330793356912124689010461399325989206923582462792129910399305793655414183096750997959893942944727038771481149808503138380115120118846667770843868510684417291556603502731839800311762684622624214991889907885686520615439404720079413752069204572380948174725741045895644799858718267451053720321825489654677315559712098748588502204708563221717052855272434544860218217711476594225792505780385114042450647332883823341575633556699289333296254129960171345822979141564470038137984314367883002292822082434433135690635309662314543679398641334894548335103068012971181184807640634431889244701360559726455315968879919775771931344663116203679651793432363642095470102880043299901918436317443292860747201394377510921102077176099716306983255244046047737226027087574254579383089107538203538814145887338258705875774694367581847884851337396348324577414509174772613242632084802595463614935099497967383802906762121430912185270724429770543017961207407004307018483012309195330345819498417606026557787746560570576872280680370832390366949143744196281066540438060238371380892228563286330845657075393059369146927981108896892523376556473142578993666927187028787954400881487059145773207372347235611944716654162480734792433005380543467323258927282796556516895487669451404442260214542217094588454867090840031508740427803213934641240349822774248634799738223952640635900785693674688784169792951083240111903216906599183746597850854362603324754273381233375273275608535199120304294435917188338121307913538856877627291681495632335336067652015355061615875347170971160385545163107613500456354190919027560672255557006860838295342446370767023457510449695652532866435893693583031676661522475420147191429206660583761248787202102441436394694826239802769706748517061454996520636302530310243685155565461474289596021375379565459026476783051389532459520399169267137169901491209144002210961380365968183809764915932139858087270381871096120217818335805982010073898581601283298475661188535959292842109314060115131870199643738911216993144982657589802006936606013006962160236880792633240613148608940979799915359632290418392149894789419069674924281261978390050293208777367184373264366329448300654832262477201124576780471950498164528306357031437768382003561298814441700422242895509644136009572161192796486800508105191858676248457809311225241816408555234784439720264667054173098605506083792395802962894318072926905027359513522646139505213022690237196168716087463076357955035500819250617207146272064718472015551010491903116567389748269819589772845021128594154612995130899103493047551718137636179413770331341164835152756079035667113795396508669678942005169167049446141279693931653679433917828670166795920628175648545483412829747772760169151253741548584921808799720670337847054895867279855793229149243719660120920986795606128376258618179032334697033574109085757354151115043640187871065662836370016472470249665736213371694349070598564140268721271180321068516837705183980147354141987491930525634189791867426070447310472155959837548059056898028892177399401176830442393626476815500356055063259438281220712796072589503520345621164255706776113201393874422928496674927085479970829996267703013693156312094203827128930007037824829550651599293219421935857333493621264487913255005030785965047148684727209638084061001500182618455023107451633640741966776344265047512465517894184042620389110043943165413248908795645149736832638536133944518065477668419595047939652338110147950717330669183403559707573431182729722073883094735607471339469034217408147246834204392548302904095406169738742578192949421377030343753694375936037880254213563962163137367948115820563949618900508383158544730312878548692051904195312377862459425842057949307946668321702225895609064690890802269605280957752239757825638951703830905104913192930538769771921333629250773228838455485511743637848394614197415623652510300126076905732387911143630304447770345881310290985139136316299352424975354546193730917679429593499275246424573397711986951091902371977546367103947497746487493565404696012888620165594998298845445717134165489396555983310406960715718602843202162236009174159852604265280507467788413859566930700682485839186507896535260206569048227636108493665567536209067099458008103599234683599454121555865543144833566942816397441056049833908680103249315936347702529214851967332860875671576277041325939946489555122691812150167435202832759042101173719631415031206080613910398503400185756444470449835033106991677863477143252790162600901345147137647804385939509359319900966451010151707106276797190107928794514036205088715733014706151601683188342975705152642980021763808096366036809594310471413565344582590326800397846310506428449199808489750727390228694809938834661087243390722897795529639821485228538197502356554097215150562980772093870930217417543777271066853222050161679528471629199668314149613984313582374883393595744961963614394443045654643869849297990004703199575176788626402842278591964341498822127361769995678515066702568875473783476615000300838596898280176222004528655935730596121307145757852634942491414483296020243085150741336843224936638097543199960314527425594104065315123173008511734949384004238225950848829050026986316192678945729786412032930728008572646819566432334393138798827981798214327951733314867308765798061341704530602551168551519171014815787642042175016071018666089385225045698856678312579699205222931231147607030034854639293704478775858533151527986237464872579411941809044070480825539015579971550258724264651864927654733184084536985236461610917338168726686580729248291722646022057700486234814901476114765749313797561138964385228405000154691161255851760553334872920670132287763948422415261563822006662706704204420929848266418239575071578861507584369734216915202143227793169075383883548152323281799304912411236860219630680555600532783119058382416961759864748879195145400667401304481213071286606436739735261934644193884030033503309651430766121586927044006964348396510973064522185424093592243886195517850122005021778125251630748890138626609589504983677683699013834527856599931380646206662364143028044017679742430728844907716517270318610624565860601777382874026315214724483883477992210820179032825128586821462843422093588505044770794894699959980921441774020905393702350421367829392719492416622784691737367154647354304143552515246380870353469866289390331923800450031895793139687696643640086739363289502512259491833847169485145099656398934721231637277159958884205056140575990765138459736453231084595373692365178341662934477385446546458660730400486436208107244195399529026659973822263710745666943574835971837666012617263894629139127512941868046811050237682464483504917850443108836105177513871713828261580419822422984541601900589668587825702928433658293287271518997340763796631149686922163025571506659825498840815991249352210589805923470443534956444983338068658771297508262623210866629726236304323625533106403000304245054678447820104519698831159399115120271740049791792584590256743780252837486340198025206231744388955528176455769250663825279865570508454720347215966590178380911331292716568695544138656462669798531622393382193895666711203144740919164352475276398109082823102642645159014241367267188700173495268887307652243035939657739525555847510214956984753744388805692416317461189949190514797270907666539822525002271228887952665877835807038333378355503905497262372748034236297091938739275038276881686518723235029997175183881682835351725499336230815072966599288466461695048032957624791546079218055858156086136220896075097528975480513693064203838567712107161303197738762150921570238385455141357529416168191682796486981120042143594276204906031685420475341796731745753707971721378913154165133663217878157048486099939340296367286768947538874557629134294655840017240449305826616029462519688457662749544148034902667971270175696002249400050544946496572097987129624233567543575647820555345050818147006658578377893682891288088522773475628796309833432339950718897070667403570023790456930477377619368509300043178126701634672227457109117581157096971255049186130859271252586200416917008826781294989862505314043648868444076760798727527908912447647063847490781909187278350031328429403228808301340050557833530450150054608111543169841239902790152006529738140957532756237634919485119277624872724347728824940622874300974863064486631278193628441314124723616926542082577368930111190097549780668498704221561691858259354770752426198682133035412160892377824720536543640936113403755628547963588942846931207067917032874692127265046651803383544905970961907330044129973162931970887427582146154130189141339963439114215612206395749564468316861970897389602924804889409183880184225582939021936000211499245264633326311071512386701193294188510864652679681963990846937488038193561470370095411134514980951935927958797338127282287286363872429064172796298742471204763551758263167608780568414027692996312734494190622069239549194377183629275982403860735136322945874027260797479923135518149282185438721123037701470338609207564260264160678336416561398760649017852316831147240395311088518139352956793827182113405790487175806586753889001072031816441672909024858208122745934453232171731950812686764134223501663822486298719141897938872649605479966614522118549006536931331974850071901611097731827342601626940726071071425297957534785599638473270110404993343568933022554612161812601682624167233643270055829139428152666936265618240122082226703620002904793809839832786278001661046043942778949579911323101295216872650482928951921136654083786882421860121054088384413591785771357250365489969959279826927550671921872408618387939090721517238311528619302798640626986390001138968455650817331398060545266916587271030024277228217266749734552655044335655951739929933875063078106553549995518574347523271451357967857554135071485976243936647215518516325266093647085610758797317494540638900350449223821705159572314884676436798759844580380304154382511488774335608768204101269460213237156953768847401719751272363843996723707959568480817521502938501386812120185953687137878433966316994895335091384430921769984428262805311100629947805303796266263674356393627355519476675773898614137591161400899789205695840522194272625179983840578605292880754720818927799892741232318111041248208237322902061611040443895080421315409211199556150158892267682199523635746469169377094771160550922778423350643027837667526818297328327234465413643950215006793773968459661802582646902464874123549383123218945697857168767980898260666333424246118911978750807944644957030016295845741036105996932267817493570475291424743395191654707890898810550404947456075021551858695051931416841989667016568531463342018960286928070525102924172182791587415045690970291922442914621014475836713990295542870522410494727796353901605970787254052448502300221053849099362604959602124444341205269754925160037751375050151884081535841067422151820280393402221333322169252560112790699855290810654201840688960050296816986708092450906302293077534803543454450417908425891669071967479124775564596488339223464867598104462273558951591759705912385452301252793674192700719125079572474579379936484269328124949847311425368196869474414335345960809950417518129592966943369158897927311474597736212772203658723807781704281885890920699538175433395262347473194036360952534844348100004443203599432908473703249952172025196615160753432365330902306981832741928148051153017408405709431278814956362744380523343254865841800852128188899216888368698494844307908881865794983501696738949599321255658883967330593225774563412954492124013722790566205080976021983566888545314903735451573937058569303559513262840553226178087294595343795284764349742129805660285211179624818884534755814337451908908945863532840106598521082502257859617500627387613712035755138260067566512061548527555112935496428398580524135436126095896802959923884846133454874258162437586780650624074084932170275980224957054058432492962797723282525742869291251751037739555957971478606389074231034757680893469419626762100531979189794885767276157832017792115482092244325600633019331461951751335670247758898619717677794959422679587396983087407766280595427724054937763336058719252461173464705037970181780678932656440807712114080882085574167444045617507833566220503209422989487583618182896796340002709962078383372187506052794415817490983395430391301412981893548166604837159853870665409202555249992325511576901722288640391462492865403148577950570304023079339737847827853257917671913550231540314139673593438309675704976480736364565063354681386886871749820081679244645769414642529378922267443996788762422762554217529780490520295397440037399635041531378542992289785986034982915690440688538922668003041798366621870442934861872195480626945360615805947637680197593747777030348111130920287057471290829493109999043511621780313634507573821506128528286818052584851560741188709108966464978237989127099103940479603142531188135231280192573939688469670412383716365868578235332462756370959416681731360671044167320566138165656202859207955000400955925759282526117855377626445508513022175983091527188206747486340462624055898602775354252805331893710473467437704267323634517890065566954346539317091846275761023223612228322996272849366797686761801100985036143828183291679835886881106771998089065408272192475613783854192234833310641592251232034616755928093984723048247818125322152947593655805883026131833447755915453644972315348798151465528233145280503508972309287786019401974951169622748911053010559215145265303370856590878658833378783227843033841862752282068640837696706200795657325966616245840031926132286727703047174569787411133356249201936523753247103477440534997850988053611488365813174140919718376141981977707869131070752138506485092636306820102055779134219103635734273173444473654515806477963340580506340855317225058173387309743231255011804923476886798078102772575121655150142267324134225369760401709775813166314572912123054596035208902398303382889240097389885143491404049266795188268973532221737146693752280020085611395363112764000547217952785312723743497052293057458890254305745154291660754372923928169315385405785636188635688732567118175794215784584223165970177434998940414763394332848581114112154720660850927651045093096535074777074837751417475770104592789160227628063257042035285874219617108141356466432346063378864359974648980054504361104549172977464091681192462066478229337821860940906697199130338995398601485330871541011001627387129479336100459685942154200674277577164281408740463258454378119010345021375651730420883480567157648503552756260682894083333876640544826846849084534159306246891100206339798810994371901637889857290765560998057536471736413401207864469939368962499979021740713703621148509090346561408588346625049089718056583613932045203898469943552210730148050943545601286095950249793204064404393992029715382665153466107725526097516929425315209139396736317303969938904044529411749994600495564921007964181857229251210349810212913745356760285945729355141699883201805822348175097042208553094102827128133320241641050478791567415355693983495802271249010846519146670505088743735171420668803640060205185062627146209248456867557627184355393174889669812418217004588212363389630778828052241655965130997587644024613041751927188441390441109729043790589059880337747652235380192543908377038061298860186354627351464914865985665190957299269060176779087154238988039792494407558985708054196545003234699249027722348675240161333165661018231651202132415845079970644239796970500888672408342649345024963347578262247735816690801896198070049892659508450476231360202725590634718399971914970008076336284889722084289975527277008059191311452267381891825031886247337908931420467902118001627736156622344742295162646364825218891945749126683375980115191592199789229753873986000758536992094661202223234379621705556136832648861583892732070772546144983491224741108452091039834499622223519531294879042136053692575427651659747624905632682045018367305112832713666839010624185956175986780362887902548101692394879245473921628728650858233985335161681445491290805578471783721998380710148284271092067477203420689972261755129824148645005624531938357870753552991606168627482408542564785934120359389663535807250884627950819607265641915588051441628695019234485575588123288214224321558947110873478347019726392889589299037257600520653428451545628248574272146193809793657850983931537256425245179724978458515585513301072358856144427926950274691554411521529031206167180352124036413211600503580531386079092801825390053640575104667568255573748913028953533163321132600429391437246269746282801208383185303480737006985229585248989911642947410691076087186319383492455665360312649289918871947727212483434907939601574069457946112851861430264617834355941784560785419380931785569566856215736458756107739367454743791410577573157791500296147535221286553751159310665540950525928565712557200365384927375722820841755577298691905728905422099261248616746786612222940163642015255593284073349418178611612474818938974004062512497315638728735273726747388488990806745584722556891088419020067835191763838388135526754958144287261408995295599916990787667291536633504987018060758659899663354472317850124284781893971482726682497574570427370228937347922920573757336838354134722309487428709932523091226631723425316918588685708369012881251626023565154987292784361160589089680077335578184062002318788249048847461985197538561869032051270636093611820080582365600892648528326236685685011673476572120345377724330706813537847827422778812045392046018472071548727914176062407011804233816428735448402795767957284906366425587018766879430046755854145385178046473702397480398863839483417014307126507943581580491238236639302789740149904515544451831236557946295826186012525147255296745735917744122541591613894437009564619336779670341812369252083665233770851016888032346018397441837089463528688601766363113336867940713948903663863809918217544627371924631670280218050329632099939443768292250258952343829525773562446656072194891293379546235477357224447191928254209998589545009602415822039438292309433909396207324135024947251369626469845095789465012852215125707660690024328182542014294598401924436397886471042716168292101160876026470612361937424618464729155351194812331575482087698119010699127591165881029932927934154442058325835408474423913312165913272155378946660156105924730438826138486316438651433860264157413145195823335767349543427812273794703985404568351699846235271289371735278977310194867740469791198429071624788937447133781717610124728458680284786697367522343613899930696388900303788574337211239491795244930510211122688679399175543011524398220708436214112970998937026856099913420361309657883841366592989927240823556108003556423110789025684565031351326924547439011977335237747354574521806681409003216320532172975983941250542321371784565849737472357416648625403833823433495486308936198625781470397555390106020311778438031392968871734497668102724490913721200926855378928893951796403547850136282328616635318176570059471958688676074847020291953332128885678287031709495310691282944000820717013737621689488265598934130362891012674672927497508990457167585594844357856033241228008260356585883178447655427549811388589762468957970887940620124601785629614661674340713925293295035801214412443753195460485534851161568267647952306547734005525485833719145244850768887917620823381649866678487414276548391390208654733987284845363834036579391155529318488779877508141005207033091221898824843646378092034760287981915361058766482570150100053597876712439284185770821292115904765119863222584973592734164268770687039404695005102869685847491978377427669123770050928118041716284044023477294459555106156903891862385018971657447646321629034335517302412639219675462672649155387729361990801160965563782495088541752074512753212002668591689570195131077285084167995782529559766080528910125333091090403408059989929953286628223663260946466074211256957458267820755147794876443080144398794719790607079599166569193461800016284125818372640542459940753046046168941441773712863862042136864580546670172195602665057641041779759882219979222517660592663220696980545011452027687582156226896736790660464784707972954221450233769911995900087756732852762547136073214908310080921990086370288663739407089816255981999570302561861524249312582450630583967862837517698655872412023404806296540970640809626369517752590826642124450303314968505164805567875709727313459148940318262259057658194311376678886012421407208805254028996999413708252380494741604245094905969613023460888033496848522653949388252851198546475353305666211012389367233461494730621579584640001752504986659400154152737678014498392705724595255801774809926717634834641044260726025576249359298449300555891313061722508534201128696208531029355276971571710327779664194003004399363446672541687681163869917806031487156417826435788540797637684941656371681088557928724922357421571653010887960545695719971222392944516225917417384288066461185505486744432118218037947303136934699748994578978764253278669674095577975451289853431477640767398159817612384414100154867986147183494905043887959860850114829182884499489212130817159280045920289018883249330146930558941706924016522549648559737908275244240608200156036951893045688996130186867816570880509692780169788099393607213980258306529842279965884788421254655730150022170154263150204921657814284112526818514063853635164031380272014648868262587887669748933734209855380498950852005912112928656246560117003074416906122185033314689080211683521424727935221615454596005302765449221997318439750177150519831188567125670095752188449927063873520903787302656390018506258732113104446534248800801170230374974744489443882115946160344575190593730747390967739384102305298754446496452075541858225135812523789806795782812048565406605741027901190601791410826034095902514215684492077701637977978643317900102751550297613977760949294800822642010185821723480006888110724582851105329155667114705773003296990311650350108705233786127611941952451465179786489053270192472259585242243398924022138253812615914037949455272188881809517886792173118123432869561295640035918547311421397971545997845151392631519826844011048946855054156375699003470450124691604191565439052999289859822457400537210439002838229383507632723416850900411081935975817701574718523928089857445630650375410604414217609510417182127547071967793651271774471360594785464246029548859767950653633311205637480959266036787869737626496196849256107772221652797302966383955410691438333190747173623910358242070893498938758014715078717122713050161943971340443500256796844510909793470472143442718978606200739206742848899780838143846098655201892280049072903031239760397458682658224120760622249394222171441768287732693920697789716669643491270624378569002756745207950878312783271558531910401403391729917449186986001529461797591985345022324770608533499545726924146884746996990973083938323981598742881069246910003768710893579550199332564930766540567704022753557166936082137824203886156717930650194491832481933022217190916836951087735766506681495357075298347853416225355315019726536129792554674644139685948356542111643900973047130959582056250296040619102662862074259923542939909229868133514025459454147270625775000196803929648892718366428688731747762981325382421185629959715586007614992441502603374842720239634028481858320857497206613281438043812593588780635372627752260381290638221278549202893152582104105360250992957207537099155994507352076221654155176489730521614954183048860971743688889312811045145426960240498370799693951780599802809551015998951848317297357703164056215329565308622345376482832360648036222394416983719632697680434507285827831198838474908031540949103887217616535566258172526264959309176849967334805278592081167611520575359392803305499204642867265428178218733054867694303872774105337496796748521456936410493633592525113428985466738476313672528095483061262101856054586297203380415034567859225690172659414140858205686378043251617472150959041573563792653930358769493822940338127114764511086316115552733305434861664509347576140733037564826334224510342752533364530776595128977391182660159793935930099213151027912766926917653751277484246584665075837553944784784357808879751515442243759465326810400392411932868941860238062053141930465841328811895559635232461213496800600433381234138863560304691765174287538003202311374857144247158244353707397212260091335012386827709820783964510250115385618310524889301330320555378422583578763541698692732417580355769728517804799171392925590513442407120959047123183840959401729030767931470913196061129316412930426514686001573498710615609271634219817309364450672939793155169309717037320653741089935995689200424776903821538265478813301245299865375660056750553272134113075716078519782191418785605424893147789761735707777069285097393685925271310749110764537761266391265199223818366908862919843239984111170533021275278059893778226059389873860893470828664595621517774176785416471430530377968618550603034978097800879583375694565551668399016017319113255224092003651098340714687814217044042766863914174266952743388030134164450658720443634463972155094496864965878947403172140602088347531740766528509137616920464884068367515919827650190701357302577030106690281606836451467929583936302941804145029223879878635570187911343598715536481697673590296404052697649001441000577350290769387717458005471525154062700527752941572780139746629708003090657193722123915241722905466116635409479404018099514403826172742390493316801374699762071821943566240642591225046513689650984797022462443961593174151235112860484511825653551165211723785748237370460057514519088263999522211523762856311776813993277265199777118091102184536074162076966472422735662299279587397291498649948102873869231925990881210405223998024723624746348568458982121251541299201701409634775319485924475647936854164694023375082147024155579666186180420281763245795040140724248471320613625847593061875635851927877271965847446847508439280835433318406115066088876480953247577902345896335547685055754021845661585354712025747626187611719746670827949140938259122318713660718566990907846271220847351538154119661972561995392137125576884302116177079006667848958591856517184701247061628691193244374952439552743736497421383749310590889405472536337406028318736733541629296247795191936928666556723484210929362452506578567793781993486169721530396627903122457281801375142759762211582773225746350620997667884070753978211253228528860050806231339012523173983502041586858932233497683372020657921971664414479930508965556487022868601311817446945013390308133323032263544533726398023154508041888522459489576912418541039689690559374652266499922801263560730074793908727015643875171430994110619727104907440078829007831520012956915518196072552343026453394969103035324801275041809401305182112628516440391315179776444193165884533961000620622281692246333734045972044896572557802651448529581193722519956037497225782853917722635444436519447222692747150925585953846796419958398502057287655450922660237493749951169713817283745987235162193256312705557458652735136955999767987265460100470307285244219613539314510107352958613190362306820619810384199130838748344378620309280794457564537663990060766090045117441154552969906279831017127009992780419453564892449752541846283197015622963956164760199985742893807547350517079402239735274734095543615482948439191754780465602709215966040532290810505203006549539842463349643372388695572536223782892660152373503341948673738585499030920427505964913291396352574714240362798122370109380527368694805858306494741609862134072857098825100652887877229687920492657550107732452528342273379217478675710245834873215198189969939307288537521820027731685139456648035684444112881393347013362932176713068215662921769904783407715064355629612477024807074423717667990874148851110730613011268867811400894403084048340319599604638847662595997993777686783277643367435980971350976771045856906307273587802864551852672595287139146147460820647924078470452814612127481197616073479310780475165456656981097597328368291829362491091535592489668660463802750331103220117673781732784320090363286045253291792638098877383816319428645096631781157702940993661950080205348404787494449406231322073961842068104332402032158485614611808054444295183720330747061073814677100811123243684845598784492708403184124740938707675507186987032468989334490455272531720620431594994304233564507112495733781010746011963941531408142009438986606139900616279372883871643299100583512208857906989366349475134161998776047784997914667667387846372245584585831159411582237298917326762406282945933185049087061909243302750136257762216821615808401465247778005951276001063855630117929372944386669070000676341318212522090012557621064467617032455318131892288085707620701623147202491581214997251733530434171931209396721457542804893180082134892742756616190384591574273928644114674589426247254134060384334395475152831696154982878547487249436288554741566232786749936635534649545097908170446318171086126085288183665791547901826922924450815124463162835167791142283779351764003081829736356267422963072130005149985771093527406421298699396508002521764908441937933880676832531337146880964435801791048497708928260636673358663382567061248594094340888572569880317670160899789841824788690657204304173797119266427219031738994051380951475670248384940915799062144697288891536265623634498896352014402841587987385738221283676166606543363236535788497930401613004586857931029927848261593951336022969719646636072385792365368230567333929746556336841255378010995878428508556228646365454087021630647649501126077953317926719509019390087022848696812588532806387177012066933159677346441178641567422351054259233651067712808905620232767440915833763450848604938894325319624571751893056122524143709287391321412068237681913261237916585771146020730924363855018466508806296521538315471695142758483346658851124177251222756103991679888646851723446560343192482906206837156771147407460807596861698483154831354644142806490063149769564319913358684738060229316015861961273359049847887115961254959296164338066791558201381716351479555365836851022951784745968054397026591583581010870674188868248638023696091298015117570523414144901269639740050621048412944669715899065196914792303405855737705638875025381645318835504537416514013293680582043260132794761303541972745469819246008166717388788075189843742519138962725360493494858387495944323233168252921794134303439822495000169973786744078666131039670179591815880121949274375211092729327069593479492682361361241261858395526311631648061253529967558787267076012637310871232175198881823481181121462018974963645936570892157293973841032495943298022347671367811938603818694885906130073411876748286410786419145402520645174610633511012855628104531436782873385036623723741791914042667254523186687770820791797497695370540911274613612604035973027107777090303713614026973486698813774295272257813320638749338130886142239153042656353689200033585158292016174308949831292464060091123987786453931981974847633743916156011669563874199445011501631227942579338289434414413983998714599472155160459523130096781147973648324815432885694275460173288101723780926997648406581347297441405547007514350443302359882094577611690259223719130055025668268425455465163623783673819362789829696031198860258230845899059475124963342720087762825613606074809258085125663718495338794605684665509730368736769870635731185638216510597166634872000915262610104298801646789906459865112310963618954412887583073584695419576030478600438179341922252321106148970755640695837988313843482345332962173455057618510121262868748774472301756942632356514939794798314710772755645837341423056921462877364410552469286243749059956937595409239422389700945505704669050820001304261447651946057671267302580681689930110493183054326758977444912425823710425767138547633456147902674682626351404097577311729193766925105123438199948953716467533924372366324169953332497161934088197542112973103115702529337753386984151739591805961212355216263756290255169761290951487089205441396541101165729769593733957487647091372225761014941759902915363534224293619007040424184848045321712628654686972724402176083152798902138965158694154711997127776553682973290920762215313617709843942471310327690821349527883641768529337949977224540140057532741685931257660786993141050230161822638031553117401044814284774161318753866522774556798499950976410241101988492542924308600960162815663901839921154414858528208365260795943043642303988017648531738316880730014206992213858893758499676203919112811896539353753327889499910506743211989031839703133763757825631685674413496212464570756190639847418419395977303378543607792532060575526231313313649558754562212739245429539841761092251014036961227746699314878540048700348207795184488553149574056676988160567215404119109101207440965538429274431551926770187739051390093365594541714125784081672460194337577121693350733557731965144637796097224066462203125883432217443784967464939412639660815167268388320736464219907066254024803318752303045188125030539338707650053306974720939198107164233599063978075174135841991135547635089799202259315945409947022772941997895849013756019794613354817631451518542282834725757935892519126488371992472120688809595181058999989493088980831405943838083119645538599052046520647437098966895387112695444086986877728236594039910694191247002307071680348870548789212947064611378770320370066456601779148339859199187107815160141393414565102260737795626576365871182956792432033569611781377907400832713337610686786009186345523061874537560789064062552239925306432263768798036968857670668800132711449828391386531669104645250680151571466026543850851433430143464157904951468647049565510260909800516514674927153651404495262405780940781253121895944862074375103283710134081697234878064898341388090509392557479931352035826964286646192667561640963808290238071321856004767829975499069430996026835797463251100646576411051401924761050133936276402191044503025389783843647962895082267287702826697386200015661526322714179567447790399806507200254991083788819696908461314228679172427066094887857175721547300475646582184363049490006718309225048500799676720390692846060410532497406016559155462792534702681449324262643172310325696161791629948304144095898164565457959931305915291471325349273498979105998836355315808233175203218448704821988689245646497134437378476197003747483841960890084283475577992337601119297648578344606653755945860437522792014429927159760258795351499406377893460888678995464764256075984737842355809250191711411839891178878683421775454841764546519363740840613101031582556515044638862252928374057857247575739068844890317346952026007804396449856605304074110216884775845766995358150801460045116045238418495311050601085911831162233389959324610461743232768660837276013445365998962248258949524288388247667546452579210834319838639421401986532992398724702226598068243206539161791415713135803854143473969099004704164041087699707568676287535993239058175607077702480268168217945121577103056138863083288209540152978086464441905977201135875149201057265418680402054497388998219342944611050524187396187854931655641120674864613981490627635154558948640574606949550274753749275065177706328267799166918060962880382969969447758887565603136359026405725926486295574552415999118501727350376057320005474048823953866773818085800974173481195346995191360229658026894810119123386580981467563399360732884693536566482182771296555638029696210308905956803913232473736857500344808510966160510093233267329498447826263843435233323517305062641979826917665885587621366713931003206237967183555027511414809707033208972903819127942180889548953445682484674791338076210617413110875873175805962188537446201393461675064038684208520589273030802718083716509492689234427493135086408544484940725245143934576765221874673345826917524027809162353930089880358065090036826592241986915868662705319612036655295857744611821995808177533071677983706357315757676743045284741808689961248558617139444129133305913919314918459485625772625248808817609030472982938781031682157541250169560075034338559117790692613377828181872477553315905662161265869622905240033313755196979741576502134554522609516778583023972203717210620248000401045935289424312965484810020060908311988321025399196650088014577840708973728409433023175563629940182670493108268956827422613571639111614472460598503144657558081575565565745045611631585469768582481450006917317276681536161828799144275819646697978850071715711712962937604101883804014050383345403206201405430276322202212653425691226657022263903729804079758158040342986891820521522928934809564801570204106614340350415165196614526528918477946700155370593809293575505217694280866363793763036462584990373386664444417923172956428931426381974520008177357031254029621314535370732611576708840375524842314304790970592748648721071250957121709968536407070333359995084710175163647042105804139993735921017272224683055218296560361175909444184237334990570506147528709229395733541253622463004194714462919274787564407631329784774455682991720066248494077101132527970877061685346179857545207250892048122738165284168604888576131346553003115982909220023266396780699790323667598158771362431286613165932096898799316525171407819377839677898788245237795071142946425735669238170444623026735284735426622328880582913714866933410177957021954284056226513574105377187073742503038363916405155264619470804046183161937824031225278745607785872054349524578142306956652043010053908570235301233602496788380293317288000878911973752031418003525024775009675620026076933593368084686796406522858561990763263854950829249160397616385603643260104728918471588075307438512854339962383578785468622658896451930272059231245812364014599995480945989930203852108120606887243498581340712666296910755277652392512402522636351729366208214434982223176661640080567848744778270829218398852901271361547983015345154523478164971090423766211498231994725866774082029816812635399858499328015673908190447971884778930459112300937813447823304755502237538737851531362600032039601711903163595598195072973147737775820784819638549578610522390950541556593038489520228462555694073998031021662776949865677145662000141937056391751157193316091138393395181915503847789135748235890560365970776025228359420773260423218025807554137371920183031891011125395442841770821885914228023722958240125174253062354308270574360299400328480958783900458266075501503106331151665756849451664948696263410405012748003131575496614295454922629587362317604087805252524164688078755211136241077290133518575659988890709968499382958935605071049794643267253830744578468448501105386036490843517917202282697161639695779581190338309576877142202395604101723799651307157165660738633503430708472848897846422683818854087242842314554988177060170557053217565609469311756329107149659510843149987875133762296615025280407435668386104486270213983258569141865043561254524142179460031267852550005297325113784690377527626059845089382965249644563669212255872405228615018559526168231822143826983341087831440344812545983715587314286651260228908225084494592238926761680085093880438676317019164853053912956690745631668740061178954675878029932888655416571307239956184620714437348286501621129471778513352571673117916928245905488909158282841164069268429812902847655117489326817478706437640113085143663086545954862734398845142928405482622972264612545845235461994441865573483727822969378591971858510162270973638141929391176684925607807890776252606864814615153338946357231010165475313233791946552423934696184168163039138867344258619113787423150779709643114082472033188111653467425257182760156291921628601871791065787080620849915724541574002597140244001336389776206089714731785179960771716029699427160912556011494233220619919693239676848802634261267619209883804123188472573274115753246998496724643864920356187498419878403411231575091311340617033066585273793483560632430483257342945233934091575849339165732941511066409030679990797976116796742081865092850012943148079529444566092886506549312252206350088800328472969526425979024497486563410833454566791113212975510529069985804555287570066053838070344025960963027840261006582087082196352431737189420609101649215939687073614310048352563970310128488424166492009046127302704615976560813328681833709973965439084873174555020918873376282345581416341404673766128084700334580730572575910893555154758590806163867160443648638224069130722448442579553216843631366880936678653217036943460292571134802586390208290951846547200129041215926248081872268349641450143967839525005375688298043017364199223591809575191892513813661171504490790319923711157097130238706723432940980322621422679817599768167066457496144289867882960843862017653854238093113556098443791354419088640575310590494612539901881093051794810153598051205467900484616896282771709603438997715145751220463157961345126383410327208018224097924139578494465636800505473736926912576040054477057984292520133788647305125266141048288128215964486209513097767717823928844350067347518588870565226266354120555488518874806059103394520108494145988435251151326456118847243373063370747903050476072143733088455208440176129506549994682646397329160403115440107726717715089387660320309409881282812404636918186909164255672224931354275385617620071620421587736591963610792543264934435770484300598630267608854053676265287730807944829864732343306210398679920120981643054304145629204790870354434153644966618283420597479033280879631961942105703296222893087676539805922299367757404531313177704958471592152803164246250403316041941900682264854212631536917197331806087885531211233360156276660109184687770262376151780521522984634275234500014667427742428918773535003146736585286525207141879463028643955506615253570906861731150979026703042930688119942575355895913678176916591806074916089151481741694503121206154529751662503402681617559059340229282631419481376558659820680294700232277403729890821115592115124384126676987470646183599688213444340353370599482152637149218612427940574368734248200012697398255155469722123717662320493065722074371876928314474626804997554563838057197188117821855948119426878698017553145141345791137371463048082837882645318956766361952273972943657827307093565279008575735852149037094119279393565774826119429513555158153348757791989175085675746912294076850181072604867949520706021523511994255426380068619339499676957288235156041515075206783740338538869349367300395397623272437402809168671073806920417738883449199645277242707242946214148856004694914243012739318366201799655483191254711329809780754729555779509015524177160889990216201266927217108718298782614525197887946016248917214914712057976742409850515663542383922251384158574976168004892576429410822286617166553809303159366639126116302650604645586222870959431557929161074708432698607097987160768773468556082016061070247832039372751431156007532572133778069396452808590782348299963513760344618737851231715491943031526752697690926525240208467995402145619642440576728154451520744569019093579303556251112671430089354044068573164387154960925638000748764767083493346289533436327806123080448721460471928190381968586020777627089635197621675585516646526554382345369061664222188631389024260549042843693022609492853825889188234125359449456020838112351524771697344508429729721248027009306376500064268223391217109616113754416410268399491413441839779313297819581672334417652294035963423631214286665194547842520860569180792369546507665112632369191901093953334897131443753893149030068723440163673537845264990955019849955581815007424578977466711696414320065900491530961369763023135428834117244226014688113978556324634477637493507953202053749713744310627739965406155120918291721506744949483215170821616706305153342202683505983294871738499852261551458557238599982169448733052412785231414790617025844233794379513242462637890242455377368519562120194304406679057798817248933079147021913613081031204627381012583016701109226925173857450161451879399857279958876291858531847654588704978101923152040906999818999995693609471827574173358440940826195308780200618905242926315595640573507804433066217992067724899943995130200094092943605412855880094554694759948839855698578928576939217503725251679873104250014791647914544632021874638818170514664683010078086422214164066721092740995780455374970918208244801381903063724751901206067587157385864096751425795936828268548126119568900628988003920743620367691100819832062835899862704821072101434212085638094706111153505391338328366743296452696127101070817820417099637861682083825901473676430093262574645245017694974031736252689700660965952910721135897329006846443444507221293969935477123959396526849962645945501375865975302510457861038081458329536953213799096500746293892073030559796862489787158502071815156962240425567293707222316573330306514552372893075730063186802274616492315350547161507241895128977548271821273229769042807594190321156041570417875849401363028890239122473196463850801817897672333572850941194980550842892459190309878804958726925316574238479983021884356973679541053387784739016440202972501516941558308385514073956492626707514493899259707486636792185102039144580468820213974870665441281395705812852641842926834134770653797540065024606524475896578165180050860753954970754484535460922659373815026469345788597837917294682437567359654965479664054308499104301039513605784105611161686025096703641087178743625236695035585654428742136023309854868407368620902868987642407621050438492160408439924821181365062226199219034345947624434759132644286379918776412233867983938748357497208961218790440090489374818074069660872886065223206078091342715859605856055031023732495686969263625235076632045191395214817856883778181837688130607455568373317544612273751916469987898399038590624980052190861670297645383735459576776254978262655964525961119134398709256408734208985018670959926595668726730201418863940100391844475640840213406439079355840201572924794413593799458539861622610068629791666912704494084167634943609254021508367821829224152021112948857863223833973487136884398745782277447002157276458954870119988587153083351357276142211114601087924509363060098662451861613665290648046051106194395192922297984831148953644504181146938639356257715997886090888505055102397161388234107684894321017154212677036505918531214217077783856920606168714586670733822056226782167840013797330722568723770954837902262872198848443829637237036206807523356825003912826873610853279170781034182649002697856165235575579473495502354532181517851737970342991835251664655996669599114481503965342743345228355159649865250361544292690588464039989285499027779857549913497977635341099012058111670024922115919165639050241903345231186308821091434203016669670194523449666196038923751000033738658979521966294658317648717122306786438302368049608807863602179205970378447420798274345078328852352191183449985924117829546857498865014275409666844255951540622784376577864846606515539788137599436422711698974966542464725778003685269437031014973851345924110507933925210821163160250596856862665424726520920301720166988573480714632821567418352161234559540278545132682453457520637990751393586599233804379261137861413029013078376238265290183835946412343062348325390868083374818980203076631199642317341818732750986892416483090572620714992059235789724829656037151984270698255402031362263700888661066482793079925521120872687967794228563032405493859332115240302043106790805907126607450656705842922455282829160076010692844727162526955525092694125378981486063477224942143579006165389913974409306645627957097166716255426685250216685112865226696012205237505189084015924679701804987590755570299147507075837813317230316115022463046659338010635699986059709455150790505775621038763505417874989925753523210687037645317166868818105197350321253429609625588096809571959135586135871757779497838346991858604773956002850138885553083711569704136529584565747431159039481298799283745957103695553718998057271205401377391473858437895532122677526994135539685313841125813379256714373875576603875737392186621973517071468518134065842455530867256823434903980771000834347521190651607571590125816906460052634918106042438727635407314360176677417603648383594680868928002488782024223927167168261745307728698149553042388528841828547814185417262784163663636965374928074292491073337558141754533694101123678037858922889765645624484073838815159106578236062804651075830760905202828743270258338819927690066884789862533378535138013438295904665816872389736848301001050701441704034592476687899538499199283321720642537915824753534933702888627318163898965801488000461997246414324025582264783764826840735226371502772182375982663887835818569844230683469550422038502294051190605551651972950917592691271094351956644081004959137724228290365772972951260968782607043037909572985062437486682177071958017079795478119251313893133604799753608545066344047292850079908470109797498832749402352349165057284634884906981651156773718469273511890983192905194348689807682470050819625011255926954334512003778289327564628110741440572078614757560995339225451845581790494707797472009625985340321448590302071788955528740275305826283403757439842644879053132486666152983278673982687706997156353544612708210491620376580099915127972499559066384502125732664612205303785249596607073142790875074306983870900499786749922818253056135627792999534693806490685742212171926035477914017305211033252642644966307575879957289013437226676054768076770543953098838995201096657871632156521165541295815966612302119972975528547610867954052678635661744101180356119309759048701658696687943888904166823140215980511223696869573589476231340173864332315015607745240990055777998726065018344810892235348847846845997269522698003250137506686653385186229181796147170977974803802513464799208532432472098137551589579849341549126290626752272254231585968619738114473208356373355475676645112749682293456334170152626347103602553486458299769370217635650044347567900501613525929305783143979823491119959108709684241199403539121048311207912440785014547795700302891758659005116869402072312731139312359570460074175500627017852060110353420209455980030767936393667268527161402507248212915745951007498625451988697269432355899909081203957155369616180966223972058411261149091892711699551666751450400762116876505281857665254673738479611094278763182488578793392739269797406638064217775713917504524925837198580171737794846355384628557182723545384354649415192719616272524578625930338051170263296308530981375170714139316668037237242673095970484916223809798160725501682875045918006604465326075864161260175064923061558251224328680112667588213641800232529987060837134209901478305735784105685333039432163616519163561485240185162097428266046522617743204144171301026103682043785366804838377138857794497553734184646469171563775345220837213971061382164639362504425920820422844456586088291979322054259242522147704056909169119209476063657402377738339583645728007316332684280169188873886342000663730969826923821411426013792767617590320596598616181587048252494814746552693254208495267961902157806014466804702770838118746784835608846613937429586996461060817301634580832637479574241993654694437574286372466360222244752637992292041883205445435094472006811409631568270647339332216976582191602220119164244167257092991156884857349983364600505313107701314093765638351343556250822085484422108337997749614704469352077212085623590389310374025829648238798768925066848438889530192810458664983535746410217522489627326516321384053008974338293870740125850809922885590367457948886714892048658905019388844041286795336621138188336174483696548924120060890619480306222153741591374882185859115892448972059302985847822005978112207094696834825077092560927505490637587556542765014702509159625298655978473379789577269211165338499008568003692048759700157988934518030165027597021865896133456476360157847766823618573282589453975747685855284924454677599991350127251947763743064674979833639701794525716351148976843497995710485853029121504978406485705942455108538049655165473653307494535622511637533885071721216913883085491750270431631894643543863210178464654026610312044257164950682909566623420363295201243617669029850598038496987066128382890891188773557387633262845716875330667742788276323069456342844979302303695250616087968191205788593770932544013679370688081673034588098293699815997289033503909153690965094803424742374660064987002193114606367619947287692032301852537688883219211397215199266844240628035878257146562846491227156954400934829252591241231250225672865790666774204656490738209906530780793498654088574899584000654626734887256099681809814096922958193730948437814295786222948197207804064404253433652222091312074063261668559586968152664442145084601092055320449508147006055633764906380725811921041489383707034147833593670351661194396512358502450823880808753040065001460288857877145819089434969751072954493208618798013713325530041917328590476665970337553354017718735428535795106347577093881475054627082180155184458117854591165819683806583355413139992713915540364606585546667348372736058550051841351059842179551828539847985509314724051249307414056889537521017286189329276366027406281504483601396341492338769903668684705745843524264633281987990986610394747657531431191672618427727898464500644229509581150132647833772334339455259856537758615070661258234228211458380273691001965757158133673137216007261837650524377243430965994319510748189879749223092542992584424274018839247418195923200136453045240694234281871860082757185825248421832656392058024759690139717789560199607753182308137219827960701690368785750086141439516166816342458723019446550784883465073781289523398915721263547657504409770664713629116911520870264324398672785317368701703980733064484613045131659020490806303547529681328150845086887023531728371568322616040306917736217333719052611369044499616819105153317196754171755723315872606575853703092851031703401925727102674461168177177372135817411953869916040229249299048972735546379148912028606440769708099525106549878870656932450205516997491032049428472594390392935994225768272478965339181824782907612347294893470279417672243174149534960362206442931894027221549080828111103318323607215801697173410530076722500580808688407439033384801342391514980733269304333521722821243543957830646088960252326616909507403483178890851135568395246331746834395759656848904060943493649170916314367100346867816564601995486397597118143008047557418247222627692287322617329569968920373010502681250067803978716268245451674848186137898670064498598866204435046678989152392187713016493065547565629419809957490963384150849972463830968013036177653985144266662981263465362812872633307966551551734112574294823897315824086607543879531200971833998983826391780999064558767109610938484229328793274559555343641430708775640519801351603387943257685015247598695843993890677845059401673837290009674744107225146555002380759806534168710535922004946447882105779079460085619801246369462733726243879895370748241171650311787332686349286337202184794939904750941273369519215595966010013913078330245185586162811837379709872423082406137655288681924977500189686262114022641275510703314280540993430841692525435626217862710583609629204496563146610111374797582288077697208571660045679517264304112424282391119705630163472371946140411848746928670686169713482165902915706794878678701579734058796494849819753807156790744998904616126860019320576481149250796294366525794621791566182092102515592794125515869567618658421932732616347367930934904598411156993496416274699384160505406239551476330483300959062793562815011351427614653116007438681390638462857483241591691155424200695997432477824472302965128649652204633154819865230165518569068077985403019799902993207317411933138379707382868146860778452002945116302470805437251593781484786718967803496545168647001891293682789246181514782822576562279056494475827498326078398901847648476560515183043758225306242283696678277788502164517238414326671209600984573396481769679650208733961209222002895540435408727776778622058947418485917296199082071668572842865541940104007668625359935895844802914530621261474547240168342209379207706574542445422378881174539345860537680127792114627255616450466074381045107106732758391775310743054140503702198367203291579675800966137177376366528943771095446704825725804518116935926919779203215279808720458917568334547233277331452927500185104501503359431826699645600187899865128092249067394540452994355680210513025053413027029813229565265215486421770811614288809729328253869195696429379527789384103190539699252302041200846793307655770212336074009731813865187419880965745142187910584013759357893799087539229569766443424444085230851615096303913424871680720751140967223868852690463468515082501043452624996423583034772963492010335169483506350556780341375897277900318064448097047528395721518079702996637669197716989358483059374028132462463436044614136065923689027997223456612152646174136702546441622069430962363114917368484151198554429685194728840073347657062043163547124848954686983411419973213424989418189535975954667194806214392863724670643190095081609903175582073964827493582622979793134567252789073766479827405765692354527291240401201510122201773828667609399824725075338801093077566357371403724997315431595623112963061409969844145353518931985480997297257488350373754142939966340211117121710288932897716568382824705993680139524985803084477620809777522533310569407729295884559650440765205744826271841136159626945632627328167478394455200453563068050244064950979879343364396330581483806580182379080919191808603888347275747800872670998701238929598612412245759440275382024138377832753922759843280267935874384730438879869170336166426709275790715424831361004805362902502044416257232643991489072636578114845826382534633817963725464714364315577261117615988248385853907399288031437803560815946727126809720684891757290142830407942592898939671542117391121690891887826927877372464464482266713447733539820425939551586418164110009707299573441170231703155834226985278071921457695002163604992105255387794571009380740384791634391038943655013599086155552911582453657410308074242796142835607401150461979362224069142161138338178476161784055691957690184521027617347895444461237936435329384359832976093503868398540490849199116526969115934176395047158160829310950059114484696264789465702978094422074285132697892750068251430240783356433601754874904575123356263130091420969259267414165066456237955395960542403618569797659074420544271402135896094542298388197827319523362875998580192213084655628756355543124243859232312086768574469328652677568412500379125984687667389962298444931664586249400764503041522121967380347347093086709020677880417667114324720066223948878499166358905987326913742704891221442445445070123800541171039016156173716163161117499754282826730535812333055780839640199666495375278389105413482657202209944184824009733341622786815151514173797601530004547840533679855940397156280040415609063559057065801165570896749772936649026148915179284922898854745757392354577420723021201577708892323493809599159898824177000761523489092911345350564088462419201417036345748350197140686314030108073661600469602616761509686093372132884232628773833661562131487152277200577063784991077993629452148440283499905505770180699535130402006629891954696292987608177128831407685635657369631403317642083069865271111323413464682088173494787973141252810902605788387830906000259108155921216061138513270657337656801912807585316187091540083480743272155694905230637644093999832456916007455465813788796040729332363240249198405479915706452385535032464718945000983414210177080536151827657830436969997382826746028998461975364380837873708288527869705443675912327839713504462219190683784952234377721466975615608740298538935653947151266471622087392144875101799868489675845221239334129460085160814153886776521155060282296803884585994274481531323010024571738334606928740349363177760317489020705515304319115222519525921179755149953256622161637354922604967659818038830388002303798105264897358806719940765475599978653857223349093283930032258770545987089549792137768816604960589553207418071324671816321244415403300537488554713688392750289866548989645794759053828551909488146686189103201634789392965262283089767579155832323717691529102028768573096118166051469542701989818282466230785294691534645681166396493182314491154553044097804691426009578044919226292962607721321624121327599602151863564618957736834163537627278933969140855111213718667192459554838039953735291426706524882908173855202195999655855431219075996819774965988815653748916962926073526317751585860830370845228655352293063396225452962523034735695542907248323566872633273194276710153537232757879237375951541286997531421401557720370100364935042984860315570027790635302620920217343736460677723151175283460639529010616860491456521165008244468353695464205973675858050273961185479570788986509646676377053247318068910077647904173606556004846891292305095994847558029683639712290221249703813393979794925311373219237371505530380376643796796280198906187437235873159147221441408109453413350366469650736962726184371859808873015781322303009950649126935564038806061830636301487488547445520872497590776512895253121787585447045072100292256698121374699097007284685696075761827929286544922932410469472622634461346979948904766192805745799384374758903801065977429435881587637275222155174287851027163397041683195955572898128832637264161852589899810048024041651680310417797182678550622153167340680288751688849253821805860201055488878397870779460136422757622534965887502456472977365452331854110776546132203190108904341794411558611825852009490144263424453008503224228201654382020891420389273103707245653898308953774650660271397969147170024989612507778002498582016285142906533840844417610366412946926273471931965211872297549668654345523714482105405237260534377520995912531267936465273708010433957043385676248762483032641439644887837878520559830458406483217923316060957757958367771082299941300437861796634470185836283251693504700545942088641797956398185992582690674567813452398107209887270301403127677448575782867460268837780094135083385837273201306771482936374509835867171729137238949686920801099677547649671927564335611145719496507833752542392113774197667661422884501836441427317104655641773686343900116093849327552561989349743017614803947994715187811600959918172491527172421900319665919972205570392381897325580606166152252678215356987038948177701528156217031789727460633025446956335870868029095492784843409298611342064281952976058766803421813808177978408434614143624991679091190355429283241530329203492002643809606135107262194071398695769261761998491521922287610573577934001016474457769753531371256438028095834153923529205221501539325249572752464686232164138439014307362106532428807708619720386155481491304237223848003754662477240146772505202858192484723143457295726651707797892532279534881240210387765918203258138749472425271732836918444757666892687693282915127454294172305626322778715771345926022188969980163158943682510946053647906728450649134434547932584804990859100386276853526137010608747904741829452539106863534181294669265970062851217244126425578641128765707519684873383071387728986659311121582024118037190970461058801556200690704331567684792498474476153244036489423865281995081589777456875937499210568400109047512309735156423513865872836137358427148287468632705792560964863596747323354442413481723806663595867787725723164857786170891768078362728691053797586464208775557501017780396173181311733374573037052415517057846104182374161304584137756904518624800626990333196708889249764177271034254207591701113317043250506934593486734360390230065697171090746131550844299293885096437602493823160096126160098766344496833100199556152776002735490864509239655810112880602537146715497286456120924510356104145531674399131215041100498110906983989073618553526010511738733382271665419043823768662425152973275915056969373675095067421959996787637048524267848673660500145943034948222096686231380281473987529732480684769124328889396344860049246057105018958704692293579051881599740108831482525802976616419245082612734910002759361569039505252779561717901317526883569181031576313508702678840261900277752376745717449195965253389612398835652820002016712529290936858058146851841340667150911395964841274791875606275565719319908307721794368991271188146502730550355917839071407634577137296898033062515158186477660057831244861703085654601930449181563063665054416488210107298966244148112413318765832861059395817785547739798246105107029256742506110744351424721557166593598478514206877187946788032952197978867745209117665025418847863097597009611374475376916165674056874059057630475442552383107801097801387409879963690530707035661814297844594777502091487542031390973737628084805751324857181851867424558443569572684892300358617303133439201544157824870225408310294741563417582519403570324272797897913076282126130974255548771086642644881288276320252706514364407388449750907633371396811251651186325816997505599116953489769516835283277979056960109371409569112916199585836422457293243417725653445471905301017047789085318005898781571867253665089998282904266362902678539053387378162837169988634966314895867103854021160260535964516811864437644065913093453780889960504248777067847279147003420900274454875247491664641602951680381556254826393735172174258226614500531184256726750836617414693182876676599397986545741021177239395387666222425327109254448318027153363934010168079232959077042754611974996178377793192261756456632891222962168976455547547049799802755692642065489474624318869321415467745433856986727232177175881024578964705926581252189306987636892388042465333209121792752912315334326695435930419236573095670114314305659423075524208860399340978728942328685981246519765831176583050676737056789962215338868207543596588452619845026876627239812780432742050220312948732262371942792498208040852033639138793040843084038367526772934955076055087833827440451103433601923033180158521839062208795191308765648996592172992815328199530620298756119974241319586913245797031559604183429324400514098541486445519025395211183554480504531607019403181736534715213584701477077999367676933683224002530164661175518683330224282916487849925178597021104490232754682142189064544860414984991518721522839771605693881282606143514064999200115776411197363546258504794773384286465149824239687420375285005171648362896311968148568937623197146229626673247023829852837463293530313304562610720464856878822624776390328467441104307648696875612295820385065982152935604728240105517656858742330050974480690433419920599679454440447847980438342087437646899314903264492190881557621582505636746769910579870954776490622881552444955428450501977583863918189331306888070219686508176305633469848242438131832078711709908851554078935548503126761597506949289564702253640823261781839571803782130744723982661525132145936219673925155227667534922629935663995713002879705949208561309640446395554401885822861807703539613189712643697468520156244020727196520054657404951064266454621319016157751681904856816919889144559833164851353525368163786621587666710653473584982134241415038596829074875359363582859359816374077950903510726526584202360104715412659713116313710269179045950196888238120544777978379412709718217655574457196128049486759722831297485276676371155338118106442347489020834270070718229474232964578327352769712845909022945070265046062246378888733807470580814203705152130527806975677913138338128729832186764005096444823978120957516363600848716666195727886380848934702157509422601994391673528576590317568705125857841929500071811833181375992383346082535219383854917609508917863426020164474514270868287869145983082829627691814678118860047678665597730729563324914131374771156060508712642494078075283580552195192414355145247257758459222756242648463908280110288111277349732832075025406999943914917922553480173793547658577328823174165624099638470121811704712112421171401144892656103965345023169932929357609857573744223218248305605187534523756677705983269963625916576354525259174142476825486513491567377086188129401512597693534714084072167249255681693187886507801224385555515782772534451795530366605094814669516444124647950368376937529024282574497734233448228877216683052087582287413068447252529388187949966181667917897032349021239512915750043152971765183264376790280837844667323656663696736548320091592682203648669345356619694407631629162438036278074739603358498960900119289463479214700673816748664363056543170624018013902614426080862408993353007101678894220637841717547724250300085726894900605223002825894211392720851437796078144249260763555671693144008357092630427190485991960997237399004288913629573522240010585710450369277763805460597467447816212056550766128644719565060323821114075654246456398536411699052675535295533282783593159086413887056740825887475652573952253806109819356165559741982231757032367655493818561919862264239486726469183917288953269689981993518699546260334970595209515313415327528695329397521325265674282239868697114287314423448646973250824510568910933882659829237163929153139669343302957664176785653699367263962612119771107622896885577806566102356984308232269572348303056043921425904483366524901891579163779936674631971910049342184694767468771717891971195387300216599872614800156391962203757927699844461681703731293144544449861649349519653917704260359370262062344201101242583274795481197132306102903530814651255438626557728300156641193942465004604598992860184866276177414025599051635968866633711391100346812467333928654581841646524072642067672641111581886118244597495158325861200739982430394442512341844325659743430618291658159401108366640847747391550489078982800051075322280023224231152078184441896570185268390424538332131582320633316391291522314677232104536682925117959993407071364598031143871071692107637131587901959684367365032131689692611409196713119903760230832667543698164689163811658411452124473972901942043020923808770789756237056787268183023893088835571208596751158041721324008678682387219868996258275790066761378675981257111053828324097019278416311503045649322307957572829434212335193782839786480396017428743758454947297484823428970592153033515275743567640352376358491166288586106005570062590799226191291141397004280905080797624780366191016685595279849681996762787488441013711767220827938632884567258150972623506989779657523780217034813289024283106615985664974586658297696441744820449327409316930840650443560064286053315782704514402689212409448294317566486052294060545855268334062005807514718668836847348235643986504372563344517472175616845945214039253307585584633021305561146460716841692614554025711715287302414810597814684500016580344029513281376080582104408983504049687719056463169042171083037145588844697093638478963908975232063697808266705871265775865593251135465978523430457242165173656898982418213334869175691339655677329925254994358769097449416189952963709122199549101633057740409077403438517944806043757671950308592321073638735557317180685152144989076379877343246352899549254231463476054311408837772561739625231630749730743238620108010215320705332892531590940705384683680191164944798030337110603151974687318185631313498067372046764573002042854566347955182817818486092921730465636110965629829918637794094103220202550522226224479853003462369143060910993212878161852721292676275076782129469471438328337495921493482744488384147721652850548166488409991003555873995479041010301325673840821502042004476736776800303242641631406673148234803283496352264033211402356789098144185063421401684402434251942972628126767739058546322737469323339149886119754724135313415056951605008533446462540463347638886953467255566247763137422146752063036605491331741981139307739288975152949297367129467065585531217113935909902508976699138715726179081553980644427502645911384601335234951828044504019566328490266973069293929691679268186167468219543002439845035892602675846545538571592351532303833445275814135022894847926824319322081852241792535432207717779556650460216573026750642255803037885322886444725867322194125085192468182613115121770505053243323541029672147844156209488073127614124461933119767092745777945138414516070919807522440544329113043660777112769252446933957261665784614254024888514072414309779412483488426790723275832657000876925501518759332622573801645907180321051215730620395997658160728704797930564872854734135141406419407047654471511084438860671379505016926232699438556835968043698498091111176539775504812535725341149568779295481496614559532420538487539464682430713500482647100938762894092466480352106362590828013400004371663480348510273556523298429405412041606906609584422499260742217652205381002493274672954894017455863064856454545173444668342482691330011361520789091642337745178056571756317660511892725495614927065198232314343379307565146057423517421786951011451762747656854453086456598713193431480671167146418352793260614183687658437930300165649149093360586730738172709037863381759468638672927563357998825706690573794678933488946315625476028328697494125250945861086297656660643791591739674551015683539734751927618509856893129180217686685910379781705212098984596443743963685877360058822902271087913561381729903529051140924033923500823347004340963585890661042586706652806985669981144937594052940120488688011620117469664189120234242833897274680100873293836262499550579030854517529001438319795132815733671501209312147766114332407766943827106012495464255347125214958639291271983663873453999658026248093516675732802292766594079647707057045861775472840779460015445969911258614136917083902674946074480853149162574161655550554349403878239413104584578645667749941573546079251219867281082438448997556468820437613898377830635383339181869620112566470029430655555795643794670528813633727578049109969070721494017277426930334578427326734689361007177609984220796205557177823027246489721109838154559788447348234649814194200850105769858714712244520963946118020560348297161085428266054264824670837524089640603499348775168157894703083242513363270305848191463340894935554936015297720317238761190123193202807688030823358043893686859425384293139912100219738862317897185036088474202132069287502448701867198686071431837445526111966163497120049077819580452778348101584803745363863052020090211204632496374770997507106755773553635335366606065873214549506059745676681254477988647128240520128610782903229739188651516100008987344406660784046552450879532150980996549840308610376246945607151528079738447781206318594532948017517105814219540523431547414401314879941511803126281361663957904133547189103916383572348409950512280128332391952533904413105027408058656738585342669206511543515492568081951232565348439103586085835634208421548885962009938466291255489146569815924286884629615296478338870902251822596999601783745035405925595240485200835642313082500233335767455682210102020900695937248884092541608899921542586637176884688794146097270177028239168713167390489072017823777260500064868138059039704190246789034395079929486044273641230794317107594107420276687860388224139581913531855460670133421115560044223630421710697147273058416628024052457280682077794086411287349386753690136084963824681577843541652572359549952325850092254013300121918540507088408972624180949272622506741539405651855543370152806212722976821673636724023702477031912411055911927560916475387515823919569492909624770389934804798767946224661784275942892396344920822291408682211020707202131893385901461643717540145223671244298433120401768890056534994553983694429417066858014664319500608159484773039443616161277732571083064177218600528545545902782823870764421563140293723863649059928930603963722122730684173262379861535575334939308714009637649274384187403741806227713421435509129483803613995499178578166251860776712106584021327257335916151251593679145742455509052583607781641727291879455273202662039854840605903895618750630901250991724659501023448413866566123388858310837187566091382923935186971775699036178832738592905048198749203088419241735587715207845897593964347803331336251080581123471113788043737584706380196355442146153225691604470335852222771022707997649288730594590442554727461956683887370578472312629710453795769178055761967733587307982914784561633460524416361279165372669945072985937976407603233307012952605286385680147705224225885435739595899622357838932637399309064936836950277802081186747134250831557774345421339274927663578157744778147237380482085930369756300250015273915177104596994099170886637911493035034033480679540802330704639402468947583547733451618836191815803870636476487046177368589835878953899639550313678722110981884194569291705010336577557172765485494094258080173935159832571345549346270865295773370271364093987312432784646105771832967854326037017471347096578481340498337343860836053281640342551426322409678516922071217313840610747690455873639393027903427570160468335677709243949022691098370302319632151035527684857500502903470821876999094081157370445180225555416898375222120029105802682337172271768193124253540811750917115717050185791925009878572694881424205212525867137488658379653591137570789320496564994185347086679813941864433454623147559272501404743439194335949646252154281824911611635106467288622560210862000363197996468592638333132534834770944977358381997030913185057227543759301146246529704756062088621914675892705736524661724795871158708822293769320041848541942743354981264531504124966817405499317538229828381735296817691586178955147126679842053866138840915747091946671925671313624255130609541252128885981145522643881103195059390157926345950726673101004767170490406867646655365700133642373431770966454484618033017723948503863827359520259543117384311329247041105823927994773808711687088005245809522901957140609662687042747328726392588027870649623793554936285395266277008889357244520453893379420872725736010081101318593841148289469748190647305264011676227790523812300963695589131154030518663021058646560990036656539246554597083155594245325920228574196547880963968762672922056082714354269586504209649256004036267244871736527803810492458681824522030200152687288431496878639102437264681524674652556528724717653246014568008130660703030626204977064991942515881149286566510375594030881679810203063926563571250672667273411312408655533630575164439262788545961170273549865184747874644279482645382166566614439282829532945983073161808270116827248693844207922362554794170173288290568337543023523082414076390701745674181068849481539518939917715042230972033426969734150589794387063687243973237615537193113518148317819930161470950948258091342121702464692381398507107563731392762674263186379431196303193054386434907218559517255124611060806141793520614341469277443557752022701132931073892616551098090090223237225008754042030875353536226474818680296217767971697340197470133195926370779585562454634450718522099595647335401061020224714706144384473429399136952267768781959710966590306809489038579290891600574787921623471205826140107205415200621064533264937789291403350816647310690203133990843842564186750557452617170252951696753007857982010142793727645916433171685421227403451083052740215282993816984218804340047224832775024850437570458290763271058865820554575800519374908413080372336179881512658613661409640144503119538435310238306708554428356751221108495008503213704858505407011054574215800276220162359251471178699029821725449631175521812027057558157890879297842177403192531167674527671366534710454533406086471786577629769285084804877779888281233633886377151184218071886219395447688319355219529074770240134059695474844658640522429269357029765553144780146394651869268563192658593340453202645510872371404648428609864312257463070996056306649224961471348704255367333026086496954335512570014774138582074567336424374594838028833950371943073139093434877685399234407291683693981445014009960806705288962741793487750001053321897313431746832663313091432449592528458574069684379408180833433559987939359749515913123894405700694651806197568209046490091778201534851923377368156292566423886542611468747036768431912167745753485609415250653806550134010395650127099809737354064277487893445981390458982673946090725214478873747655360578876570386220973929451714391507589104639534670727796714581401189088098555297108859536834310748139006092381456540461014533961074972950608212976011958039982328359035046120510433208597867675978827274609834745780204477932648499585203882834157923312884769666247811699485312480498797779758196187232853537748722838212401325976182708071876834387650309247431375652586606816247369683914990373719097444309714172872258451425281605988909253519703697421470784655154008754972347602292664453371905419277527485950410813844319947129807191409326080152524489852136789948080697684655280180277302052396539108933477860539257826368553183177799077007600103512065021473524102130749030619649562723870591804300205537796450361490214052327755226349048151819249156121962454446035296478203251027227144072224667032125547315466552141351588181231275739698540890683546402924349040318387263439283466082784558399942083082494176493680323693042907317933141828673828165736453468279172663686730590192105663020582371074535048438912933558973494345169460224084133771947173762018289737554489100839127399334155229208399526471462069836912014861025362232765697752309825962112603741627292898342254697369286409326035966710974508902613839641472911437487709926182534780163223394663189095827094493341320143982046606298409354476630608554549111059324098821728165446987773995311561693149284801696603384221640878408787500705090348297943529490759936714148167110248600788318082612070378059156132009538004367188245349131963525147497878820027340932684428090643357491032149375779112074866549689999739666065689422084371327288746423655770012463399405280175573118705077812117113219839697342811598985257848374648194722505485130468070765052456934665846726321429044003706932702844664511760914350095897876259630771379177876177453207026411315285458404957540603385618900993882692726583247924417802992263117669003796692627835273844555869278960089352094006272084336795340325155945597143923957321680141047809730033120300947732400204983796530874182367545091131599127690413456162934581388339161246748417537750785760426056293555896958264285788530060322967294563443581994773627832686125276830653947996102089460895292781890350707840697763398284058488468456311502565780776421882471631093999256764385470615546295766211188184231755613597668345342497464421686334920785816002803757938967285407053706202425425445726762513635951258324517725058542255745963474945313729607395163670125288952159844627850787019975972903555106919590427765338610247179860104344124925124474231682109788437957992756667739504100605985347614613718698919881899706223892470935527885150883562968237285602486924991596179825863326338892782895974841730695877739616538738498612374642009857046965849042648518688753830545424172295418916165605623475825982228805926055217207220059758826886385791455500305221415493304402889183708044490722463994850052550978166910110544482943548563612538370479949302829827065697014859453284350041423848482581600961235909271516563546969351553644252704080382622010139031801110446474472114222983568695545448142623364003581207518018797209251353908227307395489907828289581983295153044150751916898345485626691202496245461487254107019816526860503840600792751217338982872722206390539545688643966043103734790507555857896669658545333844661562945682519388615974453495756087160559654538717553224546863683350078920602969670231387375142525741020524460503317857537196176526070170382706577623745918090289079942042792097908147591266816833159228090037490847601224296483407591686388213941521638559624713943435660509997969726855613582617951925061003552490512544923398998546637876559619596080167846795727780518655765154094523376006034768082547639876876270693901547883168270262881210074043783490011887534012410697351314292649633396648891524845103396394298761981443999932507237040871410516565541764598662897195654752802942418745203076788063845352190909255259737324182517553337384046649084599795336529907070135656992302075874942478638136713513295500011657253330208403249356731179198886758680221543196873145321644111301300781744934493079157208356048827904498166434986882364905249069345650076910884141929098464612776926369784621422326739884100821987856853551504907381632495614006996420741235945186638079165905846594397519532119424653220886560288157075214007198360541491530014278719605258861774406281422446007717878284514337911057978848807264780919590865876976210370830659918914939244260061242212283517187617199198805283720259467155070362789110843374389734465235276953632593143358230276892623394285373726975044174493338909926027186925256317601126318938664018834920073683431503347911621941931047274454196534634412951539773874335810607130852000449750389351929588038013504344030437324909139238228525013643195603509140106439811105740864068290964267291529381139527922858489632510998353708273184281764294931670813368568150594185632800944692380695807005027623143196015035009778183166399539746079033552578550529503408689415879330964081464219019551700290507533366632075491446798641173842484880104420814118187571950267578184911794420693118598867101900872741636381633553106927352217037586974839207066639311703416841327735064777355396318020548196367488945805900165471070242148484513089319081771031552880812340854232192269056130431605397084034196003895861372406872351072305017285683264916054171692681156591348207369473812503291389127548111459825312087603295870492204363046349891788133572413113888632550079521737776170137013862321171835569834105045699175318950145306387471462832525285273873778880939320471950685530602397231264199124717948252522922607397491898078608199428629350661330025422173984600590048793498386329189224393247534396974309020138358341446729633245036369930512642140734011457870687300574278077522519151244213461699546957466434726438389879926710087925691693432335894791162129438999032496109238529901666988478538010367928505130037656416134535957928425271060860886461445827047939561125326217037787831346145982205473107927669477649476561400768325085123232488749892873236210890992335525572452037091703845874744375231814124191501622845208141544421650841116073695099374850218915570698244850471071578112529779541689414275065647482585240068421607206923388423526853342012296383957478697429477990902350582718007162847448526806271335877419068391551902957125404354773533185226649588117443383429264047098097400740478707178949751717842422257850693763377424696356263245745959688352197496794172597610939931351845320837103097162227363028574895516326579485627005033542846416518181403318220197353591925884801333652267511738107519254468924239669909667872053662263652078530600998576350232448457552236748809214693872005041461291937748943475215342596644035032150167357291312108663357981437205966654757954802802172877865205189425696461322884839643775539402913867121873658775472866925889744548268688139752142211578147610106200512483092707063467174245585745931559717981747778529744883980080570155581751913660866389712946419949121532637927964950247809691539196103738039720232723050619196807646572425500905347435029644490532735891467694987400032486967389884511712079654507038187141452278205268711447055246978837227965616563257459978120549526768332116239315810796829518000406075494950571310195727203919511990708981198836130188531486076559968408899720144705244596972188379711955278240106602369982206749098445304668833466603137728254275238680911022820095793013145089962637668367300315526759623154046779017149136057629589062496910748652440730129240075474549043531469442330555336499932409481610211027270317271969455423139947078158033480270343143792066186885465107147609304278259690891738216769326732621389240861310520576191695401253181908762375224547272865367991460884981983515975166339050435558265949442444756350049769867590342349002966850398934422741090066181891979787627656523540493501066927529929238748799716602115318397232621368118490841683891618996046324340959716449677896985899381323858832205224172248771199826935557123821492337122162573986950544425535276390625895079623539032674000918290498478257692774588621417740706551112886832122890024567595940040839198616156565449362031729490463290632454023670355890391593125115015141103376497151527294251444907424559077414378650220488089039630897767864098159577263802945525699419427196565524743722116726869456036531323731650017672122599703507237094991361389027998692321518934279516927077201875693069053097996820698320992061767673350642758266280078713612362984040901646555681187398033471966640687633349398498005151743013711199093953143217622471562231460283120999962746310272350953443765585863636770613391927731570793402356396642216572078742896371901595900308268026276499583994265109021699665718233307750871548005685533498035370951869515271118841375720714171523748732713254403521793122719502126909147352782464430390512550809993335566291229222497519150477373418348072058652016677090057828473137150872544220807561182686040175984838052605549373175222892292308165479545457338921525349566331214833107397862473568983499035162318659029383491510092848718278131505042812616711097252256245883541162792412410355796468844483082747014373193370800414680013413282939245307960449662031621437248434076583120500931953866523352746142594846574136706820422568841713807365220021912376107491718040892757938856668751263767389187220468937971461333283327190164402794223051972476563271556365204422270086638333211892767435437132826960012917189305709465665906867313288713969137718420262372061740665840880605675670675172163743931312778049395227229771665070684029261646742771746264917794647001976204968831862301746059089317425327539496636888320713417186934694803453559859367175154158066259157001537631186732145465220572178519733090888966531174883319847064428176789042201192141615100303066770497341611580627461273098610744275054482883164427873241739829614093647094842872370167220094494296774766151629838185333167411581406559026199555200560724142411389408385287844067153722962268477957741744358110785742798122453030923741043357061917851865798877830806603330021121421409129722469877061004238531343868228699856400994272445842857913248201572727360101376979018090509586727869028825027590935890764311095322165703498163842167619206855157923621866530509083640995497048173215339007488699732133102238382924648186890650264228444548100898810979524475908262177244336574481887176102380134223054328679376120150342699229022604032648612376715776475508452444065179835965129528268802148545960710735192607807016280386722049920087650913901062322164489517006012695463458485291610132152296013195012609650434182082978097870705669880902177025956280894902424295025062638947244249081464034041226525057541403245321726572478248449103689062921381739177843713183405784347177713760822368078137767065722555515697934033410916524121979585953456695890903545543301138579239363088959398015762411030328974724335970756004474848327954104986812602100972654943470782816641049832998878224934338953093333174836393346350494678654230741871082710206146662398803143248100992851720632138557801089568984993546904980921921791065837675825716527424753821705464113878085263462003830023537402644560142950776171993242067100879779280203495442076195525043875029532872626219701613266300602883759553537052277664551432987138507339103387039743464136330497309418166612025663719196367954864132282784545015592987509362355559276329732333807708725304658189783560206304885978580167270139520999844752905277953901901464197623910092573020841816430857744557930283565274689371338244366513265362067684415204206867640216549654577704226123817856752255449861304708200928695730013271404287934226095039125578969354023559733237450863790434654504446404062087618449760680152272981154671434954969445902991173182258088901762477402182732178235721336486126176863197901688899337254134637453798697830524256369479092740571653071203434840781450670194404326282213920872662314053496022273866295628327765972369741652233021376524379353266031950957630724978741692783756534047197976166005744756685321839532438480612778672607416035123249765696332914245774980300113793389819813989091181161584616589751767595643362228771163370268647313131000883681295260333380195762022120548523602486188555022992714629744043241039437475067493919247879847884459800901450079538709819633823291662210181631176136649932462602950142898971503216251306345653782034351004108980204947488247904048417884842698266253803367418154043464806711613884831813337484719179052300792289865773309336263871986316545868694250072536122915831356129703733221263447262362998562789815167414881581317760930086674024031466917469922414519234063528798292799267722041358651856835269825862779310875932947895765615239496033059851948906523117034335887513478184143288119337334777463193167104806545024058667206977127771969085567168502224665970648585289593128671886072963558865445129838463125798325089449928949345808807035794732556890262343354670807551689021377532681963748833896889893606392114618708457740310593048860956923967541453661626011968541903320185864255830884103155790663194985040414692188909066407106779048885789778236457775298993893687442819085644550180985075616933707695907221333607581469560748798324352508392784855574342930016298313889436982543249030967618348935924447937140423636903093023703147910339247072647309599700069439290931785644515004590104504975767867599840427146837617553530529400584241788060305320200981634443321777968772460110039212243597564838195527523221149574692091389582860509838387560737042010176658872231936062133040050558654427767524941845903978949707593654380517631457523892505234661038591298592052823240146215470630695684739248544737714379736367778734782957133471347244372465674760628614516717412368506993231833332213124484531630625078665748424527389765836157779142363186779432880461180309602162595928469114256009554503702412762250250810582994942194852407132723452582892253941566030546377210572962568270431583758461380866801039766001370141145025290086061184619212087226001619364209126836256632881745653216434422992333621492859986641159516390301918498673289155374651131571445795534681291070298027615033869702106631333895576487350046795331071848393603946710278643648833404922274372814274113688379207430057920095638140416232770742063647166794683179677149094668651898768497181783570361696157569924042425884147144369701428958174111916041149981694553041849212003666298352955086743824857228247276321208153360646569326672083011844410011937029827780510149382860604347652188443853730597234324259709080963833128821174238872558906302728019572605375539082714935367186490787553434824882733495237867080846603737024138789111800134394513663693401776008328204845396180136479358247674529193921112511853336251437714217484623070470658324330056510354419291394953682852167901446196360509168356142263488790690944897424477858104320327477832657018783651397692063611716292207791066186778483041316499891213303488220808657368590737145610345482008494527981483928064463240574395059364689055690670520773969577647478254434153559600102191938227406981231511002312882472537140251295291642924888670685885054987999993716147193439132172273242105215103654096770133187510625658033561059936330755887413473109619861946335338629682913714374173693329781079824990482517705867104751580854523348343010575710441487536423686192977997168933666224878045249615312601717012638058922561549721554394699133646625326374559990802036577133900254657971950134875691769944495387666407046498674114660922514236465971272298492375738134678109281663795126565227417898373681268230085801167624526929361683193779435414749362882073993705660630095638528302578160612925908113962111782930112213026947199707178334303563839170439876083712507012899377172050561011999053110231561045544269445205830197525124076523196277964970120407550603537920624037848339644512666397548151960255478537546350962007630460928481489375489016007909160532332656335016360924911350076643415067567937998096497480871454325516380465093503078857396792269319102790698983020933670115966663749988150150738993333588078854488859617958680373648736761287841250269864461415728840163632418680851299698498268711253418510375823024636317699575700549732535225250502993945560034189758358348043395098485844030623361199100332878837701745228686011665236815213257645995550292171951946462165878944320704372874749760201789059986126568904544663595934999135724652330637051660774157085871881170689314744714481808122854880020084051257966999555141370742143873349486699997987170590040226931894445457117517972494018930009742452915224637401752499158603792440133909491168736711813675291719632861505126824376441592529485301666453649099796931378522869971147147820471136097442240525462785533417230223493831724358750418432413662971225082747589587345009827083716019392096998023991961154625965301427666264152153252127327944385730235480323175373691047514394393239327729551050426151317133281049960913034064235363459108397053649861248032304644286800042034021511208038164992285173384330354732444104306425388690090573143166769744895406383682818945886018251552617704838287354928493703332387536251575226515785808111031384250828176175250041325403498128413247924050841939231768443910252419378033386298497002942996860259166560593128085218436213468385805367871637749177436880445649909967466692375450268652534123669314179113473417146019087141604625647924211138479119426678164120255338582207264293660493391034895110429618010200602827160369707679967283828253712623970262422895415240070935047528579559463634356511784994039192148099790723944711484591720757498492740312507729062359569934068283060634397449145236585243206946815495005719189708130101925638366315363567308301352771927071940401819415244596297228288685089924319658095925619369943349275910550468723003875576969979048278600895002839449649933665773532961002943226678825154173608420200042699349833131534418309118606883188343588115516257759955351023619299823995306388511730843469817575117877437975836844238249965759103902071332099939481108500083607771619550618652860495409508409652591955017416379927290806721949965865742181866965763267859544235902492416201686679639326047386763211835667524249446279500069264400296552105300621639247209682546445814758208656249669603534923305902131539221045910277525011551121065527846808466834345702087601245633137388593242714969678283180556321646991267474937569624612791556185626044448434557687063515326131252690519318413824856377395944646976996025560568049359445869719776996971832433606137832877653052649395902313977376713963046484054832388129718085985827276060699787799322364811332177469682828467118978673975409024295061658195157671244493540881855379198625302989529417219197624991137110365424829514746367853927105889916284896686702016560615837737135823330820326515167421619937442401426985217563876405226207005336758022387977361709130135545751328718032593588088715801231899578682361023471615754393854123398511596474669963023541306950708393461926156256577775959561355015644709999926053683087233134270532253346988399914551008852684848970792131854556518636497805955314044230531716234918967309156446001151912260162856654744687041162955630433975676297528832400932930780669630321479926787542928319382846328678620622707755149872318638722135144615298870318822290593854060618991993315947894032394494935102653410538781161778637928966972020864559980247350546946537890880471593283097802875121166124883620550967867392148914751120362981872186120750501631933691838020069320566647333774643386217922238399119656624948223445534316384680270551131250104173208315354712822592719545172324185403407783598794826522872796824828693407663465663171729214112120721459800666909336189931265248458709354948447183500860070413635901719307287353363556684584730120433839217090519200777410472925147361578184783187226700883802586543748340351097314423657502860935489538750223768446197259543417159779375580178064952939316700810255825413512865473566852711410846206174064466267305738970801379368628570918128284499414742650124969658367842067855022825919766554929636770610381862405518253505168118609980603820803803596734163226208037361186421378533431866125822893019864509942373784703876540933221805316028502085912914560300073356671474639974734369929361536763801420210713293526749870887971431365490679498473356216638090774730794292337750355897586743820215170359315035705777292551889632881758281686081533215377421938372381104565890921494643798594400903561451613892631333223434505891068174917365952636203892794759562594669880853577648222851838772550238071657140336775430735923898871901513312734684467140314451312338270536822161908025762743207975056550750590285890886948575859219542519661503494861212629196049969395817233444634613265410463480937939411248317985092244583961330492671608324921326703160135226174514164317993242953173992754865971308500444155512654638185667336883342929188967981529775548223018786405191800475532802212291317821142847891115925842046181598392255015488135453278152901725822529707834449550935141071857142640557452043689377170765497721554624133943979294613277449040937044946595595417280058786459094808943852637660311795441116811875706965690026020405108070255024701943130671336745617509841163241374088776569149938444075645446035568000276763514154385126927002561183208538996606103470615051225810175834555654192766508711473834335349892080887509664701504458499410520741004922996153773596633013034879780544049393086623612046343097212425758808915863617375217111609735611238833035675499136906097086630501538168383891593572893803906456244888587980989934648912293894634559789278596708598572865052782665817279232663346382427106565286582744087848705083817541527222002297051758168666883342491653446204632957462238148307770129742468936369294570423487570752451708640838744667853847912939679425076324874426100589184450421830116024197506047819248419014311870087801481204250762696743603119092470746498394205187598107573091523462152607782103625508889596422382218774943727007969913168343637984660963303632015513615456317030532668427608952119202123154850833143116721281464110926139544774975109388545967343122138056142614638960157417255492005064223125505826556269549708109528421522383442233503980754365178479625595120676923706883508448189281881390736614037360075235447578573609225537140855914063111875380378543677689922195006524123282524842867318941423287976470155775318596327644819687855857857862035174798224466379241475965994109735509805931413607062437962306036817620567164352011708244394848646211896757755421963899066143129293440801636777306203073567856396780879577593659758740985560894672839454705959175715613778752535440437196508676680315511241788919533321482452573731991768024442536868719141743218904873811357445551304754114565019617165729024708567388725356948005546175003203973352889248992131874057200526725890918856695233119513442645296116060111559302084090003883919224263207916484880719434802081490371303193432153268015422024466036060643348411857332289526434368177043977244688069839881932156626641500566110678525841132829202418911098225722323060593473203377769742694151514313768489565102654722583701476249609990742998659120322316541685999791093816481345557211766609418943602662765485666177460549532125938260669182029616514620862251395676677423440775950682801340819694664112134684847963763324600983717240912932858176231355382518015989315106360745968508691856735003182191807273105520087873362660871275237085133402749475282867488896036450551850221266436477081733514646995585931295120259577032516745276771387586353319543495038822556258731836302958730447871138870391524402494715131360262996882846627147150567519709713259714977664161284374465538527477050438348750042239904272658417800929463004116992626203098750901270520562394674394809624268908437288690344406908682500279674732733152360776814579692661659267352426371149965937600121996985449879592941036324617899889268090604970377027062351791195951928670907632512964615587857862941723738824581958612203864685822800615860865174712704773599547138377327008187069696842938316416156845815061528964779716000695779955978462392273713863695295934356062792503132057354009139880434481659481590155445989531206986952259153256495690145336839315082088892314833903683066034790795118119039132624231530670576417271981271557741676313504124871029323058428485772024511721993946615748104643886181575194047399320076552787372852539116686634460551959791685548098957287284416523468253243758610245802374367911609424769409310683447601846831672781980388906124871388200161894833724409375980410323192472902947847999381918314481308236751876913801732954709285010533763051300182831750981238744194911352198405189773146595099421011048302982079703090198609120295404559423005575113716568248520258528537755280922644464892669999169631470300591010328697308716810651982688969086746387655738199248795002809276915473511697154835082563162904609202740135338585591298359403004880722361848373546309437824049337255072310370853654292782894031361730279668293563076979917596304880492588083379454028173524005599205177237716599345869761634879463721398572508069957752156762346597721933560456007294864660716697429940626571913600304837603310192469166354166342762544250745920397970761722105302195038674257359115783253762235717622317493676849958721330583708032992114940022082868610895784873412486115886959076609855704605100952657099697723944425042659974909407932565154234567967195428030625490219779238460422715314257594413694851456362726596409742726209296813433511745002578712909146995127171156907015374127435988352524047669293680695677309681106465752714543692348442443498285507462425864666916924201257579712951114007688687920726088972131316314966497708911506835125704301519740167246774917742474881465026195199671395121794844186912844786907091957399203201231785985093668342101747392881116951590709500877610891755554670850387465892407595866809699119950680734610257675425849370901954299754432816039926668825669059648273745789485672316916769164502467698821343408948141342504980134041186783682954864369073446803479007430816779818754091669288066784815283548408915050903701855948854908334529455936442024396342124183933267616146853027899509182669331476784757902885518176815043520700782581120113397729677282402011066039935730628187158968581271236929949214859445258850866183266231757904050675950383800253031465602661287903006598783611611141604358384901245201580316456800600693809007508775845724405863145713733022368680843419531180444758073199978859335073958384284681326326692472672378941975679212268990484015936057797030857733041543930459953634350321344215159754287920266236008453271322489224378966175754967104514295421649719261973644174294397036463790246788758967016203193877148638382969662260602255829193835339914661232354217725712054968445805146504340028111089809109896302043144549806994582327492117081769648058259868175624578268575477449916430360288198111935231083147590306586999006851950164278592524854789558401170543932501465698956363587721645425840051239370761494070484219317110266668425524334468014608525839968227593246002797221516056690577516210944094500877141569706440609423326767839923022607121900289448737940929210071644839841228142525882548902272993072148625533914913881523879367262912219375569715283770522144000573519582231767176529320438696902475528349740893304782959754902956939127017942974463809381552924010857349496853447543083959289439667250809031248704272245758701641653294956401925795248627639591315009265488328890074010391712915560938465704102682393037713149764524118625401094358227753352643343892848496730577360889171087166215374763296242075714234711443867012745904976428968749433489998553218719698204655513712293881827884772106464587804522274999000565003198191072583458682218037517145823825566117960845505694496530254939079404747309443665685133088077064663039430197023738807306795149664335990634284428241212895260681214279722595111723823561785807135709765318574276231386792738982890894004939947158477522908975551336142655862780663908905665896145661564934266546537636183506993423706108594518538502580626928474009886532500762861440643689621643073429628722813272674468970617782113118784385619922881452533253913004437671523708070012214518362074903992467105108821538196070694268246022839341339262057503874624964932310295758465071012257831828260652727221977600871568907028950905978145034555237799318837390781383004289551628668907489273915667040157469937413131067043125827533520007607252633971166815897464741225023007453894901962338226730475822231529703995788617597390882220581899510485092899126097304775130428991759969018092175922246053784057126686723252479723712452011315881296280761503477703958350926098881579870569566587271693079813677399225440025194001346999159275530569952608918069492514194681439523452064007007674842885297314811388040661512444728597101820178301916518364844008226328702783296153888843356901608858880749451090923162091106644539641116416094492598311233230017316027101278887752312976316789327788325117033335641071690913167773698450992665465804154860375730327690206933616638095373587254616634066676565984923308213504575271846982265513229727689840418946392548710055648759718601001926642498746342754129900689604918641762837245052474923968117111396885368920887625029988019583636662448327233322357323579630882247778654791425973658602925527313008966382744080424540323201437756031261678679393522151357736354078328250463967353840596451307115601511054872319811705903881960904272677658188421512120452951716538910884468001397370983325675872359800249494188685770442563258530916588228638801549780789280347455193992728516849816089753917408142360586505290409600079142486132050235025598440878825639887962013609241083219913828837875136644965020180131602454767751177407134305150407396600342140306930326748553579882518655426578331986303581091230250289979208323103625486619514957165932993601667805367633926028189061050566740212373034474844395493559252347094771800372300965631793980498958783517867073326363806647837786475991238702222423074811577627613857753387585933633604898565598311381356199397838504497408812281448762832226991979434067754448737477610050697135716651427801729287136648466055436172083745010162598827949981548136297924498637847435192806244086949396278148072855807188037707737966999926945902388107458671527122053981341006623537394253720305580047327063697087016284696190638144627191185564559447208364095649883510962416365308239724497529572217303479655165365470676390630585673540839399291306330675909069022092908011644979461282093750577600017209712971534901587095924088448631147821420149714605543821568073680613921453312793343401118988058991648649652864453766055986059620478525587376242917634224977997199853803676393412676993825786169439648821317858476201953067901196385400710519543340732213428327886957444159164981155016807592364248714088478155251979654256561923145562327857076785894797590147812281388513299739815519841774345444792481135676414791479483464160689492336713432423195161935548431933685991870676051701710153665728622796487430774039611708499747419784389335679063331988373162310852970845997057451388573939500634311681198370367872216750955193157856418680945814511695343482777293223311637418379695716100464577449650086847994189986865001364196268582024509734147113099738219289632410867935668606440148259820615339445149556372392201515317080980800587135475871039846986541080092734659905498242716201586434926638936000867720630945382523176118955013906641857169335602629947021716098922935907847313573920066269830208487693295754917168099433110399564022389982039293655124383031418206677018501900406338126426300011488859566627099217723861206571856275395903003603063507347183188322018071769966325083486076529750681829736367737294176993769070444931966620181484183409097357966177912206933075100195472578288443906724102767429775565311552733435396842598904036859364937784815821274997400604057867298182796012638965120714117624162632095537926886166619270736747277062586928860624370661075557884083508992529632230581990722269575895188276438523383697987242362093337275556376650399494134988280042006874412784774450861420480192728996290360182364228215136247228146553074137884166321889186087520700306164418138611587433516078429547333847996195501340973955400464797125039120545929124828883524414555006730578002401130336894145931274824151914580039495603794438310525168344630593641308889081912764700309665080992132878711375301667507809963324675518224696452926702336578199465024434617860563623039060820644046284210149364378769926773082487571600451244962991330045395028689215994972185726965394897833946477415366047995992447227759555446827853309657301181238998219204898748479632985123554956917195060916016359350879665935396052551915479506372981917155743658000349718805194377982495564644392144980008419208985722306244962822956548666337866829875864185446045571075513247521266642903256228793542506458877604551272893341538996923058829873623775802293834147353507141422293548819447635628222416444727826594930431880748350837834788311196980282300895798081967726392280421969515089252328433518230036011525741024200521086535818253706126112672405596928020081362477456764029539639934667392340401505665879305692482960679822805949344454409715988266895384539736900342395287871090833751242600742314991576782536212873639882287831876661649131964902455471983219440505587775627988888124460475406898833652488876739497497858880806531877725117181473370630778879523026220109022900424738592784224542977367243912431879253751271759757033325029712033549543688278509606922003848151573094043164864168487392192699282952400623241481577217941095789921725320096209235542782356067336757803879115786023607186823930967686607061013614291107738791373576563079642308728185288619404319137014182843696915437167152149069415299843922427774120732861920392465794333963263675013977750318248330231332433234301830507110980567645135650316722168758402163467146500245763563732406555721238276288350465717734040212373226137679911507284333484301267732388909931396128264376967109890787061067555284148068279677894218813954497735272798820903721001891561514160428205233854932791715788901945644728782914165011158745761401471579794168667145850560443006882670981087501995544264380986963733859481284960948377128380713384103441141628156565844824447295463837023544913232717560299862909787666447644405860667924852252064412807288749290891325640832801408327817218564321404810059218229957864686406927250024537485026058686344103979614681844436863702079132178509581029722706876860754559704683093968576670963997714686954484934256829928202250521950149234681364142412321659948195703584663182854594905063429952007221975463919220672635653236778731107117300960233616285241081681103910917231626382918098393593855980475736693629578981669653823832849543715237094036092940809049654163798760483744633226463520110485698242413336119537040416628918449086843200293000703924391919589370369299350393499027392158302794073741115615390482450436856664106261115894294635170652744341087442452698482018483579716723264628956969121041795129950834613714383341021615101189566349803196391021783456984633390054011907434141814356924918552011613200990502659641101697091238444581996676974073660910590605000249918265542230613180005556652291315225704634064957285338005641735952192471677340484078406609260831715226138283608332404728636383763769299962349319277915276738167563970228448466382592763885012043770676370826915381587799809619814306333018176121011162754219827994037652286353133903378460572190401454280218024715519761528065557781993513105599092645903877449446629796219679614415135665551468396755159652957040250458410778442874366924493996725087367813502128428681557340061013202791806444861361905056067792376815131434499433921639279837925779446988935757618273595439228623142983731879687275174463596017573383681924750357615474821526908868325256924679125213582278016359538151830623604428092026042314977699500053178981456954532924032400632678102393906493649832893817144718689324150159062541035064596740798424908059634535967590411297372703336695223530153184206030829599939596936591461836210932073400767156102425934948273543957565094784342388398509874657520628568017344885363734806700189097298461992468782990257660011195803032465222308672133719815912022019950087056741602033091307431618331567563927145186942524653012919257898885087300344153051755725260700048336113471352423290542331419065322099043704234550145681678081561217901258143623022960460183910056787998421144769020044111757179207818317488465304816145330422258603799409530903789583950264719261149072321800019183865748149915587685083113277338719492744290200883774598408202837712373971987005533631960872463522632716451803581241751081258116629121377417015713272400381251732332799313994306299484773501228692924469684780154251917533788128246634485010082022547399261155123809333766318853008757659953117851330145286728762334726380578066053322054677048437340671943728673115039696133723974876637674369060345877818117480478790888401699042987366033539424749361747173538123340913157002239162424828505932466946775406554901701808688427764737806043732562479617965889344141595645484773676024877431969651634537346952899336794844310256065088409012065185759681697858778828232116878505678480388599784156903385653620710937060297211593153827790278872800468775986771167762055881542396153800935268355066604110335589733703554214313636747025263733264121202310353645857195124924104109079611709577544397783477837621564123425179377573494069710928734541555286509477379317688498191955317865218266896961046886484791787906306650917281983849472493670973796719400623688789442154144426287173240373808863025250084672246328471970245332139566726822702684258286798594479347394500774913225355390324138869631381612383506063586608154093566913852101687830052715145858113975873786329609702490008736361783321402792007080191266577714219738111055643894964822152323265507630673440201897260967041948442937097156618782712306651400871940481661579080454048839583168113341344116975631040386793686543961194405316757131270209745307040731585091151249762820024263417034919248398968891854488881092200459729973995413159200187418815706474338434837455688633861264013891697860583760001655948972856884092516359087131559814709458206349654222774433012363520839206462686208663962783265358145659653850575656127367268969319738493663275458417327017961444565902221113704945844501605748371106309416568707197123381194794479574125293393177504087889042257915465216260528377879982590348994826856677998432116215999679738335084923101157509761762873445143747418624363601542661054267204809289689108851642334381972458342315839006492926718230783071148772361146727251226096053172286672472801514578990060064199238785709263428346042793399455020500337959277297519196172831633247541786452608438540158313464378627894160464290786782749114344705251772097625919278217293138308184089805243527029876083513225384117818026016994575341558521287851708914256581464787301573816228463465405643978556373924455796829654223850528736059389607807821079033223498239383663279771607758401531784268467833373521531010490065255403752308479721593840295680089528262683348755193441341966301683566055408697196489899457252872021194696887730114516981618314745125728002009323295529165075844811795937919470834537203044897481223292586723404707607857774228592570282457664155687457429821827738655029049911904650749224952222017564684160327491158546822279633682144502874161657869720561197926132529441827935084294261458530509776973214891607827315351923568202986786410082887745023111548764397916116696264144641228898772552837775006789942837786996103838110974418004866963562910728945762855058347115190315863471689963135613894654446600693217223085096795791737772416842892699256799836226614645639101901323292937315703993491804698664062510840523531533985010217314068883818674305603943045670305431580771444570275904875990345051314211311684698232533757789825453639991084112100895977436284806320287903347925573097583175656138802505359881107372071129407571252914500712056515407916916806884567718123563894361435644512590754212507429679072586354978230557509678701633338207866280251566418760638557885085991683890726651086224987030651856865505502583440305255592752300055217765838552070860571668377246053624951148816264378860423222009646731567032124913665410074258319438314586821839241551377036895934610010550723671415257699635856195630309166082113343984715424886567752022044934469869740623628670180757507074969980659537628088356628831731684825087868746594761181539570300401827914265973444994538595875817889034693736428363419085849880561803676154563967333110031670819393004982103796795276793844547424543635659990582317083574399748431887597398507237571115211336267521735062917307663298327918226274062021383077285388029103551750301055550811104847968978272927763923187360474921094119878020351819366381773048024385101507005989863965680280232547558450231515233633717100919715218500049267112704078682386467242954456922340562773807829704680604132451914290203215475913912319505696980239626043266451708844962030716752473933603232493429174985933254067816409297146605251872411530327386770742028220863144437355152012527916394329039941539913369992266885604629574168122883052376255161311420190617428334708405604915807203613097778354412581585471217640859608143992013995760577809734633622924267227712646722597963498471902142800617562546375872839834368233537976469369063629715175482412626167515726491795191573803671068602619661984456875150948732243713977245667037473486790779235026717817889494063821901043120889604294534336772846194425234402120773396182961298517453094365180800846589785940972050441904841709444871834184953434674916632006894294180386604688296070320538617951665840265092560887511794272018450159177993465040162034291789271701151150721629683548160568353957941455349581551453990676877886896485925431942853184252488643144030887789923662122009033392219296043743464445282515354707393942796120798006784581390338614996359408254407045541781113826780220066113579991135008290661253625865157682991950489334440609883568701839686389552384566208169966847892745590419986286625409665226029363978355092797607460818874956050206736495204903775368201947761016841014447554129316829998199861538362123742151681506722497683603737905923989171885714374352561934755523405610470513474058241633842324846572944209371501745791563391449382708712175451863774496977449732359413507869117277902542413406343942877095644107627923042791086321156271191080983346394792036790718382178156515107582772689690996490186971017287433988281987348315212495654536501063381673579361757492077494421888433640365357615337165314869267904989306984975654549745700381091445141254463185060697234139720664769176624824829859149766883548326065873862266260994556172269596364304454646596078908341581314428871349315324233272465102954201809324742733983093070231819734840050494176417649761988986250047531939748943106057019005147488391618947133956867654363654636081691746480923978544682846079091986081441280243277679969957725378151194264116009047629147375726525592673424878480629242601849701714675842951386353208577400179772902638336139287752912291696952744842123250061888934890331518629256240249362948204709629930077135507907197383899339876911794563208157302155703658698015649721279951683593644017053083889245480938377136847250065466733773697031691881560579561625399210797547524892528332093444998509787896820062422620755716210192415670192202374819410070507036539809698187440966538324663832511492372856111349154046147350883887328487508334390879877018319854067728762168515774033863524764871902221366615832406711588815213940557020394599590558819680855430996267755206213811870171779291151194372787888613576305434764346336112303413823529925051784173938744093431979370802283632397613965046080021273220230465960195798662933505266344153621389444757751182500945507384880922030200268923064590601230727558602896020135847078165394679064894337315938565149076937246155440570415944295314378937446384698909067560179317684263820110520213519477417241220192537035651717253451252012267219216963350233772616988350411423906369837114127858558095157407980197579073861307628096051037366434556374385279698543684379824111607822000332851903060977863583439093170144193914513137415563946161776379360057970730206304300328131822404566913476113909081890972161923403063238427986301353683094217136408564736253085455211414226748899282272885686822208271675379775078259216515577942633169166407857459737964825299872194791959907144716121858995820078153657651511552639135161693035400268414680934335756239637783359110076527672833348022628151021816155277952004219342748797875297069462601303694192371196197141416642116715772515097168018297522756124470575153083090761314328960693760636506165070084594915295114638395020458359476428878084821612743275366901171350772130435805669221277098688084929808019188947893407399496980675573886413965102091659072340664594683782478307906427825086612905219832374659146053611655064815095379986882743922629195658216241383815679418783592898982681529115505708376411684911027489730352718872560948513621659826209328302262472107221745097126563528006250543953585220332622400652514817664259650298569623330501096852858430286623425864770165596817364519304040369403606322916764648257451347051844696703886891361013578286007578567619309712060692948779294696873891382007152240627227834645368534932130702386192855847007466745897822915082469247506385656588289992546819644048031567263846177511915171157210546695201230209476991852485239216908485403814310759922924780971328186994508822018022145100320588050746380101179440645344543036232717020754542076596698742662354640566283079165583950285413543552474647196334654861925283684325582063110443203035828860654595276151280398517730067011658729965360369727550031623824912721319658287570740975602753750371021384312083728916701790147619025575872754696177361135779756906542410577806647136479553274938466223310242965395106578633050283262318752798796336377760731096487540052783202032412907954688374245344615893878714103587771851537983703964949468907595244068526655154403715658738695605266445535583443410299522684458054780331621130965739195790708986184108421146369928013133381528884532812543461529017164440634418370298130034624016530932792307762053185664997925217932853311680517682628664043808904778668807948907286667855822852055688081838993372756651377019531292179580125214805636603905986128128490115042346530662179014067373268515226901224747364899455230545859164652963705792841474473745406204489685585128460734281451157060000954366481990714367698949819791391886577559387378873532155959606781753678190631404719983468742888983802689620603701378116573544326746466567905040088785071898908239381918199989313521259466328033099922352337817725617393310117708375632758901286296581058327048779899060182867391402159923697267112091510158492128546465904140638775462630885892467253890936244149983142282175053367110226824157814638813861586075240275211874945371754368620994454794150823317441495496002488727264108902721284967421738373661488692394855627792211175744491855088696934180123088068361304056528195192677498898492339170549294746475783336275112301474709368034910662614167554511042891997616158161771932703636065408886744013719441720831772122609760958752185956016075475497306831761065261342525316485354437773674476539493741685443182936538921254693416527287612523784646566604252100091046812495170984969400461276829603293950761586562368677134783003906854182892159445530897124095833081765729703297468188350532862481810122584131873566152963522208134237503829786101211341554803244796858681378552589086868215610949780210048803614405199237345247517127027184611137563868343080446092162927819702034853491421098015188226487653594038082235928679046346069891500016662266868555711025472525662294947303547920962942067942514079559581332245694786781334282805796900020521381758211107923774205092367413397288120202882410649014021549611186064913701786716186661129793486844394535815460771773908166990023170442284339885383614983126347455147751912012500896705438376688258355571556611118217364569708501407782005896916410617416527488977001596818344647302027333566253039571668666942161337196562017253622529499692818486795732633755596989524379682304074532104589066941249929574258960998767734086748815293059016393166835063329893160266548878582238330015674585096907558912055936013954991097504590453829961828604727344950654523141289171483360202654484468943253723129939218973576479864753009477713512935837278516234925457472135409424215367691944797097319956314502065172570967723274991745926839701081986345965065991968076533998645190119876928943155702743926642990032632731861158018208432608998940062650852523404564738925763153238049200822544041520842371973620611055625854314785432855133010872251717111655069714325261266418717620490728934500618412498523163602989338257842905951926236878316027143332932323613513426044612316781884748212754387675736793076230231778522936986633132190445892164463998457129720375466081802780857084703062267015481718024665247290389998467725362332143548421693288390568879676484855790391721230010253843165683137869791666959926868105671373036973351347290875927317081528950317400320753261552570638637133485091921274556176036187066112473050520084850080412580178466051908448728409609722057759874736580624368719141440294570872647098420671342203520312242068691872262139330692560842311863336736796970177488620399791133384232929332884660529021781860713725910198827445429629696703420645717824887137365013698920366063675763170818387073583069647736778688843948136744443859887752251865697962325474530123187342810395666834750643515967537559626716347566369096770076907698249911221808527107726618942489241402771062028600194387761136764343982803330194101754660486834164210967039000732995362731793257363810696780861019427939388816908228753355442699275300991286805938539191684132186600059622126748876010822655142507223643294172426615226313470906086938004388385935210555839189253258133352230071730481835159903205173112495836088085402892403687918391272512522115174148123399417998808140015299273849140761550757471639906189967320230333124600058481932865120218536963354433216486740597261507871381988152735082854171416385282160749214800579711582331269125081527366189966076013353121554987002614880566640289297200054094578806982260901326829727147170027907537209152799252023574393528358568157900730131467019248472185698204738357258338206173510412923159256648591042777320304999263317685919334077888920308225249274435657233664075276004757359256899587343361830702532290915863782651939632647351082383123149668362609017107712562003195685194501624739698646557312327230895868541028500045516175280902395075973105499370537572557750829002141860375102234389675924018559887418281743340325274734108578325548947084897568690441429710064014730615403797094636596351705949345055488029156725770211787677457077570736755612871699580157063550675009339795428652931313759803590264900652863455937470874718542748122115064153596724269200967260881031298711336108672196218251514930520340916527979236342755836275158650512322637436444157439942038288870513527553660141187263598252371976382038968692869140355647565407229942417525950878579151855135749905516181681767831152324159501764161358444574879986824057958692146144161731554760716649893609093908732622246100179724299615419067739961982867079431338385508644066216585431714328226438995529978376159651039523604126095022294515528709484261949467374622148427623355517829647901545878728800707433944969462859081251311751867289915344534211845412381961068168363822976932607639811611670916984168818748872682407389922562333623841374230110321039611113578961246335416394843088231362062934576530233953538341358650387274474129900817338966474530650296707726977865991424238839952955086233058215431951757514922633286542764186274759385113020561941441391081339366357526748626414760631298810725738977827287173409384744687880323214358292612011680097682373937911708643577091057979827575740246714590542581227797880332483605923486073070510184849649317349583578748105179156259984791386749167515583139463015993682890600354958532833106238982414218647278863614870779901705620280418027844516535899842245946420994811900400307957782069265397157614880177871238561363961731539528739221201001060158790271691187512009376975219515134182563039727323824118242668236446756806128522797380131206370268657235693440132750828918679273209890699957228215952061971394302003454987072036121026793191786338826975808810882117796121859130859921035526059438986230041734175722676882964478799126683281937498494916239368735226401003212683700002494439518539759357305220835122071835301119494707102899926771322807771385222932385139130563746245057421255289896573896228606956779383799787534574203277123430627403337490955558966237958011283687631546737695086833779608063512069008656595091274606952528591772112767270879722582088792929894154227276445242786169704555372028871373646156090588773664069093010106491654063910576953098257561759370777117518043497391383606874116755409467299240197006796887620808081443946482985349357090288412812495605752652476237293370247080888634754268409179859164796277556487444577135441594340174886650631033974438032719127596130848152407450024270358295836672807482069282377648859643076383526762208091571995189275648261382311003547242478550930486954677373198313689402823306679181229523261147124737563670819992087552719120286785572054031621908544274501538374253952315425035860438812378010420775763590783275993338478877869850483249672631906201970469989046908267534912972799064917778501039849872098013793911168309207499103220857892250351991247299932926469133700404209880022982121000005841826893099328034348606471912252381178294145742200016021252038849174999164526499525061177991493120059212327229640596683900024403315818340672276473704305667194705807275721934090111495159393895953206098881350741026721011894960663536864541866499265278694161692598817629707247742900052695506271399473793239154600777314447887175182766287486097203099226752703288435295818937383715961149141208418654577476228059302127660183376093480315044446891271006321710271814758832885361275167245066018266536935470174305939275735259694156002252517350541970991787157149472136489484864554957177148459837749689786451158584105228853130698808309270521499747013819035481102655058746335408989809128137239225858051370794891858530914110705330154643918403084753523172886805718510414759581097113859642698225819650388014387531316001328220039182348078265041079060111660327688460315754723040797854945575863672595654017306834105346018492099244928231823768347821202288086656846118765560220207633695661813587051160048429654070464146955183652923726239672401353403841357451238744622249745438421943185725203068052607030715984571948347261332208066948960282088977732043692985592851028233050834597343778076810374937730181872952541048040955591098982587057365327859792287882284315744197541007494018946376427584141799798112633328311486756611411474049785154400545681845906850137407162550637621666294650897787643371171939036149170773082844575588622559212953499838798840187489728919306996905160166860157273195948989710243911440559518677054468259231915386072964516801068885249623953226675809319051594256045015078323961531707584850837232102996500120121881128321595884138229880263395087746736289240047430876134131187447392330003407748755721842574380029216825335278413890186109595275254258402723333973143782448987906624393046728957367438860839831715294174278716524809187107201545144663608986546022100220806193964239924862409812517566793901209346217719975726180085944992462962775682222004374992388666547181712239893083654674209528538587316346345047340368201616283743549696729334564589590870550727519669648435196640060733822962638131680108167156783943192780297612033670022605022190525945316621056037648698138556279489809173151776321787436310647996345715470872581888469026065657645356470966613176775639314292778872054446456421023287162562840913128660998807550903510970901048684869665253073623861918681414957021443035370992565355067438731141338610721727761860508585751083929233479823522717313429851890738862219495808633267976623378884324707037463353660949771526362863171552102950474428828081688864340384083138294162779012158723342931708594148140277016052823017388519374552988563215624481275744865427429328038506411708810751812511861087279813230925183442089610175586239131466796528945857333135683998576669036375600055679567978520781673416972242852453326559231853304263179833151417049895532790465060343638047396740080951255523068684616078316203321665977818374623617952596954519616058953412506439920818311999763339206637871386084247187189904855177662050193440868935326262371058276878038034561622591499700529555258954793778358263629165249521575321609242746390218511663494881136474260016762731581684781902015804037643297590245810448591596585861117411767283752104076541501192098862349099261920392122070784285993665178385329675224648963669089705938968440710010417968962067599143534703016005553274613820742627002123090190699683680573213422085911473076467584893916005771693523578854075795165745800815848095944659072119884092488904549019387854236962298548038962219795652002071403141676718063051540540620932234559636484807458042994283811829151815835359139228727298373495260864279836154056543548166485286838089156746534870398897503570280755509190116383412324631992865127274966265329762803248443475572039468301165482900789872937789063816302025117839188750289798107623513425954634977548634848278507938801868826823080761246074222979433470028969993233642894152303774487576781838521235733583379000017627883151357196008769956645877572580831214517707357800233214665698275740571217309269891170003087987488219921016512675444635696520880815828698009241089271108945003715831410165195477917650335456454907622171019721811392398463497360836488806489466649551876311196888375744339810807080543308699573393372665485471945208728062399799981996502405521836388418796479217117487603840539799028220828262698581004029826447533190442921017879776204735479737385332365835201448565360441837392444450858829795003935083767860406983002329017688400455336452994671506202882708022501005188097991792223377016835962643451878796674924806518218739361952136696629690477188959782912155178745548089431966490338955710931597435890604852163907840832009510095654195870145969091196588163620085481173281888115109342019811257881834088034947910839525675799519535360036409853844273299896643151711213513366345420589435568954081912233798279570114580797427164811162270998593652677162745435975045399341780003206870488057567838062945567028073151508702063757153912898579387287419195495573395393581276358346754548906334690275551095239586795745076650343474502830042022783769785761970561429400821510070064619664641100714336756286873642902051495458604438886192219581556705722117914449282964827963802073619976576245325699022225036041464504218721686232402291504141599378144693757569086064566704150384725150972788878885773377871508726715401502176236209792031793872662813877819627470767291632303797430956651129292564588480691723208807648514030798802025315333618737639484087692641068951453963096419125452113366733124026646502576443047947906641082653619755514902720510521762286333395892238965053851570326502483373516403425447917727204407068240095576995957059856686065663843179075724458443262644632735981266506583444948903918256859997860198624146499958712460701504591817256555413871069141965967714678937848766934995794705254331591160719566499330408399213310031170109289190820740537821220700013333437017338836222193789830510624839697455670819483091589812474916485841948713826270963117692211355154156721575823451772689043753066670864468994392899554742153988888604378553402146299321982118156449514361657343224550607075020560285211404904755553597520602166520959435708178838316254857679259682399566545870446596380361555171322044683935623779115348786972174359413534464578938775403519177263923940632933174901689582104808949799633427620824502115149541255279231183585028097736735954125385127854370044756254771933290322706611635348272241098426683887579121569982167097275939952341064549448502228552439744393099173895076174120182726980681965479672884902656108939576926154727918782874470257444646559264720876804282010972652827588215168663856657328265149353376389139082448686041209259204908829658797815510898987041829596298587743840288117757015381714156929279976683890317056368116094292980003923999664750020559934042789133637526322117607878225946927259207346381533219485330859964096400311739010923750660606133376344016046324611421095727853835079526473013891784976961518457605241889811325913278907160995024474091705534759724018778389191198224499669469666472775543652927120818662192736291456973921130487642586852195620499851683387184397254980222923422329276653083290360411663129217087155355223903092778040263700247114644924525421817155957182244739011509966055564156940274629647692283351228488839869145685712013622061440589082158002292983252631811511687151730072337749286984428467035857247639536718561363616872100278358252762615602366507282081169890029965934828474285342047268404195520580943629286407265777596971369171853892479855064767069403462372094595768188643479729587327589883329791881302238380613632567814056125527979310837226013326945087940331131038494246027630177474266828804461824546634020739782319419599567405589625749373818140845822890936723065958519730704369027384629448782784022533139713980086012370887598908134070100158601524764167306310449565344973004700711216746287707763411923077325041471995505655938133546196832558020304300996705891035828766720752315718696168711470453834606918451848462769830749756008376127390873364994830226492751230365223208461547462504202558734396531483858801346676249188562973580634568795724964690094195743647654659597932855924151735858224074220594886519415277840012151825923560769193540095115684914370786585183318473798223260822163293733000742201883281678265059768912549338827955550649589852894718223093993881896804777785087138680053425839329440536520401849633276839165433520025930733854430421952096857341858476979257315524060510318028954547892998785251693441853169734680373028431926756892102689598844452986197786995253483354350208545344565651382662583702733401360935671195184621304949762092529048267397669776983486300584107392499942360259317856702487231518960488767530272736189897902791006500798726019702592369292377465570567846476911789569214732694480277064737551816743512832277962604154002153122664823249579668286956258496838356485123588892168894500682602698440371582814929305550875686320417100642237451044431881356550101546792134287149351538425551466996118248007461179590522644260967106715364317791574781732551013347037890365068241294856492671229067724224422607292844302094922159184501911117661324752409092564516555952410700440397408141160242934381506888331987937013848779803422100390790864233701298588340227697666389142337869756571015393880292193926912523250939905459111655764301404900010690875613976448224222201070747575987245730608518121614869654356534837436728182763062656971408343308801061837789863669968737353036773150665329094683798615547364245570068447726163174865593576127873737433989442624881074569437509269451122206578840467861118777046795581762726114876922532072819999088557457047412612279785308747694321728392510450947440203127181803131886457667991689027674560264872050714691878858916814320313265905301994510890014358852905521134665349679409502065655714550855296583257027786630145244005531412104923749961153109468791315804084670010552372761410073394618972138771537641976492317859824148495092420302851293932619633283617529590341879866287767008564544978016813758078352330681739883422760630416372442656698964348881744431419068920673160773642665779876698103997091900896339165805549975088888998736779202075052744666384254486273316695778851137337158830086106339949916902307592214393343267710199772807321716377727854081760219596444376785253229955844777841614760465852203616204388063764691836424053739322878816475096722025463839584425634136959587697958228413297591988121636673861501220565687961174409720588720941135337142980919244907561565064828757125508100611442017848101432373000652568114978030969908884210700449427986645634949934124282860715912903335100514484201525066671928362197450240239452927492987442030244548886634071730705343110969974258578896086529896724938830758553874721999335036402817764460802455036766618395930334028169819687916509841596020713289939535850809080542800580905440350936484047218361256715509961522702173701542020687159328444983181978864448030398609085861908620572116946347062306164688932375350891500405095533533192673908456858551975387048449858150451345376438549551332044035673423794766098838056927026544482051908250608597444851153406408501383853305491011670600846675014983494382815264835121517041122899235024351207486031689093534561192153779483177188028470312020555607841413417100119744448377500346984679775175876668793080724409647277417445842061635552586828538929195662520821740671259396674557453500498393693162572972433252230897785516581162365863975186463004119896291403076800602474538835179273365664435592650405263998642303691154749636571259167114820409834718934719287011375286271155202757576374817254424395092127327957885844984017768572899813741217958656123594949297911189031067687299014183289592663784991830175187692730697528144942938242446226708550486621730891675725464976028931568996879120316830741005934904451836994202900648785717975299717046335154870287585446241371989220598266119225416299588297185305465703935052272221392984437913195890706117643734149370733795152739185658746560173457708479682533329131680054595184935785829575179072800481441311657196677084173495056212026093909786676508776080972279450918769519877754066179131434379280974780211620088683223460627303666365386081124323865136912970253148399394189625280574193303934485845380642774937625339335781882477371051657959228069262574037749468400725401187121530259254961680954513660413193786562249698218866350373511434787083578498814412650928853868739925817206694901650029602714148184399665276608140492936038041878195484984400058643336648432542311197907073595367965981812633921267007192378298109382826797307376881287131880989195553947379079548122962950430981065270087142657873002151572763347266214823084214130063603878165660641776193449142211199046994908955666316031878367614733434682763015101330859264020064166375721249663675327532866212492050802327192509276238019539337960226212436003640634680618603971135452224930332223649079682900953172859028499759794544079346010693709564087911033276091279254059315631828601552778991119056934904842488767236882360123524242203308914480076598141997261153288555359604075753564445635498814009926993022730863149577964262045593772998735976634348494305135370355830169058000752871460884221808218035660694416077354456462710727779694685415947184063908909044758313902124800121531206860040413144451918427609436284213535824821993970224106358435719630303276681488981731882193601521459444389552105325040059214542085583393122317238043122978921857831274691993353165504464268415042788214108848677533673233783659886355332149864065355490047684684584524418230278486363495241845438001355728828307112388917897392304270109004962320733646041144990389216434844304720406176957053783522709873729187555853378511546344544888827782807120508559778500590041331611144677967306471106152566624561604332557910794186787087109984137092471226425243557599840806328517213351509566188668953831507386505495650333384825464756382026337748514947702852128551466435963083706870557743256965493964828236106208688549014237165985938055240911412080411951286325667166718124640536180929655900807740044552508444206040953054346023262141769646873829254176579304913534821056971111505794066675496622367361407915556136549963039459296395319741076771568476035769947687834052389948865901254589620616657175762379975167174515168530311370895170360437984110346739426826506705829879028821749185094386259944670038765197278462550585203018101850361551543355698175878804542179092185226405463561776372581620188441206193850929394893873177219423884431800255348186320688515449904195236530866040912742325488048454065247467050775244255196289393007274944784075977394320090847211151532322993178517162502920112538436970417774918879150503473587130347240062465093186948062443160972665613781381541268051489604017659441385261279148883265686371859013335050174601951412266357475947268630330716948022855241923307348415724197730569059816749404009359540693821918143178972952521802176066031269700203043307043503459103092828495406498904623052331990041734061968503599454894650546672192675754320644768645734777006843522889328856963195796308096010124885582140604236505233418334665046439726965407904962654992735410691749231297367988073829834474399977923508996145586265615759385392282116968081343175358016007804371411886890500318291613052997152776665888082398548503127914247963506030749148371958486866615947956743577733681704656805976710709667852562919267335310321237807749090504129458707526066535865765785850317122570817880890780705473513264131096347420616174407423169236230722026421385456343108547875826222428529421797002256188791529687168570891209099517742162336034350530791908594781397382590065482700427158379048953206259119647136039527197910738262684727001246479514135267772000375912593426431731282164764448512107960359899044368018425108460351673277447149772151779994302299136798491276952319668158015929262956535074261581733384348583631241967796641091633209364660250394429465374376617886291982490462790801167232192968417812074074852393801625706595052880458963821713309242604542509204507212052902078129695821240654406695030840169994755406323216400082231099766347896155956013891292065272224988420017135803073152918211164639047242199853123998612455097217344821074607249962208476923364714567862672739746332324199051555093701271148125925162111300522603246662283711395236909788965835617772366397364853642483292907268478269868414793576026118976556737755205558457306882221520304008769098613712520494540505008563643907664221148349074075544518072435043502026007246255892590353479865349626242917716119557111360245061868948506556281746884434990575737943853561904342461744655681392459783652411972044976452811322939283023851354432777758389175050553386404673706149774693874412046969021186345146615905257096698968522552943485894798011938915304832213155645099204070440146727310451914719768159427357027499236584058287702580174312865525855014608235716116159068139640005988043171524894438962044486207822698136342431620161493509067240001855960249796041252522291483858483509440991646017445668601040597924207003924118043779395602929049689734066428644370516296613184820759103356725568345469997911053784070580344992173848080941380852804522620566715406031718608290088990788088450051672118746691872252477881981719429621134725405106065543143352390561543812395935848560702939976954642666545744044954499213297645882669260640658184138823059677493768181054062524181719227224822928789149167871552693446744935052524284772108741192887978308502252105084438656673495005332684738327078903701697158999849749447819485988994193686376182376530476448057728090415322366230735428562703776284779721692134415099451477846714631695138250894777179333499124713442085340542987181768472018843468673032278256548968732461938973708940674876997520411767622460315185339112427516605102337388024787319733657499306810559093717954524334978088129539404965135277105278554370511284738264461230628775027514837615414744714478311053344940474406737949015867023888330278743871752151558589617612927663824905959416154963565834660158922272795059254482390404043595939625433673967372482889795452431792039107900403954643962137316588233245389045881814723396584175846564166501750851329238906488638489284098254430891704275973821603375308513349536089341050592595985529962754108018978591403688135026708864258735467538563139934343291949832629640841758391992295970773196996424011621472055655161737983327580967540004825626812530765788834574396568950533538917667548069162907299994359105063610153802903996337528356003142932731619877049931522327142986844670681800177780975681339079520083760800321276346723683859208131772352735533822465582056187245292556480550916802849919476367130058004447500220847373242574502712851941932778650046839987057178420366096446549039388396936245462822572732639438804667218737132688132070876735012664700537602228157263485599727920949603054204550623313146562807491416656754017498564400455007669427148135384492135804413412414307322077004830857639048302130112870561519879118235777917249945368843083212854045532834983041972015234703395543302874116399911572596718994421363912681846920680910924101464908750147347790965095640448361093495297368732557031747417779630912482496354233787647370508915877667718545529659835308038346183920776554776612395895235743945828694757618091913376468781537162790250586075029122516772206721066431772849287544387165521919114598545975503624304969947345281382482467278966429201894538459470082261560727518055731091218768675294482729187343461482299365644098323920630416597564516228270150822756741364192717254509482205223564642268610045998466133067214400657776564821439825977772889578789915279074449038520610276904181607029898036563793423892439292321865387492283609609051598047880154714939717198701433562388721666220483192321577976690555684080227356454780236085856728889191598009422039883054243871636477859963199466304987829322452177413622220868217797309564377440873158698520308674910373656100735051147726419552684601687770674718659372355826392785562382239188186819534927513523553901073404253090748579852386039306670962227550481686785610386026496309042425789690041947965251705537118964533395386055047152017067487535402043482569316560454266009824759739808142501502485047528121164626355494676721256077063832689601540411075227603774317422944979483112548550766288862278983348039844218011104902838116878769631053542094994931000625994020135405342349143805229263879114841836499020551594997994912142767402827438687142642606417968519984275250835517319871492906321977107027687029837383367358510024585239265503833091955293805417454485406171226617686251570682238741740690873728972227592222954492209360921506450405409077397748286924389079576926643820310094010300783285329325368180112944731218198663657498570610248358302325084167185943649219284018741183063222734153492729928309235017502093832273972814706173090842658440652950819378468890932088541328962507740465228301527512410434616974405914052727766823420062684305394165562271346752526418169432607145555725588678162134579062748997186260534279694552957108416431742306959615539171442909813208901177849549362768325050488066839054946346548320619454029441466281898519362425927214448296541898176478556439291531003032924600103822249264816508653683548986553246951803596457839835096765770925572753850938991609846440031090409596830026285975598720023761531352511344697068950941617667580202137660240135271336926218736120001453805512319665612180087101232389614841754496778736399366052591846584628279785223360779504905826521755437764986575032847041769717252923126772365650697903037266728033652656733644440520636905897248865364424206653998023422858890954314903995100899100378665217301177249930116379737469599147276671115494697322107545759033474554691520432793072143301646094326106800415433446468201326890967846450116078770391615683540980715442365077269068461511482964842293841230815913438995044514796456516636992354465315009597799672900174370253264236025843467125034654224009003367053868940842934335629835526336134345258777505242990205611908161974419911220878978204878968232233359951016379468838559903738476499110966635206743394304284819469859106190466355680407446752847462871966035729553863028612899183941586183836774678421739934738172321366406782521036996796028827591877174666841229965455657074420339384838229921269043592360546211416897215214112889125083705203960505772387396946925617607441915768829133573400488239480669115228073523132571812448607338534789679248371202001766606322762573193096511150087881188223595680977719091354367194294031293667514272389178950666214013427880632556432844662464497981992855277886557852378962035578194372571008887601744499779151731424225663388140860990203499215431449202542352254959881360133151758956907938632575501563621691513178765697548350222614713508061185838528294260856785185156556195698467827616773580098431494416545538776125187830614292044302338270900896929558612153332496025217996850236665514326743926961284134798456325252584464234909953288270556003130272353171927678089806495416567005705889563739301260389307445939188333297750162199211727022967350749177092163891714832984618022946722748285156524761818903608342915743712355274264867043790443104532921865661496503621663625223003180205662736588509577742301372461193082440355759703930728875371811454133706764704185729951846933216461599032118346378726558063871870839026131844897009159535483076232576043996346814714367392919949323910667824664482412410411248931551381625017537978169721631418509708927060387132257069375655224995285985421581795717246486667889871152116819942758417481116668097589152513773595619183380148139539468865959035517832442700151558627829456705781689619955471239672806650068667141299747180936375554964161015135904245186912582303366926222916534437276807109202681044512934523102250789967149194610919739576347063242660380024065536534160648492387821797511642928298187130308637578894007282550460869373620368274662465271607399159501622068428960142856725223980186586520449537707538469560268502511274757786661861977165418545857413243874345759881274721896235871269107524416607232586982595762940620099017404197849403431614169370489050682928349735439758841675404945008733767473167962794273686517759292210710644839021296305299317484843780657406537208380272608276063223530318842088886323733339743461533571019963488516308837164067187934927434156318787955030550120522847533712232227479085812603099281599954606617221776540777071625954392526814261563514454067304230055195808304695699107306241962980865021490676509323838941099514461318048745500772645582077032465900038969317310525214756839511441665915090219725781986728056809842269912347354534766334966580540950334750488821055458744315634594998161375683168942583604130009801042588284474473197497668953488978264369015413427445470709253580922419299142367942470477532563009269584761030063748030100095844504824177867607303147289972187991062745401335000956528789529162936249874123568771495166132650316017438806494849055991205997965436194899521524526849456067721112228476890685170681490285991271086048346789432674198368852543633468291991706982345891249344886398684340720426341028853548063123924026703674267689734615131504772485853400970034033224298303003200877982721893500339108809887642672471771459619271533633605235364292255395251718785554935792857952077368453527814506756831072430083759010577158921709822578790527271404126081558668531712591017685591185662798876487750979415253716022297507843695594685007681983992310467775184023676374664959121197596300183284046167206593339791782549227774368481290422520952557022834669929474717215418015905341343886642110543665734887637811087356308654054023782100208749847125450580998047419191019443139196478429347302179483202743373381489828060110681337391044812575231671188389891558903917319381648918977420038211787280591335357756269040028032300945883554329262456277247776394406885417024936277720730609173328724680520689180760449142552142335791103574172907740001346975092121805142210275654553288766309873202671469934003289857550236154392092439822651483628252031627428932662310979065017654660847019462912468908860176509986410125461734654909876459703772193202187193113242370746207802853193638666939611107915889340512292708871992274824731534589323799327290786029889733073693158745672015648028698398158726319790354125593912046960632740708657770215171875357117653486947678538280776754944896042386193861024654892527688158145941825677929249242603353381443781350313085518037261452480150675320149612387433390016138698196014373039346775065616314931380177901353170867499841450247293465443388429271825826030361890993262264078786880622417927565574043367326153120599656356201765643925078771066209868461952689189722750834292043911923389652442658086279046854686499489528524066079419886597064327591566623378935188887096091376661162522257493121705880385972547302211386273302866992334931929287619558887740439540671714917590057129918919642271261622653272140675123664026368049278271251278172260083931514221916190172395195761912049082172743641310225236942495373591600186546109183521086208324086508882867161168991035111043361260648586466270494017657177008097252026994991902778852749350463477767924967917473691925301393006481581730851860927224007584029926896247147757236170778222800163574965568571659617754154503976149476506691396169503681941759394899111763683257141489566138205435718974938839080819265400569172743966082946367260505034427993815539006669703579571664483901899287163729485179056533075774663054105255620251757718723945767060403741618984108107179054806764846432650673494307265988306892162940149798364517924797390133013806429923204589570888302654718693862252057929454129750079049376675494195985754437574285704489239485124677443266221173653829805903349002459759747602487890865256080380868599560957726852578304961909624540892263145323168257388182691717192622529438699586721470555080942387985761568742759872939729113728380903700512993996964315515671754716289176803961832892188742335002479575544146703707619910551353887300719758760416798654557793965051692720542001667708731481421012772921234958758641553329522422443666207317312177585441592862890810104410169837062163427251261383334750241944941667349772767790257419324601654578836978598634325020541548325359217996392049182936568735051337251098533266029026432274154013915028960121392224862100772526216771593164446860480344389258348385870881254819999181872315554710617955379962081249306011992381268094576876170752959537761777600452448677833519593422118583874983742421762686373949940013848755972663961314208866375192590013962694208306876441974105281684038965079108904579412076289560450489361170201605000926263873916300649345500251456258596751137283967130142426827168516046804510320996104072237160934542559456323629581541363193119091857615949462688430997376881837837742132597099691696291593794114686457898359703383665782543186932748422281750304132881833336684149957009111462105750839395181049688084281564012542634435814698311826395330516873673702977200101342067335986207256301687419277166287248690045586867261678376849763513232858972176227189926460282567397205755449468066144384557074028114952154840349820330925902432788610841140920544883160823951295216410034240679325712938866070533161652128845118313155242479347426083386313037512927804428441988344694251322220075984695144073692917553562122843796851653890308603146117023201299660547891798949598383334379023828753930620878616029672798622257279674554684852461503024390432514776689086889138300483890302115161230065643890000255578726254934689408501265014370768407609162944010139697016365050359667375878836521545451397557657652484920540882408576478717497515151971797035050111964189266083598539251123193754410439764391769383228099159330098906196353647648143491739418958125684980039797461605315745410754078159762770747701274829477018225722591517897984006484292968496297834940604428676515088679875717994964312368593195938842707417023700405702731234265953376774706521139887802200919670594743879035068200405805219351631296118963958481696295332737790216270912037496744138635987069463000749537998601054274557619500905627734013146458715778559958010361300961018369797900065003843991268973498565661009424565819553299451547674686592251687789344039359232029699392732417315145516462235570541268890212933110960097316507979237529481407171860645563379865872463724546065694441612972283628907560441366258930094400521910412645931360997171866367716957636944045830534297092954487351865197749031726844141684356000405423227098069659143051700473969272377514644472613964218054304019866966387962210709199161853997856614422068604218440751739218936622071220293906524690273124845206812956384097016143306565794487095029093372341556087559280781441519039972840361235072933204161516953997686537397336395252707256570867951186880378629563611697153915213763425766060565614845477091572297388831716122505359021611733297913748570689296815834745668948420531516054252554521264403370501563597961918966395813155010485489015581405839869520325300033741093851950160363446682073197299604328696590159239847535761563823707014806100225397918363719971795914609707168430152098993307765657897476832007450140346922417619358081716498576476325080856485713005704051177707528972789324601124766429289887980244644318836894617370923021758211299183727355118558004041224077327421889978509920448014524913067955274398866478517134322896168594539516448980237607992712307206168731839924662666404772770139133858467272007328100777703527470537488687033316439205381339776147046979397714785925695249857949394715218991195852607884724011443867626860102377929188301431234270380071012567243908917788676045918797314232965101012748963043529865644254787614509429356857167021391421754842119636150934983096308239502561718217826576612742568320608511502505583034828548787615916947601154556084345859105078577956228616746199349308893029884796243920815794773451147028046987097685734497276512915355488754362385250290480499373696165768891795028126740453593836013740049062719281205173057974826264495812119847067436080127418295808898809471623914142600168724444298936593626591954480948063770680063507023335499989108746672787068191138810135185972264566787982301945533797635536162228723684156206255157666524357579995219292440783559170567102121005885888745000431622243318159014855910584685783006157823361760723442869002353674016759217697689723702903287261529146509720321244339029817642911911301997982439037089572970482607912941208018729172414836733154194805138285409472698334063174204871047658797215513635893268527807858555488317821303618428677698923411691676053514726631566733018773442357743307557425199675358115713162115646396874446170141824258497808938634648103411324534360215607407353107402978744735961377263606255593584067274898449247273685714637066853269339978041533931225953756892090265913128890810445891583431901613783428391423201041163261640215482221730327202290488007624456264320671665292989549812960520620448271620293083907451218258619613402285596230563549820568299183485413112171288458956046814103463830007037544300738457911557599035084048492188585615726555617531783648732668056452657244294600468167143036862938265771131618386419461512956445730462137796127868838275830364574274450756037775166318713041996944867386813138360623392417008311794443533619284787612274271463363179934309657275818635950042209583538294203277137267591030532026383743460951433828255277463181448134954833053795776972107549671938156351663549247713481028045227351399868255766554286329512321097394180522144665628361416932486165572897806139202367922327070333664181972020163243288937431447896853849361698887705557616271654600065682551481129354908519605862670345679859893642729382888088487328427459040427788200243834978382986561748042866043002960681575469750710298404503849457525781476004624659193642962067663969274356283557535965647175685690950644362144715854604039901812869763046291315465734577280936966821397066861577533201516783098019311216614616502669764291671312009082892446530275344645692740584477677465362107995909473055520447864483382843356261940053123801771358893516851903829628878124928645462760389792345025276046348482426648657294232671030614612131185278488112495656621806601245390553077082992599077791342954412836393694096938171173678297403488925234248524454220167732988180701100837579316718730064351958782997352136380435872787854193427244328480722175957786687430299465870707236996261190407744475287597460724570674913652449660442384628946483976297390744713771041243569409614858721623720498110636995203755465811741510763486561449631804781110402879831926262604343156393657272172483320884183533730502580272714811323030939527047688340884314928404047525965243452400620326013742270651014672763342101904877691477119008076048245897989773458059469900583818423227959687654053288120356212242987287867946840106714547886170518172278871475862961563579247182799588316754669225799635488870274104640689142372265223447481409343960296962671613569451792718403265987879229025519253271304125328449914528257117147810694333648295391044015849996531033050225726285877217298756264785979176620858902397173669333623745605202668208824394232926243946605521839996353730306360456010776740278757604424048920020313979627656901671414337610609051586121813772660829679015546702007679295080336433836405490001273133727192026033177558843026562133301344969461040180129055775797714560928632942177576360452767325958582402288430289192451347347235430645781743355348312571071772662245333478531705926193640730640785473789809373046287477687934687889758937067672671856220385332991868693980923951374635335914095354695432960167426439055273694839357471378331697283089533390265132910965516375289733025916471400899449329432461601604745977014792049981606720214403194257499781492994669089623202484067508425949222644305073349761824381033688511618036206872644032507518341278021008067666610361131141478581482716399991236640841616049027318340610817948793315995498646779682661075220395317935805355737938359598971906215807096592968294421520623370664518051719311298909080469273256936189021016757853868292247648180663524950992348003735994827613065188064930093449231305098500323652047920139391415294126640813723272160110176427903237720501961006739497468681861309529349446979080586507171577687597355119748656027724989462020902466640255691691133301832212903713729481705206409255930908757686361347743069862476314085752149931987650338736479641699715186699069441116484702370677067399421256341508243388174083709439227488621814178483132056867602287810642019616210436567218264463278388982059662391094642768231608973535270388665623471946034037684343408717277619993468137516745467273705013413636462836223085336531762891397652044431439653456501495431602978500490617213654389084654958108886021230801798710297204641249326252142468341551990310375585675977339123765604849403086384948916177888971520355543184195734044353407560961787571871958176950633667339909294819103192155828375113824163625002699782862202988255299260100327043882543626064583210024926242029059687667850512794482028580903762097408080563948351960446342650926771671154687905208111456452344850858843501225803897647843844006135213656413081674569601466427171603203682256091400816934943059325674217205762249941313056103320137763284383038526646036216242442164482917582381812918600147001559567788220189494210747207766535653528874035647949448797541092441140601997601461772261924340884710970947384926575467733105224780218660625833419399868748189969388742327414729327198137828957028436906338798035612731847724046301621816520776569232438056760152352387975741443103760568578206937909429919905020239892161822218906766111062726713423667308407976879123616284233886114845528166864976448254599490345627099610383416536566569627708115944013815121771774491719353391688236906545834533918323754767057406617202869070445820080287430219751334206106452110667290871234064988121057120844846583152211611634379359353182155863393642145509660022157985236448575041453933902278561318697531563533791734515124682581127310251082228726888423026758154304460612065586221709580388779843306537919885559770949530431335621034422553533714297280492446997425803202174984150594054637075645856539841874193173680827070270357475248579387868518008004865274396176897333709287145126681231317659905341336362680865021256372935462390607777418236818355340567946017066505332762674048987291580957644784568368116923848776071562501685121948471333011658275880709798230714897916180076321208057963731883160727165384833530447950385716799025170330044748078224189497148681523619717857942713986032517365588622845539753652091168719148808421840465746565944843833624566568704629931240161767604900649768468796285662641091092500965659522810765931680026476794566221840550990822482911504356363698366254499021138021748589528466622375932904131154929022659112233978707850640168936794196565032644680078183855192538553876303170159737168925158304303093482767509410596190463994069363677681093795832935800935790493906808296140732852382963248493781571374944359199217416379789569594488696623058439350622966383506266680643486743592812303156460093300890335595239296663524597375929913446408560885389602771608166880117049567854157101383393254835475216335137715287351808342086907358006689781210032928149084235363261960472614793088636732584301801523039348089239450302025316904319799746089994809749509596817197573596133963631754656622444013348356736711975074883893523692105950690545168324926108833773130451454696837878021643288303128540561158507825660739121512423885470315539645968456587669398465119070269743425298069164704811182346916567042775141096124738232160024643875997134206533481580160519079419600505616027534979706535509081203001061036228605099997122281263608422774074029116270926728449244551186730921108009944303070076175122897462087809426799922133537956341936367715048426379312213970395711006530939209379643660012550872413448933170689053461572337584171293066930092127329646852116013756959620736477598709064164441264989555055344372455596363911978531281214037675769850266155631284197115753316118882405119004885704790619218476792976231943386748607265988691800530303472819616950010505262859033986612090733966244413280020700998574280775595780028747065151631876537709981941911065169428952297417778267444501768035217624534526920634567082992374268350316103455394888575939578125451907147153006560606230854694056114331314410351412067433008562090388003019536858887655287606495605690460530491600420409425236457910019395885353609730735136888825922393899550807328350789375158301020221856920602586318936965850715175868344175530110209411549504864630602423825643996658890021194129252770606853688543590435286433151955606658271719566216621306447414261019924681035288755501858434728545480562579316964180781951692270439718231663547802170949566879102447436436792458092331949588305001268428628751927191166129323670092886297367318861762349918757081219951413289850720783683974627023888190959423514175823328654014634533188653136237163846371390433765853532977174142675789051674550895387173873802379257396534358508604988281527642537662865689544498877103051729803375987435385274368562491842712061745807367148808140337777705794602761752690729982175880698097365974719648169486162925416684480252243194092139811649199157065087137951380750443498404218623463654644048940234083523858661061030617899045852668870651040363376819197476746203961001332330289996965540956912374410189252757428490787179030507305368339822701536468719297991864191770039996018162395498197252295753493004636513965219214182425625154598281601036708862380649191426568202273119297597139652417896512922271914610744389466563465776125917724276224043083941836199673245007261754498595120815007967375984336590046949470853175265969577855221648015730207681028389826287200788746359742733279421533398352189103596843692029565090050069330043862557565232624725236455725882899297602429977587367629619079195454757102904795774941143594102357858312956102437207938226134364545517152652213068835379579669611558531951694956393867750198973550514008787399396399585616532075405594937798487236328008087454824098720288631292572676488575471743701125437780351774361987617732689581516473480776456792110216060118008436149435041780787798929520503137011026232508994515365962907441650675397273837607822913432630507513471118726459251574193192725360356587610503479847551278435533789714623432406079483192058629648678806288864675109226567712949178430207361653820747126661840556940208809611194632994448640127170461353867223019602918736164310606085458781431546389060420650465856692701705964171092213344882126310682448905562685936365715766856235619458437035907789506053381906731130403499881463347132491287342936879814863736130716010063574866335076831122440227321784695082540569843132605916723418034495801189514435702765141231122902554344394088649581691487541024937997239320695127845232479303523929986596522570801954364506559151764499199712227006351458438139512345747772492063986631544076912637005154608496323558546985287682139485623680054032635007249525767525815106184656772530286506212782110925049923875644213582576375705409802741389021567705059725446238034026170904543287655648986921037890396314233811479394282920828998458772671855444953253525668682039534120302363058594554279368797471353238998489079459780825561291882916322550326721828690834311374771814336782440164416798159477157865691457548306681979318555000088260672537907983807065966913290553614916252559399809680758530609338093470659470071506683155358631085111053167855577139637320491080002426468186040032339031853040856614390566661034316407897699813322402647895024672376723012619168800258492851064252713078856003175515800187272739482630777311140106801617168381891274237460358338969460694802766808009632819848923317716046663006833208597065051890441601674884840273888483186648115583747590744002653688788625596579271485941473757286846374119908847869783212675392758582901857280337871354336798926152382841012439442851867685584930122419325176900450583796255653909368240310624518582033774376097252220263514188375101771811566478703038113437438364926570281650751150133165545279620394335572900825911237605013576985381031345210475551449588230021169900008507208002403917366627711015468675236653734606011443268097899286546192075076289208635245937610112843037836661951499397187126704815998391640175488627845280171625970412317773846502747416150852517589406788169426569008901864544567458106061736298689163278674375482515317199056596196241494804614683184972884010475496060132902925993681914981518859704217509152490628561038217435338779419643486344673056670206117260976506848179296489355162648708143857646788759316715358446625697047862273542121186303993135115725394184952876526877881614821821649737665913614600272668117247066019024919706947966918410917052792040437761956822223766476690722697151128895411955040834448638205177736082662636336316762158117298313774906571778141975083203425214689883509559301303957028413779264408545584441716053160963968368472221684346427818175371228551254263604204341294214552768509377362436020588956561707838523529888578532751432109017810640112275482624331240990782721625725167012546353477127137913313943005384968330967130151938235292454761833077763281434114624549522347789210489543605128518496484087695438241981376276301907661112469096583258646615599184904898801610315432428381930070083417445198585471647524898508804885315015021906604772789683590855945486589177567521621199544888658987893281113192817129317263817925795578793227900984546773979094364820191067058373514871197309417828971717694453691908008553090241111544871311450844936448272719309767732680283404981035150820388716399176061299597303980193286506760312863736506664698619327624756668787168109226610376429368480665916345321823008255768839887691454507706342057752055166078732293345297706850364614460099257945653685216381594003915421112520073778649434723050607376431122205940771672793669422007340821717878016811344301184589136156845031271577473611382362016331848357610987617454395583449892299040900831680183043833635459544254121107987655438745346489916909704360624328674562600540757471604093138057851842999637542316631939003644337937813393616808303017179362345061497852655447630697419800427132906764828941500325967005234739133219965066235591281033406425877229825080074524579710329643825275510147600634686991869282082574152659850073584674702928219379594823037952074869695692879853935486092771864099871944309802982841037747684892901769631113325248338102445596421120835240634970320829064401944148571312911806532019842555153490667374012047131830929522873250546540351300395794152087922743275220545603698979656820607156966407445236793777398021515548559304844983369913420440201037440956198264260300587851652745736036507613373317205925716862137212338222966259691184030297516550704088446819390477105772166146124476643388123170662886860059830737967940077094532030575997106229857833542280736018772999562091010369926226554879729848497025905978755020782833494192777853459215233237740108314922544432246272556511251399320026669262902015139426829306415760600261622589187653498091420752274733467645981669969270546834974676385007552625204066947737117466166673061112428227113969870573180039240685059375077693000091386980885378091450705286288928843905897844998418726707678027543947517047481725164559195762306028312128427557312205030980981400940530968560516047237036414192765738861362130288908787370928911449698512042060019940560862325101727492600351422991585246376135236479802550611069973833983884167944490320313366599883561192765273779689620559815996148492183673910265512900811460194569717122226470487511385046063731591970916745030660673972981240190688311143651891608279514180764388863081302824991684766936853382096082377534325147454165949943308667835919234697907888713977948926858815415295191470275273586494435232422962401958310842141606140629911292073067671123871069094900245903806914283168051665541328199442719058707053814796720930988395429986549390847215171855913655104256742081858268511502111866672053511568591067129134384201698748037751505438091034791245340240806292401299407901227986060514424040884000846544366689589131458866206803863127267776027896002260009726983568428685220965006515362824871211917603377897812414410787068193669179885135782076641602308613249990707311793145054198308068965643173460750127456736364184345832840791752030319219130951213737506246780319659196753962246864140724510292077338209522956505760030021010091562064544401221403022042560354077762762473817126724099358670042128109739676796710054248147844352067109001953426554259505642780783286310203182267870333528480993435270378837103185621675193666045306760650386427234405120648174717495042373310103000186314293125252508664437003993171851678290652486233189370711954319991560869777533065686797514966456573524766192115295898391733823415232819881599218919797937028680180882033587019504048588142619604073602944080368961911246887989756583792251942674600306221577324640580173153069500952039781531064621278108188396284240962216707913919234252199082347675789675081948774770914876705399757652706012530136890184652960060116383282363170549683005955553513642293116838606159173448414139517822426617568264527841543245879829246598395580275253994805166163089322618395067367845878673768825442242771505270199102757564893064651400194765217225464374915458146358691996572936747029557381644912492865141126809955160532439877686330757870342885134098571601969038095910454006254022487617441543248438182347796050523270958351028270630522591757618005527935354528928363041020400621411944284331748068090863296987509360902556396195900747948155662268584553995358805190504331989081823681482364437131135852372245948370064779010357279288523384516552129163300715381266135556532327882826147407851175557217027359540406614065983900716021004181261471483228311792951407023564335214356772650182825955711405409859706418681034005049310706352542198872988854414561481567578677495768608810811857462974036933054418966600896604344230239061368297602207037102858293484686283993185731639055933532910517024785931829527611743227214159162006829068636956607060884683370173037333924683891305371432915447075127477078889312497348728415567662756212005735012030757544249797114058188566260469167535830595483924449633701292338968935602077821012166449974048065987884663862422254767110817904409360669970342321298009498827139229213087321658711646306609570150147745227231015281721626974169280490684477786900524444289976982824114463893818528018487557074395694905776539857995264544958612461402183028716518265761391522135233116273859972323556839566822942767720242184741950353262776000790602754437413615651149544549478677122527237467158873101439676070797934268444258944935624730947545357970083521125702890762257280880596529866611560584048077576602152088509642682863379642861848247714293361739376572028716057954093904216012291042174931070054615162983839025641365547884887629150968599601251708680232832568515528501706314365008941454860541701626980033366065154954201101166929857335317450929945213529317065200141639758010409741512538516549117086071561656224737457986777461138841696621717110393132380882206628187617915487546589263378023160630291716058296341009365682163196559331510621353174293447353248885777508281194518084161173973494798659444461213842309419352432610191771942585132862305113451505996200697086891863398739693772827472151247149891168817873895639211092118938497853389110330351941840382767752522320676681448985916486915752017541148013406150047734717819014963739209260084939495082616217204608827665871437666275176076437478025763052008312469399195509727899225440415944929326812340739708725086697159805863828407390569610771856142572285407751408286328931285225469365180711723047238772008050066388899692280654967404261515461791305060224085020861398086977090060687859197166136206782805397369785710818382665635287843407275292273599925579395989155777877070067511781589984993480391115227033547894380164751620496942495304435898829509606123747406732019246707333879507342680869691004833015845486800549462440082160377257971087247946593111529778610494881854632201439450919664617391464511885837446735488983361606038014899222542923437530452338146280954748819512764585440894905975337390382281720335467540829825263868896896166299688760000068473563769679186149997852379104861138489907248775125204289443315857193230867362274076504027229839323509635289739882707096191880793550006722693008308748272792091841036903675112442929332542520805025667725628777291239934017000146438197486043002833848065520000555915429484878260304028715003635498890896166659097225386998990577437921793497218204849691843999508475314618971952155658004043999238367105824409614329655418281793163564359375981513361442218621195481425170369696475809979836381566543163219927534827817017967686158909528201962616353067152595515295846945850782733910378848826514479635998254033387326456546066447223620066385843078820103908073575724302394737249305717932671266769065375188774912732304228144357233138796975211597765597407121108071038244259316809323852913573814451159188841437257591467466820591192796752969347348651141492108994063872311266862931436047348151745426349794791422166340678237686142947936948134464840837397529482986635559076032152206895253683015082037907046059297809314491743804813964085241073662405072788702697584954748201630133359149268564639106623030083151715573681617389747787428443874303448948915653653517544637580362087724630788749818656384122430736084794543912294776981211987529664501466388521764765921801402483954597866312823104830768300118546019455756457758722303673484904312338195640006351341854799655992573267052674250347929388326544312425039340010443571920202783462319480752509839075033933036127228520618691124498256133233337376300276899576215537524293672155550474685358312643106866572761790713421777047791337509962308926184438708512495165990990424331981127852065776937815867356732794003939283569613179479983497961338512827610663213964725848830999196678337926202426800204256494785085833722688284687335951355374150151552700837116007366533059395362236768676961602284789746091779393273071946549311669404618089128224314432438675361473698171875435700674666311404260140789790231829518513108560078368084546982768847973657336785313458887218428013367212093572456817806322397044542709374351798987556133520307092123875453040842836094602384131308068929440518167309411080761257244593972608539675501587906497852490159996194780934969126840726021717910128409135391410762561144834496823666866083183487706700882582660835907798378942255545821438479134548019172325169367234452187982200135121456808395705255301736269554922001341580328611835922304957695132230151726100973116644264919903142630893491225691129470339673383395084080720593181237037146855070219803289132606791738692600194717272020988012499749907651947580746586878734521045626611813500327038427659248249696073095324699554144113219826974284140217413900292784431237184670180076408989440307042487447708451118865885373008021586441167290228342110733138561322403963403886932690850010128901808679582092377230016201105139032931788809891949048985907166023784048296582271812791810426472558679982439326272847992915971801861302121330065054765279275434368981257719177753391491978564999635107019873078356613320354336534864998361996618183510843683654312733974877618346490924957214102622582285841153076935796851620979770491539717440670822562444475699181437958223779480476415613199845787195354300333504252223827516235767935502750226820170395487240155827830558181885004405792890072685096387581405691751327427216875998553027341947705149761336657608149713226611201377141322593817417055485984776906668554277451487587725018220740398936071151459761149092533717548068926504004837613487918605243053498355327435063361135523783150802931856074021499155666791014873149382743932863681076066938764988956794347116767310742451734646128966963371479746503380615185085187851924693796444741192890701165759000658189598768877257533639058403698764340031286674831862253608176220006527960837709739880178840372565981024518111992348035079956711077151090891812156535442401290958183347267658784590653415277615119621110519974855058211166512677378851353110618200314258717705182028729340957140879732818877966963776056041111593120148805582979114288974382636990542860803750616649404233548579789444395815715764563556452664271139580713534098495322833882804665307197165274340518443434576827226387493745633083248892922498815879619097111151644901985637795100265525592809911460857204022788627648912714096402061004467438247672116370093947451663522415417332603155593603634515886312050699453706415009450019819326635786254645939672445046056351365744376023390433109103974693112078025766568482168755279166411815477567170700150355277720291821383994192692227067502812218498116011329759959866398417486914321019807609793129000227515724616197851658719393936064437699275211135338718211272824162224578901828053884395995579269316010081270276581952805121090397599369121408552513575217295169211404922544836329486012852123272110765675479901543381982822252717002166005987614204525432454005853648851186441927304033518699301360270845854791386506536570481844245561985779078146042666151008359108184254232717073960252195310953315085075715402394667217013446760071843950315319251433569480081673090933768133977608103687155239262473636274666382694439152254535943277207252150537840850756718806408113543170660862761425468290432270864089979176771287980399263225748792762545391445658353901148268945207702935889720987842853958604331189470356972813358598061922692818720236607160963129070914839270778558418580258981917947602076831663248475971759117310399946617817111857690057814103692425553162221506222169335974532867261117869878204454976363692284067423724910793456736905237621863062685508657239053332579951137490028406692570103933932288735887366348500849213291211593948766332509974878198545466634567077330582519237737626076556078175529118200380523277311278136762972946564864164877043065153192642698869721200129184618389438969149217333213493083936888679961809249625383762318725982201746273409405122367197641679257317023456746369558113525558641180482384131214865151811142411097174550605661797195045742366974531286705108355583890783973909850060039360449735846626005484972192862118962818570495807655661071730002822046869546356569971442790487109155294525503330849612460791859958243274804270126261198391359361195237021884681927676488200310641779975140936957346936467339915258522475020783069160293645012942496769007470162002367734994014193740061058708123558819660849955602986513904914585519923908255760422476903199256781617530607969266284896315306176477049777953585455440177175088402413698246292386143128016575884715908108278877125879716670703284340067259333190859864400468245382505111261127621458033503489944076988101232912629014838617921624730567281939536568219407160865666816054178757802723446728542757326771115564423211880903694445442158260446224563760481904444303937442693017084946487893963996803354017012701332310619680830879538449087490496219819473241198719364566886549211562707361012318791278986973632998096678876410472883879406624917164304857211125095945171011339119801221085842561021091670967662672336980273567793071357340589800975099755587127921791800946606364160558786067717743117264186843081675852635739949702934546665310458549628809906584616862238404357014572542054696747293432950257962409497531238110946267973232951582458684911531223553682244930627129908561788564069376761846716599382249162077591881306576152023063385703140603458107721188742754547528256451970934999008228021600086949185211758085173404358330027691450764188109677359608050886181760338432437020312389793949957495516861555898996611010060715654632310420655257326985686791507943570578486962072027466604175574225259036003493343287530516028077993972561864102048971603323117047298826698266608665689323337593349874015798242228717778900884344672234167110595087206740227468851842582715000169325219354773510555914600514321472666218191343551307319146587643630314575543306635063337818896735718872623744243342737716478278242233980389096757384153271169833605337726564645885280522685784987267452664501896456641185007900057508374917052840975609869576382683807891856092765898075877388860078811111172105844555583834462774800020021678971737306538175462655815700988638416496462959526963479089657425766868244020487988868478554267083430355298958275839028376710684067127125805396969746386362396714528603947574774178039525976367538591474559200075710628782759807019039756674463626001712943805526301323801805807452797661123964881715220594402092285815678100787120357630633466904250136945603545209299002797731334212635283468536365251926530541050556164983897525332236989438122712684074917833761296227689377137080157593719246655621168947078811916842157310852221303005352033500626364239412089103878339078580073823140575653409690482555447541262925736801633103545460370499017897456355211486378568077487825603138567784614758887404739513410309951921851523542648709804455897084419833550198023289369471412844699546985272889196435559906338827858726956530055540316501980102848584814698058602401065956043596920985163186320217495973649654809248148893694685267317879919067860812726844344010709333583483628448547527455398875463058089400171967996657477306796645269541126986313302054919500960478834641778290288163422318399994232409680627838824113153019984672333345427089293214514855417585780979144168426566682010973143647719081011063672807501332149836807525040699978551086158707713452350670371143083615665814342975967363521214164493689419474642661718551237881686999510622216102355770396309777880039504286044662644052301400552729795555176387210264130159692134839724227847500145208126028310455038897249851114201679515524914435604901678960645828328880880837129802639958048467517089934103636669443103155468612863182284310346683006656414513484294678632328197406864876068496273856176577118781759684550569949717803051450612496023531378695180155024170062347273869160700202617465306315907777662429453986119314702033341703027967239929522447037669681915119303246168334160916243954750780131155579332921042643228172461437076289234995430642701365358185095057379933046986171522695389884502367667222066365792313697055595822404423244325143422180181519548892675505442149419637183096637594285758821303576142366235766035914774407913574722469149493818452527810294820488569945926970969836200460574676804509539574861514065251452005273688862216660528630596266016939363661541514401707783526382807597778820726497475446952007829190856715988977972657769833585071928354311750298535257954895556780946334201920901847302166489534302526448481252852567645913914334835079607901550793403339855567215352673723112928292410559671981895768276609856335190170487223564336247019819000810090379409097579058681837699006776735206828690054297478058592444629605937758679555819266944022688982290163454932576885891869375006124726279932047205424242557514847863977470240162754631593570578585822192235677470199121000708456949902997699817582268759152007655833410624986561449825727657380076726182530318998063719736758330463367186942162627009126755140197279488586894648841884224674723321718555437962986917434714105655799620278794159612432680019706150092433193764469745768778473325645618099508614565180201088338029540505724975069296146526213569504532465469179766381700152455217132743317571774035253583203011243097564265275469948236340402187444640727740807618750154744183516583958750296580884345592889321558852588337537304498204602786869273664968664453285731797339143371179341155463517321001505280752694003734748501697196194312341563421705100117617629441813752370727598620365290734185867396443229563248355292714201987689151908820326658822001751104917130877667706036878398485507857257065727612039186159681170815674376603028035022152382137109477414424978143860587931459606332399784426713802961868140475832675023372235286543108021413683152870063057494136464469251918408313669897355129471491502707991295329891192765882520176825685791263718969231178137973052446025210178827848989053161925088345079065622611444045919430857702866239845375917235666982004494899143938476679722345200295581728721292749755798728386193832237306375454352104440113674033154875847592315601571747069605139899310887392951089673782442455725991096908262664158636134715494511027854127337193031123787968450968787228958550569993571768783881252141781169032211319285988473519178472673390223406971401487832134861920139325014911710239334132659217093136350848778199131953329547050643701984316276427375843407603111972184429920055636236181232424434773905309531479917848705998930338241642798508496881611095783111906709203479490502592088257380247027526805199347080790014545376431524280248176255296369744199365949930755184909862312224583517288302828682982205788939301212844841622524330761383220688830713888457176843021416359017830930109724672357507449853471653538045870593124694504526016257667567271110747863121219530164699899335698673079159728781444621111716961965278857378599418834028851344752719120213604053577142402527316744019945493858749832498410655607510240992403880276529830623178061870356692995314644817066782379265977518168384639846220938009542096885362865218569808591341196365810502412447311250617819664366600396459460325641891128965282026035625160073720819620761454017116589402272355440955784599945074620337745586948550149587266556640470098553265049290319170221033262377050297759769867165981423946389422964296089050766039244719930584920751619108078236152336554906511949382618447449111281453136807122420318674339508064170894692653886081192995636094378671110192638282108220065620419850135120960605420176969110228686981758140978946262364364026181532778561882289605609577264791470556380829878559006862782479105855799427182156360934389785769000143568726821702977889956193044289953900334487918903414505467708738730981086051860939552555694700452323108703815510778373724025094230427466021117079907166097736307000028020450866571885642097653565573181128298667401770090659295214020195581772452767830096944944338398995703684216708616635410092673354507644636529087395175453519734624623398116249426780873313235307299029217388496453628102064510774073662417822275033273400688594314997036782399032106070158310198352325038644263465841495127813029559770665333085415063214101362000969849832183162566984973200173377086576581965636962707203198867489699599198101782349589855595693113002184694164677666024737537488120923880607150720514352681300176122344060374405232872593999187826534345866929985105705996978439161269778384901182415365401774709152414977636274715629436610977065758347234698124669629782487524998362470880325236172862427771646246018921329927393532032556104219472455200740469814164946776883098922047531738633909454980202328003685251467427036819124416830539347302623475682778795538487130629344795772434204853620659081996989204746604901564456554631848009396697065885948577850709340971303138426035994166098347178768983922405206061332425559577335000959319127281170053114690254106905842922818209473427376559748943745856630490791749745228420446628050731063857553573057439485470205073995086827992032276073303514292359748606264099541686646985871759879602309124389341262818648639906537612996359077063723556957324770016259817426724508424960836424146118524390935248066716788023334281946312637742101052329592068254054094405948272330413462638116640595030158059368510092449381392987730057285809383449053392447967312071949812939413809089195504217958147580356516635516006795459771480657385830466782116729772809815131226948578710238481004895138031365596888643050049955980527578016897742946578700924629470227632483739210989219327182413199314154990625143387110972665001371517545878431056199085863869417952219872967407574459040045600399553844745913163224416144759611432343717303776498686745732635064865382853814291824125620141535416917957538598262038952743534648394239893731500620376899306189673073938615970028648987489434843129357728938818420401765570063608847401688514012304347930433455949622952665366933188706971334282725625722162513845400063133973525006335502578138346036972230524002149392533562981930810974337022388196615411934248618441037108380203657000563367483934893492468571730815600532595080109755280458867987217429262843856990707949547361947551925894198299611463215390004777752605443134981092344131871492302431093870032043556526026225424752527669041253755816547968222653425436984956923815999740670007319756956123958760718648983028567815878757292926351271329808360971785390729820755639654676626587566155675109098633393602655854761104086116691195590140472848624959435903199746836184059243370809290635327158577029423516560411874566433463486156511433266399785230886913069608878849979442357534371173921054069611331409354815024420645495920183539754777336348570911081501975814373379102829133949585880621558367634315828940127569017968736763104814777117746845176969639019259611881576202088458012405238261115872244591518310874031002016215332743002345173539688870458305792948936382535513539431886153894726591070117389120658535057027117778171549195800907187069889852222671455448512043873457339093275834339080167504380859961986208211709608842905549598530781258012652433937120095117604846809514074320103550731796854909506347443586024108766079689119528739378077352576578201768078538489033065620533372461240226387083837499654169795150217806519464588662425646321026535566603188447025787628794887617428607883360573851750041572621314198043922765502910617308293779397845131453677939156401806479696842563774811163662005316041375313852915308825402840930543174289025466096236723220093394946105256942878755916843148985084094897578947396317317939556453038716011643057053141816787085013893409765151173710125347695414493134103106729139470765648154170079286833039296121494839667299895622109594620868848804979131002653130854988532368011097129172309384099162721063348390154685118513717314031801159691118533632277185538784826672212399323560066839310641309048163981692002259035286750526365592389575157566773115089311767850226253979820996027474036047280696792102299410661329565299951400061710057083324116102825697828265685189020640123516318393200231774638407776924741355656705602734188215108661411055364267912437224297444486394688856371533231943301449736858639161790673082759766114822470474693447627299461817954878691065771267337431943715525090072848608490667288253876602943907920178474067242431592846253300799535445558169491879825586198621341024281272774059654034548785791820011429838339244294752655243693150061002267249013229514549254643591939260836881062540506200578451340456503903948637486711303817380721798549706212501224537689863279189190346555182067392552495829044814204890399565148236138485950410079608642946644557906099771451250572227826867417706417361548290394702272771694336401941436542047474916582621019941395268224909422088004432124990870980770556745794199729585571507566034497146223439029823247928135796712991737080670090371195595444517910339827180031898251578423158113010151940494873968967491364608050329334134593577755183058643926575130144500842273392435765708722668391433896720266410666009701796401644130013174872723352600297207527988969975974504868248928167089729230836885966074805378645350672782247103375496260401329230402965135379551994890057796798624463043737164724891612917629644794162674268672935315390461182076115031035666452096685255024999772777118546454581747878330995075191022225228956104448121703247470875152785142441530244767977106337748943048703107365586654833231521762126359751833403601414348415963565353627065294023705320905653767212320833184206345400271306050097361792957517400283841717121240077179992762875304841316797159110342595116138510628033819103901476095066600267850801236344455066251903098415335435946746937007105367939994501927963878448638988664486282811375320334666561675885672197067263708356628192622120671688997757924028208323391833727246332856706643646208160750543646754204478389010196000348868496051178282409789050776399580497740230235084558685873459684859961980350016069682841525189580931538345725646852393025212549849743821033469448986367301906194824238012359344895123966483893034590147494780845131881869785146497887091758712520292238833229913477735063160132623010219564899849504672369336689274345718851143822664862791688186890617654376113475544160360155689888093166995604405809181465029450304307522155368775684035775980125434014114748691418805010468879985853098026804337431907731037677811078200377918571151092591364028978266556190961351310605644143784373361140788197850304586723419039765077519065943914979879151748462343753732725503456905904014200583885829839190884080852973945133655737190440391642364914396395985007678558464038717428712672920717420952704034644940084286348933468090739699117314392009336776703562020106943878248161604764059081896573099119707462520389123463548330094835707437401429295994265967241860090429330052237165301873355094982275826422207019923388559338654742440921739630440787860138621049915167168730283725722183264953649809262575999671147334475361890856101482633232028822150923394586105881825393090253451212003421772069618709984863909481498986741138446085466493949184399348843110283213409539589585434621787100223306307258438057570280484591830679541981970860420309650234736105684134962805513155832000211270538598859648687508019171318510574064592205876104555051783039920345462146071892048250536407111568115867467165575922451961059820944415394113951631337357433903373077225674764342644691408319222903470133035219054842518940196339437932242976115184282649401440492350015581284921553612060160836466016252241755162875460495847679959656316755278240793385288834601550661232859102385871866119276182824054245343955827294797623079695558852918117787828436524085125799491137738284879099760622688633282850180249775823756856026141171696390261573690010533525720165556133278738675920370246916408387205918494251621215384117276366026500318939557095967382285352974395761934971678653447392753769705259798058975750707799131422960305546252823124601208302485758587847553644697579145063646634092902181139700695813841137924961939216245595925752453595723266835906983603055812972525037846688421225407430293598270333089783756712430625357391520582101566103490344053959244116260329629810059412449578115957655524370879487870803794346100747041185418203128081928094012809958167573266354168075056082237797593759343592641143263729299973838789590546735778852189945004112163898471341760147169868302811955733567125810461072344696599442762004770398739436385559365770387827538021949093168116617933250294402438601502475404147250928802425857439121495009337836763049919138981875067166467396802940411669108877996080166613092955180979724529945749138430972241517828022272303484551923593000357535867279874386280328712529450015291312743556433915927174261852921474197446658514640533184697246542818184635487816728111192275714378274354582672569395684548258170452125632831950781289192390232238271831331610571056275266181478598934011285084699274088694232668545898160121900257651669600689858576846856034094683813053766285787720958770866257728696746984306572586236089181255087609741436440652362558402211763453249371863538534161260200740993819576149576084001616275982389045573501615669025604195851979197170937688220767117081102656047922583500653359136327923775575988837318489369840987634040694095209513860233790211758022664790573637393282463647531359055791621418515365149917640284751556351034669658047887890937521610998971442213475403882257676991114348275843687118362055459826522374189834796430941694744298715417388772515341004469338706830671538794677627712220042098766458604937626315898529420449752358077027847415583139809316684333432330403966576883474913544931831676872767495070462594073084390688888266755432881903391731074985033945594993330091522944572565562760330043967602583177804106002723718662116475096917757976754812856480415307027853269254229322586443466998931085670486186254170770192851840008667252749527715952330520086560276626391735824469266672928012107277506797836599986422269102714872882531839989536769378551632828103542570343042615090963428324015756273536052975508246126729430951384176638823679453547829201384357264989633556930897035055992716480857889551650851333602822548521668323876814808337298226874860938329816025201370004016109094514086690637067903456115921180398257882873617509044151788912261898857182683215503295719420763506523021557175807686634305978325642706334264564981024282898218613737967594889356361127956915907024609163863207170180602287942289153521079332740185936738097790041130487069462841136019867188602729572700536513111808272781789555333483466264930045288912795813558374134527240694614027994017713617643086992710976663988414001452818098066511736308222940243073113740428777234472165177451994327272070746615492564081959821236919603403907653183511084484570191723831673327184939173600127537824507757243565706394955012855918163284177106699300293896100070574210002068936588594634864645285972841804021816273919225011959893504642884493187826384787451253122717178049622495247983764316649381904197577413442008934607564793232120744004422561411128086952563258300846079281958801533178714649056585127936833083045697385092862484360554128837108368185031351173878231921799149669589667337733916480568904337108538425741122894686773048135415778040698532685054861902259126282282868497141045523297677483954217850563435461409252094344621337396677481096969775916459480744386154982693960184047934701206328923890117723160057503323438692545978492136315229008563793568689089684037281165898702554172297089357219290692098920168277863730362314941741337193364664263810405735442881708580500507715353915210122259968249751782177265995178798742020497389296609768882118906401138279462619296789906730393118869465356641940268841108592999029221030426073600116567134909099175741110127441996962249701706152770507585027666825924933588475760866165942413092019690576871574534515900389671667991256354415305751219605972803953237229673445817481012113192036223320452963629799444101521861677307271378731362446432843703067429307984622069769870281660848120765407306493329412598822361630237026182060639276294375304190203558152147573091776374727974162777819315221146344716188462971360020662465572385132294310900412572358018379971182433918604265188457316444767945337651203790824987377782037160280203359423449993266096139580245505231897482891661162047231528697060524559170044584049731017477199762823402892428466047446277305731712646906125010172932239486943950231017196717199722879607972935136009203397696903303063255484960223392179988893948630871833759369243107694866375112484215122584766577128048562843588458486134177295729607927789688528379830430106412436562317397055594074140026775536607156329538999142482236107812589240662057441529140334145807172543469244492101614368515446575478728327785681150216039202817638868789536666081923598933072093489537743424296986029764994913309779868789055595201740023545234772217919430118297044460514554513836643809667683997537593266656565166535394419743224945667842922467022126908804377160363542316268186831468833854405411434971904186912251061677139939382074682928653453955735970148042493336507532688912786402923021823855940747675325217127184386367637787335712160070480439203035220344140695224765228435974062998815082215727742969903417101613050107704065183691745598841906155733113112722346767848728547976654517370070100055506916822342984951221644434784225461106978133210732328930240915363463923718358052759363536684090570389947933917674062817059488893728793073831431982614403809029322890584025682554884022550086444425627257070267624028831353158213974209808825387210932651143142850073782737476844410868675780897408027123661815136327753088565592783372403205069471872756934070582539480918562301932461507796743747772209015673721784325801700866311100587224902706848461138595132971385998451171385726348821681573860720353982051906032133795868399676401475319694668209393378894145593791203310299016091183292728570984757779684101321031046533840169265212356924806343640375041535943767757854287335104198788127684925742681641026674685940417583555866611414520295458236095782515319130781135649228782869758087462910247740958479140366763430998725135118409511415815421840022975602041517289621195701684084293391922438799533431837335643967756525827065737579513798819161197510708542933775838905595425320434546106181438202704939438723069555157633462497552991851727277501147627209511081220796336836084638984738777200787540573157629056037971561991440553933095941306886939218540663501212519524977046474385584654388293298291827360840972334361587768391033949387421136991382648750266882262364478827833973293598091936218585811220719308894862313118678176746509291988409836912625909480550236780122007067639009534759637557044244288052098987894741124219928738794462543468143610736699978978671859453134312025108614827798143539728780020693756644098138316090705502638016018734270582978435940009429456902594079199401655112654561153777695272007719768595728381830698317429739254918459038878502162569122250288494409404947224997497902210695474348042443281251868221460356600071103753450716894042767405305573171980729983904739944481005256416721188725800957517284595651471563619970054285485461103962253494735382902031607909324767016252021571351074519025045794386959108362190194172876349270202367659055077646333876579658007885970023899432854309920220522747942203539655163403143287322717064705744703397760115271726341027868165212922561802032281580836988763419569645790014046722967752652915810549447479862287221102423815843688403844525466638648300465283566589514199788086331928008622145732111418692255447432291457654248216088544508705578700241011167515730037714116438185638349375403986533858343660378063106257125404644975743123175497246137632541186395083248533167713750164369015260003563994623534293682095340234736904846656174022108741197577197354709286327545621514811312142900604004906124787866900862140082870512494127089440078693808620085281165504965627337991763125965229282688927111781491222624122111313664574949808817564166622768172339323743116406327332449429609584300097154320892541598357401341920608388619661194292864613783223696731405237204124671757906998985597982173360791003399501061869048335584230989377107992784217906520851129114652534896597847756843670308834635356142309649804784949195675782483906556199858593587494794110132568045730195209519692040585414952425380609598998713239439796681995130754270827986809392653963433080367111961947484221396925535888013696167348423462746978497391955111722424834247545223434498169394804037997849583977307196321174531504857276037072192974287539349297116300169969625414226708226844407638238924701565672828963377561837479313762001501506985271419835395395587096130211994436574132125647703797053122971145743439715072545632109375050753651452949617356663905226894482248941026064454447093651672614223048072255578536470688557297232323002084463126460934545286649454670594860704215665347286930336906238649218229379995153282896035684891078565573241447927365503333266364973457426715526327351206325152797142510736862955104163319609046447479498641939989011847421841855338284057237578670855483984786737843843749801401618530178913081710255653005759974189579872430805126489377842410518284304096749713308356956514173283546981910323908495190290971322375391983692426856247277957125875018227423756465253207981286799448812215979661500125720732723692094164411782347777867971367511346623417102018404021886027040150985621419430532534389093194048418509113589055674037954215404370517795823809696413962479229599336437665425697816047255836516329612059567585182137969431226714653715990591455958234742145253385338246416485947892246531043216493359289321867756127678068312935463977147484984741060132579478089816473468148870590458697516103819677362711478077413083521129188795450289532764027408198802701261384647112294731776202524517493606347251731410357253282738747825526156624648835915051477324987069436612638992460034355603929295797482583227205929650575185891297978902517226614938874394280482260562860135383622581466112242765589960668627762806038110012183973760486424312609563935041706689361221040124224540446723949183040363320320721253446577211016134019462275552973299366308875230935065853314939358037459399230489537703426441992807250027494184709678417344287375234584597166932666356757272500937588123246823627660749569120959186868982687870104365110775684398795961415287828915029646305886853521674325061991085250000925834969644648628152488538934218459434227532454252871034698116224609960974222495333934013506917340673991579912079035834509651145275630350941096217261107136985210202404865483105125292115317669272922914689945581349730868787031651900292198684027088836740163572344783382971854842402513837772402118445490239624130016141604866772660409426935742080871163084663281506014339592177439633907094831316291817550086347761887239715391245010889754705238047994750511751933389497450200111587864401362728942149387071084293137097296127626516658969275825522350366826938429666787336085060732349656258142030596311131036754245859456784269444631599719703537460402134283341743148790295793654503421493135533390762669304431099706266955663381360885084579941930964675263165847511814686980526766625782221677606565447663800482918344518264050463007903405471629211498260788419221671834607266070558671771526007429738811641830989245639918548815257328238414477967158466839958135790416814341600937599885164293770701823021396088594841619322594767077876448343611852418615528866189950847593640129148625238467238938560730124308925583758270478349759399886374427674062299199198127455719197807511097298423307903113005497590375339380085553741323057204837813680089784237691043798991367912588656815072158503928078063310722919746159985282708684176422470428285680326565786927601835969474458722916510313035190206819293832271001619906184223884278215714990330057576071101847072486346730937431096411646557210635805349349651777208472009362761120479897820329986238606041894063212073181649362110809616790182242672235726575327178277386492736145015542207975202535926813048488400864156785397072490892196134514437530080765612453733905890988757248246178504125740091696017867365589577937592127943002136817166210210567603819824675501862396534965939166985448825143925594422526442487668054276478391136469584031593604633034212499104226600372102791789402802476156858930833471116154136258422250355151034323141326361913517594157848788449983883017257107685127973588677244322103769865697365926974059953549186874169677742545828278947394316991951474236784955797479916179851274259163879208064507246312691535246093487055628624333664308853635813823919253309406368587250787794746123792367105238896779530748631559651520040756664224278239160113589202370515200003966748940450910887929517560554741433290682857859000821728626003723682075158076183559581529360431291112893346203622263572059039348806319442941715120175280047207742865415394980158419466435415444346659343674381960986360850347880655944165034604372689807379704047845329862632141314229587015213321847454938814063944152798112101509726171012439606231075811305696017931403830577980583016388501442292382857699764286507222975992317395950931920605289180818793214916315360783269141371077725576705336099465625339535183058496661102469236407912454168507829363723784627315334431906150253002657022637461387444524208642565591426950871421192139686630702934206376995043157110559460441751757779130237640010856833730069919102459181727245836186416686954268262868441968795685725148282028697053015619405215355477772141614543609040690974092689525214526389474898174779745138363578492693100926579785505941678174979492053209880803103550870256384525204399136037646039242634442250083231909969001280705676728811050790178615687118327298740474375219147303521331081146788001957198957358728021522373434727941869934029630412221435658207889002103773863503462873573753747513165147055224167290616244748597694459647241757110645092758713933879442669659803615508271870503617197518455592851347504451203784376934008075321595062488851701360013537395620124514531397177674864963132683933372409596293597675476320515673159756197480653006230546889886734129058693862118172594622893393140482743582199182977360070320355300647106080460524294656885708659193549964877354129216918046282878566545249597124068095673286560768853182004198521012617614373429985209174424211586554188097601157705707581086856631264985121630976101268484175619816382926889800542307467538469628050990757607044816668111483972141155414717303919701196410117715406647852921106157961446497318158170506360845639845466410029980428096665374686026905985371992291700613158597568564663719690637735251107718949618959037264666242316961982630434884938921194722622559550987807187830687193123935539982837829857993139347578902261430675278295223967403637974312305483147071523911578078536051869559651090025877449433406754830757175765687418941582938564116780192486247406303330181030968085028174188016844368366321050375059429476963871388153357978664956511686413477895143973568075953911608019427035427015123847096680802189255026855932421600248132258767972458244582841700001617772914479558575793481635912122615217117279817018112462516333206024987945526002237686100112388058654972236988178993274444551671998313489341238007155201573802038137649670285627684836941866751907873757156458326683916512024556520487868846060220189973272818625595853128819571764715732674542269938570126252684055332674901064284642923902062967284960738328034937125606752870940055641880589101053263521814018379039144720515533463871901286944351882356790068886203411136034843962164642596357392494063598351327528721842666137047486617856336888246702970106369244080032697064761476813733365774490314035709717661343531620819356927140805013740093538662509279867157126351441851862760052944213709895401780953492124108434949116771197977308506380130820960111251075830342628462982388756366256270610354120182161155576347605686442765672353306330681210661880341797383940732546437313996021415640179312619649238734672909201794286475588767773256549729097199533389875419801944091660054970746038160909907593085553234055606991880862055363219525365786734719932334312080339335869508365251883817225692122054912242405552457984000822493419400215776333304946866621276516779510068495940549229393829701515190247393116293508967157123171823206348774367011170946690418672673275926910198193124002486874232196990436874172954212815052014451216736526307096329481079136745596103218700187004999434446168856017920841705885017286518602578309415482285387769524206394140075273236165544402513843753157527606174973473208570998325860179451617834230278741976855711241749423195429661138915056018626049628902817561940908595665687258925563793973004086681802168258755315950156908290877058931909673831995131482024844975287860937333227678348692016631191878945960268284689520102617072469521190027074386238015290812464311343509689167454819936989478272258928721748873324502084754083805337986570979385604501406990490527040404469800167599027562614798677340873431829247169923310135756020813882212310459845768663904375403888737147726738380007892942593250305975257657531724573055771075435895726071580697331938427714952783282268264715328829863975731329276905263060415503731146576589322649957661615748943099935680911539145012563008654320423145372522397565495305063059158575704752349965078355754518964864413921141173952841543924607704466779847603867946656515154332064345755892901912637434657858173644905753159082453014746135809766426844512778564249497300157735206043681877975321555990529148282015723693420678178093866503055648377273161781078074629413485166690671322749826992258794298371540032367953470549773541246737280879973465586529749909155176651035205867962255614387546417605085844958021894937929092041475979392110140673967602491137096429576009487268736709544306379270074632504989239501599619264758447186981892299958998872862838916046027546373324103266252456471935304026918716849262791320242200301432939764941759132627884751122061909713621679231868098564765900012835777191074748422026846060012230225582298737526030673199179344945973387433837975319079507461962532552986629547031950148436962644223533104682880211274990473529272299531239669046336877129891166259362059526053908772263099458886418992480373227290235044210285368248747887359945901033496485774789674831349466648398639981658924264404651158326828423392260318811307042164090243702445701569292703042734704867972425749517565342762580832984304137318418235293472519223529413024770767370733139413216581577918799934851233893059390392539040854731007937662377248677719000435372873529537306676663899100705108496662285024767696570330222638109890856689679007897270335563105371286170618257422743559363566489044458999125188401399231880052534891352079328453867506136129955800662379204633283810221893005881498179729718537310815795305190560103372472559228437470824655816150623454616490355314814735183681978493483197412472784326905418007929277902794690743516665559977916130457113163344333640466699438475736817646646775265825840093147255575865285088439683532815642528908737858249986595926686962907329822813235481174081982279150100687816320196741662124674420679137627065768708365585333399205712833740410879434004323523488725999412997905900529258327614377964537272188406881266381127857330880298318555437512229094853910660904763378797709654108421995162770117271189653806695857693208786857329467569458156768038502142050365219518003155750515746938479972556352294059717154769589272326615426834703842140155870312001525002004593612080548659627822128458864324434254582688324422214067400814789916556400151171174290990599155226828383309369023251404536988204605302700009256913665151052137118637898999481386866960943844436276189099293821865376668087261557329683437919202655355713631997801549649491662585243879868408598261662994138379600211127250587503533365419249154628501001077777298347278630146744434298191134301254292522315199249225897285068900749070551529060947048958179647524436375507883390782003801915741158897578178614910497605489997780480711170135229089870580687693867083362253428331557442907309100754394979661611758489354778723405947938009560249669909439954100975991961263951805017568461077641039084708392372214914857308987780540467784412720324262374117583267219664524689607579808381544794832910989961037864191929196252079832600586027368548451094663566279064368739832856889430316019974024906548418497936005413344458225356858375935417968865899172968490243271884487148236339223815297459306385358815412698093687421076687876243682868332379859099007058983564645223598859861879908170104593255364505707777508420063739178547481279101368925005104970716017781282746294892596065653872659567291552804725395697215763689950710789838025971317943909212097711170827441789332022171253773954465757210461474469426530681810406896408322709999896671799778737993137888883397888331108427906506660033376015084802305326077054427758344267462958550194805473211376317695683532954717335643363338002317119817269234216800774296090276205598071444145276595070304780298072618920855603874103924221695460130171452781109496807052612327320067485948595229251317145972679861089005156500450562545079983032185945012329287558762027646114063625339508916187503802485272729887186116877123446649679865310739292166575137702796136882058491701596172452433149780116038663190630351306143683398981519585066347741661178727826985864802696914302306504611867593823625719447303064048352456826230397248967224892121540569272390986966623415786866476612774093114528345232220424444664349997779654749483706509874840933885247216464022150432689340278255962538038395820028314686552093499083419775120227764113796924438689118763452370667436240355768891565463929991722243439628331658631557843127339667560064388674070462815125133388327457351978607135957096783933511018771037952229683841600293853381859103990935155962212316025182330898072020294406711260288408795472295221921606867198154914716686162694938273510049617893875855150617248700200371033132561417388462372451926528830996433098360012954956172107894937684184083479066733772114467525438456149553695221557680467763352840183295482892565857248992371246669273487833869823825082890350421681413250359714051062890329170472930554699169673284818572391899036664358975256894371103519348722880724198894299323557108043344090481368743463806392669623827433263532534120473320893701911253881870242277931765748597095833594876300790833730882669635251554108219235773670606986680525600130798966258462043384384933582147914576712524850740043853886964651899193972328813681982563842937255679640197567585059091545483245030254574660464436952094154909266907892468182836078739683184090767575077101852963312818466538488178687292607770359633883488850136339227405599459185697848841272831422527106638317584601155098386834878855501678558379652078747587625264695948093670234133561555927263824995005020781339486044688886668266743842502420116144983557735141789010260910796807542097759022228490907588241188827092464256023107582276429207374219401773297815077733776177160168523799463375063002908659113120993385078378117352797462821527537814125518189083021717655085873791121976140155212106824919785413357507818186272346400593016489828869691056074955228623843324238515706552138067342630164393192520029854531405330764972220719765715356556068049666931435334333129817135797779004667740865837532631927723305717895466529588232037081066955150243813235194992888977179242738983187838419763217461939432516740648512015447823411827558118921575181437383935551422205177927217313924189917795010025922744462367953390263364820732287645184952463138464823986256520658617580469135589058981471311169945338996712817148220869645399539517536563631493532645712567304678711643968793369113626492453573166572760712592742721751418038592175883680343789260704036896146865048733020222297938214684565489299580730874742523119213617936651766571625672810899189019497170010034156299060415421301557527995158922454532624412952755845417862769909902394630392073075741413684971169953144253919993824823877161538714729562988415743358194253294732244273798148083008098338080669347111701783999466549597212355693023364166535444180300039370420179621853323825808793748751571201253651650715689011237114483296195260051954092591714564242397786399400020926649069662604316796436379776571538462225882506190024075343623036589028645715281144431593711487765509666845109219133865926581033911903346837271149423989587034786142074088060331001992271526019591657538030732682126218615348854646772834257467183007598831441182720493623905190340574900281491048372873381262703473701092992185036749073680751634962828236489522373124728743597380799431502048002439075048591681107024561394159855623091761289362379787387184702630893381687007697502536792548159661120405734068879992365372154247924839077153724988691463242001073870782105656476941978696766864262587895483768900713611073392431221118200570183200785967288173260436750903043709149882725511155303883678464112172061983047897922976244925923096570553160808016306051267782509087731360924921620233531672992519462238578667271559394433472793206764404209653981176067742464527624889287568698332948506565673330303077568351902544266384799343830265196176134875535005965565012899580723449171304328499872025876277926814251668763677247214132681996576783309878966163133144840614007826262897872202400222001717321576272297773717153278284900154393368771069895035486035945262461010882047231456650343720854905447664630677215173192769061946121166098872798321409379189172373040408016275129218117817487306018063570234070778308278164155841998953179789170399148131346327344633908653341321976747206661052217768321784697381448057584241100661246861558289361051587744338503186896045174190124023903090962458024939290234922433687480518278439372046113848901658919099361124164372939829312051327983435586497229907389001589607737031077504662832778629531869432304947809805703336378172149269841946635958964362133053977867666391333179312697982553762978171571879843070551104858847921976752363467085842009186582388434424758617675984715354366880383513272901006512730983183209257777426149820777924593271883304796944271282994884837009825675248333037552414172037027487453530374789666267347202905171220717647716891405923345894151950422181242582171964783866740024516290109283239610023109361008238256039235740587798718186426767537186356377823381250858717218308364973819268974085040578925011835102977340236737032918280740178679651136284892634250374723402259833880529133867587871161948391944768088439783345672078564886069834001419639916230396742945877028168438715184364264191004468252363158023975375391608602039767458630781510921347392059402291165056653975183418348552461671165641347913913162425878797036906717466657210551566534527620862904769268850241078757053133783854870930835832194384083517778100203516157064763532758502137103247287105959224658187553757057978606823121466049851843343548549944806834431839900879588571803848666933407217204645136967776220349318408885646555923128775982942011088630774737758478735075894086427852972068872277877078440498860450965021765698375499786967586077412554352093199347811052894931971644581079388845250948795023234641542301475124980272393435868593431686504396033936068028164368921409892897862704616008986229329152464770210204270074515223240021611622692175304074418224757510224078371556042581498406708653382382795451277592047600780178168297864800740517924924437429889477665217055659119048177897675643193637833277447656963737740119997836969380387612350928146938835667467905422046020166217522962291301997352389036425085561456979035572742410218582177844454718809468576303341952180855055811713953740468212240295414373760627884886207168288913629052816137571452124812066817733726517005125415840861645652294669062179216551612041444468401876272323445862697023000078007913236628520734189871197541163426470124536107843557227877598305496378170797732016857441396056443756776337523092454585268249530182921517264959774386491492812547396782036199063083067781412537530848667351501440759122819328565489617410553819084102129967450274936972550209878448468377717831045224931024916136120947000385605584350462161503162476256099760015122270947989996940234367990504820361464144244626043098542133832228912441791392310332332801225678968196342727404831352827927672550190441224532626147389141574251189013593677381027710358231017559636098883633399579089175879613818913478413427119240900263239808574349134169104711083285059952098586681802472151931503622549523128520579629489456749281168054799246486533499277663964127750543564552055118599337000835703227010437594442599363637031662028390230698311844565753885849051417510933924969605583045191423307200435773381423165448229487522191470112514682925351863171672013753000993390788154845162677695029349119236265833833967393709862939731676842857307332253953105654773425389405293021735821479584716445593968639545825679819301446277112807046284619454795107754833284703896650988971679558656662719271807941685380086080487078084410748719742486541438372438245652955063591620212693038745326691700350687628757940635977114360406729596608700728556047254204353831384727362255838533485366432924424333448949491572130169373575451456608148782931366928173464294008162854737664885759652855426164240213639291623606255759291465702098125849419369967988918603504925967257005725906839067215422404694357100796049330155112796854610834555623263189987248375695671340801970525912048039332346987521168498637680782750828811706866533057235191152043402625235625182681941651884014659304630937323376914112063823895382319419551367960962730061257313571469674124875495334608051618389975792642336599900701016640035808806512013683822265665803659523736167503482045608967026167194876182402470046008796805531269698464550045810234334154201866902665774619162121636056644750253369026073160049928528800881655960711788859796850749634344877166259937405400049897755048114680221908810935950506712188303762084543641841446789955032268885553623220196371962517844961847992938732903867720789791117660138017009999505301216515050572639823684325121695586127157703083475424034492211942029495651765901078786568829314118180001720023180115271446039159153177944843902208811782768471463482479211366747750006888222560641083675195780270276623818730794190843500407607279092977156887059583967336476161001615310221303388245025555909738947876443983210779828840680851400699773466104299537847295018628949542068879371183658639651525968526133527990813801670265107189589477553509900916513255282589878620046070971845456883669920699565148605883871557644450874962357616433248648282206997866631929511121388106166004675195879780431480520092227831665363593546569843527211017075584496896071929559633749667749059820217162620726846632041556303407986196225453693654192684940808705254653833982426899065419294210352059401574980688660317733400679395659242440441152580811435291343987660753682063310910337819154444775836525326802883015990668681939361399607810946096265608335766450961197930403751786675110921657051331805311435934583061828102738465125779809212943672264557275017231267835430092267753319246611000305095484593886304579931969877063278328427604641085247620882025435760325312525322690311150830186166200914131521366318229956715266900039334654160319180520746657759092242355263933310031666597106193521759001034414360781030873415849719680477238596117439545211041242552903638595910214252470972221183745291366347592654894616983892455291110852348624572455287466666614673459100660606530379657971375317265082515942234816429153931196054926864462170238365381503697058850941329963339211041285611976530213954570663845341486908658912117000196046679170370633993422084328235191828211242246129941780811129088491296229491036796309833701986561867508305929062424749489212369185862229203303791846543925282116593402960253706507587995959721346674707885534373443826927150459701455113357368052739495260788481475817850256211440599989702633023463151933184401546766031918932038173111977079465715938201257156466883774087540283658980903431387540407612324892291340384502575171821075819282234550461458289638679053418960285316338770382374269823069325847431249483357436349832301124256773851840775019328441408751087819463684897747848499709551862832819135401396682940026545290939458946884210205902697002290459349729025561741777030454756445489228428211892534685583942371525952173819661372950571148238539358145255109637877429981404605829096794284813931105211425740917417757073877697392038943269024479300994410630230745464954047244761789155689538520441154652578731423760906478630154832390161252114498185277870263594081611863869329927169447427935703081256650732312566674043627708923478372464055260588707879790759882747787439467309547516958587380606696856820230391273048753862685797906030717549309469026910651938041180109005349344751840988659092491591630891351289164466269103384519911463751869506257222368449784800170326432440779297966378897801007940493202889553256660343630331073556362640461204204210236162689148780625254431213877669345492874725110162873565302321471818500595857740662508531902555047773221691607124725129378235452491493952323463053871776357031774323538037074516252656783124195297226525214058719746598435125294363186314675112365808328265116767668774108088902016140509785413432014483167152773379277883294283370301116869391910737633708825456912350407825748000168778355015881708253061716695872703302703167616010967658804682157478952173661926343181933678812980471922248171151616320789228286125597760959299157833804926607952692815379713432954468668019036795099951324069042115191786873511220400151549919275433246921307129400315040470296745787649566713314132966701974811262398388172991255450832727894871857274381355810911013156561605379670124848748021020138550662897000811237442615454103896971827895572620800149095747111601923961956639125085080204693801414806135807060854640111713420711789446151592764856053951302333279441784615486051649871537718721641879136192901741556606309764008787660337619283767893719065557247191418240138088434434057096150303754626205950202682089868643193651899814398182071297741255364766693127560062358643312250200445532860760451884936227170074432050673069291346359424179554607840466262394227503435057422774886337706612380724690927533793104940954042880545378826896111150195267285239744180569996992945642235216073232812488334662466204985735304777846585919068803565472784781475212193671642291604587141169298280099610464688836465741445149905065975229631236580390306145838523873681840668470712540490546005064747891968507625122939543469450193299575947455820329490274847070774423359623467992083560943673515234720018490348469515548837319922091411094051531215423101330128988626147535080928753782818834384698303171444926346000728885064002614656184350884940556309293805704095329917126878189784470465265884013808143480117912009746361689262929516665025066423118784723903146409572280911764399610609606130965567697286823330189154749161878050600932041101302600942116676064034157512632598145504349133227469956160794118902100999717356612760717629337905202519627026955069095932481681131959608320694392866653184984295462153478255790312867696128434801914415216436165460702670534845357898382193122701155902741658708060574987515001387386422531240592102454277519921035527699230594074461951717066526975593642631164848741601461968309004450567284542161751189210386135620725500767619200120766447447969809151832047103882181403394604221106502358017203112161031473604552496891834140356794749227974510618090423673708478700164806695253096043759474078408748157813933266382783838512528444106260595877607247036904498566105958316091900089006690719451659395851530485203734361123830700976211193156538452323136028673755401050045996764514627083501263814026039002167804880013466470266077218043482488998443018817631843433979589647703132278096808475003063509263497187643365789521771768558021810798200136627150242634780349211383978510698935278430661344245598277023122715912624950712905815760089035378837864014324578166551852697986963908290659764213754888220136564773898186839696639928718377553909358983580764629763752724274149637302667431012877949929947910110846021104383639101873418350977228474450026908124974782567512461106783049017775347813769263312163037589222579095393557564013225336151740319416590174754500663681581551319421349463559065129061654821289555064648504653870515303285154274811366700938118171667539731395951507704235264659219009424242877502418203202679326641114270866114600152850908374185771682103984433935398521820152345597526940476743266289835920864720399437150738177556430875072332580563362513578935187500718697466265697675676614189624889313931425830307959264367542156715454938260546953041276631503522029447352660040928672027523012324410821649229861365377972368396187088584380156837406965272106258335944511397841232827331416558919468665940678805630236571954437451179237038947438770947877694001527359855272516538918692987477222386628976324996583311157047672763120360692224250058841493023399387557520773028398505825118629729466586342392120607308191361950183390997308693169759518668757061775209097864987712836217115229908028289735878321273929363230128061847813834127750586770540293782330571919344532495026433055216208283025325653004905743121030852153221680622044649121748229560618491559074803607201580257511166897049222382434478893072289558613515150126651408117254849439930123715038049559251484602511570480099302260202312900369213305703002612076896357929403121052654832562807100946728078664716858251421981281323337420541720007442119285570507679570545215489055864335217288069044451175730336409370225969062074755305267479741363543416411808441926147098457257466675840207695158936158669847664458232725708292127716158763732915256811160861274439728436105005357195274485792310859269325639826358379741674562699935005339791945371747971951096719770506967094005162247083626199436090821663691095744285144938453516860855858977948056427524401926872081414503916885773297405593418034056155198520590482240568306313292619056031839308854778049766914081371641722556235843824920327437757098889556883650612542119533563352311503677546152594333264726928184852892422280131706174636855443332994354003916120809085946187741048872795947218102578387628849305436610175619361423787401113463410990943408029886351129865158547162250183929880927650142517481100004362312285331905715502727250758588740815229500848291229239259974518763479335452509090244893165869780964439048779833700873933174135542156233428335590565177669223465299962952002168150542312534957061679310750743589544450086786153647560879463390904800407746300161227815967513409203969002178998720303794985868992353639016373213862418643442180624076312718795122423190116644918145241515883293072195069631988634004588022112187113336075044130628727878830454190520809596586583614936693422703879475347568509445641395041572417971317530712946082980830059765043897344754638357455073493256341310345432760018906488199412003127312684145835191303473331351838660827952674968708383082483852819325176267694240135939671696066803988288587273906730488027853486510790007044665253493658260427227893440747983097031684083779887612770595277735973901843896137218166078025110584829607975487419450892817046762402436360182552604139684583753599530821334855521557343954165778258292372413392325496601486306256852781284414380864503786616710361659880289849692064173109455725581897120357622287616295367918051266478740984662211117991196913255621761563593616710179960354848240263280204614535173646312891145772351227513202579101655884755846999206503276838041175519223461295798087713270907821879747668260986154281308087581067394397536563479309488779508719349536707761116287238802448583682766849285313766748728083787264229438899159132017287674640660123080363719063243839151418956393896195417192442580064700769172765591657692267703227951336905255437012319977520161473301607352776457877623482836957804047176760269915381813223348462901094450120148826350725027499762648547582926686733340098356187859657973847079356028338530642234123031054827568818408003264707686372575135690406417016131094715175615247530636614391757065833071929954403263711945028837408576046575944998264988163108953618604889752050081019531155096108766197921581894894851270939305227114759594726206572584726793292208701107303630523248807830041817179939738289769200131828993123971909556351110369843555456506649991285626443550934753470956865640906895616851750361139744737997521491833178178440762482381966150808390759425463415596172534720528716623073428423175647558796688878531209269054826862500915010012893328274844785069984977262156224764252953608392575333668376138054264200313543314902863898145769597820591480810234978789524044300511524545510365895724541861559483475629914625388413322848210136160399354026936561258249015212549567902055467762283809692310319757186890042887664309115003672802380401088542420265161439552200480796999594072649557572902275263114118260609118615910833659718062379807600447019496520583511097619207128673016851327835368481350656063247370051533833945897512565537167791921210411008635393965821225966014050388503491435253819653134667846217962532260210241983800402194003434166386244966404755002449102881153262283289575355752142558823415971550525308114743343783815174530053751153902105780201614963711031489961830889231340546358325222451289185465256659262029783326678532010202753485322556323690337921572937755390586013362375157584434872324936801935079396189493687395116603047023918757787998587072289070774859925257255276091868128369743138953972854554101156094660679155953412208901298232274443290017920602872032514605352662321775046771127407678066198213082160941250747576300083547739348791256418513131110887421917650241474473596453296054354883860828607911895052492525596697634939573456940885953526863333212482475611248705135453141975398735844678470939492128329822097021280744575739178897040656763563447699019633501447660013240445784179299784914930039082850804583367339330518461359310701294895733366729238070854250425593020198306461729708926760322522052953411345498091085454035782723105328535735568871597707113959969514100578255887193661784079863111832949087155804560140268193308374040523770681992961474805022632787594614731438215473947832162202296163536257407057448979708828101731106508044090496378922968873090053204237672946781781145667505568138842347615512733770572452670949411522925287741023971918984657831852873942326027367845498205030671334886049015119852478092157748109620611534326430587220407033067114232512382562442252930686647622318428528935271466711269403086272803304005139535781041211712993326267948367129586717040713939188633255350116535829664401670309503015345013726903685750616887378296247251872593138795414621500794436824599530843459633503454788566706514331281124279834952163938506128418053410492810804999593277189016275598311469848474996740951196544216275472905123836383022921507177140800018400790552983637551064638429624525886536539302175146914898295068981447394242484118025233733475725975990443119704709796864159448143699030433595738044257454548520873307355768408760119873696092621550840935968563729418846812952260397157634704027293408603969813224680216288870370012773678233572521308555789239532741733679331160681051635322470687817852682284079104113016002272921674772059563174241824419497246707196696093083808893002274420253699875853468185031047068185014160695998397636089259871285662971379896945759194715042653026923917969629306001214391825645922336541197778541214514530931263539708224790562601284732568853015493327747282414137355902096937768294127305298187847491973993691253361142684821801552428937512899162616041196883113679143902525875886162776246688087621976601734773312128616209701739735605320095152543393648831640372586368288087383356749346303202181518599362293159748755317304304120370834816776197158660602085755975335045585268888865401749529327792522673405735516366183466458498853238345991824796562783437147248387684012057216628025229155225019006928367384545929078728302580769649020812038950139302496824961571261696738297717138175357615352055287178639159822254998682668029802602773060158101618324895482863612898962367964829756659170749804853336589390973294523533270669741130553785495733160409744875142803443480985495495142077726613900703845555683120615541269319457501504977672369789865271700732692693240110015484946662723452163581266458040291869108456141760699414404105670202104782488502287251710907401621160177561217554625688817480757735473602007894183622445332672897780034810099678423500600045026725777481081323975372904796249585472066871097594379432649362462137401141909847126638822422922260024735455511297122763128940658074187006705048059135393186722931399989968337948631714495679655502499339205117189919240986513050270297105712665461923225918344835565696967432304235311490036072633142699646178452343589147794864853516906644028626989247014869288258460736456379016079176055865823209866835413286971689305826551427314403431539200246002000117079870428343355021513732253809310084509554521028576320063494397183294770315201000949490125265162451091863785309142409579492911706624905689942304866658534413850849867233632926361708096822936580219054378918739784230238339629840453815087124735872339022920496400167237721400366909883039020850545095617975409629478845225669786058465360751974489303950723767431170690734721409821358533154694343112880150405259059775145311473431811694056024127525150210014962472891733972261465531352192644104217765633026217827275339490466368770773649847266892306101277991719767480981901712966072194046510128119955516614681645815841648765810906740086847326946871639580643597526234082746341972721066208265021453344661451978880696058237145021086603009808654630754683480791210418650957299028424673993140824323629037477525956866172381106777701774447549613347729544253860289475828672151156566347424549455612952557150537273614758218915747882305648173048102988080159115497341699412461232967555459094438104053529091316637893771976478045745452313770463477329577834253105974738074379593282840775638679007687055107872237070207088692995073719902561719873905034929382731516505809089464566748438640808288944388806307958172733584803314590910898694985168290063590843714347775392725074240749403622228818351916844223383407987070441023464255780205495329469903707856279897323805646055365414180703161616504442252737025128986656624318382864430279456962294145765926947259861431871226369725763808902723961620569290072390410768131769700232029238722775944364222722641855952808370400487730365760021476160388171245516349608309711192322157648903480684561051520431423312749416658882351246539747214556497076344977414251878566614835450333530104540705558698056804324503219038082195979038579605798424663906829071467632297558618214296068559484185314306791538533198963973163101631416240208262935681800844101374392779824666940350828204512469727132564361685401092479737121050233547542132814084200752692977499944679530271615098942417633977733594168072345605290363829910244040674284461120807984404695226087196485257832282548820969902288870680075566463919448112861334002975630676720519106380199321701093706361975615511342377564004628650103907203729326254953025710917904084528343666994016061491702983570320499237666955170390617743199516532950204217151965518170608201804098281463329617079942543377470835407064072848553056516380823989197545256077627854771482932102669363207242381812855437644677543517946407898351041087877006796551504439691319403747171785065926782961254724174644047079331187016620984024916480410245988272181013218376182472338008099200450514348983645773298267190942190394258060965608408859934702834079781913770788144732802248629446938073545180893039558359409860193411998659932208294338516316337976944772751072084175279531401232891775099591113662493936519438211285843971184567868370756419038507156218808675471455323837433620138788337023615643368280911192877112252937594275138888519438215991021608367439335374270528707602704737266100271632051001001534466182620642669583059962920560223935893231545906653470017604283712225512192501749688560660646560192895761814875440722037417661335535224089185462012982679764413058410199597331460114505586880777290199334770213890891614240730123451343179170083570665277628830258898766611579895774024746384136456821228357549511760216283062356642483183901746391767879930617231521300939984511644656999849387710189405771655021845422269114546374720843133086519622353594065552313582595722937496731618104696472530568819479513428513588174532575080610649982502355090069452285731426415702473249381627686507574488320720293876402680023201761619813935780426903826593423537976752374147826009803240172971107516775579556273606606981340112616055883977950739113101552179390563054901013563187082265822091175457718348520840800541833287283088561424580194967460139181805514990759707320335703693183443758482765383937139739366156743424884991681105030092078221166154840162944323799832581953509328590818628557161355798962428748317880617375616039589487480649950104818674946719355940752817994312542615214678087808221252463220153253007542315336090347906205855529867181075631891118067798297976230205331172106237836884690846676681260036374315177516769512724303227090515676374339584483707457004470314401522932470365300300638385932763333079521305428245922173305051793129665360693326190947972618276011096522214397459110035213093997641111759932219268976157935890852825618413523025687021793701685726590351579006848197848527146789100055286903084519317161505309135449486120847912930948749335158012086134482225358779518273523231253536350387247683481661338658294189930437993893676978997107106141445037899552960213263634710515942260368872823092941056641836272541134950919118757134450664683154236098583998455006603374387714110173432900560867253273836360531250020220820934808470017832224878549972533864105254070324477969627900901892972653379884934832418422771215853687503504902793544841641843047457222927431572076592067140225290593585160337160268574769887335053773939014010897909359149014890471086737596832034774125210884708505906011725924238041069745985389564728953669218637727651395000579010735398390694920781431705071639643368077212553750197350973766126918982403755655811341291841624147406994444046006313342186258415022781847626895602133082933706798902800742902878403896757979895855872394280531383901404273312878469990246325557366178697879269222358734418773299412594333015369469478105546637625790198972057247718729543502437203314796141012833174413861913846648629440481576930985908178959371050825222360199160358367022136281096049716069031911812808990373432920525866385841041289505387454476666258077144605033155421680115495038417288801604321178933154012982487418310994419736808199317072085174075621462618006907184760554783978604505255311012962611568469698657390076399939271115264193764774662188306820147812846418026114047732062958370538710036688495756771519974350661875796336361875256653203334951248713774174244860703723877117099481822220086168946516486443762563180946495440906826333127477145979757163880779485105202187431728133791563643459820312716041129554235781076401683363540758804188240776371380104118491389485821390974150701174924284376589637405737734216121501669043830221100534132824080850013538617021519531725303577119659549651897091784443013814533616111817259379922504974703108228200929684339817879074053119478514507877814805789878474546657709057738348722183184173668892352218482917788191849349235630677996013849002370977340824817216713054748561397953106363759566928873721848913530362197363495781018224803652060920040699001958000699685897307060580124931162191467951993203957820854771364539390354802331405152298722076400230019715612186451396421422039639734759249142141365075707420680491028378646499221356201025101436809608538336399429610849060560120443105597193913066947317429724063947624165258978925507306263368248421336701534862987927053929038079444501727881218102000081977296282143762715498361844408651145521975594584913068090822670814387337720197266110683644493679999057533434526416039706408784072979653862081057288186565195479419966213847072385259193323557309521707090493811429706079179311787562779157687533141914178981637339085485732830402982725358899234129729972993185665660038810950703617511601877017003170087839204156231434272157241013432439165505687111029907990590278701259134865413024541034410478284754897345433533653648834656339402294071664948720018754457716512748862089972538233410077325373440590855948104734054927718040181873259806697846169885867424136842500964520218887004546149157150920133659644031994860214154678019742666844787671190997842312790006286265988001212863953679053241543860000686520289118846457288274258879752415417980198666330796352276721044568230134617813792270427776290149533642405545007710986903291625982972803254359556358915188931405732238516928183647030291941277291631861098403310343757910933495657249714579401032192257235439427425884034811368031972467681143376788451685393160155418195763924687347402296968671969461454960272018976348099322069158762704097702652638823224027536551901160243579427166940844100608752298276059195327230013269746067734985603956731309071497685658428280118015143970407427007241371113295816977337971043902518242450441315964025591736419266812855898900024908341482412930139872993004244107659725075053222281043172869823072685631713094331349547088811916405365450072046256212689563397619057146321200431465517216834659728768615835614562490285736345707914788897007516811960348972308652144936780821689644193609463423977776515690136228261600250134433727001439834388326287625057711163035905367148261136166701026026242349430883149288542018694387154308610454465839910915832837945458194197161778643986690735190963737062060894125883802505497458299413494106732974579163145320021178972202162308998825719182003351385665408603769869986931340262337615529268807863351020046802464802320956666737149384164746370671121721096424197581660537557398546020751790647706638691834049957217454265138397234665910502681807739612244159762913604002205604562305350021042409804053572912054779326989663546170908199523349961244929369789659268080902782579290735230725264383392860251025744834579590704362163364325557496175922887726040766077306592505873620441895726232374383532839909624150127315544570676194855503510397793484221474316308875563004819566297572507486542965768603596606103674513312019987277547956664663344238258191487525598031615887529114206630868610138758987451929492729747847493358859836308261619701986714539018405775595707564820290928285245569896838260622136091062357472761411174848810106477780050379993145698886860318879511509443002206471236829610056977439510819906532472965928526393060867956477286218172376059798577551787182991627229329027446347983711953912643467598870796140627723542728906294584455095575802498958888775914830536830203017596649927446408104854111042759396290345256508375066694124812281834234976976311702328603863240698014423106808163419175288815956089500894682136653876886524400805639328197139684636867535950478752230279338178940959061858866675342505923439915200764094260964774629020156389564267350514905240265031370253717552423280916404308198374243366868499780444251398794499136166825410920469869854639226531955537985585508945255623498970120314359126163029091657496759169213035238339525776402482318343964822233682120737423766050874658739371483180785997580889778171680756882089718067224110316018681664819713384898667156138492204572810360403905497211841551568480504762241286620050343100698940102496787328256439410250127514686743299558151557885356597947715225866706096436392584360708551073249364644033942730146433068032332197048676840564962114498006625069195109830949587254678385312933172234317392696982958596578698156610609225084996688897427839773570694745068162610991461205812768092550437600119484335857155430261840845142584267240256075379876659570143695701614082599437098383631024936046005885696046023543231633852396771503354360096327815432591845675313266657918206344244079769670410938481965808155813515793981555912083502691468465165196829376485537330930516120882487488855913353963115250876751194101955038022120180253312318838890069708165667408859157351749542865821868291411912086639385225960048188332898503810844583631802518235578505874312102082223944886503086186798686189464660520786117246389866447638999500706644055153167789721638817253624458881204854524160257071615795286055564185501517711256277493874655517804562174767480464215663503399314027718578895237365342681415489339330533593064660182367703417737995161920130430246689836762320258002762605220838165209497057455365363886287449318587365585571263042651934351307546504656512514740029129740330379413735849517196565717608816028429510942632709511628271361151986602315679150451196190941152281603582856877304627057582333475228373753684405324075364007617036147521082123401117155572412869513162456193975120587905684182144584429520364194423740140287619237219781544320468744596710796061534622204449213561225568083661457937183923932680041851111005141683229885446372829129852418076285731024177909131487061073044696811802249078682425017963438296726251768260959441004210628807298125967227253188913077286836799857687999036026013703588007389978113602221041222832708408419974807018399397215730842474978363887624768687088666924196440082554497773425658195982035738027339620786616742419143069402807484592560827841410772631013562931367541506190013424605276163308915099661201226669946410839854543220925084984809913559399319756394694453077862740002993687166466160434837630754646840844222547012413291900572120225399206663310686295015595926323203241369782534740201437466300671003285998210060005259153046577393088575455691690377759628556371770486986587184950919565174907067107055140931272812487401725209399273567135029476548368512605668958225568105047814880963499730480566157067799519707924393544322188147031409449337677238529009297196879757928383328555591855970853631466177832620085276490285568124045550807629746501821422376992294879206744492927462567358026643764601339122135906669296652161970990440925123474151346965337251295771121794456922060100092928625166344637002596380658208448548954932907777896696118581221679273301543995013051492476703142413320107527737061457855044637407176276160278388141039716399300126493678460137516628146985250094248737729576213905629779358597983401156029596015226919528421629523249598448756745070793758405092579966594052652935661958142574651486801192075623736012696229458677220072187383602980860762798893672390204786907579624411768664965326784313738752120509871623529750076135522358673193245448570611576268521897903809936165255027568261366954415109516824485772108762612651478727946822225386944447179989022628399108166975697241208272263273076821625283252293339681959084202714794521244534475455656776935948841428913481165796382979426715189450758737277119549954998696252049868020737003179702061518330914951167382351110809014608337058764608018798064442865741403269647893527569934181199985233258501953891762203669339168689245879883093412241636733640986478157994508785099591687176074088033298081406459518128327667718066560748099125503180057971208391712514792438248276150646723281747294054781257253803919987926509944806499199604218650614367395646041594432911977697311890943797312657891408480230687166337606341437807400158168393596511177044984945736360108834209608075244534543683024771916499395631308215329355677196600734013195537454801428822530333776044602825654737858440419546971518135015792996701280336317177338002529252919529301895182550801621347623876551879756704559645487229427333431953299625009798927720939168227241595976605924835727160858425185661999040371760917020826502796502951433626832914171313354597903975504513795745249163223759782254787575256005974135949536386783681394365010131785121618162903504817706782174341216445855050899948391797227287695830447503970689921368507691295756833921304060083925554078578746863719221387536608809114290150340194581376980449739051503301139132410234456727155708583804009114525258674477435095193732788154400890237777782242010421209059069228582463901837978242601708078929976323336560971830388282267497956417031770580702929100265104640427372350092594575125606588696045390461636378857805336718328541796486096353523562904712686801787026532544099589941570406210193110184072627222488619782893358398258299823647393803173176809728152332918829427696590795238958760198324559469694219103055367283557650756756832785013932817469495402647955908440561786673564512099621042473776216570569152722269842534988994919135639188407345045137721569995534414059535995580333384141561244414731297965678039101219510102777823693258243531858596610287640323050531207312912229670629353710410676346873536522052768671392206704185883633566319582773806799531081733469639756329784778809160376410640206093750551032428182323088890101590452860744088625854990904985608109625322966144637873159875832942952785498177291288835726566266017449205959857668851487588663107245842468693045186883788890622365725310305746685846463534553021244464701383198232794751047265077984431845090556515894330719305918357184536721921200736469244942691898349546084217317267634774765533428192815170885291514078916582280732871432030060203639943022635943671636613028416108311608251554245505261337397337021234432399687383384955045498545570995699309069041081146499415240707028902877575114469551063627097243832839610087110152298515536294593220623850426067120513474420738320152735289922904214929667046936888651372987029984144629653323296735446360070340872639560478023243786232629884055156580609214131575889780954788745462417575271252584418276335829070050597862483169558836438945917055330720920241483707317846494543528193022299404824794662651249232017489089239014649518681240954564065910989898687084844319918577500727051329024719543270178703231572959353698167316078582820324047106199343421716189940763905580666170394998372301363014788407320550165797382572054498456503446000913459301514251505362447507190336964337318202447994225569528127496349425638057540098584635513942824518167263887664564668549027705902011993253267001945520120876728800207888100423861658238472620840949969790027246188770993985185185496629742887550636186111009498748464638959775965736638996703708945883617697654428785914144375456089216784220478047264653906278904368569774298270576311743458032584177899135278484513905541664796472817928109846718862828965836123308220992697359826666589240086311345642512580024037533954190378998892394339066947439017357406384923161620645236529130360196486949255846781890497020607258501628813414325231570757901857040300521257833174819502132366040936205826078966316973908222299306780384922375208165082942601846675340649875731930459825637084862843205782986902199282077794894004760030630834177799779794507511414498489917178557812987371600401009708460241478684784355528157036399932600582170607955937902864245019382707268804859205777772201093912750697705260499646429708335740982966700981921977188566663756612135841816183385791406777151177765592341193763483097396038986324302437405268801745152054597239768262388700425547362530291563061684308306092015031808268899788255005379014189998418287330504783239296782315260150046984304375697311264057960301995012343372293421967664570359238631587732551319924532184409080541540738019552198926627361050993716205264007745971193963547702445543482030231219994912226541132315513781261214443188076866712273084636664306895020402549220996748154745130137786207941923600902605760455200885865542981494685159738750609945142635150001919226755711727927464703823482308620272369915203864193014989751378139989859796741621053872462926306813461556961579886111766987244269280382183658956861694968532347155984180012419480414321352548033856615215268986610529455062823461029147887022095882447055636844900186543419347632065479983178037680821329395514126427460508783396341782340835274078292075381041821677117384448619901524208551502319240343450576591967735871861542184441524141982094150468080220878606291986661662237516031230686736743080506224467812254132010467709389003126912195490463350794482653965452283007154520356031625710402550711597587143399969829957544384235934133810719574864415913867943256077430836433971792763473113535685440358521064721651434432180428912780993244568249824829994550812159168769461629207314521617621939575008560815514661257538315207196933998630860613496224366214866924946405129657842243737784185218767497671279665367832690078030523265396142339827453380460076805793981777075624059171763122468774538367636358317369266215813723825873356480632079826976542219694576158330759524485585784585183020178373186496573435487074070140676290602857701404209614953856880640949671437600971060863837895103446566284587502940376388737297524385484432400331404843906253816703354439460650862348241291321646817266125768351343651443996208060472044948764049003856671099833349603943456350533961364987333689963300513148457440474626472488106648155852189543318107218367647039946219508139161201017425959434119755416226632125836690578364281149940473515636509339865637196106024297986284806501589941392539053491527473184444111902470794518482483285127481009142253105705501576012010848974469428626563353247237700055404805724201281125114084595204926391625360239972619613466619997478973347204018661801025022849211494925811462173972818226345390703692578238679744992178383056828895890293553372764338929483870559464459757842545472017343652446956555656179320323119486325265511359305401417449392680152363193747010101781087848452440039835079223959340377796182848475398508773456455681590810510549661792353955972484910505392835686039970818020371332812597432566838373240367645688222012559493421000601685968412728181961831111530203244740918592322333393501194941577561159994955876654801470123949314296147180398275312026969492544536272816024264184166244699631756229199257281364304960413805080576363239081278019028247426469224319719430921633292162096754692251276558084090389004691623761918939473842391889171536205677646861875893714868391819705268516829861926622352196658449190354298397815575102685929421858860462409493559463370835792480253933131315910739327790398251733729960238636547270907436222415938238546518707126941453564317226128786523411862182703872461051780739553361022517416260484949037187577857603241647651575160670422935725204338171252490422230804190306185836423333953505472900333885950872582270448045415720644976294250314048077859457301746895410132521292096544569741623801862869753407152318733415241901249307298723072347108823954511050481777171091659226968697232688855913561234860101741334971178760895123459458349751296777582321300511889288638647044109849449295959134877202047069864636541717313603045448012612806364588199837446543110308492601744993118738613760267707718388798067118753118744709814251248266766027636472555460568683570992866541315659640772360056623957708129443807044589683156068492408714579746018921622540509390657847143569291583873891690197926001292294854755032673284991294549526831423269303308356979899186374918691432376821723643956836427804658840417768811436162217508334343063066963330509286785901605732444379846565960941048826292321607633395026561240829397873082759029580255697386283446661653333655733183793148668010631318561484589154582883614219267370125049124425061267518175463497231184683878635975260136954726932716762487971680368977532080738475974485608077225420012632486924327290257093043366506154008800121076474041994235484840309908727090103618892713478299013252624653115701771902294681154316737892825432893337811875042964446773025093879532067647752218784753387235643871348044375803495850298467809870894464960721603636850917258380040576305390580316058621585681286169254916901308111930257161399053047825971195384118756413561339862783900599911889896228682922669744780683286084943528126482610287398155978017933740311056624386215875911429358121121212152802600980116325107265784804725330942080888026658992675641393419142204408184819020687943487358490812237752062619631252211474835160138149801366955544943261460779585396793218608747187004366403243882312786218947303987649786662498175139541389375042149926999832047929999644725196853510564527680386185446244229706148606179283673422993260636600345519595147177498779078319250470190974390167874631953281086668035005090977806207203125099016674877042422488463411832260285265963336947563849297349845445285682281301441776876613752855492238312223566312364227028818507306630024891031815287231613158788215654339137393547536354786942931149494068520947670881049179134650175956063552534184592949189835867869741138753751605744135028443538799027099854642497212058922662540789554735578543817726366646718091318928606189395494972871738888054492064504470962870033822243282402140759251225288142044581161088539769059414105861707948809314508824604316171220301269107339009525140744211891970788250922979463860124543418273357116715127473637907128697865229729434129107432610777730932762963518083916442663194526623735406032185024000744202692095852733698721320212404049016104442829490342171381150994986393629417857474195554978561568363617909693533182476671410694172507375971844225519884998599675762034475988830426323729907340652448679462407468644819367617926546984450441956895533203547681537091899222073865948182593419803041341523153056839571932095830863179723832485993284097301952715062260990849298945968283933209837930627039262896418767139632628531062247945159628631318977349105726234033746438524618603259914078424077007320537601728107129488360263518400338751517166431414952410847117853310860533123996861777692126848107380776891743534773812145243197999956417490630017730657154527195071280465146624556112142672019270033893035079022335923486321655204036823901855102273028050128278622136873402004812131299829251540376023116436417372427353875045096232199831928976436014700815536638306697177411003100262914149033789309136102817619076590034907453836331730397028870118291212717532370528626221488890068425403278190012593453142345826884613746656010343340398242930841908693307560042318260239884849996098104751552604975843283979280477244345458711772427968248073615732748500472736511320035885049622167748080342099237546732144008581390692776658080821109943292409301304783670967271764113152610514718557710379300224373195821239245494612552697726007066902587482247696340563637532720577861976895182758105339150634743380136982432702993249504298201928417506506038013097918401136822639736844653437242703579676671322937494885421660519483395341683422983847283911274037286536968320627536780030051255044495635435485893854207992546652963425494991508869172051971652743713854299726964928214937008692307555130932720836667376919589561376535326606907629366148880707029491530741645650452491857702018862797173976670120126912991702303941481772933479425859260391527381527744570648218267173550780404530590197457356848562163988105553570203989942461072884157338511425118827301846516096262388174060293970053446556853944754275823409964599652807084958490800598419260897805217191152860996898719109863809726365651555051804499252471211517603746477734050526784793172208601912644722954516959774543659365165353906148305397811473940159012674060092914366954458220904313725528832994879539058101704816098469440907416526968057816207904826793599856013424334844673479056440408087270526049278752125535087458718395617779902146649169187394626462806758101703216168964491926222290270497553861030373206685256098407688125780968965810594101791313365141726624932507413899633894399416808547344962157727566104088160417776767744051406171842810957512998825161123320953547526882012300723433949644558325400087567069658475081941331902092220735437668145401174002589268506738870637007005115011681313640523700526414228983212503493348085284680591239993048656557379445031816447202857341154880566405878653735721931033914744476664722170242027863487842293076168415960817790649197780230992286402694192428044698207011099545163674645097226358370352677026687557030901372050087087505857019242919062296891812338868915230187164937548972863594450200433695378294758980666533795701634737682510404405957825108288911790229310048243472290993778901772865796301337868855484948999899990878111078023835469989896126359830966473322774965148106615832959785692285562327258124276876145857133012406666803451873238438904777041879797908757858976337401251916921092357750900197901272874084519452609398104488604281750999609476911673636181601023359097307792527061585853805233742633965395738803004964735429819275585485238658003066404714382847841611225529543310668962228211654065185804617892347182627019787925880051343663604919440704358583669713592154378812693270983643036849349109485095444798131770063933612493150126059907626635287824995320910178739443367910471535655672096972465440947069921032145873020223743309914640421024156741658022097903476647596682957738321454703737502012389237188857235257089075303818499281199724367090515497124483059666471752972135141639556598247906749844328135329960942741237859349392459530052464942709497586613304850406645454729588383484669680863357253054515117289490677901624209093843202103347790533015506659602486870010189745606040625187447287348040162119275996581606226545262711517637793694172987364321930298970045696699544908439481898174507278351394300465006359434559988031506879645372941347205953831082748487094760272644134307059499946723378368143810087627761433746263131751878177589288529718147849078474314566821182539010850198221564971321918508490259671145834072914886546450466594870613871334407688677597780455986189382931570561716994196530126880600223612236224579346478292158141842993515359351766645354491882604044011651880538399325901004920736882938747751499458731027278298714614917734431165479167848199766684378425431950743304029577227410193220976136880140987367204572574193483707991969094754344315249247094432696344266328209189958757345821462458634353197058350545606377797563935317169773506816683593531362428486336076690808537077891243896366832835843584494720142276922676780801493847680258317265045561386897558959755816527898498816984763163072660992685181893440347594679695602584468863688054487406435810050963501482306598550902128606782395445507985337050775234940053107095526940125166627171827341963486439676893194517206825570402496016215701885311541968635997817501082970400140884917968626577466984292572200393193112003543967419443024283122819348110021723612148842556989686576462421349136250359523370347362920617479107970222750275215610134223881900170291018936720983175228709443802390998854215798456277652836714637765598208416103313751074478110448809227555376213305388922414386677167494330091993687871997431327405702662662190071718275918059748655369112048784645752486055274538764308086544194372405511867026696082874100883426781599113125875542212639774255162330397695422960192812854655634755351906288024043789937784813893654193027748654264960580665609367575244228290904481093573656159575536037422927060397216427549924725607560312303635289694328692314438852739585436233586229095749153670928349772968329221335162469233045482988308926339595714463772340184379451821083158370444160165165887033298006079909868033018590629065568018226308725980588709994713208780613441128339850703837605771236386543735498362569718923268806080265496769029977633698578392014325417587415834523257398820988101357293824026803980454050454688742512395282055838395166751949914695057001911126108230650955643459086094041232926323307624689969461380064062175463513415601104746439624863181100349796955956523168006177903319655509948776895936597557821758548858492047448562899153530031815096467837235097026853919125484807069741299166093788409510656313063626066931859791915971008518945625211751556245305860907809400943224687285128199964479807458848254959726303588626572796942286795735934900409641571144993451340163611156125310171993638924944291035243899063533268080330493910010945755488978702279662643665185631154206847309633540812781968302665746096184479450243150820599536044759259324381799261476779270363447031476652555399587551547602115655018422174817133409551436668732953389730309217454442195197879746007529923678935429034222080002337162019144775773143523626868117939761001306737394446138731686096144402026717735416001293750935288683678107164253925142495199358446031323205948964633072684183897086067061547789501269094904998468509296762916273227425211875459027524692800864106009665051257873145291803357980379791652193529553969610255095138339595897753139408244988049950279733230532068578089136385113618339623270931681984636296943823629178969851389009335782093587909077876450251352495693762184132700960080930773661552510059461043796435656250073607235486276742870907303454197071279124794214683361126625172869267155001493250865923573124188599236635734197961347454048034893601576845104355276069282704908561632986011080547567718502870165696156623658653814278194975534880893504266485162685264111439871046105156157975854012118384168246011047080017097259530141162467655253506678396408871734509217698173261144594822036788526055881434742203521902213218092236318019779253330775578074828869422272539924841719565741062321587987577369830780414072663737971508342656618520598754772761160622106744556136668299011245544864141758109390565070496228348904681958149993065315641748075670574511209506662853687030032062180936920076832623883073053461273409927105861389463490346842854928747590616457801459747969825234303209760233113967479015624262203979112927692526430816009543446459624767442879308287560794075801966193988690959607286012550586730442590128305578417005715327691275814367186006360562160160118887958525229475467493257929034698648286913417964392066471580698225385998319289892417485517749410903769911596441435582301142019263912974816054848896151493417616695698323397727787001141593557402992582237574900082757308403428345055762783744030050812564069333309910801639237433249841273413132447647546117423609826702129276332368237010070840089738403317096044377446350560378552229108811550729008015940896807070530297507139131789153837184541133862269716814139885703909697317821797592660466581244414435593646531354379021254271255662147829142371461720162113652131068776548398191671481939129650586716202258065335247280765441038438297835554032934072057117999699170085496269908616863964348835481262774593589530688991505935581596298728493433449781013040347550244253266771714238351680469669392339384922475359223854829967787818417740189813601046023905278882321881094037766147887539645115412470258356384839291132063376979282734926758639205788527283316657136662954405336048348030967823795605220133028286004287777730195065560467847672817276319647039590247978599118700992862106814162794431431191907336088717301425628480174477487740893306971861343770899249638607721753960192568624588133716397921661878074972758376883851554179981100832718993403905064631879577203272021297237791687919247000719717236331463219685440535830165177039374008327196677956213207202874588641283133053001189752103528951692791469085711250941740797576089744935620709350233320759910826409178476288391931221467471770960102408616274199842237697071809292416421640113172581187767339671996437274956393229469622183205261296384271396283507982211374090403363184297577102049068091985192062399164854820900659255944363915807072667412748979179067859678646844385993078649328901430319622925676576091999329548022094419269144551451089570795547777113250456458588705126599941213519461282588369648443693329634315081224723718456053300543721067996544874723564330977664194731113045594459931671990433943179842878877861819251395767696982753735764286291931009714936703897052062238687289010527193634681384286797162877208238224988310383676914612280635538648410325244219888902497299156828330751557348540683650137052956716658324939139459844434690134348601186951791267492787963242116758738676263966165195397639238046266490616593812303969820007904550925575957238454560832552087163814190277035520734288022279816798990200507572703890457416314395434032722079990745073929546636138436135496177583389421974589057065342415368945264859974731704929638492275028482306426825615685063534767452299343670688114447719314340496132618695316993570691333561407740926783357199391946181891514850732495437801716563855612621454669577001981974851497432622970979485137795948988420957117160395122070975839274661244108397469742914909273328125165789044075724905341005588107225261981569367480129731722699835872675204507699782270624540519144516653019594346152962298134930599739428523876699060177326644472265580472569488255809443784156637081310467312853674632958081476025801086022145148356526132272387276780101244673408647256212498230197269716694244011320470514967057282431228476779863804341028492535254525167169944180389375583374188462168390238887059210270198572267316221489050190690324426140832798639349545290925762807272250757172736452384087903182540435739856374046960296186700628927948692972198990594450674900932000580785156225062614020066797606263913797372767259595637626411683471155330659251972909229594425209995119868439687861998280314519660085467798229483162512793965361750301800620715354142752129591027606791058361977913991899245305011556867453484199802844903564437798615249441705664634525245514943824361356685433091662837155123458837195591934361496093306443445879298412691321566830025980378354440863516256049564311136826387242280978540184529191168648830198392589503456883224248146690589581341153473802015960421686328931906608871432125386805659108655752474150938778232707636290723583557605135864338328896093672552946707623853005438100779936337742029011835929949307633858717816790652496389541423148528998387524465140197027241417120666080391738899344876835950924756916080067164291410365069567611654286817876869156023043887617709718030518229963644635378504465198572812426999557226576030500846255811972250509687083989914837171774894404266057436054522204398573732114216829023450885184055060741830629360732058476367704463887462751534204339714574415178984236601712944577466431851760757596117947940989983111317504304271573269710294051123573541648639678842662607772759939771586744708684702441952887462894557137740520988476027006600231727518269092239978215211332493464782237631401573062561920290059085750941302293843550818037560720126255544007235892835587593986734864907417918601105336953925267746009004130185371740254196785186586273035222037137696619710244836557359467902425926132399980570122750170947662373125450619151270259108980150351688143415071853864955472314671007761067527723972017023925435312206445648977061924872502477945336527569335880739584531350110687065769436231856257932420889364705363198203574152689368012747148730852710116701058372132727439129552169642059548283797352158349428952564982210179693332421378066289093987260041928541516397977741940710613651758836397257548375216850111733184286368887435781397411138451857268938294402579400145477034383170318979119260251861008525777544409867293263661360586777390320826219920173429886414471788193280093036793879160402159091817544567647598439358321879315580986420216860210812574863074026518333791667486283451827564098387960871801139302001029891976440788394470692569705719210069429748120211954259832155090816288828460742628360453195141169483452927834537208874565699779201343408578221760297282628077357333442457039677788194587601757392412154761653683257893008233853472365580631459750935804789977617344385643201573565773389785562485782896698486376585110142837434501375009583131838423494652744893902816018065880169195988647811178802600935686895449037274785018691254052362232138387564194936817315669786352425189874802955743232630207341709869951476528721079232787204883455223311785358692268651450021429458399359565033867347762233078982214525329456027700805133034500021584370159809093943779783269457633981009196958542657768728773510437300192854492259682228916595579404261819187520152054652501189778961378279519074836731818305924102165093493410095198117028155190312080848180350968704509004772468236519336994228693939421336701174056342299020763425177241610299613546477499085616036180038850842282468671433387047557814326184747994494724182816338135066733308101919263463396804467558923880009694246725233898935216120665425783188640077291875001329962663602556199583416582167635169080584319209203743464679042851852459939666233557131260253820462740322796960170668070730336260902092727475220400493866990088994331072059633102182894536139417840424079189604814003444062938065790079463217653411906581607140404824685090852453054492663816432122059115920235191864252431992525125015929320644172068635220407181305970327430188017026931411716133679310101819217078433119099397823593506834451161952671102816011724539235881897981492189309833651168871511479248784512808953589235048625797651450501268359530805980382184875578835183031194353054702202148949314412745164484718370509664407841736612167296481685361694003482687551007095048640546545739609575649142474625839668781439376345568243222874860170078619382505609022376869357960232618598114728935499577346460712850185590679131810845992515255886661252185053530800983283878573543770571787475259522811263387941258822728662604105640616200288685683646894093899902303046874070654394060058668377134904029176588884342835681303085533085618315141888152334389879042488480750126277951145506291133551781772779215679387613076649999574552056998952937069700658940123047240348067611458310579893379900531066612194774715392636758138515803497917078152176729263230325050521267858210944574597902478456163925426274593903283621012156230348709418431511061521182895529476598786423990044123362394082997749957765100943466485316447126382654562322330339304215863656757226895131448809684607801590619525040434539292686731184059712388966791648592906983535148915949723916372927415410987743342553077431245656154593488759116236067711199170094155371795018829971838405844408879543384930335403132015001867136791860946741926515309787761129583395726395818915891708726430469030350779163721463282970561066277625559681467341679767090406858673250658822556568743089650357858050128658995121598941110275278382941363607862869547023295483459357436285066973920020117720744780860286454686009941327368040096754747145863916254599540539683363687794127916680369529710998291258000751535514493973704642683024729803360929910217776106576884215451693381655386039762744008121157824771752625181334018160805611162171371508654189169796845268912737035019985867164833773675678749437207244597257229725982272820815036228340196658677375093062132833641218439815097452550916376073994879644957704726577792662966020127331754924336879082789074615221598934058616666165872236939255120553844839417301041291786655898046217192011424576519227501214708371585680939214503522826020639723386750434690516253525140474162939169243125879780445670999612343922622131219670076755831788938390237811932429420128674444315717936349273760599984097776418080695301407076466861163512641114313369837223888889649087900863590665605470153424612156676107185115360616232540537967062757399265570933628656810290657040223397145719624783873710958167374848552228047446468719490866682864148051263486314354306106047540721461890469717649596998433992194819978729845793189363945418728518102931924582710658546002311313196606641000306787486534655709365219589973025087274028463546649235189521008750950261795531641714239405130949387192946055307833465893005841946859774104529643021564834006611214285046733841054629226375683621958709214722559009695141313808369328404193373799403603243311102549689220693556528294590685331842170325567722616052554566836783562707127247100361209159678263879511118838073629301717254646822760182192221006869915548358953036463737821864577212167334771582139337691467183111957228564252446657152575018239101702711574252082556724998767861747483890223832852173469022852740433900368318876760022225149379590804344698787639419817072905080716632520631433573297448557045856564465163153107244309308716454743151877933891101449874849458151894194181579669849894004482532139037735572541444032800523105435193286921798673763168330223654741478856373696286123347896416441785350122216563710443937546956702019018405140491022481299279337082031113216800205997380483814759039192315708839222957271701843738366464979201995075271151195332034833474070285887274165985225591812097159874707267089879709630259917994682940770402721798461369276133055058869753199954567879013262651342302545162456414061785971384764586753213932828797488051823236382678068971404178925915613485904430010748431311721286254785508917452264682134012685601472091822858763237134484675439738891844230650879169215613815223619795025539238250068004071509556624572185668464792300998489924615381763435941431160405816877885205266976355618176503980078040153131504032611325611663970767535818763507089185529924288074011198426796635869880401496310460926445794034143755922309697589626018063403169681023020840732146353792996842581369655459799891649167586960007269279749333537936864548219055153181742811795417916366664214888507870520279933269161119676458256308968608858494635339467797854821435349213161830172986247626464801541802278906023279011190527750900303596590970418029305916009626233497612562996897872976941921780568490827133978570966055293709576951665029187077893295189326781272575275625881831162550704565573799501439548357863660849966448377397391018871091786211727658875699178395284894178298328366795467819891929262884467742507739797968578540820327568627363332726369751430149103539199647039095057607818068470345682778135392766588141125759230342468164755041394200743289371360531141279403587948997297797027335784679455986434431254430749026266942725638983138114223465534213151282968638931262632900871302760501911005053311237605874950813234601450503172290477795209808534337363062066891838965266408527151453160720840198855566288176164821354718134489426998959138723417596404609282697034601103014304058378158906821320551209223802685534110099410150179335595488782658982982145925644291549658357076600513635385589627603963634715914427262830079641809590568729413633245651418021113678939286297825668574822639989017060315369421535133622061891173638034938231542150475839897669265183632512148487709627395974142249850845361177384910602128989294710486482566031594230407356743682916406704208703563696522096948280274622177557129375500020080608324112146427188528064745459793243178725606872764313384323065234203074732434439407403501189200201736666020472616695140363747237095892944161931359111061696818289558002003537875341157083931821517904178329880883883803898977142817094051956785485118166007225473963985207064446694289162837896425975824663345462733436824137007587290501633667508265435801336529570329054646484742767180890714095035789776087651378214694213037814900657983846512819580284756292665012741442045377251324925475781538761176425317044407826086774067744828423484196695243826065575578482578322054007688847089711633912553730051319721795180115214173019220864724075130277748175993004614117414677926815304371118307502798708899788154249321357180717282627974008282806196125551701788003366805412467335802947947159937765432330785992790699060409537505733129381676738370124210679714236474791366681740410745157233902211331799472527517305965725339140214220614300041549675638200018266697698748733778720382642254877308448208062488041190100115558656117351843533072333658387466480742039809341342771049170923099143116578857702878445810339565107359133627595207873902915292744579083398597032609857639501766456286597474810801759638955095848913921236886483611443069328550144447302316136117951026706461431644331198430877878712813396030382156489043054171942004719690491956059090115960675187943741657102728373160128707123198511402689962340445760080604620853848671963731851291325449986914371785688119691690333300169425057528975539329045213914031539861248227468781893161444924705023208205132810614544400845963689999990076774434140604075279538372015430532668776162831016838225528439242766864437860233763080881896414131114381281392356030528598997021140045733779706839754091712598331493136792170649134502475672012052828806525186275679800237265643941095068230669799343055047332205529144208139444368981231927495289216987724545172033192637924783027108899042009990493807331638867358241724391852991866465604941353227039209248068500578270534489576831058629671954387837677343175983970521801329750702165631254477654365161346668012754172491561237826720659833762617524736770777556039011063100285800158318283085751238801944360564058828839472756885000349532975605511629660850942293139511152171470137511118770097311637583598752190530702527786459808832843139794597572527609601449158765651560986662973487326253339936369708327074232199952213706772763406331754702069491603683695731553921399182003272173225434933852569383109711954378995117993881201383507153870651284418840774914858938534636011330111781260183626464003833814693558895558406638301223293524279360389018751609034835712519401835920690525615915172867636784699202589465204258996517501145350400158722550521873303715240153466921229865543842910449873600392994901101773823929322639947925556732401958899449499711208735637648847007199409815052312447931953232179614432226004797688004802098932240999474078230694887311851422073997267481396600920610495818524761167304212034297653038543503343420764759892184777727436878461196183705235876072950900713596003676441681670746619170576189834347187332371472674206522903625035062085457105173130903889351927947755721239714016391204628843467813349826102021900317025187251165373005369371684676753087142918978001108141547148978143767103395137205087347573775283210142038571374881756231149250935507791790641831534877595877246566348546487284647604371505985211226372458547499869559774493996235322717159360022049938717137113178486898301567936772529761457871386473092746112312060923515547485067313915218276684218654940898022576595275998815413186409673527682937767429097051643432031617292011197877140619288856566298731067058935695971362973687878591988809704585841979364499184439701008675509863407168003182824121186596455174087482035278940709405619993625450600356532400061577706357631758856881539002688517912573000165964701967501124751720704393729800828271538276263020951803871624783558240310537560337157550089416130502816331356512369584935932018198321613420982277953748581172893487665121025033302429084217811486425201189455666579300343095221973761511757254000183861472989475854919137857328030633007170059127045336786134396114928790057621913035118275796975527847747097302690248047541809580608084208776874688316665593294864540225663491300757136098721639625273088149302633901718861717961634219270110691093430083320309022404338100468991100861081805634227153133751102699852786503750088453972628643441791272133831100805826848419473144532341533129071628711348555324084482549698623340380992692319016089851154046584125362337020132397610577478617498541921328857668699665513930377521409049303804347088383511083623640693026821374965769325171185319032820567604786646205169533285419921088521346384434187507933616983631453536862299316548275161862173053502858135591939540360325742145758706016389699267142555768903337501954103346162520479755396877627596522264333710194484769546414227700466867648211240847298929224218827936388769043065321318476102659431683947838981464399941903490602491051824792194932148659250628203559152391374734521450642108535756221156365321052156109896478445513904999472592643914664818947853226414704729561666905573487625135796458477034964918609900703464082007850603273362597092285195026155337581254298426696679638958493365119725747068780876371007634290930243602400693428909720115180134276029069602331742770693058319277888737585462433882551448308236625796121620217178385097090268778061308299301817777218452139455707347783341507585883740711310476679058563116032544481707835577465032962601940978637028573907548523157542600776221354953263914948668975098449550392260939207582502276294731084285385004067326753531194148202846298609263079707926141517279051176494859943209434324236889936214309096077575728158277947545050473156370098702546288490323761116808926682507134536698397579889230929245355965287361107730694878751491230353205803916372020211658382068013903300520843618955845752788837824245352637584067038058823503407488576691274585411131095153917574581609026923425349327698491269421675720715475727528992597820071352413162034974628859934196055098994872219941140958355361270763041320307261383565136836959614392242009976119155210438586829172843785132428396292140522640674504906262690296359879185518798525313229363282956312313337368641626303810778133222731531507003381226747110559319557061285136655514467160646922133583669066916485750135824565384334942272922934106964173406779846605361364298092214136822280103876089976977214998120329276004892995092441789696719578308550273251364007508053909157385968293737374827902525595810565742339269422816680326307821896924067959411612682420002329815080752499205392485916077755624033578219996149444264999307489908841696543305964363860851426421330501405944913351819919473515511449076693876105709449084028321341904122271549157793051855999704085192283189022625676209714052365968019852752744564129758236116468428820909808537900037380630194278117555881224115262081185648925213737341089179172008855979714776771252919523139748708112101732207879573036585249582622424931117932879405518391387334262121431020904927030906544850763491080600460247546568722423538712997974289372096196707743095126562385373782310676737772158178360965216055341037865289055614884999838759925287855825052571859964943194471792584183784301513693070713462301940804545419581151590721924991803657617341321655603211809451575179309577202969212453158867517125749781865587636382129537955585752410079481996965974215494486014223200903814012412941007204732260839998909445212100888531181323813330217099818409875319608245925883186220418735651576960290959155646096751855462608624738428160555199694242112327169676470491898182954222330464615553477686401997297429852610213675355560966321367921827272677006312750433949907391622613380363781862338383101870627010180050254370846737596179063318888713989257019325917736361385132344136233796337847232731683137876320984442982782450351230918166396040488309270026119800249610596466218681027919898147900421069165812206639408848251464463038433336297042256138188855068603110008303830606394786485932931618038873152538058469762731125096708577338874714744357896224472321924770894749220696488595330298159577683881562111078868823768565234375297267479288041393124670269558927305207042358959762992147844648645569038182966237549884272555969093459367407263102608635496057095491979977707328015923725953799728512384564461717590423450633547005041272539407711208561691843023494592132798195911611333216160486798296114146077596427886716168447376733184865325432784924572073978590535936719467476966547262956387642868099948983233264369971924765490652938224334698204436080788571366276740539235783927126254658855889210296771990852696136312544520965637824405722249838121359601782222689353249647849033574297227336894331824069696071081527686290530804727550757832912575626547384591723233539673025171658585749328899128827261487108864726435963933703818073323000819779899306354349080872815544915308059932896123773123356385706373031390051110534480181527162287121612782103346303312152599436575857647453680756811775420957333459477267744844164838331337680750980790484367891844801832815395947291875728904687103738230425792411999845455195921359775399260426501877774537256178917705714084699213412921810116864995831569154032653107117458261979235556990095239357609787111536561877567462084087363288501733643352403460349271288623484106375443827068937705825495998527423852054293060831107996390784111643661710408840340684638854401860396154020614062370422626173899001536870437709761121163850582056841292762826342855572330473860859052878667314002900234172096867245186455431517751993401518115075763905330656834938939331206441313160112312211453746847550882581646745398313680347527244526354100111083288153703520599129433653335087582192437881032362006937890289425448685557293444273026959656262160489127853797745236676301389164393948760558232287408688433770039741093480192769221389374238439442668849159699812115426741980228751674198153073125085194539434022915018035488242161630157926998043820088587530183496516320086867417541804065512616201651780202659644506412703143000414169647880677188315222311450871995716010200018975476895048319473263525272242028385088477596550644964511625136080442284513558758726556956499022715629421328196969683983965139519910443438405255238965600640236773558738480488771979594894266229927825593935720239235352680012809356824409518066729719991416868920200993893518034917920805021351527207856999135422873692095666770295469153938349696086888720792685209929328816452409492643529318709087700935446813149883248923817127422433176968715520518220549926445222662583022564464289292006304511953876066902551649000322848937958872762812481299439053760635042412084122439032354894888159899828710483325811107412434038409482517173166510501521662397786029123675985144092453712828018183359822340735757329446242333387129167382131174843971067430336213228196880329936369595482899525053857943953344425138962584182519929621354995264923278873375030827279972394354718864732106823468262595635973932041495956220672136139878344553227806769358989089007441853371361846507041142592184273667537346360611217283400281226443735453502402130626869387706778955893046104477653278503653123615985146536712410370388338015009363804489612965231676863676636996986708159733546736247963505108354262292807403654848894753378795814875695950441660350508837965986239246079173419672123081088797201203763897871622506250794902658644287614086357820770049376667599504298128129953879936261908626150430060886176894362881929121619178561826606426682420705496646242783629365895675890998360209301708601264652735659945581463872850923914460280305254939593620830798627418821269177834478223309353661809999199367756691237290757992680375100910539535077256195401868542496122666996631443646204691343225302185006055105817479927118532619845578650188607386466220248618975620486633900061169513362390297390265079403315354600541509593004737947040157347250598723262571092134558111572525028824691537154634840641124216605639971487846521023922292190760021158066752115569602524884079602852920880395412271247860356616089641005325266953892009021909636354092999982378654673135744712974259824632697393431318757817632242932930047947073541910744655467993135149004823397298917432068698428403697418148041503340651134292882958900024491333975213154421331637494997129911822398453073451325901262083001589468533003798786150212634863452999439692103107478567852456755371650122431082823983802068949910776397636648658815989939075922345146354711180087281493688916275450707855655830132583080260258245052121433067968169051762732868802990235507656591757978327543553428863588100264938127295228583308739959710912210377044980955916528776096927208776018319613300206554549737581296482454108364824890686706227875775367274807406334757345943752813303610481420569995807237993419689849262155818826302248369561724451392253501142872949225626911347396799437090200054247778114112623727476914229788293339633225494726679574230941986072658157707571122886049942240194584249649848452154471921207354270805221066683759184151345593554245521242721264391780866176150099112102140416963316216627035961090714064352429811075651599607429465063453395919937320586322384515711117181672788589941198485941015202608192828038012206368135774469361292913808505457263618642364920989002370792331955008983505779002325767494609642008768663622587692395342588395780058564379019409330576843566399510708300174596066805739319189389103742713466544870760099815557229464919335928480581619089027484115598108832300637772218298372143430099625526699585372396462723883971399844958461928424039262148630624636597171819799091861413962191137146788976701579920773958001138380125634208468631172872932282182072485856425141487845020890277654751826209495263072614079201328137493838134750491114378505549301804265882635356966008459098572019485527537426696149593084734690447255825545008469130423788832969022200733217554045647888303096891122282723859463707836569778677935254549738584723130623385973940166635862278767238529952120057461506228831472845489776274013477231452951091371557204035023396395914403706756481268997890057153066312845773608642991128099687480801598408775561190146932538864203548881233621195922096360650241549164508439685286008345191666265464190561212655589694686530388218547519410814529230331066370765815099773120717891339189212543104217912154069865889286710987017422462373308270165909601114591777896592847065280578225778858520710952876115495270518847889992489620535804536333858495746527297593961805533713082701320120582483639234267818527223677434496858921933109810960132813888077488227873741095047260383778930908621755330248793825546009654756703936835887250227694911987991113617331794586192594963040058015841978894622373450453559601162796864934844153240388456921042157212393501583314917637170913562090513831506133884782823533074084224654234412714892337840536007929925734371644224864200700198286834119802210623524188274340055750518754250901826162039252929409121442148106140621657296330811627815258565274248280226097843303358274493085079526788761409514891156697582900110263560291791059461683290770290447828187762908854394052340693652922400874386045400569131161941744184214782511308104335463692624004855421274516720083384932081779699925662072673538260508439029445987814779017077879301477686626399493558279757785620177454576020742611019116445429615614196486814405734282852114505844316242471282799017715126593507648303370784885135271481596621123605057340274034050332482306256614035980871436982497812184607337271504012324533164685533904949046469188146116325680931278967541396367400645445718722884716678030340997019853804377671170803518405116417988625583658243553432000089686161219487518488582698653407113479721677411258351036735692770291330194106625882514994840305298235291984476762511880282593788790564544776523767235847463274388549962252652303494810766151515874939310353883156590068034628281448678566979307494343381874506280332076177236461022409945598035851458699121165542892067599577728182939679012207131730466083554960117378434949950746789440484521955211744903368570252536898602058250510364971664935048429986252191103157840484371783660161986326334610531574200939157826652226172042616424823667436512937878984438796615747578923327678848946493872022659658753175865060870682091726841936688273199372129691921754904415271621086077079369186288436620783356973358929817561244641753966878434280426579014006241359892967751897067926298453601488568612700133300085398101767753680526233959182809440531780690568172265360970005649445304586980636818450917417969667161503950614761812944340182146556090747173893016830071781252541984200719806183479007687374857836275581242824097776895712133572135820233639131099842053130449315097631593043951858464622905439910933896774333133165464578821538621196422457598294996114204621849336143605973681857018095679108926788147862462709110766034984386672390362479447196961207191642824597963630221893760979092897075194899652702801381243753038272872993186827579581346302656318597335765521793629916652981421874587388028823654178218841375614415961537216115613058100692806230289902170010011093561711875948702758379026124894488984600843863519220161405111528039806519654414587149781636753367676673069622320517018890093989059194845573870920652700897345720941980186883997511650857399013747690369179909105972706694073284986457255935232037443181603377371018847823009426665677488450630224769914035100876592031201147054061025901444831034514585287296373651267619305573453371976628590243838907452777953216637984519031894917771088320932217657527618172876556063298829385615197140247216389241230143406187440017913933968572824026288114289252375941764397377543452148690172765820999123565787129610950782709127334186927839496398053386084212269965224859136725327389408420416921061243562195495322123532644682211942754046433124329855636371818111145109567156637900611363199107759644962068395823661011422036086864582088506184847536959913974738499577168551202184850717976392635836869378866100582969356174595685881899161114894463424240655907571984221175372405668612711864902229560231059244249877227252248958031226013138067721825314359918308034152545621181701077566746177279573597931794606499290897537317898760999388369295806999620192953012096379472202289658873472447025361070976332559235360163692621200189875341380989786529039459959978806253190184223267852955795414434833978461502545413011167169175683544164785016986461379158840590295225650246520624534696769104370313917014827823498249944470821753341573550099891382948458052390835975055399087028843470605166965204451563644120810329323033240745746128303433415799721684447494617854878696973221983254085140834706730204462904777213201556642752488046296570967099484640893559760994019562560896973754019373283367801768060853119262739478988529805834911488634603724168763807071863739512719833125367374409466780152922802740112059155846653777651670913532804871603151172417310411004916019085465884113717625865834090570187256587711724330853968000697501143027441565696731373462561700893570493765906304490973678868283202646286139012702834246180696024907842265250796917744353640353783791271599075977150403981519954394561693446198851036451482597229120092699390802670364634193855368730871036612753009360730457524140689892667067439568038881545264673035499203434638371192900685193770620260370066337664056932604506974428009676369287885958100831697499542075901464777304302603655821884324020431483996900232435970087781066245890166924007144993241331730512343807230738178889351204102733837222674451559205842297486109769607439620361221571232120130469647619551031119148589782420546107651087543988350923161434834336489014366825268326651158541435198884895420324839278684753996781143983823540980646322784171268985836292399000098938895074371490858648210453844225130649632380787983153603547267333791395755008687066755863644474584611966583356169648671609391300905232279768919783241715359066625532380255700339307048267016815194856240830809332200836124876208519132121707943267655261416922098046664518012794550738495254149863037497184343864456120181427649457981355434907582264644594239434891177784172530786026041941889467418891820865112581140516475083785645367646982663645068863560312881978524377173131733781267062792865322572519339154433054749311264217428992220250945208742964101100981114218824709073673180594773252843310458072968466983139962208552282714159444343114349515393591430701412203213288304793177067676066357481640805392326084460965123473047586878813919747765100679050456849551641875520193016410926679471506831812727044940787672486424529881010471479680842371951373761779535490049550461915531653463561987954121068723224363607423785586399673696195402305567057695446008655680926652529120770565710073108574377501073810676450589177843334815735858517655137132891517860191348756527842138175362325130454401570643784126958694578145954382953030552619335207585386245476062242187377757008722677345376139820118867185228307664730976458518128105955629405139892827418954574413518104185895876544510806128437229069304841692510881479618753348986350605745599606990630683702053647901352084767926268061434472274619639976774265256902658178158812060986877373987308784234841672505273975786306955379394753742518832294874546983144830713799216968010276122677117495685353693492559686288041078430063422798080218544565267980406290660469504263789007500610346937905355935356479973847122783743505575425667594036088855777416896418744167458786087735474998299355007916111459181781835326551583813847308828725872698648676369546174862826168390491914569092894931875335690557105864199073426613455544073176035907170338922923751705343464294422541285963222916566554794031875905140195922088877980878692716224048489202859276734951825008206843556298522556319533051915515054694993995215357125727135030153208703870122965589646522322254214864462187745025228577003538554971322148440307905216946701812533413701420484587520494066053462991669633873383016560140364347959401197745330513971915345115164573235627701114272028379904613780294318545801036630415743923006129964753148445273666737330811904184391757039362477568988078478771522427390555292278038193151557389866052745910451034421161101647944779403706680222600363592083805013412805622812295442505420388720026223517274555616894549651125007294380699007929381038204850076048398609419128869192976687523967310240908026453079502030490629244944424895733768987828230111022657736392917318203853440361165142895812549198571480216685664611566817554875960276379166946791189155931523745452508395681364653773641501815534491347027552324981708680712371283886077205448163304664723534382017334919044543781495649211472235670620259261268968305279232440580505565862420742238662442059871862765472424303228925996590880624515989566415980784643437844149478987731278813119759399681253689815446033873131548669388153930705893757338892796092703403202290711769640462752355701584032907398208018806256708948163629456189742058360510060991819399287735866640884972130218611507672176357727896701011448247174035733333897315414665001362515405346955455144748250050278050332131586083815493195540927127956111301119395723360483965745647619498461354470309274356780069164212328344153775051111206270822259668325798237598533362086314260727185505301785320838430666574762666362191453321531983016968597704977927456904814603382265927290755962039591824335068789422456637439380466679913786610768448224020468535037541286759961151156477588281573377913664583186573356196273316543459507350477660602639051807862635195027805722598800091103365272558217795986293390524629084339249237811913148292998144940552657100270595985002506106780304646752200367004706630851362868819130254664131499560640738803946295780523029966812844465474815815120974103414844183017755489105831984314561409532786802872581955408521933012969672887645170950449209909292582052074629268107161557554596700422007542871008269323552551965804359884549308063243877941944115521659693820645088218174532313763439258111478980579865414193462706542713292397182464272081638721151764914055227793621663970829881442495070634878020329880310482912535942461419408047325754583388900767969227621211058921581208812620138183549031384036082199079038089882044400552228418679768574174929442428317265849564634971172722998040467611576579355043272425589138026085234627167129453456185820211223211384654914761258679120014454147603214646601960052589180478582902799990718542640544129075265912461180744036687874618034784400346455293215386215538107529310776083117633302372060961509927937483530754989850432213595724592672140213847021492234119639653263334221225017271267969400227605260813882967605413848848335540922767711673739361703618090413796317045903898799901099191001939132183493923642268023828342124472701767994953755293404797148579375514645309433513556272377501715030550872506702694908924882860068054638441267426012354710015415424450933007807477215241508490048229505444006415828760743711492595099859414977460674427238722197675071365327168499615333213182647109569566445855345460981977876321807256784694241166850808944757482313559720494729379119280690102676747570131578951612217274971591529204788801814553207640804864440034026291925033275257549625918054840330501235291129343970229608823832735350099032450436433327921016226024578705054344798139496538257604119341391343130161709421939954891125766138892316045553957403138702484265846635280436895769224228866108266065865656531113277807630402270607744867244981464165628629472907617840908880611027731203593280430550342880617530351897745550136096033252165990829725603964898898078462333460942922196659960579220257774059255491263809302780036019481729579108475020459303709985510239765905025384644084720860210627575566473324674331188113503684692510956056228651889148498937553320246564276428303760229790440332182541178754301943532740714221032675805817483515202569821190675449229696124217679752551333575074364223315408414839451472996486518561220690132670591930715883812540805012455473328066433604508764572520299029352230565220488050720615197256876990392629765311177144078435077713802193866060144401189102778880747957840008248065303971841121754867178547791619919371243035001824297188896439906792869285286773694321228816596741135050416371352906053346508621269567749031686397862130541383561861835775280728011243489038703034701124503482261094318860097186729170985670093419664956945211185271576554388286088372989934377383985294099319487269899300940195652548400586790186693405864124270743102483157232785834331901398759339470564908112478269182618570329784182467932331042056123267745985592309877501838381651633144142499975448970284654783661031183364058846889164817137120442105091670232182613293390541472800918187139506000874831737839761137263451459126792307096037986042879776576061578437957586044000227157094024593482720447338391443059576904233719457925396243420021326161772854666084869177859399547395660265041698232251857506542199716420485415288697402449996373295586671411768193028913848311412513997968487982197751409586802684533262835441106782659847872641874878972501804397559870082402046681107458704656919572023585138176880281113985647198214281121743371529440259569771405343899288795992465672681161458950783831479152612052212056991438781420592596131666214572964443058738451258577440168949572180553457771237829724198593183109957019073137301426224212113712721130516769054702844017147291546177150735538968138024934331918979119964838877999879656761514762538761329636154504102860988349364202703915110246961987733468094261202530742419394077179837979179712636114622243925180999699290807076867060044515544541670557836756921763798754566760931050675872206911835034518946222112657546409584048958467657322625251238226886894778758654576819262907827487706585903757191865127845221303050050200988581532817845775886815318748481873616745912076037758379235063542766944065002633636420701035469434001358255658270933468154070151510452144672047646112091696636449824400311796002292213878822928370063457442637798568090187894525017068847141864155989067788706845704481673055873893044456747801135379445627958836577170639835342368190585883184103478834568730727259341559155004417339920010499800431066217141972262950529260697082009921671377901832645822925995860462142696818231962190590189809476923116234942113598462976894380459733956095637319577782974809449558298581268861475085678302086755837479837443821575661184099684910007530326082473006529396762503578075010071910915810390044868374230223643009337950385234021578141672191924447121922865632641851483093206141066562383218503279024567421740963843843962891267750232128914312363523308869811063916252532468948116226200392020323141826451160368624434795213447041512733790650496804922276026093766324618318802939157671769680280020885928550034036165454177381554729483107861069402463850791005321729196480988532958494958837341947787704064633798582418563791234429776670594920838677052183814020569980712527355584522986979366259048904459299532240353674255296977856395427505520403923152955724831188445157906569566925700672195062020962065146747336297803623832182554998401579169086121052548536452726055689048417441808275470540004176620721787822966500201604214310527814743708892273576270464973192758974787444538577339101245788301834087562609851176813028295921031021338315048757358840542293083952319906095835161110375707189910504730241530697728146517047467288877811676494119353995442034845037366125958581426296211840450065854030725180968703510770077162840025899116253591941193454544451059217507843083513753636703903539381100691774707745031686113525721545740996815515902093919312865950813071338219354027357852556341709899180507168576226207674227309315880447567361959550382156152189672489827609867399024329883999019763579076697972986115887147928674838636890847672735930175703111194441286377970124796054565295411050445142357357337433784290933884552849952387410941671114998625549047989822295550251618043511564327553820904542634247541451086953837617519173309449380437139712978068207174853589417505959290360905931375513389516562504462132608004956688350619981036068986332665233339273193543837294704335884297392674144724918687749518011777257793350795357248443481049105082166149392149767518379614270680909880221821206460657838710591365706729375515584118429296712677328723611817968691148776571955724750254460312798597749604277385032614638276096287778141651808091567202942093659301637835405395217902137680312028441843938770250527545081746030411154179054187520459645835385028350789040190817834005201536251552319007055159012357816416266206546252237025785555419026586391746718078543241451375173270924322655056739040813340048116906874668757833214206582959472428071034398817823097738421657175960476562840066610119738929792990615197970968021487316241034359710830632547309162932180025949254492320913889149619884278725678769689504205048512075176603880274345021297845086818347556193496755883584449597905484345752600188048720293834993555578380865749421956578125853750478775281375913228522681787099100256275002864153559754009454161559993214779825803867541114018850368647057458431217819782381726302295248536751647932138956399026258447925430744523627499282996692937565128748551267143420920193901503018655926565801163986628395811301912051932759399659805145265463003873878154819661654704878749879344685748342941246288811818000510311469255548774171344882556888943122023930900765690483155990581374092927459625356680470547505794045331974390510034111847882348050792983888259491156531357951519922808978319107949391164298853434029049276955113435151708875109629379288215909611695446311104492478108641243867059330477994098291366351527905378211887910358918235600212646015742727665727569880392185158308175962152515687476140651253735041455656409857532599360716249979625693823409149937934731612233598414163566269440460635836408413504696110506344568826075299750144468527237392757013132018390697068420105428116871421811467157305925357620734066981533396035487829595300723106661698642212432555658859328136609042910739587934917186634302630738633971200564329278397009295615978518670650629433558932100822157204151890162063409808314779700996928974755059462880728606176060732299489760040239905495760342942777443470581853423472965322167443456155967428479002545365264724239793109105696589671249054018516135618753823765681607043334487408207906578068680406547972513919249645808036252994586210996023719656482832313678890080245371763934306875458711115069149378407044700882663476869488421082084097599178233458805651360479865161390754074372417724684184325273344543199549590634602081476667665700940121799739834063319243695156815333713239969105149970280026605175355940970617794776346274369101727307298795801561242366530065994537494063749028712981193297625882616659886980314891315799803966955193294778112373571823031325738665528211648077089746132084134419932896397420661885838785894723837306703970995085627385557374003359191970337246323036312405358425537215346500704016109107749659936210539153312731352172561676408279696315733249667336836593428887634103650163081825568197187316858230552640283830125177394180065101859193384336395891816268954040437393105697182520062359129610654218301985506857976120466382935343073534425324012847806891354727222415934282855804122308411219056891902986425845089539382696452594152411468179603023052814956538079702990173907080826492238894315101026952364903468324255445528663826169557077502188509221893542049956045160522538245589478072722916909933262334889508843789972592317221594610170385772893567992673720637329551093131065327702133986474065135576673506128803122071415394761170908239901603073296188818532977776396914196176813237487576328716798815041539491966423105599002967277566575540922351216635291638311311567594712484288274142190098041267692960253065423343414583153080359142935366479849294874169846249554552523498633667509162260992772051696704040780051252996520091849377160448904249077768854195666855320578966553807898998298153950655091939670500162324244442188635096842663294586405213353867066511376854976476344713998609228983981699394950911742995132075188408725754097614723299399318148115697940105530774653770851850434470992306895966569990723636047838265286401172392492028387006492457342802187960873262120100199393884201463922676055449958150596246730229876577247669851554990107475120063061663508331819895093395106676202066247377414702071246936174985088413075939910718165387399745728060024828053730628517623158203674027829161612887571599478775740875181623599817117574262265996481359590319597139355001856041052934893779217732351650600246776038320423173209265451927820153876958046150210246636556386460638397334088434499818538486560552965209590629888013361469817452783731123623717733291240330487636912902950957759233117332126347802761654963084891536390387375272768813753626403517921806145029157879156673467221771758272555031231020465278304527107888647704250371982329522685477041835590722198439564881278344175033281329815654156980644499373279888080798970885865811751591607136817991055544827063224824557113003380292796809575530351028827272262939035904688050634301713677296817493659142217676379484509940463440416518901166325725953447643528639405344083020379094576813121041983484223973551059587325787646131853293790666539651980909181446955092671775459008325210076504882499495158769891826812380044365567750744605115177664591643499639812283175207721577911811327297517559924445508852739064735429666704923710397103069615971260961463160576862848764918666592830052017087078506730995947646123340014309045314994950236078674584084851053845025615067931818974044405202924017006640730840440304510982332405350687434209835075123201002845561758042692452143817723561857059002527317420626469780347416228639495586825753323552504675357067394899897410438808291558798457171216284059189091268496221617624417111116612963449987634903270381940352386469336955961292101911089191461040358442701704088847669377763566141569791440330775915457262626559162393431736894252808043474735641894794120552174829040168384791639394732215652623403741373975966522905987721586265870616777267132554686620110565032579154478169129463409089041535320963184308178987753615714317434016511261792836248575232655460542474408978905446645063145512322427343693012658468315120423149104504669459839368863211069931573555677944273063247036810697886758291488980472309858860521139102884694641160818790357569973018197501115745362058323992804447123310882705037776776374517740084012374623688634896780429073008432043479798374995210667449714820819297216427754914508639328956580417611101745153062615693915767597337888656926620639172455199695167049333594566759660536830123291054761992234740531022724303642414272483903318233902499377727935849071066620171064074484572725831610109401290255233699023605134481062014676264444328515294658147604445855943837523973453370188795691503443266652641065370650677874384500872667722686253501470982474758001762865734169266996154653937553395740161553751433629800159117553829080180385017171789318372907666534323584187038454830503291346801399950452430997285132771174091447557549895755699130964462233738367408205630814335674631777064659264814483360875961960248528653318630977819879108614801444489040871270317003158637356009636497865756354593427659174722635947892867224835379555368572134302949196566893140425491074268768290269987889895755805034193281791358330173396807164191215344664573337791744479716791262160672768488936244839303913943128249100678699871553603554483396781029427027691943533346456573636821471802276937930597783872973711593877682478965467684721595495812636328605123985967104198864884089494291905482688376561463681905186564226219305769130433492428070913694958994977173306728477321661147270692233405442155485814052608783737980813281226131838331185474928736777306888921831672168433703489220180249745862094872110708539935916667489777968362033877172790038176779670944867237082345856324682681972495073324666205546669502218953205554577316454428377213529568785284676895993900988925294313066943049045703770047921854948209791807791926978520747358382920645875015745498796968072970695157528363473431112979316522794523033365578298587460567332063916053350530068629324435237633430417681998670354896057272849452597735250182706184168591709981454275705665301848714675563172575691635648700060245205858578492653477197118701967295603784029945491640685545568473313954176533014953764709914313814404929979285652092844036389796289155262388149411091599865917442418315216577212659603306177956456550128371665468355789933393856585503006123488965052072863054682558588425434868175330967324005524107122902599360312772726362674584842903872868921756648964682898117157077638721750050460515369861418838012834483763188078592721648144873451127168967013349792429220497187295063880700567341351661337357849295151502138589307930826468203457085595288947500794946036360785482016734290440912887897376363082269445433948453300760282636236062779321057026831190669660428784563622501980534773933786046399492787721283649753709704617660010457535666442327570258272155088628469129416064511044972010319621882210331067643651785741388148370300961009754797723236790610203441088787829437141156470188568485859217760647921445002447867428491728125542333678579270941337398704811486101081379380114833030890431680706773275376257726170848331668359026802957875594969551606784047777610302654810961495396354933473340910227101665069977742637384376476426983906779023444719282757769856924911887331663760461991597184851075699329107479914968887343658279619486006287225132428200523260963469030495028401308379500705194622062258592915311533189346961925554426684627160681426519218314782131059897369161272368064234755346707449128072228295024928563774628527156881655010227271513739200436472864236532858110626737215731847886998804493531155880008624590737429331909586443202935814154705918151943466678075890620659379603772484515093036812588469857164566653746020123857161129951120897472103541753641816190913073536296492915269704599029241113627631202199218392905427233278084641722035639685277631986738994695989460194470736270717854833899117312650902306756178341161824108954019659856305646225155111008382083052174316029463170176853483530643191551800281927575571525539250624980713760560079282269661093254837549374173057310277008973684213059653605139251455181973648446314913441701474637326745637456432395345813346645081427898515162885375773469692194329504007290891471712887042406848197743954875499208906710443240092500587672169856820741466454305674123174981195463405264979369880899183842090602730177755311007314547639472585193656144995678808149791897426652422986145264456864570985147012507116105620560514731747080412912119329464818929968279946331719051948142312549342623766266441684809125395938423475552803455475703009344865154815600893083927819336920365923697950392643386992612922163865195982551133160098842150630158479169888690120967150236687227788742360957601307181979816150549130916790732440860269893903201389243202229927396138837251313787599475152536643936696587754535442836817218056568530110802545859512257822026329634418031008875769585556120880300491707268714895888411009955659658709272560819133077623114533388198594406531031296987343894727461914623524905288124832043671852766262415098541350303407216003624937779185705776667299387195612205776065374361636896350196233690355680812270590218855318923422491578616630119028128280704862355331406789011100733597088698179404145720312561651228785285522974793631231834498269459463989823137807613081451840785147544506337151776552840750727491998277948426542962855942498937261417714688451523796812385619582816248044155684343710385873154929840025402718800652419398093615624396720782362193549850852121784842888937224119090754759641004521331618289681795077510609021721998319613125968084088010944094547078722472647786138918401367700154343731195860098268097639717639094270455789014264611168711589099960124563512175534448092108735661671521146929103602686037446218188602308094385694049350552865308097820845431600922821558790935390129423362509842156631980963963110472600981824201372199411195427521873797096290378721940707854896102781848491346192553464165252467961543351491033741094223290891218138953082648994254763223781570189609964585763490865415319877900137069175178875027163976073452869560044799454089260727255150825130762248862756770291571230356636332798240185718099294148809585109441854859729952982014461590291079831843468956649706741576008446472592314181372321864344215850799223993555581482581188140077751986340169745344632978267028174987690064385339291132621939550189083975254624408342228440769261471499032736330312728441172316812653039207991979019602350511894411932318528685809650613634347543853686294490085418559293612190641746536767595830054626119019002927100880687708995924711843595454994177351138523697470073234756938246135118700851750007659188465064766198747986934750654802403144544566976189657692631087138561098440745390136935717875159672893156424028407748212993885352776466532742035685564854924186794223783510232167853648231648048014622432934907887367132044735359605609461034580518594576569480510004709098275166583916287139524876103373763731665948652032804205746614932353378018752055305377915784684149152360826603674378738772913401453611269691356895450742943583624761569124066439030025834932196081060199717936744012454333804396715830489783577356174725043190326369184676355403690279913612492598808906617933174838841081066745632288600929702122554064383153415631012522823056695673347028738250389597143351200688125903140394450100968832971590931420531131148444268157186285666910303373279385555430668800419784996061915525587328259958846005219900082722567152767345956811091039304650468584933910884008151799931282805904537080327999153298400777842188373791071099904733068692461702294173708295818998204678817749496624132494816262754594065258614921457189779619359552409381168660662225667869731976643515567262284095757316242524007486554990607693517223965511687485512113497548650323892912542228167090183964739999936543766569640003657935173677642377170023827638558285491924249490440860675729209570596885935715815000321160404898079524267802517558557488490496853404975668944215962375461399391418852796659050226446670717938762757135821028590897439006338159360876331098851579483684528254239130119307731063912631814754080805403305090307176378169728624388324782887675763900233296624147352392995136825354240113488758213742101339985742237241995502551597270564332973833755177297824222322401768761683881038464306171282998440748918883763249628433461042187225852731321448331619408133615780054560930134829321427628993459027793262390814110248825319179360281293209961932972240361654030126584449289482401907930253229066867667683206646818226292991325710454985303178953347226355247019511763788541503613054925619105562183413735767771999626693781863703935621077302005423662371726847638096644747049909433009651229270751642066216181926397338397247581233617319334591034971760190984341001800942599171750721390689611006900127645247092368118835699345839309873927732047333152426318164254661569752699812108574727437072102390446990082620998860282200304768230066590418909763578342928314799894960719255788797301827940192073152850397860086946181728745938195322387993170245760807199120752026365465004157384581758952975306133235525401243556662579135392179889788800300011365702679037137709158497131157053627994880902152387267757838727531106504296246897223890632647865898143400239963993527300876815916773680916194787612030309318454593330096125531634318671212293751823951427442975602676904488830912599002033821634217335823985887415705173372683687047251706156281659808770750277215186414650452032806914684688073591075443333064240207823491290966250316653200645729933856868296227620271817963717171732350224263424342559107944276193487716148262205863709669168924671532152055020853216857167550785935509494979717310378222480126307491719255050939533877624182622255070748634073861483994078699195994322628446088839768986317714483980321255158708394431079513368933653552228858906309310690524361845863358066571892255915739495910093774433137046789854682168304609782627139362224001765838088117401969964178051946829994154822464412532869478109777908992559186188416589822878946086991151133220545686676237313397921671272960239130846093227985677640653709204648563850086512261085340630090693784996840785714790699839561501979417602309306853007798647091958391938060527032724917511144447299313733111860496276520041642683979826813101808770026961706688192713121005157251827075149747756755800322150930213248466586439086006887150832987603219081315031720555947716279209572195042274225986975996817095502285301858984009383039744545910013166187457188054108181253622915338879653548853230722787724526695965211719783348224591920311269712412145992564623090978010732560452008271331335013403323014050043814922181852308442005059051829438848681050696228148463661020752016230485628577827135617372039255383246179697426584982286564288236781075398061408463768556510510736503911898917726975784616793620504241772169380004256100539805952126832281823702113712055576443420508798878680877754267607443595815630477879861360278585200124968169410619640608007333132251547618915738333770335778208351613347275809946885785163364029969753554472690023798062190654680359729659721933697857778077851269513171205976137932058008790160437279010828371092117293515411663566387463597838274048123247489749315580314176102733221093799261693087117793135521271253317808702498510748018554930483696895830442093731548387111500679800118979634476800761335166935016400018806009103122890316710186604404162309334053222212669780802069144172965647462333719695465597679072889675476294629224133407517548312868086391257259725502248054988930679604740747085877780232454390111462716310746550923360949204033187975068220059940047601545073977503681568276241964113816141575933941664559491418537395304831202809080974686200792591953094316071285143184620011015792197660386643050249684036286921590442046261888789715414802710873674670906042477120568178292977604788084925239917036250359331987222899417071392952660299813237161765051315774500829972369864965731215304928681544077568194695487056365772451680780163308913317615030931330648243059846989274555426144981297172963073963824286428395226486536075783466159392572239534644739453843410209220015317353171044837890472796897831781428972113549052369302179585065806367223279821370188773545690465999810920912846780582324839994524228507497156480960175550956566272181062834094365704410226708380710819652613831332293854448940156234998214188898196096930564642006756776266278565829805592730365300741032678101817797779487946545598039302094775073492576973609925004651303933549193321576744644975316516664463572194287128097746693948991372674433586629288235921761989518174517938322448366019882220637062440967610037028619300412835494766161034024601906147976090342043767415627171308006140974677855069333594084863741952484641962790566122667648978485163307876391395609871503164977306799594570876260993935578786190911484194702928658937338961602856019179346574359693928550854431432789898812009279121544298881588749076402409169833243031362135603700309298610419583473787645864279432890074316743875182706425332497716424513578110100346576242270652574890771957003716307573958186461052482800605171472719780261594013045715880623852869728745318324069423184495877357309732169178811914844295641822340383704965900166383799935894426333561793658711934520946436279762344398852279840665082483565869017932532678413082512647498723877897134680876225770553278848445630794505418074728293552471670654586587876760928344512326467137109821332850358878725672724884018782230572822091815872245625393401158929120562417485670993385396119888968838852017117473559174507813634566198101733202545222475104498756386079985547657092494713871999210144657177623715507418690359455341516042516751250549566509696119926848428351320496410452555908182455260472188435195262356526653530957736575106637366969685795914882723232794175064671977975758432653206385094253025249792899249661843119076133051400675737709841892508100028791882571328315014180888741474678761777297902973958264988248223301012033106138283626377102197098991315929092504196498212087234445529212419257055855013028032049427757549778939311847273887102776197553787044032547338985339725886542576706549584298538757489371101414435236314138702260303004472397039279749907545442709177205772694073027175357639071579477700617060527532444811332741402568036237655284791826066317471971303238518847879104906131863143996688334015695898295036224380086579065300034874997944892994938918791615681426192922262063838488473603832625022843518923406688393869149144376013824322859609784656505313072455399638037917548299660984311621277858742841938464098202201331917395620547535357054275291274441182609150689888690808454258625894878824542468353342050663748175959151984932211892233264703540538809308065096837313784709203257314236674665010370766497717972953377398021869287082880545133667124580085248579246542213672472607810152528889842805349068159462833837017676557550461543736747926968859722551233516629538810729047531965704215598007940492335711766800937374572511937951969095526075919695626053496535754603577309289310794796276886540874725859367864893182310320153242043222822372798475282238960964008457774030542999475759641111628836249946570501366661338919687035903447963259797295499862262460363239280990597716848911302689916918096616405049212374831286026602881768883147237185270662463605870456190422904389428755705220780616070415743867278950252478111152475978767680480613697695787640977572471780280411902954355820620774928060496638892295367592468606357620977682507960253263184917926729533130849133777409271748790335447712053191913207506203609097173622288137435042109329884524404647971881148320720175214045401074506276904085367938656889701125306276070373326059102843400866490390610751697783527814339263210581831724297898519767327989640683501828786889458301926057528366831649671565745871456174578694128658605170232490782165938702104400797717446040192466064551346585262393453643513608737950220834402839218078990791755337718625107643683751770459305610277287767656545150687824875031534497365407969912569104506666791057446395468995554032858346166876462887228790910592128130231922296504109475718116719388106076322574915550463485565592545440363414917151948303508772412724257868323584195920976355311188780830576460285409535644904516225999584177605184380891607914729379368355403975266461203443365969370414579388577694098340905665628766694799043931206968018693562300044352994768210197983470210460109626159506142113458993427713205918341932511189334592716717948325839721037245550917005099482367604558079622285123569647360783308985272593890625574584055706989545881223321881360424028052522390467538965910225741996224285717185384318274709099010225213208835818560012112124741169793619557087991259967980809170461113090747764122017027778415431377505256770971219339153504779302338750201360764518952902516664179539629599802831358570665749219196359068101817410013003647083566571680248534312903304028490181340944080723779543666599483505676271419511569804447196520547571548881266497972523424077172045264076896920783537369899482501043846285952882159587595388712049952621299359721109906987458079842583289480848021562613114210457313761171208156402240386846243613252047129040068833697242640520381872541330163153212372489691719920025470828973581050361582948451352389517759811562394220723890656635027557952135221489411022176866395972054104634578323698107578041588752629955660772729826006123824609502740000269195273352298862606804706759949973949754878916533344358586864911131437120876399072563367817820532470621862675231757735648593467955233072960117350031174803205692016305310541621945731963623821749290224829263687622493081378510459426204678348738737048948353755641021574396185683607100480942099062122560560543174644948460957456362537195837395453368234522960274536481323639300713744195881306195978753010673870323496094722318534092922513841566225050960698512398200616531988223495765951990025115601823622304921923358831277508280373514348620076729837555388936658400642416431755886583239136971931957229063615787740984010609896356551782192005324790536710956823215081685013718064552922035966317868298956408739719092735657612756280903928704263820529045247301703322301772122295166655998325356724887121702548482437356958008034853968909781218812960786325693393736079736166714975167138124455741576948409305383150305018241843333235022541023603366052101092428688021119144471283590230647471020786857322217819116718581094521320079531237107426488519973192668680597610064987265464570160922576781248713598872918023338074701307304045438010205331098022828389294251668157199205587691167546758318321698001807289423788005817633932101551235996892677591537842248543536600885702477846391620174032938249854870517010757357593659667547563083827483882163637748796953461717998970834385032012236826740489847444429092944684588356167408115295844784502321930156017977067289506953606390514007136453086926383854344265401145170050961485658583521211952823550585987090064961021516314808181120775949664947634703969549704255972239197943543674933465941412275811461683869792956349661819898631333078472652618123667119705384050641195456881608789499644033360285282552981899297213285535268986948283945438518749460961097298662939352380136676405502364458969198583665432322320107641351998365008752128379390759076032200454272878706896895179645298635268947884686004347103351962328992541962815142556396859446874009906038704638784132814316389737910442446476438542134815255429613688543605063238427259644788149690517934457150634351057728289261878540283082141434328660916313319670794428774807582706423251534539983085379493765218804016247005654824370722481034539934608001756875267825471955424717558071509123961781697893053769218542796026711881985996924388553612937751013655371955540228583938238774131225848024951355468656241784729935802697896115144838063800590546541989160688605684162372080459394380093386184168319227868541672697509377707624213093428855976186593973113171251799926630462872110847236163545395080798285462246840099159437531284096464990712077739134761182756934720510439668054888868206187365665027999127287650531798179449498527558078348530557540683931560413246406025985410434446778425172896392927558626763739309386907933670442423982812121690963097031093541513028176330763630119791498051316307865128502046915769701191523831513306846387250706554318718234964804233467309766157647493809231539322436854373825934841825280285659926977000260012651654683172714822706155755307028927433490090636937040560860676344037999284630330911058586390532696038898654232532745698932303420578343176593184903232305767792761840241579314986413434275662459148488481229289908257892914005734396502802301237024521140000824943865484304974838315911357154235450784342769988278043233515978921100150238826682291182765290729426983922819061052609577104686149694810917059803271167444798558080096890577607669630069688339897843051610744747305487038767881590983488946373824309663249388461231243354380494887085690901921303711433243222504881116159774754522724065915294756720945671869098483790894685193210425265857478348336460027578244948266335372372080735000164942960027750124478736967858950233958072833850100067601097546163832800161113690475466055765892782392280950793342482551754290022910040741283059439799496152523753383958817972894983987780225414634991003076387252528742852292424861657489147531321871403166674286855479963308238181550196253954294206311536207800060643831363010506415078768667729309046400975764245938509483360370206128978860190878332046513147580108523699356073075968479012374884106488209503753556389744338241796608324407977482936783883486807756405439919107063424168861945386963308071553805725454508814681260978807461107208855681504727049551869512450317414307601928845127782593861419082718049930149663778376624485604070165374814764959512073927472993524879350719937406464406689252377002085125427275577952213998793617114414693298373373275460236354097040645654369577628289337563848682274866266571998193972310851744515674854299188342417985466205437053383665381054489689343615954069540118119755450921693617276830777230618586922854861067115765880675367772101745664785433409266302921682765186648652972329716962240877338267163598409967803507187351459124338174812094440804638513645882020402129791159656345350734426610375938983163659031214368129743030972441606335540556163008682247012207172704600657347952890011059731335535073763332906647362429785130922294661117463658777398605878292965860879373856567416833339358174473576481977989190169065881096334211299909313645809527971428867800907090383974129742374958237463046350565886305320249647935571436961887933492934948568222155774787164804283439189115331516847059155086419722871619440621792786732810312440009753688763381250492088891416526897730913720315521786859025015619455555695407374997679236701694057418312274020610646299315703424843767825859837095554196683643038146122429775540078498992983168914080694655112849338456726026078602849649819880922835003165081141690053615110834633704337560556948028399902392109427703238199364662419769848735854443700876716583516456410242485571810837669926074999180048883626357079449241263313653203683587424374333884356965152231603209696853376034743731344822238811129203894815046249662722288368209564722112689928844500557268670329846249676805166421394427156216454506011695378130478933748114610409431741293534179763174601846719258990505192031164871056956803060513104166189440422680436126068784081353097624887180943384479752271545147888527030434041007597983089255025238017412325398327963901340286749681656438906705969430026464953893893051078827804380344175313895069825302400938323917045221780470564428575465676563791987924194634073176343622078340159362869838156555109662246013489733271653861159073456125865651856622709158498949431440367075428403043350076012545620891759294641689182629891294175018062349235264488947305845169243249940718770478834250858340386866658314452210565712124623861937750908664799744852890359834644539874267669480757082639001094096434446903488194739420315735586026861238721826014794189889288783433835987491500929998306082143915485917942045591874470042757050130191084499225380053865904953678385843907559543877269530394144178829631293624042709319133675146629942562896707730308449585819608101492505882428423155478161826059172344267375433292525913886821625488764195879870278156142020450297088756334713078368419610235753946750030152043939450262358089933356424592553668416956888102277744740195254552473656388795124969638827130793625243067430592460039711784281162825615108463404596354983587610864218912934326461458625925382120178401857669732349545915067247294852056267075890509312072058560867237132385532421840632344221127279860344385366659381627526764007261923983207320919098398197126027944438882927903576738153826881787967911078234174176319162768651041181751294443892538128162270593228120783545006044579558731391212299605309721427402910712211608854187339989858259327501339736924849809451288791089001295455025118160348388559362506653979794805357818403990795515203715377982683830628206573817157827740033202659954703529463344313723747037079436608223892465231855878536448386525250517400763532018718084962963956726064667392230256791631172887766536604586495016411778462601522282425426226482468250395528724511478277981291222970738292327830869765166877034719368797748525879661706633953124354834779050365555239169806997214231314997305706070035792213423464052424581205876695442596866266733814142538201536342176251560745894493745510854985815487428185221494491133478208144887094718376785477542456354279501808236880961593744236397586991669852840673876875671276053665900917315694578994157231734511212740262309297617473243571212764872146885160560712358034692675454481569166933257554963588327373555885818323541939563232363688889291490987753479298383167840354836727728187836858404235038789924444006967254087365267650423767291421180617681002696907223386511200379504251358840614621680507494429762810852251039678596578774578616909540897423726568866695284764993498757268909974696503944202182274844519957408716041341580493797949807633806089448705159674886160802794104366252226767861473977186651536047455552499927489447459117635458254592152861019725658403071487459730535152858692912422584136882637045355256465688216542097512163922061251203413104209025194336884354269688809628088690646545191673908578934738026721617524958556141066025876694734140011092372063312300705768306087997306208714599279967267257609921612923986109542118640411391015065981354572723446262700563601825895148310863794493498178470974469939753139098800514859361600535591034865566613018474052455175608845400712802483059144703320577108082204101447617801178805313074048314614159607234255317533441116476961096519794622067811322250315307212292597773396846541248291392739328087954200489060272781997429556128552609086036632234227518813245920070002533180964938155672031456742882765791651672636983293511782389362517599415026239436256968291418442270342207500918336164201619342423101370466604375194876815579680913904444837501749950822882492939139775019908572675576139813621171180022105742376516584378091768121061164279035725235282407159599402631356484588781295230306829031627528715173579794866576129475216383021533197952594524372250675565599143597223668988923879194515600545282133972401062254973032063831282405977887807482739086322830637524902393084630404039941125414419717439555289498655874232194749391760758073993372737596193272227252500295001723215582388012380830799635452442555357071336019551977164279858553765396922560428148538983931714681262945341553758726165385818005283698461540971031811961098839121546810559679376037292696143704323531281197874907119964508800589023862925694760428895050692308396430673494484480849806389420298031313034226417711519891005185800445003586746291961314386597695494406032733673261365145780783979506484754889017303030288263839707850612389460295228991157259510779292573806726660751702499391471487241882606331488995966274532644242646130999623663706761773307205157223716887584557571555430939092084843607972849422214497480335503756231077076079665535753814570597056130122429339031179223534773398698506366632436095307403305207848408624831646365403822043605961001627678573473131472835522291726403679725640901051247649573988905055280519157039250830977674994455252931583813410056835829136575227862143918080214773905999491307148196657476524730584679204634695649844573839760369715890547755445135415380187674583460315652256726455564083144908575649184003799849922947690824410194144648038901144270655262950486171669421629314568881242615425729629897868488219634859189920869674477002072164956275370121826169045831447176393885385722911186482369307993320831970214741425805472206594678486225728557613833110065441425385284461216958095418265634349316714928045876953229302441690691690696123247163079455757444596343455929965260279887021630653748193085976952758572293462476565316514879034318362067639714074805289961326840135850247021618691545938033316863580049154405419073365919134474993069384950528127432448448493942146204076275866198981615202727732358558691955729496970366631811910674036131618541041612368045230028587041120875073087048305354835624939861965150358961379146066156362220064070238610685033129813142368250632818758241815735352239967824135172941835716030230944225349573123392382693656697891021829030143174403925724517755575001943960936177767852341769130139533685141733699834733406447385523988947169217945584920653600624685083242358167201477306084240269455350089547258687894479060411249812707223358929646188951684572914064538321364009715837676042301366462089387783135518258386633972665192118860559709122740271081009327573674770580924629951864096441606453932891720196972103804475605199106787118072490771351233507622716645220422176425879913017474775450064982490574441042080104120725221631651009369809841041518672163064550392063319504401224492039801147796277845071543206830459501906693936050734580032820441640136964510745469438282159396426582450911657515528080336650209652192095394397954442444968799164202619560280787785959633797740364844152743743781618632332919884608622128143510612912280353838284095323245834246181210591503964370773875790362160144169862108140732741323537485410765795684870515645336764556102994438638146689943252388243868578176383003625939710913267407461766202451603897861411366174737612633277099647486336465753331467349958058540732201104448751460667267007367904680786330182167179654140733114577269887454583411745271784487869454360997908221324976135943181271379846210010692796486945188744348391624086391525617261155311236963070142979759184090719970375464242342919834514196107680663415217103816963643309207464033820408000388331253971611829184306452014879193075682493460572991384214329171825782323154396206968836052093986735177696785096927661580128311544081730562357164348495301496277848516947613201106534801081973706465194483022023697027334930447606569859909332151630973397700419739140275377794843429097845302686851610275172414622831002553299604586627099353622762472767851657043926122630452866907717031343220844053497098632760953881888244276937651871260081438526639893786292500498347070895241306611059377481257844492208399643814270054489523255610395445387789438486426071252276411585053409693192923011624453763475371563019449779744769140333216716965382741130354038978073924786536676538894749949917711285015381071211599976630412355694263699842611351891745135713789625462358207936794219719575686101114269798677982414878098059328768895014278015281170041940872387040270881661405302884235867721471173105552342437936553473178410894098797027809445126216671923469682158200152055407556802413803585107630497819975121166840637005292007487062694412197415312136855669528993992044001077575786979347834784254078691190919630174669623828978878972520892987920619964375011947575316103931634621764575910064824747884684065362586675949974524286645269337149721219399649038032988537051613923655171556973075324514458176508030471998590999960289373760525392703356852797083798333310208164430518900125489076401081455176874921732418107024248414696506279544663856939563974671768197288024318127321839017043082222365596774363630263099029743651314692065360441817459174110321539059554536831676855278593213462348007537233449825095484746074051514155512374556800415781396552528358446133944288206891099034978552828327788452340113573524874187164372197062757871040704455566452771299173656079966938260522341495982555592517141040931009560124119994241983865782102833324020095144187855148228200829144954979689788699828487637162569165652707189107452159074099054038730513887049026868769506625342702726100601729922588441908722196635189716867924677514400535487249836711199132727490169517142152851420469851133894775046316488448783722502796685017793911329145790904048099950164034838700235317897657275604248607566103536425529677788626288891165307976284347402372499069894510563234387750055310368528565554173743026723903778716036226294604285402032946051856222600003536479604350893066404342117720152249215642955552987186761653245873013477127066408334380588814747985802756578200336789138496759802838841821785507877702065956993551956459092081992546515833014058848072019483537564639869040333423581654192795503251613889544120287684246597116419050005372341813539560608656565313518471901739042391282183101157462508657292920334662576964544897707224329388825043418195813907477840896351568865676251974594437622557031545929694485730894743360021487003058948102795258568688499667459960218268646652918661665861791043971301741250345901393715941232759703703866082297661324816660174781966199110433969293722954025933270727610233812833637490697338988297060160694177662938067084533664110284777967057951557460405912549318587067406459064492354908961127862939272901249402340041437945319636425392128215321780607908209809039838026409919093389365613584411877056945344660063714916714188550097826593882752783791634765786743361245083523917091838023839193111652919335542793133298393351698922174997701937593657529573822111606905769117633063573463479252934203585532629590965189845588814132150513581357704627153762467009201993423167697901086326908090055545197462576359244574728363392073546854788030137696829322788209486807082963744333201260595601539885680690933551663293961169899712744099013610786204351603274019591952407764841889452270623578644412062971279374590392577942280272405409849134981815553813517748526373393346613803058871101773525323835501591062042677223220743339383571829096133603181843444695187688151979130971248449708947562108723383468668299901942934644143195137530084066277316940890315959333303820867439004595374757700355924812075637447628649743695864920738973376848606977005911323231684604943251113501349970019129128660098100067821775778025358957293769245441415048275543582213439971456611721193815856005604112774378809104176553503133234900301224541476020019752784327679045989850626459909673112898388441606439242357799295751793478131601636296898943877909999425409365568461923881128273728775459081710612105688635879470796372303272435078693777883648582485592676562139095278356185780933710213780381443396423845748802883964796990641034198274197186791370589698641372811056191730380419002444411301105850278884865643656633231317455359293559715544227813928371332064848618372876983703472026539868722811764617794924820003436540045978777006465052427807310786591869766625343708444929670107279389798698069513559439471225421384394124361657021593111706441089945386116345182508001258073313555852815208071634534484526038452051924747329484703687312177088836975212449789754780011144230726335994837492125280357257513675454961046451995176351130330697259065254634305962464268625388619586824014918434437358441946877858522371687286156638045578530370923229754896861335176669244095478035891562713932197193615719855975758198420040859170945953025830078473851619977592300192323699011680694436914338534083272706883268401701221503774688837658525188561310464779073820417797280193833724029320626330093919342167955368174492749729562948790143646191287231150629529633659501610841093327057974746121916210925325555605304416654680626704350417050974954122006328282330314664413951689918798625624449911926712748916480091188943968696587840507539588905410332564209394498226218845076058941042945562533823063140141086404676273597958688661151647258002496387190409305943127047280467032070951833942790934272148100464985223044701491336082958148934997597705945481110956804304105264987866790858332852278823706526873478970752353610286341826191737116512389998756005775015411504365567188235970668881508829598008481517865894571179724028480442511451223560017805710040238090299079591718584172418313931266801204257572536697882362953487224849466861979855488195165615934235065396344259341573903877534723596087150005790725293423275899306098064252016601942023022090966197452124671245183493908411500462933478510746467302413142504769950137477893227543379838685195758200059462397104872040673649631870566501991501169434730897847410080718663406610459943548990485394353486475849791286932992254344125603803482855560671702387258519708001184977285178867988467009025616409395512518611809709435565019967264129762743290627662958390523333766228651009974257706611390287057214230694862346121226796060645266278853981167651826698979101336135244518781029466556383264568688999470047748859729105501534612875738381886038670472565976320198848185643132692368607093441605504179499880044680137471179762432045143194377775257382191345867440232020889241035505656564188377793479747703736362252633863145851005255591870712465450783109033415872278008765186966167158938460914662013869418323453225097926986799134439331200357537725394245524230692195736003674198372458468252343700760624539728608159324535488620587835954320243527441780918278307720925613563539564633676494599472067186651064512733997910269581673635692940384166866711167714128025145676189798114613277932926619753794966885473115680702552544145725212203927854863246977039466443869037357096394302098486086949075961124709906899865676066600218795489962420182028202169048444805383540569429492421192766688136755492261756291038725143474326229318344945523447873189622929598306990353635935537976499943571390367468008047858715016523247931543486404999025589136299754851187054870881190255993787721616436578197487845260805525330340352485663286100721089579282225336721765262094086411144487644707843855083054171355985562572831771684264136370831050110769823609317056870312455767784507810484679236347657034931433390457707318289622287458415412714454214905308605097783288354787274014425575663603415532528112781201430461742747582278712330694173893299229635600164880912372088606786410418576974975943805533635070654442389226364426809395294554565367396667557289808704317753972830024294916084190349165327346798073917238311429765970251065698456825767532529273852627942692776580174923956963264248644728064565588975050267695485903462878533638898096594264649997214497172714852071059347288764338567137145178506405284072554078245399472801310942816026444316575485508361472412386573288324157067626267896940224148505148601356646342156041210145410407162505958500750184694466507657171396885402881616946648491897385114640406506232375703404802019034443258982257067187057122033994965709255057993817265638044590333945293974004072383205111986215320467225614442555554344771406658292923143055979394981967120492570769869053125418132104723930010698913089056188725427536160706697618822791013098199822496821162886439599248023622259690581850689237499386704949700411345685057601052464406163096171612818749832686985961038766646435550867607108647929732210301763040292377956699835649010970098154975320868474553222558130811573664128194889638544593606811830703500289511910804168741551340642946635900370387291315777194664232888117708281920983358364819109173064629595720898312748911674365996252681532028161580038790267687021836003624146448496234887366762762960294108167495446561553168328649074136750320824519063484932742038323881238993014306610032670732412228039969147201267296317328057021719397982415979262924982631487788440084923872155176352259544957162901430502099710413792109270378916405689446496371873360334004867118049908504495366583808504539502214275390376448694722225456195947586251619949730799762984236305569411006520802384728240644140854567401205445554996163841586768766528924013521123155782891035456476444124217434725321649447228836263621630916794861058165649617138900854326309102737536047854082344120312425218459149769171036954940740081428270488881808126940908386878205811574784024964729972145242441155089930821104843351076464765173029148884399508917113984009097965032898245146477662941408665129892788271941064168432600215583379467031799135816388696977403762907955541015633240140907583476296083813249292172035299076346647800548284413047896152885569880119120143433355011067975319569162900258618034074693979613664252861938860982577540406523297026838008515180487521025836178331573973459818120234429335353249146868490152808108922313666831954162451888459205903044237476113392867129159528041072820301255630436545781209080000995951956404138145628035097934656574837916838983956478743993264541919150551274536551483859852089983857307772171839929851735099104424764019365466926709373665774497698449696309564355233811395791685682018155630055798677493196618893304719304659208223591940586168252116544616485422247845397494980968747854599861359985850287837928201849181396297893446065620326769471958134023746282787298962980688869233910149305611854899652857782278357393063636607499454475884590127037025960096577833920016900968951980163608082796172551519697508105703882111801723271953653197276042630335475752228886316275734900740380090703464545024147358769007205503839354494474325583549377277305164794382316599672106228484206583387822003704972654017778492245043542868839726713688000472168248282839835295331504136631757141413770336041312716181479310962456148259698001151013723992505509341078174945648165972109162021664026515024233254397756565453390450521563121076056930163625795572043366655137766888034300353754847664709251411639284893486632715215578703332454604949003554722390783139634666234110054625439643966836609225607144687653596844801460977907847926114427474967237874973504062360917542486904847242453852738837276513711099699533711858537015227256732313843233369768477193116758270640990618488987022644313100641157625231475865980865153682488937817412356599073399643037993656955661639411867178623022079513096444256992262426795292913542207075042721451518855106815267701458043750558164317039450540000021651641038467830299967999530900735176594250178329007725717319897717872391428401315605589492813018932865959552901262441686844628949786927133676121753662215287790164968833142562045521479176358449737511277619983910322175684545522975635649051510107792408076801072972612471389316027145285619445415524018353084191045581468087405334841674317837086831784094160802942006757142098259385809762526052829966271461412550257557380566578631712545392721238837063748357357196063769491604206543346868612090438693473488548848955825745722209506832785263421977075612942868261700855872589426158677520157276565929924759872183665751077357499229522763942396629959514938014120371876468626040506683968017758292308298917736278749046794963267042012977805112407636121415526320170526410880619992247525388654662235547332930420210750501114397589486931212943615614060256641479305081218458805764439115999253890767963444320056200929505643771391609641859715532811354291397336801685354689855300989949894060546426615904478236224266442885774757210349086982661596592541878243410063121938111609420241581785679844053193503233984137561917133898111089916845797303127505244320088082506801248915558430646051877034339286523791815280821956521077025101348746349521726914187603594383440994322970202323317518801672279130468737451949612986137219582642791585780595384536984691738082829331613374801791587390553517890912046559691138642206272430244993111553771546360326803943405461113002896404303462032706303075412343574674534683104349407198982771035257957881874993928143233326481357274088658274659460141103622533038956062724230979983754819059853992386494698626013637894919428376278233327562829438887425768386839238675050927504502288919304127930891758104277854965073425720750707760218952746553291379174395691963965157519435073798336279610196610210834911253522170996604741473023343624159732637701252573347071403411912073635309549367899026317646280031605393068619709991480668441089469251219496720675065166245236393130440014662485006530135105841758016381652633663841322340474230287147467878656149244239788217799037219081999514723986167073378015997336413769036083866855834524752462176708637919849753312353094788538903977378539889777648497180962581387776415235833073252605042976268662502603668509813279131578444451758641792200986813868238993152071489642784233543540360139179853403388767299700094634909151439955339433406106962803762499128787142303880999693382791983478742567067559513257101776568943326635843111596777965408022043903154768936106322282704743743095163761236480514763254956009358147835769568111995734712742608068201368857964281285959566580466508766964461250676573785153529698468673420445292674217812119471443435222787632288397194469436257264704201128185715632299557579002200919337770634700628908510955281388534762363644052293974018404599869588699882326507728434893243011684628242829612271254991147140158931491282953779422800385991121164195564340069278403861989322715072575185762262297826698594084661866193359002623535820709087920769787213746410951329372583545745941037296454584076692180820565514071571414516576859636551848659195714175161322075024147923006899267846955651805997490867344803051598779436600260802369109219960080642120401133165395944482945045811791049553731117354237828596937390696612428162305751456981112251240546500720132014851259251856853793520024768111986930545359582476441327879918484953846022646729413859155432959114213380769306946359746330707633225340407914073030473831622750566338698663103838836954967991290308160640371431887986725654315242604847053853509146227783302709034864369903832158215254531857893128898394528961033007831728140207622634050967276430722048739073389131382667573953720449580428805540329077295105480954428648623483059344111476537090556404001989981952017784336567656725923872109431634508866788514771122445768422589360784950979049018835300451254901847657861212968530563510400251399730667987991212715604594593986141917088315071489193724311925855638165329646890842296750890627070762643418009211102072673139646473809122808668098914062948925814906008181300027233584888403721751169634734509058160964262248889120649143399871201840263951996331399869182775167197725842939354674602645678117039510111622599760518525689960256258360840613202122744933183492703569391049950638546228867975306979962118302683316670949585593918994569258964537160253176996400180074675931849912251974083247922389976529135338755480828999839793567579762773817969699707283231998955847393517593402996806085593319672014366252837941611742597615816554343589821849992132935320555304871844495046093600362700606959680557290985167505586499433432082070553229703960797502452831919360854472406453356664687474603058006403483607861159185007398948004132576085168594753308008743711248787478189132335997546648481802783103231698121560892643198912607899934638844217080612906720622995078713240775686722615055835677184784607965714759980402027760479232048288602354522855919606804926659611697884586401661755788179673934266116666963798968309782202240320711257371495778736544843844996535163115568099780973004281930292704521184254054759113435208854857851206950548583115701665435960535477500490815626342913801677637210456578629854314198023377814945171665084554589559774033185658608122585727426297042886259271936927947068669380350138683075920474713932688093980232842114653948998590576638045273988067557178761259957768791528739119947659289143722616252799481527585045509735347063844389216883731121160246681865893572471989042103699538710633829055547762502774297169747020701264830468790657735064484867012780351541362503475847921326862153113869594693288712446834886736203619125597392832864961553916150172067395081784712192935038623300829599032023287247464942729734152933905500901104240803347217381804307031187964398109339364382007763058803472959298375365827803630701477499936901288194015734354590337149197364430506839517595212272445752510521516137302076594700306488130708384906438723240300549531549400820154533898933731810611139262555047560847132381815964267540214805593751903153323778611565161649655139565738095798169327726686179547762617305260398103315434166492898619768732886424434016112158005688043016190636423241623724768426073980043425086762844778056050770035094901765649108064019302183783071637631310662219087372555928885839547094051874518221249919670396474802095013284781993562644283622565462093151955262863240876354906961003044269592213215686487222330843159358251089316627326487146606137285687180352118723396565305892296786406219216700352442034685148783326497739959189459139376655141531916950230130679477742462908628648888115077358385292371005732495390261148948323799030584385530273664832301761230716899642355185331846942713941007385606663784335860686743444090754595264828123557121568995512598808123815518300872552539819952010946985747233449319332718342587339772083412801945081840889998901465801351239214973750434574273786781631973645262601525156163745445862118546541409851643965429613043216271214822311365451038387904271202349912173892511460633464443622577552122305747416958329281523196081815472756456188883443389196103476237053808105659250101538001654112063337774307588047791060100409940518655035722286879149338738096458567255424396381464210708704582970512357841569262977374311425444672606219335548919561669778287149632553526240229474738396050093785337506816434190185770107228717684238408068227015981880282446895149828428443860999815805370493013847563364222125988818535810716911446690952518932853167271437006610156593684190210945044982024870441267581894826186102792874374771878403096521535255667200502439133987617240295899099087684777592347492265654593536015320555356249341798081074273163741100535818883929211264824777507422388618942926236401764277178334260559522752960571512688182954359179639938771703414560885137606241274080065663452229996425240292165192304630947899538507935440075742202020988734152704157632509277282872823720719366764555690174124344889343935382410959518290783220273945939693279770915236687534111670659627269910346458942374360551695463088946399572130226926860880413884554056968774974865871014630683311996196657429229650358388072272165025683964306971769142415291527745605451572199583948352208795838935431516671811225341054447776167321658217146273567569196393322068214584294233025456440366849267110278315864036699502632860672171398309954763188568103420668363724841902660787123685337887056705582978597799800246797752516912149861268432330090111190094622262510218181380263547807509115864921778709550477145132956318844573338172711102283446211900840035446327195806047654234153474716675603418478688217880112029073210460117921442268263492125134116185635308711987740056344454389007945028067022884361196084165236279508853935082279135029013144589206708892945446864333015184009979089675691006339100041837953481485118633248255110766698063827420235611789342513468007318170387826274945341501704893023139506729398834520285468500174249203187486282199743450420366836070371187081310766635166040411185638672054916749469461976176399235186942674985037346956482449782339876341624925663975762466560783838106139632752203135447165187608949247185050052848601790389002846597641119704453521441274605280540699452314048401583148546169915480922701293524286250758526870848141969421144602372143592425391824607092637162256568820046010411395712678139934051502415374197534591501910683027229465493866585413891168817932332369223017192102927984610924773413363026487605594123320441554109962140589248472162712392524078085080693035182725868676322528232739046703954211939747936872615862394039827243242983285068120660887018122405104355732621133943600023412600356579312707153681255828254670676205459911259928408185292151418808939183930219110757823625767963425397472549423272122162394889021898840805883636605031280461740077394179594545770475874127033621625063326050019483302172604385840421843422771956190403708980699603313181274670911172117266227903936672906916177359829116704202010255072377989012756804887805414105800466128207209809385287177748163044772673449017903086213216811625427115448078110089277713317851454400953179584869259977826087223383399889111035819406515069639667980233851223451746600442998662503312136426291466118681296559069263162823649454977808644281254754052350695085380124995952750288723298439841131241762023112488915741549348342611349645742378980958376065126816149004824604656921489000924119487472760237571481652079333654921193312959482231415424384417232793092128880685873496929660598249600884107105354215622089496486877780226385241711850241451126966545712541779702137069070822789975963091674081358156298547142693169610480913714546443791582958518830625292846738357264478279642684916413301064925577432705086486323328903318313538731356340646359622841596366247477329917165633925730007636375586216854373121285891070172492958381758677012417782376990500540297494711956763559647005661451848376361745784057192298600637856507095349177974844059818995721985805513436930423276666479092273672573934340002464131763356694116761576977848141177512321685878579332591435653783715693965019658607918003062255700094394807389389635504758941025222968143739033517698859666833374980163616041860247618634234759323712593691034344039746504759236903732331281263487225898800441444029342327519823918490575085061896732732951996438456398950596656617929432380457169798756926896781388504791532430447563307544497750328733553139575351557255979604033303327439472325913574024920951021438662866681556642686982869294060865414439470305496799797997070710564472939846014027145095683955470280658878897508438916385080733411073027535867589976001759750310095715218056393939224381384743173795070126549064998925365070995993620956414825826075740742006031206447234449089993089639926144054939634509919239788437012133109290468551310933644733987320739449117958319411305380424672903972474573001473666280221593336557128240124182263685247733499031349050019095771624334448163642796314901277870217096246831831916265746841933134992549843675767414636215186937471053945966895654132773237077985203012102654654532092790030828140102530696193601779204293567713505607765673283768455226811779651412372382384223735727983078671597980813627946441068874076538223400635936249348829370433028691319794535829371870180430012603433478421046032239478682992805412150487664240009087854604742171007697003055274938910585931122080017783642385116927882967706610597652232577924784721583678334425275530267025619525525274271533452061681605133980025328600726643218664616641793611101262188680455335413210578615324472680365081631404171178272489433679975267176314540029664158766237218867455810052766051158672890090192283571302458318698586360711801679942596215843676152366872242784599385772345541642688296020396665056101340755916857738172578249412228682717734597272035334266581649843414084594397730081559765428506101498706098050000171571136179162944409035211454016287585455591601302194420405881013962976116209335456188346246293007485523679203482905231129321217028351690995550903851318300126646396206227153243372721343688971844132819374595825112335312706006285912381360626297706937820757726328249764600828970898206298917731234530026603877775426812822394831898058242474463955230022084880496962559383806878010406000986933393406945119916924782584127850688975517655077447023337920588102563026419670301944349207711615457810587172319633959443591466292781141012990917684110316676785232452649655103856938809850712607491352167951074299374713003507360205181163943313240309167216936785805929580460230601973626287674770754490816075211158707193666721018523443892036678478510516442879694996424326846373417981828338182146693214268215896689310433779041877894172952798664936056020584043388029183020633546042809206992256652400786708433481747738594143467752590911398326884126144547870356087558977619314390339518877092208115433497072062806142512533604968968539218316106652985649418749729295122543268063701926338661108422040648258371647444895128621790902027111864466535627371884601209538233606793700156686286370564449588834437958680792353809832225872902293972169586806171491346723369948079131508556386765913146372641049602962150468277829512660688510876780534816847766559674812153362020801089694525127905369525605792193054386711181911192572521933213653218824249449864595557568516268648283091306062532107372002907616352356079381251266536141314913740050973523651088646186301379031957259463257808282590177264002695514101585612471973292166243450127634074937374413601294374165932079280315485140195967851058781192281490751517060231015751754212810616157293234205475583814008338093674294633344878039650464429147078874470314314160403226704988370105135323356753128002692323956376164334282115265102316703188965157632015315586515457194765354141062041408861595343634692221407012836210210587928222802675814812561282184611366767054281863294598490286545593141190421361291916835167899000668072630945820321246212947952687422464978023898882762770917490123103917968164346974423260324054783410932837660409943412056350938899426932610226586514461987067865769276148466528068380826588347535940827379994278862999434307572042960284172605383432824721267598548303881068966737576540009413656179160880182162688072467905461983767668314290198870268542888144698315936061110268347510626052614267319213030105207705171387507254951564876924251219783723388593046111016561411879120660108882526401865088878540397315012726616043170029898589132120465694645100288254289796504864290452626087657889417278159185293768141851195575555643663812963287203439257370922789991994560975865347925025988703816674750703125080941316312678319954915041005617010927528572560448223989325525038069182291253205581456329020580415680811720522355392120447994929718640507133851225981338023829864667488428431168542782686665110816994017151804774787504715729646700558671281884031299160875897490395431711621952152671805824463498863600072453601577273765603038928286945661929817835010066106263989805183185616017920713314157366883683235159603470642948864148456230159825441016097264611802152989708077352630295625812072049054071645465543274044553751309424848769748179195326346608934443376912054608018824039769227511894936307320292882576936839769283477146501471385992452160810457221076984454542264548274437773019490951065503705020622043065724603393178697542547500222294932366931332815042009056444794233914998944638331749591476292834305745179307336668010636669648761366206303480478031508260474349635408996088631954537317669239359265907698823284922575064739090276709750868250184140952061047096620872368755610762337072074933805377727997579589967857608802730178989646394096273304680126885370053774884292909885974569392940849808846989185238160212807275744859183145063202098559197364528642222751768819781837872803328460462300500945644475038656216678662621872416535512384169485734052379038917544241185023334960133975663891320785961292552287093913001679200277877671961397554400733751829326886657422901142756503715848104564310913800506371865660184299944852960238487213523071052483739484431216553247085551166074237327606055687200911361570498844765017459723875528130346103933078014959086286517482042228221310197282139856520549409244279376724179805426594126175435375542390782614147331567760787143693234747407572381165621078989968394015082275283850635406901844975985584354978915144561494764573204676617111011972374087581322901453047429884674079393900844423358991617006048787905034486424119813027216981758432944621379935261393496750814275734611599443195789274129966726454770003647982569748360435503888552825909016069516746662879605917361589328086295093120520751876723746448670545803589460469538423453584306062225757339406976339470647078366914201797064947489886038494661796587859876515093321003984799760953072989731638351507569277448678354740091121044035842583499681281434917553118355851685658220596292809048855802644475114500308766175423927533671075385046694243493666366058093067813789931203061779750602557984835244074153378309137732529739024672479193712654996104308283689610774007033398303390703761642593817780225061717851758485535901627372523818928713957951632862898028346985112200235922144889559100313501470388505701955004295479167346747592124389181045758158561109277085947146500747825204815870583861111344428712838182346804523819014695577414615851358439435750615677520325638587451616893284008736746901616398373119283632552265021326646361117534724656125149602981778063581400798389230066998970297412928721489201775274963671581359717196418849762942967932710004813628810568661168498422320023719949746024430996647169862434623004318469672840744568511628984464472173143467497894617639032110865934419648453707076226653843166721041496637457870301558415450284936385070599774255235334199498745188765856547770939287551586885114676027998197976192173174846036287618659380364976576410589365563052096997931694492431752717061342915842568407715428634921594068911931828046737393771851832929316688166011401252818907573388045650994195061685122815615044688458788853345513312598267684067707485700399560486936951306754039220427848926215655012151524536747734604217684112197930512405567273433203597153565521964606155851111358717468858594844733182968704903369267712262211268275458676958195889332244855940888133183127614954782730552700327244673992512183261635683729627629370690869254709511298623543712866362637523900285869628684338488011900703502778674445641818388418123460788720006986297489012694099946480761594132679221744074658978751556521949468061638487584924359512879020885551195865979657462343150131131650937226909570464549029354559381416599412388750800625936776726337232426221585022059035337741897001160563824989941548221172388232611963134114901083348069261691427628351161536161632279457546391133611675770922449380189941225729036253083171322022496222161503807829167007881998884081377485024058380075750348277588536916416495778310850481328203278659064900348223890782691107568211991145160857833929639441527169538983846719694224869413855019849557687111058966126852440353851528933874205975677532133563236837386900184107922932183550007146131060770209366771494867447850032936953625052323490153016726945642984730984164112103167143090496914540293161795099759800709302590767245961575648394350274977589280282056274462704362827020953599155074993302230096320386350890570020928656686872393777746368268957613518746885550897204686477697315546055657218799514312775867883370737942898667203094053773174043503113238441373470043577939487617387268014577239857232838539773216004942978460877122284465701110955651787148473805224567273803839743003758636907507927538090126126431124788480972816732276528301993685214176498841516154162109226950873563855156089076414259344600766345311071719362509435521142047827184772030581753005148008322256289423133348558138294503434920784255953364095305225960538539038819823466591202807250398558112025436173034813282453864700219031382679952103214370335675822139154527228134265736163893735034614613152574725934837687188948241019630251859489898336379843549084562195659705474060896983547796054750822410658374948348243213202429090450480068511747243301097129789331184749166876448801336595619275139217957879373728623966391068147685698681327946714531544904802996022180086283627688567272709093759673915933160439011740785710151269593652288689571721548057538486517711776971295062454782328551971128133687864627139479056962796533055728152356875558715838032919812588285385870062990357909493220703752434484206429701210172817120546989688431583111920466074474006399862378771017505011602612677381229975086599802546161413274702341085725728086410703431691379336758519635529668603361436951916061093942096417162110260645974287982749677805008358374003346479906646490383023365119650145421904957735784109734885704703449834697743309082916653833137531825405229486332323974688148360177009449522132275185372672358549322924999511819745788062918083606241945829967211667781059100961607052633175077000330928389224084300519845908448450071392570528101881027201696042399498806869792346341186556444766839168774809090074614783786585790652259765934646961562751698919767525921423811819544993863044758944505018702829776341681862061194337753232462616224992603790452592362688411043240101076402161683649986195929472266510103193557997458366279492749299672316869137481073333121797858496933062585422443720808327890009653972642960736259584669329050331194501805435729564451172082235025368269995358520558216851095730609818462856248100239359616951310489103843389893261652335028619685947663869889064095376697041504374146865336251426844203600596526657662252442456721520666158532163841977386081955739016508698665662740471553770471556878324760368326686864478394698150593716221391724141374249435491919125497778532038567018223745649360033665605115474036906529930747111526950324711836630529166445326242604878042468940128248413679085539852555917536252524172421963717308063802102208192002997030276427180468306603332429595988234599152019485542402334091948421838703402028811146103481348460145788350653635396443341560591244444125312634921620452791985397837622887239810621504505632192925554196220780517051532824269596017081298812059132355887469211159367639475399252130190799155458551436698988560213138528068500838382649851311804951324243029271015273651791790015237027900179874338520898489512346955737066853661135813724820521147173584631126107953915363184652538733646886844687004295044471379335037968669960751405227852100193728373372011545818997183801552552147119509960544676161468750083553221788183170011526853062455664264767315905673820435168016772661702684809480014827239318793327978505163624838015719191576761948298662238344433387645260101473724963573454511981678379472209242815280505089111711466746686924054362876394655653220503780927131439726435657144086644028618790962656279297873407154847451663546824101893633963903229748242022037925646036462948800442769104254064359102387222484429325876929278808290614138097865287959807444744992923448161479586739472084258022400313791665992785211240838332212298907255493652917091286360380480834329849635938498075702662552786592923223459747014861200861992293652327948040614434382264643994292700644957397829363043004141235645268784405071634701215262396996895769104590129734896915593037543009038265124944312515018205712685997904651383198675752396405927566803315653999973550704214469193082572558245170121521726185616541282680701882311855810455446790057763911860934674266602975846235267396823770102583828653828390335636286522207653946550174626829588950799769514443093208624414151404772997702828911584482410943735442827565964964448301020000628351368582876937814288692735993628068413603478116500224752521253611975265895865684700310600568294141269234081157294436471596800968334211718519447337002095089785705385222544331274545087438498418117753554402602532414260339844160676675707476795959140163006389078535050565198948021405575733006088543181066488176812685684887610694194921323550653268145017294999700303147472620199064010551737072770252541294748397962699700097377318758725383730559533206293540278478952114652456886844525847217783360752057385947148085708411422174549430340772676698527305064079713196268353908469206070397197439347153077154611520049014856715141228993505893077904834566549400048735728978088275384748629509124079218397947929079499971856174365771306547660240822698534542427818023829210903117210550344206545977220038323916768920828355904061499822953626322520164740150022909018973931953320837748915754524020733388945731848963935860936467684012671090275875405769532134374177982309488805002165520618239938898641564263516669256761092627481721641201199698770235662651317555795559352182238335149019118117545524249439845316023149279056514749689091478620217879132966093853340299160355084710080133797135108431406368386537475411751554707233050836720146590147781511257323464702364726092362171054685829763075577067762295955778222966215579711507182741292413723355957436060608887881200637479699492842023106811232444997327097898789143856269470417006481131193966995246642026114627180458709404928813467233974323184162125986935992966262256388108017606060001548444931668153057045935118163067715360550178568676346149969780167635666206092546311896792353717780792687983948330789555491031274603587798685176108780585389854513524163710206364780924164394512600935815478010920525935041650483202059560732664587816892901555888166326302798817055040277040627118030444362147383850972413371914769313894877873635922604041709636481177891887292115118540955979622781452230916373198674538994907631741612557085409637553641925566295811218054598301890676768714679573767178145529425139953800170259425714258489058640784686243992822910125217351419732945822851119775361162855276800299304699896533896808256826239711441252185941341908563128755292584136947339254935095442928265853963708619368704223156850970796896460182115375400795580011177236315086081916489665136452695979689418958941363847687394068241724163614419971262633362468343557990660924812235102210247369816582927779154699525980326849536749896766374543158166772156741196479545603327005383030549643248604250671638993755589660287914763137132453526639005674373437805307560845929295306727831996412595498230948772371120608796793338373205255514653290303128915541562239618176627854192079082147370909156940331356153589661875548619551655285729761925059517781876243578527118333142624244421797360820423323644151805119236987145617231049856533561887175814638593370154754505278929692121969035171287745205955029877449224968011402658109684233861160097574786764427195700329566513874221244443132288931834216123221137138720782468104483910997992339260043631937853506859530317107571942219085578626895914934030720366769031260068601057907867028431576792413162150160469686801250162623321048236217838298069214507204248079396623529757201444857986088716210839832780383604324633915369094208481995919916146244635766957696939476789681379162655686560298123837177640063957374521249891002099358230362132429348285157515146830901010676792353433448272037602009440923715567674522240679608006239107628270455465987245513428470265518410958427521346646214718152835945815827792772184075072688459805505963225635957032609604064313150159872554766544837696028955659090868881869147855423615657765533308229852117468532110508346308718786875118040788003019175219434661695965602081872802166149430109633568997727130296727085621107628931712206930554822442172194385857840358376357006659635907469672746352571046590932970352558536152615319568401757876215515936179514759024191281690318450460193725563747712402338261883988180192821718952040347947569400587425864601912785606410165130872399713909638315114936976743309564928359146234218900205616759382723755873011770260613910359762487369570416514623358825645392057452876921553202898226452972911080554445025099889624271334450549553074640427770110594653612113262394910384873295236687593492312262586875811796910501337200875262550935301591668315821556225203010900584688342529781799898412212422699289455960533959721516412902247227634716839221976174995773199126952865696653627292012565922952073793509057579367514671377944069265679583171162006353145766513528506574270915045905057512887135729066802816495266451972543795733895967996966722596230127307817564976746543126008880274482176244710128969386009341268264704057333504847646588686869043440391301377969310011992036312830722289641066910492092435867652169942033409211972999617511072712413381870362687081781913261894815848108766261096817382746317030923739229830927385495598319833698521738731413552436799863916123645832067232921134591101205031868034980629769144276991238372958435537032052937618248321083465236497724233981000502231378356877917175292079584723880606294017604642989522819420768018301650038276915613879815578208514543418389207573898185795415288684814808322711744128628509611513599694664806045366592746153774379900841940165727727230108725520305392889427903966011364541812436310676456008447277751802252399949122030279643418517841379253622181114694397378268189095540201903041242740589032217625204520700738042816923545932570330689236011691178377466229656151284132118061017543697406943555517588708170767686461330764822703457349263952608933546571554262071873863691916751372768915356443080319253492375639747719759180131324225077544112689637991520126031076796710039939285515576124431614114852085081679156996327483341763587957027085849709646802903763375797230896406318178623709437770883456848323356885264397827250475113772971504293644313958606948822344019102965492198059549311338614811264517591663465281512593219984440400593636489169335472599270044244319689860229443976945835616322174014755181919938137057369889098984891258730074410156045566725092741568717264550314092174489850190135710791445373736759670684429888266836476008342190077080329197155296494703459980668879656315289684135668485685691113980344757607376214300367438410792913995734630526757496798094478458995082393243192651476141151006174309671862614209220653356650311223922625259699820220119570977697682539769114572893374481348096181814957721951496351569388594371516435676975141383615850003977070236540624401649580179941408920466628017061602368848569303906347309877790096704981307938027340447830247893253481788064230791791679458052300733404139741643715944626209262835153125250161839216461155027046146332326604866169593799349546054809982242478002300316429301530089349637467762869664225169595678834941044684704797036981405624112556204814712518223025803085325716987221480918396436273485698882482959660042763674460675057622660134712278287517284114828213318099750070085309780628292909881666751860196251879671168830920189547349777566851243814471604129896034865621483192870004450613179656177111578969295426571523586418264168500330307107106370394474903878395589802221945667388047289407292036834869286327625098995875730122310414599523587079145306764275988943852104739388227846611198863424432441881039646086564491811109570295802937682296046490353191276611584736215358767753997054459674240348749945153793830927149504539574860784285741239422781750328875543565000601418480409150137653834570754129888098467624044344680450272432227880807238402051621698841470864029930402741247351236985775986869382897343547022017300927843930288007437419800428953074423046235878923474467885857246725102316208480019764607202009201134271141230956093409877612608030430186523123106760049116648513401347370265076846686029658806199611578789602356717961853560774746358427695686901596350120903184084852042780936700050158437013253514417830976067364242395752926646816468730583914606943103093766553200041830088545742853290297014917480590274128463713604268448725141356977414241886750763836106838261077325373638109691259010863066662906494262599271523057810087487581461408919972603528925144408681007890032486842689838634303654036193255904653127370964079179385068335390123897213721219482302410905338129978942759193768647185291577699879973420438521088008514857716996266179124384155881658701622778933813646564204802113872392117090088571500503606751642368872560614995430866262761134552954364163244910975445584025816868158148897799633567912256857260557409037816718101530848453120187671049769670418789103860807439470544978963043978403163788971553270538309891047296320960198760443463305859909799174427143251347534959612904876908908538960836164961854239187764354063719618745653016112608340382284457598802552745826541723437339701142240422605448378123955618553147877514703964567932929181459023224740244621437249897101143783049702416933909107835605789978910791521633697269403537973331351486320180493789048510897232998384377546236584350205566890838495023946171218507861163846801379236289809574478830070552515968809053351054316117289147399130385075353183955496452206180850716892094082026878866030921890091826607490552151458189154325884537193102224322052250807652539029030926920741855146963700785786794536217587797979750947020039840182623019718619945050507685652257544782356249527109040535132808425435421441664128251329102430457490762825298469959206143639995495860190934907607479125660170059478803451408382509543596831907786589384608343814447048174883849445497785637844470748397602332218732350776632835826396868008283420764687996758846035108615260666858029562703417759331058907179909271674914712779953657111641302824744762668500230977346672527463318663734451589107462862023366006148884309074332152961891383154144610342775487535640785847834643225542402369547395930079256402267022674076915780067668122330691653426705404006253082108465582335926886992170520743035616183833376757231780716368181416076511723163381603185552418970372821102209478780934243767818008371028728902143911477710811427629781865175952880123467075727338375285059241770743778001588751427480060634838499169255638870399593050582648765011259003387514799634279979497749800012269979866962516415483776739368910662440261972389857724819161378583141260636869099918049916512971354076864322980083728088301620382035632620702742355621358846424413114936644315311736353106157849485379354971207769789032904766046620501562996395353969798817001323115174990481552107853005546125781443374130763312942088917938558238851774042272471346019113595626199934072353816393485347309072704059691509164570926085785272831831362143040284735345588494823331608913565511153243968704204345996488568333025143182120832009761507826379325513823995018664455577267289911832612225361581089798534090879148229616374340175538382461852832485249341409878472882564442719418940448684752226750908353353651768981688962228870791641582326821268416674163198593388110505694116858144505636030913963606615818223831753694477438279034963436739111013483414754700548535610169319848607855181176670048723963328051339289909287622985776810316503984925312935139908724956919376665835044174138194039136031816056456305338640809479680741654514513501023387680863165392849354478878376190656746681120531573445552039437904477905787291930917787205808032837069385305835746218178928584262563158853139959747935466980412966731671852382851684036699899688222609937282514126914108344539244399441530293164993531625312611801097526632224399589904304821914524389636803505757725692051637559431405624701717789063427868702109112819478199104259243195875303862969610416637730781758454558086626746678963061144466176052244581215307860098816981819250602773576806574083832052757976156854572000297498252214727563973868615707835454708079474716638327136049859799882885542955433331843295071648511553587051431750783401922010230792593379307907907099128283949511564744628629121522409365726037748177263946220962954422018630114064000938128411941368689381975530571605147770918491273989707317510617191629851830670880851947164956419461088984385081271546963055485299360160175716662168212926272182388522376200585873731415651367102049539415816664802807511622123391629290002154359611959702723213766152382548066959330977280411218070511312076749875280363172776878783631273194791106403708900623049528854359469432353893195955412257998385071787582489752304166773268940043445058078076138633067265310206714434797509995533903914938152119194239933750936806491830925935064159670868165981022788177703622550638869162245677263435744167023709926067251253331492322453900703718548366464262867475436896360358085332244623918156834602720053454159431404757490201919089341520339392328688367063566372996449497408287282448861449999760919582476281811771259784092785733563620050461675627360447531581706965084991834917157344096719417013086085453029013757127698618499561953441994073369799510252114800027007268304175309083178397592414121903496882060222808324927011401137586267893525035466736582992315352176408516000240655630646577965932951834209896263588769701738360616484689352505219849105898830448119947646997987847781836139458017122844485888875327140673358395132871169547260367493164161858723660027718588826741054027645047622994867759796180926783241427210820889746592065881579583776355298266272980270660811015451152589079237801933163114291903143160940986793350034100651640405836793412484797802480772412509386866618930059311199981384931204046399519131488823404310870779235476146837345283744453271975599068433583487198266988277191214370220618656628648072397741243652715130235864042630527274283219435394760235137757500378207049818389229717805325983910272345148895393889827827046928454472857915927740435179225127705968332709814336863905300003299877508836950678677917788470535483751896616088029738565093716174587854402646394987887426423100052912871950389253024375978239763849765747242001628510177404121808204669124194380347954735378522410972032950944965330969331886605057534075638413457049634839905615521775370647479943856396586345164493889779205568484522071682279491130800377349475358275411491815166196869348641606574924453348407574067911109828896391854521555981915880171283918112964934934411324655723272018773882741998280977664934547593204648938838245439789966503344042745193118071142678141595059494620746868766125320762441535567927907064269469282283920527031394444669961992065420782756190767157755612926882957800412990310978158464815906801386135247357914768558052655111838616092724730431053198751750507138236435609346463302546385216812095985397102158970270265666888932891704255818433447665400737895219157904805777617931433418814255881792448856776766886411087982576277094333222271034696936259025417861655346032534203818817477927799785147538981159877748405886299846567222164425704133444082537918904697617269470303817198458076514003738586572751315711477473624094949330379614731134787476804072801396504695257019421244282901600740053393255690042582219684356840905215560096646202266737321636641872258519649814260609117835340024206939358619864670036203233899546061372738822849172222913770362899628635699960949399427612154395923813747192063767682850424308192546211872049517869152179609375313018973618210693259962768762690813165178480431379506044226601273700882334521307833451161263953675447845982988380510736113525691025264581561017844575197227266620975336695244332614358659127328874744786068337262043546308400355912856876404395951985326348329170437296054550531467020669657630450591842413593034229035361945044363795907927643559996229144395453035258377029109651464115888570014673019386313131278010083008054034428985851694033890842354019235732393491131513992306293978145118755338407058912105528895647274569493848756999754477372512797422702457729530971991483000840440239373562875456941455128367861737267852045596160386680535540155394663762397045089900843841199870114696957122170396991291122535385270208603092870528454024912311407769025038261477161432097836907194971656884262613629490053691297473583686763847667345507379158854602848504090202565304435336856707764635038361101819798696218849278005952596980850774116956456032466148688688070962720745353700371521795628670690997869022221477767861467765445143681152443052694005668554372055280589904213226089863575469903361182888013400948987565739893256730237720879308162088568879079119058413250403079434702933872960977885530778189897700023239023826793357807775976539201482660280216967367151432426719725879460238612906856680456996607994608063266464475133000219465322613036492674663686379725984295251180453822920309384883166419868417454911310937468082250105286858644024915883068945215586926540472949866735303228857313523329633104274834099364166514039549321337281186483941766580007399002516971834252845949136299416593457479552339168747054200936699998367288599077620307936045694001013122467711772917383439808683649381324919905387291571699987891224337141660958080585648718335708095880397164119891401732444344072522565308681456038715261071125215849055019141623476139753453225117393384000207792524569718119403439748447735965432471254693130793442414906311823745108982222408247070293787044239535737185717224275728745282386847692924653329077273160243639418244011297027905862000457214509034224477714647143225188844300476895766891052113553438400824663155889680575632264145237423033711553782545081484105507347088093780500063023303401133167660432682069170569162912026855520992914045126750321526391157867697776387205236038646465794830132689651745146616342264515911920782137150913660610432871266358214982074291702480722229994105153760421343047192153765158932431279265610236876101994933229964784562843372156330212485255270707869398720219772055020355728724004296768767729649944583133909499350959473659048962582288632050623055464922811655629357898135724642817376532549932279174313037784794336302649493571235191317270861123044428967659520422255933489302244760308446279408670586963594551384363920093596763069787066020419545802753788476666218637493508294230882597973295859079523753150387543484258041881341336398522659639080567557649664844856357653411665056853629695171548603635916759188447072337383115688384257637373884491281146680172808465254411398042750156959131869189777509734462766081481716174088454549480137610912367208372569091998043906953522684538962645931142465324395785715340102586058359031514692874834758556389630227921028661919918405003678091162605781310662134041120614870374585975785434329079600891292751553434993639891729528345643294657781744923639391112598781586971701587872889991215460288650347723606412525719296014266580941732711843662830768217923103605484754682954848443707510437339874820675165255211600595693881388010827798818718176550910530563501022204841633515301821022353494556593771788356229948706132527592824408707794746650132539465164028514023125173476115076387950904031486962317158389095730948977920830681216102012648029722580138726819832527905616722086177676336471775324777009499163674826686408787147019448951629114799302010857522302622145553883472162128109958259094233014424549019725319184234014374094941885256510537172857934264213841888847289005722599497607477060034490963605767164898267716656248460363133357840338367772864163445049813813094821228187252491103676481827663181862041269047548232342953676711965833662636993845071901956480481725050990625399522180126304145283950242462152104065721282486900803219848467218200545392637013219099796311530422187389968979014883730592523970028303004733512925303176633684564317581288079934314151424600424602148734827078159867339009497088900962095788510331167064218682134073751683474032398920089481298980579914742782049043220122343576692139513539037211582595867190813658314382710546293166506306271797003754302267262977708536445830902670008960616492463330298007309147942574454809309449957145141458126613273694689166495496558056859914658782689362865638874403628073115158652402082476694455564057936875966800456582636817388335438206799425348288421804267567654093063386088063243156159559040418255073692441852471946179316048247079820349109165141465133633777383073532147734866070732438073979383706480178382637645027135451902028045493051420895643034794687641038933428937202740732277284312715911438644655229116446052445827757959779698368877445265245040340255562475277428350932564099566771766488437317241965751418862344693652483350653715573977726694872044383553210856318117536973567800194386176134049842202045372940489895532122524411973443834204184149056278647904574242645458411702350442316788946289294502394047308550043284779594466695284225661628085421066495825175778370967265711360701693448552817035427798477210086697017041757541677591125024368562155580478660950925809328470598404019310365029145155451093053226909010162577626316289460612595110118324854424175037443734679885559518849085190759249088064439575912339441450259476121604632123951291825155513059311433765962833409990083547563357842972193001393405551612405648729228061359905367878525395524498254871145300135013276834631960464051182978528175204538070725949721798268498817061628436748666309375853590584921765624082204620850110131127634018969813065449712503158133365414871128884493220994503830602175426448677994654038379117221696704574994735788040356000928263400351219403705321679434072407002810347923916030417405927106003891732142776621178826016759998980360787844331097785170358560606441318868574781861105870673583276094824695704048027715067392147599837115788089561189142309898809182592804830664636818270967981375009454381801340685689270540709400738043422927542067504286759796192796744009751027478222717117117444446695402024581999671746604357561954908378837775448243576550571082632600531003120933840960974138121671696654329644636829145224812857819210121985017196799644188482220358674154384557422571369671828774092510006861937621743752927186459985243006048046576625483879213179861394605904563667104500710459255587208297975221493859380502236446518018599494455234715427498192612145978054126681944720685264037621662929813594861103087734655926611774334942062227275747394140166570124872134635723523103386487221292376833194637483863810696667763560639932230845230352300240764431689847746536973593774145630666932942151689617069048103729560701663445394662500053081930116802499803114059313354244251978072961666884457560863779458633509033684510480419183738991288797760156739046289672784302610706540752910406640556658871628403518353154174698082987797332387038868807860365824496525751615523406478580539268770429124873621259065428621179475618745751329670639772730530463025160971300859999667063450846513220184216228937017477186083132143443148245893142232387048642189676193566569305715878538886937955172068566530066523755996212866627811539941081581922480884128016741204899096527579997549710323759867428374151923050309531551047718627365364483803662204861153701871315414222378551020135335764639275681009928161772918727562769696466614003569339128005739252460736524766227603726375927368840893669686931157738228038950876200346295509780286194419962362954532235989111625279895381960190292287263335866690043543803459963515873161035638970032797103763885218467919874767421411429854596321515188556852656155545146488121216848611659323640874350435368947138466957109558194876813067146579302750802720996989784361453730190395443356755452506510651287837484318048584361231976608749215441081727356599225884700863955846125567923686092002784774465949446079801614672206151216616961357146005904223730704586396406649538995100776796885714157223252245855968863626495022669929291606860556613630487562440035080548827256319419465387496456350459989238360110517664981021929477426126165347801084139701498203358759119033634270204375064524436708611319074776778223649026536549719707522861443514089676905510894333932297979809685936765175106952652923762232340207140616403366980380205396205295139418134956690705686349569683059174833129317990824872762162656490000330363126831607759989050533053190275025413674292793946482245581431091955741747294031564242797982885516267260901576580396153815402571800078339853515893198197261645610534494086344559572249534847209180476040974835286277381898229687630185199472187821847576321349147350318228826834857698218175204626168868233717595298859656305371539750252360970551289123370380728036505555588132537265815500989622472008457467327216867284821029786125873534446776095970126692292933463954751472692125503520272436660491953512145143986686115004021820113847595941648324669514623869234622673085689665586285998677397839203909754297498534203398157613404631156431932063112838408066019210503766675448185828021075654466773892124654506564257873502463722342143537611707873172200387667310996230380912314904500285956867830155258033650075669261465103662334748103101591341838382697245804244560779847971722646409229679936387424834882400592899033113622890400254477808866113261818874634389635017924732747986504255661059474482541972132184556769678461456261287590561178732408747964292045095476652585211762133238758689846364588099980742442873724946334008640253293828933033690328821223440184271757171397482300430796312661330163075520008568686483923913120950203028131848597738691698716697877411333799272361669897235895866190013480388536693415768471914540427434380943329730501008692668504120501341004462995002960195310597529357966865894513180789438503770873615514937808806749788590426862586146054995668981316238450043600857148403695279369956192420004932840839201647729949207441899502174086232806975823118790495311864018313666058214250480788478316458951278208209692681162751049279698364265726962351463484020647466771897151210504517675783927795849604535352497331163439419663774183795946629930365539859694539355295704981597910789670709480799830762101036017372650993924458937413997957720312587228051501726941132541991043077879840794590025157620310889772216108591041320545055446825783316952256883597374327959476544205196045614670530693097656490874243773529759160004028257400892559887043567658011815609492467869819169631707680886457870628339233004970340226575812001711781245380934062122339645147144457983211247993310911151366985886015748282930458329543768401297085629179859887636714051080336313023759045913431901621952936651254791133407384135706472224554159774625866224796574605550442069772863853745762667936743304325394410590103982646284909631984976357332176327594461543353137065596251214546906979552890583912124611795452078453392952120841926169300319364889223183602057557705583231288110652817700024026281563874539801365339231488271031479108252093034524770021569262852359440347290647175876552286864508296643100323387742555850466344054582646806797936712966897283285789040151433477993313339645414157149971878062280994179286384387120401671004613933833497117287822687790700713400425981980542997751452324509370946431536226617429052267049471869450469842991456706351628715081537174651985554410518560264145710898451671653554467295892286667124243615348804719914873241351555702781494352745167955442458800084080084817000603747238882043975848627820821523813706256874641916697241509008958351220741866704788392184452605309822946749979899828925050737295145979412243721345848062658878922635542261523328929002618537159980247068758929781857960544804890068023425499273397444723488461601147400013043706773944292809547017213780199475417844063706477279593087507869666259953745660722764185597945233650231148402617701877094003937794538376445309479328701794321142305316158075463086633964835541154436438262177374476600293330326401767415593040580859860328171751867938489481011767300338916301752535603728984306946931828222509048373438479726167208793739702836464763193600310750423485908774992798462534727489287778034029307273397604385672192282434302040814430725814318919594855874177955167603163265228574058969515444332998160073160258421756213461822185381046473112429925713015509424500562264351688861730671370244331332681993845770824536120179980906111931557690990165445999880060954771941034458597972676048664239649310005576101732063658045498242708031728022477889337260341605891361610877687687463689131549439848262373938571604973607447949053521298004340263617710763556871295922594459550722025554946651508481753326635619604847937411293901174036218284529939825323819970632557092265246950170271956456324604621081436277974070100451715701529494081518618137725406887086061439654606295642699454784900639739805746891415753120719472934949293891727699284300909343553648858619675557571003746657624007279853610379586868768079801386668093758623407380049957978098617502524883920537605906888278421901137794164454136950825304212274626823344159884691203328695046572924316399318052318812242241063042864776654906397676753905933007444683694774137692343634375110219759872540113682111123007734988063132045138851315328285040588025549313784274418637503026253084112509463732951996982037075965030665006534346857024025960331277968325243009973476685578425446327840829043462385272158057393377448569220881217611439854129347872722501692832116362783839157756025107976403456627960186826549454049044667247028606802777494569859734941995831851433046628791798561735931583444199124350699019965903146408492187483028445561749616905441693536891699576889267833957157328142243654534639084106758295309493334959734262462395843667846038982369303365178394177351734607137999765322632378999647877507597270804706394053115904201969744883057643529987793612860050797673850609381491834274584999532224962172369599138302158671085575172493339282682099817558962374898682855742056734989839044983762870041562057726212538770647758090840981925157616970191719249423135386130638908054784704055241819000487473756709375137417114691655611532516857766010833343073930895760868844247840818972656961551986977045135869813039985145150612496460023564342376495260116497540057175106636133312351288052107097006270354608222675485371953788162354051892451886840498886596653984408101204979357076065179336085049783998710668347781467045663846599630830974510291384188699670141894129453634209414064401947106229608982146182402936781515622486463975943907466960644206981135679186006264433138244257545108699270173267992900792393428376246187986665148250177363408269585643967190902776054822758694287716184469566356360422935868891400295691232395483541599239438711502260536265885934889496622790650300775820654298713084078942315839219457339142634500311746067932627331994278603660449414402385026862062076060668009650578835797024789460608796638027023712799156406149023081072401069724442931198572903730648267195685879368188410790728593315162473248163139142141068987341639437463811466329210294526960727857133263677223149052204984320636566314467135045501416387030341452159426286226724034407036150381365264821529346216908011319596105368783189774751739355545594795881503063433164899441735068969773827487626329653865004565192086989086052994268169881242020585554498191537645907049461265232840141205136995206823206936069370307164025620102291430314299966454828602123514172305539179343945878762351660069178235661453046866623063855679264538013634239156992671590148350879792510098002298581117097820613500607609052123044843502210676856711825419664077362223261319573262896103736764579577292328208080836993307752284651022264795550232028901850212391730060270046622450253784860431178654179122279708372320867340915958352239493772860625295833615164198802011235742633108034285021284261830350866458596370079060550335815456359338829813430501198435701106559119077500742369820977430022496151334962371870553550765239506499746360679528924096941741881106365327031357270065633952489482248136011355082888704971980151693212992157691042047245690047344867231856644855844933082324129763839116733482117941441733451456243150194667168267309875559688491565909211541038895710480405895360240553272695299461480472016737045213949510272298990888541247634555944625989691364608468069136657140138503600176511376209670736256140556940505249824155043503852370943868681331079887663664229555789195612945731700315805910193139180202372745561479004594450269521780527377059792351256705802537184505475963242657501588293096168219969777693570693110047269101268151016019604413262829911422679104875063361913523260981276813236000677610635454050859244190468019618554650464776887380807908344245465824862114644406350620644974513065692094740925457464365945318679689125403440677713574175660890293681783877779248634232377851117359232563973733022900051209427470024774229832550870276317959631637552946530550574076289900161040171831709875420935600056223035500607644070397414395991312560861643946712203040612996808794066508491462920760983033453225647382617450916692017439903393334081261059928660887339261818149460241762712076568872273808344923081101037784858495661839796468293160307953686464981523471740554106859106489282970869757367679147872451524579916877788032934108764416653812954804497424133199044385128605904803759176011212809646014567845563063405826130331671213646875472507720248569876306344717451965988246490952592365778124632122661913769745611377500509184511246640088383887065033342973991576851804683224593295087721108802313269633822692812637956881395209043077947453536184808719026002716227358058806006100106947108495810307147015941290176956194889796798624045968175773289836335831551152744217033598435193754008119978116418567865057630951948075301275118183242082461980771786078379084696564803286197708567439794639122962775172595917247426680633599142032335006876558549948093400901296282553957717776460591032070809488574509529247788416208791705335531815899820533821392083371200683269907077704963672330567362990878505988986953221954337245884104725452197361997510751547025214656966255207553285243535659564396501072578425708050637681415769793594258061712346680828331979309604354254389160276902597024386666575186562184991828870911605195654137934185674626185959631202062462029016651864014395914066124973466112326139254698013238061552878519966611645639830652717125264890354983215109141962092344423350597451232164089438316010723122299012112836855172339757587509861681227028891165431967195346468838702058545129758024674903374144427535200564389631906486946858470881431414093813861866637530292774867967504843198955192352184680614135778473283614144977660978197459807857367037867169928226307719638097073369689676845146327274724593283499163676024533536702721253711369505614118873860103096616360367122387841525147825421654433117595710361696781178482721075532367066895566356578389289865180352923152316798843533788694333483134667816188162924936759408700358534629141281821946536724475185971694474301495538317249884219235409629872623687462352561044865775726974334246374371084162599708780291266436216410847799950098639763979039099565218644517846205364606472008404197924950440244618701334225438351237958653070784276992141211842861474482626710282270205616300119971051047887612454852441263738065029757965234875033352417614087202978511170671075772949283690123398656031727426924448758385881341840069834554586754265730269032753465324855195442158815981117512781803221533125658309192060143968464713967046300304555138544033672928001596832683220615199999483579993407301908864816612274822040742991306691696087240745651426445372117221061692838402958301117708617479800596327153767928151902636225939522074481652279099286852119241747208473738014563665969068238083352748376863197863025426488514530285204189656433157055359602931737809033687343411135588066193591257735539408524936007142094150278515618462924518016298511398963127241889113166259790800495566262695634374074401535130193065536250283731054013376417012852920481762663541287303923511599744424059631151971693133127996037724325642037989106691615194041461381543669450801997217118665459761147156710019687116241206874106141188640525304922324293504715821992843623913661092086283495062651831622279298027310234727955550311773001764489185291674891000909785814326627543700064327990666885602254829509716272549978687275628891502083212795806132912656439672176303898381295823241504388459734653178012178003753831657970898756849039744911554461141041090104368397536699615800781549097628184675306591539094337119901294184263536499089353279830295039790045513845683814731880477282752780655798994401270796663790788775322405891674740918681490853326048190755967344919053292531512048073158026216645890614133858587122024081777041943492899065731679622195786933984540556129186975664140704089912672094877275167459962994838744823965135333317726021179602930330842084265601296085478786448744930200397116168570185389299027711469977969664394224255700854541569184606616856581624372428910828283796355347400316302571022106205996397381000644092131399001734881193693573042399124829519017359038912887364774584880922000608025913801467155858571657107198059776247039004387801782354682085942155761878549289812137387147144385026767068262683026060797426719372673283032414662375396921842677387862546396321336755415433414074231139894936807262783031776932730510514697809239631267000947590514007583866548584463014513664162062728156902338211256681917590124706062563388293373188871632179783760715814934723859299088655320320182432667972338925559058984434742281160068793461030905158979096708000423526308089058841947442492156393514928632240823142812323400212887218129390654934470976298897834377896819141636755870732571681676999706657349662125701324525244841313941917084479944865442164375934783500888522901500788254723175759898984645503350451596172967255963416261932522514430739021800115690795093851226064089844125522440065629788424301293928428435494662647163201906558221293024743922701598844230637424079572963672495768791813038260552271625232590101668965262037338586184441115739682973328735650179478647887325870799579131223480075229817514673174447502381131492140287111037898760994392436403146511517436746314492694640995567471496200443567834946336922871650267331783837255486893745538146176753952612912563142349762785348363364188579245143105693760356431368331459700808563020469070027944427396748476457895481763931859919914458793062623209259543652409929233505420050402550787327919726262015680413688039138800458312150336554296379273955714673331292928917792209876077865655546256818477366329117839176454651728612754179764594182755412448523164104448857824654001918267056438908302013756954634056341718494907025752505948091488358213276918302763070488879573107777631120191477211224119188447187464322581337389090924013115413899272244121124736875319632957530386056966841293537117029216131328367047179802909412731738391379743737973511533806959527844185452232225810369893080772853376579665765568415640713111850893421873254681273044638007429769835290152360528520407052679636939904945761900133440831118047368852628151924047226371718177357853324593992195446718618718729512268746269960868221994808231062050690481066931462368635862253566612689255763725959073280255456662471186338631518186396215548331744497706300839245105849926319943795168150740270270252635517835828091875241286313398115173930861998616511571604896788653222502984254702761700956622143266117215658568955656795873110050419403470729657782978518829281680362035252932292833698914551340629325655825798410676553217507078899671559202308706307267229258207907815564505827373392728305228951129558864188423808137051640128875969274710315777183823251434110906195291614673531928986364762485662743968359457947175158282483325058984051237636087328956304870451640417381906425283801148529647773425489517124425281892511951755155293212038234165167773049356587366844634038010608236995715955743515487125811923259871683053914831805005706777658527181566142697238464612172452853592655293964438533418532839923209122800439751503605964813603347923736314824862171768558338195384595592711825785794657736596822329795107872843173339486827953303253410468581217428711348371241093265105833393987577215700141170156710838273281622572184602571916993676964127486789289007112497581307508994072924491482930211665859126476704284017257495747329678449633466549153266093595659340226691009692859054217141088708204762438265595832309407821786504401618731021362516415192631097898996623496726008551700821070876001429787472214156727392623001314432363857274637410243210052230019982416178336991987814953917645797847116590331187473214442299693079257740004795181057077697779061743930323477104103474108570206146555587195410251626831277274676156286442507145522763251662918549671467862736000404607234511025109177900058875096838406208415064824496760458907068838403562858871550949013114387900791581722039824065227804305453940403138747107150106609953674947154251968665628383288218326223024705723859059544810818484675725970403013049252724189875038029685069600083857555332281798532304125574679079542631190131282287177224815358207403866106611447823150084869698034482664094713865852729609448846376082579339252205113238364621564909108580594508362323526666805349790146978976021558340273225833016647041843559693836988207800874230923990512984397745972067481968613123259275897025252577163136154362722485766209347918062428155502000437565606184674925858337138560074092490038503021168598927387548746046913816000199609462287940544658553548988728118675041679640680236745122732549204318209358052727637557841864413253626775312657281116277404866176482307263168668666944136333351957691087045342151828327494044454224976133618718340307157257574490269667833685426882605133979612560920527447602355699076084578755325893164075839157978840289783419843929112612084872821490355852664608042943473919236126328208048672216499268276303488845990890824350585190075981204611987820821292073490418420403472464878974583147841433104352173675458608953398924905418303819401120718873365966528033024208012226911841828023626812745277126544040918192759074270177627371304701959549998152669511512392582075740234346885814384080310501730571152939477314258601635662403800819083559802676936170077386893238212494680870991049588706920136654672013576512167761796476282882090794021508826266001879726975125420540302817169595023972824843225188279339936200172512164641328637881384981978750830807009710267481369360104448606113221936815787619245123168096295100575187826625081283931338129390979668138224563924739266950681481657895246273256033775335575871539959967301553542633969272672015077269973830418958799239589642708498292475853221822467620232558081970730890454376469538652211033504309764688345054447270380855224304719253223212411225522587280584202737058165032020419185915028166197419079959985655562096166169350854789590884859236386239662325246663030285966030647630045823034654439963603008395356244088090050109328051292200530015643572943998289889884630045588600861848648768919049720107819514276997507736343360637219432890449465062057777209454909533925531340513102307879481484151286815182105817737521152066907496456318968148930939435218786627017085613625110146505551925364172220937883646392726557610075650226344593047773881648160184883768341094548076219251986579400979174675743323232784115682711838505835201131799303835091876405658320894048247566483976059887675274605375195415762918103081541400122614392179803515897759663508205368024612119303089898550220476635255616721226853310267527945390398170521146206779174506408789215225908171797035958990932886000509304544512156624834353678206988265400456930164627368565540221116750129115293018587976286623370385339449706984908150575361221056551026465256578641153908518902491766656884300116486025900932990526758410196705727405575645993970433215173541520292494845443216397517761034384174919252697020978631495837803295222880832598789709900977920379968320619682115459260957398352300915181911793486766018050965979455372021498069535115727050494843571459114982306133999113266100943241101983704600085393077486406495295300814236907173010045204533730540768369049218157921705992711307583100672916722391844288592299981309347153004910138518413278912847783630737440836053937524170242522785465970365020988556049619095936043630245050929763285832854738185622855453754471957294729409911094515381181734314475195069729245651986426431092247214153224827720282648357274428100226644610501894972752314865951468107626787245201313372502017055536880265294976301162734213848864783589703772784613721270683846460182237814898195375782501663584175795704896486171169512065307523038171478151791932852696616217782906203081838324946445211621357233842081340547920053381604261875449520447447657006899371333707704767849712026277074964037916919633812431261080437940289355359520587613443848373795019490030003422605064057282492106901955594867188758367999614694153249095614532872370515244402551902235871759480597222041227172628637564379388290793542540346716607277955078272958814883286882047025344068224934252925194818690298288322348421226619862179302221211945332669319245608674763534790055218239649693521938788173778682597331474234917491473275913455189206346318431240767082332393743073923758714832629628740934100587183743332773247553808780479531378063901102200196501184142625262425056155931771713020176699926802231163225928873842939625022615571412481919059889391460595597166194396334996084878467116212662556087897016614232575462442280748184891471682087357802534019933447381753483770105116111660580133798664413742676404404306642709662768090300703094733992713080891644073389770777426579185756409429372903609119158503250708289969443788892623340189935330241479925264068186967249008139486286180046544505523601212691706865378775833187068887541005600076244524235092543002085727134306192905974870119186606598828037310937516360397036112901589566431914679493427955347777760172381502545991710834929633402031114168102891580291373058390148452920250030838516429151686976972491233314330304087771495246984218137320821436557268376827372087503150093862128657968505362514350261104205193929846822895338973045281716290042149701362870783775504146087706362427137360547266408878452660542867122746814944635939098212998335756785914972912607261363382486006660989230223903511388280479352184443651396576470433050576274297866304746295609569702418977992553740641362687340414283211579902020974561433236368409046433772833144377323784294607964121822866284352520281777072374291272869718543665511863228429791094811540746958493080613786837907555518246981007075910829464975229653472912300193760762818188489923668301676906207047623983706001287788052938019243842680570796161054776281444864742862821192065893190628624629686960615015625491096307780076137644379766036040395326649305128383314686372435063818345307027393839507100784683801992724098041910630078490890323773254397311235300277963332831270992227533909267966831646906263819240992045634613234516433145998104932615163834287171618028140717220075181136470021549375913315603028691381034089347701721541049016957115725613524601942516320334586323986745961488907586685984405513224082062646139246291061185703202203961529741560399424251073854051858291627456284865900280795425481603384341233783778374225014440000543049944298428139262417386552754353847792790100742205857719418665748248642864006916611633358324924307844176837583754543156052411059225306139020860574135275711624620756079616205801246685317804944300268142243030730378611023144107025265796207205972372391936781852983651764661155103182936064188199022793003562189286595358820241523852764573903406201852873316110256191331308196644062850343685809494207836517010919546425314908248781000993768128983633938507169497390034526238477041845921209007865610608709425712849649041876879619383890944406394133820483186151529876022915461565448292349321306069179006366347978644031986999653491101326885876721392565666345449511213411253431470981915109023395494588699372699809201182445245857989598537068307389931110499623370582161855547478212889805613714014776711456801352779319423409181833121750545152975137032913036588377657040131826827797606886939389343627163729053288039047253326647918369056658969604148563445597294725348424934809099401584416459344802621065434588321070703043616815328262629600979978669101780821094381223397328975548131985726058253843132624345838093157335531242151724029580574189935552179515350352282167614821003791905859129419089626310422748126181097865806751135046144608377217743292414216789563800508671278027288111018891598275818463812466535565907640806085758397686270646127616100114197398404835108632660190299181257079821194426562185968260264152479495611277614684969548982374719462471590504917139117149279129259686231294543813417588393726198984768628723690551026313082185357222320765613544052102745967707555469500641008979950080513826671051795758335472386251312522225551075073039073569266154408276081931805679496752385132278975372507212284665098667039337184043571368917176453272982220315168394745242921681790510662371781970180912428830179367917046191992540239463549361478230635438195925087131024675345730838927428406180018465257547586424652764574371752116098053236376861900053268298132235506711409890193115269056505547318622099590168112531123520475134227272125958592348297273773192733537556058781842150133929376282603613716197575894848482628714599969552722881928056202023544364483917434996926345917243140547483417950096494441993727422938264659542833363758902993768834865748465005327534812512602463153528382950946036407047648398578222848179858974702969823881066475652628301739656175201256403057600229173502295283044694528237780553181919800918132785882585911740212184820770707949737047741372608344869304116472452055410319085633939762191718794678553314944891611492163249951941795154869411131905105005121045225878044474845202051954383471091446298305105154382596644106558372635398760093655921580010730495764294221040728632944814075479165655126205315793172546957487740886193696193228903811779967957646095182200008143717230659688837548735314464801235752162875871395400490530633824813610971585090012452559201352129324898072004910469213388331709986819181339101774937530254040642427606283805693576994579055993096488003705559460292467812751586628239799063484055886220011198745989531140811272655405792423188825376356723746394706584891236408794437325540414036399423320064842246535745139203850852553008237461154961955029229920590695689605871710727099143442200216262456918084001764431810369873225069270063018552200455953900850228029575337186333877970940602798528496048534180836808164297086083844473310944130694536732657485597226764284879010400874233844035245816674751303938483695428705070527176008568244930664843030726426510778336544848196842990925022150763221661113241154432556629915395104171418416498975191877473435025232441363476079994901397104653393357003838145908933855080017591156865177142466972799608554087320767633267964791211736743252708175767607082372504342244352639506522031461600618872452059333044405054670182239558158154197697706929312627511863766317627494305734148525055721848478079799590721214666930274997324420164584784532788544451380313717298224301502467812075957317848615496325656874533673352720733933903227281163891418102215427128884834087061801160499822377244296432475488970409154195233161438564836150944930321825910073947611332945676118959564460529734253300428596369749311929225468799628564854922309343220941833916809851203902071840055728117211208721068936819090850455286165532816413213681546265857276875498213623547744540150394609223991846319483478950802359090059657805907788908674175504404944163124890458012008000701199487028463361436369400053051931472732806969559482410800351885943679484734118426406855229340181837782731014729843700568350364202331146749565581468176342951803298914023026988576918912928008656465898124979608049529890007131171717971179861045482019387639503477435851908247626924754061966838016281222122933233067405459777355738180442678030515543802256189406410146770614891252808601267356725636650342003019504246514079570655715866490613771026031355297423757569912364461808162152486963214608340136391509945074599173069799114319626933374747736692168215716916442745767171301875851672437992049431954016996289301581942810025746870598116685442316246204543455361517825548317222312307092548519299434389027006481921913736102388603477250232728719046242660493744379046194492875374479507003995992488356335554511831528147042470799587972980899322308271659245407058265185956862582232702552271190814944975523575127708196699130660402753416878109168157086578924240814198453025127405171395340247236108548460886031912716389888652687729161691096737593791528602385149676281171829081768612181114175399956095397676342231219617019019720151253727963589312267416576185412821812207433177894935622076674124479830412130208941489646299334732567601542843886560859770243143508316532853865086419571899636659594864973684221942211767974249617457312685594874905510570905512948234655015403398943745627374959083442911168571416999571366772112593837310384550747805575168026719596695608669925411128485594086222037140043026346362324110787697782683656663833802007601553059648346633370337020983441183481788434286912730029377936290042631810394007189634902176829010303411582513493786686938269460745938094089150830324896712422833312753172473327628891615201577510230938737066807951909363692795109416257967569730681791950574454917597947148682093726990772254618526464037640022695249149650468815806608946481465983519061564931986115939599170663237041906585856012009958510322282335023004828121393048479171749127131575109420951895050448838410133985653944807725943339778684179948432941141157990670026895299239965215746508373999395258130012163143823815085241377577135417519370054392538422245360364693258858032620366978603434632752696280057122982185185375349495555030512380873421194088407315880876722256413560808324913951189280245317745402575762158847957180612448520212641730233659738625859901539928214270238302121107044528962220467487767604766359340815025897722252777629646355100441502639229493127350036994149471201076289481604890762227847298309214813721048323752419265930628308740708052016967825386943411838467930977556359789391006713408143085426247664208950160991244361026530212653794232206230874246601833968157508171394638274647029848710511075513387211212163580329283444729371095827472960307096301554698546515757258136808387746012471848440541271009325169393961014147326388328251444509424234828896989739458153911159925602755587906961139639865522284135353427340932958431502633671693431113688422591922195606452297442774423341099379223438012333237227810121534635032649819620269789771037007734287629234061478272275800662353843896922184492214552746350872396819613192516168731702302803940326505819289275772114788166870520344326318919003482386028553275660918966806329716536363763532664254273186994768696650405970974151971143104335866589911175875983211039448260312795355372481732264131068137370706258498871356494643147566571216268088022147591260541861546439813378896502884215447515775249006845215992989556275261382642834193301397326436927817134414517288224212039328417408562159467764147758189174028167439164017923259713295086693262004154341111648057522857897565403577197447216247425222971072104170374974629327265134333975387872577028303721220898610723193590029436365162733956856716549680120036237922072618647323947772185638407851259776852719248453365115486654425017339138969239124562607941972499655357464346545269071388630673135767261248463807351240014165571647761798228675468150191608912105734812069458451275106207320214753829221841134585317030703510659505564503321209922995244894714913481164523058155997708536553064386604223999499377598394547099196822022103130648241904099454753154475358455653153997316428722526128358366577763968782765411233409165074006735883798498118522956012808548000637165263159460064304091436920016521058873614392157751055633630115125364788752111058209805408247597233004175516752496299529048188072873567270435854091678956454637797685211249205701563972691728580986927778306435531835498155420183695994062200676451194045013071305518057399184364059535821246775524866904873311205685353457728141591125291057810744846890462548544048286434806497563163915615039617212130427129051461210141870596160102530784250284151041891702265194136154661258812151757579289200544530472334082904610807353710558600043726160536475421230411310558064881141092482660964083979630512512478778556406843704752325572578049877668673542204750955859855243786859363129334254936954649503399486602989289030701536491134005174484043114519993332681287790332001481608431914072894232862458645725998551193904559273377167644166077121154452039717799156825486895626809756237575153652549341933499999062018134561517120917850913273014050026738122738582703516384369407446361882570788489370930025277430780710932468126592332741633915891801334422835335590326397809932474191720473733807418077165793793502297102361340418521144050895324122953940082007581970792401109960271190900373013374111533374470398162830833961195745156751114351545206334205998521796571241516478611665672654646132096341870915283571141146592914516176484442588107277874205177976173924117097606309939656788482095160225587853839430775253178610024293057937273362442821161604919583832426601641150420583575261439922533868577502071625103221869301476120137200542849128075791770218800275055510612143022055205266160607578233260562905455572061160607459585087780497125937752049418701681469860111126765393574604523300222168110926895768507762654664546064400435713876625501777197922699145545523389534449095870849290428046141919856467128177812651694742673731056947372933816258432522426396941606335755253517993378199244090534766362593613588968782507138871144760025982341124098774078301051145485950887121704389218669795028781825311042691061602049367359774432132795381506168062982027309291290326583190888698924142833464691491759538778388134785235719535564247265032140726144429295356032693938020907320929947266863843344434666805462044918784696013504346304854985987590354197960393126613472935108812908996656190651526428103341405473765555930314493122239690898667282695230330500680302933744200692638278338415464672787590652543400107785365526197835354829821234270071116632823236232040962240443818277102046848027512306899589858864558039483385798984726743912450521111348608664622010984469250435655279307682011151920393289976047961331042085185572135429951555851022699385646624382837216816329591678321827336773193004281793053917117123142587603522593446236914074354961876728736182371070654395890961750956846916477708739444460424051089554701865250223698381843605302979717448408160849388236418381044544201253942330365173660643241575589924002462844590632586314265879964583258965183562108232964291058946871987951366432734227150146928451878728784754659325236493985338350460592355403302286509808611346498061727857574389926342040161533696776024209487934061183645394032984763308662829087050260197509266743575841805725571747448567548777451329900065618864567235282502301417749949841508610299283746424663553508667699738432413680752664885079849046817427686152214777654521541813541778525578164895716139353511123317580708434483977554773721706289138277884671398560636958619462924501705763121517716728372411578073233894742290216216867842130043986033820758234959797352840712469991792955941426616459837879860384825506836460314737400011159161207470052938765431468420723742614494791710137991087380964461589991681948950209610625116147290703587856769750141894143575168953958042552912436113669495874812689572926321321760140090103005606354397090621580610680420741927919338249922771973449881445177271495509563777345501224592892883934569872873750122225307101044212253065039790179262615545959305037813312772490981902696841578595944887437823093282992690378349976972131538549093097033882406203899951791881253838037243040282858398912144476162516064376965402211505748042044465840392176780703371630279530943164845917073231301000529187444211225171358545172491144611243423683318915686099505426680925658412115062438443159554324465670470229092569425284573271457808678714136313851389419191014076321947736974499934398175076252562898241309010253603900434557012304073558892383680866314900414325852998873098493445042737307368379232110875348765943270552694382077971355418638037319696122233908413167486597813734797576435073671615032671414056899681515282237831918984878693674667575435196926694717157405340942667757792649644723062087770695041493934919113142069106734119741014251749456205870232023411218680699469659654738011525204082960716088339729671308861737673593055501731330426958293588735950611868643451514820522560961536163041773470296809976621882330106431179419948260239969312405374445638748322079028528998159924123351641726840370880015148737477197003259514720767826290060672974762493720659881333664873279051523971164819454031604515154235909544857661328177450526529819339382539083114142848707793489275964561208625189477130236443366140494746941969286797694331758001321920572222659913566525667054900226200907616070873364429619873000557575693260325488196094256420074373865672754736570202253249386974244909737094186304977043300843026513686153076157472116012300387588793713561638344078930036796747993505151262269014798379771435882825637865578902241011216568633242555796861646599881897077646568870882779282373266592576230306057334952486804611344509970466549371903491187546293255290361696340109934101722462246276354522523357920432713709094289042679816931874648950835796589624174404303686094171948420752452316333680638044299297255336808590772110907352378094170279066052620478014240053701517124671795918326488634961794694228695153850025508020861756366590341965337546317742356957725078717229233838205064615313774821747339611228055592426104086441758981987616129718631714859361842664907568091317756781445314598171106265158380327244214989405342880411311350848369916893652074901182174238212147802119989925309942329063908779918305257214893687142176304544825406129079109424927847214538651881645319520144044540193758376772112547950691852277750261573154828429198048944476129626302225670214284913172428588917911805614781424285325330662307889236099384060446275332082391201536888910375548478565114942050985785999590092645118883303124981584080965091482944546320865417449935183270669095959132833806052559414168994975521157571566179412227285492580204811716599407749404287716144123488365459157765846362579360068134661359370023324519808264534571233360427952758348322539209733438544923387607661658035721062700697095455318443991677814688988533874812271061639146000405871193680246237974405097440293400752773673597067559839380875618090010154164298797978744207196674985897860042604469899660608150874242896987247137848863568541016533092380753302167862122882634084503364341322499186127680817821324147073108506357761508191063549614190370290790612051632333388688107115315969449057861849436699759139577348949671018298511328213021743570762364126817526475090227228614634842149699704894211987065679347127899992781764714368880887782451690581734117091154438785930058952013883990735779409986397323298636632854688304155114258107763623945211939227837137724210954098799045714385336974897399537682323215478852912558053520066002024579529110464455996155628376765902719089391625618344700430633561054079866061193762978045770308742391278411620271291956075510488235277684231000842803943628861881255623604894762776266234608360931048479130301316013402422739161064295013368796143850283923596104318065845725408123618793593452209019196652597042092660151970388512399781771760781702319038557953022459753190719036876501066334501559320073696968915999004871523469953195905635259257132690963171328359711872197002064755638094563566133499297293885714844395655308006093863874929382083708928845230442875336289941975302721054615957043199646235555483791440136291925552184241290839379399930584631707908604673699945369414634563719793006612694754535323425428846601858312678889120073671382422542286862410504667892517735031239442618368717282499144138186199020460738295551764605650339712549096419430987402663970848879757282065901559089513822126679825829066933883148177059109560381174029693440737959626682505583780093946623255805934166876676330283496980849515173130089741420094821031456227081494375526669622640582768362313389268298010853721923803530675848250161386143863879582385622462860409310875446536513203771429500951957500318754902625315041220990296809811055363234212671034360719901220462993947767543635648195490539859362254076951683821898206125855425923676758813573682576046970081358493974912826316959928912616171259517342161867717295902421024401491810765217316472254350162219858721897272990475721798834521840176833018852096755354757286797332091280585003507953532375106524017552565505660416615192559633188070861329819478637285384578924242982541467494700849808894116219181483983760686600688475759933052528794761895759964989227247337990982468677545338114692225897056736415119599055015051656187830419254305331506635535304449218606227208155991269298915850013759142808845824088904992532391638694725417173877761616665969965835320506117382099333156257542868340156707022353053483841707141309329443527105643424211052536410386012804259138601520609985568505867113281574459729605672937584748820285309203916208029126987592057781546843035275689224159553941035230445379440922293891462250617995952217319347803287253781856459207367309573261836081124840627967682034023976286547217930426884145343996067062582424740845720663929995205003623015105580385558853709315730661106508576622362020132794853513888694746009066242983446138005528778569213597123818078860809387227003752351868282109696540569406117609507924736441203176910305968692759305333857327193275357925161364795168959765721034398766559362504222883723872115934663995234512503074402723100004996809829724416256014552391768644930786109664599022467124350562453116314223204032052983228036243212769875453050667872792848822792047128090234592298135021584571569863921329355360690117918831868794592310308100117835847773880078879110877477707027773488134160586603261987016581006826935398452971551777502681821448063686518850412613548728159338608511203105657066981921010720453809976629531943426916704279449539271746965113167025607531499624789580294367258409069174420470127121082107088644072558012800042115893500724575338839410153983844138881542039476222189120407639304905597934806589142184574731898942297623347373038524660423044087805457919835885714484747340610363705829881981127411051701484488036626082881458117048518915185345440400927895331936794661284851940703320444194581559688712370858509839501488501767443941597170023968607283003253107719484299885708882411899526594783803942812344601588635228684020258735528748461796009571062170427552988669394206158298623432744496297598761462498387204599549717653644510681336312010938444448231885363848500406376824957762018828974106440546990312866420411457508210069967779945175023351825950193202679589361484179602449919756780298754404369459085814917184434693531498310694160619829782730923106399507296096579014584341763685361921607979385399785087263774817839989574354657567424513619870752405963547705752682730480590719982909676820238785144007677059625443312336990827990461711924052000911686164712772283890232205844481973542671836586601895665659175905855931264905641530636893073410262171433303829357949452465466010809656744967416629678105076359060858833583742262938319771309583142018045061993471672538014407678252544728365940745021159380738392730272769948365677108065060440249895564557377244739487271958320666904478020891587274431408865486170010708034814160402154807899436637510598515792915957133950815747653897069480928520912266956630805201417490689940186536847158545509953373542139685020680055846865923664365864475814803325224302710972668854106431574696308926543353998308219843260878644573733748419156066444825729967594179104978576455762119968601863397322181267312479412631325833623964154789614711375826444354231270636470490132055184289354362246799023273935535837817924714498930214647233848684910242509145816783797739482351286819510794946840489953222464695992536980030988837852858219191504555430644374943898223357418004057857369653239358716575402718107896316344334393595189654005474303731261958323208941158248903460671213200878621632712570464424607732280730232246055844838994674275151136099311634323401292381519156977504603356917404033611008654731987358318141537557451906777952953174637956661558857148758229410454839188385496566043646116565129245898103345865425853900370116428049688741642150794844362284262587112879616586850155964634189327038282063365978719795677439439390147332053191624361491423249838122640475656675798844659938576944261039253210091966688468797383362235029202011934789589287763711583235013321103566996141549200225480472036128261140838061474496478955011844602927499250396052159152138447501974487595737584290259921981130319368465654000400363150319578912127705332795226176988478344785313731383793419888911720306587715771991682466019497748864848626553182897695419496984789089199550138179186862568157458370138550749372457527971557540792084830033376560309859738179023729251321824199834865689599008214997019841504457714641559378238894338759804364037309543811856441403294088697925780080317569742919684409874352325190855792075959883315026843036064055199524936600012871971538308840197015775299337745181518420770765539207368437030070166499715891321317883131331635714982301345625734824283305452739429638850984863265971043898323950530487962680638972572532004610397857064855756329868565877892979790476943428074700376602032584848376365001389803618853242706418524924758395012944031188729762744713362023757279638976445972663461089794973424778043991322853903524645237074352005209535357359307164736516113374747674810089902824862925635672192129036273467206779559798210414355960377915755147493985245766105793846073210582280404373488516271115356308463132327197684870774703300682840159026960792570769476654605576377749141468044435681990983524311642015012418198175734498488632893149512292977532125663167615123725966334991388459489331801902606203114522581278404647431565873973950582938365105957605927884904835864600023040856463053311368565286515229770367873503088744737581152109110536148022346385181714694703146988961003463997411411741734973466869899551058524342403232267804818358981233069653439299304922033197277897831959940960280477948586198589552942052067834318664830711837503424543777402057149271460157337276266101688980688801958407337870970611636701681474149657417822396126978305531853615248866701750598988784779037411533256811198740103966906123131949060984075063085429430536095666361154342144544726836212251913796529421366071554004681911607980275631059441093089735657287348857158049658503518533349413472699993048036369842703701398518040497663162835275539681696394525461275004097546016638398770141591470257510125297303600654866447860521847610274128081603186749727052361275499425721447839910791860775818905908931615767759124185569946153575195366175986867116742191125626168259175615537035256405579591068366811570827015828532267657990481137839290572778844302588113370866780445648469849684446549132079646745937696535833683363458489320954586609352320939966450948700587510321823933147406452279161477284782600796591463525463794544814055683217296783931523576174657935141669683171148445385215923035550304590541144975995761934574682908506002478896000908375585689938918334356047720930626961341983346285866854325373411636629266195682854280143372973731121240476152432978976434125846652697594676697098332814754736575982351222668531907792327653490436496685629925373156426655908901043374776559623596302230830717339917123621453467731097528733197390453527073918250561629610283723543315023352248835783287153832101265862940507038218846945187046546716362462858699579866006243705755141577998198580659721836191753796468500079615731982803471066767308347617802868677644993775118720519186902683686207657014091816880813177018236173390265177384811212182542864258489810873782390086924259861647207932598854602398959608003224975293863339999163876318504389286873189729350279639579626575991678041772321256674594683739217160813179079139662977865976732499753073874373086729460330165098755882660420465233350615157970818656172693821543323081233842802905277833556710767018455785409134391682599074660996798241955138351393086569698446266162751340804702612171374280233723467415829450741705214168093687141732366832753215089162506232220455814341360043894822387902893419510171946737804317384346462606593224213632323157450437692272768086798677306304061410488523094547510657794573312985966390578331558071944734291286827501176244309998424029196411250683038977186281258493934775548670288461119519346767152821244859379396274335654972082792875172463545412173616878454132321943085561730330365991641191355174188569254502332804495367117634361656456956089579103601697192035994547858461181520181731134913365607985713099038116675209548693059855947345840791930496669718603007567735318538665660856563812127149354454177220870737330921920715991904167105355900101244731392771577745452533861591339943421583609444033222518643972849124494877195575646314185705726423096262353061059257587735894191171142821196908235982341231720702126235755872241061987922360501492253897122566714628397615382839842443971861136554790431530265216244049412665959593994370092203790676452540398779386752072254046363294409282276633412537812670834275219501922322958169314783788192732954467667587878039468615827261070423803902486488593098570114479955256398105356872324738266243182456641245832075044115392698115015980152025931549562812641207015262718094530763782128290776622705463286794649236456829099185240619600468749372508386714548966556079250535901363710640450637677086395267577245403879728298217425061003267663293072886631086362900989502911181961807784847361083153315180453812646336400153018747595775332997053221568492842511974570582282682078832272637103499502522317158655577332806764404438048599986563689462639361657121144083708321138485839804645709374736569974566099885426493177041661875548399287179655127124393235288892656174352160914661227833399934899205488078879243260325858688154136958957690781463613002272052558439420413004756393191760523463613290027743604141082396202392737477313766619951429572882280972513708991241890685246898726798663069009364621166400058976506884081952063140357779710635622740649961818846817695297206600396697291969371243501439001551989350968116423615865914165289819227184114677822010215742964745915325803699357442362634478781979423729489525813523044050880903650101782395528479501882653209530558727554352251275367046177168781401374702155496288675124198216253726855623117924520415648303809463044630370879754148765131912925585952814112023946786454164195594494124096467277342430220042881660128612191897163521962407496037022009000015542049970464018655636733345459811778005152965069819454850369242512949348777546186450914335806772558819016318502975750332781607384802795218828250311864614512573684916820379327757458503018905226925291414206008471270893541004481491174401838122808910808487207323108800646797823205456817280747622223669378600352371723607268846172667884468720047501856036557178659834737640657915504792958801138954247940218104201314883627465870420391456028656225680110276955293513228347620052171592851043098925217106008755211067316623516533043012262048850870132677045348446922391103113347433658692965366134124060783205193119305437709831232780118108297467956560709469049479531293589320553442340076164287861883189388459849456293872333625021121297302782388393195947707175615368844944435445791369403515922214543457680910140568859122710315639752799358930893570579652651999875061803531435850038462010425956403030826133919981043368562323886412293080067304890485884048949617533389437531681174636064278471419610511737511098135910147968730143632321698122723749900879747304970899283882636982637750395039508514666583239929946920757289389838781366066911953831895214493484308661640902632718261764849466438830963589995454219784703047147895951005379826934029928800686664852646111229538748519310309943009117916824135781233381070748775104053200059794225635283726968274606585213896830638386811519881679270475724546481767596941257666023919743544004832649265194211868400815213529403157257641823350418799409477922644751152323364055542326441151918940704828992872965686377393049019151488964867663310064190920546320063083085708428996309774556587797115201193572734268492256051032203176932773838696257075459029345751505927705490392015506374546245653757677744934261069250701736802196454538130235648829284355611902740278768062541184566132764865146043018559292337663141075691096211568952958543197483005272840906792850576243615396362660928685782146932545125815793959689659702577254734896882997133939381537748679760151235081681897288567082414941553171292472519579195664100726735778515496612841768878740634022062224806323690563769327219718387945572999793914474647744047394500704406200358782622641637254241372006232443222106017159254230087729262210034678941869467975167042923138893435937519679185517708966642139283000657496560637082086629080781292934323243954841891377111053806206833134443349887651896953492933037624172592147825450111805728056812774416991779036968824331904729402364221209863584115427531948154209735328474206208885168519566909010137837504043931127529360292855495618909600386289373955806943853026635439044616310613398114621940186887241012561639101841412714243399681472259425968135189997173695957043827128271205595074581769052464906935978845897443122697635155764273125573200341281928178665608597788502114351925656114732656057081136073910215134206985900622825335774083618163833665558013075256469966710009492562929133247453517338445970847992185021282470392034441415552210584854986717812434410006911920074293584594931991168219874802924495922284787642209805624903856077672814443645040709906058772075086797759993859892545083450268611825587770663620918198901111140948664875373934865715606390182723548586806548004490964612549283268786292983138886675273388668184738596039758487140921513079159805515602047972749732061321635492269912889270804372624209291637822840724415896200290350391376741417637572923534319114002933363959782987129986848480534255170076811842499846263203279872356123427592748901669900043188089828694975635907509415098036064182562831502163741748401537607470746035487209297601525744558052537857231180562998169941055612203437866672639501173762448748753901339192714235823528328794110583912912133450993187662443397424488529538315429140482393174645043103080739613477658672137996632596057177038089796718207844274007370538601291136490705593570706532017783095633002883239341684294039625482371023981664432965945940399514940527941858883271376785710099499868976924967610220938366373617661964091476475669757538269888068825365462998938606086543355684698685327493852261629899278105810474051843421207205051921578635128319515575589726625025994946583804596954876227113937066857522525964171109675884541839885554633632611393626745538391512508913296699689578471430091193025531020545562002459345164518680993148498806525726868344753488622463644520336770781306381491427006529053115419047661799503913269500054051264994601251714104978169236056404123529193437141207334476334195698663820093473196442432085157964271907665230681521112858069417657561413918187545936493218755653899750769172659254950617733923688195120757959847775345980573688210393743469593902120457944056843626073530288417721711653481196622997420988033973776824806222537757856219167569130312044328013111275432985024758866093325873527033633228118120522878707113473393738213181830222448023879789505668209077894158935580776092937674993068208678883939037207152232828146017519288676603043163181228722027204681974168030198908437810382461424366010053625270985770147029503178087520876550569661452797517776810046564111977032528901302792112309895823587948395487097208345538485473170960782311982551410280603193416855500494094623624817700314089823644043921056903399530821877351964196389717197351771829049141168997825231195904488018185560331597750890343053948962033280061318927774055088362223070910224150774646320520786853552481086138747122019833847353745347136406025896814193954232494405810206494834578401911297217096192322726817968726675320087591165953020806824002073162732541238196343653238130155830279896022520688350920359798639547258614186561026283433026485433193080548769069055687616428996045007303228843461640657637869571986183427856925233687777668321138460507026086439820091561332924665518064381982000468969700877886367548079392222773741431473648794575506569568462878463629117264235713216064101525674446369800503380263810423643326191168656304028178408889171128299893308738718308742244022775852481223332536794245070205863743337257812720917714647993362951049737631349422555766284967281170687233113287352974831754403692677520295103825456272529210849141417588786284571677729430771910775137571221081524723798786129484456019070992390687458916335673556629101396591281185300480245684867464871706052270306816740318155154169550566389108910583182881190244209760562561358631273983471741945903165335030868600420627606088393871058927829872472959477729145634418979451533703094194061196749623793155334579094848574687171679954142491289981213243987105547366409793358662977558441096756124864323937767188399981914364437349556688208549268300643425845371309254376590099110499048423596790320660481832142161587626971795740225052831222095567961923971398561358346232731577868693178652733030676313392781759155733916193593445385153628017919330439164029092219052680303746547088283571859723429098037183053071061296322750142137403954487081259806975166243386261618822111208154089964208097424473286152369369453441668975644391078608471345252006998184223494661103692651652361500759170555612057148296513849215377807855575685143731845138892579523748297910221969452350902958382468629233493836958089031880407965912033684555965455736484350478117516879852002044526297894999961793309008493162276911148826109645424789909542885242507748901024242762604401172293173624343029428107621721743109745270552037031884503757794031103593427555844754998198360865674549451579906264011434287140821426048306485530249946570554733888745344693945695049243445460573648069761522920698499873675211500207537101465754927732754232786309611044113671309004482799904357173207846866549239839145023592522612857659660080298189140735317356871112981182147880832260669383664419181068392499381288795898716867548902179135966920900233245598933413246764061054632661850451119206559825320712956215816533265563746756492376719237345002239266538371449519928009198778812671440377553021527873772788310825095560149659938211129484731737268662289743306149834228111359403316786511236852709662593381521622749601209512581635371208486248721684279734648672356617369338217115387492294479019627573921279334413194593595943389043850571762361732693771725211191555818217686105374810387786283996895092733273428313372132036888815604036247617221691070963643748835689612096107432574798627042099700163466572404407130048708494553438656447920359778057071744424740144391335035522480121558782376251102711316135801096611379484326468499693063775917253678122941458919014972616051743367777436896229081224621545716261358363740330888404161545491045530137917373548200152580503155369920338314507094242825678940835854748489119877718385908829281218123400312344751200857149680317368258070848547216229493136617176505317038706861432222211830936519252293024049243186749541682651918421215171787193543508418946146408117144866471535946635041743315798295429864802935959709213326794548542644276527837679157322115767875458196313109624297205460494568778923341722429011709408485327224163196972838046513801204801048885314003301473062083746179611027220596786524575465530493277825698369919859963883412129578492466791579525692077185413733200118357616913804696118177513857269467792369585039536215544327697158357450016184247336885440834033831380726657236110083831601646172429465146625681470219566137687545008013099643651230101189764341469627697506480750691756997954066546150385363011635683379055542331147947427798450433411255358815558839193463084466491673174975047768275129683113832542887781069445408235276937476822349093722101655993366117802975748958940098689899098495111544085700423423433763248181330723352505313116154184164049978765295281677727386964798290166541693009523600103022184832930411948098989573559445166018443005596887718035724772992153611800656089387937967725367693791762351562507912693607983138992991878141344819649744414316222060254489055697543938749431797519690106764544466560411938776653792599946732081449869389501333569004300174168335625650004398578782603858957349737483056238633832223336146503785361865486633970858394262051791922889355210287540130736485301030715914687259271799779052787725048975277543251143666681829246137055859410666300561671359167633689680208714354143373923222036848353474830536585070479397049333923902420039996864369862415029579170404303441853464225531001997085283029707841481170487299681443478922789614219762922699429378208025869282701692627085990729215681947056400971060424538778844492164400350685481610094187043868905402780178902714059315293928889205064445185309771980527920267130793917319865658809783161735402800166198892859409188949296188149459825371614846374988723990442746894516405988260889183965436177314942927888800922389078974877930431924919819464791278177610509744502859730178308745769461063135874940639978134806858832581013770807777073946969030835623977730461281205046943160196738898267933153413839327053567203211827123410965431772750424940007736662167242731545586816771612040097383015029776726652020553886014555571949386745705352564631399672211480398123848084934951929194800176667933413678249137943426622637654684653526021070810386562088641109706854575970723738201249999180332152765668209128864020014086470866872632256745961241212762037891426683157752613568278496608354291448494061488225164817618112125577435232847167674534134704757591728479938292748804607802271511872003457597284323941735207397096987858838537787213166584417929308453039839170271594144158796625193958449090687614630782401780559115502869118243787127855696291110227761640857413159915748544925854980585266369779742197244044949934163407553700105286246702268451543430161368389708641451677776208266211721872826287074906153674923875022727957422482287896819173837284141166011638877278940173574652759853471618040457078201850983385527857256824286877547949524968451214335702787629440616318307457913609091331933790523332490119949729011957944042279367557291416222774976810556872432865893714386435688209261690735496146714265719146854840278052158717304466296157528274239626140011287617469208107819311218234756801575904117216858529810893094101327387163236568783464336151148761083011030692663542958678477877129895340783479154320012895926318552155998307728871748344270232267158492526994965414569773448818215168490635518432831641103730173122094037490620604599860069770949836967864665594528910515732465135503107538794036667455771100302253677669141799500527731501860293250606546539487782444423747002712424451476829167761781376527748577400889965237156132401652516072836528353962552890414218496524539153762840114857520795253002343603160149515715833631239984324916526014346508654208050843368713361445889327378756382005340817179610904365584857378691318573698913145307833479051038646250380504738996648672708805139750671980898196245785077904284488182188148615071697281461225941487647270268747845570206613741453732903592924628929570521451524365280054880053570195012392767697440145030809941539557943575418860930691652223274874281160973597564015166107802374239733827625861968882864407755676718484213876426710963121743806664028901774699895421900778761866255347065813219313885421264724107860624353220392221534793612221965969566890176642521248391939856559915297986442898758368483601227488829482462107026900634553482420492342802130172287117405375021340842535939836723194835600577450846349401935290059759817810385782632004021573108665184030799585832290137851771123108676147972390580356116792536245858469313125904959277557372156614097758280358630009283876155718758301276966134736392796223291562561764071914677397341033383758331838765881049482882652439508907507215450024823752197100272097960663953793620837910861737170527633455925945418612777304666872828845478613781862678363154358033193690524280252044151081740977325357055958391044216578816780498030221019908668835882229318423160758483069286911721483131995080509745763351099869568427275538301926524312022550640422717202107221688305906168855476991774466674300768700800809508458840032549229392063888316329124560426459695128594931072192051716701539955435403163080195012422882897958185694573020470241222877189908828076770581899947085217651978563485406497575106728895269295927035511978205405627640146566834891477184453376796105332007091485962039215090703008373047314380609611529608880495085144847684360674816229631214578615634070635202791571498145227528511339766646653277029364257052267417928051276954609095756572363087199169680400827854452078721057462007412271371171094116278764530879144040155417725972817652606290155278604241679956970793893503127299022963915535846002891317495846597960718525635517622427715867627259902362569516850417210183218453108878589124694325599768894529135936653432762143211888668800170042377172761334628183983640246123028816352804324615506698701138131637143686315008819360586174426554692898995766149335015017544142582526004126586425555597703432317236390814410731534186512406927926160056165890735656596644317322551884104191763373769315517666687796842203154162796992969045411987953084736512562891135965120644652808952661272162916107197099635213162818967307345425601454442661909931229246286693287273628874537869166319925236611011317604826502958981057084616802979739410342968612963964383123002585577067837177440133855090995905764353183528662184639065206488702776380047083000461251229269367773198243886522153158975328663404301940425914418838278105935674093724180318754152792024777558457626536543283784164185499985041031319090402791218659136942769332006471476477294010474489396721143691158705785507637170572502303724480808636953838006245879233009534211278536188916079854262766032697076786195606868980731395493425201453900114299905195285752188927368922879941031365613897860815482818370150337085140307750088612721894135359155032269067254459637548956875136592903490830156418606089993242321042129853918996473987757575010322518517833815369330290016500080642677781933451537159094178061260326241151708818097872372091765892606593838045574305965608815336425207951021425088459602102019325749545840537679146199911887247318128747268817965649902333922255485651350891682737043252243267856359840840007699197126297991375800855335297407491704789442098751610260817652593300717650169671080325376796535391704095979031908550134043143243163929556331083875258912807550048155102487530294363702816299653018800390934500408356149139539991743888092701369806642531252471352299858225043512042899995189346942129985993265625089307546203453419776359092225201471222075770611524315456674675741995348093534629888791575561372121160246745805259353028047874027229379824803120125681104707899196171108617116902153399950115949888421062752336280069637684348963733855588966818746386149976764316237766026264755469492703948742356201782617424156355642494666649144699283443566993165148726346915651354655924328254638681834563913390556222693490782624738643409403182450701774670254551488869724657774773259196258840730926363170672946483742451619414501383014583657270136971944074181475146600622757282431589057261432382262704300415284731552658492372148430951708879017776111171322886670782538862199505179244986524057750663308768948002051943777988324386748101538150489798336021277093315365603960233651582260746010153567161893806088162862155750225914373620625474887439607501354638557408375532697372275763230789542326671175141234309234123029637363345107138863256821490725678317578026222503734706717395909316737624783898049890726557249875024042925791863035743380762809168010588825549004942821440405875575731629858559849299029028029623369550249878983391130535963838163662409856269908514846128711247550617119240324893756861212598365615759215987562254171849824245212598535737647096200840194895586423643049524127512211327088996582405632950528839824268565242983518306078391897490159091315374242931535868155341662577795105583251098060894470739122370122039651047399289993594081179841923533161248678666512646826439686573261858109777350086179132574165263531165925178804219343067449387678443356793038175525983406736082357849231905714220591467616332754123948074849964892313609853842260538973528422194926580224514414253281017916803661367967443253955051618108456098680152146058243781741854558539360489520400460919437966501014762899962622179816401536279333043382018851011303103320475440910429962113806122398962206685371850357480505974136858435302999195124149081955971158549150947582610416350515073605304504197170732157104801573470316822627452824392461757083949825606281833139095926954565938182245017267162894452958082976372896368332170775800058064975921506159726902881973494008459326225790080597573834654332039929303256275716623802253213946627398460265157037370139382857623404723102881951623073139525884924032256480161569343562814011285326315853580681748356256550850084537355399612268190743431370499014353396949835819970365720307259869533874908249217439713517176412044110529205596832098284945524477494561143112748127604674273762497627769217235201947745022936796960784392986219930913108104182616562361483211877655518135624551965883949797865149576264728224862940450673814455324658349017475850330250019243786834619314439483524969579381119877876538375764774248854350627747005411151299573928723330866896559679560544865641176391162507482601755529618208505864979651172808656470065312408819935653366988915444152724107170568372455233804673606752938402177315247741542197294838841525199180905621662467665960694015948505527091740326496517272908856048640225755383899538536825840323057886597237778475868429550394595753759284905720100715318890182721378144074339829414244316110482059905391693961557724732894894791161039231466994105770762396001756485090359934108886924775772184835376545223616086873039000011840102196238128823105396400612355660702377774628768709378583571058356192321985669243654399935034824092718735460195491298306854271169778904716020131155161881774931989922166788603297149957301634792926869930290665712354730772108495187328083418808078316472812248275088417621973553478372330621714756099822356128953451426270765589379787043348828705847609542171476429221287691500439506188377434028065427975914650453830952432571294018204604722433749828520188847009251543153785154195954032021907367910768061359787541898839921537556005022450811594762983321454000739162584641909216934789975522858102813588604745539851394518211425949068765396722499353659227168172464568726580080394295351007608641980601753342646005556156449862103522275003446565065981364753167043204623709825370662898789407555623084166872726553155221150860104605297219479832416196813271846035947638546051361166898648162359669124107440168989900980287076553605591774652089912510139735703403727707109002398056500042426550569812549709110112103789695619731626948989927254180148979484295407183345294958216256807100851920912605745074964813671280904131663013511672650115014565327537553117238842973422565137697283197709033484177100764122713686087171922499849223489557168925992961102537113796194398067699982612903836441629673649767887365093050128783598805358679404013058879710486714405797933636117564304024659307498519514477912335584027109524694881780982597470279136938642382928007091361134440024015343554659193493341666440360539936425206134953836004361127902328074359629345098660206050301659686367009189978706694575077113892512607295375180079168470275165845939090124748183010625437155997311842211946630805353457256873873717424825002244362285829358696379974802482495243362484579061781639375159092485606782628439055594144393258366922051896029722828702559613835125956488418409118620034734415342773098120728494904485901274380027031240627674103469039594816447813184299933942087866409935172258150760046833768385592129414107105024884311496420917606839565425970151687432986193341630428818305489600478622608570644227199548209068390902957872727308904101970707258026273099337404511487105988061598856968488715046189932246931485130219056540142311408528924748006618749214658085475543019085672170296438335038025758492881532470664320659115478808324738551182103249521630661327016061915447441637681577999692351488585736289569332730580049330637079263307662523916097211767795857106872858679742361805630617785257423449994202238426882352958470574313598035847247367583527985216223880170950880439256801176128068499676527067996495957590741718814246288151591052401627406538892423847559052688851101717211049521162064445607808001602867144290480450465845644244446240597027586498050861120158236287283779256156788343428006150461791855383221654796072842728496214545191872264451666758941376932831876787546451441824081804310452472329978589938340987220446657672895021353023853112138189328383453300424929292826482241011766311157041647598368390236430246197008902774591997866444770208952758209124217458489570974882742239011786928793000866558961340772929559458418580993914347912109154267706961336750638182043343977015352424873205132487737680321241827653980048265484323093217717998582205025064139666403960238715127413305929997402111241745851104634238557538420160313783594983371016589654365455922741390772042078189156071380799676413925667739174638714891328539574617190274101087232648220888264005286092856514721586928754788932027756732013526359418705510480367792927212544328459080956871028339361050548229631472599102653246824626958432456264222538530120229925526051935205612840334570895080270622302256651942921399841834560205511031572775412343840511134530983262789619313108341347428076631556412019625310526638687017863550417579596643953088126262035894194152004092456956721235609724065409855654912450981777890117244831367977442993652314575214824745525384067306592792911934441694156163263069977917872136284486627579824705524941995236393845861907157406130631110132277835012612878586888687622310536561791985892240019482920305854366941096602846511810012381482189812165811374532902846169020193590780074274074122025278448708730368026447930113396379859230257859662887504068945757664161187252812557858758369037625297999555942380909827891043933988353784642127823574404674251392122389752995310700679129395575802944253987337654903213724646464719470721195029397864353497053913381325982142794071309974678035091404473814038829964735198914088217603046577263263839445786326110276956237754802970794008802926080083619822279548753296225498555316803551711616929827525643768412285727339499059924974826583504130303195959155859961834744047779540623258422159067083950952169098834336695545686220782945654762693496279436351975947294884996596365700266238194692390834995480967964557222818585225532955282104431709893312058899777698560039199280574432286375940052799470913526580379169226095129900416291434176460424816541479907531062957251933657344040756479658635567128517713577812959490390319570078525707105904927294458514951935505452221020490775198282823699389893883727790684850024790015720526537466478988792611339654711967804923668076585940819058348472275495886202993830561155409970158576234701779624093890860786666250393509842932958341530776120512668726324631246946382936133875400237134992510613473035065262387012149208666965978860892403714430490662177183339735448257059844738213192141435551359651867959719528111060694282845666532771180122630209337240518441481262563897251637694994242435576708693833269290212465360088348320366266794933987621529427377365176207510567644313189148852228800841126422981540475992260246290274027872578693369898018934563209178101921304038467556094819310050568434953181747533673239213706939316600533535644296358249974257242752948984309114115518513968598253469503286201217053722286892520577348298402223220867592343076309522159677614027882744564146157883582759223741417720869902002965215311115999890309909208385258642341491002779547238965619356390539034426220011844749982064017652340718139326114633767185160958110949240818245417977815265167132877152031048447193389334411938012803663789101343749827541041997855170808770890679092642177110546073382611600940788377839807666310420581373588826320074861185430434940079437929781837632679770059304878876827442078702192836520099565095734225491844002975705955186117918400904547209655272202241704090097928818977502071469203843307582952400532439556455754765801084496390041152223700371569444711196289689007948004992029465643085450579110494399937089841230410482819783491847285579691072166685173908763726538578189256641474876434631213429757676670994410854805363893388736760922488700719187900590150555763797630103798547429521213091305822498890177388397986645838707857199018856331697423780575644813771907347444876611697681552667477929253711704735489302649387478947574150649103766252425459396163181282323935062618077694818615152858950325507627075457340177002211796658143907181244363031597107500963219157483527648567084456371391951090213779421234977451084685144234574300397727932697485594518016274123285510613197829111331187207151288589384552244337292197623870022992592124051519148395576630208735579050497850891959065400097342754194350227965003981973955091798032518386227729423724241718253721297761417805027543661848095125856096676235691198693712369637572711733982328396044375721928040875188965217267858088561914594724306348452585381346556819839286814629322011229059614891525817139387100792396117641529177102212408011670238172522603008777940381398121873273942852227014638826991445107555263671796975809937231815769930263952627831413503971101560236473817463115004569067710601634457874526022303281049662365168000521319432526953474852777603101152731024469683176341892046012226542752253126210956608387233763543510526319074705999881772657338982660816824269254843323085380991450240166698856059602664389730348734630476469338792815727618326896902163176979174776745451494351019222837667355065746174988094494236078443750965689724724824901945628273579532204048054576656388140206818852472079983519280953496933052224888946307079594456403033636129335626241066388822955534916919042291013944575396421776971606687270084830583101209107221050886993412669985045929439702545147758747648272939507933424431335961705814815969370350334102680464356607395250463607493046964962815414652076644330422932833819957865180588102232560922630597409722718001811382557467984427011828161951554579550514666322443552589129554912489482811806742109266481363166341396801396117153529767272833859890716454477319057137511480356901828942452928221641889356158891569192332347048451580541564307203602964219056313151935421142010365463407002960599051036563326389123269381588582885749973102390944150922476758704114452963957494010747015731036520405841099542260510383071038834936824329844084069709249835508993704371467996636785791562058172753784354118743790057118240145755075028551120080914186795498031414654447843797254476432261960912448709473823484037863824643291525119649291571779002767283267817913590156795979078551623917060425211203387220405247483051313011430022321013533791278667105063239586585139757831451062106395264112557508059333285696189710493257004404082371985388975400226168953910778439843505062850936437106662103852798176087858407484345521005998926576101525729186877307107713738170401722944518352583956657212762765977886156556765027419383276153261184700234952403046403853984553741807905753350897217787675109449036336241748116782491183616965384168019900649996953939055481081159981911867873324362167715566930669443638607637287286676855204625281353783301146480372122266369877548793914054472152666571163340634571581455001399767695825277163525626663381743015998027582473399613689623127602570998488273503752268881591502467559279922108422253001925682543771579516703606173794111831748009025286641572772600712699084842562240845929488390016117274912663683291729546925849634430107378127840705078191197322061381967559176229133629327939677047391039456114595195971285111365382752300851934829955273694084876036739889911800897300499085461071885666517299627241226775148525037991786271352486495185253247633704035160224092176044200428148716783899866203002781995717807014313257026545676178341917639579187550521172955387489065087834666367463647959783382171001237554030516591627829609052100436831168226219052494462008884894394957458553880641770788453580170308581853438933781766646311894452984196841231844360885265082271947394798687503677105618499136165846743881663849234670445834817011351369891127124438054593491708333298001268463811366555380192468349021068234034796888726901814224823583475132643522367730668267338135880463130884955595099883605934863550305579729798304902341368482980070236611872496241412044279443149395797585880236214930655685172138186015720925495525695185051693978321885053585993438201292554616551832160159673865388890413342095102555474431064035475307953871722887313035880847671965242395176687163202627594166056729292562172028991042315077528397563920845023951001005403394994994507067446114338022754161998131281038436153509256808299348450981819165298391225631469934527944348165124464630626806921777820107104839032606254977900793392102300440922457189476940907244955488014267724664786663769484972269202589051270663253157650291436479323700660099958828066850848514879298463585227279672773248280189302868681613814083036522900074559412561780229141244430351808630038896328134536848501617527420747408211853942870411486278688830301211467782058767065245765582785856588396448000720149467220281333875403390264863321674023016467276407733174627114602200282051229927142640844465048588126070894947522268520807349421505675695273788838835657570746824434028941393155325915474635365111877478211500977068472110542421900853027082793589670288848052585662118490919979861874478940762947666384373187099270731674970272298323436658484171426883382370965875579394462589338655785523091151676581274027611197153814491154911281271485052562756934368955039493156331158938711187070235433813989221261339883003651015619267882398060572924433592032686943637349165269797214373773195806421534128407430615904598135474275037390494540481926326046716818928545414386839132541841717724865494781916463457013510392224196596950349169415428721705341045327870114918020111050628503720578062441815516177487862966497745496023399375965843354249501164203882334858271711593982848863165337595182468187879876667901483622614602539740681439368239288921684310300309231778746095416382611464438583818073099175347211231057954078294945020036879120987292629731799544511474736041854280122721599222975787675732758164294924070808859883976185776524401031466503833096443466999814638651500854403329656951464743260661180362377258457287370694344743975534595290846625210481220325683468221545440010988773476082073407107506554089417403186864819052953129483621692510962217930028960249367762475276175563257611090884187071981973630782300429794169509977477026070184627830925406093750077540819225103618733005396568781660432769544647889228395920682893334744813752048636045428916828382288699111792001771633868226288239813863058429817816269577689170385284310730006971349698441891274779809484712525508924745963811791342199976937540911827348348379067356919091683493052981501431808607588274451226002493120904300364475314509114162973836925265629877602458919972276491842066909638134550863812900524755649705525139976573860084178046904682597390030043172499603580421233025875370926476817518393105045194360815388536100653204160922016398351685191286697727118120125592187180975482927838020801382701459926367395554011216509928673784279161281588538505565713214981509851433405741700863989848116956290213252680860255143651804584316686805829504456522268929672752179650864164512968335757003402885817202255090098345667666488682731984516455490475562984419961676819811623165349892030224112796775031884221378177051138165861485320158472824495445887120417743171832793177628629870596933307941642580547912689861026553880435333868502045095549364355934027675056052384904170062662784045315549641079367201854687132814212818839900304727919855420817064340245166613046021029611819354681798658432483249128155184764349431515542061587250008698198646741142518420549110896522365405818242697289491766622612312817164582674099466802256074113429299477856296854090937500028552782658302992965697899739885760168164766512217219536608465089081202658615888540178540206926366419903364317510601429638075299448562873482187096781687144153891060258373976951486553930677912385113465498523398055602355530959211914551034578312418311540070022398029435764905539257978279128133621675455334532698466754763338935401762876914395923765370585140010193278594399250828537094715877706988684848690286544955733422427055476878147365903783836645511891410748705292833157145647332074901006347602661780460621308118510312116956665041132150401862240431146507599846541106512382257340204195166445082911908126730559710796287861140852221240338415046951904938707756140430190777579068244895226711089584351690993565148036885876417654502072491149553204694994302802167365419181456526209109731662352961491225581186665168219339507171822776782163308546977583414993141155371195634273694269432258656220927537754339782112763571735901590670925178402656730645352256050557531785466880340075384273086286930112242141365222088114737037715434557446959719747966465806333966172498107063374971159879904111904935792108145134978043465882896943225977184735862840989720276419891800306394277743682271797430953821090212582384078129342724853929810806082924570513895109477178042018179055548957859238669876518013461099834093241618413538344966986000840843457992255591503031605881527814067320146674567571570253923233568908705016228368006281956792064926372181955541613993226479200123603455160306605613922072361537515965167624220707926959773117154987303170394269751560619550573567503309068654981836236012625108911429845585262219792163095283341711672614069216626719339335956470407874722963711446980389900032369404270749466791348595207798777237011517029253119739658110337751930087003815407752416682152522153381785893587585477516801363756037362485428276406542571816904956282060975513205800852404285522287796140732155445906423025236927321909364520583459646769334366349414712764613036615425851235499569957617113074633050633840222096297177529785767529155106642154061448249628072643420948704625681413537924839536846352018438012270018875820940403541266165874004706546409572073014841848257903743952028975321686296603468942797281100384049820988135504169264954091417895681824208366261464144175670532931662181929483360624083314331006870245636534108092154943245403701978818565281703095450741144308553650077712973851553186711171657773501445671206598834640447262608705471116187251533239590282954938431702758106753348931848613203537596864501045090788761250654339621789053303275484248154992895939282017328798282543071175832811594714468873939324628997794855137495830832273760055274502622563506872787549091958000992592225375375446500524908748800720505060340875369226774977038758341873254639797785945454297793310172458922393341172159028308526001358374472701617628239099576332533701140483488435962064383272542403053006097647688817911120741264466535367795027856335186630021558815962872843465238183817644263169186803765282467531781998678100101915201123670272887350469620838919475382500002296548196945116740877935545872594628170737352175348271255343736490093334909378826485637564507695808731082813726934921488339132535408748911721145944364828795081605380827863242381231775233750752736656540956110614984246999017531285971228107127722956770959843042507443635190064282477484792717170422090573212652006258141914209773097875216163801165489214760748201991623631829672947780323110957920545591263254002807226729061397793411136548472376217056896066648697752634871174429306583712879840620980270652784286627894740357707843422172670466682453035421395458209040573044087003580129966154837268406496171396883454914468643831490427166282266914405085964347554457080228455300438149883684275227553197988581013869342253852929976304993913007742184676430241874240676563096047494335374093364918499327720435100776345043178772741450406439627246886817716349916208304383114456491779488351751599477872976454530886976844385112772484872179583317687226811196686327640125808437732448441131915928502604620201276063976637909497788846243961218003083435113217305929830818494968433800095563093596539473662123872354573555928738145678258009816019401217583556361322623428206444889402640489318637550518356839583064072253868144816820578177439761548171687298027841143915988859026005173025275793417924554607035368574881481232376766938484926608849228540630302766795112352460586618085893877463181631610032923434448069685195686631477488646939964294699138377917380753388479964919743184546705317312909702714279109364885700686718926326149356554583384144867160774407620151238676965599559859216967170613418230589964035988782477699670318047187923237048080289767325406361232504018011486122903828388878877269710098156032937880711159087267631846419077850668105583834402787397858561145462198922766085147786808903449831262883011214822439202206319600656902047174809827985850757218474457390717318065977384952276838810223601853624988308495544082823542926023877500012691882033849246464648441914096617785579580483634623462554113638284813275490061831497024618472305410235619234979488914992474628238283731709703670452532423431423126183158404947289979975655553687519407611399708368406638628361403667495251643638299510807099109096826207110895158172185898032262467830585426857179864386299756058619923872793284723679139860909407343270855595139455110206565988354392098291557533606774469593454143785981558138523250264686862444264882201575199005880071560841588196818838962633065115423852894223140466744735655123759889731387533698381313163131306942815329245699364482225655717861811007811624217930031816712900987607397497279679998183870503440887433540423762810183064522691010735941555514087363889610702344529282881103181991283255105307483585053205452640503714355854082313013289443497925813574611802722765428169139757014367061065837489282383358548022374785365817360292356535363675491313457801118638701488659852233661637056346112541250455310015008699084411929698796155255973618459006960863835016407599741561085086347245321583189450662218393076369006556173349932060567441361858217004785465676738347372051099463776280713833642747383213010661199793308146544458170640241176474414125176353310638607810116385750122444843109306653137102621526054118225879981622329866662202364980835188991329106042625483005782499251382039367215340995536496915005172402022956095833537067226372429138965376828543120524503581802247853949015601939432979201892101732180494081281317284712349073049734930425100003398991244019627972440602641713525292719258471873322388815853982431152038930569688418926781127788706682334940044843455848363163500338728643802052317490964153384976413862147895987318380208828652563497135287009489147653153386487668759628861535742238113697054396209160381568556183449497996840672786091447175272871258794703143526693689997479467039169839338107141360105091010419187566143361009846108049206079096235948256470474564199900150727848259720806355356047584639877342317636668658738319934780977628012552812012992287232610941249829195076587107275885064009794343077748845715292681871555059007171640953206096906599335954982962719250779723814363962663009312570036924320234743413652434960912515216262590110893683611785696989086539498411954794793623540123780146032235015965204626173816383625446979278647077925936225973663891679705089599320072577813665817704311861326837295496485067447486673901374705832785741061556693862909150636508667212276520122204837769007125698531307143175466622876022850310106835195755814055190210050089274343306314056156320075680259799739653564528765848844363070885540145764512540780609099915429724453869178184581861373802303306398255727496368874995866643164002837120932973765822005408289833596271519810836780644470162168940844515290841166521077250180380741960461386081142606291219314464303956950999901384164382162605132297007640318345569027226318149187789840416002658676985335559661100604633268233538173532725101162483542695177951879285338502068828842780614253659475717054768058160827686197796336412163075428117228941904652995436752749092646883349114708643723232067113055858300726825252254631749926971730920155935486761284270101801864187976734099519605800231139028013818478357273764779580071829988613638409575590051763572214211080444512747441676412452270571340530090395044261048540107000336115132209148266880195582987257712515172650549795819003482417561390740546705091806734108267621923762045255098495259196588289148618983152015924933158334457312359973781598971835366255106589722895346891616285876567421128811419636241810001510310072631428680277458951794363629657648853119921747022229476790858547250360404834089272624956414591537735567978081741087602123984523440408792374227658109800646963122173803311099271696274789270926024166417208189713606170308593170275984910695119447595927718915562581117966226346303284953007744968689725974756244276906919846950417553945506094649667090536353006081960926046865648853493716285382514576227836289461162676893276466309602569789360784115241761949395607154068118588737536573397323910114607827493026754347537820111614964887461023210489871586508467996422874216275374777678571624077489311621815642211942379706632430799696963253122862759966411868793361671302368300937268682130651209408298388213235449775361724630339683892423031479622559283294934361406872731843120776719133292027475770293389581565877999011150951710346543494423292013680067484516471245887901100170045971746184662006844228250163900221316045073964988506067147662015003966718634841123678293475758510528205012643375031927866266326323992539818389099946721415828141501875885879915464105970602874618237098303813156129665521490266552082382351796520562185095033465182538489381521336389340064024174678103886860599172040200615573542039297462546979605979555870816248618250184726222004661465492348872520219438962239887921386252619611404255167240890351528509394486541490085882692534521769692317041928033444432550224621567501331370914211678037892149188507520424005962947329736861088087521487239313867191675965640781726302854545302826323688042862905645208641748812405594554974514811719388822704164842675588222959974156137603589474790943964342437659672777426531591497471794052998986960091900448871527661072614348838243604313804461185048956413200653416349095113863223458828416859588970129922881244731876437274931109506373456513903681472387309690682245069176415720591508286759107612876150543782445609447420159882944242828863948126649230741144681006191418534016249477713978167471735383095055371685827789856651636965782363964044756692651975711061231904814397630427619074916956140843075965276287644084925466510010747216886679371184146738735616227757392028329464458171292066555456351798142130365415301278435606633274656595527171480176074879907604820655312647242963156571906625330133023808175300475571171273977367743615187954784281335946901829113135474475261553765131966692066016867330335882016939568748502790382075592516686188049299888967946077430695628592636449914370633163501234037691606600682794615311135798444304990575878913158123443293573324183543028014189857082557711858496745878759537986090502726798201356705494997645337315785005692734217935406959202296408647545223394659397535452997201692781790423190599097305275911502601496870701097841405990210909979738145421686680347563336888692056232524789422282097802473516266094880968671565815329322358010274384415916880827737429872264008976438967614739015562683078925130352854857783141810526590142581903889529775905419197778061757808664385975461097074846457948725907317217925608832753491071429272671948412318105562268056674727218753277773076543347581135390816919751329861248866966777212649715913688552193212170296528219993609796112210717320718400696593040555842882152295983483425865722001500973116087634660478387847491084852437460119706814809812988685313036588396489749767353941131832551401320310333423421910246634276678049533537314108391243345360756364566928358569989980808743598655046722667534552642028792239297481648447072701926328329509459795789848423391032341833854043483000315987282926134380599716961915877082526652557002595657464334340429928896007954489384985128067295336820886641702194100909625766577941921730573037439241899092859178458323137078099834158452483521348683935271242057180948324674537836565499576109732094713696575791924516288614385068861617847595697283119090709816230840952822546395940275287775359406110848666409371894667254488014927408469489121879538745867418031232235524634279260633812015012847762594148742037519447039443689007876591347434780225579515411280312371427196764960608562833183522769938165551618939896244543801107551328983330168179246281532345199636154616833904362806108086189183434697141635807084941420507860430307558384543889391763146429519588492922019662095297881314576982569950546529640394628200632957876496977168914357130676700929411397231055598971218895890354170640947170602630684374003045751156587131862402381717843650034406345689404848558638491435185946992247394654649314475217859570526108354647608234292722595570086477737138272579208275418351045647384080978889078415342667856349079591535698792559163808418441802026415269613837432586825157876813094780910816588796001431277154040438823869418179959324838060147257593326658941887068327915767206978141302290106215452147004345771417333790526232164543398997790612842130414474223891145161950328308552226858065096300955414487946812896398726924977552887206765125511695693705225438978259093116494968091627994793680954678276804047642767804932555464362535389123764478309897935974718082804345516562963577704129541918465037606383654475589920582600791418636180105617260021642753260666076846611610154440458060803048934997919013217406491098275792439266299473338040786001883737289702962079929762988986262141057802598047080977451070943966877949193470531898721949625436805488437727618679289829431294125328701859445876773643956769901883214830331285741209125816262719248537689475520241041754423592951672546236487924439249291631393304830271038159563366784723414964309611830312231672817099370520922446712334966852425552457930064573721672293246494132183637751029489639851326978517474185941707346250386009073186058948228368999688408352720886776284582531772632616199815488422649273119562030377897939810963906916137290789606467710013608122674048519182765454433148559318583482841212105661360417751281263723660137645848208517623991000306926582761390324915880777233030787792129513199615887176070953678783431944663987395980943164247913302145993620909989425103554170183126250428532849152064445104627668064941949762345334770592571511324809001683283386901105971859705664294843991724110602923712099179139373270024399164040612762768293185606946221972934628200742273925803249420393042311830260521398510309647114133716795245346797378407887846973497936702184024626027263244083148546609589815906980207593916943407888190910341023189391885314473606831764652668029745887405034209324403825510697856577719598582914270577524493676177746963767912709046948783120301548048126738109038237982230128510989111764493074962818122274790501969479994955616797812353071450348568148104463705389608204822983672222913319440222098167525082219191688208269843776472489223616523706820986581755433008420235649607709905177426929572273639662541929283944152825193369351656928408759726570460713098266047354662895681620186309300713167204005917748764703212138678850369743641218680895742017433472641979758851366236353227863502013387740244747095146407243491488821728418137235810701076815146965641339684115267738394623679391200053499561823089100411889882998042465945199433878909310227158666984190703089112280101048365956795230794512274220321336148543902087207293482118392608755827797477558248724087415261101682920922725355113458338969669559888616563076856118423168979966027731836592658474049502636374466507247345712836133129489699333829236254282331389067913119486036828572778655081965924775577553138008265258742180388574548357474975160593592041473646906144123000072216436677385807127134394566767926236764769294895352969636760333559257671126098340896006767713319938575904408108134081354890256171208423105279484591610373199614426270141756718723243593975316670282080748143360006140690896855110304772439805688492305602435972855256507887520336274105883244783884268041293044248193507763211537128789573542161227151349716539622927050903820546562568019252690417677911061534681251507631021233722125568541934710545439491276990963970221698910263849067857534536325020715491541489122522760288880790904869474578019651906966486807371480547179184583537866833117944643835360189856661322583129620729175290496789774812161098916530629175240768810268169687140395485330908685872256193266084847606472699747100791069806269174788726742422075867977081547931516268234782686575099587994613644147388482893114950086741843599466943356911141562213189629397957014207711805038762604853031704122705817022894253291781597868776985948807949450451810049763460847492917013119244093548794599559538291185243840711723665755009153639012265352881362463496672037558463215842190947719878463986455624386801373318317222431680264060776251585216802349547641165360227227422085365319794943236919253322361890310501951263955631272631195960712212327252036986709629198738260020279990696316284790155467728153766230204079238581343432478396245029585979661767048449905918916849598689927328433063594125670181329378345092580827623025768566251607785291371240338415655391270059030778381448410534776397443599473421062734731661225407454155016679826869903214333483759580902158745515412967481161192669767425828230866577652598108946362128475490043026646999834998494851132046064712415293093852001436507158101783322549592826632233240855795576661110968162899197941168549368109517898785736635855984129444363766856847656933968094875818391438069700613255006308355334173877789176167436577271013468146083462040823699419350072274168722160433661146251056783431379476623253961839198074359988987196029571822654912156903293598959194126604660532643112805010452613176099517567226194717484955272647536000135160855588362412977647553696777562337215937056178778591080658790038833396096677772902443891589071101109895339482040315479318379300027781613032011313513391776954255793029880118797453302135230347819037435497847856390605453021934309199532668131198851106302103993434293055595886576312234136404428299568056360136232751286448459051126452484393597514100811327201311172791774659035830983472997391390233470720390859583084106536766376549640232483513708858628515123221612535013305379724953593927331347694495398283555994932288807794532433295321915055526377015882742911345673169714102864784113359074592420081956901369214010143170205025667413188641414065808076263982284915772117693616681295944992969673781333378172449235331193455628907631009199641483028172440878640178797653924946294564778341795284811003416620540656954811955028807544399582479983730922579993687901565954500839582550562499945787363712813809381610365979451543448233359549577190468701418491638877300668842313819937271351230448083865696961204295427314537601894509254514065226406658483477561059018473437950723240878542916869388133014214056933150851650682916752783313380169572631281563370374887960169279625413571078449573650090846656810829339826100695121691220460543978869085563440560739127633455059528094540440088355642110375859651575481053075643356885215459754792554850047763447567384042353798468742761412958039992763900856330430303536550548626710341338891729844926267807957004350171997985780048612840110004081848508172417292653554106337274349581675799739126742405883081420644954210180319137978522060543658466042204260680338598728274687791736712635601544511584690806585739082039401737961305390122816439623859088213767373667727734332030555806641559279360281198065972844478090694624571464983209186892345804485552965048827428990856474273129571104609955492175213603171288822944921744295986325780378628784617974359561890758765952677008894604998006410782358641923820840589191806055846737160273235944445474818161938947641259484917399754273679969807237186122120812894926960082142670038358233134118334729107264322501057753624347880047267868445617346518724543184632091060550169724580563162848858511252361821418910992277022097992493255246483322200418204969367388290585149932059705904831905118500524038124963727725019783832318594557122172966555368829451411548118503624750574272276035282106586214075247410999407567137125141168177774895121814326181801451928782133011579699691811609911016029653732431698485414741681992352441299005462867874536407303631724489415839562376457986063578813097886568379101782604642124338579919657188851494598441210748564485407768749460168595003204053114227319033132335045346809986032754982779414287505071651159861979982406722043482499422923134557565989993395722254708081119852592404187586913768235873117757746705485922659850858395264263806395968456353631466510292653125749100521926722949786962437831778856042376475847841757130974584073404203106453362383808840459349660398774273822733611613518101202868773134248517660034468012519934362839037509283057469076384070524016562154870905500691046425531141120132132501092051050207397640846242781598997019480749593603288822259000668731541065458025576615629712093978343992324072188006703013004565222882691824165510290832845159862855383339479166858367172055966482691010752254912487360638632375349948403083238200477798320512001122974504266722422620957377812584318522228462715274896482451291980173266790589684318470143110124820995466622295574043866148843643181452300816198881930818411581877803506069212813990193329072670466367885928386839543908339054452024015695951076525725157495121741304033975714253658972374819524388671677201145345962942930717794849474096142728064979527961210159028187408223418025266210393117977931478294853276747307684079584951438890958488262217544277126809531679072895372528220989140872192043399684134304619145022727418720302645676291545457610359629429267617096633469057315377362754104717890572490114352996343486188052241263504200038165786100173705976733234902694187235943200273708006272929039142591392179539438458366600069892336604752788453832205454851521690865638244406830199982135752613901046934186670005274111597852558443785955633542394126689341777360589350795729660492212424650870951103271771553885355561762638416801441353316710835691681833232542729970722563910332028466101908632191644728081212397922192693920890986677888356327924940148652273931281965225269066867990427691951349806203779339146020317426605224682365211492142953079389570815061812165528152780642509104933186933423593189010862537195592673260188789611407503433009332388474611959278699725889499725359447818499221696942879346738471044063584371969122229733631619760337801381192287471157926781774474295205260135527511809172085648441879540133846743529225410308744400139406866281593159054252188921581658513956899310426930879682870345701338258654184649910921835628921220427687677776578309326414089794605900513715554861648989349491303632774162865475179571846917463037204360682741218224755524832544628479682948716853672702688498784444756205342586561751179275789805173713665716515666629465470912001930688479650137774684570279534008819211556677283801943756815961396547494233485953117103254113670440527781217642408868418201419748763826666899200280986399839265134179344483100014677911851168670570704587846543339960693808790833910310152803292999659009160861457294478537792346790833347248329017603949071323611566934205941412579834117734397869566795271110800875972699454548755461123974162824538099488480297003980752807099529812428382023876626711607023039545286110039625662292047917182466209194223469248556412235421760394994568579715011803386452306660279724428221923672573879743201671756354259079617540257604923621410146387599934688457188643471056184778688608245128966862262897949017487528732264025665580151128046231226309256337759155241291716461100741673105835857282160237914496865110987880717494749488076135819055342459817922849724496913981947496262462961611141779013466287892301206547730559011442287575685335515655101917658826270348784089375999202057842041166324793612727447193757042570877066476095982611140194682439260680711689056363864519976974618671386205024718416880832887966443688131580175411998282466489679977817066256950412950495804313470476851072695019001137771913686919799866554954621203495175388565747632205228678268926653844086400345621705354603643223150797606834165350281963134404183296322246904517756796143781618129278121796439551968848915915344919480042792844772934551067996758503770869007252928987860650229917870595500862375004393116478078928629660011925738783762364167660653054333932190630885342849982285811619383054595700888765757729776067750060631763289539326799791011641447599310066560178375451357691786626155517186038269831098689064980910877815246926606568504851976687259788130494712076007216453798696838319971196834213818337683134709575123910924051796461533057772244010567110476664817867983232610857160519930212722114728312798020292135560445597515799611650750667312507119121841973987155978833840662336101905862479462599890496069156905808877276408062833210874894461476008511347583763375764934674015259259617598143742305715828218976505159655399787676424451717658789161351114558345678122548008030391208917826546092828045583316533835487064806723014262417062748265613755567909386940233488062523338850997007760828383571446838866253271293612067257870966650676310280408693997611446249640770304676901990469903669032395416948422715455915409416482281166261204437982300002669893556021088529364188125544367706773944620513517130027459837332482196302815437192252855061072144424426663002023309659278775575266362564831403163618361739139224684311147141307425719815703357071931301539930467475641240255372616928108158054242212222548233197315327219613664067578967035983353862600710681609615648785890887235677404816321570200208643327520214463816935637797561742097747226713323581061240465052231491704541638932246642590778374006852534796661711919360939301111350111389276626095904733530638728961030080006218754881220950090352964443214971865550826453688299646597633869727337691163375584372295816325442718464728329999329516507226356785188552393766799857845012349424325970891553199166920078743361095932739950171384287539748209778820299262163159294807425907016450886131195030936796297720440267732343885367401904124129201492126962623858251906010891658015352312669649979779505070726024054101656354482202605596941467642490487660506910193175369991963278372381710040359158883335861989996288798747980463463029827742460206324746703120749477634900372637678645431342337106851147353966655056066778255865691980722753832072306852576365450150937289412742858191054090099281849329982420500139511116330615405466360128588120216533801602470886242060430231803366683057703832607449471206096470955603449535908235349100370363481026000561617340085986694000029664479942957710287595108930450973740643421452322609090142326484372724904793213598427040026661251577422446986651484994891018043981798953939389233246332481866426722916419438282974470595418169882324566686934086296305859259075346235644838647170438834230607813908529305381875900749146125251542942275510917448845942777460000572573181824275177977069371900349267356249835225360540712481549965873778660454417632297362494179185529615777984909765211478892101988314675900644089461177916592173858827492788401763303729225295174644761491206989979526573969206179642149297942483086381130709225960314114869356770668285007837311478101395201353193477910366458614634019012400181376736776486844843620888139722307293075553906855032316315828877826301827097994658391430271496690517981567214838976711066430580121662865100449547989236459227324272720770301333017505077286396921938157701025150521261789096704862101025242313765463392150875658733742787912601780579391150465962869543172722817747562176035416148147754824650744739513921056519191484802073368156461003764672461512112710158033147968923865758559230715219376926470042835931918495718751681456833697968812816944820936723105487029518959703038039779399202725581373433585945123434602461551564700569278519411405235892044173069577119085558781062282554765033707759902444496706824336031786071847143798483926584155064275057146354017847408531259378591699935297948723655637126616850455188224141870838576235546985869042829178419165527777935799800001810406031627836423610111780625653436981838592771388056383670994559256957034580127389436985865853806218589975217745635822082723908182959315673832537238020755860621095646178311461527630720200176871212822921976867947236117407476876075090682197523054744733232548068800754774412293846831027902089255756687779512920664602545456019490649751550124401067821292356600753471327836346106316216999759597884390498611090415101620259236445821821631823846567883932181197926132739310360473159462798749652469410277653592502289059020747300346870945683951196978370959439996391764038394626387252268382023522419096779941885051730159021952332410565183171366233655034767828444400804693562880045274835472928036493138036893654606191890614201847892551370320208675855563236493836374396150138005555950480859011743223265539194703465278264374285079710111234022515346195395470865920699429624440817122669325239153601757544895498932387195189278504346243331983526546695545194241882036555383514718998926114759702381790896842224319788982561425692937252088907637916845925874192243634104176878636215975213375610519203844379667505481349684014534171102053228053905573280716492278924811101933639055999432283218463434473244326692709698374535480082554656503666849454565609005591065679897892536228760204513666911314414829802785207448879185457780946112191785845871159319183778356040994256621317778430730173699880882751108854254683686341532462099157220084067533098300037387623670721574649654155883825929660916671387806514362213376477414006418597573803081478341692190161091351392325343945294730772975190454786873985040571637348201331665508395888063523486853278347603616484704535332419359435011432106756128314336306656317624151626954832417851532466072743338036733225959441017993614321790470047250884973677462703161604368530181634180607093362560447599933374959052789145936387843368088551927313800560364999585590956441210278784916999477032155171260219651308467519432258038061499189550218775698367384389636277558526057726031671345820944394840336524501487991957829332050268522989392964239766012807540420027134186213145295346105530859634771271900019370155168337266850374303222988087939613341653987663373727727780495497065130976270914068725861508933947843375403620406463929510431197428389758354009906351498990324285942584608950002682130047719541387093799648705332906332510117753455623052268991135956675608462659820735697019691749271541968946763272496717455380030694240200795164146885156433475781027584637056765568143559049561481473923581784683620679945321443495988975905952407028847557323860635897608921896565924893596256534326690487636396876633421156831692033413566631020363341863345239793172447129580513945266279876134920241684487108288940594150066158506117072872523681867611539290604582554506431974012661261774742289604281719596133366408117790598221947454844609812265725364239228119909727495081816980674739132921158140239960759721679957520767372059886140266428763767354996963968857657670025004271994385680392533132223905924754297803032666830365272325766131165872221284212289016464664182857421466971576369139974972363886433023629050547413971713148588553293844950031534588883315980353185670664552568432037144570111107342365705854947158932601683212548567848799510184358353275098625423505332420378515831593778930835636473593258051231131233398100560122973171255426250673665243341619596410918684984058560254718256831383704512276062592658575653863799055630151890109816429377891829877488247060723115490723023765396465243011126434161382623376030174577917112687228208791476858392862863373016844512738145578346049238526178016929046417865103377322501965111200179414039385755765822855405675767457768132043432186556908310066778555484159261617606002170569958847046302662139896999767974456058501866092917380176559291114300266744001422273127944386578646254092726116158342459113253955383169725531855795563346285582494271986174146639807306889833846009799165280385844848680781332339236744368819964078427581666747928918533841287605251315703282672390894583309803594686514320964586043036551727107753655744975007695067541283806016728429613173146967138234503577561420432949898713197566982089866368839392398765031977756605843956707750674771549566539010324081585956098682276710182569309146479734087680605777803841074664632100274529764966534290455789092633773119500105768344144215201191886418385276779629639849326941169686826146867008286220068247591684537833887029689569639818213576267400464608514207898744260204418916713966856037960008930983323147522127191108393668799699530779930479331959988485204189463371761142884440191739179633071524837344771294875892017731852582516547699383992703832014530483681562541388012848735221786941184204209816355080323118825057281365869455441440300398910229248092478363287018307682299979089066859027138073896714661363670171640150555097422799290187306393797773525351534531045141734946410198394560764358379955543572385693117914391143910747216357277630578175344141072681518624919815392917865368167426586280613404462121910821555604541433514443304556071778635659307984683279376865221330845744388063699461776576048927592015179440553085259455228557429921999101472146059412625895755816009953312979235830324963941572500824598868255275730876669944454980739444509727263901863126850993961512233422174054586711261814886386050542045767473135018402434885690940481764663562663808402611021605158485792003803331596951333093104909155941456813201797425186245435724506718968043759388780221009420333222755377358749829980005765561733445618118703744239153870539518934610591995542879818817066805314108382077302812674691112645785617479527418537589738721207008146880742712302391384973863320721291076853584340901201969671767745837483076363351731737162760631296612297927093278772086989556234491410046595441561293894341045524211726771304894704529801703409026711892592128400284719174752526711963641428557622328169950986892467188930756921351499484994617875501684801654890557269885542079628695435864054775302197226160816502583276280236171319844474458189213229024930900504384705902559871424919456480332422807747464343799131797052960843892253212933795296208442678640085081414439865042330008654847819134285365445027277741531798348907280258203071775559353018736532581562137379482868978447683258094766628816287283387846994881227166196401735932092042525064248063274221743513223301746660500480289284448199383318820332322869961478751716997855826694077255829064434330909203298421580634818084947170015882098335784975857421617237345064893572926847357931411926808437291719007815974831760676343176282698065175334802979525129046530098503818827120174983921626845225940704313195744531290006358259309970988939650396041941757394766271874890949346572944631851392804516396875116052173123136923824645255268911446976123273417084733078843243364813296544301284333631817560622527209610883195322293235961509662071503498792792962732790732358446723414114330836782108310758854396897656192988700628545227560168305338199381343188999735382801955815952615666038514240065506694897898714097665092701995622986667850293158205518701077347612505252179981494250979932954345245210528747866610932647935067645215305224452252297968495187508023352018388219268528133282096718303914530009136712060115110521307482664823231464724709312561170092522805309246930819691877673501803492237320662751195068289044801679086369459236270285916061892895782746727743144297692086291709052401571990050334595422174776513328410880590627983859007057235671682783984517280598974101270627998218291309232129290717343015542394084342129143016317612505811070431703378491539701963408699206575612256337478852372497455178930023696731172981624946270042124505957930381470414767712885382709412464508460441638372638316921590505905270165680615250977793451425804045734212186922121958553602573565065476254000584296464331248526796357584375478473050730038743000585821258426911753066439705053823472153788279903177311466732071861663802252646706594760089428169757581662328474045802313918538652324161760715074789960533210423406475432227418095166806297666494717324116675924004072731534202567250779375501403488214340630226221163370996360190053270171416049247297854291387148398335454844511821927470392507945098909895655048945542914850645016135794925266955719154609113561893321243887137713739972272423863438714857910865919886503311337534661656737559744181507271472432446964107603716376004558937304398225986074286839662977216268627720422504976010074836157709151597467286235544892119487944802489613935954901535418527726101409580701394996794971184843859820864639551028229077063674571006740880446804249473257266085248158875347933695418135710567700616212120356151453898260049638937472976036961550804494282873911122336959643002557596297469915076342139670570156188227652332203962466569964996745652609362958374227442072862193233269251849675363474349732622999401519156347255460234229983491063368424710544300817722427329590611115167951752781071542218711847944482194847365036339646906259844776830415198262821091257601160819727677022897202338078532983829340455664543711539928934017947656006937860840834242685586010682780031780203789813381044474060074838581042149637186723270571415422026904693002784091522794230131948496000873927204782408989267060600075876111934741750351658681570508038298017365209557102387805664386892998582494571241742256351704381040674494641027524950793619274816745870110198094433581861962923577656865124902948135403409968971037964603574917514194870974413994581347363862819191536601491168620142878954632194954063945753739632670501864615698305918039587137586957391081121629890547278243248285838942890929953996085424939555894628737537308879650786852483041029654053241532095865691657256805944025182123479043541192875817459692563822478851412805207326120863765545153746238437525621553223382644621765381599021278342982878013058844711354061537006661291061715480027405833734953463703952913393198750979396049717445743525885570479129435264854250681089992060040765706263475390139876418061953712171622322253931368295015998268316860230834683622695427554061914543881669433744262614994623550354590052197385832767284736079554540809265034818570810871807530709927076721634073219620290120444965286145136655443293545983121975762520809926025100875530329068180417780694140608806529857043072159884003394853605662875484449103197923415346134097884935076347984508002468104049134671680028067365717573855509484365202970453738119441271199940165394359818968599975348745168718324652180190993983123020453806954371627313102234727066316123385298596003798207833340286298936882227758287920239695447274801300004847351805265564081905017504313324504019748913415426037628291145300048421500138690934358862401994815525872617706698510363134885831430524262255644357463359135789866524110449852469829707830604787206061844749928100091653111923284617661672410622046778500437139997421513157895818948780213367186734894878976218623170880654150970672360194636466925459452291093992995125856738307198375737903200842409584461069107927262605634372834708909514882825561849068667532783528692682416693949073122429609545765242158373508019829852545183659915593655082741128770365235005104048362602335304696728306378668705615755322863742941794164592688826510666439686878523790065750401336069751888222954207726459042936431046073595959860805474595359040777941301885187015635152222964412406957481402828360889777013389453471185524709183631541507592071782803802260959410272850343874913885939663798237025361129398385232539633498256559992044728664473671597872243759942983290308731965462769822719068382222590296725418245913634390789857928904790984741885920457147272305994555414912474612751181260121357680136580017163781547014131310637885616709007261010601446271103656319016021192293094942857992682423174673287223431274951209860627058755935866194754157135507454447473381614776304512683273048523509227417655628341362620201475929049576116500942083369662337441024183405120887998071716217627913318877104914808604134159615877877378677598639696414704381384458874549443317125528840484896533021941358978861347025852877622511205395092808713666502588425679050472352424306282438491160012389388996488950806298042203448419600574330431623459858163915533433161987916478584009423607434463025036989047240189932229291263938229786070025841553773615524444913345126795981515261178198923792271316595785008252305495479253162125601474066489913189397809004049986077664475998438676002971059218416424365461614396678606864795328559786865563085595383773859317346369155664468128467096142302810281347256620379955495382805073650031238738910873797290206381196347698631120049671053407367820299655942035866143928238118400391836924235675751507399181563367990756245981642685428247531246199653778594396303060284064915965398978592623371852078673008912908261892044239004420106842956793036823765991346455990258418978996516929158997383440865823550693885468603305025455878548537189557908588084460226202058974361269910464310752862532925095828881664411244058044947328255546163762717642095854485502485923661057157736735257895626493430644840304195344601879126029622021395763291706635028927682510126640226626306383842090952873566619148155221856997445402520874003468861726288737885378543271035447674372041085641730697311123798564647554991421750604347052377324533736971828595591857739754577487355708091606497723566568572015347648177955670500669929289863172966285120148556375551658672728944140473799664039016081870689340588998617847788830994064221855483867115802685035123081680193214731654255450779184947264489618468568620235600444660516976659955830255163438908870730408211177644686761463713302202615161173789345307116582993933752717216408611737182381700160494449737217024404077058524064931729805600537070202702762877632986883973114330811406024977234442857370593662078821842309780088031954436009654375970974501395380109416082387047020612003816670971864279236547145414432767688268509154472494331639696978426863043993989168725433947126268634233954421758084692220578804579253599351527312383807426409122487424699487771290940059412445557779048168532902316466293497189419802708601005072252713335704041049109213350251290127419538714825200344369817953160406478952193186229557799773616167112157053059772982492254388624912933565348903548840108746006940336183166424878428754728386734730263074210460955433238527106251810042629995111347534739960533984074087387034292055492091851635151399375295793481088870201619335552979245935699927851857829232375553615630309314663593770261914588123600465186955872034347034646436360821639410133583779034702249520082271857522139996862563303011531343950211598101178215251089578074967654779674531136300836439438261551687270638244276823876062519359674135836986267682374172273379131781245314646377390761927273542982301629149399059491895291752957520514167754290496781047839956068382207503911012875690234625270361161428789604946343888746917926190326168760717025379139616961812622782118864961677841293605620215153030907337625624599874705203902531565815666627317767256152111783471970922511815191105851450680796327720775037706647277113668319867681177340611133706923983989308442190927765299207252699101820339195731657954351886226377249064411975013273171747944928657607977390493202495416839538129889699463616302302748339688787901600620002860558549538492524132244399725564828070422109290068153635621609180510226356628407444639241914638925013456483293960919738868050508663980342994325486204695397174377145604816712324276169047661299428320089152064888952938607431863796780293444720726474687897682874431241678512490119800211793818297855563021035459347740060948834768206051824279682875465489544037112167988508223531185056571143386034417005416102129475232856801730657191957573573619314344736352707980093968824575107216517266862756323440997299707838999096234416802326918074671313688197520311226661644574325955156075189659585160639646651355243390957320397825476895284760285681677798846301770224843594448026917255864979262945165077006799888772766417393765948401654505728787074515423616505055610986818227217209303469861897289829143707033590523022433206089070419153961598095655821346354885892838293161840535060537543815056330408783885675737217973618839128473559208866943608868997628336298917554297138453439617828297183645436002149434283784803586723301210243441121440859679154524630746689569001257479793448638626628980404649109111925049478979283481699361320900402164727459844569881014767103549120221625032280831607730331383098689893237044895013595126217775431763508480107494752645825203028360405461315564740829618922611539510169356907610658691428714838877016493075738489338473228004719569992417704662870549720070093557516477586896790354461989398727491515721909993879670797118291175941264548695958836420868990622593621279058919389336147996065186880115013329022881786959607929883108569560534917873103277112442924907329125181668546777730684901011145841771059319750380557992461870177860271811087274928528169218765117237751349163004159139441171012948211621575926986695650675101671244372333866491452248447585546300718031813473903537055695384171080253478841380419567116081063548406635580142491290122856059206274513609405418554358638145161556988012959944482608252581789683247020219356699948017358304264204153771736697757076655664870105093183460160642238639683203314181706433957902410656474105731204559020048459293094684904035819863780666743073127222636621265233507172512707535751183272249850360503121451088091081873008108843090950775209617847923585189770655098090075926592036136142891919377080551868424894288857469230346272255298949727235739802864415045773403126723330416541740601427124814232065428996865255470248575793626472531327078118487040615680751791967911398726471020246091144829774411667996424835516965617607619976219576090416730898066004519239119129445829006689020484119034012487345677493766359753886442729747877532876795784994217628747165758460894507184871981522467678625157347875705274650894311331906258245575421671623487271489819440709465231085053262636864528834250855269355002130063446179900450928702537730757874091144378009729421314337999684743074191335886705569656889112542574792691579566126351887336824966066181343610411313424698872837907711461597263560399737663133752111699237052883659816341996912714632852902148949709786717932898812071760841856496850568158799825615793903348390755130583045059540609053512675444027646271773523066153187469857279030016681499795781983824001688626015622903815815290855452938266229644850249623098731778275609295638789499195494608548849190873898344542065440224222539164135525254957007305932218681920498015223445999901039329905074194284893887984446867948955624010383925730464382741563347669522838607175097026988272915042326320124754263724793532405475276064827556354427720592557383605437530269904613952628284188979700255562829556919974642951455491346052114942885100554912995777538288950505417094896900037969320531848686964346474633682141718355944321195763366660044286200005499550704810102328432751283476131532315023488935091497649172695977460025171378160904393271625834680821495918229468824137866841505151312913865906101818067105070410501053687888389779114849314580050568143487346913343753914735538954441427837129893020024856227512525222795378956026297796214629997384523493144734227237746106894993996451870554863391367447527010370462651920409444431552512953005611517531122623354709808666433673687652319060883945396568864590664446477160887831571116909475378718029058092204838857036770110742340691525617810106147705854117041555982985128821262338421023731538570581677799873622244845736959787288654713517151308067111295041730522557429757126572972924567669143410818981854253604712005903949644883389248478302349194779135255342204416910158975590954083659676108326593249815431032506145494202857356326794368693849289024974505128091905542222539395221793802081852231113078053867211069622544153641114870752658394587915349492112882332931973931008659295247301086416701784832983398376038079077764011755492227422047620282165216082197131352992746119099433569337928549307749646496611812778308808969749087909995133869641442107523469148797341715670279668315148243477285487799613007317406449632290613482023278106847505016856149320188839283827021983652634828681037830142112770068443941712071345521432529024105153932902785772267799856776849998602097940594119542701685122541172462044952160304897354648185224818273482607740679667370938434416474831222671374543522780956741751124921108720520036175716722924248513550431925950629383314935234852658053111356977969518856218746211490444479772122241779893938246885709283767832408712610331557047694231801256048428299064858549209424420729796204560579756065436964672416998922164452762719589420838867057448955758790322738322821347796067408719662908881811756366884316375078157009067613329369082606701671925467450860128118660433732938440144853775906761343891845621219165156988516582597825292180287707775291109212407496243090915257369757465736489084644818401629009062701951510108059422964088192682434544209020384917203178348610235753081294354661838562678536478256658224272884397699540888046017798084508677087385628205526956903506159865234049184575133103541118777750632003250515083422291809458220249212836856549519658293468401660484673726738860614245743911036706360007271515432636400387478420395911143236369653313650019950502303453535623539300067250381844473182131360880394952098134895916431712007520705914670753570760683493271077689717079181875975210607661855738520988398640634970656831447442785112669594524919809533557930759930062443242803959930252438040741446515625273936829872414958320286850849742425121739235497248718976960713813184477085819351609808874079056885220928462862769298196655749927922055122972257380876230738565414934504060668969572438712327648727228780652949808851612181947825423483376577978460737380949089466900376865665700459612207813889740550173031188484758354974926215997695989604687340220744687764494751551072413777038891170160847401308407472915410568643201467597176074467762317382930985312354447300389346210705278710405063298335784867347241543118445811793546177795757067961826595432788811173733108535843779933902893555329305201362878371684341967972678734443084037112644882557362727756172795589717547094463890357272977959425252457121746789916693639709852155171439810796270840429107215424550274862121642886075863159894467607752532052525052213148196323598354196794905067574230908435789453694611652453086428936350855506673930583367767383169779793211515282752369507952723414308801752239687276612178282109161588889422793633483899885561574074310140148434205426918506136098129457825684637784576526468155724817183695012969698862540145712363769815296104243026717770746848764876893551906603248371877244995138024468105954726673222664718898561751768719219721827716232610094586548326305114302060748952488219985982604562580614430560888850738908102751322233138190011784591414429275415816121023452939250301263503478861903813590225822490546578436721295811274349884668147966972271614648476348425845574316385264758936536336639249570430998732448463371463216043474411561587580488840456903847169826789303763618613922573893837900875719525421334584606595597593137869103869595092091258005384569910435942385548776409471926007261673223903182324870498898149850787193284264028227696350072631582391752730774721030569627698837867118534935016768786823064180724602267234074775420202513418960219282155720777559657564230785791179062584681067316022594059066403242181440698473834918512217076393984985113088889132243554308462273157109528657444363497298384869729473322366237761930977725123877075009038247448027173722375840976253324666664620858472985179092069336912022775774256008906404079328994711741632291563916625289833242298794219553716212226255648502346038789478123821882168015877162080462019258781918191096210841571442556686973002247054921603392683289364281095711856684493880623633615097980864941162184538357055085520900279301994492403265257112042332964385288932552282803619807923692584703667234605948956113882441317255029501690700082925299427928793068870489497931285956585264621042555913790666323425211605950187462629795408653121868947160930213838816298797112645097620357771064426257026091540075627506861990464118085542041467256154983881579338159995313826579243525336929621072890435538430117967692409282196829727849280699809299678646005051536849845055691585908590796094191691504956278240072986667927386744066900902050404790525604080697112203108020384726331673436563254156010832947826809762269709767822141227004647112366769777570887316907054747066666482906095286182153438906213321884912021691888616027606010443262022925377190322495225606444347947988842019949323936866907617238839972351650337013664369626728279088441694026113803579486265637169324567092541679154133496833368912713074105724652743019520189292474556728093067349992018810160281961686132348478943692557221126366125966136699042587142673645074948343110304702188556084156459178854101194523901385321477078595939980888194769740307963457313455243678517863473684930123204604293978830011644609359001574023487739969102228968550529554132326640413137885143099851008487154703599820389915942327815025169300380436879665578108608478740139655518262374516313920587905724972198265078556330202758478388762669725280681286294417227333180041816937642051401363753928028795434793851743392886013812411568541920179599672558541823746211060154813667233396256898890204632654160640529799398942912499385686840469975225572571004093045791119833022435585238958925432895424313986748053881563616525602458843230982105277851290439599769919336116150033725505387179160219039290317902976451948968976738842148347782746238538809894100459563026830454021209257231104165835786073769311732103001761220919555913994521223762963805362160749406728559000106037170614640775640180646025337270583682471976015888766409400991263780583329343824602724798743189191561114936351867460925048434812489266742103571761391773750242406944515807442685753409586674756870577421244223064775931965223070268616826115749787731914626720872327239736169194640499783027363957059965395654919391863075944526098606339123587503338952598128679357245828266298996684004246280890180619893266141708258788967706725166610884116769938492349822015080787317081620470068989093702086846920982995574136893367597513112249433998114395610676005997209224619686253619971022725126207224426947258481756727448750641443258245604921524681724428407609243399763010526044507894697734609792820501829846811856031730539172573357079094531810406980828835844971290216948522247444938726195373499830582748776544565723439686709003790914892367873827296921157088457499391687836920404257750321849162698885042394173558471265472885969816796839279340219069903124193622680226509483519718879835618496836214727236102520117742372365089063308067467882136469986694978084157406507036693871222153782818550764912335942801720755481169389502396005202130513496435366698540275130436552771491362248981174781003116455580528607711476300098232586200635550658665519230740979869759453015743278695384197196557076280118661742464710401253721941745714590076088668751846064618866399935975067275013881317147040815932551867051488630385800670179700370119901660938990810160669588704328488553151734782877808753478394921177210260953257724883412097240935376316884624858202572868149641636621559827889111327729563199208074865454625827007857769379917038491973137582074401010455538668969440721221858075772055916543951322643152206650912260858645710353076900137016191743851973501984833597620515370132333876201655290203432832797571846402655975073633840727360955709840807786403721383789307768412790473299466426210611777002993317596719182897479313234602461333934886064774406597388513513180615021680604591847459553950150713924670920610661094268097491819714536517407464973379159769160684649623876971189848206729452487473049399455653439348751109175328207387900850243701668099828343929656972939745136517150131960879100391456241396548893582856838211347662574187182781759405000003348039442104621972191822092409484234727932013050014924075785895815115132203919674846025693266510167329961117569374585974075050037858183540652775827576333140825878329392681758070034884259171200824575638275806866694155920722939085551555733144123585864669989130154911491620737472985821909857411046105374345686115686052217383723754597477142895107299369498273323836411939994859501897100295435604034528725012926483376345291622997681613620703826723151088473306278511229155961498076748956695281599164212541575213079165893902181046628681315961510741173146452385699022869813957867504309129310036301393882116310701969660464902237984316711509804403648624633859111390512680894089000695773402746834866080033442702953664682449050281124663839878729142209361282889323136231571204474122170425440679934624658788211353494000175266929901189501495228530286902549131304250124850251536996186404628178484315512902464596670258865707182939050652048503132979896952602485799936417511419974378018196712086982508651208911912769590295071030382097131250669639451998431763795595919667218191461346680232158681592185639100559017572228043930736037417210402969618487235792444114538138765999249322605130335874469786797481354350504521834932115687909459196773166281493171385087912508698436143492613643104926192311980085389994631689750620693095239571793803878948723626557053257541960499112309666194392565768836994126785595174431075611005865778180609962169260687825987125107146693823074258984566570483073727875007671510958047145012044311143708365695988118292352477799613304572881265638851620980744115491618377492479440116975621257543226239736159756785311890883716889446384795037982712377671016844163502395911616544842727231342356080480189486902317561627521126903517525023540379389699482880663710737319647762350127336268017493274746224853284927473728018468195345537637395214361737971329554162072543014235109394244264546799195845903510344995855057904469692167188679287550921582456337452074722819188186471136141904731998217732476480492304799599992272071558536062087085038216601555451671270248244675524186369837628835963770520320079918420324415795342217081592289169717824752743925296865976407334607087208234363074624483197412938182418622924747014720980687038680473599729083708415315158139121046917238679088835602337810644455454140973758378141581438587714204367815921218028266408014639991954322568456446279764307000063949093919636994810482613332832013204828506356756653771706943809019042652860959355546507251556213211741395425260690011943410921258346890131964095576478556333050184523840172737496621298240186061017031056233975623802740703024697200777247198269577744455460740870091818525678026180397836401534977806235293769139447158654090427290503432616760254314250028285434464577174674702507606289566300250825089386952965647560447277383347926588452309629168019642286266076099738474309844568094197997121189367922206996443134183400606187748557227195201295501269690185092011980396378445839503956972575615684408814506177003584160225788752534550770474761608864740487852150195440477335492909055501013802881299094229551469117113369953671276735477121657496102781624784515303291282398382521011542746426572411451587633851273497674510946358641165779111126574849909998216612885436218899535795629467664441219005488688260357697202643219985497682513239443052663049677883645426914725210204489585336615041531180891340819075843910903760752485786193034641060453413187249106186929576518036365223991829992713443087003267619626571899878291780414306583059045684354093951070290651152292588598614639950787290219991303349560524952430783456633857752520675878333436930022612702383826279907677850754245380097617208941864525824781928605113954735336298994719708192374793103475998928278607624107868015887792348731340188970969213304802425192895010252046321787643309751715276227368555834987719045813215385773398814798587479571363055699941531113826107391159364003991119025158850105023392146084020101932088979970326543947252498977041026889064339872375616143611397075758658838757163878710186611841208758370481762672657962836513352568928751563270650839381315561271133158453734054092916209344118224137366922856190471152174727189240725008090402624280204399757328481479574981907418456657750985406436627961778627457058902292292889814611652526610610616696663062092403571561287015088159458036045899092392944118572416471189944518479882492429970892238506158142645219625594722575127901580476572679423579274605615657646920436642241825990033936716768295482376506212635564105021123009213709701954707145323550713320604039638193470378170526405180075100551926593062089333736801819129334334582100189900722207575241786682072547587633698138420800681337236737910140318601051302276525946613430062115726711400934672386257161048932093767379879157941802098285062890224392270149821092120537562687541879811924955678385719648736631398372060192173268898597817587725890977150924516290946949790265298474359800469977399755910445223830860447023177162398308805739650901188887973921936052861684823953075128116967626562957216861118867579619751501745582580779505400674399960418733816936937284000548853782623500383965261552982967831180389233401735261635672782204258838678434156818550145656968270392286692686914616657032397068948010741914394182523721250587101742423935874204507172546893767104973103580244067230574064729635185404482924417279311346382283839557123626282560450949117429791421300974108310109646894137566449524991290662736447070803678292682855347510940203195409945125950285202854890350266638172033603612107985881723908523028804632664615849105406457834450204750322215352210648981394749972405505607580214276122881643609608209866970572671869360096302012140139861482420955491769722908088698306928969247425052610753815568386211823705813278032682284206753137827395694059795814705191321156055610151601588969832238729607043861351961439936942754641206847778671495923495947054935555757932865175987712306426418258737687080769333520232048311964140860992335958259478095300837188834459799241807441765548560002426418211511391837546397892316254209959541977952435632025864973012391248528093897132835834781326955852838205727851902001068079103113063465736287100571225711115143935570441569015230458528978133711170222108902741531722832373917728867939544786848277449898463400147403583612875043649007038401247367550295750109110479914333668940487929669890390826505347236652182706905872161851348038157009188619527432729199804039666397358684551210789862734559723318219417458448551775449958635697461855204047135740989318801896865459014380228823133715976029185929606384569917787396936889598636384912745790152727160727329733276614854108903518007554336917765085175600742973724195150423345742383823710407056855725576237774768542998118885554751340179164204028340761705538856856004827965237735917692246773622052923646857705367764119644413483057867919973159821315214738546905896907599219620150571341337071207064543679133726069777908152054331250765537382561841480566055204745978038085350608981554200278013072206589157529543334838572912162602185345345579144837315112216041917792307401228236342497567702660382386444356599693712040273779199897521854331877381594026567126357774146738471686659857163537927940245295458557827628089776194210342202498307263613701763706781790949115744819444122591689568260237102412077732091135152171902619145946546674283010219085460316020621517020246829923389161041280844829353344831399486192792737954850861365939724288787300751924725460217206296849864477149507123966192868969108164442170658180937944065060599626336671429062119030282856638338697102589494690081814098821692579784512782579572638229480967590548343279399259841835698716551812756313784633061216579963267628326948987939406237652606617344524431787312397386236242188027295114516806865230462866976253758081780345487779535385986526616542788000015486791887810352393100020783789461474521786920463461130527721772504926867310403668053953104151351761265803364523041382224099803805009671363494219162899859141534277749583185373239656793704418247842875981334225693941386957002488153911542756779780800139647644359414700092335868886727079509957663756257447328268520089917439245968764890718630878542191140860904149027752404796489818240504483047981504109162427701908281507088022368046130947386013486058660756849552030317440943134326749529440680360682465670151519090518100952767672965994732749242058318331937460989889259475027136824310653853217649378308345173273458060342164640812767432427892217062041867977259061566669374704836900437382267891671075502426470469635180300684898789709853532274683732754850015505047044802443944992195937724223380327129334788404935768122091781604713101896305922031941393997561189210002495452769317351526873354227521372886711571700515625748991549102307185318119665981874886574818087154569045418666424475727291523498955837588515492742964489097021193494691746349114035228584400258488566377027223201693684150362653247127341640511494426845205525520688058719176771589552466831944543296753453396808235149236683941469241439342210732917220747647846885638560101889255539351370439044112236154968057892390813445134607880176471664683615169414162949299656455216023626228064034598761535865980321996193527334463038173626336879092516596996530964223299496540963207220245480588030107647816982392877527669388533729606454781061867686252197861851390291185249240313312924189303105843072145320449903643389933470942941284539796839476600432384516589315617993715270370065592524044717759562182323650574768449072500546204250571158641815467370936665230635487766196087364640656182784683101202161888561859782685814784863223829561977737756917872090445059895383307762224393152333928205546254031577288241154002789043667828968043380069399909938464400732976709320664153464930305410983601570913847307116058012441917449365047338740869209806295984185132061618197657362293471971695337455250756357898225847642690514771502728563725805120773296747332318249345018984821016382476588198826770980071335803636285089707261773927177354178758269111243121245722846198376034520780882102639179937904268817673962966786841962873127234558799991052919729576238176524388019484315160759757203970190082244291892767859602039882515819309750190609627654060357516929989230064376899044481802304720024558270662162478372524833208480626207752817491612719970253689754475181887877738217962212099903923073962793232646320714643648450630137746334074673815131232937802314744677701975902101206590502916633668318278380762250972506037728359094995268228765768213961650201711346394419523123373011900211655538161698322998821024080605817137136693889288170583451185260399264211840088092020966683466689190027580890648797377874551213960879361682945638846048926380892434983633485795272213127832730293739798800311834621330162816439076902453304344326248359737631918286965669419864902231650244762284835864738508509915821259410697605276306899091618365416891659228410708499185696259805474817619335532691537321290752285911335756291012586430515060677535582953416960038982796020589080519737779061367806849782607471371695135146291295908352630263992164870772279984699071326582967035415960655953521550641558387979646002663518869899185447691833745622861405912388746289314233732843445461360327472957841754209665381025639082905307524294674149811180684444704113217434962520727253861589233834265332119436297821355870934345075973033179974750595831763118113971051988084342203069516987280851184628741405950326305748051701059614229555046367584475901017350641403320612203147412972393225770870222669490654446627825378982563522955044117631536937830132865084647940432307260796646477993043114896216876347238626211912274911322435966620209815115072662950504354987446591405367775503193715193573412897302251972753837112229305542326770051953934055969836442453253692774116919748402321362696204713429792514351069795307631551074482170633421215696067911470102550335029387539192371012804285645566291694415751917615657494069077477515104605227809734327193523476187687272289527469779914058057932011330328138068523801283736258888108476423116796167870781037475163528800637739044986364376202458849624597426421754858994804286448463976053259774965122786617128154627811532009498062253372751460714282409627376609085255276454577549744121356108038404077428031605614520040796352481446785349535552012729594391025680425109023567346940447106793634699634259221639536862644120632853769375441088665824982532761137902789712620477823095302758834184521243499057325679374877405980230640072304672384491519101570158185155667304187570539883399422797876949951861188031601183975906910604720418677253647110171736489287432124420419593181980926108724615336273904869633856943859767756306436321101788472445614995563735298208339157175517730283063275843891763769664044693094572070864496553198847695020741441447977971740306572110149269289262702202164432030908571529670852573891625234412889153604059630769886479141155125187186355674832729552430135375594102580063888931369507933753351645941906477893833699802876927343595314651992624138247715258487348864469986791406827915705675376490399003483818282503144247701368000786124318081418532858480858140863054494929623571987359294577958403240852280587193683638023709739809082362232928061279549707665703240497279250183909188599217886164722916302957200660893645706014338055255139220340787501096932392045884732221835367381968137531109655073377454767842260301988675116009295296417508685147396248554935903294542546838325642831568486113604607926927655006707955987155978546544353157682825024952442458034869334884820194940280800987979367125931928571741996522524876955681110580138967678160814047326453396578778270149124614425262541296735125361512032329700131172717074345914957438407301259385838623166537148742245139839418255146007249834165206858350282088992485404184483679807897133166952863303240207448572728435832756159618733366422371583160163937293528502571296377340355157199264229368967541264679725679222057291136556204447137832339188660887380752379495883663284081286893331895107581603005704061463530689070234110759172980510343650852115589787753855966790614125836624592815997894408460474277629106986087850218189320110974103378474771910466442971047894398326174190922562000141041705267077602083062832493547617729815174641178449839062699598570206870486901635714526457023612705331341781753486950615212935509821402470280963035580699896796436960370598507996812084793783341478507882647407405543592993771861940165422000908094374565511542538627389069147257059495860974141497662867983531066389451490186697064582997431808133665883777561595139750812855025869330656863314910744472310192767220645912332110832806739193091256543630625037216724910745153726252009632015262375156980397545387837497315051848585650303408326713729386341984730054068480225306131155135189191983927765575842456767183470887492306370471095428387716125945976841453725700056420110652100287231133572857931673264665598705556783773910978951027315224429915174483800881835144295687223474102067086914442683306859361093494605576337971992005291929996987101755822898193437789980172882189359625066473952056215355463425575143750256427775386736520079044139260522034274261386125328486709120990363342305585195285183716075558149497444676411099503049436414034515003991441515902723127535075963685926717049333849885717100191381649183590756543509275945348189997276737594548913645290202937518329410120930243586016507833363424509314216635094518492668818457466468605800847712970412375275795713343543440131311048154692792702694265041163188940386768749946812503834365019456259299801208800028799781982166997122398092694681281432013057064583648277625285116886130841440237073402779613898508078528496469102210359729859581929318992673749036229217010206361982604913495615120104061674398303636264225625411456815329064106858148471592866328387363430177158043603363273815126746954903172788365800917902890246415023336117719393621852172527739459690666737260490235879239403184177331610110324932182478268517922136062739605971790110014152128843294820847753865448817597007680889880412510672174065530973155730295224105568537231353166890619943082089098295684778027623138684381992448843936653588387470645902605912625119410797288794334162158771045783159577046049781252546201119222843649844313955962233396064988066724887363067183006212344628660015920712742312576573164422192281249751627068308089389779811602376872732647390246311729844036543609192533469092969576033727699259247128552938063109869996780950267752049753436438266339396493966167310208919161331878941271266494299169908350513277180604805448032537726811508058603675137384991129318400009110735845483161345549982743063105041967434261727268844744942758833040793833636521596629198827882215169588651312609174056185945557449419742292287663468838356284180150489281333555303085573854603695978469133491322234157051221625658720515984376637548967497014914500422550785471922331298774684370348226334199524629575555265188887399492395891377953046701406567151785042866565388870098791988782700049855054387263436000599029481831232211230840468676861937029610484203991188207880032634817109114401368945120066152050321221861008506661002821914768000299894428052437418383446626670464087379720061605455341206561527349644120219907547913880207244759257452383223625334457863842494947044618005081009268082515271663926000905302053175820937433411003329407496149422212201092858909999145801200159579175366294149659221903016253999108001489744962414816685985443131188314719984435509498138141320370724385293474471353661953090581675188107295930564552616983625272995486375129079356404330115566610194668485173561961455041182785970113949757091222330577221939970310071922100347319095010226694821882836618360983552778088493323555823969845742891574217645574273374443501289433201857198136175356305107393839565713597167683346553912758238450947800121469775041147466662409547185195014377552987225283102671489331805831149861717158931733051117392234635617483987312532882774091567194885822577709835760274909221136664584421434164686046109457534815176186457880972378820211288355117406208184623690264823073678462496585819727317735740813257595563607031446854179037956243967732818230960498772257098541874641610324759930559580646099017873860415829543908000771338777027355572970644959028548519370819510253692320120956379197308899966463585440730957479775350890077292429988029642509408283683210228298067376110161269670791851072932899071146612645535141484199482730991624976341916638865561305395968609138230630179582559886428417760168861420392968463587466298966269216434120981104764943591266815263795852527944202981628723894637294958474508464983660400118338058796538186838999171560206339995253772807800291587013776076574947235932205056493958971319303191000885593712850127894366616517518034016495689195394890591920531194412912378065959780417261526815638414419698630361219333550910089642921224532087981461610401581535250686398289416334486421031576873019527634348730959666639902953126919723979755592811430024498357338059495329852765293514259384059280174408478496157788874668006366671762900618945309947014519366655395575169975410329605364018377654287077311121009833763665004250396068141639887111074578716514918469831718488323836722395529983448523993044319893583844422885224511186884117236913169087473006399732013803070233299300968451391679994238578056431183029055693814909604215183015311464098234859288147886302006755141640187847546781529195423141799583973758502228787324107700910183424630999344132630792670301596200319043825545029298412742136833033084578822150691439957746261271171175261865216002617135538070405270430221953870466053227152747436139240379196196264738568383668598564547480250448363988272117878423172472664928530604322032476922067245738538265844826575321674536751842984518688574326375385503053329736959829904806753779856565533835796015032499551660213966835123903310074966092569869922313360667610302221127984886344421218208887277380322930060209690416868490386041366438437329540519134258553165249105706317071560863562533762307243952213742391404344708138867744635110660497417171038392100564780712778642976293472410549576684268122347409755172205725315600110417763232209376757379212573087008420158701746469589377163314048492273941853874224562301792725921390503880440690045275805896972897704635119899953499984584618917249317389745046446110027707686937607507183811504924235201058151420146706493200589936942187864649626594588625838461057584552642657570049909919966229524046309637602946410228964837234613730611126808843061474465038955067420843711171824171503950086650847904760441416428191509809768624849986033694609199296931184496221657183747447432816463280343998891931310299654015883066335077034773102672471635829156524070221088875865660690480048227157216257888370256596151989863011406947429066653817632390119321747997242862741893048357715430748908503109911509952472955624581417258371570909175880201376798124550919098408900905624072870140494056264874714807275541445335726438822272257197394636325152501062410231650150129812851763206513372453809784131094158265773045802692459836352810284115131808215645353364612193111539334912338701895241668500889569443445045901478061826281312767160587138921351323268562133712991291146294751761510259029714380793277187507044314053186339279779982758427600385455347023694829484992949972044715843806337586016534099868228809186127622253512113407604884873521553241413477106818335415854771230455411354328113251110870202363789920418111781397854368630843286595194087093914017724330955444891480719204349307511766682322699353336192544817190146251911705798764467723764744208541513948286662672666987250045979987315812864296053891020279754139894084819558685037464353981791636704438416556642477805983012952197875454261925066260406254530893461091966133768554407169395211632118065961144608342379813188170366643311074498033955977668322304672003836544618831625540983382933078208973914103801663876593158030394804018810909944348803947417320113492023683589517526568561810999014283029742841946708486697331325147042567112008600137657028501788360379394866529757820394191243928065241072500147071856798307168043420090742745207022884970502928121633531614726050709973913739366537987102789811428342864915306236494731904904852905867180079262984410111295769962582437914308807794692547501860833727943785741179896388268061116969908645993266824251594270493288644118015924165893945599698310159152123387923089218149141005337126214923667976852128819464567624095514723239694386686845245697308605673196976018719366916616250815496259287708137973830843014092043640810663705723259844202947826600605824549900383262675899671689697040013556058155743149904299398134711848843510719397150500053739049667654548476913423952866623979425189184110374142513065852806542255980091991523879031710816113689330224642975892455596180937004558933286757466311459760147752074975674595555330017231633087861866047289886332617895088011376898655102973552731980964890681448550074937258884921363100548827126667764195425850658529224364256580919826862544869234603831980385012058111164091776143539411864226747459822672075934397968363728528149651926205320741114112842743209128388603632991727629709667489041175469067063431053982717058584488077619482867380765941470930572266292179538850367008601188304269684751649466428241511056529892954908898574424994955527816304553584797665460936454346187672077878220938523038392798724063887298263066981764776324455189173211762208822044678157007373242954858062191370464478270765490129400031484546931431389459693177239431951683770471536736219967071632871891524123901235610337500705330039085010533997358201244652845395792455247921657760599930595885743377799513730943513294722918167520456256879837856821555905504146173737611724051298976556891109953281600718324718891868311349424502099134445998140935417699953525493135300478266398852869925678247115632534318474524059714998587806535750334411876526694226698477005529899592880530817070563772070173570871954704023491312737592763040400051510312027908864675347022169036213082416096998036587983085437424709662729991891698952787383778130976090385156920539993060057378164068130945171770645023546008554155510342565848140340290528014793001765480763916465278401416578294725336087946731734010950630673441884905194610719090306616580800232028000931350312498062888388723186339911475191096039050375324784268039635385709848217482319835835401316893206213696060555150024332068612691290299004129470727755410437797934432741538279941082798410152188636046678292311969264623675154303789122401414125989483884122079720572468010881013480159480017505205672484714924672909345961730782782125351006522645140757317286102674592932186462387155277117432576496664183316416268890967931951436544117385213334823807783183175357540031486575650812214227662756957463439858870423519476273341603373021836160106849341332682150075689064758098269246228463520979070209402348350393810264923955587793833301994064656390316245897752876181007555048762341306674793769552592400075608279321678546454033344663003291635024473252099687379124181757761689760240017363106774295721576630029085145103811991038772232610579282950270161886189847901478597469913020025558693728356393653620094081156238791736146555803409739514448195664388262628958036745602089980863994209039228882193653659532134772829758707400136910922357177738957513381933555078936193019804082233048286110934863230660078152116042083790865067444623440352725349829179780088709168240467018406764696074397568249564718222707571395365148122885338321050673683426052178127448436985008034216848253239084401082714235757822530910906930039637399060451541815533287093270078188068535601074083228689945856405963629988958175720476939919192622273528584706060717033820704935610844302414724227023253296388048721981467583325721439682320932839678646228811495945186123359582124210579066226774812167937755398548347990162309279583035235383602675026656104731830826132632610201303441523855858097584239724641692252854437870762738000863286607902095365088781390290454467691786588207768550180933525282685108328640841554230099872618116310259177812445601395682027329044590645796965705509303601548167961438357751953821527604134312176994302575155417137251053621832387066298842669014195715582626721874761673517343040427458333273936802365457337999846961466689796610156738831913557676482662875507535797275941757818724034650430213708635649530013717594218214080921263986580158924449825045557220205952251131731648546994038623839959318143487151213178269607275338186186294401825708949882082633809859622492722784556745626345855860102560022212133556687033788217519514885073080804579775171279169529803211389642783199909478334617299717685171646676296730608062594547017602413634186641543304488848351783273617297511589903956898963967472114433072236698967646154428673899430043321189892638476479747329049961967921270351247049674620273071810143405360323191864036263299604028693197505473041670502662279822847982637487643784555898562822188735886636448275978289400080824244267889362591397287751914576808038274336592110382160309195330029174397674847567611551630631834906013346138336377796440730514009024741980154792744615088165104311017255271630045536755266333529070515202117130170225469071791541838865314158212457413850145046152913304733426039231639090770089560192069712771230590981514306343204186862239799322008843035023717293958788841402918135990545680075989689990834866615735667142098210980575829463056274079329383288169880864712829998352931051891317016338279541740470658914756581675316614155410999831350146959663698951175810180856852624349841075718985652085952970840857764782902122589577684037045802398764089506355100108350786221623894239310915996631522025348166785064448256562231162535392770010632698267152875171818170813042682108029694858822894786806286159122677996882164370894277467272559163745189815582556456491020497175695741065963335078417460817002608888337269326179408691217124067399211819046496327004772201300347493723780422161747960201680136987476551418087118377999204956302365123205565730826906581085475355973786760668545487621679253096525566531149368106147847668494316532783987109672780826174481959813884659644032840041310344252425196183562783577982451315507840196476809781823246038569936907780154348614120822486595328432192510393277810110706115134978761225470730775423630253040795573187081092824244759471680479041166999829575300753792834154197917555256366051155873629487042613641024461354281091435891919920070228937218314127485986196807617946378455746604558862736517786542683194686851443648653961704245992205841450979173674046908905400037486655811127015937316763481923782054627174629680353584930211145041554571690338142468776451708610826293499688925313645074036646669968023352927739145395232348463312245782739356743702056073125614026431569443266731504292530868313651629972395017580066880431547513570825494603044470559915064284272686230115864661902730341057184855547030426162967781136532510418228002288955868125865712904633288780677895888678256451666866697136259954060513824206459731707085921921916005935298604886168068525876108087232914772646524319137681056263739125218968787554774184133406450961825017218521310785119556760902437249260229907771520358719392790170798613244463883436873558910961504837764583451657824463960782112215959361995837231545424063202465857856713714096136896319331334882197010124406746289000333210163465687551650822914181572239720992037552724263302871565958639805520062530656584186219944105354578060670269854169573666533419838209502581406556262917574279223919830077961200401578263089225473688685502860366304928575520537840391173578815828118441434431965188413351181700747196382192324913664483379735291743030983898830926489387114043976887949406680894411476870538690915444944093869133503939318680977108011961979317401946717137783650383453247398048590045879083666187437904724268497773762852324150161243460819869939642092106618554278761957863332355411666182980400447461569548850336177876675575406077832083870597275022643549071029189204569474579421177854420650492129581173055216226081061444728381591614353873014329137872672370556423303766012761114774821933654250599510850297986568509788096427777590776389649731932338331238311777003143938091384649975151955603081972070417302246041970463748138447816271640360402409542788821469155583256857492226785003610703434899037249372121667073934714874409279156453518871866590230224959776582804465008459178645409783827629262355390850398529339603590055529046016475335846202097471678981246543202338580893596960333716900885527877948553655850274666503564630152843665281252430606850002979937693120202451333456934683142489096605889821566820915022622221383913156346332141188557162373685956870330702030523762259069492072490174241844306982350386460012282520517838840695126070598576672273138522473311184674167184518926073982191876770335745384157664886356312840108820983163433121525172259979487912746682931357788504940892221808733787177741543769790762855721672744942257371503625767304781587725890404179773391409089024967600012802669468259167291798599924897639118304569388936224870139375778226499118301665251150782001228492799656277904678422744885497902992846927583312175984080209339429217615145506037120899245348947005537380251421584322390756331316690073773298008163333983605108297386550018455029537514117636760698291592673774411779608060582164394798348515972915315427947727484423816541906486297856197292188874377705438499898209193460758785246160056319178823505864265857118435154421848177190291871732798137091342415044347834866420695494037560638675687290232251094255180175756493546764530480273865109323288997412468782247596576959921744918684548335763593368300802020213030771060405177352007227988202508305633942326502260342405429008511203237345047615460266318569876821037282886636161121846907699827139599732401070938877657242213609447462000902197748986719084985767241486950613268809579761235984630100036109261093330309652592662074965607709684675267737866066687189855662468293839128970222096163870699765360702787285328696574934674318327764055093382906016918008903423507890440912455842852944182697499046324267146722135606373001086323038434886598609253384618456575739987127233739114262532674205002726655532651354438384596772705451189537492823923301318464896126584241794455155252042454276751284886353483263785693034169276076794743964659612296150708713087596884818204778127416461303645868304692661433753741947527513260954516939541005300373929344895163555556976848187216545743647525883922418002709093438340396431661199804992548733100221582490409046687856828686319437802333593608017471364732312554223997582743301556639596604279288928486507771173907418105710954564301151294085647960904447833752811674765203205409987157325589025256487696000140747576542054255011354496172370281468180861304198423802819152642679659516297426580391260237678159534074851948040690908313671032590288729050231317877738930555524583200927829270044892611726455606765525223579582808318709791244829895288306595855680552388254645322237433501002850817090166472440835695589397654457472016976825841478934095107156091395166156485634803529280169162009858139814971587934612849205566818643308020446352468037602650297959494871646223007194884663718931349611377024372263502171504919309463722039506415897864857274960834577434597405127839771953513504249135225411807328428090638143133668475498660493355667645331670139187628762070682260124386151008022316085211933142588769396401512249806372010588818628270681232667983002245284344234489345375815270026681718868894306635023096961519899129899182832036333093898304668858503728854459190156129442917064918343231712235520143677655979602705120433179649454530773912317381438006424887237361483134797099599637003039366879347787573029684482265158749939462933836266913429760606646193105840501781710189120248074965341680869528755447910383340021561691304375230270212492744883467366511325176682874648133442594112769034275773032063833772715657592176905425773087145769097165103264237321410327019092684279989611648148441818791541814828175854101519606630424521396577602157269621224653013356867799871155095085513069196400560801240299438668772344029465445172946781620535907916452664692710898496188688530973279707261516773437590982844289594196827282303490543131310187448376076431546914216698664085065699859708205356204154933420392692978147393551259222590322305533058806990963847239814887911940883284127007739768984583515272391672064038501648398865509106892646497194830797843994399767505646131678261526832798024611395979590372614471444816727625997746979327429632332243736215596491550815674024874689443205687636205754622105469262201528600737171007449305031048864337104470483767061346716942251838060908895626239799756505120676717823983933863782335632020631220199879814414482158630016412303687511229301267624747065133280638022271621732013720620529554299905615853157729094997500023368023324334274775764200967561726346311934839709474618291101317737037064874690760615868142331179995828466512234059814837873607539216452055000577612226388810566340609183913540241080057922646118418357043453596046641259597181905611106234442446056772103235856669302005840395821501386442234837255915856126177275585004058551486302734531051816240163091412636348910395833737232204573983270374475984747707447840416336549654860313536170628507719631017381279033547351432492150885552082750207522867398304341417209358007036728809224150431989507084572376175264011545892037157007477214731908854582110116269299447424153609819905863290550443843177339391596172698608296991216887571013218667779555241134090830814164361161494312327554106527041265782669898267900847774651689317919063217959140363761038556656772809093942295039057656078430139781000551833608429918959405278759905982262540472059390516946775941415701745341990097279067967320295017246558478455263302161608409461679733579854834108661347051003447244062075377445521988182067297951732392610852704839658357657105176725841991480933103831838964716029378189399948278960119957711358744542406816803787105927845701529222464798723036808131601830738043242340586675441228967628941756213138745345211541411599300996115753601111963884365004538784635011400037908337021517717614747607423386321953414264945334906857159774634289468228713284878077505181599803479375343700673609090163071934055128239910622991191445091066085977138945364937642513583921278282219594919838221090636835349508966466537561608765519926265335512801057083092034434172450618437824349961442040930434751855407340233669100397094713878732178689510794543755264251270479826402339148369637929644920796005614329177717311047874561577124187721147277780154608583466672970942761109074789897584413302406718931593941695083146415168052298925111123621803449174158251097854313649401788362663363845180031133966728916098046549096227381986510601346510377203541508510560180734543133434869979850446709089192377753367192036272440956224389652190707733349555964907375553588960682986007839156879908142545542987106245146059575781373490566018710466667693016831021909222070421158717837856039924632833124953902049331338616046048067712815300147221582738825274470490849713076197979099617098042785857361495167213149583143298088540097968281285098365380862792838623264301584266250923463910222005890580217842199205954757376847658779533258064778407237693838017461428877839937697188327028610752668461152991052332103061088366517994741907729455066932970846744957017203301098373242164095392149568054339263870107567273861009364041428901943457746178972571045916934964433097444650366629944054270644000591098036628096627177337230840498672367184017283338615102211887580299115558786035395778337421496262621513392028347422697915313261311966729445602585024870548342111381619363526285387838233873241876984838272031216708274015096873403238308621383304795170507670394928569677508340382985639562239122710447221801638392399806796173961421729685404762665758937114224850293546192531147870354660539713580847154902203157885480879944267832998432939965643673812125098393101201993223473827563982107862414071579148469618270239920112485024435438785730383908468938753148218521981522209124043563433136256709754664319360116212384929134205754205327875774725934777036266788015141475224298329881666951163724119816879148166182421851836260780792034055649337068226778434522701624328451441465801114735595130867646119664768724515455553166371376196480988159107802685048183352439211791082005136083155042354929899361383088728598759855371576334262219446550140631977292772325481962875065674156238907795418700607800239538428390222678307025982626169065290796522965874220281938630713141229945532538929006299102323045833928817601413495510109225132569590374808676514676304602134685272297431761286505557849905141068565498485760349705582781784607609414241864896995477158953367009098654654035123632577847644903382631558775019873630258736789757900418411269412233742851470201349784083579224048451515022069246732812115625919592577978660601550432305562733740336518988573036314743529451131935709539693332916470694828719999098302028538870655732967652993418837723715671792133666213687749443530655362365594396357252335240543188951474266552064747162568987301595763663769183459114971240190923089200726186489099165771444595694552711070579277109899966928708583245520018512531358356526429532764537646611173439572751689031743014785635149503174618343828755838252202155514606555837458366572593447119776429591940338601680920743482473367979208352489596326724114527641007941521431930611014875966067709603772734504160882658970665341676860710139547229831580498034957379846879637273153451092158386990313736461838895053721632624663061684307835118744595077737958021614706097567589688402394323926488257934814808158489118777058374594059733750762774212731739057734682860110931530123431395500846554995286862668240964031580646649535154951031522960400427375797169711381560238663565078932225088066644711859664740718441054144543942839764764198980848065185113166955050138970683352720204118592771026132224988720144360141679255999137050997262440054620527190232867086799291077405307458111812028376076333771097657902993991459799744350482444329888436925573308297562813648595642486291059195131285042690246289832096619001193386079054917441863542645895303098574485122505711247774235856983763258787797685268342260806299415026040399313421603643365237621633886584538982860196068635173098117008493681953752598559999251324579052660269169135294130078199244211500285508551131140769962729567675918794904359326861394634818764301529101644789760855517520985766308527308403748022461993486875653755718544399384699742991906716742249248562534222057061827628278645811241784622248388354523511982358857815552890643577452850391743542589426877640562106568476931670236748416318384695887254739902602560454027015025095335283063635995013113209329733642707512666634034306565827602993038998426964220353767831600627290527752168147359209237698526122892180618268669881767958853312218594385151600036886359888028386048632383593383804161999647658965722735068186657564803507906130668214017739748823045192489649813683826698709563587062307610428822043025267202689397557414927772567920231834525267618147723729677953537575165174540166460539398820932928901078663371784332934430066971656991681517455968552420266480147060377055713894816016353630411106340136590842745165460341345041689408738272132311112853162552414050960979383643963319593157612051660571919800167934668145430582086167356671691760222606486685570093535053642516627046719008081551897922781412501402067869192526231599683679217498703111156705871451510972784392876725888581442832705569780518071656812300069636055930901041533262357421572080149758698272203381173281642661028136194947042776182955527806274345725768156003337772391151377326630122879108595332563607628114478459846785264652901884298825915576334933156741974145924515776501245824899774545573264022817304031875514493075410234994335566930151523632507003676146675219511103760450933426943786057830287891967648001067144738661521125705625056517234795506522806267028411405086086034431323569698293086625669297098896980499508128536257124551729065468734440779138277228486368853259611667397239281810899514501285463615720845152080229041662825013671874647857715017228083939975914928462351043131732151102555980269349949138769832429445857150417403069194985850534113364331406445320767158958626243872514340942011586284516277108716273144949697336723202564898676050180280159515102971248958929434880449633716893898970887823872022649943531972939091437126182244099254972141327592551265606945786466277365830798406281930043739867588311602882218586661139846026116350319133122580664929558539259452387537912780563779860027858079887319921490291712846404690155546449311908883622798993751083372691121598709183484496085117471849041524966411035766398654273011643205120907026968416645441417733224934381995748439502908755857013282479954043600718334589505180261691105825519615810417021817757670462948345155564140577158312103556750917621460436237648644487905184556896814586267465010855295548404898105391743212975899960191891943893778062998080295776550387370722423447836839764342101605061165381693733155364911273667364340171057683946196342195010624192893366421122477014149944945612036577329608199514986102628450672300503424597408627537700635338221952953835097252738397939818405827781197866297455923987792380176988306150869511754685527978125405951003760917879855130917533246693457318822902095565014716328128798603893836348990642264023515587428856248359575669266745479693966697795722620014532770145383987128820198477950739259050721973751899041769821715284912812086805358357164410560986946648842896835496085875013798991428215736982340470259239695286038409086721128107812158582409923145174129239295492491009959262889428268020384938715370169085837554654414781125206211562326664948074446042488850946859571632461716231099217192400474083748893779907741981140780139135986127016466085446096132616552243092077554025763365160951861083131655691515982506411202924166291670750203499588768240620655450382569010962009982078379155632018392322564100153441865972386123448719166719636431184288906504053042455051933792260239006700242663783129427332228980861829416072852084411230956979589230931006686373596450791020488219771654296227924956066634590276960376257943261081743157849294401551054501845468259463095253503415304684115306918527713345077309250146272383688550159389169482471239927400242355089972011379538614807756565513067552085275434636590298912449753967195366312883423874867999341700163571521894886140137266784216542308356041037407836907433033283379261658579294000655970180763400061757786529773677749144849215537273950495805348850846876629636571926713571678126539411473793376185063306564534604548093798992871459910831204842238329786286285751618127221452735740229508223636804648081557766412512704850727078018996906776189997533528153722543612035491091480183071727391775915263248732901338919456152940134909335391090723206256203710526649417891322428633514538282414081626225980439968198517411146016879262677861071735046061622495766924134247320378959862240991467140095657515479722235881379598922892813752609779878484131653649936229918821915067673466002900290825269090751179560548480684538859409783462758729282612157727214075969792752740518711825639173117470864390838343785893557325436171864404766018334180584917275626234687307809686540482173482103091004566067706733143232669692838518586873006087765826553113244241022728264418703915284659788948338075755822277541836250813630948367749358309224200352655121244061666664265587209335000267874690916612148532417832105749333034821762375802881234150659511981268260355210419700755176533535581867631342758068720902431882511650257645440203619090686559303452876494632550649506679601322774339945524191331759616794178667659260865696752675871295263912340225609582091900142042394704864731842346278338317277762079173627436613188379434609362231211289660782368461049976056449277128246168597896669342949909106947316909187863174879854829468362295458138602708522422980625523434220354896335875462703577458293886113789875624853955708563005501676218201804360437283626192629497681762062131598037575130581957873156880452222884132973782521991263542721133648175828106961690567435530884387206058327793823900741495506122905147805330663196091699015193847581588345548519680685430902447283624753671908395735010720017089797698932024157217431483729740211638431293998926552790862791020406377133917043414353883357185200664371743357720436473020039272593000550759892404306459375214307269839568035343823080281150525736500559261572964801791189029486048104999565947090445845043921890822176608094812572111610687812518099672249531829441187083478704857045099475411925712529242070909219975814953855335789935668315967124410554803840042957053961329668419942129187552813009646203632859711126588969446914095686731533421211091023903832442217290627009596262081840756904763072464886518165835544592594012322357714918706835860255425261959264013170663831163883455019528666358186604444880832743340960412002811302409354784184419386819990936700137156219199276719091499711941507054962626419116634129730806997182498504440033198549262122210271938875311304215754818980716902607247843216556586595332241683979584518157510915732129545095976190666668621707335573506174489547155237827758988283846220938396476158297058578703962417948901001697794280457966804035505838099736612459296780328466272205271638954377956661643936570451352941447497386802852502215338967258020548132332100208983103017662138428613214634736512967211496574732470551901098792500750370770261869019892219232627844680436631685609178613569652003112856098909916794587063750387288394444662263103826152810363468275716315978599138059600295034089759676328537797091965686339216848309856283722840286608621383181105241192478381738656234192983396861999910495595688002314870156469492223089567983649753235089827993633715056385681563489638837855339114178157531597919618717542137396784883409544633449604709426288104297473768662482365619105245433148201078208936711604619971243506864894658353017649119015170941138038325831899182722676736349996422970909372998050673928253650434652909962798099939236807132294889083129793127937937199465470906659051739867051987954301259773832184664592732232886641732624193766483279388629058572758955370403106118697912451189748271366713205479453281539146842393934990346848072132074253048400110752260349257862217721630214180211198915800097152826058595702868462764622084740448027797880264314195097117946550683401702312418099586414797729283033529507395367123328071191167829048847137747091491326152163737130351935756066979415294304733882156996797493113009179710540608618802659664594615801783348217347452465068017424540811401270149658543528718749167043438036161322389009568043036992127979933492227365876230292585468057032252829796791405314638602368293122361120884888441326895163987520028849219470913918194469889027886030680043773151017147509392658841688081565050754786631677668291010072590698874009993381875858485750607080601140322711093585790799886504948949006880787483020236764719942580866988267707792917026220339638878447993017772950362160406913776836425796376640787579733109303996614785796606472066330711759455193478990033198305885040408341577116782223297226134930759852047280680875266545419767640348573246956639494146818482627507385023348472454137743943439138550561988754822324766907556440126073161684161496799759083853518073234168619895723676343436177376815482900228276247169676339559720084773950549676464721054314296674541404689252566320197812099110658475807414776783963263148268795308907429173615211053787256522792653645074807381502063115324244983903148094141839099587482040779161153493571988430367083380940109744765540222044954297957816980686950773341218611895334442561178845573113062983797201866461216272385701549807136661848274960807977119883979176942448969465482471150748751701283975763187347767195778927472024747774738065754119289637628300214535753092038838937128659871216586930771751076898626864308281173910192619649957938792218747126793732899994101172542899448547637644239699260529618681042231031161183274380115413994602506505296865974671833789063599385721779410861894982095680225543169288844730594367873644065262086729729812199498331993156713977017269130538550593753721550019873836626462951178230371645655068653954610153651738694344970354931072835936349888124624393556188865440245320908607852062139167206203765462353139173953337190127600664492634938983629725773462857123434840048589361604151313618092401160257594894184075959000278933489098767631685374144192294763932312780266712045561748180494460823274793674552646681869288288701917440910059489988012733355010386507646705547178231737154272875711855175377504190563528188778983975969285385243622053918047148065182559682278799523319998721138934025127635864055600227724501144368438298013554664802525192537519543474099049262465137357727946797754980741348910733783496672753636669320285573570469436332746013987404797062174058044313054880701802286123994673465135793184134933969459765228008500184511578461284584096304754321998097981359199726681310411880763109313658128646818380585510887143744813520072385920995835352532900647682308855390591913389142657094011749335195878158833568994426141915630972135106740531023102035467691362507642590851636396283848987133049954551807811192653423278394159524610237139750582696016875149258299552175168084682289789383203118338510363925094038944855687078835183261331125266780737412802594052584416152149998929380766873320986269302494155265980624975894641664701851589667464894361267958093815306011039192445803154386901020627474292087609366946679653781117061255562556161302734438390168183031454060625826452687855252581541459579498660149736648057273388484450317143267498496050388397018077212586396233707309607093602577593590946329050390302935482223821469680798326071403142381621395317581259701023293307035669584338139876054676611634472196754684586180626605411862874680403395793361227639663686793179347640276215708759653543867016059371380836164881510109003022794447158830835017431985982427458324966433796656847352463124263794003718390986166815889626871721194607025321812990718952810912888961127075063888016771538174943449768680077270908727235634254202955770447352804442701591744725285901457531076180835612418789435915945513136945474380884644593452629494777777245861716613879441241096320654943585742686190693166542832569016098555709728382419923599293308197060743998501830501180835842300339396205816228197752079244348827171880709674826255502575470300005441738790808441272592052941272721847190412977841888671494228548408268336938003434620908353720838802751924016826282826717442009282868991809224462602805516844736943371536855230357969971428985724356071615767503382411175351425975252645935196611969729484141240641063006095161460728618627119439775419956240870813559802706536864786771454605178415069579483606181921459530898349439692233974158970447345287781609716873264122365874083538150463897551366042574909166394433768657879751430098505436265138877349785550186559568084346505323088919102026401135289109251548595328824950791412591951424072608856696979036193696173637998627671035202081592833946096778782742175154738493670928915414169414366595747988548274524844474008937150516738103412611852728532548483392798364987392633853012709048437326717526410918747154888042653388069639881537052421825708946311691625415445960062347895480747776799114727744839243920633417549315092204548284748092524980225021251499255943207170609126048518342991945075333354955533594480574101739085908643776105006420933504226261529906153796575310222331107323457617691572948772071184056422825448627232393582748575600295651377692602218790918383298774641827648270608412077608925763070375970591552532262674095649182091308587285054145994107868975968504426488250381321968742106677248493341957586564082932132468678230851075055819552972793710651351829822151939072880453418970829419690589347529919393219713515681156515542932427287833718014306698201689543054232720985018894659670745915318701548804502419124868783101339703938794865572766401424603273280217959315210908622580183132517910539171710449945330520668826588348161235107598887686644985682682557086721907807692874892087765864617994370005110397169388543485740181775543132473539380941405127705197332746959360605324665932943984364905010280879250471417107890072784878244027920305755070158112374619347623331467571623945593355884588228346951324763948471742513682797716771515070244188017762237306504107229989405654337185344982803936991393002740343612208751334834245364829997939529314322756627196732718448685560017925646313264241466846859449973318338719447861676164098616173668433196490986374545719753135798201971926078221675185580931135217500342175194603621257975237181424897063761261911379687119793152262223014312193684031126056332628499745236465917824573977506890534251071983553350175803710766223134908650231346770243106895356216534952428169566352378547401707065377083635388937584005943362288454778473524813139724141270996365997287354461565583410370319139432222504852421494314503780387057625294882672440869732785121974813355602272318575630285657234355807602129653978239550453457738816003785553510438404810555804029781341997313040421453103708082234646215965448918701501118731877717479656673784524156852901198968926702720093842782755285589669766252331151075713232914277226048120733669199047940038586854661754409126626465156434838244312804886820980016313457559714984960521784347814352415576284761698172343799395357947783609374334348255362073788916219592334914661622724929203976681001479505150749292281898414089785192381331139989775524174226770441055598898810907514858894625194153699225885558489814684597526037577776969921160051699774361628465227401647105891097523867630845628634888001689151014447997909638964694893963469804989001614921919844075748309368499470472053973620360896049422064671736087090445276800449820730579572611547769393725503607072950517988524277355803536403087401153076206183998895295758602513933358184769665245290174498120628788451645993426276887226707126372650361598657765629534581139333694707016064903340547713187979699371429649040752539805496582024354602183701353618813766006932644205211673248582035558126550971332720934167936951274825841349048685319347104579656249692084863710267071309732536572296095635265186638502217850929175711875082001749928826099334047640761026041040189192300424500325229057435643259618274192200671100898148811873908660119598771369385729084710826025757758052397118443765384679778716090227722496238794036782871310388322027996887703795086477701401209691443061853770163293223055650663543631254067093239307961486714236108962370882884294810633792376724020897795580588622819579702454851093539965098234044496181463083909454083453181459717068624652674489616944229002763661155597888487989459999924758543487585234861394156921382626415090010765125573206256974386490229892610908005384789358259564547038404172559817758392965379855947959474528966323666054769849285184155187209476538186012081648508381956834640502569932817736156172104051688502835020761579336483841737961354292833928260814377689398489203269820662335547969694340221894591997235108501991716365575847602334719229010236059066906456371167575360704003103872668607772208375592658242384406314422060337494531532611935121236863796847594314585035947348164256073345943387349858069353807815850062982143810304504320316660582379458061868551571875841642739583241453982128449717732674632943037330332136009220896015988094669151876773651833911950469235630975319506208927728102475030991035348131570745065875473303894394235466808013774092636523058100341757005433099329157996000800562798469848794848232586777813887703697322928987110849264281001320539104502460914896334146981403691557198299517380148185968151376968567249305173912963885858658061365350336625448425232392261140585666300008076301104425317236750695425662645876074421227488720245264920265812067749920410163002287193897852855687830339171514311260689334396023607680220124490781500614165073440474139856365340550572389565245583852662204849735849532255633742641132309614273872391622923402995352067331616533666865791029462917109846871252780048615065744948081729378674866233470535759760377091689376738949225964438302845502424596374144826712305198916950597644880798217524609186290961741313619761788331482472718898588953448490559961230887674867834862937067284661123226459924937327724645330984873928363757842786769320874976085585841439162013681028563953328134496613030098330101691935973163331561546988312109937016175336558850849200306536989223147620742679473752800010890205481507305454325216633431956172340660396642469168391558088816663716908847417849340873231421854190378171028550104007649333510096659536333195755838399128436359068010483184561745935970569999844530252013591130698692156058330275908584213602771351045671457653757467199628968517509840840408244674107649590801532294219317071127636777769524027780044161889813800532480249398696788316269807648798415425268232462723071436588125958292244208752191493540936398631647973037511990790350281564029607569154609829269938703099524618850622691811933034042157067172690414865691126045281864020079889179669876524766766976292552406594856524516966859102056821585074833285864917323158665785202979761808012974824835006140594515958274908998599260356045953431323137353221948220352645074510690869954365584850024541394602197082022608391036219200170553992706938980701997163371669684704435577777711613938060383252758643662375852093176423427743382069489241539501253265016045856808734036005888950704442487039028434501011971233791514772404875204284535929253518148618374271287465005868623967937848023403627089754276750581068368107128617502509582171430712091789951228507097573553159587359202810313868332216908256909669318865476918575921101307143707756524649068911809605939036104319990421939642837862865720759901477328167876405987518037598043364888400529581469217921298508617445542674676863709912948434903916911436838745910902293053755039869532712563445555673224682439272448637793031777090080715001032234593200220500955127711324116370737637987777006501498034350566786619992551945322879931354762202355384482075351864178279497914189633470697533303523700573603763890419429324609631962452888558518005866144235869629244511492896866892546552100199533859719672812493530306470050180365349043636608220867098546871443718819349877923707679928544805059543722576882248199601931601449168916675926155944541836530317098130317063674315799727064542521965506636379261976829029966572071154597560513658457593293262656647073175928275418774853077461087979106136140955065734285692221652904422762524052226478320392709392393997678290569282488498712550449293855702017939781552695889143041731169203659037887984173476895613117478116504200519663444039748577747723034053385493156516146419735581443030623289660871878332482167382766715063605400933606772488327572782064389051108330306164490282713528316053320500705106126657137004726068932634101950458788278307068849462391256616520334986957391622881878599598090114775969380972855594807714766820733027658697299936162907453894675080378650148695254977413133842292654750851130660725461159152343854038967701548303485167661578064581919571990529319229106399516203753885181128751169838237317864761651561442291563937836923821091073100583687798763238128868950514485563560235805162139176251214901855993007778898806300854627701523017964956811304448055766590316984358421535880965032209418797798427590010703917956433210044382546929367648949680375462786787164734482129094812429179232611429776801203950166960501745202469220785428649613294954779746055751943031961138427774942786400773816122145826904201984744376898526187011763334224016067270890412277458278425810583624334672976619592350581100306446326865847457793744285789316652823941129455021773490918820993710573438268400393499027926848198931994667757900014126723375001816364259722807816801573223443965548443689922334611271415586292008430221391531206142231697922144504561114170515054442853381863194214442289642245229476435866703047458567339554232687485172131105793539990019633357681996902913528407632458442203640884142361451451308249207766415851164365889804092407724987125359533775073420256276755003006555371069133468711924463776437975142558957861513780415444406661223334489745049026913415312427629336241612156953122679081768638890522385450822866103792559160593530239635865572353596088712247365010835953965205105798400911287738381832964779390348994000929116369793324549932395517027855411952007850380249393399542648409849676389880848079736266975975494688785070465403010246947378175293295148298244554301166287243191772950640869081738215470289896080741834476637913704398561860216449294532488528356496765422770425928748958598529463368250665549161579023552272151055401008613124606011660772408277087656184551824675739889181181792557701371593951059034516719866684113699637259849339104161821150742284148165334129995418203866581550693924547152269067669729744773433953747067849607350408745346419447994164852105602640269153457089487051992680842847469197787826918845585806475994236575092520683269395619191515466448565986066200032408911869248869613856817370115978612793850249802162141784984048701137197696221708886897493407127328016503538537644384289670104269053745007904512478768521588635019946982503112925915376949333712527671231584936838060595849289273807397311483842286349393820742080769161877745408711437379588899483238409469348256336635668187651304915344344226535818512777358359293414400734990618478966126281253677144584580543558267704843945942183630651486094141912637991910400907737569122162742677720416096927725792391383487862158713824531950551757435565786085695386891614205715923591912266248091665515684912501795916438126033145810028470801668521191208186031269478239493883069697196394928639763860983291309185962043052439827373410156214768675388555635821673349092946513950997886900618875184892299793885446539892506085317675796616540586710130412120495282324837602283548750784319650995945527898245883261709181428485085752211403374383358696277421807090167337172136291186036621671888746570334946204151240042402043803289540517249719686143099741099265000393033045349616788982441185376518189124970359390645160788859570508126913529362055794366203630237403062383014480616970204745018989247335545347180727268434716728779775169206834663811795045615001780954199978261183243337692944452291206600564100254369497919819633715663371728859205519868216215269778262181285648203002988019475321067202496878745702599950420792241228613619960197068355705055616990618710276990981640198616637121751651636900242860758417800961482537476606626671335541973151613249394775197764132414683948284791831864556797226977008912637588868418986899358210806984173131663562137138717160815940748104159887872190202831724739839845939783142357881996380480549749440819644772866306010146437516513456353038165139786870987430677928461786538269571017724965978467385564149038061824651328611111645980004482382541413609954975951145728535981814513901702824538596045872254596133975285412001131168268156265782338019280844064392464398446682618149105463526026337279182757504160262225018591093385093891192549643611075249870161571905785525103390432318089139625250425301367360469879467340932408344386534983621337090923428104949690323419337115106770969155787588927843834090469568617462353839616113968920474749782767074785215848537563713687276393853586643723902211088162816080501450938322634030815180681359865630522710099413330604025797620734491680230553883603709607210399450494617275815557136927070927267383598626693228271260870745378645299345348521090566840122951066838546497139988804457438383457917925999559236377401897703487851348918251567549177818211619141765393716791041433788578028334717950331167473485392000175302777268167083599793585562077519587604281363778690358919887136964705416232000543474615227471253477197915477228795352204228168306561869755176000293285436420967310999230238078779559342692272069133777168565420529611356226540656518353270323865424107429797631353579021585511650374097807480694186073472208901781390131281912921772505657542761015779117145484705329726262823864173790020270310099517578065690137377535309513524553033329160356331970991785347967621011731372528323531094171782019127143834270310803677197308934612614679768627511885494524102911053275036559541665621302278198761818638815603127963736883281717905685350865227687464198370694224281624137654074920992760000776470715572563073128149631291185188427538218114569693417080534835713172666351218040994158904559821146222940818130553153090840512517554765360225021829952575263021590957038083857707133407756117234705754733153842828289119548511382769037080131479407935568351806983538097116562772213737106336062161651194049614650355252008255623241019931357594133019156811664736719174962538144894652171995942642501183185125953281058583344677091247933143435879410025935433778121290537660273400466504664929934635298425910305038851215511794277219880788874275419919684542031978897141112218029323206247464429337008123750599302517523993301866945810336483504820790414985549462028731884056615399668644236006623144883419006806431934071385927840466653245167690748849703413342559903568166300920954819321829447069414674188102237731716386523836008983004673837593283904128524808983524610132086320459616371769505022420586190036529241434185903170417238966316991201200691663565826642115345329069117394184271882838670289052668139209111010427288456183208897952837711663225066707343973151205762548871570309300520007089245696211000488168783216201420560546406868072797976315717096972750729316496470792668896494449580037786070375443227439257401054284025880835238070068307229110155907370552483119756723841240239547172110990119265841983912220749301196470617370411445570478873171264712256357344010811649995755631037093331584591538313910014205156764528411079703017599138920962733132136156630220247182921295759665736552727313669987568992661762122603386821865684903963999007308782701055647687225729165614287148133821308761636496715956482799247045815378175480447977211550197295511062151660212013309208717003528083732829558923620292494620138006664639978923911463878880769830176907188359092001228303283271868009938161132465601765921232256478626123505530338034688093062094264946667258319669272439502999400532813536622370121011220495556400174568211844545614790458595810148887328486420388363602663226399771517927555577208015595510038371284000269529892936158981236295196424415456511964741050866532325915143899842592800387651796165727664521094724681759884015016066766592920663200083233175233243585004909189270226279532698226999093286934394252142692472354157143074066106707468389637304959668274165854556607582008846567234065968390845777662271306860394515973225313551758152127023929154474962928570812069328703132270527985590890032371622876768451447291957506739472090073386538142548804823296435232375727680689310009255884374252361927203173544717981631109200300851517497035369552684236985923292052062519896717669743666803856194107659848069505850776039299096858385227793251230909895377451045270695453452344626583043051593738733796262146589394057329248846688361675301366375246410759206049498548132251921909145912080635457350071320834738346450997330258645154362787913867156611608399722567874634957531333565990063186885307658532310060506212942814075400772198124463938098175326111849653013140270455886257711043385193927852141602563717999150523337382946031813608479197851665657071637617826341712409743673177211695254516657361198010794814516310708297217963842305080117796363731171169568493928081602705519196827190793625435212261576765807215401219969319215238543522001323120154854737149221377506654140713210076063953184067748039488331844111857588146005015214161861605056451660605467232790498802977800133916085763020163031567059904590338131357980298522776793260140345854625650744013491317125279161273539783337845495482518697467633603687448106783410296992331324634543546555852138890310685278600321247840712686014766856978691299654482144068798631789317504088176398267247103391418686029150709786051389484521751089620037918206487169255777448335324783165508999378556579085675311213256594696878599625046764824747567443536437899332333104908289273950647489663695835444626099392544093088814951036563945358073991099849001754143990558683537789132300801133471399733117199838356368312799863385096736989952419613465668906327228886692924698522151195028757969400639919467338944872242835944798880414386689506022770746590131338649632517628346073113778807844968677986110159049373647396504590310870524545178413625021170335741024004913269887072607002923149574657024516970020508925074680652716109835851440383913834922450103554776316316290448427601685717721208191504478300479608201824823469797908112312511628205562895992084382651796940477264297664728546056659094232443755228176412485976408223307359183473057130870272665193362376591495630232112660246082372016661268996135587736942362545902964795458202051910116241770557004821948564872826117465942415584915611724369987119784311054767782742873250884395485358388429017496667479762446392850878974177779073761205131024841312652691648005337101519093516070437926235635626087611488330849055532102868163316414779318668102954666916590547841264046411316679031533371926009590214720197896892408573763776365082652694914840426387346457936825165239002160059625380146761443254763943670526410697953764559364870511598177964679747555569107308844295302348609886633560454280304146692990083032506853726557396315322421143725300215483809360883458446467598347205799344014091441530768342859051130236315936575678313938890003557511107822054186655323632560553031216431504431287966907659893787406158791618677322299910735182525776909528426017949726438411618754741471175688788476399531583924016752958428769325887023466817858625451560450934705253970896090312057732614677187060854298540395448489884303043051148027093584504477271695163478232921801801966827597327459453800156975462529841220965808084975002231898940506573159975366713971188229221682039769282049592788001986814168890890373115573899558036941301048281778986090541912350030626934229599838067083750220836402404706417526300808604679132751037536810979863415737219308683105248679755295734768356318962349379651673603329937591161439577849266783209780083398588700616567035121553466960786705545965763415617319890588655207842938553043563717379658506438149920876550515213766940912929051008972314279738094769008632278126943656127683500883821259966175820921717889786096797429201742280060151569676945106976655787700943054818586708235756652460668630369162495369133524808145897524365316595222278780448608836208327121818273457764152285799060898246888364847437253545199400468473919020348888505659215432423067323987829634059760864421762313948798740893836392393955461112371911279764611677929824908954836314182773086871390679160499144067360008264026373958143458281725175269796130239458271534219320196635498525484289398625155338221153136370658997723920793888404343137495639375637696274317903143026856566486621153475079580837682799965460328293164298134813422696913201258023901396401971072121441560249281509270719240935021502425536327759569973551675980409367814049885673943790782584498103068457349397679798384429534985995217494613232939547154491483810314287220963781707941774030125558013641067874388011918715088984452588644418414318500055776774759273946938531713569885466445424006804596554712955475929874607563821556506625938255252875103229908801031381745581821180601756243532006716470913582105696302301219497952721730519858041043581279329632672476707949232758706405815487556942380817864505871456070410817940414464472430075677233698903772834296079606835465063330749803316065148622339730183628894124463312315429827278501428750726933970328647921172301518128718498977322042922136185921764965693955357827337719287573232198130438520304044776738825466637589903164934148938769123979608220643051465307448736499370270421380180972847428741195186011518244624472983607542159481708271873693743808663632564622329310820644229974816976721595115485957434133348961642407554661953637274063436025542059475732783245880871246087360678310450367501362730124122283117946102296500631037886942234206137182353431160776540348171777393905202834352503337377329192591887928700870841461972374307442238852802203889467869728221665217939568817333594922888908350904879371157631493492383229369775645701771627682055992388517046021894956046948604220805898315321600869987041623745205197587600222507722821426694600001403793915111982219193362905300473219944445913049677549815936111504714123200768558501353977586120246426407515833567931539901719287032338780322047865761608439607739213401308920207806668963894617218007514039198421163516575894741144010454845187862912756766837173533393495445979767382845168224524529124787158017980337034169539490559367321134282073614867507233166020933871376909433222132535001209465154620373888250624000261638962365387426211277448707713778931352195309061008313559307901390246006298605607342991106146777472164757968659955975790589186433390664904144055337019703365968422674193395631995450621027300171862466122104580844034309182783564161093476575107114382322348477224297887454699598197013534528610807189939835864752372327189393849550844969645938420651547017728658295756331743206007287395915526768364677294448980549631346260724877573720345973038743370794223933941330416251180114864545626120807209894882218334116674929207654769929539091117197831438659676094583692764096545874538011950784937329049127701127421968509116224008624980008751658107196695019396650012436386550190501701644676552002167529210499132792448261887450627277049408608414689003025831390201869413170568782120247172530282465027777293719908529518907635041331303164601992141545218097297513253029785074336194350841754046611522737616673860989984990844987567504325564485482127490755580074873850030953115302372531900916773606136716700156867754997494765251392910719650619479749586578987847073663803936323445298734536826366698247159515222174880057511941821642187159092352245990862437772166433008702360161138474401673037294128866151169909007867530833145939628801630602823814106508616324576390922419640052272627677459789230174156186497873149854046518523629005255044585910421325405640060886147418613702275332619040851518897973191578558226434673431999496594406568146937826674941886783568928439814079962894301141387062129922829594442818143057040086337149868109915559915590803359004438595615200428553893823734084552201461323245590917489642786083074667026433014591534869663840036146121522673675472015660120791829678663599621241173215496481168720015382798225368237529582687113026324950815318615745750115735797772206437382791317447258633154709982861613754401904208349030106477938630144586636143222876126862096949925099822140929638354159624302461444965150228513148811921117820907687416135174828315148613983878861333947027474466756247611276460132547802808345426912975142120838186376414297437647636336247807961985018658235246098836145171145444697987491604753519011099441397386037499928720858801921983203776847491627608277177897494552820771508520439110285575980690364322098008525327770083974814653819939535323165137685726854908135447813585262608019239245203181844298819419223210365685800680938379659461101873117670750852456374253517255782813344618576269075740356222095335346589102926756472598470827030227538492474007961430739870224362952088160131599380311748737661657866635753045277331367275634174520296568745093892529541367507960118692326149706919970796317158106249898460055629516397498028716014913939359394114762117429778645192882282627717953804372073216956815181231892095131375272960520079317575454767154003328486451041573990552529099485461076809489594537074244989525911176017569318168336902060903717158202698404194819853250664375982984757658034255030980016735695425379438975335346519758923689604250389315055362227741986939258237354829143129133912116008844222162348352612127872968853090749590080552297004469559883009158871728071358434980307411218775413006824674211627865513494010634272609857763063775489283757147681165241024792680338471556749128654806334849561187197426512661297147625522528203788159276213472072614605886660836025028275285967128172940377009763531550535561570427405949327486573716888154290446218726334974900678911032237249361681220289186701091243985432355858970932689400724188384434411834829553427408416811882168166123089249211869708448769023927661215663576389137007437150436675012190549171496654629363584443639255754795723276381612233556951626517644525108293589169916773459287453432238666479924754161485323270082496852389926228332201247500811074842796780021250547538310713216841541078542205559595559629515395389980740740354594672924809394543994355886572406202603559953729793916365815572093331342195084188662129016405107335302323220807063848642632320575035783725240282719839772497846058650865742194423812994433817343778240732066765849345268270253438265707974616824937104511944567000458707595537909323478498211677844209745498789868757295585527251202896704401841027145050594454895102637108525857518698011574092854815438402265991579279148538525113896685505167417707819786505691725311349281308941477679941476995542547472123970977449060184780778456085225727605547829363404916463617499598997106384442619988552483070106262154620350659893736776714023566215021574288237971288392385642241164587681896160031740593531171101942599444424207054818456764958111466626832501974020756733149196622662670628930570968684797436610154307810412939999362641009152168145663936746600676202188851626718924127207789749108988154745673416633805904829126984358115795085988435133748751935078634120031422365153285211080350768914084977371312175911319547671911995804429849506316859580483676110583491952832692346865938413769924779844271072520018904148009875290449961196546350285407973173590275270896656908789040661231924579400658073731182558334012480044915652523265906612468125709134238179594450071991990838047234948670872919408138071733419744924775942574595837715677060623612701224768537878470002530131763657173489214727893980322067915792551225714203733851325576729581727184855625066096979134645674655187866277800066246289011697959695812372478729528162877815102756715757948051502948339916201119111675439390831816813271463581049539218540526089624508767875906032523108529020094580866239980713338314147101858941268810178938036907786038936422189763555805839581974792619758457145615438953851586953757314047791923087639566595901664134696871881337061335808776794207062518799690204050499369090462156323430306605748479617004689702767678146328738933158237092701447967460362635426795958395802663299359825413489136243355810896644742584402861433627194348237249243844811316361611422815207009837927427896045223082652409606346726274560491974273189163250728592693150708567315759209763412798970984054701245533542989004542844878850552132263183570339786436075968974454406708398194945235166339574752176484901287055802732463890240417955687120487659371991520440904346695953314698878376782684845086271697251601367619095767270070662938484654576258876480996116000298040681260891440657678298513773766845766041280426462382845085951112464685954128856636868191851628811921000139831426254792269871735574465565825562708390265790498578228882886446151085427917880151629349885502832361773739082129751632681543851105153297366239231085612026682939012459950171907023326538261041346916435692729922674237561048262490860712622937084583030124230273245132568279212214579749932929169697495136299421913372150838761159044686185601104329345652105460314696743137968004832598825896348312221025456248814231878651681649173530555618726351073352930223016204845740462191781537920190321437298809395133988064914983959647072655361068623497244658297010960657498091945872668919527225202455741147264292504591560530567380397339359320701482459297756838515142334120982254186220060977869499291160753574139208637735405511727878291929690435001877799732039441513039851584923673330539308389987650069863831205584046501249152943835565535417898682391883341518905866166250294649937598576795500029238763966973420843673090671039967336625049043107271312166609855313155953151769571540879180461126207114425061638774855739585523425767270507289192561338739576213937916803063639652675773079953503310024511603721829886227397450597427233708815342935845191872984456836964534639244894297744516371023026809910778228446689368958319043900851140661102625758291206236121625453486839452794029102820732956496542727522540533463125316768557752264643055709752440242577040451768480403370956293372694794734720300314986896096023613033320898171194431520366663545282135788600507650701856278783085225541939968124884367168180712367748575319948244094454961124541568814293134558953103209770482076384865945587789559178864761479294503730769118165552219680869614196766878811573013837078378971799942120654624273741144981002651200982869915588633540977392296692971977779202832357481397070561631350893241243584940112942929069566238028502819623411251794781978472400354996453559548676615114844156190612214796715185838033081429693936440390638907310842119955465602246533554072971044079170223102509940378690345457205511721162416847293110065540480380776204296946775078347993297651009633970864843027617333851720896105178360439437336376386560145313652415206768528562010186870335863754260481278265866544199955250450600010551458561627846686944571430800512179285276682327111080206543718644215392612669686998639959326943205013686639231660851476404777359313102747921660269196603338462115772404620641052664428878256736032107937792591554602910712324456357749686581899488832575892350343168682437752973645138495897745186707028913768434291451898109686538856302977197298004580934793603202837420210306467205869068012002714125799810550041356637482098775832151548071316151559427485447434271592766828609795407381582023515076143943433649311684057299135504436847311223930568391704725899611288960369435967948949696368142677261077158652319371560611396199290142930474238325369863964447001585899010788343351468861808515579657502929752085866589830780991465297099317655361902433577189325204348947023190514825059587854290895854071227535493770200984612659548301026060643448662230982193502593755692710342502023724487818886799242458714158172757952696763240817311104697750644150005031942940538498819949403699991906737649409648317228949418319385460829823310814197994602070320211481531151679253066530194969034278846169083450838727499447599061876079149833539290302004228697790424189568501217866674323418802989487701457808965388226907014819138338891595794903009363682066696298513081141232964261677588339647074999314222440143437590883366510080454403696489932453120400439399201688546504117631240382479367922920118962215113493888485313696355301278011581547397816141561883593396702533039095513819139523032864849158017302273826136935655835284254141362697419266233367475399160498486743171828038325798680732398240888058115072125454246296498789842891668079556490214593574026994856627473581854168003567650831670820733974642754034828595210848268701924309897534203269775292314546629119292734143089547419979866832930989247921709998954297573025789891311577525484340484896155619495321201907699185393288923514295314844161472501411114830481432993482351028170378660010346553000886402032663100178714184308719315841886571093311992372977496678819743662406467579718648110003888163526858948917512433771462401478391744058947482730801970215376161753005806186650583988624858366749102786149795673531345654290322376522932148427497907798428636481537100678694718933342764897537502606515375381825733693496280144958184754308319902319465298017119560814859482343671402436334840409259624179628458269640051796143775274407095759735563468480640628750547792161389209895860887218757138548141205029870637097662935343448980333603015107533326784677333978405840601163809595865544853100400014667318058084552272226352675107356158008066899061449163294045374190225736421282717944984144109366991210732771554810168155400196928392860882269653679062183328244664858868700384015591693217697301500316907755415734306468229111436300467219049797964903416072917638523884475439573249312406277570429839378873526900158095754501471792244618239839823331335020913899368609860726635575363659575810283420815886824806242143309281303925132192885958941868747156753314149600894544288305826636953303593652696181988167807808429139956821078704675251236989287533475684053053581743757274830481299271221739583973116854304551498539497742256451361975164547005403759959550079586806746782925359435708183790065854386580740120858668141275574258870416704378045778337123476609607495597829508350089434546450174975902263538369965233766932327007077329607554713733411611659410720737558064840258825981944178665993559990476897581730414706826001700838483975511550118407594265572492491458486368297954259829569751064662000564438837924138424914248185871296045426658215858768465433123397220094929435129001059024488180405499245069050206871378173198234422706460941811112204596350043815905334577695686692072556893203790831053308244181658318784274494849685123368536306910606125978514081604938536515535854737065820626164402263861273390745404661305215537840793416404214279857644787839983862752984938903055831093240715948667047184671415406971118633836214942294404412914162929511979487026851987716557771195996172589724284773153265666709799432497516109502812681855670993707999345975181919977944278028823008105204693521943738075492044282007543838417076385447465262697352615142996903475417889322524583066579054820353853232426628733904888406785708900704031012802999931592951447099929968540515730125978007633336520297178907422130802839074535735386891873015373228214067812916433685829559115032933952245427972587425561349077009590136433443344568379768633884017825025772828297598024273899204851099609017151654731864592633334433663191118603319280175221571823346263414820115591988360566130310560869458706879132828511143072162381963554230826836749034330117815287925686404361827717190447249237323661978860876576757818118261273859378067914734439805494331485874171236803048188297519206811410142727370716820709713161068758392362027416975842747438434227944483184284366853500421177289028693291234055554402057018035550140461607605068460867083640283052626829231961948645103126464456586325887387965730568298914500853811300179036969113382950226806137680876095529455926668529441432337535098681870360665019610196986551467530354604386895317109403421708647701832286382721062420136023238392767931499153304824249600168305352199652185918355198613228453737611344439299002778500821459409947095472866904334416600531717575069313941113544728714107033348255832546566667878972089353590115143991106167785247894034510121935433069949685273567624112840881725777816393109465506642177432530973428117424414379160960744108681808689003709194444169077121448631711825172908342728568720133905785181985507134969766380600593220983764208061097299040029831795209734597187780923590949396723435347066658722268019045990399232287480830445450808288731101583482661690915695110122190694908318494443764178885454066184023591017535985419528008371907366893359476326645837444146681749715929743562365456536532666429888823671160352170208038037214307405920983543647212138020165358497418647055741467363883517466470114337198114915031350503017569647441692356142668744360683644417813940183923621352934276878411411406674862286657911986041821600319194731316014000279190484547214773898617015162236955921636883977060652098981333451426481650440595523774854063480952442580241821918291419723021800561566973494790014123313072340653519504089497453373378655499742499643884610735762349128503449000619700674257980456014417569900980044467358010312475612483729362296283114989210566186142845348913394609240983864704344379413042408994956434953770498667946380018819608820711175034843028137357571168859627055955728099261407531789727071372318508628352660520517012959836754329257358949615711529648654039434312827765724817245405729981510847099947112868025497813022430007605111878137021924543239582665012379609410789280560305057450301027557834246341445014629803758591936532171138089375905806948153801272074677706122850584329481593418660034112734449021084339094116321462993450393800312532201950884472792122672262065485948299567790260566026618386107500137912573064956228841615915884018022728776390034648698705769518504764210049746698153343602361397932515010189361373805789050094244376551380836248695532165029928717216488320714688072274927981490255011241429990542004082644682694244591408395896668480214370852383070692302856207140470992925984436183653340731470734333031960588108100676352648629816218659342598757817272265008459239348287463747916138349339850734421318759751224247180879970743348680620106824001862119126325863695611759352726360251569360656846989588818345148399582236108859263594984871798342241956449129884283449603850228261009761800729154565001762283666902084099059182350177446070675494750400329131258059094213286342198560473508529250403192312018165082115795574053836015923090552803965378064560077284262958635543247157998000851011387915281548280145880684299054416048377705205770741466510361046548691493890494827745643913562305993024520198093389724053819703733536576872524111523339654553218970723923908012214428599299886464404227455912284338658818654769646998213431152557059960975697449321205584067794535067601197913328560131047259580530578659252813755168391015372453649833151965767126845261017378029640604915218666117608990217955591510055396491640739167647797388143733144091688443247908414951810562318656559140912899487160722822727585513214617937213576460411661248711643911824975806317029716950462848489505406363808331596669605908828782201445264029378528847471485368609637897943956649007502864642158074513550490610821752077333194578348303860035375001342423757223895824622343078390193587759330315149892069890243601413877620927838484256421347049772962111125829366058453026751411210252128623167286623706876193178809504984813262138712379228461186382835955700640378204628505318567780651902902110311557249210499692224187969533293733500296755148989688468401526533079094123770206676281332557552929164111007902869883997980050193850115865195146454453819328604240559945175185769264999833028549064440275958631043920473101961392137610797537482840610921788127007762668582594491370585047502282848537090933393551831497987339383977521032613522907189576132213937570753960491662065540042978753889104880460548904826960374608259892227969376401377141561970597711933191689959035849765223755207208122405600918613120073583919547567718484687109912006976385471167523050383693754735169512072580656322849464589174111339905584499488374705180548719721356075450064091761589021015963468611484917436136730649550727996460657434458126795911764544346064541722893946111275758054374642239859862071925055939149457223188667419804338176965051658671360704952472847954728759269538863139436848942973763326585062884556131007475867063218756387571204295361293006241559129649614227229158488207165908089122299090451428600086738783131071465419169975109086599295821868968047960562123548442315579456557317491734937883463076009175762070433855550535769830355925937229848901223486877195652453485752492140104276794042280564331270177448993964044163375982709293304672438418074810617755855274869239349243049540244530752986297819168662866562190966062300887440106624221625368125842951227791001386535427952692628890091118871606429117890083802160749445571361454340881396884789672779635790084736081500574809393261266692876586893120620293624824808701876398400331146143517358505622038801228735045326108881844692926193152170782183543988718823756484992728212202441257913098492852186974368647518322808550121846226251925768067868679953094881054938670637658393566540711933663786318545683172782796289858775558934400782044408674223884799311416609208224053470374819652199458580322042260719639260867188581972006275361388670190225211326237913868202761398054789765740844740414671582948297880982536726246628321622035534799622660813176556428186064815236852785394555795657266428678567826176432815199380867602981653907064163667076038407286653731727503088347852047779134760263530921774040991354266311110035905965395390692469678429334685781308602788341309696519286600806829240369549152776946725985967140119784806791048733481218970308305012295887799757656402879220653030023301386125495423812949681266118515242944251098877506985015858347758415517970939816527314950378622609390121517775360331013856715744199208454395608301723247071169436764332882874312140391744759499986542026353321522987918690425105917526773730170196992730016461811830003493562115480356922345835295417657150079925734373972287158760916445960145780105908471706931555738057179329426167861219702011691981710764304570695722506277223062198310587353391151917258158448530689587576143151351250044139352753401005756238620063615707347298055281259267576761479623170284541340417638637238888954684026673905929610863356574042269699077883925848281285754308652829596046104146589757609039648017021688952635348316456946937589795192947305032090045932764597597249502563115885754443426291334327943604493612152990346850629169746129454019775496510037531056132020983337547600676830307515570941727374696143936069772539259133434389120709839945095837336784705595376467403519003021324617837720138116624575127204239476284333279549834591827447136380553330423118810809618259755943398946357868339315938672330032343415874081910813481063838269793718420812344496446436209149538725555323117760988812341562450729134791640060156783388590223179367995115860783039318040256201903970644913094301726382588666015670662045641514505877228471469802001389602597630398116234440758978681876908167775683242359749342348954395011636237148992146281825872388392641529753897630609494194020987611155486765207967480946930599543016800164614665365274852385767979582747821715756613024102008379660077062903115089803660543574870805362333454297684674634922308187777895709245858906660321083169727695390536324456558054302955366395157682151531087385867027735303573963191851020840039188532785193199660861281602256213721950274648087793898087169407689737408634474678717099958806519677990970500000529727363432586552294483283494512724726954665421908539424585700859168863265494120577435974320100894055294704918469448820019868783464905311101076633290242754403535789928072062033304979928776083512108246916338444612565742830318467598085194704212154767781487168024628795308591090762793460955937098752237768700186919786479593882362910965592974000293736664380801881060312431442250649470248160277841449809483653966615181211527652464204660757189911598569950448961380134935554462458587026021432886085141762481134665165256361350302238932695314353264886567727807293817326316909494132789041250853207490088419010970485494080488337326573228817607947602786973096796517268772377807515849564220886072551657164771211064812598615554853607108054378687383128975535081338941983040626236077644393921295592522984050437196900471888264203020370229609691492159948643990574963547295689252622769616666238329428781420051952056494832014191567879142513017125177246863572465329765203012241953035345191816776977992645419695551543439137350791517339137591673287607375958860498330677458094802723967409652305907034670084215825873820771052969045627448656666080593313538913980672769083328396191268399795190249158978087056154610215638001298215314779979793950821999624340583066399606828141784588155027031456017179845998929734707613126098331924217882065875375998422266222138009753443483833070138202240858702451351303036059481884039759812335513311786744422102205470905740997613512780479673030994301720597496597369357633869875645109929813732508184499163907753448733426819893268088689998032142706073168092828560065143751710064045332776446503248663058752342289224961979836458360557318121546660226126999722587576137561119972515592534289035084155448367974441204940498874998686919214488088497787130677458929634464846660492072301527773044931866429415429183060750878246516842109713651260069007959861223781460983150237246347054209870670674545448022421295752743700356610247871720719407192292663484396267508876390688611451108889610510594202842138148329944760091341392863860538677080304373095833917490880155319710878720403269493657779824467220692222183274816557276834518997965978236172134499722347909762400940470187064313228399420395227424842880480069950040184269512897017378931477420770060421905144680861231575799351386951919194839532484464535134921466737501112567693148595418609645587160158653393266451003090016404339618614455120311400565282487159360487310114318484135512933713589191211282472390735683919211540443675540575075071402460862598088435713436108442955133942907707538591264049933472438091820176817165314965577154134200178503256116948518793183707196820017774872349203242854734477888714183406453504706823410412586386140055395263584567473514396166624817260898817983984480000984067595869519587225131899970242856506802749014434229931339420549561462423857336249919329166630689178728659111845732892737746498830236827313960138871458817254518276630202553629707681201526823355827170032615158532011173068148922941830129917161218367590831909841787287329956196594624967239362015602574088106302471769781799540089451447697571384632208103697419359998446376304867095168955115390086249722482527167153152716959491950749799561794001859504229662339714649484207441697308879969489879459053045764330283285546445990516115568573438181380446172955340689501508979515559666789472749636638061070827927059959261882514873570144128691636238111821990628308938471658823854863168089191443962134255428613469745648762338641338711694681793013528877516535676601055738564425544493499934256220533819466491621180699153198919707669559595165284447921501968620615068739750185485143413511033416389551558072752193214407748123307916269310909645796215613309847334307987128968937136158424565914088449052078545077925356000156781256569580836873045692721677146402172832694051617038098832152954722912614763391291875195211211189687379431194923327404373883612716106869067709645305730447161878502062762223267849599695256286366840538203253329246326235147695124169817538447287819597080015634731232974226403354571046299773794087620018626472772379294611126226260137993376166211717260860076953524363899137714838772239525511022205315768612216196116295054838481815667833963387353725016525135350553007938199864725756111889881435980124925050037314197422030159636868681454984024915802753850688666259271250777505206964706297511855383606768489750207399730196581833658383877951390784695588613306860103290161463934071397689110837425216019891944804176117173784391506401333576450265057307852688374686675976113781893078674719080965557371723973230945802790177749982026747489554084642629856570198116138440295179065121081778368578176202157548635934851296629233211747376995923755123727559230401368610584991420542678640012030876035050501135898642222511356873878970820424274742408688449659791270715955381636723802286255293475116427625213444590327328634642398887111204717181698108167287259689606141838825494412843426623967788682852446387813491399008210983728231232573267502968711021561626213985507884956107488336670846584018046951224181472978120324364866981679465891117596631000436175259410843060599785236317952793241932146759192600826715160434311097264894767934588405758899641951893616922060103602110960239504838877934467211959911239242646620779304991948434170628931387972862670383866394447489855193581400257166492225464259417685106755766414956261441261531980067630329188567304942774845143354187275157973137934975739776421488956445220077667571733005933827964992139592016665201568687111813364915531947052003850561812042684818656780526033202280518989667544722131451655312347414127096674727295229550930739933007380297339011535504062675729999511869132960140350092978115086309932261320900561593137424722850275810957977558826380249310934115141192722529507558032203760284697067292760557614099713468061963684014606380493712759085301034141508723205376588906502199491761392776625719303435465025154214623766790517900262695772289034354106725617635012898680085262165211119971228347350399127651124060875787041236940393058366561602570892604601022707306223961762395100059735139001052694755006812596510277091738827199015332369075027482674867503083281302340422052423704947384520416574009560156090506919887396702561482504744567887235878783978707788041419448265526551898382398186604869975044699152853422310793922094801943849698058161258516196344672273356596028504838640715998130433641897968248381504933949818923381450744979260083698877323168468454655112171327740629205499742551762148796524975802020555508943035184435231793326075638115800133007228987648644227103196269595954456733376082529995115411704409439526630869699520576133844065932310665775106447952523890600491412924865428249008348082026270900273099724272422734921329202117431433325676489790031203670246495014900301242171954810076444099633710126789945135586568285166880929610073227954855936379682783066787363263862042171516015579431582604941182487235958559310649243482671068933568530401320550127997599244918355605689785483277466890027622458707965489294038523629450411128962055364225794778080932427303142183762469235565429675503222585293050878953869223197598440066549255645028394024656557642983004489939075894144588092043526614511682194158301445779180503666555003743148156559644901394499050326500245717674729225340778628558764673232771033857580950357832431180578185948764154604916396433724031427090827019797755544590519839081877244743184611513929141080682644632534172335726119962211442716336645829936817392486978011055368627401097061480593312032765301802903826701327285625659631229117019173817314191053274981504308657015411923706140770515264197262866627413229556991217892660531882320093339257107030032910706172008459657703559395491990515515566510806710840840875994865518181640359608663801519134393580034907270248806921468182536442476577628651233866461150269999988725678178992810654599417420142710801846818478321429438460087286749726277747861134011287701731117494669792851869152922595952948436078001421164199141223183686951661705054223012893112336926224269152748141481375217467546728082796831369686816876475837496743620544573678957731852522176306423864829938726661892489458182968419045503342973637622278612279868235622538569478858630845125732304832782372610927832041175012017058904455273784181915036219876147466868006879760781647883851483574277866204675548975573569339028255597308008906746494703507470677754134117422630405052842113370196314102329224265679762817608992375589090604314272917338071665873963290061655267455873921112093153984520716637981711492128771894953808007102888683952106489526820386726154675878096603365743890340351441733109278281901449446647205083810288822546739684140935370293397618943441256252368346899648891851549420360402498213927570429642162339397363059531719403765456862756871927020264375882930305636433168820676505137076026982968952148485838999598822374437577312773498855821110889152499730523086428566226164433647365701054922361793629493017391618277369663056937747682114765244238505524263457880904686481347372083099300174838325212202988903544533149315694244598059474701221050684000159321140237997143193640858403849359018834638167313672676220467844089229181146122823436666813599607618301461459770359800239808577478711758486488982973080593540689482545265509496966738668067944220266267410707004770078213395376949790914215595632261360835490878558532964412386266252380046748348523342837713744909858055808290280247916867440185936406064259217106817520953642672886237849119999219460017798349129433515824648651882006363180721796805060446494564111629222161911526928377108497379072141600273908262739925879154635476083095295682683437098989441285852295136564038396568738238482679632549352111117823557233048834275234705238067373232229414858544636463083765747649954944191111545579983341293547365513211761991460217747467675442011492281922040322231112396740924013221681515518450072963067599526426537499444217862690560807550588011463948401681089715982394321279234742284357449080100869295323864049032439150738421598522016520146988560263175934817364357757209418299056331504851793333311134366459310783926766981585525810878283399583505722715717059338297903278186495290834668371275953003119729337757854676442171676547850173330640284784497566947467965729591889243016633011720940230530912968478464049091528562052331947516710677360726633019210387299282409016576212685484096689217439446531139342625155318604126408089117411701017745171674557984597721622409606915776186026910349571511386804616220871920295982294892128878653662740082936586372117711963777507082409827604295268735048189193890092148544043773894992714981265166313922963379823005725424522277602404090634942791019462298618706541199441694132019117912522104586476654208283254552745119215044294837412421510201432989374202994824064222172352742732692614456271197550127230947388031597309006133472919452302230120355851343738257386530749782426814271419059904432028680388870220467109858278574967996991279716368538066929102897255201319209690279880310225982786582291943924466554180733609955313894933031058218593712429613640299752912817005254761682568972308120658864450202902975766364511894280774206181936725530926510008842641130664284231002215748908302613140568430526271514536845421528925655675739656436372996091744086760867732858289058287656931101973414176132900898300752974252368188716395477070694223144203233672011121725635858467091484547255674469162530418506383737228404841831666240502253782235672850126160140694019038888157011111686571310555955653931851012098860590626815777942263863546994025811300641650114147945475567334756666816344636909243961847447174103602737230489871667246498306715069668467081009671468626703727948822072089415980675932078313320021928229006640180700815270840726471179969014635932363508887258093026275912707546453580215279576235973105448081975114621207969574822640191902626340398918697600008519680474421537724778245016612655511531943102216313897163921310211938107731541748482903576602873718009103308792520676164922376953090019819474250043039733286309444812121869060023716612352534399740363037340640085321156961285061127891986000261248277579535942845519051332328815192252827463180657332633349721244599828681131576908937502175455136384179979000936996816878125517971526809125086387021351690284656736687741028202355693288598861179564839597125589635972711072048126508811406158651086613032669452045602760180627711053142929917812968443248804322394436864501767664760745197394968035910202657662965486467236799994008526670947934374739992015034218943607943509887215382512650644329548478410566463494730769593521767019831827121376201841162634533497771916065595143978022607613295413790401889788381722854666189087260189701752705484949431532522206521721684378183787364596506856855655319120644991011938594727760197558812512385287808555392258152930983518745727719225506822478770820486240269341827742432290437771782442354954775101406893555094625472574832614209962159459204221199468292896682023360538375367127879627400082851711387680880892000366244010307583734753609543418103503044450325570604253368837501154360911309540248306100648447512159518078086495120554382312043315383060538211658630635507832701231841445441641361393689957007588299822874803593936096899275926632950146874568427184250220918363033059431471877715793437746501890180352302330011690885007646731285360080235162317333515378461809474890116984197490006781352817206406420941319951726593326412990014842941684614758117797824679747688872587767316545520161523038073517321770541868609124509226936744553749754106562152612360990779310865010830411441940731766073138030290250849057727402606253396698569626104466932959853201643679318446666312593488446261649283255238022121376776224540397108781604353351513086182560048459328887670837998857210122078153366923455031517498336484941780190814921328537525631891156202751412794230840193238511965027504453308996574108129511898660806465289277416079072777225706988713678030100497722814059439513603374294855802916307024605272739499870294489997067718906794137027448713187711214217704884438414213280749211313068205780528478834702864702965050753972174820069169185746540937131532396259205428854368009202369463062147058584322318411338724044817400906845143403891853242083003036930113401443735931947868112218918473492261247091646352576426905824053302207530198432950628518461800044067708970970988391169747554850843241927565496632302885466049664970560871407263806789624703932888554084291432653913171150243225585934746770229996925605331389834065752547514492574304538746168124010699456560620710283576616127783685910107682697293421712198381306739532916273677090340317379372094145748504851033828215314134382006526049986493219761512828190275611609708080135848770495994697487688973537672653857716313592689431067398653672492704879642676349067069382724338935396069548157257991820716733444245444150008070607570608837825600408169947130444807464272156669869980430255480131724984660268492119936879352142046595035564394420008263597979063317433269111746075617086585712121681574612289602175585135493943973056885738401469865572839049281524310211910992827764364381329518092118565707966480955902661472635888963197267752594348631453468497587277269143218935556579374366683356556224277479910268578072350859764057323126165612045291286856309385542098097377760509693666187740011191088216271007055008207750396049102229789042357797581519646007239732065981029762455747168794362783342491428882230684452202779036255246283168182800302576904736709102519233215088203962273572062548975949481556069463121912869513819568350866370161724705434871376432734307724675568643797852347573957473218281433106665908953271506237645978897308497375866296993444927767664640351047802190881153761529453159557103082376907826345361724817109172210616200815260054693564149395150425609028960850383735970224855998662716703279526090773983861745173426262948455129719871309379833911328839821899028820760506880984116689770771457205123271424937603922930201329493750136819465919900217122868919958471872029027215729472141389571183178493977752890617881614962155011225879359844540259876171212120706910330994223902261289978884121714521470392437341131327251479231784623867972292390272693159291273686221280553580793718701939158087474685952470465740562126898072032530467081864786881437774038798462933056026104102161203933533130125944200778339746123286625941027775794669239466838714176963173424340618119216058356489521793119703798516217472386531487730366596307046773140504279374912708780295929847398440444319810753409455530017832930036947183226342508983205653956000961669639343134780272314426959087414507201583440355925078578116866739033444385374525821852421396195626226679050561103547917545654552298989253273030292172441371647672304569304102911496321528019362694728368322868630970927141893069257690606448219299553429488660707182923341915743939162094004401160052153503065131894663698367350262798447379058989488373268092418841111639660538637347151307430984433868327996337348785368500605940765700452914976712908010134136454003227358021253181579743316159901462967347411999555777533378058674670260700687187870893044213752845697121790878280740864765716002612312505169385067249945171559391656212631486972101163550154122061554738673503326265661887181435349118357356246081055919319844695712321356372211424849354678962586337608767212263696013600724969065890732430017211294977131058086357020924720806908997703298166775597828320521713133578634121331521227375908194943408268379039795770815523037593623792086488779022150474155410617718713381208062820587845130892281877926953047846517547178884329097368701442225332355290173335236614911240287540423239665018728043152654159624242763373458913125247518015703490278047290722058238518896684849078087464276279258413967480157389983894928721828146539183052843965408525581609447779959416248981851127620000122447414474664330697209513534607538301699127623128327705822798188083153428246134141374889999734594877580543109226142461797722485395554086397490716697411205295048025591997416127422982954425165865785999756954815458692335125687591549478652902848243029779833264526890564523517394920972234342947874037641656069442926755480288245053099823567398035742590040129686569602389291570287560448180765256924112025397594546142593869818587647846075946422960529910077569001133796687813722442888129338590883574380360353342435528924316274248636386144201830733266086494389368029754254388042687503270272498453943390907199061574553115050330635023977878216070008049915657139337633019051443039128107849304143334743397802724412379980091004337958219820994456322535601887370180045410747795948690156943119806252480322428686221643131691472061049787044936662584418881554698233988732896294699575441181942562505100211863698284413619656571643139239895425249513774360228384440078524217125485309092695161810973712584915884453096392243842314318763845356607201622413409436559851452331065416906071477964068170055362638300886799058134306927370809641709040317252048205458486975799517907626213014835679475399025562176603441557994631671053520245282613265556507378802282343262496608539802761248069335242763365898334962163626314673433540164699293499111528711727515154736110872993307003424715563486156183985578146929568239202663916310475501720603768515186966052787959629384208698791061202958474689619174209945302566164819561836011958016740134603349178142279461624312830397754746982672893819200363331055171213484442974591560192169560783680800872337559591713776428523705106145917386524869681580689900975639564224726286087184324944954539400916140854875142977068317222824178969036000572966483339501178012864935268799554123912577053833617907564394138743911417494698621854559315676006230395242781353385440877841947647261884697181944042689983862936150782810309992350632022258551519902704372500439344895696297284441919115209219164962157193874313358410916238472340850087074439708899014090813329662591631697360824688201599061131710893768232961158288011032960724172610404659953363570373773966536073104823577496202446575858442379604147214369257449391925419193404398902789089974515761570826856058714742050206027347183384781999798887630417401173843667914082937993814428324574912824213445302503231771976948450025448231590384425826099393607622568635025733744382258687744872503559959803898734942568324430555643265978936254479485502000539159514635296736593534076181299221102647476939423610479516087887587321476805943502051225474980815335794834844064740980446980193814970537003568922254949042366622335287420674323260119365195300723536294706740667233324431073953813849896882735564109450334613076643145291431810132088772555104810317721288085495304563222870654926010928871697861790063179550993026423444800755158550405890386950005646369777620495597499255186970253963051721054401596725077435808729569791915835607843335224084082926632874741147188010793350160587570272235776513400250429469696397743526098942944179641848984544729610758636207643327110350566425248601487522170146288015228442011962504740702244631273095824125414936467534702989009615994615965299735226459994842882695299152381556951216588105390571914488812840280140169168526142238848159528251491863801075761154310416239313021129395125081928032985237264913359281882909134495565237561644179453134684972927765710279059476089514305313280207977946748275057165624063476777058435680144244630843376138556598953631473445397425734945389185993222448932614429047957731113655364896336100067587823824959389957052997895230508164953100889130425614057928274840450696467034044154050022485900945165453028387839027279668732953711805178959832168670268169466212317939742007838886261544825485308496499688715562020745831711499204162162296596789878011392472413167830789705010844955093499816192257384661965522396272084765688200946156237664970383598455574521429925888483374940291976278328746698832768359258782123921461241792930754960592331454785571760951917794254079191429771663918565588241186645016097658283762308452217077811518973829749708103474052303500694389146920396644168166591775677319968538328770281045607041072489457900269979341425564765783667778210041445397151994327561257580710237015598386704899109845417956426052425517594675702174388517645627281452184138160833823059823416835750976419758246544153174667155528283226914038664326894646147641221041120167022641606664870349463171375896159189635095711655693634672127866243439938756335336614135465097930800922044902246665460893490135070211284167273092450878633398966912439601656150130665176385073100789441833265422582154643857446108846058725613350172639989348580334227568615004972507303680973568814981273066731646082136932189555489591887634324000835883265865378566886962835121157868848205800346958693388378017762662640655536925622718424553066578402218675851611044790016012186932251407315538625838280750893655935562691416717270773614506184107417992700996337857842374848110709386266834020178732348046896658310978564614431402198990952862960121820484778669335463689806420924230793998599690029724971164888638079278194229287212514961157265631380805597275172256734505475050359428474028603133759876467513552826221531515575976677030554808392687508184765600756051234285086659143389552409739692065420753877560386309136883636400981348874832521206980078576334786841355297693490337713049361875175681488856045488326858794614889166730271504439702809979323511184254168406685873702004021578566736920979663933863635975681651889358437695559895650817939216497694960218586738307910603523436899087329449288663016326919699006006441199150454439717989258672635218114984637882622286210511738592820634176434468263259608274793018043726504848036712413803734824183412491550246688861981270771174342050616641676104273467589058488884102766293978043622128679421525227219107458385125067631614521656726967420968512382365386583301193866702941598969481798559554909601052995533550337660625594005931539529558068799787164358475025183002298932476525785224067309242557357771593702490882285131975969334959617243869491430765747284097793080387880400401055485919186061978906649019883882323803244241853775268703378323560606749488173117426520644536687646882345501065367774535888340678020512850813264480517601329319598698344690529794578527051822801363050868080582418129437271930563164468816884067363908719479304578359266425062796746523492755877977377015524705428075175800612051985693591253795926437074638042705777146800349401164293640363802480972359006262865796495512577545215799115818062810180060818915413597994631128220116894324687371557738967729324285272519204729473306090736353696845710405842207643242436850439218921760858346813930247752380580210803497906075756286091057126211187627398372741496399447070559260356509156545749101383405011428538235972239204793407597771401676260697459009338082774201032687869791731308114995361298323323866498753801856961266148735553263164155241956176192676682521785962229203270710046153415232541306655112134886066973588249374217237952653557318134279731277728723531484561159954087234576481789392926084316020266595082953455938108268450424837100566595324483643848389409843580070339499775849388495121152590191058794534134247111919648376461505264577733994631514882594798848768437058940415640807174681036392816167443722082507755621422468070863837630199413061645882183434080024902892685100889104815308775256831969666977122191784740213945497205480386495835759037688038667359771718775484668916134934019803323269017150791327821546260806282616840585329215129533983038466197422148039161395835017399919137450474661358658330347834735364620363823699607586630974983880233360927520625290709829785488576578441253491615114916647175153890449691133290341238407945290302417021940597258151830163828000591473382556805420467604751787314292520636934510094769893409055372116795370774098688718521751959806829361520794383457658339538084669386235015789835962374814662220770828183774528670167908455894090756479936156135696972267460562474057318647401736859710413682859400553995736369280830818840974362461203100042912898876500043596902957692658690469976843584043468085563544286566014290097915891330703114646613552508212340284641341613588674311326279139265169289310470104815433845818120235369408817741326658574981916451292447419941215312042304824642855458063140462904964536497255038324330233381274111264765431975633724200236635794252771878468209349040484809613524522410677986725155087870990849102604557925368201122636240007908349290033646035545744587675822391719250618580683144814964172875616746002317605664987915597591506566800772066596287782767742238945951072429814094932469066475383970858464934885000843744729760399198153687138876444277390584867916799381080745998566887499292419518889804682531525640978466191261745656912409949981339522700362244964111464935285130445568185721221532821495651285900859295999604941992080065924990571646377821542279453998245915611542311336392101833540870857867624375874164799867970055626916443091204790734745813361584289662514288942810532678283605214494955671426668646584572642930462914544305508133801071776142592769411905424409194715129800141169703395383417999781214630052900210710740375047330434862107344978553347136862117604065613027937574719021863548900552247192495050422465761877338549770216355915759795242411908643579858951028461590643172456464247832199619221754633143478167232002327486149795133514745015831830651628863644777636923986584411244231653221385108552487357680297064104697356313398334796482333399118953569090993909680745049703109387572106887758476112353804554466277175277631803438338671434790273641634976674670839339853473059636687034940985422224261663818479244060949023379342224849357517900346024800681074070613500141082962241274647354305616931716935199750216490646372686211156792423973179214250729899740733409223920004018617350582229498465961181663676462851244970091073559606144655364719352052704874193737282057899937139224100465955378478302959568513616538046312689800729154391810332331998490812672679529376991754123397738623716503585073308939310894465168616749933315296805279079128212922519291065215737942076822877037777331093873159769705192079147896733908971970316906693322859621267402832227089818659570646609211693632779351617468682287160868631167731228698827056529250607855660330187343561654179780816958579750012800218299621171551113845725539100199695086592516484170418359831682335378844498425476690353853873914115155249889536714988045308260337421396720059428991157287521510442663867176522087724760693258863998447611537368993431143905720186791787189397341455950751303109868621990274350808327341598396733799169698758574030946706097920067925674303728146330673696354342311973198015269797966718551098756791203294450727906072733518672917582338074839178797946383201915336731777818974307003468288425143979819685493662148446478126696622255331214099786377824811418887034133193271968975393578387265305046182030378308600962853463281217058140960158541090319561805402090891454995114425989098936157025451034724211505202001205068660419712094011687658188644679518680916636164822265028622734321831983393378700556815927548830149360585442992214630051105922009639420889062029854104611868408012320468384498130670662849980542286922832424518912026808264270732805334037584825264264995513908524001368648254379688500420217170135360049691874524937939473257997671698663032275646614686509938788205630378078953304452473734212022229670069955356584705937388111682281143975711678100824628107571122532416139770722288402369617846716328993175005705579827117594635849147757449246941539067007919788112542549253015023526491308818554628618615682221993716019289673274407272466177753570728604427208060259817087281416442128752872438207147681290724787582071223260327756946639474804610607203546753351608344789402796521836888139800134611705096464428034426862359975510382461732548045147898789404993182297140812714749952941432215914947866081221852114162771094885123011542751451576786572044403317448018424551531325058227109923591749746025956433491599666279934526862890467461215616414766286987486416262429971373821584096062402452015681360181594488289096415659940143381787899163973079331720569505488598314322167741986733194945312617183855765556082357186730519973690666700125286612590245295244399974130574375932528523411401965022284728017807698347642116601115128456399276082291015047246786045681949020860878153764795253814255786027324456039267107944368288351078865565203765416029575594019215280805784716339955832808671386124223008684018261351954484421330159865606201293386806668887129183352752608866597912507095479262428567841148096546827103824707496179012392362213573489596745166467290973137022374257439884778144989338363150839650447400997419876979655489971039608139132181738789903290708516168729391094518357306680442188904302174501525738427059989079395520623937423156564519531189253760732130028449695529446364693394360803655756593798062453410713257908198426698331526738987200774631624967531120761270461601259584068647842406423399925255719797613162323434423465056621980919988885522944172275589377731154615810164700375798195728169069600117159411311316614793638721950497361379362735072665055282132854327914184391653815913234319807445656063814580953819401575000539288465472282291314033158323455095798109455214855786417081267718337051490821896666264527766872856497533694613018808174287968315489969847897951953203099822837473041983353035948795353113961661105422190529670982236893987301833383239808530740589770881898748098150421458906437044262417408040851818149010122118878891684037277489316601864420519140241791680643275043637435167835264800073451468279664946408347419086409173179278596493908349873843351002665597690118802319468929118365218677834035436043033977700050512183880200974323476063422338566083159987378475820173925392794295578577258641049368935916999131101144406246694817035008939151968468321519830080307807577627512877761072970555272249634588864445095569270400593984722170719861991369482197109403270704280553203670053755000077558356392262758006393885589560495095181053995191373970182176657450015834429061561830152125322094831364451171000797459639426560253794648039067926035639870151837889777510636586002836215965268315922408188546884739157340725839994488728605024438679509008946676303807944491668682033082587833921842690298457276851049743721376667815220344858193451539653283501113492474288721851415956376053930770162835524324141139708123372793351550808125054080861239523865008984287356648558131218935386722990452941096373671653683050693553675579708312987060382234070768957552212544024566891687086155969207812512769371878114925918838012201311642051397721886195363414687676906524690443889060237876696082677841106154133439575804074311820346795591290531460882488871741172760833135994008122954373035146164919058768675058009929370651235436053692381642757107313504825532828848552041925926337273617518795115267757368016610774133743765253764607782804191372219300690172649179834180099142601456192168186339596324293832667878293287291333418072709338270771910779428997450078154499843919171227863926603538462797150408061352462071951963915797486669590506993907974946224088909051478758263476566967750516294771175464709306933411608180767255329526257942188516157971320986180855051557897168273329175231292083369871149914983857880111750127929855618298305119096488575120192297754337186141846603027646846699031427300056080428291932535193863965047889037730196173518277765989049031223740188238042981678502879882346252365132698118372583026115548427454766296034786534331176193726809158117583597721208986413361159555629804353092252254077047442426810532510154504030132799549868478147246744459196728014948524894755613773327066872723672570601247077744129923901046358973787992938823387234355523512062002997646796063478804490930483344772987748968434655701421856892863859261394048330217904313769443270572888316163014275869446138958908445314285267489200941293996531939306518537313728817904945270416574517940975687474611399948602303143862547740703518771555710958584320557110232893425313636176195060584709993809639468307071459119029699421421085466106916436250176254330420021012024346125112918899659360623220088442704556747082298428570961549209826624323376240494766841512961939509156041343752771701579832302416131570731579377947598775215585197263317974838625590807207229979977579756156806619774453376266677889326502311127868048677523584168151377081316072860938157456440614056249071771836820152426702734645964204700098577817219674473595329048985524528621128226960821687457485563618402582948771119067037854845193581403029532638397757656565317825548121826530929616020348069557028805338274867955436332137592717417877333031137135273070425399658251423484440740013486959428090525703547576906248050623965768971058245018339703640355908130408126445166679218233539989654768486968929802975286360202661550061301715406018051451266708602096637603976001919904448539495782643817084751553724948733809449301673263583148787111309014864388748585324470392618564301886789083808178729925269689310803248969594112538230601338709205037153541383629519021553348557937052602433691260478585793137415381085156359625144652930507878903116242155690569797236969156041345882751831039663145144899085220654870200428563154840281667888276515738488338533649113827270819612729813824038463137709532762053894877821695570359259194824376190845828654651836192018239944108831772064603007764187390749539882368966082294406369751497650766604592723416417464500512722292400077917177352687188091148782034166341239489831134813123311789806210100908807027735794052755687092418088201276591360793802742381876164624715934519125993308356422099527205743628130660305634137493155088381027964826815389439366429080584393426194959190811958403534914295741210514041957488194389757550943176712666235225448673453707694529357267406627391767600435377734801178691841450793631647076013631753548319845721330778599201806019268551757733359883294075082951380294274205531009130690525993319697479565763822745110468272922732479895508730300537612794074599515410922355625859950640436494107457507422161750889420290230242947807382767115123726615255810980975891238889034637310127735935981235042034671590138050891077699743704545979850943883841220875249364997327036654141552739116780902914451927049687616837298869090430773963905793451306527446053426784662548956597335980290222488811597420659669976664379564465441737449392381085502351603369260243517503692404331531179546281305863478374425316296746717933953756589914926660010623650238172948536754917645815690547666007384424632090660812262992623924076188105319464954956725156963349081431768654353982464519551374563339068105793465007528740009451621631205386022816257709089971223882482814773261504781065131627424368843585711755177618377567083571065264247516003339568556701133947990832937599075291593704266950184900381662767406780946758595803275152976222615678028751491332595182242557303579202145817713318764310728124351289433003772431352966674970401489796372342650135974101568042357772802141634595306500319747192267758670868787224690646574065940339918746154179056014007733520604827723671981854132610543254367431790768768843098242056319944846984083712514711658407038446125432054734517009172722566941598876524487821357485916193013537276290273742816148194407143059197154672851285825170010137177184403977537358711380802788426584841217753383107547677382117678228665696498024819707315376057602940062128636569095869859981482176461333263427392669408065286161989674594556611342305350537040774828426743047243452740020209213368604725539890753177606266233028554398722200082720833975141579584999849351186204110186507515266371635390596201684934809597241039864086516856872562630893615621819651500382120950090342392499708575638063655398383368728779945314598932534357355640156384355723732604008816739111244807831416923130990586548874217340750100737697505558877960888290737193437700818425248849124709540517860727570760967232079723026991307273082323353721656127261063539054734104610863377396442695674104050781377081155836586654047966223206887236655098402204399146066521080688839267866912352923478946159078567362048339005015793453583910548689889737931382769283639343578396595239020706300621810206038390621956021291223943828215506545597049585149485945404456696954025948475949106121081448940767978695331244163191989652588281420514051256278389139642351309052682745765592926714159107898416964747185788247896299811008002759141754199623847102782199064744508199281889421162130745110535817646653108250743279500287396704504622333958372838421967595790030899958921931205152837377597792123180572540802718989226229579446102588345793698820776793574649578852015595462619603307964571644090139622920202461050864802768307166506697635073004074617888263789553663157491300911719911668002194866262632107025313710863865750359964961007731684019772337122609202906191904724142874173772693371737014349871270522236390686002987934879899251585833935551517155117422508592198091614928570999705383741524686060880648174430642228408165227820318601549250288943732881700971096097555450357161624964556243911630770627865631888749933527979204790038786885904465583783656397966378295621649842052384161584048154322097295829679911389321158386225725213263712543027442863053471020038442385556269238032275610243367068358870160054773814536915206827267078366116625641304099340427246953759017172601696874212602914313496332670639816000388951859769432590906313781227438767353119846692445653323260244598431195520262031670604942545817485584716923830900019610186887380809981529802257498548513990525423954620473625456551128952663790957642170706687876547292029446203786848105680820243005815635847574070506413894610621867314374913875757103757706084080736545322355122916094727176039566850180792225644815683546956416980070829759098651886241007669870516801666227903274357907845732075183660899993210722133693289750711385645321330469158779770548709794780392511914113556927979441662819881437074190957310774746408402803106548659782505239211075241704857398013482535527941739615304368154862002674202409251921551815234842464632676997599751073022282251911867020014228545679505080528705070049858890047927601990234260159093834492158460725452254547167224377890547266483457548636454815749128886252388524167794496256714832577748231208826817014706719550370481254833513806037170299378545809479774375249606984995248281907274008092620299201271756294753424425887361014344524123832954287258094727501819008606474760696229573748554460330137320687700483584047154337424821010790346968227134107599215630789455740376718540529266906629618437020758885488377601771032674787371124044344533427266909411760131826396973606121445323729217680541291208874475265183114826459585050999506451396774474222509987501772832186909334053868533224901140043249968760566598041893533666740434025356094332515956352434213102152736612039976539499661300303176437014322748180662327940557865251727817417548664753627134953950371081984370755653874633440140457731171771709510378968369303692938605183000722165451686410977431918908797474341719204345525220638106487720942293620095417928762926912729334608140422512617802743567356085742616380424918097071983893425510318882993169123096005867715711945020309399068916175013886623960585885040095695482894444508352835631616085634843666588681469404148903348634111659824111847129311453946359816236932002247302014467855028748352614611489087102987271993985632119677480388888112742595872572983018344985188018546011434698217398378185172314820911430436900492733177374231360588016352409786120580423916127892241730512920399105771128089634605239593412469513790563277534640089349832100490471395419709664378183948341767086112105777722604554648700503480246903197226769075446870045567745532459668101059583257858686666549120610839326441994736018419255115077102967518553358421486828800341051118901783143436280115927802859800250664967047012195639497512312289967236208486857956928710924053547368737738317090556780993492950023755667586057093061504842294063219557839504042111436962868619071386087173828124481975268493689498004078471472587207832616500570902153534640528807520180819025780823199264713761601254438728905080929799248957604093967811004240249426106124051940308430763422241984764844050279592852942140027781291039592159964616507971990191924563530767030081412930432923829233939633538306862753600728910228426871275850233369562706083226876534237499377597474537095829962435436306810292603308435395271579889697159979263782908022380203034282254749306017271469556349992423143272822177816806298631476134155733583418966817650425399241522216662975473285876166180441830899339335195901572625484843943253848809873746046786691128867703468630405493361403170927395280279573353455118152228695411692230544045558737415212160035757088453894470536744695594954814250208880261861353203733782098253459562369019367667350720531505590749224341388045963652245108399775610316287673637376959450886008574280447504807142764568370884936479432321625166287569137340943485891350723306720200654116432369348616348008623386888245014244412615947647199644216911919055320293699287202738451869538721236038051598826563409912812189211531482307363394893788107568221109779213534195214135349262332952912439071708014512726112367635112856469430561743309173225522239499445556127392281503749501743524072488862691112674933321227851544424350481905778082818141135593369175034496012870585193422520498285329844000954940208572446822912751017877433927162533263640085696092276936115270073933461178294283306027462767916482653816609396204885485229231181743972353447370008200860230903220330531141291749758425566738154453802319398626054602478252190319425674154455398330228779056475824621025590003365907641944051545159560652486218051961039620452006799771295820176583334768653797329783138382353576974161433618709833013955342810782722329554512530932744695665507215014780403856551188560944166046874248512822749183011167381691903694180089859764195948209172052499722565105140810402586823297864269215878859832210419813535187872034764537685333038012580463402519484737714056281955335076697440928726952250096709543873146437242214595205198249403976541029578003384889849517645500241710838865267413615193684539248529105583061723013270451103427909148680311231025735568526939606179913799133045137290145968623981004344832957092696379600076242447898930298338260423492826480467653477992137626533710624017727460315305261369603423385447307594284780207916395310585848798447260053602738085226796810854749526531180067174371829135890038991243694222096323419385074493738545007337074071606674867879800557562323590610866742586042224218725143559619669422988847402635522508958128719436913319548173027013061970969295525020167998352798300347732893960049468775418485874586671512126775183488724588198064379551130286528438563985028351354641791424990334044650388148895576755954137838148629709235681530857019355780113017931304198361604512210540152817954159566580394183197389154059089120229648097427651198382578078074568966715623138817065533769606340056577621123921551696988856958885886029512438496788370739327065635514829867172924582111197323276033711636386460775822347368224459218098927874331114371783975634410387182036723241930328698792659550536300519027405052636642919915302897294591856708302450793962759541884889190181105247426912893990995253806257714828133130529699629844129716595720427948864154028123737192202589062986525614278843212729514881843992946856523855258513237371706013292776225410924878538231739296345220356981294538275605807925762847686985795756576555343086447057926490578320500107664539915134391454952105502561151740498656073095317505367851532524227238575980929234139809044984316563144297092620497266845078108244037036972018153427182579830653183596219205838461775772546246050710184810536099358157722775637662855261726069445471642751413232604899226093383229670160149149679893717974368728407570465186774357112597885081223722535979922684468765502259885058564247967726529022494174408923542134126861474221221541612655646393272468770599094135306975913701499751006767270372801380110421369411978923753681984961698376534246608014954284949376478142508269135155993874401418915594491245806583197494953282849490743793376751947351674141461824128432564244694592865228805410661051237374299352175220414036525636940612668634783974158874979523481172571381163288254434511346180496749777541673241656218635518970721567371984697676698890429436115622461513171742083312591623035309047269725268529680769438696157010648341625104340353758467196851469049660113380215320366939036983943384395394595603782797844759842184806845280039960185764919510828410553888182848313281665076853753068125042796303422729408030741768824509918329248026761834398389466679655432080411548882127348718242827096586088102403491462590177015346041050923772102236294846264280078943605097524642221643328165884215157606270096810568212164918911981351461544800945819507969846203005507387906693992598525417064790434907910472563168690009760491758903106058101860468677697870084450217794848892893324600478044541374380377050266918294719307951620333503856036192256447986956847453998633390601905184313289966120979319274556144008809983037699409307487848635726619945728058369343685473855555096676216158041397980922425010291673546538180669362590409412303986054578952492168728442859537495496151085029527917263032109896329460026486898408530428970577985265728057516869841528545480418149166474816915229564647097224809025870945586171879211264353160802771505554192322394747209899111388258597847279426562119401986265942691144441619477885265186625860832497815056927978307121886362388393125777595149496483444541111416647580416034398151604947951427811165107039468586391412776810145892785224259960948850501236704660121663070130165142544385051596284098648810059594949299248265780796124174642579735944390472860096809443846428870092403557219024174000687719035966313366409932981797962620811079326287409795874435898170369108877855457699268107127333939353618650343226446902661192148366346801867455682218587492777116726692317216437889018963157263130822887823297105903204261866970305153460224633390376934814478683198089130199107574985187500509900497534732318657333878375996699478950031142720635243661221253043462963249598210759879576476145121378564637037076729446966091008707474727531109695701895627747969441130918817655351484903555510750181826114926613035731180147995770977920152162691131401708855581035112229304897825186543463237269031344945608056725055387985240143573160039336187822490690139627259198758066733194925498275514917567749994287039309080013186040093421293427930168260975064558980375607952411346323893463778197214828792161051481852802390357762598893083332672958905862805493928574827178800673493560047032401101298586718739486504705469034518127835748744367672788573142615729428059970857221065952397030966379587714533546423352251730734134246379500038105272727614113133722188800765551726860602543047934859227804492067837981736281710315190354269582329050748309523492438954765796243569531306962253463443168464087442580422891064608411210421805648912967494549661003028670620337596886370483852162724166543262772016271232107640013883973415729745081151716252982060199525900347822241591970768579205814283421560543775815130774565313305007205031684394362123848948660502215679341492552412710373203814999218412619149014370877391381010592877227501122889155526877023381342169147640484563913369912952816655163938327433177702229160729462249619281331176955966852465820095798759050861373716121464725328634506832749390746801337005440391203894421319733051882741271461344871451598323179713092350214307964558274698068199980122759320766357330760710551280920967613322957467408525466289886037571575290097239066399411040212515393941159893830100708434176918222083670925013775394993328978284545206744183867553446639553843593797888369799770498349707614006244242168546294721660637577475741209937736602929091493800157803385134267806010239326415262367549063708703797668221239157671403962942272169096103786050960410624999484464784651082849770056828317088963487080897935646237610165368828219472458770863237013916155952187685536759578182569438899171578533529082431905383922465296635434028964556795150764374323895313001002037972872559364866016538564052090739303339094781638591764637663684550452346815149405707873910706473759534512178902516813053736456312478928515237315313812369195490199011835538449954865205759296914469319584709402164283070396965662508624683859238270184738526754590533917352594285808646741499610440158159022001115493803518458291249663156052419148943460875676222833039827988377221851583669092853262952527057770547716039816823866679184599486390225036581444122455103000426742735663014172703205292619357291484576960689644631180630786681546024776030401436737724467967083564238273982230866844184268605790011192527161910317406613229831626418171433484693442090039547725173499122121452563731680796550647671133801774997467407532474464930202875328483921034345029424687707942212962161393578944609453279052042088955424351596362137960043217334064767872863053489215746316711736070241877115288589213236960135825385488866935498228664196876534014793299209070938696443087445515938969698770393832785713212823053071522648999016060713767389868264434984252475285886294925448091042662327283330293189217820028468289554640382259319754580919605900387225017734660531916263731896623619256476764850264422922353387023041453084503793487022825989378369141695404312487268905058447628643706673487522096517240386636253184890945005745468497994296849428460322286958361443488658911896114669429138215250421130284742442748649098169512758121486857383900301008978587125882995178565904570868950928958525426387796331912789856477605410337853637251115718660938164296628198090231741705879241577490516182155780631954325804032694529706527177195175903158049892674291983609136178942820646208214273381875156273943832430872193323927388696807177017002347421748304939323317322645226033779592126483219095956282937460668204162224029974757775122671885606965541777949995403043715592019095112027409712286137404090618624448782615617858388747652171405699970990792237513145345660226792792485165700204438863465437636663767676979320887409846222463385275881999315265217942704557930154591420436710054958830861656863380944424899259849579650226409649036468223150394672947176840340818574648337803374246727973976361186355777519142410915608706375301729234146325521757810233718053981065204103750442926108492711108146552536602042272323058334550270520959350309610024947746382572344804678447884147804315905052253999368403775639593533843745498922421661018231174163290104068728689207987554312236976737969157047997619396785614734510380794874984014357048756703919075872450344323595272020478639684336209661424171511473414251943054642758083223592046121739599453537188712509811602653531466342780784095106137729700377212274446924819921513621577745929186453291910739998968336113762364578763283213758635025854706080425774049781632877428741578912661060416912972904567186829106102914639515557513173125682009997727479870036383376633015986756064299525387168279006650267745272970326023434210897663212352486359763926924079993810543122021756524429906217281185536441843969700389091670181621484243965641516706646062950503666892292097787499660530273941428229205547178291747779964128892331193536988097426365991018843116212660865297992246784697834951149167143849183425714944287021518470229330027520319873991288976757602305517252248223934992355971398734840917639586926674086786498986453492346208749881444764594782446308991919834802257732051455279468692838488741934893895868497519359655256741915064707742980646564527447055885482149057343821231791314422962509750710003549186604310210624730978798275969705604527355281630668615916052475949254144560691370894732599229182635669942396528773326653102192799527742198218645201179667047738480435429161478914413904071780753729850766241693278217352588293355879035914318596817613842343962159424948785670435289923461447672561912236760098836338053769152034248779257983127174394021853728612010119564184967737731157719256303993142138033016712898054271728999539320286481352378830724785563184841740721547192467480582836667561235749473495418246583589926995124904641256563939466020246456873308621786294602918595645891277283853370859944881521012047925440665922734458206628662039791167950201461931132651595570091901273552888239355526273534343343458421707924600091113488983424935625973120376959432756361882823565901430978376122856166570839753129375952244462911754044439009112362738844933466175509271595611853532831348655691272469136930857892053610594856330595958328907008308691439919229306490957119102567288629608766177501731571153211635068239191260846313960376407121281487835423174152484569498934312474144704005298601049318414672796263170899140282753843267583948254894365441011253492460898152387823744883980759869695081807160918147555728452082037233219847996834164846337532135507794203826893600408305979423149922249867569502416107400052227732682130617135476057924488886561789544394806760152084054247453546656802054089102099041834400037880350162658549714295575735011582846810519380436828589824560952705639104363576302310748105425078252183357541842265806580449515317946539000635148257386856894420889217609498868449598763488697732969458530104861753249059692162090261499320603091943141338561904535465533927183957661068125472275363353663088482741744604232162220461775727899143866801402937146251666991254959973140654514429406778709032738299576726397226166289510058007904711910807792072378476303058801472867847825617277598350937066924107536538653150238750592322550351861638720994412471093891270048577276310732196137015642320770416180129292594727141574448815365338810977836794229178160643906389859655986453441557561248955185248388596644464122478157874496787339112225153578054984246694729146267762885011515735280408013527266810044479137280088459465080470483341607258899036975732288839417576644825009560609678628817669238299305307780391114771447748206804897592517454034790856082613585479428134808341572633154686262581598072148948044835922888601827865628859396641779859683310175214127121310833107434371866519910317721748173405399336034491318970509421924105219910474483771517306460876145825170579635318711619789837356733574786319714043047641489490572025131085824335561605438147998284811411803338709859991222485473507680228546858433435774999345034087412972177048556379725921011339422037578034899457607245709422369914963361282992142898979682159876446579577485145845574749600540648522094591497860020667697377226671987898851190683343014655297674646266106860296418416365430164090212512466892439651674826835632323496743511025040550413837198198584612337855693875057854308890953619581551313451274800007939109397460495929616068695310034231838754369164469696864822060883448750136674767981195445705883316610202882134303299866769620271889227917810913574270671462723081760621629477463521280434287167498884324939238976804392917317254294623983455864800770535053704452346365891665272405108542821978711074995360852572194445756110266150939396624316344445826885094139930659744779828728342247012211867127014241164769756346202565742602663620202107338314592314652075132454017761624384626010980315373847279582932978226936596920575027776542015489056144575808002499147805277421123395175204468705319385470835501981083873094515985719508843702849370605569717869424119309056433502392634908685369410096522342610014155527468593238606774183566113419670717084931546910048886529585833984484859142532038852075644335798067679486371962421449995706249579941981226233527472946219528953904946920559793490817174309853022056327818416063630542953499293136452417529078914517570397588604426738365020355392403501093783009670413108631104395821815635342227477139901111903497557955048275577710849732102561205477339987289563727996497194653739568455982914885189417664962792841995624657384928100208341972619323213973236039330452381786747124198286197450622920412648070875218856122573654362484787767325206349349316503426428812843562006435771075331070530679634325748932507892956222803253363234591882626124898397511403409050308718380646838210223188650470755384306480461299780276037849540631148630523700900667309664036018511023369428158205911954699190735301989502171437984709141863645225772739643186801805753961569173413860155532963451862374289942052897369372259562992645741156464579685787534143993583207939695914764520169544256546701216321854502412727984317255460672076946395954608604759657799282595512614380238100785813892364328873043939204949112642636494322104844883195146607351052874055209669259756048331530300317244417428797726002733068824652765881609671323918915938416853954689666392915846954408459710129963055854235258819714655245608958673761403673877209844329566057940855091161332928221780335375594632324349051138539098568633303016486751366936235974189054787837716372683857275200491232587301289693290803703460976428319727111674917929257652897659028728169776364353530697209210656350539066267646106358435072402292278905231424600501727304042943606760679372767572388892183265313589723512469147324544544754381443686006925730043369257671634869312244251705930881985947469654307747804620826115590630829022004663537054611626433607523580360858015572363958935846528338221105685492177485794020692099156521856726021678459244409716442047409021009670327486627923979838006831116298154524245193215289703228256065847638382110092532309133068042085256831697078936051290968816388704103943008466524302243469168110059037728444075869792050020499363052044997541613185233330819146373158180389909587722742232800462822523208525393622505972510889144382330533406524220072583677385474198460275032749547472977058719394605052946924539270767869890011697773054259475373237094157898776527676885950428074902832927734575943357485129249837649603712827168828405235713611024959806698761847985907999415675966745120684993120560185078574670238056899903046213087636997834432699377119381044674871756051423431804633769609324664331385414381396996793744618506690193921392213036914055043112491992111704004408023575363045196400142960769105088681428695345017175243826461425456782605381663844742893575711395771807225700851311273652026108045461261040607682323522573044858225399690904578323665601633595166322057984605149446957330264194673347816889332636668216053258279775937891827157498623595578410325646656572587276554572420279113680798470399221327566102547419407324992843065435213119461477734455814893044884959510148649657625509481784582943542398759898517389977132537774535668024542571139613106291822839062090930340686010346127057719555527711154908137539857567705106092798389043383285485218844888245945859102080345912499061823650793461012581147831423289421248644922030508639865814439836006772047225689534607511822051148897015065811267280459449466643247369877738170981850192245686968675704642576143825024823320804824211363715217172390264913994391732618652832623553825710659696575360592562141900161893556050588166641175010825672201461656244546511803463926234203324679841689215416226107673354093551056530214584081081353378984884415863187428427907442443830998377594996390748133525899093931019515135408967112448778209743926323215059663328834223179350700951309489435799338702484098713404582088666712472314059412651026027218071989097296809844989836246179600811646747711272062755262335581169846364168577680429951173935333656769975583391322636757945981130815077490008932366684214069969609137176468668471352765106501009966879583306871314433620375880341807239750296261940483417507510764560842780547788829268734279445389106665290909836551228211448095914055570869350131502284904837021385061584976237297074916251915035032349999326218433732994485596003719011877776943667620388226305549665932675538026216786739672938142402666531191777126640539318537846011008538405580408278160327773822772654367947099741209475256981513595144359627178612171563238478605298389086611663052153948613856236674309016911112821779670194420998359740900644334819075565294530375651103845995364548811570050340140829668635163758264996202537033985422032354671174857461557949386447790819557668473993483449004939193033512737676822220238996645433250959063053045203245061662496981949131979640285928298768027980812031594668064720338851291577820510380757958558688739479704853316685341534566313421129952208584224048648161224241580073667762949798003937076462365729600220603791552188594229523138803704987482141130741061825610916581216158496646160343271645695065694513064306232306613670408222510678268096151526962270496304605143210599186885321172315442545826147806345382745412049673655198080226191093917905238922245294143297989958717882573265929469961629092465335215286910549771833239552794353831384689295453776096502457619303776363397383392186669147694622581246378239833496336003829294143974026727491019491550857886122546846085871231904214007367901416692529122588225062544795004465680997289943601122751911933339612375439525135468458856083563064179229610201726399132471966445836158919343001036788561910621920870225997147244108751937557365281432942815981173933401335914401223626140729580842034237797687113706823779452210534915331232842466003260515910722740785842682317170067869531359792629647074966905613751931967129889657512165739139187008059327107780332439143159935119358294196070795157139924035444947687515885226870892910832622510366039774829783229084387051788988979129656299904884120336537312404696269161235611016351665617453237044115485809220339890493060272669740575428422404446108244277308364224490443146129993145238839675271968983641429350139549713941089417056510470129118061135075889534993550902067026323399175838255783181203929443914247369551683107333278010199915614218970108889110930953102493270202048072732883060870778818360201986135928829640434039579335098801897669745871403813156207268450016393693915575908261823776505157638317363069993264284238628325221183487529303982007135883561638751015076103406593366700073056236575364822795179453964547091474162622869079723640105386012346669367149251101588849545961674945443482246096183550007295059837702043469660339634833645026452276050983629745064871839414011972720040273539471009503815687008939574276043222892446364791595049741072197109134932327431873055835668497135221869483663225540679532829643438438253747289732228653737774294229574333061325527706929074245906168334694320387003746578457781496137467937724030962230021084511340109855648740899525043735799913552870460432284112130603767699436715937868138852727881198747025467036747767548375246514173174459755208852272559560200480982497674501536961115005132092621226948200285346768629494950674985931676067858117302590675098291669384256732874825448315718598985341340357712918707918563283294065593313084547556213361771415715563487711361942616509652328215260676545539338323145078700041859438554320146097971049385590159160818604691408415173701571304003994134291627728301840614922028336384129521443130251470714060948769132964448438875688614790062955238857342611524390606069672862739209969102672343036328832650499846257119048305427839142142793151532160821971870905623522456759396835325776248350083183326633816382747736400699345213885970769275590675644915126495697386123127969408625925576061357890036599476757616718794607926465372079862597348332909776285093093343929962022571422532441305107116331574393989282714158498554448602668678289484511964053685761933213092118103397829760105844932979684490971621554914689939618110460000176865001926945153343111395938078936639022938637743853698154746201526141271831382465409406077255754180474418550407842791125188684167632686215333553150678812807578630311267570870958793135748054798256212242450114878207490996371043639451747205802821977138468481127389925575854986913010508998857615963521614672989539205386780972796957974937026043849854392777835714105627138018420750266263063057063525104473460827909960873962258587663859381038694028337189115703215847132879984276789886253309977694213601506361195784245510027341632849386898511093183362673699868100534572421342116305745451498020989436466036312053571982441631772604882086008607531386746948066448358682266034941586218840450052462953250138318855523052503061429925589997307322609752881273235538472267062106800187840219531196720729947118833107261083120277924365287022501809607987195331289730334178328594203898566657020820696179155521791421616222176748799854787326092971226533969701983224142992836431842415589787098777234716627917384047795163811085858204863013882820556984096046278396071021095563709877846384078302715320647879555384699927019050483865345016934695515022340736339276052791314483580978259969567634464741245904725792492568080037264819298296503192681788805674995390634039941153496442312417207143861185241584055227854169256443608273666214024297925455503797453305023921906189087724354483543071462817931579859469335012338308310005453625185972823722178120360447699522505065259715036466509720118116237634457872387548683024005856212237557524451207846299997984047038888195717369993572141237222543675525227270382967604901782318020959088783006357364859032205139151570167183867397248816758233899098708750378974177982098210833400936295463617557917524451506542018471606262703086213091265524545149730075217996356549787780525998652875405125566970014663728380224572207105264724753292468633143734481134121445279775757443441255125044648001390095021882223410486136591696230437694842119980724318843318801630708963888289318727394811638013940945077774980469430119597402584313201118452324440842915357379840145301612328650084073149351629364084778766205573908360695342866922342673108838932951168370990159867278261462735370055180131572628470849505883148891679328554943961094945886674542381272634627326989971564281108513205797765721846177563562119402324670546451984574847103331569852344963956528985252517486791645411538416742342565811512052867219735450232544775984654375277927014935019828760205035114001446449198378114930792436949904678062719052480020585098659319217992918410697286022631301061442313144762233831164037541266520741350104469560564661458373467131088150748623288884110020661635639873407103782678384327247957704892783235165142561982380779016163843273585350245596676786099752435106552973983112550889343827214638036111946462059865506106254036772352825620430430442019236762241080453029014325812276579570080078269925141065219444951177053000649777616070075032474673617504741563601503171147059619705943400525784377614143895792975955985176750810347543749798057611232205426271884144246906723347929080480957352351207618631545813283679051795777692010269328446273150287233065102762104675382673010783438168322602794040386830120223593453440525252982057765759887994438562417635786370726079845375421413212861492835905446851101451705013615321261376140307627191380976809792295952413248839721447876177211165413414640956340481478875954473907153679838612941616794225914982189310083355626395147651281205017100533863081107893392827516387826982801205412157352898563246334172006466071516846455806956977503722762106030753695935648075573597208847167638119593910328263344894556234383341908304644726302926772428298552113694099440508799816278554679497066918578386892270182708909511230413987163272811852774907445116316421727983423578697381527691435193585476789783523129507214620108300590741330220803028976239499098994976422676406292672994817753145480250874688363723640895355620250853024441251276692327367198903837457047839981976405737445085203373934078326699388206421300253131531657422917346004319288214186553005951032375320243279124319728306776953168779591567048658361131886753368868306132665668480544243065679735292401532730428232616961793889703599570361660590015945419815909237498554320878598053992111720544678326804393861869721803317532731515656310732060919818370457797103821559530717386902156582061498281965769750709277411156567712396045944863730784135687701456539960959796140391984294465834983831429275178506897324466924940544729282772095928400709033080282503569128182203635904863099533041000526102109390539952013363668209080004412992005741104365527543135760902721528106489237413465791080103284780552938260563970888612402564097733333020072452881194897717861017680841892770574266640550742077817277475235014385732856805949151201673392745579850373150423688517615687373023450322226662831905217682910217030087562900776700712467602298674997090141518341713122852123499418313276758037621002277700826119413143309362905059552180221591343633304598317925873414192077452163595345618864969827921969090911755111839959037601223854078311951416790818903171241395096055123664703643076761902666070422751166611488910795828946235972214627752046972566749368091508627116424513992168092158255596198970889717150779830968271142001761766129774569386422245104499866453997661032581530870196382054580616753458668054091366171769746662980971919444304694527485966245277366111252162336808135049203783283347143297632455074807700947182120398173392986220310702705421166665400796956179016250085467473659104061466592659030991637926585926675065030719967175820097514962690053813197082688522896130409518435743154349743542877429111588600499654853250587051033005588621897064410427350031588132637566234509125219972638762220349252673982470150656243595896341838382425493180241108463203416258955892426223247312458955814622130295772407294236121988589090571227286489983365037964407437555793964218211894542860201178770939752506258464143826228518184997159328771940145642551999345704393980329111156615902079749888093172603020894462508618096690296780509277973717120172486913709626475568557910168755351828526113397522641028208967831070769582959818002723061001837326815918339707361077306744488862573541775545247035524092003032181751493060422016918074729616162108664915704770547110134363507916564661631321542177127765715009487954152404654616246989007332723776501470098764429327205934468238155512076512297790184707671765836641528077495340554564551133375967957489847084775223735732844926701560488298945234927564655091497077808295915154591562665321465755918846643966352851302277483968058902853544703685946960347010331894404831649493419831247966229060810992086704077024789152320767860916213414571048440847557982165879104272400971098069655545773620288939413612671478784689557014805615222061562100640630249173637633787417258081245988950711836623881903950543940101029103519352599388771581264688583738730250984165843396258160669313674965248459901767110367065864723475090950943491262492241018342899559670172441065732282730252676130703957646266710415258391905569849834738783021767555576676678308770338913684052003371002584119713242539941780033091698366096956618025884351904957290170704297948035403360861073032388933185225941071601712827233753412913518108092902231670530129808850101738058471507058916778393280669205819819749041522604990572914268646546943622259111098895265696505211117648319391996814585632532627504632142432843349419028688780482806511383665315477441121820146580620946936782475537414713871885799135178964869975764473441482756305675346279114880422818499120954477817221295845299647523228965487261866786245231813483720985521306205955958802403744274688167094605427798906052622159506777812166577911409236571795168542245915947333896808032300426147984333708782631478337023574980797323730598475779152107703398679315915109307195888231909317406775824586205137497067934718400425246293044155159791902677980553305255160434858835359116375562623362118112534179366989364249729409065228669986012883617159899175148068100973939503124235343928509662925575403076257995455491243785422722717503238817272830393405770580649921614077347430532408230406751908185832210353497864377339392579752017005980026670115069731677953128294753243534193799413696002171661414677311628992342824582404342681182750445224496822815959662403235881293502868496555430771440244143939757395743076648309933828077197507410051791248108548914656923279896588903577603421372280897115960943002601395428778197826022136785807987791008549239387691092563522639563318690541007572400763825363639133970346475548967331495651683499166032459727723693480492319557211340601485657087650184807922114252680947330668334376823518834427553565604580115323066949570092930208307876295622443721741384756875041936912906752106802251466787389374079800538059804831818687030251821397720349342259038332333131455694655136686470095654115371133147654549409202353275083925947748702075306342623619522607697883189190338573421295863564466036882608659817848844854266166575025831466069559590206389846230956165206987718136696884933513215399124080663609949633969503231061530781478384680521087843255019643589341391829758565516986518008809098489005320006951090964242252873218158793910357510756782575451010170057195123433356991909088233828550953979810742939202781839124685842581150290465976071383072333112351739882463039575478193293276535577649455764643960083044060942515741165998780909499526515838684627196519252271019282692777023844559779792483050819167996181211471709464721979772926156941925520700884498701155073877653243834993321764197113947131561627845191475534774967036449225899201764056392731763214964939649626614260609499295900554825085173464314883167341925487366755276057046040544956551051181530579632475005262542278369545879455358691600096482517395100270911398537755196197646568002570153840826942409077412271513603031036129799248849214490516259334358475818507095126302594522695650762204895801091926486104842248980521046744301014761792633946331356135388384832057511891312015273474394373699681307873787709263856658413870621383534468673501895136179950630611216338676720639319189556237984982177839251620472548565634531020161771949651564393203118072914960931086688952874653252993920336720170394223999199320004539524838459573900492105310296740746626274444598480344387659897670028976853188606517950785711674939996993339500493688809859989901498838674154127124395936535861497257621429054861986174230426521761629698468491242990751064667634006245581061266033035572057570839326058258835708104046933906567432855271538181892078006473819120536089954938291293824603405059701957452918264878948717429404323334415550051258747880029908546908159467891810056806712760783052562648036540062361523716983530539502813702982751811997807817610971573929767821395893355861976856709314712035420974418868434549167327396129456648919430579723677973376245799658930583097806411442580909092205167034001633504964458300361015441973076412171790744066319830344265314618259541556299069988636391948588739234618597462670613220437571831597183273600242703796307930740980275259063950238757210144486180573065155279883456705746923828354052894650802760425102644131785521634550571219208532583591773310031687643440042963173746233823825194496415557765246006482987866308910868662727465416464278191489986681089497583458948027473913217459357084406853240096678394399953686299295282972582947190927657173865585607355906359682247136465168302337893977959960380737780421928334550565410825217967132640805070782257991105117772778040999143454661278327687940417449953683841070179596918322721320003884288898518912590943195419081064815692042928915822659494107486829590620908258735614531186939521958009902503048672124972117195125200710930490299461273751448929343062916504110340486080106509631414630567178651899472843993777629599463857444303280308389473521973865282627109543702387774006434382468615128431270955632442191048881938519163434806533805865606827197603521723127256997555314559004056377936574536118546095662093705835489591082649509865767136099024183808093051167283907789715294496336234371138959091834395804263964637615140744871809799129078316236325452214503002010462869242547817089053226327753581115990185921865049523786903818988240343890397388084883767021181948299977123502323293549160807597626528654804216689238872325849862544473558974723263161306488854544120852051665180840028513198841389232082486718713596699031117185548322103886287235954262178967056396245918487357900560441023282371525132474106654649725410125554557779581378247074489069052730681826634466824907456665454391161606172434745667293488226736211464382584566344371127211548383158868232125172288941188685122055866720973466599101110298399494732116301478961130123231080726188857420855188557118574727202004954458300060175865660163328367357870053142042021901410506827373241110170461197735138766161816455457187246436052448152951256718995748325508584853436144751036775718746731254148072937315357175615140622743034757816756088075676645913892848805772774015312341095522356044716060462731195729730233715949621300117337372587695218959339567366276792065951650155014423634068747690794041413161052897405228061866233270399659103639843257141496379110528743401754387904958626205870782174272949255749502195582520121220059195856645683444624573182786051707474397599004078620958303978300148602176695633077740981372371791333642239836738888699217078432169749361325940260179125519353665921571866181837431052226775081723331505456189077002619194168398452925258175039299143485247130881474742717524098968250730236017629219102516911910839208258391809344098226235753219159708799916974506618924204624389972279497575173914428326309927594476348427212979610921206714595125118185056173171274216392764723411405305253763910782096873121941944633467590279077987632267951643754530306040819049241879082305983036899064883414063364576259179595537215520302426059876586740050528014740269811668831718186215253169881531021426591251276653595080972970764226832495588877595790689025366249822293082612540728522395297445754917545199823983178080702202454759338411674249652537528846185799348617756702272730298571087909603830305830329207734282235701155758060980592615207725011704563591102802331235078230632688140440702586282066365226994296016583331313258902392375123554948394317098927634581192842168866692997169762493045619867932921176798991853054175451873550064303957432577134887737902838078589164048610799141995932149067174994652856591509815458932866575709157626683268211111521140249239157484060134972287559022760889049107735317303409555223172859595112552723056419888091002000036676415001818167334108554219390689594554424116562881563081020309116163922285216269529401709278753825953100657665792336626171873574280556752692512809478025212939593510986725586364132834005837205704652252099463907339415591652915278363551689085105688843540671729961614335920607496977396941291519361765794947606891132876290872471557819254176373040907596052552981543537861724114397692191604267374704311123317278625203789568102029289112411458121373496148346466402862478940303343778155691312389109099433857222611961436789714945690297287348955655444945045724445936392181615255967475424630439722726439733961113929712905645305792375139261954386878188705375451429563773120423545410159427595033178736196070880004784567201058827520794367335492541046419616565037180836072776793234080911935684580871511786652957011329498163582239740667131330649687771308176616207273219771489650692288139480585735272043998834035410474022383176779785893481386559673401565925251639667568696506399052542887458624476433231878599364539973365210400221611465486507143808120809262413008923184790482961067102955614294516488381714715533737515798787586084726829624616164627050335658665732425594316886496165951245795892715994694837988079816327450503757706237349419471542588263980175890944205844333017306797297473175444329258840021792573833876121289077739442439112348005713730468436129356382947192794203067741183671435255089309644238005500231747555007528077080504796605681903573721156895693524920366266201760697975400964565893990201841301730636762287790154568684695868398272033342054405474127328326105274027980843782772749450556717616091530291086761722550501635981432694050483753610316039093318581217195064906168166403815642763424696106702405122419436619405360684755233961253855310510487635989619832976031765953499582478048833421369891313938827940013256893328790995894443195533565594924095291431944938498870144117629085960917991961606615707851161728813376737186902814173229434963047236213718755414764370785520417222331643505447493965929773258962855138770155194744553754322900330784961492692674333269551495558745905353926078596926690652147217171528531795675570060969263657739143589558022499525333994814982161606367836534520025408669866260963941686099108173464287082455119120425535365401868730795943872693729649141427426419730887249707156468112105726208990900057162344374109751186253384922550481697117776838075185264771082481984257107457778171379562121279870775796371306898405375526003089633758257778145586052953671886999324560232687410377904404350628351373154080986964947844153449584935840026190516197298757174042689571588059022522709164339238854712484652219244698765390979364025808679775711908478385525014601813403768728190788822973983443661663271882896748315374350284603390200404061039541609148640608110889103708195675706626482101418566231793585153632773172735688526592900944739324233723586961620009333927486961470267128984380967024361132345042317470271884091265897271835110458028643386241976073096939379274585993725253533435965372729041635976065573154906257034995108941050253609594374731752219332350124516364620265543145341944036775949554460032408253262525546170444671455787983038976537308683305512815068817518726989205349414291345805734789950732428179106123775721360317816902229351949681814087749446469072023433364621075349598929411994797013152738975476721798154381062011194507624352780623172854130301366653967358941756490957050312109897878484850559298876413052907794186357102866146205513544339126615644252210019795803356617299645960621599458864148292226387332985674247246236544721187137816990468753531382663373218861472840078185034125913116238433769180833648799706523032180011114494846007900171623804985165285006215080952455291919175106486686110519830845407403051360015521006780432139645779598251843672409690064696095813735967675996486936782120232944011802283901839420271737464590903469558496748038179217539163639144424956227281994836419827192155942696952409696184968880772283954503416326704677258769151631779915725543774468043356701116430734220732557952101902978980761973088563121890124369444022426005336737305632193848847610382275914097451508258694226562190504424589187853440043055603478777098155652932086030694500420314252309072754352770600443538429395069019388890404495964169093650978405721873509941676288763942512730279879874386691055156123174429128174875103867863132373100605359334891404201123319638849026954751023974799599054382940807310590490365128240147618983701099478388296197044978522126500145319005346650642433433364150077830672775888811420116011895410973478031665642084598147529023509888263462218572494329900904941167808843261217798598081168208341047745475825238082934839204408899689045499095954460938514478599689312288740134878462617763593846451793267214215046784905587386541716024219094752306844163364286877892251578863286982516752128246270111629801161964975882351341631417237557594996744656839685357811633026585634055484190190309186901319827428039542184628056713352096250480786938876148329663128127441966593030714863066433041031633742022666401935218594275739109724215739109085545562265685433427890823376935561799285009069841832271070897398260660901358333927390421622888743092246858313017922859918351952942343742913408963948213747698287726858642069084090507156106006527042043616374477900675447933125166456430286280632599886350056776052985628962835085834848661757157297439435441299842060522620675150845079212740488682002681788982198615445419931380782387682442920616545042427500612995985334445198135586339373146895083220558465723589058309884350815684470308395625522477367228560247808236914635037970899233442253787562734113038006009394279843613832266524884759806913752741029622660833666225604904750807445455788736813820862521883978064153535570483600999410559475170570973758425282179461694856137150238017672313862317921163393722260775688599221945124188120907149736681381925320716944319408666535308533370014543020287118684065863005602759877803802772178414062577246163359028929780268483448157008850351635537878683200268560028990119508027869025722512561047173434321283258748116862447045743861162777599960012584003989667144054739606819679592229453852545110668234623114999032825968360284561164842133990738722236119437319806715344901643793786267362519932802795801292315566400021047569412649111517516590408769802366571845809642710325032405632002811489934540535597417222543732824839630665812230173959822907939427405181028166340136815111202354566966372628697180763686865013444082658904609177754171689896840167679475114334063492738329600015214789236134023936995013476016987427248724411449969377376549746462154663770744507158482701463482454116534182033138254245581227620923569597230831044614223173984056204296401130969726502155749213863743606730374385468288010884597309836096824060992893099034849434034187032190245606839572179943942578858037350689055240864474954413817963809232932396262203965630923730653194269947765915564857854078838190759767660724589791015267620741906435007676665259130153788323066291021601177952879773741155477191521199151472064528379742134335117780644351073820807376864967732973502554114390412189823831656154337778287433259648642453968390082700344557487111304647352426013899985793103341365388984410968942958670138818441341157414429796636503444921753906284771396910627011462976177903784622347150421293519339723509028924811787374374147654687363026647872290450822315622252020111119560475106526257265862828354284847845081092029312906218361669989404840841151735957804887342855754102059461961487992523778422412900414053524219370839696594631729400574658896785075574912751834314012693691154978058631209148037781298173390373922499817596942619246727212502119453174024463363295296825207079262218293394371097595331544307992592571651468089345367069860676294904185573094129420280680069322545922051153065260561964651938458340631023164072892819272502116550732522001626785157525664777153978065048252741546320804319746168119814786774970091666868967148652916335524980501654534311552107201745404455324633110945007940860135831074691152179911133045357877936723861018080979209870401780841566906083676410700202370535250142316207417743627484374455242937799307880287822119649845611301575026284969337905124921824209601552192811913071056188729357208720557994678974132579890275666889361403337028650555232723462215405036880854428860467255468401838042008958588649048841698853081098703250528470494226354026661035875211040151779401655659831640662785247682053248954385162355552228597062135928515681773979207093988613739353806097950480188293964602840135856813290844871214031114991136373080249773566469520062184157706384634562353800545549338559055140265082730960033154511740702381976350676344739092308334512434020129998914434782761091548158625630633580879172048996195503870178561494751622213062618408363570261786570084516512779664296849033019615620531215809380763390246363617158233853898815796299981632978390355122410421763406679679558054922325899065200359533380878207507692685909337122449625241709076157348017989258711066059827029117813121304870030769084654301921398165609762590341624107402499176753237473984836418251804707581989350595500312486897016656644494484591066144494898933610278703344473637163746943959332373829450349626666730665044296183809063842306568533407449234905599013110623050400466155809747155099549491789861381497181146540869523809035853444987235649381493640683392744983121114464467224799769838068530190665841919036409181204488896861230045376653156599252945274512027793870723511613062239809584447006619733594582389653892523628999608864455151380103863002493375954069681798110353872192986245612268061906872417108599950742247743793572123056437836830756607596110167070665417848631431142723285656186630589544080363857220822793096232537328586835818265627999745671761940623143947102909247109678246620603773483345629054873365742723389074102531879587324382764780551062351058688190717473834498091038328712218494992154994296146656115384607481457450483574182522728824986827022882109620806193421474756956624508283742478460744056927382400330452413269702163310206948540352169468071844187608397272223367864519764868566947548193822114282079669786669412259724415425803676750195806787909541230750897573560518737275133778608732796027406634980967536666304407257107848107187462354096383472687954249763878577930368728193969373108516026305501636463869143644943475701482130739504929850315950091434303010640860882396095334918796272342229782256185174065343852871886005107171980341101625775243232533275423488556362148757279414719075950588377490148057765689639757449619200241958500251101613767434831720714190182394722742742332138445807161164203876293212034861444895221655482138502662618180328196431735185526351718068146977709544893522197699674537069345124974059593402168609612213587882870751592977930659900110862547750509344132969523713502653084254154672660836956488999040652883549308921922222122005332772367652679271245869406432610492839971786544146628360060124963123975273898747503191091706495552855301436590341397692627056615625596562372900986946558410196994107834647659156800493105406016079307893342038822015450880280542966324899598347141966395426631783751256975880258372652513024457280826217244898155994370301443798898267399472464316595334348175371587988952352789407531151028024811858282088424857249584938119718224095783101331740736485008481779605013110791087607330404448866395393329228498554832240043679186376317393030737981091261972975055386284852470707150769437698017271108312608133903906518484681316645930863979031886236223287851049900362874495760621713230361902505710785170629898559984783094849187438432955570819189167709253461017554926821273822971087799128435302553152299986345017750006701630240759857666045878180101807383234524468445300819278252539001211116379728393922820127100640514242712280590389435370027887593047981974877172670801262996508069446675573562351822830885529299368739130717171852141453571440549109151655053726730666381817281857065840330200130695149699555277316092922433667919785086854030911340178352098741003873474352029241862103708301848401294520970147451259100883040620511066609099371279025723178585513128401221378964370602147553898565080103696052637630232523398997796838840715969166632291330010641461595283857159376677725260014343101445997044450394718468387515967758081517066997708846210811599488321078643813182294836182701534610633845307687155609170777668908656475871647654571135265600507289751791240347222840745727694263091922618937304096136224062476812948849079530044885560784227735086993929169648863326162253171069894307194154759340407619006196460090684296685195583686700762275028162590168819873831399068007014144939181593006460411071491582902403793381970685268329246021938657099960864177355951879707201538383577845803421816909960319726485302116905657329430273170803302958133731617011738123919769934902892117496871883662719607666380774654510604990994604168947810896586334081810340013018350807278384820074097826167982823960594418215136615628810067149976928543567976917102452502048795800624811460356653441416482890693381905154527979719240412041798645014649769585919636610061140050095557796310445918380040675590602546031153649754173811036149540203293167554197474150421160158064372129560144428143830394431941407035944537929497721361165562044594460818091835400129188823568668839188607175021987132448587715352553805542675503023938878475449618249393912161063609611774704125262545088023526809523556950243701682518867721514993833299094165541485928610146010514353824836650811238896815703174138024983240934937278681195243142053363829702088878367965690704545305116047170641748692698481774840563882271028340020137667859262569731192959024595054954053188635714672351369867305462181950644908914378396326022907749534766711585078104209849931131334567515300740929873059034521397785873470190864969762075974116921940866577323156702640820418172898763671312018335565354129580956557761565645215205884087793593875117128662310561383251929898256170444647703838206235615392383634374614174909969694607074036554103902987415382499404562947113307741689070585463513050884107437028286749152857630476076423769108613803698555965206570108274906145039571995250087147933910968293844718312016800352054391820149729781725200384007786378900210690880648025841960983879877553242813578161829475487419062257890069451913590108713147405803821179046386967218911849157566047414452175847713360805371406865548492022619642950614988818953020218571267809101911052073326993457262232994524530775053161464633965675490629068335103567698790776073363309264925538750415276374342923181767949330626883096636382347816854361479500745023242280952999326745162645923923064408470287650861007456481882669141531201231736580986440591126680013415162265340403116724187961510256712634457266157113918542008290379104168073906326037921034481385301271722205188798778300744806315665229966026239604023804351910567870851481445311413337924395860597668879884306209035050734177788483085420461359850775602225607050679626780326847792031441904499051272743777393547567174951109776526052919384631874308283692359225535946415906565464706794069387577564945102807612819546298737867069972252310172071659107557547442427647529241808234315335491593838346320342814417272816812776214355372128380791202993974844272224421492343160324082882914516820556081769771651231508349663509288606620382728656685640912440250514051604443865338442687225369410403704884791102495830231025105753523755793324830189971222818523889634732121983292258137951056605259651767925882241879583906286972527111287806648527279740195087237049152851652943090935489247734091680052012686420099496411308075367566547553654186844899631891045571429040952916494800344022263885354284701894950480698412632519416074931415882669200135041530801784814043075483844262789377276265037441908383320124717891731624163095452427361179212258083736278835395473651053355870481914307278491107657900142830288004461646724448501696830891341097787140716578469376153372176117369006672144748879149301031103094547959467212665833734366029067189385680418413011317004196227589154507055110830091096143070426934562567656403113523797931430120863876268223138356613000529595880716205323781255914579130606622694603101099635844503880608749006582556028216324688498482005919528662426156993887447765017598389942665141671847466829609652107203492972203828676847758871054487499223204204837736451310973412727844285304005647999672687870254048125646627451582486454095940779282294685136888858701231514825323496528702416928657326890533516793387634278416091765393026467790639199825932966547489513417606677988497947145587999429141235667046122300275347516480921931948961369270867549803594786675609664605656087301369947553556163076616257544251143509553139423223283568421657011673939263375496111184166967423355966894563836523568651774164819003383579350996225375865743605826823408571083271386569214206657056534153407817318208728177254462465195140049460001619256373938354311931152521965573871380546258815082128223151435897681589024817558799426087457638441590036592537032934229177811433178578168141646179643936663152208113992505229191932591444474452189910527729303216814453923637685001185027564253974082030018203601114160348249583037767680051806010495117780671181321671831601099041304307471223211149549966793119537714540317179375085104048336272104409993467284081537621022871692573441087161550741778610151904415376342715782340447057624001289226081663863455601864229301532753759017901177488440223428829830587650303315104099924995305513331410163430413032731684358014227338538913340239323167642643721314171628067997077652207855200092830820007945039895989977370177096651183399352610273112061329398686806886273714186615985346039537816464606677871681504090028242451834494150112199037358857584615802237734580655871814539286786575232169044606004696986401984246138217976443851777771423605521222445861602547370541832771025060625612946932270794720774058820497794830208757260814589936098674614034648304890706819680576016552763319372957965378084269192838183793883162520858933088222300078711324198031582768821385493982173673803728687060293936647570711305544903627487765590872348616724167629170089077204592645200937463701814795128240774460505853392958776104227931410733386717550300047884285678693246385463094840446864526048743512757394716481506728598336690827062333469286238321979278857531321208688044063697366108349917072964607672208140833219153832710384805774224840253539560347004502381097154710892757516659924577720484863105995913697098234695381518432377496798717371475305651039406403769009806938746778451332271690446637780039465626405897046348244080801009372250222687091998850258586176536231833930242557142083688158369676722961199764247566814036355473688470048672723090017175784640046644102962788532610535439143532024476021288930633529639955948849756205492030132843536266427479576984172225408674874661083163712466299591155045154659889246493502741249029469997894955136529050376140385231949573504551007084816346450527026447879518989577105358780698677109279262860353495007851082071602339391400201218154250103649195864727423829298475709253914179911875867282470495288207008389716379793503138970194611638950264872163752845405140536253900890249855073536142587299176446528872686253730565620860754837621079336762355167322680753237906385202283650000675661428568214220960159550586464953065783165188313502395558338255458269309178356527942073583877544446539069597776138152990102698139854217826321305395035339710800463112869349837828323572969120621751534826779669098427030957163394290383225330157748282058603983530585873068743730007438680250418112899533146466982449750443754907890907119824964558203344055222626334062006474254366190578250628873670708385802094566704894564949987504379092393441161333566166972275177330461205084969529565378327245748493604799406307865622237114684195346633435152462685644209077123382941556636135995977074185090478596033833138880503728527261411002307073244785358491524436408749378082744065365892367545575007153398331045585956830375469735185266757563080884435734688123488677942446689865528969529390029891409746530811499708298480174564015274731712740148072752114685237860717685852035043431972329227648649819923594209043976211521078546091986796972141236591208378052154697719157094552762769683813389369189856373999917195150164380251167725510585261697191976607023754276756276783423062079131564015557722311824290469573018405314518139236439721687342225156712218866535224720018771427172144130754860196435015804925691223374834065419001937640236744898148512166406310158152530977908798939162632623656313431052509059247867460767688345341088439071388616126143199893231459420376809951809224541028786363252252829162387978785776349466467331147676115200027172520671423582558753208548866893420235970562485527494221455309676269953276823613947346627883667867824179234083239406575014572131142247058003080585004536227717030638243771840110964823317771420332106684046753383210399341582526190360290132291760136036407484242612721253555136960394654702353643649476274081384998979805739324378455305365513905653201606680943637085440652303640056436199771042278736424349760892925911048549981112103853028387518941201095972638582357347656674915479893242764703890052386767476782884733006713187509970398545402726792870003370184536158086091156045806751940706996710803968313529429178433296879894501981852203409959988240529739855947691762265145975764376697797435155814989038728074592117291920038443791544035916533007249186856378514655132679863583987007945613517275328775700187838951444857564542466332300735380055669788632378296701279910416598850671199478515420734236934799608410253389877682152947958723156484686781070051582514936092158332560793977038256265730188602218160763023057311522631106610581218437967117906959469278813953957179768576967952274463388456597906329506236265342457620776554056109782069577119763242154329559598279190620950757822751298045669156479459902432388183017463882514337009889447964714467566658980417410163112325629135797034121176464168449569680364809715378089614087197067280895024858637794659359808028608048950068624588229910128757873760825713896826342902093315488623643945775358945482753383260361010019351938216388506736838686997619051353904925692027470743105992734973670894744632103537120060416127197171444171622161761367862037756365496506970738235256882718451638933757984663963465949310308182411960215763722933251642024910762482792129069623527866420343009050161582901706366760540016685446440695235851447974390520527757646709566891776306903285338709886594215617738228530213206253561886518682988433612548719602394904419562217699619755017468372515828863438861049978481359359371396527188216459634521649673223402888910836384314559086515058148652193489086863283562595837344315567050399423704926062173842370204048314176411511769984699930250478742242464860433872485157310656682025551543428546406131272258785795655163171712402706179114682577221916757234424613795630921982146328278547953828950089066058459654933298411880025602250692647006907472339363393815455508829123605517724921729204279510276142631275739906717929361188545179057112373086855455615216064894234973243088870595215068048092514057399870519775859660647116656448430693647722087950368237801375029473570489414477139569385821341575726423063884906010992785811093955825331003448004238943241018365401791931729152856391837523456587464101847889265781118028935021932566319967164028381613455490213036834009203251120701702461225141886652689253500690987766412219855177757425280205515658718065058547938528713552085660551449582400660191183665033989962836749714176654552364952522176795084257933618333256139133905127193593508291065535145525421282610709773247442769578633533925496815690510328289003997466662736390969430427084981019928731842449857086743723830442126484046669299385241438901959299110240308655087176632660192724832442550438004813219845455378075380538899683121915873608402291689018209627941701397594638924473909147154628272799593249367501542111153216866358955296748379614356778459535936652959525092236712941273124290243710707606461694530839034035751077248407618397932267464748360604644904701311787261347216414643461709379630648664103513594098971756076502019731117493104219563033858094438000160630494413409030586637749139510636346751839559989388920488874534614669749057268485410952026847041113858643910504581611887845692565084894256493099114450834609055061710743974493656564782596101533094776868448307214559386657871776138220238053701104280024245573995405155727025711837695610362578611029998606335292739943430384783433516859432074291786243454537925732075143451624735779146497987361756988939710298805465707613591937573798238984187879784842523579386030369863145649796640378558431545160562636980711288017002269364070692210149290098846507606597835523810105904032500661341037660875662984668218122104066224063497010460808053848365151426393345114914931934677504498504862727087105501797806518481287751383428052841082997351322496115791012055368674324092604349089252866446859325843864577305987200957875991519777938613000835808473711693194271724570156107598541943761780830878671012895112390707860728357535377348683214741428434973675562515656617617843858224653425600600516282865665268329088132485985172011516730832384984161547793541215429440457972876514384547942583357346817309497539783506475479275386085488748000823382762181442458564727771039073824410830232673994411287702988895981624353616825931610968227706164973431537688381146467260404290599197209652142945399880433629758444598691513160011627710395861104929218310990988482866217020052251142684913495861283661049772886391077362279476508867933624647316266774845825789093870927020230694876643080264546862412903389912336948239429312200409096475667509893015039095017019878966687681127300459551311513227639506317313246158036224482211776193756448668704462909026094258951438949239195003141979333862710913378995754669134333196781086299340707237264263904798922548666220049075613605729645199723790433969683843860886947779872523642325326540275119423842129199924967678143258188732220613530135425109764589907575815210041102006947140600293968001620153063073236645548745315142744799847673294247538209801844030510464204103827181907299498110389332454521017450553908316737638960283679870699011398944247034003860538856220234233428461863931240049548929111853217105019438576159457220224079400127575822061207371030974517616165407558442596520220321334976341009181815634078465393701896780022990960763989465453554969587117101852337285973115568202055022490817028116606192783961550259507259467748358641363096074975291480069884863087557101440897206178646149436337594160946041818108122171723437881353408586446932572251326075218414765331295695193539901729515000606668569325652164497222667249542068872999721736453882865844253848448212691061639046282621110441461755793423699225241827332726950628625037382282078237534099696909678610252151129246091001869155831180178379325977045011067494125772021691415921982877150121389222584924109621634580424583903496097558214520187214797201943520469413179311581999721035723469885967593494980145746470362370876505094055557152383059693560946097022532297464516066277071051149790296519675259731187666403986412496755044064861595106850647311947283043269392427190384396514927074248380870365641726033884275613572584713395267615819754507578419880664164328964015898902072862345876894763139945830414444307304102363025314653595192078955169369379720235186799422254741974414339162789918196044740372102755286197187519050421090789029009999894529161724656194058216492482045555533788771967692011969281012683697837636071995316811791765298823357959165362772121391420157021014346765316369387578281387589552181075628658952758251233964727804624167075546930042228117277018662241471419154367502682821319586102659571246353359395968287084119593314497790053182833699543795088758632684651577848305700813750166210034831415869917051476579745034895851644326124701419134926707255978855256630426694169893707220551338808054129954890335273338248348346217973945103617082903445481590021254292173674176878766416651801901241244665737977589852939179928322000792046489263153053542041711501947340958841027574874062418350404977162783441328080502424995424262847951431035361345417789985692253596676926741240291049214022970605197317357011809185409105882191723741015945806686590952979064011746189225819525944056079702591506768528048623998561428502806430460753060070573878276171496120947391080450307776783415346428232941083777461009940177053119711101709248268569164446662456103148339631925496741038909308099622171484022314216553833011272933930919307147755229584861658288909861011719556661023483100139797625217663878060085694557970466752391734132604128294226975084059355079305101243509013179730377492789089036484291612819522124354678504086337566420087637257758730722524929960387975522667548615534196339604614404620908414885991137919274095058411902712023578935746923964760115570500021708205288149785275409471709721243551071565429379762163573394473353241736832451753317734313633139831616804743362067879486225776922193998167349219718244524625134813987349932332745703377034437218923028513585722894841793286527323073034923192338334220939265084929194249248790186114867894843520788777779111658693659332114425855153216318001098541982392614796348780526473201855033502942859330769913382561070135388506517584164391594244495448410463209125184077997119508138762765523791966293114580236863182208884194629256655313186406110184701709480387100779464412154645290431400122921582605605513061915122902332800667819703467504791115107589760931734972662410251250162971017650778533132512420975745350147397178504979480818757918989864633497842048880291675840880604345795250184691005095901771938928231247321013102115253013884875450808486695859150748944424724153888186925567316080993080274770712916410397021796151059778830920166248677430986367453110123981925258210982876561370687160291259260181942581346169226093374308866620633763031079767304285583896294613818369976407878453840477616729744120169574901443936509282353315596751137428864448636728500193578072998500934749894084734744782901311656452254536027330278428697011865423305418356734949945129285100107719767329041162157921468038855512624729404946892907758275714680562112343192317743992628107007401107372199712706965254092454455183471834542223081000335251876932608627655396541982490276810353440120451651809245061845075981531647073713170309877642266477492994306986368153233666043480994524140144541325425447711125677760232958724824064108677212768616332727259782555798320497113978173748197690772960078122189142800550900573265156124385471074533620330131918252892097710299874847881910620480396647735054739381310023576805329739169706962930633356420552431559525715542668628086329853114475075031313120104201076572549659461817450965016228081724396222787599209915116406439377281062096742590608118837333609055193664559524069519148869950759614553015775232207574667210461299757801841791964792964538745087883434387785685871632113672813533546612309587576824469195231478482159177909625139632618036430545407693775611408391895504627906992914658600707680792030735369619826800282737305902805582135054448644749306031024275433545941418068518907147530475989981567308908257440815376991159692938708229703709098980787100769253721057622234375162741818919584285115762123264629838817275180198181743850718048023584809526987316829405026657498374835153580963717519273873254326585973824166099113595301493926683512075231692364824142052730750164932044307347153940840239132408707250192735354191602268399829832838151591361748089911561838474309760540903712410436277685198461667997070000383724534727409759793418101827490584539176741573837682252798679504811048394037576194481044583016443662298591578239806807909224786534832588505651121432571876026348821213117103912079222787250204487039390316150581582679902742378786499552626313880453940762790091595467045354404259149025513147451985011152599949678616224516321681727926097576949997506105284906756812050453596313807410878789566644246798068184424717844291661317192164773331566803215175753018066212111290123178751875438897538563729251330018200098766271984681369956185800286922770389854445283119908343981144346767656043889274236176562077879338326197647428297932553584133984545998760586297406769164114733532940491375597209958303124624528954373310643218794265680341909328118035933489182463244888942950651574445849127215050355121490171077704700149337775126005103969864202643030171096810315687001795833083244359803411583252060914745108014786004882114924365751879415936583382723536519181799823497320176179746744197485075224027640198388607683773460337413946135794204823366414487307317734716223003180295729550610615437137433921452803821607561343256199343097692899597158068178861658022350502470794810855682433021390391405448901059842206919518372729015720762648580683809972937243898147671023856747404801219145804044330820916631524154048184259276136008822963373537792659191101948092556077450223622647738577626370850788800747368948357299738361248722298507722064627623830118577184870375130267130221406110675867409153446571763784791555824783898100724194298310961969438688431063718163053067743242840969934968133495825556964435421049576786725959377445784327471464647700301144715067396981500204990696954785350663295873108391128302530671088563719310371909173013367152617172746819976167555197197024094435526370409826192723585397969631823663832789784748017090007515634296757493949015389975564501479267212986035236358829288848399021414270665139585511224250949197760836653957386060278687515549460015571760026645247131667059114275005640230175975329784104751314340012307089890156612883954977327765184727237434303290647036450665078281820737657584011438467149403678631161162278801183371607228273587897647317058992765896370787968062390067140111672735885293617254748519136274141623548144242158557351458258773433289932321646931387654734739255339792002848985259893102078817857271714343441419197369491603673556234300671243744627315665747387230353227986584813400380711817300440959778423937324699863665745665347190985936125704351442016229756018310803272726213188106952877812904853544029136299707990485164725995257955809472854203834111809156720881862178781700175883426403350490951197704481840056912927148332948898685194071536520401895121214820607929587555594530522359575499918331611482256682839359883795734055556135403998774694774434346798699085397019101355641818136268279030084418809019240472165159740508681321861753418945480741941211002129771495535408926027598361601595062209747972818501485071421036070355953310146931674343626741547027411995243081846664532705532559562227840099588678840552525575500941293299420982191948932648676341476138033643184988775999130290759001662089568517527698865973701877200927989995383450211863136478162002553121103598416388741515118093589764369156321921700720931296499764092405725944943164151593701347810739126638649990026971544874346799721015559621278373286427527176647271225859548988653998312201997514224134760708358910178651803868759229859568776439378613273370437129895002280263288002231864149182597352249042251745142248565026930299031208961970787180028517615508125001663871729095043667860974658191170195432843251393261433669241847610956984171198936649142980668154924036926546396709895763793776485191821365504541416923012186444657703977178003208240577267761994246010140900295057738220910653745974992915451724053891448986567771233175120258906299667281634269364261108069036556098095739817052118127414431786432897971224535217242600943975667331927337426280396349526127920407300890872973128473479013472433194348341270111165070782750883367208036538794092309574073614405505119859939760370735092889781165220029297905574301847891976206872594881363943439824852477919120756600265563198491250002861303600142848442816643293212723422644060752826088522101769294674093781361996699248902288120571607711781852272176554783761695986684406521549776444400575279990312506868603985322508292308247955925930808859787154887494210643596100807316464057686137297894985786517862534346476718437655506469304316845968017273332442094895803798846483235790545411029759861214562917951758063499493815608804084885946720524945423926931831957528178476556467782425695943965428397701133605740337616884867394552900364736043950475867347178611854559649634802908388379942087513205169863090742679142855647835891743170203192830311147787414790342771885956758781269418113577594958451138434772081141058488987406294465155583991292481524017391421412332180524075985465253239109705235675287099680823720743200196776937237057520065561673667058443565016800323032165079852208607482023294621290311972611681544279915462584609962493322529917982782150335806437067574495018048417697538644239452150493467718300504633939660182189261386128175374480552386065436381660712638877065331038249024329018041102211829519945076531859043552250308984429967572001885560198401760862993299805094019827690900493337234067722081754122911803622650115157710845633378223704600286725602363829592183755376968038825857465592586975276274921653035461093983031190795636801352921919536610971459958791509940100018606595883623489349717513020431294085405045920554417917276425664288376552276260292467031318229566592250015014472961177797281063148341367943364503134048811066338846393953921760461985103918771540822351041599546917099513218624723386922907676607020721021135403554145031392642106679663785340191539641772932817778637597763269631335044108100053759000258398234235630737757755299254228564238609779838837184060826793800420594370100843781964697970492959049662127560265808742127540403297918016372308556219981197176086365104508441383561834323191756035594413314386684789179272090649003399500203503871942021987001223635221406203774896609731361714862954034120612920963658957759330063945671203678011387487707937411867625759086221282724951355296521440486937655399244787431828866265778522424436849551511761151520966596980169651638333072413433449959813604735459359914930847694017843244397424661371774997230578177759673719234527603156262878763390929648910473750597782769428777550066713711091009874208121758083587725229840986144958580685328086076924350958278302781878946770767534953113018087422357785643431750494728884922223722706329946840595536914232717291573430225113411649156709162135337306681663528884675565869935196506905306903528187280268689809760908178361368548915521684460435059380058544872364535152112768359630523772028085901490771214284235026355080399974095484957326042119328804989825521997342864880168150972963089220870196006903084324363230553358521114092134358859865305103353815536332169429272486610862175118571288175557190141761460670941935342678565808189631933422138654239992835838381452686265338940289443139622371414075046123739490591256113078434032756952286524186282091769734550090287429425801441782035848267067666686107169953732939148646364126419317721985169451484842629152145833582039381856584445111215543724455713147502062926231881757594022337251019409447287477577951510326862580221439548046246409098965126783770806677338664144834328260105956848279509056242395877187720885403815802361706586497656251443632173074598547667852000508318562510462300574589038043797722857716052457704076992461150411177555877851720131406664610528239243591731573928436269851610113701571894018475819344085374788152966941386343407311707151518214339336798382108095714317248249452789807516588041397168474230436251969663111058629065962592165684838112699001845172527396613756688641533175166228912471115804170953267299417356190545176895217447419121918247492666079582894886825486849361307029583688127215970657586216714439122204835420489704353124658140551428158249898131404117666091380482916579717719048142600611540889816971533703543379096823282823439822025200552308451507764271842135691199402024872919227462034354847372772483722837878434263099252055574342877964177146885237563976787763275785320710746908805978247567391721414105672743299262077337140989658344170851756467550813443162905809041887981652098540716282475952369522403767133309056342926830907152324809404560765136320414552657206770265169594169101292859573231970749652691631419994522941201412324791971210517000256265579096977496576187683042436385931873318166405282910674632576584658208398874490815936465753382157486924689234751957458762986165335366014602062771507549019331256979892260217290815801616510989624853441654891284022060815381068939040698729086561440261494696546125003942636290350644928812964131746283618833681712732953974915824575557124876718275799055403712765203656045789710420432027267032871669362190244832258753451988391454619415242220075716933823793196032623267054641535067605435435960641860691739230296805156702879747722860923346823494234571121142146879729563003189258521009182063934648178632071939343969946713210856415507305701276774402905340382281138411653167362220132982433644420315441491346020512966464007355543912306230261698473668590880780228134230797755853685794334643480180361435207171013696196101083566410333142499280310265151790152342539360919068950460600351968472188891536754836227065481183017834131143844083618849583446537392191979414195418614932570028776919241809340297496572158353767104394402762471759088559242662544294295555204626825481885844025403796625964931567686374822566927841267770258628146874945597586143993256556681750560976333232360270215171510042039423149396257963797330827647328431576246035477901087773496316909659405069785174777746263011495736847110908803043446000793697219629928334998439821378039863458550318296415187467396705095507893187639385450899515004349731970956973733508201004572592042178119994692322720523352862590103394594768842840659126554949970392591721588328107600559286096967770669004462836307265666693986978394747914923756453268297380569496416898225170339820754744709358932165197622168861242669667539010870330777628761022082493119923935231218436791709079549959653232499141274537389595906108372435768109449007637363690532058338802172928033510239915366810883333576063219427691228385934239312855020705993486996554582833542154790612698580561632324282715614537845530194574111790078512179512500965842026977610545718439617141870481118326408031948084313585631469953197815111633947232885716558362094146306201250699117827708545807970211773179956437851350116176436397148999002000890115173690489304915373186246856089425481641246521601160173485554526328045216613765246870620493030581677274274607737918258403282929545281183465972416057561336863717587260022932856263725143434610455481939655159215006126990993789303916737000243426860681979551446162050831043915027303686592412359442525961127732000384563214653436944369925712968332591355062510022690038748530033558449822234006866257952271060141283969367343839747089700251644520566663759412032590581332499049285091542970375431456162135667529168935468630344114326701378092155442029310543074801912254456719053289587622612108811331126670059549830412517467191511070910904318528566014162294604564123362616503802330502165321151456270248833950249774584260125009460339461166183209390048806633940312047351074595215640385222990437668025501379796179509443574595794784159811835772112684210042580081010170560904251107001913724162752919729212220556730445461993001854270224976230607985711808338310385550361549769679639005137597922768068990043421223352476507019220602977699604993694893591868672012222508121066432264108217052387769266887144561521477596399141044956352790070831437693871705416487806401006304083823062691334772027541413327987213075030749716040205783967786664562563779317937064957156659200714831137768841029298482398105590984166964607085163838473487159041008198333946212448929559237153285320735916912476621224031338347608137023011799669472342954461410729104797941297570793711428811006552637514818763571501120149527487965282994309113616591318710241712815884644444390372507799516411956392072212068186909261253898248903396924707634369364152053206595485121050129933293030381999228851238109754153473336245328049416391283414050137373555800131956861752124839268393049523509302617625160385326427713053835473183239027443397971775011782707393226844538369542870573177070272863896268041692103922762984999753808911625215741043988097227951193363011361598716245820837976452675622081489270780010047903636909627635523159581172494661065862846799041284070785469588671404468678739195544878699263349127362528165699165808520233565529232449110002533564307512144577627091529575964487939777151380043699508992398881547069669257892690969334087414404269647572719930877865896974075807095306555484581280664217116273395331483137183037223352552023850304986651180112897441590589631791560573887043235752899258513525280463684488109905155702064336926420554562439020598476140077963103079130187699522369522827481360965510276402046641033065390628402292652293941597274265201548272786012786204813790041185966320609540725820929495079382327003551468507936278971995327438347027097314243630327092939709708267324510637342354031570897391759008055576972072842972848915369188008309710229757843743783958204006761841350869752830145679487917747953999718720283488573205100348166607439745921925676994198005473877964805488817623212331750307847569659096527314951632294825295976919468615519128508114271473291036929879058641812795361297496440628046316645701638280293427866297428256020109453255979150046376434849841684326538847124804290132904764580322971333057956507513910464852427067210256983764787721887082399654219743548581063319692518897397241540386412021383924102407122315097128801478143811805720838597908883524359713645690787970212720921333766226712593182807991835762440558260656270947241692577886274162967270815771621589341233281739456620499675603469936777710591280126136716107316862042743493306627127022496784076521886442519707240833796531224544744582718066410433054131331591045924424767834289337252601799707108541167796015625907036032421644797733378922409627921599116097313166184677898794729419133957098508527473363785305280640931143131418100308005897280069167949549271626094505445513299075462174851412756165123725907733128922115492960546107167002140102021602666091598095321923461204974565531572651477978198696973812909350527197798504504856879238326064185033582788539194163777387142921981545812938778237763144209427449911641206190738471413539670041505446957965519147295265675101653256126987854947750125917594456102088523734016833826390230980403478299143185094006854694407428395982293709413011386254685427263622708911577447871714450382214606931426215208396267079065938828025001547367471962040582328879142165909400275655468057789560439372478416466243527440767826727236247201652262177389431689580913637286462404966014969950309849568368682904072062276800360461379676959439875338498712423871817128945639694341439659407221427112936038265773667220690666410617376802491050427711037778023778387350010090238107466173389028027930924982663036153176969098341115303543718054088211540111122101223994558643817697236507540014219161535140232033840379311162146135359447280282674219353339013582277517199456613707863254252345328465743876488454674340416457425294558056520378244754634032276402288969214901742797946193883076315207297102752343830101770908658053634897204679178841006786924892548670026879587870093720866357545145710317759235126123243356922066623472540300843994446472743231935993942371600184767852765391882056770415030203901234004277838775055082610575000533482855441160533047627127932210065770520242247204544637933424855504606815379452523667778044844317679119222420747509197715258728975911661736478577150975890867300753979050134046292415361079512031783499775420636711183267374870749084204599098788662164621516534992754734564137290611205587312161513144300474731884384463727937619882549654289184617800514239337566298954051945363580949315669599068910135091204273121356513906468112185772887891545685153773555773137351512427564386635620183992330488802568411960044055150542434186683616314673891442009365906975194968308043969876022607934125236211645236990408709772760736438258735354645715862812158447491427590316720337495592917480879044945991657704611566820589698167982093471650964405443506374112767727272311764112044224427149652924739239930248849905504052999412749202569772827947861908291052086784381419964557272074718737959233522669867197830067201520084011635785307817871265373088281265550762569456219659965264563034304257342012862575076532608172594858222778726945568200811218311550360188885592429761139807362220121698680369588682967357153662658584498083312844374596919388456066113887684416911936704663239933910129326102981123954444860061030278359493057662181897283489984981824037820311540915477408251795902199786643971569932238909213924950311993426110947663121186473695981413388426360465902918733913394219176368149356930355745165428565590370023960016610278306802608012617724107647710102275325028820462209329136709009170938636286044790045381354915703510982154526944107277620303441246395164256981790577208722646838148499788284232727082218788342454928655936116729232769183314131307818569392605240744686331489226423126877258548570496913012964045108568280846696289894447540883042034035209034188808474474036281502965983971817887294597540707141486195178257826068917834061694073836710569878240492786993269278650659467418120714364057514979474475401245040948048090425143196261399566487275925686803532214577662910211941215305337088402392596377588845416352340273520156827481938784988010521716319883549999705597042897028449317030777314597211220121396351612568568673998064627613641197788782680987178895447030573976906802201898715563332757973704142830939853387003827890440880481946379260435093771255044608558735625753015919722359227724038400343715138821668706490955131801015674084627121311921907073538034080796299848743746686848863525753761319237945510361813020381841013341526819624844100783457352516376350173068023259606028756954656833832756043589643995321741559955520553153947928308964006096474311135149468956561438164564168081443710289770961707386389884671161768007501242954780922481177694760350883768953104827320689884030967791610745231617985269570797617852953803635615001624490105879441288901387203261289517264516636225389374270263304421092223817496278095718056647062500609423767129114049460762347486931328268839847964292604266812953383054596567606898268313671143251035268222831605415806007267703933242820152222291281494203336191360466553523865853800473627486575576834877591669502926508112101078688676489492283591600494268719587777040910631687641559874948438188461241517863527248354598163596183243551391632246483368736425227510661425301564963731667609277938715786361300892500949309958336683369196910933628580338047605831302136405742123660007809215222820752813962433575952643612999730985296788504105255104339318065267165665755753232208032072838550800802960995822999703160774107655028165295242559423594695605064275107533044891563177431114611418979924362423865541197074486588570973599851221740004543114091110487222593409841098413602917835552284373641805752643866884377973581675919694083018826420297953797182414859809404222212121399157116781081238160699090427202333187989414967171633325984398274533596944690019413784595628097496606948443749324172439231617475069472073659733292239166397886522456783782009203256597396186583507720429651089574973433803828698455919107415197621304192237820500978388964005639286789629273669258977494470132134899746400408289022074997701630531980800197077649037793175070128894202516892111550195334326814628758253044334972908956641688720262742566662754263825254868298493616296655110930444736329388710391182626034389048910436724518515272614090276787843502585199287569702008261099989392677712435051335883702762320719799637213863112877433041264349128533935851308536964203180541799619553133845150239781149526230550323866975562352031919949104054647658298763690879605041073856310920779562395220367628153014070129335139342356924418122557323659722677743808716025733632088887260408201158253910635167209287372520023909436356256003778160627023574267390400808276177705473473369356360614439792167855322043361956033220975826028804578506601465264767305385640111151495830227472791483943830248681893479301027474206193827208494585664147296789510163446783345048684527419195638959843803056916142582140006898026233853403940865042738795263905480768243079967055069971447613626903583332356480111766220780119104701389666987645614140968855696172542754575593251439401311116626306268519628962575928724260708385321626220586858991410615399400536842286982407708774597153452967487185033109630610821222579593045591843375754338484269535079417046326479111083501430239266806158183057668626745162028701411316088290924069935899201321958528270629150202825716042951492072803741857660967188974683999562171019584626854543949341105548979720217877921049431487703355739936195998449523791270548446984286136888128960298143316210447421215839106724715773419813096850601058384009985128304654022219596038307467088843351381282366935772383285700153792974504486951147990316470401076303358092229236788827260866120050784573722376679052221321912656772644334463247070992106299118825915881132060815701423476082746434888881937807563339158808795367109218937658501411148425017404542288816030170936459872968097166467719692159406168826932421630368742808642521231271232756959071986920296574774959200303353413369963846802132026554700863007845599311622288842442283925129903407248098276973108860358015242762167129873924903362208830139100809120958826241788241944125199467146888204704144258224857277633230981156822109023637591744564026801685297298036937519911745757969784663091439536826149981970683247858024698150984676610924389562112446932067198234991868513401556244140876346614150115937146306130418826328642759014382640827465792481893335424450098623822012743074713655106865346109412784397825104434165939942406670846913400335902224164592053264272753095266977786949253321475466237246683567714976803170310581869669925529616886009569287810254690908174351829475982830172947690113345184455006366415942974006062485319900100526835887711562557721483333703749389910989936752245012926181972323530284677613542884980757598473159667295309934435286279526455922496816428512788221557592040383204193385212724044676266507684229306405701834310080537079298606501394234023231603247312140005603787625338464772896126222609879415507357003078932345604855286330396418390411432943072654631088428038607757496836765852095341469134749975310200791637894946566138911561956194931285485942111515930387953040681784777980181947058217431575323451363703279661237793712844883732407825708973516795425804531776629894821132430065514739412406493159141475562947831713454196079267719756031450684359931415077291823642229173343349728067651801502130265557128712594812258680743310849539444689595517093841915420752366129854091415535515662684098174467155110910582776832814249583024914754231254467441857844779064567006042570426464269876718291531487768781174594915657999489195612089433826533004971499955584169553403202200807314191780503343706665303228408057341070262287413987680926944993917186019448066005627727361258306750454591048317174028894498243210716575945319162185261558267509455788874322470211227006337531866686724680717538101952619989523722599632361593420382944555266558219414878670057649933032528669554686133495596672195381552564198794224265792572479753818152088469647580693705339365672080587478727814948792721352542298023736281611847497918750200955227394960584355575688406772795139181676186757480818566377157763826591058918126940094390969072758955436730919243959217006931938499706593232029371607048938005797675079248769338024497852141454048578009785213026047414105464765222679765188510744929555720402899132213009738195377553049835283821391137960184700699173541245441376438036156528768857244406966652568472692570587880295400717387128772894784044956195462920635205934865527551566217510738006617742745305984145389863089228315326536423268825550531141100137409947834296844420174271372649476086069452408044685603714339672526166925452157457432952253159322253974084979699976098167436331107512428450110935480046031951179624563403970517118424587262642185942021789570908754885654766024233137311544640410253049185649749803061974322241736541541925816956329858662122540179966654662373545522400449886210985750868858659419953718732658445505926104622946489512627253643362456815036115026878933623952197928987011847883581814815044900022933372140121956077085109946873874318524562582150528255350054806938362126067815221430330046072659353318735474666012061631004671283774561582119960684229731531235017524550453668076985943207007912652637443934763984664439267454205885246307507749434870068621017987900725127580957632633836350110358109088615729287705054068939690213036672138739537827760108404337327385443923020477973618253012471586103149605352107571044522110678247791112634955773186565461861863521401253165319164459244903261974727205996157536297498898766596823622239796597575328092812697228422521115996438496557739414012256089520443166940645531458941811565606336431210427848030472418980812112200274028881121775149586819724315045214546519358136885452984772292083453798218462403997782956982627246886220243953714998514253468538709806810716817108984965668104070058463212331997542219791398768239573131087517709296470929850863893612998137598854142079206396906548396076076132286052785112222408119288815005380058796947306379021213837290698169227675548215536699997348922979706833092857414520532388975677795254466245538536667639635562320198991627991434102579698522657359806965201363464665707610835555053924890945511446004504441178345480158602580732041978798145731464602801120886129465432631492545276489395769013771088625941916348038106729431902606712832786944281107070506245427325579725606851829807934795573674733814403120027436777247786272800584197894261081587964157112714205485422601491989451430110276083145564085868617206485019010957349986438960351377313583618187227834433248537647507613337946853720306964375119413907401450612085184310534097001099054277269515802722436507830838645067162838768858649829967931250884692963058261732373661231036062836277867523083397832978679074775212417128165397735068718673886601176921475613685657604145382921057010107781354574049257653841835683121665208259824581773368325760519077243138493380309997534104332649940469860964140632519553305776116907709080746785539750014655047257536306279348053479505300799548883106496369895421185044125355112591090398109744047617493416063612866392340173559710501816713273918804093517448527499204474324072922999532151545000159146534341920302128984658510693891678283022949965627089707744167225853968991332812932042125677299321844402469738977448438343993152417808314310036007977476030213309096443196980515262145654198302397903214710246756187124684886816416544664710716880875423043845234376460337467857347837734410591687778290774090130715761592080812624766215476993517400313662301744090607968060769201411006814945827486576152699838023184187021367802482204925856725031183181243363193020563422159741169313529438883545343191366113021035597054223580745307171948134250010464480317294351719379488447964055532980161451470923334362967273607455106467170774854777306682804000347020920005687030419196354092686652791159691516071427970521151314252783053717012769350975609642428821956448385362373137373235699906235944159184812292792560079326716806041321900284604740717081074677892379464434577296082213564472162945117266940347546861155721314209155180339929376726114316878575746537021244164103032897189474987255479076111184125846024858417344646992609569593681357429067263595665931634210151322209284110416679957634917684728439043144300404180851352497214628759367192053514550401174256803482476920759218010635499198963252724239160816878620464104046647178653335181694069935792937317686462875640243089651908789977815032863328717065542796150621984088770512528351996004924721737530494482608476560013540596210172074436610012711761160909519790971520579494397657030435848447667925914060244086869421855538709818063931863379766309462111900460367841658278412244986747066796150786098105335334179985945725672367182493122438871516162863950858659945161883395564801892255340026006902206031423117101387641809904165524998036708586939306324602657233440589926607765536470531706340464666132831951642320859287741780928911876547250632248912435459351418857953536105599844575904500717239762651135856566201432624590347871690373517082578971497267394050284084516421234588604235805760495232036552612518934167466863818657258102918373235844397100113812566034963001436377854327529212340000152508590950399721151763457048754285108076899373445408900116054913078315193841414324156156889367075481754557801612069449903249658612586859075181291111605133793950553385125392641191125287136285782709995242494522567471070960688695917404329842725788267759770071542966654194583584988371050001253481463554606707483678926518318120277933860233251472411851624938294890423037855360151380844989026856319007402866685387443317028853737566361742099627321911598481861153378567159046665631210868237011875987916126288420191678420184369034690300084431608416720545705651173819973594478247802293827310813281273002290070373307391194815829491735758841895004090672776096323971351841219334071077834431614403637328361404628666747371713077780627988402725096191695674806491351284255971820798829625571646849947310416602981651289544535175676624660894575015784069429194746578311123761976340554373212927967321941472746349607967381760672162543477887706293495534469388650281396594961758322519834278038426923432581853543132000133386260597230657954971062304672341110764095378620748713205506999652197249066052599705625532072703621660418633850548242567944110926262696673088556301881589918122494261795896418279104453982290182548796911068744931747619016802584491580149605769063415328112501427509060983307534393635103768094130387373275652947337412594518476262569371831990698081178610448495586621102444398391662938955298593669175945322402457400259612587594564643838695574171548303280419538808775579195507583415856143260591777370102602145154653791418295380869611545688294916583851809569061758478533534553458145465982428215331217307120880381263140907493594110370886531784563808456158688931771444953930142533881931846910618938649122963379873753091705655267543529640909793016611193477836433854089141202387081593740507538882349734224967557453604171448072001580530032067559689155924819839452048049267457201342873632795233063159725294899895187585544466512371698071190188163717348384066663328339213511530212460510410037443775210898718072881999208379452633938153447693088270513424870420725913075324635213763332673532373182599444619355418216745012668573399116881244278370647689609021439116935333910828263712015397116646888387049252653418452975037318817173172246567959030936327640818032463149920136070630200969894275335718810706682234673328746228745729850389939171676455912793214984541983706174084887817681688279021576434947390368334946811741235522222000291907461949641684388855431054092692604320861674222129502133279834190530802352740212350462598129423080900014154940281545640841577658714103200962693509278541743455171178822976263699253892474925990016714445707927766986846503499608461455751424116383724932808430743645173933281128686603372906132178714626163462201683757808601965441759859300731609031780727939664651632606355757204247742167191001078972273997435597158784012033288334349743919255539559611482720051411232219731975261712892993258815840974987652276964631671417445541859382864183234027754398420696300180768973430372360874295232675672602635898673772322985299445904062596624352416664718263158678064913730582701776421537082355128436800549941606245026094565294734024057535256296202843420121254445321118167631122113456708969994368297653878407873370401537494165075821276666912475868247147921946348264009963064940956747876633642177388672020409961950027978633222488194466156529214634639016226841813056592318059125659932394337652870411052605425808682486642700200786625535590259977988498009576475318227467681507810123499874465945586586247161517634312366330521394065660067273986737224480188641358915937962388876033110721175653835015637775167216692107740302949706973776678262785188380640973212982420660955745540099027151619984642419355102457042123806018703403247262664235319938217412953249711578649993436532531453287147874430371774642592909662259695120614295115955382722736908691847875956690717953985851360744656166390937650064675764715927975859909937809826458748243839248260263364135302637675385102929630699446572418100956601454325618353635076131689312620114549426990474178496114043220394464562194053158756697643798607208260442659618265830724032165069358319570495095034778508450701045077088146211873976099463575450787112965871727287078988867891058951834061666484999232976879450855119368446780318177803740605707302379764641841541657586982714817877183834932600730183789124950586623797987819567963582284680002198637503994815180709535428175698168977205190645620308555007965805951425496347620186905240356636032356298409907465642123523729379827566873052945549372323042737878028615011196519126469901176161247937434217866132654880769499149874414872030553118309366108950013844271843347020482318679769899854781459611920006164821446610776556196229349895362323939372982208546536211571877452365591379656065849959036592936428271741168359925457801803930750884630412805072129574250276389470620652557330820522159277909688488926531722693877522956919586635805610157278382603553627215338035656329190551778451100118932257288608382204161487447329859120585971669430090120323135355830995946404421710611121044323627852542742822660659220761657969498942588037558101790187376726591895772690532915849728341396145364961247401523403725301501494955711785775037388864268027795895515949742988419421453381019199363797303973011260428653992467539677986139827775167793552877456078817123277268501535386563010451871781804919462844451816269505756818212560826108646558043800357256341337960888287149262392076122473241480824731786703788729237613489967579738557357324620581115468835897229295931995423261095885756317937617355916597131741804346296768520280332390295549619070125265910013078095649186203031083262148402613425950100863898383282199269660309709379131410871968784129900910841896894376332428316036903633660960519022874861118400452740880232215911682837831722688459001677434085963062923981179648320909416712903529221234907830947888589173284944984536682948591186400894679799234441451141337368852557835309260472279864850190269718938880832248350914857852943372693699948326452831989469367267687784830986307533187572118982753901885560064202337476061392944852158226875748979139853785406891015954040152811532485949604434572232732252821808904073988497748878105691939590689507943219612912362333936216284907075584527084666882013142009947246397602724666890941267682063907572269180520244129605991090546199466805122788088582087100075793059339584146023994110574322190872458028167318738441057370102397988230272588859215809991421333953835148916205698752936773223206331391065456151361091079317627341901016874602018447990968637327009472800857720910875746334708711145528472511717736152673830924835449648512594350771069325234118299021468491383851162676648907904191789517688014267751582398198523298531894412070268734652868865095760681892322978585551205559422703485695191405482789214309081062538865221978279613004090212787178341849276140907865576928755097315868822707180935022433897745875067226598733644724296150644165428572128391317201164366390960306115887201384961535231660337024112132358392811278491445666138286184209200297593736767496756121998517125490119994876126404860711041298248811689226626070024115020963539024263408456380799381990683184073962092469089158418048245689721432304163120929150456057265011358009311178753036124740753386431848539105005365557379173145982537584974078413051622610955114998860698961607587411492685227568336562065611663711070789379665411034463405690289779400318704584893490404368876802997078675859486959148351735868829837655270315645580342969812128034853866806179529903406083198177497173466498532291479639091094248681769742006690879814373786679168478485009424760568336137784347301066127789543787009880334658464716662912610026879889507862351875392224129023726380158770984228334257699300587315060785860498019211552513461441042300232335348336774173882981568388359431692625401382556635076165870290883166667162208834551271859947885825525058656640079443256432202136049185325234542452651631792970256275284886962917862313953360710951429724821150110008226859565062943319937680846265844984641110768362534698953065878339088243623121563829740075636025086638920612540475114315773481235958475930169993360530071924742857960677136759739151593464291276245939063128001900653800820947534144672953708586585682137405686087363079027539640863188505474788607840944800829309942954271148718876691516352056884518270571136669132693344079682047664029232970949449214728363916274406644091592147932590853540488427868305286609318281218768002802985701062997729997536236152727732897059129412202969403837443281865171904813618453122938010196706359821339563438593008484753668204311274599603686937899851521982082829803980713789427240128144810856759094137707747546928913884494850493049555373552893884702170284728016479700429526846054300529001661843503575410328955874688995364816283813657464727658136358268929169232485347927409786985292596283548402187212506641477543051096532787705098208179019724571559666778912271885141785828456211750629740121893656001844526430242138694660783308740980433860225290229787495170880479467349450503184464731563203710142789432826200557495295251085215924325370696985203091120357231434867895607740752909976656446884443037018463492950359853441752495163505505532583759430119482950217822301655891518826759510446418125568226335317899970079657341439455928248565392759015124201509433203196018328100844511262311396350301308741878758224974881445113986561636564045109084400578753377863749451658750810940351063231336607457819821158295681374507042005833291411640017696676278518387206490767810437626691730286863349756852066667072800933596061760785207420522601494931905403512142915380458221039279093200642157379579924493799786831917147548793937031724255462177084802384932750141476273502490423369763560273778715550582130878401506084383968843571834241632427929198502561755122738128385033767933757787260444773357733264184297808785769105174909566236987881651098381115886878736031247410278624810863757196057761583901037839974086296122026882957579825109711542806259173315195763273500545515934373505584215205603616746238111081232272224990231144093798363944014677628120250446938086502768916137286718543397521751787135352967283144187622246359190055093356449356825326940101263395290662291926899587050759087121340667344134606550670002853566021853392210999193595571758611448970883226412521529472979217759248485776766686202972485967996675367981374943996393667351390507663677715098823056403605698372046438352855937885169781460242308487167886093649294123730796059171522432172998813639093535088324283771950253466385585799466684494053846205177444088479017316360411108996430924172650914651618341487237056481799859407348745595137517912559649596448503575437247790219609243237910588643157118224502483956270937753195196774133554878124925624455703071977457483749871514704507131762894728543301468744533630999139173233105898802849345018981789341683886524473927767381230725421928050921366343136183047949777678430710908728771490251516688528599472392337998246349230219174741508152113976354711075456773790050641136122851293207352237429741465004793945018196818566606222711552215280455935264915846906919931639039268858344191564506143972320254004423358630306077133250192156449590905327946800032819456674299505942192900411733196665445587457910290058839614629237501121415481760441458519271327583874803092605406595765492376790953712592568010793994401781038371955847546448955415296902198247496483623416104555881323843389636956457663088816542857521922724989396652474322042090632050988581184440114800720353254477997571454133274051066127128370831215340082545915701740931017126969202793673279782011520169925590620612904305538118237427560299523671780256415258024069027098388904456587652075334692012757530441572205741050036767654806365519866337095516758931133856823802597373680570071569252715128361041983625722591737570936640334832188866339033861165166258325716822349020603282174620281542935307114928807603434307902988541665466000907779781144815495375076273252660415392661683818284141477424064935559353708612011524393683519360301267249523030392903334865900458796100469739303736391397152562323851287086584321558423142694188178834641066835297949885165594489704356614817909884795466040653352178269391326784013370966652020680736988970683715932440665110154496671646736218932117679073003507812034896564021599898907768779097297403412887831561398070389142090702894781797430920829352962867982078306307503424308822883056332355791465605140666878752926344618878758782021903360889727602743136974503354020366557040560955883106020934365133575103886610099795151430975562634409693535642134468365956020345272740045756861753639837111174741520162174510291059558580778384337162683007955731763374497636410398926341292360812452301095643652128121893922857231761697594401394796809111842954220199473330638010478731219741337658440439198977993045370244707761791839619751536206887573633454163051410824624651221542321981987878191949868275349295481651980083193731295622689299939081929550979245968799530170662318436724380017380443165691390207732023977583470491422340016896783691059113608028572391092442338667714844111409528134288579525414915667393386457873699765220054419465936515030364254405806101951520896596451207287435142322326994520479677863849831590076817264735863848395944643945708126088764730765628390272060594043007764424261522857867149359404148171525442838085724907723758274608824249594101864431725656297195719782608780427573184247412152583479509496272972463973392244634125802325484028752386026937185225491047858346461385626316548154017976035052006591775462746493366109548993793510031970500436747849608246122189350751228634759087606241429698799103445784813159278901402732488876571515566112607854597295971947776900152965441150498561249220509974151896242482918468730639846802547585558122459003498853072697388964983470847341371359245872198037619647529975781211624490392754849014677353585752473968020801744368920459663331484897372277144812203412208726775191228546534873663941672960469314342852479050499322819918890506466726808521428883041326011056280464433135572883635703738572702856737144347271792676323012499201930334300387605387436803776487392728942172633597070637594328982711453650439436306000570962336741742391369064634016329915599840398138302925535397555592859485911182955593762893808187857175545068104276846821656973618769728684733122917891766143999543048833343972169635778428815781694522243966125777539129006928220391182000267531043123623225823157807882853851653253192143028802254605340483626135159955557281183204733261168287971679101474071911375945306773172897920990269740158238742356409902990368872034420959192967861343697028572219141589706933664260968365460104742178842659365055437297784951631797254866745223019455080474979819876175938404016172328223077737006248765500005909026628415843856053919589998493025043929876130648203114045478299941376592735424459049360548434566705348798814890218449940768070650666461940090930412998051797403150541209794052409894522094211292459454744976172526872358115569537316615359542865436708432741564773692237619053719437447873403863765863398788960736561245932155436408547492376140271341064374965772184155206049133761830779086011121788046852675073462723399058162460163399480409019268324127718040820531794738062595972708019590711515349975126591348709855716618055932199008648433849795836230185552625570275631056103804162212838812390210383955554477533400203559130764258100645126834383473996498493491929461161282553566124974155126150135657144289287213511510658426026554376463660932045841107674353212681016790530066279155798292400579009492085625097889787665691295035856069589588136456493723697296695174985317145261285022456259893889295401019954151913204663744471280368071628823210026492109537508672182269343773364033030849353212111436151095086052424807386339533277537227975274863443240968222913922291503600989540959967582134606784990412316083195550346702231458987596265831526246768706353397057784419091490013132169062745851158579633794163793950298873551132070299982528346983705338438848790674857042161254473450547732730917988036210193018534734894989351203532454911539519409405144864631968245153307711617930688597374956756001260127740472267584254657832749986054441315309902055370581150278231801868756996904556899104996087193934491910024216194853226976616095924827495522028042757253441520752009865685612763040394909223895211784074985891046951510118376409983226264254210134495488676684363527775422604608189646334816527347203180703665419326227291117884698617841502281448203259285259069482207757333105222396606811594205542827335279003404353842098049919502805968040508211888803388817287135462824777218004786569640280091911717744050148427491816411803626009811124162391682423530556872472523095512650503020334723479369922342081942041159087461097332689540774042437257364113101644536861477834181865962874844552773247978992260680728743057290599168302052804453856663252333401800242601835328714203870532934033113436487274842012392809848619405886258508912978205035887661661878297436471244209698993209468420188836202737072155267821470813759092144930943598292588258252732173735635000422791006823993832970232161048390088486189390499629153146407466117149670610730123582197290439524832322529784946023566239637028836806748537655703906773496556592004373355696447965198885136346873645851293472583253920421033302245669806776489911361776670103038526106831887638343692731336298948638301919382735220031647125398770045802500103160655446995280892264587894813052392655816171138272863741388075737915269935266478541653941865564588361244288181228083555729978069295984148405780594504414170128866153303623610550820121685415777634369184618150051051077185882107899902553890144036090083758789887924762761737148917102512943347715938453528860100613261945485377990151045822645389391924155510708271037244935331553166154361192013350795235505461052627977031011940103911099464241267631090054548375692554145998175140478294255308422259578599397515325995452573545825808868627060757948052124557858193478132773184365218463728414108880902988120402619923951113070906137659571625421724483364339134039902969815743031985065237249105058625091729392357694277445992535786582917449855708824226571917778225383583358431071533173016242320850880480031358624796579264340383094127052636569332530456781558490453968801778084118926095592450494639932964952541632306853544648541674427227326713898622810119810117952510060166895832543603998522951353372347277347449705435433231273892109384432929046561496723261837621791521821991991630837949771549908192717482936900159991242830916019781778838505241107222383719564533045513302786429990317524969894518253550841118758956461800485726217835002125401475632580069840268354750771119077216620831083926500636156101348516540122348757895530980152574827283422548704961921584992905333988412307498758486748088995042858554092908424692323538378156784326185122470155137569111224246006022764103205333798835107719930943699590174808410963202532511294886063150583520317381013154330404865930724803730558958570271971570159784012286601847564146052084485504080355968737243788072572948208043067628210046014748366982775481271746312885535079306183863051761792356958370994790124135075268675138871109040917514039366057664946442058824466946340717989240977852365788206025528716643490947017161465685422669273280057981945671523804299893139750348611088090632815714979055423586337557928605714965664488552531812988208151309247319716322862683651703244350884742704685130554306774761353569789709583923966084204177755291108191750726083426452497225942863308258305236260099301482728522984635598766546917342129234582967071915826118086840132965375043447252913464047865877093848409520534034564422172424788385668702588518541036318575619464271814454519890550875073662569445734888506625345911032639678001838381548162037852806584148452707895594392423905122440427753346987791266880478558178033709659381866140125197455302303583231348765997035894292782790060611878751472588255588884595563020686336535631683217912553214231671900407394949704490969727292859309804030701459085439682651664900313927922380905927485519523745281340848099706890681382730341706604092685700972492655411955968715775833506635043778528168647734348383217778891127620183931998974587725653996422234850350790368313468209819212397756561067378159950458369958753544362732643253823855083778604507067504975714542020171662288262262996871956198560326081571938877936953923507982714298692935315266597900295990340960979892707677538487707110306046912824748720395318243096292721933862080149200662649909079975487741486363121516525254415190114391320322820986449220946217836891748547472241910308401026142897087813314283080163911781418004141149721653208278691212998580440820647867689736600402753196422544393228378948470418787344636731257412737836073284218851491369981916783822979251140661515472320139350878906802827970035740300001308750763704182303790979302186601142567494597149575841146886429370887489701838739509627817862926130185763419429078085795917680244308489833933467430312814774963263551518419377833243671318332060904107257561829545012111239951731259625080722144698016282454481258397553191682315929526475943937164765420560018447744657485539294437752743603431866170458246325772601520888928345152238281237505413609867654171350164432948535659078899600813705181269706030456989584578014171905226191115271151777518949593214514205781591705112694124356589588234861472120160020800174641232535728081393458345733501613128320636349762342805021408667332673842908750048816204670891340342423206199595719800047541324575122895658172116142227589558312490455828986580127248707458669708297065280298989005796833735933955575952301788849639659823165562768062328746447259187556787998974625418438238885989643742086999605196688782768689551165722830694786680407334958553407025976320754836552627781032542437941087152997195491505438094774558707931828041743041313231543886598313000073746599827380407717089255690511906451269400124932406095649091256855097047288429612339703438707068484967780113116233812671743184128681920512135056556576098776228103204730594914174553973670364306100233302104840736280268355885730301475414724071071562832768304167355771910897814246573572852777349328755379818732434163857716185195089386397903338667289259540233495774434011749781439451270874849433356581693079568706431339758705318719214748755206546047620994307971135040757310957918953716900593757885520903427964870535911292820745303815577353881983527214778960397727804285369326917803715993149603522163336646244702583226979601869440237240371650176236246414168058206075536473287103969009362249174421056287862079263369416760955205307757513892190449330956123963772248320243651051815196761984147430444542352395282284780925142634468309942368193211463361334702106738418402483421462553995971805073648109241251152342448500303837955492914476291732160009187035891024550373680868256249986446405460559035029010315475929281025640527105684010059321171671507055032766896434870580160555053297882401419402802469779564016827696959982469285446883577773895445131989898508432767124888964684148897503772940906620273258913183261153906333685121476027285301181199038281354742753529375202865159375664267584423133532153551029253660242912802234192447848752937012149922763227213304146821617253018353852282168856976653638375161190409156129178590223679870050905091179533373260259207643479621360866352402660326128909110489849321170517224723414775422949160687241066167643052337238815557438911006935050893204589423644306011697041707143223596487932152720104027488793900296357717931043340173303337586656203350117292493165716310806074524604622875726097524681644586634259829884975915464267555629265896886426978496932180430456691457199168091446508963619897120047006681694701779332890254631771313593809004135275270956783794015913847440706104171856061431966237308776467317228690505424802380770703445640708674552901505117381307319447222247218617187296666833540168249022381602064409684605963490937338800892486710317138879598607656627605113807527659486395574706575955472264779178835784343623313683900238371014763813319679293519656997011345506874153485749068518551304596368312151092562008734959122465394068790963411983005076060669911083339764777440424757992696316053633884941728671064985632118964141245391682074581775077234506731279070315810568331544146365460195757879508227893658365690281401569300783728357195122997387309803045763236871474795783897838607647282407324845498517662068802299559126750232014372559998091815936849667107299985701777646811966769287272907843014348981116382896036250398711492710430071143979263878647350760694735654911876619111580184105017531982760215409716847859580353368454328755084154367329902213146440433509614556573522124867178230541922442749459287282114886961012887829811562232731377579259459014064808464929574980567542577938237408031804790082180235857528084542472126111887177260367322328643568240655299295142039236333399471456392584480130417598227567185776186951346794721318992373487154152692681126446036681477188464837310221564075289207720119920428009420101121701456006221866418397995961030806356115037038197037956867960043689080797764394465494983792514630871636951309928066171222675316675158748215884515704157160535524744434713044781883977714469862776975172382562685110151056795916920679445913581759773538230307693297346993080475316363554617816923598365395544568372303853721507731655833473046529219928130642861834142603133460031933681332086454348941180533066507791239343408432390938680078491943843963805162001732392865499903204962355037750075137779171038028422732147412228797014410652097388422724606348305726465314535281715893973642456962626434869241981459955322544522546750639269621222955990795702533683094734816976857334773872948748543417368872439189399289475336353555464702752018314045993170805902507958019277858243912780362519532479363757825218017208663717482734027786312421004629016235103464275782060885494068112193893360131990861945884191081283139609983125191921017185343597730750354456786635266115312745148471633453159090655526000426589400664264670413269445926579578444155306347877898779549718304669844303933520919046587546326003287302923674180596270660787735678491266335118983659607592889031997936134037969883554574445185189727310080249643094256721407885964865882325083806740371294533596956403171083611316818378141390090135255119808433193233621497589400581274738634021114880189808090017280436664755830512709360131371526384658869199796319360025788248356012684288602481562565127619460779367669397188972574688449217213168311337595388496896541452309634887154494029342217306208615931633463719472324099700237665110560681971353301184868132963972459044508878529579696774845576944054044520706112195770777817638525202446470947112499715733966910098171257298729910019059553633720949817087360299037011194210113870973988423150303106818876184277981921432737605573571300996134678369900440515302063523200214637917566934091649388255253566638457386937257077430141589575004442850127827047150539872535928247286993049800287749613883968695813737388318494626606834746389665160312159233976836933912656483573367620623726082435451686583094808272529125954775905090785664251091972574721623039007751954021618977730686362897256100572552405946153052813044481515192883070428044628748214744025968926560354318288658615945225878281150331079905738824587206117024649720309055266046883763127867415460484125313156748048805103512373456939569164786762664762312909470859545921248101674769517908034267700095356068584758721826305478008708807927774984747520705481190248098278436381347591275999062787123092503769803935380403354554987968591489095548590425697483637921636619665331756576195385068987199001246928333152821030043475641736401670722075527754975663581866185619529543131060025666657149154653169046078686017678177846920708188558985319711577619916601869280442147201256208463897026628445675285748689842658915466991927023557637699271538145225462338066056039000131830363391489100166292795829816736121391713711097065813012069045502297200335114870763758961903474135258158305754506957714515001571340238510679768745982138711537228427420734270771430134372116456846674889959422515386931707103816250049363810984712382523260085510637286988670712823079192254583729753496766370102210283885201845634290290028870941602953900626070794688499704271912454384781372056694440490489983995861235834753261882906060032319905406549620742747184806355482693036803571454961737014972313659729629818899500554063540288084480060252157441537047437366655402476126862641458277954734738472118535771644432497615291955103507012684226693551092643474442110902255689010338873200400375042003990708604797615228845151290015340362606605542552329373670687750591777181593521802035976507635206653009834390221046659630694889004345852218970283830845515842546185179942674729194219181081323625764999778965265442836057481585984522908305225818731039064181174854603599280251624865944149484227049444170767814524073118127857863764318334473764823438883855227726491543351387808694362659195294662658192861636186737285150872800312151609715202357419848321194894699206958118035970746803015827692306003135141942609797064036966042962656304075077352279649629336832784914331699905551074296050746079201801517906980125813312802488086763563303303005919882089600714786309040440279334965473223642752340549202033644937113364102943954691114541980130093994289285639523424518456128544812861971498482213399645684958865668806767335674615752398631333432282932527665057530909857671543979816997688282172901553635673806537147016245367515519204682574542730993748150354098594816186131230354559543454393527797503858550207415660638458146179284718646243802700332741048378907194308456445194846066895459933568808126249830658229866869564625634125487049230838189463230484756892563798991593943771399008549148270113202255253621473862484508466862892650602852223276208271297460817269439679180757924264555894541707638247100036352516320796571800731591889544593607331848282712657256058878459701578513533382900435658361365492122149949576426006401505605243218429730790155062691714595740362425483980728326907312020504969904105810288159160951358781745053314592580612167017589017360095414426813010987931874849343045340276300808533404882984959625459032526913088015292846635672771211778782410469017678837338215774871524492278431304839352029010752262482745227372526043873742156744896680036068991865209110066982617062602666441019600699690281020572767358939660844600083695560322205734840744024090508504403493228941025167258434490900257208324830810676418159972460430435669359040107978719293879786895465648261920857736407486103022094045601052680415175389043373629441516680865974949913539509831810332091245764304606000786140989425559722984570714321881627007601061893634556538857657036084540718462015003348855819109229738694071753985767238942779295468041084984818338196591437390527058473698214356029911190124151500656124867999143598640210577732719320680809093676352744587425571694412399501379000897741305933419168291353058721730557317612179367435256081168311685213394449681956705841023864212750281962934082616208694394357789725644929818009892005809095346926473541966245427944495639142463298509782694102034902770062269696797715208717269123289867164414502922255546914734144632593392262696962374870644853001851639322445583653070898379083756317969799685085742841485442693855290442983843432837545337194167121316539244105472348821254659103130140802264489489787352777368659192285847631783796493377595516550743975878253192494886217152603419895722761783045419523178412203403809987216201563540589423377678028467387525139069222505198292427341341240354759314456938056989634052854065968689170186520469988229965305079285480487215341293338880796747364105250972711886333407322285146505041840263242827482032573164879761656264104560539006999061586360906370245021712551349830645897356262045224411800810635698644640199281019711348956556151007341671027053840065975123931564875435659386945451177576331979576595844065208319973135656430523905358789516140604388309839370855038776149372167461175594081219870769633689470280918665145645886879829668394715842255207589171217194924213135920872184320374861278711251383719725904464154925452728999084487135301626674151185492742907041607063266101491353891860977157552973026199538471914222318049025585580728672082151158810542142413949200329945708849970280038076352636979966944121177921850726576786742729513990570389279595622845047811250975804438452122757680004209354712762088637503588349276799291823147787797493645335890698119298174375433623978990367841543740112726629777295764599745100393506447068285607948911769074409719796013717108109067354652501964088462983632355563949644288538363730923629662751034357816090327433083226937410957987059053168631333014499674597849076971318185377313057692916935740826166258443284630296253914137520443829973869997537992372656770580966115328000740899676167008463745366767852841605878747452752421566191730656598885970993636243274313027385414734060491919940088923953306733023641563061529821425189134203251097961001323717905085342675272185849422255534202279180787869018040046762671816490024034111012126199944645118387333990099199443139308022273530226213208003329960010987490119841098347133184985609786210967979711925007404604685385461732840557383728727632207170128658047255648537275185970036314550328065196301525139805436196072286035219036685322594475036584884702881194051775572708090939585924363506013444335998764178581764984792284662790033839907030138912710417363918797433773617560149435207584779783466798868815044416313000854829541394757025295683120039666705051662922908367237906707281454428063749100567093582051160273805424216922161946506526163247051860678284255094967018999235012581768310900516605084383104383111742375569096655310182996947559933582698988794019192784584454318388048369503904021487145890985121787086648680498646525057587315567256664840508570016906814648934439026062565177998134219595424369778315226768678607113394386333551773513387983092015089422353791258749458369690594145228500042996889354184546177323570108510468463651656445676860380996955751839449538696926636079179798721287018522838116559470792664011879619670006703712441548771017998348880571092054219537123085595374078777157393510536590906662396060536043148985767136917678176638870108949395462676622094805962825780579728410865672382835975001002538881986284122569465458635801976480120569439765104892988354746978266718783473748755216543506914336774702323345547737206950993531362755540594563439777020386023149255940495333560568324600503272261614316537408298674323346625685438337501167725035400488476038891050301437958155303940718825979430833467944916111108005910386609608054236242072528822370607782894527882826280266399934568967708548645198462880905882013812296673450426223136119796394724559548646117894297177662786969530445562130440815179156927784694027145760447698925451148554173191560055990401505798349357389418666523997341084836546515213026414708986606922838425394028968195344795658087258272019792533516807888000216414885348828240157706975601094455767679042877513097987918464663504265018595822479589293741705900005887431807214442388739642352232995255954599907853712564925395057190634316512098563560051495738882257255856685916032194346041754776206374759373701474259644058219839565306525607753043460925736972861020689601947529962823780239215951580885062769374528028786574052767555206235037920345133643373510331590328108364907974776253336760938678797734431558666563261340022529542123396545814333226894378533988573819914070002707427741722364328756356171311790952046311534916844267109976989464366675637587682083738245484665693335541525006928399346473627388326588396004731567836417146431623818042457154129935734317617667700971591736930568455055083010473405857018024282330941086807824375784733692066380145818344591589290335947845476782908379981216054279434844765011536036491449996351376740245620370214554672914145528862215729590479238946632920528239419891249211417389860243109175335195174279528045053707193598092605958927831435362821720128796322475727156146573675216046079246365840096513524721178948245161807440483413758787275378368234349002473251449314614947536975269457727646079259201563806453916501004445415110240685307323458406324912880996202617532887313396854230517224228551350891498049267808323128445139414877466988885655150335310713152394585132088908300202124898228001584896494009324592666041275128938663435348667257187997749669921720215556081996124158920300009041954770776692081958093425128464684682260886678781171392299483120560116227304654210847420289573528439573274182702400803512191206017615171830462618733356560686216034674661075335355356329677820469173478644463157327677882249368379730170673089549898294995568893236516795694275723539818299312254557311097692745533109812233391143567245533506741713576284071004991835282201591621317748810619663458857190222130079747995878513380420545183922118267717569277415328703654521549729463552072248763977291592181666805166463936410989208871113945560297534458566762407415229500045615522197826006097305449905307930398856696048988900092850487972021034325672152099244911055419522914097517962234959415477902033999704573250018359368736035843349306281125652414737544847303068449719100211287770198444853800345860880859626780813118940240352958397935805617175731228173528892054374995280156949726941733627551724208928319407077715621270407431239248908717650438943765878974899761934268399927860732958429115655215106257319620341740730180950471305760774270861427597239865962475419754988424152181670425059339833432239825517962974765227218371536180322654061752817998530733799897413204113946712546547961568608333657248485676940643203678773684180695075690177324066326908582954244695238943539494039749295485029027708552288742154530644086296766367205796931908803940950922892144039162161867274190300888360834634464871376076304682158638853805134996305297498344200550667862462205964250632494043405792393336069191932782887600609154243461727882948606179413556276056627003127227604831624473678263016728078701508538425740969807114434977494644154253134631948331271824783158325418713278555858293154280250126148728631834871296342182868676839793515773177481958850089141068205603012528311003915377058604410091535108878272073244312852083837987604831516766676763381252634795027885435429526986659716669167154556862256411987082408497568279779639563944296979641938272652837886912074994454317301082993722272587073634494534844041203418489979554113632597515436356994104648675943004933460745524264514535846439516671742207590892747353338404014193673512074840058034347883189574993798597433418185755203830688862708429092927444639687904940441374005930981235562265436951033330257540220964076091091841794496136661451220749035588930101247376872894009003174987307507824947913995569658851560558794855465028415738097109793629125881954858224532038242947145492149131948055553031739554650059003059809698182122484390600579112648797533857502172974958293794309209880081685721406115497401980314017334231842266083699224031678560085895177166688835390975570805707216836960654927380757225134160165026241569659683953732168934756808132656376984051633300865964687748369513843280827902606221292489073229841631897572069198720530834751662791708846310901184895605190900794208423443378653777275878001575187851211681766846628200966995150144885426886442022348981899978119886667764406544426330430795278824129559166594219817540840230833771629954505769578574054104826747867313488504039986803882172150125994661065082487188340613420598777259842212662280383036216471691116626682811060109090608071790190976814564473324791272892099609307792217708079362803325118202259508242923504982237019087815331945739525504615141169323688043508543233981150166970988207394802864381338441473092516314401524886146826215968536402356207485803487604048207609982490140109456617381613321708205951485256034389760646306995669273172698116823434247529817772449903514534769781829311685394372669790516874055655322569201306329755685020071578208057287607507757089744290378339498147814728851819677389717298958870430377966576082703119016039567194819448142244890568550407064176304547104308258533752540684521348448916860525245116336493858051307897885754983214094439649910728187271805531374795778205578095690936782000269961617485345610919473508936891265779790339033328513742715908095476301433054791053532465449130442561391984175627054980495001674558991672613212361779073117699955719223781729471413447442434436761854712992607428844147577809739828005602650257688525858164950387509730923524143314201649594817718029139432675916795658215077352151072537161406575282768453525040348499704695927130613313230632101828199668355451334942574073528947398007630932408091022260765600420900097742757471938070662009972016113328629801810567390926149072937210260992746598134730655306235499921740374833426556825787617233615115116621917814349624583322197239957354880074441574352793474147527773098223707788066519542686102156906470699091775409103939994693118547128083145353926336049634754103270132156436353499263131020996797116851677292529670131518975405680531175621554882334638757925090956033184964302178204610925212482005601171209801037461635522723527135887681689766911676686524368176987239565009756182361449278675019987171495468860516378067040187736858280633921910634301035650171758573645414571300381019695783749527973785872923433730290347204680085095057973795465528049935085717806087674073090335282457215772354621742529614428691073114405485134563943372591247942186589892966895760023359327621499683066073577221995230162596372207447073448202741665080092614171481123272797994745043863663576020250312824501559240543543486531035388422518623796258867805988330797420571295705114657419276561881319556572334585611034332563103826473799903287207945212347609051825948304194416518587597732811790503119346645894365285078972085175772976250505338299336402238873934633372656705087337230745272345866398472972017614963666754416710846285979482133568753054086185824924256893938195078344340320810902206157701777490891038940824856537057541689447777280298288521562278883370965970774325294353011357989753626204337439240611527158829140236626847508036378759096539685197258372735165266089127355802524000932286461062847446626197634738189122334250183353275646598993431552069158201921093464265422345206581878316506848405956223230653604174979175592138425031729735086542480744398079732493197876595305403473018557050047465097667799843453021578693748799850011693198961473557872723467674028430652060831882349597259254778947778405523911109482991439257019380085817384961433308225183577707165938469120239178200908293881155316377007951631146550636108341350938655309422386786287753354870477120085647992282054627441934182079245129316291291968308951021523580480345576281338590702279774545614217026406825883439058084949915271156801781488850367883452130553104774123665741266508597913436986384714093837763823888185880474877137743680788022907420826836477055226749392716753990099840547490251151154658700405838177387410611650592922917948456810575127159347496597392010067718463323542302330948611406063073001280610018595995348492689801588683077151976069311488940201253007763480550627807331310687557395897055903362386977981126124789909308102890629960640266082442858258607187771924819973565726746052269876695065419126238033665412340166897837181690123123801324350739053833399897494835469343524730224165563113764538570995187503378680989672292907588685674958919724163555541037448646403277094836146655185722886111741485320562546752520375900177163215185020502546883387486324441756583170378623729218670254558572220222533114766649584117740927426023554999726582234855564755616087810258776245250646015628857841509759547212724253717695694154619031848843735908288649827342569825242844670753835304067892251047776444267982300863984381215781686439997341733230164589449739120588553881477146743357473228623111541856751674258587267365518252132830750408194987668346778341996776715148565705247114352732050014601363384331880245992425443293942147671483617949765281105309164562060580531244803645715430036203800475998755933453688447617983359787662848824373871921997126620729817648302091086152660461837731836541499373547867727694511551596861676519232614203697838903324586250024035303442976337882643261580830864978338902298264010012827812642645502692165531436328350809750841714586222063146259097953523851632300741179276067011714366341828593682586524712959356748360645607846900320769644780435138573342980612044648041754453909621882067209391346024149018432816712404492784417765976779717246244302451263566248242162519925656620485131603554818765326864254369648931785503138799079233402505380428769503353840751526674519692564743575397278941866362097623976677259853504985190381477868908359875337853089410488737546173352259800623468511944888469392308939405241780806814302136287640413778793613087095214278789022953065229664645697189114959015682178969615796308162517248679322631500194036390743501167095561516080709362581890688172011693851510277413242762582174217926527270906716823418475254822873828990862642968552611423789140857201985886128816782991725213155959571696449894226158248061563242138555265221028217971241271949248092467234943163227118828390074941636586719623636922862284341871345659902410428584285082632663629286590633822589432407862428298073076935580360770524018230403645264329133173223678747770578980591358862523082679554638976406663748575617074875465330548385762954159731183886108873115266853315087009371654581001561311695971027164642606878316052251607790728659361572500632195954449199229379302944169884588957886455841877178240650361324934881378418843721207324196209733017851894671854553208952773646586494897638244109969334414913196707365450422320257402077833981742497637939845556956752500611218738769136567498791175362964905810471542968472642893373999300644554585208663532218876165559372458091006772641336899901642972804029148317443556248049001397773596708072004574191287730583252708532141785801943845303427083103281918307758539801772976215750045374775676527907694682704328657868915265201578124298914825953910694184838017866859673828984845470858157549959255201644148124719797598761517593636262804317820460739665022514247634448114581708623326826756061979115507918827155428901438604033900554674039538315519951981058824921570456745669927545303909562981163348734335484008544934083232743698953399062905103221919188403672123501747808599123856020433729923468087905156896675019776200211670716676023386555126660604943067656615792831548752370089557959640179831055128635283736430815041371418873855806234969561428699072317594139060247356604805032983375243737292300081140252860740208083668982668563882096430226875270957685724796931329592557468278074013340971796303797568806731955238418627836259857207555842384182252575326907195792487793069739913496613576507897422155844091188153728049641757852595697959267148753480582117641042691241166497973683866353874520001083367647966340213548637887906269013176791896285150798659713185111353114137146324277040435002130992512101921198780218199043782854153709406972712579190090836851682892308856147561654546071016853289657139025544457415109992394334341048478275835269880430028226326114286537743346707257323089402834984826555202472037989843157800169603339310367757564383019841928533687672879805735831075286957846175622693647781183743340245024865258540078083288280798504153960992626307280631023069096662109091691158809002959817227824552173342205773996519093822228789114940204300616814628836175587033108329220448044698307548098739163379357645228573786106598212192605612627005514336529197255188838561478349495177926736031948537796812934706325643961092586719001556670318698518287462621017505897791976095087957892891339713243010396860638894819371373560585320586370539359797744365038092845857869211570334895223057110491861608499768272041141618463064413447056086344305377049754978073375707431643347195182311483688808769083884067847126583259265512407659666670946601334245880937139208891187783287333012445129099160822674392816008709901529627165793716246714881221507822879384984956333481174097802400542994059360863392708405695682535555024335681848529066155364790382709051444836289449448317233610238239346476978272179413153626536396944647673326341621710541522626130292528814273807588877709599774578561598328113777728634727204692921481257535816418517374356901542951089301610898712325369584151081202180665544207535149112204524341208751515829069021755687977500423151096430409933211930767909255438730552088495126516876201754034754182479431580379353378098289124641316260768725286455797375149996580206882990415131779799019310271108479999613902543803670226806226090088142459329654945087299322167600068591313271329405640659206071037353126486772735115372878299031908583176548590524087753545963760198063659469553193320084561725006953114330948737178412686925764082708584087057239061160350229349889119664270464815775401587203886695341319739857040782871321055279320481769269825788100481163719675299712687283723382738567937717060166845338828521075601009918984616552326929449088238598624743473259543050414178245679430493597330599518731881624873897107122996569832047880645312487221419727502947589783948073726225023740070617340055843727453363151684066980550602021126992820225639121291402214138360416616459411853039315574411874596463258027576112060811393319425779031409175161762322241857989647418487797321998117353861497179232506163956245703176107273292307709649325318820013404963644443806200178308833400411680982085287163603486555316765302849470851304536980373908650917954170101625963464394121943749992222161122042145444486471079578034997435700300672661855667476878663762001466304893397006313302402806199856619253119656672697715191954733776989041534412919336548135762964760479960072522844037775677485454821072904722483938394502852766314326497992701925338694615596731926729813866910952663408061306629159642861635205229105911173144142024724397248771588010135895953703849396569993977376227687326500821182289012729616857268331443115357318182303523796528952169052902538283948149300968996830600185637035222598958970976647667421164130859391182014847734919577843601928715120025707797237278742793974780792923935189601610262134773147723191216781024474208241509184271101937145298691250139963138365153759902920202490764167960290850097983091020003541076211542203136992988300849586538809499892028517669826978413958104444723597131648244951700508534847714157446069893348213868044308418835300169788194168432618445156051158089976192737410220401240233384085962155993404018259931813575046666676676108975117165348601511139679700821345079032288224999720299123245682188617540867242791920431233973307367196526311104378955579830310484324624852531387303292653851190194218491788447889334527773385369362424263930495649952417104709445507390092103022432725073828068672996766700809867852706925390059493821540704036153274890210385476426155484298637460969598727085388803292414010663069684925526219730908982635077626332971628265036241735232564848604339527379023365417002668326648727345637572521364940181553037051654173802292729206702557496935422768294290878874871412058058591684862305115143724087612344622514677288802858032218544750714036245098125450956557491029682540933173532261497545796700020657309095059224385341722916773294779530297627672917002701321341011945903091922018940183882426486373878144288111600994245943588781690139087019845951097259757543657769606104699889585508560037930692337677822480613740335420982545668676502978157157128725828666806710274921907891749788867060588750160932326948744392206586523775088535392953415900167698237387167343979324111000950253242916750839175093133986202920497283070489036155719499241844324455684777002527653293665436957079602099128374885090660994686203065519319265508003337691854701867965942066409234964949183164056502605972066723122439184462324417610990903439045384522756495815827503681267669119660119353572600059825529355581462943308057061619792937465249741716105870771993616780386799558108333074322129211481452326964059874581967083516961321285692539912579209062592534685888097157544802333615168636849077574040912577852925924047627639679245655702682376106213170474346384674760416711206547677540753814661986368554026433819332012188219036283585079811949838414617531493108408653302563684563839003626324019263713263360882384653315926192236167102906528418148358041119444281174445807830373958675339728004997865905323058465672924187644016656874752974904470339788323602343931658756710994580484277665565267741822690936109846809254080629842731696197682672933134286261633060475843218161154670349699645875131755654565878166300240718918498571767765482989298481571703078100562060989919114999241733244330171538510802735777450662819902201088739785949950500435183861342178316855614688218470539455020705110896562094184979635667277857201010414124270936345183173025213052321749981944494564140657886639781838688432737029194722644153673759531158246409135070508558235992715327789986231883651401028077149784796277246297059434668316808145648284245948153620183250272236492650746985434013172024534812223492383589290768839063590448956498163801555266954149465549159975120679758924764188350682961220810538513240818601737562158232147799584703635470496658946762478825044798467307543241698492145907630966641698362149416241388242394822458637392191633832282135237116344187556125418792951112442112475832627913630867705915738141643958981447871927750348790721933709167997826755059718988292439192692504247077183643324647821534290633301369576218925254322710676043158443756013588516052682956382173418198671424964910055715572700171251031024272628295493548512783597443576745337249262690112233931868265861856853093728366426318976610831699014845004222093340207798600012519029777446884732473636561707536295460800944098865613960514212523520918894372059767461002194769691257640967469451509722087104303738009228039330304995769567180677978903673319243362288565949600414015538516088808385197508916872092968184512614699121901173123971661536616820258411714300132372907901437378772722583491364202152867284951862246461458892840144103526590928607801440157366609215540634261156328859989201522138939817470766304922826842624834957016059778178999934513051631890105639622348229271704797267433298590857415045003585684805136190048361553547149037198265047234629334483760685286811852408253038805440384509705084339186258789927483365079504880525021504805233127466245893057963520960580707441897745103149279254171195109990222934161822839116808986338851264728658290452061131449882907433288560706703866590678609300520240212126592033289330935589501230962252749703954778926069480925840048500808629111391628989374130119097666583584757766554722609687945722044687652294022742257613020762910869904764414305071035019402236316854527443372164219261349981140660959595470069168072685146393158402468952762242116296445249914184445300350763920663494513986008658538665614618929936329237050280490343041340247008769895113722291006892630392417208650155082474650588135084225361343300106586637004259499425551784874817149798189553150630824209816391159098284273470902308099449189310060753890247004935837684405773864863993862226180412005627260673033903787362123438871857487533992320626729577757448708556818398597528627362659957241413299130303711002829075856642670587955410486247057563358123708515757181371790248948217092471283178055683059615722251917158347285635838385236444405915463259801530183659633716685224953556680836752550124901834704889982154383981545109014969843291512918616537184409374144561575196916242813598079940984902015591601322965027160065554425230997609915257926434585060236272992851010765721742504792543594432929352582352293961479844235389954646503279282804110788471509891815237769999612220455025478483626890461065343419080228653968493756898262068676415358659884889015815656047645286063787726833821810302488817959825790346838572890554883966329744877455313849197928101481109536932659362375238018703592316107775603753769944645627318602965553357080186599892239526458935825213394485414932817406410940685521994622094673398145155864269244200948331794387823615650694085465862417287780542645780222955325199785173336423758194920758707699093817228201201789050161180581383560708080082718043124983505869654021205220255765957189739384294277731110122594639073745168136537163765677400470873216335210570473512292080232739031825137784695467070596086058407563176972658147599085238530299469056675446930607485549286641222663354171612802174809429079497558809436770956305107445531213455172689205062050479232316102745627856243932031196776725457120537692566292636871182753226856107296240133648665772569112013652701027191598604644161287052957657196987109819396576804083552309057232136734025083392830799578330799351269928759857375428973533459088802750312171611773011978909668353524975289668564315760781387497905749566401122983947970251064914152335535510219018049909230868024938997128979247461731668784239153909345022966841479977007512738562014755260792895543498137600526331928804448488991367782385792616602546457669583203167916530359790296027955354312205940431776450803536665999427712952395643166604255495471885546463716497572730087252000491985147022983546176978260382744777641959449354551590543262933890559078824770609626440879625282966363467572826134475697848276213208287937999795750293240117124972168137477165842223530268493276032176525126185351258477919984523040811132457528594869798340422141664356520067087230879577262244668869774201990881175086185461354051250298036530146614018924696577994408314426749973370145942582806717643199344727037485685638191295801900112706533520335366609283581302551006434541195690577702547485144609904470147654583259836659539936336028230417928963440929490290659219958486844014018085611713066021814701964401316275882151217045928869143949658225350586474369428499404670968315848210240853931388275246406550043561290420897516174617545532940761076021209055591400318382633586847140896235959807687475096427116960849659954981203530138333462151307576246490740584132042977479843879699564764456680910900896944531363620782382965953938835899865115877754347607723733697357556636011059008145220969904240742551398009167075668889335892208802567197856719254299179653361379054350906390875395894888956293582732282572489052652910843795730524979734770299817845639330064422369966094771909820007667020012606320569334626678868958452126343964451724177797021122459746135294381253672390745498786177763775943844432426286084951416034021542844564570101033933046609407842742274357160345301512944519907127043568497473317552439128309977479089595351041387816056107673297854281394565819688984295625195409412497282128970571344386699567548821017710000691054056173622838393516462630096012159460015029291507785122418816856564628378998447489175011174535330359854218862467069801632284058769267191258684079811458601550326281056100674102557982222070101235897218728023388946659998505319785970675801558495013150598717868277969731341375398697136658091998147461551703957176668818895154348676569445602591681274165878484847339930082687744000175507430725828218874501822212541028178251457843318887566059965191307097149583841174457987126262602512306573626663696388637361773557109320375078461190500087427303710570738215509662900019702602921401211023464082317434335077352229757876884536706330173736188173016403016028582664727680059872205785125452771409833885209490819921176757053566327147580022661754891615516346631531661120049990966729703268743869767120911156766777650807064390283009708553421125801464090293136911087803686469258928147714130822127493687394132547822359226954599020046257256463093290454493594689309019516550977932315323040214783845139851094516457002235382906825281677733638834933246642005590331316703786853325099733073545684110477494649357997632577996247053875260064036252900916128755921925649375635325983444542415890460173807403832774944027208381470201857386522718272073052676045140135067974413249401148592134799504906992128434956712208752786494624282323229813848400919113843444169537387563118062182215610276981078235574390381616864351053045472636485184408006266488579512120120246411723621322081597426059256970945896752311367150887026746047118084059303557778327667093180889986301617417099814977131371193804924055667177376048403440974794118526612000416519261249113396363613679580596555657229742447160847744036454818798476795592427600203534978645866573860337828358795309014920171851583982163671347945919862434356505550495061702398304954110290257924061452951284199108801475953981359513642208752771473631637785751393864489260943626296763278349949166754524793860680572198393808757654252564123426741945828175371705776658510962545150228789909350149228677307592472934701077862533936141401494234415044936362223284779762381273031587171136804654134606550843096792507969822156267845066703509263143681158099501225006479759581921864913733606013780557513374261066055530590611029362510481416744311947571131499756092307854714919102884808721356948005272736954380328744941424593274514021412814362309165745282652362371071136845227072927618045756973749742679192701359407348814509132725023376073405970845558409093440253205382526775993068090806370032297300965427667223167238280213982868563130399175539699805419928366857086821411458040822555839583322682973438913354203667646372401200565357520826101541246960273068980867342221620055636603833283413195074291737306021901912921262068944077751418150094275373036738724525054026502598149205739834499311814437643572919905963059519450386622679381084493100092945965416259886183163396023713305622951408224623410803333523873406598221861863484242674086698805116525793349358283466521775035317851689025920442179436849739924992666860602700901812059824708237359928082412256897017012468255638951173753164161865535123558985871984403265360205259187442305102885035812385035792767198821814839258429870632726357288231265747368460301080418595515415527141705112510667915876315882763936158387264030734062800269764039441402571187751345335283643629218910450240302844741159830214214464116749242875879462479684684287592590872345959128272613846984146228653704393439798096541411121393744153928400022745200081465224832359435812842512824505860843646741590315033286076848615831855452497846641403697511365941491917306295797309523838064500162408975796570701557668184500043110020988782076403564995216507285163214510204772911083260400248110395712569050468873639979053767111638996724052532371168049585371296181722372027925842079368288875543809954118348164601495933743363153646238733483176110889176904204963098127883873955158039629497197423603971771576956040997643534970916122741618895766147393910941898204033629697061005924524677667750052715242686919637422073717425990533111378415501774650776658775680435321397123955023465150386538086616334389656366877772611768801596282738109214691787028677311962850761501661732053117323267267138865817337763058528145663329094248313094450269704113855947085898151653429512723197616362946026039840326643147880083202581187617303286894525714690909609851443304396660511387724626064102960053248234935637182558168325971271457806202748906402012817500149380191220658882428679303815649093449608575607436353854480277213198645655980209877331112572517928049158477474843505754459801068158827425004658293971975905728477617187550184907978902765029557517433697000127358539578503771697430590816642637448360563935202338512360025095426770785192786103331377629056797644165614495134000443306075461250985811454174060488858361700106389609842474007311133333170199254298762955198157650709886499373951417898684513321728971650134985535804046417123257170515497877871797688031105832590568928107070222022889558854014363624061108918725295527321593638383118763840648501331695607178790015990382176293489488565853691809663353983605075430887587170233502592783617295997812184652798757724620598902886987250645320893919539737711897069170567644940124772798606208682198017655250813025749926008659103832866431744712312018619831659230705089678789128982501297299942090129313663126474212471108750325767275968488714100427971888800834872602943291577120803220456266769185416727193949304410137738604790177023049943113130695064373696566075949559855338012134237846251346023935178339025094094998707143594463024853684155600190521123100153234062439943731892440810425092714348969677114886001310571428987931634431380790494728273431303261440873683124268368572446620519814984363707786038172917866125811362967398691952159901472419373325718335011967469986368733764389571902186728209410107430191862479126340372569890744427011658680211457855129502748601381691507677122315867260841736474302408964936875675366696426863715082854970506529982688618051434261476515645509527693834930244377699342422543418581560418907025697326105673143072577361179093405173620235516886769283393729230179839848900811542195008396258472924706458838688327614954400132330084474649633821300459543200525028988201687299544637855730983544846819540632587706764586120678302832164634672342230759728342156870045917993715953093734832981844272420504030490689983360532884429787326241263787993331413582971768051380702656921988281034615698996339134726903521225082858525151547555503530846531567980106409575804407042041441890916063215344236014441739778719832693686490068913328400722824233541226400243447242692194073393973206149014753786730109215295175743473861291993225201832420790202704724814503354683010846776227776904797773514225782565135196116001639289206826654327394632968904301294778687648352963748439770206545586815214322511283529438476094150597539465221022209092180835963616752740117343915524058372676747805705775779393949132616160436815067314525108597738247063905561262006087786264810044985276771328386795135126331961291152230901763507912483948454271411940709969455685911660968921776983400769887090182587823422817615098541020761906306894569035485885206243115070525897682580393000942478552082881337985024790283946738137020890910312478095626307107062140726826007570359455056979881117367575808054654552384388993748045527043349276351142217629903862008916688762393465409813181315226764441252787498104030906695046202138175319399356527101674610030099088275545698648855213057795564415765269342069923702455074982077206409606346102493169657768730129126466615626164710144127376579277046134150522267690506746338825128764847512315516439195315008938222950431050165893630834777365080303026745815006479225292652029306443534447133792254316714404794907527145341760655414928271282060063405775995852841282661440157270345264733280080898285158954591957393465535183879913044593769244293647030384334712050902908845935908292719317959304755312929304153797437444239094582475859553174292506762234866642790297178471940251679618210136264769845327269483858013109775476856423000895988861147587874669250631028258748114010356747536418384362525106732755127012774509730574068239352127917651142036905917313864774609472445492519401545903119534201027230265386655791926827265812313193439197350204479963287814353864266341922452369618802332800574196005684278208882101862758415410234932230645422871769189487432071385468649091677010236686411777569736565955395983173416338325067284901493204313666616166597551141308996553623657065110574604646338500181808621588242733692261507482241606996016546365289420890311402560134345375213152217812412165329917790431434029929478770716596064145924608680517127771846023849954566633617169181721491681585353100699996763082986215615945989301324709748466514311358146855847383240579249034846159036242986749555802536088418258469505961008901499597918271402154023855217554325195365185525773095101498363395650598581844570373761059763439789517443924054321831039845839775594007505576658174293462694848896909176082640226482258285603320481176415460148547949896132794539350689213478613150701149879924935406817496178119856393240517852772730890047041271055274617533201922148135583763949199221463396459596181875574920566757548462832625754036922279695489789386329499166071913055950164675959616940848339275478627096060407698540833611422867764832351752395190762476442285599774221371851223243727631719244414779807644629606161125566494164095334291164704044389380380621439763493614214960321722964480172723265993553191524801508947782310713017433595250735203208090120084344311778053282588408734951700291128625511417657341053141625449203582085672118537758182590325856026852972952463674787058666200616904396649294441020610548493264940886997639655755237577082417603884839289287390358034848120446689159729187985724688719143316985132258875780232643003358693845831567186956270882429723811122561583600784614392344704637343593435531795195764633642087102348548625349302201119693824838776280715867055805365316058229897976986065310843169899456083959579890947144385416477885835926898726995566578803295933422155387194088806936952085128782379109147274271924231327547159550089778788963994536885203806330490510187169518149215597159745095445234928018052954281453062736287346876928012089121135866022681148826410158363574533318184347060326489810901765449281286204934612768037673177422689079954101769039168056957570875766617068573674232763008418755410543411684862827584579437230963299735466909407175799633698458103975007346994559335474153195684773607908305115948893149629870232618282350551412905221113660862221364926501662965235379965353324097123370805643631700614303817491984944682384538131981031568094156596253577656895826285200425985833685777257649363742928607017758610811355021869935793375001305185594823587408386381888830141549295981458176174714535684743357362965051113992363851975138951709633031932587427127554292779158053940302469141395864909707299990305536065287259598411634984737134688718861946497325343815197362755541588840215295441093326735556403442556129260964514546420836351951794872926324624587706888351772846575354810355085321459958211896588253916663023922090214198024759990927589662615234636935156793691277996062120569132526672174200563367389359718334409897478029587886029650687553947038597520595009010008819690618457760795871985772207720043448610336408198999775133689188166769074295270720534144576713554478589472665919272265826591242724843907792598547173639554350689358146177401132174707874544252967010817005658630846590187940127716632462944835777475740952649082324855784518582241574212370079084303962337671366019796826247996767331698831844348084160969829367534571445996678000805594546501054672978002276331787672105171851384915685759358233163406067003764913779231182771664996018631465677614577938706744745874203350914120860392182136722411023242873189696526308238817568708220142334867524733041183838544500546376026988725461166196056944994297644277369098331102594517165129617045460442664316077308373053232018051482623959632681603042028500875251283199992851867545189814888967858136918066187435584538072095329853457551357771965642312098432822511368589454041751045866440272430669736245835835170591653651507517976875511785766520523160831297579757076922799146272376450407418021002618576341993639420391568279792781004034161974738008465118310713818360967686358597127316622527380538707142635564433538104370167723245064351245723932320621324724145390366581824667114020376276980663328088970659170223923584951758268683266346946750945526692903437837475500918403940088561721723159177898994277737942417311628358528734211922630548021536309780278816610665432363141312606412351746052698697695216379895038209712618329442663315923704033284659495566585206649984540424110656382926819569140166062125448465377443321019403492322894923415015814082593081393783097746596037022779020615446864202589927030966587118215692445491091494856220571572545244021837375086274366867164278642508797140687950553066379453474214932235955322365018472640472773614988871435092507329937583972177675473164289286744618613278377268651236582275665995514413232625326494073238957112499548170780299792438654284912653686287023498477147970484140425757525584117170333554981860592407725258699241114354015638804767283217481419214232941089508118727810452548475811894272348554701104065498090353589391461762167594016584168770049566232039319130291094635155813779272887243816877321844250549266054458524793669658355348251717917227584652549761086861927399181556260513337821152170096196516806555392171273571041822219842097839909772341605426342985080134301932076741051346125384900088264190544119321026987677935032355061420617330746884040294191579081014627389074670189004110831095072691060912990827045387371667952163522201808430177620266377599232126987560185971845088010556435911533722453376712461661940008657356213771456969469777724705281081027165032486261694123342051999704346413845709722515102105660862889466146770844188193683626976718299820561679383437247356083987705983178337152309232309850660465927270475242445586329026538818151890761881277219492824867930976962093383092561239225348163866244095287716737558584574407813830136098633741035490837283040208488305366489763917248915364813217690426725963676820961998538142517638480942291903232265163796604377691729732823989735914083181592241221347672718265289318799387182325677752093384974591655382507656644111884322607773411409252325517743339258103871258010922443349802466633162930935244014880725778282580208435194099488283958400265030472232353284320885066793492601896482689411381172300931381411887754307274523564341082280142796477200536662347364489235543027717672023059144933042053791461326038420164528477396635318174217671857389007329506135921654127867073256979335355117066717867351745942967598250748465271050743174819753466117460003462018731249542459579299895413000409315821431680667286661776048014560465645602140448543179686747988284563677741656524560731357706243075692728724312146617138213906231738710243589947312099361409829620883998594664632312440810737464106368607958622539017502360671190850220533310457297409956312204343141649178163317714376466797139081786215347873258474224557273219297307719814744274991943306334017462473124278030091315501325726259883357088165886337627603109170270372298582492475661903475281152564920868324932188820138675618753172945923727713081438153561343234255453463710436958270889109838137080181260034189143610673898596395548551035697119280634524001610968326293993191586761514493270916311166273647405392014611606427364445205448495789866315752534232939516895039981339920481657082307013651675923827615363321807000074145424394268733508597303117306398041649180315075509654136875785923294066214350838168867809540942823721406668869013021042314742574294733123707964956320939018858945871846780119298953015604242839828378148261234757917606865351484329846134628408875051605138658236946263519138557509189019328718926828767791532088678599007788475291374126603141491432107518559125927126642102846545127180565803558501048940959311325381275248218034397345752232420340428576905284813605139875165028094558340917160679304592529510849520893338166361951751178818691407966650697430360875750960257647171486885437202407248789255123883137793298993249591445670636483349583461105446281169806001658268295729838693208221762167087455550326573515872147846557725413600772250692474497878060194295917296159062611372506370863672102429525714537575971034091970959369866053901209187786954293460869695331899080476846238841483458662117446404542885757712837973726321011486429055327535708633229029974659338154832217878721356936827259331048690461200315392184592884191292988882788705671180867551042932838786683452984155642934692874487864224680006962331047466249152792454122797508268582787554663064304612628918975718713069077420889095431982868507374105544904937847741814188719614812823737084194040118059320215439121646763160880789143160744975471294363292351414923725152792866731970933269125202457552244102624702998799732174311157282297162169242939168058839778513307477173936978477982524594611963698369455283525477184595572821186284369466573983997584340515503162310394940412579811541988579708803665745721016879553885831072663410813975666812589338516082094700332255999176093128466903344308583578760461014934301853723505345013392306189692592048245471304214327584739398455782738812810390224586114935080881648518328769328045089106867108093536526494954744366762105545680321460480545864223898666273260306571023317801077218969826483807193890306513266501406394174707264998486811898106963294705102850043444412583628345201829352305417335667395330106676193992264251283132740519302395154544274472441316752361642649770940228523412406368164573844932687293877444412967374510910317938322041101825085597431336979121549187205591869807189294185315377574571150959504620624165108112965582246624652379230488331129401819952402910784386131724240431916335042673478588526520172754869618692983641282029297186222540202807938374022453922128292830778726811541846402813758844033829905414349874577936073405329656546700348611479817876772315640820198227061951068814650793529661387904596525306690984188193699714968943243008490054432364108657056898869003944410668250507129436033562448245552973642616425483036047675225487256403763692211405552393257350066505535650022009695850254412110707708861425001585817871911629378608203163589557130530483791602210960183806295396926961475635648162906252043252303604568996002031517123242976192033634501825235607283730162492160438292998846275879914904391417504601262010952102123174983218335868467929044036372493383073714819083428201526176877924477897198553887813338704299412882954760847870768386746415717207829273734132509575068577547254557453408228561912117784239019409961525371367422024571526782693303868731515246169038121353217092599780258523304914828626905950790741589413990585695615388392871110698848200053596218275069594649983150855184645412976388449930922505356687937625393131239640419217470150041846337097183608361012289165217722054613781424298841765324251380011262526455559687121468404764614321533150229495182525271879873206415683457049009205850961098597229312684714632472353875385854544688222888078489540374761053200910664362389191228263765237511191099056681259325228604799297248733473354266727640659257853963580596584092473471615106158704983664741169991278740169349652088989869061407128787502907938067176336704903512309449803432768332391903171953197175810308902881198377235677882138955138284286898736836918591120391370282885849348597138952318434265187120748026510326698009649542637949862617008227174829068760199721115410296296713026305625654627038048589923237474703814344641832951621476440427789985258928859257711138607135947593709195731012806845561712100681984693189498485342694493155484041581914867397845859197964672189903984830327311181665237492818482073592604546232197412545262490018730881368888174941265951452639442607957099707566002023815051294968650142873973065039259855781647328630463818296004524983991027026812947446655593416402870743006961179291835802337444835465297343483105673399688840664124737732215246293582088057027105844662817612270445678057459346544122644794227359490700120967502829870262772106000282728481583765393927791348803807515537649922160164168006969114245747770322265290486848920930559782747255867575378588955228631293903643795151153317854201513438041421161170080465005271664883307958225895692459568144802840076555677679381582621110577377486433817474845421137197398194174332767028407973894104383827453399085287701075485709530765489977285864539322006164109431388832782571731289782226113097932975129078271432475998969783093653323605891312643982209767448213059350301131161159999204149575835019731981651298412857583661539994054223995232741844428190741675955304326593295176975204109393921810353553964224225496518392487405168528928502643083333396650654680425194015961086153017426608759263739650419736888920118681580679793913512831462746422658686635629048977490826314480216920757625000739273238197080637525643138621710537948268093380854267545708990251130550258238545338796785923672990942066633353116180238219707289968491015272503763228637385626123904956800585056652220274914169035619702793009112907291292052197119371639644081475982363578291241443284432880111783783081897557239656863428249814749630532533305303971116422089965171212442333259335771920053455511383267025500845431496435003342660772566214991724678625786582013875228542606113465149079076758433547454477538398194908457443774964280435619216223781147900965533643329973345028518983735546662581303424423781340524129772855713839174131832837775799977361570965968936584932184911818838420242803853873300401699419758989644357033098398053391560393353369545512091851662403098341306083019103741205025535912046887795466094950385276725845059982163200146769843914445315792870864066440061707063874867990390349126130159291897430988530512815453765259013238708815418112787940936038556824166365775702835509086241212230713716419199146017271341630306442824008517151867160537077249469685501940871209350256422605599909739178797874725677750866478502882523439312575183454620268924389964133026129721972745304258648335080089266144410536179813292036375026723289456109710524444152897502598895388803883919038835206382659015673054327242910945408573836469712737687312068178325276418953488761004068399636338045805560440035882103668034372157865520922967163068736981930468846539224453610741235018293218358303581052175652747310837083464367435961612269695931867464585251799814967289113333247194770142821862521584061480442690189765093765353839922513512240309520775199413650087507302498310717948828402501204787912140783125561125157937091394877140591024541961714832851500601195592489338931122167076584084935858766671549778852516315052816329848334752831588182535536700969048155545830344672162897633330459761297864907573275539800963912976950416311349976232492916374032341022069893462137774067217143162484334652576766449476156331361295210670396809717057591807285138757428585662180591319147184749221020850284003814726753556584086324226943928287674926522513314984966303771200587470296557086643276182564129029543090834848445996052478861696685438197661707373867529186591757381066719469748560830285464238225181838202103694543232342574164701344944564696022434402439494223569137160081451694233408299681327828627179221647355073156074448251925608610059239961442891739476225482331444719194667968202954729708902123741058078315818884603043274467164006940297079817004427416095984666159856499081346041856362606470013917017833989127636602385112659544640045631076970568344094361847241475036638174194950219390870029506661833354895383511711425350415839702168782462456467638033313099821921999925408389020755819947533060058257014443044354585792729971739402030205121080231143221075224976043770310707419203482737874462854305802548098120943299274660597670101760790986882687190479224221675213274287628489244389618140849182674076930481010013181724758765968351312666597266162622557919576190678063178641255901545794163699058084408936569109729438314905376803954717670830718343059216613068347882348547345892372674167335644864591296536683848946079520092110360889572859703246853483776258518293310021314730670849812136790230025670743218217519954261323257517557825690385693824852852435752585619362408709682548220124602989766736659725337593008710752312574052346605417422574341750682361480621503206201272931337147835593466692210531348926222488492313545419279929023960240733841391097724627141918618923907478727250161982644780328200344072510704291655047506362900872925903909631055491589925388292597154582650608329940023334920539841067568868293398389085347860225312530914456084781671679621766859455020907020522903310724788457248663679456101926541479086368084319433686173671059033662690101002030327022535075342775316690221325086093903009205023062368412553848829571977629128767859727036803226666283615270848002440504690781061006478994411669701667526342118842285900676663657840593978730793988737030219320499956967689944450263814136111258985481283311743145196760184966405880053291855060462826424477992736829937738938539243330511586948131041882519923331866069518123064895553618588638814911204566260066308504342435141078290914072070454017647039752718095410266975161881737472761577068052269704640796708081012782349542653344507382322060521063234459189791088027905428064037769755351198933294164391772787584600379349525873892617181527183212851944211354817153735151111197449881182353691162272974672568823878314510343983159443886032987745413017624111903016512948235998640925701666280657423376806571241419786052066154434607324448406848091241782583609550993123756759078073095596423846383543592155367895506665658414345355365121952375732015136070682024537778757954476064729010042602090162757554260492576308749768651304292325224819308129110868049317798979459170729058184355926815456790124399202035212910558747156198089435683941644288020194342667608541246772729534133284188451416648165412358506150373321037087877163080400502713610304019682181386143851430543826600424982354341019059291687536003084477620936734669362890639987519360893494708141005149388050929932317132345252953864577601084004368878843108923222669287409861909957406282446036498622437816904228064375386915250654906335403679473617897384932484606031119605504216703870030721319409768247358658198552833519870393084769946267226484981359704989505982842621406741986032401908998624962685278710589648470646661842509207600984873024080348653936755899654763998154169267760347615279947500255202877921031560659689164255233128693212968562087458114253644005700386304103621048438945869098997224873113284708759020668245761378039181693530221501854713264694295182697619392859070993636014300541336309387199296623559456627073887890369412853372962235764048846426671621038824002302852140924861216517311068375761254254636224356375916408239107028079586320378164135051301649981891411752752528038170280833398602298649327101836882501014038560877732221092135751544646106313064534202983634107853292382600914894078076657833062906967458944316865002109763550753516897186962715024685213976877434348688818970548331584701333637417513440668598457389975685252645824572310112476535705829356160121509792027068154254595658783212720075366571789608403788343801894135695337876029530544672971512095321191309947116333360712249393949985293230495151942258082594173867290991088226145771162491553355474464272584304609535388095301808704005068941974105551354723299609870625516623826335290509957557111173860138440961488885839605536971363237888555013761390978319007483453298206512651633565264382394928612596584473135813217790003150083201706677834150035064243289786779930241535442812829226940043739397167459464761263092834338185812343087737659622806056190874436410289675746987845630523360203987635153225843977922473979251251225092495558992548920374262187620717146194701464162501985603482349598725408645383847003966004374677205518767582533958442851708249376050913406248008286500579433497083695284811154107225315853936505453473873019676057748311087409892340215846532639867961269485480818133933187401401730192982022797108395619647158914471148164742644832825636394539698616282093220305512755835373277620984069709715787659590490966113491223029533711414747257962034507360137267037369000974271905389684017713180377818883481623336539926875119409467812048562051856264761460532990836611525003859000293923297901505312781002402548006040712160429689336309349025490278921200903081161573472661938105892459918005707798343684519663306003319288999549835248831835746582563669126797926925047850051446954175243287851208131656390054197485416781563324827425716622723715783699576736301929026424008590698671213216471801704173852771644740827403740819321302056148863163130387826592179689544755397889302271212137068909183285402448758693073277532110897419724664988232192614672867857580081274968678361422916753839176073445908289091989673477051266113105044173644951226132123282387733500529007888179931114469807536796369117695814541271349266476924209231551121920526182264793676016694515867062441681718553591770564964806494603464483376955348820828080078356423417538743003206113632905228883472135019582276949061996081724702407320694210243344405143007176871091462141719069275200591462747336403159150772497072167577077010555835438655919572292842422166777209149833286328391504481177819053808908630923291986219171341433400240546906306519323835276957046794440077790557709739733746771117311883388403499242142845069496912817363648595112830015164655036225133135873180098715828099629270422129098522750065672901182881873938747347807480333673677265612162915017325861221553964137738119858147103071217949684868909666467807555458174595460528327118140723495045537627898083211599321417371141563370036145741721986367151897549009084747205820245078407789256144965741102229004975769474356322133523771639832475276727412366748377583796752277855565549128526450229612144107050909215846587429356697244578939785840103738847036839766864886860410812452779120626056425847802471914984679793546635929488230187564453797095949964169320272892885315733558988337994862796753097963499955737905134787332063684994419274332538398672600851401764016066658336598500808504822492099577840655359970500003005411315000357229630038863485046488740739531542533369749607441892245076876306159470676452771667954137953835319259033378862319771195217046672049775834893284531180518675234514936228057277706985576965307414622098836105677040233392947622590974768133419357072887399131431896174154847774172087037254475247710781101508629056973916070931630009202439213463712284552716081827329440561912448760487651570473846319289185579458028289449855745157883269028370381686806796507816688439385656286337432672884364575703641450407962040666038817443502064854668622629590565979930290155056105145183949103176865212682101162474793495706669012603890642943763874338716170861369964366841682050635500006531187280742544092502008693805586198049334803573013039762890217546405740075843355218555449461641298024362473312234375117435268652949502579242470997859664933072557108937940585839626522255079726657372153228811149529163235120865727819324534001912030671506549057464222347791547825733979167635336682187115219463989541997111461451371746023915677883512807522760803243436813994404345017688212665124963796846387908409614075316498503605455730309915376754593407488905681976913634495754563111987376594165306611061458470630679950080224718376087378316183227134288023326375095883396916784883562988805382719804121564247649310084917792841270240272807762841790541476207163523141874600420673104947307367962280363453414431745689119805812466931048418967985411626167576070296650195468239221940226328373884285710671853910799644727019942749782742500772409423348810805174004490514677454894154287878668657280564072311127245969210064043017561832077923740248069936115645984423668254803928202343001980511768414282287015543133191746941909738190971649527204750192635400425046998817723165141208144693139328283281961445137501926058392390543322365649247625710444127771386031471981314437748635191481108181313433852509376832132870206725798213238612923177833644447150125126945533328044991724741984629001742894736620061197231981667039797810881083509848186981823717170481615000977425002983517146986566283135571835233574157710215083905582964035280568948452459016552502021013620804345141985040822856193043973796633647676690846178117799651132032481890007596298854263797040780417167366907522001510443670961753092785676132237976295897155666853489269339938611117975259471271075825133310888382239566892315942160442756219732480409140600479701819231981263641161510461888162038435235435055308885619470090671632955210322294176019486683734533480588489344707385352139848653541843068951389912196020156419357093969051539514559876478236330327913415209161062786507882175820739101387271006374617574140807326398493417719802026039877144392721462070342840117407991708074679700014438245367908261824296260148762872184149934785074552511525635949425783810657313988755088232032941316936144307213218820956783396794836095999536240317309655565674577007862760400580455467767023753978154770449295166877333422348767371163509392151700939665668411119096259597077796754491610367363118041364735788248107602331499931279799380046058597935878139687082087688929854467326194302153190570476129121168232097951394631100137107470388081515871839778470224632144594311479608838565879085198719216596221613263238717788877573331264676314277465228708632414672241101545795085635602087682723058464613816517472376122537944588934197106274055496449382913285960041878344182394942265865534905856949663607442887875460282811970411565973131754041597544238128002324615658782873853051587000588598714982702888105860864393320117026503199454035514550843849549858769700727897885829273849983051653294665864860894629656759100988184845095045525499891608875560082479772548807561050407733392944857987681751762722729474573509689641707103038991099639041889156504633112120693961313770217661143262571080214014571751569126761129252684892636924804550063195769630272090895659846559403564288496528769499348537978688664808621337867977793051508615541273392281007940701440302498455489163199403010887995472511879144993950375966262994515335933845146367573059805340235846607940826846262110317613536969807806938211941658678289475172866859395414947523819528879132124723531448990247331446982654056538947715967081985317572126938048572054438552274579231212867580563581170086511430906811955554568052318961805502938437381686760587713450655405441747433104169559234834893513270942809483327946103012541611069216286804916511390959420054323265565612050182170505310040138251091169489273606758190872730713925223767418000968433209988355738823040766112595891500527051085704957123542449210983189617920641535079865820460220027948143744873777435660742339802463610381925464292275230725668675991475326550879395281424544391772978628727437372897176255064736458958123441689529141914746665061703952643717614175745464970496978205653474451521495221452671769615373465222500099370169509620580020694767383230076140213509212572408573436378762454717250433294274848110483890938977718514430678907112666733261555850250392776157175732528703350429821269986839594846394782231857253131294421294840428729381608497714904439693607314457193789815439801833585046546309462400277571831329496151717056393962145729611206843133785099536858581808470042140181228609590526899444266642381479347477658210783393988243317555994413696208132687183337978251670243397696171641141221710400769221428158764648784967531599064741631070456635315492062810309458956408228000750250784392573984177283078042855219678686676425726607569249471607736603402174881785169827298911318874659462844254494609565516812726663144571044645544483457580044716924592196964179638122578397959135906166581014004138740029306475173769048342992563848366581745096691856597190835447335405032092414047015492362796428407390848239358198232286990963027760816834454555913198765817903739499892617294979876710841799764443847914099141462443367928228822860754340602709667654606777560507357174942059559040750317100290124597058698198091995186743605440422842742874927018561921804134796143294758521359668906478098080673838837386904268034040193469163011616384487407770312486409925286038324750271967288578495255892994009975546249530668945701144351387682966625726936320588589255027623922082172585451702430864325261954203955144098941801627054251419546661762126303009299279562361506913733811167376018966334685004920083287935630961749647185804118822192905836014422253826720991887824238542626463178136248033292876646711393328311431334154171084200604386282422026742996477868343329815830552248743493716464355106816776978950547010430259160941496799480026530185244806800331710425940181002261148244057353543244190562470076821787685820345170377781390662620930546209244450951488907833149785673199149308531968060151634984059193133071911344640303874711922740080809243115251816157552466616412064829489607272938918368447698153639157397186377832128621470162435673453054198323575297081610060794728156490115897497521772683038667651079781445858981959045543464956570262918706666082024896152305227472521381487580818090970374085401363099602086104044901806163809460348490350978152538886130147859180162886723592315905155351385690367956089849063985199886426316710295653289972024312353390189649400204799439048797749619536005520878999482485850371588673842016537416353991077727151454603667051472082817084537722561134614883589262371525518811898508917175622616188792654040318517844397311290647294857571747691754544011408970744091852835939872976150848180690915506449264323839963136128501970640839306826569585198711071720422885055326337665037890777882537682853092671924956310440661585181907064015543227993676893356807224745329954295437258670259995941203515758100162265366195510070309910956560332194706461129981826832870033670058657898385977055320543331604697101111603292871893108834613004831278017612676868552888152150123800267450803613275610487933430222266160817944014470930458599867878184028518263639530868333339047227954002922283037616101379744301730211219943182517765312465791371325062011663670544263988443122390522066817083359086065101776249968345631360512123648261430456659959497608360363150591775322670003951316392471265396692104936372283928071298597496449544763201806881411497625176070905880728285794763018103713424201305524474466556089081304586942409461751117051076389508287666300098878739091707082524227378262220198462671196218320348735016237421003599409789977534368905468255877294183525661879253883272071390518932914772064990867073753646008217317792086030793300422927576281609047426363423867561156231908654734935684607854079981499519722532030307844265675797577872521465874090708392329095671626123158742886589747171524567793329945578803512935505237383648316377578717610366624080465688802953625074721124913485905232884184272423417924067217788273890298153049676167982389785762808051538586735670507583708353825319280445343612154368793112467207104729702425396370378843811493148341299057826122710736393403979097367123603978559744391285584887096691661012596461791448317798633714446976799061171644436554427844041520371493091086902142106730079420997493372345131066295620093919459290196087395923181079347137842388718316320654366834907909480867510004375551042226154930878553051264723431173113409034539401824735476162869729630624129706887734917726721140004924709926989493583451120479718314141701069881054218482015184327977373545928815828884031501977520811133196482479656160968981076991905716536862430839031981747825403779147710766512679249827979784909588694909190162455149732127696160844555676552568142157472194032226730646227434709045974866347992216293947039999228146467692037420246421437130415938599012276676019020302340576831528117764964821701524480377867488494197511409385994185519432962673353117913321425515847511226878918375862457920796987107011708905690799376942206888231463635969257511044331177967343505163066205568528934700093560119377294606705296236061871994454752521620666878898725791569664896983577149038619246657995532045680609973620148890318939094330353840063212590450624927340425476210403839963118958560137653130627762729412704399363335492163404381326194956228640670526080174603272527330877079139293183101893270518780658190964647838944578211792165797003450543993522133814043178021639910442158584091914179650881608415629067215693933408146815758633863837332124401704170304543183247387372844858338309674434997140861412503669363218700879498401753064044060260572431562966458377278151073672329797670009531682796431582534101993463426649592215080307449661554810154277557185792364905378813389706147697127848730184822740852214532068422625054793213566333543080742162535205119192747740131990057196877033984706383481272928264665244171121517262510447758356110450973791854048529717141922968720707592089206387156775781205762168079739270857077741960984696453227178248375749654232256827889256718730855705066497231865218285659779667083295802026126250587835299793016064600452085546365737671227349783751268925406289824387161309140612879262818711485780577132983400454999307547924112052779873282482748939456464727417469611060086859752576452934407119758825128720088912141240038796365411218369270930004803298620870865372753546473499103172535377979614864609681804281094575166841844571172885489598328102529474048685298446654414263968370063847556206548738403835956135180190825315332238224263815323761041258938927691326283007080715457025547952167614213440221796439363832003519991684256554244385527723895472841984616093959109064437475099771962456470755920868824648079668404938190267859541329683505123127627154256321081894813147325870188223393674454298121578002709956270338511561206418719203938132158859428021389787995705369127183502794321262688777983007880193197973335228759756074247180144675997457682911565666591959477874157388719504272002523910118346987865332212807108822498874727905524498405282570273828528895564652758300065359838940117737167328139050113347072651546862975005365062747848574938460012620840219676087863878430973811390868982780576384793910155661971287883050057272645872045393172948233523949702056008669068878600333517290047348214975082581383153902293181003059642284585593211639911251595166387099512163841546648206626986852991973242183046902138772913281406248519294426151991351521359081653572813317441299477752067492535443061610892402964808607219281095846024442347085873664958468988786563483855505261023879488261287656269974790989981469649467833955217558117458311536081412726131432489811291217046281928562679210431934625874106327308565017003410554678575761106638705571085514489022438772780452095535854709715100505580766083289857453126790124564852873856896132967553014005189192322378024747330626212937996945408099219920289283489309516484555551542932035416828979731154824520107064037124197161638732532827945615287039933115084203956088614813487843005672091327479742155080033835533054588483688224485323129951005437275878485413443792336405770801549505426074343926739198588261628803341207843491493307361290028376608313294271888671168870323418203383445223101658540404309668239862027623499617997381235685744439618457461500480851513875952206311097028663836752882835916808774372936083637991779072294291751389748222999250237662049764588079239687890105043697213298689024147247722275881628830451790162738706721991888103643244189953339653996250574563539245303205529682979867215844579773681852323585544010197919767616468136335361886662456441743056786012014748093353436208280601159713851646179543672833862896275263340191559111859563592904694816497175574184130580265471087268336329842124342350508323196168524713914337784579313182168162875628575274349318697747690376948252239456496396440619051402997812848705656588731991819660235797879508308671192288125418818975205745050971359316573835423721811328159000294195051844318144721978306483800494250924237537898287415052830754088403207628428341807575659049421295493429741761578557443254994641987750632999920163933190456915843925393004569360213562739010272052201421532046895284246426459307743671374824689417244744171614255554570337396550168768761532731008474580863896070712135661563695726975651336370709827156351277743951561936118097539491867767891629186770196795984296058014356539447119887374599279795037439232256035292463770774737725122265003287381166018649724665128327447975050293828745559700130553521537753692620982251117711295443552947664634756177509549538762010194831669120922793017587187477779866208681876085495013010838461979319156499196601409070144368762633782713623383211065023502469234437547897526742274412757213043249003986173090281602703189511095906613931719170953056252387569129258738793724434283616709679109043338463602671500968075539139845125869352003383647564378550797611503649469499655956769926975675170140060264262104949030848200307874186438207238420415545338866771851750069197186916175035301391056733040388411233635792983870147040288275500011338694103087489800411316221585561831691090640339360958087183617295885929621326291185678281723008545505959510785109613131984836355617450947822968811672296927763089183904065935084216720161230557923118208444672318454814401382755726655737806596304264833741042588260504928111036927246237298363849192604024715945351490910728814726962353040899826599289474715919606401364405739091663251419740395824647267443862968550782264950947014460521311234183496783803289939952550854065827547092382631930611170273347280399815822064630359436843609200257360263243142282309645885389475543519040965570009451718038685743030265133356958360676732037285130838697701086258383639535651000364992958284492237849884332678627268449240480769756022669069771656505435912493700025989737437135374745133991618045397870199681118814435418098610224191543790948944474838446316345853799025468779459507991819640467158739478455914446923804211545519628093766723532213902123201282376769159426423008117376631063668541897810700661206349104918652834210905733052331743777022944258065300293002726446821957967955043147535973096183244636561187051031793340297898838701804312335334182412259228985897226324505282825392862577209549560429609303624890886463380674717332528564218184849440479042177078466496203281069855093958187699401910251749135349747262690868056302282590895659789959123331954594533888287934087812788923002079036810640047956132711500066200774673630793362797408164141703467688277486503410880507561762476199567639960656958042986890352224668542548751773677279820279942493481696139634639011097262888966610067993909636149793161185336634966660670330936349017155703477602299258457812449822150565205535712149213806824888615689887454528109822053907312270870130086920468391488056442305991846060137540227102010909375295981438230293700843916456029505734261721847494177342635027963784020000933513022562828173858508868411560122735670318011833412945135427366406188492352801536108473466136612003763122804977107714827357729358971912742861365405397884990362815012495635685138734152399466820272709244497019781197922914312609147446716711241429362369347780761288835141172047911182134380121848726088010668841788484608971944380688225274685497776810719779882067333935077756611148255237093813479585480542942070338418867719797927238298998192613870296705779039748888286172333907825037435251021388055461862388189135650897861205957710075014497577682984676660465425325502269718897955409403657801858104984264231797620298733662324036110669850321255056096631633606270976544660522191783143251313600475164262435502873159887408560345504221678588092235307727088462794563359769325197771110374253700789094307593154930994654902734656431038645959442416708540829580518562846429060880439243040860040614726428240229819691116760609268531663961962173089089003503058373458177115351162924583560093254109443725477677977301125415023501559388102463088472526542801225367182139796531168352782370803383632650822348444575165113072978776809706498387244956832294967708981404502035634983271816182093799871240543174747029634613360690159155433653536867841387609818077883346271934464983204985942441275277674252627232379773398393916354038210317083776114208715555446034893458909397166974937476185688476246709361807332432318314074426830745241371524581009848961349493763920556087052204852920772132838722963240986156127204511607217830386314844880221898854634075760245466941598949027538661430593634500478046115983768283984834797151615716482874659402009713880851181864406604096871704557904906636161148249692184648361451623516864584926792800265798341584170864421840249468173632077145081173895099623622171368519978340007803066252532269342013739775092163319945629917505228756096768101882431221637794021517757077464774088099436932481441988154004732195618579818496086432045729037148822206343532573055916695945222725023763934160764415189847254396415117004742872362683565928624645565776643974318804073435292960004381904503763881463871176427902459627027015367927892881800190231251704259483174647379371008877259492859202864403160655493004901428246764503006187847322602780219215328919137743138123116751862097275210103893442293604742622703320622445741250126810846101108394955173638921970176864632830317308983689428282408321518448024938358817919070257114949621324048776750493136792322546525329290081411251633943163017048931279072398410291363362409121761833324026710677402057676416540931612691948000133043150324188785199694801299029610415154962529096970204457029766091699027871478595737936943721617677856266045135915960065493829021603725885080215484392591630262140381324798045778880294667338350934893622913396523557182824629361940194732032787816172425693282384977150069727029782240564673395661089698508522496805922220205082733325198336317382507676852876787647229172075118984666489789205090995236579964475342105203875136353086711447858295543528781594557989653218328628184814665272313488895484785442307552823666988514530782611716501004275298212775358212665010165715989107611974532668923030665447368507647347482471667752684867259895598237670691899619172893755622584573756642804959893913923295209702743130560415428256074823114549836220260826812925786426670665551395011641987635469668241567668141855478273148946638608030144817051458138781490097979046119250980160647616489891015392253089951711821539171349653413503365871664132005731839968618358135990674829549723855910369683948792888804978834987720516832555167795834387926104141561230766659277141793345484618959288224116838215749341191091208241403686029182236126386304304879526502474543984827456785777376930425368159507006700834145981311804615068425596624493631962834157025488726531680086524823280160815392363666784241608588294627966629949815216549780025874686251790957672756023342585544849620649034378299591215455835065180379814810511516802627075465853123995394113831903618098264901819298208666260285313628159227045320290255324249737135429228568395526450509397743161995157564965534612939328858039025667376580967188926342643690169704606192258962644756654806750739267436694555600778933379731283200386600728191300351122387851807819352761906331316189165897619700527900580225211910388140659623531274625104294123292596556305802546888227867909810432941139226757985626780418548326664862058383574727790495979412321561518908441960669064073735227150938341848074947369805812034517526950254846039042184619967625094920895128217380879653570860916014727123535120734277431599977184243571839103707399447638962065112370035563005810005700224369929425411874126140817755770121420906673544559966123237056410735797640030040356455001209220897094179848568099664851875636834859774356319709581867334202203226574752177853261343332348589365090992023996800440152371605930317824763948727545214823363506436464364130155698120467666640682962380768766812449664879241260074369923391513184942105941773581653282033890892003907106921012258133354972071234697635386917608536762441497387270100550780963817407087026914581784837493703624337353478737129541123208948746381741364960958692010106670141895175429147571743460362300045295398884992716010033313346373687587119433613902558172387888782117747243431309291135593959166719797564073160054853259601024232560685004007589308739110543497492475430303100365092481602989516170716102352819363159243219538122639127122267986376998969699164745557678527785848873206917215170881317503001900192249866095589462214008411617029643045973049913431730020484686438731265808876576241313464712258619031518314537041561959743891898367756826528639484191451055760679226213708111849145011794289992716069020368307767516607994772912369635638604939830853576780698938730484367485220216501618927192462474704339934878183708581555335531908014414264990222022654316410604251718055142683362542082301720367220167658537377522172173723149227118356892741926198726105609710577076387898784992615450719412898275090359246275887213600636953987038248153411661464575954616239494962746902266222310076269228997381001384295218929762291424765965904672293968059548050239110036447223530816624752475292949180746412194595421531632221117997629118408715686542933167147414647518955626385217416517781719039336121890447335965589102170719424175004031375575219585448019084855462794690361195758617739378297000259991034680656559161145346330769413532641187747226557453974282158445005321994840173029975452551249934703678514379628099272760140663788159609100014557305525781068017300532457930953204663697352690415817575832113341772445476046727564224225165530659341103798679354969556107950171547161404458882394764292465325894408920089163157203464130158902518472398028696657967362179792645413072806930324358284930727350985431580398896960937897695586961555017886528241143898917321640043223985689564982829751167842281987885269859091222828682251523842182170115996989288441052781390540887113757256671853448741042771133141007916160615932957920623549999771691957595584070250190050710524519702606388181814845273912452471423107820153210653466818317628374280574995460050549657047083469915792827240096976126679115619860551469157252327773621539576091642923998800533972572045184130066878983500066725589390547130969008315037333519706655307862565300117250335821524197037094748540008670729201446638852450836298832987125430823584271773566095655977078141656585738349050284747084145547046680742971465718601124211750736128416059568047974931133092690791120849419923299710967018422446151062810058259769333208235505044889329706638048869310997785869542680721350550858436496813273307897270266369291137124994307041506857793146506537363031784224148524921580553575485643850047113705777422124907611724667680224424844987164451611993621248088337492479493789373979447562928707384051044691990215430035927220995414036619891003239261222356354633252613761786539675466396408167864348711225333858159891483326523635245842367080665290034261608710533884306188442236592649125352414785187824456840409232942624785130937570209454670301388771162956794313536967505721784977636186141775464639272414935437849388757469086672658021801383371479595503137483516218863182956433010090905199752097954073557644524697528780188536662046738482849892133026981307416142334943355099826610996166205599268001961786507279167289605545640787196796584249010965306835478131694132460731211192859386809235443651857005850480117504142812023232301825235929601166005368592395742584623614609471200950450041234385096332663064953756499289337496032688399396688603064047585542157456087618033049876511463559301127999662730914808875212349878386860896041572528708649673940224692155466432740460393780249970739673512100165394271766161845744643192002534031040581046653814755550448221195710419742077200542684512835055799315904996757271550837390480553957032546529045022216892755376229928894558587469302795452847841538786370808556110198043656830209165337999989654358314872520818388445052838947131712863861278868089681772621771650113019483117157181526477848727907718280631294518911581564838535299041771813691866748843771086233011805861125224343391029135566374882085299838439113653283896928252423557387652785112124106895958241021973545091453565766149919589456159779299488300582831382564540158243825758223618875197353396927361531985266078243222719158743427714929931808570112402970062829551261932779205781165820711775563979639286335765770913513855802828998860660691710723517680172126474245233785516529243992239844993574725361699374148461560420842592047343789025110109325384126458439107388825945625858530465249495381504693458365641035751760150101010125557664120417005986588161528526615064174792543673668500868893537598145820255088363748404666974379586282174027218499640251053273137498675741712709486945115369593818355154617115838436086537461526734406054684531593412792141280409042476465506669375369375987635579446084772862711344779131646335820352776137082526139413840340250260513964586005544210664527575208130132494858062236422704131881348616966593736612509105402318750807319921139032843306972114123815383787477012872376550249890882729004960192820587646301068705177304110084944859405562795960158118023732699430827732387247965033752730880966897159561748295042940613358554793824184682679926410856261513517935168443213344449718581546449838910784706409081056401815811742303414850274529594031613532484650022178547388278920264812923871333798894190980419177711557451589134433301119937034611521317094791272632105170655698625312530712926161552782092546103435890045060448630971912400329106336109011700168574904913761304278813440488479031961798626033498244727737958587192752748807249359080323558972991422991159130524667399525591583456592515320134234316547974829825311754169471416440810243412680214836947939347735680187798754309686224320520856094048569128469647495209735825051026342117499082388355887981860513368909805922208169258001816030735336447908993815693315148091634583605450159376146338122390173943463057164538336024904513296231988177442523962723340690880476176605582138528644447214061472155574981037925563112785406363410984302720969174202179896295094158872710859823514089604049951556682194576882814756891144509732819203465175695493986284478375712418196811348317635155861996512343455562586863118803267974026842694951222796075668815879418246812191273883229615424381229433253811255544273785298353402328170138924521280488390012175299576823972016670578787131490956016263934129321751700577479794738055919586491070159079666665784989500733901273532728062830722116790603963954133141893499782904872734896593978423473317063589306628580743751686448021334688319017503418806718607528535359945865499207553805565868620723795782464215194114712644660989019029475914578409298601435595541728198313028292142481651669139208038377093909558315422045006389517606029437989868183224517244307930077504714130433527410116092361852466318589968717572866851883022928320272313176717303448161275866396116131083560878185643375013272450812204556867148452458101034640665425010642572912341526733150416877990640890848802429963776366079789127963093896441022084650509959724384730337731020145107493967976366045353103075151107696464350356489441612976060082887032717849171815371667731346898641137202225714695735286936697014282246268523283232712006456708853206271764836075485657448200151328828154671578990824933370681904375661486359560366416880179860499722281112981439645219602544454276576367555917427357458669690882121348557938040087822618794009488552017838706268302297090885023820415611335245769590352420127812478800595269946648719523206726044704105054109600634741595164015663002531868400828494030973363830234569664308261690873616418571958465938972884119030397387949926267628599651118714264620867756433220828641658822884910670213827043511010050504470029074531968230890361295655389215643605856639553554308976108691027001238202961918009818641654566365515042045230097801742630995124177066931673615942322953512366626318000243610939034675103193063752321276017955652127720500099942427746430230332678261353604768277539489927651212651488947126185007492666907996461378423721996466129516282216970821666431919661146648141211719108993755849636816545072967273142299317079720646633946109162070515078844210058096129369665071544836615082255370120973947858302125876346405091138231864264100202028711120452425919489059407578536609264418127256956439409443445832404654459561867016699068714434315563762665874214690706941607146412516012815937491075935116816243540605790026373708855609832945546339305567620857295516781578714996318529315353814602063698931035506021127088924704749239741360547924579943709258032368001117368896038320278478000534373774884275630008156552193394776540531517547584735854371371311152166528277107246936303384555920680754253349369080354433204962771507374671548406601412563143025025391277354857009502703399123340240651159903103071695442003596314384968021384992021934664718624967072454486835193186394835843265764204437561970452685328264305985788113205638202999145106230853200573036008726480193644557829619914756128725007759051820905198595900600884995539484354531619266276355612174982561555423585375798847770442777564159260524570327004611052976086232189928537281522589222147912692963573410912945691877180422015126100286829658724530507488738109894040016113920177606413707532197387612773845696651848168887362672442437316979670128894468521536788827727672980522729429521817276251462040308779410317210180184416360151264194261356547109568904186232745682457157597935332812408625250055039313371203449869630636233083340175126990994361318520385821658322905033700563948417567176044412429870887233163520276415940146107928075633753522360116497995754003136014721100615439431882195374772533030415069290888863480655449527616314813578849562145229007608881020525652884995961094713790306870637354236438287964772111884301023741827349124012428919409842080571880945674703599568769097419004705964882161374921440494010539861854108278818609275115020660876382118335919856978635856944982206938795865934308281511074688827571234153873281726941987078192116622851668858546743220518823466961256477325056301161753206187865213937535176427112408249807958176975750169139323765421784093517649989569371672505282484380698143110071756425264337023759671766048386192378786508037721483368930299924698548553347783233285459530287927616818963664390721867185730758521617310663251853811499568142563117468988444197973981815727814004574131102969175437568796389842578273924954703835659001996267963091460523864970796067197303191348744252731409450199422067744790941373185639880134002131006025969532849041232595106675838726781861985328441340226936284546787795264587938843878405715612936954332489129813103803406875902174419997844583871783286114553222616216982999301444751459595268020852004393668489263037037670101696064474427994064476963282506046077041715047149133058900466411956859036460224013907177483260791991156136342824837930323321932823160379022441493292123091614400655047415408068284367227499991002289929774395946213380260690129917162777780234086713697207319961392556011926304045176184385611039782838357151812133120716829835696710583331408135143519715354739790745653968166644475550547976964273330531515032640920570597530264414492874929119902923526777466803508192790053066016365080098499582630300249129665667714863914342446009235042131058918109236793044031379469544196290535664378938400847700219710384885263253979080565679593812128731489708136163902601059529817238493427620006514737938062949831423397096106366144918570126071469181332243448838426220608389287048225186670477222135426359815515337803539763848593315861925424714596633592497873444910611857484843046978409547956496910319162283225823072416819875737107149572531963193903256108891391776450443970543817849965717391074064710284559591090053259087635228044058639431806997267364840412575577911134640480555039407190088906955514201797915012762017489179653313468421548120730127375715786582287952302168664033222074551726514925610796929679834771733144655192663323201740988377952212890873021256924013114330875181830889258676230965945705002374227800234470535065176256473893013903680002331261844802406070688236426063278665965410648138794096843338552137105203107144878574854909441172287901248418535535666947203734683608941824461568655010270910027986568859619791555489415441158778874808893852236949054291897638241352450973774035126879787630027287824308968485976777820762850323681260327319009412235041752772530247612318452956224491792500586241203876555464680540739878274131310642286446095303859926169138168039283998246504449771763431179830823691985932799483440944270272601393794036127712685602000935908455718509791843414299054866669045873226638262222381621215066171210471701831500697800079928528124898470805062777211711930167806469532923044783272994776943896690029607251462030535278553974057779556435969900574568822745458324700452518168395174116920876412464051584747987045130724157937192542254912107688568409159632699137763304149036605471476333699550226343977616825203629295079705704181100409417491344722201194369274333456941650224165699813017978285148738475467042124681807633990057484250297225506136568008287757061305729858473273161355142240145547551375111552760934249000401363359421612407455954359858836505162760516683213336389332319288127596420772958680879878856189398700546283049636260940521054247185315473085957750181350881636557070725539401392516105858912894192350331402224199943410926021173645918143117451376849711146482100330917670483858066034898301252704925033742060724997989368339032467269056278120411897532359110726572449703560584321142876932665544960251059421463379542438031331029056638307927782362062436053125406544700827116862237841570478713686980396046187788897664193603450167503437542333278189784760704059102536328900801515354079476129833126151910444229772208244251136539075396322194818629550840804434277310116403987737396737402994790255320131734904159770381611551305259557769500071408246226497363847911757172636976438197803190062940628539612700247453462029821093505425301027758194396822121032655558054183280699464570736000367904321220040006935165534723740347449823217896523613966857995772967944196701848537937108336558640025798422176721145911874163893084660584471258157667232671492232896596624173222246877067129742316351123769743516785647906120749906021515964964749097580748558161001148621106192108464833820356244458865647392092025297314678845246479884657939876199872706612576232466438302144057449900852764150429885762680970388737832827390609100637816824199336796613351193479578528432393620342676868873167128496146853640514078797167282344933886409623470701353766693253343642925681390836444373607836506623347383642985907977556332955225811934674121441904921066242961712054063745311946291049708634837062953820915755710592196968258112626985779679425353496109612008964383019401598456506275891286190887685611074618929111303016689206647262458684602185879343332314418761009559734045267075794247868400236848144227036101882434734497620366386827552189492352659605359627578149797262707703314461220338400308697995667499381548842993977855121928528768811043574121191737052961461742263827178803491412396723869173743616139982084269256824720598371134117637019789705385782672551685511803437120528715112393804979352063996884200177090498641250672136051211507546772507412615439124534307074569427576236917820139544773060767686932770677831450990341421452366502736597371118967410871331699022676400291744157657489678450111043024959114639417009088051354715439530096992646281685090669844454052685711271365915057326004931440836866498435240968559272090273003411289610525864224059995015971179216291904045262599523819258007984620774250156206657686576112799152630862194671392888347202640518886065664518090615675292366644060971294071261390742428114168141352670262694477833636133371757616112591788007401983733481874386591937454370610211490132508211642938224113783053812982049697286924525827414288013134790533142390988095002322498995083729736776585588726831358092221431572819296199369733159144764266717250426673502646544519657306684246200275994608595151312380208624819243944815203549924336123419709893700468296544210342297967928410445318597454355644696317797723232338010038930169785339990280519202898921310764966733942195499237825401926329901890970525532047959716845819271052742033756416671063905587387611428259138672049964557119433400361668070244167450086815056007701959461665731122808385399989526507181503198535640803732649337854624038058361079114550360447115711702336538963547188222658085736597788645167424237393459281442838861011738636687145638596268582593500628014292728033138946285055158034179145779200526218915822806998689912048028462592679001741340484756675832055127536836401446456304812074088056631387562602305814856206541809266884173820826205175783232650152147910490151357155634852448510522546526787720998168928398809036927304264279256213066787777673538315686200393154901684339346335045422708170465198577402518411030274482644345627860330636120658590232385033504288493334798110496112975109304037577594259778792446415989019143352267292741128269977248219200684165370293122015921022326525885215588014314193815604813800771662611804786533204491969968928438544998644743258179514153626636537024334874581018043109866008766323481873849565394559346866828220988585694102921212383936956264875628240853678155063968632513770492855367532481515428993941287606703384627977492042767070169792509894996435454488915780094710790715643447793492308177624573771625843609828122304561427487141006113536532462631519060554138146474614662706656840652447068322165575579826268985034215176184566006051102369606386524996041274636002771480632421390492260039599643497147812174301088236810118936347461295223351397803696590530577854829212592883735763494964943706777493230805257072961887213867884931404795719363467629696982374880628546082581249845423478205400329685891353615412765619778823273289189241876698092034168838158975548401736098315315170451599651236326067962782887038655928949675712635490409694454588956798335710802794305431327021735330497115219272021613007761246719483194206490805650534181916829825975554854829819835462846740900740207351122654874701842557715374821507905046561205528433909965441951853906914063038730751024487622090491300249839691684382974920020573569846831226627627100872573011729731084591915729052145480898235366547037253979962265693976119181366355245505108324446992864263227889826750210108543039726382366352750177848048163060913066872070327650987503214792237159736128808593257556646900785351835039871573420394120465985312447957156315693152642644996070595950163565153940162863504280696789102405705645965702854580746970084482685219372702343865034835506249369494288697816775620687810539552817711626584158492593576794951623789657743781182748421434134987860790158668768392114601298909129249953059892659392591957915733618755639421693115340635890325700669848369074520263248944148069987102993730533568858379550441676826346759762152479232747155876300757511449700499362660371487570900764525632973809503441808714426218577078422244781252919370582082161073241576412298782784454715708061757566757011124521418390366779275183694804434336192092259583605168424172358258611641529619267478902761919755207356241472490416408144510562902338963481532654874490203046755514768541866907565479980827784184851422793866559799287218508231368449469013919695138378818036599942839458914867921288564960838046430822833511313624505321704773305357072700654981180723954540295766082518911629186083587795670391931790335432288463694065027184655634690929892043981946277211123515599737898392676546970243184956480454420660415762434143445852675100174625887387737216901132488340717584942789093767068048355544326118626874979158529983111170748806922187645434701183694478771710362533604202847978952938262561681923223072749119589250312790863568734505235831827716268077132241100297739633029153251577925321328247913235179545251835603907469341643396252298261153281682760492426753494723451269381680126673631763159407905671392133366749198191551766464266387743278907522921144249656190608813823407741750950977569755691282375300300169624732520770749861314410356920573259382733473040701423195950469552653328438069353475642480755646126003236432441173398613829573418311821091726823559331294341704844828718141560732940473949143903550168494339181032862123474165235215144976388654814817993373096128045592673863597082267017777955093059353968691099145760611838892248099425421987802238558596109800066522689325137343631441147618294827939139501430520227615639075058827178614852256123340581279973082864870476583442410662466263959100665037140470985233047911300906108043607393184083535557990128342885418920943534889884166160611760863726375199949729976686849089599266682201738475948236129613079280280584347133840513087891330193494684045288335565286837690759650660734167084225013168063190920364307737907205342324221665858568182945652239250917442064101886330478998460488155800716616918197052399570448252963074855599160064601757990621504307094176448475734862860834339956215916185878211009580879750691458236364400856974005785880986289621868325646064365242544670905678847624793048042705466547669722866681194992204957020571292209532292977910841299358681663316177279996281274008104632968901836646744813303852805602123612127708057862862935228851829165562831484661502518997656421680638568106791625549085506430635733207056008727192801735442972173217105623711394423159692276618016791187981346150903665275975928738239203408426845867592177019833548994536516090209684278073899703518643290966227387514930260858505916893413275099099616572684947065129064513433925274847135799560610177427482647332944292787098385747958205910221503668398033974679612922554113286939824444827116194786460897733895874704575964319536086939387594444044525121888430482675246340756882839634660651858534418129822000878796854503238577606210862941993303732261294390783352034215326673625793471638657613651858017853399287956792605505347301465066328436488040314261971957328128995487486313939021258643848130821542320040191622241364852357419457066040254372772430730518708521070603910353962844473549082614780985488449800481745179433868245108675427093238022303908096435559332654260218826472691683653064554652356125705723390478308673608208741112303505802778521391526649592682109128924015900775375249813464362426288576809798676876744307826792403809705305021279940086281349550911551855017475733033993441944652534522565908113954331545498885958319403236648324916400294369329903291464231031228767070658702111159992820561875287441517158650129301663625895038612783529247538220771219499332066695770529273306712084903217241278817735306560319070113350402247993863700027036489374199394629855362360669654052404373654178745906321685570971759481029427030245374520419031113299572477607446313330233729385933961354437579774337677288155290472348353088808658134970514967545325525039397273074417428199653048954421687258011275238700924215564982860542835850549762097430489056025104407673589209529919770546649082144125474407033596005595207258126207470829826055894605729010850755065925750685642941062194155129440470624690670465620131941299143592608443614824155033657649105877228818454421536757092946536161096991294540612127203660855999271548918259114085600027715631094251762462851357666895906037778725579157638842815059070025616538999520305871294716424318239803436674397808160503858025013725394797127519817277538069506838529602654261023064455007534774667128760928705056710356703540117123181314331863207319529048418716956037895541495414239954734029032233797291405093000348236675930649037851135087294825747053588292852430118682842666892491241289009633391154795653077513842157748467432831787603375812476727912704424960147663842178132756196856183713405070403014314235154095971950593325377913488995320897918254879053707368435610300630158672267892184888977527057069559500445664560377081204284364055153493617287876149112862939308321964174643847829391736351018243469568855563109343180742301739432507601131025465871992985026661124071360801369041380873134726876978595696061995483621366790515485209188099627763405699377910179872260619142395050231199587609963809684610649605000078700102797008400585405151895571730369804852320482156904356573271270735484380493743018255868867353911817598215605351364536998858039942375389942186863977852084251880976064673057973589384969253965492234163632292885422731896050024093864702479915616033477297582888774891992336989503086818222139517950351880089180674891931491602486732587512257470723282275806152464177838302927559986775996705377498657734841679149109585993614491500714671269496419737793748320193894100531201558842685635843091127348402353361737113909425127862860173433118121591685436978040475522235196611547424567110903605203540365181332192565059182369645635561426192985865208683966754366799129147044446147641677758035040086255019884060290796725850983329602191631563505867371960056737311768290060786860695309316029224683202928754110535711543202300802837488099950242574865593726352851698684667180264438307143705798509077531854256111088776857232618036137421848493475257792650969253161909097453987780749400689208652049761437070295727245299854943766117860508504529473164310737593504602729059116503856127962308999909056582416086499471240348385316313580123890493133270880175139165370305853159572005192652420232749720991742683741349681976774153458404164776298869740654383524318453043854216672998273487938294277876621266553023043299422024610612254518968631724738981744526161321121611009351398284005329694936799449518498824189392409855984660179594686240414131490423164880368889368322208039228977334613512125890802059857890309702553179769214429466213808231706942887406513941498926587155316201025387013177316542400975323955141075223391669123624763858869787554347772178344946240233299728450273941305165446240128363794022194937142980520706456299465985211268308889608887438158709745791013272962627615483251079689855197420196119086772771206855735479413431892260666405666986820773353703031421771685475834089345566280730026883100443661299592544513668144681834060013236132728633555658776696627053360491040712836695193142324513016622166611160109763382269836405786941634980234557542483348494981148716591813874097901458316594452340334543487719681930833469804301534619125453125233134549639698193687971818247316333940791292257650435268405858147307786826240587299123478120696032653464274613037457414137783351816697412192878430781856097419328166871038928211896177892094639406198855146961115094181431528604584468804144724899842374419725800042325848773426421451859991279718858337610617692739346589197107591853781359448487731290923084940063427660396674862995681244030127433243288034440197099076032488100399326817960527916232883799945808835614273997410298928078928740847954699602274048356906431605263068777131532778424187407714748092196072803694365593501003094886799997206261704502531472771306291867857761599154493212767367074326527620422724827907263829891864763573565082879731116291346629855997585339100035602835341298817588747322479522689834238344133770042637906906584881412864175786571253669149971492456950671614852607274548197955767339882925727353882617186168131425233668515537637640442170450682646575274145062627329807362633265526395302392795411012565376419428966665484636142101872703427860459657260431582460202660583007280526102776759062732042266019278749593511491467316977552605626529115388677953142533683263065405071540585221439974375437732797714381654300037462685086615315893392584128845469056399347584883666054805158961051028802081212667863468133837558332389572127824204321811695629740029012600030879242874664150527125410365121674784820937600798953556641135419181321350711421763550696596019996754268639569610073608487837432092907049134790975863727778596364900589558702110898117218956631308034792367352580476680453131291753517778107509392367590768674770516337543935808449994818828308404313625885333549457736494251811011122499659285971809773190096973658527394224693513240784921995199829719623364249872240487539177127893277892437324607094991888745876555964254175548493397097854057005417352812100109975145274304733345982847928668967558599337638663615392250326098251088081414624923073326361914758846552356837960585161048170058019950774936741591390520101614053186446765429784379333552152881274983529582624369284622004476879330827740480035299114496722109502258629892059054107407036869598610715870477563105510687254050011955821467601396545640248047981416343309928483830293863231445572429692318075766415887462732792841646859620001729856118164649676160431236740246663353967067939127988167949565507284954300900508572977788453216957103615961241657281764340118528044572815704242092716761159434067890216481158788917804845355143791394718461721622661798627055604152589191353128385800170160577937665242756955337579363229273576958227551407457476827546288183809885576241298424370761154695905147311377991278429714067216686031335463790367176968276295935329121505827253123833437872586913083846279582905379161180343202216954775056907416194125766776278768918167191187672570311581229742540534285809822801254576727808093889642143460369118938659753522772988369104946563138978717171793163168302991854079217768510068990497362844234217820820455381489772433280753029805542871777704776699110808642356689460634412394998060800899933916283562262892497341132578151313536020990817688978424368607995309022842906599744416414772643746802810135637186517840369146392145662934134143734316658400543032930498531961230090779225972016424014774404068845954379736545666184396797142797154607403642949859993893395779296815602439173150536257626481844184295300456102984331451080775162404392812783399959915714013770126967770344412408791700151891080207679661138541285208071440145285434921406420268047887211446429644543241580190935465142852488382083110484462785945173913583464330390261451134645432068998354144131730370006822470804477954544694019897667501948674797906971717970548697189338172779549941843019223333509145907046569603101404272569273130575436586403130128353967572622006210025948748100260341990549503492083428847916614398804977096586548855777769975713927097629126685232084363514637248651268307258314897417028049740386452837167139874677261608870095870852571871326303572836663202189001766886010459558463428637640038188888535820073028807459521590393026230284636501630476787001349900419138204617740143191292835496007213761835326482482090091252161812594977138093139819731063383052439970614149615794357738744280622147432848574377332195260175523235940082984691889780514768445502758778245288978331773014264599385753264633034651189808911013703459173475216269191887570008397350808324449451951543761278975862326684826817983507215556087939817125748273465738241833264366385235566975129324772372434334802593895875290320346649439981922316077835499516748973414697706101909255192616443510056594827226060588491387824604074851907802049907521697449186825717112815931981583768881773095950848605552632302500740581933785127171370628489407570506221788125151956338184833123095924972629459922215872155793941297283264483737960070520306110803976763823996197800601326236510888386942733958862773649794258246985032275263771638675552183573665706614244779173261854548493500209373775142127003531380423240796642967202775087624968708505321019158866176771812516052684395329690568239178048579234401319797902646869801712419423181414988531013809739233686693244644634936876411387182773689884213631542638414261971484976540313779666322447228249225579062276914660432770735237732324874869890774323833678931398599076328691273397415529552027801042626886389871895362716632140650126120362546541154261666139752200872889626970979137175631100254613734270278609290533421472753991046240452632312378367265758878943493461061424486093676797766793808579638285275662963472271833143284482556887361871571608006670263261842327643428970263823298402892720867049786621807192386772410734863485781511747595886312336844342368809671869445097787383826600790550288682737388282383048054403773200188636802262678596475036228537089041450655195196241205688659535006910864088806897463462086981561772461352746898695396187512867015491499744567300516636210821552446509601157285697058581092086052140604411041784660247445708558629320391313670258379530583224597781805889108294901726055328726222833165875898351156034260912472153134392774818751238596977797844201162128482626881756054955689551193063519782179330921240441552765403391761742628012855928524380816064420542046281767834550046438253886907652824692325058344944179301779586624027377962734751323684621182726201527797228889553749885052917332686510599068570006753822870003101217719007992830727481761007892795870768208229040078608318013594427105521921249880614727564502368647994434118656416869232404413385529630880890123760989424193884440174900359559849350572226165297731166242554925090447178353437258576505801421708056915693645605605072639295947984309218150030371643980055940587068924893773677757238660353197192986753404174113756784112632389193814443656305879777716431670674834642665397922454384860874947661836487627271629977371278046730851139981731615604570285041138629877644267463641966797462519640856930540926836498546288358263016565845439504812983781805165136027827762578880553975893242768241268582013700730534426701262625135395879425356391389448932572496825581831055045972784985497980519514156323067829095317136130855411473543527660660349353040688579484763636308079082207280879954105308761759617523257775034923665203953323039870061551615016098276668788357972510155938035873518378768070965286149665213354522142924841600491883578049713231644517709089700395176964297717064798673589148837973378000384526693681384082754488427869391782559742600734188330484775555440877752326949542775062453293519744599876418465992398529755455145365625926320227331499175125937457640249805881271225695708381000259755405051592436021008286860415187914105999397436334079190826564666881621463893576210116610749257453359430298842654756322843952900800692351660169763381122630969967819121119383166002422962843509242691623108102959781344157734173203752374941667206123341032826043488419403957299377833344524722143978487034663637623327688450113049806983618642420082535768398806232086510244750082156667535924040060354225177349604873964918628348211671128034399847974781781761224763259637813999137521980006759204601700194181439055645716473430277001608088761242096748310395083529098214120014630943349101412272396197332516959772345214426857859768400733457127398608362660325142224840507304697931882762263220205261794687036089821537130127751017569228567385892287129827090069585597829266354745377155778091570022049567071800941656650947781504576967141298975150984050150508485190777274993564874786713688238049312079314220012612718151992114038419545489396308082893996158290546242876081048433122718861996042479990566530701676159821133606644910951392105042043571944888505727988582411835294790614957059382487670068607338435575525895568432511743635548813546414985290256705619174617946294357157357636368937971931376167749158144249630018730618410820676376421576870578453779864817074383522650344929965536750665027236909657283745157809623847507377997636138408139242932919790929066475170022268662814896126000071603762617193708834460218238004101179612929283555769753967669874813058108842829069740688046262462541403198665118076669935215660680427735116212342919082890704739108761963687667506788428858737943679599977924063525921366861223024560059505868813362383861730981005039332424599592746170291213927895218706490122864024043629202162861468941990584014941679441408116820857932716491934658760040759370676506132208216682545207572537351723060542483757401818806627144574379274252953499393864914607908073144117732064321136085367156888579475160696621992633847263340697670950322122148117959433208712170217714969933747433641749751577267778696256679835157358608036647855975009412307166331764257316573613568651113460290490830314211801747065476313920416075094093031546789295198707924673984704308523437292457200250750251167999130609837973242346544836634505380395676505567512290392710535812000489801523510620522065294757737928011594475950288015926448453163870807234891207377646474376810382709284849558251884572264035782464437332639519048536685454347877679145929848324787820445617353725458535725042432783956761297506717330476359835491241937119868333341262474637331145398855007102106481950731585931536287260366025698637931648046961008173676740167179958278458627912385012465350615773883548443117850046541256147603622601226694841002391703864535831049541570601437414989737378844058730095621246470935158229500348822452737921104043994852874624992258607804980763823318459063618908812642762471872579222903550264470810671232426477666919251590483290574486506555468532719359574676233193889469892365493795309639544581877370214380628245244401533560135158256901542366967370009062438763275347108208375524985190300917341554339138836077004455826073151964156808228524697444843944863587395759934917345079402961991166143105026966763780200206545773411564393977888868445066335361091787720553250896602470231241221190517670091186231850435256614200639692157305476515605597777875179509082545094275586779365326121893027711343839235452400243958725565115192230695909506508584809457457963248985364643681471961693030974785765253220567418577003044676697436303755633295424495987569673322629070357843382546505578908572071593641597341989510290479301383194672310806452217037748175906516587708118980429079642382730775848000010710998574821563854740693755595487726551313623734617290056991929279729626385340539591927945904333749256091612777490716894084057904459800767164846253019354902715742523552982848220553228305111750866208048407779926784590702549488977488826234885199502825871067871160300985097301908610144230355247840146423966334314542651464756862751170168220569329659935656542362740415513129504664424104646096869510011587396142912224864295718349341342763755062811090497520912440985737811385777709693177263088082189203518951051568557332375637623248205336899326783608015519958964110193403826841161463127973797575441642161887268642622409083291875956287046634762331792025895224131756938040864837470818638972975883249554189983921603605800685467764342910664817756099796991244546903959430456688727829558426861103176319565807361987674659112770866067391869932653468497192304355904418599872008533739555602482866022629943649044672320116009101790524544326314795881328251860894506106568906780903428616856999786829593005821024807868799280920523406501939105300463757412524089488092522183626303010931614361341998497998006137186663123712391200672647928100579519946031673344983219892752491406690327141334460012964806422910023064517445818797497684184324994151457792346637465886414994283768276484716038360648252310181659476823030900935175282708917944258607271161934205481601907150916425825723221603431508316840515867084314575398476959328569762577735177754474134905321040746813057254161584807796627131237489359605545480085981962315099288546724332399130607942857516344826772283425655822216460311539001894871822926953491318670206968894730543166973405845027465100812560469208995134014633781514484659600178021774521542062587876700005920264870910730300670474430502253374916578342227265184224106333239602380622551176929770124466754020730867616217024261323273322842209992241698637961908642889230971838729291638571914230752379998094084342968268058775596369121145248017117403541262469836834560313340155450586525363694971863117552413281654506241027194921803224313907237697433414967667532647955784983444638217098438812557666970291241696744507393577495839012534050305926638841161741611229644784786707886357939931077153113748416793574143921231437142130668094500582077765653736164806497557201804342153306508909701560056572337469881924153550041605519313945094482990651017316558221179321147080996027254912450428842069898722754397570139342633830416964230770538331353989344383187237495383882692486799432070137525141449895261499400661115862622988607965424319696286412585524420824673233174881475848737213837079604905481646223017161947898220224544511552016753472858070088301168559442387289802090305223735455407208357646069557915224983813892247934362543801348579674765961361656652880220320426495652209995179574187720317791015250749282221893872483384449691470323474527524747161645174816631991051752347597131192220071090509720761631023062993188395388295937187724171019895942494822597535933907338132205853414441326459580940043685774334129892752882012697941717204456630290748821845207023497307333284999946086530972932684403541272295184454593231840787858827660757010356647695479750495021681380594915360041526199079861416389965649738244211143816056768809159465749880218665245085266153175613668191522925272183656206249583964822030342252354427948929140435046365106159966571949543224755103025435122763579698569041779703988341826580915639241810749611354454796876954517673237743100673983019814895012175976509533637174778393803141956415425968979902408190719516092873387476348988666968382169911854805255970245474551580994942874018388328283564325272786906933326418395044987439558262034594073924014279232439197062202429321848926727027879426205262493074516292238159191577523872414228714614993665563896085064782200425208193028988818949287273914561180318244627346670846088460663004802271733644296236329098211429587007798641141609898850629800966135260328245010101989360913133860958530348406766153002727464721777826076330914501369921304943839571895738784631541683474486844883348898383496623214183508308938658628903697407765190787279947113841614607347743485354220662840873083189771266465496025674091339107853625413742339230006425243859060316284373741816484545373690350446079325308511821435309458260054782503425239225198453695510978754159646501717251492158753309887285802274640247916614312553167116722663062452414679060677690836950892094586536257566375167633324610325123581150294876334823145836392202285387649911681393248302199351732866671288745366011095837149691782464498936591547681588683524443470305368755045013399583315342430267879265585105137893678090659100481430268119000983956899192055455574905524868440147056483079025844803620544690118372722011534255078589383487611795646046553563428506503402510875724230167919798566398613857660902013645476988184303491220577065723152578467960447699823667677250990993489887480621923651713519673162987220225714435303914654042035425204828255247076210038199049955457253593174658036152522227063198585113927213684967788573538332390193288391684434484078855744612915881789298208074106545464642306948948655848460399038528315182726246031863750369507019097641682533302241935419432454480868405528837843608681114107543983008763442147390947634151422344297072159138456508185427791662135573284609364183264405435241167028459979841953322112602741663579932199454594653278303742584967062456948662996050561086367032222845263320946746346355522424484369455510937109632551535018987196509282898513944922934534696856419095067338878384642584093628983021973942848731463681007415968853353203041800484704566566910005752180638665575672517673017631885528883685914861290686805660796054255683205219606846862951182373179911420025797109378141640690029124132376495117699985439309314730648228838603987077336088158586107814992196453891841497928341929721247314639573329851242287550188671437098877148778842559593219755723352261984658032951307398262314501745023126920284976228595583929619553981177132776122597636486530267715053196049369406050242852581165566679461436577556887556346976291391595003720601570241571098985600043348931766094794730476820049419808335936180476681492873625433723124585980704124303297688344110317606015922298732924313005471382519039020227077645644771262555198989911658783499219988008736019951152469104189885312794660832328501374081001461996270855760036454640921180959478445694893485730519332820527322489731050575778295953978688682424167767197971191744643361583623155671362188462348024702320694932172987712872948575095604372910367370460784903494409831269456876066427528913119328613657670044264027560953567413594841438096325737228249229490361001142787524447847232600045323955899450244834370828046173696648060337479480367542302707336900798707897160411941433144025331336804702678186319561170070661881676946784698055634040992710407187387516103625113218219693957516418733573826666074959026467682581586679574339537544643423631820868929123035752228473169399803471273710035666983774222792610509297719371796951133148620582759823325671306048801554738473454430997325584495233366958933198499116794181392092876001562683747745465138002198858414915223630820970270767651871256180108836061348473434580859251923094187290854569651582602523351168026549789254169955928070763257413046836517585166559513267597461776170131211424453791944356566690336644590645611293324887217473264582338391431999640178814518046666138795991415943148639944680360027759544123384448078143973268838548701631575479590038644890065111649647490603472151797430265879840213732901099375807602316234845036593500852605411596969394505912058660122384841897569298293444733043001213055380766963785125059868967302399381224240355520175162087301128049477639305924133339910609511144468804637667235373634789703058875008884793312691384346826425741452450564421215504551051256556243298904857631813669178251297722480079054350498696607535787310752171094062234528923800962386496112942141880533617344380025529806933941510071959688465426278290576358912513865553908624485198294770025225424963841857363915283668856953745408873854216426147059390636897828774106755334032170875392583446210082698069925235745299140693659037316543874115967610309249039437635936925062236831730392060231616048334373858878010548507223939184884474986496892763801882543379964038111892932164379609359340861493947847317949009201551563237233505453240900922530989091166719006597744016773812891954149944417209431212310271047377322716954398080771557323952681497949850657608008113864761375220558788826750252485815333443810488025040054831517651085559002007470255864294868323381292281888727748147466375336004648941820511175117116502816220796513820103182240826409423069329320156905277743049038713149475199125425180054503409515647309368450273323966171276454832432341270025603833381504683719185237513002880675366695471673601980719045131696951333069163974903951055645680776864534872078686356116482680940786908370016845837700471566945060778257149310012642137793518504667981108561302275364669773262067445690598255865786829085043050996501610421638908476591683125877862860613487179543752482401899410256217642039814992907595463385945316325807094979700129047121699220102963847608483871491594088872084791632681649096626855801981594623718734141399072313186199305523185549670709772104859982470994223089459218141106859145825854106941296336475143266947080757164626433947284715558521218892609613640989383142785380290809863469738693210700861246414232377817984291970937579714617851631744949773891506889987494689674103400226180299349836962191645543708514785854021908403179384161402547900610384697021795452334900858168390958256302526784924758059991185396289934600234477855419613193432928715299936992686508469746297739812912272490543952881632285374234258076405512261651138098945188727385887934133098198381260954459678465857633996519266061993644146390495701807396581080485357737887264700553698677444322567165989716085546973048512025390090063324570571218298934699092480549041398798278932178224616009823717777457552104452872458216837393508298402847801030692604028548573151953325024863003207879613142217851318981256105625903829831646003620154322569559217172331518418987063128769185629395519870680721803587413371264342722204010596273779646524380282755624179252225374836349669789965271258261241281042548164064243205948553520068160475343721580932806230451550161530410402507365071682780966246019494052344201377419128940366155562624584531839813082346350009821897310308683963680451004895733022583058460419981762124843818061475002368153859843819141646532482000948221520436811134664057926685204520806299123671388694616524919223771324902563215643834535868793585588632950796084205720978106520456533679770906600344922128108178867267654150356550249286454675463560146760999371818944922630345446911048184110149067447873412164699071312164386728772432031454688431710682441194165461382771069305769574068768455347940047316781447993323538941015747541126567579197940721939451453743625845748102889622479333555545817521488263962200655499309937967376969927652857908698162144703956933405686291300334150747902830794682961751846771296172101207744784428947836834286634574318765377030908700501695001184300157968134452164133826597299446333424735592540515326086360444680719537536007609904802890466594085244994242887192217863750547064919228847895453255602512678293999362854983489872418213684643656146636380174467297864562786491246315716129717360102520480896282356449634638080459419516243625614179936707448049109737657459842508533970405594175298690962801411880719315751675439897044919664349088545061874822106546635222564468408452355784347549665297847616353221939076756021905162983065911449806271636100564705309249222155213221517514806564327527399735063419700962779955268977593957442169267194988476393052011532532380982785049640303629003792678443771678984994718957344449756727359530424279957225376393908835448408634040491154017687008904936147327564217092411353856855660741090448922931370323569127787444377501312694666775082892508468765375102602284236083811671476765026671447181315149069849399211991273139781334375611942542479935084600851087490450094875557647052511372045873693529344506784075146499473857272401961962412743087828916343753890861709420322742713010673727444585664430219963004952737221893171717668147767917902652710527537690810185715926534661231886535879860506352631061110157901099396061955239604330169421092309907149455223735495098365039870796663894996439501841062520470977531068450682765405265948570289845886929334716819772390077254768101547120151791490603338542565790489459954756972425567541288803782802510043894439039910991441703862082812455497328910329674055303792835035642982755252697848434621929097492630422100329766233781863332818135961924702672104777004074894514091852366370406090705190868169885959637593140608941614514728606309664472814457970894537353236521997894826965802227357329090119838856630589040413273215862846792693450471482288502094434958640536953003800361523332973784139184136055922881588345411177853630705482695391920533847872301737677295712159898064932326040817791327865402695595843210374264931468629394680567708558521053712959796247865415784082677401200901568513244345919367348166246584057252373866484823167600552827804207495259237739016796953670233087000004260582952004918276679151513048250085136123574460345529412778396225772691531123706204461613350138145985133082567272173728986255542565598131021173867261867132159477307280289447024262052870469853385544912756243081264337253967176257092319248601780005775690511894341393309775256993050532418845054863010421884839777078414550434800018771725937028884425510201645376206931804232371297138712531272594376430135145859492402539198840797985803808954707821295041734310739293373155054084228395639809423942398306476823742329033135339008699147535545035223782689407723922250315832133223240031159630016584923455757688435182790053689442925041736069938442106021134074471560153867222353728465142366720369808633139212323719331429416864187658119425060711729856691366237823919210235012696613382197731792506871366554668136690866972274011514263837838819074442055697956995020083758854288558635483971242542816664612639605224425785940446376475973712999962448595461521144215592254057354202147081285281817919639036124048674722818686918382986367473052150644530334847565908826717310340006505438153346745946390490611914889079019193634564518646532530367720572934500047368716294628413270386030139421436332189926876379656075120353473720452480326616086273995351287829684546700759919577470079887013118416233166018213206911594547340998508806516449147544052454608111184375935128180388957570824609660957013911891820487518981256787539971720227414185560466948049408824740829688915413223286226423175999625001529245148453083483110718934320055256571749344979166383212710131229208558721242754106432822942675319451985696550627275386649473123696648588413439768979817741450768243613887085243401265353894827861590921176103832421511040772178407193228779766958470240581157795878857547924139783006675160470456189153535053286745408117292613466240333192356326175694274663035380636139615265245870305892115474103540861758380098500178766977633150539068199667806945517727623047833976259922281588823510409689266516100060511399130678098092214072310793745114073068661369562101410421520194174238822224637804969319286287888082408134279091551294231576675686648183245991777976380670073577380296102576021004900575330472649089341651677866473310738122880968447984299641344959271602896400916349478973944378248189295547456013968282637520388602395485583608242342206113777392003937710638094118107554776192903192307248691240245496914128281205480032669415437694823241876827227615708737053471729434874553551389271058762929953047699150451701374935324531951062677992833802743445266404648961895186146969654367329696275479766849758772846756801900604828261304545231797748956191698703493359959186096631377669101225138406275908983289377214881756729943271747578298945383877323386252174465213581769370279574742102751141890543721823822579270392952688867714556904679898601629133794890364200440927608928457784446979926284837121177733299990003337369401954773402456037538832901890133741363035153812602162494917757196012911062724544318602996646165780036635541003178202534125390819032872377878355770515424147831228140646024834785387169058975452521017811418976415521087279561604198412068445139641668407596904856925993882463252504310592710399431983687967885287443693210281067565312124575533640583105377152377417829415948425823798977433925443510278450036769245686786918536368187871290712778531776113145074194008056082878965290006775721634206201388948046996278257686023155308100881096152510656612497670862415947774987220734901838642877668953637836009334665100471786669285185569967694878253570249183335304825598264044282205393616653224518414057333835448595517177086068904329701818556807844854610631976800387714801488711002314030293801646149860164263493010610733741651688309660552360326438313718834321429129513654804054255844727260909687704420609396068759504159301144762521410910508051523586078663243417142656144299143622760016649473655707938642959636330805161738010680917905568743579129491252841572937196831440854450301555715469860139654344495622192636570359418739479945819238865615117473384416862439544349644644115842903193193315302449451160153894451949956747783482605739435553380940645633561558150974293780041641740623687089947476492480043153448369457645412748461712323275956398402440047047101922708168917502314777593076536537363883500665197376537287138465824723257117997592562830167533402621598968837893706576040902226977121430255016567232570932604656608252977769034458430941568459736946066932392310195550370487343313782017276045112119851266265503175541858824191252949827426928198702017470969777864436102055796166657320432174543913496907067793709391917194000556023689782341149343095761962753169881197079982241921858967088582049369613033599041755518721386683166205678479643253601641628710371843083089900232718354016939551443715463566529687145393093925822450202031921107347170179176268160128984320178542238846998278263054109835818100032028516617974415345515902936981961090765933620863255585853255800963912271343699712911026449551365782598964526378345162646090764130479414567990721689354117528315258353569711455774594167285500423812503936306070651405122874356359443649365263955824684800205939933773871043659185298219958679043666090442641655019290910509118072829589183495490695039934876273366779979778378743931637627771800302445482939779527838430147025381771143213071730103527812957180031431748810394152448475194294410629041621311641852551099706917432732384534758939570212013077685879291473848096926581799197299030708832103764721021155374814467939698969845011273902934986125553189058515609782485568313947399978621366141121626873853310140691382083441715487161628256882172946342629856331040699161636243897995458289752433624373110657406693515999619072603151765304859956570989067362822132065712738874767652549647649033957349136951717436464597286928184452048332994661401183312650488362549142271647329735419476340163530853047719089002838555407700041663329386517539461895823625388038960370606588445261357853172174441307009911173230883439057805133828798687225318481285020297575065575682264636239500933991085570735391776134748014818452681906787627988839462624562975744821342523337240320862076745344670451638369907363771396407399264931076759269250749048057377130070547864328432658192695270879539077876723747626806152293961739093280290241540902825667460926543027990118870311579628234974126275206603932379591133130973975069396063641576378476151422713315548977122901552378946808464415173123284263259214256767169532927563163883069404539905334268978267516155241852400660882881906226856639001754403238372871801970275196198410602306970051857845930203767885806696120706940972059265552058114988634383650691822209447019808903488152893226667870394793045014053524715760869910626026085863264141061722620776802185968919950541827090538784401808245080144936724845765920499802722434460055319032663023610909829502167832438218655697871798874323946481223471380216211423328339572370660775576985015494721572498893880659533400387099117174058386116068161878189656171742143968668057544913490122074055908747486018321215021925672488532455069194703262533475709384692628051932564910572933208516092201969347954626481767558107635465421955842714439982185272061908341818329278727093709073781699406569169526316619060553678884972783618009590857750703955884207715774914437121607773779628036061537412749467549726550012462403788964556558229812852174549185682255128500892669686626811236142659327033266728888144316446871857707295764249258498511511134338467224457030378901514478346097602541682561225337741177399259383144288983714200471628279223320335067247601630032463900423846261832988877760371193033530491162107663053352921928445907014810486120641681061975907223084725892091093397788468928540555626977991834319637140276328221787308045507247362020505569168180802345399670682839625888745582549446160029252968278375285790963142737863404401500078257356185331186709807918492219865889364187439838171761851599936918079428675368901188309011077844749944447451347489012524031745510609540097106880840907018553758103486615476553043672764278321308504814580192632518717731778510208965554367007337850126946418162445796895311835022100739897078245065559372322186528065775673987210118179030892174910230663507240709314845312075636276411017567527807563997682950816419397174945047672902294870463817672062800286808174314643733772106887382563923066066882052948620872617975380297149572953857667448342536017164501163009489680126890519057015860838783538918198368528587960600038872764936645128367119936801469681762535784771122920779854796588198146159643000821209824069493039527883339623104189212147488859388844336237570570704069787130223504857785953207099841493412141392789856651402215727246689227610348668906612428128420084697335931355798756302741317091288750054014728650789439947779890595527877018024326924352977350664902708455526608652452094687551252007282071656897551951229490545283333239829682330367742930660387669038113164309215899240758282582130257917240766257287810408224248359821847855419164211932333627863683588998401565441125385193727969176177245362281084774105251579044571270091410855647044138974167536962519314023509300337452431491523753909512095203121395465740200410895912753018215889779352674552824317634764849741988956656071742891825994363615828822909978146419978099991334613964019924865762832867219904003061375001562335678602078692866081609343733069731768990556030738197718600285942908341935657326054664579256439421993269651435848301083219748727436388027899279238122318393185105057181795217766840111611924412225319501169912778387583684568110172322317745969757593653112446130120899590730221821570710197507122710019451981313424861839478548075130206642644566815449137369622008585524416423987276018933660079416056717944180284608166074133573576175802228752852330798590605143558397262611928720365239738494355041219078085463850592945954890136199360706983464968752636368186543754093674938506770298053731819353585744427388651847925930006025306377114844445378928724776906964663837968467860908829753812691801327038842934058413760156539985549719596794091575528140659798862354149677082552600869623401947222093105166640365085482034494832498214189925442818845296553196120422085937490211900395745297874769112683338768241591150192920896996008213843502824785123369405337163192209703937800613008265077324007364075264819015112706144899235526781710369494832117887806238323470281496264602730402929847437623293590099843247917807634471567879809227737173480296084844874760390067371766385323387347387004589326192563098344862137926971577262009055269776570132357228164106910569328515357227523574901883127461420635918496072221486920297942770167887984003596500101954844988246658944493326500702958196817937153766753973652285524730933625777161973110427223071986594330167040345654861301535452000185545392439987792993204166838122246515473839320284441216697503229734701080375620647511978642589238829312479551500764951542922196832375665297672484777205168755398853640030258539943168933635823885614603378782650649365805231075870597237798792000849456694758011691749189062322297381917420696198102349675638232766461761243735951895033344338418353819905941869748001281420723159345683056406655637216382899295946057012560473098921135601028960186041201073527975839339935129525063775619486816477914551542407391968676128734465146569866874321733772186565756677426268576594157931462297633131204661918584118472187327523853329578778400596071857888050090778119654775992389048740700843504378580710551346560105092083194707434773218593988474879347095447972236114773160348883830473113304319380213008053493777749314096284859147048183553662474069111469317588433446503058263411232649802017353063577535971900715824215303314069166352336597646940572292691697780134189815145865859122517843661747571391045423586987283573839599134621963945630694645767643953679967449157333644001621735308577052614469490251846192998848662099890008481521645853799713770691435200239115657362768045487369393408936439677518200255254302378975870690957331015682542639451146643620661056380358240703087815736114334417094572711461447718614444398433685711453000875449982576453515383057676115617978040736620478248342346243855250977606471838186632459306386940999199351041466522238113630728339857363957797609094888988344629402333445612333749041778474784675068526643734840686260227048777477710571630644541390155541577458203653911279231649783306026438940875434691863057607482869796181646291065378802218216041033024083837135087096706774652005190331013011329012973003395647857017529736335361635032252220291273004064250234207066349566413651551256691809024450072019186979746482450792528278278568331858648432696059067133088990552204404102370228096734551921928105247030361883093094338539946649259267113649243835473023754085612552246288003130216113350523853873232751060631408252324367060902246193493955565522506061474459912907680936495139028145055376676274317482007825433558263584691748387056532413794008398296780750976162311720404717229438836838882437466917880865508285101595604233623766917536217782712193846691878946192200514290319524803800757242937683383546662058640151580052163022266036049717394486195149902700833000864818221099418344145598399720074599965855081029792420744983068194179225677668295521051015982531428305946801063381132803107731091320098488173431219305136899520660821555655157393369535830147033059136837447592247641194366663440687384131755781887046248646818345742603967153109408045331280244579711138745239217745003358957123517889698876627950048744927920585678707823119475508908002071854466170296195040486446915386087899662869931658690048848895284869676439716753765084161654818830166240505757429878823792811054946332244829032745898349013673658996838595783794195185898079578779772960920272266306382745511366043272707195801746522863304854135706703212048486228249540579588007095049345497359667992847311818397096778358167038258680461882993164197853455161066781172883302414936490035037373041967011169858745623332820056557971990580636616866016139038073210663641827413782489285217774681284589524460915781667630360818059158610069692014908897960893058595301965153885228490612800028504855595344152268622298219900381118324098168857411106526341421148469937947818278334703739942714784482259107911115965239158942190720026995290134429583278727641570150304626972275568119350357814913748891160423948630824183485680225818341802872037479935049843291349948954152691420922736871748250387134803536166651135022643737318160557535493769758488441287352816587130106081110705385443115873532557738636447420030150568032488576526636875764565847182256631327742457092165243325551993634867500600171852291238990293161100256195665183554027477873412281688701347406780354120165502923292218586664358939670787152809897064781054797397546253047974610199871332730470209589930399109529496257098889135849192839273506588858815447663157439200592943055375603242049055032968237559452897358552137314324397377003537052626302147803560576124320063394837731719317002213788308423522219654487971211520691593004600223975203531140347363887474331250158690831837995885603707569559960710402873642790584466981460460093275210672792106490888636375248754248490657962756573883461549200344283378852874274900903459256252295159713583574551975300275035121010532684777538127162550259183239390179895628948847222497690942383808939924243504607853440172047359985433255330229457803182411606313786421416952534335097838963186246595622147209332127946080011462492912849770494703545418247515933791044216313995196351018787525815932816096698907390030201498539427593892796239892960126980392513241113631644040816029781062858369569671048786460188128967303902810112909249761184721559452669287829958593380802306388999301799778005073093074804709048021258106850879387787131096944904528693208890668288059445978803331452576992452429899561690772981257458904998720083524376911935930498737150350968053331654201964579344841300607294341279952194311948112353551757576196655587278568844831139860353934229109263125865046299408827832068913708754065637089500023478325946299320773397229136060295841343070810315331807567731130021345984939106269939198833905648910260259677559061422774778509533193700732257240327025173087551988328761605961279342066670833977851662306424264875515127777446779458643284864945340010926462153926835129577837714525361281038841620886014282879933087984467653586996308566337952439185268915244997436265590426764614131132326934941189072132244988052287990534407031904758705448259074696950230027737822892611713694611659662058296828105679386904520945889075967801109569185864299905206807164352114387869784037963177763725119694697749515462962674427162269207121285428745062790532889509316894323432514805906702562171258920985888790160906695585714116125239920775036513205385477156402234954192447734623718560858018354571480383285802261967253888861575183087975504727454860433757138816807162108743133232767737937610600689812144688100895500366165016055426839649899914082428008206851044826680914855852593841214046385207206391335972922954813034481369699380807879156676274630107726278410057957878762277791173603340967685147555727363337542441413111852612619357641066354088239402332393810931271035883746145566085775678749295094730840858853831622788800864625722192877695432027412890909066424950884917601160523831718354861813170957918119749633460558669674720656771542353227111433641497737605289840103958254963924606258010370446917545650472386842679161736971432070533175348770782389904301051206236803849772647460216289035367634914695769932257686167358232921533460016254189466352591227202223230803009311031079628802913416811657960255590264202329160493245214391327271214335942074588856002996808443698039821026850336754911063826157042318896054792069521769121971937275587898621911123158852187823617849012420459560226256050760795015965831126347938135395963792858785470656991482119482510728728856906600954424358877779746761525632085210563054968973881482660041851134719984958391561314543460720967941296509346717840451584095652278949036156754971857940341592413157624343487787775554774096602102662901304840513997321315245891915036203932775216852761781357093683696836851517994223649171163434456407306043641069872485121211433783618765258122959598587556421572460543144745384138295687316781456637467949252792327281485559252996056922708852155749335886180205177937015696364616808455891132911112218207474290176325626818773318577733934353744712313242559551588063860834690879818161914294586063100443583832912081260946998115657898132718495261048287840971321455082234333817180543661815070055371674403598487029275844522077725565445949156517791845090224115761038456418431200784890029668650997745357167364569310365614779379533314059815475770023234678640189885859547047788214905512707771066786953339447788962706375671858683063259916718680130718166272706435385622316945320424340477142506094687132892767476421359764451369490482823635697565658832164143096299386513808127319102327235671998006119782273293565118543292787213864256074866820449948701389975974492508063749925792733753948753902016978583236633958184548172621525256968680410109342788901638067487839679184665981643886774299917112843160692122258073027209604557750485448987496793304086853560029097216463153534421837801013325272689758303463697548720403677813486224821066831052425606489755921192383887597611517794472937053651977635806451582131362516915774848201137112290982145895568658030892660310362647203814413888256550011123471326697996173785974751456610756178024341334487361256964764711391189810093508736472609169154729666883227435018104215234583883388696555317090731428958107396960859237379157107592177020126606228835338612742851077583248733281652332451926799141868238069075775418370697255207744230549247690620393265626898101159021028959447779213165974575016410428980551915894864858730213345971107423549936556386811239951593712748774380162683191897026024647936288626414324258752385956700275208308160439440782659349349044707304948801429561225187969303292736250778976032487758945894479125879626018339992080022196155153755523128106191896858766036461964729851823016713001239775735475688079456348125587704898493450062577297034451603711408232610915274345624159483241701968651342119832674852594139868871281581741373911866131717628208816550448272007641888881972902040198143376765777766003009905829434132674220611715646803702633694533393168169755794235914427277223880716112962923669340173714706016723858851953624750462402540644046718907715632055608845604456225860214402810336979898203782503892440895761138395197988324844960214962409550661088476571884087921604154809441955081019567243627317774944741754045042688450684300114175802167059133878402387728925040714325332679429920447356591884597616230391785944313766343861475631911036799309820638471365816404268235911794563871092106244514341519196246467464927092895002940848326326355463106921413481749559675093375273166644323409353544835567948153753032802068094957959704011808654998787938514210783833377736594561727903797201599110807146760108080004772961118198570953577849678428938051243592115376677988996169608041419899696123669993754913298695656869398912249950495236243019990420574638550800215659032083833880636207040268067021005100685898593137719968131395302341716653091066710591835986788626650818125895999175413972848954337746138458455209193339689092617975966664980364969027292855478546842882085966595523677140603777082861502563654713968932555955012414521511701056553915043056919355519262393513384567368234929176322563120528005467286166511199840957361938912236270726937724280568083282128353326385533333885582525679634709082325467145007606198961692122012624338941330778192093810115480427878351895790515775377807024717708774728339345257220204776954729126427363005068449670684602683525804351593052903846081659532594021929868179943020903277398932821011782797184148079658210638446631721367262447270043904569179016280709794572976424396392439280162583422911552872305420531167901492732743002298329243262394576518667757196484515107338280211134256241131851509663769228014480207121993348891189763588720261740542798748335314932051276023831233947912600853497916163328944109064406022390283852730000128041963346362686695090445940169987281414248104553195644295485840937296969585585642282931530550253147879605532558155325791484403843587457163323465727536064128522387226130297410111388865101626325633820828436696378755352248500348816510960908122654303928519287765231122729702515293602908966263015835581396293215556234720935205064297383590117253408253868182840988150685201041503618080273884307146765763911171696590771167307176205565565278169944259247380278956545483240045301193163217790255221756023533052024882257435667022541787068303169102683282673930482257283922218228855298350880150951424608357840934925262030286990746686449697795120083041004055521661774881027320446035202589264752452804625108917456067960756829199889630272895366647567789901631251322005266687973596322749343466476243316594043151852946984504525923528646600534974515401777846923461902492866913317434634057647790076255207487327043410515092774006296860765015372841441995688539949382108157294887176515177374608241075282238021888952513541302551795424278680465648506411524410908102356052947452121548762603591746662330936375742670928293126694166212572773253905453987771619058071334647502808707806527227625828110606861478388796739424369539992374407616236466151477406769813567594439905762569721812696509992084961281007524134338664714570917873887220450515054633522709988167838551416797023930973756549867894827815514022693474545272191012954734676914769708557678237361175592593952976608060230637512512407780392336564216734186087718595430784049742732776179081043429845547737041050061408839173832896894526324220729446478229368083946659525162223626359152875993547660183958132674462826183594014318961212713886740101389831488510196114491031748449546606775818721132228885641767744729365362083749737715526196027851035517635696003271801285537425592369449803800326292911069679985240092844866275562267963026560870583261881627544591628804822041982985449108127653563457165833445612693253744761075939705679792622803249070440127900314453473312864769858242778926015894762024395694493676190096901904235666429673126039351040389285905649045807323624324743172914489475815637068039512785646786483051182801460831220789974393914296657611716711854257394594116239016899238031313647787335388968874572189556319151716446488421721526610221520878261389897024438131026134279770275788063445065973977744640988487599048291096431670085043249004085499703763866840236656603955947748414701104422654641345622549709973097609480305301045590722978729641998911445576391845393604098403570808599111451305310717898996345909460092288969216150123010883088945660489831242384251047285030729518286665994407072434923875283880989570517123612594697148636032958107647556677489699180332351958179671797783941026728426377294490874325017126610052502999145518029220359020110120430528451810881340211116188575148703518346199389208189692528665152565506537101881749199894424063314140302031167779145770745813048416309870662040072082840303714627917496687406092489391473543442331112545440978157114656185747247884055385208868691607139026580941769245028288821321261065409850117180350704706129164031970500613512433019822070832597098424059647969612092307646303201397273034565876315937867321830525152126152310468518321579187642161466876119317484576716870925764216711956691966449651796618300393813062272009540531480814401860393043170052605465607637750861840220155933380893128042312386870748790480116321167259047627572521647217076995987790587451555155465392760363143481237743531592374694585581322787447479381962438452482856786473575349653743192481026037377090989691802478103552291827027684894586462102385543165155236129620868464100756000762454907523643398489767169282207477265351870033140026027779386530447555846228570298331599341187702440923614124708668151682237151525114730739453057506675383893474739138694752343571267632809379209984523638587003918251524623495485239122273958185884826838726855403186026284644465000462405871959754887717989993599005514486388489238023853946709850190009978342267429219163125251524045011818328077242591254636242248401834326236166105109291719414517850816820995217794947148638732562617491013373362350826434818210101536596325290490117831871710620338296816991996121159300989982293815248076265751231762442546323221305299396373231796084887946359634679204742879533773442441627422055574553711506516603990129444506322190351992298295126643929795702472370230099336615909415775004872935475390997146362864521078880884881247685991199222078889232969977403067883370687197207011504056959527148846265893459696831393611190496953284687333839457655279069330245787015637808135006897024518862338725154903379287708694828864383091206578518820477268855983185293021107602394649194309953528350810352002151172205692795750768048070314273708734837738964415867522433737818584952016285101262156042577521098279765273402408392494320097411177281367942896193516632338438094768829993057799372386720851321317356642243070512634525886854074017375877740357309295470721057791658038816660045542060641788843611057958846378242270484988361056950804433805509559698908682990614813181628633009620423482183799711206728107449255501699221282714453300658483705520414417133642986720606259952291654802576580306847166031017616447336510314882478473483909681646025902639673361949584943853177378976918207343525378612198588233804592523123914809432905940822092306971613518862069243469929218067789957385883559676314135693324031174675361199449293889018319184245573731668020423320342241506790488533049442562573763625519088996466666669311036674368875820525199487151869084406005706266597298270046032586607357866451068658475124617555744184124452293043685741169373876149938438960037781418846467373397768916796252757604815545926877064443907620142727957953007960866487437523936378929762847166847641690970933305706785837905675244210274416569719723748976590701347408495955470882247695376423652280360458365174478314646215856067249147925527924274222344292425569577486358306872981650396447924604098472440788000815836642949701925589488108675617027386369226588397486313358843322365098322820504169855095435514007376349671254503934269355764765425299894444783018818811304454487332305564676569460804781838147938572594484743424289815084982298246779088179773151404100413851558196640181925936017995836309660478909609334401677901730817631349212478609125279853049765768653284127805882635272074010150227681636534709937241002189775872888557578511381167414290061175807839000578392602869218412106933068718402805409836532225176416301002197956230721739949751011768693481685160442512361671886340281622853955237064741071667388565894820918755921707371290405093937193678117174602633270722337912032926124509205545819609774289555596785797137003024758842186484201583932993730723817906093198062590081605751035875265662856192166307842667752835055045015702475954436949595945794473762689670181443993608854689535459209712476182935521241670673960025186559746707520731469939666729971672350773896185715953870455749802745690599116255845959453842510449216548460750591837096674553238352545448482044454968453509200583052073939170596849822048613582348458377321012280914529843000627038854347343949016600838818654334121829156017954820270895483540162555121929899653990777460058390956153386475541452684637105796232411990347732229252354141332349090176865619544771082105961297802890780747790611164232378242530636274769653185423446759010452178794398872194976072858697955028649870206101566141701840657073456966175571590993301795146930436101264344820175031015275701660660237837175052989779192605583220567760530498221528395463377072591765472993290127361961405426614511898043499251586307377182737596941979311998611938657750113176732087957278790455459591012170914923512780995164234150282645976244234615206537698497811593643461040749108028731043437447775680520347187225754472920184745084897227991401406144555974258112434133584833979536408625211579527760011519911089441482358769833856792302283668413271223435456904080233380960766899882587404666094815057359407748992350051007062318552705464951567251817249629164168383779892736227469242369015737667374791596332935456418825547315634136833908950947523584959827914043689956947093219512521683884846547369872573127719516902428562083821603381067751769359255689367216592538353953316461548591149162387788712418485522237562385977629337596907627298232042857697571677391264574036389943683901856253903807838833303749329082366707052056376580263529846311469602392047386709337166058247802648403223712039093426406282599510820940618826102967090787943457910778628010890625253885051479627073751895145798979921441081342273794622858862443694000296805905462477026655094756392423024436004067689303894889039085300697008149738655637593330642590319336960217530595730751692705737533356238657301779599501558771171048517228974311895703793830209752966660607491354735001909114749922500609082559682239527978795405330326215200674286463770925097291865183223338643953771530937769772560143968150993917363206134722979199393721062294957763445776704736195899766825267963998550582024491885208620119903612394842367451649582290588596837118423171618193916875108467604952610964332405756212212606631967526098719573604419664741082478342633105783133850982246668813325158678331211486923196929413975664282853675720873018824649080330177414949594563751901409249593775355229194754956692856887033121091091851056504966840560609949723719633857538503899283183345650393597027024735858571784211747574892735780266071210520039529815962111214380714303405809889987235921002259400419515126900906855844920672989485322045316329608294143202582895898053944901833279814712385648698702921817655334111513145699489883419891156671915359851356674540629632301782679877014986730844668713452944472060710309547192300092116081563425821524523147165474431478557724649753207866544318164405881564622117029427749927846233076260422570104409904390200037283042779595906023175639881969121320221719706654973171002721274466711279491832999986038413043754332313542678501256848417814995717122206178055752967214943091202683942298098675796731983685524738309654644963638094582856254947270479856856071321978678589379147645626673986518592365425373425004428445696028289486285469232323095229066745816853793380016278827092159018851640582632055152791740159675126320425868996067527866320943238154710582133773877412924049848970695959008213492693683999700390750256967251439530166663926813069576391433067388522974460582888197943358465184461395763099413692368758038038092523592880936946686179993627972937619399219234741146961925357359844767710144623779762595372135487229509874290949226245854776130341089888464546281986896011203247410857483332588803757104427723403379491171577757271276441534926208991953288359032313644342243151311709659506305569369301842456909603887668588770097206307085394054812289696412802281719811869668253473496363706423633899039701023721688668208893393360053071548507725532931249048593261685585832021201607485611262835058274110458410262759302863292998317273982092498186269929587387017273963376766567189868212325937080981499195095661195869267867178687477265516166611458428417786283165909912647280333363892975457574183101598400120142040605942599964695571449779642196057553221209512028074555628387977496577065546460965894364717587173729803999558878278115921196103793777716661571193065547138275833196630770007941481383386233169673124675936512503676949079976787912233013596660302301973473465040722150760027711830088517319387811238550380708509860233315785155501517231483060941507070736150301260823102712461095682732260427974662122720308576191472222586655328528029875889898420187090163428743594711290629811167314440904440985541358412537275842346702638878923427124585945670798143144607247612241449729620085956548592810852180239351870834485643760658852827148408131278306218443456998829521411885906621042104235517697079768217630630619760076604423922800372236302198171283181555698291489587092163880783410914192332648074979048774310543920054556385503677563461253381831602044526618277973611870870947288453934038104428398972517881093383913737981631251812375206088492210444644482481189360420378253664688687201281616166499105100963116421252818306326276872950853029847128652337100522569480323123094651863741439131358351528199391561169349858091282947792578098264132377706650555122810902942396419795805175741566417439187391147153012467673261776040926528917583990203142894639470216956205875946285055618843578364559164435159464675075335831073937737422167499319534514992064962494791482442252351645418224662598838713377147182571427515020977997733740646511051187922314432169324860090343188748794394757023053296283650271053677299446327509778170453679121319072251246548233287199618148440129007456760804607068223968128509775144134950670964378409279373193235050888556333496255626784811131227246234880075067568569502089488974470255945188375963394782574215259780590465980464205858878267493285353320942554890388317100421364347877962546337111431184674383436961203198344645816739844167917992655049704436282215768866261168567787628232971995587989718146470642407173270586944465030955692876251382513931954169096061212562145303751653506869522215150221655299162402439233471529495734915348859855747910622114240715378608751151737725414703481510311545866625370107969157426006055485068403533273724170807172565141626438452812092268768319689271462360329935400095618371991375681562675566241864986700442941222316852125041249925947425820553986598235852253952147223196321671583443218169878041735445228008410709026192291465912948780837940491603153873813086876055655784200299501622730848097620449655070219164389891738679270035722819838997545155129829011568271942873217306187586119669553039461476087437935507856934075048421466266415237356930704016812267039837523672886197420770236436457800316123692063550720735784083343169503042758233491461972790857252191344378716830546699327755732470290140911367414824857803331421188963803012479866676253526253314592822594695049091477585475756523074505036803690514351206937937216338943254747926837732073782449715440811140242729806009556988269024408729350498119670180228467486804197227545243097510312893794656733829973729604412208908370836505834641761671096261209414422717556441427359427493758658841303811384127756366263855858720675348399742573778458750325172644329196070001408906010696068036156558746177444657211841261709549505834139054941178120870488255985661273619832777581962697146756972582255756936107552445091242018939725411049553376223900356606947358641637817120807029834573366223222424800623866209046549637095584524688661801724924937777067864419371275965956830013394935784995485122578765868384253911076956319839749203726584806929840536794422904037136200954569741179473789675713168467729238273438831353927535745592153929862685890539356973657224428958978802432302846709388944988418874616325134957986201232342777650947928966258037963017201414138168245608929064045067805362589818071990485522133545449562936029540646103603591794457046313125680079384638459012477981800649930934636542041156413027085805608583265337180397501649537470310401639577236972397134505323580006587668193524134928616885806772115898350202079209190582749806620875213867343306899718276801035224244596525620243767923892857593763896241494682509519863150806440671998459561196797852624298926590011467348767891877723693164400503375509977201813506238742804188408571179417423060573866874442500492688847150800717842032932468095810891774377898654889697514041561966485186055739314363771356189203569474038113650344040403660935427509523142194687148542015253413739217061311791796580150908179867473636120344803335735597466751105259822257496802443111464741969895810941389140366113163131799594499280181987173790543746939771732075283153083091132961819473171960186630673588628434138282268139420862045311467882523862601287355661640079269841733902891595982017200680362698468323360612919334578344522283157179796680533893566366919572070888293791447033136865393559939202871540155026502557291474924573856592866426304914474034408879309972340557511542922966170428480299803963878498160985944290932247106399795875782663804770308310589995034550438026488710897217600549135575671296808906253669178101744250856864261127976686919206446063764366666701883854100995342094087240361266668357377410560302206342714193566629882961101971762570521033009008023286131640245583402758351698972930230608677902239354777328167294110847160073604881095643244977600940417884537104774487959522634859106038203643665444038906070983743531116035663654598827826483095146848358505716047134745654875218938158356940464126989695033494645424396510063943361465899512849074694562920964671513299595497145308766146606840969897247008133178172947088378639597279662201858471012447868469057639498391069937552353218346790026192796638858782910901495954058788129479630053776499457021065629610321278519224998296494435562567411196357506449215878691343900056227106551019999524190271128851376463104391047725619131136791889777317669782994412586725605653459498148936530853005343654362812048343888110416926417120270480495115933343130645460994753329541553814047724457124160492682098201804050522544451506827194695657466662210250624772849744517263084921485536411660136395446766667422301535314684871691230406105471778999272707572453844049150618856386199612008108052322166359263120602750277867143975698169018926625212747921832089897653121565831769894934634974976935487367974090273691110454307931855231712074479318921118409659472506275764518397016275207916604939272946637996653356968542449942401141205795184498092184455089981944563661415838535130528434521896761761952918559089222691196367732523306588772214277187272774141669758954726230178340652604739052891061291317841397405431388467686994464194063779323132849677420312542678955705278286783315241182594446412534404416303129493936049936032603606827453432927660000469149462383556343164167683150779830416594250258640190912808554216190000759555892494273050175061852630043284991155376427507878352969493755409565128643414140692464860186844708841577533315125423148393045182487453812988932569510300949700730355097525214775408907020497540873027029957967757448747475637279779965318000404497307271245768268489167219659065621076690606267669673585035224784751727789035661850091125341055050118920737983680759861294784120467930582126017888639801685948023884337103228655325669434501657831727653435601827608739801178062889342749929354620540157941816517517065144525147691526178414489650219837418050739895164569400725904985075360420020997738953624586681646443653104078035697304262412759763635816819180024591461580383915132212812979299051435018611899273468795970896890307716176901588189464502468385787199506962925962840137753229551490919309527394804876929195629528952070101164469285384224480839709069535593501292875522330625894351341971417045735560862229147806053927203302877677115163504896654014239276266376799079887594545344868283908321143438501022439428090099970779900920230392747204478786911131874816091622534484117146756420726709871735296197493545004808872894581368576584553739668408105468812757653576555393813808446127707813962207435626322378491147167676301480053656850922618093375458528452671268940338345160550430324301507575667798681477675845485283092443316393136483794740407646847612737689951665426605383660729264367769205214129975636856482577121304342987921835358567407806913418480168167112520133783799598404720955084820584214182305741667539305421097181539912530849984211493950508886518854721002434515563901510238585669423633131572093116806535976481141779852969427729079380709226819335985881008250579067314948184670308587295073824028806614656481438870402583965092034192717636553134155048672391363675347488714660765521531653555044793668489705473608618316523479863807837262649631212835109251354563919838004112170291261881462429667768135734189997826859339815140185327550375118028130470986914285636128745477449235269965635515296093071024708772965334901507943203835466529519045844226992679166643632033793837377856720989113015428278634240496019263056603752184509367064989982489337291677957709647902439100854066519630454125570504678341849081927188433792870875781059937270942646015690435644807188292509424037419407655057454394611046411863731478034262058528554486542855827156224360937176399161121047311900070501178181189714664269350155058391974410394700713062104060495279618515419740305018765667110206141055496461851076054378671663472495938503708253396922644564239430605930320191251872969161494296902270756331425275860537786976940739005668223482061732316975974680093418915303124751279310660428039868607553696212822333768499359556253391397784870365803011934648692350460600453656474314890109821341593564036077440408711659427071195746578664275319302878508337511929632822415114133531742055962344353361033585916186675021281131513780284392139523017428596632016278573760394775317394391072525296779637871954311063974431867651738621673190469096964110353912174475359387760944667301400537383409515025896734576873878917427780810637503648527153088524018002301179844053611315740734872716675067587875824114448823758254572333248254903304743112520020480773623111166045020700596179290066990421871197861889130985602237169289405067665504877189090472642435422187470125383738176010915993408980797338580153943950343149554233582159600050891874657514570594476324837221453406027855748425737811857248985669821261344180082452460375272437413145421077017333394313634303853816938467973107802697721069726129672515882565811218173657868274792364175228781194127102026935343872922085612629102310353634208455049032364797064900274429559081172634586493775632564849937442683041703008006003352428276616979095361353820359601632678375770039938980245625602059493773738701707018691655128647807662145103997670219794087694345593343625234896445130404971575704794351281407709932875064323254822776151625724639567605986497094881545318408439287620304953071903995403366025332421175807401821782527937660728721107029163344929850115594459199970155160483095354889959328995466516736885866793413016800698385403520100472031850388203411923367721579819346776651249454885296990260164390138400182335749563363135338491176306183353403379534673842301587409675148184826127623166952515031611951178609943201878364444031090405165368995738237922287775440390559317467568821919470613035924919245330930830501191363769342801514884817798687586433371509331556820756130970876605082393847265387382757509234173631382874068216752770852459399482895130864986171171899939965988676743078936801613030698888060901556413415115002584924871033689307575094723305591385897731819945904558368163646104139678906560648360832042591613844747635402051578153662951683596643586288897162075284952941692199584207703074244504872978126036362178264315716695393525380476186386566598121278248450849570313845945438244784272291002671810598214786335342271363342448424035788821986065941284860808229505592259482608910041865318676454675715982878732042534386515320317158473683677369637617814308050949769930547204169524018985307843283931711238043270757569412969902937381857519818907391736903861776727658567990060835145068590857040335506838597540228328555538501971216424486208343326489016911680661043253158903968846511936886642118310174052868422854776915690253111801750871255709849435613079537689659006049584140683222100224370694409890855510563359688208879902332369574215630356063207459097293420686180550413410063961053360653557376860384503271951677370635893753096634779203833029258491344888258270940742315508033442311733487329339928523909096134270239468691165308285359197122643513468111066959573939926563244609786031193179563298544402376191240003067664092610561282675297974126217193931987779094033043777388310814306130949969401798059406761099901556121166849896225973312478348317098156416779840127131134676834693783527413810169795054647568269506483467878710900993932910042891285632749695547051843572424797772427794713975266139147743807013931794782254844588440259507548271512505377944064294997437923647443759712439048565806663062955028726276369436821414791294680923129771046135577665961255551945913962898537046911849820253415957626025898581545513145910440993243650517607785877765465942284246006081955378661833980459328723434101006859323782269834865805997600925052305543228816370128392832251347119289827363493916761630181490774438730387412902126445343726379243896253843114880982664363739728302322217629316773716586352221576377762790994643528193434381929191620298063959376158985413174057905117463345508708844462498485676476532624700149207834585755550374641567787794922628419172187288882651284584339095818964910068366172682542177180658098654131340667021476564374991287443703318608430715122328218013258198928961509207464168688262639710956666228938936996193645093163176476361989508882437143660314315735081655059881746919835695056782723265430406646519002289246381059763050824472539917516509230981676612070095864311100222359970614890472061661524154506794949289072604566409076993757024768460811441700668597123438370547572096351179562030275495328518579021888048790312975131199809596060317760524162185337217892416707281790913971619553264418100050655073118786015920927776273565008078977761711393971767031913763925207088068102251886727861798266219155787600678111408379462655487083368492080498816058367955966811773103748309392075205094329376751030518662844364806499838083891876067917078961695623639974423698300152622608841052182972777410181791336847933046514933745823432934509696869929443268751084664110408873865442770203848101497245112647880411547036427672903538043322238527143008341721836540288227842700255485957117263471093379881193135644262812746474316760139247483371828182503769611085975083448707559792991922435843144164428067640072850265389990727468289530653572507692471022042975066112525508734310358699239857346717360905880086523658862048653851876476704666891068885267295850179958762474196288435485719656812845147962378492198002149291321040199447174369546408960059282096854241014154455833649242235318402515564234351833499230547620076852198940432851238290701262437712523800069282586608863322925885029756639125066634923128355097513398579246106094181669937403051104147221393428543547693588304174666012418586326626053137276344130465958518450468393546619505933929621191080264279281910674045504286252664501610356672298626683890417631767761829128718201467435716050766594077361580334325389873903485445564788785863662770466630666222859238695629723202115611506168033881751305815214155731145280645664879874623126667896379671182872941891543661705923074762756873985536055536884358584364053683666185970417002190640629664311638207229920323045660291639260282297002285887663752774055393421693567696444425522413000474661990355346435382476665296381868667899910934246528245253706363773708875143766277983729011680876522206238443952585734771753452281458128077144685644980233052887819625407011210139980870591743844596680430498062730912797541679435322453449405296027909680744260488352531902821643703319193291685615056230901754878267465830158816465584390126746149176347301793034161044812407331955112279746124679306111553171954776158615665914449034147781803208245458267699590539208800597609546558250107443000184967680807484740712729649335443718260462467978584153191441185002993417692364879335670941762236536993915739518237283798031745285033767762050625094413573820396422874513225112930486021092830904449068792002294352275061684392712790697840183516486937117885535456807532692990215733304481861628964235801772664354945022713849276034075386297405038643620999384386017157991830266941816245166918529250523909723267867444096003814495458732997012747834503961831973955423721406035335144565179562583059481958551449716208972740009060427747019878770899413109899507886487012682452518422921197693352408288772345007383167285654035125035825549961057115048031885121083879845971683715236455376652885515683762071503998956824488766621472300089976729721101964245341703208089053826018250461117368975285582792442079674420066886707069754372499719673291362029875910704703372175173227421174059382887102246650636451145000011669017873959792189073733919308664092806628227460738044074938542970079037656497468936306804454012575985542361451386707415133445749149686706515966454488993722916745839657187366456345407408055738941189237832495234785750287095516321623955008195060534640000335325310237969756501622737723903695850190931297128729714075838299683761574466926178947332829545782823817857642114011389593069699622438085700413711967825251861209304196765927953630535757705877136016711296609935905359309381942980542147256834447654471541543733331295811765176079182978119053268208569767565677316270897849917577955936334551119689761187395834259298796000461833074677890766977617191183459679803221100241033022939585534097519548950909506232644852161509631742141738336172714282127040943529565541786607895366546386547707756650093523305728593161569099217375115093637979800856334011601810131176452779746278823485307165602272006646062085407678460548237149648349357749455844681866585030660836128262568816074920739180060903731292802870240804133616370075497679232425696022065578860586665727764467442633376744157753249131682460185950413336224211726745382415782486766557366803703590767162216618122948389150452275999688886180026859229160787502822346730732156344406380502018889816692665455806742921669159435196525875108227435698974807944637191757487683671474341398558312453639700005496436874391511023349924116298790041752545762939061634384269888207541139339003424824138654230651291377371271753181122437396354827607048019028047854133194821066136147911291904269023033620371475091939185326372448724027712437630323336398929867528387244607801566659787549478181245618597773538405412732788252420150737384854640817037665856324136270210466208125018240477999596831406760141956715352845783653592189618931713218383450639797395766163818817360613599915630691596702248344032937021188281287525961258753287373798367523431865806621672225895133590613117848244248359597526899720419088528486070167888188949345338004838875708950355025456863534080332344162097973266913799328146596944438566343966027548465367764112793942451827304154309025003731386188503738862086657209220861589060982541046110200987147676981996234829404326400727314270156175686867176248882334532180663377591464739237502276873723943820020857708245850444170324415375306794080908677507729417922205897822266550754887404281856813631968345039719429201879749582913873449608943865570482783666001127435991131756673572170080393862750624783694649758496170723909637767508389249061583370823240976815972047824070303523132491985007056039286367844881446310958230595207760178543443442325832800526125244618973507571257631137543827821211523936814903419546709028385752714046456399486539458700230034131744794867558095501883025549114425588113284119901415305244751128904727738468094357415723522414108780773081238055819072474710078198247486866998587687813477829018238529534401395272870703150551397965042814033344346312073504114424305580320729345778588844805651389100653073187872903262236632393838012371453759564701307656881347603843054495367897080683586603380760405334241265851961080906869736915336707773681945387590629325010986607484713857800775363170495929350485806904791938047727588558134624001394316650242519925963772107936238719237766264917077959362980218402833933268539279466579928960239463679017444817708941582135011690722556553236323994162845728719191208463074018161483659216309307221254798042293853808066333674289004746036139732846159829800376009779560335598964347236811697859614250291577366828316427491108927461527446595294664750794044483050865264106251708535351694852748013272577583228857697745132160338940880812797128535700515419432289921205128955404131866889350014722927120531850468979576306875450648607240672306906452414666202255944916908441239675241317604752936202688746774596816942356822138052781871391677293022051743824449438569488928504206296118811809317373369543543578765120441447646593372534856914871038771813766333140281951432447265499146265921917840704970175848701376114125892571028558834869918037441676601551851466484857457078954750269977909151022927923699310401652429695899177747661749068489974802710354666518631052834665316326898972303098962715484205229350977640844570682394028702514392697073313378716106058560589877496078895233218348004861729219975251943294802340736427065757533510002272694063833693781785794855687985889636412870071771911229608010743493619951843772833632478560540550929480218453616713137652818558759460790262624785819078281782987653635641057619926531636727319231406704510231421921943478177700282799597140733232508992450270804144092409368705770377825342173596807711221568793121392892404301579362902180336197669545649507402174128099775529335917077098361311589434376982895313648936646255849221436985451675207559209949509370971951086623719165979545571924984672730247253386786846850985264548484268978667703883665482285916582590660949676122426050544696388972548396599476817328935780711926305959415024417578582183449756669108682646098443706882476753174733383214785858561673554574135765138599207479168184821420437618466915586345160207569045984427063441319964916178682993044889841060455265306212477828665474574364441990408141208274904642422314316554918079829201198598997325282935097819540994468225948075933897566047692397421150751083524479727592133805831497979027701620485467276863416375166345998942464988011555663268136870637739906868890180402240239332613103884889575017819329434664802172199687349514823091020551922864150243717574156618464969615942503270086908235192309152888377828762323075563845498365477629999383767462791189975256944483002861262784573504959651588890415567751977176186545229094487360817397588489227073847506431489809928255633050831175360874366500227377039312215852764179552211164358950307138746405966964267332593574823654429883659825650456407025371380816557985228116366572149671305051629149860644438088875910092980048223400321889546350324885595614301741236912457115666994736156337394482320424255397691684046755342005743843886423903272567745415092093596822855112071226629866104147061573074533067459494821196981127739549157379766628352360518949282038737403562309949723859979328377540295228283709108107862301587547774943959830030461095103385441459927944412868777770225065566434421460277244026204690594219670582356587551864816385119340895816297941219518797969485210392640168847018740572689551368245734358915042241747383667434358954651203458061146647260312720626212054207853341583953435734616495398141624255132490691289430253989043236643223942496186701349912573454261813262398943756658573645702500068519085968906091094422463261022654114219499975034880087262564789437913340483536395639070786427712365308059191696903064697163330724018300723077806147706432628925466480289254791749814613529752821545517175910971448957007963546159454989201102507712896969060392021474767536741752841456834130625937493125465479905739005978319661385307914921499736848045668272550173120041378276818065071748286740579050319907193461483706390705720890686522774675100004087538606445324359751801362944071710578472258095812087289353864897466506224720444369752406660911297135949598483945221813834839008244526580040721040357644644373572417234037859189663746068376137304499388959827838190515884378613874859745626290631180918693713993896327151017752648283539099789189567332201928543280988810138360815742152763291266780303016284313687337267100355186988381137702155165152125702412160834480040394918925880460305357415169936429184400454132646811629520656869212106005037445197286657382865823681268308674821582769427430465227679137797045481550351237767702933937446897524133005526630608539342081351793307712977287213261846830012067661875719853672958401147052861092681539147976684193028596100451699462508297657468666440053004001136057393692111890268424197983935976027426271094815859601533224485210957716374654315230705103069530907909479020008364494319909053574020370124745507602166937661292888220833302459546748648816788645324036547624113789108090606398145963011331305849461324969138615833398433437811134424786894532171265799167874577988420559944237652067543078464911726640919130392165010272488209206785699351682621367336802227945394727161070054857573333964275559952454268803582171149047435384017439592574936433021745292288122881865961334676002641634016277940289508688264645233092268082141198110142528229848362257601762027851904355507718621860782096699655783086378313820880826602874885326188603138718804603492975450849422159715217118262171573212404428184636481797162012604056330103582972986105035693036340757102521575409391541394197761312730582155966343033069344254422633780760463256345136245050052173429899424237268851767667417620927492487010569301046956598356141787167123546909311817604569654450080640830952501018102385175987547183258605326122766609413401061972950918373933120621632495326475857498654324312004909897685165421890626311812945982023966892484338797721350110726141020264138385301990238511752181827075160584160081266222525837188786628852030232825545739558313680983470972464231088961881394953623632461440123090762715083832666452362305705911087793235664775549826284568796366348935745554336078019303495538774707729395003204798599666220706063648712787133564376150926912777411417750475838517424779390099588126378968917826938917367626698141865369179770831176044085863253366499551596342004674483756557865916395565526477532909637639335072783346746832619244173392193551732048171732448734317900685877470005649802446183168167116910322914735138763440478103318856077191042845416831708796911859993046008964241265424394691089967616686473377610124602522889056937719942332503638716555701592377477374509069387021816540816962043217915058609581531546587223592603270869487126224494206659603242928230699999679866146422373719490811699740826967518974527111528193009647538418766061745029670971987502012399066954267021783377769704808915136455907552360623442733566032175628504029198605735127243756035483556332756361869796155160384438350995450809785710702979029132988260532216761463266441732499508374701386630209445304304294477435994435411161006710869165060903771231177336858614297461021765641464520210802850199533912860361075163415517092301646638031746285219540010184470024120063881104305450862559450551963896536083436171697571121708639948456569348657019871296915197411133105033773309136615412226680676988060695411026349320282735545438585106796222989661273568189067682435555113423755769620074331076383450208463469212803070174914927556346806313477423608626337383407607746537549982511333761465677228898586168059080861108353243259659333368258421166634189126494497397420403356968755900846160885301881774256653664218442977543459408351863041703742032435481451577419699182866840203326130507567701963128448574845870806845123894324132581515532983765686746050539159205080466405230364455884514781955451670216908408477244777402299049225651150653294849318159139787716925102497121650846904453771824171414078419781814263512885024962299550272622353867697967334109558916414484046337099702746041073599464378120778975698066504777079408814277834620341929141415439257879157981903881795875119389942060652638885979626719851148365809450010737118820080014952143274121736784747125293209758678421322459575392281711938994815336393762104919692797590771826003063860555547836314966747953106054623876312306665212126878808801121435434989706606773990855713148164293960948439480970596175100983294933969583224468235547699366709599556945130590288080481811116451793935405527763632722988493481200242439955406101903421699185661262624892444116149242776088166979538419549993268808163868482315311805200205084520899082810703462537286429197559575635536984409857322130124246332800219598012499757102423962686910737676597093707070002586841258853279517742896758475506927442765571693116695045108600156692449485662800300660484141069927612751944420559560823809375075298726922950154896657078543402367982314264266061989656647665621329272636397891295129185523996154060756443087690427369135464629434858455991991885055548722096142102004795563479857550758047171632952350978805708740312973106369494551727864631985390323136272864931250636917859548739509197848267303188160328350615463933297068191301395343852837112694814871451230440022756883000017617724289977221397325419068708699987523363649477158572257745895097903304703330767964057382004276996108370085922419003506803151515369421165314340027220769340505333753808018982163739115915050667596768944417035540195479723396320195723971868409240737662743041395243751687788992321139164692575580019559271808667024958582489383317371600974426012372911781084953585920843967695660239208237830584603214826395228036224657280328118517181337818451498420173574345339389802931525413970284192618724881370288038698664425823900846771453947690518728425076611475632892401157334395849950320254918688341069191864858361383672336382649232410627948056886405718930829825626006920762838110552278747021468196470215662319753475433525664451222716239533274355084766329829257807120312650396862683901404970462447938533508014004063218065279829755584774978018685060276244487619494809643616301499976020426030663314455056527714240644404084642746075685742110625093374038792967828413262147423886361035824687771928432325415751901344561704403423874561595486541266598267700449345218337948163117670524019068151367018232097353367435937921869220319367047632204823994758013155809716893727823352105807281250226483634265998451237647644053552198240896722171240627339433902599298836834821900082672761001775832256538916932253032579765668431749191168462481331354786651840805145499627768718234209305741106149894759174982493586901673081390635690841036968348109695757077886989133342693947885739531847658194685164739700315770997772632423743414816352189960349078806489060225960063987828675280288759406255042363885952291098198969360635067710171460358709157391771396373891544289726389807659112290665350679357513991734107677128641365584812226052426037328497501199088664738086546059232020025821709210449996434985604400273799082293083616350865312890657652663941459605798425858601728950059406318845678953773008932660906640696200123163802499911500658467910879007769386881128406155913459518599350858774089091231398718127954603980251954814153780358366506910827742215657840774878408184387512099148282416387953881864269762150430994616130993152242260252468412810725279695547237670746466726806104651723347422985589005954133413195192899167045811312535377182737353038655351500606846038391552932936593887784517163719490910898050216005458741323290756891369135756631038405114914993764222837929396095581944370694987715398549297490973451507650736243308826425664198876920855038113124925261892099273216575332466029493269797069387614017372351965777236706368095250823643213643893609965098216369457465757307113025243050109811719700874058570160360562569107867970450635308500791866331472903772125972960973445218416470725285668259438871420562793139342951657690409297656667458459518113214452569186530013844669666034312610029335668064135676384995653835764537853116033633232066586494498078584181574101873823532258176817797590900500882131369365296185166202774982385476814429132197321967070833217229381177190177756433617075545026724098896930525062798162245766680349211751554938470984057337974586475672118020280187616522841701903797618243348338367829654894975287607105586738713972345004950387482612585859094781383376310415859343318138362749270357906546814083309356038576288077713059311353892158104637997299080531735250758822295638740293791466123172110202314496038736289766054594490126097554742173069974776869605151003871315264715912985285868860757055227953391882817653900692379714360469598926874003732408097191155911260188697820791751389694880054403969284373467565009327109807071318109986509467624637801427075314760200884668272922903938284124148578219395821856642484800213046148937930632972061746293239267061512081553073127294493471539966332249128971993977692105358717081887830713095881004351136139844996985567793914480296272202689734206740483499240333540275853845143747649240543586313136796016428399186082040611805607773146730433528237036023937596500424270251408392799972408370659585457690957619127955419683299245993667054895582604473787172991207933763772256801483793280420873313278131734262957515920166244885665886759281750101772512938101875807348326466839608676624260696035362044423309881554307497072716046971475572802972722120138085542284451834816204055558687524002187148296380884364215885826749217159052640397628324343321999968632836443753064122702480308609983152658234303180106656185731506165982795221888038454447302283297993172551661933813844274719516535156263813113944266261861641914482099934606895796236531605534346274099522815853177529788341903915264557839695193509891763669410473874848117833897068387335686687732459846549167970819665961867076487114487928650214520463250184895803125521705701473175485355117625124486000990000249650499495905885608798100688332008835757789545136335005221104023968020360862237152534540663755861552873013236190109065717018708930151628754092457587269819479599566466821686542421471836464275360252767077162669894360193005434240955513329666056228533567494564517798047698035493283479392583102930078587928200419145935672980581148927615932596559351563000973644410871503125298552573079203204592724293116613368076998448299909011096180497808155629638225868751254676971817801461229362703507006589206366872930565550767375283282914691484542145932592608854787485370630218100839797944398232224340301716472139923310309882371479004886068493309562396988195140105540389768728530579375709192102492670268417077596516421318081464982625990226593679809603920262822011346516773000626464429999252013305358743874341546630727468506764566368884642225233429675039246916613961090574482727078438068941699596028238265023346703791691598515087521904397156032969902037604416864887841473281999513739750745114867234776528856107742401272263165958611940732926552411206632390458181374799850034043907759111334363223139804596114719352587274595280890733778896900908845403062636096891160816143100476282398762609456366647806063500368656429973806882224665492730268874443658113882183996255212212366020106529414416841957733239206537304119974959077299382803823016078986785307509032296655597458475172472192314809397488476740956880135260895475303195737444763295125857991875209292330056302660495068160244896554967052836747340160184047826362623508706745518340960972257104790388422189355134772455063234210386356695023402598331225946033285701442099211941800436712283284039993547032407750476793860535153250093368997297647550987923111826864060709357613774833772020451657418420446461327650432775792061736339679888907168790502484193330784134989148393078971888154377003910219613958377210405475529431417376733917559121331810110099477821513595717249589230427851127984268470420751663922545051710045384386805956154842057974076425574472004679686678383047728284564043884586780058875819832868535896067467369603370070309405503695684140900912410212974318351151583699010860331012554872463547740198113089083503533827566580626900496911251946379659130761759508738885276764112294185877235783487597916693009016355481362050305196161624142543189213325371857019707856064041751775647901177573568445892622943371282398786060449815250057286013035956929748612190313929334527387826528455633982963404913952415928781746604234903479541799648219155874571534866445078106584421152317126200013221597601240975132132257363518067109236002499360206097348093324822712456309904810377141301654030970161281689920145394160777999445299803968978932709485669757599035101361622170305633381227976654330310993891844504736857870694570646314107099988913061543999286450200924454872028434857240690116854266023911054501393715875219222994543771837961465067526897985253642716463898213725119151469076462241786565523290887216847750586252699460616446818508338328626530518111216619820595911535178471542978764469807973757161690776828014692147732183401311789668667107542241903072249384183411557953180895896582887298942488387302478836088422776450793161271068794988490081927097646210764837901759380160183556092437196412540672133050546039305910251957345974810211831964681212366740904228111632868729201103777589805802893138622812774133959294846352472908596370169831523633018250319315685172199768908269145393199057753196755448546380964905144547492926801800378007136532277515508709733234412311424557164013536392512564433465105057127239089540803188235124275522803203868061492615895708591519779907638529249887757124202423904800299459643803760603755486607832844999422154773428903551720118519180683060467696620035344274557477290800969386939612419702457064126545799151189272461348131648477658087478086689948350867439481620120361087754203445995396104642643344528830211997342599553042158196806689219473653068481297043432262395224146658137938662581087433804210194749496898943206299756473569573546944904793353295919938628436598861638236187411444799442993431340665111173752284449810291466690419878143975078147794105339163988163536173797529994942260238638442439044747318144745806350354407984150689805612638330654247020091832902367750929679896261911083509354398419200841241606820114340127774811627412446371389187198166001475281645372611251387013882021845224147873874910364531913107311364611897695927371047383072371492584200217327609037873425220819951930697641641660311626040231934395779740209343060882769975988936825533145909373520641894340155691386227180279401762587005256640000578994211791864407060578537087628707334296257608247327630865816518297049543900106313086169976031952572495484301291565412530059628274071657504215459475325670473733580480534786002338980041981274633999568676774659099204297324323343070076026206969659898590347663465477928434777398322452957326784621288583980421741546973970162389917538033153236319949543954614548580819015549663431148927693169327848240211569698350940149687691169458258811619056549742002444875829703390341062786532249496544766682596649744308402797241490327605264720897763907396747699703060516709945357398995355910162493111438817007537713319124779436807723427541981555460520813219741171955792441216311375587046877003370199096665917855589075132885465475794149159577362271250319063269595431214967731295037788523785560271246714579047133051834722700732769853584635600837533492071417993472804666019114741845481916631731801143850374752722794359813293905352360157378190152492522370608233609547310746674046770551839279992261669227109281496186410976901563469547622918256348337234064485104022977184057171523961722796373950374248642509171763294554884797962078220367948073363832545980294129251691063550739969091606954634472480737713438945704304736748687404991832980077517994703187887431141633892736821275903713227568975423732581739968865518215797620289045584026003209638922513870748558021039287568918944509708009755102361783035344171212027131121533434627615437595404239055017121076140263621527393197122173621095148955194646042936711132481879183140183266147660403490953454047535911001827631202463163812971817144086988422880663480365021881820300214553506037023714912951637069981522298425453516304703749346297994529280267024241314944528358278435955568430473502347602625501264717809762161635777318927359853631938955932149903843789076264207405386357592938521142955712322712836312659483034603487845122728703670921267958679887767920703553695744974620346450950402860357430660918297125551362554330904518610276489968403675602875530615540417601060804827238278099026414098693355277825049456981511383827836083442643290109256843362368821197521417299325160498620774019232429691938912546363550193251836765867102436559600034855882252263824930436326604975303459273458898692779019630537785450948162377604185956046907704436973981503525052944574901261393660337181671826735049367258411105553613897639825819523102673767061810372746352459565862808725961054517419062026874778433525069385169957124914513340276019437382530673477068313124909439694779852093687724462696302155878334073600849955123831648356578026909366697118981639242173714331977580464986794325426533280383416501662042257950071647163371550520544751967567698159883777550939934989092234165433427835661313918052733280014583700641170378773242858811735534572247967110096577326240611111854028805983400690252951683109044527879129741168923987290117053887071531613015707700893229472313088140795762092330604793108232071521341334088368021697465906963602492886074178656224665952106760674327549443540448693370083467212782300523360085670488962564448124213977163097016455756735230020887975741605239164000043501148146427722012990246031063909747614891251315597327371227893411200878718782395156824164877887944350027853460404759978298373858382916448215372963243070025962558750966348393807401844709944708179665627249127553440639272137927613200078374898290862225454838125877654748452540440013390677736711908848803104273351284517568377605063415962041889893318445298581658077116558553118773787346894833761009212448783901552807095442133191987021722214894049810665459063514945267458050238983267842735665027197196212195764219510959794078673741262648823870290619290472144585156502709178811468135883729384816553891350752494891193445446216867766898803617732525810209757815328146751263636112523662745551159583040349224488185960510611059227749528220026244447515267846094084232671624611973128861504441574890636837312368820216332416496244366766549653458870447703993956364749478958497179088613976776954551753400259739691621884611973118821378657647455299099845605962018815047316785293358498078729367249548103916287362773458840488113064626051426019832571811998397843008879221214946034255813087941900269578182441660138000128367197695357935724969610138263422942593998866302966201978902869356342383052004009472262063388859056466053285378576990766591648242534445879802821013564306249919046246331425150564065778408955815103278701699490472837917281947100174228226361894032508673215147450251254032731661794597686122150180519083921826480564619861914193469620936322416839662094238141134314174088478045081742978946919972519427374384563480318206759347992630380946929218759223864606174273544316549849464982706377244794942402553533012123621473091182827458360796833906372157018348319858142233694188722598740411653536364780915708788801169376488249452412678679148201467369487984821846314393846341698752876257030455472458333684427642503639914093697325196526923659254013949177016849032512055413625992821179940548941618724142365069132495742374192525106599406857432290713763476206699748061965396661906800843115832556477250152657583889758424721503422221905387547407498824734622787422506352551505193602055399079949388804189203941071271663186969994734185090811250593450914484723129354094797252112132573124731476502868799327421071158058075148718828074163420155205516377986165554290890406551288069289243403482389677766000088016440630071844069850333500827590604818169212533682821376077738079814439994780223266259464085537355416840705058662836910026904231972396087125701356388889718246817870699841941847216363013341238537597684563953642879233983852256367860274050363789556880003152333832751457431863546779157100912391521104056721271283294736189939552678101214460048208770690708568285364877919558814804254922386007472628251220517765204134122772137329803080162992531823183765441515369864871036726772698358522870361252513634655864454765200718399837477397991104211994619723960639670658198418114808016704009050700419943349139022385118520272813929770721059773399812466903431544137477489836668206558804879761815516661964987595295436053611809800625250111437373853963332354736830189762854875768150785234825240559487077414175509495455375767316907167291487584938876008683799999926368639295649856530753068412036600652128790893885340743619442546858849187482852220422638347107600147080601735174150168559488708079157363814106997741471842092879022006417536778274199626416463898881167941852041609250503936991275827719484921857008794122162475666033802716241010141909034549815394143686653830157562217064851469375039927134058553198168061967616390134384350682731649784016523557909982508180920636135032583647991183263008866717671418257288942289043398844409823521882153042662471362231553103804016363140429538476808280161075618760352099053377104312109933992341488948884344949596775597450693142799670966788801055609699717677518004186256523992481788415479779073601073762122125475357081805493422601825143395554220931166135080370627943650177300219296721928884648058951828024242959752446851481029315351268658396599244549857286604680655337445203103729041548333993555891567103265647344430268105207669979442994106211592622737757444347762600808240600884548680307097558720950351077353164448787451602021837116553608017536745524143404630773214953528563155077080669471746613370213596980108136984749649039782049545531488236490456698377656836575510101137295223785095680866518217252113287066250019994030936270172809060215000138637596232532219030435002697599316565741953824728076757444175589508297336245618004899483000638858315837423300081763122151808686417735397291091478654471666839149373672834350312309314208697384983887435022806665083692829476256040349815473415014032428166740110468012521651944865138854110761277828691395483920225277336886562172450965099854117642884266367914943071112200204276163244538556166545046966958981378993911489859822784445637787645417181418238781302010881008167066400654402285223468327288083587504677824169444566133475240170818868608384845989537239319603960049582261660290964969035725933814565343418288986900450443816438432004746546051448084139663943363710129547735466832347073358617491249029734157218845410848204511163746977637993733148668996367038460644904728495252983383532601182150971886172069763169425348769966953022005999755331385456117810485079554293733636469445311409543211991277037562566008459116335267418765131992612356799631618634175463229871485720452298463376807064535905507230015870916942352531109468582026832939932787202373293241228930981522586590390502121667267386454420227691248137922210989511828451500413265065319063575606757179964517041071653604627245769785008230922372706436547349247890545682668095189292559994545189403384147391838664204224627220534253325240726424739894189959904753531063109104481282980342818958128381401088070659079304102353417192654564733498582269981621722366679314589178203095731098832313419394633719203376403805955409490026400757670629044543229369720335500390529169700294948039772950576008063220264048454004512612566926405324804203641041178548014440142964897877041249226796561870603642147804933470950652316616242559343671795085707548618116452151533499079889829414335856571612404323028505309059105112200089378321808653200745832011542448471941843505804692799059647935920075979971727961006855454262331126398881745650187690412534987860908041618217740497621667347209148951752653518807293515290209278787514489716017470077285312505368274843501539991805057450804392465834245580435618097874832818784585981835758572699722503512267373765917950327231113064156380957020940300878219075303429248042238768241014570265598633348575792478458248161473161242948286202484235688442109246849470015244252739620825422744308295831850671106517557896062116188912631062724997236927514652262200849533081737775114278478829370114079117632406341880032957387987141680336202054531317605530373423447274480892467435169810899469278896980540556060136677417828971595178786817070098362673221038241531569978238837846211468516340700145827551729597730053545738317318385348143640903372370084907207334038743544737096228736638545319066349785792128800736583602603374462358321386843647400726288093900527600374870267150006421482552168255099058980164105158555002005043994694257967876543936609884550326656893336958750410580811675596957642638732504734920325597619721306320352917952497518095433537615938992477934975081420587675145712035646283538506600302101406839315675141317843046745795308298220074874042343916307426741958055381882729172840046848008588810790238017887256539507647617024825304742919161547120945024672785734734981870104027551559537460334224812485617525217520943924440540205962879188433759843736955922962917413609842468358846392798335447155976589820461398519330016494385212936259872589246451495803325585558017857808543994844620466281455757352637846678359424002007924768415813099657029708611447318682755806591505627516419684966842874927387631203902007966741608500034810825991108536322236676878133958393471757943213490415574055927624970384571874012901174178340545501109476966499203496221965355261359374488641812171798142474759300017251595574043467325380806657985826081223549681556502965501331005127092738139757351711203176305664264105834132574118484371589680635143879854005988981076727304627658353693119904326489391424772901701050112726451001687498051630612171341278088679465053334421495753582155967489554718115503361560859869444105601891923748505074740475707769195275603791851346579304935832312042798511209369657073229446492976611354361909539798077528117957266450207520263826372187392884365301491066815672569414354804435397132697919565410609054987330450683314535624272205939445623100021312746493977327125853641863594802794918073151284276637712249996014016488213347436581476264981665348710149422773577771200449557365804932130964710199055212801745121143037654148676940598289955671951943360413489677937672103400637352111586047535402115433318379938682526015897551793309549432700008957284137839289614360354726857101359412677468105144855665853356584119220079541883552396128248970843485732505616780915312682292822942084023320926303801021172086681553240119633618146170596765036758935281248805109242755424172974624460168141598258112643410512577542286942203027934996920137546160096675542501640829987078474073113710948011184594011663561643998556516808673749325859984195233513729704408335237018990061955414707217197242703025969775546418930537652582625696285441806908599404006819128841672522136142822123679248563716369264342847403010240365452360583451617795609198672502483729449609222924262777591773946777063787630598955765730553982571629520491984013843308195105190688574115367639050999453156287361781393942754531540986006882387678260872350082195542743549306603442468200444801536222601776885407090502982017009083741519453191564780173306611381798984559211457030025248963688613087439020323465184423818914331646365265073957694258321053843320283723348174118399359576919921261831028685498394409317344979516059153197490166664296659519202298445339769653716823551889189065197671149582465765476940364676414554710910962608267753410155965788161157836449598224278763593538621116332154729404150880723986042543518591742537523534084066965608523529702071566939710885733452456381256872838390463957063898409302270485353742844615024977242517945261838741068397334043522503958589649457462282517895767417784222483815641628139807006389026821311861563247609222032599462820120168715165772420217011892604568325162584278598621079271071455076653653169118859776290811621292545955217173661261363116653194703613098749247419803809412026716851498765566061420784740615655474332266552761855182601927398523051411192714024470159654523461290098413907825982972168475233507778888105847963267717791112761774014799153847377988503781346532659718839132144393413732017335302135001933616491114864218828401608269397870911836512992555914558256777787678207623982073296923645596212437012321845577199105993586113258889529662571691144391831752158848317168712595171479947945257963299822732341793522847702590279481723110361264701123473834301526094873610427531351352823254510923924879115392507682055842462596928660840550844688660298815636465184305720697356430915478125897290625672859565593456293116246799745063888973345492334234149462693105339872280852637692516819130600856504260936407515571510633238520568010664954733140288574171050620348661701710729108495101147375573292511188475854220030606832001717354571274868622785279197552371510250514106030671126210316192433322786441093408335271521367837186774108886894090457278741589969384200422367179308133084059475201115853733356263623259696673461865812051256733793760176176239813232381375131909529853534683264110004375804136614399036240719487759181094462070011795623840843140137620538136882585962686348149177793830784056820688863699314816105622083512537079758544080312222581165330831955728284267709888785617858060994277625195889996946762489948327164030763501793502505596069472444055241232726318135556464286102629960237797275315255344539473529692336374140962283553559754812588617682761278734105010588518976879617042452869056995942309656328396325362941545445134566399003819702870301408322887840583838232523910638922283057379455402753443864714665877395517724573518025359988520807436822469936858777049820658178383435611482777155260270363728006205891277244400887607006582935216738156200178602205087524078200195348451618851119521283406521648046490645385235302142489713354514148403369071634575738359802253120252224801901796866025236761056124216779125982197250724501307506626985107285319310260496103223889808854917304946455051908569933215930475120798159012118201586452242917458657281574292338923558225647675714369490049242033556086163261783464288671781491335810959566220990158285494936751227020701978821453597198154733853980366941599368166584711152028675014817765872103647620957171886320180075064578975833110438160716392153215625218736643115696868157494060603768386835670935633376643620328600066253768050255671067970851611285160294853504737990059085058776466076084698439843445841872713309930947580747368999271256037781429473658651972566517791114102449774857901798824041260601458181929753313808631630887714176742328550560366529505657225340091580599179364982178208364491588769003839582734884962142933756868215270628453031433352761506634480317212801322617748771914411584460766070940917332827527267669095194397124370286385657989782436684414700110894392926072941353195793545674928612100166392398700301783813961499109012843947233860973509685794486692461933719498143340614189081558231009709670337592040961758258091382912394553816807582452360377403409691289259326406490674120519752202966888648477914074314799811990277669267116211716310402785119996080867613103949497127785623226480800567473586038729668909371406330997504136000555849876600642030950833899607666725522128437760096980147425865038309784428330973574185487593893498690705215266881334007612821208428186625255278264044082616740778852310217065062946097054695372795800231292033533941436799904769595024852365572009647284998327576093246715173298925526199883989952592622067123635462752519447023769121331990464997684476269288434882780485323075386530861744840977036435861276997640573663677743630670699515511967334521914756660720976234358891594054913311400087345454981542218212732354253505281080940388091308290344713429508182194127376904629858681351557998544643732397337595991075858721400547842436841768746731402728400057205116304634012434999827132195834453345319883321427133940826961375251276962113607159368130362999930170420343276038052391344666403698273071250944415224830710411743443454754865272338184947191864301500045536224366251928832049411336616324572812787273568784655856987607918124516211587810326096021749929886073720346567738751899737657735075615466159336169585951979046053756510083322243184791684989303044570705025661240662592508279856666922507780962950968282690123328212403200279924656200994928620268278047992791550441340506839255991807858045316185275012540380682195241388173407268634312345859727882283106923262016875103834972577579838868824375661978421290769687784561414831301363867810511334452565564527811649902988985705175253591328579307546758568901107981276506402804380096935259740363783487906585092503951247309446233635425693877025803679931822686117639104600883829699473669065027824695021413953256637210280023992898383919270663674351573150642927821991484795168389479827618753398865050043192812649565261633135573085373136679113926775647103098954210842176017762526392715197358992133906707721201830115109963460913601452025338327134282765936911640907684137451171483954822771744144518417360654233771134171209253113394254587277593321459826571360134030489241493269740272816073694667860073231004826604548799978363851996593324487748767042601320489903347311914133925790901247334392837044820160372702188631473349357702556631258219555218531527783287834768896510596242715942750464946029294262110697348986169383345883670574931829580874636965254205651457947468777959820530089169104603686968088844713176638886134815581712394519293829889063236158205867214913351272587982499476315441749841442803758659093501719073865288078410542192379314518228155438617645935169220324258073650127146561931777173314543737602623257719929214791113331668353274505017729683450574982885875991705479657764404863627221494553367876857351731946773661878526869005642886992922043958166022426160993840054925963292268206253410128613581562986030127550811740713768384621039653208144521858016414290885341175891678720791433399068210982860822562652979177154154560708569247147107704980968259009217835810778024157522867177541685785293883095405635236248091933195490333470771619644953057657281468260363008590311174023183233254228099326861315542033965536311615926629918607053322215847334402044812330768216691801787386091483609545475304962761663801917068312728142991656390647330575244627485435876618049575102552995993548827545427943551713182817484529770942247504401076643825599310026290459756935802816841109501447590072636648622378564561975090879609068168310314332362067974147082359508877642060034951274736554521917252497720548513486157354678081957524347637703948905317307705161608884248454340293507496370292490576298613214521466512904648609147300489578633012441420102112731671064868991211134648578688430854282435329481986058066824166118595435952096231931769513113944263575129210741657144456071472806358407815820360744890045272595658307274748392479423907126043893115667745830603133830887091381786174265291125242690103642609030487080999996708456392876323258634216192439329207437494905967380395477935330128193921636901119205524781328808001021542216420726310203623104032125953422362811923809913958632575765357666927283777776185064896211814964900736125571594168055161782560689610259186317933045565136108183492639723299051234622708250584045273702521472146858621983915501091539641976877782527456853419679299193439857093097115008215562376131428901484972034563735234573386313296771289080337345058151570119083441868022682002288535971916492618526204543009894453128333433438644006384042363809991721610398322563747796912507195292055157524861251820418193784366745135784464907750864137607946308870682322748074175269581425306734622277418920659108821294845464329177326017127695195877493935105369396094585233801422502737648124065088317975972743538465068524304683055757372488677230597783900151732123856375977554892530945366222683775665371507101080960351462551835984988171418710229145475198142050494569014131548139020869505593909736112297187320514388579645036651640510561301769297896141804721210828093331704068402698466529572452022956992751098756648986311775711942378032321805898136118265614200405254136703703600414998556960627133234998492507728742544918974345629467295181724687956665332249850201145074412257967713181890774213399239255721096986947914682288238509538766236223658624368252204934650535742431007192603692547207395437439374602222859535597092862196316261983778664584708768642386040076775676621433680470654178286806305782711477021695195452607510189963786389747523109835345820801105786696091061524841662323283126239194626432579356282263566944625062092793309180745824790723683616389853676015177079978070614884862412636811051356886068680440060098777868540478014762262224043772574725957693790843011304120498248277560761465267871797985484232732493302730939293040737561911235453267159026104701994004349819878217591671814953232110735891802686217666128760359127001272343456371305700071846999420448972200410254943053818164274898675418709413981135597346244214638265199986617332094532469046957061843271254242252071091833528823795519977068817566633600107270240184349243903783099588280140188837006046992370977137183152718127843503350731148270789880528167061632805140435628000472320858393715994105222042836026082160450159051426498200940813447854477678000292295008607087215829726650338495262834160392300661509182993816348085711738479051011331181609503491798475175054901963841572466479327728159003012914811271705982105527516278102868772561151165989388390742019811908715958714865685175301866283179492004276962749175104209667415420287247997061212834294634099533158774618093505525708690880567429277335175110431185142129770313114464641828036308719544539352870685128896507576638920602034508078893692906871104861906702338009778625068349999291904609982608666394149038572880592174710215109000556628012936004573133525654036821111888427369193422874787705710822057450686915777701203279592867426633107406780119416296277554146486136335110487818042307467165498273599107807297178226154949862193676896804521290461534655032934400842233924475235157442304833505189020372864085290961554523023861491427228003925875250268061987369537460546474092389921747877823610194484872606102449343070535926840607849276970757352252475102551225813386248024419564956453641485455463808182464006743763039185132308290092838561389906717248560218692258797585239072413539148087602392865931921866589324388671577557300528240529990307241472956068930259997656239990177829115374321547047893296783035701803874316306839845318153358960314403173296110223502736780557817824608413972153877085436106251819254662164522212348987468049589651483720447472409911865067705618489129933435999812291245315933756907627385208722007180096343276883912316245138835579441730472398298238065912953633916028918340195705259515755197985480347000413840036071650424507174230224963618958471058484723014326382326032406852870059491362009055553794547101167766976961963761677756704441144622499901734556717619787789861553006195725612425416336479859691924499997422588522771266969382142783606143123039953822325503763240631077434912155189011248199405795771859460092203748941625423592898341598327507464146805109925657270208076649093082217617798190583429426395702693138883585082228470765883100962661128962262558642690210530653529414447676567639605503104134056517582768946282161035070421829197949337471047018398246152305588904400676871146033711157147670274169885919279571008142610460765551636804889556345085305317659093801770089830832462562542974335906174999280231273922783777865165084654562602923050138718028333603028576017670502888831435945661104036361886533277557742615464871420452507265650125495043895090144741174701496883083131745727174479952469906474317543483936935253420259140261142549944894830503664957406594971370380112005903572659156154208430185016375958232951715513609556463702670929831363278342667581571007232365286009041631262708282255824651437672474899450707426793568080032125992429604321973099506501338886624883934721912145917695834229928126684768588835577244417723000567620671872669236811874702781267191161661498020945723285352217692272006760996600999098748312920435455263164671837256806266008818578702581824230364392351814639107514293901885781951567619473836873473977739456501209047018458128189000094372960111281091267558585843707274025156389572919598777533074260664258535141983729131965288073274706552305737045761160217269581787554271293555635213379300573184452043792121347860831106778217520593056382137164094594563870749273673856863764362926650963941017143662939800047311359458568214373750704604194561754546129951832010900081191324723682749895652839422702024308768274969723652283645067555995606922565792669549894421672531872487511301211885152153223480366460632168771709020892390202935043642125838652286467208432045413926836203144231993474431479089087109060126055107519376284201260644630004734362775413070472944741220939651805146898995293440478682887199730117821122878924772454270369640532510172185815391154367154293250313349721150659646521288636757968373574538183734185127001502774431695247781609253366030867587487252416165820756961049366995671725364179224542836855049917383289186620826319150162712292974956783171718444542527829307279428407560869036305151119944634810667630859893915279940112304215516271860530313732526709513162000957637591814928935626473361107994441808056929791542129633191481948470694312529449849663713114262088018075809311403190505178443651765994154812698444732393416340175889953248327370975526586312603210971452718084738203272061572712909324731985631819183255387077293306796463902397431775888681977716892245642736819700472020783986808913145737399223149934474561432712549167597710146180025587446140672627536414885210443996342407194928309884158216114618989572431858508468698080690643438113908565473678382909183819441650535994130816028528747973249396405165766078921096983446347786006342746851754076377775450213746013590255060397279779425959473961223897897586944329684402684701463556949954260699214318805772610862285028851561661075291080354525942349884333896186208285532076662315490198785511728364574383091885102816574408999664131085777658457681297104826362631663470157741622691872936124499746722916655999264967798997687803783157155098507986738506176114143691002675520343670308066575348441071847394377694894767036446454477961160473370373641786571189054927463599149434042564472729028331293044201086563255638854222983149394847711923929367620882710212354382335711671372494684030541138207393652383634353328495492931173748927060780942421734982443803666218552314900601181457580231747916992365907284009272544231643774450015727947145745810252216626317769951355093001608610385318858477322549658672218845813990132088347419935544080204731031302542011857557161563066926293630200478435517284238627899407818136346987182355423393522201977075620620476579631879642416489229577291900457852899275256099361443556506173578120224457868258190372326352053366216132402077711952474208463954867283134987406738382359109594640949790315585907711021678191478364626505230805170683222769462693740533142127907771859559230415631601252681889758189709849184755490183965869698965583020522159623396152528536296377143653270820487720129076930259270545948631670819313234114195306560726163197874932546978964963303355727666886354522919763999895996748051726852594319702030736021505984298103583783343731653111613955315863251087137680490135530574859007590685446021463456037711757082470204235912124036082095718308752258100491721443564218710392143376176494638328301257989995683150545455495690299730111851056588045750406990964237432156250313925230723970738968381026913171177534864968656997266973402159164181861324355517025664792384832886517373124565097850893029790614142638928074755025956385929986782994756017286656393026712479085408405725452879440876425078821444338699564500169060231635382332386498542583496571736379918526107437967456474038345281601866949400893488456841879209357347024168740439114356162461326271954843568340113369673409955587182245803327265115183026907970117142516687135994379052330806209441744054045721561913806348999729783214670080102137801283942936743157853294187162811691229002069151989436375147679950526594317258712808668050200751090072865525647908424809611485353485985407936265098827062366600350608917872630943126226520261788074986980614791281822926456741903657186971094833756025008473392485937584723103254314057571531314351257715730770742357618550293486773122696551472283949003723036451257896644971002030554798619238084559340263628404514282738975982201649287177650364517796744587802244317254656572493165837309583316721161258853824620250766334795812810787204811295202841796424319756605313999988269626339668254698174201430391115813308624584802303108306436380241928189795703954246910226634587143184200859878583182090245386395624740628529463524551750197269622972467284170298221817379027517339529299049781222226924305372582626122396928021751033493733219488952938579807040087164095184395419108969903120276106391991353916343049804074688184484921706927152753606908582284391560241094413466451826821949843993710480309940884335018275956331241355434837178963339876633909519951623395594741572481161500941811533623457156349219887295253867387951800743810270453132851973498598338219185652265288740430748865777888769765576608203558663814971162239020569825044100276521754459877146156613195701301141311329292612752622631643866271575725210627530802446737152259867338190872675085564989221745489269381055408230075586722191744756877739816384540568280300708181657052771494687133295186410122852510773776887681118424254164813539033401728723558953979526517758961296587801395223145945045940547727146443669055968891567043111934276813380306898468913361080862804356952635904121821942901383263207573095793572425091909355812731634745367009692374241458789566776759903334107525973714563329049078641547530344810163013574312696455065382547697462791499783683473321767066639338517539845341343249994664071096150216908264309097538378281242520235324166018345257828944692699711826526594561960561532785628749411023018520933116333678674541001817237961692735352623755758701824465913528073081536442360138016867964454155947775839960902758349850076825418132015337178077083733253312764656244519258891118176030880468858900619591527669741599117192975905689100441656494937227476284094146458505872945895278010080659366906408102737037936818642027206110128085560033331740170264496319105165587195483851230232798562167691064836958845878408710896257349145098145382605814218257815123038377632636502414558269609831819771898481274253821348848871270735576652641262108048521254280492624907711277640196755482647368428004700420105209326198206649477994354101796246263172997920512844839470743612915882494485070103918992062700821442785386240902138234784559672405945552578587432895761043186109244835470144956170045664300943693450272862520021638805650985364515329344449383056136724118321171272700006887412785572828961993788291067889930556356600773803255138417140454210948297748855053210311932590595074732239719544636694529451229363342712455928815392877171657076320544969349841795243217527497490266441660251763456607325596385620761373052816774512761619641842492956813888563358659446011192163600707334606033594797794899340955493007556801601830831559252031479652811718696007711932641376255115590581203941219461874112908925708315429002413560083494058034193247613910440040346934135859258970778386324829572334587247978494238886307347927832200935779679991381487661543612191547017620221633581243906840153821808825021257980695197448237660577536572782862259816025331281047968328531740909493410312609228123587883972598033300632413631887905854761231102207658357920720509650560280939650893497822420333344255294851401443568455781026946704606012124826690020615287267105428484189730481433635568598816810135060420857086093917424576966790177315401743619068702384500659817197715691092014620722796360088781630122375394088682303653703288490646433882757799333415268083664414101236692360768545699491721499637579229877036485648701106635594685364839726066324439743963117403385754652736071344702447523473458488688857798163664884980312147099712200595996536292854690446034277358207320982070849807337850940449947077330806653686299839124305048263252040239390150219384714601518196253105734690467046807843942033544666048416715773478438588603807606580220344350708600141805971229575752109539211844681953262509079081758628029260046101421780141403328892578305810429752463972123791466132494708982073799285037463215510000263281944085106330588236595626717782307694891059718871606367055757518107510253496630283550523807538546353925166253130521336059599097680971122141372290357976595480416333120709880171337947525276524789691780693706230850292374013847936238445143681123169255605317615017817473351018749017288629719698824985371684359589263585874757715038140194271026303785550308487606031862770823117252241239605483256423325550649430898849409360704750585445482614942897753260635747199331646778576022729370798377439055656144874942863480130588041285522198623538178844496666625537199670615580563913593269675793743298445397965215306371795896953104570850013577855206142236158602339390448372589169911627814632346140151721092855914474188489339169447995675620025666288883557305939242420844965018987688629052262711216586441372075175782314663426372298502447339384628592402111810703538586442227672461943720744995326515578226623655062429407802303179441759545093475688583895311264513009382662714669803857418471616814470356924377459866993850882382731239969474913460154830892040472451904584892342265895103340999461457389081223324318606115348328720815774654095380179150577461288993478111566798779105912658266652034971669857327330128242234458472675291012418650350119712687292075560074308175936887043950320135273729679387637510884439728438196919161386557122250397826847576553496749973480015695940479149124814175194068795940291256895879847368729065330963871887573458445996578213608522084292933618166861051000834855026724241238997212471127791604798643408418520760265391421941264703498270717251438677672130985226845886220702144192036287179756823314701758491118572740618550224399701524264015386987116893861334586982365347624756720504359055725339663326420822372747163276041089930980397905318949014830068005402566474569344848130747734143602678131549935056815161282207228766524726970423370586184680792378488761016765519289430089647365717148554220088796688187027311804162847784721389098291706737707307655436525401555683595065316999673772779542612239263353914605017865943762311004190712971491703276205950647858116949508658914764458130396685265835837130123679344739177352259232767798677234080912921407960735156364177091182865774992411813710829021179949887155248197361394364691234222759367462925487219917148111067640539028246487536705843653499629402789173193928695631082344585706102024417801955369973870332412207437972241439893913887875401372665246309091804710056863265588031866793269898844091950594533104260637851642112604671331284922934328478478263842835840756070853033754716344832685639443022591746706660533529594640009705421756485958340207639738294484836192282196817307054929982787972145808606200915884175157255412599550743735011665383347733322414802685449629346644066155758677518436440565043831882918762828442849930028537103535155628116642056744150169179151735831480364041420018222807872089471233174484781059777978662959789980440568965839337641357485675688928666773776997216776357385655702410428790216672281145674028278301612880762897668754536851373235712948378690326185635622076573241089131058189395348831264066157634579781618664875195329030482428828679756130521655018038050729790860374085286392927021902226960328378554990486572334635397152650912977525379938691758348370135732631613697555172635281907087677041535070111532904221974299590851776606080621202149077911169988513053799497196555061523068620191866458498826359500493449695612283468368992640345439647510929768039935780103559329511618569695421494095616263405646914893708909803623318070651701207642194829770089792318044558308268802512376290242824492553904852849034781086659278630365424847995200299704412533598128990312554182073902518090392697153461241720690817097744380400131463617167596991424940194329036742300844676982201591470203103468738809107126399266925298095958670274033602878098438049817241343327317411192158550587875548459668169619623776180463976335650905744145475817944508332277158096134319899021574595429024891922786266974430504526245777070618211495034207966534206835960408775701096419872585222727156626456732542445550074764894011061536138863468643081927689564047629536915686464995355364316922604557658451415862318346942706825133982130224468059102044514047692110627115812400332025360748849558724423357117591130406838032384908476501057950395570099111206268417952847247417063809932508423268503039288340647343293732867763981994709711960618840257619776994566895352855656450712473479990894703669356381895902137376071598602411676759809763207618371932667142466450342325970608283287112889664722206444563567004039681567473242663023072823058085988921894981473902687982998111394113880930398038003813455514244047802381822844104968497049154524511331223008232324158236305990573972115577904374450775408106133066085362135029385827716756653119940696312533478688649943652491966476306001112747529579006045355985881139020838774835558973854942423184365719397069614808004614423082959083210338036522060130105360174556364689087187995113719528937350870780990775260411582231298456218277081421294804048510115281504176329566149485289558881581518405390134964335003635127841563442877536222224081458172421360417562024564728385069389239767452793123094807640119796688492603559002606983754820143331468540739089294475839437340504269988853148273393257947261375894196580407636560172487016926184232462642537353344515001279769771904808675012466352464518387357815746628387150516962323063067567698409495880422801417068977925937102550115327941751255419052636243459918956318656419739048672456481887901281190683020299811035178564559754652148380326843647081666396183635130454800213712765502653761968298438006552419372635460071764752486143958806303161395508507246245332516523303622323922871712946837886427934436870353685569145735098952707235383173304426336172377781232246911796217358449307470056486797903001203761144646210303554458011311178638070319123940341919926767271412012102301828722328148102544212552262149196963337392100162188113219699657871721436799688384861558454498066107052972541633826357787682464848786798031280565206909614753743954532614678933709348287141686866551817930379111381449332339710865136003498922575646221419244968169161937568423455461872078982529456060363030547650533197501615397099179225165836712694044246374951448480278005185004836302230999607096234030548332032138809109697479357160197345572963378761665242977549894117575973106988952858177803346459482006084484455638614113164722552273692331499557240122158296312043536090273154161606592420312294807852999246867235073307272221083206163615306486056292446545987214922639574363422450597473017403864725441560816782217065599708916308706398182245105049119175770713831628680646332379926061416753707411195796811064077182976664279257386915296203491996936842009315066451902054388965028131038916429404230736375185271044632011001435820527945710662516246094658781669788440007667451566276318288427646132272012363131098604870483010415850840950400178262067399566882359746748322650107746119168899187377680859794579804459225574139493182871484342597834974245902220391472074370991937981634092384243184164966759777582928864846410675318288875700844606485051728577012386139752532075451886171424427966782668157692199396800639066005165046203273534364723421970127692430390195503024213311816939437960516098917563908593304520396611722073802974525112209572642375276746317724121286334261051564050242720227226211577320620331017122088932041785259633796100882622132524411517234126655553397434755999322519867356567120335004227558261880651881172624227972464301338469504452541375579109318634853151405532164187544655808984384757110335300547728995240610177532313892938018038074426784161618745031075864006781548307876009826744044691004891407906402537552113312313897121757100062828139005575450770352957484319713804968721297402579620483354547976718211727943675296392393928943158146791064474803537066399479177485459497242910526408625695226849827217534380893036855596372416500364526642435602919567288759494966011820805293071826645862260571804160941084658268175785108783015260048035300336004438671445947002041435073397098656539748788209489799335662867418513369993672202902212868170471980049980689314664089311056993614005565020690855228834211744647800037001591786506299428873380604845703196950131402951486435230541946384659137645368822949770206841838091403970567042492015091221469773594476941412288705426567947775182616677740456226714456134646969631561051918850308957979056504462724926234625300280186465744173061851205362703071561151705065110266737448364795197426064185905106922743642172772411210161008351131622238965161986707272647129618077385991778077314064881577718910952504422462480832668695571216966160261128116790009475422132464892748798917803310915933514481381904963472857278696341493824342444928537625942898536108202347568049936890176835636936168298223743778323480439733625903097595544046075785407262659402472811686932638701273528975277818905530675671439631842159599792072006878384257708275064270436745389713140609527573476255939376150177655545123683194776427274195289874642556574457115004706955861521591898754849801744510486186824456724482758941669638022841881143623582280509687160112040940162136175477648517338589267788712744659021367669715619058224172721529970558306543993650404868835330199524126199418331090148893890912248633015544275437824209271541309182824290672102369997544017478805598840519032375956563262087768390689514887822500060588738907922983592507656830893833563777301983061592003873357324532242016985373699901757737929727430174874597778516408997778171988530955689963920837729829543980512300015710755922670955798130908138148591700601436415220075910151738196422545941586710844804740952744776699613753116272318789938167067774612420102971401266944475162379721870814195399091898032218805536411444348748102633184438897270145156976254562814677917324511270812463449267193138952988923128760997230416904364856846053981082521979241269956913918062063041311456964523655707069365249544793552708106635928160497943907023984756324819722280614348569887474618196594180491246007109026367271224732222198257535479827139006807564341316925311976063881095435967578614093099194586780192027844883493629138364153821978862303453347922739380285674628687474528273967146341139863960120699101883028400843836282736180681532047248291144301795601483166177150248788521333269915924379469642826172031632236343064853782886387099399291636027374520924780627953895661520690205950384660287563113391967971585699938941775358385730274943451530154282614992933410792018227484301183091728993469140851740624875145931291154392325061471143551265384374717955514888700678413119445744259202345741285142460594514311667788292844720170315378333605763448200817208128537480230945096293660678676085220873651540937378729733908520868856755819314253965595630885638542291167998663396476914758192703895558552022773249616434396668625636264682790121098499161797580850702443621512300888324131428775050997433625644623842162548946063342360762523188023363571240628766698581313640185489700953606099486561067467901968793506361601455502314153440833797073018397911436166975223929839229098712065794757470943850801960391615693780756714960129751275699559106866504251846279672228216336506791165345164756894963814034743055998963127055965758008224024761756064398475969713053873334235223440177109454666989429403927092397029860010173419292010765527933368341019869208932616084816897123026745608774570477120805162792516333956779415548075397798883463864915256150056162139877109757765245365746899541531444402628380796281508249052789317861216971724088085294628400503681508345078363397548199348295034394814944147777016547282889042332246439949029026529336058121614174291387806350591958023693383704310140695138002697889599020918308611457157282481621580172036607084485389520701702396840483995191357605864646840296093552761029312411551321019364066977176645030053468635824682852770631811436744163526619994194887094321956998927096447482349053771507896326621548114451966617203604185391301204669509044872234286605086358420188678475477850857586676974729406715449918292311033430902219096209721282971859930681926669973886581649320837806479869316116941860630970575929735614275608562615632556960258401402378563960993709672947246961282919315857858247261042767407244829610602832067351353154303406119268528377270516784601187160214139003858000413511654419465088684715384387923728850175390693198265085281863325501338205011815543440288432209199978872869497719608403123790835199885748637334881726335393347692865946538214438178236564387761440576999422381397405713818440810707329120574915685303152448799933595343697987394540586278414833954862358446351341897234863004296150474443292529642584517676803931824301094962045606516890152715140640775941472750720010445390798609003159333644383037801252838146527082362732740831831531777994599709249862128015394530805588209706767358056875389632213689606737733292672236586374017796014460495282421751379144704245941797472254030605366872481855196943335926192759368458641354353483718997531186423688002579675661703007426588203807012041601685862448196219237911500970796813451897790351921298100520982186863205015270716681466851174109126774444022257800713992825223936888518741030374755761482268320820331581381385020715817615128578343389674745744684593058487525601206469420605025215300430318959186719090441449733733211524393023936047420750066779787020443724176491089706435727404103264697902426367425498729954659910514546469166324354515642817770059895226957740177166092416188587351258657101124701941348408611549019561013278580606944655822344361300967197199783220740155569331187981046011393924792457595811386417127412774338948022662885118035768860707604038712225237053300913448094250842547020270694157467923106461011282944703807745160569817720898116669344055482711430703591380783596886432845330673765743542798720041187274026129625564627352721213738101667786152826037040792503250324686865662803988190475467747907068634535561489745821284309846265642514405543667825494208943457097162497856931573045533973900872389345012060624667335181851532617999460537634832156705903437386925253044723976899105014850603433047746692231912387186967173539499523065630919581144596789866631669637558333032714346510821891219180912111600573157173447158027862351845131661601643057085349327225019185429978618252233808466192384758425570514277759068298302523030807274551763764798607857272419139116184373164262843654169242536373621406416146210724341844925992611682485792267364357173775394199710875986030101137601405179991506668999514335494541758784166082109566806403545026958334927291239433219092195693534118695577494996271662561754284674079506233545280461499583713095003334711883898340583006199043214170271530381899186262135761496627344140825136839922789654062301616953916257533880961969299565647584426063812335779695572329925942226961493541958259010032248403330492109755814069448651352023256273113607377301347017799594438013985749865514345020536341260443626602742393993364640528340339733905199397560817088856138563789911982061260113438354115984211523742257375654546930923391344042646530597228802722787622242908651881460305285025673448240709714632835840912239044381382680468367143225273047799443211243348673403507379706376132786302077731021879762358167926394315001261399864729528765926448518049108866099799260459654428977932360096666898463856151548918463103120416929226617254072494088484076270490947064049695017431844594708500836785917183389424647839071790273735794135109464238631950636465812524442814819017489539941416253029031476411783526228903990614084325130637645012520564181519536456050059143538858341915698484319400488070047280319308119903916849822708740986682261972802511468211516073485776264058120241349859365452523626779217719970548640999446858020998657616052826138069383519490718623798303142291523007731439567677667782609869564376421288457907773117502918735448221077236301494912559967072729269616719166668958217897130186612609294696769369964812911246097249876212207060882762845960245289662505164069975770200685447910555471622645388227584885968016262711459414224769500645648274278175037898628205931705586992916209239953859367503700730524601957208471719776032440983993656423991972445856340634374133070868621928849071996984332798881637375065649477326009184898507768182187485172017313334367019085812749242374499173975748594461769505849772973492889183254812037651759858570843764707903778693824646034996284417925065167850674596646727797984342006524903717764747442276201045437167500433370173683477476072612323737990520407112195986559845087260725940778065629748963811760920867967046642444043158918601150832842065418421144835744611794630968449992936409627785275712774952248672637446025944580429137893332829084291695453683152242694061145628683502101049346643529075875290006502151505434886064867658132737449794087590340626378911225936461225502244195639548104057764167593368839059041326720482536515088962690265507417984358647486903663795833472898363132123499002334712771928116555525266191358430059894046026718627596154855834985338240960856533624713299166691020797998242187977366516780035430175876784543723084095513436696287521031733149911498751001647815637248340557995018936806783846934170106479284396831107130011971240492914537869860026754326433330691994764783603494381939720071899499407785219475354379689828173589860623514626169996699846664394285332171534914213461525087582443819756823045624697769836546639299633636206256136824402212525505492892314211682694917986590941303185227994837974460624189527629521845288956818311196995404680886988923618597078494692745292606330108789364442062297267035966945197965821194286659997226036361122590181950598234527986323821375949208299660710668089050518825993052339428344953555289591836285133164419903333338569357888877934437605148376891121561464751575602435878905399415637058992976540210290106391871541711840095866133175762231599786676889559074750752127734537496413233713839967423780574963285370517618453349291729104336066054696425530290725395841780416093828614519226639322035647885454908565877691815548291604020149863100882361650511142390431681746578434534338374404661205886352369943401938119308999377700933937560227477369078355543677323103685587570506291381674743840755571367478699974174435428063158589337754065930486356614037924506764454309467946980446109410210940976632295122313955240396574478680304002075301003632480464208780431443632730294868062609730070256059304725106031372781530013048214868372871520151820993168753040798353817709618314768693428205917087363053555742322064020190430693151413419005249638595636144567826576261760717806143026531293823627306760946663375932182078058303257596443885393156348091070975842695768514184067169061815417015062061406215165488572730470377881118580910113488684264827900173215339573357891914390960690353962677501420534472144574662038325332179192101447666373469234490939670754873930327340339817599721051700430251062455011654603313317320645826156345729759764485984402431535190642061667298923643412620690034731286791881913436743094342028827039134899688230836442531855750584484849495223470280731122160532530218042179618609410473235269981572471046571478545048178247852946214742555483827197648842521131885779384049819162697595718683073810130224374702676519982608824220496740713459490890841994844309142234463998180186006370965333857488568547157244100621461889691093990687026964335091981036988465294335817714852672757907540570368708591238220524241570355263161020940329151015167565218895113767218385792397172622241807897897820640682079198574667837577546113125058311440569401396570917935800580818098247534068175531058555887899238351195389290942961696579175657130461483219026369453714273276664793880106563101104448091588812995939365797130145341945844081159990445068759569123120947747251269310095959300969032719653065889291946182985519410412711174616750012509878795641279189965087667170569136538265032435069046961800877269141845645129833052904738999167604699165428175366371030249450978499791876577743983785273310455798620247847823202479843951774186276773356117441080767392588828344856563635996270251373326897053020746946515439346588870133646287582314357007212585262636549248228799781790075278108532415328364723761192525339274077971263330955997815927855942829719706357639033255192564694956301116981737521011031461895165099739503711156062121381343515421151171360116281814261701682969931866226330582102128218918905015953162129054503651166818243301025970101380224123999652398455740790292228620672640470931823119176218950381829662725111255580156420546912728088752921752080341500096940774975319262936711910240827904696168660452736558357526575091824338417678640288730197392867201600708824678104262728819519385586203160457405103527164046539779050760558862018422841506617869892050674253617011688153186991011846336438476526017069481593025975819195868771895308423534566072946285344461380516766781114896918282908125585737933448292888751479966586313832364409688966172274040245480030815889981791797361152608806240678604681332864450094112265906853220418963087957473945285306793446272961554449788770307341797228446417853180517670992621266832555166211250749298540035604331773555970617890144416315986920408629256356529760569605489723989444470215955311398649037967784849364092292691509566672609986027315135037450654419904029321083179382277193863574872477874789740169851860441627978927832285954377288951508504881964447165999892576088214817644085039473613170316411620832977836516595238946533159100883141454743332736536505307914697807032715452323830106898069818585632650625486214268719306822635761500561491338684794910869703922949867248067911451762300397972919928941193689710255412290140124678983159310765543720310566265592876266156251168511102115593900916814206311361706627393471542601219937037768045542724719418829705144033098371001902919971598878266452806833539608663600284593664103312725505775145528794031088231608203896585439858317330439681030141024931612328417973923384937797355318465103713963263669415914060627110784013418754262078264342457276352568768633986378690608130054294368881786535161265721106160693958627535352865136940226810151589898023645163694886064448876793468938577963881180730990030011910225258193466231937412186340861237461991568564464798198086911621651793096080683642590190131653986076410340806827066985319271058219982361152256400315380407407005547878023056761050889908439156493725300413148423165591916886366458716820612985699496891028831084382115452163013279513299449266866631095607349693688094650190390395281413748078751311466693026402148851169684885773563389311695409778916973862760945146336991596420576598312805378016324512953793922491534214179773848331023383169792357735359935398205475355688366551766868226162529415814662378227651142522814228262376310476587789563169671465719849874726929549548413644063524857165996112182647144998512611073337956374861363637372065533586140412574123226531930349833536146178121316237073394229035581997189960788633379190317997619198988350945884404448793089937582845449097628115895283331855231851068582016150350409454279705858727776118837367401317992205260777707745574500942507672529748794579498597445471420729437015428996757419415695397401958943553172770625501544872309342841383450238688468075169360223360365622383934525585287750785808408716608169795929918611873580225081398799307062148444414965439637411973338705739530082787289933998429082193458368066101280681696322862816242880820276091522187546794678670065881526060784433366008560299774086837924851134397951390988093651255947875818146721125654577094674626695197493431388466567972215778196142998178547029173114645745696376899367592361434901702859229141488830452856370167314407866074745819941466905420801994543707961525885186961153210984142926254327223344386811119981734860308813139854370443093375251228392980416325643893221468542311457241665344554499609419553297694426016248969554516223199411171789264307320761766560187709199689902481210684796971458828536121002031901427868110102369567000526803756159360296853413513055480559674054561437747670684066956664982502904334030378635409790360656182767655483220670048973211422594485564116514667557423999347012154487740420457081552276575960767093967862925391089112628869378975518836020380889243936025831339691099660969892114718361665149426887337173097278941083216037984301270467637269100303104257956564516367464753390492763457071709634927958941110262935132793795851899726362118188625049231993627753371613653863738070312271838603000963647378910388779929935227312178143032907419050192113804326616504243168678687428357479840412149224459348831033370106013034093879911057685446832435154369522282990786287571205333593139632377687507001337771979981698799815622385001852867331409491427391763109353483172179382828728325535745865810366931683363166124389723043553656756870444649844323605649809977374919022613275130472211593700690080262010401280576540620758631286855336439020928462344129225938402141966320768772901274035754144182229465371356922652814973628691753924407332643696584982375363520996164136360425497023379708116457358031622419466089384691433693885310218607787729430647335386715863212351057717425653102953110794945852455224976245781419034238064264582881575650432189923344097334598038651945189937535566666097866278700488095399959052171197908342645917293274047544330820050677591794310389539808459500392915050630124249265724297109485467392992420123062292239902733374617306412024038779274177251546652136622361980103123898486469268321483873736088259001346038600945253147645816776848160686843898879644635526576247557667558925938357806251758881114933170754958851739146071381949476410468267897216875668509891357425270454078588551403824033224524711231678866904551069776290345497724996930092810812067082699903874917482527816576321691741502257865925529531696932354607544709936285954696772397373056431286407933899668464666128586872073471940912491799068500139661451222562086749232039297002641266567784409326408747481633927070058734460717147484947945828789409111776076268426704774352882810740059102503164255797280964093539949252363952746867461519673615689145314656230489054454105645921719360467172890427228997937228771406912076490850297646464627555405630105431484445539144536726958473614801914990788220264173401688964548775254570518280206341719998348009637007356601736953082824154479376524800386527276603549716497947437190094506004902862446826642201023331772588971800398449057582446113544992390368270984234515189128518481714310412907223644515790006687852847659550431310439529962079218268822877085420852893898807954317124417654377909564184642209466235060280287162167484688075823128178657462320148607209452961357769693222990435108639219996056762493259809589692090181996477262124783843196545922903955595095657161633216770422097777209462040508895027595039772798894839152098902091235822839073708674163978441420385267273676165580227570103693040378001856175020360640976588936044714932771834240405041018733471662384753583036514914342346283487907036729345876148451249907009062511427655022579980760217663616140432168781255853391452456638991007668428230075980585089822249758607850936255991206653038627439300516746904919231361050039614938064691753946584721658204119314928789289219488485127152644340712268220445889479476986585317939809768703390627188991528272148537235366564039618624541093614280227792287917958624362942444056517467534429408503308105409596740746384755542575425862317626036614280500138694107564187720953380024473213863800439187436644617880629068244484739351567769341881753418277556110597624069661965044712277535774516925026115771515404509194382017252769321082269721991373758681196562171093747186074734015253135790143958883816452708657678380099089137184631517514283144607960562565197451362737399703034338111447819433936769588501948180484586432193590708824543608448968700988672208484640269282858668810188160807792687400815238076153462232449003427158629071553994651630252697789709272284696144000361328705154679418747364219999893372259231263990201171707104297167879769350215819145734356259472904473984987167366809367571460812884789731095540788272751726102899367567668200467923029311191663735303898982575189991422721263606822329530859951994821058751344064550222396651794506670298525521485312842967039976176906478735989266167091127491842018026894516416900838644329313431232732833937031453973996097611531133644788546354172881290316055663208407631343435378673244221099575427835286345168490044037565311715758365821485366624142601678586567014140407266966653175313546027429619824063718283811160020694189801810387247751461483113987721483356977160572576786472192014272333112947245380404978446002437928347044679288034702559625174171112312696587163243960358771626634126409684817170366638702820335999085457697707019364062124140663795763051841953412592691864452660292193215212413986853113906376444225865319190820938456759786293207922016325970996407231490485220709091501506121387528606274852233841898357094272083056085685697226487464116714221748613583885185343535003044786498839981562778116202490086646973346230312971732024584256078502587636600239346512913816761675736081050371082859041040531874638524387246767891459678791878783303888621710713779077585601517230854778889787951353011441543955416637461494425274299666106671708500886992572542706944870258920433099862858471931125954954647461498083196110543140295166818611168947428306445021030261287723638999427192770125560450274921390396731825961984896485989813188052316554079236444798095358497872314182615929966957397725075964189257374438072797218189595063904063127699827493272792971809077418734102804360702704778403481791192751806648033813412332652191570078302660440472873134319444699852942745523627549102024935771767009101788196383447784788913658240569998159676495772168968259459225099004475207883507113883368484361934331799534399286264508056558752725388431219767894622816096266153381606486180643106964584681153284031615786705933857648444357391632441505025812447674634735922177918037031376022192005225634868847330526239517308898157600573618227092992165351555789674076928718856993955515378724498987245136752075663112627414683993847638428551207980738023260869353144108204599473349995442913585978546242208640591635617670537248478531232877671078671813901815101139594829266197517735085669385441128174169974456765167495298621520174482799532854263121454574984654893522429756915239967846856815849014292480438354837642935263296180080953324189709233701576990836828665977002775521217181810849700013925680965846165545289534912138923148599695730115773627122520164785977469841712976499400421153264781056724501593755536424450796477563027798547749167859992954264671254667221275333556335524505460202762554571831745830504895868312434522159345413461475796433890134912359057081096658682109930546542290753818726466358283091196659967033932487908353520593237026927327951727556232936548529914027595453624484742308991813857369388808078781785729906677903520600972049281699815123920326413759034943047638340863249542890638357291856923945019827178674074953684481825670090138922267071318770245961405472573758794131393521783842658718192396204113362884875764881190883470001297089309234381708493333299347576969670058917899181274199244903712199808176713505816105485186529010889730511262406262851445536141716809645127349926207760328123075009415028445161583034965481017019800704163517517867325649020994231900363472472588705548746858930917293362938472135614893785581709676743201160231927822331683768882175286350388877691066307095993637004600120535418090991108480646328818995153339608106531130121861886220908095268484289548560224312024361669937420132882198740076263850693113128726178725122319941299282327165360873212776973959103464572176684839698193664752786246243170780471984381544810279906155786989765022691482224462282973686715429122768519367552071759806948636599597302962381663245521015260460928655709693272208267521702756931677609532593604020512600441230606604739054411074947896735307946308198064472520347326045118543673904335611496086542756616665024311622391051025677158370954603951100761589822092232342224711297219828522479052256094187934339885179905229265924928620695141410096878168622364520984734307455614463683705072304146316729903824213832000339839271822924470036123231937408437226684185211395088142921338508895829076576919867505484839270459867127582280937310529786236359765584838236192764077377458022976358515484896282108210852574365120028158393763703787209873711654783790130869642919682075854791422762044898508172848466089940129226907231835792344542122345974903245587590002706391393085164122940497578363412289694347134605347499383812342238514305338149088825900577036090334597896628560066747390740799893606476401699729872034088851398225926328139742347474468750817933055939831452784427376831269753106289329189154893885479832504415947335059429869417659145094055171571262324427451643189064043618496995158829806003848392719774169678968501720987298312779002732184769530804125628904595287596029589331578887134969531604342634572900246668549251995544652605735516057492615984747527222857480465210234349628923896938607708518624809850418741773412776964556883235469136816779508057003445603088253982930453009388248288294895456718818667431831628003992475439853150624102622643441018867862181219738672407854726743804497066271083061417621555938487899119549689101936684954407541135458795002131491764215650702643785501216982910810546457090926302624680549968824912645652565122257273820111698311235518300414147894849445353172683984703313472575168490254001998474537783265165390408255771828479531108113349534498041007564325246757854385217824130041382672193049923506090261053378159919779505586598617718311914298772303837273067454300096331117830382339486948736841601402266322339180156064659875235817909411959394831666236208154678054197524566176867755150310091390675529681713786417135269186281769698908592268234855186411015633950344926534150698477144974660917998870508245764538431096975320053509348348448117670823231667141613211873509837597405044078549470284613747860371239529976595438202642407173194276451742525696670846103852930729397123338438134652004003682262201179596154900873739732376935635156715097728307975855846010269047417871446859122209667980505001539084143446346626967812425293912103736793574208187550718779539771280477154873164202730129396315070215974900514814310827216813850389800883427539655541806438555152970054882008005676178929284713325538773234911450805393528706800052489461024278630788482109936435397680739592572803010366365839270742027944035470645588370628126908754399284297413101866101267862830766573898791033415860294396189765488837669124463212739315127654386272341191805103086677354022244746804992502897249631611422377626312728052195800631639205126075894253598309035910835234405589850312415151045049728341774922926883066160441489622776661012722040403219774452605797347906300465622578268659832240881076958287623487026000145913957091022358696062559977264891671399548689171796606190757168489388298723649177601560286317061720098348413113319804621052600024723902638211499077664085665692545044491191450195023993770212686843022534766741093278664731822819798952585297128563199202723495678027999631236574509136723545006821292574785953327997314182782534720393816776169201828784467943529012646560289049715099108433648628022277201796014075608912047208008276824674614670106377548724152737360811743538148250300367166080229202412395886927617922061143326638442725272016596596703680573098434215340130889019221292650771552171922532998282248855162588838086759196273574548193910181059774487852608864942863927983481995045605427813295835170763735394754723999602072706192590390470398645957520969123679003362973597548387210129615323973937909208244084611262501336593443352455010159077021572367938762989413480483764386116025151370797771006339178995245561403951884526373836504797163061358373229809491883201086739921960867063272737439407204264159404192946851944101433307413856260969782865458578847043002184225841237896551091092842199064733492652154679970631761703127800829775141302029475928585372369044197621394319661663143261627552814543411533267358462816043910589494452644270301885034977762119967901076566720312243983678853389034361346596112222448196834689225914590733422268213398591560954479011277413258151569656301540986311816988621698633408114281120945198470156957987745612102811787109119457265399576485952999786468917755544122715517163556363786386000350405237428148406334475668503226166676111128107667957497216321047199934009533526253910310994984601334941962373338585164426363863563623573744533142879212179085676640865866123705397090221718831756249169606529604320301779698680350708754554723044038899636671809550960264673407952287400301717588850307922908748724204623220849736350396557124813600381846138298834470439529745236327030712279304038691164525979598063510868660586202046334121019534635690626014932072862296191894172998421883240584066171785132600132893075633887294695003287037813794255346027973924403468158704413036763691614353490076828833630379147989790429709282981037999764235077847305239569015260523737604949660680629049151138505168390389160776925258647978360037403734384457492891871555684347498446144480595085301842232067897074430635727031928724739649071208509677445682688538181491507130543635606077568330451097191137554148151815061408054015089521340624892517423742406924803757108801899476672184662788523689423334442381540752206432813896979666775498639889368824031786302046142718919102863299973179779359812686549745204811921564251878208573638067993500581012065421666916482505381567122642007231536920211968476151421591706986345508067499209667336597648111163041086711799637487361445153825104825176518780999296807995957269096605273622746967653023453546845041491121830369855000838205640626028067659534157489254391035377326579196520515009090572246530875868132088216244672002371885760315795748411926328673525678882237365631553389600601902302602843358562381468230890054946930391465182680745576355485783417578527144704998149935761384615870045350161385811836337792325461919227638944343099639472902604970609739079400028983808448911946189279554593506047026983874132291724557062656605883791786520337566027734490598563636237931430985297048525322801732369540071672831425632184247632527225232267248633858409164744865827784434342702957736788895085153316258999815847956279709931222419158936314740598245893778037500597069278479810383297221589122843921633240374725186920636715043157198791451098575969395844303125221244170200023329718256501696190123426608239294742491029396631077412640195239941923598857491508811015062456768710014302755349389199511070317716469453420332662061726591499361401579845403015452557010001181994967457579890308014451668807747822321287435559382343630492963028541696729212100487902117714162226566868796577545415817586202817815083771368361578055993674291941166835485645958751574840169514052635360687802228845696613420851252677051038180124514207050340491489358816402611011421577776589785629199634082817212578897852041989854534468674860268618860687729919165138674142700490229386112488740768681750215764116395863469933466760664172161195637274232019186528403265721933761158071581112651885846033635681477460288184715045412241477251222160769977382888585839239319265899905238680473706283367731296014442992241305883513189905026231006246329842596760715458977703918568983767235948072969816400543726016646257240415485390300263417150268033364538961817044745761828299057360900111608948400247614064015420272457907146221600958846896221331055538672133740816294387823255672268164634542318229012104202864348720099261350516731102674026804692545545579349865926345467796205315147549530421680782641864531915619858396499998203802197356535577071242039907919128109130476338378826778801166193420766997693837257384901319491271176636303342014743448682441773097286101466267707094083172003582334413162263991434774730959927894643264168964671196718794624110162479970503832372059992348090638444464530311500220142930312760851034824227833368359746499735570669585496442279308640704707599258707282377720869404796661372220527869044371162644527088923637728474166602713271979209809185097792712944528777700271728194078431664014321440223983719922074456388899549566710358894778602482820703050583070707944439207488336501272079101116278374812725311602970461277635769066330925614934110929035413327857264464303282353587791876932981133250345913234717103376001942622549790778450776897036478242984902929172685057268645362651486179844765590983168745148907533301354595105907322485504988737867372406883641208743713111297035988234156542262784542244291684756400304009292257781540262586806591689575211863846138103689598685559822582236261632887835932676496944046796643633766878761300084805072089768185334806249336381937656693066099661080366541662354692326629194921303222680938972933809230765660830443459704559402349281965800569139007325709627671362493894846408410454532093222399878555065244795440846939810597025172787970075965106004002577460301536656762363518299102729355414254401347113408319233341782343322244694120631128583963251228986732270001615758698138653121963919928357478049774815022706183399653369164230364209645828641666654068326968739166605911528952796380376605775667405434791182764894057529465463566047453856713665964266189294800120300754525425994475815440659662395638904531669322918220203325532666092627883478362210071995726551518210404077394921100071647770468803074683014905248732712489209784420773314541625308236576074975055314576996982051897395602199260530891245761134838377739798769118443775115090019755059202425132649965280727592553490934310653548100248269212823057644253876236536739484747574277932962181858619144864614815949654235304967536155514581197266845837037208288569226182042680933069233117885612543321605602407494124585997492669720282403717835436813945842429885933998940028645217030954790534745059247709976666411768259007755572231781923745188171024149565879810833452133309847872578636532289313081603990951757015617149334300303253901548681174151326295795448463542593070357783807070420112049187253597203780370785267862869822795406907082797638115186460864206684879633501361744970646469181865785980083444114800548050288904969379765041301027409179868944620522737558018528236797793519809360326402550064678658267514455281453259918499321657846698281253201340593707450364058003949029388759255243977867773381882175674679843766717957531646598313515530067286288938768350440583001197118480202170054105789101392402400785333592150007421006225465990532810865731397920858818202869310386028041525147979299399552476658655822767144287544921029685979548058877781849891882401627334168219403930671624164446245335064065872248219805538392576057954878373878942223298751621747389937097165484622960270299913540731268194124439482196593293277377416749740576157292461038669681363028013298004948195928025929819712874146942633671067986897459555003307515440146896397138944835029253268707875359019667496803777654569548336159446353608336451156339470622339035322559447883926200707837839644627688295964982707957274790268914320577110580983472098487560729165101292636581543949393721183145526230204899703234788579337758046384234894751208683551454868885893659094290212306317796240352868217743578993636552562952351912490265054277009304272786915152916176102985385098219639569130996739541359612395414737372598647201957165542726569653585998062967167150581518802124664444497614874001954754555504005439860645841000944471264828324534617616235649411453427601714428412382656906367468650211994581477443045357325824867771155374012534067937692335895462998892862481959378647963196306762881255638654693301708894853250243706723721110497215706617638002185678425927645265429659206111664813836141638697914407737597687546011681683514788814681424043305064881157394001193985936085725952141703635656523297634054882004438410049842066332972989590516860060440672630868143441078123656515556797514891231948094385132472373796789986725205081627795465338171977502943927261606942913831205878233193518034201175549709766739458330121639538664460409942270240609250492441933267159885277325693053082235606199762503594488468566040677595832010351865180050162871512112969507346348927731339488725460563234382082661466774288367540070796436795948372259211391537673018388380961388673781046359087090684861621183764691478450918590002046993071896403728001375767045745484864332533703767271429872067583649693258937046135220483589305640453996473395124790448168163660113320845850131483502413499922351821231680493605617947907613629092641867200202417264069065572983398688940276701166169440542694302839240797871095690950472662455656154725420370379280488910318062151085144052711291874539477674313540095120957088413372627063402923062941993971798727536298721907994316758799219828491050367858482712512386918007035643518323510047107896978664570739062972372018421037390430889671311926397252194259785316861987156238264663017795578313384670411709283060416190663466638313328699796290605561567428821965748398588613614615133428363264902459373898929043258095289375105567847951377773972736288209024453372321577557438234870124281972548411817124277743396996409770380706861971341224471418559349677985517175016613641930255940455759910340097753282352879764218650416913852193220210235163680222904022504032912022144112170507573474581058978697243277035423660196125564478023609764698955252066148458314387446913447990803283266024705602545126933659701486238876073906157431413252529179485947687720756277323590625057592240493099115861944459332387901538335761721672314826881056392727545451350068341744641480164962538731249413289671870489035629635056120677562685063760534785519208777686297702794692677183349900003486725339195652101594433946259601757381887644235246829834245882241807851081415713565253149795908507989546101970736312757341023800207181632830412305783436088652174216594815603605707997212147836894964532464509419996676236405478073568462697036701369822359970679154406572818916359262810899556372206461729888019109389720696671975673967242157637890256132526975764754622779212058216512919825982765266921603605334549283044432350317508513224646250000432177445758951385369127544338873918785926091718413793622824337472258689567775663606202915969296866293232986979693107676809163515602936448504218831218160344548354492449213770265362033033930032301398569336020055941242075805614032612966938511686041093473887161203713086933911828159090191237765621060481018634670126366019239736839655902177461516245676604972794102715131259263153481521741622094364463173242117083478170781644564387220626162130817020581740791211002229036896386380043915096559444883301965822201668431580314575373490976208239088664685761730907118712553410111298158972960928060457666467996233902236686158623370449629965863888244666368637894419856197186408300310326149908769582436142106212687897248167490365815900020757058301321737244288769151994443375062441857292319430366647975192645125333093730793863825662944233596998932821369836351636890097373068830504052210701483422252222066157280176624438070352987623135689852274448449930216653664048933326406741713481386111497474462767685296575886647794127418041299140596784938277920582305864534467048390313134857202021741000557304110150297206492832982326464517724763413154092509533864812642272220357588649483111172046356197561970902506187942601240330320119366253946770519939979842561382656836913974437446777757633941644437091286682947723510130865821537145977731867424305336562603075781105936192563247836025080761071163554679614008420162878653049164968154540869914862042669495047435475426017476933278613928567592401583508240342689026955519512681587160710128547651114292917178487125699606901821922009341452806901899954904444899515019313128144580680242764885658471408740407243494911197819419814241090256858949301139746592619533318046596701047152398152570843095796316898350064435186711911575008734039839519701036986582118733336818695131915601422910213564136879839279701343426643871467614633103165739981133258774562454091088975809640799407702498794872586687027776684048706969435474788846705832477599750850692249458353039375834389175351579337208571106348340698589032359506230898589847893182553864406513604431030477366850374701638112463650937579859641129079797726049227681221837463077875677373141205069899081616177887594066004680389850519389900238446401186329608988257720562539368424548868990778604859462041696220983589069712194240868091612622888581646802387071258913795990995267644215422923605662905481077604757416686640220786649308346259602728801927409350755594458644871659398262452321109220691129768905832565777939904448610878893224867281774509838682135809111481523100622303878543168845608684238881110505491552246450080688723423525023636135297929632891240336028503793003564763800179856132164979528805918342433008285533758995402883757346773532313297046764239269537678841155617586715333015018025273107563214196653771746099998673262785434046669560268667852921708700026586532485841501230265443000956629595282143411551934245128356858918442186105684767194125035533546031581087896104574259427100245321701357008327757245078497223503466425720413519898218388039276291460129853259334073920259365886165825191565831438629762184797368668059665796917586930615042139695902963255602230824786061387181763101710268614640471141191329281757520121172785445022154948826538785718814502731644722481214985116881058381349168221245616742885363945567123127159823986851477348611685363625340812186389475815287084227074882630029253911287874068058292051878481262348058650981089571921932771013329336495278035845481717581360012343551363401918774931638949472299530841643673663813364976435128979886197032732534940235607339371247836247957449616390127828681097396007227350642284668710859897140397985799111635894140369234091329739634152325374765409296897967985601826593929418019696890327660537108142110885507604630544106428569063393701463885124384395219425769797291140225510955329593831606835339247847038177184000120821441639752189692190557940498073133830206270392099765794452585761040924243591011922540116972534006162250272198096520187157506323738090128149892026156656053962383467326002505359453835412135646206404954318688439596853581794588433877519655708023144553052461028701664136291274697663248357693878289455033251905780894670536225905099463617303805206434415455579529843317852593348013338221479575227743153294302504066921177376037761856593124797043589751635877420704438446959499251311738829092187644372172675282022705284938115486425063805298691060054160895668818305185542990980247170979824618604570654471083305050104970614347186313064461953208813980863972269218328183452100530989537525047635997190908479072417098074713854595883965937492855918728171652521477661341098496338203759748556364538080901414776701776455167895945324296174571389954732546866938843637561494706741509970456142337935937859716907995103079203317099468418110081581832668784892152389391927093496538322190931124782106521103046210280247962991180722529630384609079876478588646851169578902843708250482110954947531317872948318165732652008181716893918965890249352787409305321132063847402206694383784936596851529559925040454173650904356841840853575248043811266224682394800597532639339526473014035041718530455940673939333477223636610965931817895425452094990298039785180447726227852158945661848652415969346946361658772725998208367964445394756134673521497664265953499835186479677729213814483124381962938322301852416365285609171090239931129822979746311847575865156135428398833856799873633193701269444205048018756839446572531494254208040265803204769263222461226762550843348733747346843564506937020945562611819156480094212172103473251800300331782358398739391261771843868439895920198799689982509556998345593261335395900574646527196364797343619957937241391636124837264113399500944502864986154337515731755876863097594417160518387573099396327246558856897800225855771892568155938985453348304870975732857040401344983086213753078907793732990494782429980823267298801186465710593673497166948112820138096926506838144810780014909931469773903851723096081193139286380196705881282714795265192672922490259702755267873972524249444834268163881613032858147273749384037433370020261727295509117425910424045695850091397819467181859432388621397169180887447778217788134297068836761297105594582503325242446299345790956572523944959310393803968124141125938513846604420438295957520755800454642004684744385684807236362496313797578174563497208477763062888084744064099395580946372865711387084142939934327184001993488940163112460833527086215148856831738122017269063176751095258827980686547793423190052669389428851646880145817482837620671324912183415242288217226735107284014231933339203321377850779869010035286477810810632470115751322114839610190351249405073064691475942235985591601670684750583181009759782365612914241521029808781448728496696146023609039305589192759872456350361611337142754439432904075904300333688223066292070536306221448967131888013670633106415394395355998546781140189009654997747085794194764952477009952019886645992941712556934544150782243510901941402701425178768383332543164493166237254713476234043913718168898916016117027480983966898833650464342227797424731984602402150469871190604180801365646132738248354199763742527070999505735544930077648592627724642848733567790596894274059939298312143998624857437775116345417656819489586418770369839658386876781595431485584293800221093797284204449939719406057552102282969546319124421460891102874801364372867500265148954140011080658013361818679928724010833251493365958471494310065710550562200483522024016019312836812687435345726660103155150239545506858591338442589835915624773569582228774276600941387462826419169795164869532355145729534980556116861960491015657359868821768595690386246344525989038134054356820628930226957132168399658904063137271072789245132193521483603403867722672864895044148664084568156827432669045227531234339431918127295096733384345609904063960288006539293708524368324489821025272976640305718214061781806715174746376716480487494235888979312346942744320009617419144333704032129203379409314090305095164322497804461560375809339722441530360092907408897784521830818515594834131115231896188528145689115221025264500692981920336644720127481928758159554883957818291222351223355345791093686607535247041627327842597423994293817959202739637743765585552648513809310649012157142620034865626150938979531933952397913069671485237238767524672983266657304987247968137236378546271722793162726032291769852042104754611126907663226050909507570017239641335766378301285844631458252183237833676451165790968256153687951116285310781223325939042809957497386947572242655441920532724332049334722984789315269685113578696940572643202326662923350434033053016702734099112029092107533584927302033996305018587950168425432481366625056946641664425980824188768639904323808344490178219966019612410488985078173563777307110464435568056619774263165565563190114000185180252300100511025514708294375355905288199151815245594479567623456930108485973967664444506859770864607112937739531399991109150784665785273341446931878233659769848722147598553258051891190355246991722838596963552941933875020719625663735539721443091912656770371654412715095792691964667762921655773885557718640276967268803429050510976500574729749574044863217072862465273727100117491212005082395714552937727234386871819246706472763660921495056943344603360758255327820401064844088849812065957841511127288895281595207233200284585153571618646075257562351982953352011812084029138575117149301557828951605879535886207006075418012608205602538494467182534013454236703865351950955075693887062947880088071116288445337432084091787441373816436896927023654558664802794212349817730668175677724649023550589870114357311993352585244767174794954432414820143254451282643501583181183357160914241958950657835955046882632640570011270106811583960479041576060228944405541161509013520997615117110219414669586604317432467131782129260743777392151490154435883387981318663802901331425372043312836075052386374244376387306634855605186349971118987398113659700376762500890151837879643551016762847991634105242681027296197269753994380981869528438547188724422542423423551119294647624931172010339666377732759267046330459627541483458975005926237810579570478378464698645406348930752126902858096682158489033127223176720697455716179329288266752455233050904669859663274229110048742727868203393833583141474245392942048012898256029595435790775303273936919625453817513335137786557556853472496771239899254725431040864865916269840940758437927725059099838648556975794414765706913705355343592610692965948211629574579653280603135126415704417300440522530404144207756936333340738866404673141728216719091368491436379779462942248608995601440426291871442923966512699726683861611155724855619359859958238955490259316603458543066725530762772532850655110793029316682656633388563998880410761448758279610048193531271133866537818800865637865977111401801631734780136708674870438133391344013699180608754321890316829385396488851007372985507674093966093980841055857147734915723587306539007948531279128323092372831657634498682047162621353463469258923001739130740433146042332702801937161033063178588355856731224748500626865037865740176562171253660441574575414564962963877009512043217121381575334132971891108253235829383755005293404705644839225643697667362716062647332229021329606514810711519269482011406912869488411640857101326237154770805979717619289051560854943119904519703805945649005293879891473992782713582723088167292252304462711778566264805022874118339736436986678921927368317458372792772790497747816908811936860846515796973958049347795138036797857801575039692466085982673060547219808269440781066088064840422691820355540989734501037164527441162444898235788750536971304550930510444822302229703335357527247565708947038296264916662702825473798374189635482340250908339135929289578760370014985257650440386880192645188806180631267728599634644018450794093281688367796121653317550189648379115569697338955967481040736416314819276084662582607626190777603406510303376444905532405465214062545755740242657110054231622388302531081878722576947939278847025235238780175425458574112226680132104154269977856617945327574318780389693999838435292336756119335308493422970235080815244535321424664514619509176841503654158006031995730929796392654530718760912302204821138454448893649824790281980538569636238395901040657366607748262767562106293889062655545443601068605017808096338754431006936217231853789871617324987844060598255417375528462882688041850565808242541996674828515336596448058724141271310833871964220817350964176321302325662772474375279661207451358446254471199485469819137760119835526648156278715134115619300268664859580683032628212347207306357729785837707519437985218684310731733387847362971545588645872142834174765083214887011986559923624158087807134427572137320104063645029998330618010778828290604121922312142003262111457983855529266430398943048956652428827429665509119374589370858600464600685292679805779630202570003920562403243148189702387284151095753661910069589727861674974363596131097506465249708629180156468680907256839497983486973519847595727857701123508579250450098788502545287212873288260272149715499798056964084418826203864612846594201966373495161324093451503814189901413475668019488109861617486201942591492997290649852064443776588760250949473822598543532476884328059806270056987034540459305759553825443380973928772600873822441208658166117600139951490052523295041495147223833799557980395550006960206075865518236883139784824047890794582547409438258474040935304431762930687688831574216235280687434819199037362436335532637585377791949552334359672403009050296388758817797816273607915704777940771266004638918628441289812644715723525806454289332064199872113826774286230468110203339814068981992403439117761179483297780550194637294565986950522056351711517304220094708006582466524985732763029583636339591031135597833559459422770952442884204312451253546067209726914468587421022175687862202967369428349651664365363747724334433758342800370413074101429977720600393482643094137270850418438642258037566011504001116223531691256486790799590407107281139415069999969807323589691789450876395751061684039208972861042407819062260874992042486009042171734090177471014800340620488622207956501566680455120694684479655781714947520363983617636249784292886690731599474297602900565804087125228083811616345879325599558092650678788950343203944396400562059962125769297488005350995929264030040459088059980925710664084636798618387725516931146966515442348898873836319648046110092921352886556730297918364207737912670264181232637870004974317628203738376067699132133949542388361409976450579009789506792942349103041054635002478198970817218577402034848304488972122931547820127100308873566552340885969687253276867115655790004334201484660327196376921695809487161443551770096574121071675129731445930042788530145867292531715712359709216532481837787093607869386960759595483574405868437672004754412964680249024752275238812267117849773910466475586132196090302844323515890917914572370988324379542104241725299528772243253003668451500945562430225320177045853029481993887819179916714506508161320677914584750778678611478237488493752060473230786008841101815951922157774864825316658707003116734756523875430985170390254507854552143981124838761210172321657282338890724868089186845387758241033168166110927533657843934595580460751365679740202166649675221906431047966255272567165692658320837896885465067410241924689887690940680736911883553429857291041897268715987672658257705441156037336603710248819401948328944269409741825504197301767093391306497176343164712722210584878117402078390437980529313511662859115131278306441358694030198546664188471699266121709814640211250200411639812384709831297055714933798652687462451686305268749740528661889298592919972001881448956192178311423659040741469873783848286954134294061717556451758289441988561854690805248090058726320832489414889599715091190049431727799918359618133370955166373734842521631584572019214076056289697941165182633567467442602294824076596114255435210495262350272850285854741501736836815204788481587146670289132189790928916725989774299330748522453171135119023206628439812069371627454061369960324818682637874672451975964455360995067504831573240154494374537707521367920887146378920495365053774810603682353811332572884795640792830304545264648241298831690567401926527230793531419619516777816807734319174135332300607418524933753575444139863787936469893384966055957771459113216540251166916235307079310781741389581001355452019841780545311968098092981943612094723212510799878479379844421830715721782090889775505161969623646608103636174609351012772488853015877175285842280568147533695292748554908845530158861924423395536390885607262944342995180407589523977558999337213216019311923395179938064378009466136924147051220759709868946784539361744023073845628759060998095602672394620237392222067307841713188687711972516673242196097358017560064304125089810218557988968629603247597977592839004075022575115616254255183617906311418749154633686699199833541922913028815791413853450145004666526495920093897839089921770553728341777372390725742008413611045512116437153358281810269113257649579251759990217975327365545249501072907397864317076863973043209761145628588876890345745428429757606181620275314473409612224224386439077470465971772153222263184975132969213273328590913163650641870036811787775989565099093654330300392556533649440828170983740946270046310724312029602436862333554654596941777921707148836780817013110013745950569277572723342957378813081066870893456793825519887106945504226391295648470631240588068615714634552025164528157303963310938299575128771442230941416834807529311972452245182489447075868969958431140565473257446978666715272674286317746695941012538420767885281435323909051554774898910192474600905343261869155946368843529087390211433634828697315745880676800402473616997499396172509001773159913572135766463825435635356043410224364585650379479020818512310409003651261986797898679047702315704873426236235846253970446548543385488094512813924823185356388647462472752550724197854541384217361009071398119066977124477024969183612559413973747272331951944277076506871176027356043515527678934662784620822245045450842784724511891134270062176209041335254075394887056462455658418343406199430356474718805333683635403639348970497145890729188318015339338623489499518358085181533635542325383957017670677443733725376743648332261326193358537087819718015505440496231211056132239540154959898129726758435082832973915258978156660507798974395367586560140882551725392075849677054813508691226129476646259565154202566939592664709477382701941249508667937956312846283945548613033311334489765161467223675113194956278508300765284098701421181521374762503354371902652957260128908895603325841627264554066747879559924504346288707811905742905831906692910768536209538501902296277045480721223998985638829162392722291884532245328959807408040622271044455403754010276010984323810303345887816817707813497861386304317674848958363684199931709474316780727382210980839600488533591975855584033277661149998179205587552555207000084595417967136611006881400178565318001566158130278555642246567246654578618124262612924652858568938517908645475976311981303657711333844491478775151930402674666009153005305420068688624329813926534537579456397782340674500799804196342992935889737750117370445984324858611627600208822404773166719672444341673249291941833753155764386809545870985221664889265278659090497549913894039789500930879338763138577381942353846883972268012350454159632161619536069768216974596563481611578213919606823586497474539505511232748757241038040443105635394385368398134150642956523745982720130345217385605914060957655469191525218034522815466195783035349388428894337383063743845678914964948627226670082199373484386821655284586913362651657708096055523620975410800372343584596819022292369245587361913745765512312822386876567803923749272931432769626888667112159557881441613369000435094546626540277249883775403498267014114236765594047875568448239917196693919362736486514579884135737985957633787320315614876929724765292129005591807719478847471842139927890896345351478133945415861508930732508651028453211972032430324873508089081874246236383862041567523911033604200621080733707863073793774945319849045299672674878055554895985655830086114606333819488904842131072328422889876934526522912189666499686113007492548287395100683051334775830722085433016661627852530587101915724421810215240225925528547036180121290018798060364483272299517508625498532213808022470536104125972068075787641655335681653084570207237888399989651342386857292360111521631082947777692031152911925337014360414547001386004374032098969391072074087256101479855404538660253866647675336832753350385248615686556308114621301316370370176069846886909781461760727140606450023176442314646333197688039072889154439914133351104469645839949306184525879987336696370889172923906550465020168651153783355098010369895282131258072761599945203308449131108761476124796513575715738614037982315669942536059791147955505459971057577700706621363902098067496452650935772061323321257110143618212135679939255744590693774965621457254888862814176997450314531819896399573366771955614583374603704570781634666246344711643644605842347747354793430352959220413625460849135695821062509824420959130904927194604702610265070736687124389875014676626990101373228435662058348772565859246050256755965013888565558847827726794222557667753188257153130334610769502292348917349116993481000431792051617057240221648638712641717837391702785109363044698095611547379790530659705699700846950567437382437653757433711412054540753441224420176528572201797975256743808684166703818030365788204914622914019506251812438945828638991045024753536090629581758442516548933917339773342061820448257353432195066178011269262883893051492180538941900301377772877753565361578149773865492672436631968625709880343055100154225171669117421553811847569369303864661238866867628576998232443849538332325274028455691244469057526173693628579928589728217616259307051570086353082999715227768149881993673322026750855205510292199343635305054462307862558521531312651159935327614309291196730989671461175220311392533218747473456858778219837536622407937660566379912434641908178021527516916660464679887596849646474922620568803030304705322569530937831135110858436935706960731881227780559202665825044444547831642407482937786722408760280623748961277005982064274077051340348274169309257558386584136717901953168824560249542211454841600915717609579107128731839715154434292056916655003147418489668148113937120002393392996405063639513546590582760455384803066937985182757369203602750946521123853616094594267550955077828399320507185982033000542944419231902342413961354223003726415642399845728014077552591247634360711223386283484669348001424752366407490747673117385918388970523815154936769188689151234375658687826769255228314417242005939002593330694273692226696923546703930767379440682753504397118362148526282669355913181927106861781346246120556487026516956307156614717651908851031620344245341085461696234836105946984784955729103862873766372075958178929637266105708672531206944116901017062261525735560512131845559287838508059624095137211173093259450624741802670220522136933407720613684393316274835970507302105134797961177092177620549941983684516852356809534280137612523516667873250204672655721404207542149278045182186001576000448435447655603314407236540239714281517927454183653492236153946525530394251852189552346862809886208097949449965376768735559995982479886888212932156865426882544104395507726023552940941334528594450856711669351973243059280795260586021400973814553288651005419188983050222093166050824979661578852191312489469716690389400722677743508131641495392302864137041622988001843359301575787126931773766355158588902427335029568233429800207645207299498277388362018841203286863094156191877084989286885314298770076344155070489888258662931788293212517412140690294354565300001163117269904005920351813867856553983880849550725431464840787061577514596601304179457460316211656037076217289578042347267531212290615354760466236840512660008617749982497984532592659042166099370922485864039976839341953634501806721451137565044181509685232094508337822268289134621475978533723205372064674943315451546716274255808238862897146416156307046568167342666453239916707531249638921757035423150462867434842716640390032494590042054124086962663229944378012813588393962236379484165028961529966599642996565663314553814895301387454317048880920219042929337945545552833935464354610918163335453162442583364058615305197049372294346015851256547612900627191141121214733341259962666231597886179926975438673530036789173485175527450798483670379557927856367754536024431350917607999164451011659387725727163495286022540059498117934197065649001493679270323359306482022008033147297852781507420698118080477761925386698845673134992176996776283020685724890282020754492416947340944683334452852726151203638867381409713431264203152745333854164241702278381277656077795349809022800169819912516923885361657189823158902653751971929211012461548275963378665056504351542135742921436941713980747322031413532151647076431561052372539478754021331217111772615131244449742423971486283901856409704322160555508889315353694079590998816137404748664553774675973989143263222910094812997798805314428939239502600709977619162750578501880963009009651271768660242788876234847666932276708894531117833711233837492469967738998554260088579758413207660099219939018722864238359084640415186428626333783953154046920083058903516492476384595806928132169969343565682522362573778477108453251679832839433763821176947217591999244167544709392214942860662606639380324477113428330722647755464498923208908806374185309913639441695385133003175013217825155516895806872576894951220511236689337674054379521980965631268672865630654034766046968918015601475015633380977846558745044186037269836877610148097593015705170808902693259319573308485383587590361313691798438948089617874274500057989167908022392973040440785959606020608155480433381752187080196389088236368057572158747095714636708742452329467191437709412273745526478243502286574677631606026613112439435749226712344588760344587683980426689331452014773164726156349063044730449209307305291529401958600663841322785319998523360133262836104235941091331317034893848288362943082984529129512349525427157124494503861258813737952195413499298350689244486180091142340939833436693856222260548235155066990598113396159655011750780649260705767032186956153161714039646299879312780724956603204120652701929007105312661822015027667022865961781328040348555578503957987069896575110662818574170797250425184569700445738170681710199925276874408849276625709728961568860587291723491167107187685774486185349534493719065459902344287490292397187278877005132215578496199308135539183852908461507313367246829025857568249301846726944172961513415708607226439573128977660274788698051883443398730610879525535218058188424725171447708852759172814649449806268687241643480808975030438372421161361220380412665922108830649197095743712896528869214726283792428656104717628419564318171904172882358147811040706491658254419533207724677138713672218838011608224225333793978894153660801031533790275693422245288417945222457738056006149279173081713783142349824875908066798015490228165894619319764842078721391818040996314396918695171315534158001392406692286084553726303023921674881940857755626147220792167077325412023397309765182895136083355661175956533779651797867334984989454651829144448099370459283141942587187895815220073493991353923450188135562361495542774472852690271192834072453966986268813045498030623185339750165523956428517525400822223065076371728636114960747494900031897952926207383796313974518485320899351318762720781212886142303275430778450322444505796605800424201827029084906918044743424244852281557937619797959556825388069059842775603780034609462337560233564802090374264584975443452858495154332095333741159593840600265122920100026165209553603541830787786656268776175107554368364924280621679466791572919855762375833716464519611647676670994999166632187130818540884346915782771955057044646985696209450168754680664068392944374703995719222627885611060357536138438022659017274002976853890641233627822968352163074804917160766041972857381271714133438292906897771156384878663221845337278330372585272169722005640969111266102058151284744433047071280916533753050721074898064343452066114409596850695293722928151065291968571250685622186436374781629771073099483453541344105482996812913444713850990206357170845590123409353051679330700618009162273761972240877976186559759287661636196930903608827874434691787554743468587132027329382244826419002568697254029103185345585603524629774836783915626760080860000830125194797626097733511650724379729061072350337751914207787142212330985463590167589770217798346826662480523712182048458104330364596824980396837807258015710241392976240527296025817125763619568041348750583879930403404787636940895474032661375084800544715926070595725789925494639265524848362431400288472780389716502473317940150881489778957719890181758833148825921726345427170194360580917012300748247799765068330432622972825871043429930814293926034570948331685249173850366159149231979280106700138719937448391727029439254374737879566723530328769261129375557403013161937101121457278368685030582323657254722459441681117114278563956375804245610534647341966542501225280846592825137988865987637654258450370073547524936534558175179463845152664355909795120454520100975362776047815993414587805452058061666841665908876864713955690560854744874425793508047820493699032006474122365647347610516029153397151270392235938766527713709760130034479105616615542076892262284049570284457442405633853769940873736392664303785803652196462566428895688969406870452410612760564049612918802263602943222426315795567150730836360146726017469967671102443186084948724794450651442412534172154364261848037521398887192834578534755421128234882439167821128213605090172082933723499196644060072547808591856860732188057636347974186279181365898185602146022859989305567173891717100383949539138367416834033879602227092371403609234447053972688479884286102771884793249807326895013156024488320963161491395231217697954271614249676855385252420501663544914912363029739903089783854569742201285685559650843253192302444221572320067941851735427587740339089400192379462818176018921751910242855642346207021876860808148466492391997639016873467833596428852954231947750095749439667015674711945347382789591385540509854765533228963404387668694472702471562043227458938770638317449620360251038107964323117552386752850832443924504437060827776045346715478762937074407345522649910231465452606989209084329745153205097982329864611562430585118717061298459047578705936097742617729620443943191429617443596611876739835834258430718815302556975230130789021271776316144188551141423334235553563184396283392190620607304384944424762498173458008418172983436085270972228375113716095784079106959278416578625823739173095129519317209824448183297721173584358932279582978697418422031703870495488817589476274280254209092853471015536420854645536521939558816878130030714328172811322565616331176287342216171934701172916025592651460325024778354945423769227240992904500174298637285651046047330311449386319688871269013729797509946148325194220238222397628241253551589335479791179806636560622465231741687997618800148182527357476318317948192421610708898982373795475569302172743723522566390821947361856596526008573596199041573012686012037010366454268560042373415979085711590715707819588972566896429673123155806384309423476455140517526275659173588724866567128870544364289442817072910140098446149902024285634487967448719076813482225108361620326671229650725668041001829490247016454241871024406046368346542272217640907419837527743615955830786732154288703488224767827826936198225736892517196125078173599966222598665990602702901977527083992318498157084160282990576163961087960285835294401342709407256740707156668315718491827939197594141296391420916825061855652625737875542504245425660266530228178255135603654734212621856566431718276013471745661400048975569230400956041735485222387933573420148072361237509548094369207997394136543192303637436869455683991813790032384951404785215362481202228629131611592896947900648170783967297736718797568148657627554978680167166968097107293143753536490478452853731874489721468668953399730534075551039707101374122830411055439601988263013738705735283171969470898992072823535832356670838949590447823598423327085532165712281258256666394441228274537757362392825470569616816758424887345246940784119096263497490003850581272715852369401771720449477848851682144071272589709639682367873430407034823930690347621462043817670063996849050073799404001853423330881383258754695259383257680674014689378623990330625626651159060438061477431229056712458793325766965387188656806681762184595946656363509939893925244238889877457146971295064722459440678197024764413666066430340645956306355188623707373720967593789332241269324118140501064550676957937428557255920717313656884058255174346693694766762702116321750627657957587070874398830798054340853968537919077318966871729299574204181841231286554097339898933689713523473926249204689514714937970650045481179213335531491321901868139611750569242998295057919667308455358189803524113969303500491954168448740032583322578648873293691087569390868094357474332223710969917459445209451552962005972338603975915405694022299125977923862320737508629502727580826228134202426557960279011118778274224076364861037942427279711224192058255382059406843655810806040003377094337763132044155346406606158002760636223159620417157233048327633777582416171853117417397821089491477443413448165553124506432201567215594242973927561819711965248308723926309696899907069762588067984611759302471931541028129732212151603022289556534271248434003483672808637678070402655626843552937926823049256737074064343957758165272558784764929287408557902824121268776389747327082562870256746098670137423370386645747065045491027009382739686306650017134872191524115944032419580455210860395489724953001831129312271651221730798279531615795023044953562224337734515267527656014965771329825027723304146144385365196402998358804450849532610260056029473146408061730393599520819174634889194394824277565334510625283250357251831954023359857606092865254572653793985350791620338963272496266713621742549319881690753255265546427260187526533918513498365903603586202224521423400002952081991430554867535399910856316111872050669688897293534466481299773078821574643557070213205204191297349763509408702169653035290065078030960362360653691506840554099562502369398427392404824834456126889296749322120663008537052623005134039060991580110755624307053447039323822755583613735032104179102738641260899270196891411488767519701112272024485686416738948595110177464503107648212416860793563658013613441215225122071462666390124709756161056280266474029835195679319320726929363137820314207120105287284902931502710484978201795899813719036877744166436574321179818461852096484786999750166290002138107313061632500891065798760091868726446489302388145042973635172516542204732933825983851147977515673206089483646953390395686624586025488748220762981811328953451566324774830009310142946093217097397514147190673220259716235541623600945315264729129451663854438387740313060208301506690651571303481115865911976190723515957643764461486987473502793616692736484710822366685580308256479344590953079487639562145056045037959368073877875639338751710374355840630915420947185585454255134539170908904699920406808153892828438725323447263034757372099343728996055271026590979294955740713978486886083608562584773037030796910256216975438609996704138147777965080836448942165009642975923929308387202329304938694091395591145557631837571813214472142276052380064312697434254630696073309312163101264587848838759580066564400840603247038058673982114106866811770103643597496029202426246960950931429964353759375449149256130223923259196772459460778699356723469081759579428220778299158616073357000073319291410881855807347193831151388212694456358936297271543439694335463965108383248108959698991115012376100381196149104146767524887259365009453189185307747874901925713866901809205155580559233683044103233296529682410051566560123375585161288781457873889276800534515471007357749531839631508229055981187157321651665935181721200039466221665520359031863950610005239265031850783864218849430120899793443660457176463111107391860312243683515347885269475010554387857782405354008035740412061434708775280700556872850706964171133758663009690082503486478733624447933408244571966085635524037348173056885569607737148499202752100783707515153126166131593939197362866877486727364932784021317320999181615576311073005830252921818371477842038490037967025864319967829871025962815973699017949408875472389999911598289056962547042537516720334751683651847212299262195938173070517527058970758051371760137912464381770059419608475339303296289497453494940201319961913627259774024476505501000183312421252528861965830641922962978994358769316004986104494500464172916032557325517842492444904292689610985330731679891370443353572309926339002688260377057132813259353971558493844722084481641922461562067009001642480307798018853534629016188126600859215618134110988436522346799119168479011080282834297880158196592971891276539328730724074024572312089448916253571027429184415620475565793338113048481278045193120519195244841596396165327547613742124114249330231596853161831819900358556490849496879945734961987350654691927469176866518773694245613865512234918000073263828002184669519846195330347273547892330574121713893566740094073062418150282314670974218407108005829354298936016994175545189077130837666073771247143023771475774952638138074269278760104350472364091062547036298475824990590417749164002288938866355640881693426120427150820900365998301396037043373013873313159035692718551197131391943716854088753421535062656834629728551125820091418435002661731698441210153876638339452300423434719297656657117888622801895396161558148495813171573399941574922026632567384330501077795331602895794195233425033529264758030220026554549959879133958558224827199645271821662492949310695661737355290798535827377469481822384679190451010387471778592767847141259077348498961078400485355151031089661471866483628696238636908271682646665736920319702066124532011926577462446412908042930746567581181173772911631362654294892735452780535700055334070163253621105124216448690717427406254072354332192251351477690002639371879351340935216730749061239319413405095661522911866624035322525283342985526547581917882132865463283338413700904161244303240197635284622509572126207142164415007459442309128159411901286929255179259345689821482187135896999094650193776522106044208713406146964285734337531166163688301044444653107210856465700399525442504626307838908969826814412414471492284801550558370208445032814768083403584266791380697641878841653274965059436538690279543874346170563187935508220448118185501678416573360251815474654680993581801368107014673900472969312939566590787187322931181502158196393629690425779215967910469988962123190719880145615043163466634413776522513534761120838663761182640964701497469275706893583482165748854942021380781847388422903102537363395900392441853067100392451931794146438127844118944043125089656439538599826086685000206367903447217575775650558517635888294746029967338158012225396400223342362272304067854174533489930015158496326053200751459916766091533726722234500205222158671583899623236738093775322913193100144333081662416801924717118028562478379780913962149145449184689645144847755261306047163855194490996649564762296563820362675617941543422633741397726398130582949923783456771775445682823171518212433546503284483590132157686761061707306221228871473429078344626748552399700459540225001706067306795422728625307511030559489646680507027621383624868058950342421649418739099000118217917794371012631178629120324904861888233930733473989645031971764847309907615966842694977044787100736518249737163727156384160646767751589779708749421667222894247227443408521485624299643737021370225988488854188526033340486949463862243693201363132367828044465818630427006363750078375515070998850159562764707849394857356579757697193975738145789552383971005479612995846731042947249131259990236136791027890735708515472789081933514083635628799010679980299460094834214355970145392693540973734647229496129948096565853690621980550963651059976388936685502291797873411683182588373577237217709144680509991563108008074418029929672692856155844830949983404838660836887471300934095212405406893031045473597295842817427080004917021891634948339260770227227912996850144031158497819065244382184042530480027120788172241735468385795230056379476608587142583714948267306094962120612031876215710648976145791823388439364753826745659847602101033656447627228344779887047433921637898167404051153676532896249253878362761710205872425461059581417801780514603317421911723225917280022767358086328928593858717084608991542451459544292805120977920420032536364290649036546018033962464136056727087495393483239171455295803436330962304048935231124720656413022005221397428481810053523142026309151009667178569281261373484060594348529570237944076183460316027891362837810061585211188065979010087620758853517658917446976418622667569346539331282557074091028964462621029326384042410558320964058232224374997601075734603620968788457918077035190514534043240186616161491532882362541531609334154201121782920536749382254965473983767047077785872595342392414063562583133521854349859361318598587553231980395771773693685732608712933140354999447325509188468396356876592170110282258339485804226144275874346510485053444039865781696068333258665858356361230033324134226511472252678191872092389932995699677656511674959481639247635530408779705707933944411450315962419617236460323156000750507994395791939869564162481614113743898635146519666827784815245521293233275624027594616615313003515188582643875875398685474441603256831814968657087500269336719197911096320256036385519507882384458939506553229447570813027681664576480296144772220251826587791548943484649459343357321373450518263583704996689325580910420120287383044400239343674874838426792829405221328674065090067529506123256743564195985765870772180602339943241414156118629548640510589624686625488067129652266102326470126063767342976097468991503062939942790563422171514217881217885111273077657926678328741102678335109883345217282880868307390164914405541806476825936182450836928126121327076719845875659267854673418146188044978129969685519307842742420874473136886142857878001081715661569344805341479052920781101696252248116096375463135590037995803746587988822952096589521598190733679002259111064177596068780408380873145616944675961212605951536626067658378473009287393238790875693379848934824580877956075889196234081997231570760343719064987073856738227192457654447696070861498067421391715305657723014061512661591732296602387308953614980371499750488577057298141043081824175753896216186995018554238873468780128262166520209283398328989920631416038984361937595181969111445341585167425308016986990098824606643547487826038464325112797535673671915229032316387268503468757411296089757577794928001285447604408854637660470456436833642348141073317480326142410208250660207968694971110470833644572513601799805064360905193890946767112942925869114215002565805186636590032764473947770014996552305599716906343601812085313703264759568048144591383988430360537842265351764699388710007948089320916085768033736618317970309826332371952451467548538103916249728934318183360691040756048933908698078398868016659367467699394934475310853804779012590409651320970919762383986473234148643636982909515073953842391135196288148487388965490103848214068568632068410933283533593834123804933815933608291063626940776036168891105531296534923407001826678313136120017821854355332220103259410594002333270624409676371178905823005134132839663236776635172170135852109265774423588767776111680744667195132678430135395654222704915831913114776891398191191032126713123655381083433962350209356452838161279065348386567896885802970063068108915483395117377128943244070576420720200246435403631963620378115233000094075723171204235221346069495273289420737620338861389621421810408195253257848830947797952816320372093850913410696021370279830882077919448758367840927386471566271879766318501418845071289231015902408620775148497994366561115184528264184414111574187163255519694393714708431451517799984967974382403228574329125954980160473654644863981033997964222713759889358880321338864253717417850744162999681916269472439789965620574821023985450609729099894394406006459598653375905074254479594962422666895406637789302199863696863692138775858235876735936122173299473386081057400144281580612928699342683628267948350399042994404288774981475090103685295850048379968174550456369269223655809756838294783175313175710117555514845933098846914092900044200586600334571806192466618751967395109412117305324625084670006810864873426813739257992243700506682724426079033995770440168862400821062704662739531109686710764513971459177738215245413982506513392054919876283846776315474412240708844040366600744374600703311902561878582708485142938226874024176722737861575571258730446677173837434978896688256168981841122937139659196337247787981698156583528668581707159804873799882560222877933779887824179163318408681853031392583491322709465110839425485344985861791829071058223749432781055640092941680106945502560879191447832390006764651861125520363301591749031119082572068918223602712544604901141553731097633284268154498397405518825920034389361223244264019638761588444078376486648731698026677294655047259588274336466047014379805051127093201832492013853520070648994290683390617826595721976758548114060182545866904663404421824696305247117113923730320921778676219556463305867550241011890872154586634606021545575770026198617926363124230189223160732882100591867086484762307207891407715926486516374352208484368559137825347686333989292203918023386142208716262211825078827477639393685587788720970016498516216717228704048870663144092928011442186642209221891173584545190819948206165141731662541500701265609424956673267166044582011883707528411641252571893450362416383689665792105337429691495694394478795434427243221554766541777958075734633495267039155094802359695094649687722169824896190644310217537381886814779021435969784327119065333653216299528175800788161233901454934803426239621586202763634053853269087464760784448607027473266290461550116277483469088344861288110364061087316273585119773985450366309121845035941537563515113998782073645128207181731449055165844166802103597583557168503550203207912113759747687994586279501806314030024457898332926720368090469799436761311981649444881062732530187350229330115813909346223599580240210432023267931542122753720706062438333833932779873161776376456813113515471165428948198395788468918917064577341228889406566843009789307038866403901091261290890350403459994780498130662646564315160350884518206266318885391009007097497623546689896140392849310740509061674055803519908742673662083158223837036972130411788779646309533935845204093804620363269893696560504350885152561517566760747630554761724355890322779770175994025169861846638613666656043387031706435391689777714508302215877346504211224406644313462772240557154959863843654267111556056728488144991431922206204469122652821114164229461408410843227551181283814500002501390894820900678966332713645067209753927742110580467339315788621470082842486959937480953820315817690969100778739809944950661994295323774667659037820205239197471061897010830099129920066028329786309519996758742286329945128050344414055003957607096075509863495218496124455520387852345529669381283845411944605964032657779587046825398242470764902280183044618706218768148446679829966806755233004623086265541117864867145040740783861314003112456641735638988004507721499257682574313169626019386299722234350014304929013787883638610243776213911121789241881865638519531723103638931553857829833819494106776084159855858500320204288812822611517181388055209060543975832633829626005567198007907274140629100086252057708140039890301852633164686284011843934445138163904553252243070594718438161850303235136742251296835701960108408145932731125103505750077957733233817511191643945799191492223421343486500593671606465421984585321821675027587380377693518114159671266645389003372781522627719335659900276965683869707014469891405854204792796403632039532189959797344354611418658755867911494819267928071296664808455100790035213520378347029407480798240637212380133362763364738580332736767459421674432369386081389727769643835865780089621522001030528500906243984252571145559690437319684668756430327358844640731995377537146771570943067828314945670383869464028888149344247196612076935576015260777583776151975540079658693163176784534253197213132325600373965967199574738964529373092940379624669336283127783731522924089924028460561275773592056916775184349758370465267895619770596202527919423880545991041477671228687997122010748017017273703789705389381290074060520803966518182194815011467609314014697774772377283779426837334156475241810515427562654123768663982066404387130955636477231272763833576577780430483184725728383505218392892630520781024173275512686275201539124809159086675474118268457973681054662217575617071741259259408099318228547768722103303611141189792208127420823250165585765103810819023701495277361762666876862722137373755528627960847686344836458033501953319725667514930384940998956881809062384461468107731777451508405900997609394251293507292543158229224699810680556481677439140474799001253845395824267462368658978832888274602718458767278902994979621610228165860857732453977327610562371123676363859525304162973733151629616602320106023969804188971514041432700966128652008337909942162454185541776317825813179281426938820452400405739199474643998794715264323568415448100561761713930467813160398837022775619494833196877099277706353507675100200764682698860491502636410266505743051187851838756023946614054064709996335835749080145993013379039320689257346942398708633351900631272175763685410230394169779343781003791843573870191305980854604321062940120814354481921471599256873707102283861556303326627955811156006810631458610205121571856779702087249629403625157665412712890675519931762876114587099455189789091207901365456488690368286340438220748687477314681371022857386966114527541186894303378975845197639486465550382104729690684974265094859812378341079589504315076899071426173877279350013855939782324040398111488047602808165005027636497142267196286970768056040291330844705535025650992127138774821223037723838111543506448362137000285345498193352816570767422030121546928047062912851409105610999972427850593029873116501153536138534779552540814289136686013609142790039810846380393978175131882261746648215616460652944098044117493742839877005749661480615831161906852348525976259191913398708314970797193440739649919812373260754782836807172555090195283893255247291202434537246847668168737743125774551985684205213461402275661717056515862590129805989730820985209071121608617248137567874658394005412940666437365957494491238690674631792284705744917067749827931174780603625824409528448999205048427539074853336905131458768427282803321351163906049582409715316878278099138606417849020274582209917057358774494094273806539282478549321801305158382527913876291839074269805271629979093678616288052309751714857679663567170132788134269392463955167046725375657459431188281226250575443042447437073915510006010701410498267380509200881253422023881146456984715166071658090027590288030139004036101639036522327911716726522414248697581596337360305836068910187774244644025701969454899891293216443912177038519208464514161233529201021011457970541698973411967976729232867770288505766421531957328968663235648252322084109633513537639625065583031199676327723594034706207591818027571735307508464983159915396153887525350373213233282700824764304042315675992653115208013101259764217146335284557261196508493018350714852058396783548208364497737691026807315115385246549339537906979838110769941735150196597628350873602333238879105301104144662814257715055943148533173197235457321044494296573791764563310478716940553865628773414712004680994107860819882634162706987391623832833941698784895809140285504324706807258919513349331658729183708037980294751357707270987749514131442216673732652896309961109753871825424627356330284867703544906729064502695565265553991838795173985526774838440904270800988455269676471467279555942283988231998571861532803634753290773602189786505708146545588605229330781404972120713672168157731895091959686977329443555511388034176240031179142682788344463827438947224935353850420663607099023038339281593651478632036809982694961965971680789648986664076297401554256058342671200277459979473588604621920361584562499971988837479359992157109222368675160480781275343890700179956063683126810846044925746215862384475905997089862809557866460236406339935460773327348889229651700801737887525378192290449484419090907889420853997098990035102116724818314796164093555109348470646748566593579425892466767023643121522494610277323205245305608191508522315247632499571128665120048121707319267842148642990230679519144478539197206854148196901817278790516380880147554861520159057616373567012558363688552626861744119070387381241966002270472548104733805584729851355689204721196916546644698824768037711905297672875474454519723264891656518408546517637620883009841588927196619725783917900107901571745768137254094968342080468642014257865464691044352186999102426963288944547837222745740698811678369887704572579830727623782216829162152932596823797672711735867384221530483408157241008589339000157470668344310771691002595255674111494782805968554714149720236675161425130933301295088688422040519556924450921571715900582066551917473809421811533969134971593888860539166337340076261089334307361829024898760307111396646576266610858685053899630200421715608556244634222536636075599221275888951173761283705050537336292623341890292597204799667362777890678381962352812857753329635275264056861685755682392469172466340704859827774289933655318746854220670073425691377709564185165304412870185852881794592647001124200368541935425923464854248092804314680364180241469489200866144494840863528433911586248266959881749386511683108257342451930561330332776077408474505376152013517729104365911107764277018643664900059052820220888227197044776386848458299124958510149424066462740478624949506254037860159968572622267609175671847296743831181644569968790084322248634896589605414243065133162990369908807361138807023202975375566578878320897552888350917830573987595263165958914103286276251350363770626543998573278931867202013427507566220479423751684571760540846868958710646487545861886047799569237042298593571134442501816471647180823163082528287543062633844728049282321514620069833370041060562404890278662428990129969750009173826540329264279795510015716021532724899392553985952450678059295196444250016237328759336347748604640664657309476574645913710788911442866338965207063471876292967630641809262439539986177975487555795632447150977860864518591898160607088317495197187721855243209946403437681958065243361694676967695688322961853118401869886420290637740045400629272509736010666688499253952093885216178179078648664672468062741895522117555826672665759850200905764538609514183505195905203447286874162257854094187407543935589261877586476681239249623789575950404166788554134144930273153218107420349576091120739973281942312043447242740806598483622837513847166686834610491510306808974229312763917460807245280817996397644250248153385140895076260058360352277768856221062657637361206789289440524627798058467839487711285392448893405255712954436723369477232867343322166979602835209022837824676435134230246169864957695725538308129660322460534060604022485492562694662736247170385868528817164045184455766910389527038019736940410540878771501345458249824968703540856954400817568047078293531572964338474544194619610384719655431437525176919011105578517054336069653302671336990917036228118056693001805427068359912634384225598822934996485439156384345980671170656672936159080217206730349261728110807650826740581464890549820194097622609695072838775679100624572916447777303912523319972677407355582785783430835911423425384225813469259690378011672260644053710954078378996386794589856523415094900927838922304533828994209105117229889908808917245777270864320183177988554303131045087073534217341232063450604622723194199480737970345062715012334613949376739067385565345837043402504329943792473255076192881919636949812237880040630867183506896495790029298647613738713725884585986473490653363190967379173780631471443245543595459084414027100532059326376299132133874311367705164884992769392314631471270320971203941522976424251112052041912881206068856034748173509224505281791231975788301656247745381737252023124851389650858413749341682334652665532763878093442278353038774216171095994775534777313423570418881401938116556142532176364478286848330732211557798487910637254353448964093992964127818659519741466450134411601498936341237964196646652828517884002050815774150155351162458251175449654609078314096144376433343069146869895392307387966961012346776177349462248865775512023673470436375656213889515454470794324892060449419055981971284856591346972743616416394408720823943448400830629003260202375300486193259705891580898868109046025629392993192972618183229550129048505351901254396689544801696574808316696434105174755808079402887819447547859671915693707596000748662369267866234786683755254146436450901740239561893973429185112020965994665535650487223391116823239292603859754632866889138601943531285758486171142608591067952175263514521000510386023203995696653023963957695678555280801263038250123953524244784252075090431424516663892249570963187789594315394807824166162022282239815502258033135271030039867207963258028140233984142323314972170433994999345462470993760379158514693302062083747347265519661548329327474073675603067092598393363512335674196610971291076889424314230177490590342525241788987328438314669252620073773590894441711601781241179105007191418222159909077306012957917002826487367765677819872888765257377169837792784976319101717788122849671655709416873819390274877396642503370697985606169703595558509233365740773574504730772309818007762671910449776704171173105749026572403627272750891106569460629112067768516695981913184229965009309604651446334299928359472604137002161566747416856290468032360195476982540360710594536778819455722216847989988655612944891314918701331419231198987542010777389594939697694381434332622348779897140671497065988776210531629212014085228183248774080970924514046936924680455276361577972375871541182470592852886965221808557288179262385168416497317938229663484308015468674001458265127936724707797509882174675334020996491252999556280414090973419759325510409169663934399118676231021083285804883848738056003063748705533611453904482055757635141339084980701720271866852975762919537912463038867875782166323579253889289689025296599970616958646178303727370792695111564085077386378356910082981845103928584410516816971211264598552132681970039163403048165023311226524454473532412640320292260581337663077290976879725718206758352646520655021754012323335908558032773188267280383783821469251897405567584438706010607131203038163606244725190489248667950865222442850135096010832113502102282383553170073214604728992778962286336910042324006896232146696137773858232209236975956860190789491503107659339191820763560812317390488861990944693775634233136233023654840565932304055138491263926940954188565092615733407671849555823379508720402291224264205717750870286139900916874167136040802605483066357069598801991900357111277076572382934139150167196543848462491465750658412144492031203561959962224594101417274105509247227403856140957422195313515567225035938729496014130015481075898016218238475945385376509782702068897636009342202576880230551217506975367805681939485030533865512396419684273005944863952283039330677588888754246283902490499286676039043563455687808313937773205273163026958227042870312406753274504382009598262780324213577786137671944307035538295945539525226854812559525858407270933755496779078068202968298079083269511962683512547842427048494564086274685405417375980541547552218813933734509513769242133309451067096802829481546460898278779522058406779951912917793301643392210898620281992953576701456919846054512958711527969894278889962548575965876414745756791453883759049623204966097163989950979828244840623377696076013601759348129133319545613765581281812539802073754888220876746974197873346407303437891084886558707223048857306382771478881683325992735718566934506130718959120602521755953837662351124440487056481976365013193033302853295387660454973389982342523930662397146328986997501362571390156845455796398352027274683115360185511459546595915905896969844140312863206866867395467386927412550594724750827767515292774468659096199007220543427910868696113867115153169011084705895458022235292096361023003125506464628604533776999540756684113364991504028818550898039073527020947070319375514393736310141871160125181128034527275433803695958080582219677533742352061258373819442785891181002468568366187587989051682847309538466458272787907804507860331157067238738744953164702609047465464193960641339950396787904338219190605720353567655790298468181266854501231696704879371644537617374285187952747736620791249211480051402567221817394743452269613563384231484077250324260207905153090473636317247796276016236599965071711090428151415609879625854504918202458652312802363940229361618369160807342074926787749212057657602348358811411266648628938685542904402601787127231294281410206152362599561219137215104814959694756832005682603959044090551209426833593155821212921311551348972879606472382432236058821490785568329294704602044549773047907007397715072513289352371475737108640494470225116811154766878660531124067734658617269401642652781921951834895643390273667563482405803119520495230241917225121284775882796058316213202059660257454926387529480305815678715591096485618164153275250579417165526700263439400208008249236338488801603591029869117905867429707337400849532252116774878505552072548192853026881445796031098250148890107973160673605297091833864157604946009178671508862831217032828300692471546490446527528793970062460041760877193607261906674637705027060383816881889117708673627125417922528382396663109837032286058921255189655176944281465174079293052769231426677660949147421594031842377434499923040894156661361561893058714226756869303355902426050647112009710179418288636742745888475195249757777894478031834498857044819139148972791473119088791571550890184070656624006329359869907654500835496547157560609453609320161155259108366933081288205984250608955473126855228464309109734161102876492420006068149007317279910884243548239388778641730215363672309126897071473473535748002711814633390397638998425944976230294344692314106123702563321176074803911206574636140415015042018109182767161664436661372684829622761648077237571971657827847985071817861163504550455200793617645698572309938078474523137418126177713422697561025846996167228196064516638981757667513226467399990068018128297701487637439743538309164215650882476780737428088492061245950595215044906235252234486543988981628857615642110046258666859643414354201528144104867973492790339598550488554282313407436666691878773273073677789530863534688574123931522907399208114106673723413626707157170254919258724113307415568679232884382669309763527474287744090505394150353366438133709970116184807812414163811427882713878314747122684337063467273149542206971783970099473974728019368537889687964241913815248001537714160267143112705614168058313861203661843455073783883936295611589760012280014864476663789374189194154655807502529001204881294914358370828416056152939113593671134392740436635998330235533029014473804420381647869326619189642435149667631490205775987704086522953599126617685750380676153734139031910521144823777547893141841964489124648003147710191009602615590561311176657344498819325965209611599182059143601112893539719917086705383907750462231719046435578345210270797856359118011933184146739479034696001485869476262520364328863182129857291242363369768691862990224890702671310495298586235557120718439893520034275847111699871515460665236961365753925113004062715815526552436269226077206058667910511699197805280330806604801691892673434874402927142187332771045395777102398212388579777012413646940464015234000957260013520906410363185176557657877482216924091101787083805107341858085545618598100887456822495295852974479702253637922813230963130651484172355707304722763320856841691459218095760788998585203192765777648372011055601230333115261421815402059132407452052640640923959486837644470185148779785986496649789918579614950795346292481588395226226033381374478108150009339816966258651690177653187481265479803076143631890050581401748919369040602552114365446430955418631606824788199549554077132496564655438182184195179660002493358310272051376098611268903045467432715611195358114605569959910680178736301954637574182426660398950499880618706053111867681189740581954016766289205946809073044404500395536994406094259485975876351089909016020712745309972195829019857813935953223526682138276716942547081593197134919491971471540445048999149630284195573961622478663541966730408273270653299824192510461420247949557397170793833116041737782658448220703755220897448490459559619811692814334466146634348776337218615511083627686922324285760734917111787875409260696245982081916705295914554400450740172507681315934192050862294670466899723279356353028618584800086406365422802002036971727929780336562587122352987312691518162558708834662890110453116577869435931844584153523307859081611271209622877003359560629081621762585386837780294888176774096126090179009332676726566627993828448602319017921390126916704061124267686410280691501053472834224514738733820936179257383636435235490111755000666714039779029016867913157703370227231500561346176484229283490697905071830776174977803317579878048593364153221145166246730238992404806599212465198798529776729045465285935995856631669525648535550955813891570602350715566257632494485610177360430325736073993927640962176182097002681366627511109938115112936676390654001818061238553922218244524452618158647174722372007985503981843508686148544520642895545032814364385119241790904944002422758207310202045419374756315629628001653849769659147693255152746783212028579325526590193746778792008313034605056450459412356416060361082161468654870392193221511449552740216334186638802633741997969159678900796098929075148939506668157462655140774237726506540156764399187210739411246614433083378362438050064281028125124542755553207242900596964087352367907035305751579345255826376528512298787677017446752067195891612096121087946516294543177976397157717022988492541837457794818347709159092377349612846266738600807237423686401036815790390350574846519521072257518045103663968631225296345418725775282339228685042313435902439598950297608555553501014853364781612881472300508980695789006851877807903718161834601626594543499780129379503044673436216690104961062317420718300364439170485159207830369990048890443068328462175438871192015833154658837336218180454432221696198759068443517590821003204062077058922025878039949284042581411630591352722738511112156733486483154740287054504780570631752667398369259115180402479760589641349743226614874091153860021887995655197902155941147396695553210719133713907481295893782503122386826903693414992369062408615322000034919570940743911031670760169352796890994696071801125280209168521299442146753157811410742502017499815119924793444358603002542901440647265800316528590461544785813334758332383534477956906801494558755251167365081446815435991761617618718496843314721266183738881667422760338632875568166181916454739317007902904312497420884331163241052028587648204917815120062351078694132689872276853931867785834268475886802259064947702743073155086345593587482522754157264355848997835484787135107749785370773361628120646949803055966047557154759897405439631889716075917098582333449983724334900573193432852670030273217001035555825526271400273476432249743039506449345874165835125442928727728856867774302862568990125255038010772604148775344109690147761060692652447056165687959170009786322902519619416478908039546037848059427512512021415538371561863118130351489943381593255639773109897236630903934940372968754077191976035263066730994901106252618859289424823175371573321106566015910321739168413394337564899871625018879214819684100872366554897132619546581288183809311893230286540645166842146926210131803479834959767259997115748620642370828651034789999840580975131737853049507264531374602952306434048765760997626784612932916276178287498618232215117128558968500297796092387786638093035366952287633166657713064684640798645400371642664890373796527137207571167350879284762791098787332986855306422042944645446247259562701506729463774966922079495665656988425869057278733160273852391115067686676703988176578491510522326383592053479606218759565278426105733222956303859668926560037303053303258004888956214945877399134191726102230798341078421414268510577997138136452939827558330449595822299579375453196870160232985179871915168705787299716455978999347194168482887531261735741934686200757240881020201326401342401513705789852337011092988828933782812658605381825072385241578733062971665417270884148719875869542502333069324251634288681365543471481071519548139532258703153429472160028791665164460170479757231445231650240280111287315046034802378020465741942497130438562737875312978345990144514499810637728546215164653208171518940992038630519491579561587122349823624359583132611736268371418383786862647634972834712637052548688625672827093188522333064474177573990250365124243563360461112171671897645259275366199652813689260653307945670624598546905896508576442548716535775909518610888235660818010501718686325696213084587500823405864117852238819319991507210117930332698571513562188043860143630861834476848354798069693916230598978464048427714940514710950735550793496141548305970017596772005989995063134624362602516430220301421780497982111373556800072755150629232734436156778849704208454349949942725541776534827625697250338375031392027653050288835500735131035273949627622661300689776711516657836094272709239407070225159730906800470718892932948941348195703563882075788570567215970114170894202708767440945257300708787290524156704721577906979501492727702663725236829265669476101362402361857533635078200363441023938816091318115624374518206253989702816866837801611014655713110538028565650560036459431100665544275724573330729641012366150336660057091674437186554899814760923833499620151685893123108750165067953766949804697022286448508865333728566841673661419812023821479718769441909942519090951697422668352093116452592512852321656990717424835654248555357266945078003286631513758772880750733492154012594580521605390234845456044256341592441191744263930704066379714632316435650946862354351888956887575092425516129397417220142079284496002433084600385938458851698986064013057302194699823774860336718722183597178967339443877915814113125394289563103671964413540155165074924431382201931982412040504250659674370593231833990176853034172992502222265817978386058316415594965322739100203681709376775593544929158682854578445927180951962738360437646761089214622943121969036762786108410037991204553551275965857146140369076604520534297193832289327614469188370034542344897084903520628431170805750122763672240983995386198998106325848101017509277615515640444273909392657869635285692049699972565301751413338736511131812130164377106646227289711979752108571745319234104810038256532302112922331525404979688654744597213482005410815224565036731402241057145856088968650647257646900835344436186812113619453974384654154159234958977798851680354628613184434744663169037166218234205433872576778150881322936459301943418227230602032933090212033566570689775747477816750491066052450551924020763490759179061005705486480116026877150626771574677074498342881567553880430470731980273637012230155959273671137015196953205993085545514525294543250831755053967403112986822103041218339891065174936503384061845314109664308902875791336417524187092420483532255728911643740828361480363640954625255402832851767633468942887983707605727698174377086153656408007678370431202513365687581881591003681783796522586673611550052582274883441314156691645278310512514826872283777440458611549187153190906549802343721297467312306035696129753703661361444089262888018967901915810363222440075694103818854738505992394368863484863480969701787930748579017419605623661662224136128867045200933847340512245305271392552635529085073603961532412089869077277814947947702931986572129839876980308869792195867719960736779398187605152428203099481559279877340468766501548489108196518708518885483145397587679356330487259739359067724720116982626569271387778042802199049753039390163554192441534274764033150154844861496950959399797936068690050011605363267982167438289415923849831947406500125771361372106238785811553334214177019556084884817089917077006325111076566882886441898558965034494417227097252477904158522172976554685836559330993882371854437208447019332437882054623256712035981458170467340204041742440071609156441536400200551843909631949621977134283198953997634385442455658770243891334744349470861771048443378644302318570731750969917666245712919071059774934161826388763491939544053657667976431150246898524400837968750637424729028562574364676369134136386775272666977256404919991129931658298023192208728284260098480912936248479862056833461047848524371502823815818689759089972826214474093818880468238052191722661688652790387226556826200376092552145919411163219725597130755830754613796041096364074853564443819100029706965933672920222349056178401393100757875047461047707969918996390597039850847741805799101510701291477145836022990269328822510440916408751106174174612816075479033574609928822126617811635484940472319903423119708921177582684365215372586636644509782409121508933333808976589291961752301424977295314191700610519242163091586538960016014598427521864921095259661608687397403661519197945583803139294302555173783548857229273854365754793061544349570627761400352115929101942095762168719784118081344739848606197351221210973891795074894841999273206417789698160441388905455686903960811682370853471728854923761401562986665695147216979818233872971287107912562101263489431953715123986193592002596338638829796863660944113876317925812734337172578109649307208562805937217820506502290062197698745631205195299464867936122669529992793420567084532660911239860266608139170668861119343460691339531290977577095035650405752944799185108088545417594304430552351903504823832668447000310554783586712566998426287985484089615480504417472301477476911299909000315633494720519987519595650962577247281412744207252003954918714151365252198661736047577616730963385737499772485747433584517814407931319976213544596137332017686461190311146731328821922888031391253864970888688235756430803901376945987993259851596073441444253134010545067390830565862562187207990552815382622272688445779592971853244215326643936124258917445829810893124585165315943752209122369294982568381190199714478020473866647052751914606923568243545501931655723584929491717312018665126008414783272963582510887396910879783070139521539359273250146724508510357478564904558550170012133266780158205088454525474449528271689618670981622874679950100039551164871575770570384864116047658000389764131729339616706982790689256914458336606423987728429727330734375274706062402945664211490833392759743378446788345809774077916018874375761400807643317720245988782685444207484663308923910578728541389384775836306035930921064989692328774515334338798378916128466187802682160976698825690364391642935033338365547422701068365107587445349745550773056264334254963524591735919039543759894330403945858289374718821886418186845437144799830185877271934136130235249986317170204772249413852666806927787181638482133434975274877039397988625644498289591507385093389500744870199673528954993905482275379487629514542616387276326734062033299512801051428706392099070830112957581242429189883120500010939204262138689078533164302542763429092488136114220272015482584846351124178294468000624845479312321162848439413700094225199077964965991320989303407572403393022246348957545816311159249228850614549215791569322440154650396138300874708775022051623912539219391450195187534103765940655269752401491798067062146200395799632232514717597371217308940649726377298568697831321035486729324197180841127636356732324342727991972956429790321169174991354715693400199845137233197237154924304296089034084192510843329334212534006384430524608603005854393509738373993525738406450284793758902048305280954236158156651329715385923073492674259825873902451575436582299913488690498910678214624435801647593337083900263579806077141072819706895370613327531089960745511486713615556487135254188847449090716300493387741582698707954145009399058749344855173756284593424253046498310173330369879517882718482568710453440326123094264156480586330423404703365645551721007100461291756722477556879402883898068443929627532880351375623894851299218274759149550166061939584304794231427247149591549758437289227951376309193834737503700161917409758951867319784629226246336096542504180526567447163445355349833281802101316394090974778216717067042948086058607676102083610506877915995883198514175418090424828328469807693639652460641190421707340909865016152795667440521169593932235536464362314915147278976784776883957317097877280668242891572810392598542455182212675570018615802279597042278486714736502768283615824366435437756487425007610037598299682745939936518851664557793434177543780814651749463036077188933649915153316349972211046096528547440201910076587557787022613283368141809370605794369007587052569583695265083639059085386140245424192169465820389907166515442386971146495473537638324406697392607101061193489763916776758190699056603759188014756574734856544319702051368775255281368280894574693574244054346360359910904971465002641305821414522975171625490857623705518239987185458672487490111877244690764523671988410348815368372121518393091234614098049137487457508686085921062540517519767651306891581442486922756163219910648488262088374517607718184661541065056784350543121665763782875451027922127093083650259971218956286681228851961345439255896162126464568046269479914456925298650774423310709003451526307907276705788408511442346521676799524216546077471403637059154377299649982551071898167350831179436215784434099664909048306212802292569495249844293250907231824980677632766733439033822578858836846945197977107657532784026909044742296474162474292440623766315965421267031900761115569937607207962040874457837297108428343212766518271395941418463600865233281966041904512190879363138179096192442068490545848638324303364905479504871374775688809541152152315897883791031972774324643495221142593278508220223835739728856577960241061037081747525361978704762313897388928810753670204163850699807444936084074339162216901050163476649848414892112009047483356883768430600115660892166889166296424844789497774269602520390023323955263539733527037280142739124257919188939950888617487293018533292381656192294051932655500334687533790181368337680735710989114998745692297474320413995516709094588382417942793360844953761273239729818673677394077306684362847624932513345352343291058344855647525785767410331328033373715957517093984184491253667314512658172465542708990297743033561907947100747339517891343845001557886027293421302052943794501478451850027440105077969482357957774349841976061717951821101535558009046107036615172929532244327066775271862315464568132255581231914678849612162783612083509301268088131122401153362643784761074509418896231639226424181633304339908474854931469630646055611713028018030403904246772280933321998940319823657239959053529552693342118299260718813889434337044597096140512830129635149149157290189056800064920485477040805766060198269369177627091068522529096037680658389842589001177189664514870413713363738486049161816621319619405043502082418937479554276040885769240847949135291345523745035854874574228961172426343053138096499161695844981004588505658756169827617724804828043931880672969699755024397955032962402488011832386156484480078217700266249831939455488808254268825960103245959665084332960337501081446447370368617423895068282580910583830420688844572929707564355174151362555821677246860758398455381741389912352387134715481173453370404716581092464835264707154584861099154815634097502490889997754481266520110911097400611366662797225744882442482361441545371858294693011195624755235251871978817121963827031350429016750317254098347222031126053247943631389984296104035292387391145976074704005151953888844253285414154655787817980473625337153767729002322633936332599556018175566648795989847310861547775184706896830472605706677918234725160540749357063239623545835713492160643838471838676825790031366148771434629106445511966800613527410147546309438633623798334909133596235293585587842356545817727946348586325561366653163981896739771891580960816431500705486128271726763950479717250226730796805765003682976182486496975255145421521388648242812134987063064777363317046823542829227834749050165421360053534044132719970085347669890357783882577579592063936730067055155922150029408742273507412454925227113589296565234965408340638874798981893358214388846269998721036715203490738546828711073700642550236992702697099658785949619965323763380380372722563771684429498560714893511419339821627251862097157574137424202405516231188272488701613369910637579031830653495096907358272835408175870932571740062762994564730250852547888923059947842433235883982831793581457532814153753872758213363233610628783362756293984156744986952443752037796376420620555749169232882585252761435535272861852049904627159798284163823924841442789631291058805213769921157090031047577007985104402633053096540180757275751967034385700929616739395402473309686286521002010432093726950205982778571717353489640710145507887965816441271601510996370700317679232000394379426779728759473091090290049218583436015761065938607813684691653612805536856948677590462438412174153470912934783556774153740529124787194310877463217466570657772260285236929413274136696066675799450645988681337817244565719804371143181479712354443257099520754400800705176295418102912944780051130145904553698848122853101101189356869716411945867910946803232628801265870878922060364331654892044943530890304938814147334422656154586781891628063332169009763896614374893634140367756802101407724367058874067147146599738667621738459668402634184697190012617567842727186299433550394515892280687654469626058651593856897294618292761179293324102949118220596141359429299737617238757670977163759682337906072510705803941943463475874669558784226026220496015646812223830047978219593765176816646517880226012685106957429214407559638969421699299249403164590637583144312315562782383720169756150235791047336108066828187105203308574754796295422219895303615375177375287747081041155344244656989691520129131827187379009889864196336520983813193022459957272992868399102589796293386228581574087327213722729197073091776034770002566612430191653520528171927181298007199926906234647692285530126171069170173845970462671777337486434091904420534554720791613082688942165604362810188134866602172522905427592685017794564274442683761379035731163068810147998554933567859677305410674354944796316187954573929661345301628335684886845992204359538089270624311122343245037540951508143281020180214429168484408950597600511146009653385908438779720023005900359558110524084694415128287052957335724693955939348899374408753343801331959818669552002886491343476586798903811982717380724330942051653498978953745378002659325557903792540391369424135953210217129367400413387988757795746429754898028504263565096708308826911430514344492224131135509540157205902228345827331339050758443102185057762466618548073206872723785534750366877335740268392739205765070704783318163304410839602643538046254637933618628886261178863424908954719159182969780784395808601102383528246977872062608994536638579276399682501112901341431815995281993192068856462076138222562635576741936441850228664819453145019835307951605324555759762440853040364686440355885987840001177374899008814108525978308311937248410508424954611860768444896369518990987665033415809292879303744929315252256280839228250373587253985612548846342275294400278745820242036002289979046099228828515411383966764304678943685301724661910627293534995124909038414955359275387328257400923822766784027810290919958112169067022843076540647964455857559458781394958502287937650614697305259032737879491331663395488335839059053165784530889974164864096938882749642876667695941221201448977243487645103482606980225414460054884544879153956989802169382046587544536812432556323384769605583648638459741042312625669238594414500279856753793943753380678035084354115290216476524019272719397649044758282810981678362602929272720969035326458408039736554891873482911868035910329493498896543574960486510669334872665344007668914989989992270556136297845580960872638618807599344662781343178977051537456043502115278689650426130505273297938044636153716986301835355822872593283166629435990677986166033142128677731912009156678836711727197353695782453199158585866413913733037415597437318946643441262402363308125293980909542577573414790973548351162377207210794345652052520643146125301426407808206980438532444638889187628970962947745470102946435915136620629471412261517391869032326651112940393702584731969214410828651784887868681098788261883394454467354275031375480359307185042604475491797137655469731516661693544673862712068790911412559186622655972317911373099870431062640086267316794853395228119128880674469287166785529208378791797884759939156291366678984994541368228057129839427463999792260237652371302819173433745938316584151754460573472500901950867986093926592080414150132104580794848375472904258194322864163759231047672073649818074648361031135711776386697413700199379171155542125660117858018598037675108965743782333599444845783524314508978701265307996143668341961577707926161775104026257414050500919712313343127582535483500741529980327539873898009960812043155775409782603252506216911746182110818425094725241648517795040283982236996027329504567465788085726990684576379863600935985647595653006657990071761349959753010752416650650876094823352971193938027018802746528275034569419368381425465402764026848865338210486009602907705809796784666729035556123549119545394172686627512103204065812777123667701917594759084252555008270213999879831965230622663496801304831843457149719200531904696047135555565174229013823521017194809997472384686873547551788004479023869358637177737691347587128054954238989933686478866737747143260031420908011885836679587254410695813794957027323756832115371289204311078969565497730941989278758568321798922365449325592683739521752579346872568993146309089348107918011154269203183408296833954800771040693125326022232216965653214074943348667143685474047682408036015715607386401711380594332726348597356437571922980357900222073527517915332171520253607772042120201455928842965909014823819035816483889117661542133094875590866447436435119433405104593596194416850865941919663087642113697808862355982294348608706576081949376085850936272752272494747986231246469003134754543707992877826849225818414063309740130329993361034973431230269357432466051928533427865304065831861907606491496062344993298586323004150787867406473502732373748786360124187547035818295879130366096360124915644430204676831089502294729963867812329944673309039215721912175999975142858256952973736268184326911620106973689041564280410499664986699896918675820097631139094555455157742621754695700653645398418491643650566599163464598558121546389794556574381376269748663637248627040830064483402173666013490671505590817411541227334656360188584442782160063731114385463791771616007075081358219813800354717225819132710518827687071521888674587375202594272248603578275313824676260030767098058163625790369804795515986299510400478317687235002582452576309524844896685377703092924139229047488503181345846857408171516225933194518448459973122086577148300017966622439332663873094060470799677773361310149529101728475199400669446742399354750169113205537245765971733188277915407574427499324543609853449644627915356833976401339011907892971230966163955611827340576777037962721855823216271268440504815572171930427772380384741349722906723422486818887248784035568939568733109496945717620141865253809133689775937665478008507974547735500219648167105664174505002208854426124279926796465785230201623441890510785781164598349268030315654541642136514950082369383932208617314545518394047928820897663641575829321400764724112441540675388036967486936881513027287270402998853773257080748261071088808537653753479786139646145013717641698429210217882319709170375795826814487844755381205556388621467741165432269758349853627481068720224340369545315712157107664080224075247873977997083539069568950793643344006740970071694173815990621077783215612875386025573164089149027682681741876357528624063943045623910657074326225371670064884635270747218647359405576358400547850555586453528700555526804641883976651154252260781850035461561709006431907526860676447159119871880802530933415368320317026552520397069089229477221222932336177842582845930019032372138534473973259284118494620875662495886367691589235383406875674296042552949316218659730422754757035647829584347372800850531347235927475808707680232428265620844092318661981195157590012417325383945911954311266512267696950112653104943521796552109976335947179971020946186949212377425310989142853689867878689200087217946538623437041650473320140816297116676168877731161400179795081216196932116278794988722233867982730336367201461408051383429887253427175010930490309862626543489061936498196384464525015078572664090760866877591610887822277888407993950664435400284694482677755533287583029067859337423646436010213273218557313660044611608658050572897624336762407718710496523265693059690587245423374442028550374320394014171334328716390123358969141798160029957181049008300129745724850506835491754763549191307965126083584078279771402909121180552406775257524045551126913936228290184815537177289920383797887659831117821894621135895553539828835462927383353506615069113860232786246554921811263918542196492832843945720736439583228889155425593258430045444589887771930731022527160141221285066282802474498860421424563239341000104721001890141259002323286153496220047068363764302460348244443287484750986661719522673071714739605644779857364679980682421144586174914117878931058527549868890025839213239603906636755576763164851610299998998735055115861937475009106552162173274256222342264264711148593797338505474937215395692823350188916250040314566810658200481827559226740641108758537791275685285956109647461270060491443048667463932129868332303225078851494224144611288245440193869340686577074180439577287704548544559391712202206601916223747942886862163303763074538473691760116595951413534299205024221164327128733658452682544780497528413986755014984020703906951264997249820573176338746424025321795673848733433568634577596831212921544832449190993941674230156095081311619934837302028891302365110047033218609021916538244975326884090310122667925480557602067388574257840119679224771797742172799864383816381621638451628734239765631860991887539825188102531597535924227605185759114986878643574961209654242100139788860967947516356679665917153562503670648727936033962910342200702053966798776346557540177015888470517277782893608603028549456132143987716479731744202149671617440318709910915089721997858043321103966102719334440877197067885509197263574439759734899834645046874438995695967613981681253403197342584281986327380143636199110192319275123110469671911884588590276988307986078749943911610043469188756458516354951547567456768060280625042726042407128582852836418219309411647094341599794592462614983115865592787392956351356755298884220520324096939467632160425896249025191259565389586594636059464181255076339612783908920274409103713943099558074078375721483499013124480394051266042180780295709141748917588242950684056326902588603964761603472789106340980067527784674988802873995507858777180365373522192049468269927125354650594584273920808517069856335001560680413941662195135780182711872898485276399878839616326756113205320489049550993592951862675120424148020394106297547322843031764236054106618179030735223873352671375825263986616747846315904755317260113703692138891661351772496663189408330364573795363014626549134067645635404490419338367286102613292763483595454256886480188691350824785088088151112430347923529173356672078880482956003911273519166376376435941470631438642652264320763025518936144598243431476907771041424856987781020807216620991707069912977337467305575219302559282635321792530019667536358499619488707865090161583785633756807325286118604709169451975624549163400517448156470793627427605693669340388517395653264250193261877145306336926710963732409479539089733254341169274956710408452836213175552265297558144780842506166618899687689225525810587831246472537432516070561625976718006058761706571848829408951323907964811128820862844616194143837412718277070664588177399892046694235413158780193453474326569654211579122173955496608512615283411735315267943097201325621597821827969171504030462506531704428244131427567054427753367262661368804393670536890042156897598439213677100366955576934683362942845157469990639000169673551393093063106584096968642952157619018248922662154323328893287362961045496030518019147432531566094066737976895087638815106779309497261059294763333754010125373441613003090045359570670960282333772526649610957815679802602339933419827160433232005904701864656128652707191104433622305305669201069284322503466773717211618812569520780320763755515305376878739689692414807240147167810669715932395112289197759207713010239255135573844904908795940969878394295287428798751063460584004279495751957519792770353650938788788568050065863691999417259127103701787559115644330086961397569186965731956576062439420057063683980388753226851423862336466547004191534618122981626417355684261650153682227447461857729972272938628543838108147525505848332395690935033706038929566706847597000700854643402966357592709564104901183798606776563205775964169491522576165497475869582173051241881133939845437081505219686053780915270544422706889916476893846396338385477748957362136590185368857081942658332437232902914781194840717281095627684925363529156271691927097583218250224234443553305507346839214119025305412688859738612172399749614356165712642251167130382390245313499650795387247144721314670088612814740792018874029218409641083655124780233076753003182400586374992859349995083688147986972248403888265960160653994662809508029631013976691016300035474165875033738702303608653537109917242199126290436270624941438753147051531756471685628186982111272475202608637354588026575157451401822224395676836191398881271764815704811616518383500838768505452450877456355818022133377549326722528399817835142073386926933637147814846039262139642979564534177603010545059287858348764379273812236481934811907213574220115770559183976165509622469438304493824421097015758474212412059727384612771049732544083006230917974684553119133789215428011736407551339656845184736735306184471595235190557658682966278957736533971166570089420825015999951948157055184613903085121014472868656623944517136626786579266600432696084687298769729418563773841963525341420922940652044180039924105605853836207712990267156699295819014216460787940624838681375947007667588973320954643668390760694976728683322900919651183980381846473380071902440566259214351093379512943402602795133319662527763181959683889445209745632260282006034293741416961896799316120538625329848685695099068306332777532761119056456179536460460671317709240001411879124815924583717336100999578573711827758426340986154537407406881248797775955754312852691662934599882539856315632264108755803586678301371728240417917223289005070132987568306750788101333028544378865864772492950882140411823503333792677920712985187779012417827370846230385890996270815243533196843432173856735401230491451882141458281522166740840606615239025977526874315131585409136289449641200450608847931098839043987388002234742772054469454561106315946913868698626536039734884131313352688149261724003662011440700560526889316332600823844722723162883004314949874893430745747561252642673582710862009475821220770704817004489603711282811872985080346752560981578314862003025699411312607193793606129948410348645143128190235262606402049458480882273379084093774558276044460593123924133378988651169724593956818474502572298117176278995467488037412422729664913667899642564971623571587819703540127499506018228810341666591042724398214214506912818183526759605312629388361708678314346452118618328487696029384375078841718865535624928962024338978969394502390774966081964403786777915455957065420611948579283597252585259827251123415265691046017584479442659303208414783572880758400767872972839161665106875926193551478817044737908137651241395187351734315949357556357863782024713049969656361397206271713881470767115250154307295096035873381838077001122287504667365477017401176125399448233949722925727030576556347611624743468783440235792959970625273334343309017629991802660055687037278181135193746278619524281600414148822207110238906055708720254225747395538127082598890170423252557087284755055078152536735846088691348365722286595421326880531383933406210637296318672901920587073982599346114655441152104217762761047673238944523399306562075110871736752230612235234729212972856204547161232320900659268071868402654153944196333934327099980298973012958056932753977800575956035609798454739076934812293035132328958959093124730053041564821295173891797951461778699542705578044747574390737241758594973413305535327439974849845873237025073385155499444933017700256407219768131446895669530179060719602587056154223600164981272676784910311856786790486236622636058250489547894990731906180524505849441678027120719817804021852548154748224025362135578263020252593945398211880269229860958581032652578420686485762075832168470489409858950204761416739299970467188389004533387779426545916831288070453974763481483223025662119830936762915260898347982222912556388230425527142351369810520396807536087271712845218278361692414876219512619998756696883155935852215087019922464739394351185531501662896736275446481139964622367130516820237014894963167696165438708894400527577869571694920502506634849063797097661477337364640012627893214264320529081858808104020814086654529584490430261183864782569172543925163453148638017899368803307755784780661333303818118433937111304310656585225709394978111591050866757900472866851117600657599696053264966664415035981452720146779764817414125452257530864472526380137394716911717726960693346286779105743858718935897860417795499913342438045151268869730116900358469968772899013736036770061392501721029327611942607220918665160916654294901708219540802981574700733256207134206765937385249194683957006821154034745673502025728003400443447340400944302505296344511161254819858526182086606192676674413817765501241935138483041504379567477091471281149466491942341707242251169425791436576412477460815276862498062557673442791866825278154370261895790781474673427801334957985027492787458792070674789169239454643009746111554485262821266718682603731032636995023801404994804893778333170170324852970887789035772460708995579008021502051892688493329636563247452483502939464173849085966469324546893668425538169688831704286501824732809869635746059408364369944102939680483780718149154752968559612383688167956392499637052257076822185683538527898182261940185484604980372621185358917232615735608055832416491446973482021152188146529424312789630879396634123768110394609178381921186854805153636874848695632187479575689289966247107807624408230426210197408578246554937655366228242731643271864441880772594060970591915918545885199046084901340429632743402404593592178720744763831402950139540089791639091196819412034752989348947269639750143701873085308948624426593521315629989271770167436415069611582635285680182500211173943176389558730011207837320486737908592465972177401215076000425279661745872327071839994764926584015626778155653269779377600449841289798795892315797700734651645321445817926495060804713036088223143711271751264968532625875729855114770539228696488975788111307427546415096561631836205010395056296962769367737562412067688638219366493379349375909558421436734053818079141911580732774545437543954808674877308696378007709797119866029203082580752690797812792581683677437124485123593966744080452580494378610927701361820747249756364135810584026270832816534807977079613008646888818204430457352521239747174186377408247049044002899509135977470846051014490645482664126226134085033041875373511036170384896667605435266686075265761336285938248455741932915090595480774742265083761507071735815736271839838405645772976131886259404245705613598304986158379116629159705283454632931963243762293610248892066796277909092680408072432967053683836360595476616513725709595001272011265516896992702094273689250068583043457089568072269781855940309997503966356423868065809724139739666652422203409071737526001955791144185610932169052742800964709956714021833958529846762856689074961754206790070385026322212529620445168899981433967731013903872305906524550312120317879287174102504612925053921102631186861479412294077437913531406783088390978504894373944270896525815526698861142149324068616125912625886083365809059680842257000387232683422592579781421999412820142133990254419351853050524972950470309950421233277960129394966089118501659165735806749943507652739639468977865810221384310456028129703107398167407741578723500068733754021566940419482604205211258675667850365638105901217015885419023846585115502195796937985545668172871185304558356105719084497822470323030948817047984313514362905847493909286388661000161311138802036246424058824629942225161610805574586880415820618198945846193388234256339530623337487299582934611366354111388457314782710446253431969396635940014217860534216507003343318430750234603931003448125390826277125583270773569852801628419454265360949956080480788708639588199346499278646898576542658657581432267384252075941862243076351533505477444901096949410678031247416573620602503191963598506450158700751528920932640275372406140344006447574732704084891886323634555701967656579382127106075260460762816813090426621444641898513165722645335983746388224536630378370340561125946827850727794314560120325934384549557095541403256048637678395756078621542375440287503951430284924276861487810009721538730780654720290371049749086328205793060211077410219100677656691048024529020763333875945817492215271151203257757472318708325513030003404194194021682945705920474597563070881189951069947463123824517939492692193474599015815665512370038039654646174582239267541886392556812202661472314141743542738220480086223229543772917166327456044895849789906534167391032888842408609774238870940578721912697263031462954496238993531427150351735028575086835600497541842048817273672633443755063851469575187892460415663677958017761921545934715940561740617107723476384256634604979796205688222489697646597065135664712330345465907049044209344286177102820326619274709597538544350887338901431858286776218957453583665825997748706254364395340978849160264994862062841839878624835629083181262057114014334344769879551329292630325169270383490353448279879504453454238783360393736603174489057669549374960888617281229917825749070652577160208378486336560222760461774221866840701686430081627299263198037684085201523666281232893251185797461574705146848472343732289903751962147257858210927553886828483229549920736879487844054534146839357918276054271492673863853513565216977646984898269349504973399729781673116571529898287652889441850707850908467463664511514754356663378993293952613207215864853165109691261096666898808529171906838134604406015742569599159150983533784351236890850786663486793981481229534330800651433465923403338298505637450836775191631068194039280260835115218603010635524354436846168505849705035489180200032926792461300142840412606707694943962172155535662661805873431057892788733957192645188631473928342807247571338604695762228769847074341432945825677870472119032824692366755700668196983746839834996200213796116400357640777604065614473615420267494745861053247642354896417917231750950035526242777622905335944741620407725170699497485078699549862091312876909583789770754057512898962587048830928916572692138825267828849218320792695308787646148116287707220536256223496172355131495485743495692705004383087382159096680826513175365804864923948503063325276823318160865087246536272191270771812297542275845830238453207663198552617908317329143411053051678290732257567849489102229934705419278411850446304573553565868055391673580888188072906590800971636430355520973478179417919563838973451135794680126355883779153030665409296898237828947489052587065969488971663683133709016003196346428966006236746279839504072282386710438762103184680225996830379755244566972730285613530506287695048925522930167544659879910940193464251683009833545633762247033697448864154432266367359103066893424789246900385765114704139711862608438205918920462662561344594531373452769487036519225778755404342516477758327480700889882326205980033867620229865534374482302491775486583231713064166394699337153833890141383122004751079841316164330861785907001245168058714515660712147170222320886712438931881152036915606031031138944396337473469214424358792642128357348938380404302007057437538773861484076170268219729991155165358025247631010762405680055202984105612730389295474628411672715800805841832461348778075196825151383102270840541054414919200665169594492141979377569602798803808375670953864853296708189213336712672166324593211369027085727719516765578142655394938371496756868480654504967345151855806782651523673349458855763174775929904522947077986234163696776398789332695547228686986527272105589488940164753099925986103225134043921654163754330709794569497202107026142677375714162004085734428729266382137914704756915888823499112102044255062889509071806943857790897147693399822938568320056861157313393662118144270414590996421569625769528990980796541264681169607124656408280174266944691969326987271089904181603738833938804057795439065641969277900963016730482391753413724953492538414725438346702563397894824312764149748092112265341287784839766553719389407433265112865372102136069454833215072391418166603428396032383681426766045875687187887429805488361184181106970554831971802473483305176300233373149834050836963119053392411165873778264410308790775136958374301362007138554784686127449441705554103982479163492014456617680213784075239762009365530627878346985696158181870693162717945575526520981233370111773482770497092371238165671661429739713846884082674939886844727741018450209479164702331040537488827916545106720808505671949288197047949750897619142220702580971348625328984423653063088977078817886909376038317240413810068279393482577366177592549157933684599853587152533599782601811792341431697229760124109116715202531978883925854680538403909608773088190349033664546483859196185999645702033628866093882731318615504457542438757126137354825934201078440425121596915354756136009284845999771460113281834960333195350174509696236906410988517012689545414748450560718065382625238795373094651230026002856875385340749662796833532089265870240799311543297946377132056228588510171390882040874139408230862386421570227181619969780396014124682464199299430907464319431352920176021555765316873586569607589604462358868156284194741530786214141943175298799750523531733042637900726874599048930282906556178079381419861074246365478501698012398505580572903170581368638004374736630046292674209210753889769717893280542099299664460955887457407182719139108020485938631922558618825804020704562527672057059711661628459734239932192505918126995387980629543579364731542163292883634749430292596314854402533808998549474741896782249734116159096759017472723124414083501971720135032881705676395828293680062828077124428890205475018181216258620661355715378270862672711754844905214797231647097518067352809656933577989482850326586027054949203825105169783840236861029139173289199792380888482393000882878093145579657434557219710081133149245499502137676104583605354802873940311024555837396264920590536405518381379941215953495335296417868787824698521194649237036222283099534616879030132584035852017745194838601557822666856288884099113324455766808458400987861786357211872620848994874729759464364087371666955043947790547911320851892732628823522072281790808245517819012050438701289687141876068941347139046268358346402564632821789459845563972210805638859828889221116440382834215875025546180868961292939680056739089347084334601485076063378674806703626771865550541395618302226572490090654137770573791331607886383143993971489672222071029318403024197083072178183820206620052612422901674493771545963996947678773737765652567460716664043785961938245722372488071949760795484450594477696086487144422692554304655536175706166543399184446555677163874288579751074809388699345115422122011895483450927812453533218304747807306330044925833985460327196159637697595556017202193149491064432591550071823521399538463482137026706312747697333550306599779485655114638479049175881833818361353985424799537082097498324331138828266827731654067282170371601988426965866558008092241338884135573181170528984896244233738356829483369305753573787264562367547606823517859619487499159790772378566647727518655127474977095606468984940637924886486215831131969114395167236045772506690209863036224098018911967199890893369082787543886858049234660097417087005640189393404196044051539587435690605366289873972753257387224388470873099866820450372317962247794741004564825234107145277304709198816081556926487936953060252556477547933601028387438794328360893180066756377365301309084298710913321093633251114391873763723343363354601526925717771772393990898633971409211986339510870152349309801126112256622356553764898175903314881068653880795021706925134489503326912719681491186258863891631878282634061293375705787901546767554874056420792159897714784621604172408650255521661077061867944790962502748053448621175894069143209517373588760811506730653293572514454244995048161565567051214882518242546124163650931208778247937552491245751302880679535469603577052455690178360679319941555278370522303514549377441569241206698315593110024973027757567053253887369760730000045135376675869376315703116436454224400095694965678056933917526104460152404709743930357248787365278834280932329705457121721216922229845618043681246767953304618709035330285470371739515634681941762712227216034599707774938331331467081434266307286977883088668081439595521210694248458420393890091142074414590996008796941437716335259692145704216208196936945757763579404666313674251853644127948802626353029220341483753068709732426356044948001334032120477926422039634011524410978599486046236509043493638426704652140434691143368942243293239676549102476784745256010200631474387919037125379365001278773057122968666087895631687305665521463679142988077633818558026876095976482725009737875799409894747379027480635391862566472261417482953190717222913932589632947520010557849072794071724451480611446936406283296897166893760479936765259746839298792433788059906078444927121372346077999416360414111339658952939743733017507996899746339925607889086813210310233542854903365717293711052034695602412300566618571046853310913747442591455179702149844546154552767788100203400406465566109515781080371823056314608325241137509607255868307555316809834946712455127142078218384764959520448198820660538907710814327807866104765570952116533343273825655813428885707647890183550709853505195646557221969466462587233615791998126512892274214826650198195254217272537590211786528255507617918376126612895550256278526946185382505595920984673579031294336372633850257268858856439010698299432108543133608054560203426846794124241112082427433716727699999875597247701310219565903376260414739173343670939751639121152008403671862544026397868429421312846835696477596372022925737611233622278497479364425520617842663423119181031422771436634227913034001671640972043116149539679558907079069968875247435405024533912818162443348542195199691283242083275355421716755391014594136552831514161217546307326026279467029574557518046601224507925306802384963151702061562211772057251773137864696859827693315304712987061637293603635968413555531809199517962613056455715439886991254509316079453127367231787912756253391502765650085973480171251197803682425122635945898231981324982367777243969105356035951648534445524863324405031721726772944972079897897456781439513427389773170195108544558209741436394106893084690676918105197369733643999820077577585616544106494982300357483996860651573794134997257094658973203224291246038420666304331844515625982500550560022943049395959052616204125935257649546803769323723971400684905650755150563099941098584619064554080564964259457554949811715910328093457723795742243093966297031460990584418016386106670679256886550633956729717332513431664552725536596386043124596907672094689327021885540209494681744148793954641934542535508127823940794673686137580480546586142964891488923887975689800150385603622244772861871982888295809194453558469025612714179927732109282598518645947725150413594385485927807911384751185738403407584041337561133384951393599447540779786617950858664559894328815993491418645391959024199397249780897724924057725657046269603291000546687182626110794030377493573115639687578236620078712128192021020787737361192986292319176040164541980588413225755601704929492217956030131702136872064611734651925994382747614165571862214833903975961951621170578936386681530471898280569830361352448637471937126597108764581185901416917851342285101618344521997980294063678022047937085572220555516440296268939510161364734266594232158993510961484915759352479132292138074527590037498006022233391114553376984153876508337411291244972227474081038966515007592887066399223661337321970509252949058620714237254958077978717930496527625386432735780247694620164312796577575840196911040858588731274312770758805697233338181264508500681569458302082061221509935935199068795818548575857412624395998470604526815252101859719173261438708098707385793944791498058913861283461888235148554119236229668488867121929008630553547870404506917553730954096980184305613371426177814083592104562557576985160932228828298240517566246621042482438215723238872446585439518965590323909794888122853704087678008897584031193024137242705003954166700044223348672302976297636142159361121532802726644392303140752972519814581785118749526021615356871182532776039727008749921148585705969550291672834635706469669895256345526699333823534154932545950587376755073175473136017981300017484359755321969174092340477796392682977847802460697436626794134708845511045186676284750870429896795867037352322664520389323322949845527739905586943708423437639332342306105722062587398647592703920220985458095973924957094151174361216369560340528475409935104240996837226902693390182054456035811848225276998145084362799351826967800306804960452191794341146856103888051086222983736243323625975279544619436221540943658244482862334485088464202040430736811148129267052035044038658179106105864744488436738143452836520776170063775193572551727160143555822920003420768912025654131395115431830740577991389542031811246791882727397249381773539683056404874401235437292882807141229339258057423045535942181429848880534604752813176358830297963360547564474812646767351089483813010736175207035366820358918953473647216200319937550189288362531434537219339878809722675740554788256912380790674057018819188322249531302796934323207093059629716795606488815002599522338908290185597213124317393216505330836836498616923922234159130607160608781794462601886236613860151648167402614431168608049776207130694841640967217510912610669409665876937670759321450793295902847238534685808841955241909211959962895906655886956354453062602722049557197211521657565456578457612617864581589712169561263061896198131830421232413755851154394110970057770556298657144691553715876129216586562908857580879503475903505526998944509021355751794182789124961926425882617400478859264659348132597196930077752424494155560301168630900913113238530933175680824512758773003988475626020414300681058684776832242066410109236105276654607816638985268122838721659353200423960412560644406701143717072769903293985178490012133253289404696141904017976874996020212764767636871769500419791075715462187924241464690383182672526183173608868595169699339296473024256795647781255282866192151336669044795202212384297162154690806736161312373663802591895171260972646964455945916524279170112570416812771506934283965067869525302658574537374908817742045284059060745620557607086156916821315232055124413774378968660009321322353901019274946881760227721438830771914653214481626487872491215135505431940019015453175515537252913340223631500567167585187046877892759883983069957177967382313949650081468949258553559743143319134616446014490619520700874535749329970814818044085553352826871937335728227899562698222487343179254669326466807149976426069172669848290063489821672746173462720229507324681325727492685394085669868409707144468008864102589609911450353189021069544475099704782860529990423296286978719843379908730073775071525568597296658140706664635575738875860979456403124304520346224168434778511168241299546299058501432986609480157882034942653813250518943404186615388747556144318112927314138218794549418347871934118329726780979583507703666768255377370326204349413657147426086529208397089373266303999826144848563648578788395011091645320725524064560575252095851418370341881262709170358732161847709292985750457841924250846211564139957635426502390829079890235699762954971769677811698929550193417214489805708306571704737760045549314537423250696702256533641634470998661674834566651985252708770274335219038962272153418713262305523276530628277713239933555042237134072116917701836827830193514883578809584908762828667382700995728033157846482901245196696621384265843895841258886639938733380734686566033321524282539021410774020275937629088751327250572079718158510843571855475691660428204657155644858444594231598508404078852021787376506538172606528765948462542285778897376138636340842333556977489335936220817454756663435667101337565779299216298226515066171587927067488421845698583040030550197514347359208837526133756038563562198778593180136425376231704948936328815597113428409247672783089012071571643120123008775516154303352842606342182418316520652678655928587514839652434471092423249207336198705902659787971972477651541590069172214348571091356198774010970049506808038854138907578587023667756606301790617875223353910573132230412168212408175620184097895644889454780476392011003701666780303860251556657122520802127538195022025067228705017173813394632316652964548103740327142234268982863771766889213187366814651194247519525324904251247608815269488231999217501131563838278420171675736345931361539455702688660435158572900807497811486301529708532096043394680581167466531519187449986620866971057561382047214913113517946100791678196750293980126892500367027753311030678212332779175105437863417206005599073042068917854485985963746904557799274949549009573608919952272204230918979046252988063063735989201854527976368470594981467041825956368208028519927577900401026485412813633082069352410763996181617848206329691636148548176698740347321567764768099554148800775668837492048559277260776147089450869585125164087158517242062322582872974184021070851675299491441821303195553758365214440194679801099479729691393902817707097790032249316333606499576431868780034957187916208931919431798326855754875021821443042680740007054251002525947379907308096629145707311064299202689367784423455118438004422328989983014346739582000914687129505857536997874074262069433638630136913139098614820603051392492811152205639714521770445805869991679834784184448556472306396726309412407140188572799799405466803969542104206585626185292312216032542122789835048096307130536348413897360176507221011135929068365248464230023275871698503525044572091610217592224602060433636458614361515701831172364812721352413108085187121473757611022662584498184217134263362041373913340452480442140847785781322342118205928446333115724520309158444650049909180243926822553942095189055027091091432740320496445766850803080288347434490076604812779359385809601836778988906554120199188378499046984284164543424681236478025992481648482531145228785243231340874796355737269163979579774195087266602964646367659785086766995652904895112866818619618972853757387533209460759402205504067183769940699452193546165299302616217072111644261030826598107302093105067551504478811858075107133997910811980155462675919651743465775899423217898919505727183032506662940172021888789405002512630394675243858221577639041839952368037938954344991223336009143248677110936993103312149031861293188317252064994357442928277371772420167711619796952595371098579760130059589518463613292723228019184067484057282786386688139456070719476169681314332951316978002897619198623320779123632965605445737330393384576275760291577742936619338594129211138251705947939734130579138616758140724860391494356921875979673034237258846271461563438275613443050727773752002114380181465906812956184126571771351149384687948222317247142376354386009992407566198350981640634093457220508683308411081370542103757249647399810782564858987744650544531215456153504702273007165171999264930964032932777433817750690228495909718193083102384786543388739676148739173848205848683600545896050817058124436556138632203975824609070761623598236335287754755464581352158093502214158341618866257580717769412259068973196847080794937793863344529050071780213102095290676241816173012872672296695799537076446991496924947840851766000580019855010416581937328915130704788382206553964056070095785795042445084541119588461445631227811066175296142738334837875335279629973350522685446395605826925858270839945853250864334710071601403417360885347875635784746333580156886249851336764103297533952543099588651664019330448255676932585696638520211040620467410527734436850796339652379891499216261367165045334138839045020755851183827087930816693714728383034221333595979638236775730186033298979986268465006480742857843909989410725576901552109131452581453505933500321622655881722857637191237185465476773145144925337293066499741262738480068196561019973065897378877217242391488196977566997245791230691046609402434412888568271653965512482686319162965831847652099494518376032648658366116766132893815240121848684091796493625439527966474702702835621444471548450650050812806716497861226766962756627493966170166447834230856833809760388095745882641733937290579312249952439881332286640315300416997792611511810100790494909074560296834807077638615461253168725456784262397577986164695496330404705059950114365612774071081092312937144370482062306208508332625443078826470705901384731825778251576223830872042962959480316141531426526294813302244363911955663719832788183579796360448998623683189104234461360650079980513268261592729058443549183153592801617302916845434695564489476765274812878945430651113943031200959216874180417630886585554553915860047028184217257954501192977171221397764106683137622005206358289789572092034775881877306214488600312956163944955044075617220431810530446035494098996185959332100252640189028001854578043155735057197493668539933011410858964667726717183183666638879700844929370264022177017806720010865123764732206126438898255508060464076758729558542572308099685519544216138563219451312142620888435870355039713959203289722972780251219742877552887019987036516708754594458678198453599276170684310139897560446749270154246678349510911126337088281459607318165400104489102128649677079737476431368252623543399786590921580112456848697178562775404064080400089859605861390699926050039976782234295919343073594231507215748875367763225427894659136531219383630111644193578130411150204442547678340021866723968646002709967706668734832167909577144232666778367408215152780445695489655818085610974533979416070436669592568362413952627664835986651516696858258752494941784247725672963367698429941837305345518144190487299989927083076595252205658330348417164151126645003262649172829937246269132885931626667704037811877829890511769809133583886016401694535369858577683816159033821079314601448094368734356441691609530576789545038033102718499084071723078779764332195136394242084558751559227219833025893458959216724610735922197921037676865563161101876249052190148265380532858468858715470853566081666204535648670339968878239076173272146215264338012573866819643993868421911311894194487212481565138312965984388161487777069015697444720537746306899215991079258025344469609697446067590058476920851449122967171431573352906875032313528965856752718496995313435145124206508860623629569833580124751051744835549124909618098508083072488797095301664198430066726028503236491386993453296069654038728005411636825114777152938914918177462880995794904346878698589009852376626448231938992221792416024254478227038274842947133790641882488187302976326398575628814651674269299314318431670201793830700402790546288087875211290251043553775144756159295087270782455008431412367050701828343926302928690306826467049821742741341852605986661495969418803652667906718174903094483654435417685283072372575771022827454731839369458382946758240583409557131507905059227405851378829969910796953964825030056902112342463391040827883888324341927793196166711386446600602701593180808529859103828398703866404726120230047893793362818763579083063073130942303230021624968591697992888598731478236149162992817129468847834736001321651065058431446570397550651193431784533512579140835369210270936607544964564015271948769429953608872427462094916474906164650676171693340934270661748805752890034976843564110615821557877756023174862398006245336007706157678273255459860517012804425418132424846543984644631986281000800455348284536584605981252190482858205825492838572529123439495536266484586610540176903261625380812399698151154979804078757067762477267190512566826414452384140769370831561908219273389198116949614342437129511926066484900514203907839173915303097549944874543812199993577040807651628717288909240189942616266043273551325810692154079495297640779195184974832453288823593460860896977346977343674882872727724401912050069875824316119337006745319149376681286258697875342719466463122355653787827368267629814881016059551865570077272056091947961658458278125890405564516154009280567555822214601580406180290409692945711321970802716520400743976123015291405704213476353232033320089143193841495648001367323678736462861416878765151179280931576560296943781773361426300372831498784844943403935047901624574117152023414561767812459361284090691622944604591507439085469791214600623428661787984039226194358711400377479989883063406811175014639314445129749245541593048270176266394599076663704698496700466038249843965529728311684390275585881521201148906303050989582135842160941768500754442352581839514688448083991454499908460661164324912508959592879325679890443452283527659399979660185016028099926665006235855485252718987825003935575318188459661375379936145713669126018475541964857116057664270068184446507369009436470160133977488915550171131884703924674580146248909331115105747456990702009723295576443875936226497145289148915308433542774983413379590118319358903489870421018245124276827076704315395689960583147368465564323116392829285447755666685602177947305971744606721197474947383562048672846707028317082092528045268169498228132118349763569513121796756555277108278426613624287677095441048234705941243266811739296946152290631517352529000318217663681699152422219669651400835374751522496924594059845077207663819841130772798986446036400613923689318312451202240569817989405666062516098262156648141676220996503858151303470012307642439512014576993714034099958871768648306517663601082410061755262883380868336667926255420719349009291485999559981572019035828544399609980215230309310570402476548536135851609779520508203504094051935861963919191190275583644793834262645879375673258366372477049923212499827102914687767384368617456481219225353668798827245552541321690975820384192776588165317176292894963448037777040401934592156133492792186982409148768049009831365172292991557921239783533254262862144472106139249216803350052200412929040464650861411932136068091995390241066434165421828371963707338741439774460812330722728461988495087791522491378740277816183433702758525885266556611782193671873002393569602099774814296039102605262984674012162369531159887651565853040794693733094132930979825530328415309708223018730080313186431564341346153545302578733314279631476894603743771368564291655476530189911643331209249736811115493914456957022973289843230889522254896973818902204679092936319745358294389704858263320606768880646768441420779766013525139386202095519880982056901729202407140395409178392128926616950729010084437766458072658294125978691383842984156086630999972332935016198755271272620213170068017737317231177821417194032289999962290466161313699501457051487487708209181558616677890236874665254031003408486079889220082261335183859824066302804474521803351866059710173823714672138609705791400468257026793564079633234282946115251100390857561960493518356142737358390247153587525730883609373622818005478427107890219882888204222255645000937250348260758338662322264305186897967395466263333655533950296119170629448073328395669288325963749917185290482337647810366314031085779847478054270327603491009884522158831245197358344114274905644207627605019410528318134790830399299984100290928473384892324140059819342949183024004910403130544976304686031400960547959229710518996335100550699439114625557694814679290767450542639527942580115180082414810458629786708404829349265805831851237596570659367634823807858637920158176797015874588701467009497647060963492105031924463882463760414205907142220166606020841593426530854043798780300881765197491956245907163384729553805802740378004197202169812802798836688447518643302767805255649778192927557505996847010811972694511459752122626357413445546976424269430392006418945146899613901674777432471521390368956094847100427244760274590733036542276667416977539181722027511556332916743084989038971661300847409020622047385077385184976178008979000450469876239017243472899422407209211980756799718364573779048465077978447599897173646113389481378514047069858049011428246261223123674613657356876340494202566426071795764571155092970860375590588063635886473111593572749058861878156527582119754706006702067747930532993442980077968124259679348366189275712506067570595881766590434872522591000879613403674529201046395041384443967487083580763631254962055317798518388407797007467893527717096500025909725582113910833848514332606329627885391612327678360919186271732428271102830049059957722889060692294157238515021959331574028785129078506424956625666725877801535818799327483799308809607524342101797055880181973259377452408304121191221180511220546048154712244346443366413345440754751027743353185669895800745438578036322340744128694951101752411186578668627542073770168613728025567821613856609739474024870345194470073201582312426500525803756739624196043378428294125136123334057960898307474003774278219734919145794070376679238665168401214321459931835193449540865839637236276155120750658620514828262969388862009055308639302910419396684149392163929956208783984626762024652196407744619434703397114252847008200990829495980485664034857070718606812761584438058739957947601359835209300772160202377177546013830533626252597961208015016834480017252571714012633644998076761954386429728418810778418737887806837399689081585278321196446218989577006939992349952830243774960603738247842077793661856964626284704077795715470654993411060518145508875028028792033753090438599316611188086894062751884644758881079201009145371135613182473614278447001159107646823037894365626991178040557207747753824469987961839412493171322884404461852289780174799412694043659947895585840719519248573307768679906914965734502666650506482658815958000964891535682134325700956922308161357878335437177604722297530008559938839560632853940295516518098658738714342139662270953462109590366778920615571065773314260333527295830995760268019911431334452687468561396399049078424020040540338175301204470750347798177942027282724028580572246959290201835871867108458328031627138604152232800892333535880629947823283069949382689104631442701800556952325431420514724831277515484910787457977294723135786230792201533761075316918713545390503027000840504367008995751659583129062198204604006663061004778070834383634640073835164541802908368980692165985395401065769341279368534885024012107059328529177994739766219847181538705059730729211505483849554716138646724832015596593111074671492119029772344720465968596664886633943091211591990714453281708756107342349571486612352210941048307488214032319563532332273655108125256874667767340090804508117031747553163989908879068185422895950608854783153123917946487591143541305850063849159984767973402054298302438907173908512166706905921401929283796827040466343138321935922224157017574837062988546423716633597282945635838095601772051955341112875021920108643807546661222124913066989096319432613011123203252665309513550336441975398514515993983398707660408158380741727161442047378412912440605468758919117402295072272221103362373906361361287000770721683172089707126731682635903424420044514693039303126360394540435386092407817601083555004742199039334392479233425705971762493554182674751744317882894906877129406378590347090512241195365758546476253753665356160258845664039736549208149632316134354897346018956588489314078367494804578617789347970231033636916085534675821131177783660924742471104437304009497252076385177405440175850023201855678436576396398129705397008949713063657253813479645266887965029130410358022878476733707854799476882269053694949393848646797244369569747089565249249191737367197172469190390552998309025308125195175233576912290587103840796387542975643536373054777178408800820896012133499958354281292515717929713425279644940655833974938354897575676124290098265906159930013106430698622785265099120689573548220937402653073519876528548214908809360875463046583669864851563097848538947444151992508901576549123600371113464754110043789692617163923966211449585395030287676979971614853782347005282533237536811187875873215020351870357162422044318670291200202987854957602918318625816910176129263750381170712792987730148330836447131752972553079739563823870089284958638677077133135261774019056586133558239507769070075063207747664170364346642419303097457964611859086826316675459412182213139740292337991126923779225093457087070091751888061477046756104390284949162958860021561432166079586559751774740545458325300574736398313109366760045025031726588846294495427313511596315864223889182578700974901648083870027220996003724467571554839454566811354668454943991486060733945555622211316731706179178023051879687177691155217766911702291734983866953590982636770814056562342184317167193473751994516752556395396061215247289226511109493679996189292244312348021456131938509627553852751354007418633084817157159481708000676325727035577115588870752215112267930595367445559255118976336629308042240244017159363499097880729362623765399771006484020926517191948229017738196631442178135089622530657148916365207228346168777139348563139686805243110478628274221482198092101211752087378391006740222357481697078260240392683307373201832019909953870900222378456533170912900598330575703269174781523044448088713512923932335139567021221455828978006268557226599657575554910556600918006186523324694779096723482386970145631786935777172529654458757423915918546224203122866995790842542500888325624659087367112110008514224499191529648109651523697418102232220285777946079395825758439220197541711230830410944838113693647237540484252138249052763699860850941774655142958127449395943061509789229488975270750774979264761960312535553563084353216073142546146679211681315283903979531252921779707712328595324071297941573643167990605368342138232197726383813346956167793897620618257881789366342784594357783468895075724835812092527004955034205790350982395404829829013735115410573035590945457168656687208921324773952900297220824644213931067887311236028929812510676059045600146636031192636181377475021197140496376974443069684845285859872187752295030178110655520814697780086956733708628602167061295965533360776364424945919870386054359502607204000388411385048628707666528834925853170411052542499700515639245910878181369551906485090670942406958814687177246904514737895046391786105398163050247083420490647792830617245983870673609390796005651456728082517981810615353371380125789481621212611511010962106524772710752261075957426569522907171786867498165137891186996905102927787975324069247316954065178332395464292621061971993765545246122014268118523685748037159346836861905107523616756527966976087042136112195866418888652847904865056860433411177415634839173186778451105087109144033167828599180436201375023710024707238104633696369834743384419779761383538176996433076886864118887697423559145292392004798778314521784836011298150533517681533602027662900166782639941507070667599099704356736901049802477737323201795551293037162773952692270921499604867166536995427800653754389408150425126030575399371669998257886738991835460954166180625804079467131244163834708022300715984590208940826625814714770557583057114023659006457436711806752353530208115115306450926849514437293287068224708152538002680261031978868116601406357463989347895987064011250559447356500748085407212399089800886444881228399514415622278145078993783383464756409954735322024236054704411944283158675686644222283463533660009724544867806898454806976054935028163377584895738829802231440510625336846135104657116337040695204145594676519890404992709616317735341450963417692692896315437964403636020248402769530646463147091380327352114132834274852680611182311967336985640521894671594466970098311605186949933092428508586936289377039936858294833927236361851463582276970919008193941435906841443650409003601383102632955761353154418210944318498842932930478174081137356918871079433498442785836419612950653453267761748877281831620840497701918160786563316137882203522468417625956329798526642553557853829358811499319648056456858011732253497228764056451879442733701031856262748930081015114001612151949355864712932483528754801910434007991048627859669739909555321085814622013884469205451556893721388303210140992340097518034688197814795819717870027302823458050343595050666191305323452062002524882194363517096047792643031798214879188534073300835127640541973795350952172262928099035946305331367211438202581733161426553712767607305717783541629167566263359766910764143251207155734220099421048045052320388026490448276663654263222240231857996452524318564718794088413342703094590960100439291520394721045427583313867050167865386984167937293043855423737226900937210316393663559023017445216840715665971826314454301727243588626458576848702663304891232550118493358579836763286552199329976074927502388189217901590256033571324627713158626808111587517191121002579221278103471860949626473556785098728463413193950297419016020849975119940460020769755079489935188362277425016651377032840253906612515821342454543508705671813282805415307046422741684661066856465179613487341506437417313593965512300587235013570774171672107370901522122652103075420789502985603691788604293284787684066761091645652613543580660839095520672468159891320753411646305735321685953656584072621144753070618985426126568685160841275378124783216142501178233232533906739058876015972476367246742513769045968376764821328891712522053604108128992786522303775766325610457124104701609084773213116201411829503291458565826867838970401790710331224385860133464887574369022863048517414737830668902545971243865495307835578045485632916224769981462958104519395222396720049047415824082774331169749222942495412197220557718773510712846200587344049451621206586756207867307793000257110687643076435563712099100295545086450083790887176549958910226957260455367374366379213501057164544328135394680180948838737346895377886789492937557833040726412700357380445372049178124808363811156966260738848997704324019410204465001640047493911756788852537830208138366875708493145220162715224900716305766892489055237683011353322264593878365333651575087435350683295293373006719384739419769296509594043869806538099263485430841556867769607673056505830576691992234649919727167311637625109386604359317012426670819718533450242130375294920889386985619426452414801512213889793310643882983929626794994383142556636259880939902954789745378342960627058770250378474839930761996303348760029986445764293968313378494819851111453964487278334214814561575237398705583999188009655866010186034008654787756633405166179077942934770435759530002679888609930425948406646590192862966462773900175433159280037826757306244425467273130769313894201179067340475295473852122966946116085482197120444759133740646716406332408912977838112083931308536869725968980629500758181644553563540835451923434296879666816896844336887018371314486443484796697204434503540272112529030476417383922045681950076750481993742918145309301426538996343703169751563384876368669972721549541959027502058995277027795524937916506815056705180271085121090623211607796342253537747759695686750310910017319676204819781970871434507474156484711413447196137416557077308312898732872023611293122727871516659494376882483842959859067934055233098353952387829503690493816734162620768815297818733078390153190992392609237153826022634397744643269101216342635461706216330976972872368429452149115858940694637968994490651511043836718760273749254259105244013300160226212237284873334537534669426143485314467252243091702429887756730549666482761238152461836055348576099356576105266116017365685628837271665793907521821079935728523384750854375237995746350935533368502677312204958803973567875236287709125902949534006976072744678020562480690446063117477874658048302056936652893550571522170589272858342313397003016632666716403241123153595202022971712071512000888714499457190874945131588127899236651934106468091477492261384839851510286339971300454724574546356064514990689099691259115446664148736266963549228933806953540437889407461289564429809747426829188177915165661277662696773609537329636175830826735584153134184687359473195518272362493700502076650592195903793888478708141839411152392739033271748034050932449138023628689215844487886406567861495767728944178349000679140300665556307518817208039865313624600455198692548756505353052388472833964635250931173165419840005056347040691062327514919947054470982210877104940134450365841789242004558862738585242491662797593154272552249992906499911580229374183105789931457782606937898357991561087850463891659568181949435662041140587930288290659613116091169239799877194836705176118683156968353828343493946138025661505597349601694540140357228717866411119284252695893386701555734224622406814179862458175431677610700356949659152380416055406926454149758048725061649832198924441440954831686180261924563305715139877507190891506596677328744621634463984219741712122302186374311333914363044825067328038794368709686118013052156289030664467641711414608259301095793114801303351217434231177025125224070492585216840037070332675034206877096534829732987866943084171226066646290469348671674848668682389005013371460451961347789017501201776350537154642071860199303666136059360341131522605677064535516333449616246185077241722054931918265768643992527102310587323473934954362324859138165603548346146541510729242582703915987339224942879416100617362071110723200260437081315299276183611483892608390914763928081985348156967672939686792479626122078599324641990366990486305872599854306954360539621568065287853515865251827767408894482361162723199584395945890628229828347504736306675840282597550557767611047447488124414040297383889570244921205261172029396720222872156859174935374853766174820899811993702687086506135676009017873290386631184207355065374981503710941339166502053548453903391438316576614174658046080537354893263075116741175085034492258935693375097759646351815356769139348255305288847047187580404437626974878467352587359237233526474091706625692856745466916117011809054096807493961572105360660640430849901952155639400124550227744758504958192606815350389545969122343965502948479205601606361213518227229558019951580623983325171469900984268724364129430188103560864480990304831581153420607667350572470970843944180151348442041484957296887840431530824974067828699946457378793028111416066202199347460260063665585358997827569977080692149340847388477782150248478515764760477223217499480682686481921686060773989667831035284908200577110271844362748811971483924810616365498726596174801542540095207938644709174943156770032277028331794775907017284353962080833179728255427589239858393583182494524025027586100884730229957357714645517089375994297524178394506421489079664851313546269022104944866790268435142117462814605177363540758543499919666614671403541193450585469023459469266039586882399806752682571814105411981079553874852437925997413013637585725582428322780011929005239302295183843839899856412327135442280885087127582909194995282386662941399927591167312399595781126094094852692957383923435226068605368733647712676012962755974693002066037678145193444010300282038041686596468202547508302882258227551675474815402929699734651444720099755344046079495306900046169062815402384032551435427979664886061147514898222463741717109876023349914524998568163088300795671873984649585374376970302302253144836028674023953949277669832126413740742367146621284351586102031393886736195568730832255242229214438050574732373475247509021563984680434779728466757512120761121111315278036208640874346581696056879753885363428062998902301336841247126382306538834590526356906293159182923218265868165646558358325007403982892483887133616156751492689627384709471988936708408807961848007813506766522236580435123560172430399403671434670197393303070233661195338022972678243386022406170314840679415263292046768120582026332456852914427360409710795451912667973137415356333849787777019967878398107394524113930129513172942756784196797519299114753620848123022450290666024076876591651615600797430765679863195809680788126105426419352989352392493279666785698748610385799087561836989962129892454741100032254559386091885461824349309015695701613620630908042676154282769144809315183554005827365170558529257527805498791734879390084114260318235610976709743358498744061519163693919019575874530026530226475570512037599360539784145979803770215986140740426067672363894246628330862688526713941858270652574212161743717309574853629260470159074897145773320292931127441547812640487744325908917300160036590840590324407795647511491068817601520912409332790896712552757807159319490572453360474067081086195514295148941414982120458500464592300892471816096575526365316586660101814629636240894830200723498662392799984436557763663820120787057650260757803139611933960983887437354414286687142640799930072564920713501349305232684759880310524205345200893971982169098236332811460365124114807318655416401657611982616910046634293498873862354712553249126327239132550396816203245708577760057706598501157045209409882867114792777123425962682820680892846615173703732658898865068849942097637516810211856189420837012261687594753082762139982175617996978462697750837057327376772097547841708125639102609852674005027819321570802585449937864510057100646419413231191597164287417997505312030240372471936880733423849429108256049034553927351718714699676287434208876272138545778948439925020659949955972967029864219793205347815974375555270976218649978419954977166932755730767686667562926990787004191910028014692741078555036648518945554982803288755139706382180339239885316147757759931770874221133823249287992222692187211579859930859260322663833042720273186747386900765764617691859964727460204327135643565181651297165723190688581830051288418116694784895608734135908357385697728057722380112810415583698404081405719658193236563301838076745198190258023466251890427677677239684121164827192979611436819912781368510442010124387937756073983053439453862892557810267737434637879255133667450218032807729511620877265149033963127814209039652942028009201675561937084031102207642726635492635508970240505215828495599355401988242112552270473469961782992673647182067608671646456809860093639303557701740182689076286275353485993802426938514092058765380753030698467871303459323792726403610613319206409487742358562548479163151639918222223678703439965086320290580469119289417058633370323114615054753942093393776870853410496724360922248169670198036220069367702795057127230003120249895366630922823043305368083241666898538847884723917308573492485611113152297533714437501072702648165291389625619536184087452146051790127467473868330952722360646441251208406929907386393645933318382386030830323159472134822396377991241981004017599830024015069978988869024068265457342607925283160617845269931946650861735838566162049806167847309266000695069672889921785102672505079510903276322414254421281174660316000585544207670439298254757614382564739696839234704397134085555660384572345985706197765396973815397623066995493487212652752260949159859363120397688925694827055916310642726796214639337462523515740253821282298575254493035934277223414943400943920844723528973860736776475465647488531730747328579558300971190288547869412084559381907323624687106481809094375259950700930500981306696611259067774459324341987090877916131069534107711861491378525517112034216358514455356045159450439759981675321064434187244388426850077341676189325031477103507964944523094963554782722084168139305505521279814468804674459832259410600023371205185320201718797863677105467792421106154974081788952812849479239765797018817660545506095359704367292709658243538712249585937013856657632839581120085783128815867937645367931979183152823375096677367414455498572227189734054589748970885842336562155211152416203257197209545931849203096161433827900241184107509062563112322959639175400914685714135738635665715073815727997571090961390011798748223118812533776536474226355821814620786221889787657406275681238109118899738076752370007531608740985474439639396157441560499662683525417306047592130066231772282313596607710732344910490145374809648357857900489992041388599117466717433023197949750840487305471051132123044332234369667583193446459089300851702338058777655049151218155242123139210934536448758547114976937243625396447578028022656979599372127741300718132433615465477257179917402826894956397960019144534657398013617000146453729675386508674399548303559573905553377730081551181456446065346004322638552340784560579554883765346735531745573211182066639413160035384307928792523191531659558809681648448736909139611358135111895163891362962199009535804596546196200995151172655020187576902121546649400508087562018813914170202845311038375566367224250435909784051717010465297615863348004465160985058578432805997545347825052197354718742922469293690361021222565829329915928354083849718078318950457574853641735567217915176377615867885113235796012428284990331320218582236327679587665818014433455527319407382833699997727073725097118409595465978227311699650559181741134198789756736812660691044087802574887459944863815699653985274051023186599483512201234053583807444337550502151171050471626351942681588834246598041691221214515852528179095442549763422262017909719963910536776500481079715516311016470699260572141890780593772433614547248406354985870760935219183751454898918434719471563775440067047827421796575470174813644352594146631189951611162101811546237024506145324831707916275444911059867401197059786594778770093379487096749227735802377030612808591252736953918760364451710639851605791981629691383200184709127040324465713448732388351522600277880737647043969417945183361600542219047022442260787458794012715571547910553145554176169520576245937418660051501880551772954469511939369124777761193527978796808533176372666851761662013688915192070740293876077715449079208735036507797141423661036604465447570246016250768117785226510251977905586554875222120844236424288290643283524568059366265974878394663261151564546109372944249461258315895338449731495014759041022765804569781973269770898891683870738601937590702180520757247504644181400583063590257686826902142067355661586209725566456382678144971357098305906523854113990316985054690045171117513567556044441224291327333900213614546698205075185588088510726422310873039002889250534172588967200253299655921136226979002002728792630084154027687940651733600905631056058494401344497673899090124013487416016599982053303989068519731886080858706891042762057718216033967460239714611478770092021379560742991715756678076407970489702337778068231689440913385550813604004254309747216666845227492997614654229699741320623253310709806877592186516329329394782451602231335349670644413324898267825962622305717161028686002413836536307485829916884456471080291631529622344281080263039745986371853425540050852412056371336062216062032233260017522470075682075112098062858546395997075653324635724018878842848616431913339482658331473017602175612829454676247494204840585053285071520606519094634787435974951039210377199258105593386825940530275521407182055723519079532721822674958949175589682844415610019733602740380552403656719270366660835971732375431887528137952439299479440789978174554731692374151168746638908298349787181410163797166900448232991694819399020711452549363451104781317998071023242400204362824453177018952284579030302937912705771012020646739401283437774666436957608535716685615114576711245518323689750566750656308950741511385120367418177468783394089409946983700601614973490121556784219539532608380926174438497804087133610866218316399765747979719284984602732153411584094249240769929144857800113947877785518034612382568665827592896163124954719936266866257435896402616229321868609419237448046128737334653028169857361735450541682567291539230448612224240443192184720881557128354443683485681932317454008830390108881199867214935401239994583546245737192583096449655444582343326869075030444405117236355222065285040473409285124753321387705870369579465040025289850440088611603729287938618288249215922753072054261099726060743705160260485499026138305596255662578546372883344547496018364666753317294078809511168031312984129190841830977474564579976685345949705564177135352440794155736820137497025327109616919100195153221140487715595848591674832367822302026071188611234983041048611934052903792476886580259747427342031916665557005868212719132060359241224990780007013127633045356237748943444080165541239785125404484158253938723823750111608199267658541282872263928766598622499294250891049428977245665501065424794919989282715597865820197946629701821002059957224458184503619658906637805232474292364323521302383817603913710641232206623167302892853783941522455566028988240850310874090904922409457229539304579792044069599242449346202627111970094020091231192452649444747361588482490768531688081337016177616729645398437952349331527093506861218933929040655422555552339422871977801297065556180978275084648683868776284621327424754834036094472656890514954251412547657547825341184776444547525020697129432713788803874147212651007033398178985615716901312404810806982701036934810693798267969769163131653001452816109565221815222734307596277287897419792170119448870752657681331290197792486143399158215360238662830783466315501066465547658033825939414658428951562044578169303195029042254687802452517797281627552325940974597787409685959297221817556090988520476889480855170486786089323665378273003931078884501108642287515655961943227143395362178062835648491199638382289155181645172872649064137547046443140471949423406865024751585601673658959602046039095283688007323166459545818552788814438738297133065506306925869717036834678470735432198506587852993172831118467962998424008349657190394843820945900801790601764207862724340916796491282800266225088169976903328392185973333713328032998689774347413901708584699171396819551037415250538603328696175597992778193543012228372809828469394241587599137989143729378708577085440566269321868935810793242820891050560615701119568705503406674513682615162016652140514076722309848604229339438411627921735417760509634751719095985729856260262718991521833309165851953002571180624225608126338373723708927955727244522148020384018489539370157827829648926108113640640658068012244364921770269344454478559469505874340335571224158721125588414362916106695241400161576393975234484474288017155746244355208812765923177656554657041571922451483758630807339434189515717849363098139585636266516292231967834343581155518461867998527448544773401870805607410963122048239346743675498466313169517795590036933886564852284238205954820899793705734340236400375795794113181401872464778101013864381270638148358393616132570219265036661471042255812086344990909176603910604606790537027497356366651342099191498566786914916671297623368619940978297573963293347645119218299886910086200842871831334039324737659315237479798960575836601455110851267871066706716244647888654499611625268835720951898065529959557651847178638348837924412501977706099923341015302339373520888294912014335316522571082688594216123447062745394314050759298071776661441398840918470341952063353610160338192869819596863449965380597283463437377234686928392853819802178420388517243157114820805456456536454840383452130426670457183413758540566000521370804165919627449088389213769160678329320310364679422556777354987668025723561339833622907221180890010712775869665580461234276583246802190009864410896733431628219074830260483470374665505729300796453432052706248974943083399689835807723932814527866695594601350990461538484667002796254545031283905862275903411007534463168147455662238147565087413909944595952508146863369074489150447499415899430988747863620787977609674988158553753816579204581012377740580911894183915681075173932029531472064622155682936430273363159291255669862367427069014197033683959765663115518082025784101672720514606758639957955886020989707075089336147492249053654060443205341755791095023163113695950492756032226721956335234199278784250118141454068000724887519231688926479242656786401661231697966171724274748800569496979994795465017290614807844978331180826411935469476098694073441771099032885384489968901949771361128117708771745162263255331685780094166370069775373976571792928356372093567836290734044902625562073778183164827621384900265074031910266992909124495232560608942330225310350214612882769829075503059284517473564988334874948431288838441899193361893418818630318932843475616646288854562713909892812445234050823469932414197497838098808556277384429152248706812137013335879499269541168332526935448490971916835228514949826438359956184681265647027110473885678527237967125199608943561784567051127298662130598132665553667547451806720258043948977338838124457040182455570452930165981840281874409789674848390792786749124599507895481210609397237132339815270905335715793638710570672396815440451286905130701310341883109178244472244640489399926232077739597831019527262868951176425269958399175991972726964507107960867742111345296617489060316555820403293950353886802950517966625037727365247832944450550477009897147132395389430914618176854532349136398258791739501071371241489491054093516939257052273733210779598856233674257580134042697980635745061056542302679028516578258601241623327791476009595280582153401799941810789941580393007942000926359666772309260675191787237984510195644226224921175382506525147712279339986107900567500995194286161532720869213191570645635603541792805833263909042766213064417070066780286177906652400978264831007390674017723425283507052840708545567600615389237963813623095481977355735062332085981549342570258682010444796561657129064387796296750634216878133857992152737094130451601144262560268196269235027560247791763648529920030118636371893337325699011563575154548788494648526878514283207275136607341849165603145289687728814896283088500404252741700452232286793134382993441822770238317230014116195003894209050527397118353471893069348070006639192235325984219036922533518900122743954695146852605394808319891961384821574468184130249384134935028072125236379722153415371014901991947815407023280377973841581772187086743514731580513391086612969484802085527586056500464744079984220117371242844129844401913363373301176790364160091205101847162407047284852134074414867272210345963648835886133440017957075262570306610314227807853659700373532113636317199146087001061672728859116486387667723723124771952568944697569400784876553314361826218058855436916416460016543896594587750978598566865809574682196572959812823877633347715035598491582121383992603704680303938982226150357140084441058969401990912449561658636453260155029798461394552485657730390240002778139940816287316575061954944116735342466155071152821812075815366185648265482509585845258357256878020740510451559395093479367424745363306111908888737691017267053510837276559461820408095331332652325404134858348060909370034017899874759946005579206440711809864838602506678869531396314012888348105612491176808515256773127749612714739591390069785479238964219822113187641162663034976467090238435863353760484739668143032266857090535747896445577743406421022472122347543390888514034645367750128655208145355896032700666234967139816792510069015276930850909533534982514734585860629518795621071595287652048558593608032592302371912749501273019406540322319675368935082097690167160727265530912813139683705839818741468116529210310597206160787521460056101550696027045092114758020560089358715913836966294076057995611506411619663364226646310583857805806428030951766792092788361746854587885730260016029523876930389279676127155597078281895997195827627991490732222374752970393930641160733705103476466229152206636548511565640684273560013580740730086904985012069527673771792684459259411583642572957016449004328270973864372428996931852561213870855680083763533387618823792681261532770976743269672613157391995283457751915676312673751787719363696741837557922007931900094792813626926279221965668869782260926219735177874216492734238328965251615334411265239631991254846155234930968240134697134474793165348845659178156044582792216591184074768636873267539870668485532551329401546246956727459289915387799798273014213495901088868024225151498464958430804126223644603019506346826298675376358779630660300984686045020092104896539122281217716589948109380278391723092529864052738400472895414766687650794251127253905783262416287400600950840007839415702649219400627520158085679567345500889365157257294562620855767245037338809669458743337498643644564151625370857665871559076478492340094998978547445338985988511953532015008781544906108509138997073760584531092809912190780362436234378699608751013365734920308720814398895373809576444830016472747329738104473589992469171583021595653720281649041033666454506456137637132417011818123405371651563518243757428309094834523923690831625920133986080000877389071656745683787363522216055938321087684742661662141735972399944949808622981385768782224826738659301325091304589410179653388166460234479034253771792707459972964437936865988462174847830734674439790271987639814290033462375322850867454448545988302860277363220785143214793309033238545215350194414918443735229751934636066289920484209281945287003874367337475854442178478626493907105439332505818806427520004641055691165332865417413448096567650275514240779592111854572008442009776013930477923958330031751521575810902563858767161841368535635436502440077394287727801069491223713525426127633452950013220938271203497386684196376983095934780230050182332122440868769020412158039320421491273750213509803942586663546716414772947487469861528855836153367446191639050635443411542247412397519440627593185511170281970483377949235377024900192296207656393364565875160158544595817086960839564682590916541606750917556689906558225650067338567864763893544995269059057386564260789162020084148723192730889073853812173870710360948167272287978228970025512447638611026220964210271564441664963812079913104922276645645211001309333763273783962365507304088766291804064589653322876366631217465880832586693338366865079186080442722505922875213546326461011512406663596777624733716883393445388893224061597460242363085829654956870346651318539332707306866189034499612130103203532024938383106758500634506205556875417001392467996724583409657296943567819806585487423631352217262391510205151750140928284926494650455323445283545546166881260362149573586353199546643895441227152493318045936260533163066653879280679856391824898480800368025770317956402264172966766837843949630548331627756224304706552365089107098591536151297937342926237400415834729565473634139291357851092419778819820079618413749815929898080282277477338403695337353043504711276154696038818088477200638688526043938853711256666996537878219601038819111100685180820692060726183164400815613480865775585887146277360972500272040922062053996973306076701002992926241940296457616105826346552614632832980390052882789311517221417361391590733389131890923146679120608427989744736111027340629750218861071848711442897583119296150312366438372845354405928918475084525427984789806779849818773027701212895764744818239631061202056374494781003698214743884996757412546521429387922951678055686800939816498015928494196718166112653384726069915747169024466490946282308132900843139473542073321852771541120987569568832265467978308164676394118748376221715484698392488971578102273943063669853561479499774449146955326706278598054994383893553975802183971971631286671807856003631419495042440436410069728829544700076131390256087842847573807425048783174965280532590933054045645032599301204608298385774757110160092546134325981539363891806289483810219820858161246094981688420068108546898564116349569990381114372709233532564994360533086587324061993091255063580845898345459519917080338670459444884588052229180567866009157907642739998958674175234476044711453564276468423977034541620697357381853927832756349665234283696346455594288083951215899039019117850766338012786516312847575413370811226642996693930960213051948062385656754460189325122027922436924167615800912516848626752926579039067517892493198110808392380946529494767293916451919365578049734717233912441118469731432568787385634412493389077849541450228600652559395779039034978493905456410865782300748643863257072342079443645883586118533048599622255564163228896366779022892555569587173913856453024709474953427521232279359820705144977267795430017846302956258810632098441346374484734806309155553950161439110603844027698739601852496222004151379759085027095091407895033482519337020847082020487014323937892004209550210553604787061664144678851938728050058933639900940247119821856781675576340079471807259578715901383368602567672370394567580933988906295586350853984829815579385284993341927839229390929929013776575645686481841213668443877117181696151351552472658768079478119793014463700266100556868041285193565369351435621263056419670829096460907079047759166816387485347817732789830685685462809029842860140252337888530377414336317073860608662124215908800892352780788728928667556433464456884783601572211654097119811274144593761689219558383132449777148552808324619100442187279911983371677996766450798593484579158720536916236543059557016497218930944554043400112532073336454452578794433353075871188669808160546344895722666526286888380651311537726023053600240798990442213076593029722379291780350309532626060952019219399075153769063319363755154300927557279811477499896333354999854819497226658236498662565538743807106576556679107372209190549984826979636623779848838032575778105979970316271245069626868043556030872000165717249396620529383291201958960011707146536166542550895943848741815655441171113234627523443983841430155293018611537908747662073110732870926031017423068725821347029120052722385993211392292108382791468943088005342670750747096254630783338649503828430319413682612356182093253923253712216883998549400579976024942690474739819969503930378811838914705336303805767843109640971148186454137485586364011652840556440604269913977786021141637069866875181986065818694733305909941954532796809548258840830154790805938244375047052715098790596749155029401218900405589120170291539978973511625761519594427133095170017389793740553962037375597941554093418782009939263129471250658202210626687690400632789452965439128104439228162316382512396096230546404313465773472419812186648603485584197906960581641724460788743151248695968340445535682749890671062849620789530508826375971389049092070026914357916589482565649342333102447839813595011089107300129735160357780533940151364055375663369484543876847668634411830077241339873879619904875135351779575538355007661711947755020657865287432300990470835018980906298242044160815732318822740078664430649072592011960868798419337327889407494403521700587900591146377414167753795066123599856008314159183023629442449208727508647738683342092028379881844694469593167014224114648677825533755911313497856337918996745719582845464906130145937969701601603660681325554410596352549046775039346310290765580191482215157341716570284416104117464029211409563157195366503203376585577125012433701710306982319913189742957329871948547623964561002138107848227037498003078018374626269117306519982684939134371087693670090917136699100541828163208663812833182922295373904042003009739313216104423295250049154186622218281056248065078758755667347545474610734055346747846758414435251868884794502710122585348569443926212311159036336901632731309950769712147907995341517710226432709330732324648488802207171034424628546085558578476692682866414338836884087025549483001382110218760397925747622249783945734884650685186968070322498320427970942780651912892058747180576752120448395421647865960566414267095191588653765993131096007394862981951321181077778486370843211919033694655514427215158346254321124206310526924698325256643955314463915527840029597340659998163166452347948378337893831516248186603620489350950698161777203753103718887898867942955804755519992803652929620620193869912123067004089074676429236424570107356330415717481159150161899273098469322481698009738432435451764162586111680991252058440092816433208675493411731769500358962983622907444533097777722848727147402186731434211844612613059234309427944059847205479128705397329495430132288089814147712997163547407556011967126604799256371540068722334687503600563892356157524456593306166463097570891294823714187576436718878096875741286544198946202308685812143050381258825697169390132322419340873833187755054736802375756114904568647759230493764723348788875549315089094273948864480510009938029226195310630077286441199081597762668515884826675662767455181810433460831804476393217917785058608697983045128850606714245277741434239197211957008718683280486026473863093076266286170902558657133489004741665678908949229466317850945751093346799948635576972252279661348019766917228634030055390721938703723279273314815874267781675104052507263652098055977825366849813651738102485229241930666071003880913614487754273453509582067511397835376158628189478012611051945278166629301392339413083883252843219769177295009530833939322438456185989965335416449580621177104778900239250349995307946724988367120186771146109579655518617670724080517223325179184273761781259692612694913622553851552251648308952446809839922215927671914747851677371910678270952745601037276257446584323831172128983420320725186228397156457656994757259265304840817295915109964475852166870434943753308599833128726511780103154383240547537114603219047042085002895605954086728645808544793314266835122666651749482600383818297279217567546426088813596920882359123133235234104246789373578934920659223038576022251407004596000386741437659929898632119471130834382864382522703590847656561908382861595140082462106813608601205757677585139018709366373950540235592107822183647746763502893602315867470073127728161678349129223336359422439053802630632534668582071447450732862244524694742341876290642835757483593429558607222321619022664067495012004073105749485840623481502439061353562344855382174242655350320990141378754625125814727838170966248127369095557100986333284022876480105460816281625631404159217730675271350528265505749721057971083374924997741378510077774448059342494220782651401675587611587813556926877598930601138321120554796768457935496162380770473466218538896725717017469807353703456457815309887482544354680267047980861557659907572959593228603946965410248654196026921342660569899365294637886406511445850856631264880609705095075827770410558612279235240468094624737636245849516921295142424226513153580582103055209693296272546426866088307800116922689981701210949607846243846951245911555450249122109961190343100414837443741180287300827021285764816453925107692333026973412526848697396842618682803451161566759739922346744130329295133015820720492963710005011023473222971750706663692319301912833671631057113428536855305831141831475445831881548672494631003938531736003011838820639297471804336956006110882941640939454596797321977192676418681598849843459402190719476713530063253542830747191913366225130632741007354621355839043605098349362446433285028834469849181718635589778925574053219068514007358295686000703042609731368603837778649156766461479524334411486638546814774947778365766223692096936757168702300360658354410669810428272002049889508567898933539481793181849972715507711548725660757254372059706194088230843674099932215497994019125275903155959689351373355742275140170407483090112423484528192065610298478995015396105556909542159549947835422159096021200564700306103508550639278862196686224414738525813347708350889379285464982080576501578516342170855756929842994655720839002351975838384248440364418886803207026177045376600573231536902646780078414994446092480385117127778195718874135244183364838933527794271198504321866379584123480424606954792007642824605234320786984223209200058953002377022269880538117331285650999990888148998057454432193280596899703257950719904941959965621226957967462192701888227455985339338758401006323249142757068690565905058084278389190681743701879922160741366882163606359965984521223529197843065243418826704503343514927873715145751911413864988009999897724743125584769439395070829072197697573275915570715096434711684522559378477865416114665017564105666436133712818505700934455975385967549748373524315617523786872256503438642633695345921829599182134935418921985677055432920571781740063591686462611752942651927572454528890008309701128196041288684117957283808811827747468615432822672585376637114267725571035022579394584190346317809448756481316104642522165971255548822590647532801695820924885002483450307557686203133184465484371345050580343797582602189473603276827121121735458005562594590255935756204258262585537947206236493418373433924939462733219943855038750189502487740875645254426516717143517722379502675946851632245239387871277830623984137514296288422843465209431516304444401008212323688111459260197870315896798273707166070045364373442141963473820142403672723224094689428470285531863762009602062540361229689257893725141538805049037177545944728327349615810051299494817017326664505087832997826670089475423801216713418221628738413491207226988006426421558940636371954059115755580173068940669312470558194466807188620274292352410216978682626567655236556253637091252149997682731772113505262035717718021016219343121332687726463174520689168301305106311061444807872998024312092717695779673312947500331730820827671730899300324931274987385087013905058865738909996063637004820892160982377226511783728225173840658246045666435265822473893662791829699058428002812128124002415672911319519014910989402732017636203330695642145106365626873818323796128974416549093211002719846154871799345978319080803886862342249699888193804282338556945767107874194434837298958412614113772166300858868016636882827392928039350635087686895947531700123658489504901598551442616559847944242256346914082407674880731140883296959223250424860588265608843130810310758637262460456418817238256501240308269382250194413729275806016144179315645380243604165786285414555083316928427892532325547735370318231013310219730905415479308295847531064750249959589886275356284201520085498756485350091599167122714607350450471295146194100478863927162524233778710594279323310977374518641698226912063230482227355415252705670066585546337028341004445048327341224426546000188690684250949377898635234592168995650855452351027639327396313070552484248590555616874124771067271836327896895188946057881021312862238621487915282591959986392704561099920735628054198755328849686224975579116396946600383834740401496191420386181909999580118347829076617316924659900523844896811124178267796075564875358989909691434345660768521117768391579901709919369585193733200956662706115754453354450619384926176571918668504741321271341916598453764500172007608257685290042224464741373335780197296803479162961006756572611979490836871575437751222237587749656775745121785289342294495289862279166798865590512159968935320485322317576277235368786837182590574353752720134794746272398907258613648708464361351384882091887769666359868538282032174289753777618212197050210683427550883243998709894302678521976376236300743764869116040923740463181695793521222186942499428449605453597683352272752815665333987979913700367221294676604034124587801080478918777719856396093505288282752964047322011231061453905414954431594709002149599564968888143510835305935451853816622942332899486783737568590813330188760634615471613871330764274326902194670326293278503442207881650030452255737310755397817815417383207743034024796951186764636449662980578506259442398935711237526602957323525938510867340780038716324854274974334489420486826155372203292168260621707486727238762837286574012217684144869263156350263399312634739576481007771848517745416843008318247251506706174800493984359117923154331830969714857020944820457828430749984554425100836059880890139653892572200165180453594125098479434781202822921663983240921403257948314314299680096536184793344325673892172987440046688553010236609913269192924342617414347699263817532977262586624701266715889398251708888208063066029949875259074809131459204577209434400468760380902863775704187291235335220338423303493463105110402019282829324368946867816225359357119390825882100429138059087025176429082694515252063766881291763724835028125502048253128533807327175527983495735431598783098058843092201434138647596955171714638813679049026234897951195080894737003847912279108300132603891257588857809942290143808873641731555259135740851763674834737417459136816898764610621703624897985481411265863658336218566868726960623543172152301152817694384346782689198595008698868502399782451437734806579111816114281914090581875691880579595681701284266391442121163888311010818549261810023364330015367507856602197527949059068779413399571396926919644178914023582332739642005903952863473218044172745046730335761913827803235632835071428954950093386956766506610892884454809170589758741539618982309630078496030996493328423132496912919059494803751631973853591999010437683167438625728767047855570853950981363574615762835183267193550228043915855029891434446531108642128744050435553261228953241474041631461829374606368944493126698541483011055637987745773325611864001729991436684174013750073658596621459283188465133166029248142751001243157811035768467247368247610261273457252889026683041547312025652115088404208562744365611014334668797020885883512398915058039946335675846217794868219635783223751016649572464554400232560650664809879227436401541113728768541408679268714543921875487647060868051273620591763769233840160255453809820565410239766628933105863509845164157096411107889565957698095200602191150606678791449566756105509440136633232732538977905677906462430599076157421957018221213188399983858586785805198892329756518896596889441385000133650974775808552335077465693630122046581198349868172229837676583858582186628296824117753387021964108439934401445777121318954858358230985945101814705854076170993532214995734195182964502476768443036982660188004405236678436337713957261763343419050804120204886888587975652463363079693321519234998148855062222946784961367541574117181048645710384860532708102699614148999645163586916450876100013014959749536329530570146583410192657928182483134925056667042111924322013125225332655884177221678649477660405862916153117338267125717860484098419873944057414470134485356075943188430327892001190886686312224041865103570257782855586744661908334003470439312378556431248172462773490375656562077191376187993827880640728975202360459894722764237411641536476428243416642484457182483718108093789131586454781555752540271978038856801193713909470760550014481193529692444559042212860215453440349820468184635572849257798103304622886302074028817888313197002329533771354519323343561003772849660172299664842777832680519879923424394086115999242403392372898430066838287102311993823547624146585012727190742758419735019011910181943470687593145121621180008173804902792656721788384527578180207054213063359070326079957272815573391183343235627252428587547459107828581475426126076733239947267458223187091370006730131439718762565775067385435474320556389703795878923975757312325283672984510710226770957712934570817990113964516536792995922587846106259909364598428213489234228203579750208253353028970314795729410282906208033502154120905926553694647233749691077424737017030213641925401739864215705245542504013328144051396066068212705743815037597742114518917118741782268496726505350303504084346608443654722387287927312098656135138289369368222167774177864936929967745898230409003881172592596744373628898458914046514500528716010855694374869515530629223198143373358794769035192355538226390927167145134954681863304606994312419278505627241514890823938153876119447966011265330792562581931779093492311819515484747959020901308352216239033050248822261603066230956689075140711127333557810034210374425371517254928789466938646113099203731971709196820582876225586162700961235163501660357332041491530622476279062027595807784047998957715010665477508331143079556802353714063528056193364726922290585710265658081460876192182986580130870326277641780678774356554107181013750037033944777479353756567686086252761720241176797447482060628285049753756789031261560557450102018298059321947833500547901444520285938213631706529140188804367968350750003320028006734068607436185637245772636002529327765827948911178395297781456937706092060714506552637278647815095251962260946437272988459454841508783420849108680788742346033532476617527026391072881441917904342542627227827385148873599751742604712203362819276042104302839189171640917550335790741209152472695809392636188954939580880821317941301944175518555850798757415156346330460956520379046494314654208765288623437378184804628526955585719765980360066162289088868011918953309696205697189681185282658134462866101184838837893973284618652922027284947392426782681443071599135872311620309084077442872367173189781468373871636793517895375393698115777757509562510290224447857933257285695643080694427798903488343344555402732601113914883874944416218430788798870066921890497308050259562812991409975008818618449272775827730421549816478219231011291778743609637112087264134912512643482903367694823095807275758908131542587623200800783858721473377093023417723126862108704301951712826597235407260284057170157196540775203401564578885727523473520864571365500346498842365663161500998164789342200681533064577022978582472531146399372989083852123619686153241816605917000851405705666966752285703596103815613097094503289993525352124265847077876915714628026471051304981128464601045692491167644192782677319627010642002586162722953779657054062108202824804077993930116878900290365268016995887015564653402467264861374386444519186089884012365268216859133307395914271174731733421517154326772040333100650189473929055511274188977436200437794803115424785493787259491218102034003878453229191828831828588975864327504028475485374432373856000480840644354418276815105674142984220924024033571068077154522766749277165792843670572503502452279768570508831365810866472008568405429824285039089079266131925536488596846840072526543516908767616577319451320803007662497720733620048050960810420747856849613572567711168290377279755180211377056175743041130025195939433297778002520500479173153434011069839938415680033745708742440784653459326198098785209930013063586878033010993862895599406340732198158834584708506452455526437469659984516108173583251913906900856202456452793821476676282254632792949126411120454775477274278368874536978386357354560792254647698479726045437200133042596310629140654397323563021423929159281792417448415162620082263803246914009210276465347711972253840809310229286142086082719134964810713282635728421712380141020140669856005641757513988745957983712210341834922667008434952026298760301892743822437279786583677904542266269734033562287219242525790014752835285110665116519528658854672311736745563991471906271679066817652135069904632681277734806259834317296777440778183095948494182169611371294359515850775249121477836058308687131944210728178163300372456877028551109731615785649428926589438236031832600618853005964953307954546250279623964985738675095419150460201806598445396163282523850058974368065614937696065658675589114191128978231631780912783774728257351695350959660732935053435542193646320362391306826092415931868507177232552041692784230933361975167989691494473509189271647563869001983187408549563908313091986089399211000840116464701021757858117839485193868561743208363648938945068707804846998505299031162560707776275748231330915413008520860220748578800294664617981287192031400713405818902847875018400397772867668216979531136330033793540409677291254434640183762701832844469990815516384686129506475030389326649681228901405231283263355282571641058678693289460392340467124217016790403441905732006615860648317368042765414310121082528328776602234216419327242806663374024693493463178378820131187646728784064073336888485315714438513354566600307664198609777307569061221760310216675343664398398881000368004733446021111447860907907995424262172265922816631421046086523924929141981793169527803084825288349632625021357933872121501350004781345358729210924895365755399817706132511006509826031902957401458741877423566975865449574852097701993920306805423584256327922079196500605810220117056284607441150021454738293154504874883518627378916496983060278838074319210942340840903190386706250394930604266278290616951670322880904016466757546400359860993110823627486349386632555423152091359732920411995815527638800438069855813157935329814578448933912877895278869806219598629052650122284038887848967227630336562935769240727303524920161652479647913976164929213391511303362694234882948305627864438567953101523578818002803860905115227691086971395922002248282457493906448973899994728772890053821941252109419595894407494267846645269621474766512235674075758543792689173861994936548175368538573089517306666271341404416977377342935021635241875939668508315953411644359482170066010328108112465562962089819695966066943056368774660847056412351377671304387262454723859987608794193877886136625178334251057135530570085895527533000734284454581133036808066792444054518834740250152330903517503849151230665333229849173221636726312953254424171288500713216054431181197722630687091246853591972674576802250183040912524030698608579065845571178375996446620609950834796786482528038425185039230681766692345064188180006059798931378779083455036345629058390403174697635205885819042917178332991968761065575126936245394142124304393372620127436523658431560688931292653669475182691376269750046161872709069505864651454637721526132234498551278191564663231934220776519337031999290867530700064105648064925007663540441436278392171291503958904069816160718396982575977290826814929056614981654263346314477952563101688839987723136621745168804325877969232226069029042892883336689485502270570403542099995572803742750298610702711192093707535035104936597628477903693751033989743434199538023752494962709038599108980651026251926002640111895575179957842573946569415952670344565897356907308417930866769182699121485780472895633408568483153435510070417414662034270878956764060994772981414677298089933153900741759808080640839002577477966671665163302518707786853804641033183349159382748283971160661379651752550830452772419064862434856741615839756400750474922429713822073407258471591111896519279267301609202789967639774389012011249602519960084137146017004981874155808595564595569098376352838486071711584879777798899001369922850610351982273469924410089147837687923672839323788059812380078376036626309406574147552161911479083094566557090956032136117977162331011811298586861738958656509755989417769795975001170419058385323823857042226375947842704794730108820057432362036258884466504213281226056745192687364069942003712310142875028056374466345367720252116673402228087386331821657633150484034797656883593992181295786762313670922992658502176376541428810355324810973460317939846039976636304127949006360757344583918788495063663839677013928677989215194841717434005729118130703955907461263414262614851774124456503079964981108057619549514079708664858294459325039622988084205279836880333258530281526541342103081608461165547735077727827528597705401139129042798146825658239621328975969977037409625461913492240506122785174622624308457948074621244709440499376602175076407313702412866617885500187642524609877537180733011804412672430017018173054382886956217525955541208548980664014492638221838558578874055037921081517304381021007491311004386667976715587442803175069197028767961969914744179418477730322355919474544095977112651794062710327552451696585532854752828000637609659525585410421297298229685747966155038352494227937763735782252868824122196149281427715582670086307015994527881526559711011302495578902268854330951647612422305896096686120356764462469610570770389549939079418745012223416551333822265515376281727395613739435673174884738397706592467067362176740191463361973150683568179662024867753109000566039395512003386645801851179306392037332878583822596998337998358682977035966298850858819788532071155608439796935037281140304991596869412462070102874610799035467754265002888592762144586487612447175414187439027354068296312839886998758316453381138447692830504626921083300332195099793483929234898595282773933206957205917953265403341990730472330904638411936043009697804353213390398478147927027141279384179266688701685554973183288658518455466174204605138666929212138936226090767942167824749027317099845285880087050650927208126722342568126026238452672996327517699494314765113697768158567439793670824800737586131230509764769148654008026292346533963962715401137703076078659722293548113872648776027966949947585391573753116284129145813557164878657482165697890205652037912273682249224214831866377880796774999455664247683235768847676473005119956070764971383340892830294768443194538325167555657231070118977960182277203019184181958339606410735663296871321037864597414547432292663659160336910579056145566684935168823658433361671785791560969041816878361976738763140698984611087985347398684100185613801313456744215359749946852763461550306528069908457193987971909373833125150728221757647050266494008951118057905671605199606090800133639099891333046937107845843281660087708286932294791496118910332198007279168286316490424472024962466615132836887717312548454919939251634200886458859264396374079421463860879600891710949988715159112198205923744396515750732379128678317584753798520554012156792570696400056533187154183252761730419785957083807136186145503347571534975502781077858989240864788408184856930981966758430149794266759319932564126339758911929375747423388629255504123199790638855258405648281819410952077235415224255557881755949940568997972225062586631917556229801422727685653297194557737972756822881195878783656050914473132989040809230822073705651975130687589219703417403671232635052804798989395601179258158207370303193945231318145487978840993991271399602479198646603358192812161308062656426294777881013704058608930261352804825515157473943840484047096523472487249515810483153037568245120634933785023177703873036856916761060090954113476941790919395394267482991287721621208747644256702159738788128614951711399926190029529857258157287502283420660162359681696303584816359957637066129522487327089919200874203082540169601988899864237343951835724100582124048743705034228782249319734628916723859731249938964299047119356458492335082831450670774547460576262603819224365786300839090095175423737121620271671121147721008122654488379103229216407746835739557774473297173738040067140035887284552869943941994537412968759623338397778754930991629564692313143856170072018715106798836909526510649459029185136051514404746533740337432227793779919763548795877624689932243522524650706464727936320641370655686601363011887551214897835172048871878082981623905202789997367285137229947142604221101234874025910933055416336020231853621778286183057120233932479580548724449238474926184780486945855280202698167623769095716219043539819126648698070606999847242834355148595351263053869914378076830199155986463371157528345546421318018677151484590156071442706813264021905794264261060302912156511487859016187067487170038615244314347113603389328625652290264397262538540521532217178423297060771279663621787177149225880046942604997053989912116999084901052572045308431607338154326926091559108876212373250421650655100574793618567399319435823120211800998543454872166672817995201991106778728793593063899753830907839879796545087029564686695869465963753461794619700262238856397481614216575933008112147487781139270679707724508336366401391029448210945472989869880020202057612554032958798184062807660031061120518606456266194325865272277174427520356721883849307443105086613026142296713269371124714679744542083670718724033709825436271590386849842461862983195662224331387249172696431322197611699319663354267586100648754580404078144332771022522246060831486865014483416589028193140777445267060720995797350650213701921695087940694113579391286004154571609942217079403763380523113850192048148609216539834843649352026841279110928047357810335026068888729471860781092766190564842590885627651530517866438745958692297176832291517408604895231200810715158340225878395487876506232373830979596930620278873344784683725635882426112888992570279011612868261994360531413349905893642584743998465080335198740744660972221730056544742200346248138320376410781121168557578042661560822934603626400887834262931606445446824534059357376153903660438697402010636713054639350886799256614166910248768512085588567114187091280838138003719611914731086440025950751816480548343580342259575060298630727557454325926308159837441077520330963937713796179240630648984797285491699259577361405339718384625678261350733896214776063887802746564122840175343197458187892650376928575820472731208546277904224305006330544933640294994479830172335489971788680783491166313707831697361208496409963383510734428951549798584148874039871462417897819699905503414749827834695010092232897664138417780152750869325481981208356800716239914381261477109627823169010725272494650116470887790113276808816773034144075025822135294601200370761082734399713974610902637299936246561556415900057010866867516000446599345506613928978709064139919535684224931950215677161207829221324638566422184921763240507113266254701849588100283800303863263934868412215552473236214361362415533342351438921635914384509629160594647786339399506678479079640719028704504951688991261312357343121474665393166301072463526021387608179103086456315404492153924050229639762581377005596244047765423301033191552152510046563840425215559162856495779249012802001495437077461854751400888599815190544978785895325045566352612040930668372518350493564363202775500806272401919276145391643723258085143306410131478257542114860516430785396247512545568271119948674156519618086242433364978767126537836775978469754489885636404970904222349251924735495315681999920363286522909180975378248683628017577078447668191544922801836648165935554567896879121742338438390207479076464185331635578056674420450853525664913030600095419068531928230429712761182470301767152021430852872917724782620053157331227891141723585527390663745473145546989724172027187837289583621159893535543499904862502716307750727250384937548037140092060215633292507327676207380399642026756663952944775964714381902511718851538806073674047611206290527565690829853810656882510193790786870469065025635642271842385564658086915797515135496339115255819774005624399972240897795532796927269405846898727731344528226667822507709244511787179083799004265622555009656081040149878491744245097128094191125323967385726344554207533281774468864954176994347386037960719732996841099468000240223048642982292604951957661526272211956214096028330058196087392511002065193432962982212252190207500501682431780286785770744381495626115192594852419342311837099434943419120354639769243204140045507093700636682910872875110522011530927615485461044330314254445722108724558172738093722313453268988564745137307138807504862169538185097509514643612087467950034360940380410791901514922440209058148877944927779000102844357777164445403789825981425695866349747190775308233549227848121030082305910598640873402132311569878242725470151411005651336457666430309663351155286684558697099651087048324071939841450404222192200618828725877576189006859745213490382408079823462486454013438379729899424905948136439934023809656015491171288033868138359170810947354725917984680289406913102056069845573423778229658033053556561058152736427780783631969449699511643464637066644390350670361324449677182248325983502887244887218324094998555123997041187257329581745631997473532709713653631758519008565581646709771119774656601070629980712413975541889662416438882140756707039041455557436716784666223544046413791084294504596810908325233908981993821475530838553058079970671018201854636167734544153920101415493731296508775126980682864108826948716244430260839288795465482899139085742964758996775708538880073159297130006392342457282139366130551339321561446551393741242020247143748062745039950229460567836353408602419561506902011777207894095616961415323210187503768133625352126728639639607609435872368446379836493680892764619290986804622521167176965645840545013637587839116950283676029256286594594445645207741916426810471861420861228337062610254157812192080074857789032498513226548477177575829924019765433230840024005462025910161065093951959854913519301303943344168234417341706571251871952930526638905575186769559857041512897063536901866287377454862571126877937723757309416885839126190514416059697161643893773357618170922919536942758701732075490961960443854240509634755295488689482394734586189105001516191240673753243496420378432767764073442668700216826183708732614779506251975483201090835226664580807120566343763412390255418470559514567678696578749721590125132712906223480329184664104225318045055843060453244001966911166282624689021694250052103949161400125024835762021524426739757055070849269027647844985738541564943299747456384967181847387154101004139641750955328946115241815181545532526235314901548160775901842015534468750744995432637500629847578481464001928231861772020962973136393036571281806784915956764796930129551694251058204791365911896810648864554083293311825388944115722953800642828814170979837058822600444091886078047279404302828612603282217704812038200997549806482001162515635461396256148130561122863320604067395628011429887392636785004045033094714221679654759226911960047552794856777526363175448142237684095403576982392047256903372046084441444675088948505018394306667421366803114740961392132886371039372180210579637256932804164586186604249310935108898460208094059483598249862530736302160477025902836495779727469719739603511360154430572962443553584467326537458030497914736574891452035553384139301677693223022705926083010838662130032203034241479723649866128894647719885124379972626024101070561594558433570268563436066992920712900167705002097417298288501077139429717775135181540923614627671278343559113779740553387993371912752007376743575497399221207447359994807256476614580973801419413409499959141589190174513110965763890555287446577517310576417380822801416364497104700799425342553341816567299136335947440233841616706438376701971948644578403123875568536014855581190481410154232788350153637712037994306641745164236874625729733367506078571909365995682858722856045011653254266137556612458374406864460786258693503343322519740356012149071247796947040299069396380713998161280187968076716994104381486312706343134143096070055833756612400031866168012290006902479573119431408329393346677478862794362105413267117605023863886793255064485976946824339824144889103611782127225784550971541692532223299042648926654807389454291310546947109438110979187370137050057186222206198231010136844932915308733168884082003886331538082039369666068783974479249542069247235501041529626583443326132085629384324438639057255469345862753118688597717583350556242801974677056139269874153072528802837264803844115739893816344665435742609245285426772604422494006775562240463749228316759632051465845961411730796685932856417764813846250301461470043489393390857783258821000880796375138722841990413343127442580989142929558668356815811657852945807433254713248813895658575891849264808989945599598258847645080873426835355128574901321155532213052702769137743254294259702625300851106070210749757659476130618207739047513959251284482428146203415914043339651932613870957279053459378051520168612265469861215928676432693874568913011385771832105166034160841719294218465702759472790510588151766713804704098949044759149311628940229635555147813910346288457848828878791590465209348844657713361245080968959292080137437246046159237743364416377689905717469628588608140255930487100184893870302366279642044358634014008845377509911638531848767290307762280407728042944512530886080467613958724211617377656418214642278246120122683256873499501758910807319701845461175626069569996228477052697663708768767387305917161644806746203727771499612506838546225957403105677507957297567115412125185255368782240765586375619473376664389493702357466196171488611539895702984314385026585314264173474135836742144041108349508855091159836203509777427002746629702818250171212260968544929572968374872469378749699787273591468996196207148790041909679189316920364122858369055725522437892960152609175938407343966132881472565039576935468802676302998950842179426928118336143161661807966251892494265053223835053906142267348434846838009967069192499134795020760752780068106149818653779508548097289624269323999709767237201881630170315498422095339959774715697952179156968637447698502079061678121874746566013383408071215410300651098212604229272450138649227505815926587995957568306309852458189951194077874054283662596032169410517996410062102653672132240151391711160584652692601483149137167958363894282637229919258100428946655385074918474883173314517582445925086096066377596672846564656871208047545099288350849389187524620734092187133005813980915172622081742242551467980802271878176660036094401500110625844098121155387338844576920595681094861941552365524285243075869651211797183534136286114941513345757256098534372065897308825847053521416779355034598518457578400314234563638867155539576798533809803271371508165375948055427673570136456550244105216173971151906501996253473662922157559782081692597868342336748846750734002851524516158288353604850188123640381472394612911546578805004608326120386321408067630516078000512014147185873445196272697826142503034932723741307897725514781332110188942040349527880052742227874832965212985018593907594103194342766779860890808739711625420668015295714595156040036338999310907682598255346847946756167566478805087449781207137958804695486589980142759015207098930041791536319066547896450888228643653475748333105174323269119419016596978842151492822370514531596682980436431194986727052519035939837613317809011890995337714538846548378223660910235916068491554489583708471932574453173277834105549516138918492437395593625525638849104737770522853751745131182207508730808255667931348809219829537065124946377465427169644672714145185977037908634674934897378217996261379550088726559426106698576156996885203662600751277124280953220951283495371783144392006968862906983954750369773173202907916910837127247886374924320214143249257406478757900044008983468399047223918478886902201148325765909987353894289583059195093756385017656596971329959269905923792021753013690385500401935696862440259469800585837240960210726141893061507486644797554362877938633491324016982225746597664304352603476991170048080653116807040536306548459941189273609107775072007107998434919108920675578639463593402438592916120879379139499312658620180843150238813974522990248237570874836853472599521841351387111832103599008414501832939636774974883495121377950761585164600678967408356417595563294032586321716264697649205670790341291351890523719332390457884143489261235051640070315485219080690263048900260553730491555779534572594359187772195122613695091529764690134817782415611323148291797202016666866846674719271332477361742849558852305769481751701805132603073519377404270695058610561988335653735536692846307960211888977430671661070127873428074623500421801071907621400254636917791522791719121406002138067842493715519875224981615278739621741155524121082758361537499929832534811778290380676239396140504522339364072685342840284233804671809364805221143493239142592762662894029474233102154475372648316094923540487666009157446403532754493508337192362547432179293665244934252321426341369582614292511656809245512775699464499675900802855991975187320829378489422778872945601122341924310112822018910562698874196321692912073484216680704498507039949446492011265114701091170593370994585698269532276662531840441794576002599186886399853855085907215115522385624104717682685220625333305072030208366488316732381862064555715547207707998723931224501523605321951575235042403568435729801584435701963553192398675804315836011549712022161040588516314207311710555679828727764168232504039914790105899954010865311128777027658175656461606278875673925787036357682197715579663850274319430192537113718171980066807276282946491979032997423938459061742578855451396099455778009436275929979267990435628716538217754018825194081694815164154146735579526827461353444433394822594770543778287438560019480590284960740924026949303024890335371395231025137460208432891542958237259580376616403735452440584751578082269604912857633098359559002275539310188382682807543306481803227695274752096891047738965230699352424071012066503541099231620978807389192062262220072521323178219107973575866825644930934046344783370822951100265152447084836423150716420341436574787158447888969436939592363235540511234331707278578382793656670584499402251069906847932980551838737585096152370952423917828607774404877033848820665013186816106147645980967742434945877628223590491361134563704109261970669680867036558719611764247852342206164469028192290989980646516326057265047595654101478413411769809322265562382488333681063515332231384535275541990614853281562798009648225092473251727127108986635589605255622623156713888274439629476087929962316460737394420639448217943052245230135178869591844209924373654207208334017640680104471015080911283971791215192195302118653171769855089148541079851414966485275920199190030298347261485499755670188514158893649520426929982250238065616585716036078044260883525588485695795674847813685382254486613609084776217203382478724394591856107359423221451853343406830509207420358821891143672230884504067981452717637549360054757572054145813200345866630955013748667755272836639564355122615600914867927228544078597692751988920906185995838926140604581041865868914792405661786606316814374153621745060455010361768998206147415719730656171224238468737349054079798707587511646600399960853766738371760194071886785174320815290140773329309306675438872111469946992316781017771513426008583270243049875021798577747990890671842403286980541038173724786623255322050658726847322419999501833668920794123738842210143096944150761466103284452511260182472219364423532460335080165098519425082656266484403045961694207282012777676150077811332089482836677342898174265625735343843851786144194517783311344144393575990397055417022232539847957103859461088988495728933746480570608313187256931534702652421932331836732085238471457023991550042898497078996923490263206275378474063216679574266316695454610391877121696999857099590095750461076610622836146966133677769670310404354359149127637361490532706779401567402548049494744227198990016959737363381681578584016150285595301670366071903981888263740905416322071328398564266994466932789720935872963996942008788852136738251540677828136029610773722028978322937605409213375318033565064995884585727920596752315656467732840655364104925704486718526231053762285063359937404378268191574485094745064501009384549395972195233907100228608651746259142607768698733260249814726905690560010684681528782692570631155301447953125083487563108582146578265208773879979052972484486068311515701712267438555150200695144327666067430492238279339904801925963230445883406597375157783623022610192339354421086351584496088466260577337866692787206527355422169832492823324062173990864489686187497902326596629644773061452648250425551437337656863524278302335423689264372343792471752307783697085267050512226035123575446893544265479659805398513117903499669825845090675625203222273371603717974397616345564507057762866709253965438952611346804522187509701519969044784979473877437072463615849129249367081067899456197515206458637099368673851723777973397373851011990894221450745654205735105803784409888825565618715461998825076341514313593429775538400510109617157550510439193008271491247810923138389909338934450908112718924624253292912657755626944468774662473133059323040113974761875267831337642131307697160479841792886654170396197289860501440497517457972436963093591458326234124600202560662948002263919072347072590019926776831769422615610841176824051086027983068404749947367581449008382821750391964342528750083750158813891361004561791815139965400834251455464164969142099864277568781372879505909030620844826158827787053452203410695747582451667741211750955335958274535666007710940500501037476346741022982582199435584494197582137669097474836725602064101292441784117419393255411719732854994102979105531418100969793948999968818091163781616321171812850842738529219458574283629204325428066170477039262143602704456758439485554487505664911064583635765491816331151457268791799635508610589637057146713476260395411916801796014657061463367095139245305368788980083377724940643777923204388808231458156535325352514929998774804595250862032477126065827626741478091134437864004135911252045837834193484960816933475319110833565764060816532004640651830668206941758228460137128402390692873869641125916419319663151780822843941824832760358015559174474358078999269299460167070164431093422439914412672858925269663302767760849197410464357237383723830112277430198129937267188558327095922314543809212389642330919214800352964211535612254342559254800460016186657355905380338373970478479584084846108510377106789170578739642566667996535101765890966191273473086039281833112544507156407684190502861648606441070736032517246338729891378500942889946620816093369836726363987033222554863902918094004864677365408125161349391390410037353363848763851350315121838897272842870365992763592035936658317290981470008512267027370954358024579543393081900494603294558237007984654524716046347258638914709027617936218137970310924035610328027016830680596847118678257189808182152443280664987211580513574977756826103408188093899608805515933825967209786829955568409917135079246878993701371786002218350269428368716044162176242412473200645329514168175749427573559913222386182079834147589818201427930704627009343964464781795387224098131518848428958190900781574630364666784013837724357317415736317176865078806635049082351314435495521931489991567763493095272174414774665262331437977128094406314422798865701032425952252401520604226370497963015983550500941287051360565528155826176367075641224001644418695819618587004377208182630151764521564417435012584503710393664974262410281137373511252320098049231543287794883757284720508758602722297920913560086488452727390531582863335670116093834175606792667882879669148830454018848255866473199674012405050946109560513997673629638339385024828242422154227015977612995848747850774882853271065085609553015067543411377706639063158386561785776926132040124421227758558748430964818092870827207325717322856508723133593420914124536975606685107614794099839168820142827901693918377344341529968328261407729859548314968528527752601692979637858852873716023047615637720458245415508833525313434652709850865758818099558284707730379432609708565576040759736433904035045936796277315970156430511695528109430336541022627532456762466145774940810612228716148503690008517480632948217912297858875947104567275163662370651385865666515093641601004615956951843271265919216888231038243849524742041127881165162865219072089666339412368212614829487434817808151917283041303518953564894349979611616590746194033987903517023013714246695800433723453218497005935513679423719285944000983688766936087451742726542524349977442995982152846900305547946163735015396367161863192232236944515334201032292208872191849796267890024884234091170184154784904186118626034354632301310069029856450110760775272964755009988578386434511133592504564141716899166289941649916951504923946520416138545616050045697686459664844383968035745648541437728874908383346539134035189865389179219064496179921570840678633247361388311884663251802819547008171331116819290806361316107435285993594063876163917494443190991403665610220579370666717014834169162750082382059361118078340194516735609174244169755577628560202965424805597386512811668457859025764760736166733966458673061022741933681932566565705180790534177665512436154856214225995639685936941788788647645703109859123698487137315951807600147576882401087784334181007701834444199205788119468357078221304969319453420684173534537382992891708793668353122309105841526383986978840714040490167275602224688064657981043239484537807813858477226406522600144684870067663132911782335110017066388510781138554477796962673991777862702353941297661941290417134639535323171731614934839644484699222230022434327549497541367646703536196680464992923914610412263938410047117757002818591424134432474736436978458221032981656165961834464747671271394042097454264599666938848797700447084815177031910362653742305984877955980238782783898283326729482309991999421515897359520773395203901640535465990020617607100276766037383938717567696725642438610668576649361257254341969871969942460340348407353845720142816442871897949812997860931405545897077427612136618156180580736659235622908859428964551375419581176577321757062429716002475373674416400171243163207735419658212119493175438255876719541095019316338317431159543144241337595832705382486648959150117227098040168282289173801792426991248437797594637894366477882118975239388928454064659521696047402332268062370378912904500617067370040772041467830949082276541226657632205719303323585923760429841937184177899382378574226576996050486932858916411108986085513593454086617017717194015190463260303335780151326707169691513705907439167763515554819028731388760924799193040193716990591342896314042964497210771822632296981042166311089140192858795503118623608823520651047016960795030577190588152118366976642859076668228411582482692644319572324451003272756692471315221546134572347349396261509579417010044411097308477248639516020423746423393695269788310499894098363404018995619580944089551019334801202753095170893745597612205191770967655418926417287422605764980698796600324055169372389267949148064255102906544011181240247311125861620419703627598881673731023745177171866429240674459470625496517384475538217904589940434677957112409097660268913949625711831863744149403108852645164732261228945566576655892202460096938551981278775779597457703271700186218047975385242989251563014394437335011137618104433234327088189300145305085545476773469742242847037035689488346024284659062559087940341456466561749888095335258963261546453416635572337919330443219900836749687516251530060075471552061618834395821214684386302965817748766343351787659185599564166043137904987583636502689713279908493520037779837499768167075977361061499015949349161157260307093101146521311090498494638863891510582859581142277084032089407107035523465281702375667271043960250948810289530771953660132853200382507942290593964717700338712082684275041009623351448777669688936088450934223830496560474641159573964619112538909283643944123564819112755233632362529743801350231064459006159416668786152381951177053267337951258436373952847365132241953931534021264766184532372954638319129225291303368389940483660257592927924923254093615593810857915753949298032386768044321407779848834512925336741409868773228967641480110801334348374351697944281773205028492671159631216362527278953289169348061362026945793415886320840383251701313009368393194220695196874815845230241467385715677055656058082940551792581506702350510627690065225523106072375262647695985381174856127935206234087047716360845245353618436377230075976679067196485583262198862956584293555833761559270237988767137523932045827245666155379455343345136794704919404934450854814424490565481118587554571850325055937516857742721701734711407600226503091404316023389162307941099144183939637381745816441277131457648711496604031327584339614246697353341507139223531384788989119720525108728970028949109617530310938516733784018977262684797009360581144897308704514337860061816581781696811463633278229400465226088860979265212011367354447864594231930392525857026414103011497153748815017590106738521763106610354351439188655814749148364684914916061951755512608067129353808097303297359449039931919786337277687072826132493545724100627095958330082115683349787663010315115981248620846456505851947263103773958332788552495699486318314562683706711563003409165302715842549426619874673754635424316217898313752328130378255785960642819863976044298206459530011928743987611975672160999663170995711604960898154154875392424078274092635088090828003168918986630798922598296196640363555879413265602810059639470379279428625061217398168702879362426386848508710633140517226450044351755170462042193661212873522218586273743127311600512298268707533512493564424643707814400002207957748779577337736383384025036162512421130547541987806720191260948667665895204350152140616023777933608087741568725203797089603988210660908267785577555098923451046031557578565733095199847151958559329418050738060359831005004941654072051340179878311512548395929067884603604780294383196745142162033557773982701447868183464874428291189025632595107293886203740668443722547728292275359133139927028765829338330688040093947640197122559524362341274675255987276234787000759748446652814265864106862442851061662912686332778951818062116436130415995143434033273532497338410557621242607030989577987149082634396055402839653203250959092410721134945679200782879012794112176128863085852183755820649754117279431395711889135384052162387791560934621557367506879255681799799236347704635667218570084828001963555350827668639225483966700483758824973545635665438812044126079256688696447369831900660451863362277598831123464741282294239736266580962992402643243416905826318263728835442980202205200996937865503949405827700160112934501687408839521537343035990109746266690994445070889209118761300792802011550121842181655677064967095414564478115135213413111167904333189766764162686079162731675607224817891627961098639231666840033697420553870630808634948737319520793331326295395390401429534908580613539212302482942014838165424497993289399753797148061175826097379117233404177231071033472626485420386756983976607800972925440916114913878440184075133200772053275187153389777647131561082315893200581831398455199786748359733340547207862720721450991332130213926799929687369976040649963892766611664380817414009992735272143961976977237499164491242860704067329321303582662074702579082859721619521164238182841433043554781152005228873096205047709305361055036756564964340853269831204359333010508492457449510595703668346063355277746681471714485529559457779741810291325255988635639729304446510568539187086767218070310204419636001171913399652310447064430070875464262281398512575537023025714435248957204241050271987472933145269790827051318340849299427763571438870051090138612951007382998064022132430805589054205953725354178728248865025043293141022561988036464318730873008711890821704137512271167807902345436566749204986476968472450816016450502026211036580172536676030462002308779356579277065330208415006470890363990438525153100260301653003810120785504987726480501778697825647134594750931490805061967339754933268582014421783970159642209992566222514215794339558471337363195196372088851089199854577253346404161127767686019539192235257228531712599437227068457271999420015548741497517367795747512082612038843779965033958595434779671407450367352718917763234214260356778884476350153885151843523904784599369912158365104910771106649680036422939096711011833769623747609707840556035806490388343593554563568395129408157092112159946206981513309042371541183104630949042783988288523880781898573403915265244551470013050027658254736284757202055636315331131098586923458857274961953548297799779323614449720204573460853714187543426430668802242892683032254546033770702503173919262960123232856882573640426640750879909095598465583536110902328669977290482662046943653538757343591078281931238930392718234133808005406862623472796921784781882805604583222600510731975542629118815433140661127568409115034824387335061448507563474173048605896363083795407003096580282977296035110237897678848681798346106835077359774310955442662875817670504743864133769323233034071674279276390767583600904443936338759548750309717940509685057611964653561035774065708747316218953655904652650430296714082427766102038745620397454852474704621278803845582901140783707000592221907899597469201312952456508033899897544166230069629911262029700108117867287376783194108963895347162216761594683367085850573598486402655913473323054556945747515025600362805034455689201128370863635523669678192713221979487554280596848634147050500797365390915404495745457415951954939215034253606124681406030418257158414593934042758420603370328828930626064691499934436433527604815877794826947482202215444730252014956819180349030416216921568629162016578529823707066767173643917401843434919034998653647618996134511796610060059272818701824990514265156357778393327534852653764543928323480922012720749065047189753080474958743511879034066209121352390849280481447717357868307084154037749426810448288514219038648493959446585038623277482499003870672232144120031256539158463068412179128040791453166972987404360616472938525822773817841109199197562160691467338621407670276406376908168709995238632126427701122197245544483052744099770105236285624310605304472695056313543446600243315030342704020808547491728294967579309178333121807158173835725333559812211272067421973700803801605119320408359598379229892909758078273933135727146028735630853407872944079177519829084378235142047857636385665100387539266942423579195972625895090314861658685548357888449754025302096698304357688015858727514004918739596626257217895865043798693396027056776572248499661648264390658541857931306549778330471630839194629502490329613582968573435036054966105406863202759894804498769754448557108551421336830944241035649548622473978063812204162329775375894728243549288128445917580752040447026072802324041259783658669161808461579694767645937279122513908982314258471826854941902532258352190704179919706002967984589674600269741782907005236053388853615322284825632676498096252415288955504199208557271250030384013850535697525363748829789713255628642372112437842812609412898658583188382868675212999597994364805048872775917952977975787116300688131977796704994846759314411911348869753949255675261377060441512256583518799874896443758367562544978135386966890067792668629577553584669316837393278508902601137252191072752761401115375574340470861306249341498698971765298135366046900361102438594229833779363270007310574617025047697641196897485896726660185361799688368980257185452050288091436031892419486629615500639937344305769406778355539746493332513294773549228940719892153361775457849118160282147287625709150503420099500819369462471739302635837677358033550131429306139206655409184704308868581464187350138771776583472434703062927884233218245197316375718583951474532407965633107299666474452336813146503879179355513959388328162315195616941868973413702526631524215070421053626813797832895674746248631618171628178911645800520920269481583892047358481953367546564117409111015058170922499754441332425574336751379352507435022644375396716300431698744072622103512905232951102931574657460604970345882815723424921798503110325039881543492268858951788746541556584068719661412764630139360018839033812581001028735018062550634633529561288781506771473413412958740788132192109095112653143314549417359497072735730474021002389802689380769074777903797190369078785201503108531846901744220610478307133696417682878416705782911991185939182089399225643173189012189944889304209972464267246388940345003122093406800451553621452307347932866250038853500844931390430845063106538471855184832727727602311002110318072065366532940136663865378479814344703145699150237277494737150714501560782804639892125166831631052190235842689437737977711851959174688858033592705785098225954379317298673061780419962011121693586555212740465765529724179702988767395310778577504749524717433720381424698330420733315779386038982909004918005307651572976913187111348450908966327655516396855452839038654608921334197471991295326128592308960437619787937906529625824629237808833655782810474547568940000793602917500734818564766043097804618742938724845962759090477762450599178400360868776899899004038138157712559309151046142457993192042330326584314651299971274029855813798581777043748089226361374882387656444517362272527178278721802853927945474512897647411911566281790653715875841605312457917552583318519727275590015802928722456993727818768655839574536395804036597914749552012042861777598882135036924368323153213535781550262047073260555792641455804969670986927556742696233029902667548924246997660068298928382004576631893163833491284711026847817935984953550774250915858992918898402101997441700845023357434478971230768364246180093613128353787896707234535133636737523900477641856940044079140056962410668621673631487970651969303976606737262572995754663451799185426091021751680508427888173755288220633536737876259366903993886294111919859560931780491481614740486651067700056623924889033485311727716490090643371224661988011189484823012467770366419245556867926402017522860216760457077605927285266486281585588035587394426036401971274762448300221279828896813426672244348599970040759109776984001590074604405210453582032540305306105658064923939487186429915559880257633712127919066538792162031594696575463217523593325750899317010421137463474763238477539697509414237229236511510721493609965425069325580325898339973972434624067338186891214533581723778463462223076479410398153215811211278236064595676342015602154969441197588637799644600188910059609282980406221711305157438888404661038628888916727001088884787318231016702551391788523523262809449636104489802213259107684529524089036912201333415380489550690836417277401717910596524454494635531275585125309229678067924414197725734482737444603326233330579391687176055852976178915852967115783396439431757639461504167985439837539509346947016611409773419574097888571181806782560496986630813133400090604934495050431042041869087458336943601899741700701605534014101676800141164538726705038640029557251842818837636164049368159764857680223504938641108324811664970387325887409939992644991829721825162634877705394526716037796080428686820736707044312911470463368433414424428555583268691400105937245564071776956973765535789197257828308415818525811902618168773519278115875245616603463861558640016726482168712778147235694735223986469733951897792950920993913371147251914228309155423896202621358775923284535730232560067564470955763489010365517380409883624998377222272815345732972681481132981832718240764380483958689901017945914070666850022693324657460464941488192364408636120821663088627572266514739108423318930316141410157582991014923529572275039102316331785351391881762959360576307863398771334537883099264712563366838056300935082531021892470303196967914488886057111836352742731054965373905587252613667350919297220651068867236339816634609914038626541640530886875187457517596897501504826813531928174214046227568821294176579191085269176193327904223711070669683799691823106999514398770617626374345802425330214476799445561667922654778732414002699221475696506267134534676214816619906631449664531330842988526790189629845110307941816042383585779727723915740099134694747818105470285192691817148101653566885672017043263637057274215376108047895560056497451237337955574175879368317098751556327569539396404689618340694945304817253424012041890136457938087281714102993983483493868561536931056713829654319954691111429446250880154330742146409114639207546738273041993759227244521542094113508200530239342205067679132410927328260970822697340337726348130036805882773770123779063593781964371242990100838675392368105067328820610564558265111626721061877871802276233595991492666905339164305911715631394485189176382481068954043681562664381624074690119173135268132545142702255251084782077004208058853064314131851144562798068548834172510543943142541862111083103867640131920935700490809200640109995204698050191352506497416551366811323888662031114523118654589254727835593875176756806060281175501948527214299953759426457315792504037621233239553754251769711575701989258314114286919362846051131331331122819058730610154773276268069993374491028107973099028544243334164288972285807577408580644543812215033024278444921320797130460313908479165166348851823175417265388607610668967824430314122598269751324574349758278344201045089959694213594180394105006993412206707278701675509432501508949872972252570911837106327111629660286432166929986419982883050164804250687459502723747116812436839819343007125554753687046069358496217439193218718249945879575652355043018465777014877956710094299157657633138958861755276073910168170742609984261753864288832348857045626792219482508236281364086858788018043882457579204533108675999246770326284175337545944415470311186912495082437352629938489070667758442963537098003240805355030160917509892393806494538696226036360567701656963434070644838923275470978752053031886472479890779313875726954464285596974280734125996205576090489820132675244392669831685511769459847876806429090353447910982855965620564260936075896427382180133660432116345938898110391177235919028566832149589555946862571086426395958987437806770420184454477477083076936817876076523542089757903740835818443844398374494588237876112206553157363835100448037431893106651850179334590311249372373914731865034521237919992615680690873202438574963081757648594120282094580294251529660577649495834107230273923334183154337014764707325966241765987781465260364863449326989752971528599451406434586598433274116242576055109870226038389040029275724050639630384586286789094087021799216400246187294515586680720875602072924769062020418531890963068326464246254942155540823067221661795347988898786730113901775570731593335552714418700272531359819087183880051244887979556293746558525394395981841885878489073601983207449033084550730189966528603090690233826132475569837224422678379759274752688010934156931683999640509356269807949161970903655372556923843153067946503906596372611973196351524822214293941919506366483189758619239153257582186568756807686970370461772063031719757865899893511433884658195640635485534526228488811673732813043342912053529351711233474715713475604572495976755273390720879829713415291731212911235243085359030956362835649491487696401804351996387236274307611085718666079174347400283373428344366370843308543255056124906892607792438693929186278073949368041914932433096708620684600024157441404568322930969404019430785700958621917990092672364648177402839123648780595758383789413359576228737558846366492229994421678873948887318502869513339067023355658920395361936449937687515466765919601634680588088635817783890282584011364286805463825868540963678046207356785529225593069985605805854688901542499155683103841774773790433730972062667153835843124150713387440960417090478006110809530137871359267923674167051072586381122109428589734183205201326044743444503972270781735512324908001337841182018384549086939105187696229917742012491455368269132934404323082717103470081683310754582409792056488462439719248602966063985349521278413628028851113837542922763478816309073654632571058519854968394502268523584937512261072498321503371761331020295257258400315479324759851503214443606610295266279390536203201045488435676576222747288304815410692038868264702516791381414790240448705659641967444580268064160681748163275632007925024575601023123709006899324093706528990469921721626594180430851219809773843405953135213124656613087972383013855078929980241052597034935923688009467599923365332034599174764079957543298717794855783639843804694117568317628981851310852898088315601645614663491746578560545042898748988960867310871511339733001949481141498668300855818718171449737556688987872188585283601613711528906199593295862707028770157329919964518227537130577291852646810561774080715724923873884219739027501507235667696738875989511590737735996946994884330032972579221215083496235501666041777039103653187055692448206492538252663860357154994301434747147298612718275459312278082048529509743925977728399495405789585854204340931362124712238044447876047353045726677853595890446313985727608619158117400561578342036167675031151604255460327992421407296741653731221433820007619041455612080596677450336125162144257522964015278250589135649563164692193182701694183296049915679698481869286278086848105760223537131875093869958640666094405066113819614166896771772642634180311141301040988109054559414976004704002237674483030200998213762322535216311604425775336995778477218396451663876495456007081696024956522070447268238710213029071003612681618167597311361898916278875130442067243135970734085772902057362094121995474367726125554618381129420325334095732623903457720332302509412019555022440637555559973081417928684516952956374365598173367298627746095248993771038122974838103580569317352904935533448156118076238389309480075571876007582694793181346506453998978285279055389426994059173899051929523048548564884980331531057557071803142138664056749193870539045903501274621446144410833856905485010229783803712045937198526215867450020807462402667494607528950537504659559951820403346112260965021739902287252263149026349951702345378623065288945563533014645844936268166472212493900880432173003055570717636753412156872882390049716747313696469887167259153144773568052170934533790229360175003345925632877945608219145369673887944397479946209002324802157504543819156375296838425664667925828239796926332068925909302778601214284001274562663595822405757864695195350527881356494060497181762108371893996252427559010290072322031276854169057292512947887709506991936971552428370688860717273174615302157827074537359034540273400043322380496483734150344722185229828514186545008416320968088616639563930273866852319264032251917181471573356230609622010285301118842243288114611905021445396102491245205463894293741045722357445067396116983043819491198049800106030398011848582179336180913692927309585898867072946074543655006802117755454663836966302238190974717093933872549194177924438902618495686743654761509277760086649845485403723213127069827859628118816901623107147905538141896006775425117325368428144407677624102711564371869316204820024785918344919294410317948767637972179439494826818607969528200975321512099850043632396490452139540976602231291017262046033326917225267093624656056473858233973164280501403774307094788165497657016827386975741972080346037683800071058746103430433431003456202837619931488171615015128972707273437247508606448084999983897641310394145106628918653553702201413768907062633502010253594538346455805121354434491529518318792398714857052527452141480430962270651739521494354539182590111735329648846977321942098476256550129378040713755982187140910770562247747799341315610186772263234248764112824518966628773608828837756661196399744765447717787217863158460868234929078292299264351500818830808057474819584230600682995376324766985194901570795982471732993214305950782159300203553760472669762443156238385103017444204495401874942400740393861731562034136340484443497440044933176627759486391691358885545107837466258289765445217923531463749289541724305974633362021168674413790460725789301728893707311737053384033890734260142145319936700810079169520262618610026140237800746759583715316112822456465422627940954083047779484380284934756642937127381416782573921948169399867278007387406131901012256226186222741344528262497631170386846869489698273561850547861960691475192878583891601152228922738548748458846482997701318484925390820938914112398110995528494109651198780272123802921016623115907439488274233751965480758754609260989763212821158937238131677616694842561522747337632291517396405525495002831631005520866993196675637784109011418087319369133635670021702071773739423555622563048250473772304665781020139406560298180037294773096160345935795424921058450207364193851121620673312197682958967502651265498894821782419426199548872524754087262718359542499865415370310620073237361904577889891126696475894218702480853138940008109742838920563540924288885535948164662390807844427494404331009983781371148729206358697086587725690627906930656183166335385164704920773577195171817624144171724749620585541242947764194181473569578884701846353341722045931545510017490452759950192754890169213844744094617500370530116945864953219444936231687282074686967478894461917910809406842003185208059129146395579838437737235056770221229996674242562424399241967045944545743364407756830406105807153593358878679113948656837383046716312009476539081062904834004105711706662877655123127649276959247496845763940237153504389998847975935327954030238040438806300972315835882551094935684460698088662274240890648058376514737843484057242601069620696232978289499031430216917842636754242964757485227740017187166611907351362952201920278208233291156791607721181227416450707492567685547285135379106052988270930727383403248989959835040075417358622641118243281901574592836680957303752051675773275739268717131591799832497772064882512712886574740259296213644651654067470015542112076889663973741717828861064450658336436787031166859954790424273076153077982919294281714182134613264726188691487599358147480034164929149885694642163362095064964135930436808300947084819248845165412895673695447637876496507575746163120240595736888307897624715470310325588582711143281997606071702236935886370434205797770933547678913174306173692338729360868824372603133258047980846805324526725040679456429503579485577900903611236462481515420607046097557368147073652564026617094490978558846699234878930313718031920323823212054932873626309971489618614639713221351279946640261976496039425967627629825588480034751100209505138476786098411358535544183646102491187877706571786958028502022610952448859584334164881763505221788824214197383029248280091013140824915504308165442074628979597290175477357576727543104741982858283041868476266216840803678909997681924573071104830278883235352631226948772233177550058515812331063074488010139718800119402013740483210650354773385694861767016603814245073054124844559060246130065314812557377125835066248709785826296538261978909813061041827714425988659674970114212852182575098684326076296617584855160629041584273787903129532301611078766603597454122276750439495559058236706348883022694968544417294882997864131291372955847973794820473494645666840784711397073696146082280278586659369175735779418975362229059733884529368214070522854807887000349391552857147909678426529945275733233367501533787201662078506424040196814302226308074354048292341968791287671208749011498136958588046055306449640771312493503695232039164422770251888049845754331550609380963838569836715200477450727334603036715903328119698151490233277895249676092227903039159824173023459742219116481914015737756036227333093138804389658026236845074418274693426117920102273146007494626367637075038309147834611212912445250351505243224075037274188737897111285316172909722570782890511001152843482262986649751476180922354445919604739071661812687361570202308912275305035070936646569961902595191226011556103335044518372284510360007292154533308405573745515043284344197800778000422993913724784458212331894374460799781078993615168009265940034576598426245381058061767803611048294214143358392176879868001148382088885184120706125521973265414329348110098406056783189670195362623727923617908367508524350338731162324185460682009018558056830597672675155846110153020586171192471268213689510024359356232256659326703795338964400203080402636519356336916056500742713909043485121785522080322799172327805868185282346933648054235644793314469429774788472060279852471739942223695940847067340539709717464442675575521221215206306405817029395297806588060056097304505233411901478140137685044688966412579549771037935013335384235396667214911245875250841032224435861441450567532849309557677741680342358831229310116608713410813007775325189660234746428545807246456043103283756484297153353652293073990856541324651668004062808533956280044063109267360660203173927194731505513231153873608346400509363829975560416176843623961750321758084719856728941608880591511708582660463250875917079993706901153420910538457643463956914695384199656073815039860542405070176065456485546107481321525141542947121825527853167840829366235208401221028912816829372776599315873264673337028749519561888024414052697942355144616951322160693906748653636262400657895456246954764631720126066133441577021815398475188507653114108385158050655296978748670505920945171919628570733122972950947835198117344688132749146486302891605442148025020324291053511098643212425113014272626647545425784098122070454796029591360565665045414533686599765974330505838808664348914573734351042952549073172949008842590295991367051177594309435309076544800136938377237460532581325289289302620057749874610345299510953708395401592846036602388517910448938613579151458224124716962693334919025202229013588029840707771049801747631757311514464814634402522410776949308429334129899762573609597448453548241806154278398956357431874745780246585325748102217882018677370357138686185162225162261486478767610597389711894345722611822069293075741879412057968697439501413823421354790647353508050473648554749488636306000241245177124931181171247310512148933496499468618275823518472486370868792723824954279868140568780008993323590240737610888151136602100513790465951355302917516441339407325853160245182610402788653034578218209136739629466204971591968320330116068163004735059147959334285346069378840641344560090945930726270189682856596921076511644597379412486460803183275554643159361969030693095793269615638164551485935787767140067246113455047034181727434153105468447769466721624732421987336424306343351610701187571718902175323420594618230165993093215177926457005162360539963854054015650848858254649002092376106594319173298612666210415434501070572641853945305160542500017625105211074335607087731578149884446276101778800365557251593848120454129847840404582775953455403844960152660744491208908913531263367552622706422212981383714698804399138741739532827675683905265763013050646577963610295081994935591704408973557259544180000564605673739004948714892182918513366712627999592599919898035760964131904654097068098175855401664881549673419657539798349534923518128985498612536528888488452477052270621999281316133969685362219766363174819856929815269537883549244824514428873915347950384379478478683996748071063051217112703083556262212128129381599940986219540730696120025346387044240699943720107332583745420043945351428904628977869873510608156197630335669867120638160816639625196185007661773163304321883793635730033669188619852422861397693920067272651308532608839944068141462429056064560968039416360597121877798799277556066290830723029158745622513088973947822901866108099216049050207427573677582692620468028665081300535073583617015641716022973688274870600909942182816897686075173228645436443714524825860145930684099143850730328680185165166736592894751239259631657310940191495458678059886785528106765721445418024449235314830133643436094972480173440726089397911100869840219341987807478793392466144802288910533282790175962436438578508049680575689824902004395177278734054337268613984025246616555727415571462422748821866171470637302087774234370434436002988457425220441245546229299600224196802462717891755764353580248545149074258511516941019296108021851032694402858597946279581418248836391859870414788956062937243752523990399520474013803292965952994610881266831852383529775957151111470452449877806884107082506017797851829649041000153606712398890125416485114873052828963559801755349549637495161491067627888141597283227957447133134620580514767938995095316520468864116632737507026691521482424476179371928537852639710284275612022897435760680017976426625437172057147195800670098556325570999457778044612632116519743713903757613377386753235560716608140728982466058943230799273445124288387788731372195931984994806657155488227652795394127590256065058395657274835540006336251483076437885813836202594962384836366922863614984168547221587701193792574240305456782721312224926141781865812770868999438961292937260797621158343953020038326632321217298201347985052185086414014389399014710613802125528225144994503751053329154257126103466677852784061443439675292368030019885051870841285914013490805136471003969151287414933147106230296573014903182395971162537529470956783435918236030270680686486224776804680007497926193250903320307923941176979705694403020099742739383809679362815034837437963635506936897011871913135489821055311078907789042176387997622409639925585081666085763913491318482933559052929887857938752960405866590108805490099913575613540449885068056829178016379331619701398819683528815703562451027337563954005907896771173938714268398007035051308057484080812705270511222137583830728157830574575865984153993447104725029299728665003453309390225813964792921261864129170341235491763320955674302502421779278985018820750605509326104523320267404859492526269981804744695908178299644712688051139252488144085640167130384428006627782316323558897894045288026191280151427365606907951362050204008362905737450273244710873688405328050556323570884399973241600148195328695288028761002872097698121575763642866931293886106355436919474818412500677909121007595255188866008704173489690891608224713217445814302149876975494865148955416770693461524561578779088415555631098436809272108531434288572820412344522199191448250778966977508208288120887013038313526076649133062490701594977600864900281579445604826080083335219747001226663254966635843401638849704742369603697638759937540650116454489646231511005758833357546149503548833660558608586047680354066413053913609355774851125014488978947761331425552255245376826472193572081523043430710773692255330328833127805892474803402719285894794332564552990130554786738830991913010559736360258186763778077599452140547888089308141462105337476126842601894445555504009115792837577320966851432627190670836898020990915003046434005472317359077388414049138591412098895463311351384959738940776829144883520580281549756470982192694898432802338239037376600503859912944968594029908259620316989799664683699539191608070708433762214835446266932908972134911149963853673145436123344393077642234130030443724625983682134048643782902621379809117675293555845032035307301921130395561887733237159627508287334556661312911808145663111592851360636003333929378739111442270967234592133590552259772055441176798785854828111628214994787595305927489891867723931585425854534896379327316390766002507405539160687465000370401900781958557993933456331037507294142835358707624937402187374273366180212544558587133785047844749293093870297333637010668354700741443777745558981780920239746006023044887025450823512938351544964477792110546690499666505338226320168290888310141672477146164658850293245449126671863608140585947174682036560781392751406669054693416026139826916882130339714601592948025864827094490324248668644895463327921120291431345741750650386415984022192188007172625981592544048252277015791510404427956471055290468828022203298358599247222998571943235063048770092735258904473940504154496764442405292286691411669548050761120919890170493400498091908847510094031869815600162313062144952835432903762958133225713798573152684106790161037382175085179959233256971585230626956786878544648036634394301625931986877459006543957100699542215177363304929071203687254400857768780696071795605537427757606032670659184938648319185456840286811332515680788647180260541371460506351933019364312968133641751892501112855289270909109072058416612642789082117239818662552458802529941936427693946820412190872344896530751367789780868639236142784568341662462781799141546965024835408729956555725464164827234695348411028004860522378399584113971945313349056672479003666368270439302729985878449402198592498348250894490330130649818002316599817121531220257437952515485131956108727451455287390833959153712882584396380383538526826363243787335818460392698703221146783739746605148381657740601689162908760688838508512473168975264026985395660378663309975359706938852806938602321370124789994692128579312296660460097739550261927352448487966578631257792778223190481961296330485223799207459116966796881487784494655817684819714490773479613928242536247554302421168245817907680302168129902892010988278317288990841017495741873742236082354818760510357534699431130539263991508324426777836760628064559443510289643403641950585112275190112999168250332018726764987747739893066173869244276585379919114407116953623216305444137159881642107167722115297681648435738971950101693470210494459576297896488358188715938934914618405941438130055427529092197477941208016822154071582572690847896748511048304913347041978692082829850211609535624105500023977078627067291850503088130649565128948904865842546757489167375882790253620632648006255669171423192880915203386037425363833289769141202065933303642401369234002723266766824779285783451310130965146177902445756769262693901556061679835428997737941964025916988820739413022067004345425225543015507553660421431620754438376937538231936405893232778651346067710696368507855501478297757178406663204922701206852726665296792215871761634061480452733342486865186120804045048652261169821970098338949470649393288544463328262284041968654295937030680531372379051249978170727889485616363914212563894775460765607164064110596741541222099481340290242563320593715546727132652324829244514086181055014236227955086089516877012526259784514059821249496646387042715418482368485765159705031831751634428185131134876282591479127421497300962020474571868186033942743187352848661942109495520185599504821233149094278610308159214462477404075106167579870466972566737844604950197256830041926578494687697065470429782535907294462524832034311903554882444772088692293261243642182914463001791449759431657422038330999620837761739243255589103277466206905999505330703368140529896539618804172768034628253527460324765975594702240393459884934701994084495817405560553980936046780896715801142270213492674538338301773284390184628580168354903312844858795385164600527735429240988350890512358545619341811675066665230814282202881429534476677473532269021908984558513309646039797421859460554345960137105025338662673572883234237687969498292984297666213610801096413824116438735938498350958999125121316451911146493983988219034592898681044900552991426404081788624254561942392026347877057409793169951669986129973471717557814232073312440879833997758917601203340613443703611756150859106107675695304224703436362341842747980858491984178947120360593585210870316176078960537138639776767975106854517967471658007820011979038072769833110418066845153474454592344654787170933011212175723100210195228999188464361666823710285343073618870452667712926961704863190459265360190315777035801919589767237450083227552322112865283584599786025806054904988039083270964071867422499294808355027036797153941821516872718104659800209342487606390532768513567742084444405445807345152500069117324278602410500547117658177638472921085982167351109341549648123442280196753009919422789079689531637285810871269915027358387174279581705379347165158221420493119514436456432317168483832543754765819005140023303077878172941747153076704840266045254606262252708312243812493629183904135864810273441749747175616852584882459608215291896586781499923599907084874530765057795420370010173173497131925179670943241451041100633669669020771870511562855191159439362510748306793611253310660391028855691884558114068237515262460047152915655171038303351587633700922827103057900070500363201370490075587225419809690815411495806340068401896945549362110885641183008401117658610663642295250989275531088961960151377630154759398532948691701908212325127571655088646004387090717614291367140071024763756387460310325044939892985667196452374719105206993795393518851885698981978593072251351127929958601989464854947908186625734781577678380416178027653762346064287147220134625477453703564533828923231846268215820847457886475552679645064661562061736513386596226891793472763018265611751339878517275206862688628172806047872443575559117475156496683067661671227818415185063675407434317099528544283738589559215492478619903955675829376873577468675617850569715117067594753578889056498183946376615941633185822820188828850446799868986513525057160704374232998620709053673927076285662020494403896845861360475926247274394101159554066525715597513612696036135835105673647039052042988146925985667424465796774358865941483623021534763880912416725771758223602415450677907304829618280704500113808440181235518008343914067095935655452099620690802836777282640016067763685124557802970132469276245278890843876379197030882210231437676369243884271448818609904818087773619268353626744167267773298881864616427739294618961027997512512397324250190336066101457390609912117502973484466551860152561740680026038115030899865839800517918344991774826769962050239472405943402815593812924341631291906813627309638602755437303547150427630194463677186966909386758753925522874459020919664368687194047674918631324904892365222834827771892468571279358705524935724990119817962055993206948920931274212663706066672591539009462554342665882172594356191406949681075018893472417811707185744207097400289254618323417220492548311867563902058667193698349150272613738968919152171487962446370191914072293039623342606811165848383928211470395204472232115132208097809155153050723589792801079972114310975521788541750592738505495672980664377796763859649951868248226233051083815160536356647028356297233632290494522170320939300091924478652901538413078976421645520292873535119728704162398538875600430828264454294932234667794815657538079659068069525841659183551951038397522676999949787424459186947569671703227271574764306013991208407185951929117938196723062717151422993304582381093796197741398247560519419185323518813952224014694820450518545893278239749778592370932912189581825703480382392841760570152195129389835925576214712260728505072850974899638570006631427855996992516191440098536282269281681739155318141477476825077107681139043606456133673888576837419529600506439172165374118256287511031596442647455251626174052968131657442283858319859980798994287027672879425818289245155217160640532929095205421901969853045170159360825493318547760052981053029795971935299294297436443200231686621457508271890001081445921297171065886487820277114252269677457339578814713566046233043497084508139661790877166420949233776029241683379135168832438600266057580168277465119946424047455396404272330186033033280919982424317113261891481951314989447007277640305040258268790498876728810684634388984115488107904457618738205862940013568215184915770807124407851184286814212058930662527584508166666599334877028401281859363797985515073260598729447034663401702634564644653657805316679577315629486904580238678066146895336443811159339294120131749367663148514031672981151650519407621978153196306488715506195243472742932737068080491585281884832431063850600069680581714532915926379692382144229520108309351904774567595664793120869684401163882145933389685510940608909342012977797114994110640367085129257555048357938761276246908335986062274438494226442691179522252276403295426021979654702853714534285763383950601099826538108287531105122470125778804652057281230810568212941258424860067470268528344668385783793116917621351532168847234439900778927239016045193651021477809621385269390322123947409118890349120352696386316717090307451910158435547004538544706343910752831424117939935117733887907692477683514847876465226977897374650244536012623344328152843813620366579681175636125523819529900018256038006394488391081663737546699308736254131058256706854344250278094768151082732988346766542212952887433663122698395782073955934289031741673116972262570037462574651765009480148512812810086111630032353252272479757500280983458313534032508842089600031321466941664839435658792073008139522768514753146835215737707008521097349045001432149660340298894125031753466481225885382936840439590991137561356455960583876668674624487823128008002308454384184170176198477770375659041108637771837631985588817906128372087038839144291563521024303495728374275101386458686870963701304124721096682934372760880657333062102824690420510320176026642469704446364672661314670860445121199585180138522192803100931339802652097633238803549099362569609728559163582514055853966672589008457045010657181749041154193411713108816985809061427990626544323779393751308891308216575693549347972794179045429512270010653041730252874689803944663161048355022685428633492817659361091112993931187284926157211578131818973401304570031318067879232876677174137847922913295507698113467538265799092360604405305463803141116447997481140472540288348023049067335857219396833165896835051321987809740610234033079195799198488176134098140148169442389107859383492721440308765105159615607365258277462727282579344153419999584955888546702340050002240841863342601466875912006625623822589515208020342291511429902109251744416130885241834705017633456105050509424892157572492426999601373334012848143044710219467908355157365723062136913220902298761069938784283552730364551562799132549505051835815877191522331184175789408086073348653005216970880925549718682865401585887438723983663990394495274181297067474883797966724316194678025133118578215674812329229564942814205018849175980281792917941903500878949865383021623034724885585869755462193705726931834062105726845343035553496850430782762344415562231429503995598064347284167544212679490866661836684996411109884482655907142954873041865988739454620674648514658677208252864319770303138787356794463914135353801856699162495928160077565650892246313902819241843932731817609882583702786036443376041056596761365244272281837327887393685017304554169012741562994071956228827456996069960409128210542234927851017012581879896100265703028468656321324499999655187944336568328476139137011770897451268883435015461202188749049600167420980728810921969177937332103657246394581635474657065504954659553114652737607093712719629325248699060020558554782776336657240978830624552689902597737238099821134628794512161074862877748556714813457976716235955572008587958425676270430012035156611118234546415307691917497789339687482937788509425322416476767560132789711372630665382427008753605487769380985949397840157348472916534629481061990439266103060684242076330839591548823022691134807505019730106780926423242436635357800344186253874882010341890169344734404145189644680820273877997829146898861733728249373728979766698497047132505691585270698153387420139256848040839205641967811354697655163492437670091428158739992237990385192992367225261137711873197281559994514404140567075681589205475982834256816088261525928178856234727014842147041242580830484754844891296388844335249299517613969873976092046572381684554677472046564224662099372042733598990684665191358970246545692657146502596765306597709968685768951070966399883198766380724923152328248879761100128563144554033046333781010502427478716843791855038925335662011034794231830142067008213672437675295152011749628079566170603490544845350586127019486826073429499988312121507997961357071168685271170656037470049775386734750359948692574588153306137504636564260374951986444224201895242598324516639758314677206489447286217492363131284692582973577844373341716066823880435800602369385697330763074558565936305677356006701085755989187265953425770131498576035342778838287866449950987386109524479902579864630528874843821700009382220215287148486136048213753519526148492865928309484463574389538916596334020556736501354373930892688754026777487294970469401905394890454725555502142292815417532537507123751256559616457466620194990291064319776422605343495193833649362340085450207313299195292018068187846368618272331018246966196417768424328665133726448575774336741215062946080618937458169067747293106727929216504034828051710213254732474170731968166974432403241001076896463754748117713982428543977624144507364292554415885771462108681540416816633669140083407416519587377173718560286370468519202090347097841306314718043659845379631434904277117095517857915968737141698169484079441519407640128073410780369736272699786512185632418763681545146116264516424813705310963212884913975142371233365109581651813374111193693887501849104574567315526545055411831016418315971275725711440134134630638632797314703037544943019144609871986332671132623224654033739882527137344585669475190101997933794207676674029860456821088695298329356971534833319762566652875928875947154900741649975498038413556194990557396765559593776821865593721352796092781289906263540985778234494570507239591231841458813112486636796467473278492589568840072414291726048884387646640224660818254399059531773660816182143618791551016131842163756802562094129703212473498174526454726473668276771634405671392495041119342255530445893935653351150599683594958720173572760253923544695376347001445028644668334672871967244310083040815277263532114412756748266502531305273395022337725927334500148501769491187787816160846929169923395361700431357893256530508416353204273881905696757562663298453267968930607748198919192345154168648721018836028221375100066436625912133050985561578592055748292111361597879815715586433851231486439638442472890957016122693809517412381060085790488781582284097439757651187918651675802724354337490363097792511617390821109021001738178608051322532260274980645575271821317389510912847537022801138366638905485845577905721366001462902124835652480287786608522546823717077923116879239154134083358823210880468408278462514339917071498023934327340949787988442880894578753345597856651622128904503455720671026101057399779125719982766109050273675404323048737103660561096922676757552031188169174644239874616770166414979255809167026408961007104131970450724711688069320082417225799051554901479521478496701173574910926195940341466585916863968863759189150476396197143809049221483384987796803806722062982004939454048908189108825103404278816112888337433923198327591038733855845952399392379248576627466890963721182636669259208908644565153890918458849842165665413002771038682373151786000872562788045097414052072914926985961907819733226105813595919778564086750958132855319786959577802345361288443872011184234268707297560195451686768927638952700043399247646838950094609589752479976803745258668612940628009301053951217135464681872867833380252212463486601096376593872293337710309579019741163651040564215167185341982590781733708595568330597956927296250398126939153166891400829201530076271124364636922394693288436632554181976789827064794320852248344839740903808543366104223845415819517307578693962414735091807014890526070222838182057186027591661687277349835269372896121895226514027492384184902911449151865463563793452178796115892165661048454491321002477079155156653961764719668430135908412688181048279722595211189410584710294132728537439364517913581199348244181926212798161625628436930787641813038906177780300027109618699474970284747835160444486546835284461561669391848243342135759607922144203181136387215219041488230706221853420867745779612693830812378156251997677819770491248819258424584189119697374781120386469018407638727657935724072083558577250651603126873414913944804456499436034173250009763460377169705474215019760481101129988090365245649573270925274636833554716492868474414893801240348371355289371033195473995545109835993977239392285921096884726477642564784071346088949487322462495431510726781951154312066159199110458239921081514799310819996887048893844075601771674882122294866787819545580171263373636983647342361049426798618566673622571233748457463179486700949127789389285824100731834725285219855588824381757536129553383555566021170432028630399368385299380493831642775036531938128768366475824011354470452985827347828371755373120977323252696431410303323768645568272535879212421944527532624022090108277271278403651178178967029353637964965134963955379025820895599270999379096982637002022047064815284382058353279101556206418628511972660503552067343271268356701480414296679319259563814758303577617224910474220643695999559794074640824766838866460088162958413118247676148273462257910804443846032913540491853881210117708523676893557720908847326030141939649174270233846087683362935189732371128672627832681183566274149041768036556873307790553127815586488205531815412095882623723742918430654824870185256384665027856203509897069248467142448632635406721145208491366241320807621880449157258177325062449945219260670035550745377264795976994554722576741062684291872001254947449531939196560648583039016835325397955237999015251387779983691432867438706108849351575772607860845369868407755694200622948853001333006133343084524631110084221207865211799810577101311417790880938944939982131030425160810546961121351389473100382331541988364563329337077714638999266276661168259500994324645058491899072990706750757452073728728552093638664729825750164490930412258035912212648476671096532986374778386671872621673114815695327426238522497296812676911952868687343316058281027347567453660514200941060775749067708617604906961747391285470827145819364606842403294278708053243094915317106613274998298061395428995197282271048864166041872140966684201706434784002856449823197613907397610727814332440831417994762910226337245964154988229697854267517644224806590038979925532606938436533638924474739114559676108721349467435215306688255532621132519519098519807794713085355685270610205869149844589255513490536604212540099656167561604056545779480739400492346082469713025084937074834628635271178630431457486029252867502308695866777685900847960821184513455284351591669034116452217673198536630385293595896969881604884169528832141963236123557379676772953056609059405191029910889829061844062058414347949994505973345165790415334836535408022712405930784025681872810565873697394129797183637933951183863103930843330279257983035171274059564819956040066178682759534713429033895659688419186670755999600368025598841004900094451536381359903274524618115965407782556780136001430629538172541690729273929224870922517332221329831044792974937321641552195807749347916573513351054599939359585534848641672916668445284349346800607637710949979393353862423990014503153777010098056570201665501735862462993829673020015731238579481570603625029956903897663583182030273078954230527923909436162838602899449460386665375598268222179826253452945065541887128705209837538286490465971077854873955292021767452773082212551674859807876623261001224854812836004294300705341977989591539704594510578087234638295703990949481482090182893912085594167752701955429493146657765151098440757401581335842420676724559586384223548993493617312433360509581582459146839627668683772020595309617297467776747737206846081995892777543128126464081800519551871195606192806796750654272423888422492431633769443147278680613508665508149185649823492824385067452413160233278152491045297883025468450054184285967135735491913575562949620525367118110093275358948637532197864834660336460995022347103018000032576537485645975320814811511004017433671807045137682323638112018358742498454153149287970710216952953919760393956608228693760924539895460176345897236383480190192189247652870112968509964565971050102536779716614142749432642881513513185039567346486714143460341888225266959960013502423116253538449191492113718270725768711931348954466270281992319509639304744295592768926483433152775449999020970595443359072730919143908301489336091499125553481857116951039040348843296805286123509376307890161962369310675287558170012688008755658250359466246515414476834250007493630476457151901424485076858912534220540968127617359849805870648761466906975999325528603119850229231589488477636820083589976203029744977009028165887968122018855241031737172894688811229919165520520541833136392552416148266253991990864610210619917554322762699469112531647836267922553359066428203285287280514973609451230151608438445367888278947410666826261997952646671639451892153507203876394172224713630454057489034577669262485884207034724967466674171231166280977331181220633733282366961581525486929442622479997485575131488308145539354663356336101355522013935817963613702252316184213360432670249403060112415735990933122886106410167688032435260863135123646552333551283467497458514381915236278244556088724195923981624698987450265326921344861921262623552901668844836178859301649252445049082202085704194773640835394189877330310632317815470757689902235308414782456726660191115399774034294307579400378042421790281762151163537144039859697616268644067968910430136304273304433144133228938942264087941541316198292188429925183712001949985315966420342874413954521452886346692914111577858278375105301511501019119268807348307257113844634868166790650343813895065226720978155731035245825648577057971598462198062629230114131220194446596263503204768190851439194914405477635244983920933124155041586275235582644414788724976695119193310879172775917435473869555086060069518450902316443716906406802833422291352842970046200381779295365290817688639591340295698709997257435349804172662362185643273091273195826844141509140208805200016495475569735253878904875522490889202041167762002589386922719456152772828329094067536984261996797455733622467732956118745626348521473196355093400097281006442935270917523169231709075727731142857783273741395196334752438993388336262729583693432488484164025195919663474844107202140356549400506808115059665254077522827974659765269982052218630631123008332798650008384160566900124950044225290546256439810391293180740698608233576380921001725624879773594698255452221498312147432906371884021090587362310725576690999198814426194710153852669795000628954400564861624482149326865933872680738268652024597748813747641432778913601681444450834797587387219109239781839995179300015890530976619434089664840777016614207016589527222114235218909210943418956175757401485243160778117564185004344286942050947687652575548621538619945808707891925986031697734657724980975790048537101471555242269802959831703136731327865197889980145276866970857680477251772684847423119005920693498510930078978786171493494229858455857328251018666283747472019464217978270281151082133524648781434708272089577203664179355740745843436121773287945872315950856232260593462967610304011288250240103791489176299388622019870728947753097793370299647104220244536317608401447632450856468382044554942171970687811383050694626381746266908556307747340423439254542479667023823895099935344265267005426086688341773549861194260284048504631488099488398100954748479257338951041841408656508620659243037230064407634922050300001060037926348243310466682773623022730145930324820063602059161048779381785220692096179659168470408916875891752522103960627796141313957008184375721826622004106952681937710855430765366249004128493661081413004817767424886958298592764240577804618722134447311500218496914716178821265978625292168829627854991743790343905752434686853258221986733171808930547496902227150624327465630651307578535656177030255075683896335361687972654926156947546786447808283652838859326840894856096925056378648927094920243577698826467439843093112395241837812999057430082685273286857933880261201770778857885966296676674390247397238944640797065152239575845625451461875378139944824664636887226697771054915089264245701693971520899742662778866020229645763471906801008377637592688304879371946816200332885230742290475570899330966103634495016888135147907048397152042585318673111785795589055722902081646589012877784467379455406371907364513648715635391974587850346724940714912391329114914619565268952249878673763340732455713202775862246136550650839432907192815757188160673497643402285864747353170725775106737627539968267762550356808049788173539315235034482714806625695356265021059133221640534781099247012015932002235861537325329189001756869681459620224634968564120135267062167141485911654922539993294624043713604502577087755186359336732163466644649959407085473639199478966842253555808586578827283304941098320080756815676150552584190928870601889922687706991293407028243971982759995853002186799861929479644753371131393518787845294164886510312193728668435992887341874816776874332792286321721002333058841312395362594791839951070713663052642383121443572176746633159719708844084430569727225473756898836198065364305438824466513271052353023759575437155467034531795216648962024973892687062590651506962017355665864477039644920118983813191076764166270920877384048826426006646665396540436805634493523629687447093734721399763439102245974359508316196853045130737237491624399838493989476548398683803078197039433108257526891698226741173473023740487712116663710114097771799525857021896194612744378867947521696774482498607020392005523239542474652824169848862150245376846639699997191119244400615474987114002988253910790612061267151406648782353582050202767201196833187590334880680087082105941661065103107526026738075679372733525381642058590428070564550862129154705462405413439210051355031381012197652307618123095726933022150320433370291293901583029413212675987253202248371591498963389603799771900006724656269992085613791888650796628691815116260821254819401596129393642516895836466783044503844700107042323395402292099852948262024550300579641301943518378085489466450086795664996622261869538969305743126190723329874360818582264717987365952874353500964922921944455544689571631745431957232007228872556505865172695330823825396186626008424758043333958085784327395280507017195624181305346134395107551701822427343662707838940643986111977001378551735393868198215651646768212714322424104064935265584706614135850870683606038199558834235490776194552411771090126167897430524625100789234524092208009515669733152546368055400269534613567065249356030352127002022538613253651363086659135082416187889144382681728315546180091027431603621697021782359397280090651846864224692735808681241273972896335061333748699087082405989575676285083980438987251031972033429812830283983491208019576088311132738025099141569675263675676810084781743698791770928603630333325710152876908329453150180218193171544060249048605063382907932863233076756914684230259184486524382379753935474879533773869988590238282805573016123777420691558037531900572295570358529920547940857970177448390908217003819707815842509501930964178180501485541899403358214816637725474572514703562671284530480770058942722461956425651920355826156628494429410417077211755819060516778954362208847337063100652149516032346471926791405418323033274359699836107341359137341031336911414186850404282484849606605214737993500141237248510978750821035271238216863147218077418415755240674564381118691845993267387921950262620081161732617267649145495416687207478680691065206419561663952974312575155420711468360480538749966863493222087711944811338176974518868684051717327843323938054936701289021758513241062815878012500497690532421516706837837207986657469556042029004025631761939974659270033000214644986485688100282016658899949938286958939594216593304090850837317983506450111275329047382599191152238089018033815776376856763611121823404510142312585331454746003815744479731064834712074546799585522434908821728908657367917653102138843908905004119265805944643249693237894405478062359611225647221606116323980277365169114651410845421759121328576481987152421504964499071282361944460248973971014103261533204796057331607641188704925659037323021855858245972388684877096124375778135532773741501503298302631001427306317041933547350774107286278315429626458378329625669898876682980462322554727638328218189600792825949579970487099470119338313450134834145291701384423663261729928228794305730361790449859138527039267696418223090799708584144841377624180693128104296720248553317256791386239992403838026857352344693743040225131545954109356688425716336492056151888027549254691262035526933792068560575946497435160709398704637337700376019746161983859560844833286351044786666686909807045138251471834180612460763862580042829550288659811434064915508483867974743123824941464220742911204167600542085945522473785931491340582951167629819968162157529240815935365177219128666152057063607139635015797414751959625721282563592908630744783572572175497113316384421992062751210569958793252395540587728671582462964218216433487602250319585610213977948669224937156143984708124012713863329748859113766709846094622537968695278311089861004246782804399071574881121313360179491036680266168202251407213265319953873391606894259366321966365359104548710307546408750608884846541466421954882823585219431219110637724355153459978473815602021650069980163277554391615531388552981089703912817196680259039712921131065635441946320273009749713233943005472828478905468574498224842970074704027382697644347949225790676315974133604580266828051608699854303004166767146707685893102878728289839860555940328189276409719945178419114024038701871547223979540822290564515214846001836516931392836530629158638644794959402061102004827192374480559233854746867968532444850529371588520907548376199010212680026790266849835403925395359297413033257206906368474272635711285679734980797020630559346830004364157638729515251704896867354095295658235090512557639113641172951542213999417831013344641135331412894496714415851577027767832967741155758890441246825986748773302238577747358958266951198573637116597098356120127804067192982498726515086042192666984945953925268139510558407051165241092894676306131236171119043551281757701616568665634007866699333963573451121974772112602704689127274323683601588345575094303164157010453560396299576431497862790799871028555730757142859736937473976968472593749434346570324969082301081037884922747750113207844236997090968502276529381300376102376508655026455447108455241074134520396514898765351042253744774096505092425497108225540017808012460623043053526002464996530162430018105663405389426141089483979137522205629921618776371822475295708698887014283881880789932025413525574505088778700101318819588773499946442434732978442396885619671605592208926499221000773921029120287777058142336280491590007873006224725692649432906512800656101484388806807275821833311935891420838365297090536653514441679287881416630862994817786528163954803348420741757832374719874117695098575889685468304024226505021403741939797311363673451970269768888125191457194228957490873464404373930709775219970960236934164929544809419693804689790600879493202004498995661869681926060859498571741842507739928994608711303654364877192551774158915697435151830813481139641842004059518176234789481553547586262175255096684456913681763764661596908146987997525878830276359142830926865337847151907772790306608194006702318470267550080857190502971665308464091593823490709180961677636347529513322204538570959961972809481637781370724053059729013781329259900238079892407115759004793695803578696215066593202337419958695483935544309162499899106968463919169511873446315676214676046871878713724647633377273247629573272479304724101226286394625711983671143484644172388492052507377164053279566004757275989906106605400871167498930108061692140173429014115613868887619359556595912368535639393832448235809209594643282037924081959446936309038609329028812591735499622569477472213852713819100034526303015515800929370999463441614653340337021800915925824376650306132882684670445752008928013669470233522469969082433121915799866128014186243842495605822164828154543340003528163621650253349362381286620115463438855155995180598191204679804971856291139064590581861446973912498907708961557827807724066118346888440408204763807698082663705549745369868059073238439243861817612402932751246182977258246246851236526170099285244898900995849646971840390672931998993435344274280927369915960345860011448468182381679539222611202657189148063141739143861398959109179252860885218346203041470494676796538339194449217512554492815782891152991846055456153905344091121291531284906872449916421180146850612084211426302829447514446931890248138980797708014180121567675733117333564660087564309576997331117005768042449916839280050611466630386330536299199355963549146458861153895553802456005328820262942792306800122472811974721149847811932126146399473972760374277825070765423853364928179789724405680811329546355024490438398803821593335821628617841132782594373205563222538854332843368129202231321022331934622640757083415973380504121650791518410816304154903128307526165642052697018072053182517036767301033940469894878796230957699224066958274373895178814455396614272760014968767466819858799580965893955785279872147873671181654500260624300555042795136882328299701230775789960291116480164307935670515420868410971828264035274072980424197081114686957191358007028320422962129179920567565996977057942744995150651115350116461404786849424118556554737732932159163840401281800176505238799535239130635111491326115739912454982831204464946239335679396479891768087312644636318626924655543787618002813838309073710177382135228017594691363756823742858225352328065678769146480959868216732491335554788387764368875361820754210066849134549661386104611093192866484939290439123408287422404780592422145824131373707448858784625571863581741286723861736044003728466408360947884938129528450813725372509141745174262997838125498110730890205605272788820374960166023622369049208665254778526387048027667750484800160274513033888929795067453563498902220891942870466415643023142976840260181536656247118710050087961671373289569445886125795049590918211374266418496865149142225021439028670401318390328985919525450396170219445354397006094131073099870120911457810162665266100185109848287361627554353271080591611098832396364333830631095483700191418162926974645628209811854170310688203917015793706106974293750164431558048426442873515779952460936825380925723998004863477518865466572771641308712215918993777369069973195564090945435684369212206632218859795259218387485049004197917956518637715417824708624757721215873862544755631532536702198684915865689945179916750304904040706723426544124143879870842561438528687966255746986330731549494484640019990589582388174929083845475088876635377527272754645603921004078120233473853589491690575509294793324544965937911691323817005049033259334700102052931764213648014775384309312370941450246707922074145435559288935535351845820094226553823102132642854716667324314363568963300877005085349516952953528492963552431506069916817383434118395673983092716409172011184561916115503496337066548762662263400581029820838688961713638565058564472528328098662593566591340967531002045520823044667934023977402336614358535207575177552701688582380508910844398115174799950006552105058828697074723958142768279417269748465468151466099844226358956407447184909868432167020383212018232391410218780327038683171565372972726093746108737816040788891708803336317317624819466435790666110068406001765350643917667941648569036235591649397108644761259421744025857890711161047321740467127637916780133245382003598008564582816685612791838420237645844500847800355308560358986136450665584693706876702775270795964011335224318011030500994026259900939251181853476710298154882807434381541019267248887115417354784298989489374773816816403962668328075821205643014985874546369829746878856958397334870474287272624020156916221719587169064554999762183665554814932987167280438702979824522117054952364516466024446703576725792331141981473779344055408041561057887041982725334420838217861316730629598890102529471144145436596720674474687787439659544363070669006038561582430810950868789583430897114454627753971647265210629128681827419733887790913179309189274385310770978355706468671157703264509628590390631792481259517882214938593603651065953993911222366763362874463829952000805297267747037817757817617824751048798290175616854731058324028781809886050302535994222141209500026401688845156238952208124023680945267378899199599837363539810986966827212048848457065300430037289226817067243294516370071773504302156306695946207626035814073711646019834683839472900961447617942822749269387995530692770524849521176546570053125511197145277506499738416802722487817535230242264265443962811752139766335147734979679978013703021414220425375798550194664450585470396368072657475281844982249103183046689897504660735696293539739503541811789504658051111517472198178996945632206116447533366363282635129331012826894717899931529629138071593232247510167985499059051478509624529141276229109667162178629718215614259042865731039780706481012481198290130765237412897806154970120506947495488290400018029744523661195922509856930373643494435332819876603227405745314571214289428238823726054871853825055434310648609785350662581911837384170820235524208779139010965737027111972459698600976585803982613542393468799036678726652279521823845223126919389584810162853567089834403543538766919587742424767020748979947856584498086395018275670969975194117187374425451003495227487666649038627405017158132864570995923055641929445470227490576853497971559340523745543001192949438118720839092015388644943357425605722434194572915161345523434223578625851037445203960855856521579899646868487226492471710685181909393887317090799312232380318252909340398270386442607141108803935433751783072671146679639504537450181746119165863566835647704823072309717180180682267088127024345186264921478873546888103353314830959941066744336782915264468700456071658522635607276221856018205297446801636838649756828023644036914496379628647018190093568785874968614040991181365188068528269184305560724348351569740771073085663387072266688703945147349057303747763500089891784852998078123545199214677415060836985262831508997926910000942838044297945485606821677060319747631100630674943034632406687853526406882312388392706011401755837825307524531459015824783903143829107796381239686310164998387021989135739889440051999153832118889207653827412856335597447989478382458382233474697632889694426868576307938201392668091313567095866366471696139140007411981360171345453345842527804667280607276942441319984999312979674565787486637166952721446498551268745648429478845380502468957164153984514384303606487264024118833638819778234165030859790381902419370153478067728974328045042941537307858210099719880417033148378067149247661472594355178071697816587780235452499884280502153968686958979178603510230798200101417195018502835404773946985301275197435375479703968445618487995931773189730703828546024189943991507036403928960878109424059287570334830899989735000980171775266401736297923665373107291763257491090445795100107795427677666127523138026469498263521482288583633577439404569955241985857106476350366392835543844827779882210381664210296013248807620944452447798062136856738112359459572069945205972693902814373390727707312887348439602599181266162357894520119852173416025516447887084111714016956936980204334625542611839693179905765879662435250087305925333188851797873848473170907776054685647947345830074011817637357416787120105478742594390465535007702412083023694047656745934740299595866997831198454831660829351807000691554481970183834784925118425982190032485455118494804345225970862477232290592440552213224708696966747602869756639660267866762592306335425240967591545982382295961421356494858541810911369107702532551296544715469248867932655347929236892477616588811080972007347686446577616040572859813715601381486653193882378009089089695390559002061446226474626508682307193656777806509967452630434582639467064998765169183945820415978527332331145640705606876069504568222027505692274636476105852041094482048943273324000660014218501115585077505490981891537429544513606286723090826445211838093272204696726720420032609436437088322010491540980434741577488486256004656368028337499293050801525207289387376546519803702268453881188252464723904537600841502419096701260981905122883885810484539077087392185784708321778142722460295551628901573380324457525217454268507555287233303923893346230379596294263680780451616221934223121236274452100054145968052353036593660334134545016152981587064762862447545119505345678772090131262715903819012856360335450988254342367708879071370165147342700443790176352628486110754829569819719024965704907931926576131020976985058079738316547277772069499516867083635366661186190228794047829824468050813227432500993886498616690311158678643239905257243893081166447748897994371096379394801712256327936673301533712081589045774792262824173096173726864760304574261407088224627845353293435159465389364894189054099591299728200677594524390027251508516728608762103431981165333233931342025259730345696334815232082964132858042270165071853584231687887183677983541605386821327351518935354647233757070994520980162727307106508201919791786607171507477349769399750970721622730044345300279563832734537152958742002716884584344792354009527908620288053380304431275483150254217304668540694223150454204554407375855096094858437930092136192611581526340449467753821063890632982175762381853000107727948985284845551066394358247463128811777851909245402280643084879501826263207217492369863481509887862168240601438224721914658431852524967341675809499002647629741869930797567131170709029753481219816818501850363962386051437000648563473667316708565328254748572911454816368915531432474807027003410598920919148453619588210201574082917812935283648094852525222738543020673262444715424743623648244218747012177830812748272583260127228705131362788005680541037044273689202696234407188754600731289021110683138447165348417625488213616338711722624220484334857559524997658294819370592819123950551402774828518492883123272097368523835281183604303033684332623196012977837552188672855757594614348195544280663266524266299955254355746951580729409997497130873552924113675520415664478279777958293638547152473042938268394878365698283985071283142784176857079791488507645769562407355056901819142632505486323171640621666727103360530989453724411249872278570234237329667175316482511188539334997027964517560136919931544666794067973410353881897228362667398480237589589471152534356682197927266035812187221310493330901472992120433861303473153886720201455252927003183952904658857617253725668707349259823436949298180197994572762674015287249203587919315956802300631080397028138208505911310660425117761998892489146404126084845318830403468891456714571357567010046779833724131992537731731863861397258809740650878195766110074838629365195197200702443380646161497065729440756352791496857476195937355973102172595205984753041549165152684898111703106271462447212269044283847322871963516911581650941799422157858982666150342185388651121052323290524949778010844485643743867667137289184332378602946845942007911135192259808702069671103166568271608199451769488723124399181895475480139451269391482650380612737832233805483529903095757409805007525975150208685584277399094982668695586470646131675837406732711982447238203642157546575995214518699394039507868322771626221945468172711300608358265537773979445494856372253937561886483473617953659289061510819857523889510657472065861420718463955161274437473697362785839986848842302516824965443903040105623648923577601823437387572114671383629141970038406259939053495672268424726673766729232285762302402351885972801586950612558210664778193366263040100556632628241930983925708254624867305604676875318102708211375499436339833799024704565945162655497830104509287444547581308052831318019311193242387796523758705871620099262922654553057911314427468750955635967824624359056368805038369108853340196213189537138766381485413952655469662176170599843873554782645288634595489075530266783955291725660075977036098324812219387421352548870318155539179723725766925345734687931277999041652612365292312683563183282795459879648651022083598099770776556334435372773246729016618578282005495931707987354714781337945641740804110934818955848327953671592960860339883629138021635292612964346036122185460184522543693533329647839314357452016590779756800123114175516890619851300973107548285187498518844651218072074425353631979366163340422133174689317397972721551763875093730118416936502567797043645041190482248082394570985556689329032487308474637899305201312382980449807109480026513560157681274115080612391510687821208521931626098095390977010698488557143911251363907234736607868092571364592413691684793506162443684698691727375160467258954368490994090858496650975278206229790561321452584985794337780193659514472158001505119119206492341449156547598999948836245337968171539311554464863303972266117602183730138327323802965136346142274150788726514093649537707810899043720008111591568164670788339928997124511529853703685524708762875249389378859092149824413640787061075121806156849966389653074138189812889592222740766474864805374371831380271783831089532866890202824115576001186205976715186143927810561399139576160725123209827509073516315729938484009902319966050020346529569499485512595194599226674516325144185998753264140983280289761118596203444131967602693443108977289467633980552600230427182903127005430173414822601316185081585767712069811988816683288818712237006833297078280748300983462314237363643859931604311324714163075640462575472132328959244821522452227188967058315044342652909857403255369992953870171037766500638441631722130680198450952145100109272574214768471961755726795654669228294372161689176166296521464103127016651781738311660030647418492518805673833119325400959991598565988929044803076904083484555133736944079650591091711211716703696376487056008598151518441780037551826639655563062188698970063078300379388706577964272377208674804992579088581693264430725567414451620343052771586632559968748854051828723393739603373743996055387992691734596970510304300791550288131221068426324013096072043778214953240489718413516870732056121207951708697935418638884306463507291191470246888741390793787463320632178693992606697588752275222671769031988425731719686671330640809004613680655239593302171895289655101510611789481580724295919852765709476001422804774263330508752903304893974521021541409842159194877154904760198037337046727060152294942075045863931793369303673405575006983305841449661537733142163175639104530435617446600618171697477834876581944319169965605620257508250451790585444316052057210434151802662747075324084236822852854335861433438331983976504669370563742480823328718434988957753074484680568167836709805095409725102083368224182977975161755858760906748265361077073529024352497278178007876841814217850807503790868257526593519852036620975352146423006178880758668995902912276193869874670223488978106438784075408213525237104655242841174283583004200381266937251275410802641265224577381758081472251357142401228159277865896166147574934395413843216469421830201220475187170719028686554207968950902431231301732368382474714540293731291101409667821847972863171579319914470423663601092923804688255874373666938503844006846374689817008721829326051165871083698364677855510847278221754813612629104354418228211096638468483256722759397772726940727842349496704881791247504432821702566706359108184234764865908722142493769200052197251090392108910643418120417164084945410856808567720161765921047974506251234231141789824911243886408776638173569024513901614061258258336740824778696186910102423571824549805612192306146996009852522974801537694202764348907700996473616216747169543225745595213648073551858142956665825319406806033852299192389501884952378920948903644925845186948341894913035888842529705495689579644450053020219769813277276945018570501041954727200683031245034415588845485329899175887893473147561875676360508585382773233828608905076673324000238089205726468722709200181643521665870071795449222850971877926284113028750421366216480667442324181079458576534748378135991787771297121649690137258501138671943869193506919719436045115572992616452035532243199999111442655169564371740776532012499062247836847310043705882366611605597397112934846918647989416463263117545613386783253638492997556974164625991772060176750610243761825202886631150048769962886817362191192148650053683564076104195217496968969988238310713815309380431989052583460741496736359596260648010601784278722901099961469203569868619350033810056316169075160676935541886314272159631522395400094371380567561642415425734777066456259212330719984502495045144916694460849377756030244900913994227946076062475999390547351937591298274133897883217995418706224148126628857355142106897501671090148845504260954343792198626150498299852986989963110543133824444644128918088861404697601840153807459336151220528138539459147443402969018109402411407146786112202743417711974296280689053902009324237537557296797786149633179668152303231247447081284689601126108734507267576646709474853031110820393389479298448890465066563157403007079807261956790948501071370747673008831008045477440651693099238514850362517833889097106229983915896753852278643170502794148112000634510840662150382228198834208324467252421022855169766380053303193596931823013719955283699497101035370813500493307616958013823900006017832547819708447690546554906411691202520995449432491730055637737419749871843998093441134601248660361800364237392968908036178185495808990298684357990583400513239675203728276062679922326065462078197995067064626323576829404200287662594227925723949565425956793638018237915841352431040162035546556834163912726161758394289261887057475615588019471533839149266557350007378569112782756622394426777699895361365907866540647246754936969447889790288084217530945620270459251887895530036438584627754293114594209956296777198251201086227170925195121822315059980278754114466926204139971004622403408866659568956435855728002227596191108759145554757918002072018592078639586672904238416685269500233919817652920936972783067577583130398830279227815106159175891526800291705365302693912111824492353484206494107590397571435892546658594623723788160556814312027755866259118894947615793496895366292509302678180526834491185144274874812238467764545550223242006645765382871352272955923440725625796221202834297253301653764671824107221504569146169428129979071886557240604144260937150817952071039160490139088731083546340282729524290881699983293465821867995981762800931027589962563331427935903391674111794195719738696452924447117523263511369381363230492201924114399096533937065266673948385686114413182601923257253201838561866899783391614067489966380034575685136071019879602522945412590490157768160071414453927058487059229105126613946163058350324473989985832994455156314088453779123886906676565646071151611368691891051993318649202025961424324675310596898436242236906482205152572563340647091309738964925905138976646372798176428197671789098848338756242544005799298841578976483251632497766562419548938777027967029301097527395892483926556769317799965456919022523405620758542171669283392883549917152359849469481986264209291505460152114374168995505607365106430324144193899860132527854118956523367033859494967722850701300631009448870569084231019214905860066910899362127552061152998785884558965256887943280554601960185776000178707689727345525876469920125223500116596566057153395413236939228418893563355586920704908187485615163098519648498169984856628328870915852066202447670762956404030513431429928038518381763682483170526863857907713392229886333367163786735290561718310350615047014940563077861799750273318472649304226226885538590386518756355997517733856250835395602270356374197672373570458699528541921964595158770204401899237163965408624818455107003689619692072451544450235946131782344088094900960513428250220635450044906287110285990041274214291106289025808136609501995415540493563305159382464848502040994441384332497347215334321586829670415359251664288756900262565168740294535771257248649621967091723361344770066302147091475675867033710655393797251963860524710371829530026680039981601902035552555863763163556038928181091642138218631410465320070336694514338139264478133587216078485065249565460940397676781331892775054806157557385115544382251907966991896786275099046786132455357013164380781304141458102988852119018512878055909464444341141277454112347829435577212667699732653776962113549835571525517766901775665681377113972068313099382500661482115612260759600756808678959483260374869982958037450116901464623823484190340793859851305864041146078614687721592130875213098580600996295742850757876878125815728034401455624292983209765590339634144709787324531457353203962567882753740511298143942163143378102978733463173913535126831168481717698215201720886210020529009242673684397172887637423896586653556861139714760979981297215979100923946214544127208792186625173822182786026420061515576933236097003855766493772519268707973316953480480112587951623189130435827230318962958176251249643261597888667540485660542963353419933124440942353822018309619087518270153974567488280304079554272983186643464068180148825217717184981494473609543137095760851903216430220933822278710467398654711516393718213339856756433058677149296360016763120615801903929226830349286446624896780869735635060144246661557372912371821045849600367993303799849303115669788559479340181253136639182009106988205071226064856135459896972429496683179945520702153960242922227671073557535409986377020656683175796274434581796987317692433982462675770536467895547682626107054748295705113282091907648485348112131869316403107101112682637616086062206807906447361560993913647176427643033459650985752937706547630946494335897481085445111529142162645750664556701622075851462864016324804434162083614809807825085353764887851098633347547161508468612399702617283927287275537236295494532142256487497864235782019439632438715043643603236389953086353162746867997759028355569793942707707402813372071694324357538327201859270182726494720553804930754933116206539870584520516698482647844906614340582619318566521180372450558216992362690713212451599012965834101330137780330370903821451773901666060487117646908542851382291975217647878842744981094978678006448411395860011422315156333366333659348531692392091770434630160537153331380984883983792725048097971578301649604477472763197013724757915644513343261839087663829792148738006256591674088240961835892162500418336310452185286916445497468450125632917228065059322016109845678775926735600664956394182796251744761848071654273448885423602595767949378867185253271391880977148428531463045416949518893659954051727270428158687489748502472929030612499626063496593860184396813584808429127367231641619514137360461426215584924886067541028684262179221985106146015048250649855469233073749688872112025914255559117036923444149299218008984206789763035982776005390328714569350496889294324908168962956807361416186693186759627840275621296376296255471737661320203121825779103237670905637962024231410275889030388121222282548789111352327027984528228465068662433879944184052293680563005521067915364876467056625009598262885840536109986731440207667818479981043026484574767800960877513411100281098783729086118014022774821550217237878703205506019463082943422449890292659671618740141705772931926506887862978831231962749242342026920188612373170078398867591789976643255268172228989726113493129783332931642576942337207933124003171309265606911083724616038572122363435435221703193108530090754020704710649405762279343951756151374559859428257754084692628473222263983018751532001304877787072494767776597733487515031514839720022750484496949085647562310143283547631222669034016572902181096554849149405985526715182392508009971769746107681044927685098421418511464866088391612181728677672099592211125495658334307904782147430014712064334893741610016743464214302047673935088660637602304837389867326329195018985101350520966611392310558085699394322610868757412871178986794798076700755872940769282481518801255822144880244121605701578973822546915765741328875221806343547368099016073017372356278440250337007890816669535775817883904715929554237846249398603829244991803811647663984671224354223949515485426937365309318347772240591728304905048581040052974423552448571657817006267954642538000902765152107974941466675654833071574118175417534774042791045032090044821966554298460472930452886555744667738625411477789512970358511916153647903923083451753488508823274393405173458660499293483707991681195510993865783491792403434907488816880379042679902154225075912906568986355963042061263842048111608344737831401760364477618123635378224333207117170040204286960634134506145662638939598542315515458728653380594554680070776873029839770233512191567657137503540669865516933698846058700392980948539831295411162647954535080692163959882730591447269497111592633906316775359640108027482266712872452005442772574973385020337271411969433279685503918280481148682970163388009291611398334636661000013922234772224792378550972603194226596079812527939128693593243879326480830622795087628068220357125720251462376300128965590900734946119801303905035946991629106730939742934354500595891191981557992215795691697143567935740612888650974944975658868492126254217571660903032194014335054029948858851427821445566286576149655639071333104996844398168232284057170233641919597409400434295907763345148049048312809108857031244377192869691147197957667324389773468030295945263992507126770942324163370816943663155779030850559456913682153714909202362585271029182164656743269768794530172990308902839446999591422002186294001341389461992460389733002510399744766899919824034325234636493579374621833722081227674403420829878905594233199941214251313415635844927741160392196816109880267041712322999964647935061867540539666437376045049986482360556815900549668924543907710564647535321474074741539355856367870673748264024415163749985209715427550950173623845638347940556556204821018933747908904259691153403266716213940865981171532319072348020191630032724923167600142120182360630778510164997367214920977347016807369864425099277595126188778627106026611932854710254865415292486989913891702454982697358785024998926076515025621394945217562603736087689943092341423830906316453737389066335527871331716905513248200351061855378887452784783428351981892234500588030788037620633642718685591586567885717962144152800888695071835352385801034555489240990389270731721536194532963488768649391157635305364445963623612570365445129079012743985902583575608613902676142500411947803177370985560919731220668647879042756154785893667563340925926604992569475906620459251990099662183177552183005231315718494949009188979666467877578896202688000984329501318523697286807780526467816235692596210848850257830283293469501304572118289653097499954940729986383329179375528118027084380277190553933067271008945020950200118040902277482589571417729395146676516688035187358028426431445448879886713213048601092144557409533365283680156805720708933693899776964041569812699308521453645380823122247006482754713350726686110509149580980411685987583567656238724630483135222906471679202315779673399681229757037474243278259394394969890163757180318060776853872536773952023650984095769203787459619515637861699257795391788246761695264392902645182582594503518175716035263484405034737279018777820836375896319210004802322102811471698576888510675060954999384901238305527055165206721974901855749986908563785755167716571814668343582047596229692231308229480534550983073244472471387683585554335198302102344414993548584244590538620855008069363781084656882916222807655774082367857865012919191996222952447950463675025412123535627526462265032900417755810492538732351549477759767159352046030888162688731019663790904919109456303526519663032908833466956400458919039986677456560480748027288574652265506943491125327264595804312127273812817666797969058867609175122319594654953839421241752779781338820757679569567034177859870010690172886172782939959857783824371091541141650126034395542145971369888625041178622212016801549647589258145579119116248094920857858536139282197796640684962730459236238048862392919467439842205753746922004684934399236238855422546370800192636727065384367709423596489711801999594953010749078578135899575666988378778331437363924707694510630782316750786083975412453579059726003045826506188909313640118044275894169287422591560712792300675505773058967205627105181395337666332378858283726265712122321318037585765819482334976385209456859684987255454603179522630333523751627370878592934197413251718857575811046985305615211325523180054392509378854165724863647148234578710404776942316315427527675535182246036675128616409750845002539955342875376737367316840674680553726781674568790452881146425872830691171808270938788322265460316129475141344218618805646535674567107600463498057718408393792726166144445061337023092011240155339339347154252483851690588905500170894892699948425993307512043835748935947972572052973354200085632864897728204331091734290168358277487820601818986881949618195122227000220797940385984746323731186581461468060166369352946901182662861889043419081710912782998890565212798452427433582307781381343310066380713511125024166140491148716953814510670658571895331533807543389062595081138661286956526610594671519650958701299954411011213330681873400375104997212708762502613867884717393741068498973033138342842705273457397449861126309409763314712335236970756716717700425951779634992874346289220205136459421248676595271481967219167385026203513277969597156538097785030064594478347133664454573293312570090207899215209431190315709840433410890966036407937062143502654118984894436645396151204740133212559739738228651066098181454466358471964111812571116577994632139097698857666634842300520966716130004798482470365127466666884855546538243877810217520082967184031503301032905677759521830860800128996305000181139268460533589329653377052228829833531434823883572722999216654974488828180904155575948798548308131612745361452561121319579017064153307633186339271689559644012014205827259325048166337355906977683053593590231446841437467426219506244717566058456087891170909064650520824925063816092144104039411728891381588033244665868972512310983367659268903205245798415046505276402520247732227466225529910788453149684096762822255432244419844671746678027362170126416293357249124930023415164398109581943792802722515940768357110928276790922566683678583158329117701078781268515336470818671761799412997788625389818612791586135547957290794084798151148478861463778746980510272044690748458147822800346211067247842170952825089449386522677892226883550292280758935414203702204992058544596114150379495538121386143722266923662451504400639184924878600505125339803750143430916758697839760709550533815968444791688480985063648180314360921440131411475178724277296805303223854711446761873300204023670743394132236292427133800730027361420954107699009232812684582170238392691692973626427732303704091661657115875869645442048020893038354521832481846775638883819484015611440238637128214219815919153191868080725169471581106232465525288493462126878624635185138902045038996344928074492311441752807166361381884811572136602934694614089835431879061838926632235199320166151638692350566506156104451000996995647270941384924528663945093237129830287144651037323353687552051541992517094994597577996284749912808802995573668808820094999465072051696526705530684270890668361138746897393177695127985153488346895571036388344423268775598540466412341786735533839274471309351990082194453706871143900442981207288246892937991724058737083681090835273963736982319904507721005932404215978286816611010971196748062065416939283032684547073354489079146714159411196631369074056823443723054381725955277544167115800485707901767275678519471463640714357554726315737966787633259663253745313918308880113697661684831834715149947113561514873004021057034094987439122332684129996857092180657596476565391817204829264394074110462921417387731302817869134043491841913442218764669936035130938336124486943862145630752701677493962731768449375198548327790441588870588353395711669860311188978057116835526427822051909274858878800482959727932817231770526529220120173118244262170574887921730556833782274774943660902657328713298892861701005505490400143080982255836231636213595720389325886722636623395471672185992903085636098713594405075209232886372089331993669359804271644678970618421790622110549729928398444384064405268861702721285105995473751746677106965144481045554256694860223092199058952584964980999123382713770153259858690014159677293842809277162404433921748301414392962056458820866330140139734355935558296970304457513694278368115138088896591639674277608646707882925632046568407764467900685796117116123531929195536483775648952564099060132851800132431682429536434175654048507126724947456744615664345420722053015009605268746339060122901338058690733814085395301692050002742817638218953311365607982803469657962725246726082052776675631431203870958016257594367677395501478935895693827056173423436180784162218125434895504857539422066379351007319543132303034673638628929533450582397207063659957273980912710811346136807062469260728517388901435283161045805095496530905990600141525088514474201018982767093547843056890262544239050963990956224844264165379497027139837238796748675665220564074457350594725974698814111975446609964110605727942745170482998543854626292269457387225586972889856429405898010374765318429559271247476672529771155121313800860794537123336849560692912191365868075923769743704151454039865184055378428364266210892123895288499350994969134404257178684815096897021762406331765069089459181524147842822971461578023675232643219264484425896863909267924726858867749544813388666989033671302441129631084948618115687735744845029450698159343711065937704173067849807508333148944283120561195497359982934350102690508851830735389128973902526653451482746131347589732053572430295508668274892585146942000054212828977058206340089103391273824423549031126810246084255769099872824927419896220661944865585443766266620080028345634120820539901287886935440952187221595565235698020877623665339155580478709426230685367327894653828213348993871870908175689470459855456413782857754258267849662695923803901747833326695643923990246792959874249938057185717199687349757166572816245634645575008227470532604178401469984087976947599887056213454612376080492225517452713699751896075101333348050630836093595403636680294447080507927404339058957216113524534398370295781967765873167194068751940321197518691828957035051995077029491254679327116117098399963469307684357298493655113210600106121059988724373058505567307660768563636747184654448361614083505644453503287791285708399765012920505963794765080025737496066569592799573159095274694542967092094903645711979372068181401952719798095887686604351075792709113873990909017941861471645627175282291215689097687678521188646312152354977093078518833324037991154368912325020043640628645195526896451212448197196032684582891427815222006649173467836025209962250862745563374381266816909104408318647853417029422036683890530603399788982810290223682354438166887464769600026196232093508298232273957386548657647943594692046696623369284852207545928676325374725921963834719680151227396159211807653629080284281252053777609841316207444581735763488281476653177194031453354210061554285400630294607962303270492944005169003914462053791401965187542928656460016779978315921411993309384745785419211806739648607457115214316078357041778408647546720710442144183802248348148705409629067508847632560955228934094729460080777595612696275794032415005658995459658493438399304952635738145799207099777531077448424752717057856830021636859414777110238425550967686388202674826052205334905909443326500908802352037364827354725384034032769907024613182045598883988182427044245906773305677146431396097098707423551077582024785905503242674968809254462507112051694524847954885161771414912407098532494661854987941835660603003856799119532371548833832339088474557587025608229970232795271884073906918293775158563442035599912501825253687906340747409639324929847698453650033381752586601324865565618002591015605795960393927027600925986823861662541636363431278626225002834298379247319372598441042986791998196204375025151599835017719057620189403561698050889186408339606110000597433146856009490181937161646867163037847615944737061473327183579541186397168488451428229422214565774949953672044801749551624853191353422699106092778750590372589388003552279031553376313447513742965765126292795570060778293185831052879248629602477898100776952746200518612371326158734953820365018742411259394651708066432117618546681949599225662668953919239751017049725970020227142037334640363955355031049577902693487425636526543942949553792134582804298352895341947932006749532206379072275346118449808819731332462757757500433765371712987498768263012652296657055311868315790374422346497105649888385774449059137612244898736130769342819164919720708284873435498485276497331187545048891846595040245813288772156756874166518566643010297875662895845121275098188376713740881299559515728349123734521294356147728842687511711661173881571475283482543582917558372498166792458414916915032281967880974485642686210652353451779906722565857221209563324257486464262556977314939902083551259200254457581642895392548213237716640871175739631287242221813615587326585617365426155032822323096089121281007529225666865183142334397620438929498011609600295015523982286738614969579767092405378270380396953730557396761746062847889568708136950602056150643497317024125457540191521822740177163709500768380066726071108149028488540051478906821691292185770951329324304493641204612363213491308523790799973567612151155390221067439198232229065713215597235971537355469622963278556297144659769465055859602052733550157572553660629536369182883638482477723824232256057423628310994768851061836269811457758797404310775082612356450844041863469877494044134792090671685672494616436898720271199126796870740827978101303341907206260841630084119662113333901344739782259086629014817946699615506482716475494243335237306373489355044384386181522487524241368176019097262688828389527889433211291978931102402144137310929419773701791674704247727941410395858699827178334431687902972745127517280656630073449088388647018680104738619268136809254413702276606753600808970768820234886579452839890619019668354786976455250721315259143504723410066894016395450170452020223178707245372324870461430943441136327468290130058314155079089557795180560731237655316710812469787375151628758523127592691677242844610326189634725356849196768265598502764873673803348046503338587130919441498844084097727761370175136082115412236058255064787221191518312949091242014794931360204279089456523439045487400603937333744035456131893927817183381039130539227248838972526262778018898720571495877289424431914805507360957946961280349431645147505160485822112747742511964637317577674876461578920944236488052505009072307459425982600762099186266599631498310216005956441669099876415879750878215546785063865174896083565386811177934478294265619134960730464173389001399849347631124725121117928500688938094171226697522511145969419811731169312968465005380519502325964404204721843032302469514761554423739911151516914932721865731635737345878882352854439700625715888423217402003377775684850085390921079316971492450538024421312620194268297997211840297663952680810598427820841577156415879668583187860514826770282671798571320512328018669192910916164045915344604508635862349430098203328993446093495626832322253477888192390816153173361703282416410180083666389605614764495665058587847455572378564765397714028090535362532527576672611968117022902118481885846964718735119716677413237121903727355415208131631129647412172459523708544662902514195046492133431739139743639560731301402267377866922662404749565449833645121171154576708209814753610597800970889955424943042851208385034601756068298714883978118794392691139070199422144691229016181614982583670759728330896569816396909764896181329190009041616114805991024432491618561674840752235794569265513148020674493683223370254767195497308967956115237936019912583929570218370995991335782956117803767179660779053892662508782755467206616371396777718807539850663560144104281902163785525559521503323409752103806572502902779138876057522468693088904587593774692544269504220034666393557900564289943940363276891797626939871385023574376041001870254174384002304330997565885686650776770946018139945244210088483054347681513354927726601946083425052537030861951472170013410166595634004155721760340216257542158071165405921962388535844959149134949141757228405595774519433159551963586838783257958044662060873376324360880251938683900557991183709175290792583284626496674332693337769180971220201526868789914673537053489005264226326454569488244818107985080835291580198326242653566612400769342875188474723831511323413945611479976106336282952606850636159282240444919082905483763339044691689549373893531721338614549289198420385811332032105785044164182464957356300981822547393507235789901223812094050128930435791406790504508936410636632394830993329213029142651483253444748698186579760917536680381851579377163665692871877674626071903388063427298639616740655816599690397847584960153529947777348070234977646932004457590356208444851448684979344569633902266728428414836034257524176480157576104247516765473458102915060767328518229193829317675379767870714336006149250300967693148607055048089230251186987081824189375335996563192514098548303151809053884446676166453161445748180773026266457418271690259845072733813211216643959199330679423885042345530923822761876436593065208563402044233548580473001955800076206715970602735940226832119236896796309743941293384769968672170386539526931700188939782894307755591245703693682008817506887997525136100422268704029808587494997605243653179172385974612561034546999134713095330916492073815213647587901584591876039534849261278863698843362512313174873935117363658423644333700874187648158964444945008023898872454250305461272067044351641068178804106438140074637543907356148074981400231878335775722131166881072474323704080538935195911948838002002630638852859002097055959419051879990116777665055778767573815568910261793166229178560911980020946407219376367148756983650906093877448623435144277226051536243278035924363321262387582908478187012234435640968559963724052077818957475865980122453198308239872546683688791535025841230717621453832994465000473909138764835589628912525288043802647520028456167297304352691667427836938534399744923222962718732576536416479856980666160473123472795584687468031107990455591663736410343787046002828774323701515242299244715405429874016001918092174819371688060470479251961924931013884241897024528702861157319953580661609341567876375257972788979076237374355128102429240660236038784265933332895959850907325707158883232082392442538956211768301818873319939951572633919119207998239587649575504317994269100768649031161506552280558726538146732390916013668992198417259810700977975081471184029767903339608494829421558483070430474362840757547558812565054458044341982003244923930778471953861175134097897939514539837666313214663653336260191000535880457818008765076382259523052888906190249250349962573165843158360289603801380484414590891784026193839390182473555501643673420418514835038328125759381966240840899099465355467845142974067226642956540919557292686514331542363505328351372951062940657353536371482561457588436716921289905578336038168735406010395407160656584656770170664747058905000160255949413131950109846651167452656327356418402484728305761284257880236751231151164022682993700292270275543301637812327294113192517682256717190974702686260748750975779611915039266618072250219297507714309441432552409263053088627419006068036946386524566475575879098311059213050177393091855815356496114100817568490873488005152696749548240308001795985194064533358508813863669306116487988815610789337383254383426428412203958084490535864068424415574922200299701985332980291342734944973652243806731439784927582959252274267063757036946111646212802415244423011724364012485955311108374751957034336032241648038702718849727760368834043829249138123092166968186818110626720717808696811816596170566173931323812939986610229467232559318402975955489611819817986654097124992555996216305232887087533851526599396370341890109726235109517116393520195121115489208246470797593837980529533321262634299379411358595471899901044443963183685442656299675229110947524749357992692760901076360622259352701944132945484787576888948858101561080592065983731131913974299742790975677473198665135307759803560176986105036593475668585808268158777398545052723592384998040471911051595880832768209628555393875344610150843156995221087112554719258674355359773588800084078061400943942174197913016629316903045479180034011225265277214095842524082765547282004033900370790368813799867791584179357379824196507868920639887957809246662357859849122439937417009802445754525659187038525399326633355356067705330187601021474670024867722956112209578220780118584814081980219547513784603830704970203532336809584291790608678192101767338649741148455892304244791352605854774729462774878228466320662084825944004660986259956537789387339899561865973726658087697555577151648000397363102574154022141349817242700416954919111535809336602228931213982137604076368301956610105359128827001202151344892088577361073049521973524515302023168331544395090159604576984093283100565473850700286864962425527760073665925456531724414140913117774164562051083486724906941872535770823343932057110377240100497498121185625047882609074902651265132850150498136474683575112289522732115114493220860636815430809006214171939854717977787002483052962656692147568544873589099101738536659786364440944705350392757743776485295539656929468118754268400836762929660922540130040044035407674855251329775298297985888768166075309373940995419766742417332214402736859487481057702605989385786402086615437681695672912399570451366792128965155713734783036155749615006208480896806966081322442535800399726587369058471612826910362020166900989488726197401917572375555775308729328533179922502034674705118588716038780625557770936128130957795634375585924074099281986723852563936172488999277436920510152376892429704797206459232949584378796044515708500823074720123582739686120775014204113429051185647082932130319424740787004865159916357842953420322602291330333099388841712747942341036847723482158994562883968754383745601768268613013712687371836705309811791977950432365636762057567391563171952987608485523809768581751147286121324882161194919051120989728455801636426152002061285462556468129485205357739293060110154192267216434860569463144759239811751275247693889704341824633988585342123641199013597809922245565951821575355439616360343970390391596649278644844591273731096255353976140269094655561913758207480899372403230538479535403284059118501406295258973241634376590051119390850371854767274240745990747603279630869493963633660767655050711483331112520831684576578194716272481274633060966621612508314048966417481465838980678302577521197486512756305052855071086797914180523617279565914494500276948983389603512024969794706577357577871982554635718198339640179511787514105846441309053936487502049609905730125822203926618886320071511882359696757082974503634306278305035676980138126375905290432211437957290934607675799130461307164557350742666058883143386532231038440620831420539219774354803382020387453097122102350060901721356669935868087289015327990887398902087858706915310357811533516472172296549492386173032420962007394313649552746820091765216100028791149838728144792751578466702669777051195102173414552598215807650337082235572068997081029981477081500756096052510900567489188045642295871108947315279433814269701136192588622048237565784540266703588846128474777080723647716469217556727801793493854853276901280818707445630171960963278705978015217670275902015090354940267402375221291310536702908167330472960797346745251265576005068827853866075012716751969647456479494977909281379372853895744699438625720355366720390884929296410035860119856851074897368347121687471837690529658600538146186138004535904546393071626883956736316976253679667603898297837314081664619612849017777597100275721615472006059895719295647159684302200143414651573279105403649945823107454376665073067200321256785895896015337995787700587833375895378211214220424135050718971538483557048428206085249007801507261355742976706359907449027250616904009293423074810931187923785100169720723732089849904149886501710227583286969400305868799602004348283559642840825051818928317751654583310047493553165346487130287766136217434573837749927050622726628366165858532035514508029860471616812299725458137058086429793193280845916811600819187007134715601939760465713555960653583918666623661100512669033063037803896694477672405340648310255103716120913261526477200845309595072049331391273652046226969190140924053614578282520419299078460683511713170459133229836679945248635643719767185772752158908292637276262378211434870826742101027734750486602157764879166070479294957323474582694978722618581957028164912170354014922349031029699223783286496183288500495866381852123952433776433895275470347477263370012945536747312072498665594171819346062349994614966083256115887750642351375665279590036859744281806814793075285502583693215608471862418103963385535356108378369784982578971894956631198722050965440932154527367742557433897500471416424016787255366630285026488577584916728791561754893540734801019516005385011463521224006032535573159277586587811045203166951704210151376136934718481739599425311797899828271191326751518749699329764309959283386737128507953173782438943252767709370137560295172842031053149640710237603595668290325704505257483399316433031563230363521623411199988465668559789770064343334507176833133423770894929360242123397094596781667721824213038502206437484064298267110338948347679285201082160726800053251053038249725849655082291962105249679838436900147449503493384598683454428035848926676536709819615594551196627710417465530317225974408929828642846699871640875791120241421055313131055213396996771551611430921218177562478617892253709458019829508100549002316455187945811853962481576854367697594955912147573931357903699789796315762840693972346240381061548976310917184677461041120997732890675071518570613537698670557129548586900443586463374184963000164255983755924820215630444051127390513934772943577136688509633810337073719025448351577912995052518328385306087521750818608462833884995250125953114307945469289514876543056008078917455266440365656019684659385501198874780201030316060706705207322047322574793748114381427585924770363443345305046090210114207683423764872038668790308379302690212637525991171762870236300854305060169036173461434729364629288334348605583170850418432170355108918283146254997079788597903599876786760975256791494052066525825004397835359103860745527077192720244935934689289349269435370471951939904094342566091796437060564560138722480857928115558140784811769300045493472355071839845191525496844162800784200205790381216321047485028583904288834459256828618928467955684027715145020425827086759537968169837329530503744211570278482586417188664689419439200198315152425361372764628210719392264567023260117587972693695044867894062447048317224601595846506484252424269930475064405021748263200727918056010584934926768958113992846932399677301119498298326575552488441595273786375270150063498517825296804253977518112892846592266954441765186852152079997994184884526120587519025237554375732080728264891482797692508171457586548700208887229515114884880048902853761962066776306043251202661843445374146465663354451736997275966073930967496222954206509644635445044288329767606695532994104687345384873682280733255624306312706329247707701873413615725826464003213123641324541790885276627550038422180786771774147584411175924548138895749207484479047287832252499195877686764800932455794985166032769683837029781985234940598075611097675041496954700358632270148454528130261612828867746501036820796124317084215407097342380780446125222621070494460281070896258911523699785021531826607229757838009249841523499217709640825991158628704679346152738090756669033123269787207875124256898560713200768629696250978055603809923763199012257727051842392961842684223470927048459816784926746149162855858250169924829275733836895587828684096840651035466667274197580918185042149787176825280988454940947043233345922877786598281764956290132790528196938535614564438536419254964218819585396142739985179461819230743633018371426438136107477097945684167053292124788418829354085897619793826349558895909532961493771633697671492223778250690643854010928769509144918012920630110902648832622822956424337152998475324089173299274528619712012249821924058784878197296957068897678619820405738114778057738042138430022341889126743559704580784133203654120655651112158805869473488531403831065660129893858142594674448241779915223596615439698883762786495923890649846366322272426305392990210339948108506293665751303503695591059219625050362112829514191846950825928532285166146018264980129019187734141393584113129294924426576103581427935181219864225434375587605099316534551932769067611745770025380681344989807038885001651029438884493426190505980033857852644067502066894802337256256657026334940528967035668303756840347740147109604405121261035271554234134161388491532824497700795960781179712159536978641854617423439527411230834838331726295048768346141505735595352042416938739118993851455312512147098340451943051378460402571233802671824831673055471843183867538083172653166034613501611447558616585562080547579883728663809441493404555974136035855489394076364468362143549438356327644519423440436895395085227393542749222328087559856215309285025274445061396167345605212138809029888478757222353325488043274453677415249570410161095044049875711227996674291813134761993691236957471321887132492339284829939107964844935356753705373544010014590548893653657510407977477441160602608163342327814458693895804932459396034889358023278335091860246814651034523554624387931155075397693009743488335634556874450063429402988127613670323601639538918060305396753992740161887771950059352209862567638270166706663126731436375348158267094998882001457835793017374783053912718857599556899635961051460066614675938123781552329866320656805927452006796798228322135270989133980734965037972600012833473943862548525903417965456343512327300446476392908923308102107302862762628044150279394742120459887009458717047197605762340781613176655663459574139670355590627602071668416173913894734451689830279146505979070144010812649031589458787067704280786966429631218892392271210349366458569630162817569636236317779952431815256217532642038445944773916834607542001196640768795150203918849615819328525450623016162682765532093429624454157478652753488990118451953296266154029936071646459187860829063407466024599734204208659253710663474038819351166533302886167598616644376091392746298258437987755948317743466697625648892387283549715227068326337585264513956434015893877449270063305705383108194614932316316887746244441630677563472862749884245729424249628564530683024783547402517754431883487232782664728572846578818339188434299150888794859761226085612515684958796059724182215597471018552433745086356572363166636131921991215563036640989838386664290717012226291726949289408080192271713636659665090670490512485886980287658729222989374835599674635407464522505732296539678483372496169003230248983706656652993377356774240609935258051050215592137218899802927984642422203335756551186893355096298874825549276432138046401962576009534068946391062183666401173956602543775309638418310834218800869981276785060808813969479650493260749265267459742927819656956864788270630416514138260701275089647725197294091781306190372676545871700661609001921979154809398479559614988016649639940947567944952262128148732896500620426074255751956304238802088483886350342984869232356160588724019867370385359214091350949903313743009535911846208583527739974015979179981982857764902479306838552716129053012334086275006091554005107500479094753461211158514997864531576646212081057192608997489307408901159640206727884553276778020768257404169704590191931240795272497497558836581726342652971525421115909360115894121408572364353094016739391036461290799655171255640490173095979812681429022923917582792301885588142699658959789506470874001759936003641217576615829253352634671275710958180010493473990797873353334116707108101081354269835032850206600409584085013296492143746872214973080992124824022779872103525851874504180463959059780805142859771640794484302503251796658038001066732950070539921079983431749787154273115637202802491194948781158960819015207403084191922868594332978354770850035297259922638145226606100099982245118367872300365603617328930594492244495348731262521923382702686873617700708486645344560032895083138575913228172659951708610180088966269636965428541438105292153949468231630316046077773991182363497153736087660111909590764934523182364992388757169827248493221307928949006423477783681742592896834077772794938602799557695028810779284366769011146692477175164045878113105958404030206157693638928314773003831467873167810916705021281562215051353362889242474952325383708242166088655278274202489871856214668258996938154333225962615980585234441091302301652656144213698497467495273445577775443106501432990443092799648464795667213875108983449893989207351278673472401100447508662133014745670221054787911002217595530280872317770101596020584057216114155320048880065501260449933197066924353213517787949476496897868296319856331269523348829386709895452181137334268331742100476499296131751611994211468667063715122933715089025604467349022607313047138191025521584271422247125893386203494459722460731349127392555388320174698659909245067346583553038789221923389691469774872814389618056217729726273555222971345134132219092196719541669231028672148346243642831056592984998009812398004104815123526753018732154544942469891498084990829469752283541667645712540622318894611905332409794687894552416468669551709250482353629814768190789450785606441881735220741313237368260427007306567946705305638977114587880032582890226249393516629570819200275697215596042089475059953349947680965675909744666872873348158022549361197064817367069496369881282277128651160690314859048990785161803148479383029503088098929580100475246514051370702108406121788795338623066118253659704877090718521378601947888986195607701639566680712153416791805248049457641218173967865269980486168330986223097845232350278741473748785779112812641759407918693894190198550593857991558258442372759652500342962081553514166157091486082121443245508764191837802101348605548625944204557821190818172916342666807637540519713833840353723420931268563384711263030491442038943196824334775319229280192690551285172461300083494601540240419009224689745988889841621539415867452893166426312209407357025606406799146743986341387880668513228636234487518254461984885915825549522177294240952777085872411564431875787990450962126587470093212242018713780677757455007163056132628836420481255036669832598433558492756145855293002687476620025868533112398561967351040980580489987847855323113776674649427310075804937104246775048563824810436838746296473778146448876294758504995092114192101260586649674513290630031054700871064258743611997706737004961596271901642614261072279434317139390849424866953109995727764530452212199485789552997042408010653926326266881998179044778980680637591381285241969416184084347309130074045605722488268495497278573838252617080501381955666894480225827751748309274062145363495247026180924162071381327216396496993762516558744777982132769121247270469607994808876499263589704265127655445741925036419434768679935665862955436946620323376061581782312929067721273793143947438848975370517083055018439622027928929521590610120351035294625520936195957819399841065379467401926218029780212719075849242587860424757916799319430179833926565210478248645517649480552804504351259038142437964314219288873953389434187703908467225521650367824258141332993588744118433858517529622585843548036407350003455699934343925234462497042151834366964251358996214397857401052242519086887902897129137954679364564823275505948607468416417923401735483872134472245894658913623851282447344879577723074243494782621871417846642016147042469523751639966877201405976465845612277621214492364368240156224380213217568346203920611385424804467830271942513046899963829342112482582692331001017879690010688891419504430955473619863600223483500578259602193400434296671272274319610229471688683879013953928894411495940456834471419796789862632109326340397442039492623408838660957542841460055063754481899353314234759206843709800968035109035546939345631731490693945063533348249700279348986521657017123151564065705830754453026731104912369171598207916920522505557040967514458071114896032080971450187314529714955454763487124594253693478770738159260600889247372194263136064251824763995192927919068516854999134665091513585905873796358041903293668583869193265378506197898119747577112683773820955472494111982690575780788918566710645847647875088011946987388168663567885085994504978508097152793229319203798692359231007168426663321510145719755271758069205172519694515536552982765499819909392855321596975211348452154873611540676745271672704481502177483914505028057092740034120102371558779709065450027739281362119958910410550095739707643996614851763597277963550922402828164610411704535651649671840448701900359552703466204985249452872393181120014103943375619547881133863359134654851738281305458193955670601804955138713554561438372312422368044833834725090074004034523830661789893952391395715960523821114739940953228229704352475389105692775711965031493950710239187535131153213965172748756197608158933832108334607672471665013768859347785795185377569553099063034201236435961606048509070500915979259216555588034307644987453505690592598528353294440434478654157396195393794616684829731369396763213091826043634027483716520024228782230956327716476590336419122091730343200733544283741209030415279018937926638024403594789633265105039771920838513796539426109460454667323574760425540995417412683163283845805920967887619279659638996377015371986346574914464359909947027674522969621988227549261602035413158132073957445509635197650187866795404569638230563019676084251054195963801818671889566136117528640852816582071342961812982234739630634523645869560939472177127124500802703736158174021710353121614773785347753314707596723586878681825687989188015072390427710102489912766257754413266601720326364802479503384099925706996966776400976975101141326801569218996877641521363090284241193368973877710003952640369121129673130419471491398268019688682319880499138561292698716741204208259847455522565589385536065639497393432165698799747573632522706407496940762279029194830258233318156550203385787737214214227661570713333093232350151724249037167069152822836130222376185723862446396358397979350462612783221799870008947760663556888753810964888296859445755327050919463826491364078211819541053561142654426090484657679766237078251223098620918960695299891593128475666215834480941311947656551275371172112100053688404699064231694499434833012236488197911087823357667310579097241346103521396371324315357458119113631345069839978032225360617987783139877682842795928192993512307210668155638261028757093321423386856457559668790491182182683890053411141691375462043062365852445353279740467322341757086903501660323015167685061105345889461711397319016331292820887372278982856138731569677271679581211610666697418060081912694437987072353198539783816497148816647436459359799900837261557448713638171094816279795718932434357127041092041786791940932788830790663076212434772181865273474059695476500918421777720883801550937395497303434814709299675322887707831356163818862262228992559034735417669794575581637645125910708755595420260461095881680953974153217912929518887689212352684203954786153182232696539187855810244005982322030127140132927533439598089835376085710967796988821755349552559226666224276106876885074556883523052070752957921097710661914563598664715666118273922902472730642413997520096912443999470852944378147075294372991145943089415419866665857756956585828412846673978914959438050752590859789435895656897427782617585561013578824431520674945725697565954187149537598459600135559275483394888151490148736017155529202500109148519242974445918412297232869300464172490664447709634143901052689554510683479736157843125637478575517134013079613233713783917136583826040562842815264322031952410053075424066226168528182417452890089338291867245668750652926305997379133798175878581675426668520435914147883712706206934485701896087757915157880736911235975115148899611378957537656726050997969295421060177398955350378340526779733161967575303444275549992900041728700898198649157097007481630187042778353592894509952037036266625789884369195237375612112313133934710215432386641155146269945235766952817701201990033726419854845794692245147791674968302243346968745907602895230957804122092477959684362883203985382023471108330240787998865246980569763524945694059715103138062137876506658824989301272268161604695103227109939612300857209899416151499126607986460447932614385277531305444996166756010520873653520408301045823991022012195754200166837898017744313178522628346662621007793074414624895776788802550834293876453259002967996816459386388076405723623789708153975002618441674928053281932145391706209271638427573952260103160357603025209085650355528965271747735065429366054921557051987562819586836265514753091184022185573162022440266384142225162216900966852722624420943212307719971312400286314736290757375569475310178669137410758692925063475512757248978395609532789371097546427754162853611815331910626831606510296417220602552140338345014419655031625852153943675221182501103855193926642198780488261295853122129377864178757216042754385560020965967543971771256139092891989095713309998404750822933832602920270152334870110129918739254319631113801254772712643259273802936594892072057918664124365681033636567961491121367984749277491182466821888592982782872436816801917567641415881576794872822793318362012644490182261840978676697659402669219417577615444685632352013386792636747955064838571183781341185707403644764171087720911269536170754304982858486027560191585401451952814910111299411304486710164540188533053679418984756562335467958380683411376980774705173388335820534907733217951785375537005404244936513654033649007589230316197454131936459527624204172720301683659443379810114743448141084427695159334430749021847066081645822442182089634004786627992697781683041887890861878738969122390278767419809044343905112113673329040943815874250097239732479702737559495298087065191501327717424188344208928077581900866100143004807140665884599410900104283486291216335856601724349388001593194463000224267127528020254145634544020416067968362977441611899950481959971647680194751012209382097039690243763878019267294473130296034952022495646082421622349771294171914765346568151419946356108800797828983231601609644269396100698592851047582560526583428449792912450581844594021473655566223351003651712131741541904166600152980562639827472975418892676690186768166185601024594858534993481924317912399878040935262718024874731113718883443686300362960698912059578186904646081151737537805124529044887320319612005332194238153680938116332376194244028454657792329252340801758968468795268844490608567739457472479230566387949627824484312483327771870151118719155156229643633395087618193649037420837070589416215420392655660392919471418802847099494873010867549739705399375229046859683541374108729112509118587258652109448753615442046562402466812474331652895731801156307851795783479781937246776789963385150824572650852413843323396680569185127686477322971325583076520694504274913342168239162164256795262633780892147270054309144480763529618666467360401107234647203330033479460898116104465309803390803600523908576607738658066659055079685159825503956098380878299320232976708039906919222539741665375629038905416949733317434738891417918226616978034065422604822572163944446497325814323642127733076642150854743630572070235539017273879292537100847733973623957779720794078237356563047493314447416935590754424718349733827730727734239272542530668341615204071614566474597978885236739341088123376272580372929679207278707198037718258505261342654710390590430420167565086356839242549352662208156175943906118821181547045745402249578717172722944031240749048944031534698455248913042788366686050956245829378174153774846071406865357691484931044032237256919275524405072087659581734454398286422263805199414616341138016503228363057202874017253755023271211566527848288219592701434794289277473260903213217998372385149105195685877952611545666879614749598057370718447836816152975920523397005023329480046089583100636257932862359126171392123227928287172858374157871288653234645771871609080490957659703563595900763497136779042056121377589236701199880633263301818741337882430137391502673578202865459215998143710894625839967985573484516705978214369553849421464350060235111784040829365559825583389373890245305974476345913550992022369177234689232396248545693841748699490474336410153675669704651911994528055389812489005992584820113723276569450021606276213534343984723654639744267760260727781283731822085642360528801499048453834044867833152941625580382751151332326936583956180742243384640023582258404949360400718746572770155006510577935041211915962072346488905418981715630562919446169229262396299554066938179152600151997564457453221252364004292834584065104244622597304326883209930519714322792919798682110785678928550980233421813023501923485841888450899487310788836678642452295568630268649559423753341917928138675480682183569496370168509042604540456708466450925130106766900069021136034212760988807050498514939168073547850679835636722501436870136815097669918136523256084164241627352935210158915335165862535775996873392554664499005042910065623557062918614014426104853277256539335568743272525311039727454308183515850553879119579001102138101740996912168840869268518284053245910340276609073980433073280962321752962821640843093080786137780324331677200803608442479642496435929336091562667647203497171927033503358736431679156693140272279286953842495773260851391117780017385064953517746681632194356064116516515893264153463332873123025730272750434252375245490305105363155241910636328985443275412481307172921143725819874716882188212691263128681951396242589120249672592735503757463596124067712366738927643596356689175219992367774692909871158363493711430502053452104641158054419869852931166823035053606521984478636736296661672005903679641237480288357461807350896866468399074780298359290816112028643723360102695633395631710609852614521077980866559981847414714813616136293296086430368891899642834529328098823892948161425500289303897405783177446311935813877377695476469146300898376878762190008728091272025303975415709143888599777233380268452215025970067315753539249057494360957800877864200262608982744915609907444766820500469986269342368639530119101570410141997885492985945561611695828993006275022514728902330262345181575455248090102115085488255182509176622309717032097175325900571705673249980334752346390690005828396430378969281631308770543998579769071004554787100308187833626567773878653404825362847683164210345237239176541543342365731785996454534333695557641822751456549184724901763527103012459841588645500428265123940757235399681768395580490154059126963920276925949644949198577348289649163239108687788181796187052417387126548378840411177602222404919082204788797478430590653838899181374266010112373405626305497616099995847273483573073615198781967047992286480919009740191202990712886563715540453138708602392676580591066005705186047159134360023865675557442406069022575077345655092640755048942581807726937464313081177895778893232924171311932520557612641643216820023231639471050187425401771272315548499652408783516937613295947520718609752323767012458397424246428166346985270205319262548100170413287067721715156881285063687695447710760791036806798465686521318313726209316274919777441225255855069690207897970176600988082352661613969111046817242651027769951695920936498761753582622464963040405642123481461808613926841328838312783113915637856075814401250305896219602655851996953238555447478425575495417341716703049053742296083962200548072692332794510837882527970290791889081927026656895041201431198172185892858699760826264356758305030718361094681254750134857473350281019717932749444625149024987244384142987482999417747309591098139227687319864836785078403956130823686756359500577039226209778203525199514668478708459796528636321782811376626441904609976807370055081474635663222065784599047204301302786264572797744801403502283228545254116082218548832039234271216593199907756676799985401806461531219934829542895742096237470881872232672461890783537245176117940642004973164167032043572395048802789469459285455175494516748056727719175034785864845796305086141691417796948646347047780639228755453927434994255520605934645069812859145494911054801988432307738968318025708046055915169071171099362102792467949771047947975815513393875240419268448906443689060146971386055900086329166794289310945023577244969440133528655352212171571555761759438105939638330927155507679683646295764782853964263568877747142227648105909770677783509311427775170150764472048885583052668196551285475189606023062009208369210826040700899074768812839538943911534326191598836664370494681071623319716637961950591687377726404712082182907351350604885149979241251735950716922305874664139786186864259844742131694576295969136017471142532059331436075547520175243760567406693376372583371395574187151381095758222720425293071140597092541246375940890975744896829107051454704318785252988288342144377371975864515438522693437965699316361423156651711989711634083713015447258102069988022108608887930934279166898410857918427953491229176951015672304161954428973496920649304761654680019593918563676003376760225979156191991006736270060756704724840446190326679855474853693285919741630045886257591115595592657933269702320552344466404535161783779052572673325771351979195281713910597753355751195001187995963873145393100170314086900527027440447882085427417034243534360828589664441197809841103303821033305309077071763594194329917840417348717034339180161814454973547911114143211082524588669216056155857748739026643849426121413178273911247356455135074120395842482449502633306617296342335647209957116809680328636138402406714155693174301855272355763054429552731659358730274015801784252332869905103141406950344389296694504432101388413704735957616598494503636124294719292871751429949377742348183299749381441621437934079649885889367433708249619477114909307761290380524071117281410226154228216833879376222202210909201008668830548156114931484343422254228938526719087088139989292249742197195779438836215441110859912861925328893821786587983823583189781082524690478569951681463738961956937824000234364191166847622718324838046485226600974158037668709317272781019094931311229401921195407148966576516994829448623739903267683899935488892064527197080467272100467199453831145690830961927357666538421579188298517463088973951692137097253166253045207347387519337155284049676314214914961602968102303244826213125131946427569321359978669416022934659974794180888834758872686929520248231964189988189336073461279902035443502653507756462889325410366055890889228732318164052658417141042921130486200921628321174508853955033704452139600397627824538313935668699395480238494418630903027986933091591567999391328622836539303332985440552861976411374991667355048766735087872295772832043345684612490267866544965972406252893632185662659185161777428638594101339131367134243211102714167380365231339256467300937691055712212861293251679325299642403001985986420869856952644653460730169311568217118876812104196647227321336070256724985504356792586619596480348383246585784239065163053101341612965427036216109077128502209753775874650814688546890883417720378608097579040446426586573248100839003857197990110285059626063265075251910274888223040453530935886879735182407657980631328771389308662336216612744093560768893338036883826531488700499260587958623969095823530226656228528773932611104805912100657729801075790486194056842634204229829118973463823544665539389105167648733632917135266155635461523300483218217972418779646636174557481794205303941362995638820428271554642694828404559072514153064056126076567088443783581751141475723874585410520840826607276630256372870752155311721369352392265779209790711283121671490732757803636158467810905919012328190433736207106145098110009298091905966644094744614917510716192882011097345730218746474800435395457295200165831572671525047708169842264096637670531126012243604002607587139467554567690698874433059039169009441625612839926447948812164781068344127848328250379629096814019892316564557271343218712885062551292326860106434039805600298734634401018969853188364798194846334716190958062464986701241206668609835080078660259782395215690502867053870803686192094171400391830127564657562040148953590676284380902590540045776713103257657853294619387812634846791970111811364145690173586932301498887168042924193897450251883995752588902257483666914836363680598803138007050357063857924404541200196110786513957621183353791846791483567535392102315446512985056775225191817224700089123120157944901779505554968383886472467108689335216655650013066155331232112864737692484478733493729955131111337382828753202883480031057938563701319444712562045990159902538350667661856444822426573863582653844396201563749608845179266395608802510916970299160689808595936897569514671931790198111958406582401983243498509625676295199220718719123462084256884954116290984355323798246939251219270533114780817413729620312145574024710104915678637640034021465125619141065516846112519575199788468170425451819358199190139324330855027303959468071063556553428205799208960908855085638222724148909617074705977290297678008656449179167114466182000319981873752582444208406483966698209016100932741432650788199418154884957441151652743370657040775027368761297365221575843348988092449440091877910779676736547643848856160804585958165971540014046986737627754561522692664295342202068219814745163286100769815294173102137818724601252021536533639853179583852339851317185585296861166754102389209707027905686549491022889378962206660241473016976264632191264391478302748926783327500132973276649101523934913915611818038214469663882556015664209277248047306836475642467478243022793950129938395574566884204625274064342465011052223057823841046617768466897497642578690506746248828546373668599886737263311368578607999400940308822111671539815426019611243398631614032653494270441863474323158141925720265172532246417387924013423627536576068414230532780480468008163162247579565807624488548809403348642512079429777703361994829856514216318504724390857814269660587003670075262884068407841468310969523723622186522352238693734691600887849213656915804222697827154999845289155909356290554881709764407237215161960081240946080029317515670164170205795529978920560102962050579210986428384130858894722396660025464120419555938073252264119532555376908976605180192731152820821363636730661331893804240930394565749700586959535546797700191340839939770683880722698517281465187544359902572039147672412190066506426931903939791511623136977686828258868509855149317357555688747544925257808320097095144390096668225027349386759404670930575881647502865694191683826246650381765365722690225300013148198585496057482036779304108633636779104524661700684636659105943465000011965499359703518210339427311503775836442299234701081282991916530843999915514221217203112820475248856086685365689273406285195968229354587036518568879708487089774479955957319898379597521652333444417443021777476950712880890069839767608209833755883946403896199554004669784960027576168804430040372436053261110425235593704307289105188900651271077298548385665010347755259078860577879146614968145809619364792557870932965035724481663203260268073925534995185798835963586611748435258881597084526509328492141565730721399250873121778759974367500115703431589678206246740541664366685918684515672136667998079984570627872149700710993524121746633040870809305556706098020796582899596113416744356099892195154540046054075605608978164771488522868770416376898212757649229518206393435375907094279593077361181250454584526532090496927997037566319142912058357085878056001102693605065433420626886190686711185291778774718296281668701543622753481845815474465514261416208468696740606570240129042579179581539471718679388490363163980830611013083272474335253780945855537029103057953440430284134555880626340047852289835202328116577270249363635436358113952334334332696582491937041341612217978236352784877410827359279951563886997001813911876023919258787652692431653048018268233565954783420734788815161419190793764362488696392234429837136137809325040138972580301560569062296731224437920210225848616208411377420398546974598640761364670615558843868468344666822919705321695916037940457174050110157080511377950917602874389743133218534252818550746187535721682393202525354460880166612542182709018644603458553707316243233480621122188108646283078639281066305111026670906970412194109214924785747121817576474271297234148363940175629618724153232336491683732491178043157691792617531600939238629259588529058912330777559832812868539755815166223685463159211106405242291517444249763337370900928342678909985358514218460946420295028494290176912994400222108516355624003093291118828525730361943498326350433491528434336469147448170740625716551077126389972588658717388703747153167547867953459439550609110916920003507906670834025905857444553066027156200017611166285513453629634893024041422650852238997807077008447789935156881214594529758889869772877021283266143934273802922739457799695467657039101757617882806601787488171541250099851913293368301054335117282692126482292934127065885918922233928176145574831059623302313549185991737350570358699779386770850339587803457631190935698528069114193026354488299273586375619678965291779931513392620639319448677756724914529429743180479069133421014338007353795599031578907090892156405573350464800877575511510742886816564098864330742383531592948197720983381138883809663566991052922538777925787924972663185063355234127011522704958818229460523463966246817808865080399081154747340155210260273106850899382477053872623919640153587467854789126924164289480968214950170512999341689789274656283667114226851666736929311218330755324143750448216667756440726555848296129503159489990091023481984072598616661495781144354207345326648198557359461495675925410465456570695083107740926781036656491332896166041207710139457651668229107447011824657950667713335505877824595018955852081118452939897152695428701396968202242646482390239239108038393985000074805600195804060819688112537230026754024570340747616693264877399039483216196791565571122265454773003529043137629613343178224079719641766864480370622560316461947174501138004938559828861067138034840240491161773781593617480666352204017858267789461602995167195242520048381499121059018085876508147419485484011624412298715714660456292579128651001366164882512689052055488504606905273905736457922376840773810950792513820681889823136741765210371310626655627110984619003672365313738653839350861132804849127473204379047903383465980401217911571452756305439875558642364809758129750745738514920345357053616743547257720416733747068422030101730765622293905505285404868339378962502259697927135022230529448180391956876097645531480890907598894891008490635401019298167679879165757598695644762011689584216518702579535445571067729316142537968028126439817850759547439320711563955755210043823880893575078522382193104405757956549633712269000739267815059344303815038576764720624383372321518127253982162362718462178966694887829158929535715703901586425959743892907026427623283214989654810098540936304949461992393163401387350702426252752464347515247021428019637370119175828396135250219857424263165029633714141494806173814980171552185230534128208002874911272388771278553201644605872403677076647820462291440904288711091351109862000658969222272473502171714224497958390894550851302633502295760836093271765706188594002128856490635797903462401581531651380758546767710753718758339701270180806965216962453938675703584459345124520476338593589119197311988887983434542856530394033401073129429846951409078967444495819556259765290226240250497480002970190278233895139440031405251424162830587127265761732144144991706597825773086260720148785208219715281914547468765513867899915173412774941730669502446360944795526118206850894539280737301241703308596591966982781344719655206791128335269079084454092168946988235980467464322415209508097726874424483142190663416324919082770469462512420410150205047378666296884546764654279086229328243504927239962327954950664934839348885396082625949886157354871061936575476187451999954771566577626640773986276243659386271068441479635093793603549634335091925894391315793602228312645808542682326263379498216790692131429003773926880458528753147235591528459753441667968585353410134850143598773581922274195840035278165727378325170335054104655322169928042437334235195966008207320842826471900777207578568826489807270380388449273762877851656974589020301456981634547866274333775354941413933932112743879459730435183522536811788953071735701790898177123537531291644795007586758221954502911857663133872448895791492692722107486541915820354803762430539390221398621111829183066123201298590850019709424087838471947977126471155017717314693720645247376218078940757532985466565455726964678970536767185793283192221443192164812637498214050339337690292454497086296356334723554551119756113601404926067108929931269231531833722369084380721465701896155239961811122365406592031721596436302267000749174763328776829322339785371665700726554274039412787554861985845103304683114083429628185670436585075191635364355113369802710987356307583875231384084973570191529975027691248961211005969931143398710718731785144021912729220559744175370397088784339201392594331153686887645996791186875315798817317061489842140552103171540618350891519847955112120131909095387783965250333986045318931283278049808583945751950527584411653454124676502398019226190852174850244767490954656195537657982395175524066135739281812970836507617033670659866954162528838460262297775811094703645625272370557602541664718169402050439661745170463633488132934103528716615356855884265268637879215273234641982948361263513131029996936781327717941712098798813791629519874509825531506838571323729312000510968867677098281891593685314047275842558236927872603077259852754113452275383629497731786320640519930624217783389370619757679328079259026138409477933643944112263816191351619691976274910645693269491860570099029623835750754017278275781411947542359003773541073871012796290892560098325230757761740742399803974879394516872669802912611093084348757525751813425200639506642394448025132415279867332457493309731786288356883073959961071604660955201014275728568347675759771349440319708556578258902868621196037579936137770301657392181549064156194804909972250326349991558776830306214494241755555784387936199007713034181715863954382675408760252149208644858332865353126834628360513418005062065111662710393705933704052753795097574095555627843803505083473126210681059548957672411543065386416777073968506665153514743275677504263103138040075256885619253302567940204260887704686611158291701702374322950546099532132364939854009249533708763197805465941366136096255379792456362613445467385927832077509220423526925608156516600234663919014750114049409100146396310887479965793948900105308608930993900516296077902506804300772210798635568104240312030321074847489351726667071155195132029871322119274645765453174639930545679440221021344497633573441664635250785805527124282491950662784207248163172970639167902399394875512151104179770657986277906322616651676834004574971999042300008731234860416579941028581089082193706759093654553363159502276221074991992869486866725419972425384311360168843813104055444293479200769964437816533502391766821114494878806976730104197723708694572035901480859348758018339076408304799892885793721882769228796895545083016066575598318683339869189721866379408478325019596493196082472291492576856604114770256094291782633070622836804043614802601789070534726402738232420042693647997392919386718622331311973500406282377752291223361182101812127336279398835038461139455079645196332915250868707859331985017893426455845468112936108360070738836689661261459405064271135728668672086912177810715685350288041059263311461939814781917198153269961177575551011746514948990900924544617488969899874972131274845548006545110693741566593897460193943527599599146148368669091868658768223053693411506292264396990919874156589789044868887996966686941910925162830957648735193054703960298943428082769490333753747426161097836335585767889707887718355718814585739530923818927598858397541900178367870096429663879036907589750752871582238897461960042864716242371262610957651501039372178554074160977095604230863684803987637956679216042913176914175489330042388521761961473995537036174158815140429862185790566971298614003931737410245223457907874209568851928866606377771002114455320921215357330453537638785587081178758743619780610388596002575746476977823785667867198771143501892947233409680853045494929600740681665990087288873517366894022486591140281259850986164482989960069467029406797864802684513251598269295874327948388200164260601445434566019345249553512736697847439717102021303315366591989943884710970299136300712884098717552064841950673431778617432405257854972383596614088096365104483480222073055269395591545448686992757221462221701545230426092685824348314494447702867368525523801401277510853328029169119922829993132387166526529435043226929383906018846596549509397142669090855725403721270742549628482050548980103291710375860386619516691553106663786474544689120815934167115013839033479864834561045458783059473507706461393851898530735129240424313551859151951527045482542879971810839635309624788978086979390037059320642340615005418455546495025639580417590079574474131124675100641720883631844061709194909943603283796754877083037452168788396761660530430772356419603569730627096146320488152825767220767472424667862196227799746124415256948034395662977083438241509129829433529002657851011159904193112767161786647087543064313296701638276015330101676070032919244401932942455643096413739470617680975346733336531148609232110047082821730369146135286371828469396383212323224737765111890415628740167443922817383257164345385963751255090581346558491435721462506157411140608094625369307946652626846109829213053708288547406464294590287253969842489777009278780420488911625949809693933321060212340071876295914650888055378565881339227813798495916897135236614001793339611295314375138712358651594719526434327212410087811303288067638468427948950100522035599119959482673851184867131128659319717334788651034958770944097293285788006716845271542388517190896497653269880058616023794884686810477323579088902784266246857745792545159637152633951740943824322159123999442431588697727213637656904580169794312483853103732712998011556734962714770620717401313099557909108577921226853409228546917964252829650618213958841883618481818791290148646787244734186098280432145882123809288710697647994305709021989252177395521460249136416870645288482080818515869151750969447328311873289614908216040649208378878880114064035165949786341425347800407629467179283298605804579233768161099460413954834805994085617689788401034565838569067220127419187825503995791475775863337523228772830404478252564401110392819881692123895135934241022571061387723632328260674566157124868018497817874961407106493210989386623242748372901340523606178562391531134487882132799276406614469451605143635916965882191037073746315527222500562314980930603877954303377745132172168757027450400284875609702575357830077229430286820056872155958689605579724930448571229134408616706764833844336434096068486057664885040376403625197373676436252396172695849416355227380516947970604244829124807940957792813233157468844600330626183417737949820226095194790054751993554222083833376830137386299571682818457854908564505121641696902179798661845025451694798938402254350621189159693182769561357513436810077567087407624651776814676195562921953708323700193154153125381294752760808906079626607302735252469638721867595448819029742097688457722311853674541362808100983431066882663968719746577650434457609577387412445563637304556862826945364588437518957632984629330838608772204538190869381261006579593962254282404635010850429447091868043583840245721659802767463658631279840717390681907742134782138404587891462149055424875171337193084350719211007154322493295396209585715158339696249590883214804936690563641084957662870172790096134823448019868659015844691258842959669278592654913031005733376078521795600091295975451812687337676290945573346879634115729004812533182364650750952331593185511982587130251709000250177940496441528424047176653216484647933526833370407665264890202574672330735662085903348259823850042276945726338127790866879170827398041010827269191526057057329311401097652077558261031114581403723324033500281996321369411981967289815232439658862589478113058682307221279550447047350132167126437525925969149517189103648837011912667159288127972024464753830753058651451396172348866775035640669773635120836508826584182953336364902941894180005702614111852772417234034787048931286668480507778037813193066133856165436633323275760614152576647477969464299326578292726626932788638512830162209904809350182070039863654173181693940693070146147984270295650066873116157570465998269852058081129449241452964013285193713171519000308641942680394180504005890045853516486516083395792527661726879035356588122466611811143169957480516014592973184572634951244003672032817464653862340586179769739851298088757889701161990406065741657789357249231570374167801614266427558955339582178009534005219226898276589456946446443946924537371448017039113213517769798368955225786091717575251931278167251202409156902937742093646767681248562827298457526084031555936733485035751212056214963001781342608089941123952243545314050457741418870184252310646424462157778349801582002079207531714800154320554977053480565188987392700595372269366270081745854154073520490002058241922730967283351907176724596018158011022287315574417898170162164872697671133037963796091558434757537531649012581540923943861029865905822149482479825077710875870270427604702600182364478805375617193021473892100735882783480542023296719731544917084710200793339492311339872051417676125307668237328832079921609888140136731714473945896298002141600203083094978459847764785262283395387858349273998998279760140468655260696720121084598877449391617413487636551720675752531644167469208397657844313765711897544230311461287105850155085415789314830123816694913057738309230291872999790287751336738813287120728543898864691850550582732507827697565121094940660897473520233453982640777033961524213330791909067804035691781615871681033337437682309757898499789830639752700489353037530509931873395111419682582650994593736797553872352544549798838303657773427827440910910671709822261631896262653791286385305510550245317721672580602238120405815650176401401326230339664857463817575216956439627642109663556708359465717709735072149042696053334742885248162648210757833496631331761465533062983504939542375194606474677074811609300273134872212016927890762939544944042410522354681617350999749221402497104968115481993578003090088767698928309763035589642185387791639948500600437062529465216159657328571973217666423846886863059073182785042890018244071233693000222557985924974466504793589511511988304586603942694870541433481444573604562935125673660762356211129806995097147047834468154179152177836626010391055100377411273436977546256533861838399333818057417945517402747819867032400175447612765143273258679405498957535595185363076223058694771557678631254125775001455055922325321644833635201367328612342470872966539719291547364233909369294956999172793424634445390093832941050935129018886702511656581227375518248523553205241660329998041662600191405206367227479208355822389249880238825875679793973117292275036818676450639620320927247177037768363882062618315127846222957106506929810384674674419259068924252664891488444027304817736787852752471316211013550284776855705981101783259050010863637301754189350743738350840982118937797492474564425956299952827882042723570633452932756329427065530693052118569196306830236864161775132835655429471541504308848403507497923000131603799363868474895315439775348289951571837465321785713041847781925829345188680456483938387498912449229542584821781345093344400384510610377609160727224243073407147925798462032492258317336304101869460847995098951501302692482903613698210093031325368465582615590994903433831596558284659458326815400734584692319798321163238106930060852738139431795064093698510626536388510316725003393580595215440007359815586984880438302260424341373711770966950810453092545810464587176139414267529422455799528757254352069726751065349739839539911371586077064755727542781779278915608071299656093372447652916568889421974406792610836125517776450350929218423356010834351302499891813972109911040220599466491922085481164356990918204277020074462525092094416477225108184374581825358035366374237434392035554751097811092990864567931878520411851316148078225098106509689925178158839874226252681387004589731652422532640502207861772345187853641265647733125097486290772930342264733119668709591353794924350320211098847569449890924107017122518836645950503345429565125121694256664502100668868953507517953074275771610516337363674636390896727911111957933166423252316231905392333258937667858191845484907548673591603802483084644953877369323194110066363640918455720764688854061443699202538850726661853294077665535453860625625654090466976921974102268094125975263300630719255383827576874534112402160180535299922224987554111774602703904307284837317129409922263657783291150574841680118590544624628539180467504759570065771955175320014906453219746802236954319978075843483707884726879236750959949993850342857738935631576086526118741078608896210792035995039683428075428308562947274017251569153628942844728054024716172913131766686739633056398525723146319230106648017731270593618287736394223897650340464645220038822017999723901339269220559219160181398218779165688361330397091034791875393152334443617372889320569870396182322181152712001437271891876632138731479634902339957562053971141767611276808215588007102301199169350660821303113794063497168613318406909864478409589906808466289618272404651921670689713248452859856033575306319716304365819400388543591134416386665840368429055986146938442074772437170018518265446961741776429049918851649222167117171168508136553399905449647818879233456261392152997180421555227939989497752546998982587975854072753983365481959142490434057733510489661517262012161545045723804489936831146570544334055223424950785921311443589751117442050287011846356968217471427580494016222010737242361309177815115886987419941938138364793474035776316979849547373915428354550500908915588990639436466737373930569899992404939120955663186807058012796923368889433445285029927316209871530013964602806706600739523852928266795952463155964970041920697109967971292390534560864391122226999937454374935702788217213575874144389516114653688251971592162831794769909123289888126617930096529476848801066458181292838996341523414617604813356767259459224012696092198446588859890779874347313744637812616446813937123791706733800863525951424791021557689781419543824922318765190153440637468436293407070392634860871915998476658727783808550388286828835246326941893572514713612654015591264064883645232285424233434733097589740674824317057535151250046130424510323757375966621369652441859410946151111404096164133714454963007666651072031275380768473714385260364694435688495441512035027350195716243410276202362268685165553445820324835036395187803616780868879752422072442730438840111721908638973731594153846477746765067776004165203205759312155124388917289557277809936268285792161839780638921874076691460239493455039854324176232742502967134014372533627478638681307291529321177120035552091356473594125965514846982450382677678791643113460760389776168005216367130610196792496196110518543353479528627950977551047383177465013984374200744348217109773122519039708293122887251171307582647830565024057764138475561773570947798774980323639592096254148952997243689533049421532653892322423221630109482748680736232694790994846664015250660014112769493461971316003046548985348987088570715838528105406032452247721442419276030026013448235828938743603025687011312125960134930677847026016547986557312924074691795898161864618604285741837023056966192000615185461674964234084153174168982695418794088751534001192877983987663013172515798253744073064598343590883783733439642001095405778693371734437550160789598621254073212545719566796229563737406415932744822871940567540563250541256033271647989894780930818860970879495917957740450028453529287782992182660127388165691417984322964017592829510493577230256995068830415731669444796904288708290222962468646964573969494156711410037159224196538786823128675346468622893397567209747240199415448096211906596775581368262528742974512803013623575122213080797217800927623327939303081957899008062511036452331185693181284121597738005431200858904840761008223461625175284555056675928773860758885580448134438769206135007644826955907160612048918014944068685893534899768993274729477365192545712473951851081071839978998578815354334280360911840620370484256895397225255040300527334838911688600946132211937456943556566084484667552025120852529140124768375945983126757840983240092608292714492555104108989757269327644219153235231698235464114022218997034665134128771470742814221330776817214863711269334149193832464278117428114865714942493164414885195541299593379605968612942620764130665499724463870717536888321604670198467144267056051147748482176324831219377724210927398226672290051314259301827995670842454296363437541221250516105622019866150689433246635765685142115552238407856073080728009365086068611277542913348613819192309560452258950851905305562615488070005896210336367526615867280449997787033134945965246587105935293877975124431587506130065474617099716189314860912469529192030105385958541914210663266895997610514298184038846164151058977486908402473284358003000217647487462962324996188643681305891063918262252948720791292128261390149237039353049352678708305719620188645314992300963839953991390282681929163524079215458680416328186002062674123425169782478587585045388680588420474365568319275428127076188692612714001091154098263387663333966531546628175575870001894386651227461508427574562539505615743239256010817307617527633020787777946371159275461378219894460154044919912851999750784274040545944234285779208150093255907909461372062501034141083715107678133005183885321284986124371158472655391108553701257187110694978628543015305325825276290985457972830057003914943062442092648511410456396796715367161287212675740424733757881287596329749511084567251325427528943891657978087149291202612650319741494679430470878109350924115943909461574953361185559320176278435182453112783674876222164103042243052692306910633609189706557590760612517906375150972832457090096395662985848646132393427136566737917048870087407632677636477004620421919589806527618696326653628525799486121968823899181328504475923309564662389798387706720269280725451901340281205076261441870766620135252977134841442136186950863065042633550238373399634853291833385234332882576047599092353829514819683971065054788804729607790855866101986814899072966202881468174191946783544816234348299272707480587189909394541660890202667040062046119706984836085177451734711382100257119770380098906864427283474062296659994060217919093284320900770311132797182947364281465906959663198623539098565248017367734125695210639464554610611498169720456949215161701137107644158469863779402990224408427880719664220747709529308723770342916315703182985958684018673774543773377614345988495356285348838658228655244889861782739204599890510925211123833245725179838242755480565699863270752819942808229449021296631142089356346560518712587289490547129111782913636373647354630785761645140466839271520513025309252595712331605323248187124577879426885276787940186629874460266902227115269920189051961955665344342384409527814511759506131677773057632888566751022927199423944796880723002906073826087664722190272092597827700976494958891060919771112656978360514007906640518941742046431173731770261330036536963252462594323320075594588899479684862433461407712485523769369800437304562229607724444426591624531169352812410497972625422404042517040529013740646344159270559763983689999334786569992782642301105895165732116486565952339810799728772505612736196133821719780182560322094534764149409519088143581719462878653046708605404769875285101348698387281570820154095218040260473631431847870949863862160033616461736777172374407697520647243916184377445271907598855724411677345870050006347599847455447191669274482479228585976987327234712498436263534076954559180434546093339829529296138659026900874775280437037778593481670778962813526797658664556931284701212644892213003799877505126898075020649862692683495198756313434600815120904035801395250443217494501975002859751658239087618421054307776371937862963040224383847724049050912903384982315434232550251151266870474647346637019206748576065769109679282472777219624379045522686239465091914618812377876116306931748953510004315187581268229735629635648960145693301960977915070727138870543228261929632154242036557216862482562459147976204357470673681491759004813813114418989553162530837883244435408247564460255639357941052135124073312871600844102042409904425073522937563506172793985014411926499418423235663447197706015751158170939996739839829944890973533748252660921576994459248533515618362862442392144912882378960798155962121508542098935319008334235323998508270410698058452779556474118296091110209119161238732685479143026949538185351568223953959015036309207417240334163363509733983323871850646068884727232224515675939560898522322969202435493798946888110631028224711345266822060160636323083940232426630503164943852661744251910778980548893391663086663507767214803573109998186964657668470586790471295032070248012952855279726398365909468328645893360253390866731505744753293307607196654435151265008506825713970392347495472675784785050887661577924709204629258391601238216440063649185131018739152142798545677042572546867544792930041842078439497056985139610259709835401583221470805952227604410980052295615448105690645661428788487933023604223148320975563148657333467379281100765283488717681392510557261887478739881204332587139469252937047882484440257725401877950647570822345193822080098535363083942456912285192226810055113438724191432950551200239468257580350587658042948824684600797231778695726417540635282494803132544496198509158258729164432396331106561866996747345187629966771547119942479588618602012784138922897204977163536321515612200221909698800832890413891900446111693903127329553785787766625028528780615607688545402651515995975520855698340174947573330134092100941893304501005949575083867599974599533544328513159093348167774461523547598384257208688925857960135307948774687767717834579295516134407428810904107595128315969230415819532747620109420025478453366342722660530316928400603214885656259227550096781880088882361109906159502536322880389202595822620006266961232665106684578350988941783136504663981290178388048992227219334739025370107294959615975786390643394347570749230804832029603658261222858193567331123290604596191910746890072196179995866565543134984693028711602677440868836570221687902018402165855864287264923148557082160586764187403675642874727210663089996660620249981755394920224128968299887161742271688210886968141410337573877715138385996086233414267921067961812223493752303779875226770012903842678392357438327200460828005581463887190269632704953223562854539771940537604687515796139222313833490635314149731001712901611520269955893057525690002197463167197525094271072309254771846677086844497407328382354332726834726309923251802274840557637893671932520693832820215056143743290862908051956261189016331209132965271782674476873805580445456051964487036307119111710625940959811467559141450831568006662824385086262522703079300707459501717647831812846808810224296898102616554404724091539695096391263591924801150727212982968137556518406745616577644069695270072999145341611472047263593062222566213858581705421208561056603984171146786587098005145414773265115516231048527175811672983590119470426026772255310658442014107725955621120851411469883507797108730235856620725799572733313650874450961849346517386226464220421048597014489818426020984065392248578377076703911582108562539543023868747187191935658677168815427988008514901055704646431106406213077905822906890453335468633355423846403104636835520987150378578349073377803735155593669592395617439495768444314399314995039648690987472813884552291659472133718567755806004842103575581563810388535553326460188856321038557518714088630988690748174489603782975831409605508631290685947537894835552570258912818535814598825358606951097529958859965405820079877800416151738635010696971195484387977734584561947753145868036032890138058461658769722374921215866696098078920158808365326018971165142432017800689693047070688644209052687910060129883382121631244981205873347116073711535673177822512846272142006816623344227323855865714730316455567344902323318694700872750614387826678351277981776171858521858005088027732707010802934274263738612094252057943835616301739635428845569731341953395111838030896798467611338004525954541440979697068538783234275311736600714992454362939923259375457284773768977355663959733107928559608928723981950715385394031920406604554823446785783843856861824088817628837168766198716267190434434423390247009633043190646686870655476648149587994010406766694570357822926137418016806249883334405230995740728022728881538862815220481749853734683622615444284364689871916638313594083152063749337130452756543093182111286650090946741113895957248019209426569829552877374375110958935679449923263769449633348009609957412577310886503231748135490036690281690320086472309296768253411994862429411495197698044247963839662930804599443013745927721972083845430172419555815920080016457800394090469467035710768160976263528673522109905527530898112167895497794140447400177087332059097911564848766875345336743539684651740854610251824403389840669187879878010693155521135298071948624582999937856343986845001939973362888903251612956474578172208223407384381938803453340873949426221008508205961936208924369262961521796725525593337192546261534921079804357677702610111134243955047505368402446703876184486742669661565926762611058515921763924692947252611452251667826564720811934020066566538356224957983467751622886391586913476924899363014149343687508691702395508201480877750853894339535571946863405611685568815552865335828031419447761856316066698152855921606020869404059157972121505116346999308535981798836811469924393789571147700720959628152376131420251630658173118194987704147874860345800710487160147572783627328125046838883045883585374726208166533343682597581370854967627588304101493569015722417603989818063966262114676502080136109265509671958869184698425616062056333144144267626549599760376526577544612221997653171001668837221186812313532444123954093300445364053763226040664694865992261418434289442233109959477721963847276071926522812992477924062421799130242500910276065766053828944266115998196002126514447899854135319771888630573895182364602803148722804894166793417063402393151540705697902798305813267852812331018448398015108621974954876354037915831321383203851776520245207292352779011215650084353132137382129984357965263154868959943143632353806715098203075616003520206012747773724269729985722380177530675695867037908624406666691081600899439661186521882277696057632093171559434765087781522667068542282014094079255594998434895163564319807284009000761800315249408462878105583429194648788659236749100255931386887861292194465734183686664448189443354029209467950033524238131446350172116728189739145682656653807399766371706477555262291162041753377853554840612492395313031448731269121826106260515777297647897605787815318050254130670109946794850105672747894475602319238454146604693921097020655832035044093006461727180418074349343419926281309014622434856428858616096548239374166531772617210401922901512339488294938257691849972861481230793846557143902943663725767961423683407041541549917190414757997236734563241922274972120310610078734213367407514495703758678683888104459677899614379509727713881103658454266753201857584621639084060844426677893591215096352949584517262318559217985849941877724569392324060866767541452185000700252963327154833807606924801207388863653966234586881094984606837128290796889874992693050106673375031826995789550049685200012646278303599748286336256277604747705889795927128533556289397270969362240221193853150699415658116874415909871852294835123554792785974195406849484940536834102192445214463183986571319694007453996171021524621263898977150029782160551210030989454297061014537663101258097933308093941706574981017021757765695588970188750242170482777977748047796168041126367084012247630724619605383251144731625559262111479170996757904243573305605471116127615862176304620351689287565854727130971125357377514946113073768587976790231133775726810906013441241608066917732554212024009468002177954630818458642712968147535878710489335723069593416448526137367200264007937267243127180385777020785276510524119486865137642234645483710520762713072826030233566318364554414471513668105887282356391325781669788817393934044688166227426219793758405148021287155095615647454632919252041678783199150343133518052487626755765351001042362518892395432488081811048053224871863623869267955206356277238746483350896463382702070589431783271869492925230873419271869291633416002992471615722009076185860554193948236915230711086968459983969017712563880865248901788080608962471740014994286945614866518239099912510733737492275957110078852563454063211644079555912521499240004734916471560713182695646967088509710284826400577736021672061021737879209724191388510330757743023075008899371504953723188725824406692159684542311466460951488446424779250998397191558280714741821847546446105983223195837095637779095749869139622171775634344715630786502675166340807246340877740313314584760727407288015301232670171900333459070268704918883685233053074350905115802191554443020692341076268959766963508514692473094181978072657464441050303961869028580788767992608753432036593773703088836458055340189653869115479316231512455855308141225550639480155416509586879493398380802699650110381675655196178938037792214957126722298810959504960696238676594697367612860258953861710567416621782781165004889296012252742916129919946846735400183226238495714444735048060707912050315753067189913342739438797068373782088270351411324684388485519830942143515314277346169627389986220245363710765891887702136795687761356312069184469092979294441865894964230362017326134466426592227142026255552537820511643078893569593703568790162650180597348045260228110273646128645210358548077589998252307837586132900965989013663694449353484375695702176918233324537980767491117104630892840365095904348136175443056565616042263930438275997113670706130805248117376581754646247833387221213828326229798023168140001346703496307725640106642755891734045213883864767109217142375797936374729797492730874928223186709689481463046173092343006490918787456498637461326486690541498171756392574537325835859991761651799431060491315587322653346025646654629663130924405557322997828875967820955749536252867316573576962777787756629918515534864136765521855656929759862369018052556630817536603680205002568547849893082028439866452576455900649490456084485078734482397701894057889057768660824523398272390123631097875451854383325032930246771094938523698049126101142221338308659598643066319731678447824000143454147768465146052694663097905016148283818997571118834949000954073072284922142086801864954907896427246287053076781660419509501639945135810197115232583391835095645417809719132269408363234216862131750084914853619752668509312856466523993321551805612221162694044468090865735475785677141240050263803501807234874018963995676645001984317763380328324829562581622744859479498147813115744115898053724212284405777961089382213204440485382037225083633691759184513543518609585161571142551433103802847176686656434155543873364331918009834344005006662348860262939617664230203208018951295951121708567918833919029867996506864997456420400230103925754795502365265998144378435280661161526953606396422370132614316279012718132050770641436496322372809986892408113618158323375164928187720480374314984293790044565019378947918711015436563182530516015388305650310058983183013352545088651103827719546803232128261110725683583185444270586373708647128405346650606525342962756984119311417683534349330352404000789377218515045169649156000428086423023725319262011451592176410190021692760805841661891454643442545284726173560984755897611814124649652851280815197493265456783489863059225021137398605619633408069101188158969369554750633413585175185029147251475672138353682161055575006681745665062658009796095952031134856197141515279824509674475301334917734846706595947496125145291548367677299593093887112918988730003433360659802694779780757026412684485450509472275789053271805765850721688085600058288151129970417175607846468960982806616150752498326604522064160052038079667680619112713346629974291042793223455284816692339060241680759727827957467583905065021336507623427338983249164266585501456083388597188515021002465517672731657922458301627352424268934972030662404099476045932844798665316926408639950795508111324629558717066002512873270713041514242369214038297735525880989843470160386075846541733728787590983345851093884857195614315487932072115863971500785322635779474390171436099730362437897681459125380479089933214779541412504396989633435640164740829544636980928045959995515076939171487986616836519674001550192574693382004870245937937601304224612757641682409724039642190653718180577554809004322445092767950635323593447039324904295793897278166489359404240107980999070538960895381012705388845767846320679700204924099158725658959381914720683878036996140302356726076688666602887718656511774203193384608621968691332050514017610718899078443055327146084210589350823511390762572453682598314095931628037345879379954734735702757033158743422859616791632151141091885471085830325309125145799133444787744175102435613853188082897399949415409947151109262371557720032868396802152890792855398825460488003040181912690715130104746584404823813149673097396001891244762487668144737215712898096019811707626069296445525861556027632119894929840826809528904950449438127019365571168292517837053681502357107672487545235601379100439271427377963990596622667468313463467055803556307895189540172513749542680906197776555986149633748602527977701336227889062680675732434374226608782948439547121551353152349810565769811838478517330051799991442630769372122274941850281469583487686741988529952826968060487181791137545070267224390356782058274620293435298714933266865165038891168136270461048971664444238870888228234953877836684566326722296318188661949805910071102853585770461326729240450513197584607508471392836198301999808422466311817621681199838321977931484654986260431408146616622620531733322068724491363504721205750172682063115261827020372138235155159649231222836630524159985477748471860250560896134677543877946120715500431277437641928516375240071710875341965285330520313683199284496941968977455619232515599172203662945909319890311606789729809521374417657474338911837570356393026518663257948279984468479687522193632053562444002997908038461713425431255622289796290025109346196232773679539703585366270352886532896609767833344203854903453653562490579628252365595790900413326544599959592075331147744767353392279861779146774580644784812130465205166405809958008410034647498790555542821871463580652201243076416635596382214961448089763869370226673865396088953954182471600068863852187985142653005198036924333006743242942937241527262413928507593782412308701421188826696571361459262086784352803622023986297170264715396478287706052522689731853705664567470523491004654473936210141442149183841865395982869905107628642925528315657994844926879963894278036380021799920073364881232904849486387995699700530389064583563791782286979307244834796593309464617306805789444152468412747383639709598145000640205714888566988775207428428365499147027686104912473232077767142667617430130623524403684564521565450859032380314162413866120125503675387416955007190960157576987247087851271150521867685865532331441202996325357663520761782685421080736892122779768375428100769959715299461517206943971929016746813190070052678094531604107106927874173378495813829493757111044995791562017202514008998919664916892734921874736072998247915299881460240673770468531735868340405854290034754389887757981517805826494504568226374764321404653205246753552524668852993314034077437102080454297670428511655602534523451189996782486739920750912787777275037623639723709268953356944980108895523442362261888043715901961495996557483625161139683615089405786206829645620865202581573080330813550443675946336763640594912090805442448884844409865028672653692344140772133124556516748081337829078589675043883031853154277039063827071768758204692448669006240800738847599336990879556624153560586559032910304880062496065630654246508751697140402070780219944011021046627088623859003998473440880632853400496990079215604743742712279871948356359569227768547105162448960436388757635283219096330946462553523024352913606148241673719620884284674372214990610439787302534767819498779937392539609792616625017964027232673969498956980075658527685146054731713826057237698115021572862194704380850213603334289634833689336875096720271453055988408841732902113975456231340779009976776386642334450376238666060026491994571949743224363777313298534169568822924637393774889929625653331791150002056368396445825007869728883234948400087262261319292800868106317075989235940870095234982295395614356608008996323141987436222831493656240349239509284297294520920963500507277724386349071465227960255206814109825350889676223115910763866627200151025341348782173220436300853232739935039442489118238595739970548423428962337592451004114448420210218839450029110402378634710416363725299563913201256079489316044589793722843576072781832139725579439537456544049686286195450387068855341577075183079382003775741425355732290072799472776622284860556237730854692760938587879030725778288462685256825542781756923029355322652684839000397270193840154728718561422513119719813582613637262270555570908046670317728736066835690012137931755697517088449042571948636750566424733527689861211126963081228384569954485807773075529151714982849131224395902238003030009398692779978072963525314270701980025369609743961830458640665817170535240806092466756931318054645848581059365670044847910186437242021394916267164545287955914251055010031799372090607168616626664818449999477015987585044645337062618632055269189928475531287108019829993092731618673824356754035134036051831238013427522560830750407808167162856876965151650262728268260055131334003643490602941673019961307178188389071042692702289563085490333821191569403902271899860201200595567092579894748861266042993191230175156171534575666232907625201021663664777216125345514763037313952050818492213234837958877439540939330224990927832981242952539752613359554449443094392284199586737275032590965090151047132730543216835755105570324635068726918336378045201132940362457418880127202956915495688987375694319155135878559875576480055130566283454690628674606254849918516814599278208530523500805604887648580540379637151844684688513569297702623201478629216844378293668642572912119238617173170405050095814765174024655178669918470955460942276071452335255620807953397677073141641267120296566560132847166718813594750388370100919169314280914881773641248620767540814950586172240536381928159359793155691330663914349998609544194145194095124706208921471022826574543008912823617753220026355935171934205535682614545069909049328743633670583097399390809902150980516175310830809819341783925311197024396961547409998222802051306851507888057444913958653107367019007359408225397727539750417987686186687058027040780065988711291016707249326109070115558863545165767438469839750085522177724719666694172400229736771070765059629967304862564036326612242914285825581329890768553137692072570001045402603457479198586226905248232852894087974517047179037959185716394881036321767499786448457389946925557903500672014404518098310849647693263324203319769497579896691591960510921407126136434416379821520874686830618819574070875780763710299147186610596301913009055552673220756522047682474602003398923895517814038178194688297777239784569878100273217704584889400199917958906256100418181320767717560151051426354821986730116856280011015881548954884305778749351601678475993738521152682169934856205739360290863268981405750276011233164093579874880285193902863151244813905196534593969941790018769349060487039706517450265685418381925629929875588260218257505888330124595808726291030834254067996723814504874866646393295560305542545539418557739151455219189272903142218364044285898280179772190619414577937568219666195667563289529772029324769284608887484129623441807824816003016643077211239522662681024525297130474557196083050174062489880488941234409225654915563427885308655140871838734425464302239128496932253445240661551609366112213621173017093839495976537785906950806776923915165874071951998624838530252290965676364966264673612416125314744413956421134240936587815257439028923103119459194407090920325424315721573848865155821878010998202165797215532821511436036977973772672551502908822371818288763902129290903287040382469259362770660102946972052777072127953584742362230043129040009785196303055818535091143352803226964197389460518038281615360046045375153814804000585109230219500156866722473139260310504486615273755324132721311642553836665238212324217442708345775043408254332012082177758765324781687122042636755477573990008834228270198300664248855139271857699825881313294778366041891937552828556460385066050431502569687456897814170379891375821232872882741302286282099756508353777249176366137510067038838117841067693553613011762240159956993196929763391159724075718815658816649545062181856718923185469757992949256417391711916799227731593627870570819293599604681830422023244622826326791914325781351208199878966305042798836300438045923105854120730590621765070476956843390421903001785944500722720373686487847095523414531502268414704865889345817502733724702934025835814580763660370664963665529467787555892872759778113378374750068660198665801688760933374036937391080745277363767058205559673798964570020822089210458458767317279819951173836974056315344000719296488578709503957777803995034786043509242705589869842086148913713626805599592143708995143654564109408145069575736902192042278256619103297262452152822527902599255694103698380648098927962992263166276739829044232410153575294998494606372991926066264119374235986636387528442312002952645991936402108256222651488124812096101006504389627385540866072581469774230448289461289818120301905434178923202061039510477295638352946079006796676624733469052635241225863681621457346040537254925031644485314114887677289436210924535811869374580612948795846788798675163216814296214698120926281733613522539190052018627666540050488309419553745017476396954737758024251241587344599595658104985871148847993754810755865033150182438809225394911024327487030227741492870196290460237337842421835717933769024798752345150292703864564751381335963206962777313375488236447852015590208091686317436609522722767604694361146666821477042301030059055322459721117696201054571542635763259810789190238029019466687911674735134355085394229282115327618805538037865884376412129113036672549699845379877152724899895166757249516225168758041122027764913791155388960963226187200689842075496396813595619051141616695777695161237822618937489045462279228547159762721943131833588094695351152426182379313512655377754728830502311901982191451519844629651334174828724547895405137663671708958685977037717784808226456741313941458352362520052567500114634762092505843799680502323880474452058453020946124986717503971252522772175584365160391480293153266815615221148669177557420560740086242294183861518448004029967307900285966567457763761252870344707189534161459123634684467445831707827283741787065604301495045490870268247046029227281243033780742911568652754612809182906845242655283917042451983322345997461442220511009977296998591139789853428516087872180279834434609159891068829004449376844164614525384897558218697174432671398890170961840295514549560734534209462723800946626991811428874339957446880440937710721025437770352185388588453875502474275268733192621193122704170838861775758295915236849207531002390909464265073864944688118290128781940984261341194808220572529979313937392351409532854545564648383862539965027437519760091396454178692742142442540711565097639389086159748051085371425017272171366014965122812012761179617178992392976457149753162460591162034183536726941440112817800561949078158976501158955994697501598691100805881892148030163316285057830850185035704050603074710858709816492768730946968664847972843210224789999405749730662605992278285127622126720206673293311299904500690461091773650248930721401952977633645121797632509345484402424598917220189253827291537758571052378504210023138634592978755623306526807322204339270238102372303668151184609343874666679740741506119600016600849735737701582947108362781804905867736922007272945182654561524875829874423272283865115233121243640444048184597435268999827405666089918230590944201633845657269833874454195146736412533921769250635847940465296116886087651552825889971416384468638160860947476670717314050421138800507878510370888230187332483443987445432348523797784043908312502070731404814060311899117065784402169142861119177034004418747511393557842054448343422860636132255883495621899512318641073688021852302426484152970645527878537604203073854672678779446533041081203608048417515918679076882275852431080069603900048028748957302320639299940266822660795416739352846466384292582457402845311845029784671684383066688026443620486886286409026808489994912072758562220502719348670840475958367238092262377935672805115349394032352524528622623769806575855425354380387946171326980442965025134072409718383787093760275356165180779987701938545037911081845799483172315444806135557312486336734609640145462234922082824510830882542469063995833407998519360843939098716415424777782079429132585195430106960087801493771213422280937798626313072099467495798298709067829188371347466191887349403187568702732541742872670844890873956949902660896773162395215507103824764636992859984724627970490057714766171129436359998186955592145748219245549944911849914390221036152636061443867942957972523171148424003926346956953427364436916418938580104096004672226143559601492008848219331956791771845678856767909354561819085207703612710048126539558375477150208870498930681524843545888718579650091159099060431372294452254377238845269210163622059156685700527481830363695494698615343366343527295606911755989104872489439256593897401265640990672122577759886682676033736933898564388936279456468653409734775055508076878889962031947173918850128068741556237558056675713864283410317444695193847203938694172442329261524389626194756528295533382149027433395195672386358009598945196359348026312321999834716588464858984617241958144454966981569740859654909778994861781565772597140918857243162595659754643320351973745029342084007666129277620029308809705990215162719289539623204826396175125173901811161105921963882507375346805715306593179143253734016181519934180438851576772752349199260060937893470767461219033649399038002749259940293628251097632693947731150792133746954136797219646789580324304782407178741670779485602349759375175629981207092143689274602286213085206196732360592442477318241094259980305897309625928725946579072023504622110768993567495600836782681163313690781122791746308751507202549114919661923392712035791230060888679618341878294971579260151585074746593369117359739748850453250248355185330009600498901819649128522058099386477126037753250431305383873986101721213180824583818711450526797035952155276507929815082833898741059096458338836418274319980880409998101251882618934309569771022708950252463918324525422617116008969388655141369336504792472881433754279793425890760869270712148191415060033004254210624387749658056603505121146695879342818258715976394296360209421098507175056579675969430834670375808730200609086265446679776674739176824192916464180924188221214865848176490211636290688007931532067867274296275650302269994564057770288249973269578142073801027602268561716606477453539771961309357363258286953358844710580763545742463292698881526012112578307267247522186155149945259540665419533644498393986456864489735334194238410820875974353129718307164767395258510907446610124978807371218978975474388913936808911919883022258533073674678696261578476224371382342127736985318640890310825290160473887738387586193016443811130431072651415445472349309233597849381415858602382480624204634116357268719844406751138461612202314116801187424370786890866508703725887841642481457981576393577360210919440910675283240665216122679380521328588210418428922416163603544751547000093263263024453770164229175284268000360916799666950925474944301561860538088153515044733079024092870214502332763724694633241378818643604810739244691168200390853850808466315083032839456511637639117827477259412251436357667746540714319037389978874748926360666858344886844186241070360503438112733545178590432355475766299720973014915150610993536375404707649468358771990206410441612602655871706412896685994476897043849643342097731564623586311356881758849452202081471695538420327522997141968170929766825041836169109970167922635005926454326721496726293047377017916333291622260117570586103003458252594081850333144840615707925746734525833123664837011020191031034751435204597023947181227102394488496409158192673344998867118148175659903484922200044971713384708066638439426556358420326650026546876331619896052694890600290078074992829743674119309563632937521280317672731404367086871272029936900455647749313703498769669747471466722416067450292956559085463843734079001765761906167580443114993058841230222671526366714775544771585114436254592346628687264041738477298833957182651908015126392584578276928208693262114664905196818614153943830548913918481613073204788842927226144190564343090830352332092388035657060243404155793332672014248679328238147997326008415059983426726460822312028660457332076344390745865105080854563064665257848364152748315361679571556049739137346172297007262548895578628826590892934802887029125972816677761883672922961703691979823548941883068438199587986921664870296088467674278398397645083664756925475324939715381800700770344980668776831000279178743672886969642393246608970704572512554085589613852054108305971458973986586776059988667336270538569225369807956760323421239575608892092976076634949565913255519359854041977028771269012287227186813746613678400136681584436424275538019053885310958924231691520078221485718581324381160908402141846332983378237474405536455601087566530398648703309072106968720113396371236791556231295159336429233567347031893276530429914246783980341598732994948797362979244622247121816512363458498221006777625738902574446476738629314526761901651749831782015705975748526622675363837586361027889858415320093875392866017496626567683052327927169045777595668852000385840994258719863251799193748470160815228535373274630148980499532987153627020967460773481115475437095320503314998976211949794579027948079683956450567567888005193704831995058841525963106546094253392457073890206532754393196038799667174284367781669664823314720820877146495624325853684990623338734297332859950446683816241960568841189468739629814142657794149188642206741857555980276308290566931846767519113522989191382629258288276252766376677729185908788690808313101325438989626284151824806414889619942919966237137663157498927283099731540271950512285080825231651239205886985676289227480148552565909177996157638898451558036360462469762078812728240559559915082618991851673018023155113346196336216703570082291695053742054677977041364498553517694531578108024204837357848730339241939828129459523481440939420413322393585816494491998494401493198523105941596801024041348233605444249485254338228083408702871669186013397031965818438641584880504090494165803044171632515593016196715597683329055711464111863733006027772319920467000762729317684763208687364394344728900613391917236338408461849912807178571704218560545142223704718767502493828089879727046578774887264103068404250556050120352384303755061982905624141318102434506719738725854953241149838657774401030780485810695902499252031681020017669320457121513200751441670706221433853008760429538783643569690094526575953587659984000147928258705904385409742886447449657564896675154555986968388508850450141984325792298023018909611876082153150116182933220557611356476366224778591481187853511223501248167457227915548296816280280114060622305582491070491111267739597502210180757638635220691672885284995812335200217297952649772396992703809179416547112067274403477914582757449716814628856947265492753841136661195373743347606811773391911811178478586705735877529769909862971387371136774523539920583584915165294554341421042007044914341559336012691233309662271586886679463486831242642698159911860567947078038393058292938726860022703487211712407334085076261626774653482597156488935630863830123342814950504758831040889096722499646049032746240366598907133310072442082990464464095684742961072685128389211348989221031919720917144277921196358584339288307490968702169281082036363206655445558007272462964718212632375099118824790906360802918436316091918172519324232801908074385487170263098566661068331607274276652349456499889496857595556860115582353495638330599954005262127957444756618312793177888074632688857187639898105185305499265435186739223690412337049896908830113883907116000224949529242262192836134427084718716802173910933633465177399706037074937670207624608041682694142188137398836534944559893955863008539681800541788565614862355716969842402427135403696156839631198388591979351281296054021338704065261880471385284381280068857938138665695962227116252696712664093922883747747075436176830436705985815051873024866981227308968527763583523203181930892813746363729713927974557488844499042335450813632649444170817008204890339580146808630601843118535921431866531674056003712099885888720024914716352650317994263622542524263620955987718286012877380900928820702519371755538007744947961579448860518023472487860976965707671959797816759949231294586131511872030240871656783828692388616109364148943733329480829267609985193044294937152247368826950900489214259985686551261281443553992956184829558080190224461701841521164839385739417927320309822550277843092319511711798238063303207962299984714070698632179000282030281097200852620489617684016954699534749184407324973571948748515651930283197093812192293044768497509351520234566317704502635624875721104706395042603154129458305911004082253477637771087156838362281065993867693501521627628796269267500277737454009732698724151622897742950805129902685923798447609172880956844792545097445260077866147714977870507281156382634348845302246302068233679078677772250833049497201059908524617499449133276832940805058892822311259632777525287459500898389804300778403571760790539509982297338911821908416582270953223238727781633788273211530028534046865540046059644718840926269555339188484166922302223556258297754438819213265398265299987420479720942474401709756493095181061090943701908086095087114297952985526241938496533602653955017929784949908838440450223570648403912725598317306166331790322006206840035702792818533061689865997185626937429267346272774049803776105766299737352930523649832551510984377993273708937493592726484447809982485826433116745650393797808967466114251588299630437952262572912196247858090186254179335012758601820717083105840353882603743830068550066551695273669750560874155867800097539567924727863292350175320757308410478217441108308411524243515801571323475550230078981993876071807468290531456512290904654258413846713630237101850582638545783389409121711668065800077418615211092655031429059039418594221449685977143451316000546168889888240492843158222364980522796652302692288132352050271759833930385619577264257952946792968661200591954655205597658436693687040296050682537148141207674946683601374622821830510083473702666496310148115732037928909781880208468184638330140721559566061324429353373534707995459231538602501030624509786478040863163264795505431644810089305517908361504508924432713480054998747692023332736924363840602109376820655971311079192833976661806136720083549195086649450898684190242632543034795703145790273269416450388962514546648018577270563775946879018760519628142970632055485823859842084938858043475972145786681100127198492895369903483600189102220317299525580509275091181193133272529952389160803778903496899821417267102723917573210303572778432120664058580610355847209005466702800847254877198657198843356241963535966417104370115107716137650591404843199307826246056635839306288085413691928665706937533059665969648133580060778175877212210712461107657618259442551252524521850489829963972022915521225044650189987108920334785907498764866065800917582616723509413337879886067957282960969213089884450449491378829091028513051861093191400009345963912652317324136863635048808526828130102135924731090973362047477932610418549754792266474841113003717474674785512772182053749542412404527384738832474192180940522390096466826712244540088039199520847839617654788884885307807255755894472931998836279917417952792228000307041141499532228648260439885252575985281366638888819360407338856097464482172690400577824475695400559576051052670807725557540192502522697081805208841039969027862677338868173132221938380164457606414194647249047304770552907040709705538913499222526819133810050271541217734946623469878781542521859401615046936093832436382866444114460262489608061940179185458582083278693243788367093808112949238087010629443504665248777144100890035263448916570788410960493423269551494251429979932777075439800413091305743646764763585265160216534737257023479034607562417091181434365610912704281860447004830483669140224829375707559634884340951419616662593066786179183107907243041448150867900743322883635322005385095122058149107649984552501304216542806917318203236168268899329514884673142009335659701056178038484840003962714655776180306763982853273494549046959702472718785094585328976485045653086200675489689049305392497279174015064745348951201966177872916501057379705669685208819128724875314657389366652669164246340142501812486136708837312340365639403886639543667994833983309011729911529350503919182347794645478104998145859561019190229672785260924840658397928496941965573010854513874376500834482284474960654512536026954982371149293321379596241811979772670455223180541794934843042425389338683491867640720273129979739914722051817473844153653294071094990778182844286369963368857144147554352264651947753985215734239241592612198066211583607831515633754653228517207460790902529730529825373157391166500264689100164951320411746387477896397120408380876180661083637599413288857584654909489469793030738294426628568940380987864217957694016600138426261331759806636369609808013559183527940076063405973985949300498327640862037563584287950719900334600802443258971029989135680046764725369854710567178802293066086566357421212493822234395715044593456231983439233036027834154529237280377405537147685600207335931104735433070200910251893702563767328554211876345412171647914249659416797005726592988127841997512683579248971731692344576319516718160116252392397719731025623959919969216715337500490264951067239272831788619130616649367313677300764383709056315401630794029332651016149590506553705869481129592473861340557958144133719887106461491870074172654370250721043049452232731329926910980594446267269605672111031213416150220744977964416963366384201307181770135585873863389450416363274950569649318175277030833273983372866163510684133385955441035255179588562162137135232675264636465953895053217011440248571752058319662703418233463317835039883573868285472994046642048747802259334546631935392147987515282247361833528474694188973583100835146379485853415194675781282388519303300773100300476696222929238906176527914995565122297648895816563926261496653664914195146356872189110862267741925446150810412741604062258335529176148602922107082308025327952666775113184496153592584263936679716823763141417686444859673520160861897459690004280206517627310108920199462128274255548152921715903535838579418493258920933899824084718434444210609431831601156638669632214077999968222000534973239246083642457343944512458739758397153422780398259502610845498642242450027506058712544543106949672135938541541548845858326119322069614460235529774961460462311436709434809493125720318885700047369747504454694146957704213162257840531117890091398923053669787587945531087341402059175635570660086963639413002944996650244934776280226322243431099714362556384636549989806405342119956249987971463289251927280439746923902044643660128826653675968840048992482408671201060083036192579055195464122061776295630936005707405405202414223145986058107994631663738653961424255794915800154021265549386599925036539402156323915883598016173021049186297896770963288913145954568915899325673978886193333619723672680835769185462843937640490629952025751400384432823429994229382871398573499911813813821748823029354552489706808714895246136750266029356414938259210033047906033054196774921601967778886904859283166203927153534742627958938660749076419584549996279109330342977032993671122470795230087844402787265079429055037992038083091862994188381476210095101966411810133529250566770759842711659521215081243485546997588955846361319866167216154930527641514765170035953668194709217460958830777108617424147694970366217446159133372616217447788071822309017804257464289709111730404351164278685740676723870619124518215473924851290014420447020775329089070625615634669829223161393657007918886756136583296743849093111433191149477359987810364160225424025260788886830825822806255765307830155797787596553661447351680484868571119168375767071165672506201344312056871142232529729942521254687976770800845357795516249123784530252287979104003196356314607891816997953228060255124102961721392515220943708698004096286848021960895765757100987688798128065789468813687115855409558830875762591705634714894743297083769601650050031809558662911696725161029230123779610475456679806592372512862728358851560340915762892567029406927210699704180075204896829762955989872052147489423690129367150473028287423284025413692361556933808761740362971397607540976652501697443904874640561422970592990469872563353255635796513863342545624262571056659789821672649812174887948632884597766217171555322929050277870012733331223486265112865989547805889282562273807351128423638394578039986365732545824768606933706200080364936232372838074741337866971315137393429635661817179855844015139296749938843714293850649094342863638133048493562650801996810316120117710395172591936581692433987653728498236127097989039127078332191663152978530961398340188755054358626496348030317206577401574915140022719322095843361013876168706657527295402417706443332011069815175939209140727994877947589809543884154182441132173135174458799400378547686139475841112973346014295702948198174482262814563864816543067377239850788331559641229821099829679730162766966880579702533229013880450588879381587320414538628794220723881452695784193724575275434898772138242966016829194902499861217250488270631779994062326326268315558797494896433019490532514561280625754017310617268211966657264002757310091689025456596016474192145133836692906798014554767654908254608415567105576998171263365455497200805143933466340300284796706446562604360981559213860021637421180270371012350609988840279680009057361802450965807408399146899459103638614839560758456626115519934959072325248182772181947844734608315696204375177276583423556809271334652336308824830352113451082956886106319809827431942407389397941733906746409114328373372163028476407887349708771316809113047817223484885857375999267268428755309340027394135828534615046543588763976770057904669384689640266985544420545560049681670293926819587980027646990314450673778948100104461208201855209622816892713105887545841027626322365471653111230440889056504663299039446013598318459901362323004473717911411042078139055559231335620638783858995966313707593221818044626034575413598846419452287759596808423928708996134578050113027161820124473121184260821242299700073105427966659716605281907112015327253413367065667418891137738581851642518621458166491812677310135352361659279106378243182705173710813635436294436299866633448617302666328445666105022063242107259731122474682355026519917882914243056679828761660093123307852915669607638854790279657669860398486543900012546789456757861362774481276602060846554712891715839180353303881366322693185614437243677508329962686503725264872108860302930205564894668592055389038094453320703861255856390695820470880454619563799408293664462529193226703254961655951131283757096011738529888080384623448998489987934145599564792562350403157381371752201984651840746257608826003435518123318305292800815129893300510144204748982427124791060720616216503249094631515657157317735553918868945419649038047803070166861282615177288981991455062038531067219879605897533587909033467940334127298207590307799320538783018764710375925654012123066693240298697639865389266284478344696914153069285088481185388318152690600040595291180823560788904767951154251268113413295124621736386370571771670716179878192320703934648604271179491699958489657430091966932041178397362873347716106755273947199936070712113274367585071191583840194837307810382298074195548342143811682437285661978993603075387024679639187618439755200989019284609536834195475698515345148005745490368031425413545508758569953301249821777858290360978513292669108493874423888398919638199503065635084783486378910292573963972753382858367774339591428040022352349473607110662164520991984506628396515874465252076739625688963134944972350661128390390809493405669604883677475913015675471224796553870435006703922455952610380893341649779422766968338814752959514014102728283932909877419153303213750470189828328259588536286873623198970499942418517169343985085176524818736522088248409814712356888374094107546123453442551343102713818940541088397735921571700142408285657599442116687304787984828516090368348223080739966893437957163195019455075904850532915716333041042919084045089709935678204941159557901144429914775850622378992794119218303805586169913228400175284271337466014423045268321784775020214632947258449789415243998333707980550949702735968547607283682921081323853037440661390096544134845380188260058831442291031208519573186334547675164577972171380230582652611960904813992282979883411107399323579914338530667259350765449390413665413915946172885225669888115998288335294618196100902578035660430141400539539252144646058800393014250841613445373520204333444553783228656401516864258593429409866967732861768850585848441577719087060692110280617785076121677192969541254200667887673956717233104222764549379723734096033826430557491165359241856919508233767630876749901477468742092564182779317740295448929148097801280184122563203654640860606355219719369905111724010876132539550698946096846339870131613419414281529833089311756414610251460343182678470249512240083721142190764071259806157492264108430920205153941139690062925541640049957151254938180629707656978379956260315423454014244427458197398836520337541920736631317548616332104999814720339275701303573721721762469959429589085161177128023229798655178904464102297762152625327362884441519157095564996076107164538782412718538754821854067100096234851498475317475115961665628413767553408824131096985616937372422929299062895221991902451326013267172024491885527686580232881029746694326871541710554896360050345915374115539705813043827203876076165400060188648440553449781074619059300391038767621774671747719972006757915283846515843447776763509050278009886646396172491717588568743467505345276493020156448539528167679221621530453578433387488784840033300878020397273997244999899018814720645901748388040422023038726281764585627679804245958355934752308066612533640393373680768238627716346094526024777257704995701559109456219312427108106051954898199873931785350138487339290375277269142471392745238006065715583738993359273292413681910826128071975381931085429769828694756143343447295547082579380269849850793664565021330148119147536469402840279566186639239779341152710173105138349456598471583139030821117166665843733603033296555077187620476845849170454129465541843702464201943937685122534745779499641150641484535653058629437331237960027929301993947626791182097578968096338828531395125159058470652256802889285741962184916736818447472902123033577994774392021965342201519614389050248241780487365769539262623804585752308386281502170956172915407975881775953522190531964180083181001768821230731606069618940470538158708467410363079998793465522481972485976660783888328099751506647805305577133191026761152072184921527630889654618764628537508263622019541939031248411855748301682596274557451720486946969481269231927423018148231244714786006617355760285293895239471920652323079516275693264138819760904575620079332204078688651733430036054577003480608232958767635054744691338012889980258577877159527830787847144824728803532830441116640779888448384878204083548129275552587072192004515555160342982488874910556853426767595840494784624469364684577314640080349949575196701139381435984893687068716084544781286007615642404201463283794207171767532307643807704657484619935589425819979198182048846098736121355757939694290673024287166654242102931246962396635692513682832679061003778847696553492533962338859023115347079401983933934218171361318230032311030722336094335800561575753851380272737891210934454160635662431144740851143557690716144143458203950547700245169713451552515869929974228628051783354377347236218936969764379630935484594613760562815770544350402251185063767276382933608883525548663639345092677109483532186089917073188394657527305285715749208060295225373291936646580495218025357753566246900485598201241180835679663015107802438227704627826258965089117619186446477652710496409260641838600813763692432136334596506531278437883141196668327415806689402645703051966921683282324920709277898915781223561731458070737237345819477122888015354678633149454030170504690251300771569737423026830311507645213392222491024814333785587623903307228374324057509075829586684010611180645451852335005525277650633673883321148576551314776418680394410363349412666356060040689963258881493367530165538374471564911855943167599286442118073173545450750836829115904817358069812701814361917308999375470812399852969760590391987964537914989348764048137471735964321550453785558618989062096480601974296481347211475351365024279508338017053094070346025749347650062192296514519434081306367504850027373291198238063115377299717126284089553155534180217515374888330144439859770105976373335662878804030862696144086608914047798656230623814189580125803473567637608810805697753081404236911192927459038175842160103483763094689199796941266646984493744565315005178039862746281063758701080277648041513764114227421162617777739767508034741711929331808489486653155543877270745812125356098555142554747471561520227512006369407404732212058498957241250641765195214653695062408730992272926284149996818166925082302593999985520256074666223308164606042800187678989079275369798291288219534124436048739090786174428614332454408752526861353470321651511673751852808118898861905872759277190716945528235325490695847884497426679135485835737063848920573878366669076927854920324258568553872941994533926347886790893779813900245551675564493333415138884795043345068069299071447038395611277959965929688381064549244532898736609843512315319988403583381224254541287453181640084963196158667906932089380390796159314541582035504616532192616661157916275055799382226078390478620451762071150182188560658943084863422774045755114819775236688186335274271280051582838563166405307860862385692403371962140915421552186873682009643345130484766873680913996161623179187212603152127304060722892416947916471094873942015442726623081034714230078850439873402149710058860097514295716809185545164663057205299156271355492091494018390500494009561966070547387823952344066554348747231707769569467705860019646936318001444307983923683386986145885853408832613963148725856153180265539201202827650110704982707090505615614939610693940116573571490562321115273687158003910598226438952965972762510958115308733548085095731080371564442937591080116554525755858719463827535953485807260118532256082625269587004591760679253831663633481878462124226868710136837522628657005251489236513762965412868345848012022619686411452762543769370183888441844149366245851722237478763558041778484753713830810846586181739739538518275008228264728610570174495486802508993439244519240175111905861586332590304725592155665100544064729583756037580101619804564100952849641266513813822517494722547362487796382193923575799468694716383048516170362583877761485544129480194966668358323919519258419051680090105457636841249508828856226443866285974441825778366239997330975681488955156649477981907542256541601983614588897740651602498617899210136913243243264576703226484169927402069192780827437169459860814666012782761679600015747992279325184169978398018756452390752541885938724481716583295682742768995729946606010804803195051725984618463056919794135589516427034927181840074757059214058191122285216829702740495440164446244838080973793493030665669500771652728980236167732252860319093491053956751875752691024306717411944661364765091247900943056041150267896143937652590944547564562659559838229181842668557420768784846853662298193578754684352766558626242784661991641625799428698189649796095391159274072698586707567214754690797247420151440999566243373373215526514762282410383525549290233141476646322978181501761244470164771224613680151337504822488527140034651892279686717249520555307665650655997117210586592449827059074090050317820775295128110580010652182703586391929017216683843196414667908126842076264918129614974822516609722607626001538614135120361799125803093093212363011242418326982864434294613716437081319797367521129845769336493226988007194317172328289396218325647042869235043031238937439376249008669071329538020935009745626335374084555656340880125550812785434389239134083422699560620554900526749193123766611253874491904873961060298644971162106193573302259930472799038738397242316582308074866183557320712298389099612472730956015355180442509251492542092863540503405575484459195282905200772957445849572954639405337981169844811945738889568898623657312346856610162613560610639618466771053181758794580585729604010155388922028784684418909158094354128151014199277381767832909433596379564153091539953042895114490595095347245803476869676875126369406154500325014240506691367532981873719610116867942915786461293790620584503684220324783795807967863679716180979490581964409376288621626862841929882275705387890206084799873210216433818571910234436223652390351719550505374982840072064553735652675592610126382936758688957850844444696843771854499196143591376027590653806695960523752058447638999251864982908441537920819815943946158164315281745037287623188797650005696162905594232271604177406021377634999979209643687831763782466209705191198364700059864340088011931013784365293855827075634929470980249642082873451859343188164476384747849444752629438755052192532330302680669329350631239312916216441520947083162712409481219569566620560449356576882258139905484209463578135819978467275685535798670690352473492791621436220082495583555397840901070007906145294487636711435079967712611999064171404992855931517871978042866914437973955068570771814747978477263719585474781702104114507110289683069493272822889734311255693018065802747343914488646548722570085449458238167216557251537400508789893744087180145953978190172329137566021018501993756085001948961954292164902312833271151934023254390667937186441737132870570696366902897576689689183706173320521646557816632962572495243860645511170843163928431868535896277891350031275926722328643985836559590115656508480673951587052584975806962182200005444432782772994532105077649757141167973562850248933962635939209529997791279692003473676185808911335582717428623274029723128233281497952798300275823874865237490261617746678591601736759063848065601284978303084688181799966004482759634148550748253970500871224560023215440827186118205938731015235695636811018318982815969243214890912214148104332649600129991508841511783303640713948659358704533134515833619560995837624688703988972243916178370819464132014133056441959558270737998496104451936317902574300082748326818656762989401345255387564909080416756656454837631415347933744367272176015438794721702730335462703472146026174537639108271642540239241325956664249082910907433713627588257752375137672996477833655508853092647887985666446522761457315645843888713098890593963058493699288223800230532984129008977931971540274131411173973564304509748290219087571041754109241965981862005825988486581926854829999611464482698035167518261957209479362773540957048680831604077093073514522277239054718011328512886681972791700580373078211750805210325121473628871659237578232427006699825180173255006874458975050317866227917334063627043374723022834131070049739238597577908019488106703064740344114372507634549880634683543765311584436810661761914995796051586116732339382280634546151201952229583263562748707245814239141270945956681008336755923771867622324796346989576669457554390134871395362323007191374887016848082808649943529676086981484859108421801840909029277142364843851193915737920274685794739518809063508923850875509002055212397683993573056392502808508115180169018552560542156681832451607544896058341201372318970448718549762184707778581499241077949147326476496441215587491707648516294334468713732181900706394630987649255175522595526239801890821078957574694119844393965317775120782851332466923269747187588662609188838978303984336206609391008665388705754308104948133313322206165579924489045113042897040215926410424375677799250747524294946128192218848132735337987211883786059690353898168542790308707552468376063611965550189081426919973586713955637164395279047366772927043229366205728021799955598252149478495095361193503177186620166947686975996293040997587736462635318937945316983842314382475716696268420203879679277034884281949183869679143737232857323484906473071343215710121492428684618319446656858948302846258573392940126432590715779947967936741457295181901349540783755318601036799698341803802322171764036964882591359808404554483586850421333556760827811638744853805688348297346916224117424412708373906779723793596806846581345154213331978735815007236612587654692793455967407072819827523519657978091034044082465223427155638034675589658881112859654386496222507566036214427794446059415589999081831464718334199324708326324369725429091805585370823328199330938980030688552703672606584822481560694127756100575316871150873121518050650234778240195585067779836785561392519885712864035869547651559468079106860515041991851344249208614360151295156889633029843500735364229675562913299203123079483730876534758895971685653890494585982551829738055408254564954714931290658969947594852298534422076276258835642420844055798525433735549138573541361070395152080468275703476250801201934987296583115131648519934676668553207402072895542657522546093649620004016460631576392005546886567975361122316017985780264696043790684075532731016608940873334682436606459557368805289983788572540670570083366176664221697159518037850067983809651184903069997107751468698751718377151225827905246233145558854530266173584917469715495300479617829657774373686392913208282106894505813582003890059934444752196159560497809072612818575793009884866439069082169905281955151596931840330425979224929677349681836057787537830615909910863213225149165123156817898039929888788782769650876323345588430665966226723121355613130325393815152090688366549704640730429495469556095910593322906481874195348489275284553055815443173839227339647707583423948274147652253203922635723811765688784316467663334354476159800439314043086910710522020728078676954882158599839049812810818247718157730039507581698281449096254635100126316813124336476589217212121750931996115744677857600982142352422420204886062364961457958343593234880846442130267254571154103408485711298447224209204643087191181575526555102572283283382524658917854699061568687598384967964363299827402009794412885838959641236895522370527410476680437573842264678280544616486644533014804284804792575397564247679546795529105215332214536604185489169789230331107816256607278098868335951907764919600431689107963673015942052034163318233231101786005309909459310907852544704478726789037435355699183227602457634612519627624159941595555035964524377813192037925609554353421799567988250732553906340552332164525255000607581893716530458686742377537420457296219919724872209474880743589046546064651746127606551349196937114861896939543924195982539613979836493526520256051646687730147631321694893846542781996028577384827967079476578012794387190860076748819358489693060693252035210935816337941710603110197207195616948821865949387443326040090335803000714139723291090048814292996417734393267816179597890557306149675496207016885438062676256862001909098891637951008708780927425763717240292926261364642848203208199498998402977745454414583660851921898615117493703425197502600011703728553146706017075935466361543233544682987641193371602989269896657910093082941346145895588710794799069773440035021576648654189553312574477484388957531920337666481166134275210316094827616961969738211904468869919370478192310585533582891786809127806900426285462037660346552912920704303163895380801267702547210146333076624729411695653857960014994934373837909630744136680266779031458745219872376429440453145558084235780405524366796682803596758958585757117881639694897619057191530643331136627863686143263620335713169149241072827662911497483128391964540401908461391176794636905256902899735104777619272905020822698605445291338692431822821780473615446079633755752066236985350215708150845425304823872297816472977251030964950540467147746688198194557849889479031190477447775007283091410938028421742552467161431860145286924648713025030530098484744800258954386484861412018341487097214557636656146033759146719206737640252645965700451103520022347784464345043211959425403487615319983638402416244322753496064517344635924790106812007596973040434975352714881883089995743938456215649426092377886483570186971272882808623975034087097109573211121315787413793630373255710706685633384756431809772051705402313421780820137905761885874065874785966803756818096742458740879688007317314900610496370850054822130125348859617481607774018632794302431877235063485680493129418311337392330069696967297912230171210472079167248388345043346221128039702176206905003529890360298987251063134607005621834032275539907431506618518357510049845114107865416967473689946443043130543217889840307974370600670534513318778082883713069278403850729285361726055639128361675744566429219827528929946802493008340827304411338395886078858012506793005730220468444191723069133324274646273137388216346114922052528403219814765837227298521841273961398727978913982554903415331779858641251671719107349510618454953636650625584231904755951969019985027782480312485453533002676583142481296093870661829977860380003782824540217332048115771037421484321521462809494358156974784866678485861924537929738999243321886006221881134450677542159026042770483612561350296956813671598806908650275799220026636620410157535184128282637592386204590921021311955118360730792485160478002097494554728887520452788165865473830112514237710004378798539982176900863865945502784969357658841862620137261722372484212425778315077915144059633383063316672073626244966907094708582931091945879371703085438815573939240611717785643206364699514283680271405715835039058899543724286146234239576500165497982994293807436657471596963607154413933272843619534376001141810603522424705080728255660711790212715824948594306269550352323444878016815338026492450112619621591355515677478687829166752742723285941475192551357921711582725650734190737063541843615023579923507981330381467102900928746827864459142577424418663253283834396490365417105698032789934463083621753073419816273965859761994585966136857745399803384155023031592525287292600786566413759618943091265567473316315088634059755910123445041507795656816281525411555432069588092656445110454048045054072530649906940719274738111621995723821732220073008704043547073810490129438540867695149826452792128589272694897789984002975008102996621450346114002633956601976946097887957666644627345457670761275281990801187721067512562571772632172453763955680373077980785162412459080606519554350700030472184418542418190978914304342128488144782765130286601220055366562056647690083166671835043564549607455928336816664965338242715968141907857200761858576532069050321574925867884966635734568821034075546666947770962409589837204273249325614106584316370174076054390505361441733976100665809690770146727921937435326763339425562143318201679991347149518198728664208404847527259690582063408308005977515503867870311527432269578703253564028325283282772632074814252763953139503683714928058488771422997646406692941438660342358171635293298382705182506742458472042337498554844499624167528327563116850476149472449055524926066177494201556317145506911421273811261439658741092962561913990187559060767193362255252944523747192648962841267872091235208856212596663312336839471610852332811133654355569239812378011564188721011247206289279739249388956047643800065121041021069085953002305332498215737072582849461569036888787994004765656264402723496794204187977384345038909983371835280582383491878885532162592913006104206833825643495705646407668658335831215518901353270746087377821332970100126450813620595476395633426833050832344726247466015751360002549337104055333291511463433113847225043761193029566618080628465854084505159379805820006920715817912745870748365755342943328675111255006222748656869790678217968328707751344403281221503019608482338432189891474658577913085302622790387404961446719180429626103085759213880761846770102817307583666267105914223826605084027550911729080787892296693943968224157394313334458264597806034235748657642887150117040495937920128327272795862108543293553269218640990035999578107419622341289905370678265757488194905609367670842100134429146678533397621735195807918301396652205208724790381575817247611227883809895314641864499537261112231726082759859829368273589134447036691288417618270828541431960071714814142707258065117517140452857960270270277634283814867845670332460751005577688667130131430988914495528203553068944196372930034403389071854107579266600321638123352545652947448122436203160633267052878707000077173073174585227966725839925794465346561506306014673867956036787814322928118682368599116738942452950202133982697529847558634004479082169364224303632733895500340708528659814227295440520489554916230595015398875293708234965898889611645698587967766905973732596600872152065658762052832502258422374552748902043338096340986804903383505627487110527871063214703014975994372791090000879979819375860969189214345692078972794183460739352148809400755807797525746115898348682191191252938802487467222361228728452845680352357603986279378147112626889917853412505708789102760971954978709202100109685245613208343297097955435506999363378318150022874903370142567388715268311219444417709772725411602282034342838592419828720956198339571790921037165980613656049031742844082793678800112614858221449621366098389934080355604015370844134219547790066629684771063957386238067412039155933191695130053063272422652949074506200518349085871249793320499341603484899088404443209095694550643286162887524995864269512218209068543401209164655500381919189882648900058432094972866938019215751575512684720858244245337179268926477072972128395686477684828813147544534900707347117334785902690769096669103636515776749948616455306239439076263395956455937819324218337635185421334205708605282383801012089867589357274673615818905349722483969339675031855105208869594676609390600655665107024087250918590462460312634302052360556130052800849905174147586243331978604981533365362979232870441914352283245360721934738063987812753650370401638535787412585052702632611308485120021208045376318803104150343937478172246354174644546412104803066844470413331924421587354887402884026442569619640713879232852308982697549388442075406839682692502369335014160174983575398811961285924400833406292695415126363314143749940882201139774819060851944766443720557173649794051239725116019911838551711438255605466110567858921488380641189334866658352400569965565375265076802747777152213084447103068794535889751256276836689238708720463051415602016853314746941219700147528908592826272191815432081604930387958572436819636894597227569886837801042709657519669955034449602191934388233166770789540717705822358887509786106740492844810402585700042500839189064333370357132355889159884708046636008722016356710844660805230477487018708955646715862227490049242440776534534710309008259678117904248042605136562184421825693547381483180106929594189371982445718132829108756840085979369817021940258877340810409038060387304406300740922500797595172812065004398873245453339916298980564546575927795960178341595961986159853100432560513071815825155954303698374383530814325757010394646102239101421952292191115399247409860359939216062792139786633104678138038652312608227783859789852379195235870373630204361215807084025170919120698408865328941559919785867122997346612093902587395057100790492089754029232375715115441890021374420175910157193371592854915332036695630060675972250331977203963861625384569162148525524811453743482699019521420760117682672950660599260573436366827400087141924135417145084208410592418890657656782822310846038479839483730130791835438700429202957309732679809692507821020417295118126962227641085923856391469654496056603595784092888878987570767841903319899032523935770583620305764242676422005166021592135050497931575820350901054524803463928898735882151199231146570233643367622395790787262347647566813220752670899736389925874127811633768202475712726730842297069044000422323297423708541960866554529176141522884850526977161863339982619080997780206963475086772907888500898685799921881676779966202788551880752016777665283107713544902082787282652868012688974602818866760617394719437200955410521201343465665776128337096132526114556526463788758931651123689210964395890409021382717117025716127349352468268142057437935341385361844950877907485215188853536946818232228509062623827661751086227219224454057102994637088459537205518419063404283564472705282205558271902882095399923126760915577426891430071061213708606846242582882474393782209401584168142829582631010772610136227944634607469219267262902177283012216427053561228993415245863308338971307467427919343568800268540607216393303839873836717354193447375333433374068222191378467473024529803847152259094108552589192595260753454015467208336324450367753460071755826019070205302008011617553134271257692485442530227763653331536537522755361999097331485641779089440629674547412595747335157402016467199641074804975248949310297712471236783544147989240134998675994426171553731407450378558970259381953211326620010405699324730980241710375893010369934061786531797251572690981124009034834280410995080280108957530870046340260811525816947349608680290758073038535014144724876879622883445884849087239105692159491318591321016269406461406771782044348019138630575683357811520560101705294269118756931271578150372270780186641970820285549768592396435945988080831924344827316523713409147533550555469462088703624062865824690044254025968739552474291569311232240189883818313235588831359178316778174818784269920077350142409414375596711141901387437790361996195853379559136965117063574689020980052430482883481529832382672601977173012774379191781266306326048888948949117569681228178020839914504588284125512990959732071185490719629522940964797285863283848578281705274306806973976723505416060462791754972726409687718250495274121796532564387782235689323072606483712847987723725439770105069765853628080231757809088583285840018894437870187008048032082153473758596629808076802616800620908600663301363345719450991881838103854803355212388380547301105413796339018815050936299660992624046345636496312556308042220575826907559130633740020124858717994369530014122725721241951993531596501266891171268242777232370305746245435051131995117465950281161344053082475519033454786082520108334116154225917508679253319872400370037209347687147718814136139300056267816939743000712510081171480790355164279641456552009406049964607362671351510420270177635591663570495749355319770477924546566535441517482727743272562903324462735928155956386402808530472871117266567764096204750927598508381840246203780171655186187025232676773489043011276945978320800827739464979547144803823523616829591925123899690040061028914460431256610957933805362181055202207584277544614757963102883193165674272975136537503918663771599536904127415015100244237249755781714983603164153696287601466305442772204807126343363953287994011452431350257636582950522621285409338038952331246696979487780174687980818825570021993764961267628674891289959959398071225987486939463955097550378138027456091329520719091450014352763700854947291156531690429848520172155861870457285078925919417414267161385059160763874244468138760878692242807633366475491298074215144433546806166767569250443675231423700889619850774755957994619672320868900073747166743815775140241423768766822500498759604871720005661970913822918624623599320257850141091501619065862321032289467395702790339292598246165682370322829611701632942031354190998524270859508316818056659025358147977227158839336519317642940359537980627981258578013856690760287605299112487808716546646653612976174194340064114972509233647236068228203523291726378366449783941598448081340341050824745972393406549157115994156090099832628741398544645994271158564360284939904378287381170473891506984494642497515082015733737202363770057021974664811576569598028011693273820629824614549580847351843336326415175767772720440521839603387339460509379255516960460631068000090703236614545789512623764994275231207249488521887787973650782390818926848578466940102592011548181359888284770497043918669744471477140513376116477035577971623529313595161447200152636403936413731097572435374056733322380979651814640354093126688562901822885360894219968956872273537096383808663872727186584699352664378862912808310012786564810299894514967515183873915790211897596599616082656915068367869583177790192975141534974744420588295079114570921655799786625816143078434441792151941391684739240068676087861342082509520208881009978542093146294974704464606202588180644622737679508360019234559374241561615688704705019244306623765468123449135253674133467545007468654589019711009604977426752916878907321101458153403713620692013087165483894974886561805403081030784325026184631329106826492531975611399649663919834315702313358898166690348976885998373123619921968178619280827892640084145690180836047087450285586893662453085460942987324043761935498034650648141378616927007074324224632204877664209827764090512354604356594642645153176189145606634677800148045376507266976938326611978132945626500092240520363371611271479383673039267737627308664289416506028871331013004087186535792188694880700146209306664962374172092141765130052835836861821337191422731287152204964786060198487897222139428949990119884507508572177069113336682142068460900228151486410154072934776542869064025507716767989639983104319076625155371551995665607200060965326518430739264402680794215382505593503026481928554107250712013337022891760841500328460304667127004019013479584214590188985465152779965794903449235848669374132333938549449606190205632646161029030543479754466371654721472476795367657380929340307197292674254979648375369482075862272928634834948771217384797081718053882234302415777240995084158198362463475770758522736452347049841756574959066862274657302228984282987969609981810025524230914835218931548506119704578054835543482155837054259215601156488280262418912300350862986843654662803866439179081970132631098035102625604761544043377939929497550991783210813152158346244942961097480105913341718669511478965415788371037585639798028462071797685376471487733741252880146965474450774782968333872149659665996568363992774909475410261932410724528228123629690850963645561663389060220188465084048949070239018377233601739667395390973267205145448817571013813982523261440237608542201805917018991604110282878132591210254530304646740535016205159986615032449069641022772881285677819471522147021169694763429310244091304285688362821835973741462866540216666588435604995149255170916780914081538313183063316426839815129023133060782347591493992010974627351364635958077314650923415581926547478892099990183403566145833110249362316955523101854058051869201909425899454480430530545344218469964299600334629861412652011768808573297297748864765030085987596569261935805583176668294967484340431730900662197872409338735628101465659071647663722894338480109078705483091785791856475650599445359550119074318856570996534860612106023844563580355487965259110881702108138243648662699496345602588050759796616774097281427183283045500450991619320814273376216038815900201629020052723622170821002114011821612304594575497990313866335143090529727645592380758797473984041943487660704614797722612402915874094431645608928736578839094230857802289476121451733164178624965060351286332901867575658824975912607338159601330029267894241598875856449394367274070258790508265886317282718385011481140351078728665882845173542597129387002876449810015197624900662840086892836338081885105462717942470424111438154072777947286231617463414729524447603932218691294036187091497172486260284721537027431987497410046359463837355710724173306625760367354258328143450796387506609382056283593922957878318629505161570321978714270546963571316551324844935491569620804096524016233591498575396638818635829435668727748767905799933362397213879475670845211998078809525500724340081300604919828678428497543478720667602004995408916621888942247297953595029864457553412863230466022476374476355663478477662343890031320902460419912859360840302232407323939398970615023289443513028568832475386553170706654353097600232024220007206429453868098225454153770932967372665429553845537235400248422801535022446898011593686656480749324092682465092829552862665026301685918472324652561485277358024785843392921102279186024537050361921321598846744931104724027679722989486560785346751944950377422828630792210766147225335701953129093949481204567288000250467885595984274319178555792552041407202326100350044065254209412238090521788939261801646857660057574216233673877802678553598638402285397173365926335526240600730420947052983378970532416652078398631378006163417745393156386478189239101016378042640196038860046882792305001743817945826837420767173359401192639830099566638991696745455852894565327082392535849319446945164104014167594239096213268729390516507957499025398127891061692563857643198577303030968314750874653040986336539004136433433639674414964599192764755945617952311108959791903120112700129479017476417001945596533174256654125174670288856874816552011159216090088161840138410927402379332027485102537925159540053825471282365140942623669113564555322724096793516470895746906709171264686697219494940346585925939958342176649746285700005922511537934287956609220022779242140997717687452870661511713129906306054119570948505365937675642901380440425461109830532211573927393412931678399761907722069961479410680523660629922656958270803720251801943441778622187745196312871432904867231738073687770080000457307374433648688607022224961844184683119668156745311125183882789932582177236651631569437451492091595023826219295036372816827231266203007889742848514639620125841311666290034453605799696188878630061609374258907504883092364387940384354152349207621883338830680788353473315070138942201913569693284732542780383060155080911199065889196056839059354491063690277552817957671428090133829091418064399406082050747732329288263834146096894428412221179007338027273731246770590776713543074855257886350537421024736316208702810428986615977114304141947574456643249735088632875416617270274448891105370517533006780551873970078545838802652337261611107187434148926907101328732508877745168052247362477004388200964271500350514136553221212883222461160932511611385168637754433145802610125259261489058065676932524260228858146478052574098979422323505951379554329841322409641763783373536885088210688233323525100321590003515731804488611923312696993979641218511868150952984255197244977368541486280458275779850331073286782412150377044521967288949721490844536298394093408137004607941671068258318885858523437183525733051494865053934597799577402408364723553947839980982397704395007271777839229325697275498953383139662370047914857268384212692372594277438475337229435559837816862008080578305316430131285537436924655012054662482594490036321540937587938478506552356699581614192308592791988426765822196698710842468381659551072532008772447460424846732076308381562759310237509524942196856102476807908846649080174961416681762001491468333582703410265521360097722860646267311554806911212624910196952488358209845470786716379285713435692690222186641262296715118807402302293382590473652760520013524253926210679251715296478146789241229279297837209458758205033535530479812214817379059358539223195359829307713464638868790669787732305161783885804443410386615709288061330290050076684690517178013264231636563318420314390096678259573635382288906883607509769281555087103770772984789771659640311350863104852290454703009695755576768531763458592073128262290587029638197184478511432116863440633674437637488495263555262902840453066966443581390332857635163474001597547065720568224742274322756963726268881125420819172873054525997177048669664407499591263638259595137789108640729307792453560147051576407521142423410929647735898297403912620551441928639635387223315936336410517483043439057659480522151709495389732774113358302611793829343226400824791828360845372594463892759983905125594979628849291350659612675967150040964019165071592148950606528825632655974392442659289015221841666469306581443817892608005271311211607451034933163217089663711655293003781476717168539504376248788929411288016717428655182306303512483183001109022454710575744077206703740533570533342034047444071633537626481920230765611921351533222909410042819364483514261297908024536811555452335026858306158493149911341249166914179636327755191794663070859080807527951089385565024660840922331013062474447473526508767785611802093984352450665143027141127727791051461002991530723280275615043879032231798359938887017939468501527698722874054036504345790535649354212268519294984825297945948172974324497588163264400807442651162270835683511250889714465788518699250630883330298214170623807115142536375591497088611642534157690610164814159104615622213494086460550440070561085450036765553969186321294266119821380351481425028681242126823687898654435201946126145077273258336117985350270680466888205205782032283728991982443968878616830269893793043364710895842318331972970093894080752070620952970854770341067396114572779262144623796282913810783666202610527301838547881131712277156502940545121852218424952790417413580823018249557803359596790184573362318218070282065104057614159036503937583201246943754448747915612892066188068959092448964851409585886508800424910278568398745523819063671239185011666519373010836234131521063226473338045693959354433093977912876499802296754080894828827248866100380946362606316905948695417629317542916538968820314910671396279243649314110608136606505480479519414158663259262048272142883202703850859096320428458048846182496184254032338511167791606064751179788594122524299184713002583383812537000048410752314433276558150225056270896256531980042614902797577052443779338001204646864475884985612060892398517247594924759728279194426550157247453656107351813787577743266983073389646993198009215755987396899489055675771629715568853114619911838905118552492480629094629987058673342611137887313583371410933070559247527538585656802052781727933021161938411680072584771226214641803193321882450383220864580790038754838145282886725440288260212071573916731631908601331983515189563491598967527648816336133929766388546218600139278023339928131930412671771283621825240037600121035797898788921261856884745312715849797000476136173390409652047953966101614481308973786623015739045899865266259236267614560608999515549120047250805776316105050674368654001230351574323361519211802603429489524785700619234050969982909736347088138884873351038028122636495359327268908450076317393507513723960770579147375097872088252595898421137890935353994409671634477355934299197774369475156809852252833078750224472982212235742022529564835164785791288857074296149858376953219896780317628407885199305708000396386727506665036211139337201151457841788588725389690956249275409634640369654146839825535232564250065414518594331688419792686417438915064847056497879388210225971605838481639160575386744795306579917849399264194157558914606931307056037502840160053288471138326519501116566870489731196375590524754618983437509368843112407694438530365663789816103029819696001089096653206635340153012796568285584136029377360114622338100847558821951996089625579135668388421236188136513930886458795875423410742838715946096002180095777836481264705854489051817878360322769199798829810767368066821724649676095232449610220159827220947703911499663839836333252172465069042042707601733439366845849057223351442501836004022945621001250888717021141784552112274063511927024665645558151478360787900989205946827069249094993120664037543882040124142494626762766425490640466044447889273775726393275152572511595896518918039817023693619402853569258886870587007381948213563324525770744140478520158126054322756002710180891472401719427275467409147531594055923617066656785126967780694320002887975586318662431985212160860158399973735524984447293502645907030950210381237776097445252518382583436607313962979454510373413972968382330564968078758628425295315169509108661854131901792156568930917313136089419235319744313426217878090211555518215540778092899502173004844284908565933055510993551476262262148260598969967181989374590321595929100059974522862548139858734583678709092710434593826642485616918834645225353842564008594874844497046250073594450346222263979425233472593628075651413896834235919207156254901403010804349199655283886469744839728886741426454207604012448556259825398544066319612528945697999696210340772727936925702782142579373213989295017151439200152378538223035800127913023802351262731457699265102621541508147605689960000784935417533298436875496200619101092823154692651681890536377030994017198929134002725461273233946859245383412732604951110660842137762390421352237055556859693588755519628239193627768485703111007862825621142488980268721434623718480539161551883231662292011582800411128309747648896806579007145531726591721625040974877281270219048609063597318717974534664277340313056712152680795554440661630243637158663174062032056838267540505268737701095625902544055386600178235190260475012574087481337337631402904942449881804484419252911136506543115246034444034369207206210367990153313564010496171154118552384038425879291388885872201196358101860979063617779995449735683504168717000057797477401914104187176871326908312577440455158399770966370094463367698524058149574459159382656233728342870356489537010103890878632497472058578486114901104702232929648552305680812694754147323809821109233846262512473929193804872180695717722580194700679869046056085110019979832232748264614708344200507094689625259600008117368460875597941573818644369254428412714336224839703033762115199656408963892286044042996680673402385291149658926364632913259684856356103301234110162835825799933458530845522132837320253566947387468347088375948702613851999074451021834067636885736560308903977562557047448993543795701390681365981531898860026714459614331789105807375588939692257180025564872025936515942562859110086449560822418197499428788976289477304094223042627247991553908351075260853583131507343202032374210896238748483944404183514898056992791075461591883533290584290855708668697282470466170342497909880974701338205570754698613316194877923128444977309108538218239795568185725106271999174087936488050422552785593051661022386946204728956371366415403449747182795744328568159701548173322800369443055483752982127939507569111384058275950367445645778026862896172956800613021197277736559378520478067686317340821927334368200401642196545450099769667710611775804009667272037353432468718817720992448863148075429480847812032354129414869178775951189073873470691632116295527684066344376010394883307469837968987669771898978824794232616602703170406180184694875033176490724932309316151934812080585530761978456044200766040938321582477744919236141660877603322129138783360891017053732848833136858141272073819381131779554459349371963844931842245432722669258101504763090108611782870634093339812851365923367569501365294770972191484175705944357613891646089665869272911903309995444997272462521272445467405434110019737487042548462189325339142933038494423568381193162130837619808027477818594066288977936196441895127035071198650063407551966681072838991677312080859675507613282890278176680474353899984395496600828065666004756798911400934206297905301471106598943676554692895757996187950277382703131517902536895891856065664139132464197654460362901221550035222922943064846282062101000833706893643071731626442032550680608175512686717505787925687547549397052954830557012552856325265133269128708252893693999568473380908777688108671733953493559849179626310780561937025689572252570009897162483769660536019630491264706341139081536662944319093810438207207000658483520874773248295068995663548345436866974935826503419558539943623327241600748007827497885772824135962842099460682225500707633816643239987636207082416976590700487606814238786987063520392225079696026314771642802242986813173011398587938881868300182000111562548734811400031691271813832270403406512968942243117748942281080076272822809718801645115707371065515380802404854687025174854916400287269692150303629750032060998904210612141104658199463783968758911131046541538447119992328420635996867498224865933600901444517614303284384008913710390608274868595877821407528227959400963313807716017253767647145282707314995642576644253263984189826993432453304394995942125287559488784445395639039727390250457277460953192039352892236390207313125613811155205045138556817135734337482984677934349791701497385276365857214883620298477967373973842119286753095416892818158048667349205995009848269238830149269494343286620735567023334738374827133658706995432563538239049254267639002444512216075579822562789268181777471754550213423022228552548646495242934260679205763638857518577883668036962375879590628914765254703131567937178202446022123597515362860887657231595518400367350599300354966243846695815070087911219181409022473180916524711036004934863789112561250187955842187127684495663204418700845132788162285092061628117692037228031132906554369867616104465486928333511039048786595383639198590559659820321875388591556120235407187606222396114579239529341932527686080935565536427597222784129802268755521378103379553836985338337554106956168098480803261330643590657958407489572945592594506844265573840061277279780355136667585027661464530132005005429543957355777906255689307115825889116870938448969080459671826461680105786807981326574056151313256882762747979458439296109424134303923661547350525152698573166057992022503487200460364377640877512790229490169034552369893740179496887169280329940033171299606435737850744909315866073441405287415268858847573975962086590344075397054089545166630131503983373545659531215437257298145227316910444486367486146447831993212280089799587217989133545024201633295061006598960457082967318812223344826454448393023199801857904590454357538544301919899346296516841448397801618118442471974290271712917665309413799083628396580166599472592881479546048564601723521891975306036149435664004211620132921639595427029443876873462813157415896978927238401841842357560750886303693662616036813018572436991295639603039201652604095383963313529615145213593642196540350313152912206555989790204658822256315739977541501802694515572373652327140352342111842319949472075517562737427227380081783031975612715532813505056619990127351935597081430067108057615071425255698144151037157754919723367759993179293084594900826542142137784981640340487187135193853822716062217468183146089816714951607147102936038622979240266182297974108457588324456850648071034181624705681458353402336033561140162715257538600058751232461051530477321041267577596193753510663521874635540273405083358018308205524525413292014513115226574068884367291502884808704389175189426180602264396101416880028865072102366506460828206584252846027070489233274578579013511734137616596918985266164008310421387192728815502671162761737168137405566015066910677352111883604597922457157758461717465021031736781636074518948134320050333540954011501602199836216508940263905541980583380517509038746821165752808615077820606494473304336437420721778382631696805343506890252938639122977639826431966978976153383653980919549334924192412795625763652986682668228438603986213546864494311337487066027214452552415062106612845480687835070522043144922343495712965405338286774914002280957981109092417254724807943024697548383932571373382528814062459543115421163649182212108767993088209577927279931352709357306870711279633881779790346370050373338739132829558442785598228978092645584069716268532042261686161281402576983149903861463838893257491324515586375363123022084150374176312104562648804878702180978410686778828661124232953294387946244559543008424518480701474289990891812840346080665029758257526517556184099942039279028319148952679436737782651128571713847087044086715027921460739460595030421268826238790929502331581783297442623535990316809085745519410422923201457461421199252362465827124129258146614289338959212452570891010565560521797943469432015232957994895421090564114419686023178002294819240882160126556852204501737413106841522816195699433690737765324597677469111648660996880909105260646568752556857939446857815510267367496562540403694942714933099485143492663503259838052892674627309573049615271030568723672325184538873499368298883975054580955522420041811860553497439455653935978344048298830235479502987098272679529603218787110865684762507762251158199094593966024976522141868188003864825130295877247494420106006344007546312243168581278770924101333585533646802285705881844806914600124505714859017925467760440821716676453044843253500798947082154617867447504306517395033036205566850522465923597160476653258951222402975106482357910084549709777487242299311313659901050265649539165038554134012448290806588351748090358998358660167355307960407292167430617163480367957177146273665287147899049574222474192238288414223836294048640311336982671612060899049445077615641031119779968170310159397718138385992928810856369614533736620022739660038417357980748820740289312395607593707853421965419398360945428417731601768539707668643961086102074436611951721323768614673761813619572253914366840876459705126924185868900456029311322540772638742843838115139812958773573745056580299961904711925093164758614888300851615456773152505196222856785488528511791909553676272041726409481798507369251592594633862526060517568155916992315604700898760905421604016606001217753554664187371693296207904919915068753258985016688575251484830892003301349782052136077489233749389922545820418919047576601943329309198691529386701055960572160771220119588320511192348964441537811200892976487410540186851384953493192765443078291518637671046743282435271159487316326921753639352856195543978545068557545568062680106169768164751167584796249437796484876507258514621437865415780248036275461344536533705235587251128961085741790208445548836908429828933077030004569808627583172068696267382398831786551428581531093619409313606987647370621601372236131163733296939429183047882381144445124062882351096914830743405905366330363680774871109684752240885775702392139086453882102487234462823041248733486422448242410243917049701382300512536379838801208646649766517968383342456000056107598560677474340913910646430263529021147327241159113282596472208265645495658260039632236292616685812611242136212099738656937773735147671973874419454825640988921253364712154070383687969866303472725048371087921713522892184265018203880667979303018057748790961502281076077955396556378142793720603135947153713128011657468323601606208830195605998316998773768575715241850391283369188942562599084922807606251574616886509567632353561000194364701221985056578542474028335298483073941007716491240087550999062697762097864549867239621487837859527876440196657493897501688700391843119584591946993836551083812393616120079530846388663068092100677418678458918935344074288554215112831714840547792415854934427115414509795593862295923150988331437847163397518614106918434990279313211736610467803123669044092651806044821649228318029226629016922644789776979895663773806362766193600442475057691710911366520790248728884245033109502677239098409862521604737873181365124436724004687640768418958510071428226633471292116152410941124840736906338351548258961270474263721394045788310278400197009582984984554792369789549561236176504210279856224167971220899181017913560097251780023303016934915846455151675090382536501522459384517171837702954121259838156403272103535069346745865803357310549163854314748689924687915962304266733820040804232658378133950099702385543606963633248645892023264605840447834734206227664258564146408995078328388122201362705423936080967132452502694967123356204127644521705443498542801720345296196910142523035640208282863948427885693297568751942161416329995957859749246528887477090474466620820155423529224937690433798624682777967571925043048146593078310131103305274326928503157137179310436028082879232004980615044008518688931789797994689783786631264277756093170722601212922142465049613339030560147452271077300257040859990942297089651931182148997628563884636233979337605261020010700682063978441444074672270051968252624773804405240864416637301245117332536018036055412093480238987114857331425116191311952861402190094131118727470063408663377863233247476597142405021711729041916764615097979256348531860678092821071168509374190594305547549008539516472847176324917369353770280983509289678865624722702579726055488270134105794726000459025501046093991766853410833855231316955403616426273147875107274541749746450695029130330602229054564338083230578981461322575582988758501422036711538744548980423226864894887954542548836284099672608308910584077865947073277181129472612587111348465622307542615898573695571125106359101215057118069498384492488789523976193998657322881266019424872117777689344761276722227260519896321181831166350224915801735119112683258746354029332327763034894771896719532424721157303896232173446800374640361781778043116457843818393443917581352147302171197743945340709202313036859653894007256944005508160285811017720254097422252714146596223308956719918923541842857454761391358651176603593732290366863914256442137353281959567078119812830759480689943561712583176894210741046050023251727119987347791950685107683775874672734519588504710390550247083241665847215510944592451739526601038707632856426857474188287710432874081397583251383087517506832044250926951384775903948645277864332775784787396107897048367319180208059496480702709396468346818912785404034804859001800027967937730723362627897360381447066174837840694482902619548939765691224401709221727487236445126822474350528597720474621488785949132411076771095356433735827610450556926348064644538931176134456797007675658651194434602285323428780013292037180090823011132247117267192360429700014033631483733668313160264240185819856774651931932344263580786428251095817152979171093682259237415803721987829014696380896550904081322577030676107069765234946597977250030003209971870922031007872852601881975840778881778376894898031490053147169842167681923048995301617620320795706809625817993538033563581904060593716629474166420113244407219083456240055573296663081544998410072228253870411100646229262608346951973665785397749945215043677540450681024397698012501828802296882315244768397234246549451769516906675975168667600345845830219465333308831670231687638772055641341695724565116770122169353926322565063937224587252230577168920744377970316074019994969869334129332800776497416044873345990508142472624440386631117493960194391173200427045583192948040639294051903157880903049849062464417487859883594559070183375473291494099486017421657893409798948806913917833968308680445206599709344097805294048122754332416733967497468964846774570910133963557761043260560212615832189728114376256243595669068177735911156728879070779978533915191593176404336607720907873106264310910468997291604935437820820136815927325268743160256382601160585146691908050232277204791037816866733593984852517804141289382433673396268246749996131925132803205920837378401235956988701509430495810361176080745411790440446118341084271200633005668711806187438464476789402448193880745730326579466971482142475149005301045124451805163760794744216712293202335087084534438599458772930606783218067716791933265518209151104763881363606673587146341580331341663546773721988669360646062464541801382042640473136647258954690935234710937618615149621290402237508168187025163867225041964997629966612403277806428681587524346984256402876004866082941665916668323543208192114392380908303957965350887295385603815159655954963644612841414952370678707951196889249289063118685099701379576283600939593217408900865084438916871843998074108120688935459613333620813148019365759268517311031629048058381489781444578546258140615177372043760795122427936019165869100219449247152540422006598446047462089595518753166900769946362657594584449027392482049294641633804255435918934839756974881575279914625529863668371169432104851732042758767475958753589866088915610489694048236720868112565551723661051621523484893563482890512282405688769330805204895018467825215011177741136834165779531379401041262099338281369505649567770177600926731591631201098632507861211427081604555652241982341678993509050760871101502361718449741557048271478077270971998594521023614158734405351317152907559974251131661160673722693338805295965177777891763400894532033463564049691667130811794758164178240186124229706745473101534032192022405189845723014027531667786652902177790683079658565670132249894646239005505436270478617040932534859923898615831803511604793849448797176333544491265143255486908078022535256043975788176368596704210465992684836493200355092300398970881105025453640940045928417690979391664225695758289333055991544778638221211129498247041593231104043450854958442549020594668055213319231748431232353091302579599453064138369036884076950465102836701400999076002544963168676941171568248837974441389826423581028653588980970395482663126985527996568619886087564221037720431815082873618869792385654926302583796018020193544798370694251024922762008597007858543800138824813741181981925881447921617634956970698554243140756804761905856167432705108538409589663084975093445796182161301692953535189702102616676534435674677768814727555366708956199759105217333693943483683670449905361309322447840260180392047361992590720693081798363323932742561169130255168415056810891805270295441672511614328045058115925275002884732809741377224569560091746689143415168232643427598444106122052417191508381348467343067393539670309277111667256513442928661850551814501963500467590155861672627266804159045789652536009291606337551985175955152137817098273474838457006299324579531336575559486741214079227136930961902731081823530748016995062269436776470039339467844819323799877346003926075696347811352968159039122286417201528048609711176043708831844744486958212843885742611520970131628447024504012600801256590290937460596813673303727699652077085494024501300741828204758869146366345660985635711204463554650285904488367645531393472787987281792501990447688639926266789779869150549492526248066174348103007534314209054329707755739865755429942164130849507054543361122195767547852628693236372191082929211421790811372572144440417721505345661304236142132134015919772235679057335204038804797989971106492147287596728723262742751575511152329684780358826325221395893338023963856491450678441996781437975706011502242221062451981952399033588598873783023230254673935715114038225548254938463107181106252394761932765014454270687523174668445985502209334605299858166939386920474038942222384601635798660768584465550048816631913620733381632198080358542710169405763856242126240771759605486924952103271275246464819084746109917092333334467275586168055052477117293484251180290995840981840083136916205199582727183658020531698907879446995296618387830325780854196425252845187589221123329861861570518316984117615439630172436969825215984913052566120303228602928890244950208855824603266821484656167106734534343527032019948827309854711948368516977965005967598632632789707936461153687643424968577380389429801138266478820575952164199497292203969499863848665798751843989378502659563237696065140246796176225027314610401634670421299206171738896219528037583079633609943546465617420469988960737452945698387510001752706998184129412931496352261420908241143898948937939089573931594822095359957315650484754299195292337396897891988998419923627066802099930301053900448994752796370845997922305950072078453529380210383464618266357239915469281831559231943027536343609827913139265276968316719657204331764428848068556871871939986332589592994914185659090221087215365133685840445977712653651396127035396999110177560245747911596943011611047119449580341589320492177130646050870010908546015121523399080938915113446708370932990824331905694232740598324793051124564922971184505089595754176320986389278956913693783281576136621735055216923520219238433547438985652693636003819704604556261590305283050390708526919881773883965912428220916552374646727539695208147468416663853274735439223821554242756068793833913998581671427232937334270565035546790177087997666987618110201915471515618208945788530534596614659511284230960312402741207645727791807654463951740180872852176710397277485201315425938897346422935014807343430078489813405028243406870248933126532713945899556874787516200198729630447542671211377161088494114771879250641346694361520629765043731475813185334852646589422304995322876646162104410862934102885995931598829641822078409171158647879692411863161366980511049529978921581080671019050589664817194365031400344902401976562953772258612780088125105937268290332222259343701531001753922703006573090365726750475019587654190576443989253605894913146281869100168060320933422309121194081502044853182777604735095225080373591104215654767445437949414306150651764116635367690477013664508520489664139151068699183419466392157675195750374706755736748263290889710131196175763601610339134469607820849443007118587275397375059555432081227440562063130800595703782768086466477347430209734619466843483272760796257917581026055732364426843112523746982697736094565501464278724923457002242978183709558973849720566763624550412303234840447366573648365288467035725800512261830195353612358576626068643523461151727077442331203725714096475598855069094391512283413344285230732966906613536082939531910354857461389544721335227344195551182287123791718509043220579373559100665359912287552825878204677966571333660559303589247425898986474653275373570402517043607567076990229643357528452419061444899696336502502463807047036987059259139717447306206253200514065982130426656168246796912972714372813759037240310538983576000964666619946977938068376996687037073965730035385830197371569132158757443148600332102310087963598817044840545556297998355028252355957992783730401116653932625580440431759963916422969036411826894338930443854740533771962934590006882278362544717284640146495963735631520378243723753439566406513798373802134104844719557361512644923580554635223936743682645247297093084916207360139917791019816006442008330544204459463542940595249565017804099472433047964015321278044574949000207446241200330395684780384709210006327374915078044588077197984794605080771495292961206641411948929734621784300759839007397010957014205901291761402776703109563374283883136325425003859041890267990907275421119195715199223888004318590510840558189025892730106463872524183130721936561369406423929589258384356012425078171900534030077076712027605966601746931318011216827306090412832609646330239826441000890792342722516599704669023291140990194111493124501850202389599189591809440011435258086475349136704515856298647473916684459840340567018921682283544865158485734267071785522563781935326442655757128804001790804971788192422359474488939402050084744926270317054641579879400586979157761547996582737069524909378484907432906803820386988409586966300102653922972669542563218474193996744334316499735600254096187413937203298954923066224448445083613059284065276518044021304125111300636324209460929396413065581480825370587731120163940378212908130969952000201864306349354332166398583756628499230245258958884643527424858511527452389639324479302550211486442072117465085254538124521252383470245832056910385744713192316582041992417205541773573166477043543896848953655713598375696836737593023971556491928851718184482310518564536609998772658191767049566474431380745023837679734873033927437578012822789779324503728462028055373300653652905290649232682579834088012085497875912082072125073115980713500051483199067849978811978485379033244779813414326282221632974636564872295654857708798852843263377937973796449586200632369489772751673097368820460716591408317003368006705956921376391409724143436326239331016911448442753694109273494108613282602827487607282262273408801648419140872729963818531414992972409121222412936978504150182209049049122940463802876166200178655729601817909917481460589364456116971173988298181427697378603190374245820128811172475429962712442642108256419085765432878621895426960230006115184192195932187486590966407021249742497862428017786799170053574162963644640577200756053796576896395843522834705534487748143580024981557267241737554286512039902231323141084142810680863197174609356520961220703161075642313523819503309544185633425084943310420571189723650457043718029281946561797053705693129369514115455865672238224281141198844616874663812161226033559664757269539398737119713474521768134560490708167724452652934609528694904752596778799868214408944231442548314403505062115045902086621875253336706347742568107484387984492189500049234588407527299014659885939999660128876379213346426381003765870589802231380522732025374498168613474608461842471038739425129311581526017767948300593535309657836430344415883971783296119903028884786573969711033129479072632772000391421142399881178571187572586401037570531578195658623440875631899691269605751247966839521398409146978383003176764025590634219192273994382387580321644759635597311980312761267272042738464313605791522072303609486841574172220689299688669707841382994345012387027039135142618558579464119297831950927159790743032890467733038943337147403330044215342516380776503100766377299263105007077427058892486523202591374723209664938728314629653810224320309276656742053797037428106767948837667260253381634699919220543882743751067273111582592325868770827481041343622081749649864172822269729016819863535899063538498651128436678086892344770904634434943170949429253529672934949779963543705475691774042607095138637215451952166310015079135082807444660054268123484674026076259002721992607121741941821723041535375758517481468505114245755398605780022017441633374405059031006369165639184226685111302046229940509274774828160263963918075936573896228200725644680340965288027645629219208341254569831159935887564681184286847889737941742630981657236256062049666542307252019193274697443654195424219532076975973910714855030310749842776127299744719832977991248045511663272628053761455823211864612554173635175119042457679284075387258047342805204290717782618604491269714675293645058271054070416222595751949066780220633706142946633677361891024820938205453237727084107574853909579250722902045706294455698938160043641950408239297370845424679933378124717360383690394782669323988755016734571609535748279012029567655536827313540278654830255467920146323619719095490312945018537184085199988752961644165508122103927327034842825254178328451913378822238336849287824720908943459265770046600422245458532399959993215610056326799659686482840931990154687436400189900676842080702289017641829995467779607072857465766848038039217724726900446744275436829381892491263318317487679834595842347355494457503558389931362666804993089584846449906265008526890851836495877145968789756199259263668235341476616212315827336119476982751884672940263757516635444770286254812525836581368163819114542047537784782520123195003922457117288885658575593128114697425050934229604006477705800219018485147427249010110233978727640097442781718262259161810386233930140057574127856178813886202709100610797520054512030108291405201161954901909516887720050280709226297744266499548511909471097092180495512053054769563177127808601476777579877407327265028841155313212502848573253755598233229911128777996643740305326652363177860016753763703908418768437070706704513072070350981506887321515467072689766378478819325462783895463402460754461701078512636782966412526544964242054371093712371918021477889430667118364471319212513041488564271251113792597132139615969547900575370362617427718977214090036877962985102918123494609872948291194097811824231236733835273883357170656753776820026700914878037841386777266113123519596858292203783168312342045898677363819077632101835368485259989676300936735502804226193590220331762026620378233462793701389573775597935285655713158102551859522340208174830350324408762241744250580073169159982578643931981148225360814479477848026511599775952698919896944765321845761814249531314391347008378069181339204276467748692523910373774475086548717716090554761232783642709751553117752438115389453380750019519955366681749989806199850563091435704746857465496833380028126489105916372719083035032670597475890031533109823454252359706774796367327774092724409402045833495574326130166623134603058885711884457369872627962733247912845146240860672981577105458988435510318643249155466268664972913163536486903870603295884590070911790052590033560736351931635051213882449406259613736503550230580002035460637893562658455639174382288035179213852075570994765533881949835413246784513709112888969305253099709438771409051228390252839790142144261159999198290645830627200358823887270469342151824698115535805396724503873716861708202507044353224980449686653047934605671641585315823799225870360206009752857496957116120417040807959121264393356199534172150162126753766043531300818897078993820236302141437071411352373262226122171356121417554270375126531501167090954038770212537076605871011917035278606576428413643301162079100995990380088684442699162349172039511672396379596940439314673466592068309153718213737728554632645945489356459298311803928502575351354958674587467061568191814302146610085728011319299318492187502389520693508212276123341704990760260583900373999640194677489823779270611097180308759061939916229589842415871142415919093561446976322661791633780540961624957541185892027699404949693506927994646525941030474931445621697259017797662541324365535353438388982417029412633394440088146297748793030521200184328333144038713190974566987707949256615837048776516409155466346866333255909377846555208429669577891851985867241546270380341205975890058315547520119377840642569189425859495709782482881134927768070595319364875364931946317470529413048243269074174896790607085395584640569204335133120106516170107807634161782006372846150080161052579554188711386093467810281436792033865174123793513263472305035638785888726691560404746653096284633219341580531881253254978595463976558062138944349193058142341557445935493566324515896268744691058492534426311589227241542093197963271093089825065706501006973008219059103791103238184241901001604025662078430365631408222604540943399144346313149804735883172515136811896480942189626013688307074536884991579771290870485673823869273786383973167111015327394388434352446676450295501292729361441886320434541518880050892283829779506096521527307447758656993953783255081227066438109322317124556688206396927170987393945496525178704626525885729611872382966662896195686858815981782239357005955924401133891807076494910983833768412110786212341318463632361611356441162031954979096685110725238212493996417050698027302826857021656934343164232025814740312932784460202109626262708888892739631779100288382825638407097774440698575822385583635162364148606179845782698035585049712815516277345497109108370271962914822084382368056639930403823456141663688861384870597663097283058899281044467603443983815049485602171078741060595965410027476901081679484613786577001452571597267118082063268090011413439164394773396054261256003323885799363272799672000335051755055050390424287588679071808304010017583355204115182877781716306616542593068070667636305766966354405777767011484408602339451548821077579356509176348655948546389381922756690709139448878911645959615297992461439856143249892220478854609276246862327785519514084604922494568993386556063791318670896715075756094970397059291872358688621513764087122138270918293110103012613555211747148073442008067174600647070174428482409122778373533885474032929905282415248938853119921156685094701200025637156964485346089298900210531993147571917812637597382974511147124718080569486019067126072935366638917484730077107612681281150293326492890236510418411413560365443905465356744105168925626091709308440758842633284706567752768360353509202200317985894846460819154798383045686425507344830482253123014988339653456248497490297733740865973143561857264491443569321811856238407703175234025496210071827598861095065692317279959638544224867660520882078791733674722910429303026237373801609841450008266301582253699663283817278241752941868498617509914844912289798899039733043957743744911543087515444583926611197019805525100479979997840690177445613445947793038010581064350501545995902820053844741337330048270879429639939610852565201552425456775962550123538821833667165735544458748988005252334042590421951928818894453243059972287874471448637929110028623177428292486264777802328543127652345281342787994123369805568512081956661366824175621965301918408462345384711343381222238096408046871869852998782829927850612059452670365164216716184613765014647542510088665408408939083993746534039608409156015831750871928526309231837897731384353008885356695621020109010355961763108505070494869483909709845791568164006824017353535556920414463905419975101285708558755972524511610789075540402337388568616208069894042691210519478861072022134234059305488818451212348785284165832019672006807967377554508932857898736018018897525159919050445914991455287130739513614920391587470703078904408624561134925987779593313126290476752730159463833866453209924482706340974813897157266243693017955790022455202358281118947611353903543744315811844352084221342790421939276623397411490294687349935595971846538865481902648249928336125966323779568350729353835661951720794700324607164146720422430047388391839084121689825140041553999675547167028359707907217269600060338223784275263398544082499951318904177625981589596467245971100326949891782973972501271982839210028320311128927804304021270916358155225982285589156243799665134997637733311621934136773988979329527022042614120479269892738311085934751620386161274634643687036774293531086164290863082893207961770461480308695854089669035445989711339842746693258430776427279888581709427989026636770686189957729765684197327790361650272997672680189803005398190579475126475984617603581827858032338169503918807026134117208443410622083243536263519077166461098547257629543988596908343043146365717859069787566145241716908829760934368746526378939552087921697457878987136646663191093568629566714179392199437038386563658134883733549999649631162868359123754109925743267567139047240815374030975509344946463229881789339014540185037478487825808476848397708820589325603709399783018042748919290323858252078411895366938492938874455350180590675645025286956050849718361123689251979414431587543676244982328553875142815494320476606568729633918041496827708094753670791549525119439651983586817774007735368460121025930162933493199281701642119414277441953184443022508720168748122048074306956076945500064212738343485512432432726126025623082741630656675968679746712277379514160062624152123445195919112528959368458084163353877051225617086716913217016396638114471827211725851476778051539620749165622807069154830865660893682518811550599677651212079392584717806541551241898247046292686028780702885677581037684963316851523202178789777183815821370323022693769331073762531082480284150805114369519613808742558582170244033717463143791131440897658202464722942115258219213221914925475299181776374369713411524084318998209364212300621647856329195742153535957367391653291616932756682044515414101415306955844502041663338929209844357241001860738450912358622723610963110929117565523511323603847912812078123625529251384265942427235664480797787108981240870822786568775613984499258626202190258451017896384320862428632343107494527905800301921816180877506499772334109976297481740986901092989235285409208361853610598046103385628634160776044204314229503998689563844027315103367584945666629547247031581451043566716578101875556101969348867646148562841744569846805695157899908308604305822964193708054737832580788879835882208212414418220007977533113224603735688695778344229426771908463238921502039577734839519267969515923021526766327742176451290639682041690422349320048540932253004441623144106905483723496254670199997675289175901749416661839005363094489745461123553344071624259434012545565737740001837941823015944347035369762040046220236032851117956716792540166861159072634051671040080454876480656273381276294321074512470946368485422172912338400313205768597394916368495014690340857578501533008205102623165170722042442993481292531778353489659778991963123147834945672484344088467916988452329714224968139697103535628144827120415800758054855659869208610558818573000487357671840086494955459075407082259718232790068947252313419501364474873647798992385885651784830407073678460397462811934778525334675394266106294188735913837125753968392672244881456720047479744126510144781698739832664121120686261284283505513871958937202125567665403764233903220894492461247589651276629769157442912276996895406513573648346405522722863103435833939267908400185298628718525169794221932102821622459999068421399001452218049247551370446519679460718367191343203633803091227634591327972135043425956114918476875133428273403171960233628683406207137179941833453724283873421379661759974809613711897403781548582499405788184587765144356243746794172872541115310538230799832638786370636257011299852514931753793806222981418108561765307575405863939824734379902968579603862079227416168974858796656364115506206232889645722766219580461764184523966276732011273342868045844156104656024032051386926645950445581237503222322444788011309033455810564190613264357241115873466622541897427071504302326724504385401711019873204557094513403213935801137656933368380743246213645803994159422965466395086864869774589967039846201299655297699980353791061374795737945035356940991536805713121446482490953553966406167175069967024364918725522581946400107296245607884571800387473932036551737821154591869149534016007411656372820770575844873263223217270248393362355269932559482027280513740238138759103024378310460374130650077315648295853545303892966253515955307667477618605247474379784682042093766000944051155648913588108832822444983179179302012949350648461768750338281387661907077243825844917902741061757920477393523309677479204739598349585371353246431396461010684787125642859079451375748723690026638717161943980361796946389919363534838031957138944250568893680116776361110468480869512563727364873503508473111032447876785592267458849191100838193722609324737894164072379858588670701465217620216361821339659356740368590826094582817225230226437444476221964904835842092806453934873386165119392717669330427315383922003626429645718048212564974909898993201028259218588094005448365533880003547924316277987708882613535599534149573233899945484029945148754636518176892363901588810740325361295415282322892638210212567462627561670573022878656859902948279758636964414545712980546050255370498777417956920352881626870911006347776178755552101131828401639023692885740488610963554585943076520322473964513467712747401066634974994111004860788453911906717347595682693024490637558831319587328396300641011122577990074358670450446502038290530472167662519592234974881487205865725550211554829302194383196885395149543560220564212763479802290926863683723105374015227815165009308178744999342771982307797791180881275243743880758075499603995015113408862620859810356746430402488951162817615668779898859462671561512338870235331317129380074717765813781114816935319896581115605436882151854420184176698713027385202973587247313904216425207573682893277736971886343750673716766743195200324475947229685921470993012049672627881491012112273269211154006467139843288876569383354048131276952452365889375924412688583947341630568387730443344328155733252505189384238314755106232687720267566598007909685934118986101748301935928452495353170344429840822553727936947327913843300873189581610578529084166563418840441878965473329669511305095975450160903762946033728320899395022874583786402522603946211894876626210165026902187554163595182439420750177951857904155615496958845895298138366230073396162132953619590859683040394751252720133111350988759879743113709729755821375779796981408045740241645714620099521097813239560772247444297377409277246145617924093877940484758530403395211085303176361874398885569737135442605903911778789658712204577362088998367803906367739804155142764784526634953162910011584534042893871593845067557211968901273554047458878559029675525862250997531017387266788225622801093882142267241712939910454553237094861867306844309131733568834955007799358604622361096197298716737913871822144263163165040743053899131308007993495506254592576107323532939242367300175118611214670096952726782554572073922857849009252505242400716326662876050388317785312866566290898763704676492422602616871265788253656946902084983499708711803076315838956777613499515149997352186226394914529662232556091873960230693722503864265356275277850380116807989119667369667587629823781413972429633641635269501642301697529829482507095400393040197876450177188498743361478526813305846902007934184140142970350524294969006748050575542441904058563835911695726916127358237610384413684332831865713897081703306019041465402141977955742921327889590298814994939621341494816510900304782918945002087539883592633156393807905779421103996048685250227422929186521695343163424186045342655782695006842843446918376881460171689839200124620821430845842806632527511149248107885866879926706461368485076266414943482937838273988836168281037633607728123821259824647310741116117950614543570778748276827393046336668622469193883956930490985435970955801891179536269657179347036121006104246389234879143839422598456718595794681537842223632286829185375430882612299532650095220810326629444433972793733841058591331942889829650602035584230205114487025440935134048829424059884408569454059136239034600261386315618471990897390452798942965269130747817778259820066674592542621209510021212581439229091997080337194864792439821810645063397779667233396090436443062251860623056373473874957786967360762932219620097433270398863988127717377074557330594474348207972236559886994881117902548043824495082682325833544189802500526553108411767838689894983835876529406664658430565394676375899165912732964077973999204647778391946001116849973196313879277837213601382267795454731388353472140919944755632066365079443504393769290229923149991229330827685442011841225302119878919943411110431534365521338158315443268622072462891611671504858766289060177258665754606866398219354902898668964358545688935969706424837124662978556149128983947423776762204463610799924106921522341542590550698682563663325236412198207682319733028184445817039502386629047743384524778651610955281503032236488990082204117608297107452382614163549209533704997174610804934224206731475551712686448058319392439538875378328025440994413523666038046022285256481223128359084616228301262424717970899048092051951764662039313315474531822931790952170443500657590217923028556519008301036968599730786508717841684864124009481700553211494571908701442140115643489049410284369276852624560165056989213026185479361428208468181608884511280390053194105332740634317068491365789305023117893063227597843505168288358416011501678108660537536292480487303440740214412067368904660849642493086842690526208383923194392482255396686413391115268114050715862186426248252705365057366586098127738547074587429645088787200783110977410932577760016071946378753407265347665557694441582210521880805823817138414137265611268876884956289679283086558069838508057198943959332745052382865936873842792336908979563947824456468879930271192482632433443838560740725707465838109430307082941301991086037351129425673465518712106575198458751731403750659021212839025003084117332961689546504408546100045110477165935868993767955339729229698291591095181700455690852694872729015014750308264937901293367095364873014998916349587183138439263752404583065642682513334958791721788914614542463572942685022049742588782864435794154445348638576534010094457792377362334698085015302743841854036816185554854953737364304530827963788868781726178646489698871550269215836667422277915114088624137005309671189082141249117293932236728792629887798129379525594320209603235359493091267195260634689641325327531949745225417802116816991426985015206395033003277260171589709419597205821428544457284699450157911380378602584204214212759357241316069482393100031199080307177678632067266556070585252205350345309995982160698267940541560224795749985612535554160530737272176698513425227941530890286186954378489523771409034203853488879881905807965251562739297101253321094628333140631508934018561050071554483325023620291416702043446924601709954784575212621223298926936211560696900965862361046072598646388422363345739601469417238415285705179854508996454031147248623618436010621613082593278966831437620330747233472569802474245980799319763811679106311445650176162315773364356883338221090320622024975509709442828263595942764910584773199230984760316783279009352374655470626287947216145307131307335089637076461047394428061819559690363326200477474886868958041185501852027128841581965004290963430296320590969521842780679850149061579809700331463714959324856909335343717577685043089951569553460009810573243725664785136361064963295045944308088933487721687241509524057946828088483711531790006250771577343717072310861582196924063651207287764710009755225199042543250993884457687319174259070625105114764570108334072177042165685128123253498343893770625931598624767723881823114841755668872858159939311158580602251127532024505305579471581745385104923192562469224988031421100288904635544067625334886159162171341162624865330870590087549814204386243837040708902789325531400144239656631469404845981606362678712384574143439883366210111276543948308584199581103341103612285145639431584833189963660093092150724246647939781234108228601129227662747061520114280683916273604840462189478179255034407993964916079239967284991782592276816677283104694633384471506287168803278694274736025215178666446663968364770135952222010708842676839962150659729751326019694798756082141551793169407639289872913141094388241381067311268015828803533216912044752503499542096563162971462220051083152748759100794935788883331056260658411646245800344106319188478543097522981418047095787574521394671462010593045061878976712131324351648670222794967376929141481779205008767952314846807712048855677040381875851053310592965574130772042378823542480758207994947445433864048203199614056896310332552187129322984068830180887240916376542082313954227776737160534265286353566485122647210020512515810771751356240875465114982005546988322503136075778113943841519955830260424484348271481155331458758638902796778451751316611006209491545545937872705032065866245267461410219110612204650015290632953905250489003524370292337155105515429516063450390612262132694747754335626410225160799964658216989566541551091317295562469048371833507621478409872100562617655774984960921579678972136105047528247462775494367904740444297537330494790594883930868325738383703335062435114425784261630620463958252465800277032216651881360039163517305659028140664844445381002678461509243998364084748172498262678910050660493811547143714933511238949957460687014765414079425434559322698815169509998931453398991581411553983070957722113483937379135234867508988020886336028431622820044994163414347007862467014782887698430811868050476043860149839982623996709334130487366952211576236432096304472071918842041843355024143608834562173461052266086693996768930487771096583855268645144654317748689337872123032585162969220623693235611298441454861166441717768330720351107050566076271196021340255935207853700802412100374948951669726483298580585902040441892714452985795295279800939250134339883140242658746300947297029951549618149188739962360210994443876283498050077520638236300947646049636037629081907672465521023893741475575239445614916328761970150502716253335995498437855659638314720261155901732592699252172851050989595459950772549390295161949157305753390649412872426892541542940499772845571422507887039353924178437145275643253029444188491048098468765884717708565824433949584357297193880955772813939867127008738335672899630530001873568190372322485954621187251090888046949012038179068879343202422059334210802438072260680104517939243124896750493308661826940539778302969340992662610460699002234791730759115098577886892293161483103479223448383325770009817182968546277918202453250804199109846092341776693204564725465934728151530092633568758944812132580539711512894027919375634671663810926560338157524258985107170778809090050801222258251072174315956577120621442105732965475218169035619794371704597926587577215438309946140336218935653839156130380671307805832186535679743161902090384330892900526901171224588086225351758043753859565313053263862125153215016739965690664957924846299288779761935182098032255566454609341796634298642571526799026629558795615226496433559364223506173531581026211769616855703271166316253629942410370205396101376141440228277688586220675424659767481124314631387067682949314658799814110299560939277733852209283771334929385142517960499165792246691618242485184081754499895812461303065896003628212751705728635118219441463225628522677525624495321829436654073878234453867431074959429826748908463746004330142121686665819491459510659251765071093489335020489138569004279572217689523902949957106874852494831983847723144262779176037759453624612531453583169356355178261070372364391306985871849111976408715390593802657220542535651345619659708001992678259686852467654638915664854990397692621721451627921964539903583407446150262301751231307215657800859995418727446207116043057826897883853547870269515912931409577676725283162108778510155810237923894199697289043675223437554744901725177030239850843221589408535281886313468991661164078446712150262375636718902753816547377421990982995213308480283257808018498707685367065105790576421624800129687769793121018102862165864002519632041315936702310352519398117876181650401018150159483710365497994599586145923832737995063102187502995360250811402543526602229079869614182412661526313352857011896612597372851434039879499788864019492467301521520027937868048754517417793073766350553862473642975782666599967783543726058590543557978150003516238425527981997406896664277337267111890009021832818349761473280116812029124483593107692290794336264720587221376431800934830582703311759339054902940217977053520268959836568033073050974288046508963020003641302590215060323236725544197014402872281385471372340563504320524682803798479306270792297367696377097975783295497416234128965105916409103636948707778367538703952979974552725823140541019754583402473423837592217220788792865163989496778500625434830438309862032269509816569765311476689816528791131971263348093974841467792338355122932126409004570610994007517413623910111679803658687993382172880873984176429003042102219800935178463606369059921470956958172961257387533955717642724499267646045152881881278458240607443691891379775377728020801447102465994124606435118814284792361660884828800501103768957879526168424598152427152394908365574346700191542361624727194024823442089309725224992781314701024472873739713028439671190163589402735484163933949070496115993784839030530274193883237284692834656470299516075735688191997873567844962661306587281643003313729347211459096249704036616884871338916274358706746227406050582084693903178685366868453688159151935449081627580446812942882136853423787318503992800505152773182114087384466277312363819419838212935587422107018905667554512815283466831502166565945037271086605236120995418846608775950921436990585256541845820035731027409789021702924583904245706324366462227269529929906621189384785175664914492636615901068701526318215377979133351054304647237111365467433293544086369071082451203807051779520351136889944479109266013572832843334642236518265352672052854474394132887587277541610847468231101749927336335396361995899668909934633347899296802438900013912208140050196647236434613270311072851497089558340335359123654123351159952426386273680538777358179957961099847188205148694709693415677842733893225227886146989538888417984032785899853996219947936915114137254593739550119969367260043041855988578939863500981354452769696988499223559215073555152298073160934564228418444126950914437404269746512580870648215707063493049146364446242927226566117045556212268460828515600760422925736029102394152512046963767061534645578540410502157186444015451735561143681157783507348465557170526812328053532521495083966940990403667193350035655208554189061643731572168696057700267041061366221478818775970870581309931964764584318480070974704308000770140232881872471214879484678583496184306652937415357674861618891830563082291923168614446568714871523318437111084325839228736529797241260249786804930176358190245840764837962458806438322189249576107353329440169068510463822828778958477235198018488927459296260280463255640307953675181585046057645223021762572798746795185407556546829372588458316969323053037091705211775152997537088293417841038317300140266419141257491650996370167426994135824503448975200924846235212502646938087525756147403080747237794661730640778282589405999070023800490175569743400688873096574789791212309954032282945501152884873989084853840378627984112553758331411324944108762632768087906505410918280858611213816567041809654571959164313409523651223027445036774088906442252745288105040897278700059948546084797615145469552180585975709554605750244306328681848123381728726887518427807117580496125352982989408904691385506150598736944801410956888938255634280049189019697911511239595103050633739413410812011671802731773376959483360114879232350866325217974303097854271839942025756596745383221178548614127737255126707237537154847148378046623322710774940351792316860992253555069613897494303384040336544238330023191264766684158763364530149303241578479143565881608697272656528924003406129385828602508643635756731630630391676700333850484154351765598658965428140262210072464846254834087633510397243610625253038682058259691330754296689327786542019446269862016473371650617080806337778719901509269938434343103340239686538499069529177830993950743108302665527543691066040484828090546225286471497967528024216615613748904675530621877962775572885360556903580446395680375377536026321353176994580251507172508890260817801566492796448985119901362793008788570609069485572749113206443343752220855014373436506538978011805529475872847162886981218828221270067037879536285815489424466171355086626417672435186588040280994343815926881223730387894605966292656134289423561871712430232319394814166467469170246616418059982936165128776298510591436177937575881280309153585052512666619094935281222890297640204807130091970934816742054248125907541695789906147894605546953944407145925947328034176170625044493857398002099482597236518166355907355686594772947996697396605029850222987934455846324591005043636715080807822126773775553988779826970300322591665847654523291958047019039500009855675136004039596455995675690005344299370432134117639451459735199680341777530077047505153130054649124405447801831977390524202469298577780570467394510264612923990059160810027928080185529960922150278015813812265255629365043268348971405315933644496507826786057145452932748193097291095759454191365682469311267296950051250784234989851642484930559730592964721121091614313319117471405513090702226647950071212303238609781837608937505073204996400948801701694121754026042304389388546340159366332995102051801759347705740175582088849936342558828555979121120223026762769779402716770788997571303133014114495685607257818440754650556276083310015396319898270394455199146723276134978212661016159128048426716077294747092232172461340744753485877768291369712435508832707795872907048560004545082182647783843453054582176045508989781964469072857616274030244868630152791168823894766056158242896358336474504450596357738347517862433218895405622892022860754029583132771548013530832696009896266954462723223554202658048899560739611349923509187742274532325155665707834511243898656596741268382178092821817390760462130124225218803181496730678673004286796819064844342963141735490675321155814121342120615636219740662581049680062966435051197611485683357884578015804104060939415400025681322798427147543785400260107497820651528347302936530736773534371349913329245922810151221219187343757398818187007702346005665467993371708360081252322541974613935591037515230874631620415113709432833745313652109394546391328735857559498127047271088673295757656157112194799529233331903405247244706206651035134334134518560133662885137382558642033298979354427220775644862291122895985847504877519610161526151747066332532208394426571074725660908213110989945328755024061839337096767258773000589633376998310675168989841752865241472790481052887825561822794647569658111543628828744738700188214111406991308839165197922681401524737138023705283841111546817050648081091105323398602814908732924855190971876847277905456054982824057370852545842663866331261644835612035956733795361648882938448235411515234519290812009021102550578878383616600614273194529075188236978296153897091580882781766929159868408153857733162663374217038715464926185141814627436430451197841175677556996896205405940120151558746986684472143152416089004918478771842662703419639219277388073552646161993662497317796168603174995097538721463547323365299636466497188037287209935512743634104515589019912647265488224267331707107588208047933710211937087981842411018271765274368732939861093364055927424237530753192248403125645247880637045604011356691828722977226453836109472683787748985021953733179789978148050073369048844250719244979807238583992893532257143105001531401424748571045469761678565212234232548476302905477887089391311932270611465052801158086599849193222526842687834836508004052291610548912179564221707903414862850922537143747105774834191700062585853968380174145769823918416463171092005133965543147743841213000767398931879297557900835941650324043986928843679611082751251742670983917008331866346515932957695200300892435714380989984367341595554002477208856013768456457960758196432308715008344883059661460622026722608115911710767083980146528377529510848538610191704279529930939211545164064774123571836608496125880279407591997849871252163356693694774650441750600500645453792172357276091834985900075826401207832276747740928341388309623836116870467994417252215659034675415925203488079846632967948235239191634924545642628317796210844671538036577025019441887447723734222229145843651345718933555508794766434583048988645342139301407045798569596101333858344097866901222632981009895239852342014871398050823112169999198031024506519049493949091194549497045769825605409282021006202120370083213427955551798998300397770728483776111536112463672002684013883807205714186971674466065142459588040508288357068894049710293608556856756605699839005110639424062442752861424665510190216871325188887603187927616515867643712539176954469992609714549778959495453812919495668886305884872903045681458722903074554737886826362101352452438436798998154900446037772258944129878999609035214308698804851129543926685592620409000290024019035289680229920491458013146053120099938871854281848138354435889257356635351559458520536856895251166090618045669350030350261505397739165557076343352266391771314468821031933023778879645652054986236917417582823921134029727534508589155491867669748027085656555978911660477857989512548200482048060567549491280797960821062940920084849355508301942134171949860552016535448583871088866324402762011153343352130928283985172260797812918599802854177571573251341638558311535066020232191571963820665027622065696128927104458037582526200846391994204593668632570891533280576288610153837022388121019629671213495798953418746545457721438117294842102646379556326571890363144179768745175960333592660564098843687455837906831594364977934719547122373869067461985683452998151150959605861087488175359543288407828297656390224795859093094446051356783062894863209908087783800937277843039307927154515762200656641340648043286340265399884186240360193977815746555669062279329555647868052520078687183830995336347820332844836088259682058048196174320164664590652346271913941249893598208019011345203603959272783152607212267269349866032873227032371321908055879856494412072405470765068425468011107644563629526662058418293016716187916320781383568647925736420380238315567751982089010117934824064589742490749093727598186500853812616025917119991037222526470134178326127605420235522452110432813726125414024041069120409414562049686568707537958894814433296060967854689603283494748188401578106019661015848187914345427916856803596974056034650209339737938024186604916124189444475210908556606455917849738913008191194486891554698087106310812947026869542461984907822108660660077892572843118272338841492216053423699863121898159693749049379876424422522001816782527260416639364259341042912651451852832181372966005009339707815714789114545686973987916116664328984455355672215132419924325035796267476470175111263526795229109709964751332195433715912319861847767220145097604139951509924243268009286758855325621049249129981623450059446216044588425102106993747787011776303456305484515922690991296200384700496736288895438219284600746260756992494471764091926038532127743809662076530440960838049792433728236244156227537044060440908297710230118508634274245296547472637298072969436205142504840919017781038844774852882323819254126287879211369726121500414848076218478750446756044474912925107878688945492807998400408239927748024816630358304252946990916165275232675325649334446778837896193882734503394846067404094208902564889097664278493267290889534704649045145005554854188496937359088147659826297382691315959969985375031938615127758082650527467053043813003246506196444884800503410351794688790177730088735054253737105517695557832457332184893350312039072274708866352820522361696915024155127961378312625787120816041437725456185673472545758483274281684547349751654873623126736230642380334466829194935092887192716235185283265054866742800749660801623564768504352003866869297210346320943469515124699471562478300650635544770723475296305713528762541009829959891397218431783779544660062171899906465835876603423093746827768596443774092651650208529487560573191008061394075596325860497778824296465479787299457182645306436072036206263390411460095240603727396319507953142290498631661025714521788130013025177842789927073697687120318228503195465307004184517481683162741148372007268029504045518590778882904957970142156671426425348990227756947040220738354358254320004029982827927552591022210342898179330448818746698740164020606595210043064881711271715323279686828620604883490488831818725378821063654449418250348399584589063260863337080387047500520037857172760708547799671986686957768389988700237807034365846807185803856542543005336746052990846855426160549979971007669546029177281081684349526439113021871579972205612871157986544956840406482452980854596011886202520088059952047190621973793962432713015335891372745574542221463838926901121786538776502903509571088259818686017457330249674862667207574407352471636125621515887752167650656300091142457442823034260588915096332713488844167510758150602665043181306091957782867460479578242025656146575421121281712949423907801248708036405074779289525114867193908589460943393123358341651105217551110500009532686040896252961811717544731226550012662222808441163189303576937087528889003873904134621869730234262332725745979717346764512349867955227464019093965766714368255249754006388847873146593992810815418818217259797520438089261601803673964624175878161373435236156979575641020685040582028232483102256637314975673188983715871836048957508228779788343715890260604611592776430700940202401065915977065047641714891564533795895574400964792655256294527727724777907802341409761803081099176943248964967253526986557656198839847888213470580833016463545004022505178772565357302818745245740638289295190801404402143564349878310629198286839686632030326963146977433826267214549350134722411267225409971720201561198464823033712495480705686802854394237048599350108835225801242952529338782664815659412381245493662886694377116568760710214971782841424581319112386720146244891094827776652223308642875008006158327497455820416392096983331385141268704435229103706731445949172808411271483853202435311112141937176289737483806512283078056946611251263469338520050953540071406645646284146203031951230908996337882999477369573972969493688207130029299745456101397870435717723395229066800963142637780597719069743906314858878862472520701816366463072429715655815681132523615301548612950151590024276721842193930603043983026356077204922242578046266124575695367367905511171540028577960759189960741269830013993420453640828048000681608138271560126927149326328032327173937713151408427338562171576720402005743464463989707176317589615390635993296886142202986034695286462874733896611692016764087240821681902187118806057933499656574703460218029457871534827544099425524780986423598692135872094770292369945796803033735170898171500074633204197382938310010192127652973567447233565298620938627889297090153776223631946890872033464802655646541139555118319865422615213815496322239616427602471981711739317680827589769802221971583753587142797960925092380824312101956950674045549642232903066071498561032864473087083649069545192789710492016407327325750348901613329900743642824498894166802437806788441122152990434516098323843229729384226533784610815088058664202109909643013264656391199361363263718707125488611527182064432367105422191132921570949252565549034246564529780522439704332873825725994666316201935006145776431556633766588905486589869982600671306285530866965558437277143109912684046051248293174994508227163417437382540602927142878753561558179564074607719639446216654376328412449585865914799654244158530730177346061859411410676173469723574427497253467444948753780769110448334021404205872475881401665719738291110120411889532077052089058953911610068753858889084367774238297426956892684252923220478184728859803025298344468905892584107329925755122192294475376354243159919179526675125104335819960831361108644112437166040889550381760495038896756218763655133059145565515655045284978119729027342049389448222556933578273977642088824932005988859046028444529842438478570495203294623785686417250514895095083648739453079451696697841618985587400206844974666656992901857411396473688031236645492305697703632509938172038083669773227086390504835846298864735687144657948060803729003374212672569742062658781440543471747363492344015817887894659903517487571062547994914970596284435765296652024645306085003900156093042888937732010107427236852452894276796904509262455383950511691988853678296334872131068499416750092982688611600833241135976171873582782061273992786321295450834409006445369674500359393802254818714536600573384732938850153656767005012071566295416447162389757604196260784586332171377186826044861851328427274804580676748071806961721080141295633632912871459225810393918936904335728981575540125093889383098699128404167973529356361992323278714163707790316611619615573217139223074768430294308962530826792544132956910940777315770046978134394665989129057405315024860564493061293642901228423273972630456991246333722654038059523165755099710203870220543041033266238055565378774338804148609073208633121566883687837234974597181144288139399225915984292813721078070863453775113569838152076074841448623033408880716732556073799774324719423391520653649236588686071503554824321815927972283191673189483171205784042596193840628012924758660863493137830101908455693821822982342600689394068653821007859862854752940869477545060774342668321740939391564945900838007961520017236142496574571775753258832981830537575998886094301365646180491058663817165381395879799572994717386161930549551335518024906331542430337949146860676750698277288642559885930450945974339078762411394931915873568395599480122169445827002970019106756244238369934017812532170386851203938871338566434620735296902315647437110467002381209307239232541380570852591836087091121723700041037828191752058056803899060947621706644419510897661289007133224219961341785819701602183135617441336949457110015252810460621327858954259446864759912688264121400407028020144567424126863191770002172669167608540778179567166836895404695608830899560534946179877993930826050916788903262503094078722442899295270976416093505113320326682192158423936542461209031878843290873968309560369699660761729438226076319513778458382560446272996162509248471707641706735354461904089186095694760139644522574609246354429125670128216287588669991046760998263151411975015544613296521535483379530384064118494909731628384116828187789105969050536973995739448331788475768371453237058098050096409841128477232082510091689594979568675426529838757802175730484387108757743349676769553407011672467035325058794500106041182623737198114625783019792467422522121007629169829713247055374848964058113504309330298984416393578225150905026064225214369943343851358948883158220596673844509081617641030072094394347028653438099617872006013684830092708191113968158483371534113362353425287659101376113892682448104770771277255913466203896535186825516731755591930602842314030701920559488071553874096278974138477046604939348849224784087872151685980784548596330383850243171465183934317605816178438841460585745087039334411578469884174976679154754686289053284978064990221286208791363623469809241881880206674948291139486442420317861512931227497239481925492096412037171905641259301042918237576519861632796086594614262929570403480231610665640085478757779197941341214487037093419812952724978512963276042625155734407152026137564203251528563786865983682668684344600268717403401709383700204965734333299785660283453356554391680599705027828769824365847991651816168115959688366322462890742868554806511170193099565580968558011061693093731684781357965172287768798213965187949432125032405631296516371488258751265986807625270269674577421844596075753104440795794766283459190128262666081350412695424927481029824830280652790037284297127293033039990658565682686071263565677780618333163421709833326563627679952491214169383510635599539112036183486289205171218963108760083501527714011364733667649196644704792570692079770446586765607081033376902885109740764537329919464136736312499607310357621427332849119460143460704809524398366966272305995181189923173819119157683085427284115394687032960596136807451481310274841761025860139196405317938474037339280454475623767924229567704945887396176372117669418783339723776340219049966106739826027904914730329605640247486778369932084579934910773214197379525191420281073247087731443970371573519006639183834114774112190274136683468007910261396352120149586822123601353568104916840581370151091963797405339300980158269756476330057193008752906867855259664954099286065953984395632631266228731755880170993065303647178426611217853053565663024987119803286440364664503461701993920370970061384037930715212575481235541475293356412644827680597708095422146483954594502845743358368734718213042209226450085709398067441320625561786130833618134615068521611346955837472341231016494187381692051391309376131128087739533654655403940473082781795696651595430354749825945572514193256001275857617678210567779822128901474742821256132587769451776689962539082392078063338695235501481932041902437440251871360707064101031447936900202810087502338306150110893304671594993292495910770699593950327994503933134573028666052625783322475236717237918029858731076865979032890305644688402926318765099356749252896251114459473559191675935092968722153959288054393475870767172308693900394976239008522341486641855228118793097757212467924347657719907052666521290425926294849978015046039591448623059669428001896424841192283783328074624810433601160170733781366160622714874096008525347582257628658792309254430132720256708729322011756635616273960251280086081377764381568900379721549570449322443427157322832534805640502565191873596552212609560068020407642248682395702392963779761069843563895572566116045629657422463577514147643897683795904642290550669406501970302251429471124085680166140287711886975422647966582297137961044409787775251662879364005423410243889034368269628211066469688067481410823787794358678538119169427072103644588433843520237929338044353637892649353038846287713737169434756062849321891995830937605029543506664474746419211081490629415998199199278971321427900444681848680970072665200832182714201694046010948146834593241218937955363624179220436574970580891039475059946738355258073877679182595394083804791746384794268891404992999526194357119469598571431876324609894918950164317322830295399824247482938315485052106649391309048974246209088305381211813579478513115012349173130481249484461690198148805924484253937597703611565414358592562416768617884394993713858145707755308814980044121093749081036597975200719662571794736103107567623019691966059311091089564914114351551223331203941342976257552451650403205056959343913953136135227126554104962882308248679017526561696059786374544510629276402105341503004613900466169368185892020474810238436499151823689728909367015992752275237287349884727608326651792905126168082487159664723162623481238491733214379693397982645315161341719615562305841531285560161445822395510956648156619792892018802579282085195107594193560860823718360495625269507287918164447291924882828452523222964457993509458880247573110951518436641839900336047502325082205921345119020861384387932139923462311868939456819927343699265781161413727260881091176847193383624020285718327682122097997907471486950856044987101684954253219665995318361500840375501051918596930954033325730743112388052964320783615618165164876142831427122970634959836908077620333290166937542643417379280412287028968869948524153563737289535161781594605738813977339694747412562556153238317087982142276525421011899414036216254956484909422373161353156388491459408639252745448600816763931874061089532261014156415497318361772849434160446643225366620376012211581479772319289197938258519785858717549278795921817691429199620114543466709720732598320911297507159157295254045948382832445660337776188061293080010498637180757678636407028140422590344705943729316491039879569080950953307329319238613104533964341213889340952671288142321469375977993056475996798918490263955870583254866085346525860469952590160643498886138642504356918738601475490495874254529069307824894331187093164687862839002721131257224308799899422862952774479682750574400904768533896625060504472751918683365482263750820964284621782779120063735126779843264039260811762235155577630540105153319498680909734885626242426471024265250601993202126764709407339072118178730929837554437215224235751404157277792836322436552136638054759112144782296663232438481065213027686804483106841380715037363392168832284742035946504713802538698840442636918311871562278713206637724301341253139719149488630985353631696264869769185507192020758484550391165264229912530795927101832836379066855037088195784282969081596366289802492922242534852660450447892042578451986033147782741168606162880714445056287949808317941201259515032768876936662048303383813494662445536936091139247636317570816834644338251968364790944442213466374315248600034524638089544081985737274474196133275252824344652989288077265134312653589005268745193767585584476908757958306177831375039937650325359064194068714914557549649346273622597114736839705478631634665952095945203938722282861721858984316256391534995918579277183389203710964754924196834650277923859597160163642954566236473633889971190178842269557495002323903243893707559826815497072640790919394603702275685441727055765881220261498891690562480975222554162188340080690811952442080368138765895261063999870867174291040541660013532822647214446101947696572102061084415715728683107408445238776537315472010720123935283568397434276410041570435069406240390841039543847317164146217387223775995608809059360877625003171289274816292465894122431022052658450304907867835571133073290394325439333979029106264445363812424981340466297042536596084818637519866946699891395833574740859686926215232997250549200523565351481282800289662685501370896602649147924338215897960203326478285961875333809851210309160487153963081286746017995291562075914641898647118672204155408596689839233316752669497931708716316986065349749602053037827298001124182161742037098720610885402740575213275929453366519809288970716135760601133733557691831481943091375847469369854271327939833542419517202440201589137314599637466064722891191340021581511398545025783822339518270031228541477023777451460590378107857588056857055234157632262363833806215038908094037313023461109111749269105945498561006345755101873610328313479308289305052924889596045646455441416434920045979015148307803564950524262676299491217705469656992627875365637504636284642422165127269914502096891409271778024105149570998353794571468103939748141113035026740771279729072839384043828862519551237104251695043481202672175879910728768567887005812128434730919962467338125036028491020274805258759629069988916876475924035901996930624304209513807190977820592829699179141594557678010162633648440896249263261002450582036698668394518782901831288514187820928341285244035249408045368376453695991841772449943737782605185340636336715662016492856276001774835659709066030928950583431135919344488350689143876229268792386416614485632274732850956415767352554509480341495064948722124645834762411177313026038221917494396255850391342185118794601864219936294404429572560965466898286610685124398146847864745092854049372492565617134615590308493877623076335876379832444896570979935584611934602658226639215887563487143013775637206100792509148941764719605354886691035905839673730105403073532177474373939268366544717583792051335951475965287139871794344815217461295443462950043740372262604412129241257004105758700695192517065859255387467691364954524101361981038818091275925007917474036911442093646629059560521941222292736483042963826051896599165163259850922651836194082171885324359941478936646050274185257001805963543217602067530730516158607816609243691192332338795859771265782754285390901268954388613086371899218776171783915467283972407412093418625062668255321768378623527108597264400458586476216010922748760304124625372259783628515720983414708887686698087660322646523947531921084312878389459039273510353949757865121218953307974768830226430026629019078994935101302215443001784232857039752698338602101506049134392032478921741300787560326854729052751796388293865564429698200380618234727356877649514756723074115832807969700218486557573863883881883870373873642189947404476503524074977977325005398733195389718440669358750607228197437515562950909247142320503907438183048631188543321076153322761282107561853136777552272671112484698170962766803113331683741361543628810991558773914324556223186028706561582669408383386706625306239222809779544745231769423287063649172243712268273906213255056367252672664926981113621335455154704307922268498038999433424169372897931346875023155863726163643910689657824599366668703505934095404681144493518946187484849669265053347537234826912219279041378065554005045064925016129471529708691930151601223348694346005386095525410687978571518584074402258703374025983227631350078118595154368632820267905721675631078455392000832455586318173465306017807778878601735230565429514909527996786252404690956603382062048664911423750111520948738661283589827432130228068114460095101596333356683844219561765445440519776064232441388833760239082653312349621701720248672171770595588115852190991162443351975468511075018074930203261166728371078786509678127166774107573407329648253910872252523674957295790114193815295213975957369545755402092508051051312819111238039958772448347358701671373100313942391315151963275771707157322446336224688428371271627283399859923901955366753550615358200827642092935760076731705856555173660273828430589123113921982381985356758902147260626230550823824289535519300773575509452271917726915914238948520259077729477840786656973766677665147674611582576796763705176823290727337608837701097617471491858163068577036367669515719808852396080186380135841309312098656208743888457268833347915051777084977098143676409135673495953691046973439087914699676534035333705259944807830533710576307916219251325309190919806109699142333238863423065339243548908770364358805647382972089668002502188531504135722758854959279914217563252236198283041859092911426317416237204422411211405942161682743360505369985862609894060588206704735032243318432555997841162962751051344200405060008238268186046716566852215045183139948009175147897041467107591938029639504509949091618238820153688272881838869274608273330221643967400559170995357013659127890884575017347424588817093966083478938895758647213567609198950796455905637904287895883899863213975012230531286224119331817084292066594572888292055906561803766857212008095217702450980865192647336259248781886078825756892516733361248669099368534446304018763827564118785015852060031342462996267198706909898363263071568514483082974324733711345451240709724363950833842883628819158587423788778824307978271166353824350225557637018428617159307742799261272534702222137237170888087922129291121262505968791779317823204069670263507533265512464811486403689725078668656737557705935942559859329031587909070708275741258633953869132305596229070073194427600108307520953897599154097025034078761829355349363665415187313962514845795381051751343123453310388766993843693866846032599970950899492009986510723295592234096985869856417149998747868496560002124654563214370816564296834404692465994535423294017790972444240495952173667428826794489090072956375245293054068980331604729299042674879027447022147757796174049501435821488038682096185720389621421721452801667912332233030157579192050179877686115012700707230212626233226701993983060090782672732224787936232103869610678161794084521127803886405806283597445231720713639811830972743214583302827907267713998433880865519243151214472697542872170255770804328227904695239335418148778513614866792200123024836819025496726946599863958977661608607843635260173752128968580557936027163251825732628994322665947010755690998217785110556706076837448991263017871888264483589892946659900797147288321016847435478565467661189729834482988116816370457230298067874507847719128858684525628914049745386390150223390007664223294444266073409269517710672114111101791172843360171985626896274249665801256818116741786474046180171722024098174832901573711178798181616503770731616994115516267924574057993852488399592785848824710534221088591533719877736856631609946126267333200383898575767895467458460386449649233097469253600407268634803329482852804008157717548480103021715875329514266938880570995555552112208422231143921062344783002194142716250669439474492045347676434531100263160223911542315421005309287659490703497896459369507153399272522917158407383614621575420119841890574542808767235132013966382496449088769895467705162212245977116588631682195335780003295934831706882226283932419534294135478523817660691254147329505297769315166808458282968971402893607645609167636637033768820670919069381990514689802952021735683866586463561454971033648521999249057479748380630800916711317844326610020067805969600077162350924070593226223385926503198797753197545634193178511254595262615546264482517426785400909985617762430574074777663435380059965290114472831958044278938509299366723136416436279227970046176617305869493217541520163661120296022384693098289560988332693551193663179210459080892507925748826402567899968914211531200974715778866649239572611553795544865496775279730401564459136905518250826763551357385472487382415094674712234248772794083527204118215599039137800189148637669248621591857638142355780762456211305421170099951009131149323378693916819233357095357335009512568447419958023721038177269489035457892681416755312434337956150508626314303229490614977799415450525698189607686019044533936637698185187535772313630804237452030156068895135276759708903472423417466693724790982663651574711483478350750455446069248520052709647504174978462129246615873583046803326191380947834567828954792232318874986290706929665495166512371031239479420057057619102418129064386755665787559724767495408133110469002719121710238793047487162925914986000580352471650637371359336837499454737587907089038346032083502516101515416489611920752511688298529572484355668617744340387170704126688124009009811451966775307517999800004001574272890632562347608287472034519615074941930520523373951206190383217311717252939749305809375678195944943188010782562858216877264180722330798028337514239327457298636783273497246323139536567535404764673496204562585500877350406193551664612642274164848956945883450451969343188526879221018767729313258428354791435155295726483347461278266335475709849198982315393651986984147429539006885671189650451129839121191863277437924879350410341390989368149280298422518086617232702555677954335334417151519605741320272689946189118402359479866997235649172640112671933296919794375698158697617446448614856552159560625247002545219494009304172416463148437390168403769869070088374642268758643351352740092146669076441344161516761782648835003619204426697050664781559649766780163245795178718146832095837567918006532990541141352900406385368909410619720997838070479578443291979863580213563368166305756931648000251194110781237732447540612631144295879719607192888788800183967603039774676594469106412644913462528849479589765359600714912303741541163935017475880558351624365818043910463855882705039999952749484094737774339449444257697712233408535414576926724331707831893214132410684286343085668332119926703057564454077296791448312024212815291235374818793321337415059499633688870115322764213560476719622351829649416033277617043584985610833909365446102224345930656102578445000062820108585316189563774503271312285746758074524120436704223234821518141355821736867279727193623397761303410192166253439345345736871533952918272776346776962359847715883644742364365126040095415686641188779049394720549828849460102550214212153107274998532542812030108147836727988571746503759849091523487716859869768647666102030611684440702251223747218286274806072556758034081364342135811224999544876392994153305959156649690140439580181325350439980573022261060598973685088045534766861105296718052278998233015877652284277682200457133098419320315243548208330946287712231704251494146936269598546389718484560025512412881449434919845964810582959889391917849756759994658215942468121782751527062907620477764130987684674601041848688138957060828021484655783185736715631240662799721855319909539468938213899121743781634006102917000697370663607535227083909306285439641225174487011565448195173197117117300459362561886568762678452341829694206411174192438246269303243968093992205533309670144176337478003763936020770939495058568365005369816982635057266421675598367566935875481538524510915859442843137756085836519354801691780474428258575352930985871380649354283355072167960744327569286340244386888671448260221976872602056493729601412365567677279406268843420121095872785193133299027551671443367437746193784947768906062297375426260957971963697743443678585153238365957589207360293393076892858957382545005765986062205354848194763128564887258833410960364578230778889072723794996465521070548525339600691111706188642297942938368378959005162626972284877080308288183017521598996689553553449527646515215914024387365029414757294031105986301462294267698017882447731366908995320506273066118398679715338815514518509295157227677573575773960462091709208874084479182490634152837915527591441545591683783194526997548756032418404562399687637607702340503608050086588811740957425367304282098607515346784384405017018846183861602286651386811619453069080343961083819780924963773257916469169685849926215131512363369912206836463002362132503152011166308224041861220248948487822963071647643063812984268124612015029132363773571172110349074996655010131167803456322510042036461095713837347153673280956330062513966388908405315723037156088894099564963822071352377079511681017549401558241334069668728364652021072584856808711922926199590528987606154253417754091517525792755094917252146857211429468785888917812363076960763628338325888704772035955535251709799678612537370304925135152967700359870432552373116047082732645540823886937346500351462223840365424097250525660266869722430214622793722656506514711694914787170543978374553061738766418835621228873295745696591276532109275586416902507411474113079993581417018100805259335567320550539156494922903294254513636862215864720169121219424176258541787330152978193253181308121588383076453273582227691005129541634606113932530222096293274024275964872706437522209123734981646195984447909949974793402326097780385257790839317622440971751034464268118510040844824172678522005127679942853471330338736418450946230631798406780109024291806219161754125755031695013656341632964374590128444331578319810805142275725835777536037431835973058356013811684307935112441369659399375223310679080484953456591756101699599879830914442276916148192082648891913889203481804862958951517180289247494513587730437884459621996187341611029489555556816995893565275795317216938044867580698792970926121213396896749370324760324062909440225090542014338229258045663373503930374678207447299647897559147690348804368148634947108967794674882930698362883016239327032709703571984253724100855504530254057356610889932427105528809765849098037883913104590244220475300325920213832566187725942034165943058723660459058876759738760915073184377953826169804220059278408194635593383575811188948212445623026701157957943049800673028338063055891579194282363971917172558239571188446786212083032673298181138201273678200364742563606584503791565554210384342608128979891079821266973676690621604895568723696010610808104590504522942661421245957587474854347048354000934175088844896068815874922706924867365990099874905183726471088288673290711355737493864776961204946420483835289490888408315008516607955794813702761832238368847726938349061626436347763428039150231290574499398592387892374784757047635123600283923924349647172282314250752239336050630008165046965619121166922143257264509038155027665749715392329623802646652770721042787500751006476711519580668969838651384378899821889303427547772934539001057045243640835792603697063275467930543787179597295196053713212448416493634144616405688380086584899299258087783220774709197786684728711836366059535198137330655077122852829025198889838908536052144519405261714299749582160109550899421640438901045976534477749997110806682135548335833311144265008789674370196251966465874746610238778689014080933731174383024641816431439625758320644739026258309049383971763857341865663771365622919446872550057436450120332779623393859670914894976714425437156991019907400362735267614270832985144893711322207516128026192260054249598867194368479921072592380964424985365163762416274454392106294018752709138640201404242716523794075231445722980387684608338622803893876133236269998559784392790894180148720526889849467851128062157043808770554762634671384474026612201065691603298009455228527387586269616985426528927562345890029285034689281961830557982098910003376781778159726760622749885840054875169150213392201900623805971343619775004962647277633785238036806135376318913392924137532709127807807533097123013493784769398476911619853973309464055144090483015726195554489323520173658249853956020078704812544695031024858552914153815920684519564956239481492557906062149928296773453824552111638894357331261167985621142383699521670214614364721172924109705754721255293954085162563401313960808038007588093184114537563179405466716048213605776025331542831669632901508414321579450356309846582535992274384539486782583889240822172676159598895145006639871309995538678603988159187592278922551132774212504118168501494941911910314050436988036708714660082399442584730116468645803407221826169396703121497627898499932127347503918644647145943377492136714739482068584607356085990195270048375473572239519720928971643302731216824451867072381089809211463314090604385019660806354527905505515866294336231686002130515882627736657373270783577426167003944025178818415168946959309651382041408011113718370158349781414876416397059149944795800957154730794116152395995022086887944209215652334108741683499961088318918587430931307859069709167049048721403053481837817237609649888322110998646724436106142768691182883710164590028442547925461025408550307890682770234595678361296842258088281082887961862133713777897598129810672827387440665365040758067059619317874326431327218009523115389034343111351073754697322747540844771951138506476366541960036398573098203820016936877918573898597799890065672268528216183900761301867518579707438096470817575110988493846681526511680996194249454519314861410182513819622846973422708818648932284767803039216373302411109098091776099395094827082377994366856352957109722753989608325023539213742625157167856050513671899076831079363381545109910846054781711898539520165089861757344980127766702764206348787052474519478053328946951293283943820016807089019597828802230556769500208757720905120224490943497646015673093599134558377282065378530415847889324614819017732121870117016393071975709132423849244594095824950109280856857033136363666178374680358516905593653939541303471931458693921220952045784252508136401520082618661115215330759217959606135408352406975823256835623162836469930948984300184660990170113594281982158458300010183813715309282470129504090950907458628777637900336886741829736434392759893412023567614260164394003005450839864505694702954251189388320512550553160717625585878661150334263786163496147541676463434642326369286516216893927794816159148714952364854083973598539065342934157662716338214760763301885606293082097005647335878329797034149881302462624413897111822952192183422344484331558895576626456955457908085945466865564717236901524505108219712419567074781450143623303181674377828945683560304578012607603913353026188365855273195915055142759924312565015533183488020699748908675759656973286930788505448891086984711529785900607453628663625186679266702155269629224616485013146514171661963577742171782027762416494181073322568705241321947816373864464596754771120973134777283860436417652326797336546924393705772059632922490759304352217742006505210307455111328858911208049769772003062825756966336087454372851878825148250207683955992651194571520518119128337447717275306053626073420372024382989183329679737429689305410623263678777475303533317876826128806481881260148547296607646233848172389624547244114466292061184900943276153405834122029157210262787699430530513639724444213118945454009419198164248725471724196866634520899635038660126051776387761376390948259942638271598394620606081320814663757433586737430946857100193405644954488277629957589573230373589868356792640073453077560440736915223857829344777029095707602599791838532267839020959483492399514686499808006417175632309595797068548979248406289906723775197129538070928857153542501888653501732896000922204796195752458640232183359864602071256135627472485175799267019457793981713432224971172570343078697247086321487099325585157091690576529881807168304815980786399703844297726723561343193285469202753618809759653202707188423589887812419258564284007638130963938150721334876509181238502719305516233087710006005877858583712343180045867124880008704795837376448298169658137166923085327332005885723217481868163681879496369676043600053120020266597290812084949705813318692001792612710497947909513406151296562216511463075036671774886048649534262525137968842260180461431358405859843795092461165555216078183206006871582526001760019234799167243322817272408812627898497713719467996559160921459341980207765652060535892407783000895566125552068514776607998497111850921088727546250388540167979173829926472611757370276706491524183945802951298553521038053551109112573660594191945626473507739405255407710624354438511807468215158978315049244837068843754576235858319610316349626273959863612239488649078841645965426561145936526334281748288775251888135468211556695684505666425091475924522696214904738778359629679289636190592459211055142262533628533796825955387392735769271172950859723802811257859977265475729020660358435546209841648152803434217863581113839031642956756310071598498656355517877126314115548700723555385532231699733334886735240053121336366810366824874288445967741478439088112025981400430496587709985082593153906143170710589169018107572281255227687676864272297990405248837482629010396670748558277098395675739648438744229859681601304305116130204437074815539480701127863943141672773446554945999734833755678638202845065500946405112485875916937051040344411885773985758284587486970142273286512630824072984967067823340496108578750770058659301876334917400332253299909069865731251008632168393347028752507453815449748182856445421263049667555970093791823451102361612185405551147297606219129164605335367644365041007801632100226763682539832238422442965069765484643593451723396102981674325636944083723481849759133826569671784667783324904595586528770507806076515286473229903821609942430474507508514351539476627050080690712488182406134311032906684120683189951614108705114925616571847746040284033491351944274168697440372300826364765230782297099450382325528034876213196791725526966990280109801407288193405386383997872113849457067517711879984362449733995854688892342858345809921693529792404062697235050694156784583262100560320684368941337481722714344593318618119346256680380837185676343503028605091761749791520375714961131075703365604182821598098495046996395186152400406076044313001585170798267693909474589030078349210732860695278041163754864487795095590296200499941731022828242720573676969886422679721128443438802413535520862262242338015674406494232471576451899080825387417897714382061356772598950531915153538534725808856875328449943444746918852171998595297820132933853473281180062877044889805855007733711405696655690941364625182476531313964504995688986741295749681699148735160647600116134734698595368266121614669840915714433934391209747843569971870357602156048970464706295344021175697801839319458185346586364234900905421020189012368393146766677891173293828651020632477188788518600552586626630493184305863995919416595797408771300146613563704828240587817532418939758949670991806952112871046904391881606351070382872281266715000845653238519890294897387834419978007842800620198856515919677509527644242763524289203368066133984496506255046482506000772082711710780113216360759018830462870148180177221590693798823037781006803156928824886434811158690180054842679586253919976864082638466505749472124440237357424086813611590204740194945636453051676213438504654292896970913071177206145224205727967168751105214411000195111593001270036691694454143708741312915035503522291610903971342906726565727461855359640268411165262181300142486837104080091380242861906690978540656116591431302760187584734428986533176289998992578855232594279423013640801774950209094533773880862742776231542978388284576612048804341426194780546038938924984683345096890977253149146134703805221484063117858168129605948161033517526012450905924876402620931874591501352342605906362896239962010622829600649496508092929007208668200159786882663511291121993498527063326368852247217749367002975244341116899936721191236208293659561043718288469964636937579867745220802631148733321822625470094054027012292479411015783332849951671459271858436255384055062580472377303912966677817409190080673002139437437161719962852199183409447670871884825647856060328616331749075242621170362624359032890221507871232114977810808476594793546483640754603206302757954023618272006983426656837456876977961078359229923705961097535362577748499552466710049454963011471690627830433516884089431465571533835607110970649138729742940425151108571627159947212258524080896136473243815702397465192496649155853630769120447603445778187596447395597104965160118732173948491189708089908463941092425049013239781265912619464180906544965039630912900854056017402001331236354482952159669397991823756582657261381532111572035640386395341156286821821886821863619891425615126758154544931326903540438295394354903914757380844325278226746317844148403595490909102356632000650200824232298400326958064661536944872962256803182381640861406544662616724183979657373400490721544396495269739609636693985118748716123312719012692152363405700069982488372701656618501313369504567313445438759515077814647757977337944288330205767844065653216807822655941951648088546449468020769155811492376996033942909606416180946462914198342469295434080055963873849222987995709533457291912718149454083233780559591642995476208568028113222902292259566884795198462271412175339652672801663331408895146845156348352593273407101103452443959278605792189965406248425101287985741674689822689861596133880032205715996777874077270203326778451254089715117677461247763525737163520929605393833101915426306508211213823862462321700181068777617218602476418940949075876526022411037850553183658614255883272625915616574071115644885004487169774402876119534560880947693044619250901944084318164893646160808186099125439890150715777321894428929290810820843538078289756929137125207250235479325755464502996625808717336262678884779440352036143010094809026211113189076620002213102140090554176339051647838840369959247164448564659275763686735089559599491556369022643266306148450059548329465824015191002171237514948855728861924451754951088606863886250358640323220919880197308029625599753964889993075116250258555500168060993778613342622706801868471346266045846905171095952988874735735138814976574397611617435506597328070717180404101115534406901666784908471505241009991881933711798296345378848632609416325161949107752776152979199190000708200189716649674915654632589867155213528965484213718628458244830144722109100661799518623577072029173458738146755176713107659517987409777841018766858738812185778928563286209140262992203958102033716506527231434338127463756409425531691720801977868967709859097546381968038811854497982019885365051997195996437444544174068798263691676495146373833638232912476775111815694640189157655207710205947900505744006858188893888391411634727902870112001672591230965346714454809772622490680522533180500541238392983542017289033093504230475438513270792921387981105786237098423369610351366306841015528027166136518907729927234284484837065000795095423687188354429144610772904164222407980408246448741891237713965479384969989777064077741680269335295223708041171052033987521109802747887967249796236034901969560120077042075911760089329058251785047431668775846951415270961028861812328924420831067076891031582860216151399119754995348838385728784011195767242549307778380045037241718671938614301217981347583697599513423163920109613027682404872291521878191000733628240004441895420550091226725702088628369489818330322007366709252731696107890641064602605408173750634990736528572204420662318875625456306608487080540856600915259397417654122810730809249667401317203051830987434899604535615099758512480930763147681404247849168195370493044349242233820382344102705064023899594630469465185621164606862789607033040936691178373197749906412731290557778739114610266509807205069124067443556603949212034902493982972304982656218318655681467288986073372140143325706194103764235381113754980284736693672350198313389266566391072152677518931355231246277084746449418806143393164966541961567057865394199034297962285726782591853337696627506825983571468794251907918899071937343036267630608865612048616480102235834187824586152607888400429831456043581024410586131971872397019349497319207829863006695755531625398132314921181785826912139602981151825666293149871580173331316932689404121718799091824822807164864366069215379272182031018430333854403288304041091840291489457112365299618826110728579639972282239892293890784656899869398911988676841544000930210878441451207619957054557604271260161461909203368121257304892839496186997906298714168584647976605843416981533313538900034471883878982563749712030502443609987190561938540657422958221502179786048382399253868431194342287481043472896294565278412939035761983834543618378670485749663873903465824099692161425295496803596357599437397826488667200563896251639803835568130050135035554842797114914407407136841673613110841381662736381408986188194365465476770853254537889667180245158820311355612730524658225199960042795878923616665476754299643654348142328912614648044571845487942566737926317795674334509558737494057930487028536234019688491923714842378124143463820015243898153411210015661087990946681022529476161466796708434419684830090577986480360284180133054938053770018551540079094041260564222869913742733832967322855174862706740792615690716269800621937727030428973147352319504770519389892778794962809835376525993085937629525241210328857701501772135824187076070151699520627602503263133824711680451840407142858923362757912688061346525678705728239417202731928187829675253930197978813488927514908450050379803724491845370714376811478728889486349260199393980724317489465828947674813494306151606869949041726821421456894062686585241784482157991920524430366186592128036063652162840167829798706125102044399247666930643467569978821258413565507654144806939571199526598896553428168828324247926510240956341457662791325967341478290053677079440737210345214702845466383927559435025927844984528606878444857278772334520445199864161289646603457770516413964692367334179432825345343203716231918358128558297432591961283802395032957550720043180453661570938180670935779784047123081492240400604442465933995062811901348182297377924767199589262934248708414985539553368872948711011092755025450423120583255709335639575607942290253440257784054762664218121327150951963679195298602002028890510545495931980815365494871021916868885157039396760089465478264804599517103119417108126786566290776176151040227035462215492339494238351310172904293702514685857572617993266078030930194981103887569847138910412276322658356689897017420972691718721568027770552386601351401723682928843851577016433941187786804772310424714204952863850163402701592180066162524358354564445975717921654274736399119568655584319831339733157850936376061480679077258033110105084089943107625876756480489258816353463964716308797543310293997214021276573714864671695936516941183741976286676148671180308771291448309874870396297741197056371317738751034899649817669283178357797982400798568759025811185026944888242031854872557179461142151060420082597542024273252204145831952596068542335420768307606550388186566361554681629570615951401736788698167331490088204045354656310701722676377292379596093965524650377069668899586417967723172095381097651321435586703174942991599446200208481885997094199997759493072372929701211796034278453120056850216004649642657957777100216266222253822476387724875961631656498538070467524942480503529688715646952534234365437180699989655294441703231129644772104286122126006711693860445804438119689002188263810361547620403289024500810247996402611691896036206002933609893721951527287198780729095869659566663839690492264933275292474100053531239739771889005246847111512896038094354605235351845774742117782925526863528725975726334359344027835498392159347084342945790811473061932984245103550392150984567556950166024406343674865716646855959196085331193396946358863176023401070245537886942612016379957961454453008626529829978750143603113269303081019884080344509962681145119923307561127420713478475167839101897725441810912379064826348408250728585600828696491430603329348940711876492003405283213242793738724655867581768713791818751662396576963700907653975937003244308445510696792928058079259861919769238608175108325466716905943023281916179120637194869371775347347348869114673276384346248953299447609134213640349966895527044341372280073666347840664705016277324163783944135993706076491070069391849741087945203235802499104331329541924260908085564023433812602790918046904934189682136556582616713113031512274047059033627602358385429738583980329153655173451713762588147218916075830916967534841566385974585657822856212733770803861361774272423060358092112219123109877832759551753304717144385750654545645402992939935186582781746687942569238101252378694891179331614842998454430109461046170695498706246062983091450167340274229175030285079336655187531869490829075375485609395224601472561179728810139815225446424916951050846685437797027250034766370979187479642967695170819483756291332331514965787269262609820770927221156644919162205086521154158780064073103937642661775300682833269669574243916902037427270782416516418057471473872571213861764197505390917778382233591497411821604961202537495779989315900855120162854405535470311165670728648138563976364996929648547023463756389842279664210687667798987207291449157224206345030282030715884468468171928788577655225840285321737655411143305248339746750757441856135917551859932177225118186973941074037135120197424525870168936765943536475813906468261061012800249653584054018519970548805656500811338776149150028665007113849115438684689403468516010709276769003542502758045910934423940677170681065772465174609069312696243943340312259032643194306539203816028611234831166640975001224922003881265719682573337506232829161198699008599346609677201370065198066185723608873570659978096171801716773980007881878024067250252996798067989693562163675470806528717801053660662866952187050463527724425866660965287626150781372969880402298644518522969038862219438742001984536817868134309984363668587266903555644073807346446830515245198060569577678508379479903721909814776075983035940099992069585618410512738345918854669581971256358259583474211425388298723974541282763513414938692459091562675885375589351663567518492250200038858736561615119433000945558739866745007457654957924086036964090633890481029557861312056674971859340164268412500396843912885122274493827098204339910979407637146211057694256706833406521623319998004316956011971693563250391128940368424240979161560620161894543345040222062421083161404225102193572803332452671015687941847701446304662475437299885460311133610649315534380445350894804068731945906622386366307183266813281846403065175315739765723760933394733743163345939137713814585545643303985331048360400350364753457853763142310071641510766454242971001427861801079899945525998715955240011467994483343472922193119167899788605209145032879398504840134142403180027965501689392392403920278966449816330993720627452352526089690988433099660219765263847317842476331154608269945045201829074697783905555114431372407104938892608567199795187621907381891567002912656673331794203540454176470544345692906942319996544594941885228798818075358431783665394872035935201654992619967921342898855876509580354099633901205495881356189097153913741998329848898017017903148706390101456079612301516322586123519817373820551010619059794302851058401126196894780656050960324153371156319265972431883840941826361182671630486942141158459547041902945128434305742141952738776456483597910311214359218541123472254579881702275348892500441658569744839341983609593379917699779142235980095052447519857133758322588318903143532831460923598013935882682277918471225722892061936638139927117405381067561224780399536107900730727507460566174931991524315069636893119960916442738842471961174563130630197452576816369546046331078487382761828068324820194951899653831634225393824634094114441568791924196640165994683980270626473969572143665548674505044239849243076348838485581600038111571413778032018676280652826894463577436649840499937320485565190401655961907581517741266636094574529275672610898757577379643188439853610813863298946496294207517490717448451874584819176716355001892995596038492332189045943617150473419519514720196720251265314050247193980451356660168903056958284278749133245605550907125797568377336611286267949020347390856748533151540564331505324446676843200328202739384913501170301470436877750707490926358791177410836911229320125200456589054523367296614807795745599964309472360475972184074221106444372504430179559403488101714212983720893887931944099717592331866156541154298772032624637084665012471397837306050467101096984899397397867792188370188183614060284094751498227280899473021712250829779828400133896850500638113942795304344904313166467889416801343059075493117666389108199827979559289591097741967426434009026433558541920954932930715133340871228349242966477599061244468176631406147237567320982948615759249151402228103293538434212589272451622614801581114633497753433671287019590441432603557686281432559858800897359836821989862825732101759273671523120962944276360292546901144421355340209148241504000979674489613413895446975383390619373433505222195407183236450586554281548286501398867017677927674484783893190434971915889122244834465947842131345410157154082425826345474988238886116439106088062533061954651818366155660554909647134201567224189493170178138674978054127031721932597356783180080138454545730470769903333201353543975900608756807684615815795793426346295462484824166955155304338801052135409201724550917427017289480296531293445716826694778876580097148208672355777021493387883202126785847891053547510416969659276141968477872755658268022761187500948322018926944883834082341868916778184538475081724147415111169642829011842601604022851865496949648282768253664036729121860435402670313846841834333281044016736503954445141116864911983978657010098159201037762344242112061821892262945861573232955749308435083069602079040497968199005396148660555325583279192306665278752081905526499736354909475348740807517790105378704298353511154731885520588587111972023022615867342293122642875842943859788726168180277515421643995889346822766823041642453793108664672305873887336634010560101258413740334213403752749887720721343745464550487806668733539630315177013078312558579535556052047901594755920596977193234476495558389450749293980060624897959815091329039415993848755378460100799363311459016237931086007599667845128796465612207215767285205961943074240140217634637734644754704897763832740609753003907416277678354378044566681578301315211189465925428299513942489879091912003905085888225255497674781993322319912965206721714451273437963891041793293044396476757047262753145267128788238208857729750017573457102324018709974292167940707106418459358832875855358438752925720176194795365654394428783254053671914395270056304373141111794919048979091404344289710174205437846252310644556877482791913394865980661640246466823975817019707222689352390827572221603680895697379604634210759881259838891448174069599217330554164614311184417975517781546582294616421961374072187795692590620698283146829083182221837090793266944149698610717824545448691372069136274099916819822313515104572153964816805564232680120761719301795670194034247749518356764962577012366483872974573849411579884380031828595720820554185702001966042398414141582006039909271018998138889739927443176190419852520298638166727480722125203792416079759989088748921134201602890901162917987425594893000375446317160647254254776844166489854403681424835518253560113934133322545281182584101507081112776938375433726074079857954324102849436248329806248160310067406944807055510773472216326179855097467776175466312164866786594663724738882306806206544225450009338422173272957248340062145307242094964640516411509544055305087713919479712902900927632516475193071540614876657008010436442050451443865342570423996035587694902632704354346921393719055969866347806249081952459632832332358659152144178328546847605920154361306215213991459336703676578825809890790701585502133012782457507421760788443313330857592523083564177792593741056218972649407271473464097994063575856289406764291902588467179869354322403887429462254283898493214600502616292917194954259619032592769843968402164068047162575037256234649055444780920010644855669141414026933996319492416251214398437750480520733202757451667870764850221143485283312725424164076227455507771026039539214103826412668030962454825302473683053609805472606625296434998929214029352427285433167509489492770665738415591340887820053615136561368923485103178142005530740884038399116228841843983053402270268890409592432165075995573892995266944902869480785736161171800195607834404237911243364006034122200516388667204969543304806513481009424749677177162709645186904643331015969429656536883218066760194728832086049009121195146313209391886290641023743883486687006606866156059875953950871330799514395784443566517400143865470538659171253491311031610667833423357697123686869528677446580356860602725005251874249371243593383631285008937762405784231428362384925246833618965675298660648782830578550281395285941891718409248736865494196592271265695014348838937337230682386975203470036194112829911318795947490085845073354567746763483325684439982752894537778178127723910753929911625189247404320729470591548309087714328046743753450575741411335594092348601860322320559009814983322757303441493615758411529653947144016779091648868571753687979793559971383774659466484387099628074817150500093753949653723353384395437241823809073154277313639575190901466307503531913036719782477120083053260773332565531348770773192568628141415162255989370386528414859355873525861686511811847341331783054727511543046734294412434992982537698584675274138846969151591234331341027604314748703995784992167676989038899016708230051417101964186176388919214620250261411232093029564459755114123237454144410187996814257923033917314591367077349638511951344725437030674538705177544528177611133766149444227932890785368337824086094169451548158299394238151887598023303285874812581195254556960382195856361178052776700490674211486852837609046378926431877916318343874684869314839186661223106514809293906098390062554106225977445851614068660874425298835167593466892983603810864386079644367976017437928992244611855608004237892889659676680318860451092845602233057925342399043227305678312091083017248098419468471398600976055213129796010577038999235622611326051264818613675455693175473471936960542998152807431314870121842689098442504868915367110927228746680147596847275718383100656437528980520115973389730349363655006285381289531164720765511267844376876940709916970349592995264525598094737513737503660474378157032355702833855985222765988854182314958788037203908746414196425545761970879488201814880419524394394088030253475323142411129903710643388986850334629122232743980151978969839993540905739546109450182550724464814008974898192043989012272654459802505666720619853430860956527544053574129956101368551141463085799646240757319525641972820897773093529037270527216097287392738028320342823055466447168032379454124799054718276623383354429594122861416937874855430429822433383316536716141613411347693240932925869231429118762533956931678530101963719436088095255269787154140160809647727135549599889197342810896173226331627699475084408206317750274880066509443653983557421142225607379151912728626604854294593228528849604049666061466918599896780237124326260085664594479373712943302175032868830380069151639432306374828095042025180165613595398186724372966847403197425980119831334247315373596309195176622348848164024797250091517191389989476978897200569382130383966319675565833053340604971825355712925817440511062065132794183769092506147608368978817320168117569692998930540537676621062433300388501904678476317150770293293725250692354338683151516746188045192386748237452167925206174045811329742987896810932846689415859143955289540859376378014978819961245099677383815804113041612689903134353415346520146600558194131794122407346857860193271663505355939685094970152828940959067632962602072135044755925922839897999322206527264252093166278404128623104175303409345949607135275685254335830166176014051088445585308530416076938112733967197459349901788639359999006700869405924584599836169846614118518850982710463856843112873262502863405647666048727243407942943949852846858151473943862646235183098389147163712229534645449477280663128499148220960343420518046379498372272002786874391077229568668402712282631799250332142217920681621872106658882354218701104787003596583526906639123775746840133402846772631623527820677755786371189543611667497878247700930457441861819978182718004552285010910347035108089820235169173545520296242849999735827413149977461072302521917401341612935277247994125712036527742047106357182528351773616205429667853961362083200282682779970006510469605687857528187594070122849729967597875700213013348308101867447829989896422409809392301293079543077326563493905856203465616725674013999025282636108989636063589531442448249855477537131223728653115680022079625976134714957824316911059038103565272466821222453445534879786982817762833592996865184395288644197517174234716458318840595998592428867523538690987124678699525980953400653831020956912502111831632816501687546393415923152370488273616481454298116497536653722952188640969453175251620605750020908011199490975805843395751320218429861503162834682069154923713881402257485883890295134882640967025961350214045908991938149493547659193179005815887358440834041543576514219202015367191780383380887249898769389889962121163780872605792735001466708960220825197309027394699953153540402209332068331941946869734200157770319034255175378400798426917600444397131304292583020475705306735222663929299223805617921000557426320529251875527790066622362129994731612947198608699739179251565371187665963555061256443961834521923333138740123462830758965567081280209425364112257701552546280003167338514601807461664574905425170300489194823882511344228768788874438846736790323280469158195715629815677990423526155775638616572493498596278496789911005030852955753653998158010605149981991159962126944102687997694191477458239668545959039291108716615589735391138759410402589301405878133107070964344284265907696951837064881551369742875935502438518917576845972624739625307127433541460109456654096251135484847812404651282599784613994730106935402485582895235233571116351338144078288407142183929965852294951050721902491986871634055967053227055454886182151184884857665909020630397296053815466321354840648997290203808940249203002699412210581839808394031219175408137292084725148521412965069035107965388012981766565933725221098674018192312381442576931707880981981852231805440015150167694953629007896692206300105716305784873962243929805857931781982780218764870110251573936772190451556842747441128069979528908556312980923499664633586453930875601126690534982744926688211352314961050238371155602877272557145909978226319101153174258379015395072103339540734095012948291000928520539861495398168467905075469561192777804985051413816599128464996335282896573293977491778618457185399407745784225774037206737484412869305771856658611400093536875858265875719925366345990688890761559507507072328880285861364428074710359295989077771438427053494464119531765386918367607867226158874060883746070544822315821854629800243277586007682229608419914978109747873391914363901970923586444901149912077897270829889383530828007532495374226298001595488219415955892284750814359579418128726182508374892922935518567992368384080640429497778976671796330220257266584750025911487311401932759415027331438733681751621110919173432010902288339384879996652339944659784381675353357931315799358112484175142912952844662777086278726214135702107523197013193437752316585619311041346289489930232141819047362088789742171989305076530778443821710028388071499359205070700439773830806400958576044259003423494295326017923254989935141040013993321222034438394976005024499055066267596710582389145022654683289189448472762110866453523405244873964115838731315137023075077368562975149426901865702670237078367600225506785919233256015725920240035395770541289526708834274861248511905491393578600266369050456033261953680416097399737743815482095693560045577034852831193023228828309200048735128344838730503058755880166469778740177402350622969986562532949507635398193164729567814532044495098640687562040742665584571757793522533089136209360867174514899961858788252375185113255797892598867104105802402828342790928591943313367658956626371323161268455604799993925250639536770239509787828798447803858028475806447971144444810109426348407965574034756802618852394534918273764986688450541603066301202681334609029262622185115663146039287149373434191305941343096005900336144102521057331095754450280289413072954925752314907202320125315270090354208471629883364836676337704927160748122273041525708002133463067917776596943534753358597913643353494992192385375069497087234922284424897518744392914401721590207998345180000841110535896727290025088728082414830843697324558392533629324875499558460338999815222480783556453787848359205029488134838796193070781170663686255749594615612700732688561301798520968470197798916384779842114964713698182725308378378035250466001330682933888968122367164716014291617077188196778000955444674519290686237176339893037369212989622856342664794173337287826488820548670607866182295275585005489830735614736905365469615711839282712270699080059296042479591266656636456904247016846827808773717798295553583350296371382879704578974704745482703749189963619816373653645553916329775351483234548086351191930449254895772803400946010026302883564981995475945547818503577507336010706685945929999373070119322596942800605828635759984882793360474241187574494525502726635521446567610386671557775460034238623331026660273439037797986506241804548611920854108106349895983158420758206808036606775712778525730158297666004211311760910353889987891307220186781028013870390987779861207549012541869833963260931770581076922477850108977463767262984226312280009517542571631344508805587621375995545666930155036591750576911925175188727433399826773489261147278716658245713578602099524560491042397693814953827090588021954296469845081672537317772543098455610692468785203948187043342423192048200989266857842311720415216004373991360447543662955353112788209118805989632013990232005896288005495280167398179549233442557471285035171711449304503198006002336849075296188060420288453020512210466265852932304204595508642659337752530029585406878156761629776400055736671137191070773495147930910515275618136008796848980931964414215184750940066187252660431577282120668856754422427525706575669269455985956969641348871810930642329467399247674975318792488481070835437049728750487524148456817136152271951245818805603216554317985657743155660995305760715577886783412011005630215054156953516830974643988143868476111841625759396097956794782244468732678841535763115269797349451838987924803482055246457956581463100071089071657448426638702516431957878927807007948637763649711723399041615998291622047191005023131313930994527237609691741577313379195497111054500714873974806854102864518097621539984341862197825199955291645923179269020304867114261617081059602221079446289441986912448897825271706139083382536735511629009965077989170120661457838550368208502796939299601268121212045643072272011180388401918609105862376802257355732330858688291117725321459861013049901356168941720702210907548956718622237700220459913998110011486381269885961164367295484724347702636108762012432652552016373560988338897130975841393423045264746164762937600766707832244756293822970234305644493614607865647817926901936558624421894724185948562929875678583315123539201898801782129511323000515824109693955230270762557534369706269037597531748845531229551689982111781761907134535236831755369960757132877890171964817010929035917899092317497467914932427976934380712885700548616022762243868312966821541357175810443588102391752683477828674317602795128884037578209299803652840147740483828964113753283042670727822366527688063438469811873650462706427146305809543998314639492571338764688723423801358245296810981317244939685360488904456678740342123448148924521634247668686518516814067180656026560791465084603095555135269658068735678738865309796512367894336799931458586067903283599840485473458556772293964475291547007332733805752778779961728570814752891144564289626325238277944921924691416443478496372751035661138664642570563367255879529830203948968100011643097309413820164471806460734324316948005982055834421395541286838759265247805223732709401906527535428020792911166051565651259469678699838541114889719264313861740318423024150055953799854793347204098684246687558474976252471293905936560704984615143182895759420887542037390919817546214776404475584869811509291392007050856155349876206120138481069556679549606849006820175311653145623838368117239199388839268932180098742519062699443964020392676012283523239035483011731190748498763021318219477849971891529155430536525373515590334078102171425166660675234489233712105660228618302131925633824641713697482380743571977619956069997088538174003633491032143707470808547602593684719135648810771839815173828087973363213880954939381561046494130921968328644274621970942203935308710211309465960455085559851010655466237936619161923565023521949970740246055058209137705447278535949253904547552741167952317586978652244972982090325248987312316951450043898716185279624440874403836358449808623912540761193353607408858838485415009474340498472990951510169754195096916970082164021776564725915579370254956756944367599783907263648239634226217028114479491761025627635540592157516689746277791730080656839806644511590549232494426197403898647184064567915511321053989548254901579493041770554629662298288133916106574492758927806491751543378641031830693893193041586989805606454526662121034505203774717862644886494780724908816082727140759165736995280821449872660892614483944476233823156780091142433070967762781567064266869099896694019893546034241248018640505745571219963064561311790698443053246611877108911082559714283778094092127013724825584903306738076387980113079372296824868123795435710096739130211030691813942115046965162170395284503598310213490507471834514594486101383502022202053028113533868958109873267894659570436616483925621004408174353579089919976796874830429003260523750378856187695115532127347757891753237738890831833437874047026711997245959097246805503135726061524771105755177368905590079840980434565415335738271363337505196872726198725291435095256879986103319752226124541717797873253785164047277233742384821287226741411360443176381790472300148633284622602139001669573799433799875453101201342373682819708382593755150187421780743110662848245492548820216402513854748292338060059904631274021067789911678597785788647416622507383186051450146244891274089596328537095403280229863360691706395557785378453320901241100998319947030169992055745060053983851418998174605372052521130465759191409232210073932697903504686975959593133801258774297840976153776927583854170433355312247472369864261357769868242182375460772929402411320146338917532484402993114340760346528201938320306674833491150440456219942866598680504529351849315593767325436687895450892335048037671814331300872455875020837558537875282358475079947333120077945966512690182032870513061896178104646375711672047984886713414592982221710272520533480294143195601268866718067238613977580617103157658054746662829732299712958400279334642983577313764260095878428671799483532548315147075955693096214190903173725645238338642770405255027622742346352724556618932010681402508024647344375538034737522774924278253594418228304997269784549135906409592854248299315156797834141040440974121824580997285183506593648966868839009165120995956847703327422121335016074600556970963464028985624383838683851031900678634400322271620431697728010092295629898271847282959993311539611303501702109771592804061344387717944654319314148695969870928917570505133183918293400772335332753286269052956310293282061414217704420913845575648901389561656828967401057233414925294172205137824231244705594752204064542634167191741022807707999833606821128180081167534047200404245418563285288200793000073480368176360356833201969086593439436540466722774446672026084572734550240380957221977242223037309106622355272831273597241328653061574218534841557611259185296152825540587895113846655269268662741569624651659108462906159496596835421610861485229854986580637762297466904455688862651643703952982213821289716783339588237048209983075416589785738055547897411102464237449362411679415291586037070026365866497264651001042233693908797168090282863159560912725637930840926850936189869560187975010313787686511060477914313523005989018402597109999911081634567648546785158663047174534079874566038564174571066427716033826213937604250836947104457715507679203502213869299046430779278074269621850267888890813710209455241672342834343456283648430286559262413900999187759740981189060141142193509275462536330660828663957589574095728068096101988976528981562600511507917347331187596287630385077029135433382562966660835498760012739693662395193778312587657987686629053012974839742920442460039335968477794971160286000374165086199879216032896138973503669236538943875472080202243998501751319754287615332097084469927272853664993519353617286515582162422578435568464085031694945100297834748853421240203392090304411543968008407824389475222173905794171094021148549958543879498025603365179069406850462614143012178280313236286035728788400650608762656894463708758229136595249379925835630593872864895280068243123261694547123484506456461340328322006181691772803419961888909852198483922870755684220004637892651768061820110085950478916458920695916410922787920292754943212698806756238764896076914963806236604066174837222318199560163373183126095535888483172360133803535435938282156144760751077918187773368625459404328679440387914047780295947064638228133126943842006164314450729707374541215948123188104522525840142146208966391384792944655992947931971019281106954619534142474220564128227892875467884927403238303204177193432541284326176651750166374519450445230600496044940694275344538074589141279163648014078186733434680323552806614184550863512085433902989026694623414881407691093795209309403988421044359613320053597035323632017078209838894583114795276894925820143218959003302693515639821485451317555663888924964931822482727481019879039891904689948853873719842672939751462644202517371939770751817686482213755659833628842150158887163557162803799206234713756331655942054814670538307384666655439179429984837095120429050518117692307774153102869940473578346326404611454364725383959410789223556588474525588927936013618945561933858047088639476430085637768639371171611387332013496202579944784282912294105419084766281129287589903172899117209187349460718581135145894932007007995876779515011245304853584704546094434279707815334222537860134878267380325941871784839641253837063177759537148031245921824845703888711466124367497078442370542478081808521744259005232826436560670152898000091626288003912852531418913297500814116893236810744239136963521633947882158377093088563073645599346179318194617726453539277192457653919092270117226831467986271107853350498860282913704754944697226212816454615793251767592244198918510486002757997861066542875856114513853800693273905205265005095992785912675846920354371649517613404957831478756187853358606747259552453207932576569184599309126138992794117362291595624530401604045244443324171907194367626954390837571355574477876156253261386929471032420366100411949626594293088081266493765625174393591193266799851050563820137952106349568125652830958700892370594744764640287400333063062647102568238021885478076851882532420556724430203925214379539647102510002724448412942440522949790069234679981051875054483108145164973805722487412824303061772770117269262775798539844618158959982532675338515006977054369124842493584933802646728530016835249113099871842765848972384960352812019284033822917225968663938592086150276355693811216464422347741069107702756785733456834494027544246706463727806307705151596205755618809307737776335643303295169143691937556442675668190204545452318948269976753434098365312806064471393118347933300200179402155277928102913120790837074095911556547193586389508783405025483513896877783780576698238737031533433202475410826071954408088288403314275838939823942676272133548426210836725716386778071177893216401638029750540887081669514095963600055178017391161002831204971138636153327733890802116516861969932738100539787573509221134607517719534690359728538009939876314850924505148531485508990764924112202898442868411755660172194845569271100171169081973079154684959174632875872067750072888434556659300686764261432824379301733595821654990420585300555413105521471800116551522786656617390471288280879258483713962595880634398372839505782751014133370399360349731161418202526575276742802807996441951212596575120939108190288174267053172293216483222681659381870615051736220209144790134275127847670080217778495426220509120015524408252382724392798918392818859045277777488577312151672396104356601651470756212786900198912673267392461808596761467546496237792316005545021384781740917786666112271591230774581810969138393560872253861336659032684689878431457069708282366120654572220488329212700043757430969788856039094714557270687234435413830827862442223195088192741613987042118194992793243227429539332869510594763438364993653582059437778101442325760270401990059933468888876566089097617167775194457131003733522515895573528007114673231473185224859318078812513695906221494961251016344616395359021522775347490597552640157406338310872935053116552036679578329740745691931327312456560330403290520989031084969151049927761451420565472361665319425352358586316963951699620840839559270981111598761599031927924018718774913878879265101575604827494756790217792023254251079921141355959669770728477134334341552097401273710394818177567860787314857843923632487325934980636693093796532590398293833135812541929092434482192985581510633114795773291498000638308071294518917550777109258241707317784513600634892734602901291909895565651459912832792237334373557268115382374174204630945883095649343851164774263404701739670694483593612292629468873738763776508373859700365543807661378495543760243050934751838242410165102074882989968278868265067057335362670231250846536125049246840558636592764375909772864682238578585424681123805844494633204835375170873708774787243313116462942083163231825849118625249962271672295901020370934733691031538123900775253169888292280813734614964629043532590479975235184258874073844619210330890018414509930736196530413882089353618319774552830057117973033015357157523483590426827495802437258028320133697266848462558100313170353270934780373938960700816994403582545063110575654390870167119783274346442242682044602653910579794498275307245671978043418425098853921702200316458215937439776181953866651273035560066593173503768559558407265389783838618408395446296656434552122617110943197715163326976039466768426796192181072643534573419734649407692974215316233064004849152378675305674745459380768911368689718508733515599082522209045542556379597426205657706408571219386829985039191680323339231869838995746617047511646524297349602874119271740916206519440323187718298079782357532330915084270990880631530164749080534611216681104714034487553737709816661625185711871438074648725309615328839678482320275839875826660116223415505763395383046780434113267676824215234570396811166163818924297842919989982097856625939954752502079466859485596535746337399609291383299612440927860108988603032527566335792157661546449031661078456447230088671469003340246316795292879655150374733858895917903739582253457151268785589716976794210216705269685757456983611239339215336680091486780627880616275017643456898696520762181158365502448204383522367848292102144685923900343126389815348225506268575741759665226028488348679849718738017094070457046372273738961103862725022586068986439459416160665481137075059791594578004209360156837253469584991139026529081972626044090503352571324976499537166294022097678009366464143752825020848296953279854544479902292978709980190559708353800002082665998330182480594135892301507881759616427317243228233261145834140582994529391848210062538182864689585512173188426169914235488014408859657653426176400300717062034673932092388215577478867663309759315063069522069288249009292460975994203324582464333536898994071757400172088159038614160873342463940410846438040527968617038148802418464584941857640280140959724568882612492060328382650169475445470521038772168789627582034359907055084090947746593878275379444915298488414403524414425777922961657196306794304536665266032508684706319050055285993823858526581217268680554888312942255024142937551981714256142831668649007405058452992565722025903083623635256545125859800872583183460076315344159211669511273001556982007888564467002655551526644190268470766875500540819800961985823505686102226022336967057540565354550943783644929935646784803988770780784718973764924655493503222877548465133009152665614624017787998966233632121935163912560913855906792812066164916356051522880417305582398142013571393156137180036434589586572692848997421566322284195572594405271285384778498957097303579289875606999815896608403688701028112027188718361494748263665719000795030338073162522578697504185379322332447536902685575734457609882778789620406530320123212558306091559477396075260616765661527318855691079720728299955902282622419041461950993050628090764118498777754912554998576628435748268343394660714628979435337872223341678053428194739335258575338083006468247228985406559134493017143276203786555635707054833601290776708008263654689072911885244933296508782148649401763629531201042928740074635728082013654845110225432589451705034160731793636816914296885001805295195270866926099042824541050031089323924788876426517990230945775015151742078432218502319808598802759293390785959383692281672413923048410221591299937373105528855827811909161088112234920874204072538495245299626800804081682788447170666371380280192856236549470947243109248119962369569138525798880095028677094045565697284431066076801037646710456275702079163683077784240715271167842237213318622374821035709267553399313611942085754983240818811298297390546375208410975782508796179174499300550173416477100361793070605834878522827077267562450074645258677762641698378358816814444525550762729777783900094859696906722400141240242127211238091121592707509304641425512350663429617263996964857787372938432068951469672709448035700441604966121924982848054321612813607381957300333568728994943968383203243892366609173221210645806372190645247298508698092521303975313135474320475510916976563473914738539449210680159515733851489684257413311862358590516577211847959412859492601137503672180545365643694886534665609869647751379287315197289482016609619018441237460370951994561824708272478551533351236444391153467517739423988725421297002378135974948834417204951561947365500188464864242055401640961931471185927453548157850466701232018360424085565296324792364920884782940003465198501137872425283431936980976397961485251676691471746917359872204472116325050382662033157861586142157643121938546530928941588382724140001162759834776038829436056508647385528275642815017205382130604705489710266492447614977785033215420418178982899159939186974557611719172511777353333173834574234797440022507040732124174579040454999444222564947968626264909529130122244299084876410576959658045130954393038911741949659602447460959639854065877602743588955214500567033461357485847753842425609396246313395287641990945587877969666918434304709682123346024692630262807687900426848663095525445933976725837058177775127215292928231562826775286860699435320607283536046629519179499148212780963414031541599005420697459632800091138037382114564420715199518372170406323342464411976990844823555305422584816072325160770447077840130752615676225525342615332956678953140135465495368851119657204167115341070234174311333325183218715722353542266619307454215977869205255695762485367259869909546473873072298719131611817691268946793787555212145425316238382085380873942357821092986797104487450085260349229157679384393465446540893190661621933835275834429121687473739036330296255409518540858671739016630476795472989176303196580522003600532945574660021723264405363087048122933206889945761614403189499334987317134541257576152064558206645760031049576127074073848517916400379902462573506319941895078109686623165779586831136666513357417633317607479489905424922061100185681293881169814132514478640918943086981546918043178249015981552308790858154053142493765227663259581061911832987935432912534912170869082180108218589488197463226053797786953931629538604550117315786323205684164320821945908482997958130960244290438258864908410010170562831465883794792402622059379963372619790031880186502749660710409698044603426146663196137295374163864352627392027601868763973425563850950780175549843187648691082270653487915222227307953013542950513818311015880049075926221204927228389352737834822039905298834230516224498572265773705116556078428072181718117409949628156278997528413903458359249460826921037992539327104744206618614825674847319767300591762782139846336632795902228818964135167351854682324192413437070599337896634199138885025467899395552931881301359229570585046671168021750457703848334834097849303095936678511658192862803007099568111292736966457349536650128862288685532713967382761537824738060014784770066918907897030994575371944024674107921466506997577544309857715053657366645526150354456802673005916495481569466139793284519472608771383594781189261980148539696823849911818134915285521379104446383388229374714611346961257314815018419248885826273889448347561904859485361225243623764504912002829841672143410951428846224485785769737278865249300585884226049249146080673835081669655503142106594214803654340984158914414064204936781972934277071056985397609571039851989888664322366626492058169706106672541626208613977025268481555010037396068290560487103771735498987129575506725957181146116820116573221156509066620957133232630064015232109645148168212896205818287192824594590792551943148778488996281371038316543072525136984529743375863378345147784660150422461239754110917424759730824644077531709023210321194871541960322784662239378139503400059749990382984252965490392930827660913871479871777334631658855411019633561901725177283659826042205862740020451848043905504044540454574850034303696310063314847997457196356126965803672071765356969959032567829304568026226810916577544392648060082483249076136578465475168208523005419839226061628658064592501083565469034216530892953245710759563337324804182958596703665240569055974149583257137099249409511786266474284656687831134777725541637770003427406241043594657591934313454378758277212872541570225411487234786447981223006444199225467112204108769937663134322362452175456809950112041532018010284367844078777999597395729200301417421031616825812339966309929300601225535472110757504620888432992033375109136798496763810003133544659233707305013655958625441854358669649893813826498580978511319096452879018680566995122289161417264043425949660966811193574127153554060725368353486810401489224849737986737412584110990869067679665539318904245198514911144566285197129440042064775351716571996151016012947580736779492023730182159869656390532053585256947335485304724015039769791434224249835797303723659735034184206237215303639621046059427914336118314807168852060944013159007338625452679848283487567775626815064206757823236119014522318885162520968922137355936324554010453626899013985049653027892459274317681703161408385448620690437231514575356585776343302986917892329933616631865309190087890600403317540353889952269858029945820867281374906969418263327169912355571346190989050495752078656751917592211119308212885456815050201008189612036339724193797103975345180884905853215033653736793178162958692256041422039905110879323634447941436753858902608436549798367546778026464956428677934892433783518373045934690692483610387053199854734952681526671115466886307506589268927807378177551173629157849437250208619375890841683690309601541191042372339241340290367340118559332951608170536399278751801264021875828960535810254124708780784864859877295415734526637549782253136176615001328982910723245185036209349090776621460794624367681807906373142410308533323700836713665548271113530350164473922324777807665157232159678765124502018402639234234313082412453086573575867305158166403070480194599751671987058582009196621858899874007386872571112537968557749522349071441349009176260718016961477617575558598893883834003460993388397623563669786882307323185958624083794594591275338823621794534541027755541040310254509089807651352902543564651314689447804868241143318262564481123541755826951204835461417259742740919958360613566764298753030902073067179078813072365553094480763908054004387641020932325406093367970440327376279460886738218302662018360053926519168231784342132443839474376306473478520140037159880664077023835832908530918720091013640623206888059063818686132537577781139985877970392849085205085954812888252366575098482476605412347468910051830902138181871896188647738582827694722423144680764206992110843652515660470574597054864699739673424925827523396175024562001356993532714145822893354699728786243073264731841510714837494500535491865956659484899058669173052190510519114754143724323835951780321945639698102784615860920177991463221687037459201063967881756062539551189119300846681624518848516752335917547766352328184242027549770204018590398754424850670968621303585414960317459537294775149767689232517205125200767743550987961433923477866514237859192457031248733899748608107538103571948149688608456731747442424350522131230432343360137468608080673527368796440525027227465312047759117224180265513986319487054972426653786788534006362912448049692743732092358773692908965675565912415253858845514478797392394905888410159138151133515511760117586783149516784599915940761903252491850673696885906178073867758450321833330552594423613691649482727453572703305240630512022386040524081023500813964018250966362198087457048675984734819929587217898955658406629675086059345806718941773266638106545360806221390901441583702618414260517086894179705406926813281850234358526178656070887966310339449527776269102558958067883043323921630635436363225726185910172226150648364318716903164087080339676356831902573717331758373402085767867008822262971930852355834476932740374336458890447240811143474002918983468117196576263460092361429074818667197400285688357561776936797123851634629592188894113623370322745195597488966017337875238403773402057949447892905996882977560663495281798429311280305322710594269680830473351686549519435480469184934984680874980338163397154866281522184204084293009715987498832972927905656326788062705969523943337450098507421606716865829886085983902438742038990900948671771353087274600040493650096351420257062378804706538927469205864421832571225569345101330972305435057378580262113789213903920484936765530295666080871269819809825328448077939213332080232960002681801978387793035752007397202129429428325406609816763818084131512352176553419919028092877613334110459012572600893295542188400614431474258623278970071795975068043032141003232467911979574380792935439261614886303420409690137319141047084049390439611146892938652953244987591379641357028696372380972251650886166214852840313358386541997144995396990533560673297189134539126339931585899112221495079291151974384845099722666443568601862451210626956937190040273643145191068575637045691380339336002722915175490334008697664775238247120856186738765884753692256514021625160407069713444521589140922363925948711230202337433277224453934256108758805694273415368534641612713486613884164142277960200112700553788376254879515331293160833704662181267148126302392117714776386336882459339669922493670399229638917754142079916252857162560826832167891109011988959235973950866843025342766733991545534197082811595226969259401118747079172322254914748643577515483434273190972872658346842753290580808885516893359079820051719053739075868760706828561555587133273379965391167662045605978148341620966124630357421388079189449595923568462985884109267803938954077392336218058863056540748154677399757684487880330608788752067391211332733813443511110140274392729620882875840154459492019149254898672221502724523920065391379482602121496452033148799742760110247034592846953833193188266507772568312535965101699361153025542526553366346552053181500263931939629536166027835529339627819441650986547619847101706112824487420164615153866419486509501307142054219431183502855272885060474335609718172868113867070922257514374997393247711526749480841878886050271680057389955137851418721770617839199427712986108137742916109477369012687064352899943348486823838249511398660286440707307919842797835288468846105439159389335795838103012626090653607989837587430305850418814958742466293224405251149270141655903151989631461430165365395550316660844696156272212530009804283121715190982598330453929242784546947326467631687173431946275334528447195501938280436584950707351120152318305555525128317212905115877521313614461590783478069948334153523784272268732613872255263370606145989187212146290260111106969630761933502015791227698936371804938474468716600860414343333564698014253671903170695949331461378242842245453904303928223260082861278788051403691822160042464359650080440334980832535306850464717747668895885613670147633088841807936448895708522492410953380117076072320613504216451077943369107657059785770045944412780738462494944207768917875859180143975000692219446418554087543419029086309720931941395766838580307938073388395169688528770268599051132096470444478370794007662745253984569750146503523476984025375849605619968596246271101774619574321489202177788164169121005465072593973651823813172033854977113337170190439471840272149882729882167334270894406076745235846214110026039675095439974771041264732517814152345803198498214454194441307288058081595768103523459093255874001657076181279495544817030175339174921341243192663897032888131341888287488086252025495406599389516860290053450167717194881562266744104929233047033418415772414148650723921806228474972654846300045130714498701933095942369860420739664007907353123992173014865570641231621178251801857153133677034779703052890143302960190183556142627033340818825793526478393053607719907935029291645423102954277727726252314481070383541960240149027397413337015193433305442631141144041871486806332090631815615305207570382772071614597088924569668078192357902101746694992281494669883556472526876069897576752898426381757516649589258808869818022932487823470568363643008776004984811872339163633602484181584604598921266980889337675647539807309558811684598265866656008522323299374378123732783064783685860522928334129380293604068243446696076392032802146537380256273575339616587564529620983914380364853945117137671038591443540466893607084488754772667691608637616404219281944183310463929211473029333116649533789917085195849689913087464801073155016025319004186104746898285907859080496497897337142072049169973463275110006230071849261316202969875156429553172485991431402106521418341254957759174537110821074690829459509093529687252942875614501680146982084011500717037000494525240026486147813709343619256628166871765841889407985642876594886302945235511294902796995079272426078058868402201500387044201146284840782408735146480056509971377406443797779977322107041265489899222644042792922313887423501207135948362191760497440205881925666318850341289719799813726662579201515945371204064453322255778159700148335259085061013862268691685804476369615985478073602435916586833023325746322807776773020971653468213523131585704759945423564702209274192793615302230650347488305061035169968859485352561096932351941186886710841469172516156933981719134614002681709220895468054882144513283992785216651303944741883677740081341403048016177952064111050262621001809345913704780791138907341770478823709484839775526430388524717724644574213945906136925506898602175115526516591171624685667302041110875524608388387503857775016020397317819306514462410055241112247611750376827911038056417876857509336371627768632698870953691188080316163681948322286486903222065070537844274272304710390813284846341921327059388404028652259246909634390979202215426292374887223148770248139907238902590826262325014732214359414145640326431358781055514602227680817242948249416945626515351519251462905201185473126206710284478497722431449146500262487913358790982545873356864986709459428729900348820775336902223814502825388828398543781472973643400099011308774591712729834043615067009312678378598038244052492487764905332059772988623322371827176377121971202366746851102265491442917437818743732534062639257670691981415524075219550131277725744431892785489555279795876884533311802282548938373826723122801795597058212991155998534092852545222211716103673063715747221652066324295934990542423295013674446038457856566136798436444369447245206537144675792620312908633203921326197036581464086272256885360535837339796558603127751820342344815837068040600166953376351172987003807995519174515177417515779839367339325838410545534045459704487298871542863226599003956301731165061175085252493436288030595429949621861744707150821415497262267767570353137611916655072681069915186862541085856928093423771658191509119474349730352636157982083741212946671667201898033569117983389796245010199858727146999868159924827865009634371425320402732387134412013324546838647053985195021712805738728434487891030246723790013627663919227841330730416192555939181160444732797027934901230557486805144999430430479359063674772068100932050449321333819159266942163093201808614779399952787282289717115863154263262422527769170623737526774619774010878665668851689921179110394035199566335800338326844973976581981572587323281536759606551536153162175339528423543083521752374932322897760613637147224088948385094583174328507048904927046352070586639612037338859784786162262642549528944000341015674933055650531282926784944290638091437242976243287394447231161027934576785676883231282302361981212254471205947368842344840224052404656783798842898631353360114437711287516578300252525751196413546628386507755663293735832803502644430050977967405405791027602603300239194245616303563186914280284891607964980132131029118088616368971959449347830133465938758664305834360247029289256658362201248527109562327743700935969456143819781282495164230817925806665875248110816214875306101674772876073122341242774677384858189307503437561620088892295498054080150292226950293761140571033676908263607725397154541321024164573284248401067444419718292842120448467451761249700772254276236729719205060563671197489938572549739392837839475780580132104451618303207357130452952305610708594438955354516013684290913357009106753518527326177215559927981190504006547787034462375933639275588960622862737770161332396031979890084602540573536588423422521659109664554980908412440514902810525023077488542802473421679241099920279479236616582003648217621399491315698834855179132660670355273853928118573621416242168204761300086515580000548473522083250733724701011062106068275985828098056772477369718219579273743955267314989892548797891832633886228752028425277438783443404599410975769448070063771321431864154670490368439984727047171750888257295875280864524791953245099060739547748305200692261557747533792799600177426562293400172394187129572662271271590522979211266420095671660106808474639571659559376093503272490922260150727904269902580570221936301040545496404571651828105037210811848225292752516902592372176608976871630128745935086920617779153225608715998583236432094159214738564471669943025989592767716218974233399113660575092866459786775842328836220929017990474708607953577456079732935661175933090643007212860393677725731903891522016323986438172908164396828616476729298768566121409082874877662811644438054429758880130957005040147345364957201076508639543359174653473993827093014413296160371867323052014285020017827713944225061218975128583885240403526522040195494721068941632080666626757153920443090456024967324921680518767479221079097737441400622996500115733801619709002573612956556779657064049257505785527213682150905998199407718105533822933480147691779294680541310466536736751425778894108083270969834750786385325421821748545929154301804170317096717963983114572219129399644477637721111171999297639079153942676857636807310621659385350173864511141699508116821035595497652040329497304228060961284028507211009667150897598275376151962309534273346768500733450692784674158120376392950916646605390789081871387591255932876971861029353714923016855070185657166173658002869484848341886766088010769184722533762373886228749505160248954351421979410028716591628918166298820846598233123384397017780221294064080333010384132220829700098400794558806930988374425404594027232771914643062645669679074032587773406213053636080596861626693938973948101855610830212678688078561489451737118935947492585321225585071649808582286837825818130586354690960150428155850087317905141467839903414453507742354968308029420873501598795539755841604831663961757456684952262498019942020916484315660169014630844907485570472083091421247150868720970890710040753287632902377779698822362303332220257509254881063296502459215957271106009780699732100832817771598862135986792650410146539951107355791296861257914939261042874098018154934584855063023776821861433093281145450926780458257249632699341119899829596540405173179901331500877765060116321989874454083178564124965568577276906675069555500540316295841812646204635628774973279559995939107191230343339434106016115911787316410080914669795990965346690623616445863936145325449296688759597613366286989873208718420746709301617389039543441966730961752354302365346089570025684012522643905213426813526026362412754223669929087687327570424740705024550801134533900330897154074835598885673851064210992897368998857918707583463210961368317206691418936150641005321928040631648285755429573686006799146090019165484830605899791003005849084818842155964651445548108678547723735881230722565327778503560296580705860131621750659717094633731689286074827180765517143064205164087315854431218039192133227580050025675697356709985497345411742482598597913894588694722831778776473245506199547904747672637075279818131106913183494368211471850896745473115692845796050422136694649593025829182930324027610212651847158885535995910141887262037754108248530259362847611881831528677002455550880642408779043355739953952751815530245453484818107833090102005450855385316191687172782936941972708565806299272414078305585494014557725935146178203004711777027327442478548099212805956160183996908155701523475071229808771664958485368917458269570893841701799643574354643662401507763563635912531915243668268184529810592102233628099296482179507366319289588696742286656168316199014793055465346495954117523740407916841659946174278888185517264056313131804923174816901526219830186690061089104016788164364253123649689983539709153902488653392133858032818974939117977663393181295276188940133934923601971873554142947820932397084359678142972134103969932573995886971503449433307747600499707269059277354354414563564710624307137310208700675545925815051150834279046452544985241411697300489896096262536850486677789341627358763695497467849712762715130509829857356193734674554500336596448301502019680133869750190175488979635806944272237611540269707016911923114224939261008700649554679301996697359881517308848869776783915956901831235539883233684107777794532986934251477616439919085814130015759110175025300889172278651501722516857378738319653897805179277606050837012322432972133899604224585436352505798031088038154104888018142399937338339212208666061589047542676104993445074488221714467340767830777249332741761462632136005085771971399779308289954340962584313718539930215047606912800610235321314882381449329394863843529223346727587624942325365590373549567058807395002827369343848002063279584170220532833150583643761184798820625690862506064782471425755873018976060612107069735779173904187102341836716848058503985351446788240431178728416858969683523626954089141728335295089805068089932855967187556458696580192702461471853286977704915241955364719113339647243000148972953519496850686870582773772086735711491165839528442501192199167107960359274683885061356038983552444780390986267095556948101140473353819250880067866728880496128004127823288535154976592824511453233693953724644113887351119155884510541857316092111873569987224313841966598503084835749562290287410704141020863927593620109917866591563877552020333945728995579720723783280464232727153968654785371747726005892154049134943625971619664968031044084496303478654086369060230217367434498965534050425570965927122444875163281485889985623725797016481904482559455060075768512569360494358071898799519828503050871714781165163962688169745461961854380904714190450377162284208283088324313409818766747748657943618335861176369521428046982860762924858014327311476167738729504627871617880606460611511235429885366336876318786478020425429319153086202426550410628956227883816725381688226527684745006021919512929557320023658549008594737703332442552651020026186666166858646973058453663106816423578504556643900208620998208883232723446749681983013421061619508674613682980831136836888517792347574551140928116549113857808263175185296017366110305168856916088278219371775215395700943044344038368157977149182185270354388415302457313543799086292362950574790054106345173358835865135112163591261142725447543743359386324538422314768893047193335488409068811678852775886368429415431148838080437465014603258654851134884041112402164579373030947730081552752921835211725127052482788413838089779710500589469712241846494419953822097392251974184381426281409495153131599324670404336648814922705540563637395180888453495003960539889076338746039317774080524794219878792256111169072558028514739939253044824074131111385006274929141764704428562132504822580234403201885054223404089366890870888769321221844368171940792452962564628904876976890038362563603168754973708001721993383449814010156628081786771750415326227215684246100965898283234473597747291333761551960103136680607977640532942315284951664374475866160312587758367572852319327386834816886891153792609503375889248014193292328103825943219260485219416627343109715808659374246751482467110518948808855585882626810029021345630878002774795861330414984897603219798184511240272039772071448396879123410347992682366364814705651808354911223477495571995666890110329102020366508777789567065547085974849312423185766941964177068270083289826628659161950578262724624861455500492652012208869171741646446113010073799901013809511627950122999072299760051897825970445875036901669518335494688844875399877931989445155488565803920827450193621216475662652525880418721204821815916015288449883639973482415771072867681390068130560479283951829925788174182917829593386877118783157419132515004510765390799111123860144086850259887180170185095525898034643293997725272520414599907599155245640059248439136074220869181156626076450493296126615075508296535740067067546310393806299189489540783602622354961334085192477980943567971860093599513565045340115175864901947096573906606979273580552294585003905224500706899439813054808234581747124586522100431793911484321925958885322610296162693180611466140260913851370538368109457106183232148732098241522058645552884145642726209778304170563593388324718093429928841416188630297326686513102376390675876447121429241179234888665655335639335388695699591527729123713383980623193311993169349154997760036750820574030036665193533022419299350311978653172583109409880569686786417880270285416865749956015728772515181966569172855411818363361313554376026074845274863282860298201166421779383194595275836110528379191449291916044769225491029714720664864138450390037333002619081450969791235130771884532803482830391950435840840849244294888019951756182886398020008339641130244379579341080374071184506276211203218889387292099434414255544639198194757376811412189138814679163985122064889496907722351896570580563513468751179264439568144826026715214406334566459744028976501375014356983001891924306330933548398657378449021906679330277144015157121637137679682001751803636016912649511756406635717583985980626973398953872684097496938602240277710488132159665883565385973684369584166238634134971973529665189955013950559538876063708396694142252033428919421895204285896614964882326677189453550850866987046605357149407914859344930348197443512080230494263693242451791786396352939365714598280158010154956672636527597112219996611486737974102245673192455207763044549681620080252342358206594502746776653062782284093446750212623831342131787408415124801280642705480053385621309446555582349448940387706857182203362609978992298737271599403471144162296664240202745008743275914819177362260271363785267631532060944467033836362816678787598597430748756793368199905486167460077794905331642851956540203078390033230797007596114297230028170317502642922959356501017716433571406679230404674493015366864986543807098136155961139061815148587512840008348427857739677341512880642943038205920046654560948208860640754788879953841275118638301961054814833141785752480689237068914348281764841046344470371908202792524185063699908345730926812184927797726958491542264358693008753361460616618550463958894750045790749682879076271630612116143845376136513577762047412070423938618907544154873239830074872717047815698550821316058891211349892902048946440163498702099494957814821029365037697218371497243732337586262107749271249537043226742306771899258016129556767291496342635519539374263810015172996895468027643853488832567990439141661355213544604010278957047859542673900552364371433716401698563402736397174831590707245205444127650321099549898291183449816405150727536005371800060384024616561149688808047865709174006556835707377512667383264590460831905589422507567080456588767499463420438494801694409407764171360915110000962664540452747216477982868042655945255645064676140224238751867798748321179292833984971595929283017371900802628505180565366036243792425395881383804172147741893998599373932745796445571130073527245900940964384454711084742522314459756214859997024566465630271030153228576373269984445940928838840757140080733780530949733557504545852047677521591465923698129919757304111390182320595061988089848243552379251300988854544325080594868082084006057599321279323996497931445589252341408795637680059274942752628406991267936124271052061928121665573887815338154077663614538370097789238822811319611367533455987680059512019611271326841020094652382676623347648046974087196638988586269988156080979337020918496708244777315569716227248689884329178881120687265922784264829882677305059747536286265867605437107226119528933022238295674021226311395284066398885547212093683077260100444862451245894519709840259372316847566761351179884607218325730339481677610999764587431056470971734647000335736013895754920616548666621953816015523223234590721835152583003367717048485595711636537933776031144972131253989294016569877754230776231965708241165018127834741233298689394667532596804716024721707790561835364107381379848667685558560479435958697513003834241797142087283482586492807670014520907766801295861471719067643636611712122623576100592690562984267913034039483711025456900178440118223871997432402857600974339698914274370602848507908048702134127815726308349347512163828348385296339873872383495656239503453824133768814091991305235466558887673187618485845813050340501536619246129164339932627341267839935948232165306289316486789838084653469499086917585502327757131111407793684469070196450072612620198578028282331311062627718897076480801058159442679767849285167846392346666760749335484416764832082905211452691900830848324620810762779813699185395650196917835503037701234000650544968855912837014946054773419812953734055828589150352830530636956845177293944494251132051364874936468635607830705633260269276310793586500318770037025197786589848226836982341895432604700744091842240826466769413565025973677451205047580390308751129347460985400679899577480627199865554904266222542452386443907289132470555231733976678685795334368724456274283325433010530560784440135138316398935440665740160882209669520687704459724810065796775142773559139565638648841337063212998912814754754184377796901441053298001489047749738497067160148176779009345210557896604377849413338884111048229033662274731120942533188378386034159407405612530162708072761183655495422590732388877928800338221572893334077924167296617167523865762650991545070540525366527597607438359039625274259328354446873103452146289265440098968563091802368429274270839820308488282273403632359261075172587975395275695765193269139676191368754220335058087688206993914286464420109116741880737146751828788505454058280516061571566514375188561195302677713285235847942049545044651613318602026507769776384018275386488086108680933253986944019928392334912733596125487953912624038869388158234135864857255057875012521043023586648397951051515769840400861618201392617482220616509995481761932932504621691476912168402484953214298059640910421673932776129188469331320911123598228609381630017550536132682612465031950610833878420570939735788796596691846136115956377030836171772973327149641323641233160217837006691374559068913782747844913918030973252428737279938490285784388440039426675851571921104748382118724033269661557732289207293143554998643108212656804941195330043222837212943536778435164352883633757065298358213629260195710469645876805883497248098050693388573809147935653801898062016767943457763754537655904327380503315151741548242324279653269593147944178264611458584436720762651899088161587778397326847499385302943745434991875677885912351664731558945384116171183217954632838242098367708530871353691161029763440160874971675395497161635931373989107996746804875429314333229110731336564136511843427175137435226425548950525283616509015403889275877949702382981940498077777437773418768287048915415286284127839900041569037880775151767807177100565817964073314884141695704485456069823470191331195642809161011920879347130170403952318415553775494049272051014058750420521494077566557140002531374832008437132138059170918959667231616341987362952157643506292391406267616664056342573443229733120737323640261782108873112970773643933773360729708853884145503010169992803793148060314706741424363328666037460906260231277728944889348598264651305033354424335985554559849853789004902558498271016443825295109344125347522320395816375484764515176537939307931612495595626182571175653084824237060901522950865081610680497055752347195105304442897316264158826032835359833218479209836584166373201843916981104591647832812894164397905166020127353130540806850416450248794883094020186640364069881134628811748084043120721125185004476360263385144935621563892420721577617462314541187839483458505945032606200139147666617157049231467822649843563261676289000217605315149719428324340777578256065279543790357978372427113257910463067392715297230462647613459998306619809899280236606350989419795992295275616322039440963240139174807193033438891271156820270959932496833031275565411088800893674855945569417391028590125165537563851935386242720254634218001044284481016301243517330340766528761525650637801685010325921475962812342571392705095494855187507283409100876882163780882751734900606973861484193190479296935006189599987866675884458893656915690408070200908956077649058413083217446212034546010562084416470117042888730343896556940731241564520125368563060560996777347147062167562855119699729771956416020691670020078822428228891541434880921683328775362581138581936267684864522483754799797665134970554851841015707097369826591163053691751273529636669722606163215734069975757613752558577025517976807093288901626867291626863315762654295372851436110836780863092586334457473464880462761418901726126564862484397611693301717069818643022350676126577868907386700113407447784594934177756084316027350878003856282529442569036045813516369520878681872672562200374723452150190848605236499780168487748242536370037768675855647745485999641678892539116201082707463770410338866850621692970133243600634899119936075099535916344392880347902313167783442247188217916310429758140164910097152840810841226045530645696620735800560775834237340804747609405407115301716816643203742449851225323098294530205535160177713763344513817084853082556605997219530292427876614675087864079399301605128834574133062008844754222783566468457594931577191443665644808546707494919356515986829787389630209285605378348304814337080121102658188139942872299401226847751321367360223751443129125821703280252309625222919546350295693159571890093547806281184873338645521400975478381168071910133150383241276557451907879438073794931129510807465179979675354940396784642765617491365221505998663043831615846621223460984455178514763227299047159350708804040328653547862838283950915703823805380491885698359804476047865365025053087942834327822157154627992040172079339953656929505724021031583317113334033987369393861768855892546532318817748068443128180701172165463591689358602782684707618162882383833309188386616254872349945173339181943478220333851608040048576679156435998707048681659352081131625663194259166877533747282125635107639360159227970911498702966970946075093730923477874783437818348878554592279143884435149831343050719694569810747996847395287932309348719484259874648142757607845903093141851160905407125166909835190611308087871154400339610110723455711431797348126515280631878896248417212342678405224064292100205773242313609270480317227445050801686300159303676347997434810071716006846778848338056478405395970574227687004566937050688727905896404301179889020903452622496124186897506731092738317007158289283142251086346644277842938927039510483576256811869987918768048673687001347249668643492572314582156129582123560527685183129710444119624378897735824437656466118212763320544612417426390261851708839746284373049874382657309086408172685416999652250040113301407868466038941049363224735203636781407569527477622716301790188607004151383736986696141937361221877054795963220909350850730088727180533424843253965998069398063714097869885460663069346141575313172371863164849542229364114523783986765660467315461380324678272535651504944448777724277691351128530689169270914605607574287371868114137657921315086923015928060483067945439713236486513530454511469709312761240735684575525004318538907612123267432763079784354538859685144167079495608739817238922388579402615600419228608576939898010868734847181378257531399503651860219908651423597602704180014460519568198733170233804303267143292099337661140075595539663291314806114631571694401376219362139669434985468298114676661805751640472183555660141677437710544686920081994513950070955833332884477266108570809400137448641150360256200119832859369089597379794113930811077706847022235337267433554067628572454324513859888162252513525689916250788835449168791453957341901443379496574264862005096012845256968330335157751342402483100573637652690257005987077512444958294095316325963830238821324361362969846872736033608572070887184194361831349951826225394135895676500708344989771529738012120710405546890122986430329900491836236032501545268188593937543030848614538381348892984259223834832043076359684427622977006876813140047918570820992959139262641842673900457346167098778110593650956699384405260206350544049194732584287378355367712670389036823295905307883222811586454896570235403734667393286933113466150422639390537635664493510636036625098582346337771978656555793879543596042129629128261881329741823813118023151178403058990208248000553511531611267028095789506010274969521692440626077440386622781545216201578176693028133022228714899791651305489655587773281799277958075055541416611615413127782600296304858008429429546275100612604813087402067849550034601113240120960093383872627308519178096239996345032082653966828583797233991740759872027760072690191958480032295396757731803244011882425701104648635289429055182256689425689409942085238242702913062370696864369947446341925059531239146848185569648973465162865107357251377545066327963272263599193953683651598451321929773558239280449499414727545467383719798471907295368737549486819199264235049671180467601764321844946062777298092825439641745591720295588665630108723702444367578443722501989187072804673721480952833612804446437507305308656327242301494904988742394088241655414596997978059164666227225314370966278002905407208767079543960754049918489919052924785456148399659654415491704223462525534568215868134649869220455720739209271379647074543760814831228080502508569071776989101825155842590878516777395775273401142362277213067114721639788316831535063287011400719891905086629731300410565650191442063746280729920080871919308891033450780999308335815697439099704775271666680161510149553663267199655500650376038284705152301550885497857838036207771186910058835881220116277467680473865085964390519469641950366324862091118289131598464624844914817337111454457360540628429283276810602849452539403656680432640316327629883150962688777877682796802113367924187662018998009670269652819810060844192147699930029501349943266318318390476927760250530922488963400940129919014079807772614881484363967486496381330454782600198158086577367484399210077065074483284625974686030822459530438736347873799918266126949971037103779672133402739101894534658407613452327572849790648534729790300761547103830344976803936666083821389775336777409018356927005488954164720467494789342630456995212897695238714844730514134020627670267203335398212196246356740873443918307143427142238680009539258592321145960608342959480474081908796405716378895945752876068862303436093922255348269860455150007819366471831959750737751049092793111412408023238515989831793177460773952900018584100769325209275354513308414471323315912354615605339883528377590172268665048052631067529124384302941768356526712754784344989295658956702265994437913416117073599784818369934924900460286681561623665618950251960458252086670045383167019218458925082036435730885172577738048601952495604262644830841532495140785763997669460335668291656842941761301458231507085376733354765237392712636066287220933787558012442040083690233356017565465224231080406841382773509680891731732860255125790495397543351590643220835121990998846086261516640406685591027647040257548950920852905283951648394150057971911107246062013577543829227055176666637938563543180858347351684699655874922733957910638838941160214390077817664700684404071743584556364547696833170036078516507517635270754887643737487813817409008580869156721206670753067013480179844903153150276208214010653327973048678919116435552623001816604560552636834990407214565540031034803741221776961755122751888631695092760514458412945340077208683873461752133928748877496302623079499647826112465970753952085970616347898035166050578691188426806579439581534093836482487208686185060779362345337789746674844454039542227437247937604008918251416925974719403292431265838416752861630515567006593869333004063760996515720304708748144865917396672928431311870656105605012009535913818155692788137910138849929746739326922938850619760361132592047674106127899966234379472565956299446199574230275500360680473414637941106300352266958337957306474972731923384857978496466020041302220588214408921679236514667613275449987716537105294563699942857164490574169427559676336019283020545429590837026517687980706025018253367762490572944731302062398448687250192201757951744571240699305542579712110968931007110977846665397984179155382558187895686219282654953321392766187272840480850070961852506390023267098509753190482610764429018506029874100518574714716273501916517920220127740513307349403477680571690284423812582724212242762867229976394925040892219105628399408767008218005158628823002579808350477452709264431055631773802615281369294187473307367561067009028404353454962462656960609968958172444128745765642832731054233527035012888096563868008727407769367041034714820063801362524291796616829305840551953993680613968048752088107742202890513309350474917821475157856856300325251790628875414627711495359476519467266264502680689860045096859151628145650931852980080345465734898807168682733508895002161080670428620174797581130124951311691036313049766816171655462308781740322528264047534055737311837225001132200435018909292973611696816834997714779161079023216241694151692113628859792440615819942129011419526887139006823527535694566903741815780892923082664630518849799149204840506867785361667698421836298254358946767973487940414260525371710204285677065248911953706700141362937824384423354291267664302345230097135119564531483961260976547847496219119631526758543512319123502598861611480959781342431080036175427660818073084871061794864403275133678411619487441299539193007161510052862027346585124570047674254139576874767081172125479804552594911661288742067935495082651845150075307985559700602448959195085496444763702203090504303292421571437930734277297977842521058892828261449013208106052792089128753444736867036550346953265179856119604353463608266482586374596608237284482304080445954604006091777959268674684333748234393253884713185378416099778479314862110787021950733114379349676352362380686893130413636581573639131458784998500335209346651054897712984778922058210306835464786937123820040587078156145971937686438300006953105061540686706817082697994982833737300456754621272725758868815049811304609687860568513411767403656980391596738671541991586459061216846215729056197025144493635431705140470698104583782176508316095791866053417648487427917390587929015557887465541143212985952491239630700117887764755828559524103610009813559018027717102737349999393195988391572892105629945768116989735454912834429501238676662293602804188556384884394017384624873457086888576913682972771086430304875102689557463652081500057925855059167538040901086724455943582503945656592322345269428652565169502976482159031629742834671374227235508218211208608027430262926995070036115996683072063778726323792774417570502035084287663283900922066207587253253045041931823533106356255550937462653717874794136323483741426859071462302557310375951851130934169980900973124059713180967435276225817351397721565435687078543996872274283540909923553183999422408932026182266081386896579445793183011535007799362640861606214363329480720948657225513322089399158282680743577027687914814583373924699271203456046588737092906509774426765581085159711858048421343791059456904335575915327779749752443183257325293417875292015756852784475774411720274295558952394647183424813969461976790150531546153782549686654500521115252633167316639033384618577896403991000872728992025560108729278021481974413335729699005029159349923796401347710745445919945667395496782224779372790987595327649708446676677773752017236960604299671638235817051922764360107280259751388801843345226214705138130565237283511221052198132675368143912609869056672193938134719171250708294132848199432185290197233671256382120577979168829408179778113677188387427145993408931078079036691664040782996095919964765540772285097495336337983247938933864702187478441757791268826287816175716290340824321250804802062889429401693508978875126935717131232901522276873965101223269826932007491367735827222300521231345566201024708836751560306723690862714088683574116581316218898230424015447237161799082497320891890414784332797439021980712805858759152764541792080314605988104575488850262205172284655421947459304419277094678677676890593130288715358879236008629259217280908173670047686210536283868114158033713596134717856209657879480682569282638283331265765717593231788846771465964350106776102420774111919676970665172489231425513692144432029354825367920613123652163304601141728070710559764480748365095669834018914902007553104487648162751427283519027923637118548958561327726017731213649399352059503960638374029673118065550222953163492657702855654237872229282256418025876675555459072736475099978150336281086765842841166556561985587260195931321567110563876622261665136141877492859072169686423590539250839343593712870524834469186427832304885011679397584821097828843505161638680729286576139863467450899451291627575714822192233806622416919103593300493321360737971228166519788715777707350915380664172192930009460597079003436867779519229216232805784095499740626733122629497025226731936978177987883756883243302481678104017114437167169567425327407942886489815710789945510095391758442294961137300999227255464547910056913608702209552460247112674424752033383164119153683687028420127188362172009715225190195757373214990383227596828793100234894311548583185703399444161904463805016593226644943654054916216589893895458447944468525224869372867550735071858177523871539060859366829335203277537794721009286473664338384476914410841443529842462523958765547566078231948056426435741195552011359309151086795348035070071164866725609212874057234870479361459314123983503766470855512881269148216053031799954373448975128468480367579301437541875448157712957970548640111998363926008750084902346246612721659504775990584809497827530678240899499691441828421826573532352676088302035689065137045267316472310842826058700570103465955387767761548610632240117992537986745294554281213360609365706157457490867940201531760999458779803793205529253369872206794000040815333079900900114028413027165708158030629067435574055672012614066609497001969239566691354970856185440839175279599979917611385818605473901167681566603350660824209909429205810924828684255350204755660816207585382787169786687130562759958820597833728295842650982173022730811125702653506553498503041816531089664163697531897230622642098779576525286574051435909712893088142074913327338290801748124542607859392601946629573542977369212559811639085250100864838780853920790542524033282806953138975904183333814420704769499912296372772708536666842428596671297053209054885789005955438287644116253387852835565590429993455872685241260919652754934291617407708331314025121839976931090884465359438143339666231481643051312502063777261312146210417454658217836343882417891490888361098779131434162958383142621143914632458458768466003881952158953571844854952644403333112226041282307646808883745663035223167209193535516591782579760445568254878239005437347610079737541574984049779745067587126795922966042974998394313394920600514451199576180962551540595268503400053099602336731417512617320104154362377385694390968657338938067757626111136536986752816539429597666749040640022509716464543699242416562180247977101880910030530816504477649789431355298529756070239519650693154468806175520747721095540764045512219584144131032405988612803931551355844101524569110510383155676922135096706364993208332764145238766559708181522230780552209011420601407017567819417237756466602894141929841291379123750656681117016113221957068862107117403044603432573149112949497053111356804484849327766828165308066902143499280102168230724443650235340463467116397237211395188341670690472456415639772997187095562412193737279205593893642465056957309461776503445128210140618843395279402497972563618408048733244146854531289475221109424527910153928588898942167042177474700593675316645999832975804316644654847126042960052834019829142367353476711556824895868179045067176298365487376830230679777495658735038832056393381705998977745921918740885979994175466666926674266225471687984701700009695878133563533361061375293419225818228394710642941136502527497018138398140287765243685950275366375760925135890434962161142603085008996963837206170033358439645616530258244841204930515246697600952681797395282801658322214870143647229781413155937140640943057319299101591809963260623436442260670825813109760676696415481960161993141542855958362376977571576881678555149495788152148233066526437478784992990051567939705624281919359363360368804003059139149918322319593297990722426614347943012977161747305288361586423621671582169521620565758078166368073296766601744038317337610397149047773185781328593384992360856912529876442534007076763642494331794067374339270665507590807241541367639340833563914034817763221406549072424942276186431175049113842891134171055278811425619329748743368299413907129594416909293898802760885119047663021504061020499560001558692667179449337157735945324224279195992264512548981578336314134890305871310004667809684171865456248529357037252084894847163966870038169214724494497265108340803274855190039389903090051927609112860989263893638830346221219253877599632978675177555022062258147767897281442040431117974039573098291678146392184913859569949327305802892447738015075733405077454243087995432280481828039031869157175597729179986919609932858265363264710200507761518672504087436895887162693480335816983848630383914590682717766821683783053312650067960314524037579024652670991636735964823317799926176046826990805639918158990462982929850838555546742681200612877069626527828053449070864610423120783299081985967846481375645833597449772407397740128336413238988011718423591898546143252497446016644414980591908428599918701650790191259298253117800286863339445450819166988355105065249607535250556413806358383123356512872579363880750494029190273738968085734601947609413330976975388900324132566441910805127916981577529103693724303342554570558538335913182431108528194370371245350032806478075148948019625628312067496692407832695891390752020890285033307793645778873691026925215843726416863120293509706773586888834132247674830008106133315115253424956183857018281995315584938022995680375019003991873942701907100623465277071343981592633097299067750476600998923511276070585951469243637422179744568123635576853817742227936588935167355272366084489254094997257560542054315924866469624103432559448679037476767093154448062131742878524608212418146880584318420957330912876104179086634854844493719115987417950867590376117486066941348200936456629112298659135072806699049028138750974003023811807908980789373181324862233660901300203539295657400722325612394228720071609038608849856688323359044617526695395829845055093369343822719774975257341109614284109765082501397240479130359951061120814346354535528655129793751600645161278498032795484994386917438426173721758882256666489487143786165350187894150256197073364215808625108155961170136260373419567515595610446534742820492744303345013634506757373410603359060450347696413593177951186317819928777214822698300066995694217205001406453998496083224039612334400618219850161722937551855902399421213925545343945544305565980938154235761609909250117919475601863402293294195351318844706661426645405991665086460900445805765376899302989442289543511151801906758351023569328261614505433732476728261584772127616172272301000784405188027344473158701456330146702013277367588556731982793708614793564157371955703908919354124591342642762356592678116366655862069969917997419973523177224484071830790639109871710613707618312939235472636821003715209478682682807616834721404840749369391558243643951618950178705304921806100802042354282810581950754253260518562226987667326802821436111444552328600965896691174499038799010685123298598200702275582442427683915131220524824171473763701363865105483544164517814746292942332810057908173779178551071033471959864321982144383727796842355115989379649930579407830242359651944354079910105159695854132204391413019562170697817109317964531231401126934914398463922736094960261095206278025741904682583754891902117934772718257328909596470188652158331448742983370195569066631307408403497873304807747267830919190096314298897355083916881010298528961436662953492773889997019906887428150339892514094184869228096621834878813995436170424567676032398156900344087096422985483666693431981429146725540634405810412809733395002853130234856449235847533532538169514453377867318796134111177788851341889878391506880272474558088772182014223736302639317212185111990544333129259621422104216963828585896750967958087435465981553325806582634851481900397723176721203628580430347067699647662371927614173959093003451664919587960047727033432406121620083359269402349703871677643584775654016618459979659157625244354928467647772717070498251956552193926504759421792783737846681454536990714831948501005961737707418619604329092711065173745845096039483496868135371665368111684280205069044754904304506590342361866028527349403032655541570493439831592618570846010843124208947894054736271024385108247056919117093272167395114708034266821351719674370312162373642161584952893617046230165304948384644069082704319550488917102787907539984377103263253364197885095262150563728491251924251999733152210716496709259422161302774487252382238125037916424669530538993882141896197036323205740486885269972393014916124961343344431201498577620784219569580602932240574563095884299991012934545888477080312815835413283618788824329963635692728694985413730478308347965847429795773747454015810301783102341632408499972051356349604594755640647371707234017888251383968811568969153249717591470667301981212140820643206763397830148040926088481692454587098524782692986416497491104317070185264564761634126205653667220224061872545919887491214360194397482684594814729814440908640117647017289150571928393632322114187822045843351166572803079348359341136845099634721929918100463591865009821364113842827842230204092330374384907111009088386037802451070264077740070429932513134981071694540473866528895498292143547295870261796730058153829841908767661089967735150545787701486273489258055562809257091965641495678063435694126412063874244199546707093408583528109353996212389481598043734265457373913563779078050997164464183181785713183065521005472217945410619910471232506287641531155249856010878143393577181381718746798717468143664283675808231646573756012996647561557281216831975811330454089186751691263524159013185613640152253995884963802651754662288844802235237828670098084289273561903449026880349689225681861394651353720915173314920548200744209788735648528845404244890890831168698007436801248047432292484486383762330190598936571150430899566562549957919179296423221261213496866245319946069018944500800353000987046292005338279096132101146432145272877598893881352951967888475610220801983485406921907087638837304750809844631027244736914449622641034820395787432351750792203960502513466000890531399353386744442755888420935872778853513920293316965070546223273394899471154497361605167767377009001186850588421433352070848499283829673617436653903605100042542160138132066824034326699654307034778473629089910927011019198419113674138758842758147723471837820459281669349327314485607921666046740385660752994757202774481961444552756471271338359715298024891793474436886206230261040056109317008762399244152307001548633984071671935280342956530200753178938401700371036653398825266994519016948671285258315864932290048619583397491781896828896307982677682136567211697438504019406329331651917497064726085065561816596621330252191907122307847870048121035747879213486391519596026481613472881933317251394687804350064572761388742791357092575346594744956607189615827596370639973882392979812451593113565148545194455610105649975551522596189563403557137171319352364881182693294087947161123460775668140772418955446739208039230021917962090679572545163151138306930064233600737716013461501466301515888956571990039043434410263253252521677140223300976361137929971818060502875173939250497827298112657179175326085620219684792352441177161364564015887140296569150623849666236463969315933307311316856848008285509426645340154170730390146486177477574629979434509892542598690119653155878243576849467832302510146806360736402676521051086859278824346272014771696812004539315803746617565771616766075437808884077877463438425532360684144774647944458624480653628564534551850641456237008289079014683400662528024335872189924195335396812078318613500860382430325023126861443489825599203908116189736923886873573025065688642084481312817820205598410609504692356665631330179861906443194526020130894407632858033144194156181291517630466812864684600033546334428874471878013393990725934745999327505030189771308377022286612822850165539536930358913085426910434952822831432505351794920642071054897553978939871567624321461125609994679703077927348422651673825616456837276536380748641266763625963827999313886221724084849037097556725856628922716438332343592659916709281238860818087651666775415733199992541191353831904262467614302757709364322109655130589823854058528310100470954914107442759162453743947615723177458659732648978346388274425915314068965114712554042496963765847642281229725540583435449163221316814366890275143544862501750061338790917133484798259647527091123947007386578043063386540473340622904084125421856051870676820272987954348360123640596260650952691415633040648950524081682064673245276268656386394033629592575146323461109757220609322109857634799712801069142318824307685837717853173668415886643195547250418636000666832642622686786829968416780561760081958988261377290991244475067906833573740241723207156264665386754686699364044715721610993801736268834815443296542343366029131004427425476580327665832283920536335040783013295314296909237319448341242702386987797016085001048038879253328829528317885646978572083274849745716526885684892137984652485547990226434856047926485545746611629123135372818007537758158785661989489263413611567210007493181909179046050885425606030686491483500906876515276696459910677244969950258734184727808668610023139385245022866160572800433262359967580286264277729627956611279965552899590088004828934152021396942352376922775660854240177306627351498074011856638364348427830683134172723548589631825349612456475156438270721760840444800086120709641656598417054708099154541418438516149864106780826606034255281636104917805390943749077197913966857880645403013663447326070176253104117615983803217464988035088474983572584276515687050521904067388042479874452796946214778208834977405998375026491204274734632884252091592709564791148061777584156440310764111464783976080860970677179354843443766887480259926423670272669767749704468859448907691053461681050405943848080495885292519908551986337023739253125824365133093142853704634309081947720886216025845506848228878323089235666446470806227968699452093967065333509642496841061438626536537050058156937762023007889116079937206353464396622763835060320332083612188020671002794913848877835933112062718645883404704576098416196428464593358802438535840916273067568892532293419704405578952598001987697083041090957520586161039159919848452685129451159936553613289661635058903179359133061249269570233387328954281874743947325205328310110245699976866504451436739294945100813663944745763718796747711428806711859556298716368064872669746869431164113423186764829734017295923472414222850709194619854463448608502290501894671849304076107954694813659321786474567014744588706488014388183671212288038144721974421326019104911271071950517033723179933617599054182526915220131449837269538930247199424573658846129151970488025618470361332661396741415646112071264306292890639336325104692561628372248678440441225829541778085407955872642554019363543943700953501190598569491176904988336259526846750696844964979648322449305472792570945301064136837663090433443381363997377118947538953515045807763729614038516210364729342847915779108854713515359258233986015993156605271456612091756344528433735121621237333928288660054399967659099868808920276764690971183320790308831927034638726733103439930933248179903582925003802452334814170955053194118351867916959739494577703896201126456497711405496056585715096284053001252864786981063871407070557858794645993390967699324939230467388021870279582436413122623789543823220335332025612170483499640654997697351275381260710890052858054628540866386675212751601882666794722874078788791452630973153656822846873820446349278315680525717048955821552370220385170612690331623187633301593885229572297748196691824328132863682609763497036584949312522502184687143663276593006138677648850803602797265313678115138551786041371161141492317887183391177276036911912545602719529986860237646371376558826705120907601311312573733106946613494203083363322555730010598471084643573655571532878050665047697720663076614097130136813411155717908820025225254386417084575342814871170343025870311322939333696159003232086696142006878629741184279473932998148543437301913187205110483656183295753646253216934771774690467580113176953923674900609613112919894635983211319546437630294480948702698676069135229407143733457010615697873903098699138413861675479429293338256091547494888689169467358022440727805167447541113719046951186927040528913441993915752337082584229786155169313496542935656514090822409974012331014121400903397324838404386116386057215707247759717741344055274897623085539962175822131673785217016890935468927026499767587453009644881938105818004658060316628318051698831384570016990135574315120267678453590902889483668410572282385861025020426551892928194711075804426032256980735063116700964068856753193828736351087592545700880624967905212614941639338967475568519742960297298531801015083060432389737386950310256516260100828134551449864479483667164865944399228636964912646368437687091792346593415686471414066456024275588718512999857031929395287189300529411482208113650175018548334567840202062397004503947479977529009843793624763244305848145444063629177718176682301902983118283435433227719417595328525462819952761249089536602809589746834049266033468946828577410947948262090780422621474915937998468150555723209618624931291247043120122207233024487623826453986997028417286063594411563829589212278470808261115210197457542498732419557548004271507600561414538579433640796730291419915913018345911266979955922540351835371007425040844131770585986659022029556983452111798236872011073092205066504936109193183202626393301072521863366607051835134155927005090783439800666777346927381388670715502624832575242674454261890540553977922494230708536444326004585412002344437087834414867557601263137079391958928635929155351680329462756977428646310744727447408313495568194971564693954081486440557956761282782112613808522009877828428709538082399096965027936774024469807013745576814461655120320131050693630387776263493942925825061231692455633947472440067471988391849531189575505853213332623052133762832598003795759014705696287606186190379617253205699471778191430833830567137093516685572687155560087205757047889658587862587194827758170577516273854179669538263059910008219430722050706907259784116564657352942822300437707379722245717946435467741949260822634829756540799492146501745755579789840294331996600518006040960460481122685890159541746996448933123400945037515990753386518305497193983718512903198451475598801228413881062611582709013833654215481350398438994297581444132019617772123357844718832490748215806641873135113371846339348407910686523017090401382983144598228041866941926707411828318003747533343489105076387809301029710088328550273755392076974394493658605339477120454816357423512885211441467141283712546163168348168733866493655603417075164575427806946164303567074057419992352866201034515818691868793696010349539767915655276838366929094544167425715355257873783127874120493679354659805822832360395656084868528556002530435206251424481268444220454037292043535992804220323965936133572261526818064971225277039225882823858583438259864870315187572175300846740552477549018041677694256673664118239610737742168049080929029337874790533181979155904372054618628118651474770643134666962414374334244248088451617028758514653694560440182777857386618454182432557579102697976125286973900159657703552067024579635163197419338328170281914063090890897059671215536449721714377573399187903704739493090577282397262870114330197339900726727722821476031386065644764501281170521447841131214405781527048113727332581062422035441284384868505855787853902773276975082414306457846898006267309124281884653495897287631452054591921025961773973102148340200676763393002016220046463738362163949283590020671665588336633170130833379381345023262168524078627238122934507239524062539811834928886510301839728131654476357759221831258724577030559749393230756148371185692247951790742617716133495333498151554989201627345079646068874958970476982768578102825745137935641306824421898891703919127131224477842111974417240381649406527596144053756440150341423456114814624245896407471179107019026168174117686371602732461291906644071006803393080314662209399685858568357783735428019331039055271463992599845738362423077863297855107410514565412609617740719949666935068634440004358150246378624829503062538352470164276984200427838708298604186800155761269002776350547599299042980695222610532123429166097195622957099601623167481104847443161882938855880661817911884986139490934820093405923712747410582309362521331834941126411416838207139800860970939400968419956598214322987236892003065647325065511172344744129179730751280187772858676008501415234546047226453242448149739496428275401405801706364446660781195187982200216582980918935286794811527121807464074133992128127479733549531798300925491615323420259404119639446452368778322265787022232912341696779546874815971528719677347423894166240617110099670961399959704185085449407471307745737305128121963268550337000229839601099056745439985136962845507845724967503378602049036958624236395928514332192730352833346567932780605983134383141831865015454155251125650224407994968427481259050807689834959539273037356041838927592215544191454205092603123457288722673956140873736290864771256086412652893347423340067545876769951896950733224662496965452322260166389462023527283106100388419947812918806386753852589016322609611432456556142098217414487072118355204257449025654314120840900935118336596449279786326567124957642133645964710584070254603999255828366331171151319059773362349993642417279451262433714944188210611204077222513866841116633603431285983561359431571481966318787879416430449568104593394732771197840075636529068961006111481743178421729665354858147272465436224802500357365454823900650329368565524902326970946096447741157123558276518900593982359869864997546722449481883500593471362079131059901119356488341111711504312114432463259337374925389420845041432768963820421771532882756736643152835479198287364669688248693130624095127904872767909633558545861699164705089798740732623672689243219998598674057045006898797462371083746360577328172954172242254680921846519376001177400290250311057897822818346899600587437732358187016877339908150167718234317838528399529924253702884614460471021937777138269034831671581626641500239359049304642147401875773907429588217436857843913272527356769043926295686918196230183521496104117326533733720995588377126758752013787860353371661812770211957545099488406077512759590844721317237724323145302618314182437292679241113045984048795781402545884466861106487520693348704684803010449577663248622767845531309328326835646111294611825809518912930711049879184723149492672599943191421802971986296523160643606537615381575197892856880289225804797579217723007451604209986663340315330267694231101082139309909519608896931785497702064326613601386254004310974201489877570393645986938695093321976562718262706154023951300333592630866229302982391700949574412266101761060584372357726004913357624253334976183653458353594576245484644220682637159914352255826587170765334369095688463111025581112443365587120799487106567985344549516040663893976249304764937871402661537424088703073841466284527683873245551074420746486108328016412068893603981111919003506530539137389213797405613974631175758213540442018631316593805353093723024159326560531494746415733919366081073843537007359811552573274008061464889172615925723792215610449517263531627485564841596489459883825509998974520222402750368786556914169095214554604410504577105644764394052034906072436665138527813023497160089365355445053992146020417407627926378685020469324259988295883958672629304183795186006079552087614568913946396174884986146426640414310495853254506670183169008009874305949340934303280990941375912926719171899552828381488822975305378756746186245728669336624738126178678536204794654607615052580893431789348020558558809614669956550603012137212849938055205043979971693212116411908534346885138210138222604829817183430589081366261772098084768402287508109756057708066580963814895898078342317215447148784250472152348108032050651021960997624656584385525429434616921011710840148599321296428638988169509976626868055764068145736113848524957368714869026629186906668691670162122206785880308357228147225890277730134893119041184972446379325471719492244058909170159637723770487723026536191985161986940807273573616578543380703073626644125587988968090681675042780797826811587928660533861464248578486980748419631473016076494716099621072924698231447706094354586947090374685490440563895047958430909423386844881881043126268000978500831874260238757563338917034469030763499186991955048054701962454671332863510573494052097278731560200110597367467744658818692493481180245262097880083262518753663984976822949549810695067090489739361503557358066920141060855023802980612627695865093882642454310531494233402873731233823566648456433575204365476121538457252348182042486572379917991243443582677008907326012448946077458492200115912352863010082857640930367156558073564257579508864466385951461996879527825656270139103945198191229018583381408276525145119149548658316683743708491767337558609797650950705896431604655959019898369216300067704241855232545334197609517458000897950088276217207830639552206319319899577267303862634221540139944488016691254950864745856917499643098668626067231333752432468961737270985978430802810691870768064391369069326411569973490396720746804702020948859208431170958956807375897383586651692184377956203743672592277520074107837452594187703206186718544782682925208110480100330199481413943936084043311423014594931512478882922954558063099168533475936315450608455616149711987058356286249861227779247664683187199503633831148240548340856216626186812789837031367615181071211081865761165078415995085959623324772137897671145515615918778807499001529914961178637396876075373656767944426460962273592758832849752355609296942867338731897578150846776335244227285874519366382400651118726406659056192876602090404908779653548861913968208731452130900772998030684335383859764777474811652008478871372212677836265705745786316108117760095414869519680060596257840912400888149398883690751550109720016876786672860157178726741421687444554833866673683540690945922591712690895091556977898475864539660925212915485230413812113227530398565195932617116000736417628425567881603688220845124657830957958606517851845142902518130402360480850058252505634706354735212288332475346159690149730902896122571820452586223795634006394534945390769537453852664405472175304773359901793935044525544730449054931104785355718650877451286905591020437688801696390195443227228570334618061394180669428332287305030030354344838301955810030141209117104968284343404317268303578189026266589194997349502609276388977646571110322358091106846097353488257845752495788146768569372727991733834828988542318621837374442373845428798677948131215676586449545811482033061499583054119199966990136507052568030498832839625147713119433461479947443722877555545473264919837393848399790245938576933451866044954852592874725854545582540305529917899783558629189502065542455115226710225084581813773091852380824874464640305362382782769180406644382462678666037047625726901185527518121321252506509082514487616476990241738564814327635521330660297859269140677649059112240351074376594495315861310810314345416792536351270864465852147251588261228285188803693247326250344205587467996752536497742149990262810652813659982344398232568747197690869702569364385158815138592619765055599522471260515500991374750942580903628055649446390463567494410798804569556094647712361778922815473889079909470787873296280095986363598068027025944783319008190586108891683832400657581729704990122634376390652669811126963169835558529299972927253521950042613624295578130813836266689444034819228734488152495082754841924883364439851366368775956649665189948666773890002906546097191873478093172856541357059508044334256912625221769206835400829115492941354489042016598737566353877458407348672056107196660030403696333347027905107473833440445720439811022639746394404351224631251773570951800459205470405445085326819725177552275510833979715272799108337250695374785423714816399811135459967974853084410868703448411662640009257827161178956770114789256809451492130038769194862623521773380506071478142409200937898381412240601394230673339361921346936433262891375705061094825096613487354599513143660884191044532211607498304495319567258206330122862262834973711956435336740671705852335459112314906675764651171676495459661391076584696426815953508433730277121178824275153755614865861742661723157402126732771400979943153337967043884865541328966984727791666425891208030516444538110272578001273063608200618432132943598293668982194909186480930920703089619891664069910426777061902967646121957872831981441967150488639511158693553423248045156596299835033203324298580342620960540107422421875735161975033968867532647132721856579732622199741536767426749162306376625235572120431736770066188539957617844657882475193505554094702482335884374251688503948949114560100324208947832889471212657480421716916896621821253943903464085710570267201103569904908026044644397081542194780488489764294318982927198450772551368070808868890628497869253977783580645224594215023182404775898232078251366182897247077178542099274135182771530565344872492398913956324825783505087278915361473438298998433042198124943665379511397319584078339826836268565016742981773227051048417754529923577831108305281024178448220790124287537079760728367159805209449777605775797930677197886258216711715568567020362069347044418233714797897525546179014199486003241085613931578795567343683182512638932375924947284481556529909790165364608048371917415013784744175950411891633969657640212396505289868383951409650163864071747729263654285696378087450177148697052280354206148589947831882883115907325912049037603122641720353300737567962455089538869642720767771496923151980217496219750074578976159836659067979791665263767894047877441330443497443666503999314470654840846745017772686596888713429891455679050274193159996012148390503637211948571295822660179842625593971805506003004827401795655087608150106016095768351650567331457941981500314484170927451302605068704161143380525550616550729311404860179254843365753445514083350573857076309677199841133053254112187061117760234323287604969981959541769744798203202295431952185038701744865225571662201478138890298765100536600725080080239716680055693503502352447559486907970262217242368833497804497968708533868919521775890357602846247209166456601318260809730810992567217038493062369501153252771888931703587306672034922651588967740281238973065245274953339274629325379808375552479678600990243623422061288015134812376321120355371757901579181193503058410911138372720116339758852947755510527383294181137816408258993626102020036210370320988061531473305807973260606947104001029530362514119607921158383437254639046041927830934606592836411973436708086690025299371946212665722279162356322898311903823799169948132283282958699516789456599750284632839948904088687327078761241609432861714785691965003282932505255734698590782553952108448343792960745041580932200013317927790419378558581410990544824233760086348087450685035777988305472575198226885121264900146699101697006576779828027095183892737223250085445575576848797692556372114153664947418129668171777699584701740007538698895071881501421394139881545566368295911019166303151677315390923237388198430980471994956481827741159901036389942371513415793131984731885254411811558332785004407255421067478932427533593260893380365927724489959255381329860066666887629318381304502223632326236260723010433490418380567811011155596266190441416640554345331985787976495011401238061107051208656190867924868173028824250216394995456657501833455121083551946921111828052400844346412692594991987820605097073253558361422649821333764122826761348968419168808324811381366450572795544235697053160897258184062020448649856425672519260904401014688131573894310699028552469213944493349241231074396321186005912177357738120339665377863303655607960071635073769332155212568513853477910445735406721621440612855843803308875984905303603716427791136125012452230337474205290376765320104719961116807435872408779774469230978289082560285668777110386035451338634184540358899731495719604819634218201051080294165189228887812323782227856687702446589380094258570478223848619718401439648764908036745178613868617518446887043956852956121011625599040306692811732452382247837513198806949667071861465933891119142776551730470394345782195019487580834097439885932271761631857122568318196343109512623010452618810618237665642259506648060578971827983775777641666495395843106341613881080419035750730744955795139119723740181182090711695710521712386351898539242184093325863854670618652977152501351169017727845950727815209273036677999609811704401897423979080311521936076128464400352204616234285436695952697770156707886099149210000229092970737862429740949638968770501783647731881180903005861624643320712514408371964189069004413132319894714164455247282314314703748862962438960835376997891028584624963638159966306885687070536233370997239677989648282127441728155862906134110987366883629992342546051098349523618521916593260553204664221470262864601004560299162578201726157620359303950058296934430289495562612492399716840567395828269404825537398363657147909186819650120223301285896808262828906378183156399444309022923681334877691193910487475997906460831517172784054967217449604082663990671812570051712414168333934095793915428779361202223588077414098097552029165014382047383469084309637061187424481301150599483016653588237328386894039102201649120438689695972487895920577471718238067919312133167364473566420223823188187169796237901864376740746126706740938554583942085600304255365480609138168779472638886632256063814329669951203005845762762763909923220058239239387173490674008540865491429216700801289697235669710950443511548048829696195763670544704739544804693297360022556144749412598412533000297624645490992677514940615417981536174489365874815504328200047469956710771212088894244974529643074465387693502362649415377209499103944462819833399250901859321824816311136570474384720589857455278925635443021728143361714227380287580929966846230338102978868243049210252245036295111034265485079488066077259671250130869628942751729998673071793701742562752690121754918976380638004488204433074058042986578561052737368069187720839208745747219594300858085350849410471199198534775948232964967069643515028519982339503742780224044608501339586874087273735710041503086584335988204499048776782047531135357900980549395066625752054202347231696564839123522639114961055026921481678550105406225100639775985675497577810479671686460734984041998598518035372209373185996383043593736897924421255759725342680477745753526037014511906569292080921576356807607495193644967328468572458413162087053176423748323173542335632159884197819681385472572762676709144385165954733865145691266075635037374233645091651255412223465580989503317221954306920286513824685975820667728982440187822845355583994189009231926695905753188360804767599738736893937563932353103924729195308817215928193691084048833157532602835612469402269569910884322588932936380487137171472261952209752986274047904843587175545311763492856243823044320993237300069241759115507005410593080322575027367866642394081489951857756392953311556855900261522453443960939388484390950035720833312808393672758741782334149781606342598331111352964460142752903388279852159762508319482323537681114509982276531651431142816257114449491948357527797017985199294997436966638350002220426386237697151428619775904693839340525734542936104535258940340960134286154385338823910135317071957721735244958764271979821075255437483220876485926095142820175636964402323216999858367770628939332413768894392860264845420327592453619974485791269878779303651418106429160472485394844904857911571147375654950714224050857632801214101967151029751973475339735036063408329903885665991226676666461297721837302555297889106611228928733304053605855883541631418506663491391540330423371526007454786214010609369930922094244140257445446340590992362430178690540540267457236353820621036440700427998964837711289534746659258361504475526271342668671706772260610011508955987425369452806523298183940269434793912797013596237602325807168289693131765552266995392581435231657229302428805251184809474622230098254250312884878770462573635805934220641051518705756914857634634339208756472624782562990863235731742898145933003061449974765424714628483562149569307235831728892618773169462969263429052695649505413717254807689881274338538812564257052079413478645217233638657581934450908285560455730755008407878807509291551149498665944089242940427918918292079852798135646764180604756768292421507482831482235492450183349765822799150597295029121822545706099846980726387212927092354641206148674868008396865173283138124148049870055625195760024561270373359830493322072390734360781277297813441922789114282747135128534785533923401451112437735152711800508756057290409501076321491644642357528486522300714231651803415769510473902205133462715460892603873649306420580469245221376568693337402145204074257540653177912066795712734274174399617965894923578533715899054820358238411668620847508929648319217317994302057572063998693494091372980021704109713491954324902915672941958434228851033633465210767243979212275147534536169786728165996109488192100731411518918270359780520789555912706087558512041992520297224314631903299322646004151050772027768584843560424462095634679158349916830021171583025982652404669826180507000367020299158297772228851494182888568627282608493625955317812432783289106049677795087157572928289043043043700563345827744623599801449402985265286437605138754377974429346014790929213887105585756605778226717532715810842948397742458630107082450426532470546021764426381069847454276628898546500890390225169319799981157794759342691852657567007651666494869890802876045234584376473531767999681908710978605503076925375107110867787528310030977315213281809842540082572916809974430618879367862046573871428081493027977708617240492227697917439806248081481032793546781666548538295910951536432783706023124614211529885973674892402841941239925050515825544729261848399671645266741155379308431265458574463064907517480208051268245489831464129474504093693690734928745005457394945418643877144766399769057975189612599507840322482306089166561252390453164946192286222668186376136663666617402133170852579991114995416083194510977114310826470053304800885563470963162561984506668084251420358040403627108131506405104865393408196527443778460801587384095690566504674980755707796026890266744602464938170315816276816898718694770921819297775525586359320988772296948718093949623426630379959772570882429476258051126330279723363462985822658830420242222966940066850645614811771164778986186852063422522080973992122696582402365469478081265270357100223118252946726868100123475153460481517350470968012232012629594100342163952873076391306050115121657223218755565992325300642656914937439912264893331008478630808177287343889242237183290662604115340793910594376594053267358048139728479997180270639092874561931131670187245570630944868128593457522804747647106932673123930874193967036087293618184910017925591086101659563377919746584581191366406132962641365104005875402603515119663817510813382347487088876872803690597348966420848546794482648615173117311206477340725925632524459740907841930070977859773975671963954016203622723858895801313349742006325836044910077623474294760558890904722962635991206608998312523985591648883649303734742075614508431752577228912149966008003044669139447646107989778166341337533819856937436713309259855275288404465904742409371313627662181196169228366237412583351425729253090316031731224155279473169237523150192594597955373018727192730115669005012131118068235393720208456495829976958031073167351210783201465209967862457731886496490582728656476028983262283309547967232119108738789903716958742935095124059813334480829049773667790321223758517755268587757874883684542925254987997206857630200388650871769672025680268834140490124019313912292059016134649149573211836830696401433385906298012644306529609735132645209817469515888758852003069733522730756232598023651327617282341499936311240266440091292022771375513699152825412672425664915077348824657942422256536201739974641796628330454349927722648305225557802257836142705439916671426708101747522948193968975336980499658531812115236579703159909434023232312686540959848277038797658250540984074617515878400919117286539091851389933737530424086466283837594222719837370874076836360004864467274974414410817235232041919501031282589696938302736698027526309377737028049366500457558479687879653545203707698105560257671269466918712738558500611468963177598338392708652306507713147316938918632306636317796182288327942496372204730391248381894173152694714812092273969514296794370473200575238485109965901563989539011637699819788799540731763840976495618797054006554922680764101991691519922824142863327930711677040455768456109993773126770589548075832044204911196284191670961567362611722089485186065090373185948002897634713177294094519583876176648030591994561709623155366265454719228714307862393571508141211292913015228010722401573302745049820733347017065100436221706089860662147710013942484376985531504723841229417677190324941909279266322190112391647901057756644862680979602853346178362927373577922470108140102471606930102625921869339262949969170699718188178627979998935217553928196990793066031242651880210450405034963618010979195332444719174623148367128565617670756439959597234674179031343497638347438488320755589623275132745401516101480225739618839241985085638238427227493956443326837705951634299931282508680466803879294255180364681736351534631796435585868627345028541176458855600267670368519236091633047846596599347527892154701657250152339912938161953325097921124424705872196812834772923520231719774755065073209591504657138735961273804705505643861314327348300815008774529813581539728588567550658432613238567982454168073198296039834294386916184605406892964135863331926196075251937992991497791233157907088725263265847282310481436719917442332959823739032540873600996835201777078522476987110118196022800555228196808913938543632784138230368722683090266541842691279211162918406053554686072867455271706376846703109991553981420555857408829008392694771275113564854604486614564165150295326032932431782986172402761821450200109434413901421752774399632511761417240099226378476289461779107971555740914898580115824991222688230196643353423748905955623308604106336025995603570463995658265495921697329011478341221928616846167797331376078698160601796912674879256836194508138444116342188759195204717342191041338906459274275452049293480613964700873561311698842278231409541924985666373122631721237562392154544900459381994389696842763720599150033387766453213791367550387448859120576883109334646950868893520280761861724695755310542260855586358655015724667183484222914036188428025650834536718342086476796067266775080465835762876954047330555576979953759549918891945831272883512700579462498769848283644205960896903601998670018467095911089217297924852642946689543568343475699370312455574123390932510720418224056061890945556236375732149965910382555876122833509749131358183018207010974322294398055619305678925088751602524917003016098122374014697598780606821783609707639999767370610873559451281820009817400101423487465630382491473028155090974791129029970629751374748383978257675975226231556643549053294544267057883492409426020592567386489817133708430979737821873870435571150627550493028053317548617933202680863750289610169537745231408019317666310725337201757686552436254758029418834719934856775435588635346403886677199343939335818914141253835739877915395297426698866686830167246408758372036427254920202935665299914963525630161579718394456399465988072424696204362170127101075726922834812549095909149031553619657307762575809936928892553660169136575877465430527759955791690389225230708619209332242835827351536050278009494229181102445339056385651862172783686064792484781561667676270697841871993792614112771363977512777757880561543342784271867637802075090100758680498876190443699689186662064661636695869373985337084594886436405438538743952341639954087701901727247889543937572568223661273257165548831703419929456952979649684630161986977354042658588709247571427167941425075960716235087616178794423888569369500786295778238462944916433083278740424156290896164123963946781283879601961000669311340890809038177186246581491112968970514736058700947785669327636531743964057497751212979517571585489422490335965178095369666235684591837338663757321205764449008251102935405062438859925440014816141266463045691884681355239063667527968370224787197533444274546075077452204037470541287360581409300478702791542739527287813949145433967323926828142574908274692127196783052128554684469797394983781396176659593161859849649967090154915550764918251907882983620093869788310924897712019843738939494797307760201606953301684576816057091031832631969603436474273054202067189405541775520527503360473224963641431263602933899354173704530100905258854128047690380371772105393578379497473306154149600570297170598104902640614173669962390368056348864568452178247284374198169803727177881805961921825243776181265050521442080344616757934035619749884700386594528089329952161590686606830565038652931671168103453514904838474201235867804278935748063309224161036001211190678499373742502911010274834970776835666766259272687297632578151128542399985595626557371158869647320380475495553980415495406845415883341445777631714546724084142311990864675738740786592832901444245883691228422909224956526685594377338507759766809042411151793663765540068845291203238823166647674991206206703288674269775849635109231037299081339621250420378305838387262092925867838517436464147951369775716343518255128401940831682267018426643180732239995126768934837033897344414870403499758227747680674456077541076475882422204637816262960106700330362912617878395442953547046948145070703544067046143397016472453583137130544980660753826287089053544626888394606892977247512732877917682171119164667141780151523237426659775372217643013983377519280928706112212503586271925776855928379706926820838484402961192565082973344260749813050271898515754468690146205414746010971565504573735550900251640403967992824182507929929295180463442561659476458629165636800387755621221208005378712777826599570196006830074828703781856924305431368517395641356481108074383210467439163661048327986498651720386375564316603561822133768054610001225813607660586416278036464634506987940067741590534371260440450313684210939928934848861646476967459016847596011874557350005489208511534024287970732581160758197851141026511326628638793822857767369663099490872691247975695739814878015812670682922478730819369766633436781309254887193036928383585904122575269723269789164262056471994857427749526675987169042945513477899998576619225245372606905198239859491772764323202623298729178598527119799100753479716724205754838077243622677228977830105996142584694922147203595175370797400896608477811101677785324924471671066176611959660693483808783370119580155007309228837757188681201702830837454564199442877149867674995700217123683874125683459274462162482894429755055014199361579322325799055349434287098283949052088210705944910014613390901255299635012746996412109368885269108759647967343356158830096658614794046925167979328360375228675290570515016655137397684449027999097294743040759147802754458690406772002484889478548343647596255640239632346775366286958398992752149572214386076223907064576865681489873274814702814218459831347305910264797372004432330088357768496700537068708122946214936781411891039191265192932350079338674196772601061472426436459802941858142103877408772607714874713618960780591392641787185387836697829668881996293385089735730948825733078413452236719810681635402461613142347674180452625463473428939076317649770442146483992950240076518067913120922325553225880427544997122653529422689769965979681121204187455545136184738345066096480615691584866476970200335512774648763359476255430623535558323274295325230470045262527051185756735641654001995029367438411754067791898984339055137865238033130850439233570350982443219961495354503790061583515515820613045717312270615245577932313814523226438075192043321931563508089556588778599817223824578215128053062317822202346307220382741404569204575082579473049524228282557994129766943724729617911698157986016412731904220090195010831742246889932374821466586924627890381232051440865312385945064782608504452611026311177104850634589965680741927632334665085958723643536876699774121434790204501730906451178714831886009641526095021205311820916401202524236106398608260085146927748300359469391094393373585902043761262815977045503417032097395194476796793592544362818089415786330089475336238633681670374919735781263390865099209298580951270703754642533307852887764098025006581074217888645882160687099521565207038930929356607108766702885450094706903093975705574284952205838663634498767143859245728909200050197411029086837625980165485506948214508618128897090199080999790551860655427315511440376736772454082090724451737330674381292844864948637767391843371017316169953838211409058873568012711617601694821316667486038346783566583797028606433742771305149956961500664872069492763539310450241078805027098878910784801871064459889898612465167540743783934233963926159522789814725704384380754396075518187906281664055105679667879264055387974407069812884102748172105374977460155110175703862539417979518911825026938450676887446427646409032498693280521428179138692022692173829279173368534105098564641115808478603190878053469470612288537464908220607637605696137094018230580831443617452501493217374841931426876465216662635822469423578856917435873940382851133967748828857585302156692299317229925614988815633105083749941179094897825608725474584944520477846940358854752537302071853006892442045127250330444384158420590509878188691538958666911844408185305672751781770565344380337872686737349535625807389326755724086445871358050213117207031455905013056313426298693143259431781629788894773762693785672865554679175646074373585977017278441256426304927972957924711138459292118691042626400583347014342448527106310048705889371350133999728980503094341639179647218058964109229244705218288672031742722691696322307917813078938610272697852168250716680868049223163372258779789946208935020479083998635043156833923726317619103131364032004422736748554036632077417586295877541883500994510844629112101590024711686022933235246455298631059029206254106495000401160987549387765777911328483378930491579815351522943358969279710516773035103322876261366596604567405037313735462308096136708054057055544309594517919705622931098048662150642178675592671230555720810409122199724381861109851349375220799675814705184346644253226386861934235405257738131692623017148357529024014677233036585208600992399850794229752344381391611852827963642229352241341228361923903039692372261909625668402195788984110765251235363088381595627891588241312814143297416466426852214433167518786601721288563575873236469428069975576544321419730674940414875373626965982080705440672683870725194096838705465887276894672216304456599598873891725836728481940249605677403300489502641080598052358343704370395590674683071204360801865226022622224902475004103606932740380526450388317234614420407223967959869407753207526206549280958563108776258031308104403911274302592527295894340699836106743932985392386467927987147770953404190439684131783039020163085259700841018197321705602916511394439798593306960623590369823070300754798035344584516224358560256631403827620304537402433886243294089442422407512718481258710561111643378725032671468999566801519777620872843548242692557417104921483799071185570291085530259166082081752376920816779630868190989770140695377648217216918219948330445645127838171731680888835567400947802190612106389718816363033603777157746216519423682631683622037372062518182794307082234510460242190684446405723697167129788902794290697080584918363497134710399343703812832973076636892396133959267881949057219900890947848450467077212959025258533448349844679219870890285975665566965070452566627631860954622654653282255886346240332499826482288985344175195615755940126660418273915936160636445462247398012555738828572220854891678547343510007015020345979798658695361145279115427141510359240035778777221050168985967820936783791767348135792059293364960385217404524356040419910466371720398102842328961559431341050037186432959901546219141363494711391661017572189275355912905147077818818528724117570269071188844070341853164598911529252209228000546390059912140942840411430150366137553337945353284890897111984953910385455479699068777144023881726508079037407676645483063836166311625824050085046712142174780917650099316593275301542476234121243921007081027580016894833085679615880771012982771309955452325663596983615909322193241117700148372095606546197705080324566475365438347809097819435894676125443583143044955791425634647529808299351985182749941726383507362579854047766724308087506105023718918596975409003189441760385855747344385510363967157279749355410520731297953281763881484942974890540795722359663549079034962266708676483545124549630716945422897454337056431537499342894882778292283211148930393900793866378751079481419393622425737319356482277480010026732579915116233215338747649130221620291416126189293289049582900386545642147412737697003280320133496513059564435479134158211976917847856701793490066530194409873811252923304802279409721292888265427349246088363085866677615106494660906146685437023171991425691751700854195164517810945447917966208264144601348780453570850196929274638206749626828469373883568590126278655239492151328389870164536625301546993082218957507361497709347016709104989042572648998467219231557992940457583619700564627036698116681613863579767615435682385308952159560796724401772356015850750161008505303961178389521628738512656975392727011805450715030546955119563871461135450552399194566893462959475691082699875347462382703547273901475731469391320392400423971569272775254168156015675019213690081832233086011626200106374472679412167989853734885624487645662884992298394346898713917822444588235673073280097573204558530030296526588827198104914043224409747308123981148377997414093380471166636374277682037920486176663612022175710052395179560190070641688005400535617017989588342225665865008664823385489012539255662307234563422988545607239220013255343387121358317729141133318576195490934406048064919160567612397348676496591018361929065346247423773146132093136513012967334179181388571069813624846818878787754871512970031375010456070917238095024067038729254164646182881278140659740531101277520271603010507003399512037486541102014965021775468347198643503825526238838472307085643844166388423472462589982124223498278188333441801371122280327104738244765371907644597337763807996865054623247874970262373855726528513339568990663470350903803424526945232802060432054440359925641027682097633202493264002799541582900251684479874805231642459477813060047990935010697523218096531395266744238801121795449728164284213201170208464842818661452192109423970400465475764829139161018915453207127205677787506438512591489336706666756478295223042407714520776456082697674196518504433531436068239260031613291128499276920674236697932923345083593788304449686908278268108289692824219466487098613284217964162810576547208224586992907137998817738145748063056990484822039595462837467056544988356695029093006537531838578583550858616528948331469697606018166637846597177477871639725946510156735943304651686348507376326829229321755559425970294792548638032180066324655407472236455992326490195042414098883677134979325664216645336491132155588710781173698185793877870064142225353600587802492900974735477452081082921167247543474500522011662980241422253484550431385093097584817397839223642452056266953622747285617429635753415887647842277424135041527927699476785762224451761135997336148084543077863914248748745664842053757811488975816046236275385131514543915981249985774533881584719620969702502012423408376125079615413476761884004448375495801874663509394283568318229113755264987678099366504938833935266164362873472462550334283871424477352299742798611249341272756116420065762058637961508970969080054966163947824885208383636528826689251527040315141660256626984241766574346752243216357950169969143585727876286725694844403531705549272669339279517526621228281302485315192970198106479868107555407090795990140109496505539826351581429334400758098501427924575119542403346802038518639623529041932976496365326860837661706601073156704206337078236957773718028091501231044226166794868139345163455733493878403038945339346907839291346041132798119463990550463902857615922621476922071503964180401753519314346010139229111735898874998440064115585551620776157035517743650361583531108648118594045169068808945903348224662260151051881336647336207517161611144438084249101339077989615416503348480668938056869123062688701034513693449500711384002400160772435945038709165754895658486960014163674999938995136257886921795617807972792656752934807315234354064781773947522612263318314041392039807770586521019092779403500486623502747083846568823395910815256275580297259260988948506186303786761010329857078980341621762061715888160482258665585940688922069247371179144552917622194525621056418127377345224164589222538169362621591854280371439478250477446204563325563386430299116679974887314985253592120737105695904185234572224581071121031707480532698960073933079489299971152210081132106032534559886938011770615483496096739536701970732033533988341846096058716312076974967639754559231519426794320407500527651391277452915514025322160148271916595999569698619283657791046807308794569809758399454585911950573090739439367300468819346047078390273825691158644107138051582954608188878727131150755842611153585242920189671892969622116039863864057912710388433060061552905575994750150830230664438350444084582067301856661615413144112274128837706649726375507720207250376198103957402139234850702372220831659291592450533276740670968666999707811383321849453841623363212817252377704839459097466803854805462592607919449065068360839279470377118343900499697094299026754435881475130051901758387403698967465651312680438059425913420434985736489602098452214815035288064968469338919028823255747273677891814179938634339800711124599333088684867336827900425510176252073237978064244739285466600306931329794089291490050932536586114627675214871528592371898932825635495559269091989181023141070045744499133654846259400824000523594942259030186331530952552417676722167166740440596879398125150156441146380626530121857154982861103676927025057593529940233916709934218169305749742162070660615483019185164997274174838120074488395068608171977474337498795870279869451743149657074612831924426954965136338452056116811214302867269934022192033998413185821662763995297863542119034796572920425476723671062703840605172864306925295029208236185080558231977705122804610494995666736612027851959358370855436571024417021670550650039955278130826168961574259524761029661090947402315918881939602140468141157819722742798287900827740944542591221791168230505699571820523768404939665190862034824970845517774173825134547570529690061370964672848219581370321045379913186378838323656378558377919362848700949427031862124524529874230270242188759061205209296500312272224125283712041747462455831238588623146251646509040658580510157945930525373525268007685792782231126392928320689905411635314352115709261351738463525391958770194012728581425737242956332828622983352544341308717895887234759151181448166696627978948970417747125572959084967565076318262841754649667853865922170672144119068535459754016607275727029591228676920614144602694358047079230873888756979957253304662610619554517946638919365906889218134943679599871483729098581259665195573257966401702001174479995888995022727433143475376397968078989574148445655421624726119026800851240764905619339384335233502979715598361357989652338240818081608277433972616422383099443915695640857896124522218562335971087762840785890870844449681054342078014456188413077623561938650011236062003373222754914291159629259191152596673895637596473753293449006006705462989245420299131136078627224828303283364381126903370791715862941872411004646796939331530603017511730277886271746813815639389784918012509399551805700343003158247941471561896351546175080516805089006264025820430659858278134235120374851309703324704379127577228974911241228685812612452684935747198055891797269586030945374307427129951781304616629684658712937937671723773444110501279172244954510146746861779345504397862645899324820651471329438447777364111071599528481286395737296998938310179437616781333892537875087885712749331938107534863294172628870298229142016653470827849115980742908056531831494259617505406598936211164292068213013389033837009651163100905517971284431340573826541934824774424987572904852043033743859908168071756192579214674461035994583914091908133527753344578584608158175481230719017715937922165465098388083111162621647633730894927537468938644084837688150018997029888418173492689070137513825298599914635808824812262633236936102763383128647378974883454857740719186086767844866406939522780503574875070140523848256919967503831008811402042635066409691701718507965337988784675318883843797580504134511973177643905566181195037903191055455854010777502588727634121719485497453814340055302829390822706554966018149451223176668946982696682753498409430565141640002773837409185742256230325494154864977948746997031280525698188530613773208337014135253840083992245030460061162029081611558915262744587146225424849682872431504125621472775944995063065655801747775730119215368146925544847484686032454607043370705570742648726060426227766776461342873922770994236702672317898872931779946303826320400958228198490115499997304698993095000049002032816162340074029464972763158049654291447257526674536172283896413842878296910818459375744920031598012895993150725113664040263700832274418292570974302272145563717768377222885317425406103967057731652087817807046951558888035864810386775443143554155740458251048702801293151778482107997430580532233531453503818446675699832646424180674175359102882278532758909699457185936619502506774824781662614185639264534482291162470216740249804506147730236243673788548965736812169059285302537335398398084461371668358360067911487170727650276103957562304451112072027053859015660584176882162097246714950088908097337045956643393799229487313146474173227538352976328179497078463698705801877549209050795932221936839015182128203133186476606848512447699580071239952590940193948656190533325940523403413304586111999875060447591821498596408104176619368973599086399609552387222147487669982149590838044204461851134190627628286516678191354008724980864944699373313555807566830007598231338724924575840043757665595736982917223351748998634233843143247892972101599646946706761506325389281246381991505835267709034107954904902480170410474813536657190471820070917529379748564178514219524580656357191715795830278704753664162902386232786896003063985928313671892238373715476234003536020866971730547621541206946236384167567630993260374235814123421330545958168075372761940150751515305116722099527374307678142458578794210777188157234387309335405804698944712211749280695991560092813719110992770762458047898990809884091410193048177248486658658988521988703820238623958330583459617101846468243222864276308899885615286520626909506998776644797537676342959166832948428961239156815631249750821180407540250893644737564816929014363481144623760345900383634911230169231567349270805803075450135129786690995168934166593667499031671467337828589588529591422590509720760197937651671245363379674660559897945127369274359394944912912457530099978833389171010689583802486170256812745757094101191468639884407798713810555616969455016729296627046814011422558494706702836612958793449012235912221637081671122658922129616224372813052893459637791391877965634300232277537456635638844777587748307595142432267714575079656964645476297397562608427790406969949858959021188809700088709046438084416062324694706046552344581381625482368155589885766134660542909167431324331161624626675077673722842184575295404824730568701960448785260379009662912242579688391600087925042143572290676316648112847421527043320758569104410859808996253178339011765302831048370036470402836745667734665527436682931515382674149520533220301780820486129688533303810033370136837164676548325824879075254372946522691059946675026737484741529703268025599568468634243511889519484161811375155563770515953009479297517498703536346536600641368204250209540706814069622347731725058541869620491150746734237547100872828456521794389996420850368235742737261386350841174891074567479060827943439490709767151851867677936891632329004104995730290920800077320000213356374316782918295799931427574018695635342047887452899587246184619283966196990892318883695233271843543431695236886340314126236996360300083346672021426200934397357221078568850374086852867098757790359827366347525106924271105321891037264261938375904832004275899649641939830009883776043690270109635245165105527966482379348781580245132820187879391878503025989979880471962460545507385327742249807533350768863568287879191145078989962385815815188624310738322374768086656101450273267154702936275649721985868161564841778706830835144386224165563628613651974400488071723526064986091280031689003628467042761027185980749289612405776005192510489256868441750311639256227375547130948127316785069574534006176746608520689280789883515841276292470289386718147641730469844835801764624154693768112832008547272213452812171458241332668735300588413269998215032967508013451298100114087859477121238712646586639862307492081845736282555740154935350006609705850406858241670484122237489586496516681386722856560978372920198525415931314423605885912602640845009518562081516634405510406596643103024657287156170709797708047365470669978423444237197316512408998869947868078670207699958202186146456194364387568870077143630953778684217396823197688525738415152387734376166039520450923948621758090413023758641291903193113911811877379847145933672420688170698203745747181135495960481507861357832938032677388225721565298564366448373323611913714782304485551665678157674628387880675063705752929793944451227137948187340711939677497124342520854389156659949394622693803012874557851111390968570866098623113851384261867599834137371775983191865373094645248575814734954799006229427115540473087637613907075846696898030608624438454247546223079358794862091967811099144190479972215475657352446878958668006994368011783760659668410240717194952002120755178600743905850670282745487551369530641870498022004097293509992084991704718713653765172766322569307138537550158867766151854974427496542812492049316754892248077694255095890849858733671011458490591258081931419258229082228501212176580522577662809895612383074170749197673688894854042432959829577586104709580304169871619980460912534287778169711226989397239197999528326500796405150035768913880194136087932196498229484388738139162096388713683018149555837829032102843425150953905712101670015081531344297876626045885459459032673432470204773379820735401449985662917140600677933292626031899569267935177516710581595567167446567291166145022306864904816174012776665326206487432712649163884441420493951394108867785208811051230605299303187111749444888019139683342190540654156923787777462284609672418372596888329984364051439208275462901146487737246061064139600081276126649293530489053557348905882916630765548928852900494919386080310519273679621947267127627137939649611464341542442991172964918215715071549646026974135414945058143149128151795911696150987029557296908967905152443287293845500409011597896583570828489917675774817096258320813253400822721575972692666379517565738062998231459077623088727337119725738011141136083726301149882170983284215042522943103379832948297791618784365129673644868202416774738206785986122438111435406062179494761262468418931024671389441185397877547600980223289261416743056476184415264132605090178019146649027959140630773825819076273454322868101235516941882384164035584882572531331044361954354204391403334481406005426616532477065448041766081213235084440944627265270018846142794389027148352284922716275077780097484907340172760294345560153515335342170400488182319954433487370006574872316860777352534638169388801403084773859653453307290846800353750725642279202855823124392641636662622425436735717203083422307579121027803599624457699412692165476494731684097272253678891898399591687371315148109068856891346530007416402614330449938621944587512569973426650542482566653026797205448859793009088821759931265380531423801044902256639220843113649324180647196638876996084047448534854960962130860426306854301485629987362884412462157064138929428624576625664861439654603806944574359653462674888597985674203860141940995586193517492343965437255532480920845601571463532589491101392468031251323867610952029509044592125494720239835243482888271449806910094583516879469873996072154365965746517303300607545044738299936846053623741704294858819935721880702440915064275132674876663234730721348402356486572614011000778109333694150288295503726557741842682092550220888823519950761956986453672979565063467414112764717680286353907004826045873476148379539257753200661236042582252300744055536459472678961388949057964016344749234283339326122524078531562240469543501235070163846637726273838319211064684422626067661917714056256543937995394611828238927346144426099600767746948499149712631433268685834642305954638318635387643870714577967878292612557673826621016910993255051287801345874563673420694328876987218256622020992595625930288183665283277278152385840610540370050361561977161051659244730293114638874540751442944975984727678109995688692132736977479946493779577872382376031612991348076127993902747178937108923539227714643638949864840692506056648462728947195073114852655336141757009570123872250766505800458777543462668948630128316756861587433802081118181582265494153903794305476400136275966392347696717274063202129347881032210381335028618340868020762152626691859415035174232564543251168821865775759648426565889235010003603189509134227877068771490238672242831658792111537325965033353849221359776480830818554670101070618777321636095825385783204982884432285349018429706821251696035788203874009778473126550785476464500241803416277349234109950695899358168541201072515236026592270834913216087431698989569130971198618981439281390153198023134279051358482082081334946281421744246808607833129292793084493887386765601432959285450327752828177598668671639144023895767172761069711155459819769555425949158558167462375910518428285238533323099700816216257490394069214368612129246633893224262589979790563323839116864146201675909990297485607701779389079785442877950800935595733688062505545044128658684947105436244996819027011865102831817294253100885908101559437843632472759707017880765030788875593500641534045790700674163287115061251970622148727819157305206471611786934214155526534682041468096696530156135404721774760383673758363873420267559351337970509900857559088058822223827433390809286793026733725935273671799153002750693421643035414057177441597900534746858727248148524503186295545068038284357209139154259322228428263373194386785211041730047839899413264532512930716957534748347010029209069104743578885350260503546857930254013555037534959061031316886025278389250823152258370801480475084450395511670753465439188649470542769030854883806611697549526159813445496705697667021438256654977115751085632770859890047805566967292037855373682023028934997181601860331748417896142289846685022409527523056927489299352971389872174434938974288105652418619068405693860657516624506625313489338508147801538320792472661120199168656594714777056645769179834247785965010492397465255124319164013379373322832993904489515392408859678997213269854114881856426961045819009187406128231586215584226944401920567474612806241510337267179857867265711416996664665017731506360922203583569585270975069267551857609962218683924237155650861595669840967947581014810137404713771334159414195291800237967006809104157653442451053773801027894463876071955441670780612675531263905220844893515677495658029931614582770011306896542779638267622724947379169578582989890618441755885527375068151422546474974966510220097012572765540820816037575383974834619512902446790565417384141096665271807256632752177010311938007498701787997651016472679244540141496905949603050067515055082943100132290466794710471988055884476447959748453229531912176959818120694005224225411667368264992923477086699088760347997253517296035496628231880670426540844700467222380561341392922887245087593982137336632806274633169427470984102988467817384705890227253044082322276437907399445901793760155910847687331797990928617097695722585601216510136025766050835956726163785803976652709728492280769884159271143352205568260294085691258548315209365451713134251804550829962960342047962591383734087821868181365111350086923329549459722133399507345847279760426756312661827854816090178306662458973643413674712846661105591159878085979482766684544572636511360060422414374647890117742735893006473003805874078265248710161604789096838090593277837097581381265124417608381184738397099660488529546903457021365465008919336302211846643911668498857034202392410142794815945947092779307781722991088648774024406484039958282807381678167021054504542588364959394831672261811163417329248700322341096630359157385806257693369097174394361198677582622772452822742860327647730173503220936935367596621525026197721273519040441225614482610556686443255700400512097715549875395899739535769886023028940542031148119101123992487420161627118017906215916880595079779475969016692056555082478556773453607735175021045341099530069239001025891286813772727093713241763962319949665082083362080748527188968955904363609481167544212099169226387527185917627485973023580210191962702458673152194402331718181797760243773225142271325092538360239581702077725524285071030736221306971047488419753829526196328179784359939983290248946816741623785050146029299407770302432166065430474091977733706308306168702067765648408165455713099976526583046604326824551149315987904508888065762347767175138443098722276492841986406567870290241894900738112220713632123892023961576464881735541327347284421844751026888274417746120206564980678646338111503484142634338171641629771989169465069701100658193383469300959921574449807269776734330227960203679353479589594223134746793227300789102133979808052910920888358123368235391572491928462330239437041998377758339869580256430934468476208934094158246857623543252160388533405669207726042157672817109295369386191686699326898921636083871570444282591965039687743686514902270017499618334453900854847259170128813919346573172701343638846900589928586955731877853214166489754385732594963454483578875796804170107666858549638593500011199846555090851861598462417964599257910001739093159543512570828785392630622632611726267669695103996113936577614323748889656116486430681097273441038727260981070233972733101406013286520785041986215952022370074607211148082036083522081219406477068601830692487767052561516890752538560868211490895531591733058050027811829401938768788709519196096570818222479576805487596221954301319742830316221884814514224559417930976145578575401705083075873521629162838469202787696357261876924511268160522175095012098806048288909299777709969008266501185120883448124530786737834325925401182019211090818642607645833641281951576751983814527399427502609944703733250674322211108166681457208296405925487250340721952592322007342065101620471774186385985596540950134789952914880584607381089951310041337861312498962851350976281634904774537259910609904055873688706834628817366465632542646973048643003993261309335821435429725584944934519769154514160081036192767437948289707687574112641380683020714841957975980172961729114348466515040964741459195351893962195338614637657005611332761305775980961397199499016167063887702979905304109827564806232452902748225919835182880602286318101799769919603190992498143135460241978686752955314319094902816608433412173683682932619009123600494209524905317580627312114551524026926328216873074600769981638328724718304837395293896166236565125110709508342970784438039635699464136429250548218756949797697990117164453097818263399539405671369964202867784537599788174457481645129223331624481431981089033003255383108780068074355691040179794222888147953137442326141260789437322274975308079120344689146237601085742408988486290934839333339800033210656785607505197932305909424436675793681292767488798481826796445873858875553211923269648390266572267673199677405072078997385529144527008334711547007879179674965227684343841743503342212209435834461139079571795896545861380423043844707081927992057087710130447937294375113017953723876391044055381944816994373448877432619181308620044412144084378150943312675277824203327901788035178130871214211587081598548295034386809880012664612451191644946737010698526001084907412624903687774098277005121791819848526659634792463750861906214407654665284243167651386458286044063975313444309616016601096094631446605027101133294842778792930444835956716278079254769157173490854863701917532108679776485266126216417653487969636087946601904461245312953542285130148431818255248608969871195306408788166914869417289941590526413387300248120957731005365459710235965060194506649453796940392248516750130972927931582138690408008385540674327266800137101767652726894781527466912868381938571807177088231328070723664796920750605879061003221211360760479731731504976414004155003062024028479755622089668006560518954355148678329680931512043810269802082868435063809987805214320524583744472132922230900937095886055729448296170055937684697183729074287771827714602155974539448442993265199837787015756141025946161174713204401577399124055730133243189755778110945665281925165217797859232382791006226135016942339622620228026210785464063064941135976521750362712852546922764325458055640042922130187771315702182452471544139349885235952326487971302870860544185656974196323055397280885834727700064928252318859100103950083954878269491031368320471718140951271506161990849308675359270711771325897096657309878405166458228692628077630025824406836822629090726325276003878582900251719009291655263468350601848801333478575070623900900216802873911560144177457004979659088928528479320434594670675568484456058190015319479319353573166509987346861479186710857838405765047413506881753082365135366842816729610117463328015566569150488857251341456055007574983181104716844089384354197193155992304990777425520643903063249569294602308679902373253206762717784042033680301176872883971804036323715964385064972140971238968298500752345458954807326069888235091332534452999604088167626216286155950204107711283681321390550589346327580265169277347702986912980140723533307831453278091372735449305719929166236623838009689386878186952241308869948965136849786125122413810994668673748462654067526183988425653007971381950293943632681734645074986064803693662361613803600637273242026737889750135247563504944289733836214642260289025711525579471911631192919999976433561687129652063037590776573396965985920605399665586318567395390127741440776406454643844651706891009132372478620135313923821840424730916789935407213483322143482511951617974321593487158425937667350441716645605476603803456003548463849441414924128876677077811607541238391499211455704897036075733623492130632448856920901598440214413702044585794527373815377482432337956860837489054131180101470958897425867628261496321735296945311120815564158676063682827989084620810934371062723133993043476108723970600581626721793258138369331362935895077438703835639383359898659157413610493019443172845826316655178640832015471870594820341465729369828451674555148583752137263757993740876930485849706072284881164259030515195435939819538333377831335631106926029164589687615356413738887876756752508011737987740518839360497994843958299316793252747297071702315960656075768358813540953818409074316894393401550228198837030305389298776030732278263743332841638788473337684330087331138213959698316006420751954034425131277485141631140706068606227452554218613656728108324983860122006773498409068959532358993616809518028291171890351947146772214409057700215277151315954254920283726413530783275187411084851930378326746020602712383937817122150788957028155177103936103032890045557339891366998382589723591811192951776310763542806450763099783206958061467650529270291929517018182816806433782387379279194060730098184667817435893890653887600501620936273447077808464488958094200125492131610193787468207345932201206153593886255374162352289200566723828822762308457105233389300246546994599371878522298613814530893650408619816247143163071497643667175697619064028826320575385823605621861427214005682183127090497825952859229840682441058168450832430506259893019599684935008513498366050099539773057628856685937940994692240039829906912048792216383339377098813290635287663047777381914670217856176307364283609805746160200915287753258619282772333983209763433342966384956266197227410449228419993482227618930671172332628189458220522182558447214168525739163170115805963240441692392666692178316554687529543326285328765451337939840493975480764816921306094146117974344701881973348024018470180343099128210089272683714773452220615938638636201707001305042863032627302388691635279704533896559404808465897220179435593401950128230442718625366205379075800978767608483735026583040946267759140156294544849975997206829636868686952557262872516816352772712584242660550885156515293670160281435775558413124937844201265525171667497733012972202380075404325729422866708884616016515788158849324204703045049760057649091694200810058316105652493019456926572021770367251456427579273896049414093217771394336338498017086660885915218478758162530149002490404821675117004782452131834604545713112872602107644296111401096347377931884344306582129231972972440740659033211739448524541515753353211099597288488259744946322346584194362208647918940543695227346201450684611748507552539224770490606128174199916499513521607892864999522556938746851960701621974765210330134038926253519427546114021289938794816629308324775869773203895022844098428177473039399309342557009049879242450541396529947593204285153310804684380038205774685942094015592089236049196676476508611249157160187216049424472396189532830168453514548955273911586881864597710308822239158090139119288171642735494620638694874949742045115209382675324342761453671118305948306843647183111723225203674859943193203500086571015746078822778886894837251007563594921857930480424990374838072938862095766981866594034999782410000055236496042201562005374010768302483879364615768648027751503467887995519830362492314894762271546284803749350815351723492138979214604906034114088750487635934509320250164102087455456365370581648981251898833108419862142054552391373337120239159159694389590186140540667178401955158228698567293295644253399575513083322082126352942387273263880472128885397953569079940868716888960635962000423341950873336452268086147421254678255865679439681900391916337805014752141957475603032792806129347108550758595953218659885641993959388822462985377155637552392269442375035641859167392328710022034009871206105687177741832662783703477226144450438814364738056883528700288715310236420750124472401472350674564553576170340860283695247953600337212956839025114382198487391379799908263823212544434449308877451354280363645017293719125820089957748440848482106646374941880873105789720962753719934738581995871440509192132017191954673440447005220747950001295848253124256472344984903138549845176092985387189020280160001289169756598490444102407187245441979559470829936950682305513703729562559681862213922731638567405450908558947568839230540456122446839899498697898782934907480285919875453224320383150122577083171685998507246534185669023360200831607491719743464885277901474422865142010997325527708857510517743030329896484060435883217522718672828271656631465118821739131967395881069390322376217811120591294378108807939295227988308838409110897589845711750066699238403938074355427083884742065205113967518530115554962077745266906615550793842460104253273778417139403398859465551526995225728366063169980855092496954260474992015268757835267007455152976396945431141821191259934963782130382795949196730502702688792270365653507278192624448969519651081755888724976987663290278257995980183559448353559389395584681652267460362404189816796720365163705716731818922135516927432952630878270694085733657274837050505897671916222931744277806206513187591044141498276779410338460909891048072176703425262812019618817321568211710261555305667110076984445820086879803456882569620382123738374867671106601471237846904158860486361380814792233568136885981205474116784309811961251578473902279169146355278410191381261668784424883713833308862740089220740203675976987140650052159317316931219977051086580604778957274956631073223837928770895384001922889703228448232102504270266466719716522110626042124477325209166560736583510023907475426476946992832533514489127148002317758340106848950287358170620242954346894300678499525017161773450643416123851371788278190237828943324866552112871634617448740313184824119930915433782662172149679914600846381856161687658870292669229469879205997335405881894944282730574258524793282566210175848836468749027720245287676213949682906416932025770055967691029924217528904149526974460642441668992178326487722673498094829748958218425021526115692502771134700840433686340020437200234952408018623997957244763365470001560342040875716534494525822961448185900787506571881013625103208921962371735349065389856642914317506456229885144922768087690509741190261956653650605195733455006138295507424501681053266986635810958797938916516215835794075367720298252662009325432153311117139814330027047165175301650744101137078251786338953247505005475056612196176723852917915966658935283672188695131381358259513943443202782761336796313280447124711610852416354383551003731918517392552850141844003248265068850817830288462405817274390695761409802527747231902202930928989156164440479336145376587771378670620864474912593989190500854905991622241030483886053778424980619679504781406925504058446227989815934956553133235710652629589279684168249607118839708285910415411964346498856676967689172583938860599903929419978385750370071499153918488222513582504603512690892670740640796211115847333399206094364077861419206381507368785497979084560978843428990602897372393998505435052562001509998940476728222809196345857630475063926037256004157259100978726530420779903903168299125183386050744483886567571409192639431709662879289690844658099649863210368424642897529192929872351976960426907694754529453735671698392804815919679925106018385189349988955820967126202377404915986009338853671683400416440032388998358180903515760594380804865665264043801436515579751519747400780717584387235768305005570745795547647829753731931730499348418975111403198690210406676698428804859163595629923324264098480550114456716561901885149224951686343567013727940368233002773033132659101126693978161728726264382464985263265025333993609057072580678609374533494839519722473118126388479605951271970506630527000817558822390305411303340963908752366609280368456168496466785651151916331820060440579214927047518309800959999336124015433836868487346667134055175842632915271894916368584792225795631600879394213666540687950407171837915614580412727965966186369193333038895897951805792209279811213872624533980902166162536350011658965838391191283833479879085776708403618432342186946277410598371770093967634204002881814128874809526040211353521117482739865631718215126047100086595533948216252039487254051734699354557147139254631627193527964559282013967586587520023927536856299537131961763080919393030619531706407627850290575452522850936116321766671055586212864632636115019725870002534379555617716462721105713898060706865253060109590067643264969290547461204773756076288609777477813224124149653679660779069274888341864398733230967875466283936003192780622728689405796559239015529447657873987790072755882530760806777620909649781640723491574162330628124609045865554989749948368506242765059133621500668821295244592822247762550210424135589584698257287072774827932434528699741334544861729289912046989316174477267782070456270929152485772274504621583376439030295906503874017084836478658645066242102996899171479285156470693428834658661260485773455746066503262282465033017581782894990165569196710549156457508357045382479078634263179576098279200927898008875155011246699935976555125418301685996269421785139578869306553836498298328250812217025136440784103845507462144439765600894178194137840741713918677539055021384140787070140813663703552494172734534207436260082552695587127242775912738129710092906852530177553224349479870235769110487730943472612327529230911792534889512341782853611517296872205790797559473246089202205261406801350396228034647258202425860545374602018519397954729284919373414837120306250368495687232988920694399710318233619497674491712665933417959416183193582406570861537226214354126760419734659451001855032929251597358349197514561569094824389094372842537374364960494003512437635757965229162981075896826465551255396619227173102631645390700467980616904866622527202726680313949726110558080125928117212660392679331743262990529184329525485964229398038201045092809928826866450625883127055690489307217765239282642452276459259282640372382577992831161860541574997769017028261389095109575686984993744781945617514259184390670198883353649706036303379370151954546745097000494774436944296056637538158378994784436953927072181527672271828914653399785056069495369044421819418800113850928813226499854527463084832203560502431551989166960742912568904331549001268367830496725620031839672993351099942892611029632000282864561625672006269267612983230839455854629898460436581522250254854552766526943325201328697861300471285612129570095139040187622091402090808040809763073989239628774175897067783059553315104137425538336327266563730762578114186192774816472679124010587135371892653857387159158961904484732202945378578033316693535600638362868274789101914004423781979880675156744889524388556879903507754570438714613224209140840570510019451458435437739752011301594778301613231234388290293419136823460254492589486345282273261415889587804721585862683585799450486342868893385008646467512358903441948339196069242381059172585293846954609443938168342409247080536655879512291385658856008514264093189776739272718578513186107407312551073036324187601484740003147926779072104769859875562116316269860649845414688746051433754868864966232359147055659963233428298604021171408509744022640671573796600274980810697142337366418480885869573525506129838157482839495295135199785957402773321531853341591739119179775848319606521997015459138999695281925459852859070352187906806920812969895594919060308450837050088491398940082981680383634882671436946257909176455360566768054644301091477612235006290325137230422981978075664100237931544228500385735420626047403422640992190075083578576048615882123736080731524541438759566931985794829703281578528899147885023388972105184402458694207487122599523237042452000508860227508429310142301413851578539846320010852059484583642402098828709052420317663324948696756013610319075986963392470175984825278133645994932724186218344871695440725011700841988000916192743162908157475351297329652748222819647560837578345177126646691288525946357691902921250463746413519765393321957168309615075712912167401782460371310200466582433298103085917386903937435584339674881262348607876934515438398271088528376449798899170932269096386208535201144463610734084936137287202276079526624268833887003160857573894641543354069356986000359744945702500497652484645373650715087802670726230704826396376311921651531437564831371993062305277646559452580364606187201525522249675900985924887856520487485005922676927634801392387581990085303114490203009648069880155202634284536191666954723648941150279686687115502838534952911193324638668094320075467275115342211497000536896078319116446723539516675383700561991164235482568089908485496143637727803965800454107352452135604316033995267948773067054729367443943772306102385661032676057357186730177323696920442639616465228064600778468149006959100663675372969692919085542357701028728166353645157961135869498654856770342198501428779055262983997803544886314380631186240817859820833447075052022652135040485171150301770576365953527423781633664633340378138693946181556706263630070961142531873651606726947841108862378149456585797344148128906001135599536041051445224162876844930227660945914113230616703916375730201835722309723135451621915488676853874187496133840280018308316946911065511870943759197087664362013961956350352663169185712056195836797360441859617472052367721016235796625125185128094282611021535653092250694283729149823179652452134102286898507614173924135466806927218699400316642847665602811780466791742514706698530578083050880057273882739856731759599072216232987330614282755641963863891100859624276008700716778909531165306610829953520676733750393604863192608077858945430555727009256594606752061539898609040060730561347352093171132022874240895387473066695101664195679637010618415883942448377995326148669452318619539616806170057251643607973428843182563758030534736206835858350172497422320309420590285021366738462656021006084785824856681149899775084452221128344457361401816999924905375048196137672385847590010007015036942061575894869635116321506234551267137208874085419556967209323888065614021747431562431541272744780667046351435467844325076295348070704282981893816617963597225493647243215424216526706968804120138204446770320302184512235470525257135114698612779473841029488716090905284308565100910735935064591349926003135030197497337777443874554125077272577241944095920647633156244916081453222867586950978269436526032166584268303711691479795112280399671892885595264639884527752121732573770667867472499090242563529949920474644487591583294089226179522785855880881998221480204625637668043017326079199634436070755329236145718067478644387102537225963859293089563071339658340910576464587716613685124657098883159854944931282506866089672167944644481939657278984033122316670914836334943319085825492616396242334776309723115904827875322644348980862712943773712553610616350775762199648524245446089625907538303766610340300092695605040645171608311529869348148015552444018635228351700575192436968391464863083891209669651064205004344437106437929133479231137610998856490652276649178002584691533406529921817205076450212365566109001575164893054391413603705369318765766255128018818575619068149880531054442240434468938537003752038098918943867680892464015747725840242919574180564038718394216088427061916489985532629705861075905237881283095815148179666452863653219245975929631122397590998206746484700283742851076662946808945286294994423426947475420093310696230338933695243667849441836801403487088616045791382868479528392512343888112653182973449460083847642346694003645540815006985259632328212269144399140860825234339435682126790301632862735670109491927884361373240278145536750620942495604850140622443176186839940373954112221464271554126426086338853183254036504613999101586265035880025966820071582139104745386593030374341422768190250760779598359019946281637296642840846565656041852886903399352269026560654110697094431320373060933627515260474906870171705081081006236721232922811497582515208579379420936661793825163620310155279558691686978925783590041957236840487200866723798317891911031271964785527817861950986123717158378170981287459809515845508187426922134998514066558290966398422593256635988448351806239337631548708244866524268943041094955115262425727234370112651669074144726615442364723169956125883042641081019410485970860133980654730694661875927433209826313885639689548878400255700528642039371683316289086497988930308283143845117435914439983146888953402197484722186531731445441327443385570898454822088782781000793065445899360608184861558099196987830341045538782819013891545963258553139338840841152582834349912383787484296482374520941567456492301834146412953879828851365612953944765586020241979421198099240593422912240751782462083930012957608199488043162886728978697720166088159061449922412933846284007243721060059109898358988117657867304990273356438639646111129271493950659546070254564488917445935011547991111086547875305780241361096200705097905494081436035281194803103919920032620025133282226782726874544723389209962323665245244128398198027471918019423359036181194290355575556437110738594021218375129262352189431935022159812629060722390618897514039258014168544805213624103186313364233626648560275204589981680488292677066615472854564243227947179852444996753926792399676608113281695376858342081681143726392682801688456597429104033498838881407416727717930395541621987440153122086327197280819237667039258215709019857766119765459315292246492517148427710072168950131463521055711373550064348278198369163560841479207937745922975382844704922778590109051684589314001353988240241076946713200996333079225475631937664973555926058921380592378152497279967239891259761103697523892992084109240541107861861841820971355429592235622761221023847304027499632422514220686535197531331192849505436588712753157208618719852731891040540247970335119277353646025639448532751746793877135127408174934091273215994336020447765841042134105882644978894617567274226140428809063697738732823150355026855133791675019286218599752245129356162647777696401162207826252582743463489252428769772055402410209519886624746242478027163832238540345255486910067999617793023014167622342292144945058749095659936882770443230837416853920192585585752587717371033873293858323215565820767275153955408116162330557167010969987157065866858659707017737464681202173116007376109101553396614954609754120236286665267798015097371176148872845475249614797288774727539974424213980372727479416793045702159513172364451415676082575659922412895702868276949215986471932435758190409009424641982076957834233569818985325826357170104098774118361064007511950263299665810300557878874727317158439319827045634908074022310964639718800752364769124361488572103535062909290100196082110074155597678099764297517744072283521896015873230216514219565011148373704278200841742824515833203428594437417953257854900333966260611101359526319350908189393834867378347486709448290039041585733759504271951838913040895766090090971361319607933644585552708932470066025461663846986803958008439423109697687798611014301108460904732854227466282102025077724684395457846919986741609078688113643083878783234510098166374643093596532494076437094127707839969351197779685609962359552587530500279987421578792416413535666160113813037371749639018370112536972580668711928744291747928056556804222846144503271622190645340122275684120595587988143190337630136295186559599018354560016329051460355323573969924271188810882253828535355816878519832187714717308687512714777661506050082777080288297269788397222200798120646722774940183014585616950132326934285490777764425727937487129890224823755674658271437576299938434123564804418490651344376366430969891532710115985312363504099800837233969591981384152777092244205065404920576462333094901430261565530840265890770235292503639369880168437281111103089395199710549503752703493020777953271581396646936426232778566099140823516316979706632087253774076051973047519456915933660139970650187511893054133841458317153538977129672680527598840487899881700039336301630494294944290413889011949266253323533233423215195603134620060642955695723563610028927062565895567809525359648431550234385252908851835548583040912770455839546814311304066993556748745132499018051298472627827368873235666569273183554606560889467786430769880967734634493761236306634462087342096949599133110108918842918248344575837775947519719418745786072683461049455292126834674851786523994710456684156770133868311372881476141063901368955901037389871515531334419576675866999627538529666710880380907178600531430504574545570618507709550570235870062123467370426046868703584076104318479463497791522664874844747589171708927049067370088969712975969828425983482299136481768289839600104873486678653506676278022619211750960843652032424448974015731348967723514286876159348795421946729483383842543246368496657560450547948706277375758172157313256707174459270166869694889612477140365117500939946246240938456779562140689743601867650952902125926881180268848188016477504037714938391526827973468397785869595091613794018113362027277558203652160968508666176204350532255324922420147355719710003980378064036004768581176410388547605448586693709193764184059532635026502471469583382739899893391669426628479750191582611434078112474182369234992004548952557531166384277654168707976022698024699503085827363421538465559362862425550200793609078989794877195501459901644931953445555300466435891777233533552582726855018472263886641033110993159391343858092890659216310851250399137663700185260277424408084208065877479115986067494250723464656473411585420324373891641877579636239994819880367777165847734467409306633996052807057541130424403967814255379546463719792156160420788476484570332006468043311736279182862640529011723928332993493718574861600576964774756024035358220331094662860026414327188549369284226062556586070129227278595154928782474509645526866826658097618576165742798036290421312489310951188284953957563824909696133617313212867941043486145880877785738494836785775235915716314909962049132850554653056705437199996713022731518586945340084203665264726135467328157521539161308258031622976973632163072677707897288006380389525532508281128127913478888240484441839932492419555581438167075634467233980921237319090232065819567380375476660575985481863908073750814774348137107261276319138599404021080951636644156104212080861055133317924472089138110614283822915280724919370852482785481205878041153343920272759904368849896378218003825829030743634639408526459185306479245612566833831017807636097654121735506550362732950851462909090983718522334986025794330795052177803529599410256378896044317243193061257494396697294875721186342502069737211809076010162145953366250849587952691414278454257639946166154613191198543552014505461049549568045396897581627387745979176698713127263457566632952741531891783344125688969382490138959171167041486999541320354992382592467963771135470636454042621238897651240703573589196676337982018839616265226520992085436097273450470946666121919426939469460471744312778654916441071056916372775036307805667872230051395063833706733678383504509346556546361870343589578975922146883465189523438575911830305646139593671790874973243020888252901965279542191420469564062530444597685453310953762645817333015412150786051924728410372098331469175563765027418527922259968868041276051171102819790527140025637203241546674199868204595704435223885649358732707217848624862329233236943963027607940491854410640702260024911026381127194475205042242241021552347065694219891084942524940760518791169527930701374485003705387791909236928617777742987032724696673030819449454236800891491290023452984213719423008355537207970323400643998579432330792738537210340349169255247457863278106711856959060254336168387983903790082471692055649242909751230308634370686374573445565515542698162837193514811562953222812158922376164670320048283641392935638027849073925001206551139674392428045611103519764755783022095124546693744236580599321099582674683151763787120948862553868469849959586720612608267602985707857413767650471442864398233019678415180222751002572490937808658113940249934638131631594818365809871997556303679175641535572543170474707701995859434297243872945291385583987173526275396083468668759155017301596036282650360003849538896749345571786663423472344521663979248782388923886409884399206344691879701333380758409690979132422246072172167536881722321765147913258895193274728068719180525512253010611648034515267566023784812850250102104708941112499136621359323257022444036962565566965470131083690552652763848746237465855599524902827418349355033206038462212811354904874888131178059773829171468293071908278299581687536207130680760429973908956996885023441703060691191683432129378612321957486082390795652661692136146801026733052051258736948610583306540146375461401191454615236510512483112241585673878443782239965152970874692239314985885134719227340278653581979240393728605234513111462730254515460955264873294298054507835924821363725755182956456740244519638418327974840651693184344678676318147032403321583888461733620543777696396341879733912420509902465806955489304328482115075955803180038336530997416523486146299214118355773643783433156123503063321439305647233108463396336979999991141486261139996031543436081489857720718764901104868970769311496345437869732400047008722503783736980376824673689082110453837636291262448631447250538425804129292164135248389241073753511076216409090886348909355937574958905564465379735619372480820036652574174661488230716107428917728438855374149141032554969022800070258183192698239235389824799910352410266274707101956656341140125684621768387200826962510107152368169071982157861775164925414756540502144070338776041296850122868922290985496846736654930244904550940029136387790767089240283858960907879092496051741999351722890103399414863873722471019759060945963222797223911097414592916456443331474816017136897604832388652436896522425215548340649859633753119036270758763398549731184288813934478547803786162764890868017542409842664126388721279529581997786878260432468371420439633560688834389661561638006884140594605691190109986427942695336299151712621317322932017831597672806022816448620888740988125829752698288662659875151725238008846884908737470701944147121574447726188548993617098800266817426249493394315258561523080283690222810570329987077326227430791064689907167146027655576327644091763390826437868325718946279481105395891873981151474039546752918417321831423334134913220773624821680022155440563065864853778627128627434541327655133551912936514952331000155739903161178835145491849217594501322172327203372025766585957062226948988937399235915247168982371579506305029353986550787380203480035715575213438359333376616795558214739368147082073709070032475429863888373470833403166743936032809690082250496783274684545348122461143220876834689792258356186073097803427685912868147373982973832410635670825387152048350925112674329407084183059848234317274354681670306574821133450929029010949690008705319891988751019691782333787420721009159220890316312311453696576914827912816593202392167590903860934163907815655789970878618623383844130879131873897668721937926499934430388058792491848646111726669183023110312419468664806828030632338962501227740620695706431444000870751641192311329858513203210705491046345796255863686941897727576884767934698295702224802758908333844999984926302800482939176652101086327316104223244402855016866194060738669525601136290249633592353172658222722882371985191744856794961227211007895944233054668753356128943110500196780855575692139863621501219034966798920794361358462667742879195602837702277534776510634559031418435195788680890095609569963984812848657729033940633338358035619253984574374624609569942462729819422626560328776194644083808159719934714232264258522499739140683303274982168875507256747940101033666399519646558478404155844288812074030217059238268672662021312669794087754281211914812566285326167494699475899002804584610224726301526570917545106700044752378480689266090002812648824060484152869556730784553179094916062448411719024923176055528224990103780117239680009399939465701007927296793013594642937212457285254424399719677021776125850294229781173949746379941501485109027645434146486037333071149675604371824728782865229580393133098852978172914299621025708562458710240404956781812308446310427400241505423046018690657837859642084323397013153994228537464534733044699530827051596781169114349928974329221971234656535662247312701871756462486507430247566645490270310841895304300352549125063951517925443028672923198027721638739834949592077948919521886102875225897576859341423432901494788728676695568052801812169964127891883198267951122563629753746510593622094445612397183837320588002232071661110117038317987878118333857117075751436170003480831163176264418105251881460042918101938886074229617851423609956644153561755414023699921008607682300788597967311173770688616425793041176756875207576306449127799046001797727023151009546821641470504326970419345571365634326741542310319559868763672555560272888455659424027470274111190062093572384716807830846129374877493419017305909156363644844004752079027912212632379061236973283427553477602358425050468605905221358904043365743687116891937783749084033914019118530248494255345820335859791845768520246546670692688742117234456813050320637389938385143094855095153600266762312543097148923070111748889170863284794716728536154731890408781529213687879917256057850134490315032727441376619336485818466360547442779105758662044063730051680476413264109959061976785142144013813108018504176882750076365391007423353759014417983077278226626186390094570037120090008170712387811314021846469588235461879095938337176815823832532233003790241125737444462133517059576839131569995107762681391589987861874009613873374979093512047290814443999185910810332926993489307940731181042968530290968643121513646997997356575348961015292339950093479125209357322569112614877887083260475902286633193960540681327204916275246010009460879009176706816243237591883650522560469224555125390762485441532827573097243659176605271471962237094077545818020245907683027444302189723442127361613913474306516986126260764424592098035639847590209963105417289569528280870686336726529998047899531845217265512511364250584729758515407773338863108589350830913320900004234828704337241883076104060948068718764607427016969201178410903618585259736710953920478848983534800185186731832846689188838065272849609362280875528629832756543589439485236149976607685312098498068750589530767248887088946325374351816035696011631679865384142120361444946971595321641992565753275734811261468969587003166197046299802344849171837951752712715943474133715900639448793574637623228469702863309988875343158518251653005323799744643406133368778004314744000040710043512103598225411471015659994519820226094187259295281849100600160991613418490655263180292015498443086448681505097790127368378577426229257583879714325641781722260673901048510790850041059875324897339346451881776868768582109476192195221593377185292314347827310347584467739653533323623272156871164863485354727575687976446997333687708990390870611050387139127025940578000341000670850198329379250627849073905919608895087697302885757961908361598847367821960177198195125656255118160331526200788382185142895504293422205716444591963156905883880174831082635823597067108601057257534354956431077665998527968997526364518587429466099051886400096094298155664144539844057045937709174137849568443208990562103914605607597732195684792133872933817814460706229698425550221904377283283387481456405295801329031121826748278236241772488257807941466187733063766983296960459027918347593052647668592865732350843826062716406846541450195540173149104617818393077030851878367343594298286652628440030628283736989827991380090700869865953886072102938463952282929390600780401741651083782359732477052563390504105155010032599211048627405333886053829310786399063185558075150017769196919478067117358738574250880484552002801469058617952272718612868231900686967461750567616928421751159179897027279479838544892435922417625087640318158558177927215528520893173068351119174707014602216245879942361816538468652971330646297277905066977137195140622527374375751572692655280701675787909044857100516284549133582548158389287630187985007143012166380109963788226445517865211360340443359597869316015091087652607648000599452182242922850279339138362824199938508979447259883758349979080171755784690903334168520796018802859180254873915196238296857663684072632168474232170893687378555051804384321465698825199195146449688883126813549612199362025449234031516370985909083538437611487048268321517601003017183095910490563845674489372670156189746511472066846574198673545933871671701566616973317531508478288714235516176357833013043398405344612423043906034525347276527957626711320350645383810922285966958924689416019690093010027399331961258292230642946191867913677383765182162984052149833386704329647730599508016698282863275038306335288253969164864756542517978852934746857228594275199769922260116742808194098052807473563228933352115183367121116310603640857635619358631148671950806018877309058138267154602678264937294857179921585356945252644859536236289301860312669634785641061388453415487310816335776629782346820309085784036696686708237418306570467705595759466278146467597206331765957686551604604580593653189128615356829011393296405209995108977124925452314403316147853117560182146013927773920557602471754973980717127105187718175049682016599541901785690352662415713637206942728801664286323415949964276145358690974828357908057594975195482392172035327495107416055523547598101512037312697060453673484892520712722072723496032886672278638648080059834196225952386623834045164105893823884898744060157283104200111003641192224053446207552043296693148695390634906307869444935067748340174551163009439714571177091635983734823003341964959720370927614835404253966353633497833333169378663224317479788977447983851460082669037742338308956215864506043580735320442300946132680964265178104948856475449542893383058666873522243401533972394424151860567482371058934173531729345772079875669093571069749991692091573119401868311868559752553678072561232304878419875078351404064575544625094552124920316113615253286237728515133686714724827435045766127006841219745730387134693905881629609673936455240269593219345975380965508831090379214879016130313393927848076601052785893917783644018437725072303444382703681214661629915538851682282111465881245811842865788527852510504321616174740330388751514189178421745119564381328720933818525309088326165892884851470630415757863583590788633585000947131767300476809117021912938200370095204320449797705194214601261582603874674842617255782823443650535991640112480527203297126504703206589872461575698011559365311097718152207761192403172200412639584231579030530753944997416189050321809126623053937320183969454407444800208328142983887446485069399508775238611223236890091527183281689946213333824450528252985421337113058027838680851675704597600149646997760604243953960386816460821580759907309687699616744103807547255242215853435305899837720434982820381044010461833341026040086749203563871684384751836668964896082812186736105491039133963208955402202495893195369225066810194829044195989994408899809199918197987888324840894929526215197260297961405764805932392190407562710704468153416194460562945755458768381829370264490739360852062871875660706205813059980993192990042572265436241661409250546638948993593093596434590305429524215333839019993028412105886960206931296463153910428367826666993428737984644548288359735256808548009387500383156466185272599328207879024644752751427574626569295313375781667364140698163075871831416769240379515022240706684376418970541074948880488149204085863661042481378843517447240540818652833135833067977954087849825355757135846259288300556245679823532994321540233662780030368736074648174473237039220384192038708521885993529387561857665065816892817570874270749091337577002355788139073707938376593137758934072596114627528351838675039989386449881049018131132494458602950326204648301835188896950671144069698194757575266189564938981173297089651555989577607978891669193276200973967540379602805930015581299422135441135266181487768916038856254978943989093346076249653400225930541174900267972028410353463166165496144251408813004053871455960763631838272357457781004295298365171189630082065680419437468642346733874180358542721666356053240351794052463686081621417332321110427966583554695840815667657397892814882925559023601896053347075628903381860554450142168798712980230451852654301110305921933796239861899588809080799285577202553887977563605846584036629013684291653040201554757585440156206639174433057651184233075576854644105220662804214173338737894350611963084013186954693525077993820189976994762549479313218327212407779483239700999926175965501919112948765237325645123349880960360244019322466603880097748720905124036019517343854920296579446034347519475188482655109712512412873530090597982860288551615298264387273587314508474782518758332774685497475827251510486122409492579659810615431268262450235721915354716388941505038675110879296860795073078291260584825588815212274339171842794369704729321672002527531732768787517875235843124221009542236156092100773691727960050705288219708332921278149612447453224013189945327997571744263169793662963322009447835233195799835648651515601449127181374250118160686141002194024691529580985040000304313497274101986231458401210280572534848878587814766252519855228673825494886322273622871950057566281058327670561644278722454293795118974405011065161578577081537879703838275224362252920481828715600753954254810040458044236686077516372638938091497734960434560712326746828251312224485503887232518653137366072300289365860773593896353636756212648609535436275716650852252754656830703320877945067349644624549781274979598122172796558634440962505869790784131675634432422482258167854159461665306128249191200233240058950280318084441957979517922548948127818298020405223355906891327686877505148960368636742843083466506579375851193986014919775128204394359121884411210341826512711189358941078405593571133035292399179148983642239696126752335849776372934405912923201577863436412128868758330391639098155685318383388253846581360224903299333349727999947204852855516176273250714800560211092760920314259948899403566463435953655254434236347301637338793231640385243446661044297683585166050366396314634061821956101045452460545357196404186150902404172701620311461266363580391697813809816479020322757149569437792826203267145301620613745754281725213221563557360120987572403896812193820501294509484026220104907087257213610827948019475122426186994166723296320757751231975265874816893039166168667670159282220142246678141955672824831628535763424925557185697491466050662229468947411524540512570636119564171400054209778179854441863280312319587851780595604011189828743826089256645836197925314292764255480558982980907101496702788572582444476625763139778904036839453220180674891668023863844304120556354045803724924059755658840434311365446687729929125313160438026502664713951132156063400412442641099184435294106483992615978749200348353178788851036108201237889305011504288847792718620294989578323787653934111012409649171796361003281235356981892128407180512031005595700987932888707743675671251046785624628773994777283533672054171134536337906836700388605069105160034150144737739424970342007953339096106079576776219940149596144072264883368210711004991918912419146563263746531480066625883273855672107453689688687845182773881168987124960402541777848520139170777528042129550689518951935084905430807596477665972095330291211863359858795643615045273814994588549206645347390233179409886208194834608946711695303213818780439866265541757603409547641894721173028376685713033888106042813773809520466935670913152606128800785335788464577197129034441415760669885194391173101817661636873327675050204089929657128892116072613421987240188418923082041717011006096977961265526543558215767038627838769990000394046878909710877698854274855950894313538668617284366123185448141534029984962284858953123700366849534488175453087356117782542140084311806955791144973313214243318989379301053611576945453363384584623574527282013020312785119849298761534744801443273436483895765818602479673073022420936612031651132391458625368305111761011558355173984449388620612308566658708135933380987016249436042281549124782945847623302552807816007216499667205704642176503448747099601726128867354991469023347034837763531743456062116252520797519875061152636142261119351379074109391931514700869339431142124820710376838598530037391373032995646610907857301028580591415718802559270802944249983069474724374754869949313749777657844432157407376301665816263091850815878973541791294712416757368011287863899825139736886037357908562480832784093372918318454640986693970792088588014100213868688790060644565013942467067213710664295845776079124164052341004006807835155215551231006436103531971226057453068136665435897894756176951248519817281248899258434373013542827144923800976433352063758522924514191879238227485050612359503709624424895580873173683432834430194040478548771328359842847423898971587086601993901680750344870656834733965569840616234106616293262460372035934481664882578337156144808307989235112144876308870632295663996120948929010587772145697491410549378529441866029115817525787606497888395014283606881365558468714542265278369662810547475288187524993256592535640562602041297248104998600011628500958260927624482833775878946050092020020069704151423506583396384086714419439752790556012048853595964336298735707537208515283430192750935555429846586697547714894627623939392351220727029369853884937562826200550062370402877797190901285507726574400385873114538477648578965081793221597816954351893866752181034270093273881338361955946548551164946579075587735815662587967799960312162997973881415746649866009440421363205986397384852876063786179916463306997228896553539701750056805794206864849018668365619984623351343381056852713649979055133093033531520190000788879859702173380670069059482416903171886420113593043768135520390723151627208436029243067941183041396343742302080291616243011531301931714584362465894599803936569467399358006209936140279067129308321082886255248229819090392651308067331577057687561414500526301369340929599591910417640650693462975404148015080586448109084902138065692351173294017156821652336640262135252232628837735319459258679908742385496435261840517783616740489142356653700330568890943972911343101045465672739675518866333758615567962386825143820378748646362882399092549404332852769876561486358538231082827337570883402545936224387853489414646112709164690317966687046541419618147826712679086650858345800263493763854787780953304648660596600974160632162497630994672408991590597023962904086393830375834890590047825099145860427549869582277075169389516700058641138648288703446784270403661451201430901130906586670081045343328987453689550510110656948750206565651684009135286644746073164931103340866956034169993265735911422912008793153891817712795057110295190634475458218021668578879948611686383256740627463753419589921285197894587928377063045930164810051814108085857062273856613115228732359066407926295519817558111299181034978850518718869359434692645057254161187801020283008559169393516669555148979690283682366969661407024083192352478085296380040638231639470311758254583288926667188946253293951134297674431382522456744129760746337324730200179044497305254861792160583161764495568776423423347661338222982306173200759864003014858173184348068625856623568027925895850948119843240963192613058577224291990823323952588969787726426706573650236028986349346354930241207546905012270315266398069957824629774320907144909814710906823442444113237245979522746473224367635730670526132712501967329885059466739709480438558874676666135751895966061536043095759990606765851753018352951132748689558008139461293866866070380388340140221324227739013085559560866381594164339806880450990638302730140999841837932889108648949763478350792440871858221070332988736873095861960287518310109925401158420699345783682321520403976478651573260033625985335980323459672878723800281087605961442488385124176285420495548258012433450404488193308829488227068790482230471386036139065900323056164198191192383492494188474428055508805520114284524539485155751968217180127438353109582783405042844254965059115324810110949133347949047046937021523249904615242420807759426624066700927388193994191782229452247317575502886420960314827657765305401860146201074878433928613843984642430965554146642387306010238261178503651383601614862133591939272607066972465710912048447115625867740236901969539467649121747570649194337990233269701483398422915952004224272919763667537491416650998017953513467801117274537372146632615456236072995420134661529523381544722536070196361064571596170874773920661248643179469727806221373504055638838163590270804963016559906795509347705452334065406349123436783392454245452358445910082234815467748941864192631789117510576028028375377683225311370981889180031859302365012952742627545429437398958045216016510805590251964577815823890900653990542194996002315462357666072587469721706335498937671463873047495723313174695449335316883539017273640780872741803357880244196333871841522190312881661030493644318470114296270696401644013297430943749708954968337379296557009031773816760101540996607481963787854694472881147278361879830904836134730026051392584756830706884047570710516929477040441839932177489087411524610554062374317141597663755255370462385925074468034641400182454304637907967779101358515354190298928444890398837368918876662625790239185480323043487792571379098992829833883857663893235856690252595026831070377922271255267752468936165576170700195955082460544998488122259106319331255095133186257629454740606840654931984058705830843865031578542793090400551687456679364282332562175028758446026727054104619797600112857394669587462299728495437695697537884209802196894941645955608127136919541454243292320110298265461793661703337250133116900861751905108468621104404122828529213917106769708469225173216080480026560831078842707721516493777762321712424129845702971771136743927964457883341067565774175291787682027020572340716314374085661949706107938491378246089823994765365351845274621478829978236341222704878713204946627855377152431196899077592716596224425806442212128087755446092355259529217915109553601397820062452927185062899221636686015209270661606474854581465995468547547503025847148992492040142762001164004484742231427393485496271718165120460187404962568835306176409364058312072889563611844857855225387852545440377465078401018319564681037019014688230282981870709111882356431885067676277118128084705216702556132380549468909556252986554399451777513487222720177543089824701368734363609737595525424058912683710378628191306367841616578504462462382234874762334293977354303716112428428482581313859065680175672446672065129340385190192654023811575239777996850675156571501655290791170234616203034546849774396596926210518892416215940604921309114109512950103014486195230134390700439383677348205585415931613822824213260223146995512436999081123358823112058781468607805198336210866158458537432703199697443917977404964485004633778665284056544331488706314396659425461858178462019773443546365605724806429980535997210552058754670552653647194178855098803778449969268023620677110779702818391288911607090337338147190353094258091328063408815550315147368690234437228393574329975267082046463693042066374709992993188848995523042569275149587227932352718741577704163945317913335998624064499114553955300261886438168081519628544082970163287468410831543485608538977519759386312301173113029304011179230995583363265663597465083991595654787238653111622280943657469162245237781580983470946833813084213357358070382204465815722923653903089622480237006126182737743988462607398018231910110536508017396663364651338228815606468971388472844866767379763794118674626845904000857166137800375348373884492130313082232857905753740136972079556529847461511408552611445443560989252876365503801340165870122937391088518341570793696228670739598234662725176696129156385927370005374286533680502617208691181003437244360489907245361219418428394880663591139547268559618483612092770012396568651930226949210160324786550367955768579700531174187757217057666006034670154676809689922877633276058338582645390955210968995339627586929240801159215086622260327761256891600965475749466113769819412037334763327094505001795416178430871980124414466937735024685274088929624171421590957873621058119813887050604457236500027467901569932390330735069434101695474412381910092892116139053186428991042274528423751698658874185517458571856705993397660427226446646355546668620007949975323910806485147137747805518430211718555355774561924436389637811757433917436335172859827243481467666516094023776669225457671899596651878696253790494112048658307086236251351300302942386111375834115198617680553955812307489690332865572546133426287806765664271747339936068521712995534065163521780511567030092038546862727002950286665864505168230788451761542406297473298965335412488242811342440696682508147160749911442264339393601260121936641030098012723390412292092972530369457619561115122339958049253215380572644196474390346742763551781875271102419130625713134706211562878818988730026311635027973068553481101611362059093849688258034303849693190816401718930873820025946349013085301404965772131889534908708687135597074472363951040758462003035055973692538026194706247373704099287595832494710650304323147241709355825341643616739119732143359597109148426010469367036840320086727639812568149167298950317832187426161409174941182815298084033469429470425455555107517419457182391028194328236338545671908000986304928480311462169232468844336643322700505129537046753332744163914661565685575614774232032083008137003672585275746943614539470181510055134415684087902708211624401365679488852028055790908339158719516886838829161407598811522922472890137409478157260374105015645352159594542735685228649070267955801534139344760882172094283683872578322098271046503374931273237401415317760219795008123876372225110593594624095653946008463668537342378398820003560411077035367668816728117560169113382889492218185664349787878789831015341091730241291747130815498384597541121062717989589222029228728211708952279353814548940908602666855716617958445484931783112141936314563385936945980294371754841123894666547829443173661385572220590255996586224020603408338043233827579156578041629887701589771960042174442528251265500963596010391625529039327181293170373030126040388952173266622452857307566191016670057921579444481050721173866224413524832198731889337388477093819703071444810308187982216263737706817527204648844178729044401298056544203950884509871462213287010030725407067890620841272699249743800238247782105537609949318492279176359141431169939192076018573169383117882776592053441261029901364676836113484202888118835406916842538694780352495596845335026983982989728030017098439904086854602527511737015247608889936060195822896581994057521957815821576862493272083393401054008307756607525446466463394294087103651247613621478469775004256984990661677394647797837872938127366899932245627193256098963826098618917579240358792476202922741238215750662134131976768862124095061858222950406371952358183404768355121855173101601132848288402128475045408640236361710209666240898332798714282437535907023009420451975856636654146736900150877355894556650354405152553081124780239339693740951179839803930995512343561495886816615845436786252741633849250564338262041015665407342571950576264195239452671225000179277538157611355976499320815159184471782326300876767716079787012568236058239917775558284983598963576084728380901849501916601081566900397200094466018607950646270825369350490903903402106437534782737950501573778202619588706428304079576445608272170779954296311206256964147756970101427207736963215726347120191175225451440898101617519450413249851091197108776579961591603768480299579627667565697816726704868363784842685540366051884995760465276892741140386993469709445155134792121799216901691032642851154557677900698010836913380229310261036537757774928829477771982140167468630743316852120031989950452044295950612018238241597023851355605039169195768457584667558642270794725663844683677056282856592489521110520037340221206153589915002771779757111493721134187225585048822811290483529711415359970096184920851787458571423453676539147641177972345782921559612679434198528042583238464230125878743033853541568953588087396465877674312515242003700648553716250751321310442676157425829091918212616992073169514614911769975531374920420849923471146098410525146637038997304763120562317271138842803905028299438446486069746843405703647369412029408626753104907722480446240539455375196434832523482424521711898452458076880858256341821071601011385696455556261051159597570365697255699051576592964971370767602140225933939433252251190664506999774423999891790580097255237525286537712777019328193431122825093224994897120423017657122103236779136860033930326711889082785749274714897809880120448029701598023278688362855668601092158484118255731678195700353055132269508327750060932444802706855075727774238231075460692511768609376700634731964445350698493186883468684584391020469066506597786540947020319338499360447504595476867907344811740270962842740843369059600523657770932928759397722656161860962208374801683778814100770460114521558307385938108772411123534823457573863528022330193523911636321236480529002216118336701287616522506813082098275423933512577691963182301536998118334412825078109474161874389256337660276960874344944352324202867555666282954342150250118719372592070526759039351967896036695040868316197765720283150658081030791117738295701193847285743768781719640293980793092954547001583295471184634753519550326519691764638119154557563126269793281121340756808445860919011204228682713580128083199424845571452514569164642096708473847546213664819329392786552557829901270999026403318796936852189376659025045607673979084522524584715570342085157203042235869965922157910532926573535736906773540717472399771184585342222432574704636346117276430742746466484879089067821456469775963537577402909083148778425564377966480923396579459027011151069842618518880479204424936247928140160027575111866010104387679066086004058258567496817425740740666060216445588579415262863059336830831944879710521289794510540971997517947753622937643611074195121285020535914931675157919269841684712146693562497996492304421634026708267874529162852047079284680507494108347022662275547550180128202500449991702522057852485219978899333300737636271132628761695033631222370186096960407660824904168822045713270215197050750362090032939196387071750343716475772222769162688598626172428315518500432062748615133655049264373302080970719127781201495761406533951751523444763145622243867935760598751911090792428565603889260259852900516547857411556145000146742246969149688603434963729482874723737639832005813792932605446986119482768446083660510780986142944188744035224127029608657803662197495059106495815530981432062666381695553475837443003619076132348186228450496629785273296388615767399360258884658948729895569670285086583194669853422957628746547134756013769341996769762105988052829203774955016457790497652236284155034279637722142799610217615301043714056978018387107745421314194067689570403518740852611201154718662071153563616119407613485610830681794498426965289614564696876367129887864254400974188003923418143284266841597372862750381521539277505219796599304174615102033585749729245374162076920169427968499801150736179716243501989990350035385451531403618122078870199576379375148588549244403540287831700536167502695223800802888240936461872725867001539722354642477233389238428429411444433993959948015425249597975628325562589179403949792684004861142753798058909937731825571723234084012965342900483578802350058761846885745132841025466045375538683623538317314967504333016944224130979785764391903262190126984168830675363908648763559101252966962735416058972776074605612532700641607256791535719973452835808193678527966222276900157587216852537023012538885261696519663845219997433356249152141853614916152057197487785565838792536659746725076430777322713819288347553253240338149180969303483586783866730603749870142665666659107245927107350669145673284650509735725502304518802945972194930494300202482176046331815863838354381425815787249953163142672766665395235930401679091897044458190282154803127600232340404588233529713921931502620571323059836236425163543998277559131067797018417791621185812882556248310895633825567359643255318034078946668429034544500978776662870019155475880249133324025938804169961592831112544152596726063397650224338871955657651245066694042052140209739021053024724460837810113674190417851451620748638543376352599401855356352402452283934656163550247946817238325337722654318821592274843473641646358992965744674762777640767252249175602100343560996954695226350352567202975793192627065004670274683651959519145108170180319802164876576747902877424501290552717907957798635731596018806835511769564673772513716393771183465318398893675865539091632547370546071775523907526577144583358535471083802561752972271397303185732330550045526251319780412493460322360257633702140918101634879448008148531160330653896011376573747026437165524012319702197758580242691827567581588012946592998515684517345968839750752013294651224934878477091220160510038786492511440656389609821906072245929666504716594836368792226429160882134157209750208103218605040855020308897061441633608397721273844997001902091172771221673580373146538341227597451966384540404028723971349413791429922252732594870646663224067173968573961607228124084288050714761473268246094925227190211433444137449164243166580822184722879229732150347778781125270610025336060329769175911059612455022514931473734473278071827239262905780796036403718424484305350712790172708982526050528249949019543908994114057015223333952470564562349885331289614658912675532817880968411832655681303921402085017523066680606772833305691739635009496607442600400584820595658350595709530588904373831686173353834642606767287937410933529309665575355688640281332636628069396729651592394340447087650519290372406253341732055493838264040100338839662012821653336737894439944923185828456530002758457036263680245997187189986063399434843755062815542722384282337816277618168759619631243605156951463688718328834546038245332184495292554561808213627948314254612788091145194848345902155587016818712055668322308878977227974157862164630019896345503027887662908171229728442570678972519871545188055898419108579001388537347803699408493571279586283286307283579963658606476850697910674508304509086850352014176183314260872424004311953166614626841377808661134336045062655546890904004436946303063557127526958296639563450942237506412167789074471385100323892740679145754234440952510247546865221765114184886586153102467288977804795691369234703843486447438025282591327844124463991033077562018380153146601103668089815470653143818436798021176583984568206772206524332778332900361643932003819118016788262784693220068916556824581142896018096149573628744449100369871626332246258522234248276681886204366316036822465636751087641861738713726904779871737224238219562864512422925032703779417869060316505498713977275915411152005361899922158607205645375473667436696974957669092725411897551348794380020811463314931991133823344436690223353810677541581830419658221512231678020625683030892262020960012974227750725985953398263673300388609196686494827280323371966892049921147211431514166177404511440005932906360427349976973497499611670158292377178036559915854182990136497985109291575202435955112897953567606875423755375222051473455781221574109613512363084197931186785916397552093808361095357752539081149589430634713175371017559073202741712609797811837592334757249271441463966681535637525981699371790474317842224101319512793686117015458822513313701263477164139949686200159126400279714873210191808586201422542280416765347480269154879815560283935240190376518436342079688647390068847086320055646960542015801814034677718276709112760960589669801965332243629440578459907100237671822150345444252872325343985634120336159509047605632617434266165772163123261132755386777820995618500212823721499924173091267833267049198841062205636355558291399659888641081049091762503270120210101579129007975023318583513792617177477890103687713736882656304902539441684394353062687630294394588971085253528309663317130436885555936617538891805171371082231767220240557317561328101900056607888922857039224386232972277137790095936004664712081230433412964735934483027290764561347448487737131919277703519754378659504744491400799422909894128434643872006553657001748097885342775808389775768180809750341091513687306498863714055539359865724428060551259636073314521000369903977455001164840067967868841528267427143742597855503965608235815021756941956792134930443173720039095526593212273681870534920457133790337650650624890023146468285191040886550797051346443458513685771018846759771618546251676412570073615612414702167164995558419967211377635074516642921409496906758048464004923765504500957067821929548440073911248741362487609625208675395768389293679961211319495533314640040458657122424480229825229796958230758359902254312493622802152639900120777220624174062833115115464242858930676120527326771268317422890399152837476793444433799882425427270415114713211303311070628787788786045889645560423826270341059503142824042224135850585404009931202708166916163712127814274559938700910151560089260029851922355244200955697408673043489435635187453016495731522533942150826850750029373169397487852767057764424991473842499373506591157239398733491476364443110053469989030505462025282709149785903383712589758344418168138132156758525236979703620593911739860071899385057558935910278139167982150384127514800936746345146754213402867837959678808203329578177156531631836790245194082922115464663870917023030181839759151923484450211463458286137419110135118007389729364161049790007446499377905737287766145496730730519455473400019128884550810229818631653412530820975481727760192562808130113795229706290884442006420812926489779967017180962649571951376179102398334660354154253287671565993654732542797268644116949885222243400973600985409362622120855078545941553428407989591971105601242762375071192478259301943419485074522562670426775699644440033411740582088067571138455126425352935787294669287040381266196533083271691554497736904050638093117478085472960367601261570491938052517308710050946367899153401525479625710584566270321431718990734098611688754592663874918856507472985788720175661482271511463904019213531416434118332373771600738613591769176717486081553760325726386776267895931089993622512834055999881924077588665076653581835636781376153724536094454807057860123216058450443593330823069660650621312735664569015504525564235310838544509138704340805823620916025343334766812713774508426346007785307287751728716908544700473015454036865721456894741895016766058033936912393327101179450789891079829269153054338418399228658996221923702731020410732041855671662839644521126209584254744047451676008017977088384442864742508320735595864672169570427786466137494232024171835269108270998344737257396857316740663187403783263580964886109520637473402793087495674803013936187973673704569533759737132805278089384163825592605051658705488389376041083618367454981835483948624932760115441142869084433669293871806266543384574124790277950750331607499310901936415153178225893415545412250081603319535218436720148196717852847738852592160525057818295931537135214790026687925421074351457868542627965488385697906382460924547616235826921223653125130932309896362310896951215996415525258900451055032169991668056444821994087048265645412649699330322155980636182936121358486668312252305268725743984278867154190259814555900311954869162820486988672412809877706258734735623588177338037659498747334109617853149389905945272083436565115685784087432523078323277732967322842857787174181694411742450361056725984407394613702190754103253098113477846943537252562167117387804444419938807663434734541178898519107705268566272482313263489158357412030593773342496732340093065335743708808317685027498131837338212495850191027553213546434665140447286353159182825032030644965173786769611441746561101175488239607284920978462694886000955823118230897637782872935395306176169438579123995268234680581617129833835642602974026802411326614562948335268527967809467428597933020862215023268652896646077910991792654007165737012671754119490783491700147126259837711788400340435618453322951990002804175346253851288298186843810181810315634715749711303687683071790339816444462945425925062909214140695736403376300256438725508257035535766263854791705806553935457103320144268692123989910721101674731148633720209933761234447094286868242212379244848296287272716102314631309155882756519933231180549709274449162758985375479970555765189137643185947016689941672281583426352560332463210681202217335805963320023582393314132426078275618691547633482806069822390733067226634488690947322766205187140560524546639287446913340870799407710697043324291957062108857535978595256731471914855639745905785030101275212328731540941579277904749106568371013433156762805523753153798004072869313762595828359230534174994747315141768594305347751111143476162573733201424676953953877253187542935012112613397209735559381882958649859030267877076385248433402501756699912504770379521600401978803474811013505207707004104563678471150290712238640172555524190565487138614851629531642672064427035606190142364141161295602406991391591535103798430186145349766779386758241722573301987968485227124033624954166452297058953377463293187815915401810415060089025766129688086827642974803764755231572410096201153359375554679822077008466866872620342339458158588082522097363327873834194610345977842429391490012697853483134413670514389622848273798883139798787913399729246134862208531328071119494299908167170221623780302997452396119325882993914330696303400870097685277569311377868593265878472556501778677655889297927588572782594432962781217967587656001053904225809192827551860196199662077601257200033695752931208924235753377653776898068413853688053695163879379208519126339868173506138779046391844548872385038043522145754838709878975614201903746576317058359713472535649516320670911078814559174385938329302798651909095441575290882064171854063348312221586309019129862784250263624213272414985416509471726174331501143637998813097739190153910655240229684284920136569078870687786708367577810061299628023146852211956538065477326113821575797620570264870704676162097794671417426434861480516246484249745328562311421188778416399417534905117423816684696242560498578498130753893729315537730921302086131674410482511761657223002591153394190779626490095083722775525780717646499324287909888056409691160335896052660381682855846448687677309482861818590923275550413692702716454827124212309497296600293577772591471772856909777227724300972792473614981312182888018259199235019166787769603993415589717812688118942448769360478672473992786727804475642683752702532153293763073299225642018931493440666533308806610354084067184008363109435976670707753509647532524017159051814289756796212847400838876665179427852744611663209383822093271336598977687004326040884195351004783706487267602954491805280436094067784601960804250593982189355365699856952966941535674721400793750019409894993147463309914256898150257636389593063791644632430777783632373377194319935048678505127169381843731362528843781254022205738573580049800507280578000136848737896882230019565068572988520464935205217649368849491428763865224249220470720141701836413282716714207230550682954545641361973695796580724042174441737188334526430045285656356713939590976103774452529769123047655166903388824308840595339465759612649542800577160066524029613440459806416922226867137408917576327213250814917860248870330662852391512479339311847270492219161829235638779006236345556535402455694635684764037762414032165604149367844505586520006329491590740392533754397318595047855728456641023760169535102171156800572352141681955559926905449871804551086509025917111650215654498852908336740578630115864299378469541418840487922657548740501340080506893605200202741392751099091323243088005662735953728475109494805689230280889993383384626944885568110524935070542777320448933269837308690700108583860794428312630719294386897375621956357831818830598317197707316831277986801542564398094604121153645917474164609922821092259231484860072338644060299048828552196924845604550840673939286209046205946797605058511247836829063137867275186232718814655698691295381359848147244340189203883945325285273326108876463602566363679826739031669389388415111949160074267816616754958254508160827023081506506895938210182269177423315584065802030297161051294596014826313542580476046654381517724751171077859035242137987209962380781924417776561557850189755900296433706438257967822528102761774636424603458662899385258742130312945029309701479734356949641851074940471854474632101766601775406246373470537252227083172645421731210366174942971568787276511195755699724856916659455743269985860988995190443026309745401176369431325506989920577092505293021386478396889645437222973431058852234503468396038644220357621490926892386873199537860052903769039695044604372007267044783959424171776450168941976103678018784287893046921117864961158310398950876697759557875403780407976602846180344482714215271926131869918712121030145055561323784064600629207890075405221499741425368512347131483051532178306552662320141068078254420956643757366516283474771484478250078701484571066528385902201385629075788578100787939174944692606030119589365831955001073502089479277243597482585888340364154361396852838969666713262292604789332082902840564678352149882088628263855737185061749760232435059320617466415286859411125483489016450655663483820386666621397258490263599927884899168808169724205875239319927079006113798134127704138310345578641272687230786917917330599424519361210057912320836174729241511494790262738769672429215934318666669728012970886170960280040117510584000026628325381171393885732773910984983349168269289237024811301051245648526435154011242562454134691239943197418433713192538900335403318349905636696178177864086071295403581342816202292872088221393242733976437775913456831725074656849629378320207125597510844409363546587955571498375574057152646932096136044648622920017993071455050232990734938381292308906923784136967556117209711268252266763098418101649374550859667987610668857797781430873099808040873791294181063299588452138084053044799986021649704327902009591973691915367042524053177999106147570157908149160870796471688893089147899056055786780983809628136593158324942774320252293190570336271542801338903309595008296996727054181879206359518349418947313591123197234100851162495441601100791569073491050509691241167600808764609900192270043049974293489127637242719980999743157667577545679780689968132503275123863232267908912436791970081869950660265945536843380904262133781423875869590970542042818030935309227499738380926654494770837385908125011966447455008383814457447158707451499388746562379295470645394462665702100361600388369097351057489038047532398069143810196997036988416692893684902930697574079668397713171001151442943471781755305111943039757594198762420493272637346355466990491757392758115025398319806847058607716368595570909131939037941080556600209009724519220577497283180171496861313695394465712737524603221634983057691492389408767276561604666032298676223473938487497778067289458930835416568365002756302131655265402890211755100632455666051999078915464904572704893455498437225553892971548026591287761213335220244885605697983406776359163993341088339536687200054383814196855671553416610029908285019670549152216325792160543299778705226644500965417699423158499624519040585557662179979697330010874763681501066517253917220980320866391249663047724950969969953856023381711675498746514792784133402451689719691474673961568705760968579139969441565509765651703494862310265911589675584637142227762722794615315377622824507979604242039528868015503806818344377161840811278819463527996078108417089364272811434395318804902300289034860060137068519283780867338440052013650157440380040739659883763094438677516166606976710521163706755183307090378900857645974955142594792668626188691422167071817979326627157627420961576456828344074392060586516831115941236111192366438823250127989234003446301253473468439293702828527344544132654122889596965568911238292975372731358630786358150596365625962688158066474178318702791539728234274325862168876919362792475355256822980045303376439726585861113827417065095072080917499349133300912746539589272258814668305128102895427489005700838929839545669645377565347019759734043075938931188679546664677900324765609910825012571575199299343101808678822471637136522776090223972923681173861366086468519010156257992904294459364124747339447220983988281234702031933533330217878326717661096048659268821025599412631590370238704257786675027768256196093911476343233578547224586607597728328149139753243638287458064557832069954429132319489708855511518479552783564098803676680769699729006363628782577613425192547685412002265695683097157871136426775563789613398745941713732812613573094410152781241230165911859863893392061943805013227632060436955009445967740404455407674254379723601286948451118603145033207241788293090569738364343548233282675741022005979229536435728279951319836047344382335176601965205567489109532414787927945737890262169449421592849348667396967499784394237457877887077080041357179580523643380127663558599160462191938498501920811414062152382574065464628187864329282734220477211976200916110313708116417060813343886483031103788465030679931921445119644269244018982621999636023243172154182169766762485582498333902599473707358675509258620390933979569364638124610048686525311682040645733387947089906931814739463676253767632859701589950251401234154789095927049919920384724897227223743139071881464578421372334967636194943461353084541045895722296080728949159289533791781586506171290761309073248406485035809754894559136888237945487295247999501744952675384483191116233917858876259304259173451577828636681667888893559060234636152767726925988794435084093449626785535219510135592655330182349121688665544320794862652991470566324227838830858469374047061247414559885821932836936068138191562948191060461177651151758168068335372414151578457369936014868109220086585338716190155853215414204012246697076871200647108843784188679514637203338426122580322512243212723560280553274541941103366517254242962621261156096744429635220934706543732419103280195701070580594470321768025961727703674304975581144437745267241974636321942723220931593844097237416993562072060809136755665030095496794855803710794281352113706638882077509717969990924798761485336583564464472214134363662667603279713815889784709430187110741641478772754332805745197652837437316461671596912040013654570544639168268789019499823022886482335967628763994206789900793936035626660403843981431503376849241705803144075229971822256724023857394298779928295214157296549389843995455628954665038096979910940326718003663252132647653925894740654229738686826761794310670305656801589988979453783219670085876898183127560515986999458062856083103907000341928845083442008903719501227502981353858111646252125817583560640932037535544379122256048274020433004269721111561559770624841686554936548895643200631544530618307869336747373531293243596356838891245381658877470575387739208674360749480154073302332546067055107704570152095369009251549091052858026193147378990250992482315593374313316259326921053192618117178036393027837383596004329293110180827247976950155390857104324830585342219172815975608884607726333224752768528674057843346945232541780687401736933546006025746664902080854446741167136478258937354738530774839107606804302061586528279495412757003094611413595102617156905082795206345831202286777912656343922812124270598375408381566420537883856778961443748231845459326903465375580953810929757971919471799574739246636028580375522680416901063085186875932141588037443681619363635068813170384377722780395708095348294403453317849420577456331478921269557774014141892614921169934490918558399430866176756041125600519122696540946049663785205885775556416402565319275208549918136465141578538535146079094460184241047611505724697327933380471362747759282869471596568930786195336437564088227364607868151490392575280678406346578977095535480285346146318594169473702309188982771189917829444473531172481437121365780500280942898183802270040609587761421507258938974531203742374067998949152761330737680147591110061921423663071384973826554898624433161875582742260440770958698949621814650161459594262006276356161843688524743707344063045785472798532437494579114017977374939857849608775135376756559634717333270805001607656583775986067763672293466683997585001646153612947908795284929981682107753803949316600137948025030825344937974973719544659841078362150208356232151419061698070098422586337189226619503644814102627478010124136534734047893522855767859674354415357152269141119418920198883367920622551638792033974514773326938346397265245265826602902781520050007030878278086855211318404388141708156929437821516681525372811616567446843451142270557965675236253129338310553172641260648057475605059642144210034453685293729518520597921352977132034689142412281701943533954963541340289411310586530614615162717690072289045506029964539203340616396688064729005383039045718885772819548863531663408038721488819034039516574857886560354179748286095260946789955765711229258848320665003549481822928051739305096500694378574035722823199684167943320999009864553109062202942531778516067195452290094211457674783099042376105415583772967700411466395292910140697322133521654375142280808526917372777376708517778208719441554779887938881780023825625977576180517407651291156952828027089525263597359208937594903435747856302979821409283991930900732955988902742825601543662634374211482248200820484909594097789375745535898006513202001261899601332075001078677649937323795373206514110700430335367483009271090067433878404705293471489567501609233885339773420940160282894777166503580445324750494164343404416154853273656194632513616017215607930361721381244181005303986794230122615918593140929330289560643650027730458097586866867689425506309404352066108406494456260472073502999284989791439857588834514179260449515985999463082632541334826425560648389773375643155774598345049153824115203566978024148316085294034808441566982088543883485324321444851504222961919063734944938730616925483011129576660524082872010087999272505258431783218184780421595934711304277048733202498605223793645268845087051379456471308719013727683498216309073783120155327088835373905196031113231582208762610290509084927479399803689918012016074700187295983249993331352758007090260266579695059702897206214425276202994946128250605074041358018752545548782870910196931746290137039558287936373809510303528831060503995285484201899095858022445410769504779001168145900656613099491933197081078069559743252969883620809523739625288149140544246734069791769427135557636541968318439963996883204231717811093588127789824607815731284074438988641865698370529910093775882268645519994194658368213054180949561141411322880977819061182074844779958770337419518596131747040372769545854767607463759476283097297371787222705862504201968916995337844528991131509136139686347160812935212064094047391409758903004430050329182084227323115268489633024062510499870539579808697151269695615081716930393553305257860022453881690714814245017146514299933541088349923545697461335972224572180017600923158805614966433035068610212095073068145451926954510757832232897926123822720666125852719713471033749051769808031863082409279454955027385081729057939861153195690184146362424372407589164431356269266591038277859625514602469056704130234039266884719035593443765586760508747926770780387866551876976046058239620128011303549894434851167289187943200401798634662380823651576953898509188504020783529808165799424089661221823800599065288105291571853981015685401037121761048679461460632455895865807914556266476908218260403647037982887480460657359777211550643821572916868006577575355939065576937229779856201769156323947500263080958287712410172683450824379386070955826162378943794472374055037203238681689974743872937239332239372008921904034332342694497028694811209383121611634165182025753276830228519686257181034397711346732555629901755909091581607063978792036360646197107514344207914197946506144496465729128435601005632914460152850446965875452090656596562112737798262605639599922188838429841519257120135527284775021998601283398466345520354796640420808782283928933637280562317216013273855430931803807954160877944177043217120506877030664993409962440777337739294395816077950845882433265701470171212002941022885822430483605976839962844343485665868637454758225888857712884117529513230638314763288368724992144236794647971214364287622076187175396749943374798679318957622957001947150731644726778583767205717447738696772467177098753825797848431384949228796782005854811020384346923018393700784391139280565858328082174391171108197824313453169801083978844749542786037911499801503238778040880042882458022550506315015870994491866690269385489697780293176506765973259569612461374607297097273488417815765395302436438710051194118846246483114540181314770611745346996359246403253153887144269130382336980131683094113239993577395757822183544261435594542055805690680122359807755747892041916773809487395159327475451332422809009088749234081192572755544085191959058724965614799639785766215395769944780448707508503096279095431351676896661504402117021348777931212993157802933220954610931549721710485142402512130946102726171830923416789803074994288601690838665553066924219548522259134969059760767991159678853756479985855737635936832016168673357948519638125139083285409606532750288530645554460157096292658865784253226378119782187291624536902283641750023454127285503133376163509791517957452110763161530404922338787629522725021711585345073577762509840491534559209547621881819466472719178577657934519025475973818689008849214671231084650787311657577202685967614606233132122938454359014355755283890470203337145792502670091691025684403745473750467985893118114076640102699931323235616613363214663436286018818273247386731089155499067627323215371899228976750689174401921442989844333421871572450001860922247025703466222347430771035910559442082407039163589104883265160340786764935020204854500190587642591819806148187977914345449488120422837523225907970868122621304438233510520506403460398694168161694464619945424148197686851433405520346655140116014703017208910643295766444412013053398468997026287241140107013162120322135702019588277012729435392352777216523843700289616812932610000989603315981829045828926545067149131562245368234127174309460571192058375665479917772096459996743361288837810049942454383336325494743459497247116808280829367614371656607877993828168996948801808016144550283786604365181758370830561927670814265827762428118346321095170526518438055551993905882287988696583864723938746986428395086093683925919034347756082755549749757906940826286476765565236568100565593430171655993738928111150552617586217185373740871187642606632246826519813623295379552448552730359790197594891659290426146064810880269381055470639645241872030566187092836253147024549773643156324838608629017000234467599441438074585913692419355722433318881981449004109929196131649919411754691589616563016779042092868496609163636681777856958802866258288428806002066793606371072434717550840031662165759812042723585310316215421574200588711247783400046888463883033112986315956131383104106599293882579176838745654218681400514012572371173012831192806901586664873566519046597773632083503701718351758908666956268011526740252111967148341383141190115759167081426994472818401255050112923164415202299663066853155818710837098229457420620944618394134719343759761884489441308249126777594456035893898075005470891025351761016264781629024288828589587125427059881481770693600789721856097574390819366791109358663322528517706457611679534801556485850051366562951719355004434923620610132139828069290084729102157330406705597983144681493357816249582356898800860818369127412470590676135948519816681200127512527575912549367013134568449629621890650035863560431220673889383402099862128555890483200364185299286244753721435146476467413988261374407053640600717397555502273116661346402776399326000523713987283667452423908926066344095689384480797679595410432362244763113203318748758322286817792196576644373576924110783963287619678271863938178277304370169640534668847534882346887984960430064034891598427599035287536725069825833903859664527744097451471323677134796257596537389879767891818232784562235816261527153901256258059347419686268276725798910724222862733496669794729672568001308572798140473452713377538588227955886511057918492353556286170074683460767515506083932716003122666021412945140260867503281175595448198272365976781789362913824923267944610100035292096413327763109886918416777579247965787573718663722777814572246804641017889884197757666101352781185692779235244281501112818171696651354662571404739596002061815727845030319997067962126599073265215569584304471837703614585895913539509148390910765866263848675944377876283694097607406075336787375811130936020634591768320061889873766930286535186584232945933899063417895170551678128927848888307923544131251674921348247532719089982324693810071004962641537306568225491682526641561986512421458481735658354444473996027807259472154085166178535913233342951675327036812820909948305808540662283767857607438553562490597821591374315151176053714723424897361169448194937884697391368694055526496538068851154792348588417321022948048620974591721507503036057828090862614136489299025775155158037073439377434285316264890133429189359465520835002087834636481396032749607398026781822518518212859520797528632649809472848926603597924108695661171021462832584298097320889272851589936408221470080839324444808810275768524725000606803295638927788195332714975513345257431702070680642209235324945822953134882150443818764539085360153379500679261029754180427819363697083895680188847189603838845000815874178226088224862660523857315571956404565376109297230425438292434057978265648869111635180500325848510550033028249561925931371055971761385246066989933586331665799098340830455218366286009330422022164237790336702878699452041362277637713107865853346306295923888305561790761920892793994887624537282587530404110207513243955096367818059230459230668148157262319782999325387464558476167673307192393866316913169306243258371623328143824112156298524815461385080415400574604224345967957500433791692810800845708023644057557800878961920070331296204162168375376565387598764196912488286362627816071333787593583950299229719042505287782329993569149506258471893966596288387061041871450312404302014431259460869416770844137542848145892246367421797557717085219883168933614770628448562866760112653521530010832079692822620093867320356787766794855145344580219765164010266828776703844868525204740518348486838358477759725923331638854674846253211510622545164228837604238188023829589518969722787535204816337382019513425993550132187814930432303743295608741080157081693361209078593645168666080870548754639304150052185072111504154816107103966735837126062079578181025225423833944133710584468793957319690409768886535813985242391540550035568892306853047975907960266325435602805653182031915150120830230343299923813040717924297107866755050059660722349334850265927046154271702369605793567497347422654249212856142658688945469167006905479879563995269361483383473058382522589000946748902654275223929211149732194169915079917506268900173456804109156205759631656765737691696191618516020247856440892198064472985934720715136257407076382351268145990516944104115395563989067137832201074047200183399499879257403111108568145647539857872638200424166583800837388686553570570909224702862247825470896917276264653952874264724786976636790175381790550115406881266290068300707380968332797508991475610091380977108046127841489376574145576299176792158708894398362941223044642162803849606878838019333485961753714137646727200072966853487452445982210908934562583698834009527566953971066490253038951196846065937386474627490502227176508023858437222870056943703670457924948514625961050922748117565193113088435821028658764360996680466384180548095053420142073521500834465474621600011339969678465328304246061637414178095816985838491354918777836153564366958315308911466259333840493855826481305202029152735738917100359677471373900808574855629341911646790109630575436486399474612774422775539865440315789427170122388132971727944099490166883210709993888493428948612473896155772405278076972017504434534085126559265927916796911362276587606933051454437043532913828563168463476183079249310541583528204175931661700342980822032836622799035758580237982274293500085078379726146469070169027095869328216617377405912609886067254647347628435084260803112850646445228902571951941875211711422400140357455881808150815490281632115411318617077900130256460545220545047482848281846895313259582588959284999747114199868491636715680745503038684367715734984510423796508158088307468183734274553655142516637537264283410005934253785426676592327820445158570493578539415230233268402074655107463881295841740333834060145088597974104718048037725930469274036704877202735025182782304678919563318697847954605962301789673073942307898478985024177718602008565854160416863647878561965272248756281742514407570497934791460550569151859714730006145793500477957969909680277707085489633022195322668974608233696355130483044578438006435896643820620301024856262067474033002213865135437648026929226430838952197399982955307614363468894484111001537633225230219654789484485750507268138140863059487553135425095601906430259672529483762703543572417657857996046327142190718472532220956422114917564036789296892904921119176375955030057932454183954064457198964309828629627766661714578650787312349566732281657537664698059460645717850434098881227688481882756790438614522304010170948187465561122100362932957127709206089258691727389569708335003436087580359190582445643167398015191085276414016955235008007598689070579581370459143902014407739475868467256998355321610593220276567142553469759056088285655255166865596925408598240148761130551558867392249532820464408610382865024115245014821361998792042086836593748772381719508636289063480815042783430760992859696427572466793768013660176532663199155289798296650764273771565894258437352162054082201154557194025699828483504269017573829032923916102902543227903665736491201877421083600614156565137760937832928075823140908726092402470072201713447201373180154004203593679781361232652205602349923796925951125782727187732184381264321978000279982402266944081430927330374642793936357686509087241312072950469881772441193427510744457860072876278456638487650408703992357010948700166697489660579057125313576378794993213121808823152178607340591980214029984788436344359502086462846542479061249824928105653214632295938875384474697652624472960886975782230852887309753115799232838546589177951128629298687857246120014569278307064408132642575812472887345453884685823189804741046205269673631447725048215141318894089097647094634581159443276923112414690724912932521327657102931305610775827501973748958625940712151442809876217053364643160041541879586856530954025736684101607895583663692313362713835627870876950117905766156637222749474756248371112818507832702416859303906355273367483036649578824316173142091706062257131457964388095742848079321988963381178382208521801597573367238616828399249736083719258671458378038899594313276798152076561053024771048228420689425885765581351615480435105369041357111066237150216821996229244301535228267768943944807307999519497801717382057929645140191059026656199801506797326385188228033701618480514991622170172940639746669788101602615117563166618485281196160507746465590558050930091128774119269298192589759493070150186958018368834354059910546264380934294911413704548273495766729121064620915804337174076955817938112096690405419544005109422093173018704275031357895056973600521250896166469741463348310870958155497382817645791512414538101096519548494262889829437873923704732551562872742467765852148656536411579237456475328142681127119256039491223761150034631989380124802507112694610000424456912814933345241892766762104280109230895332542580208905011993331534532475815098838351920826228662583819686605422926102119974631810500575903614104785474659161259076114408479185716847361398398879355725173709088725545385215893306064585084037017261503713274069443277207121820038329999940450492694255074254711399930678449358350805586839646361422297430855491470596390874887182007075092999127119674392617336448431701567844815856111458996707830342168774843312685016255468889120061250441634308398667754886636513698070013591856449222502185004305181826205760942485839215145759520767736890273452465222230185574880412408616299214814644733029470866746161849889954014762193512460415277103880885639067554883059177997954647328843438996029461585549562935064223730964905680741371926520089586570131085177236180956979361861237702520507508038102438790069030180346951813779793176867705213496300536545303223183357227153483147906181660704906617939349923008465320539546371562377646967534447862874726804584141856160424167878831419343272246549420702165802650138764474822531829941269863428395951009333370881946041097815705842052988201358401747663642992842394582675059750374480204332866283724957994747192433726462665442980528443299770019780948331602853120546091539964279087177970392589715307432325507991036750825713168828331405000054862501092588539598940925811441051137190178863176429011152547295886075043430160301024779965997798460450907838635531442130393969153402577766395956148953862227212110055180476252108069014264963911069846122523944501354875604485064655191911974487116401410278553353366078529073931142554175967165454068285708185049672878800103058157536847466514457237102410369662099729765254868939429849097524759455161211855248036455037561904807232142472376758658705872865828965634561716188018795264891967524530146837291637448022218697399736347906082125048254545302331845638289194128381734570963662604629782255343301785035140668197158237115653108453416563006227399744329892289375043415845887784354807188221301011772417983951932155382199752504106144350133086335348688077683471765937109099815680910777481713405287196499496121511621127491582045127263703776494865068102649708073634774971339083803911157841502740670959371704845497284171822922338788066420133049898965214265598746586423383975548470680978760035163773030258413056695864695334618350869113205591793913492292001884563935965480337688290613654479996247933666413697585515256072120765258964616692919763638162026596138136427477384351058774015237085530299582569201054837317040109317553715444900886241876541848289161180749156845856283707766790632023156977537485907031821007201594595052378259651170546163298290832233061190258148488366945688461150001012384352422247499522000313891299777623728416674228386165541206596311996542972186174591325515232704890514000242944533436042240714320752099842024866065047115832004361888938382854814304041123924088336394643191504171699522935440744261223680224482124823180654159966885915484924069591583356827930391992931759179491242457488624343606040858961971796658773227946564280104359800223549287393860315184918498140922898811190631393705604573728422144431279197276313803540005840340439077391788941880152872876907168461148815805939263061670020048133833419686068491449550967268849133780847561590825672181214156373475573058054755620738307192988747335837021559129374781697465537955517621162093220555235203845598118464126196243699906290613167220779755807847639670901236631639015123645829049500886893247486084271940530953036055585051058052832813438220517659507369377288699537154387561072319214144707368927775468032891890817804750171956939011680741320004665661648797331754371030580073337641620785723636756255394640732963481992175045081658429973432254702319624566195911312584784622374768896733237853529838959204783387255433189709861885931752294329073888903548731116491745973796199633675640395290194105540985569000496581769812441567705171099354535392312602375394682719287993779390435734970521440767045373676847659276350393782223687209020680578935647013775820022548735424368233658825025383949508756483201462715404561321802999754984724843192347437724456738255695289986908332356044449544687594404043508376390610781656372051399975959032515034472741365581618374442089328942947713570604286936127863944187501559240035550805496003477742837120334305975074301637253982983302333822919260701990605353495598198242837565699575095753216332539302626729849959281853113573213713959796568281448484519526916140665712237865324981897893496846586058901219071657727747169155306078387099979749699836949512469512408041674176816845622661698980814449225105753979777876707495714773701715738742216730313835954195435508499922170423627851216515573859296420857490567800165259885535629587632501726580671890630995973110341363182690504136708700285525903295977284996706041681461526187476421955957686916667195744899668618741118374057735055214732133857256029932617341522056679549484643396419323333076400210823872164286239772211721328471569544397033212961498517768016457713611927837300747094031477095310242304141916257169998785076845296549463708216007287331993124932068047682484649318972136494361031997813714172263523466931171177797978880959106911918402637966645040727467941026329471579011401799315330490193803079229266859880180235856828016945106839635995752972456844270629973480082423462852296475296016401756884951011507222913087417092889552029284280370431104874765516878525279752568896406330118805253583911664601895676340283415671932896729779975728649206520940305543676218794838762818702158455199240283141451239879826729599895628092186900291524613810483803666395464793761887942125780482545122484175474602101613730544606332396925372670581882930710391971683234700728263359408975278677405308403191400269942130802249372847506056216372971899353153064165213852677769563301584403336244316108235697616809680574711063431121403091660664994519363366901987242196507061875958531616791632724394432128040613014376398608614365280604729072923939473151623142028229910349342919708934185862016207753916488547080007274163847514945197493490813373390953255036005413607197134557344710590241099879557804008048157420323334018565368038407149195019798499733308457350681886405362613232091335295358850959465132550644133326706461086612159779311839655793343706914299083780082482038177979876819276149425432867576909978101473405503804058966534865946405665622654356847136067512257267099910378274123193761651783724471762213183864916668322392357414656345204338846042337499935713481758123896815206286939826295076896781022254650289348597281219947191639964431945651563575020928583599329375323583340830729850623579363656009760509223242400507521752795391178237434902681395019736884082506785747284119171758337544402754319760181765523750365039100206002292945734983419108612108892260010919984229820467318044898113421769724659225282455793836275012219706830259464717707803173063174004132436040609447675852148060881368666776103453594460781513226469824281673124171166179505002330493751723630808606651971615558301035937648727797105886305875629013425136284408054780420318359986239748344007532011306764825601340948703987093855675001745118863413891129579746816461147313627252088551869237513445120288318529997060357037358159308654943343581187168125083881194347292787332008758647531393235703863779861491394262639893616825903119432462704021270918305634668200033496890144436159748488582276996484391882656901130423146903719017506975261412090003691361455728383819671465134499704134467215103564359787182420666221271386472648175821001925199722360511837162821840883290130764356868262721129091720984916580133350272787451196871894717370565789918462862154345639828210199620664233156736827959948347944272148628090381257511690931740102528427529721091722161704482910469640296978912652519321541012795827310753881254026635596032384084007795283710865690947141474728679240202129170487927077987983717134927391545307372240066723335128935381951853670145497978669184538950392418331582770553045221220620878362353068889139515726301767420560546561376305480871352994015682583726050961979379750486684008942644305615986521865436588358268577150456543253134462240042944727295162124828721312236570297534675098638800411674889992643978294156738339781382612316821971038200128953345787063306983657809587292102688556107803898342244322639541209840708351303418291887640403965066094265509058779217829995825208014596080891361875500442786155946817370805264302066165064835601779850027191702015837501681044512218222400799323414661446186658115869811345675455330985417777826150572623059861385506985778206524014755307309714753382627121039842427243135714029532886167016725273561019398366723431307977111897162261682091243865378250074308413701340913450661215523773170849199763890468541533469070929470874831636974182404353995780822427139748549126232914015254506117208813634278621836574368785604558092740865228072343473993297430076421795582120003574437206507455124333897371801205377789989023342342838399314239281910211433444260673569188316847682566572329830304284702221063930090862907082665979616890337628731116222102400775056626964008267959660960734768542906124281328624521890917405757529606937302302945200911923841530917612552270842648421423748948656254245488509378685939851823487297262822945963333626081984574928186109551115513141884194630932773386572139682185351727568292406705930221306281816624059863313139183745146160905023475947484121903815501254638198825549232903531800409509933914399300173089447650120676385676295328524234449820990503915150925581774958377560234197658875676761346984737001288108282011016106853856917337413865424837564328313280286275195794538302974413922861836932315013169577891490576543282547858452597231448126266576125647911297635336210945573497350060104041953972030000753252442112820122358602369966768949100650866493596129386032517330171507867387019928819699222118971253932538662226682213312678776241265627320413605509849490198806884397242055214807694594446347462295882692535297030326669209874945849777312878556383673777653861178157127093681867150679873097056975237641587242639914290895633666792757406920897825323850455344502914188445630048620724541062555705704711281685563460189145607639202028605732358356052355903908896172903880560674657726470145219222859049019135068838989373777968454743716508043175373406322885115691511611186586765291408069860718244902583170524794241779010944598066369418690113345729441929390986861277764677968852514521945615692150067038524950063597033318323082297548826324864401505843930470815227852279531624117987427742295649510092920539616753354449412610282050856961113481720588845723827855253911291205290258091193482085883016679942560676265447051204923434384991738228791137169657747148216771613732537749711020252867189636997759864017561805549763035565271169915610161716475824269299868813436497220634097099646290258012109600377768880602846303569977828178555254187994358797878231630995751739343036826584217974042165675580089579546612232472711359206980737299803498481699167560115708066578589792130386573035913746396600891464405536901720229457705731470017833433553914787512517237772211044121428953377478815682772326850561877259727329162295506175411051196511999738170352201643585364895680114077089296326276176840776966081557929976271883717670549913629095742819745927084150331945606487375629006360665897547909152039522379875936426034392657281581119907526856298805645060056272039893572898494752158945250375332375370800361604197737446233175718421276760540769427994043497180807580942752206357545374464228162743697977444747665247121328903518469366199563600925019743228577351806211927573582909659540564199872166163703945820539514110385927808782816519989570236696238397789116462624198442869637797514751975151351063384429022312245999434380172293988011366409757860606181434848558582150984913053492047032281750470098502767131608897713924891623166343518878659776290122510746102521061520768235991770139042812103659802807166961554269905661750137435343016825725746053607268013105186166456946807818533363853676123675949523926997462260834529569768830487833649913686648359279857427758916133151631048619450493378358937163887930002092512804685491033258848869393402538459985891715642575872371355409901147326468815092873124427603657587878485190730381824543847997136226028695350938601352512361871392326174694677226323156547843664933147045365242724781672879873190223507072637017725458601388781136600298093543154745488854853539301771405377483549300149513786986115881186968643914799878600425405761899016271438136499844552390625811573217165137922961926942106444880242100671152404264972518410464182509263246004405206644000554733724044970189442807349485996203781770228336816269531777880763699434550085461722918581595294681336632276776337197177717955927741074352266321595762572213253670620512691346900965378950464077693631860873419305091441454125813425842450883178631627343676944139861336959944013934303026042486812895341573544907206113940030920874710350168271984251460800537869433213884491676124109455488407066863545701433560773049099324789487109539004266389605985617986082985960752993745068124362795442372375137627250200056736745676239081997788570329722586479437755164727616924979577172919163324248117571453071370939035101716329280301306010097197015922311432009379353996019117125114652887126765871751530539486452534189563930976411091401381242686930116411712480193265395789322049298572040988139180380269301874878489184372581743387870213909431819144889962256535629208400680950615900025770153267807443584101092634106830104360481432671745297072486825338121833118237696530468788539244919671423075815906015033172364628999302737008370976662667288029065811925311839151239697693057441889994960153486266140021983297422448571752752524653927953675166248816743746261538318663149106568351703811420744198704270360695831746255883369131832684071948819468897950762949357135967763913436603781195154630063167909938613414257631868660223956211756963766867635346553776269304924419733514340973065471064696053051683531295339701018551578147999103879139728690483516650620182698635758117399599655234690498355379684875011455591687102197547758415299529309109281779987600622732195776277772147935040505425831136108658008384717545186538524938315497427336673167220383275177891039661818820103407409223259295041106377887783815459550001644024556767955393635492982120149990935189197584998662706903369477903951466477555572499136488351965700411647958967272915401110179219308227613513462434497510063665150716871736952512551851342045321764193283324374680845953821264441197979262892547391134227335695330379209617050114886445784131519641151636240042819610091802156981295513631692267849904235788731498660228094306997955647656728958550425547980189856839918002808259042152692887290389359037484823000758041818339193911788482666490528733141343639452324226637141296071569126433216538949880070576776351047180646754168451971533454105906622420760893712287367287474821749078562494619884604745600917186843446188143669853787513755187486730247326278162288125425549021377040527265500687784450105707685228420580379090447597184857936546698147612133065143579803378177601333905647060594072662646115079235435370772167874345686072632874422202994086197385124075195316495340849092275093181730158808799540055754209796312305260424901828678992441592110329308925426927034774353075603182329757117420366898778932981273804053025971015273968436915267891906416428595321732582688216465977712457529623418600016056940075608574009292698485462338758006714885390736058561020448558906890584162947473217062526569061818696845247747702444703323401349342277203782813157071087013153894530192775766061497414436184992205976388240584275578466266909813919858451780073783802197742703994055746815269284318138817743045667417039517786391105902137119065344152424145876099222192232124604381109098675163876203936656024635480615953555543109792477572461194817718596228290746962725919804620619182251109508359262148303310428747957192123025484511508900728221274298706483293291226127539124303099023727557331222921499919945451478589671530243815032164180595347798173522623403690845350784242080157585340073541284888628898413471175579869146696691017114937573147004476009744132484853722210048214955619926076631392390178589510468548787050923095002244093214402916605810389340765496728734454599192410688584707836196492124722836692647583127273137784445158002337624176670799011621582837662287382867349370981387622612728219428966318372139631443268549997746784515507238821679573419738560093130062960654731810935412168733459677070389159002526062359323623534502674830250694998347119861964256131594299369176680153378600498267344505552141786000964431224916649636448264972085726930625917413709622874472801574397109950507273957388627278128745603566501258495099654244146507939699629214357713698621823678526043145411116426776159890614414121746505806388967386202202452846752309407716119923818673335825181388895073618153935868086260958190825644355557020803116529481077632431761568726917555417431892031089043567550378342127450084617940026989799745162017024851706972529284073716344820325870775263836102305221142369669908637797974835091893617200661924296403746231487649257887324100320413131077712669905495422232999799446239272146195446386422623378461266859816453911392767585649144316286287908763215327187115512808383132461702236000345217454461889028152246781272062879216243229960094317891581821952069408806875165025148635353807884288636454210950414480106909702608793416279638748589831646197020827536489365332215464937161268598675584948253809067262218869553895008646036550043263583416922617379677266382452008524519515069077202672399572461301165573863178327882055161146805962820708314557029928566922559095500516470416356408147642955347559218408450523098356536049073120252267840363178015369438675107198702030763703974992554210737827920314219270510598855151872589762546729971023015846589314349471063021609974745258106383599582247422505540085052878915036345826138283500655968149208853551327911893084367394204794390582613442112472029289603105032642858893602526280392170261591632106998917762118691443407492642964612766325105598589816532699976762809206640639785843252458494200334937050437680485509488758180496573054032009154397001449939613558749804669706466504984978746150030750925406508262336438382257655985959128974688296341383505746734242911735172427342153338652501385120690901205489403373710010824651456429700817295713612442973948727804163711155535581345228238729486849365707284127428752025458842303715820557497533786927471536514696255990851289361056250018367870438630516988850206275192464305755506191549234503079018840231315388724986793476644860437472386065836372135201559066974647887505640358653474796949035725427190007348098852630279703122475115707576762838836154497642928943728485018442541537864916895975013142854811961986247395894942118081806357053440565428088242139271415696217134976409661043266674595571932856406413755060968049276618860388438474771864669081774828101750682800108597341585970516935630091517142216134446589461183745114453447733531033968475453399145608826786506212259565257361093870031227529583511938602163343540715555174091373553312400281687505375010627477267533607409656827566162892726931933501723409268041180677623423247183618641439485812631057296544447822698895156167456189744510471373253706737889979971130222404981912038728738032925970000301022345841018293627264171821142185161617392332747486928999043641349744475971195187494621641700275412951781148395758243862101097681595511920410548223820779782002783414971402927880031154969849986263330874554530490040337185436310713448774593407693569112354530152180059102057951187535729913195173571455049835769751636094526732699102694572213695523102297110498144767940667568243373159131075002563462007853657627155311872436546735296469598299173120198059773693085822702548033169115092054896054646719291407288193859837250023385650636081746049647471869254677365139039885541198367020100160085780636824988742836963369818977255185902400644308819811215085516987756844138780879825628830334776883651276897378045393771995854776205091766078651026020982900301639268666105010759780182265487161883413870452703745513004842443286753985105546739925345332420370893093868610313329007614531534304201467812209245327209448933730740139539255770971232990532185415802350424731491869178934262459131040484309780620463773459879228803631112302551131652286719756936107839898226536236829697963684362983600142605867413313063431509356168250598297303083954483155692554747142212717637350282323590007204228281031627951227405886334770201580217563293659093372689578243207246673256730266198380736286598690097381207034895544294824864596028360046623234542857527631421715244726990702970643303906357003422047626559031072115333089268915430812854833640802855909616933832731209066079340647916603834049454110750887086898519528396278180554312454362794092189878854999022523367311754930865860947059002776740336448358892471936793958161364598655167274388235328729896118453976687631718666413750252940287740610953513572668484408009468178914479481124602504574236078122825030786811164151560659156227636224742425485259497388584225454569799839629471259962518509192150128059947155119280693456264930804315680998946544101297775862155536343302465580062359736090974257745656728319838472645854449344752053063973626256253927661987384186319171933330420190418784102325613331547674841467301438036871702152280074792157879200742500100774337428930917324453328861923832290321856441566838567891601653477387060744273218775339549493343877084379469212274812502047439254924917615709053730995156294921721358520308298243410301153477786603717516798083720541126711322986905134589666754191300251772660779785089168443610082008621484928409988611448177907123140135632461472159687425641466313574736525507103540640610471951956064975781695266523841178127949031888139681355241595872085555490575784299687291524754265381793590128682056179239714438709916762936960634645748740083135747035242717277193359546062488278846075832503439351336820287516761152998141260381348502746830596369460705617270783749830887458728750236934919770512576559528158859873682343235127226839939782200665625112140632696976351366332329938612201899394372312118501733345709139445471993695156749840590024990138500211861423208022067091163389208285672517527709845462129838752276876326232069471181814019630996206289675390650670610020023470501972348842665766710012886398887523107947733408380129120133532420294199877244011885593919664059117139337193653989283297823789297688537217390047749272507757765406678398715977082145103605500037693833171371825112907516667568382418844885814412303515570969836975931975562318318754370633875424030660675360323389572938700595144406157539390030696001823624724286590782629962161517292083768714795969488554714584047469464095663608422869298821652848026855620852032036426621827006895771457059643942176502860021965071106081102837776131638722020942176268902476422256350121177907198487068714952977304408324686047837760476683141829096486727756287231155793572970039639640353783797659183986529389808807988459051365318083826021762507335034147704442495625796853456821062011630203143749543940201583730737059187730552109163165201788030242582851509392223005422524674257377862943819993369414930673380086506223981722510901273361522384501935802472360617528681554597505968876183357495013727018347209397600940363620830349433042246140874388027201262197520064226398244358351428351589009152365406921754074413671616802509474930069541163269844195985483942529446650144278559978913063374678693383123152550576297642590399739170841269924804763849462447008162602522998480420831940247559905530985405537584821590988143500341448412984121409736347306987207858276812577432290305581126601205517249873017553954106157598930685054313067773668022121645364218677328027952449087076876945928861394775974788745141630988250118505002841011387640644480388269726808692674232977358224124107364689764560071149726014803641510900460796164939262612367447321253110372802939019563135158131437212011515844650245642974958267740431128858631015703262340133730606066313499146569582984864473512717536718754944221432884051598709764170471088673412317436300523364445840659319861925838152240154293175024377948883121290820175446151079612811957247372374184351684058407626665081265532859909533832168162229355834751477100271859660510094598482274593637267172676753589821929057796269916178354450205865151913718612179344154344035387322972139561412755095708471841380413575508858013103190326820799250201465650202877138631950837343055469954076236541135112493346509576539072080001866553753182933447213505384208140676311311154467890481745243832038000890337637827271976779025462353689885649499534000694153973028372879874484261721611989251277283414832981477921057561049354766290647592466090145808378920294966481184989690198468902901296808652451165442664670079931487414635774862690183084946653796184742783532977736607473725816052288411443996403328937275613538078597778661600628331587259087061044959026989204263331524299487125998034873582840546705672003812057259520042038552181004865372318433568148922850877893904667012473493210640569116564775123865234847543539539178921965340833201207473413708752604880263073427828354943905664913617804072057842223010927595696651711378686014259713456699441150783084077483907061090318293549184709821880760426590904033306421184107987288338156921104812656971267158852640468220078108681263075044138980962923337077642027339247993983776101119290194961912120914821253980881647182888849680867016561224715472225825536175289125635372537388142694383183745317520223523568894492952653293395288188758761471112274078344858256461354177660209425379186014422590800673729783380198518316719532635061313256978294878945315622999648760743099488165758894180000723532665546443524601202192287883961540518982675242775443387219571870776909300559506193961687972875481870994146731799963228656019168626580040202692907958107324421013118735305979483966273660085385185942831916491583990214173618819071678300252072881698860900707355280141588006768582870744146549452583488919841323262491415944101676788951149477765611626024646664332709378834681116716437826227227354275678197074298114670807641847886485864140321338033129035564473079507194918398642868055346368786500376833885041889235902237963113490363009499094384715178361616709388286348134973940447937108967186473210124309385579989271231398149849931510511511451686097781814363183955442807040008823717723648975050758492418545529838699205769623778494362856711281666608297936346009805105067404119261131490294769423769845020538048405779734921625899662265061067275646776178941199366950980531952056903092431565308428705035196236581980141982610227738725610284996856531231469336084916819584917794186965863631467803619506080876500481490266505506804072054564555318214512577574206108798325064449111462961135250208585640497503543345428989809113746851594904501870183911408787733907186275690772899044303148555758338534864735244020803145980380183186745186858053956475536286897733516944745720076252214295138961594909610755453346347933695308673614159897813588420588261159739102242308915527668611924250748583752917896052843591887590173271608288663536232701327627415842147913715078874838518054034446736926592533126006542047297332465913007543879084866061620458985282998066213764772852075248623606465766309676439025088907129973908450378357675429453173446217093562889554585752267868896713419099539765107760487285841026161217856976574156880524068693041484239956009919273572864591345031854638883928757023661574456023538240663277362814787764132350361161396064358719108932436421036330898912156815393593936874478333555797615549084936887498339009504636084009363870457921569356438208877194076025380468334432831587534043981985012608244944827478641300082732950648007433803561065450890270564823352208137660521906147106184580516056969195468055403405289146027244671079306398039241513998968132609822814457383595907012564980885381812058128682508026459861824864384726464677444681139367068763351755776977398341088414492404240415906810548579177210151206828918250772027575154833377488556554537581252854704494617966307906861431215740751337220566988877143523208585223419635553029946668610505683323320576124087621189141562678645660539758701824929242319395190531447069532205636051106240365974964642716810018893994541763399248752089585598152776235166140312908239889545455113632530529888415278119259030500528440319121065228493543331254457192970768603754723516681847967262073393892714711816299687297351282712024251956702254944205857573267550774587105762449313381819907524174914509661412170403326463723017915304662996143208002902938560910893080967356089824707627775385018248914333458658368591169078123721290188177342213134849644220473692834435345574329660344006442744895356408779613327918189256594832838883875151508176687447378640631316243506549966943305443126274721738728885906242413404708351089662986959123950822902391529273936283793475303721125319251966080993311855564788680702202326376549850002663173357038029169986350799008597863509324778286145345727518463231637260397554559913861820705182502837918715223289009295587432431110270476541334907381635997324051414936951917784857784197353311688296915527003605056371201059803979750176460672989837809214884672629816914707407578582425777419011173380824515740224492400691299005492159032556026513697744367114758827340651376179414866100229799915115832022531826951606395174999204264923843701761222857805954527682224411772500115834135465900867627527502248434853126673500234922547041655514182421036135635515953327404646603023593971314545734514708219167151460332186225794313476815405753816190464627984251033201954516415518544570411973086003238156327973618815509887778568546125443923018509004648361578366514060301299384642791740956865739854542136797452792515150065425380466855968019847015308572362570269927274302911659269327263423735539346398913065294676221944933089606715432238745173884423684007548232400217420945383483218728523425182900845734007086961135668906408578123318095967658989200369147114529728797462038702427152716536286838057469447329579435029974192045256876723514722726440517746657430504259577768153569987444305841301583570547482208907197301761868083138939067901862407389749911742957725889221130311924515487008321382804971302462480787275098703531031968676806163070947515513260817789183768908400071469699968855908544331395448776515715190177090046466582938211442214371074294075012266396397445911898399893056914268018545860661391973254971319622026975445251859529361054748919772464743040967554807990427017050596527270698627163811263752216553928586343479202593339607685284969075391685243654808551222608870906939559378986958916364404866316940133956942286467777428941686943157053984425019936754768229464835141676781069215893274476349988180063724471006393336312979956166738648353833454552314410661177050680830604575125341733823072167790691561805765914975780341253636006262768109579489458491258085287751998806510578980972831749892785746188156332335727893064249701615597311143637204306658296898604916238944494444092441310739481808548677272102607041933727026033651197963039179216076386156513664791885509938176898460964085059023385538595415294608002037524159722700778223192943880014392551556002642509453691051224737506018686769591725350885150458745090670646436893495388856787546335312645172205097724848549987740366131239407231450989839406912862637180618724364139461897789405745070941895940253600717134819653225929390185055067202337788402113104255534238718106126681025787395544908101421563746299945424113399553319246060598630126093628243596009673170889222598566375262730910186642622544769112805150639477630866042857452380031657180530891500472568286561407802537664013681408866154081724733591958418236613117057430352915966248434960429295650466060000902005167467397488067780056218645031080999549293320178651466119282645166261746783089640665385295041376713563516835107257112354933657373273614755544039418303481300286550512215749112044128857147774565647313662089539780690396191507485088987286246667387558921676785392046552861320068069569753456361544220920341348703916876653817515248320534968371938954529965008732341717923521522547239921248069373677506336299206306700874804204101345995447989504426139977798388676050444372026958325819764123253877551970115610471723321879565924173739390397640516355025111501960353376342347867449695704622993106164636838979137068421303975425518639227861577235830570407811021475981136232909422020653624194556500542972034259387508559046799599038805629241422699472045937112594699168089995601229137820316948320170258001555995359134421957067096945260030100481141037769001217782229400820387553089139546072290388474697542879657639976782979128837845698657982478123420818422444877158420641442341434069044313833439136421266918730534603072542910089321197695749306848508660850786042337037994773898157858071353950090275386356088228235882710123120874414589491112888898194311885884104644138102016736432936514322394901876310232872230717754134358720956805713307767490355782735068569253369574033487421211845432789881240205479128003975549808198371256543175713641042035504245493755009732412719640246855908902540870901359048297325894737633565210052353945629229380626672988110760080254455341090451967554841371318854285690046068315065535741254479838315243708904117090890787857202250416811738310312460265695691932045404622853844989916932014500134686108988406589954523328210695595223240065808897386848696581914273782946807529782813565690082904261383443485225513529381626193767442783417732576010773734906168889618928519208995296191447114892967196830448763962273197258519592081578170886863816670833336251892797551154078921356537510432087338309457932697494712552947109651226529066923469431656543637535673488642971141418033370774089608561761450503145982199282059801227287416167637369329997228615242538235429833018830412596908662308819322010693716245229831209067858975109059248792492547517479403376390051943209055477256281234900255242422787367430212621061705312071669837104159570817571492558464030179037361203493591820326523399967649358073471327814635259245457405854147691098193443758385640778478438199972067309160848339624477103924542629578651039411352447349383815910735583897647111066210103646554637705234504256607054033005348816410626074191860273601016281785326917132251635018277939492785390048256072399491085522149984821677378696671701356544371488353356549977208758450674944082215773366562356470464615320526023881024004831625044945071366264507315670096100097487429788014257869867048654864766914222692826129378516211868051654290099173848469452449608057143360628403237154081285016696592648368953618312539416008497109585168180469602502633445504224107196970333016578891044811430313366640580693082619830922152256995025550341146347863148521151586190900833211205432831949697724005966875207970753653332946170033261796343771858607297299042159617795025442832731658622322052951314195384630685485414080545598507204369239111194954482812891951810501371365383611435664191653593249911062058347079489613583260779009014609140956767717559564620182116432346319237255541307070374034228742072899186660125256848955075870948824980336551560309476628814364095969923143812263575050691880696285797697808675249100730364026098503364894309962465669384579739069914435899411927326804836191409747350769585375048841004986757943494540915246313852742162686963036286350547517267814650755918396290813985691792814604002499013454296717067906150293252236793255128991275746246153137172424423630118786250048352431312837475025477040145643848111877787414580460692061472291695672553467176772127746618065560438714320606820387782035333480054593327563154751369192644467079240262152092541259765761491815496397984134121178718954905214198046521146662041899616979451063224419990241769496031502280777810398286845041462496782639011675662145623946367457768370461363909334544984433007020135421117242059673582130599303440663437627786851725767979824043769863165925288811849328145902425989525355518801644352234576207585056124970264290281567021413382004485497829736523488473412562042724571533910115743454216090156764315079444504025316863872835902607925017778802527604691697662538655483484186881977455010958367501024915138626539280712868916661871189916340025445140468134008364430458499260850902612712708701625376262283380002658307080836123556296821690958007045644126683238918252986195753778895744631685609129084991369380765714194565019620699258022240648104540059757535793497124388371182888707825406610305805061421661222342435700990227962264492581091356759113422552236712855977781019185123386660723615236908287132732274033067101038029046298855707765980218834774170465450864231252419862199025970786524772952252360550759499715211493464825986324420652158851308944175709049607276676526891868386416302260576562648502698681358908304592600822053976301684060135922734467439257762387749627478108982274196637887570818046473330389613184666656785054167202703061130918482571169800369900912335160182720322235423718001072010673363655934378968847471367913408146277608410572249492285273882665355683775170770986529277315853012732983552480121567416645132391915259442238228452453132673211326555254380417517104001085400575690177640794949910267856395237974877351515865097863521212385113838235890088167925760528113765248256849255469239719667407260215253914667972816038461264023861782195708330644055865523093342116695317697134810560835825437181184623739576712138937011057254514076442166456814820297653442842865353723149468707172840974331543535587785049257090572114797731387740213634610406553757818998419964380995674757426510914742907410316438896941787165913061740471520032652942734793643780396732259782231663239976091585603985648289016316742903338625394771022970559312829361560431886409287237346114600432672158694707669913813712881418668525372770397317343432168760410610560787394765059839358729846227237066192917570041590133714168688749254988130240096498697890242264214407002072335808345733893416773104985461458097700633133393426789390098072479871675781562105009347111662255678049408341396269129857971644726704652023959254111414786668627186662305355407122861379506551633034256284495221137433086968306839755610514593872999815608436686268165955524382226020514589235384497610230156867961323482775778047057842877970269290182228589715347392038416529635336110208102899987511815513024276835510963247033814520678346843710853821757249231877798861993844348927289039288137681257626172449838933779226741880840686977060047878721692645352061986456129489424374265381085174046948205585095023464057240312682283230567547086574848909647956540544968102219407664118814348294930212426991038500344179889341916084609595997389459569304349923933545031651391843649658381958623246234213642454539653782688249191286924915487434883510925152961057745554042898009932135639139354492094916475833430578462058734300918069748087394837665776754811632498345354565376360813746256581527029963907733196409134520404645976217120443801382569918940938292820409617444257566123059356703333205768855759645661097570885933949833294003821761226590205501894207886551961781739537681007331838131154342537668047155952059127811157141980456902219124790618377461225415848695317411915796620736851926832073838074485734836494805620798906936114174641889479525737643775451481581709496065690865936122513784361657609265367736247818679121979456285009665359190787402298792478811890945938250163017712764663971544326932415480382680665507632006651474344507477217090346174097566334656650166175279666723227513348039031781739073238223454159921427107361529434748501157885094558382141327767096970496755085293280197267509018379219340387506503259718905156183166728141054375066089277825420943408623187838935657274268206739016414348419747424941315301800513258118441113517353982476079039252550178296885434614236884345907927001754556081669415660184859280048028309039496285202159234905382081433027274696192696125743669753074069740550311990077319918910760472069450981050813477121604063276247946609777689273558918292832183418744884507293970963138881238865591898480673722541765149431512184645568645318120449991790936179409556204628092538219197060285367139455764152048306449821079281353593178963443006585188798582509496618462622069187499501375905180046339587522317492470450380171896462039181076418327178305864520223164835843072020781981580174395928179342911044266063116657548952098273403468684981808205809857162932683776187443499828596301152431914004025182155975107671977576968752038528910590810852020295648022516340117622878376340418365355468332482563057665549848375306706990437523694361201870772818219284769734817515282556976140670691886616333430770036041127508433737013172015035980997320952522299754002464053571178581671254389257659945451652997178918124153966929993180809763830160468076586175981675907238345362457288625665137219587659212918730361198753468764447739320512672141003504885468729583838059698315594038863637251667908560885305830521872298408339692687155298366856246002036600278731523595696571519118476215387830695565431990261371659628952224208127068737528509674082361316761167751205269481361570768967123188243480517919037819630591668723034631096725601737008097801238999453511473116761344038007462063662859995153736930032881579834360923848435344568833677492660480194390461586618696980062025115928360616647116095979251949220690284223644650273017377151403338316307486227042985030432454080534311317094110573126689958538163238458768451131050494047534567092034597613036120661547933819551695714850969927809502207330201957415594303278527705864696986909818120357033088297345995721774985030413669341781259297973301633230449348787179390811928731741253284102940777808878729249375475627563967893910074208704796573307380465700405272400037611891944155083610231506337942088149091016431730091044836891960537962052900954886184240807122987359051186172648221497851914902805923573583922057700965271084350253365131899132383118400083189925899041792847915507924221230616696116817683421069162991067507704167225544616766231985291695537517712585177610394462201513666913716495541945613685244418362453444739296683824278418816159074589223927439727476242250272783768847580130350438367587041298044019771483139165976221756796085976931971571068772239941020160121487551952043023054261755996433663792853801634943227540956367584972263197593041478097521426492122832250479379917994545275731755246752592130705479763415165489208679841610699091650813673728879923033857144143766047282784628713827997460842044770788377737919615557938046597652744367550559858731571771889967267189596425082127500376030494893562275964759969070563663508803526616252798792764986646988141755507903953378603887698427084086087509041973317845420129617302956005284659466213001297371240585866419539640506981106616195118935853371819618807159560870592519447059414849418879816312362453811905116782228459819135137825834807364732540093000901723272294108119654255915105580529694070587145587686640178491467888924473713986188692153474236927158366664491435536453271946005378681403652504420006234172005659769718363753074481714708689636355775185863420890077157570173264823917105298095847619163579603513052106559658404860132444087672133488111802187536768166130708643431599195446487800134431961468351719000522869862046551813749640288971142683189502138106248752132491594465665215431917353089842954536994331091989454478687935323439573831764178914823613115268153786904651336860850126039260190388031437139657765028874027433734127681677590201823845522211422262575827937719829346496648308068670674052001431067102998124785190200914529402809167301122386420408307210322777299500737484329655095081815607941119388917756628694227448137802241803235925956230230171375987148486991771590087671431762066563569076847999794341554636435620930745336920472770206107362960849450931174768491539517996608371648396575026096004072163359995930637134841759913357798401760732651289560756933592638095495346986464826361922356024092608594322568073421390391991232230366155050705903058783919204294676060047109439996376196161577174807995843099459669732882969916308754851922621929828683860802730151270437021905965410125441487751810829948762339054464656916434057392517249829445874179938026564534185565209448507412797124605814252766275892682544369808108567871002487758638148695030257394748622792393936452251800526796853422329881096017828536805627843585412772099519505003080958516333157648891780174078844555544365728129914645959377092107490108451222694346808314853754398209861706825390449066634040707953562411469776276972396022338469681352422386664878802380971028661060839521011213475912206762167083339156422156101933581090790088462744111002062590906484331351615196309583974356768412241705216885911836670643931777627432186194694220775942491492951108787693634506908542924243135521573294426467499503587843095847526693772019849851840678996625707023421868172041025477786624620168619592504066240397496816451639486722576658947410963240670593490852655977835896660789667039641662576414192445885840847482028616333715892473395341455354892599138939377243490027633923722141456937063472459214844191874027985453907029907383870452571540210398867555293966793654214541833940140037209443617463617481901631127058583413792613403659799325888460299845666704679300466563867022689239183735602856243781879398487116847543360458997253897243224373898499699424723973539743370685371483786850995605510711271192887660890558790374811210993808432154357477098814983925315677913203731219335094806863984669148069558620480066833549566087975943921033933868532787025064266238490590975809630726550006538835284399552875840541735530546725870234097969535870406138883131662582224410746800157135489502246738235543746884561946676421301829530271111347395565968926741373044179724087753503696175894115463826172935753372575389761489577650203945802422514375636649256838005604411387122017592730109481646690142949676735016524944685279225174587731857027595858619947157511493561376648151285642981900620927209994504013488452203534051490714798094318429698937988891993576714512857433517881272420455184063076783061254942391335879294810924138602597447155580352048826997192528429801533071579521294653813198865579458401823525218162840178930268197749056132054912049078386668705108716952796968101737517317703198346320456861466589811046358676816441232176200947532350614014607452979476382460435993473660331910043951376630659034753117743988708269677843019781156240930413199730517987020193764931049678739362989369834123402672914855791306380216367778713135545807402452603202462002513222586051782944227300041706140096161019597698218641695656892150264061507862099504617901125252934650888762287466415042044294227116942483549279596291090982530988399588595947872889066898250861881239651612539615136811849050627006451410534558352759356434324264434265822098842023144588933942648561266849910701415634730976798667030786478469906244573443356846103541365993615023918467536910068578586270091791100163821719921065632567943979534707832765887489420802311018942807140098538439628056511006581151110160410991927106847379738996799323387181887506883654175300551464931905526057171710323705633472917897079192657157656309847501721501608105877874309691836084636821987286586984125013432759967043206830442134881318166379821658005047713928303816235715498788451448754528802786823267664711950600946613233481867533639638149815521845299865310623425076441621970963225928847637855992561764316012052330024359710302984275000097167166255523688089207732342906811853534223295507587418609049925704380030158529854304775120507285050406446357516577374833807305917841218520618198610674915543777582818638921360958368784609647113263070967729785566544315338203706286629379604205760004833967733545715413188463119981267547716481863952049590107751930756583036206028396209441806586282730504913902543927552374284399159041096027497659740345751151618349829867896733726733398841019271200392778448982935139489042959811785236647690995109091994086748695117097382694646641374478347709743444749314067429301828882388838683332807323903034406349038214969852278481001687215654903170464634062251692457012416891017728815266387062672787355075131251739599182731816881423708661557868085455669991603792208515454697632788903011636913127242607624874082315470551765486782938495383818722459479760953552064184195563124232875357532700159607791013677712639514361381315248773237755399458606188727642038729455811823651850932466951895605275705439986081483734035604930360233888251597806051435406926974557591147544376702503879541525472697789154008607529382717929152467578659572538695318283806612575759363273094954549467505930070945518879351282816353044593934426669829161960461664231877315874938593417094033317990807274634295216862661397945015165290528495752457529626693912096384093263221025781648342526837954928104370148227295236286296711431286887380670068994760435312823570459965910554834041071863976361975737527929460077781000489926290796910968520503683079302338016771945344382976612380699856151268343733379951899991603565875997072566312149139238508965700663245628376867361430686311062007372532587638846743586925241563552190498820826183643608295599982752973902789167897940365994635957411300455640162246410854596601398241430511110416011146538052959488678913154570662269227717398769191425059947396990171417386718106091890769077078250346103798805555202314849444184635720741555557150644034365466540831308835204657135520091351451762284739313901759188906060938862241529800495872669419124908847987329273997811573426800995183096624783786858963076948323814433636860721950754019602058381845405746629507729139953497500864029275329981036672915687351199851204964859044157694386480912859809521136495353118137806398667979885472714918621650546387454659620986258678235632855094310358936310088601272135030252016427420000823222817402489197672921702298500520044825698629828567793777804208421058226565531183422875892216228102775652717841651456815535082315573978249980955215652386740549203644808061318523494414716532541209724220563955167672003366872854844353332912640995262109184875405804645503782716234943097565547636105444064755038592294733939341325268698542663015187053036396810742040665841381044891951689944351906152043009076664614633868299698063734793278430671969649669564393399625020347373570609917486290791946369377839576894878559776938675090613709202094185851844746945582819625543000589890176608653187575462416800338658423239423179954030752425334704196755521076388018911578564151958973983324753378266848794945791053189935546225587289313971048029302368194072696430775914608004473764846042702617097140878999833565174839242068502080677984244162758983232807486159508528788137495063542442700876915896668643037927854104264100003348919351712441031236511376173790177002475832746814720087679943929566378692024835756227227130747309991587631686359370106243604429575482599413547701776421490137200799378762938447381170996743383176909468393007900986173761600809375180263391343285940668152886361191937744293692246049612781975683549674940191127149131369165932074849298608013607552926033852819944511545083365561760309260863812704114822170475888533278094750177798890096006962551398126046841855775983474001967878377643325551399026671637267055894457622650089790187807608433268649918446627345507208620350635571469084917387463690147913807086572589503645706863634872488566857344370163554459453836894803784941537307304370144038585075944484362856359310370575291298779150075840202922738075957802314494676740529127231676695343182044100824850409653483803481169379775921360687173359158319201147363627503651420757005850659475849979256896818916847721823193923210719507434981964342272785371226731493336680800192570039063166726610444703191430477740266714139697145875450245948765896760745865639019114407457582732638519650015910424044395543073590687717330554940062630175485766177790600015341932072746155146137620016467873333477523002053897331708037204921373916419985887127627111787652542264928352242339484823891405024287210835395272140311931026817760468801085942080034502932052173147915705399686043114132592996771360210209314524709016277890492858408467427974377649403436604203363165438064560717777654109102851369609609276956441407712938488552056294673977900616609479569402645746906416743137010184406803683633835461650730162995552052572074750790655669974255519015158875734506290361706673126283183668553704691819642096513757298742465069938031247441250530325633320081130747092972180938147669823408707167143301903026506573187550423089919935795996751340393953936079582499434317954500957694066610171904058396075389687117165331237267377316355471774614939959344816098516752291639706763516571704855315136746217548655657548055095993569041089045594079510947381036472796948419058974524708690207681701639436692874348670314636607345230314689672417578775443561374546555910606805306931902721594702448943244091883833336738220885254532260289938854412551630782808370430901454316908595601965946846127576281785543896570657841589953280630160227588721980967908909127374220796034529480940396444735432596454142482146424936031554952708506479680892892232437446201568436791956763028228672029833952663162901172201124903345272752082965756977280724896973399256784310685686697502279256709758305083032598683762710171166893212931116950868521092278173191909317501321060454327591223184604415892221225574989605720159135291402744679389240145196919608807792723314495047591134928108348822464679429703476529826645183217183834362239668643561739550294839749977385599216165364040031630039014664943257072668180386147000142296428026763975618487614845869151572785993875117896318231080972169507171752809598490504979116469703131666768403661012801598084365671363867562532968550224076078641980595485778916898047352638704387850521134802888007763510579943779618911098246681314320626918932761947229149060286794422964549337354220805677298289776587393371165072033914186647039947060768253263405267492611683025185832094481208396262883594710299984334374381902550726448878576212710636389890358390981739483908455926264431821880601441121271915327961697369243471740230310240119230364082657174730905532938521011579714317190221148648914651880984546793534239261337291337329594078379875677826475950570408349428382012530249993832955825522357246675916740771817393504133552947452838782064634916501768234951613118218069294396684378458644821420705749772092649224139053819060756935722912129522937704837871638970244231925891852497598458619405164651331430600208824639782637034597189684959762672751320426777755893236459321813546669071946417076548901116465128571939276872105376209671350055171455714832358450211894053886452539931578240417337690955435908291035120531253704194514392212841540164819144397567916971070897326402905947196735585489839266337444649330294497467873253082759821964546972713337992677945925492031458389808873333606867807681079047759649067222476172879117633254523444006547394502179331452998511350200972914219461792205567532174956609079384233228043407669914656388392785674680562672355553462551133524481467863096088734313615190474649331917053629616118148790418072853872533301016715374432039970204589205637076946412456369054958517203646721254169352361889635416499913741693889992551564702233107453486992271945032998626100268091952942638642027368938651323056570566270542803961203184988695997327399660748290985625923119058137569369073692209736843713417340385237933564984482781757179817720615184916538023334872070004296625992367739171138069637688912481719628846557227399023296925366046201621322395378967986618490658033891530100535157457746980557047212697974406851157672549922693477070275913217995318274959554513277234525642429619826859526719650283050551612242358417090400299560466103145340755723157833234343911705839291625835647325946170275702816623744426390592593656935975260951201625925873977049205385537740855245947830940080811365894322545444572862387691984473797168504788941585261973559811110495286179749854099759765943093801466253351547699522242151539176618957873253418687050285930328377539837167496206450662023246966615604226868713273345414599581989329880448003299293211609241106759418947036449449879950141023180423432613258623441003405374146070407898928231180388218761005004821575510342143213487190360337387410739457315694132444891407648041266487847959846076703813155539168805055911894718822309261451234800934722021324202515983837733010937557695304724345923642459639971710833868026742157291203770584448970132249169952046213732773536391839624787195140761778815738102959138646137905148972760638542434822516422898988480851854225633899866692404587212108156788625380047704651935773300334876469244399326427544809744091921746660141416018600449974394277339966564894775810158436615092783579615446221598663553958220566412321741465067893507897227790116651786272937151598326447584206708402137158785961099156478267164869884748062490625625729148284124651024505883610246602918344652035168154327868630721252982968555256301445780539538917192952800932127730839144579939610809675772218695499651616994128809322512569530225803669357629403570709209036283862877444103875022700755586821576776503817178624432624782745707301388459814803136608942175915206457789797694299356540774985700245966760634757003712673588390595209997563095131286216787434483224960535135554483396217308650958899264338884148730433877624499195897892952632485082698002846509570668922377086713727990703310158998012334879080901112076269268363890579153788790617482041564779266056288181721823760305946511855778567003512364844933669386006506438894291416385831572611592336196992364693357807543727276743870351915650539972245068066827106142148901316425349730803395207695771819099441621342419442813182248868244923094886710455204871512107885191239609449602976936722958039763293914396019690755029808662868878248326958133865585986197170479659728929330016793600924029106472709803220347135827257855774296833437405793874344858054183495690328085605573353561157454699145138678186185407248549891539978365839063730053104200338234679336219558626075058682297905391427985437035899518139961740872447893182759215674842339226445486106519469458535327147369614514821039621975501750078179112028222704347552407095913347246404671423766058537947228907376910572150910747536979961637815935314193887037196834216216980247909162366919347747939767326582653710747366036371284770359722263405599731827350247373181687574307225789215327788666331645772538191728634515856984843432509923397967636182508200889029987077966252702542352231461054063492996000082011930646801305623068221200401918440956111934775816802862299594872911350473251212390591124713110007875181199036231128223524956531055311048787442393844495383395699903011818132730295259512087252357142946699446683802137414540768141974098817061369357119807312849514239399606158881464950228781565016723083919328760259362051387088892204667749135793277281320201212430538935104653184498813886282796527662743860707410652888507560026774358739762877142045459470885829276576908475477255292492788633688946605554149097906051575695819630998544982121940275173279590555115479243511865968094162516088411505571517725875287747315625942220523974693812373601219752326323159364389380474728051691766256112301643853296215770972454831266859295678602445344135343899615701433884368230048785783657490261596710972731290371653841811433359099405415673621426735262503803824111021852929597765570900167843891799786497223855800010055402033639051670269427718815769837577857664938401878032157643158308499129216770059839672854729251834682203628307364624200480912136071670125992728934453198140135852765936437716009148504577876384136073533249502371745636142323829219528644123563426835897944428073172576056210319828967565922739645550425876639665433771082084196359581176826065284168876754367621819804852825143046538063071621079936119365279387698761948988709886268386282710910325501043878071579854936208289119790961980980739677690130118155896480715052503692589588635184727555936547276067606646184449328610587151546436304098283220061413578388508155319533803149159960325742288534877567028210749739244951124498202523042487292464517043863043452346218745603230150215967789129580386045629816510628493979563237141994074553695696819086358663102273888467409300242392954232131069166586334854171552727170403308083699092464399302188712964466060489743415611636477841271716076369119065175426786976515787757859582667264304467574531174088633719019280634783342195605986629822450030474280060546937468071805971484618108746105150454885834587712535512952137485183902839648774394169003012516221827030626758294617527361451131520650800677700295700500713593109398626050604956010401151298027673602573031067014450585832128109696815036685986033981666818180259850626320116276728784018202190327365601248108235264561793156293099993304638017976251225132475670182422659328329010438803730536545941605110127394631027811875771153853384058421410232838986397711453129028675043322091542123336374208726116450773444527886400543661764842148031372725951635959480729067108600007696974175983573297500982014964304695932475967226387547757234299939041311421375099616395724253164511266753991394751978752693189548331980425013461768355939285006109781134246634392759664026148221735855832559442344850295334493972347409222338853910096182446162206523799474005110043778004632619750228219413957894800902411687444597291365198588424165960415308022723730179227079618281293840043538101124918216375070240467933182007337111414341326826424483184328674961169074142608316098047266493872208336808056553329188591691862193163799103449801032408887435890551414960040382778736959198223363998676461514259667251690311316605780571702101865887000016198614189883484140763670086124959850691526405978724230014474486809325504803324778401649523379084441863463560228663932233986107905340859850129900669212701133946919054573657936256943981512067554422852962371818860946124788804410854155962071345901090869377015114323341165989382963273143897173176389190213149483566076930558071237318010935590583574251375725048345029087287568439130792212113187882248425423843501385426597602023873912320184268177816887823050412316530979515264919116231286480143003083524598413712256981823651268132329537339395895970028462089781513091994403261607038869881925262288068851063870616733034503753070996099078931817593285295684971248095278415182932922308792898032073831437749486990780959637766436643317071208706760157368536953099776269937257004906272280989524865394139080281267138123169447534229739383600520763202569235445976656043406325301044423034593242827123861752276334721067764192315367429429367441651702937277570016812387295467721451678776449523264104919055372177437306795532837413593772058597708564531371865546003781425114191322034667640470469949313728271934234038935853534825793321522635320818594091344646001332671976015540646267912499389299575650663977906274449001030107745312386405830178599010458029564183396242984496174026957913441014446855055923790017784651074219093890454943571083788621442291147236193227089901558647520936364495747113120578834141687461071201332136265334791949828222976875673821652625640545016774314298477413109208242724306701186638536391453123197075570585898711481494204872535728453960900429000706976826226104061893946430867858823564174822182376845763582603957889478737598656788870019670139044560740258703836836245535057964359597320166250181665618539644672305750437514205957781445147105768164950312332517551684240441733929288695160600301810525375802345209004089809989923524107076641550330152912498795742859271535610092404820682711109852667930269720339710050035479740408993814423974110685182219585599640720898030256689531258309912621393323528311553102946138674407255844965467883610646714800232544211490168441062832612091710628750367677101491282207173480024474651828264170802168915282173036975025675772171622569487679729899315801509588533081507899792515211924227186867647300002500194672996291797025254994279224469351319587815460958917204807990423799507668608936532457758882080559938675733136005923263066116950373741485611268540571827315939023627385459622607626161141848243198880069081866961337527169452926693875386104697975078138617244122900269460619894261839080850694574057387107986543110857141291291064145378371842489129894796837119874898925672406868966956525357466640967870423817088590524308399314502915544803461602856886092083008298344143481167028603030995815512555988521738632224879327577966505180528590699034824380052313860083702796881801271934441495900485274224527145379053911836937004914669038423906965403017240872077238717267159886465248221377192298650593608576098533854700013970858900775808864930304948644310316914771947691756443559968612891539965865890583627940365651432349322853305594540769632737689894336806457603680034949543362856203121824699437113217022895283540618196046739068590518060980736910676896169334479980230565659521252632452326123634970304993629899421803541371810855068515823292451719806427708871023966009452428348689775107101765199292565003855558960833278092430201412652819860149027257090610924539734959288685470327285629681015926437587478388651179277782113288613781308026552090648253797033454548726358039169323775629183614828902427082407550346326368989416532503940843123603101420415678382159394019393336052569331626469783882674372615880518635332520093374998753813580832052506843513918749976392763657100040555794117414263413486895392163671070587963679133550620932940722978515443553679161406642146830549502440938444482952100624655057016451049460931671626721814042285440127896072782876719450857915380592731613517345988560161033233418325183905005787207661369683374208894113680555463476926567073586230861742336560930056380594033306407198492444480147616744048091698186465305695563436531815713517225264001562543511760807256244484025967471583109312345476737899140665158690762354818319246128884552010157566201748947208404725169541832663149203442295169134129439840043778173932918525163891984104807257322465287518374552118568601520458128747356992911223890982703262528664707761652021739875247009038813961975993467008922580275171533400634848345001237132479725925667709491892211011208572949462305054058175846590265415129673196191807448051242319354434116554936484904987673796567024726419474715358515802412983164222151303900160072210454217214000526854365576143742411831256221536001466230477654299634207571136912245301786160070295765013715668908754625454881999793600147014422631465116372255185862399060108945928657985330167911466305256405059590745460299175140260364754912892336239469292490726166946582987048362314250378557173432011850196754898618314436075401377946710306391852923522818036701951671615733184941496704152063273883158332898070195483440078355236604352666929636765111573289367555528743178118447433064537161155551063087428568474557715620919929475692050981322310960494754589459342978901708182569313516346389900264776238849114787518021738822832948340919333927109954073699859379655238151512679157940698036932728715342733806529002244813192827371263969050482940050196097092828686927057688168660062833579574902753698883269710627975021870136136924942753075113214749076607439274226491984030415815442397619383041493290407731782476029422997037610335425606507919860490827549683498342990463755942259414460945813543997919745867947080296868815293869247257661582258124735631674737400893844366435813646330390168452636916704783519756312356428221065886500579302645859238171035069946417196524260779017176542166644876750282342813836925347217587009619774952155644534499229533940796179174540490846479503063317345900607902439135161129442080454980902609420667127119684742769665882333088803448431257190827004628553987033757658535691408425047702527291703713213953155676297170608415198439932350126008421591071021939064304213583919447177376243905765910131318001877759648635639833706359267959808887716664710924798967023897172655919618405283991891985268652443711276714114752896973088777992520336177493725654575359920799989382234169134477633679897255163615211771096588597152590063522590837333502828215387827241817900158420414156697767526172175968165054781969162859586127949787311747771608899379611773886051884576820693728021195251557373968857275447406593581197293229105337684155149523701796404828625887366807007393989339809329445363002521706926593521362277463519301933552003472838165951963070662473559965965258447044124672204353913735929201980546596289443610642296851036854218809866589707894074495501222402394887923017501988617986426511349779458287104452879488638322747902289580824742557735703362783169363202018468479076144889401476143406853496779887237853179277741345749560428673320833481127408582829044700617775185759292429460283229991980465143256171169740528011466951796724080657812989121272823770719824231813035945087312211331674907471896512453056353787693836290126040149304571085142493601566344353089830337802343546020422337580863085745364208134011453918672493326300107639656857730311730220703230270875530317265017129213842878309576394593124751864378499816109705999133149876592236617445610947574011600029766202597589559296135354804354347193031337412095357827107500513540539411359020941952368925704906102750222867216401827590703050185166060966694926136924139402486004400258170971347512918521992240056372162236896389866491057805023239493609028911875084883210441045609642061070224201129715426553412817641087237167822957140062421885127205586324722225550537336925152979192764358892143655254068919689246017322922498780506277316374519529579515279678811242539631459090672386455522899281292578104734453503222877088904353052807391574989032745933755001337454566769653344695928710150433693546284649831236038722174969992964084289924302458564555657550468330449432910475846416576092911027289332499513565947745174614943184295151245275225780097640373022205448902006487588010750748048763609112249002647315998866404636176468042913654458397308521236347590321219315620501175817926588336083179954138410215303225525871647967162940632017372817781751066142105361764555806960003565398060983406792550498943430927150957318705508851929512594695860755963609713175425323611364130582736684055081513478879528183343037097676476610415910628093941397995060689174117855135790702508839565210789626744877402038373338762096577810141010479000609508138202794627676808030756991706964041763159087552314582220639061609451522904717873143837914089306452798111056393063372000410104888044778968413661242276016520911780487507732000306478935949526270503027268420597640809741765880422018828201889595461853783827601940846531654698550504142693086739200352874186895497451909100977181174506130884769480453897153843234654510437261705455383986595339052391482610123544291543623900671269207124743623163943640760548084276586114341953818307278647988949226472993828698983976216580211391611642002463320938018595748790613667084377260680928529928095393227114078981369365579670300707178070534827611941751719010572237194461461100215551917030558805986501944138214562509378179823836915625431730332336649254082081155012029901769449420074869822540628625586980142849853283694580542970565004707797389962125173287625987469248619016383279318356286118495018194491904119927274365269274658880785968835607666604351344727002106069289934000842124768072584646232771332210461628488934535788195872093146665558215099191270002953633753166588291394913580245444716029814508226902197905706057940606346761531174649732283458092593972356871439190415953901398956647399446948434584366786393407738614422520427930882453996701509302706012972947422202864226306187989253271775010595365106517799342605927246284953028436716942665680457542278289324196030840166826082179968104660687836983034050507816143518494940815771155725300491276591994159820455101185870527578760031091856152030486829621481795545043636244588850354318136167427818531529878453133150168151701973967940024129701965686247884559488995891610719308103453686209883805453751161551780783655290582633986319632660000001348460677393755704460348970332819884216043858251685363515490709973031912476158451794809375189766182425934966823017898988131427502646396278264829877518291172757976794292567967077822746799492735979723114695263923304898962142989367004223676131547781586663765927904645825741619642543769300650334682138600366603383010095576571629769576142852807258290350130212198410512894144722254322034522898823137428516856677013057176616176753797683913957104244613161908981507818525686162857427432068034478838996599278591103537698809696527009788636009771283624070078997853531624990464568513028507474724223719232121589120599801648717756035980169813652074811866860926779450828791906964573515405467783928356966735793700168162723450274975806836479449574537467491440869592095956318788656041736430576903725762272133238047421755755398156528404331270132775560024954821641572391273333292078599089131138091985490483165312961685700358951083073429244310511046027414597658881930150104041637742732713384320015644677190871285406719616129804948850574380039307152195386986024270931939842511694026610464395619541400709828763706574812199108480898352113759180982849365525311555722172218639170169117345400876924597035840290053692126862814158611031381638759452537563521807688268017932881714082188732963176220119491725265808910890985955380379745331260998164260880839045183552341052332003631799783044822814831227157607670065444789170311839436571107786649677411688731046763528329316387323149010381387480441950981475424847954917903338490583161494191383404296842235562795124293525641498566305932259822491225677677667606522404319136693389959846850116878742497023647377793748715589240216058323131831837722516862545847357914913147656072566745448414580399763399656897544028089761597891259375013302126656484150125848605433260283723894639455687501977454738906130188172827553985272658687839804603824809657253556580453604550164959485206569489876758696822547382813965297013473383217667502865465326503904605136103601601313607542166195838686005143023817545599451720464813413366002569653740660246562042866425722199435393763801235725240133387367464792860922595145923650746849208051146755033046184010913362732384405864092189019859171425767846486686255874486065228041643025145805946082692608240464180665157101862707151671722879423800008067683376540839527081542359318191561757601887728911679128255015770322056774947634337072613886770500944411769492426164568094864664567219468767511569580920658547099942518701692748357822044654357516069020611987384543680428608552956852604298041637813642277076445689721793604396774242357447999820934150168440847897300077524240896085092139981818979410272305156216043207589193207627455573313885379020059611263295388194880985215031996560656469665772401907525664097560555505234713936625065894752812198336649275780247166414719064963185844277332424947144961999248173903289845100809696177735985631164902025370314847419262442661506667460344284588532981157997543651979764792235168403503399493175558101166397915553733878740251883839314192160964888992759507627733974650899406423175083691641813911496610027159184801281791452117864982200947556390665143038602649039447321259073283695941134603566446803547664754702058198493749411948888391105190093383887691127164418979286094072772359557502311487228303311464968465894870323137640368242449932084735937237463271353349038529055468013035125651373988078977189783393069047772516370348285071898679284154023220571221115283113857861253538990444554482302231188102199755682642478812755674844085078295602929787727958773105164231248899908918180669114380242695226782678748707714120508185709518699556239941382797611555394730102153662723558698914024334913887692369171719567577324718562190553276716689318279716840080451753549685298528509191554208614830192835522978748323834336494161216104883803084372375732805185910621851335898582934485080005550517345849142543120876110188193312482412855609794401280831203998688069587040941338717188339334830497443393701313874760804739090677914746077688775942226122829523458913230373945990349226817604688630805027039188698838560420873987633658775734730753049186252025644906618239975707584685233981155697010824461652005181324163684191306084329968063321940512240187269306516874456861412063972208911967847636642473023776271454796274818798037895244862423297844593581081307983604471649813125675399737130473587280219468146716927927332383994014795309636355849296027011356055596590729699607385907302273195445446329390542511425201631376527127391644970715757098775665334942126787262590958951552851832763735918875921986234847949127752479988175867482961020435860489664184351389511525026411587466592122311575781881068854501506237697176500479930109897867288261668506535348455704167485837781447323378990242257210190677773288439158885462271145675985680640513681711320480833385104742436425642717944543619258388470359021089775624231831622817503093868518599175299472474231326542679848192964517852841613984866890680894767361038173480696764718336379273594701599559927857032258664067601326503895261209596751411527300634683068585566072837107728845461099916055385573554732120723145245388354057326027924706060167958316022265524311386565958438248678981832575309186082781807653982723916746478868510721201559186167753940316380564904722847250415899353222269558973490425645656829766766316265911877313559326327243660727531238735970167662544075691545046456685759716679547651439155134624143499215306452989310574574918449968610314097002091686623774176112989695772360391736680800993740165425651871170980316147593766340553100201688082308924955550527271523396921070109663232348517256065537207985753438673401989896272718350256255184135396292688789593215343286382052306345318260803488747315137240363711108248467923959959091846905740998948887667751277138145206539116050876062510864594711222279218495370521684353121048316150584288910417632871573373073207528415844710753233834128697012571779207620972730794208012452532718542153700281344921890916511078210660575298533430925505387004091096933698057956345025416094395403804515967761046989870899786951609914485477152334336204840329750710575067923146389660486953915811109224562307627667736444994504690487054309743294251572340082359517478804646638340000612202718747444915638062516607783899231726227950188088129985880375036976667422089142029859542382696388606126128240151601770942598838648368445492014467014789776362448418177008491318649462773105159231398125196479618413030508321953604991481623878001988199777406983420949468801042233221410569510330125368877611160749942394862627484031418656856526956809190444470606556883067156158388752509690653517611450305747620573727614597018832475164940701564106956702851963573851577281029873095014940430601304358650390373224373880094745209524686521248859623310561367456815715260916942845815755248054143114377438402907864071233366609893454826731825168930198712242596894516275979478291860645482509952384850519264280328532290507580855705336194644153857437738823409712872697723199987573319631191332135316543629695540489127461472495138824994603786705177646180447701042253515617077825341886070491833183412256899511432803792758585579147981096681084355616840150303424383497937987238189662266855865050749485890043942427338821502261311554691007438729275628348377459260640866936750939161771171314524915273493904536917030512193662961534883282817318989672618520671367855425758347677182889291820713898912124027020816263215959808536607506483500450076583412788467252715439633810928106913768463874601276219669127055966878111264361156324146914982749404475994142384949924769132680203171195648344840507937884679867864772636033629375718996106828607495742781858887668362976374085724551452208610074399484516018554270763933196842908651287331469599578856195463853585911244168622101681271340167103079032497417603658162764558734165279576812391128269225031390706436837326629323318501550008265612500109649662826809249706458874120243893287566696607997420620844287316433666305768921735396097181541373246824054677232187737216569815183605662303845358671651583382355246217385494185679238342648654123513580380861538794217599469448220289740285526112840323962633512099174013987716355234973485038093544966710656340202826265757881135103898690061341279895606216030592866096124633136162175073976824151618093573179402931120702186767343274226922358390291720464179122258543946649238984700770840673765703727371988735222007246629077786200133425704319923573832193376026477700938310554492167532813879123511419144591005345342106522178800794090585527247427024487146563241692761171565443721921490047240653626786947248513389607573021373634698874601355418151167821164580807648028866509532237738779439553875708236787228691994157106168166367359169084556308259217404813811589431221381697885730906144163988447249717436517727854954300546059081154723483565752937357200001003458644396931670932291670265312317167011274894858247296116051420508184695487570860239354449019320322607271129604019521400275855737832461780205177733027928138623112407140514923256850741797541227866210200677171504657640037185158839641444516748096847923960210822363042826985382495796905914172612666337906391960687253880673065720971259252385983626292666275954368921001615674992188121950865862204718481292423810213833254347061503373611039597134329996592594339667880231633704328801590133725981873799331650649360398496669637235738600112845416387764669313271832544290980144913759771754905912311926273387126037807719352774670988184578059407622917753760834801328170571269503123962355837392269816204521517427149841062168420450314180654503078433685660289950135930727011723938931609789954111916834157780707941856230190265688266748788684555517501888985821829126482047862964199552220179880907148274918250514582275001636258974933445190321039295575215067306480666207715633929315493941352543957246969300897022327566175550724556444114745899276052091731522241264761246396230200956509615370118748900213107659267348479659942313275381226982629504856415314267964410368077751706782139693552222802682009490419818051077264158297321251257323440877252522632946791117290880459883833222790154444539624970560086104623577551996435397464365854526561854347905161372678703486080168396215127641061357517429573798924714709026119743661217170771528797191039332560529423393704173696333693064245814310124241555866087317186798136085560774832165507044970532071986354608096837541500480688463355273209052285088219872311511973671305398271306115802687415010265641469699148012965285158199475081648837687296897100996762238655489131234179086395136011471883951013061111548768884739308034788137946356758182962741217854875295350854802215639359666972559813109924451046457848277420377182878267859239352643781174939463871489913469336824278296147009782635099010578905586098178667111274003583796403708219325580904778221134240674796176780755166690079436389725961015527685833909722882026910375245552964541486480277594839651301045819315317269442254768863988363090441251702581441917959695322072700049210603676779941021786534213797313090928488452158981994902203077766832014528248809966013095011392174391673661691184362842378424453645430987689969147505184948046686644060838776815987956315078347318637837733753638924569903771697583813960527684979974833227436357712612125956492409880863500437681662823626705158500469672266310590869247350201928839894253149188655712987334062265326156854296342162200235806186982331807277976217369812234543209123254954426600646340307294016076466849465597755606665518674014393915328803756268703831754059238157371177896297989765473261585137762412307748255843935799076856959896303193154225482586156984276046599951843421808591041489646032971506811730300496233170467941447634964858843926055702343686405117272346412961484250391456102913779915610385159929890711418744741507293894823900573810866441966227052850426319806443561304008743026328801946316175762324220043255301155940575123929350930437063179557525108186951004961986892685173718667709252006471519404492481845923139839390724993084878251400049282814793644648144619945464585313985063252358417598849874127534469985057663685671484782211151715185665853579406099190657769597678471129332445079130513500911613578126022529037700162116080811080462516334630772974261531930251140139020853008163807410143562664958477183954976901412290509755229317508325457402920779940880051759597792898548092192023210284290643006198560805127234181655506876387477440618216017721882471365189379042442471061746780832980368541132383722815764792036844949693177263839490684078957411548715387159963262200855331096051939371897658182894014658118604265141685339653125676325655676712960697601337878368131439729410106821736339782367533507917265551667634441178561316757532319298861390385709823790471386328643927664719093911607771293274926743313130358621476991107175663461546751663449804710323622028901123515689252687812764889722042038522710179520629234737263252365175595799927364733507184298380401944598935557534809224710405003476464074583623734352187717631047320670056174594524021423213628197267347150796252973619831865887765329429307415797640399317725515928980734457580159308180213025375915008865743584553296529960629721949526320032204527797215682347082231343715473696918561155861403669775723279530281091970219474045397419349195661049673347304607951653658008479298621451544965418842641729396545366702042118337374650181060749692614322100346410196647355539489796761835398667106510804579681801227190036657042901687826436751883049455223223223254623915613455641476375423624460249750803854552757833440991658434770979206405095949369727242672820901992425984404559270943110344443215297386180659892834080329924094544597268375462313097979804253355075764580778614120918024979020200588986493494682686803648980371404766701573838084900533844863420795061893918801177769072517971336753129911461844743127041874337767637429062508216708721861398708149535257895224527906191587535048793257929877129815065829267625602374731963117624065935578500666730087988630004678403027682953588657779476918429226009418284866612429727474965647527199906875550325898411639953796184398068705599598779520088867957314642496609435571555840101529390883733286566722314383298790078778966575802737769341736141112896751149449053812696067369364807223348517634480682943505544239321360978382474110198708811620231733968111426207688516829493662187367412719000512334129613638714363407563534713639573909923832191374180365568526022553507520960570776255794460516045641603177069091418403169117133555728336155841304359715283827031011152174057319564080517453874517463402301290024296349984618567807182760993344368575726450346558653793169212125724337821437552554785955603059964305906046660209405446055643057915718737268207970747436838063350308466920115535722657143317585273367115378665669421295872714027538424604901731517906805270766216870937852662231346585063295461770599580188004420154990264701173282810429455191343154128228231002332704435919263956931047119269565104706542100711277631131077351025033756933665766963728746029283915291285461746751923306788388295073277816667401515547054620465969503092550470061371357293258770418337578419416409183338538362485857092778178868756513008302840586107807054113022489531496034879759524716690347340398802163051647564834637180825296751162834940912463939421791457531865324574242927482331026128133530535930942032656724099102031978057676031725248283827893822855651658733487017764280880667257050523359129183823360919032044306372480070605054537618536521468061579059673990484084600260887178422617081257488627182372723009699014917163902073526752721819375347031025617838012028958474019464091057607135559610907475021186464435716943080083538427992690948652870873571711747336103779434109039547244618201344588019954578060702364282234695857832446837070882149290211480671049607263974322761205774811194380015566530552819220193829450593720497176012017219030138509812957958060691461791252283606067486578880843039691225836828111658728957436570326360809080628386673384834100025933897252784007792106626931643997771335912260577085243637758970372100065759901578226670137388006355890400276624272380157119527045254678175039654175006696745043643480154696447310470412446883706325510069585808073196367163413344646715780604772977946511488010953683642755839714436951391100746705036881039064848518846400773099117935817271420530454385990687655785843967152744386112122408274811754601301738395482588819845181675004146328758589594713990949507451613576697152480566948732688824544894877918217475493848622780820862994928017252904834241788713875539020805442132575492471456218328866868337326050362388431828242132786077235396449451895024514361897304030576947917550339185602744050954176565379437580994928167539792448089116131242057463736901889886765813954021766232003124013531844309769524869717269962870977880809571989663420170328281741878409700971394074164830269359228441373065503395708100936579506139698558296413492996659405355451050742708661819088105954600113285767342146311065826654042429684860962612102781386807949526542654203739920705160067365298859243388990956182122300145015632031279227405263682638993998807017831292978709125908743904106448189097586586811006991408828297179940778850812339710649861274222441361600991312768047255159512113333091865091321036411399714956541272249816804079910963088621798538322183896270511138351391121067315400459119569966266990864844758870253983452090407780482948447929281199862039382888335474132541233201254629354927698851518649008782536719623425426226337790433620840829506066542907294571910669525629377030640374801232986516687826087113860803712938422749992994662828703970883284057750163692470683197229779468880382683249526427259974951860809260846377951822341714916394283367525927347751901296198282855937377886542041922825884741563654289975554163564204152304230248281715591777865509682539583815025531730031396159817215421951582152573002584254336040664712241730424219639331030153709419462571452821833367396154041763566404163692284597550044723649223958721216306424504450404387472108438601297878778377116534499356671896439661658749356525750850917739258655302810179610432887191265386165960484404667821191323142367004679570884841154149424872601538613831826702472842685012251027404265235945484941658751775815187707082801155443641717034331109661838660798436188159664217463254219511937234931512513751840756755604931069066389962941861814019046644007213599061718646809402189423342434647497113985100745387474048592807530991969543334302579513260152159039873703836668782246692206573524069995658043958611013374890189076285144635468225434246251218353442084802888928517316831436617016461363824670346848167085370440457168542099207783491231068313488371629897468597388410448197355550361892903957763602540848117654659323006218879942612165167264639750494939401368878334104659378793876828390905957330025796580562253152277042292430012541635472421493861437097848969484065755033188199734886539867652180645037721473883144161657907466272410359174280518258666293718224770326566414227543946746222173446132317447253289810859218429940428533647985580447841376185789268485369943388683667794212700428571517777147470843893224801011593366771520400901237710359369502412386216111309700515451734723488810134708716633711923175625086130097045868527414773340070194959454301862271816664679858942558127090568819149307149377781977711955941866729959495451807185595894951562642014132743181909042679556569489364994128667171860493595455150652158023527633145313523060880960330087927978052894832937417633394121508198044338658331544572140749297710030374590059275576889041957557762847831361525918941918076660236481681391635675051498888957142608955838230618970958669921529683764913958924947120477833651435410650717838290040575755152831535345819642768355130233750633134824111775261357714942192608161328152532147495617397644425724182088275994578089802213246321026747838446026813645217784602614596035212468614084717923086450146335744832042412403786802970328477477854592837190044385490222760735730465659173737521595021455940767167679548246044042721684707468612354470990718299206822111089378087888449717671647815120419158258923633826863912472653503686861688803005925828982862685474711053362534214032571947720906948475408981101750700895654146264799743446751838613872574121915608886615415100209556383921364148744667829937532643544366939087271525285374424657969197972955379138825253175372817021593814614973246514428701079086761838984414440647343626906577205787417824857274709428950020064058909953060326634430828812284577369826302995443605386314117735022391795643252770612786939296512401150541851701286237899950709936983245496080726715453343638479133364932917420254330544152529714839779662961597867898425411919774575764490680896716984438610424310922700121704137743071868428180653517657498807523141899756956948716802066785466720404183565607241910220604180869094485532746851275979492358583717675587670248757596106635489732005975084004458690065029957907377895392921835056807233575194061738377448823245239717479117493215695740355452671758273581764344976950774685265778791338417325823146495306841720647069529202625640878234010252705427694622329883734532942993344796500297201731577896719219544228865619736249278511493862181063039977775461074524786176807411065129233924880041928031856275629670811331025086380918721357209099328185194457322778169110869793629089251675021995797028517668099170366084022725295235999024650756735745321842291610188266439961952595759838301332172357255618512083407886010973282311182057599253262972493385750826239655108299722669163508472708676229893270679188256946417951133057761186771538953533239756533449511003554629769278478670543796948205190563019618384605470746613451262882106749189252873672898451009815467322570782876313461192097265343591456333231812362135798399806913151181281192111682204524757347488937532138248864589072027225698588939457206362906439393680102463731899669304086161392038553851209809651108305773761436993998439887872693113357831905492442466095750797592811107262966481172753226020340695548913129297521025920337800612713860435786203877792280096690950108070510806657471229876971069468609120073079227535499682340146717670102448827359447986910658490852724915517755580726849210921738754372773629452373648476550675847891464670741283314713381314515868842227862506734674691713756232206944917679078048474034212465499296907880226059223681788011582714104018739139495351524390664854491923233081875956768006502918447171984832924169910097508287528055518837778657770747926698287823416016175146228338236315067354367550800937585124057976733521659659191770097485225597319493699387524530129880234911926172348251869625611635861510782983682845610926203089105475305523106927136948552214697783435914671450859890304957863724514242555308597656704026793042442986226569675274145639723641407668185834475877174160568842063741046546382706064159055517400519963638146666288271034041441636107473500061563162281795718001994852686694371168191727573574318564090418536549269250898194840077182884948756093035826686601696258835836029432501998738238793555606337910965680279695265747819880423142622996624900301327087439318370305267532702365371075249515255579865950929192618245657048584540048382569820047625208856452017734754370130773183088988742894047838854737528452818884623827089638485052791733622327022134615834934061944403898149135473889588848784761799344390547712354111226228385646067842897640600900528457111841042384273739561499165151641631277877463156292537475550895319875969023244283772148537102312788239264534735126720104105439606445897681152783125725474702169609414392537742166313838737837283901661800066527338808976837918205834782209084367424639649106895852877828346407725088252761128242048217185308935243192051702344768958550788339965290640802858044918397340419288292907910993568995588605951861428887120388458748928035919541165246054493528739441928415828257806121677935392258490934388594946657735086280850438120073639873736105551109803665031587588970215080392617062064394789068313908388461225218889498469905487395302679490354519744650480283121776482488907082034033382339661647127774414431032331065248560625703700241112551519972627538310240149341493953256869818658728568268309965842316095828606701550887868808115999059528124367557470457022215827801145006769698790963858277711528490952091796564804282222799930173667515692737938005738125215533212268988182125030054677687092778873120679898750904156313662310952087867732927836824005733749185688493039476037994220491462883295664227779391795865219696690061256041650283620322058308734440209429837135226003499419453836696946853940197573707891139174058625316312939111514662078034541640162375128276017693018561609288237091822210163440186455096086684612034150760785915041954288257419141206297035192840428743028865448571940429716034602624342715907828380054645753400388873747578325692825525930557769734635980380365466625681518580266104389679957960662650106453220524606251941372308644367833540060264829087580612446352949869690263287242468133713914567986693395516384092766559194373936514677758293099726320075625026724547881153221653379251920548803193414177431136346041794547524530865348789429198591872597519313320086761173484710468414766515023155580036914427791641031976019437545432907665153273812147002862571890280954396145460986281750910765790339695169476806764263238392732613168035739639695049748725519117399698782573732226081794193142587607653953095224278618554246843670739869088339110947013886612317427241984571310851364206634299718561030113385129930540496863959364123210335281065216929361407736729500699735949953006630505750874124487003218694107333902746837625302961973431718502435246522645521415965631804452296370483837658394130596944850808029482499781966301125056198872202733835132413375238965562978923710370547752768568381756773280513146669149865252663702213711977288898972363413315198104506786522183037782313105123915649701104790653399282013345514336186343706439221004050842505060823741227105887781618732421181798781186795286327937289023680900372207557534405025537350337759087128375056101809383257909955744378479774444418622994090988813930852565813567362766778815163324386613576352537414152322129049383426788546745825757018146516172734890112000447273844101960432740937585358153566404307323888221370603479305603982072895948762476013556993368540620218014408412323007035803961792418682647280657533521758144647098087444664210516126899222807061865275544169978171704144298284785215476412954860700547482236371887002152479916348494195047029638052235797779310871623787408301157224817612821987586801898681060115318863747338423681259060212460303215057345665113570976506570031127009198148057908656431251438284599758692442602843988994777694912219706955448863630811981796973367668992155802453857326121620137620904984468298854124303545104128148044260770304984034761035145074379716202115012348638985388209502357566569421683999720871343728263242234879248843242136648494421696505660765797025984756248605747290433388277779330943647826781300085131921831083059803170665262937410003467884499184626848812203707780972414664033566716173018047737032049021845693607892550184359946592852229985142981008455302633072832697311035447616828375427589550518074639565797701094218666679078712005735422630667648542277324951194204475905209974252426990647438211946106106499846182930942086860654322863441342832747327216948497005659205270564744864715560821871186959410102544172837971312885355924225144919643315834612029386708213845454151338277680934876651722125141608797059632813452342728005804632001590847635048748509719587390912873329685719882730173715514777852113670082950827068824743241980598772268638506566043679089185147976624675238013447395952344435367018781090610117591905934238206171667744764779073710661473298083824735343921908559129598336909993888831297170530213594368854172034148706724165348846300768582531690056435890444370954115883687380860777576944098124487039589394991249215361672798624050068975580178589354954174259612179880738132145310956159987952364098069863329264510140821668130142424226101558442966080778353659051887316562177511644207571336595720418091017027309375096810495375933613652225385942504780943375568071267743843698867595645615193676845738659140665219908226394585684076363236080792384569074839750516797634012133213046087312665393466094724735645850965989833410159267478656483651606605846359825800088692301670807003997614912766989083681618765886524498567803168376625744569503616605663185890579133546386211168638110581459531540039879349630826696185938457350104186885532086439913247191984872894359011760991358113949723449501880924473659526297582923557391218566013090440463394541241961577972235531021891045983060251696569171521220029942627305212069051362805518388377474186281902651140635541516896804230314011627219054205172596919706585946680133539205935444470843594680862847666500241733937300595837270328174246030788970258010023036575300054586392252164136186917154631242661343051238411262482086063446784316445493562883026016486271565881360724601534257294871354707143331546969439681984052764544072245097758460352391664040474698689107269353295360691975949937276451046980192144951607641232855833703506966166617303887671564578777611605314929787126436175655064188908809957789458582528925910004419034888542467852617787559112580981471326799001183799240838650282812044881627902159127980758697620436672418548435053754109499264068304111019999380634750982792731474279343910690450894610947305777574252968564609173771680243696556194629269094461239050297404680508483397728188692256448876456639476473293827318393664975810132669086263972122568189293472366710216723107872625728081210373620291079730803745121913093680037221271969075698589186832222383326196618134227698612336811437091636289005851687219951742159838235393225430978342207115121395805368408843426893429323420478030049144194991854876650584852859057498177032364748630944736764396532558462546447730018855052979139485285301686076878656167186980596491887515834964498716797605947536289695192326043820282650248043212333321244276501968169973131419693542429977323679381576822866770184812820553340284808757976400458201871961208367366118156448653849997405425918069859530311955659008690927238541426536298721361379689370688312678571550786697049247517031733588820922153421332946040388472910908376115260835619709980072109820022262584445107905486584051313439259726219782576473679214753512869797651419454170516948628346751475374626824462312536947243411978976808943415538316650533290851969078279915228277956768287723914145219735718346256346524761742328388244357799473010921624179091158816611159940752373645262956686619176882901076071325571337957157354256080995832652309053546005221724877853037413133647784666012399711195969490962020387907707554939455840998558205032650464971396668000942949957562833332662259417847599694630022649968418527623774673615640237850275822546900063874409624612166456469339604941523456283821930522623464365117655346884550622746066402717256282086054529514899149787785826786576119790685624024703051667382660388313570379107752472587229847182444267962522851315156024024599635681459559508322794735411761315191533260336568844404851856435351420742431224976735246093608215233586873260225030325620264943438182287294558312915174814767506791276419070751156286876645584643332568546366547145811792286247934557331727980042842173790127201299990240100363366757441992473455856206622918297246183645769009191619657791367011479937839331604690019083838534004878292680395884295481236777547448953949920958304251890618542927118291824861467005459381739094587509653083514132378274835056310377516142329988165332037276380743118547464730039717835072289467317274483826909936193734974350508705378782139372116392470475889906677764395084513671544402338577551469153261320263608772247731548981330031881981733540455577224133404608091371360219954448392187037334804160274390336203217789430840599752200767235356535050301387608681571294424743244920275383809115440833132092685682619614103933164084176063084548718573501021793574355505679938716557135428808868819117008551616831814744125676120682370120719606603306151605221480935036521766273779727185342084740687217738774859655248336310814779834650013904237901132571307559366963316172218661048794933149285580002155583030322006092143256425774754346179448019316684063636942885498702855047323819045594497412397370769200559613292017738343169292358524793743660315365121410295448189585397382077293525732475963340572904370925958226475297254329023472653649477078665842177891381882504180959166548768456103311879425925573894851336443988471806246520200481986944824378591636702615773438747661776978132358093191820784152927973467828349417151782888811847637689918689576758656550095862926093471689134121520212506921570456303230431252086107261794652934029537354811601822738250206243700712920297998312155537271569267053353772342193624529622155910427883501883657811048565036211753033640652235669612835433807539402382911811159498181380374659083317003963231058824975723264536317654293120951938724001047783035055712031891636231401196120172244045689864288825440754412464622550177096334469113081033686460465364076321177400494703223833083761563646843028999868819101021111003352878910216995753639971581145322581408399080106598534800012774668322917639453397761739126738983932070358212173917471986219859146479631643089121992853023108323199482852327350927258312006261412245189997526684878647243335774250773996603593871805604852753115883314485808311922276397372967731594373913560314234902852681026604972367654826940686470745633661284523014744058556766527627227004135231283301114008364178797285363755249678828513823505494457036825092661684736714376019874920835020842594552071017955952604015080110611429315418719639713458447062445535039142187697288700849784308179815932356599479176964326911542308456652057821569372386241859112879496450182476698954563282664840171817592460713033494737576867512603317618809387673610562023542704999791505079022487805809838856425891596725804112697519288091944671675174118261624534130554736444040600327704127485738605524820176244063092928961988803313555384209020299528257408046445872547077715602221548607243732760074439311117667840244108055147715318342865076222747888447972852736066954839913871915556028143940298379864040610288015943182021668094986175428811305894109708603696203344960352364029286740238316358439475911562946236266507369877838285543856208413510045818103890861753526447519591406196903112297412951749295696993824185763093309041336742126081866823791860531143472264757597605235653635377378790857694027672274962163266219547092354410287894418878430120037743800027062419574217756809522459248309335222910931066686700727045886233336209157199699717909022498876146183804271644485797635486098696219785937084026137325616372155642292739467652976905537378610535363356120385690968346926116510578050147221957602145137833166340505542888204145451065552634153584698497936395432217006331432738979060730937239920788581788696565067644523184085585157598476218850362410629080222605466296057500334284583676777218986469491318532209028919157668106260112553071019246816526574956343975201548929029391328466500098478093894700053742267912798515584790671444122255503637264739421770019204683036757844594772711636698465970622290423561247204387557680588352062956604197319784085957089710781413089459171147402080458092909029850861513786636170266520122858050463174336586389589550835325167533024719557772611087706596647190048913297898704036545011548185701293224852525647320256499122696798392980548001503545253617625950105398045489910801592575877037862196404755303077004966155046637819153735709801430970254618503673680699103075249333499276120867438792163055533791788952228464353783839789864037126814679496721587262256910200787446420619706098688323232378387072588505398215360989460727865456029434228514567057878377482091317106466864896454355169138794633834178749767040864469242595694467058041391363798672938208700389154241742302685993309297290557803261487668968403092027964621973372363464761024130932376960545242376477615459207946997120300903676249300573413074155793692410195099063264269613064152396683873673974162211122864150454898587157646493794739050790245666018608952758766895559072565421198733181953464356147261939856191166745217689362328114093902443809849127116162082561047177228056150067863803724166610959159043854923542861923927511243322896755315084374197819430068156998308044385118891850432327746077042262102445819707003489561666688214426710193061074709893667568324203680872530661857986197886945229285099811133156091765806054676469664689269222278001684002500345124290046311193204029563617125238541448710482879821373905404737840353109669786005800899422737347623079770448619986167877525592912555514301755968717240145576888562099700946416338780695541427821644873676710143720871871914844767911030252473276621698766313826567740497275039575127983413656507248167115381637319630597588864717233153907720430757880262091000784420156197081315284940572553220488229964413592808532894368012875222957999825513921646660031213285851588910909721196422390799132938611207132912047898889416765223769573790938695569905902676244800096326097336801595344672899789497372542411671605957498216743255323735138269113431843120525548668808928720908050747267298531678431997773171294840391902067327133382699359201335351435070241389415229247420091471354878690218455188917007115496267604523550058623369049677338407099383256888866862919707768043856667592912607891441923246515378792439583831254676846913862267265173890577143163503721844562536133649068820670703819406780455514303414090353912651541054593999598495989305930331232385732597795755710178306829943377389575884391296191993228448666672826715469923011007698537372553255735579606104025440422028307052786789304568601592736900449107463160940761025305247098448165872873644509911822179108099909117753150641461637223129790581460619243724251765647646788906107723498370239198191184974635041974917330241906571665937740408247280286038613000045051202379181002218259160822217847872067806273407073498483249486692412607088971383188027322222299923998145473578276462167540805608264081655573459926621299764876665517583840941490295944800867367835457502866238287943298773391187605726654916708064145700169864684571996553200946143242135283222491507796950923404914998114963003912183564382869006095602408806962118599950814578519270188833631463969999845116128151100096378126293925511733285022002002133170160339650786805436796244177880199628546071419057451193386500565205860568161110938044212739905271230070989276348525139725793186713840911040288625875749605475950231197630540306492658272838230513161573575070149240457550145151216778956344424354603668133139453063951586005381128157828797580749030951122420125452387443413884271355740453901488644302698588921241188094532649085982229080838596736568516013362396940985351228296056331469600802154939482503900346056278384246904598245198413943935190912193755016141865847156462579956678942913999816000736851221005769166725691632060493707745344093991807104949730198732236166070460425200916256908919595058163236209841810748891954139387320965128872577817463747446608043521917906323748774354938503625438474601654575227629844003322381544305665403690444549167868721694210424514301795409580478791359661479242609679617201206978784808263383592412344623426166133818196918700908115190560342728823227779062297853262405017723087040696974285461562770896965009745934112051137238782203727559042945806602888007357990379622400865966683974636845221268385926451736477951390084928469309257904374974361200025070619317435342110405624808267273609171563824864412314560964631744256219064489216026195381494906057458846860552158707525874230031345266018779711131164513665635941448328516344488280098882782360595996144741221367036860658000201206152044113666326529812667411061946216003298052735466727530596768785151602165530018598487966680059430430867168499437027803566852905179141346128208658196174933171123065325687821568558012689188989000578162337799693914676553950710822292945111854460470952515599981640962647278099917629777764221294472015586869794213210502472766202257823693830642706401704089631918467956346810648585209947950307308203159708993091702223425369094521784797599234810387275003325381435846445726888658962728106985442662616129246968927484920163205852122788402222874956287735749289204009053939123310439012540544984778571254012457047480257716843335351743402027474131753954393322290175952541809002609559056662769286342623326079462680639294793448649447190021804049856667561929666986863802711413805933205740406387870456786347140840234321437275367831938407908139441399140029637106230161423251807211743976434610042866996024035718013507017701117365480932470737595860876265245907966947341542454252788471473028685541793990581724576893995671998334138561096548019120709612227484087341621685965565820688349305064826334235537116538795922103059613786026309409674479180343327042845046449883702299158981623266715349896664348444013333312209719248137896203646259323603338430156091919252202896951995226027610893217129817877502399332590448110770306342366934090661371870630156411487408000934908664289528317135130734857102287969005044027513965079558732889452301883962214217527439052490145174525186037980649262282907362381883800762016242576347443371379611940848213594444081081801818639726209436444683061548581279414843639768648202482797231286937102056420414362168846042225728494620488713364641106424937513159501241770726984320617286787539328027411323221818197100010084361860916937257397935482648115279781940102700772498110916039428030510296049170221112999503520381001676697423308023480752500384809928556221761788062078211264311374768041684030805537043017374762778798424319690694933807321555827037165390527283078914055767278570680204614100959438818848949796466168313380621960439381266159870075935531795731237018765979622398513666186695476026554732817929594570713438799572317585886526069828669974916562218216568868859887516623030501342140367457776754753481364453821883048072450104366695236032777906384505140172826306788975421633606262817910770652281167698445862012675159954457963871995212192814467133599457670827340049507926198230798173227043142647137936111531396542828991033663366552956995662538325061361655250184565136706815107115057831098652760717159067167225737418052159583397563386565433202043407968211668252803663600504182333285686774130569131370134204549326499812744964788634096273168324963235111406551446467897337189264627855433854623023041458001819546725109650257686188054468995121256382683602313464048159704350249414519212554779931386077145622443639777793002850219487702017443392618813451889422781168815597880966762340475883349595692838586165422625616613045424051075393863017825204107766399246851287379796059987493580754905826123376419264985278666348274210979556791256090342338305640150792142308340029779936272553505660195159629503016440402095772792950552488399151085698311657104899378692271443532241637051527674594922952285246306951101065189231132383454014171530323136535600640476541262321536978967576169808707426958954734009135580558661305666030650893989394079449365829122216189099708538265133440878463506501329711128500892337881898321065098478960286645555106776865104294344326013841583595316221848437961595090753860008686934990712760416849354324480333392191838651537370658894368900139865506872087006892357441986011447769886240067092534141340950926404762437213301664888810556651396245725836004599923328566624586088135919784632665092040033606100503334666217733900113663054473631412170899380028933342475905637562564356439059361776709562562324736517263061111571398787754792985652921331082806530333170339715565847759807319496719908948305358139057745448791702643346138995483701087995233993591514573580103329381283631174573044887012301718231005611659749350412970916961739871587435631924102297189162799612122629460615173913832466867195038829256879442464706138227984562765960332594578322338787793143878762608818973180952379216967412018710670123816874935686576128768757739517780305918282461591794464377285645323949542943650929949838237879444409872560381621014303411089048609317824297745149922667269902583550048995171276452922613590438498783650027991436949353051460221963715113063163472586101337641860058938868954616853725187631028454535971222646537556163881827765968298319108911123662833996197631712840658299408468370852426065186897371254873450590377172368353352342923951205158616532773298896435168351586878510814228229736220362971718731867396323939766127038973259562490198929129439055646395229790764470359213700224866155525785440047338568768085130134002696721646161430556209435403495518938170741474742659774477539905570330544595150037397056676688509332808121112574221488564594857492807295344332117186463032560186527821588369067454991449925319405655940950850437945635726796124300108129008435728257838465013786362334009815322087920538274353019057505151406266410828537373233848802200418498826914701976772234801162402632907346506771293273235918487693712656578641287468027036173830708900970740329879709208132167149352582729949791788612067169428355377214170845040076767549161687265556094245601464786186366546323172264458871668703136696924321024357428700973763166305220048574034229799648634152196560135884440570106552144916520183584123384713696652997067931408468185658248064217417869026575230333405067959680275296992070233722191173210540887699742283471996045060457369551462588219533848953981675251924064451532387433992465884543610275433752392226027320610743448951530923870816811058219240743790125100688946293198679301466347067886812937101478208965312807604896000214763035701564743257844505064218139668200277826674751993002416272821350271662322848554108125885575630034292132707454130419287081305410022894327156025885748048472324861495346710231173482785126782181838197490737842279453470937974002062805569066283995550867539314284071062667667065708821876355068153491991149689901071031920576501144979730649697770907868726899692843186028706572043843022970260527717212723816377402063223192496096180521224982901117685573432615560773083835234414455665343551139786987873940476205307110282461278092299202736104366875023589425673233042125177367590035793267759319343774506979880899863999585925206375494569795402679094711318160121340462788928730150973629776914977255377260637254644771847931641770115919833501535792959593958500382786249730807813314289595938733523061909822263589740104403640224155576977326280988255942322281052846171440485823821458573180671658133314004949378398614017367969999361969618792209617403196111807569644160344519786280590900847534881397097123540739075277886250842513790346789267977266292405065215349633985589012485964088996490260354540368191522142478902065925559841427496235699959647542069624881587028824627211253914198760201292216257313813725375491141829861085683805138855039691010183332915027994959800450558610066672680161016468124964648125094516894861514715637522969302505377393839514785868569476448481408972756823323051103380793982159113438507827103486106107624532120175290556894378204036592609854534833992777664957443941408977608413170882125244503754703447529038144354095152825407908645994948453495033602207260526095243043200689747447565596980230187813110825983087173509045329855237789429141229074482419443503446194262690999989090671605428470918641658533754226754297494087006844455553143655533558250354410589489019063863411674533790563979385434252851004935803275701588948938969835927024580093063563760268862161751182602045693507242323933187496820879155332781923053073943872137915644616640596110164817247349354921143446054952420061807490247943784088763395731299595951498373633871507115633420919119444939204622603048035632372332845953396209396654935477934740543579885683573809485212056444373021656622007027659143081308997606479999704987390344386794988540406019542979050940669844098961181826638038528383699090420320527971432197885405670295473419316565799563030156856112434422743905387805243061488072429357822360374082607804764178440499984101366497061318434016309366541894580208084969658531408567730075336876161110968711113482988977867256384112451711085021452345343294564027510220122915483897351435092823319470806652918011842579035704122301085270567276251012934370501837291659926155569591634533311716859957780803657662643128238337560065720180798243000849430637481837962977500719291376455084143641861583643248226588136122156257098762407079934602590019719417780821772218760072755252679370291343514784096806821511812533358586798218928839311269420609114476193635517741866718552717728964564026121584414130521725392310832635360231215848395766619768614858214985572641056817755114134337878041902576510480473261820000610318501468007807775526494860140814089057055650746865449549501598342217577220069794286525271796239171578263475424927826322650137421152972785256600948454626426918705500580237353400015541317242384393494981666307780221929531702293701748097988049826044091641331209540106782669970002929316102550012440141505090736192479571867662699402124403988907439099143269542614477635474120282574973502538620931767071645636136024264109914986151390804418129663308070538633989337779906237017136234967424601450766832033661956339655584630680641035823199705157881521642154014271074726234856016860688211498118780730054421597478896931850244841055508624687282794643525093810723032211534131511810531214015950034814485160180157426745330872264258819516759664928411015486080741769138358836918892262491071569388742296815258007013188339642363269083486082640998064490790816381042642900093481245266558497285187923130175255779212428444626692033535344495682293576897889048792063944581058505909586525152520877601209416613462450516201054741964571990952840928031632421328685639105965852596470717411256241525046255741549317294906427313960523626043196693999995380756261056417693926314378326440798676601093343904019844209493464066881644600448616675742118191227162838336829099494873393573022251687581107858454794486525735587076760596947785049051451320561979234649554997855709758247756962700058511920953150527891118408214621727490850912924008089565707874500586684207984048610576647194694508469833527910936672043854694234975822974519549177344407224627753422011690739621043269940831334218216096588371954245028795142979547915481519925881221768716917762494752104779380114033257120527794536435440194838198228258153280112331522160532548148105613911626987540611058093650110110766133088069210247135035560983720939734554871216240007519055701796186544253830606147149012027214826852112574399321498987180009203338795698157530968444901494165571846397878764973760346339432686804477150649936231261292478460905323472592130323061368268133009640393939093226978042466997346052179227559853296354916570217911184294471019942986761215208986050038042375100973718094780865330842713246980972190756709477320570545932887772663553938220786932422197491962186885458988841557211642051064701953143702869490219836951389139144506245391649646647945961472134753021833800389458517338650775396269708758360982471315964608796058983847173696742049049415286351176990296360468312906039893472310198538181603430132989798392471250489928370069941263018829510390469307610352443460117080790603011049375410201774250401927442816056795885426988858608674022290672408773846681635643230569068709254203518563755545237065437427596984262182381283519520058500661654962426334419803993436032084170057824176743508151928227266004134457836552635661893395383396360704511481277805240699820348090274147688673875781535373830282840708048568139404107694317187134472920961132464326276511569433180052730784356512627674868351289788984031265505912860262322865952431861326659521619848469878980200224040847593975069834524130500529680059530320063588059704603980780451467105421472777512504357584212379204549975666479316170363016571252816673266053057930314988377006172250281444844795647296165558819677286339992594120673433610912747808078348535706280560004160481837798574486816189531917257111157224250471421411660618946771714261370577163339034393516090920967798057069347649737835729061108427532731212184883299336552662222942571756158980250105624273093722812379303279356529886126440659852795722438892016625089352899963446197781346100949073223439399082387843870345236324856030465853140211658613517018956988746366782078601854246194046651264583239293735072242194427823486353696509791728591265639503735744923889038096017500156948112022762143211206441583317271257992831960737592040492240791240451561370999207345205434567245667365041041706213718261285434391262061968141484741154412667031316616561379631680029582842665831126232282043507066979592303454361304129327337273652415685714429630015883739895512108086650418580406742009679729322958506982318142369534985153324503908841565924369073759596161499211254287699535677284178057145500129274050218000467839260849116881244817688708478614215113495814465889674163526688195272305114905667919538958084283367165345823345968629466599486933503356556700727667050535736377846489741626630346884080545448116477750160900223632616274261074838089712261114703365888253813051494219269427060893058326603526169915400542327159477392971951690590695657031974876934567521274298531225859215208709928410798853678330601889730630908383863691576474267062908274020187258999217923257199771585974266251070764301449339437007784723232487641187521076698923583368496030912232545171035655697212590690426588328873831544907395621291683271775870997529129428373227826609551518275564369274520104005631199045374472918075439159115558226110122622466481509041162072871462698222860933882784670239712014764698480318885186287427531133825420829755795960789046914838968051417240509171648183539049390850641533711900789031592386383961841746620130216340629865643882208240656488891782822926385029047320371355513682523269559613796802259577501884795002170808417747676700695770932893784193704761385576560507061035663348977672600015863011186267865931858351556448134299957494673710191569902718246335298773495367636407924825278288257454587264670191219923472433924762043915491541568038690864550684238848957268639527197188804176856085001866170094603237666849898553533894956910375466972849254521872349881580697236623434368662717556914879076147503447869745325366716273210824796786153895736701301845487101318623026172917618337189031184189003069763283150620358877575709804825547582847767915153327946833557278523619587465001337036837243046585907072060189912811536918690320623331190686066991902411635916441453828794221568954944034478226131903543318269365837942113306550133121219301237013779859087465027610390890956936805195859885334750475706764587375827832455559168235861927428596221378111225179482001699053793587687560914304253731487576901273131664846517578809306667609513655217049758017117949292090080552217801761478798601672380723126431524851024632692326094865987897019432900085952549640037395027653963363239664598765552761794742709521694961823811475867325395055737664039842400304076900842167353392297872260739703916195942810099064903362700393440976107864654697568150333545052214067362110331952063707888347764931908938157378023083311108191641630943715504070676803583636092723628772059877129729925188491393505946536559691395616844452299724972302440505187157371179658007807229149732869181897053752954810365915660253302203153965114770603938093347352399869438457130420363235156424808661219630729844127539385890488383166034669700725319481651436548903406220493906151551474222133672108809898428976156743933294237630425445175346307082985086319990378037792119291093861861939286394965156668757108486258707927728388175281307373099635719419810091455133947775905063516202386247097637194109475846598089830738313645246389355394102071212405585997576862325857400966319474161931012994452592636407142563860822060022939183336141877444769259313649357730332161975589469153026676468200477356550684677995303507472642984361640212732400697548474202077419762073348597434518162958701328981784239795874071343253993685930169029032006982053524561536890218800639800809426869259189714860114752214857249991702675789360102108232483460073933514929166468248561313651968984859980385626114379688010554400106644825519527780457270133207158667901312658571368586526752097148259881833354460721374365798956124315342614694617448397893403292693396919086892299978491424180932334032380291525970265282329216560503108662663003702128096515224668836620593802419089683336151331008035828876829561997882325565245070621390173487182242332579914495117016475336048978684322092126979239920533304609607051113324615484244205344537867710097730094530525207077448295355165575503553062837550795097632922913562273356307051943435172661572156427806409557008205323289736276116425472859738120947991169896132616342155596456366610468236066297532594576857910257488007074279576760042802888203268544214724364564971350610647965216338958236641130807983392832149122538715151508205240487412292124598154615313637029845821453446982716543505028128070310567848995597438696471209048152142787879934813499271355947172210775634363092962433714995591078976525242903261499867849732535758753588604182870104429521877438254179760119049793532464312537087214247059850267433011631646417182777270770235371254647370297778439459740039226801330433011707559970884056262566633270783395117494375214850348058308139516531828924776933474168024791860932308726065472083493864459746430602526861288232404769700352552611695812261761799971961267604944787568278463181032772566747743561232981435304075111308007954769268289210089662724678593095289637912016875313812836003490393099027968789355644458702352179447884513324130635601546708791246959615098302557161434816367349860264908110577025494796157178423846329869220992696857183943817930353961809753528972399156862926347901748690139869549972209695037446119403839510457502210229604228250915955254275023527585451785041048437035845075960987022426781505553174990325974059950414411896929988308416344343082844969704485757000086779684229287911445367272932383954346507300366955955585305404495405331496200285531157778170157952550835545853996324146812655851625209337616237228000792394335895437447063230227242157367984024153604031987474802122448893633252741251956098077881840106658003358461481322702873975891781475378092359350039420272548067599689388054472393143995189096363636804497769537369386760057485879992646521930335922947378193946427203874443172577777299645855069565841740478755483797450309901239749536080132641706142935726627662451333834005090158208173458297300364548292380477971603178653189482886827572507080842321654368374714002412225455271387321603509834828619064362817980620833093990777939253712501294258161833299578544566419566287708050523305652151229270425665019971992677028249351520279128243575501650659452958625870829857146003607398943166263074948431480117924844344740195768150030287250616411044359445367360305547167581819922264036064960598756887224366593569524964093811067165039746408144754959486434578096585031736228875440136641219220731630066996803322198668184141049426195839115316650458950217148819570191570496101594301970444262624861921416414875521901858351840101119519434014770663691054927431920078096715458854054903594670092264828797239655323536134376280844690027779053072713255895709535423403733955180776125040713401802758006133668170235273702351037679510888622022281070258758606864003872530769514839187640928567291320332541180038176724143624722031511817264625184972783218843299612186417766520236129200547474764694232125216430025424814363383526681440375656289411070011226213903737796614299561987395458532176292773125095155115779539285423952389646552766357255918449010601789065371100325263324677677009590063165740891263680673079545210303981144545367228356487992272637143471602085906358832301046092238895784829001361997973658755639278538457235139495707418284684446829947676693966540151230460051505161246895304532720274077713621435542275819797715977565332947805138743076698713056006377464737246198706392297875739176751849959944176731889062568259484051787234581572217082692281364417933770299943358749419076173764248844624448223588432878587441422725033284654300658043049010778346658701039791187122991195278114924815799602697487642360203056867038270841501505429368905068965932034409115815435458184690316326328212520282942869450450803585869572831407485408412089399819587854316265011153013148154747510465867691907448685736230916616954917567524814540246361173306911727882989102130255544292117562805025604127962649732845893133833124230846580260372193922898835544501766509961827150577020179951866874043401451647702506819314525060559446836752760193090706807495357490990517115917007963711177649552344321296606926930635389562682741260618863219936393936988624347355470661110735488092797386382684207188843485613790379804727302811552729919312649366945692908635163786827904234134744763825031220689003959570331845041193625526496224875074475304510774497962271983838873373180425422456131172687717446507127905329687595537039039835889860769467839374997524187543983173159225997886813709812862094494056899604451769263314109133520553455356740905133677475927729384899360083914204451618863177543832038740547462341813938903089878545481466399440083684351277595329249095827248477276054707466985292332375728736842438233090769699609898847947605376500395793945479686869866335033115595908021052137006577013713127035657661383002594259161354837339832882837045030149940977795782166357322714784213520556636978228964831643524780510837134244345905794229452175037095382548451846742416183039733147652230881367937061539713285792851042597180129483162371085090927715411945013393950640184304804612857747969598630960598310669096515575428969265823711972223732284262750410618012874752306432763971506348413512596181140495463961415824311989251977876343017017337937828790682937654844960404016535946343586696255501803877868071189875112532945668952669541189562157542435007065877606434019007149110934145773743991967029866716901545121854966021697025281818740718866402251107400209362914829783120556114709502208602649438881474476062839890697134719466466125965049829473553254638872618357416816145130950106739272297829228874193604428386782854987932478267110615256906670685621669792584431809030103763308187930966754909654473402800597355373375318034241632013401291096804448554594893926210528584400391955552030560980466150115065740286191785250649229832318228478066619100809398402830215056210116894411965677505409592209194564378574095623830463343379136147170982639420024027002788965941142115618334355290239489634950390003916838533031318184946415525684616245569583863757135889734172666816393195628598070627361177877134591791005627049005954519738278619112786077059683391159194469209652305403124001977070771320651836825535419198436410040751447540442333349647262762267868328203239395988326069454417828251491262345695477628068647442923808796786948761878376183020959518905847132703676134401536188202323381263078446004336058522486833002590288121943182249798029320457483954749931722546089491691055779891629504067093784255627229324721027424275925602686197637721367403737712935858812209890514814769770300779733411876058394921291824551463639172001614983336458600443623148785108811487283714334110995138052483469286700901291619805543748996918377659419415975238681955114031288300426084016766739325223798763295948676975509596081610152647729254569451609417909792278909428116194482683929610140887110229730273246396536519718926633791659945343789985617110809677681474009492380907050996431319880831899921337848926237230314288326414717883846546190378858840101160032046975688280625999319365650674697961523642636475604621467519279144781830643912253269238130583966220488843988112070962356043047380349545871506400712997950505573822748039565743309825731287589677135778289781572948269736091835396103281817900146285214370421853010458334419768347821385621088889411146153504163604334939945323818979194125297359166423359868404280100929030053075782741929959702208041167840531183916441097947497570794151859786012536603177533852874554369947816253275743419900482426411867309609161514998640178404156922372907370177812430341638816148166890824552545490386697465389627350289056222394433998335687731157602060520496152714963697258588545462878466751959375689555688370150618317393150997780672801858768669442248900835309957411908979609514327676468630192358536360313333021353608212430954892175992831736220337431160506220222263352990620162209812435815215551801728747635774272817428779573433465705432588059679644224151117736597487413692522698099995149324850315450149201077904670229335147515158543035059486052029131821836893772752178281018851471473224188107619736646346034046274219751750533047770285736263143674545178073314541968270283632027197781394434307542767632431395301607497618541784580265864651698942494766885854650793034927109970892593729085824006814585569161856028170906407540905704732465145308914008665310045836703300606924799300893006772679958398415509135741389904607655733501164319845705276969907765196969633492223930376944850094368259968257762725941615752361999478556444651193464356838036426328353423487995005797876953292813620557203072372771984304669325199060057351670912616320233477928952578949838807035805346148140851826031260775200403489515127218091684223475824096340298982260501174972291356975096790044549587024636646120995151853515173685913269177118328695287370059477951592535940627490193027673566468651530487323201488884409441258316900996762800665412619448636767328210054279965352117284333144317822306137407151378877403232607565111327877667348211941375282518984231686256472830876897360657406493226960201420079096574207818002036065193343863423215530065245168861336224651455040690931134723715336908290779871265356793844321252449755371686260238265305458093692685878011431985103167547578069519666235096016920234629641064710578206288986471532334857528430600064236283423620725531734250390153310129307460399826017701148566240458119920930825090900866442443609817834824876415949285531419718179583474615795300134020039531287277876198851468430825612603752108128572966913322044676164912947922525260483585430236662765492525148114698049681163840603114229244634977834030116051663031935690408186288711209584425115526704615666633668964854233262265559186602814499168385963169693574706719402820999427226170714689154698602906452642866088910257920596236056418126604720497117288142804682134555326680050483357109544664160446161979262926544828088306914031590205674396460783009223473408330016931245913313828693174575792494559851242489271159595927958088215220038475269971407357306835664416280139354419352661189484826500889860491138193072423681765441743397631905726764573756515909286803909530030752973688365242391922275186370872274798168133325209564282302408034096639625515697978677944095068496784687791806253835593678465831910992579282735493934081050327819718844216922126914452001707302358856209958262594236747305334696799076161939263117219157197813230892373899093138927830279959629047808538839924439675930685386206461923084105750657722552799765601652313621857366102052046742314671846459619227529758880650319791844254806917022114258892676489921387421172156985481802571270500258400288935825185898937532563459939169952172252010142764559863202867886304300444990275504395392457529138912099887665376909432433985502057442130204138661620307822606955953163173158060307214634820462868942820368572633700020289183219287320088736582664555421203935647161080713530082137840915792729197526832712877618901216138191225076531331534065184371076251537859099473132618086919231434286434818809772335646625021430308764727891495366144269809091764963634952853615720991396057297275228971466260608592347207765537930635921885488613332916874451194758941835169571009219158275639392449713693980118253131544185915646112444820838564679879691060037738804263337723834675441960352321710750809750333496157268612387437871575186122654329903871747011422419098775014368070436318986204073025738469931815136977112363132146615266348999944511358714399073921400191378319415306641025506058149462341283056681731338966133572314874583265720973207906496621779595414856469823843351313650320571348085784936278700260224515832037648437387774061262158159497806733476804177486563787716047747604095630806856128386665265809508920251688003249129843863578641506317332867349741466222567868705047361325232086666466856964639484945355312443492780739082130903729956980491416709167152599197544597325293925330249032912024080664439914875837666245287130008334093075298972848118540075590794958163660805529759395539828563812782191075329595829697414123847532493214755490854633297289816090118926440127554026087058431419950898517063866534790999692713438295635611105696143704477452281095733366898941266928408146316037396904627387994785669521583016542078411716873807087156689506156696643623162673917416339301003597701882669990493120749766816855580611661191025510955532400789713238880466015350958616073863435325180079816283641649606456536854206189603585652888738156485221943257339823425837554403173946731443627474280204992182361133128743758733130376684127885991259639440992429804147691007878492470463318283904851075056980375415988775363170188304974204820727503143348176940989096205331450459783620891855750836747146111708411708536111701911339415948317287281275838950147263024234328754784798017630441006331845479768788252737158957741408246586185829422546774561453514220466406209969054528255398935541579561716155590421351655104775990672437137404009801705021044961523259042991908087274553680080566468293605722698847618603358598160065117563660546104877498467897152691768068141181097079848867685855455212168204210383500450024764639009921350234448044336909986072257491596611619297482438173547544603645819674308413503028316428267718190456392711556285307956229191564032391560968167724041135199326987061739128068887579089377774513684455348096592239295304764083661612595465024172370430380659797579749707808408013047180952146096183992750791012101438301942637621228217167320767788750430151655545194391209862908746405875834513053574423502317456935336252269237196236337154049534779944731005190582940414223153827296307497563264212990258499872823787627125596961259218087229569104495980473713227561503887600699240282598964332404431870498245833532904684506258511798343498362882050575565541979898948397052118970662562431485257134705149670301275792108538608247916380906591955628989281113934789513511723156591954122894489077959091536601320395395052840455163064413151907092223064244312866462191512233730621386199308713923890321507788580804345679812790165144711199302702289601754596094678329649396156240430796241237015317529700422813790048022145341568129028165736200861807425927063951134844008958786071493574244761414823157196521579258423901374819223609967072893652332311109572695536673151421199457575386079609571964899586318651003036678831803876864688063827781651342136436163591994519192553408281866742021690496059759301886588822995956133054691928849006357381077585177354830321753338188223241355120759681078357973625103724908320967936498684067614873664741809198341441886175915153368807388465769553521424713209339829853296093422611723650371009804092158883132891747597664929961497279357737131151804801013471145210523233468029346390360541861642569989699044408342067351148556805919382320544445105559617234241108388259025924537801207524026762769955086658291850282077840839468655459378469021362770918329427937353595249128351970428217673948216723696331745824112533071542320409966622859473320398054813753286372682992805953770944697166063530333735856417267390140101939175709426113821294085173880786364817194236010269001351494490056942451670572853269776997404070587650310335474168896892976584072334570103572643380539346959406553406276986561584593614243615020092936725129795360215031618865168567204346346790256704614533825147162622036886858719515877405020830681146290240567188784003841357313778411048268849757602802617103437405981748909628210559832449355316327388223016083486815459280462239480083465066928985507182049997516472086809425607310065958697085001265911610440249188763345033624463424000456611848881418367321461155064746319555209083920908943790912872348636065366005448641586822106465513404360396578754771524379632628281933417150047187662688630958679790359388316164375605490441614475568918626247614729970373434368038402748471771203766403291944550688145081368229173434819787127762387942925375809201270443038194006246028761227647618801185160417310032012989484974542621225431740197837545219368260418248861095195599540030852524867439086858366139805713920568229602415258076788408144480265073350629212411712693562393725484709173388644842080629838632090993396771743325911857544278026730059483502963563961255018078898850817391064669509195042374127149194289390913388253018120524154492436188751168293811130940798911398292267385359274331751813278099268916307476700698396393233198768248316896928992092768425030178210885141599898978814505840777084448426993325980528492651330032145584866863759582527283961559882954279205206164588171351856805924446705214314613401843606303126556886993565967637945589473555864851031540989824390734883447222216449200194161138512304186367422576768947115238731828985034188526508432962515822255431470892591674060278096121603817604885394949545884951736320515997075686509362438823393069883439072950555911538807151232810775394431715400827160076494508233451875035424579683258909938395493016096410448739262665870909593404932493720320775537980851740850842569681270729936387915811521783977779096991517523854331069478341845142297398465257347863955392136520273608002257955431634842977773298791128505816934010624737770814963218707750074318135979945077325341336213884732818789909760497939836070992909884218614566299976254473091309632298423610962965976695068577495745484374397096634033111603721143745974698329145523757004726395159203759754747248056296904235535907326193224209698412154650332270420224592812126756754799740424649003506583367483436936244820932115965759044779862945730028307487523418572699811545340954325233661974695938592595016051600942183863645059614509645225127763474142176434450749960716219319867917287441200187605519159885200046946948200878736712692285349234170098855114154144635953208850816264289244348681011833498666547413789402892264338821142679367767124926005238707127610348391626255814707564490450639049259244199622381164566018125848725198603453296731248203272680374418117473072725733621556632767634860005274085026904778897809917499585987122187946357174817255383133456630494901830836616856296010007546181657276244053458614183949755981835629092976379785245676091247322053097461969365572275669159485180160145432527489540407396583558753816344579088976878482901170852387365356012235174633333958288795582328293056878066808261163750345423249707435989406764104739591379692974525752409728065774318105666573458949640758747859264037877518438141485822049135263744057846593169523481379578895917061948812675839499714337016627520564327151162859648629906718297432539073068805278330769816379714248909393665398394895705650329262332949637493556168931265927549989146971984989050818234810937158985526556291373776917097016748415190679773879209006040326198345507625387252327098708690783329861475032336784110898923884808852398218937956746097730472209635054385932186402989412796250179450125897606868233926448154266312780634262654530891168031955649219994615366420603111759734106157910288052059984971682212799005215856231037591779766088096884244046475768219846042509197739322346470031121611372338385771577762202780867621084368251235206813482978442023883067650824604216492152620833198645003560021026201407588776171795918960881794167419531744054506223427156441424018085443365369048984893340674746683341543128052271581738682566894988592009838523492690795353007831739898719767254764406770034306369686885850173124579396068096769349213715113631274280116731967809618398287265148196507071201885792235203963364913548566309355079445866522493557042697574924056885730489256881298308645205556128431796341153516954240279014052946558043821537112063417023556624237636193406273536936564073513249409556768536616174197571855666724309481684346452531141501017983187252271123503508038209304043870418856368640379237839763413948267954117029703974138711917516085394425990145420140991149860479513232113826769945281387590963281904677765995894779789979421276936208030368583138668489272405518464681266682615829952538665489189655860286218075395842108236179368116064446815020118923184764591955927319372134858506291563873126722109780502489482323395011904498873154839821263815537201694647120157877224633209476271942507696756386217052526956468683030355344746738258764373514007596327270570759425454946496011836380637220234946683881021811824573839025863246213606290018120661923054456976545580454949640304768559235906617328596613421876279910088110351181241466771965755514180116804070223219918708498449287019080125441900562517069933365599222258510697814206226718826579816648217960879494825571657503759477590054144518123072228913846562418723781552501766987884300405896882239281899977349300000871401985982568772698112731080338288131440910596850653196054583211778016011328813127599648961452096691008429828224510777188952197462010530593125330357452283753574707874052607542545419025728578785121787089880197176188117343017706910417297692116876162221162777956723095987588224902269944492829439491005465023996243019261246585276674838943015748875807412014186272838893192191487092152263380128937251118421030919902446884879656554231625947982328860322221913438225309689415685485845715951539675803781484646878247901509662112290427442518006766669126710399860173507274122835859182035750789168895607241984566914407795884115698706165594332110290167862523227613556233413528175340223596810090535204373194259491719024909929030096861323213327308523474056274237708007587905875037592178677357385065993189491846255437886893057936110029444259255603639550401521506958969632520821966158534222202627325100582516101237048783416246207433218916314210747686338877353275063403345897154045762649819597578755184299757145685344992339543440951226062479062566281246177577903115637179028637614310440871498315013632973468240306256893719615322155747245072047361059199307339090229436986521834165793195923469301851380663717238375039643348824208977373125096686171690271276121817810846399086784591143507034165013986686428746107355239897520148631808467727395500688998540961625544748358151844594013074377213584623961796626505821035972439208785777839877897393388682448769731549428223105029127941232414524913855356164583253324748744923959742469226113397756590499643474247187235735380553628413211775773307227290557284826490368375627737128182760566033430149045588698356855073644035940730483503547781656881025496015971971103655690584455427047399648698899739069471007481129744648476194181231650896206311163544711084519630392151150827056254243817444303799704470613966672207192151953356298690736323533730886784884929904487102070054100992903850380199979629101505108803863595018339487998593781029728463516698299606995233532190430049703862089590786584755032051701639926422909281506617814230296600356488642651341068562506855372835684812709773503370997198245388676276112110444927701814296422257887885487443912458010183768308403046307230988927244657924132308310108449058952710771473967554223289848718088169602522520140442517497454938915009427983405341729908151354256502814223473019427708395554843302346679103345760784879416705956780190398441421738934420677353482492404194669938407747998564571949744544846870984402731751154389235175397187016544955096493784527074483500238327407635734955448712668946839594195091971620774226958446163860798593962967074032253296915273530572317415162941308917309072115633913865516153377928408491582464341721796056245166915403855934415331800668104836307250037283820743032344357978068141404591694613867192602434280486573978800128361657582527535534572607656107882414941360479667130695291299135043872359385389340970723260382712880169493081231772806112123160310945452594844632376399304453911474388311958020566948481616049977483071224476804463140309861675383305015140340410771453864511663042984808623987838695592643502374137284892816377231365690855776779786505959793990781943967329275298979563297829092927344776609515124268400730066027179675700310216577491568503181513518608957637282046700638817201147887380968261381174356206895434609514767320660716845487367332224873849463190037076943575426385178458237146737639700735833879066764716968121854443969269065249499105339418416038947165566530413183286473894008527027187880854465207222531546327065158749535173617460170580568404169791093949174737127133114775246718301698800855813231770541692058704860816523828397129177486233174760445468063979084171938704908008373829236269768029436296569723702840624634963585455152354867155029535001044411144734182296891845242488798732485528474266284436274068677969247599253919923520564390885812084200904397301529244867352587717395188186034723477670728956861179574779034195336954878514057192664912588386260970393708594380662905287555558160548356191332204326191561811218938999468694909273167417734810069519858508130612109435331982451092030184775055811936777707443313528949444071679648228200280153076715918523980445612582330898671906445296379952209067815444145105607980991136568241880327192134673177814924279830537701511455900876688813620233245422682562352094308088281359948469065256294715147366629644991284092789591810716251407853267382120231455678380777347528964693706919996011970499784704062338905329347305535756093476830879500739537065041890884204935492020467065465517240379237168914476712219680917589352421864342426153056945485061971203275686524644236944859395961655357697673315742431939551125293810551728634731265848256655439849052992751559837470588645929654328065397612664789004424527311220203693969668481343474662100562944452631764048472786200537355748404601517781304312564654400905595055541172636386290689018705407740051296540207080828410901912883842515326587089758307790988291446230308671958838148068160494209226731179844379190623559741898263445657830122481381371663098775943571018641768984461410468568467568256464492186188705144097750946608417788511345991667928144621931508051838254753935679268763784685295875505881705978785268655425513447879162247759233880018537769767330495881167064401444448669351386680967529851989165847882154850608014254285238985726569068744457911764202593929127194279698881108880609988846782561179539720680261963168722524531904016709275128810248430584441752319853635147647953436766149090211868173149506930088816459443238599566960165868454845587838691144340042054088678217600951028846071510185442452559429362847861020454947854350831080484299333692361967529802877855676293283203102250625165255250779067774757163316793825497017595699223308621032617953466769284512743920003106774543901088720165865940798776785196301660047609832634775514318313995749102757609129902127091869632544514796216432514415430951076216519532285285604610531249075080440232087627683172744844516458964372700986819589685764183760185096345709957583749264941530171096245450376957919628751528322740356109384406834271917905810753921411104999633920326961142217312568137496187578115879864148875419251147220168441822768061007350462144281512285253787424921566278640126436579596256136233442062376075894158103751377776582416533873577788089751981598710846724999575308853152902494118486838719003084397454588222904305677753869202682911879166640721859659483992002081026125634643550626753779106212255943166767782871980781222246263803499270392157943766251204571590231509270720617862776213543058889692766909067253731213464458128507762133135604987319326923245811124650812746999568966596681900376304630699251076111770294389574672696111262928861751264545523063313532406646728767640918427710912272072110741785783418893651640948366376429404960189612037620651744270699196584120707996052892630013607710491695583475878658530237766193257699397880741377007848346790514886556821542006930055836347636649613752278008568473601402441556670387369356780639780607709852745795348095754622255106576209190569274877804731415449939369144887176331044305730937539508200463102168319247466500171343550099020546965062634889044040289924054178276475954784607267569406712868171604547315692962884616690856334564899241528840782145873744479974013331551658850286443990616845471385876834276364923837052063765889497626565145825782124687326005870419661392777063266341649770958673322481712196687454058344194272497668644973243922732442242907554215762320043161065046354690220164041729395571922393841528274581144339101873608662067822594797552279228972807139069083456312701565164768101598015038538749588066895656102114265180837410691874269554705348821943820038474411736450289064933129247490853335632879095975890454874710843501296058789008729790162553940979227666256431814066623996636573145314104503841707147264483560044546876781668152573517525579883109069547692844598605859243463981863146437703603798605028766641011137047233331281815288773782107620492868087136870067462235434689422237721966251661549380697271636752476968301366036956193521239497850107218055000290606871926295102695867415309650238299384949843835292969887582642000238454666502555990336036991052944018435554897359277726265699985794224942057084418611723200621972233595878579478413281378038623045726666439470058294409594732472748378806887853090341775835018997258397031474456087537641690077056165218996810642333421293038088364407946770329200984406077169266999957518028623311883065913786321911927329783278691070668032775282367824115675878726269534243448878324137605844309698571580548722188667474770249536693856905708932942501706748109358815285238871153998651828329218620429464166216662118636632703451042159363726744008372406825971718074229379576624032093049930551986135695212348404370107173113980501733013386938310316332377237151714263122100819454018727263537892725977032999396948130368680530586728583689435461520166730338848205624962688412283170415040798147909194854463001209204002061592076740338970082216799393472852617269663640250166317403497989044521312162294308339779499153227977172959734318103410575242675437646994904890097879514667296875128563140111031656580209040314288951573859977906838150800865972094643932448752285889896681806971634075665291612189934648813821368072584323731212924888983676077881510605251662450167460944731660748123062433698485039475592708899021624604654724938950644986240545765712895544172457310824236017765547635002869601532353141668400393451309175186055398367738237794459595098473459405491902899115026827054760838516974434087877589964098624857057373102821884845869224392563456314582999150271822295436523984189556761025137965199777857315657936664893634517295786476022343626718480928232128841935429727082599122720992416927939387939802142614532193526017924210428424766935315858413260347856746838303675430462814612313089360587081352142398192930652713306016111013345931569231848078454633416856233215020963958608448601993129901383480283107335155446994876051346582403056888508704752087103155111865290845052837773419427419070569127764351138555159323457648190944761713142178340454889190256741163299462131614166332915093709749474981031960161694836324087616642092485570260164911093458343609930716850759026591292330236546778593199151629789960595045326625610922508365705320578469754816947853451929038816378715344157112772272345198385053975863970975762624644901251955908493565213222604189277371245864949914332691959424520207199602760770510957872887386650852360946076310153143335019216692157207515458141100574845192634583258709389316865351140185373066639338797587680070098079146018784480988446296529458157384592023526222871652977892696546020412859929472738439118601157005246396204709953535367698577150558407805654985826235749588730860115819327006770677214930154202448661288356628658729863755141836486982737452240752031913950481549258058158019409686515853885612639254836613396920795049886400937607112019453742352311732420442518408018604900533707668312123762570775429150311932551664141109848258156144672041844018431080535542429943791806420108788489059206264096644027287042296429113019000737839014143363293901817409895040033979040410267204958994305138115025521927099441347378946422583381259416559979172477297557254002097749701649596270557072202464007791022114576848244475162266707352348001731930974588156924677188724154539237098218766761544404572372147954666796136509609760248257500586694062401098922056914542228995442071759222974711329569111790679639492382716127748133186759008830323558721838243447329820134146328660184967558628206531354102699319802787646286912915138640999202458889649570558213357425207231073880091267340539355440164523116039426487980956243420609233548476442473689392081953668806034390807961237999331039573537522013440251746119375967761536222897019633730353843152369910389727487677263938474616032202198100475068236222428053978224158343191414045821543746872460708827048816511232369117737687875583287290218943886108051074206527861054575761890717190488511579147106895178996725493343149275886385740148342128246302994343114137670693016454282450838084227066830702028147933263970473286378226420535035270856548460666538204922388683062273161945829158101861646607607191538570970732315364136067793163429391013980321170087451866481018676230738339896761521026627385260881276626963501654922750383055859993140605121497498798129175631971110460388211851259575366219164567889980586662044854011268456735838826004182255584435772466411523265861328232103379177119333450198997448923992752092675170027355829065037504796913560950794495935809328518975932925718176940045722078115737975096059657987653942099739990086092886267734818805070553418282103523683222425570979209015298606167729529873316048900173966896952664487468891380994844649619165115239027553024055839140949709067123499084286184894083932443334283614757470043214132555185902881233667365342616537432996448027045184355057599539873969359532865750937151779449061269409922341219283639044762388356411464902722876803088175296360590361159673404244688003534645206869352855129190889218656704761525714628261949304774911671563424381219081515439783318892874371317118194065153972186542991585145657283956669398551710054174654835658700728378313482633606425978923828782074327750867052528768416824957620260430090715165185540636353761359319757468009257130967367871620887145223244951848195569159985250300295260360347364856168030065144428308226366557433009695386535092912222578320324869923046696077567133617944113009744134716603439442122479393312149134190479633680954998400195218754947514835036212601880080475401482531786421556385682166042910399693981608737129721165510455986712078284186738985844936601291051570732817662741722680603656561467468922021561822242588315384090428769033176657861969277901462528122039424707291689519368906087585167898446228179026626801246240804792343488090601116524238255458574624103928353204648179070498211739285754886618142461000829534421168712489421088562917015639076963597917409980975596650124118113661691256383244515557713002970318492080031082245329374464604139730251769206945999959423012205899766471963744360191854867453243451637859100788093603562093771840498896779133862528564636183633809556464973851762175748717401443676948683155202861390032286988867035391903368552273066517699720332472552148198372950390044337774102806042541092056753072612629883425847633789908951456211211534476011816486402217779490290338374526225067856948781798251870297073813302696116190632508926400468560042726256824232439008418269476847206127179359246092809296826790914662381214609807821371771663687126870609932126443364557741073689342462081963732306180542021820256313974050823349711248913119295698336062844716085256830876870261958617469547518054615166712012914884770350722462071791325522841377560104300383522984989976975691953309726372638616064679650469066299872241577721779591416542820310018433788646265110088949010917899311409904769962837929062864739549570258948842411318969605806461939387166445775391600220753835306613479793439216996382643668801736316244401048957371021206878587615547793540064360593658009124339001314449669743179906971180963419662111252970529898252909157769174746533836683293826413696225939559136428644893728325582748447104422982206820418194370409378110861506309781890610210187356220327326781394497540048903158843928752464014466423019302191079314542362198509392237823297787943907356794819351141730361147976018107712020327609695225992470446149131421209315450423047077564322045333853833981063462872159352658067453084330812129546218168534105774881445084013386989112599750290207280194976195448437037343445496787234624508701174430497745561021906753200277973853265720039673424922239563825793159771132328322021564365528840769545601762618229373937221958923317567060529567757003750664155718053125368019934028410384328060601756532349670169639879040917112334108784322284664720389289443368663994240105650161677054454784811458672776020305278698205265313214315102662460901409241006636924110183992096223200810901490777879035625516876798389412225905421799170354584521982628015686886957566469756611582613761907287836904020149346001125305487389494386520842394244321862763242591843277362667128695227181907073367016387002509209069546534699170145156461897355610540202533357772992550479331658869038102890169290005633429243666907567697993595170830992324202911397436918163518377416376192662622929447581531782265029340673645462907725637293143079778587717468919301419003387756390667245472677428967427938729533846345439232125038615007089330749069134400643998194916270996996914144604437320375391605129712875433140474300084550125081708985178749825255635804230877510972384773978137931161792479892887348113297363846925607656406592894010028136400445209927662201294761748192686772219179103092405116016977539136951139154734399656354456707011847317792233291713843518231194963950864325431974496560014309611164069399567671859250293055228561413388374614876169914622952202665804335587381418847859772922823649424938110929431352344826059278789924473118310191315069675179530404316529278028080640814519042125044776297600168985678945324675240629768462370982052863115356040313050119580928382151497240813225657440411892350329208332552019032264875993944681007565837515251076499265126105289917421602306123957173974188829652788036483435660045680355436061950766644244549037101660640733513271688570694020203933630715995236486015320645621853773803162787458429714349942155443336066057169647825453998462390476424616396219627553099409002392906107291986698435947600282748769650540330135287770475118327743467786140970121286842413139144460473689704290591370851214102732946988006472186846408332297426596860385255687144378997822996182477796387600366768768506644227971786249745935053028519600675077047167947757856830516258288375627415357217207730638473005344417371747011575911754107484399190914078273496870573622214435915345397503736659317268093366952070869856046758089008403209651965299212329187524699380990854647876704115400160935758589594956214241172606246331348041960041558425263497064650475231562146786834278270586646258662474039585493612612339562423436209183385069074791683477378899196224933338554539304232400719483552908876519317773115995853883753509836182713817813457586240675077559043104839432599026283276364008541780002200420724175783584835101196270038604202173813276617977325712954757602410900198459490855141817708030552101859735513941925833317715935541905296918677492753874991492519039893062839116150300716980683318629983234497048458618224565751134979057346271363995996997655138980469785226367049195629139861265852543160504055663895415283199868633174913605299556788448921529509893513539510896832664705303035387680730017548560900009103575120406205075957429984557200406306727552750695234452515222791332166121475307071402648631396620894815571329812974874224592924917385107582987932225292112067596547691285841266812897229594621762767297935345645286572711742614509501614619674058229346587488045723479552249509728359852901071059197813500030251581917421081772242457813183262371543927100987911803798410031113391040739704332116533328882444352100569354344272881649322171874132736128803465871128357859297676904384089796712385170492811122544896829346461316897523616880468862058265150200361726327088384294734122910727520583531832035678439699004970373908657054447343042136362787663619484860901183815871677660567301861654527799099559173250978723904126978449723165848486129413411724006885496667131989068114951078666191871700556599215472106625492581431937679486195067148731569069836293386288945180490180383024266570944029252226014778354998746046687438974983970250620105516674637492967096730912118557508366401688466134067072743706924669488354140789615448717263879681574277825411553179753494540449713323414315501405203909879999673242609793673629080460361604755924482926901013661016299275793897962159338868693217119885780756469230058100656992995579271875414176593328326124824313293665565540549023616308636972351521131232538824489257825084633761364683889953314146269923691361747067492282991322808310722823970675520029469822540789437970851151973283785045594914474999771087947641047186970217528208563700029385310188704808886259570016524485475591041303396841028889999586973672851391733185581486215059228147692444255966512904461383956273130475000618799946665701788524677618064062997819047665938425575603393300197673937686537414194229002471931802554480842869254511899062330349648571374258630923519537378735309105139227091663022004085069719290077239208878645930756162805272601714948252960029560668510382158355167364646893578998906961677173651064957550731438552570787611146646342305484398849388900276843029527004230540244924052447789064571432468120912936425264771559230585003588949104559912153425926350333202981263305480202525451593087322485218117317460748946957889399076163584372544769316149843973908925065741807896643494717760525364475441176557586728624901727166377791639157236082997135373565835714120462235893418715228714802162711102913062791774113301224513512451307029936527789283622471451895472162181436668614394931804669527754399384677668699171199667760119719363201211780129882185608391172688090410491797351779789551495459170765768153916919990636292310290131381097643040457105975687364855162839435603003357315549263615813265054069099140660266740458250641980994005210792967198280782314115961686731344411253899557910819773788762213944564991993882402211965396554003399832259769676522151494315312916475972760049503915082044939096926128663662541230447779913806747843073852307451771986106244210929237570065666660356315956369368591473600824738870082716676098428888327288620893882920672251163226247797997928407686070234708402610887185041000163326492734250376445731799864350411678690077142167377021258548460629811365022355723977155045866307132412546922470285393742145389304121459110692069437334401424462174062218136342806358328491143126828900759528034657034703597297310121807762120552028147656457949718023626368329208484047658242582361083751878202225544505842207611286596799716059090804553829664408492481777072994354518909146804960383199663443427384466361175611368764292394947580601405218338546861340448757864631387771301657362566419100679692798861084152089547628500465376916950390224771473187033913107589159780501392898624426154301654280666555439765777740269155773204030765188567059326941771400473275583185993689464548670198631250227826872007249217795127837604132106138352533343511998872098686904648184643775238532813157911804941540155858637783587221621917408665206182663465107417058738000590007826977786728166607042872007114338481551306220480953303900889036781023509186327000403886945989737503431680303108368851940853214351428513261382215827168912717186096391342396457223376526306633187411981071481101946996876628051429532062551096362856883003735696254877255129978011373661802090690187574718621326076769197110955104465341257308381975390110678346474652812753570641371725318827654677930917902802241467095956609188720152904878868054129070749269182542128749230096782566380100814988447747130752882717503943418079322597572112649868456407196813780749891670264430363218088130565671916785360363337602214549862624985250734976940281848662029444734990819935511335017303384820910782940455995537889425122140609768416393499730145141858447132580603098782856192691531690149845319760875210635184451778764066069457774213699145528546728784561830766986779054413166358027639257567761937180897374963886922739202491318380907167342654003109929663749555932922652046640796541086675201632734175182410980516184209524319555696120474511658713983575178391703410688794123228711852526867309979982827265552136716922898093634865129258331523890915726355712300335423772395086338317940218938484762175209506164336690980950672779436489928745115181912770168088865816511952592043041413945958614681129373267344620870542770744746076785053075629065010035586962548004209736087714855013659149872763218449339129854313709598561686135373104499693612777642050506265918849425510469922777312119481720815927058784783909795041603670939895535817456732828592609198400273849381834933970244770835109461080897861906128701171455447004311369234176797635401840691177196194233358025817954847807070026828629143705055712453572457117261979116217057932033637355383866745735886464927875941932571960420197008924913910904063359266014576172486963840062085812459026015930937436681623501073267440752856093662720528068149309259391444850509970874121560175161792178402473979372792067448624660399014443791863056846270488312436066716584822267715455702543805359590851483555866530976873804012157176353993434106564574573508889603770995657824412620211251475951742697315719175464088252249848965995729118285851784198200509446250276766701483444914978095381961425930830065376660714763716790248042817187736670918940751489686979190486804637590183076992027183668265155422355362608004311275998060023443292756857921210571889184705521325487644660136163386680682931514262622023405487411603232207285185701225643295017121300931644385076800146011188649035965933550383440313605043387276299574884737200508728541747521883437399522307058039389923551942478280220358589602552241195768310995050408985240901787459090273116755142162140816813175384082731643671723313058779643298678009223048507581290247802182097065685632876804104389828285486212641952658022858802952485857740018011212902299884852715028613775352254136698642976887090541310651733862318470446346076555176806719993900899176845572429586048980435898581528527246735686604278438767555461559375798388219541668738573020728758113825574290840320517453049829585439309584308558371756678826895805794698912252907992063000556110535237301460349810419515719629778850089725327385208730459612427985596600130917761475337297847988174156235826090558227604545263398441931073023819811837663267489039895256211632622146627983786217795735443873199964304179103325699011774696087978662263937171282567394069414346254554394938506536248133295118725222334805483571349204705943944886896778778608261340124632807141841223185559071327565010001752538786118458743974648404129650537371233824300646648279537058542176015171036658215120401282020674605479509396374832859725911901554004091267225865969674412407970393267962999782513231865729208978712223752494882515893254800162334392140334716986331427679363759326239526759967035316732307581292414113921193127164140163349405683014587521721869932149229087841015291492394598353671471091380155269883162769349132310632274790007463980779400173373383076579909416508170018111971218964306820832997164079895117676968340885991544577762750520800023369024923287923341023674330095376737019848242737115630400264384773325022835748282541708798910456134907288844709921660831632332374496692712273995199040902362709585605820149168995034632923585629029632846464787054697866514970654617183292797605553777604884477512233857526413888615742320130029412827183375422754764188532252588196253735819635996566393883721874038649515707081375779430590784878590397654798182476266949765050397701880880419202912742912704418738088707494283915023069167806919804597601831666671183922372795067098715411950178698121327681756717696468317480015809949208606111888737265518511893951606169605540954494391305794834655461737457839495664594705826878934209375919178917568237013064357272695290826541685779799814539781058371725241279368354984950476886726353390574397169028518708133307924834212306199570929189846381779471267527226936749208925662796439805653039570400024913717289756965186574516343651077331474148529278605943058708125678841650045502219745305102318434157804238085595567957654106377377135870871283989303454452862936205570687289807907483232376027831451368226620262319935441510121863464489131405460457759086055063993599825493628094807302557226854729669968597926357537297824953844295840603362969744985056271282985618271948128772683971944315638613985522301686636441174152935489070035117292412731931856930947307290543048298574545814613037138129840710045931744166078230215149991722438152249655277488938007161349130275940024707196889253038695882388580419452023473881567192833738656112378029098976773955107843890828062026211999653304310956404449044177046472857322165214851908331317647752700612857796787265121539315395846480883766752024437871091986989794618586822674135396424967340008275166043646722174886288202401648871514237679715787159919089010710819534879391780303653719265893005752043779575502932675812483137548221825597790584714302180589873925220906506418413595588502163386411428313028506639425347472674778723417282266372046129297401512141556777769143600087983340402481627088158775954702989393387095670745304737480454686373579589103524547125095218742097404811141547310935741064758381842328194784083241170175042690002340242690824939424774399108351125978857703218015170051825598227271422938265784413740239301219033066536979942054036035570661386917577187387433092082923276757833841601404290542745320107895756308091660907550242692389070022760059579703637182246305590164307915665830085948135624120552447220291144916261373763729024531240094643922547255443116699983954105253019855440663172201618876086069070037228850942864599876467641106159400964280885215372679019233188697860538003389876058405247079745724921746461009188937748378545442047455600054320358295929062152991272507567472626793030550402601890703909120414722623688603855334524914654237355025874471645993385305969749987651448327957822831127433782515810663403179021348147618301799610306398593016117435924349664070350911221200714472603010776141602567730476782690840916877968092422833789308587063682501864537940802145271621536717990785591626218882330467105654125545914027650039001789391544183917514357156668662015514482006745280222840070414340847888462354534766719762365157903752587706864253123873142288849624076827455403485943343847329109566396851603787485943879461215514237097631164026158389475545318012371053293568151971801860187940090840188267425762898390799881030163885856244236056209999430997944381466828111907639903189365706923907079226852677486578140054661270611138658617933362950009184296578349544320875878869273611477069970444553881010488886752806112441453086747605001330036671563087779253991366794266875542271864459953135641850358369351260919423136732505701313394642525927103257326956721872790898413660221100956617481965342423891797879531059734184771517678393377392873141254606860803248599004858138912217540575333185079444072237358059909978857755014745129684168726107309511977910092486122331836003001266515141001976012890870996735677837712372498818493249011283641790313873583183993901052747369799519552701982868373865947878677235345314659638570341321390796635888564123266867352867655673914138099968102631122636392131477757639080375987425957176420121181513671976810993443826062895345112234088736718218640653480254982125558088590227000741292417887227854786095396767744957064400132573909328042144144071990653642070170306318865721466424562232505781406904479861045457337070798591384218116267075301798266217116513731603203736961830666527330971394826749066660808010358216171086654907115603534542699913966044001193113470739518383955789269745377758128232563787488307832678459828602108448642326127373804836058937448781957946144883429696832224838755298866498418835586309246960489331763068795098002130706369225416124375093167828092938547086388909979214236859856873163735091926459861423954935253720279302676659071689620555424525134177345085051650478316378427059816538445735379658202597176452655973390116240963233036463328486584619222283625522590623044440981324828480051624306563660854947234436345321992849477901637063318654127302047366501134866755281656226636392645922904102090714558931903633658217435580717764513746685495118621072665770362218738327225928320302343363423724595938949451371079424494337296714064872084588409783828622602530098430364003330336392614861680765621811255979218675160542689194821835322038252298026135046194287104786921058890873377069071746451292428005339184160041933117838284381489771564028836480139298899192032956076830653392041538966947718481733078642254729731802294464961526468613505727473815925220864241119204669460781705232004253242487143174140549740032340396598867778105559610225866011935800448669528550602511941559474163803895259078409606912778535555356196291377592012491527660619496935226145931687833854051902075762501336720281480278228629441178375115003828882508882980576028081076636529183016112892808751737415491777471897536785892067327500800957605634621508616717354541500773036341675810564667516788366405019251047167301705957614081302219543452297799088770942388660388398078881364670358118070014294042729032583544816211346061323140576724572771410308997442955049385633646434456090630387246158340584446376123636391308855084024957081951283310749352532283801850764229449599578663975798887478574639789928096512162773734383073990133906934960818176076038024043136106420523838143398854364865221479067147492100649450438403913535143218179010359562959242414887288046151135917263692850286947898826865490741057619105058200388615739909059590743297235368697509003140815300629704057914954634562689510484341857903234716163045743719298340598510543403865882022450846185269465923798570168863312714001908578978152031750254889439083953718476266130908596701077967160441289607791136433585599284177759674499195391152451661087263770047559961747984243171498567991264949612633993879095067747732811630412712874955465087682668146627457938699668830202584175105843881120389558047967227489748636057117243452886907009772217623561403170441513154326505502749169145623358001842316817667328503548233461809842721323975397338136442470289125069493734903913279807724447374828216924772883650032071269109313441476798593265280098116811212012750199206676649366433946713675129760841827954198365792015490960121839541355298024857009902252987965626643174100175251891536380672547852394364717169983913584843480929940604008456894446121794704455345740947393834661318837130762613609974076100712970442477640858491016843175387993559421309286590830866038459097804659194311722347180508168537995790436312775591535628144217323133435032388662508762566766690638317649881362316605105437983813651888041655236832698330464265089682354442827410619297207233857277401925515242785047268822400276463175026049040413143952454368418598524589825783278580087171910688167676193588936444218482808491207975522936236676290353731907254486811147406074860032912456424212384199603761058759925850626362864191376464694830816875927443636328940939822377068321031912550831006053335693027079111955667044574351800156846668045511503717783954884538824503788664313818453890022373973138140772175665223245505736917276721645346945650447419080086595469022108370282638239320182615879563779020848603090501005411788993946289643139646907502789681480365661024547400614358834633952135380990784852463583792340801656774468726184264892382607202155011733054049622983661809593837817566763845476911491834295589722652466939988884771687024137533050147606123387431387604393645723604132774428167450835613668079263046139458922330465183308255554059763139851792765735949256053280881435885442971559446414402591273057116136891900304647310722631602433412718193491120349585484181701670684512301398263662371293656909820496929207371561337654952316251631746578890626429166141255968327168616175680661194745517788140037920351900745044090319727001967074367110043603213270251849307818114838277043469155762118284199829240150674753376584046180467036796652022441224812957938708147913736649420116647251317175878588827791305673167674451224625225572451574007781529141353702399155416984838906716437033638133658396040431179511861590099353138364037599945929483033423388482544128521711687008597156801757481237063592941583344891598820743183738996331609522952854244605516271857767830099257177733350331366988319761863323740370940391889861746003119059990038472340758768233132282867836993364279582734924003922077230206299098952344040137916837122599202540985770892389747789195973083954578559903963298304695431130259395283931087772199501928883610604678121903607428825402174767268079496502580424384000950153203091960577145908430456022134341527973732776815390780661170050529336965591857450856381967575653556737156505177617732527450662839548192843487105586711692005256369188594808661668868154494075018201101003394924298168882222155341222899296600599321404059678403164327068138323482919968272129189622265074113255320414475663718735574715047626751991912997401134569317366164214049700097345557915816929830870986103707522420592678597553212667477882868006148759195591286232458665378633777114684612656032483354648902104995294024444300882772123492208569913138843843628576063951629990990290991352213788162780553646154080177367008455786570001497013623288261242898069400470068446783481526392424501608131643335073641133908299259307420177972136158484563759796326484800548033209773061388170898468969708943262976624887906313481732964142589210299101750268473865036368330193582427561475672729900975018891064966290481679068442056025497016593771238434060371272364704893789493132105298455805913824434703221817108379665246290713848006664779870727966798001702361317641655707730217518752037846092101829576324702913265359623667870944527609849055369881046942073379326606703390149807506943367517563931438844376910060258090635092838460264617922753973543773563183263035682346541404533959016367355934835044813388854235036459901047835657580216537124070601846718781644853179304875295440338472871755872138039852184683855012891257222368340485213807776382768016997875162696371071277292839702206371641791115919495093541474034732891840984260062418888977429234210496016500034398359853336713166196074040484282546924027498779076286643196861307963230233989645267068696572531068351008327138208397857449976218948021310203888016145755845531547469211469031415010101455515310731757733871215576170080945619844739372080356711805681457613078644469019745107660243248041866598159985406254583617432160801758125597241434759418929258963181619982232625965195675071090940956864292182659113674543574408101209486618891063036803553158568596447366316007771744520094308197506001854955937503310769679921581793243322604034079526037918053126848549421536218955123079339597450620463991895926157888830497675510667977940285537891062817132690303338067415957405425972418269442504121256297237878306770273339978989248619061456417644264680393048016984251964638819205166394726926005583466103359398801696133508105803477495964922568817855893304652110016255679690658911553314515278730045043053266759196443661854743852865668938492625173483946084488109226873924105328934398088960745079956863702744331447801264600358250480168523197400678812832891090274510225932146236248235830582852358794342994783662334017652249254437934568976877146113456260884735439570270719668223466598895972168533065185303896007583828600135226573638759077919617481997719152522412404532993873849875338358564188178752339111067712020953932583471687040090359489002578344316976079328463071517979552159232899013756390227598591770478610138424852589242227817140542658028274232064314798103795587888095519976227882090319937082462453049279777656437369523919880707938789769058846461839240006163018509367469409853929008682965313767381336719826727799295230799624517809261179235528322747311763879426505151259353643980286242891819927964991304025186443058387747647221726569667286934072020537652537268087860427395654556803066830621099635658434845990357535196079157592129929868541354367185913285228997875520708892690003960210126930639052172658056378361047555425868249719241475761637360603134553861118761871450895606842213142954215316501729586417668258255060802566408187617531731433794033807224039114113994469062134878384672150453234845767194696171347664272811643653500244325136003755483606402102104105593689443848430129775470862372311586608134742630920192826577534869399908877010906535591525919989230702068114617420957828613845413389470753936429470914629819464376762362833556508204806268722091689587841716446913323778934311500448221609773965413501177266575536618570885950753193013205320130267229883820613718335033387797791802240415923504165721290065052792329303308183183446481073333168157262621939993719580936701988899632343630272853813427172004718909003676454116829961984244957683493178964833172771466430540255902315448319810598636132888736820355600787312488854040366128948564740730698892785587510363876438020596056761485817682253150441906804146746038887750416618733503532340378885493298811515974559975488474500577215892225446198099574709985496129637564643080352574792490782398299756295056914215872370411330548660538867658879434039031393537725121243978280807605739593527992672429887918654310256932826461507021067186356013735356619282986046291618065079064464643859913318285423802879810377588403371903955919944361859585047502264140270146869818827310410095131477717580444333947377556469410898341223646389879544507365067849809738538958812633392349977456924304606184264198641752401841755966153217772851105646667616634250560526911935661313193256945452277946639800842046420923182652865169552147144052273232996975864315741021705906344281894788546550082317205280177757625685030244150503440343980724738481869370124592850655476807840069259526504816181156782924560355276451885886287173009972736842956037624653705528099926115667890523329002208100968837116763716369193609113950359400036514950192906821074690856009362408246227465197197660002581396964160774333627022292439624390516908279909124768860620112789142688755251803662655058709092878099943069658610279889835480534601892663793937031239105354395292710019713064172933461984470080581338208190472257091663027095834231358022544995281623015810173127253080134471517262507391754726566612638696315237032447760508393470874638509915478165923966129078640046838086748083324248949249977736152055965088796358980199792847004063604243592905246342016775347177704980854893407170155816785416970789954883435846040849432591042464605040106203029190738109059351256705047007256402497194126558433541769277971333437253177468513139560368573672852639733431620505434925264916975944157079862475863715543622969747744745452993255380050843921910850469949102427403987043020494530054906597945232447003005771318542669433484993508584403002430515434193360840117866408704468178319605947443309112099908217844874551904647914806897437616718783508972373849888484786395991488926148154111104479715444612088439073196221536764481827442887122042006300368393032575902203351338782977942537413382800490931705836509881947499954811445133615202877057929507291298737753240342005885028245367679291118883863368208034072099884434408765603779414217095288869438235943997645521103507683164376557845614269292043228841097729220252553171645589028681239603782071623102653019139143849816600672604201792086224365680843436447262405597092905978664062123449053665108888954471969730780461062951393787599328724916574369140871321735093974229306468006532109887063593257650568195405651594373047238040224819350498977039510407773207431996316298610878696848680906648414349254830569137486720756351005122328884772736501776047568369736202467619573402790895731198255706022258192851017304222538807523070292270186128500225503739703243913176576890160746507142088838581874069556482190492493279771913543705616282356340097220691992099503358458897640554331490455627577233654409715782261125372372739854658256177502252699280161987942185001454561886164626071775405292600348778058506757670634153079061543830905950033898563665845823631924252595766931875687279556695942466388458682092109265425958781481663336305992244847811908799259786510409769570992949122389607030141170047556162579950206216287472239015665583295745668674091092235323165942346708521364088735501780254471914115143272069008728447191688926668405826273928786992975017978684140180977258793191602826215940258179947551411428035176248595173995282663827658487660379356290525051778495431024384755639249017142421370310871736430179798092523727493090449484440827523774988497230210872052288363827252436708226339187875021442176139274109136883281718451150633974907649761232486060879952985423928044362657447162642072272975801884154868638340074510389291419503356313843578118600292319744926239640965631897058372430366484758061259542766536474845464307666329990806802065751155254758470495405498649290145227908956693402620056008780448823539479631751834129667914692770504141246600798256397683753557001400597630965719576270970129273268475353755340486331429632435111008870805145991462612478675113929111854740013909041627954991031702036338753511169608040270953488958361342830973453576611214784550540722402715756127241941741539191980423878070039533309132456440406622943835772683598371178936658952835213251290085282838322535309668895178508728560599968962156337423128015230916727510104360046746682535211606268063246722976127586748020978187869773482778464010864048390048838431771554071524988053619722463885368443742412627684753932528942162029176928433985434315380976416548096848468071730497807554955288222185580411489482392963353799918493121410609728071774158540932086872097341305796049868526232705071928978749438832036903444872799395351739779557991945690541982341008671632348476862654211243958279720911677865394728327526842904293104066480130524045739668023303850358592201093301722399893165929324345536855860140195379830307344733046524363657043964607325112225426761763930294167057693237877678762305098664788494461771165455907306103169417082707242909403780186977631970768703276138364181645739891352777874177967961066608510758642212385599577231874170521786255533021090988606537022599322798850831550590120739201324174142522698322728072523405899347230241027887174002187338630784451702402470799495053730760580030572675336063442183211637693715929249525589626446022379125647097664037418080936636841057564564807054986353309088191135275762416672892150744676689818286049974401945922278445024222154314827202045990610152656640070556837264709569134461556837889396356921195005545139093049097363962112355946271041640351520719505023081114110095714940382409407303261643873326849507977086663538615096795779583647228047741662909934216483312671714575937190103955735045345760149265836885593157529040011721151865053174471684059601784275288188995257983341316181993169977424808905385948240791974072346937613421714901215094167202189216392191766192682064247512686792425390728196551338810724657363226463377180746043017352020826671022234910894782266579625325904927610713332330657013928071494054414516801230280926899697581905955281460403428434129288076076170047350195613126364329333104940771862954283555551196007296603443483514424330158320443482467299991064107996976078536904436106141045066387938709172536106010378467542569177207978128925075323109144826792391364720672143538230880126346900553545995932949662549000005614644650244850948223925624474141924492115062711088143760402470492240523542641411792943282129920182497562652614003876441707346300984696536397527621742735698811869598091736951776861482226838613747073783550269929800889573789869700164669527510087101020940062841858446281395783695834280505806223540348448104559617896233309622045381115309642691924448291929435875476975648591983536180880483350295976934729505007678328736164242019405861829463560845951550135343552510029958108681583966149973121716767991196300834032099718048551742120228031358968331544175977103757807738623626558931586233091222545891909354986271717592107844281943420462597266344160200681673306716107984954098418487367069831358427556248439184588232562329473130384085639526239283437429311057829639084318599666509732047947857521661712242773715755678670951666659787570638951963248637333468376910834143383252037520742184823698697558301831083277611579696592219209421613991628216221509103447590267977912852386691194366283114754404019147549182869047820564408196296952630745397033528478787671072047146762694668223147734183483356635007445913134023991058040986402729488436414029041803925281193801981827761967847408039989684668664595043299603523638313016203920427322278556123495011985268665607222052474221958629355626184279953213620170963286906343612240571471751855282192649315310509906738375744805989835003581356502996475809453784250395631568575297934105253658533899369725285098720654651834988459892217293034615402225473281679937586838083298171850861807230915580174894166292194581152322774369474085269800404459623750840350490848382777650608203567313494085650613221967679862849026392307017549174038254074129155217536531977362044005159635137439938633379487135166790933363901165342999146668843954628320418248358839088309067817200499209412901472984295290747591791237740477665733722968557852219781499293288314158309348767836413156281638627788410058609900928313740604590181139878514749785652037137774618860922981869315734568040531387725848731084698854825345725200191413060704281960937929468143824417204773200253192770610224318117799562785676057593283886735369110496752971315977817722061449247347963081699464695432057732893756986760388025767155644857093714978758726978801864932649804553391809065223741524741496772427067178830695807341262318026544178515634800054268537917094336282619179808105361200027889249634216895124495333035108630285754338662299441430536574054882862822191044044520005850488662308548515417898259670154815396873999911528688889357880453209826634549231926829359410988433170227554293890782858992525976575295942028493873647066442823678752242513142458655502600871767245535120052040616711265059425282105396322189349483533578597713732145732814644458928006702230339058622056069817650592644352991600819599100767557880846405141954999766863840519374452010838453414559200896057549328577107490493630406030887706547051314355720164455424731497650284934304924373555222402181879696147228464595499993277340387994888664339706900877410248807295794651560331617852985109212338298907093112971824071989013533032164840933112591747803589132224180830950169777345347413091031485563423375873525131347403058416841798509898937247158836042656667327345748475752115343481257281292279008229532020375261338755252764569334411654250561540386013362156692376062979725271696489118397154707615491566571897646791577515229637432138188822600681156155791897881163528410110280093602656282727640853714316748996950424989994729353720730876650860138937982988560735982397971818748279732212902711760300442319585422428015519184912736669836704282538299634192867767727909902855327219953879067616530656359873588521486479119298392590055633484443512578784722648366716508865639157746994994589412726458741841366736552907603850471749981925010967028972908851750150278807395418124310413069700398667383159003632580788243505972231091789518359937393284333326734208389959597318129928298339542883653921875261303659861283363268862802204232525756578000028929904067469213347134146358422792026836847539543404600341907892089574924195758899835841612176234144665534456650419100138604420848622744415394539633337934385138577185482808495520287982264161148250999743639278636864876301584843387051292855233438068769104227562443887397695087916793238850995459385496392487650700441227323608160327563401314341724955718032422439310477108495345220342398324313121633574467182987046682174526514793647063858816545670374917629213111589556504511710220433139858769756402326475045385062371250091867904975954696747274139540587828973832120394836441405876807731220052789073084202237417061105040831602744978487720797701971976181047088576987077134412419277994041277527876769545230420524559442096110231283905755439715933487809501289919382025393339218097394050057525214605908902978906736859820198621442681247167919799831359680357552503416876916122534327188447238879998806115379469331889628818652040843806280083373122359518997666930918918105225533540627468779004694893823737859324819641872622605769893873813463919825476296423603380555590244428061470191937336272636435454337162522885852968920010587870054393780573683443394582055358882463251379232290016481024340052505440096094587384968572324858441729002318820374804236093085694057686116019252728872095923822763676362675398145312508172162157020110236544867265855699541040899030679727989497944388334774728933950219789894008885389145182039572895780918313840260290416947353547278559446635308557911547857187001845441734502198988480502893622424335914321996845531176733097548505299494856812020046698694589023733850419046566491117168416364178663950881214105510465091421140982673923154903826219515696514836255270579627410382774846338071792426086712336938222697191447845589215148336227379258394863221430000885945117787468660516870312273592739787887399661594121999773525570482016832750639321169160738474805125082113659077268166353243610973128741139723332444170570551916051035246476814234486302922767722446669329081051186739312903184465052150124985053875740486298851209877887387050609979935532149273227944026992741339908965087939803634244305428748503907414550421935687683360926848173513158054928576174071677679998847335742926491824096491947435102659012929203153502719857204647471576712628370329446931941337107021169334504943753178997926693835913530264910953208343525260624252842205094025871466410286078627031972321606545523701419758038994548731394824578848265579118014698176062142689078168917138049682949939833821879033643921101493009195467160264990570510557916961774710879969443251078367767354859758437576469823144653133464770163954979468441157323983015951592766470756298438289619377362057534072006992075307729486534218207496411352725041758569137408905342304486031705891603215134920119025371389246014439135477940464534123659095808181727233479215259936175091375357042246973699492614249607052193983131723716622313050989463495763660221071981065178655776824182012730583312239587567939579046760397177363293103805086669344193714780020153716089893692664813975144673896688691786526167696030506484957116150096371277915237187960511548912734308206761109747081344558246587400491681284943687048207913944127714798133638686296919536596219822678549286771448093536738010737642504707725380040526513385374569912197160849887287562786624567910346828188722969801733737091329905363920002494402733517599053784222615747304195921175593362726847016812996890022893091499977186641497113282151747542203175595561529052240994735576846068481259912099756653574922411058130725293790834488256860038396126990672218214821407971167498212476202343779624259315792638771043733669461342244927091626791920239456605424175524139200985577795773531338925949791651080198596717600194381908894898998741812893821044351887024550018271191374876200208213034550848549966562370769032549757940758781227767318506483944146736470962632290073251227198150946268071198312381926544261874680119999124660477024031736697899271770388443320348987993468995361116532253752943382383340380729732685283771163945901571020057798754419041127376578384811321354281780869409285928686580624049238226807644536664781433481133494447640765757827025640902346947213707534438779633051131611091626664356851645258722647695800458943104397014934259689882865632815922164369049660732362138638794832305004343941053554342732594446540308406096188962136847934341048068558801933274585297156441260841047962674911966208429000201060351959649198010543961103387426433753513866782819097329336723399133085309953704745820021089765026349757140197704612709397018130612233670358020746058838663471635310866652096280078619095911669289635867145353314461497550502610152201245349790436586388494146138130020614391019536650073078080909033636310118593997142279604761585312621726629414282031164358355602814284187700174574172098896299810505798402413289175514671271248425763158161483951819397890547472798931838343548806546162159707805977565789485562553262552054943109373470355859348338662045180504062708550136126893937558375833986696785190783544583292292748516046224637118132099181174967863852459292000847489873804580339207273796234109172144599205968964566426363998248404960779795634042642490983560393121794557966431462773425897619342145257461128655925194276118910410319937365886488400882576991794054678493749864049289557445152029505985426789550241625914397752766881322469091831890805058254181061541062327058278547548255145998535330856565722947822738924449091308530529579360473834110965560911063151263105713114736310266218421861740447473994155586044790430410658079748291026915228747526176779558438766605880395722962963140811487707731106353831134821880469555016809351378298577736367415393436956017694381521875797402750505823208555908395811032909498921901636414628923691323951244096806706735577650876484744866155478001616583233520155049464136750683351733216411310317167808784982113049088783860150294077180568002598170670385485678017176022716877661623816758998108108350804421771575411219223357732875843508877309215669253685498676968158578405721860475789565610886136439250735064338201389447645048745248880053871529653480363273141610002807216917356121285177794817710344988452644260314540732890870622618458384182095282239437384163573151070218395971715039305775509377578451868467570394675648136744498279801918825446514847807678104247711524078409011573002348704445125876493133233628867973035027221051425919494224568870994712471188270457327252426864337655846038144670992626051867039669434024210344120700837687385033188509141471591178484951023097016780897963701222219402788161131646040223591609461859557935393843976300517666368034619934051588470506987904752779807600757029251456845814967501855497847505751264327002864556690559726252545527488089388749522907627954220657544299589496434901973505565848300270770246627580423152359883817154790232431886406905073095554114013514397974070869015554269619269285252881792129600201682155990674362981527831694729130181820934138682600369602018911986888444532357375560060452728648681620793858735748031360359863044682444987161365375111073188732479452382062966511780674709161706141296363896131572317160358109557297858033156039455696292334916536626704794151876797958555114587728394309967987713592222106921752045851942860819112077528192587149215547836100745760025538491855852424002742586779716745225370709068793303109039222443889575791791738363486146066680650583148967117118113668591143703772458250051949064962013937302085220639947663962693916413344273464089759126806502244055038001327445586838276051403997251485611939346539337448211689986940505300418129848145165641903865926359030633698309654815360128339299246211117604725993173621545318952396655840830663383135337812057960300521038684885139521406924282802926389287745391822311438321563292439933636011975242538275107475405890135574576462712068206612952472993219521306953170083678992313037319647561940601834500608161527233298238803303557529310398730048255583682088519439806769719291237717953492862302838451982540920785593283461340230603850031326941139963986463884808917802174219118135824550641210364541988030812016735413628839690619504751183626944084159497532209340743975788651007328198040875612872898681984507814513789486018589961470048394228464899550200354190175264122941447460455594171659605675643664649176278857848436088849970687509369311911007096284201145439753022439580164982985281652155113098133276522554999880232488725241014122409180071198546814679909371171365050664498483195043984976531370322792753546234702555392287534336559222884923805459204867626500321695898872992299123881635895391873291453334522949620009466288262350576344543165501864426880048757166961716455478680964262465973264832294841191618569181677176249599131120027076367644979736709523643411316833041131636789837728573112258011764225104290843558254153567911392866189189847452408635813317711862714982926482422629585303281389518747527880110371127590256557345117353017047840216410172255643909818569196356132586539103305120038856831745041690244793792649192179094909965350013774353343172096670460416195483858506899393769336445281388001212429230268165889912360878778011624139307393239276690491167979017078454527467641113495558522372619415882553510899918659649253554233416636652488856268904481028291821955883634824134806428240087508679693765906019952495633258051187368056642429159501666447067718373637283643282751477678852142828411743852722840639741235116636557234536393497880313422620820205715796615854026512347456251688954724336032757111883996279029390109380062865627820137704698214620014150659235056492249700833413360783094041058239637883087834402619567912675600402659861522782499645519294526030854010390368692961661434844332047519264391818367968099307174631244673748900204793124324526294666587666072140831616442797876224652369106594827573479992869855397493234132841260899478787972613872742150601583635986075585970072471586629576586414088390030276999376154810288106597570700819497131778626444514133405883019729735542124644102239085266802503964683496731246793665292251277394884211065349535480296857529298868125097727293489203849924553925514086895095321717290879871591500265654270295894695029885961905398401427990278477878621490632958998891449995391273999494308912795468158373907845437395106189573125451253062484900875420876468015475197787377716761452481326082886197009387398270426976120852506833934677654718027445845262813670541474961461825449257262616622195091404492139822108205553587814741348182849290033596869295467456868838951672807067457744011987284273256397303195999719347538137893159137208676373192620811967394704813471142159976675648864339527607149203609160813713180574243027396953631426012092313789427036965921130749783918623123552881388549806694608234697401945934701062702486811713318995989525222944692103123671156270550345275482278728681984579844621600457609508743802509240347152387594781470131837117351720096479000348301061090787683356138371145373385186436251550685400948240683341292001680602589074047100333980488215168668251574973915014111683086933163131899440888035388692976475835548055694845610095833804812660565370201616952595781209591678956658252544448110928403089243071248986969781001000996091867927576610817668591542331777590973511530751552979554853809743485206478118874592385812934922777031891646852608399040464600133241650749989175140697790093085855182200198747077819868842985041275666692594057829323117454847749527730350778248464947858925243781399656364864509664851215106341016759115024952962316885155131424367586017587090013219777377178836988111319525004269172298494556202238945508464103637709337079323072759039470797263400527967943713967301547035852626709564600810039735453011975663435914109854109978444675903890961078332699975691262507871280458296877965135911007202751674838357333185933820685501469007118446580175469557043599496403411266319953727817706319890507563311558288582908588926201704336257078094021862344496936789554964230382640627827756341366315542017440951734552736844719632301394859503429352426575044735534145258054005046357770617896604961846673308707744876580372547412580626873812676666813178871413846193669912438794873102054827605908095006215955458733208028079675705691144875087868211686398882579546674340724381454827616661727455941441757290798054976863037174604290515764838184601264609428997790041325564663303646085579083916218825298199493682872190032321483473130927565772052934030094101553764239763399677403835917263478060834680885831652909933492379566215488125065560390532592693071315267527826107685549997835025549958731878490182099235279598830770277840388767479551494916709390374475102692233630854588543601523858775497050863908201472329015880379611357078282949245841388063361225061039998372370951506746974005664161767459786839410603266549650499233813432940478268574774623887099214091476580652333908011483479737280604664917678607592155905986164433509977775536907546937323304664874513481698903640062562058955615130322812937288752779668379865986729033114454277243884819246088111392104893684025182357540958636458067999592157788439903348190235380148167191844296865871251155157486231726992313571144098719166182384258967304800982031582135093313615546517051282798746525604383806115881272846726009887245202831736578793671658176858939788280419730868726319905672326136057655771671843972931594980190790944484487049641512479392145049017140989278571010324388043855004529770411612042906377906767513755268918916850065232419664256857812268193554271231874513218362745620592453533710445909186006331185235092915610014604909961340792290987053203581231794635978000090178431541402177788556626692243005094554445185433292576790715308412119192587792536817812483913220832155903757303084035805423369757300895120388590138222860174296233461127170621101888491892399049678457498632391171744870546598291608129281277055546159438018061393471019075401010382098383335378282913010285600448678280953677466665236509497496706964922829822728325814275948291293645301996489613984322534624993875092260715080184573054788536129630220255216800584152087225639149055147754514544469521068302321831303980832570399382429738838757851980026433606048156464547255979886147707307781627969582232939871884427111487949747592742661544443837448322748924219281254182315144298638069610992985913515479004191014566386339108527100088215569689653993248197424670635155238311307783041683673707539399231837382106017645816628849399852372779088072186875016627217701630389543602613004968918061875101687924510728491908105517408317186621465110495827185587212466560357572356673481878603556256804538850740350555433668651700053656384741482518822957908231951367681405895538582412533106922493204507270397893374256557987727280215524893506569562356558213773135847694791772735711662949251197397958623257841187983813485890452425268000268854140202642038532753369488914329536698550569710560990888495099663891761740068405288485610806910153760036980098181528889724622203862869857031086897660869795277178840521173464164744774166119111737430380608136360624097192842190772654245139702892707141955361140782584494413039110380933623898330703836700492783917042468630865582826190997760333799674882733427479649959216026858676967062732680567100373035446896778283184791585390473894189609768376897344829000161038259557871613769424587242976226063822619069549295921621074999318333992524418707277212586600417796185394019490937783988567373890418037917831704122831198307698526157733912660764587731998196792587512404388418698997583820425394410365735482617079667654108723953118080893955900291114827485858875771783131940246189825603612371422472506667302810251767095083557947049438595902116569904356588800223274129499154107192182855683973879792368961395248071125366620149817935764810663078480232702015341219510664138714737568391597203266309601077291225706953053343310977830202213117905730620997461936898981035550111006018912446953593408100945429243153889410334311763501603336024017332399880606925153493350300138453735065263163523191389087192446686129113378210505120588762211871787446893706514550480983651029422643252509194337016017854492551104201717785780777998081822259676518991256472504029150894781031001803940751112506240760827068828992797719483877141879674772598472939987070808338652384049341762958265800095288536505384684540300006510731052762367285771261890694357595779103189232810054790721436002386100924619787659364774530378598231855998121238177676071065201312132466307845446147025487690538767488813086073621985053527445214811620790934657921660756979604916313245902721221395180464783247775211263891089939640992768025197166204069100517081630026307152320721803696348172437536157449123156556995446260924202808489816931364409382874304554296475558497128667417761316219033418493835751061492596847400444975186422438678022100476022456043304162271882384092228390149454878956143665044800370540975889928025728134757019675198834258648169374444608415881021865295967336673265646993000164361900440462537602625426201349678108879282269467920800359193341355525328719077580499244268807492118990471444118669232431285680666660298501211688694855295478807343932789474212020131239216968258477402982131922633589113077325317493699674083116350909940032076775377133387201665042889219230171629640820793784838491217847814238641528689680247868659658526772611444427911056411207374508208928640866565879438035530865438182465492948761031475250354948805768643814878234793579061908270427164641693313395835766329900941484896315151376097859281494693830341637779075257371208404484839649311910573152764679430722435651645897255845840219716944403212914754946986735921907878381223439913197271165912352884801177364266660815193801220601952908729447954528817103331618959044808547981253912943048814335482142270747410123244257892510755328791250897055961971295033432403535591962923245189515267110706657070851116064360694124426837513302502473284732206984307029124459764582805243504743018998275410840132525559311687357113070119691361896068704194349930652617107260225193755850674133179804422849955038036787201330202490718949670379829935199621034793286606572635996393837236934893513918742022067932731107888532633149708952222130204163011035711931824993661973296420625108792414861819052587325448836827927647230961003249813388387301304554696018870758464654038664594311247679477665285327178397394181711017690482394524393299554127101956537073513587872386154649384494761370019408046528903599287047800344303201071459683080847542155382197786961071714494769305810687984989531577296933045042463810335311236814880966823379610691075321312545481188615296787287052087855004263599819411906626578951520411625059899239240775936187118987707058354696870836365368105316921781185120596484116021971962055949933175787629532632373068306349377801330694871415262103091015036780360147704379249235358299936372862247417379793969018249541539518507158829922573503706413590177088652832282492232877025145730397281905307700450166482617057309009579565209845228438095737352918994704722665011003850347901004017271789608625525915309033559698467410064548270061321360754022162600005508762206908311201975851611204048069026423762294702331870844657509122805171164957294657511752636245030534872327450730763057476391702873739998494555250063728356142129592047969222208907371381584594807594870342557472101672555474012379825437452989920734892555393833307588064014564132065637932939510397724637542729232459323099512393785102268770632582878046580979294108616881069372871899088265757132482673580376954282701512174177090909236323471524675577343930343686661804678051698717752621053112743441862111868486674272632250371258519982111545299906899973180169501892067241481441641871101123327415952562500530285395610876689861252157075955118244214562544766275917752833543425177373142863607961852358531994848819566643030177815457207169517838427733179944584170701489918702559608071750990089488066720646203972231959355315544349176848736547314886411655808957500621868053329835800387262845541445076107235979021868303797219160338816591345141156676648213824843652295618760560442334648472229002599266599172845168769476136295282399985103677384335483190001332151836431864155668124215081869222507727275197011813294740576711400304142066123748388061965752523041324886813448061755418744444772825798383140553771246047041980448478709506710954176025172230604134794056152930149443564642853454189220566740544397124317208805698040973462686845155659070887371331178315677616379211198305068310929901261450607244347035394156941905146882008171748283834419404771496223289206390612548573815625566642154599314117192887646440833859818234746388039299182985080032348371236262365305727341170048096320423764808106506095065963970615626347501691111467908557868300887024399935256712861842761122156294988312479579895413299604215342856568672947695564708750057581299176913602416996719983886693986577980981510062389835998413960334064769445773805846629058767378406097518472411901265911175115872529020238519216562195213735937789877668857427294086107241724150627975831295744144208097320550362514990903129271375335657212585615793159164672172988612740198381442930807340166556240785468991476381497696632657016226163486271869885201694289543318476162346822439821791454258558816833158361122216023521517485509748765990605890475087949001869802687893780802066583459628476912872435774650501355791456984157856179152441235256993097839463755770936629012547650450917554407970221904566607674175001153230726574648463249823814730864916926852132245270894358515153757508862469547244927126780100548849914604189706224112319560054944778760635159921398914284053542195311248113287119012422075565993976679991701676905755143527306873577227249209928372439152590844353506700834076180600730690003296821659349901694944147989115502115388288626543679963555763322753177758204464750560447563904374629643632431429749421224401223911894012487368588803660245272405294087215602019256852646465376511069619161207435673298425052729737795694697219822053606062624520147980135365859655503874709928772921646220412230038795818112292920771102688662664907423024811087600558067728796256211625313783367963983334340755027054044609844379832542418236178011676044808246201372879443211316002781822465668895376204957677330047697463941143784119032139296673380260945836149764847321792696042761894317885504993831980160847836896582398519181529924894338879794520491267670662687751928244125802484696753070919534393657644385594966637249386326707385396910375086896651027605465346378433339668692376890727668367344817879520989928840238306698700394959325659916616069294224987244450663005645052464813423594558698957299478636939494869149372865492260217056321632802742385375620729699265916205383269004799465547975529521600772959705995285391953751010229673743253665748107414621032123080580043566083178558129613247288322623451995455061787608323400315910268250516139747006889196980152732017717431030966086452661286278427076606594903895577377213559402483296244994643548961131458942613937638215089688197526853435311327746120523892823021550001524198988768818186950889134950122996624984529706094387615135573750868299335434980914467299621828470529209335821494642713490683230198556033110907980682984782298655373752066991065114934062870258702517563069870442499833815638954966270291256509626412380270449491588137484155698779340747199058469594339998553858814586373814400203595183226665638100608219350206887487868721695439679619225106570105399033648755939586239763840586371030088835584177688308169799619412275705780515065159584656115902447876744729782779001152729431409520999975289765269634489239519161509135520033150477713180591906198483639037358185099225513900847340179719670723575194682586312399413437374945919824370751549870416258976086659518884593519784785828458863107907598325704545336930393588791197220557523707205272003826933576109606854338566398915621748557550738046171304727191224224522143879079943041640171364020709397244267170639369958140697758886958812600742863054865139744331321271173463822533101120923435123813150847012070258589628372378877206360816090860576854232842914419344344986605115817302625542357735593740395961098532431061085936966031029704787531502791463173081616393481985035588056819280816238448537579903530687656082578512254126300508985753643886143712502488065952004171325407777732226851727285966533668618783939030293563876604535128151329632484182671323456649279404476400912067406193721386666040166901432656439299857596486719111193777480629794834300951084299365901433617789774392218554371548964036048651118408950890548927816272541569658007725793877852432785776082927675876954033759543478860838962773231044496858255394295683463655692270304517623560390247040932234658189571328652032918091945994751363001625619801352304350425167935819692532077831741530071935576369883941191086695811943128430570570182689528487548447990717477002247456403924646661786012257840424320306146023495586529456336220508889410779656188629548942434939524074705902752679478319585363661163238599723479733289576544951230579801071887768602046744585284973395450533517397541177629203086954938591082491931110674549217323528278734412117487237378003499973920879213316463820683796709375444658351904945822000274655258154981855014093532957918420549169471281306054273049717059317313869306466331605223825730359498062172272997395325977612387603494749473040662836601488312728650204832373275379759807235708524737730073161469485115141187473901652772255399066328586614964188954811153825076144963423460007637194269377863786465915887866158155963451186849731489549865853258776352742455082780920079965380697409022898557079027962218692649243272710432018472245318758577522562727133818570901292841796343664393194138956445799246628944182606327010204592802137064146281081247531181864957609050787171472816748983714874370302305719066018595974631093044221354702275177852283991733298593589576491786272779784217255707922198702905621627133243011059263517575795455045514315025669780660311694179508099678478780494317186364007624504194756449148494442441158415336296656745529386876171960477841857239639894248188205236285114748080974870015135573096150185779009345216362830398223128179522078504144406876019518022763902628657299444089273997081872064658874329039345261505842921918197878433123550158826129574777945067222176722375171822958033903695528100947569814357656539196143147054012576689976768609153504793489392417281396108287141029375748093107383824302963939762705564548134773473385870090686007327728903579755624833262806090424895632945858434195872039603147446333727476352975557512353128152319347425482145833564366164275910805130475280135801153736125401596455973856442311466656897548161724188427265638181378656256500702765580703316532818012021823138121014985013568702558890041834202704854208514565270412666954906641040767184219003575013424507407785468633790117080094411962261211345230208640920654413500178925207946023198980123065902316919632973209990825435703792497155370060025194940307386082234716133870555919246069876725895895845962279818598852093184559060326907413615227296727760702464645175296020841769459190047840856782833355494202466864402375427271875477284488626864713477836920926398017730596829588969958110350933244707263385013131980788085264338864010378912766425668950228577650663270228682762644811211330387882148238721851240869543535640937650096530982549922735507924332845596867067066888999521995251590718214451512940071302453535060327733692063011919848452502075453415598515069584095935389832735104258078873495815962535743746469149228737985481087548361453252773136221024034121930601089184547858119000846539683784942242335167980554728335117638841923914169451937057736577777091893098040323756349500185678027472472247914724866827070956116532791143905310451910160506793230192611543643370060398958933884715210471255831156664633411905655530452391321400299330749256033254673357811883464456582539110686738996720382614631699101228407290976182699232086889481584472913224010543311775125818590049288771308388675248095188829990873120359737911451842655914681324044015343950621167987218715899355725332960193335879386672518348610891854322662613087707875833013275810424234476429973840083346114242401720728039101401163916723353889939610244901218490037213030779765054968761923387360247272657272355947973779567516211230587132031630859753750331063106907402832326371031826138775574667690142116967371545010126490229086525625148762456471284484934162241417377737838825612884010975245567616746888461501128565566455251167042795987255199912240395896434516736837375764566680431104593463807486476455734871069212842522789143866634360654794859496924966506865362670658845091943934820859209395832704504194718777553803364670269038080181149191792344372769712930535874736493889511474581758630653217080847302409920420675782013944873994785661149400550262427950592319841867550789931037494669875968119558299843155139918375870693246418634574794990869146466450280350195415968935475834021358380397167954193305241138320254832960861265604216752320966589676316980473023735206841913968295506596100429022817429592141177136465054640656125165043947198795836607306381556961354415017253725548313581767415828646415894889365990110457328572699624984495907726684672748291758630040506434563897155814940802216098068237165626966130470387120772977798284797841194008586061421244271493286877362347118098539500487740453329792876291695787284972144883461367183397753955463357111282810506571763573425948955969004808498192466404185367083619361148127939981448759343979081026939997076961613105763912444012337986118397425927945949015408002652213820444378613779160354879179659534642166886711738550489100898680952537396319146911434850989577631737259611395402594646572114200829741002585835968618605044706245750459228228791598349623617770536921028994286270370913108886674190333418567798398160128569595279828188987246411702681321133497929507967197319110591782154166056101056625035414528973251051005474439734881176917166165814328341563620035641039258108528050760381907071593375390475896456099420088883288470430193373933392872744963795569813283426474983072219887672516812403959338473346651603260827725956985338693682709017256081308599885506092335099670448492308809414504603143261732661252892294618254707745321526654445461011098179284215478541129278335785327649627757198469780014376078456083586310850813960896247441234730664128432270791612538653921130560145713952823319604616137245182374459883218155867889457351129022793624937703923121783715513061480917794465485621338031527719671425275099306734306629309995456900149453498629226375990681854327605697234320037161723827131290239068996908199982219008362870627146021074828513559626948826259206749607173463055606503919738704679096040944485093923373642069049671344579321536903085045683212407352770353643047566977377244742765992465381441283735294703240660170274296774624904046861984082909128001768237855683118765547308449563708992286582125374749497094011137899523932415120097412133736294043099638818895460095318003698430872015623538446638714835950325762930426572804846769176536011152168344084345715732883149219714836649331834677082905238700321248559393984739254046649397072856570150354733182259441562195466672710330175245609049389822782037491795342238865320361321107791514147920693972531569913784747463743916934736130041421076225329198271087642248040020787277499966143725987699310234760953923055454706281411751430234770630907034469089954011762724475272798044005814438016442877887520278544724095083761025534182492029964838078088735185270019918842774423817782765518477309945244895517217805102670221947762764427803948831950120180665318291350398024377665247594898662903095172792558957420897091165632339904244907395136633368254795728563741580423946822350344040768832068925327836694292447626798082524741390316961806842856858166107213366589992736650241602124257671341943079051981977459520405778597822642382918287874531582005686177729133518184657245362259308073523949135771568728722261485333780013938924930623945904388076675912170607719759903744446878200229317409877333125229599493381767129702900585788237566737715109556179026503521594777625234327863577605134118330282009015917849044075265904648969903795781285860692388799269763438528542417922778977366174096759196847492884872056292359776788342403187722571230996125949775847842415082881870871396435043500369340830760135471411404300205708120739244417237188492925361027607192441391665883521924715919168393682296386732654007412597679098553140539028422082973453651167596583548826352565235759631272104713539445258238748465923925321583695220252197405506172833945962910704678103940893867729187393312513421434278671061395736059206812938727320157123271261874225271060845723133893676664270649548766830844619138037594107957320585298486154578385640796982795807146379282249799658412794266747598267745768311526912448886690436861864933035641185531965598242232149582217447380193770637230038374178595188924810662627672174028069538321312394757367882220308333822456815059454149645034556720744480225802851893794595905445530469365721602327012539274639966384157068216003495943980182005919569604719457105889320553988922917122653542504557627076523056207420516113060731883912178254396666734209816522969762488285034717163277401325347020370930952647209644998663776184074030867446048980546892857643280414827829318717828417661107580509039030229548453005346490780896297309636731025771698789463430362712408500828543116845783976305276997379579263429944887957494305615827391450707383644712190005925025845076332262163132632284000013498726688892931859405251670973771021657200489985639914019098777596858609626261975695729668036627363344906148936129283463163526424642862756485865013944378591940239331250209407439206973578534686667212672104467772440352180826369668186137288399868284486433502783518776722029327858311171128107882547347553831441568998270308906589749301765251169591077802969688620864321145945283754107418730433679641966627016889300273289561948636961278606691352065135149491242263036315123106088215755350282065139733384702930030060437697366170304263093047773891583376032134068965510821688579178170152764547404833832811172635557758995777542210477771365605688294008923703766728222214111754932511093104780234806018141719993884046984005436656100793730281849188711540336470478245192032355222498460796064864276906125902430970842739012302776525838691132613499452262061838247180750782052393136964845436386385355622111380322080736930897525088420811565319441597009324340904061668503347534703241094485636354657166392047293100512160132742949715775220920910591503498414987099155066496094657702695846191036432740789505282120013286722440154349733228068366951818583578094154753765797795993857617475038306829847625616027477610417984235907526071622840249869600718572661828044888138406699348001177987487913036256297830448391067710541514591390968958415911202641657455006703454893386324502799385688957452948902260090776573631173096410197215500147205118200063916936453712493225794779765691337818835614262075379331554156806106397052499064071170520312784577561064731100873778302017119510243445581359151571372718940528040936466284367321944183684189506235039298419821648561979226024930385650920364598423194925400775660775818660289288750177528960216652740389202785189700687431325202066051301527104823987256856883026721397001382168949907129426833760412656363684181073471790597705907813283465511072147195513695337559196556292068325368422569557115267021318116263535066983594145203681640631312478103538259658991720301464272203221345904861182689680612537140829669518698152871177873115028632107083642439394651570362887385322002522655768731186868547028065451842229482714799847575697502496375751619328680662892027133966981353479775711104160995245865253618766432892902271382117527400349896932145663176820629599791644172914396206322615375819737392152659189457953593707205727263189312796020464753220915518826993761225801260764543248455994042633979190322731286240251601490718985361752236929114231998285828782127431202043268157167188836788250764091262982321436630417619678838065320284319229090401719475212209007702974502441588698979010640301714412382652243530817916429930954322814426729389770061281267588352116356056057299472299001746981860091908501426514757578013750131847506461650105381821738052983625358094615088495084482829295462126132707538530423660237584719963439299209908814475262667707026032589579971344291729405802855621744285849473663406418310256996769938871981774853519427257558196389186261748855625878022557022005653161147389236550494765447065681479108131482124108360166438780594766251894425310863723490672390517023767064351137759785124162064957848339568059740388326071640012968634934602890060950412525723509017380346442389677575934267438788008365431834751996004469501229082238786042560671300258180468596326380263492667673348800604728498214081495311194794854017385531696321388937344246811707869009444238180928733756721047926831751749173720145632501142741353241615886066316429300493070939093209091944950603368093077055850051511466130814020443701977482902287628029814396157437970933534870388652522215706587806339430055473067449030935421240653721206115113411845278297969196453037826453731043040952427190997296456953974727835275510419368185001766888257156244012547332540588147217589913258376691398372075486549066878548642310642761109160201724994730290072234900905878919902803166917051516374150179627185402906953205249390099713041467702226477304906710196952937832900536158695708345190492583239894019956670160583110730453352731980734011382950155403806191845967574070630196081405153409428953194479376718813451733092077778945053211442254134568015773830211654358550796314733110949040408839022321021328728417151621169225568304989500799141380418529832293091145875305748200087064855855047638538460336153597849229907725120103177569827746303649952547371550464492883189843206395325566022069907281829280556086253927895739502286568020206812161154315358542661235339813739611425581507666155898698331257989481519964817644848913626589206981804290259068030193510326568941340376581024058253388987624045093396769817590132031327987037770626866308470183821929197718231417191863690733796836359986459319111804586097450876596609087065016982913601416010528389892479392623017215966634492347732591849028109192037348538428709085675794079855395183140218386201339454681089561631609605600973432854178432662868171529257679300617710080618975194382736561878215487123513471672644175411680764336403156384322245513697447028001480838573746433106902224715270519285794082491835205098697987529920213378773326348182866359343535427865344653866405859539875646658185942491332545011092396352823862563781436871381678960413525675213527387886531842695708883660115750984044957684937373717914855230113348273286380526320002483428790273755130290678494507875500759289105625372641577647195876444556261910467635732383169478452058250541286142728888681391652267147994652294421867265315525961666735306511701886657610917990441765114234184434719149008566344977460557207233649086790707525079751287740315784704615319114164422654750882304824233967172428022869471951987983591799125758800295882422890538744500047840727821478286759455765375921280542853491214865824809008371660460035765960458216675782527684326169274778995401894437860826460959172788337061446306361906070067599125818144581361588831555112304277375715917342619157321226907818030668471609968983281089241764693994177933998150634354660574018803039327972960987966249111121376259154812126629341639500665870606099510492016771208876539985385137627363362944232713449317201921550996064138084684114899375880194769327113188196301571826362560213262376945367351204444827294061383000664675689736793122537691479459005459567302722121806049483661141765843482832895108707527523818313520314370646387793447778982392745174639016118173442203999146763280187910508372041372601325424489761816778420653682477873576208097035071575706197400058961361561373147748998398003071812154329959075626026500372749736357964382825455418822808994937141334788203694672117824601704288169139137558459286318769691655444275264487267237631864275937393656450838605375318514764140514450797050293380458184110179797574648262497811244276674970731693190640731732133907775642677363043626087009533695754661264466793906830194710795890541964513158838849689530111740369803421193784360973271833268591999358382470700328988648250222383636575102897860690344689537400758369016235987264739406327720632640400895364646480688969773951352353960428443079352725757468505445638653501576343501802405039999218965582218366282506016906870066491600974105752002140677670349320194829549507400533549518475100644804707410946429802580637262526533779761709250409720797505120622637094795961509443799110529408367831638685643487612043253480420418321485326637986376129134306834331875307020629572548618724076473300562047310893557901236149954431042905502100128433088415935400946650032263382747575359029392278394798553135631908576693410069920813482605182665429718194965567276692604572359647394732159068558826768800934937193642538056477677471827220139955515219251217021558572278444878654465484227592408806217461165450481782402729806225848338247422688943466630098233903799332691661468785624076550542926439971884653703784712912943361462274580103480161402546006402483731216519004452242034362971560218291005641030167839028875766633418800183943693427538794671004750511714715551662352275439086444325124119744397851879861071183890545980760717634128499834990696446438990207145016957983789696388045745922336775024546336720344871723967650944873865879355435883901979129734874546116569442563866568063087595891529133001605955753819838540998747199364354075390810815039257785446119961917229462920277466401219638196944795379819805105961178890097172141538447286122484371526363912496854939847522223382319563544587166236894046026720747843613527662436462644698417442757712565808716332729354774188557751016386416609606415168039303466304541287016696979184489647118404983191327586092040031681068134320155371091619082910039179798485077112319877452433471641244784412463321992791665625191786994559229344330698675239436649376051432838605156310280588697460811871674244223011159870048495040080032392905100167466801105927457607887134863434045175724101636430831024229812981721100521908819598727684992999600165944576706055693452803122444135440359882816967360735445567653738728433368192461437136849667937330464330202083968868924438820583020348266672831840922913142473049910362843444967633292658942403291476187712524130956225668709440260145177272298297540976951751147812124842163793970494136065757831110862798671244282627220098366165646407545383166224837724479933750485564608691912738298998521666533787627837519648711451752176640973610879242346837337027765115046737465067904993563295791840130667059164162062780463682698810605859693798892065794585932677257567593764359887658649368018237619086857249297865140023326840076942226471845373765578477502204644527226208540706951581214692762415467678534739039537039089048964436813845590040610625086387260393157243433127435012920354572969570946756168318723762729496217306917055856002130691918748353595781503161525059413911637315741185329460013867033263677141561382083833263594550484039134741595962828563764823892070002057378352162762240962869462051119262053440939792092285607851104143782625936754943107875575247155766926397728828520085690412228147686911698389174941118634621413980911889773889103260834924132966131055872315429109095687846666830024152167877947830687364988155890240694755347246726126465975729157639336346494341923784863837563177358592408882810192620404991219874818182312302259158425162961427186118098829197059498430035263272726593260906445483146069065579028586664579560382979288458642818530395855524221241022243073221036908375953305187899541200202797964716569514265660462555866937978544588706540155120785434038545845979246222976383453898769394695138693344292679110596060849912423495610493482245075659487577991415070541345618997880271457491272925056729950626344587766964660935479039391325151856201200676259529783642593913092277026828116862512028435216191392339314011697926774904363059411470005426939662768773577489171901977225783320253314547967279356700930744272491834603871374052948904372985186320925415309983848658950523768175519256150379389268544088284488583829773542416368136374441488726776877348905797907696979228677376898685011991039440975911874743251324501212065865965576672324357021791022165279757802106276555434553984163935910969398103312237942983366567311562375396537462599736538821386054291925004581777042947127568842185381353595228220081273818025081022992815489068304297626822981601672988485463784861922460258984099688425142638047859092207315738689504580849599689089410602639544861584142890202684959905243352251595154789016880836844999519163644009376520204915773961685731766418515444186575715847632725291034088009470280863491863850267880841042213409307851576650829392066249065992295880216906887643773126420380860858511421749062856690230707809621861565895762030280377034340940170401788618876311500967740980147260853630575193050266755676770123932511225890470672372715656687001503015948131982384764139935639588681350054923779929650175290251398125164770559382599551007577644224992576554143023060368586184173667037936294602477630626555800834113521700059577927484530375845722180950536672627402845580619336402763696662478710277545556276450304897893554518887204129743314370148345253704424268247160680409069306876720739842500481806698874443310412648455872672041237937360255443098083882004060586408653799667587108782454031622426221631372238172345168684887144177447470717072302334433699281008585726380399150512742363555738403186960897722289374358772629494515067461231795189714286743243252345688607747849024390264536752878047590988570789037647150794284301842583095564595989022268715617924138902917372146335715231754317569847325622292723641582317810219546081162836270036544306745872297826373934148070721678669488188755629159452949438608980207839281274495086428542604125059692680431904125249134627965788418878943967009930763415226769557305650955333316935433819690205685515671839548206077368784376567814401808338206293751429768368880250043958058033701513282472631185134502169582353541520345746702712894035602053296620877758975018382022568071026548553563630383289267422401235999441451178069898619081267736740167141202514251380602062800164039695220796376856340837260813286853325250946518511363683795210050936872051033702486451025016694454529260505001390488734268955686335483421457405936824464552684609539198330226916429064317197166312620970521252703355831828214977891978838518177586949463912056871712883363467583047943712166161811136833942354828617132064641042595353290857998509661899459014867455279755527826236760434765651252968445898176582102081999350682534230342289912235179824123702540897161573590575014332308495059852662238468292153686520283424986365401588633170583823360796530578235118229275492001120087875457653194117377546209800935317163736741821782376982213831543447073699702300869924644968753849874245265248825248659321500397664245511015141543819279464130601977353149452921337360243338608442319068753637618917326708163812739921501442594630220482487230264806877768583497736976310041034346395076098348562397283523447499813289286771301623647276921282738695613188026672161132538324260735984282538848997946711102641815729464536639002227469883527633539930906110931508914708263473312691272481384297134343877712430932747367908227933483508234350362721420287181747982911440638279008506952829819705388051652538138984593563599395358962964811968496244736252890437558303634295233637184978807717657708064194189382003596546307942194401766528221691126248953300285762043246264786845074214892554758411153403733976085415325879044990061237823709652960472684235000768666359090025197655709268221320464013762793661084162708915374780828540453976824448978481663273904206039329779108007012048646532373574276578373084832783333039567086490355407572738708775561321892050648798234277889470337956898880770417900108552429207509946334136895893404423308007252962398067131883790160019058239019983326943446504860953925204654220846412505627672509968238084060663218640157956360188040351773622867543190881790544074392076896373804449939330459083408329469322981132125446930414091486058120867059842566745430803847567099588840381692718521522502031728651233272298852787221843695136616812738545535713858389208893539578632009231117208482799742978844923926221046418534527079328864675288878010832784833608173608706858773572591056971786824120351662274042606073888266692824432317060319242249756927485579164723222254477430061203783695499450070544239119485306752758420873541292281761551046298229479008250804483603256932547800952506385354836892358138129565860290020166262834782970637290063733021385800680355963538085971703533873663017133598399153725076350514221239779472780375979507010355424668175644164779560339455806356351649802174193038005305027866477364851715861864571322721617480568243611343547823650841392069834260741256264842046662537840293070211934899059685201671550410831442442720722968557319059909732514150886933158101696111674683685675662575593700444108169982286367558701946702915775643553482087616064720516650461066048518625837010858944384008971457203096093612605363638093185181731246319051528922512416805606230235725458117553551491395777449461513989125590413114196299623152085788571412214497653530877894908099311935992389049122521956306576792159851509268765285289336590105393354106683379643579164606076012088691462364799181036997296198170596490157323695139726929419995599128912187715633396336513185543299018535778188789715894747410738756818206498430913933778629083302550137863641391336854613421085502465413808929390425490671243922373785496210199396384409962002853767536040005553734191698087987914052672476994313998149485214337093972095473453361946000580676757968472302274754442801923428986250160202770146753139153742114275339700081001919610333691908391597347555680743280186170221404243114659787815019843145035979647491146231157826979244542183478032387187422126547425825165402305019700065214302324335183379138417657511666746096853708404569811109690225306726356150109084664973140270484399369731531764723776816910838785675979613994887549521762900737602338579596905020534403004796501371494473883294768139676497966729871816069443442586316795267659399488846301887388056559589690945316695279154143867067602526979863346283796857966345794171503422626412311502464067388343511657689541616789476646870950354746366314542225185616354120701537463372744426312257063088095777364791427963133728260593037023981191516433160446996788077342941015000249182168184991551000594702982740678144902654808862183114514250113340484303661502358768761311292165502423793313367056596013658380174833512878056621493032879081571135649544358997938716135964060271002587225279412299558305275755262358454297516662396512995790443427473404007053145080924050881836207956157356156178875884140790794405953308187326489396262987281251421003044256514788136366189203565716834683356830861006277078810816473935481463177370647086651262351024465130170697056272682133552476237709712498717092582202159919275140802054805004789684198808995356524167531770368819664991169111949337308594435130240487295184736783692029520716424677324085813226099911487408071575680135914873169496178045213974677788753931022217124338972284438346939827163550709468390555060666218163163403580784823301529071344251431413501305507617690696877407674311358395996745207769765140562283192736289983408502204202423050095866770843030083760844461791366616788351423753216090503445987053582880152280059360057574137438123109748494024054812678143123692919913698447939278930410318169820209452651317850756230406890923039229485716708253922261112145655727174163346762975244618191736258642878481518850210092604240530988450521323708481670542108087283104680267846566374130512904974078526809795241778378462994022774688995722198026668476806635107087694417119243547213827268194952790590005879221998950374625835108511000953963676033459726099168167757233508015401143270328359370422266534798611148036033378093966509560153061246935468116788399821748644577826776974956423608623236927538743852311893092243240469364821304810031384215966580957588816829518146254606871720977902123428604006762922814373894885622517780869124632282168957880148275358776295048795107439927456113377159347185961098447688568008903275642105095844645656760302560424742268717432800133415820069794991929751512941643691833219652026906122727388850113670019958638582020888496870210321744190664953649583415186382428441912091051513340881707850324136595586218321512225848603347043052255073309826903217798938905596192984696963431895914897899861944643003240051550747743019159716262973130312305238410874930189454793463363543315879714924486382458459894659695587045338226603125216943130138014356910240304521785384538724819919051183177465778053418100053646676685646918094470888660344692526765465302434203157791561966362344964030398119569134757567254275863588147034582843685264222331087685558469150890100852546309699927420283123062899741155315417743773461419360409917679794852642190149333393442591100577714313765919944160492465085295782698653602088954660326046368321973192506524765195413700852386522622745622422200134523762479918538235410429340018821706601100110454052490695340230267020702610942946549247511987097646696909322281622418162274878764773385929452283404435873311753050899051502956926606497979911154411167512904188071079763804457342398985402563139394869048170017970782113997333018675561899573120626811157919415893771976399099773344866583446279958536193718072752125134158881622427131774895812984972655701760503310974576319003987950609815849800744314956775724316016816157650982099641796030574032295108384302694502912485553974511036677462146971410183086157126456035416310428503773276564261720932895398914065667371822136907075725875092652366602084719738771755094932274677746145068968519215179471133128669566996185723681964709140026648141393872068611696453086400368264084160513563828439919607995565205361933042855596793083185164803162752738931437791571519780046520809653807490147148201673241901816810066898377635534969740714007832362472794413955069816489708008180332262757564734836790267059959204858947749565938608373464019412142591837907449964540893902031653217007305423438974097254171118258517553046085576709240704211035906766638512336589661931317854711301606846330542188038220105765835652179965316234057222618559559366471026979845490471296667339484106543052241645431902348071797701468581775426304502836444695699758954045085786614949252827206429463133441324252088607082781847943865319179916241060264547013061545783656366736888031085193697079324395742138258623681656936581310126130463389519244354070932744488083381098205821235264304557750242701864381031141734622872300595603550277479206607778570158965837147988095189562503135541863402503565290732584507343647325276286316439430484330104173486782127895204764884896266975973978098711755507860824046072479619486525330641345061329157901782021361763266728358222037401456619278033585520362862200193825390852118595195915241377120427405381095849293228277319886823090499869928407627449884336984342434670205303572342570341317350606742894714294226435527961311644411320383598413010558951286543560018325258963591300455543712741165747960419572520002520069916586902611974785835160381863655243621023029156874248170075886898889107684487018220877275379963882860664775517497643206723641752750282523634963923891585483835303758575042219197988013442152399797492402197001939724718987829360600262642882533470996082724437062966664350290435339875600380867178625378013589301831727555384524368198868189038326337246157477629003805825741885239816513137779978847823168855375000085489465248972705257997133125464878828333783193615406365357273295682962511677159984174143335760765175315986269251204890097879347322679577638148036987871259389741830905507133208338327719823112428745253496683057807878328116496769231369767784765962749037249881523877841576993999854040885257527688946042807358280697381082408304668099406376610964681771092642053028071754937268074721555562813186253785341937500527862692303241662460712754665876145381704481929122560111496409585208882650845480341862654264282819676636888407240663324663935689105610035844843501952769156392741399977791176229943607367231364033883455226344379566092942130284106026321165210683427762599960416502671730782443416081253887149545134114737652534373511032106177526563845415268359842478537238857411360543625597677015689929310633200377583323399391994409835828050408218051170133945085183195396126939420830169248694933811385945781682857464587319013708917796250030832874440894827773503186525495030984500345578934029997009527027490745990811636097374960669810849719545451487121418743457552493570961441651104197741929204200512975359974346274659074214217040725556258029241547168068839979782059938731692330042675029475800053123292592212104924605252382230676561238228237749952600799323658198343408342948908152758050960655864644900267583284935284847876009738574913967546704101913942810572661226692916684540984409703795169659539722755326642831489681377474664518948487560931519603362716476895631232565323989077896138569750465522370591837140511991110717598579285370619105885731607937133359882948735722782220913643486094573632502601336677581563016684980202915850742229569416347998616490487376902007734288683276821319832210607112990695791325210795312353219867104717956171288918771279475382343770436669424538901344005697063831011172499907401643125224181082895026614828091276425977150815189940484964379893301925014888320834821698148216997619811329021598006818734712932501743242955913417603564194160873329644026205507945963275239309007265561278391081223687481064361557255174780907680333978747507134861793839466005542770869802932439386273789076379821236902488652720872642955486172234240839575471555167126003180720642997340020897229380984298965038197091313164499849356614438423806812145374609051465016959871968067310057214046144121217979602154517968176536423088136058631564285630456148348392910685545761482826378729276486134333093786781347738371387291792556224843458146724161594573657113471124304262151481954328850171658668982212872264966244093816905797112591462567463663848959516144873991095652017630716789092633995607776325001262745524286532790459430245686257965371817502103052310219250306825923528270119855363237841164370760162694562013765147881350562080539348263633814685541260056286646769104460487779753652635213371650707419585983090360481883083192934823113179105202228686774155956823636926282358642528237535200284918275683512203843434287099103531521276176819576808068640493524886259045124517714119476415530141933923250200644725814469111550840283988428901192694557360726585323596296635025654967636440082331722636552249041370611749761492072403407912132666475447605549835664707297450576527690712079489213800951791349622144457841959338788577538571933370814806250195035421804199158934368279005120994651010984184128681592800027500691555512331307872696230194344816462515351478062536045983378780074586029321473408211397528260801514787391322336028375095215565421729882170589577022184072477674769865323187501363212112085517922303400367861068962898356170131256872500511419197952973741815258248357939526397568003004764888496127829914428949400591378775175828481331805827312989089097378550549615411758054619069555386972915531389148777713320384504597578323578337432489645800105417455588796285313099533652417128260345883719225575777820951171067270348120049006170248950428611218807197997696074538362915442807730984002784325039269056321720056346818901656362734759856377853499027717968924741524383782716487474358198924329433448604237046247214066918601137459012152974951655866982428656966934379172075388784279872175363402798553708165694815428564105258241055823747789327390508794865764253380481739033086057743967560200253609037725639468475632775106230302571956304819338830995922772017379853010987678763237105068387899870858105316796806510997154764732000584472791870425705702449247203546553054864980060266364146570881100293957270274543888020123224559094618253557584005990826344006237245721624722117653685378619489502298880570417285795476641771140261487468953610451312837483598102173774793646503768610065946818749103316999082104533963565861050060380466636819210114217247710966628649299682281195387343353037032354947204136904363253595971823107793593005911990629849331006267678576305999264873006453566018004639811126604989196582498226458057490836342126009975340092896526049841107255977470266678550870118054392324588566297317393367247542355751701647877156132889814956087476650813163456821113684657568293537798600291354417216151927298399692305481056230459795529724617371484230602030455671846887809588613100518847906110346669209453173632428184375989653242843574410069311902776484269447537734507823858588135507158653459859775319034638292503553825415045456367883864832784518222070776445106855417470794156003013516162788919900265053901945225864430166793844377036792744196544188388362269032068885072690947206986177155711961050908728058775207538493828091371607610561898677734836995806102280305084029512416581771386308431552233309606516871037713583367729502336839651835217090645317135776673845389920996686024418764330383440713278871490881514674037970096774503147221687572979062943177206110281691832231666537017577783690688643449260925998150427935160804856544999551821709744866396154439500433420938580862428122325266860409113140239877177226448362322219922756434706971245365106462831885319600600761840871865394158252725693114595218474825930427285190867467282091273951824521855819602279537912230569379688740865699271200797071857855979365262284332511745238420779510283445599598221566742921655105170032470395485852541853220421692254309369515034770866206152278904240833503531635241266453457343519535119548217502707854047333609600816537021072883365660045883879994255744156800870665746190316788840095922929321107084508414195473375423519239285877265480705350505709005432018936534894301322160804312365914439993918524868765513801053323900280349778984611474641545373201037889854391804220841823428980269602522418798992166944185782171323626706167503140969851180859775676923531754325543542100536330582797053386093845791154071001347880617471656514227627959360672289043120346789281701786737341590948917591176525365965673676366876194680704150565408331994217884643893809935785918283771407924333831905095656190751004004660267846396799414415797788898977067028315526496686341678072761582634200656185211907379381058921978871102154160076343675712840912357285420177932245606006771058225387367632198754816361932342694984167331727870272021590597893702134776714044577209762273582573064300378704079173320553169885357239267892380157940912207383264964164668034218989126026993178028746990095216431897430361910120571569272165355457411510247250895144082798292054190926068657928631214503051813303816660111462625973277121948429215175557851515812798943913730167724670942489366115179840207485688903096207710466604297639434748585080825669489960241999099697744746970744988998517826900543067827190533399148193243121392030411846249396037434459895055703288919218950471712604052667808843310118582983743176969044511966776693582209269530048709361590721876585514225446645303786046015690924493294934109422184432814983259738132812517434209687047620603393427680857546287760442772473908010426385186329894333157706664217492481014254236647300923974674835549552472408325015032266513899797887904622636673176948182283804319148385507677985410575912302538354885887037844014784616421724416561524599707666846920136176446046413726853203382300017448534048645101101695058250275043432685430344178053951464280495317895714805585484243342476314988181727787272018297080927650947487460391428644378025526841859064324222060888939123496268315322517184591857397946115554040563921312841071770728340206175744301746314361844588584442184206793414801456407233221121446428287970325286781119126277024667539718056684672250113404233444452247768807869921582198115852430722142728137646102874768365273890718566308017449329924922015130282696724421603709954506013649867495254260838036147494780348440861402666680777798886676856582558779135200154910869569751022332298796103405851920185133640387302208205555794465715241843392570802786059966249662300857769474127534717663058270439321781289602331063071026995335524235939073632249553994190245379186870851136662441453931865291501786656234886696968732283242109384284143583707216319917879913956856649851758036094826784044449686727042022300931115257605659906582214573162821989528689869562350049489755986083129786741750642117958929299692688760364378825336415447443848149333942876631767775191998059688881768027822115167637042666033125408925310133230379242678335146548588125623394077344279014535567782911756786113666070308474551181834251993863186333052964781747988446704575782778645057198882036064146634423976444974913613695051163171060255170505497242966459266514651979001842533793959369726500827747212554435772873335644397175999162162883863462542036245276102971524615701149741089749856589104104937796322260532298707012757055811034731814554480976780734016282126236708617834594732793872599451192319294288364183624409890725932084383733199210229949122044416464516151175317774110773951964748039112461269417583196050133099184765594438002821729119744912839271635631658092304774398534269677390318809902165962352330738933693092632381042242694368152383731923069357101742559319569555763940631716660448821358627750155107571635300030288171881245048063350825770150185195145442154543281494234562299966537548133387200721323570492627839866477038803198155455206509568388390665947449067700586437338923366888147842141827970446160016480928878357116518859655332739581870394112411322738860915000835887995179373287956179797677923707308703422744042608231309663196606473362250576512700742660660064683325183702073377952046257096924331846083775682982276444507864005775364252602495337663510093882994955470348480817973166353529157993653884701132554145019647787518784984141844214069777657824062448346083929615354904660291954968032105943660166148067505472161503335231326988419563492688036716293610544825322414971639170708965622113268194237186810616658804782009550855489122526622309842761721544843229971136138772815194106193813659950410028203990103230082732998956593981381830529174637407264724224546550137466528716575304246373865588637430821608531344758344572978064615493765378031663676927256075466780505191670194754004354598549314248543389058177789412924665767248368968812829653476015334918483223073249038445546577133091478968317824760728827888529610374880883556684350874574232574029310437063472597749659340624326868485472460969448317559696152580620758200428537017371039432902700494160742207568894432826148816566022867204776163928003012523425460881401469427139336141002043211293438200162967682246202230598906435220833525169729866234425681619821492129337197311104163726343301511376341062508600426296846980317053489444491139161541244629962985642999008438652987681144071189946766695752093668346915617752842642281313464130085957352911183239167112925363692601748838445654094748955879708995213582593810660394832721680773598696497746765336234551609264894326644907987517312388661422890667525893331895691517884267069447680561701457808430676501300213663429987994536324672727326265577313641224961392631739236805698233342910888918263733779309018986543847755973029354965596286495138866497224326374680850512845515707463454665372040885539012721942951600961085008692945026277852505035510366603804871408958832403869210472031184297678441956213306850264990896980269045398585982027306492683721274773107310705191640361774791141197818778264419855731568094904432068688540539860143346948988749970155903811484787020694643611635982090679583096366246595806157681834055026641575661488625675287160530133594508508892785950898564582038919531503736871249440039255033740802323215845930572249202765351542768521274283629657308937404983633195671054178791258141204880970032572185702759895155804252071555886788863472603441213745619990334074717547587024597912447807022569307500054681898139371782209426409432044166159333864224421476520325911798119195129972967883001340928265693974483949278694783432646193135380297945932492601401845232066784171468286928766418514606224175105289341232355679717397018480309205476988157504546400882932550245969391408375263959271572557502937593544329210190238973085062516400929090632861654748014290807083455203626188175462437509289539241547173434518541962600640652093793140536006910579112036335755827742129281500843112508939469168921520401519508563361260893163686565951807435237819173535666407018891938162605060893087843264728329763451660333068710099149736271149590804557001855732760994412263760518390167144120023705414524747013762491082824506891762912319095190582881048971130610722203735302457075429910142273883547381092114659021427902712547604653189442567165826236715560114719792953009550055496481244920215027799911381551122373993459441097684651209432437248787087684687699545018840597256310644462934372170715098657756512659981833071154529372064268830660843835793989367225862437008218472566142605864787237717044200057392714409547672616696670749125002193284192940330046055537600560295220991020511510316054655235300711658316931241963802439568523594803567190411073298014350239617461572572137231834293194639058441135904003800506596484886383977739016458881525218965654274953134449340258474050823224584030178725175595742250053678888794091941324359926197631875764700550120207100940602646623756094290203630396445971400349376931444920019202672497015892240743181344530821915006316117271399503721750286815784440480627949129640443175913104818676037669843710762893910577374600751655866067441086390278044571765297462741154481221959085831101476437624944108667693838446419272635477999633421798171919142089718889818624946264601276954515292883581813445861545927382584674395237602124377527992290379446199667980027883228882287958314624452050776833478231457745310074709623658998183146016474537582650798870893772806213754914889706869064676703619974889702939431155186545217224665417894310041906736229319444335675701489114882507931180834622903322686486761661677714885706894719021585474243012535456492842670285857069751000507079156961205582873726282523993434090817843253879279654878075173017388202329204450686025054260006124352580219831447610977171730037004701191858092139519735875422860178078523082728876704301350598011314462130466147729142529640382617617254247046097691351188996867206318087084963683963663957953027192006441887768053454826664906097324863305714468238403406794540701744940857526634908988078737975394263893156875185457646199362336650666364105317723752557041525550078850667297246321641606727711561577998330890567456370536099854744794935664267195884620422526680667028567671615840414376591324380062624691532019097259221383253565748239813618964083634442293959950232865717984308056172369694372845030342017419664994673259831244197340556958864560755804218743599334549669154278650599016817083218464662105144106573168169054728111157340225961923275494059996287695519353899446843355539655143130099686720335695307254885905838199706787349549494678885633878984217175342965842954935925971468648751009882561516473293908071945944916409980338051438214560116563812042971745663710712582291639752670851855546639059602272461890513288362410661680154976149703615414622956865962363492972147959455411795476804936591220398779967270099267194887030104463071858873015733782113266709057882320676426870351225417221647331953571405103104229707834229005480640339832946624643017137891632879673612353250267006701151743846378364983022093162707848437261587768562635151735539148699595570851307114576936030769503133433920616913759414016784383211754232572200580502670872320714770681848572098930448236130446485707890434510249198338156868228304609352234982664214124977284302222708248532634618196248409692676109291434889210371747664022544813643717739754854190906898287649388031526561625378191586256940803580023894277399724895329200753558758123129236279193861738034457764433652689629979397017886381523056520108222353412481623508257666010526629801545949122276030595203099294969349214676873141441345719152759346156589035145157083438634609211159014643351609591013040814010978449908013971703698565519335184264680493160824353474189151754184256418263864295972391799018853489527254442173345208319305726298573425839723837786221818539289201603628681172830806642934924423723718004348375657571820572339684056998121920208871487460563371958137951767725726064395538215835192473411923416865227832752145454822355428186600719170560812119211951009612862705901514097295042669982306102104009052535306578887254064368258711148808278722035019722082400900760581814164634991082000616232557915441264463784283968944784901820809585143089138321719103355838598853015020448110320424022930049025256115369047840776099735129881510769692772357161478758614666790291852474401178558651744595995388746574195880949151787042362994312164530302784717219393791924087052277118102135102676223739659609634925393908033584828965299771372333013001289963396318954100699872311324652416914923253935935821278017505216493922241052159762522699632086087220346856457299145754326842375510164193327496864980007603571717519983505410810086447433433441601866204265723014692921449271496766206340060302012432380988180407162210895003383719686775903372246009163369575481822643116211617483795517414146662047628400107532284896000395191171185011904256136720198511190833884624328272152395863345563527339822854247092721397283102995679567513846901556053753208533936016476471030336391275446574416220549452483187522165069384359463692250082962022506527618143652609787483941519221432722517056835519067244778791513470785518173676706046971969863014086434713222530057859558733414293088013111088804068606803566065129922798288370099625172436661329774215669832794887800866306809351957545218320588392817440693741787317791867057235109795004008545736160624285760191707493776936235845207923143320779104844301841046143104465108812303110391736014253693883208349859261443016042633757931426453440129250213825106607249902234885273409786157716749364104873410031442004983411954540643954939035889926890699183759998777551349336798911553584416774777708095111305214757836375405013202944299771645960370883500854547491266283559138307855042191346207414909129030052348134656385653927882976745225385760737068132750941226935066074921605467281417840619774937438767690953831918101668687640042390257916022740383737742924877900603038239978494453643919462874026403423180402327979266312231392592583326249849567687706399843227204479143153829571320394872857942270011128066343150166511824135920084910050902039035065594036598214966246385499392165878079163259195755506613086737931679921900453299989539021327380386754441598461390224727852247015930944682204031878164504176845752703937556010286790361882759464689536441929714308332890907385378205431394863722304588121815035987638145269011227647989362072043471171625412029307506749063589047837007536592321237885483134847437580525005237079923877495004804860527257757211906623564390941035280218702369792864342528873890876853385360120736301294111284741439341040631644448983155172572076474164983880524154438289514050142995042196696307801558022595538166096307580118816540387778313876756487221906824465748221433896061712294075545204396036109657708457892632901923998474588135328545855496820088907308867016985086640914342577065392022213008658880296479404391984052734993586012109180333401415653471327375639821852415566685343176066469276963974623523168452723492538404708701429372036629039931462239297825768762963723963521863238870370242750138828978369265835491320862268093727910959297419859239189451009612104834366831607830218110353397467161884974452308517390554447410317172257362954693772078416794375417357310384553611911354245583277406586965471924813576055090944759963388103637386813545593668482978971760219043111523778227340234506253428243058417101741076021466369598030346996297914324618829999174598276804745127345745275009053141486400465552269177701820111623833917085472931946227166806618871812310988496247092052164760076413252689234517533505834502433674154815464747404388291341888616408049316562071116080912928051610980224955350064259312571499570887831496664869366978844223928109289726162038012491367772527840638286646685028172278003540202180708513715253539349542111633878249161930219938960918056924990175984098886810224203309306947642323366279755570254949084751857686485534688807164729807395235653122273813540993646370167380413761557595592822846273787358156386193299840866471451347124112808083245724772353721158421521941592067902754589094328111802975104457314237408002360563831342205318531586257360044430630039138238161212797506562587297807145707637877323419216020398485702716517122086882384673980090621758219676475885099458475339182671817148688445689833417440530943281897856211081192292876388454317054600068057087756956921089233239001971741190347879202881069836462339614749815772927043658667272914221172681205854715489439393922848699811704690232446231090545109852679668838169438263774500157371082763907154113884563030713387512366506911603567466315523400759108548917726746432405274301586843983208944462316840550704240294254153973179616802105509569616221750536706698775770779005779251353242200572428689538645570914556035986194423279538941866142138062260685167262358813442781591489490301419478693987705821433946561951029394296368409231145412226034912222219051930371125716894853705617009806906327704352133690099040731530604467848649944792458141249983764944208741200061944032460636048160964386619795375026432095515328573573474778417669360483852759690559111949675995868743403048276610337824771344102556889848319047378381139174437485865670341152779962156387212657238096190236032272353637478948146780201113950342429612305342700653248343936105429199811237941165388277033374179422743886450609041806814678982477808457992617760939486859996493401402873524721869644417536842364997959599628115079526252366693815934504829228191469247681893744048063781705684580940827356015970150432128397037887334455803208090499588885579119224425771863650869630362783203265521425020025484004736160361920209062439181614023934348887686112816321089507264944477464968052879089928327927810134535584935559407962301808772390235481467529265942285833788237702417209924559357248844189226180736243934853226078701249749126288770843832217516281208215957858211158552939979154970550579978941807501404201126560950281226652509655913882178294226972275359186972319146214113339152841851043426069289199839446526499695804007898246175818372924362225776376829017935843062232205957618345174220767436646513112699624444573156042518292644655605432000472333776004613887984670126587816504410405763923740010775831870586119992454523221493686160793545553567506909383876905553121203740422484600104515869071694479617438691195460363248451173409562917993080234196816516893537055105484162460745386655017596099653534458128437596256250360361899437649820669246291816602384274903008735234819403152970295983171377566746736415508684456696553023021675227994061748097373835135064280792798086727513423127818319149347165493067540480980708808853834153647729293981144821852840538406120726541099545742149113004610439139619432631599953256310329730106053862769294793625491849254209002062883278261508042162612501692703836540703077884062246448970462638411828007064452555515850828715376100744596812210656393408324179487311823742658247003510472633473750212897355258556382052146224359270193870225360665009127358571978553918660830006084244469141226369066078811820302396227926454582623071965021752472834157760231592411017763768751191025944828954116951017512573126584386382708729859787474415387776839351954962675189756292784971229585479250836081667834960205707947846033443859244138765090268880062816147042315869409869084011349921410685432234988906400859634382191278916498392147810317705465343837931656320352147194237691346553336155282043416385477927311217571070971170413870547337637834173416982550146285086517307036668938827678591936803807470014068102503462670320633782554897121482361023352716085744885481953117788822151236811473001086625105393932379417567119273175074657463833696932071988395333396159207594830059164361522539591989138907511084311516663648055199449172279909566818159602104870687779882295818289634464622280530158159581015653103242023649176110783638621660043379796066161200595978279685530598892778579527086656199928841179917741038179249711591336526423451567093460929572828581351214726645041740312148963375789722622133074296979841475150710093847358211187327832096941427101103964839054378502207338816320200633015560667650543442437712356066609799126420864279161813216661087730212239720621889854375043564293866593459913598934320112909464413750658709460926165934885349814140128630863324420793187155230108281552103902351721380555192200581914452662063922816538444494515603680345701117847354317547899503651243398067539660223405139464092448849095566357416786436662292525433574167201066066477583380179094586154562729590340345041720032170305156341878916531497798585114495097105718607873875340491513455593700386522372143015218926724508496215733192431457999717380774831830045130161313172552728033052997171527004003149410787292708566577731576502033870416413470762308169306325759258626937532004411856264529759489975558183974660817350547509954993586559143856093556437381448291114219865033453447919420335316405714477886280811684807823164026612884142889692819909169712683296781777078562525798263227304578665728660589236291410727357963996226874349494268436092191556872951462978330042106105994879427965066706569953017713286258593577225531707247600932749321725764877552020155419592667840159056694254331387535023292445554551693092898951669059809117709312260018557870336569591369238996092503480561752650691547369736468346220232361200617150466024975338130187883072452901517278588750949668350852228113000303076970373731144932291644237130090719984721068631909492322321216303766616883555936089462045574054623581381586930575574975929813578407199460253432140136649250011715134965925678930096742990223652760859881430925947779635621250668661376836401499835273585329143984304791679871854149791632578574084456830731546964064118896854371159588762461889783007767067715081100119343667723483697852218330435345377449357347846081838814073889088829536749479687279974004600050188407461946991283856986419497479583673721374997352388549267733003629936273108111679960829232168409498324221423648528444160373742459272617845043017221178014929277050148042715622271150501325411224261400070071983475009210542581235856165969102600430322113986416038050457459171678471142637031162006188565768841662594815749407091779577065951520218148820694215731646945953278102557918347876832871752068105239302702056113613578233470493198641226369852900121028125121458687117415655551087447228226506056311368055857531857350414039235637242802894213238178083664456061939836595246337764023651410564443726475045444945991755327844290774620429117056729419772085273120146117724420773518506151411094208735640757109848359820152843477550890461096778684105929971840642176505644090444538609138273971705274354815618413878854321581181474048297704181427606242637624790775506451985060495407781554774623276628446123183877626548884182849037446903538118941360152311200667516615234552616604057608197795989108890356611470043498185123148596664147553866133719908160462845238363377581782322273493042715351526659712375669743979628372519099692553709862211371550138343057142954602684236199229914335781877877201282064414219509149411696208453509369597422568975060830241399000771665978306405793256688721348535650742839537101041078149500164097496829975496072378456906048935270130850659055840475486762906879613442002813157242655223984286578877680831358234146583520960511410608741128117471304810304606980668056909597076274594637609607699994846353745284432592645126330946247056535179890674301810925164591653370166658417978971240230238932144251758562852538206922015994449959443249412270657410481151598672916183485779913405180634628998974218273906580462149701854306576729999548931438978743534770512585051343962784388797820604614073548537086923935679678657771952335009471475314328593108389364513935942635063047839501534917046492761076768411844434258779070502671519873391765030818049806767864720556747970382836814809258578287011901668603647066344120725737239730511556835111056625266590162180611787029931962619324954218787038437684795208643367776104546843013442430139256508748518389368926251819750921292249707455469312224748701031322766725196102148965904662633395319951458055695355982934363887121231567409507873232443134437836438604115055389783245580378814301970324987242894836130414779421527896993463256288498992200426857437866551118633428727990434867716094663858040791268213361818632356633960190569231432959747297107268274968761115304979739127421039025852783280284998537860013096072857968375942836341686888925045512326686131233586001006442937341898329330523159018222662663652367083806392801099971454630347263566783832830613325330610564262730433990661946408337670074752431684146490100264401470083644435057820368253460186351666523183193828967446364536690757064497906272543685132400883032776551037654092909223389999685452226368764971586904512124182381293244293588654319947913232526094357219949177489368469288614304806715786763645250961200947727813615749406933095357539293406360236600455777329195358231264241635233344794346058592102964655557852307371936213015932809308560175634242165991006727361402053925448989132083947414017099481973891709458450937260116639774513871061646950668034570199626678245878159226062220129900487812119384995077550816040315627055718895055548933815408164504991678495279003592714558160853608051722327874465868846771036680725800399980955119589015732077048740946113069310357354241126089229421009290492019710334711532209604498898380074831900509208859635266846463063000386840506485738240952984754054589928209836397341036477659316463289358534929798167159861107179678602219837697217130597287140977528791810029177097333585921096706837807522596754023163360347704554733557460475643783582173831992248620263190621788506381350322017744037860105730614541868420776773468096645987713825400371484717776871534162664830656134258944560846791854619001928707959226913157307206914779305954438533016467219736530773593785844311358839577919379609618389117830931382020631166254208667475717100055015163799309928306649677745178253350463924393630052525136228599950156634244963642305994358098654991393646888125737891083423507734046511855607765970658765252885920842790308209479489309541130975167747743342300437278336136152807210193576090762897061772656353632899207139657068622880003669174388233911598851931774441641633141629572326325948611752837932834988028504163636011098865321988886269604530430507316256984768492165135151827397498535458529892681718350852766018584346714214551691754445925654562519445161956183022232833449471494490997707051344807771172015331747435433692778123228758937691165089794833989805354764211230310974425500563455400235276814905675220956203551324433428116702335344332344325795917783626346540625979011215559682403046736528334110583059323212470118136175535030993015251664337738559484762159858850203039502990630777444845002419126106561737109689255487846530520941804826192582440917016256742169223071287802714494756770801731521307637324806878185267743037745424376021042674713637496877254123491085156580675847061823478496731681241721418049664729651077135622031165887946448892732772288890919683567109232152089881384560949060156497809186274823597857102823218229170843154983851215671114057189101859252709411543932028075078685881867027263182167670933039032243243655922625523210553645103749265974447582632017098982068957508298108059364708816234724845563901752634841207996839447422394589002404816399985261376023737372443043399829143141230247786825881412304864790793717601710194406531528410337439405355814430081044988751407536195317808141445976447176085043070730888495034477273935760707262811591368588741096596941379967746523519889613968241184073496034007943715348119065079957110954900131020535261884770443016366557386507928705080345447070307421239418468594387645416995563418720696183081660094837430099461437615388504913287244705304619367171826795065098974906149342147086764201561071487553942283837039763215431149438139832060663747410436191546706225251093667056265481989841869380884447388133471780752380856211480830493694023608130099659399140338134999575817659096358790529583885189502914156816230462745428582831027892051617218790378182309335201714506822394877238373374823069394092568081046896363054182536901259412343557137307433623520401514874274579304743908961560646172343700986433531653836159562157563973474454088878421419562410317680953027635207740159250430256618522898360574449878576464107602040106924229924539940596732336700672164166859354640533621064066029375664065157851462133889909546932117432371475507612861360708023774021265062124743220002023966656082812150854624095703536377667773870499609730870701969051190357348682416587600673832319236483541422622005163636008378023732916322367221187138570407590198780652147710752852187558785847994385688645399767700177274359975813959796331848612709898941437241375891105231652360531830629540359125760324039834075710826473981901949186763708693082378160476441851922544133648628944407057231268836914621170387256049906635448955517809418826112700190639184492792444336570915614061538297677324442400086026569692435702329980267134411418556777381198035895161766410684101866769390696590954214571709118284977246981497345115290985033576678302271466636048976840263974138645306460948351370056200494682394463422379326837467075938720378408766918773543432872772225526509224755001134326941548958601968026500089655233987056096403648704043969309527529570638618230069848967584835778727463575774344954232750905528130480851569835368306458890523555899445666813904296415224330949305878993859593785855310451427510468524957462098059774184267768881426733802050742111519704401236161116411570902390255342697759200064498149529756837696545575100565815781628517826121138730261984265812257316218961278616193750003334322838856072502536916091183316676318489709958847298850709956737039247692284156675510167331257700017452255716894204387251927172241366178420431607875760626407005046221786904664985245345768521340579138151681570101049547279230013918599057134163161197607075931529172229594679823399213308064437129659152316620102407614681783414781875899853769155864639450285165981934948917816292245776964769610742549329638338506902911785130067575560562163390594146699638787442292230001759788378679537040167856129352611841481675660131255304741519232570105376148125468560659981894956474412265802860182207785696607113573409147253720097883096659582155413398635517799920226505742277479790761938911382042663747983468958190615354776713814163246086801635923190130826453630776604088001896324158289648428330207490540512779583879341633196507258065094732953139505594771581657888423321956483700430095169672615502056020320923467198967353197699399255430234131734138006191624637207048675008680517033364764227165267966261623224780958946130953508258390803249909941093907714718532011021101738435716852091894764646632928147522529166447159012819463503860506239336634000907386937364286976254842164829298741454811803052845539890557427541966672217218712260370733066919046751738654261172266637717336565366701421598453909791962989159685955953189749591813339961072938436752813316215642294134693179814075926644101011127898661488189540511854113352538246089585352261354052603058210717273087907309022990975815445813445444175449541513545319760063510672262110683954756053000361020956874293464408488687859168966056182633241054448966389037869305639307285569225525490538146493031234957021608021773562495027886354100546208198699888525339199830030441967075947731169197568274592389171248188265882781849704164727109570273799280182690648996292626568597457165812977319204575724006350699841765127711709064415397823599562237167409957538223635628807793228735678807300665619821552197286036476628865816611735797129512798011624251028545987543353145896531811697402411807730889384132640055359310040235881092154241421940521428749130638557430749361787597732491681567925470688538375246449811159831138296263564117319025239033827409209147226797455002583055991660471561060168953168764791123574852261150221570351165933128030179937738792200338498736719959557059695985931098937744355658703390012923680266525013466560018845457919215548357087835650024135424494790485897751234279785987375715679576041024149990516634267534476747373421029300617248525822007112029849754405281262574363597962716449914991878002056843196859872652083230941598674777949827456757794906418204128781182681495838290785219760187921359221158330915621920937670124506102361192751472481690793683888551547461788818966428853931612887324889786226477426116208012058649317076982656824673909283026163407708507342581634396323845598156552121319194600417320698750975418035086747825103228208853628520650665310736366210739976428087750628924274088702510294754490351255448418714464067403801077177318921907263164091608746259721831005247403440486442898299247079815302668836617643999839664000761494554825168234217717312151031711839599519370549630079237165120159059623078632447174401304727789471217054402404557170053179368764805308439771566853245829508706090299309956942429676071755174101697836141682970200222070243939525785531188715697498350232597816730807842758603516472340829216645665704447176222254551623580444277779413117808726602311451129525092873905312056061566178441795980178193578395897589953912743240564318785539776447681269281067686759563593800126063901152630473976160742261355079598386498078523908325786453596596179187196889948489471276805878811842823248395889143659356806029964055315868219823110509075140089625120217901613009425283607962342754400895995616802393896975044910404327049509190540839852083931596619723089883492558302686244996507286024613519134298635577158372279119447072580771277529810875758332749379607755038171072347266224685573121387019433254332948491465787693076427462208975999968681955183348668185746921571270895621706251403325071381034574732866344585169480629090028998318764081404712264005807000991182527766387126047384251839207916917349400656851409962938721140929283064512019703853577061788901925922073218799733724393834231209330936552077264857015647585971847894886445807524932222116817182865537387343881959698266499729977877851891250736255395740535101208054105785305189650439856502709681383298315253102777551508154468844438930777004798151330020931298809336702920175290448391934957592771360946417837943894990104649726548924366271263270399187257093684256419984910241414339401930122545739065812279105006047646960163439484379473290167372492853596397161587140418233877153040610281100498640199082765338741961800138103517649436367737051125943975529984269476011095652748108920349645673876781687007045602917330245415462938431397038792067930221552048853495410281513921770618924549375754421697143391325883907519866769819588768942550922856389996118588927041353906368995235952552616281665211030626735356581447579558640758213076307325389512151456640089067070558502237324143325184489437499861422883809530926120277876300814740253193475205773511857397060196977469796209111455259592055477978068010203820196669015585207424675021320141613521004469847465483971195625827200770903233475369959742217493734983587860771484251877788446869120704403051207294177284804334837070731177345826057499906973975069697336994706597459951931059262443332349044227341768246921911633909969585641346305068620299994672646821779152514710863107815663963427764974591874743385724070579831260392867867257457143167085478146751452560408600563792840337739616296209912925146401502983868326905578936460585776056270515733079926592505101293355689146843968254616506550698793268597460030098785626752823819022283763680754993994022908389838367583904735368906493052229905986546280419027833414137315212249390950900263055449661770685033859291049474541392703520994118091864293922336010218578719450210344498999367552246453537419066252234483785129044328030190230568681313741307983182666765542572554553632662010359778346339225127676839212737222769143915969409080949784090203237148137722960970954198874266954215861545921559075940698027387960200945981450369574211842363344926381542631337247629116168781408378663071918477770604566320072490383528837466886547243489308733019292343620525617858930888648839613374726283762054742749380010158412982145225086899776434341624710083014830171195246497202934634091217882471613443049192891150448355612468092038277944461939737667690217020722812916659266295266103214748540669588268920065270189349829956708591826477504803479250786484311298071063739566992531540591033354154065351348224979625177426871518676130447501627726195403452484272672787523566006552781653529909165935324978248237713901291085820294265225667603115311973896815490776628203612235607615097860617632923474583624955697494499005757983396234702211523057354333886814850632597170203689689795362814708568812201754125305076039481124606656076162115370859461737615715987962895667352755202367295979408589695854932560145116286989306280228547200703269901601147686031254477881381211089862226915758673407742600102492964915825042255184389191510005924433867379240549989219126116232149217600673201485921626831533887278859372057883262864571153116936457346548048973823129216375389943748708424049045013290977104454311697429798412519757974199116563461457408590565223065753297753194665897046969571318842834279182574605559909195317261597409970264697660132991745414860057486573964370602807661557344770309883843699534151963609129848250027067567471943070346596202899139784102831130787367610029781296958677442051660933596519811162623979711301401020526444572026813889903086484887429352844986106904221125728624164746948093895175096471781686056507245765881703471933314320389282790648900049697335448847979748416932910386218914064483536936462721441414293032980678350993050655680717902505047283734656635125310240999630709401609267173133992716851254043724174075926170950529410449820682472047047048534617324500695218038459090759755840038382363878582853279807198924349780025206391246541006064300101174786143607782433781201828034033193477098454558767326234702843097017308290940888132759522205548944991371037331942059404971288325933310324479984256393101679228139999800767219356483038369914993723378800765536214328060494454474888566429513903297944391276953376415205515748409993283104202724626769783903068435373907063654176716707213948412208620138770640337194856373223172766276229535401088610808598855499582672330863132640290581054333582054413566424053788682000292654272249409996554907715049916911054410211645363994568059284590110352683872385111430952878699106331361189086565074019148994255569546846447716228655309419601280380474682324343138327259695436281336611486292026140534761985095691775174794231524060957552348744890041879246258757941926655161315945345017252866567638144021742841154463961200126510742029496714258965043906171259566883138884691383729278834222633209852662805132378179479795107435823301515271094495063914132729996505919802626275994739362641262677019527981544148175930139985977219533660361342514318712925575294184417244905305486112717566097561244785137203941347075863943508750744109161953099421161770941043343252923943741928290110514104759321439197669476832594215798904421055045740542788493091204046813877327915449909121536563877245281769299719444381701905735516627288929381690167046321643165942567988751335651551260152318704903815626765417907599192863320598307547898534366152789488495227134439124963567410443868020701209644032421242683458057809652824166128421020967659294445194272448144203834246577653297988775642862513722853178609703938099328658930600749509234583880681706472277906874439539747530598836244471682603749372396810656072548916372209134668573524824624559073952425323510222064374489935126942693913427076289829119509228538039012126465046038749291604438608786913468075334061652276357393854634030666486483469747207259713323172271174543291396147745008728396136967476311358811558246592795211205571316183818267722622068379357891950748920632428953774600583008141873147377252579913031586960656860151344339912954959075497855699679830821298174658827994033873716796356431342756541712361700853939782550842815947448528592744866170103362605206433354341746730124722938711528459879294708449401521437885910460778726761475400770824686854878458782393962372788653588293289480861673986668630436020829372031684846111056195807534718181643735832807949168703915410244802938244691212855438724856655553024074604106174111438340136665499783166082834622301350316615424871213390563472643453766695012523346899671789584572249079562097727272947182206224480202382572786322723889812879292431998425461645253582859387758506694905865122744898683578295099656412091267949039439808875309814337723862482940783614898208643587795564070807874012075842633603081509967992696334493342647052135506284089851720854921623185445895127502250887192028648470732874538564254810119421319220044237757825388903766085890196257939968725346767093363517312937408462658654661024946611164159114927233630894788671146656732390388606445130802044469729534545363064756527710922344389055804078415415353262805128094853729387812559792080288829515460184981526763839591053351011963986658242758515846739527358777472709399815270810582317776165599284880492458330226568565377442681126908496091168495036347024662638256661096486993258747593588787228561275376888918773997237332551370410585994735419204664584734200402820504539282454593929213424887832901881387735766753616134542630013060017125444149127360822003067289824159871253232020438282006560986178828909429243203983352293341217289275997013758050897459739627387780425587465534490828093777075344524632474470326619329871343220800747893057061450160711639778516534374875558711051822705958148682751482006524756807744838935134006096068125268980559622211308461611100681861598609927424538499995718084895280902574047269414510455947465800281266767327379943822231210097290294436993685472421259551475608892088510402934283635137637356858175611269339737981527624440288819327562714477406720723793883739504848313567591071698455761224304215255623745493821884743589639854124188909506753897886244161210894271639165007844550748648177213391850747316115310634525100996654747981644398618692464814803668978264825586046195437218062349081593711627730665374973217112270913353498573849301918884687649968164505278816397866915628325164426284838986592672899455304643775019258245379797752317077490919640151831746431036319386329325483491650918639381721450561417144392901088740358932229951040883085858153786772357521030804536943565706578098374459537077248503830706234717518703583126323635065431614997123192510005625404871045621049187414278850441763803266164612429416321720282852504398102927266778740127353226125061464922804199120045418994776729513541421092106613464002364562989994992347483189358444468351083134744187383690390089861793080907875836667653183876481748591921346787513349402177607557607921559180420883821969318145191311930953641573941578451310539468779187506724677023380477134545860822614182242400171254608372170909321308788872284502783894274969936543186043315430139291187299386254400899224268724683284506143558699151369756207275423019918331992071435392934701107222053084865845562787524585309222746761462965284454699383263909113495333306546189903022778008212277428035035439881384650684290232715430149772579840364878892159246191194180887168424432677840107619548795888723069824295826270763673968103214552901014718330054661883982926705330081101667115685909871193204233186061840845789726843705258621420779645403753525819231303408881313774898947828329502744202735637740059070280945785345034049237999320617995186602983977199089457320577330300144734808458913722919640561399987739718281509566809410190510489069626006740699556255238612013366059510283311330295237658529024269042352723421300404285515021879154450697460245777852329076576533918677020284489636848132218922580800135622619567646360313469030258651085657818241422129198338828743953855545287851260283909800719358517907215108472163260960652450142276234338617828837935886001346043223288598750575088836471971569687014329407413643105830818279287436690613732614970306105436152461894075508952118244949125768548162820395781200430976002405942218752103957006669895596019124391030783864763893100230312869069092456743492989832968220256563579521908437797079353551819723329036986324057349119742126963717557928739975861496062854670311597625106473790787883563564953979371458076778717009069528963981931979864413490998792794690132451580926919691678635770546597536324111269341935614108398324965750871703530069710297432481180839681999137272947156032662083245464086815764053123452208549729250909811853268853627793017370396168752261051917303062659222959028896665932743955451426397463343871343231344620281114871264603029067929943923818582145610730851701679434393348949524176202583492217198044397369135304181896028277283206204950870408719590312407683577024489473744992945805904794307583600104637648070390816382823602074357863389439268347797532149089353467916439763960818942362447406966859891317592870879153716304456132241813048205038913474073808427995955025051050585918191069613514531378899243635786853559967122047099342245660128216861662546389494788951796249622536670850402252188249682665791283904745614445391901323607014684125802093561889198510013103999463528707272007851280111031702324356089855115845369273646107363079863865404579683005303060362904470471012157845925231183836112181795067768647091836469464133580356644740014221745397207564332255793094994066346227488492693498905968355052948197047597908935483749295109579246329907342850623198914811752645186305884813213821039861232507509461143978663287461480585500477901975046556272816900175650651458090462898076466577166817743372267061660831574936108387162950682159436977487750821751013103088713108334764710871946499908878256187832639531943557498691565603776245505926165100861039262918433877374468158204836247099528754283516244059594241758962622590310843108268279810409907179908956417618718365513298771505406879895829932790360803384545056247888783395850722396895037394505442929409637978369944721956130592211677792785268909480209702884747453004980415243031449839958258240107151091736217794551692311122528660528103024804195393067107176155087392640858244309034829526767427693688611797690579038421266072148437614235179586014093312611215898200902792893780453197872530599607694395722529871275971578973846825972275089988740705837133108068415241622384012414955622252181006738871097522397124664182566180964248335729061938142317740101536671984952353527068346144548083640419945523024241870610464384764906349693288077057736945865703709940543312978696247013116083256682954994865827052188396719256165364448635345298289924352930172604800246622672735951417787260717904640963459267246340720605848245774219992128145120499755335939203538706272913713907400559385274007359949663052801978469018510662379186220099060638855712589778451502464004123153201647902269208668455277882662410087510014771417265116178851755736582987616468331947355978698909897830592462551417841943818061503735598728464534675406371851548485685762011016823625045149629407850906877539896347764750703990774858760383004169508805999196674007548443073130488051353637091938481826644203370208611709807181433693608628643884541828097559298156551428210255790704271977248208625672165563500967657862911016678805892658024550810955243980031275936945770813045196317487152648433085600524798682303288269230248804400601042240536621827375779534955194802551234779295373562439271915455093447068921962392182401631367102031745996883840777429059884146396463767806656695857939953727894235970710605029175128427876967250195366070952192034899201216233720397159504432746396554606822585321270262278482610366669271276916908109710332788657766795897572812968811164837949576800071462736167275208086213533291433519085464074397839825461824734583291272662225222852940545775481109553019453948220727803286402816221160302235846779125498359255258903437690546769989494078252839291339591981191230560584123353062641357524376597951717140067122605109359134210425084355929868499185878582499195836082211394194184703736191092331869996736461784201879565813583045668605105418399231448929285505072054537792174322027596855299360802376608642936070428009377990905731192750325389921207767569639135494451221392236135561270771070278146920615819355058505879104321119265857268131831411214613510868243453141477064466506023856486792884840780353210675841369403038867886927960991797132941932075777878433327329464878794158707442498281852578464195776925032958081048353443256632836980283377444102972722345712460083746261628991676750455665739718882427030101634907192313776416103860789325911864477706015658251745084401607485345746511246449680933181786692232227432844531724830336736325091426751962703048859344970390700220502454444433185504461610828007187975030681645152389399849662069307732723875746171472354335420910019223044865937881779513866683237137727646436451513241379482071919313133504042308236892585648450161682751561517761385060423493540983806267180675533123952910221144859931060384781443773585119074138944715043530939669157223967408052105999422984889558126902886542260243234986154779618337142637567373289630940503387894776609798967525212314547678162337228036803763038092685601951177930135948575249081897550462664552280206191932527396705263356450579477956315063040394689306488647767237916667826333020998068987940354903177036047784024173069024759341993125706404401513733612075577239524332155545452390250436194662818973671166636317551108334122191801888464103644073431022471721913316321036909545449918950503761857967327282231240874773127398828222359971994558180822582218060864987562347967714938643071095367013480099662575282614921039735053511298963391552716353074815298108337540730866670014910805671482834231824229022323455411605485251266925575014159904666012576380710171737808856613881073876666719070410052970125982897876938480107158978589022006278629480915917048897355002231990391182548504621588845350642251640164443050607906900731070212451200907251341590332160909619054928733209134412229700159291493561266913663142857384718523356299407524123757813415508824587614121653548983159326484509367411970811072310470414161434309537675254725733640463111937130347696188564106272423411864850052862767490134562858985707465972456061036341458199749962023817132228217048031303098210785789899106940831915103664780916968729706492819127962748380222210173617792229320621237136685761367919812929434628225928341576686999520256729400909072035110212510963811420772504420624469937489131552207120992007387818572129872379692921323785721584975320542200701106494601207988579811139161973312588963206251264089220041277276141845754390004080251516048970353722950837031720730529898296198618587240627552040711236333945021009773461327852575750297906374799349504678762484631916815868750382822540173067118256255307057518027481994661304379881286499505002357617969858319194269623170506823214800429307863619309319692734254895647148897634468356842984535412980699169712177865775853376478765165117075008676672697059195471911104467765676772877748970314656213201617684153083588887105878100958265770976785313371418601134119125933537063459357339851137487853943796739107406574295255283585322009636799940854754893031803899517471648217595182177013660094060661343222275026188587724557381092925710378225381207774027422599225332883088667811693542818408264155089372832030192044728875009376008344446696223644285225396132985584558234852465334403507160394030207516626139888041147819252829684961892348597502505832289515438827853469164840322968899369429595618010652160915432936063024993973909958734491481495763790401924548799344298266605801318208691295506052720093820085058776041571623553015665421971264717103720348077465235223980870509149377152518132806430378816920438260572940000913564346961091134575963221118620579996919855253649235606800810171768537488675506374691461973456272553725580420536182896795628713185999681357900855778400120427877489886316878250597839272029862472277311946327960059208788803472217501633427136183487836662649923906986738088554422027939313244914510582660090273941328125831924406767572048284579927667485910961467842561909270417303072646385061028715131627043091339326489099741302454124483755465316960879867335871558091824796536869185898119932853989904758112156749311943639686609264367476967714792193575309579100499196508102791282944835336649534960652705557763530521223429738785234222954666528154918139677401003887039182603849626598846247190614912038670588369170704814734060763394117086418386874613395644077830542072460191568661723148613503550249067644521793790103118777827103591368726215545571581749251095423314429950848647732013119507584278912533953574239676017887296253564296855542810780112771828870809732598957324021006648377234565258851566440628808652492857906416364634305291398012415635118035678074939320166993031393756742393471721310734002189706971186350285074213834102996209637594259500085322845755447485788519820159244901849141423368341073410679539552384990790802205169802292051077268524250588489521806836568867905112853772080766650388769576026913252826773073517297285266703063834028072188345477164760431991615525484842799470667423124815789248048155079214842778572752012368344796678513845051005759549948541998477670844045538953526530438585571996671802807905770452160374265531950468458710866906097638125563103780130293846160117221624904163403030880708395780861795976319734609907336181248947535611937569562167546757706653829638945113573280016557415825967857435726612913258742428123937712576332378671424065150779710983620759678419651300850800755456201350051888409647961310696587410926665926214618388991867519258685766266221130685918744011081918955580043323191497997467317354870325428473404466989981217997346245095804646536438116034662162637354798301284788796501376879352267097671951478903957233367610233511096763582639885929659630112410309753106032696516464914168971999136925009439387754303243430041741072986376782396046737505017306163352033778645014122675986202455560136328191193123900402426249676658559762653095352784779199824950253656809649336604541439050335241148019886215198265564789185509500723937913402449401728804971368726193408194187744330105855575991838078060351578381076178822024828717105374703266324490483985003062371967780634276358221814072682221370631340518310567301368804694266608315297957880658133328898997406606054502811798228312476389496877473257554996980910015154675916723665270775166848683590724905975592855639060643781075071193065761203615809713894732824430332854275176358287149723904581752617318852928369577124206837050589454684195288040747603972402972695021547086016028090816995412331044627875313080258527907190802943208499376143720957419603043692405819930279301460751619523403111478351194946173348849284531103456028517775953599256847166058233730706933993517023288024352497389652459913639919772391765099463800824603909793730533023143413388041341526559853233930772243445517468265730412611200646998443534130131464085427371084968740277567268794754929709093611426124482503908995549770529551615297576345140127832085102769824709292529391859167772170859571433263006730493979027385444219634132696810107680554242115116548481854992682573894568732675086011120195237160075245938091035159287733479998586458664316709042454039595810976584375217555324653743351729351358988283639291033445417882426589967346113800254148797706244231151478891573370355996715933819576087534121808416745432202652406725141143352350427395303117043165912477346356319658197219553307213085868157405966766935836763651684337732651071500130541240126119884272058413684024259428068443992794314470691416115582182186930243500654983992648146601819350358572095636849025067466618972736365246436511488402785480808480459118461614838535636851127390314531296192868489083314430981725952819131996406112477929273499756902125753079394353570617540112289805933153011684704840541619863530716923198502522978706699287882256139888232631952186654263091504081705615590688081259806849022556836214331180741226595640921576896904086144929346430059372422175873077391858830695127240557391116976172862781117850629787048176046181667792671559967166018060254149138959908002672912002887139265373365060201365970800492094138530821716687155860329091414101540643968550206468964738755809294722055590889761647210112408616278331531251807136765140999074464889593160978494791224189244890353148746484288380125603426852546627891736555071782872259669624730828262196865485468444203319306925891317370838287987068533585431322145752117326606907331976492084702463688082825112379341677916099641047466221947619934465345903089428130951618933008500534843534453695179726042068108866669885812811875420887168458807074353832713577947794729175539984492925295740320992467540381244109702740553037969975626367924352339911283077599935012241841238087988568839934222616410943901969612939625011010351037693026247486049850882008842474877770646809964227936032180473234670091565700323802926838420175524644248308054253510803962264163716112216024210582557251171648493466972045093910761598501373403357491511628466330391783059966056928793324134041607548576169619710291027231477067991353314692468153408535167042406154780172581547142067920312299999115943835099965401639259048871739242237855494664134664559788406724677176439753609760438903148775847170779701433199924838528828937352177452594298119112839081161268517766798832756308117494966076228251237142638601215373730661763443852631557657501957556512223349610688885356344252240282427343997968523665333462239082550779935967652229697661741057322230363711448697583631672372645154441215405319436720421165261410949009406369444465380234983999120707666579095965839456457391411455197381187867191917936385748933415360351942604552897927406700674208547043959434597421050141415711989635151891870436341477805693959398543625583305314401734123747413129205386888544495535305927913130313848812492451657438193519381264802658657580413869922625208551376264718139180379561923423613727783164321718833690517326513222111458829187623719011113189017994111900438898783487012377103356428066391271832785212011758298146457696966273904320807575462080863077410183882675748388182717007155459866767016296145974765838972426320063827329312069535206738181640626149332609378937780907328604430866125782199907178043006496638794916966757137961845244044397438042144191851135545098654089992969876144977696988196233965121652364615933436680000337848830326338229329186211192280881863000092124533150002299277031847100567281108205568831297507698019432721844439839624038864550115769209500202131374782273771270310193852405399510151812367258910848164023540839063836429434697805806176476502583340532865339059985101202911542785348300372827773530421332505497262001314873369138735162738771624921966024703938585189097490380776425714012184563073066872782057124960772349675320940872577435120891979149240437481456772268080478318436494288961429987380064523282953670362545225496141798242276733894596464271769908099049168072625570702153549302973165018909632208348365144602532004049476660562993584184761637643168775668198870752844235467375413916193181839695653544792658411360609705593743975245154472037886944372010886594408569950488665742343186334841703417352884665178583972687793674778857975873822101195133811155229972632819727996132911644490198791703546830380228419719617527977346428876151796273961100560898170483047939726479404077206550125854674708039284203799164177592718314351471439736854243703282518331717200963472263884152211190754510515576251019565031301061816350929590409419636173916540340502634416271389392526535998345701840529280015016761374590338957143649777795971859756062322833824742387097201535131111446215613269895607281484287596634981872604191405612221615504021495507989450205901447706433457716947109747469613826333603094340378657052947712670300544553680641488465405927932651848743979155510289873440952867261235311464127071850818155650427218850973970724230119533463938730011137681558272979896228240264132272674966197677342802518037305705831220777580940567464110080957334009260091355891045900377337435837014649359268910662231263681484391476113005855935134358768980937121458411645617732663975734837779821281135828199124006390832577449636293182834285067576982064427093767083848386556258418178888939032384195936580710254017204173641338298778645878484736733529295614551599780568354780913318461600385811011650117388238202659622815458315171875984884332394083194029997188805815373853343977162142852126912069249913884212443199786947266325702646986463295870206843569206301882860171630687518132881070736866261324366640623605249075239422368268928250836685930349835726997265624062597460575682646709265832357198971869443325259265785116608513048304766343921741636676000036112819871945883502774466485610696543270555299160518688674378172133260756210089590058267426905070325393007262974739955935071542760654256689941764859519685001631623564658104688866962087861568154883687751892192617792353824008748580309608375049926885742897950441187756683968874068567694528444762755068082016823852934120935182842478215538675646954156010042748169636410017926167163772064292369200609596081967810886468940774792214335041019419693673994865652317144899731128504614696868427368967022464717886660392844469016643699826555038063236641386819776642097180178037015748221779290844280895713752762689982204855523464572978024839046428495384728703997439449748000847964725361222677684248351971099522474561958342363447159395476857150343482891274509473108974830549148076644406679138510451065058938172995093762560603224374523799359213013514470740299540046653716057121466357804625947546684217841376057018327073298022429928204344771210940041159048827777176351542499109316781876501649022274691392311823505682109380972531274106142447978479688816722882886626860529928661593608510266759316988053689792907014346553285229065971287793790986851177288612323403592051717762929762467755436757319327145740632478230526721405417727948962036088135464723303025009062092750077640640076560611731035452785216692640755126346409339786073405190759460108796309762197079672689283452949879407599360703512104082130702438874411125495253713423454847727675642605077223653440603439816975331249709466543682513274125493209867417724345005882952308368889348203588856042799847521557906085821854550252748293343571155119737595354340913967454974045969911730781612731227023118276771297272331114050254328957055581303323086947223115420977790922641471146214908872395653335651552010401353462664748338976767685168599922582292351563532789259630833193480099311752178601579338573433562950100761403658099732709578470784579803692910506452088902307764846939075135076710651507334918483304762569716247523764597253863599794257212848495264831461491433325402963636119488174997413765032476674067238779544160634892221164598376891570830886461389727199642112919336914765435868722871463567221750660271505215526295108749587083288298126803800684926487661076328823806839179732270510616231749144160311432338523812788086065556493034762126761681665715734752225657012389716313449835714416629050208821778073606096221875037050712322156197625336605067104441929993638717117821112198288755958459129827899431059410726558729487532003229895105014672983886306544679223470460337196027673324143487667478903866629900611021918715965233792448774679754998391406375265377476009538947109470256290703740572320737604093462628204993180198402400106483095576887627475148674547519665981784167052439256005055088613151988988928501868283150424426881022430191491805767860890922879676821827953418120721683116212541947194964988412643232403359349963354592519142622837690667202868023705925641145229296052891297715571419755288303393771779605325952894733422412809826340638227046747205042532506196020302796403311526985955839987958855849056497501635759952567040359775885347785801180889413640312739381637561725175469902419733165964978540631274719336312123862416267588493783444198005485089894317887411485721579137718668775022517558428878808090852600642324816516945154490174719081688481688855307572451830044082758354127578189063067259903618695091633122824195124771121234148537139449921547687634974622557976645836978355951969941425335491212830226285478222935817852556254055571798964571341463661964941931149646635680958202473106859868330459141044306885690066514274030852489678321994930708813022758886644331469431777218463697513121432838566488739952229067170533274057921690502849772269443399946477771322085552613587892434244778835495023937233561798275913355641469246964672113371081715490562814155455876962008615170435275978656462473660137488868627598850365485471226810459272736182955856770235652714861952334080474324317406722873018648413964139174056929102033497271113892261748221430317815484380380484792705612264374992051967446832210993270281677510804828334144387708953138240295137726109103925686402995531012538343071221563915357203640705504289019827570426026312351043962887537675430823011824226705475904962773005388399330276033473971127802559485629504471266130248604290881138652233274946906511271619089863591038329136308675908461314246930310320033245992590988530735770428871868128052438394171590054665488816345334116123278237718213301916848803171949554134291916455170313683669439300860475516559316441293366993799978313663891123380474512067376133994080193895044510423540941206357473757208693217925063922226347815787317067013667654566385194899815608385360940222075297685079941786869216808636723896103754201767735918862068567948680258600834819038094535917226666196762257202764387877303659504834650708119280553738082136738902246676445653284736884876371287138348813819830412722615316122022864631173184427565812038649335318795140480034443890416117895087345902210449906614697012422860640171316426366419335899224760966942690841727974903660070686989703930206790993300028441222124451302004079210700511154220074362612462602124869703761985181666417778622897086343144634688157300471465742841620322342011579597764809326123945998455687420493973895933610995814916246251997135639732813389335122486880098807095030334544024914107015402875133969845275106827425230096488858571806951512785840495952882862261374887280163253693385757068722582955476338396726591974068553590250355782841106777150656574071876647254089822385439264288524225664344581772230894077348036921701510074258535259506918996489241594702671502466108540017800087952264835700527247002615038985385783871813621210879275743077451258312909846109055577480778984916791181445540438411132943565853681498762358832043782413992403113570249742659184509398174837800608247831856995089890865396961339756678769605225262395082475165096960458119165149110497288203030393274755108081343408502583113005621450063983927814517414511504252920108525530871113449885087493167644164000043608174080345159116951812308115222461367967748030177252725061169889058271555694776388161145946243668858378592789016662075133475218115260887764070425960495147424838203672771438257568739138558412573351610265916204676641020967776703222405625075045067745891818620843317987401162399452809126633681309711905746202832219522656974564970593887296768004774657532970682285203492742677669871605684838302321521790681211594712452948982423452162813134697051766153183413323712479863109018481372916041141509014916251230856281250529958201073775453060556533073999047786118195052663433185410051023724663470228401868535580665059558986784086983145880592840735685620497478050386295887224362878011574692803936091609291038559465975140024113024993180485364911614909835744572493405754601258637607613236507434068339393816347607830382355934879813912747733323528432924024700664815738605388809157851075771354738838216054754895294348167759067093037818027274058078740137836039081333859886411086660655599215785597952935555709437614569239572959553415183616990709453900962613459920203229040643976663558796350501670186547063839105518867529317024491884434127073019934976310334249014832391074187897684862109389997831000846873390857828707275261672723310106117631643856291802122209845648775534880606993001645932941579857819107088198297026557825653378777710170887888101088266330727646184535572135006541446939840240020943786842332373731062139199895542612034052472730396484555730332789300883250702159027252167506023910826540184705856364202278837304882620824904014629367014017490043789255600153227506561440374116159484769426696707679654179890463848628144356985766572382120772970595443842048316742720239326464153898544919964544783324052118938731504156791259903706351219059386432901751475384036138287607857935112147276905536871295106569297199113674016673711417827480464728742142995703575879890392893463764979104041283751418223101161912340829128613331785689436948568898138176763714543344990154501063855955521050338138578680649504843986271052968221765366419378354579459995632567646318811699781368058821178813391416071601276195370689438052827018608869859339747084560415807632154674095712461321958321448743293823414011130783227299575278829055150642904042479048626569134048647342317042903395795383939580255164053604186766149512351658746775563641763393404652000812166858322701038153226763710603528933220427854532887223952274721745182101738029492105115186671089046925835504862974182433883946958860378388361513329138515221568160887204868204626403855480781236811324431581758807480444985414718335055829784669050599064752816134123496829736901389778287245875933275864275312790219198230179525518410639776220072717293019845495860465632477676038672438385526349143145705601078300028561718347585903512282455700413577459298103218287433852589392296431382649851379653013816020408465534538612217315832594278073535164002139837140966691618753373116285668655869412055069193611692985975541908123145819725185428708238071646099538242569253857699365962189194533901994585884178072135652056665611647138947214522518154134743547824316877611360154368526510368631517486514857783337334701702514979598042616716300953350724396782619548612718308681199287103235274150457403462350646043575090239264780503078911226156033864453573931213591168940795378752876128359154014606539781233965619934050230175340937898018886942223966606315648729749114699344283661766351643604273495484572816518752771881759495105249012032130860160242319522769536862077292500227717277223664004051721413667833096864768549962902728253120015486986715364246895887110224977036896951073403783214200986456829615373677552164622863662125769683351672902106073585373692893777737845958072304180151897411784828430529805500652282048257182560988562040758155500946278256419569324927039220687266223569897999122136159123879941463542560593355798930755501876720101691406222432976610718339189542299760063703012835332161564771974055702586817356050963907436796679255864115551398942286387651659523451973573095114277016360304649929656273880133097350637889048215240092905563539160102885423432430910017460842543879749406848631509011219850161986662601835730183006393074170723427842501267810578280097460075735879344180702658329254600978200185589239363598569128935098176100661785065877015126769706106568832447361929691410981986532432789516410946195354467914912151114477677277073282719279908354001409740281206409089467865173856386408498653484339852045749589819784522610349854300697813859729135306454869863716862421868808295015985921812545796939580897351814652326647797250398098961308287357594379185627521628092609176885427535541852313333786267210673304634757078928352343701027199903695370535956466311670511709046753239750581905934330501498433722830629834908768919277426417036003247216680571530654271650982620328983976661434038111341959725734050145222706864653523141079580857730534485493037894194759500406263096531212169055644251537427743082064195518189606110215006147350280537420248801498820266736247185283952212045486640509374309157234204964426984647100586577217143435265724775005404442248027187703312363915451817419223272146789742141821979418507747930025447514188750850335663219528099933957659772979556462733776746612842902045115462912946415126933208798989744264031163998014047236874598662369860301063731570883282538927179704114301622196513367490989845816691260063304644522519671157153469502659414449722682415346780575260147220710755757374302734643634953559441171343886391573062753537877771848986711252798332494775806109959049044827523466164179586125147464344126894489333785025423870851572874294760248569041319803444273562930470730721277214877798966909768085551080011413490043064450628222245980385063542404949153169853741657975961779123239125134579950212063241372434780327005048858319984204401642333355995389960801101597227856807915851632592256862333466945487831602180539170676650418290302162236537963743303856877177566851010689729307991475845781089220964569603851549438092687126971340506686518963700425110020809900950937339388118327820417608956559444183332010912025958501770142110188069171048882662511402874765669488155164023288859251271536524468284995590349469232869630423239969952946287630887867701968970447591051004873576311963480649987739900704731052404924157131509667379579846514298457545282013719823496600801763206325462923814564680719862465787665247037290491318999544670026030414600869325949588438323782589129102272298393972360321084220326630101284483305872878638423206034045500784762188116214884487214409786400613667108968237603221401561528280053878242176129107728026171945871668633117308134526583294298724926672479910763397803976793256687508615462942613912368786404504856665934967144578784980968343183394513272259843989540261089357214577779713894474702367795318402340826382087223843584831690327200291594350989821648977571066060731430340637737188432670340047694513000181788913665140297269434554312224910346869485944349994502605309663988854009187586349722864608452470463021884194150300329654369464675484421054036491980130150237050291313991635081713203375363621919842396335020600013500441238013042856048565031469179972050848832220874867981006088622420505706502352012887410754199604412653427458832829350413493806669260058409480047809203082337395124460937943620938612723336885605079185829068578294684387546504928340758469625281334677233077199760232419105442947002517741912907827846888620720956217148270243404591719292830121003172198066477910440474687032453732723720538536567527435390507085295528278310722497376059285540696986304771087394829476706473539154550832933986310357569474846787011140832023299484977818577930625231372852129834046153333581525970124317850939422230240438564262154557684158772760270013758413957694300722169678327548854746198436468658775208203230601981637073242361242483468831991946326835651654539306424998364662581503053609524267432926685287082170313040595574800521490205837656593883633443822603590305997320233964090819449855039131813490782123689455131706281159932982013374273894738236274498464430714728309508398151288188762432774116141885193700193192434212980246543208360802472457468739350956263793524187512055786225818301439356052242795283638812186884198581048064863241349715134843754985745580264477811297799152066062675728183504937528562907419429024078623112029012753884054256797505147905426412055130085126186353867136174835021725729014691991433674532922176675225948628720756402758993794640796312124016130412643425899328289643099699470259138525579205839648913771676903334547548617237331641690729954009102303594805225416042209238312880371790996137862792293434061709185772662652484136578107290218355325797709380530023310251105105868697660748859527242304958557596859455371051438545001260724897087307656694767193346889189843802673475273769855782966862976945029390862788940295529721909751230932151532305902466241695596481957219612437679951827882849892500815711691041402227707347338135083195065527080004147062383719974661911553491304775814806911180695643001712037054175514853960036677599486696821029566468822469867554667686059278699797372983290871579434746497237376266536276892623103921781276855809131687354614616636513392641553555964824552583393537365199054220094048358240969280982520867338628001726956697635232018424936673192840482953423008486822441314293605011649584416489659296725825990608184581923757632874706303639395236582654196726322018264339866873491171547093305374004463017352054653999314725427528527985602108842830521547990243053790993055738969520046774279394658925527282328261613709848208174388524219080298456121848417952042175293520036702664719565252726420467919727885479889878852232981568981953019196115692773893045881932809099340349396894565583500950796920418881113636362874862995028164476052899912906129803741883269762046761178569260978733509089298461606151594659191195212707050354522175648122119833108227035487031149224518775976649258310841885707779701228302247464625335962303876154510242108942240212207458441399051432691453923687719695064336933725148225436897120362076293359093827035348538032990121023474463653388843624629597616162312214501174815544613465379706292848185830471442824016553928229034047413241380162239437903552479705722596739897717120943308117668793762769517981211349472706760039548665477614041567750524877562982072842139414729950744872240936012613317835912331000459987816696218671175855323186273953567349368258555104851755050940761673693483870879144394525185476277931092770283347530704085039342181433977604595406290387300344151679986032563877511217101664457353561653960561093574507068786331979340253777721484612225643235699523615584569931951795934166288144809378046918043875156165937066146446658630648604231745113608965087856552696718702504818542732995813184678261943017002772652447451919981203649401107219041149365294535364608098732275228890623733231636507534969410195932500521223026794539022721154674159922521229668781875262602702528432920909867822919160139543393923973262951039956559048486842335576271650133545207651758322559248470766208485539477827970947463513824615058004796081597108912589051308977594347779634058016187124265172967695379243992057162042274670765402292242117563981079552037250221857682430283862774037684908748616190071050525575822486540479340471408750255240641995684881762641227608812730726245787545495904674505795101762068033408124284224975253042776152681967800825535033564737250472841309803972642771264830628082018968628846076157391427830847826463107911914124245368910185797329229688998390935178596365375254147228574387949623336324937734122492269018500067841896883288063963094681610353938067228777099063439730367197287232748230537295274408538148344115406277550488326139408680884082172921127790613098912947912221612392000186914998625517649862651574203783945515645330567842381238657501881906194086961090786604171493100841727442312687440944589581649001964921568038314997153474194301841984177641473956014311392164925751480808077143933931969246262726755407470886205308152876209211995253757229819894558467170907756472373919471949300814688651944878853463356161412670252124135846787099533882729493602070617847753151281762689492793537341438246374996300728989007725818213412269638379698289810998478304152276349356795082050304617909542671747316407554560398427055157110918328663954359894746606944451773774086246416338518398925264571662448089490211585961710417117062112538370350963061391601204193038269236836577219663894144879369679902793987152374205296548130492162388203715839071719735608049300159924259334681728791681714728063425268337006146223783157844931157914085713361896590268040285353157880922134391713950032637979950909427951968261051761892969855152557855885830636120782205152007819937967748274535353209232904585018677992593874510065440946585610228120847657718512734380273520740213943661303287500505835807439855346204651228075501384093782980308441983967358855115937693606243944540869423577296549821171224133726963874850435360588854302135951664614505920671649908889381058404608834299034189453595990093151716015419651063351890826753730864885846894363873358500318404667128879576973324886894273087470264866767013005272850899578336541188011837387389068860752374092994937619564429130771016496188052858930491382212168372410869740455780521731055912433099984805528086413563668302074591816364183956633641021401578978563618670158826299403358623628251710781898315581040841262572685556432693239439739423926104434839654892708254457576724366277414876469771424368188095391972906293055577427116085049974900978050844422476222404085597937842323093151683078523333661687522678719979526744984027219074394725704060341861154817892507137465939381320619866479543919038274963559266118790302011089896420555756400138383349701305595940651792733242630369229837641351031838139649213197311039480385166274871541365322956811017404383870016188151997177110104428154088812710922273757582601553453763365528162490163240230274509190265983923317099344365642043879079754552950341827756144454894086976888727945486291862936001996338920926157769546529702326734825619465156501857602414558799659058393787763143349667434646771566947173524923831903770283225485206367443474738138805214282799438776996474370167487392731473186214334136157341390103724597765969069763227225418100484356457055870215157458693496873698950074001535203367030349757528626267275997747227864871039561854060472430732871796615790467388902969047011457315706383901860731139305237293338186692901767761895048385920771889305774324861478378145833229838132388077451943963490576322281137109537345290472925344355417661009980027077154308573591884954068476682995216321117397094307241327732647150715793066388518493370784523285085405697334053260647642452207646964029236852044792549095585075832884985250119654279428868598136320268681059043102215936968943498053463621297366935816395048876624572982860424020870839452568499962601284014296800393539576316446639583994991708263985931697779417465838618901357097000007249209352993239368491788168720927742643142682545850634859264504550763796617263192115025235540844679177671387421854226421609708611216638328101922794890369971679378338205929212624671465810802024129068464136174191833647208967793987639936289620473876058015743229620134109859107229319930650299710445657049869563584831441833375938805988978225615706354263441364857372741391246954631942829320256117859475040336003006725402514167490918110355154814716160781341452802340892387762164774558893044336550842418334482624730365560120359835030130013251548103297349037558693578046082580622348926097434802677597938505960508245596317422741395323838427173995550587928429919272836384523850855893081331713532001434666852801613890378584043650875170864358283545658281749418649161317456297326048894272275064231212219811703155036372271583251610257154454698387526093459962577992414031474398784561664317303122139951436706885047292886153458662672323875380214631877324225874137058607809776671821589226858525976420567889873887832394523266791073350252214544573378059230023121116383743823260752056899789222282442079434777101564497544487482293071770208220112012309931735072630826216173814361256981706062566778780693307301257189969299914966446643510647685415671312852874520249478817714624368143094664747563223172295928686814871878676166540380957903468488516585278889672799506410325182403417622304529802958172986711452569529781251172779243125017324842932255593833409533275834370213785727958990901714429423979025374490070962532713558613400269833774092866924708357645294914233361703704296181810901371928689380309686793342204310442622201444081475273047016097891784443438802660442592402155406257722243207294918494901782487867400519212484443428111273647435256522949035321820831545525088955596882870748094979742958449434899017769311153036169503825125239889361263074945877569595827996436814682151261733015062250145098915939210125409230084499622151858051747123638875960079327706072388427616258026159068196449850771939184198030786112163790871299017303086302893338195832641302893648677399846228787135602467870031441481143306009954626280412870155823278316112541515138347836721374336996106994703650695004720372985128759503415541365544849478479716104104909636483270587275044813038395206231450385285298936403118637258601418658774366047772402394410412353309883192741003934953606203060594245490626734430979402546246086324751272336980084839283742136105754586432119119234957874940499733987784415917487243366604418813144918797253977432519570970928475949700706705491323664331477253318778720031897486651564456091280136684720452184598254828991839293152464521797199271073500708205850466184007639380018217803757725782564134787841638599444336470595067074222148893348688281307140208860311006246497213755299886724121161356445614411273350735192131800913985886128026210691103710662618751360355686063806347128729270576533899548986598481251440338190219481664442270881271827265214119731105738860253260270956035044401461862682273646795482786185735155623168139039096206736822590426697253944215272742288795631243383474735257379372301465581538320214928602832502916494025540836632148104283911492543003372817212099253169778205677496513962129574885654328161460455020290775112604618009455262764946362464620188417451630076881389130304251929594185889583893889053602114893020175858878773358040442465953074793327190877160611772993402243494589924146402102409581173070456106454720240304504692518180242568553293301632809147859775277351522167604626202231294900721870596459304458008671876817612559776150996852092600618584668678257314455766408791842489925445756285958677370063351408127417297224295647895565690843682539065354950854197134697081068701051177034965774859389222869417409490033859238585294661589503243369888945899448015025361614545159715346722777868308760450447933450400309857894409977450453588479937352233132722663647965592226820827611429999136490974106769609358744183111137125350402235445941862726228682124595433603715800611580840755722307516681262819527997297868276197455028587047873614657022755899966764018004497242455318869794822353021844165879525881513675304086510448364452811589143579181706692211999766516053391546426417673353222424395310555432728769293912043030964115747902610695223938604482452725954721428512009664132788862296066554822283581306110186092256283603929199404634353900746922711534324693740214967774368128444921097458351293816135809843425793572594039571644042721525537139509687775612198208569041454792368177285772597677434110303878270204984530986192149133672884799278135537251955434083250064683096775107483105572541155272762736601368813792851353025806443483535462087439786478739855635492155906095192349550404164163029320960279758643411997713513017171512274456572661549588290864534251161002711634523950215202941524735732988263095846880955069259882330693970255202804959637484459486805724853947252532796613666396148701930583989235723040387376975915925225725844058405834001566976146560998069359323862250849540498357468518525723636761557548060558210270238730343856749060667790144144151135524011813308536834082684515791473444934487725855508225246488832163651201108334143063821290506229386004660263856396319322558838451983396829504641070433304203458830429891574316667622145647374064484784460240008263682290306707248281454367276677844040229562682702973485826899557461851443027897073498481271837304854210112253178203546477806156884675757936034548350255549470683074799304364773898649935105998009656610703622263928196868358119886123207426817535645174730097466272970195289798857137751398454493887145123179693360269019471925012118783587272987108646562964872880122823628349780357862686363149899836284581014960165973030162178335062419494474834438127229944959344900970098630890549107481756487935532625530427430177830665524570200758658344075298756399347180682286833598242872907639688982150895531136221935675030446624700097786264483882811069571524278730061421261953076513184261836395588422582740613605131035357446700186867749477982850828607643939229298670213347947803882745235114205670599346866428160201949334213931934419934611372886698130378706953061840330383824169004739283338499055107909403776617433064979030825128507068246774047129927517129901901902708186688716322557103551713575473550452076317580228962732738453171684600915404154350507954387258377552367042819629161425353104710161010796248358886609519411142758651090905356705051787487573521042702800780166457275034494862038267907641967525463943331113225998374298796493825825395048724720619457211163018135378505160819691818113836845173891402578690765939022008258130885483470484786067200688287687087548867813937220084066294114756852625443744261662626856551262987015660296360928131460989930503691850553067800395879912869791291922884142832181342310877209233794506237911622514078593964366271890102643521200978261423360726549520539587819023905147585373690322707293978893358661848111498130294398633641980152867665885353645345615604711881120782825165291832563318618711442535104608924452780626765563878857944953379804069071630313876272694805784793648709571334201719801291722521191737848572064104987861316819800718797343669980258988690218373333854380009230839882187901753627243679581848778649767521815430300436336977888480897772843986105689100354017833068185369320300224659107111672718391026602211982587664582823466423994049967906468992962696503430353528152103036671619998822209056492231455920839992805110276945520537607786008077268153284519568875120239509940773965739501852399177289527903306404748409367568137436545840051891292638406598199209030696541809034027633084772265697340141407729858036564035409442874411438418268466025653154960112054259822518169141200836173502745515338951292504841343038217823892418774519152561802887825308401148968408960619899527750648491765443995590529325215469243179779791776905919499807943570929887100688662370131122227963061759054020806851486898677161299467077907891865644839230512588983048927046054923947177257347140033983060987611543026176845597405650394610412530221286104895671043396289959278483070624908334539705225717568029518827114403592609608465109322712752931308522420722355332142037388379936922328299591024297410538571683342883141482112415566614581721016073252897330555097977673426677650525787024674004049122974975189142131890155295229016212923264644139726028209544584097244932298084436258889645808203012689969440391143651113101462973198826312272658985661451838591074657811943994929816406716487526042963884608757898414638420427440954845926783438242289331986913007799979099413966166640852648622297207360680115211859782403051484233048231066334716675767966947032253979114966857747139791601975225874310632756960863373540596870463120524365053140793375088721614528116584859515601399205694194314886202320425472273402847562666679323091508603256214764682595315334930372671638543455839795257720499677356032545979448797865853912001877865244806165865759048198449586722525209944283221988082730861434001621734918572720943817966168861324321336744856899541442559092623862123903719360516885961581289159979622548571727833586281716159094751058367005484940681056818809644321193639390405894452504962395193820164321048045878111429408026562206781060262256310329645698196592431527387583057294818592656762433525031592315641271149224300634700551938829416782500011511137953046267323143053187094020679983843394383126152205731477412814407545639802401192126087999610307150136756758321079311352026029391467966293733739776645198449672449774034269650864105385446680299679897417158159935081117494011173231210757467659669266132487468399123081881944425450024753752723414790347177893260963158241316561392036463043179466312091322806180819979613754852539950213361954206973465887380362561080447262244047784728666144064291287900248007741211886612615722723757705490660623163067016639587222690372243332584813467828073470330664571245523526509404638503166423931728138929610831913462863314464168191081850442873872287581299495131253102566534360981646292826345545354123915261403788888007028115589202313852335926672905432614688485648072228083612975953364429220269774989915243763612074132097058651239451524395743303748327104892188245253240139675046454092430839088749040062149021829454568686925727164860872660242993007897614151182560410924444085301845594211810402928989885295722847039305142283576820204846569601889951494787058473477648967237946128947931549344937671672270286409234257685741887512669305389673939622492599946555775224517339166271718373504483622819184748168258010887593594535042300000128689725535710260470551283062502323600854674254964411595776354650805124100561596624159670152304134515595816049581461546780567175270051445019274408750810113109476590667772929816573819096018238579853989538783156939904461879756324592910356058016941527130251017893224283230714849098161157963343869606553803495545565358818042689561231272920964534346150916090807968738740725090367290595906545209985131075962165945661543708895402603843271571148680117767579284941616916237668829721215563032441328259510750152406696456869723640454485752161566337794957760773653981566090909978266461228633668683929853955184091250811697217437262707985868750372984422552950525844756042421040304230750579483164676377834044067357479706183080768283154403962005928194329980998659975810167974629194233862351413200221281379869792576753558549659699419569626878741584872574300340980233215285477793729426217763189454025083892488253735748630284875973644254575336945833267075427630205218611754255757238217348578045455584031716441358377368642061945397393328177172624376354097879603747073453205657074405200068247223571133305413063438700382862696771528853826620976461166482729723330907118150386867996543606893593570257268756529590937787809918868610920871872461103486621589320806595044959133045872178952204544948953825620106646399763396157033511951544068626544930365901472334740188825578995753745908875689091292232525826021705045216880983145671725995211734521643543061433389816737376171418909716763260090644206497876805930118791750419601076224445177147719804160887275220168217322142348342163069130854077837829922261708505050759691540628780694177004669923160674455281011430702001823704791898012612972773400616551657403504463447023114264153214858719477793186793125679153100959953579355086539513643841304227663918202119347788993542632516495311194599765466260245703541523521831583517718065266363199493145135700605567000991325359362530492496097897181767654255424879271851157786236800937554338735396159083610339569507878091451103763019547151877535811381230518587324604979851812747059978740152800921881726605323978024227309293057652213145570837019575158402058862622033093965685987779602588729817417818344859228812555158953517406433110339402464224547645651534703034637456298165131307370280809513495055292635102142183209786635632835151335698786220610108957347073461636709195572943513158068446420697752744941429944024230066434659034333586801497219017199353555650721641428032832780275105123696602192203302440066937286027331002380461898185733448269747825088682239212462210318094529812554185484403843269430443089409440871238250940017838666520760915516985731408100866003593649624571177201218003975390392577826984432957247715352431980979606466350902279633613519486755131472568621386246127925138713773376003601959310960126417084468677765622782172589162232295140435766026301892701213749251718055774503782286660986638633070457932085142516978250987564127883972241466478888139349642273626530363672250488735852348737397309890517137523464979728486013258623303736468415312558958182432353896303803301361815363638223461035573934131093053204140232859929250577212214898234178358637776341825965381891418306299815625370101920807874241599926262924502123208623421125872614646647693546407922430894920282191427221616026150222254420880409745377611694738999813662744392886685570885393748582388521261431491214568920159165931865745086946445295772042185922245230435805560052274298303173045011871243016706582139147245442830016890260867248000131885673362974640613772136208196572857623149099691251699109453739096576929191094533698181514111501508152358254166942363839509164475964846374188621253212793334839631152248889509932008839495282194903788269517233381685205009599560505108733462127160739641611157693676345880850750801420106817147701936692917927290617908482399627655999111331377616429394354200338013061901671781506837569747548607637981902085932775907640750956772617582428091717587190899205773684880652887710962663057828824366568137566992741046891450210293312652669406891184257058109445194745483938381198256909006520941029737044523398825138170049190422657153638165716785427797502565243845295287573182710374939329264914470099434448243224021573152801384667942120413903557597225595624851718027789081693514966351598100945140747170494232484507934679388999950415540133791530203273975922820137414636206324685007370729795509659183239712238900276042959583523937300740431145778108839037972629606383160463470765047572098975315832256888677296373038211196902431762802876280301883761970912837071683291360693758638996488472255295162572988829214712931458408686164727876745530878546214084658036401787503960130133921554075822076159713845996569668841754728090222324862295684619364792865204028297345018967012711789802008796137600841720943481186177297606730442666554904631856857258007407978344911093629386849195440940829386647520676393304939736651322303660671190660726246605298039161664335248363599187042084269640416072522021928278338995816332477440249908352515540115133534565772679844829205404605576954714033820508501983526147841496101513976356543768377243548960841888169207154013822061323409810571473689095213820139616457133686267572185115580193180688194885188969059867492896924753213184873493752694286026098683083755715270994886440028283752873064164257546376544671070961729586780360578345132476272641158473977184470669919782473539131927131919875001557230392807457279696165076478693219910720864950869259273386239054854992074319238354438020898005910509555283996450713661995239383197941220749285196163681821774430128184694738621822806341056257613577143631390682201784294500305941837774944250006540291515750027391148611667150807771922289771785563956791216595880224975020843354836120106688150573936906590215677974927072016169707216112381107922065683111655637167848274370360702523546542929017741884741594856776135069816469543576756743705059878811308768347180992905053230975554872376666781765217361854696592138328377202861329954133639691724920030365734404278840340350741803720493897881603400721325766907810666218368048473763570191452066741686592415438388458376278795679467965810200547412850243997366231577378568825159247300547793181471688382532934395879528786806693427580081394370459393954978009792530895483112168753821044208418271946082892733167737758042974632495438310910924972674796372750755191049377541723970860373031572568562249849889018891406046305201380015916101844258789340280132348725968692275946649411715367573813096985974324731011924948086314383253899477488558218696085376247399889480834428886725724044259778109668577550757086317064397268929833952413911099264215839800169719099367504497532419452374003578092108559815138298056247328444799629070229162094311616276521229467277461989629187256213574812997949927296459483290371168503429880471666223331683067264242919487551534562642119028917783361888396713782092512073372550798754736687483367498487417280479621250500248728740646094357764903141142237158595493352106514973055437517868191505557831883480314743544079866504838913611885225877371617089071501679317690974311079191315000716431878785373169968983412136567952134237352651062610889304007409955922899833688363340789617976009345331723051774725153848101329002579039275034089782044299538689120024378659204399830099672946748082561641106904118423154657955382200742412293050262828308934863638071854857069586526066732479629979194847242159608868140008146699558713644877166521357195477853044941402545398078421191072233120256786460086783446483270817396239601988265667049553516436407352194988173100198422202974816279161825309236219260176124104405221773999826795230386490102112354904551847076546732815002236658678412429555298445532000221967422860522633784744663882001452981657895332867507527272074212999766664027272304890478948734241346008099700562413308465691021986298857400585759196194229922847939095800553126660523376987396278976353174452955470169538129425336610984422970631324412488704126246220059749326931874512075430922233992129047522868047959068988000472417485173558269619681845196853566772372366176984189959423403920791784377101628279972503582441655953100619229803267024415761704703401820730529071860900476699902972932862169046074205279380143798538841268151052702430609873965927198104217403680257715909117630910100908715709992828838420462136850774795670393130068144711996760927720760689906645416854300077107546307554165202876695371177922929797356940085646063267640729432656402832556053987321561035756960717630404799658175547900498871545890066493931835006714076729807370614592848012816444141968532095767979498390129389695038402004457595362668118625550588410376779446849155139398176889900342573826391367161216116068694470942739729469694974868432810978886222999149307084031743832636940364102643850063411827958724384802125098941269497441103152660886298146838736342222314588803400378509072935706293917245997471118951193395855685992349632700349274855364112695410305256175433767776471008763490861825420162772528059202346013151888134446129216926447171447771546512733705547553045367737263321883517788571279311764848437724569336256153149168871032262806084079895720545034515227714828997734669494914863245422398295218404724429017161186564432740415356315512303513682645195728793285773019461422933629459917892301168509061742424759192351682371708367525212752387230240115250467541992157675275026207716013747794143897426306640076193510665539880636332065746110836918069602323396218688526878626974463896517278022005905469580637144387892812540631238866044330935873669838425703779785075702332903375301286580926727401450502274062032780177605748997585801569220955299359658265107404569279313781230916171273655625535765304390615064719718803586975492583225030807863451338595457342846039779985726862648203207926554169624002733066699401488340889093715199720712438859165576038037437193324830717788714553380308736718069444856776267274323284295659501958184977734447508431374059825619895461067672174423251089825830454096928208592254786989868445235070128723022343303011640393635679291408713633904552480494602162058624598794150432324348076220565620663497372963948502571576812142427713841875373489005684100497632660641817212510787483580416683803149644874358981107122339283403438347245141081992776062327930806700412300059858011336941639796855463460544533160190984408207580323649623991724476256780195656696283705097870882186261916363110206324116316550338678044982350958335553630375203936256608989386931798454440504400602164906973556494830985254546365605493133177254233655096938693850690322389364918251767836087943373594129850607484578210192100702928766991583612559167644957126531047717776117129531621950492141067900238678874435506968876982590998410306576667154275086137069591746161835293792947569105335868722274414944264632401933168856677401723728935488126156481952297642590786773826297457691998152986585328317049402995831747014896698060619369382746505889432959792628954126078188700170124520041620305523955908310109499400473398658457603718151458508448310896917809966786519167587448113897167919853622573795255219147415091141362124483066629534713231701200915273623157616072957235490622097419500666327438964171430944310162000576772782051267960630592494486637553536322214022774712202129257938795965545756533147814811385091095097033671846533146990536743404491609065147486069870793831148960530943324315059425368567923981943589982278600217475250727638968048342141080763090366433638804458722287995693544867384852251752157219133530028202844901462148150144319858416693454055406580884902188526492160159025243908929724713087008132192798401659479679515025994252203729552962060417420125100556632838794256570742715120285645040459409838221998116441244138907150370316072642682375327604110339046655403119329625755554439607295050232070166383076732464488836839102189698200887909244683985964132731561093622902852893229065359386921568294854938790671434570206329550045149335369002245890269002014874889216955930780097890692595502192716203289421741276577823942357806357586255387641561906300500282228919491417604372394328787998424332187276719801269748951408448694920724557727732774066197080770011074936532745075240446008802654667779062796363055535458220750264536042018447547641621809638340210005408496835007475033944004171891640770220920773685430617771391179075392529546460427898355820479158888287657792603841645332393052325127067325225643958843278542528884684692009506000212427728559761849463976324671081244540650015954008970786384263321495905337587699157426553668529112196049634549620767502372448926653320196963353742599325336925471363640253741525061484455935870142445138239379765409957359325917224008256852150445074824023881090403464845664995294419021415834281001180721801051622657020501172918547700289593307716975880832123734942685889776100906644709688206874259355774982737814269928321933370511433745690711605131736590269049775422739190098216923608293246890415018849014820327662099973329842520542169349980849666938535313192733316336079032053315095633117436234230977573626181727809711359610227488859642406734550811342392224662091492688784397765299475403211510651425706765875277778628610404506161390963844713169381188658392954609014295008754534608718101369428548100516235796652970917259081128524032103922335341372808317410496479087708631665549621831811711311436506003030215349130899178691040694850995876225035781123244083426500053753318557245578507689174524842612037499163592996966335492540556341866777664692181820511390596952149081585596211352153785928126103523569690087424265254527856797832458087973291222388119199395915274360305054509569612353206935482267875130490997390438299068999374718398916184896984976555351766604005872907117175538882665551905311718774278726687583229270025455258064657428794743019142204052168506728323090978507289937172165394479426481442489406871100503232224424707603316180844697685115479681901068232115869376780027008351458994280568760471040181684057957881504026250420608760760974534561816729229401382607448496464421373940062640706227066870254660316305568526217769325894197914931950976266427505965096745685567303827051863021319325464634214391202247065010935457437777994503973992209382647535390213442761725956608929533806472405094770084096815185793789428860080398138930834600111541660560505199427454840701606290756105181735761821570248179186281610651896611944001471499137171621534099108042087702257062774461145190299929119892366929141239183451856825924881759239341896036429917103042606202747995289238563582940352583528648113901907736922526811238562016023958089632677913906835600380782433400748812537927146082692041680601035837275251337388173473844975976969726348931231052797348469650905203030338814217745839507105551504021949192936259188608691017981715285887303507364699453138428038255319318902351380867093345110039526930573154107437806713932223689093150384567773900744629428314111118929648419102559686068675991832758317283088362157091832214119686596675606861278107226534419023184682343111002017825988256309495888546132233035348226753668142011991960181753656119783518340517361552157948304257005750828225708370185386354758701761992670362370185906205853238585136961529204096195378654045609216900898588296054775842844112588300870622278721824024499328851225239689087591499146534753534222844703295100941103446235145623827735775060183866062959296578924692429596003830318420905425037635053142644708614772797398491985529123221522034279982002234721660571983953807402892875955213482937443470443814503170186322157025030655879268412369784527810775374755613444235855163780198702772154373398972892431362658940026277448156091673201051058455527176564063677582901618459785162501277518071114192070749967015740309895683428687622652929644760673985088646887004532510911246039343639807189695839454392922773487834382035583119919655672970643460957111816354237244802025161307065560040010490143400830777445264403750019048206582743905509333325266167697551675910278414700884067297389807479363684389351761858002651465851675629393868544116463750079521938952915338874260456910733412416810979673212697150021847086125121161650127298735236096117160505849939327401047281802308614198438253163218474178084733358393827491388149320954879310655932901410806129381177469357018346803604358949043546167656271706161780618324257220718467605555933235736352081435425846469477738481166782018625650069589730692008139032130756961259386222457256322900463297444411406725292963734293720839527916375811298976581748121597745219682991337411329033503302556576161135121106817821849811343619334505432707172944925213738849498101445195399914346936233016233775281145104009236027248062699163864295872791165944344001399475890204959549405692623779294954790848452405872030354516458553798578260052496730488778292095576158779228202180413263299220450887937938641905733181303849964042321449898989212459405376379524842089802858475066575461970763102336240931371972041008204149645038586799369955351074996530038314595264329146130192929909059314804134985944618592285205361406971144555361275467655614660843792013618454462415773659870399893883635269802415786343054858890881610528734121359004232320123135228186264674240095258691228507187093289267076467480300024585376850004493287848968959106005756152927656309217042971043821846283171515180562911205412813621990669620418714389094162097335031474222554569660282231954100530906028520793150567237266059115745139953918010267225319951664025647700742470660164159375304010971542210347634280857271671979536908255495369034925855636567739267743846948552190569688740619766861970082613759558310254220026173388599268083578747029028017747721100887664926351867258689129872887828350531915272057027577938643417717267387521910344429960816340891602217379655130257381494318656976540418743029350092583028582476021855487791023499209513689950922367860319955273763310991249215749593659746272773800876766352415647086586328150248109487068203300682241530210523515399494967165701283523409377166537139672329495756813695061833353314331982378926387063911022709462655800926552876295539179988403813327350167164213029174851191744879523937752609564436592441700989506815613846008764538218070258415450883575636189064317611356372589432713766311420006052939933060398019152201519696139591928163767626462248200031295891526661210432120708681791230878864257387102288882479193318769837839325402002869917846881271221955256002845850249541244398182027816801377540076205784674401732082426143688443200217901384800591390748491631940605314203202749198442670688503285045238353276012939020885691438926841871240389215181969759673448132484706379691304681182406171885392840052087006366068771511667390686313705883790972448652741652976375357321608696349203448233122087972942437443054053731282718663510606335670650728065088233725588157422122015094277785181008752775248552598527069248362481815802187190324761718310126031525203929137141877353308000968475602102670255289830510412484551332590446978470477925611600313593393723972145122430998799696129612719696030502610655849368873969940899031542215902209258530292980460678261624613400167581126367324725855942428275745348522648013255455605080691460222810965588170562055422416363174689058833676231435242348448277380622472028510271290391402285337077064591726224680404315992343713138092266688150605443513703659293828502738584146801813587436205817347616645946868402571292588849670779690217794066560976628893217456661167685537981722901861382472894713271183592097467103697322318100455228956050838647134151928881791955498429139227278222432977026143570869965513606103777704882791236618468615592303806795344989215168417267024645889464364405348694842488089121533730710357185530578954614319496705320070722429847824875901414641518972249297366608076791970912429440492491370990651543271218829526518325857368961915077562808568846683393257083746725864953604896828616039719940796825161582964372799652581334844301071773212694266559084919501188236314122939052233152482367499039981208221124043682717567505174929492025722689505403912925293216435778955793999093380104116601152425336027510841867145451028929085290247259314334134109835298731611918529995252650392719572983234173474569424643635667441234523450032705624772975711134911221002817337274566665384960325356804739443095811094376215387341541599746247963132435752812192786757185863451460125871227462247346549248460927877451197380139379845329242208557264762453638153306431906968904391966558925821087941138763304263482714157251935281190215244121148846750603379292682703310888420827814663858628624340705525042097340258582363511428436249599212879211896359390006515210472175828678633682226054034751146092602788840584622924574627735882444291158487471296055091609155413737064629509384256252142050534953059270588293144031576928125613257505516925821651403981612238738577650141161424016513030726303145948530853329810825967705619579240901757977982680968628774094299897013255004087722012993070974851607680892978912053249618912499520495073572359000383306815167637310332242323630475209193366587852869718628349651698181640062786055729878115771811986394761342945909200774803039654710617179787594862516452760755009321389513276147528149841167956200017472110439602086461906361823459556725282714318869156395647924196142161410826764634028547587426782734315797329496800258672430166950430626979773333092808950508581938065090892276926852290120434123255371475022669542822683686456761025339382190315823456337525613635056704482745260727414479396062527646981893462823215171643218356399966473584938772489719630133668695648721013431386734961898609199806434343354795662510947535165827908770512301728856199863905114542324828459489309939402722611598571010763172779333443333672957008806146986220745773744680184254917041050511019539692637812771063348981217412029756162046902231869813699165748779674760251982704381313028710754311026073571890283350376439640976636571155750089980055731559684335160097008192239374200222080221109946048044959036441764129733855916715378903281653101806168902486708153202266023229535543804269631675445955456219530119373394239220528394672607322831449066809953035645873755956603758294925957435873540989020411695074058286454182461507225099720186262225707891520238921743691299762368457351712542013299554022923287383951897553657537464553806868539014518675297681431666052828460814403591852987887432208261887236097849837727285350888495579715192617823839544238187678035237203730728630619725673894172811901730130787537744668367845946992273222082546857943052100021114793761358945638376607690879567064011187740025994504012536274882170660119920277215101495340985826314509175045974684335932093163337781309454330228037889686408788872688760700046703816529578740249302725631654239513462042643288222691423203346437609933739887117089458706170098362220555077688345850609336032078008695530989195931360304428084887495776684250570402645535976625487465521680383678490864799542615565113443493742014491359091785176447398433613429994265337036898935389550029337430590639381046533085972246330382511513542915497672319651291967931997470584258555329193813852946436269884083487877393701361442335731924482726054034158401558329900841821451594822318606577802181752800590173406070447000178489219551677306011250605549536506436640725023793463417869706498285055461479955251999379733209331835597585297824218103768147693730901204258880395800977588752223068555017699379651825215033243350475172633697020921066210532683985435433650733065218570064003269103123236438463605274383928964486269512077200716402859791889298685604519312336758131503093659925814422798197446645170668170332730789869041744305068974772727696829938800397025961315003913363207960313831511664751478634752816791481754445116989407613424885388388663938455712762968715907511254669987229920796126349132183092051936595228921358265500231569082489770989239023656682567557230520766765588290441806177979250043080938704765367549764277057135478639350673048814999450805712513648135316879322365581293257243533402912694039173363908055415742649091753314603887910154273309995593191636282982550623555575572699104193934522688262994169448487927186255491242064526292714814116735204948603100724063156908870937790538635458328211918706207886995265395268826786621557279463977354511212981848495520049528191919281604659074663240365977882615570424346932946406274564119928078845887390886373839350368798349427571936741532711966171608077470073969270171740456302636421270943906733868273580593046457769021034971096862617158737175202198642414592468827698690826480923210454469683248464801134936435146999476646977103025222348365325730608536138815542552005040930239325137230176391386917265002249140758860979875016313891610053255990710002443722770559455302790477517121895756467390789365781710266096718612402852955760726887760420465910242251231957067880234793215636487853894583401350104467404060612450377122336492756644944748905982940423174386401030447432179517827882335717464687144311387916935131348729305080935788994418897695351809469075116495401011447167305196138251675514960912663016204246245610263223785706764393787066575990950229591773977232767262909953408702587129607057632471501775193084736028494490723713995770603491689255656560694700910273749795449710541053274363525543320604974536640862691011927753491673254234091526922757230686541435367600018863647703614615903589605858707869745835862053458848982528488969531377320817739763599735712876916443133155631691588690695716801456052654647880844537435016252848479820894101806803509455826375158437197701902190274117106233332921701217170209051013416793190872745572454775890592769143045097523070051601390542842761712681207391011646884738445261877619126009687117348328626934334767278449195784602101139014684971074627499262288826194709928444028788421888907724933354176298740508636754336410414956493609707462760335653383443226858185392213611968020274092525584675997495326131542825356008262597381716904008498047988406182835755372119433386725196478836645132319017242439480836640835283827239763105174304964424469967940864697653612719996268459724876583280348543904738300808937892119791490368212308208178383669060990625417747902291847300636356644475459535108272675154147307966288103838508601860079970909667390138781948414287961257126185765933293096906668456394786865581711909198705326614090930278387878296657957439277272556940061691592955598158535068212947098544981390012402220656020950686240234178868128403837157721713590022373847139358585737367545854534130997098703286432531326808471473779411378824128788779013292304880363718556861309631928059697589586812266993198714939255141004340490704184324701690575784534331851021187986042699330491718946740083468220371061394555205462081527738227797970820608696893907442419917604213454627487664240993534645349447078885740705703478759218101668710865643258469325548840321897848318503007435495719717168940332770364568955272116190555546712156599128961155796584999539449620897879244532457059790480776101965435009115808981093357358060979380165813178154060793012490452149567900984528997321364432271085713559427294397484505046868120311219356314650620940085172291569302127250202206376116462998121030513130511736116530287079303348346952071742375704852650526281262448835929412418202311175975811712344969513708843228974535115055309442621817815176018795311758275063979920069396461207664738161820723838377527749092988310844852456514032610165373659713465412456312947274992610942556183124170991430320589096448478485794711862190237254305774020654759683560164637007628655421754061557680568679644887987191257358224434369490236713048630891824814562702686783415332987266542747289037710451463431578933038602029026603596257930799297896636800347635513773250587807672226273652444987903952825782651982488427257473860569197483659945738466371552118929820398061936433341346472023811390751868475306520619706001539587966832280716624002680306786122412773409094271408587733553256646282273500111991940813251288760942943048344692208703713134832801162304484312113274162439832869733859603802929887812543106777040518193965861778818448042099685247341196176590527422585995160981855736440688228794710613739218223337862725820832072570157206300214861040138118015613775544569176805282155360044906845082607722767616606512273712196513983313174303653821023223169700927559375785442445429411625166595787704623885211120516434970435528324006232929148849294659956002215325777372049108760273430085281542170888814353455978180304813456971506732672502365686293977828352091789401638135496214235770401265331306965500623429099364662644180473275263799182374274623593348573050213122670764608457073865620708924644398960925678616988746440490748250137400277680939632804999781558173110756745708175145444204896680957661285742498411181854562262771946902074489550170947518656161358609194629711146587541605759441103733820400511080141884012611871358501258472083204557190281702230183682544036554470551154402765184777251987652412803179286662531151960959377321774660918734370776493856074002822256887354361783336872111310724826702294578649911940186556800424148758846940640532784192147681305276342301903272818340352469418904487921105281753240071609668473444047153836478054696959343471302601717379486517391571835429499553775554931877468470636789972912399363368861177758533711628063563863882408124918147072619143914945408663297412664727257187426992148517737426504057849526889555268553551223499971908447503448283126970213207954515609371741912747454037882382619588521029836252231246070953016026306517161481268953128816769357025673622779568293770049533107571409192168311318818821059002058900270547590920900224875595477611772586969630759642728961707116134395373630525690710747425355177572876387176127445832591215486354425200467745064252680051306731237472444210393550110067021530690774274303836292461735950895163867058640956285236628189514060449651792676253094476470442284237385332821433250996731824264650728656060906723507796433129209659680403544418399299598723897884378872022791487646005038906214091976923556611725789550550403178739815154039408317761058804780143938973800050047937565915626149428649932343246454780797338475450429079244060060550953158426620486831752539905427722745588919187885912326969835987977510409396136255740678249503559269374332595411028341808140188361379151227903706316096660434634184498867710937541181643639234364598358115958626272860095542078657242436204013577054203641528572484083942848106659493435899666441654817369301223233694164186214278582174556692420975293582919055827819024271387911736703365878773786228927329358162748293955862810563143357672924142895558191631867330252874179111302788510854305693686556765443066331114735145011052240120507550969979341079294014197436637288881512182285661531372183292409807915217485677713364289564502005349803557842160202732144923165825300137761109118699775445694792231510295466673720573767103211482964944937840037246728490847187103177244608923573404585357016860547597920391983310815903741520057528056332521592887902257866254486937663836572106494734396390123053082875981880227870837857580227555337602345468656072997603018230187417946951831518029947740921244113018999997863380386621684553933165057409848355651725354741385556867260519274359653496435646384540153577298742399563052164619314993672686304508399613378600966832063504788494883618460008053869766753136415873852074704217782021345422353322776877615313081570506174817483544609153027531179069763369167308225783314660536658552713585755532501068452276977565002425147909210279201287601167887711855879520497955794318248365558434029712757508605726744065215011297690055610040025997257120165877314189908276630341873233185928880988022042924430240940627284420633968064415130301856493152697462059065623808373575996706924655177776482907501361343091686399265027496862385446059365819027470671750716190772722229341694365849696168544917459163495345583186539567260683172398336266052687442638529932024318099619890448434965309962087227327631397001833789511554805932416692975153309338344247762356619277552545827794076023142965346099189719516282080619617466552081038217398773679010870304629777953038183433896284173919603905087461000887148941733580482472356783409196415449882699003818323454261006477203063121112295664715773038913786840062510230890763122560468066022541233176730319961356503937078532763932861148392169834541308347464520392153727441874258212497772863565712539971853585378451689290186652907308662367378474624647219995382169070235643557041889693400725390821914615877525892243639515365735899780599439421003839080403840249428072988561060338313883352804548944960991225779380222348469251410807376258352814063572514224959767862315601344262039545788576014842176747928967912704738130906321619818022077169175005476701096712278090459430722759668319177953311185546716841027398219419878386950596660229104170496029229118303984734338497698009199284211744538584816645468969644415542310227532558189042833670568038816035135950524352842542011233559163378877188208197890747927589561662844752958910497536208935393991748564430029554270018649747020502141547406911784694377276566003115175263482460719365186089439166543798135500280463770796725583687715468186637691963164284103921842081820046290324076931729338623790757591644091677599042125085467524940395022193273716472502380182089694889015093928963434559718539517404478057878162501944154568369372396207975569475306046546812539892335431756280349420069486728840245722136710269253631456265332548288933951467777321555681041199599216362879022108039733984541145708849687971713287239865110530166765145245458377583858321630250845314985224537473830208527693133567505837181265332827439654002407633841751612923677836528442488124930346411617139386104350861953033493137381346148066854709863392917924287337154979132611032252824124159144747461702945708187142115070145734668671256600802311675751959283929448715542775328490791481373310948868666075223676744561677197670338204678164101996145929447247642830506717429826332341748276706451047984159784244624524418099275164907038055897954814865827582242134823507005989139964467616720042868212980162733120233558717730914031528783070741206983197678169927275665506218925376037994724069631600840779447695622414637058587672675098873446381915657347174267970755202131487256506328852810379510034234470168637808699231232488452949122403955898444935047963268998600393899936993563111211752005925315455818118886276058059951748318285381973757750961931246125582002167662534948673969904380009348388976320840602232737906889844398232379838923776818897671399494985324095844319160561779800078385648885093609165088710493062943002681014526177088028629681984813888653884203012811854167882034192913873517512831988894327383859676930859612859348308838710079951692746585648081068120006721887920543896510682133978281664778887031840448610462366591413194909517150188250287122910282696089246419942893666048499316278807529307235979391394868986579893817767381060705456227214327566566479668462320680455326359347406147528501689102635125724366646830542663241302158003116807756599145132412014214662213299887187765793969685605500977305841169016550823955224002021248019525927038604851073473937249624184167603253286721486652898455857342112597782117155627855662592975751518699887087065537908504125792921418081983992426613699075198477855162386731262542477580231290975188371107628344183323362787016105169530153562903091686341994057966654777602568611630222637668262912862909007564397536796681914404610704955536738618429710645855130202183757703377916701724251952774917401596387052906108803092009173891295517119879819534033839359027150193754009010279045786139588082888752653295656786804690216528232343479499082778879801493852059028039097151569257005341709694687256383931783967530120059591476752038902069272495956964213606263162181490617635487094706070754423788138073348164507960699697506832464023967783105217933968376057456249064196712936925051230872970655860497283122464324824677073501391248775274310489029569601880166744238974785892577326566374685547003296877330721985438051277407808829004043367243467486571059563306897863899861051356852545362005944985597689857133057172198421887922934301555451717265488235329206396847455167387680553174096108618810723051984397645710359943951130585012742364935612460281144061173936562286181359146345979852702978304936623719692004417216637391170506427165703561540223589809974654232694429340265327838846670742394960263835660970516359354926777807151255113145058609467088052655616337574054540424940810568373074282669360236581170066927705800815590556462472016475520036647301755492937236661503645457252764453437359881625237562363464555922089091987484596842838557924866686523204663303046676646337521874840799846281619713947158862274753437256314514738671258304927043658537023881396018956875863477644728660297997902608916815228708814724222375887782860374507585430016030424398616655000613493759076522626181492846885070014953339326607086191993729013413302291377393829335445224908304196496291878330654314732918164244162607483466497660453894156884612259345149565961918956900482492081165225839963117333107265092909435959364127211043380649562639227582403715378609990126066470034110745648629983992051820958356230484213939055726746846027286681732988076423661854770642262422732713331428606285356235181663636711501072493799125185522297030605436768342364341246264872979398437559494471196588366531414837981901011570607929072013369006531306673403919012926108361132003477321577387755666903984508957483718221457499191529613225004613235005562406053839870886309059461130301622145645692647634799368623682509822609291239311814842217026487635287470130756226046993692208141824895117950123012995983368752174926305022269228269733048891512142202169817048306093678554404766767708936537654180264296233896393197931386570073401427779893463370759043897337076475095797605605211714825496532334195596214398191175687964303014794094351192079288578622623693637589688001851665549576559750927267262187221695091133623721008013106585667067885565129116287487504700405609550793002410680438067280196727362665846897062027248877595889781288925469406781072359742880637687245903113510613734338846542111469520887226932514839117621246046750938338268539428097221725754782144785235700109823262164820145129897749499083691545265286679919533240476465722564336586411046964598278622336150783131906059633432735187414878364208975891102104913262742571384968543598575514018911179657746421115886386544175071008484332113512916667977770326243564448178749005140091431284449519662663874796449280279280321509251411305779658678698899395637336924821968482715336106027370600949245859506705660703322421561639065468326366974549002662315679323902964239770711940682170643399784093719323528813720953830110753327720430099567887545262612030775585662325014525734955420636155756766449032086734391830438428074402755037674970720089924951099719431403870061736201975829693918564951180273768931164063040247077229852280561260282715907644369673537307510933982536471358928544299071844607426267182772641741710886967830439833250141658569819640526131428401141719505014733221790868018632696115572411055654962587158386716678299839759092940346114986026855406095389247815843554352599191442598186082565525564657734865995548838049379504928304641180511886913776924581222011965190603489090012326611770472354846567696017863861616389489074486343560193190444532230792727573610413611676567679964416054937236979726258911854299977328947236719113056669882711575967564746700574615848471392291065277141533898075359744416239220979181231332230407007943336273907653384379991270905024017156621793474108724780676273190525189987939405613124585412353769487952760218612414616175403325236890803141022817925149266898296501506004101923547890821722164615456538170333669635064594466319819205650826330851042686270758067170550031571229550732413225189659925003238776660909815687191969073142276226470366043707371545013453433671596823969559707102629668635799715053180536201368650995412573721632595600430260718091023397648595556068750621023119244654336916820767380641860413964721479273603561800591424707879423615693457911076947114075407901876113876950819775053568776001500728693732469794403346107253911057892494446507446158024034293209927889429162017342209075952676763879128944162901967458452884330741670655704696434989612774134675527021761675529319431564409311143643760452122255224468001261563798329478518767634990340764101227293091920154910274347417198005749466498019932787908226431322207644693739047547806697130823317594618664918987152893783792689072445277032344457156097876398156384331398372798266931374337511449622199242729255161529755190052307521415135525107771545314343483092038392172758023236340421499246112773645095473838677825330236932422053766493069824225656183743578083019607046783139607675629166995350753576809973191227046121618972540746567575134188496846139063643841282948130309617873559503791426929628161969131941888434009737936310807570698858245070589359343951988234102569488577852107998766864686916323959579973722907773164383031135582325963242583396247438616672541612640953092388595068825032131957570819582790201511641202469899993814186833782685442965322626446154450843579269737304632946147238374421627086242684203072885845245932748746155479608165378783260488348468407326788044060518821925606884375677280911209692383744112416132793310127649794122186985691041540071441582012086351825322610364228427653368588735620055639421935548934585283437099902014758375882409736618258533849168068193068601467939148892415381659432201674528028951350986808835929740177652520201664655942135585383202144472703496720555770777862349262818556608588365415946132347826299712262949695956567790640192214509698111529918614108717091314657132654397453213633692966572106749967574618107814610499101869850017992905183629297532975206476268110397277632874943311565683447272151342613940974578349335518259692708162485351490632909269382117497929039592822119299512303285864415307167013309901141230451073800647298492127331665477616801700078381788585434724200387655738600568215958526387908753610859988078017389394038086542959910279833730502115698602249581607454511694207943320834980690047571618781608111081967012412395380954727565597237543334905616355036765200148348404203790400578326307886755889515511931548970984245013168605824266401744939497730570824033310847879191218363750908527401367340496042361485997832209276526823698624476391077500501692004501129490932158462954683674880232510751160236474143778033287054994551980621580812067912559524357165044792285741463562127332818747328506768562485794641216672773259257389516798376320985101158253295734962932178791872920742117643723727695957366463271443617942380646124355610783929457865014457398109016546935928202569354590849506327418245267390134871669828771228538268479733680903070924663909893721009051999086102585745637706159209449766269106354659378342946546455823770221675145379357870800981493795292381311612539310016480367212627992614890316611243893082653335264642735146267546669971879292145746695390851985541084049339487332143797810312345849768220205419142239132377770134825727579777687692454706483262038791383942427076764309163122474397862682042304992847249014997273269203034454765239069331101967863702196887767474730784661000140990547746933289029944542634345478823173686980511738669184069228786732968457014248958343943417638402453027475289900881612178107716103381123928392623056754218736688234687273728678566457313891675921418591237196490350559823346324679700340600160451048816640929277740179039449376274723730310473475740596167833357260749205672025059552120686935056420439323675204579634758299731390341599390884937553107538761961757850733333926393445423816573399209252121508479727120794152639020477972400465160202764207177860946202073261557173565231124961769991913158518444475424556990403390028224071466531258712789545590076675878235942303792157364812140570348293974470758414235263114541465353295496682977197735120931282848432811162999688713137443491955343990943867856175577007684726917140251856992975372870661578470591011979408345757621571640784923828119044762167651237666205494981400821634504837516109099002724183134225019437102734372256471084627606706993977667078753169773433419990797205397384244965558770435861414085555883171837273189237867873972760791413120730508807347474627487529176324208686752013931511072973403661679186456991858022667988616614828888112526574000892360203692900277190873536737055615803755909871670150191172353472169953521584370251310361775839195470969065658892467570939344029962104670102385802009925568559335833007950241855194477826437322926478643481812041671302869598473847272938899409953376102139367060918912055359153897643553962257315707624605468001176743272828353347210522948726507611490339611824418947009381371981657135867930640477005032684601924220114477449801523344391446155621469474215702727645984079434607700130150829413054471159051410087479735397475883721342727213487568027991311057184031056679439924061852909243621762722052913053389019634998968760692005521227009343788823699952229374850477544736046087830389915277188617202086634600220163962867110570486146604797123987483392775705465509708057435173684095160447055925421332374156628775582648200368043449406103899767756038247748205667372830996345612812419096476832626282333900591392255005076716452382830701860855657258495976462099876325536772307116665351379636786396217116935112711119485318697123037173042247413096848862131064563764201139748036031423270526644844239820235717841069827899695089805443183540446634683023746417181195443417521664552640303424911904882766292661150591857147622539680779620634174427247676530173892991171821369283602615273005144440267352122817288948588222786091306347453104392547801507429932241576865564949500905446225426005996128632850370031869912187061926487266832040393969870853386819242757506820384964754829098332927263949026826162931938536759341865420389664352760289939522070532085107119559820646324908530798227665558608304009729283669234115407639407586073828336947994706475733159307964018994073522934008527527979726071688527292820434008382262013357226204422332712031763906540321061594892148298629479295857792898357850877530406978124786365804259021217930391048739549141532783611126057219778782730915737999130304211533463001034516615800152515850407515882446865130464094682506871623877060528190539742568807554747726579321693510540741557201266933881774236778591902281125772776374591577919201154606137903658384119985934294548581927895184380944988818305809257795326579762393715715091285988772068827369168835878270828941089284772591958645349029189865322878344313330768728858189477182427283947097893452957189503734833759030003470977335273772116373513179808028556870064010809893249303930779222801493808468095445212461751518872997086089212142037446180196732979901860124107140434410272727090660353011299731839943189473345983997189955064968837567848210310787550528577564709129433340817479246332250138100939430961375081602693240124482870998015380303952414213644012707687087356572006278673134098468442239542601177813343870253451170751722838245822165019851982251808566169001682247080613907210216519996244243102626303081183287364698398278049199266583707236741944751530519850713319761811353518900381392837879657233830493769743079716773710754037272832437077547913779788652355053498830903117380800154479447343618256094334309749129066209670325552042965188739062888418497459348722552177973905262503327359416078971102283331050401032305226139227834148370615436851689188885185647164358360625648926387577265194903464508265130424249662677039835353095199114218045762143717568767217312398774875445830806395621868079323103882481363593991534217000444212388709422528694245367345108208410509719327876877972859372039957491980502693331338055595307047073723222541255045253239595995441842634516250596677041863597008588578405660582130880879841162679866809050535145014191599769414412566182123374252346246930293468136841369715025013258483638759781580940089011909249035854490548980206898761782524791893569942291188844941645220539170685827164317317800414259409607400230671254235582605050594425135766301062337197681022256004271827107010169944535394589603093684588834725469468641362376516952246869440373734262158846709929878848371863367302451039454600584989106310760468907497322313777504442650684488148614149137878596724032908369588805328920423551392291309739226937984620121088341108252967256763853212925513977841411858818369310028247509466958692613803989212763238155587986981455086290131311365915755585616776605277336016932851530731081912872607565498253553065370971943933912491158317873089046867013330173126964466354701494110942120638747109724681032736559105984159919772865715964011251347004864903220255852769328043197820889400716964258912247092502952272874325993377101533709344581700411747055397332020558756272170902462996784979975961786766559671720865366025393735927494029119564742798604667080097412889381473788415708738727687240463964649892468855964742982533019375826019951326061335626926167397814131857222375651943271834618412092049140250748376144455446208807592353943381816621078269197766058592184752605226854157589090869430885922104043926910972193343241863365805559948660394024873566725960522560268770753746560105097371842167051512512037309007086310851229103307904802054810329227828125412737073468208677216982453995126955831429038136521350653652324690057744810954859023433479141845047147444133196634980224906204328165438617012051246475289776569522177333623496415888262871738030232405735917533082632986677774192340559325625273859456733435394257479074359664318996741116825248006198459944874327357684451570344625737285670877525080129219499418323334781667136909794920480832695831844576372422292690793295533560303042565304760291200046803295634058862876026559564564526143042938900960662095367825833560047614237048082475113131020661760463963790456486372372765320723669221634184525128647446086023591780094461641804923659865299531142360088328508677705528429643565683515156182364557253082543317802394613347020698891857554683840360500649174562617936133455534077574833224653131332504221767927773546924585787555587664248836213833360538255798809504379267681619444189557475183207722897551069800692931649328312802083276638607009510223243779861855890895122677015089780946158405703728086935409648189998894110069983967348723914410420822855342322370513791493565799245617480149268137580555899158833336674189946038394049797204711417228352205279073674074747919591113487780028813509161790647229150824122900602621357120125157116363293260664180825833831107431440130582797083819132536574029241049399956893717572040201559637171883768273513324168361728058367499407561160063279574883334448742623703198973041832911302495005299831299626972786741953356216675133955468643849480939702973456603397962174017563419380289930810529735268810650842301826250879497123911965713422757227703359645896841256894072327945831640595619154297214802869918597991210574559708640128729398888921799408920588699050092551066249187313543249556597994913453710470852899860590946525841988789795691851385300042532544369840523735079349180952452208343974356339973088567516380128094709547465046159727560983914898432853919650803247138761910047764309857699938725277967022487358465017388753500199327510300519767291894438077544084719703325570512134363902677816369068739128924522889767088826277835228021009508255476526878867961936474266505043491128886209167779945123115529004779271266701604116965939691935361460119999123310851870031368400868850342749367993766341731880101941362358741723775038713773523387459498647608411310196149364424577785511175833098215510292816840950252699524366083835096218003236093705394606560070634141454290331856754155872349057824639840597606015713208121598965220957871537960809599808113140238723170216030930258983135269831003735750463751903692502957877749253773810049830146684350649695548758947458557498021382030638296378873216643265386991789674403726912049009619014864455795458979979842440271326167371414864426204882922155615785271879247864305504630956358082088765279805861060931331320416761203320222634255241659860904720211318535586825902979616539782328210245957050773678611259801959341053354654007447572273527596724726260871340770670201988968024527008520751718354708517418967691460125990520905890676655829170272571326653219965637890976958901958291493325852547459382292462263766073014910355321434466363372159427221296220974819440863702818079444352162759970089288475187724807985132532417964999346794990247029907685208726945180529500954333559138816704917876660599392143582758937233354894309694068226513172239174943061828313903915876757099399137542620433432571894970474862856710899406623906608492632319435180340748701950970125015531795056441371167561036286159567445535652795960229554568710085189730993395447188177991246970419715095819578258480104121001994905146513622081222459731084473535057241273253633599124137312469386268588014833022471133445259783520755182761481350448120116005632535656198480196155054222432100361242873218859566512170670325956954938955512207464807170479921623354067780315208953012629739171413714956547605885893493812772214941064726848960029520397308492046487629656399657121178354832683713111714248350101871460766357212277095425851627154467161107961390773395409352070051546626097207819155312608373371919071776972252666404035358302876350897375514449103559994934642656849772591414646032931158819740252776221277411410674002722399143910708952482567105519184661790081258040000133022257691629882663236034835813739622545006261598173973819074091795015041379275378076503591109425745429590536348780481142032253522832561272540430871494611700510401321112566096375517101037592203227587308640503681009071594618533720020611009626108259334438750140693459726581949198508425287663976876859371667484558465950412717709571153753644668844717288175379985405464131498328729963806063284204330599232644602802968534120940849523409202172235595951104893546585885585203462401523563158114929616676509798133789109349548382567630045113882024902677044600456673332212637697686360674866479797611351845355897244712985098713590086378481635271668166768308606283976943725240782380764190070413069195029630722303041301854076374671464211239584381023416121750514240356325807042514830438420307622426670747544629656320943591423097916013591080717137459565751046963908090897437759777202258727247171680335386868218049882875345218789246254628145945718796779679189985505269114098031526189655075020712502041392331445266983214596774817500190577518143679429951674796656105969227895490220003183877435056723058447351128124208598680248132796688191181917597015013093815826504121379959701522507080808392622055311751163958492590243891391531848351713232011547448826936783845235677280106312265625141364885347381112526643774734739325103209452532748088643093378118503337176870495660066096744741370381984059757090183954083120521781086438291252494429104264370927963530947392713833442440075654942706191560785808052769394090809245822931280555966620202639155764458177109215498365136381072243135432947269180128886632182173723802051966201850313354697259243504999665311597859084015222477147650544664471019160534569710708976716977395278790222334177602194269189885862964891635412059920440953159441428813850291232009145744040638327841468773147416229074237844170606806334423145767009277050416614135482531724743025807265265759396135000683527131195501635916900042602499226154429846542429980755229065137220090105956228163267927389256028428688515797855844525939604126855848564317396887600129573174998197979730425926080768901817443663363764308914073326343424622258211152832271745675295588843739324775432105764885439529360659189189349602189217693326112487961779567500269931665548584249668357716910552933126302680609534937510926141569013382010707230754730970494084202682953153287947983656992949727249913491823355358983119751587334194415992165879424901430675043992241849239549832174962134465636360409823605778191174323164801096028881688811143872111129974530852797200815452067219200151248634027619139702564543479217597533082610472808250367678347298982816381052647448807353982355740980356299993518814536593339425362850130398691112234915178688513693913136651715940209076868726514117824095897192261738506236804089768309925351388402896903916453185234979691331233743480250159384828202096695932777973922843334124754418134709572555582962202549040644260900510774940973431629254255621623459857556951227277402273576372731612208460504003532715666988711680907461651928179748204165145202092192835339264671031317678720302889224917094834309449296804533997652670772413277182883611949499931926028548985964141265061591530272599647956637645710927915618064615921087911195710988192008318743399620761318776099335938305091184275800908134488274827312838515142669150181380299740691682040428539507437517044441284137135010285595702744868138377905389821054556363797343805233548236072737464304016498076958744304211731926809197562119020503485210483962646296727814359150113497287471604732742424437217347697083855942838788222831723290811249716108981439215108419200004027745161819392939801928073366014769682363487982767014108735079572376615294969063832410111454130729880506484829393056946572749714982586202918909893550827176893043132461434231060509610694021925167379274017282164135717541287339314299059471924316570165319088785080731982316138789019955809863572184225196261516394975318692803311389198438301543941862479164266684466326582025871935486193612241284573655966804136185147524812008208627953586668922630244683122217362623031703975243615658206558409814476182047103975956019660817444956099785947162640846256298747915457101790265226851819632339559846231507959778681730431877817952716976085539781819958691732920151352293076133447285459266252995909746459514670091302657189967467623922078689317801955043384057022726443180583231018250234455890659759247523755497600955831342797750057188669478632215355319870109970268369865007772136186087286141409697198589545164602115887434234924997019257786258120080631688365246348961537208675673899811291214809610423876439180835664322669664121457814812520959154562633157068725207213815984788542507307070263838396327020021026524366249028034973773925829182971619567612335675977344722676724210912906676615132757686949053625384739022563224651795816185915633416204809284006339269929310403264114854824417067903911256941935249036662514972484664469748946699306685585971734821982937424161739925192889559450006456580357319118918822317028435307704351858627409023526603189647561126475878965371706724924627518237210716941855654771510472420133003773406525164622060374028027397524804530431761616690149601010434747023157175225124093531194251166026356715502754954085200573262070198365183365144995645397404534061026218204799502374875537831107734692903919060147554345450151042347159402357604295144426462026808980060096343763458810789750199993814781539740871117377142232699399976549522243788007501694761470318210885937657469730479626848934553616799249707125540457236823760905587752184740086360930806044597687561903447318578112847100734746914603952648655137997336132979359819283991424555798397926645545261059499453189692763139014899440238515942969575677281237555107179676690300872857951075187355094559152541178819610974180088666515005049116515152111861418721134590374972450032247908749109520527214657208546266347167190060573068940205657413625982700051401718450124711044071301041437438151948058506345350001712772635714542970109481211222281027911053798088566646535911758937447695839852439573097948818921867785371159238105963185311615221891620791309235588206751208783064621031051283028850081171649041287848928218739892034531302074816148200357826067972740521570460072888795591572759609497863902251875755803009551555945407986038006863227553890653199913925104908899875006067915490531373689234870741574593219880012499364564676783046921872423054564860299023359413905751821981305143027184096273353422195846414420851474195863487559767895390799501410058992174996249779981945111068463801228478618858911299653172127633156829416781287555002459001670917836503597222247100973636557856280221289770964363420816571211039575589817731815051203334458171093028667568870529678772837877871386782143758936129780127243739347239131674469786118274639134741919015075173151806899522617834143953683721139132696967086237720003620516665369604727502900068224605536406163730371948343948199958097850314867379561549821368272089677946059875634899059204209507667080285904122918106921302672098553355894772818579343047184072981303836192802132709715400712873410713263496671226570083539868549284004108231861605367760019200132535925220678854122820530973162659694827658062955659732432113280459272762919478302277348745884001675034590190999731720866022991000512295943360871389480480915258286032459649119288352880477461582944496570415536643865814812563040229552340160377397477870081838932155940378120882700508782226584572593571874824965805387924586925221795456123204659518676912004428161282260721623635197748323653905603151788587781155650573798383331228118411268066972158785935905949862772423885243632367342574328777557732132991728069598561628956156989010379007602929041224897982122907783246044960257923109980809290345875479180521754117005117756139822258372299949614697206088570060493628621303278443838969664278247405891730597999172740588839371232167777703569400184171620403007979573507200961291367971017385414545230298655956010630599271310120352001552106819532158290077936937620097198707860298183653676777007506964368755447343721955548388730716734820631567968867169468328384285746298295962685624262546554109188017766611301181856181409931255290040851987153673222848547875096566331346370394020661018835926543825521256819464774738224666361691399980983106014316680388074975544084459491809517520298080430564972838011306454973854753137225498664066424647812664921837014227511057643289675294823283620077140546403753372370562486249451114100494686656334482736668589826645144726531068960730263140738685632515168376085987271410071777075534670927951525940410656469890857174281597321249310519326424246908192370589419239701879119003700583519497572889036346935179047074342339107263899234564621062951441174814373293816570540597628193687871888011233464707666589526377456089110999958605927898293517353579217619844548223285106302950269445775286143364511587807914088742005802396495186048125329581022985853783280400828819192621729727478692791486641767724842312512398252088514431996001811076181609503361890672577092764484228111257413665501533644102021952024987878758670084787324180635373628377810230783232495049744999617272672388144754362347194391342365483089636019569883273970428326633683749313576048095418045582334132598317414350522557688784314486401518856193251147094762923674451995463336349961410980273059821504314478798169362435215321848114191552376666096834551677077848839527958945140350048798602650943985808248612451006939167612385021315576998480976067338086371347146737629076198023192078067968356754345153693474439658273403130834294415593838742949587489947928881625540992252197023132134056252168001531238455874219263437207097806151822335249100444470620268176262510365936138441835813603403916989215425040381368270900891483794180597253468028408185265034343704577039455834958736864252108816902772787836907966213194333407426279214064607103114555693063352968267228760001670331781197721882999765008269508663804268730834496464148046643821716481288558822703302545658075920175832671380979477422554181053888012202759144784462934531359036931395705936102351128736561467751913947273569770254771609691674319994988817989798481681100342456635640325703263589740703636276362591433676366169099578924768686303508260837328894351544250111993272079117179877440044632635593151790509931299976785335856980473146071969193847132754671758988761271545870436406806689928330413276427488931789108489239308150131987935345582480531828618291746097769477031391300379884884000095024797375606282790889105856626474023375464582326932574185425173619467351704800869444822901181073689350883699500358693997242460757783070540192547464607388700070688055343671706496568327724120096603212528082041333849887831263992279448389173664737002027640381746347160076110449546636620686620343884254846156834566681093965428995811248287557813433150013152540475168632731614159617376058578600161293672779213775374740896574702183198229583596266557260620402462085360925268205496672635063714602808622880820103945611695474989090368105019245567282862971906717462014800801391015826617407702102330460624361329456680621451635162521489293824448525695849784261711234787890315361481844982514383848295278053545097715195466990535120250151279932151987315311348000088715494039850096597136921729790363409180047377757603181443304979943223559928439164210274769215867005372315681439436346010776110477444759040121567051421017879928411734797401076740185378258669960509921310914896022726666989034452193288757858903625117603004364328274818635912756508992886564664919482578329435298303727013139386320240455908496980016520723748454072644894066488803314798500821755677934199250378438096617335683541123916128653666923728218246350745103389128162593339198853068767239248362070149559492915693388536051899616098882157536552509513440962979224665716742824448228109649139945997441982285680600502575556393969857981915109389363934896259714777433320950473381497924066945003718012119011254952663057360087634752236651328014748934348089636933721764518974846048058940923126665696285279320682018243475065115248162578514204576736993534780294791457330969928727942414335582831323558786110385276105785003534484249152689484722221262784113979852981124640707202537425714960038987326940161472645131372194510890911729655912574774838505353945141221371186227690373376176493134226457433363829109686157245085700551811769217835408827191323863338750526072720879923314751317409642874047881992138252469447888983074965954641751059015017487006319003210825046401606179955911045563221553884854322090055681266435454531120230915040450602157782566681887942887178924222458525166235406774912748313039926142978784234745502377872931474576122639238022884716807558262858054170665902466529012744471007027704441841756786572163487740267119757578466861033682933515011762178041136502244089131410464584286988378014029971879041872600403310640725547318206355086503300129477930197776026155536089434257674532277152432944548408083640499239413608931474604660472093653594622122798002219565536643859069479122890487636094186041876193959313325677554219384925375604965470298393108515379956205789987500483890819273336154230277924474333946726304948533889055617341974073207204951857119268183397907047718590113991307517436702366096020694767822886221962577636013747852211354370162881951765384734390441041885337233235490469935736187193598460893174279512773671788281784911659861735976570374115697692002502935811453665346054147862036211462289775549776110588745022796038349307163592817250390932086648126903016956672444995415266292198237105683112219466929979469752277240626507726174412586854434945437052846468396973827036346888417822371198139306241651861750684069550868212532918297208706231654365751030769399959672609845570707993531271717745997969433876673285953781889834375380099878698179785982578487389263575059901677225680366475930913782590447074706768654784393659158862556865919440343765332938856994669860515627938465511378575349345721281489149269696604382639290405220291642106700444629435019671130173817541440091212893141515379779709140480492491626725001328367003109936795896934848703189381837739049514338104526858064025864029949957788246121353059245161547223908720391451886453952558858191243266340748064621734446776225259902263978288787328412127842571588406929718409578329370382626778992146876249922033136643381528792867049026979950307378714113982950218694407270830870485137022467426119716470859529185335906403913340205672167707797988968702889711805337648221706696144791345035607758480088625619565511255207552407291844192046136139738519367097571434573074874493778011297286678926532373238885431302985200621978384570140610793484020044823417011960857835852432025414809559739367895460073734681276467419920425639590941073343985711934960203287156293513216503899967431469180310756951733887177232183212889066538604684340164693407273642868499674732564467097749016177746242355084598850892876002521900420894370102529844574190893033432182491173184210410540888474138095511090369440284165940512935130695065367392092278687899243288584346148579410164199900868969243374468102822584049589221308321956219957764928502308147584479539233872601251174317047171544787192112058666118945767001684015251683224164884902894795107295147367715744287889900457903663998971261382236555331187880613639522465733412892924508538096182686674635482479744644738522160468211035516024188381585981506552258503120669083690461550248043230753762120902056523985617897811973994247037440938894700006137612132894313402603765524517028621346765231114115814318580715972093905766625305475313603370719930232870590740943422832716639706535984038176255108693245115239581926636796112657799677725485069534964712792144147206923642038192587889535924202105219234481452761271646683426745958560905850052713162228836148739362564601575467769903429383891436472847801866642368665104471319987830443136005170895811820632109744239727981854976228578919789798708580364329113332382717545027329886305348934256165142994321210178281867481290378984208714836452367833178260179052261794488178318567225865494221940628072220993040602885442330695197987777978245777406161262043193759776995943659605281595983846016295956619072195708105913947144872881945115013704257092417900844786944121498235402239949228958457954737301833569811072176676873576288814494398468406186945552283725451617184640442638751127828831689213496844606462182695003986977761433582471598408265932468031489204364312245691294384471066832171408739847455438395776052188520886830365870709089681694280734334405273002969111488063071015862880793089910289434665921800277255626590195582534751048769896399111704729192321157352837227928999912250607212508212288750563909007817296349117445136277484179634021422916573677812670649915485527287795673125682863017263332347367754169142463190835031688936311006233028753889052963218185569454820216733754674711659577223386571804071510092763524527992716277527640673158610776047449617128738738849900510660257807505218834826612065712751020629871295312981965175823705698242382051384802659236074562715824365793926680010543732842017534005666292122384313857812591555716850312237560418123673430075250800988089921997999989239374941174489341032795526378696432652236710064332892822728157632031477291637769801007829703488153446383716130183250452820666070967256618451215495104483694570983497134190897190452980188148859030935183175315223893480348647900322072461701230158381135039505363533449363233149597162634582062417885398291841076891398995649026104908371852181510765064211261452182517667511950973941986165421649177284926956935421207284209427729996314286744226329158327520216875665266213377807482811452437629903086832776832731808808097575893949320277975000207345349726608983786089031686983578541727438014058435267932215198958154149429673691266344006207607591991494177002307743777555183420558187305956256160762126015244902609747548268130233848649602654417525308681712814584940686194119121394204955646690738429181341183413103769486163830744346287872636828616509243371436913074881472202493645653670781729287386678587611865010864456161047208178511775307780251873996736903373522023696964647426734459396708590710622646965848938903207668142702915173685402162512531654221624775686937381374452098507362325935783648526407558937767653239604507854209684558814466750718540870836644907408474451325709768559289446451743147332903688812486590592685980661180878133090948200725381346927017982471389617479324769886119327750152663994407555237219541377047641926978928833409388477507218740159036433136804480000027706154493923694953400633234392420779752294815803825779281396498463975951352345534436106215722471790286235108813367960401625885927274234233612393532637150321242718784183245907599606744678136400934178815424065064800619282816205381325947352087998133313342712978406291352769413069372644479004075067806163971198980306645554757543182738847677146416467339359941250969768025921955106045828443742938133488830567854233312152690020691133750225295985422948824456359153687588985851605882259944462153558696159691783380490973746641313414358742358957366118464354530716841874370578523297019754660574142315148407311916127421746547369166940913769381264686769676701782829544639274745651243910932658130424477419214197030907460668852056656837761181980713849922230733704922423133968944682726359097904322248254746876036089935475158913865980425440905181366259760846051302973572752349055542253533322020119039682901611314423640274140751306454177514689746157211142239462806034080633514885415762150564125368731953387372458236841959849897257689627665385862622119515858130376089795750553325539936955683211332923729204266648270862463216916542863064928045579109069357726643137284147875695202333988580368600763543080254057702634900727019480713357167622144760883353031604290995102701624688154059268645443693818259006776324273350955558252279079257226618183132047234661994473063010088285326033314234901350392896933426592479721660129412271636330680842575358012870369942391210681257764771840022896405587088586499853607951628157916250447530069537027872202572456408507765382219828889372593420613000650718949638041653955576336778036751510449153286679418194243680084258844908833473555401616153796016308968532231548436868483303800532786129988218058667138901968389708257837584954018022651066392397305116823817393165854945160132937564771162758348107640573434705046666011179285904230930527435708716305643830577082792673385663814768136216798675586214312935705761443951416100754667285254611717796359848975604594133995327228216197539876818242820180867433211564365108937041832103284160300151597983091136191689716392524443458794703332124565676479239398808498933544643897689458113393577641189647148127551827015496116969307506622055756437680898911234029806087881752458379581530642863421661583665457354027548056742184774724881462503460273899520381510006877134710397103004850126498305936823518709421237641647847201229830272546467824357223722070284936056413428321418905359882814165985143550564857809479580075966887816480702307603338717458367915183971931499164732574591421073410233016154326426650380434593821148446114597082378832875402647605153998841987130903615956759899327498080687565020747131776789421729360876578499475010166741800088403172106219138539021785522817468340603380200540784444343478515620523994022171247769311258362666137466253387100958260264059964184629251425985509891670725778648483188464935026944212183878860259580162326828031803379051424756507355713793127388045179561193924369273987387420236702987977319869900753074328436727983495513827695467833642100268005119879404924531297723696077763658318891319900444756748951951287513899459130753511808585527486471513599942917059094998453495397323528117204493457521346524916109282078473597840979868000965020674691970933898749726959656562226110926311646922025777949450554353368053607420260175115473755192986756856479197188290138369692522442904865293617538845034290469940534558421122272634845066228704643491551408531319741752314163484107385155633517615895897688882643205422841351707773385211508293729224949557380537791576781938583436789685920701490780827520487839450281107073276742755606935410352267026417812948637405777390959327284073315519270136050427080473579456245198515633921293530601731593968467284196323470914060767508505076576629652922162113666242691398778626845456912029233027857644609686817490980200858162192626676409762940124636767270007329088828678514709100189369491806081613569640636314177545315947783268249923206946850309087493329414959777973367671007449341543371987045298011635119273518019840922307576137959500627986281579536179150203820601241193414010354172078619844787087833674132940040398745565474331511788114599437404924945615758805470785066825304985412676387891075236711592301618458307514218400409211202141631880130142134365438699288673288366292680510513164120812396994641339223511480230876925917173647564740954658268880476788539838171577970344866097310621411969858518888148096063283471736830957017581253737662767274613662589195628409656798756580902096444439194111349766818795833999884320212290654823422764090489953736170632951291183171221728363861346589719150346853901075566993628004149304968107136292269444183547979470371524834529490681212906323202629305982827397331255002194140345456483738913474628590777015549366458533537004743502679502782404622568113215395160769810494712106614770931150410890715048080131253060605889035786393317057788503001085301068833425172927214667235424144374547033210324963879056564009973789213619068255614982777244952605097281617618853297954602133352863896709669667960619004718213951847003129990322088097004800462421836379046624116992322885358101727145942768564828653735533533829576065509757616898148617901220813576565474025639770019133902150352535833795071444656114821606039994137207403552970532037525421107458029520094977817510992985236206929747433521263078623616069962036034051767966426671111602536154910214965538764879213656832248486636208437138464514054627327981853059902619726979620242183191733811711031783346489157921887876661007412963662905236666015223088255796984841034129616100342444932267148929290929040809593051339677245017008674496650946299350689883332211636536888499513831002044315458921887971783655425069762597671581917568232472215235230488669125698624639207546047890919317461839940119144876511723637983447689833898287574980456716114203401583234083580265443234260619426653435857490913143198638025243109333916480229238267296373279111375817830929217649134387671342877224460904614624300278639290657627187881548086526795641922638366989846367303091201621862669465115289465028073165448549586064799557063887041558217108954501323011509011929890832741283601799336902173297215980028685784434356685273040403138477804423562675172378777615763898083419460468531303262447366391795039095632453197023263366725472866321298877872860694183125262329893356508974237058336390755567955922958722972664471931218788905505418079328428569730986395606969389652624894785650293192352113414437696937674009231621362275470134211102537973464377965660514926075451951813343862461466640990708953034082403557175654211554965135044747340668241263497349527279401443084598923267498955705028501730908017893986052980379886258998694070687782936687396649253536870825405584864665718423184602629213648786135048462478957001857418654779941166580211073293945497825726460070544923189073384573914598702803562144177265656293361324248695111897029492952345234951689400912296388706548073673835061665185911076953895283360180260030451784669115417277133293950294673165873983822222205157725608856905111267871003353084799289401295477025468801477387724909337246240429614509955556194687926920062994563899264530034741798760048806135644807067557210055638098725106894359324158038532290896165011278047154180442522180035847799744978552133724095399280896890148886120966594144685537032254437443929376903110742329039323742207303099103251067725937747599784561759348827107664969217152936161121520538573119366870242116419203588032039521904833986089859681978687247813160852846399009852575292302824189782999154073084333236094114427996215109793617929351268302236189742514060560067141681781046084320499566700040270556297274932976471124717781962713496093171607615851032326736756340255109654843206623510823761503776980581540532612907231474819968228772053924672275075573832886940419158851370305832692531483113253551761613275403091156561471840471367407674154151630081012832088626518598452047030164959354550875268489183505638819161599562987235861212479210627482234633534966942961218814930187558099506700326988900332066477384253864380602735832381823241408451144673633517278975541140482138622378072078027555806008217758935640844637824117657541557282001715074831046707198367008772687119438734393386782251490968369464584148025417139848035942417214569157080830496820426233404834773469774050047373446275168491324759245104840983638752880141117363078203554677872534819692300829919075951627815512944648954597848742975348271388319785384118689706100180402212290756674469893907997332690368317187604366127384507958451083921315776402006470697555620374755066831066798638768135358127643343270604706348098215715619761505770361740511469270616260539266111758269378058569302259684040347192516459038865534416158334339465486309791499176910093427653113670321321355140283198913646289659306101684689607477612960435520358200539970654288059405614757978277876134360378476913015678143017101708850572672017525424717500952941020297346267777775454474493367431964423517388955556877208628160903292545626404794583986960919742914605706320253435966832393682049005651259643005863830510076639909285575133672082070180925946462835172378290030025226185070437587363557815777577419192294894627500959331184729770455419799449296088222756650844684056076564992688002060560753790595608079678399673532581643055789548133532252298224112153772867838960491302163739295919845336568512418416547839757819079270280936420584902126045319755416802044379317348578245153748318965201957817157587876062962622913098742288825340937191938856902076263787521531653099372598676938803516066324792092869086290973507722414398968244605725522788882463903799909275999356885802668616291337256686172972732154057823671359184286043610804338613692811051135424747049644573244357547881410951335179166644927877947712988772031260044948987607306055270976798861368798152628515521924779459262930952406375881727695030612146216099321265322560665717475912382508302835730777019105448335096494729952675779672584942728746083507544804283705415211723190420070835615017233354955894584652377634772962188345074927901629643144235837112379424295507663028616464838839789392407047560494431080264882068434497588213508620471730050402074117556222987135192715351251968260243384025250475721120245163897817909860294541009125712684499771032813950300673388888610095107393539277908025032929709635660843008420220933012453404357563686740760408284232533866768925382446193998364564544801264333564199418818840255314686740008752144897723406455263909350598768743219800544081541850258857549232086385889531535740989500267426398635339229440509632246473142668220274112663188027391497698659425418978357431410448971241375136988309581572749762021074235592886937383343181907502331636561468510683578547182404711323525066244982901814151289845656679922930763006382071691034537449863609715659149362981817306954365356388355437375642651052370520922942995744712110791425381490426480049498881401548269749812712628974428866173303106801121982779066075278838401532253587464735193242785044527124397356304307943298423160028376106159989931102415873949584007318685721606205872277714671981472885317141416089573853361495937635703294048415388145687683807689453964483871092096115106046156890226639229010145142550472584646292948941550574716537985977547962151641471387270780707258204471292237664561182442822453983373724196422669079619747391136406111879448102799519039080127826476778216931464283063150879805034627187380724436088407901831449238765927485964203773925332628711847841205413886521311300616224592200426399064273325369920855677246348317182573035897530051676968499938344057773852463857669089960231315858272004059041170883239400266807319939929025758893215865004883216243995046367880147050481551958433806445715279356926113692039288579962353070199229526081342626638681951373469363609537478153198767324550985610469489105985980892331468746833231835076319871386938104881288696544832372578596380811926783706808889625594695508690593465400957618671940855498874052366073253479677106332028116249571945746432683587389819344598202028600936141883177605565752180756404338973806768217824398775804328549653747071493435719945793265241943659767417658150288896267993619997810351102143393030362154800532593542287225607184377975126754315536130715374041291613123743573752812127630373437160167246361732323570645195839879747928295444803513404040176894470673802882244791205293457380002918593138094398280694949669803982004652871182921130511021229182696239522043149929140791129103048589184976100612095852381539068976103914867400642532504502748322417586262513896280938304813132704918482984328039240117037630885645304752379431789826476096528243008060615660133227010466975039713252620805404121984772488641543159309170397407381623208370549031231748077816359136585207250194043811116086659839219820693145743652043243630586569950912447540699274136375737705015243116835026579486987548348385454596132302774526725055768452161976047654378016752849289690151199123664563583615390719865479583787627521032140920931151191321693843751681233926857603235134493781080308613253483007222810160711659685171442723140369732573274596262963476036334845951310537826575526518594750431658850371973650558040003006177933096498124483614766655854170855988588448840236492351193666454422263513288233892674795421907243017787491453124555204090055356332120477040830373927711422848043220633500711835068691705011080780792362043751118462157414919599607515210670754036353892458930628151206718704478352051029970128424213637070962112992897262730811337687137203458105520548692638089187028029189838866640190072939750157426538214405053741874177781666194424276156916851196657098578279394000141073019503158750056064945274739808904898418699885386283919046838388603737360826186978315934823627883846823189730428337638579432802245157050725738449734465090800613819763967585953272104483431188301909021622683865511727074840757820827347331976473313371385608236964064941159408404231817190698659678416874872846889598542692272996035397479506289506797928168300666775593944837778117002603965093452696166591022056047649229081340817850949096994520831193954958209548417377939376573509233163517790595226642101426558619409235353133771411290805795939691462670179890557325354517093376122905862056953246306863737887548684107622447222708017132414387875586237948887018993556565960230661955441455796799404203791840369457938850449090749075439387122016654901780685113101733643272566444391780050766439570090459979176034462330330092711315931507241183222520354620805964679472758336674971825031689330676892311820398943713076031878821990082458381276760795544019730203101130774952115332486332330246330438460097969595547790101971014779978593585905742528574623533885486143491212562143336176110476124895455967753513876622407787798593880782393284823655662312316122541115341801656310279849277421687031702493716240495385688885416126432875787626736913876165097524311106351128801586871233085639857957028987075792741069632827170488200015248476740762729935513579120372729064808092218860782140820097910849160255069719761097482967437341038123164233598115588532975444997564635644625167335544788833027240571507860506390829614672919602936592056561837205553261955938432321722658992488757556877751396490022651141144238721957875614706219701608363979505217494688895369554265191866440267281432469166571080003029254548086787306051735974819751199859748058882152133774887133259523186143655020371494548218799378000278043245359453923072051697331380584647089618269680263611944314582324130134444575909855250504747075775864739605174227148583229483399074121864382245984546343768256299808746039288400512277263523315363229009285317536264324812182566018769387655895442333804460111142468989393945737091447517025133923281537254563250668047711937318549468579487225875007668666866568807712398772177358578009050820542211909719528754509263327466598614841313370690015657500802012374260295399629676412385451979434987223805274155048271585469999125223229715714506250467665365853677727233599862334809308163971561469423174863765195400642725710176869896648853043793852689232658753959443386000948042591464736462186814556444590416642332237674149353236228877294859353244710900776006676528151237618403743775109480648799980874058873265994283157875737401358090046347628805719045440890291635654115255800384074038451860137829298623944325007558454151468091729421587555087857946501959468072807052766727883211350525976446181567576731711558694940896985655591529481649998271932548437053678627565926330124647572689270744813634707072274701290456913080564560472831352430557984248920632346021714808694016546308838821676542081607877310578115021213963497172047242685292394685119467613623988722288471319198391913155309650395464768119793766939610372964766341946520469486818323585846272115676582672227701662217371209684897463865530068481587773517492187649111318052992023506207866460765922077060712901029918106982210458795179952173975069862970358069313727325944358827325340897478124780119526034813061148730632256159935779447072115067411544296274571841815920248086764139443772750074579384333847058420019861640478927172303938483775042053468484921157804070981742764723108599267218226335902576223722128115690634616886465411091843456747718073381469397436472306651263572725083043225034753680403956039832749360820568895043232691107554396962607253972638163577474333346234892328149910171680574767844337731651559854977864116032002185275065064184315206742789961101167393572366303672836685183077653828973329898706202851531770661429115322663755580901718257680478513150164653085759823281783634595813592211702877162629910546274228940214492055266437206123172482912733872240903795031209387782936354104594211768660418179264317984411451432003190046653717770466017995836721883382495644424447356795261381639105529212744123122607455701342745015838444044818888770162238782987413241556834192918357631802725851505879381276116354836660747512618491799085987260348490784849379088921578687786288399226717319087564359352130766339403749877943431197999264333579140077774921815136843744804017863278682499660465239100990601839204634338560851784289474514245684253858107390421976505679596810498298679077593363354738517124278882571062891696681552814358013486725724029509148614251206165334320140522303558717406765843386519427299167771121932659248282652869944577762996021768685497228904895797139807298498693362461692467196611629833784611103983185562566645009347263447648353127235057001418269186374729543719489075794210523270803369025803188853570339501622802892437033717031018875226271777238698564980561743503076464344556165018369209854076928531181618830587928704204384594530601110115835828827324798886173981486595414717439506012139781981769407733564734222014997960658108291689220892088767816055136383499831113602649504755793491046329886875069715274329108406852337870867848283056417397125556162752796175820297472003009444384333671280003218901663984815242476091935729571048286149864078938521490050100483290441035180259304069039322223469394219675139660554416058705522613508186666353342752657713282169393421097154922176794975704390678230256279437507238142551380134846733098673807598020207117216931244825964195011939172170890355776756023554672869220551933749087070507622863267356179627845357552101797408578831567712704426068981384014412378075358126774684287784530350999978608748246709789924110330646030246883210892897791399009138464202679474407479158576363708120762864403136508832499385554376195420215661972103475481899608565059246820056525298025697609029390162809435928379692117718368142184968605777607232360283087318099333210162718028979144149831247430493843471946167142712439166739623515455504593566558895861819257913703705895065560190190610674954907035054573210744738658993994736409210979103253851312817235735538319925726802679283285659124224678987951657141202167328320730444332981075521930732925341437260273281984007292395123313620578531107606851337812866044871943181786816842994322206994443999519482921195548078805435481543486159337444926358962184603339248117046113395909852965831914345555426110113948233534210578826577287898158009879912134651553647174373243178474530189531587431684300917215891491821645930584628992874848081158235082431749308278578089816176654122519648016658629150894548254213099022446273950575182646454437045138845967090367958586109200793001360198413653659448524145422132119366588878948265069346481477334213050420110108334627267582165788231738705886289743627997212693305108808144171955834512316190255480857739616711587291327175612726029853168231562047093024619239402946793055276487772127133730260081125086167511544134818224415572498511760053371770872699493196044788852689480714169710954746030153778212570748598482228470639675518865754843029817180459778381666816989387982384853062707955701788791853955165008599284399238314250287630608933971500129487760175045477306045172125736995890284129033298418973252820197398807342615412787399319313073165845410167441323097909783111236162851815046858108184301696920968290520118186055333971881470366398731456780542129059045497048084186965876415508679286669631782993487223534070695497424768604862354094114753121982277927557944330491179448512567970193733868147732710348489585619179629863626507555950761065938328757558705502620393208771829230495855103606416926274093730849204697275938527922646992998624009604876029692863716966478753427886797519486213159756558113959950458700404327005537442383011248178789882062434612174871560419672568454351448904977134238702788721524415058923360383442219808101238082944025489876951349019530392597944693067542280163377307339293536539520384697368958392548213996293221450049898858723666444473990213838672278498399970789369924067994301530797090593999045645019114900239643736726006279159772180680500054113167377012496372121725900528958110301046134538003624297291946852014549265943755129593226275981450610192096563735826584416685960179982399628390587573226058711393701299025904276259732598116861019188578330087333105901262802537790391452797957052525906013691804408045166191504004043819582246663605435757313586085410503449661425632177502793759193820147992037675382289298663105786230839110479618385157851208009417429668745896853826105129017622451732704296200345178548936468668331791743384659557304731270903485704206820414318455659195667878892842403946527545050605374727522526964569054567938126396414010551413114333107343114972289053073066140987727115184781940444047143192830199670461208512609686803603356208635218663104503303358993194680232901012175210213916693738611284156061165873812656762903876700489481101445235478314232331826222652913091761923908939905162307631647245855476664134418446879273722605943822538762342820388742348361519333802701403608021628539309263729833885736761199553280701345534296381892626495837847618526170492337790620943221840961358805780286736251807514738374466552846828567340697503783003761543260523303386575646835373733197215117449709257065530547730719608969917021504330354024413475110947477033222142696927543554469621784775683437538385271190643609911913649125044148316518381795472186777292005652249486371643454711816868159811441084309145310773376332232969083640591574505711962734671511621952159074956056528413526019756790661584865747205704454621201953310252987560714449723258950417737957660628959668975816687101528320374916979219462625162012894788349286306355062827676650810658252494466825012916114740800240624722716763227308380721956977106581717716413080554691273328313180984921780020419497797461592281538875287450591914453437209031181960357197539263167441109803232734023407899853170993302206637668345498835715584957995975975565018561442144860515818952348158971199513823195703022616708276161844929056679642506790518750755873389026428547918426020376302416276201521530933326312276949233490744670428782426224485016355532054075576649970932262976961170550869454402884497132598255528354551354964069584158800661337924705746433651305723702210495014875496460309874451430017241792677372868552555080962180764362361599287847778899093442711491333127090609342434724526707563697304665477579265446691351957636333487985597976370923273269838641951655333233801097743459954089191811706176419445356416517415876549516655609796164229145306495394250543147487252656379458495426001105940137921354639383242553949240712599219385323430495339971791812666309953375003302205194108040451353677727197194442558475079192199691455770654131987847692989447223667860204844743360284621378375305457956424818961067014559742412997059511919847660177977742464084078647363008250083806786582838711978359986441819035717487857728677294256789756142269426780909011544100075677644934227970768652690476204711170270763905703454201613207842275560021418759673622095131130229919268797314885586420852671763746316354779897120485573564545539929859403586545336637997268902754824326873411068922960270982558456309324072799375838277984652205093148870435501508709916298631188313833247788271052343153851597960854794816303141606206726413359536990421597141425554714847818057298622318200476462625389034340159003805648098018136417844641003466860528855226457495722388475625762697206670583193598962854602707682591408845261957575448368328655562243407252765094275495328711724017110827518570495776755966127043956277235427010074040899209205222956469428330985365375845963831526632621197280913730840880512551036048100010996906174265135124478624711209345921708424789168358016232374029858084463019394260276170272992583270190219779468164171016449210838053150112481451806442169431616954105259427936003654562095498908317399222850174611910215158729911877471782708904097017286513109681447511570099905288407696042236641417234908903838217630387517565196889369373215520447194741723827200033133285760287740240391127626738758396554932381909087108596767004194813702941527007425730612446896417000936281664032011683871184699841731517351862912925011681929580914548758998925066791971687165246866481559418845263952931740275535774909406343782296269744360797714174686857659262834647390462578731028823131258464238653928250360513201874912626310506802748119720422013644128882619235431000146622652898371204732133587884156655321694169404076256342475903302528098371688619793460615939922982019592857728322248629432531670057366552729839149843160249932506505088521755316193404795089677988294078905710013449138014619312242146943935130882154795697756227644563727558758963740470460602253389348606275354598777232141013276955902709918711753845432849746838712400243452396095990788382891997249569100256355157120580046667555021444533474234836965151357965168746973353410396810567705642913700872517923669276917456416247673935456411080836705717954672211333189354997291626940173100887194950466952660077185838763666234351830543672252375115127279545871324089238309239452123879179096959938095147211603583587167462599697214320472184615329664308572633935248647776239631727881116757306183446564112925853349348471993501570080589974584435774502815129929390297904230422110875948101536558220542038618245950075542981771516394524553557062224045655719574122308909784997606945393393293566680214150043324250189955358887495378888562834235148930953593162137590458910269535690164629485817659102777727733078023546370086845038916438433230781179627173380638358275330017297058541379354304177134531030574892990366945239579505048712425524210634053509192007013494344954013771687261055824026882057054888843746996382404283413323458841067584881905303875799028474814570474045123042361009656528717501375476821248430086439091751873939214592210129875926029458942002497123895042747022622400379189645557256952012251201368304239979851142531210645482796480908362372090732856165121477294607901267849777394379550792499999778828229992265336846975175593240489731635949615709376013392877061899808779773416155569368056994208207827693271287516814393224492556198546523245776381079072017606466374645057226897740407928520890220823480262476269566817934551246736178772363430103138378177516146485503006045439890026358394275530385754856660727567862912555291253975690948414387391107173653083130110412036538865422598675901724191918347277578880457927179142359063840955762044637931096425991320523290130397543457203536714622213781045666908867707088019714661483010159087827733375822036586967157660734647379183180582480557444499521572993837741573195984340128707754002030365976748697810744710668312626569752877109196795403462631467290879881447449114443408427293175089504408930640811563215060741721904555285036698737558026625988169557564996868025540234776437580035423666207255153989447323115525425653473878367397783821149035902776947220952343569590076151822643283344251312969293907417528596685040512751642471684650928766173740051278461972224707836372342210820930980200157226690139683676907757945582840296187290960968639133417658542229441937490443005460431264210738148516044849085257285816235381806131554987668148734314491598716195132614460162760976475538001915289849715319055935008385528376731287281894626946176539469102741422545848292850008783773906587650111078040495619076445596489443127341010452712069534482509719085724263601212114529841015296637759583737945813189962888126754275718180466445393709010526005984637456120556540365094214723468030360652767416802619591785216645713805115834656628249756052638787125020841915729498199291067062933498338911705251585383496551469431417355509938885796840070656893261955880822234249500070173278005517577789520173444271648994148934191194982083871082805236350339706477982140110056812992026670757926185155475858393097381878454373281769849379523160121364518954513778380598662054076663202650103699533403657958193233013584197681390809570612544366636853057396538718081231584318513243057046367033899065261909957428624098279869322224819834249840268534849366626341608468660753800795774263279833814016155743753015915168892594267343613609514951040122359761960687492046293774492505192848025459209962801971643552609892874346783116662766747274187335332286173044650252591889357142962062987482758512614108693247888108746494174982057572286979241894328659915781211291641580616645613143108006333268022017276060102769398980365288019799035860981699347450422777836402009605229191734754057995303374093917295229346478435810553542511976873711678637473311732904007086915625689434145016089049778859231071812826478263153733084272348450758815485850250389252133231452080921429175033334013133834578466542701820388929437164284388630739192596067562531908640800347995321856540748387850194038371085353955317635486112178186840604936782345588633457434485752790747930575978673910131882375062871470186473270749614789907897133598239441264359057950016514419568909448971437054094612489938689158941940918667094050356292447110927541276096702630928492727889747149182551330875610577112213879580556775729742504240692127080868760411465273711774246218811144004784465781843352713227994949156048286847364014038805325171317695966713228207505392523810454378663063205746755105960427972324882737639532288847101819792153111621969687001910066673638110576468409298851774853798318649900721491489736632092493070544692590951117849067420494538295134739163635733613116893414665046580682032441235019449686127328994201221669434342852731793164720863144739273629957072627113268431353764879317115412347403061887995401641592876832626827397535607401868936839389435670983943273319198776655384450818598450480904729035063782341556472157596428051020272332923289045164290558358346205488598802515871320125593444079891063296817367871028438327019188003764822046076863309138127420095085244794081251561193403743526217288488616534687271256070806572039735818205841624758797051392966014777159903028439566363887737435701896394353629142957905659464280565458692150051990427907488161020402525107263490573391508982702721222800435903040343114257964953358422350534508376219063060435700111076691293180434169974735298146494022932109337778016023333110380721722135317979153055354935269487346509341024141625333508613770727890748194287763118051576750838554407615696956384654254929185381793511940140693197476384170791322859898121121577898928354168828627486333710219872626012609236577618318183405143615313335593484747848239512699396338636454640971243975849459494371777602269100454536553878724455845480768949137073883825580914774854677866671905510971430299050888906877433646100441572322147136807674926827607973658008081297657440255618304184166749760971109240219590225462916760244472356504275712172499886656591922727455210022823621837429660602332406450038826067953313237914398731680442467822345685573937190015964201811252404435024351107725873599860072678348101198943612370387133019184475826171525262820000367116751343692848964344328306729065101379743077519880561958963336914454870094694711662252639261011822286996887235622508246168450335942896950156800313407995348379809305097721524544361327187951815677638424649286209564488725614200592511082137204814135036003621463349666615036012211329955356426931294073208283255145057258064519785997699085819355880877318306821939028030727287490013539880374332069708759739951619271118389077318887427060347595680515829553235150522668322138868428959981081304130473276202238784149938088813014750300034585494413732408352080390018423453873806826582017090779440130975779636288307175584256508583158828813063484960308986689569548362790550849249849883951702557011239840774235316718213236300849572619938741826462124912508400840787728176585458640937525319207206808172218843075391639749712939949946505390207560626271777073977565998089066311082326714033508741697299153030071932153933178736485428596607955677792954428164507151335399860983255679263390935982115587578491832533879181538799959743293167091694959904745827091289722154729080053355868360436939312933491516278186672872526965510290929744190002401528069297010349847553534307150071356264034047957686765991084714038526476033962319032588201874131594019314670697066526531449451529468225788243468057209503669382339272739295950042638571373031214577136897554183613541428445742559726245015004622650730399056994215755820500838761838098535670755561690737222975842036081197720195176866401011513843705462017746032184740305508207887946569093032768066238627423348570197974743981559608799731086690280429782608777872904742428145802328235724575937459084166143038797841929526681644565107103119354196732596913459895735407770080040451911520750624096569104453009707134224747237690920570326937450837851865247541671895619671537497128786144712245256056414556822226323079123749776075893535035076528372419746573415277602841757377668475202481067380529805725430097842661319101634479339243370215285875832713975078222310774254158721539762873247514778679186249121703621790287989758397684601572608277039393455139809452021869762039496915889436963418550415718559822943395458628334134858560452386487980648638753600439281298328293917369556772626506905624463141588533479932181144503907234583358088249012241273067291742911933859268972062388997407828999444908546743741888028452650060945634930396225128483379762342155707367664887032065334481317778670464609189388383573853861687559227818921481580074880586941884681121192217718436010698415262134235294521895678842969776920708982914421601886348718583946955212786627874935918463071372001114875979240752370183171089192527431905263639758879802477317157614483799055852236536826746456178264759438474513199748249183903721096577259128226815796525119314545935992776495291587564317010294503888090887766527557489028112261754841756532347571675138915932212807088597066956449601400527567717797956866135812092557569275877200442289974946217049876400969227471617650866541431958710178320653081424435028638764314288633241218455034617133363567201775742001876699301766951003246854074888093524357535430034593579963406592507554940306257944320162287687443574263014150867070619118654874823386397664656308978877276714863030027131647491659550278023355415028135735195816726836796645265657823687275350184960852147920809976906318862040367490199638522696588004579947898568606374876757971655085204056863853044243272072682316783924464269386441323411523945422661737504825971155188352313390596857860921565326515388839322158269359520480976858119015855578214503370765676362577763400137392404921075344048929943506216204902994710338510036043207818288274511022666162463292604407191613446137508818574055355419989072550830326592326538840222815233394150566986780795043877526210784337618145289904661492386710533607757931088329739370640397827189568450869905451030259061972114843560988842544636218769383642558950732063756700926570956483954187503784574992214469385486695132775377366959596514975430562176623017490397221298933357023887024254929410671663129247242955426142895295806316845287920681884911436081799773964054971972990631283672243253125160666381660819619948009918214324974861850421801320205292602393784526064313960590672695280971960691031538107855751375931781890597758835710335505548087291567798569110521631020359671761447120368061793624957256453924127912555935275375099577795795229823054955430283310392420493603694431216841505752113448049235762004251387109660644827384013130905262323258923678247757201428084363069508221958082062290483435148653425911313879258325880892227418599330622596315502712626457667189109690158347329183989356536749500644851616695404845174097287114472022300328684042090988236757871536285835063517746915270869485769410942861166932153102949022052614175077144119754799857550700325370674185363502254630359131780685416323884030802996231740194874528800978361686988466850240596496417600515565784181823166746027169665488666638302874374172603978636631344023109418605029953206047182005207855998575569064577972594736213547966361435551547131901493268707558809958229648184525781881404914292728178899033951837937374838872273735377068908357592704001610765999687137368543480587886579837108946567810314812147909350746203448295383194245959071695962916777998974303547690287413609821128006679984319739019032298533967359139014700396530632726168248831698151998659220911486809758510913396373303878914937326947221585692420565079380507844936767234022501730574588260959227456489289543829574498350640557143095989389748439283820515744817900358756174615679349203775629695441111460752247644609957717891917633931738980000163094973561501489605738022814017191451004454009658452204780350901532777638722885610896677049939782489204859853468578683949837443928702121912865104472917231585131657528874826975735067173355536986378074068730308321304430481209371976432566713567336756489817806727675749497685799218211926295104832257625067498254269560581052873221337723501156364133263984430400322032469838261980297454608965064444768711877978065355685418087080140809470225085137104006684450087337428885575625805340081969590010673695188796865312387731427494397004418567135016941851196483763785353228676230616213767581870303878910487742556580120173500501059194101833035251906935447899545851969814003345479962015569378543680453665619711236884058726936292994012057833198888441972009241455584464124522680220594658964233046895769183432173163609301128355318623364787443290407053478352249967091749080933201277001849828880933184776571781936103901155908958856818129523296719186642428823671356332652906140459011576630189363384769981159938841193068123978503293468681619012920576687989708716560884551512820748019917724220087472710670989064773375661135293586021446566430666700384897284005202247963332769656490713170286971603621220090508955350006240081319904983986708004665214542440129476414655596959890573747063958127529967667685222102774944669634736338993154159102129289578941802703705593479889268668310805708653953839528927749413893352723854997284652851165236446539466856863502600795126411484940937628397621875541290595785618113272978421345975225146659307670904590778777512405046296199567968175275985760326111719276010229011989642058092860761159733572595587728221090033855847644018102159676283808247652913351557648282785673010877074121594785834771604880092490262255583753723766530821014769196853036183137449084182868116783062819644690893301464130472615829849443062256469105193111715509498780040446756614939100181348395362207271427308536963351462896278401616218291581219423908034726752900246457462882829022768289212336266009982503398409664593722461467547626907156924104342993512953515043377908840242193352783204401352795467328274234627720532836709105552542453752399696592646349625192473570227462876825446353265587397105937027084359699513824976758523742864339287077740725751812726349922906461075111845709890090094016163592265131318727899936254217981021051037036314166338627840757414238022476003681293681954362655282623647455409478330589437159507236347848076452102874462293222943069063953782209026092656428009302124990439870671547246632073044372819280451722385672058617654403846108919695379641161504301987763134910751967749977675318306254139217425250273627696696127942769040868277822795078428279575845058710674763043872035913103895906713375638335222210964136812799780054397619077496613803989006801112375628754344226019982227411680348927874182147909583346659104511786874340885176343163480257675463546864029066254151838715389073690956122820069805191673107235217339968501834519893624501490204286127292404099023076537104734665857919879696106114888593741691790332588100521796541038560969293183409141783736899825982543132960933448734457401664999153029127538330998278638244928773273367773174900295657610098101893866503045693047289009890873280515439440861189879538005387796542901545039767510262611466947743188460666554684421832497012234465584502021317146770029128483838809903465638721887568468561853899805929864179831796271894559782361759566279288116394636226069425382994774939665156747104230388427823538327976189189475149471730349221653935462934773527181909658629248547085822406460123638350683097016451404500619101227377803552067401415200892110932628794071175729037326875660423052157852761653617651660922224252295349962327054940507891917429928078053967136319671369322844822254503567505755544762563489442641126759242969233168475697214709729866679941697010056449801980238346674753936104213447925602620186141348960290615226143680869517080748659121238806837240576738003109297520572175188799479932142548761833361013566333241564242249387703120178997512423377633968711708976194243655080104498565865762433628099966360759384919873830515344265165533788608857373916555125498931888940545870824440810637052305005838687774223055066697606204653722833703772004780106236109700652680404782380526946899775201221124297593431242905543487060339015758504246133166244845032931666420942734550051380856078378296980567096841950996665640309276095808088881360497004321209394560298886296847424176503991521067326309418665423659830908083102734719540288002561630660054214224510100841551344635375734002836328189179801724869346625406427545288668979613437143405045679974865976359041720146033575779668554335566882799092707661698969731912311984232590662070483120124082935976870682699888430364631402278394451559600286961746573204498805376843132690251161858711651643759559180615855506991063069989904864259633550205659330062496495148162106812395429973277958405534866568366579933823105590901330655998244225140841209063730434145910633000847340897228625320954187537681953028235563501920952009720312161254322380278833362556497369259973418149923348087146547614865775744973488871917057416762106449349158376949065819161153947591491760504980143310508837576861235635658931779365965036372813114654208666525337103721236375785798072085712181210474471649988084421838844276068418842736877893262263516562259061848402383247726119308931301144283166499081575478709150244427141417737083482922482211331444543329555320428823111097744589969114847308994863784180985386715582242157383313502971348438227390274919021176374579832695298648026818435187082754331866371719534723821458476224580997619766021163871966456187480010742894550517834042230975469931657179153584115636180845162540874616079504038788017704103552842514451960669674030882713906565527432077634164195874173849986048941853796642614066768653853824665878673034334359535048305459006271161200112498687476036746518856004999121166600875951185806380713892312822392377383215950696751626668609025258085233328929339968233805235148754004409467151031329575354623722473015946128751723260492658418174553095308032506236021274450395065174285643290474481536062604294809553368005632009820305773067686313413468929701736565577189637657975007621960223178628519882323894889625670157755621176830400403829835749672977513967180178206365233314620434695156607206828045411648730770765016410633098962515152026961991970988243959121050906093426673928403253132596032983698907303328565055402138785786032995356377906821732780730729211936046760426816525392225535184093854011723261062762681568123019830444200739768707558793219888653957759520787765898807859136618052151326909014473788483227786221257798408990040662568180224410491487839947742630238850854470850266154274756016919898260456024931399083828770995031993964592993862558708443667763269271219773465051990785085844191027356055182930647061723546676343439850833936668305742049539511629145667919255553619670485910409495198884397907239412294466441926970567451012895565411710839369280167803430808166010008909220799054239751873386567636184375226051803633038994776447655790597866552108464848800497631477338355144261929300112922472571695586785725205541603417887387501448753102614953501164313137731604565322838697680138829178503660226488588098490854589234872798105994960994302710024585032344575836481661762054297460657693078202351354810830003009589195888549052218704461668267266774849671042025495019546743254929840806646882004475922586252061773330903332391929295907778479637602388725633097033050920206472131946887609375444523090262558361685157148115876394834902079867938458755563076680586633863147557931858171890775903449813065110141548856366614342454912659537119645862753305889789097424620315393352442641832157540977601424545297179337084656721332917948161664022065190823583869411221706545603632132613827341602666973918878244438790733863894074705135347902313335823955279711170125957289788623724423241505615778465106884996991665677283826547561736782839128900929305612129532239152491266227081979205200484844563609083057840655986040360167712973375086168304614291122455075586724336220632755317914518538874226752969706967078019001509113581536343176167254923271963459403790130540760464047867441522709910089915058012537040393505702503844089701197436168915527235750657702233157955729498340853061038385908753755992753047537809558468295688715014178958697498154903024820137175069247752809105448870423976739882066560903622004951380270419849468488491595250240640046137527792760637281642317766602900809868230680323044079136798335633024529707795089124438184758796603301563092252754605103470769951765084881431602421217032616501804971739130515005181980462656425614438557556221276460097873145446847194313205173306926396473308431216025281929044826414031340159072379976274720709599966122439746299744163633719020166858274171198834270862338167622719694849451489780999511820422720021842919196329158750768580452445243153915823013022952382283465123685117693950622627179987160024681950235256279714912779396191633599808111416707131372228630423232753001079282552088557207073730808533740513027927782930162818280792647787851624325069411009571681673791233463370107600481974478213612309436849089776282708758752370576900041106602410255709458910548794666746361815973421842120452906792670353989834244166767932941149700113306305557898177039672651199037667480717381764255276927652741683511556222374835436565820635558371151067103371360933310228327569165096376198693080904487344774037251796275300778004274031316459375119871801372310510250893599453959998316752284277616563336600393358481106007671651541698933518593942918709766984442601981478625316494036622922404232006884632586477462834551608070336455262163224083585365699402708682151778609977289476494191276103698961707101953798783518433894935798541257021448276087315915120361562401348561995428815071355997923044185348833031439667361241006161275323829890420236929032559598924220538545554118561956932784759667099133132242690276754340793685594108690096816019441954845725543883012971893300673768743063597807925124442212365917869895297278115264799525985993893361457820482158195601033634516625792679611770222566294121222123810086579336431994296121850730732469814675125024242737416997600386218574989937558736944608392557539926389497189773991855793714828657717050335572067335041416134578514401468488172985599978659358829211473255711580147233052769190421169847154142111954944658282517793945120494008527821871888057561879573488073588679743798300755541435200532363880417178619571025889787257716809879265314812492580474588390490152464719031145531449953519156403063631368994412222349968545175229336121167406459474165543481681208415278727720444887106471934034173638148377420954331031494542939456663487856590536000789801293710060243839387879858323564716008920154273793111552462419511662142482346163905477858420066719863368318996640182591273808828175118970542338026522466180742499058486171553351073806341542737617895180955413142447780222899937189666344748236496023265820413043221502875531691529318297324217448536842436468499964512843825983902089266093063140178122321762155545689815433926615462719068783131092066993033414264434815755354452516809244021405658276386797487649658840556367525026023782954615807112211801062706429195014671321387739115396566350102828743815559167763082585636769097584539298586259180229012155304279562005132035283210628394445836547830158210313724083322873562333176012818056102867251522432850662809029236010680001644768346806020065288333263487728165639279952425678287633931127027575486097408580949867724496805382954061937073587641798542292212889791783757305577963017846726015707703213789245765266303117202506960957794450841992668062804916742700138381010386672246188090356343322344438158779307832715171228127900266184312756852749715255423156730178611662316199827371660264538193386841434885915118991292662304585744613897330797077789562191893270721471389559537446931380089304434087405406457631579055152742596546348439959754208665777018645657405703772153581339031470237321831153491041851190241411081729300293532836947590554071031202907011709807582796884964373459584135318825934506554322572866962311817976837132618772376258568391453312556694618911547484373307558038730108834919680516521716605517631816423156515776856777883349944822768764921816599644094767206186378752811824183517565173455351285312530182863275791594643485667164683332391473914426916195994301348262919335780747745510869741026971544808222432993052121305206849519246872591572112414692671677693872533497519486119579888936350513121322332597236157687092436211630168474413581577713323584048308698747631838553271786945800894906586275678383363386814828130530299920054892458365856871198518882533880927500648118538704028923249244717945109927356044056606293610249859511440513042342942732451623604007966851787250077614572332657974111846576605847720778180883834366602576478785253430082260788011184361874237260779781569189601348833417046028037514258951400589973049576297074867015484708079961250563013474310877301677428695365396593643543445560456276821423051044079711808879331581836838777719096511563508310131838739502834259529102365297990008871737846602276016941435911743784186639177148746498223145962985598481420619921186917635756061469356079335665315275218529805845594854277714497998931489759907939327656331523084039711553452078386272506834866320909740301389147505980335521763561712275158849843844470179570999410412060627691743928050526164488538524698842398311889785070397009798248712530142358674745448915129213940497567776771918707608068555455841655390360692189327318544620053950332268392406236724668924192156633957408141616487088280416053824096973767372576435062560928262898232963737296999187588253175516013686144364677910512981434016507914673994008825755565761110559665981772140057241607392874088630517806177045292847921599041377081361367422979258298795458785018879063559364719133324089853478012301284362268251995595595455361734923476452775632928868685406624568011307298521351798171981362772642912814859792358495301644071524077840353034492851616395084372859087584063753402246388995693633524013967669364937289749102543679661414836335696507518831543895532667462246524334781062274174991380821728516872101579451105001786429149691505716936448588285236266024547210806787874891515732099528464323911392882365609497913283818601748094571907226000150057014542981151512956642603956524009318480873610197287659728945297533191422892807057733441529178846048760986437525587458000792809189132307653350100098281992666643510048549997984966572883293522365547966878483146154505028349989224039544189445253996013407961886532691335758362340224239567735217635999904252485402407500407945155113301036426945362380208125823357417381719307005075120802168222348276597107043883371335455463007392635901931982843107955632465163603315357885267094154727719913419439785143243546373214690556494687196586854136447587673453579806305778401090572265056531112624071388221149852056587104765369708445917564381193316449402004069449336188993230788428837667554089576381375008359776053417474072522083528675785742979090854055823830634720023656115568516658556639354302121852963756171712187383196857063701592020335736726788128535624901134759090516093579026161626070637449917520522467222876431184101132869761477255472959903619950136530650288166441070305943080428624373142969922699710115988955469518452397684314785514415031138817236407586096134724830429970576122559925808283356289995248273768904044035368768485857633461462201478504974978214189176513088440862598974632511154600413235749740959345553818684668238161409786955168369580232056569392543954679209558906912620554345831675240443531344482021793322337515777357046988271256772468249053867249152557596192124053433977385264845308585427231276623138925904710317136264075348043253694269514612969865930952143483739452649111882234393946633480014685972209913803595206924635172872893198382138695926386133731773950263103966264118503165998360384356450050478073190992449361437858187348238758759435827229674759323844715799349292911122127081535195037722800869651554135821289366593536300715738690425129288171114281087439996745452709611863133510431255649018769567802273018874188149152175397445257097588665728145775695608449746685978144553912635159148911902364872778297011614899752946267363007052348432456730725212376080146568406343409999684335570189724669518679216291776942918044044519402306857750375563012267987930631061154460132631506474327072591825357010952139853520616435974930913812707494142648442776847791909399184896519405503269258002790541592452917504066237499111549526258176766686959959015097895667863873613072382387325157490879790474747210507095819628303156114134827561772503110970838749366826476346820617818193780359453538290555895912207015711171443818264616365971663774353311658449108859326844700178760790592414705627957362044787354321490336256027029905154210108908274471587877857236497856343565056547209923063589116964202319112348516048634740577504748195233228043932227573943341438960142213694334916080578703768330299239463789716349451151056266357781763277749648167913671274563972549119342384713392779547419462642049516747338685357022322463993411735645701932008166771097120407028792348312523534166978059780883242761855899355388854059989099071207701608832576211139345350544480262805251084010541932760823609431460868881455341898103843673311666891320644828769268832307875080760053332665610680421722493049604945297806825924521723259036616461307908071163822782451097842170521268634791638880753366558935583849941326200202677737245276125549493873162431931994013518453566727073540296907704771912014154063370562233434728967780411141787832634750694258173101928592759293098188032334608589507233006909634452858620230641196397608716482731599901253024814657865229049672889470829090187327319252300331891448145239382463745748891492352704668671347281873226508046479882116768664586441068042699534393223842478256920839102673931177056269324877448930005565317312570301799019503892041702493857471745159520099842681713975972326726219230083907410948212634752683126878757512678511287380158268691352402353111559596582781309830512338504691660817488761588585807037551726251310949249595514147813903505365202741618541082008832336318327064799200174856529658647855299360629327188920733687828346591004153803364654519548507950275911773451597660118862790417234081296657706015595879813418618431114350293330094150251058238785371104954023671935161441980974796150394729848257264695773084490731894108506131706674347062990570926742619973993757415204343510985088626899346647574194065002338502926243903927820444680665506268295622808360393970390482975150502331796762444510796201376066613664514729202473051194703826537563671810284526507752757916582828644222345646367094732598504366708856401278757632601962147295007251595338372382064599373818063902341940337451020705198735664178888767938778591487459675126870066763158227722500198027847773378412102965657352734960708728393534068454640753150603996847667965705482517979052680289860769940432599188884352284965521713478592679351114395579315768165358291572071328879560252541856637617346125510461733403753252183660853117671330477493070283213331389938983397211236356391470495789221166985026319209442361536636954944538276977444458880924389879950866804565285989872633074895319773131888731202587876147189161223851708800799710082404553640124803117152290869439947126450874147191283546918127035971039085598684799982767588569399596663338306533396969358776124407336923188303231788003879855864034677788047967196678767240484184208102851234665714540379286689203479277233152854323715018371427303146936352642002685362224459940206441018406367494661923647620276735120875795212250485455623637755586938971072078699368781339049287156293202321118402101752897593043078047272895227122492951350749999661964853574861659452066028050057790004414801480464154434940834788465388198247156338899720046315381668030889323761391298735268822219771732373549242361371479508548016477766264035047922482473917954786824998329294710792469745047246054183565547395218560682595430084909501710695254369474428442393015891778761579798198808609130205463837445112585388042890858057370025150535593143861655438068104703114704787130456901367634722931894835525676506473867123527207705051474609877538702998937375727063274013760792888268390409051562951619782898579994246770526701364519264646234721561875594595834136927836693969267207420032265732085722974692216924574393753964625245180595097249512363089509167291783898676118805687516745475536911780697020367003164733446296462139536270723226222946045170718206888051321547441066344347308169461649782242437656959358690472685646229505410872214320143703258859569933720294053390258188071456405579916404894863961451291646415141310548213013170584365742365355281629421251676620735930841441351996004757346945231349488812580772675905823410406960099441968612923598711516238141185646678605593239763827023045783880095659402535411527198519685491894763280369701111756423299054715673767281853474573351149042677186815452251424541283754300357315327521414428229648021851023664215007588353959164725181168913675302462402673825274918799408622954278799423774743555545801779378135189959300477828208871889173326301514740785071130771780253703430078281099022016665205672044405983149112655338055991686423655052611010948690307528562052928892756613344487451479474652010480668720357695534292562052540788606904977923819321324180749262895279731490226007555833004098804057968886043971424366537344177581577602747488933744159795079106842815386808251836921416140019144217784829318140152179441964301922199834822981791821460717173075780314296110154151111680365499642446599409065508969291671035690960205176942119391474997838275527264724062328986582942078606890549611109837961253723994881236604455387377663791808538380983342784332465609597171681671873370473004983605569375557795426635061578319632712309591282984682397923406903896281989234667526429572707252860777826501420545349797086964690844521219032661156718702197916254550673880543289131491758029850064316773620332118561042669200923986803987278134757720495582794178736249608525057499417101503030922545684175957562258260115492289993516955183168162856401883342075209328761930798838499235780668088010875422784579552863692696405374856194038781338608786493534541354890825979035550631109490115071125391205817511566539608996354529479944209799731373322406186543492078846765051451060357545530336103095671011778312786080464006517357074990445042007600736638929763709579362396504697367915088717714765170412068269687743238156519278075143970022975415340542634783382721218209472552906468281899337412488230492329700899711312588850273499484143158541960888861239297030546999021721565685323294801380509579349443527961240414356776050794866669625178997177927183928426543533730382529049422892208832942997916391741982019697153925788781380611977596973624844495696271805759907985191277516336224837262279140582509479612643557071718451002566642509507962627202398864282012528416412386516282919342466771879911827887028204821486712496719279506558322510379009345733910820407831124239497552931955303303352525912088392747973824066052300218584343322273066869643335614622379126675419233097343308594245375997056185587439258057044256950805130765876586662941475800505499512110939582964289264035317514784008114144518584002020872837524328433277288923507581186860227171310051000147913199176605813810784244386311788511715298374293946213338996062851720785752444380348868779932612791618343572178179985489236544377694060132344342441139661242165372862598328786908742596771566256893904203068349465975907216670478978106366329054095898228322345533938718083172116233522371280690355486286290402442834574619094710261383348751441318507045184833407955784522347338902905741325230010619096747239782638487006872539135699789098844257530503510593917639558719863612650949316186379671381394222357351459975174443435413929848297037122111970478168407512749002413019594421106073213189135746108861085096854121755525868456656204214643139012068051167008403733010244594124803167436727173982162490353329595186786567946490987178845628385521597115810642717857828771165815278633221703264424028583497941594655150501735497120539649828146862868833093237783162447672834261840894831513871842991999654074896496906941264124066396255106085763089970643526984874288721979911650342121835552516747613265012785929938817040947096296534885556340455403054678939463410239709360591898981928884692716090353068918041720373278523284975349640268657216143039876079826341284051456523808533930794851759968470595993392728178790012048515456916024779474968656027313865806106849382369136022491796893619968947888259736228886805619536576847517820300670670654523137476112368085811489493314677384468885615631289577667440153405677308638279144501879621197839168707145179689184578922414652399659487385562941968556686690540258633853892884484289464182498389082967617213357668372463026474083229185409981891110319983138225893080503356510645285943742144652471501318481409147048907514585521087716374371328182033320442533573807365545672643712240924488113672032919423428144060511865703462114664077609298479292265855549279294761375694213078880521337703414866358289024086951645047642567333455375772564996904266616136821895157984622156244881634788813653100018751308439781816436417247515799661285547692652499673992213051496065263648048128645224431330124505897197234631568724373510398305802050713113641025863022987809834500101511386372439238165628159343688949737904832319506817354322248121897757806329194808339834127341574179778347102345034327934679017738143511484465875173996839965192633397020345245930293820260349852136666857311370246159762283402497094755669959249281523754394454215786902457735262827710547760082983492823681819638932853386661701217423549310378115421566418369586477360628557808814984100889838553428962109132741323110537975417437372097752034981305612311348682486797965169580566230937860045485238261875033557764991931320166389189625140449642528892121507250106535842195003930664127272980920065059285175631945925355929436329550256080958123216690753688453210788518959932959691310934351816124908302742769932288146714510910604095907095052636740171496543606668023824703502775447531515126867879285417480058238359343569457471379328441440412753169204563837114163416330767131710879064446332606040400268231467632661610354282809092762363787839230124979985834635277389947535986215762663792653530577895749137824926171045162976306292559685643077801310604054209345051637620777463966142918084275527786884513460341382355256993570339986955441625820126923554412041668067873379037886067718540736467621508257846431974941268156823816218967881470483658884844863319232562435403514872663670834994500999135513622673742610407467435696858957440477496567271413534782590711221246922960362125362969287296933316397638726624794497903134217064058646771385035086553527592465824624031202052756588463610026611924803264970167387675659693869475625694801017433985533313083190311725907508756848917294574758980116401465853232756355620044463558703095454895080536162694543861671640320367880008329198598284255804947519689097421010096475695908021955388563045696879079998713159640840005259825840354975153415323670940839211395232631249866336564221697051979486301773858347200368355238140892271324568314456368795950946443253628505395074246047229787589635423341843634888877790719601149925283189317913599281132246676733775234821312152920867361846932278392606535404116403769336239028649272340447713292898788757489804456614929766229173566491731860840665950791425912481845907093420563349173499992807256565449138310168676892793767941972680674076757743910040100748525043137043226175343198626731004770383360094359790497244490646716007509207608272874513248205398863546610289798498190303242851121484378826957565241161781436957203138749697119028206566749544020260108567935940423490685839953171951762717298424642788441493690293117774084519847745052737324540465018828235756600293447186475893191415214219554095477022449819631071533274057070007868151337801375213223845770347700036406882567734340929764376266386612654296377369696045708982126100911673754441450322007398716107121839551924504694539032310954240651373938245473614839520656014231022070762901701015414573224298087907520893264261683262712920546286824492095554895445890830054714081385899403070600330610051308593628478375922536814159221334228530739736747274180094803487173339185891720200379615867216959045855745228929724263098032566174134227946803931365576530362055311095445204145652375597154960954754282610078778496603236701080553635218680452038394969150543026526676894216698284880477583481129372462601340482700620562561342114913253163062221117840929796482206855862878940737875451257061308484579288435601366315622975927617624421149102948820451933529717050186619613381268844975018941803295442440474991514985198819145874561580029243743755285678260995944352891823629820419960889548780846450999128934700757618730727947572062725044419392840449533677519635743785174790148167715090451278888425026374704935770608510833746038451769353285917607350992142127098322015541806494866363149015266899975017689492808456611144404761658211372107694391268540284732169274561800455744201953851688087512535222737629757523783125098942715043534935464557060936437170600823553128221423417174266312822490671557899989814573251734846378320716956013237388814123492972977304127970513898148701878334854017654004045331216817686201975636714704424968693353412198773857711640089821081855137825005575010272332590352407257601774624174253665155384976052776562585899582595069372974513981905422238532458515364837681516541397935826235247950268340462145759299268721803883582070398997624636884332138425162746194324133595848664810700073927597678993501543357881016234274513264052307459817545271453927589202271570009348757396666347408804862260095648466256595920736812400044585971041878765257132334764431087173134336682933909927955374201659547825808588371445513266751986710804798848151727853796149750926142679507066156405413411355299897560069211884267409637160027441069151806238030757030288051136675968197013220070687091935499179410409134644049516204006274442067169727401734711379259827521067621376654475272207574726441543821682912264465891342475680784841813305593380917562505941065618923500198877255718950051504553481198104136282750316558847743604497838092970457133877798005566063679816674385157415367640235941614669207525838335589947675684971068389309222336361537726604672660520299024261792508772378090447414685521586394654809554251848032636078382395958194628191717040241079675549617326603112573822709940501318445439918290704210968625324614683560557385489221197332327165833392596331669568910280120315075216876822535213663976494853964666351484573353630295179142878904936997790410198966775461328835636203747884842142930712602342179643273917293079149705102827839747584129536627098533080055574176822545433528120763137016078863360595278060065066486879097668965290726847772413075606515099697375349115636758693448308064715780680465511128511074500727095437791542415269243012800295070467026318673785558327329210584114302406818993476150896444498955422286713717344250686006853429678531154537562194043852253748906971802006546811239259602545123710658081783701187235442089223689237268365655463860837516868352833178112805409834882162917631007685880498812972149912598408861566927794805694874667028707178794381044604662555379569313690039687130128930827308337101872971864889757498315633455648553439588469998733692501672179892966647633934843549085660542783026578381923870016485746681778128857206227308597680729279073589656944057280546951268463960424352020560728802822135142023149189988077289723005960622551955800187025214845541697875271561720551788057983039463477633474256048816677723700906342629242700233397421091922421729538917875663306686615495085839220847157614339453792169031087687340740005883868522462008587838607542391982910113753194916971945076558347743554199252498679925150681510527801718656616788312926668395261380086801828847702309515499537645861486586158265963912877217599652379638569362547854068370268331098070010153157270178655316324816808155806148198185584243295433665676304354704251152105123052610655404528467130458869786622114946501362120948175975637624796671907914366808839750750570916276177509029139819132109628198149909785935750581571434504922372380924063831856431152179910405476141139421127737005843559550524530704935267449092937440853517196062604793738690414950558721107302067771309910698147961663111156802432090791012516006581330943035604166080217944609931469869887487859945732195525476422987474063622138307223946749843206807337950105739777533212983029648519319850873488406319125663300021609396454905014338967939503953222518940453602724350908674970949654940483751727005809712807427094685478699875315465710419921968428314355127662440552918020358357835627984185559710547072013211195208377191004071515062843766285128838548683789769096308979606545950831048116156549362708087959167399530191123034267546423476961909876412512459790448799408446162610862781182948158379944543313981696588185886377664679126096361863458386461654553426249470370917273534136814802743547060295641219942756822805160587969751435288605106549705369094737931750411727140377121822227449112933215620261371777715820934223295342119967106521689430178884013017017435112002521584172380723209779221178179324471819857017223437562170061372758567009193101513394107454622992502397054228759266826688031029650322202712267025996484576211772781234152968120845743805951132623458956723466225942900514139912587253678218925331641164910196324478987041556097530911239357190228326016816653934341882180909933932569677453740470099199940808226225888916728113110999781628107664654525560805666754022790659119768216339846475531634769604254299683615568833641420680721223467194880790537539467875699418242661852509630563692219554357948019249030361719032305344110210866565165577839586013280303663371137897159670665464615530820235303841549902701904753657421546564094435982323370228727989586102956945376532226988896238183999009305413073847268168443961105332521428798955322500559199556346245716316935852119925369554083624979463587127192874244427021268273668361556490473013940471087997308912358784708208220574719078490276991516736056287894535576186289051770360780539552118092416726740004616129800046744382528162336275490014339764877297525469205803246076641052825000602791375363804626250078452017401277660025636541166413839011937953522533163840060710208063666815904478311922887134277266246779654186440771584170370625816243430609314820665833812383236666212538238041247224052976063813292181325602075673733278074928849788654160066741328784468759992198983983912620600918048728354168493480113616948900321241228672467222130023395345774746632174529704919033497842005228250980705106849084281748941745296947970652562291736224425918033250249388344680198168316185552067868396804967476582974984073436899455614913207983114268398713133945599349509070051911096859573520458294942994211259488769572817746598903716808872815882109377446186488693522157519961614089812886207755926745391709891662122650689971550605222191822890405415843457977146541238441167169781849894272825470488700804874177622274807536889024310565485048436674956576494466067765218830917050113602505474345738165169116418012575586373489743528321036450003001098778723161061103676450632291558173888386072541584023784459975255370647492403844296789031824346119699704433380622302118447956174886954527860648713048017170551213393463139737736569467356256660528448624471048974569338581130476027239894302776696485913735611821710597572984982512058264538535822504383784209361903272882174709265585515688540020567209746823791826501351188031470554904202085478343363153419189281421339419392755286569608923175937385549171455609059232875814953562028008148650214919743601829816013437002974711126453364409795686866345809487324055661263283187207941646314640150243084876221486608170993372232594938694089763751080583555756366814796565291095590668804004349602169311146092901533658321154297935035043786973185651216846610939134067398247264185765335257168134472787002271540022141616883648055670024933984282589800434011848234537164626252687190232418285423744417567432730393801600240333765668509989305020515448484478684640857370626122114847817924534822270221845078988752085820126103153667853783823289415836081373401995693593668669465685172522917292104653207422191854637681105797732160101318024680059147161890292741162213968782162843562654987413911194885665065000119594668071913885478060685313001369681130281891858213745426183586410308468876718272012636505249373868054145903631536842928024763609643079627776349379559517564813375076448598679768767022806474605282906515628747054074788475322847890850912707056415764273737717034860702962701325813696215966712022038430043149176334327258583707645420693414603707846604858000826340990106287589811303782593378510166024209267096847962054271955882991727282030883867289794069677842177222251157642620032622911633155171607722267934290601941249333131866846034291527968488023421509339369149072810160677256468579354181482394659522910477718464301263208718436513696848947616629353812458098345263636595179248153957276400231543554443199659317302012042178900462369916532480974736078722797980988488966830969894195002286483467838561618831936560858387653163549272677684583991397344444796531339660195846356406892287141952306751910183819496754232527329260868044676595029482197550567751455180993131838938411870986818483655994806411772308709219044071753762492069464822725604480933421773693602185285860469059624024060463988856253037432614471803498390676139423593484752482294403804836725447202645063906429143428841436298216815497254171658162747433650175530266461693143460612642482391701545834259101993090099313272963296970077361900072672255596744528065876070992876122412688195152180159541573657132329290007954396800459573347370598963688103236195881766936517863611374923359082824420772921379522951976591531198760139983038025642695422495570631329155622954858443381866238185869775200509764281708449588220749279193808681349047526419425630090752159939581010392737292953419342178665314900564112407462222412496157732444001861733610152830085072804217668561396082178286733485340198733938870658913189952742701412880342881585153110557503490261739482731856327210752355288589727324634646027540167471745101030331344326375870512472369645921429042534083918298654376151882702610023000409759287874678509425867642913828864276407975357856125314559660683625029565205497389802960383818634600250594791130082505544373247944368686114448437313215777276092106353855349209994377686327682207737561252540502601949551278601929788872371795190108783757958167051240752520910020095918751144272266277548647249218485242596349812288053384400828850979669215896004200891835335071804399967557235531816646951742788771417619406882413395477417858671079871050886696476973318129121127140267847005121204749772290558791912587243901076666204981724739427323670107049427836524306903932795488161664104989118592281890263690062190887216207482327278307656642448298001535842850099600442627509255420047762851844109990867474524079631562334797517561830810669357130149095481389278893193515351111612640628858500949068531400633093441860336671382212898462765145928263383715215783974473401277918247952455206664412525783188422028451697978816640381559979833104398551759343104428908094080718858980735822452934939350719152502415225317594952806008187666636528030992144797697128731755647036676935765491331561999729106905381414943862736944766022658339561513187453190937917809725564947062805784177341205215817743214140386698816005272536912934747901040338999379670050450527943195681119543392159685977638015174975436715720570089610088066535165309670237877698651420106572736249209127359698660026694310156672221229775820604783451521572521084359908860244568138720437319261911197187809362085522882315053114145909258614883605069497698034394346069226685615084281462756573603674831006503155717961689245582122200819912437714041864909858071869269928267743196165931538359646226677450921137624666610837361988591700802723249332606104778890437879084147009047969795977131312620663309062529859055892728662922039221555198389371116723195558476599452592268934491915692175573006879989088371123658351990535039423501842579698711104517452300904424224015704788136153125372944305404835217512523342995461967960713618725694093323509450677064097733859885909569644173147105347664166202750050218535442564530814249332457213752347107348306998131989143117420995734844007525655844996791416084186260026940036223295298714730238898221673935450919615012681732359996429909668923119042292515098675672790062140045759907608323846178532181372206568165366336137860264311166418782953661246939895321826658443575052210194327652839848604024550319852695031421458105352160301646781075931559347278532162400556737021143372425950970360442039021196400422801071421855641645169833556156614205085974390157292854195891547992166414176382112783748271639084090665426429181996877041190405165831165212448909644380837553337197131023033563989669704356374337982879079496898004359446407747975294659242589039192592863170625453940739413646854564877783952072939150245429479043324550631637464281092512669678507527027909296646653309567558066817033694971566221155661702315420913644160070480134705968269078944637782415873932229096847534347579006348410321766866028661654924251196616953594809991102599707604619413364206452006773270820826510198767870444220075052783002612264210750135967385509664400692804009383027551822014231535315333422837894374603054948611320818829735707517580198773084966320946843240995013416410041889345670757976617216588361006183861918237828834067959025948014716603601408962783350184298519827963519900926621694060289361911647749601889197946280355704128259243994228251699478709363092106345187930403507428532657901873824679347696751398672516827496341948069816841238282797578801713159081912883652637139851725094598088029562404171429320359246965040030824818054622040091873708882187481382595766504641558201470055134799187190606267284396708891207341467768605497105016570410608939516642699178790119555061363197576671686845103928900862684866957404278110527055306066122225375662046467198434207159066925898752486590719852182000267838630948434397639515776216647655595105460743215415669884570820345088566758355193975420700040297903240144345884936967977982389250623871840293489524831276129274763074326750619160918426430556992984312330985800993664503629426462022276149866237404134926256868942676533859907553446126905161782626934192187706408780072240740883777315329748896154167431708566004201774723929921173625285440600735814527684394133345410407306324057197893539596953318360415598176899398726406047581867648202424568997038606335427626976526215431764272900633388019400269877181631851278119202825917101691571060686144400842047241615406029539315517517091349622279868942234273575891884718385727558990066804561053652031537618262951011977810492661268929364741515195691933540748056798318434140948835057849777177852471460762134305097789829173411450124845763765756427473186786123942899218915729966896696318291226033904552907142542523555603599982097605598812469937840819078792910653956944172014744510830989275517558670690146932508501262530071204233374277035127118144807740862481513125444511068136104204751534285234839647192648429172021852824028834806719733691490855825971582317188450588571704264811328220169077740485693456138194489601658414797739482426350018208007689673717355021858810481878527374222139250772969361391971160272938631656125388801212121687651751002068962920870310217955886364679945328806942740442746046904004378461913503090512478865426232755422942429902617649558691954933000167583829568313328656038060126909721699439631338731879897599092364571908390706072142803586915609289001486460865332713041716040468287760303532954981446215735413845759923179636307696514858786850927634133450007866040700880842246915225196908843192805609869720133941857603309749540531149414105189234200844716006737199723848497793061571394838745216482975971742806077716074261898683880310129651877769353624607899796795677990655583388092801041060082331305380898945799631581776023442898987183661014539174045162992171628731021680642012255373165171155244044118842825677009101221049484329110596851875716908008078156425257480193045879376436101909675293309762929153904940288655057346239016382983941247034420301948252646221858201891477740709728574712390760438522386490451164406161165816115779189314802375568862412214033728813927342780320953862661403084666834584344662107309000138336180073460938578890509231588204292664875410805677995624751604805016149783893758708309766807412205538660268844439822538356813626203821581711569666583942825821667992311804501787447156732294157757446967533719464131297180164239248420058966381730806580825397287664523967135469919859039778647137380194632978428242677173823151469059608449567890355414557431533227335261368561613331538956630412127329180726328850756051607361635712092530256947431254039269431698130479724202633805615374064743319117813173474233971192778362626382404376640966320634095373247384324717164936011187492121403809087378766198475518163979172961763480407003713581057597819489378602161715176270864984313343129490431343803403482912741810133282766553418893394397014635263107593734984138635440673803140992562572259604861280463219186138042963617496280119079074085375025451350851546879576650936424799415927639321040646839923606032610886793358182416936417783593024189034641261847083045613670621636641130078120998556780618174515147179048875291123139340253665305372314720240713268734344608375558344742045922841192874917898130390873804210702636824968216458754948671856738383247234548211191175568033870024567006915813637462095559405304850747109631380259881503794685135795054792564759286218461915114923982086293799503448356285640296038804153900867506405934162544479573148779895571247990427481425221697791677597876043652342580953361722552521545583674974521082410585049771606460147113428335588041122828142360895819477914235120387822133943588383610106566199513024969347537655285532837617622684899673252743456182161294601279620996105811728520845661464928508755353863332929618630543697993626183200564755841332188054565891018370767651735814546478558793349803639687670404423548506387265226089871123116283999310788367818452971613424982307990228716068948400694456683852348399790366729814291977330446226318074963172925934702791612805140496376061500974073593454692291538599374301175636973623812397796520059054604475300799872449789353640824292131123248984843178328498517449964501293472057843824389111182785576492970751676971232416223339400151155067504354545009865791247537518004797883287010913088966733127988610944494050801472744506562130637829513277567385321031416879255741159211682327276511116554707282136685110828618935706397067667295876833847301709021587087394500505468407708891443955541301504603798427847828263339462617645370107269267535738255513005633008474587413545339513415824815166793779598903811375150632902386436159931621652481345478534698597853795059525300012083517963073442685205372029308407148294340297301443547566946044589623316239161896558607434548596068578060383430775177865886642617931364770266692329394566568242645096539346251774312321171514853994322394571666725392684702136734468904980890083467478777976415507136827172312364287820140829699022393699147150021262464089472710647316509124053507861626180870880630950283851888331487037711732392909816286082419236493965977929142188367922562501599227223469234371676515289645467790395787040927721661761395788567905886255605955945678225820070473444073534618867356339911591331866231528452559276516968838654946673782053422345052869421716466588500839720560589058682126146630905442420770605965438530542852103299800977160145221286937971643731564744767363874206288140444087499938828034037746735275729040170068692586228971358831175886522634818526421546249115142124082095060459985546764494187529239729901635902309281647011593496130108574001986752233372473931353773309645444527460358336291815989963161793459023728195514599188686085818852473155319752214394211662093410951013984681059631971333558506644539568825919558101691316401001529077049816822849362260088618705881810786426477091382375834080210098263777033662340561575186091775997953211558427374204009016798292710757383399630421551084567481567838736089027488856700637346675766803059240420959016108419541144629845336449397637290508530002479497543997416807459134539218176922208360499485395741221375366476366499080173975401346516227225784217095042623084718735531167455029527995007132932605274397912123701602972838976912103437492151857460978362931059965134945713698733586794632484458326272547208569270536942105555220417521072259813530836714870388109629599388178400025775605631181980504664147669440566593326869489636532819517804962371689377166958607818064079136501636840491125778289859990621729966866527053487167392285977953568025637044949704163023523883428506407353667745561348540618149224622407977444502423294716908977366705263635836177418578821529292533064828176800179775608678153270825396186994111151061197614794232939493694068968755360377803375594406014562069412852212452964516120625573631414927264282038292306061261809248130789988459494200490853636257911859605324495269978072268934558470660241674188459159428412517391425235204431810683820225766293697780459225043008355080184248963367756022731278381248084179435613035586302563352379289634982180765679817308201780464747218703757521715271521530843223386224462035214551100493714385163564294483665361561559465753380500838316862904158654573385442047694214617172712710355553294734695685070902640411314432993311809119684875567078550426532370020589385799816345871425733291381220337613855768947680334070519366069249358221380185498973699823047055539346299837712424372897261410165075923203569552524893909187028560365148724721917133076028531697946804922991210695954344511911225230634967353522623201742244827095970619845338339319658890374058637986129215484168408884908116754891913305273571465654094134640225540432411649587162565974034727619389175305502724468145255899316274932697999238708366916427285740924549325488615808269574417042305108934625065940374050001924162604210688892926242432142017412103516253510759409130364188386636232758594034670560282439425922435159903331780270045082401060272547709644318559512780789984628736628103922297369314567406976076546578951929999473216648868527410699989967198251467727421436379164094507918292381645784417930077662126755139018368734843954714295488204439689178470868529076586440690193683100557031586122007419195533759752023031824221688833517367175190160393759174509258818542718839181369140305774143276384940016020326002621701108840431014053901236503417174732372402712726758571934220671931760365742190790562148137775508071510815022803812986691192331675942488788411387580804998762250871543265680596619637753350096084504090707495257688389667132823930761671035489052291558335062433105609254043346758754974351982255668276784789687264582064799116402873262252783313001111052314771541484097260928962007047040676938568889694045146298955348828351274326513525466776903857944222265162719332821135775935465590966400671910341882580825162371614877322143597405933180101538437278208459921521736279809111332916259768895043715848934697058573561071810366128238368924553469720136381864715329895007436835072145669195899072691732305899367210479823028177387884814873793348841430522345141590831731454674677808361642656685994152868273992333317415763387939965413767173059824870069768599368674520982454440405696871942162617410852848727350206789558022593281846510640033974085488047524314042556268396907290236888703527224073231985037182479501682258233731339341792307228436145680420692526956749767186032258320422257395441691182706171667182955155261473831736580557595508300505420250029391418542866577177498846182010291719004532269845980843876259836344621575523065866627260697572682204163787730255111480816490162015441890108407042689985189989407834508811007348923639314321955299559844534336749617851999100925697531060646248849752256956140793982015466237859978639405654179666582661061653465434689220735143835992458851370478998842874102487059000719422467286909836826967796651603816112129253569593482977432532383898988674253026767986844554571415195131910941910262126250512865231581911312516716157714330418478163515634479035095462264085570719032042904374471076272707529707512363714718485569213331083240472263829526066054351622973832988164132683499785458935200921851716793352540012452570306868846885764834712212775428267013911775348908005185539905931767608727196469125266262400968822485047958542167253729545622085335240155421695063087092044139654747376715072971876224490861373706496910099370782648187260241355870168052262057170001008452559695612193333072220372674531055815650399818475757657503895851913937353004954734487166943389967442801192040339084378890314596656995918003629608288352565567479992117801599966533204008732731764405545387808033257681241888355224546434433476118412636759251979695858606063572291471667456400822171543217733334408189277971163126186678690265317445482460944187074423372672812869873526200539434322573358224694123421126455075131910577700885900693867709357945729287490577986727573909287142117430441357963400457901089042593515081869016785268224888017012163234551178249464741289673040180337703053152930469775730611388962629109849133511490779190968487376418769971659018572420866562776144770470135570605578271497967897982989021394715698453283834946065703107952140660263308935482946662577562118085886346375699583799725300280586075820872544845914774891215169761291874773434475392629000471420782863193709592751982238805919837215987206667589935662289917938567494856232583540796666766889107777555573392317019782362646026343729535626885023913403121326715606108093766326699465222941019722873106704445614544466021942007606173098897078106745369140978517010764020043516566026535413181062330690592893053534189059450234004388405193781504849068393036067688062766547928136649898388017580451307120799874037814845806274955984692299600203165673340702537369155212126302817503609207756313406480902012380377315677684961560763723983037239361316510530503731653231428404166244280767101772896449760480131836235209451137581424971683980044772843965454842880917084383883363677980506998517521180838981721042132572301294623091945448684813566043222770830685223206915816243116940169373592349082164884445816510212120799471825198900777286527230277773062049222763527860934801501107986977068770549416351898692198532039587391267824136867444463778716188547682639085141835498348889338592377908322722652806626990945683718119904632058047746884435569886161196231679871902896419965101709136523672665951527127455158147687254621561851035839836220674065389708198552238122795897998456046941404141803461558856986646086367042020135829061947116309195298679310181132337180997253408581593194058604877323482134649128033658762986825917936736611918786943020482719399610711186976834032948630001999434609808434081284926080224907560543379241552974145208865101304025407601244564630567631321356262287561488824002127746476936372784552727159260908724074721895066900729457827907213091979546318278396023789740429382302672642826719680608451808029365403873911429768264247535985498055479001242997106912454094757300111625287270423980889171633230173300301704783975978450945429556746363847165876897345339329819417971005750342289726200552021297627636705360720008088201808498695465510414569336789105331548619307249743524558278953211225754460751568113969476412397575366112429314696200565422915549962232640153597782152061347240584253314816624845484888033559641789567591550165218622682786395336220826262748901882328764359946517164992455616557433134316604794862409419965975284374810844800031907399986980517756135864235166771481736126920314633082645854238686025368088990185812740195385216532536803011117150908255325171513675777352591933870099282562465872808768046646078969916274766996809693642446786803191763664504345680781914227230902695929300280724943479445724725269141803009607760669606943462277269374093697884936511486097920859167267234436425751366880142345553740746060400755501638634478010534278206516775352655443412360421991868167530759958604626485476303430629994874658147152211885925629255496055034168976797487694291414598054272589320163523987596627736608503416847219387123525792632909011438574746041792108603602671684687523926269024513496410330287246695033314877175282850021397187032628662965146660976269584016146371317757735444058772486670136356896732480708421578836138995993954926371605958290354070080314748692731439565653086056716976725346427716945860585387919200448220070297314197742253657236982856863672392034742537867809029613877027102212155720190129766568783988177127357200913398906417836228444357078059066958826387755878016752170476100446650412335397252308967820309503640076664074185176076255242182271461074087041356252956202807527087151941689448030339117684756996675309762869549460111818499189507249631021581042112601092391459970694802484453116585385737837723542781647707877112099708339184224274448708600891105844241404713836084025180537922901872837931377882910164793255702026977722936161978963382910608698045012362583768220823869587836716603491753168422041055584923727566133106957732810423828133689574458430808137707727689153651082970606574027599363839654280597874189500381931317288580231544789105343145343335493657099063296605808098985483785743158941609389454257756340990561954190423879274316112469430578554049876577694348783768550713576687090547182322906867618641112373967079891307528975996103444150582007848541463182542343489629039819340481054818492562402077493986384743661449996112590170998619489632936568981915785828777834502590694287003563111242869963979765442515742076834856526287223160667160039683152103057773184459620476651823509732401955445471712543825420655076984172653328984342393159028122198215321781779443764836883541801843731414919587933932313143691893468015349869817525809013857469828867856613127825138967542994164585437606063296507148042273439517104636611731702732609633711013144206353654249937433629781788856843051367231849614068295561199713994204947650611514158278171508727651796094681974482331200672879400241812761793631319747633168758212381309281215625007298783014914281533767826099703807090812479576904373934112380010412638769078806506462744036282802828753013993303561426507353971103577410068588500501017013936349113225624883185973380589925071108623670800646078851414445700026823664080940110583043329752854900362992252575800846885886462095565302325823783773248057578558711425042732514130440954247711580720118945191688229996953372608599871315733890072821019294090275666592887567291890947829256094250330839557679948575935516957790934474336693260455496443682522603532176422081140854178604362959305758812061786880344184608537872021367593771223081386454686146048844607699887922326144200692653636866572936119255461568915596439012136206729740147295293640703808930595235238223710240383363755733235234245146797975987363128365407099066863032173544630961082602270519733807741817068168036311395651195409340449347918676067141100357311724940908157010454756424432294260514854140161409275037501639665596227514544780090149556679407152212007517019554084403553561136343237168798952244041053623458064380970892569233428284256201714572413400989964387895908031980329910560168427206666967855859229413259918858592138283526891400459549553568723411585793704010655059086686850729820317573223261697226132268770174471958045077661740306285266531232605698381473530311736105988968242400578635712728419606701489557577475518660695127299219776703758575463787161749617069761125617350729149824287704712818261193825026774527267131913473921842124470721458048166692185281221028029734720147118072885836203187466383761485011627218622625639044654919813117804666966302863869767168943743400900884890461347058090864128814329558415656941859547106026475723090924079253417900153594355654268411623775965559784693879418716159672997802580464939836289350753844470628017139442014466539948730528004244969814708423300290466657734712157351191571149524454282946111250897844795961611766536979985018082178697952420254582350403205891193257989245065185932281047877549606198581146895995995273448841068188021834023055994863169395133031514353238305497908116889297909456789714276982535420873375997688701204327745958129368616747723837475342227661279532261069418778549632320432281058605728147464921379894592462733303456201605114564593723031247409347222840067603334134754977775822902736844043844822093884347221971010453541857435269306411419665348456144885365823194077964579223946126081648224912820626165638867491876336139004104215081867188373796467187985477084909427209919609274293673506675601503711116569488941639452823925689292048558706658820209741992444773546470545178719543901820675160232173628736537131191379840985881032373381872683865027938256280386081921546251077614415851736962781084084733006737559816960886163518417771135180076664864328838516275430838357474917248241681655493720740124606324525485172705524891775227841017438479129498336778081985621857267678468581586410734019629990228958150884774508218896957681843989545272049312267429577197193825250472797328939729227194507985910964349025121097854585836522717960798182228153608741544038227742986192850264581008643928497920500687197279452415261500732562078162520133271356071599321063997203906245917972411015430732357878542949145667394468406334433306681120910982879687029107822822833729463865930462452275174107551978271658505068895418411264345482373754784677967415060109129797801664637524586902004780902287053688955455319611999600198701653588676651177737881480639718100412187858215344054962016099791910459261090792090298030211680631839241385271001142745305085376795260869212169268338680834170278796241272601138245482149599651130338370587952356060180832702906555921292902768620855606359098575092497302846553635340464821803252404789508754057184216445483893021184609422073937937005136645060823434153338059888845674757936111539281959315746660411445709048364076921636712802035910107742340114369944418397145982344811796635322017937860234426191246888505910705554178770427954695627273010655697930784485253224165099442531653042872481052657029983649939197151733319072324986474282448297082856466327821710811207624972175030017134399569885657375712533627556602578256981422115699487829169335755939608226589965406807973179892955713062297535870689399669526043099380039324718948249610461060845435152123926412235919783661997341719738364320625629205855073554690890037103558699614544398005355724916824945923788122584143562463357814648363479690710637360566957966221644971198058733671146763393570092314720197751724085006936441156311160670784754667796856065480109657634254065386517553745136943098124456372225537855861073633635701876265030145731653437516512240933270937743509057166600268158513752674640823901895705649886517520143222493079557576062253575033325109158386198540032716742911666174134464216017801987734901892189399846183596342907842359413571106793148709760792656327319429128445733438638856500188432161426667740472306625788540594794930697197995227498663125060181205678698656981817381838965934266769875380402896367732681208248287453579895656006401656962838013809535682230664521997666707281058335593341317543002586873161570304180450001588672976148920674553304343762686521526734088597933721822475068197229606824709416160916022431473840081237312923467914323099261684150723824018330128916597155647135351353829500773093091137731270487150002287119981490352120505770233749594588475713013229135195901672358390485406486308122204149527618993289893630732003158680399592657662492673234773216193884022766977074470220461403399038924545389815730745052386857503421141406189061151720415414899378211316980804623976806412996055582973021147896315583272688409312245383503041709986833432708565794090626401978632906570055014755690058546763731005395167095743840160190950157132341233774858587595563243349357067449679641687855233491002113460886661258435046999160862524999011889543141927786800227374569684254460272299715064309529877815175893520957951189358374129087513693686512986685794393357986389150201632941184243206741144016956044672131995257435419836328875414020793433360594062414620851332962398850341121168660594152112608989797666225430405637256870433580310334583883436035068147235977318146990112048820232571667443373396508268166341984178645307934041553716994278786532542337245846597447460367424807654151517110919575486546325959205060130368668809531843168982161724308146751553116544941461442655523446738123550459461760962799047308962027067250642154732655052885266343841607480961917682834738227949349513808183711725888810515008892400846773778699175608451010999836891836613545720408742284684198835231937490077432579183991864379014877817515381176441404623233876342384856898982695175809458556775281158946000395306310526701075351815527201978451342504934760511777010046535837336413757833226130039718990039783203226355864769541170186314149558977578443388097028036412769304576801630663044410677767040956829884205983766115617552668859056518688844160268766372495102079706756162020564772663019657257882730605986745469841064159075638991029004739672589356237540672414213304947826259492810883539788268326785273047331511497830934074265518703912302323519546442358254858655564571452117728462233519650917916858042608193306161284952383011327845988914373368337062590857382459477812450167250459261335218071770339647944121885863489349780483765587830445906096567591553021748262903206638628721619308487497826580832526596476313727195662567271180822984564111602112525961500528670636425193627820161393707255092497024754579139686056242901061446619887087746464924664341753606317351836757929605786722920552318200491524961720058620510696502653196629550169533133948097403660264230864836964232527979264630821844350533643295476969973057765538877341149134996867495281099317702508885245035085145586484226361406441032040340083934701342624125733528073321517016668215639840185997418221385286913208688792783127553402368147919473845201052280644313673538782498627055097953018809295189489810313634555040013943631403887381715031604471642162810705583909337565236499412110816525220461700505842731179550713062547251435335864103610499133204769626192225419061371064004468725241627146664086107533103372110259978343745871674810652403216952640730160183636815088493985687318914564448359218566085982486425637533768285855744451476574778966365242564207166230132367721501663921844287327324683241948562966767236645849948080314606836863834369919542175420340745939316630884660281041927622872842735405873464422654818065471762599819855306900012781290547477012534424181144803972550129164519553042353243129214617957132848654020334892032787852026564485533322793011652201641632287811758345156065829126345081524721337524136618251663526549129807744678863805561857703744586350050526724966163562040163913616132002010737844548313339401236438549712988406487815420897149426147059787400963687187235202519558850654211181847225927954361789685651821231030860913218964009587292461684583204261477337842609981703966436515675402592211616641861522298418465209838889763099877643729297087051004791950661338051236202851315952585046799422697135013908962750179976091153417410783383423060735137760835702512847104034157808200005413022435369932065525756709755319784660807389310508759613817215027722161783567046460967438680674628259518566156693235797924238844587208497444103594274510320936085774896054071212802148683146733702149563407001019791754368833568266805867169579920078420485556482276302410873599674647818408566677304979779608672916099919271892812245773565112432922063016002413498618199347933463254910515665110868047527445971410486345979573814714538582452621673392913078240086837232337783127451665602035257070216396244992611422553106640807915167453689675109626005227236527010832922496756380190758060605034404510700675001232304212804688129944377416819977674415257658949256634615331688208871174393391024257831268086381056717887934971176881481355522496095514832716249465126485470101758369579995965849980323514285198425794210457460927361819727673682715029963123662286301308270711952498586638304306383570492927457116529503499610334971880247180848970377532509640314985129679032451955662998699921918117122662908407848270128370949699108982049326556786693366490494585881513134697974822746173601530432130236391735236653948626668043976956303292403900304405952264708832171789690061604032977990214555621727347820877424771532415216691523914537732034749182695533096109162682460493158179376076427590570448326556043047622394149075072066906448148181017417286818717024671865938849612029848376657489914506787502160434011787876250597828731602647104148156209807881743261978924097227612619299929700200168658964270977024488792389377047055343055718446905103732164995755877392861876649826374786491460502348251134371836100562647425161967236196184488905385140713599119650630826499737774366741890835349638914792230418670535871323405529440465313680426880016193613221943958368493782203831750375553256706133525054800257706520417174578599104170071478050310139440450685480040499001329872406912121809160725601585775845819965853305864149358960958751942420566616428075755193921236664446662613080895095894262784142462546649944979712690202234290516428786380617487325253497127214862063523815236910132855655211618311099477266958912306521782195980108213420351343831797550305119042651635988839428507787121484415868017248407407402482967035592075000882489507746168917725893381687895684598105323154711719571249937143231431547220848462546028628134955857938557047280895384510201317402019897831056386254281690661754813076401562588086419665153315836885114923729726550173863486468727573630411268576110144580977544675938031431251016988285335241909353958574638428106675843167038207859426428407525534374449977832236460086281778672709402401955088999966688471863370715409668049760812302331872604835092808590498948681270303821868895890957820519998228706176902544459700244279661963774356042503365129732981792044317150909533368696535831139263334328575658475055994355818105417675979345486095302706963366651871307087000928487544681343040064957151725530773487087132565547504422143360620336391771038234247142663498928487773294010363801911966620172923710337768206472304486801792116193369811222085040927859513434343171305651374166884265537247759653801349452513011179887509667818610117697941657214982123463341465526295611819444403342705618707095635013942215590856260483888745455730009314988641262238334796369111965182405436134993705177423040592300753757915674433938575677141143523908937938845982868015537013647225458096352310318860773640117599860773495057252975465355681899874706278947848520146685743503802602870090568093562368250062780369738706503213488685861630007359618757090001937050769125267028675543797578515408181974462479741084278216222565644803032574932553687899223663991226660122938180606444953357576403192442311161398663841032046247602386600595960661298831632674096259051992181304020743371594709542982596781849539360973869756427464503193557091129417961737906033493850847370194091813433142739242215831413571449283449582431562727003847898510541896688891708848040563073671898557800281736878192682631119793230702407210739868427789878362522723393770799923777718185582090313753581494403374498127920052997356706543946438949690900465709878375568038897764679354650762482757067691908415027105608852333504827300128595460658073967059344835379154424915094569629391286995229203267067273993788911221406628089778828521348934266905850498275273667976281069543842898357320401789439483433603253207605641861812820850774263124554749646222806347905987716387833048148210686765480112203044616713685907356375784507415548553817118797067805084607872629384219819248648057110260203866227935837730017299814546412956199821739571738280615373931048418555381811736109936826090338793185031419665431391364592055486244346494574363620075142560214021551660125243365326244009557831473276344299608769559441219922773453292582020736518556469887216273404902672867731360689767405614976085376417000541287260820188981730048076346825956187905328789533889325460088100906159711648479991275908125474904161224330835060756749104699789699843312919872357515826782244014143551556450399846400749196545406196778987692845047056530552110927414211033994901783547429760862693675268883993355554627959923855909334524038082406193298388303073450593683689073168090566439644421062094395981892887181052656528073026441900413569754021772130751610579588295645628277078615380289221093101072291094724116096243094100623625290010493978997163291478237285568960996623498057624341631531699570017737061867503511265992327866414091803307383334829444444053635327460484389122608441678674948924441161757704632289060184610984648935845618433025199502608162971182667007626817936034755728509509713411414428384302763722111461744062195072595451599752180633396715838767177821255163901058882849764565152434132427044453980860140755826072148468146361504365748772226873464366296079145877728506351464004545996421793985846043875902160531281921462387648033314235977562328798243836917481955234360657996114832082495194140101662595984905262663771033551014541821074009004036845942781518218968102321484801265428710426907221272251456241437273502226532301562719060814602113178358301346241260126827957706513263510145740867631389251873633122277585955010243272345620303706745099817322633901074450985080358008898621288788145013517866507547780336462119301508654165063959746945049597584385569074386194839523118587641827939781279456666068813551399197249152698728581024330786134897227537499884889863783765517159653407934077587245663100530143893638977618534308814947760236704888898289755053322631170511605100070559139710291038810375719090277687471339055344079729146662151194601026546871828883249729330442340122171896875462047030867185613989068814361027165374678819585010318122166704776049326931605559842723953773332373604582686733941778339718912852205112269517054968383380909989541262473930668942062414200962047245562581477428713207802191120005083319945232365734013378501351290955486595847144851023952706752470828993543455734966770640073524520880675702646037692181482618657306487314859816021680674263077444663222630796590182508058045228493767906411588056629069447264968124612217228021263873352082081017040151248855161518399000667553593956287574341629228448831019256179761888378164950449467797997958564812899451531770099091090585837218813871889563538040482445096035738108137724832666768671918797999859335888053978833703352137061946466137794546482335094451990838623964942933492160061894686072512969808978926491281888312421617296996845940882665158014974452789546917443342254936759962695580301497092026745445737978606577041452150666862826526326052986515616521448586146191342777630013793093211487313918676954863329631656580518933614311697061532383161844537930146467710635382597192283083729457587878618706258557452073443346609286545152690989524941682711438293848990271477223124691169698390108047890279084981796254911397808164195839971336385682614199492910910523891393901475026749115215210995283659586669857539353142646591398357492684197739507631722854805475836564814241016060292656681705992966566853154233289126679714934474110280674153441501796471599010160604932014021436844818621058771694257397054489888685233924757474522984307396081768636724174655645522709891702874226906109482225275011708255830433017391192695930693769393919224129417052238112845291385921878760519780832886006369175914023335733258081139402713507436790508568583852804505512501571432619671117491862286521116574012049569245150237516675885751486127352471372437013289581567256605924047537555464888390897163813001847220753022636205902098988203123189065247819675283899821935465486155391691803148535763481101005506380443258154530910865762812408804804951141113219096122702640579723713652601877747759620561086450522074872585248063590483755190871033864641527970266855246338735040735124756890018790567841874762962756056100160528251289720683520846845957978439514177079360457556720685160023082413866294335571471570509600094428083162834378195201737839080480745799642245242792782742179164856600092654691550553732351242095008070604400773234542883624240932949131502716387006594006543076530786001185431851092203020270097870217685774859174914921041386455579503052131118521651088185271865197154921055312488015410890635331099512820376826282892369047427263390029264526598951221754534084030913181041662615938318668150947036056170612846401700596706327313574831568689277804480337095267560678413985670833628535287489931634874938204426913972175013585098079184547069255407458710151929794245044390667204347577605216582787275829067281126359580116001168141098961118393189910990451532207787187777320738937034921305894900049004420126986575083178122137226469994857870846149494083337009531126690512814386701830191083420804470819710997512571777836036068372609266802088690118592567292425816518569038542919318386972419598058114958212836192037328405155889866852288165623253032923077203724845864272694888684876980874809280192545467105093541435410787528566203845401360772781263165819563056810164029828086030240161413870628965731924104192909140011153581272579455891239446483089832745243829103743905124463879804169915145701112582153528955087535884344754818614482276856898642946251515448808916569948658457886990500400942841271957615258226388676571503489253336157350375150490987299360737258132286652826045675149834569446621457008984944791991717815746636642645655311470937193072898535663282002912138294203944511643833519783358639799080033304400466300677853433487404699893831232614709253254205585199026572621003216891227640832579871237936763731824865379667174268799829452679309427935452049514052115681682908175368185720889272164195605930968355972386612774076339506510547670702949350389330291188832997573078222805754969885236675023850771300303937526144216913275543352771910471476243845787287648951350047112494349353669504605182952186283010708536938774030476208826938485868244430415892486616619677060798192080087006021239354870138084479778790570861704027756895821907682701927258544927201772577879652570461247121447867806128149483742297082965452854364398360624922755933855260312579992833912565148339204974616859508036823794620043859206253943615652780941854413488835939010732055255458692274515433268958013428403131263562816135242251191908585744838194264029446472532251285509539449865500578162002206190125619317438099291615931141136758114931914167396347184039823672727426773924186620169316095094674209535104198543507073636430792754325750646226131953280688929342426225563949738049613483805677408771065921691773548150315750512247892652308915529305941170161787414405999904083793915749578377225495564977391504994085432053526127911324253902351902315702326720339665500878019504537234349005340860927655837794453534854343259753696324360716903133271785610875758640067982514974620996151563275362046329625794080294169761576722077912136175837446827260641490667121803440247253228582420342238799877343940324611523336454523627088953604715070977761098061583204008978511887945981889237221311371750080726729537165837894628285449824166026133747176857458164888002185378189438470553805151262052421772860149187400199808621196913060712358835032011394645330679359394239960427497590788962378272873087437539526527863008399943303374873199401194903365364797735578094475211428907878817963236290429027396654037159719592035218710853583144438808840810261395368155125186066075198880060056195532344912174724001204460126680265161323196516424710471817844638791012339417008215875549780109008694592182017885718011840761371050679993425268114163635994898448472436567312611944268388238276687687910001785630029295893731308845011906059682393621439187528807663167435941812563321995693158900083286520783476790529616715796277075062298650723810192401827733660149231478611975483788594766510605319677119073304531640440359143172279654187953817109813218234286711529196504895217097626144992613971380133040017202250821169850873121562388258419900175785707178742685434727137243402703187565009505793085365627900941831618683000759140232224586463705784029173369675391897676569923739196721569818047933948107303361619163319669850750686425592487562698982637414223365467236926936316951687679974709706913168037727657321094565504467356242924521353028780912950310806802928807479434582795845113615858369137455171301317252465751511791153084300450516266506121241356672119125318172144714307394887271985632187948323977145035089438802804964448458738055164670589274352802161410547860288077106773251169375705317617580049754395760675798054155460586322402967888357749439126161437506909134937778722641210964912334896794549443496201693868360896648358621046294737793679734977133524027294213800612360357411547870878659876321741055038319976057433404366212445436755116397795358872007636812367330204435947484492710562987166187651481517492831194178136914228065029334162063392852678438737804255626076280676438927080334944910817494502126123430849530853419514872918406494733059523699025825751566152182038538839117144567912691793282711238874435749082045883844974641031831813166909324373207821823200720312103122658976718732078235472395336398569518090966055339768147754745806202002611851935220219046749873664539842203225369314082051360148481883519667530115556452209155281197887021700786229208145937316540929602875876626064276093239446627087895589624810796714879859876941584875384298870675085343456287137220183755883715577436786003235482667861752349078774360737703438823288507507935838209260095793920489244481126455713728479522053748817201882173211117311816702780033645810594858413736693536930760673101969252261095485525372515546476503000408928060628212802932836518059266179188880569067310600074599753903726935311223159899051872280999015106649708905789416255451746963625853433595541527426740017637691074251658040133038579806344259410725066144517095630178558824282304570596383487344017570556929071913625993046717308056134073612117603075497821183646168799832041376971889344229140413011436974369610232534310147354975378639695571998147911993952611907724931292018155839074393787880832928002606762152200331327842162229895329062368863073947967071552656944616286590662560434858464426730078264142424816856016501742010173255694463903352930849585613660565533188592179299113681071949194831827585795776038013263379227704827370053900730107234267992406799163520951617359134365199880779778277248196118291388392620732090953801522141841158178792236929721091847252014083471584412903816966353354120235396587370097440222538295857105638890341053915909313155819424492430181092528497812941732421795593423575123316959813507328571353950483304994701761024703021814224182063098872511671727940916189650616692207299145915876644578118921982949038594083118690100487657674833868021390883171407954362391122143869240827474933511149552386146808941851739484825457581681749922939525518181764327259401366383400782657146860973021699410978123268031134216454263516353858963116667925586603359634411416759242640262218479828822866364209624594822535555181119065235344711762450661358264703185391684901810093579942230570044456910248473573548921407999185925102450986409733733636131131203006622450339962756352113003016816428220679527059885660265357109644505352484929478453362065691357407820748133763633000346455250747517908203902334168970556718781448127279843141915390745317345753589270658816363833855423178944131514370599100302136857567809935869713211011971007422685819599815027773265380456731017139365967327413863812237964339244340262063566174361189863880626182364377032957718860322190700155718011508839671523480198449820921786987051723205710017578744770998408389196395676161544879878056936870015502693733620941854164176221343013676218104804338168063352022166968801119786439958998040281941144647675266027848200380191974037303572679110776155631751465822410461346399742980866394866535401634725811110482041377832048782757033895952888902061751831958745239088148624677399765528308931367208802415852462398350334563442486959390591632481063254407927115525118471441229575541316584660108478785373534949020311932906932367323585774048745010446946036327578862669179299842008063733420034219837769903589010406300107106253116048921180172885244005882898451728077090633572064378721650803872079760281731566320696463101836762414493837929128360131237035407297137623879456132239906590214436814246694046787994060436328137019907194395842762360978808564772570585314315105210350259384724214566905468767056145610926411716646623369472784832187675793667301524895495469741183309586177310955148975652010066772200679559934856759768009759917762525164610291243448528400214134130721455017716914710700712007245247109278826042195863549665502152765361470092237564002756226226517522457629431557685158941245293441693033204287011606609378925659002543225620655434937681627904781296870223231411941237911725514665998938877577140655352072688436292023480551726105392626468000428782730821114736190792677852547868348294440822322718982158575908427767301602990766627410496638002721729701991946860408512952121743971631957267992995092213716609058122517314261587768198753009891601913009274537725886556171718808941682634316410711031677343193891743377152522167368051384734836389160163290888163435732201955529005446038451967119385836536007497067143470621491819866853536409052093073403924986278919930066062594999525451431599084926142380422770989615552853142008658525815128238588610072045633440287635147137694096755835233267572129125149723401249261051722526194924918282613946088703559531944210620765696168532875676291123344919327481871490453098772744866598197258448164684173087021020479330049139084329280657912327716172885972729864198904880983673208537483550446042458704295352878752169348537126692050403557985380020758238360171643733253557363219278761839613721141118735481203775947120819788185496184149150954462584927666116648154605720905477833474280185138517617676396917639991104569195660217268677362010262937765822406643132321618266419198432642256891320579788912348389510447831716821600298822366805553682320412097175056860499375189625784759642041329297321260636829678283119691015542597420319733238441165794788279050892035294490908713606795712257551589981743664252044026762640589034037525409533589677240162722064390787432814979205709688410254058562702124980505391332628770803374026243343982321550522877862627980628884766310116628486027818338794515131720208410299402391717716256697998615195977597913662189838436146924934049325422455014209733375128832042291668890804342639812867731426836000244881982777460561967256796800235889569932770519118828546721706638323053125890001869692947270687523940925021232183410619560224067702771391592829111489814514799474391467330938862901359819492313911725693857571750285588126636462806678574674923133334309748749483675472970896648813454379483863515376776497187687412999144471541588432810076987778806929613442602278628899628617718437794858279767318008358555932524808207380738909912874451830646184898850483187732370304629079342144763019571949460959385725989721218161257740031794191677131567914778033352030319777351249237423386389843391609018360748328005645592950978622939207268982843181655652159902547513004478547648373549012966149656421596683777670012112720135599197298497405955094660399629148659449816442338046780717547506564790473444859227674316096842527020564451161022957914078398609658812744064454748709245894384824478492033361615867121086779115247361541336835646339272239519133530322682859171930995377782505552694615575407425507629583894237611095968835440642007706750368055259735091398817379472382830002160013379771445753646147628650370600095679376516704279686551169592818118737592279487588444610907138022086198859487901355857938389409264634661771726334345002244075815897547626767440230628145797583805158381159495246434155053466574963123733368574767771070408512886418264172388900432692531218905383752208446425969899385608675275685286249430694321710572221635374660509670691086901138076856717555309531067577321290072298866924462275191809436637692698340589553864694339758127856249956994203309624757694833165934032000383502865349079318102401030165754103480861250326440280072211681890741123834664473406098235130984027008497906622689212746820196583249459532402705490134278471363413190381198312931304814563805605794996621021708471282715448849972976429632777763384977760662601208762554435928048477795157782580592906511856550135862809083709752501941534847684976629172483023142565491088956015399130368228776980204079101125276996516455491165637330674407838339500205427799918211941333703269795705971365151167812218470975269182039585357920254169551260636721726090129488734362783342802532817202707619077229361528458233914023923254880842646238037057960730625180285787156321168349476460565635600605983128810535561333123189644736802214346782399125725840056735018997915404877947846763133546971416069288030253312584461853822576070141748657286144470568962014446164661108911774325572983643681026944515207070637133971343157806404944529155687176473946011617986887663682261490461766394185688178975797568621936454967218088063380091051552743207466626203968562952302882354690308785267748146161096211146552051092583649290413670098141133917269091816882375127523291286190280894732168040438201086981592738392858370926027378282860107276112626753721155390802352081237459621901224516589141147374512955966604332311139775762865045641277393054001888767126645243168409020673300378669304271403733252436691442473998227608027955218267020021086285404573680940253153205604931386283905766724970296247928709807372335228016361533879123156645527358723385245583170816927301233634663153126392351615063564941480284010316029162514299706972829691634341603874502475740170227779351883763434356104444553539732795342406004316857392478920565681398265768018769201395992943606742692055894524494684665000955679369568347026690531332309608321461015800912859113101162452851534104580329012571419231964116547044649239297262306794839562638789488943441827787108972683849326532230194319114956208744750384371221330515894164566266976522193006488990067449939508577637000785113208540510331040593679260965234361509815776907276830851740653454406781991179820772114188574569898839891123340821612579510026068133398218142257643908859618448024516165777124945094448611827847426480486450020263949765935797680726509172672288207759784033617047396755010465294661902330350854838555435483171519370798475129696012039837605322579972449323135601432034124095235309345945095239098787446283660769911530875100836450508224926520576061184096247744840120963116130706596261814504106254538390521255503009740897858878422135776978589867523850375552081443758718365708087673474793756402531592687648000817143604944653530529993724011291426425779568281988497007785999367952894093668446042084107344917446870405221483212021870263573615737682323950842138538532674667323147714755797713344012973086205688996409463881398411591797183264719681751665992347351015146410196672152834531907456028024903039031007484463466788472714068122376996287971005013592221788984523539561268634286060920948686330650658551053977476783617842753508729231833895102583408033872514755265919717453343381545549432844082386147338344176563650253970842213776732855148224844132277576193978662019692941129383429391377819790115364831171789959937675235050116826042371588205968397471181228183245578586936327918135707963362339800285456798266251748024895049586640575072567223715980159572988451975694218166702172880097966432906489216654238068017657933126064849635091768699814257071120324360615242673136884600334247916934452824168018466520071635433741417251192575654057947899677583578731517981634642392499911696711269924097800139747575452663002028885822367153634199270125613701942829404206552815471106997665971358985972164681236808584284650133595116965133519912109592842634377174381701419787709734147351131196927770048060164424316033569419897148882999709383762208730109541552063365578506652021128117641916393280604666667469485127458475704963411689806960493222234349397160066602043188299503688381626313840369462726887696815082038309420874860085700470086811908349879270871699520956671595328705607331784192991758170672447642588665511065744006335574382983027037036004275877633704210280917654263349420053442472101913274727155396395608524453219949169779636511528396754941871449096078379428025911437485738825566281152439415489420954413595451622345139161724205964788250531363675253509892878291620307521252020162723893264787079901626815355830665583583936604844132998421441839915835028772154724386559905105856889018570135353080604772995958061862194521053824531710233405254939675661495584669914482364496739955794903455477758028752295015351251606862413191844619025868424442784700446237399394897056951935462606744906050080717343310307539395745973602047451259160677984864814764892498655512443535843945561974051895003293038728415348358461564917454492117337940470859770413980801457588023046977305452379043105388917984022702300168613856954218357306348710251625168244926118007096732599260854287087828055500968326497754578446779756694247324717979280662445023047785977370576846529782633588069699604151819994834066286456319806204581678232338760002053702955627719905292219116380499849738704618742562351131954478391420155052375356337155912093795228355413725004389618435781616485060179401871990687434335864901141591613998386409541618382937597993486851380216382403509357121690510555430157315460528389229417202108395447511656054996682216419733795696039207454592220197197911674380637880085722354147653513705281982177803831570015609085173221725552243740376002902772439674664224079749972281375882483729201215405761725336861426936825097946841305467158767127623664369369875630805458889958926873428016054813311071511248297208918433011999104492963942462600360778348395891580730073945339852742066114644238645372813951827802248485441129555130486106208026057488901324351037619265267416072014772074658521998868325666665643745929372965401479337658873346516498696799354961141747659488069583498292544624089003007184674362963905582051445169690777342559194111986244701477734065534724206578878571411850923405742782693628728269737536451516248933135284020081468821129794376933840015968365919869555712855960746109705508857882410162209736786515223432327462674688961990485496653824527519175732020643389094613910725841452276245324462949558498297671329908636105690015552418865598044576393343269537942828020844917898119068839381022302921298424148853003722304788515008866126824557339144942155660993094395818117874176025327046453942854351540659457703339692483121328063713668817994356403392267121193580810612727091929628316012005706754506050226276763583512715106294089661077296822141725821611580828982831480953395616137907181532202125970826992352112662809902177204523316492546547357704430461414136170096358064172378880040608010533717875507961348169045303010339874491438308239704664481399944192247052277666652585319083973214895533925175203626171946859469481042891094062478280423317374097586787606083743294552435370821046613994960968632664415218815175431176854659337982100755604853390921971714511037403433912108591693404760174525523206121638137559148018085019268286478982223050559458044527714884133924596526579726368869773892783760003519235188892123266635070942648649026307176606443559525986532907047175223312715122812726732928674816516875970347711753899190691558075582560173381103036018813055879871787595081367838416960655759931101828008703881635061334985569323961468299351457810995095724038975275807580326817319657801440729654803166213725628307767324539945389398589106744620516796893770716244309564312126545444896934823701079167270382554301567387016107163268588355553904913628021729911850075771369412848219871453979721674352667337621971691596867420368352123461562122992429542170122879987477710696660990314089079949729359005358266560208762237626760835952846700667943690499904574961274871629478505689219063078288195771427251767690026871512912735806150773006645318951086552435424761273762429421426949066447552795631848097577696008929818882076537094721544541590070023141377350967864320145933638260536394303324400742426945340242245237071270450332425620490954352153765271552978674118435117204220852270972070285976721729939512672051475717836478525334029414497904846159080754296174488622636657324610066230011731350821377684753729339688747416585174644431953760863778793815973503416293269053352772537997961734336987053797914937575282562636338309394396354075859921554097515692714423372864249593325543119487111251779874807763333390339551889928784632399798748793245362230090803172906159010524659172778438803302091290316452093737292683874511679467354307508584916342482763675910443613275777240476342025472552904917538776808916811348137639508869992533130976778976806253220050802330909718863862096697939864222821930550218142717339609157660585998391232120482708919701829668527520045431634401178346090972318010521330844616917202398412629344485885295916657239250861271835376826379016517244519758813014455606854255206159198157535854950635610939020810994294295291901216780682759833041788193915999151046866518998983850469217970963851125116448242689183668250014188238756742780833273069614775516432040844289840749895472272401209235029045545989260809786833817916028069053054989221576572984251393464801487527528027690222530997344650151696046966614257776564603295448382418835200070785045629549282088422168586711197869110991401853912076476862856098208289976260041514848807367504775377703183453536107014239851044988093180323304458217210182297808538455779437842527391274713744870547403118156333971766385190326427126079791057927953988986263618749066676174677746211477776920647672008149566564531933169731479970086980318699211830099278785517029192783386938980736401702476413995436265527996532167976840138208515565469437865841549509759150107657408728536200337000107527350423212887224283292979007467662214945196297589685892257538634176902978435004433143357650475744136649701473752665778796059630414318192769970616123880751775665303476943428539363593507061965740793644041303666931334300606967652823600477498809774453317229095034990473840807605021233561985611801239724310482129330556229260142173018261786186799640288715347056185424111596994126777293286861648213598267527873770591611035890495258678422411215789970184030053290462927154423368094639580157784887556260883002059607209389927463764548171544136960024857773235809520228846009457534640199443981238172525049402694834935538400418949394166335005553865111362520105578475030997979395328933151206140744351313390689793690079839239249889184084813004001547374694621612785659622633938152997751777676205026032779610683625296305364405032671451618262585110568072944931423828201916873751081776972389675391592642673129373510277799255031126392314637819901965510643404478993298257713372720988984338197945394497812815165743627743517899005060048269556498639522052968234714120269660869218520623905121918470039120700670171931624134588938153209250010560367170766586277110157313187236458753375675644459243111533010719428783173799983991770915552366926301395456641769686956724725356302195911433283574431029328977735137066641345287588086411414632425250652352216734036252738076262338311876310516590220308747122439684525411870814854364343241402076239637235684310164579084313638941056177234256100793018509111818515955389557987610831525422402147451142679216586858339347869735781196072926793621228053595823956927554229706028170655418200787444391215922003593522253274745547874449733908876714319912147971220043724616231785100022368525268251202061342750601515517563264536630372143537309165592634527450257967388928513711573275805757654583933246139000345698556177795806880970285263212338317899165502344049963035164536122300239528325754873983022188680581944884166316087746942942880673880835599997847314372080614300876815600573080486342505749821642203087191415563528549442076979371251041091135723805459136839195496850727442885264719231010922500197785017084111580531241044889052774716162612613763260413097279609474945868513150137799971160475778123384006742959007044813463417543586058910554519967727638309584820055120621494605082212144787919087293795256110121706276725347556132186539636195979261509312436129783147753889787867172707845277691506397939118811377666966352037953582876071794555346139337603660315938469297432568186595963592551336679119872525343240198845283889782952956162974120163689171628127530384403987338318215798340524971366132614899058360522934954225539754920045856150254964051712471165951092918699212271433865365762769754098008550264636322994068719045471879284288683280035202512677432574247576592055798454784456328181551758205972089453557549388093726849017956591013864168979331479195523841639383182176734531510647278504929842621557220903352280316632487162044542757011458793877639830584376427245119856166189185795843300905812247875993213534684657378575855543587911653218347322403760466641693000824912187162120936088065211944575452108212623959390641727230256098888693659215952891002721398697160769132002155204633085382136804751502960550789185845898477387098246222950743678473380027320906800249868250453838236070628659222830369679369147903826022828106698274805478943347130971529171366838488315934438177650863866094653880650833958212434021679802684790523690730238143722555550878471686846275108643108175723390507273568303038416711628011348382284576619695561640440463190478175533962691485699277712438982911539780386292479108895659185215694723122978868943151013686257849323898879238118685818408753928075093259538064368908595416183307651478779048833201374700774201946876748611667177195498908326996479150712685923630146558547328484751770431130454272949489827059324791040132823048770900392473673773583489997193163329481790748025907059276067054377970478285261175094262340632437094951636641400815971169893050085401372754866851738497854976653610616326170896616506289667080106481742339666184618350591788880410070009046602849257286130259431208624369961525968061748409277051410907338054506039474584672502715505372408102390187840327356949867776891484707832305433520774476787042474664224403763773350154123699004099419291458572257282674875047227202431014524779324503937827483117199317585113990396448391952356232411576968370597007018162558136887926976743994832808902572385995677661251156803363227761427423131066767995456786787968543370962500717230571743432447484534183809360827403028610912435865343971071653438214976418409188795936850656281875600254620705305590006378668965467360016008967090037482020453951375847214297881353590948352986933700745398547317836188735320618472807714377343580414626946312893123809600567978186668182301492599717829441831233495561615059679750100466960312466935665424766882380365129383937430343894911368759193003665615879230907367792853215286558874739403159835534741147500638064143323341427887948855205436229712723450235392128777898897128034235252017125862440060446361561673957032544043987413971029317502060324978571534621555448521761651233981242113055797526579948780489017832424296867781155870062510832247847463855981260054052819420620531196545571218881681249467977750802516046847180188455383203621564562167076980933119667433085511951047421575438856600506332699623584714417252511806788346533271934919871743372821438941106372783665003219292446640611107743823079926730962569968522235241069471032890999104650750018893121100951036943564650478232585540057714885496107735999864630261731839843481358498552632102559733791191644758937884484077197103977094644076272289098780399777816678866552439352058000108198877990565785392259886430019144043343263921574799617435178770756211695969029250391165516089869366235166581135944290477364128705466238854588179108224855229961965744917112866370484482191278852639507293971656927943723947278023441760458299427748469517380333756196667284194848408810948776665083836634572331027283416039350174513127496143252813824398734071834002579241087506982194057352991193390410069892770670499318510663260184651902583545046039364925062876979237178908194904700778663713665652496594508470858535715537638596844045851533841100274138486995805730248343783494032709444928013511081308061938409323568623140638473500991699625753309010934880873775045213505614853059561864513988515065117623584077902759671375273556801038432718562458108675319743376653101143539287851858092705098143159850983969955475397486591430590925928818154606662205366285881781294704866324426945153140337161984155451971194000655222455325814363591643390728487822177914859038611647906098423898825476667027212605554731098348800851256421838244904255963116674862056342167357346806895355452274715419340481270569094228628067079684528588360320806789770379326443649836732360360308179479984471294401727403021674614926416194040751427708332858609107998323090499451705150809825096066512332159884197105886632394766549644647692273516436752331115355439939469522199813541965018459539360417852531595687461895581043490918269879721329343553936382859160303297853008578147302958594058639384463620433508724796557001071613938761774092254308367219870630176840815277924994133168337604997304686844516300385562530595902119268219373728721758930551467266417435977409985255444792520282297016584732585793457764408499805345719752374177972941902040328000199768919861447704522884825549265252455464647331536466385033092842331015597121656335141049639508440365095491996642549529029822881346500982164834186241524096174271240682686869962714867324332422552787592723694802712629788959877341439339078310644112913739269363213477168549599069336905816681641049765484585891176911212595487481653301492623680416808293690226459072168803249483122028000548512013205473955335421857503274251984719661094781659636613055374319844182342656718642707964210856029611765868770626887703918979462501902841999069771115593634335366465114893151710580800633904929071400176891081766072695135597252536114496573546934963606578699026716636041156220576428806276543140421161489900035733695254147037248776534164954574257929402304928841169630553352845040237220571691408537876859078828260904193115789146037425172263119479569024782120675820027479912356199677064711392758879542291653174290236342094946613327934557023077468069582842034235524411635820642959878320138219662251053187851471975676694450502120638771344129751790558354366641461478207237207395077580533530032242759495203377911761361530160316956914207007318753809497889074666630250793940931525183462003125630982091440703526799206808132841047393644083374153206148588176355451360182142227869273656153594962940820361044318898686179063689110036643587537931446662277131285559721568049296121756018039718988831368606419822079771564712219853431179041051537605984538175630999480158682665494631331379920460404379401250059128298832126511045216028441559853044262526885170263559447540455808425170123887532815160334681676052117007892333510609051907796069869260086202210228814367658834242733921784828910952277243082002421840819521371319564664387613500949742302523435392220653687362195179883264406032061040648803155578682350107536077505285019028735241192475594669551365202197762973534900138608433130344389449193759144882777002308329433460598838054163144857874634770158013547242036143986606356806939848710551840508826149124189577318635299077795288919350629273901128039450319222651690506641311315964781945946089067782993897080021426832604915910290039749419026568015678942119277936376384349401079320469971411245315959679389404411992187116402020066319978255141327603512723279152674514076801863708412352237351800979353457271391656033414114596387945802692271806673037734166795277776740865922227685194503046695284608667306198752338654848871451769901308229114041909493067116723345913590648942772132275988736917012613331551616693553399629207947636055701708704010062007376290443497621751185645446015983156996184538020135433371113298985478635451747213503001463997971058148959539426275675306984222450063455668437890837285546680639995054717031045952264655137922903646818852446921567853744157864452557605111343359403115685660249214536806240954536699831943365743266453021827202115173324719591802636831094735073129949501139590699064654771244592741581078825064405049987453882854751811268639329628728979439739597517395565332748010102487262056564102604984851378623257826057305893385300736108454393186374011490762054042215798030324807280884520366650894896488174356242679013974342896603459279475440818051599935879888225314892031127716646242696763661306103630840019181024726604739647839455980981520458819934986064453384401765832921533481842312241918221208958770421638991589880997094494737627689841519340936480258327118108024884933566061701573368616611594756234420907544782958608240184666952090258175565528430590420714113413961553612356644465763155307534415852907134167987666315391398521204562585162552310551091734417057044767330817594130592937955525915018454205933249886995859367401813456820937042856305860683764598506384936663944252173007843798912464302890049644146101155424591162202483453415713142787980139783260202759819890513067880813703582641440781255203800829169177912704978205860141107843849033627581851292956503302689184837878942088257818271002435780519327899204728348820130628602385584972520779540174878582916328038209226444777812470512699833532162816267029627547379032290301158645379943517852368680593447606516661386995540345614845239214993090907315064640625169108559872776210115381679139034261824657687190048489032004621811480577258232580078392545105271695742155972217753086936601828117619659211196929374323024311507762946487501297036198583800199014967372629703776491037026579627049100517624323355520039386618888838312718529658202706509178699728858738901159530249328025386815302631608969557971664809505743185683405762362236425169920545414265400811454415483549523675664956719221758467536415459308227329151784613348113046292501746874415924578725404917643114875103650933035048565383412092753233147201251027689958175473219166167894403919965280701672788405618918522733041411099454285514441562476347305525728003571482545698137651015914215955194858654358384951935888688847685131839194107589633232428531376875356797619025679072948333794538224839675581249323394212683407434642455255981523136587440323272701349691864045537582724711688403353347918634295751846375364660329262647827963254321408313474945584659449734758171025154174532793078028366108058152177891235533258127762871285276175851201250071683573685087863175469424899310392111764234189486733925751838350569364120006800468265016818480421355475710274085688292923901905364606724896367022047165201309923155297976931503060494208466926557054234030006822491650408693588902830027985635761477005213516974891151724802600239270239731707909072558661877204011435965216845850864228105658702055146393581449661699500346062687285487624292351362931810458213769465466639977707421785546255183020728544833972163787896585631791701407516821188492960962385209586706006485925078236864679348965776376411241211514027401991566870176229639353574458884785588768684369604747458128665347036956147633535856340591935252174496874876558398784611690331654050616964526726912532843338879884205297614412147366755563026301114322956746628621550092046425967893072354435646646314750383996337947936168141327836988615233261445212559885945451514470505325202382235065177506558856912998611592067016231154641461901392874336663853823115908650605719924063168233837593980077629628263652035308906342015567052844852489584370710380417255527684831872581762389760585870933397971668072684452902144138690323494053527708632471300999882633530552805311190760216664255577080074379344997395014760512870557097288266590918710782791894305645748593219548260454402468575787318199208376308854079636698224184054166558316237692371340967832688900378502508382884078429812003127520270856096362609807351382771249727138891915988708242764798842622511786322882556764917224163728269650588842513324676008700363163554757636672639470425230763801068849978696684272447225694452190928591062145620196515483248113879036900933708498538719509758907528250824959828658414731254929144977564834979517678259883994104888535226047761058306603405702656546204225854820631120097818766989971343835676516632676980746459233650832418839039995253707833465043056509332230595336899788089624977250275402813856625491015536733595631149297184125877210451713136749962195284794460843695722589393413225082939058988033432171070437632228177657123552810840588959456172591211517245698900435424238959376734142784251553705742509475621608120085184173368091175736439230514968418073645144970623254638716195302669406445691975474380461563327227668954111721609732189138372805436417405012590242908517272200798746497722143290903562773290063843515408252332808313346038140139289097662514472146573391990644312249597782479493324869940173385502222959000141409286128634829447730937649716887255732013423471094807633814308843493249331982734971524499559419096084377786853057254501668343072367086507993955515126420356826143071301983976544800708466535485871770777690527146793145569240277978131690476110065778130291782672013314989389538345201627141864074701900822122942983068779668109388931441742895596096979618950081194324662346157411470050806624715319594583204385580359669188035022141390723118909860632625373955526156238708328594149298944355496458376780202855528598013193975124733368559092064205960799305720039911605005333720061091253430569086607811140754136853831868072512767803177143183382780744358035616647199401624176998871153229548262738837781552090950954705686510819652887038437984381881602385567147301846131435861181585020354448072111987795567228176865135354983494491679853394507236838857652276991203661438527272396618770162354903134959238671413689492702945731701904068465173682652726946104935963316230553647471257515589082128159107061682403684162709493792518585400444272856036467064979246734996423357835945525747860090476569428005006052986876756828932003515346625224091062872187136033077564762338005536517393701257232843218703294392490011248382788545872715792237317919030870892985811406739871971790980226797885629101602372195496120742323189082182497337649432275680820537066639957692556856432862502644802205064800094010759605656807102080815780401339218192302867833496766732460708021473626548396797794941831709858153063289616722543895616363510493758673024206324315178926823501348370836511586712406553098251746443745295174631171772354030482127708555717129453542003510771833390028316570986179403208255203981709792946584220406530345805403193590479283276412550430251427410716655129394303237397867443419079106817848559643604592871298195869853004865059155719968479243705690638528407411762885063278805705742246305430599879958289536946074803362704724196552682899104898636824544695112944489315380663289638084234833100300039415969864422742327516080651849364791644776766555888205729038007738082889245070497107989436111724855001038263535038989136918271311469143213767215546674075429350695159714620809725659502752960409932618691455857455384162865434879977107071408863149490356590463197593011614342597228685596080113395828292254506280066837594098515286437794538113803142103185578788978354249473777919348787019891812211265794315348698121255690747097225305306525583973616522196519710208807361694461379588408348630358360610164335723245881728658350064670315478241892531546001452683961097515535972803824385944908012798108775118464941944339213185121166387355461598342016505988748375022406321518829213510364762877932171191397690124243246431410128478854564362969379567733581967668020148084504347715750043785884471084255540928889259054992269252077002948957696366170069449732839784369177786496627765159583939040559424461135640644529881385408873089214660624776168475311836345872181167650429011838623674000676944135396277145140717553681130474335101890632980721963438487947020946276925330481711721591793017777691337079111864360656799584178751883393751004934833613681276541556213107099860748755075351547869771441105277038612911226780477036128813737228331584081230206622224797040665713676941851891354804874286511721174826422239067268629768209160763392434743717696589963247599713389157475208184418351882192361766166911339196514901354389848762834870045952890980905598951689057626211762332540878538832719550963345197230891114998735513286729643111903977229487776329888945281400784248631762945822693116953944646965442873761447573204278057294074693012162058247455897425247568632384725698198509937249790437655794610327880838248742333476210453212482151244932062974934045553317997044308801782648337841175023878213174555495773961113882007300184271518991623049952688723625649428280546776263945843534385661177396785888628175442061281687769513394099970988820613584383545930756128401811853388787774989389862422833242034229580677070393323308807551979540893945434892836861218933543355382879434824606515056547346311545897111376768982837938464081111821330987951923687522401709723648011018713181979102555278682960694406955608230301044584078606982306369599221537819383447636846793204265614780866866486029356004717833689487282108230048056402908675943570534539497168036392661684195560956034503054224863309129077195364097463607604573821157830925607465887504839696177577199412458783009239779008215712410764718223108512399620944914754066886800518321415538933950505159400534534010217620311734347576897440473249345810568252132408815241989311825012711768769524943341301057996804409755566831136758117601459367762475556719146123551333924281708067116197220700894617361492867620727714619710635962897988987296488021743177801543192542048821316183597767448844619005134491053990562720199996958685696105883849789972615218041485606735244397284317969350555431527856673805332698649956368897493165953914036835601992161111895143577076857564793508709289567792543345868207378077216034324550547854224051848829442568137340217819276610390281518420455580588979477862371153879209318603810876999020144487768553001363638567571953416809433903988408769380155606872508215027646009128216942257524533491885741263852291101313940074329320670762635965091986743470757103163367496813178197008285681633645691899537540010522916383524947749640123272988330557714814325195682944760095966792916120214055384402715836249698170533504239992677881192994293497716272810194148113696748844814611095958369885952840604785198860149910104815823304657971531376822005290053787995241479128873754408296906202347469348451595040354451396427033739043245347781053385389864950897738509373788580641057573794342105087663855269670274111739931613282132042998981313148576830916033900414850408444267387399730920220378573926118558301187789361191870864432274884498026243259976641350782409645376947233557520158649342664544664356686452825109242264690733789707324748573097215851571586159218428328382488172351331257314113512437126309656920143217756474945726186876312371531530816414265158617771498328259911292770011313686093538225129620851860898210603630634715608585631373625616354001120247044384922756617280427821912177955189159076579479100852676671848910829426321889546147214709999005884146550943523973855801844513967278373727210430796412663029434876260593003667040624750408212668361099233592969282567694990282639505773921479219236361559399525943238836489602235088396592651813158571950758995854207255684058363415410334477428476012048317485929648151133466393151227195798673799768830297948692367877923396324891417515053616708866128850819631487877582586168553066961059003000468602644958654630885765145024021026235321187837933768072110342246339117829914400398924037493029932884701701031078645035827824002891138935736779675775313682990330935090936093673341821680596203887549153392452925548323340966033622657963999243214576768843522898041129737748730016902480186651666121432678262385458330190037143532915517191295680318152480295489377552925876723024664139151056813352765696139337714483438255747258388493975669675497673018363309946750717675436396797120806965586362526778908674654413463457196037106329848916286320502077509691060595139482811712718457236596260711640494123570328671634422884792795521784817519337803263180750613320706209767107628265301942873883156801017496177709124205050646887162865697839427469410236898174042451085323576756410805743407055139004023248214341446295761411346622182331564426209591906625443006038999456528560155895017463166241621296385352343615702163979456257985629602857505063477335971722714960504416423672080022691920719848798751591067760933369188261501161562069514256917082462962275053367955117238083347844569789105419460521304112095592688759600530345767785052748769576704879431553549902467357847762244592411461698024734369583703360222994609386704828134406447823478786754410079118329358029457187780528910024218300160655634257711773885074924662057374112348186015422582435614070757245558111924635353995593301719102001345882896105210857603450545341478840158225163625317162083773829340885079862888453294422522034255929769473989661079825464270361082184524384822784350554955018336483520769871498324373915624597369272298338450686190351386368971117645107100170329591689119507366192868857879656649631534804097068253001920365864429651795348797034406240538822178416693082943994503838940098281000243353149565970909236575273318598224186398022259977654207270029791646864391335812244059167966733621143161201653873058049319152387128792838509345474318341839656036504041279802796874247471559883645133075179717327270100258674951088838442538854358025303736452282749532303376847726480062997662442885934928919588583809314451086150774972813035438902718218883082065389027038667357125609389363820114657453292928295895066886995575556307634729964972739874487484313241546617240101800400951666737255295567331287175136501341086097579048845443488470157427706918442088367844049742816727374404670835213562216365456232175639896105294210598264846998606837123858431539037342150952942972210709797658754735939604361631678818954236382554239327428218707743786322132280811164385831182086315643673596975533573076207431109330674585988383628531638007584738082338659823015350149217053002771139375601079339553346850354683055854156069540079400016624366412353152443018291992649831630163059791308701274245724018777735812669969825630739901468411359027826767492153941384754294277784834091346817765772963171151359823966302533325127296328026164617245294063535984399089376545554915679112441606511325559905300956584068335128029937604994315490002173262177148730072337262623551287182853362817829581257209702693415135363966730417788929097466797556269702180336114831996781926182277913405412325741921801641377541133485988915525316151585050010706985812668154593016145089461671159662576154974001925236810458666496312313808477511444038745945244404202946923884193222112308262300027421554291113579753627159738976829318364126863425370625732126630956550514869910989347197656599520676564125999127688208125676969134987377876524909998839846705524578949102642427670811434432375722781927305441462007469933078801785042931078282022319954100717418364388346039093047975808616537718244990231296275202010205188678399156450932382998003576600901336103393569657466956166691814627160732686705781873791638252194067326942579954944229807338899452059242789415007676271192809487632080011306609717168213736995693762970677040998905219425926070840161896305598818713890070650818077297863736149779726346563388875374052583847053383449015312703705460056791576214786300143488516339763634142637764083934671832300718960301884900993164319141121027538025036135701794235465744620694404794001525007308324325966193199635530156069942075351515186872606067539620273322861825458059265475096853197620283241019134188173091669684343469176381131709805254007449383294067566244214313066266021117041118751053684418951827464685670986793467985230048390698073311607463714125666999054010082223656146731779539186611103590278363853255004811747747180991338511627058734694159561932465005051977871732509615391549790922156077415385345164384135283741763961446621268269336822472722403649011867969532622148875355804476284697431921459508236079467695488109093693856129953036456178444948931135942219224973856030854777792123530878010704756150160741668353189530928304461839212125829379195192309944924618868974488318635772007088766427394406835191027223558482789538490160113382364856755329116296130039933229257306531100380459576132731472569894290188629078947386894505892170845007481909425284249636545623530757730184711580047273836041936228470762480662099761406003244115670958053609906262659011706367472987364113851137221574888883533825046679818323384338463850019456051458563805526121100533998382326313187935834092130588682851367925445588468118257070682955924166476861963227560899257956412301960036498418297702420167299379474397477318353914601767176679683904209633524719140069467370768930761029346530787640039744915285380228915983594009453550020204560446495061773269679721165859956103110350266652476314014568425125826471643468893412296055281858873656937727754218540024185313141130962674251485420142838531939928732659345843710352095776418980879010216149285889076632785826366666645769011237158425985786088326241463913881945247489948264023945875927897605261764722901369345386517200799315974129419364916755627832113680503240013183560421097847000037929904438896822517256196687209439300723815202435081835052088833136384393457846683532895636635378816640925422974030806924732598220229562144507412960998501886659656336126818203024988130260716846438547369619727259143304776290048653974398067067975186725758051466605161598847666939279062990758322170387939657286851223268278364308326908295345244392257473442130579035394651552128939905186597339437402333499936220871728065717985938562780771206458460058286081257638280826363130219265730210047895848670626054477762514918466880557515692530058062927751611599091757141580458654602173793383921568715519530461399625642647886950537712707104967544631283132940482860805865125998528003564109475205995569162666533720219998996640678352357265893073383157155671238307213522281825879445554302237873173548579654059454682258691776158740667119542973750731909893600912322567074935679059171983091313807843888809917677650482077986622940004094366038847647446566702157861937051648879210603541672306706902736120060214492715029973833191128362555087325191356331495597957121195194804874152743701727285014350777559890874853017893436074366777713817487322192166598078511082396960878145420073890770065315841443152669294456608809262155650060263888261825370950943980646355891951441132567172054894451910946609918758311553903410882300220403988466688516015108461229806345503247340688212500889422598645445031970461116655428049651011907023075983973506104590252643390788289036147749894344862173461579556683319439141649162828107777968909691412938608683399340758196109465619791666534109782551529210720046264348459764682744947090043470958037351080677050293920214620622445905340135405002222933896424506482635260504082826288895671349870872388858679401040485639970750623701323371440860836107130748960717961449132443604613289142588068860374176843683134646506826035927528429802960720935038531383022820353912185354342810597126968343024932963166694730729097434171891467424089115597562071247424006450194995758887533914304858086044199137753091403676761340200015474080179603760406583420896475084226010478846883065410155894735110726839234048037539077583284802202529032699317968744714637853047322157118207385193278587952051251346383596810131823752885961520360576909058961585633507297552726310949740377176665263752047736299315500786621845334195427312743003691271471703090486078064142172115463439119728050535634822604085032876884164359521609064601682502554090089716372034408695336009691681774517134185171878505349763714708071090605875679909917507586828615883885283938762964244181463408690318372731203709651780641247722307420792995349289104580249060162312776906998505750738924285143027781615865291322780550887164135018889297003843562341873858609365951590059848216545166166497727751982304556033515127749366319242746483328087306768369804292619000962020817482446207727218369536494995968087492182396912193823094329332814653729984355042833682257482953030045470623766783238660297142861791289522313344524424812023005566782485105625287996264951625822561563456549580845853087802285302335002416238444480094501441297332272674241991532293173948078424396513715434404784730354571653919086534388193964411594089086225453573132717018126271386458004968208457192287132306233943950991579057278134770963173020898419454272353799814041544450643970731657188554266204878629289019796453109441403368126808498784613752216051096440932214010608633298334455569958463843250791943387340368861922238341152690578686545267215265339675332955508158933962419150102290159953219658722530568024965865081643608197091260707543857267300265034934500765621830441085621356299327736613185429557172711051130101455781124550620469263783510371335887131621615247509058935960051672088063406709877259412927444923097266740871114498840977127906020260703339562062414624798511019291481420736119251826361885271464972927227690072108331264193523345755109031446869247788929004101694600104842805488228676080783394109614796591553314406720010989864800207785845138062513271144451740942745891114836574315766880292714312343222005183495079877243185364856772814437028806919837026929776267502252160203939115043328772985329637797067411202927639472117898142607688459373640860898227294961993330207159375010450250381810597664004539640537239252955600102860408628636280325432540009092310779016162031542522492823234512980285340829058103888159846065502290626592741145455079495858584542698436839205214487882605197974709315460372818964706152497960847080042409517376404713653769606929312343588305051987291266724670807148027850177508679748894173282575018719741092141711736487193154807946443230918883501933172734611246444335061736785561829128274215314011413211119393825634470973652889026366522740168659033929487795457917701414544353150828353898650071149493672332305953150519951908141703952922292918542321242028971604481497978441320175417256888500314799764466419095905786531482709351963551376795745505417089049923415545375285328852399204433493392331712500708671674828942980717344426278158315972752718416861641789999587305818269617768946479350395192593392918401960107603518333244557868398988194972511989405678325127143813527508953406054848763886198752322153162766878546280967713947032626550488618467330791855847902576073707831924294949312095621667303244074245040821954367958822792489054736614627172315654287418535728445109528975269808865751343637917465479419403953147129399064064396242367015625951245483608509052838413285923406633846363473990737181623610944889634689935401334895901651462080605957448052190598503583631491013480450566083488126566342242815015857071070804175584184648173801893429757026908012610867748186235984425675129307790141920750413987489096251701703029662415697972767951913087926171801083588300396671782461219430752422476360483907047038502458865085304584052027642476459558601048979650286155377593194261480466785747544147409900283125041752745425437666654496986084179626829578567941026398303340966827343841854528750726346789797826349684264063141654113190761072615982146743754728030195626629779006142404789375496815772115811309316149144581044815459278823731124066861201499096946990202160789468270048870728779365141823262790333954431410371259669854900584126085479976924221413704569294082255892944739306506651424396163196082948862068930213072530576990116766220998830520633121107944794428593659076671847640246685131756753080109921216852648394074789039515117758671484818100773345463171979862022439994925073873031257945094287707545288154679291154345009007279991521667806722364382247247443664309308776562138689612324735756140065167352642264614904406083097183119705164918142518340821158430692679316048047451490466068911983629864770176252800504090150099180664459175669065649509756867451190222874041547425488827401796403910501792383958493537746213903861892912768793238584175457549773700182198437970838912669251538503843726758756318572359812477333895575501055569325048861192729606197721919067685651642833497539570928146554223545012824277027492803825838354691929580654060495039722211042274571955872865757713106839219828494286716152757460547612129938284740655958073064199165624088179615541259734297355140235921893367705727610149722762336994138787263985169493131769490791835434565445090043438402709684859917255797707464343822706132280869611415612188738799155694768288270777146431254122924241195083938882295015907770865761635808767263897834669332998977344028546469881547237336474117664462117664938753403204199751467176328569461258411971271884881880903975046940920461862150806604084827872143926430657997145554705699523542089750181068064839819787958025590799509112620414358052343259080236936129996327440145685416409064332330684380138516915483702912208632658224633814632593072115811498374395966708327537081909078928978528156159853376673666257013080366928377077296603270873051402768324179330533435351734392533251872076049637983532572250259311780153577949960829280538710049631302172087022971258875184011650908728016046337112739778922105767632932632642121253954583562056495363093827090105209727504005461898844022215224679878564471493436250972501660028929023484677088084297375955901761835602656303156095670485252787101200534399386087119187983578731614441136333629513487872551303400410294775259604885418586140424958552797505548204620542903672006845363531930642223136143355392533299387118323874216245407661639375216497421237825219603463114647105032162956449204574351353663836954240146083335515300777099199146963213460624207209242903722112521104917463733411918104790501049304366216639212330831342060281555909042992635876019251370546783024030928003299537241236300915724300058747008402877688064456777717566686432878983820163873908107724834351971762409036939076851682831654295511858668477644175167096002475149352052857057638035839979760751751096714055849157503616940352045650308332719915659397945308312951136121192197980986581307033951057681937499193002581439466221286118636736415146493194598137821530890607430552645611353941688454310926902400036119080663501785225463377380967120640970763969537635549004520064956146625068174304976283410901031827120818978606030866764931640423267218270785271913930987266175007781238960295291505853830379959982877347557150579260492207535097325913436697433780613927014079944152313702243883444473283483393822911036856045012255819744747137775912489911437781905163048091912053356604069992476333833396849315934185885819786999896475493128986267715777102382493116119591195944860362358976390367908683572932921326016111326158582837405130198823060825720767475531702017005211150312648168911294697027117881112469415441231470262924385066637497821955342239937893480415731600289554077274926807520963847640045999287815811960862832015137936069191172626365465664237245932825169884641786197479626970539243826562794933611398065683499523995287790626027903219923837234124561112784866775768513748047968919146717156261944615473919822831003209466952704944829404888381015877196457637599186240657315228747001500907297118600968396943708328895086289185196900054419683995843224529985321330350671907568989271538443408718346091027099879833961212927068544224353908187577614574246651344864150288524538786353304946347004915680076989642943266092611212504177604209730558952297388977828561347908457009613916172654876793630309844583458419978287441742676807451991628067756148689569271508660725865691679671161513326773756914551948418070187264806651537341807427039948204727341149473522350487835013732000921596466619356874293861367765751157500263036398813368846486446523133031379606236856300266360777071012554557248109079442788179646050635963805244599807537578872271869584043722349326490027862314994561474258139356429370004431296029889731877423823000256629303099141186517876302086976951112454282745492182655561717308409201812540748374333577326408754674324000635294743949006192911787626781266485170848511720678355995012054642233148388249078846747154290332345524746353378673661087630183840723233324926558755191860691466106291801625931377789653209478230079758059687301243841062687100774001732799215382392813873745509068587677795743098763504532642943585755300294789927212914205245864297124125450388863205573153097473647493083519054225080967708248481988252127541626250142987537160832306660833552168549591422665546179965510507839081991411426910354024072972684715827430134573236431564092684266425087325986523838532417893564002737572394187278681732105144095352671536360669251245787960373777932359789618030979865151840889856302708605320719597034164178339150595389852603988750002481359680447029666833872593177775214754457057471738729137333099895618183431716602766013695519344552806605039082139406170529768152860631503601312200661206741909278403853124361810964586662422868051572796268569527804300342905700767944544361464222723126301898123955703766899080543321251505179828778588333280928697128644535399352233789573093698163119574681885792561624756410565408410403505816921473527020479473203833859117728205213791595279370344075092589131093336777987149252012878316585935080439823181871774691424993549810197888296609740775654298852231626545412971904870199380596083575731436043074268125663831323975364733365227490600135486180337088684091214306460994315150812620173608548188292264710682648396529267356804516766907041361102815273456795223629895556553271264696506955733001325564285798218459187145224166698018291407173654733138616189464203860868019210216541256339243023254669332631877996082065805308071538706322499297005607682862712184465420302099987068242284430835338623528599446313916616185249632070539061753975195855694533790301247957256798999657334356283420552430360386777712564195366458056969511562271327381248349383540204418370876608986011427130521888304757235121491024353005141716097626963479883907676648219793993582735577173929447321346787869425858277439985582186094869965843081108553618243048357571527778965108264790918611392456548633107752208557666791399604889208820518890858324156675111385007681798420382959782310716544464884782826049993458102618725603859961922138392547118377757273390602315031146254540117250492692482652355831787757495043517666443353220350448912050191990934904586036043119885835078682840572032323143707521190666283295274168089539532895562066744980362431292021937003982064443251975104547070925981881131441721121731969071592694730713056790125862206166589421344657781498578892886151810230458420648337928555652432135858806652426095727822352989524054639196999742586389827227643482672870963191285277808665255243881075133438620219339333185835847153415760643798094090596650422469347801596678906226215395518607921989968165374662172352135365038328630578983902546062327093607266877124319728029070258186253517742005499983244131358305528911117034193084211255106853711867182478482019170030801532909758644422007962880549872244301158167257677855875714247979517188631622277395081720938178734723965421998530711520182501866119567726537827209513573430898324574950774745225188829575202942473372594046720953711877535746986081735245340653436158197946108258599355025682805178083294999251215579662795780847070228460340916430873669055443006779294974432378184055108166326100531606994751633380104525700279593261975358162130037189474046980121418740898046443301086721216762245241806216900166677590899682920597042922166907570916373063650491102079481156093621851532341839408492405756845321099054691996217670353408118121304325857923956498830635719436195100048406752199007271297632406375018186249994786958381880576448106379189054745908341327416335338516407861837410061768608249071076171716140060049879724472317021241053651655915584990412155534624919963796601492603862929829346604963250459175280964523145036023517485208593286413816716035522960546804348302045518996128257086446675853864740618095094995424309292179096496105999864437698047048310673303293773477885790614327449357302860777745439317141611969478917098783079384900838527271886326360738302844130234553877743501087509352490826033390399041180614858370545317703212711830901016023177210778614725642958879077282019371367030148542202740724669245692584556031807474883799159699655743297242876966937188187536183500924634248497602631372120591501895415693294965177674917009920009268139294661291505609875601001347862771132309401821828590654602631744103112086076505797700020173441467783022877033287151578960353350144030865982403278647165439872637299545804560068013235318901101625711891163614215195467847715739992111544683308536119965610950252668547237549353408581101229062660798828825747430927324031136039955313407970607395584931805464455247642496083667805967972425401974726323186650755103878572175585583637469707060545307789732197977167651130810073088852934215225397608297402278837275845710172743677537463262027842221388221488394852437892382427937412360829974164515458943929358883987476457835182746437946190593160724375926884411644887968139051187504304101232558821189954865635216486507537610773811315382210892963100525792465099280598023157361989361630284775781138927249106178395783135026408868829254210889244411983326415670712951975191811717227319480973875556463378289311740849471063531614418108829520917219383626367491141533271589770002191490591019734657815319150598167693912195602170407991675820976369052671188680894397015311795892462386832792740474556209168348277668306440364255750119002392836324550000604372319745397714439373435716681631717803720803782035487002743103259320559649314955734527165867330355584565661902300870032919564509397800411273652117132430478724833567851511947515190755895700420443098011413042706305273251803245848535803761787747090473632678541442374404275104410874478202061572817102503409618192351869507213954730001052643199314312185192004105261069014514085757762606058735555876898477031867178043095567283726705803784714039628518628024901320168540948381957390787698030651139759091761696488872830387823340265477504523089558505363091447452333022908742137785793786026973357090366781638199815236183999499840811918009033402444703469713862984174997992166799453102866015510935836754853391245720823832946765049732276454185653891139037796688974659252289191955754364231232564649100809002543734151765536521177027646895275044128462522960785161871645030635948267160226562414263566911109085942025239350442501589577638440111953515100890992144984741510011145151037529424195656541978325750093274364316685750283912126467463016037500013451399306329446453702529388429298599496727008902667475628808397083861942426368975945100938893208635872294454781324343029781260151315159032891137480096281863605298820088211854329640143946301874144813615906826552627774220751999179819124703222331815267373357234403233252526542718266108551644225476553678735189320360327805578055624657637661336636378001995894890126938176604422840863410964650841117732521607913117894496050762253982737573375870709825921495253342973571694658699530854044184469696462069477435713726370942577604561696413903922706441282838019602938454348550504028352673673330929192586640887760410835030805918327753942783961105616712775155048212058028071560003497655568511386393309008423732742404776490259125775685991825745637606152050458052975905194000342659399001087336032251332704326777548770948452745006416133435176112581152152270470354069555139552411545785919118954769570333340671056036424372948591480282323703613385122704929851759253767429694783864970279549598048130080199418648649600985688244737179097531413529155113713761201095933294191497786479106317838750529634805786600238756976898252789987609547303402605766625620934685467675450287456915171048838583498778226917351235602382740646860649712531376492219382589128725422400770816539219808388943381366879502293453711677242992400631444400053153137795895683796167546254197264518148221372910602310941907789943510725805041889194244933117113721710164913568834024754620576673931170722932007729023410799674269324046526450049286293999142749755416400864963937997734509969869532669452394490289529456241989718632764081298380603983866422623142353486211780991097248707708399478014546707018470237066242347603517643633793284526139665961739908834205206395351329556386436928959188266241982411885057305903695711431072009270864585655484708347563635929991758721874966640498184729307604389874569243188498053693416127258786055476295778766613747207955110112584613161793544811105435419528357323632531103712584104797564564106889074420955196338782550064886656383635158469934273392806679840325473310386120502184132727004050800528581219859791141212223852064236468075400209573069933355123399625431543695313556488758814798764414197206440293108149472800757572576588706209484872891955751736951700061381203594575239732283404351632402588745844710575678445484415822051668330578109310981830444147875052652756252858113473962219941509943707226089793469790389469142235623928170739305629935558037762540431725095091719645529085182688281125522104150187425246801927978635846982169546979631422175397528837643946792500230563190923372901847383248157556228090898432182652709560965344388213524461088046006897693012212682078376626054669062013589621368570220005087420891060894707222549362044414000594739026016807854749936457904719130929972663441355700829673487702065517020911707121365404916779368925565205829640482570238356892246822466945001685252561677639153744523254390147273929217869961785414469329597245428151906346813664961643023124711265246415903176622464335660117471170799732675153009247150665490696977643968888744176456520689126237521178520889894575873942903541085652868128116676843031011374339897622030418778144563705718532007524039603268205918955451280151470283077658055857961600810740338128793865639530760267233342903179896116370872447583066795200253467592763092840809049009857386176937944199553360937023004234578262493380476451924649484967493459474791890963032602049887690516828864968188821530920555678613456510258045200725528888296318859450941467141951300164690284754963059096225768162073240511401705627205575298869558456654396408037846263237200120746036164904767473098504219714862972020465230775556743465553891698594463084702934208230584605765676691507267985857288220012575573507582099076343786618569430885311107230331545064353260164023312902272004558851267688363172370086655434846215577546103588432112621998390063426261172162277422557939237897697558702474104045978317067392226015449009366296833863339177497492299008201730805371276554685047404629429468529543263022709488223299698270203845630532103170652159567218361949978800941814784523812702404354193643071158498184030075052402662787905932738591548938814516087788227326738716002840828983481587541303271183911675612960425827811144716924122372014298340733754243636345132482711296180415757422866365164928688914909528237455319216823897405917177316025548270844004856241840088142138504104345018716487714043944252740570434287480054129905757812386984861146553411311202600447770922147068215647885850176324162409628262280506535251391327771937216410175153644579104027939477254630381451728267306177474454581285189250589883804961738457064924768388354227694854166755115714610309494851820894499961333662005435583057884270349850076808221619069748835337909013324616448574413858462843899932963545165055301943421050645590991893501083676685401846365583949662006257646451189623102198100759080942949765864685802478336190121013345233230796260892073309241982391455303463450333664498780306163285584040095002410821002262223395903601919275128363477113054614419750091202652564562162040053142341365621665476890501123222474565815467188768162186143400055313280391100079950705264506816209781276015228378841034503117296727643372694890407626317646775402402296888867782122731471082855852958702432936203221191859440781389467207617846670330688829240618842181349311752769996115890610124710875511464351629025428041669853679515926909009699321722552897028318649553613473923488367782241147182254986731315829533593797889287673845016821484715073121422586619049991965167624456960132099218601706044891762332122435789409770674127448323686600578300045993350039182544050384887924151218964522675427098100508100243515441651451426608972533304353983215544961739230644060841663165281371339487152485531570350722897077796397234128314943649548206403952575644793464389205025363707382553077819208009230746846634408631796785419527396614732326059620885054074166283785069143056030605037779269247914826750985352458426200200971420346761120774925115534645446570813048402045182194106865527859742795231909784725164784084264500412540556102275749968390169263947947988747232136606399383606494695044574455826403891126001541649739347159856253276576165530983034362280548627347568221745731721462998917571643317841956199031643857315822835122629420762928850367861347715979203960723035883385588699755072317230321035222868470025197765439416204264836723386022227201314509237235622332605284198562158809399816062686865599806659608227531775943314189397440109015599975260988088089272315438681292126438072056161561675143418831045480719255590521965906277118219576406606405386187849423071415534972143517928952998427560608019150268725402972190407696908310551827290374120060641537548671943562952481409811433640202883986459658226348869569785479255826581112512790640753355858307519632942562870769993100257789311041609311662160075641442073856472951177960096717313177406646986536365345227079931595137253508544629459546809290163496980093731765759965510121241574483684903044334799222326234458026552702991049108734840026865993153390198620518615290238581234545673332199178674586493635187084316456625987928474791410758227759097770710735423474776267866228711813311864975488091683951728453739491730035089997107486250770335470929739763960933897942207999880136731606000139401308965261288454065170520934480368598036913094775592073785950137399958130005604826444136915929866948895594166158375505831505156100358837377682250819263427719555893444060217119444744816017337151226305334385844776402906210123824279151468542246787054295498598446379741003824625334614686532848954617707537883284366010659968638271847264898421570899007131648796733748718339153659704592990513993217742275602493415022605059245757793422279455240327805959581914039834282587812849164028450578177237005572409187463906509757062283488053618272569893115262126152062407741069621215273998367027907284555360456660203724014866208757908616348829009199231422057127075315171684113109775081805548666711453025731777964046132299627394112317810178089858252189301183158924659476700269364325923426110109327984251313780272725350579972014075066725849104020195003630447601210275566052306561656529407648081875570949318628981487077688815521720171706762890754287276370414042676599084328169371636036385053573456284419427981551629261109374761005998676011462562096521780941301386057926640480523933784743537591011649370267434917528947540761779099828613983970180123055043645818642984421517870239365532120119323173559563865967877355992977022578842904128999097747751937556023705094032050230838078619329403620925894466373486152781455884914956893956554524427234385775569790203776922294243957926751088702959035916346401139269706680702690812430335302186028935976616727842038238355172270082914517385454438871437435566297933199503225772225313336259140268183600295685045453852655469299293006575056125989860627586710861941184501253407326436760658796062005231612398107894458485921272770837274707528002623379929397772957237716690150153180774218051884294929483786079337978233719334219587409210771166032645029332894497402744858823576352305619444794667457666591247212732697195963537335673616228450237009022947232874283471159419805702019037052439663459257347236991478317966974994909418505811515774977063504759878656454540255564976984078857770325444706043120083388907841921166250316327924031297048529170998539604784299072161066318015974434376878804750772743200447506312146552329902129707683027298562361365849638374499864670554149202694374725042594693694647927154655891109981679900494566226416949546407689328960887225278228817972482824475550597481904050020870982528465449691218204872157089624229698850748012466883527003333227467810467826215607705905711682704101695673190558659213547298947962117169277222920498193387515851120457515957288202770424719420808994075301821800592298462653406222460809924451324895531998750300764344238423949655501004938657217468085322807942183129169847104861411292861540697812430621512003956781638201078920352641917382330134549548379925328805425881155460478793667197137189753157481165145035026042812627037131679004429176133127472650926232510994376064270956235055069008179137951235137418697010508937323101735972349137148239865388532324328269372302386259589644296196998578075384696587752006927771146336065122063001267562950277204837845272431042364757305285249044341028289803044508562718956648335857792878590835822918955829470173892442724609209680076201111248417717108329104018556574215524300640475004229051708909585560590270521847370420987324602154407508294513055376997547250437474556135152874014363975843263194403207773842939853557658099167762550213286165109777416077442750797796015724840657738999264228242843962090425799200404560797946024897501439879550544433278137309192362187422857111025959453836048812298177691850935336624105767523774497817499698660487281300245220188193953149508505576810019690628872611784356735443098093663369665094520828921395819061052858257144317712937527453597492003844334095687957539685530786321836067793571822034664235739049757350074293741665517743573076972440256584344357704842098446217578340792988677654932644483411952998431502360370945320457417021702795342318641498415281887065359648494618174088574697588989054746345142877343974434008650354562114383931994646982413029580032748557118605224128852721655390159817725265446755190262913439192343663870525408649857906089078052557216626043563610801185462285184578760372892328259182144299244178549011055647858556086381857098976812091634637821736035677745160769681217086256877556692487559016950116158148644463824899796701293906543852848877876924695443243296387911401249355841671043492119065384056344024035743131223407553344556770843181549544542652173763944153363487575243765633639145819567038447541125098252128295665677440152510807650158140697968575334961303387388639246266295776081466134568124893930284203813591497832686773687057810982263911733396544650701006417237197012324639920873068635187511880433264439361643827512319529291512764989721135281104349895642799593992240724143848210832298969976265374567615158193475497166085362069879575537760368399677674364435508118489569337256131522085023093991392724181215069961435314462978290270989155892635778816648967926817557274224245751513179437109346938248369239391161535217115591125698611094462711218506624094282767850517793439687050809714313036875500633130869331418706060679098124182321088676810842402409565194252231848564340934255133953032147432849425020508990272055725804623810556448591781297454507044048742861036403130618903472122193160316188658318158656098464043164390765170453884173651675029230271613395109504281774447147503755238835252355258636363375224579706697672870776386128008840130308767708136140626821646660869195793166864061563818918433467350330171843307170934279595627738595787057427853320116437338418299269205070209269774228662289861908144415442643711269000222392248384935941502285290322746820617453654848493338562602877898239627756582372287929326468977180333532293814911819962430616435808050466435789179668897656984096336666451864060411210814367656541679160342086637099029114185011751433344854426275671843279509895796969802799132577479690791155439152589360200623059678991637500023608542930508864129553264663577299484471387132819473765900922386857965455100276275170947723744244572384969035489997695905830158115988576632729529108728985262510319358442409818684217076425665031529340053237193426350073564337554960204333822359768547000502869128781954469860596703201186582507653509380538316477106285806729394683112516074216131736116241162576561362113472280703125122406806884764258698299968739405083988316897096459501176527175326884214041028029016905006968105263175258235906064022353443315003624377840686024686311925466982501336169666692144136854385275299534679573654393244417481229876303007528213854434057698815534468900651926608317706677375805386779777045895491192847503949854330505844849242215785243642019751529503641731146874732402367993469825869245218896364278113355424232547017883585669332978403473272006202160018911973119766580653924975794943499838228061913027157568714843223958683249878982231843284743048776344699065219919201848817765557356507746833034970900221468919067013768321466927532622411122464434447471767820805760370581268830803162959506887541172255936707147051060648664173266038944695509267373783101980142955130615238169960372160844496160624219033868972854989691228271491492468098909219394604404115783828331270565552038355595073567814929932754876442373919437784540728374029394102344067945067173467833419774934125686453380143675658974845585579632609312296675508172244478705150675378924903923144826520601779630610747353993174635073655366281830939861002204072593245244459239760118148912475864277912068262303904133086348601084449840418511722715612568501325451413187613236509864810598071170923628284938686809015676593608976499379952403204318376648227834831176590392804625806972311770384802572860349108023808381985492023208084807121081256692905601912587836534064476985535612475726904388420685676802527974616113580409150395110967374496743472418911145341641635530077756374253116909159286163687432666717146465568743439439640749371490811950787320545717509170169080458245152439947293964787541643744264311299623562814989622921699742233827219995506439034676568188484220567699031916648919074904215263483075869188621093807084682484240302440889862605286662520557823381633294992466831131925366900408823937520276068836845880171573351540512529376652193219835655744413099852908401560348119320679398629918296200097296735761527807343830235008616086866782195094563343621813683651505886282874990885308631196335248137615209827320875872495710339767460035127059626791006484657331054574711177622517525248810802428128508004565467299941953286074623549923076228162243464410888946461116975870065626636198304682135386476833505311639296883262359509669996521222566196184502497981963509481226765777767206009081906803981665015813536653968606043608141805987516424418288424599214481054347614340205341623309727757836645327447733476744874450094330621241556624822667893472591332085041541814249347614408509865964942963958142547354784258702386226787758468651435663706272105632431451401619137743908498182249839106584587048121779907641926851807398943137335271221420143790881797566637772603717039949948532122688188393706955903486492876568193093825804013122439911265175192465109547987399886174311628458032535705140333600696195754620776825158018802574991939859414261560005394724516655556100362080857455988057024775041512293360338554615845155180699731677089910478558693941167647142484410361694837127649560787996877415466847079364554070222652165536180644472150500207860231368590030905631733640471706895658500071006737512020883390190480952161878744292023082872771881757188571940983127208631922904136733464105051679995167323453437362989211363330057392456331256059347466781814196363713482799401402903251394446666031288410621725692105351645854914477301956661807807992230611257767193652399632345519138450944025944336704260207821609726465488989490785504085814678381085080098871344091717459846648433262462144952399514538904164274768579759454081575767366733440752006415236939713064224978738545291168736000484413888756057143385536999966398651930279402539802874112185513543999175813409416307564549479592786424875624721371449712809009222743145463693021772587712610572623852580426642855426960862444443016881687434906183300832047141437798749945465415939283998294591008533399278107860471535023576379739163682085639435338306681598864616987306850929559283928546007052114930087456264853067471330034627305973568154197313143104991810697396677180975237562836264810654929917491351520406607720662454757871865322218316037409921095493105327577061606506112725138055190669159154398612070569068677858564038672597510539093123620268419070975208152721917898049028168584883566029878901637993361327104763326142011364437665407654816228284906590064242223488427019013982855408142421466372555845968821988135258188557858113336941562897340679574674439901149358691921563643669840874316029593798075082121132998132579370683661981767687607666219556717213711845886941905543805221530155816366115286198092398190070236410363757727032289426127004168017840863419392780024032070971612773830926130868880598969286987314835499085413160352638758725727106738921657181299754704417902748764773228201334138125316294129681151884870758404202110996035063569245102058463391040036394010346017781906468987315543230679991270042088374121005456424876935666993106850769262292850403336089157099331305601748850347428871192902726612999671906692083093312909108181158171205470218577496971613981708634554875019090405336733977152900453582704049539230488779876003783522111409074443421440249217572558567329647396986878076210732805550004304231839820500499980295003680824753083152455753848055796362676208404897654316415908460160976845866612815097047046743306054033278856122472227376246400197132105474801529987453085640181793640293232034055047176314421775373586307120862215390331486787956550517407800628002072587985584347767593084484988580099054857061804070811669098406933715469042705789742042207046840640664706246418470370813447204424537181166046873707394045509855062914749176734358694380929748804363070620335470348106664284974593481361391947966970052048560455327579974214556183459623591397600519797799020815402415684913137668350608541302252443300303313403643888000562064741203636661726555603648446520037500703045967041044826093007459994856016478392364027179356235712878223002841327600863054322303407144141945416246149985249711404606618836763403994463927438152776675143218205809738731322533859072366153529149225787330086928183900115519992571598452663375137264140002324121599330599741912416334706971734587689935791159519513053471739770904653027445040932737791903724982261678762491679269523474975849143696028177614105932541986775493497600717162538890067936731768811887265109928469748634250731251905590378091294165766464229489840981289725451997772423004525794617609956231561585892721289893105765954852536493726433943849725419658201574742180011308947613513126154395494955730264314264584694690518888846203527499369921467940469146271729482898410314360501937490189259373184112546577022505229085833120689667728014044945696879144604928393276688360315038042737298758028779905105527288286068697392224007267635684134946487279442469363092581731772336683631111843280824579970376189685282144679507795790861051836552256645738729115940878576783189653742966702235354340755085756683031329093591310218860950040818791412795681422867654855262032471300884339199870353352298740866040592504500066530709529449213549588874670582047557679181922766181662734619510065475177256284851922015376392317955479786219277609403484525279802812734936860271140414442693423012777717113228651495148842607304763766550908590235255244139687349991305451964479422478308874165669803768723324320349882174185022173273367841454135796185925784170239363583058892489309260516424703899939898810097807317917269105248236993851993373995937576441668233602707787925380858398779291233240798171611500146169088364388548252629731029655286420544569197394579879040690328525548673953011500426118578901808143156186009806717285964721198619926223239730143503113011751246733822527367357090356664827644680642380595620029432911093634754135050746508012249510207466181498674707021792954261547236240631138801599874984127029897194281913094642277507549731257312894394471233133922763729958454669622778829460792038991912327910848053599563570916676355658464475908684894167731984812575875228743588998563410108400685169587639848599180729656578821411096268071860349271232430883372351139673552194630271514922778386382539811598688098832823009050292559115292759799435735809520748116320780993424613842046532100830238248960083628435539817182042562797516779874531134131990042712305645079581648603855623809635878771237446421481766909886018528519212915878526118501953312607260535396655215701070030693181095727655096365276799418318945126406223540762925748105855918245071081327563323734043947473833316312514574243418610946296308695433034322152512327290049737736630500045159160339131680060765425363813130840901613887408132812507589899667449034473091338187188820304613092893183056637974710105470341631151744168786908469098200413441766221729365552592932576904155883781637866544237340894131049105733807994369646045776374760726999220800428309092154171410763254582958145984673541998112066887395889255981372376486116632212443285999789565186715772224835142852720623431085472092038073669045737742516163335753848594657396337489681628767081303845945664886932863887466090580718244901248023896452994565215378646320450424589612571287267975118466872007431618744004799688872720935152867957882206516149005396346829342441131288957849264184153666144740789133976735983037002483132734687132678663961062684364992197698692839940107679744968481408759384703001885290743301410898224898967342526689978780954149794846472298129116224732282085795796732039442302774510503589311152152933981375188366706518312973000492433537425153717498648899515405962901594713910523077234624597158106536243498898853998909783892141841036494235676064247176923980103503740824464713254737270731451522583531784603928927412838801847025287909143779078934045706313360749220136664489058342470082350789166949967397386049913768093759987672544998710251422592823673923318924347337592485313249149537343379356042529622247855740325269772306723778065983962842261292975602825869787247993517440500714341432312540156670596029347170949413352829436222131821601668203572797747907014705410814747449524713414302570645278146141564784360724931233950564898912390086836416732182032655319952893569685722234924053404610183012174037423081662855760281291717536531578042396871001631762462133595235678578431820464312705772134044502981120800268213210475651316218756144936605958850403238763110322654041785527102599482897334250372529111312854896651916402790000910062081417600992467452298370438450766221151887005818195394391978479017419387719986968728751369066960690414265843842443183200372710713700773410307017232256064286714476410455405420572396909708681405038468985368858416835307686422532358642637336297138059322542049042523731329081091155480661607650782849888115079974524219853894456701597559471060215223302017923039084326970092239044090414537881251334745564711404683776463588161619164845083906227474892342690137869737337127499247146590468590576116740965199237798384477270399327084402977915441694498943718732844322971808229376303861511962670654053113801777950880002991903471418505572691665535003642442351437184427494453879450010355043723193648076061511692502941490826216730885295114602711424549987229635073804629567643566662190693273889105029978988007113554822275430603155859902978635035135605946337579023275340500947460849168043711386205431821357757340484257215859308956662958066961047271727965064011549438527432813440234736858637435161876214325213416765234185823848651885554243885792048473407098692633779906630848968419328898668495851783993437730261736167131664220938014553715378559390780267047263660859725528807441671358341753994360035169300453108689886113652210871636964457184419887793269056447282997744199985223718029558804836705829732211552988885573381955651856539387286352256935432906101377969670556988564058768687500068554933338372414833946083102993131942634207829685866926460426251561818402030365595939752646075190347229744053646626742238392863002585520466750291144973835824388135120074794564968935643886652494063665712537112121064054547449632552020589306145752634191685924415580373456505566387733431181475661587596094452637476240249998633547458835685805611155494100002573748319352295626912957868271354106945917323854768996312020941277414665629618398274952091256468959460184769174389052954423575612174436875199075083820898982437156883079839946293144890958497334251919468687056342242595926909412073242319484251798483866178642068652611646239405071406403191660080337504582778352338022377199890661901604237673982304872899582386050267870381745992086723592521296817547543531774348630551371220918363878525294239888000470879169339451222919572038921049920738461537112695756403962912829264585897106047660079096986688699578452446926530727666019753595679596777272323574605070877848458509912748493359163710994426403653904583509950171162276757311420137348467856694995584517546120207858294724636293267787072277411765477542481433757513866833446158427233844769713287030732743910611118420475909041564222223914615017723651942101526591226949337561835942307243875101948673400334559573967120346995982129677592269564321427411509639448165881721586112337029699814972048983134003337421908386037123721079994424970539574645560592136583014139024922953877902857415684757651168659990972895327815034043142621409288792358633692615929525842617401013323652318155804548163957656410385057555634495551521951087003455084372770307288977110329983839537733150434963758643467659374912370136781405537263418708288359415959910923983366744864060891937702864998203204456156302632664884392420559466927836667604886458862685743877925951563498783719342772457124494176513688187265784291567755796161389609817736332869414248706283834277844515228361020787445845306468217419467983547529770093727675584221935246797712874925460356953760743145864778824112102311560331557542152033520270717385557420185193758849102026420120255979295704856761976915301547662392792759997624044442415837373448721162261197279568981060558193160483273332148973357999972958172757423359355458950307336251468077939199418713713387688788419617950503404725408531522899407195932537835998247473587863852225315566116624382895567438074096166364532254565898571147655843716053908968375458579645672591841150436246541710174964013657424362032954410015417503564643239224207468981027249900863984300027038312157401205902932324668925788128991172643590574735653076119325986750605430853011985950740037670675208182617437883475870222690429939499465417483892776674060073616816664612270564205342201353142599629013569810171816356655524975898663658540587733422731115427034492339078457181340741539044423617697102857782504793988729031487641168245960737733560926641298396182351288214765505026127864267396507313658340391105624174874260645105379006399613969233641770030521967059049453207371366619121966426171082441828392732979726169604818835312730273404881804083474784248942573565246198030857076487862529716685787119392947429626167088914581960642820891328990304309833571960202549312407388371048910846943767754076331460609998594216027054138776610215498444044731920489683397353838333085439010417886202917101049332305505041145456356197854755157524195650036821532180690196922934446288374216495429728661407997847604079166423260829829306055628808148738395294918692554863419993878977221015639156994226004680015520625799527290735653200457341881984910061232226224758657426582422140879197639424683323557168928412115873715904920004045021093130469919309793573874130743436797037784230580455979712567633350760752841395399278575874389985880708467291424519146188103548942005300671724315577062627496320568635943133766406990733467436967501405007997530172244872179660066983707848525170150469048676790642758613450399048090393388223055063450322568952327322822496199145098325767022122968147669103434856320077230559270964160350379356214139654236828747475670722126908552645040217029877258068980135202339885568348574191011053669493010243480754902047219949615828121543237299859236237922257105017182735814209206997280079431776573530000454880793477627283405264364534716668919827434234511404934410516932997444858728152288650896476422672496056809064065997651942968754043766961177273558082280692086279405197665232731908076752205542724195991385102871276059168881983035567349509537503920946476645943624515468962785995846048862832302074292773966841620412351654938288987075591956274789597275568823849894432897184660747141671436496307976679901586804897798716924209493890709383012087226870097413980905951747167502646514480446823859158321895174003544875347056282796892876219844432335642898229375928365084666787150337506539931537249295398322913017078899104644337391922891697010468561223052935348162091442040909160589936800806441861721132393754646809942688222942140654011747341703181452426176990039313844472460169919774662466222629481151752662925118399925991723424839361424436673855674889306514954223910534990520264239804971230646166443434006111234245865116737195706411637323319525618209679065010521051855814577700860875141465232777244468483151276672161442782808141194884498056937046835784396061186400193007222215643942765803511049357327485545070741635113223722872591154610978503485353429348671590659581142708334717145804898970330431289839563895531987386976753349078578057917908191996727109640788229563317816401114282585579126742843839332276878597014384859742569517922515936068035078667787678717444520375148141426506538513139950632274626488330683004765742838696381351846001209940314728890657720578026769481381540641784319193221315448887594683077887284069465033389007260504553969689416625611629385927699119679689339116158960783286357618719553576669855888928966698595155872969314382138610987443678748830869630380771670812916627969161618321404318121300490756850268602098978458955465870533786004666768965801549606223213916167426478554946639306584634077979892080249374054056015139227671279957133994856902560241331538767905081972236199662783729355132310581438714106516977304601667843507465012808803548516972196824510872267059337069435471836506719479708897011805325047265214490485102870871889312550717185241512017744775462824125893934822327144768709290597879266900378348385856065127492738727962835428549911738403726789914250170576267913310668214495800642552335411030766571218676029996651198200179655709213853085153120124659229545941933814985592895447794723189008792639348921680708906679008461333550971172922117623593639698487537804434625087311277919795021778995446978465727948434357652041047518320099128729739768790593171499620653022113902570304077459706717294419380679537910495999654819745365206112228806943668421701141902918844170935033861297598179343197381261369183036837481812368771967507088237274535276600127619717685261611575819007067627505580206526367424448888822832536175543309300230029193577326529863447825223160877079324898341319040416937151047830394037655983851619979536989950504772118693147902804111398688020408008794327691612014316992828928441053912548092265259367958126753241043051053450406664817045782816438635611008625538237514243959209942059087034141933072214193761533655710211732718169991461078532515799402111322849169074334912530213044893174060446394727105753854718484722489224890972771527426125072029362316595844825258299459399653148112980259905154035763697073519307197147950984817559747212258139900572773900439582835388163497745108943349204740830801472135111254152254962990112429377910010727229660592436638166496151082178275890343467940564461812812178195661611414502634101403196522864768494306765194681106678010527543458184500527666653471738077012249564995343354336726686688198488474765506843219374665800294882778448500252752842486215733635885798584489919965730287844221030574618033406373695278757817874485637618284064523701234102009107148569253425506934362798666049633127252765123193780594835382713093629722354597916499772719479930787594006398115090254061174502226162991252470607686512313881326757579307099277850150242806147075673680509209272912974759936341364027401315365091944013397686000210739964226083020156660647188800604529957757930134833719509399661140728602118542530483415165614391730404811209533841037825409977858284556866119726602937569347063952173423842624157197644759630746807067354939904986766706598345706556724682559354199062845238173881857003339416706745936483121283023545499665026269898663566039229051061693730585181338970160615036597626705213416311890712236692316171733627957911130905781589435804576215875273451131001277124275778955965160956464211553409429246808710436657462122077184374295283938657383679970619780573281598926701465595143508958752415315756317382001686744028088951867042485019905092044902181431870291096465870767338173671305738784875280654749366705829109255057202467833323706076798925600669497007217357501429082612059910766131815767465018665431975975305699980011714565206837594151043202721126496248548801991691543984346188508952187799974048390024978819385562225316377681266192821924998093313203211370247815056347783281278708078369765428143989831200034749807734502585975644922774023172021443391678755812282066345850049418003221866616711331215954390808557805413544238788539743611956392365186159858513141425192670109955142801892581599848070414900145941536053752665777404662446473139507390680862559611392064887870719989616090292862328681761366401071534966880112219380441350810284537933216428616770035373469018114056410421106787091514284874927111327071048295440231588116707535061950142167937788216072189930324520388944065526640552668298185048642336472138163992741994648634857304641129686114626340396021042544499638745187796399286645107207208930216486116036542308298963195969382101363438046817618003936112892348041010744491498154106170009071438705267610939615767980279664451876849208910498541106151648858072398037011201125351274254795319382889789450924424619883528642124275216400930995045503440923764788675594089945905396649560004932873541833660031013668706737215800442943407856352381390341669565917088471200795639572313432070181524624748773639867882063436039933750409301424329927189231837993945794132748422580383014500786778556177336677339285739675051445233972035040455493343247910141158153873649471109974959848232371570910469737935248558062306700849371484159453974324422459185845453028505937147199355734120638377790614361155207194094432604741443112254447250402384827146477885106049230790038302890116298327492632800172987407050956844187060890024361931597928693590301105440554037300272376348937726909931615121496479920838560257295308906407409612323763404474620929030722460597638144757904473623744454336389936030102165705123870927947939745316474113780811127942160237560707121878905608820357495564380765912722474185199468020705115324050259741593278154640022675342425705710493467024662638367082506096460360429143020617692826666886977639762426919396830830618995422158614570153620598717054274830933846427988270931908737079406690932956146199921191999913308880604938104623442671951198575359070622175233727194748594315144564234281483566209914567494942866563122992820132868458294971944452908529168665329311100319703261303647141413254639293895283954381373076337025742931590273369261112702178060913836108847573823231904765919046981981982826430599641516040483762017473923820898744687226261582294920396471159485543755884865781933923255212387828406491038399155487469439073961834876907373774831407616744681364831764163449504453266919108371131004872750602101096967818328197241794165611199659380864957420013800763210021843162930940057743413412227064807930510838111276669131479835679505418936432007683878951117056320817426271278379882312703906511137185581996560514016875214516835477586203360798725358378070488100660829398196714233119772326164505614811662498181750231501106896917369447300340269742347424418131053921784526993785676188465214950811147859518159115682959544633770963717350717609386511421620475071126413633629633002092879796760249915213059479109403978106432541749808130416324146553008112900352291375105110502000049257124866980595862720163437022900932747584311941441050141116412081416641750565823514986021770850695532238403026921440811528599914076362129962270975042083558084931020271253423067474907404215484063700361323682026449249655745117460880840502328582691476823922077391422103566296502478377292427891766864333235886753721893262690293806858924720659799148416343374028398341006516037119366627880686779894018577256297302980995147928937500262529119297444612478521825967927805061640145409740613281314236548414755062134718705295064596539910622865764897165056395504810932052026607990423042017514177241481281618707073734140897134613948391663094350006577072998419151084409181709093567234759573734255942581550638457082770346622936665737055200606623706492684837292423513093200698245686339994989641323378899621390527521005138089469516665277134904722499871469357054478805884918488616066855563591750035711524848248593972990992716652488478673128757716383752128320068842554496931701883544619364137219901500612170312511856208610148358642473310254786448841018153960064360785402568750317470621532700174496841386494229027288316487123493349306976932241935293603048366444140561882629269890525140404615572445239554864727576260055665657955165291838104374647414287675370970657122679623714344630508722246276311567136607571392295373365858658224579297183070471760376824466967324451449478760090121436405683135006285214816992186088491571993228853519499893377262267007150432297923632520258482724401390745827146773665160855416610156549555556860584509339585113393248284266595307392259154237349366608315147206962117097154517019126377779568440749772646090527486019779941400673963923652827300852517405037631028386467037236973787981353640789917550071355090698291450322687535298925513215695392048079639113195127425130846508040389200100888866325333455614453670153290427872582299181152168862763101368788839578927593695873091058547851809016965428539587197083843814592123950750228231711336211226273911292395270438714872478700062512646402194357735500154264636711007396903431962893670387596867197684632528671455516628982572390240890597135776616485951205893939140876995344195780054441759740568916056930495050287777895418966639494724968744216394757152015487872388282824534613638494276579065822828377052127062337096848197034322262324234724792721278628495196911230401856302469146986722242222557046195202678774261022369203170640410615090459403259327479395052419317400331727681816221571701219056330406573493527756215626864012762166136742494638309927774129480802096897553951835045440054418330712414639340856156100175290296756080070853853304981707149642503663080719989976763773345787392505877856569661363780411176227089255502335882947705015568217958378025198826262235793442016263230719427060038299382952954512086120860452017962067724354159392144321893195806019251753772444293290260506382582303051154480796268415055045614689783915538737889610101551509663858434887624260922441235368706571375981878609213518654640619645458693440520585597523828311717592350898521092460265976581522473643256640600481966010200295690074479541876303226871758719467935115617835057455778060473773597185576638173914149471990155266434210617664264570546044169514012819534788371029682465299132354056706473589937711345245878980640083793985632286139598243650897805106438788278043034037572876521735690452138674061600118343706240579181466405313605689356990913098703406560353192166520531179806794048272360971070503513430847268024230845326510323715043866320836229896108711985416488929881296853466151966832175529038046234984949204365953525336057404785239255112418135772411106404867983558176872830183476585133348055544722927625225773775377570134008008623073930598874153597652130571693294056088748509048829629424089768372453594187207569345831838996936426246476683654162830757265345222667440407247153184976989613866058429707244673358413295497635188013270436145849623861551879460554588507480439457568446141091762028716579529674990550385489463583015955877377067720676668319515566792604033026391724751157417882078197323523131566030191767334650662314148399502562258609320513534015891790625153839037077724538512631815581601931746261539103274237925957707760314432987775783153799380691530854894967107995034182251375851645446587770175817798009312184546666025686590848911375500284132185784759389030034553642281728010993528059870492561096012202044577786694687405771815254464096330139035084664767577107698938804275303959539155191521884230462591785048478883124574313400134473495545056008171037328811506722985180155176200807376489317810644589428159713722183796091611447103845995985463729390523113682364120474970129484003326272832358478827974823983092596138678230339646022346188492262527960529862724169058005849397410976418973372529924064063828315391655103501116885042457796604728028778558211734841880443923446326301563308399000159404140879710281307042546644265844718824422963149785835895384594267478841974149665675646303636301809926162985978098051301091033117353403542400193786006157200361216025898626021928726326464783993944882955017879142860218329698181275145070338540237104379590502079713252272035045622517149408386921848972646481686852093401690023953774963186975441393919110984683133004689650394287581454010338363956186968271777659174104843470194393211875125734974496519913480474820506367559999841690581301518484949259025550685577992559317143238776858102435069889088776257987792183736338713727070989637197611378260075404983419535441548431373796526841582210235623178468166155950598992645887665464303986285030018792579202877977362499534495920197083540491613877291919579623928125857686098983357493494905287629977263325986663962027663411037908669214274596834276770723712188408195899773936048340396609431257386980977291761856175996133751235940403298907570905450892888728109288272125451988558976923271270053824110838501514155043672433189425166708082297036753182897026971434807877745135061953970489806264412778680691773407249740766613173914607203977224199454007784470387865075766486362296419334710380247559322315308567334742641147776011726867439944836332796367400305386667900324097073061189745014967695935139067186637889745753356375054929691018601203121857928484326089844226756183077769183692540641906358101174899219765502740875740972764300850656917453976828440194813639311705049355745715138218748404881112170824046936573012585770166260781094991124161080133111293172467184614084422279905554167627203456195912706497004175722568720456474083480808754258137729759782954718154685967463755220956077194512918154185805187537638368437802657382254994056480098499933486992957628779695025075243951542920524354875179053118007236926554600835088308789719806826988135472401547847003177931044808049869879030709206038254751450352590618174502237942370327416308547646128115622461941179069645925013571417483944998463069366803232171501478555889486415925355379031008402779694514341284537307589741986302672908971359414792140414880712903969402729485469560662262342626532204103856267899910548360682471300745765574233298592088967221838552516497474207231364039487830459135088377942008627006372966081807520322557048408230791436954386532500005513418128533288214062955915489123746283434302292377735613706515184527241030428414255577211399904548674651767478099920157532797410794087294245810113688412519651516738367714699902407842649134999095506841863091552963060547437993655145956340274910764879237010161810023310795637115624237369837651928821777157608560438146360415167364364585844122014342886778007450769033509417273182408052085127938819511871994247143544468068891145223672328011084802967242803129816048297084828065008066202762288001931747427859747212243704259001824551161240179882648149547402753959422663358546598872271263141566004428868340547366162841834772416208938139253288079653979553615244680765147518157409222066104296189638752288805167232613646567600700042978663572588840562249822693711429248568029482174346616338082502489721952555151457738368528414326537311464705051726334860368797426203695809100806676084883878814995363514606226070047667671152526202930875141394099465206020931350242327617769868876790148946079163858365207786667363983554241537230895629161077375668487630282781144767277320551090987307134303907190027282445324506794508744819935308412105282748120069245963985108885328685123956439708362729924246607228022838141920162965619783275860178120393966703403428028034449034886663346626545922559126263559943561651879612892783536494768076494950159884277520638791513861315516779701908647933352703457781337095732503495033740122394496517663901123776574110635110444820151729861721451313000110982347784262498845596580195373017680234857383732412825077548778139132613564878595702816106432204751315946749988258286467565817418298169645135574065523664321509226920186097898461428230030515858941958418055694148575715485013682798296385681804532259499399433615883225927173492009202547976978230611112365137945821897741869601444877420040734224295064193056966682789228210093051671036110369170593391637353952021697274014593777326263497509110694475646645768999031290779874185909432607713551654854965845843042791406627759460884116278719838624572014019787275155753850255462474156794883064568197918139745125053774223048107142969515185984092272966850247174729955086420666169050335319061478881261601610755085691839172466697531729607599974745192937372950578518317476712303847868310008140640813427190469428006171892550780382213554944397182068774911411400574748529260629598457662883291675532414626111736450424316402721724923920521269367463309274795752220790121731837884327182830198480593927231955309093862911131651538137308024974663666513376868709912582387076407122714737215142878382115848749470831184335687011085020945733620018476928195587208576346861033092894843028797810584683839518452551227296615828195652558937491576422824402138744941843914647571442341377668364784015374218388799881615547606348835389603734381008806765357634368816471760384917788550234387474131127423244864506775163025596149790293942849223593671774381673341449248638143853520724860165664410975252411438823441592574243451868847780015188105694306016616566817988735325813959854756629969757008079733023121033919482413126009968344875153390634348018240678230243263819302445455473528598364065679216063229420026897246769274537668548598520245329986758363109276961764944978173000092931463765317258417464400520074570432447496720468483261507432166253085420687454199409257113671391422542982822575102402798537342579360921620384119128621221778690130807902243716045025938503940104591938035509667151402129322351706642611624498794172773267641968017684482780186314417141721930357313985849918936997331367884540405589744064137360075736438002133595306161489337957493534391982283154257467605153616124551498023558181846683313236602108001216566863543642868895293314852304498714407937866988542622122336103166752954818604238571927393665514923180239308738882666493876775235425533985945466151586364451936180240789372590724991731967084996216776816135578980475362780673055689477901039513817142912779216044105413604343203184554423512833492663790391299172302349967137864815683409149720250642131344622225347646333094932212604724346540499108098427629694683159257252531582037859569258638218468431654658176525079009207750162323534477044638246723827132144521526562947280568678777313775162590529104676182384189701289510859423884096413925412264447248877998887013487589694026757042854617183141542396780586337480338224013387916177637524485616124485907653546706842462695421073491730196967676849404281215388548497936214395783269501804090310489762009628477173806201587564521059779460176973124231810509341579885203681294362681957247059213115065140119195127884697774172924777771856108230930119070370478941720619346076752162592592271598704489876711190129311137957073074152288403823810254031938032812664177955928484669056237037091159698730065370432946944026695401525530161728493619838713131068884301268845992740939555757047151146678570131658370609939304399801182007590446380281202212167703321870551120962452534104714531232388017539710026404370058092648766072505139799880805638614155654393082562994584782484942184948418401086143892597483948888402639947200275491275555396466459049021635219758211338599252966193573279265331464697172966925041401277994607072361847824963906714635410235410028067802621710191420700699648889549769835632311432362355264075111324493268466799490764833813993601750912876921817309305287884056927605553013613762590141513517971563907438586817301866257786964547783083400581915423786218233996672307379720518478586286872375003812199872042203828307082892581526871067007420921083348530450501583476964978796667074195062499120520893911492673216882669515640390202871268591387569022563749232505477714750045738308289491652833093079701685116188169044635945579675243294812468454339656505660032648623113724682114171180953386943923241276812998928003039745048337254281905869098651347590427502131109228243004996031803609707307834883508509211240932085869298862111731852282492391435490396714666510492113205652804736570177502606145857599855531791582441379312600622700261843616831530310176545105745016886986110115166887794186174700791835079094528988955781073012435403612153631798694852484194633788404889219512253032798319904832035195743706335599540289876919754852622569503557069906940588293217557430163232882386306863115429662767145178464562235668274087455142864699776768879757332188287686265914838328529067654168300473760319909668004208869479516327207757319807570432847906655366763255154191875190971644530065994591410974878620649300191263172993890135538464946311224010599555678985649258558697523212013371882307323159099946599267120513208816624734878293467973701257774693644325156672738579309512237617134987567015746906555349565893340366597067951024635961397096032221099805947046483101878576284226746221345882169861942540728915806569883642376978066070668469053693580651814084971285458176900710900446685583864225055770136039293704257654050953000304421097315744742355386392574399697435189966620215590009305926917369759242581890138289618311033923133235209254081570954296482713967656123461680437251451495465381145014237104071391772546888047795518978439745006506750543956383490850453411457620261408330418723796982447309543147876165412913878428459257592856945545561227681029328609265331840797202471740833301160410837169278747398578726772103584783688632782581216074743289731105598438346698753964862225364003877843627842021123651698123944495881993407183251638487729320888123667089225839826367841535021064678742111150924623928235968168691375133216315890782264128274310216932968684298161587555035320216800021132929315411649893110074853596343260095241354293019613429235381910078122635055192132953528262153827907821633279179692600605998109895149212601774062901329853927926505856278434211878854240698466184044337516144332141624121584952123091214916122412871176590786982672695890163301790158900586819246465274018732265863576204421870650932683445784994065722982252342160701391559035666365474732139398535979079024303429641890688496322860287277944415057431575846043283732433736361594699511581207200939715431086774144159057081037966539811851291133002539258120247986181752321131361718250200368460075658145551170692592745727386874797889163564983681786439332878644295622181183834087883933836714571821294602369401458086385335773597553879822811945578629697438481894815105886713932571277255811081298966651894370042864040027874389173860779847594917226145380503472442573765036731413744530879931899532284365253427736611328887119688317280882376447152808493999585830153610607635095489359445968992204145670532681824841664526648974311211674402622157401579034895831256084940099134545954028499512818291589825009793448275597384032392569026354678106569322194078677079356558443094931235468111458954087559097286898258737204298369058186299530262504099510482817160682313254114798170665071963366406009977273204656079814772194152214259853135683571345322856002048140302498764068815175135948472559941374720303900609697694835271038796971536428210572809046823449453341228176933531367010386892488232062676571799413054412165816234071838352065420711253628346117046432329555788775279147236980831450162795609492375892823038922977221603196211525551266032181040507996631711424464990529432462807129052369693724026742754699857901171150280658240694195867797065235822321227851170047091090994129982385408319853628904766931714747465890515171521035138430193938675470406686895309516923439457847223349075215346350238674028883156821344537349600451760615681386745020282629302551655872482809776825339675281431128740061922261891249286986138345646434285362951268857464306648825883219662322563982530375684175540454335360816820546695197512353981239853439287227404854114478157060251737523360176167439582550098763112236181600379936716828766631885000001765608195288000806925907153060919237443010647394998249969370920556672883794995585323158503597203845911082257504181904785995344482475013620718435864036376409333579178463159233832098830223293033203596726325368844271486090620549659780145098445751373014767085057921871679639854875542871425901632168534336968879710279934757671589559882119633724276206317574520269791832802021308319121311079045444737281284937085697089755122964148919070538495658513789671259460425520873325078084314348857966648134414668299921571233613405386389730316679496662006099430800582056076210965920576892341500193041629405043339537095263050351095518774479434694358021569941214760012426913973660097460529587183133279932770185641312603687135742319988454690772841492707879530781456014142411978347773046862252566004787123441725794390689162146849615105261994257269377787221686342953641605068172054767141938677328015805384620550255291351658227898997155917237808635282187559760954118840841663102477562960551639153036562849029348541058108954505746898406145483993733024696455339627362948095018073744153255484439002174447570065766900356564372171127389565628320566582830962692222231658447996023266849706507832597280977028463438875523822404528684956941250484159296795590422887578782472815748021245395413091386680509044378682725672337652166192335379784461153149969671472125026310475935754698212324364157744231111071913140391235018134996814356922219073827954981908997518534127403938413435905011062270351634523791622804487129698063696222071039950037270037175572026181334432296685126531186490255783060493843036634586613268500243908824655718830798272378093694739882789639276270694552202129763992044750363544979150393784668166374045638278569353573610284492895336507832356770098165233331857910873136916970195249904119734023355159335628207100465521667569019871945520423276063137266742039242442401062097579416145279429449361981834631385312584566873454034527760803048137956919853460707162780910299790173164339635929082522912514128615373453447896051524826728758379237470030354862541679579977400655006328209891118752038768035244935741950590530307859655614719612303238356366989340488723502652449788641495291982217475274105832059039589632991694104034527600914434757866619302541945391720286980597348586738867367811940595434764052884120374631984036673715448834955657134174820106330083792885125984873327100078267189344330244450103903363578264166555545882456316057498545353766999016723381404883699577182073366811446789520773698628068278234864272810884504937362293361306792913646535857930222061541844142904249791191798720045035008918356425141254217404895196937042817173252586639800363131056687298669576528505430031342675033990459289251881907894221389772825835189427008304992652610132031557839483379040163349793744798253778552821038422393251410481922048805673299608337064516630110546858025216640445035816308077919354255745856956229590629692765132767938116845044142117697494828872580615335601256860579058019077875651604084535972524147170432454054830349982153282251027564208030677054051213113841934103993636831706311395793492296870249678779771284625840781605746122446778270892642651231364887014477749471145148514644150280288759918124428685173551593272927820940320358505183739054582694412657106081927467506163223154308067071410296417109767150901635880546566663519726743648848562711940719711507404579414316394793507236512713868391455804803757061120762118410041984979122587031480465115738903948264619557089095600986022745501562559829752203547382829465640401721248402972250587348055247983351424870611379974677116855228038372565507786750938704507620915411757965182494354630226668544882473659148016861692526629900449225578772472592214356012061258570733882455183114002620187316509651964080660406003227397473669334327639969313648017702869942824210334073257214382265725449887100939943507569725549920063972686596858352395585357618815074235623613290502571780170931746625064829379622306587519055453273446983537337242347999361165945668337241356785476298946284235874132323836268101531618543521807326150981725808083310246373415085707782302647239844925907611440019458404985724389614443842750355509463606922510324322981947139062181535152425472369887337014234068003510138723263331107710431246803793967174454966635060591099676036058404423447962742706006733991219160876588949959596536770581535822573468886473603950407682394760049800704097104014635937044633933172298942960780282434306906144121295482202268840765640968601060669268628202259286104176509179468861779521210913211158515446554142069446433996338737976419174952822305650021052225307290408946889404627465634848719723723955268677490894596219495088615899758612786902788287442759228021305799041115642673263395361204176136937395988402482154054712168982459558535743163310104017404049612060783259312890817148465348338320649615415245084183752681239462681526789814846264552421089815751210628437334477409461241811117131035389626009173389961225011602866585241801122645402006801456584579195492585778722681764222820842939898277212782541372690285098673633542168337786701456512577309185245138930584276992810307707355604411599793934810515820323697390164253083348710101559744883260738284215647194453770510298892589144862008814074721984474724855158122210720293331891395447257701803799091316819697153656841217162077981993601220004782490181871385025803958520861738593103024077902777818880600444622568597468164209608832961173710069472899279279069024103940376645590673679214131835524221114622668374088234624859267165730067586642845659597503265313736231672933375502197459079881969986636968215729260453583635166193771065120018593930249231781060550606193682380184314512949963528482147047936185541854205276050458940823772416515568689066568433865471243381961646587383679826751662285761712731528713370095323868588715475635366461376087125316513532368899509850293452701111841973526132496094666909432716939448716921252754710955876272405855130531606520772828556839611245160903176910115173603442227850598686572189115227397680603104839037412064340242808458930154366863444791910743355822307311986173954413847982893626518282899981261101987857511400068741923295734896914399658806757443097402828930341918709743843010463742207155185372992913108742534461022254372306830897255454288438019239929859925975800722250883175186990452609171904276613624011511162451529522065662151190921046801264419110536307852624099436196307329341647796293242854263202591318419296382352696897307347379035604615775617606124741929106771187148482622687355159723551481740416183247960377158028808287733856034613483342538350952749659359231988605417741219468089197217502949073763387454225832288746882240159404275771618482891011056723066113904478621315400167598816697696415286186108144797800092446481871009666772178622766018243515542031268659390740499341629499548007609868473051969411421376817745006098798922641953065707520638488161245196985239213111028803030217673969066789440254508531768702954172870490666370964703285426727514355820786395773233817447368611510910811844259386201964920855962040925657876382841167825730364261810962476312865324673706752674640918276386108169374947603923574444421010087596950151677782386531112804835279783518850531669277528871858126749149802077508325791159306244282234826059574615189677697229568454507404436849355485742265141444572411554737189381659259428966123379473030043712104207507602553657151769771771831690396540529706292338826731832821570809218800668807171401351701463495749024544678164190061683000042942584809859585485368517456173127526289669679345780563665936474896623163379996055919570994758678943197778972500663757194423794525832253731337396477287913018745119167336764010079292756486373039557758367358193038992925942950247911400993657402672796186464925814154178286411844729421111664356052596768197747369709476413192171468660301718501004274355176213477043580676674586404756885654147081839548720216004630352414511366863625238046372884462074269144647746296904863333323911811063417608676002321541069033583461886153763290432058048842190004031786466575289094317130675418723967438389790055193759080670141203937486813457981385242122757223378491735659985931974697238025868244818533838370443983111526220911807921777294470571442970922480001522267671797759061352924445725918959977421788343513463283537238377743357006895792861885052670000653757990859046267320253985329845016924764567637019499283317197772100066159386480224856694244640509694070292170453111635228419845101376398602067883583331645890613093349017147839493025025629023289081339378704258339825307102400639605917539816706370761270476235512512677190335630238632375264317531890101412277675069369903334687895000952283271712832493449359120945897007404200244675914824926091433379422672827157747943306429450000922734608526768507589407829817478977468258558206889285626969474722119670216209358584315261496656843289270994350512498562190365959075756269475509413679419157310298690075617093376960265526274453030422601990753068802852725569643436305188268401469126792849147994848653202194148082732089910843656201156815962715787736739852774496803264075517115678971044569586943834339662194791734196953756347328434070668172696651745057131286541367052978766029708677231395770027088308646232008730592212533631474988558725687677068991742825096484555299545882951173140163541982954968277662352777671567678214950380959130854441615870004246033479244332689141189145748898990509439815856626615685045134172112086985026025329988525849922737532366251065118484656280830385248598766507912220269028334163462494215639796106535723494988940981061645228233945346551871514156138126607515382589720549885343778954265865558067359973279221908293818538821133009089583995900474548856157479983769234017804379025362636003231059289606049737896329839649527907103166002306995174968443204791809427771994516291403525683556313507985448065148889894175490460331091956184391538546216416313485395548214664289249005769702191248984368671593198331016256663009201075216800247312642250177718843738873515916670044224581929910931628081280908236333073667441088812847201212754090166996759745631177929406792360004512747209773341840635645022990243382032630473388138796494359235120137318466929242531966742730704020853033217979853396522455741773201430644571806774410760305513476166274444716318391953379733151756143745521233096838887107701945942541634712346477753227043931168805245525700437255652909185837296008380964930504421589173551174856493045977402942547815367813699811847612250151586156590833815083699355354568720878801818677326571735274082887628068584336815997473551877913032686196752927621764606460364156120786504299104403850924253803643310926659982687275463740449828225274325701670171779944860355315869927668907708569813987209665033689877953871417566656925667569015896121478401588914135083606582074394787642758504005424039186771349980764099925356674203651863014765042268346761416266110174457406194373849742219760554100996772249940408832546270440806110534042428772914609150100343189269840542639926224561106449852563028071411959502559419836066204838620420661596901626915804840585580533417591966456591597643001992197994472870971677791463986850797685836827668799602869092616520914618890491935339723308265124348872896523042912452077183015555049125113274899941444863176378470846481928155567860294491569004256204472036661837965582927651894308703667372265361151748662511690981571393065622809939013619375990804775830076323271545594278684661157673413063185290412940277047676255315975528165990356808892145850372833053639216766661136272330324911354588925018024162260979316986625511264751297015686152302143652440324258495362902848315855796712976735664538306165641120208115382459450456552439961896346136788614933858908150455826084780801208993770890939687457295785852796883357149711797978105066434925591850877366699604835944557576853618433914093145666909445396116149689792231637772611244956399572360945249199772027208946115446742199365110342486534259330695193094736094156759268022067629623208025215821222873516918067287409972337005435273881673018803791603820466585206095151706241924912573897600719345237595571285201443457782623992571651066953828383071924525353153306642791469069460158379578991882553860359031371728832568861241908630113071239300378909827180593209987372854880006411560554584046614687872885532185759059426841539448812486577595243280567723104857247518686799088846286762110993966238096597235133950834273454695446216858943703154976311352298098150978131492308675384401986807098186490255776697660865631274675597587695316455810048471089840735640809052602499413648915693855030867489341811945074143868804247353701202076243300994216757212620343839272308171553349135543018848320597370225762233587801804650628751386003725745579560464933317516638151030144338103160921755465044417105818755848875199070903009523222948632789067396260008369393709141434193161906126760806221410428778495264853441151105123876815395904348904558222633314025967515320949688878293514335264311662086132534053236059134742388601177490444220865530375418856722928133807619626643122389288602102243502924584686214285571041345447025037592847049354010755547925901466331596986890781097169438006885771782294210870104388360551845224655716984751141291939807820312033066146288464077923498301607084274478949213868808257220868498450585160412223888760820444294554456892452631225525473693801157662231468918528489634531163068947528958334314129681037529708624854009512888904072995556516750114147049520036901555156141904864101709034741071180124581162689233522881235720269064136171698107645004035613942630744263407521125163293861942887382567093280391659570660115845579157445922172156574715062962737143978533811212278556237007587784551370912211475916704888724971742472778988132081705839656425830019748320321415742814239726061786116322858184963574778414533885409547521444101036767747642363246835208555734004581378088800682988406879518489637921616065104567946007736265258894613992513262155361584053674919259307571205827144714157651157319551987788901252187693279689550517007624819109317216531370233578236614647522026631085052509868551529774070774721411110436096297171230262982866355536637708329095038932791751919644852520586407292937394582639586721913630880155278227511128354514375088526100870106705102426788308023203952083615055425736803366617043951819317818854765996349348433878087040755168590357108656170774025497522129775630248169557359673581193620460676683062943975435899683769991393109900552043239656002394048017009453030922242712761398284958179841046514098903587287270723747164453277878671383599258980948557495922884990816339028099070150037568126237516907870306593323428117148435922931112371000400308337967962094635881362901222868661223970118637887673945690795223980480598040743908111436080626186976879303024042188998976818596549216104639241000096074428927423849726126716739296082571626412312005172954485724643779577356584533636258484641458456938606355093441969981575500504420805870285210582251564612554222331858557932456212375683559020026182058874858727014375943388869408137341135908599454722230001061958506352715903371856018140772280482939277660749395146763870703816963648210895111845233908985000233678618469964925263140104065947591438605521665282573249685190002080907358333699399564960094336059321616917127906604477124205039527343241876491553553384187097231210399337384486045769566153672678819390226474936247855732450701142665285449654823869385227435232538382000804241015997364584866555182357528265505220765097090639137251176936727155511922210931903896763164624509427370845130062908352299791957060082463460389238323943171415057804045790682958786148622204575592000421061109085532330715775070115399107148901930441895290108343937125884489206846385579978750663316244850031350282321345926503147975793766867528620199543983098819827556629041250548651499428100164224226533216903652570342996009701434635507490736801608190588954201907540115599935294007319088589159474462101149425637420035429330905213935645724982812149656688536697510267343540408042620783183906650130827034175069554308501354376898852439759686874174873000314060607810611934817609798263024596099386419937494492518733943513003462763979391068227751730605870497857747985722706147390679940847036884873710558122499801655310019533542394450260329839969613142692915191834940246685263274243529864046821092295370048314062986902359143228221335660891112852786618215996706496005759122712647578854594859062087509944777149930853794082856524697866500474739160253703671289617761707700792942692157614641630844847147742034275658898626000545337389394282056275767530254072692164006776571601506680127760378368902476364759574734141857294373420456905830652205965742950525565716657614513740389087034861126361841348226512100126709188258789476513145994056208033679239387334013373667068222302216405115169752901452775689298084876792464984212803831721492994399566941826611997870216404387078470260669184357476049506869838602861503535388013465099954505114042118698906580818614179744814343528391565598602070086882032146036242263366930005148275015995121320944878119578320033509662414298985645858633697166905678879311258875382462192242907548888839728094347865997558556024726380699907232635096616362652595462967646748234392849656890520362975377396552810343424266331373835501824000674550136981807353530862737610612829649069776369307242402970891813810519934296034612535895558118736158909440109121930118425796153359772517942303307238491096334822268013414355609279176930322071639081608470673358911550393683771213914524623486275527913815883041326571278083899435439848521045586527585749873241819926059555736106639960613671145884583138530097516673669565918721373078124926634201772961319687795056732805849349596357299065749306426933752350714068734919474607703055789143362091910409339563022646959285161873203364963412665473300814843028760449317362996638523493387599872595014978464587267928764519710120074140476783927873006154449330115057686870706194565598022128962272443563281654548192621741329626288129734322132827281457629754950416785728923386769924498355929541342374912197804841973805736089291055609539905011400408788142185514358206402070082650963092736767057727890659417670155620057268392746513953587631581736238024926097402839786642785954115434409835283958721811921552188099439173193914114228687549986141963210298950818662846920189787381292974803098800280651203159146796377305113300623230463270450898715736145791619666837363738003352631470696709873587040151361627210055575443599960212125024115644603063305314298990477459484644919217356733516562340027052014345159271694902453455359865591633411328857972660018328334388844223867672594656594364911453830807765844656695318035327194326376529432517094142342976847250758842407389030796441610587355125665578949724158142908219091634009628841203557545134158066228492698923789067226591954786150571798412542515334849281821489504389925676286421770938447926442450064221657791350959467665140763749379005182246109879578385048182254136993219479595325124542349702060157194230363133724872206166845743554284534742916192772813295850531676448532889053273696035873280426595592121318390963591196838691701790434399520226896045475492314703775975443754618935724983937255910996182705648095906870143165064166294588535995617760489776502812779820408125944866182215548526860670798638783060977358677465734687004632678725614626525834743414293361408634831856909716867209094576101050398950708001437029814883424138265408778215029275995242573074700005606362677351557376204133195872204654629157776337613876190659697733885732996340037876296029268651367199923691411145973855754245278135795826471648574537380199878613085218248392516939822947984985710178936273351925915952900864740978146033508106404075213430180828250941476071015126505492867193844949232234911839445264750739984113851579854644899419489063503735521791819272038750003610056927314935218159395751158098867856026501382192345901634945840361226246039440417897489433835369760806016755104410279028141618106291337164851885287642460381732753004186540775170759512507610507827293224368071905909967069058268741005222395111023803890301954062651643688974341797635789249726607637214436334309961137390739501691728000439500531314591229060464263943992658019071799272238672580639467571114102860653988997218653940255348979240830261878355547613815827387602267043000256706535179108007199996954570716882492102018107618117789101514723476646806012595980699218063530210446094733520673716381822629812496668986236568872699229308726296829663746006661327433315870205400740673946434008449781177730426239778857093392932462226637113560256335945785950271946098760323245298663947231217962349002378651906168542195096171922167181425719462852392669440083382177521808158457522087387401199533988595161010126541576874093807631026314377301256183957052908729415992796953375706127389513659868218201010335095818734237883653869979729875291929532902631405422337925689278490796091407880565597809156997604821785169459216504298086856812839231431126945702155542929402848082915622225072604798244321814086993575865298753062255841157178701432425415109912101157770484049100023401953878681198832899692488557386436008926595036607044168881417827646729957897912433022280359358947143073744395344763040393252083641294465757325541115022666393693756111115289030723531160915448509970624463127562365647933191332106120406345180041269192879756696863277681653251010391497979401398710489205854442083047549021700193665312637230879772179063954413079889617556041348507178223962128147745638136457999745439433118763031772932476033902131611311991686151492482194984012235258733680652263352923251714165334789979274190607951061190490743335253108054681683217102973732597204449713857494145842448281491874434187521902716021397793303224011428210612203794519385868969619657303556406191978001386509626497430756349107925547062137207712934885459788538039591813551084462703268227535104650115976505468218438979353024617062186472645225591394054670212284312658031473688749268816087342081362287607294874627268675359373009294372992137017569800905977688236574821095847192210382644230153579477029056712032111708532097634822413624643824337141762739730184546281302887375266348127576186823151443965450004859577120678641172953138811047764301101884026624863602956964581461458322937653288471176637595716958381458055400070754295528584750715362547284060284224777205103570828309299327606272893820828393083121861819032151118522067257029217002808115180063768750009964418024913461606777229013946517046025978311271869031480789074836792714603552832935258393238447346442449175596524826781437567497875008181817770577147098058535206015264706003275094372956929749485239530536491759644517367498440496652835552059872809606042428521987910684022570163445086749880272258786206843503599367487706028151632500131889602704060192364807745679065368769213346525661920397130266697991131078466006878339311609523748619622659691103084776260634576109777484273390547378288228676713304060046330840978836689768656281286730751927693485445895333168954435069725749340900324496774810960645742464233970565551461731255721663741357974552925986702128565876210349454087971817156596105044483121683182557946133940992609992394389699991872711019089802194088770236358314860603418947330662765735058978588657312314529890351842677645259745058280307147620677320773469931814310038689318798853648019126487637825803705495161317866793941215086657480479588131097617562304230830719697609793635516729535124707834645163604130356207146796016766039145136550120411571809320499255187318412033000286226057333642698127171358129734892486696021086232745035850110143507811320348005747262273484611824644678174792306440612277162175358744210133855072066395307629945440251809242099627049620762901475683174135504566395853186965327435018480055203187225604702668505450386196518557372843433122014184519043697597663676884649126361140618802813217326895139945401430819732542936383595132802413395894707665693065733354489201862241816350933659166861006303986392563951243109452888966399547586531885415912308214397231937680961696036726923532740464338620363444035863120591577087728389017390042552820778384439059481345385704819145938571967240845236369119145370993636387813142246658801530993276897775904981829964909554324339612985111737075402242671134870533394601465241437144779980481002971332130719112596773824610955877751638371397416773893879873316048908031427415261560027061613807568032895796125684719457179142447035483476372642174554095310929215530343267460144892406442138970127519140758485392390148226113715102119935692256725339279367027157058375741943849329207973129985371666542320818262563110750850144289621373468005081195347622590262462012909045710243711944673668681399962637931562804310040557283186743070331241715575907697271535166722871073935111142609602071856600573615106651466097393186427649763314352538683048360602975397082598649965100800322959393662641919223968800678971769532519874017202735893540303986344314255654414100098561097507524430271383300478443519589582415046473904024600103662370334497150493893361640796970936991462231644555899398017852444367351282007599385365749722722879750057351501606625854698308256815493674509084683721564348141275110100070129697248404464616988426074414005024675207476792761718265005102342899674901053002188703829817075060439027342305012592592536142990522544730038542163261667088821687266621260228266725936628694804929065556879325329512298045433585638642713147195205729171622490199541028394898526446735119895252428241656818076483234010607508357011255425249526444301471136582319233067660095685037146878944974213735895933127436589041214673947991709473398457400311155839419701448653592090824745882424960327651210994103991164628889001621004263664684087134260368607081295686313252382031652772018273081751186849350601448064021000482303564857137545536451363930650081899367824452547357058329776090376964448196031320736173595003330327468016703694409528863971826672136110461741457507948950371588670226346688129657708951311888610735229851595574373273076943945012622502058210634854915171464742691697483582951145208043053596320151841552055047816478681218845042587112190565937233790016496239959983086618286669410239934119221698454683693328937177698132143933056460508469535812974502865849492405471712651339537719410974761445099336464536796829372978780172282543879896912611974773928758704103585749631617897945735841428511023270730974874720470839251602623297303783238555473762927188369201422764916716584036625204738465748863526618654266670522504438437440494939728046314220992821377321491799186181483872202020249030510193766962551474111062945581952404822633418123075442767621244131665638859507346423921753539080278638563133028366957020043290353589394762388152685861588834760677608749642214902574022826993426930481360842647337607543304804332251305706376926315997958111993857010845335772834914382249411098071104517928767349756361352196955170744188370425284017377155423747591649560495089307219062105668605413959936425882375053855119718586159318429153489910361950085545968347816913388160776445116286314893552046752068491943334804749740223588013163172982080422298689782879125360766373925772006409387894806576677374998119945323563250220821404821836402907109924049515278623057953343208002137665539527465781835431798156980181614201238685084986526778757173762184179092299191182603915764438364756000423499128811462980595992097639612047799257258470261959440565659886387886375890355586087908130976251298823564540503082483618287020874530758965952348945350853736433436793938878849510610582873275561277680833188578408886003941442941508924762296021910433711934302761097229951869963373019757785335842554645493818213149106083777727575299277317306294116295887991521938595896560564465241377563502878086671795379607768869032340671510087148332656578638109593004682960352365318983161904718963712739414205487506654290482232735626938073951862734716110432106123561646208218981427985945292023006920835245662122081001661831937494755212596134758207686247311668857859229357012763432397931995243609431757632962083829829124802601129660057667333906201239317023652680379292757735358366046222401354247850411479829033758226929087142457662675623340052484351524052866936756330186812469316417549320030463449718162558823708405828833688592611528122532207377939408635642946261980038812617294445437656645116298310170969954060321680119532789890232673963989930202090106389523815938308435472234935580552948194856664246676762172003354819852273987592393218946269299192573991580922566292811831857297792331417199291059758857564739499407110075932289586647485272316013819918136698635311251417901841381262257071615120622705671450825784664793958703097704620543816204821114947797261880373454438357499078197129130810556019784716897093479737929546861609879129921880704341425626059056507252813135962374173274433357464440195034018757066407464444758562758878367965543397671675003901653940180506760071148174663080257259451085935894391078087192866774498507960694197331767034016130444602437583048079308798118533698307204868589762907533615792727164434226669132717004971958266347469739741635108905989570519997629911967676578314880276577659325888323147667581056752313649124450351307012789873843219680552673929557700310226359429004647628545570637011418912644296851905576597460324455111625760361346560786874548720101307041855366781204272709575028192691208447233036698819678677833678878306482991362979057919921974835175547956492296167560164687225840238780952572441659928011560009263180044399980549072781813035075206531687329006938401665625146229529284275014617121761943317435078980628910777814113099384706786714219505587058548691820928411254850643254927031463388287065172334810460970173101892403842351299128723046207927783562585063598084916793804295966921232190087193279193671443920219198185338722281546399087245392719117342202137688605099938370355341160227120301513742600329074491001425985259611869096602828608428103276436114451839192437078591397553456340566855429470710770249095215885106337968228951369335434648143478345250670919518850036394032721607474372354416844377176895264994910435677562431720829399804424450573794885198666718406551264350128759201159215054147154483318715280653662059436416627547292943653862333493368984912190517462700491983923582469413005779300956037939156171702083599633982103955755207502829679249566962890899997090415932313980818901578177687961379314517746025997571250467762418176875562121696058004565235039349253089073294084993751897173184245119948611970962346322741990942335035651520653472056700756623913835907507584882955559032594302829839692076958014211375118730056177745213037658427598471247141209628616709010128559560492621762937397283726645729493304748288417073211456706656452766012816651800485247200772720079379871609731889290275042092392931253242281115133992792137984960053348703632033158350012622365606292038340142654884187910680614799594493348159683859190330427986392312257515961128212849528556025136365359682148530922305619863497153345874788285695608575644756951778029448253856081649070048479715930100984615760601167305988733428908384752512124224014773219641814071270764415956663124547960630430662352538527790481392656520438755485264164290382787097283597223182007104033505061180553307253533119935036904825855199986769729099708631488401188507362246761908560709244896401382001994617557539268599661101425106584365294928639119904185508798102373518797012373952276072326665003223644798189091340909247462036174249605807769353354892768658167882321627500567116788858487983180233153137058934514438494337891201397233393516709787851936826215579402915682331713478015256696431083787327999264847790603707421019785867640511437063359528155135295526765644545539355781059269888837901074560824810255845672590897271603104722444894029141008507702767045132174307123267252512584712671587815802438885829533909304796657819837570598702294913330638023271756505851372113568042517763046626183299582496669447636372188343687867217283073095483881558156689021965121796944191114809255284302253839047917388935266891353647047504733870017509995240857558264144074779344649632972108226381561255125585082054917718174368872071823476908593484101182548595138450919177081007242779172903450296260201005597094018370723494904267306722861991412762840487039833629605316156883629401005598468182945925900079430008753888250914884647063411864375402129818081259904074963103538170335228183896698273312301591422567269698288018573099967216073544327211270227322590908331230022957337072320415934505054387341054989090442146873441323158825153038058004855745319904568848259717240029757014793109608417185360821027989643905079543960514286444348364573019201770346095366518103758799736203197674242254379817811137201877511800072667496147195012201886644580558722291531905922257362638179017232013685230347229639505152963505888566546103580460001377716212229841335557674886018780831318722177833296843814559820327156885019520063093389843896186615540273115925686903080426610727027178376282562734497103255191903547708502310582000074764344250763257534816375641458106451222845861992594934273040697557821225568779629658273436638340011048712263392960700674829573326589618352874357852646876110597523067283093567468829020250456699294229679284443195967993075058683748860607425988964226672813682759547748167275438869462902111649820427933343085410277843203349739215768048707870158869711497803329767900496568130921883017932316435367017582741799020348531940161109607446866436227215033968091358700392475498501334089452971323552220151356454157572142333288882093317063862886962261753484335623784490071742525232691883732091497079593452317638174969295145422067334680100092230034016624123004112596582728083285266493717136201737171341074894902136619678149284282549719843061842900495852991185695072693793064432352331025892871613566591771758097377543306727701535448598074849668524367071968186760519255697025482622455405390801818385587463723307432156382761149071231397060070351272438321905369776718031637628744366537467446903847774208179289231111829864012001418812899729059987653994952641447899637851540615510142418805785552786038338981765123127138784524601239211443050401315315188077431814376065036910592978398764523731259447254694494852744228964300895180454365389063219976281335885533694709410649672859993773039222728429944952648030482732058387851719604938539477258322875166931671515050660932841217836316400268084256288418668057292083390049432606789817328320765424527523209326968446200777562277140542951058085283998718381946740338582662447186732929864264712190358662725315172986675018529495056271240891591546180388071331609342619548801365095475386674160162240761153573893990270224282609724723346468090497784344612607673514060080112819817901758287425578308270903748487646250281895002554552219827384368158363822164541321118492350381412646712217147028649709058910652468083740377315941232431481332879155733011480129984624837347185610767734467887870512872159704615387729735396756493280031009558980180664087954577846765972202478123759237312863658022351328161418200207629206958653727149051828254142903049900896267538338137409645449854400237765656452134226042788813666494116948147720364375338023409451259040461332766387381329616380181381598624964635696925447762720073843637182761697053256224313667662442583128610754836449848963695500358358593967644912031594581485880199847570324602408814738388070866961959751751638930656531919581145871079384817969454311688324679278418569461503810163863041998204886127602216664489073839150842650237259704253458564357219022653498018524629277840099423468472511718666025519357483079409004059359639186200829482023536574614292403324644527950310822204865467886590682481371482515785567833370673099859917221453754134546404334519471919369842718130676338258733686452146183889182907644064015284338826668056221207256572757811245015369203915194720261285304138034632226896629288859103215018823841057577103115574590659217267942514192557362579283592817927860607146210557957422586200429376829192228910016000980708896207987784767638635990153555155175772190166613536115163377370738056970245564091528620933913535930484996017950750216230942558512903621262703825731521542667483947260743257172775948180627864264124686026527073568301958426426001765223311994829027499507070789650536714739330919117612770616286971921341812956446443814913326587837591618529164417061084506260575642612161444064066714317945728890965767061396878025931960070452164190944040160430668473088561510253137423628000195242083701396575331618693867395966023131758837790460479564268049238818030425629098673812289024726335489259138945736747010016560739409668056551998790239079735372981409823915723750186485493309132545994792036437084530571744369209992685224669805011855727209355502547584659431359097903344185039720023325457522448619628119007423853313244741024141607497668997348712259524623851724114073094232873946146571843219454759178978572836558984536023313309798189955377228577612317885392168492436314586852670019464981544424094045808815679449826190583290046189446797017802511832303253054470808283357999145394660713927683746515312262156505835057072995005883689815010174972821637000379934913997127679210570013511672535590502414068951240696101199079812953376465154167833195377447447568452868738237594433020101053458032108111834162299799084333839492845574400882851513635476602623182547194427850971982841158451893752376692198565743860036036636160568553785212021547902054066714573079210142310812476295559915827391571791801549470591503242204010674406094522807647711479586825583684047490314107022791276463291361733323569318881328100267299260107240132082963448187093150652322595070939153898789298557589641431602196563404603492022455794699903053170074101100841185676645678137896793219653879832480684556358348517337967548212631795909360536975837560677139647178636906324580700316012140286447158043674384599709746821811009257738081831741086352655801193981498360033509708449667622645329330415336460626158290226662026976371888240210908233264795383438022166757709169923412433368289964309850038653814585467496711118456772888362578345953494998443447938076815451295886253102108881363021958688216871127996501321069230523193164488012169558007038697845239149566344684122146965451390010549228893193549828849368436837934387796018295203352172252045237678978851502210029380195480128941763770877974116944145668556879753896315252239821612461801167742899012406683669460365683099141320854104242811194193409477484382587985867236119098674914764327813269650779194911414017534528412455925366921741745089778341752841296245376311954882998072985726688069205903475337740519657609611491616304812647808080330649499168030002568512094795303619281340897715503964713007876647740429565932246682542966892112202931539775674435388602409237887024898358960573028353127565414138660339221509158409737466886093051524688188622808491946949123268246706305175685529804120109475638076545445738444379552263940622781610805671633912770569994873777537590853464665174918706950487869604215369622052116018812840953306039571542447684122924370064075871455067414078526257998350560376985127183227580121145568109367347512058593883190913065213010070679420699607448277781893686703234236489874013742250361357029286482960673022380672978333121341880010420936845897071489602655259204672047742518977283746765224921382832356269150493833458120969881327361534687820307694635746832893549427196644864456626602414528011437966526424516113956505822516284497081350374189475794862301295834630155496425886173166153468802182357618111618064192383303016452455008945782403156948450269685952202428212323758996979748981010248047964385034473743488613127950287125639261138499789878104248032801375733083335156696227739991346852519304766690808135436315586581976315379369486725775421893165707925688570055085018660676082767154469282061106911382328365258030290433804865548002842288223967958220844387348786667505992292645473517968769306426443799302635758031246428527036279442043036555653275107396585763234395953636123816985309748026214935291123379051993619351852083993905363424584168259776901055932815073722575685309695337794859989656865400622975068079190133432037337390294090937439280303627738310915969079735197784976488122082733069787222117850589122968133307776745265786632142959491486150063298255705951111922751111711505275902017601542488956203448842068735447254633615776850767593745145059578218191626289863193194475878643350328815510797851271518520198564412537725710657483722402733446438034827625125873798175096522821795606466138876348121041221391474324602300115962120738156507059181481038508995167180902964932952250486530345568757992488304419297856697759849876120177515527470499058358535677271547238183065718960844148600174165684053990570937698175611852642157458017038332083811973575000375957252792223399047581804698539441708616054942218280992648739453920330870863477511939712672653648222087037299939492666600903300649462335595237012383875935380176992077022319734740129933641527317892170603346318446592943587448283162920846881500316573675044367426176807471933526225680795964882754368252249449892516540286079556390020923128113604343634366666966768095732258208749454727098271513210538899265589759062033991515511431173062644651649083416991367391669014185773760496093936637021746214757288329545060745765343598153954996541507547587469518066915131948332775581798877531294534033315776450611912462467108608365423110673981523269983879356288275709042400681929673180151166589896442760020880317105557999761329070150240750278460861249152684534608602965991995640319039167330528866287347232870963929817936743383924288328271058476375985001665817002010635523454954892384915236097976895209987802568355258236085691565774444738097621013185972840300069901511636018414408805861195361850280697856058315318588530384709875061565752799953186181230342575305373634633760455007136830800280834254001318409811670231409491602272248134652183079142714301482888712047573208311878646585053324063489413355493504703897762373910156092253757346470393480297072039686179408790275314374451258430166915476186294234219537376150859107268486766256913326312299447192546574412249413632315450095883507227724126069995867575965776769009723774226656881093229888636880273841397704248834720085116387855592278615466046039898407410684657757643380717456325669567042076232257224314447976256056871460864358684075239375253789832071556361683318887313852126608011378446556539870322556949104787592008712339726614528353639810560232377318930075304322568452732869315869431565068801655119011624566650906698315153339092366899397265175060491092378781144703894584181437052339058149338624326936887273976059567964730908549992386166479719871182254106815787100440446260924607956431027092087455593212901069480279739452233062543564572806676871961686356204096280065908849730224079420629523061381834821243586683922632493084106743646417004493290802460297874969833098840041057654400368789651060496277177056680939508304416611445830607218608377748614802876838426488860580325484094710812378770109439400305408021084466408730232670084174391361619839490104383945751963505028378672690400976099805442510309379427482489684290422721460244600901130826756396151086030003300722003632747226975471757610850615238700325265620614691534489586853377954625295703545612386844351677483607140452639471675351439626260746006124971444563691013353157039267527413964547037743011195426537038842866075114670740542438508680662994793374377001378199974574470290780940523371358557040234247321778434153019728107293948988152064463686768892138503223170470563746249651425289187206139169808591309716089716201411718093472158084390365349979517128978103678427606514753562999859167687962581109467173655749938933209997618899381652586823884465019678411138161715770724645107855577764181293293168792854334775231978269582423381180094233710042085570455945144824194199301684049969773206589535586838045511139471477615847981430751795002863545565214719248737313418630172331078018220441089438515773319265979127136748077938791158246525698157164479792404535558173328540135778538253740349142738263639519715531002575450990422115243373558711332887117894615070555407915300499980832537373623282903227553556898776803992516363360343038748619786560787290476711292452390821026023998358126300410410255497859790410365763545797872845897315852790983269253778034207670687547676029575189754266879681475789325781647755659025308934083195594602276153843956875930222418062904380452337390412011162638933172826485130435747667504292303596461817837017752186828098418881688370528667192487091404355588400752795917561759027113257272482914901472950930856991971180016167701413757434442556942018741431932687881123473207216039162863996469707848891786894939077384519117755239211081254149325868707143210729111604745285384488028753624034003868790624860808300227191444625376441651993592946480178630607988478825785885194981316121726693112321564818593684313586284587581219795117091934771014575518553735036776543665699467154409634743337316100933426273344238476200739269575755295309437698777276301627259711866672858020251619966417179311095992326970651099358395829251662286714287716755971281496494513475036644170039225515504722880859907349303451974428198517072829918675030647418098728001861726154005188847016717730963767588849605214195889543431081194999853378842940802144032027278934124817364024522724907453318773983596093035039310749769206287733618236251006715413246493398850012254959480420886306031985467472427262227888824307282024414451731825986486071236663249638208569914887158253070581301761402358402533342014239767667591240387576729515171283632362928257947735219796858419538560303407322465899167188836016996801005746243221191215597331583817218611135696969404094477195938315056877804517881438961209061746631040709002669008437812366946825577184137574765642111336538526100068111133207378870501453172875662941272226640526143601436651270770247586788265556672593484266761861182380471459066527571030281775187522253854157897100055032623452482457875871351404996679097662326779040674940885603957375146285593953199526889494656615108080221160037354424725406292361268802197775100608779807389830760670809705307391292521186725916583396259779961528636097973923303978217597508966592030470509568063818220996911422170352524512600269392010648042400713344154414286129436262376790734363375883150431202713987827349397931439236780778425630105774935377076153616091604349832674068876285846271182382166807706131935333616709864658891972998759981254125905506798794686723164059892348402930829855372258227645978316492440033537712682857453234374089105817886554687333399075601512271046752125145677092933914747714228337414056673745604560584690343123146562724125043607116890177056034652206599148343185444959099257021399620425693253518550991439655936503379214860508086590673765901583606695200246792029954927592947270441643855305331464388900553132479665798425852429274832575915303604771579322070398845992553299489293980931858634826871579307918004139077784180825850059013199717260340414429286684922423113663499635388991702004768806548666787261109417156843719140666737209456504628464400763035451478594187510268602589237628931860935331103394724936485397363032887390022087523782377374862358201590377607128673677298741962830476340830866757526223343142392392867735187248787521631090193076847211426299935091728133812654069674512194539389692981827614905139534546287409574982163520527502019510279353078511893333746612261760595135547070509201678035891643843188154467362508285059078674963576481879325572767551293370432890956876870960535405524850160134715457864947104686376349707966523878434348001953721838847036003236446417501971912683842312836597520105281012745011842309793611087864988192851741922034030696459293561371793185196160962874478938712165507026108373085678853459533732865179799453869036934071872002349090793156507251365033729095083901293191400104351631845015205120785745051802738818697905632492177693424719748582685958210381428244045362615198609653357611888504031406517741514444615647820219369111997683995829526377154754877568942616154330008120588186387037309234432572213569471775178593375123936302128086045866291289398253197492557111824293868806920734442907809725966505519287618471502982765692272755060737750055387992516010254824685674128276151710798204919820113089491906838432917650574340636126135824788252179233096571810960422639641842831454171956922640240684059846116771085343984490621582032502259156502008261708184883797112749403727741342503537167326046517658584485489478861918689287771151990186485206160726660526026740965659287756282502288408585738725693380862772170534021519493048385290235431855458819984814484232593434509780559623192804659149881454893197276208790217407608452719293633675132454025814016212781123494303168883266946202149964984785753292735765364371949116699970194993301185562311828770291703067895025709921440653350415382211495624288423529694698189821301410939171872734214507237146050468442464665374027255910575413550156594945807770104589968968053739443053274039259411469622322350259529898073684226716566977885896563113801454044485383492425057172685629908779315337783801523719789324907007016571529238823781672832251075487477339113039396064920352441185912027627990865194586715809058941812295113248642024536209715997755878481844724979318028356000010298220043459103731201530266621270138148368154779387804495234823300128537886188932988076742757186651953697703544956486141916102964546027648843004410010328064866763943080388795037530756117848052053945598060769441618872436445748278554178787939809468857016628195135463181725439055419026362754748882837927077084423649789361847054873048778059955079949068136429615870475822007728377429051451636905565277056892415494907772482455989271234945432574664495330754936726514060487693483222673551052630915587079506691248745022000900988497968883501537926993588009875909901238464152115577016153483467309805361430249806478045875598886261009786931167118191947110822497189784275440280483739792485716851099131825736631248827482474767236868775287302727935744444609196784389254500724314329946769494218819025118568424812971240040949871646182150832141699784943778099471354833521406384679411779118165774755635575711550852645977042891730865266051699682855017929968812835789354963355264823874192089828918554989335472237559911693904310441663216419228491440661678452309239298366523272091870415046429215073110800571856174758101439001097282274287621525907532490302226288296745201893406309475325098644483744684793264663301818607811808961632894516600082263201409762646510119034445032912001732929928147764292874120364266028617180171543465135441743429863876262320397552168371768019196047509615484147978819517620909259782961055372922482737883665355078167053195098216571131958269055427087016015276654428072890316502547042396647564091357854720019220529006275730962291980572448688615479469462618101017591373008988398179897917470629257349667934355301682374025575766458339392688900490691028791770981459161743712940237039598003698543620656089402723781295593551508085795474361528890969253378731970828128318431666852175764614209357503112378303115249860978691086600745702689861265788619795537179178608975742654735104387210529429154961866028112561727152661954522375357279175860210417035998423357497749839776835656616298914621929054362279762016727818158042712324963265289985168675349945989937436032161502849518000058134453416586970463592193424355341070442125392039171059598036698508036699082961398480261231168591403845819462238703861926797884943498874141343704552091653143627342763557006322413158624389608259653291131916030615998741769840820376051072154545254175944710578049204068117484330567171411258195072350938999130576305242235187575189103658114082369691912558966948408788410817048929072526274150791230651574977759080624915878153536539196772227674844220642994228441629684040687737769950415664714125614955685612461513584455573479947386532707891008816598341315133390285769046390167473230963217490887243425862438811829635041786397600934236074820628916544803591884024075668048413528003207512001562332911524585459252001861279320128163155187527607577188579584931006765762717304902811006664840075026941160731524505227038225191383645433688935662326003112584944269273743109420623845788945425355363652961332493555436210807826097570675019081512753742240615097200612367645015301724267154303066303150723537288461991436523457072819212520876189744702492264085562093594770974090571309120350624021144725868775827773395485899831242914119519256848352388024080156603972045887851794336361333208112910402189809677465063260079922609861226105189520003892521780700202863134879339664202593436380816711252569356326729519691822443462873981673189751667063570319093341449920869323815413150131756123561212646886768579555487061600353412678652491870562147704693435760823583219781536486681479750001100028751204958915106096805018929476853676895449079833304126747887329428178474235084269605520296750207994267629815620408607102148986296015063671839232049304872030107890439213837965842087663654193725881766234734831616846994908449795064421546915774584199150826362993742948792099999925325018713652896944435098021023383728752359203246384039320880196056781652141001502307327960404595552251844362612644272352369373108891222629337418974702182446462249878314156955827994792996359957009668101174796026406277471217451763305229644168399526449688000538630827062243454652211172288807533128017911629499639416393429423405765323929887985369935336342603898678049451162346151660151113202547592122830887474466486552876673997615601234253565647287594121261696210575108284762028230612373872225828717876637307460449739672901054658651768821381445122272347886650158823913946780867822697077992503811115260501858841947607457238468473783742172456195682535883305244087345117903337711856655442958085054484153870098813863362948288055053330564619740170140169849425567761202729070365657852105557051750749064808702515255952462767879793794476378123823212278226812477786496766021447373174027416609372424798468221808758518950668078615767206395088105237877609735266252826964562072250944496029824712797743487645896154891035482242749574423980454494235924573410259792459419177432511873106470937908742066373336003122583272020071224239142669413588075089064600035952565996272437429371706471814332504439769620908018688960860275772673017470715762788672487938337796990201639603287179896304141982420040203450973121644401525696066554388542797402317426056508752648567936350779295116117050126035473987742892606379483106523682819371196270020040075147926140148072343199526860880338601390278713985628330009743471149717485063557467747249031279600242908243814128396911059843570641116918695524270504390564651398885980124787526726145608496773015396011497761663018142694510766563684328892649440105943382265099913149554983937446270182808527494342415020500115367593989264727722558421532639735930241311843281717430744861071898149554320202228608932623183700703482377359914899283973462907644656296611344437323647843888877567356334214877411590921576785217783678195255980633221806052548675154617403972896394571898877405725452967483836959185724231907050375674164710910988361693425589283928827079456132606500265916409998215896966423602107253401190952354709917628573998009413749199126127977374719275935273146865708577478461957041131308525386360938528623099502744030031929411123279953788306619168045902656688885207597514607849981144918210707902638216398189335183803363773206154193885727684357185135951188654571992116140696848951021546829211662222903961751455056386473926768014063880244232447244544793010089483039434412877472186673236632192817118158893120304380305686264967817394862881925820767834090838776484904156057885361242821667181167521037035476918016999717444838748301290896051504919456584158616360308629266758908888384181190556567838026666742934367950916353397658397904200622103647010751751552249767929043065952879318300502186196637947365202329614247869297350838552075877979597610326914585258648266396121996565607116736954915723136972687002406153041624453761138750181039600342853209471502807841970581283371410044706667219970755602823758227407719116371333646146992562681286642897772303552127963587794694481106658903341908723478231336479281841056090270630137257041628083349443851148286911400529954831014143491969117299645845435254163865418684800738500412807466589644169977979114227750121954113122522962993371109214127612009136910196753350877205217065401215272007912346534709047715182193847664127177852904881716173713037734916532590810034183294261085751478952334091956998408383115759042733175566633801430924143796367713217956886395303683982408920263976235351430914740593283719683882022384605052199931987798735140770961745171230257814473132938813302500599356854555476143731892218942869820116706910143848747745826120056282437391872787587573433001268961867972436791022051281891044844983397051032089500104083669638527595580841025636893740972386210512163255184886490521591119522810152854390145174859204931767249481754666566595800254099034103442473060040927412090808624581932794779671410274169181105294219369030563756840301908815503716511478884672081477491760510894965280040942152038651533825761967308628107325936630317068323845781310920018152873200401657694204031788254153063369020638884715517556762674491024625977722231657775451905611956945783717359467731520791185115633589587518554854542858146059469730274686671165181626883191759608558854808609918944092549150544635310402445758943946308103699013075423256595039035571691430784661974488215212348049273409094884220621535012354344797889213626453935143300338684695679285298378982626728710318219333554526389008235045326942890431102672195266347179099630295346024934823293472971560346502201339499678501637858537686895060364212510917019486437818263768391437274245567861119255187369069022329137346584664297789248221807355627436721427382623821089125927402310767199754383851465021771887538347192112732548153099770236601612818987517860975620412450196113568787061406026224572791809540118984005477758035751592697235354985066890773657809324297534730670088818834638058256609347554192468936701127896019906029158424985210918512431388836011498480326366306901383024311992630982768185416134712578834961646165594206117127388134436241377013515169111369686753299085815138153012281459687461333449860589490307006451653848319708102546892817081792353940429569479829903307852411170306070281734314288074820567497130932879079128916117285714313274625973745150845321896405670386595238870281669564216030524468358536111132893908106113481705862989223445999573572504598066494009617193861790487570173202875430538574871594184080092369412784796188349178086487831926084446657606033884287677215490082603029884099479794306885738829608248811059087994676199271476350004443532804695594100141838942394854512985293801113733771540717803837737855582375527814985252673158695799429393651509668366696631420188576888879771709374748329047447178025035849519256489823305459797204004823568042554530826198412381486673982573630095581076927170374752089137066639933534339694429470830094794697749188665039167863521519926638844100976292635853219697413097824253768366793133390797217192167734049374856752170125839483035754811550510446969092937196049651844127673729964192984821191622448451388508429027057817499951565135188787103483421873458944212959739693439249797968609940662722674026772754159811116955926240127587453927173535012651636926690198389119610455557760344570258883198202621116619079498255273928385956182582696320524755979702033297009190908233011682756510078370570118628954206247822577001729698495356777098581684499820056425701808726222480890837770687058719371927583665173462893245072772022853975007604441400937536221864043628453213406494293123979174617322301734950023053874863487710755154447395851180085146110161676077503598611095602621451670492258046693551556540975213235645410959346758635433272258841533369032875942539994612491700366300425268606491549497026366699282093502868340610313213563400965216277577357054928736535183459510103465386263669913668507107423459052719633189272792555435979048497999462404575157407384166901172271965357152978893357948589810526660240480464507215252409528935603021590222223617896375830339621625783032111512497710904380014974864050105779822534030204571304609329614173370147858146755682734938568190336872106412098174769959840067605768251638500447549219345788529380697931536087172437292842330469298495369854301505673144802805135144429757990255073209438068014320893190606957877071474710014897215585147329063628820590238152383561108884918390537283910029721177880989393352037927166127683170347560509682237542498004257175780508893839001760411448319305568921538277184947226029772408371989860764459622605185829568004450397880483082377872163558328791484201046568073466814566978025930723538857617375404308680883236667208173153942614920324206662478540817238159017687935000629330427912626378767104255899044295540691243436558591931329069545068374809842608299727383950433148028507636366883011673822302665784602588745609687114993358422976658075741003777006512078205555924844095636084057350652529269219823755368943420815858987884251263594243806885518692620590022541431067302478864621273035751181595747630806111257551953779095903677749136692213004606771594600741037637861137630011546334138518818461567852868133718397824315284381239461086270262953916685079175716415441995908810935882109428024855356508502483139834181704139507406852581952090342693463365373962373766737454673432397582017502658992516091219133515500986599136457639138637211020986775923021739143415582222808770515781813816879834902848299066583467789449323109482172941764109600095879899421168927623658651594664434651797638333127142389333807362663770332108094019609351245514149388097555993992103243701190361672457539846939130454718779410263506750608951554268036026937128708862086209872927939694260074003120707971973615169322323021646277511618389521966885327271928877081689882109468433449366800925970215764997396025177677639415491167792690354164028884373061205946731568845914051098744406186677474693770330619855502691391002521094530815915516068596657923826158713767655446735933901181852066703115081371848704324368057442267226103759228028210458657172675073738405044972666943960910562497555405688338743986045664511528251783050345857271498477583879193189261231525364422339188918362685688486042259675468134502933786564390264347450195543712109108025593812986143050309994289347087765496898229991230272003780935399521729918392488310875421768085856571457042617726193727559793389970884001085284114179211910443681310583167812205658586663390653297242319601644090549428675023626479582915328195931235107643185036897060310488992166635830248703771132346496194937359810696802537846046046459432857858319874830381866424131596560285203881601616015470677103853609267319983588934023267891539751352848292781542285360781396758791011224428377730931988098996631509814811041413996875590012424256393169722434344998377438290648156066094931883492271756420812545528434344603684740477604968860953885885905432037851635912425427181396873296091138069665932127164519837277054438025726139136507789111594178172237384145065189491152346048599250332224240860551837520367046903002693782008323025379394282463729982488191736527554766830666867878504027822608329708004930322104270644775027009729542031767018595411037308140249466953757774620079424412616981859258833213235455139588601934440368742250870583598158601607221082339047013368639613532789195255023250055413746493302615495045911665574853345953724866488544932651050751406107535383568069973500610394902052140657660137273372197842624656018847517634374275699508584339680093378886696503294391562234219681735481536173532603342238406631746084155792331467221291360231247123896550113292354046133223480531716209904053168655643259782352413448354433453579109031071965029559219419060828613254795407934359907079502160009540331109728438318625748674342904730140481132477125031360807424798548051975904979473071132624216330859672448208613890805743057625011331547124454589811621019591790755555863673003354246893229677091332975479655796338813110964281090594113125886437102514209251755839720500380513519081289872149578585825290302357310420253694836993989818624239229813083868302715202618710809372972672813325534718134815785603674866214598798148819100184661357691423217589805537132304903940597737738403601071215805934313879724756081869943966221976575956710650212016154287883875865430220432936454928666377692626757261039219519138772597953553054053364817087175141235982480372920139684294832304583916556590817669201950135686868852649655057434263016629998833777598154766784869202141657905042671634163172966683323354319913964107137845065799673493149296349676306732790500734333165671236703181216938843888512025271755135196780644534752069357134916612959451168073298425844165339706974714703430557040297098136447052300094228561896120634439954029299095888742954535972705446905072326668592418292625814184442454872999953222438982496975239886242399785754030045699240186761971177891478422852701097104865153597329012165102057603690978675146133401697431217045133504414504968049603245197265428533046216460886353014874634177209359347091828551821526407972079515309623615193582745153532369569373210642933501440365218541962144066617480284794102380085549417106006121208168080077739891981851295512650240111581334605594131899535218673516122966583231606196462293966470622372252321402876529485052278646491018685721910951529029664214576053622431400287681111279667407818071751393459899414550838270409951334673241370574579651376882698257498643438330938554692678262325307661961335144823412167307001926016458408150311552429340282812635569584859681939937880828251289129192121673050559342679573680455092738795710312030669783565638308732821367335680274070797526121382991146648253724276209824612532752154105521712061096409726419698649954534964937712952464151408469870988593692150518324202318205533935505938061369211265817844259078171612453474656403464455141310779496023041391804317282718239281410850402038632498000015027847640150930409204250324147328273176606087893436862508137581985385392279781202100489220478348776825326667964345314355686478448772107132104303234129221436206231842201173667064952688021121425168440571810723981011346608125162681258215330640812050911197162202486051797751157877165387520224279593389999576324493263615625325615880086242701128606400578455708341073924080902078026132514545416341922582864575945050232099062116064864301612160716649227197031221104424562688044868784007746922635292021975083107218192731781283096596337858662026241057180733875821075387694508576318140054067907538353545168795138318352537583676512259481535283940170165981030855376391018513018222036981449788981140241835367185098007698675668298345258754637132613655111949459460511420991742808919317830977569276177547310624993897826065154461646282163195835360637021748706841349548615482182446356253559587798414405708281578648417608249488549180877225918793667079204539391680186063339378383384189596280547774747856485387313951603872021438298313051983277819286513163032803062030850304473645299686500234761642494827077798088699741730299468333682706789690239053093416300512644850138280160039697749976505906306518238415056231906666769239027256468112642309789923363739874533558460070692363432912401335624852061268444251187233162521219977512891940937418234614879610619768682677876344709102263423984994549251506009778989844350659781862748301687808106475953088937616535550588348322626680876488918430582454530589470696028323273969352905831071835832682499320618678545840858674594347609729325761808981081455077309206640839906415787945277536676424184955062950795280143281638599990174510682205513049637054492513550424229271650369183753707679044088517408904623279408434798576735526746638627945992619262052062385270397087576996712415989123216760079312826597543715797394093020310164096571712822101414655967266737387549390926446427473765881969131642905259335110330176867403845923338891344109241066542806142684560030489029895313540588061411995083945244801117204972883416900067734697063000947592643143841337424573313775393618955481232034725590632801119606158491822637167388924380783479790893669715651759841297831048612929143417195342606047439144353067918366849539290805301023728837032265569664054736931491727011392935974403694755869861132244592339827401900368971493989848942452427855979763982240917762203856593409563234884023638534983634317538949415407599087806903372229283871821699061149467898004256385721910225410372945228231285765779879153561728747731700040608310883864743297440910949215553166011577255423813783718965355723626097887235851535170918448543968336906458842366094727485828335832542021237620309101399670230282752584384983229588823682926584358252674962042009063203765605650063545058982408756213090198401279905902712772134174683021532711540303930294176284907880188974433160957682336859375056173665255537361530625019992525274220283250589075346912088538407092071128613546932788464526041137073021729418887264169630626242635370981531868129259735955224170251454198836699305521171017670658937928184578945516763187741156771161659285233680580698634667232657724222497917679253870881388556718228006195040021130266589944173502324639948270908267439257769758167435773455219852689246857145028943680361125402749650782903724082452560041971896510977719905982464480868298863699686576584397792634115575251430679691761383134325333994724574245025579701414444024270018356903361853828424028738821117544609215928722471597514198211719374023338679809859957301821615572544634139808973544581820123131400684516359905873961813431133620803032960938910590898442228863176020882468047620215415793962061701842930189018176771663101527569185371414140280877030474049281164190137503237971499231416741685051484467330684660184446923696805465741986366459495132451486386747035594742365440918670945023167004635728513673074805232838663278898925751349737631177014870475229100131196057187821202262083973027364812475569782409291504949360974953438243090963258126324352375694219531564756803244800367542507207678472395066093542285997696398278908862111990009073266826871760647667878072437192357603377992304762354021951828618140234004779782936993995814116044229746161814675942134105703960245501401546415083964751941259482040147238123224240137362576040264946116959846070965547232300268702426336043405267327160077347569410380493314859506534917686056896756152817497973716888277499437823230970265007933225002623721741248797320788190003578141043433224931795321150312529625209937894480351724183956255502830554679991862511016825708637158893914502747288274238252126308661749621758728808911440229784750972359248930972406628141288724301868529325134519996578129066713234416537353488013267178894026891652770912051773847495292923687348630606233085676417598981241233684460462733487376815561745953121406150981165064911661440490619338788477973680017604218758123644273852637225354198650148216145777452511229044831071308865092348054981947779214873936833377163297813230856557067260955303978490632415103920003612037948844282253059354697621521248354424706867569677248385618348542880172322285543643131892107746738338800216671171891341966929654658047584919775153009586870514250452611234209573583375406997392641988648320483934684963749521446151456946980125503802450369753617784553363854358021781117943164213029785498978943487617135532952434402443067752342980125063476832968392301108251987690915225406682411494799637696873060221285471599333790195317728358950815105973905180845962872530229425693098727290894499481288103671843717539169253892173566194046872225882958997967149825457702240951975223407182026621657921431138154526714891826879236974096829421134506025984468817284385423072470881590883946321116780486766661875518457306944435901867998874971318603692045321387669617762573069142941603926499660087452421920450932385192069244496945913945308635609114625465923035550916014018329720032963332396080457645122094457005157677619728920321633352387004736940730951055989934111685465353129594723901904417662770734141927932836246678953825627927669829659309568905782937923418387026227266006945883128582045769588639048208623600255372812568745297010220457302725183376096226095183027805851129014864147080479547606946197273609638090614957183538122212515847936906042746509060206858561664935063783440040061692369512772857229180512793042131847057913430477297744624250937531677882307980968134026376771199601219989669805791782208374845479185679855862227784772023651270518658419229751256336087731611523257189082970860418774074833304775754568540675217293593450681202731238773250171030124478794892250927083787322940824268450365098262561219776684236398465687888605827460405500130522717231578855575477358786333019784106392026306640251041850139380862655198915397765653673770979023117899917014344465071444319423608506052016104575394197465017365667083353420150593855880961558354815581013843624001533752061711928683612024626623135364419073899730301478793116087252844977094207607695684563413281940800797216802775230203986582411252327143918416687543139795278362013436662925332779156620439813279616905086943140540048495906224424553986554197014202967493066056224895012280631598826896713955115503273692836007338946109537388042962433554996093807570821049227895779880478536116114562987066828736222090178777256687482423906076487233561739237544865034775027893788179128024720066167836603112287161540811387028144455708207730550927327951721142137256976432578109849832393055157756607098364173081754060236681953595956854688724877166452186339461424714313534751787087451504234251544120458623351777426859783454074459904425336210612873435113360740505814388916257383606898939400761978133416723654174526712521440389656055846517422905119748654859572735970257923883516826610212540256774009256908483361093093305333133007124875768372066456398607412194828497648559398923729736839157722683120460549212757147619681673529569082378040517746140513765163485952668458528223591046609471772129620045189511509942324188487737535968322945359247993150429230866326528876260175673177885544056816231601564177250194995129577821737321494514684208974145113887296797720766320335356130050917278204860449652713547918174944105329576629953876816795138084685385785437139093388811894023155901211940310659303653076311264359871704983213750810078526745286459274324610937406208004571132770156003769523410565536597245654240455719142139243829659792066104598172300012805054620635687106701612035273628453443688138559581111786622068590992628811996094220995514393449537209632968736996053635405479156429868043818103092921508761719587600149651176424351145095024012922859718648340097552346023079723256271783865141536240340786140708675854090885669207910689416330081131018995490249020971234865703137604188820027502521091055197919054030557743441929985636897952467351885407810732780284391724846429717482893395981855212766942235467951850203728460445490921202778272682390706450663244105869884240018522849120783864309532444024375259130884896179068011160514648734381782055929091972439227072417692591479517644417206735499318058855427730872483033683800620607455245188191380720673525866736086261040679106953415146353756843641679635144874997321683276790037692751863685344448848223720629257675489941223319022943690676083960739679050062005882069837357010659948511426044834009157383883272661872719605645407126011999847921690880450959489591129675247571543262197333436371218223469341026116069042088877409983017398891982927787205181931307059690975541346485401696710546672132166209693653830238069613669906139762456790393764567374192118502255217855453783425322133547280878234951275776761476572714647179808925525778237807894158426967507289329485525570306686437932423682927001529271135213187377196989210295536052943524607788502564058779274894162415998738443524021393754125851734257692062192437425777761040677919753534406828541845592010200480918664107836317573703907297118218831493761040779964471603258251330547541513457906121665687585636665633181221173313490381563717271444370549997720820628104957963003708648808494729744211505940627382540745581712885386965845800695077079450961392294225136314951122845183992380575631781807284803228465458344462443502586995930966274632425079899378579053034583249685844679804248312685632204807988443110534069025489223834886132768527533727535950681608144169956991598217035457904915057315225514562915904544997709400970374460302702209070404067668610211723897548241388274115579790011722771417991221259661551936896092074379917327216332335781155453210375228845886740514270175018022033143468532942096576014134194940614825799593788136681503196760435565752375070123665916948689704919232928389968536625787165046627679194884305424303206891385291548066023241501928062567438359013811292683908678968488322202714259476587751312540335137552867405528943104432462590854957883762840167545536218628519681447362142355445827019493502610044308775224127190316151550791504736234447175642007720749555747496280021131179916406610914725046307295849007772266969727758509582656344074182522964550381606535858538314662474782700740396552059964311451686525729347446902684761158939799522391173796209301678066808076457282941485889874881265778244069151601682120537826049331966934904681807714263418999800571426372373747304006130537932327769908879346786391343187116141100638582831772233628119096426353064265851181824633594140121440194111421818586058253643210112907324712788146680290218142247513476281824363528472440892002808813956287913175812512174967479083140075720999607247812687988138311509833114288131322801070664046819280886964524921481748048126286181565559766029003288476339564178143019101926180588559576674104014147739951966598895685100844298805402786345838134903604181845296111197149613092543684819655059107324860045465896786118139399467483360130388461373130062599614382472844516677819354261590488548990308685025207142378434014586091874484913904755457885426991923786634061698324947373510874620197636895274706950775705266822371543464361184413465922718465147976692804607516372836708377542548621072862494257108976199187184303697852191735698205268645653345831809062145054363624637407101363481843645369898699621088630057783201709127302766844932403025430474427637600988885615415963016627243190138497430624750919170447553646604553641574099541941711638137669474326415312990830525918594243009285803742977098608665595384773982847234875583885067839992121761925364155055392636114964257258428714702614452027684537342176878457570936910988960394116123937976352803183128853338770204127013951184291245629878587964760660711933988739889315002625495345458155256605964320099528103381103310468448584346866483411467647146160591787884422313667739674147710203754852166337726962150186131354760059927814928217371792235802573327464222474765700313275295646646141311053739419548455746344784021673207199170026373498480375274999151558360057720681568220389182893983454952653392985368673106056025111402645463604874234602768900187740108020448199302537165701159431923747870716481739590782972232065274347841215057266376049558955252939013244149442059247982039499390247920431455709434495924624754228908642070594237753221614351644207873271082249532313299565917260055862292727855880222515474450449613169175259499517016074698422990650461768826882512082203365576940852831109127173247302596321294935687615210329309256265202636525165719782896641626361445556037246961582392900023794177990524812346954316276102757455254167481974978695618773629106956186615794573820117400101301652005138129676333013443393891445259543140713785288661677539318444619896405024098622012629393369421148232170171933985017615188608340460827675220169339189776955314712560173876043001969750926532325476651800900008371393351949411807783183134464258526978448025809334046043840690679632812550023588875845488196979082817739298848372052982514228157929987954373170214745944783787493732892031385103009753369080383646587931486895493839002677738109761633936786131990827109098952960932230112927100500622921109080616163177555013487457514479416473692486134144786695802768622019441133216838090547816038411409484970789178685486907247746938414810016385972078648470039996045877145040931306281088794409237837231936708837307195348548714179846069876337499985462203411720997576387082879765400525406323673364084050981657581591214788658960728718098557315110172023990950542862790705644401137753928683909019986948412982756031315457495436820283934656493507493950482209791589423428287648634689389215333933927176244587803821601507251755532945824378586667390702668658779304561445689065068275405928361875452142297914518459544154410848582297150323043214373906840248059265755042002324581403750776429612015548763582216745522596764730493839962605742763627055632442388410142722989700736044212422314386622579825488350572677118901079885430092699535158876909641686159352736508287896488113824038393347757468093624758156369305218703749703617888460177373410382601330535462976080000321674550986637132427126221580285573591178889087689394677998714443476822178376582817339930420878505320573801307765235569401425543998526186973600603342124171239289913105733394898730850900907034198092849304444005407816757331429967337339799911001643352309504682516218489041637740079883871254676365923810668783712110692819836030985153485362207522599324083007931169857423554429315390777113798884169325604769733754189814982864800318783092701962139425308788979134873349599053658815499370987613978784921714961850310676724779808903443474558707106221871582631291593337960632094375708883598134764417003311985891713918149199621187613472348045074424409002659981239681590119634520026399692675164711333431733246070730625549722464595879128283904605595795491803349974711649129868954203701699238700405577730854471624442169238701829441438655189459666408934133776546644426136499578026286016070400538429693161796346962961384520267349510150240241305657003364273768687798249466291571345431538521475709227536867286221529734520189171839461686363105567838738146713807736443304352100278076526662942310324086729591987506883429748025568126029396805233647069146224631869389171966899397004418218685594815585040957555878617473287094678609234457110943102275417476986595803750527354231734680333091716461986854226376587332375588926525950134310358132030167347874993623576688715745589106742557701460388151588112597092483781648528060230137631788075238949491816264913498046307899509746138918155665964546649520238798741787813351125035585370262361413756121492678609455167575100975835856151165164860615271452438791938510637077875957758475836957606365191340203806578071787409005090892753138356107526323590273916347913001831166024941880634656645692460079039776597772235438021700117162193878517004815075591826561073631746676229798496100713252632895880065973664311319439215152251631355888165854373396472610079018807377134545550347928560045964241983893172283722192401713369620693546660170090825319431680634383583655266666375992288364302255034442224692484275929737162108315977480081169652076002873863415390154094803709494284713347281828328529426155161724282199414925177735256271418578556084658413114186158709992668194630026907931547218372112485531506098822574132764042414120397042524881517497790687681094760081190886494999676385569945830794231786473367533212088100039586400206550005279601644575477446982815619826999682577092480930098393371468558352780593038314421458078033164229982132269018106784735622919024240666954758005385276374859812424265217319648499524922482069724558988967322334080818473710377932015896522480628517623589263278608450552712779017622967589084178853176346969746803040021385638761036886111352401767983049219872237517350192585081652616158600310184831783053118803646248683074276535337624313671520497962960354852455205957242857190511487546172271361536782023327325395592915307540385839136943148315813183196680502166255313451632061421138897513099540090034870722993394621204217566247765699597778643554042512986969909638405823809413832737949461428520319420450171011653676251943979408112473775564399405077246990298261835220290873681926945811318816685831455445983596936267531538232050341436458698525746958798327231223397105377412026608719053498805032055064019266104662077345848620784566339606342480024669367474937698590058667188866535292114991290529803140131038554069209184123550172865234586807535574101936203723949939042285506685885034074307470387990556388357714085943969353593118660813203075075180240007216981510053485137260938550455000031748380457564428299441004892986275119151010169748449040663663462985296835496799908449247366082254390975965222030022787796957348637468887173280375647864188055306170673585879125360820196033085689509343156850430210283690432140833826341730443623195037637827074223830791686199662562904249718808438521608529757695438299290350334205915047163589623832771067551925433856046136691201573405894008001266985027242610001312179298561844598899998368149847661411246196571529871673868388580177413718482883304957665496396479684213691108305612217098946146410570542852881976547301487124654223424404403536150861341890550392668526341932290008096574142582040582855977615864365948071860008073673692530706933756960107941834733812841905619766654924484024620848922596883480362301989257695883995510307945973904626067976208316984115261259476437286158248997115760456865508635061141061609699339324855469647504831907892851819785897865725732588975292718230274285548524797621584131421972096071964437882340119274123519132795110616243494005709155695937446338307357779393204507690929086023680932210569423179119052549899250337508376335382391981428555665481257400171837120471632965644731847279911253540263200613670919353620698559193593551275615924925232286195208790511719160796494503485339012851209765743207691500306404769661715780393978635872913269203689985507250008751398105891616336310060330750469729336495589860121558484929464285430860437896738273837834124625347072048791817222125869457929454275152058296369540069805174300176793027458576938956012856120868170173069078534845320150897157087782825590652728998357430432423721197048308286387435070660492082896619648581232963992998287769585623628076411654785381381852668469194875402033318019895647274267615855314509568715920792366334250443592475827656966063941025838970517128314613682065598935350182488506860080249642672349424368756320277803727181153138786374645078077291112800502697672389438224510437600607375063328500967408225847293345734596488863666037794435158630483109198988926119233650172869321520218909996916791659049729401656718058622592140582448601797056539555542180939597958018682235193217450564700407168404335960403165555455288575994254371921807395127720605824094710794086915662805066646091509264224342471443429303562637415098802494713525812598100216282374298365638212216296154222048320995619928819886858130313862010236536173781217746230742512354072492400599551080160037958273122187906943159058443459148427442834431559419647140762393429731805116847678273173928933754050256421061835553471334725411752746513344841363192346026872126907826075226743039062207907772851057380768297716826741029773962436183799283968643160464945574312322322898105016595694448924362200937944414564507019647042719582421519200348352379986719361662899263863514641342639531076908268980243847537338907319726263593604782827965269677959519928002702094673061481694908672709507207865170703061201160635296599273350953590013068104023259727042297398261001673972099373910298568168579730823539395144882460351429575629543370801390367484847699081052972428985628739723467070321398250706217388985109621329395299242218454340378235155634994378001273231110086540650511697595272657936738182784277099919132184352154511765097228808029597837614745964765754089984725003321873517030562044637983983619708275869934563993051709296618351121125436263899665475772148034738583156907733263590336486841478106026284274497020721254572211536684639972026948362493327675944809265821579282559017135618647938344755382561067209901931600093634160358887105914565467222817004860435643818029553345822435625840695371784892415483483860674537838735848207478538131238737216381472324557120804789844728453459042704696087304981669448935178398119752832119539394296725139457397845280085739538133754312709121475528264142097491199384277428323974458519589750450677469605979056662119183703027990709630789599534005940601025094707405844147601824672765072781356268223485491723253673816681877621682259029877910801606321408951967137967822154388183325824722190412127490183329609704216548115034959327735798782820607348269206037923367595183567743299725935537803848130107786993426117041476143928174593007981437936566665059549654532181033471317674964000877412883854285952368839710158152600765786610047476722741454561511145433601497570088667017593469201632685178196161529649425132772877206942859552676286321267944039514588169887993835907507106447804808242008622476750778435484633091091680025027712212051393530162198595023553252410301053628158529850984592810075272815988213734125308883089686348375089722934139616974751123740249873303924298755074292305014606592835361161590804719760121028019102125506299111075337763615115691519950765441288165364638663381380884116869799849355627915626684118233641771946195786174634622048398873442319953225384903457927725265795176673390228927228231640329735152487270712822030419886937949913582157891809922473631371982092169420910092051672352723882852200851477406834427509598157538531919183881149194313016049249695193863367597592174066061958655523509009798715522626230040889086105820247423167796843218733586830563089722617406974360706735019080798506859191931846647117117575379241013339967848369800921759067655118129107717143052599050612855545589965263469871637354859110185237156074615048938516160536808764826220111159777197994914520753763093276248779640529401663177009705075662337937119445351685873008274423289698034824281900530514715865699060260025104582374790773306655735494976079310350058065211692719305001069519148788752641444489267921760441392946808103993337054997037517306359253528788954979472977045914666638005463923499135463333845987992522569194044474011787774259542782972313437062981598524108801331042355311810681934528552337843710972888929602385600029047133847865390704723070329214400107317893632881136050015214266069064218971554601156165062590860363779785767615553082470732841440330808592196092416817487410857063960529056720182102566669806027717223069056807459177539779263161096714912148600326326831521017228554947188206053394567377100252345111821562521123985657011961436811135737747508585594136929758159950040183456794051695351799012799428686210214513352074576504739121550627141683966090567126150504590432313441993034205179068473850426486056206791461760815039991259283099507965131011732509044857150861194321601090017383458242669798993517529781157701720743963013140567305260333444791882423129127499791480378204788080551859524527344236735986360868755021726684877698807068987488120474762438809510532834075803523313711719485991891332163343407271758521075105997753265156605349383736603882362963749948241475191024084424114090338654309016037490744386129646830654753455657707215109457724416093195397214346710817685266209773080553122760336435905771705253855875624228876280800257466715642914942302260333359107280352468688446130706843401604099014362842497247656192951009400944265836169253470372637566825898033903048585385801517486766681469380120876793287295035712338816544684892493483258817104663656048377567454512932444887915864392638455392597754179529182875295961568606622506625756308477010823749534645398272207897870544068494415005516763862335969410837257226063160022122207830209663994492861728261721444013626798711632910092596789545996515100387841776901786302367219559132840766829892384021158520587310752466808907253733651893871574854191601892691913507364313930400148431432830384529717601651289297319071796536124583338173755459806467823576756131050163856816602043547499800246399190323810511324744645796393365157485527075963185200036483673412228157003624814042283877278663132534408975501079742981298014872024045809889251660620942499069950195801181449801978634462396976988105625080830584422924653260697773083937860944078965289921891480539940077848419894458536653008804557131590617919749475419869883263335728997121698712259682782487471961636169182551798051253335603000004916948036957081414981885219221010929778947054486778029567038904053950569271969285683126451615628763456189402520046589578097197358653852280937500661702396750896909809806020372876990277071517099102344037176778873822394080497631736057107214289159630165435802599434987809411256713737378453654080694573006906070191091994849162454759514911067859935640530490873782331645812236561539060803125766698892180022153642813292061505509890061350378479887767614453752806101082025921813442745576702019946133344396459245210621235544436587816376709018872491998578805276413721563290355320709729814609475023112902574514543519907505045812357120068829563432907462018360598563110769806044661177880645006839787271943511628959155885726944315795805532599076316927652155202411778646882817334216653118070184406718187900690804295210135929428429281192433071114045382358103053024966613148273854608961071304791329995421273437528733125916222619009018083878963428268492703500186431813154532364763150249650560638238822292872306485524439517361433615524891620965729803219924022182585201004476885778569920152008414537340297460256558263763550680850934050369755385759600317695956748401573896207524341794247096031018214225608574820572651935174131034641690598308361685935651861976014377696111567743014743056702065089900216061566419687135587828426900290921993272959357697796635430710454453215324824563411774176931329360918102722091446807755074174765019549400372743009437688057649490230443799818768791381233517891952832180582727343688344879649012567760891149782142312301368930685525716470957850328292850729512000119983560119098491223990443712766518447864724136339715433312738695187043445862697356104546672766336435397870670122826876122514350051876068146558198164083076226069844507595049437424337630139691868506301420740852016291211690281952510305608063456862250950698047509097128886230930510628201320887595582735634562150940685877909141628869816094977369327009241072451239475365552061034686713922494303714842059161149936963314406526526382140183887927765014512601527717645030423431599629207808469637127823551539729239541818603589151063066341601340312804375850151454537542319429378121457795348620288067819255269174372109887177346165843686944940334718223594761690461270553860409186186749246949338501055547929621524395620894591078083942066609009718128257868875412843867219524685016903501072672981534297968970780481560712315173632904624186867548711936139077281411388936645280055956365425379724574826533272446230942296286494158662785473943877925274119172582237384644722491636885738902466104595163111007843733815358040711194534257152027368361117531612030116749433693650127946599051267199918667638188734503783876522378704062069555330089465532491182904414583084452219833286549551693081650314296395024774176965074775290096255511798147950552040608615925166312565956408405029056255278934880238051125436059381133338210044286137513280364097111249070148281148646682401421942570624348856993101990068498599707490938382387068184280987315573411895408087079187901955145943746361439032770027786866282216315815714695201169036437496060205012468525928423189916647926511399045355342441577714354181911041860380509038819717118889110088426047646144207073545226678426973522669091572326415392930122658838557397462837532020784926402057828835424727602663691935051953161283872379226541596034925247524305547102140366158321562270319586378377349507456321531976544799311173225677807525281466600440078240269227047680239441653661020284882564956226414691926609205661824066482191094898410138263082711901272824915494710325296073310605288102052637912921520681824583856221046092134050771180218033817598795201196847988949844693656108260010162150413116052656733968274285355797081893784052831518555908334177143893619248555379024795876290851123196544158509241072893159282266962755024806394882727556577462484771271659901313095122720131797534058621715984464004755370681629270788924540192710207922115159487832966473354207492824766065681861265677669141598880730031366132613672412612411507305720704705416524524733594936744382640182547185466118061003027646206015462977518610048663199568464674643354255152504562104927373924074136950642204466228472770860413531118645991969264163938274907035789378535416047093581013550554553828767283322247457145055123167541151442582621529471053961606720733335566163343445394966902762184235819866619471108350336822921186107136751187201627674665912716308929825960150019702863275693855916328040613017449537977363482584658817927325286231745867768095793134576831733994660583785351578049422228770368936840850350572721587225133793499571429327735223851579649510492211525900120913517960839082690160545993291218360862467974463662623789229158443212616520765095974784814754101000873753324852458315961607808907745426902081902494305409915748452272147652257781711224398743846480460318991646797789853211902557316133596526506869329252787114133422798152741614542875077511013356574716139654281668370022895875007763052397128700221966886307491860600020126086662307103265793173193604857767541940339822440336911394135241318878437991493001988863402702622379408694443075289012370153507687721899012400195735726695731453387536301987519004321432147899886823101654321764617939137654507159275866643574670591838076726061482152016852580797647048645931527224482121170875859385906256305248184112145309710842277275658653368823278246113363823715540466607092298280359633012115056234459276034407514025796479339043746668948406863505961694225850280525618749593689570887527327999946163367558722667499965147142556464438174609342682950086891196909650028778972633731856965133050621270306590151422147265513988233275852548654937880097391834216136370827823782595588652884646462839481815197823526538838088382909189713308308543951176704658945420202640541307627764513674024637225306245535222522376456390737993674914074934360425607902319442432356935410560114268024748785466636062338225611031362672969553634170456161488942090467246530847127303133100317362237949405327681698925071682729117515326799424283617614457762166993207442262637093837362029187291548141494978110742364515015054985157825151366969929893691936985841966190105289017275639918264399950223620437555461455242738824442833248419271517705820209654611303422428104021055342924890744237879110618221618915534050264844936125214023917295000191638774425292519907238429756142320996589619835247208648279671276054722650670331523701897160605658849826045402336046676188522071159940860478094302589576231822554966788653998412027782191679652594588312976954403511303097725373550414071240419601349076241826196461918945683856249650422774130079840870098252445548357065686143473512822244530040934725126130232710461686309054909409502995311156047306504018628710906674489973106045454239082611546727601668357658481898285645863345454693853231049606122885942289590249292949363400178799037078184946707685570797096482225809231933693064816956101300059687387037566356083129677151699123169228568831151513297936892125664604012569592017140571371560115194507365160850408892356988655744475237066993737397364183902741172290440434835857966042424874560060389691069680813876102587983587853844749120446230117482270902401028740642951825706271672461547678231775383366809431010946901455448205780705493511881229597576379296007094224477113061539727210772462422664979170494472062715938089063028714087862105232591165480669801717588023858712679898456278161855579675176512053023354184136259718001366624880387563969689221022605372012924015925078612614469973578136669659928280802321152039582246712787288740152433947017211730404577061877050928225217582469512101393593034887216528612061180645162058849091957544079208864003587465975233118138047471137691004213844686679733392606521711238309901404005101892051042573180543905247014457178656588513592449991851678506608360487909535137053846414646013291304436612279885336980979948675680032829826326452567149212596202379555507907878877701909825697495820889549434427296990647560179561082610422943755514293517527374123538386127999197437430854804735935903218633737418617673162908219063635431549723175820081630495031629780974709479072719331828499468385294159995008318304624499399198138123174339253832017139403172345613022664260450198788583636400477504403752324547668396704466286930266614088912577526143749625021972667054490217771934198889105568649924077037206955257351139747825547877152097439760291443689556588967220894633076864561784559699023330965920244071488847282836942197664311477745491500073595821192129713373654443617928040920602168660188571146451022322501804762665271557551241958498097417897671507261689188744835732578017452705522435101983819719061181374823025395719483660713217357801538195560741564364863938261087950750129009351461062461975242295412642272843400427023822382579381004907588082932599273245381126019026238354615979366391046168455092779574779992660420759099164849257596415811054051613962614062803203892381050353715813535210887308454077942000910880529932783381842819792514364735344078965288514716006216719069763663349881456314155853077681893788869472233502421676039137037516228957103753616319309201077184358479471423385650397680587728670537276987170545844231092914058219685046359422979439810675894189523766475891221703203209247743576665420061694701300087956134142583433198854359329514797868724622204173034409467366660052286218027772414652619595828722439152618990781711199572062603538879238262069839361887888691506272446756126022299214475981833088020739362502600023702821330928641951564164189601801144880539382771799812148242882195083328978379908527142456042264306671511980289469548428837233033031713023310300396011604058856399759449310489873724354806780032591812205180136669500403781389234377330050724742722115056486137126363657564753340269851336589898393797540422585937660714244769908445028721447980826987931232704973873653940206458113000858505599280936415132784860860605980768974047668284413013358553837038435139249335527315949931870345994760024906316710852702558517578261721699005819148004503360903068376623826864542679823928135339658584377988267971305546193968604644759900009159204897571563312049838386709012367620302087627192005006705022545786791893992603729102497104681421380400396271252739741294826194079823014700746671196393164088175015808089607776096239351815798459582031943674838867340140994573873131026314982841805223042759801836587584339927573585576628670784644326417777792162750737555981062273932442337639188410826020198967595177620805933848284998718878103562354270184701354141855848567783294670168765983333256705475691883265229348428500025589647007022106743252022117116088566779537386839509476662725334180580191760724916625081109561231409869577880488399701616234037662760390929398506238636672440613367194645030042185999944072220232670711515273740900076689343722675765291289041304342793540864038559504493166318219414632949307670448719226628140248018084580960903887685647523542314016670886019249311569786029019726502366304425497893786285711144896741215314563584797972048270570941996692314866041193730461658221563138929005532934822071758936725046098144708768221693368750509777961848910119918704092827539003202927744971573291181281470142084574979104586985094074043504647688350832323379288374534742554520687596887620928402111798707005415833799311294150579874918293278793542632435593709686233512948816894789704458858823996842358821879221970327364743240306542258287939442683768675802009790700263106502984392830238643180747034659141145390029513149354207316586441930057530982937502529559615637471308234916992510121378421863382258549679905216628834289255792842470552076030200233806078365555736149579894912120905483573195367627834524153285879642201152268845126585260174023025810663528074410808108388184354294866209651026771159674751515381668455540449220235966180872306773921652797614314937823191985018803471548060248072509491378789847558065163562253715675516028798026829204003508960193364698892760372676133166186806461491358799815135084758320344978590046655849378065390998443286647373346506841310657095134843495037870794748076689533468473928303881715459916980982045025056041546393785020890224009775199078235103911933809547084534165114458167712623896492090312251521334082754360251150283162211906438284014978002811378979873232023355115290661798714195184986860665084571161597052487407519219416643641917939358930215932345396948897642998189857069653299847225371434341503759868962752089845176927963890241064318681216714677770631076456241818378139266355032006513357818507884669240001694789389729627988037055564942656150847553524910203166318578343698981462035708746848236640988084857183663312557552166990258155186518833762971686727645210302353939787777417309440189310749773480569092143539615200487080510136133575300551096795441618125983914469763858682311888296073996767231335448040351067905134837484494431852718723839525856371173095822248319935358112891916352353818635746222546421377844882236410399346900290584855408890500261947099011929331659360473305575576964223038879122043797852588830007868493999505345103563750261173170572882430282846412770482821403511296762360808401314426822447027981597375952249120558887432678527586893332722209968096765135171368505855382040165296951407737327146512196541259166746783493517995849799982286234812688938092988994422999476877563646148300379829995061511517578588956040988084997764551189908309139522676467761092888996863897799705892013816571740732293026126090869058759427951738248933489369297651472080926095704949335261362577548038700252153669176441930143186303532443356392595326571401572926048668415084503497324971448920646152962133337359585782184100808481857215625365207843277716868814290030197958759243019055761821530189937634224964620180448802236952349523903572712402523072767878183970155147278227205596227966302149677086097137612886013974520343596762975605630535789572350309315776200632744653836719351852200103449257342854382465474313628842404258222811901172243561255593598947923155692080169140806588344847411576081949780238779727351099016630970624164736333658679988977843473431441109321469615177671528248692440384694013948154884842382866134665215478720447347779383039800381881001513422155059651671798053145855533700863908188798661637803144881507316601462877664035393907204075135280335156156678450074316167365080115173059218901941329642848960410809653635305738844807160953854244776629880426509348411024262267842653805456414513363848719889866617398902575561959928999767332984573945959115866771317736233669994297977767130504873675438988067366435253412802670549474915494946491345137933262064957877123391569143250766338700616077457509580356487801526949129719074047667321984512629611086204877101210530634926033746480346878337933560440078261962317752288372486855098150066558093959952773186607355872871515740212413605962105526466552802245513195986962412510821755897456254711852638573979997760203568554229350518649414485877060676609428607443066735338732375998405648233454583262190473294201840969399608025472685781513496366729596237221823637067499467826830070642282188818825271796697121378317304944018928831059063267205064085465359013860276346240449539331672803192416737045539214225608849693374224096648720836607560857268694830635930999563539621236369641090009261540500119794000958017368965510990353377147807072658270950590205129094969119783981931801425575910631495046398655928789894325166827975524417460032387965669127072881627105913716123012911395711264079322988577401999340417985161614822576695329646697543114360813120159243700943432416168075563250522123587202635181471594791467900262211878568602816216730896674683747827820280420079358772550236298220255286010985104224801675632346099269443757927605217994759046674522562220458847660185247763173281045055967573002324743924001200307451684410226687980145636595745300835536623634430034343163473905520035269324384863603486122508981851539005894310158022544734240046754542142976000884463024599195076838066913059774668427921531681388315354269197802102660318879831189048569715177443373536935069972132810200062334564434257168143176189006385374029183653206489441829113267252276807422717625946334819298540795552424117145523355232961238618231716063548561602523305823476834409933559471015785939838786418819956494346643753820145075947035439153682409739797207255099266963995128707767144314772503669413123831535757074454825532214912223416071332224331947719470235146072948566934144491098451910873591672619976877167842249602192046849684385540748043507773042398021072324672575614095773874695709369793445309337994005603530064882373922947668713591606513546911977714551509809510556160631287437108775852317451467507406772652805169450212947095411304116037600518653307288240689145629057362602909230984294492420014927360277176632792611715756163203069401853973510065961099316198744602098400491442760341393449974420012965459227071046246760505363126132270690132941034826051222178532246027759769867075745249260269729800252898826785288990718352000589255210684405069178539276734247329131793726706366981689738051577103069738693919124335586407278442594243123952245162750308657887397597775099204322183340937800900781519049462977099814527075767815999397008674699809808756770010192154548207071150588331375214839724107218799988019736323098285419326101221908886333398270572390963250377291904927162271230294306158570192090877952675172873048224876769497227991146329782910068762881587624905270793887042165940709031129190633627495240200408605649970246452826707028846701397450786356116706680676449245908071170306223092272873181292627252694285068409917196006600637892161897424272019721093203766086330977313983936805897575988572834752686749783462153606050283636082514566019320880923341592083888469359764574887875815398499262930794245800982235303824100973779367102516092792212772450084787020468435493999113974103455956643553781424461568471435951971100676043322909850330910560710352023884252016708490564067989661683159955662440844176580673819585842326795623731542742318927791902955771578454483011973784268155953469196518089100188919192494538072759568680921162739166420457165787147619586018119779961087837003586791977646636161411173852782130018234628419670367266116680326585270826152837853940234240832108488782561401572286892286305541153149640353903512749495114238632922840351077128854880229995981389655761123076757525297955362730592498902569547363233414198792795702163073241778225780140524698361252574319348417917724994998345662802795736298043482083375686787855549797954930870185207406813821289304066415187062561645538129142538994382839660281349269348581810169046494071289830208866160756649311675988286341040108525746416599662790338367164500124615487637481543716578063358466562539304296217824003613413377610678081930235315081056105600389699725759568720255503662197944229834658494259515268890710695367193630189197111532109416437799192479023817758338233905022641703178435015954503868156530966042300701485871720982795523437607411813699073845542786811009510299507322280600320402369064119077035310322368157311733653389913647301510080541999786312849148095053494483234076202379680584501462586681613203474072876304132027195182563386135058978872077915760974558074779183221416163763212109632346869255362084494468969178609921684322230089150656178727574840137282239993823705021382346552343529471270487186535329333368318614933092117515562071484538776860839373223595253064615767876716236503157905577735625676835177558519845095729909566172020658919704166478094913527754677447194206586582466806904852222423917220112673009172957990979028955676238104308191634572129573258193154132131842054524999644441635566614359165093115078845619581434440517099427397515343754847882994612911938497293212187499635698796373930170047891556027657962113676985902663256138622462322996764545160475173760855012970902299291702491196630018789365578476178588188491540496115838712747678572428526507108712618132227576746871207490836757099951514386847288771401839881722287902905806066724323002567976057354061449920070012144895861968728274409744226738457296078729770151660996449606943430040258463731906579095713976128258551811642867894079403797473519637960261948022003716225125459703195436185125553666216981065640464869901113618153505161410080368046709407998362988438473799161045798279119940016547200250115646686951945083715507383477552649766059267358831186929971588473088790377277308494665587813420217236191035249098021026761816110874004133787576665023295362401052198153034924302446525101480525366538301441242445492545009011259470121930601052098227848348441556495271825163688604347447527981619198656241241766039075348069350087648937966088200981959537664382152494390704261603786820267443534323694356610348045787753390847083686308556783361641157382779943823890461030464432953852996216023253920310906849723599158947462836127910721778205013367982692165374308171475474225408103634313077629553716194643294572046837848057726645284999153864820679552081141289525311915453202195071305554548389637413543531492263255806922643840655091168130425435803872450604675309906816767497039593153318193081744143835631153015044685428190997199169803937766328093654600944120334823151424513263378404321809058609910717538778896423075794644840881973820111269023333834279467494797983423074044135826559478460167797887644815588319860160850270427386095460365062414745794579948576448288352802972298519894824890035146381220115423754571813864933879165943925586363945390460247430053721591735860400759789379398928623302717166899746729339060584357460473448918204236012337594463398842296813938285183547408132502930276306305797729329149223061306314383468407730854445817098659679763020284594232289504835281325115473961275592698395445380963690741642949343482599471268995480323736576118873453734343100478495945017949537760858931652128559065198131955750461246275441411182048563254261966874362166173457300881376934585972900817959083476321309933074650335192952051490926425313873007529588218347244292134627003734474130566433373601052857176805667192833506292817530157233829160658346621965166471207973281739238572534948819516435518659892504596572777007135020774770061360969535861801649187768134545142661143026025896053094065254276630659571227577242341680905369268819526481636749610219404178423120866247923983798372812790454965519725404620144828573618025083074303990381265345555475207655182775372291360871940123181701942850748940781038956124879583343361199241850395942305083754326835328665601987838471437398752521400864051253348684817875100656630513881791638911073543820264157591481123742231612904587400047021503494031053828788405083322495286249566343939906193924374134172227640370981577521966330913081667411695872018769176087533746216627629168325557916696029720238781410417616564987815135551444508131157195250298728888395859080334646391125070303733448526372421041762695968616428645309609992310225905556766612447045723075404891959525548470609937919914802372332476511694366066592976866333495877123150706045598204415229735395492615217976853332495673981437939302018842974672457210227592769051863721961922084055228366596100654772718017737799262869272104260724476196078801593119574660195919953534652583099057384063151449216133660491917299106591907916090688337930515372287524465194676208590469149692002214277769612801046400804447611508913189991855220430018001971327503646908431602825130001109993491639809590211113535082208167059104387512203004387651414141403889667259482077994944063112072302892564583748227281271202038249435713623474679985060604763307126318322498711589818635086150908258225589542607132993993137194993975720266066292457418495188238370540415348184657916290513329737595006027395736043569891296975956874325133652308614736519421016591258471594882501863308617078896930454424975151212681507704291287478408853140403182776811829425921791062221913013859176873763819888815780689005611420803837690955022160943562385449988341648709953485501860190251405928533229767908461182290441468567642831612908775810836305761689143194461520339744979436338152725793283191002539473763940554967383510359427733605004887769811366458939923214587660159539276428282080227298241916441872143666794035699961379827674555300988020735105322964396994355759559753000406478367294996834063936313362910500067405585305622673174608781181634718189732123740203768977678155738963017259224983460971875029702524620315388517840607345067768979277938927290113901680536034061490250089914559879713379303697791615422429797338190532906409184150627173704786579494052800054180950264958161261131826021262676948385460471912827234956015629438921450316599944549462111489246462092554996355774194638562979856544053437186485956522266355029912028426611689306138889833071877074775680237261603441076939088061583592470790739656030720166750326124961716071432088351497948697578853374791380136463220905554347025506858551942671848470918795354173980059556928025228860927561150509940648233200912518049843880409617634554984312259180657357043359570958275566998433073364024895512849913627196493445278578744693963006690969931020990536192393295454785531209911424091994633138636446722425108253180876203149555526407633887418394086672980587848179229314920979850347934437334175842070485138713097892992927840746736286433954000543341487386700382003016619347507929311983354453116876077406787425761715039272907686473610724033486540876978549438265059709739665762940911227332701668182919187179925152814317206265176129579038920676228194581891577971604446619099695448870215202965312486067881520465981263373511542812979690167859378770474579869660347781258808072781738198474110853331239217142859452118403480664498843304013730638268400224821375937026141218625499529244216274112474790306507428821207912501535419482388457341711500667296877702739147698764192383974138769725533385451449157845202125186887841904334073050857481475077484145095748683536473950130210961550652162777461827832752416214069189730201375265239024372296985783727803450285342214868319594844888560628094803720072171188279374077582900149549175005119909546783559610081169256377037416029964551811960904824159886388534333434064473582145902217662480456159831822919318059603962284319630731145726960977884326937811854092162852562736323601146984215870904029128268035595409004676516319014222122124096867682690102830622833244351709429191043953732999393595625999949125998549335319283915872579954208269350075125124282026921305144588980497595037180029133236338619766968415148110936637853854643165287048043643074603337182569657794542261932525048686762662115911527143992272685772837583292650051033116634729060294154871208850540183967341077889561929338145050551095640768459383226655334053065939233185437046055654231720159399826434788067677632014040628650955011556083653958141439640397361311622439221966911794245074389832359244930212203039241467434783423560052346315832879268026265358934926120692177025718481444467693448111907510281473672290898701852110331775979052692112970055152995507712867029489520734727136983824794393835402463604025249765768862007868964869438116671745931228430444945806129133488138887109108073762783437765474860875426272887595644265793287177430939548599052920008854069178060366703035415759360011938383142000557237399637532465934063576139940624594703421635809255896519356579774862726232032365676900521013383636913913507461256442846638216450863334256780486780796216257385195237334578507989652358719050160611341152436831125123413192550554271511313882894404128255387637165691390349014616426339362593991499275465350370177629134018838205503916926098368907500492570901275603758538495454590481711557522715961562658632635493769298221754829265120461054737634250802542782631687077430690591728963891951413071086111791389213953451300151029371286134446076865128237934808749630982903758222095523891362867475440224718616637120714690149451614553986857474900040981859706377029732218266166859333768872355595091288880712945093081321855306437721296391384908597435092063539484290832460902009285781813105761309842229181427622185180821235923618573501954760764960803527925634826876122344952781641941363200868765458806541497393775204401202374156969831962719433229453510437438154924086742068823801542125584420303109081219730169399014633804920571363035787597680156450221390728925754667388303568887446206274243310338151500877353159971367518212054260396236290590054312721628893457317819356731013931417485604027325701197821678755126074752990922332302627333566789236396052753928089694031364960880690419196507729932096929960497609747912004733879548906053020705073968477044212889532465906509459366048351014830994862031468329974434922294159031488365167176796109733412040909322570340591866583788244644267143703693661526719122299337637032851698008946329705003672400178994628771125385047438743061152727281571826754488373377897261116707579410150343259696910315090342919794411421687940876226026671262810303563420783528156010730225873049032704310211102408417925280895249934423489112569482199833913538033828265705245598658805797695342231429529807596921065287543676891938540029928693658478230426311753212434216212346792483398943597010568420098897480114468058621478862734012414026343888864363796276899927073970349354555062235832351633525211415572277783545250396454905399784770141157008664001453672459007620592761318022902462938615661465866649384146716531459313286300718108067032768914987608536517107139500960036050025117476604314470633499110371369317826006190082580097462816521769097875416294995527660354276170651199340682566822144327446394558417279891388462545617353777359052394950707713041339688660232720235307119037613765450021984234194896021432408867700156553888971144934605246570206877039552270422227589702494665322763449081261646941480709970876034503763859159981672105022306012007155107282495048793218377237635094744615825684251177726336211016266513511525577116432359767135274266104732714982994185687455697247444584412955243473069598075054390814796356810015909422450051148723984575069824215209097617858129290929684296909823692585379962712981221201327155764348794396300644627075253485682572468930031843349381923718857417262266903727047483693201286744644230145587748235541286019784025369814966071666055928609302364218096411683517143031733371818769674828659821972757918158295695358665627266418138762741954218464996718587534879173863647237987939573996374545909714921052928830273100810026823350636506135582488004647773443962279611155996836435114788930049061564003728041980424068795325663734496175526234064216267759233670118479621173817891362359169295631753032178090171250420433307305519930125278744357662619780080338083596608944569031821891495228185876368406158199379730864167997835934284726343928576299283945084053883363763831873114665275576309095185492488095979313041216283988455089406519117851961972017558997435150880855395344320966536983032103660559197470734520425280889495401643140241979373302509976845159179349798984418962524214003531781545099355610939766571851281261399984157964581518501628977832789098692946803183587200822838677590238455336264579908800795983550722921292496455232372490066014536909114543454500805476487623405196601223983003427853414863342326259589952726610003651211395638042039453250994041659691149616384268519905865687935863808351425760995237267284412336109650250359571415241603720005843970811711837212405358199430852118750960847265274675781155197921388732070898710423063233054396203247441356399405005389298420116194701471583327430124144747582547101554652818709537169232010923974902258693724547688124540647273605756396404279710387612040607937483490475558565988911333250308292142541845959377787609946818012470895239718658133534961469824600893290345823995562339495035601158785612808994915769662397450234398870032794390094503128260444168172235441316851302638678916445034945186549284887746878737929774819260307096549127649113713540424541046566426137034667802937060923022388176607510719383244902812442934070985763900569379190460906615876393340955940655591585195830608660049463271993238260175979330966856910340520476941091753391292137940668786477568219221816678902042119757168221465099144065564068192217036053181914382907816999039402458085192413007286049585028981585460507231602785805513827648654162896684721523727686603560999484732952838378618864121814741733827914439023603356625198888015260673877379202873980442017114658958717923487640878037337000402958181752381635374075004705156167934813785097462579280761521464820208396666583080914177548361227619426224084012317337709557093165870542688733414042419264743599478289760349878504124938725460970590158314943639708302105087126998993349690285448475149437122022859564835602765407756345453316217810844488396040316299491020964708878061138158874518648389852555006548313666428436771415051557867127604583232082805908068423003552123038614399692743360579154401652828937414044273247376977299030849011454542711641109943785786590696097387296001700108635800244119193502430600612828185224230747182506971890909151859065349900243061223730575757614176130728470087436291209019054860135319792836565930807319394857817895076493143420640928906138742846930854182097277604091541698219794670782183096890424713221630847038613888044575333707200455150016357942512268522830384766216593281263781481165822694764145664394506253260066911002151343790291766319483286983946957861340344756382115115737694107958717914433936617989625272040039738672198722039849096124334026236840181098726704383444578779279434001151771795516244773816318450204807181719330624706806156951873287602768597738409072835293316312497589354946458995228176104072997450252110485198497888852803822638460225917258169632950508010339466819520552931089081023318247168284793294048919355716407698397868395923518210940308291128092491453216874165672657770571147591307714519443418173072453925051780642384478084372327698005994567235224621813005082208048912162478548398275343309138937727496071727813793028512257413870316272211299288066377679122119433472426347623653361237496315972366402680987956864420984709353517059045182779274050646831337257775238136194599164681318926032697410640931841286746137435433889140862381551476098353663651488033348607714929494755360929853909295167187210175953728187882285736642589819786004237156651110226283694884634865300345896005789440373235325182563892360628326553130683374969786342384863230002890393136459251195236511318034414948638821788329781543406097414027812312694173711321724227433340491864744838317638283717408051429850952119978250947229719592049420685293478008119351978970000608480032722869320507856519635903278377410472776755012797122816469781872776799673072769105982318810716459807678523181437479697910551960688857243240507408508987612483954954621464878636413179811941516514718240411661647226581144283851760029380224782272085320526226324671039919845275525856020356687997155999654635946775972644596479743457898720527120391830187942897517184627019216830000315302908903722372340978785015782411284399922161361430925703303431470483712750132552707245571724574080991341063226428706394227168743200519237206544398547827238591237539938682284622924861915744066488361547813182854967761549016202450036098222938105168219939011361793376547320776117700101611675680602478684570896028704491121210161908487205196662141166221460628763369403854338764705268886313080681616240355374631409057769118001425198466666399244352392106023239288726165669235915823450052596335016459165894760992011936775217175989590727083588374654291181915107690869139664220398722734504524642023158553021070684321449288849950695532712808669954754030530598336636688192196326443606577954049627203775902558217396740248039629976120795057089531164257833850037232752155461867488007522863493745296560042751848706142799563466955413824887880580124256835647019341079896988845385514877243956959020024571590653742176847554984653211998231262310740046648614202424885329330806136550654620308865859644160978657004317001920302191693442921847115055064869801530202555138020095480152180570769067464888433055286651722495825171681320412822253389175057084548541190433765993463012045618107011028744474337599981664938084349004376243011518074130204201261153200218279174584232502671808590030510521951366095620826868050192778836416117210568663376255530463378504137065140172609667695467589975274882704497042744714766758728213004259290805543656373594282697172897606679067132299596275449740687507828948558572741273034825345945704837205343517465965456585084312067122344892288109450498594555790423697764410482791475386342509568443186978645693821344692722096046841142658448525623990081735524342458733090074530250189295274778057320407908413986928396811836945941327636553676376403905347437077869060294784130224749731786526680530780663571441169482498246735695209565109590181163712882576885444604340673772146522990437762884924047897600266234142612055588605330772085040969090316880704792670280332775954364358200585119992273258846383181607090146322549138238966236408004623083814219986030512714318158857493362722040912650215750803705033164908348336851495738965437076670227180950951382610287644061652225714634019444182202745008743788294940099224258835829638446141424536732288802629742839439295349020816103076368747693359928331113122059418870075702255396956623951181405230539220086124854040317765082932472281661331207191034546844656135629653563426514046913344725636776908938718213631529043868877719031825795931695743016543607398166219273240278377242983989187119152876622983601362895635030334193213757242272293765374270044297143527708789149725271353671276142588457569023298960424051693752437569623192103089736694872485717418018588120991096226097677648968202466853302698944362935842560498023561601961737728928795208659657044826506882586176312281726575337700312825249555169492471967553340342180806079125645308412477584109878138528707863762405678498956130469442527436306661252715344383702328102904780667092852671288046364531278657113440966081484855552215983006152282514280368853332495519283554851957468747271300003908532005496443389803064391265832957586043305756235019293406008848089087475619710897407188956506156443291381743419768921968515326835482377334351638584401949395584823651345937409403773017495604218191436270017582359566246783972239102943481487414334948077843674951563457655184688752638470533533957277307659288209221500820913084647223265771141636357860009088557054557518347111595283191825185258745043661751765183596462172853562457127967669829474553971290288131234430941007118786866482379046791275255238681714233776370050029760609978326710447510835395549062320103959327927059416194738744249181957289563742750212760237221427936678190452203650831972014211917721471522812092787871641098039820915559214901268409074319398652202441427161685483392568422157256391849683060764708212046661367830812101715895766798441472042121276827240858198057076050984155449445542529991255873278953269563993416254021295937532771795122730206939629216842026938524071701981711566363371849426485416645337732295349075870326996326207634902164291539165401644503083207456061264311133483078552616862697692074550807156654775651640751141930605323135120772999687099170871339386369916265094621629410598552092553447629692882128851977491412693699861190941964155950969939821183802805669625312990117182541565426977504705068339865519887259884595835062684931007860825632973494603096111389573246930510458444919246352420169103238468339430650119210157194329637176850229372362617640901303997429579995849105869067674796357560955572030871293652295723401836041744739756614102508454684043516272691244922250746513506415707189580994128512002591544409045462380911728192107056171802805923738875549778298936533152944969208425012628692655894612417269596936886940729521836126499199321468928653607340720236086413796008869388867383517909421495945992909956558343190725170606102278203630642325579563603778097224543695591254774107234867905642188526219459751405994079075344763686204129462231720661725445547589446683990078522311504679131274881735029240924958476137868619115270373187954717804405585990003813468772567392099331957111189901387203469156766877034728541548966871447224254616319406568006131271198924998731499516182462427508895034272553386513827334559294161057273097479122361767626863921496263641493425337530658403024710486542706719678173243585932978031856461300088265966489750763616132903942409507373689813619947315676228278124714851893746893690213177519908887171107560911717535571143184648834504014710630432557393278572469297868577851493215886675211252350132304607202372830808766848728535831038408210460725213376569646741262922225042850363744647536047569621074758771100820462758268631655303899161773697612914966251409623275494245744359249625994649967766417519108133187253091234041035727578361516601950504134806622491107355372980085509345831434827332915909380750541342477982429019332808589518396047518599617329554897666525555288103335289168562396433219074764992717637126508782746051508791629734073512117377276785921027706964449460759364022738546767368438885096779067770773599586723045898820668176215396327302592231618014822922798027072413544894147420395288312883517940895205455902756964916046417797404063482800212643414069612843668583018559637579165492417163407955310299014488204161924232886165087841327332780963634881854713405489151711872199214960545946727271010025799483876077604593198531631561221966726476109929679115352914137879606409266433507457969971147739612946281350289789613595778021406330262885181831563479419685257003803761933442273354519919053982498859771358870364724404535004042468387584239080099020610628839761036459400993200673108866574073409970148150405729105411931922470844173712222284795712031966947441361149865409276059923199723116305461024608639847950205433783041399972052983188180102483262875790075552315094446058264936979666781160520365958554278703498029101630411396444105987152675476255254414935777222729727897089760947922972422216590400297562982315610946132521299445886617941233795008902765205234571908120677316398448765119376708506844464931406354414122353553100370576020072039123724609168052773589102069088768664510758000630334636171114937551439647478907553847277509977097591537469373246398454831947865210163638280836915222969864846746221812064426190736345703751914723445454882843132871127873631098553716479358299227827588288597768417047942996391730099555534888404802445647055434558471074501727998923817688475958187165893401812597018334091095148612565915366584883414447501106584194189523546038088266200904012469868483841271021766502156949587914751192761913341639714489920617153389254422884373526822578509775010278586523383014148622595045533667063733314941503163107561694293861742077748643757306762161545757138235448554612664834725668152984430615406571692668697753806576518866928355797978958845074500722623870648517761651980233717452617309537893362496148663154314949964116463735980738977208772165148274070535465999354186901826656661304559266411090306128747413883362443625021129589706547677096206365544341231103061397945179297902331328775967744072391324589432261069649458644378969498882081727510390101455846667883768941665554139253744163169492977302172492376720986941435170179818780617844206584318874456882493698817979435670299742536818080455232683413627524692377271176436012937433321765918378867232602412921268295386376156911759932095540895741377383165027895693065824534328163807144589549455763910083225837604851304407247622160230602752423973211849132885107720077669736187705861627763487242496794267235916609293774662274776104008177939047556120855312192190232567925023008242415360268655391631036128502610942020566581756294197550093110450540884048808186017431471510775120002230099606437039774351743718739926401420015174528576256570556059580205058967460504706749150573998276791375628346113633263302258340570205106216234068367818769660851247835542982614104671284347356153096846357652160950463903830233719594572293503977194393026366853588501175028188041740369712298473997350147605238144632707064532701362270603067274699086846000559745600491910814261595940055272969640200440870139812156892470752746311529733423656398093243921190471290896317172701179387031645827130707530314732327926795210170148668425438563046089241138352331799348219996027197113256273259601424073664349105395897012807940069006496485167844927564235205794317890987277427768996684899273844944518519557458006694406910957379677860406553747770517107510904593670357926368833730212628249945520950493151339838738329408639139666992243113425075000296125357593322541295166175608441184835666998280221319377853995204262377375327034378865511656664909355779511815787321652013981233793384422205075443616835320677692614043069515089507910775644359909734286686699168560139838902441213608145120417712921819161597505811914376738310575739795555784014289900044053156811599106037244963609353043013744543346396703167942211966423999191286671747201137869962372494645944969832315793084159829254807005764619999241105675093910193270555589504041591255787348339085485097179033240838487661672200964258468695121712616733333782472510849031533817069066013331092978279289468657754748391785551409105461031038705672068083052015616357154440309116325233237339071901292830365032277761512809130634274323447014597701135949586907232559950138456399229959422894214643234630285804821068283616660713228489549782971708600476193367915048150140847796320820146916891766258133954003952493066490656257924147611315104780243062044736244850834014314091576384817560945436924305651978567948194659760176084399736304713362871407141020829149508802580420768870611529428107170011429457813013424704107385270316788714941820166002167499533085664696476383876861718498895406715005653621360418835633203126965764289317461979230532231222327306680379826052457891265697667973980593814605396017841613957853997776277424355540110673340564927614169138149315978904530013827500391841868372030409151302029725064049215312878842910138369002280545228935318971460892967487157792145017081367537059355881877557561308865900255025951584331400043863352951599860150369232104618872080125809690509616492810286583908675480745456063739811658945840845846109699148596189078672104536573172533104716606317395130388205659617908806802002519148923457165718955217826520193278751877966305378436919402715203204525393978275491090212376063244325223922948668878360236558124162576018151694542573303233486333580325818326212538912332384920646381951170016895004763576685108085912821825940702254458553920046996861401196422329136974757779951461171464873726951585358585797322126010422382326806538059985400576881973155725557115809268487296682531500985428381317077941060006585233559805529675561472222465912157316498345492767210185336669687684895113365164542465014752031606928160950413290721804372454958110746550895584587893755330934268794480754555025598617875101080234983340717517990939088361428536920942311054124811282032727254473742587358251179014429413630833349858313999527245131185325918630383342723284780837849630361209696738461290673126202779806877885711301881185170704109658851500781929337535188446723121369082529272833018132860239527705502918191119410964218662066355116228274398606130089771552243191355815192868812772647379897865535683474064928063928400222382651718396324763803634940434557714821622136155399881358908476629818823593157850396308723605248805837856468837443245985052290069160233815920370383993966488529584715016004376493605698420415960350764364220820943591304523587486854916160147349074108095228237593861238620182786552583831838914504518858806460298451047369642890431918319507901190493346865977569665766389499763398141545468766025009308003944036399064160755304774572909948636070485929125788161690442520689121824305341178236694954176200207383581417485321488866241218604459032244103794218231785405804034305617768346460801696226892331181642378028953696707393074723455761303624755751146864717426574901942284655297830395844405218538845805259046764535778354994672237498232093990341014991665918279520909695360021960667286488077152487171207874378828283793721277180718040806114638405907969107704184234554790001422914410889403231879362657771730569839720388678328939563145265445106354655051116702741204697305234361115880540206697511063002532563979044085786476438637796814348540070251766968637393346715469699871998171125713907195014879293209143903832078244065901521319481942568231396827053385743018868257046702825534016551929624754349975062851023249681761788416787191273403356612133104828288229246532300833983103352620635984257548103382196108308178073557164043683109325582924496024303675926095192742553384153431084861585309306166887109130343024250365913049844529177048391585166075551462277230241808007140032862215777623965046503108106125334494085020157275532867224748100310550742551377328123721853598123187969171720977716146891273689233837659199603838754162347907469436781514243703204624364793717069776853102228229216106218216015104701131512139482962875449431357370827708092282528569160282690816959233211711573412699450383324249964636097111522885080215195523656360156962162660725839958359220010414237658114871766972179947831229484307127449273486691220780756450105111417920891049787549977540588584530060758999551891797315093026977499930894944319359229019980240451503782072843306112598527277777850739328822412227167197392973512812914649112584992110507775877716081680371505386799970872881501105430819217747576197061092295546072933485374067338592916243932375379755839837384138765359845666535366923119251389081532552401710919839977056985270171690504562324969835897743772700689871287270457602418248671449819705482262078947660587452560286081617397884724388294111633427256026743608331258747189173036649548079175510062208493933082348370738211009968662878550484454570916992789395717496144992651160974606816730391457847532083778905785475233676403015852054795958989830673478398630096015696184209462383752369632487203204848487805025734979741527923194673550886827155904004170669582747557501764405083582991019508322431330885542817853723754573308595469584649957572164350989735530285826692944587552508957852348930671061593605747162830761313406681362683331069934342028043268101062519856402225436513905827815502226786155992841044980799094782682676452659719879989351971224852922495769936877967463358805491079069102783161628659923394878944106935567526432435609427378010633350049885490895414631549851846025525407352807617792466239397166749303674695128061289085884851949730813840151630155620033589211342943578762722391560545920529935966939497373510301179356190310778418597293137512311536690715605084582502567448605560512911954459413436051679836362516248335293603333310093710428359756533715932992273405223848730075508048432604659208863513718370392953260944018682196758045922427030768409636567634406027566170064624844356292387591340002427123238633085092961234553730826815238908069501380945612471298597895455221667454037363191683883274940302999954001334988371363259343791668984368643824664199998390253929704948866861126873054780053176058640993134949104913148688860972468499481232536125359839189136849084047242685608609258281238786628526650067622095102304989158452960355069856081213176805064486635827307954945170472748654498965039804032408702701226004157972142392134792362297553039138868036769505379777763531747657095429841858888138576909628327699248132934544246109042504842035014223768581720653372270577376252594176392525578610275910912745019238599084487352392427470239359555024639604762865687814551199915939614225322260680506243748087506174162976712597597773567859781765611668588126923779721575706066711685677315018063037896117474532472839493593525341397175964672360054949345754613982296085088171725132454805899127019292100289161017288151253675624193074825458699518851520995883037791333527926169554212452647882955812935861752949517494094551957134651250785470742644863471799835649450599836463313059223684056319338710325451071166128908804195252099955417019643105412569925029431508612573597618313203072347300246659450055028017069239919654852695203407010334348210079565893334160041309496223886128336282304162092644539444246150974529114087322995846810002369946451352244570878080823047840242317743610460077414065224656465924828898955224285496842486850667654980795234364427540916349280876902504722057717260145484891386438673535834137223630735664017313613286012636672946105787706860238642845924655487269224151499899392898697652884147490744259786244001426414841641649232673354260924381140917004368280068364384152438851667125857318063277945568393131612047590678739489504011251330475283149797403916339412065877701429952561745023571071549039874129044371131572770409362368556014601553463123785483636786753362469217383092256608922451748083449377560793610885152265907588836192762734512196845803898039330164898713567202904935517585173667911326160281477508743557984869400455840028453409064392512544157331230882959203847058506033310682497027536400886960655631312384724332512127794578728703064326251002691235974662309685235255092387929731850529652193821229216466875033531482050962195769777268821144081121159781458546136717739035554114703927085122867106130446863276375064847106310306549233492222251176547280668743177936403202182707743217630382475538752276044218292325972974541707012326090929807675413624842748799648358684285994557554051260354880333047522242739039123124570061777501968620876536435365527725872339825831014222681927894644895779712579655788579105877132464803488932938677167154257088487325718293022375571942904704318643163227322623450970749491225823634658753282447124358359222525997097184279385528238642101029894855485606824134214950071431699019633178622299364473155087719143180164183994269597795113369893908625563207615696108341053283809935078004902059230293406196133068043302659607805826555185491711901022078394349155757082264230720595612163289105506415766391140423804112195843711183526673413020427941592398148246664047599332088450968791993662056802074544387049241797254410714119923010480650922016876553344577558453455840015728374716772741593479298644007138174300379138151947894027335028120601136534553112795554890730695751089731488895600133390421711976268539991201219892622433722709742505463690970034775465622520426062411972811281775475215527044717028109891139175918887429920575277210074810187774497077839425533244531442729605239177305648680302378982177848506056975335620271437021772276445623640586918541230052818662128091433036591243176526651566027103613087410392883470626234960699754369209648637976488231485712518938138259553303756417764709607652257669278678077686013860494955067714129138786997728675971963219241935158484204001908189107935589903072052470676948682103283679752649737706543340201200672783397151402048239311331221167034114700477122880640965179017317095583170317255169928678607660217136275756021559468697442641583701264561163190045501046792029626235069579354950149600020415351215311309945861301495346280805620849139978021229550356126326869642205590145881718215834170372887996626439802318447888902844247332389101112195735862578623542978625143343696878056485604301985702209917052522710024276051500573549333236047962498636264096066011236059451997985317171993613105395886281993053130630406313760926831313161280816817178132407288983692056532783032577590360367053536319120418885539664417063099380323936115050527709042545297468952325748897110921477583687190507769470652582140959610445859164191627670298430093679967066946353132813847213331128750800320743978790559991307520357437542201289067357437044863637344880098211012513912724611083765114216485357206855367892795990926900298967057479628518408491600637266307935037914444037964829708090700595045485043770126241327891693499498739764021211951605882328465137579437208066141117679442360452274469106685281609352955795061459816341136884272495278356371755871357893207178446651887884152813456186036309044046282057498670458756238283405234691522807587640675910679493672136402108625019104578265954990948110024214281978386440530285177479146723704817257079812327007499767578733170995570171544055141883350921684736659200224071319110389341180826434936390519370935852269532825471642542310116921628507698064702727128372416373970964383071114411561493278794956998400208178312036663558336952788215313243448049599999917267802331012988398627855685524811473139528859018442671496017227764996872190259244628607724639357745577415348356782644929145749693545090116524786082752833272960983296292772149679741687915414354045082752621900968596775347320324664564148169503729405862732003709609740076010051879928388754140592907847001183803731340828655057768904707974353543278038840559385747662132196295669034723708056024267654917291838922395383291466365313553013629113976150985240202458904787285046351210426095806468258278084140287339691973992754565656287137946230837468101837029196195125944187041940216263911287065359283513245454799361786171518045062159031006920636923043478607320241275517671067602634467576590323178041188736683306468043037300226498045190319725971478641405116319166560641393508058490381771300069163616873045236865308884413138045375330096077757238492684963883432501185025609035755927775538890197921995597176304721272754231932231742604192178585880475213046302640886283853733419039422233817046204517530069759235878359117689389683145709329142225836945526408434444902440342686128106397977354055645808488919524915651005874690018820430144638771427665085113101208984846068275984632062527341470943861001808257493114338911030442181778178254966256820365904814709264158939935031892305739197905961015052810848127478738926088274010302179445913806830118762868785933772148964339944450474270519590808115873898151836768531855138582951436511865310063707382530432079951575799672756500793482782770070172498201515434073195992278011518349759811358884840731421626356439053196052211299963234138141273804805423035671820989287484839880761719854055894626965245853876748170944728387353439592797092375425386785168289628005155297569795651399415115243977769126988471527328071361962309909928110392627330076935443900090353971686970835420894562675873971240022391494433827890823050574359408829565083340187052412134279931184136266922002677422509950475789997970610746816017762587258450673122361320378224057260614180469346347091392623809914014983512141288171723215266197997324852106546989828637478381950351845285887539509364046963742162047234898191260322949367838214995367682326228121656717639824231695057012531376048840364927184386849761508549988168009483912101779499396490721665874074656420023380737002811934153016843036625711344957219802580879404198279171450184895374239080076180972116738893983969388132047200329252628701254283069834555210717316022935574679018834703266011521203293320584457796036556344121890141358352840155216749359940734801322644463426527495664927651391011653456343515686950044512366704695806432951324735019158082942320340436972411140724777549663155006836704146619421816701038187471625639757790488539720202114407176856172527878642956454221867894863708046459902553946138294357742970532803706672240549164685443789277762894569185265759569802234324334835244271463540541013713127881769143287499677348457737676129370775706370182343072517263296815337561237406902506235279028031317865092923207627859938800636995074508329386515149817038859496216260433826213750248529002572111311681508961023898122676751711305415390761402222185255151891450252488961060335238923035510245965805858364427699041474514702387384941254829454362178437189362738416708189498529197255771182219091105785804057962455783437823566804439220800281922633293876831581985389388876399903458120618471347983204943578478281885660209727811618228793665985922227749588257294145963849285454257685651628186208090567627915302406301557591984046971926019024288305540507882124020483568166284553225136573726310251283994328466619857239890757736641934960269062394730731948115297642310755471566900331013840601309980411098827084965059820697851245177823914598993405790963298878130141875596400569126851025082279407756054433636334411111715297041039038610155541482438028869527321714619146480204978950790455292694801507742523162112330013427031161102003354437802411401901193115729102899339785986437299654426259645754000043163843514754279964354941388437351144041795565601129699496098785251204539844728769108127341129396259271878058273180404308478512548894978093865679627460140719509277095194876366632884106794910069998641356088639714237747040761014591612488023560132694314451447908082992090393911872317690787200391163587431120531693532827110892268101324324395011544628389412725793465755094117115756592910364870415628048621712251075331818970808943157189453235051321823056842716807251395907233886932902006912216504365037606093445530611287354507390602641942383611413414426296216644162451620000251626855100461562745550165942526427741910686016983755852023384895751665687671984012403300077260851799142696941118275895802858089535694228209071057067063936980248379650775187202358682675165745928388042130471492327888984563577027254576720011791466408739183708733614940760791662171413270026036940927710332714058672863714988514080465847534820045190351872413909069219900203999345203136120450596378022690612043933498458070803754237478736040833128488159577827034274926672157703447065863577783063173286081312940395014670347778969588323727154444283163115554316340368936762672229684512892811669153862347435677107803917262850426965483598603120941518878359077993011556336420324326410026197827285548900189940370944833972483278820988934416455081162534079991924186313259860181723431751620841370944930881617526162234150334425979995572979184887621282145499885550762396404248534215261620800474227307733367051459241825085445778793511199896216510184204978436323287774521764551743578299384956313721976986127943894458382624036002998686580631620995135681842174487557248324786133821222331336869416316520323706258244629460005373904341493533512316183461663730488049040643411306162977983979143618278869699447315610421553299959819855925232987177251319744375656407425199196744088771985221462208732143575438786750229603208901978308770783064315345981440360407870431542111864946932211393918406917086083298784537583959328269751946098430521286551652490231314952124285584087231273436935106064795930789347742647657218819236037219067274797592154428519817311467245623501737232712696273866758602996797573999735190003867904233868968977773714593394289569595466902602878459415457160727489808326437081242382444609398339165172378240748909106769156539663511208202266624327707330045790420419368503523514533644802417582297879051602981593281525050019565167818651498917407550664107754948618626038940488625650685483499777073416394693740649868040868609633669971611880042777616078656751307211100845057861296462066284811587732812481241317278428894629575060336733894650968052658973435419378019648720977329697710696663719819444706412553536285263049559290057082192772977113805952436878574897242668248617860412550739503587453174338267940344574970524338755322951164569169975112032711942553139323535451870708628641754261692427800865042357214617791933224566845183379006904708276937558422428823589369011648547221275990562093603983796750284647024080426572230844993502602057264130899367238542786750034280419051039216241690215500699505327878323250040610918003328992457849210329074338768449069709690546990045082314133967371977698440466114216600781097285418865386358242054988488344962464334825967240597527202246258083220221984119665281976955461400967317146092298916876657049104393453481557124856909666712446172733381298084393204111770450166668693736655422435314787038380684321836395015767992728558689026106894304723359900503622424444925356169170940202342111328937257942360987219085888250772748752858688400482204934952748138479980678001165988759082106621481825965770153534858482078607098894912029134796250551897144117119668603826079788383030828528652343713962240946624195548083620010024650661756811426874108589694806406094895624973093133007934386016597418131149237423206515513534400560441130182079619492855202255319616484054708379076349119514370305106629735426556296022829246340151271406061821377630225576514158543663932190466666652859547923958281104274892116691731458357353858709128551716852456407735884061992438927920883091107368166312429838254216177139922892085244303415661069146270543240476616594595484224372388172494920374052135323915477530079312165926908695960954237173352636590014827152897605072437441841903860766718925498107587642506999927226447305339844048811322654138964126339346437062429188279357425293769526787814920144313184537710310440952878496396051492692505764084370392249595973997319643453629240345521802262687182962965569071764246136221314328757724308508126313191121778889403712038130330928267685859808042948121343660121106634067085313388659295864546918511388550457918488442585185996099961888680185187075763856019138685637908883938537050437630981786521993934259233432705181727703700479895973953411444326177439063744202927136673033287977729021065470611175938736527389868904496931669303240883561777483127125495687317707659836608808088296100960317818516200438498903831601190747249806918971764526538553057330668548921280156066920952615851605719724537377135160066063750606787767178218753178713023784184973831416917368877720427795640007681080872342089761012957282560419460167100531490656345745456635412028105887022523677586431485887258223682182142074970669108720254695092509167258634116719457672625622288340817398752891714579095854965249694401391873506706024016087652070471822414638042863019936678058776319731011889951815760374191475109161432031901260549305685727117006716532998779048369988404470815917610389510761437780942897252153198517059015370811217083101048649573945564154269850535578975532857905931715047477371501378778855765999096831508738723297433543372347280615763149085631163341091656228765167667655971835986200188694437544974261624822916700088933223627670318105210396339181319650257059649770107973567539554242733359060291386544679981957432621528454823370558782163074121115047712900378586796135405279340296453355561524512099717567138496251089323397322406060562520057404527317833139123611620490401291835119338403036184404176144333798278740559170145176365881234607668039946374191253900293677051803385949156068837793712992223059899799180380134768529413625326155556169411270751271718325960231190708126282666838839312885623608721053662133184493834114088123198104691694911687626382763244215612233879790925584996887512501416132893199920381279099614681232041411777360650003295456000392634447465489902121833463726876591713308085151479710605811161462412857870407446615005339338094415802727442989879118474956439752722391201535645765761490273712441264696543774282755634838972322926742042208792584343933363969712653494364749882034067408133863229115514575096030261303573152421769372036762951461211146506830168393528559332027872274271180693165374794806889400780186680180693493165884586862287632779458277823418171400296471099506768833436588066053596427869080870816683764837041333053389505183163579080329277296435718265291829273365801056014682805176974350971720222584632564808812936739566413518159156082991874436342214906172475859670960840294986284724473797495645936666258398557707200039649912280844086215592327406326344671594586445818424829078284764649606703848997710736404138225875028019237798746500881900169436485529985143146451769638471928227370535143237217936475512453076683957905896931472762525388598297643701666266495170678927842715475945066409242739412036123318026584807584789178522358762186932954558324524375860078834815151837929003034042496284731528679454547837178718862850990352264963847854362259304207487139188492496413734549812103123866423821431979862020603252745677074061812012930751310548833695204387019082757343850371684514223367372668166632189572633456148861906574450852324058559894530444042606691889681670570657398421994877797900763808290374852990160795978118436619989792220232452848774483257815333895988663001508550547719700662989422154721850326966932335363804177754510285795557449452540746983213440417545294051437281052118214561902798763003494949644742177428342140265712047557859508452443733083140255687047400557713077862003527818645245738292060392895997684288764607724002279089644408437342287258976454295550992666825936616857378490086095179062257104929613142498273707031049436081689074464191538657337387488568644978956268584572761491769668278173805763335624008401813323946053387756533672615024908069398700375075636751995059527622835200703774568685409312224088359757948630373038416553284692852905251010309108668761618149773685791570353813787804810864022780229774988126786582157033264319706584957749337752187281396211104894733631082910270575448809868337510563796404265199597639845137796540338928050611230924968149974311237372545563746736338599532819744706761891547201864780838679586030596775646918040222308169128008556888063564396092658200387416992726391245623315554607525590816006211044975387982948214447016897672868380746802432346343420245235554992991422439853929001615134236166912450955523333697937263594789322378119463052187149742137845834076915573538962059384362569829722370316115864312165703201385920349745158839239372275795075051615937685025437253522028528263784105051946014794404210832647266155656052600322642503900062203888332541497086656064315784871477695554774226844316345929500722495596734145042104038065733248679382077680570935768949457365625605625349182143580829767090958154948907342147028934240459761250183401392696567350289778603630498813988223264710411329728285615967047912010713478892994468117886338392463891220329336892701753636015094449841257698528759879374987530137420837713116509136950966570864338691049419347367691139612641891289845191752235486773488015258192264414616994662880901973699933854398503675710535911605360007173904401417660221307545280420402159905067968585565182326699436729527898063303941465259557731791739352289700554338431863419727205540486283228913690589510284783415871788232687340720301143346097373084537592717538855753990047928955873212488250550989148285927097144343708315819052728618170663999930733619512458278448239384773762873706330078442053574084634420879502448172992722095446212389690637783050661062903589236120500597510657237633322728404517113255624410688494410248561722257685753059766716865343570137177332255847443202047052940081242177940132437338247090326218850392775812449217550080418536351906044848815793430671677908163485396908190178236494514481094558883190160513693990578403871015412534719945309944403100370619611879910244855200909985305595190975392107528489329705869609350096270628085118590999014468756404339206342265468104461195421868177059416886640939909459722460580134241486244676844345916026984310356771678716722063705673111830852481311898165504545164916751099522012676085765517972756726589358870944554682392197359676043996040797639801327113764721858969858135546057345740466614828379951141075211878292450001090225486273032076281623749120695913939309534635758957606059366452966667671633228071364494916019388088969351308744635338975942710832310181795481962613295670554053775771801602756376625217547303857017688795173554508815105785667004407975319346948626305220382162727307660723063021437559645414457223392986933373877137528301659028644845152179281969614365809220333384647136763668669805852122817376547958618019910567853961165573582016161911254829178655042032081478996318710211459752523276257613839655708314354514986137037266909262306359761767557301410988419747404383634559307638070431490576499031500403247206705167412718818257585454373876245523763966125686023533176397729919938221525474745134383821663469565926177759229024580399722482223839245621207966056625405452372301365733393903933596234918836198504615995440866541889345365736557043752900883896761996910716464584056264743539509735390583305411991624248596861639511266673591601028642120383771830133483038390392311217927303474124929524689410496556698026160393667939387174843535148761441856451904212569409280778359996667601431905677436313623536815708444567079637573362351418876501375204049258863431588224060846191220591217677477434751120532949644147972274672413189906532603588008019744367178406884747883263575415669251284963321535384698358374722795765036025641534484867351029793599036815744065620109338917153502909117899331221240616830957505715239265855067657309224137030318603885767623997047874711876135431726532716545368911887913736605547301666970065967432525214780545450667563868005513105208288722108326102842522411549197905492963379389650954975278044447681558398279967128185789459408466993152281530553546898053683556864919194634700663718464487619275635119039992413663824978269583247381492119503759795018653051577264885645364912932828368812128110648792849271706014267142767011550945577513817769667827694006788756101832699527206249515187626101786910573646913518900659133251992768390604060746774297827748855965303540930532542788907295870444856890222513525373924757572065036002405841823500142846300048390599263938052937709992912157203240459634389715508360424077238314955762364011192688004022466231290533988158531492435283558154351568712513087101861639140254692378699717516109366060228391715994717976854344247185154276388336975327155895502095223405421547787453502346457934110543811184089428540352392742168462577435147943331088248467195928735729505994931353433638187982129723087817121193883826358344739000416971333905366061280002335392882122104191341991653798712808515468709039475907019157654962008725643108520117207188283236410774886922620986713114671015595330497150275902054929145178157140325077173396020784689926401246083524283111037310049934597204867706037122690316154396777383329065579078188604323936691962858724252887313708372732409485178603752526379469834769459428978412863152550823646357635110875870827472445052457935461116099733816947326500992723677287153444354975402059403357121041164439987229913074767715804939187558998243004332041011638890276282284303460853494911199839352703245130225779781578655413720367235459810552788227114762278853915707248173667392320312933576657507676854526501214730663051297985424224751982500994919832384053227702548504848283117386079548041783508031769506695613673007779500386903617126157984795214273546158962160286789857008197997808707571779496229686172366442559850257815036315564822908414748022703906082820457492779363960165139786984985352995233839430023614818159765253082471274450528811092391701728814891675998597494264213132968388151289072830072670481718465427476295088825014069598134919251470480340726260541609541107796493473874762543379169584129813269315632328307340138333040285368954514025514734971114070056135228567914317091721697661107351940258131753282560822970372589889578221526960567814992779289794240512673029806783386473534825725088756518948965157560337118336809039482061786401491535607810120893794605564710198662942339388557921887482896875766638456909798315708344872297298962137543065672225885958408144010454588290195661523516136215963565418608903429181146474088866444495668603337911246451531873712226402750580485791759712587729983260977934042652856203677297291004981058017408204833025344701356600972795125268383149640807706532330407201442524511370720562707911365084925145585108857970359302714831669124825842590752989738154182313834387233000151076136372377953591408486955593100434724195664775721847009891220524528748075094687570221877517429427568479553235264184869890970931231805754505455327481058124391578348525834095911684077957734619155448689531511716616210752299220841017281056819081359090621233407181240349475031912190185867753009264481417767663838618367997798114757308418330972421392974624729107386939533025735046220477789572390419342659695993945083619549493468618703772330811732924836711802963916835450034634431735508594939828479443620851809246257049269234812371417066323206556508025923371959816908276694033641092614685957334801333225166047952981755726685084749090863193091964980528131056995254557121030449794404291793367042118361641014708687715011402075034807635918201100710917553273936254858587318579488684205004623630483736613291857323501739143819423088338738176552046288063694954929550402365476032937509390911943927895273426766360672094296407433464755459580322106485665530735652747142191667745402253625401043551751320360979242969119939244372963938617951843245126907988177712661750570929177034744816630995331263694438321152268567553940527174148953551634063831052725889125625403847075706027061710113103161238984273016884039077967079973270231433705297394749757155469381261903450831472383619596410579246245647115080981014586381577205510888575294372911714352792514129814822049538736195149479040500786808144507552370024095882428091029214693693201207182717711609385465128465817029718409754844569001998790515817156277872451539077334114661775411896314586456352132905998490438192749635026539441187669743620142612215167314856262437082328543628284235958975650764210794018256268919913497797729209544458667558021597678519109654246600349946641338618683691535518268529689101046235140456325257278920398814655804988120460369674589645144665379384008201849540937595970382854041293304907529306725413706365153197949713275938419976801368862881590486753296039527208043020631953055559250866322263657123555234848239700186825917727245786096754678702194767747770409108795772499381466348695492769374467718694309777726679237367543811345356126160513958240848840128148583958343348339954088360319987667726393436248867068800105419930084081592675413326438125209278092044493531505510038782795613686138409905653749909304233688939113950269090796638695852090773854240713840128354629240548903987839527805600881083959975215096536382325354310485232434669265184447783901020208219238169893205218398183890770117195346144100346720800260939738886588120172945594393449795199494320993787166689842858696828372088291492663375293418581637966347467907237249765640612397666343202450460408532434026178914043946262672994871212639646617498652910940261902879300846867717342917617782800343503551156939662895132352302371010392229915399321453426388784636493050660272420958444764851067282328490957464749398592407209507627906939588936208257911976251745552825715549295913032675351040257101592958105260556516456827834562113029880081821045777423018824645450020946449055098250402092069731199453794371410379907342618542294761241245395298960262226062468139511917355744408827745332193312644470959886239729512854042328621976598083249203898088058671965968289067693711771270229973850640580637395542294660600391881341558398743285109053597442756337692301447932562874013695802474977811402486210562571398586901844974282836692380387927083840784949367739026248653287466388112769388119591830950972402562438022829466662275315150175016232520664352409690994657927457004348207756301134781680024262694326420280742197906095833137233118446701326703014261340072915578769802410400009799638790142084092436136903080092626552660457376185080509212089626632002467353261349881935853993832346838478849770604327913577370193614413629794062669433050807867559363386929055913151744610411601324363222251476304431725480160575775933977788532981466371942482751685410723987868621118248431046518215302333418944582423374114258956746592989808728836779728722225475040490796312060797673121276833071957785181055593799426655787870308994991113457494063477883856955654433193102531222899988335308356687960672916723761429209735681869793160397729532746393704894527654649571322570361441649260741022547630608795723770514000337793186025068177528794683097187684485206233828329101454148183805918875607923499193460896625094650430813990210820698463250472153583162744044126597567153673198326639236472829585114828686870277961819109192435536108813981613437371803483237240003783765720222262152519195308850236342570059543133100562743365686550244860308778694341643223653783493279229283931093221156232705747329597143619938562135630450413227720767923410427869888009740673704185003020016502823452514439083390069534614024563535093150487873242754943924605030368810224279069507591628202772658954126078883575913701899638223695122841816650842735187718650926725815197707149538005604355229893170026086141712376951069927901126872946106400514763351323310857403121165471758358931670239338848280478056933292957343899161897327422954909542210967035366959782691894029526766468929566286290212117578229724092391136473150651213817651926095526513679017561186015806923270708862805563051698171468865423044260336494023843923962860234203616495308112347756004316921697665534227490203541186319545351594044196341428645479656095899759222009210650386960251616136640209930210294073302989757307562836428753821908986656692674891974280917204307351462592452261066582242633921221512554048066079991708530732693422479799305176941901980622576965129855258484657649820011492794188735577387196357682092701327416901523829581720483625684497055355130497103467640948212809201889096167927014728886524635291804842102870671426770482870990572920667499539968135076635296018119411109254835543057787402301160003426899634051077856723075146957842059506411053371883497683961462646055610722487823042823672787411779824524666922282493594263353859893836552518906082194557885121856032411224251900036465097577148121510307965931105018764434057407240321273924114963397648918700828319039721136809572156868502893889583473878039633929767835391526463885195455861459363184833966125841522591621514733343124120158021385371131645677501806592256796114286117833311323124289838401379237579550028401542848527322166352344774659423538413562371935940271874148428914959482032387985123982743701671424618356468902001743287445107199004138692042560210225143223107230157915909292701239339856668073008887850472751031483114183855040362735174436735078802844084153576589709773991103356600445013641745827188577681012033321072049204799614892500729756715000857314173262255020600557481181302766031643097061820361489228434216720327251651639844769261646782023047311264903792645106324600892965456732166840737975819757025949669136911318296772016668225137625143046825626962768091793883335226358365450741786436896464584396588976457627203179901456280975135110814354939813327116670715213581271739202175834242761269033979103206484713726957144635151506745284669277134794423066010536050152761566741006711193887307946045589476160199735795036518238978696343881050633894365751348815449748270296662627228771789822508413709396260917700878005337007032570092202011690559166306614174728124279165571400624428961598367208513852870316326798873487923755251207464530553409135062923028913257093725212433895354019527761493403603887714638530391625962006919171737669304179969932756416533258166091475887551778389891374434218734627666526756765719559165350306794165351341304646185778149579399577278578420171767072459745177112458612582577829628811648445593217595765193833112103740586013234064936625979196690570211125448267954211527515320384910138336223106121537401060508208579139509975551128035084053825966557480751305914705771612632004871070125042108218204439980760204825330829759217230237319095170043409753487481011193029017050690419508190782077223344489641492700669749287923603394295154210237940407613085523983610953277851406685405365547111835585892934604872846614842138189381676877594391545317058387752382985292079207853285712671515291947387375882733305365040512495902191092666662459465523532730991403307678963557753447283146996009131321762874505619515800701361879005435597635885574330119396973199043996922636865689290039755543001277259910725304499929734578954749305866844329242696820109872536191349556593634936907391298559992868976095710841013138294849383407962852287060118073472508113702258436859327152026252528441880140667277831774079060760123811038909363728230189198505580992347676338839011179068225045614219188526598316001478172441155257103006230698235019301023109810079413352519956105354210377369384623241761627000066012751342213870139213429309473367972599634123934209511361029676663724603803068932476238878285893232818360519007143219760532871155925267804304997364785153734683186792179964953991819535412386252237507638437983619045247482628505269134916205937333350055350650908509754029798568635270334895165578648852401452744880982792881632456075439272184456901572376138876216078582935614288852785211915241684053137410909206637950531833080413077285095504888391034364425323001084444098577715605148214410288551621938845563052972170885700863070712281326612546362672712654077273264595624169072976273474421151134355520115596331079460593921490478686727173587307992183343723032210414916208320059949556293004534766942341881541655040901776763211763168269315516973964524497203311562683001103055699413963455664234252021249368428320250138756333185970434859790225619286301249127771415079359240048804536767187058133383175104403951667503933912514704289314120757415668830279513312219025499491616800242992380166139270553256909352143708058701349097157495447665481338171670159657461080149733869934116918923026174849700286134949161433531191653889030268149801235082005700541354606334667612535993490859902149501526101465610784333205077636139206041291970260341823377389347917717006035214288803279515224969804459306897901091390951559634817305272552473527365082115491246588924204268668616843522983478138333450257519990614894252310489765574620794531745967757657875910595211840137369189597949978233068052579016606894870534663312924153100894702899212342696468212441546117657223143599441484103911202542891270531968496820975432118166258993480923372564575375483709435212969004454315077939714855979299242941188567155015579686731759837579118588017921497774534345790855302953111252929061876022916557548620153176662860914513618385033725633079545983210051436937566103711659891513690049610415611904125179421891223174130851686829983680347405991710915114235697310288966934813323247037247360580723618698707569958453931234677880158988395506705449088850432958125975136091066308073606779124257488341774151920946715825179303802529623069365868557353509779717156746373706732900414667115333897613960102580330903857341198456977766728179992203519508775058305262327812324432738375543941351535565023084374775622599554949016679390940188152751264192646288622944429860804813095344881512028331618331841019817847087243439262395897577418345045282551781285916648118100785523719647232921564646000651736448895730789854648203414490817915957250160105562172793185550858944661839620764419214437691151357909504575497182490604994900246241112947138656659685226019017542580567913246071244338962894637998490964003960894787069927678446519994106210992240864175444051752161594966166050360257196865868015302964877537542409247226801189279542328669762271872316961124936593618168081797108850791588186310189718776193690037716468039475232192235835557864398832952485984606841835371781819370922713961324817318182731224454733259719754812496381340611568458269706115961313242119133081508278505119967702299442407626946868755393454363582624111776007815122631351941143524739375303833792316177893152042165393132875158960338010814189022963940189042515516857234178030671678825037178411932976623970174758458291501308874640942851666192634845953469237115565262141072794377485064507276394692997901633452453216363592233196099548052167813607013330272343502069447603122747983763518281734041598346439815829735497936106234480117398379381850062930034860383672003323594554980391974984565836001563332098209884703815674225425829964802742594851193647726780936884244345802211928085036348215964937152245589202828021055560123456431221704953810416552014981626334223532759593566482555923004451728773299600544754731810146238086613929448639407360887106262228525624720297618337805688187083076823174190041250852818312379353636308041282436751045714389893985232720681754645748115781785180045015637047944545683921744332023598336166040587800985130013119831241577301706198109329773146549721637946952869725062848801410239577477080208132994693172647004172952529234218166042289935230243180041766025819053981407711028461626906476948442183386259582668112774273787184801676965109329410971981798647155931260986631400683347002129310414044727513694877196226308426707227271459909761446573308162915296041611949522630268196489084504554346462311625712267690002138025391822407411746821228046412251653848470917065243006130759189306305241706480926670192341720730566787351756885590826085063185879102606096675866246186563950516136849004202283218485078155892433754531719278755679321089282091683189923444918605349669179680179596125511440004484366780163566846836390888390632602985887368094510132283768595667425501868429152018202349029183558728587755022996350438464146322854996613170731723495775280854553945182468301231005389674948525638426690308768348095471228902778736356091598911047842222506307295276921108036575690381946952851867117456105187387429382756014412975146494187338876794876394723174999417148370094770973102668198844953830879610801254991368964642315625489088845210439882612850068373394600991992686009925032149460517068011093800516067613793712261355314572846638231977773458810475871515126577336025881627992437646579040270479157411473797055552984737541911865482863667139041508694761393625215075376414832820482157669070630327140418995740458149675561098319909435947911706971971698224148206048384304174162531580261712197768066941033821718413744904210416678610644983711292525131125683165262713493175365714049419924988182089887456133607260329925016095636377744578512331431017524114237231035708156710694355139808881628235791963804585409928861006547602379167877966484758027123001397394155359436794244819463821204173344980522345138071230694520854418621315399042918077274613593992014739284602688985073177952300059612782750361884750087355251550360980942882864143890951145032011510190967000982047316871724080430348158950193245997981103631113409503653559834385654390438413733284912797264918949020815371259486765265841183790337902916795394418208879468242204897550756460449553786688267402943617750408273739766243381523697280125932020731690834964668980391005950118773532590813523371700200066814870754791596049607061783525184240508481405354648199242108875459157640986365903021691547530915490680460094916442031875357174161353115229142820606661847089838023118907307194915843748175779387151864872780009714369653927132970677874423110545056727062313436410752045932549395423391654386219819882409776743218904877219257155845257276027296970444921611584484380450842186910269210146384002574289119137272993416671730174997913169956836694493380119800747736856434380903548419778822232004560496963273820153690642223365724996689665753448680417870345380749059247459210393809875143142305763870519070296053183181077294226186985093814529409341761716495585066389987965524840070877278095120223463603082357645436079683904787043736885451611287233455207807430620621220174330783989669127179773469006861152131269728678448809919493101424871900556753448282514170061642218731694660500534211020208777795423301396577131533847573657462204174778677390921598809744233819737552142789326720770407297470634254037550201277498451013844928314982333614137178788102899661637772830321142736309067468591487608199325181277361786463852975014088799058024323341633224614795533225162911576812558051821043711182848315826467460127801694320253880315860520651756365867652141577766813267277619396525478165404006296353508004380016391262529099035758126193126464192619302617171302197936066834997707872387109976831130360123837495404206287145485346454576296819051835313505818949710033023704437604746026447030665986820951353144732622665599196365230869871613761929119711079005964163983920138193923434051816575633178148825510298821258824498252686653920069195121552941228985036518603610077072907710147829662897339850638798606964683489138314699150473557592515496356878770758367621682979686451825731997626571388369515572296920605493868036300971616620485579165143129359674486656989840604874176534477773229470804241396447324151937150943263353913888870308304559482857816218843039355770405978107862103788057131274527308890473253975467147237260644926333829214927177028194026585435029368881134372292002044174159867850739422278265013861827935108766902682721572310032690699134608149814120963111502375540505874149754324777865721641831551351224000965655457189052760614484424628893935761033648162869686276120126363969223961480542569008208356745002526718900471433844073769454774915639551398348756842523883803837095761409992975530712072651907050161043213201231278225576949033852696603380384322119005709103494599102448958278289790453302507179322606092918751864110857860987247687391024879288604763808968769321099571745569853360306989163090307871221300295616758152542282662018159409031856381771854699039292382770298292279717964387682329843620300076204328561580978129423269790313967219640130746396953507999341353390194523435904436515699072251760816050579669890137651756674334834965607833899437798674129196347911571805327167089182205609040132596967374672801090145916291134854883572653837296978119901078710952459815649308864721062697077879321671170446105351198016004690159839459108683050621027841305706303394138734251655561257159980211566093540374434308837180555728293392380937986690190739899121499774784687576087421691820524055986172280496141625571877346721319218278882048404140800710189541617798498331003046253925993350162591919134463554551009737865324979824704946053858755554713911949518707096104985104232002018591206961418739085307760801970984579111622504619929315029429789192310850548615296041443602226553882564860231109704309754448548685036619390973363451887151127837388675650617695011858005401825106230152432833969544476387030096448579565159084478570006430690852778506648434538305326168398818473905328738930111118068804781721450921972967232683993101220005657804276032484626295096131202120864344115446342877133879320769059283761791741826933776088382641669285898642010471977226036916360923377081575278273763534849334287768572675197044039107956386226809684531978488962576161987046643081763903652195039819609754531299665792333394005473549343559754381867225629519813421009457956238509561511272554962502183068942584721677421066056757311086557430997961835943950339348049558456369843946619630767656407681998620088557689256494649829815511567275825754658844364844561970799275607552031655695620971361584264497622147460778482630371059847484759384932109769407566665268930435688859344168580394444772154150748270003837130625334300970147311515791281313633248691848400518787942722961362471171069831092258474955958700857807313960843662836761836604798715849998323276416507425204212007977286660136123179551776094269850635015081855742183062245833260898625201433361595364881226120408562639059843042171849024322984519239117473433116178480481909475316254978618282911571818615942040339913454812680943222964838634154962666963173687154884208191651084606684870038558204074334474599055697903637374687285024621923037068127655820595156059749552165546110136587011274653896093496023312544156122713714091104134719469638238311815066041908084281588302694902291730890784713317779562072467089360780677935650288764338188547259766701674210446754299102507675899844950271514992454933276474245897446293231627743147349227545040594546057958147482248393701096840105318023358327364790004303811351352790939573264973746522883332802895792456909923242698006567186491428646343641839641123288973627649532001948482097323978976669074062108238991194275908474527453657576675815752933734376301978449209603407763175040142175775646902810585697268324765495615608753191940471460339583860530396952571144410897398595049249667953357858366943560104100839203792807331236360272534128775486154771445580559252177620044625893367352559876867129238585545691821619371837762531733578008967154471328471819132343212884561372663929238879839424339620489802882916324249657454382387140311249766788449698831193001095174197662196669010359217035128241403628583927928021910455913219845166803358797633608701325810268112077074282017316183732077000342160740633406684280646240214534909665896810789565553172148670461307359068179849489101415073826174842785843293930314605653091393510831030693794353934783605226636155406049358419303572453106669994670397965701864739026332738789970305784857257741704687202323547639769054972377753908816296662487316969864325707694773340479191772666612171779917916635954034463060338085845867445228236044425940162068133737391440828410563524973965008998713244063048295066135476281157005360583029833688152021707661473723406530313521489732687087839773257086775507715595815129648113161704535360017012424905799469877707885066058215491053539390655677527859443621984001235623240055725322021288066799343939012618013781941211156877853733051889988643612556923627932718282236940197257794222576756325450055933027690364892076653640476876638820420839195940311507376256586949649745140589320161501763282369851243217477288725378206142264809869001256606023289427038177502011369177464169740144037919840448680264948689596420568578019545285791087965705690638922813368290162846442670522952405611057718145072520354194459431289597948495339101471991065600172643372922764277879122752516412450088086319966453687157406928926117065884593041462254000071800459287030028038986636726048124956405562670473190770025624520273324992835679006680596920183616595449527176053057791313546157263257864519036393682413325287602754571998201557121602225525454044387116986805297677930072766727650364503574879933823292257366394787157812721231185797767057496167042753149065563144342001611370402242269029292331549150290651871632171349413518920392302517514108745422859495005899654509831898807000572948344877238345824755220646520611303045523937400814731104500961200616160181020249613438283982980662799922682891610020855420388690895629183838023319979083380646192727567954953841875115151357022073280616368131672645874795473308851276801143236121152627443029595976089438776062867715035084503374702209700768842318758977990304025020343260948322306130907756014771489850771838082565187204894127955195968576655665619944654321735353353157657509219182468853545966186932729795007840386813916807220346629659214343411299117635664619505394233004486418010832033669154327423685827373092455844675185688628661013367372102079881095970195721333002659645790226770070689390617159735676043342160700855436679189539994713722247395151118795564527151395556939439079103952380880200483834955688664417977321714146195751969512799185187832634564337774521392946719742903202606703814062661494894927585685761334185887937877578218781335610963386368997139151942141066268053802516965543477513377278006129451124788011459690623515505672828488432308833361803621140460067602194003849132274600940467211206115195888377946886218229080016495693369960688635943328169429541729245600623427950835403156558454255769802530057617840360464241819906448201377587194960400848716536001214934698279654594624228804240742917601866919053501162799864578442411592606771977254441630678934315970761921587978542043091201984560939337100845242550413775985235027193701902767852578315425541445970013266019661041418725483435422154592458832416360584382941885066161473107719817987095750748908138661514798485642300378666438318349278042998278229401824782393910531359543777243101228277289060588263698166159011364680532040358624361611909469928537426168040773285066241032328077496693107943805836613381409071498497036254308323544905189412468411100158941863458321084428486817996181162657436357908122617241203472751052828709163518131160960842409791056763687663273693865590919763943304939074849426357126340132480965845345975107171890540880784555630814542875926341966209396620251562835385840486744079878113578071495415965953472624832640827177182286872500901539229547433254714700336980819320137097233717656273407513519854827773697627702933034528767426503017656385508040554596269023279367753356532568913768682421798423337845347375593427618762355402157875782468196899493586858556405411882473006212965555185028697068997747929014392659584849144557797249180153428085976439287442753330733807030481318628862581173013244177015269849940124954901439170793753769865011810886278581466559831268258176429574086401790259040368582583132465155659314902113863395290150739401836729064448903125864849020776940840846059922081360022019668438143321273608816499331701328346691030536045506348809160238934407900489893347754642956267743237772178587271538883876084931237856290608048862697061244477259526609823890360022711953197495067949630035082873966517937346162248480479620650838563657782627506893481481891425961489925574032575204176694129415796651181309681579966686118708956669604551679481636502610685339202036390722486020185613491742727169949441374571128662057118555059434132423319715222083622312606027835847725925268814863576846953316654665453337731873456246605437921657784801765935086271134860688918554046448455405744254228446875903984854664566289442394297562521903422709439605665225286620030572846992386180266235235453894596852949721655114421967599984061390135213751028975166349076662676999718800007526546639823225700688298118255172220910600194808019265252642221904881968722766095169014228458410572207144636060846523095675597833582358851675586096982203671432340344897717033892793394276959483387516033085045987431182050538491426764190479689057138807279980798662938913185880636725447248028652800183663566718195315013649588463149092524653907003371246517350947351633893905491958458778987979745865191852918669723573164556800866967794249249822448116196998846402173835015529014043164726895440745108558156681569340401196345931228956905247133511597935168627114616683774150555757146180194207100100925204289438993878088639434144607477087376170615399164670949721900058344766383906262759217302726117277275052579830066110272515205397035077233253785247081075901710157812988972936942498618347448194786289967625589043707791436672746015451226875320638863196260859558309136219306788821370240654899045308655526430630244070168537311869795529923582671578202396713817586924288380231912497612311180706112038644476881940693759946100855398356003569469524057385257547490967664575953812288906016131431049934907322644814643589033817018127981986998311635216518555226846945933654990738755924111692771815967162117734819616952141631775404547594793643571706839168198820269387567498161325587496301736407262250073654208285388885751428842510712480009894216773724383658261394342546335024802699549899947704956869377735217237590966609406271744327762527180989642898815490149552232882069593033569347911407442559705383125092421863979268245671009086231546530901625152860498552708388825232195787639320253246807801944909986097966655968551711146892527134901258769381957532437822082309273334656844084847849458447999170308804925943372686895897953841634122495365094451390227186401199853487505562813211459397159568871733192516445910925267349315262962212831255014898362798171299945425365538962881604377248831274745748689870337684981682710291761523737807397520221491342267191982650473343036663830686475650546924345535122776274652808494705004857052875591212278725236983330572462166836355098846294022604260693841412136626915302438334597262979391654937523710297305742997811378625231457757134446191896610366672840025784807842426147861910640724661397102025923926839132755175851116702855152070814118086314812998251691870130317213117820080972549397148564854994181502449938019266357082081720715143309207230802491092421190032539996290886918359238224229901191248652093752099629005844463549521749825016799393665794259525185312673699541227855975138065062062219856037781607188432237616287247153130747193052178702030247812348316622477349682584897136638984629885017680567325270691089731393961695701369689048296548111084557115784203639313094618298821540371855408304928443328093013169969192997271256740721137024992229386743884656702727378330975139638223927429206160559337407228014725947114925068959093088784995429554935459987101167321732930821788526417795326347041741986974056177681870309222797372444515367960682561091583251133752572555683670376322011205287074130324877696081565691856193722423168682162440228118815552468538582813115214858884014368418059735986581928664284474901268163596527580282093442894254026672521572170261963878312801644915968786433063984767580166024397514763150657809207123818685165776592392409421304626582443650018829453399885269323085520248754942661062827663284391597298320174386831459695819450703386399618933709581667828249538067912751461360405360967821622244050641918704409830005401576954172152301511406982816007770897146178997550090367139898903882274810688043948432310503513714378837190472781479429860624685430885295518968995807123678409154504571868317453846873013845139192105809479515307132413501107467743902854192661848107766620582020631629758164669980069124430298692353225586577686687179783856262060836001094056120584833077404364878970892373761636792958007418879175314545511875007350776893527116820089143004104266524277265673064245364597886091529107834125780980712532505730737124456704132480686698198424809547690158610628065808099135996281816503983990554337548434460452942009773387466419851009573137890509049078877193053636371280211468904012323789989187020202067029732295151543548644977631915139847619860435460356633553929084717907103954571651880956048538492921467826404815883459818756087147676048846007524982506627058045175486366207863562122132230440166465857009103895792708393474593898452934873359482060282834588529237390103911471789451922093820606015753859180011367795886475361160607965552624831313093573695626643831493831364441900694278495002957838127027118557937703631578848395534366320877028010291074898372507391924298281720420737150791118265738134048852280765729249765080770014490391723943177083487803025978408818573000560926876560239191421420345407426893777462635083997175318885075543560024929637759839257324167960096154978087806136260780962907244852790138738850335553815538458006775589686832889141391849548499289333158518748958816381567107350634019568276144907470017854152760894275786770002276319075909502296091779799150507299068233134177192630441591421201394353489731945459800367868766682953883315174888738556121655912866497204589581669383747019316479543711140678277157601930480176353337871160044581208142985627266175128066525961159258408028770101131393008112272825547419064898569920484315542576743500030060970353201144837967040804077697383180277848772110599276172091869531559644825604462768610720689739930095621725532680130221081844194130009470438882059886499182899882370735527785627558851455522971995475422505506133728515725125348933111705805502560516845107898938314945995342946316954157453653287975685127692361758751030337421922656111683227626650621225407640863740783826238454377759878929901518185500613643944111944146422216179318491062836298753471880137340801478879012795850433528788156612134525369976096434818160560879186585364871054199582603284051855568063206231343174391915313485374029540415764679646922272793606577348013344958800210205008076213777299624380303193812659524858403699094431506336207532193178139436083892968592596007012071684068161940182384262386760394846290652967415354130883137335960966443890405803383675103030342530956063818298654765866321000803623855308389280052043211611032689787358886979105185979228089798676524399164531537096480642195623031579652510030237984349420687698505236553646420105223034582300452269281799665790782869615836057949644710689257899204778630705400444656721851680325898435940376306714018218419724052191230562573767314651429068672093540269723444631655842162996384666931832623492299629827610705030194702338066445924343231055486321776370367203619316942575158233970448515269888906485444036367312493054049468161254904299974526585900575304116452001711955268878293618262019906989512056361903856749016890532147278604486399865588400832540680670789566488653626370900515050256936588749414025618184940756467486229247705658665901429981328834298479416988319022066871160393568935542641479624732095944852877914465959283461668180619810065601687937348097674954745530340865290766602155349872075351931748745039110712310649162771199014163781034498242292872632084835258036214796123397073018439513272228303752296203445049035057336380755591028701730832403975175866978656674036617248654675858880870938393206045069818892584397576209709567967400696417497475498696563128977201190024525896847854581708115562537026806833195388971717100885087704305001328498838061431605599595317849511322727672509503357780328494008820760080289546464410142180061895438968226413767119221529262655284851024941918970456119911369933190157195922205490418710740773238883810955174909352377023894986622850971324457442509142302593771255868448252718848070239068621913428102263166544218068052603117042231363388079145109785608361617621913522094372052400494705633223919947505404763569188178118769296345219921217666924769541841936351398430534774897545909562617936888113840656533025683006628886394571937414070351114925114384060211683435633217192255282818687544934355663572551874817039186647718368605814943675686656457869581405732695986794285024676936791822902034596666824530586625432558246896510616495413724848136497416876675280868226049234743833819373786967272621401240940078638849196386649732409970143694077266438971607927411665031343072717819260267053665639831990250900356970096546979164194020513156646563687729137352593769853521718707324956766611253279033526243265906186451680658898449771926623300647840209433018697347465786671443339967232727942420533664609254129231939622925448733472980806700458421491165586321275214583612963210098178698125836961665152556986761251758561833350799088624143069398454347168613980388642600108460774914754639112543434454638109934006162124751473685976120060300387433685148848572376207099776079865137044202684175844421837461618594872388478805888690187675448061676654396169183211925453810716452351904422566608111554583251938344153754556547401293712186786943929242448985680489823285971375501475579782848343617946352970520364392013411398705706404475728958058769450017541887317755835579453555592711622943030585048691276369951803096405856390060378174954589032350020036113231673676439884428513936734173603685207917921789881938682088237440769384059487146845417272836783074768802051723593986713415711340421955039666403509307621758589527158464797394636003421523849766860789421366169953829312908804387000877204866690577717449596403294888219808888024481325529112897750434947077261743745335909657980125598612062329447604470310918837356474813388609596124750189076956545820021340626291446145621431966269115914869205859345462923079697051476053037111853523248930825012858597717138367077427480395688671512126283808765868151466479694312174830172463558922899374578507762572465183148680556622887707044910769879573424444252156205631907592643528825423567787825050100326396840632835298952919519122931275112189816812457195449295599550478369904249763508367322037461017545478237979063529616897957552771959021956192624895551050230130468490815629580004701152207242635132082232315959288601118153387633454935648138119211890517133109592517673191570902831571348025223908678176135794082728423734439133350776090496768695313604487176332331074540527233612330356074822438051144909469460440700174749386773088291465195638999739837070309166906805666370481717915635676262394092010803499160971069647425891044330949205492034344847906039762725318819127946857252549135473881461308974055436901407286051744318789056238256234898137546516124855616662417463245504750005836386013964488206070632779301619302991561224541744119374501764036608941461564040583629249353553156451920987466251399696967946311934866074161457125831396166750956656364523865108635978047558340219878574923470444319650436828801321148823618156119904195927242215631687110945944603843704876538993394658055280224556006891970063310323142304615289775747548623637250281246713070617713901101243704716263617419449723292008478313850524134664290121891102459875154712029733592927177554252779186004823547981603158909063136486603199484067051832512029436946104966178801903391856950231403386858851670425073000242760409689217751032090478056755166122623318669825317787449890421882014856049417529391178818677182941015403631459101252804684382466180860029276755884557525765560147032198261072151193185787442341362525393405284358002886132035133910648195241563285859529225498140021417416382614786254297140330521408439688752412609337518438449848177251904492921977646682529067994607879693096161122264897405391493063451586175233330556715203636269726267430457031656385328917206880596284135482188454942556761923482944240170319678933081039701445752597438439475668917146990867157348893906246333950399262030739960801089116867224043087812558019306607279137065547496201067419441428940111589043462308769840893927875847253735531034728711658952802176254142702024921938115860365334646007430472640461956564244848212766582687965717335772060182437489016898119437111732575979818271985264729092898928249271981315540708574807111001138627567006494673564953945338210626277685895160269382958857498981869165437664637832404791708758799933780108271167738281813298832774755419080177309399940594944195126423462184317215197683108928776334817924120173783915877014560271640440933149184824589023719966476180788536460864171243714520053061929442540951770004531110255046120061401027046249705511027442575529846982391216725964995726861620595634736990599087326513185231620041610924106116691288976353180112739347510915369240640905686794106265238590148538961542312978418174797644763950661640068883573705590338359692759326451652632181947508577083978462746026001745847439028182237956736953904837738684319227968927450615337834121716377834512208600225617620663761333310301306475072169911147574370219868104739945453578887391461658475314381214385539740035136165132549124070624840407390663041096079627387455327915952479548620242729453838466470377797884259759439427232691412384553285792382006791826127633856107661228645840987123498358704471413474844990748655380336342517626858884249434389648179712499918725420505474460573499501870672328688170834117348760425390748384385358842560536320861887985658689711915079418473469218264964274212855658817616139572528652482401841852708497351491338170798981142147792910262387730696314546277882192439353606730181631797575633250442431322614015055590162043228753145956975560751809710980699587940262888525280354823451188201997414233566428871649736849122849152474264290211495243980185816020519170851153366001662303392266263570789174801025798837426970871829303761121964348831437057690777766324306150123464628540729042385262451481672220318766659843012115148139275347707570560880661101187669501230775744407134382952007994524814570814526393553209500548523169472971898627509207881405295709904938294603977813432093423472353477745062964045457701151741984598035895795679641696143809454702474800646081723841767190804204214862637289977936369040805566449454637433644298010818307343984259678029337192059255784706869604526008327902508245189267304110507072423548642661484746024520132425786926165308742870339246517626653734553761766384371987157533880812586024300047978937064806492006923431747664319813367253275122875791436367649068586974100869529955181075530567291273944862042946256297968737983428890883787751531306165723778091398313788089340382448021247549264944331871763130384181218803257113507361946414550502865140903674784514002842524610680735624210673401448535060728937278849596109379951098450669150635156436554240576670778176244813069902663495555631839764007490789194595214435847239503449844604359059471321369333947078803278633900066343070983820549334019567563438362039604047042053135753480944162822944436014512804130360736094362497536284512656233100851172881840575683419095167931355922729733202094662903196033615453170591610997587539768129683835619879755066365297299249332654747517052990932764637573526013414155536963025769029548629246886052773053081060609625578038241615936252488679820831713997122635898246359902094083784010351037090467289807850846141618449748760065394719577027193770502708442124233428748077702279542961439497202828459055575856126476110621639080089717271285530421117168647256914757447796172954496812686243486991048907430539870409702981513944383244876826396955880839878727486064203443822183511777439030957136186644113416252709087978779163309458028613802469487385301721531157907001407229579659401451898161061228274684444473643444544528075095792055182888004918754623578824811765191863107566152750099369752007445611457612183674943152387165885194610978761401072946707468742844614005397683329557265901801299955825826631499494373486001137539876361899582497036671707286602817806154503903119488887889047188755557878291142818792253989071655311835942637529099181727520509641606952169600298370528533380609800016623996964803510378636201975528025394136905977567444714594749752424739039885861751928302573006412674775894500425352362762350587525963330437500006212806772662032309179683353133935317700704240570515102687876242730326329906000645128884312024183298352289267876884308911143271210410867339441225200823549266034066088313462139022376016451147385161224026929810220133220965783841668848984821610164633910856031700185731372143809905666387046216156801889393464301111871640715653275593728669720873240210368037593572366787611406343755738913241853590326923467715203767718864899265840047732345529549787938623911965168568647513674615334974186462450196849546467706689065686733801810716417816451173703517381759878831715801849075434117345778106093157205302892776878747784445864729008969772386612118935440327105620787306915761129945245183416446932822828935631496719392940115790590013594553125208746492698150506407482368331529885387033571771865879139634123685128795157609926498389523607095450090815766387654561117024711466743410843440921729544971202183329460719068653597343053598321733438406305707391938433598875271120990749518320704840038587350183280556669481195319312535907565216464163087576042456217867681862767368335001568964521484899926054781578451226189688677629505123136397147210421105654031547461363826560545236567222965658591512433240082104417952972810939550965569322547939626547936412449973138388825949748893566852765568349703318190022268825325038486916615319449918987556522903932779854767659888119049057399072825554519271379172701950196997344539435593194222270808482369194144259379371292543196530630475903392166763921543614353535278906886436962902990095542855501592127611262100222040798813816420068719569203694398861286972442764184606716826867408833737911405168279651790862601361738407118819047116772180983054999445552352491010172996482361022095973390605527304233370775347034834840735335750470996097458749123923230409829673763470247307550513212535830285060231498269197647089195637003924640049652382521758696534499467028602729933203907741063316141210794881935345912471505500347898044560117839158849883058480936943563750907272912349599959364965374849552291104893161999260561787324421389977328881944418477715480677803512502321560906714806124021855005745457568342227748668078652634334749528037707142798298623446066933266111448566154603453896069443328443788225218825596745074539942630966577731465241496049093161244306352082792528751731274801925449336597223284840118400279044432304145873359883233543926435909976936805176234054625097791129855898144379490596570801956259827454249975279461933429332693403056299971327133290861324370928928935797070714320322526927668421372462970911713459503645240020644573581603472024357640509969550336775503164516439954081207740872293959412385384780787208635737886258806618738373413262220387998571003983859654966804368549774804308289027996223255708797534492455465392432077891536063800916277430010875862080011765758891179711351431746949298923387179633650743014688027661127829163898093921622200225056937935939012901643698225749369715009406407306477947757744857585480716613669341729766093061709321193073721103327036065471035049858354272292066347417932811904541599501451571738954379488313321878796601442320958944873559390528495078258872827639380206435944230356737301604805811373773750903656100138903106021716093756147965634068420429249041302833016004636519430425213729612306751249319125849656883269728536315815341711645370047316900583158185218915449870586832135128204274238815165764362324132223972772675888749847571188317901402493907617775391241765037931055795891993095988273249549426985892091778674654716940678079376733584116277329564802154187291251956849645694463469321655954760726529537856767031847830647424943336138135613742192759088931033311245634613702966189492502852662539880054185319836237749425060494041218163980512575868615087100097852708577485896573554092022379742725223672835231304480696522557240862609162795262290635250674758239441283656221941816045113451817107558874931151621874357890857640387669459458817087084636391480811167162079980266020216056631825376322260896572007026322734677898146566205952280896810786442586096772862987300007345684838042956727784432088629313922430456415547305745125705223182660375423376151472849850916677722693321460838548022896162463067262926101398406976896079600224465108962396860111158425845572068613578679511556684984217960283150527519282169886315191775876913152302799335328706771906900851549087536465956056665694142175790855476978126312705947907706391347780355786436619862723898377355946138283247911453420452460496757244188347111979378434789762421613299976508323186852826826175737790789596785826982671890118776422220201461071347338555656572661133138838925861621545837622470093894707434124546525904776434082172716173783082760261008232804520483700782946384548896167417904034119265488341236803471504364922927014247670103440133704602422244819958848046752495743502073988157917379525807129292619092988653773092868150173314786151191242031173960968655227837944236603106454823088665034374152632728530811704775415211475600901858101276912817293430739744339518692413487796532287399315878630661907250708219034378631602483880476403577878075638051811909265132894190505445855172772591748793136812725799882266424074575027780196979985438200060083615643280864138731109690945174716256139626350666136098618224784702874392405918614833185486167166797212568263868532152211726547719111732678434740142924254845510796651742923722959219835253323559379265566085227280412151508332207979033072104043210752090860753805934712304370245186417984533875095594110284452717484518928492433954040267142570774603630583176623663792103935662847314004239965408293473222386220091128292090914357082192794380668287632684822328366049854047598918174280992631966911142426652458277369002826253254866865219903127899076826367909307047058246753997604810582629830712212255254756456306930805843950173916884456138430579737971448133049629912372508650188205323565807137100573206726690604953768543718653610451322278696225365999613056412767162509892509804972410942771676041530676892980478122252034594456693884216466748849500570001473949995165037762669853882220258975841570369294894180547364414749235411535059483475606716499581730789588481756609713524059728604674177633835273109553008542026323289906207207393822029922084088876331838623705605406168447215620734482857633159932609952778119156470312140786572610049861662835202916673445405251684726908386864264023807498982042816250780166824986637489298593592059339490280616243491078604676185295467742944752737305624864264128472758252426070910360192815771627331673972896906409404770871532864139475873370681278966621547150257559649492476643006352179327914383600853767252469454280410117614945325973633077025733946495197039396540521891300688408788482041117941140536250074124287775649825698809737104852666636239361896325825375170989687321791102239623995516197395536130351771334659847657585540549594525338464402745852626994518605602722017108530176344792490455893572483144913696311390059274822800765723900098589783626891462695889413292525914406680656073652649988093828353641207278053424500456873846653511929921362861677443517535650442413207468789446162810176996510599641233321744157307145722788762854130742643933643135922053585344889781085729067939405815869190222180987955827448037686086703955850473359315425281217108206343934852578921485189186861036163305837408894844027124967136806173116605666807214345743631343231026882167831590761072288713338464072731323628653072584830169356249675521129998800274598798809527021381466211584805244619815761059179071047885708687851759014372529374392685800133042164374574336284062830283336685587266764599722411106780990040056758988564307463634053634524872241423951837696694752589938759181000836628005768201354399618364096793291382961417454359028219407756045761859065697920350279807786499125686364462004993371936803145200238642288532766147773637983929377091748174386268027022018000284328146937267149124850865413164997182382810086996202338470254114957201475797577591284731998444882129142024775307976994567383039954754387384231104024450689639049475634991004251384166119489124470963595289607016295351312969035462491646855863620412577820717832503247966956856001539777442713795807238554340236687424863479008767285699172702651504074673791006804548435498698427052689879812782332682688634639207817308010876113387648824521206142673343975845930906667993330346958891210675671488248786228189507482564659967776794012140619477882856186007487172927121673579382387097200193343408017079685947930927150212839397139956022525262019878048360487088552162217634315894907057407335292868543698857556230025470217349768554571887088723601316274628816988422058167798382404019427904758763050733280154961234620307926437409826519750641665330746737538271110480199500473708616619735396365836179847967205254411950205333586212330476928601479872034892812720318384323754890210898416226083951317141315642131675021258103596641822936663067369628830229257280968097215525035869551814838780026016612856067847944627365426251584122883470962693767461737916055096151461484966905177082886684926527847748343816041283306630650191432738930500139955886385108188654722249274022242629863672800372992377230178218566371381119052464448943040153167039037552495812314751987027581406135123933603007928475940555748342929614072839113673441323489963399307985017185763730615572943306724124348144902176159074951567075549977187027839359587619851588912787303075827681053857973471790842515884219028365325775531827340992761667858440680597659920916981226580314995231103524426619522908184573620803446985188976018487177807383474427523143628544982175179819220555374652545425373519735977565106965623592765366913667438044773212773853749176775849378633184340005883318214566791481639047050937035080315969294028040213335950457717564833623582800038249084623782548760353907994217050259724597951626349333819488632689774592601415770457933722736173458161316673074133652178305115157415249223448747164340740903951824831813382989080507161322514824524102443275948310040295628017868605791592104195715321470409639996069010912843876202593439745369138139392319598772933609975082900016897841310240083537794106604390176214979472279200231002472282740623520017332912865120087232122877289472520074406581356604601767078169945163426224590450075562394998774105437362464230702662322487304342550974518490208417683341612936476270070713311093984334984721685037632880798857275524976959553104005775905826388729466446168138041895357968937271618627059677970053444859705825311835719424256462603796105597527779995650637765522833153524180526051572989255787304547483717742692353139242233305940133449117091239153301767340460797976041249806254887248673431882300998670419515108705174801687241553680704157205008733613745638138438686507604112219423882067148196954658918687321901724399031706850352109267040262234045557223737627857594706026577392407024652941819484637966849602843407816642509639606185181770516176918874887511232626744780216226321154999213273921948396647886753156982377190598448786039970187146699639922018828605798434174575674501457569030279499315943024049034958574376607531004963662935144860835376952058691944929718069811768306015089022105114527010511111969172472762358009961266163356592166455083145697853244617816112453495485367644564376854117126688801691330905353497559625183037380166960519562890014842108953975200148466718097810458945885820715578059397369890815058299538570970990957748506417245033668358186944104572220500354735879869698633286241945911890506336995950884976656860474511657544035024252486582643588646534720818457206491474441602974110487359824630907670679593876754399763059360776751110122336797989670074024141345800722800354955351289541391481211640444959272064404777890308661792805134302142599472792097376420542087186822949648263232801759109269450369088498627478825651641993782432650672056951014820349561447710884136970918439733865450132025280798073618859555565580935770002797108736049502200182741609048116266863858313622186925101293485826027791730360446941074410435788809731940948530490518295733463274126770088227066286561104383649911226806572181734238284905264278996793566952328198004991387010757140330760205658996078032411340230956242674691977964059728690836706866189245209415096375823284561458624977339497628439435358975983644804426337484458992356643100123263019617921986454184668444017753571692943117756648865764858741228183579941073785102089765840941137806168294226525954598176796893197363661999295376096328386789649607637793577308328822771657218550015125405773479184824291502044316349718255807108607932321731908394958902493283202740860924940858356769275058349039774567481728707357756422171521593429845335306334086149509984048419081023593834804448185541446764408029304256801340082941197507931750482794379568726905151853890515028256465642820012586088243499768120417989760335955592084327040808862289854058441414235425992626760634715091162400739403693044307927236931246109484102845288936147298802624253334811860346771836517242925553181329426142917827569499801541190811687212949219163072943426542750956011277953358366439117684513291667508659783362783209266617207711404904850027468683112458241169546739556088160118956994097036226001669492107757929282645926097033068002033860556284310995906091832933990795715792605456328961252573915034923697611261687819170500117499182957232762355448631098873916056287855753399387438034252805601218116073731360269164755055033152512842857700540432662322427905496691528259344281014896357534576512384441728821823545523660712451505653490224004389228459413477797220851288699013319558109068424946068053831766240199016442722230666763786151764797544548768218960314302954904420320780881844363760215356043374847124815262212508021564791194605721828619731279921150097765599266642616737066746745146830048694275221371497098381021019335988161575041766119027302166095769046672260340680488830277356105079087565806160964818789654951036130183896403824442335842247049888096629962475485659276508656422081349209904017309468036471032880039755804229830072312500239981283964800851610101148663656419902100565304699286671418172884682524221817723789377882953598830929734396730436466794161985067321927191186738175114713808024121270523491905927687892033132363297086456186199550776591317418659975440506632106043640884509652939828159600807238365375543012220454019548678409161815440085091785699247206708203404540456323803415979212396665561578119474656261275709703750530348532890100875606204862287219582631497876080662875478269852672853294134792386838054503660727683320898277111202554954249354705394264390002886355222928492907954881269455036140695393539914035345471652539301558791239922117441336375580606534630814673243911522373845927673425633716474535286205036783944033377064276892897743597787461317754125891687758097977772419281610912922267170250906138230668703611044355751552251422565125537428883392727759662564683944823648710361672109241661392988199556949817188289942440337970001791435972970766483157360774987742338519447457323422167818447045235192011296403305699049350035480365527174325215589807093291187394367714637230269660871707659681477238661658218726203037788552054357457589845842684132099690423965754969085127183062675069088825380563901629207753802475050645634295755581414630349050808283159550177947280473945164589488967432303092276644240745631731160115173361262815801430149967651840941557136244806465850522007479058663476222429857535974920785450992341054404652454186201976526934117395841540316370074069311589664216515744997805416335202167538215265481125689960111456661020976188366300973983049369236061979249933245359725350640522875564887628413214468976626521588527504790104553789689688785781865113115575677291557209221071666712503376319989076338708381713513675179955831479814091629303285511049405771009673542642747771231878927282130454397338208744614000278196319110266457631441337916095531290524776184622905895006886525018290883994972147664091865052380554635910079706507056183946383915936300442926287454522939990492091837454191109472531774083995178616133762352178644696279941455079948341738264228503736123643985090306021468146368726492661048603787500351223149194738161472138841132520208113705886478177606373062672668558901260582153776790672903951501880998651355211325275439778968478770112316014011579571327788668918868555572150644435291398420890206376844104033826722431747778172851892911563141447249919276542779564239537025507931540212053376608667032967644674763111695893766157562060922068069548965506185812019424969109629255822912401580565936541315655741625444761937782738185257308881333874918882185117761451936135899857811860381227720055845414497298117497236588169670440311832771619655395860395668533606691654865840382335201066709808639894854981719187019754124691616487337864935141109090948278727652618698032450412584106094983649694162950353748034838242961278168313583734197732102699586051006798968769524499770652666932110807855135569840249794992527473489980715108736255840080237002211117205752632315962626907716698055660013830536062233375449383524306620707891269216255233750817784557116552478893114356203221273375648521427103087435796644606932093676846036054378101930047814969329230185153208497559325332303595937733171730394620432942094088011760972785977562991946038377566423031463464163566300645211304320887320741711469209352459485874695209558352139640452395820191847589855764146121055561541207220098333062932879517365053571342756698305617835826865978489770192853593775967328316071473894543072489042272488342341710702480983981563190093619629779878120346786972043393733583679958157195154726735631851197234485932552454358156969177705162685197375515369568545481616141723810732400829077502295911104978149799705522717282949380558796424425950131181631004778178750686319493043786365807995062873347489254201364933228492001423271444431154218066806655621248328610927331430219035475715647842777524726640042002009166720035474528126694214551180223558798693699998500764064923586429189496690460032519426740706076115551850220541766196808040039909655216582287202052439686686998855207843637842625897844316361853168110047493749214633137829518666449414317344608832826678910394679847455928653724898119249282755212992531776377250185825733851492592225614303207427360770367978346541190239837765819446365106780355462535615743378819695900427842682238481181637994556501539028976131569354579671705023269769135172301508911354283671281977054160345168577039149469542406291819237912061199081199539735286996770695405228752148111411921322443891505384972755435186422375638424434513437037148965760246886036964583333679625745439996463564856050492398891748699684760002062792933186258794206979898348229410194256424349996709954256119991113082501746850244795327586103288172738854833127262876734558245647886880984573435329508649630764258981413510194133109375702259380576651890042034371454374108383616714847284717465099102190452159611084639986598935151548441503140810848269609542658906108840766150106533550289080179721615227423267215543982216818350943371561329267883329931243279548552837504197166600176281845504210794247680352385599427454181349403152157253333053592138876045590860915960107233571632231350898005944739698606842976697892100374118040533862011328953811708041536395546113070108454933852674958196439993667162298956650859811781611212848713325264672447467279847069257136032139483159544532252627751812233003736596979638182278185826943701561086599811693488087368989517637300422563205282919505917559147045639397975907231045422467160788665893551950930685483246768549435068491596296137091937085063898521792679399288481920606838298697070267701641424066240746065645759434357370886490506921810442219883739518691226997199494916769595791721591235916867709731394490955597924622246779905210613582431923754699028269718525270838623539476162085370565859552186754023455865497859837022442388008728559265939139953186536413746776310668259524045756867913952199389168409870076497847371741335519730661503699285288199908222342997394713732256605825058327429980215782576626908365523400178989081696448795967340594259883209499474464887241297064358350367052055515510122570003257688828435774956966031719569427426731785414903294167500136555831206243527585372291484824908765389921566064212998302891204535035902871883034524497084982206131422766488628799322522534396286472677784213330929686165468009965654691885228132931267788958303342102874766850981038244442606824556534428839015087224989972215370878303658522937840140230540274556623161243616443525203538906834595927176609217305820516498551882492414044880893057309410504024769720565057065148639300813441006357301064278748941758427929659118697926655974945371752341744839056102298854603779112081642007566558443452341728282368759963135649550401147895785511996272488194137504872770350035797022474145463381541917482321654221880433098602914883924135296312329577374893875161927807698023128146214573446672647636127777496892649307850518544407834450849908894779485233660621896298591534118280313118147621374694650791735452928769894491984992861503002123992970677304661780109887991721978972331043976582126074520167029823516719193504784598761468480349652917304973171426646288812425345602359006755087976075882516704808869195985086036378219903302097659587527919944064019086315359534840404405199550408303976310813989415645171611360047931572451952540640297329839529638310491691308078123782189700402379486751819075423536953886114586776220196978291088916522291447299961828790522821072948131951524395565628984225187384755258554960710996544289511338986415088731193166255745960410195688442986585203838288870846729575065521850754233714034743886162787847287958083970152891750229096498994229272139871024724614989892494194462902697342920953787019174764422139319508574109378489778499063444185105576517154391709074191742036938013210003601104843757676580475182965034761854274920984560175960430222170854456473276945919000066305610112147438440567663117530953958144909489962248542087293548052439563223089940693312719633181333784242688095634583365480485952123561820616329366074688856468642652305225788643025460955921386760968919000735853428526730933823325090125977590524538633117987577068278361634055222040469223367362874615157152173751592826425275904001651807883212519271899443757147957517283366604215678265950451132002112659286844781160377646750248212991466330138906286085821774300709386756994849563686938535638324380023553600178543661719438121419978095854879644282658151189500803789985301609127609096956886290423560728439239405295804253923119065294304487216358212551222084432579833048976142758738834831057682745919274459633886714243500429968931325455363110432077856093251290111370767091587922108141864426608024317756294997469786990594664458289262546432107960098107048845951220695555160872086311244427806160629178278561588624899514027690243159673119157002383914854601948975951272826277185652681162555312101735179730140493006750365373305658530710941503164317527404121513866569960881045698207248006106788469944225745633618697969387144696609550653444672212533835689831836758728646503669014129306269366514355048968100520240927915231342105544187512280371631890618381269305526565610265445493823404708938464008874716641002060434244323124527424656171111043108904162422562694677501328483372075328706451056618799673441050722998692376106676878876576751472189547170163766042098293704045056242201546326431750352902833460784324681493889992289315528018801221078917967461111325993791545191638199998458760293046341344955357886272817281006475183417653477863098820595129218332276398740045832081715761991373905423945591961190969246642977411710986370534981778966974803333400971103691737287690300023966335493161651839784688119836367665098593488117643132985433654488803007184519009945733679326346679487730825511351344676490532806586911603134765819498778823336099614059265616640107797631440699996389123829339005281425187382665289517656167085436802941222457090628696105274178837573773293571122779467041773152740876260179197064617946753577926857190377523392681478152409896245257676505933926903872078750358890110852904509228445069004068052297305773495546512337294035051103526674565195850658457263316176421535495050436728818425634891112700841740386290075880430988119798579107303307699411614366643108795212105641577523514973005560503916342672701650029931450527052208706181355062842423301327461905430012993056309538825278575102325278611445048997733239493037615327690578056544423793004179903226377407463091909737322856195942456599978531864791932950921647358846473099858216771474731909503757178722393454707996655011997879422949922364269935790534295023773595790765698028428204753460820515420925405531873009805836082472263277897569914757504064733907220207143986810313322652908116997239261570049781685991016297550269458079097702094933052494815974363740408029461572511184339837528533835205062145577589227996345403274891872845839945720512454173942219848486966702039398995034678230075943853618883057162479753111478351094863129417779387024943941577914622464344997842703257427025503487117520624313584716927232385794804501809814301642755526342595494541514331255279267236564173288241836850246050462902026365143362411559632298349875420944867536048038999647229577333597662087909100875977916090565011397560254682411430644718890538241000554524089882389657747386677451683932102114454184525103637891412720475383010625501782185612135132405227264674307543482409361363567859878570043062940075579309701706658915243469663559048950239979444985639065808858275986390269208839035113187228756410369457833344439468851507012679482984140536588401594587498614798658677277530141032505054204671588554500745045214492716309268053149824319307848343811940882810822301806410685394075977112119047390626775745912411651185986384499629896144585766201804376549605702789469799643997129904036710270311121313356465473877122231184955891461209893529369339671512776140039101276733758465790244971104445748683315017290828065791358542615581125799111668609642443250978982527486250088770241148498736398437832370437383449335259376340342760424061652350210457380309446864007512555213997318523859671144354154725049151164093415997695933135675285095123462243536116777018918918317592509059464805471126128623338729764228695415739320440655084660517332952101760206294500825140945066411171561123527235149532431751239456176240303662968008214835365241282326618533418716163095367476254261531406577158631664375074492365991212982873498206194639972055767111512544071864871871218395036709928685279629948803199800615330366233682521527593487726965151963263753872282830543424089484875452467890145979276063359339253148810799173075194175190521029252411283906267042105010915402627077985423133519056572139036377103756904228123152780517943349793534312160495552453792689446351069280009048945625898377169888759499311795554709526293208346789627762993168997506529026483278076014670622996317444402649323609502943649663207611035998708746771299771331420490533687525252075205476955676524773602309416690040840050296259906915819791425842634103586162730411896910537730428955043371865138086280577064450307034813215849622148226109250986876011609740005922933979405597686889858595234364354413630511367242036668876039103581794908256345873899956576487806111462739970099842252058098992699416050762863553496322509431529639415923183593362381263410301772033465521143231860948343206179657187813597368666461346922141548024025878856191190137259289607223227640545687419024265247471802593440057554925366611619867162607766934282651234528277892632007388616214771471465257187778453670855168966052095177304964985273585333915955942853201549204902734705915187987041811472483014874360387773443591709839895519122427200271794277383720284964611905322409750645017257423932302679686092481161041419055473153778655514942062065719142796624022058289052753693153031802979983767382264019521636679943202147204629518871386115104317402853957792319335088042916760748551442792122141018301222205989765493411306527874030598056632673728593022884302872498736952747506593735681939994863085894984494954951642493814784930568603086838754663691351342021208105376689246587935393946688099406845073439482426050576650399243140500083942043834043812456070997093544449823002301776264311764232961469048900775397903687639762280704550043106109075878429138363310131933648179577789530626589952101964090332887288022083125911393191097695339597178724321603200170244380972074056159623164382054937501814208626921515355876332599412276192410024300392632280574315381993867527841349736442951144067069035883168440334099988385192654575774822103097078744633139941727816462363155268459076285956504381364650068139222666914784837960274585203218730246492688489879631871798839001114146156783783224193278290148414647162754516981608755919234716138537924313770977468387384498790820378975255884157788510892479071958595648960590657585900304273013923717131146077287528084531148631742443713848623075896040139810415061704605348141267073915880311883575549282838438520887557261557127352519319046655248722340639229342011586367098729631702356820181227038044177655488005118795070107033508572010887128475570230605526466273291606805493154363070500487429311582318685745205530037042088707565378746593422861675620840592557231172411411471956511007498733017733924683649258482752401712702491856084818978224811203625421825122053387049906314989672104796929303301390581323403168747524033530433287494747137403721166191021453319720371492352361885197773211777240847819772473860247045999163245297855301490924110324087957819817926741092137742112574493826716039026262024585591308242536320046428325821689916232135460312006518304775388413128468273555351700738064783526892807942589104764075420128070961053825523913183347120727453559160805364109533465913995854427089884117066775540122000342485224523585311061355967405556537221627862049154914108230383527030973126191746178810955147705213247101111381850472162996096932103779279733259821756347430724321713862955752187060884153376230890418519510990853725357729453629265175597136756038092217868161150803879521173012212262117742039855167484847197551503124141187224669574050999613950979428085876292335112787826005148437459855879565441810457880866762570194387477021990165484872750585669480727310213807063069886259828877547429549615225580585243147845803611355281537952416763040223628129631610366922902038313256724563702200631946043380650843442465326710946071706021492866100927651562253496982272525403898669712076752990544688049913401888818843867220891143527148709995452126314961955957605857513792400155252102221182069046851584746601027451777180705835926381694400240209927228585768886602648542922230155635309215633383509042712925006203574093608937892955747520806844402607532452633147593435949394828234303547778098875069720816349998033313373828417799389942454828297058054694412413464705273701631926628018520957208299482998412900238334222115332465603150759917570066187380478602057850590251473339549092734681097924502229945117926327083966253876706257966280769223954761049738054746776869767011465282364753337077403944958156296921433979101717657959912850382584882088322290711673285044739018038696932730712643343721545162374680651980822164818807334165248829821028602707322195943864926396111786298969512902341190973028409745713416713937564793930329463000341071662373985834131020069834836068759522422952195048579808559158853204509658387222414569727150770077359229229908323979814846745238210950832552203085053107987031501205557978524365460482905798269443029614045135059873278464270845237395937158317490745359496522798820775647011275973595361523762455499696690057644643984689899141204577597488200734650405090767896089061155113806249431405863253244825405048816752719895778171661301373436381727327489022572868180201833270885428766525610291947434441036338331239164416559138293414493841914003412603813474524022986247303693862661860713440328292988696819293329968768380032330739500381320381198652563706663021618796456420086897634595588053160976450646811809908837180747858564684572530380549682456576373990285028931447994708843474671614017713759222596420694568073444023087737932205089463396367578049071042098241451185610557122403487736647744066941261217210144195025141344148697274604605640907506356401984296782975404684725853818776258992009739563958858124878819359940292334587006198921330881516724187566750523277439063487999984643489498615292731720448247726844564318692599033396062508487446990391369747122047168903510353249795039256594857639327616817980449874659666934093996006264683497093262435802943509408816980790442010107596468985225865630212362012689507376464926931320120609435187717780472776678711277315877293169948277457559603307605987075178186638275869315657422295912668098929083036432367740183216024315823517978519408751832172926385711525788137179801980102286114672663740569383284408837498962766728874922812527187650497279226220730307842011517987950705261676321991303372404417895760996740332429835913136736354965915374211307118778319083642047206200634914258287086651130051311251454386324531924714062440140478503564572234648460683666037431716827036161439580329510125933717324096995949842552836355558899806887562815372765511800949824955120341005402799019243928555386461564185396700040862172365537831654770027315455578180739552451535458319150819861613280116631065000717933158336904579996595136962553226223724405521541610409645606258632286019834437315073677315524744203839924426900539486450996121759624127514445724317154553413197995837480375074638138079782522617324720215071829594617313225987514054745387224759569627998386973481479565954644572085621288413607308266646339089378781431939968746584484031845137443456319330539386358377316354986583018171104387050570395751358615819819670034037369355609991604831516061937009725179666292742127712282807670337305584191081803078646214816536185052096781716149774768869162481614496220848286093634117418453346741483543459898071576850453978525352542432100498650667581499941451263669258698650593534436037917075667150132973205772653696168463720931205662224511984623475697582117333457066123532934436427452295284250079695831452728382447566982119169393258204338840124680763209651912610804942650457253024134557606494666806911268549747913304293973315544349172267552581789474200159739420513845241015024343440722825340417192199327319565613279839748719980520323352374891875400323531376748148401199487141496850842642028499181922502988672064865722266086122992080261709447477010227030841035876094688206170531820066795252984750038485420841633898809573265197028941828450416605424916225952989726024689387252610634907823376293581757695078501718275935497153135053326312449423249355215698798176731896393114283926206075919687525473768766327086025592247913417340257646496751284052549463388758487176877459922873759410407305151412398448508808217398300842091760874082915876172274929866166152538395655141519208349388366383776514634000675193489349123899356659050791023667152023608944702937054476712342420432554510778044121087602432682666075903732506010234682132752151798864765802854160436104779382920674098350490589448344742646990300444408418950968688128212292902170564527587809901875542158558380706436383656992106919774611897451772263997323978426688184461863590776318877601311786248034400729864121132712188655579288732503298620046313583471058389127807160023115449844265483511852640610819908889907310351299022369099786546926133676882457361968406907013143980422968133726744675544184243123238927934571965650916785196606090816725922222988588167917829247842941122215653410040291969114706274920049878965842657066160365717156831241838221602803491230809207431827133520657728405587952443931772299003720136074762777883102574063763912885483144699409354252239043826879788534914633015380197963539272583850741952208200909069325236991457815363877127039559038570594660733432439509313760450987015326978098046756094071370945532306541511609338967326454487025629631391032867942843121375648026326211167083663707566630025849018812154043682504948365925353293451246272008229441257260290731948184891641662305147643165609078526833354614122487916583222710467797471292009923478144055988423493717907666230024106561657432310129237192023006491091296417410469278236484779258230036334338273948215427806378711702284437735317297626602132671326276562020849074422149131670019040050809663109957537964438542771158587668999458530771980393173257845557536124420759903048413488602121428740281654997212746949027016765871307506686288923493531676722127900606638480045317269831775944206742505708926672039098509652139853478480585778067729835576944341012600507087771534821400763950044124115131104301193848003472494626617353318702934720895010976284042299108140491718624368586570893226597813430178409666979116449979464679334832297258043360006477753675077110051856384963031385006870713328851373192435651539470452348584262135393495724482508222079716551698620962367440510816364550351430851911425780004658254668088756551529995030840084402268329252028551000445748151056992082242607020615254009074892432230963351030709021162249685466357295640968023653314369303019318054524526811836522804652640969167902694623388158471596720120804586872479629916576487852912520078454536306794526357947864856565706996926297688680589388250633636379305531954582796031543687876622017021606497862021982178014699392361432273006503837432058261039286896155445172792566695219496028947510940629725772667589548047329856453354483395047414291716162885608474938128401162702270989129851205194838042361048604547635742370109680939071805633826062536153617105890991160697691343863162397175646627934967806458426086615523735530665123077701517458128185412864677043088112904920469053232539857343436926222328790841177242467305111375333810327056474357329177850344544509549360196304537754833685672232934920141816364904365056450286228029661709201538133334593395804897651539408501115643588637482607932650210188859642289105904989338662089508668776735647141528354681743660526818672608252789905106114190801016127010507242942646799942176330058735094637447116421162369207926308516551998398056076895412704151596498611308021595669860714016520932255303081707669796223559707685253855884374949760217623652578420290395346182010230920308105313833161192524678350968635094057763120981849610789297960015638972458414482470604277627488941883218509503672553970859768207900609211445948487254949829923510487305277580492418955561238251719594394292105806963926826359303849416484812340828634128860954202900612027560803016288426787203749650398108756104059400083013895343001503298116934883893900829020841094249614211084914292826373969190923358678188975345892018296124417145790522032428346243562258196648513447379531912099890218209244127946787055830198551110602873454082125462669973958767436583720120775940762662173677132755378910738974629153444182388368190649696413692305362179627536728669920861242513639907791603958416844704974828951077338854738981525400171504859414498191457772828338861661133046825578426423606534802626509856756339159622364657223924553178051077412107786202261792891811830852283129585599301581728384571897835792962608322230227657404159005708836441076672895517635774909235554330521988002412635864044266804139337441341901400692000531464566106345899148574044882978629411923795102878243358021297980864003842297044353899422305965911217086398940435956548700278304082694085467750471132103459884370897609192959704670798472261847088754935637702752309081843960161687122977631423339670725361921735829620618127623028828363552988062105095109366206601133864227124667232969926532101817765749384405868204578282434804034012925643943128859069683657153281121563529585891158104008032125816080517160196255608574234659363316089910719248555597657047447534641647315471737954081058794901143004431209987263612541271498166908559162546719650490492578061003979534911175062286741669357841881990063218522599335322939525401957863893015154155117876352370287214836119675981201177330768546346489464442929801381153159457750514079856099275040887498082693012588416838441379682648785249469782571883472340721264765765562743606616849116460116045829344500385017895923307055354605551114223956016435852583443331926437640321425598007780000034492837118950405856072407795652887005212584462935916039379838318089998212682441961641508020930711940075020909753561330313160435485185284555823709401221672951846883918457340957743314458593379112479460400963416907561844283123571359988826917718059120761131943772589014959354307844165119524164865178338377626539848282875566401764046119876231346255077927334322173356742660492432413964493250743759043726260919017513864582798630310107791970771858246541491821832502175391365711436890213660301642187342981109065760031466084239556636074413078212304845012182929267822990566132990144729470640934735575968922983011944944199824532239175238880794028111724832725752614674362492070834801365097707982183812485625542334650675636482282939927302483801381359273361869022018519631883923833058247418343041411378089006562253431189323430954327935321893800949671867328922033912290088587516889333630854575166791862958314743095063533536301069815063131109987437456873560370343537058330993742888812412563986602998507829478049822988140835575510195967090553689340030773175615714297959167399652370719676700430996948777971092838831883218064884625965133786054824839722774821389682008754917438072653013457956939637246766897062142177508671358840653942491509433031349365355996707956181731285290772231998328819010758551292516226775456960615344030264885629637266608301500301017434477586831843678411123067671648703260950704487887384685966360205509198532177847229125026989484047252514798567756642831182193131548295349822756463938745992049132278905135600214696542112630013016699302871521254420949581877594180840704861285939730181059773138795805586186698758553434380745641828609178414153970800354811574728599178904522956400414163875583360505715928230052354523225465096508314416953266328009436714734364752162576709718584130848397245379420882368346732354676691946107359383690221402304873482874809815538370981875678706884421645435800163379505651445091041755294478882262027195846918908689015953724324349622634577128983365380111186192234180198697238998507700316932605466620417859605193149337503340256736872099652343659344522120197404477912556294831878388125904202676429477203476991059644893918608054212236571222357743181963087898934211231956069621947157778538542970205771167330916528519684473310992681191131637965965250819000856544292563853343633080395691018132603150731609795508072929154309453060003959747954727934015937644454872706439798472375957574369858521784963618227364380699420039863278737717658218937482001081471100745915340414898512299787508897319369266643712229077601795582171162155151313215340638448791669994331399528877103452760218400570010932390533062489729652414236922114657742763838349830291225103221888170488131289192673387651116667378082343019935768810872261345186423763810246448573433268408178376680372204646891689561952589891075694465548379941532387631492790335381447226652021192801341958601817581975577344707245243132354325288613710050785586094033219581074485743940684943066718415655679622419541164032628950042837788949999709902632137678516146262039036016056380147962217143571641307131131296671504220218101158196216399669391441305809135743392381381865125907947378603773363434593933114287140101245336925241342811745562989272182055843386620451087409957917136905947744376162491027983882038138866720782805410297055877498151998712635084435553649746422092413973014189872641273823375554490934329042286359018551358903239757566322699630311426601623516822081769934303103531379632009557022251896180946910801092030386150089273706783258117290751251102284718190302363830400642420241845691317536312897660707775196095437653679291298594337705323180667101104773933640234544277116405249888662725582497579948058988722449939797208687084982471346451262390435185658024386406660918712468531767518977637761866767944217461799175437653539678100556940286120729919469487556209897812734748548561089377189157223547197098780557575939724772914962050885682775935194624466687801678762368475735533419276404736271278168791213293341350967111832316785143073694278658432754814642567749074375944128583901208746994352186621879149723332263138066577434149290857757238623101583773561718032474186336711345807459700888484766632782701983229793257400564966328406469118887494687360139609165121226158047570336141098518770582372556808745226894084039139707843928883447313936578094565187900568471971004986470433344306723044028209443679478853622880753200027215607105010466091369425257312290365258717893115103766455394203101607909244927557957713732801222489610444212741291364808173750265802218456893366807128130423768333042293743650748423151712984111072234211907503822769095353031082008595242910053302590370867058756443120167153125321258638969547397465071221589536426796391504694515579152227122306553238998303879461010556297198378128987588294003988916604682132198370069015824712903762142395010745755675386860591770602569275326443154133137375718912382791450330333757526715516535754567615887350174861840095516230359499202668456900507694129313965390701885158961086737229749516876006891332905195872265637621806431590988298911353193618647193913587674211669103548831884166842122688163802968814419820933512612236142848591628600820549524646917035672327104553046872417270046891318994528885216317272035811567905442254861960409979991698775715044857925258168607811607158897372222848992958503949787925463389819043309788907045782625355986264784278672691426448067729922928498293212510793412971109234710427407518977280005667893732705894707981980847615498501171424567727660279625100767858158133552895143255402217945519226130531334752159785285429293628164549853239805655019754724749204893662488418475452396350641925934385280581400492550414632098182394347155925645858478691622708151219506104130966477607238345686694700098794194061385075302953821077148235887414389673339697082664940694491320539148564611508515656315134398828537241308935022827198828777105320029821520736051865516874063425022169679307681253726520340691281616662707761538084235983410955428311222150240439196642741468680525892783966203659583725690113771520463204804425468972325941872900959016030423706760433489609052811368173721069843286489462706688644135787354566280741923410198760145915614907371243200523070351413402433547896814202774366826662862910159177764046733508875584511962630233500955498611341247985209935954229729448633560391837599933218342309669175417467627671636089757358302211299316872623148624716564845709601402049545304504493692861209844380045981615520204062010510549364092827733397146359657134243123499861791709111605307820721826789352896498887490269296036537562508263709320159682445587934230733215857092403315012840662171555657244224562655138303752081292717830482588378540785160927744389319084591699187719746022889858787827624721120421094271035820301706184362120599379311558814308362472594002058838051548530811948571380087496498647675256070676753084805077709687969151607014940297118640673995756668788369417024866761857197065977013815637389223038028726979170015763802275748401214660739709433849344197662974064481478841090887821730918367243873902611445717021201692504331688933206702011670566755502743438126828506066347378377319850845692717626971683024300850384234367860800449842480239076714515856754406983709370991307165470191340347980965776094460650108076664174160490476495967656632652376067891434444844239675665506431360765758584794978645624972539148170463375600685908343058738737898651387033725094970795226327797704567691722193260174954101883025442550332024148183405707952166555662125857231498720906654340935082103372475909335941724474449355167287392265481424831210316334162433173761202423634121265779301716418958992655157040254707456683938488770559613663581349437547219812224070829720920329334684269213756840726199057220196065205831701306557053819094347717884727777868119134079592643530841012386175811662210777446470987521166410415100921083684243330263086517582722099291231740699662351921090383733902149939347501135559745395461769679254092165267483065751334362482238933574161887227561942433920722779351481864928777142277435458499002898719020034851061588909213222696118883876379349932246328330577441962211451668268473658788382315742892488978279043057321188113254200392948830998732957571314607402368023249660078630153009186011659590881383572862193685282691748294891322577893371467103400995496665686980090508994882295952340749764205388677891610562416319006995612969604807274722768725051368204033048692428446196505783468344769565110746811329422623879091229356734580722974243880399020023179039958102787575093511316955983309434106993325146528725004922951114485685730995891035356968269409902986262798795071067575773490794192434737533533824482044620551024822109475584437467547041822126963847448292441723021170214687268173150413670803083291568603643450238441442171433038880462557570028869078292742832729612796396694014733808164455936628908196594418243544681039968332231282494134957309957577643629390238787532329987448088607580028798206855231523645658697719090888819748999588646043659604440182045995760187776158600724393927607716995156388226643203185321248976616440955915350100541649809228511598774685985201345645208086031803315290638483162086365316140877079251146394369191665785505067729286653509464379542729053255389447549840862264158595662246731679394837203130106326070500505309079365377950817979359809479885699668924699883069425306904424324209726544900492079708506284927742273026884873017151381480317181972931201206113488382274058214163250949248109007082568962767088600505670434347684948832842839732060483501234435501327379621422268504732954539653582264202287063742973732692484662048977814681447612807354764512059944072412740326919399948564086093866654342376014635619320212966260597010741868680640628811864541085124725143161184346834794235926360349747946540810219132721200870854049905385756829897210936734016231375154785927557538201771306561478743641971170897601031288687882782860801135749271243288903155169211696716847382461290247469243913330389534719240524913746189581834061964239708433178901970404245756593565345311051118391978689440381682958282289098808688737335283693978289655659275313475025443301778500589578487621564806664763037831521288459334769442584619294612715907933229910766958422238413796644571030623351987034896612663378881180871292693646860118643696906075800899753998372781882705674204164309235019368864321571005599689745685356512328362911929578003647427879342010167182479988164600812485232693819486950247096621757825563381814419425323523000433734038709389069524947090972785251230904502987422041428925718656414337085764944533611456034970067953020538570427279124107195031487720983486454964877544670771834615498503608109186803711650043246493504985953361532892759134409726731213652922449494336910291574826004810435942029038320067522635382820439020225211670451108337193251795781409042304545380694703308087570350748070240063304905118696805356699114235203220299457260501471760039086681515144494997774382847404715265432689566208977533575184636187980588551803809265071437171046162272640573592750716448570964102381751768260739899120327427460178517256788954631653194214909481146820396386129138218350746535052507823352586474040216848534908398226882108029040149472346895516051845208263096466902294759119491926720872762011134657825422814268150774481540505617293149418395862693794720309622970395023357025101000783404710496032738682048178982539413066093823624472819894518066563538659830691774287247773764057642272753901858856715982718326076514901878449638559826367921316140754109192750930751596723349569666971791382287686801607480705078805300469507714323926507552353660112696103890428513619949706303674736257462151373876525516418663952665463466026100595863531983324240501368738043922439932204887301397897902126324928638824998666900112655441670617415801099006706014380565872380351449994589949330641089793941452070515438636478407284231073720459992304680465926507383121501527516212910027709805311329036741557740801896301292443312179576360440195822892828182719546923175534733773203261433597467383136014074899676389864094446287459280095253776863068861904901481446085659360132602701859212233934505499265206923688069449299285738607994981688632882392187430003663299887356669157132722444302582244167598919335694989223145169999901779138639965711432239070998231735688373511795704133579889636150107737839788678114500711188653109822855427906187462912510526830095813463281642045253679866927324596307898027678383370146113178056059084762249437528497458610520509835471038250683823700058258737442177223073725129854701513142624985180417334671894371902785917604366329164317095185899672048764106224050431021901046387774033318041050943370484186033665154617408130896966319085270903575135919140810781513167993541805231988646071590401648129651229033499541747167073360761793167397558002159209774986929965019688293963780299490137481674068906301610661776844559957348362894043543504366287368888557588177336300147614127694362958467442099232371906019762011782507843995975130336672313750698273651991001921489075397898165732873719954044413126966990928702371234444249598818453730139021001291400526391354107866339118544739139545561296632912916427503483435390726567807285149934211566999080825272995691935465904854816697611575558657364282581981767733724448654271076823766609505495443938917769001125061780099875023053089518188482773789297336259282511337997085305924853948591869630934919892952583927142723852247212209631663077435430436053859723188286150543753352549893722326778008886522848710516242931709441140142195994908312510404963372361600051610996551251028717076359342053257398791626768038026827000644084816512753987984210887263809834836684619690824830824680255818006456181395950390514940678521249309693850305196683202116468195892340464736787713419337818126242523724389355240260307787229159415670183400201704685796041812489647936998400377216207660312763240968174192163773837344827576752441746748601728940811148062833621300203641180822932698260060922885685296946360093411079572009331627471923089524411316022895313700875358596966109728129971216744259817393374700643357322429519490375853176657666653335500967578826952161401064693711667714008792669270023667124710077045783817720268567701462794991093412377528328862393456026519548696483765235878991015653896520752526574287264236735288508025534730216269009329830476261763752861412812862719160497321765992562830789893019631956161734062344740817654361329369225727132527081101842337051430350733496792590356136033378439287934651397792425244423325813433648471779614248545772795885252180570110614487217224584233607848638640835705674522502057537779490428711357197062546251777740066625171332519377056049126638499624597973859385862452217552774969563917142097982210253881336149673531616549158313514140723263251110891454834900398488416319205707430523901789460941546237739894556891894259720869283240710250655995434887631831166904738897825141915803353466962470879360258826308247076403850132046166393829288640178347223003466787597442351873052721262377950393879441589682861865290262717546640960781315339969325369882535898848363661261645346303521063256275138192537610435074469188627203842563896804207358592348168047777171851208926769468505517777072377422475783914227182156337598457525948067419101296776715485960403365292211568745202695455437673077668605873655271133889689012501997012365149304694634032330774883504496700005106249136188645903580085231055335943171837228651866499475635881870473817975441235121760767229378559575385431880275950653381040529651618927686491810525924137246311837967213602845115256868522813811448055547905562118510802061247379035126015830256012498544670968778837482908741729670282795072495268922181757829519893200418795294314547619166356648475492953929243600588072101381910745380708752828160273235182742421939044583179153758309680992919314950277413970252385036163511655481532081224059137690013519704742408908142870987165847085761178192163901515937226549894328288693760978102234001229542354770056984478164445176929966470175475258183227827854758266751272761722608984712360009760112260261332450370092371186366131833002080329476736153991502779715222200478416378923133103002639376324599724699534501423587286162303728931500709856174302292573757114330092128196116352605632142074898526563577045287760511395811744167779715642380125198679794843932591656529220538991640802559838060125736469738387666482323458825080128282990017772912429254483850828505501086001233890263707251925971923899927143975163458024748714232624877595255205352492955330500042015462727780483317544908283406872856191260831426858046170006047367521427062824237068967846006256941306090078640853510992272873315070330440910592298291801893933529025358244571463441378487979166546876500997204612238791662029390435703379929195074488113776090068531321554686625480402217117964823453007936537436618932947402518071061094720108926308012039770672131198858232232695325332188130575482991300327978646663263286949229900539576124065774455219561202478148299672287013743726056503692384897057454809227006377865171512734561374704145152792768709806327583751676278634852609524276641640449965427251020899975035717360537827492786169070892516490927036286682277784606372418772707632972699934065354714283094935316749598595184020509486625452986344895424164128730385738430190248800984692581001184143947445488193112185253940723463068768164815354080320758334551377826090779225547758315068417110399146726932699061952287144860011105110648698775806161068872057690503817001467015920261821410732978590464370582039308459773642587622714684255549951906132536861131171731011456171828654688102628327286669593797977069833537310429444058726053195426303987892495814903080191121474069865646114274744651176250405030210887694875018127147571105665084403701732450681343298396800109866830093899678556513733019172543960933207040170847641614087447955859136365935930526080382217374972617793818477429595491348402678942941054168294312176905406756318616753502649467283435845842356201922457434308474053754347368943670258427218999411138867452895110021851832008967224219112015640592476698721871052659177194046496816348978915590890890457756894569189364377558355571111516548931794705657842796573315811322178275392298956462637341971931274333105444349666506791903195321452904297649086773212236492685983940596703584449313657783600228899481402741394865070885442841467023211439298523337713191598206580972550432704965060950609800300291195052747719326480249921988569613189735639631551001703454458222604427736656453258553265209609773919176166069813833171043604292290469918907370442781977986486685194546278030918098152851673921251078485786123788388068713325423964192903647056896596985605497215011356438499537049962685945675332241663110958514862712709246293101764464502910921746039990478442395819251863848255561889311351693989991535455712621315174275032435518278741849846814879071640325911067033381903050417890182489808470900953354528944052106989479127877918719071058582284982532837053725038158038704769319367091263230521956159046920299764111681269729957320011477018143480601069727297919115489066983804710017556441689960978160201134617755027726358582670302566753807717473177142014029759455209267391638941238127482474800302233529942114253368209372475995441975510418688090399219431218334256018595739585574882981793571653774272893261477003627711342981941616995578758199038635341736071755461555542091436381470660609771184093164313189681282614666819293282043038504736650680373376545375377216171224488650188657116295011546741394245398028625941180477199280290882668581586682678761975490429503969068432257280941623719393907301482979142523260717839840965409824337821688181538518771282569501288371548097962156171200563263945229822646912486877646195962978501257006732835035961338286299467313633515920526069403254830555016090470549063948627658923618601456201760090995389456827446133864758363076575990438265344514943853599116840415510794926470092487615852714765329417904696570107868716707079764381670833018038666349351506389730693667703699144996710434727024117256938559824467904173925192568012823542776478787604347959136804333058635599799791348312616700659609799055831633433408948198478603418797241417339963167124502578463480916571420733775869920830717201311751734392695385793903598829324909564954129308801787258245605806282039786661351856151274012138772925685358414467407623954925684742977712601359473493975898952950782140088928344078949632189096605436957342401008520263053910148628561089781116281386776981237955227684464991756380210912738174492650195557549580792545548693334561064605854596842262542339857420171154918990194865078358599663310102872362123579228135960572943727190863666467696915190396673816447626201106465907528359477262140595899253781320764453953282066887943551271620549166061254709454086034341541765776296645515749031417258518848577901831015175922972901701973891128075321523433723268303692984846470803070815935302420250822941307658314665074772917911665533550929192639474177506217298490245676444225182853084254500181460284727050970349095692952060977301635100318565035447538829859446785169454205662307491784901426647652789690576287422748182776212395381790582782314573831852514821384173897680862413585715564538111409500233173134746840895985329028327286590445859526386829967541829257943941617640804846473521657870702262876922996010608548047354707090366018189913857100703891698405255151473435964546661671682416755775982941642010756292852531855056691913799649974801762050937332110802622494064158842078901481123735753946202636603878399577998150625023032715730059711608444808103865812088498702208232162838886896249675456858571209364537128954515600711836591806135794150266178670009173527719095013424285287070530976898762638030156972123716106942411466583957763932097484443681180474692905355139362631379382551569119749431262959318842416891734241016814421851955094756088052277966855583385512224496649996954803492849337287103448219692229258531750423169617113280667193632569555862416301581365556240191435894098522438881584029166080617953620992617587186754174625942792877348022186775723674228441300022106504096142503653340671871797750169743493328793302126210257111149169393829254871058912072894093442155927845264421956439400116915006752205296052086937409343114402049351688105103771270516719651078621277297419956594200198657696014320657396067569147057686739229430498177242959158596392031366375444737576004058677108920675156965376220932314433109198030647845585601447688703696014776549240791541278046774001722926108982478311174852182400324436162433615939495034910053036393932797828403773056822604676875432895361834717393045430001519605628127566391402949732774886045936573815223411220706858533133545647132248674031657506913397177209910518686055082472164620567569916000111046426523489044366036114195150576499291550357051060387194557070694599653992743502052538790727559882530772707560535949775561749088054155426427315187340238421834422922909650089140344740596286571625193256325385766295547827344197227981766266019268045259000311066203977641439361376710659787514668945362527957752780052175658731458477148652942880215659706703090197943818505002938486986814444761027603505091906574319224185363152637104440437120032661032617642962666888657895436525357214717266502668764698427908856584536952207591747016426110899774797324000866167252324994354582404143108544928301667314363036335616261934612114363671140416983101889658817759345154475737856088263662403458636385239431316723975505636303192846162888081667629640524341502969705626189716113363397649858354111994720804865425389736055517613427630343982492720233322415939864086266680197229893861910378890304449467555670022698721954155956840251583924952781197012220060736373753318217984057785319620498123966225096140469409226112988569573454323576242316514354923524326184755059451029117329870441153082898898183853125934926127456163218869177488966715435654016791242759080631008916629690118189911874217140294896155501532948352433731826003986596035034004020839774051395814598811989830894319068293730555970401441901182126003479320047434670727289035492541516637478048222667272306312502457662450562220209808633579588702455053093320349488669193593578315188499293544177597518523047310943539181359071575708198188532871632437194013134835697851848041936958530382108565324793467430047047966809718501866396161651048126091042820542170605773563836313674924843236176377705879987129315300547074861235738175255610276578471698663175743802452364024448196928461899560914352684801938291247776059087951737146628856285796802773012345694344712501780025034205439084755586966237250109132086597537912085220169283936512490767366926532380343770923317599251940868541784849032962231856431529095188545973691469000626017475292771954046769247326579241266904240416830112413406482971145554664913625475308507191240645488730679677544469717185760042459624654734532017331682314366750496940391076646619619141390202951660540708559900664027014490445054841634770016744774230403188756330696734745359959203950258312383070190271701717404442737453189834129296354075137260538912327589905395892107956780794981042612088707303438189639591282380714465166375711806290096700727841958676453275777391575146945745415083685876367989548023609976106045478973606293922340789023742168075652394467750871456574910633902730991379614235638279406926775081327820902777095549110280831862135607569295488361919176439495119434103247672916168737950465026700027247386070035618351258699758109629854123341817303321569625831276997029679263325445140099510933211852462649880255051818958414396118454412251982003509672698494623305498279208062037019630404646836448989255676736201997337199989799603574165338632511207849876717118517675333078157611876945877895462096514569490861500473876602086947199743452278555380744391535791469793605515956470467074119730019945900409145596953689848666770253068347872633643760489157682787360894182270897933864730018974375296139191413590999027712927181986536469831854927287212101585004367949001484735152629469770779307853989327749508554327126104790248774664462983282596849376238762106439748104661195780343899696926395346461555777896477671799263759773388337506865954198092168507923746730839501161225864538849356173645685283780312215529607846653193471891441248956124664136684667019945073637230777043413797574827610150017609635528813294822629106525961266800288381829354216448932674814609495942946795801129906819241094072881300676897645150682321584920118518720198441244734387173672656846901233889839178353974359026086495515890943470245627998829639032888311332050116422846522912071056270698286107008465398816662294407443203690867631610557385558555303745264374083387914995548408837345254187630113222517655213522070699056742557731852387136713369986461306315114219701532529586519825655188281462305042753382870911767635777342798602028144898401645184859533045800586556028464136269294730583083473625639447493307397625896131972013908871306578172946800371169856389478843204776737720378534564628441194628080544208055481026107388190604187290342124427551201206752136013209014232429452529952591303442389564299875377985108014318425040329792793853390611051683437254707535944081126721436574516577170076746484075510463438817257496041326512360305922314348177660901801172326307917059998718005123993995866409790851635539798314188644454660497390166386014418353762552395709244612203792493650943379749069399651928786422201769518849900325774376104501393655256385270776165023002960078786881205945712674003756287640210816176269224732926300483472627725481136846172268728428992407719500655541843797319536163705428993458501403615129364081956513249774060649063411410735390271084512152040903251098151535704478966087349229163807747820810417288052149123049604781505991912300160689611248263620088997393847282690169147152790498248551254901599534691104195340461083390163582989509396110143135610796489788041976568919381182454411585411839355943043181897063203357451956813276690242918798461265271639537269817606805845882858195492942842041846997216874619303356754469996325203007879382063091470259656527046533003908715889027428166683601350447971116879285719011827677374706742685832062754136520952493333066509946546106617460641134878440980142773354973682221960924108448435371306252052752806811159839373981334518355466994717177199410399434592030882927641315887854349982625099273409262371396449983582360637024929332706285194797315210550495812930454486376522860864900449041485637253477076515934429890940588376625224164533128630269291032545044977636315765852506404607878347363604798655006172369618782864202051902774446152115834160274786043505431223841952936851609994428700320952800209546584470030020518373408160163774353169482138996047399454993729829790553483491366160353598495374589474370790837463165881269371630614329982890146680483803891128724717094848247618722433661066320304620145881448511288560338979380983723531523600264144139048006825243597347920482622612322312779511708431964708436447147368655489886013901358068046338334404826820220556087930654501695645158568374822823385243070312605006010944315834531462080719573722695269926792325447955675295348382822580398083178006260854343566794726094954742815547135358500193585975224284184424448188387192792625020632774653270427116769527802609508314424182732258034533227428988389598183833633525771505457807803242194562722439964361802808005514603120546133514398695718420705276817279817126636292766273431564779068457268229095768823703648574395370970987095080063687480408883431659362303887360962565993730003633003804975948087858923355914852503578007099407564684354527154262048758191304838160718508710060429001167906524511530938845805607620744284669515214129223619339666378380900052933980299710992425522185308155852607342987976286813550434129779547891330126253026617150416222446971963792337097489293634644669793025894195943979126499322839060839400049937655026227647626327341816843595381873932331034170045168348922123630303809371809425633856058811601783919061977007655633730623952447960124554378811484724903911517678486272217983896543769516069151858591817062719120808921313082508421711285279785289374599978553150189682100379660274236247611027312633405509608626725842381395353667482643511014250017582496663971286541532563489873703608105910140731764475216212481774066665762708245938324361846217706871226447815797592395695785342724335704510261469104371742489695017969081409298053482636313098144651145368326099663576968424425905261294555167933460842046066791813908914744125359649785066883253659685270473802033738853108054382512719764694626914120310952167177365334886730511686582596085988735683401283034802613908103397383701860687999247636132902889664673257398201832990608487220766254540057011381498515469120445996276016098136034310322929688656547999288386496563364117249104103990176374553906387927800500498479301062031129105687937401620252139893294448101188192945333238941338736801886117966003895158037800040606664007308399563101692738956225625775425017879516325374782079057379752774582995838650443340599692596034319128674592242429017726223322804221808760376139564798284877656432266678143058475230813996679136817037044587298004826255403758146014133148063968672796404177846654391665390317928640570069007567676980938968556942231706028795985875053220236671848014138470946021511259116404946728220041463236197247575045523796926149850721515768115274107846581496487741354716289196847722568807943241449396287504484427811733018722746461937727417137038767261702594746971207311658040982460143874345904707170558872571550648676324667667104181487526074947366550606277987012524954879389169833869484625888167373778768911719383728038886119203149063050014602246651333770797314322411814717024806915015222462335575426711433682474529078090731780717092615499625382836687359853734221781037510247303908076505817426722433756405317911814070117252091136709184449933139310276258982446294234247797940342738147468262877819458525105245974608194188036433697247441193289030529019756458411096439195854933146733890688781868210169842432054477399586277213087579249482309967873508591624415361627256179492533906859744752485609918848812941386626033999243022463990062509021631101723181209983564657506857725290753458185094191337697039414876577036482534412362977401713129954554260762663239668013609917424065153512424566230026956588892064513525106252893138415340654681974963927251724925356662435513738002532246684058804351388054234059652990061756345545607192105038911717037265613084216632870498677794252050897759591347837652020667573852454615245240133112410407088316532397283966942829119614980373119852413733985387030508676453515950693700487708177126961222573438007276438922843700823256763773286126626466849588888004490116714671950460274163884152517386267143902893620363435284958428952849428110903554975279298677318281165656788508963749270758027232385110852957555298007032317958901425923133644030547446896888205795376143083280473759609418513113027425788954693158109755486066938420536610280622197571565913568803659509962388406413452503896186893949098323311306770045268905422883492729288416375741538628103761737255300605877528583269022433652976642648371790332822065300513445413839721907244855327829707324381236173321742561821051152192128815504970298811160206761358708862791920611285253308312025574536832353513032650237320469493728939752374994269091058690692773102223476325059544514951679832528951860196071740950835678060481450368246501889734601780246942699631128159360361010945515677004411130864088532595755612997956488695482662932271555980703043511503882957837657687097693755148147009086112660031634221886657798716047005398777798426019976868511972545227148503111496600350942247951888102398123672401986534862339855402636700393908731633646162709886220780118492022486982027119352955208625120713180921550513142047719541205827339484162199319027085912578250511364223682314657909681077222098466659112004287207200485793308173788079200835330229118666817365510209177937558044780211092163709574985657707322372763867975368617205700906027212510761215208890177423508196176801296863039370728026709015764568007885547648269748090572936628892006165570171948943386702476292095558361344531240835824845274709954032248518875757485046077789683442755642788048972321009645461188076296418898573757280630643339363713677558279298932526906222676935989128053931383879623532303959688547385430918733904504097244041508515307737197088704433091036340560260060914974694050456204279174870799578086144816042449957884453155173425040626320493719718747333848425491716170103391094500831516407158450535351579597474638241713936212320317823782376251811582852166618899529762267041264454637376070306507864014408106430403839646739769746034504293805500497208075568212831467226242399165922572093208981086712313268545147943987132411198477242227576511161901847030689840149009827915664066075135786326729973688294615929959880825594474228237727735373459385112927101645431232588196087029414718906050281391416711578067759008530056937008241198625864101072687436819983603462465952836946951771523364242007860686366077113670413504695853941206801604285714799583362188926820144455850539646696282906239759039404710451708504451741781927915590750661352403042438591746053688781371644866671311388859555063719717936177381450401447126918250120067853677328592410616911588774491657731622924312775017523764736854461049952765147509512824303784524990221546224607261905297152034871403358735392401595957782272280061482813967252852749720019082744365930349032625206485353418326880370187676339758399160013618929959887863954769692969333215888282741963567773370983028667078176519186223518784156597934418695371309219400564380782653489374358496250621345996784226591782928029903668723395357490410919886729936462755827730548551648770603126748827791818024570821703985740063732349526653778700755103825706840856690561275165489004707414442030267132146994043763518246417509816588832026034432265434690733773877428202171165788625660046610336161906151450483767512750356335515406570518140097604523865210796564870947422259449369885189891084931224613597035600613179489546006716574006592146526668102180121313251625435045935789765860721267607119557783908190901020864793974606652146428021625319032725933793193867723043348091774009602451638664142779440431448898231643690373045053891188688542164101320354215328089986541206828608485078707616985568459208255672281923058345295738261291399110226977362790735215244913369848850693427819203123667781494378673813521843674652535336868379076083574817298201819599748884368894876918607791825103655723577905109706496527522036753960906107188187863490063318606911850504812465404699403358905369044378083694396457937630155949178465368456601714631931205346884187141371023382528264681245044892413916520094562235619713174881573623106232529741001130575448285806328245589174382783113732873720622023803013122307009166830305432457231167399333745227953734818668246578549651311368883199096237167124571205885485385442550673243597524281387020489978880807300288530357986435715014082466775439110756558278267002863604492804374884583643520560502711887662866012419494315301150506529887808779154322696533256899404286535057581506867510696505843818838652689456766934590741113120669174600903721239071653861520661402254950473726122169183519542774183030211426848946526292151497630651276362124842295887147433824189449649732059846307216394936577922691538621457189204455551272357147207833919418360013342181165946028607363688350371766596914992772955423094334853488666636934256931692657400675030681471485823875036403047616662339078239072623757377517514044773371151769336826282680012425046721002067888441710903984234962979842103959040597316429299631755380676105478222695819744378261456922061340133192461219577705497480992623625251981146120680182761113986461647238927639040603063642338522868615277811236432150010348129915844944896785513272642053135811672053495052216937592453992730585681282691542700372207515800649216032917204528975363665118777352556576095356730011582249597262036048042469695159666781228536863446324346645513821805265548644509459300293566336558327727069139582448876535794401575181616073433545543025921853016164718866843788673157454962263757632737400055796258751917295204857145430091863128737412745940141826666850578213892380478457582891966823341594349564260842366823361313442701129760111087716962393103229158698847827761261384935181818711253684902729630940651379343027963877948565759541358756015027690708317313473071658874401539610001954716782815464152458463908958353218931974567119940764037594910693438090772826269174964954593346689261164130332301247149899455904166032126729234763119133724545184357267072303636078406643331069677153660285722716696209136875760448562766451719628708751043525737494886240353305003890294632087675175956804079049030063874887255944495169562724691800008369739204866872269752175590412803878836830279928833487336603764571094094160699047115335913415730987154247683277524026452595391040635300789070259580206534948285636442902656683566799777027796226408714708013094332426074409138356500779254771903825350767198019482463510085785832815822467487739624997955544345641197680605665774874197935587526320965292156412277565708139785802698953282334442573502115857300664380507211777901111037515320547629085935487079806614121243304978122389312730246385638073643969388089545417218995500411677637645610351126880320548395736610738231218836768052547141252277338878002462347282861884786947380837389598562576209931401182123653197257240782063271824131205306008182920642936530409317886174626135627587111520858708164091687034413182659811804373196510922486460058806964382107233528353532392594006750582174080526092544592103799331523712559005430677040006112481681956365968453101366983497417680954352204577416489378736201719851203463249167696525184433196106964163874257469426554557718266980252545615835553818641849397995717839224741815417014428422150425201652856200997286223788976080949529711119832567532890273262998345050692572827220650222989740177648553494036097351277440604497916791893890349749325912019980932174772386880125501579371386050494220562332273628376053508128627068179679517034832481581265146849723482573458679578333277771500085303325360599085827701877829691678870063394115126541518248691893436411124533783370433046658764404515554519597222914240192759137523862259954082571630555266246308075782211168503669938431085882393811867196690927652763661453879612358097595333100202170315715117679639052840257676820465776031311037993247837023265122135552957280501058916470814416337948580160444024576534791482535292381830305899420800031975282981598534660788222739013400107770024224067284191375149279940736838679677463378654227677863099535355690913920741551222171543024305842265905631744005550710371470384364631606504326612886312763906386039851064182055316541192998718617290472684156822973515807006796362880715016133175178062251986361102747854244338280584275545291193257159289276372505400167357525573607803704088924719168655997815219808980586319492625936350855905753664549597505330628383809827974255518766798938528528494179006858480005263170047416443607287614088361646902870214890535538410699484430991314646960570712276589770999095917583066418620454879718984025037153719324275897081334449174652307286414236752724915307643134192355589298185728820799503248760835299138293716109610266277981351829020173890984970623461142324329579305681736522232911097966191296765056014578715359559334327327991995245003228695112614940524901443503427878452030620340468900609737375836770380538896176356141294768864595908553700844251909853192168731097766671205312028135671772536326989424103868959207420432641081748498334601133276806633447889394679152693382270792308537621146697095820228969167395772555101589547793288821861720082188185615967503147348478695397663601910185382567485997484845460080416897287566930831996206941370580975931283851866664460254566471617720815373931141735080521952790024514300917378777711505256026209376001667323460026674889071051725909473314634992692803902272076848127990218459807300811615749295428308412265470894699980214958143852672001504497369028027284983376080744490733742265942814214727555113384243908379124035478357154185570524511972203947629997185157665421699355879060660459474006604415098137194546900758301186334577738404470499793227289686307143073143992397263319548373722393153339890003220944061414130559915280619693907281618485056294628231062989182948645050690822332512363447540783877054763808410812322637389992814332208193017557224877598818677720769264712171786375548561487383711585240456001689487242084419681246653834160595831462953026291121286583242378500787507991257893782150980567361544787583307279914057571439771673145377265536828135745278089351988018166958792030937315683140583128587785766336843360743779707795164717301163090813352276020767182859756003156514668465035672615264931421159905649891554335115988423349337827824567282672600072482795621362637395653772355954301393822582663368908539519806800375584213964341718977072628244857509098454664025739154729621425011272188245243789155787332170302530520290170275132516887073032252027668966599469171443758904241557731897859027977124736701658913568131825292853278140535990537665375849295805998961479258491094594971142176171287825136038544032369611701934391750683314904453651012521289504906020536449456873831045507517182107490272328188282618202710718142948397136780492059078526120398457629595275124279262842345054030786633021581244564296057249602668583901442676753947502161244021577977533172289916049125967075729435411791195392862324973025233938621280385897991099035986720899899054903457575213424534611859809826582251378455425631369868671184790432506716254558923493514697880251423526590851429918396442078969113505244205350517368635833834298614485375303718292056536983120783862592761211669170969796139154577735240755695845939354436438072691266576253447384560929403884480706441426405553596578313685163315713917386668947958615961576327985200850819027533755378427968065908084263820994874047717539643181233322477784237502460183053395878385854304779479764228374219974213283192557970933835074173051596810722327519975809344395850722488085121500994971878872691312879127239209582908684450729198482814363571987936468733859700568373926612346425799216099866187044239648905446078633708198576012653440845965442130245628445356734231430236350242746247636193614683782029928101114830227936549215887157682379364981901866644909380788459035143484449181685788009999259671792045574534414973777793034473673692425024315837755594831446017421233159969597227278092651487345549925028494385272448499359865682799881137409920100101849569349652582468111833236527852193106262742050802493828272411161327546219556566787375945422151604802918297792428858780858101679060507977640189446698907118948211212599404475581423167368675543385588198568311587406480098910851752712262267733324155094914968465255183037477447831974247359995824634875668157376806913678141181335712700150185705349763714554889513687961543021519795675946529542244967254063528623746896987758553887214208881609073209755280913243821752536064015180320095709771552406800873697158558392284594213957118287915883357452613828723762080248992299439808775763917355182179544885167070989237069843980693337123870639812266805079494548400256143433798665259680788204508459722724163584515762337839843114584947321506747993246463701980776453085947443770120086729363257030276660138350405279386890974372869037179586427152426412321228569764854267101216862518399277026640871175685212821113793787370748029280419858556569933292729199797796476856432354130594502427561772773899962328240539770571747202996857770467327443764418768693653293158713712648190575607095357736479212286923615699516511623956878137663245043106480057921757492986262320545912024891611531719385333452250656382510345088701070097423842576711723765699179918031638470660048461651449858832344254350346253054543056074579260370895537044160386970979936862465460375877521312197717550894804065308723193200143664052156644635512697576740148119923972275374764110014422063289587593130390204709885287288842874614037863626893938941122877791004172905836948346028136250579452325531318476397213397823544824529709637535117021717839330066957202500020071669009512966106246522253713623564597058488076700513847980709445395339378783402783102295277298381807762427142493001861964667479163972602108751325690902605358401303967557873931154557466647886865818902572242427592989817961881194117982244546232946510020197656020353208050394753420239075182678155438835229767030785088053953960420430009201783848371378212844588031508041974658875656764443559712297697456087015368301555504922030046163035709640276835487416518508306645391739316722685622996756871379315230026213424047857952456578658471927971812704304887095246015861051198221188107048688251301948974252189544375183360513211082455589091403502429896635629649322891283403918437709475651596786250898538421626505965238456636950792560019168058615523504845064021209277314975219428895182915898379709294591453186144498727979725173427958576498480895958146560287067578275649700449364854030071012966272759447694157304796094301783697666198681242033366982071814653742529417624752013705605695785805416055682212721420016765768233911338431088534363478039981202895577872782997564519614617037291156157456371616493653261772562060159353631434263129770961177064989093479944501476654582156165273237881811296708280691813421330856971668212820734340721465448492206900537265125048936697286610306456128798806939406414620222120746367709992919399497819246594647700128206317961095220618184720445565984416235350658963202618920425930409846700823764846921267569591160206053102052096240945197146383277671263257230865028245459271748838320869620579164178383740055168990666439471941353454358343603134344041228415199467358056652994253751981939946908998994012264060218884993233923310107759605306751029693290397337589947075164778173414081003472150829947106262061128701878400268065537235127569017697794754411133257142528237046899893694534363213352068590529305395047207362423817201813454091656231914491663079545598640493497077817809924210221221842392171294995886103760470351499764949505855095728212176207972853065930862723152149839139741103187661812987715292099357135943251438516832347353482457501383866553161929952891017265639194768537357095334260799582347957965474725638909109507438752670326206650041845578092524361829437050060221943740816437722502251060976185597613923886985936817421868245268831335990023223069455168293492652212111690444734263858567828941935639480115643972814411121002545917129417428859753981277350722554979392915388351593648290805132051992964861882769910008983336711368667653175729486053937537467054164567459625083273292341846892669082999226156768221751473884007605699787587952629219623077773791413909001547524547892611999315576331605072811419424263021684402479578229242903310214499165127696364055765362412170726908486306258825405586102551035147972189960363559478064274482767320265902521563412443723456921278386887074687810985024151979511617300510348708187539585060034887028451986425256095550485412445256522187526345242070568944986669660030534475539676359604933616781601056510791106474531752119156795827831362850611632329263148229942228740092780421826068810243219751385716002676580097308069856612949715470911565499017507412424150475108337197835230233963756554619684650670338201857248781757233380229761891617692260718095575107661515544601700052305104337041505937401528170417956566574404386276293010649352715941301505704920462590207544039246967248814216327039169254108314290420636647394263567683233779232743124878142457867403835564346892379622117111941893395436468385773074635316507235689133493915734112419588759033387367054370272909892263101476179341401516859875350877176268932236078767981573653623955434876500697437134926243939084783760447767405951185259294987119247491136430560876199361843355554462284280562976147889089102167113776413026231927621643531106807459853099801499061982611950200917252843872238832621837251405808049380581839189813656181043161022381905940983954356374759509130544518584053382271197465762610560340590751383885676564875782334456477600681086761374850967117125761254946298097940529291141152743631501624385967263765443781983628258597123585110586801065708219677032934897230044412940632835115179880986006923950464267353132508371032622534208730509694117024127118286164964668269141500698911165764514002138019647891241857135128351633125875471608961681907795580400083482632544918531135874481411469804998332565286985953788762486931861516940755086034267906472717308338797655983360295387600567555568693300269178519676820038772950805150791677375053981129226434900675402392995205153027511641271796568852481438079342944075607075198111420746327459484952246564899294678194688163225507672936379462550516719362763930174790772534279167654403181613663026561188013739599481964327007923217823113851656019783541908349065089411724721232534281045941805231945173070937584940899411447409950145061911789897018259632675445135810897265392124992164757392157540395664603983032721435586740890076617981353489336366871918339388657290179326780499395654658086412784625172431476475470539559911916266823557168921153619253921497799947101293827590274489645560779647112386208628721493375918099835817981634950280875209340058937476733655967358732419405455219883350579208779851532152788614460498101093954748131495399733293675469035527929689927463285402313955148429863858379410741954366800833473620381303486975717248411477719645147938599233371258570151060205088438138717417969390200566829902469984318169121333451182145112220416274399501052744684870551794709349343914529691932686586030739690866441402681360282303135991432374715252282141770499845908828861555548908749995824399708102199801368372941702996853385739537347885649211700614968580648588275098700432108917507477988111042368441406217416477302353222172061893085648603257885026696050055633463822167753049116703919704098732321887277120558041875416982361328831537775997122399208376063293297226023161427909718250411155279921785064302615565197093073574448911313886278338081912823002192204575094559790736010424482402192885639103786618526016194336683646194000222600944342830362951911754730810606191557354330666450218352988890218827693124402851796030881093823572654433723051946978794734318902186978553798175309258096412627739711468452967415523694411103918337259184989996800668306525721824564092175514729502270480850878239039232931809972606423583982438773749207495395414642412107075591893394471671203818490397881264863856314208285089723488681120022417932307825132078608792781242270882576795022633182680752989060670013040666453174961941867661584568951221646046987977040713607584970566745194525163142508113093130613895079971786528581552663360515124510589491358664261385556442596647392684947119695955865898257568332672513749602587643375839750342990934084051272151041492029966339011024033647199005315148150408047549672475673602385377178275085292402375125182243465764976718871963514519611910106107829953315468517169568481329621381023668054780913210590841831560766401547447000180510367880189631784634640109854082320728238993123360633140759441408951518537325775389384601926539069156473775420103396333551526525853348251115265858360176606356659261625747509331214296692429773027843285930412737816463827613497470060486883656347724492947704823729296308869405461757909775121237846961559811087930254292984785425578691565961075015758834958829892821901632762323511377050911422844110051335028673098346639079311433759299965030664686612618149387108982891099169405600852352762206903126537467641832564792562838005466661476164567563125717182821651626282820225125304241582500122317848963454489575092757719965429990916947589973345859526356455475058499357509938718310305695246968846598040532908667773149521346442374906496200079704905604599274490050404850306197509626972973303091518263299380510753291874375411921721685558082771515562274597337387768967137731218417757320250241819451584049411212175341238697315634518690764779202509578659304220325330329060777227906323668501377834906822907865292500498685251479167532330868216939804121774901907877542004325676236174201463893570755631855299570063213371374868569790539851882064270587973623998549059203658144676722349859895298764576383528753124333290737676459741666829598114188255859492858729714686055988582631969343818790587596372249886203729982382191480812290446580005694726210640475170442483807658152895404263376332282751074544827194231205078032834098711844974708500799347962688427796218911132813922125008473812217858295903139845116336423106686347257967824705327874205532119201139801614737256694246711867482884259351445031703099369516369108409758935744541028874476278155172800318430450199575466401907796551957346756525701841305181722514538844980503673708918681699995621259119640493688091524289397041739754031908079541613226999819470233089204821061226706389493597050299753399238286065806663622151306449009870244732375771428634124796144091483577118311518024018038150368783441654456206806485030012356535777027518378723516834785403480077930512816495885747999429959453233395622115865084081067208464760703464756235835560681043688753785479365825632395815955640795752808207420312371262952300926500420202977803228748029037970395793531959283198066782238708921861630079139608198121610403151218794487065619934971745729245442365378489393978633702501442656382864359847009354755044783895646951089179349001788226015293385340044624051504967377076740073255003110435514153099589486668255124690985982547817532021130526146235564028195297576974315992652701611334911611294591535692602346003857306363977254904507565662528383868847223721490481143047978691664637513859155057443099690541597094713591385894731588823464369006484224651736432775564787306649558171538286694311129269834803616919813428042837754495102288503180216114871474007208262726942137474650554380176116126801650981713423205339853070482961533870598066251473031930747587835954136658188749254109293677859081154866191737672418763516273925203406880452232014124648912833948805521079216379691363130338454258681646080056618657755247239530537993146965779068491462504462553843465375095968180312568920983872831095003018850304373324595500294749223952971865970950439206767005980017338488191330462513921142618996175085123695718538534012792855326844118978022355380866233110713321248293919169419828928707876636731834446148033991689819499402814771698484673188126602574460589254940494423920588816561078750930795538746847505193418322635432609901723378689709241149921514292341752657485961245608415467448988116986899920175299799035864319434270750080898845967293860010566585255539275870204917716792486488435850848966724761156226914949780548266287427255303051056824686651323104642262680376284872717649245551548738673810143165612487967166380090202673188039277070790169450724959714790069296907084613184101152266129342151113954770973959635420507224709004929428793919814301253171015389152513673013628438476758552078262430009783556434868711918091111109688838640760783958062785209126385502440839539246457515803352828226997748867994170354185911749522467473844035719403493989522074615096160212132086980881207764981847567087077587323203461200733151448502833040575804737627066367899462761727673137504821203730861945200803877436454715506955365147644766818989109710818845314893737318565917185936819850621856330438632721905064125613239298891447449749812470594786417044892711010958103298154559502016023223071237604328172680678522965604572855983054371522103619655027102336639638875144859469585650269731395956914131075554853850787695580216726614475960128830149256751091697785582176127829671826351281592052580407577481315602901774075762119582888802691505276005304358022386461843327189460050496174624970397314909643346392159717131917284274275444083643420057248124641209508803650332192064780132781906610035145305207628717720038805897033165321101019960676080178625476578490056472827049592196141984848003772976129047678284332959584581670152546677141371429150082810715585057007782940739571177896663281648842324875911367215222725074845990879021221739466348918121973807813734765125489646247095078200917809278234692353180680578247671166194194240365628192720953159589371889694621403400336295153184301155742648191011370433977490862632660789072772450451272695007094561625084424781075084855155082689165752657192155701502006503525329019511656265108626092089388371632854460767587963460906347840531414189248707246501949014142531846486303105019648898873992810639886384670290768509481379209120483936786061024532242395742797512306428721417653078485566862960812077956056622150111327829147618568609369802562062709391096320785843687156359116039101639474653153422274625390545646838877186655103225244143939930086258785506751479194086509088980216238816909903135451584909713654001322632183867469653985027746232101402675467874667054302211727187314042867572598243543982731891836209749360789982027589062166333964150368125757187541198018456962308863784683399475133872751371396662970104350467179204017033586551354686533525420139566095582760370401858942607016543085479956436903007582937685769943258603411298800007482810074477705266361532339815305001999574780182212424676956292640703294821314531241573023200899557538335567710967878804779606041973556360026728331645535652389868712245219092176497312974888572003528656817346614483777323340933788415033383676040288645267988493118199797615008420861985487663854262298559626291744046041819981458434231406906070651268654511645020608271526621642706145729847557004565146684209542110697534206698853877723674261324064254133860211787974883765999660983061517060247203949621342962599046960419279777804387223074416142489267648333904568394647527558881114716702388559428880593111692329125537932959714999605062688787924091021221452142419994711064323384867196052045102633447295308550011083271986945222366022855872923592434076890148525130849987542639246985766848285032019891095465977811395523082082165506521319601529918096565747645205508341307191933292613812784073251530453898186117645607285756183092754722430171772752361355805236636624428754233999282946315052871847346795046728370196658648965035730212423753231390023724624248073817824400460207750870513131998461301680653770012988431329488716752601524952805761081684023408834442348280485812455531966198879423529476770042067391150171566034288545238766810932764910125791958929833227721719014192142658916834364593913438790058405011589671172537987116466738534071476546869018916204472337098542300889196663289241310639308083270519482130078781432145044286245593737367596640134115398384631484817717931359100365274660857516089456674897380865818573601537622626846306935206946318198330298478896025021352676617791426350379283430266538448357174158829338325064526057704399255655763940186478142598977271864529806289816173459931266506707788300527642609904827896646267965139718049018055720004244186525779591122280848386928646829740091006559591032725364197630840372330074450173659316860901800647679194944235815712027870670914479480527276793619721301550579423847015168816719596222813214288617476936103686128297342713762178855202811018672957083936435232095192779556377194435114781275205502282047570546481367320151106160358330762194630130196779197212159901770914874734394834525141236820310924564074876487439790788981650571609255300769829251008436122409968499613293155892542565973861653217059568606340884524773272159637627390941518428206325860015186179821598127010540768098100056409713299964817647796165046724147150392594608609753475769902122254444984070157627055913688813698421550190201768536300537743675123000219796292260654682545662233816123301854235445000995250629765550496875511569895319487877574933870495272573816389529919039831096887554405572066957470336884708743562442465648674236806659841850994518525798418721358281241325466718362936632308261601559783653003802284606046624311942080298787783079075487102282726244147011845961819777156835496357353846350126598017576959589435937980331570380859666831322776491578659162618201233357889188884252047421105439435944449274878827780376701058076150748139065049165471804253629438043252907821527942028396516299934853116376527590973644856141661883941880420508711332962583507892290745646756609513957653656892279037571853267404418515313801604864911147433724095811864823029942095349417585775415812923043888670556279537020970275252841964912806229514329624656248462184772169415433784429323702629024466272135814257805662712317293674712691868427003028740361487714284874942695846279404538116126981298372909898988888557930859115487908507530607823661805557775221909360934949304856854505476320556497961134979852408899642587322557188090088323353868101340763272548709981727639157097198257822491885557662721021350346620346582636620797345865195696976139457205137886267238839967639788849944273565599708864341709294087961002847187314177236782248407774520194232095124998442303826909661285564669315506157948864251226371455383118897915780744483889893270060074718654650104397259427668086809898195788342327656279028525402879825197952319478086544501176228289564673599372397687019822872397552337854690876221821986701827369787039167455941605400711121288702795331109510179294729992311562448453585334674371663219423779377901588985668314279689271675477944300237909690097775691805739341986503247344615167950427968162262250213731275124504415522703608224821726899500507983413127257485732255799707563992625276894604919740280597906904868277804292809676648166644528212644365203537374918017515498693162947257157393725877173981115127003923500829722892378308420483835441385640271194700495570350113040857763129418766749581901350471661196591909020650299147952059825332689449674554386161174065747489365919851610440907969232423867423347513207638816175083149438542589392398362401585532652118054106000312463253921884929052285795013210604397751785342447224551920626490724915096662780921008848690580514854533464974610786897768993481575531533697651645872397733217800939592994188846187906432401450666557547093369219196336566714514137941561048845363831460496292683684784049521010939214178328832518115908934313308695436224313958801829764744286072529817690108819017398566901938668098730085426893260288039062839147147164073672896089071862509466820812443060231634103242020759080981055099638971856976939112930251501857465971103573498441938165537542338061602693754074975439706033771023579180923226460715359991738334307240800561755416175677665241581926964299616414838758800103505712053936145125153252215280098408516260504596831856541703634613655887793356341939494585559905345692768105333148343242339421345009205338198370646163853223198001620223796059666485255766430578145123527413598105772180444626648939843825361138949679706491191737673094644552206894894348492133393416150310355824132299916206139749311266613987185144492353706225891529422669928724863842410542898225553639229172022474101615287610352146494051179339627757652547902109117022141545203078335836067180979919621244429630980964467425848771130379194928728157010820480245971596466165944744610066095601562412205139036137608664330679644662133018481887367661383453132740201111362601449127942179139691951624062431310462251445893114188168941619565448099721006378743576259097820658695308069548664678855432423806362345805853351305376714955726208560627394897861655196266479435767072768029091458584174605110314822361739024138634540024668196070839727381034105535133777798183321481937508355173629006238117509777597669469554684125962558678241313956493688554959378496269989439268014878743186927694148578921281640720733171170751634734619337277707867779548562978402023394368855826412136934535246602980044766387612666097111936929729594833355016346233510557022647072670295179090468321881113732705532141543813909441386482065344928059868644489106639890836978817773666764979281992721416985634458612538278247273951492911584414624078356625670336976810358005998988614897890237091351066598838285432012142712693869870574269421530661371624897555857454107935909124890474498315628234971302141986649977362225327711244486715990040328758061284833290728497202058768517645452432322911075711560789866289701275076015126141199750247089341032953115647066440588944714616238516686389297660697639268315229398135887927692182341065341879846607412157487322341474865528643055731367256705437972338019166811910373866724105694813050406940021497357804311286169918329591804667788041110218703876945575287044795661341768335423862901218186175388091605497413549881245636298319878853545924402904982281486914163450842930632730576940012082718202529499260926395674034382230390158715666602223139767666833143627277103498981186937009798799388103724303753314989488507862704240013825852891790783138391614000713349583850835482562832825821767418976960673772921434459485609910243112750115788218673950113092625182826592854776734593957002773294342692312720761545064304629075234133151561887002107968821329222660097790152989891265199425218675183983200408584842754432566555076527298936307746627481957126972646846078178579953462494105819466813830875455644094158159933983583562214089147246940662100874949011552678433983369271022311740549357854101776368473697680988887490337474711057683068193746555357705579257044112314598204182808871964897389726380190396493444602239230938068216168097178885452291942942046215558968396303000312775683262002730518560031958767664028752777506328006579549002139927175764735931168587664070182166318213480068940216433864472960984109378557548931655588023015861849893549964527880597721663986214416288007624724150116256904488835922856683521036763225518880987812429479904685291600937992498058377004407068340107604293675212223780072220790173348074037957120416986890355569637236996149145195244961310924160938360194209546008691432396762012871067898382911329019196747392920292050227912987030709755243033724882378559498117826536114749960755652413581690494972425952994656273582887334943219437020944028674492699764380924792674132625385998463784813053153274925171862764072040083712141262017970293204682924740027115798189984898896154399494877590797156939207476849891540149506866638748534125578215932221767612839261064832655654615494511417123858872729448852645493181551842259538045002783762877442768726316648703930265876589226391240515292714899054022948501056450625660050798852755343805565249527246570469718264506074622148179942025696017502795062292635271727208935351662971404977948072623088966013452622556003947172268881498526293362875401131927384566024586167830339804633093653357261982068159627153590799029376966477586499648728025453756964914121408269849857560128634827699829888622132024954698981814056541012060706866370266370188680986275893482301980727097822635930266540476516063212162237177425502192466880489809237300088784992133074490038872112959915821245880574118198849241621873879945505282392290306818517073212623141243867782077862322563021032837031231873455353236447563267006106732044614578121502587823305933057831501225206952580806183374005579511185453776059344844743162105418634698434064799609113957812744691514651490064914120785950477108411078961407105274377978400582815119540729137802933705005362304936090937270744554979480912612369072366576143770151917850146861488683028326637238346148965614670133404977008158155396261374337127050905765231372931253844676311175987446184054652357758709322858796167905097588751405569221184807155639448695883171353411966984807306978759597375137203340976135126633801943580051710669219085448855723502162717166918991569719426100738739881592950046351446209674304859743706756580822942574925704541777010082712913808212518860713983378362889793379743405778899794812563908440541518208257229399283434738688579820591946083523235016297375087863985380945771522569211562430212402252503572519204914621722486483020874931935150669866881029471870390084617465823885392965030595679209997996023350586892832876809822065280211190878117256653309168085630366953167421397328135025999268869694634885905011147701318119825029119684410306373411164848204179547504993650161944798064361805941502273718982960232078982413038764984641545601044556485094238862881157290502562990861124220772539885029444877796663315790143599587590475527988856085307027628286681880772327267615866666074689387049807141610853257450294160930003288408536443270355129928453410463354661238136460242252865535307191471751784078070371249938084142674765940281449853687876347120885207205457916007524662202351181625582912685206611910560341525590302406323814219038580407883043541751431547926701054924401531754276551557969324540039824565960574517024794005619324848358317799994265895238198658933112367293246762199428756552775527561140519642774313718735044832307916660407420712829814014152308317500000659105670875064417793824612316496905937221756286103480156246346370879712556136758439109098778956915843111409159764255588655672612085185862681821550270867987667705583422721904630384693303924517198333728249885281373677795677430105384025744312710024480493342693104627902172425648812926160841606731420100908424787518382697913316698126364551075662571338819649242500466034346317784345313483802163960393272480798521672283179688830949669953385021764204253001141840179932196778591729512754326943426795283246238917617245407203702191330890107339109834577318560804167416216752769941368895549178903471241080371576141062121988056180922033159482454521909432218336187868765070271734963231768460411684848527473539261893772734587596888541912679885174886344966570988410403044350292576093296529720910214715541929225179290067340216671326329457929890127007419824326774347301970775501005061982636228444441550301150247483918717990206581809754741720409503747028278016072681966634425012611194770531566219161787913668008032195640124028218524721905788966081463095178371597757991841394990033232230312190359558140642069724361430363763061426588467125575579064795810656687030650653906101673800937596847608690722900359702252536550159124893194936184870817389907448924972529321744474678325586643903632655078408988651753392586726289474037368506334920927957969171962530825530902034921515514454525591954424344292530457901605279163213929819624887394893647130756901228180304771773757323190520915233815885098428457718100801890709946687220097061610705541895206111159285167164892128093815825130587836987935750996841518168259375759912280039501204854042439381862807982511731993432583677238242879099358242492911594214349634056311193252278214406535546252811491047411611748911172193078222325059849531985244287667624805251124563288797758275846780659327400549789900266352761105463423806077174353439443693226410760645106295125411467729041222817270863060001250056417167782317971513427951366844518523608255710400042546844603583626915036409121847652824643465102814077773460640787693916242442502816787313754831298276978717090144648731355468392807766226803953210098758054742304919717948481109205502751847687420645505869009775486316401720464583926944595803733868995292358813621685554907224890877131177321308241627198328698553856012026631197900401968121603232060222166303235074719189787524356254426666367752664855631229537207991652039631386613618207531036560316472015657473190726117231637435270470639530000840730719747328846598492858230836286036097298883325216946347782616783850255059905465047027804169938438024960792798427075313833092978558723444992386015727990428017705156263076181761892624620232478445702503940246175000029557103136545719667167315401866803617532778623735302399564440698946202432847154036405741263805030973934623055557842822820818117193727240372839964762894146207668227938907321279037100023893024653115974774862636075180084227931606362467703476941577251809553424874457209861091329845726642925143507112119955458800553959574712105827797038194785617986067750104068106007921264507092778478739979906929344519823399013213460000192850549823419798943179014555668951890067706334581417681988556753668169505694269453831938923624680750147263616526010154283348517096190037680673780582438845179200617035319313041970248198535882612451239413850922030924749977052748533892951356894255871153112214326940797755743948084701920741987278930147151761336426538349616053339964353060254673391624561283621834838256004379952180583255862309644951727898531911957976607113712885186811431850385480084751119329023703750907482681869312053908304322941390521126805939510606582591198048183238691473725179817945097857302478257841282123490672348498775666320783744311387203069958614619594016544671645627841184018493943581521002018817523369575740413112554638007230657782174078474392900703559192789631123753514004821461127247377517472912345932625897856829795753736778113258010020456928161699742194601951233736342409417014633432032656994986751458942341589246843794004931610904956782029662898020541464357769896051740571367834553428384281929500563762180232317373492779896169741746021874475113945239108722813574181423942935329151019707279180606113693666824025362234530292882555047061763007564294880468294653545850421713623533723472370674866681850051674183629023219451335646581710825820616343557912395797636730171981526686391353867846085485467076100505469853289744414399893068182293840922894332024022830900602302435273002900913144455815092894626367355822587444399131697978949042474082423200526562297709707968460099693910002605501078388467769885228370703125522338145311535972574685312288117758873952399832736722521074865483999820261245775805408947472655245103387975904968247489729308998396782400881423668773714037796393754688187570115911386300943841367011770207185202837149760254384306700214736567097697020718580766495102606419538041388633157781868861994533890864999846084989732088302832325541607518044178902206988624804684918641316864113799039081366253596475520075594599737106186818601851306149383414459213981816553766145882569887775450197274749788139809077617891198406413455548381391599541128948273847328093991212457667236600293805249781841742178836756879357809830501020748827457229190809800735675396181360225860082677871972309892735817481926048145666418498440100695099716416556510937603838002166167370532030251441163973480416238569558520017323430993605587351075084005784299098695867500515638609108664081517513191232387068959862899703323797656338837805162338021690130293165589847518716247390104671710935348702964645387771434404690755131810958080004123857537066234167536950877821008270260328107458771312012727953850517218578061648547213707549597899773189547204550875486334669250729056793607282387943285153659900596732976378926976157055179817258042900704609529600214639052774394410005186599546595439931645786695607034655270705988684705832899427990789795472345052876004613426713614621129760073247562035146637372135040433591114383535439660320255011217623377104924393429004095499489876877384075499022809552777974714002082152187414315604479240634409510437446825433443782252000619927817273453338671509877224073908949357871456242429835021269110741892900897669523694852145182830539269713550868293525779920129390128856629483162758920287183742734286455691304142059317963577438292371233155689854314514874821184298006470559692140278393795041818363617339424222502864426224545861321696651281649716218092950736960606243891149862644251975588867786058991817581495333606819708984523757123581321501361248574549008362132681269970750402170982136318282092208448126197002930191181971198025586341605577650778173182977291051392568295656104601308999767068718673402579137581835169321945306819490281784721285247964056430069032073166728972809303461438887880212011116757218340876976953871070676463858324722149662150569819447084680402254821645720981399502172917625746669086000056195803085768516693114705554566152208968571537580938059891681847691765368123427397109710748933152497781578341610805195927791817595446346667742011405860934424927872718072270351950789697089954644259199012416521379952004592946385499319558423957684089852472861402689361673722651644262796008065209513520443705866559086296243470973674841934238128117987093369794850242298859162233369027244627398095211401988028017125195493383312334173087326032376898153119355646259616712966493771760516054982819491458558078632762863815059087013204000657235822604502631816881931682971048288359229679924038051229819477614298064296908800812809638594831813183800404191053875922771227329708960851581581605254032800509152772173728236590573700365991354590006793836833021693910004555076207804543620804858737737302048797949772965286662731710581284426366049639773442567438709870121056576430974765830235627944649445577675998096955593802992499928605369620328187670651631505398239963009662970340151209897379190829414184221960699588074184610998917600506993990698931123015206691515358910500275797345727970333811929953139980350079496212012429793055704399537528254884337239901439634942633193384345905747373405823926642733250227069774814104666484509612067284418460906083581176815548653510377135172642519743642220810840203566851143757152244967043022640384979503008581528582078499572620086236948751614071475686816384654460232904602585713891449086571763022631283301045538214872048062585184993902675600463959162410994126312573475549830513567361275784927681505299295325583197395791657015014475804814247287039105368066323774306969030821913550724949187046069318401860622429332345879802714249143412273095211435360079836258332825496407616358066423942316085653038945267156662784351460138692773218606044552598457339933952623151293788826241475860295737988394723193094050728555072891664699947111760268540694542163681476320843649563974525429163825943443646215763982215253858513168345069077300942079793788571236739702471304001331442090854706597634956762798026675894155866059026878271545885963422346298787179321374196975033550248032925289231688107062274747994842835758054938662696950536729618532138259526274013762701757978463579285552337085078454161390213899305575772357458549468097852230619845303421512623166575561619230103862492377139875954336863745555068494386488848845088928901192679693613940017482406641099117306815326098976852943175104556246617116668356218278580159759942101762550577766361375795172072707431503132127852101238073235698157710839623791797546885294291726571062353848093760793812527119472045431351522751140699533166213498614568689061291925198161448997382678647257316347299435876183810387540870552597469799258456807947670576508947916933705306312148098059893022705940563016660565815255050346312643175743784583606807197000266753882865451510657599653912120516361308875282462706008093335515209623645471513373665301183890485476590763457594854943679833542045566192190324064159576868691248631930647544461088640438887714958720692306431045614240147960552780999162783254323293371732028682076908094481256780354928342130815237233142982175087558131344311385543096865015675909631891097117645659540472099994614146431918212429990571410829465609911509498385081337941229866832192410538918466505541742046652105037955185352681617780978250977457303172679807814832792251223511190182067720413438600239253097299359280712745238463781245053376087017077407333895402994651168262016874975807941786905786736140257600325178102382163891625631021876888159735005824484791859305102305303596672955601048228752879262684556839055753173603750531881418278991976601004512119683304000725382426096004226172655512134083095411912291566220052046511497098906267922856837738855824393164692557168460265705294611852919260779837547919568393888927158094549670669804056238887106047603326398655375890765004428018245462946513479140451625839571751372776267842455325714613045549564756056871996871953099052076079466370341544505389884830835483047714253069488806505271730443849365512966928810991754460288180070016293268163661411200435440013736032266023361465232898151187104872834843152410645607577950440324581683951590636683087900793053575319390871708946130778536632060797681588696851812733237444531328972818338725579767104810222782272657505079002631510441643237745144823909413398408447712409758134385045335676011950551657126176043362536019165944552681212684660533577243380980495406358266489442703264416768234200118786130815177933358415091342444770660760127391862168800688919576024587919101953132104757745052271630027723851109231442409890423687765538288100240730396939406705898065766315615577191640508065195446310101762910019451005572911034266667654024374415589135265017494163379130634520940191684373104365076004198273966397816316622805375977915427359192436716769878393162350397137852270641103908487131841514536851199248736156801257921874267445760097486858663765154571640561375631281663738171181483047094300359388450425784646136219399845378549205310463323946977198825985706359115880656695992091283545272718065010913494960073939135255781570738890284211362320974172201072355349807276729186099579871094789946669298338916663304282386992533168206134549142630354619725732967839775036253135523772109098708820714728573439273421917265169480008464606603806826910073207474459722273416381070360567234581591517571333283433639050904474265780645608541045504071012036730847009522290272424990122037886092776513574133087098083648513901895949907474699156571027665321576201526536564772583147019623657368790473368023961936989311352946511295274662809070106436571310628437087918697353643947195122182427159582607302798697556028858997578875081650517058282925714724584635710461158710456708143287720305344048450481052940939602916106917820664704259191842467280803094120466926027153148980816220707441110246386755263611607825287119815480671562182979283411534470471831705316884550105279787570993642216110656381918385177666288554219706815013810116083656444130766119762803020791120087446064541564787242296120124178416594603306988885975698135174118838119252839283457560757534318737366048315977436409971359061517939918664125452237275212833779254810240848855483566041314887289554448364432060964003241239152798665513406726635953613290732158592292948949758324185489604509015951241923345074152738371962148540964687023410254964630243176217250837375974906350485801343540098227063756761902829219639965065904854760872751259952202570055455933054750144927030350503929123030654869061113329373651162703011699728740858460387007489385448348769510780770223027640818497750494270054716050558902213550283640669669471683415389354783210141223705993020041837175862553346434759748235841794725298651786774886078169065041235312156196174315650638316076008720761307036658124591208143329092011109533515947286339986643617234822549539767050436650598112346516288016351015031217896934524346795536010320395664527897941531617031704726517349930027380566326641984733343544847055702763342913384992658943613142709027661667343288991179095853586077305310914836249720732377585343695817609444333014253829779231729734959372670001108257706304271446057928018242823673626036693850974058980083734681011050615584074942641436110759028688041450247788935240953632162011148335485128194796719414837023304117611838482110804697590567121140568924149811836279070937697676728386432780559740412294017606776404748525445919895471459615378514528047098045759934167994684728714144720984927260934070012306203838942570238093398443305111337210896450794591462013195519584851222728806884226159785833832562172816121828542215392581102418819034135942751355858149761145593564488726448683807658256131064207566453181367009223783246054477333898635704079830321161742599642072327804952550329507415278104777402343710329336670748210907862160300588176644901553290498021957300524166803556205406320335157802088256779540005903946626963145684856256242997695603346288153751086904316759283474316382014865953568414506624042045980449216275877806633063007073285257634064659999152970092250269672538200131835451240803684409656588213774904379818379146537558205153655397669300159184857345065216312544759379048929597557499575582331707066649301608637473895093477332623270381988463961452549638502308963021681719121979758992552695138346221214075572876995726514845268645327778066796094778784266604271065508037037783963831599109500466224002006336854359964326877271640748636875870479127222559390882797929993838882249027579076521086163913862108785103803001481473301742268885478335221032151538583799479434701725976290151509090130224578664531172753622292848066165010159750281181541193433321768621261678838327379798604564988829230585922929289308665383993958927833825249283882862280058377508906599467984151526674381144103478282584416570994732454530402656070296151942980284525309074246277421502747179978872463420472826484526998605127787443462787040826802330317326483812587511615229773528425154687142843839785661024685588958583582330722835833672344300311740831197928831591844527426757175133159119448956854787532309814565751843424331217491913875865832995942942484183423421184063090178869990414799513422406142618340416380445701245673667269397607061739095827545954287406648921459617434834252532374056650105025209868683647925703960929211117140442786449146962894491647352352622436391720033444643048658541096746704160529725399053059411744725640292456106019617714279777877900831494020401599991261093524138627326916273057321399874830278148610304865491321338604377936072671303163852676586972136986481740695898032592978030010351054942145006821774422358831430326924862941194664390816043144166629100416065820632396242568101714016595791674644323341655047120496227642629608029640981100462864784681306892065131753475165894961409149292803946740290933689965434015662383406596261836525540626602306206332723257465524584962669986530521653645625888410394140000607377980788403423442268508759267542444237476779570640165860266254576067981945807400244752553456752356353884323873659896117280011189757969287725354179411376689484591382775849383801111604543116373456563378229908304999388173643755030972101597508153901584839889075698201117769047026985906329907464568999237345499786338430923121447837840399243131198406761482363087083162681019658868220451474566497262203350022107451646432537044603143893269750633937653707135636024352967659390425565245069871024870634805002621494577926453952248903362577386525832528865417991040935401086211999414662994039663187551799396920352757270096480668678547076039318329106070417961634767076919685277328700211682595394007711231854600271826552279351654289057634662473053251773152203149886415882470708893726397126842525890268415001169810893568061205087682453305952740302449757921364254449439284877873500454377653232205120605349283074911736211183804916810723812808404339904552499733990103058811348967330428364359660896146708852526885142292928756588614402347248252813456803136309382851866082541381562534682165231988725638994594508820081451115269816032523026200120642905594808239068079394155840891172157643300374974685735543659647734737010234829942809587410416908069792373238617570490968274304191081819492488530365026397886870762291386835312405349028413908959113781170592457510221554328469889050164840429574422709532819896245545930077121070765829830655495222005345800885858466292278237639433735103125230318753657128281107649683880534031266053897611219823119551761532576889855268535727077044599202017128083535298725307022973926560987746022840377681506062278173944581680766638379356484417587553867459462202581927989985140414212852400339576623532070584117045857833733176405827589550827486704669873785671238685637516116045236955617088607966689791393877594699440391651789820872588644464128362495214983223311923293597678924521929999081801245340138297846886244148113241507385967526902406880885648349072313105714206667560243090087425782341198286669317330991300137389108018902006331118886268820428636061216392016891477733400977841023819384534731737352370533445406192045847446799512381654782943005146532041227108935575417520767610359909072041636205998572826698915438181683936385384806229242034634648144143505622363434190662706552100521374948064197426496012872614139491237552811856005870383586842931918541047029964930196429298989455689351128061485231499202303015032143325154714760233738468506844224806743028020441489597473264865172043888803135327114824598648499674006442770296041804532533355737089906137909797145662309667851813068629261512386275654846844288148325200530271240978426525452911098981586348762040529987091442120088999439133049768915404815973525428907721519026611243570512405382337576665699096569035229685400969595945260993903889622510831872907580509380275681479189933455231372712227324616182151425092988284676458952629999223357994089504663103022995956240928545561450351387431429787815603625576575171926290998845378110780500935283327398316687075175240840306471789920981034178904520039553376134764214473727219199594123069091086018145773265308604098540329440821045517667654914118139655234494376367516527333912789202830866847847430431538385471554216338874546660933445474628126905641086275054724185490981432325064914712883244420813248129298796695662062895082108211998924025479217287369780925713162945411398102564767005704382435389773072993499674795551720059426251381626112762623427719752769530998023554167898486425656895833765802880657948312011396432050659724097832725274681117367747192725812221582535874738844477309762150049111411486790958201001711626465838008056936402498282562744657243419385515856528390327656117670341721142785448055865639384012869198242865413551810716927051930288512169356024446945716671678668729330639795425556200080250746901328108514448711413836505945185756456717807536989397434387977458938450746885934610919509194314112178769592795901910488003766523274825501538277638713894007702034380982053888563471088395693278141072816095227772402191127958421782130835654583423951212999705523494408652361917489617275577388693979286804918541781232404906754412903002978764787211088685798610808480021929973675684262910578999659912416588087148605752926897299438862431834280132876616603852896917062625729055292441960438138049422032198594638836109590149842576311812675560603767838182107703634826753289296925771059940692652943706041008607580502757458396460583395540159500789673391514414801647630910656243092298581126649651099338088249548611539935709967409707057876707280965376156353551474136993721284754267134545302901799692396393226592636816089856671650381419221722485070877848770563258496051095773805370637274786683405138753970555033746259838161933785388416542358887527976569336671503742685881925209066544028493364183473166793244696307923224847674487850694881439907292576134776466851940084196322893084221485413778984037595048376803223953237323894718588212809122253425699862417961356674245135837387970617287097756622478354649712129316224597185583005474759775544107011752856083865038930340644936434138802641267288743781031237029464904953540531891880095142896402042935157960162957291716060750226651447101863021559209183988761363791721666784426131722395073242974798674228014663026122879848047406445439282582661921644271993115644874166899927574702305804295294806992516987560654181037806875936813393023449977277706649707915693387768409416544218659993589102504286114737504621417199980019738343929827370818291449428185084576167413541625955042038151306226085768401576628273343563079876567559371849620621477825401669241125502947449179980325090233233069300965839632884004956103579129671667730834448501991304609616732387384711746158598870566559950650277300811647077351927278134434177365904218795594838619261734779977262772531578086557109295167109842835663084120988657337544328156402468855191703170733161623682988125353882843565076291699006613857243086426108102532775857973598967327819375741920931464079037347224299641850154919094594254766862447243179602087766450345498439190912382933778430477087092022685429043306709018870992243794911668295237820831799568395360629948372470568238854582340700214633003451791526016187577159290045499497501670754154947960811044488711921142723309829381288411006328676264829172926405156901867460246474062164431895594733292847238037607186087288933229046397795478534790789908355020717301887397038733928610812766141210021801557822804342946853839897149772883217086267752013571880571864419084980906985500748309428558587574913099284432640722999206035377068645564328399240573438389651901226735922621940874200735146701501077997579075101025077987271595476566892660870967267606186239899999183624285773387746600806366085669294245663764664456108128923396284534222651572049844068723313086444495482301516030226785588843675192252327121913668017997334462966521877220822365823579105060613674473407787380748038052518470195548181015617444987519384295638049617626989731577000539694767276081073658919123860854290826638556134986108587874709989085301359259337455329620632153215325454784297523128880804420208078728746076083643585698346608890272939521406884125066645259485982524002049502698050980672027259215570786509618046968227989769187820164324473323500073706688901266003625368958521714039241161710124562703964808988300661601445613799872326331782855761933654129099380757996867123979352601873662969962100521435831920717207877677028905521219840267938252690410619547348711254627866130265842441068430532398290851889194049039810273963582284479422119499941097374105909844416598876632624211773633721979744472833529947285958866957680378529992130448405575468481759571179527404129439467157597115041487952389463492221425405013459877998353093588004647334448715183293628428171946709542371483061360812801670593686029337551302970774270392087184336959261215497200323373250002125279960467968149299282425746672134893283812051830004429254043024984638600155078060476968524123126647879652300418556552977332277696872009974551102246888797343019524208808800984696152646109562164052919548471474789140849458279448713523568989989108096889368576948723444873088770224255087410439688408941632342858546566299774307746668238303027480966129562137337213402401569340531316267793870640928152880013590907798897932180279166991682892387737085790761464467914632307696764450279183961856598817096652599803589238426483059532857891331162029827128010561598579524253207579158396171047932594054166469983428651379079921919702382326815510447462881732327848963029149236237365987635380137504598334303696373124340543551894164627582307550586785546209368472591587181664416029902939607542342960634104123183339249695230023986922938519448429210951789901132981895293124926977517769964678145216574956095732401213747696137747349450645532663700134022391254772238137160744231579503164713686327478779590777079036733328598752275345602146952985153242543620430216182706052132659709462891875812206377504312931643142594955181733175827757868582226019140608396843326792112520757375103847124674229642189202505468089846045013682502512701664517690799876044182803305314133932944460002359704323481757796243865225454723940272981896069571871371590804537856802780106319481156878037154605028464325311117100413171381806349540961523861380830619179901884292020323880610327086102942426709266258563170133272666790377639569737408469017813240093398017915242905153295783474157508397743649347644503411818884186689883776874267630169885790741185596937773074613087607152090259960113741064962326976326440460759275992621840965828823977599565630803033941672070345956335361939682281981532911132937588252026687773637662365531443782818027175253735337036121475746735681907076971903198398721343468561943246364818621286721036273606833457046260720753507396464923393941522348239066064209530619544369647073250611605989424615073206128193931011580760121565191918033771080381666922046626400235649303261514975358481793748323598680417779539820645388129518414538234917868901210285534827320433057577333109144820242140393934862015221178975361988329814820056896876748703872052034253705829242234992902668672869240883227179333697643653291741312178085060546625908372564118906845714387640522812311873544380626964118050328766106305842089184583869869698236625961021049096019211368686573362533607989675074367086921210319546087811678116152603010573576246542319300289558529437207610653835660764691407351423202003349848536028350324484615232992193413158489776612871520475886328610761677574293831280397492804981005668637430162762450965806394219320732163783993590130846671119745872014702787928626270196312061425999277508717587472871433158092308964476871994323731522096561210016170703091374941362943033025219555196244858525912935294358520441252258849493104690583323454646460970509651220640548642342348495077825022142874282849302759023955797816609592832753068780050370674737650939383384931634802931212004115426417537012436773669102153039473221672862945408821718014233786373438829153380421791988944060478282977469023252802401116519035376236706343260654638019954549742994935014751985479359512952245472845309492505978498882180574039767427026253651044492192632978142229849515231149700504772986846663897607870197290280294064500072478093518934912809469594339670603535592527235496499319211443508160683660345877094912959282567974373809993536682915015737188878387778405318991596344319455021794881942091642493043150982121266931819826563035597641902777890181777551954159604682127393848202773630161276301289086394518065777351754230582831394895823551250584060094522559717799342387437567365883767191060017817782647317458140459673583770798717843896167786024213509235125933318386286697138649276488271336785326687396528047420685589354528510530430699226658697611593887150887091084406679122200145231385936897565394578414856788787049126053958657244153101776254994798695766092918207405628803141980923041153592253839250164586279072039221288379248771126004448329972977260318550537375900472469896448653708675798983328476161577774954314926065722563972291552052343503917559244960889715359883768650738988144434358564173150761595711209227223707141109191325441348745174268485296506502495834327360947549886257896285656191424506626756901508214167389241712397890655167110906565050574367498571097812592347609237241754386331447530756700917540379186357522787230366330676754190141599910198827656979251674844599332283703317248426423061664991618642309810288330402366297483504428172390882216289707521137190498234206323736559257206533842002204062982468106830948306358134756015475400654553913668778481235151563966413165170154152420850783183287573109691473901801916918814761330314327090499091113059540736377217691605255580523971627113172806973145370175591926249859991296332824556203918823768049376373665571788626886055718072252346424164679055938065184716969762749578190128996928887461427885327845621784826516355850561626830337307977964337311788772974394275273788954589379343557317322551376397133171358487118562664836399489866482250771826189655598066927088079244044081059383918171339304978347305282880692836393711222469375477418531651253878779228016923560314689380645184959404173283811697682491752710245737561871079035666669269143868648459121893481890493690056979334475424825281738077243665310010310639289212981820421736341758207604931145671903200825245023106341993910344180829539973422115181341478911585920628158065576246900170696173278123818630495557116157661691659475301313836947698319421261919195668728511210637011324734137342761730836575963222916307793013063560291018196999099384342900616691047005479467800054981181556040490866805955738817357573075817308275618787599772243713420919557226389008749412726337614819982677439099724044302299834241278549455097901704095374294200856870899259967912891366472092890514643808828398144618761750422743131210260145175934325271772666639203108145866160809368920056396756212068899071888812092865553293979182202277538948903146621405340823844397969028652137431877860345397530253397457623086354395223470266593166824597972206665848231556926385671199641043704050662990570492592416245586824307437172848333407925711121210556964985589132205687059331624815151805112850242569705086356098410055275067478417013101249519262072976165222530367387522088028274446555931817914150079348066188179546194977664284856916499981463265348044561263074346510256654360054670683968894796733478424691175748668029502523351801991284787108056314053338699244108778805541209153021498132570910038873142089560727944849018117492141365097873738700802804212368394654389157166666376917422402526827524229948551282069754661635498707912891427877552375984656025040268692483667334193155823772076679781557136502367266012336091607037844567461976728711108605055632900942658330987021313769828999016970107224313142621053996412024305672280906323128619350448052830085655371469410757964777553625091208211184103639302040140062664326518933308430650779050181243687155550675332859893029338248605394077912630276838438830065071309137746515496686427931838373627743658796541399726297635792156564270538786554121294323745954718594118857413903438782846709296327032033472345383722936185622005106876217032941116964221777560907974458843147877951446090160290047579803112025700863523786253312990316550225504836516535961760359611125469596392838261176177629468469206629042321545378980151217839488845942753501259269299927825442238668686197535974876584339307919917167963124515948916620424424801935956546726487974394232947309374161120642106416845508975887786726398168823347162909512367954145989748104516472582648066374156781642993761262926390387945701473069288204296748519431182305573397901386077716133925179153677425725379737875207683319860532674194633757227935087543709120911371645020570944817944734486691011704903635989821879407017724506732353783867141966953006720064937484058956439177637021428548865200701261049894934366838825423864424034239405352357361086960343246920837827691164430138080704475023032673328799739747364521455974089493915558890772578329528519653232856908632592773678658183783756549602769202801032059882015914131971285186780425923138596609067997044668958626139740250547167276338865175945869779226819297583446691370364804770509335208507097612247444730994834303912923553662162931726574924968586801351626971602909784383137000659643593529077200388998148911177764067776385687643175341972128902788614975559859218727715562539940987573478969177423145047551148972836510101066260573355890435814974793405716334329140832245460854426018435569265256698339141208205934859875640131196322499604115297262640485853725873665751360058414863208067215723289064075970356428306880330500096564654396862184412764957279961049207360686693756372477917564398160162720770148849687163708942908679238418370142249807317640133620673403516284985303013755106014293715807676867484338765693962371213177274209565135324264943316843332428417376165612303093373248034902617582282212026304664813426622181604800585428774741678235287590578845134268844670500918189387548258258353936833610683273137298840389794344502541599386202889285351128252794188828775426036270081743296896673496497409513880193101987691662820209937587704577009050983158950671995215546165221534506687323070500033187140167518476230220481464597274561110453148637523848600459652324352477665555304426445417179156569343256120678726308842918917131556874664248064649234007049054759110267218361327323108017443353596710516284296102171242523431868435325306441442480030705144627473347213669796224314842848420925114067284417365977353137388221704885061878133544338528388393245182862524233707639196849843098349187152630063951222132972378678125040028703627435808305896720474910894411123452334945491202502021340153589024639301702877678256346013435660505562311159016236776626205549134721342220021849563726585808088961493585393223339411171538299815331594533675534614044775832997662604219460820930089696741344878511398226458762624331393004122480243256560280407082728998401082737371975435742331248905258018717568091811522182188943682900299455929671915644504013504835857851882768158714158076363712524120732058473475672356157501670496636230648066786484874810745495906454414850729959984840236931259462911211175697321943048051158530914025508981519528563768830534328924664454396864667248400282107988524473048709822902234865412533725505837893653493997176664675876358601240395449326942204374320389400374018915459670761196133093042966788555627130835736089258045318795154821275332840455229029240886864478981025916057357216997752971668730962354510141404995528072825148745378967901561112699377076131362755422904312636822626196882959470885370797098044770343725148373138717261446734861820997618066999266759692161710909093131593059292899541058791869221941014677700909215667008181600002385574014741599844656075260102056261668258379795038437323766503496537016779279138730351788039719150962409296373795501315023455468571975144274187408166901505470432330564745361523327086894054924523344307973574478412078432514115508338740779504022021751422154565343111291664855981475860934391218455437370697543418029244135652238289204171209784592004768017529588267843769317224205626835743120585195432060229006417637555513740691319145248419576724509526878533648934762522165390274495071283184426439291299196569366301614203254755771983074073525509582470761480302821944652437490863024129966572071949376416775307407930191506259451982167412151777509938686974272485648165264565248002447617430764258518000996220157435421925329691523104291982991104044027540407289689060260486577991603332940321806371859051191508127572153715739897401824085789679456753110163828979266048127279986953490425632172288091467454444312472733131857483988344876952298767023388310169840830883526703652217169476429541642523696632668276471485865500387265721751011231907955935056930344005525044933369013452830674752564063194897596299993984653790023840043521974375717190915840477436538396087352628753335534959744243943100682154529739032336611825866790355352587262670234003583760969148910676174924767077189540308906325865488711446164956601359557301231801611895567171860825307275403311731581479339825797588592728211294448485849527085067661001761615312073992652881405204928751617614267685214699800897430679937734440515222261895360454295261902397146083677804537571048016128586824519672566057772689421016493534233779088826882404067954833795774732622413184150057336684290169164490406760578678501419770378817868089817948932048423345814464681560930841985782334526870964866040612218848859036491759107662957095682137625798244896244955280109846968737168596557731939130077388438783490804545452850361898864623820519767312281334724230040150651628096675937015552743687447129934384966592690379720534879211484781946534405061537333045246126174222115425539635373656760946728400500945726917334584280348357729222761461919732659991300092784315078015597849283136224737857102505306135632004701422290427459263482639524628543948859151842935203236228912104519349770236053487142750839524952290621379079620529627001710731826332636802363767680151826906498372216705352885713371479242597546018644094568241006007415419213632357282644538995047482315257688506742786407004443672106969953066023187422043914850872402100461854570283673324082804053744181286225963780402124441011868735603977910965780145427975338658385340669126981260693155157884343420944348206201502001363750329464683137777681636107944064638338750545379574828925457577390221303047054806791533899669780997460765364682990566614162079761433819930241730129564927594324169431087837161282215692500018901752985518344763115722833216535350352845161979557894472669748994520586179692066342137703146361028873142108720197345633375744819322249558205282063171474396406617194450914845155647408051539498727646285465873978898643019683223206953932214626003109438410879042952045323372619190806176586669189077820197517634147160185393003266781870875698178907274371724612998676591745596235250550989986548890601377690615565560329142682037200552224197299684362791341885890317925427379063760906861403680880233075868400686727678008308781677333726921466460465414278733006181847311724883243845904948875024345388943466869587166121664038963485035661590378989289764304195958599752898879911800930735790905450510303165416326505790296455564984558180588248100236388937870769539829874351309251927716772918203656572106121561745002503433120227227648508620053847572864135766419098824717806058916708475463018795133204102866336585313582991281571231160283062785606728449182996425345135485568446709044684106995424520187117603623697074947320170112204471825989283756087744435883018173734787958197054770176649673248244529182147156263571800902215581370199361925285639654500857018770185377717590779342856280475348659857968321215572017116894267455534933211404136051716429538667363272565324197583286551540157508911855444615623874157431302792649874905361238119647534058700251959767756533515256298957760586461651221960548813885952651755944243687876778837923765252459071768539480836870002634271465803471444616922690593078007439429171080580874757698800705848137523883806702739663333867129899940768465734532532947274821471014254819057618777876597790903083402616128644136553880178232391366399015583655097817582881443331021304573935285840005036047970227324687903201059227027880645372587651185089433463755861314623086536182134786301984148885649971777626014490048324389559111508635390622690951856558051818986079056283376403737488070217487408921645976272880218565075481058263463764278146108331564655817520576036744255182390768384489491512764107435385088046986465875536980858788930301120980482506517992474182685253968333429177960779891847384819263217603052139569980478061054873821489398309368592929209705595285215025824002965446333807853743677274837767648462050155293176295904966311068788708087614257662917885476780825003112022503080513961452548704610755693798470410334900269015670019818397090493881802242525957929845656630348779397073556068386963291153708889465235421276252755293878702683750340659754400697903360506560431522374264073014401202850838149885806349725876380260298797602685773980566380672763057152184201743256595159078878061469781444946086896254909122657352190484306109959493535726959803909000358390832666740337651577677509867025571663258479279265274704464953953947018378368220552186554789365917779841268190340689736787793188488199771462661548390970036378638627909916220836779856162243079602382528362791866347572980648971852336294756651453352525374850898250320975970039722584118581029036660817486557828264416173017545022239456514608882915374435410162321652063904120378800651178335712894123506058856152184149603970670081102930131513836788084920953523113205455474638185213834363758459989248247581071411138399330279184668978687134275966379261030919366662327979930302276871223895515994601252701995515406410617748440564328608316444968379399478248054706206169226154254864737700857957292170236410559809870297835874846151634535238202571542066595710021004197497741364412871514969005550681756974224973152393827487265769341133259739660516313324330123241745856381805131715355031048946205122949227629856563119757568051656097081466457647291940981716270046458761477172267191649611544811206751252085439984641447114100241520936439796902532128819281191811373551654026865079822657075243157831481266941395799936170093682449773789054799992337162997829714987147448264205509180802594631686206716214746287675701684871211618047304734517193424369332668210237225657740047151104586277677119327614907527376447210192744402843500009330975029046614996926209622324173731221487805609052293566484752739067321299338390910533452992997324536241320797765219694565805504550626994370424897455986326200221227667940848502827724910317896555140672117995553087152629862181117916271480053940921028926815596187625023777920000738649782572735807127483384251873838925773985742259027746367375320500490799259287355720990362142036268512710267825280817780917525308078965808060395079826851259577592245159738174602896063642465185890422046953725658891335619979276526660080772757345919553001311892357024223820909443822190717746655183790020935648149712085466086429961322500483322605319915636364016927374957666442182402660930971657709733064643249227686724819165852926448044819556206108930764464393470105156143041245350368366765515899303063327431004608618160650013610295495934718373722023125099125994387097717427965374036458544184733748867180039499050011502155541691442293633342798075512755825001873621223212393295947544806742474896517239808057001219198899967023032842053220450043003221483370687391308179197758708797307040978466764940053805684946828367824879693271850278552015213457822278984439130394655622399965217224463419646767297369431577739098241337329643398019732877025059744312557550616764212670239724093067370985423697884924951427327928448310706567252971107450037047532110569481386198780373496373767753826119637049541178068754445485541074703012616823956137374658482249147048559190313117740176024495217831781993776830619843480639610781725469026997027083677223322041575306356425766106347092613588567958162362066989173057503400868504334698386902014872283326201605785836561527451557177264823552789458207356540098321195224859471685962323204274856123518612569017293610307588169465938637710730641710478114936042496211883571087752167047030304773173029927515787393334002538520191058079881077038054192578233552364695812913517314987757557567213878195449583813083150558540898979443920361003437117169369563610102066062226514351135842234911170609393234272327877676882018897302854802334630415524513080729100655854748560979278379387107796679111848339238955503619423187472237652517744581540337653832976788015035889832694288570127769388746596783232663209079080139253672029946399795797764349244324633287959737403206064098289291191724459181890301662077321318446884923640450307983668691285294725880818248006085284160201919556033018543540474320941196917163191665255443386679841097313136024621685042608802732691646029692496655896778026173624407739203537425932417104277984489436708609489763989502753097182016102225914896401300690495063169529869135259259361594465509052544790210047701998751232405598709086646084073705633626246105027599825134897414888274078796587153020790218268422299846308744659716384465120034605101571750953778026385894667912554221932199061407539015555042020946761955750130904364168964545920723809124785563437697799918646609551244636730663141998091146974931111099134548779139342124536537281050828061057120232154456644670911035642920212292868898874485762237986474039001152536116446777316431181511554026792401374498498911779179372398301067099452100227243523221382182820789423477011284849294401768276870666539036078734687850407279937464943169290632427925841383624846103673229790817665915764042441930485268024781799113448435465608223719759466957462788341981948953332933263595525755160499859794447816947460038590056074367159968026710433783820743298323473174850148205909658996168499056618164332606322805940418795431787919317386587591741437529075681675274865023387282508580944819116184910090200682944767543433041129333509377935138540569034816668415320064032711138573895090280304460994606533484123450079544283042651193526879854000432771356945118745452418722586863256667277246402693887341426237877822688239660237022222304941071876641350347883570892215671330706456493814767744666853480489775923791021665294702150104832672178839720399027490799092952760990655544964150513933699482931794492089532781337089887720529097892395215451958219713642169852963905549547578775931645973707914107691983053217630666654828399373927157375280979114520416280883782440272475796231823310756436337070797335918029514235350546008225924111164107350216423093446069857365686155119625706495482868306433304331445085295758244500939843110953616939582365170620151954806448550739891622087509548988769285259972160974684121041469374843802636576219280881710798770790997919963633834227280972639156418170334330424882871512504170540679979180142411232162670641729656781780931858991588991113725106559109167216485070361774957272062578376468390015991363157125196744930546278970512987004198909856635887243494966614019053690507814683983425816888887579028256166751224333589800767820147269091672613016533162962312002987870548669577196223517759776391586655762890147155909931589547861657151821575001407626235455981566689806570656740237062969443478201862380609542958416842225627669202446904867823702174568722325623949430440531120683522797621285647334468717687559022599011863054073729954085044930674141099951658017509859007232821607272062450606081192238860275153869358599794779441212393135820583812716408045113128914197224485236564760180562928745384243719479349254082284141358512519770601115480853030109813274169271286900951267079901504513682114065975943675777860982226895583599293457547686459056574804192507859249818144254825896806830746700610130189986070157840030488211540732410448351356579984563408781941590864789128712643724501556403964782854322423406245001077776875969058566143441623712694661445999936606138434235507089273425169660949770862367481544169327933909203979378605227683223485300285377269181365716756610158835705508516358168589690966330854284133687017823930421171082507431929677744221149331834432437766957197063739592160046416409059315017074576482271005881295560845775921116529936940073875950762044727969219589954625951941757617282450374702482719366452842640309649818324057169785153320078502456191333472880847800739055123973593998089182486302312078278424096168837810614190683371283685634517471964262541541486490136579991230153668458929250825933241387564277182208115640387642940450668141490436881494725699965899356614213847774270442687793213469747719664904107358744513854356826249323793655850958554621720216617166090237834052781950976452682325847678612944949679052122449256770269057643863762807873579511833313611618400648823359392329658417290069644353475762294849358815654336644794474595094041029608113704926342349980575983758563068362688839425774841932401145157839304463129127071023713847959891278215759692713385416359599120910439997520374461771724278441334437727382387112124281045670665510287835665178720738940357741311139465393489041910869035733160116681746326530723421394314785437116794668959451979447011226566271573694742668070077067866565381171192141099975620661964822414378499143518334539546969998130782031714536399032329190178088877659107455631749845175913253517654301435536459852338406511885954758951670390634622694134638537468151604020020639993220021394595174677981724352462576484955292166641952165780090926696908969620217958881510811737423271682264931299088824436655941327170720898123507972337250761372756552956426063333324207422443508530702054928158443165807642031841791618939536313965083596206374228869447230045337696699675592641107011119825943837636877893030773886122218939495344373220771163855953668845196919928668678303542245796353444931612519048012523118337536134889958445532519210798756350773233093525206299939491906536433950530033163022374450137445147638348062277179498520485098948716149874764171762672180410679822758933760108794678162531456995676683114864939486789975281656810004289072204415426978643262898814756668641776253833374910849229821306603938302306792779515447388320676049536545975771408769733548893567218264045814376050115023765665401206499405731076456785124412230788611319657874909722272046225846387557179332500890994152443700677424430062187918755453961052614639202084452168445224532136412461473061335607117510073448332804249720371498491035404755097152991160417032187724340934031236038357277205888477165907891349751627231997090274820484754072911335087911474978301289712299172867356048597482240611062649501167917680278836306443056654144749027622731170939568363414269019960542624520121129470256175202537112057718197290200040290893601203746901564038760091101870405245447635535257980392916589720605999599661898727250405468410807745173469661473916959976237225992374391375362040833455414760028985626519844010062063370190556580578776492716328403502310863983972612928771417333707646482865791943784566371880201457107890582857283672344706521373098055470063304143899878780749701135549032318957441459534352651032907020861772730898204106308064719545403683912294034263133358323629758080851398866503142483797357918547380940542066058613869730257338699649707953697402745583331874552532786386515717524673342172498369510957886487665528647081464095444034169713699830745198274318376655604863841833759464968209322391380429300386352773628431634766808922605635054261495240598569984811772331147754840701082590685834907621482277297853859189184802959844568027839648515971573904290707209348824469766661996912150465977329396375205498531675598661684963377148224847710223334029341819247876445720256559540548010076757036647901859496689231040015971810670460468040812979392523366725974816646904736471994910894404592140962548071448808934825376595147203366022873765432835740230078919118655465928485791031846862245610955746912497222014926719307406311179713276878243718780628559882039034400064887923279288245303137099287872434397022653849413534901814448429492592507809042126189441722781399866201942013686070416428497665718379263875569348319121410987066755410804663293931748116463768779181197737578409540955098071750192309805060391163892519600013992565001007416778699350957467573058427444784917140221376843124653962589939189527031907177997193246861549380654366075056526914805109259284324880340706313917180251995315898856523957759255993012639306405726770579565597857653505591710341254320982297228033599836291222297950744373616942998714891070806508524859263912452930726878983815042610485994255545262577410291871891643341966967526805798187878516225669811684502112371444585209207710773061605341039450577124114243288229524222922817743148995948543418560194221028177627402203095799949917589916008046841906037330389955835051805491058906532213326289046658475840699585282246713869601262293798591442238127873207712041253116025267999663678576674125176445155307830171769968850058660577395261174430407480707639468698963769355497468252079327174534080340865510430085457042314331847831558378464166921420527828156258703684518618531205870608700035164398580076839773841040972478406235712690704103623856010341148006316517953420065785365438233134792431660779163200100771078534950317709426324805562015917146510585181403380455408573576670350755731422480815961183982374283306458883260835885021262719965369716176932598408468600552063989515541119044084687393577604416151713790780133732840203737708862854207980109409774856724295383608495810933572182111844787886019399506607970401310226476368317944315859545356181144954636956733662923559748709577315567672263129232119996335210114945521097046358114662584695136616217484611916329454661594251369577380110570426728996128524190724209042756824910373551521435547354536078662853128485064537444400118548690238312864793196280275944053839205272125120935169458572564302957083422055942962729696859899915600287620257170059186893380742670975580779191192003193129119332105354175853866339239759203071081733484114396149975111297407357269477399638420751917807370955795051067790274303223317442264398424154914952600725030432124194127004933559518608844444672243118733357618133747636257625567855827140275432675577545367445558895046485192145188937283994106442856014020470386959494470997752839897487797145458465314745817729619189683747149408375672043225458186675092332169337727817173552120447337752853896749420474046049818423751823732999638906503962701745384645420314610887013367396836251197162796201188956968906251144765211022788212935829612394803033908281056469782173230259461121709817521917684828254632518491593626602609661010569316347154891661624600205235227446010555470709882381706569027979129699218774302843936605948728235923018786128506608908702904589754973779967399249215650057157850122611603705581040918098754801361615206938993893798637241812029935711512570483866718406546073609261452205051625411538323703573075683632531749042915111283608042876990046380704685647404582180423607642505103292922374238508253334547461765008837513916623086073094377306347668927235350834153696660639433958037799828712124687902806953721208206054256071958458846228325172998214653372110573624437311479652108782484411446108505719542392804046870169988122960533064832806687223969048544980231576469996595339614393694471922607342150855499258550927272493969208871083715322507801869801230126629817557583152389918362527002736092743445383984040695784586499187322101481070087802200458900943236702174093744867961142266483673011419166951984967265840991026729949040956092214044819199930469681501227884208722554554151915193109947266972308483839941567032622752226686076250372430252830134243731033054719233540498840305670217074549579560059653234814775115484746001883030961961160416794054824406884386142489822201505577247190712812686044716365232601379357926359843394143291013602619530339205282289703968803303600935081339540012657393600240948341502800389746186379990773304072755416251984199092845155791842605521310257373009995105396154442274856088306798510985661726708909191762898124437562995529701891362798321174619639500893955381566669433315255327827884683559183914032318703065843249481414805608375922246459067304156456405880276978087932982071773408772892537283384497626823914063651774689408414799596456676604707831899964392007818990154645527029509380369992573430587426376176308754362590974306976799235871594289272471457380207315136102099212560188899677487121321126292973418801756331746085019070190569736103780289249447505628650909904982109389318556706557794920860326643814995065170200300024607641561513162827421704447725423961741803138087915780571868062719532480505445501370752637800957802660438608304117828203865864070793985146563086893925511027260398897709363972450507818125432949116503988187641564268965185481919914178461985843531597343627383888944642316396265032436186716997053778732353827211357492284786929017339081672137340971891942560043913623148348247537207030625943944010710455865096610724403303946645048230172329577708392265138791664928971373161175544677980355969934701512752789761962357353772507816701170635915976136495172436377880306739141864205637037358321381414033173914604203862931689782455033076204265687721658225487270681316444399033634568837421737507660313466071621591670979135581601410002867928770561390449562455630815132676782515882129374448536000034095732142982670781167313655382851747343894847503521972684035854333089974908935396331138441137586612577905819156840233961364679126211987948803977609224600566770648958045939931081444714458359731040396461402662628482988501310023036422622316873419037261939130274393332209057828536163032665919785181851613676892052647095782112123201030045418535111315443246082543870963609827446452360032611063408146048144445268819836554544318838654314967626307246423206969547810473753100151649902510723150224556049154129069396814111929762901220519561029762378946394944824704113851704494043592325637263366424641612218822319832437672938893510903839535838939318587200004124492973711655670063769598164227148306977239034851259109255642660460181293490483625964517423656610034329166254841919664460103984275992239323863470598193974578535871940714188113482121534947649135529861574515732791369787711881734980692136192821317665897952192115097772644593041479705124609468886391942689179572263541269786670393165486318667541053358684405371199411184008172136883756521930412609545754311464101506556050015433795949108388414147070833311634943215247426944391334870117480132170361777071981994764247889996926838288087746045917777644582474525813651070903707044679025617632823697230177355128094445360377794595813932415762004898306894728008722539773126348725857897860170423272199114267983851986460267677537502356050054037881966938592776357048438759830638675517197749766357110266906566139221934071229596143684645471614047393911566629542928412063621250572243489293218228960410174071953125477364530252589011650122451908254858013921525922015100264510385602479981594281144374384187528962723450762796055358207439443575019822002648554660196859979051761409112663102137156612639003905497544840649167762097169765424594664220897703613849362422060273800372942903069247267790973970105144969748935510098157166503377253887643821150232792024195354596790250920130637326946971842288349154210895335806655877986386380480077043436381183576281103091803412590992712261196740447384583139852930580714043543227922565555547271190481687251808700052506889802462273232849185801705606002717448343050416833578161181523471483762600012233655211053728506827504348059236451356695268697886078683438168798029571313585590980842332507078517922433411149220328847159835748566859666337300667408343294077563153456415027140552010549790391439410305460322583040980163277552513135758755787551260769607870234666722198042397906989725319542322817095918633183701772228332323084401022192780959244004787882103894093409160946611959882112919838178879744510943117640227146672655745790979054300370629364542580250013594936567098442932272659611161432107566872208039596889459956239774560752706990922412845202302718192641949712039476398632978472018046893265819988587504258011877746447431775821384046644645771083983459490145199023082990692754575054781555170775331353125614054923231362418169794612240914846739488241257568790457437116491397707459418912485313372232241162968126135723170866312732496243976730408120904295412452034907644544226184105015082071362036504679635172066286171522636658229889108484042552104620382507969051027496088806293191493316941127168884093141866533342932064238203089123748690922069095090908511489501887251669500147444262989376821665685850355480862557581645860923950649037296109477754863353671183500890408518781682953235204771071542668346933912456115160454771954816075756416844007853934497939929417657578759921072723153937870410191841016576664929766205718279826638256506144229945509297057452282707256654862652304077781283022660689521342658901309481449077604014774245107701319990976382012274725103590326573829446220465325204779343609324454292348261043555517114458292869363569090896478620423522582519553985115619690261350979595417277097540939976084244849030079868526093509119899408984284700709010044115128034024718043664118563481571181256601535416370381762660099634987821547001477683866208579490737756251854791191309409013559771687985234933315123011619327453937801276255893153536184157367528591523555348675726949251647235469117668662182355451175264786281921110853252588355813236919903829124426423563860957058359135268625342030395243284285008615587701840454133702336615370569475822119022235209147933627037233490659155508944032604128174364985641641824215461341042259875640009757376654289099018479251772797713230482315188040386104525419671427899786747499536704925602470250109168294867585428030922691164746257090187860591494072634720570693124339452276413186104467110865067473820203955938106164018881704581429390808081071326679159870942512530962064695831318225924377575275084459163096562187806959786213032990866490578242307587393487415150567725688093386735621819769329582731727968873090713921141770582186989468983397756461004687379519976241224246920189793572687335246087043105656526912729129847757029754150950213884291068699446917547935729160067566378001936844223940384413601775318076547357348061391809834459476791789332470410667225050170256246152493946565324789231240604247531239309748223108865564431039439215102144143550958863338757386690769326244846385066233228200945536645135701272989265555081125558012383763528254493769366927211855806841845527744949426633526538305664791862380655486182905806140680056270672463673912371337218322258212643076020024227769465370761492244106757341202010707862490586161112337086012064260609284709170931561933758154134927424541876648751551676598768174207376059417457133350119380855835674752793000521629966497362248469124015120471433089439957379418702864626864724235404554405047452241987334677897987277122095419632868600412345125675047834184387968428482305337406745378512815785967061963750086939878187652606393876858541770102915355966101458950324988133890184077876073441059682527784570249339198974259622384346811990963973794200948397552211930914938799266031048259932444758849513825675384549112498408124209333584884891099328055653472358151428747410189393549206910531336734549841567248363013443561998183626317549501043642934498094148242096707413352988621160118234491970738810682722053690033054194572876217398437583479300630476589945938616314161929290802425567927814775545026929352271384121965997542186268086750134345135967130053528130245979072670337487089666046398353850704222633772347128551717230512381214925676914504374925725542889617698066030375541215182089516988069452320541821949915249522642659237067767026784384240090639944021359589790393119146222450835901781982960534928215722529833610910105310765312846947542169006082571111499830611088525448411878253916497904434364686962131874624310935576776815078769174929398642652184526581996722870546715598746527376031779854595075243659669068785847313927816798534770143926697033821017220794083465195561573814471831773751956512786546353611438184343329030468981202313785765378041495073451831453179027863574497939912010198580373578599118092411160115916920843468271957159745502517555150115544781211475623269281565736276447956836513465108538026076108216167997099794284203661434447294853056240187915296660012098679938795925723553013430614184479426636032311887512370658811794112366239550891410135763187170940274177806646795065141944464562447800562235318411513794306719622690348188939607575476182568195544756778151755842577297591586350216240234571711631294153969690922400589863571474758042163666202814538680093657481157850889316324156765743787769830441846042515191238097342725315929674148631531240465589010064883256460628540278623311907846010309599462689587049059272445696046486108637420219944305612084836694211927263123150275906251937686118568286381458279478048183745973958974423805033603048486756762409575478041461748702496917073681726205567363628659968338816263714405016798464952679558567590145685935222688640027540543064215787006256501945457433817815911777020053695154183036723455344374830332372959283793953165284643482788756856818948717498012115410816167863520263388266751017570988381500131054399141771074752334479316692523003445838524007354782397558429241402929865234219461139846793010271960313038785666856699637364170940980553834036107028392914792437221672622699575128443111516119413377591637662741562562865634335665965470985335999767745991554593718892546953445978904375095378532970973376373500738019980135804755723431483749490287494715299680594479407196722529701967332336189673209103222913031694042738311304667168443868892212994574479438245026506979795988390713111237665559109833853515390515774633415458249160437655677042605711658718462368573663209276555524140624182081952871386381847686809710156412447504262507593845236714186678246610542807681298228587354774485518928021188909415826075360561013361449518576738085208228191504227643778051614726411866142508192262331435858870603674447677374256372298774982392714800818947028598124334606592172543123356820067199075866498245263751070707955705874196157965222774438449435905072922103099778729158176418049622227421306548424264759448389185906561736463966808761986567464923132354760870098836890735272239738195380649698732550610273916084068049936593016297039857787076985267236937860905006305031819621512961193774466564683852739680258843824886102343832217626959538047489638870053199629388383986541198688392161098584009256029161498899062243469634927558823676305589511373593361970112454303723627765055419211219842393692072698980290932767269302502058008443446304196802837648150048464648428295200901837164250878138923156015999718097232613310375145653004217872406222698417140785878429290107301866971671622083139014280478730479127183017719679244512786164227668227362191727895166959810689997299442295414853004192000892632689177060313848526078891800180514847102272396118687723903911941314215114832553650570057455481340680311932527997208143394194480028013351439425539873539286496880719516565397616648031105500814171223912560423228855134278250814356412364941887119285537585059354111102453938356570357915453385476208712095924870746165563488993143899769152980160940382581145284694391944385829050573829343617040867016385894213168910831232614393509686169261094455174211930505229021419177284862762838659076566972678212892903286779892273604500277691389365214935856116567694761541419311484196551555066640859441421860169584994753205490077152697093835445232085650985717576246509654983383900735012320758726703619418375182270407314237849994700434942363387933396438645671966357484616821945494917282365331182181436580701561309768916107770222010584072508523012351613558298125054609423638283740635972673554116800408444604456941010822236700021543235302974816590032049465168377292657444451569763767237411754856644397764372708507229385216293765832199595245573842640633544991170609098872492618342520897297046613743202289833523577211821291127315918934035665590683540540712039463457795776288672023943549007100885885826961638425722147082103827346370542374373933905445797740433304663089612739476849242818997461655387879122023157527702644727199542808566770483432021257132621290446941471391673828404270878910299246523194196540171591170014602479476354761999709799262087636119400245109758645645749219920818398155678186800059589362842150772999493015540612324388838660357722864018486865046701863099217384921092106140272455915746636694027365277059804504222881149131073787261212410070377753478635379155154604428265957628368212210343587980049468597608243031907092068828406019929207103743523780254319701025194381937004937336282589734939433242410852187098082672011578694813493468836650052768293793063358073924176421676695927639356847230107384913074908413861581222511578946273281893926051918185256328732905443924163785065485905653327320471082488403942010754427293766389009584255893273199452806413194663382849982491497441359570980328872303444712433663604153545624203034364308882455990431707347963836096364424358787876488487194166655884293439919130394849165994216669697034167021600649333313874498565221606373786393494618779777487669635044990583270409950934181898694306681353302205863647780636963126423043181232806520612025231442315769194351464864506885402963712867661551690055082266249195508637757037476710677752548237098511423878880234694763471085645438788612904075194994837557143992062146956733164896462657169315159233446155009639188609342288994538845882105956402524928726881860757712771960548187052334978672633500320526747309504319991851140109794968822277443949031892558168101391008998115391268387004909625730191038347395670885319561730164399898944175794182198552624011137638591932224928114715498555485266924039659496367016073605554414126944192264957464788482065065711213583011629164956903733614381165611375914197149199853756552521623190320257153748937358311859251442399057176308407775955980086966866076381982960366001133143232659834848898201718299868710732521016403207457679591042786966926974691037457490068635834566849643075758851887891878291273826053957496334643314014370056123490946018118337250130264989104194068768248041344050008365055624306491600686160236486972789049491456775768799162373517098663517561379816775032112362211077191907105625303437107976795543156391707447089264474275940190378247845903159304874159368236725257457232731869271091762140495182744652214602520534341079126418261513895129537610182862021906182425380156339927444055315951317769105676450597974785269323663128916335262294138946579833036027727783559741126002295954445126088702991135921658242741885879518666349578115556234652246285467526885464899308805802540495396090355937973655344262386539164182266766437385193261472797017214975132906082414217876701182100548669211602419100147026928317442016614602491723423228592116493878847081256823302386228895996602650033118322454789355434337559938654245347503049326752624399903564821882093471682018555669328813986547164497343629889485654111769637107049818385683929828464848344494903315561949505000090797155016800783166863319221158128479551259743952942636817638448099954977278652107175981517859006865539049537440088592989476432896209067414896070799385530873376125446007822359993086089467049762621332585552664541179750168993165410474790390936209333626799534236825758408000882268875080391905320365411143936824752562273688461663927579864581574748472445470775495985984108314484258880210338794896680223982550940896302469413673629674712869629326507879098130473294668239012370700680274036281373093950288629093465750804103109607478235630680707461853779433144549306830527328492785815023721429330555535997503458355524754971450046849848539992523798044581246217617284581332236691248431797598930179335300166982925608668819981727241281007156775943570528695722275196214904919568843144659639726280217877538094635254667953922917890763061749232764830291347308176356533841938135752904403485538229935384913042496882303327301216069744456709966475991566470697594325595033979672138532975134622442761353487671913326725675977619844999339560809921885027900335779883180017761460937482813116092901228851000022742096895239353911086990149071597479648282173828669436631677264526630059686364445614640240580543231783227007525645340033931763533355420145749027821114821371640925453861605391502929415620237662066223014433507471982765368546271747730333831840015429317796005830352561735392112319024586769531364016461037815685412728836828756245430826641636477905233399354449003898455389283105654184564398215957659791696871588636408183012406940279315842908827664400133773285204129995435562601542604798612298756068857106204979738146139357502761871528789641619722244655215613772799339575537327036510009338024671621962412809689126987886932655097436595226724430286027564811545803319652618754981480923517599500780093845959850707926280225077187181366600021761283470829534135486865181747690508293272706341008445288501393105125517325077543177930045505947466914704279358359081927574210949389134158920920188686001265014148718760117186526467396523984795446306035172254514574276567925411326588811332379505871068547718586991802408869743225931805347464720528997432501762302731384672702053337700164712491834993891913919768661011482279930517164225709185492800061426929133575246960116436351322331808949813680373680526780707189308156723131461608188294822612818624092123948534661189391308821829254892642710407366307757319372365096345596084212145529880417831753556160758351098995335712391459178996471019818924479854179455781973186272752324450374546216272779528750146611175972910325752358176823532879790644302028351022929774824151318143804456095920522683317242545373627615970209368597573364698123101467410937755015407753518507307472952116365123761740788938754944271985623140548060802852432339732546157173014800930954727109275091238452177591971387220952217512655204892386836195403287989884476545219050766938454653214331582148043406357677577697383307461591981383994534441650929334678423445477503508139666500108944858540438533295387737468404192440813976499731320969583646418051192666717994864929192173619891000158053340097791007812999346459932560242278543651431550520450129101306361960580081493322835244485568988447196109503720991006578409305465370296076650619487317531299244022824460660581280144213729801522001396342670321390292114658071017459569008898427466191617751091008742676806851497345380212200369634193568299101587784793431370960324883230115486210726886362527981758567937555232537863248355636596851961107108941922296917431218679446449106917338351016562622766581295750340175610557538343746825490220207184437158725021057742601915724650962047107314108752283015814955458367759084852237860947147751732087646953981920853982381433541973961250083274216306544801208325062670359241529631259561035504291288126411220483033931386102947172565117267999303196438195010596274980344574281422589516428910837936323044064936635714914905249148767233948538448685800905557911860871600963452900360987938847142535397095821906924276936304574390138315926958956149360120238725767280605533986011033592231212109898670790711752250674196205591043796992814058258766030870909093672100224309241690859007736115996839500571205004046798556287082533831603571223762455696170442323940989361774278642075807801742290038881159276854891783856568431811803290703586887215452984067709707328565327528340173731517613966312830870746203280712929960380093217909890556412158401881933719623935601310726303883027590996331028661797623765422232913101465291575742494710054565190909411242010308894095699556585134781785334873344505257846467583652654933070377900594285518324492383847489154939034803392913001523375356763760139864173195155738570483136930197632171838814278890340230826223039961342909438748572729504862528721045555659714628831588230084636776258834304860828006115209418518517013534734082857044527523601740277726157488665844101312791296081804233013098322051802212309286100604874053354319059662821030287406906824977392499719847180795230431209643994462134448982702062759979911106226859350689813817750075297553248968558057449572959488678272792852872267722041834460547221149207882548269859812151586843599643160350272753336038665381324192992004032175371716158003630504719398354841078315740263116069536974387104931477107006415384146952653969868871240107589657538716814175479864201159408220778703400766722265515629182372433687647221336206470817026748467667355377801701947440119737334519449724305545081029609080222302357136350788340738168588748094088790708474592649121214928282576431781618454711096821720760120384858017431030437709406164750848837577126834682555317941428198185473880190752113338796500718069075910914367264546273349046646269302031469630265335462104775537594140051636914056462671662338523377936109900962234382947879300121731575657017950318634065227992887092581679364336518775409198325895786479806978409393452167863814668612630168737430524934542382751633653040046777477744228972693007396902020308464182922816990270179399163296193026673420712741006775973916793967124880187828544488728910698724903208291330947559545372602950726105005494073945257414157506134541695213547110697080672586087721648577691910242168032413828461407552236825842853992851119221807687575848240198932663508096693245277720302091363095548626693808935659414311687114268620484379920321328276946528676173905107796539142050470045900199094948157322170374656653921574819486553091097955112879557159774985971487729724538902364586943095613983559685160383901145648178162513393305439621408740521038070591918198302935129625588933078961945241322187316294716540408181255714020729472867984159555547387384481044739912817619109223549814049813507021156013605070382243379150981851554951868173754418220440729972144266487864231899391042612943433591963892904226552915762358982676606929213517444988063082019875806418922578158834570641359593016384808876694723151580171478955110613061451598458644764184040627714894811410087115388089782238084792466182998130388280921647476239678991445610013193537166892475969617767218343656426161724285127818392839165439188534172499097259527571359182951312497030672400150253562653838105942371041755850294586958589305047272075097777956343503803338923627758851172587917447149596738236014494086412906109396665092238788448996732017338938847498748284965395866975661354103427499474850483629240005518885913981618872265201956374466005575509281155193627569710421725452051207907014951777355773185477309320859981893423439348743695190602007503974544988159621973944405647702458004993873461742726865612996366900535752865708099731031023940888876450516721474960795273320693008745968711947211371875919551061698739130809631943339408783421992424510219701970125613810491896293744260189447457836671061672557873294386270611529484890523065721738970317412147225971534209610925803036625823166002714219613032941015637608140221282139520880237756293952823321545899606466663514722497075935912671797071034562133815257554527556526596812579060722257571949121900467247085921177078353686395791829893488770467763323685094938199478561690950525409108838706961801521726582334939300408850826138943999295792811787491411323152186435379699627803051716231961911842122816528144085855476130591259440059307144781852790315802338722174510413455854832887252070612325727668955482986480926308949960968571916957840462898601854991255889716602925059397330190931017547858348991050772752770951141776832422022176735977010700374363011590064882199439638452288466801882030451673997387121659301229963308003526613542915391742163722487114010280204205629996699166517709363647410691072206613513437254408221456423359014548938025889203659817558968322967058173224334945328085126119326739720092999621639451233589460020609861326052865927794475280869353497452646555078039208410458552720933399138710544758730788888044977891550928522447828885165857906064865974502106925789947619012447900271249383246230943071231043620454524772853485294186918685259370610551662784608598983519706433604311804327006497486175212092412375414893354798016856947070963510245622988974943991687887979203934070935161740332329498765535490713386836918394957699259072756947695544644164822507574486429406439883785398938607936343888344859979832497267145411131341146620114787650356709463718508199408478971127681489165667797742419744667343694385090259691335691469894386039249650777537690975365327118140063144256078214039138726602116153130801672170263813038382726707842028397480359175172744821470952116776879413058918360508719662080439240673078860556892666829745284863062731689272148814440044937558543612248239664116121789486274041979248972372693170546108673191433660423184061180924692643166744434838458583691673806712541347658014595102888353088812185780077538955979161296356729557043486637566213615467944377055450840161575649309017935680788757224870093860323244463965560800741989696503835278786415486165188761999399208151638543994285449395565837586686130376534901136249710579419124040023783498097326145787285655924024396291429342394485931368161268130388028318703510193955570731387956890486316520905295387505103561074983707406930411143780038451765266140828369546778292010416882591731379905850282900351405589302924576874973475739687732519918129186850754078520145714070072273734122556166758016261023247225953382609810845820113692329018913128989809804564063222841512962723003824527420171603267451865087531541320372276002467874309196551725553571865783500701723667862176577611749219118000796858141592116129655481015901356523538554880458394809067899804092199236528834353842585767483222542470916705354882186477522092845594498780142039256238155699622319234094240032124762399483816933997367667054104719554040910551809026353520613999599611921158867550907550986943420489629535943276806497988575552774982753650203918053522741430528334874522265995106340516886934062522353613751453470649908583070990246556819832190323659568352660655869182750835238024198409923336795062299038981675204588786226282375901597822902433505434860811732713859428205836352875690127072329243071380272864713277394961491460213337841602418415891109283387151768236589268226778364330005309105324985170215551302077218356073921574233971497725419632775901555897889531530315054208710981530891451517490682281621385897230300502927246062796415804579585630085705843379548271947185830531352838800612715538713609409011132679055795706691706667665093163216390321381681205856846926798555268509751544556043304821865358531524066596049807690447476734873292612966823262720144649742601421957570861978527269797021749058527959244968573624925280882152421863936741974024032443581527388728777089793889280571961923833369248536544796190600846200544331196136290175195926409403430006931554030675829762619816401699144261247779430949565162479879468560749245052753036811391085903535154682857813747003152046094804105216944292554691268153274899227782489097603075738015930072134996372260565086884449514390467452194761131178324576611893416105608730075330602690627424923342743309507506476224421740471675866017284590414207323887979474963780238938754704836010825695489538604003699273910258330852226194771321442647655913117507089030745720063986499023454255913219450469206818470018787040469707344191362453736473404163359827632371223536937529576698407970270553749505158784072327412731487310260476421735020078263551427847457723469786709843741113379865105585397569407579980659844406398845410337749932021796738204962657062480142131762747162696732640157044467469519902055940037033611005259473185242749692805021343284957657847365029604903833498535784742216769398992532510749563191456028202128286511922827118900268025933613743388147410642821984561433613549263807192633530742476932954203548378417741486203958692607573016713937357171924443047450714048533693279288274633350638485364360987924716203583605347167268840801935028431579945488117460912964714619046888452119155967586412162250886086933416753866057796260204274755005684584103870597132889808331075935143961670646036999862838091034253603457741843263599466637323775688525518092411974022867632128883827358772486656898626098742327071875641987558472816960694922626894018440548513454345544994479101227851539468084128508759917613445892491272030291910130793988394065038719909369986072487294469824860569170630949783963105973714252574120835997574747503826856618750307102091013086300517693393925721830536745464130467549978586478556750675386104508901380381333944358712726845340009854513062507951621353357710789523544505938530725277866462614703837821939684838469099087749237708457408644640773297995774860905384940500197060831159181790275988361280581732312656777810027835977613841323539710235268472688956744863464928630007488683678650580751721267935742182213464660954477045644960352976417863159013814985700119901819248736925177692414351339638181176659721319505146254483799674909799214443574180074498841380406631147465481341305513093202930643712185524466187732408591937419011601498758573065613273031476545972664685306189104532341986968113538367619908775829504456192403124221630193900597284610362991099099379692075777657765546810838516661513966499607194550347840282888683259294929044135955623624001257566517564685023394661487414124391116641951795381949216165767497347246757813930036642475154091890349011823040051191656767743538643705149706271896926685375708699566037408416460498834639015595735690786879571676872280192961225979608546052299225879813414519844432243381459489064508237580035103803721419102762323156279874155069444767369007143366296513851250054508603725570969218562003926457013939239169285202695189373701247171422818122400755897767920798241822789799765164375995712537313790778575147144172738761196463021486718857729384004486973860298365096110236582275549463466806198393145752361448967981701713132337686980650773254820486620281713280885765001881842778815197044411851944417779664813342902157448475183229285920718360508169961817589111390858618279464851611460457803252804194886705051879078187015011762226816140671974649281074151746921670145955064114713348056837467024486033692566134200641704899198605433449326101112049563098740920657253624579573323150083458330834437391906522261942807854001505182640198738938490574955969876342390949673139008629558539561261079983986329655034099635214059975754279889704442497099065837432939606857954959450808048571739882868665857227133882917234052632047536646470217117750493471260963798533690697825690621720862450267608252412678458685459569192567335308086575357163905007484527592215491457715907108118858643499565603681508786608092805444754237146050257828617592344878248223454659918806075420258790810779106745922343461524365357899924090070650613767089286007691675463338967197826073968517843601957222398256818353107780236906751970869825489121554233983768219259194443588432449331780025058949743724639893122793370350501461776932111223042277450073584343228425141102155550729071279141398782477805164783213878268231275529375359981010129228888659377263846477690436527905954288530319701985833006406757050737021829790499249687762889440420239507554660086310003385116060287078228913295168528023449865194984069075863884401414327887836920509044428834026341345643920895384753887862117663384670186888822474149631996114022817857994693296395195294928295188294533835096354028888750547674605316163088818741117275039994046539077815795293128247206483674349568882294637314830348692517500119412787828691021798391496960052913054181591036126787516012930027888092168036474705370764094551540122956254414671228685016224659709643328856596746602096442675253639004440180406649584600910039749075156441781624592224369539917542675767643410220304631659665990992016070278986963905786800767981224889684640217469837333168731163270906175117993884673715250572746580257416073482902007909297077054644389921082867514245089459466934754022000552721925241330098114561185663652597128820226588618820180410361923272479191398700422873506573389221830768751253585138101731549062994093394335551305258613803678588985291945711169004197972371955182737362487865006068505526440195734894045345488436916957228151652197380950441009740936898417583014378137802891199391394645226980616323242979832166921228459272113004646273701648075539639090656486350480701623031215098182976933898568299203866576079037118864481165751655989964927212706158398273565054650172599843001653940030793875265667635200343968524928183301460552826256836964240915926852506635061983974714170590286085883472486423187843484448286231809007120459945224055079121530462322831505892604664845857691538108054188671745257681253643119567704693488191368195856994284173376252767920095607897681060017392478754719024752456445390850661794888857643744629081640143908175152855352311797235082404665065669133523093203532021437697912457665716009037774636215102508226022945517524248305413356112596923587777347762429605488806428952903992169849530554031387661059149799629906005425667361947266501228144680509594083966415822824578342464036083710744817883842389033682980339014894486978532190346434559341947307506598883578950833115635184810013766546691760761873575902889722216709393251455357085351976666244381182829682547503492604313074489672920992158661211030706063963031351554348219774542374557019036987646615169528272793807160762667830599809762611545315066200754681616364870022641641168052134016424246285358862778183064814073118725532794748092685958496122611748515427100501619742433803980008370754468249160384673039319682263259366095782740952666435956010039796330875506500846691993126789226074276394450877338074386915618584078149623536110861220351969033686692623024557509233806167596414215893659631745738181316144931149249274669326916526580217027873496967193037161643027370184212715889601220634770641533044766659250798446942641600444534798473257053113475824879575508192140974971789174922360792533364119522136465002757922896900024427553801686755263098859709852367303736638194910620195681933985511184407755286439610379475038840905555914939224960030112583285415586604039976552048847807692429439546256971179815181169205371056534108050052739894882448917961609126288400206193273568102183322220700110475438897385397811681240711909371608391593258160102339587691630776645827482635039890156994100329590754495776543118328015987973881922211376099810352876969082322505977253506502019034736192821100444005499633702079730637845995054568196350901640981933504661527857083612228747307271783467391759611191213652835762245084720330118068144696583523495691320182543440237885678814544222380530908779929867543523377230211909503727128877649786375588100622424074202729690922231958954974511468845083596928850725682992491495849398882026668798107031775755209459688597391599942597292544874797504679907523788073506096560213492641134087066700977373141466052783005871988570688360850817558599739801341282920712651872003554935164549823771894326201530306440549256714559270733082894397557410221460989851350173310990570788030450501882376357556921034377856052511884595701868818315248694824428455150684519971977980006340226102392282629743495950102312978786429565180735373832373431972167159908887349479906101561166541677713404869599090232430792122814936577305370688195974962788202321298105039264164537907072699095365722257564576919204258649701555538646012528950531273404139480895778476440907208820001610361372191989383006027530734309219014520593698482133514549879569631395864650713794848157136712010222783353802865175825090962992600923644314970746303320134357177923174271984491209280758555717574642990438698398135419274731961920976307990613076954166639551797862088502573218280237268391029635175762213779814944780825424467575521705788124916538956657713443856585061543642805124343966793253689690121970042808739874315572897554977879523010799865438575804322007785149124863562124447361907276060373359562024618271369680680632675691044081591231489521248264003400152171990706367003961946990437045582056438142939947051829201737108295956319061497768446660968472672715855185925051395847591722920367129001172641216965612857854685608652815978217234341221859223364518402974373001074427577180923198601102834517632665996467190013203723269274774785949092313832693016326738247352327846169655778034321872862196791574349536906146632910018597974162690506728064039081437078796402548524110406166526214085793608793210695180816389088036108207199669886368526902407776279898626552620745206376827500074525080120703782951533215074053327646749756614114707876996971444068475098078287842205076274435659379531942529340737425940172954951124371005923921009715711123477277898597266359623958011377377937414349702237742175136778406519731790568134512101505473443244743404705014134142000779214375587906702971822084550701781124011804798344673404322200642682598784786158933659882202895702011647854827724653401586902240296053571247206357875138942658473566233992467545332816702129067393086718658089066144012131532499945446087563528674542594106109301398479996017083991698905746465020404653717416986371535266218848249057082459405691679298049193078008376005664209078537610179136316311549763277655419082411768725267898070982066200353622889347262790734564969356544858286390703966108432166849243722592582813839544551572380112398614493832462189997081814994207509423107113683590399911942092590802052221896569047265639961918364069464015305396256505155688484489554959908551973139323358719499895319497219197581549527677682309885295139186723284889204763453295582370530178384464014019204183378435639206826179762177200725255505323555008889091543631056620857802480420317215074647530826387433292227863326625571480884150138609809876645794577472054970618201249836539643679551533640358222875943607423880642729872678335298763726159472559629732491268204183994441156062162335339073009484920573686608512354711078135301146199675653140324816136905185368592414736054494784235838442995145851939399080763435158505558460686594107757073158695012949823498520650203302675862228062877286744654549015181601082697700257755815989127089357318456623399356414807045978007416951077841184821878835551820777047683028004163281111976098178199821885915626619833426630309896799038386248795767365351734359533474503092712766588723068885532684068511412701061987259749579958272430685870640540494793991674875324166355972414660983533067056636839788376633151999880962782772459820351063756245590522194945336479628003401783585679838189864324495212854719809554135512117734279263095685311048031040200829667919258574260853081655791938492297074292616511717913315844198533906028421619662478572031068532695949385105633415989470628963071695781046539921391830570850686759946715985161395755375670228919896367344835831495851547627069947913556190634144782488568260321851266725414752457105719891679056419996982828093663349947653766034358648673965858770854458726682348079942300937132320297685482052777243562593177909721983076028037669957318588635965784429443449805572817027109813802428033971296048403842271068204601444346854726275965463629174866437727259197632162545885061102209473218747158904464968732179143669254025332975941882101163425676722943733257264015287515157826806222721441721727820672975742615289838736774449182860124671639881142365836359875972717375458961462122050586755478289812634193897110004806481839048037974691740559184802072293710238037651974846241511552446511951114268422071041486594678790716200334219704346482230032044043058401455967237645515000590556677945668615479656843563799708538178254250806043723513482883051409169107108126178273071760669068477670170331104711906629413377210651556279993428220301227792110272680763288049457924190677627580935509550683228338137137358686152916078959732407399990783553233977957076894437719310747189099903501466868878050022295722922262807102914743519943321270736494672540719342010514250885520286885708276201013194053906062263798504524579749386863219468006842020531719470956538112376239345686616779286321450293149592392034433649961650517576674609720148593171359812499864056161062728756668659837886254600962426649633025974787662449058603419182879955648930742716211358735442109010527791169309211843222652048744040158989083886937778080868380762883493574270466131311287516817676439273720978346468454161189032241940737092098545633681418503734446486231274727821628053341286954757277470792266434378878731568105256572197109613595691555283231570012361258343881458881715677056360231943605084135535710693597541454105158510335445800125989686089965456314808973604308847426436569345326277027234054005240799207107966533981814538863290878372393158105515419774091798435463920057070092219386564125705099311342491709822779971435223236568539395915181372716910483152980227823588943981219227746798498675690748199341793452257847681484545626664761672626018038234425898361825227128389566190415847777374784021219310034394106227685329013561259432498196535371879278841728053921852634026931852752176450209328088183497500184964957202882120644320628132534256559490774005164126941473253733638160201593105357642723406230916699130773696751065399153735662247883916924238252886317495777797372641554252527588776633319178651243499927124906964312060316845196563354013863908245336204563692493425851440315830929334490754649264444699800553093367934163515299202956216108918563852147585971187085599231671950819549903333151321469228121817764903516316746867925745230662131747328823385536217837164662276338045491046309389355927739453532219039146649883603167313833933558432081749731432634231853580676905989369872784859125901199348815623565646353288820167331404500889855220363079077816681159167240979622764338028457447939337348537066470930943465968930289048422502513194018634591553541342649784466492923788380710921244471591387283786673983450223075504653581734805175358449751407720763024343327558557203561897021894131483251398087234611709731799720794874042000600222064221303846743523703810088375511518859328739095603533118971654328351559022836241865332451127210802778638303893966042720555615491599379532683957726334907099494542423332047119879588880425872402055908369086327428336751656297377682578817873464074888484972787636636301811318585714357941756983589424353149441942645261914172402278998543122149241614739138658150345442357748220174216768286192643289189059414180662160172645116524856330917326378683466718066950951322221582249385754955363199697295958170619186960707329918559631011756890904951321469482192550581256643525323194912089092247691355767701696513556472241262949804194978608326039231817933821865080533125392808111431937733963176314895568186100665472911102921972417075075339722447529902876739269711486455467315211036121808064264904178906958375354735295731523093984192982885202329537420735946708602673756340917970694644255111300320945560539202212398621588299114748770913973670889166884813364598204676471778548320250291090433675128924183765887616369277252741885076783187467873720974855018416910041526710171987572289792479246594440622454822638920902071513903086837781524809866464744765497326824703769111209713091785886358616443919467865426348752005384308479180082740301142899338998127584059661177316174665699684333997879173399771704488695170763365957607018311472220300343860714569569766416957985126003588749433578806543897110478352755906200220908015293040535804905887704166304324858709733652160578994811972522958212012409029017800348690041596482867470124768628884450034041162296211197335718587625776898155729030795095020396826566890313935670890345890208476888657406268287928673973100773027235787077802861701823744935190418113771602510037472796965488464799663087107049751296144977081661064637204704299409686530186923358335366502345121239083815790321081333076348067225233715629686703926666613735399939715230516408985936255567265251737061585946433605795697799304473743594512238280813174578280492549432135840424080118514658457068866686204711804367141570316982931055228406886899342817111323846546943502091184415495437101266445184669952743252122187065419436839437786964874213016430769920587933505088853290587321764277800669146703955304393917071062521187349441448494603917379697441205570067224798281646963177997595012017513621492591943402725706468491916472866807980071162004168603749063990666516578894681646073943630813612041368520573959806381854976969139333556318747582723222356362176213583860538343858993209079109439492601049270468598787343400120624853832378573357226593501837590183649328008156819599394405463550195733416768284655659275325361478760401795577280944811755862590535312355970851956754143628712315384306011450252695429867680568657889789180275904163384678473547975063086137697653325047039430124322275321709487287959012497694592592576547684366779572390783930663593288920248239964408157231414231725780267167480613690983047121778282157862421914818704130973238759296890122238862466397661950053523545343354699388571052882479249570230880047207852382035972161026074873582464396685934522048958215571238806780705446508158258295934715305165867477090836030746919783500264436245308431976095950650973033606564000562857684695340600952161780068902020848324972959695252456515656696216397973319405807702570763835086038862423211862582613931033240998773142359295257458892090494092470172870235426746494839578005417702563312321526373665337538641351327966220316223106722889789663452115641751739146582511642608576919250294977037361330358328968734856221671111969550868377825638805362425184303769073608360973039217903336716737951319271234396390097319277487297539242794502042056850005496840310794801427884163694793262380511024012835918635039840852152806298179553914853680473673536761844155483060352034799540442420312469822115588733279160669721935099057023454240720446022550675173806317474350842567769003528840773738350253278883314583161253070153031678943940750710129024878495610874798143731420006922084603494028450470730609782279978817222340280682897324220714796017278363617230293742374933996189785421684598923891983437184294585912839298410741730685860164912557144313049193747510623281978447077936906628820516709573351418779742833531576335877295878944687571294364132537657917891866160379647450471754651698394504067088220348854591453557066216146899617188332282927298589986806574652607527827207771970662861469586127971755310839034463941826683236901189298617276507580423090115920939975756835477841318445319531714456186440692633489185839593832086953397514250343502116218502830341714439820066581479361894561196456803517097808424264838738638031523299947781380374130194617504759121023784475618937079257377402614074179878440718743909895948239431976014035817461219834113129989998813277672845603338245364418679214005905354965844055744508330509417910910026950882092449281969757368973100901875713423202844347900079553683407392443972780266567558379911068553944520108637801454471404277814665777765591199436241347019892610426265464353467018983891999487357519823823887233506032341802311640411340201422261469610049212975794006953066634420781528831566456571320069034796822187783683463359448454654376756406130271448151142466565090175656843181490111788547994252445270409673621064365262400672124469086994151602014180152432553406190284086628197690810560623137919249223827248971553242344845627239979310119633624556736928511353872815222394016667449757641038112084599362135049263675010122418030239170331398915904445949846124261874694560115329044802120308786454570490093512558176493371572923517703128708344051988842197772495336336308439359783944458493487135024001482646247592481636652035859598743837104348007463353150786867994349298548466337409532700483278182359376590004181565201733326388445242094185664741920958714238840864425843288841843558667404407866829078321811460635721154077786529357611327505026231313885598726005819494401431903298050639954377156312463668675854428112970730582483860665185495024852880185530770360858849690592701647806844900492433918909571163036380446102765345219071730737609844305683269485463077577185811844517397727862267464444906176696164616310304248116346629655934140866368637505578729937517042435114103017875530764876661975650890064682895623133165731989628108859219624495307271268682418386174105945428493512829416668411865121762667490203295321102080349560245113872161070261704397030279612327718739152007569196536695866515373405933265367306251776242470902670140723568448708038063551947488338535456176226630437793237280917254556544760404366590329847446639121861602625805938589068503686135924955178110601116327315362916350480872247704686238175789518984767169750256772499660099998917780580907736727679877953570778991381057158244573913969877820082850174521706070706081166497520990645570762153435335598203119298681368078226312096412911225382582790196615120319790374056338603811403645524951933331418618222880362913760629065332679430408587544739768235771474193172322205638798775781319845669209878317950021482124510913315486772844656326723086984869261058080127750195287293831242676604304776273454898169874161671742894770905361354119386934641946100583209682672099092855924619717804216316278521415946104900204039261644862692732001477594136000599681839161046298493763431498003062133500707351660877520013504755983194726805812945272583941943097008920880785606213398514682759463320705458530000071457077606737202153361069972885763566320208014226238136241205005263424493711549224491272235384093237733707754461222766486143241878824948853105589219824224788389069814560813894381177859418874019274989880786105066171437489503243864336726490214057888339857236499449441294323430868108394767294261694632236918147768557828603824617352452079678240263345083665073615559023151011868320102763364067109476727274386767336011343265448744533188822632776907984604494544608719525310077167530876680447485236214455305199404191456406274760620840316877649486176975887364482741514771694212613995682721641969370237682013150297182739338908952214380442422194261722850499678443680385807704299936480474428741370441346079278105526643688109277577076418855436353981587966881918257348730595733138162874000734609349953342298176608163312755483111724432154704313291191798474816015429715482717099242682513203608480331401607212525761700153118878945501259251233415609325509941603149786272663714616894639539240819748213174374499443970325944025394224326219667648039051881061185261691475861111674705933620596630300489942191885630579151074093559249639755726168340829965214205262678273909223592631865116535972616773594214203920121456383269943219151634226857486004236275291507665964269345342962809641297605329048647664218270207553697848083441561236560669349421920324990346900743583121066582313001184673408941927150172340560104071253755670413665374963218508999951003886531413595245716605757630203328542790125843143310075664601623934016846982183370134183680157402526669731417662005970753541690565697134568964215872193969580493543307306667902746940458079156407234294206348441517584272756651294380736898098971937401127159031987836173599913479389007326165584561465295055717551357740564191927605841219159666370382533032308528566754821926460883999612172260461073762005088778468906079169830472209611071032964030400773210524841869715419959773055807492948838352697463629680495214495010488858318993023695741017389764636906623060825583348416688298990443099811424307622531303325415846630679610060514772402987324882370808954384760729865126500816577841500952524168910473197804135005326003971243880972407209814523650665176204932387361999734367114772376660953916596920494804019659181782348242939763473290793632936442806008755566713610634886295722480476350398381096743653110530171004385460114947487695970928811829369309250041328612400088495542043135103536674215097463815178744747447683510445528802171900715106845529027034629888182972117426939441086330487222766448846881273097752171198941208231370758136010877570585048934337971260656375239780431645422171118624347334114182511577018426831375241452721566070791284442048454800501291806574557531233793865396796631638345690944528473485827064371342882089869949925310653079629277227358948785737758942288417543409587084982803228683792113830087999458810374055363641965202498984717729058761175724354473958231800518095824416197114137247662196401969112301213598868334834080446168078928582240298427193885021300720873677273988543753989746725003959244166724823925530739720807116008731891777439829810552843330992999157339186736215647101674555985278748086565799054272500025099217430423608753538417958713750751238885764235523654832789205034057233875982775720805393852778219638727386181121662079695786178308915458597806619363455285728276663498282563453725645906597774602251190376792379317915368367472898284868194102899158510967055931016683913652547223834029720827728193194597377371166615274064545810003464132589878896425982798024530008285992990161066565339145098529329043264011052878847973341954211725421559111942931448791641005575396525994474814961810541328245957776322610214410742783302252125981751432005619805870667882236539101453010541946407916494981811649745526503349894889948437035586295499947769269210680826606484294411339958690413780037921643728126302116574736925134436236161885933193705004551350626351579224599552449070724441304637819194395937963998252666543500747308807876051408890809753417398819822075995780153031073287989172359639994542936214322778498540592224340342533264011680077982537624618549050654290413276548872659373477511659087449207967870286005212222581732967953805243250468000052539917899502556748057499210141257566191867994054706358478554365551270952813165771817471378862662585607895219214831281386686558986330088948078624203909935284294714706776443922523919814167699317411965531400038971844790414236159624964887684459327482719788648579788404222080188302076008594985559757851959649645260828025503665352520464892474996466381364963538681394066621504822046139420676590250601746416145875608699487537994375178877240970375688106612343412433261762021306530115087826644023144067576710504722727082842677538847644965654156203780372408706998674528740940231377296904096411444659304953498562941772553809034591628609521468959994903035527043507200510038914808578443356205620680278828095178846742301694011007640218123280961947804535387573681362616473276603050275913911908643293677823697514587236505626763613681620046279837661883865057602675508893706375892810418715478526451920102726379846910994048653024911897396534716309677722060045623825004466331124965531923410939354497686678149315276488944421994920250487968858487191340802988035471372138196825180202229444796584621323469196267400587761654695811706943686834724689701879002201050041087931767164351483739501045336649367174926564281930115975605742619488514698774750842488296856565956462981504666115061888593049130905427141768583614167749156012759279968829570255660394379863942412984024553317461961923947342088819138388797510985572249528609142813151332795870394660801986807413173742546497036813877088256461547697549303739323798509223996235977221066803453771017018208086198321783529255142043205448926403144647121215468474636286984898776098806212245088659963941077226631997538254169386843274825588495977469222944620279617504613120140775426864613702324108495781495386862262453378349708795836333990841292928384573215304568936753204380413958523465484121095442160579460550271079566952295081452479994600905722258102439382043546423542386033887000796296738389956297468200789886201309090611350206535549281243795066247504386690132217713730317812231536269970209678396463629961096689096942818075888117736906397389158261156238063674760276586872084858926040838128780844620981688474139504603069158499030143827513330047386630914157099128391484149053843174079747994151413240583965755704081403521649015057953118498066563369095765053433270178393530623573405546399951659258495181026200728763021945636252077521459141829764054849591948046739664193458762940356928125038812121498295472113677971881758624141044157438878565135767960692528399079297801442615371312049042772457887587412061486832184776616160203785454681771466226323769766667788216630366055749129571105268535182359659868849742475075378819115134032370849728233631066610020560463305549850121988563077093605482956012552521788027705093772335398661334421626669654731602403713558705497558782817795098174664587538746969877328423559920935156494967223405843893646722049108637143559785142861055966987045272553878131500314330717769034021678608605228333303861702943964959165317637996159970414152477212974807155271397473453109303856317653309475641513506556693820145724821673279962204819021254992190038688647974672465585070978283704461815648454395466189618976330288422341843694484907690096904073785283774491948926692656517192829852583764793328758387378292631545436557259995460895300633175019502105573708364888776769204522061202124801801995004113298282777252964280929137283723624720670544695916563965562516028987526782506580766460082180815377152883880915242857304964202884373972765893620428462637298441768838565029789421310955118282673450205891497284843591003906162352546704495607659175567159603389773390974754393849014465093287341787419301843170987620222538200756538802400364929135809408389837844666322180580332383273682950483984512649661996616944013243210056681761257579450393092113274952218431321736638898691605213778631828229262730151943638213431003056037740403063866285256668670742222731379764928929226652942226508611194677205536314684106008135062469363832850296447852862054823591289676853964571122095442317999603000147194954878544016150564679541871257672685913156699771405787685093269544299305765041858673378432037187653376505470618388984103979646922519646777870697475778802045345722309077956466123982249595690287183358401679852198247720892741600625793629960865387868740664303944269337513753268546654292878213214042696311360416921426660918979368353918110694611995781133520628412077952374500547135664412618801623928018538871326469144706465129675537206906505190164815593668270785054502673124883093407069088216664085841777775405323255021661869020259054363166010846944938150323122610878359034609824333056645435696455466302225195339528509127697834989842763242133930676753385909869535620523398801869732201099160264140169334135683059441219607053878292940270214384377945868408584349034448862764798874978399687693286798534806286925825445479025398368795036078862819521994713523569143312562212712994572862858794822111208110422745630843086054386083351231355427819942136759808097118312189073537070518765090633046084420353403941390371150594945426952661113547255904034635265460467474925915664668621396293880785339973333198291393091127587668479147063012434623368449077299835610382156064586263901426701557635584981737959857254049622195858231949680805461406841508839116788064827260414093870315317658846518395229524855179402147556709643745233323189051094553642265522490520915830984679138124608447056739483420594948239053638927336332174930779009544523860752450034903532673087862679956639915676923649620439671200982406266970005557776205091153344466809316501292431010189954068064586250673972732553400922356395791474849580981398603542397463948442064059535321449434885196373886289540769085658008555773287331724056840488821780957387385214168730793030374710725753715873915573820929557000963300260576625048692199965527971341209677315718978516561605264037657751413948101815931258762144201758450598464545759195318109816772034911109213761647528437460629187365335953226519754394886271444987110355962488975997188246101376429483632738884954570111152138707322308132329779727055294128599562044069535057634823221850917492948667176818928780513611602605169702768121587561196796088579130755584860627143606074936575174926312631195111289851144076362662612011063013636483886478391958739405595038658468886918746778770966660192845683066446412229862424208643034230498469094854773039584036622715187560099324681038989754349113155308447442429501427851771101483542906438280475743412264486563427071456037643876630252210762368034782908478586559639404245747752979450502251375478562276022016039813591711195276565724316258655636867125649964076101688743020592685034415180533409172310930592810859811660650143006374454447820747169487070563536949871216212047229952944713330844995329371942844165283517180674176523368569745110527179619747879819314133515184644882502545165623672889207045929354915254400712288739981678860386481382882531058862103964653741764740081243882457170338891681026266712792933890367823166491030181881605662555711219510550503611505992800910456563557294488652246039430326118148410336374803843981572059584329350355310174224419506315023620812645803842828817113448281853108417256594020185693232975870229677387348582020467091861971716710173331883157029474576033589409666165029668203788364130869448172137169374927022843464113264701598369279618181851759732466623041301386682387368980979773789938350765035984224974863588517180933154943090189297877121234400068839572120547321362361418397845142917366976187387153790877189539090126944017863998292311348065573009736848540096415970704281988242006268014071008225682952359193992353515101214410586169075351552815727318597151560787223773103512416690126389247570897667371560732379584656169316380761046950447212971624436325906894440404392200670203087466330189944474596979184427908228439939214664733641410292056722668305340610900245050674928732117227254493866049480728705678947615500863437837591755305520791952093512991243340494024534403820605803819696500325755779759897046388660752303255824492460162183983543866680915246245234151936161546171274520859758619529217281799746559924260880690054330234586359301572462285942170192084458520225729398393600779177863910974730571603096039039145939897644229281843233999780350220848782543851304140719843917160642186020614267044790572123725427418741255479321578447750336318340603843278981835930629537084404247975922863611194769506915380615287542411499608246221532351329050616924735867055389914368512114494651827168493660075146176615039406322733604315270655937026737321659505130584953633569407794178217165902748523535023421754446982232933643229694978309558835487840141482427704655256885663275870101754673936204792823900822408411160554248076823603665176758722599226314448512624319578094676990894091112996070475325070707207262002452829183822286931335408196190517268340350563940847837445522500124455520527413611066870268384951180754159858926794007485544165059735654197361233865726525009483051514032213252737201262121592011327201365763584680058212346648497817642756991037206825009431062672093372943708754340906209573843606157919169618067953601614600825144795073103788034869035465185255673971705192792759616238667406764737305568542277284907201768877261890816133023154650720146730590672426450625091706496815485123366355883072367640987628549406446681429311318845654710291013135501777988957587320094286371621559062056210054588774703495292506187220313057686536604096402034843669919432194802085327697791110545444507306982854642296897140640584635715754061016674830232615661005504565924751915995165211050815680390025737463010254694235122909511873976133170880779253707375489166233696897047535200927522998255168054869689834374638293150978958585847743993039461322390868284256235539465326841250579719899783191232425460770055117776658750294079033418819127849380806973639451074144619796783410273441608655831293473182703377139887598133326171411566226055402813173907297580513438907486563382030710736926773727413448651704450260329362484299880853189421906112780533401012368982004485045675129358930339725729951035312523965370558156864197844759768755777723296516682644618462232222512893603785294004230515334374691464101107542190161538726137753146970784936045098742892271441922823253927483735335535964495403832355402991364693352494870094430416950773850431814533247071052797913952697090483242941773021425773424081172844908591668858681778905823760216650119242912192660531310751768429895839838574235458056184875981419867957698548434832406043519308748741294943105958826036792424474287727263947866556206543468411243228204513416227371813845708986571939167070002958084858027410999546558666466681578915477498966815189201956177061176775968369094234936172007250850788378809294794243613450759675742609990987455245124715064332457844038632772616544405680982885342654281080969004121812044068389115889458370249670683406152646180469107557844978149579553437478932012999461947182898894384778487558781201660325680445435309185147650443394415098032403217070700271004507949830397370841491235082068924772038245193171869532014943628365362190663523142177947808146015327484312737248669862197127191796951885065036099456775201591237977511098692231035506495234748492481669002926496248561280746860739641408312587676821296999865664712952282240582631926527131677389777632714032028040996032608060635238855936501467368739155795331676086112391971788869744511973613989138559556172479788588142647597282518259620949854576621444234050458511497718219277528578112657472241755034984568073519306750360967091652023468432970907559528567350267961239804785198053825151858755444840521231645288428701668203611566636127534865642966035895802371446279516803653125628028006474371877106041136829075537701984707418626370510703967260815944410995830245295737551207913829682012859317785372483217372586991360672505760935469897415802818177140516308861740941908146821072774654011246439435677390066047041203631249119815699088379930495333175199007805435773589992194319113092605069119717249988120899800886593199961147052086441712775282125081750826540480252396639704134858511271717107930837538559191648801535152891653913541952394716233138906013998905034981430425587658020301877236676308389075136744236968616723329501281244505237980642429175680668865730902493777576626253022272745290973604954577317339258801120913658926376309197118172590498469940545057905811142640870210038646916809787702345693179673958646030404288855705721576893705282075768930486093641533732430956233137693764377248638248681053371290388202639049220429360174607129064790030154739471414147985128309710097109943080444163709617018032067431937916416212711023900691393716934863793462221498491702476155059708670169228517674126031428423352111566523463391999945937382653980454437769052078670238509454962047423865477134525673983822591975933357826089989870619012754222269900594819778593233761981232296285448497592000158155599526101663449660137162609878757587462119080544956341532488244837194503583930800920343263066625331866706124069544077315826066470854587268882399454159145910989998277590765131766985047243668542080999296385659676240572323705903067754820756943996227475797450079891964645811702841386712475673030146471201340032863831188000385793844409740497406975100122353731215026683072645188141632619016523136790156486477626464073476382251098923831253383093591968422492221253816714477545741094898994574598935780856402819455221613176105850762543319997003388393971671871777399395829386269647880205599859874513342340087980509202306681945997212564116898737168270108548959029230821899012874490736783288612460192510006912683478797382269517582489310836420445196321042781601073871971261257108262862398017289717306787213567932523111973429441378589121542860850556642185813881995333869520857763639384768970565041486037924727270078151220530087855298400806195810385084467776153442551056764451793859610583146743390621288531315416025635990370272781868345254840031635136642427109549624164964278775128156935701578157970801342171247794684852956744716022668697475101674868009947095805987626221469866514356283357220634397653453936092467290922437020628723274047307888624890705679636784715941004667055441856733341198914973325927730119834711147637629012583684484011823707078683494077000050940846440048946263376213912549742313027353469191572518427921299465966738070538048208234032548546086011851265848037412607424322607534579728953439430924760667131087679910954484705999784871387433802670150949434598328749002539902759625190344227965651611978943930899368482722341619212937566367462778016927656445401419707606396026651877965590105799259533450169767881155270788052484783779806434770638567658001169628132331892801252338096976915186222137746415101666129967503268108350923616936832721422479328101892032390028707536886107284022398629863532494324050109332280835392010180967633952841724335650269284725893403137473939655047521412794831526978542350999053433701137789344809436429907373388791542232653663829272687910757819147211705469795116867670409272061337778469177773352164999048863402779583812659422609642917351277796726771943593123562331631213194852772369864604722547210228975103945169459031172481709472412897682439901583478464194629180619479164200092714243979862568800098215969747981277227389262644164075352090186464052562452046135190905519985286001695476237900852980063584465334114090817908855771744230474640535873341120188088564485524593419564000464476122515041683272642238904945597751872308459717592277590409257928534921490761013485344052747784496023659939928847881665769946554484849249055953013001156126879253527388649046603696272121453083793893488761008092735330743294655669459317324571076832096182029547121126868574402168457292344874446411066154322704191952055583757351577075491899555085501975941104749242162632905846846887265114738943423377900493599305452489044750495619632333809038561941621028759649998480986660160463311645459553819624932304302375791177277229858706522788641687943619362068861362096216791325378465292638808788433232816550587288356628570583207774446802261345814553124142098315452407000584862470659945185675991736330529657350914849378776098005527749877584468618254597443708694985768147336131883623536141827864738033431847802955933201806562740751302807451751370827881359117046651037431550152982749499963247585144360424000776745430618497057749643054231534621988624919340155319174574417433081009759764459737960279115895897853002779486846682347464551146879768899107892821011256580681314270521600021347188942176814228516345607316107496638470772680605984997684016379555014913822359133623092012404376587060495369944469914895045654200440770316850764609582188343276556372922959221032992208229873647953709085311759095160275092402524870686213884561279737646363491505417653725926629875525793372368928999012800555580467370432353481041861422673822504513937737814549308823025390307859660659724611078382577335278993662352118604753297478726652001779631615074358829487897429429138109412006141734407035990688640957916953692216830591171693416093454757251560091229825734460870383144887180963815400483556780492836752842906996066354606606697828020687937592391632626155289116067541964320481916103327985025905701230126583412315859125341687681204987593424499507119784213344725783316195361019930268740185925197558486738063744507422478880600508277881341869411550037264519716378611279787016485049070425767936132901352634019315447900822755314777111206473549011963009364625377244344002407278994957115899769071705406276952101535615692327353912159099725424851394439944932753448513653806118606745493130833132847819239370380076755484436426528482125814812602040068400161085922170548185999968195947859990177720649081834512461298407540877221686131558692878903002283331875586085623731288804615641144025055287768554377546776745771112635835083364593010529438867363468551706271727003365704147461466367979115306063509758420677874298758769256324177488314296474812725146646404081778972657184956352751271901330119320355365197012565639758399898691017161376674127703794648196378481465368968605899585525522092865963642370073383238793746513878585646935283906402629651042666798367531517117388928076822442225529167522939301767627911816820880383606364108069193519600779631087592967229438968899670437119629985109012884745923775332347727863496445685685437438519937402366846594402985075170016748724440782955120771016114197738532878669274270690164880110569171738010604527193539402230861258619982443328400847963671284371782580078674146527168391424992012435676136031981477323161020365724615074563451522700639786631718723916469799194065736302611335912455163447536329062015170998858525190855066310465970757937799409688735072616273554851726781014485526570437938499639789605478984203878466256890073066418806253400417485992897214115574531602208157074028919732810532110329830526583813928588994586846569338695703424967670569045002808695979618828214331916386706042499326939230216355762385816178370569436702749973302880776332643772146051289848528418180345342809127376920761686919541054686397598819378813625163307562670535981447034479878647715085978949701840134181299934062048786609521201766368211638811040577135790282579860009157479921302565013193802835743573299275190160065364286826004525659001031547349856845436515539977304932168696069581158139068834566794420952032776210442161501861022873030757432649845327508055090695493846851953737027350021485067299113344998556570299385663557782199498744511274617704410699123124429958173529250957702663954430791534439929691156337578034655163981665140942022748458908293802236486179420517079876866115387939741390406932540708766718271034304762682073457756371274798906400104354393728310161953308549094499455130237923933982580488633965341347989508675272232487646680719971407519232136483238208497818294395721020991243172683764781590678033426333577042580514948072037042421567754735305870742482974332300017184363920074083623378317646902176017082320073416811357250668585782087204858310897758602301306504622923389888877626770977939180641190609312802169772879778336014135497317925630463279038390563507210661402289949379750853828523157096680880657496667694719326037519297335995638617761540152359175884757726996410049974670983107756808187305901678208997743179204167756446816531086338190835048123329088297277500536124456800506972230433288922591536610336202927043990240401963555303496552657308769965684298878996651801954020996706913161323111097176922822039256076492942186188278035703073608913573470585370199687506416692387295852226289278168920054942246027644050215326039828265685462236321545554913373561598406069288270743511544547372274857492387659656470021862044235884495363293898920006996521081610166417538357531567842559400861331254897873157514402955573434620477900323545525979092619300482413802618506900119196635908400958393378094137267678615005995285304538559001565596088243425998578245345782412864916232681972237397494114683672773066775305396248769093034904246771199811228745429198142932125656751108287093517331816111736677706425880200707279786406222830625292215692239020549731901439310435628529720878064459737903325568385591799801130065657177077927047199535527538631508110465601746945565459279176098432280456800132140912779441396667539774895328672356045909673443067300154242375114216539057131301956474642131228024085571521347654584697615804107404759167813431783807730639924479545170365404548258920274840418546154595668939975603437672504552637354185822681182498342533641521087932002910816996210989743894837249085044241058439869495787815991411803572414069898434520069714614433088526277143327266714956131821924355731993770524955008800221670013368260819673990049224952149851916133338540605747960966263144932310525442118342358803887266853820495456609967006402868702956674455690356933301887653811889082635349040318447013238242847739685799171095241529004718252144758533900478500526604652024339925026959655475227419950309745460779697855380784765436139913086884968192501021355343981649039301509479864656118978779669956785320555304905880066252614069106848777506660715002724685410927087487995514778772839925037149733591904036903757872347949047114504206388607308565127648102660142904704874442156956559268053761330704970415145049345597275235945739124512939360430731681216495142693863351470336739955521300143071927837258217459639869003668199686963804117664589882856359061156170465644861839815959662361848356826167267900608151236093169833941622546890509125122122740398882260836791997864505738171807539810493960172130684569947165580415093207772354596388605496870185303942034172141277797785296246644638985456999991446308116203307810561120268283249855399613902681956581507339702748567762549057436072225442254993974524770935413182936324680589052389107330670948285700073699858926544754785492486683420930865843695064815502825156972279656882460095412705423183427325404533838951989050493721810379808116879950278021880490678123119779486929638617568334908848567420788911156033150312976306652831914957510420436807477022503377302135887120536201948971961643857647281694657968964582648255510030338011438748122843119702651326197177599037100344341665436752797761317643191509684028116741648147374426566743111141447436171339768549893475927639152954353728632637350478291466574335582205525309062380582895368471473839129058875856640282687180157273933439864555120967044918625222338699863184525390065385370772134269324692755869273920365120601437936018021906025313638321393459306269849146070180717950975789606139333339153764035016700748237255178553752389549002122910522772335224970629521428739269815628283251114029904297014166371898568394190519069774178476897557898566711723342525437551132896377970662671551308461702842624247130512802109421870339833007913772078577871792826845246421220632714259735225021136571509709590722437513703947931100914749192031120426770605649694775231772667350195589152588800172380878311907529303390167509108935285046478533226359323093341328737034409665608874090218925995180418996443554075232212148231633247348193795209010108437181469612862167582086028234942895536542471216285113604823552625339139962777121105664810686088613841313041188947898277758020149320136719591849555347810208358255417436978134585812494899467378565171554797883711889102573090539632588531208702198418512837660852144374030147659832591464027268372475338478497939151452667982348340497368053201370287867080712107550299928463409551739264445905915298052536451523939283915007028504981603827952668412309128956856914254224635183931733123808884144296845937466389633913521272181104280149635655250809606349329990937473988576343128896503295109778930386397625073702394969958237320370580735580944571767482433327135801540092595445315118698765572838219544216932998944380623747014396160193196585460506792789613298220806922019792462437934896351659205312498936048645379377512666008017964177676001350973369236526156142018771970976020159858790034746941530400184478620886228762537330575672067861256214417770573369883384733690367989729668593256876669422540629806258894545469064890086371565101457802015183614610421539882916229493464269616256115747995695748245773375856094125445189556853057681946482635035352235708209177334013664155515665651128812951668619139020938282727867800607709476722837990876913314427041796974710838973853790145749042736445375436378588467152756422384982527859979699187345462177068197051297592182095348810282368571920138062602076431744858064330914301985959333382312918293606859682367181370343297424275143153186089355605819395925663464219640517159951700983711305698578671999661352210543200745932360504972883339933563701245145125545107769341584686628910629048907226720862091365942774536503662268137522818586182997663380609185200367271228334935558927525008830976425508824905847826261803582329597962709858193731021734561046501999994633582699724656187803714642291000336277829944683823522374360297808426750755010256627950773208116642612549404205989659144256661612834204451884960818663470767201740045183830833950643125497782749305153681635730896352931324010400553728732236749476642525674524160761718891336017355953212670881004986419515771145645652254038350201567678534067171538766025736010063322764279272329278213057520350862545996610973908079850393406414115390255720634128756060221095210456053352824548628037858462333828984767430844903829254150756767176273909874562426276985880485332004208714352568485388110376381899777361377387012618432642492225584251516232156944034827420040863287002278879443527004341158257506049456165862221515366839425745795465964902991666091921670328228971728171500208808893219904256730209256528750147287420828856103579881201799905870359722963660637553152111224890779398551503693468961872452160745949255122384002139712457397146335837669854374198072748348443626992136122413018529672274688152096318465976791362513645259662896430779604421918343393363303473408233078257914077844722559176435494999110684182757000276332126541393260273994260456350153587452091848744486114458915864997387185909637991599165910296429944558490865253260242323961270458839797621287697314041581546675270179276785153226385703313218133107661484400727163847772641687504161886160431347244356725752224862628789057402471744398986560062857626007900588762927428283431578162036603966506586652805891625801642834622225817845573917892108499916902050814664006428896894933116308535315345298553962588660931172886335565635133532780498479779019651721733300994065975854685914658993751840094911134964261818577072788860229883149845957442077498068128712574315912979318607672265407650525139175442872791883966178770875505214097494019524699430762694766627721947346453379422937523001302139212365416403186005932621604491724891298576298806771971343104848710967310957094717505373923736303185445007306615237979164874937114363973288701722890201642001925613929952085688289267134118622249746563431740030998804252195931732836179099974403879094724623772305230377996216725506060682676176047255391374549742807322034211977972667590162222745362211771758290999092811801643543283645011944497860668828622992513324497840647590327259558029029379884546914880466708819286803927329797013669027193975644801705397556698986070250408048585932755265459834941776028572619828683394884747877970199738049887411033347411439590107716733674861208782442222605953932986292361062597916787998642610960903467255237657782109382102641799676293537166065293543849722296762387569373618776020876874582928374502722526444131271052894108309176340714933902875282692402684909018452805985222522436496474440147424947853842841851982305115409144676212941840851117811456665975645225600096699567633266296025055926550467818208916127238627404632313700306906287873516139593411712699954674856642656430680316724805471601618321740563466379941013366889143394586082050119282162391260849431354139020354132584106060669951683980446715310302365332508741756356699665730968429878298660900684308619568111467964760114894546307486327079324762256669730338389633022634765919763605659433845410687042291170303362783063219910315780634460204481399725726529939714890247485947084908931126734785316665078811733974647617816180492002299825702980430466804613750136628681183610848234435657915265991891196318597117762574664020550254747860846404634308968204963350638290853453730938829326556772575764388022836808751415895129164688764519790592331134864695136833715152906444379596627013094279628974000992449645725792561238610331138589279463505081802408606188632330583328254923741057187374209332756767684503760102581971723137340890240233495647135698670408848021896615727560510885160188360441751430608420877424600494967739544109397709144611906244140921659559502555486676038739314529486537857706825827734450388682674023681407795544899216688164657633740780078201645285165920013390767955556043331202155265264723320993593180693524804641710725462432320544094415543479412398712473690387111213803932228657538018122065078187764783740985378574436108944854767498306954626804878892805738510698412643855890814138738073834070499234623576937538540483391828008459215571938835613850532865564717054102609922658836767843511767954123814654936994024823466569520881295689075222573013537871054736934272736982124925280993828320731080717783924126337921511899966772608146139521433189912290424212136397040958777130057135040317202933740267306776575011918207708861985878151933450287621566727998633540683287591538989977990777091451812739194985332440844428075784104392396773339424262258765837886157673839136243675721742270693108858573696998781101840472684703792741143306560314454369216354180326895854523330335995497061961841610060382528567809127805810664678597772867122893303237151740119460352365787980981127202560345486360027956470390398316910014140296458875849341707053317759790704448920049965290824542321190869423136066277700553413398055159446293226919633428794703566355688586597644766957835983999512197232301186494448375164577398868212920975091078856528830203013888449451797409593016998875926327313876351658428540196600980739134489398136419677859390960694350356126943905501626692674943414924743994006278003583313167539658763696831899743680127792717973699818993809099127205213478021169078932171565119792886817393294967850228504536329046051148618292425602418926119656577598292890890002503562986162038003602346796563465300356636136756189806034469632508183787572352353245781554737193297223149014470437588130867715596438478890116357637357975035892288179241246480337077776156199662854385090092920536665224622465075197778242286025426678842260633405527075423313137863149689386650196541329116775197530129881639916485822101327071576744117235776001488318200197593026959976455076725167164252217817252993141890841741462768374968126084828608920354169174841907044573543028141317357947290839113928581476908847445975555563648835236658815625803976043294756997317431963598695382332787329022186731484013662140701516243929718520953259097869319462744935123597290143382416638038422764502797124583152776575346910774115512064330954025623711849288745915776463194654807823303366043993284233218904238321443035531702211295395315325762837231630865553030384079852435327097405963134318245763866512195042481991413720654198227679935095268966308207690632628298230625193886546337073225578161942538202164245771178046684890325942072733170874059578793317356592654516999707194170590136340011539802549541008034240131002504656015735954381770086351510506041377319832281782136891905661612557167491682059782134559359958181960351528676154250083216634040386836269351944901614025990423318835387192132821812844531877887060155428677134756143331974022622786462890149055286599021497110718655405115905440214342256707407736597173180068425234888788463047370497494685936378946086195871286060614362261816001759750424644126566976282132843090575348107882553475599007144220036056482092602460839852044707660640936617719802956396720443202425073528563721300138593819681010294952489210496205086479246834777453850612786769925253640433320938348589001856654252586345555202727844835657439899700019622365668203215812735791694266743274115658606483568694322672731247779641943533032225275735279558451550167549524342894576903552652537972297402124165627433549913385157307461494226890099252834620457996133201609334525430657128207708541238996262982747022976382066165380453801786430994084601407619308465181306467396308012303409110800407345018282681663030283715022322700215779631584694267894619538062205621863497194734079981497026201622205051861881468979143629666598432933033891764780214270398455755066682896848615728984324104827100044909931835901220545671816527515037662790172928083945069654850051502677135427387013834790152582516533204259120207950694807092299008844654726632810390886829118146242641285412581222041098143166104101003131284692967787494541270566642920750390228990214791617236749463003383096566416139489186200652406754714311240636324116047015545777959659197107583493817714023600915316001726714812379434258233128501378795659680211186891444330994505156729846861611812188781933645490429009728643083425459402575026608261939246396014151858747999043918970567216045931493261349385868306509910953250465004142267701725901041516888309246190897289297377607617146984608039848813443146335298798556674154511420281978341972686110095463600105538522623334494165885720994152250803382153539080624999769074498522807940633568302237874307108872629445324752501970515449843591502807672391926250082744388707571353733081010105610034195986974296560884809283174665828961514062653988474584375299181997245237913989585439044142008156865917211374641890714639583695374241036026836692939875002502940779408935020162751979596036411928206109254793468588980757607805353670796107023384776604582815281535965682287103683335332772462022468088306470253385162586467537655947061392593545900023428018307391528476137508573972088917764893822593036471560424750206449493441933502696436616262407464171219846186222705015775744352604154300655278967296015320175010576676412107692591877781946565426008682323638870797929326403321422707942175080217664942962988327900569089681693934609805600207513861441019582870714899539855573869446097801731299164690981638445496990551227819143506964992481386743056799137807238022723280835182192369295502156316478768868985376855992384937700654598550923612825053954473344145956799650837564969124458460736995698532274127418956846227655789125897944165639638978994525903864121007734318227282234524707887306511800331071600052794322459870736725190490717983887480882097868996111920611590656294401753632796490201305982139370904400277944115381114545541431629547147433017621804772534043975634187880094122367250084625735491191024932231841703988756937829801415046473980084167400566448875890299647138868900345322650916482031468617607675811624771749488621048965628961445538739701663069431059988643408642931845078821936974036396291353854733911042837257757130405429879613412962597844738587728016891317110229053954187946656659331679229727835281096801473828594606192450457581606848535662209462306657526726710691231957965242032029669302913456706145912832379934346913165598712764041241211851484860012348723951194335827251495483811686262852162910244979345285981486678923086727101184761971744139456745395062218440996423839091861506474213102760306912668748178942482136592118734220224529958726826332179463639845573587631189259326003585790684193255592278375433879939506261559005640465654264370789831236442917931231535244600229250282260241033676892971612716182550910028513183166477497220988100579073037986905808548821842384751442115446536386818003260145827265316647932871852128238662349339474903198271936875280191361632010512845052226841315603448101294510818184444314039063996595748234373741664165537743289564818231915993249471061381748147209580921302172895257233764772842045605875161641897993179794307151687543624771679585241253940116122329139914940581550551023650947035975447275603079959419924498010639451619680847025748442235271805404369083438950951347479972808360858889995154300601094544583071951120558862363259010493491564952130636385221077173581324386903069507326082812697931750737180102937036091522590722634218764831490288211143611373984804994462017433771816341587579601423311383221563639224325335847914910124872841815987408790928300829845363871763284648223606791610352260547503112173514021567646039630619101112217015515016666311720180641558808669800830104704395354808842837080688226607969683271373670670350825882420953325327546244159827003322764934613739390417751555169320107216219471791504340878913672141001673539514054624668876326145787805953488606084151443034325535375873660668984378770382363715995651346340122403497926568146672599717077724510197353230833428306244731241658634475013581039553328542549904021693221482465202657401146229491080556662495926428913431935376133709286486456781956223623082491077270708497155842814463450532834054270673530716543855924554308476599325586823579875957265645455025970011199545464146930740182493296937707981813454232447264027155593837886003861823192024124026505161228986064937198456816145045001066182564982856943180613046101573999960286808983505760373015401461313173099923841642591442324719324670329110215322059746576744582138805651969099370881434454574639520039630665130273893648493899957020097639700433967700271543691137531373063492549917365771827141015884603424788130415182332435826075085886088279826955906653715998609663889135533938577314400951703582511628039262557957492208288824846350224682172556006356720852850234020263888905301349523342255124964189790513868984947961319737168661464876744886920134136406804836986603656752026423189280273130495514269977664680064167850872592824530464563362848912766443797732114358068606500096797091406719890696943935337954942108386316443960192495851306874837634687305596725836960856699783239106310234577831349301998726090541471070496918284503353610139084202173887362351866848983341116701117629014590696489455665530025028856908604411823775058286278348420530552432138750465133507998554766255635611326404991288113414090676659191802778243525690702948021888524068961758627911858712844495996545039217047083228860898803068991572054354147165352302084683698807329598111788493065406419262533979636556979474538332128034999956045358066200516525062195253305898761242361559630021784627592972847902156714103295719714518682991899954771530351370470034284126831285246120492510377758950784990874745952546873009321534958007539386573173274238511982486192803152428779458377090081342750299562611499369027623492730814243444106704783875947301116447017942517751666175965043942431190479054150271402235049277147769111309300285004558403339079524304663557323295500251078540658155496007151369825934714654244789827414725809039934334233613587862589995368780524451324315152860919508795285235585009058935353326392982552278776915829378875526316519592595154342763320892955363297497025656838512096252098182120990408336882752988366421394264718449216059389473457491415759236691960664852946227434154766350565149110211896120683053449910538977296992132481711535224233703458240413790967918992964408864519031000827692367288372316216032154795838824027600124420134597914676984395538325166770974951481297105288447163595415226388392088009089660435296847727666907500502247705164129257856669471634663622499692632746714750442592699234658567931276093447821932274685261468651588026933748275316149765565919584071116709798261960353021451031392890712810392325766096469443718028156979794672466532376361248572046661308379051487848010656464509150294744850443751644231331167603136991140622405897167277580067417242317837909362630505793357722676654024396764750743393850943903198110786375675143454259593354771942480213424190855032024005915123810112473141103074828768292601474447834935598265818905288414030522303096877177551648581697480946454985415149362274208045810715795405682179570224491231742254927278466816936011450081310665982806269119741302131644591696104962472145377523070552412112647868696723735936524300898153873273287544309545187931391783531789596175306044391241645486291994404583449320435449712680722459153883283407506810510091945892563598613942436794456163051856004271560389705537392644520757225335634403651439996287518130096661375932742069154134326821909370707254402007041778945386628099520008352252762158271689903650848324769956489977103103467116276212982413606376709849777696118824578436729335128023288921351269142046828558521501565040299944097031197641023264108290529347437649248677971501743600143628796608154121823578941807994287631121848038485677320380180972514208112006493220984528993156817872189157375265725439359580489158688614302128433818871501711112229505367326724959484711305727171080423472658198045275581316420554794085431742002823130045086908011771740075124895172576184926483360674844500452697157053167321363183692951348267294937274299306290048351316403093132597658020867495753104282924324358482153745906645577614113370238601979285263511303657144865827290866462196942440638228243365302872245297703941307160966583750233340131215742231059431534955134983479810042429103172943747329544987068250451868436617838730828630249920208077981152762582171272069889451034817082040052125389080507818035409354709890419234257943832718835066031374141537414681970871349907366970110905149442388109607968348258044870578746616738713465242670789197847010916128026966358374885309272112370374152419928786125451217286645828136056219247251066476275368232967182426419499451774397242580647277214219572281444919595248410788316410792505848351639203011300432825637016435684979515286852277634310212839612178501598759652631508249125745134198014624237054364324799095761560398705696991400577486260386970129776686665414499577023201894295915802095358954457856608322236422633942316412661952213624796982476764002652238876474281920675937400144812982576964080677927585853366615415989644022812561218636940251513817898089705081452080654538487383464252235264627568198387996989699612433728328585144856695173322830874019315222517327914644166442018011018779533743076420529255185348964330767274497861067969588839889475960786574169314242018375728035482354184312017031802504927639505383649967266415022623074342813595250261384731288282183231058460254157827440939558856360347021266532059593833414248431477998888778023724929778842448534283288597279496761687062013751498101137497962683895366352276493244350170909818780162373719249129621151650412868853217216506832826339224427937112010081503425757998543060596275156011597573062084651677945076936131648521018855378823297564472084014249403399547023510102706943979306151800572523951271351754276193334396697495648048797747583293660321507157442404825173834365282668798915345827515436287778464393268248323140913828106945086996459307871056235518774579411981520530691897594846523155012919202591813123835323130969720233618909273053677367383261909398557105555320372170519014146963114331608613984793519898094528248422570651196837111630398203547746390311955707698621263232226180055676513805155023680313774773877539029963061985010965333763419618567439694413890375758103122819133808031529863906105473920902007023299079157230074777063365940124121459154710298328290876686494454495227487352682091340872195215261678713813053066853324128486150779176067552443894797022265768806689064689524908593868684772721675960463141573973193292312151208234983065279447541331585357827984059548684435626986350852191361124211574115082418312924467259489524874340662369626237844673902813374653211879780723963079707544365971087368107884256327918513562599183642197844294012768203417539944644497581493844196016263344572321283852386048546097034012701221401979235889255784806768823429296098762951721481240510948521056712963221494212018781342750559580119142792142937712229127067389999948233573903952464849341443602564389758487054954108838077470098988299521143827466392285322174928230994541186863624225992173745874499757741996489773819754823368085536237507016299146437902635514739144280141684705893249591387953444634139813717093082948616112807967857461633219207003665569901990619174478354569216396829178901068105699062942645033429952247760350731490854557943827176198187061708099391464831920354132939037871251483773045526108624183640282888453485657354541785026029365686020386690360154188939082224071091844572787814879158647037587483925671861355015710507290546513941842168994751186997138724725438644442252677193561719549348709516014292737444857008302371083675595125192947727639567942870752990498147933852241533681934101807698316408362118942407247004608645493658579316772634344560878845295364805341506838903345139512710723517034772771288615269826043711816285313859599531761293966553068047996960790569125087488687322466097215083455528808192556190133878031143761444902678014773746776212522405292765519154773242076654647629479370789742160016756800206712322969924895954415874982954246235724842063569189117565183603127025998112513855316133460554238181012698258610046210679558494273651329501101707146817166637539737430158093294723707862472457571942977672366853592406726068997488078404096433374136396241122621083087130772747066171916467950470667638179139221212372660200626353106096603614368644748348404981010744075262727895221702031721318405261647198806912694027190387168247408697424258474619101168566179526989183817074818705956183248600300565019041212870609836245560710506231158696918544128317765058484895120794542556386990182185947857614571814939854788895526009543300596391233790686446167789046868981445016236486989376054302442071943819221306475338048752636979042253244340463019519548107941256093278117958629143482445471429941624456348560999251876969883817800761177845765689948616670713867243729280671240760298865871130553783867390444882980479092580802991359059920692659784642622113124629351946550662354689223808907160738427097024971214026528883899344614744020088248637528236640064685289937829869381665731441533334142238074323644073547565960533332715340133829811467425031872376662566742967663602969449978259714184071837684288468482153773730778938602893687914648950242877924499402395275182569731208396020692949530677740257861768527248255936414797192895768049900575119817082181599470831251748826979098676866792787019245604653122636603954762935865576136370412655402078773318782775341978489479790806834844719817011634558756757525481043303677521119186888924012427714717329868859659245700383946508330238237875266865382727798160011099684297243858701168789650984220096344159130232833665356596216768573229830659891009348954731125313967174720399282946098515858656731453589576060908016462840881908858315709939118850654795339531224599117783482480174861368404595211188609597905511849750515344457666645903800496157054653793439667419430470409110095407353683598466392552770874793821888426914960294876707433819150177520919738437552172246312119819230791395828770580989305080138807967588752118550715824031888806111318329351707422934656980121471210436755250907986022764929810042942055566127160202177587064779868879308738481665257682882401369353990193379362640542032072167405576392863424368610850723593208519644655878961835662469672554192758088910286190890308945375291089706919838929533552729254455298382685262227910406663811865760840383691915767856420193942621100068674621140395557998879536952382779987414224145570352717131863826202005825146927332864122701225700689827633068879157439894767371095170468816488483995141351349585192911957239042771712547566696091654673116140135694230942095445149371367020157564168871513662716977946979815045147603408216143742033767370629516895017327597571451430952612037812520607167829274544449687145235559564134175057115775905460165230079805583654451812667869431730142889448827464809026979019050365696232934904047067798894341479404044833503512141541170102833758935244800565646414144870899699970603044692059869148004150529397029654961791112152912376389690235230674597798321335533836435765901901312426061640335490082311728539763114960309436091329654410624813270618972756649691745985215017217418331451672259182441318436702546857254053604029558301062026319228704858982571223594051013135773688927779111415053126951273305589035682605667131152120618260852786556960028048926701876294358940660437919555651064698585700061704210794394237123013852938641028856725259036917057210667832052854320155817449313524099214694640067392298632371668984154115534859036496851816270805500719425132710022512991233565297709944513866120599699234259673995076653148334625404517440261246575629784667251543052149096647167340505552874064610278129678495021750207156251221646458541575773323198103885147917316242193110410951476457094164717886913401023046794853694867987922432519871023859410121567697763504085299309790415410181670137365028158068547618433830662384252135181401468121650651931217336419698141803577420973981011288623645073720744066387106443179365505560265664473666234471039371530714066561064871917656882342785267813038289341357417635957908674719083563792105004859442672202371885748917827129813005972482131747338404883135257379046851781859475394488841890794971615209391780997935660408852963027868896748652160917011638049774991608176714168176733536561503992011700708928642350422615225990192311522951342763110968369620510041288277410382889717208537003690147387464128221115066631100394489297182152770343884967930384539564777433002058307973368513169685809773786677695933706094705671194257312862359922291402423875086229922456417614983636429231835053808959045315060683720154023176827795939760876297478248620460900870807638113022334677037837371743258565219720825376085024603407242693533204336317144125292156810642070381281159761787655027888129225551049288601901627851137055696433148066517754411120270137927995397187282127794490412773985153540976750132292856717440311298576630068523927752769885064524279975875595904126729948860527122715407250419699153608557576483692451338570625708584950296248920182794561521484059354946293833465785523746455394916639804832920667282251430103016172604501866175380764113649061498538658415506459154414314046872942808926175703785984244681308882264058252900526182622856383331060484346653330773525269847950722351045459368662618075064156886745388932712594479299210613835739869288901943491115926206197789894981750202969185605144901795638070906033973836607568437097518877368696287256546662394476151905972757369436554342056573873336277396621633134721520841251337536607626424262312333693305417682484770176421661465001798615295966969589508213380536927392021899611786943852243331674616693750207714348035069801959106274171398578309794813684884959907900033740001103647991139083208914959744369100994778404400946394054544540072645704885598384535552415630942949403441785904078204679768960608781654219186506068648611509694042981452566244557842076614041822806961859470955244259056883796638124462210033331637296629892861520297354597004048847485755315365294969213058775140219012079100316796595229386215201652765001177262052153064800690568344896218694464221205893900507015337460990983922261611038670055337948830107082311619245259643136452357491402034637616691261402331572574180190320457057818744078938569635602923442858905985154342465206202438526719297646430542453419023290763062884992306620543484470975474232506915036582224763251268394027051431765583114125533867497823986347042355791355706791636365874519062678434763831749417742646366907222538885246807793564051679111865957580881816701117671087599594061106150625192037208874521765616608058546612186426181925361641054792117029510251352908023006632528318561570696552759761977645406568211470870149605960833727195780598177889428588676653195287378714142148600035551538204777632512459112251402869494691771733164710091370296023457795390386527316896608527380600921010752347526322338513524189495979211602410912434592852476917853059484735687836791994974365093216687338852527198014178546231550866142730687612906508923840862720067356376412058575706096393349635449026147772128510156422573109006374149721907525388134706973173699630264279303479770068488513543574476960467154865054998460033197865658752440469700044298167018741287363941344665731703650414099453795630022486990146923417474046511137097996380265626659107192115227558911708280867025548935636395596712526496725309321122199074436030621377618646539950970574857011667868644166933364817792759741727686122567072072901378595945583815032554974786460500295106851737714298303028622853018928701670813252028935573883304897909973415576340491634752261503733115098189011701383158980670510474065325948099193315933983265309506355743066711522325524657223325309865157896429829509198599330233651524031191978259428018337837199787994328927248165285982235043544080635983202292432330323349353745805105194572470469959776709430735041225668892573331769827922243936427245787652088424794675338829181541102114221198049207204062316168108866575610211127704576950738577691762264921835342042356463062503093659710531394772969797747845276347128278635944291907841503138235314009956448942473786569249131023470000279709234549900225210301961303955981638668793510426771378918461550632186051947767439824243078015610358921321979300116844816313718108541298600457326585295822748697223483978052939616397267570953154983253907779226576958823037509271910105802186186984715766236100369082101977730311355344063181889552775042174764226337761470164462105698672767817591124098043992309108004861508436602063573082836732658156497116377842375534695238343264714639185903469997506598157256488938617575652398557144961525054588883693257703420962667449449785026912692775571499085709835097888968837592230207026546241201950153243667512807926978053138427480330294452608656045430387524250755808486173021719716573205497754999169402716159772545549597280520740127354029027829453601396934828655533554545183376787653067292459886678616786373823719937882234042476963174501868567000116461658897010411104225351732980771470728417521829117884477798883977058021332807304999674614429688986176506601594418179103588967481632483839611914749135467201724955536804271272382215556123940754382975442092170183506579101092420370604533825053419174134964876743999487232225241284722631687247607517486887289918998192540292961573329298453574961065882201262037557482560861483028760432319391557376007019251856271659544507963552330339378843990500686140699627511377391815171807853120932864676952412710333217086970136736869924477886129172189368403745490193305668746084149763214873940057372065343281863856849718938639807589717481003580096192970509006061477326440029575444035594541590815397821798296117402587885867448506956148017685872096267933737533354570607423496821274247312301898403418201169343989937956516339946643616465606506815860048629038973420639713752618551151012026622885136932396464240909961663005321820226680821970065669115202494190263164679412733042453031711117334634469393575857557550150457725356311479995091716587720788149503396340055623722747863807125906566693310553572893086372815565879261051213065031458446015289614334888485702268163677374777672472491773162221246762317814251839598728078568083236442167289801620508953269384621396188438565750298785253545635645871119567067111745775672205261974187879140464029058824722644538922503417745527803093674351684457755367612780643061869684656941297103205108053492149240202656012443790941989760697052577253507711621033036847211232414923850203818450245786487335834099842596906466329128131700916338706680499670473210242336663171865731384686091948984943404306054232969832024788476640048105687028893267881664416002848349472298498749997599799660570564293115201808261439377522704083734216782008056834760251845994843748020211744588107193195724639394803761413296576861070097400324893771021691792680669328062969519290223752712275279412709458618320015874636424374024164317790528438592065167059687395130550963794414361903775936255301289785201824307208720280505894180166572141211722185234666105575284517919591949640273201509593087027772352381996953094657442924705658424669400047311936109666939959769846278921883307726608939027801814257691514027300762280333112142399320863774586091115181614848236106847991854891569854454415957381574426943495799523208205347654193173209373565873917203213881939649703145000509284447698980599320825689264212599273058423108753518530820706815879737178850767752728765367232106020039001686745732633669498116231698489423181905812804890614874307373064731602482039894913764300399972909062680693437600649322351049994487866255175085030741718280468519373420349555103513502475669648054453995857250869064981643250897016236689404940456312309434720798987786273505272646659648666621552896646326834843628308071299265057284943250066596273431369568846258757199910135076528767234690701447191429285075653833392866653977256176572075856539807729636882079366295001364333146552185180230110135695950967345388693040605826572176465626341558327984574738764879187084007828340549477013414642264769803629869460892898641783494408232235498543041917215292063141332917649636240706117261572168485519337067356739035447197294506857463600276323198128872598247191247759680275284601552548588325849344239113714214746822553381090896390770354522059587970469031594109805213817667522891215004995868299633607176927675447786640691890264949385533887621093408249277256726012036078092571037646999971935260838988819051809242502960745490612482098941840681298651656613264070147110266265774185646986910979912499110851181557962869807890748689749316035505743389571715647862457689183443663156125040147022881333973735321821489735639890053569367784830481353347690935380596080942061105762152561826525054112490637697594658012346235446062929822640575296689463567356005817968874719430869105495113687792456434582599427073733072448807872147003443897537525153579270028079681182087658015398613863503664561567174936561397121795277882915432647412535018859474147865760363839597227488402780842881119033978082236897958231313732370960010729909031142723146846959574846625571145814847592428864087932129785046439407426036413796578483275016652657484760388958493559089754001938600194589521039311913220633975020093151347824421344903381332847553991092592019059517217449916872628165961987620881092565192572840530203814541940128904220235481858890232333177388475749397488914067383973268563355127123327730055261510938419891236746021735769051674840360468167768405829206776818342295627226988189288679531288384162850382018168852270161886870099826488759460587564303711537265127921805766450928873364648255687181269672106327485729554786020962669474012749450346690454434516292945608456436726922132193542237050142732288822759551321329484966780836644595076041310096946069034054128893838613412882000455315551592008631801501228840301756852527020849053804430612460813797493888268619318223783002447249314285616576393191534943834129730512540039416972898213666496124879982936500078762526933121627038547369720651430143857790401465958429885804236086033142698530718288734283851558976772612332639207814676372575427134295784352488218935548245857359251361574911218500465344466099636299249481483107140538839229136676366545616199453648881434864350420401128877511282590482051798129414840493925040006778642820197516894198200501455941348159924889205549069238238376926336514342596234976095969303324619929534063028257117848113848367457621602727251742157560368356291766633431814805068562976828669949199525947359918633934513647152234054909435008030106483139690506477018666128168205538786778523449260552864270483506665268713522626943227023865988669134263426428706026529035883629086217075674412358270828714171491160063969605607216971569643945072651508139176447056331706408894190433841371804189213975382434636238849139599233388018591338651947042377052841206533220708783351860575312343367916259323728935665526704094754824678346346653873781192639254809088342771575234804943399363390564695964402496841515725522140624797067717716221398829744403986116053994100120455241711631346950566195269860340418892249285507627961805488038280461332331341440211956870407438505725553234799461990817683920099790500085319087652252257242631219864952790733625518908791865830515071820859217010537172732388945045778072630125254889319159143582154525399615616127139571174315185526656499789472008027884618711176554077826861667792822273282982980137837672833602822564114352693255805298296861605625744680073020242253765975869028975557046797686113770878942962209025073273696273053494328788069150096592853752197475686086516494508763927700434932037476466590434314758286919751881493668860084907621395433079983223983516676749639040132136851970324742272193955188682798258812052021318753136721072982324445363701437885693423534401312309961532325602435116888892621525801348096260176116940091908800095507835144257161306135980482905653782888968462964747417361303845814398848702412082177499518755274496006782062830167004000863763243717511194948908555016159868054221704464365126264048179062487898146319604695908658131070892333250164770837710437452330178983193231699799715025005784468247858843337564874568256958956765321998894787825533379947827631726710751523286450251494495381109217426095710986586428117596664848635282930102780080154589870527610681618501054890191383768747100785632357248171704699162223475043145156002063382591614168898084587527043033258667281499749713629971471622636159106218817628951652014150734111261665084410196003943930308294035586740296396645330059516646683167996091704987650833319128843677711425716231807021546834911622174408529156191908016719173530376733771369590098925745442601998773870743111291092715815312837494045376325156475222358002351066497957280693996711421264032963659514171266623014355556799514523360855773240325590488747636015227220809471439262278265884822761137349489463327923975292591894714858082499970809984794418889966609919472545229850840795620353171254189873354552259435324034491395233548409919001721401250932692233373883574792600524744405447328494643650701386061627050250005823862164483120803238805300659103653397697699339994796149500565393547067249030685912433510268814673753680235979282266001139891416295642496340328133646396830545390440508155919712514282389754466388217012328382486758750392951505451012665042758682192768862786143836685108474151870790328779699913332832504623473212714013147065838166636188542318889311599492255363852765330205538929737682784633682654949281718189943477552558374347036977924949956491573559096911120086497909855377410408827063870482080780854351888504254442971774559721255208702994207685850389832384531169939100646216863763928683246054984353182623157760475625837754743219302010132195744831998413117945373996981818125373277584786734454406769243463907528458496079635378658144439500403498336105279450679904065603407673980047279839643878507610592772714795127879068321806633887650506857294565036994169311691385031563839059868177467086461345004388703832446051688989591490951572434701316531396676157745669743204426744249920113490988137129289767424544130416702603533239861553085285531044566297076068373873002899652161642439832553582399207518766003651081756994673668055269594706560725422437607792510128126130774575686087721229721914572982369008075449725675540290863966185160002977053994601853980473218024200308167807693094571118324230824068886075777396961578551874861723087007120032349330831385012403105006192414209320707707404514480094961287575011930181095374116934251563631193051310278898081733119764557022638828857179930477282268647456136241766969284551619603356584495813418469833822438704919738704936617800032004390290266381965990917344781915491256312703867214230703004937162400126975474823895377033017347738281735815010063158528294151906681108606039232937494784730466798730336659122003118854517689818824269189820363052343339183974720602528498370730699206444597715177512948061642287471888799646411927439545782036121543208328494444079209199502492468039557366289161097047711033280448387842301312729442783926622626104381019115643892561563666038910629908119703645598019798053197801733945371559619902034149508095129665353393544839377802184065701375779641228053191480976818207979333415594956118656111288862050520416336144642745657726252526169302168379632190474808654432467963151635580517013915226688622009226837802729063399960007270649038605499251598455797561520598883393586981716202044973988498155001745876446273031652672070987949337015327007317829820173618623784121879275749634844985599998428045999270994211857095184203341040262191369420975604309483013154070088108043250506390741004061028249374294066504769872962867134363835761898759326004387261909834694405651100453565382726666877296359104366542063020523449625368058335411710458466835578363817441807440350298902427511326279410253080058005632514051618129246259270571685740199783342266537862444409221138891630433124743423088636134008437740997516417630066981378896984552107018839500375207256341653747516072940157001225317362900660273838856197836865394007008365903973136126449749681957617990484113823877419417605736367848667769819456832177677913425972956435599523283035907690803640823143244356264425917983435743404978089905269646166000734387760521519479178256370943614415808979612487280034143996487410964207895355351922315454171476890890621313233030430509943809183644274116414464894790350932474918977081633157792991383949315279050110160182471260231577930224258855394142861028190418217017837618217867702811305088744421122913317296159613779819143225014897632544274604049237073334352013581561579830449742378594312102784291134838414073438506626564968900069692069317727793275555135774456452121004165589531701714952127865452169582067559908347623968776227710638488764119939741234692509484080719096975193855984407665588121093651579577184808878861642821830577531834975710988116738759115607211612886957668139870616040331628057590867204781072474815022677776420567786308756835117182095609867149588115166483920634852289581901027784883760933741520490114795530428723612168092478668488359186818682580060272874255909772391107896691866242967388684088508324024569666827677399373281114589896661907030676524908023331078706292457351063780938568931520879373999966354306939255619631670556156064066901945739051562265535722321578215869376187629628984400135510520870684583255291053914512811403100999392392701018900985635694671514321738608744050564302229378375589812366974389287431733876097232960841409350010630162223743974831246498885589447180415025858774814093530962306152494490743568094730557985091199292765903750629491149911805633493438665869114980245801509041509546599363890991754328673924521622500676320843790239910942575039015032480048497055250760192534763920300394024717449581988700451074603313082875487822596045911112059057249258429646332850937043172707715271674318063828843318927964256332231439755503464190578531264289616193874454901956039979010333857455463524630586322819109751556961983000292140358956926127627157553380824570883062080683548420239918610059535731425641059524352094469220569607499593442978216187750246580535400336486143419354683932340541888282537341469895885383878408982024300459478973750416547563462051422228981868124876928845066269805413569063790862081689313108241096650709228888875608171205867235554050447215493632432633533851540737481609994316666110728905558011902252915080859320749796055869497543317256048842377883564667470445578158245536343195409474465063276309762883194617006912446166422700250417021054969665823137452292206833601976359767562810141739309325766186677894738603106372198173813016477640969191410536560097500776282317769202426763739841872050379006982119977975828413089426773089188249838999454434492990172411610673964690300900322867989399296272780300418608480416978487733094447294600066907966897203475238112849101367097668384012864351880706513818913785655928700226338140419257702788755628308930740764063181650039257582759179335489692441720736524120263840772798520867403741259445800683682896278073946561548248385897353200894915188904395716314537468676593395771828517479920635035066918345830953124355104946861578224826445296758571838014965206060886031072734272329519106274962481142154473373384657585430354518303861724141659716645406779364676241246929024004949446369825989387666163533518592780443381702080675338727235440746657819603060979717218913404953448843765043513562585381892972203470650718504245046480293449538005188057338682624727043491082884068029349067441188062267391757130708239954181692162378684735064005945730612837468526856983426287083767551026731578067316479955982346168783600441575117714397915345044998523573543041734562872568496237995313545889785819601589876825840532747740045485911695981304724006326023143636530210976869051537298254509388020588018324639827764340004795315981171330550020677308515442575949585169450500779514330187591963081957500316996039223208701635003207222473254024387869871468438989917358522472317748049613242005485238492927272799965002464523826962020955851888275329267730010778918062624286129984886096754500369359617731101796416534768422239030280549180208774046923653833678994764281738566450509562308173182621820263361272683002789306220458014911829710512767359591594552722867741373491149719789584520483902939269251673966893948726051516960280849252533847679043191372401626290663704805295101759030137227562148668781379562630692311618236274039193351957233722107899938901351117514817346396230706798645610285678237292556174822637367941488655673145731281569226463480516735087827479651318806515608333272161573901378237391260030128756179806497774497389519086824079283885972109653599012481657714218979124086203220751670149627794295720707388306803314485232194710404984594901048662776140050562053463478277863354293536594897138772496217777170988665731646284121372686314957660250179194431735986301324739669973080957587388528486891621134306184408128513701995890731962404635937881592479989752427392345888796647418759026660184920787320715869330690181097876207354690151887160231758433859089905840410135647850587411084789356911151309108518512445353873727487603178342734709762172996851215308168850987382686099935356961343408809962951737907615035075841325036139134925392130140999787428766618186090882379590459956298387969147033990100748283582860385480479571486182790409675863797240587887954509635705354775042836361147190271850120278225431863328550362656762884294807574077599833091728313038346422489484163124981817763395407742820116298325567648693137386543102487507632822988503699590699895586822070070939727508327716564753780688958223715294399341695564047381941814513446726835075163655268780603028363364858005994561112583540698857677511306689467741974978035840737093079510479262220951950519634181277179015710310760132629580540399770916079622178530902632571157562754164160583824268301301346034965887136064538967538963568504396181201911666455571406537340299978615159290490831927405964179252881342941410741169300316330231763564791851654948142942948948461048221574804718496600789546508128477060985237249157329829232123827307789939530029866145458783952194409541312669692795939615127246458385035744794279394462422255310168373083134424011407065384662742806372717249572082189934546855920169471609169846505220635866435295226112967401961032577519064685258893632861772424067984603758876971108797084081868449365545655511786657470658142091564013941572830752603159297524205802086036116218014138770374030762955356812851661048882815027847854146174235950197259503468563924157821880832610636443099633414192748650427086055399578176335687614806377694517449103559440226130312538758835483229336605071353594650832854951759425166649726035635939270405707839450872916444700561592581160772848293221284265865583227145885503697569158161186766703249644195802457522940932313227679696028891459574189311647140612160260050201248930240565360534517993776494634726345414214424388200207650074497469916052748819963499073680373860560284557527270075152752755264340345147123919239496314966222606530504945560115976773776576164198025088506753265849253570582885509071226732211074805382449430840475131718738251206956606590875813094181571761425762514890340169166424998975201781513699672902841905317560511685132384716817509814662253008416817953520116631163192220494790876491266245946922355951843133154763051328987176339179353641284872743896113254352164905633313794478155491990464789978326591409336951523525713989304171584026025599563711004458739721373598155807991285857643021660945846532007110652508266331205639074926056425978721981071288393586142636371415921746206033582871415796529852201998231111372035976551789733474422803679096426770343174525864705342724280096024779006381208314156514136449654140459273864043840081648204457145221858467316505258009449054782011010452136996860949049248969668834002496183330541617890174786838440861139402071584311845861630825765087692291845620840221411549141350384075564983929465670992539810514781323003069903178761613763516041858278535983963760643935895515389637971370833872777911252199559699288623980966746839036775695217564831230205710550923963858926049105733394835586508261113924989085084825605311709010534691752781370869501938697842380256054891444598142665419437280591272676009758172240367393586064583686546428168861228599978295173540047096057353444160787775576657354085741403390477018378238528241753005836032472575994064436713824062600350467781449314346948502303167520542005667583337852192294601011062266224206265532016067520694896777827413252447129346445967407059046812307889544823180247971424371997815248851378511784681944605712132073441261043953728670942900386504991647825096925052501884182556670197849769411602895305284862469366108185943235480128382582220533601576737777344577940407231633476554217435998730679152257655741370217695141416106769998026790766427633397125611997870470441652329004460488644987977906388635452293881435436563439447964634002009166139052146438633294776070503298301266702097046031120994997345982637453445499644989684412215428276467075104552529546878122153929492719897365728974134718884292734925794530108943680963205073262031598656735316142309025682374971950835486283322703149949249779103396715276343111295830453269392751015484931480071492432949612953351019441737055090238264104781339143622929398900702963223990620623024554273875231205045106386690507154995336930988827354668338387527255387882045439579729257767946291964100927389806484783614528973079019121128467325408756116942485088185616687926612819129820118300715053922755572663851988049942450240672790506008816049358062504039671969815131790377777317341522019271164082900446285927390240970017691021112453039889099313254078753489702283204193630845867829164953058450370563660864310668220511398245856017540214726679475814415778570521115239343276878534299950341615766018511421512671672734197989286947966393618391552763285336212245177424154164978735847266158889519270065189711773535417480300078120872929065890052008918287130044830902187725889525513002083482441893818255981609471190662403812958703996076120816728175413259540929214584931690325043798232108327843295809584267089062677046729418864327711125809432281032302235929151027450408847963363794363076031181660703634676980450767318875319431682448798161709349888201033211528486171754453106965129723382928844282214094025498703532505298190580164528447087403504040286088450472819837863603002013748865684499948421114522725583015801614085600174492308721951755918731432452295394236179793474779060779071878660613112493822918558754202587729183457712004054257837291527344940032492779709713043787832561738314643038475714473657670595379555192571054973371252826158548862164428163206710602779855461273972860637962330004925913929338794775114653877097760057235354929301412546957434543611522709132593672317487323956979370457089634112969522671386079508279137214519959432823334265483344656133138922546495652549046156163021949424338078780268843913661633244164481714776539838676897683275563799261159064514006508743350323495761125401211742492454942042748655729464970719815484231417858754883060437607307969928635066926390588989707166335776266241045602466761801996083419338797169195973039623045377277522887335722739167883466626863095979498965729192577276897270670891747656741993356459456841191729658093470248583043120904564743999235548801433001503005487862943380011135385556769807957469092799429281012603429916169585932211424798685194025292992459705378091333546830695348441698637099686788376879750950682524325545244325423238135024720301375048868827866640821903855633306463293543015320841278132296601704436150927170307408075078724741678612367077624142572225392558778762968450951749297463086847371240148528744328857991777511375113201127925292459962121594586290787987181931104734432006493536934067356661427510076265344844620651097536535501443559490179589715070379538691349316683421077786593061473483117304445811567256981427624442175478250453530314535201110812623406880776951447918652169372816697806267211796741843894629831522180033119289471260987395586208149379519595072039149611166796008158195498977280813332842273275813619834855695871688998626142669883604596298406100781525715576917384662023215113525524134301569717358586788165438890802398764145757671589295536894549136580514292865945342801319375548598643763567830029366246526861396441421739089731600181280628813863608843067019810144921913145387930059334656564586903295020813354863696675462417424780524830453620329733387641020395270581495636478924704038135642713139822711811157648663705827704079109735464340452420810357826546585094731928862560300606994693022135985216741387320549757713459101908501032434828976504697178456619679670257593081808806873062550280632502835490965827092595846867509999037153771213866446864958438397164840922754292269437168035942140657743046195505514637988956948042140425527462966982454653472649649729872242684338605828026396943616407504251597960038480107233393082193925745608271997379787776729160804206582141572427097201051067505800324634766708424486879417802364941236218728867398982307236190094657068110664238899303663899014891793473135089957060702264736006575116630400854634746617569983837359906560227271762369692410572660832295574183679248059632289684827051259625640275808416997774460152251696599185745693357103435450352350612325634710805107805668158238069917916474815566061649962628036366530588032132560566102986143929575305429630874530816927998749217899817425449338159719379821266950506346802232368327055731059987836785221728980233745455939942866163784942157053116917555845660350650830515180441871701828472882941071677673503161971233859977271069729447459358600485450091482180296896088225358464668170324053923331755244263383057986268571114725252992108390391364798793536765410205389790582539428667962637105968347608036747148889713627027623799841840507266751891740515551836162441068527502692635813100608869151306081846760072584242804004952991682426996159234590145860617917500846032746698790914631538752007342699551506602194989623395530695982485299965385062262429123846549078276306779219373062818750289062276225874918047476059245146225434797242708830564867944653536858520761228673069283336362935596571161309607837575437182118728178501146563301919910930773796868957641498572733056184836570030737133244477967421145495425333109736974616599457628179118022277209289201223366748181395655903432265854072235117979424952905106419840393682692591421276419847057939220715174409164056491980109272745633850842835476851507249465410208093525278633254707741870589872473253507338804133651419539317710556822020272983582268827125379505545466400959283764829825700295377793355661866839145654039104305818091827748003454482548422689822614722948892916337924314403654613253146223613154100004933829599627556941511755884924717106890132365831672259079299727853020926292482805366928030920261765251152640759570304105158073858937564203273933859910919963005497903641141688046894329995862041628120060578330510796457345781445203319783567114515200161753613509876384068938238493107710162340293251496366982021074817594624198586167126036982776788691504892241940266209714184343933566629527053845207797378382648032453909619838204642340133529567212654491765671714556286979964711790897772522562562770167681318524834859133934239268565886808104990503552367130622350513792781243635951529647166808592393176988887215123823249278642532807222075240212828408351157919402609480880208441068847392348776469832920628236299775181673699174957141670600076009704410009090038217077049982861710432419091481508942994037208243558570756747402594857141681936376031219721677288094847105918060101323123792105345632273344589045364331836353163925394068232471295302365590231273807841853836887116444267481533544671174143296437339125917889476230205439931875210741401233063835975956781397276381637723110251344623314525778627758156960670633550900892620477531747650147109365642293300990658501508661616602066575158559513507391477187391964118877038792840572168701289379429927821521592525095019178573384732661502343150591833725623223319293006345756531149963481993204172126361948057228791316578196051013569924815411972340980613018626426950127884761172539286179747180147097242308637484226211615782087629743341659370084251527365052350167702049278087244793703438428176155441971903284344380925866853108619600291650335749090987516027111141293165096413488091876891778861044257859502548711107319442533305548415994113122768560871088901965879643852136681064192540169428225223359067980823249793975374363447242362290040330566095981415115276106495091758494799493590290709505716183966799068619033776534197961276110598045926669955852702384593609245607699945727259293407338449209416996322929612695769050942654744580278157003231752410895829875795741951054605213442675801918840376780115645379714530632000939491791044237417474210652682592484542939851838365235320622316319414202671053125368393045971240287098554423000597810604110029919847791637010744613482468963165296791167945686366860650252051041076676678301958515114215834382029031250792771669855959248695322909847107899496872351143350787541992479985229706518855293909274998298963997757211445654301243231272466961402386447936939080719520629911111006372287603939753293369033741591893321771814912702915804071821595861868344111264221347530070987668794868093899837458582506504536690583048027851423268588475062730736918154908741464666418234616292787395033480882045610396665726635646608605711912044119463316670058508880781195202949978049387241019280024971644291182530931674053598887010973772189506016293114349405651499538736822234179287048079863152863848230982973831239592690282231883166690071188008625453894824354950922183771176554073021846275856111101106476589098684932203771130582824577723218624440021359280635134628679727283462793279420390017358112434937220464349149209751783002306461190424985363969384169421969612687494639115371599735890384540102318487882077641038745627448846698220844526656985002249953072499410897038271902980686874205320548527880551044220115696868752625903858235078040421019637804817703455985648714362908963745984192945652614869099436277948634965725324156751026272602576707791165071158684537423171624860104021167107060881074160696070783268589839210209253963671710483888421682616854869239525976374658909837770717995529029203511966118998188772358481295606169592088531199074461569448381215732721582024813451026417286075825486804402669422565797781400523822743755891566102484045012796601310974733269941001524041948259757013503940693224582247474260720122449638049260427002942721536821065147899573276583995548169760019314357043999483093706122049348782267936533745732573340480765945889529822809210717049051006155235095248819094006986419725293315601935028993165952576601534711874195513915403955108838996408654938934791903414449450527604685561769632466016967625422854681626596360600337868066134497415769943585646518605788214453657202044685643284728804863617668003630422975362970970700726274110811107611113664753648089267095507856410744479069266143536125704918689894560478197975380345331772865298698143884311063392507766206917317354223579644875330241654857658952722048456092732025593281432203289574026089204154777709670487642740815262785106877333583736241666184539431149683356208753684301880398945929627851821709205537006364518598390576715146792576841128448256878476018065621653158979906267142925990416129985931771196975758191327039833387477086882003889987587985376401271585053165489384831741605632601043039173423241669818796773759753214486889297155030662351768632364625724949212628649720144152149748631193074025526293430835214842518526244418924141965506045143953670836349677041039999370515465791977697424718139525479519728084887259087453897806278025608971815943766904871731857715024728257159601594501005849796034098674094762443051530785288807004744343843234393418684047017260564689914626324662373231289905362627152126890905493647197776112045659079947475229348587282464711478587342209403187757344056573419498796993733454587442504769076925760066923256688749029785514768158392463673399499071521010753999776519311160059686857979371045997038569022375482450757842619574605081897395660822086390931775026766713168703638736696939929275234098193868563185942927297436604261774166637829616732460934979934016909108217416210564302406466629721967850724366347768616199276377461003746303915103669283352295985562687604326413466130058335963722882478895287359564689192536442162023583903743079009906473097550264668488997412836184733569723861058197958257963034502117788128369452654787815029693505859959298275549860790320108820316274844288452048234912674733628963071275942042417274622076944833266593352172707798785676628306637776021770868995182537908993229798582017236146441879924934187369295410085812732939382182982467622625089409389571602349056657546357135515467663684102290273573864108654411292610920412319487511853802037502375504702785289260932229152820328835188680059756230163470209117783228510304916279188370352098110250889325885296076154882036737380035909866943864412753589212406702997459770568748390441615165877896930722498443463857412554250767889676365172342954231330142464526645931155573907522873110912902764249445760867938017578911454984799050674635341925084782212775595672395162839332440074099488167321529515904001462815418826533305907435346124691337252103201885355470536529579102052724057378735710627025637615115807071292694459572082327178581950164430943371117408036999110638759325988520211780827692711157421836225643259715642026500137328802775861662479085819347468766997348646497321947162592897737102821454456537431143584922818971948368661212129988191476932162893446226021720317042650923188254126145565879688425157316114499574713465368270743828046530221410952093714725134748837419004239638640169016550712272890157608464571933153333605127415089178295899284163055833515567439053534767737131035633137805700223333993288983382037226442889577981948168465392562251751491777966281385639314738860403912067635572093659258897627823629055980586318097088620173706077816943258904234215613842177038696455003670347024520000054417795849987833150156481433882918698234964930825447867690125567239742046182551165103356723431181784270217762246403738482002477223146187547499292464811810393276157740608545565224722067050539778515283889526771998643519727562052598347828901730192978735991130096596965946340526870030723668141667704869128506561873627121344001861848184166119999713995855268792813639719031695435301011770340372776714506539356305182635202171982447486559963492396347343270962400085958905133087972168864952181479112862273757720973827180326371037179582127151732656524698607833136707283488414792978319568649794037142677781686159420230485126752690852975658646833638792828652416671856532413155755648024949773508254198519661595182953370004418879726149703845307105448995372697887135321830292870662640443680692210155220408943749143823270242930685640953113206106381738734062304168957661457748010135721688344910163000599247536706866684199457872765481233273140844654117322716971824668370248495170821571168476039116229393903028603516917248731145599065890116039553202761915507667821746062922768885706809733941675461887661891258400287213739804765305827158638265137602167073615184980061130803665018513925303312973253040671172778380677004232293986618435599491492822647026451449459172663015623618234841815349058836916196262076562951199024862550343413399504791702727872457523318287275346552843953007295402336170890386663818147289718603351828084798330476697886272418339654691529767294787975657276585118440426455023137466680504606384474146617982003539193619195721945021243665208318116243499437762278492687703539688728903776567818700848888796388634072576207868671097158029770194737195329065180919563503489995696597164939892194362639701180233931404750651339173643238378352410795554868944839949269457084161525321639971130016395578623591739588479816237187805808892131515691836244658307863006229346013897977472708031592378550512804877207201238070693368340063775574398519984592631924491076791741793419612050361014695231441527959031009637609793659747457748459939844799404839240170845752518557529629274348598048959083778096622146454407817870931119352323018025264816204075646378779530090893920782796453942155182700161298682176512294550476380169528198876379533900838757618780434824264611268653687604149985892074314611690525519666308072030386533256465853909418912502997429026912062213584448037898176649382095107049975669510817895105566501296408439781868555197911601357020078658233626229853594862936815948877689291230053685971591448495957172950866488171074558908169359577999666885576342086286663454668689118848899475239736916629029884774749774278018379374499409761151558343399413627202109347687367684420210886235521156532478623437182267756633270762584798314292459167807154603025994702387701000769710915673323790217597992823317973954455307512735123020831032585597757715304971298002082226766825910244247741638587844773376054640977232324423194709284929366716252148729571790585068631407002348150386581086920315466148801010550807041698193129744351368416266939413367657576344422351020200106290800831562423601070177427478328889247900321350507242524162718477922614655946498263650210968319549040024461128813502328321378354342991994335497247062612237676774881380387920132435150148622441938574894707285292416430568783747981409385110178802182906745621473599939994309962344099729050116128435352915905204724242479435342605189018654356272455900823034820005339162228452089214204180719451283023106637317921589403684839953340029678907308964173112831702086053534284633501603720409511570994412690513152632970582570843750736802845266952209742885104699749040195343318217875039154123030989233248018195540885497860112317825589986689396947421475510895157974894712966583476592958285648143740732683422188927691046449245343223898657037663207130668469285707697005517441074819595645874744374131433692879847973148257251789063062387158129939677717332639259127844934548347325380968701819660513130620363603012003735289111137419626295580806845549191370140949223433360394081192632344134446970692716992853560293721023721212035999757065167324738216028298929148581004923211841801911020066408588753246126184423526520703998716434255238292158170873316195269528188721654717038291647639067469358586609307259791516632298292134949064052416793727070523794072089383212590293146208274833566768359607936463390802872108322278180103506706755193534646634631293447544796753436393274196976996499510319414066801690825998335700844492874627184338828956749094758519504075971499398046507700597428445048398366385439452330188038163796330006654542651176485814133304568488398143157529037769269572049291228415086953246421790012561149129716844668141652400788743069716030339434686225270597109091209489675820634269081407938531351346412943304889020877433461462844090107596210149343581520523133169726787334547106704350053962067754413711012447535950821234742599067941191089219511411608674650008282001118750716471407653134449744875310620037160523203337122047325029829416548953138207237311538864968435459878856285512221677256676726309732347295914134842919221075383293213743926666586280529221764603444055936333492396652734988234038677350649160104234448712222498817367312008535655274695983982028090725705577710117015500563563222742390646515866383358442023103525066915989379975029422756552721074831500385205388967263772910481376013852417207826133792053521446166998790341672081938481340087838508234557188861615125725792169011390438654693049462436782988186017568303905762981898014433610752204409874742664144651300081067817559308008315065111157104039155956883036962467617377022558436758217044498331300681331340308405642320116766329657105514093352496416129711318426061582923216710203025040563115096557047605046189049775451884735093226345712634525356558523179524145655954697506482298058760153447802969460642937789332042874326061139963581314701422468268959086655684222686297504788406292617408295307843713162013053412049887883516570839184462814906710768003425608637382043957626932480455490643153651813094033991338999150292213734348639262459190238357459710526022915886739495256357449071665145173832720213304344263038232840024353417514656021608207582164272606121519321374547173715172060656461778321666422364328370546297215189014731278678964518112418432560668124314613661154834519196372093886061061520027631265543683722224635510850969562357088776415603763473340474528094758669829830512683309525197383722024932329529972070783186682003283375655348741866814701153396810274174813229560492100470969273603872345313597192599619339986994526236027966632886330430767139044662885823552843904406303095461039159381273833201785530574912657932218984816530202613206010758276131497884442084002839841348566010457156747697045505082606409148262322625145828126378791303631946212434107386026219736173799750515210313462828977813883011638692449302063725538766680822607589658249970304871364840243676207021145982688989329033024786309463586184081516766394215521530636097100758377127182974487545542947551170258435407850183642760694496788671693672105544670954365373704554061547417941872175205749943544841414241758441400338733912514465014044646076407360725757367028786743043044611488779369035397246740016669769713475465630707515257637589721220225966382131106057598384989970707893152024307654292311235200227350472747855955369704229867726358814947344480254599009934678710573128451791086917087070753191387296815275214557882155134380257507822825292060960706928196382341233018575420993447171783502073018886210825801835977588643006116964607638235135688109525424563969566989814604423191798635838268892745873252909399269176625912066812668920398305674058341372424339950366004142064834271526617437835873315945474965284596625989345230650019017869693040637382370132190925555124012815681331940487186335817929097217044756578327835629742909010277353872415037473915692041841778142764015670651855613745315738336256907258931851487766132494048049349623711009613543451038792929228342979899654087801876681444412437093316750870924659815530543808522944585397284167136191843201675375795162988533749317504283621894669100364820527111284346998475513835151395114356966498551295877761727288438389500609766667222719992194583531780999377222671143402136646357484258465218061884794806699389051855798304399339330761678262049165280952550405729234283964738938461260062203857725711305718852421193112216801786942966523864198005758390705671289458925904491094386639858588130896900011888111049677344314172127883710596592539788489631017844430410907271071092571303438604230040869854897091834640606503509855678688004821208742123403945803834878251641062081694259723372563650200977620701090756387519242514136228884641637191846763022422908119679332193847191219407428452206828218548476401434623712239765859899902465475146408976422600157384291815074840106090529311888965012256995205257323457959873970728239870481326322349695769471472860350985843161572981448070984927727874627299893340441778044921492958672520142692483777668673075125850047402457226428786940809035803116903772633257736759921802502129945232637028147072325510664430817330728428681479205094895308524405722805493141289820352534654540416058734440877808313885194297272032276845584349937794529449805255150753434494193359465277281407562215918182729489511100546043662321469411210905678963997170093925511532272959218628663901231289968401376160498126601177393907697326658598816180668168267999125079510172924535337802101704255271828700576994553136504542003954519321032468505637056226354899542510010480015678610011078902483424566443372778335456444867112060340245539424210956444138483473449777991881333486744512455098286219630354907578298800727282240285813448254467521199550138644561999556945988820063744258757036622872692973752479753206030786604949922335017581987087834894891056272538565998944888937548598777048249796410443387544503496550656742264176579649194611970178095419517206795645099508598719403403673697310248306344136294079716779122763978111769481431680967165890460490004113983807992127770139214745378129335128956877166281095099988258549306553237961549188792975894885959888499136465830929384481742671719452105724891379310767507034388746023399391490342448428285503815702914377392877106920733831074258874007102428264007756179522946698655230576897177273423959702300602665179742773209906808025992024583957633160186988641086293844528790783435630905827716049159581405442179280370179585410501298271945389926983000847847289182858598607993077981071471530575530653174054469271032064838198505993583698863733326127893690069552930354208590289079322677891784412924849717815330776968631861006192114449426169457034436586210264341016464389483357468468383076266498978562520016797153354975437333087173810101476294727345576641392860012672553184842177277025252987798977372107520780300781969027043061376064333175022670490254125237604086148415067163141001469503901519393145506940381827758090292170283057712311949526883588749872898240305175419715281230783574815180665534406263586302753030960496429808694210265983180145858520888007431106901885541199961766837846135550955765619377620878027585676686814490715055888276851704705172752209568801700820003453263265108699014007706711278692810651584573652966766665312238363218118335031957057102066388425418493431300267053066906124554872073099463133450950866334960918287666240414845965672192305142836263200785618030442912985314567739613562421711372941931187137572685914396470968545229038047328286958405311718512957088096289978245330753802599944190632954927982147173868187929533640696185271268029443613147931990009417618361594974015458161208709868372349049058571996257353685576456892497196833395743803247551070486331864831415430622001325984395247224839776488881239660717294582809885721166837889000025886980823880925793548845385720499650994066214790110838921011094633042126147763592669641873521873499849745146173517429149994429784562336120814709921318826292436434520613835118331860603118687924550246309424547740733919444383103631410293950556457240705370059306147605939877645566812492986495917790481766639592628486163537912226125305930180805607771678077187211478175210150862550969307183946383492208179457573648612088412305381933164863596722827816554800365838936816071609394304466774253909234277931069460147153827559153702445308250768471757813965085161275844511748680563601455164284352981273756787197540142680158260153102902030320548073760689960160037411750786643363252313233786557586757564632865988634687473359461772395280231587848815987352117917839050545093723358866327971485008837340273759032121866261457493019352074645645131672315651131340451509066393844662845863280511509928550748115657845536060983975572218447644470977308684508537571960289737341972308742589766625918476793784543575745331114176122147772810223155074985452170916030833072221136107747431757139900334052565502194814305260257591995293977319156942262246749594799709490204451954102743170743369583392954905742946201725990146065171537742874148494997115829998077068631512068700347127543897101171585860887596605849872073357636790667055113620391265238887049836818448890160525367455926410709920274491792055950635029492266767566417757633971669639288073621475350804529913447735540018952434644402659366185475820461573505063098600161767673864947496455049438194299363175371251484601460827378078631947585404391422644997417868612831781876406791254358715155700184445004090656242782011920351817994188025992109951372435413683167943372771224364702363530933543691977447592099753941848095987705513951679193024462346209563682008531985000614212714843747874442886483747774832821726401525803783196867385925913279041273963528069327419215027388970924084825628210460185592681762800372644011080216100694657299586159689733861962866787719436984702021672542361138784688677981336968732617869912185309197491794521224109100276288515685546841345463567420486349869691634523870079467479118960502709616105465916568207372315225766093406326986365363691439447121102713143202890072430323304558013018245421924013904073772568006110822539151303636803098518419265873094404745328108220627686231056567351447337348940972801198468327695901664060868410948664463800730186769316307082316661149327200999580458979963787816387953344142889079297585855224008887679756887739349455375881265155964165499396046459867353306354561983406357023753223627331165072522939057625605725740030722517590473955289777337016700185431099247418067171687420978266285831604944852457999771455378097161148036284057589380797262089730108729565918246356306422112732340827546967797111640444389475949884358971852104983481920822114591437879220876184030389387560542777514335109923059975816015548882973405232301609012515849125670313949077211904604823501096332735209353625326935615664279424536211269275967454855845611296875801025070535357400216322401672877922913816484106600332784132936721459827586895025808026462404595128665678602847580955736535426012670998752053800035514798043379233839326103099789383820059062449322515859788405688705259745333346302068734145816966579357173520579868462116829381720655519949896319309212407833973358993617360130597984641519605661809054907863253782492418686454672790537039826679364161315747824635062425273514543504436581605530615151438673564996440361197227880056495802257428554767241676228144187598236629424682932387034992677467479091735962357892071149423672052351868534719803685694582403828254885406742159122097591500264975596088767889472232373179095129696504659782708600652662201307229370195175159782318259886908940914863281514401314541976836174047091863440234411295241914531356329293874833367580699535546606663386272385107076052547818310278843475910443200710383234066893155945058008697522664558952315156628154901384769156686569394405552249427690862389999842286224170751495737614710259709494653626686530294410043496156995817585343153270394332698076345986915566540327619936188396441510114193705454354796310648352407690358300317779703755941265263489984411206658122365272114995965733618938951408326953961014568611764195325192386472342753893235086059639810352025844613038615932704001467911259081094611604265341288452903757173841295193454254992884798337287774124857355374167007036043581974749901461547894556230485346403931764251240015941941932052565570004336169607309842760683361538591233393931427444333576761125858934395893502059134003931695125610170274179559722816212041473755412129620093750645384250503341422408222455790148476100815001050825332236958594674552931518957663564343512488976610553608720986726683461622913351345122140914465144870354681714864292249625618588568627824446700963124281820334972268874396720666527551334680424765567843631835741015223493260653273360856098755898143300813284417747811570344921810723095951766953562952940441003762689255142202653747267726904952347015812001108287326228471196611333156508336622282256737122537442881282817285629308578644915764544168388272696922363035283068916816062273451692025599196848309110856671494515433196595958406137951233255761185797655708532243758592075169293633284788145018274562393412694665391469741157960107652665708039674304297620994096822094996043937628973395117762958655745663480090730451712644399483364130460917993221514152974154676887076743614335482909891369917195794502661043326654322753898444521922482475346715072402411403120420664992366704554284162638496461658855251487327228284593317088919359738279494354899757781870218482255740464251534442603113390635022766580961816372353137645052002288437178703585928289559558562010290594523647193326529169583103810265345521189318290017982498389242610545837272277383672660359182485574406164592617858180565817965350903973085604645465766346935860367565035262993516550844802655311697149534492078105122716682070859598451428256819866905542932872552254952467062624688694906537106265186674878279045636426882710161037805139706234744478214887673821202832596777624287651501100666855615293729281072694251191656197374976056129764386034400754638846158300843376606811566005974584583563653290252090661046268137502018761108354189752445068829456760609937916560104591064944208749471439992811084992450992653216623134229841565411311958509212634501931221578908463526646790606858390037598477467868195327190266006430599851322266529133319282670121400830225502231756247029403673904580659088106367521334357272579710674733681641226692087692403269876361250226758847938353792650043167263079983593646644864797675287297955271766911237539560896578859575893026589759383520733632788437836204606672888451292274863652202616453951620520254399037638208919366593218587116558296506225271506842975022110635084746224155302528381682799429969178428995700027927931058762974933998237560025418575171283359590746710299853161315412998301819424122287021663469902830068679205061456310810717684174959970124480312926503737874335064897161795882326530229477601589240657012727094504772835687453791752701849953552187611626912803490684290415622869514116039381977986372292377307682332760552723559122813037067436225327688536573604459375165379948703980723296828494789799763817323840321214032088567980978734905100820440653170531435567853777418941358177059697893533392197665635321684183945508964445339686348082563881613631564355283393054568514178153811778656832416406191632153727911451619045174763463453989217358136914999313899386754686511137432947022012997063616917363244407684616142722922890097984010278675464009431187513356817168213192778619566957491455434876388551655183174308331902761216693568691411869519848464568341386212808073922771286298934075615271308057148171661763431668557528401749021318661314729220600351245426829037779714471351404921818498119570116251319763073722107282604141623917410136458704619161987519484894255980116021489337342282124364495532689190076661242901918462558314784393439265213636677075936112784709513780712870706956316735827983590826777185532699478560760001902950374129591184395706962541312642635660077932278995757053786078132857520537877177967921594145554222146170913452147970952536671873266360393981714898153635007545948885603747611921618793767911104062969587220002284405528275666617419634631243375825140280604604881129525389214879997248697876665923183020992222002175336922835456437106037797254009168862711887237588284448892650201191939800227446215156638111380389829526623537776717863893263563986911819485534767611423287853075050255795967913467055310779939678957297447700666529272837801796178383390930225712997067603675498010077739895851003752640104850741221280810289002628314885672299766892318776861636589412860165800032483628913770572782084158551021394692491685118428413228145135941734358371051071950253704996146453039985328512078082024902640181330033227753947636357956429143408707235904734709491374275729201387847181736210724145143226647713820902988301426285741813236938443498615428341085403942887970639248435644054599720023482779725394097667294553609878977452032728440480654877096392463060330543300846882116974702987808701889404630801976418129152259832955759816815293070613533950004382157082370568751226245698769884459416348449612525811699440567183468223585286136442670689495464888346112796507733249289137093207382139563576913567519210200620493664513064187188284198462362392502171569420068529668458873725223859512288131073493437041300810637121137683477622327487683499559294918303265814951966798519889650913781557552144668185770903401973027881724537347658584149056840357585731336733856566316722360936395342222591308910652210059814908142986545360171928541174134224124421705015799166527607254267673081333324660157580857012074027506139036679764940769863755157170917297409925016304786435277566598371383440033075823769016508507433093024249772457543606267064587585769847189683878284479084242305458441798785619712042375694012689643591050687923192067986941186830287823799642115381656736118655643995105300143207413396710863041409709526548433471735401587585230942750444841339048549775552640870750073850170382906619852125109715783629725364111630084947718359780568875788120930448290237148937450865586169009645962342291911867161833817488803510746098527345031952849681506630676406408606940549210165857955980016201595310522618283343881086514286459922501495085833710978660476548751782731854717712586044428566961859345892123889615421912938626384176707781597029938550956923394377062291214096109021666103230800270874248893080290495142696110425916931505910943976765134655131980644066458580539616319407623325216345768464861535135276604351053204444596450902880972940548169496085370713825746247968669128741861693792522854724247310994983662363891787606760397011444346223542150732964147451103327872795992258240654536473452660251283648414064141578085111178954109569610674605661667496741816424530427247094267818973524612916227131024497338807901414308711147616471061835361923257550792414999505738776675735877863810264141645138732921973221770512345617847167093352736931926324741968995375601372178587559214730428594669176281261805630468464518225031494795066955702830965253795642642248589197078971452775438281017755093708907878089382276798451812009881116321701698619841954815314148721122162137058272050854068409503320784324268066162441041503742022960482496632223736160840615858330780937121646349266661650643619568605786165245379287102812350686850227418928787744116067387896080950824468763720239877054286700200940680425415227676918415612735629496488037448959043553889903276615527559680838450155978573140057131850347467788821904242862624017248082145732933438555542452295858431589801788850581685453988830664489896774638897718005337939198233336883638301213811716284533175741953819823397150248646057646085858030289516981459010381710152390466550765440894855722421543291334725772773633395207465933805088799127458877035670738777525850997770572768266431151117419691620599886207612210696434657345717166324348039042545637368468680464468905471791456510632752484824465576404903551831505183582559758532519040495967743553931064168596815971624442893758302836086353428695772950476948069408926223093278630896569659433015542524445721357930999894315245729329112763419893775593134745815480012034151548538392339106895334281478959627128574426752028707382201363261620583781724244966672002791021875467794907356251276649123247686424295966904386634440835564170404020115604228189662167952899898992326690151228869861023736772383996172780852377004736001314431770907451091047495412098591526910647859383502616089993577641692816989392408385870309781796198363469840095671248000850097931354289948049151450612810618930547457085657660399212518502329808131145800000432087860456264658878310653771523430249913435387485346740725064862515591457720892394942508928821065535060640407692528834777842341646522027173933747413151711188353080670478989770940234459700969426674018431595948416399980552124547254821138289784935228927952348748255456372605450820184945221906026483366663774150111651455905420007150432235750240505490044757217641162835705592969614797876850744584890828318981479942347952535867252186355461541090872163153769780144657506285431177949293345195360520852691742357791252957772275079708786135647198449858204176865878703402408913540723701876069715394849316672488939465450454564640685897078640469609796822255402711378193849665195923038878256502315874484860986993654323771300847837776686404049695565538368640209091608866491636747594146524066154691875380863264947723027022827457859530541036056240254754740979375189302517108331337226395612563349516260889637457757072959271361604153109616344299120033622805448292134640792940533158918327098476343507772660346935050631526748000172293415768600274452180685961815822829819375041337993169207318529803838743733005969956475725585653153365729251121482581938644991484495956781703199258129524832089389101326606803961412815447672633048318996419097961382117471353946463070202289324979611722256062526724494435937145871095074495227786173115747140492620495278411674348442353354056142491641583498181546655723630004721158284580775200671741726876026868503454182519158957913299215215286156360699986842625562815738840235749757029599985851834166712066925317045994662785646989681323047230396720260592829554671483822815145262066594496924219523768929186971413349467405842850254995915365445063262317154441494685634470897520316246309991630221191035837390889724788180274612675715968162357227515911703221666766568933969107407020562766055853095881930626929037487257731413308694805292518209969865752399390651602639583580343986545940258081833053164284876406812080360133880730048130069538586867225511735922668607452665851215728019465029636524625681119879213295702448526775793536322835226733776264769448033892367688299924858024693435053525252931052770567651098160731832787960733334319693179234479947449075012687671745531018210525522061251399789983978587040421063209413464817394924039534107177169586201095847106407250776732378861495695335874170580605579319457084323745798092439301432714108770024967522963781128230557788955665631227366444633971907156427172827320654377749154456163083023436806037072037790983633603543891190870949553856515807106360815044322071377655351970619948648485181646910857280271919498902645015843407018762934188946160886362156685509161086059081908722637581286226776463830844090905795918806873575023010383407889473878090056222471412957890653208172704689351423869698207336036516233635434818762242435118252902168638384868647276586640243414526715984449123692999193240914763937048527953854475253367523934557031874012753126309590897579413919280440490554141130104287559615507603460943937528205157808324303105625558813485686057591736129011217550121006569358259973234024233541382705466488589287582135738079223939888613990565305150856748376704270058599977889555697907727360800498950100614158299178537687633239813512334580223551540755424334824019757511870026164824836655994213132127747278199091161528030675356198169982698224836587271639677731367787830824427235007251968615371672256657181001937102591681080137627124415928335884590513218142561794597660328230936735633226471579977256544120691125392515527097885424899464020301210157587845472438958115903059732849972196151008001450587406513627490567385857013837937793588899802683468779809432136339291092222315281480392886492029105867808957953801353530499769620964689025819655979617251761878097617197425137451401406140179517918983339996503835167528368812312408373784955917557791996069332902957259643125007331090960478844072482862638523499511753689574343148263830658555550907476098191379481703529398886899413249650113946447582715270655936095831940498072767238486564267714945732724707702047194673801573939838016209251437699692702094443803255014678363163780514763865138472452361453832629777001080685656459752893423932726618091559824694175739532910161606231194908026444904108544458462329894706265605009116925109683669520501470019658111474060770208835660445513695469348113718263310565236339725399765529072262016557953179384364994742871722898612376432547093361872525674455146636943474576582150530525792925663878321811532801182671206506560263045298674724554167506282677264371793674596636292926889078723408690258599673241866566051959731960473154010558573513826275515174900346776548444857655002014763846910893538784804521342356562664084657895686930450479679806399597417749831393350997333268284348550458931741919913560728524050532876543360517189475332835933710002281647246733632063000628179217173027235439415614987563053272188639275477480376319339081900006620735940108446615133027295444965949512134856838127112513020662737743830684681253597170999169042568549019331333257393850223262228090429715969304878790647757905777455741996127925937114211942724213293573772421279939691462767912405288958974010272896903080222092303967926619034656644251939106797690763627875978343143783100900196978715783522826243700947548887383009524915360727090455670726723803709681732654718524719405366502006567021827552786405780858196895316216591241843644099234678864670316528149897724254718550989685069214592069682441490156144038109746656449820590891181726617979441746751557493486861888705366398554839861303803718185304515425309359435044394275077257154477129794101547077579929492068852333476858693477227971069047051231182073666078490401455934872100493790060749150979319342571317800837646176610747513793138103456934640807257221675299508400088528182762787152790358552414677515514257949636842375230191668061396967180406560427939368618895026336411332808106588912612758524326821525007743070403972016582155504548556269638783442108825173689083850939506936425667531938134406745665961736638913431972022214487072846935418841787911757750506992877057633420430932388146365360121562545763851319083223042590820934467378897687338273317528284228629539488366438521417547510913504508516225392264694625356980440329730939708027434616833264659908619080927289256003004813685626545387955468284437632980714241119073125659232997946475763907788737241212240800610211728662722754759613213076560699972572688459181899997669703274407178640606054645207001339707772906326250178510241455554709948165892238087631288230517797100076097675733960135925448941952749134230387601249953514946120894584103866267645562607271333597515625106712438661990182432986656649470862347484845964499441531341776716342365496714493292232590859599889752147887307347713627264546312780395158670007587986315763124497015800681557252141986224371859389145791859951312779808007286384825927221511274226291193098223456562226411774122131537001104097237430859977967627571029225839431142104887963884293850240950531556812013253172569411134997995699846850425085332874870161516798904101733715459876971030794586609883738013983893555934497732738546922302612578808662069947669646071440654992765630447667945375833445919824454479972160460301096167233963717654754869002579358050955687497487836142061175036593859913601811794385726051432012556184248199507591322874795442934232711873502417648860760393621284473154650155874159423761601893144226767825591854008300127680049045681196449651262998299700657710254689085193293428652015705283772738742854951457593278672863862980814336153518391993247154331853843103791913913780149691960578136671898044193467611676424098998330374341260711861948307884432562652314621715914842187995534794523612373342494793746255000369526255067959542183581845767042145771017913193762728586703548508240118248632720803011925963789632544455826669156277926282863724791188755558328357773716548038486761827194377542417631691793366646698236617835574610882923083691636724580805739753323024680849411843881101263069569534967335070199115860719485307531534350570702992413867103535355903053354701913461475011301407929736449743653530990885160825772518689037495446453257805544835515047915430859887066829157370115100832649708483226974689045516866506704139293324756744639696483064263629643931569650080117179847692349646454377951620509695640748232724176480953918944131189019742503215461415243298461069663550434561117834454118763118520815463348489351476135415121469588128469074013663998304148523622160242939612782974894157120527024736465056200140843490129218279795721397041796675418926422305723908708876533967602912988432129348670574030650713495666543791608521857058862462770573633332987291491187686300424589192259428719168246283571164633576751089241923687397305203873981129530076547398085915874041224549025138815284847680877249444245240302032146022742467231281175769216071532710691308622178469606545098064216378652106074857249113612256184353164597560553765623963807873857096253326305122451478189147165400679050166122995820984987366072960309422899348664957723894504233471961700346819482317226568287181116609254394587124296056387642836365583853652549689783724755944388560268363363811089840029079964182427394888718696960063663430745248029396550224437633709300981415471189021982313152409931733307594200536755239834951046578332219474470748069964867129550025486990703324788337078480272516669125801138736288391138194545241814646325585976456632887142265357015965154502936168880252510808847391053937013910744739250433054333259068350555540147597113295866363919098480828416634720351737444791273240127037014093247971540672736369389926029977110041070003840689627405840936313046281629538759978540748199475550655346766137545161977418690598329521772220972762937062749773053796179013524613330132046063028937414773584039021211493785462384114497938132146156544886281102933038730284114322718763146077554505653431613823056687969360768030244875767605437726516474406969336128428652432019899803760678149124011505885348030291856511214454436435531140525732858781468185987804591969025353678413867318396386354101290219968753334038795366737173544568399079613027018948165185144623948966788102428360118984762553028885877795893754068656197809530304308823248506503282132635773825849859660447674826765591291450369190982805845521008836137213441652765388134355996708556062203118362139981321891268503565973094126586565791726171162337764505307801277064568646374061022400157403071465538674827908141979307477987559030971948188553617176145292848512423770789047672484519009353189432156448453019254498940120610693031147463008522233233947281070911657557283776098699093211962084351778765317124542832521211404170327825350328536978173750841669543618798445783486045261358339274909435385139530550674942805550490409751157046136158928266029242436478842185315119450980550477585402206167656524903298706188288870327938054608469793136659527601032855425007926511108833701848418725318627957679962874892247588674796862330751483549961499991589703081448640872074376826837653606851936198240409440577520562325181883337481734808520095586150994444596771078511922130204995985404206287824378869180568882385141214763979277730545164195349442507170918520587525348235241754376417280431784496542044722007381004229149803851292952888960823622935070844120101668853373503815860401672451707899723979650516070532202588919808789360193077850036648934735294991801778287113580952090592524840189447159175845337581393982364011007044500439842586894123864911739273941998451633687294347968532397426341719361493222108923443133925710719385479121794380969668377669419305731211247572633749232090222660917486476870589614698578130517549078950771518174470005654344220860348422653076834566687922018571660425074544721945470224490646669007020435100832298497266148622810696893602728232484886059007801471197495153083474824430603531926309382159467017581100199959622531405757948291713057383181773610079094216661651361307878797482359298794168348562393147776676775567139130899934979168729596580510114917936212840772697845615141637114499898298541502983205479882692874409713657471041486326773141002843167583837002092169275342866036757493808828562867336985542653664015597658734811085411756949003336051880071025223868640385637718560569816640259752663323165148880514611453349424811900490564296929605281956349552392415187797997911116008000062168435279661189096092162035656742240206700665988013110626651033668450018286851184590963756571683464900981373308180774359757917088265561754377431043521680234295084305184271167203589607112969477251793141662776175180789628733677183779867215987111436041601418940751371720635186005976026600310732472122037827829543537418034137950313835348940417189463495389399190951921565357550226082696240800571062851323782840128838829945998155111808949291001478675411201105446720949545352737037494352119195803617979953686390859326200503813051333283459375930569275595870634120013950272093657317884993366640193878824582958105092744105341007609290951302178483817034487244962376182260284982561798895700746426027020302371107150288446107852040598068927037562024208247891967611307230992795395424809891772359847769602243121883740021920103276959907065833826239035682156272538240880265458935404611610894224209389233437804791458632602277635705439557195158749177692839045848764728971514468913957927484173936108241667568225031848645785317628976298985525933446725864650460211100821033967419901822028567115644841195485367319949575437158460504233773163826941870308791816822904329969626342051819246816744319720662297712339074158307278682189195433103268299453880104300625415934991904556950104187112414475182691008523136767880548179789161078864885217090501152509183585484850500460590632141655364876697772717730628003330279484275380571167337451185636801630110604268133138132739268091682693164010378051900630724449113276859685099778200240472590046371216005439288738373766839214449956292759392801795785808197359400788688782793882132309311366854475728913710987160158449124827593673194515532635270285780152643750606717959791905777058868816325935779360157857713055024370043390211356036109608109187148364861921339710313707833325227971677187205269826983652135492425110263375776978606149125878337414832930708152833028332071659687824167571475098143348365692733142409470336078226705927211345637290291012117758516439192972204792843458593526743910662342845436330392999157781807500216528825672652539533311926279671664214026434836390509731853542652186102403544886720618442081746315795957264134849744063110408484380010424241481693559986683067488337303221698486985243505123697916568167576140623301383227073145785017235229060899357595519877646560942600812645728078629469837050514595764692355262628846908530680229351615861002020834873786109469361037235374554466552662590282070402317188439812755380631479387328289805568580789923803368933275822116229110206241741852992042505521790934217553745908668970405050472935871302158756487839248569528732498576040798158636706382477564323821894763207827124949336302585665794298368789749608232437156813719998547370571575941479481472522343731292986516261658867640923035070163913411266601432709020400701350569204746946429854423810602344828053270271325859003791850282122598285231545205478885619534760854674737966009587709776521054560729228079779124112143280818909230439555089895849845665138583171443242005992720394014053373559528938212322158542650750922899905262549275497102447001345216544558857809185920862313239874650489535781189526202548410428531711619287497217475947938882683979888745280921305275437612479268533282635949995292880998110625509955042522830148975907034528780115262761367023367230824291413295793690603900322123953401176786909228265159140888782605419821039039491266738586713548500565093453485670974034849923920604398494761643024947025090267479591776722345896056709135208157373736096666884550402775755224903143874376738953459323727293774430728474357832365268471164484126756522456746199921197931835933193174512302977856300101501433548518218595626897339852257484910194206196311960311047083210391490034023929333690918712195549727317463981060312669370035527222377709165063337785591424080619221578134679845223842396009249994681488530662098459521411987491111303545486606299096400809809794971356662656966912763095793835191585589841533935870528346558102463882029932384821870315081567132703641693194280367758144560283635561379159269235250728410955613117617745306858007935575744532664280896370944411587170632341804288512973107378849308581754718342098453507571088133421697516257427691937720171457203833221839827455334407606104040134881261244665218627927096636360394411104077979061433646230577452643763280357561105647142208112962420695687064122558579405925761761172992824532696961367851889490235001004993044614730050594945586325967515158334850918720601476247173084102034129191593700908102493758982266687229331116608110165031000751481476095433608291398541031158166473161048020085758644878743573259218417087499194738599534769365733087012395690798451187475496027917821634462610556621140140571934545978385333346543395349294339338201083559514781162999575201052624450827310143004306815778678653486281261016664658607854945751391564592342958448114494890107611468847699142396394339479697934643145746388610742323011412550074361890095957479737834966554244559680262432131566221440954423053648070815998599644412154319627235318882959191646193176463705497735904267750955776573970393548016349284340146869429903301301204226238863651124991344071952337793602740557196857144446796006083047831289029522722507643255739755691417280289733792899941865776275678204392468998407969596343738855856507480323624883295745338469799311870655759320643978696927336685848651721638574421337097526430618321320111343638043269251074520968404458606669936480642830324866242438618557848863330527810759970401723438055358924065461236291410283802424137693084925528172019580906798037511090771622916358372154602002632787613239194205071104915955297145387787128235276829889273182363573191684319672223273294515223696200089282768543771341391920463727434535610590730147965300841435839541204162716299015500421989669283230266869050051401571885159894910366943322165641638797508114199194366283770806775867672748763721894299894343801699434880810910784783515729316609667425308385938381959316812408858744262624933134188734154022192836226851187031652773883713998981522245347031326751951826636385027079912742678782612618086373892897682663030292413006654037308422014288080891517193372412052366854226444323977339897102431997569234017574021998029721613734426544886463653929490150123565936317704152412894324944162229370671688921943342121539788226160529561665826750017568066918334167977300983642189530769213419852815569286543298704572733897563971124841538589049774744484844491400055819282420509979500498866196335280729947959899059050371147338706065498422814985407480864710708707172973426315900217206225826458531276574677564779506818966731895273017884247023658067210596624228905280620312303380575432023062843360911165917845789728692144187466658612243068317065221941559380743461306571583477427441017124761526376089646042767305452629798527877616567199476153434509022229540023986419914357644617039202503163819506875960002666086722605444998239132374247967667940391455969285663466368554931263397168830753543427011434331798532460071461694918404215346765586172443345720161963266396377198484186335595161848007579802791101328144847935791518194646859666466834967443041624116570493656070036699163683074401251532767772349843007892824077476515807527290667091581024322294494761947741010198583491279165919578826033554033921526239804685924566604530927516311232199255780940816451856290049382633593244931267144579544060066808793495367217134673592950269351613026334551265989111531439428424813700580222142139916293023292720035632513913622602568947364341145147989556609621544690602177586808742208200604285105335465263461473685397548667233753823158332316470365701888946303809124231880442001008756219658372060016372643353454852276782620764688552634308298161795834708845553309592091711942923441016941061542017163012236705727622962759359020243971218737059284348763414439831239183482177924535387793931633577729656031584387763762727079192936849022117928094271244287992910825979834968917236822458331213268975324231962221219522718225921743658773273533142534811857263819978755904196334259162232695324389381052185155936674574411969978813425169404937672412267688459517597753791412060695421851721336708167758586116852009618573840842641976217282779928260818032871841238468157749417028791395437304121656478385206041895093930123805664061273656398352194379788213189115798285088384352656272296538672705779181463755566828270740808696062513965400088751773699309403773573368610970149841596222577351699031406083462726588530448251612606680638357584500737859897345385883750602869396401028863807913603990839931835611788135782223736463632953696756952235107797029593012412015235081906008941515992427778532092850967863880715448955750237460266486405630979504011705567553748157048089052208150080188116659256684042561367272573697676277533378945789187384161997231039846752693553446577439436299606869188377407994729570393743692183944354561105505137122488762862492643931926179887358142280750958110502992373678981348605990434367294926816314659377667016517511753576537287896470578688161374322039088605510262586648365210448559622654979913998342223053387860058519337654905042981065219404634787462458421094012815378323259103093355344192227128862570158895097854891570409833135464415139143022750611669894380799815844881147865773537429832990902830901586449410184663666242755080998138384660410035917324382474983903760912285727429941440214180833378053925210499277862800585748631971565203484987630566690754258416055389188887647076200635994765739285783300428004866366683789540658923986936411069844843594795251234380349765804224666244946035750533268346400587608359113529960424161646714393348470832224994763859768051027256513977731418583964895569721817598241924114955507378742026764899160959551554973063613777662484717178249295418769647551622630497795754116360996222912271175094072460579997297915283974795979936821560579336064827856465773401836259007740724110701039958443236762305952053202456975268221890236284153437305622105154918758291311175095691734994305205543815865959758827633095227390475389611697862337904860275239591861418384076558833105533229005011960120147691606579875277178798482592700647423211267149975675362148219780623299981472846985974686072117766428198581782836671242912153858236947911565596176932774075741279718211681344712649978890322549831786203681042173198346610825460051372583847084406240906667687547140196435414684947448924729592003585984936061193370025218025591067987862112354307952123505534367461179281334389833882835827045722671522046121680032387508591143792015910436586842274399018782828152248618830390145115498891334880391155285437574143633792163706174580802268920513675653423145620565625160304977445223875542397702807769129377066202256728077214445544962401474925843341342269388626076971823006307859485926624041070195471163302466234225343016411301908389051951949809942468813280374458974111565240138069364104687430742478106051489125306816903501121965103309299826840486611262642265562626247245130610279785253123350988033534247831266996106583737658595441115173095510716449776889008592320789027878818698815001135832814994629370268523107979073985593026349926327187674292407714963000253442444927162249347674246631798077080554412042692636414797182939969725266907910102798805025224786457664984896283839470571899649572589172511182715784684523949161852928725191801857325716874798895356339431276648289467373163766576185870039424278221394803906375668797006588853146649773596209665246843880868784017293787272573589166212523662785979931834028276332385788747212048032520587640614124020634981252122126657566529585476406894985114738035225128020196715984339675361866030222999153503906524708285161166890783325722505884129376170097804078887461016745570684293296615617883534212567857149630866011470471024944639031137643089970644905279647946935303161276831093659171204055430189028207686457549563032506943460330829003129019874425603988836244807335432117844115740198090650039871186987598249228532914779489985157069432474085572130573837710883594029281803189208007283498357152846836099957320949070507184839676137206610751898139452639217967995725417525429151878380335494877528259165349257909592957368621853313962931617019426501704465633503343705983499728873379726683529002143770918196343185870361625798791558643771979329784025655707415315209324784566493710083790273499216879460635133669146848031726138806847840449795586292998789925789381535368376153966233008064784673490597555346738604765267567900953892349822617050155143551804630510523601933805533748453697996599579819653565255877683094374152717374549670591736417134907520024404193685986967377211364246124536398000142335812965046286560567579052640969900223766971216651391287970323041691928105158528964351280907326360154669314376960422836211476360456333805167992063554608836773122497908631237521311997909241448571309720621796367496675387635014148679593103885075567731527650863729311186898885507269037539265087955526355103001944127872357126473715184875410105557760605930657546406862957205128182019958062355893432087701888074651384490925935151037137866100239443342615286514087158724114851495041040469991529419848993501491808768785579220191707656687573384762641324070305055135559533539340017351794321605529536767843170894707485521038362748456760275880902296933686069038899989317539723943122367891595543265386177224160410030774781655782777060261830283154633949158904888003105371414566005116343642476617231461311321303949887136844873860000683103258420658845813661908141452831144669793820339592650447711938154624933865892877612319277442978351181548174214097175063445944860884227848748040778351414201845934234879360330317241405859630826502182987755994159731346705965926173462379722559403789640502735611362469232706006592632687555413141546820986401135685038739542903263163161205697142796388095642999754481122438341310146219964328915434761886372234210466538289931340830389331872079871751968535129216107253661571864881020505566629776020971576029159200604486916031211971065537993780149270401856837629086940066484194217599553935803301114790230054150589212480704125386978030811109225303717114272374388767568190406856977034552062953679325224545902184082806882956237686524143388544110415925950638376441859133911505546522674743611356814434241042168981766465396679600124289639334576828499105101329395417086408466436330085672452013777451635869333903948568607919162043184818644474193492507656789463359900956922960589761774408683982136241532156652357901835258918380677613610786686217328780133577993481810126040330268153951054535989329109576252687364749883901723404722198686758642944988875154804104590977585131774085227138150407490094769780570377830961556295961860632175167627329025888233495399327972280058827788541486398156721365524889585665129787769086004044481241862756080774580660971505795536204261257993133341656766804098874706264066577933310035973818481609309858924911399263175079706267918844991614590872089671531701476741069825235469490940226879592105593582859481296240651778660217502553601193301416752328178421270945445023147283445097274144391298455105191776072121474078117287918539873393305830313825083851401107643746324941132728040849048919825258667226345199629189153632978603477462516021380873180042199526677663111067474393430016482655685115022264335836950666993746148294878839880348551334203776476516688071629360360128236349394665271013862338829350750858191596261419718080913568251831075946574213960681060738133102699676837400262736876990178202170337735577057156393622461603118994549595743430360881167049870127917018264597943220174211717817402450010821750179951262484239101155177694411017882617904998504432890465596628080515909243823234831395413802487565182021013270791616183631329741617971256898776234486513599126876127432018474573207688341063510996596992294906305131587146286497881695625932320530095359349464364416158363986887819809809123177205779303365203528521783001190707588939326720436068318474252621479234919403099024825828406091910375156085957740515908328424618282761108239099905858467493125724158473539909311909428308984689379243366983935101651441358852668308424291092192895842657932303403877960995570224668223188808067103293805889866579127765575923440118284173911329444746159471085141404122438922056492433036053582701565149967556653039752165889151019078757160925851192351745580496038115090008171603471059316979852969151257953538691154750604136917879387991098745132542479570166677790836540422215078830445727661056020775571228475917618060839880954050513000876613396262584068696815428003735027711494301415590993113957308747541125592407511273172515896916446996129863615658261747660903072420220686019488528706267352071498495579280379504753482189198356521324409303968826585354993263706296848059712972838955238866024666256324599180349210945985234604337583643741145012912078906119423206963607067811438965787826908731034028288619539597389988325178543602335200543044164655834767803629898621472789695487857904999623823914718432222092268641151815182388718781498162821893801332283649010318550960524121224829766406262663942004670956151351168621789382985287786122333337414938370969188195875332360639663625509366291914572564331034852128384563160828490841764768717832642677301361945996110858079122484030927253801887263073938714100070463851718855070161470819580234199709219043362341587635902508002383695672439758107107935610402390973252626117631489905618841533264175244991320074096327760452434894661978634875307833553579481651921757560506234891271591884355393643084134739760720183767791249921062143955922729176238702020012108827023043022031642464173189489358006071522793046747479884588692000146769392356797775389780346272816138651112742866590627474102164157788698737780621134416828455192063297346819154068484535733005021279752199962052867983608149118848668862809064527020763137215473583233866378247619103461108119960850168538100690241496307952256877503842231450900300452008763591525973773312520925388813132743494844013301816753908163342651276351227967755932009761381768282518987742461801148778956681310770211648801023972280171061981817071393048982174572678544385208661694911108248953963088134316108583085823649052293938253766578085486443467966672869920774789717850813719646844242143591559527930087188263071136906111982857406602835044579470998014585908692390310624134352172863447452472744158826924643000576022649903387229629832554694553075771206974443462322575745752802401514494184324356037907136582269812033057447297339975510561505444551596459348781579792480639497504908570186205581425567805129394602253435141489976126995976316512334244893499970882452216610095144749217966617073100527788986526546135674023265887443836179640191706603267031002047196780731489645918034706721773339734302936627947463485318413402038852019891749477140104839861157389397804835303959793882374317040475715863977859314348175050397068732145758706991083924698204564276761971697064374300374363922438808738749161127823803679916666319428118053541977234364474141843942288107369541146578050502762185642473824665765370661795102230072209373842899926410865586906730998719296924756634969149764867027846070124484302501933630888091776886304519805245474361369954897009530500542257358916404226176929035628004722264797597016046468616368714350684137500490505402419248473865698885579650138687201857248898287705646729124514635713522983173143774394991534341714766469853201102192959584557867138641954911415716608421246792134859881732641769890637560189253823702145086889029684041896871655518276208731462778420532428610057926090807658417478527451781347886357710470873944006889382907619538404577385193896487049465445163915921565457455316012813829266470373904621689118814555772210070441629143230400966988265398750543028741809972345456197960911011085262136153147944668559816980271134446166572566455064743413480413290995146034238505189694191160219475039160645180704966408166397977128761292484393835394682505069757977181261579015609223204104973567788215619995449523387728153128673130724491684773027985786841477311940635667184072986738826978202080289159777657188589667938800425717499377911117302585690346705431522534933863849522166509512586448794902422782419208869132225383704873354391206338636449255748055443119340005117806807446511196201776151112293084721075232674192027194002135812139324842372362328742995457243427528771986821050488840896515293302672797697087837201791618529344274594162475085495286709490467174702762282102732736271208952497998031584012407772302348926662741354194421383596732901426585323001771021891095997876390368335074307312668574489597425402133139775990395054124127439168017501288481140592184317431050636549032934789481894756849212571357036437264660522393299949205659069837416471226322392116976548460954484639513511678567992285610884414630296752133169729434783555867516003063568670837579722239969725331223920664224709927187746822472710279223344231950802606813105563714550586655322512868241286766946446167906726593865955800947818084434863514552646613070015313893682063126391373456081442155559541565015308328475740591209687812875724355465231793482611636804334237953022652938162923792536322039311470918134295594072301363422407264654285161672341080243443082756712392295934251930307377985211759628795554731233193458873194713885256225339252658937092668797626212169235134269743637384049431787459751050194918112306374703311541706192927194930697301761389505089648750014724948559545487621979103290098672555203238489114064312182092192116755851881944464491796756464738336024105947121598379035639853903942615129500283937393935774212152611604108297675891705715841878551480231471785684824374829540122855649146773626483283967438522726590937702417817152954913551074683618756933713477053310214591070668481095091965245375834080732955672041229899511227705244951398463760203556702958674951422701819553754560983136998744347637897257546324995873748057886018438070358963414588051509015254256998106462201128478733939483365295980028650992398732703786390764682867047636678452719128151337569847223166864676898825445751922766381334090002597081846091281048754573795228704855179685210357129450491399952844490252136538075068143436451694447896895970895786834957403133114778777351045375869278218163615376886660276412593313672901497866162527637275906292950416669530275414450669098949667353042000324600538794619991096471119676812305339465772017632246588436121497575554492551225472341081142045851970756175501746159016468616174081862214301595627781163179753310860611595256945134800490423808130157474976584522347484822320515158903580919360366645599493835212892893448859052503643443657569447625333254424603274103814402899485381492923636432998076434167833514117400501901077059401245231809080661886432475682598584959320618336045360198664944820822041452775915368124336614848392014693193150483897762609521935134852734577575352293290461222749268957243522676026958782647794459138267381880943883957308148341471511222280283925734180126027933409272736176900110980740842988226336991185260630688332157134481188125299415804934844177486406182032849772845075547967302887669099301933179078731111106346067867693084754183162530543015370395896917490884321151853175337874855534980011332345772979303188556596361444707449374558802383118624053074398511986761060422323359708536704432705410150698024412794153862190816610899965149288392272795440177273367069241431405462414614816660197147809066353911784060249112567090617023351565352688206939819026510434661168685009080680918552996396524043196011630715582396090549581640060781669866578021593640080912084846348156435190124455822101872876941237598225882842834697165418264560947531028068092382056774340567213622881583704989900138346895129314164416445958654492446853010990924641413403832183714639591447942966858370030503826893639389329441482021073854049781578417183394288320953979794899963268081058735185577195903043189793639168227405918575571009376669028208932984150555045861630938868306793395301971472147358116326852484997197725759513668720066926130723315414673625782661642016034386963181533482608973358037690586445739958204663722487231229107868254220079929484504093937770953083848263403226995677905646418137455980175231358763393639073640118957738698742034618941989348199343118268139911861187030808486120438835823359754799483419535391835143882944279841981099292812006863169958519572205664865213027285724508989569589316206595578604333178992320967902833045324924739894112885612094122335491829521679697701162616645938094277955091177827119274805306903296260443516595213422943889067165931558392319152880769172584533340759099705199915385348872588349799838372345840442752868761327603497360162520073065466429820589150941859911337598516074310214849087171449784298088407927745445633137014002130765860620793259441916600825599127716178413348542340851385685208018128728368055139736583404105356142714976272369644243297768165951759832933034704912978875155336288689020191884958685488977137938622431356411534490939177490520595789657584578507260611436403210075198292028835354817584875143541627794439299273222987132500938314255629277349838693446899217053526268780210794072166241624859082560690184259352421982838502739835554021781281127589339156202534550777014440755652935885755632946248171072334793319808411536152704703432340065468828804230564899517755705049805044850954385294602826839261287328337384966413978833509754999912382860547807261500958218590413641740065140644140037443972191990261149969347491894959933021358619865660504846808495300504751441438830555259759554049727671632790951618703661586294051426470450829271019982874219180603825277015653344546878657503990748107383712473705996320832462650522035782190852787592948144758502157546261089100988526814725834699744551187914617607502146815157739769896036587914462945196246642658451629139243576580517180413277770935323020937131006005658101203012035317337655583991165199299863004357211566731946137189114337165357706016772416456083681071677132632246307450434700776704942488442439970979226337117987677481477719246390498135148817035788013134822826077959983434191674683680050325967232159131008073136581375228869764012688088618045917207246592751338072193908825454248083881448099563323184574006328750501556586808861480712173352023998119870960348522248002395347093771233944448643312212879355199182575738284138033656513872929608854399402333081989573444959271158112761361722754686759918653788420262106788766476800356863166331731170138636150400754100853377308440408700119310998095456493426458182317007164303115032472974551547696575666718630731917806063269190221558518985344337777999385930925835038341815244735336522954917238924975664794320885116329891686438236751191052002942855336205542993966166168750756912102162502051629107657621417838340608931247855217007145780684501835873306856389459439744719407380689352338091743160669298897419193466543383346034246564424131681772530515311330127347576982734214346317507303345912228804040690490757569945488371951108946254397777011070259391826107809114542988972675696011498869534965498855592390558194686728578696363513356363710425270633688806591922925375125767426149335895485180730418492712519592806702458445637387396727865899632225289105408935495846680401539765685564005789949890673356338008102102100588725718373155185894062955111207286665489769010337094461198804611119584312475454657853941965123692007918729756084475142017296286459867826140452762386996082676188987618112749286517489031338749826757417203643075567340671262052802460745972726341590221037882978838054776456694539097573931920497064897180306030071735510008879376258377673846254060220337837337265428568483260764520974657635603081690636004740005388752289250884595769553154842277377062053510758107453493204239743431665261006139626906578406149145009058015920459793295431317938853096896354134090081719314638015586861053254330246514138596510506152226929730648936468676548001437035639550815542394450151248875333457695191119033821461715354112578295287617108743120863222747364452235657088412002346597114631220275102378134102248174632595468526149083648687526092344413406790125362878157483034714815938592860593860607227428247355880018197485671299079825888109456448134966774992252775703546432643767851761459883473755384653603403952331639874856001113612523773289162084869464831766077274225385836165089226911058377840797968101211557064284351511904595386946549650752991845101721460910484232168378378406085519637165119089405196796314199968181139466865992436347334991674523550130028157077219765547266548523423387306208889254297367620506644706246129617952686063594036635347109571640784810098626667064668666063562737244965191534600584304122714997146450687875473897547224271861801236096186947870620312004276364457515582185132031880333724830099746057724060825959875744095580408974520930702286058710855934691987632315570451588278155659078380150036715687210304681884525391524133113875715283290707395754729734003228163399414973725359718554389958659153401408717160253100413601861404917768678658124993136577152427074946116834522712224216462098989262798678069392229196793497976688576197995387796583425008654877105314611988697576658162325729270463206150656032222734764030988627066777468318996094665169455903689956687799850417898269390540538757874093215659174277877548227578639597499818284014631405874671136645862839889193076459329202248708613258701808106305643417834878442925803600455133317205022835021929390453829654629226016134723844235500550417683698855099654186206908933047992146038205304876212454903150351810134930461564625581822298576197881326250392535081095680314002369267347881546009000848768876228150083640674745212373015488732279834420390409884867662518988544653879283347617558706980019422860634707222324130379819904938902411771988075391240480826666743418539904366007014177321779782573363271955469918396705019026328681855352892000183585915472659844666935048821472081516845541920148679249603061735525857331973717402481361801762381198247154055360568339456843870266150453074588872796327386518734252801681512925807957526387108654527891473201158263726282502543464776778297608274646279356132920579334783560438963274304384060343113684033163850441483823553428490168915323736092309492818096812688793200661138565621513313225593258916209440517917452040931774505472030065312784238525326972934403360744030884881473239443480656783740374700147946739790147350004644662740867038349175798349463909621645859727529722869671232928214181869423850094648707721450905638257402286133326306925576185301402969861220160841068828152571921682631340329360365098791280372267953728427398189456320171000048749174645176203462545366032533449323055460817482188572171951419324618704187352288340927190155082868597837648809453442361402529149017699123956154997598587642745981505089313926541458936033287488351459310145036962695923010880843870244939022625117303077371696809024445279990789070730787148776698964051340722274307929361003344343844400009102702888414255842091958819561784031781907321006595357167340959428906256353429476183140942680268746058148408123216690753842572716393170733944083758926375899630675712355424585362807263092680611564306123137482614274562299047699914206525964762470318136261917444920981258630372429244967247271939637823725530410023051987984016994217990871850859152683452613504829308205267968337232306973535757844666918973409715125290233752081899787954780448215147665676074950452738865799672130338375470178701526385201865944292339173161107860466760340337992702385050586756538690858181368453340729268650803360612140859118467409093577521046182679111036357308297786812013920751331629876305401115272400627174140224730520531853442699474291597206998841580027211251116775000225458385056119817432899921024224817920205994219801569673417495257410134209173975850029522232762164326979623329738518050493897750580906412353507434557156366403829320397374004179668710345753002899532198643234820224820064289131207388658499117911937499608262022373267096502149175553071812077884462517391028736180619002317653953265793334111996324676971678614384542573539970778564101558394342278076684040087670399064953251509978716328117925777342490099733296211772513667273707705928094668271388938853424584433374207067911822570539683383124082165067284684806429484422872439899439393757909919933744061914708680047279713769656871670454915583803043376381424965008627664843814194468196149876889581806915379449322783885992108361293309270607977945907156245685348641839939925554715609768620573198237708403842744237472483096023825091811190052026987716874743463911388664235514461829805365078403709848698992061796948651005922104474175800451639068906902063201248222035476079151513887819070261142170589206831198212669472071445837548440533307528664704367345869920150218708461099609437432213224129786692860896365297782055949512461212984114659620463386218599311791103147155546658618732163820568021622277732485518515335905113609667952706715793305265433420209247406827148066639377518037114356906809170795172405881607392893800194864827760782459157069311148246044108756845490007736809546488306923620504934590945720263470093742459897616990513279541761062982881343184986654931757309841938619806913930497873190652277641754059994143940907484709526392092487901043056476748917915875141636970852045580456167815959919786115564562505703142377398461863077757193747675984474889492760402227374904173834286700608521794130705126708921480178590729507121901397411540633907754668329868168142675507031669962418726381466816611293680043843964471585801480844156488036825142942254857294603869073260002457290866496929724495022952464817823002371840366715716637719653695373994256171122710547699674760436284816480521910137305583138932673802899081672424963285806334374472814859616079204812056382349056645529579216214960225504320943312438266241982280847280729670504288610875296492983578762264747118842325235729031033091357464093789091757133190391626945567014829065770203876404472036036650029320093699544760019032175966581149870624496173919103297884815894918891462732298976726181811591068780505413116617040631095313173286682548541305888435313138957212205056238323574552545077856262332260046436517628466558794403302298095616010584892360957948328002749446437433017319354996993117870218236399822751800699043596365621394815727641012690556987345835071231797725445887659029943680768838603979400434630007121272367597275838284809629564372781601281357008813743603794754932973961563524004046491215953679283366836647826197133884646459297592851915115389380455810908770056230985946316380560426300922744463838008397112616140434828800061444025086723914189821960685123440200719774209871141348663698419376131151241405820294097412494828680094023882213248997380058395932458327212850664251892788543429040194647663696257071963920188672770799309654713601694621560335032542009159650235777523964758170877798205687905735558511064955383660315683052581250147194282924423155190328012810081725204817984393421818629996946242011126709946529331910303571174106096987844866159783626667515550445264716877990989571452318405996146940877300377349229499834018151717152346953657266436495388301256277935266815615582640292400420223978763253608305659534826042796642068738507434823371894085390133464836723997270559123967116103331290106525292112024636821753796733402590674631437042204690634043327486407784245247380577258761502654819884505561286139430464931872167545687347619678656505448723348517236585097214869366164357605171236881657492762342969225573349746988782873042449448756836226285130397964614078277602049963136734321846689892741894980081425866446071990276968102332710983116854108773302759370598733417040192553594253961076519731726076602808710512763426633240624290440537642169373849315971210494841879039649492970619300030633799460121385970749072715178292634037635281408528581437643325493177148312761154504061733229173369629975738665418538605260985159933263510528756218929911026499709141423040264947246049997183700397829000100250140813491027629584622699294561878927929665654350103222566275177972389855065660581695724218487872029579979859736179345519431061649141053027839405450781870531360228767700825119728182493235532848010503080667905777476442719526961402832296621769051428536472546534663423707825831750089989519047311169269086591422785983853646161562403218486476952571382268965040403562701840848813467265654341064983675797284552658217104372850845400895668345614148719613492323965617389143287181254465621133945634806528949767019340381808093060327838033653889704113681299896302715333057630462996520595274975893956976038518092825300268996771071887936333068994721533990038290700213348267134537199699989379842262985950069886871509758269550962893925162220799487507713238351254359935538309787489691240263020176116999994247133954106446138841289496899171295603754271824405434552176943479988911764594226652700936583846761342249909138448827724180556205290982097107309906162508235759859949404425478660997551692505474973360566826607145928297454995123423347831419740240561946644859680024560095668659129667096125277178415309677241706535571842903624404426950359475262939411445454867626883438972756508832844330654353453492262882454485975541851886647901520958656175513521000306303869697419862837307993408010134398213777116459599115620775903502486898176395022375563821046791359941180081467492803333888822085182181206688837765651526987485951318184968064919202949071959488256569916357931092741573916397285754857825993792015581644094996127142398775119380341466781997332294177911653450313537035979049975047475330530585976655820187447853697224434933547528688241888988951164395520397490903582532687851349365328546648179887980570808760421555622326326856325885474420026266869763580103909039565123179672488801942144672445948751817163746882687683903304973131847417324157546142998358099143260526967679884907058776188576136089669185340349255245498058705314134968097700815293540820137888154029553289524769037470896437476600642960529023362650350390499306842437018182187029435192661195142397597205769813174417559055773734552175218329589914692703000904256029273726795516991219485574438388181968728629365233613025093621442068641987041255438023678041636728823591492289033055064842856339798439933828936407184683123988699930184131268343661838471333817154770902778755931106475356526781515613360730672918977618352888951924228166731375993455751400255189923363478274939613750949788766592112373660160724479514127109728160012735776622254048437725478705881918932087874490968689217958987924013326822645901025930425764861654453055655830127573916539955373977019780892529553895942071533696430625154622183600651670016181873200113300226735534711410479733756874377400409023831943824841851545551777096243670979458466767797484762424061633500661416777696636821632806430062929524287655637507359980139148116211081008540446111722590727557690278922828867919006345281685194196605239086812936607683086330141633290292173206589654007368142259760902213373556795162185107623397189400922948036789666267346714444651983367232166075512905797743244599811127025776649762511828255444071804839938136488935258020024292979241256330802365400962073263803991065054779964640347911265762162715074068793911858544849310839922808851506572356204018829970294259763228233922974602027899452414985899669073797051049437083682207376060554446324083721173952411200877492801762843865629854569172063587946522618952592205782200968445325666708400720566965234928865436723562320959458857261699270101958757353428944202877256987434434173565008481557336718114751931890349257470220535387194767313564415618387765257077241289680308770007527775880652669988685450690540725361897242485452006727564414168305368924957987064292972472035813729394759184573040167595619602302304947416536383112935199185682909094449077911508265862649550666429348827527722671757133093961944641205398307194613538675312661242649026357855639352454789566177847427594968527436402506025482350869791904171258347828841081850717757784230620976922054450281867157957069474885140570894634200235357145120132969404970902682751385489903633787129139279051285854820926249773613889984440547163627968033129859784401203907924684033170671188605463937642945523407253367727940884740205953391764084079261759479913257154409290688619330771240954053433154163548817248013139071812812630745080791030382396959343252309269285991370152879939735274789111862125555261742336396586741379759610861338987187720356509169805134107514375120078213672193614821099929447574558866199213729401208609600145603568574218749511177654763275022389303686923117545835815675437599962854262597729009414424580595736788926217118317536690761971291282127692786491671051786619454349223940331609515337386394830015002224933077175410555174013744483374411835647023903057340256422917036963881827971676047799279983026823020676041365638505652132163612632460330983632695652038377916652585699177957650305777418667073589039570279799593760284349592277565498350582722796107707473345499120438099613713171629478154094447107395040883136593342960518886085589280145116386385568351481590123381544302532606751584110101765932482424649756217371782134911361045902430718697930647891156862410723112501919577322542391650509713208194554811364857120504803100896655252784281269222999492273849335959087892985104637014334695479161441559475147441575734160883939318831440267910172563100786438925914475949117785196208523577170375268566928000609664694599510534490928546734809452422860940071666948447646276833901508936260054642001477445995010844373120301830571936717204553272366295622811012334863770445101612622938422947041722217839084366753913719297498208945100172783988002404881045865512528590314110458403384475694707374670435496039218179596954294624308909252767776387659555045199075067830345071392699956342723528152373610793652579101051262625776274247061896975202706786191987754810648324922266302151573551597738765710295676154833344475993944372278601927249485462126237201591418591200048300492282421177781523244037266556527500355256067671963685401336467501879957382416276913764507293067524892504045973046040884760907857124890680303707345376795524851858951369855831244942220452813335435540156528926249767634652409580614400739200426639673418998463567918880902804272352115263574021754248626774198553941807163009181364568132476494466001018122621042808306934615743136078725234020469033613860124351101468405087119294699935880111800948961699952036083007426567455549832513749361267016213176315290090264874303201641180973661266592797571872303955903464354041995946626946800861785665609120645757506546107125043335392453738658836444494074546515659586508769469928700694444259845043551087679611613113047180491555133554368121446033024849588619018902904285017949938534702715254144163938365706246886935366596865621073455193548267476855915281799669042974311337229971741276140949955184919002565658507276753133561124488584240712681435189892701362431135637050038170346052336181382865962414089809563531032276676756825712983551213040142894239679811360120191268776362898924819398883381705745578020736500279172306240101691109673035891657400116399314459010395872562589304030455210970237450241791933924084393423041805079341256950312879348622158907478266486626459627022071813652699471537260225625305739002796039352614762384234084007522627939019705244179593963095363419001164857645177122904688348559645982352262439168326955396214905651279683913163028930353083022949042692710346979889116582651331188012856812435791396149068863990276690713213528027283054450301502608355604012592192169758035646725267754124294947351842883901186933231719425983337991934498663827220143852017544916570401225491335741890014431723799897862142274304191276710079287434668435922696234997813509945596267782715320484367585128807324532799825429511241002332923747805883148324399310761709452842080249340281201018152205251544546535794054019829173707043691901775395100554029610986913511115432319546663056079136032696394190974053976191412597307093111149968999063118485474336727134804042773201858793180351987658328663627852164283134072972735073300941989632727458664129349816663691374798228514526307510342140845351837289048966916417072150318002472963415328749921193829196279621341334872167688049144575986114400974904086988586981300352665491944929996038474965653891255085377123155256790731843714328469151154058237634086972639374957169695756395718864328369407617340917381906956059125044631095498787266795426417998845366936738089857761409399544695513533031379432867140439607297864315024099115164977695788766806547808629707648709363336452120114031868557868446736135321780455047972349975825989520857029091838301570088555957347271467948805970618731133781917465354508086226470022581693771338587749333347725326104532006037734426741817909987948250242465287838185930971907584331916839362896046073788284972486786662196523043702589459644745081962975539601762188922228040392119172336699613309819231661542243417195736246064072825358051007247729084196036536046841110554033986807849270572640385489808284364520657322993898837510729554452469229708845805591265888274562150418878167096017354493501515388284745968991503585339092100641247735014160310793049795081837225160824022328382605418030027339994378713445503308822323386696296365175675841457097585259365304041189760554832564084752293115537525620625881315552339319112991575164760900571783082292411302137277713258318613908506612876749172044412449700267256576648768584033035077220577260660236807299314220549981940483366124715031601365446530274820828197946683315960550965164425486853814105522670000572295711857489680462855667424682947255860878178355960897275402378921409701153648184711563848308145037352031964538042590173370672867526223186909662236963828601591573603841741121647992345419717077235975522282190491855312651510287282047234656269552978656233264165269736616959645607093120342552294696579744688974730357592851214802354218911207054948709462498689199050964917626425335195012514062803802840059930160138921063399258113431044077688958936660112650019323609675223799369486530049818827074753797843740177507739674595957266897150962165551365996634760584030557629102726049914732509534517304462555524442866342533826019673646788637582506757692041259842570330779762372144218727732665039508846436732595632917367718410057117774896193623386918406541921730832401586494263080226161090320693553275284854721636362391343156382979257844118307314646252130739874610249383777854969172763389855940688578425656296194895414315469792114179071540091705221940046243254507903881715987970887328945262826598506275759746836629526781172989796039443794024783143970666910744138884976558933426782542097026944732148086489815978730843371933357562557541302135144605229177065725299117015698017439554127838336955161692558271524689226998792840124386604340391859790540488306044647854173617226867525901950246634645568495691882928533043960146065728371502506712873006717007492805223998494074792422526435978674414621633970787472068770611689485127049227316065688529681558700021813835225080860998349916353418205550025490295597907488001022430657082203624804969757907100647068500810181964831572873714740664789968013204249818493756291213110949155846646875854372162532565193463395194197371182238923984375685043731433335061327430669330343404427404865577303434350156274592497605500088964021337074911466784052625523608298533498181644942810987224756104768715582129516477547768031273452058299865835670668354417385883455597775846097080913925465406885003974437974619019070047692288636835486078658529872739408580640075598358007648425062190793599669122479926999177561572885489085247882066621881233297093843901684977603913168737094295597532763569644607337340424194112964458000115056668210689288887726553838708257121419335549703973718518122067612464090945960674865574380545436173365596607713905481534033198950869767344921191854094690794433674114282709345818023598641637122811640380944178945601873644787961358547361068457016352422300063836945042019612596970415893168769900634769145501169690025535766105337592603063872682485636412120121438878201493237533474459108503062658844377514499160057442833401472805040259474131961636186353568704066414654884401776849972228969245009473526515438306178848793703015308931219987319410275538022909384334926569507973579246073505002264876553055843046056150168816332848870272260350766943677096236279248765818979423117612574513020432991536781959021585665839993229080441344391907250616508070784741318434577657316076878341283969664075063452060134035516188733467278249792521135252283273877446407069475997122913132644478141146427535296581862379059315623913520970354579699886444404557352863908317089182220555211030470251915359240577930769007382574925242952373588775751713893032889875032491412312360690866235822918255392789854009171373485009183922298614285960966396709140305082194450918669320793515672470101270336442331525203316483613418964549239497552380682913141753762618215132518542490970205121157130166126159569295518319701833664087701764271553803088158721909794295714491504173732216447515889762635604688258915879662920704754320261455298473857164861387459432589507650335569725420153571708790404436448936136417473926402638520983732332607754775013019266575159934085293322328692223291338257185572894534243670255030347719504015776983323019771217336110130776580355634523867522405840752426862722041136690865722843878241094627065104284899298292290412031275947642567743731489278342041811706423950878935607337532567611943825719469131826884782527809350531406818946228578951310713850093757244125195579204830343963659182408369830104638333924063192215095453016068456616542534805919088142437723079755418127795330243401467338634623218437670796058838830258904688477554760252483406023526021325866150205743790225902667411437145432400261274824806219538627878559024987058597708055439689720547061353938693994228913407356881682520468912624232868829587818611201349510146776387632409861512127068325754984129767764384147080137915318202218904509942708711025222733244441748177672077308785731333080095020282407156446366458169200893567065016889964818951064016049921834528550652944907610887896894683667370476983350041215631947955693024362587743565369624332655112700975355479311032145842791830344957757785774338167981421492030539879613046582454091939868159785703474928549309328829801572283597140805133210649256074148626880641677265066643466380473490828956926858294121676218208618169848787472092659952699574095495332771100381087646317545800043830071960301519288366626894471846252952697826801123078168241688311034751743568211332817395931925644383036487702005289528773220073754135612681259583431575004511585650218486306537101169206868927320770077532492941294837813308207792503020075003313962374080992047087483091869726441326350040943754067790366357356617060830077517026494388787676339880727423632981934734078137062407279120210349302382948004143703414668140062856385931745102863039631652497592444979320405598140998611697030726379560998349555419245170396478099534813104481237032983870402302054620503627666453797876410250953131349994829898110731693741681558698836273312481029850623287474426082350339008669201386515658485140033992060362096392393067485985538655754779958070646231458970905634310004463115066678939370681881446778931169193798709647637031275963044367968323284556935192692644283684489859590246008384288304519817545675398670184901142563461011120855766750501293681647484234737552545878770619204484743925838969143538263648112930332503530456103476737322267781172509946212884996770237422232969248945607570921960933248480775128824715508518325106455858150291980542726818451487921527784871496636891325574296082513056254042927735061244965379138655419500347361906871381546982914278361879900684012971446244767839151672306379099555966150295401278679214412156467066884366547809583116080683890290735215135084329335010112474655704333483591601346962894159326874378683053357234433076781990481961475537112888213648800895491101490612374241551623395202785943625870355907500611451485937482503946022979422737235770236080851163086390859275755244717803563332805797045106325116312673485444307702230204054415065846887269551464144107266393702110583258481424922283360413726417958338126327090527257582607904146475636660045586745882601362026722275847107335697888157683263272469540223925425050431038000970338797589147802651370113902550574609178058232224841434965410920269001183852318942815256619228088677357107741418175441846917950625243340524377693383925493437823103350752139163963117923854124412972788505929318054368362965133083718756761600411509194270611755300329798068300125732981674493161517833150299759363104752402680909033023095371337977353209869263771042847898794678895572533728452347389317857305745080237907818768339232598604304127966198501022089008715845205966045228542161108846419380534299564912013637816680629806522809088079459615375298157303629438052672423294976881581021565207593151595881029311337439476772466549343243528104061723252025130128529931349864430549778738757055782031848168188406873295182888868177262482132360135880601704940438021837519370559222392076775533587830268077204249993209335913289672112530472926534454577549725105965596474328171708156861662883146225859649246636347950098226876206549648189341876169995960408846066016282402796278477889698832191453088326341431708871476593057791359422638928333360706366131878581564491510957790604979679916377196576365160438642632214587849137985090492886959451800736941478272875006117646000559212531010999293765357253206040988690721503887859985981704490249070124854026879458050300697194151099316866366512214011380829011254786428072015338878688780145949495283471740432652377615139851086442107846262794116818052417087347444034692490430238570636148656245907802047987425895980013129082550271368556032100022920680614663192881816034429373516740055080145183397729252309049051012445666068241054778364387783111021973780556214555573764486245408140448622280107894429799069213942890960077077363174820667201519187066897981439383136324116480902292992550606746649773077121321159965233510230453119169590668067229790409329476498184964984020401780117430646294240613067673097707844926083655839355578184452502178691038007684869691383100763938314999586066659610610911545114525919063022463073009746039582916985783060072679824790080710959891612148933479517694823963354052564654973969969674408496325397823751107882796077219401915158686201336669437802264659153858852689761136819164282128904292421745137134172663575002801652963175090824410980311825952150955541035546658349394822353979262753321353477636611904003474124414178424330209358394380666933245518813344616466965986509489038377975907835751733954643899990145150905034965063592116355168296738761566805589770372043398863720191581180527682876658271355833003544880339402892628114623910701947497067691126472630046717327910019053331960273367267854325221437529771809845823956850601005575804710734496197299607422111543969661611844729276820037791943446049106336037063649809760829451915034927930605023694247693502947544859259414840998785798058474074105498298809073116577062280086310212508383501100615548788423120784181045438595916419149092105642424423388640607372143950509504952081510044826194564959877982612996952303386667904552676529847528942976852796947171416159054311459670226957066149581621481561769189890392134422343569182603709280028623198962733632770043133374878813071907911640427260576519152927945080292496971247978431369246037115079485383944281907225248251724930664306762129819549318602751387242477134529101958421416022554314092188680376818699730878715727363853145500187453056625114196544712975795579955789280920897501117506804126900596364420594062524905559616596254967998751716474874670051325421041482059345133128391831242433999863887726179281771108071776748136754228527293064530352359484361849840388082917384941978784547546407724289720958809644947188427158021273341409624786120632629796796553982388510961073023242473589642193519535228227087119389132876423460051604241976659328793317578989095600458396014864794340703179601149119054500965598981012076778147618543679574545886333119443930635082336923856745341854602443202174774202802911186871320175105130012809561390736859039807187521212992198367150239882603607773335704139977594335464981894740638382831322631804455485079716729785895917841043459248646745192145339771625208997821533372630116789862636361939812041555267580856364787237980894529243102748575333390105809249529601943935438500933301541812811406237076952819145995593566584534804113988154815115914541467212021140093578695499129747682080587917586749912370408179821630674024480826309214852969189613756723908188670630135031751636986463309803920453639728504675563545931896155034122666147540027726284062598400997813649589987209959334712424376524360212262887851119706385377039054944314255660523531841200233011523173277531306032536802885939141121195671332659011858496367829125575849464400261811691216521866173845667457757296944148398222090271553031894898252194839722733949789075117540376807043905005046593002500997338426928508330683142118986623333830069519966600949453251826836719152198266198613130910524349737035180207405853455175854697226472272748174622361668722641993197579684621846972465179092110132169078039363492130431847152984206704030779232406347207116156872931394114699652221283443551701353295102067658449062261660324547821584000999768597244233594176918818000428348040738429971081247313324930739488445599589353307707287673067009612722379126451517007539806621010396817911608575049907796439309389291265386808717720312675689672343438667567303089175269226329920854930436361492773198212102736627893381967549800033678508620340551049900950471289853133495683117306563805148030468380137296526529394218801159837195725124272248799199470509948467371036251735515695808456833780252946693322277883329662791978080184209934496344881743522772929163550231113644385181764947659962477780211129346818164962626177425451658965340011742951901702940948836028936736376104653825466982092704633762935273218653176847475241728693021339657041016365927490008661559949279075022467714006067022666212953164454924927438358202582133613201286889281647410837044157448015265183361377036872496369560656414133020437735613922826994625873853554244781833866048498141864126077425195878092463593680411962550991267516239451419375247992994207425278938160456559633856221861108301249065254948659098955770899047864045618817215101400973576496497981445865756527887582037668977960924017216639670979173933822024154490917551189476147893141996902651495962444373739236550392101499238026194534332956059631016946546977310593587276848081718496284136591731168291511181870188346114742246308138986180676485839376433121513779853423177917126522470330703699006408922917896324637699460846753426951087992144166477341909876890054499459332675753659321712816939970973844589570581851239357988795646339028371640408058500196712773735579553030773861654271283044798850538775553234505167055822254870392310098539030956597189095311063120798050501208436344576975601608687473671145013646275460887589048506215900586545175712024551285041320198838421136833255714250317920943179893181090920927061109824286340639350653163364703351946054137917972234827420700749766376670896202921256872440288162746029281747237726063910674801147123142763188366926727432964734086505962922510928938121120131367827841244387831287441503410059677732826903590728272603723561675835529342772650738800209628650595222955525375916419490744244768001600572827349482310047066064062985000602082650506926737158719192697159774850738214797574117276388703417353707206091278958015892287766847136489662537538972306824957606155721257796878357794102649902795553307152475614567358753733275305803577429620122655479978545815091507835942395535217134116541316214126837162912792072185548725689674652434784829635787576776284458378815077051874229899903848880912057911936563590594471951366329370757556316491394559414656799594998867486378673230575159003694483554788672742037384158075190038020401569413757690323826712289076414049354445021665560971437860833414749227379923699936275096148891420034907686894604403675997350761992761555014856002636365441054623228097895045453431558144312763585157764828702619036101385496267938375454109272289019921324238582037787939204944232132799360892786612994521678548818444435867000223032891189219438575947122600819942099610924218155545215648381852642246595048382721075687764481275894503336406847670935401922646192965872882405540467257668952173825515514332394887295157744657652778859873153264938060717055474755545905345732866065157320944292113242436707416218710332208440342353524869315812319261487288862515660522617204212757374980542467627424720356633094488210198829142087462024556772749435862305894527118119080518558331683286666432671334308079017859029589025570138371733340920579882130543099018324193733488893811315586013716550144123164904298988829271401090096631912074140743283286926053256949048634170597647914247142692724494522133531658957258232914914024207662980398896674587695397743647020449308464462311168887724491613711477378928852819985199850364538601013153715037063893003730041344035161410687324129785418506503216464789304260054454513365685252319403282084030028659749701988276049121867746481226271780318121495238141068791496364421175622115915342347370344846771422691958075360026599895429178924382213502597880266404447165433329989203929896993675804771527835427060352107101662904713863002308276068862995466097580606561324745524481233860709531212535650580556708589620188328672237354765160048789929490065840964053021804633337136855898437568290188363000546208185807790099998837678073358687884100347374055469406772366338112416461655393032311830474844152154801740857939856021295130129308169663349741778453436750032522736754858047121231016848463210117002499265710188561284002801869859090943711060524847207469158265515947460725455765875383581648812690361744247319709294454940624546596785779781638046934864068308940563180814048813178219278433397899349560192370323672494496362047663642929141922443494297382586465275937461662813721508024333747615948651483771312087301657493412479055475795806917282960678669014788237475849977573118440750019326384132551772663314341971540205735835104479835697300678248904864088691605671477987718226354973239633079160684299831446117146903850121587596107506176109462046510807525402825267617468380430719590367798678405545040485706546533181758877373159512610582295040166905847852835080559655090854548149771882382900651752842057471163992954227330899890619498446523028551673223158659713836411785321579845326446556614483374617690086106923659852487888626273762332280177327686801805147575917879175042786017659661996859485310129345017185639091764671380115757618879085702571213530943228186489049319367653326487344081539654860531831444340684977507737569589774743389442339548130608573293811397113140981756458325727301234916550380912574179575748517444868789662515275936777265769170292213330392129272499550756826761008396421278774982854393006611555266426494020273835087310695038841441165951509725102873008234369837403181680358672918089136410253287406489392519148778868976841547551296174342436866233093637783401605317877532602711452477712088541231397139189137713467725865313421309131907352181497464804698271935408901250687305987331521423020310551296914353975450074385384525023493910967669223461594442506361011107660479455705561750951199062638118832809217576738253048169048756485662955619609433857728790089358189736478184032977992081673102198381178046237233371220447539155868513821488205394168191971781215342588874156398768464566272716651849739291970055875506809520701124575585017665806050527472669031050276461558220529266854090443317867949871225375329268389666129875895254989301850556922174701789536874128077071977098006998362264348518191002142698530944550139248221277289153427732212386550840801680173968113491357129621303807863391203758637358989458999369247867478828083268201722341116839786759231388211249195548112597473470294146276664775610633661958763836427173788618165573617758258830633896384700331926914186568628327842404597281819396407869748915808361714275847194672648028846813871703207596739387157231583951668019437528486814047767997061484988854894535298417970820471086999907393696911881068071987038881489889293610034148200023889391592418199920192657558881482683133851234120029619764657607287861478522366585564827842254396441224069339584668620385632027281055378804121506128525571499350418924289445877565237568988875854155373902524839024455685083356514139287579019757041118453566826041015199816223559451667823856551540734326208913677753118179699275167471261201189297229019806000325948421537815658512837792845571028870983855404807831186221451102773512683100368550612457371802306800264344675154473176782298057466101896490889681170484126276447422604526562784970506786189493212371965520401848963459184787751096700791091357485256517641658286903182787506294547475307848504491409058628504148469332382339038517236808895191430095964593777214574831424499082134563740989542558017341825308965161164939578915805109297281932299313941641541848001395724972681685679645358291827901922101538838437603354588114026067549034694323353302492247076884096062678402398832622486398045490331447594552134785215859907894804292339696869606662816055959988397985222192429295049736519550128782131433031325403020829528864828784407197740158693939222083515523905830390038989762523448336587132215103536727874188749633143229949926373802248283834541252931483152250626922891637322447474791688729496926118424206792100526225155270028107971935040962680881877768623152911719520382081375481831200892900150050403501908611005070728249984287699929166077596541361630609486553424770581869401801638120289741371541058378278573157527676758971470484748559650778474374781148275338070988812174833694061298562807445492741367725250415209473408072731638464940397295741898315345181678262188159136576228911021040133306926024250258714871278760115961755786009575811359247770138789057720418152758577958324648122063194020996524086058804290239155736989421295197379281588878813886863077735991493931946737721912796377333868511373060554715678662587865225409724588872850080079188842210421323695092677313927659910898489447447599588470467690851702319801120522681718078954449429972267957379821559329747902063950310884186803375764346899012964965880786593642399294864757304247463067444950355636436145440232899075679281156378369988856442837721383034260606626750254404866908267700146120421843056803020124125192798337698038657088233060745912763843197870546639163506023239983127926430782825873388745981333876057787327179475985796352306785688947617197341505328839794565960346325896591224071936767559907995365464974599886921386852968804040578972988788014216003114868671655250520259996351438540178514591586987553824752295108235973538697823816693120008836493208749974160144360520721076127454786698903248709626906948438324784415831257291323540142798802303055453637052132187959928800968353325184953154587792267704640518302064388234358530798499440485119694702691442491085063309978235151409990094663959337904107638203019372157967231362781341569667210928160519306855116057464862281616342035364841967156280276507836852232486892388910998928493717401789567410092664381778375078317188768332792565265936111376061316408874791200425730623528909252777355261806528775674319509292956404611641699944200388163286420553133955930630855431227242801574171206438815673038668648031407054026149661183196852300137601074805960545721401026563712829237724694529516593955357533998059494418923073794685947428526093133865511940978312476817447272838435665315854795088200054581768093293232772940996701881005609371976500423924626694347908276239142407911256638482205314218314913696582797400021124542236797825368114478807427918411262723024135713013771137434674042812582923550948423654245695410607536008152191313240035171761324442690182465352979172614107064875778756858604407344102783820697284499796302854756579330328221160596315104594915262658502553452438092967572698958329086133649895078936017409208195323214433984221675968286641872232943511106689701867130308259882972573768793582505478513549037439587130878813128189669700167035293748813671611702890113519303099066108812548346290038105503299508720583650086016730225496218526941227263130685448107379647273253088696357028038019693380836842323023995788313723833058145601829481303099566815052991890762998864827811912212531758408824910735282178115848996861203018430982423376053598462298352832116501503476644681831840369597783311141411478876430726637022952225717225501218005054785171003357730969291233008976802416645163489006437230702432741655273073629168128006298107007973385895903828925098701191999924143939208831611049774481767998015340935431241874285635115383409872316116818400824983171383450995473616553072931782742953747929567166148101966155867045911639340645576435626092448575086141133902982752420220437846163386833362573375425245816026109444143006799470141206607282602761497497956768404795315685417343110369739978114857610921488142711539838964645489441169358997065668177329945552497431020280201210310020627733361616262006534561026511819642000016651575551830593565151692918966160002912873705987134119279654912211413937285645894121104008646252123956927676052491786103208789693595988993608680473610723283414065986601607493519460239318029123206781084684369672048010604149115663683496313002554769088083580664225292240104697115531150045291747063743956841686663475442593914817613870924300665103463794807179944528864785481805862667151632088527014389845770928025941900390391459450651618628333986859228768871247469677635686590038639022024205332507055854072001156347016651740905833568785104829938746145755566239206328876050684484221716338072463184688418708288050398662433996392371002990451887824323956453463135044694941383909400165960982986923452721116598600787450133721917924665799695289871417254242662885094763534986613380526493909712867389926704983993091215810548260398687911202523844869244413106238091387648533379516650696591606984356723148523597602649885716817775835448388196763804845311837849715782100029043189900195340521653249239625303147825597601875535455447001366785530274989733199355435761776102913046747219159902302111158750984648790506638518334494008701470542673284461240856942773486045205269213581329732530158179130830072732745896460446677586697223539030551959494916219809864063278452844074873800232472203064456640574527621121353519896552576001964520576642327290262676020709684862005291521331596207682248780873659154937710888158547621090419948321892852646525760977504112750768443805470095194389923718860547414312094260972249221004794132747995095323488413936787615971507250616812081157509244286446878061839569007162144402807113735288482744778105605500438854840556382567568494590789921493106178165365372078467065392468834119527461237478510509036112694241143674299610819531009944307107230455631858782501049769496423364882155401143975121765542353168844713014946506487224463745560331307651968257763846910362357514093554846482286761961661573379044367899042039490933638900598097282168201674111261245526133926567484888105173229405010093107535507599535222993933273587509015113331542587668901026375995081264356490261140019280980811097591485792279354307550374175268284648371483874038323715637203261877717576437680457619195411310740314917423226751310918818474926035419549657212855253153722296128883815667823764450781781403111685727756339019537614352525088887488108393199842730790232307656412548453768032536148473691208932469449933090718269675524737571559456804593386401951969938985526200384653822813078182034038101552602332378952432596976845102648908045768666746322360268203356924195083949667830277558913323018724371631621807669004303060017977612168995559327506725995745002599386085507405973191308732512613111838954925164854828975321745813080527025834196412365519793866833213762086205973686197017453071816847615755950187920240848948088968554134836280479391116772429554717968068213728743246945016834906382486706093474728781964268427229627996922822572944835653949229606219797431426728182344552497973175145152915190794655232666868136094352533936567296717222157824643872600089799123314856035123889454027948325875569708595737586365753669992697777544491864389253708847699009237936815364852340878433952360395584540553540801025130789115722363432521871575791352421790246890686983342640316009903702179467977881668614372294744244480112435790270731322782122094966311638566831419346669139832135602912415327196892236813969150405222131843634712437036269885058058332158227197897205855670446512933558212480491381535018844539154911108170489926946542492319127484279130445418930776009460407286263751791520511685481917457097916331010921870718425138109410619238625944669460682346614644579033555095933181176789940404697056705849265576810018817950463097905095301678250418739384418681268245436342261033515751689159794231725170578716241918211499485132514003473833704712681305451959536464874137108037417033057640386175341906622509472370619226990793520927560232945246540486979524465032455849079688259939300313629709902859649352955263335728404778563412545953124836434559863836317304396536005495502952804260239329433156874288451064508722523517752891700289045234172357466919730192326045764936523992964393038120162136453688182315550450382845084125141990845303418026918950369722194592935185061688391824043357742005088703414910554441832001013755129179236178411892779440840833635322741050922429766265051829334413672875147983744115101567848511413114168714983829531610775322922878587359437922852615233744995056938000218572459667107396290000837697780220677820505876817985701339474253998111230373974881277352379926660104588079819627140515593544826622924983028941227622758738003063571489786849795457642947478864842028922482176388361672263008044387883415343867964882980898678097527846835671862853445299994647886271184774254127094919815804570874145728208039502803739711816804385972614508294889198749631390063070728249608149885227065678620873721839809316482328737326758049880010913020187987132063827696246424099002083195707912232484281948309832649956018097236937430126890040788854683986500397392014305115234851909707226300101254352947502022721386561357863792175079246882099766803365502115306929067837234927311401378704248439608838339551230868701847571996925989101281087070370206884842268948041965474093958339933795459842161839327670034379401357249999268963709408117455090878970420101075817373508583537201363900370432010685294534614381836501252220655572500718393048436823789419211609552689049900065023641402895171486281523593779324911815028485138584462190158814767800016412489800085955968252644951783391480125968682897383621010617258277229256319477502617566332004515063035812362771074910827966125337209799686252986337219806538419087894826448723331289216500183825131683025495992169327126616275991375057920426118898607226812253584741479968073566778945908789337346903816270202469223466206592326671567354683002742291778418171846784032428983730871524468373637612341088200518085485405475481686681776870979001398445274761936062555620601572516181115835623105360477364401262344228849988325777497256954082381301435685704650298866594826936265605132835384416079299012042073105132463549426075175203119987688783294139600641355838812521472453826173180211018983698596685300307348775930434048856972814387069616308571463209000331915968588488465391055392158104970080515521865529195398812811320600871785935818785888305592173652098829866765227076102960099557016516848777324673798700279920487601457889870795901543957158164400882222071508427268838967549712804574449905884415390266637767238144948930519639398835976398027932524058709331077488463147446530220505995534564554418472556121704447860401123972388239787692813932694412157474018206749150967271918532994057285390751732072504314739054404621034388072907948906905700604578620977156959440347741861263447113217946881467797192198928036949008953247096136629560827859825756914058029606897115236550155589445041886910596438608171241410545971158298229321208158656030916300035203626164732394045865502914647225319498537456827887816990831005567125070115038433422083511720444586440566015891639182530755850881174637530168922063399871935383333107813427286889495628379064618150305075580922405145535217807420402067175088194542704549941802157729406467560563216301383744955229736764015343998716197056394200612048417520819349025842499341660639663212349854403023597118110264824358938464463744865268710821798846131395219333105541608769822479683629307546230307200793222491981726972192948671708619143029221106826998270522923197431928933712293469332981011893665670840734397920024580579331324008824755177827262193785372723980203729228017134099945641880283054304416874867912247762716384675561372359025647223025266293228749780388007751210504938413723695474241367676113348224970592997106216782584547367650086722414876762155850298697661778114675042137638477810910347727550052173972537506984089132999843147916712370463813409539650891302831575103625086156745776714498849815194541088733832791217741317371397218326553558775201682325202304833187836371254602654313911202120252148603223871469249691869391955740554752331073842502991828616572015310760491210454673600465559180706018253950463949379382864092902327022524069785920848513850966186571351472197099916252745921598247632595856427764323231350289603735865668542810451070310797735258304153484158058584100063089472855301638333689145690658700048952211563157309921500335647710170059735403993959954728079714686364169362624911160216770328422833417529631036000926671553204201299632924673571922196547155030658939583173716912795831222698012055466164081604179816180562615987060456114419616578759219966359952915822065539059139301381718196914375782937479257398149843867009702925129637085361672744203691717215839556633140216084572188177379622282440846453814924193229559991584104864406737355773713107297109183975464649568983575248825859024065394234352544924534157935114839673630066767056364223367775661282074753577939314284465516955448871122028882388940577577014508424643364609411285066210986293528600613209109868185170818483906644040642659765767319539707159210029342161283836637497937016189591939216321991040278008415378064540914502251560270214125178470428809169817320327092164722354301868223258967310606878473121599307007340383381096046956850040625057686103474916141374970583117355076818721766502523111431364434400030810968212949076753324441887935316564157805026070227325162000320405705074410397639313722228810863387111655373453980534462015627122354128971379421635344946391378270860479989365404104970478397712635750274177176386080268699937765530523330874659017348665846180884799560636280342648728378599097829231046657825003990721369361402706887120964035920497096797363982427811235871615826547091439577468396427261122717630776090206455675985690070044238348834011119004915788423158722644444139911183570146577580075850289810623457448122166218825456453605584830567911374160860559117269534027490276181044444951544830338724253202977715676710756699897827020638898590150366163057128237945576472482394061698510555705048122154640080984230236817311612828300260193222057348521313872690340113992701865790926328362732436979110034752023123930501788977048052811309161681571284046512579535373806280865235085194273271862691040608636364482958530622977402856654562515893409907267659183563558799073330820709978922864448293450139354724248801517430933555665449733063591273716910956328614792424945173055525021957981864944401862311174033592334850558350830095110082255746792376645020645571520326835646836214775715787535316093394822254349809454404267640492913334898479464669546544442740943684315471076103392824753374586775124104591226696215869417409125579822607615655235788021308957331482257875563193363573416111297683662948077765664094417255776031267728686714264844336292591227710881017608785375943007392988995301196734813733284758693488678876590039176275074453494649061003356308341780078917645693673877380058409251520934537623156907821190163936984974336927570211621970358649208727790885514367129742676124910367707456085581900075693154128362690019761162666007874906848272677987029559918153171101173658132335241645300214685365441040415467771696486551018322016272176410206881601577615407349967912920259025324804229439118942013165655048738650656618877755775494363468940861338943762569558301188397486640152990976295048454979445703669634827483315531264654181915305728220009823567963883545850431020656960793154355288558832607978189663955204909876089873342407504328127493971439767063769168837182269327783381711014919862557294861435131902612930721433389756274889023874728035430157140452906645867876510646414178136539498452135108634204552064133454928968238809464667941200120800378580819115615695501025669785363875087077970776884747660023092363853701549967197248625274010751905208713047318475390259661266297162903402857314114663816798376147169351329154642205018037221066133742594367380714382607410141559439881592117194237778313854087741474350471995816207616193248465271333217129220260817499110019060406036943276285375472780569676204196957059792681223434304460392232472470020855479720788938292670362053383275892320600908504935533846296037484885620156882333854907510981394749453470369757255289441325948151456475057852394255036741484862944934224104222767567715036454806625826328064008563663979811951217240236579355975336965928676077872443414301878604376924908176625774577953261749153162818036507854387757798289274135549471899104759874005962235173984938958419351912436113998116074378200983682117610073350176289182142619353729288705252247544102821896020152138636661136201357928726220767980384579807286070633613684275440318182527087195283442555464987486123298811820599241028847406675446513475022404078155473179337502293907839467417249322466574782674029548690556292322625317315762402502220294315638059869559569882614417616145013830439766440475398397935962638836620599252105469438031544537154252243289087605237650323390008292189737874718729245794820914122930826330437040492766224173408044458529602262661611432298481437248732914076936012004892706868845606436078551058645206792641731186953735123409686417972247787748266604085839910411115537043055744220886758469854440138263738917961562428314112361933830775717354537726443747210636550277966163371121569780067939142127713609619583336090094127834516838866873402545634407526754960398667560517829609741634846988343800047354673917673438962572760170829595957031333740328483159349099794646898223396039367048324318660840729883032373845249319169344436081336184700553969544976980964451467375548757982630569511929422715503308443410855277196155235791627694077661914614475154761647885255827058778149437770724385159278457657409562538229520026779849060671467404759687417628058764971651269694725867411190862876324322961059373972560388615847424162851105534154839333390546223419983613151469807423581276316344253645581643332668430367717785385335376159166907388074460428732364110989380976716109117471600503648864176069235577439196349144455183057994533195904973471323464029752018687310060405585703807475212776199915240214545548039582426662084524363931059965570380271892931053465663522063807953652516219214123426906023923997970453978349572909105734222937123209891066326661811561378662008385146108698384874081346502055013436621967235562596210173581542556860699526462264162859265454598255376168155952248222645192520639580891319915106369954226703566930273594016222351114202585131980511132477127449254909307991897958890927911128152158913472616962166123580459323420159885878045350463164042021653830058172103625503603173810126643655930069753929889290524227008128387432819956100470801718084919315412768299043652181228873200862071221458193575536065114791620948408374663118756189107282377702205625637763553860286843682126140824828779487373429519882638316345198293495732925157845862994429702347863811739245092553279211042550372956140369430291394260878670496417266929477962732456232058176916258972881959224806968190430828326850977167462873621812011388927469583888581419096267771291813600737894337900655779501246923962202697488499534555149127635790041063151086666399782701012535650205603961189096616282041348586256400747356979054884500181248728883456349959100808719040839072159048107126721162782696883480290153103335810733375472916199732376929586158366356332147433398793831998508620965297921298910921958610546540566984925236199874580205867702226939876083035521883236044264331895944536699275133410414150452217377784292109032559909554901567842716870399725717485547448913922015034022010198375914696530102895013205517394638811190605844929076337542841071090437157066699615117289314782712459982126428214256511455481013077546841208582904195693944423002005687685446275012959579339822205799559570866005485618361936786038639316970946813002595595030161310894503865736177739227271969571174300265499574851633955876155951443377911480454450437402231984707725388063266686055864471145794417442798355127807503496887836640704684246582532984456512717452053463931777229944228521969710524298859339928143420573342797224825011339851878523892441702179686174710786365500267872498052159454143250908219718094916758472181648742898285734174952875265170018031811255398896044337059275829922287749848691380207072645451258746390633111773141423997481189543814542902542447665371509016756749731841814314465859558368080884394819622771926952403648836672433621671778565014149860638072475573131100444917610956206317210487320495326364083368093686053238708139475823159418907860057981770160973297699716688661999373225062275413881407916125067072065440232706924590271668051864597452822229900197505048479525326075640326287663543979093812161865469939697438503714532819294330938311090420191822356385467347773403463931672978487534424857565020585136213416561284503641395784684506131263637272951420039881481914690399043097570331034636079624090743497018124554570075543141959244356508475173393507922710695407059710409865117483136193169810727232902284585566934221129921720023042852108783215608196291245405849405004213682244987320106791866547991290397362684862388758492369113597047107820765252632266640443887205000890639937606683442788749192072882026736632264370471347413995879041870872268821386439414232557806916295358629914933325438681390183063662454521086592380289398034628324737975391682081978542651471575598810755422286501534183738034766127831797976646578925105691032476488417443729146185733756967534841450100514795521833431708606481741708814205369461209743506590430086909098270555985145216364325208192246585453300775829528912726243628707968845977010711115775052232193992072169865370798347032190228475365578569766265065563154648419132199585677767205248474776338407040163772357016795150158747888955248731231018594786475228013801608517936500652974617863710646377551402247242706571629364381997014036520909257327403018367952382431649532646714780332933218650754260604118714374232680941873574960150179716919551746994076022143810131139560778297440517778203797015842518388667538665664773225081546929197926736679452780748504045524265316561742602338991392205044099526517940451177047078604268354350291827467401579915073896614169509187106757079164463412317900703143122558505977292718547441514440943383393484790386413687312143737681261963433169217358445123684688943801543824935296011178890169833724848254468920986023986563174666800367968695266437833822547380037479119827199915502888172020055454681330814728010895819376061796374255513436340043364327793113098294382043542170366749744652621413616092780192813039726679767338580821215429494867367250736161017618127859832132977219229644984544130881144347559437956033094670443985357602641985722688833977793804332674194228634878617467145800768607403947301024162188871411590759755072250766744375695398848022268683281289898615941030160042288218728734783571740577045829082215281742600340701644442704560152109102118205022345876852743899813070588854999095005791332725179770591500162418134145700429174473079560613162815589144365051959959090558865222344678877026852091130261016946372301324650306887866605135823903562979739867066452970686525152691675975551055306756483202446535676444010404758035672224902319284961353187435287965823815356096274596147961376801306088488217571662046156337828337758118156539253961751495546719940387606551369894935758104787687994232528981034187930874791822942981798840169612441493061463801248693846195554915729377104504468596093527774622347968716318656347819402898107366198149281723911475957005660493965087158106096012606798198398999043600334399443214445942619592435641782561260635218400172991176776205268865744651279854498016880948296527815646733667037145240729633681751399275917793632160900489206122168840968891225233032227689836937382756180063316091941809864881617489927032371637825518946649424912211943349986944787180342506260546017838847415274294705586928172822375997077651164819367494327822305502936515901483524529143370822155665908876158378596721320488089263588003484823845067480814352947090299857895755455459441563778403509151638957322590129532799321914374275433478968090832525019335885545513753433968010492870459089476253468662819898557364017915343854408759942647681301921393189534674538028278529597671518315258735792705285275565133577523921426585175502206731442718348503232702065079810893218008754214628824514986230721648796788008904861093864188514195678230093415289452574284569455689858289463012788773090183122886840197023321373489950045285928260087427576384249469195583586140011520550142949238908472071745137321625871636781083488226046154176048975030876928688182309738696195780653355028732366926207911161560362250170826253797840480540712773769323330757053807113161175735637361708972225403356177504204010461155605470875916473454867880760198195133266949194836086478190822999006743814090696965619663733172314329141683194455270031234466923563196589406196008796285328323162183889425543221591499485311204073703787297703677966390406468196101514061482157690426224879944022336827801456753144913253087451386914980808661713345852060767356963994373520859743350397402151230968802265580458942788666256750346146671684009109202751879808377183875222018043090233289009884174480845374469841940743811490670963907958557200674546220200254782399520875719187228725525446001099090405357797790057397851468283243602580260956905869155976077955783697586595380475218127028397145779198242752452623632876619442961726609718306871983510624096810739350599996255917531342408377735309127025696440859840366434161063849042993361213887232259166342059344989965183320894135183826246374357290425941782240207256477925205803682867703886994359778933712924728014443989206978959640528485493291115351876730736834017730217965563743655353699152241334117613632630683531267395886395259623832858026094837473074811071270936769592331234588193501610367563770337648522022251530531553842545783503160749612585023054715383450273164978258316568249412758271935582559745368119864073579744734267068540799308475397909119422205649681931344097314819801799800265660063971081824158472990666767022650773159973524014094408725669351978869408749658960298965577310130738577012030009634761319584199090381972433431044647940400595336796191150351852790513897954082106412190716083807806900240250211222250342230747287667657799821146288461313254641194266810657125714065919087995735152904667046222833896986509756186464700659990427400558358382869373050245051270635033583975781607215342487323997100778766755139828419619040572596849844760995657995542140839365629045418521475113374870187430200972522135025748331880173940547951715682087716114670902233987629170042991138201747149123101703341937755041174273192901718173896183020320244081933620988687796925597290264987969416898526624841166409342903591234954836646654186791881107368851401894585722175001149886963199351566495427392801659418339961996358575673959639700612137793461904376016192596555410334632663107407096338965089034936086443175598864933762015009480221701806133598476566620669035362102413201764680844148390982191193330999697557373092128683005024332918095207054891799430109378672316713385668069576116843651415181232229027539232437343367309845935565814375141567293745272908609947002505095454950883681302268241393596693713954498729855849051460680355366076016869682440707736278750447844799525648276376715768978555939836336611519013300541260498400439182313304138764260859128819370214401950486979192884041617250985858013424227876828879890692045573096823343160792623805258547565282856317550122173415147010673458821615965905375375486588229458525342899081357520493862650134466194391211101606633737578527990496397851748997466046854453598459445188669566993724473485874104736329835335978813850400542372707588735709466913689265996666621139527181183999770928525408983205918209687639537994359130527715195588492265103174784885806781823985741502710375085677767643053720277514574315500280769317473790984655884953596645775179835244329979872078059824706236284536442013479430768282013060516127588359148138478271930478022494303881002047216527264524209820230199368965122221470553914894814871910316275379875731823460782264485526979321491955939914657837000265119013695061646264557429888284956524937847030955901225342243234609331551912453089336709382545000966643809549569485709396312765278971573991935274743217492110607961714321343714711947582131247696719084439274487121821221877651241152734589445810992202751017206591198438213563708846454300895300683987160959924477339381435025596096046783151217320276098783118428125588873858048453831388810775166784763483601914533534822996644273396698357840699957736983819250309140584014664720765261759875854665120081049201667148089603979482289400994637534994374728590831318286975048581895005763495012220922714600023839158768253094360329479419498397207407010866012326474426588895502002854479262303312730908291716574097074081743576329435721585812211798823205783959861770190791499704155263332440920489326883441618103517559795810103128065632078779537899925420108591154896195206645347632817871219395134787388391473648344336077272879491542622324880940604914580020568191663024300378830356947490388860223799838568017836446785419639639018009065226238699930076049781469004998668684198344210369669375884179598169286694986511288471807978970597717753729933481401494795829991646930706165565353694010022195783195632873755268021988412391696359701054217117766316682025451343092158410131298309811275887578014272296632682858053901519064175294916571651804072889096739081619776967181638439525843665952543318662197141745102002808663052134277311982996556208767843545179480285375730618476425013348245885970746062304566461013937417964414734733328834051375620103792723537427857041286036778716617323865557400207610503516369992636619498630214840871346498099386579758550791257021319548151433832560208443392075023144560822798270773900293613919892291433002080607892380505500262078845757258805747044983006653471876998601053661744938738996026147624323047023102607788126752869370135319775984506123995493058964828549375170890860636938140377993614409297106730705185564586680424041037308640073406120327677054365989485970262674548575739052397792433199549569794838901142684931444745969820150896622233415882212653427102555536444222544657207350983364651596185478596743620951212414592446450307665589063200114566254480589628932586528593184867114976004549561064794219085350667669637934070288445601090177833055778887053828294644545186153831206736290715946659047888969270203264597126571410235066336189922933684354497591141741018853175436330140721708393071359833345041720522142933983926776154361252373084830530826485005278583613194956238484363590394900335110703018011271322058607787150317923351953694643325846839512303851829457306854466252181491057428913255395590295301099811629636359209624134684138953733228994489950942767517735617569718831859184487386566079548135627721499941577024771248017461668220374828419714058900568206596556984154793874969038879532018489577956811744550779149113520586818445290380797814084239134088229213132301923440957302303694380424391435073513606135185282530335033346395126082569062998855762368948819153766304832780097661619456513262084411339147600841895639729965812437608803381901312740419434755804902004820058209182138116293864682802344385850234450308259393488386802974017300179191742919890676342710193514084522552948508383239472794262701090004244315616198079223037407016081585691714317362995738487441808549601051297531515012868477072734850607477421979878410381440283434130629130623633106800402212836387350010892471834207658448185059160769307064605098055540460184601807780267097162748845345116103302447233264827100470244729177529313019688124120717985995948369024354767252358542324986858221249775887798301325631563749706515500664847985299965363986733873000527349390014564162996406998060163604284010429522787517165048247103545592732618398454810510843999444443663288804886894923591695005781276227198032499368730615554505073474774418162520758481159475362258422967339043038976199552238677580078906332325614593172025662249518847231343275518016834051753625926016794017045764913924453236286642823330779294047700761039019236096638259990947345837885832581700090189099537422598389922711254165937729483204323210035475924745357875934781073209425936847474432023649900613386673560825434483008943356452736795730138809177761254686274190518733923796524860794400625310213768577966227132083859649052964958932817988271685130371262011061915999440354211885859649630640596866972602564494254979402771342911737128270977784596971239740897044633530998573595563009306369432104369073933401249471781258427522798765352263972392103116579012636642673087375450871572068836048352341060166764377893940814140954377102831097852681209735717540487032870700617150956893432349354321823759587888501480993033533149566718614757174009125704462432626535823212203597962448429940924807258799322850015448139597007732558187134498898498362049250373047524992489761386790421252307365519195855356585420318141944902843095184528991200345309348206565186446836685201900669873474541417401825702064731841127476894778586417551269138187325110346114211237007222926224827295239508107944774150051513734402479620639251876070042498638275144617866691055702847196285263891101043045237723753210904597281573305521867090073898156517089819671775348242908969935859793358293434540531837897224132512664725294771733745145643137028284430468786218365644269678507178664390753888934673773980373765534416297988869889143964655646964301598072570211406502288028165516391811615412806645191486980770335096114995921747627054486850694770183785677260225450713069147830349929719293756479809653124979854540551690695951326416945084844220017822554811218388494421838833376625291836912476813924733182882199157924985746207916528220693614948367225001702659904357684270575215127048842189778077262667108603729925486079244203264371508136087786703955968705341219753623161446288757878608098489343073541142974871379304746212223624611099112763658000604053489266447586869587726239098792246347457856583658429531768296994916242380724075491979823817288538649913541629561885774767150320169303929302563135652269212909261592835125542059628218350244458428072599758272657854487584112803666192395312339705335285145054298434627276128924065295703717378900788967262473797959400902335622426702277876035399504134676055301602555748229536708621773768436228851876959992966431913762886587047249067532109219859188877204128907862168877111541055538079431809692227005845216840535816451018065754796023263388011300362351252566599145561077839004281221413379617175345384555917546176468001982700407535291712737575428434989448962393555809193504943413647067573615756623224879409917033575298947625025701526166283295222870515254936490348925486181142101597984413320579762859156155882172777558039461969899508763997918036241851726765948223762457327489938331613191873347370546675251536949153187202673862729747025342543680301175795802141378678530005610194708805644316935154618554517728022145854095045414329096500223870473150788004197355506831308747637307090577320490624048718753324389814073359088299963782379026096966560297073689029731842233496973363493270354009266792789359676412968192866074119834654205483712495791361519064247633051189364003176390367296153582151100722191089614280048754802687095907522339844312657286910926045898665392515290618834104116216171555328383432282579518798113720240644549289083465132193206128065208603705428054485730509320838350215276534238495126733479679017349813446815614195050145037804019184318079046648094089791453397644365022193798866408059236599822151630954829541375938415038982612445930850103217590531105842362843317639384792730126469537832738568983369509871347628249928255353205437676430628063300850760547303920085582864735034027483525244611977027701461514788941828696738273001272754869206914460777234579172244721231568916112239329806178581446255365544998664231715873468204825233811861381724058750422054841336078377487256075558134689277422380105663681226446955063203816578735586605821888476291937528841426482662837836539923028288922170937452324337700429321839258358920069548078007606304690369556169443452006106576294297658028196008635132689406446192218562713382669459389271907204127920532996156260191138880756810082727512551992171205264569542985980188703805701936308621626530532942737333795447714859190761354725949816677123336629330042188182943203171514980293047542518914143088518220794130526749930821426174523663589431966358403007960928926961355560969846946175485904431956453083497463437083491189642629752824554917423564420418536547060201512730962327700707268980617206327939485837409548671795466038035774461102172315233482164117360173826975554680977746478970624242634700046920821979243915039849855320880590243989250055014547116684860065821111812322416135222876032268494260745824683143431555595187195899158948788708157702952483457730827364721640110612897391200572946195140061321673088482858464633397178763270999456565615903328063473058400101005177761909288842174326763062657547214243278334201584391086126032044695965855583760514478171877873006863840538208747146422546812192554539700151573494823407819019575000388700943250605636109615039988192307315025573173352240579423080398514629524688722165406857108525151019439921558556417481219688584182755708248973912096365828352421601232496814016641392863755010168180614008853194947845984411745092552153480996326981132655181853011643343584379024096787968966651132875228763659123393167581691783293861148557651458279803750791550084786777960465764767628977293951929183550921837314078615973162998760411835488453570312475910357110530969032735175994056780828927601677133300799760686910960905693120596608667005924530220874281139133698162193566527050322963899228694055901986857547787280927298519649437787968718313280162078072705036864612742395469726573599026915467166581157373604824497776977557253256678651454603021501305001085748482473614613056992147264012032797467561231554301725225743944990150842534035705652052523548263210534844341485465749134335220766870755386754733185453236764826450856385542642229241529358043228602239583899534033927044334654789378411679069662163389361586396982183371993205644128671229154020257534512495791611195701009363827643716456845680176281274467602106085974887686850737379458188479371669024519103148108636723273897883497696067531129751598759158507027705274399781750898839891759059115954247151781911212611961258782825612885062337615962007587379978616976060793818028589701915248790872483926054080105296309096304057884198077004700203748621906213565270503895879345804504344148959628771101758464071524985960989546011669718798037004425386397070304575811062717977706205786578989244398865468361068693287598144978451108483662278104462201407461421322618046128633682731207880382465770241690426747439799668621625625044328418418972727389824398269960651589598732661238768409824535713821910550060367611674441448363172488333833982271953148321563604427011804604417592783110151976839980710355205263708425210564522168632877825481616336517701345256623844504287699299123872683977801709068209105734906755247655584766644579413786317771883871285715710842426482463092676205645661619922636232662123502972992827854633047618367281610545146914026503908029170944391293362180158544657227800444377330066579121591825990916734754683159266984165569844781744548230283651286485236148847788865448732535268631764953304521124780722121863006829555421611737344989286351229215536551520126875321794573410371991858710199965163886871969783484288229136530836718739205745896253392980510078168806096799386880582139831265220019728481331373436715334272068347091157691867051499469111263392760657308071806170626028891853830398943367811773182156008684776064773361476684506724194680352226773408406977504424350698158098005035426705298920237152476386475350626454285014847977170458198529107490381926766522628983699810460111379207517107412880540685063685208764117972053755217201493133608318775802930416659694896059786071938235422766860999130898906735360889140282837497605692604554939651770919794551252860331358514962379506963493571869366000793514877667815628472720004264898745725182355066227275673896299646082549548846489767244911134379365455070436701146357382013213346042506100706579519802622013216311510744755077698662653017236651446468031653007407258509405136560737163415047260756028674653711100525034778131877184670372605057988457868366843673561961156821137158936250407838276065710346092312994537886495632442624655714204747201925698449595718097404083987765782867285869168570907432108068145049314285938519125069609987207522799837438528339644342786486723400326137123901158558609656413006511865762131025179005881697755092473813583029100872716342350190918374825921366706922610393179136095806679704544483143843077920613300765605364323992540225705564762132074391745346235332421711792577464648349382340008103730805241418510964903327769693282956870300441767442536808598889116391403265621749889280832615717290621374218500115152476717326856834753782583805480584711956185036396483241264954124153161669039451701967561316068290962659805716143878855161909370334350534225287683342749938681472954957797725599253237034161578261856428806249663903038815818439228096778699742476512914125588591779388500533063099210764631395033659654988560766774644441278658513958687851840845596832997116822370873479033268748643367232461443453300011993967478018511057433598650151682246365564400382613869826384428432698101143390575727894087673047215953445495757886404594552885875142186911596299839288577786016519266940175554172593441406316623002263957017601444817011246586424354749377801274400257472145073283115796506734332533925108952882377276914992267285763819529095207346735061119901377493509493546469158190506185031594214116078075769115134283016271984110299398598060236420453297968953120158585419843406370793025684636754971844788422041195901683440474972864350813948211490249570050818859056142593000959775548299152064410393132497832548186794817120892601669986784494998413274928658658046552486273682961681097880692666876463540253258696513819787083978995628095785881588447414939766551449917648581075068002777491711734125411858781297914361073520367534711205375837149026900714337650199398739897668007777921236700255087309795583336582565202907598529970049759125202113944798216708198191494637815993388004012659930902966460596733491764153129393305147804147617143802935290919579825793315552278705820334062032331637572112781891957574212433045715623506088730104139713952205779295242735598178239754846713945695403402177337203628079626177749586889692855296364494573992521317348172118314629413775145150872429062714496357352925489124116322418524725152629301252279955154922059852553884923506208518464486592885198760814258790701661421245294498859535289175371289870836368935588302269536227108844980674545878759452971479368745541407708015724774887705553603021926065657366125869374460694649987331636222600327309294361878162985128723296310748451663011176762683935297832464010234851004846321815565159792811314860104117531578929805681055755935111315840011439286530672836365146051774049927963487380077074768829797199159923897487452423446140812622845477953116547590394158531696069316159352808369059960786492446281389605409499247341043543719431781192210964644786859121519691341625612596795687175239643080839034650121611870947234239230649971938303398706081548693013942468554403496270037871430366999405223502417503917809862990784296963236571289152934696814930447368061561018839054176898505747122215592179344892013229535002086044813194638231152264425006933192511858856798432826920062326536724404733009734285527854687702180027747031000227433794049012497091614453601924177713187763638949223403211343632142043140220370057741194377155399951710844324169028880719263682941306084006581520081152639428559228266317650099787160126252279038307396254615932086698652542402555649200945147381263071343813010212551207244231760332791706273221885053810572945453846247533299408447947281497201380374616509167818436442484156086395342327326769320572171896825515287220376622960752419473267504364518097754222326787383518417954987819750653286911676555174995804298206215343327263952678871740128260352594162846957608253160693228827414014400913375101159785651826179545256464923056615204285223423202909523547478200961454385900805502247640812091569867547442493345612753763017487384648024980854679879921863264033659758590550173795299726100149082424078360598414440543534977891359220759320767361309902800155039405946997680383510847844037720435154816262661693494647800362930700914890263763684992744574684357663915002896781017543465766004696228732530876916681354705003821415967839846218639497330326035900136685858274282617431917578914261337489648565681429188427923777736842432989111308029887281445369709923466129668345249676660676298153487537273752783015652585040328926891008056620104387741356035474328878918831142238395156570522310703412531772858123871939300986553940325039179108312657918790111414192367907812949782128969242101257182068336872779780974887177344452662467188118457393236792554999337900782240400075256708219180704483995428868819031709417802301287572127816242364860929512414982704107380199820917344108408832072732058674110057212283909031358470223041084756866009410486667138669684737026346441149577765265129059694667730284348137740627377503511704493521929339873720645310634214217474903697769282292095224790651948675768550715140797088365039889285699630623447517300533031524205914544024443591284508871796981151088895020922469320020931300304243131856952470114360662179007488782537099404746908398633880266412897478427826209547776027218932513141659206164270937340742795013259261030862020892110551261099336320989726025107850469767229428746586346582641747733434377586173628442694502132357969516476448639870551176407871436914275258963529022967007448085796582462708731203986924707584155544330707934876272796707308440885778125654468530801609281751501228077777686548226165458675660928907350745502721646104879863819257046590891298671654875215621653293438162047696296880517357422816626494170792383332970364941474757640161144923268995415581062135462414844265956654846613079336011979765043834236437898596817880057114969167561364308066784442735351367051667042121695667923410218176740969981220587446703364268871997512869514553874422310577058665896610029228782420600794386751237065752219676369705403822777015316864479266733485321847699715879800085972874250791659621492880268575878110140186113864730749466130323463608771845631548945925127796028527628221565628258034625479951706767592984083989613829539088375160150006104099093153175620931339129951730587703110012034713896937646118111379921242900026253726550207099880883207960972086448824909977604748073768648402962056371026197867700584696110832248851294136951147364246501267380451334548334427079729689024337901676604651464304170605231264160768217493018824034127597688335961337818223610617510749521216480622152726971607152087279417246674820996055712811431898087224623873872902452698855404977885364089927173217328259607294500302404805198369758198819003379024662942587305117475158414790801998116821873929577649379726321633692779398363253279331728664742073777528570142902296234251906097838580994862575762828120884888860186847887002681255289786005295070618086236959678840780990260684697115597403791409980049928382574921977822408991691020386520262465094092824714181525721350039868599336046484827278420103098851051642615544655903468427743233559511006177781111537011921400761257494291350702748427751484876360763968544733125852147618082580687214213629954169466144364196326913960486100343147335982836010852517042432691917969976281533876873501375392427573855200152309935566235627411775368281794195089546917730012723311847313559935522308926396141957470909461602846948936475568385005187035485888296419247375838851266411985642287719674629559597757578935442399009351104786841274485602874682144131452004095017166694505297845555540044770653113333485882919305715762323818080613198534383471418032438917929476915269494007648829784977856740282909192607941898176879800925297688361846275887976121318068252272639351242129770822212105162370452828925115532185449328921343079963523039149708295670410062515587357369504204229728743470609503226069160500528661291528626365579387686261434227482356248885158772747588945184348917727634850553978139792525275088049856142387589254404974310697010870437687473107015235536540975302038832915697982959296088127401473470785154783086599860539447004709713158245826897308930043086740853161815696443780432787191145712274074482669511640470076582275155420077686939573718582878735994918283115546859175686344084228899496867307830651161633011834776638017890699515561255314506483168136697248932143767627259817771353471362771660115904494344866840734015245890282452467421265513945954052152376154688412009308863576253188209889992221395648794130803783518723003068908952629602300216230942794515125941834261596623541369183172569145491223985910004558495267273306033547363340459299736831414002177119172940824082483827028913540537799847867581160666042099120053442517577389965798196207518321033205286948311026961440163919166068201974409766746570600331357790520342689891114125335013452275870809027735531892203188626051596126049086571485008482012240960052954992740029739541902445568312364427913865233359765860592222051154552769569801800815867041615931343277031530540474033559536675158038887827665686248608781089117557609447770522148351413728485182940307083430101573024197728697159566864545165324682128648871728008797802282361402072526067294769446655709435934978549755511824218952968752804918237580069778385879822012396144198138031712972540618166670905788506658161190817211390572088656916708591315015240547752253981795240393661323954350227575842730950583558208752833935605134873460546618460427818103488800375615584619885834324033346573430022295250023944455428875407017391681939279457439777490942462318980771717362027924953282637328580387860480446407409331181249976269536777857646356558987037907269274682119052133836170346411001898343804814648387524160012275614978733786874020808655862126117796267086671567339557384540203929775240597138332027198236308812511017467354486164072114572442777563024860190072533428854326172791289324647669620025655236165622636060907723404677906914421054153428754507804767935733514275133852300569175264835659423064289050661220325990152077526970798728491056313331491758226615135778967049913501403906498550545601310962039375530147722708672284837007636274426205525291408923709540132440218862445208651734567737780705312020497926088906454142743074094463214121910404589335714333638935217764554690131563132625832070494373518446951401115052038453971003441547576343394759685420979845035983853203482964961569520244874135819633860254277350553184024998715475233827457960209717910143275671551852992274430956795495377067528154355777764744545977910244238101089084773051099322799758310311286294540214764165507031473326821552854894593239595742064859305582492831990177061685703646271544844979956022193018741712490447238895591171907832437367010486145072476955211031540735509653367489316895462962159180260245240001543957991209928033073770550281507263431544089421889558670989700491452808073719446538941447134133752905230349640352250104829078890643634427582460340956266133273591735185417514878040111849943341198259229012027921647486862321135975067119275246875622331588802027561521581920341426707967043196558592016350693540734771549403109185220546905369770810656607568402139642230729247497083583749473270771284639163949136069243144390849009409966133310600059090990547816127180734941965439406521229753147033004684191521217296535071801034844782175908293550722965364943978264478902918116806316221719523423101384025232504157735900161697776285461199823020078520917295650950898924946890103804893964138879494078442092080611482194418515389725059667025999087749381922002749146121687867127152566553792020532777483336473346431394372018427522870862784502300869041134915674071890885600178238535794063812727296325487099482677881042955087718762844571304005937765253452746557533767564069755610071797156980439584892293086746816443266619042485285067897762997420822903775717500310147632694124101217651698480243442573321173598787304176929289136221011640765023127748300016529843571130691650557971286747102980747065026612875326415046042748150924528945908743180773431431724342263547162458034252353887697683360176127326186274579416321705063082154009241900566410186347723403565579819086662646449911372820904988829698794388665475905486551779585450610868829811786860854052730381814173651419046930450013028738274670300335288713829122116694370466298382462894977747272216271338765963920996021800868235083763663720557750368032223232495373548959090501467889398904697660496023210264958809002904687187534164374753223403515035870260045517810278984409752813042916328057016565737078366290374857439617149059718426695840300286641909608758998613671525942682662213705686836805873024513140186089820028863515202500625756321079069150667847480449997622082031128290785275063491974281641679984774841885362474846817230212486188845927839406064043119596173762901481034432764212126233188835973929242413368251854240187788673218697388361583778909864375287682112801945783974833873539776972170963356213138357374043926641739015630455262237929284129902189498532921965422861701174531187035465901419645937007449313597223775714156351913736582241212064805501612345692189635833971463230554171618721830758619082785647425001301955176383725509356537584816837107636149277244254560026014645555020980590732133406373777948797631038548957128291383913787203873997661930696207146262620173665790814437599490749205301225705449705655222936572187292186563394179989482975515611376428112390803595188814109192495448863705319781536124285985646804702080124660507888981587429755497540930331209368164270670515342619364919116367560267281891526506749629589918454837345907360440476262528269014332343141063171642905525891008408167032678941998898097597827321147611871422574626746119390484448642664406376347215956816305355038249934815604633255615158135631631574858097759121671997032770153126026053670886995137813664431857115098459102664792411451933548249290089380674943791923851721891623433346455505334962202249624362171327313168273766292721037317110275268391272430172431484939557099437585054203248892291383706655775162674576771050828496555840877745064743677221880255181483419515767433092266789290658942524137782634897392845749532576510426844128587576466197619815716991707996155949452222792989554802233905960306929318198163815982573976914820392580767237934360250058613682957713383249151971126827362238573159647911542565585422925529795074700311120397098216543570392515035473451236519411964665239781803528890948794911832982991067083854710357412633196296879162934212820861901122363338938469623955382978129567237686643231486409143301870851948794350915192641014975965040037107465155592348754777813914949159701517558626619920436062589083192475550865221760325539623788731310330707691930601020530672214089626549828793461542187361736247059603284371306516894259843426410744825760022813303234621765446162725045121709492430374462750361006739226999377920247456692432765259929254508071597745243591173740391538804619649502187934794989032785049414227127587450070097583967336419321456360176205293817754889341423590035927409493371097248130381552780138774015799708817428879732167725411544235958419109930921235924724028337484837362965815945038937957182586312985578408039918055187991024110768641531039797853671137171646125030470156532130901000823489964704796777878710714790243236106950818313566536611572994244084344595556821457599265542504994374475366784691658521592020116644942956727666467436865536237899848433716546186677169451960483933562626814938363407796492718787640208684580924158085475536312188680753263087267607492440869949765734043052311002865537863123863241751667915269844209613902729658089338469659258266599882632924714816608166729578763366206362688193277279964019729721446864308647957946438832493260050225654167625115398979272271661589987580712972041941084664006382859697742376605231998118702062841364297584152062733963125108137900919183724012522035605547158569139583930513920403734556843995651962240070271461509315397647486152151905205771622033521155684990586008920654447653869341218527081904818203184435131870632106783363425793977130880384064653675291786161691261253269873780242764226613898739796310113997548788730267893711100157152766463705159817581046622632657287435082086567701413627501258856762092733376813473142827356497671664977591922486048994215549341506461470285005814005733563135512755454534769727772744125084326027466532323783522057931003098333200959158457890237620102891318374786825923815720654759093975877370315704227969746695160769712108752300982528209743529835777931673323050722357015063017350015402643332741798379542964200408800760137539388250404870807565932383459255100417957752772140943837571355483496910253778139946543135150944696448496865841721919811891144636598969155285604738951314407693516803050990836699682659930209793435715496044195239212740482609030754113485156666641428989444031130491446620512673051414335287604641518252644217088977482988565829433207573423155234256789889275323666593198818111472561532442213770194779709280902395496329256040868925653923430736590494791070580246776313219284001826148835807678065151929095480700035518774684845767565155020066739572260181315853262353123720144038797235583559964761613466670629268997473746660354781471647683960231459564781842882898439889133748342170661652079665531795454068649261453101266080818130865456508694685417789192977258948400681969107774279105254031593000649961961324937548786963393221531962128118215616814127516608409810094335754019175884440450418132616726725876257988504409198825136325637860549916478559436874626594296314533256171065191402507329920099326288794210135718898752949036008813915245061794703219428118815614829075449952193508162572547940577787125353303181866707791523562296684866968030349392840089347862585299239950525903814884586722685424709400601475010995317482981863479952949244397510243860016782184201259090911048254720619857706981098557055728670259590187585445080897819960972074471860565336165326013974840043772078061712036592216178493196573209784284687892295555169830091569689080987864308234069728416599166812099795028789271494808809379700216166205415644785873492416013289049745497049818156193809716560846306617185277365300370665359366179535788118158126481513910425024247516540675249075653369211348710043865869054782351376187005391863043941989205110906660700812296145937311128557066150250391643542160829620116109498293182591934739196548624722648208261473607711546644419543012108335332369707988459197727574857351123630740476453947959844851797889480008120678431385080611943289683788009173757754511315441797064745521540262168739610046370747054772147888978175185813986306836495834504187745164639527936189951469502367385687179346039399693809580291208836399352677029218460415506152906101839739679371687431235962129140498349258017135149323834318049470444290792518602920600802370192702192955956029500169835924700515246611145062321481664442247511870973582027783999471827854590700382863397811556021910058274749160484743488581665511632413512852377177227717150332062739280372833600396590035266422999685026794877896609466106968584026345075151832573676901174321837648677625496787596363052573817141254853620472506895476146137316408568910201399674872221917007084266975173113357209378698709072545248240703565077846503812215412116073536776526206421610622445618988929962169137119438477844694796240643394811290025808425833396680511537458153248280545497570777278577348526313347804546394311237583145331815221837778306455239300273177502628864053052444800455853041967027314054819348930479803264285366676516524610373651912929292968518641053904943433744958008195712031426392966304259320829242036315854424752734468568359400052907012502969977283331294589326693254987970088871968992738075232900198757075168840054577697007889622182360499587664160223147707425054189084889434368756924531583607899372704578999353201557751163023545468090931927490878955866627769964499459764436595688391936060287701711225853850302036232507416169743149228038463685925924390178807840938046002475503696001782050654478506850173893579219431981693567840881534282158651922733204606531809049897401301894447963472758368713736870332282099039150570512496593020167587716680570517539011526959459237149832423451895158455535042863970482490099751139714580273139987488606128277005078713555987433075408580561716544347310031637866915094337381558556145478393920594268110525536053575715321971252688680822438620055726224056316519108277114618902371608680051363326717146896645270078389350632041435249665751669821077759050896031587950748028116495321641566415387829739680123536036565881469401155412101291176255500055084573603141631445189706395875901029883158734300883943133817786697124837389771618384739675146463994603329920276379280966402635096503368785085873389298199339472273864328310817824426894910763900633929485008692477179966145536534178978186518519946206642610923395821753165240512535767344750672643820025540047313391967191625577086470605742563489480519716390070016281364256121106094421576776819978206331494684561027211953567167360962068000762128947815903250773015333498885209321349219130100124674527863769788825254685322271059130637912867283715364650949471004386526703592819680935734297986799077151680793090887323782409352700308828086956184720309897622711810220942180780283723041892944713515553819799333783950381106801028560937520622360582003718838995889468874380042980390148723801757258892131721562512958236664949336225696711904775262617868776136398693688460349654801633108899138743738979106952099753414566879524017557585536134396379119181814906557983845101614391607860920087776215129843037437456317615479181269429400667471603160416780999375432308669872168741727825707607899997738098556691970168143747606046231523398845164582830215873774336706687437473859854004655315128282814650108349009310124929369267018215612319593860636965875517604002473298366503853434926748335870036596178215285985535811438892031714510363883935877569916914922860000556334581077346170248348008423360973247851257707841429073727715816094975403326037423219731122861815237437583146884464116807637992157796324562628957041311708741469594350113804585924688865616983661648653398354051299840988837982703782265937837315995531878992040282609213602178178901530969183015102475444827318531364719047092991868147683016090712287681849963611711608293093979298465775044248429990269598055353122692629044731599371259507959561976733264497670845599339634254655152865690961688285926070949144586358566022372933170379582032303635212172427350107739844286409973856029471045012912327662030710097882903337947580238420804951740680233747214389109443309857360157927636766499599580287019300725403076248099834994300754436515504677591798107394682216722823308410667404759265737846252045994999109716209178817394140214875910703247457255113388162736782910596822238218352218300515817117795848836224304618616594171730230340285042871877410749469456618596717480700857042476032730191189792747445815236259733087823279393312853440237672941721709136288981189439247070031821048557312277827385990790248812719517927397464856671652339227655587704252976790406862857205113734915363291062555729885343008897597714857342190029108188496712194456508013092860361331005231657210540574916974077724044391413968612306006622141098796145547508065554644744595350426929096779433792046018706715727875996345538013085932249026457958101470279992024701393301267658036374714276211010502389172279295166849917962752181063893282782234871128552401048458516834151744086167424337156816948347320969055483551558852816177729744321288810942771285257727891504975554224852269199965461221559089765404262052831484743945521886465348857937376269208695211382336926397527358754657451980582492257961048051365349915739546648543958240152302569664132555841124196208854280383063088213032845060316648283712568395051081522999557267724490858217434685905792946577536331866469756118565203099262288546364508622174108182917479592295800806408539592111365664245134674086076906404052195429372097721079221280112858298853329674752596769252661408151634313271753740690378101785962071473179977792917326200219016042330805758510725609038984041540033695746102512508175942718890737715057033748422645094300048883070013153147762205024207964095983277250994552655779780269154429117846421688230370759761766176078627927155485635540458555059419818591224544246089807542778470627071268847695532767375703128500727351334937578463382219757742650329519169384033122686437906973197307203786468037079199805165068967693517360546289165294037621312389849025852970658195420741871462267495957686979880077042231351699476931570425171469775047920499847478326283560447490900213174315064631588292150489990831046212930046472918478542642253088668899222116134954472465648600638165525623735802544851457478112610983432434847103853513666256374343327419488133052515757932507313868651230938211443070072312334067578228962877539168923941425763128490015412647000596731607309612481643932927648134806977009665793394587514785748379652710461432396634271731239730674963110051377831848506754195015891792198547852922534694185424722301712774979382667867972155143266889821282259558581025554202569772911495889473411625958982182228862390634311356108300855487286071131821952066912752812320976589224304585814944400854467101433381882767806800358707643762385287752141141709376420649749689170695653341763072041811294430876825522266606866365810011735839498379568192846954924957865830025888992576725883052875075509948618556846608884711249724607185449599636842338744532126149117367953231604405716490264686995614404663825683327082519281081777555947746343797094074384426229951575152639845141319653383660282908461408908703756688195373996013489500905938115754357697268049610227483180221710045104691660563782957453861732410387112079560595805164497393262414223657977002531739786068161451401646693506976625295095319392990935537348683156149829886637371703257383817654230476945027698467328792652783864531026387304607137970541128549458471560443393884869665107306077895772228087691226470288347312216474717312860105756890722022077766218566807470520758830429339604239180470468188110210458033713465007954989486413964511699595956855895114649682130206932903311883264638572484515647767516828797399893493654152139580967598552310918576889067697360975651382438319160250069086676122649460134308971840061994524799839614760870238993983066810492064697262977678006012135390908677604460380987037161698471557058996664703518759610517533013857914399332074697570112659992211957986223123679936711689711510608116475086013656948083109412788456540965522836884534308676304213088481577900576566126123599847421649178396787459291198805336203913105903849172023786964589032194962660232868431910722856656801153667136664611875667944471728361645639483127997002993704878872694303222195445559095021742463375567646342490532242946661403208590331506828285544356656753007740475299019279434813755706536810102831050064840147990427887604797905659718674427783787934589174489268599401269558230910224681414793879100127979213769254208501083418865175793040165272717340116903209397954983723873566330395929488233652196217858581019126152040908607470120397681691794126982071644259182619248371765500249838343959111034006963343810957617770084512916150617435561517056524552933425241486925398967542674338515323164457353687171699245031019125148776591101961246094473910896681324445292073434918878460813008776745445432998908419785245412336442568894153306761846781270402116039446487186791407787075368794460914602923739339055584201966878382157162030160100225083125141279896181408471828028235637036969104737917392195686591951936989940101912631648696711794947122300862652543021438557478288237149150430113315155377235725335906701452737500029221721999136624688497025695204910007550031474858620745919302901797384464975652813755614562847414207290607854261038106695286304006462750365095978450835376116075804824880970548502541472495957045683392189008966805163527598927205062533783198903257691856700938415676650861327690848912931650617484211336315921415528806853484997253147894582287827622800758054069998769831148351112345354650504088645571488821672274115658064332671949293487857108960030144337735552984117760718166192027205535106963714164251758886344962699001321453095996371541131171631978358632447353928763005751007929942105577340137353000490752813529793053459866045543517704401279732457369915943783010946250858317973039043487280493481152323767802902116189391348544483933250893047101201040683406817141770458581837821888432849055192065618255941958741743092126833170609053313343210788164470197040630875159435098127104270995442296389742128277460920762994169516934791290145084533179047267290762986245033103855248630380465089601730106532670555736362810500604959702546960278551371658318160226884649438055381903665876922983278938745592736456438063492337188150941038837930138030165948849638211449760834290368349210602727237375875441718061612933405255765248774638468690052713514090274335645091704923001851953061410519254353567738783381479350157057253318115304114775528264481379743453700449165923368666992300770668632096494426118583099287399462000610858475933119610446227550188915585442277855316516330414339167364908773864684007414050935903173049114544908907905869799588250299422417608493049241534056034471471606893373812455964581678592823483076319859131671688881219983806052677734258991824698843441198969900096213731675908952613103578222805424729140032869564894372865940226505165423600161408263994571845839136798088342067572546149311249217049858033056175716126270390906641483910708897817549269401073362781259728710799341351779310509673959379656687238644696231224482204744346372861801639468793427285565866643553755360213403476617889039954471891290325545879405125153061276140300432066501105497044669822380594559230117343369788563864783746788945778908423432379767135697998187819949922629549058528856784570520135814746526055101231323836805996355897536897804624943767907746895983376554159782602998555963690468662183670754534494891482330729475701739631196267301059094577381575462767716323645096951062338220471971768731973063662164212152249884662492392577050862142425079888155699158293870453186009840873651735133113565616961307451112903187471397339841676166002143552430861290565211891797689006178116462639602703017373485734819851188355863829133483288762247519113847262512636367539054612163673280784695044872775970365443125922485061748856306725746728349422297633730789561655954052800552891617316292813653860984114491444562268110099918168879556323422027237103926367134311894774504937276935135905271339597725060601500759388935802994532351986260567556898995662774275644582317365367110128406762760346229468021059086474070825019969491429193002394811203001967030248953036025784927484457829089968095370222157334281876216953600457598506075133841405781087196805760001513439787692052880744001267705087575894251715528293895228778230596227698363039412811621203412571523573736172978779781296353930332937576169835640043177300204807657229901396512933311048655531912629114056163158252028896990338221675059206129690294760039717631425469290123622067763842819037227043253225647291509151144817873171234252541696981461441209099357274520761158481323630980767406910607324548303088279329709524241333830065244182895773410436000506972725288354792515480549226930748914570284075892840015787159121846573241630319452490097269076836475448151757188893059089173419101595039612521976027037548159388753431758712193204826977928117844979468911006515176404107842737520580159421127549628500248691633586927275864563941024541828680298098214792795236833809591334618181443819960942375843257141538749902283833774884305755577511556427236700300644577872497545484058342719210007899951193285235283241770546638677131532952234139271720042566838967155159619856515763350998901485039121737269360338278228401466760490278742955314560217163499528137883292229252970723775299047673129497106993301107339268722718870696183283890378170345540298754255650115852280988765807673684575656276850923887032863977896521571904141184698522979256110041518465973829203687910467274447616963434343269272466259237596493019679440527735566471286604840563618907964960503608765194045391684692641434916150137259008766332369640679960922623819538940760197155906750757655960648714086029668045098134563434174838353184194997877188769367835837227789905749268640524098206092834666045147115738051582553684464848346733191955833556629530092460840889093481147745983426373970428415628603910847897365075518055294002371967348414340843455095801281906843571445014557860651274311969662665724072559808168424784020615827244951510023050774952646040804804067601895858150440587290942888298182726794685456444457748685183703209138632290147661901942925767634956821126481561838771048592132565505415916088957983216930612750309924479540929783585279125214523333236339334832597360930057145490717213353648705012514380681130815841594309867744471659177417338201083653691289794934634318504280827313453189348094370617999679924851557333763063835639064784241994642999810728043047606967698423150182100336189933853284599200990241796644601172947887004278844028442183789961194999721508286556950700718355994233714308450227248181743264018283562521714387884012349395475024508679671350414411332755691104648609009628535152968941455389952946620192858366768924156919192188013615772173176517868958932030713763923566330502852476168287709475436370808394379906873963493553186821197747297479374730801288688941814977085327634206734777716816538182268840328827081757003249437340564801541030197938486947440008425072874524460513862275151015422842181432711395318006572783899257419705596827092502171579594459656794066503831185165293278081483873178066479276462547519392067854841849644780361029703531792917252835458326328411688404163365943346789770256383886659148108204228189091554709739621529183615876951711410844821350223114804597160783674616999155701955897524750064409777514424642743146412535119757202500307789181936146462026007913441549883058240340796515391791843429421317464660539957100503516805355522806990803695152991312530318837128136840820203932321791388134927341780708889009445506527372908527081018179586065300479489204121847250450893585522501703450625114723585764764077134251498372847356068386948086840125315466305179678995856798597188120143433067635450108180225590671633246939428755764569389397822229607683356425385051385930190901944231087484428820208047909253814916205703332388222691723111195825318275012681454677847732644386102138081732333690206481493330872362552920923206347583184185487427996787455103408882206237267730604264655095678426886363785568425886269994689222080237627943034745667667712317632948983770911294030463672313317879395906649439397029770553448053264168789752331863391674191291162161750503599839662912895455827253798689033661079539523126146847596378932889871401600926650764483785525227742861201684907597125505057149879386685725952332807790139352878550704161917192432202283973150036449315518512159414569700025676490233530982482462063210625857294184700386753602255324580470504836902955228612795287809785459909867288271607484685227948081308152073285334328425448997120479963441444384461391975604055013226475017007283171862190846453976840408239011723045887968266279878357739092826531083187051273099185313455359301490088817608127869813434906071025504089026472959445834989020116948026707307650138814400435906118705082536459698656211924086555835322034343619970921617839599742676377161922345521646474081322341093577741390394710305195646539434050002858288889913092672555186638326116949866566143952018771309708908878973421821308564415556596988005420589434458052964429093403488381187933991190809346220836994019232699706397036250738240766706548638495125095715453566761657233714786349738406748643007296425580832449159019473693303539256492759299615158268299197463930479531237104390957662736020527296934716398210785349392765697374457820565569315962255413306546738454799025085433438670290282296569643169498952032538942728981649940624858801050138575794184904960944052060451520797823353518298668294919144601153600867551610261083073202794594224436637762044933375164243435517922733058208102353072143371219363472545972951773580786436494595474743780556136042985278889315383610185491659219245070542124762543388700325973672777948307990510860428665869796507475890229018358258607522918942324425626610905517774711727298687594108545642505829727349657884151618781818219719298632259853927229463902224336632905896480483896871899837699637016806082249825679603764013123079349800103110427815180977264518358606213221713754343075413267270163764259185915317784936420992230130552123208596827487707412131725609005053586254831666732075319692613430236193769846496477178454491926868336150645884686409649138068915068705230614766513001205035942294036657938856217811523050794467597712772907077141450817946626356978304008448264555702734235682520504870243882236115239953714676160789449188215461858435139841874019096458936100273105824619264701934132293504173255345971324540877340961405764286745242348647444416044582728906555772254345090059832595151048172055828611816436011790883491980617093042834038565317646863129110607000251117915848160152299745946910741283027731290139269114808123009746340533199625411086501945897844841386676676907880492854707392760100532241109547678170219207589547626275666411356289581300501250109176708690004453082049882746670887930449329960772807247935534518199469770881999462777721172889562055246261376804483475734691575264765306039504275672629607625337105539865592564587614672055023349364546019090304715087013755236544677460947813625999322220553190784836302098269041538281532182291518199849584606636792728856258111734084869099680711796875602848201443830243042587910492328316803024702121719320267985339926730225855909835881400518999494398011711627072026163387009389689801928320980970008899502819419309017334801784638814187049083799045181587890156536869372444269606400397741799909983360670321054033170915423969402840593029857522465091328478097080555166769923238110714884185390850838468111294880211940406609052653327804011951815438359471615942060043480469442199528914736870235735443309732977640686538267702399254898907726538466863304660986974067640479094760418198171474194519718242354837898723338057163757946829998240724103081085144753213001023954846215816380233893022742405639204930444827276284283152227239791925151990574333572860101472851462616083851351221242216356294433348892083502415980218255384976302813819282040931245814346776758769779870038482968343166548133491120982175356128955627571997851138416264495629966015556181995303275416791113595447290426520373945351679699982088839249751168005998397905337729015615336715201783019665894839099143086184093238964915755031113503029643907272747900962575271588905062186400922837759476063747841267602791854998317790510286061193549271887722992613229820758639172881795422696103376419524739386469926145874966504281334550595756082227814487014799023170964426030154672522487057340317359229641573708119222439739589167552500777765631347294208833102858261123524547639202767552784456603610125490106588966791121037388949992224421330079966587694807647610432266644971243355243803641945893139923755933177670920329055463194577885737593354283727075492548875586463170069578295319528660911293226736052651193181282547681015784481176203850184123347809497673364664332123318759888053081913819522021883365778580133825363669800836681980028316635555269754591875941588390228194110315264054078437821952159880942656554192289158140258152428061972370625202454225917459091337765763286641404625390113821891015612753316260209367062986317568697873233095013690189702062078247194575585753745871354907605453924417767178008008225156060518193396362835062328922445265902824983299574959244348601124588366213221767206566917905072501942032239493264545767881832931480160948702527709585386221893733317899725875605905469059049977746938911346673943655139924106612235432309508768385309888962711838721805814405912364652383534900087828769926584574271398104268015409667576066779527852885320213392072838190022992516085963842596872058135824469404058557843079340012180010341741630896270955401624590713514254226380899616142020531499469172197662420366155127325578558311123510314116037136962017445776510288472712811598613202687782416909220636513823200803291291028784208239467822533856080541860738385937508082629846627692629242413747610672117444746266835109086726278094902153525510500797672730059590219694921119665534622231212510595364752524868017605649094505077251419828232515900170186416110383725536055997178198837709425925832480940892793780059941280703551124911600570361320420226308598331137059132106473548599986782732875473489007383218835153743405979186007582805991613718845513384787261505135378268916823524540974045429436945513222035414793727499949863538447341469485302881216442291474566640759815048853994696464882977022820602889644945822244615212692528593905103884912198326929473640886791347522795431346448161887237545418442893747538417456358035583195116784395470739567432972051722348591699463679741347754971255785992145246806758281273362583039009178256215557210200911984634020428466717457434930632344465529809194345954420258449015264943667108596808664288861845580764694754770552289434652436744254200272396187065247111333591990850252675147084399717444731270891825279470356032093792630560696069729879947145446953784721679070783163770923519289209857126731510360695112284113932490205893684454012656224647122786467049655300717223651288530434763190557925365628007286542027736828557455752829302433725990517111758760731107576749706607791845307678126126369122406771149080430523545689669886333988287340079282067073750193797286129371798115630040315349092962010544879030021861092492280931568257966082196362192619637528484911033309668206321922368983676212445845425335738177008444152353928041910692251021110818232831492974423640208976800688004041766683971250751688462843836755730812838166893153285987530962335554570483128342418022215216004815761781152342847411381385251840057626768951265451394545040627458980822770948278803361623279549091843299305040901123019939711921995888458716832873076580891079087449684199903995280000422984402756425791931864883492414152550404327480452622840472062348373241792377388708838042468498116453108680163109151546849690473625731639375590919385586834815927408495149839833300255116501731398082015699775966590549401920745216404255480628551198124633458016510757650159076465133765711269561082310832463850517442707294328725240590725881720034603747157619368816336381899785779826334731078972635728896876693530168768695820860670198760021351215215110332386847464587870773155193862782380739412912128053813367633469088654502147613891339513593925396454458720170573146115865165613062614209660555722969180529432712564486427962347831363520601748072648602779157360032624057407586291648455318804947157776990480221923607689951677622274792222488923130421669150077057865874871746331560794601459559782240808516998233189680294264835070503760119525007281308141701436224628825713383552077875541734534953898655591541461932146989065561419535449004410995764135789550954288756843765150773122340771668892225118649469282788422809680513280273570534864983335654543571594476546363890318105103986537024880075402043155733047521711412150017662471347603354479698484172044154020421871166022892126283654172470460266367000836599568192487785711314185390110793952917007239762921059554078128797004941935400736225397791098342934027709306058187583361028472085146338040971350402591015158793967629404522573947604664458950079633636825452817602545434492577219035027978180994231252751864503460793429243980681561147705368576876785848053000532508504383951122287665313086473837730143319451626798254977133387130936965757031972486159624111780233009973385700491691762256912474184428309495266239343712341973901080589696477409116244910471053740695925454251114678224841825054114364202163972134780025619077298667921042864145410219224927558177840656356803456716911783478404043213611465944714360371065774930270530637288428617465039911073034252142098469623826638916067915668572459243005077529502411364460329630187701303949079021859662759627979020946739123260617287757556661801905878973126750243408969224403175855486360594292079788102157863135783619731786961044106154199871891733645244130280121231970683279836454103387991706078776201624173837041653793630088987581598489971952319476443089655569892335037927376331177222157046995739060835089765516087424781282499460947733827943946446469033310758718610617956166965339088505945566764210946497893462582728131814843596226030312157917455459355469093072240355875357575012092435818897637568576338591658906825696115899712961886531206468353112464303876797512732154511897427970898268130624967485764373669918056625504784824998934439907071870065782976353539046110739477260820977447691744908295407127057159577805824505655922998368189617633340244218787639864168140191105944197456524264293073596952512781806323556104988952767887929467472670806435444036917392567205785228083205264805575795016660933155336887660458313691819949883387321371081439909169143617335868073641752985514988996029588669865468151936059836309974828726072529025873465653609193468858048395861939045000165659638363621371411990455033837504372538712712229171399580391478020405622755813536065966952094148953740575612469756767963950984077171432915167711459092905368604920634832108041184030140069609187360879673890624836918316546513558578207841925798702888354090617308474671737801156864626593625028685644910975965509600885607882072069826655365144037550140758727601983849243486277799488077379756019043023265439152417880379381702391059151212568898980031929594113569466052363134135340700635960065570290886788110917331230071510439628841869132716116454171227283975268065169213560991422483682766035112862138274012894642243828550052705016465024926303779884268905255049304938684518770126732880102147487328214005414979168466412264970348918483375218039336882984410067014057251706544088496234501743927831755377626188860442577430273389633511302410302865796707096311242227958578398751045412630667849060633930733021802384162672146384601903856223765931260416853931873910008762728340236243767154428917393565803191896078957030015953931742407007631821169355533975615691105436942219038122371275671157088328497216587672146022718891176972443702486338457354431245549113792451798155335880938874165450844903545036639702701450396979040022513723068317583747804376214273635193229622390546407129695727744150844788187708564477239968574815464114089525377963026373632685348780134004766859579828432333609018960877280044474434812230001010943976137802752572950013079266898895352137978011080480875499475102052266937071750860730635628623120792897906171925356013511905797981127211250799838186009548315079454028977250252263929071690007632443384324046960675935134036219727887467684673590129784804224461659236707085759563939147939644909483981730406498845585173935067818214148880119677195738916826794216204520123288313509515144280826319925739587194175543185369819005182990795793554681581151369968410018314476067972989444827156600700538437218997250110099403610386801111064372533162364802211664297657822151309006088461365873628394031227912559712407634292435016315291053923089433209534810811984917915006930549757610953181104180513924604396460880541892002754682929944918488695123565338335685191520552347733513387356534712027471050894187128046984779311783766541268236079653199020986812725138258975733101278219028413085320170955591558628805627048137658806834987137313759170820790551775933013238754573156376536389171437233574016869544238103355861340863209082789953253006508150843689224496219925464972510292686212246203119419751723491130804752813793455595131545371181468015604823078863768031076882345116049995701383014908921924336150154565333247235077262511152723728230218347121969631734623896492956703587126140535750520161446093060673187002178077625005843886236827719041171649028077932396948411231859548049845570455413661626702849043591630073640414591510885892500157757672500118297709161897402693148537250745126802781227242109663286998775067163890015068872489117955457128057779040772472539038983091881804031660270739260999597864746556280947146708566210501294111784290140291890994182803079191530212635434472668830743383081678921985579390081963646455736046104804195991343136075545214472412371717914767939326529773955156426640596228036120833695732598134790730292285413792241978192094656161161115660867825701476588369800461893559544339734081927057769809575434687903604370823133386565037817228844394169926870327535186577992294696579079435017178570376311447927037473359817925119220698511293878147028018486493037180982631442680382174520627604625483112766849785400633599523532281385538288733041853257494110269471517961888214470026229974057547008009733673183596033569735654880163142855349064336761665020261338546642240233937845344861197697365810958187894397559837422758915028624849717979667791855799642081612239658049861227253315851190148811851475626502343662102760876534299969031993097437291695939387928737703956478860296425237936818893188102578329372018426245645247929409389657541204203813421937576559735528215549922841059216451367876127314782525554303791934831080488230737953831994535768896319576451547305548022038707703265506807754362395556716114058277648769539731912354156927412099476362163836581978139297799622528837895499379551032687483936211524211044743362749412533896363396233673733799483733380061654043067220166271853077906095860403471277926395528489865599269921278549413391091666928668703043862371293373209205456175622612953479947989500803115410251064434365875852127156942306760389506257881822893654417619782513382166573056998361027490435540413889964067655099079493950480320714338307064000758347900088703688085767019060534232820608847007530690376869050835708633039514230398761769521146043014799276178841078174501993526982284626669640776115474557839350359733267046368888196906294796102281067902517480358002643453910496592208520719810298768380858868509286228953204581779529745053872749387869810323516643862172882249041518460355041420602599207661114701463508706120011814139706184271131160210551816523241984485278598571898629232938523148520522180364268828012583251554542823842658073332805004251143652994282014961548595591757587987319945589975054215682715254135392311720808798835799064291510926519854278735719631477359889629981477182826811930222751154907036648163876305148150302874689636524563960055320251388249677908396411972001675069864860334907573795727605660361411955533076723984826284743885208235365938610638992242302253481329758388217256583408097952918046832290178227204162503747338278212806528419314180058644590974537941986422808005614180856050830472716467315529068709045396791810457372276056169023182646640199225221377723100499674240694155620119917122373760884154523697760432641676773465684217446153294427284570714821795774189739487961432134611605803958708112918378470262038886218385453578834399385114107228895050275248621661212854619437034384782866848994795249692937225099735331391749770407190503329688397580113313765609864635400227713545146121503474480838572895310214314247492543199601288427793993836421830067552926126336452338632721439176559939650610651249354489967166437061919634363926669280090145482999313514115778281815837339604964510183330993246475011051661681487085907242398045515016617323971715108556530286304727186119113413414171202126888676980822085511126374541760475247298203694434610594167233834010738775791758820560309156883298733415561989678810278733174879236885167197313417184467158244237631815848139556525545629529333581991465315455246782799406901374319862595872294255761002782501090426209749743786125852566283413375407712805896274190533654234014660222416167366567544676595777609795663441378161789874835589597369310276245589206348332434990629932338922260236845442802441906001097460189299662539882629321609408885797483251213542052240497467959780239944886921531379187003515860440646109319179890266546219454697520802201686485293141054316600491356077704293547887588039526105969208425397882013437505986246232263069679620040640817387914713092941599571793909909635347634042906274453338698695519761292567301181236016009931844149565405892468956122682988392123656202839859927424457981750581647269784480604890433118343014093019507709789209233367235423603174003344455291155083765067212101341058913421433008471584673505324926614281250160694328078527310118777718718545660072593153270254193039975485000449492465997511963318871381722007578141927613194210682958019231350358446642903732597061771875065607079979320015150177273257314825194013123463424899184083945192480328049386533758853723957066910926336313669641117712588741156479975697397954487893595497510852300343441526989007444195893993784636928534289546925555138471967596253014883235068214309581690504206290040993575049380239619783883478190723062575873220837923455942719992515668504100834462865376221655970255871813326985461077324722890566213049274127605283678468502992010088634922015529150705965765761854900905614587573573378374313870136344856785586817721464559909158234953926655555923106281496052481509896908471480528829738689954557334572835108580428948275302436929479909345556328578997192190975392396567101073783662899406765602981362186252123564484774081692182703149447746008823497857186169423380299151644393736512818628831982436889562890947548384585896667628556336762964704700792334297204705598140512572341302413102031483927071567296749532470269343151299074433766571951917994965327795781485484324985421919046122549665047765415739592731412736031023914145313948469989968084249186810401276038359798119159308669181627679532321541270408879668263011033638018814020893410107989902103574906813537890482047768203180492553663671333545458152882718315935815821042453767625002319350609230350881851283372085206022690321777474139562707746181262370112256328400743241746439470580581144509771142533335936696110563717499012262344884609816785324391712716363855782151639609671012612847317311643216252157506666400748524673228067946331168414738914147228605694364893645445598968279292647720922500851849057821182739488275153489718098391502935718712529356177083287980761867120244080647873597771117107484214760689025597990420067153886854706306735297475970321371912733220762955445833447207245803628180919296998114092407410484550111155494969226973142597882438633555377522096590733900594197638045387805822074508498582212887496027788860891522260084894795176720959885251646105867885571828307308954252831965047940377055230694288534466666380468417180504990974842045617763506987022289591318265306351393005867538863963932958633252661425621031649760070339221948500732604711926136880228356191747411752481356197263728984665573180866978529753303001820037211309331620960622862072714972454943187397701394028754150862362647732794691870929285930702728178356476375596081620648389719481752513865558352604023091345832258507883032004554847199504444553710181875754805103502962550919209948309922478694876916304863626634747646272065176755354964872556308935343493655286441237704659067473372511657724849671565446403077150442803326254796128613821756461171582657055211934503487720462993774089642650022925164456289108741341930462233247874617155861386863234002644756828174627820384469407859794046943911471903998703283850045303641284812735720895992494054929681115748943078866845466533868041424528296324181183425968158744671121355451604204426730748814348619117274112196378608761453212616167722433463376683422230943156163992786849803652983632371914834579115924651186566047650731533510643821959729914389001677547097524025779037422024695626380778893739275872016842936594845648945978482869968421469753284576999182836050081697741661416870938581845005766114221951754354766404989261656642074051014331776266976537390305292660463680000093609523670830463386503924179511565660313057437699156814541709634823006155918027372517307237524886693878829426520022703933567704318463759466052481496230286440477629019422604525683999416559019500297449985253724468315940468291924668387626641404855797136849722491522959341155691864374960305432516285001296991087646391185545607712653801882783112685301168882889532723802440958369229972634308635513688454061874393403990213712966146192631998294351195525021810381627399237086129043198791338319547929622112964059261073515047087699858875603181093197837549562051304782661471365350844907342775776830217817976420460945061823161733797330034204538059774762999584258109338485513243050157827612137521993079032365806247711236940938330325498473889022242297367635864118803657892947706363308131036299718085496656206353032141054366143856340171656325039633827014247979991489979315007206353682590637994541708814485388146935052147116815108603603178819674950581655082550255445949530406617759496009452166878839876225346077636402784301689540878183752567160163372223042421750775005269374759268835256787797055054976932489715171161742462838026453504495205114556231863914261491649109610427762433349252489399810802729157338003240729768238375101263290323635914643450561756370880816947461270759339523051784105864942379942108448380338448251601863634329376576748497076213291300856219215996696404478228651305843107114680274205954133371235912553253911285364278800257846760836039787382203206140020426746878608605376244562621251593277063307575875765162709044464675778777273806142051281891544624235202678740004262112633092555144449493531797543940243172225668320899113676198673105568607691079446492032238955254258599156109292294141243172733214531175526765093567867073747493545738912376781361957184166903967430269409809199187670671496971803204372843669648774906048353887536662958150095730369153313411825743063642525861887128334986925773322360117935462935255224671784556480963824443946602960866806769391609860394667565502732676568717742334519448795570969008714278170818075756211558960772379933251767343111149220863309500463523932835427266049578071591171569973151429642349312170081226487276066120014263611289079284731965593849584963159148485066221101250732358272593194791008110320907731603368420138090841105414124585230942204811513485086401149658992752732620013991064140309427696124926640344602618870159084295384829840671810323255199717860846674749548969827938213838981351203547634105652066433673016301748227511570166311353186250746256399815481715211486842491449089260063173152082204878986407604041392144622904695230365589485127721575904219301700095782074903890171059493335635670649067980764165849136185044227163012202204914630874739875037880992207903277164913109159390106537057861831492334117860007056882964415671997529241576610345126528703540636985638830078415473758898172629896806198412437120572486097034622294140726236359501946423429031209349213342158287386243579309377742276506247960082921299327408227079737478611102525329393326917272252818522201643178047535197048124264197563362709115546325921264650898568682177358663854557017918185924568157281054268637976473457900221017461869209895939540847151201331478159758048363743812842911596550490624402298183859703394672814381621298943943841239899381183140732579222924530880823232848063944703415086788664258745173159254830170121522360715274596929309012769649572640438312898911792642851444368546793538077525749830560921531388931410183325979817490933335239778017943964741998792902070837623653373975996845443025726084351964377476387997415016314782902373051213150481943725200418607344557792829947709993588796220303985581156460297935388339749632027493312010062557741096849743638912818983199018724354335028678616240255235145583177921858484873247116509707368726213301668112801064413235320444465794038101150746207566145172581426149672605100497834009773182819880254515924698938689358216737309087071075491637412496458415501113286505026738759428945890271151900722861758323366590305906261713159799825113570754066975604360388180622797206310339684073950891837732715156667706701538131125758366255214882857379672255525445562935279666432806506571809972535240540483472578742104424806519798695829530609164263638746478601664135876415934225047069427280474498748163637316628850055289244883267958730559996777277297700825805396580669856669904101980674103656084634212954910692391544497404170175348075596731543355917578719579589922537702698810661874893213075774344172925389115807101317610858078953562306592370069745409907483511243731412022142867256866618926254377449664950516694921755765897379170224313468650300401196370148725426950559615564133065927322122498061508450674077290771229227761701319459792705225920206464990584035754255787049698100258840105708380381559904216530467963223198967528602600269197705347436636142150557779288697365875581095769295699952842390749263944575793963775065070739368539220466744135562909502064405213078788546768191973912846086466714979725872079753925914777075288496225116214015963019200303228576196552173619390843770363163431021514499488921374430418683251489309759173762271210730102686338104558236069084898639516106875647381416139051347014287881589554440374393860657559202884044846037728212548901025783894017518744406582361398539096723140515936181315899987313235838635020826892008936775904930210198384853818276243481530515638782013437473315936486547884942455260473748139809411895778034041756884573681034160326123415000911414307350063195673613467092012427558404388038713940460413807421986401143277399018422808028986114979605290931254510261443383934212450267825054383211380378101415689462344095846387521963515564334435569227274371981085909807070542133184171095059734573838062620637141242560998206436989943690998513917107005783305038543364199445873370127954471503986861931674934725108581026914148110499791462934104207834323358450331630327258147374388551816347881942153056780047062554662309172767061654910475947499632993353756602285246460727459130369334502463608391499587598010712955984809989626314843934764712689511015329492361757182497508175498664188329695886214975721864222344459768373373295607759154160748124426308746123227168638286514140525959054391139035236464918853809946228703224238212898884405590129826849942470986190799630709887026581050975093507110009237843372653365846792844321590433004517364101907508447853192359681900096808137014531068281378335592632075741571688460694453263501715491041955823294568440918211716113807679527913181375578615436024824719177371957765188293484024453543843736315035531382925780320318202609271604346856644314993143721463696827441933073135014360008254231010547822040518874857221870652415913763694388071188960413268131901594932805517327266452519122803041306917652118266450424017856679795159204042342486835051213822063735030284905767185136718129478590539597804502156242037921689817064323899149197479617142339845119027056018837468896657911296347472129265279337453877617747509746897295862415088018643620892729368046755486576652770474626278158057195887526055169817604059266707974726664962115985871913124270998080404890519579501465672299697731940938751773222701732067937534668670517743288131045705440883983324860244998966344924368002005603785258943364496680700135554656483606325386571656163386588754739655811135402755133438217729202075389651660631558067712397244101484244073244298577896700400041528710972189056280916699392377685562167248277987123433018259307022254121545205772829249966203051909798408178109923825348408085288762214374353869442434000134477032593623550777100126077755652995332785773724830441066354988847319117438015749616623023783191115006234397478792678351737103021433558131891749888350029662530374063730436542118184892173515797036850147344217487201952658626979201387647828490438127686124094214026346634250657948078020873364406787185855545354690014381283086858817168334754841390021789211756996527540000259735468299949898632616904742585217280367997428088874722093422865195812445725106635448278315462928686226495508142262451607801459157602526207369406769074374732494823288601777713473482396472663932999942102854807155852407828645345984702614880778683837935880185196572435113732561612155588803313940384477337742053710634573504224460385178918853553266768953700260629819203572484154418570527905368890966186917352701528981442363509106132695303075098408190990117271367798165803765249525147594313954247610545969542703395106258115705371061572944502442989811548154107176679156392140468485446430900490274809601143762179361335908241916439271638019223474887029710252954743510089765925550950632052765795169015329817160612056799100280606993373766159183934245511250438919283918935553283205480160770372488960934215549364742279158638317056908688650320207265676157199425238433729619341007874215100202718806557810416384901644698602910774201638859315044913420145388235472345127434119487492269646021787631951615060164457217555020645229455458595908353012187331460902178346798746965296731269576275650260940415354130361434368549348838020765026870822357026006032201587750338181643612475907904817331097691323829587949581831786889390617141782453788829589528259216355033621776135774431473563679001717240315709984411438588970178485087332428297173057179599659814128257724745423101240659677227106490914372020642596113202782347408288527318732317637188742662119653124560591574055786577000511237704101343545663650032853479223997275145677995539491296700768771707733401329284855413468353649549254428035696458034463635723092636833009544883446948349370788606292539143970244259342882519745624366645261053382572405736426493493949917521951978213362437089737651019367060805562173498979165900204163989918596472124226675744078107316915419499352522183860794561202388994658448899602484481371683385628852142779024133503174493398083437157552236375128517406676505830577954912842940916562046011298905068065666777029824288368850891635002132914037817334301187398631930905584905241204000567762868044349744655645977263327708631820281414950333869591123119423915862352576968585520810696980061014437582933085213531149502245154197015524977366562031161991199114343197311231908340118545403842163929636262144511402399836121855306476349922458374943090008625195166429613867879364587291690215712988369624589432183208362830011146532335804763282183730105291208587509960712887490102947544242109690956593379920829218043045030016246092230382711745778811579961044472485783135167198299527927144634344411807720889446325211991852188296716907471379280192921736672391912777216777355350551519667912196431059033860599157951615301157833355669292885438079544881051855911328835849284407868288282837979662655085706622115913609398531641576885072372906230643278615080337049515872008518419944058244244065301732972346918596160542060399596694849918918083657204961760215713534652081411237351404449524249465226880273728775826402992377383174273101799415224731286873589224280843447522299595814060399657579590473894512316608431033867121868244789160316293783976841629943154162491518738318251003016158556422890626930466065050850676583019077034342948354215718588969880703591161504984985101967807157871126753539283961583633635867349764913615504445833598646152412185985390983517901247022732962621630244807939700960897364932079548687480368984970299499339174743582210879563546622773272774254450283343430610270712505826194080214381762192901186979679923629230895293847527931250053939062865284660559556857354910730613134386350941580214205751979853143385718962676674963364090235565232197772087298424915475299899812228048387264538599812278079469933689040675286703794731704650791839983949976614326299885926797925726490930841231162637895130410014013055634560818907575940892294980105041402062703562207711329544704206732696239817986087991026797366855834808687113738999831621832963073227074421797973797558060138744294509129779289610951241368551973405400122680426720485034431857319263808762034548391414729199587486280727632834837387809013467458246847066942408222807367794794309173260123604800035398356039556932885334642001097120878146710459642837336108023590021138672317672114413753678545623165303567660171966588387766664372364428583852950682252628296539399530065603891068479982990097075213674452268918268505844497935901901117130860621366995457988566394694419881190460442165715858005371172401524150236467545673952837342834638102765532525021906645544342363394068555376092058318060409929786312311073440858866867323630142066454103772127895867566499148787816739751114262079001901454361778173676548870380057408674884981195130312586511204158075517095098788742664454987741007345973243403354772566750413169841670146088227901357671919709623524810652485860746598848357456756030731915565277415969986076617238042801040295124929068560077512166272422053492073127572247558764993679379420290772230065256061188011690314482120393989400065695223806964195540397292000683065746546843368603492538206353055462478034897536864623935581156502941838029923481695196090791877775923083037419811321297980945824239717319192436295881185779632911715875302198491182434386310267838821089039786846231570525497351340696561118961143846319817837358041522582894077442426747164477710721763162502404623125121979362493801757721985820625432072703379853356414089937097683903825207133964432854626391043968506708793154130900475467704778889615862796093584819213194415998812280713319533692581102957955331846372337708576065211612665479995153713054740465868384182107498780197883049171382711586578631066673544930017149353880576949760153141154699498450256431327454291319044403483669087322644131106888719932053691112887353306000624633527167156249576609675499161540668808142021141432027045862142728611555874189781784423294179968904237805332629493959617444739102832198485552127048293603448253051118493124492071596196616423310182307201804902003501033765773105034527993169576790681984156021995743013028782049854233688614109722063148449019291494762318294874205986542525687122519888002282466003087162957165501211292149425066024071816992492901996165235983529178826177234725544097110572505459963997806669453647787761750571949724841491809613040740052235321981385330990632974940760804907679486650530871256123741040752440444898148973954716896156887633557416226961705505699944969466941487055653272449639014134947677202342687742692883508877974373673081493274623808944362496191118861904079932684286489264625780086609522407124746562692920246085277327328581132501549633730293342791601145004252368757964318378901337443980451486965948157633641010700439958630877916843151738269708915372378733411337402321143897738425370391656491154126256369201452906671717784971130890902730764818012460093027861360117223988219197330691333620067881520289763386415579743480432480173058630359110917910342055072613128231142232317687942922268192536913963513844344583412109097999627141490824086595583146378555733820465291012782545420541603570528735205065004508085469951062543507452018870779079795529873884251832780336886286581497813458164717058718572688661643328889831131097613154853866896606076391024968828782356203994609352868326689654792727585516087238674792722088957890922257937695694235786208856376244156846725574016120204121382904783652751955311723015871035427291975288338300234918801613114015408674741492425618980861479060120710696354615889371361352038511467771448216626987988205097713294363944935294042379421365724459278839772289412824951689430026373394027267539533176442105930346114438662056738963787280705630076888112425584027601764923261594487216255835257892353560520021512630811178209616930121341128127303374856567101477566524796921622470191887047662931354699583637024339036915274031765495204058573268152608103957371837249655264999688697033431989141893228141194915885215046073999090763664485600476788358124092034650370998969149465017964691221141898449156833800225023954910433035395363698586130870356910666201224355505736954999102193462068715686389417558027133542069241449173334934685406427005712944047541230186216342485956081156655753978309018714658718674131431908468629075414844531415902149748624489330487797235431357310487609031597705764764375545200886409636897386313069403779371954778697929963962429708382668840699390595043986509568193311284850318556898377153354089398570730468015654888429548230193054071256990490624994636227700206241419379749902043433401244643322057482608194798755922642407620986912220242280335029819789171793456750161150837782054029550078600617838776223497717126060817314910143099266682955690880159147491098167512690977157876816711337553283737532660649288154158802182922815231564001883417900835419422050237283855830693163600988322124358551189600112572338679879338004084415104508017946130067397250564151972304672767215346881465135137509899854397000656526985599387230149301656682997193444029812765146268661881027344924025567038928637225967376904927921452429022433162938875636446775697527931448100090229703059761768982827185982628115759830903765697716757402812863238763102008480191229542804016479571065880043435655350987806017818150488555834590727652723188715571252057363697286183375361925224686290578594859150670327197225170516625098168515397728743650083608559207632998765573022437305684002998347343189982653350225860907776184994922426243128459112033743653324199788760967786598441842019724187579411365355810862901735401520754102470670413771072084272131438994070332452536245501833968159704199735058099200519566829461587507832859545869564850505359040165644919503719551398379712278732270105450211699330556427490551336670071177385281311840038810066862899673944116688869186477995872698972115652527425037912302972965772590786690961992280038072608782613636386855787475888960291641752202765377055401765346022013176456614218926309795590384563674828852613296741452232122873794445782173664675559628951808508027695998854576317375592425690701870462083904130419131086731030280371150464470292838444653407007997261442506057141427679918436877617133736412945845528874013006726828454572012183452509499150039840205218770703611768688328092975671744214511570064010594969714061326600954287887021671100739339055200562652723510195223732155750115978368083908823633653019528832932382949978501870967179800390391958121120464338198294447737881085631507880613451675317744078792165648378982400518940047402274973561624355796572849504304375425095075478974356960360180829174520916516470113400144206845503129828102932004677520720397435778970678412099245579572013334031327742345424924370539661883139924156796681922031913352980767459085901996654008893030427165928670726723892075944903104546416374560410808280403496170195621978100537866660368907581751058781636947213916558095864605893788307206373023461972614180266720111452558894120605887410806845599743343324725058298984603500623142467107756306767416960372068593178578388120950442161318251055739110127587857657878829729307770550416045831350466327455322689640968039744098293692478542716443448111230573579013463884695436344753967780608578142905164976153379730387869650844864680140273517071265297463142015910898113293970576426002564510621025793428141769367238199399348878723755904576664837152611356181828765448852603727560131027044627527903537019009355365696320026609258980070487208990481128154844713386147166334866918263969011104041545417500964867210858179141385771034011019704949610837433142794020247966065948558550854803142318021995792502360841162592967774635256864852872890496045173760069791994749330838248643133650755606975367395514428568419104236569435861959353401714064092202735845885040732230777737255509048274665500430886005778015541072934525773803711381346075523661635728910291797201932284149122031162495146725079387078259351565255540500605717540241127540416604816003826183014172762572315692276276188405822534703055257477666632973774102558794690582355730124786159228945918688284640725082296103448278764924409164156720605703550896190746448420094581808439375778243524509821135835254317497260570266633536645746086464138563179397947135367759246760805112036006736777091991270814818236590079771757620921282612063249702047537737683911914622053095774334635464120012442197889383080283571566693738470694639547621487428301508273202258530800981007540094956819333315040083948390761017537128092766411615315893694883429414917866896231078606446153065758352456618079342544687509248485361795621959744027300442635730471441968180858192543188185747652429222740449747606876005203926172750091719655215837872729753747832011420771483267821332642117086525782317573585895784723881055990965404782574797322009986009689215680169721768632534821657069236765229056577388666980526219920640765725366075527011613944414907177796325373054946136249386440287658542260062260304747222766706100555020287799318738729087458807534547361366340905037391073786675995388096628931141092085713243948850479334772610470635008082589849262810721588935107068436076038803573625043129670879024821156626541085680284643621184418117168141913918952272477249231898705052720137367210364177909392475253677771635516254860791762282844347391534824580620035667763745748593039504927410063732446286695117323702175171489127735946937852351598948849147148121893469750835961584403320562690856369849265661209611439287188457152725794611461492604922242110139938359023392820638755102211805695146502138672624585083929362722863751660185055020544323384290644618362929312728448269819322729802041764256340854035144672234485631494307938022686812214300493209918923501041431569093661677647692595786955862478242866875678610055637851710048626312204421096232747806926965395620163945071108597712176354603521527439232182418047439843804864647771604377739171891883294729226327379570305899333178002719424611734797927865773440655906090763850089075221347408463319865203044756198973031290260424901697090250638724811724559766168916642835189343311204438159034384139704853672048935470538754297566924599510280166018900421716686499373283570609428316026901374864055228052615314681054394989534746750853733245670294969351975732014088074266641209282734352801553369567014719306393109486073295424810594018295055912846871337430617436240843048494252239303427448421212805739069514425693130442601701237719441614585213819317259799416049631252753491719942699103512121821767792362603507639140346288514071123572539854698814445180179531024299493579626397170013358504759169383767310531022619702840516711024970983145413189094006491963264812792325996301557280710015424814175801622705924557903063324283927268557747980543495015077826215234815335422922324017051791242370531246533801952888336475185251945451611668783072115126238440780764707237667160992835816207865278310978539902719722359403072036549412543059190132939944034647010894243384433064770492614693725581585087988700845415129950270265957683257305241516452812288464481064768026084528672798637994471471051614659538096899676719671889205746664069038559575292414766147058430360652163417758801445784499792440559355406782071479503397277456708316978789377406837582854120809204910867787126820127019258818875412944012225840457373709503834098309072242503605058140677134095636258399232294411083207371523765714570546120181942490125451668821622326340618381146103656577694113879455045940063552745159024160467490264245298364923107715742269149387394424306096093506624707937573494938322208716909519124024462962033173611996904513927346542533432620063729652106221860071988670919718281264935397629275471315779211984262923750657674991423651386064383604751534242255709789558576908466284332625682414452812029486133308511771622149596537216871762438697995134501486617738236645912940236936890827077031368935635758690076095989523364614896072169285558862580972546845622772941619410640137711839297598335002330497421671400592497318629953592908065294069536533750004715318874735166659844772989816491573452011983947859080910098655641168134298979537308464657760109994488549621028257147721572033746639755055115102089331055191744437889915042048990216617140152174950423240313673022760937180474842002524411379484745975738500168466329142724608618344497394257890081632396700472656848726712441074955264174842710112449285313294162316623157938262879142192911595675859677262452773243612997243583863764984937047612219728115519628138694008845128255952439443051632108142668103681116732173838771453656699966527658889866027500006703826770219441534099216901074249390206216827143642903113023313783461793558253324816560202289565643249098825097464311645973212623253996871735402233059580661439225391721462730487566383385926560676126141730975276767104430511372909144279051248200496946111748713746499730740083638280475736088694104602414343206134445506961596676074385018169817303744947188998929568995007234658212694928121656642804196638580463761054819555882782522683893313938086926111802914329546820230512458282589009336135875755433641823251291076711038594311165618044212067591974408844644746078711324849354196320609414361496997545016923022295237238557646362110704367489854959731827745709431224720660617144364871525031889056414710130007403739257348960088495325359153267384480660389899357886900602005881347111266962222353379839072429680779791336396710481047924675195672946578370038444016250990446701050290586440848451203860502347816687455259547092625954576784092783981758379373252567234267512525183272298836145990458137426776184180622713736307243883140897453584233256957391381743361859946901840909854382732160816608953640647471835291246521438421585864437140940063572434805081930968973259039973985484483763163671350849109461024095754879255913687294767714021348489388386239692465273624896689460723996057034146818297761461134267150117152570485819125632209645627063776804285612218982970963471870052080364198235256805046639475735992799572809705785965738339656682720167755941553539604854513627643902669730725468482850630648902832693903500788475676634509097761945931593566460642449685621113535877057899083273946767094576279242159720597108234903908765256854769744721766711707280284845271517858642222585331844041561176118911048498626398456818067331510588251825464706906834065814269535763380883970948001989769685566482846781247029514481643678729089605092394017246430198636819437341607173459742183215969503642318053510825909475354990419360625422432163178144094379761658599760553593958032436002875564637115126206039132590677139349256613559155297539846171678250228276953913266239320877289243277717606949057927069938060068213753292158423205897979909374610139164143155980135167843804545586080094346512536130300189194617874891461534999488252848490073531603355158431277058264855939174741476876557681898741072502226170353866401335007257740284909293032192596881762526090515638048408393748922207859966501726625883165741717359381220143122393986569945418275106664393222352242220588342041699410014848897491171639284458396293774182821224149578995951700891263201365119276478779947804569901456517113976056814413019110989209176493283817269005996334155564737137062725819088661163459572321449537779428984686369538440253453055692968954191164964716561838988073308553067326072582956159633016861956162571188126953362698127691504117732601371054286672428464908073456616962442499082295649036105624801410069903108282654626410126833713612122669575271570356242740270913333770841939270049525771164399852450046890341466400025704182569931521761675513349204888521017993764242544200676912629577550271135705893844408239879200682128613737257778763746663812681280695588785089595915845700108266183886209334211804922776237826582721851395027339542313534201580327082046202517733409098109427943103660566142036961918916921006293374750885549588037412534999829071605772312764107530355521155273633426847546661931418219143793389410378361962406440597358768406892051976924441903701478372074131065663455936676392955222958172795489775556669611361943094769954051010796851380824495961720913880706599025030274087807792365104012734440133561603051439982474848543559216127566999287516297026889047826991732939676470590682169512697707466089950082305198071973042963032787822208722752059726242128512141464970580105444978621736987764717280426324357158818228080589864420555301892470889047641648748655749581425860878286782066434398781244967778040476247952810246255648507571083042108306143122435591707288168836181455617863028442394489316917505835458912502138535709803435656896560267952860891492495668677857028698480042375886448559656644400055239856526669209969258364599634626146163199069354261324016888437712644022787911807769266170624160226119084345184647217984613065547525420750918911573215198406508314923332807195654415759373000457661818765421244554350161709706697472044021275032477418790765644120730810947947249053396760145379561874476217733427752140120124530489718043445060293086012898801258052544151143112441814476989359260512162992384723173256859240461850238498312335461092944108645517930448675070483601610937543194797181201880940497030795451995739853654986403804027631258844657422549448835232620956562628306153729188641192674739744292883882075915591374206849417873983878919276858213641226684768566440369680995771339937042991991714235032899307067191034258971765662909272265888769806984115506441753009064094454288888850167900525323588563020804198917603442157255882930604312643992228424567230862608115093383963763229210506057980403933974546985971264298251922329070832944872190356083506999518313667973270011518350815986301341397957295857432011147309967750761850327479172847054280315785381277798738979150363443933046119823240403028971562968239636322338812217037467849350980610885681484432565654910508420234998510910826443581526246995657927406923297548302773000708572450858984649243303013411335489276135452116929763233491481454210780422818219403310258297358986256869752044302198621513958238123194664955007963136081486265495729866535540682065982346882830419899581046545844507119920213881576022956359173305811829612573533648454858177706877230126731686271867454962387177529363553083166263142178717299110189642165898650023606176553400387555218386745539296851520913551150617870229638040687223236352159280700063895345476103045615467301937730735296022981700651426893823370569136685894618090369446821442046419202324353365976334818166393103363468850087792474798260195384565034397250128011954087039449985904772237621180814997988831887960952609863696480440632790305096399294238363183090275763401973370144357407792477097958601498493182299548660524558490155633629306499608964642762727975544809087256171072854653627031390136978360787144677543174957370504418615752286375952548300203803304316392316933060779666564515406167361803076383352968293131962609823731484524973217073088449925581113639297644090438681323018129360491017830819933978238066422859748247328083939998741857770718968920876810269315307677118296024490456793319365281802007569435902328824168656693606645442284680278088020506744287125923416683992158416078933952643235367657102484615849796320805705775055841908609626269389666212965212867309239689105438279791200038182642840444175204171599372299168394878152779600832717611727160072274705928511641106209546714270471420543369625919210810606375437761918236598792798614095178405408304687800127203556609632473665131137789581470683851512083937440813408015575618627281953135885980149896962169958278361105890330789873044357283273041934646999661088427045495905340418798331698146883066470085384098304099411397908798629856452003668515552472792427513165025157870066474740178231594004508384804750172917292799729395299020532320807955869356816529937950127681264352120457176674906302093483179973397756440081834269453110263334426518824809468278133169066644192016002827634167162813730300646673545497173258316135210594033111168555794467595765455566967201378930843051763238240186417193059947560021047123638951530065993914443180450600382200704203522785491793161820527032748711754197078212241781584024078855923276127289207189784848146759787692060262325634845265936494088877365455979597121273663119090547421330250883332499091195168135019053087158244712955225199483325164510041054845314350945530780265785246911080147034486149713114740483133877529727658660282326730790781823715389924915498951298535333959276427133306605566468014662804388800541404754363666891079792872796658590735770643875822880808023640444144967421462292705253307186773003324139949776606187397535471045546843688507700848164955454087406958868612270655601081285527944035548321806553206303211597902969690869171682240066557850292982791834049416137700027769522556027308029840398194467893322781904276403134291663643096746229008213760897939612913740577512081797971188685140361651261526179230162186401487578234200499796389822820822646621811595924734876781946915125159935481401351899296425187767618969983821087689791737362892278173224535988513764575337971542614946022443954092039986457686661531085559197708793018538736841413039737383856253790384908440194413118177457047475158634688303292375202340416878579365461838994243313662030260254987615422304459378133665973996536653590947555832701325180434181917813550403421698588512461903744651627613563470520913207531124892096923742001629623075525394080320246295510912893741981177017128806653769252396789262689219566710618859056268399282652613905946455649240525527795231238503429094950165567953714896754064700958525135053535835182431824663977471191855932099090673306446862429613491338106903241450346941504278555789750251890413853701015147229432302661279379577756866774177326338501367151600293698323264170546421153547115022324871986246529238754137306041399797463474119074416612477315194193578222371120942056547615628671564441352127136530781216263925193707560472063437765671036665553960629078911852706015116968749987336895046708386367328916069571281109097368618333380921872740605416777900525688350513524634421258548869377612361067168383379058327834043958045540988380341729597298501460225955309739634412085146431206198015459798843814482614239514790069283013412323203733484347898650613122868992698808184406383588497114244049527903648582342689634343088104709140478470025015145170493218040496735670430903179991676961287624087421601444451062048741061173318987180565708217493309352015254032331501128140441343165275160869509585648112217619036846915662376181815058723908062319068527772675726074452160301200110857840619985782983342342551860392642590001290413435944293494646985879660069280147645819196849987635668252835798506781813494583909113314275245333798345368513633458310642762383239697411581306142722217488670616720231039816332749403163802670540198052195137587642339536074136916979960139443425915019392542674536147066492414816525866141289993740066760613264091342347622529715394017516631391786900471076612989940125314124748265920232471164301958434034454110772775015941399584669280592613340285932568643356941631964420336796147420950659913702046671576081507288255895998306378763781634943540559207205852356081667788516200074221978469140981885136894374074158084463726433570644630007972690430570672165012042583601919350591273391708608910279390173928175053653719042494552778839829235768394262934204018670445030296754508131587455304962242444685192718285806094945354510984448712940170191189156675024212940588288764920989648786941959215210950661425596844235097417585337942735674394910403662608737624496296112461102661041961958238895898138448020317864583426898998598208353326429907643802875107580781895050077182755993550963723403598667227274030972234234568681663458244206675177903204932893145902418214880590525729305248220145404718001504808040668045269527578768914418523939280727418699610172110932366108225824490705476440512030260088624275802606368062049074618183471810037211607857621179783216023118577915079923636572392845197480607140306250009612053012551696180926644717389096941912479554669528045645159519154304279769873599936674965962904538497942265431380173261146805100303689664198174280146151816295435236163131424569101795738860129611805587206602564454312180282340825863183586935047644263167787455276856103643675015816919225022152639371019858888705326081191048762722876186375599764122656152300642047228549300267489434848678142291723287049301064073330799306164138671409187217451809826774339555793306716975913441236202284765265663839048275462187518598014521929513823714529617230691437699884728694690196497560517028182832751904716762137145100841150118956219490689829146218710373997660182297741954988689567022535729064754683748590502283417426463171895616789631633674899693872043600555643658757252941707884858494925863091324838655069426608596671348117724280162109144414116106106214875028757862489860381053866730713826491261761507772279307313722062258659027277070255359783757317935147090131957672388485678740216793044794826473830012513615632352753522435331963818456356732042751341155840426127875860637055062762360316681047390797211823121700755730452787606660878842133205255206385671503615991867945000369129663714374294567824883813426723067656939802426135711488304397813757034888435590169103424494371758831588103178401784515537852777339832828567929197510147466386784441660299760958477044836743091311873030077895246139432610908763726629260828816661190981790135656294857373410745656865093742770378071601376067650222598243459048703760696543255997118314685278030049324225471178154171063734561115837816074487115463261441423987831516672479688026243877089317215999245640985200835299592252875476913751567507520120723663822073466790780850894928395895439722951784552590822448259742043635026942807330306550464733340055668572697345243099586544974151117634038905486242282716817996523358481658513629022296781768162706592985692980631719930724054619047349563728872579026777507420503353372944773321932753979219809814400781120966739714464388962663307599180279099785328237757129290491767461171079217684183011379047940512047593360861158353261975189503840778499439255674203632536820807935250269518093401322857836303196006475124811286484561373597099928639300306871426992613327082112347682816623781441902689860581211153104399127226353157264871826694149917560745594706654069180728203127040189059471624315024061960620361876066966602960349557806262245031770457816854203975112787637364101276662689680468806961560590104488528515781085986210720397714444011298714979327477975424985724527548556262417886218885443935253011687401600375573450197910056488570380990542122935284296949960844922877102985783220672140716338008443574802815645282263934666809714835300200781492462604216041776820152697054762031685951229910138111852340688647168827021492720428019990116051359315140964103190817067846468935032561098387117448889898428415046853510113840666699761546259193662696578038300778513431062504852928876973505263113507942122660471992753750154133972931657056652943066707337960881050297811258470185191117829949291184875915088136081852208890833347815423788982908230892267260213582399124285036911484272465905174060087911707067290788882243517918987430715365420671751571737607364946819084493356704519797975405127333126679771690982611960670664015049260273494854821233305627277065302304270242520051366339761186919506451837613291315321757683029969504926770091435172078278022556371991578614851432156813142126409888438313419250771075338603011881552928851655266685465441939355741013226446120785308979843697909676762483430569408119791126029985133079857382427033503172802415905722093077494243209115758373131303570269642455983577149125293211513227381671757609945437649355372998678674985693440697065048881253968065407613741454053400741930572111024175921308234289976128398528098878025320799045047976608068434401870811341667230061446244577122263325847386326911403115272180302886983270085425706131566998604529390156007583747564642634978801672946501500210722428052549275906133803353447868802272945234450468257645818493354429563063481964988351653833809348342691944434602322338338730829476243037636984617973583152724582928145424695937640705278910125927478859470078501263707141100764625661264606691178701292482032871738615834866762652574143613614783438810843386385210976175384794977864439922523277399883715628508937886869772500298342717767841814776183487296324740612163306215794872420826020058277248501335628439969392141063993229473569685216378356390692385836632472012196460012659858381762220219790630992162105071297446513202079618309794703274459369086511446694963431589101716900941768247913647183702137521981920737415017092210414466199475225898772047299277256624810249047068273785388531747825781524251608545189641815389702475719935300781097643711759521451643679746794516308595024860350605023647576240662806867029953628144911034322477329612073117324773566814844345935491546637558355461568037857430675389324810972043091879320798496512760625338808941998391313771396793522981948208938510870798963832373285981863885904590249296882488819662612845698211244956306667956815817297199420171289965315760471323042541881489750228565717962215578192866861237949495858337469551433282685219245525459377760378699508022402461886828505241540895325430916438613849904521628158429012001577574713313710531265933313082723848334961938892095171594512162840023924044888191000587474569080773301019951757350499825599539654163902288743109095558038176419208877224260609099403452056365591260494058618995574518529075019123682978901977724488271246725308247926132424740520132803994668482923410835183478130511429364270119704995613652302519326316533073105479729425084933056783427272777052557432431412329878578233143196950940475112370541868707813791425249446887290059005206846559648377746406884538366209506932968552999511944628069188204877291179292223255131870889133475178335288952983232352084052893700035978412711939627112685384116873287898576802279850020332178674655329054996175660021033182043824576179393201715641458204924627034899378392127754560781119926529226931330546579731311702269324879248798775593493967891484192327022609710036300402239238125588745153248873465422306022418471192618959706927780537007784816814234143255519184715075412945110818453466758686390155755761092412196561988833976583640420431793107397675367856700985023437638595175994092735018477936772231974623016985694906864840233733681196410149560367360443105398541206648277685431751683641481765120996648351964520106776719743664824198399842710801011203495192682822753709201407979702673508610324893038663674516827695840232857932838212291345956010249313764031331414816681247477728451967019770343161467847192849303158670549506928900644756506122060340762973370661416122420285269223005558992193848876032690318285289038319823205731234983387698406414770659134162758640237980723001162096825874709025924272330107968644758267779908890704436715315177018850279313526689809155363220760732743095693645084854103612426543795936553402137197871578822914531771688783999068943368718120286136621722696938120896756613514966882315435961368721140533388013104918588593532849178163290239363638894875552662895611458045840791021670446909646625842850417415133357915910864235403748659165455961271521274077883086230043782201584876194387794506345814231017484277789087159431502239966704145292070861329738388724511484130964709567506399158735664940278960404209372681154666272274249914540465515249564106478352824291020378592460212799476423921292396462511093156329979184297554950104554620374210562634532136288405066232028258616788244219180600478478779109098379033734678282868400387371424946412636554590856107900804815223488924892899701546663809287149854957987075315161944301091868432411140222457560758744753314067731867528751189873705325708332049434143748289521683783073333698804870343008657998103765517352014344120691552213441731768143173699036911869320960298535193558720254188966142842803084170803310110531725798843403919784076882513212302564101208344100609329211984614096386054480832348706270136133051020139009439957505867785960317563724939834034293411360445100706540718487099917877076273074038045218585518843897607290738260121846948018122818575891059618670139152191188511799379496299751705067921943584120831132839287505022635743938239410260898217248198871018169711915601987639652456215940581709888445176224148065037465412534072446632779336059670829740972014483698992843421596113998594381543197681219649591745892516721303054883865069052349111735879087410484301812311791274000212217053945797060735438964095963037204483192994747194252539014132550550343971273227096913939057473806389436599299643516999311239371329424024172924139239862152493419357699584688946462913488915650704062633380870161464897700244416020372860028483708375137432785525265317942747201139584414315157560561044795456052284315798180700718407445322888496231367140438182906730000475622623747179426608359617685404335146581921098606941653905313470810374683972921268066649593530192050955379733275057096403808990525800847034206211357661515044630729273151677428411799925358312630232526956594193762213060765718247649069921321147872091603365309870797484118560235455900038486306350510161483669044774767579158248033441592240896187253977245495542826803599387171004253329220015407417849405598577503500377758667069817147121265140259832999622999046248913543916837740344255585608811953043006213744642532777626446777084675207293321733615249097136376172942613276923136240827167477272280935419716388560479844438860312918415202169447211444379592817441945792392731285712715404234108551632375800374734509743099897203115191276204304781243001145120848050908420275612017745427486445972660133759462524180899016925717316153156620810078385687386426629189599155476939457025319837292055112929961584632267147548731400895605871978841746001734696866638769696093890037656866524184923038464752929615243758265908478868391884845637835000159558402691937241919051123169441911008053486641440045240574095382925022152447445027374130761063074203325788180360491447277292904340593086450799371396392136342633097945587584670826704671019262137382790655062619258373052827141809753954186185560917824926030626966500537692907522201156923283511292304295791592157910455508516637127705250555272564604255199280261830472319545809147754276657592184451550140056897986828188003802192922875585804356383783207478521453164232116636367972362270817265199466277980026035190927490232495970509471082521025243254346754281270225018307395926016851485240257515206411278841048373188678945531316756289477237733332557891727007212675591907756787304909815574556792137564792916341224669952434069958875925103045326611302630947841119411017728518898140134684418529198932763335057784550821543275423648681482712628618194547320182572885027587613261028468811865637710842172871649403168382673633850621187338634299258291004920915127626679232520373048479053939446978078583956299879395372954723743172762941276435510453565179487020379547145545391813056680522722744296549456424131393333949041499259809476170143133782721552433616265453449303020926039722398058594465221699269076782704294798889019047243750013234995021265129809209786128526520018758951759125922003456101710883392340255316458460223795463486604455551570120580547427594969063734225342670203794298222989456797862038196271996796601579804395953767995446825457486837134962723769441490858198374578398911767889937024300202959373457692416730652853668365633107005316288553793783351961971134794973062021847953173431739537957157367352582457290598823009658189108111388246718505104830843342154316831015722005057927723200280581046487676879923824861217187740250864805626382911022580472421477128747998589292556522989605916505419498348635755412827338335353050495399233281070299834429140519373579875396498007742074307932666361550615809962245568101154222258054567130698055636695014146310244495128911141075809167362763310125875636210602119050123884924359239929344569536698493345808518442458020571582246331487448281414607553292362396855347417886803618034216872938558201950359070043617064205033057014377817716363992860566323280529952624490450136342617894331853167399022313895130728743556025987434301097915378394594379565562996554603805334853203720856629358746366947509779671845998832875811309589346689075179680883507054468228786572004108925677575412526701529942685523964130778920684801878313065641117392798848209948962210176832550482140211595702714043373702647830121934744324370126116040128276650971457472848705191981389073159520974948512825689885208996874933076714047311513045373102215313704496442180133857993295526564891937745956645292780214896303715900994662641122952186519255236464650431930477877493389697701251848062395242092654384590601097212427686619903054734205037027515940385625466220691079948429322894438968142538608299993212096166773018466694126651667663185600753033777305590073931602893885044225211485680643669935416311482167026709442094000455715115100750000515024565259395986723645806586730134006070257467600038084713933243347332969619590956972385130262226579571220361452379058773393091363247499465379065864042841500136296097147193608096109460279466754576683832301436029876695840029389609768932441402782618566986899988900431675113088610992994205250482633515748205093626585082644846598214908914958707179281912108725076178235479970253454884217219398009447575940178389038391850614333517853048558100026133739001715848413653126809574197455478449809829334102951982108799469133555098778326507040629575522029708143141439477943710445931216121788598746774951581022958592619622912727326796170079600521123987844501008837402242832750490556117039147345212565496193144831534259000522008200954103013486253153635492017752543628110356156293914802750488154744678834595651018355172045100518722404006489149431494815611729268011468989782549703972848542770375671552278608897832733891573600755594995574050160894814452766265315458827285198957749997357471768976265160766135158852839801747103144659262151671712181884610002681332871450741522759634292592693914119512430547584268235553397648212548250272420561732576303062299398354617954029278035810046160329834925453936976827876140747305494413318188371478417857735947246523143255163502905299335824517383774757857591871723414414203117086128910759204508371366879544508748268336741068240826865511340272754040611998285335408278455364272732347619804119280955051304701362837582755849376602621721685841781464447450103971195649279156437889425200562707928922488307190625058228086411371003428017896659730019424801968869886003434144233684299475412308687767199899979705717582668261155389866933897297534479822845402075963071861567725390024147811928261415735121165991570032671113473854548399916828157735028834762960738734780668226114882544523186511921135373231636815760224605946116055371191270272133384845567130199665867550121685377183565397966938982186082544689408458922792915912661384643815602007226890652255308532103617286159903398210928175534013590519308998716500841000112621188611339133623803295826625831214367056784401182684111081888561126572365670376289773095734442867565210405921278530437020620395503789908914955460093367158701661874886577596581031092536877384416515750890066002898478902004680188566265588749346168518823682376436881535489029579431486642661161859323572695756170991310682136998397547275979753096773923924934464600181685217769518453132184629441092389132288726678979657078898068302014527957324682906050372579476104671034966574181901681913825728747866689099017734995222473810888351708305654214507263712306331151721030110443590321344525028296491082190408323414612440160926106827975044005249905780124406213536101569244635332611459525103424620277924063025355714023895038957540087021647572289801046440763535338188766042764452053522702574998542382193846762871352823258259170166994738113987077438543286246282003332545433764519691914472292248580472073884436598335463635845625321190593985767215172969690836171341505201410648657111988051914990121866838438698873011744262085446747715964384172389338635332126189812671714115288281715406385553436073653935285820985679045417286689089330134078936582653496279998638574570414460904230384910033433352754009410904955892247535571072839606585255485744472433418519366571396674552375373265647139442782305181302571845425791543327356684553471276489807233599696653670549000504440767760089005875155184006480765622373255837948878677183721810118876451567133677919230188836314620329736903022446738109491431631399006574750121355250449480847783695526324040820859106524267293187677747831308407559215303039214356478173042949185431313329270419861528718753833662327982865861102815893071918714565495356316299563326384835446040250003164683781864996611734583733616797870198899634193637919769100799711907001984201836392674302688831876755933183337715219676317130375998058263506245749874785865057384825700278945841786526827921603296602501636303164544637592893588888161500280258134131024188346604436196504725522303478513133113565687903547237704350728366257720767159220349187580269461688221179247848861562136362151197477911055484029557193858716698183523656534556146098780580595545255658208939851697222126859320825451328497050404888993897734703487524536022170010066394797577602635089832500339294919061844311391879929620691405678298108689101419310925373482980559651313098199417916548483206937398915605493712575839321272296355611131283828635110019441629532230958088941301634607041986599621151907773105673409307593971501311544745717948034909256720007127537466709141278099604485919604445141304509622591477647375034317379237107147374269966682756159212859404511561765852598655543869270675551267583209945665416176634712964464612557932708028292096178718559318638654227977613963108987346225809511361438054083346029731957445836902359075544098949164546209774497564270802306046425815838757801454653558582060563077692744455260629759821361577295848124150197926517487937289449710299558623459768880356470945479602256908841266316322504346779238496712123035085627985016782760235392400287126411109825886792416005236186688920509899452796251058315245978232957723213998861000464897423619142146095902069803741320208028568719605208207416105539943534872428656010838806803717063504979213031273273020188720554109787071599432752133064681130075382629517234964393233712213678355722752460252968370479790894439788588501188934740874585216952313471060646604838147782546283524806238630373817680035113657294324933914083405464467450611373303638731420749056582052566875206519902493883698114460775214236936022082101262832414742838643700428082940268743508070834814038022685993160555516817903482533847999548702353757373868057195391611990371963628265538184734930012471060966100482374436836612140917348551958852691438186062128182176528079206158591206772281013537014004174402956137993944027160396961322066031338048323428455624101096786937165124456970973879362623553697747512922742133230073556139059183672964356747834553087972675041874001879323274854570870735057073283250222330885727548527513137056606776875900588232026727576497423880159570914849882499104583696631741491749286361201179892762537729000593381564899595607520730772546357957249267931513786701330589151362817250102355293169024882789468181982730779359548629881172224244670932259701971301653618629639952350495767318909486796176391927530845051324465634716039728433308314720835011744362940555499277569992970408256679973853079971701679366867858056242070420718505460300700310003619852124202102602342107334618512569164902978864778562176759908939792224928612187525866797668295804345539820755339783376331824173932929854634251621730386096840708690073331734036029341552129265921990809004885847471399229120393165027379283296877431620152168226501259725781563066103627250900829919101138624189020959415024372532008461533548699344106510114806869505967244101449831802470667342442803724418681689844523279694252226903089496492694412439603580820212725907288127271940018479456288794423620312262768197977403468824688456882200560030893710070082571152063411400584023625553946143875045075226603471546918756194407157400555572520050456271827495810000933075671300505109171229560075728988817288838721710813608889286336264195348799721770621805003682805233246829533151546689097597152075027369607408940379129672618457892859873991182641991241889914136379110326330787984196117350530198509276426505746241683906094817005294993166754441308875082883458717932207624337148318892603688481908743511718817138141430462636422913598491829523924627191059727825225431815505056940699850465451703439957495096512890633426452147482509374267085006787046260243247630926781169676805257360427384001011267464189352569524817561795736294751035188858541238216969160051672273296883603761002567674853721845533928295746180848155069977975692029730865084477100850999371506745172208345873150595883618455843655388190886949549563875717951479636730713948523543303901145268526925205838752861423064578275889964365865690319506871660632470509800154178145928112663414018759861467829489257381411127943767698169124370546453594099121958209993798790846015621337332508907763766833460941388944738980918189721633803645483867024921331438359660000624293509203807253564082463015340348893993651032988028328688309568286109982292176652392234345036385796414879642254982816858994893448647453811156549029238810472716126504524773015425830145273272813735945085434343876803676151073788474704659874918451267561679640954721222738965009319543972615518856831947666715210939291123259747526600741598969059593949721145456677384465639502991536863515371116377465045179395054561276869012302880725520459854740338739406238307120165552753549244257053704851173692439947203692232565990895448711855142698151488522705336586214963324550424484602667566398789007085709822645846272344314558452462931966710730646368480886008000429956674121420687876184770915428743971576257941942860167454013059533307347452661049569697358857984593135079446839979056315125703142002972525063916391019143138054857209662612485078390166080423749411426225377187400558646225080507042870057240181024601585957874442854478984851651089210446925864073423468386568987824557207032270708536927949445890840350600718713389174116755382632850271033401812199096044485340737618476423873102255791502859285564649540669086696645468880050380419917893116209335560556067608159369179066128611155286952465539084286804831292463874513817870806447893872388421606261025925146843952049535386185031211320855731682730930312762828050239876779277125309770214303620567877685039440000529228229968695594471796527539551230000659023596205800421286635663392898287762372834843264477151985965792297288585515624420046889007323607321863758200004949062167440511866964091023567408555985019687623390005896354766930464650315934559714773666032592334038866825190760749828158908157348760005244038621381099055889611744738739263046445012096842594922266653479686138431328676715846785346366509279385666603205899758699025416980716256316640964362375634319142008546236837881192976838922333490647580448380882796787729059032234775131784085036698383485472208957039100183167403938245519025661214169598176420721700550256809715646019921520006154288067137833016845782244405147879158626423488661767336717102376536367675051412524884107351638731128908111684118157448964002875876806337254242962787853116780016533615834022782668356275889333668430475437723781312085673692636391361616901423709305400251699853233004163348784273412479011890824182389321179214258960400975629830154297605393088112856223391459184206669699516351280932623906905631866781804708645554511239329114271335490137987083576627414889133126662956191876943289801910261949739253871710094343876790354685602195543492356970001572526783783700690954335861617319997263393535317559894547296917761895967109645015374558459577409033403416269137579693337658837910974771845216537540832721138701272294739470778161258167104711694280932811946159464335992486700020895309638691978343984270239191643891113501402515491386141468379413811467721981875513700361192061329819364427582864528746464251000082730616682662910130122375675592233689367783867445322231298713711456073293635741259805169807084003710890564102088271214644845178762098798925685109549797474174907498567503999864091557761500020070898636496757923131190253712170063516737909438085438035209707783621098073089664811762298802465130103004747014910336527286457181272899998880214447843283942871229422552851976204128797304041998906908111267363705031749001132411202682403272532768374761088125652008662284742875734448237990995400277109655816592096940631245696460132889820963986270641739246142599816065570947861572285383889775216086978525093368041478224564482413377841172063740376842567219097377034155163571227259453858127906458851174530597929412416695407447983576639401978420072335687082621995517739815153112598747800065644664796647699699993364576713896480350676900952151640358856928405780566123538744871044421840490412677701681330507871570472440682277742864959382701669675597290056177734372991192369002376814498026256157743573713113134980419766598130457170856327957489692343000682679010388870783042639825368400666552806427488744297009537248560101408112857927962433394912330892679673283832277656135502497681019108650932984961340608739750892640743666597652078417626316875885277639824014935297753327174733118551536940214420693471334360687303576563765942838716469811902919094062945907278367229734157140115375857514465227734352889383652028154017482058897482422160536800529306460966527476993860747100898145408580003960124756633210389315894670438615891779381504520165081612557750309986579258283043053154510853485122293153476517268706271240943969265569539239329790379204029743672199102814440046360951494038881508411711297191596824859093553761579095264740638897278390104169364515469022212290434884464589512778710241619107345632523823907623314877440341669293553238326023883211359065194619890604034096722552263790271674969061632970982234311871472778701964833915720685831286443246402501512607293730232675870001087306148886497683818957558871511981372033941117982623296074602954702266770399917387138664732830373050976304667724211635696601295946062547120276614555766213408999395060148777339249645048029458985198859847852704808873634851740560871592355863982428049328280637829992658406065568469135966664016771008821538216456481720526393964915238512255052088470204542534285260563430266114845804211609436495382347497847958286016161642231370851562080189745622508807224836640930856510598109728974264098224793500025028797178633870118760302038648539234209372703174111432452334400749352628522435620999031558640597715937592724246890485398797515243854728389307740399967665232493468546271990383402205391445357973808788411552651862640604412218222111036130175438931853591563900736380696995150338099158169014673453086539508280233798886504732264471253905724480463078247337544348475984180046932859645970818542895564542108231573902626956696346665161883003548587832495542533569541799869605417961020945048294066897425979263404598744363496629496913543834184297203998276983874166829313428472590670294741404398438690091442110943769143291505942881057284412895132590437383184359266411573301476667883577320690903303451064968115690924636864030748299122955791182223430599541174527338954656114869758989989713308794158319933252764352971507078783192713973062313431167926896084725658102138365262360641149456547887823456585939485212218350602915134021693189241261264631423663436034947972942585807716104058806767975996498309732777414839152630017208874454978172206586838068049215324411382561698213872946201389422843339966031259909667292945841906146055229701611141783240289133967267491950260886145209464752679073557640201563320913372613950741908304923915744164134329834050553743397400071945528897465153773682183333361343158028800959169179734931231417222612603607525902135038014530049030515451524433748727166059197527437726756267757417434453195758814594882797707769583603781771739149123182843013527396768497438793922885993725813654573579275683991306937882601204881849394532093540053639530094430986486450119119690435077631058493913276111739400347897929789693023163985003003046166590890562492535220918172045811859124086881708121267818806101713308834152425329091974842923414928256931279501575816192688000352978334308934156511914620738066602053548059809194761019971230340467002633823727098040267191708747489827180389987239290795866006853229756946193179236775626618007355998547168633604118016745915842548040666638271502689753435887644532682260617951954996659039258783297264366620035403155176942617439892636503891640459230414626655741653287496628580019939826167759019912538362825476193850447819331475169302632110169052698992418983067304304236004718284728067533114425045695212691254113610758240359780006245324338285376207546397221264417891310025792171317599854501503646225222986762416910579314249398680080003301310561244939975989406890499547689947546182138337110606761357685084471513416896533369085390252766322414108002645984281629756146482726928893636955657748192607791739061414358507979617049066040295194966405182029460374952162229388377211280875629919458467335215685887730765441602857508667806460034196014831290697626106547075411687102908273558391567786066678087355141460175131475313579600365061045892015735107606749365374892116932528882677668722083995124490105719374447228547090139822543589626837283340335676096297599704906949285108667970032504926825379201335176598876008577754700902113162338535318438760798068695514753815227299881681880144286767641466386892888921449397699624559095329857652938567497234189331728610126581637156704541424910098255502708413728640307453350747742644926023808148672727630697612915210451632924136346912398374638407401771082800160945509226090692924944577147978577801450440911575963007753681506724837446175705383378060296696392345193315977897777200414468728122786111771286348283640267072552677725115504216553494288501072446824144090511415996414207139092460008093507521870509884412259501235057467977029906339592678743777225444982630828310903261129750162066093106606402092129870402024266824281642625213851743607625020607033741416400247751980013109185477941258700706707561079144910172740261787503644950166018520549157884244473555229860030593059712444051663304048368561112323864920658281076288261837508965225457327936266173608115183112615750625681245020040284258905727195079397598637207569087955489642829559628607066636667011747165377947926090792185897208614103635937465888680041290549281575137413094915279430939474529512881010042527115515798981471505083686937632701951025634783997092112766318084806361871401275716657736100236714327892700382898290167920176119505047151482488197263022848714032943296778268668112838555424904544328616064464363708440259188342322599729087369321871863813033148025240828160138595745128067030230310298053766917046264633258598726581306353985508737722592279584110183322738140510302347002910974466493461405565325454368766153837795029581124874576449897679644892687382650571173604325714030953825971929055712286516063368514299807594995021286098841407723474832400835382040343267257591670717927265387671766291707771402474219284011432284863267715148606377647781077204660527719315562086813771598725614055815704494563611701932452860261835849002650071751078440749382096172473618427283011119786688499442993327356037447430718025545726582484110207932998157945154842486175186651773632609489371631213055354643140141073289169016778667469202246003500303874235057501105545300169014127286990734248996739785025519571716161199934090905372931412945659095125866068555626869764642496860892858891340112895268253778456245528105370791131379521199834187764526985758693162853157227699623929866269616784394185395482564170767401578755472301864663467830511396355568958231518821533076228341581167482394864426295790625814715804236899740714083597604019860893471252537983097374955097797208128582872899209920329885650333921630151436736592115356086533502056443067953008549482912077232246999146162497188217655292035266692044628619661306670968335133886847405689560895884659703998294797081350864837471272212962444903335476305303664033744623139193542193170337218230312245082343506300501659984599972656463655089925738128910882818198518081451374047977762632367515903734560833383416076727118734740816662261636843956405574347077863398670198527170015967141193775640530883086796066269318580830698048603990018869826525206549527085715442095507252863660244239248982527595654936623192357578971614651807704184856048283420647413528323311008376600305163083037192671137477079333680342606952417970470364778498441518893395731350287510842209806378466488356559750146638862750137854068197933205484327138295272605184960789906294142446416906137716183919772799537931910915871381335803621128762059010300323373392390476776671947974277550032710151753613884144742882922022751096738434857946590004284034240032580147806931938311069651620644915894027699618050491994612861045675204011736240862706503509745301325978470683375392222117105079429498505821266867024161450733931080830693552574352842571046135406937336551902086070539791221641939367003427010716396709265928000175648500271983459593960914653575244830738605617370674002986663574950556095168659680795517774817805524170602830784935734287805640371211538023340283410668598991785626293974590339633153937897838735222445581069040126444062125115427962768763789401343990414506191645551479378507294687039615442992496562784104123759796402078349135346077045143096141683159140944445251697831101253606470968022594382403451470578974534223082614872297618435114486358735281412833255404189117897284363993913966874656854334470515750131965630735152674405933690163889339825057367644778042866118309722091948272834274316047860096461497460711380889537598327847144814328001033873893671665061788858544848887281028074818591830999297688170133076269649793322592393310071576864366228065386003289407405991659498871313704427695679379607211211955519915577495030535511726296751041025820388038401569464202971521271437426400595214962664711085879408367837059867765169055574866681725230589843274858474958100216350220423590331170580780296381820037954713512660129421701028189364127364058926160497664380040656228747629339319924787021284041121891533121193573813985003131623822549661107436258760079854767340002525739941188158196555267235370611910575873661791800294910125820823219066893705809875979433074150877216899296838687529068653783771822572795838559249862895517628916340327410349128078038513730178724747726412719778582342697509527164847847035047828968064010980086043994153884936671563253057715519612265304728811535621782509181661922367725761658436017103274849922441368532565978510171282971496587163097204108185239633269132294327711377340814272491623325085568165935106173615866660960095508225936120294752624110487972585702744983747590616290428807947818443385368039137889219378545622796954214819312714020122765701725200272148011042493365652759893076635152216985719275686067851097214361647855252227651900788413352176590900294327346457968746875836293716644372723332598354023466049756107528520547005299174237641425321453174106774335509150314340533062531792977664853773631951806661709570819297541867496706567647208423521306885256056652500623999451860527630688823253932159130744211274003881194850155356750509308776515101997336975445331872206976215639176646278207942977944178913287325850653912151751658787760792676958414533869151965951929924340234903688178900951430987442231573080544234148719599583267743551580574024031567103477595513761461299747307296223117467830127019394744155499132451422972094883988863602794926907347356609058270363579661476655059654746181757176191929994245701865572954991100760299390201800487370656606308683957136903755597238100604970125416473031506655004728507035076603463165453043673474287091889975314810452757760210569705061195409353114760080320347412787280156659209834604129459049705607388943750553865406925746374133271506504867327078804971125289085700572759891406918173269499190741898261919261427236537767368703007263804950876396428930549168726781092535734385609475796138958356191568713060746618227422231199689296067798117212027903037608514425793279456094891524145633558581134169702218054182000476788425003026616822453039984165163184799115098329452996223112483881364890202547894368750193470906999679254005110015133145977146780174106698938899414006016466246890693905106324963477902776815111245122225106164171148893897042767914770644338697502117336016674906054442618584655482470403931763474492364173770741932899801068271696682878471900641504928588124488270058188767988991672762276621290081552510297373689909128225315504770960373973339562797399773852636172618592354803703923839826574429633781699419098690898825341079698121969841668147580144048640330510796077271872626732663919793623759523125738617632334719707048869842016470581559667355098042245103348989631367873925012810754302590477936421343368574292607174508338415251694937060514304503908179928528068610614083173935952778147228965589137930496634771044777383473878019977472616044397986900593727136032859859382636964908458687714071843313486481359052317358609439449748569586033573399293032516177960497434206961892213052272271957029160678384932052196986878818646335990008263864156147247649160974575049271572095363788041893614484508181565182708392238657823674058067117824035987355078888078226412189754703827075735299835612233251210663831370828292074495251232165673663023171243430961437225223894657903123230594435335801453427118781379161536290432096772308148992289539631464442910247532250547013208895351905961113481888493488216616654891374395557791517023114482389685716806938137981351178249618392538274841651855685051760005389241497382702067576700022445645675429349527749721677578333520874143472439615808454101233532856000219903959848966463682219826459538127453089536028067676254912763213003549512303489942697666121546772210010098514109959187117746763730746427086947490308042940058938192678720931342993823507545201771641736893453207459506648012869690632521163197929839571290912202104187007149005304901842357977954025437830632721445808340976675970071026512228579163321072333467683333863070971464824045762870693230771309922155882678452200560145398156092616254287503866964165096864789151342333760838389805535242049935480604887650588358921978585991616564118691601159225452938898810287400787162802844352370590600007040252288859934802011436205707892242215432631106737575808971551134993633360118170498159269037237441678962478223917345613750855237234406581971644929145889090417013060109439849877205174733421077862243769570442436364815576958417878303492885517290735955193637135976109320584388367190941737527986441438055377993380746613037955026010892760583044993866523555180070095820498845600656967561320955202242582991324275342024256916866659701129068988936425051185223989314502946098436400420910780398003967214124906310235667094599101843330491132923030087853131956652285658927226116362186082890061941625673471692425641206886299413853772226979491656926220436848301209430558549839554380268404684214752997093311314647739563318398766495828800830536891548866683223511261535320525857977304137853813689365497190710497845766037351664405930830346935346801691705861926529696822020887215193135614845194047737013459669560494052768407290211505829500786763473397629051495976310667364632122434216044534482401392373627333231739205373878160337679568521447468850645509605981624346801859329808219349953724908254839268517576667971526224687404763077385165948631802362081629485323380809572513152930370960253226287077928297581143911112857031185196808523333988230478890502238297631218040321688174995664937986387841716733494991745104200123947890843926924701507125879751617172335167523467868716591189339913996097235557989076832967027516645666699717267166287036705664695171824982211493924342999838219927481728432102753487980015962278265708713477345732867565283521862241623036248578544339771345899545389671437917072418991470511471937206889414613795490341578254209807685503159325092204900181661031357508559444920189300316162664815275897573469193694479694982115887513051521796218103684301221216077141145459056053293763238334585404614310676624201625233820260759422761097583370239605691085812224606381881737941869191258554578382475706847880001178383249927568044287227845110528989683902916865846696777035502496600846913685378304374463011853699027386365327510117432514802577594195390358503841291191548172995117043037925917768020862763623211672961403205698507535689863846428858672082639094209926746142270480656441957828275092365560875012319913845773929127698789895998097326775722037599000414796695801160358166211318181685306336233487139194538167131617620621976839216424150360920920860520305149133088201750065065971496468991135495565837116272648292603518696821161570677724023519461566913287361295222172019041541390769827474973526002957634231284388003933251462516840718263131905662424504138644501879467321207515775907482054788560493502163996398771756725353631268148837077331227802589084294832016949840204610894373179312203137154265749597019395718101592037402634309915090378865364567353637685347359234479057018992304860069478302028566763653117884861503393601005867782183214858587745271250263584889136542501583039230627118010353502447717085727528753304139708954342137715893351324678234289416594018574553508588351253774009621798810492927299736559970616529481952678999828834074301465070233018855020044234260927587479290325514444371740279044597802840603133357327944914623459947839919854671187349717148906212278018309327113502823688831426142154551422276899330214542684684638763238362430242671174350447089983664987936373021743700110970295176332880877515694667070175062852763059323761534097746652957720851595721254375766545937574630637907114283630306222045943745691396045402821060721029257757695945422839946050093581800317929314456047869338156914369740671821230402566320779709125341768710997641214580796667514453788319486902535630645449228989850427462523995238936182003234537351606145793566429343776334921686427762704571800530743709221494753459523984320368862631596308538542277548488775264036740650758026679516648170777869979423168033653036218300849453737217431728763041854420720871582484128640121018299601972066710549531903192763507121625987818670412056549791179740985063181236078455899060440873740785073518289095576725615118201187064870898857480631202440470843476343653773152314494018753333980505448978189974005748334077552096765845608863840407965525595218188684108132058575891568692893281798737229924076077279626537685325830964454975547210113062614173570670496818964391321459281382463003228503878181120773452496890433199511665150246031999129141313464484748050090884216070515363326287981697245657485841391726495981131142997050606490561427782481872500724852389820584577470017067287733864455990642818260022545480987584952200156604971243641909867196990595350749844281066851506359203094317142991856216299707211568636669676929730524239295826327645764268131875691314141231776434010003288580422811278349930327780462124331991700664029963783997861241634485381251881263640397514355147071302900590318694730797614389594107113258866244463385584683270977742833683422737579746438860026306204442248624655456099840758429357836161439295392501592167892660519562249299375889490120438916191453548107784883329359458492554277421787339303167910942889846443350175597023679106129764022329399311737513289310741794363337041744473367445772331301699783126632651577967522416124547268388495178125539429495265666451659582489450159809594861985107447728691909017232783434178005942647478131866072482602749094386569709768516933763601479263674799362792232516815342941660217910378173235573640487693146342454861674346494373963259308762974534184119927516011315400676332786639085304271847324813723335730760586490467039273709578312005137667903271066395136075269891053511872023325478583936630151975123640971180818805227810214322584443931531691743401858761047246032850184902464119824623345952009608713919513370313378781902018422596502336036812939482233200781514447092486957440320200303814088348303890001060990308050382292811179083739784549473402012478301698339475930960937103610071440100108772840076112089843719026859033149646188794602942755236927208174512216573855766589835889539320221132407273225002813552703291116825039386034667559145330647088746994477313488640682778346993806844769267094389659641860137260062753904751040883316486532827916252155277744112875858079650743000428101124043101346579100767324679647194403944911972321224714805411289424849518699310003286942062118226567701765805858245048510990229695146991973084711292476292972779579657508252476349411560436563875258738552123984547508704353140748476362859103055368786534860279504596340231800935153408773509824263276522501178442151899769227031016916282956539127312076782323263738817776404646474431791865050631053703123771761464254292921972805747851006312929473830777715004543516807253076107714657906631714281338111506416588540304868511312430106909996435145935849126264819013197190189647042602066536525681491645540897002627059106632459668108049783669352200397380332548669617608264122224135136737547517595618406036144426305377589199181005136057094976160131593230904863040678892529110374136490985130272081644073263636048627112479172163542008882988609823252722654570427523763069383296719964295045194616962460002803660983653056446181281785553682361066956213040411426001370696624629572522540168241496719981999118437334082465515324731163373394310235398617159570173524131156701642703077398320768344731853372652393568463169973926737941113107434725614146633234533085837624696187502219751876080458784081472650022469012910722319005564669672231193332071948007359948975309565896653776957325422119517835858639830716575138885345062737538810874583254540950843245023744641522524004777273055943500939462558135501344384837244302432077089308972896528970266635520771883871918602641856739287715715487971395266018147575956736519249282042104427777313827865577904995649487837136964110270810100673547447386354877594239184619729312630699481849234493363308597226232961290591507258746168948458380611145349093977146244430942290206258128622433419211987630375037558842092110088603012206171278176660894515002744408225408753126774776308812845026538078148730374162612912458309650474260044656011779112985454608202598809135361802259550728153335727437499213949621749813134247728468282023260593610026075245134184329636660667397151681784424411576570823607833759908412443779038929673165315014133361756569502705358257566305603779104178404452851282819637892594599902874324666564898815121269440796428272501037749991745972509392918958170799307649162381462677811263099638558765931677135063500236048217432748210148624076019858841280522719622404119013635866395921301962502375505375727943012565071472457793878531580406933468387250376567788273418374104481754170765007936144224514868108303552562312976480101880190244992399593063230420863050642363513467893321937813350051360333544018665140803426970958956690282772370725295442020277556480278089597272716455555960593838526170680569611897138494055338576233419248740933743915792418827052008568489041529603017479080697716242240043324425759419599305086627527975762700496994832248793953986676506630274070298519150856641458072673909654599378754995887152250060325568315923845854738594269772523512016654461897613354120133329265543560067182521306853989113456714239542508321331761077516649882766190911992580743301677618831093371432080707239542896150589104473765354370544458121613296208976926249034821806126102695799830062545257553506164717150986124327091534821449125798198485967645178559677048250188462179755530867426940388299146114411407582466508562595644098520680011348077126265102485062361161859828193990652788779025540533253604913321046301180914638164754753776907963086925171507995568797166610701998334356015016422427240004144569071752684929592582226959528757752898856424851363291439179789212501185137576018545297793690892608505602154853173146537874504861180483996695686129459333017811665984734228372853454409995518115780916609631039700501725956340277203869375166332983266181870418131090214660426315456061874913325948942450823785403191280741904150155220929961524426156313480043318265205353504157989607673046048419868918839165210433282582458045037099919507916721061285885234523604900911922889158483631655008489143458702775242681936501294451984844917098528861102969993931262851252259146962181429478842269550803823632381182579073786535153208035651795340816800236091855150527915170437217360323833891262354405107142695431723875018107461424638750396512857937843176733588628493215234500843807188935828479621376720540918562767818749415772972209787831068340930529820187671252470777072213065516188913147622348018573058880187052132225509275169790158147754461557079165924870027586339904630251809986659764674592402990493203594998305430891823311465497091241772146699347048525317353480100691834317499126449057748732381330539999024450592680479151359374298863912496808361307415049184111882327792812788082659482405824011610925614174039455299383284541217096101496896369390807779072676606711497523103379090964664356572007035864779131880317570661532564892147824203603739906050665385098597189936816610989601145975950951884766903533791436234007794473473438320967591023214312599998105072295137818211626616230066481245091011464599370174359159099334027743299848758332591825792970167401484133863388556921594082880490677989655262936787863761697428522361015959807869316702615417811784472658913568697201097654428924550622436877362711442768066764739542407212400908148662809429732734686987679296443065734963249322712330652712325086402375827457540841686854804415871168145297457648894191273256172239025212437594533104593349756763284271269273721321876530695354500125640183075895579856288436734600900754802755591574694424073355730190125210443545776031985043701080000088212859874293949864575975831098667968743256979242257551971609681977228277698316126848616212104044799036446602386218716606663741413128667211122157151714086180785143295086531003022290432843130772004355450684058931575788769554442476228359883753879965105452747145837952513775769176695352373036274672072298753991407117644052569101953729617353966034458683940605486733207737976389993156627112870816472528889922090326568533421143170251179507841497757189542890344567789473691676761029495424017161651482079092627321268839119063911882552571827090568715768298431395039498904374534980971217182016853016611234578508934449625054235737700398971105280025794954754790917040047995821580509258164787169827670625102506407768620991303300068588971923016071806038720941835846961931962421961103431426727683765135877204905653119629359594780917488590076204226650069196729260688841852880755006022991457638317844951051587957716115066386185524812606845579814807800697730161617852146311732614742118514857418364595272546771679032659175686051685424884005648938694812671410995689328024482767236225519883110234120115677098337388579874778523663979511866190224604489142441030629530776569626102814619285701299974263215153509077803528403246463516827373412750236832797388332004789352170854517992887887430783770744560038711331489642352501290801680358626949132232611591312122822300784600702021046501007541354022943403880477966150466370217315268673461886162967758305172107439243981297195213118603059008781929755056222909852880631239598525187070761226556498667770906706791794575874683859208309335803652994076833197347717667087591231148951812139605356568194241858630591174462675164679909459858805789990066428944589886676709120385987212720771379582430537248229110150344852049347806636492214375346962729669219597567794709100875261599796731660477238111538469179742191796307347593094157804527913409622892195990188325174598200494178110235960774109852057510319933636883022087639302914035100612411715338360921442154942991986978177603451804999920645183132291930364228766185106622064872759896132374807415024583415267048318672950438093787072462061124525457540232960267263040166818596120365302268405839403728432974114780576063018328010923598302434114399354551183643493868823782653412593969631018761999515561831974475813069235086507236443889019378150780441559025720537680687943401166636333808515440430806276176897217525659954917498209361727992383504534295680719143997567207870944184123198042339195599035707416620574188392648705815481039620572105450129646873359030646467780627339849272717822426194699745702279406152783996669818123235125180946234463381714009726588438311077550552340540610066929982182845550822211545933591722146470893397406378205422168142185855519117711628920942280438353078856345323395707871830577696051477585975522695845373623707941379978101371003869993492704897982887771499287133477231381662563907465703574008550862303335368264297702022801596455293686620892493763196566439599512458364446334639708600246213977630170929824546618457542640152420227522400803380792032225879212779188663391115124373392503659796876071573509885904016081989685947418988305306474975672610199120098644238729122197341481515007244244206016805311719946004570138219199211835906260436283555795855077454189990242838802643339594864717671239767079549701843296146868036917401031534636844055094053660448509289975582891792561462219190895046214430994343750674228803593889619859526268238476580811642483013467817613768529754431405781056329248747970279371348818469574491094282895076332221216210726943101382454882451556334977243857506569509978029077445553144562542843093714921744269013040667217816548203911492348361817095805987294039737254941576630061204846224603220899540876711450876670351191217248696150040468517698025573925057853592558332005359029642110962957333949284453857740828906227933751824186221667284386670019190831717980447052034389359789552723017970972002295605586696020214416719755555979920922863231075041570938705208211719611902059360683542667881457890612348675108571363778003311267123378444961726492806123200562438231361162588264583295453844950293877884683198034855535290756790049973812013087395580082261876124063978983473606408856746226777254937838253395034702765224744482373082005096154681373877317196131213353118187032289361508823485251769220824522078855594174543383129233694322626716380042939036030903153437024496675176189599749293444192936608556332715167252875748378788366399933499618497117697764176581694112999067023506851839708890838197414147419795162840687695569036132441354054772521507195812270086950854268835122690371206818598673054313071079707835743738074039430396144865480605750969332481618365431154411263500313156074393267446677681865105909915385421553952340431747763697969137868539217252858362452009686206966038017473628396179996139255121522750665958794149238973506851085073321045340560674171244142195974051391459597449826844007019113063186468392030179318736250577928396142405946598067619256810382877314755808409863573231126125287878203956401124798072881893515713469080454199209059625216435453270892171171544495183608449062960276053875492573519596655492253507618875205677192251894104439130426922646318596057465413373498036525681956915905067876404005527723174047450825379750993760279760995184529309198285642083744724572591081539294622410418530899251611864349194178180222055859652142592664066484887290043532449071028678211594669996691385756209299808790028261784949749856673474261096347531968693509814646988206132931611919772862132866265249281882158389739193944068120103452958479454600762816022648739377771674664110613132558072251645871286612204244917589638731194656746056405076094729695831048558479811177768506716230067508736585420828042711557322145882324351485640983504275654675230366221198927480019467917577217220512775908159527847081482712220138924945502003816737449228195513926224018809056200466240837798484353168991818430935535061678500920396543177399488558298072921763798924442095456238661837403714198115025350982260533296478695567552115339843341952358967131734767235482275839494091137252261986868335379101475286630133566816915517731201907711779797887976840699743511899879919068336096479703375986063438241709773483633696121117916320820587137189451761056105420145859075375868431469036672622617043727607583186350918424142778000695179912128513024159073148715200869595826639022027628895156997264780953909420717963556697077987506303999445377005006271479710574779686453192743825937816555024334399992657828127768837862477232978621411371353234197625745946189592303182498818676797541856721091277687869841278456798424029024793810875756299530305877747542530023737952388814202902492455336954350650717473067878000217959864216489760755468785161673908389490233836877366589957020341571414459407261769389282906084130710703232060401409334452628923261167574176923338151189296595456084969168059513245008019092787062838179552953958882282477248993077767319822025951598767710541578122060152470616934514367639134587411020101652651499077518823751243421932597246277154337998278622885053341741633649682668935141292680893007342090557070782631367005929971827687803929512215131313580976484984264940345038640089656277032700226983781201702898392320358243404844736538898855004406780013228581097899021251755176185044254688522435558757963625703033194570593748446590639158618758415347584825281641954350096567545238262435114181165197882598470959531017055804208659254523194159252147406341630811625336890493691944793812860165997140523170442003695006014181001940085020553844187522757158311102364370735569978654729321415602364564322151305503810101082507954217099292274179812639026050972172340275008166151882451746241870370714782560260991176223419810473468388868027322204602480480798291121988331762042521501730983184032066924038128672047734114883623570671161601480421696422253114211181436763147025657095409925746730082976350317644827767984357690626108161451881487607354702774933532848590645127393629269256897756282129033801307831627457517007993951387546731987477611292761766566613675472012174791027231801885993090515881973242213422396438905106461906064045713176913147972169883720679153388213092087573998678775486600930362984763961744122472409495937358609655802759559670256123150293506569551704744308336882089376226816566704874109331667376423831315303099406257972010339073760759195997375380492836476303981102656990711662691889164796489637701090266651283764063574157664408087889257451148385363091894401701173627934668992768514588251043942472641209263268302438881299374609018699893278190108963626493958529797314850879699366565927225675037731378231815265529765450422730955542005250323510146139425131243115887490509891472768925099323305897587974823528167822784567844749202281254609837863401509911802373001438029232019161480969338590738396611893235321440998348722802945971065273135098505293300021404906189301683020576964806187369221081066417850696956602055912782809839269565889412300875466305210917676777114565430124861343628241298611885073195027626573355086787724227808446189108144966437227257083394238163685002813569350126175111686365369720264517241462684279959511954319723172291085804889497999456619280462422826706247171023513812624988543582432105187330239610853374911025651243169193031094718452981835626153976521152761066532411827517899799484703776868702971268425690968414528135758740276676557002760663345907554910185161555452121868510874490830158973579322955868009336925298157191954718355665470918426364395772645778709106594782910316355105197265470536684700979635753588728158914601884737089990647644981258921263230703220536530557368910928348804478039470384256950428306389878064911299163981567578108216433919551843020152675625252017417954191803859807324761162182849597491862145028727205645026487431821921452124101843275480331576950451933165179806480962977808468970674360146107699531347815776628039445091149038103086006146188853281097699734983558574396668777090587947501882215408495664497651413597190085385103788211916978089973170747719080496462924781918515536841809233807525192327368105160500623967906341787219117432862415555930473244412411714178084264970283674123659991936992059777209936732264249222098115437708416715982229795223148535573866491588474938481084816077979839065731005123029913323447919756204281260407890795860708539320104637470971138519065235180440528629917522136942588377717859043273425784626785955841430478905151686417046778163332393869545466153852100864287489637508280046374743247000286059595974632565378479241287189360927499833003633522072977743064370843664306170219389783217372288164540482325093326263208184078616289849591195011627260950390922628900100742194100773782386472609606588069477798497034798176734116012792062212111809565920298570893926871373911660759217095274980670045303318550315207488771829119836604980721975249791993656401082241766490476128866763773460550810922043174190952198758071931467783463490680563430460839082060652108473106562719904560912658236368163389166854506817191665013264304693727720130327208621939482862117450311935869274040729267368145318903542345944080102865653333548469213244179194232784942438639958713781876398986767001889030032824640628993546912177490822509133778484570975892674274862056999549156825927342487567910468725981666957239171754483077196335339305608081379054945131938296890955959766205614159904647944365826624530052088742471322881580358741847741163402895448624945231147854513441494951127885370280214649568327487768514990979464088904035822831268752444082541829074655813252519204563243573386774514673167584432420927530546515020147325050785565694985437728304509482720353997866366883188456574309804835224613906534878819388393029405198164874122258916995420311408430709043753075652831904975393908440830230143103819818699336872946413835735178402691567117038076303339247829823830108742746191265256397012768965786610053469602808897258972667598586363172026121604197719519603473653767526885063529314963550907569592024861205417031041627502028686622629508866763722613083885160676480223698893760623470834343941859330134381847458761835941316361717298643461500289457988584991854349496210522691192678370004621567841806242528091408251594749308704560614849302435227063253644087476506119678909164486623893124325797104559379328779023592677055388394611724951917704156058572275916841331371620601248284188633818999396680771642421317284089388058522862943896624464330655621117670149662674542509001895326672774971220030453073784213080418154960705907618772629264802636246492427509736196753846472442314692789481876033770397751473000657752596220344901297123451568283890872270116448891884452039937597104111741621004468544312427717681751050776335310284909014967973167242236086978897251311324299068362168470468345785643897623921803305758738214654499972086593309695700982373618052249559381046494220186291331696136175749051071878210675981610003878589650033442064199379230616933392947432913259175162527130796844302141394608128725029722678384850127403804396945914724297547119708495319031712083740302075565795444842561924731996358790646053567921201382829258724049477643007462770880865131382072302117380136697045697353137834112208177091657976538921984967987761614278546038238070361939897938146441123972938153383300646601640890509693126443654130089619508792905224659529340927850483014290065898274772928256050355565592216103546989511407792025196360797988334018165251406291801478265268507195938076297811321654361773013848405711488344172590811760160856919078827402279318690338761280178099046843839236515652558637000409169994620314040099624307996911286650996307195536038612516721654015354554631904230178313838500904520427628507459586564801084168548509686255943490648101098303229837797927269141248790462135784306550040731504163943583890840385999903446561046169588785334593150637962656644270924731784661958097811692736872567385483179882062926173301349831876852994572358116331793325950416314033261514706747320504671248580492609492232777905643666813710792055994398543585223439495501438435682370325956365996472228611983678328221320160926082916702264075647076754003740503691275318836716238020426329165754294257033089951808325153078691491131886639589153282573013191139344734044090925264642417306562241730985099005048271166353963479433135764391396401744427869419414960010155657866342384303389116355078955073615846171176662953975374671782241891038474540440679143901575766690799471319995908856612300217314576735323116574758526683282437242178280441307738613247947249741150108852221985563946623229246448656834135540940242451150270821768255862428350565048834983171742316798488397615768916386835435978279918493188777467448115176237713539545955476268940356216963588678563855982483788991858516015206286030241042885282650163570018520662299361229866253895207091689898765064096619147193607908675816325415133968611675372039020428096969766849191158460829596715158191631813238373456419253528871605978785797733139254847731112225907915153696117862456410760279566417219615090639935201542436556596396700792468987759867576425668968312544661694482177781812329417275489974967567451687965938974249889274653598499259378953473752165431285840782616216498923641652050999462873526772443875925727338400607538974270811084178620958715710522185330298160813675626359003972245641575710882821712905082421824588519997714513409691336634653199887566301241162399991136637044546408413495844785532844300244869738436963151974681481908586535515914183308047419836026342887054648612464637438474315627691106953226879857779173598322157496831374926477417660713982629187305581586974563447816293435932053719250925937799668383236199397025929969051432038388377169298104533016197332567646443299907952631558515511895933799369455128402906131482834574241676348721415061020633542187317390729260421955268585846836927479729384331395747867829205432308032247012015066727113437496812766124922286346353990116360498952431832440225541015530096350972225032187646003719706031115297937951576749010383241702110303649858526655231665924697059317210385542662290445253700096967100378855787667469604712888248892725364092092986050345759941522391695100451784873621840363539960807566068915270833544996509727126935889955166809205561813633500973447659664311672174573875583561920793935650759009753389249812707844179573073923732772257498913115708577484926787266978463666156061735937669190527304362673631677451737495791248998685770450034008779066706770306452977538641781723195360709783895344545585778088517465639544142544882637606576627199661187000743978231528706065950643273154390467954316821801499501661587739106951196507981026023453132501801103705976655863183727866836315602257564684485003680065100126065188649480166608726576398103416602639345016969057678599542497668759687410252104775860550707199825622302423547407094012553988808669920259171858301810814796324112049901071188183780141000470853892552666982236137709753865284644903814071104216041718988260725370958697157988981629134035608564021444508596835256291310324318795762593205797922345655878090071184196789353962722503015568620224775722167922833505996690079442577795380682134145034306372734809285243712524729785828531073134434241515151540223383906701761768467820694927768897592112658856448492330027949245522344338775078388183194125162765372986210910494645015673801489918239559888145987042538000808980567345311282331471043856954307826532198606001609706966712838555635933288614420828924424061485662494296576640443781420653523646629611641114252142719877825029215685787703834950273636595513580564091562159140356109781376902673738994330441500108889223312849621593815436366453217706182190655008134021478288218957969984501261826999018563713638347541924294797274262227896788639748459372271093476194798493150360276940714442583353763080851855416362791542572700401131610363300443460878485816572935687402157927092405513703172078624400486732321259935678749212230175946831126005244560289344223025611849930277185923311544542239958597666858958718327149457051125340129224614688667126096180849349453368711149883095336483289205702041003335125543080262780988620946472771297481682762552257954497296070607817233560646865784477258389119707950236703149396842480975367566179813353530890594965966262042393630545355839825680167360281837181517418480260420919168172838877963268474570608359267029278778631356313314364290205313676214702805904204714428322818071048916564301420506634057156251353918853244038820610368393765861105456623662177939925265959111920935551413445535164399077860497599868112446733602528374386198641132258430360580717884481341141431984729444531056340536000326440393231234461438233799180980991724184640058319695569206402050174229104013905429504852786220590097585767332977237515180300222444854189402582533245746595941968721867413755073100872522821232897480255177839476298287197693667916233418441029017953512035784613804816312787670615167055230989843499751099538017962785255578159381714822634899985739103504292344485919841776509142761713632289306004673983037789409445542636908738447836258062214579515859527574862248128476014832531529899759215393116781189618667706619091777924505919417347785408387923125020284162719619899273031768353244557283900618863424477929681981736667731416077646580366704976050207576886693890953269852771477634745443270616300845382446842886088041708117694768256003659211927197833349753102963711034393682937775670008871935267673757887600849521763950312989223637168142542814625247412426710924110585044063297372988859619609380222691504335092806378808224798017735881140693953194557084055354741632818887448784240043067150394362845921983854872540603511035767607042864007436446174353561673028253116933120682185181733766727523139650405459109793191824600867193293769957427677337371095619411791747441634211806180693957135508819668252796934532407414781361340546719880212620631496525106778196105132166257040902814251213036167081290602597129330025283124556696438188797634877478956929064381266702088290142375339584503976862592937226532861344624502860784393109574426939010568750424185950661114708175014170452904409058423471182157045034657652243976426892974694987010186531191537563275020250099780315982630952257183139679161274096587015445140765162642354126959571869021938491280683523555847870132208812853737628319443931560351955967034639135209567645044445953253328005350221922505366479366990516726113388359012811419771666780598583518933196378357565367584253613606124672095561806604653206188962785533419985517643892846668280024508351453917459989921657284096128547083512771968737464714383402984806790278475635317187290526776878965634582577388780707390792976699623551027004153317709297546166414629035906193315552355186177701492677687737502561696628546463152629885971643750968429661903002559693238048579334342971320045840346774701671636399229567250715652471081709735723620167110426702724958608777974037865943687815222458546508531100739633389989122451194940526264453550680792707803043945468608510661011445167987624745752939837151612432274214135314250042474611284784549511782099304799917564860622459958107453279290389677973455928585111320762600622642977871177016961392999864443640504764022869056455843808130597702401356151774681083660959301279934704890274134115988063157003823774327152380318987680158229949045843994556436449909812468674445205615840738804407370090694483625025428305665703059524795196770788514498383783232840062564240603850394137434250784152304953661232250875370170048534562544951633421427296520768518461368353003334238783175355332537820736600857161891134745987803687430268872241926938539249918148416872713689732636085268424630149382454710802813437677344668147620393501041343213117906614719610297245456533166318416228814352745914249979842841786427575435958107886502277037975991527026586198755514118227347971307343099497961176467192864341475864411712865609213287940515143695038913960784942895907265540797916933969712727014749573812036372096109270814967892964766871262638590781989159505909272096971437547227553744372622582818403156187167754480220186945618566218844989134432199503138318777586603231998720094587184677810142146662007765520516703510284493442513694586195211420300612896189738571929621836770077369298805704304488435197551043754674250846519191223487627267757380829065249865527062330634115351268022329947679057499701871597414511272416003976270244693095279185748185782876434202657271478722964299370097598133212183865736788058722291204042093903346380401802375969846946312157370149707255635839507487095771310706362158712565187098603765554820976489841648701927161393209286089130837055093330526302358033690655715474331915023682310074859221761590246380866445683040425161081990160451832763783619396403332221840433264786167054423234087640171352162380112975845876717322781697105914641475032754482841425012754183468199603494558074021131820397236330219732195875534224299502842701361909774762890521092286075065690069624207875578779345449628091683852222086808851429148544152171143468658803069605155163983822076170192829236275812249248123804618043568552444400498881178094313658838730057880832827542993120575705871332343028625354745807970101252285435235686572970298072379286679096746422990739538619314087058310730519565249769218911008903654330080080715325615954884245439107872870202195933215897425815718424973952161659045871471584350936768096643472535596686253302332673625948049618347180341311954906949896672125926399337638737808436979042035229650846272494110028509082868075827079547689327481904067253522262362347247064135243828662848488459520040075383063004458919940309018600915257743866314139181961246716195500524889681939047173365612061383267109307200073937313517957136350376725819402888125721438271433865286871239329741856934104356178381499596507268042010573445045977831930394902640869194535991814102837039683473965689412241230225014214905258477154250335429215770952954045200687889535523787742683607383383612574026467362789448113947459311999332529143256153376109204701516412152750159216417581086353451857324165243925175824219988217307480683035806123660022356790563294166539628821135441542696400808316384570602485791807170131154642184475638635789307430728188942085228322911626004926994774402835008768241903528131655218975344346332989304882924270499934466762050503731301005094423309806463956663173297085175713494943651092322875150414505097607322715061587457111831236884020054116895253528112346025105324349015210197787977087087741643726539285890947705731599619067047508362266712874060470543719723654904197470105761883012771675670838957574942944083074942910385957019728776315200786003187852236350257651473680005869855527550232691826706777819536577853517131725777579108383258641242334922087630768519597562643555453392991584094145494586157950471088502155319444492655982697933783462496382885657167185218982626308139435601109306522379715039972330997673746252609079805060485800198658483349412394734841606709271501826941596477620985268511934566694297673963442831227314832181898034817681781475651125644360685416238258689224942959662143405071975483996741839981908636988450117884058406448369559854277135641030963244878426214503650574535298278333754029857885032956943620602631545457624114145462252331386186295830257841655918141476918686925972083317144403880102721740163822904765435020258602432656763809195361262138906292925787518346970075561835210752282611753533490304737378792923546944758671285071109366260344994782239482048526304175515606887604980389678692071950760120419460566553173250789333887095958337796685792142485081737198430262006635025223555351488487971373175584270968602993346878345299920894678345175923789135412770741330072392452550467041088280616820964801794702153884836538239901571411182395105610272110510569881728886308277792036590513972653939888329405590206862830070590993737749074382216958014985396240804998608955465756565595703040087995682506689384900771402021064657971059156028489836270832462767247536642246671166823094023515730490917260476628713378661125849133762619609657263332255663068640624034893623406401522800164915526625278457388957645523375557184190968958414668481409534769542837404499972799923305482861425328572030081859879129143096509114002883406947648215620638155352551100654734762704302899932365160951111875330547710479512723904449310843429062125851765778100332101928933973658554591141880909358981136120046723870881819181227383243860767128737291376479362189941977403458364956972654294153981871776007232015530031320914986221964128497193406910948345531020950370651233430398761413057934073492064913995405600782787340118634135818738695004989581392202575552814093054931306015818814506441165005853209516693474994779585739231080338517087206400166220438809504557858186082340290753479186390667255156174324511016138973645500957145823953958282482703963581898801712155971546031164082995964709669260604027510844474107808595413197974101055875285344358893164224289108962114430440076734194345263414780311341211349886549273941391697297262695197433602552717686313157029602511681972733575403297740029778218813910341282729215578871311571980430957422302379790694559687384439400655443181596386349902404132506427221856104539529195274806016742020172777234801025870816300734448610638712471800947951661822831076142780824615821288444152653226140491145971817329424533024813437443473249631270208001672218431583294085718193707300997909188993462797602698735392126074179935336478289322139876418465942623692655097780815462347932712082443183266533058713909399201005897441790979540181445157274402297340991015672245620727177704827227682748725329657923644384768591538234495782427421389860962530868053281666315689559668626185111331199668520349804037663675189684932635298219379224349475627615810287851774047602532245701429211762436859585609939269749909914008595264414419245959796383336756437131718247033091212529426355735178434215856953791274820315245550073215839557312159713343969938307923710325773032244629357378615125318775505476335306465207618548661628869930937441053328005341076607419607091972480971758804601930996607724462399901056223117651267091095467472541225377021152637297033314911294414676610673785550521256991897523089650876415481624933397242267611213460162906933024533035764148982486983178392395097634916346419185721674909038723910481135458732444660201512996992016236305358106264140563699246802471328769517197069247735591895187081611356941624125245105895538594627953197720635357739453094034606557829028672587219263206426540331248437593837256716168330191040297894759108307481906506343166965507733222482385997584321788203193280972222932039755365864913260805927682385444535104454742503487123227916921083246672810366961927181915620680842803733004215681785297808869551325154902316049037794897836884716156574322091375236188388688743987806581166207699322421098506159639593510605596478099894151074480440371062853613342590874384351937919009235527739057201498458586799675119300260973207445833024609235788854289332895710509479281499728754479586557904026769186699485266223273866830254696538227144451312222462010857392466208416207642194364298196928026865867478700264132938594052885932751906228006248155899089707246767399182465704449078262201025256255751693821443481502474812540663016062824977391271268559907725631579768210065396750684139142026900682062560128490375532482609536723407386950772479279873336980362131881368277827263420379023339570844096655241932367800838841295104045792461802904656733886050130927383062133163060487081864395772935422011193457029999768456870923479249629981846985264596069409308294912719328545604174008454331231210666211410028633615244859960995868160926561985720105732096117462320602589489286761680354604956687456933357903993969745386106756542867010113312901520246678364206925261643746252573509553825216875857944910199114331167369663545506971901926428224608263269848950331698340489812536867344119267978937754190569603163505278460663219993985582440209192178952691780550053873960352063701977712799399015153480722210004991202460099605566736683662345747293269318005088832170021348548088510333321126884969820403250955666113923326593157214461754350443242244677589903014150655053668012068605438687541582237636957714113873862665815236156126810516333366944824674713022464839180306473595004683868754126394271748907509349626018957993825919557138268720474526969252685924874865266426580968508973371637678809770549253739523373017061789805480515754480889638107004687580759791373758515244408191200637943094996634487393106206106453862356653043926983839604678194817008511592283944687522399588912195523106147828462138846707605854168164313507250175662268470624607474055155536656129199999211962737594032309704746600014542843418749379096349974560626446923447799471306083669334260948550709018027910448112701259676283268286866261414695369393276837322046558547731449053324699476852782509892647148944468366175582228985152487710221744997513585279152047264892249346625075774009467940788572557116526941094445460653100575594125019100772309740320475332735838251234417095889219719445225647292790344384222551238610902384653392506174374723208199383675651522145677780581454640907429647589849757184857325880733788790222973891015359778553619807960917752750591573626438754054008520088389754234630445206026848256209995522130077358179092410414943162775586687834222662743545544348429614633868752768568684345729641917831421356838937877884663500919669169943107842426784322410383803212016081843333459490093655040711951792850625232499340488989437891224747932189569028461375869248484526751304587507070803444771889795966939280262496369044942720028853626714798758872404305957403638249463345690870033138097383702718543726984777594360557016262933865928973778712589950488609374658791753462541264056303162049418086802459962010135740971158161655907409768721730592571600609352827322243402355683460744586749565315991494136610533816818590618745263017663638429188164876622483042083125194220128354568608091694265835816205918433626893350928870290904330249673697155720162412810205377217608561592338439100542699358653398740886941872171476191413318306282961019186281685715402375487481023249904590339302525284831658118999829216623573973964360916135287195395996656568880212666168025883688404441704595096917987505260047773558700617415220297367980526616349615083781126667638894823249817729869232920179279480843810530799932085048620299992755765424664942868703949153272615151593974386204458123511220921310009070981953536613410534029993264550304360832215334499521821451889518457896598711683114315081191666230508949187578223191027107273584677280034476391669127231049086542294371886794483972714827839602594168313221832559086399672616500889609516372652545428786983347117219927944460074269705821884823054493161253382426069996841229974815034369070548563307880163556115594953144890613224490752565229398078781232877878688580365121768325613721746643539513309366165104702405772537667689235347359895639170440196473370350694234058050814883236703761657532256986790138401092981763248867918210187103211957775799486521693683297754922666192023708003985430542605475928323202130852217007363158077397509798132787676908796078488126306931857356139407020221670654031618149634026163520906997356325205489615729974798244060149699443056035411161681958464093072024650402835616115320542319754396914529670434630633076822460754641922908486590782630040376504264876558348176367361097036559119304610924226839923325994700475194523124612767264422247652867742934492197162908714185401875765425016236073320401442126084994245448688392064090943847359049793673868540430058502007174784207078567376078680403430209723427426067720565717539331921132657103350752577126083797789095624483069255829413736613772740854076898122779460147395349874978509140837233367632278893242906946150018978435405841408183190088785220315665283725486352705051555685692242044594716733065050257108684102902929033706491885640741446322204896984730768214942744612390991696973535424641784553055513862575769778621129468998882193357324298868333845135035766075612576647344008919350108396779142508708817345603129949394012857876226447393664241161740974182845848385706832672769874402463850936599791228631098456175696751120919263971010055459936288941690781211613311680628398692481598151513990361870257110510932513519916427737542521963331699380048254155886069738634957195371020188448486038057034792098314128454182420267085560027283923512868759538542963442817974861681094000223337523068869923242046933798742250718955571856472750058162356469197415673197051375351552239444058206897644858543688112417064630183580695188836387015906066133495915510539379259029656593404777394712959830417934188887365979407994622650545104512399507038622903125931175633329873971507781803393015601330612107910368055393166128955807388673705883339130520618447523518268656951110087611861178185257325124050671768418089618890637847015527682037445005634102929687292373287482730168982880254418893271225135345371931318599792778547383242905111032211838466648360597161610989105522108666602526004846369582752981406033001371459599172243837040385037355422426406898889563318143956531360288657922422739139216039288819304493555270856254191099093273926110005933593602932643354406585781411439792959352717661613357331061201716181058331321588221613893399593394265822752038406462982837360576944390477206011988785722461046321254958920658943135718503937141034764645216554760731124597747753643405376452746693277183799363560850099680639480100894028002253774273117113188554565817805546653200219730507117178163304819110870117547638243796637164654074249109601627544420572047573955815951850466534158826371087643764010166253057100389844159519229917824618699829710125784588354358954323109972950886289678207429780938554103118809821084157938086638800684876127021734911051434783718500949804089860126007223514496505115984522605009881324581910361346268219028167021666609415030334509961123118843133687579717481175567346122124438740830470542220596434029932453149872511821689600950016002404200912444884827021947840343354588670822964143965818077576604020148524066813143070400899945847485775025964605809363273555111594596552176935334436852562835757629762584108350845880540396206433453612042149766664688672331037280419718182372010766270643224795095745798920479918911370800720528436456598196637179726148569367404794879028247802824720433932851452208775170453810225824198641307117802204324915741979057781222974942882098436755216410297149847745710349594193267883562058725586914758925409973257695869796280977443716525113005351918684886213374049761221182550374923254774497522486436794385604133892907086463636684278361612175994980958871103746137211056820686222848875538773241917760427272329395537283193764233482810601805785169133329735664136938044613835937307183890945984913170547425445692840781090006144361880431308369876399144069451284793884303455162802159711959857259961370458155370307262001877295967547916735214225516071551036625024430457593935693495756387782916505920832628325574373382492421427032846390195233752966316199978601155805320698411193507519601419731728521346096948949098010515709839042704935212246227985413694417825164143378772964076129199307756594529002780147908475364972099050651523275077456722087633580040245957520579550385853031815451097781578403218820129040774165737262853364754327546588803510511914358312764704828961524962662211611187805172802412101584667979532769864318131360874151367996017739644590929382421545928634094950013893999809906356030756494998106266362221843056628773099025255879817452799751683411116399144991683553679371630724737429457443633894865536581961164650084591991601393357711243057206964510896566616458218637483484861073109120726811497208978385244683666646926702351679646747516416046445006421712432197103463756851628401332950610862063039822164134097504176748682469215446970664529104714074929978217976832238966095345420704555860874281217366062558807153266601080712378308158889863911596893919220458539431736337050520999337952784662433084589290613074411927314208271330682673479450251706457285825993139086695116088438506710606697765597190721936422279814491677511008164574771061572780006978069744959323480628206437009442652513574341742010112315681290904235102296867146000368045470085742575377836657059785977157093667977567077545379301894608744244864190830288778829611155159769322839539550899549998914585507557978556472746072525779759921505287229188661594017991665353455444032248701972980440243227986006411737223986505789426464885204683590595964793514933991587215782571577903008877495364137795399611898864364092722111011238234332754495539868417091133071986883946123172830035820881772817548092084177512343770970259615218218569672639973107469135682521298462413022166563768211413390574262926342266367654807861107710500439228768499202650400553823465409611883660890860370615346897902280302289713696419713685293442310381625884434488854308138240416054723801060437061963680725277791172116176181650934644560355130309946195338102831310822141309641126206279266395450442760906089543269631849608555342111430120230706552177447620366604373192918946084590342513363741018063423075711642041321455927299906761863913085792471279948195384212419568960598869477371042730931809050418022483237828364897698154164537979287710778207305777369133058721102448168522633920788821573935344482464675290290376731103701769851475503303141082650268065949319784540797318329468416975931098325462215770582916030909790719627852297832792892674120629476492126764280724347053763005020693967282372147141078125590337586045188529398433403358817953764954759190385870778154838531692135793026634916890633400031062869424456858445132467686624016793428286264365221784168905882134503697181071920035128242541876895591657660739045543398003027793514345653207596370252073801657382574578380681836879334326037033956434358516367701444156283738682422644311703201966318597848805107570724672826620177064407442696058177522254059076771269159876048311537058402383425156374357749684572201066231693906177387862776597335158693379588199139665775229441101359759553301577473380452423658926744205116779943335229632313427107778970423441606521686852685038845435379769202394458170199702695679387382953561026415941007978414672360901514253744648455492809575705059463096936976696735147642125156516193969988827869693575103692818056526656084804259883882104926816717364019941082980334794309176565354195230550917985973408072130869811506333698431700316542637000661351798642107315474547118026215595559697488602929329157435889982467321701455559897035984164719413137568445248402535828314947734304337422966242426948347177595200135862656049068431870756520132533169673657381998736689403160553377329241481244267732747560714406060221250117325668125341930471441167211984930013797738596857044633523990722686946870204260594905745552719526581173259867922512887468280165587701512501305213713720905275023640783046027117112845984173556551388146811159050503722364412658931533494828974814338690536632234420262036875611064701373928094350643437113839920414163374248010620725611271096703454184362338201147893916093738544072738204663701852339614907213849020493132754956425384389286599615699891462825417382531882776173981355175064404497848304601639191796950437037810598169946076503178097967886374112793292641509118725001585132824744246116914941457651551099954148929970081343255408429967663362909794908370194076491773111190264676420965756918530008371708159691278686221329177714543759595186469746144103447056694470115358172682553595274525667014636912168280905560008029726294321141415980484848206298673398451511448514524668894462874706158839383062742677774229859550868254870682447577255486754391528431119584886049716128170333898091155688467199974028317201609019703005872179731386124903559935977682233567389098689108626809611812859884055393654744104192251976852872564690243558939279454196426642229438317710461524672967062449269783324623352467078996225759638110687861128797398594238315697226631473526402770090855985764219487519300600894278049646687927356480737486243356865578605735694059522291412685490758365595599958775834243175236116176449630847660981653878057837586464468152401305432297938686563738721350574386987868762690923418502585733860725077413780710172549517742162958097606291261272988071936175986140241576761231945406729431755205975181800851035896215390749706888694581687009083822690179234391413254647655523446770422882095056718587176304907751180292040370338679859606649940884483090054715851622966987423777090809642198431526718627085294121442478242556243423443274372796282980495726111092144100915312301641391219060081331315695456518028268654888524611263840889695267677100483415463695019880999929108767642034958186843308180381804160988001124740084333685868883614773108460165859776937701284900966632016840880346082617423377086895689566069570604667559553028712667676533074518137597832135537876920220819016525109500872939876112563107893505591762937248359676293329586925731723216606929483118162471948139013501960542671695591746144415273185677525380962350442176131924886522443265558280219915158935216358032983918460044343589151789763888375346766151396678705587801000522609934200240224654823882772411407851825425550259014603575005315867998338463702285161871429823557952730286293023627526814009162753663779131778856718931971242100322528782804632125616326124410315225063881309080640816894814157650355456166975552326891990084385356843884021029042986233942379634678874644920886924555093564011078658796366187419138059589986157982690830233368288116825333847859675762848777811154894629313315911621253115860649097632487937353194150985453291185464756162663527904079041737593419056303064775000101511950152769898909568488065369354802136981039842656911902491163464673435057742146016608038271225921089425019496701455214712820784882189933728460084365115808627337708954116429411403715347147656189731779683045006140953247698566429634226802448785656191483570755119624690060597435439562490291981794843137775536577370457457283130071117931361852232569855713844207729474531707483408310790191842763072235006361728553543411235742358327123393089691415391581020138504226400833739246089583604155416521655562589006945988409015660519215215126359828589229100208978186789719971081995461515809531275164007895507737465268326019428500337116235374810381952894359886457338060711053726475458966419737594706655893549159237006821616726174537129844679303410451489760541007954551705086579754475825734439657415591897223872502268665180323582247691399892196873879312007064980856924987595364797425318283366930320569623990601153516371720456797544356324513925792663497955087287765617738325122730688637796709819168666086773627211101497653040806948521524500424344473482880384523209200858230109026019879353401460993102528179326394038536796291821857776120689632809900084172317943229602949798849332269678406085246757613355847991494099831196787519133755511062729990517878924494087812364703843284040343246744495074421448573863366184329117508685050874606380973914626072107434551278642534856526184268386032350180178916361596679225604726845837607618883998152042169523532750475844457312534403834085974682761880406151330321025700394803568867785772657218900817841593572807316359494675179789625494988459637275344168307362229626935740883086279461664183356595338504945385807169800955191936695618612084726790141386795420972758400364927983621038446741902477811527363404844522258805940532197619993745591370895353772921583503546449863661783684080993681445977413188486293285378193894839164455705290237237316808691259436133596949176245461310733194324466172336082732642799089465156179638409040688885915292894846321924981992145460943746600756894100098283101567637109443146097496409928500840254225392065824691672432373815360376958293601010123284290418347255296160915729718663862454637630276744899113167152986427662729472641680336481463639844179292963614653490032623451961383332070399522387616322042415542682393391263205773730416624267140951917799984179763566390583185341243299726661309568787881888903134457905627777536986710402454549939525677338473727966889112703936765611732340560118217841559176731664457595796477076280828379281958337630462902911875954984753762205789822346120657756304008993536106562564586809733935300491466539099759039676236888137814310998159183768389293220836125650755896551324467153277667170335691640467970102264531275209713945073435740670831371341659495732565953998365804992373972249774308014493644658538124468960941889500327255074952007375110586032194210750231020588314995480172369810494664632940573000625093051975328793876254704694154634877091459210405039416536553873390761627773400306447534724042465806396111462357012347160607532851510962241763931875028816303133514286304595643765226229527431821955266576852640797024064455823636456440748090230296415044032593794664287014437862534558493669217185637907580241550192374494142171125371962433288078746856575138873679600103977590059379888905750128129533837236020234322934301143740225212257169970048212808116969687412171227649323304170785375610689236393682909128270019483142601009861662996308777722362252380203819164124382222287623945739723087514777783136418852107653360651682787700169957061637805967014085741302801001811251592437271934182640657895866189825123171552833026985072524784098457216352835187565283106121325007965623467783339368614825950685129372207650910019960118810639484873611819241673284394854567980809605611492790870700090278289098199034120950514086734781826662321918936217661657017573284376051724296679271836723149458856247201359211435531413407784500585273309530413620476879662149208122193379095223694046783206318027118231160216169757835485765759722949818518372924285260677010541329509629336494623648257666863254045185132911873832583131065684168151861485274567144191701493613266600849084926553255207485771247173575826614483093020414299285750847704408349232203742627418301601550857317271093316885900827551809943086329016879895590880834312458952763177007010606755802151069325838844918348561308445576150840470808045567890445443547463498589217303395226319892780984545553445166434199097765296965859475969233761808013518727533931543272792458990291317121682414443924867641467100765351025602630704449835408305408440295008136057097066861661974205955069184779508999769113812446736846679527324037325009886242496449891691812912980248191847965310200339673263591426433565469424649811524321741367632167621182930217649779220801020515906671627599358323810146013779908106535142163751594046633482689658404253059011610696703859320040144547257166291439950712747391999142420277663066880397076597029654617484479689740417776683376541300986723983407315213381002985357908709908161970768964903941227233152389492718734065924052134396222754545456913187071349274387267313686460915311057932723536741626225183479861731892899604859017227685814073181209154513931336026460179015860552789347855563865012533695735345596321235651955811472963268567550444811484722249069000057101843590427305506837226291133562784392401452076442096852027284515737309256419232525510030280855122767265720232134827930124816730905997527325649076603468748779601608313633748121466336403038899379600821060937010151532078588166281986521675704091597449718467509626563428064389649506197945412066588431322860368078888968876003417636923988955478789120052489713666013581071119068047460894890327225437500193078978560126054688025208741925242521897634249658165351438299720534556147424201443641104109618155260221794129027707629082244303521209603235325816177880528601475834712329179647742980598251565459357481368586526080198914461964598319519175684418137246805066529133414225596122545568717034389864786054593861249807603164640101159361244540140171478020239049181562004887658048760293970057758480070149963032928099449462770592651885118832499650698290190507228873472113717296742266103356017385127622333344937751990606480517049032184015220580069475192152995999976239610781678400400178831560410481290943732588957630247243958004111012253968135333854982616787950490314858586984968002602856530221741751578070117742349242591246453038594373080954376130113990829370614203975239683328113231421305194665243692084266966473977099455643521644180552134941504718431292728505761713215447982748600627586037582659272038720564475016116207710363196530665181869789049803542948185090838658153919038239781286598235911295667155957421977021756772963207197418718334545465834224344995048190630312491384531829019977660158323442637556140681835774043449081035887148999056025085759129518610961653279160731779916605316989967854875655148050433217242194819312340758626641394857111477052307740502282313734445076118485515033656680207619920190628471411592103603235595221817542388823683829683898975276040416246158398762334732238253270278521829002851871032141849911014737219104738076290023202274580759593855413467078146639255359434131889871068885214731968688366012931097433980073359536972612673926816685517964472719757919829339791250975800550331336428356326828078902035128910902729469676911889989354066254568149464974659321329169564543910542753140447342380657616896207524590798779322515487673415602431716759132842176811514053814693293137565604689432274456323616143163794237515499814709007838973264614388993294611037635002098209287957451717073215386101806025091523753753827020708736960368164922222009043221943868665889153282014881049908515062729472496522247000927021444814021364259492878460838000880570435790118476299760838822546235818195985169850762570814361469605415140504381410333637017839905785784033990384092241616754821776224072257146143114050113989989486450633281722335029723199452821145263492207839572254232792191010444853047556536702590597904808130813241185410923883760790942943284993827934272924482809833115054821082562681724166747783596025534045920938120617954259157272118662202258821682263459935656378059137177580161267452943900656768072522641997216686264824469771035960526190732121372393403934022924694698271155058001921910985107386037156039530121477824110361623962403486332585593836871430982362664411750422418094038788054744386395464836598942370240187329153204178733206334083789430867772549744003322938671095584704142622461823940355492256736000122228936493131480424030219701628552193325344338372311833840331538030051310711221808133830794188292309236726303671529383967260202892508939582764543540440762004843541567055636935868571595328795320469345235714378125147969797071138073564978676512824874035634893231334009217412419797406346165453371501452553984406915627617783782797578114958419102500162969331327121848846248645151183351939205525006493715375998089694141859925233395629618288738646080709586073759516072456224499878799332466300466265307625390760805610130408950753760262164979796032050317694679182359295221335880481491824038018270469682029814533605284844847301556703530332906467925811136810222837290973439712343820898084951362456183642576403064608826526459610373209026066951718514667072774801023894994130842302696812615560900784773648675033531733106341724381703380426099221485706484064561059554630616772120524483626457623811584746538013479170508071053318411594371154047531426506297870670210724208639583752533599428110506918890990506637426121448573475146588707318437139048001504817414269765447527808362744673809102483063560922426476438689938059435113597771115032458781283270067112385511852405064380900049068779000385359493005078779008082682643070719597205019764378195078407189365434908749357716480698109658902493291904812761376307008170858006596617530011238581866709015220787250271100110866165358993757282599835287637329868465620816321050746936979467899056689315290171422098221669065707385368362918260813461303958188928753345358236128419798380936728746891257222042269039561098234763750148117055162231855029257392632865305940895786577472769277242722404537960101472684747523289547162634252811052798095837193860304913091916637052305183506067830658885564488208574145667908448097420422734844778529150962829394301236300000074310228500130747939326951354501472358567390011443040168765639016028704432641448339395869814284601404265272739590265712352149288286176519188435842413036869993681619376916713230744341314962269925948194644809902739647415057292097604780463266062610423520559214151929746353030799958694738841855290068693792005981603579371159262469465842646910537812680989992142200263873225297279851018959440178993419502756728662528198448809433214233531691466629618503354499314649788223810793693192469052306227446052971730342724898373103706280178062947788664608005613140786221282789727726207883561903853906672033704978964880012190046301927349785609430441395338223993550139436806391935809409947857986366676359795509491868652964854828626900418470807176651810434277423427801652880207234496050347734643069377850666712722666355514259079262494479315564061290558312042259206202180623715063804986418116973510384456687505823904588560984710295276370738172963073121305666965583132907960499769346923304514994877052434546353090699419864739385418830043710995900075071450656486023052734537837748930068955779331642888743660523237124855165388374976632021036500442012767159076634505155620597690789719193217924284297782398190073512024266460788680103103311471899088687339921942304672910674365384650341664591202247981322515800168072901894023472376726588214803479603374265833774800388423464703115499249084580782270502467979643164057114875712105096785114480820243203048950901213450147700097381424842882293456446582289255924643473077403312768886523689547495340793098684305839598685247301862465774662422090593720827747722029274708208466746682171495463224151778523146460501130953289010404212640647472107231093576972202452920186814955154799153870417081824129675354598887211927471767912190379983284458812529631829667264159157630669231041789172633099608653533709435979058846969906750671533029436187613313381765562523092983270952212089878011993265951982760030494483105984334603734460959536956330029494659561472079678518430146923018401386328489857642787655224526203879344292602775600048758592647592351076089708084296121389441361923652155926242870268777868702673327585297306801665249266473940102580719731551300700228815241208070494209701101318428450661962468504874785654413596318025724499222122005877682544774572542884463295765942915477344860312979177155931558642258436521503217498231699972254251054758169850539909014415671505166071720319661633876714756156183168131832752749243032167548428673200204493678507626286561884776590282690283622934724699271838179133197800209000388385044943712198896966331584057582658650457340716439330709630572992321297944965064467830099589045411974635656728409436919139916398757149378521150845540841069715834099539813525807576870236863874960293380953600412012267540435571707296782841757164770982975075959226385030881724371855042989883991844945873116142486103020722376753056981481412939318459761718412703918477520344757949967686819923609195673625670341200141336171985669086257786064679510384288965087563738184418376587476424256263207285238416293438790511821124076774187916786146476786450321261990144235777252880809515162887080291164642986456176012583307978525151315029543297449805132975749189780981168417020724235384007934082877701071189796429090214775231645936892533259067164498002108595151897894716239860426072247496305640236108345240871717426115736437013072824480803441931551984369132359149421669511551758999244234353140800940771984971431878343827310658525519831100479675312990356000147714457966492861366411831403586253544137678681953571535818118036047892873865294671584970410572518753622237784291240185818462569114322531452726935151609358914758282568718698354269685072451637694344888619978499402810731620448751045774824011918310816483349405678132505020440985667449469820002190916530758203053677767071705751287600136744800939429122814983244009184738733325831700441447683862925745132413805480614154877644657750152992095400053464148806440067279765800461973454120443016574892863573023204634952094257511830068912272368748100181831144392693040785611429095091427402140771098649475942796996342747793375677797555748161341324465101439020665821523856186239464673765190788134416798269324632393537356247660611101321954828226899384025984944915688126644484644944322927050960483736686928136700516587869316762885428364678501304192259237195749407046381694130224259588161933619126443039268920065036094276513234627239092960860522460702432446420208710302746871501624203467695074829857014525877648691082335744247749665697049733584805666620568300654365998314851047785123267836280297956621581419095409619557496833967255288793944344135674176700447393639043426946201823249072878623583576281550499364664092517669107326428657790896092090505539786068911634858547680456332164812466733447690155796707287673174404611559477235949150104113227033692082593448648803701037470757117987805320477832438838913760879256483236350291262832956489871043797402952728764798259146691895528883130760397419313155079358731602002569497696000574877242336619866880282051574298689602830861309238436339212684472260783378859865328404744149319502746531323483086250958165165819429820155352618523737939033970075452964734677253761342499963873777694066089725754288328957236228215536131516185635355782520676444226478545820822916365683360812217964442671244641704960910328117028920468845431405529042226973389800119256633310270882984046489257108860155109056045562768762216841483260628643337272375486447246760184558002469462251151977106504800530622201852915564418039601951937523270364616693588447431797728388146216332171538221893386262482907181649297973127101540038488732104508820223655378708437631305778433840696924628997627694876264088583807298001157280596694040875148512497364694457603167559251324108466513120163127337613305494461360658101351246316462956256540371212421580072605887703244147711140774621355160480544300173737380954504188614622483668813694569371629773093507185458029892380398830054942036853443417396491963941793392351201579097003448329446066349101949234865530111589913066785447620136658958841867376364509670074972411304677528095731924573966928450637574226188614159411850037333920006161546596446521896366199829663214868991773027584064984724280478908918378093129711020126123692939566426514251810702457020618227491175812497206650788165894969016598954472700382964083616756197612120853207797612608806336978683321375925777543737214590154947918985523760968337836522522229887736268028934397516904802708166875459729503548389719612492270120606720176913686517592463887501426636984874855176569508947713687872294359228446968645225166770940090708764034659116679472460553087737247051736180570556770194835237083311074391288782113355785095042728602186026902964995010223863864231165743868878198011471716402820512833301014852112341932807036390685921242339243904340208971528425472280877438297898135795651241072762030098971993445085749239369909751252606676793971968892703674002587604328724837723155640735233363122531771793517540156380641367728077823452208007351180639496588896996545456009831846647865080675309383876202714806085924558951971019496895780174027368648866118151043664938995631808975206423849614897908589248620021101030693608969652458583016890987378687883640508438069901784210893694003605568457609541995484934324749180075713164102897514876215112859597637723267380110000911296688109860578704464339196658315815041788423130327277708691291856718990939115464365179539758924046980742492988518734991102013682402343309375155679428111153205844594355818667392933986116958155542843794766520358898475791868155170664377874027275193615423434566784341390639836231528884475514229078666729452631939373789374685186105902748269570428477933216603541496189378821727412578663305778315476319639043403697024712380051944065823880543417279441395085911095322892407332015446993948621708278228127031560593513562122321121969795431739614660123387706019417794455741606089724779813307299640750806814128819595153193253119791651388901200808938830568967410767425597637294425828925523498689757250616738113510596470163503811928848652384261860264463042836941398030504251186745872725630884222678070980349543102414314517821116850688125818653114982384982357316997308210763065636751773171557237131651606229773474592037536629696056565994475073331527227938930052587351474582162415061993667468599097420708470144351013429423822920631652365308952954339060665590686065205882686771554891008745089411571930438042407072608395581414892908646543553343228744040330562553332347566917635540605458322399407818816594135322586496474967450630552683645529916035864972859500627890625422324756004729234414600591476348981449821809963347092725074332370449014168712591449828470861529016185830541029818537458903000602100302152535233124996734092059146088641196496687187772670052650077258678810185937494209478109017867446590313780854084562699404484164541763146812197660040823947114751531148728875288804137647599012994409084303535246486349469778670427684013945421032411248498214055826134514811330865444769704179555731240968310903066506951262276329014183974396997521872936615622112967509460879394046015327976607752090304923851753498452468248085547024078359063400284139341940511872797422339903008883825836643460612630040391068570713275735133769084314291679078717135035272316619914920341881033011576136860957486364743863553255064104769279673222164048523715644201858636625553930657148590305704332216787637448720686209951947984420883080500706610678375433929655343022678067287040735586521050504892136189283563494459975642826540890737731778073856883297418444959523661554965464747899929851473236602014489032477728512759634411514808112987922383982821069288923078290710869992986763166568801838673471132311780339506974101126110709943231652994976700564838927589078837114303323783760871619624545244290034545896384178536081570876430935685335178456055190651944017711421056263941705116968590201916432288963761803286071430291558051277576644187373683537076693533653846072896774562927557551368549261507021776755767065683557812612349245909217051402722311041510922202672990463518855818969105567251462600709609126243405573812565082759316958943133833658400111203564258207835365588273350975184519236897594888660502361459495517043237481383099671605514411514523376048099082216049769160692830367630517468607739822785613940178624293144006083343783446397588655322796501233675253108712667456273185978594308624960389331606244357901618790616306128650231066967429314129309356022871361930981295646548859701796793293062432286887645578943584262161766258900942093431588604114899528552545924197614732379436911245825961735238781374753366471616372136805838899889049987032168785923524493078716727597909687176334323056570054882007111126540827759898517358921770062839732473650639781140980632756264477835247088031902434910079367056911880022608577767688085608865327932683094643934104462893203289983351705151519107797474623451203426999371934614327369939790785372386224331795275887739536164320476919306046961590267264778745785564058430129991283793775006507508169030373519503299559247688009726738134816419748342949403916328847383512590403232225077694895978116696328638177547243617507870817433062396321750685559265184746005210181030432657125231425908992067655466021968970116096100039659926049890738564727252787124831759595539753175329108172833147731925652934740524887835652051331392656804097206727450771271550258591436665324181552591723138928018467344841932415437581085797069958530399171961378043944251644630108814007052206801450461032349868988133911042346633652277647468400446020082096232967068433962621791931579506955073203615551416758035358890501305351982004196021545890550083598321325893262875937419010296845881896766543848876432259210612154176766938371138300293759590470813573599640959623934631040111207903466313725276629001557425746248893926782308750976315467475928769315354801066796662700929396237980677513533263537548530213287641375443249756051245211235707323281420577000717492911524195929901571435591069297952646849207196380668182157238737028430248785836498000548838442270627816313610917793189819885661017615514457252233409607199737623411936877897392200289256834853608487932514191645947503672940243952391727917861392780419983474910321694242396040392698756967168898550788806985720428331671025239283413624972427983895137313788061321312521206430318175698297006754898195709749969499754642090460890321106175236185695544069206842473106314051431794845577938606546408976484142197710402440096345207840195020256039675078638496150078711278166683952558894759504847758310097287835643943033164760210352431442762077766579756701294805739380616437031275338985619221456593378410905860068474442058450087859735027185648671763178005798876587777864433055600472324553780816149136162910999800128471025068840601853547617178428935155059206833355287297944317084096380350074644862225558416491295587073467853349750210550789421117044085599455824487469564546657387070828657429693933071123400040949582813169970438974466442708713938021202326366272129342694614310854932200902676171651347189042681193284904884526153444852596153638666489095915066208841942201405086735407708393955684196082336094401653618805549372112852319551507421480636695169073372453974140081909680567678712791600506455015589636340347915710566778631699157819485778649905039518044885623424633058929793033279469028035346289995412125114911573301313087567709825052447950454485554898514906670094143208390591215843632635475686091022661356284713243685376543106816592885690865185259126361268252273695534030453414159227762488274842750892640511841896927571338170773885868692694211302516846313617052317667850342001479085309712228233061931189318941897798570110990157216882343270390317047378673096591640633928176899574187140643968231533757819108742734230200304018197192363945472908698616698112275562034338253980099385920730689138700671130230425892965143993049507673257190533862218880666032709594022010065937291444275696612845582569629772901050711326153794442722066596088881494075583417800070813460093074567624658327478373030500520248650453745070895595578353799667797232444832601672340479257286403096169302974978583179566863498511135561647572728134675907220521306540398245655105726246168136291382622709763486000992088374594198430620224006258967926536349917225262302592887489301033450252858981618352391375264923836884131215930681761583171640354946282048435697173084612288670265534745696174903814796190466648846273179102169252338704318459373934019015074214379872967290731336431474770766648645430513261394880992943519936649488650917968357279527204768465540600379854497538064679112387002365012410772849358618101830297831744330230666789745176165313405778336918502944382916099419757113001043219293040330694102366786248072706308041267600564545836904386140363784429419136513051088323850302577916305956415426588836063332295165062507093507964614698094971560186968003091437244543912217529432106250930498666188908582586717330669286935117698738704097577141016811616607334981387657145836620418380536029298253917668437227841812426272801669822514300273350771415284839235900459303518080225408354167367715440937169902602891963638157711957509073108157739299769586662608174020989616183371476641146932658627512936017337523228385860775836154553374460946879563020496029565895462032725198724850239113295231793139124530875505195873740070488057187965031912101442041279856304937344995609543047081663797837939511557082739593947937003592081125362541890727253947145005768085166315364095969834011985022356658988004155453601743495851309970957712153727025402056104570176050863563103415201972761037479672875837943398066341400379653824254688963049339238480828376997081225568504364596899209005277132259701911346639903798661150182086902647906459129744578650024886265658272743143274564321298406058708787707063689689654376233552428869988431364424521475072828443045841160921330885270267638936590468292089550622883293426042112729750294034847314781134445084587325352888693212318890266427839531539123083266438960209540516293022113899452222009816890110930732780748929418437931434201058358318257436010080276137649845718603252355825766816033703538403242558188975281150865301987474056955831146705527664892581225657566413281077843871856338018942554083200236858677390098025921011582577098068746570041510924254185099328964323647809088865866749891399545351478372836376496129404974017478530510910876732541376701472640182167914918593096893897836330163355730562263713524624012708988764836325220734267108217072430060598743264563136359600194139040235423105162232920075847801657032114760456144544597471760829066671682748487196314734698875174679386478863630726058009873813599550889053252706834342660033741522676802961327805564677262603857478849303020701875765417170943070292132025200031679879755268541723748199380739897799910843716282967561115115954201479130077437818762057117261263217553011674402061910187322900539476805332758419712960154727997296215397284076467509684357794197273213051127221578832283731249796975320920838185770041231470611239581299899660727154958935157772391861814205544466146497151640992436377826156183999364294644353429391908761337749658227884587748875923283236778758990864905423756834836086268648268339427141480732876952474278710530547556296377761821567975374236379657595968851752641918533546903395637120080489687771337951299755067869492833452387249266106467331123101679568380077637125878649157532122663852263970042907693340600556202545309325046328588068025471196114601459596657594721974683270128478026256445123033767086730596454776410944179435212263059054727441130754171996951387266608356118644129291961492798026320140212396252886016186695672324680870794535753811831721317013453554684650096104992344680444604418945552421903166997074967736185452756817750139325038993755692407381429419919144077186596229579797896347076638385016102847316554657548126631204124900816855536955537514936176882911605755775768958643578731223579101182451338096809334331207642536974387103464778816179805224820976765761526302287040126843848187568795309893874125689107363485011639416062006176274313789982854345930609049312876220376853780034194779756647770657810145984777648518012714659273505216216856172876567484323525719653093605111186196840121177642625739650603431910581747518679163805727166254992312359308075827959672141287554983795215849652580345482078641566418298277443617017263159995415389169905737067903855222530993566156382985892234121172039138462568388890765504658947299482887489770199204910722802405847819332664405365474172994696728782633674547326148412654143805002390124315378364782633044002789381810045623582684809290040288258755021347107136997171337909906038057287250798874596874759793804507347175438369469683545119888405803582012727936301936503508854096560072034881529385038854654904842075656522813303578631579149366490820865767676655018304152680742655298526684558852189895520821682958262852620665540073672541511947832991394327698232301958303034381068802674826205363716752398230547913456363976659056316590100456953755999088614382399803313376786118504562698999887453494950763522456781629599020387820822843914867881914526636149987698681176399361128992605586489094751290295672529340583051222735734897118599098095701381766594827405096245686172253326348872956725775342449104769472493480707587389522433415460105930584446931468732370128159455098025124516710803613212180717451337022530187927711792760390231794407123035674613587664832982207834926106956275544220816909073426427969776156010307743245230531896648404702710889717266651055017240473985625924709180310483766804822956790552750816629282352600266034808023273445139493851385201423453928788041034627713578341117102039383075784824326653689008505058085049667018971731889791220150751966845285316723671853027822208164771897744130968796711417688553545732590028358425067822230277582506825692150491273057334443235362454990818310140823376001556387787273843759240870396246221428447545754090134867252226758904538637337983697478243830087501291488669548059395636533290282795893075241173237093388333578075966168175701077518681492539902399546020193674034199369953539839927517714814132695597023334522978911144024616063690419255794146810288435779750917211425957230028583182570081926885963886561535155939474522999303714315874061266698970896219290786791645244067934299294658261138321673579533216234147889350330122648515903134984669950309356347673344977614912817655654887089610283629699154658783759906898138680127210452778225174366586250889655596630514111197436993835804683175177040104384208302486689622192046852124753313054089863942024739962574896901731454290145405148000136923660060586391239853964158331936120366044345536732895272089619779820403677053433945329430776368869924067331064613056757249584363274673952047742073973899209526880184821588819702057920275054879022292125005428572236210553961436849831543955998793697986373489307656763374601439700380477566969537443062266652569524485587457992206304513517557509133414878038832020410348164606159247346203214664592004296911643203264289416253146564809362005795515398433010783262629596012531219243381687562816385330111289656448788368226380812346546777806106973990794073822196839620548208047272024105716972872664848939676467519149388936275483426265071238184558486014292007754823688203690300640989631006625861976894364033390399367789120327473327668674398746857702761652207432572917662024419763802490906303700532719203764868015574332145338593927722054467687139732478961168377949458364471643561499844197858180439670205897403798009174974118551924546884791476865120209201873109980111224634955426445919169257034271161499138480413644311578887978918830530868318069457621378560374864856532575516715201645596352336361255725976585163975438968511375429965365655235614300946190187745290766667174338318852779282025427944792411415464083368078786050821005018404720948822275742557494712529380711456499450382298940465140722727328311472939085628444469315688258576701325297320582685448142138809797924451111250980535469519908073004866333886836708326047767078442206806215597844973721146183904465187715696448185460568706134869094244649137588268967220087888585755662437033966754010454234686971988459738352939496048228513882237857701748597156574855737311012635952006224887358504261478218481794760703644338381081548622895312082012835684965069517392641270269140930150881289524579288938288215903744148716831828338278901009607212399489299451564937135639717222160246025094696389506916175464904619173246059966266176620405136387771874010445276419822915455801600931441060337957515593611571356029614734904778397664240369946753745196554868425573469289894027228899221483176689739592251059517648998795622784963615542020534479791155342394791091039149601318712046629920726444801168373103491076269022313101115405008671775262074677931966352070970839934670189102845145800474901983088224581078777762527354241081955790509860115192020316866182701378665215959523544070621965845473578558587662860126146049634229519472589232848671788988481684523367078527323295261208129713722080593633257390138362639080145005904566100825210753986849607959725888240568222267903067607345060197855952085932045004925548107943963847676020804419766553698929730706147524645182265242494609219129119850285411670647810354120664877955720208557571200420796932404284593893274783572600546020908582112623468688618603102980195923667191116355670180026128428868200292330865188950103425752380663202573901874000372301529636837704906783242127817381065375009997275898663313291256565063562253978024003206075947780283182001477679170348228623789453331880275735496301695300163866858180746657598556454358156792188333526904032650687230998268673787888960355070681507948218190745263583141440954455927049660805077494893929261081767283155148492365014037606773231739623640471577642293634349693020638260796259100141383181871737798869951445112476669754984158120449588335746724460632707290081255309944147448844671139236558488194128675989654081994243692555902915034762827584568132559468434538946391770401225898520035050106235133883416404642178661911329437949867858765364055415573866665910841818501668194329755109546725042582783794495948927034111329308218895638717183602168878681980620009954243150428857316362620043206992439766052501128295420571053857810638868563308976156846281953258071019672550839546418892623380118078119562039013865036309626653626557257975947900248212268109396381144904285036596758072054464869710943836727551082094932494074150685533956978904404017893484961057341277390241292353933317731309111047603046109869459588063525059865031676224523328732516856866216929234643130949797671265812424027226155614301817373774833360607335906276029796026100952274502595933350173124230378425710908609213737082387792640826243136114857156847977869903539879742832808053645711861525970355306543094584177222413355708625822797525774082503794300498960583861991661687129508955058139664027096511501375851430413550796444590444392345767769991564208247903754482126616897086436177137398570951185599301860447977483817430552715910752931380240201021026677154834249888076405662853081410027509501030629966852886900248154126062848033720886887835487549630939731697325014450259744720709928382149204423823150841515788489479607917780503255846344967785974812662436986217597002441038169322389543744531828453690764450638958508124112231752601385554807695241653000905748286607913930936402088315494663856503182496660350193734678561771416531784435127634734513995170594736592257630820807701169887953164657123550233561896423830021438454544008544200416301332879816963826125959605381995321257586940911526414823263850893779855742466707370944878666579887337528162408659258112409786750409243235606508892255459829800436139875802158195887558894584298116842599624165096462390511110977717149662807163632696282798159338097791770724426704300408316665896571043936495372992407695528153164907252173171267433343550737533609588611427666914451328959175016385292112676708643045199460339180575111789262882339723025921028658965761996242709242673077525476762293888629000636969263309523375368759592824232790372191588503926299058081433367928156371729211468889808668412949392467607755906695767092941868940243135346007520629337173662393397566844726639463323890731457923858530219562612971600835577467539055540892300465021592020450774739621362118366693560371196114470186500885972378029766912136679814124620541974466118752067911293377615590198904450941779355204741599562682577099116542788232367089671485237005815882149501787314086296161831076234621020133438802168100663559584468477580747067544693339501309030359854682207075752931204698272066237177266853430606094991916078419037875774087147337976548292438579483823838499969934756266819824148248450185059577944722469614780266904330858705971719794436853452162033818257528210759867299933177302977692390386920522659588263415828730141479444159713025334762705119872685885707711697652399694877895974070774482614246476389930119096436620992515172155093957207936534571560591411099920902040383050471293132470074713749273924662624924041996230716167987444265299031725552551902238338572489212015428415080500159094915303303871327792842161794343415254039214585970311301116829860153342128894684630339156161849365146121261267974815113071881596310077204160382047156814343819368830474234650861284106586686063166594685321177082506479051541221569100086222791296553525470752227476052831125556607971060026497962649022125541821537573910813406686825034200613740034984526031770451734376316125737330874301764327959244125415297435912266399148846602466985257153219701180149383541600187716868657680982914742451883453798496296170088448657432914109088314978053505499801431105908130182179087254164522891980760076367155758577026096452705998211222590226903169638014474958851793549302628051535106695540658994510305882661980369561013366621160372708197150834067701468507112709928036958610329960269139110147799522713530742922923438738957918203151482185692953493427743240457102434819556032719418457753363977973049966859236590312450381698514985370532482314213175130487434327968607202347764497199479918536236888128020413950660075928153902526957845911073212511467568146403307036209389334167111310084400910689207399131614961391482945900386229137127302919186618866677545941659042858166822535761587546739138339788737806943328963036224879972038414240338613293121046665118139194889526115908800509520618280419615429897495632997356671826591610136215646828103341386439888536806862803371514325657997931905873239089140020251173493371871669000694571468402158828633684844451832045772953937956564955541522985109752093439384804757355901708137398904472347899571444841132908164801918431372119523159147959605622528652996883560480968506028422014054862521688485919722489585098454160400066572370944675284961016799811649104045722361228550285698399729460622110657179456644135749676603846722712614770780754072867758016207180589765996638953824066116032003874564648112303596182066548680325682394761745836662918045739779857755616422790341050810536872908989997210947643969048058800842688837296554014472313044761311420978783717331788712379396504921268358733179774905168565028062092056141839722080404619612227500248857196365209356489644116502916037145131838906402443667452634158109864202340273252540059466285259391634429238824255742756411137584165528036933219376509089898451832935835697493952948338043548921867465549823659276825466649823206355663406849777355712699171821847034645447733984283235207753966087271758345257339867970221495573461382487901733727124239448777145043203310217207206335419987624298677442895487087510588043523633536542027829640893808707962928017496159943372059881509787166349625697291309213941250655218470598045984513281684482054352654984799615278039145359872890724384593105032286904945102433862814241409126959610812429789350724311097817921452969073299150018153525531994797579725183985484074731217127538363955395279779884134825680166068513665793466577184411502904486170744402755420255450760222965373535422682365578294242317545701955567346114896191396472780697730203856599369022239803702776925148734913715941574192536406680879049839094397157190276004481434157211344512974454536491180491290008747528039736809132424416601590528141415349380376334178267203647118028610715271635301470883397188706864381799982911693315884180606916220039834828544591725961629154432524773738856951442009617821134132132316639765543423925353403493561125253950819217053410325041674862582149882656569641904588270031544054394140440138654746814024393851467443285385316528030353115831010551590960763322464723731453433957037126090324075900266790420625552817910484199478489046480155320871580963085980797457543392770791179085165590319095485235938726429591800063308606559152976067767796146299532396270800466035012030511371713418880487809047795953211214648595772375756849987472143180499576593291401789051247374010810785424099584797548943418267772314214117313053459101667554431434169543275609985838978349165683688947821779390180689538118702292486030599529358624649773789963950172483193469029091023869856910333722630683134075075213407687981931582970584156688923303739110671398322629963073173524773491708216024718115393372387824756751524058689096843807241636357844127264630159651504660312447357887527355060305073541898795305963995574248653101912189700499163732545502403890848025028580481978075447262233426914349950173440899337298315520214415429309695457090367768816188685903487803863552432193822931019264153843608872380336189969638849695639733599238228562592849547192298063922116082571577582100674087451592920452103162176925851495104709495233232679871814756279545107894204511282977228045473980042414714797909410092642044852137801977292161151876298820836469399388364775269183032245190343133290549525397919531542855185913300494654539280769361401196076298245341453336485459904559184118477362604918866841085359030554992349781273074411116550725674213706165188645200581386230302808921464270025072018903763791984237677920716613347575121689179216791634970895476070523618811517006885883224292516776661331257444904784757917917688453824931699976574622920134210436495485418327977317331933709772084493121011414563429876441724647938885024243012283639604578295084681024470483218777595610832665631086329080371583253410000317968390620315822868077310740600009128299896201475883782166458884452581957528305698057322809847629228719682039882056753683169996622297843263838125426434884505273367845320302646974105450606416033348307430315339199893067503902335084383206408968956326173619629800781747117095172399788837734361144083243663526610015635670281434669530737814413971245149020114082250060658108137394786369724683303232425171633178293524069972669169549235266163725284779083651436129062216056879537584965678534382855869363320055896134105008816413996950773738024175745755614349651783949171892547785452501018729596008537708836955941139563366608240526764056460967080201110635247739029754111773724465803231748947208096042353624534056230557808030941436257142014652938258349738506465580687375422499305209333961407441774208500076796021104616754140945213974155066329133762206208763241778393817808268917127759545863189685517363956075661905666731865309800974214205474218182422042937585714070963552105657093858565733140936449451513517120880112885397331020795421428399754023495999805065033565194590221836989297824510598542926106141488617058817895465697809944457934172808684353608392037458824021823617104501984756146121658918282094224500966657534860384497009082065711835973911761257397022116190886595515507271782395618925334104927870856438828914444333265457771747543191417921618015995579169384423180177912877639645539318262813089707487246033278749908937730875886491951865685007327264809229335358269549233481775611537350756811651123656260383937014048869035584677250201342874628092940694623988382149892904816230810267832575286929045697739211801972502212755799240236706715457597916730301194259967184557643531502977057608402913673429711994461202973789313985265954208855967036378894010888413238596618168223956672634003881071136952711781886513005689829331104220044709572687966574848685726493648531905626946783111573491243598537433890601049527042314926484534993648342051212857548878181401550425423673422457314439437722839514739897785210260174380733985887183229675505831611223710290494490547421146029764897390262534501313803442013036365158929375421111407052669428840825066985493447751695036270705816570917069050462586184726221124423154128423405651929969238606261384164507662789152219329253292562101069100449075590233939968703936427505043536935703231577841854687884401921210167968149110478076250575900827749304382300270307459048410631995958214697025052074122090357438424197622156347861139648666762615702810195021699111833591795241530815700625192806485555654583302167739764837818804693156376088546949521391613643926310888075673239308507653159791556636921067215059111610430623368019934625314571203448577528956926954642868669536971100843802531045153335966002118330726850116420651399003059354323717098896620568575228101927179483313662928506405166679319343812229327836376195179276085587486191603291724384431041360669784083032824779555240011294075961717563293802548561057934641692244756363154916574406506952992379814845204649237276725373614239207624081973784202941668858960408597529010671149196135240920375878275923533962029551617986014088904864871312991467061645949742333720290329259987719861061725317783718126909728138807382521836424849658659269852760857764102489074027149925072924916674433319680068485230828402980085580932165541822234675843875573328675905218127393340465323904313596100260347675333343524994951105679995631449149479019351259238449064338913175598406380406640345826748310697615180073852467149890426472818431249186083090105146177227845716796954277781272963300104913321688183406767264632973165586346649863624426682986674725059715497134443780252555651668639875186448261486973980052036859950234906514426251171929819363446579937409116496019126762484064053637423057739621928968371230456613335606622727233863893243233257885082148896116507636161305117394547844426048698946884869220485736117398843410986776280983473685647597539449873772585568761396114134771128997886565961156244671738455783549356015964707939989875729565259126777114223534785178971499862871136686374690198767316497442574560660096330204124345396974166157258920262742192712158877060827064187529269481494551102238346032391749721777619018857835499776202903744480879140369395697283312201378577306488766828489646376295107509156714934603742752031830029475175727491004243118432853314501625695768083637980945591891615026169694985086189717633300966888265358222524933740577481449477457924975137348608839659423158774220346359526194588092532507831529961321130985816181200431659313569411214302273282915473116406191838397735296987948875591253007604360874651019299558458644993649803916333050164689918873919136618784484529924434490209185787130978423819242060422072356716490032705614457721625750743662642451269067789452093516935108009572961719864980728598967650827898138236769515127146491990086775385022820418338921389137510793452119687583288513700075386075295052747582064412631141712641851300513109836275933288759523935306141265203855848370802732959283903025782721707346880913215447314680734130833340587741029524964125800478564822290011603227745121046208412231109083542025328043237803071827374166954620847989388598725923447104699643656174864730693265578301875002481122953446861025616900965276671160949399921809024714894616646662283573159447834459634270845303605408531824557384519202625313765653198387478455857584366346418138062148743347274303683853714834896086220263018133195395124030685686657341842388504916135343099019832760354700938552121571691164273672714974778998198693326185937441339432858600605526468095957957861788407299318538041628368481660468131419681483468846702252459276001805727585132429192833357172146092536983436719353476539275512032776111174292889339390031473742173077194667979549285676555139086839682653423672896245457059148429677735920257695451210661526519277571220936871313511725979855629494573099780324560786879306366811381004619748992259816025311650986067232411327038707900261296356818237270136197150330206902541692249333482858524695990009646059681048609329450092812374700643661437488845358284255325031152640283497364562947781455882443635581082360547332212602171612103352516216808502771673064877080962976982951770894805459045006640250300937539579711535735080934718602169311117339708095573185526924092840513627922605024096765360201099596783073040365173755932512887415041682168872744874027762306706604889233168931719755974117942839676007744737894865412452619879377726819123829439458882572005318375014893779641782189693451133903203175909053575716284671949317607720505921375982859726955725108457013931659403394604845657456071627896813701578943310863924213808857078798629767861548058169517527247276902939691536964172915316030110785847668979551626661278648511920744538848878388639956781277009803776088333179800449675781231295950235219692561350151328743873266143140233892160179412858744149341667037849423794616372066688007083707346973716625723991703890621529431825234021498481177762874088683043464277351413155312234647356524380176964584546017593134585071776831063811757423616457355084989915143481924968440330020051873691873558601993592414792197899773651933120292749515144582940305662774504043630864029390825264727663255568694795575226426375919712878868183081495092307001408029026072923410684252460079344281866840943517014439137198118894691908378842539037699902451203206165949887275622993424121967899686224359333085656120241885606007978230421847527723535484761817413574132422500238311424464581649717545899271907931252465575642022223290893904035407466102748560955357170266278177786841225660932635172236074641025660381675695815609478243831374380898310443648000468219491486644723313585055310237205648148276092154147026737544634478091241854304929331907098946973913307365598032986348129397154818324717851992423518484031581001231625782644652322594151543589421508493115144851603351380733083528387737486033209422332978626876210893025834060726746513740898058480282941178704307482055689630383139178522143506366516543579386289776411824395532604123140710755272732951443760555041452322181187032674973334926023964810639054632658982590372269418569131984107738507985490727951632257319367511262793890124642286340190166549660272831985852405877164436657400764266868277972369580273529726113504731805887824569944892493602938780657625389062050846360989103285089090334850626717211353898495288118240187516217099590756876473584011761065595396867747117802072346622682933148483005330330652303281066375738492269299419395252219407963722957831969262089285902854592920372202909208240622808524146761440476305877871836045919089352370429974651254072320422014002533866189245070329951117675385046065494562332913166931126747410560666136143244143660575803689761070959091892533191041506900523076606089285218156521376326356688337284006998082932796124751508725801685507657078800832553528099320154072338237432545825029707635319427579595700498861064613029789030731010994459492535970809311377107111847816304035589996819042683813097178778729525458934911620569071838538754800662884698860251100003581576014843758769502040351019473725294250311033815443429746856671794249484444639900735949203434586907284897759391351453178146230808222900640975109698169719369968222444135089561848787978326416032590817756857233183066174349288486871039155623463921749665225361725014268146395802336665096749220799255337050635643645055043694243431656230263146905078577881340009952706058048463772981480134235698608998513441723451483592629453827328069314007472431809171474318774331809681634922557888966615145290344821621983338327884698016627936760230284251709852452049662566850375765517331767257156612660398236773809041090769394308055341286294139730740678508041726221176824590275023425926583274292257265029449395291474194745337022510454559918202022429606253003156277301756815518615262379637096993754232983237177895203806345795258674822041778076010709339258493261378295296420133752739475998485601788634010266565605422494829432899042575986925202072614994709395976397190745272788508238291639142713822496961167759344283544309369959152678779519120344765841277288557514443543774087142252914108936000957116934173824701556930618872092944471341391776872278198613780369591692032220365728098328509023096643494330125592129490781787127702065971713336684840361991991464875666379422169090783678947190960094299463443901313146050974189020808105699451727137722313773570177592023668178648055701594314758243894567615592768185222780904825989534268502329649487725311500530871964747942733679296285404010762482673755166757230734501317607631375377598732093366380219071701030734459620400486146619707413118797772881213198570883318172393093150279706521194286955357069477266432543531189983697696815069609221937253661716533609529681666323548114265455156857332302319871551879938906278571627238770038800099207607415265469515074228186573052126988531072438564196383433583176100867127373712123179423219139496118448436991826050682951886693937606015155387310791844879819183039145808271441541924126652617298812308828729538400668531426531731395129503294534514156222350078653405579113910289871588013549387851997709649531359750797145620704581607030103690428423174078405080302604238290703305784259424564737863471168808142176926874561854249850779339691141193438807096137602781655759790941700018843451465695005835087597404533252697090764638223250099326391812593910319650365969179420174326015674126389723337206263208499455491431343032470139773371936462431664040449072104891037945164978752895845933453684501998980554339021710610454812799256128468796518274966055466214717388757491621092834700783789903837709192095146956635390493800061036779790959906209808788262995204637747520568253410050529147739727861013199576516233462656594575118676256910250657074028496229497841613521651021716423532928836920360042777792747830235293783642940054479098732457551256591751176914008214968899656160853525400674937266608800122400824728948700819794176438647674593467270039084933228988077322133712470467367260320808956234706407976158130551605949578108728934567756609200436021699340012304722707520055705624678830113840611896967181318691452692968314468049129758581918203411603121121704831278744010126133754655173256630378584043616267030903686851611478584657203920003007467766259625613738077655412963921506612893336025579941094394868263539991637996388474950968292631379759286095353036890184492438283477811719791511693499111290302251602194481193877260443194427593631993049224423116469111969206631555682653434164449784892049973756294616883800820510255341117504225159485826107991131255551157431841431817530660812145464329923954684342518118146709412938965301302497689903624834434161878895203110344750099757617185323483599276079854932832483763399173654049481859262336138412776794535056284657369615401110595137619013646871163181817150482571940465551416537146273956876275490378315852480435607434830928438780241640331040747475983288985806483800738642616830854141347383684421830525981313676044796066642353940432217319730587001305137060531915145939722071046127032790214737877657764952286158801909921399074391522400873995661029789337686944236112334424122853325543821316514640059187634414101560106369394554324026050219293042413734042585560331803871898507915569888334225738538180315699588222480634966825623641985718291749552160003925393218282640490788039113579328903069471498116982125225163860334440152718745054109780604245495303808301064923174615148672063370187515977380506278286166096954883449936596626035549983270067449963552935169422138979938474266293948076759839699027956628593770561483705173491472744257002294160403170743466115062329277324514252343344518169769609711998781415141293175376463718177186027743256273552323899266173414208654077115535789237861775275032803314362829800825863025920833745749424000886091233420969864431485183272755726477160855444200342813803035837194427179106268593167350766299651046336885009507188290844067982592481776161025041750218458669710234525710186262713981405197808466913066978441536786958833234316913737297444220773765729722605081042888264736728082480809878050875115497203449809333259330509102046885971180449715456085805675193452080992164517337358147584211565767897776439966053962496616147202285783182242421637156432595061589740758198826012156316035355938273159160759265882831923185079148946667619813500345367420741094561730044669757475261578142400199945336814930529624561977072674210469590680957800302379897344046355707344762885306257091294971285687646157499790097869947468620587364531039166973509720407230042518779898329640579652491999657061658186526570270497498348960148094301385158491075122432718521916913995000357361600672200626538134679916192783868580681902646724707734042039793481205150274429315782383699700082428503061233285858003494253825756414966787314910106884674181109747793722257709230930396140944340571129935644098156122059199323030186623739198676732758783782165076783680653820090058111598446513387228134128458507455372462354494836815036744155379462338823312743771776337896342995579314535132671387676689356484398076171186915039771456835985977881773666484332655699430576101909834259420791979471734696455957009340974739782900338658049661074011677872817051411929378240685905286372485150546915177288583214606871659534473461215399436479933793186424844169755412835120007771589801071629877445407105048026989908671102223462577264867177581263121998297371084988855242541099296097265971614811119228444073601186392396855352911678342059214726954495588645033501004134100721584649438467468503937042971008444880714934185527189926784761035645191073943417042318871474705656345515294401422077790732304392757776767684861203672779640635688274641948935887983946722343313064284429955381254276691265391999947833089997605394800322405734734519285839109017791180743229016416142578558741971836586338252862878670832660157151669387153315743485358032492606288764526671300348371408108555601535701660978641407020073449437964326370834966109322831673163460573104733396492653089250823882689323541426631145288380791118384888255198652439159766019687929158829407157865873008287011349834217945668285106505212442059074787918524978859193243433181309171961013126642361130096439981427290643730220282138281807534228457591770109410436722664502070588057576399258888999434153480336042969816375822024306712713842627631757306132027883323402281519801910896231707859882844196716593021450154753944005779604252932027965153848288250444321392245955979244803027409373946572447773216011510053113023274813486610044978599221603650711260390170775164440636241901859484232826048469047483837058452545064172355919134537595687167884410767880566781326746794108898665613647983144350606713235867593091490869485767710935621195066309230898622262512966851778287661122836529872205661501235929220004276873345844686370005499462867137376860337985148991963022435601828611236407154357972000991214954787688018493979481223310709394386443965373639694773798329946224478186483622149306260696740503112827883633326106593594805028572234566123928572705616195616242489775936948708997059334769900252416262844283662658646755740328346869837852800269021985541044304186678276196012905409234420050791990293935834268986686842583102316766795303991840043336955421163485111993220907152718516860176480981273150558673521964930793474066643787603997090608949316531211161214617596274062962585926763349664703989003413372479298545485717944718254821437013052726381445472060504789744347357859724310201306785350412422525784347657369135896165595242457561403287284755435692629635394054119130291637118818457671162041196715134958151476294339202645329665059600791958084527201596849578829152148794055857003231821989815586484185376812757509352724496434981717807697508473648035211652418014016617975003642359260592567487052862646139486991439421906130490028801174257022600907399391234230700504088653705836171793772952018795160168182793594205753029379686466061830381855505633266825166464472440385362342003682250525354874353377588957851318256166744393757628320972468552317827652439842426053200690666496648979016973787999398863694231930592435897813539823790042194185935505554838794745838848521738227733479039295207214273608009222527277738221862939980143306234104051463346421308497944416023071591446717984125298042887971862336033613040527289150543371017456408253681833304495731317754750853613110457924187594774153209912918782780185559838804929764201337893614245638572340565113236636043411220153760841771381158887080414815581223969177403488749813743534818236715422384007419667910096854129669851079166253987463093307390363814596052766551413753122166867740409400165239777409551947795551865783420808019385972711480104499855400773956303455213879969781583566299258093560062221092190387745237904293144634650505003346429708041417473817204713176671582688268956313675001721675527978157893943358893505462412015619045368035109860006503814409240988484061319789144465611461926815703314581809679172492299824530635852193641249218498507581334570570441241025419959739745442652342493881425229572580028617941078135579928177262856246507504769578229002232089069176173731658427051236639058417411939429532528491842270577091489631128756345550823443130282811691129447104258773673942379805856400869687706939289491669659912244960978697719072685836951979971775303152728903534138931563213415766804451304941101021666490879314405734620394778087112478777278042363671142791550551792205098028228507374543571509627251740926239958706265003765272855783784874371614365401301157929571438880511354141416612108817430320520285264795736139660637627703024358809978500521585090783131903651370398576553644921100616228642920898794802536718411379470479280804056912500069080245820623338024008578846013151150886505266828016285284683918235085167794757810457084149838579935608534492688325787577732835212639123404276182903649412814182651542764875248552050288281563823161150171534863429187037833595946928122255014372884713678979982892734797479647433101565081929174047226090709624531182654535985984721974437147032775889611582756068329096664581915537966483549106583490974447694271154433888674355641887691001890113721273645472346468648223119288490472482779667691358453019103829056340168244471615106850375594243205474181608257640816511422879455806024473756347029399905339409149897336957924281528282083258548789297552876652218777088816887916137789909567369020574419996848253320027262773015094915833931620034390243997957493311750544849912485662700976391978709066938006314711518480322567956949555689293869840718537362400669304294965234052790076493655315370816318942163392908193568950608849010909941412475635390184878884565875711162277306882749445550160766168628585151042482599583473076627500379814185085859101556412851084157813640881161870022616513161415692371056677112387454470945967959903632031220410948243794154175777953575151747011768524671441570924723126896756000532367222633002478096256342572518902857609333391295699279707714568989733681299180742308149767902401223195677554580982288107602073188579827324415440600880301361892148788529487122940790183807754593105384700938815586011436473353673027994240582598076360713911379901209581620067381819502204066189209428489813938955457604088838579688757742001576925899290102526132271315134961313956196151434717664874895658843401945776046401025595821664548960323418471251398096144456493252801106026294542117817230347699564505303752315344709893582330260348930713528842632649442665423956839144555603156409349144750170080198754195836487235224087956786170888133175480015921145994578685037056299133790839151786670385306896263864959498934322593512762615361610904756967563292550472223480961506911674530910187405066215129914196214968233478634973058524754429412532277790319475007015645669557118081326601885187747305051868942528224907335469324094487847058469195735765704844635234066594139798128404959638596534880705124609797380621489232937318317413450315816407801679467573005358023973255708543343168496791452718693465002296574856206905375250547066491241257334120074416959714464070586530373895596733883407212411275976091793203745423865183750781630150505110650527136298727217090482785998646135997222461178354437748575634593314227749014117787257400736291590780472842418455576221258203724089498130505114830007550811445580650460277090119851181126559859885307132548782970786855563533709314510873818942214262437101363975255988096481910137222934951910564665481115110220900822457461724541244698240723504856248775258194229300423033587748010486991780808119003990558527579338178246553205175221864091452697596999905648766245359640611174471649941764935068700033809404604601435475202647201668113620878213887206788513192273594282156860889428197595569224270964093056591999327779113553750145663946304127500599143910889703178616141299001489794640973261663505209917717366033145260822274253975573147818458776375347403366531580643651450392543350783691928423913326816562081691266486302064058826588991712021458344357274246887213532691282369316781506772683664696688226390693606765690191877297920179057871253103579848979532359892095640850065132485770355819566707116484721600745329438788253298608012598447373144380336470983421029639814245443982748370876810243923598836034161551116076376222073350792335856360004869401838733320107386209213722427166466463389737841833218252963495297114092356133297332440106044383087895386670322228461101456567533391718565338698239291813922147874135851750509443372416571136360567517241875668278982583922559728129048687958582094650703680218580333528105499333455811343089294748518214990870122885526114353309184266054256096969376613634531544674503041592154141458936648054314696101079877469420001666420440285206885662970686357831698541786977301813092195280715507753438190952096462977926633538088293202912379428134279152544200152796015311492812647695230816941207404751314398149182047586296911825606127342336414335397483378287520435535166914234729772248853552588731872347012275284349591050724440978259160366459745182315182343756249040547415876707829786816257175355073943578954876329922443123402502641480136452711081452508512596023553560458942392823734402937545796541638367214126218440842715896837795479337154487987411847985999582174418498331675869521837913777605142201203832394160824905780930060004580959766605028172916450733740620900209825028332443832701709827261960223386172616822471897048938308786612372126119811209914769972378705727920091059236863358318514487871115601935123876618159922131094082282805047311403433005430053513275977487389540646517616909443262886080666009255312597700730437033398069615167766755474753842454801889141157010789502599537252489121558792764865914734336621300958385239439355721152396836171088662231878882937889398028288961582104244354905103407357600895197939052866946707273143570292349888571210610507270215587165299068125151970269682624107213192525918769629969508709787554745558481893732661881851664748357215971951771118479927324551795239385507754829209031022434495301904022364057482734477912099783594434932792572635737943180483321596178763119384027898454659515124186880383251836608493863612471247124776373867765945352815900890887643213729556716406630380828475133668322767024298022951862951036477596864384386198650923484061090529664372870400214215113114961401563140963688780790891084890768461460061803994729532993793489840799189894052393723165223215337053846093444871753061132609769805752530911591503735754358170016387235344842058053775609706408055617365145727889599438390859752683031721645226911046684419008693045069289214192873329642958378626337022445378711797509298627908124864257394801410803366825813825727053374322087668120994078292197646608664249818533500763603492246546036987874920398562494198883059809762786305486253050138165892222598962433415997931933137186349350607512249125534009135393389082967152066488312436954119431207149950823879617221742568465420858325945808623196794306218107121523050799700460478619511118390202172248659346076627117138769905874157903103400146666623737559003738818363775308383367286902848180733891404848343546139276081767772075283392310874414007888497900635298610022263797825402284142440557546726357305978344640307635556337633170790380716586627240936081054334365812598288385960140857589459998774232805757995813171698827785210899244920736880838698960844202732149428912279931836672811409302824751018317145220065873371648870684080579943380065902606584166103532286995068207572024328904984803699096123102895459574867906434218576281461321043617702958272410313021436853707990049482071269453100307954053876529540223317121859561767433628960250457831707552343804223195519236095155440880185486167934223517438139825385712655888637266211745447163458969221311331734721120489663730180134387529000975463553344309910735335828037287296403228800885629364503438179763472983381354536289837869871540570627179165108160058219193676983819479115209056192961837059455233319487947922289319819138833148531460676793399222054642016334257757013690801641177829814144912105203845358111837362490785065335316299150746017810472968443018310796725828256261885069889601920657091033543405277450077044709271914322211430382643860482461834805372293420431344204891166411929533714856395962275269916183908699628337689538447932835168015224400385946511859184096406817201665170653529816793509617524565399386567733604741050464284468469145290700198218638383370728221853775514226748948414411715892330204992021637114745962860342564622837677791958064216544308911109431072496724072574620088897333093596299249285276141753609807464069057028042687861893457774508307680280954685359271459494713979720149349711528290163118775184816886127610931094010733392565107155339134529442862991583769539086385522276334764194882581972342258027357764855429823516672509035760274641961566553429367266255056338332268697362071961140271987247188936985260212358832596118445991290085966153794139408783630760747197522055629813387487757843133908219512372563387041120535002661142528178011191843934542305822787431610463024494714394516172877834580825347425325156563941288363951973375499278090870336661144381868382212177926559678799103474686857647480501600069390832003043755405629450607075680737003654054433087836582157402674564867563288469202036817641166125709976005321084176071377776833305188943755620491294729111330993741265018226592110941589539365114803783021935444871052015832024542428560809543965683111370163662088082227811359434665644536237274356611578531449475956281400392874464879105633877351516757089077436109165929935349737699580646840291414768058438580530198192478341537982075027481138550085951096826599450486462695439387429771043308155436494437421124060877598426228536247684769283029310945126645714987594779567930339684012012006741204760217418459526938554812951615511405763955878691900628034343567401919770670600992960697182872450499992443953823019558924916364179906937851881055205884396036779541472124055481424915451961283725721797387624277466943210148652177444400918040320642313176188790912506850203381658018461994527161365866111305983646523036592984532461666048697022762619920892145360926063931606300154922916665467458643971323806318484538419798727698533140781904489970849196639047844997559695421555817336795464584453701946815481299178621606749267482065653472325522388296491574648224971675894378179618051851407144551342488074916149252767840634940083931955909280917107319447496893393297117494821453898535654953633942024219449578629527989853787453044436861228624506070439123877792447127452058396565600163381231124528904944748038996826365183733368057461919081968919562619446617578244073102270867306017955354600186976339469917106070220362520572060310046799257762508168742515836490106847728248204519256741741992530139793002380191084293664408375049381451655934478238775002294551741071182358367805082715740749423333937227550023027542935030531408968397813736445999918392306715044802530532030064604248737305567110546388669043323887258614440173002829332699289800293666362607824542409471342686997686149364417588084947587766871140558130364648525887786256986461302871354395710209670582632375066505089544241503354233308382558686950924692241881801135431073382289430139424410471074964010017493201435731980403236323131046927664050892013512936848015645646958977395307857738886552288398688917394651274292886170474442374609214361233612364589904470189873178134660446631579279783106196011682573856394561034454153476569100734018145311124948012658017588306268246875313069243661952861847451618339883767995751698316286696306794425200701724504753178702037356702007394419818846570376565869459694743995126508569298392197845149557512991390045067335276150155029744226662354163127737040187435287183692515490262395525895007504005113664421804228180835464487752002861298537470496556342366865035978816097255007977032254996084851706569601106481961024994801662254612103928513648649457766354780282735486272139895613382246026301752542617500850812367889224600212985189757382056338330021860355944612507008174127799555792535925831393944204750235064865174775794702232281107377401167790839468842445811519223585037483733988532719949443405053192640246602191230762421264189848782464385479005671493404197642892064611134879258393085680041739315898812472852285948435551142736062529708989948198515212665067300124335038463226644622727509243643124274695645776371800918697663286117796165472177688559291650808536951910170547643939641706630945348016755988054306851776908336928700243586171573052699159555426234262189095721981950133247497366543825624593874724983591222466834536452699388951356180338687273385172861138953868264558400410738123805888904669232105170490670820769751744113099820611600428326989383760622873512398641021396661084557187441276517045762487652123404797645517347472793853609807347167016799943282852381042468830271158293652293839419125249703220604396307361065282331713425502888461061840056880706357707220631767243212892429298108330442955368606826472293478125925301288321760323796946769033867568024711786399873268506763939746385287688052116737760828966717642659038738980984465776326721964127303040758148185880135702789861718140541365093719547942189513238018714257638000169125038809435620011125690760749408558593560112187316291661625468569253138594399333145192833236961898906930150797186172788865997830614951273316004893729857977649072064749222066951690403693597894738007187779151032792228473776902048255749078219024812681983784536722296435826426218008681245711244868390706710533060989881743850476329984149527621539924278732537074956862872295086470135916174151886035749627235727085165837448851426813856726845097160565769388461019692217280178162597722828816072629573258399732512971465931032446669743493959775796626743693304585650647282204327224906580496646737201779204634253476613432150519370183347988552436194246622927470193204892357574254026358644270406694291689115757671322542675802118508825002088208245687257284066090346836931602676666147238947053019221022943372994748655962120383720731942552795868801324730526927557439085276379226720247310834135454043302524123684477897290857689564750553079432795460675961822999998748453185707587654248163596999550683150187705398285502517955471960676223419405615339566521612687196561442272240315360507863174473877368832025713700880808996429737921501107413703192583838315994195146484777984758277481168965935034768732788081932633958269037555926235266797565805196537402458450153479833345184242302871178907722667200906433240308590499563982446600800985363518800186303744835389461096044978462677819852993816343241330334311161474507220336299992112380043613632740902205177640683534869068947753830887233066046631458156294525316620725818236707889866907481559769029004427556366962117343409419545781395074085438822894167295711924432673175065801513307478093943895382461537600596735024968523754846489638677003119939163263880876335613640187507706247661009777940248480943805301003132900644253123396427752860968480728413325960857123439463346713166289063382899900403655456294693462009421518967306108641090004685213548484740590036183767788469845029259215735097516959983869772949372072671130478038234737088924767125509960794153078217799225433390908655699185824066882786169649697304384801079743153253344406670607283864066689741010105233860020642574083479509896732797877226173846218576812549830496361050518786645238190598528835829551857549111060826747884220749776506953818054297120023591484773064347242257508692485038233287546158366553833656894794538430023868756087740413678796260886202567570322390152140035167595170437672448169408847324743645939584114000219521764304652200649391112401106583441542717129542620702302882087786878323612403005624201457145704135914190583539029530233500704234994659022136684737197444941761014700212644190885055544019677642074592593659091306374350936924548149267454536585072863653355640829966188502136144213580957969569092749032729664477044967231985194114209799985132217557264280860796282491510270246184031784553004408994356915600563933732058127329717682924077913650799081217564727965466154053445031095007362381977366425728520091238209773209764094935601313136392986578685557353219103828762497335764659090994909993772885844811203731415483566183396247478322289108638383583486569293052213116096461363692062700405595514008872447814446078431249076989245556099390647752867036156377343863047786370560276064866758616148197124912562632183912488305204415433566546430714457887811407844703829544723563059539347018093705878472473635293053933595419035942988291283906368388166879614849366934108176435002965998238810767136827454337286279535916966329961204856605128370225100499538521996545888050052952980098292630168574050622840493099737424003723007761927892481558313876193658973128378662665041512453419306662551535737035471761671789006807691494456261130610561410508498567659443727246794246916323511964642921286412269776768373910733180434723093180715662764181798437136805269593547535293758190802498915716717132759051909586691581418771055149819495395345749874822030135147738244164419087987051039664030593896407939806152759235128119240061152967089859588268024565787502245383650653103455555530718833987721343284674219778895437979904100603789079536061427015679001147708117158084031429727824245246192366056574442562934001963265752971018754101830892635496319188492546372141424689766485732852392517882845716006753916452388087270946775055710229668800885690866694322607534069219541495781144111305438961993445512759874032636139766056805802371522203385426687265629726576952264092877121467903453411405641271177036636543807123390955310623705248086467695166305592174745148944343910392954170191981210019988847338678436373656109946292253356740226938613229248331256866670202949727402808643094925868283711926188680791834446089526980169214045431281314525272819422651126253489273821579458799389575805411960665371341592513939928924201055212361677578759903020353809574686493508980885102930356558892940666014077094044343527921643486990176306093028012645422994381135089215551844177938247291493342005928147316140359981180780836536298269890460198300958566579273444002633473606719049176672892249197888730179241615807337512239301491861013629760383638516422719249546148060371905105985024853873475879238714471917549257620690484705153162921694692071469243447576126458857190090478038760200876436411519663548203949488639296989182602615241704416346523071668627298835844857290495888629883084667544062561489779541095621749893791157027128304233441684693169340958548272086036559497180318256456155763740737731505888629719070730445283256604824454655934141601599633803827458146741383306614572509240813499033818699881398728901748815258970754867757215229543667325410905540584596674037024882729049363862514697265248059465962107787187581034860532447954336299076372862138270892282356792026415194645455593443494271369769508026365378006610041701287121139290415106881727274367048513662550190993905506840214582967474299654407491982304267665551527077610814333263149019062170957491132216160172693923270555244893567877897786489237055804868314044186341920559171469198162321678593961377885174427326013342975812778885073877383954279169380697685711576709046632904729636568074475590289899100459766384869114886328786139592183305016146896678391317195524863906795080493418162465551194974994009889095086058352871628861863486652499019613881675697197514686217740252933458700310899330807268993556768578990818209254260726743430013544392093325165411174471133023572130809865201040305970447513729842832607683677231126123233909262574099683129423165669079789517341115433091833325871947709472051799823428299481114417335701103092538047037043621141067630519737458013888277377518979979485629700839058300911687921579089809725589462392778603931036134671083501825148902539743803139765888076943481121318733696242042630618922825429461756262331903445068326714313128926524150569712535687325878847522124277405824823263649464351289862736995499133114268950749121669748093204538977978170362216880381839027753615626653033778255608440592795144093134663299046332445251872844797431791231360125617037975659161632152576555562143772081559186566207298057532434842577969497310990022832396671571935606674413584287898438705556516844381245023338538174162810051472627274174108881936313794795514761838600456136762662051443828807954074320318437853572119438965326765644422312956704785047992614944522228474859131671307487766203198016513258182481374551982721177307320351741231356264329781958658783503614084348195476118298631705519833304667982252690024128420720656442135548041416335174753810515740275828224136484017901261919419350384848250615822029008364971541116739651377325835931510152243449252427841655907622855793328705132691523281130637269709240389558784083875008900792811203009491120820896064181970610069139132762864810388165078111442221566916104494234550309038034300980758283971376117353773064089316351354576091144344817877320277542894863693508466188387578460338063679404594589492854256039528816562681749069471411253632301360867323292719230926877342149935346530933950852768557028438840273148691805722221182938123571548409955940983293441836433959728879937261199939838587029232790411287352635345899337882892316485908250939452030366925072097626367902901645122777397882161209453380194417210645340450192346323947872951824407681134699802408731715527905170119182087769086057760556399629361303154136886375135413281935624765526911081203646994378394165644534603842968530978163512833598658267952309243191879624110949692546277857032022988005984774799412967240610950818036416070726884760944032006340142277160824156488500228391852541985317743747173049814188313357756805192447990791388433645813055510311495825402298331447627519950008102378465964681458726593860181456268968409257285116824275552590451607078213698823640420929082347104963018543934392872857860928917052315080651547579427140852809935366942201547829239514548045131403007573891867910448897133143508874127533049432135039590652799594610487309649127967665813828344546135330822233950334391811263225178534420778588402775196143618734140108271031527022958499576475724879044535629775549671698780250715273789288392455828315041923265982276893618650252540029226339401090833171585656698325635162351154908523188452559926696359455522999679276389019647770153437990096627159937347075560268627604965458519213095828258226659433831225831891190792468759679341286014341289752351306261820116279937945716442357495615742367939744671439526197082330898219206801355987301326349644957212875642522095488505709765227919355487690152702920068909916346886542050344921301368708851510966444205053187452961087699529868601028657682609588706589716721630427053323170623877957763391829150917197085833535318359373514336849619222748656357247064954041348332631289371922698614579411354265392568236148895127108177493008927089872170586707644807210275807511363954803313275798751981120878897907612954605016803649282628678617581458103735617987241906612794853652282639408834670127687536551975075294677729198649982099068419070614410896823859481334335705933378744787003166075488798306149680256657149220068079814709126910084042172710442251851118510444927695888600019776848480088563484618482907711237004062569370302538582201483099085537845742781776731659638938474583795683113022260010906772194348857474998973856367966633999619094541235265233684298183317349007359359515286769974230363138915879717647104892890404434927299464245739012511849968009438467212644595772388763960770983981574641836630848097118386530452306806687643704955401951668465149037351492525506875529316639315374893492454347820863691609501151470199905582147682832522816700565782303554622813427007849343213597713729653959047109815389777949103593064593978346668209476247120710376742167439915459083718023570891872841078302181926901747650263418893516984109270508445573553505005188254450029973418985492323641485934406013264208924943106772296408704626163222299345596474269692593847143659142074357539985351496948234485170129777712075292378189835199342626546432735841629048167836708456110745931300422070215894441074053607041678709208429003147372283943541352632161757936017019455789362711389101111917915666034992296264709095050052874688653335715345167765623436228608857916716142610870063449637742410011874630629944731749096648564241353781103963953022558637329249030711394702315623037781553570097594260072938315528393473051273673346684689333950324056302854201306374570357587099879368931549084151662772526222281904531275811948234517096327062784061542064618355856228098851321444859751966297856544823274091944790519304721206349785851598073886786417224823987003511179545350656400927073384072477823777892598296350113429863578395612363644855842547690169694513179983064600061175129552983753354677804564862695928458895532056413781299899583790217925657083720460088421019055723378674819140471559193981878020970973071102324735344972017645936063050677750393185690294632065592147593390722944264911475567709243993743805916746218810954647567490363845075721854217450965357746969622641812727594069304256620424239391659076104666713173245263068801520599403081292171643313276436052239814480420081620246955747257328306768626086172757224077669388825604306296537341640180073581850153129018146988916624758936051223211619747617654284887941819517090209172781963476115312128129206008288172498984665108030988929450823737239673675742673665994231400692430168730212054435044818795566033458283019270885202249497966439285016979485774596657332299725942351130478667078988376392202995759570496525704585796007165558011649180674546616586031966483420277173772644383604463437773820947707838896848820052609397339729415453198862076057250424966324693131241205706304933111894901441985295786547113606538350266399877066368789490134596415731490702556818584605223788680773503177316037505235349716639768416796388806365170995364962373389863924610490776169099801495524084196478406977678571802469977553290513644611885059923037352028968035571830764934123610560193439884098131853521031776327503138019808482104889868308441400283359168371291053874528055940105592824221269699552590645177137534688518147703618752431450710751940571906096747933135608686938647901447445879113841352241926762000806342242884362986729199479230731329482136705824721573781564661183259418134886366011188607909733937838720058038519270732123464680160275680889303915845257304657225999555535625329295397432746569179298280675976898402015184172369919896041122994675432317792937702584184855744226673923004792323474597468600948625460934079346239951632113110758677531962957614606204936227106603303709443221436119637794260242283227444899535978431032996008309415414424562732347771009923289998592535839630204088774492978840926857583705769720645851670688475238742435117145794738671249062879841018702662756214179009374568110262548334815318675099797657136117764638740748053540570198690173587883811992676563538175135377997865356834858208085073281836499825937347864816086351571907661501485145499249362012779556258863046673085896162326080361395781224037002247463041970337626690373971568232561876285892235231735977601702962674522149817631553399872567288412595326141773275116714445859981205191384351656041039367873344995547414627969584549035826488902118246669770212048954962065628196249282416778246513131680517501701001123978208327595413661335799860073907868876359587275748830975030926194625164536011940134316570940137188666513754016113980363896805329416113042408899585351557250155184736241083601075901304515404774322247844205904087260977844096999949608982726916032122003248285680893023519846404541352038325656055690131364699695877557506289630945520122728690319349689263649364810136676026972088204256627200462147663856315071014544555232297526896656793485238560414488129432147734970819677946907494267013808873546422385988949228564492605123174119086759575082923091873964263002054024242435948809114476544274844541548341705337114478900495812349494709321467874977391837736835855385136036541661061810761420693115359292312167048802285166678275770315333252611479413092407169056494674511206413264773056151110583720044319571704206080391328837808121922773412982972569615772853113596951240237761215207450818021701363653310590164914471152047194305007555699897762778937423937003692427282289975349460533811061894147143651640718009849412898472929049741975205568565576500420331841571426076395978046976229773804859613508341678663812575606012601072428420929424127534913597548507594973455519460322161677109461186805699273562881213419631657598731270631514083557064225696331267628135814351118425677490878359734606119591481537097714277636085239249794920348167633122592096950355423967041937659953963564404959713541567570577353045739218847906440592483457005014083491877958712959181040023445196395474370097953691700772122924092686792615885116514758292307551074357780128361542580819655605413335055088383573995900704500151235262282717183355196974855860494964468650055746178280642277756174067574897460606462626252271519059806783166339914092602804698154774601887224554534784150545335869732668808670828622696965232191326413580680794718826579369609355503548051092946613692024440421702594750424256613237853493375443567966128802293784442092849251036008277979633139969002401395139034487329189862021275416109710032230752341186530436918401178912302304457548560158631775859812350534976921636408461615583050987094915286424268815516132487414468448522491673660675468554465135575748188447187078162616499476620727902752577310424509167527950425022561130715997772615348391212717762280278701451188407130017736922673277598360457908852326998290039984221685583393852618067919339157572985924145804346322280742181262588243226849067332839926188709031557945922429614571025238436441686233034657321733980616877166177376128914766524132380058667459143328576331611782033319350322460498508184508722394857077954248678347432231761009134763869014668220881292115923824002520418793650521350967153287467884224174943208666750868218077403673375798226648192786827756803713889220525703346061543041926452421985830571840923174871986915067143869191150844371324968443229423691625818731057308039571781962099887795205283476893919338925645478341257869500615251031948547855274126229843547988349254139921065345022694986457775966472533768323825344798874277881911870975538746754119695372328417093434746592134564438964137728700429444090775235327317134447472595241652771294718851344935979673507945325192346722172291596290664252344640343737275358454195153164575182683801305020221282298910343029724559990253952219048250324958561222355165328291794675015838203753280350417251329891966712496319767261999703671555077537850427953893109439821315967175823122125614479411591617526344886093714735621164666095992949061648824536444541460234315800284177525955145411278285688585347297585920258183358216514702453810819784123096565912417298490566700515456963998460456740849829274321376943116062446612883597356351441899521834168296482908654386916633931182784110755620764868724972075659801097813703514646483442063785875350726640603598079747385353726289642702199076009165422868619623991977741879280468963276479413533450968759418088998287844032127867101981699866617437559236347793095576810504547079964896263226105023790658568023431019418995598507383122942828303406580088408940361281177244374558963041009130255079073984932360740566906058945093424304688616419833754613643877753965013466347466495942789737081459763647671854643589242200961689190492040571092055699486051892279339142420267698317977482826278265968438228423904316084963844309307125230313523164548237626679806906971052371275955515812228191448555167531080128523058822727177915580421817218349255485272904751857779818306839858682250539457196871577141303373767403835732724847525074215092261982816378319833967178122132550975574628069722136752722709031620834512414391423382227116297230498969116336211950681277050022461377961536355023859602590408873714399767059090854120972963580437844391196199387264393427313576747666605195617384530652391003939242147693897955464875645471511192226041802229749071029953333179057368731401020582433125890805009758742333647608262257414886589289642353602472790110603438742128781498881185602591870383493157109285883241496474799566630841994301312421949886220523312897026397403515139272505715182519910987763523725703978386290357289440856792164451321546313257345519139535815297049697229392553544412208297321337828710454616687899371362862590262572896317378410709400099313296129153849037636576361620129266743974163787011794870371963911605309658356699051182759500213358853387108972735493453227207476973340049068405491782257018304780437720552712529776791922984016337368780657665439473815870211413987472145375069242549253645722996166397960668083489944294992883144641236287062946257372782440328878376726090193269126879072868626989530618374365815383287783481878098024446387162118293571713093645673063960224254883031848180802489572391195896687689224229962004059837338122591312586422485370830428433619452888134069298358372922568650840565576862995447332595089989925160115939950093988694058152246655155034568427828449335563910381324159143540569653382812955498397195702152614048130926636066862167257582334675400222952795785971616206955767676651149820787985066722443287072547417270990307393009236177230444349925230238239077704356851376720468333495323191079699611962688322289168093115083815675049450421781163303446081493895319682847473949633301905598887213551653693797794323009444842973604781140784773451876026918705910005131475064230518102894418209567105522371233483230610579189903812608724020575278858318298208873697072247302104795636249081987601199615762417035696191563452220935414702794856035283666319543995951591976469669310077125340436140493586386456741650487672537858883252839515965757665428672693959162594896824825846062194278478194103846218554866698320902962422279295503326169231982055929553480831561337266573941905675428530944946361851782825700170465889948755234117057350499627957796192773251694659337617774051324508357211635287347205548702272717874707976620303975568579949082178356205190819340735675471081851180704464046617119159472781524651771812239534225133800450667681738843214802344153360074990481055947260430964855934146484249285669015234539886199313821571629109606134622790533352790756990784134028242947427870503686980410399145805643811001914739766145246219550889650701915593844800667899351158421674195484300635704277576029638989244129746479468569750446769343511233461421352742276767812487985182018803159098690116850055035772250370580260465827096677462940863151578259449443900902636911243700629853064654257302337823299097997941720081885791274931980122432977453706596705816338972052382602289039466559365318455185936029283368709776837846105418813468156412134535175924135454221134004511883722477567330493888615052812168254881438908328673571669449255831432829726521122932412431654646640519069436643885103557609889392426256118307468359359599784516543826435563978151573252913797763929576995636000182744648786300174373017695441683920994134506788399694592636907548020241462090229273869334114254522017859089152768405823914242562152896454223741507931754832831628789626392040632943104291479655946639489028946528547700274920291924450916601988490667933145158497549482204445652540293443554658229209481185123105514025966672757842094646497283058094733358873236240631934612872027238497337001671612257057776061100861529453525895476597765376409874137090275429862316682868036323270824510295284754231633930281731566689706315888212420220102247558854014413416011289019277885008239224886873061808010272821769010902057073996804985773005463227308112835525971223540686589176301360762264000343045206293160168134083361146271028478831752137687504701336029838162324621054826205043785921181759622247246337443241376121712031801833886828246502911350335797199468970959822975726502163868109862407397980219674361441466078152161312663825796135772210331300424272171404550149119105659738155154114714716911174657741651270304394897821193797138124601983894340833029089166053670654523576434094592012545769938370933799287866478429528011447256463901963089189219579110074502653155307221897342610146082107978479601581904750280454657127350961372301636866510790251033399868490624615527350259105640177093696140803293226797237846781572149231325946942026434798297620545582555417025265911021591290265575799597078827407472191390737537983011856500562678583599344473073596318863729359529069096147245563999834140423905178050643467293327974287491309779836844185214184251599197964500733293341799390459279604852289979280520952833777963203587789494513561796413628984810689369714277006417148547172034609305506472565397372001561580289120615295341272701183412954778635073500081190708421649092448116405591030496062473146513852096696036037566695910389677343902632695282322282892362943385330045347956203954250869847341230894148510000106255853352107177246466037683420395495813935964967514887188932403883400978786883708927013903264191853921054776264608379711316156734746794139263880302677669240121000833202686536296853715050882799140163179813438646532435086575658240032754315098862032093746103898238710546241474469693613085665768645221815928937144868020524578767212805717902174759439003946483584342083372647308719380603349550206101628630670810385010432560037326331982694280640654840136351898195114527532723631691582606919097955096919961404510436822871827122077322534675261823997620734634390745662903453727275291209641255498611440172402558982271580484965321470930625909858109887459590247003269441773009290492598757103863276864860372323214237236196133395297830060226990988528612164299784763827800560692606179930406653452495187324752950000712520905080597242841190945170349362533613754701085756261702549847711289231186243478427992006875159447288019132609001959297314505701402404878471834948558946925593554551142007011445504989729156853407064773732955395515043528856911701551504536337093869095708895852442322643058824479174234071376928292696258663453342109732072498663184123584600653437833958902665237196086087928044526477518469908600308183887842064827936636675235936636609237336701336386298462997799614015658639829028459612862985144413936968318280433212284707839425199117190611229621428844889167690024516495795709700821600304288910681318802596607072274391758959442532796294783866505671053911397296003913606082123016774673935696121910428131716396851063065529695361718755641549193958196710629534086235092755609598480611244352140526836514573619226715730469326456447484675369385773403769974800358703396245902108881783725464107053352210239928793906302844817851890882253816362098878621920985737106899637775737770818549362984852583761306505617814602486547133080012763181129991305957954696606861913153441730377944669686898034608422982817974534759656927744055031521976653184689759938365685578130535445586794630731004129826687328027691240149726523919320394034639993124065134435561489428937135451418357817766508078872242333033852113111226348087677246186965501139593338590307819047756398046695758508726189938077619091208150831469438420040421789796806710626340479097737249860489467381906066971021251862166687594789472003084762562526956430783256680942792676545205158308480486335894588127138425122877545948802241417812525518543886987661673237648770254510655815230111555590386174435702842751036649760407632010638400514864106585689058965553680697458666352933856294403492700438754077659368975909768449387400619817500863400660071856358470048442551681491019619545065387172151970034497801023765249545327062326254971602875640128497619548608684869485510680931730617099192361632344250619833813130710398486775432441299463339425852283162660578569779591077802310318303286664966659119850096132310338950173503768721090512209748322408282579227622968997636263685080200741953362902598401181052220078688916270904749630091663368896339053721137538168294661461086443276793103509319450625327938959396095872132001074123243974601751804520319639137957739203347461865308493265231695196701502607969772603235644012270148106196977138265754500667799375824052698687541341602174336349055846413928755815696049779689143592496358472587086945029124984708113602992007322993073893481867332073525992586747595752831197466848048129310217664404438446663474274399274497780886862929583086131550093490766331567703627420385344634523481945308104352881775801523592868993543556036952320343206905669667308500922001453826925798382405077045997323749440663008870835932089286935644659144894915638930603114276207396788429078891706834723879212494604648308775620454875977405746119305636105183929305640958827903585306828294340014475185757148282689746193465491550032932090432215986558798129654554007185890181402447385300326018918172115304490821145297888818411539596540515452038829505090914781176222881383499195278304533243144902592929046991489112412610857877430509155056661317862453334136279294307107952223314963361301090356760888795725975247313323389809494601861221727864133459579526002565382474405484580403758058299468698740154994406506047935325766192142602118044334459160927777724309671809335440639523237682165765474537801660078529958980339194540652995834730795867065528014938193377525629154846213883364307806585249488351676196315583574533874094592253522332774009487375236308226263317410967382699512770528504330215535231971726334107869330502205307913079292700396535054825106532325927434494669017927944233865015211496016336167859428822271597073091124629703251213851637504856019281292668116464034591544474533785628563402680163033792110823205397183053599089042900447790616379659149304028171158388872859369559209366002744557932703566860054797363682655710382716568734711141648778029568999227027980490097664909232530219844590884737351539379762453029303577781706844185304796095218784913036865480928012511905934217235227127019734848000569816621681062328554466755397377685739722706903790992192858261159405083225776388701133509224264052625962763321568534333981279003756475782860965297097945657643339656102288870691196077720623929819681584021061902943423066673448277007628536218441353244424265159544783932311984231785629666792991494399177829847191801307422775685095143583306019505013497259558757073604715202800653452499436710793182783050939232143226461527864728202231869679592934472299043702349753540401499299031045453665143627862331101574802450788108315617973645973359853635558893849403186779853303034726183728929297052431278154496405220729616226752712867262015826467728279307316000572494494816411429340468177135211230523143306270450642630892544326016158346360292264789196565745002722933225453022246795553211339308882224735530927820107296816267195904300973372194485289598283760091556668768847849887702467241745528117108513485284485100913038127025015507230018072326030187013830258870754251833317058778051483563571334460124887854627864482849972194628570596016850461855331057894662211576722872569640744668554589145472137608090501431515434551809143500808858105596119148170999369668672857549157759146087401967243407342099238831721172530184323051003858389837147798978362444810086784558151978073497221690212291713288149391113634772395237894737039635526064520950633324516757603127148044245938979830801263563641351148054140575364212642417567586597248670969943300443143155305039379777911257378699781052538110510129894035584880231015104252162059640920378777769327006602172653692772903967785953817348127669768210667999725311992498926699455460513708302003635429177645691951506476954988260918718942243576971828426268442494509608366278556691986123513457372417802799928329344834909862406745563576761920083258416975043669213519710156539894059426258675121434801707634158332548533113810427133388275638384588836460531983330522711802696014622279890803692461410247843575162561659954576807534751412697891983883518876534889649756346333437769343723884757460094932034199650346101955676581611689025807401731471168947104744897124573927296215164305910539692510658250178685398035714280064325179395070609569782843173455807388795168836625758728598599442655038220260420601126499209324231028114997397359285178826365175502206179386918132750516250291062506357536354108160687858359441915643154551441173372894151907187283661642990888832636878419513557895885343157956159165861064096945051048579602066278947973218271847152726247822056991124618291411607624445343939547633472184663432629581452620065705164578370111879194550387819352981489390227311184618461320543089851174472066726094966728922278447662026033910589975479020957498151391919265689517985421429179994782022332777406529176327494324365753492851953845349538444027021537218727525429771397644938351273125374312229934163767317377835412007136866823259522498642430395122117057433193761571149564837341023431288076486489598988883827089357939422858072035975266975477455276907649039799930300249916617823408546734508018817022932989233826465436610119950473662422554587603857173679301550906708824276319918637445919772920060797071955893697613610410454175873330647960726385999878233107147649473115009506401677358531244260635477778899992099086324080360395348302825763696363959490111788578298052475632771165802820091328299859961737914689573041506104973275771684199554508715958888519551016753522549331977345523578259316917249455467971290988910565763862062099808823005123406289215907630815179269847395243677901731102334621712827427566086180969836984749539865026774217290709211596608737816593900057382167439611346939237035778277255544990320463777669970385113727386623297486630715820664021505409359644612491958241236032248822562052600980943081024176094407898764567563114151045481922097897910051152736103668578705289123703561403128248924146299826180570000364920270264611358785697953447335757824710249487556462714142028882720492487643486364261357597680310224148807195036739121615848395086755297955950687456316016405503663999382239145040705214424535272489061901135444612484268425904661275698493784213354104040197364440312920036765426473013652335083497706591122975882843437335071691071033557055158092199183369448455702522781305583107688232324372967277844083948964894255898496749272967831679033772377697668730201521384519115000606781255536118652024766196780437043209503276108848482092985173162412958757142479164448127301217886265121390924266664736399989541178707433550798019085195517417067130564695141098383383373684187822135440379007807112076215824099476367036687657931904914612263896886254137166922792405967505349121717756617375808070017044735390212287586935402894535819985248025699932545262630622160000665264887775180921891219565806935349334689882256752958201064085017312797228525966624648693649880498631335114191740304000131072042331479748640890279119310974798685405370455566074362855708651627453389948634679556414553432856118411031370720530429469704035642184478725721358126003320370596058711558817668758858279790926788629707896781386991199688945457502396579879609371047893187795139219907123337522476208676729889603840184618109856706135214406545280119679837919042483482687915057486285945389132219031253103109135494591452228554911813300310749318103561079962345152869205704164104987705581810441678236792855066147461457286975604265708414420614750596011540510932384678764295279761554526357152972578811331814325443169787668860025253077989876933503043661849536276199974227785764865755647208985927265863927801980881037745004943227651309741170298029696380386392767417373903229474745652882438707498264797206607145014586228767409868453912200852387493187345558430129563099423839372811674610658123876578908507880879805674690744643422302016794769791089471885854334221614135301201894972507856867132853547249781515988591606798479638113542794901310145655865864419933999894182355851449057045036350805538809290752388334292850265492094711251398557409705692905275153034563708371825336196761710257385560854537978104292080828167261044168948663022738994144837717357587839180057866198032216391699700649331014413006245649616820711712946180419740157260341591754781641915247920308163454022297071189715648583835268492787035806935507010517822038221504542676293944051056905995137137410477665378694741924782090842532234164372296790594431629254955356285186643749112761324699668178603851310515302446699444278845262147158396804157711183627897307075003983073022719187006846359818855685394151170402780198639793745223259336374736330683471159127169669313216527148966283475570214899522912491366296505744327293223529570409446480230224534984591925778456176784949584131088899322914525986563705935181791715528672154390030419087124046825284946648854498310341332377682772601708023004128137018325873045623369507213110361977518757007732149279358573224963672630345182756378003482970928372981078112569543026126516055714046684817404545618204671487110958206056844829641535789367277346056743480982561739775191246429936307122442181422351816239110462310672202236773491490963205500848912010825964486739221503624922776056219735224018656138390522890384992189977045600653555820980352193393683461370216004831877113160808821371017060123040368385077832915479018828144432558020951212917828730940059856739238997932031784356666249247878378316610522713429764772397048153107177767112413760383271734030773234879807787530324984621416670626653204058852989491833054013963735859484815578473089685324717801542041585131007293673712474209864481972007082164827671987010869568640587263483218125313655715147902604039784195021546675858613135439246310573355581304497045238394348650639036753033029537881940496455477365997036374979407369595701397475803565584626709421817317423565730931581790206740698731490216604570820445277726718069959272076231302710394330453428470556964080857994451346291213245777516826921049838682638528192622614063966565616466801839620921465173193179857501057229514904594313094777986276018141853587346083379522068926112847161451276599565026666827361077398576468171026506996574506789502048532270769519590386094710220420332861760498114202752686755280728892008471884085330269148493779305771480058655200627773456008658375651971634121591087253579192054416619953639799084128006259998982869249838057096421094435939007666429975484590687626053596937595533090407283977914298805909103369800015580389753335774870784753845394425654754100186556437151876046865735683692818525758635045943042850547105481248058965572294049276519222564002411502826832931277210196251873243883200056585249804608240549737385429033628911443272641958545221991149020651968785529470341701830238967011767501644071964545872677127114828835992710441220230983013590879458582110645398423033767337350135594399726496606854531567109269745999494651964724843608024937330369190243393858525407897149432085599455862901869686584679412503841588246408544879915264379500298055218422166600187034181665076437419653549155095880564231993865147472461505111545277218959529431820584102921131754612411361851470031187345223446789959680716214448675838665407333367787220538358814565692027177910026392809680856517652600773170729436360840300987633897514820625815657865619640185500531439803519805929153897560870269149355326354102498745510377328099501092331146977270009717804065310391772174067316641596490801628293464839899916941809252159539557471714907861226717246578298196334328312561853729170613129183166179351832242970819446995310100371217072013187772939610243322680487290203329311478451130950999889596234875327067132527680755741056653815062193814696904263919717498682868879616531047604958387113153073682212728838667464685303080109394131669880342700832875237136340278417863928299672693375260359462592475818443654607498011454755777732525316941072245942834799282942314398708396351306691212387995913403080118822505582093570796483449018641541239145773348818924095903598355448323651898102161503013959040746177969660397042277480583442207131063315228936103994590535720835166638486417034036317925561004755002217502288487695293522116555780574331148443481095360737157491702122164408906341331878895306178861627973150489873556777483813812928574653899899283781904679527336458773330722113180719924126781025730464962306547648138052262250011258808482835254781019843776304203156712462618604014635644270511428431971196663279688532042148911808746770731347505141910875012789993980884481857659089215349540765184304691071140915179535121058214433309170981255499072194504781085273789226585416682094541225966503563368858050160937461520213518715639357086537282020979067433237837330181863897515991975565979525774033608433897199182467698263107284418670802516776888604799958554652379529596828827136173724402046011568021903734499321751883292667585674516698194071470885066192317761196690093062784757612442763000022602599798408106583093202399606686834126512056408085434287973738880298992916858374821017091422458237153185013006822423836393385894702205433719607165263100659974682707479148069126237790875348664094453548296069360825391469395731511609719201404869742911429189282412355478577906296790946095371015293780868545626387774008126465798930601938256384601680976495005384751197842218448673771953609384451463679078110243363726814914801399780510415313621771573604475674256117156245032953399955582571682318889679187364274432816949089323225904734910474600042284269353281652426676178869155280057793509423109427965308671007973430956703768388100448292403169347637424982178574030794511915513507520691365520392215927503996548156667665387654086915898497736101327108273902976534560670184473598107351167754267924605223556025251070837888052428703900726015851634782877814220742951833217013873427875404950590134903324634024152992520442661955373705350800646117126903656866893292650929488838955127299862670193391733073751909691639352589356079932498563476881960461304373699612941290806284438365968318275860150295122185934842039432282506515342385370471354386999985912213167696213165669583040680445097716892562478618722931935859007410306148756232555719113291521062505817481959511756712540182432256512264375303481041918957020028758223830587534388451022098835446235825942153151300657006309561842003652015064924642849000908884678362917608703817119318349167920345838045671443295732615035386848405917858835281106617919195227582535373675077348569578771882837082818254722949701776448485263583978837310845285289493209912705952126144544804475135049856340481048209742550267403975598015634950839507865286002937514351329082209733892949664698915054009135143761933543299932495645308474396830510637527574156764869449807532727867918947214322619677576399566061405475079607182520933498349197260207628861000290134757669148387073355470211419480319279884251598911445353707368183150570228083322124638128363565457227795766484624216132042464699702340045674293886980674792257282783219578844149808685239760071096635574344278705613339070415230480020102031340420746649769971876150043172889306572066478398030320858974931811039767355373614901278936520059437728785164101753147348900247285646497750327201448361367720185066251095860396396123626039513565796312851647751355181254734264561778758363621794965860591755326862524365434236522617245061669139230937174775067608718930846479206588522161707248647871509232353050648963326892719415307880900757107893610437138950397075421840886759297284667784626187498682224798941420192257948808149784501623224548034024649454221366924210299272569729702095672841879360886646566553758487041992068099044169495296633334995624567627977079028361143579734163759747904153556301587626773304042637941798750527736868310995682540469421671544158548880378817545494012432477831485432654351505609691100053923281047638533628474172489697440334938068557650378613741361525628053776140725919004721966894427272095605792953438383538751388157422427503989587298283351235354760694260240918593012740367086121258221959968042554904819726903959924323005833734139520277478080992761586074587204120077231444579457786338491623197991356157332874425556450193752790851117433886179417162710609003337071409261564863290878465930459715417048412433559260120141522634383047243603256204671417523997768042590164744024229174221835445805338882523149732332870709199166675895322735254813493444274849672375786346249343569080595457099862481654419954849319886069751787680449086676140653013033580346399273904518629842921101947864942590155703024509197744148823076250741891070102521137708613392171036383962552224444746933936216419845323353264467679706813821870236401175604599193987405864333837574951720785719338231148278452679133679908614377894955776727912843892594308395907611933316822288199479469313879696761739339654008602247338237961065031621912853273364993397306520451853755297539749234422848683068401335683212670483093758166942648365056523203673441240697582424516653171209379516115642764834113228620308996201566722621313834066296542568142897516734814456533924901473815736865373640243197940916928258888477739792922384368617787860521969318015102124405988181562033546458964386015213145787726775099113717174569688368878003667108495130020703369448741055610477309111232369333391083569001057441837074107462886950143505523655666529210844417521483095910853449061532330166748638819611068928048536970649557667427655953348658894049667125683140171951494521243028004701855727507361569001264628343530327081055451591198739335577920350739906354826865330373814209947707732406442393841825765074460901745171318030457035053300447902330617751692240189278835334535697861477888571365730034767270782874765020422785575305333015670896135016684199740108599052293929395121578170666284599934765577896877480198897514372504726139129012882587708237260690077196563470924895613547987809611937154659494848702948892169674461552062996142766893639216155952377711432917938173178159731338068901350687484832272559300785355770141937398298105567296253520445457328957814738595684299329735088303022651961234710896147258170702701542453966192924163477211138091489993238496174452713502901511190701354269229914204898125494204580476004780043078994260726122006089733057566134180951365662993597826908480156553570740857222021162977512904639475783368814735336387536957818243045392896493540914352898110045727358379095405270342173935738266547139235744585978170552138870057416442019517181471583370215945048782318518683544173577817548446521313454175354465609010249987633882921531248905810572783434526812815989873417576966621735515295336563239243800879397320190626340124024540562604328515709595493484942330041651669173187546590820277360762416129088775206291171199131310621096844810505531359229814239393209476269857896392865335311923434491540134521210469298963875445454242919751484790588317618694623673131926554154980926051056131986426435089976150112098892119674119704977189012266444527426735010458182525554951598416058199345993774917634547185334750904185244961984665761630765165012010173859060881741757100832834909292524464584466403269703524679972438571513340127379060799275298423037652623918037137870220985754805702386007738458046066112995629370609820942182191034293771092242959934267417740750987348853078518106200535042033577482347159546457219468308783071523408038725919297216689503282724584129259454616945500890839484379488004316392903188257365629031274779895350299968556518451359830310786052243671967642474773137990540539148448738258741260169050413142527476880382072526482917923027527895137059770916779230196695839570523488069009589033929173090690650169809754538491682910733126064688997971028616532400463825600153376907686850145279870494990110428221278580034164936003992090870612624539175322108247071905676114430118405115993540510026338987755294673097931964384231844782787118773126681727352262362163075955207008804427219936540668310058406663494957702655678966933761193392302833247097680038909978902664875557314459471427523305386450215324504725496987430718933125900006786585758352369931475558073828951618633597606157456962486618632574111064292045644768136516642700531861154466237253159434241328274964450121508422702674606791961812744254136002238440303824034835435626647916641523225603424198759615348105676582419741867655277955718861948349256825132494760505917866335942457318278762352918156381213358118245205119906296272873967621600635762958747401274511225831378678381602999332825286731680913362220771635356385089107308257416602301292169354705804280449956405232898513991157073636193816657713378125310668671625907662359821837602881918763524985343963615135963307407370294130314286353941241744341800812762776886081688716134240867494339733433353125986345422036012895592401297129229162987520521518481555613883168141467357962586554667271351466469354698675554345428483262059529118145196731333843712716579239711568975354232693763785840853211956459567317262479733950240521835277747549428672275888097030630093979958450002815771172421927438351194927471902404519764234997315592042808487292264659764018737228002308902812500882782016418457727089484545674204293044868775286947774177907123511822325843509045823344649139933779133992679645232623549598505005545749062337282192980837789686991858041298229261189276343348065999978586732330770089950865140023462927820410534303454064693767021123384708549915114249381059114539333099671895442494384625857566241250443389758608478318167861201512148599271465129161170675814755560464808722076689637631978445647475750019081243192579708352902307049841797616792097415580871692310665250050289114696177569648383839301141554590617342668998668883448251275569905354743012938349539085820824850815625068830470605434832114241625977164125999404438355722682832827845669363559228451547587208476130725103510314442817406641418300031452108260672513873730553147841994993276016122657693337681296043257134866306701801130226518860696310226560154178793627570414722243326669881996159198023351510883240622790595264572548226981451412711474668742589276595718712901580280846890880256619256313554879963030486419271926755386590046896847563658251523922436291817053200458414765157307269320353987563133832300121856842034558588459177796697362187618134967812573159892396315851173495109810113562356129319569445009907035546034298172430177210558227917860520182929133116492120142313354712409570951467422286161420827685892500742638418146288743097762984400224969491984751231299652578569435884329884961380525884292752230736474734012581691192862868816351160942844295280737120114319412104319223162343599082472149050186127259744525535237875251869206383375452499248658179095379972806247672767683986848205193508726635327347346758296365594441569820464852300758992720438636854895746048684121534110963041445103889224448453319046978647273386966102829528024312166750030656378793919224211786070164652158222451962625681144243602571689447071282118420810384793658270811206797593546015544564563424667376585300988145434101124478513638428245518451240411802962849298029996524774756929274496837283609399981671635754453923804658755909160359209005592718119060951909903074956275360209817720718239174497659928426767823229649471670949771179572989774506062169301434658800413307548056252736518772258600904229013300506234961243729788540557603899282549193907519539364218414060853040928158243782533978138211415123655325757861819705776582048271112980906867078693754969772013465852367960319718137743201009962959774896793820799720737758187737539039376812200713859580164903936776072482142066144686456703133534256262787653058299125049229987263678967526393082482303198974709087234158404258012187538612039924285188844631023283182104328211419138538434106114754323059774607675171538290733174712992116257439612933199124683041327701273713340160766134802337115618975702918376150967737998209323148327886915825709390925076569851521133284746447648416543034005243334972686590616087497842057730811334653315906810056485885481736081415026685583991336039876453862266458421851926443184695933200004424789581488329368860102516737698069319775793295548011090367856386695864019009588042128320904714292596930513249139970671940750936860341208718255550071890531206253723760283556813827386133168128138586023537499263996213614202751010252921056825260742753728765182779564461281514894546992098784039148186955459817562169615357924891368156187347026798849787882722690135597077074200755873851827517370238637935081725016264499622114582090899617602061702880934267022045286946069048975038881048955384159700491133735917271156261686518245444023331316138154407526429645447545481170459579959603649248542113065063427847677622536634181772325504427619165822013498196874019166538357038592615819520568167839928276809981164505827900310224451671630593767723883688168259841864973802879452855712525564485667760744997202929164639623786661787876412956400282457779180820156632954491743690853103883434573845420803492427212669666010439711757187711715875173090541356909610236203707820722278379501385577236967998822072488198372088701314312806788915587357699860124494092139390904146586934412305271413978632906632084003546549303732571396705403590329884526506728973404681136243428610744263218842467906102198104062689805763895273273282505112614686592435169079764097820907458329949853678610173860133055615874669502545200947775152622998664974036136710737198347667886808078930445150940189680842557505501567470968513004869430982097418551788353603890747986085228044761197052786986630059604168295429595561361354318022734405755657425712831071512401462653964303142052646250235729526329452717310917600547418733287932635243112813831910559968086478306948961884228781056521425736441016795415916932467309545993003388124707011680832243875329216455239404739679179568362067227869322100051338021731981984569447857725490455722452164865326762908525273843317468535646715052520531292799629911031775410052781595234254102748839211667857928473224236470301093009540551374125717152247131446490246581035530213946420714176384992547732261305293290336378895678463673062078949588524659671906853767880111997025584313444546715465380819882453230667049419316373489784702238731576892656105671934321605745454729790066073559134177515168839760927896144207308860826251759231417627615944449420989962587528104510062390665515828639325058133587342785358180285404868701062610796313126243792040240741902449097746197132594375214877638377664356402481490769001010702040628540253361623165007677514942441082697473974006491353424733180416298210897107823419536290354829654452186634318416144601960385201296050084046577684950274700237187114360193672837001995835103621222376159820675621727866576500646573301351280622887636604501045695889246870087421929218106076676831401218927574023287355637211752629287838212241133942848333848503791405545853903622308948379305698933942351679652528846503775115126699918703558578024548280699787643723858249928754857893843002050126107434656017954514200616329414962751509081336860114358949012677728046660027637264378687641245618359515494181448707321947100458695059887537528679636809889854211594396331526287775568985667417796627451388786272026676046051654580824618479554688433592551219740754154181649365154925591447702379815381196884368041809589791932065828779826040681938658591398089957651372601896084206092889929321081205459189681496890182498523578126322475561211341296480287175950344089385198462613340262191623666487057397661661416929953232928692276162390443738342406924014197986765627635383840000915680863330571224979899784236863025120650778864226399545147981038272660229421073382663137433300758854795047900797508340247773929776804001498450496236747620181611192023725751738287880477565836804670460375081432627673790551689677953494817829764000666986125817015086279849148144469763495769670593375870129748339603085651714090534933456767201421334378713306625138716508978638772954089766812043306275593062443959526600540460241026762603085435636614890457522539969221699456787728272787857074816091805670860396371221145358968370794663453591096224852322835404206934941858633424669270889398214618960492159619737831555856105613357166137146907248150456907528201900223234747524310814744591273963633657641633130480325411211476062244894095323650004565866230643851084689791994090175421785050431120347956372248135119352040864078108171294667851964606662746682947359543717502809986793932744647762789857953639220700488885460138743047070307004313402893898113197180999414567223196587086929903570124684980543477043347604739912078666076700098013267482498142683427155017867354915285856571624614136058503213931713229645164360001234504332184575552615246895625930235455784137785953496595654250809159922971121913614009949682842656909413885360481619117041274728766215147473077439888792081614329343875327415537163266404411889053814326031969111765451894107937984025005512710596992798589072591745063328670891372991437477857395082716980842794885195760367951596106565589229839565430217356750676037688907698716664533303240691818996267601737958719204247680678186058909877668828564923968958386188196774624985723421077091017241214592467157076234034464706802771661995814662905641677530626564450450822595689622380393496819022747239571134045173209612955707815415673216477957166193463454378264188657070466189859213822857183152863915133454299506340677438901127482457258875659699884984099954611021830636407057938809654601882727764418652200674694371684287025967631767071755696691664660703567312828353201040608918273213526563324542956223013167037461465492036451235873686110867011873659792924756214354674706671584356866348202126010655837147943803785691702726898353799830463424240016858846629580432412023807860015174890215095197740717143765178737652740169619437551002508016539357204436480980293388021337854344746046400564138983364004984080828136498426970195063945249761832209051257753923028765124768794527990224926013861663522317471717251579589344652041285555022661784609200796727574949705069167060144595288256914875618234099937167488712852828356406165360939303769693237130150964493243901640212874752753399654693504112305033635238816262714763267169738320203203782600840435570928931806234773848154657119203380171289006455054479149316260865972137965355056650104058580159647573629035835475275810164267180878852323146549452473222330789235427827016560147300073101533415007545305957819029738683867852817943785177502514359220097045674307353185520727831596648749084293115893358771167142563633474687058055311165156278828594926726590743009784139620001870373618218858109886704202735985065193431679382169429150589512261109742611598379779955514397033838785181660177081903290300452235322528679356983065213806806832789138494807131797214832300454495751577540597387009929333736552597461098072859156671397809607781505718152444317950310493792873901132575909699984448439229508313906962054237313564578422736547850824940151377050853766147055097137546954066475144989299664323031013989902413987584032267240852426708601089880132280923989896088842790368444401643328880439336197057283391915105815405724773437376533431964795242190073031452175739500171454256793636884344705233050167512103876689487117921779091944799485255081635215997736328859009764825986421171723533618284700395238796067944521233739568554349888520573820802682410011832805422291640765582160936159175044089957796249200318133995446869391093239897376244284223071820859381669978908454343507677825550150639761274005024045630898328432391400096924977714086516062258945893135010425977429306269320758436388670634790456194863073331909072814292533445721219070988743795120364295178814066601917489866143113178412348919760481993843308746844573280567063065063333516584234627212568296817275973496208255530537766773029903303541513786633787081513703860263631227378094382309548046937784401370764507314977028707619131371340427047259932186200236689225011685966154627908022863402701492343289121697594916274718828791231497351909474507133837378252681062232129654330387413776018439393393698005586548794448329707746188840562437914978674517564833454952187255304165999172937406760811240140630911177360515632419544218057920470418872506698261881074904835040359749859920290435930767695165613286762560847379661150969796672220695928393569276100596607614280706173420714392886493436662545266398930016474058247495852147783121923351800970102203155539845257340374805020266852471240945329767200592623216759434343164811248631053162132870921219479698827688521424992442576797387953621168380149141981897819486138210296555823679237486860293683756045130878750092562277999348011955348300593122609517109435537630361640917909326963347651220723796566830762705771518254005513820209115088838338699840038788449917009323478601561042757293557825133667060079004717966511655692690265015734187632398302706036692820014246062404954401622952220239226875798842794943789014460504742881094897158992947128886544565996214922106203686210291764220508650215762959260929594725086310958998416983383722339169582405968178133628554737669791531149899790359723116436434987836239841343213255330301929872329694687083924734032053818227487277337188658197497876960862837444119214290586831419381848439855169061950096986573804220865028499738596962797723417349531204935350756439699958285143940698268291052952310920077909547466375788667064278666065065415222038216173149064914987219825226688026836680234123623660611831271865959837040051892087260271544985837530137495753199722295205627237116637157541825996164711009960234552826149646640787028964514124758437328637437264890985690677634985212670555464059933528563416922237477578866668503126924647711474596384438363790284096441224230417546499272159884164854443357203940713538894388380545015106917836111315240328712108110654941483280863314334058112770777786020959888948313655022225087689874095160255649242083376131321973327335027629519295194336063485781242719998491581042567561407385765957027242373447905654430159385025764216739786463235315401459990988567504464588546482141552883396175714980229041650875959583202268547979839580685281005933964383375370686278692056674707905297153111217511393598817482327133027666769223195825779007236651302689539794379091283717065170410222705249724665858899426095766729831011342740365149882905344093922484740338018593130329690279973821927453166510462839389550680274992615324394001374344659236810596236089459768045093116403728533825066450772669170267728065613006401073100245155333517968656064309511859436813608095963971343720171020921610300933095866039125230105725669178233192349545375943868307745850929611804774718359596552692562896371801550968253751159712905319690007123371623975072229425575423472893230977247922824769024978429511453717318483671589126274907555094096913590371639157026911630979199814632260743826070012557702565254589989850453935279384397585464209662097852369139619482781567070223930344095963868881865774549321462211293595161911583125628311207408066936609964636335280859959160697497084193430019751160641282513732154560756353639473364513821737128489565157385648858683757941883815834092600972767793060043250651794681970399062657360255888110900809314932502704065207451201793655578643610038301674437224765162787828688367131247851621727035348327875532903812292788835838394124575304652921838380056578938250416581811354732713043208566268665467437395306258697201930300983241843487024839513188930209958071797199821834550478227952579785948603923608072125026444425172781367056696715603594186210594877693778673757253964589481238298422416884927588750287060719026316673003577981683119677124751257725032719851163830541298431121467791888701354962809857941546499393308550898370740600943543669335360465903185897717865000812346681152715944871535186324155527485714145033724548542353021741017471160414338042632585357376128616489291926243236406371003557868193191861794672327831297640897843510803322790303489249645828391644640727011979222700337525950160574873293357176441666113691148451150518500522095505624661571275622220967717676481294510024145419717552871413284194346127397881888020147090240751211857300076798271369767486204648829308872299383799241846050160152618621992188912766517850243211805134510051815015050461969755034926150060199868040859392910629059497048542512027697185223391442231849040964923504079984033662937416491379954104638225181544765300252054566434517865363116303633863267645101967738006389000211505122886172318790925898493692282650996468687225561343228214448847195329674350813217480013568014729149111825956266940325665964400445706553272076319378762397668906529958165337681757897765588826822283012055148135879865221128837017769499987330444847557330003123236935986933725030256806641764153716725642814416015531619672954853530059443745261418699987580932549192487074673243980510259526273787175858457238545159347146725064208868870357188804042139948520666747181524111613578196768970469121991000790951581115925018900331461707297850459187120768025663995293298564449482892168273480067519987350852512981135166464879151664065432363376285121138142864461336846613560382863855821906835851392232598151293962952218509298596893994933093373548092164327135098709077859379446113331456812420420891072824168478210327192548831472498833141004864440881070511295227757970436976423566911036072419880522630472519703067529951570866678038108644970156543631642501555615578719620881420150452087420873046454644956511115407276467133556174612717179824164133360788932092040447052791862631178227290037231823335331222833200336162129396392762189554354967092021547652361532651160796765177341456362790078484928297507369001705312193177782793244822348985692559793590341505518193804888010728057117849448512625774955190899751358168378596706585668457202987759871864660273456559073375549426055781685900653908923464829734394885468244988999206185274499151806677210506917347769409117093045828900524927238096437525044068741356080627491351540566350487232696860690174496194947520855650138932684703007874435420034746192306542152558852263852900296507631435237568789586646248703965921801738076577540901667040903766188902929069510671822861616153877902089308495653772007162133808411518265830405170977335039538315878169336380104019752649356846659409797774560025968115241762349397789054954352800332396827009525822690629796658472456598628387335884813511894031383743022620922926891550852849964298207596330111117066694480466324430149000055198190308262583965926221492142273047556081184782404002074489394496269510232511331791878545082328441371720048765350339869759557018128992124956010326008050250053264446929200684701252498995425759479387981112785382986761929973751992277694973478441389049632621696756515924445911520247812678757707185398697007118332864227162591809160674602083991185822090766846830772207498096311037826686060041549916854731204567078546196194141025885371805781370174655534187122017296283721161184581158218353193041357444136157154796328887667348196431517284595005544943538879088536999448411045702393277005271619110736754900262289473334145645789890765320595062738668491177523200938423335751089852109563721857511169242006819930019171738258875352922567425557064920101824165011255877846564786900093350383910229898226194221857002430060923865389815947820800974416376020863174535658854729652942439879073832050493529438519122277966008559425577923557711596975312418148894133852195585383937956431511771230379795294299732292128680371133053401316384396190534933980676291111325435356149576046684728524239916563346524091426675461342727780233170434345168971289267545921840104197756227597660067471822290934207494523331376886406614000542531685833889168893448634110780073525201510579376363047605908487721332542989032740916880968553116012290916993633698400970760603226413015399366465126339443066875572231493104243534713989876600699319975499055706213470380101002695824676899453155776490665201944334467565196976613311188898587145711668822245727400509699732160119072255396926249827124535843504301473111240218832051664231654681344386852916775021626818615185328246171397599404932398415207114900788201987976615809811013491097273352800866136872315552233006955365402247651478120621289700245256261311601567547709415769528680297877248214287023641532662652020436811614665178700707066034814078534922649271782324732781065541860010022530499509253867456063293813967371522342122855234320650935976749525658093807322633706032442000672103148213548900502337855431440976116648701257771292709575827560392133007191500461709371692147176125121010026447722196684641403722457818932512591473723917112371081915465915904071663937946438858252364735620707295650020036596792805616066922996027531315316585483155622006326646017444472152144468644819681246707695560279030060932538779345930594226992340969813709223038218233509218005011557428717525183232245310486851262215732609722194798075931967130846314653980737797015829246223819156585337366443554348109737337224495540760648501753948438208879017328479841017981348102256400910112897950017744511229142004506464492490710105202652863566758574447662325742199762706402053383255060312527516418203028016449930422087342565554817891282049682460233540283005253075718560006015799038870577136765964751621515669826108143286135472948351608981673566588293930013540552993548589919562308594980156663180750896388069805229130598634718951864700885547382184796432881304401642368780530744782718749035314039434690697962096071532555113699428500190395767991230678831913446614347031666974701328999192709993443710323441933191460721105728124338487380022386343841583198858933151435870338805664805397960498291335607850941789135870776294011360929239353668484827523192098590968263365666096212956603519094682629717961800300808598972132672944235826129998615652701695474620160335474920567031376191611938562851772903275385274591801977707382680550924373503166426886887272621779411134101751601333855382829612404083442281131867827455489547050045411966442310254050392870831847961701367212972755126491488379480616003388131986020751920958709167285602319001672469530221803208221218616872704503127733002361988325348436343466019242929804616367328935350805623328746597085784806529834664081594121077892368420370834312204940161406063960758335618891864655554651423200260426203530997681570632741333333904199220853854786319312175652266660642174345910200679537709572823559980770630809376147772641975584771473825904558758284854015606815562901799757570916847992545374161376448730013333785263943886447721812919690961109523629037665804808512193545704951951025655694121198757308030346859059898569337072582866405260207169187668526577956156944543058006676758910070116937178576823491459342543405570820316622584471742639355981979587833616893449615149046830945724932859018354221056295097531629123037724482011013393928932583376488924777209450430840257229313586362291125639922523026884363269647585262710666175438671248079983597300317168232346451233935525384380407553845065633304438213935413417130164713686798041563080905821414265183332812509314297502820890251690106785614589359606760057678731458446148645443592717422955379198506708828294414745388986981300306954108187658509682552582425424949314690360536960017750032341691821753954129762158709737304719548460293690341195665355703998305627857396157416745643657576182891390771895653379403235204815262347353097693866730538023148077622272532324221649954442671753244324622374064448842661643958929348127658296096716884319233301538378830416300057717166148144143820753566219039860016259964743102004770192057705800497028542250274658433557630561939130213648430987819224247505958963987289591070330600565949858536386049017556773014374660672588364505226175334631658884074120237234185450227821573473561275443069107302237699561402456361885583784858879248777387787656083230346400613200782381828721246513796886302479776910563329105070544193804904254567364945398420710513095389928438178603745114243245941747414515719544184877821279104152522092326679948593254064365496183795085358420514666202070498902733404704313780081253054033649152078728675982757230769286702269229141923844991131967339171149682553199618102840668092287115904168003282203983320931493846902658427115700811419798004916828251092143928566284810124211574185358632603959677207800324288196245503095985323373085508857917515358842083017436666869243792143778299571219322197629670730022112814709856501696687736863980995752624408785149878657575519864883777577701900255188391098557435344501406769108112340685560070846376615816924345733850010430976781333415444915142863731909972665448425360971768269734125750283071093031489037279946339227239807501821134898601327386212179489042455362418762244373444881402495461455974824505770428843424099838844587442481541384056657555906629709497599330896000608248138617370961806904542835828846835064936079551185529676244877823973216367804652693834534366081144903898877472408027304666155616155243848755297227287859187458060091420614384915800477866106950777143874715820313368287129400446307097440445196888457938887220031788042777910356297399930011250993744692264039004516194900557983849961424501877832133622617290999160464594585025453507961451093065997114158840295839843134460046941660251092961902119287167732138505670617712919179496299602436007873276620691246108902603134517983579906099900098824834427881041573372073785581239019450631172984363072285618168612726555625361182822966537420898224845956040357481849771184940280228800462503820191705727969994451154675456992281212303779175138961812919458925351235568621261172124632221927649106477201056908694583711777672530082954870520478600012788237544309962505923193695475258024324792174572579932478036108364538235087242986634886322814802014946848299943623608839711196266889920582553345933116877250876936169099460683725647349779951458156087162535733935939706330055606943771346482360364157170207949394409976933392782637897301608576706600249233878407405991708847680095269958449616207036410979322371555898682161857221453162818714611409884681279597512660007751077765508086090228518125484824508841259264238501400189497219107459147386829151527376661905995375034091463010333203241664817660706739013764206250229262722973350862666900461499434625403520106984262417790541213173574069700546733483493438434271610460121748710176066295791367588204083587162284331601005494980883607396108795753002798841102892562940850282879571591075647471873142402063194662738581411531102766275057222589261605200056149396148518158570619631026980798253848419187863672542070082486974112518687901700867453526902354465871097161747558818950106075030411623990482538829505140720201436134963519284214478481398155405162448096287477720266911296825377697815165979792715098024514878665681914594322816553896387069093870402942993971003076944304177208801899923573847162523384087805075004231953265286749823258037597498106448195791201138909696932942099057669349304919354923435290750470771442055089698523681242519000946618038468464780262472290009345283424299825887269731052400790145921234356484374245909819980018112801012513319155393430902897900441419515791032588014547524425649631633341350599261923762204061766010323922562356977444624357309928891219171588803430240672352261855603756661445602212614038257335267278491493368682293752614253621087418397876445397830576612235703495948124981614489704406000125439481217792613104111943259992310195997878836493942543021924261060002768543424083432618636583999404106302800406460337759553642465758578012234051766991012013439535828714011073039213393706181156636920072880677423651933433992275594903285148750305247076616829900256367348061036802865070625500333312992668265409418753340160906748833567941347769216662767119550352160216097772915905274632307301996117584879034431853448664053052461345364249759389809422086423141791074265369704658151104390533876746856478152344305734624926387884425037717252703914476716592090204842414204850956828248625379614517087178836552395921564549298452117734659328105144362242294090905834289246010322853215994921577688889972770580966629023325490714145356719546905620026696958299006877025494475951392119941857089373321555216372431290454697916724510584399770424767752404033495852800530675642866048636935068234154972648396837362146678302064471983032515304974072879406249241728460901695191572054147567681140974288583569215988478743280909123353761054787922014956744043756153843380409711189782589918797220337397951874355215348862085505702472163105995664461983381097988161489485836678004336986474429310684490164162328792076459670337241401134336451848567674295834131731212195152371322819475405688948928377279675031156591952801941706225964634176939468008329070301271389289029670369748963444394344416070093761832836382723011470324451308293218274917268525255400643412792478766904247616295839140604401815125212327017404582965079777417963105048782644970855060116411439479069028849635302730188986031003917566350271144989776705664682558095837366468199947891975451168396913949698080292076627621808284467566203582718503577361277173810481673241342074162525676645758820080008735879721022658952460277523694608959601897652252542502708908338306737879801352585208159006381426609611984324923112026002875365742489511735290305706912534795045004710804721298764439704618449113183892329132653007049256903809084880176323564022238573734640732592127820032730301467720751496799112726079058381291688457133544800739744186254363722954131509422848084313617075036528844458242207793857239411707941248547738036866435008546389175768018418472936259425105982165723842538565514831892514652509041254171564607110392074407328544025391071883786133895415496104095472594810986260002165248334361818745252701446162142125194333806459146675782999482070236290669461732718711100811948798972196926456233483598980656323530296813935317482336164156704924687940367194969227969477241816952608309950703820305447235492594751330752470888485514148322016765832662412479657567033058431992199653433500818192486384195871947246872330471930171213454787405640608503860193938768744646186415914651576968594540220267449175602001004867275343570956713259536905640940604190309044508560290048862847879062699719973027581477371406851887139888813669727052098259546214803772793307500774988061056778396432304614393540283412951033725298201367285255567629723663946873391090221376885886626113276132885069649739889127186403068844882777551880927127363988313003341351439127144805908339211098010933775110816192653625795091899748391971855670940792605765173680449788162748900248409912432062519807032029250102872467852322625746842957125608524926627629353763169483715197779962116986863535414608694672034863204128069046848092155520083829433890069877944773575721064996674107284396266853204578570081328264119611242460958555983869863609027819596980474737451832249036017713700532115016050239781573735384982328015642940151089987859625422076921269096822370368089466982524137460737770221429539833829247469281938585162092977685329239784947968635379995702850104735170465269432062871143842053454217066965562832208812279208847910363733750013743065126466766246449186798235602460564324348181807056283184244703904752155768635260615018494948916414688044304020483072263791941820786074220581234674980088297901965589225580230911959176950161568121913348906802301780360914840859059255922268285376977088462779792340505979530425170101719859022080723267303318143428626628657657481678423022619088579698739308098238239136315191713747235401255384174496268560518040020916981016711480103529421441068859265600061035302748234893792837789923853467588170971932322995648184668878578281572417392516101411305624317809562546254818942271177968600454034875946061511298487699241085771605398506642774433807527548069377875905235967679589376068207088680620973408005659190645079045825741911753972071157990994118519347940759771851406255362913949828822384809165708710584658777841943663309589244171048357603935091797690479448507815638304084856825087775589278714530106553302538389585880886828530844543039653332966443494357789535004265347202389010745723803675569430947625978185928714921448757091265807309986931459639669828561435373934952240595177996566526904372474467868943364724516017763167754623589454928721499160999220892941111826399116946123631137414158428724927823498317093153467260809463453447663178804387617489727890164782844863825652627662301820835853790903294898630733452747493170407795437087693610326286999621567875234593706647935292158539040091024935710909589665820165639137038084210174129688264986732428362382219932689299616628834309150569767731539638611201521783581842729865335678190634608143955749971212327841692632561633408646141718040861983042754955293378569660342019064167307051511832432077358331287576990795731605868637757806645464792682650165887120736810266684125456367950415940887154047456067219830726649817173139629804998711928143357123479552330090369287973671422319721530475389519989139834568731222931421993244493871083766917363789599489829663555333840436663133149458000912621756574517411147440367145069603491461475927350971696459607306966752897226498206739799376254161430712678033892057467352329359686969595553855361277557530050022472824754826391283563745929529342167188947292787386246977203719406827987388998246348389858017951455465813913799596377027064749626619152787361639393833097344545822675907230363608407249647705331069958527942840384446502713786563004654889103908774799151924912009319383243655766576851692507395779799350290979415318872127552214381732257350316757394485096751472433713103967359620562871415615956102660104832235231275898748507249942552043617617149984985191835240628001152415877466981179679331219189979390017950051426470533007120230194875998420667213873971477238443995529412060445077687788307391379516837495656412021405579587731700466265669457992699301131370762637817215111476608643510053706640200942662332409686795954886075400285652880582433299364378981312941944382822184094330242948193204592802065923743639126070286941171130816415326915668206935415981507067688608180949349071516492343069429291244133531300719431186914843142041891250922229325893133174366766099684027103864274879744755784425180858473563491884289141881675938750056755724159230501515518527405445214573966462002434836320526816500618937527946368873671125698277972156546800135716621033382647983499963441427396739096475681106673723380118230700179873484584846513599075441563649557127285578449604052589359667671201386841435796914772248571015981925162347743384297666559013736878738616539972160400169394601152376670618440533602812206158138704192417212147192382293122418157832759672280177548665631450204580019717273070506553133362298957109169998548873641417615913430668265914925693727555535211782374009560680720916576652883285613797480756132287842529677786215032537990435230302484821473939101885860480768020194865948773150811261887300430619381262104530155559160981052736910584129986626344007415989017256490227125448126971668265485776180463527518189813998980786334330982833263718054867401552811644913618671385215306561536979321087645857328471433936526716912246813639661811298039389394332011922313237036776584522326114435275401794938935139052824089870631652713888862222273926969390788723326212042187185450062692841036213964167917580238346844205566148754921689015138611402194082266736363459958481006316780040708176376328083097680735165289736665704295805892975242362668713030040319667138475629305327208751136841782735052610846236997044064912949999469481764341563843591321089643284180136220867872852456370247944396108817722965880387967815769010975227646655278138614086522226243684641470296222170856539529181921452169847110080642771690827226806091051088250286210226469233350784613100675199702265257345469715133195259135301291357825577148590240601399662805903379386681436789651652247179732604207087883660049455202561399661400596483216643841400348550287696995571016695134629344545173226001135739970043619826105108408931259300954060766463500887238235992110244744608092762793267956103734218632587908203000668463976258250796317976237884158313722175995114035315655874976357453617304214325829884602980624266015721266625729635512946400829810737775123104209577916233158822467927845255899250445993515849735188340267155620006548132674963040376657055372755066654233189811284583904853024731072795977554708643673301717829366413482158408781158738036545998097467616154871007013975093920451407621975717701227619692451376250868429879845972348303048936807058918371031051465334986641257053205099105284703884450680693174299860049589697835469909004032150272391206758009491435880653979852751366809407093730263002816396741767766109895138906164035955609310920928715952684440059902572137296177496491158544764823208937028643335464636250936245963030356400572143949981465025926497605139889725869115035403718143423382511486650329758017704804719510818773901599905790996713502654548250820007841163528590050725555610875143894506386661141640696792087970067222500732755098527115787954073427513080844636921272864452640858668147668116780493618138396497393678819202682498614004818268938911067702959508772853362543154160737506331224200691806998471521106281160657643012788081597728203711922228291217423694594680041834980897493090143173405017302645251695718950018508394067064614178300220069506486122003908578665884908376140292476652112033818833803620438406372824238356907309529572710219162460845798974140187575764783909947959821783014435842178085814405217215782100324514182190573073944049656930069032181934172936142744884448970352740387214537266319686203702952203908672719814537575254729571600771645707658282327655500991736928669302997519114496615400635495203493667937449860550573273241782955689185184542830647409309863981586069571302545311679889621629904343867655843536058606411308207846689054917569936608074138792048565104796803586864920590770650069264627871548249913157014097796844679511512217861265090373284689794995734192945796347437023834328254460919415620312264899797111771433636079485105116190176109079248516577392081746707229718183532019531540022845674919253518384701616033604305157070468853893380638023149041375967205124333149490194417603618929701273150134280137487063473125285126392482767392574142531822104218650928357502578858934353060656924079244296183549907202164815434492110214400363663609785344126313432980807219707839553944500104110221738584074642092304478815724447910960701324755643014415079071243411620463203547437129264065812961088616620000096447169702662761815228429332757160878303707546954359592545253801955082352663366663722368597077458132247889323340875726239719193248798624458079960128805392779979301072830439923647926266535398768363296738345101289558758138958692154876025625056613805942092298578679938378310163584225111258812669390523984518422547633531537462175084946545604682507785742423736220586203989095804571673376127614067212594265730537849938669446947018946856452042886011791145103141541555179633081623723255479166588426593569754457585924871130812775957332362643994596877977066008194872826821817061126712721876969187122491299648907876512963243704144001654140955963819580284514912660566219459024911218851467706540219627849923634962634742835649964449417163124726101495642851728523849765186974830874865320495113926040572270670446650735984093897296676426445543554672565108510198786002151829960131467567722279762608645155182616348218178541801571877909709603307386089204113480744525654728899919055185088214783966851906592327191461153226681570109597752254525280623876533267756853952014461490414847477753133154754031986838088085611834227439455978893271741955710160153264599664462519617930525798475932139202724469235714906448842502446379250192736776737769165330720363611844682369673431751965754869396731164008530104167291378595264522856200311863263248612440699376337047490691361718333245816735303938199265629623688265426055509588761924838737639611519600072496534439814079465694595970697529065260567022629715122638300194205239485601407372951617883117032885518505923474780616960579869867965202922088638418520943985737360011469908068954994916050189369094407735880543797020258098102819232428487256778102730931469081735831154928062099034018239361708053332607843079031897163078610827948766815996307347112553414251375636588486459282222480526362503253345582146431758590691739232505781042414850255837850555916742267492920106948756260481177450876428793214611412592872406205589107546737677053518796914245448765748840351273974064287092642950266126685858874100381448823427693273545517384869225908884137068188397768054199367561770422414292722773298257533532103776495406449650817233070782488467189541602320355447444439955412901167725367431667265674198418866713318770714298354931848048723017729133208106293115237513178389851296088315253342651512272521160000025749212207206592939541663379524615633937065942156108452949158772742494486876249763305455148642909223421912123162550630484582726848037837715131707524947811707322007397061074966236968459324191227754372232198582893957618995122708412608375342105434691025102868081200904381268234828159582336588452231409055054299297809724932119750937205750594917681827643223851330723750299664091755280110259771810996158572594418599152608332533278006923025493563416811611488317437525283411012711120425529206817322399559765522260664561597374069889218399304833828562853364907507822889628562227025336024125589547137192949938691081808217971946758194782409758621733531465161008757962709704101709771405515966656653352749175200352429104668049784254247578897837307666413187597548269284829947851381079942525703210662982683442924758483737167180069255024944252119814737763631251761758796922837087664689944972601181989472968935871511915523827137933660883198127087256900966941316134389744768739244947706241208286398146174455126971166907504175971794909593333454513087355058142021662109619211400371219574973367078280388875509712503160335979093416928614381895019815208823627703221695645905524281847296000597885230704337743090116906238376830833810596351627548010598083850927747906227243289114101282113111487115938804588987634366050023416289743796701938540616984087517404789271969906762776269477403998595790527773947613051468473851783288171605912127201558204485871624540087849248949809878951495836625666279016006328699883479072094977919493275553656763681880125807103318531120981362432314323548519097134274222518419871482207816139121268515565189033115033616812415870534380694386542779964677876551357666268421818953629658510468279881776327358656236281889189673743091931207129978425707391891810585673690037293308961686056394799964801313006991153785744732354974677131244196054918932737014558576880651651983115198432510785162830638362364819510449311187003309318552663394887378325213973995106225209600760920432894061565118544547053706423785924839653797610682397798605315974986569283301167596991273688817185865791722473206018891446596638533128304850458854200986568020580846066796639916984899856915173059789206740608913898030167662181991548416307141817990111214777182151578097887457495683122526128934851798217937532779011070910249571067104423622291960349706230005215849859901221060829263787318373178398535669397818901669645049273915461522939530486544594404506490865226466665602155934154865691742360040016924525817753897941672463602564120546103174830974307502519744192226730591514678293108429112475848900801470344626110679765159788612354087047961825090418694303236871198472222989419495705267454238262962974777400705078674149646338238596480913757193453321491500593765477415282782517201533623305519009990667281619286270658721748520688784422952607770915149464744822990290370721981504699369761804480611730603481898352993931566564827235760084884338495168568253397040612083115669666094858762940150790897528693927273146493127638856747741401674207442232033081668830210034509155946013569873159771350123027037347631869400170080070804723721035596332910829036329894058378813086401769348779456942929315283591325981411803868870589869211370025108013851340483939380397525045761602976804367344011191011740434007848177574985248378470475606817430500309982318726704139282871593725289439928685948773551250403014652844990632970404290471371630134366665525665987479530989656631732295898211976202157791976520416069309023119657498899389334455425197131401292041757085913907167077944299621203612620887617099963754849597795507016475392505204543273556899372839856926105925121932692390684054546911332859094303699407984276789482948167167855233905579936591171114614227406491524653992136761477268734805285924348165386275201547873853200242018125836723502435633530631581668726427687404207113843511876846107363925005175032937121959740814717975105565507467346324466778655369139941686186619316244863536206005404281842154223459956370173616717718337493241162647201453810544658972827045295908681579780321495437522037767235674995522761624184187801980465737321813676431110724607849579061273549415565338394196868883280574071546605482813154652007316343518523011738217109220598397524042302162664937362471984437310655389365299947735422208682235528635617362605102583716855742466311195874916681853727791343919291302180943098868265133162507697334455536792462490326894755923167387015405098477228322191726047663943378534603191019600479612643459215455702077504937221955041682528022310627002057749769029844293064830215298900303640592469821722006530624099810636081722462877983234177868974107051790424057827347615527144196173514145990288896094209101851254247521720704912995150796150166623785648956987240815555514736799669630160435989841105632492307698281516722943853050289526854048795461495786832086186096404096581978640690680031713984662141934471777400428066624817205827794020479704055472448048162492946330358549613786226941863731074634767186579147623048866712321655826556217601912313250830082461130096251768559875470216092948376203575221697046343832115414989394494262385498304737146855803680301395108098168358529192514699429790055768823971844786540096441553671441597215419592991268773364803422921803577111606246267226538772051367104902552089586328447376428608569965548029260399307554099726562654667954477679176585434213245102433294548155462504897002678327827653160158161306303828415832640509166126580901905815165352380132360198961715686236850311505421066062094493165800122845482998043827312192407414118788933848903462206726657654908614189119908794739963355643306715676360417477544864322994701134565422663398886953911476892466662294686019260326316938808659645239130154823884792007679343947031740196339867564987646141591039074533246625317669134428031329770241603019140361760276785101737886298455262301530400042230443279359746991938487050126966647109020773467538245242860530103940884910594726080492514117739163349649674471039655844030934128940828973882120146294430626753036408101016740177321716741931177984692480250829034551494765757859956847220829917814558101834113741631213444669740251182542448645918149006190155573334396041833010222971794842763106372377182071684631277758450914597073542054317299581878052781808772362642899557198713228284013963221890769333109096490849433883740144160027907950661101817890116208333722023118228576530993191960552804292315165837626220048512184962018709558720127886929869784529602019149351376350665936281113434656458038848830349974781881372735370800036892567317652332077247228449992544021824039541072040971063527442606795906462734585724565737096357513139264871965148673597745168264111967148394742052435535488514528121998742330244701491793751441819156085398269665445138740761389123229382688147133909413090352465915537269793936475873200741065805536274880734056898100457721977034858128284386919071254936731923270297914639971625094662412018051473615542432340610838921089669094750269617156305580102969794713801099290624028145367683185708147843171920378877688119896482025643911491539519901859151918548076296373148108653114138326164246842373479868176642693460953022152415504218948937329817869323241056281041818605382622088324298594183246193055167146806457382106274297430890989028920747167231368524820827751329922009211477127793997325340253451823850454696538233621048912079826677880503028334564091617321788147284953640669767802490399415418594703360202615862695094890217205543259198988315800164063383639442732993582453707041627623800755081547399992009842021046948960034361449190503689522597963652536509848956119639307224592399709923906192459468977978196252016562202480754349679845556281557395501754240811285086312995369674923056811950239853215244588672511039585057160294824741353307699023621541243664434366238605651991097108229252594772259234518900606285111202911374203657987806761425268539210273562627504001842257899019216409361637943958287403942058363897180829572137659862616070741412875665046590821264705594345338465446159090011701848318971365731701322234473878276031241209704105490272646790367085359383806422534659956405046979018615435070553716204939427692711154265158288426623751101195905156159210572918251440835519378041551136476041099488061868314092270884016962205997989150249953618401079004835936319949442333810827384666489882472249928952890016533129303154335428346789803031289568839274038581946889181246144869399529352323691987897547176865197254017461127846102380447802497077147457686427535998897222107683716307194213813784285171303086055468831740151192137594350025349261722726244557495298934158786347410086924419128987196925411457108822577922250535399298843043392288089659373134380215990123881565920023277491318461438640823108408680267425355660897938627195589215944990895501782049063983305197467211585725009473538502372561340931641370727249088819772670956412916435543226663670249488862858926996393583076877684695846984210486956312692304870325942538318179355566541682578429783040615436852127121611754547031247760926891211460756202322322658879557992086486119352830891026464823824922621910132034744583687266020374744513299181835264865263842831567816042168844777929733802844175348067786224404206123415100413948668005628590572610622154865200900722826496403363811587417737009827451972912071104233969773924729632867464358629609941582701796458941750370833219356301972137793395881727956978492368038639459311255461852257877187902094334531709846133331629264403291553346399322825967782511164020853694920982774518366592293423230380325290809561921580012909077724060171263998586605308347795305958189890358683772449916648364184961769988083221045540220612486272597680611669974832039449327006706466941275974540125902415267498840456482011103642222933387126246050441415750625139860658905105991320467107505924668707806913459332197718743804525860597189846906886061660216251354279064764307989794990354768756525996142345470019602403969759047802161198392345829699574669818119722135428575093732420942931067129046467672566737715344503372897203452430780934933527837028259729022774275812948112786014376209189415010238959758729438734075619789023542400172432721771031664849520577635373620592434454104700454965658632618969171169837514048274037103888268519694566465701710410130270037505211699135201416495043751056391962936692785330055887893226752947825747546024194959838865018496868439848902077445045669734609525305125217514225292435048391895383438015776853523315454549657160629554306414108953977549781204175448666216565304437684456458974609059417355452453803320102624546154645665207658862737999401072711096879562186582749514812530754882425519230954708109323384592242404534220466994709369006829334602799657146035129911619634966504074795698865186296534343053770530809138747893305225980635436827284263799523875353288754541270545631906378583476848922308054252788976860792340500363728903135341066912999771523115351858158476554926070213453461032512113351318662496544421150343266393083892321660382914865471960506665974730877696114206570327563559055126500640601082616200179180719380638165907068398989218724716203340281113563930701145681407082566527474964245842800924273729339375198624265513982875404384507812933166559820853428660543643238691424775432314411024549582688570549913494716999430853987945152421633315701562307783839244435175208067982447646513904174246195253420337098480904651941582998760739680531006399924572102305286553927869891879607461995895485591258619174409129905750627355859306984313736287810021602533116165278249191540627022467313940269598433868952701016834816495760772295737414408875378649549649532064455984614665063659322156212189378533793047523425369423871621450468910027443371836407365182360273903019686101078808889678641215532325181087614906677042141413537858746189796344733772772324596215309960714559139521802928864457788013635655224152196633821467191755578306615217405813500674518530706532106278569378654239311249895594924930552329456030341216997821520657123371171658534913185969564847074307296513962394019686901920275407100395608622150906777248764881465920757534420408984279588510705428386321748062200886413696981918104296023109429088245441463404741142362934858997246362907694972488983025922641128657466018029033428845638016755258784329783028977952234875209955595975698540814176944968940921675911554535699475596878017420432670450684832346401326243030341300734152339248483862812668690393329079374574302257903784572210535097405930187538017282726872377670194294634542242909307927553559730643766896851998483955465616892289967569792928033062903241538919646525955634231771041866466362047275771241817674978523809684191905479723858911994883359279636554107297091342057828742346218872443270737279165258080461097314267639674331644346224112983230602358095646358352640688841571775803147770943447587001251060275016641449354159349774157553937139775259370951486571255869818929004114824585224444957615851415004343384437511806993055428899968037418493791433433408063900203809926688222423311244878698133083231335426639536604768712436387929814505871298945441787612679350494750196246654226808355110280308106374457523065642853985557873709418490874318076600720454687501773564883741684361444976004787359198567100114119859461314308385501535537421817054361872545484917579134050933187653007729198347185738118355915747748240910581225060211848596389388473167355857936365752646563368245899185651650395405665203667982441721099971539690607563698829881358018764760463811297808789465065948725748420618861374304410115818169151188411571065928630411072042573462820204368384476970701680199378468830648012665049864306979736227152912037429744894165881983888076239571593315861056488911373419617238964438811501995198596358791521375827209773543016859332202410254442129823522885713304108044672329560874670337587809579496992086949394721093189517499626270568869169288109071228530084832430968514251090078228012227753987653546575700827425082432896948023009970463339413154214608927540426471628240800919336376233300342619926695468815577730177684586913681587057230828609334980456922170239255313679856057678980003354474391921412348271564701863334161200512453657013923388598026390048941813880166338233109163813669857156994658583831853658303844913969098335908194979280892805976715995911415833318484587179863399530642982515590990174364974675961177747868088872953982358501067439444137122895455625550931595050575346374501045252399173130568965285564987851456780150536452231515891626771948020301466846631087350214022683531467776618613191345975010861026593307261759096942853923526308065332845023060644931057705237377799965639794865100056893843481566219202623544897036092287784335146574110417138140145770252454322738105812567165993302426722670674636838690835574210074648364293941452021917495498963747166893267569040558549347967530497642545277003748103783891003488815051116714318936841650156483793718799418098618780997252614561058028097215381277534718032364898850680505331809642335847194326818349507905613160811881207080935939493841135667794876677799014648789675619369231994540946682003947565044926216712660451006648500850099288414788910102688157161624023255652766343088152361403964191428469781583155631684144749520306000078863280084429520023415719430159123894831999263286101615463090100973938565485437219143065344562823847041647671466220609537218382204159957155487035583253895665103530448627622086709077581276615710804432646714529733359816047043569389360003449369624927144695142455531233418949969237940285936365515579186450923481719473423578964139530565842762335975765728917291783033041538594762658750848981176474425790765733683106097291703945672150675836151499834434854063460375813104533743842713391559474212997429088672862247930666927025646639603514250072008546313022126786117019537408210162501247199138140727896705877449185432621613229355249362886487432854884956644667756111864569968713681568966057563840514904890686726044421228618398300500813911800793946604895037490115656909715007235997840249698020222171863560649752889931275999844329246039301889627284984364386108269925281887875904193802427994097312238964418672601321830901797457783028293981961053372520579720058821037509045807865699694461053361612198637853551348686395593261279608738724504521472233579875908872885767239749405660666047448189447963637854516143856361048569438572437000848002778388132035275004251177330156665481483318617355330356344297543026261792354093095048731958221627419644505656195855244690128910423864997629178048368120839679359490933499605659744102128240422154817740392743846947069449193827546016930425634418007704934374086718808625341054005577720639629456590293895498199876733771075395297585630342749668063693018698666367597683285993862296589909955396656210340476761827474636954731801797706317049078613018669487512412096660686403913069304853959883404400314899171672265100585416847994827996288637836675029692270743586290367410295613816584146136911891921652386717625485681945126976346165297500591544150775330493126559990336290766234166890808399276057301101089602777733372746644226921172165952147800586662571919647357943467950396545560801587263488558739237355870860426879970413020157149272153269409352098990947290584249040350666403022336172467896173007005215875354089548798748102536810757988436411691887321697994092563348930456114251296532431431272273155697017655809666534191019477369187984961097089413621733385158689631220563552958693524663764748101379199787173211690230828708879508395611454969437812338916302889688013502146258135548484491806157956585955218691734148385616169864835726858872459543761858378348695917153071473067780939393244702498180468014616405369253882578086475008518381392338067968834718000792026943423985117969594865673895724085765447549170127271940676478071555722345573344907299213426784711722980908604293333549581329995847456949724761818757251787939262388046357459805117236855620197869251008807489487530780764534846547891143354866216851539739438677648382885188809088875771616372885571112167987006397587953815250397279233344254174484861095362280780233104886142593741355101247866753144525077019250901099015858705026546012787428633471804154516117392582161603785620210478741601160007914094157223603161242706415375144801543211032303037824514419217997979503657369837189074008696362112420985451541481243657563535790337024379097375006183267882574029551824692187224492725282027100270405961188326202163777591267135151431964043677211362096017973652637174219765175581271463931485419955418710486309387148978558597422466823540318462653106362814902263371368772504612323431387744316613393679878250306468483721922657614646866590686002775845367591832406567359074465986883763720006793464778288936223928982920755019774380235310481396818753793318752936187359090653246579045900076791428759784292204685186526259877648688455053229196749415500910741334164703887135021837938186469654356567771039453848918416514949356314888703417471473688345948144338799545778117532835682070333144397169732778176463477576107518616618350520964985107850174712643635401029962436674440567068350360834014343946330750580759056071834496692564870377941104439179262073045733638906992757234976382770620470138078211632485013579004318624333237769895672032349118904020334224009005506042003294950868508079993897291723216548612616298561708508436862568535226734045634462382947454654517247875123916032870806074143666892552249241804047515959032462540863390442737752840251088176226638358974648370171946073372881874900640251289536064752822410992247125201020128116997364108184201864674785953152981445656392903456789665482970320162917860252985487969188527106627603559950167786389839922122769175596326635030009855804937295006273103911576920134463826357673988291634268302322189106482980541622040693121697870378472731145525787449798869300986781845495591453018860999729290125904198466684459703779540517141124940597063215067846886068806467583864305732253081725778121768942255924951252992372898926944644970013444953959930849844424639232029696185346152084537703503637564235558337427613997102525817375459426177622234730803227398213811816480727078840675049618637680507793807012239646900544707196973734242703735294364371047791335781222439640690142816753269017541363856967079033965851009134365742046681241518751661499682723268551854196954474057798598243275097007896367363729326995889974212893834659187568253621666781766917874705477241918684335295678356596618221280465237811509222713388232167750140533285097105327813259870765748863265136821729829634352597833898632100984855944130163157020873676367122333684390645008291361993859928293994316382937032208341524725090779867941694902579926989825901618584357349634172882285352734238229165654983283302836393700313474889733319665580299466577484772768258226227208475709005510091993109837252212573208517843841698472144119881228369637285885826485068043047864603296725197454681130583136520217306422256670969300926150648632022748630246747811855949434128814714383946508542452861784692140265815755495829933593624275695848607545521404702871169671063216845500810426143681017818551099565712481447525799678844435086070537173269138744802724811028025786364569865770312892154682581240561773568325509695429502259380905526653377821353471608184178788901691532358799434078409880830962307911833677680152871301812071479582055659508157476781889638341751670594846787486603228244537413358853723792318252831370376444435207849923452272955700198799898824331502335553436561376097603977263304625484074992591002766080451495970637609572631023716166676259281365576023520132388856980485913197765020843624368914982553271561252233287912284066178958094651747856519644744471739291999961755695997505881469622785668072334108935775816477399465990615180727403559512351912377248413577832671114842142826096817551125270555016244151364065971451845483001624393486554821974628285654587824554773858860478136510313942196804277728124477831478002040706391914062975168176088398522295040063322912831822865446925244910947253221069833903215880601031682435282794198243203130512868169181000078292819556064331836356154804138335823339003804131807713828484582454671277543280986382888113730083325594164570514602413018711262483401453568560729687238796611620913508233964195388664167208894016875195221601246557052557772478417751874008259221220597783504124365386398068155765103607834576100340865939970635237611249016130547510660648032292319500593673221895163034750812035086884744326176347433596723486736307653620286892919722497931480875827216775889557084075301330718025651111901412878052069711056424404715438710277802552056719955654190475059979846463550828761312007847377528055721878648757898649675182910949698240391914016398635632280067923978122921786058870065994194304074047561545573097496824793126792322620391479137671562831958734012061562057967543150364683217189606151810143509522892877755753389087025776126477057486461058020712038259009360979478522954576094167693010614531341470708897878485569650194596748165422469005250570602760619995483501841350576708814330230876985215367366954449065383678464867115058612196797862223199018833856607244142389040001349260230266569834887808406426296815766931948248183751131442379182044242897212192051142494234666765274522916599362456837837369846770859425771884454034951503596978274753668418237950297732560220087718034190410126424317888227676656633633613183048048327435914481446538882531610387223546431004148961173266578124725668073914090524278715935862668332907655691944712031734410803860172394187925438315070352136282047181767380532470403743018608289255876053935283670932367983294674338122122174583223091528778690641575615691440859565500795965159340735430216096637847114642496276307910442237165479901294987861374231323539618459498523508859766395443976111853006110095165565640669560393094092195009814480692643251444590312192356669443039550706342044833898281578097644169713256378343476697275481463572696517881696261189730821704868178595977624790616877671922512222150945050627837258573273132774930393689276649283081085987977605397842592710953539918195674389245668780248844229212643152292281462024447050769306856891235876552987684859223613933823415300361314808450754533258109181701690959458665869544195732920823410279984180400079063793059942575497537451676694638411834167418505196260187274494926434599071432359640470427261286394769285047543802920705095121295900178507711355326790291228147538815015369335131113645385837419025397816473592199938354306870884889582669777005963908445891934510523453468124071092654155690503746665753843277654177787803790756416731631417553777747676010120923639489548364949165388161795999166022709819598972103303061717983337580082507828067585959634799802825577548192737570099858346558923181478166632494552455678479362752954230410318732878404146165729430350156862820109306848051818565219671747129729539689402054218747273669830280968392872463293699476816567684451401764211990218484950576349341521222669639606487209488903232512930628836518025629077077642591314123252338612776543904528766721597070905641075134270523230489055551018833057870519790073563865866241764502811684869197547107534563133431136271475083640936022833987729886081466964627927439026051076712544275848573299199703714580278762892464977541605268645815104275846597349964033243632314036345904335410004730130153630973274180413457386762178444995560904125215228752598674860826640406269086282659717097821602609057537971852939435010173669703965285825193760973298012994451338408213854062677417195534382346950868097853733037213917651285622061559417808949007420575006792219435832084677481245945721290356007193881569348427894911364738488308330296625786026290093847502080444250584259552980134849644652668833615426464056497636266897453761616420410811971519185616287486215509105760758496353987729558000786566280044487557210127549871604671443822632032892084496258642110537870209011511333042495926417583144966985079455107502380311575334793345478727157978730898710522027689013473579825603726957166375949687268858348709130978459447563176492535939444534563696063863966453246077099857412692616441433389729845759505059406600121570587973023336122606275626611536647670589543250888538777795512835424304549686518373142766515240908247538572087958370789800467276021085103061057778860612629523844156481501552480105445562671826263348237380509402978381731101529049827212058518017459600073824851013489811165293025599679385438649748360903418567958754020134704813105173127482342903018983829620225716802552692648246015709266203637445095315079610543624284685705285318949404638089329525276756610536151712823664243624149455918148646358718472309670271013459385584573913402407563347793306513049335840579747699431108285521456783192499387423608935937358774484135337483168740083606638500065012158662170132865037740466672875651188041652001788220824338959890316510922575389133586762231834874386241362771284021060254547927645918482945419836550779952123485874753061764619784793502374274635591302301493129644079962601674208554754457927343469307040077496938187755973522727974718343167532923251233556872314113796136774624052367007297077791210046121702358804287281661845372116679417273687442394429939373932215135933987831968590054734938042922354896778543415031348063072150925187424153955268802121514914772019398610893819877698369111288683717700318577361618116166840689174533227057685843234626722292560595934876049149257869221681831451755493541837862447119291028634362893468559490262204730059339912039624127675094349859169638581829527695261218113265572776344494770430574759580435978207894894331140656187037558994040783490939416150821197388033523989049099163914528554912327438815781897020135178922861908135702334280739790308012553920403280485079346942943407584000415740918946774751050922883384728386283715266160659149362675922968951133668783744634368710022860251206526934515539605679128750921352304404580440989193369039920537040912732576557252647790695609564348837207751232466102028494201167750607839327110993759094266634615255832515011108163516501370483828458121298088034380142296507899750928763122322403909855313958696083038864530082659439410754451291726521306627084078684871376406552716704617797225323303273899761645968932404272609336779920269892019870765381625856959197431613940017599667867210202239005195817672602067203230201306388206695589168939685193991871276064231448691860156639183999031847881186121022632449152214022643020595994571143762663935691598281891621138510551485412350699922087582686717736518194326737210655838957420156555554877757292309212664553367226570848955462136600155478998991768640529733045399724589785969025964773909523336945720617731300461583639547378521689039298312157458229727634830505860654138130295972251787045296928088906596271381069520644358382418771302783165313006538693281047502238315336025176011758719558625897317987613978291313239367200817106030445343448105803041932779946858661786874970315979469706984740303562862888086821823348363767642822714980972378727401451038146253681206475894275388853937131652608988456961672150388982046817976550785882167601681474237367527111424084418786566604776660762920716055352665864239582067444391009765209293797347899378494099452410184482198418472016300748557194954511972479129916868015634664457647205411750038376657541413833248377017446403266024517658997102905864053819047533419150770076525660418323952852181362278186054487220031656583130473574833370698416913610545718570110286088071108405322453994401093995058977756998210040623910559146294440591094920095630977401172690449044482214123046648499115597208891136126934691153732604011394730313540918674634118017280646190253429794747045586330345169144866457688303688587724735575066626817140292460505667134830706911215673858966580902606715896440085612883386472664084191158572171995643884689349846000942932850718273148610907896878558261168933767813978781688154041049111103821353378543179537511302754064129013502248943665174244937434079131259929239603035011559244801930988419747925882075223123268374296623845091506524595349696171873789044915087454153630791188708027221103577991865548278429746917800654773782849936846790947299930607941584272828038007274404581925611475009943375983562919846009587142957265300967898282371262056474236445849158011222658587250902452968118119369067143443702289352654568081530127069344207738677412901085087646754473068103363768996250568408179788822936270549374460521020205786800729248264014679483236488213528400526569105938546215353164760773355602615827454358602522737624281075386536104703329781419915938205397286261329806728661497096994855484684001062140061795095125442601579500834357695998683107737592037126191473078047885558891805010250131233635116474473946305098246871331155911872041702391661581269741549902769345819059449345878770459680750661276995188035297346426303657225472710578188648192770502817705416249506970791499615929691226275498312842894250654594142266686934684584445280904517918724090581164431315426977596690051313574010938938686088193413411845039627353042665042921267774060454275551733140431276121661903461921582513128329712097563889441358749251369865207167063248207756078487053620516311709067733715571183931435818778286804214317414668979416403116129532715079556222885442770197436611339294246496793439407712376064715299543086683834439539609048702037278304320668026354444886491072934829387904007307496365099721958689918268782273961877747393621561030941431783742109913294138796615642456263837761847863819642969701164769863420223970551109344561557965985685867456343423217582920760288654593472221120493836864427223507422463162875427490072156700214788477140555682164576650917847469355016808230414564435629718063945272695782403511848397857954385924753503601940299910387000872376474493110264573791995500979437396789524085953090759813978193650619846603983419529502537422190739919727561759254940552050831186480672674674717521680864888003561785398585147536047726519919009020262307908863442648188683830076348322418586202807843894638100833480373835546477412185828556279338235211767542090428260772145899907412809967312107668450688067792316896553991884365167494993414508859041379350524933514235009704194180996227377198071281873654622863040838315674383373656535095710176477114334367176548423847201899458952853797921976821526171804980801956977717467026006289741168065426815591291110118936928226906440405439184825155123395999989528271579857442475729828020461558534828669463291387495867548172697593349039224450689631450485896330598690000321596869036140453446288658209338937215214786099205616217461866130436907847280777802411996238646473431034665194460778180110634930892512156153435249664859191505570569608496439957707291722106208529617032156070281885552530471968358620752632866456617711319015066554813107303747500275372248533661687491350115647366375010977936741869077659624947233883155267251565284404035602396913186554973737212509964339777529035539662049409293875853101318174054810512609363283029179221329946275983160887957871624920028587105363757239905593824095061803816033169336414967657167751799806674053317303543402774742550796944405855614716098211015400479990089728999188085869940193896461513751722849069024534771959184031715323785610422905893059409730101723803661722062763083710660861914205861950273048487660371717012263120777722937517147716704922263020240329381213544830153697618811227159542690865494486574796178782307380934376982211846659726286772980813893603787854740368229160723907660141573170963845760585025378201325786649612575768885739056552175205447650770887459188875918789779941439665659553188775082088767267138403412452845546297988948161857933627120978490761342435229179142948578610418424250580963445631114348948032238297136538071278942435827092289226082842343518357699190669961015045115060453639516256800510416300101105613612488768182411882580117940099065262125556354239347866433195745962487292800103646420870745028935758054131225516322984034802995630724558531092122298197341437456508023025952844177422519278400152903475064938996499245647551021335018071011626701254350791023949220617403513950951260810743732480065863708693278369220417134703263725160390892163536085979227842167089869562085649779419875904214331457699535580520815001097850308823681225102690021323100097498216296588404898894494685056828672140597549628486234532601660020110035762286416006249907482922591573433219501144235976363696044512791677265721252058015337895223407191130793225430767673987829457716165755385570265387069449643082647807711244182229587422444346186419098017804175176369145039746055235958526648515238764593050343057829968705107480696088879524083908981053187073364244178087452585180200648904074929669857795478445064417906858808577893811976645037912820574629358390045317933137123997363932028541903588755028394530996739637993293715677237151063358561294341151298682500475062345830967078542899966566584711924098125121209158841875063950040520871531810466700404322332993570563261663636061850866551170029034599081084941377421039573860015528143407410506670071665931031454989832236919958972698168688440525306482265182975549179460213190382411242003045895609107967058022513194682555217426100516827999145607632767063427966243958290065750344067254717885134914804583639849022311732027587076182005591469101929673318281002433738439147069604290136455920247592777842054594870898592722814255357669429872405564256921405523508260130867251021667967087138349443756026552623796805497560978010138799059879034361915286113536147434112286049214656474062856841441189866423209504069346752391973824141198719341582864253488299560727443720679349959489393460891959992956598395825192527803787745497569561835155876744286532805196399411839862371400015066870988785507508830452590408489352633525746528119022055684084628629732306387198851273578241501062701561163063377622729238395851976303516259972653541262912648008642234253614402978885484336105516576224348539415202519167651914070301497187556383576779743923508917473195722238655586804120995584645866845813367624737755670997269769228623446424709065485181588178369206968322249394795483516703888512281418785245142525291872633714861162585657671517963846743362086629498296733656698797324977910865022491786917753105562963756180293492002751578485517372035970083463819654802533919972417400316143393624925003734680898162847746264086423005288069998866553134215941927862575367298204833302266563790366255263763139353379941165819024934884749105637533485882505718841902810750240863657414606336497739339598154421263790712505252709863392135844800751263608042022111882637091697965618537813056001270287225837625905237991670489095368854987164280857376036734951816876403338892408864826908181706002694325137860982579187227208740595497472696243738358638956867570922753984118984397605053058121941653522578906092851190930496938406892083482865525433175246399004278861986036324647958555754790980155451673936859396506476778143019138898634982177745944226156539747679595734853467303587637080381669374775711421052102389777813228751609037555870201516720059449388151457025996432767195880815748517210620019556249424547260165867392645947094914725007730995045159652173082056721402381177602742834354614546630706808854137606618008368439244485248748536965112176977025237433062319629173591027237142206497816009994085845987403655411952059251600689454348607843171650047958241077344417828467500662928998180791485735372027443243776395167524857005657578921695510037833555363638136158861669723053182266481748822570370867047977510039212523075766451041059502047901962601846667948197348480543774156385322543735798581361731768617062966541875232203591898576272379649503575746154749230073233882247809734205940260659007741209526608490992633439213821627054884195493405953630401090944788813113851997765208253834475445733565168894271864258624861070046098596860238355868605443606744858036892452441298361398100444518604840544965691526608012064476843953453349208922311288356917070946772852998933554707125954485085293585550481789952320391584708617662942920111451260497469681643929416466292357634017754452853530611245127803839236527143305426743230553616783036182302603280702399046167473916004563498864148213078827295265478236851036488703674580027506886375691670850630353743681311889769506496936985161897869542498582830859236182063429985283428320836648647067555113128664670914192699285805403736019549409625823618507570725361750874600200365522046745172296954047412064268145816371270694391640353861986061662559940936521229853044079262176023614104208258334118201491267342223165730882247914978453626451804729149396318572206410694241454485524925140895695207915739324678980470666149367002265469684066169755731873763851222900349344929216102943076152103384139460782930419559245970178104976243956146660995788670892754211619957682461753956652559904012872988797347761452107456113971461520119259755812054422513058564298219995331190002861215977171937946183524898022515138226352401008995508952024294022933220911499202873232501021432849054496767906922942234508002337292798358180288658552081669501797577038569020158299409901939667189277164823628103371824747836499641034556979714452582004486320909716384214920802421973221489547777686903679573905609440708680930558294247014472632709164753010652432054101347721265459606502356422498530747448178311571898520018955069304112143649537125352986492670114706131217405768139946995142474361229006114595555209462559749463322585366860453855712619028696935784314285941916215443448017478652916827832474067302066240514608431500029685206924343203205184553981022216656171621473293023727320971321464975800006107817722499739326498111344176988027734563825310706425436073251344325920356104351822201208188739636018211947944236273582724340830457557895436095108407292465770197528025413713539481611901822038346831411827080873917839379740717034905082594390976817545565348877466044523825754214619198543709284085395659135414965058276006823403030404605814794616581792976723319760291034002001758143776749684420537505545425111734765462608534631150150129241346337765700359552784928026228933403723633675716148007376740752673510381561731136126501773034686943921844017007687396182788609630551229992106351643115236865239584616208862704764880079480517425563279489123346216726431470774945752911075891270635077663073231625586891926624839673314890959789108779280560039405491367865369251811152453927784804465893665487757511273095637078622125556963409364529058639730732266013006047749255657016952297613944402496423566045121671180454195806521811666631341187281972056255124672493233783025858140076395532411031305985833123457317439370024210078227596402340351047393929530991909256595938436182726224656344121224023354214216148293066270008152538610495414521715063479585591145515589545895644055429754937717627226015839697056281064768670836168433200205819471595645119107744252444313833510192693111228807308209483864679022175428431855403107820802709433082993009194734522868299711036085060843394923048876444061013923579464657062005330706302818971951063622465986613868187121926882839084933698755338888698919909808264747587656410561936910284458602517450593283851220994852712892153533145418341019632912259925789130562123408036531878250518634403749215089797841340193012758884796945793075171079403206548997660455841320305369437384893006990317648658364057744080100778597407888923601016645067776637074607437781877107651587726248469005900055427418909984446916717253760040264041821590555899629923318419184349573880249538167350811779412542840430232718418045841011527052084864052741152154249512389492393235872765446594523229578631763489710487333987499186456177137629630760036851501520639426534606402679030901999721416677626562615445725864135606133745398777025003535831393044576293671656265161402524351656364395787507663943029346189242224437029611158080595233286444935280456419656863306385346308617391820568533953855331957558662214019678473979117774355036869814204719995624450953396413149583408120765684336327907175756514321408185191078368627803556699889808395757740154802011866780784225977972931877691280944895809545337443109727321313199487322803190437855348160143208500809278302237130383338713850481689649090259598027534751383622220641259549637155647677004535449122327526885037062350392305551877383208055551163705079359787503906582827403534185831627937521709979124261639973306761448336747325163247956779585473356931488334059688652464597726497980565325873252618715488363614109080150902819512391121826893388857305513053240448304070100804188857641126807762245335476194964592809203567861674190443021365784911026692802693419375307589260756790318291697210596148365873674476794402435823066206216433453172055098660791837679866354989529473321417310407917176317855872455268932758678250999896048391520417457644624395420443837914311715400450646936375595803898036297880850316185037803537365628881324578968607491396694924027081588758242247794677937240745129514582585970763350792040718062911326334961029706297400492987694435674558783033137631158257639548190669828590512214179313672803309315046354169364714745325123819426890363962426702497191816530014720134968492986218813040429993979444095591864630710629886090359575968215362895438275724913538965409222936855988884231428799313981671589553389941824969552439578882150180380843784659741636197909353373168850239004983228387247054739660383365450928268976672163065498161733290303517494421474438178830806411093052748178663212022941256043056829431873606274940395992743899029896451359456680372925925192365889180336929090379962633458993196675958773818714815410072087794618866666741339052295641251245459562120167272148404626612149085198231688922139410348684535744559594107672292079766333773435757661787213275426175372060873742612352661212567835234277112599016650496873295141936941114273271960974298370490672800133656440930472748386017751983815813705101878670084188016383712836567254017127508614891679834925015962073866463867069080403525865187360959434137126203458240786640853843032257190016648304801796621878190535578007914504986092667493123645037271664940550375050190846614733274892104128357209922728449971596306138256995199248741465999827074387969211062107207891573764475448172364621491075370729045736016594941670869206257438001225419323527435140215411434526611128086585147878201249588166326238668277517158617553809893326669639195732563606557866098888966039496930022022680015959698627424126620751186614679593603150595119074257685319088135016702820623415624676222433454230961034830981539669550141497228674761241972439071763050458991732360055289806176276806465891471949295479235997990913703084631284862808479385037374954952244379322720870975706437980843669238187496440432469656733129246994650177078010049562751755800896617607631360626736737486569289682743070152333608014813733249819088782754519402176389881604781811534785419866275807740946415866348268952503648227882544483036414760413057871746053906000246382468071689263816470004120458519334983932547378496631318108187751727873099864684774991613003775618907402786901152589782594935446397785381618222569561710356606661848944891579738325227675848314487277497106507080938052353844068448181629401668568515867416036918369240177731956359364579741451001991765798265413357979563705944109611555435653211084899667649271550539330441646078214537896455701652658323840385614932111605625391067785607702334945697904456850763146908195600888717863928260481422700637252257158445546650560353505099413081950944536413959363040395894690505217263958590516204374823388718483998774480841759922882286616370709062275882721795402689538091244860329538368244654272248180988688766208903975251464313725449196405138070796274652014628209684906801477241150199321063115960857333509082163852727376774016032936662673804985686399137706587917445814329029877879788414270990466719629775303125836905446297958534793736128847473989824564059448362098139980997660934641239472984333391400017873002240679393782560990172652290402430739326113670859021632746143281496246779333008950330616334128223080559107744871586952133620731983649412255033021284393727410469600488792016982814719212478086729110158914094483663171414430966017399194359182719701616812195633630877415610630552908383066424281641399365131184645414091901823231158244886103152549374739970437605706406748194545667303137906448007609475251953330230985977187440063753270718917425019318685249512240999827801070415430252113314454762315783728555558421249033736067635161419869824814080055444851798268518561000337235533289115984900740688167016713207629790997896712852649377374926422378396256741745943804725654605708220126686197724585490999765101586449772827006674206865535975139406188959929324345639343317589567554194199210211555843257810078908914392256072305815718817790332238299605049886198909606461473434903835992256018745726053908698769012155129842509278627421220345550861945516122470500407045057316991925916772877392981733726336368731491802204535472681066616505090018046568611208400634542891936674727492053086441796426227459763629063350918569704688799386228125358828872268434486995749851218869923492910307221444746936418654066891084300977772606674342185052025191179342478335364190948312333733006921043873819033722466322698175536901650163913537102739120762998048697465603938877944297586948313758160056017237660665917179539494459775618294089044159764456134159454032395691292085457405797608803351396888187222449183429650965917057053988507181592181796452793153469901275559493077087050333964210611029627074437527789372078856683120345985294394732211832094045056925504525691413708464593883550651177142740223748127832765140073823089864012769324357959294867832667999117582763419953212246253151642553441422208346277459197448317271253910227438897423063239955334564791296446239350044107721026957084272377316571382426888207119000895649073081000477710122396438422701045218731667244084325929774622939364764615193276898372863074547550789109406927561718653196711221794527075273323396137816411468968573335461853884889129559579364745036912089675324214414545896511876632918882816604904842215363026625638739132803014904152738609400791034806607697442163386142123206323122826878581829077968809598136456964301765156088934932871750204079716936385848866920210810083083276095240311228112462446273306183625346603480725129311235514410040287926943090123372459978216140829837324909087237855928664637542100269415185145819445948823913145605611498880495015397899016441809185184633227974628172273477381479536049411638613871612042379348689203776499323520707921655319177206213992633063942253066366700271259089111101480339430528541669054113333514968269168399483535886295505753027709961304238567373603840538087823154480844790829244591052285991864230277495429947484060018521242667560077569040493328453722292066672932430588452970907877636069652643164681094528383572526683593899907358112575744105336107611043854299670620066537258182986089245949185921447243021551141920995200135543160244502320793105427241918198295548989112995584081085509263425195890968924792735774246255789019229423301003070059695066572218950281105780311446525615944185533583276118923174159823309680081990057269321133298299121118997638346658514730752417938900025878329868877663263957140918147733089910850773255033971119944392624127641861528377587231651235956352432600544219461865934082766951499480243413938723963501187030617681252347070553146594010150790373656752636857812390912303174292696703640488632175894795010043373668759288250915092345715321230240691607265579806559933445297550765674346611684239000209473678413909708954416673008724806084683582719861537388580492838144765551783667473186664589890546774620452325375637118093033709643160085359244906285271324112545009399688393571369616027397642419639512903938695579710007869387029321375288869892559603573610764407463677772929347578529559122847138551274745401253086350879670774193869012435646596706979961058233215503042928404114621359139623522709755816073695051287642190746259951245610051885247872975913731731382363769109649382033816779492880311140855021204651211481276643887886507402397471810072925793818188706906296046938695457280135064350270151741629499280530901041797494843355918590838361410383022041251919168853062093489420427903689586733313100503602602786546949654868531152444375989113658069877693289768865728897170761967564613425198501687431619564580858537206873783239340744358045654289879959288384748446245470811203703384168544696339091764332176473418515908307793951562217085835790136089893643325042588903646134757572736572081052912998355529513838946397293669891335719933260179427865707715340686611038455503963553029887973618100231356548519322181220507197443481775139444195740225247555276148456837200950578021639313581712950898852500528242977232346198354071914036760982032264100017383498133596640109148152300469730772124817849952970093540013413810529517623956605271783196481498532266432706586260694944424958707777406057961177528284188357162745918546369466790857523470908304693445682617251236823381807502389908941820278987515530498634444155284097142971778655698395409296907321760298720282386516590411094472637174390003843048585730879441357591511537961807265431663408748457088155125711400396159929591491444941551638057021725748407067822808783525638110012515473276652295432297913812473767529309551846622103435943671697683198174515976525029864457604464112088877494109398211388732077771490363739236504767914928319772614933212524103576741721131338523821959779765968501864807908027877016334421652894750860494543986664400160067386739206525085222377475969558772947611632950284698904448945985705335544443889901661347281469482900268749236922750467035997777796680316271464913781176912940353591188121845551939499837110497597184194321346433355718207669097669062760668181228914297747308672686450272700048635881835882880898725490525349827822497332232057474844428833046976461943905646868551472944790925773309279009505837694224907975717212802603014502302988514421825114866855916068951805510166905442820712403952282804515810796782327009391904802046463541748504850724687828186152954604207448229363457540514481156717210132327013471384701653549148394367576695853362892085890899833596846105899134940208446323262481540984852049704382609761188756801684872214266875071168806229581624920609363464322938872066667988066126984608391887889453827215199972727348869766005682139302025013931210090611324815455177171518235065144286671503097642312944342873841253025418471030149986376674219067083369458981530255858720246449947530468002845587754545117973128611004403890733147753979537039386650425875894669552946065508834137867110808077648858251104266783726069838615475321187314744251293252150130244137132284671664726732765737340212368484926375135314286365483809048034353347556344824145583167062285381047458018929039174889042898807740958124208693688955742771960468348229805971839543604910191406370005648214021424739724868943608394983834733923541273187548654529054795413351626268044127301577671239782600782540862663191518133222582527553123941426596034838623886624231826138139646504640479472936701155008822241989125004924025957687785493802279703028270086600695457687843712341923151514572927015767342481639986440930626011450175948626776492989584959881403758010716082956888481049923041625714106829514880586896440272482488181859146250252250685769687215634562230244464315335892896382128588345486513195169679080627356192870088924594184758238520378648034242494726913023229730822634731683168660492934682531798745074075952549729279962649012475825398221632553358549851034394007455243016542437249600522917086368795275030202149062800557593584827256523606624288731581587643961874441683870530868171639530911839057232867883047526428946263869693993207705049812466807382271403523108903647123931256257783381356071472338756403351862847744796327778547460073225803047623600929683737487706360464402956277471246770649653724636285155278180285830020347723542768522173574957061827537226206766481449013269138884549836557782434963780196002029310217268975713287787018133918231632669820194989985431027453749372363917288612307930170975425220882931093763449829973268281725946710278743356073963789577432801045339695054912284779483365134817303877659946543050882794175540860713791388408095844037195873236581077680324448286664581305804917660703267332597380736078633910849441025558226859191168183791079972196845577491872218111588487323459000597110165122382861862486348341423147629897362633506470446200045509488769504999349055439376222659097319806297140212552950506683169713093837616837128069995908043820842306864842922241117258942853503360001657867914768158866648795387617208588685491649186221793461638620786996250610759024279718888848269735230887813790384101971962198951054222970472021586580332584361221567895605733811956901223453655972992642831537481367340543009384973338329151080312807772008421869269142421312724935685203805386336682621229628850337710507214426317941857715626266843755335769468325599851551837350731774081452097031179715770497746562721061015928261473746350869445027593465856740312357081884822114108832120585300692176555507437205299258432796034729011218009085356491577465908861861403613304727537568487401278314008053052609148358120407711067820413260784756927401005740191909222351636089298994005791133812197012228968814527192956384791215895821476652507154348823462419215848448137268854320421787575263411584061330770207147577270888236264414710417763128094816757831353696883861284481063794451829409001236864965620564229699710883780897667087083843823506934319885310863910333621251042407774428820353853970410572037225273150516269607446802828109635327615078131202740966268229527525362559766294319656021668135541590345428558417721425975225356555158321224544962470989720789986095741508766563981423647561412683650393673079126539291046264220166150435211310640687851889957840577622381225446244366594681626672146195392382788769756202089558432357160336801932233077532677906536210624873299208133405107484768304798727810449793592464329853448204542697379941061729249376497475880449647829387890439464696027643125708106813800829442772570225712704807421918563355677466528214509207105611050434300629906275752685724650603452557672402808364993019022654261245400437729828007897377827218461408461713138826637315166302807013448570154266642928742213542599776726128443103757272425207136363841472734794447682871718707265304305083978203887775529742647105985275567331472694301474705008906349770174294945307774358962364085377902754097165831889469606193509766629418017290056687378560600443000103894899839783788946240004210908710342729635391783905382702798435993587963588809151506042488175947537567950217984795673330822546261688224037753295374644411021157178845657763968071615100001138365910758550028628500416312180207520291781315889107398476606634686797654716368047216926527735845824370294754806407662219566468200244849231302496816415083488155202714489222477317113483273192193714335631533811420208134060468843511752884272848512790328781934731111487244779337118153225902187354695112246020672225576985953697764182869281585648697673521946591213429513042083101644304834178955355743280039635879096311247319586698348679658247057925314731132821002751433572065932836886007983030349788396641126608797867831599548917970239908132489853979859402616263299191187164442394947732331172737610641622319214497256567678723307919756901449349924490655663194746230927274130465794664244391532890921622685226304355813299069708590530121799303524103052115706285228094489184130232300999905315921892140552654171554199349390346830959242065618843586280907619391086036328722159085009878133221193981688733358151030668699291920266218188951787743259196965232046924613011995226206992562834859460065754821348623035725110366926293718919423051813324773078446246293633322079648146038418344861694399571032617830723885699383108556771656515772747618549281095647757737261657164208199030178658841122490665831152490803892218999919090801723714986279663039924202895563772616871817232603375912516624250533880844740571017843437656371338801901666592939570279989091466912816046090073637828762532164127956611002738150916912346886032747072708622297511673954238990421001595442810194154281089433529925915038757513753768900238280701427149307969911979531382604891995675352858231554147518777765124650235851288628968639252257014656984554286940347715463138970657548338782411843884860788944380416944282886632632593177907730890206849635655752768346314041734187358895925767388157864528190138439856352735182065237848145179985053371649104471739712233804645416590764577542089407743033868038932164420989874382653409184656863453541299857963716269858752316891735903481513754474414947561774742231291191645314483911840994234222556910513831694750888550036660385766450671458496452245077824642151740288059807322435903837528323622602247394018951231142311688641800769786824759759177263936219107523610960555113146695465324305737587582146445879265884498678724900718557335935554379587567190283733135291376162274491970988418900390532357009540479492193660299087455017569579221685219246140133214920073389952202652026901896753747715800586643063062194061122475312541531232392754635247155732245337770438149880236721212986325884047489967334671679269412227089109925632575231276590234113563260984306638393956027875543812899540844068052659697272027967117471580417584974859093669792553586309549068065554673586986453937731429321616007307399760978097834597459254798351917285684837665972870017800494563541959318503250862694545313973814306648524660109681206922435329034514519989180593356841868137260137711131611934759622593575127262044105358818555036456605297218868880316692996016534563903555952353186714753540165217700322164266952176168403933889663991712800678804955005210324619642484697754726211622616689307284252597379397678604632128665870462659329268629753164792799801656614302600480248424481412423078777433250785977136482156529993675604692763907887390373120338610202513251901748656005180411112136460570471559875840569541057940966930371938859695571490065255016211832778703752868836627423760403146692365281992566942648473888572924718673118107049202744215080246517246207629233778867354415315451235882795670978073412630979601535213787581187610686179776139642428273320445338321250103849167748798311468121606998131206853288907079589782354610713168163368467798500561332717193175222996977599853033070862978276191749263465503375066959810677624121341848016613232153479983677600379903081587576078988133935210758841798547813003988606621429561894277823240307139460659462445367009460499301232957300525279082355333492009903076504216993474338665736505954700211696084433714488686392232345454628986566973982389835751664137283186685772195211849021235839995592143209830490595649770239749677935100810010085539274958701762381160966297635826742762442256013381356949774413316015558179364645660267844730970876949307443956864249885667040565961552094616952318011429487238377724115403330288605355791925090572208565208694277483700521024443722825381939636075560911400200792095900403876097178935346449537291383334211401190621012519207016478044487964916893920210545692287975154248281063660427617020200188746512624109964849009657117346980918004265769666296072008263958210835826103371092971769519276880017934427024814195161822200369649202995186236809084362253684914536446610254834766591670224178211667243202274441366819343815535963760678227813907205027594550108075948360599444055711775649604073875587153033208640859963850990640765533981230552465982615050674335035883628493025693875045990585971165687111624571524552709095346563815371768997068103740517000662784535158973512676016579524329247941874337437044847685246490769191596539239958410532824489864083201361044741051849430195801998491903688639290116035987021598956578426160786089647394322838061025056193375643700647274876412713699425856809569778345614627939811403222952714578705704749054600923233438390850461131705325223767346240324596137085092511800992792846088205540460253500694117963297125820573964388495287099581367459895864339072942968072580290399243120606017528754596833744357081747143736845547070773499863915479739037389854988307208525060558144937162783480899686140332178443946989935606825955307000328963604712792651052999194059937790924468279811211812018762867881599565457989685055684925924867476514903490550618388594814083209014562815102861022395217911328663713074499006181871721522633583877307592078153727876100603644342052106928274483154049124229909906163216988907308176603984253496409563539726296129481422331269128887388823120010474917131018287251000428218097823111259332964039979632527320899461125738473195244525831624519192057472144755725117121086819441043710572877063686711931399798751315845884379023376821272868444030885077172471618662269065780508159433828653482616075151755089885149674752219331055195646688084634701524767417804901884654427202798548344475121699826418231186830614835941322215560644956194132633582773152391357668352200301242771113186619388812751369264232576138057633873289164521850025626062959904874090417236396207035953606911179135867554603407152465806642252997366556916731168239444164726442661482039280742294143552735418548447863534842962769784599451719585455235735686883315350159578196957461209834634277500372183852385857129056973540475514015172621115750058175571146135648859455483193548286596425526198057470925640181352665436589026336545571947263344091325868359111457315609073153374020388020198588099219692265501071454418480606091504402033783366857366606415576517778107365591574693721131119644541106845869909157358745396791775515544953218369771987274187131574556941171648264978630411809387767815794082572097388533215713294621543951848875802237793457488087762831930687832943226025344401884980524034720865734289193421790064737440660299928462185855914170581275973926689509253795653240924067986431659426934430134609936865245387154700009188283797891384274659212760953915490410308549224887337950666909485468632024780524967431590652408186883192524061818634142576726018140277747135654316612459428457070315634370344594385047256566407150948947727482005119564304691071855319399469927995148757760482338169635663580509610253778213094458060216628267746373535422375587702997023239311987601738087044560473616557707217428837629454076462554222972075652142805530471215627853577549070373072626316736951160076462403987524312592767948952322322952227496266026282498232854510621027535385287634028782866647382131036488346972729455196234905659693858202953658178658838470899497576311997017277290764088811356289170637699050275649958177228605626710016207028983617065951782455927857930671287111968418091450196809825736244067324776637855885565752554471204943354918580249797171133301390456149371328698582038827902733252111591855988913378259410663424819560870615206170308748865078092241481210068492214228401769739815362549374375818860389347902188474898745832833587489807923094346091150015978963572087153275743413439845390780127972490032411481193717671401506587587258989025538429460088770269076027768837222884026770353301876418787205201295121402606247196033172123661891547450734437575868258001732039292302651953834852843077548292509664006250530897703852458939947197314985096136804247047763698522180035999221016596731906926188625945435488686911347020501835720763239950082131437373193816132526310536019070031708250290035244530688046739684618492332599995750898312917377297854499196927580754466175478736044223731754913268544118343745874251834625790891295910752276340168261770095644836631334096429435917547962415677628241314084158977630886899768821354592076240839978172216028552884544125133354806655408958949399355074495152515280978707212794390856222770739867829023182991955320691299828573873200500372003289704177597701478839515749873629409553153244123246920150355213465722079361091210177048554053263186189079029819640507565112475321861518665612982095705465949865697947076181946244869993826042672065872842185056468811610375434757220173340902337434713658429588005439607275939307714840438689301839814078291217017004254879984785688771565774036698874260663406533771761225378669871122381430292337658338104346389047296624706558775002306139637654601216576201750799155690509075501352377377826298159315306706123664809134135124720666514556699120165844060858923304148186811966288679917310860310557888237134050971347071998267022654991547697970442944848966738391711532693143238148402518879401873079592821462199350252812624316577524923650849558319269008516663273664551293307599821905828947239894647802877470690869294678477673134213609391469870902400411182935036361887675864853645082350129299526921979506719798346897611088659924034491183259408500081138890783464583843952991806483799328252057671850171061243088968017381387684990416013558751993074567496349644470109258698627554437514634447070263423843380336344295825316249561762745586572992979207947722748109270936375404093077357550874794074311284860201512277815671742132549305975947496995279046289733975291603312925323548332010737183049399368692036583505440345683898389892629534717626656590644762502468004917265756693391592533027846783325755803544563028267707168588534424598194432115476428604060005493617200570267615792699822590292409353500050425486946339096483347440931712476702339087694158939055519926289737772314800256540987895717760358544424673952840466652832815501711582877858359539437274100382806999142627303818230799754960686109812992472719938205528374986899452686433863674780553643206378343678922702905281225140380536736824162434103776054253361511794395634288660170256822854698625799077109411747307521364510872706255125172178001498221526205569478958326497277275182655984846316488652285397681853852215136176033185047415913527956922997404900756392410746520770473542949769591953468138311058347867138435103326110933193965053588289514120996698401503903532140658369705590377056130933843501671857682194501346125464047857405240566716325338319774555977785265415416604161059587253496696120040404781691366240596224902373140733548700466500593654023722899069114522247703388597060132150705687623195266720186549371080570211604235680626920330205084057744583138021597717611210016219482955492645944594398181730485453301867204957272748226074289355542051725528384670442638811020566597964322021518534433822343501906521739477504180304409074914351716616598962143121080515284638535843151114909589087163845366394626235849688821424328377338102422497178977713164205197834225787180665763102511245653027504557007150381361440027694014927698295416505875786829275453417920080080308125843828143446939562197507728634515428113939691297388249604343118963677466263574833779531160278523284345983622742478317298601035930549142606527148940825460116600189977712716960899924007612594043934281425707485362077126966565309012146791222004941750453957439774011125430717735273104060887691865600673200666826227546711226457083060023017737618658020931722457647598010359108456987772064107418760636696414815612786924222614190395614682007945484645478377497500788921637000464400731579342146971979060277227025723182827729083218074212383974498424682631379890344373919395981247422007806894206851529950767592850858308305574635761317293921807997966669411974630059548662341477049536761854345227838813511460141705550041419319643171171414781434887478169680636806623911027335705481544588674311053056447770420015134569089108321857098205391393884782011402375075304925671026285704353155012959400875980017406493934633983892041657006999248774208577610062121883456930524153860778526082436825756112775089153919036173735017093772052315919779193435560819170326920835256993477302689909240336843695974997079708837841057667050782080400196324375623437827891981565103252347311139977273289721565315433753319307140366627165892982293734640452680858820400537451851880070749537736750624731614539326256563955173178779587021539919891154060536583844594836319936657660099749216046727017777997625173823863283494137215249671892593287285934433120030939468926598493407181078952288507070084523944905292391999987194497639712188003135445160377793519002432835793485701926518299683694692516380365649771420830461695973378561909037406825687483088068709707311250958788924530905737224801938137024709978667237793616045319013903913032128221899526271307439127099909239775331929257203059837373952415148192817961778579816303483318415060423457141162729972445597549583696410551966906463588058259076609194192757923825233776483551671628540253186107383731624410510445270186215444458268517415678441955172831223131004231638397793619898401486643054906801357160841098681378225341604623589615690797120571317927082497694530878133514083734700850318232968237600542423488513900091923939048468740389217598268851618945381896175885401486647108591660044434909514788270570518806504932897755605922725605763094907278152649048935199933330248444678005817596385235526619689333534476633824573121517364627262108111126408584366581583394887896955829028620129429299599496841835133727361411171696547693514950847388778133524630796952099650101348242627957133090748593009501094457925615091634067095643759480691565160242165089113936915118043551458594263986355053239847100067713350212850305763961123758097470463343757848941376473970918373104515474604784406314034150349988584559929489798532337961536864475318027976758593100493575932919028128320241268913961660398509120309379307141589075334064316593111630950918489530936079897796096549465637239862798681980532327894626951329750966642354079298466966196530101417180358219748305712556766728132445631168754349622717481213312521888421466289772111706694946571741966071330428862549387698409819586063615150614521378834233898564749010198559255831560992870988902140791780958078425397130848070134961936676587568281799105696951520784249019613886254929374837280133546128285047298955369560498111991382646178070474085674277000695068057502927621647566807366264055115397112021555133411584690223745765708062821079143769020768409825414323598899863248145980263373146009629720691608102681484819629952229541259133481883028482435887749996074884524507291061123657882449394056237886549787149436556525438264776163447968473483801166254810953228525910708132769846545585213828796966979739249369354395416357643133410520544603881341097624891073511015109230791746110818524872278155215740429064343900162924519793635488979826140655170984620645703491622541954177386505806678530391420935000776412387998590227528351986778011616241926910749341836478901673359771968264793681974343628076708283050044422900353781809427488881486004034841015785474867001978035294515441324924274439297250748410958520597948477714542367766894590193156347439442241475184430048258234099844234166488556427309251146222794908095208938748323618530145979911720190354609469516115880099823789237461728525466524075943216089786633370259007477267489433182521061496960425695912558419428443971708079431530722476153162118148927664234272205343704816123675844333281014447657222644313122170559498238692694020176030767643666010515114147308853760575190749147596357597188696096059104494083527655215874059326767773368247353217958880777323262829382358165280095994445048863714282820033067081768915202461195901559222127837916874700295443922087297829263340509860788933145654417723561997012488809142184917346557855810091756580182293093682859559120745310030815051216896271784171146607216924038316470714059360010032582928202410119921796340089415887166075209156637786923330589985728000066223786694781289187970008630974177833095755866444772233326583891676328932147088364614788275002855656855598911108662019652949757221538772076201789844132730212137947301928815417552495440434461004466156281457523088148487136386998356828810911097187495840867344087598821600857060412010684644915292249997604419660554043573778113540285651990506663024289376087821595069081033778915282249438586794547692951298490656800029811377259745857980693963714577319688711903527813074814614826413032415595485314898928537513073219789544516068395293693581016766506888670148313276592208716688063400619445469442038809857045520557737451939189432873355631517523856552014127445539117098116670517419574349262323518367013367960281556147234400172720833300626739046162586688382506718731920886377997766343341287986832325913154052805967706302092623813980342669775910880686478160680736442568526523966151272264146749204878407539136669373563425490394259605665403768042931548847530113903391028222610405933940065522625746228404324009222244279983725339662512044238800185127689944212774820216889328174847621657902597568293725185096899065814179557218942355247639113050898580229231877015708512375284181694026081063676385892981985356473592678163090822188443795915451976026635759962543558516078076839601442977682896509768449422218200936298805365817051533430776233004281763942548414135309688240394563727614466829636058154647641206841311932465740458744764235321727116093166253441418030146247841124935696031347473979670285599765307796057061963409944575846671924655391955480230256482588933059377509679933100824657571506054492556449017271733335477101207519220754541692245054810056159963066194402343633178521141373480709786358270046939441360840896954735860926912238994599261774407895456234558302570473867471239521941079583778386877975048384521243119467982223419709956402798102176020366729138356019813106223142427024229482624943500003377315451511275785176863557372384489332030800090880303766404892525512856225479194815864428725428365473197135631598369926438348061882590765312349147924058125298450386944986822047498840177275522110037485869900682957549148176260239529752619501626803865562850843611955869336912362299522054579933319358002558308240279129278959406003852727820272489532647948526319759497875008056415955607679028572294185951795600522771543206860018180586662604008672380572964468461439197798641267065916633356800865466998185296663900033384276659248595286107401177714465768112495841226695052322722089080590645943135799454083149796127490436401055707913455235606161016765867555771038418704120156244120517577247783384031551178631284062611239278282857923822785949812170003008965407966130385707825929362887211440060578587561589441735983971385965316643465108594466042164880541846451732545492558146274001772570546196074810779625380118257146083337997615328022002234196788941541878212919346266780496727310928184489179137990948264569192839548721753859247198133337038687720158223961252245087739810338338604402777266903720596875025710176522053411447134369036435053500859837107651815532633072638921643132571697356909430031479722669041516711295009235724793555504889226937988152378111862547475787787075309140685793839239982358795668528767801960549845537259930880492252047155935199603497388028436421599809197877278366876615654380997688886461995394196535982574033598630539881162971524288016565515490938111357108029476243958473617397472537315362780954868957248065864859968778940614154615207474776155594418532343192376410236831599829290815637228136798539517843212214256333308079693738153032083357143513880206045467949249342760501018274386460436305123950815075143949719920469261860564837604595065160682913067390230488096477089295672177516823060980826089429787924846180361785193780321341496946548390943157404146445836620872735361102614304192303015003898034323564643243221636457304851045938730755223585108807785658656805014255675823421859735408748494555983948820445215021327413235030889660102589932730348456165391413321345507795099253003601202953557958661988763285223053081161448758752378729956030834317098767516706457291224212262921002804486036291999470867100411568277957049401246487129770755856547766505968537497049078966928056893900813777911274177834074669709555948851307151315383802464730942030783121273158303863579358358949392321224554491190768804905953014412285263912940468890664418946744944239179714756034539702706054193675191262862948484363597004306343055380018370842349870558093688816690205341774214838771017307673908181617670544628925969470855821394581421458605937741893479224449285708670670319882808632904193586951604287358742008500381876651423046969422991451938608110417509490196928835038182493186412422581169444280243267731916635663913602462290644213031933021896161614098349442457062581796413355713678346559892805284866811839831012327070036351877479665392139787219221467542226072253674698929210987390552987876384893261028963610633897968522772886396917090734517182068304116046858910711459771989409408508806742338533596184643413774753751782571807796163692314363149334503037053711251220057315084170815436958798005742590011984851657395314533623592559226689365414347363467448284513425349483475746709366902350150171333316073452548477308692432206129123515877689066789660569356925231088533800133451513132340397117136921490314240715992640213306364865376548635261866397128702994674863176939994112385441721840107880900453422835845515444415320025015061703317483005826474778134332583238522140792469162162087038000980663028862087374095824442193153848939753318180186149348567100424959087937841329510356876763691070518718330665204352926485399283461605436811364323703399791176347251345472123558284697274514118587464026652713456676046698639921189484238306101569850681510576900595153493127013148485685403831740305825729133287651883535162166078977742682886412496829882736283149155518740036736088147266673154654195589970319646799376738900184311958751695274321747082552382903637431445972539879600998425331248660829848657775686411840073448730454752648072723705058625189927163889986956027415703398226946823977164818654554652917398011539887793959777635272388735325758607990371400654689614421645453278962255651073687641391141636887355399018649425373748465336118394021631732463458915061459611384673703200278529055987747968465826454396095072320541606027265339892534531759237979453581730521945110702554442575105039205041217661969710934852823830755777177352551754695058371850282502999781727217657460793851247178460175346002236612635562890027701635433478913812976184971074854990492587156569414485431917467188182395392209369035945332762148674903325378143207643187931893658097865109714517269269497925066780060617248001467703648609112815914607419604774989409333372898931990341889500548966064097669806287485000464833386209054340192188277091614188213716633278425923116512239341036972607051295337066401266813073489630983640488527912286244130156545912800733773034349279630284050585328350492604852994867719651219137779791210066810875488204772738035182686038310514217181551247831075192123143480887503065456499310201557553957899902315120632034592033111211396296828770426183151634325584747017681796177771224785267200778089258602271957498871474406955431240778306768713658506815655192719823679928568327288537851707960448068555774070453541211711789383224793314216028100171785323482013768152650910660782593343508856737215991890811973472227000995968752026423740994629477670144776178102739901602706794786711652944493062907050451962399210101581979387528824355806005102336627345877046756879638710576077049810339689141133320403829172372153756779795714665633642307959504785185689942499920329736488283266941271714544181218284495274716550784080391074951099969105554552330661258412875605490311263200329285906291382148121748323559260752737052276248716387253893720957781854824977494947699198150505563281320085471272976977867399265193723429517060989324679529409866302124293756824735480436187883975624758796322605420384008271810721326608085976847373080386998377234327015844017887740255102345665335853707332042961991971357750364458785960192851694273164578874430252325716861969949282640612772320963803041387737258338806942238184763435354656780108100411542448137534272846673641433729584638307102454827054192908739391555689878265684933113187909247592187482276422069618374267946487485901770992784846048120281160259843496862990754251380706653387672206535719692542238499317756976898882719091782110218587407593296859830201739698082110598207888967251081885879462580330114494040079534058608648279286566668933388522089077031958029604872841334446495556948931723385038001335570880575001139436924280586569172682526519936227676517875950350577116835976059006217666655356808418184092152778942988854427814567033005382387947250823439684641115889175305785162603931836574949842262142511254248951367391818069578034260265826993789005536821651562741946534625597814119499989937183609445958608095507505498279591047429887986567986068353474419255323360642101036100699891623581233065780384760329429104434630976091158277147058188992650463023924547699144956076395047962313861465134170067232371040898842801027281717692565506338299290903601891419889274154832515826114801463247130395657468214687612387099301710690908535825087707724604601928534983137966275426713708590678407824652896815081608949380120442524033709344136626671381868729453460395107646945772442004039610945767292685577388959246871191642812538528772417842314904614959473682754846379864083328375249871839202693910373524188407727271451374175626441521330370799548018820715165705435193602664438348633560053941253828257674210826368892714604327291824853620032044343907343791871371984008417072013070573042421557605615727807559188487661676827389781542848052296558580944515430252196949165485646772394830327714651328092545629874984146629353150278023417257251063931587013473570979785607281812377318008205314381606809417306443925960360674661372229302805398971549271079917599138496891408891066778368076153813959673889294071970978925548288494344593993910403539224403406799739106509775435354561386927789439240015103665660444355925299925843342715716441539474695065338351979574812709090565810952419531861725274239782860699501986171894616159999125494724302944657649586068996815248663170700761177556282520912063351617423496587940145826630245700413518594350556740029731480036841039934149671421108775812421535678850568206023083131941621497073989095496143880692835462485610026704861659800548268931150262773100072750555174233937827137237214239600153788554555895207525139216780588843448015880554080628957821125751612318998110699650026527025748554350572591101020796124749084472355515025674347684055159375900082493412105443891791969540206355614389238124358387829140436227994195614724540852551007338701501372223510471171426505554561719421611873187269139196034556400575933411215285445745804919041805931422693487481118424915639705090378515226692768609394522263277109522562826804167059839969596398119068239042153714307694346410939785365253661384033236746487581150184763865210734278397621202438045277894677944661417543531305169946789585719835343153160328821443436499939426118566194402355188578367017047894702282864614730636274726425836103664036516500766036347838439581452271257698091776096110674733736305271533987652181952752698635495247414299947794824460345343600494948266692676856640505087039215614960708749702211998675391415839891525756169415987597283751310997433182825354106180148173275403154492397053798449187211811537649612836062358295226845731797682432685653693819683866743415054088664514533391785556523903418700258697850657752574332360469133054302213122143830287071990801548491996350721800732920595730651544002397430479519296693154088840622612693345058440164707158177736454401124958747980731730961241563440014123071995294657125568291985319106177252918479156216351806662509899025654487039678553395374593926499075656000486098969740533678272957515414980192099718810491961531925069006536638904685408098893541166987912719283244096221128556657910004836857007533145337442175598795506928058339584794862579043401361051880355863231045388563957231690325981263818666544541907349749232818713157905871431971104426192308252390891488743756261128059410593287148359221500663842775715028086598090430866923077730606372916593478453230257253875613678082400409676974988589414979642687726130510973732915631866168621703029547983568005828641291602906781879955095722956522174322181332086159493786356607538496528183064212621048979136281873159569623066315401155122065218808313081953667735176225553294799510482241065816034306195948239873297330548598551361415309775581767985487922124417097596172843571384100358532332634135742678318930617675127929984600674578146310320722635573740669577012192102399815344052888664276415530372284415568285149335449158980571764813456472965918613423044807674756273701002321872035976660408805575382866764961438283288116027529292208273498347247948993586449837248211413815796903611145089921734194913183478054763203605984854987004705730524092274144011270006217610760890970723505001117019533562289306384170269588669572484052708178216386617172500201130991054495437933155362552497196390781840830827647959729265156201860256993061993025540492576669284042620880272687284353221413228288622954597662723157801699765133957295470540653592426715889893168340027238294787196696685891829070063940520165248234288346474463935562276112101427047371838985297951061120473275842802667944443341036456167366165497111547453396074168183887631433853383287703426157971083030222927472763513358254477686163330583005698239764695468803824775737484027515254286809660414008679107200015395415206988733690385011275970374602192645467340810815774665454195449297847724482324747417451180454781476227267611312025893774371758114532607843120949694825467304187826541974447122956879515256738232337021682681337212626441984801079899055056119920885731853237702361022464980412127912909132310370947110499792921910187381702998036753783026932110018755598317866487829122022212310313080019589132863471712168602341380977685253181813954843224606468316743558161695900422699002340371767318535268787692955792284609333946520371071933280022810850133161931367770688481140901324856184012589731682296787021393543602584083656451413760889824556049519906867232413786334348663868200224864728696844466380454244475600059061211837327615921067879220079008791621620578992501741224132179088260051112619715759648543196482940903595484182412903808966646929465414890588380109760477271156296226113074463135628463579759125033751866418425525476778226145412253569336009092697195774417986780942841179100471219693823021788479208416306796687801320293381429492632210766555051174783282052653840555028166509412473769281741912957594896087484591200461075128749436018169383109696548664601277033268365356176416633139692717865894525455134018906044871255462879370396977187198033122563452722021656023053978467063817762753940329894539502935308156391132032031180834059801698755720323289023434141965732937479352894706956867125231202865766337243110762536891382467771309776155511176532741068885058849051167375394262333038449123510755362027999694382950209517454167170011496586549861149264805022969746480154416322051209907095419693951954110480173653090458156171978963428259857243588577786041074666993396225810491671876421519394559925526363205125159577789130756744169066800768648284538574681299459251861707791958200173837222455609643493075694955388206097696650214721722275121867097151826455806601259195060864570595820523504754519416789084378700910320919774680232074641233755346798638403095089190182602713901978740707069385709280660371740700781365234513316158759967325302716492670358635806380547539389303458327566848080404627274036131617352804278149640239624238861760375777725304388850660861326892029878856731772768930174406612070239854744182393702145705443674613564108022067344459890661098970654076616569530998348764962654722700466951636953512181599095274084154398056222445015226624817632539666474046789017030097762109992684904276646185054845159420825305465255689602225560266920240605884567571703106631727295026669320007833193393520005137750353649950382968311723511956091011193925022553633213341380323589310762158601232687038012260988441732530123952830966856840922758791529413686534307132421173014378907748744166409639138257716482335286656868036015049231912893186295583265434737848614566733895891485319700251424072423583345564696340246692771063105222152964964397231074894915482177217008289823548114437739338263262641052749345661081135838371337839395157679942507832366680448420986718866934662460635301035998450935153521884940028397097161972798767219815598682888696254492462652039199284066451912605226754667244538770027703265636049923576501847553936373243577886461488389012732636417619847526207740843811181816950840065759214862664316151188522661594537222452160904552756958413808787204969361159359652447390887012266493327070365267969351384883678451972009646435075287395370460041096676475344930113489777075024321381741250832550659120079486198904211965614061942219924320727549402476687898547529612276315495631717547561856375451052617097806299735190418687558945809411207358789398860075775780760288293456849379166159242305298554747606674210094694131069225389905108468484431246146259403654400579805201563059676472611507159163428356737797705895590720423940555367483582006412416149470862308890257197186906029741558884245732080930390369715944982982068216581793706774169581615049309084135938529742625352029976390609105661438391994161517125742895482339754596144683414579488900069282533391862743361799690073428311607519485295869410014963020032000462448062167059497190998463852851809102166710830404174817223769147959538457960789160331112059135352903684670874083851559199987278921916102319104394250639142598133757018176468838667093659924723780660059360097375870761066948112773489389938963511004399559959342482550930588442967957512897688087099343916485268204370780041242056248850244005196834415135705205791468248177778222126728686505668690968767718274269164133730360689410015220817977943808989797129329810465881936509995448728057599544979782106836874479247227201646357351450022734326401865062677504913866507788293025221063693101195033385079257882839562083051174374234770942894975904833028285134832655361708588164280201879171381790434309460035321113206024514901902085608846650582045980115592002050324309512952299936905481832780880046134219123280240134872599231052508737515259682203737219163303800302847608094362192712119121067565052960837721712142077365025072481270351832822960513968156156211008744916809990682839280564202302989695067397663225814327837516141844412945766977924270104087818092674776709261177232630358938177484584781091017221029433917833105572180164665071498565564900878054641669418818958303095714179581886709530312297979545786042693998985426616237809636238880840645845460819694419610964470251508957102795831896082546254132890550059656258794097345899366409553800439746345784139225512595136654597163902752353226177693461042841664773014780798639737403093708155631601174811943056909824677558879152963436912299090250199851044885746108020059637312478195331031903802399564018479830033118591400659776309575748413009269249764502487007128954100992408377271068348618979122162516240536562314002025338101264154422577589097960459642030030648429228726273590133714478605056720874707297352541610491949548017167976145631768400169237505374339359650304410207351324607915554571295171759214571032812660221611379164847742451285752352494438368714466211557358262534277170887041094796376952756761299117793329759103155133357408710280296151476746328723312753849023981067574330331721283058158599607968587202883523489113239151870681247582301186871717627147194690614386068350438523540005920574517813359131640892665984818018866992986188509787611779843982139076954576697068641455727968107859297912614668901409354004933146489492059175830195361251617821425236785287113320099352383837444975811104150644854457115396077019194588558722273587180561785281059417969008325269196461365308398976487742400751268639722828504535784025012020423136020012537749747576000408291874887137695160015892031363126988653669406986857255487517120027662591702914324128391735994079386789513343948678580873332538136114574878361907383956157803059801221469244569119396097041028367632485994942058045481039172296700616705757935962259172610045978463437064076121735175794333121810354862659987773503631050367725011667739762375786131437045711929276643738045139710288067220508922176290146475069384275493548026127122985049406222974746055259240065185730007265348086475448461732946192517975423147117975155217888811271947670153376878780755202189490365712257136566361019021257710830398925827456639675144052728415728235698085774579079336096633428638638612829978525047095608755701294539726875941172754408305426898843430631786146888167381801178569225849936083073344703188754865868540435033598232024568353219492533427125147440539664197275355745788204164369713436935961594668997191631342831723616946680148283144870365230296234754151238106518153474253238343701534190187933935421317978425875214501884204027898265121392766844885124997492824075449129014059599574349519279798356412782862177549247663127052837842061346664798789122169243491958664337912342368788102912511776195555381940402172148658495806289383898028605302436815930780771295688357504623191321686407076027521712060698885840867601319897621965472498621509385950321458162667432871336311481052226095931062919278143360268109086695386140907438377188317049449756274731608574744837218207468143232899265647582685835096178490528765208390190582597510665728056843231041481689280040368446194903919097249040108931234873765222558021601893205736979922591984884814838505640506911397766938393734522840223633766755376246821867997123440573096725212407853769906168038872796078881013697302297510572532442947551238119468421126829783512113996970561048907770703388841179357946204536366756443568747411604540705634556928518386298749385990925523681744644094552748620075231385249784409193126912121317189108093756580319336035920103713969676591285978883232532989896801332363187154810111235972531147886483573731890902131261718528258424442579113883371111032259933448399071391776998696973857513382353602881903848071544786064092271174325464505154677286481748871011425216720134313156466479236727578786543892854224527545724933962368235650789776805368623194944796081104868205982442445971943382589935435054312607471187938585632376533504383589396710650245078805384965134465364770658104921988147235332629604127638584184821990337736836520243111324796192820971289744130133691230326983048560884124719694456370583356910765923761660713301677710349982180998926720393515821261541584227563623446091410672939771345098707512673570934223328099424238677649573492141843651239345155070850225112284329090785639983800575126201169998034474998382409437767234870671739179772150972661832768104744780127333120660229047280879973295201066038373688705533741457383791103254454833078807147136607309150332649488902398856454526498646319081811611115460712864068405430674732946746247400582685979835853645715870064035551514663644238640742685004753729368818290856483051693671199283968894710454812954421021046390733347955377228756080915407318370765875417280531428686074344116460672952868700816516761573938495499584440733537699263674191127644413353853813039748003215323430933231004946367257643746819586715629040805199083037432369372992466199157307411787242098866836635318426039016621897708312358986655664106539542429408782854042561494915451850272332096931036899587065383095893989942516397618538360267948171649478238928726535763983742744115486270862480225343970519759363768934455210037522435434884310296915068768255123978861024263415449541181522709181579435334469909670970567397930077133701730650786385275312083487269610527102722661968235529246414977870107001947455048428124357252007797502939062507501645288328110572567712539218862586296011522519386330738598068182760258109590232467628391970196212506623485963238201434649081673671687679501687058403240320441144817563176526666734421405038661821295658846032560803028303710864555474519326434931956352568897584817011593537502368510139934561098663397731210406592940874430662469073312130539371434506394901841196356424113104169654783058636813938863052604489215851811239769177048143595928577491834756203732717659717426439088886590695472757581128027545840928132873442409473566838451618809204776678316136828447207722742408982732547996236367213410923805442188357806235622444443517435054700647027578023844961164585520875762453301803779599913255215482322602154587433757487082337362243521601080691839631311654707131236086954433422754572032663303079519087294597653144387543587755940721680272059771720415520738174445453433307613214109980804637312889192637916061472090360794051394449505905189722651387975382761944528057619979918508483834279134313052768132423889565161958154531875442805547234284265776029528650020884186293614829565508484447312673809047726640387112103380934336306986731072717860798846786383415024045366939772888966312409025896750442483545295748994830918924922352481390127553323667901529306872835972405253479148547413255457379515945034486677669345611574451220921731443157848407617378231140434219443927407710987757611335767440556786766078276223947352219730213099778010171281762001586929481736786749488415391269478293618872777964589055094789953362110108924596596494855940012229233025544473216122336585889453852490477523334148728630914218692880877715749456847849909743192751290354243019857839962665139138905855556174822199370040660637405675942904066120694529707062133328308299367547091944996888770468741176091817861986841979831246113574649877163404888728771265783501523934499922588446572048113249997884439448740115183960179967729102456611037619017473613299474847222604977745142851342858451464404712892533512802427495339613999445907073900194524833180489474322604638820656821616986839299189690713533239866117572108129449187218636726707143236204146143726271660577458771997051702917885300361194374086225723178168899682353069048602165001045674303992818865370145629997638531079143487050985767547273101592554843032396064289067350775438458817341660748707121580679260069141059577769776785869804598698188490480997649582579248325819896396759770529736516973211418207587262698366243691524860155476632353017904459339947930005875731658011762139480792110161039144235748957517858675624991449390969872446436689206886999654878460225851582284386978360889877797956412584703190268064251456263322120229934419384422469209589999176228159874172962869782099914863113388927025406277418386992332352547995924672938447630430113700617897295869970690545085868925289306920308555281095916797244064302187665162809107745955452902247426098353232141983146538451256220352567014452758181072064332886061597692098835636468184868369311383051845743018994272354366592747495461693870678966038518882833206667388364585178223664944082886475850310243572493121813263322265519487330821710009896427437862724317626512534364933289113343787278379675566575689669579755644835810724724258859745584970864165290427741443123333969451137726814475819821004824506353017397120693405648481176816283394664007684105050492405615360744584845134012355855057252655816362170658203358158479527814320535480171322134827303129650553858026202537171500038594950487476071047724943899975663572704354746544939611017717638106288383823893433192608575157464694232327205895413290414324009545760929952929582117517463204288768146721541299506893769275699189162069998724473834051683446975019912658814631540252112100934681317126757160332191656977216157440919942412829154498618095956530174856762275821596920495858482341620951436435285721218249357291791175172856292121028584603254117319826909032696136241321670371814010846029036076639229065569551770262382544160791341296213617196257117129011545607249886826841090836718604656492075983188141091623328017251762711378296546351359399358135245146002547942228220163402202100591336448649277566969020138800062181593409457406189986575281858215384335094321676766018668798645515403843955459964985801451543273236764563978010215413077861466470456722815751639516654228218289237678611883094138260476996680309233365263041886683900329597328893950851964454517655013979194089452684215186941804211103019101911301614229663253393199179830245665611196603445239164444964164561968209947778495166148138155075812425255866181727002529632996807143043499577442689858103975926126470289135203676595491574740981124420642774541716648681911484007511005208428404240452468802976662122556597192152972024130504191255127589203977991719970434716667043514165858552758639097451036414672872768033485879326525999089223678471286030694834412116427361130294005865683405691189143300174103046132745524998947985442361974094625553285130403191314633889226379542501667516640639204410451327792323247659716022783886334263382043422653877604905317340542572843131884539424719713807691867167785396960088967575376151601657290746046228285287275210417745838112633799737578188080615278883205831955112172045740964679120090475319920036825632488219617092265646031987244928151932249040999451957133861076492978279121551496895070069707947377536771966595886914508630968823266932948179247739707731303716769738254705875619714943122652628939776108515313605960856612382944919710713302434020845857089693343972025770425202658420742825162991817494402518401680159168417128001977725619825464463222280196613175118410521126765899977908637292070653300556744893840210171168669986689893790695848074468766717974389653291183915999203206744771540592163741389215458887088519527522345495302085123368270340511383159118000624120894626560937938428503496861146277753484299233145045698546741339718361241671356538710069593823497797552535880007375749675436566735942362743920786988990655728051356371952462832453460455677229001884375212364986432120408315984409039246101203143695251239654803197072683214798536097747337777090147606940389635838622334402055141067859260605487153558237390099497150975063021185731177565653188975790177378231622569582882993358246536936632197571084147701772849560517341847181488118439624422516823848443102843049384915114883345212541315622259233286343085626814523565514786982155461818807984192153166546854721706591385839752813652024178713349318643169599117222409766729259467578813361453946300172124778563163035471359098460562489823789416101315836960184815273236596161603375341883656181482763092468433777100940835992098273413299194199228284432505455215089915837201259866743236316421749052556778485404963418058823276443485477515779556940741356141681169748974068851671879101112574161863555786496442198686642758345739870312734032406752083901829629013020281568992656098437689933396217824654596015810916621307879118322687945413814616230361604795635854220981137927908206407355303136906065924874546600685695058352235442374799532110964613612001061434077183606434299572845448053648572937156597354099785378642780022391821349013615559889283303369427755330708772260758858302296993958855827606004985303559705513135579538553525086538294861131828400997011055519654637468747056934167422679783052552282141107761643825650935150712743829914686733819830356023902420441779358809636897109720239568411829619798431125009401946391221792359361822077937040332318508215205122801752708311122753707025814526935671374853873305274723851417923204637030852964778359536331036991227254504362354296270227295347065995828373650420336656016034652469534514007527791458243315558807395449829741276191630723731211896574624791394142582012800207059095919107207467516726477299027255444276872937525693355837969960564709257721221378203326091562450207094158309687490402525441129361424471198989859528266039661291015728535991017994105719620535995055815934707820077803589815001604057971996153632071946224427636576013077419481199816761368579723555518847023192435522517788615684646986029156753249353322107215920707757325219834125656276880728936403790224772002727209291439299512878981733878975237661008918943154144675397530338048731525943164825810105565216315057931034839005957167241171656748704288261411698203519949379974665379203150585642922143262405240169336640147273901851858115877719342888190526701650813989738932044794135824755922403463620835502914179116211867032474086155510599175556188810991815049264386382594646021074047879025333036676778680975448228200712793643892649869190313548182111562233848231779893201962110250611048794903019003922992817864077662990600590495664882818563003206771379617772345964662194012841792240323243980545377553602928903445920309824604552598638651105088408805847585849656425596195099175938600570294712621185936545207827497086718069417624418836620801010130420140609714165604468685676918501909174696922812183427154206001699984029915372245424458295909728413078931757426151393613931254489138411822664642535513569038500891855087151593703863898653851997435351352695200067690464815131406084386599685045787777948193235914145354622724655047505933081717618108993510952291432228335073324134865324334889652098693542557549587334731118929263193433555808839939856555403861174890978277664542895491261248615461712075661654091641165957489612030787576403114712109154310322367643705004871112486355135983325471347095913416255592278284643821075527931625541548668457695026307861626712121161927665791580834004799807008282395407737430964034157101614204861126183992367583767782371677677230535594299283314065909212327788005962389599329408148775820889477111885145748949405732891775339074085439355457980804288204304824130105357112935268177203712398452185025060019454152195790290072865879611695100252834891333263747600017427314314913173547121431992956650811229801296492126626137857821584167376049185946376256845493776517923952209544225623331897780684232598937684050282555142013850857216866569080276209053204646496958811785199967328233097129963986340424516943867015618575547986584252066865959905130730344945812644214226932686157451026927276113578231454885953769453660520819518384789000023656806169313466700687670254340698238610723909440590756611950932636888132780559635717530889759854630156958149991406969191630662889298784804155828303075400157984934916403554002797455956719596179701054798182364435027934917256046985822587380241030938888511521351094069029640644551466234824595870256908533678052502637772126564427974679696492220403932814351742879737242872913005863723486588605880432465225712339478322464395080154430375249013834986655167311359758129007222294054483054090213688431526114532107867022117289697039225696910706577690140614606835863551591654492201326582312355189611327885882139465260548542332853548633858463226499540756975393870393044784282975871668715509345636219515349756987155192514627632108475513566347049859489929141205290252492852413146014098867047369915680306102123537807263976635568330432413089385049541410242796339451120942589135016360227660064439269361217769247919010916462883094039643946797961845345791933446579841568401772587555547860370809565634104394063681632250415195238528170146964615830561313074786050848388252888150041673544242356139581453697846674907905636104128516531578265750184891893083740016280731058934778524399635786231140116428539031002934084276244860517329103716200989341947363945094511701313822734570869332885070781296096258936496182072753389695217727778875377462076269360178386372490831069196829817349422118617117604573903688818195026554701935017882660278407892211603496500741620692715169216474261670874019650072766376500127804238470901635465148507464831519245689153808891303435545753983911911102253834894452007062257928295267642553509973148129532379604752215174086400666416262648953305262807762425898644105873533621248978637284013374731157129808189784124023089217918596747823644338691514468545251775114915993379771788285769559364965247539973262087302669995554321193123216859426160006526846237845075848858541751129025255553095464517179892669013367582274424369416963665451005933134553227182222163825673167613897801515567438647684720931022863012123920724897815450200674059794756519498223077992551794303836402626417349470033358757941585195827701429844205458187963728236880794059423119416305081102174252178741657295542892093868735198394235861321636092182198406858001193283429053520434874030198593011193407949188876125761670224003810618675564645891572020785433167618509422410645004963290203492823332003655631243115376444738502655323161290715938257722233777620928434876587901777657156726442818697381242989535826210705748532472817921196353447474025095457404589025101192233448976900217556055427087261353736911411276207657116060952485905950440638987305635779770399238351738119097256322305791670418912160072225819791527837172054289670328420130932033519452639823064942709251796295436819796700550342843263247043511832450149782200129537287268619033343305626457617656498220852691659341543436699424074143207593002349297730147613738344460690809522909832076923488876934269213520469036065758086914663426750413456841502217313899517537039501637337879694520573588124308715022004695076563497363763790088188676353559448567450363603054479124725359873304580059925658673401667560819201806985954798709427935897873113232163463969257808764495833219084427117272788142821442769803703100005129613091194461476508924051946081166088093196680629529173001467764602486591332845318972350034846127785076781404702383472893313258779474065083724379083583059660178376810576692557736284371694692556823252835734337259363031836904426141636771187556475882794716120321618275346034979376441838608084384692922486657592444883169862946753775221141476808508947403108518415459394364688139119146859660504760992200232960109865567266331346171749346020477214724549564512291312722992432345583406525959678136444076560121433119704280358010668224961883432044264668579385231409797793849631465337837354674305615758250821910396203957822577278472342371985199350644852911183946656066504965721991963815235908358471234123055298180419987032808951884616439188912207952083433132534167368887235922188404269034196247813262639302211809591295942166760849227474437258299075928431832516266110229687830355346456234645746436824088013115354896867544447808687608465181330871202489305965891573508722345811713026198796050120035503218963999742284947967111496251342871065533214696929831011134989628742505691319170456962414223157223400519331085515735701967578545101690588698587175477250318915310720190924738931875795064235131226828435791822378150063977468358265727088502519134556081455324973434444838561569319021404096259466805034205333228834950393651799278967400572194077225434875625432178938948255145805112959276893568606004876448054798736675253871557139845783205838753885353765518281215147280802775787497835725460902765799763958012621945839898899587167237115647378850603880359359942346463587873473063365775788933180297805392853488912118730717226428834185539703438780471606464605702411766480365028558953858219370294160022110757436358147629446259431505417219058920093076852955160040084962495040407025883816936864589799262107911677195150977709181410681892514488333173060909980295015236915603982713076699463287365292673635734189894789738519472177503940112264442946108413337750759349264453318182435688807423906137394153550450667939759390688399187977943309085262396566902036108939271215191685119435726986245251197328948268308098069804240020493920341977616905157820770146787032073361211083046764205552614278986194416947162616949488281274470544939491624785938366239960291011492314218588257862603538861349585145532951148221903647343461439053698583195684304495625229112318368972459144964198300778883754283328010377155565289365549198578562649631856127979270044362014085461353296753880540007382479427878762323546233840548896399992953868704719814803043781379016815843314801382710134203540110810725967986995938155635104248705323049813935001112104062790729417853475852251171972319227957164107682058524140264634562951502477989533375872564855421978340927567663983086485321816066382288786125327724780591304576085543588309441814784121502527513305425631094012730996846829369937498516868042233830463347447837031984722782091771196829114351577119313952882203018609955041004993168032040414480222388641938412686088030590056597225946656143945842938714412127123955443858788941366320382084753159393702249683052140867011618930085463224756561637665610790346691195881684544677026319800014293607839257771173503747442085380939033764087767282364625167332489965384107937875671532505923720298009336167581873940842162569703035507419554250820589514876952663061191334035738011253620718361704859999735765492318017608121018055101017493120992070760328955572224009757617841159881239977602258049173832898869429894786954540671457529787078184872259915979067381389371968350507875997529697827311885092491471879632516147201823015251054097158164656427255066481430268395618440105936944024160362028490577125835451562166448635526378435115105568627606074953390415204796102815049239337709223316931152131999060058638323700076130286605876239854967088014763454255826123493990615079737420299977777184125230784755400922011407967744601757590919034268813395615576681429193879727620767143522904862038235078511464075483488334015239762304375683266913910973613806667664604207777377673597322303709253171091086664770297385502598724722081886723377371973415625912295371388886876608753465076887205499274392963181586839288369726203528354198190643344055272141727591818193778841894160060087117101242462902406484917928524700090135139256123048161028892053944390970412719474924525126693621833421238342105717256086153637111295380348183522158559155187530877038644189195124637169182229572219124912455631492019363517110746020549639245723619830650488921544757555594266294330719436985220507133267621907036061314483074153681723447090302675361161018881550231488177417856418477101416632166007055570099674808778198266054950255411075616655883146899885700815108583014644304012102317693396575867372999466113768351359102787099979675368185551677970166557499785789248609371840434005380593164677662643584812452130140422955075877602567812743680533177496581552856964251392601669820431790739673838579409155133595238076385074168738104630451051906006888608152389928495208392355541124441754592823151543971608880579900329952728947279162594740100643293829590916239599300247403588541766830230576721823307078643945178254090164323816473243509285827722549899557589797952061395717919343350919822472908817789258888013562958102563084891838124400345236164922204068076382210144384546878733893956694204535931579703972909359960291974060791266847391624924459866331436821572707476255332316643217829753926150589568694033328049461695484620409496030598403083242290734702023825011785433531749131980022434606661073680811538137956128402743390613869762616252703063070723640027640989046030398294709982574708418946616780697885661269583009415291548492288477520378170665352395044263604026999612177591006460501344866811814372294527389866208929321355674880018601968017656935464226641086822778211337791517901046331755473223754035003613306940041852469802882397740041076505431242763849262039692381495813489632220068794248725479410868012426319835135084085789267877512935946054898222655237893544342426800768526313446362777953766580892084423181903989551984676333134328098416839737992028257289311621032177902588861925686142171105640025313581819751316645644673203285055508673133429034294303548705283091175657211934348869504004975732217324284563104077082472285787962795213987076210710384558453034797662712233882676789347753932985181355043708086910906426251541815912776672717143845568370799223920801412541906543472420889998370634197753573220056224551091258110354856208715991801177817455092688055500013918089947043877187451602558505927903199556493213937250319010688126744945424550066774944067330679239392477404656527932183722165006507653612589571605007653106360251593521422729648900832060508742442117468410271291573763293495951547758714706161254279123856909450673891728708953245324122250589808653964532779080963806571886237408117764268142749403101044458932518495394938007158761895821933105485983819641849288550291609046442243208361886040405354459576947032289070785490121781916964241496511101782168379663915630908104894656693717300025408871411389610859333774041221202246527507852568994565941794486410574891353005988798673169897033201516369255299402848258544615069828562971982039885000428597674133364929742679861695034792789907640230110103068384358206378872538765274400009813581914685954084176679294799869442885189061461047413709026062775236039982443553288475041340395815058936004986393725108890906692485658810810918784064738206349242971330970321245132964280061101519724571027749383820663599923223495684378819151612974549872256926986461012578440615782203472859198495783899299027145904106170670034331564339059178330455099142967616020082097150323286858535830876044857347354627094303511800403419228319058190260409300282775732772327463037703418705923282961443822372870224251290389338182071486421889191627925170134557109540431710259766917477464305106761959604984219817658282178261350946937509211290647384253904037330137078812966726675052712187904269215820163818879669165693932120132515894807217131128602004695539380087900968657917688414717784657895064313463211795976036371753061278569068589049357154196511046101352473361691026911536391719152614444622219944873812539793710114759804133212398558619616975066845987937676856601524186052827497140696114148777533327523086970025394095970027486654639958655312602554648493848281603860742942203330894416281931244225673645072310021848880392716428369337372837833251120408815595593412634711402729816590839536302187180053967639477341987643589837667999562247540149686626930457468073949772337998465206374269069524799468540066712488187670111220922206342762055536952693836136741324344904857725940884982102296110406550889789665835456558288676789069698781596683783545078704868578206964045557981151253333486828496848270375358049655527293663561469334462676897422049831052063987521184260684162792089532546870723489171676743109009311504626872069656884691901084441787569397084958079831721249199829045509070475023725981655474372093870959819543438509391209012000835747402644623842533269281963623200801085168941153900267063563541099528873620581127049307098589688600250818948967461414953164096279863189163880573221999752745423278276604411063782904275361486985757154080798766474203524802513153549605482642628005920461300979892071621681904250693138991746505207241628404880053418616943031015668754155918577165830611646247356146365647678468393565930962433185213642070969797939308531375798743055560471083691673034729995278240479269383724644923183421224669248458304613229736678017677415094190615292387186198470867371940365497679047112055554466956349403750573693753524916511107733078599382144290286312049216107739691274566187730076164754036006185976533060877278900006369830183648318068601218578216427423152045001387615732557491948378020247687942966389290928392028974580612293656104207523632414140101778888035757393417499444327079168615208159704844994625310135751591592450204716346003930901291181505583181174312760974731129076868665400336194898983931504068910194881022877687457421237399674730099389300033412210075095054004360803561598114442216458520416666034296396724188308179190115655984303265714412857608293288402043162309185404040258289254974977083956644672275796250626415785164511212473499454226125400266972400126255976797020814336999186893256875933933996780000838259629423358895005593605566576539297235314864889490486435043420105468295811579340334350861695188346608990270917970710366718202031510089896829683928119804798600738264721762539958150719836568074227757895747567144826055198139380465553176715234982003196877790531224268783725917153591480136499213369697615691810921806256767941830925225999146804252317245109293787717449736004640742841095138234283747224141261185331912511925026048768623159598952950806044213049438408524872812978188253395464227988641520846995786336532260886019737578200715093922530966793240516849699164583917549934353283675162757422488248724041754437524875876808347502300466505580905386802002429217624900964513118561510625216932894779322772108009211477810074306538932899755906462397073348959074152379851883718796367378469275883594652568612261682616847153220702729978198776417704372971689588591158721102343328840213120181694353955508601657410042374316337952199643504274581387832553893177721039944979401761454112101255820620886830932859147863208219023594659612563524720471645044654413805736462997449259623404858711248514569166040897637649693710240430311495413606137734373793287705897577572815517562037208695138904713379686462293850839315498890343476573077678840414487263447872091484706641506718433983620196094483379540717704850142539888964785210164300618929011753924912663467532927474863590918019184976146091573594439352936527395106438864454129611662197820393897110917171011795597091858844925926914845054927579175436850556339178872592254834388981912631386731849355775113257105750170007010095380502056665012593682082928730917432287688142459644098958080447302396306195932985470505254587835348486582150889368750019714255809256861910235592978536948659924718299533424844424019109201964332688482553114838163277995397943997292743299990595029138091694501649562490709842933182755134627261467368217635730687164632492206609789226270823958594011838031800430764056650445055741185098860774370336782174885469285886971609491776619651084422724967598811335214619390827180918413890199635735226903548348034964840700467684863661139783551963095874283988814011566457332943006456888776828594277200565888415032369205900735651031664073687169114579513187622662696318818297971117919634512081944120794736914040903786087487152955508065328416970877948055333432011714819477870547203086106253569995301463253901610394991647181934174815747683865028197467354074205173283218131051891738932744849028459133995777585647404037023028199331278757775350577625555033581962057607637707125672055487158151465028868157659061423227236256214698029207857373345752168453391262418881589301300120000552243195748468169684333400977782907816533200400706362550878726886406689508025609200408771799235817722108211549683905795250886131027963420780932541893800820916795838480045899807940373274634755689640332604759760493843573409715741238883625422434928078527352730943321849745217535382399697168243006880097714476131868622252886338458127612141330287950148699221463734113474820098096828640767777243186698476017572596979114293168350704470127318681428334987404668184023044782539087786325435371607017349669288243852937743882596736322432382818637636645220905843125971505188532663290250470387551452413775614017185997440427370835776334719359361798060322782788948456689053064148438187161242745290774322459040975949807024553256694159807314394829178259051319360028638785744243436685212717520863321682777898886494716763927427857217615286139485372248057645631139423298389444882756048401416085783113271322084864010149420160804827568257299704714360544355684992928190669362025391795885758579405354694277009118831139410955008291471979636549093620993925525267056833432825094298002056606229890893615658134662511980282742049965028065313086654154128714173505886229470780553491396757547200056667644857333047091190149089371452148625354371541128381405372125238422883824327869360210801385370681463662951453890585557815510564325728559506899665608648693810876166539732417269626781596569399183469841266129463175961206198388135704778684105590715684458341709545645383242714022828260376574599488783141308985193275880640316443594265300088552014822970818370852618353856920857608914371709678907800628070754360110324015193367743844533669343943218728329317101147780009056943712408572949200179536373488711002522156749979850511744347774290764990901621383260421671384141297868720463518339392142372177093688063652097338057644836901658391009137063872614989840047581784109894562776187590265243760820790923006538334909021454105977915618677186508062089104054844895023800260161758199733869560302460409112274900732261443179601805871182289943077569206294176462046107317461503904782472957151610369157256823190631900465299664146550180686332668863150379166354918403620198752746460317271790765514315706196305657963044508974310862385259445315729676887545627956742436296872686043092440652057361496908210735919095616210769553203143463367424233003766435742382202572414805063235956833390094822310928314225714255024267107590807132175772365823641683480835168138295619651059396343122567489364031997831111524120173753184075773141663893887311411365190503132685107521052298871257171711241734613155136019884589396776973248114800540060742322107497191924790133478473984681953293899796657045656960072958151348735533365116842530319478376401887947764638863212395169804976007270544695771409641284224889735166900646457055523457989834785421372959677856315356945725697764899130757074767584433794352140957614229240271984755953281215013877946753083968499672158879814103641637417328008984999181235841648276349213670278371867325880737883156506103774235869626923634612450332759571558117053627030190554207405153831974221107995750921792353557606745552304385265944703273307824890468145183689425794501884614954016482943276553285405031632621818978414103814336178336482468052284281551955440862783454967468553286780736705649503116520277623305340917296169802172270362363555533394457443261568546209012893436627686548507413256099242238784453473090202572768197273738312592303825537808372345560070724759267130016651193047339646302507007891238974210967827628707834217941199176012727148164976162024245776242216854378684412852693855577111479569256476435775382497262114052645297571384185855368344353779277484008438167890212631610176678639984359745327371311091686097103341108687328399122832858383714772659004274396859686918727933928201912219587450646075237458556245802778754865514120645048523894256381806865691609257584117459871067708791024294360685453316389791002169789854816955899288745523770489093879085237264728895839036754181816817247208897227747633331251824284811318821811173114203683605091869034659462461449621402612333951453574237070785413977842500251222311780805495334608138950140630315731792459600690248806620161754401154549050056627233786799413833155049343165843220336944470194111319256263915878444065537219580750759796955985676992849312553954702827366883655087094494871617766368040297563686209470088070926185085666171345716119922318005531682206006999989437175358349170962690259955744393240321371148185720264705312132806475973992600128149943071630927453538626285983296663693999337579374150407789764063146629781062864976264112553186225592961347048355726920117149221654061486351488489729236247749473159479179464643389811348238809866212163248797076202556998872366515721174492030584153232201736730658754254071211105704443858406179399196730089989003510284093931235890011502845007801102340455686564205683486816255692345680589517859186402715533215136677864819435972763154172562386429656032436655492507740232055815376654856953485928011778304473187140404328666926308143841274698926868752295111942076928764877820592789085938147394109626452124538879011676203914798586654894905649367873964132028253709559905844066824949500022941196370637673566734921742035762087345140883685888763381866463777801123859276027452337050376881514823087776159616572089859356861420109655522929827561206127043211034907172177059978387956377464704639809131143057817185586105535792680832091578603388314460261894328863391515727322928279919558741855143190703451050836019111816663981294920488795764664849254793499554532272526167002330045488282502859128516021582088381986637067458170124236172250456520859210076543437617232616518942528940697579752346338723189865726269820828234932675782506328367948014206842282135185332378705743866715830638809544300452517320996439709388112440691697590014403719170255884984509460255231046025097378827546004979421080122686823041124060633944482388677745013044722433687907295076514433634979117911071229640934304923584687311102283697673030940358547156544389403711557269892076660808814928322387131202598364748315609550341331144470475884794309341739599018296979244140054295654738216379457820074563925949440110146028652373012875579524263609024280751271533236027012330564977877451318208661116175147647436482583579035116602857616974781837487084408247725557966272650266408596534077016934357548451985816150428734735623043648059861387992633279440552036286872351491427119967759351942327213113583427280885824994591921936963748058457595105290225027060508393931594426781755372144788660664451916461826701043559275224043487765314093687111359865988844125880953238041755794464827395612911006180638199414060761379856324398452814014770275639866061756351143604491912609735072129490020164492525686876393646284968955901961399775643556901307817161005124758554246927836999619744575536688720007630358266849528569838311261653585849990526704083629165486985246954770560992701609800275350037163008352826537066974773137330229288980078843706643463845562310398887369462318741705861618487411478599322804608849737245609571874173371452760096868312438226257876312488172917765836406121370160592720594580597444984655650849502790643668273675743531918724675849935731371215848517838399559587099812162249132767460310220051990357105322667011690149179949965211900445970139333158278267614249264914418544652802336199758646729268322037766471698778422318866061497006817563510303371370096492204734147657981746222691835978655720130746258010393241372562756038030825749798251715212799869282832017926158288307949940173821545227081059429196156777548064915608741234880883334371271213490117491211732230429503908740190322521053637269685150244103904101793882891210018474206006917689684483939355551420054698877819147463632470515999235761471158550868871354428780110181952862589459394691790956796633046635703012212840626666461874920807087145183370082679003504046771427916255472441519614098856369752686403503976597935486604637437262016503161234787304770925636641946148688883105703172231152267069899496063195699099647378011230546243050538989249704983013798739682705031993033796345949900910253214418874497430034100776068464081965360937801071486380299541509415247730764490653256596687996567994167635781429670946832162195461202910405926280855182042568827741337208762864333222171447826484071334555532119137015209725769556978457193047743301912890236455073792850047378591681564871842274772850423209938789552657139107680766210604338780232767751026676484693415660031597139693252783795362127207776807683012815893049459021297451641878434754332497552058328193623972676308919691127137978478787091007417819006789613821697736530176741271170918727253384821863078299684271544919610108166817726974264389609372084509174047931334544979111991685462324655361266503014831552686755180066283191847486243910818064661155223278616484433655599465752336260440620896738261037341105392107066940613432427920414590961067321790073946105372617465923528801409117799705235920763545255467447476122811656835776654711497481686597357221080461201403396034572900545124117330720400265678011776803869978740580887598085908657535333487980335241943360759910372823290410043998185977857637727874113433763027759165055200582199645583877095848013768666446224492800238375902433675117015320186592116669069758090437152265893579205574689507474069450714172822447193620945825723873819863155869268260199838590093950362339901637465008654021028806106056682406302028956180073180350955918804533237029034276813046315382173379307024779812829086095600342990198909295341458559341582146478203762321194738979318604268916602847678231961203296743917772483486551987916258433122373783968743082641533368436328571808728594444784419784482531684009225473593673201817346338102518443152854680414720652804170411244160963864081706101445579115862778703179428238766986100115513193278157740572972889448885861058432093921426158362172637173089147739076896211739905816486024223634850357513849405582532634363849046037374858258876861964108038199102583475433171842108658263265138307580445553661323525865909335724090851614445282949556522493495421158214183347309503234061603441715356811386973422554839753280542508453010371802427904974275309291279356538538430216649078338271558863149199617181696274407007057904841977869097031850537684731304140244783850228121917062997042847786601120431545010993299926830814260138197834064362282990296735797837816364114521059242931885002522991981974275891595420427122797540588244220093366806838349866300545417687980994658561091270501139957073639647249401882319258360429503024637097091724672106436785519578833182103624946574984255254093631328656409545337196220176382739805857389407270891593634892822224361007783536915554842769655446178556149160668650878838642457085079003820765397953391827943367009667542354981561802778472521922730932075504309293511264826412746601078826930353437663084050916509937319096227315514478998021516004441982899474208341663176746597057730862466673042848966198626125145643751896456374214907933861594832730541372258635722635091072999683991245084369521884353271631483867488366471389625860535851757405801847671962149822099751794809332268376400465297433178885375908426954344996855351834463464147750862554963736701911536829769061799409640900210738587007406194676496109699106333394544182665100466580944247367595606462533338555153847785494379222944909108529441397912235821027997829218443904172343519741063952612523604948437942754251632883496880507998691156813025957411520231498114463122520131236403099134295882335016764476694934166696222857988673722776407910677140419638263840610234209451358576303436098488997037170543280089481515851725692895681527012875507953028272666477724993005676251690927245279167947220949876925819879128192667445402535190557928062215132740205729526106533026972296574374044468499243472710565875574559237764099499012807315083392416780730177606431016418327227898156373328329307501591264433830713627938381713376512871630158798167799371838432065908125252966253266363309129247769127494590862680366758095699069319087732144242795123316084724527786018318836161876702794620056456643781820391515462304407882865204290192462522496122220776336056575328646640415475096189585226319860851841491884617547267465339393655428465336617584509703270890956833055700060939794052157708371657211498240306213014743701142283490239683221762082427636115270034188734314498915323941874115774417692843549849660652346668706436468188811646843132312758409005196263249859375458163500269771847208731307356689734880653428423424385779925928910810313990125613608336452884495450384318148786379712638550940333218343922529495758324808631773920135089358916547239109705449936679854645005675074993533640410079909083571284072263851387338756150838369919734030010143960741466127332282160634628943835831938952683715197652417839819407592944873362878674292890430833106968130421283579421919579208973732052568807321093995740234594810675846928937410844634986091547859994553292833840053650750193759648847069956036806943866858116342573063727321448804940494801165191372814870450978719806367028593339440074736420883277331109987208760197213579580023240944719151484612681560617391341636980326323885179002034061613225807347595326164719863978978855142729534633738669427870855646136853289892333566356055833384044410385979554928128209809080189297889178958354955532135823582367745485941923442784699082209580419940378217785343173819053853775131051235567147044668107204499168292063460081964862989375865004166359054846767733828584856924671920021007144653171816093023222399286418441315464587424735881857776447576431515700562813044270928529970146215432554263843412497025183736357292112163124047225527357866736086030431712051311068169573109936544853440062075892099370609794459607032421404791619498058563220615469657960729419784092103552962171223642934933226954767798106627931857483055466619587182271639622846994862526068342878677439427364839907222437508263839954791860399069895424870308216853065920371416143815795592766688812425053876052944890609749577236804474719404983787690109150523972327435436667359553753826039990085175328744929910106786195186792061251344833676319484357220081936383241394272801121610776246860469118120711528534505523493723140892471506923079644622657132054961876968138619718882593524541884567839671555236629951313019568703123068303133239003447093096955104631251815967988757712795719656132955290966034254066103127360730886247484921445262081342661376887590817500460098723060031178814885289323995299446666196909146694608227958371303222303099289150088176464503143001575244894914196835373686331234979660496333909093578264902000710135907142547916119449418457283684392061850525649307703579634095425897095641538015375937196983132260230126908667537182026913208066282743953375221306036579114693941342022611094960781770223996546983445364625716128762952570392171764929706257933421984818216942215325889318798129404435143032560679259173686502707419504897862371610416361446502165011971637871833741511304881573854061220022083370088609841491322933234942310446845310530505313234538010753970056533625168977426116826522444291629172585139272348266720589764354618420471306086888067925216274829877324712241543745373199976488324029518685277212271234004085538914150827962008044107383559249994514380004755371855042058969646523095691604726786789020471900986778353476451775878101789323334200217250725359070307400486352887468306434006841228683216564771059307485082128493783483619809790397402624926416900471698285976611735763973827001517220169575690159018008463129685641330901080920569458201500008109730423875232135235398669339502160793283087977304671967527712076693894718822110251301231401299322133552044687275453301530457633573855388864851564603042753405085295593211497724045686388425943227593539393699138622262575474486052507607163626325742158959531751134510315215677150728929600982784311084611706242654035822693237018211526786685155452546859676120897794841959028493468192664519027012864905048545301125131189781963675743110608312480552774151753713911159190771604415165748711887939778332040857901712031863667044931561148830968303952715682785617937703843974834621238857475600278922876511717591496753961422135082699928436604232554507881379674760083038773065271024242428204031485635944579670658117906579488044261890545238922924635737644500932373953300640270143000345863335048354662278406194359478473372311093188417428586577490521368572662756768320012877881352754488651144731355669359330542756549849966657897830095394880363339634866724301057560280482919561351379618293446999083685720199303941569457121916535740782323285990185713346097238570361003336279615321454320174007265338170261070512907201952578462306817278030913551935489974949053635084072245986619869304076357830314165338237388794417052578118168549834433513497629053570790698846886351478588420404036497820040936359198036346909382173331163389806005522802290847926752570597445868720733586688498991837999764273579447708861625442545161287106651881879050746773288380922033894955322321987789779231330269446634827649914118331909250856151693815102280686736954046226731394725910476568366861634757206085149005694916245611675825267179793545284707682022883725688045080894458987813504795894913165201407751150021103285111461851578544283387133384405592332055161986272921304004752235827762144704484537053245699787579538566546844410726842851570453236412579944102268837817134657433053703859921649726076212768087858615598208015739480882409556403528265879451330846827534448055440870782504170038108934019601136077912538234594027415074410039070223546038205130560995462636767668022501979237226861349128407904447525903823946186415954942934902975675587020984672956358453559435328534056678848764275384276623967487605332618410840398339048155568433210684137981806686657126292597970943202065937660777559240931880216857502174672881931808931254412428010765018607070105714106067984744613215737212034969938427574671641609614591890081367260586536097530404647290157692227782398294344252361720888368171954232648033142330414133539879769358137698162038635157203289949315969276880230268453850950897651568597793170467670779259250944554771233678125832889239667990140853996371071219892073030505987355154036877388905907871033660493587229953968809791658577963834309682991234806936419552187155360019407353632373997703227529636564683680784766309218938832897415785880413689988299536496173555288607017166634176823373749892964750150808763903967172536191939319309004511411805527377533276577243011712917286483678473152420856449150634734823568673386680042274516565087500277560943229677398982656323037358959830490238609138272529738229844464121086211361943867652382725475756652982735492679604159727008818349428695246478585357328521046400424230618102949329683718792578052583152554790752630174984497974861392308649498589452574883030052193417697831190443196631904809343080712275490785432895002466010559389580416566361102834246208712423059351045353246639976310504904572638645331317116990275331467695115543244631345703185489860216117180184289562821851665632093608717766117568026623243397353034388715450338209906231395367233621804087500705947137642123520059031289975217938315465362657328186818728954511550445242524550354136727327003482852673362945842701893278548589893259389457885447653344001144072577072019409948953372686733195377552979162201040446008972391734910891079108407866425413739882049347206014651874213241700388632098821989010677131132028813359713266764730891157750414483684436785156724274305482978663701415114879704502945559940997377965351825792924057249037305382425576391976207608911767730847936290832312994049247149540360813931620280122383623270418503049778034223314601508348153467619320555462244851141388778230434351609827083564525873331725059328052407320443107940505668742510873845895171986217593632122453720928203464500371967038359906555601413869835858553189146680239735094539091657078837537948070646283074643648078241642977533384791608663317801442968728133229873387016803860575372430148118616584784160697481061813126541064356620690341043979608663636091811084530764985122703450538900893907652683328228644059263820967364403053909836694926587298493215685224724519686580684362602756801741149999746780605809991288342780376744018074870569188586413085316097339700336997071971371912795234048108053184483445792229173052313091481356776616707720633374700380004638940006939949514573050674707419966746933193898033275272535940060414516140885920538572902044934518504604261871660788759281728079328815292701822467808592421828093948589537429763878037532762723741051510293320592632037892616413252686208820690571439933167824665412043328244421554318297912922531590149856573181974990230390249447852791491130629628732849439815966190091118104236020801185475234964761635166938377005886992836655655390357202805113485716750346004089989557495357430810029672004943610529972219576289846674214193076083698345762151693151362371382915906819871699747231030387657916024761961127380803085217917082140294773816881997828458192353739143323480433802186892402629349726309803941155129417019230110444340131142042263847430450564028035352538857992763951346909129473988948383415662959020897573539411699316825477272289785539204981483489814336117883318962089466007210757649925763716829401240531750068327263145216103437393742452193039313820637656917957236641150925503821154204985933636310413462613818103469189336951472277437621437723681476990222420787900424526889937432753109814460599999997194719671690630115821814684383732060722430865125408040977909401308650951144273456350383021553924447114013487283885024843307360020328693490148054016564787283759332299799631336184511193515646070665392274897672392162946576097139012072880479163812998145280737221076392373333469575744008459987590111461281739075360427224818774671983577768064728720775975470111057458377119297686678243282805701344704601977244829452981084435415628621451798956414499544309321701972619841052285519599178986447212557616508906343220314356863421183576988435873916636334681081697035142456174086485738280461957311703188973450100910572095500463141896863285580270666563034665291342530389834616966584660815237063281525742276573097582863051029132989067499193171717919808646133047951922665417929771311145233439680320911143267983080218322069491334406202955168245088623710559275060686849639283763174372483792501243278859967022608956887213568739966980445631948569672135753765670652045293208368917717573660071417386234667930449794860537905221422689457438557386980611842151887101938141962721738252853847056207561742407579384058890330985255326551119634046121965708730534864709904864461028950798333469188327516916775369563924690760846920567548847141909376458086546708499479422227276100413719318974712649843822127845883228216398186530469407486519178303745444408851063334866919929886937954669190282802541153422207402051346393894760825048518910095206722863067782932182368533507169566512990507771899082283724387105290984808357242051584363500410148191613013912580273100447941191495570822300354771729326457507971204971424503309929403236043525070641450883718338829794610465483666474967504040144008450851091382067235315378693255808955407774582391616932546219264326393993076641075605735605112229470267071372158200852477917112802034748696223458651156129543576248434237473564393741954237516918105042896491667543623121092908283773517861511614573908254503493445719780768243743515445276449394996484561977996915878642217598919988830037608382644838941846485793504094173877976663835740100182686749119351971974228171310844611991457218322984872586562243877371863293722461696458609917074983554463088219949514953287211660365435568998407427505573425920208687936222363477815968047010930680463058054393303339195011608433319813862186458047521786153601558212446469303196144543385934805710634693555285737984651563765795650286155502189196920578146044447114986144285222193323362595339012670390749725579881606015469839137388373494127629424418913497887915715135990130169017505982688884381917818879720220631680804888420073948870400592630163347771319656690252755622833139347575020089980842142950778573972472511938967792990942217742100836408382150534859845015920084733610950059081524732708629230467627301646642933506544458343542850764773500935236047653284241468823216509187101392476419433491239379990457456883971314868568995018587810233477049151754141793679115897964490427835158631034313570014148647481559444940373073292180263296541826938407753793166787308243932915070857423457646660317538448460827078761847691359359002318839328110146886768398231373031657475236598624325602577472861443481424296156134664452576092233931522958445067699327414805330641884800706872353999568558858383648344331548668114753265050547478030356901477655283640912921031615822242482638215561178747876478047343663421722903709895422213952427112163864021440232924477747492774010235433718096092506553776301280380936944972437622264659594354838264531883906715679969247360769515901828219705322745657994687070564412075315855985539023128240437893068908583962401231087162278992869119708877234820669901400330823750249721847643979485515754365622922142134203322807605086874939446106696976378999152760362806004797686930071801561809232722299800270640755137599216419281174016501941961248320921274321035527552242334357348885115921177416349469469826771706233209978080500274306536777513659475338436321986561590909081271320539340385960528845328386940636217676154464590919060174008494617904764331076266697482361006006633380160988222616505430034226032525920760170174785142829231339669393835690626720287134210898553814567017615168293619657342698512827792298618327109327866043613009565728052372039649291400142736694443068544252677679928990002136577629460083060388565216705798551118025972923200087147195798247128087549003816699561187913056411088374692554877199168905397757584566234963178092506227646100484153026756507609546115620302993594949297413151117716872177304031111803511331537602982278541827753909260542160593224591946828617148548360797869021256171316466170522447895399203925826449214250558457250347139456762708165357294227961723472465689291214942965786651087321892085003977713499324315863116575256490138297283466569575397832859136491711686066616922083267622144997980718544888612156598470891482572582033437798877001359484235564384990770403286408756407980158742632890740260745676366483405284513215368711905690621746385610551497612606387633483520162872920991563512971930070349601428187487197204349403690525523853992036438858137233699920760453196368305523157482417127410653201686555301566131177328221512054981097701012280877502557417211020504193768297623295256417968131188503935730237887302383661312400649133808193699210735471137399043710910195729482542077332636484810595599091326615035493201519837164509138453298174383431091132913994633663403222977175178576046937779717847962487141209792625335787545434341943081200559362697692870365515443169644940239404292184902952508108491036579361433392250164175903148484205387539130017127306046734240137209650375562716929642120625451092448334975512407310169809979355529146101892205700891137016882672369981459800171044033790872613319721942589542785304501717366895236780157305705483660828715763346114061137597460788813163506096268443892153574702576766526708167053016963544335491225445121568613516227645245880144859073208162167235748817299463466668095859213596574878726678608908519997680492005731412240920106529698512679686641076230708834098540258324482481424918135455358708175084150112071415275301321976546406714703142740099761756951281100071182304748664151483535863996335755218854380593625542814711370020045426895078640895739962797486319532955790520925388616550592499578258800876098646623434125905451142748831098204173333079605230358057688013647896277189520674322317284138872852307744704190354564939756360360547617591889377258871957798239760562969964720139792549023084800910058439684965864339799234796838402327927390527569672257825584229917365250244038868115020996145940338873638272184973206767328878279420287565169223480787381517755717126879787261451885609705050951027072090385405424865912217873863635581234786215409492634089693279799994582375882247208394878570161422622410045096949741348559389223289815163690090178152208309334148163799564518557022859007464735881341252709670405328875399952620464203875790057844336311415039037310341312984833112201891381180667509931353563775251043564908565148365087509295554919855268460583471007998663592916222095733691869769820463504894516718258187484718784614712589705611786456043876219736239629668531499603987239380881064051671716894243649415116968265540464768622855654520028559192148146432746742257847734639199649166532428514503402174964341007124192967126160721110373406512099865238132710662596934464558280003495121317099159794392232449462798813917821864350022079417768843416255557376582218424240303191031930536468524911894872543083577640335862714298098771294683340058146412674036706655008973842865982053667255389095635675877470312217547426672912189644430486697011625274594808936557096257610752995344783507303682786984574913348971082210902406116575663565946594546655913566035698967597829794929618056629112491591067804918371296012040542630588858783461955675234281033101665040318265483971115579140814305826284099039400072682460796288399475122853543413598012086750720324839837968227887683365982632280369536275014095750548843283562171878423101278394935583524484293777142684211632500507843739781703247072926618760283456192490480082287349003030287136418309172597830888614914171610208051925478281273363195761429440553107622206122804278100989414358151738148939759514622312784483590668907686235460491632069824039651275881597712261699909956724375459853923253906508838720384836038566390491241002537329281310721224149377445216616730280494691313617927175974929036503337921212747915517099936958388263553084198877535819716072903488300375396435373225061127020189626019484911279747127270020098300910700893420282022173467590347307924623878784625326417106563057712702401505554081251789933881847891020844886583009229863227317502421535100317157455193297733686862037637326160575435049122627395600345402630957758390864076622570106904934296143930189276368301902283712112905232443403327619054813777247686211229308449213752245506887353748719513038022175162738885673278933770745748592149139540519303350500123040415869965206809725236090092862999659233201200664688781126037463470552716115748637527552301538585365204411645904240527902261693885160258638142594002108760718040807248640308338770301023114292211701840338205380061733007200315620572786089167349356656201632088289878805011810074892236959480182845500995237964969887530178656623275743853587941350365654288235830069002617819917189278045545695698927449402084915625926624385971655254697649490105653946016930328638114637101929701343559259735337665674722305990060820464625454491946376989738962798216516274982112409709387318449360384401157030251664342326171981001678909623749921187331579417731240542915679642268145248003359696625567791774869656808695598207452456394817967006512275984997275284024789503881340796280060433318222794578040387660611167271246916046779253053370872074873336425989019201792999629953721893711481414705906651893351775555902610361370667632749651654939236398098166127363588789811933998876855794846151367334414768729517862216131759558827690037462156245659613874448881145396084904496017716917083121051449880040218037594611705179467832122646663216490528981387411867302515343280293979383807937623369965551207822557531219220365128040308866543749243542309527957067109085084021459168958841127438144252710202034664226186581365132391894580950253558959235689351509778053426568903504848318151106485287460191352894024018685587782840025560736060915790036114289678087033981231181135673688239282038420367762502602063055841265357623235431269415062328889210621333357600686151952482154789874627178959648194286582899000649930931849866231341599402365079300534795700848921905489687406970451058661371472722426297623112737683653818892343509981338385105010565465516788985014572100866465367663223649543625758055089021043874476108598572522510307012158436545896162713847029132981151419634011358954125786144281346031491642420069799254478459465331402270872938570862220807983138394054628971000280224433166122253439565587955282449028536293539887345381280598654433312398385099404136025867510953751826357924321135951530356667816212233868327575960799272735258903240574974676969924292619274780685555797309700444506552447023675823472587973042149933559437584059026151527057472610831517338507876911836942484432996903329836769749762121335551133943701858694700929083949999339672189941780259189597764683112880239379806662474897387870191088046249395715785192512716444969053771340203519343346875167141065434357143441076673656293967596138213974499566913915228655111044585897275523606133237856757484312429157612052643704204309016509303524302730464261692174050732891702211004785501258325920533184474695975668808815047550025758789096913896300876554288503795875746373782440924235032776940397018712178941265980483578706799800286904192637943507736678361752742075088491810411806675133354019633591687028489777752013820601835472849728481749162290557411026573900843497111072358559716094837026228304388218262453651454480687666020389339237719556184768949288244831313870063944692874031928760129232158690668513534531823734950764331395280265732353115538479746623056098671185502410236077467624226238002890160864554899060249408011188387082654542588858113110366132753921299153415770526123185497996521426752627502394634264637480537547010200948485215163310823601291047022492110159914183332995206348976047687378646023340078340901551720449415595425639409863016683033356297749968190674766850908803918598365441856724905887628709185548743700282852497803837872951773592285734826532238723314273957262697040500215936631887396378934883689125137314927182971628150044312584426209132999455802206571671075715395527770339908984379294079893197715946300768512280550167054065596228998456815136611128882044446138678847147397362756319907929817364550910909221872499043160234158977573359152833839221612601760358801999719323236995442544909454078240390792965160366011934561436434153119759771092575970518801870795480338363963547231332920409127341201768762692401246020469214600764478613745595534167928047591309825311245276174216595710775252145890988155360916622796689663045859873172971452263608935728966840268727363133699987953565369052478118853992747540125973752924147310955906865629701634095006176716569986171569597577206256320268897953420446692281722654123263468545162596638501946379273992326198085539830353159808012108987034812118461225218693355645915941431144317870562941991425548110760317205013104624487816328919901096901845093129554545887160959760159197435426664099042508794097116475269043759386268780953369376378593024928776935981933056953224366565886913126328012387166091971665332596816889494179931886077162694942035795035285743769028723132536955697787918194648474721081364817165503118084846133305579955348668231205413178013349202399006742684782147970643396868194798551944185399437227077992857282735108122981143933657136604308685666832235919786722291677788848524698199458921414491498849071321724593067009164089058205026483948284307494608761955688197651339182479643651291671008598149244247306908791808017000932127848193812263739075989944268806781004924576803524703327122377309990036406893042021823123078856216590533075546995002663296409002908765611189697748353078415491587321236880920442703553708656138833755816695042763994530428008168244790170235315018244753459431250140572463272744328602110249864385656604676677358591120159586373554334067351857782222946994008612427259456015579397089310291287193587857235115698256651088362960508432298891942919443754547832604500754803201665367074790066962699604775340653168360803728226310494433321314827286462457984042834473468147081678186496661874775446432026398639086786964742861739975735275858079657262593687811089348807555670866177015685622410900006582925204659208766666727896816078349891125613073998939887275070713861590344387334058952540437065613957842944829633508689716602556194765266950740208785266733657252711782471461839628627475257787092257778153445950057401147865571939929651975395064783366620552748397484023147051324345362350650801224559713246635125698835480148695220234674433779540476743374842461017218299948285596186207803810286297478815992953859802766704341766334012698751140127695986697376635489353688547752287097117233509333741269334508011038403175638053063690392501355152697026890369176023861682035591312449980408920870102912010093123725042157955697179940661089673553757349630691712829951067229436861324925083650871228782808852662860271227468038886522324453686593245895252194079057356762994865928668918025018848191082122623598756935324149308316893201779367681893592960700485756560048180593893166219516653795345226693312029775265469954017434444107398844320086653596359528777502911461310834719447683204138484046231551312018481735160145518109717692375395457536092641241850184886146976334656277736377305053488733385744253217352266138899706033684509501353399794876172776201483749699449614275668155417695793692234961641359111781971365833787966392763990437976636740824268993101443510408298528942993815232487009304016785735616202347397461838079149122498953798883660901501607654824221963805273079940305569790791075555524552525984632645468967520960722497324587787102179367182752049849461826290255913035951293815974833238161488561050765011123888578189224203306942490102251036693060006071696171190341055380164716994706950615918101534953566942936043760415198347433368581712393924570226112710669494707846599562368487217892748705927954103479880750411754926434002570125481239528112697734988072262743438420025911606568585660508694562134164791131383736065877699771391581694542079355005191461076676647441199529583174723140016003431929887453566054541284731427460339311301038730517649342361882192020359978826676178106477599392037970273036842240205543601579849136881098004409142064114129801552292063566081543501902246357564021106189668611417147878497843078079045570456928506439123621264076928592405944973549106364461227154146015788815312204895583537335281732806623945663778892329806292226106298553977021263533523228711629995292046497546137928050294009977923548170863488818464492109379940364570512005864692322792634642783890752606941464237105789967855741482638104893848343164913589876644503007353281017110670374561826671949091125877210911482984252109637195122915739461836012772298183979846264125925517991407713122920559054162332288367766833968655506064280212601157436138545554735477983564386124296003913628578861311891092603886245831587327151216976652609107142126619996097364451285225191811084813899856663961711778422498124207253310889889940585674522163182006381259066684814168768552621562719841368413356448640471089823044728328385921080671508487671775740585747471260924300878565986162325132991175989823198195604529173313733082691109239682813914156666740670486926728682698220383914689229606741438279541289567085584178943266128860182815923592734283757039133148341187600416122147122939505478416840278534633316461396724718484659451509636225125609628168909395607186808565480429396464694563059261714582174538889314651707964079183781609518869177553431346380625285366290505556057011432516167243713754023586143783364616376261508687375736968668317812726559565493074156596610350749726801533517789627908636258339276024836504437257665482288935417858169981660420000404455183640200945287527601180339987968598835986539884284034177713578288383546152561592340976457880878374105887561482747304238043977403917956021027906577398810008618101181041326371383157020952580606727078804883417128353795136275973214303207144975201533845022021601294365487697541508717522974032146095442780970749434026196668316013123719293759038478032126845058558494915461909676797200673578127230768672798053115297866529251871549761446613198779534676892671935840280652812344312746682970455937051365236634582387858709215835421062210353573972111314681558530305409229453936973816238870869725344600370449818637235098525289217108461045981771477405019480752272437058151965450755121427430598204494738669805471898095068350312861318775004193872155767779590650538995366071186864796791551729467475381805407352408775420368386334666054432925796503425186183509126638867653843770305542718899866481042268273815612802042824488964717832964994802557536810446105536507303742876586562133513301930947504392610835463649362389252930128588874595045361534384473160511872685289750037976796727304882046385932227751369285057392860027484582685071760745019893020470735059526009027893296557847544694162130583091446312438337387445684681356771785798274870689049473982210364177413189704684783396344337204918456733940902558255600906754112507945384487075010624914602997139101204463064588096416116090810855466326396834751767310751056673048355420405493469869557313274947002951583618746125160445257632001425591012044936069782080822252423792314426501270722459597612899212999722091328378580742270548939869423299404382266251859745483207159775256972848151317941640872205324856708134625365029120150961895158372457280036642640045188369738070069305008428883487199662958609672435079518525659746820501503926608522350222513977989369325123369779889367706636002534360873283425989596272580873298647303943183356972302382916166673020842241405798252955642189142175663085758022069516987834135105738191146382490618687075875182196731716461579708098985393853514116217986311813821404410018309511316481283690127433925514604677672067782105514371988510808985517849851511241814454563798130399715486934624246969269944785110457570268395854234080734921674227172053900216176066934016644276950923901151407458206299452547117851752338352951650268123939008850189314222656760498957460378823064724541521536051249105035646292844096898938750366389886726362295469665964657565728133979624117489041840139805294951243999288485321849433934053671140676732005187228429382194097256262330801958519194978510800167864874823973335072954970295784631221689063059734234853673910877375919993855371771071749875584681830335223724877506636392835243847768997822005032145125905112644879144986575895119314495466377823773009339495486029374169788696097530849580524352459083723392547493942711366912864266211375927480193979311761979986044916442969554095860969412802402423957482421570130916367912254266575328459673353584327572783782720863578555927263197524996348299631070510673671162939610054726677222708511408160963111833166579008312136933849194344539379357516426704745880137659448550650498819706770350459806855587974790456826896036059029605495265883185849169567987096518716167948740519506855274009578739274328875090933102226569885713712861003843059612197133010597528834320981239848381896050896900509267645864104885740497369931210675782370971737849582679215325749434466967392191921511491161901412224078289245071665124618568609930189636479587059795493160946404919976771324241785757239326759610711843234656585676417931851401063332990496851018150912285855640470887890193735336009394996801918158044246210482818767598280894042761929015091018454199537174074098877335259235962499938780664563285824913688289434640237669812468443753901500771651112722610387565815562311844457482813952075834300329633769374796733013624824856534640330277612815331822397892934439569157230963440937307904840595137230302777335405647957010923378134725872940212142960653363333048835912776575838429960252773983011545333300288265978567461078122434714758367027259261555641351172193894165660483863018712616154027482665023004727412386697448405357305255162817184205068705220415194088230848551387712912671799891588163708342750086574937322253675405756877549757463489441087119198025110777145670768180499120771418838966299938721626818082270715178307592168161954536905594802219266981449031611766619811750840599255355766877036221147938079951211010426853981869652271241303712875283152474727510356918964859003214294988412417699163779805255464802803719435249674981941247545737859945940970290980992491156154604072264127799254139814801733022934019331306392733257339541938482243327755476076668914926183752574844762629019725472733789244315568725294690064342797843716654723936406158480600050434725476977618382810159805218408132508857450373339477393281385643761595093139353382627656339716727440599635099262615843111663874794756342530415618763527786901175217350621563883368868288215669806739504858467505658015776529176671938427443447689007852181663732303164629006485037247381323206199988906781890691564787852674679404973363366008972374192554989420433850761881374083838538180618720884074358371705942946780395617793860884783029098947389063198411378743338809085355649312934890877450053890309451690865183073714289092163212754028657412359877322914566386181716076815419240154982446967674130921752463728152821230480937342092792606215373390106536254116939427279263075912472753980403959694677592888346636788668244405922862008773796778576664554691376543713640450958921877456719953358836554119538144619286926719548157891208580819767275329224387273775760660623146074187554750824133251848681218848169443464868270351541851091651991012929579695126731134300247032064460573950957520417293613806328086225043913667665284289163426704722780061245433944780674454956727462447070925939402790799456081832390940331615349641481563156519722186695316946884306702692493236824201833642883776822130630551621057060135056193971183070533639955780569230487569344694670759917576112504598240021924752644514361166717752279307151520408475599548962849901029212968642288974316276384237169260399351012184923346899428100559611550177298911880402297370994861833468903822777305438760135708617930388058518841607662335436038395973969583305784358193952392848986519530115899700214543738786008076875094575898567713855927392941863388314597737627864902352185811320613123598142576456891602486238813925690338639436238275787483549250778069939896526255668564341911011276377857975788662994063476727022975933502216592313622182685486834596709471942404092231680973826569983581770114254792678321746060786019060118968532986503359285111163743139412890090431198648878091829048985707015040697894412274696175760889267733456121074432008174300291873273413785723307897951055037175905659816341759671254194376016541469053726810284240284909751585325363199458570696636122867669215698659280199753557566584007489954902566586625106269051609679620432150758243764089642494905589486984976798641137047630956650659933067054411569558711470246061666496851214373711625402086010466750286581278448395735792760249310566641284596953503359135146058612079714447414723517472845975377191623150213651685442492234122087497458257478249195954200585110186398658227961648150718231542995057638425211471878156680939600918675988842685102173409264242824674837274273705559141399449088394768663025972846020819251997861362006506302988109052717382386910431701908326058662314146929589052850880746628234087365973516483118162242602443169186179769989021622033887242083986419694336056261542114551329140444506208125362010921519054015682358483550418218508280334041620961942712734963759563149596498621682897574112737793385480850176154361396140104598551816278874037240661228173828407209708055554528584998227857370287901942963621127021711903387870509607558218758317468036286804250617147149894721679115645509433970329190190930161776674851833051423978872871209218991184460331085989621844709804857763855754728255620692616924275617240000808050800349751151990847699602478939567333559892572601231985802444953491112820845350207309079468679952419010476796606599654961251592142334639497119301703796623195766815313935462167228669479045014661462109760178900304730463980538276853019681644559968389619586523823105217781595312336492969698856406735294380471810047997784110043602984750457453581598699617519397759857732123590065264413395020127447994218256663162638051924602252873017430702555043951235692340759281155554998770414411061839193547306073032750527325310096810016305230657847330035442998018169280349092131857416857855759519920259227321145345925371315270604571205473858703221700051117457023227268168283218546868197344701262959443065635068546047241378081627811156469860223240507449700703104564004236177557122439968830678253586564514117626977151957032624907199427639358219368245658730182119211341454465014214893993308649115846201384507389000421694977410583858808266591304246120490171996456054714271814549383152692138788225066340552999457347874600625132556359053548010323010584559764648385940028677703223230879626211026820034550450432733992381494785169642495553869459041443004177353852689637823227240338823647066842038590157721804278834640496726970522735348240570879606260191541090548306901740931211350844502124844436443594607067841458472542902517471919995359548000258850236837858279045231984068019272980176497531187413427918820110538671130948568701304108368152835649738753147183677800068764650916981828127122986420771803403234183659655354546892618396928230817246586826713285800124138048375495434197488659347039579861567120010615720439016300571743759876629476344204265885079116616389634759808578156351296377500243872415784539542622651140026144145626570589635209989132375165663142753571910173703810916124430778607544791276007963646898909581386264372522845039160683649433387170833910587122261628197055344441201700838180391500061162157497340727307765118834053574509838468257688870761713132928368217533851311769983071512788141603931842708066224450760295141974770511742281765200241668881278563509680861253700229370143245414017600499922081963019201061931475917218588700686013475790882731118355148817245969181182960341600143965948588007113020070807794790383548882745845218803749104939195743462239673736149168441578930464524916668673041962205654688414924964874195443061120071201668287421593570317622588296346418508972976017364723301825457791225509715434743085926655071828783996550700747758782139728754877718516244746178714758050989235782482416920088847938223409486388809143874728885277867014342424918541007015321652351916895778945161260506570513352156479831231020918153152999933477689232581026777929560705179537987345698500846245194992187691741409980171522080562124786745302958623889753560335764500059086867803275761310642420303498797097521279502080163542757603208104400123960907865472418369011269093088019213051501967715337670120941429331816366816944783918700714223216130956548251645623701624995173383172427531197474875652981399040609987979366453458727746039389101710126727100939765096499435036127075251945001865031988876395682039572587228063624606678826745187632016614416739586525411568966287816960310455542002600850734235589288748250621757741138438528397141740279663517879685713377516531498182100101430847143065741570544073275432159678396091271061958823099922858087974763348137371661059345184218246812017052920395773025131017356618278447694257564931649767860143376655709634660463527045241990479883428751749616689415546216707575833401694593108090856386030601851801699542228833125539539241907243966234487447675358391010373466611461095588791657608784670120894909193912683020937304115578325337990057716441450497251044464481626049051235318804255292898721722516508476487740948423073839547133324810397453551857053907878351583875251224381291638487633575316894045102262240250679120809283461200171893087561298205688146016683502553604587229910237930098451692019610473238300691434288522551682913639687017349739360753194283741385412695001066586758997794167577658668864246019424896436295960540540629482357043093188494910639900525378974718204650217726795337407898009383082927514311310269727988482760783937264398405796973530068261783275271383984817931785004280492656525137516050838110811337802639106890497964883046918680167663746733840508059957277424092547282428651334758349620348550507834036785790272338968488691556577061089910047567034137297017742929383117997354980176332852149602150845850767326469350368908821926812424090549355512171078350268278395751683464956940575250516214288817001315802737768342581979016153310000452446052947382524324151633122101271865020684086897537425798219949731921961591448513679012005940928935168738673825476258420575290522909913973606356167612060205268028990658410223267391132927395159521166287264619167216816559521101835649934960916801732521389929871565867497916906574684025416655148417633690446325178654476170708969698699019867596632724780948148104435463737878291228764017987940045704721812394137798456296880663805406093458908594014255108737607223441881729552487383946614189087514568856131805229111532958064452467346936718772865136523121258666412576202425573389972168730597153241709791663339210825951120248726136286988170607410681310426914677281068066001650223780636230810096255341318812043045957221350446576189039006099954234580886129099887518586652866700649499872112216855328329584233187193423027722750419292791892575325738025913471115034114605897763604399826078714720383868576289429868862169291105214591353749500325782527923011370146165735040824599032393881414188168488240580729349301941416340290025448931816170705148899538815756787710796936227638492830493142961975276973171163988071702759287774591985495772689308993586505815340402491475120650934281265631012001933852144805112288896892190978200861622762204632378688041852973027733539457153684435581071401631562631717524229351373527264929680759153478309260098685554406151954176161028926232445341441214568093751279975708602961587715521930186267683962378659137674052827849942429426554724548661623504405592008943111520203329350106152680559840595620098821843746615858209785781998060476818839995616357244148718407487744897492955005301144080138463448356849476515432872059027119925341640910257762215561848701658824981560531138730114667250103586573645824443298404128871082306404440443999470079461425543021226523529848458483877058957445129653549892712209981853573162140296058995133843230600837562999837763832847628374029673622505920228614850275917157601991933292656792329523970534098750364087902072048839247104129513623038393169997110710418559380792771199116840421852174936607850994375738115943193727460681746637614372666915516779693348938314895053309765591851271164930428225028029684239899091743212277245975338921608400825826749811947298209479028854097754176812230683598073629543220462523270121110675128377608729728667891916463907437026657662669925468588608546014582459696988685319389125379327148590858943571227616253334110290966915309180797296623341706636747530338154778557202948360830523220151824829033175641036035642973752674669838261215109652678520374134262710700720704957728713056666386274288356001601366310465284225809206348487504464400710089445358886249082532191713387627134447799920072255511961101051161063822984028596834508322248117065687554170122832190793085627876911300989230150271035231142328219016818624078309460130734151403264619957978876372448445845888731130885658375772093510708139299435835881454054550912961977749935894824352954844744844931214548414758724521251266715585613270468681093412155414518060682647052092419327552965712492449731812596763288090472659423036207977992111880591714395523011909222266610776741247009718066198281422619775243257075746672405110215832449143594924854920995912380233030930509883516812171156332613238768106692298203650913994952609873472281887806879340911428185760971889277268191957563830556211439707569113805291359112503939065443213105023024441675230065906402421179362621460018648918038906969136542216406017593458631647941296873498816125588154494899746331158247873479430116150128057196369883299846599447751077345679438992860524450541623478434888599363520232722442741984338153129399139453138731927814450950584562209524313068958089180739767188814910032640056758846924526631298175354940906271307935621517601208787917403908176779419483476576494724404006510061887904259161339746711012730167946681813179902957289691972772279948319125063297665089854048745296226597077723666526114817278943857589198248468819967728213339779272895343676902908527041068861769115884280624424277541084916584794411887730757433163174798489814099565736859461050080040239740102072465342841452849648918672503342944794588141412955271804113544168197052777986155750217211306130761143801537034989102751922577186533444628933010880144229057671357002358584045425836438458788599202794308584803311373008686483696378193732279804244911148995474844013626108067027388973122917365345213166652169725283025671270518527414216085950516378893252337821787408676461416901423507493506522374533193896996851901828719406757610769572304870664197180594422728001580880352989458864570350928360381418873085732758359462766763999645675149774722590015884963334834173632292648345561256922922358644456486709300658969926553259230809654681793286920285181717693106877957072786310193423240883437093302383160064244635835444892809932925337446538840389064333820036858405624912242900533980149358234640462038447582591389431527588899777898273506715290361947018136714020425261276666597670749387238845721309112460412632873362330182637323966372068001831399001348614274685615751961720892400686657406476767528026757771375089244689388941563652746031543105183262954430486995096227795845853192070242937118532453168196041366403607683910203906865343000438501395608140250848427697993914631038549419899284666801480324313365345056959351668638079175371055833772186959693170662182586308265533275938903283539906257149855904632366187300389386996603044613535091535886696775362549726359274348517121300874528414320470250357450775467133442829362189223495593073336363827566540797080845447557037761100164060568443703551144576950500279817987295788480085512146417611153689292979631120451221768888827948729272257675961018350048878207818370996181186621485194672415999889541280638818102671872619549846468590920736416229234738736571181762926956680947645721280249748169842135271877620030183196720055379079123470443042831100668337426109136794414394869295486672209798572705301391926118761831062595383297541939631075309092775029063971190472622950914177075809863404512609153734714890210973829081846076967851524530199904463766237052224440693253525602221694058662159403357947037219754855863596157812424731917471714985294735643269397375332094834129366332788788566116625856923349077644051921888660142870086115928969614210516235285409137459122614348923708846297735025842051223910535131607593753877018045033095854792425478209459381002078525462806912597323691612079101458153600331392686207003831617941080080026140465000371040297477025054608153470094810317225183803115136772505054925853197517658881675849446666240428497195904414316493272390354323244482241419357151226368727885665664866475691779970893835503382892195956158672138643035443081327166542875086582682790598820104320185642713204660119550371226134828496466824948808043054159898131721906460427886574612722905477077376712634892573194024539113578230152206217657704135181985749730487063985236572980786718394133225547784898180481919110082285635927842867029286501886601481706541768072930166683951561983565023239381781469951998650585069495230178576484169370919782019403722426389305046770935151595951153017015015596880556620299683961673159329228934160075544622682983575240433752465951864972650536157065126727850795174291143107282787255969458733231637091980233969779949667734145431641688848488295380284620709329134236198450121287383799213380803206036659802913715071908843111629279055681815762197838914532508628382208205681666992002892656088993599265228813797123287971718653636855462411477233432889157994778681197237851132520552644605683329305971814376238360645805835747985506080008834405097403108559452083349047413758946813567556783210566577593324667874190869506619157861794938693957902095909627523662889141563912209125103824879449714952567289843800120071646001295561728669888298025205320594041185276585901077018234818148952016122219379424623503511609111383563582190090448445096544705786147294637439903694976114469852782919505063921267749415172980236222098936564727098070974303419241135487606694266399781619833311155749935236965763410605358362349904425774190644567476517487647593261228703053794572055149780623358969820192908112466935754121744726573267072211167907156606423860996461859749128116338892827200394071322294521763880917070180189102602465301169578591886773813815863816456231800989071289368571242952958121871295265414384403391147795461233584013546586624395639410203083425612427033880747430611749717851110525007121645547459449275985323377730404895506148614909698032948098976332099678900956984993419980800608270898577136426930137160061723629947137942383413989273675977946178862276792286276584737359345550968943011654402451662701210843380001032876250670336262945069985418769544261115804130602793460288329043966083057759858644402073461763992304056144293216755902540502512313472235850649800801373340595468263804984588986431990536199214387872477548431994142106290057519364561765387746538616913129017108106063702581511863282597997226664832232414176734659771404775655819969321306963173973304287815046857949845131599976625599152080239264086714247886411488886027184033504540307206832838752547312408380057750033906571688491057922207343104917550428891415967367773815510942528581580302015249962430987145293463098706996484337896373420653021633710075910637753768663599858660985171419380941726426580567239265343146381148097696401088392270551025017576467309018410901288693560010826525744744680926391439924958467705380550377586824189636852766522038847392360403265673617381143908528850246311270544236991934710677357267726518940828336630612444680953129055486913184395827389879155775537646224953681703523735664099278290610286516256917041093528922787020735080599167683008864537703773872658767026815116600431708060447963181178556132018048642256249741324560295481245703502657787507223173244506332963701464211779645443266321071546040496555697626830902424516854593600206924641094845840402488015226029664975017296040829791620604507451229963420417697596734154863929678352295971047306949798018668351325322160417860373646826874920921712222497753174388248087561515770493807566957640621335623877942053797609878159481727895560963245893717479268141644899754254292382369497070194030678978205996016445861010519365112495905477074086410736045711445802615896664247563496609718236940524986242468666277632422915720895911252996360187242952585402218703965680828932288890659856348069016360025580087331279521107184681911318622296405429129905292046349954024329069550413827229419680976509403209651258318826394501064169114376538985785957987840290746915621175335533860137028057815725589552397810678798538373891828533998936451012323335752513098424868857543297596581769816811550686237562653188143910049760946721402010781818794327957940606759934084012156952152285120907833585584395685482617716212093388837857727230027891667271072724587606277264220835825565579600949456074431971208683468731636681289456111893670042840975343879217404182974717267601587032947341481224930259010253513366562574865381231055429274038739178172106542723763644670072992861463167808698128813685577455207270886223357172670262689839754957788652398563716926098784352477418289651784845490641667638022925748001350990952294092189919548161240267136438581960310615351489298231864450749651214417340694325564464044915682636084790055830532511270809887017437409289206707569471078184099768629106406385219321773332098282308885042294778700030877131693470902196654019430625315633741853898017879671082039704004341773034943872752504024703122910261773528341125448890040028422698740611987835884487154515317024785057175009744849199833663588086893351445445048277812486562924671695122323545921727220882825335052564535492323723468760220214097946572761704440831415355463995918583466846378985370159072473877445043989806833298672446456512981094574929374193135447202642912805129160589179162008148513962136060229670368717825640190622412000391462812731748818951536809630988333926780590038294465872430594096472715675680631118768245022195514262322637462046556222481642289561113986076167190948958788702998835178494006765819417921448144349275066301347903487404352507971324036675614202485351883820715272578596229945687715767513655241687499496304539061592406818584441139849936021765052308060827269297643292257090353327312507051974077221536010058849838455600070283596046773079492730619980199406211180218087958809953647887783555023304114310263628306976056655858142162033483269065028794199357274699842930181286024099111022606436405670875838489482245205505442314862672310269718660577885876030883815623890877768402522443364159260673725986601862117935132064605240587440960416293148731259371455747194629720219849542023092806790047358217072472532607977532532497630696289408431916464011296841707297566556958411596465032408920531768121369278164613530100096699619130115359580040142311076910677230992038029481784082203043837524794889735773093900364967350575802903154529319196145169109371784880360998639677651447740207115075066515757767079993881609379014873541890962089709360728449205579566479235807437274250464687455248873692301251433463770789639692985061869686770696881654808000858461072824479457511895180547597092757397522127011226211417103996592024601197199187953702605228143351531673207888086141240777980861509046950019197787633530742120505697143228805380971549607831675946397990791975691784638707925912980997815053800001884103254022063843116580179494222351665146477826888430472027170693961082684181336433129084778796586789319388593124860401818244482807117265507494724873675279844231479797858642093945431887892552082848881440432377948233675414416541020002416157400051982976923562691104490636708974280626491521927901302810282801440537338434098942140995715276750821044931117156881502668627517693702446245030708907889766618136052767242988129848569595796497592599123214916693455163292735037483912038237413756217917664164038416297264079743501373042054446897991307605324460725647301613581176814136816222043264647368437228151615679292045155933928055296494817156087197940601012842839470737840555272580603727100586915988838322859655913461229047369261145195391785160449343579811710307468961845696494213243560045766567543861511237589779540395037596595816012894180268860206223950160653769278567853470690243494280958782945262655943102264582035992852449219073750955648165482320437384986030900445391132476653059423237348142696475934986198679642807699231231024766269362955159863349391072404845824122866403476936209874826744973770377772182879014168781777448782961061037283395161148463325631836563564873834831928361000175087851297527575827336622132447528905799605813902866477776347627949784959212449571457996541159368634143746784639831805760578116610872988819101679752245068219440205151833592746488937191985322924588050126774533699576048992030082829854276714540808898075592351742258076824944036250451416612388298166342450309606320252475228681531245482309162057422761582072854720791206555582237318189157951640063566465172092531152372218249004129077137917138178550225800993464878206686937078461435961254879455938153334074905210023778011051227624601255545863209469270319768548312277938414332711523942972068982448468460763708305188883901220902057256508414515167759438915582175444454589293989322071439785090039742180624598451914787743147079462161885639948517238783075099702310388620644783896124051914312810461938015820550525231024270214860729412950828885734226645756403657351581706631667542831646628214621046757261550223370623021784061088885458933918857990781042859712112932820711440904993359408346092242650378971082699466818730310891059328997169387021238071455789283661067159324164390385478235391378539735851787995650017672034236711045379685522914329135585224032975836632028301325842745198263121883879976363560435839025935503539326159343872941468300342436300077523066573457448144991459167642158171620770788506179214585966065681017567941891795273641911496165752357096557788605200501382826300689379968655237224161688242658175229516615911710910321668901334528604811996552709848889519768101949021511887077156184784632849942277466103772887293164550003248111068725093902681703096375861040081680388555816628909446480337303308915841323969271514701517428618981922426071118755109990290037485508839145202624067848311153468777666889950536734117099616917471735430145869919222363145683186214006883474201367991953675710443071510335225963459478102045392706515957622535731057782887378621690712976517414827133164269251574982223314628499181774663866095528266610925261797337421745562721095322871050263889086233607116054541643061715368358707407009735226628958942521239556073822507727902156667829559993772894618938895618479549226080404754178762851906950423954957688397297132212043876560068637728854218039407026331319558874160578437232346782898294399566388872075627310672137229365891272592570218512852504832958549262327213118813673984385178331747320363216271450890715076602658632984041983751419630384058521615050837681276342458699235153729161980708229854414153293465742477474208165724301108989414763104891211813562447613164882726780672333536929751510602168649147745547940952285687290976802193698481152195304154108779856900803575217885470360373844116912623532350660370415049073469140137285485732817275154302382682518507888600746822266807246946027986408173171510037828451260066698049994483314492104335269028830485497343297833758640495207991742367076205962380308609486217060928282486261879033520456708507362538022093331030557976976463254892769780914173937748596080456315210932823565242998683387464638921969563503881828768548522106095618148650667483823888349878956487281479110587065219214370501657696433972029928933460633335956195680554153865861433442585664944921625605792604055645348842239710988414600450753934313490815864808569707192611488164096722623104013244422863156880985174618147934716701045595673714819783370611113783105459697759847265651338726636986821946480739031737870590397828190263148265628947453178747414040361727445221644966778663546664626304465668304929839758890282959515668925677619489004895172334781120871927118277875848791442229687146709401927750785492418851766967238877737267507779396508791407961908635089658999956988491299523682439359669255169709789382252555617232621446469792954122358333249595968820275912978390255379849308284707953991644812686585505749517687266279778328646214733587136890268702666016078986987572629387849827906616011692555351492548987051544301997379116096056802754268320933229059882702541983179632823374184160155161212649804137504708000161337455666655885423113741430383734903727079558047345434721302564104964865347291464711722882764064071276192589101570810446794894420728944351648046308582553157411066798986963902583865670636774652522708341201085422379281497262740729810818862525039846300341290992953467509795531339361714378590015317640404978524893365926797278561714968307626835973065195822640295287940608560340166872459099275997664745028711978831072317284097367713076225116718629926583086944358689146102137114764093221484663001830402835219268679678528938920539071130415385994604202636263597834457228891580705169249196497549518888364103582686448627852416309577144581854776530549395069840439664849550381540587685649038255490034877784554420431192685088649741178218193274999444502659051465491837005818598767292471824844249149833340750509796410826160877633662773769120363460621156309339527865371488834283326151521399712424125317957254031922464654697322320620875921532207573120032179270299514356627133523655752342028325112037065710803148504220605496136091697779769492988251868922059820270628210032776220695291280331680993714876263837870458273532427669844061575440471222493584881618842977326607365877027685685274033695841583341177687287561485031958096968310428443433641683964581442067906092974734339621474286766787407615999076380367402570549813533751228730276495283655174239280506175189730681807419417000085555602723669362919264575869736611635879778303631321009092770119948226950632483904011800034719080977267035231373498114896987878738681243223415242460140167292685085878406522423641170012406016745732207221130516888271578959326175984912730780118101438057120526090408645764612838935580914197722818784287711761963317304819542171432920381123963321255151840816054750936545572808178395606073768942107042053020073271902505141052682563477950789842169736284891441920299508022948584527365089922055208789013980169375167920043103352803214903776755852476169712851956578472214550390407888975990837566209915523157889992421307580566063498657704951235604227810550529557262532904476612776310850068469279388713042303483524662699445947211487910123751481407584283462650650198358711453768658880159097449856379611746374785399714604997807889062124226861439277778702525748362012420452590208630840956471235260584432021881437514283190596560492067818893709794773794201406232622840605766304254287262575122200210883135330344376813435363523312750197186273029765162378541393952997895797278928640243525310600914941077098622273802868423573828924499182143205728723554910173832803608765011886170635662922054874891354657185121908675413890443276007164458812523721441792466964697601002886227552847153876147768308731840912600281099387274224047249111776900685971864022852428600848710709943367333459136984692241269815251151446833868229098892518729284568009710884531060602816135083403023994100770508836483801758051609512789991644864557833537738467763206690723078357701373365840850273742682357438395264471329669367014386894902991737059838112401331953986590313447740728355529571028234107484666933345781149260065519533613365071025343401568055886859093599151811544753012563000717716282064127926614280246714636749109454095096638090778253575533510388693108001908038575546886822973905493081177248068100792098382269935373546366441280805893372916634868084768724254054779976770322129570323923339184558250471135378242347995457610021553434322314276259275651575563881101114709056931845544961541282061683784546031200192244223619319647909172190613190898848937598356937380991442842079704943559404442817241617712561011982569811409031031564283816313753005981986567856996927370724464718736434414748177609948817549387036072888266306852313133682449234347633776731374712861474018177231838559274511861933930519110378915561798316968882411237102362913339768399988532054236350489149886959829502085664009417039848878623989789065194366280879335620485535356977634521226506403891928375896401400037927538953908147194065289449410278141805530597063320321625718259890143512318828278367872071895945496548459473520120309480438891502966653292236602626362193382819231030902597204811416941606658685659270569683527530876115628589133450917830759238131774508341260565529806654861000824420808685086312765440950411224494171893119361586106133435981828323170842384526694709570661525487151355799757160400920612067990201445643995075785946019009878128320485254563674860434490194459637435325294990383123206155228445388944917913194594934149598075773079238752408594450168274889343938405833692280494506360344396879113513885200947157657151512300442993442980587385392757958536934360664082535563881535332438982948549696491836959505226626021962420175063601530152557048679067826099359855970752435380734103676717066710862347476118013305704303632446690939693725669642850843239658920330540641108235099936778499061052501114191625688737874709486554463616379016408672720074550110205965795401307398549438428012025807130272871568710516094200350447100275631601292550933642889001927108990125599135092547066598361755434909365080538853186247084326499698756806092335815707711181748914723545176403217179411420429125115885688453147401790528448823527630820235915986602603866919790707671690067898513206285378013005955034424397645336485698093336543465764012733973266816002448676728828353933265596431710842883048991265803653053177299604965881800144092232133599319067291628162052456008508309868952166785822587119889838375508715528612463596995243906538150439591565788324406413195392365690184204144004595437060544648362982448378476147382346041682969990473793842859069039183772266464531110267188082246968539427600296098317544343407183198938286628929433117272315058310801468486952788735234503902848573846759543498604773253310723768847555083511369059993610426120872232206178915615158215939806768811951285805432970157603952139604368200178466066485871668773051288893483795404837241504939881882456077300953473863565218549832220423215731452302724393424862081896674723812321159948040556271617688437732197959753104500654060853210910454841121752858130661022705504296277015137159611026633261427145169814635782293242392309638997672905891030534082877480297497955777174840619555656777013217151621906851067731523098706773307832366319856477872981772320434948209425121233618917257455007270161866192869755412036364295260855219953412092015161534635186702100610847245636488404259633312410336798360276098931612221373546643931198678004586426555645195851333838027916770092326808767515273232059048250560407306591987136025383944311762059329943131314405855691737223713100240414320234730900156992182203683707753580934454209732075893946477869456678693052867452268308034802019059262716886833060658466768414886740364145037379131774467718968538037750992135107782177894037647871900769420661509458423098444198156312187914587207748092317759205417461626956595548985213290145021613910333213842381552436355919118870317991020246651493359761617507901497933554388788363632906681573087379192811592804679357491748689967971768019655061636305320702482805114690574140131719518236320595075791461892233257431801022609450183464958814083289094838822086008382263377142040361853336227804216855619678497222929752606238182242058476957389742350062829234665065643667281674424314077682307685816514811252150179474355629424292844470981250719502736598737654160111255866962103534418450062526490538155328813730692970135167795513021834779833479792014302302508114148889340772375982741352098248016501009158756803323595800273297844956586423820572496163451552510955591788665478954970532427711425692939167970838581357126044925311033281485708170988890345333390379637456241990193645844387031540927571721976577510845012294680117106843602057183191092717213831610635704575803853426175267438791211599914051256052501213576501070115512877636795362556461486196878989241017658807375902117244677621839962090654769855492038586460320907125897536979023992986923151698861311527041842216408830651220957108588223240809564222064207935608109307132273756541012036002910929048233191133260301322507240630710970409095809915308805394141914088524940786356597506776912516080915124591661584017958632774163437566208080608218494881930300174878619549082513173239889804827753358672866058577972149319670419231105453618169729496721642636094060830680549100440121527271173606763820327548705691360318454836844299970330970781483946775370996348982231410121588565580770715947283645454833889007310978513893796791804832453904672462110671898563237131637092868428415159061461945715563851929954760806631796615964686016600997027372402372058411173572606969808847818833363629143338895671130200246030544859784024753601769306825552401107855494869585985160020987884442115647618799583088511139262010530181100033825798320195687389551528476270095625181288371368054900761477965027702722344041053537785549146728121865984246476545159341408250902426143143476815341700769288906809618707328367656183068630895285475270449310704541650208821614828112183731110219847081935027019460671572508730808233687523335441030354530958193211625162164746254806631680405454187331331931605932472345936505480097067228120844268079257626151207312982746497704677000352036604930646197836315884607271533999379990224385386038541717335689037266707249774917214038452878760654624368455741160083979252472945574827216197479690966459460338363207092302182037704090746287468543338839717810601629014400821268150974847688713137969735181566562804256486252437482686534835163017723328033272925220429860426974502470755581774493932633970520498568938332091447827853504304019602738556228557912315914082746040172298694800450708875045465134032332047152192831004758852347210200876313340833237351723629190393723460258547345823838969356728344341694747875532717327142739400569854752366233386039800637398885512494359381943970577239667603642484868407888628095074868595085343185031824137273601264842241663567164564524468878914207266909865967607762074341002739023660071277412562498942713368999298837152423970690900003546249730525478707927234447346298930185808883207547703812096126965076495215919596982747306348741720642406675167258639962435051300105021414645263636580185468450361624254163278340046858283631279152337859324363348652940037430442937021016317063907043309197146490246680328304913373923031115620051751252212375379446626864416498643644173268968239222144100181353406498409767969463547100087286353999599816697814395319269827298352042709878025649558124948573617514974428045339286477998896040458837613125365753201483994948927941442773924753695706206019241575143885052508153930557063990454372230569131058994610997767790326620762035366185059315185789548751740259199996310493929975153644228312251517538698966601041807905989178881300518077537639928343305110120589384590893908196534355511517947540793222861466777397689213457793497654333211256557542414249263654203669045733034534237669315225716912140645075904476339815266545115599134541631477783314801749449154487095776687781527356602016352555180072963494328047518501997604160626707124525276205091566044442286681546846144371094021988124585758486205270909036458109203695779270760361915883254735611223425133654268111794410863950346060299344335082698146832616756817173019689180489439310347356665737448862454058086242137467197630805739902764934216177997414624239462173393125766165088805908126522013924557261148737081624660463795895412015272047361047465231118588623371256155275280611157419109591558284943932634895407531949638465463892984796409877351397828648627611100359728850388238324826064216114467221395109285320162598846095842766397521496197158520499835986041938495758775208189741506841949327449544453498564650966688647095969231614081976269140169424582623841332810454068579024916221895642162359277976097848562371863607804589765719780631123955524871543485081297616175467940410037018447644757275336409973325558136914099327980222414421349704995939940365998452222266573769221848930116724662570804569273481710435386586641020532818145946085645676094262752744852065419622705295584382609482537889893804040620184633339024636751564774403008976276188194622052309247294634849638480194247826663046078098705976873370791148357764122091089256688088504810490673705567319994229799309930593595307416889486047574081158091930373877843963680214328054114570831593557776654278875459737024377190652903685558591177684106216586084466815702211366810675295732775273587747600394636692352112896613275014089332176865459523211726115481891292085702188499287063994842413633140612669094534975993842766932376512115550548694446503202334320471287983238099138243697012541432958116683870651856769213995782601558310627720115070819535074974982568227780318977986647288932984645074418342589227039789723780181810982131569767618970968517786425363264592889389706905239730691359547468094983437011022838878014654817170120423203043725195726442708945738720102887431086227883096268714930332924381335223111756138165681784003020608974038515010499168598747661074914429988676322005120621358957336755041404278564343619400397511086521701977480776290425639346524737479405999598025098348074836961491904145882850090048909839393032897289091464360400124210395272520664796514193011251708372201938772801013593874963878991083014964906657439919948144589762875147248329240987676283924936123065125031211528685518757393642004836645927348850950792619121682646650000974319583147897474577641530424334571399299659722310888057532974029434504515482197535810003014918490916148079255562075849148450483179813261290296088591772992958289829628322987259269770615488895694220087248364227146392982937440669111421752982161498676083218406732197605990081004990408848628718626678164909124878293196487622856714892914158498881425805554641185014179516730699253912119728467683189536903509136848552965804584219911498860389142934608219286882997132423203017926717635330203692622018492120609182316249889081351489012932367880459853041436123356434953461718957537782743438362858056741536143086597645616244779984609816927904359222009032369994793217201527326052539335483258418021256334801979703170786643049488182789701310231413610778196129363797358164746093957119984763741747000018837925802631537341805040750640700061060804570590279382233265874112830470015114831851666761608394560892473616887063351401490550337276809547700417571047871462028978835086673635998402021968956307510317670479583088601575262593194540429666054470035576951950830120229065036380528750844722136958560237756848153720963775775428246250514082372680577734979824716444889810387115038467514738998773699611913360264281030264811324274306861744286476625757415948206501397854587130308065318020864303673332825843057133500104374213312371622640725461492861600956617496396117316314638552369325311668474457618993178641366097566028160482781393278575781956083024743564330436329058419239792425253004387359881873549510085408889402028974664591857677078758301740010085578313458457732082078235030615736762344444286279322598853144355664167127832969948962154365978152112805835584659254658164327453891453133467259832228090752809328590671588089359023985693278571105191173650045863784237034248310019957657052462894811755860028228787890891649755043571029238029557338274495261390692945149125849969660999911421008446618957746304542413317896195984214474312441440614688914597340454069107867502322726177312832600604288311013977904184457334997556173025372511036018962503690472322975534648492241425621069286020780794504315324014931353808199259774779570680334598561971067682737608308939124586706955673368785703775834229610637426581476034259404452173430657902901948728417771568252968424356707649542946672558886049893481347208474088016622916031595880620219685130059781984194790286812787315760068647652381952252451392170531050915851180704704257428122418966365849841524540300984872058232249879414190983334986502155002277182749056711489521197155028036529753400817804864312904856657468414689372397626681798644886970867642552649032741899354512818480820202842053187545476604288439940850044777111024894204904043129614177915815703466648100296135643593991746820475648925786631705600989214950746517778101784927616929169439448254651442203039748762225064145202792676368363960401060377825922098336902582502327528706825428369472333178898552551894849254147301341713897071541445415632803278854638659568140892547503170181291946106435493605572321143001991555823430647395290021489178539953000825520140988949516765363556220723929075341538033674913463414801588497726748191313505262286395218885705195263981910940637290619302252935833990116827354736415266199764180536162834677822099200564768439258534251768919596435604886890381899319209163320461481007232860774420259902080701232412976664017066874707309253930985857645768098400410597547189224242066035532474689784931995439028106101695140187888610748432338085497472396581788278742520526838694467462522771821357415800932657860125248915872031808726609433473084394050100960613652578631075337534379015764421992086908368474426035880296464818944914741572287167850835682510311626010783165719342296629035808816090661245747656078457738176699475314202781157798874822305232372506971463281798320701709500307128516891128703984187954407751116697390274369881987422545121746396294137332585332369421342146902036423667181488427506320615777197595006900622580006135256933985990339969508353928228246373482003589172290785472272742436795736295204887116171678859182561820227745336749227451730395602845014806776983386535405682745917685783571095691939814204806193706250255736434070702393944856895036674255401555275136083113493632856354019991571464774525485931538877925963846928938005416150812271704825453694773118383455430090285169489908933647790384560589643746202393945923424552747595275854358270261005570030327728654767760615074218792827745772774527195686682726699844999655128956602051809183701324568542607954057521402269759545894066841593637659300702015387575860538378156407510088529414866804945155175861937366743817215794217318178439875992074450694081397445168383548280759835118275235618380305009162171643045458785503120737515325616425100798526405762951965486687875910831833696941254083800744458972977034049995658247243916402915535467461666495225770306825253954592700738514546857288346942289297779460702952773150737162688241278162100783547215081486590392561256697054648996735361180608392567880682233182500710169432511934469222981481281543658583072774122324509520934280517712919039831579795040857194322983060604699189571891176569422946958642621766961098754734551179926887511869255513297268507046317394042993625699468014964664594248707780738436302453059165921381461329679702393741944628530453853857318855038076720586299850850663090641543423169326198220615378249959614560325188663976162759398773910354296658872020898618345588409142105258121814919706817031044840385131900406968976624120911398637599173744513876517233827252968533750579233149032001412799720441594256926205074084838520258430337883605910947140939486982134911156696130954260456945774162626553423756051140264039456922732689834763055512735529813104440349465899271665965367526746398071317363123473405479702142454850211691914444193987642563030098087844607134101766194513318870611318313420814721545231034442564495552788265980394938150312606276183142206474161389498881391926264528617215427704304599685134264661401011846109431535749620900105561221985908964876022124259040518592098880349782572271052980586745991742721202173373251468372602843249126305684876919290399095149635460592421610937110696455510766802302967819571741837652714280264104546986520883873120736748569802566635302737854936405659438882633640308828884249531971994350778383603519192997238589489931856946713629893797661421478194260527582145250049556345795961232098386766278649205698676925910704526366391510627714805015648738513800365359001477169798189272804974275888461270002627826877660049588028102404875358706293365513735003305848362816793238816425489865613136850699309183313667173497395731490988554478213061468973066677664029983804936392384320743641234671614793987220547602433303129602147173560320534284079568736685729134326041789424920697605331187390203985096963157305164848520096197061698524309537468697471776977727139466632496209317843310323337241287739376981387072267755972315541112568111636872148096844534181304121398339286373235768160005394887127225108452366810146451607048975394549928269892755825175080046643405149600506962997020692426122822801003827503859688371420022273748815499734661140037036581167734787085537354961631512594336122227813161768026766299547475907257942059289678228602525459909616373555109577251178172071366122607510450755570224404326338138601480739584049810688133842363212282627817167129981784773512993641053672764315394733967045363728241360325827295362187700185244729873534514720314361654776299510121627201233098276595877419443880872852301538922278688754803869613898046370738482617504430259783195548027977676298961596704711918432546386304944391868060513354592192107741253368390009361676576748738134952762193555900270930885542283067371783095784577646765324546061827288262952424046624177663835844098898602316520740039953010451729873273742387994808415024464609372392623831203776391967726246806390346701271747432199610484301064760811820142172572112776903285212892746043361882304563486476719156140409649169014187670209737530628675299579958163569641855673295253849985541084203608324256586335782810329073953192296793055885949084172531085220471768202764084320867525719041315691134171774646604438507471849387789887967708354149439932052514074604006075912335783192775909381779031484375604106164132314909344603579196835615388256944051628964564300985226867038028326102261831952274816673673336596764512726722363395681510244673369571305816950122514001332112509452515379706808290893887536091882233431977157160311256682300630458851240315128430879361740362673034401984848594000379799164887941034266232240327425593246743672089522809506327866598472945657140086756830485346024815624290089701587771246739049368325714229970289765644370302903128233876020812281623416404113815684017238669462142091765359013060695475849229586848203190112814580371591156060735167825087335611001256611621747732283468742964473899042348578651482238513757650802796298948188593853552390780285503943230223322043415051995319233477371829331693452607428236546169966160312366773382885002509741463721679511222888319756909225579028720864568915807207193971207263472909389144721542306020944447249433215697697083291608441503558628513717463036395860614494061319015470488121739355449779759618233165722044261545444921963996760932871761469751350192654108914076690042953714104379064998629831875808871797781006272788892782834358076738575348002676167791196265345847416596512428457346607103511324602290569891035246048470957598476379484093560219235347378158494191354942875949005405793057463384450427374538496551818308581622596638978265183625417467084462326429883589175016802907651801666524813302371387189564981992090062729031898582942610687287965391937250550084557371283007024685806951409532527591273208599635481693544080808725189243882979678657696507913837843371217874749598250905644586020474781666584885141836503155103881506648756043930980609178320161576067534544642504726622176337596555282480594285615181382860231375620432203078391299551950119291605707311348264861788015402246180278278478206209003430859956616926580562254745506612285812699339961180593181277596067237097402779187852772649804062758561452564919309481040832395206250334011970515008210611366925909282936729072198477685949081256638284359552246696073709660292004034249464956499435758243581702287584497832566105279404809372235233484568217051433997637666833594846043312584548418798894145964558353497426366620868561213949990389349911666823324843925426770380042787461538711990112256104032356944436539252321015351239024439844778189334402526598532157599706333160594370207918720050893459198619744297724213063501903884191770752003621916220034997546766769096521423357519555080163347695649205555329503335199810058490588380445136347660866108440241524150947275109488472234994963686158696892247890321086339208824185346049734382387299308304846381976983453601429377627827840220788474109590879567361042339180943340571431655163042691674735879247815979710998663737251496372375764067584465415361368262002190420479565905300192917656314970903859087267194145272869418972643070756218554474426874676092107864864297423582295664371697527720725395194572087974209713315652372890235670416891037429035590412557373864517146810587834303033885237562897946522364649404277049832936329174829876712518494568349677255922592527394088638596782572221339390438496628216896240280356681044392448582245121570502258881542311141720877541549021446714886375619637851459054404901189813217153445634850194071991543573739389967491313951405112690399386326787958942954093571794309544162548858845456026179309452542502411146367889917727031549265926786118848035738984981621728891382963919344947862729100195144710803084379616215444431658648937344780714476467744181237183024690289001097658430215727069501925392396264489097426320589396289738209858843981121939527792834161981078365073678477900062632882666415280528652397859088645133576320979997605313142511919938622354894879120725906430409747329686825399411401161008450109972582037318577939099869370493303680780043398814974619334488943462752066325468440046154792947950150671718742106059043504191558848225525256840717262971832126943915457763815421195550098268388545458065467156817170083394589630214383988656395572214172026627591012961261039071729197538923204045695557715114329319264394417639261338565199119229786222925075933837632604007161185905455636581704567126724070701425216137799589971688714307260465306142580268226782488479529443882213746927679911920487525157772252991324524998348183593544456310020312876608749706707914483165388468852949520824777016957674164276213999307309003959874431245404275658659302354464625355037373502910348537725928530968732398685292875151755072693224796046385682640826907363819197311296898628319903852240517748863930921514621489345035490775404125436089834532101742777461135059529068783023940802714588314975883361467194029189113315722757374796700715374486042993949139593379135322796557017413825487534026707892631605843608901362651676445207810481942151608286452160744649309806739025227949854786263039813021686340599052508531466216885897295193933752913934253674318317380850524826482690962376247063299760048504255351266115614378299122760635924293888603867658725408143088522089477905489342354036053535455556444387801348543763407189415081377757659458272295829112692565186000235397090658489823861207813868310537635788488718590096104335037625958754144479853340486417736567584155447773056177998961421245965512206070228044963673593812116900062088943161099034807515361636485661523094991800882889950348849264795002406072597107920537530373463934091426035354013676549720406246739756019794148935479601267464050042828741662477270421681527274177822760829481063237902807554398686828179372962552659402183195609209436966326389471284742917295690784576180059282783278893533679786422047944566457073958617152923686968950782076221030134085125189151565712032937760364880586849815141181915100771660552389955874825109841755639201353555486975845306919315811661360140393650258102899681705878727437759690399053851119809125563089185738337702725722744239880917770472275185232233564436968139368580107991923554132470235576160724315995980489441731271536585488367322764338490513085646824400946781482684898505854166994350604511566790080265329736317919880992852951945214714611640316954905235016342375970956816408601572256033132096957302339702971757659042143859076228442185818875503451129950553335086635256523778971299507474100404222688418996433269605780498203799944837360771214016053357521222643231881301013877243844626955733997855072352085026121557079972357191625405244545204717281663340614401118909930619151778673963564940787004291022656840577276956815374684667345396088876895361254806633563115943348450495554708151265878232959689040396064542344372303458969739528937922949005636426177831992249466080203720464182440471765848411103105666276947615247298812768101448311443865668560993231180499966560583906988241733521908057720898435428475295027060517407047299309303037860416115441539337889770731608674858348618001222479927267412367975072708159307849808909023302433632670374333893470900517854076661564293196279225645329385130522823699964127084501858593434884498494557195023035763750811713656499437445509725706299970406413707204709886097693426015183555527399651683572647740578060606120271835457990642468374174527731686206818228865969799120484751506911179591480933412934650616454101547014737572991100347084178344357046020943788157342808162073798321370200138107512443922362601556392367755716386257022233569917989232343238247913834132836501269833297456002415608679489765293165046868866328747385548282262363392877203167571066920224529434252341439610432446081867887287407876172485920128513604429144832761887929953573220532371966422999212783820854132843759322217828961710020599335337246052831135574852166222001331021922208004962928428452795275525269797128832143569466287323357667747715467325415586607343756722236171391740087926100153814847036915728882051402770665175178651125254711187149857721148820209707994169854131413176735796493862764694373218037822551366420958015077149129159780245673934216324677185049022200680916457013545709954565941637346644011225690718792443627723212323520542650673091917376362634576936913674858735500302336906160741073523020308436298888163191022311522317986563084447475083473988293644044764583659487903626021886048200284008387747356507695437154632935029253031247617381829799491929371904263512768574020094970869875485666260050275388238302843444729282685286517063308850557683522725220521437206633226459991094782393126502880578586211423738368946998953275814125368278638373107271458160718448085541620887451526353206964215156437522579623213141653948170926284626006052206540903701591948715721073654271001137549367898189452225636805777836924919614302763366267570176433524147918785545813300509763986839251586969595849700298910060364584395861915936544135492209939028014292393954038021356715477171963183775520789716146231730350273809364777865676312096742702415994879879284001567682394571296258851088512474828968652789285509080413729536469186255601689305956157252749003547240782865415205598952835847127051607538100582997563371366841743428250125566440938157120966216017722373399036241249929746069484314822640403922654023571438468519809692230299127956540197779561829103305664406066747529786144087836113364465987459650468434858595140212350893359555400639016512898268251902718207713927210282974297792007422736993523353059471974395189245676869754860686371521004769350305431270993416201264565276866947254974159748457245129962846320693017504194902428559010168629395417609688290050330551400230591149827072448576172527357499142071069810626072077441505711977327802913439059216100904590558243003437207316496938656064745273081521254640632781833980776574946845844397938774275535843397812358403111947184594348800075718982549406479751793654624369292769302254721318854551582234890439865508116327719977012122707047617900729839534199420811026985968282175481483482232402680967953303104534950231203130364981589373881270202781595122947482610977757961395041603275474755441171766537051114523527755808339873016071210453301723990626240109315995347482675073259924612915243977528560931212214868678389939085348581805770512791301741810756107351831268717980833718590490558256978370203952532309154422314714604027088742062070060154624254294324771842468573942703113155946658764115646932650900384240038258102191712255381590084628580996876577499637960145460655521652759337546761710653749693023686300779931228192403875085120273546072281928438252965479783340113593260784246138754049667105626323030488555538535912493160598462662749563221791905827684786547383737877551954196533680277634065789655731718890375032628468744140861995844634499921390542361845442958995833095090236785397648602855774146133020533858975742103060883361573180232703754166528541055006502186908616924208848693595649711175945561442076212493940039395695070072549287695258377881589959917942289152527301574297705176638943268245959488726683133477395126935229070511614205556529136558934724021981919664029796536432493744613915552191259348410398846016373290075337558816313473998414339940754009099424390824582012639922175217436281491634771897112937360813240266444208033347152405217714442165657586405182874365505880822073540079018819512576925172513063929319000302116728234788395551621901005980707681641932779929467452058555260061500517754974817747021641588844823606671531152476091815806310636765627848563762579966303934205051619539827739074650890452168229944744428364525467057197890024972989994094978862946280323804664986941259500985887829178903148099415052582573440383654792961209362481390621377426338793301850116839543356656145506455180840118938942314114038026541536013711913265971656311533633734444225732504556314999975201769139842063558933791707883648534101490035563511025808995631069699641766817691322339164377834982638788976578902445126799779836859080186166520468047285334529177187711491404947335023936991819559042759908597491339040485617554750263619417181841368797821083370566939728095529891497935551828753511387414209638066101358124661824953520459040272527955677842577277005963921661512415124670107074302145671054269743420861313609060525517703047994491389974882413134563392501643715790839824379526998944350771417138643260486491242292867779925465642500099179920183350145133356185412688766917888046881489112624118372039800179721166484969320801438872986739800295946566422655834065638234389259356297757905426644219806111777535697814405406104279476080163471393243516921565983421867969203490237640357092059910462377065922076487126852586397639902489586416254336575367946231291727917058032666691500508223148952655792806881285928014820374650598615144320170916811379834124480265804146719695673350894494815546730675618101399401843060807546261734904414400845033029901750590305440303147402367389810162905373468034705018871257062604864047006540900859669132418910908968143710161844972067059908109031694536091615443483102268050856674593123532810912323790518179594173444259935406532689952571715636071901277130693227608895678276011265325147130066281543018911397902372750994988550566902846422027533951452062465890148675740335131420043120129873875763969872673754283290478162774134552971248701628425670489461276666073732028776474604536838268611884594631977578272075139643452314534833528374070616098073602358935465030103557201901192226937021694683988220957743722701839392500466882546082653399334816009556540750971129363451326463426016502583698026813620653042224085930625781663330608763898119093944924285068373283663689212764699089066949098797143430213403471024990653416478232054206583701669267882294787166799537980475308203440689264778538869545874141663009372356657664367099512232131454958078077915991221790017313984584973709199033226695841671688628428732013973175712634051880845465361928172194246923679083101745044827647917863060126185215844429785460225085609725588735083519103291485273724341104755533697135455108794899989011765694654147842172443819592069998730242994084970250660321710673630503637242610644581538390290426153347359100820322235726945515880587218498278654573367712715682442063730282614539106246740396811362731399339773051743970939373588495469942237863287937868556214765103853049890997642423574615851469466643215892076164077163326173577778559458130446242096274331138120176048984463550664198456331674055573431168346030405367763504267180753545623758519384886809871101205202625872870719391132992239128964789433664069359750241469264424816875379860961135217776237357266935721082421660766714386028411424613722814372752747608623622814087106559183303125561417859558875312416401479103557879736467626592467352176428738941126618974065086402750080052297566416071292486190390805209880605492753960013286739208577746077592606129550553352649345159432149365492132880945878353820610628268720970629204345373583683668350561623965392632197880124450758218659280367223438709533443238839762355048528872783563378781421281003761697875204766099204797706468049718225787305119836104014008925443904129106576127447480523473597938318698128614184998856950772055692025667223266785554696629155518555623484944818880639563939783652496477442803872894012473371347175239035133937836991713075534046937554892239635004677179930110007188402207474538389851494143440915179138387554033986165466723776115790643781024540062417182948257419466464293995499763905400278989723830788924946732327889976321205182170281316877341239787717148872306922491012485675257851265471882844482011733959920063889442077020501690875135238949435045824665806394412278904960439769874177827528367964465858741450996590223819428676050941442974945696034519901701240954067279775021950905661964209019951075431028374385427240588618346850492583505026656455473660354320236457514535498754623913081684397643005575947212444434414424449801575387582083934677825263581367816556131812154059883783969818940546733762515267396212424780852338740998999340635347377439491797706210234884178629605952447690090255164986103866104394525847661875276406758478578548782649273574859147200669423592184530756950226151010827846481577622188979091354942789693973907211970331488751745961923768698570446194400045600584475528607751015874513757311982200590219697618997121389240545802736484560225119921661293343514683038449798006057985643607271422880299528657326309872178449352764819207300704722314745832550789421068253918546416695557035010580834610496294575452461697228839235875703897496655317570832500833103095220903240433556279479002769165395009222091248392651984576577618284565405983207653138281144152649915694805120454911968101246925205464301055511728609576210363452200893767895631247855273942601255787710018256761558899035393228016808890335844972640847373909131386219652550751781228585942259406644331564830444151547827411025843317999958040934934108777448680246824403142152993855238723747406022706510474975776769598436092525026109450465214608399427638619709527737455014760875131051688475207674813590441044877268684160103921339124024128121765160552087008206540556340210894756629538471527279826824722330733761445597947467867423533781515068992452538740089262610952198320295616719039740697539211309830819792202093368669373583268103920133818799758101411183050168192862507719813724394439201783064366945580287132194452171693215287324934923335780424810340330528554922068540605605566401973584933444288355642382298974859316536350441875527282779375852940269518016651510202807659719688677444005243145655197775848334737470023803756080232822232623296890670439188504458790105293120046924901077805549878374857445736298240358504281656474640732868044935027435886180076036797532570807992173163243519635077807621541721674411769690315158345019913695332649256677486423759175979071212303816137232007971674868579927261351994243635798883830852984409832252248598845115305476719225216871093955832099242971961116842894693376854879962095896878853646474364843812622420325170035335415964254227854568580080983546123483560637941845529088532623173830245591990498758342278457221498620855371030062452204718227903805295705736050142746057900752351792735362750624202329188251466203502299737967950762957484146611476538278652010016499230022292070926729404181925249850305676396163790930191356804760963039007412720176238072569624769094382811488190839508333049271176207621548337415736804831023169151290065763740362036512251110563115745147526623196249852228638611432250700932637862267998383911742210907957957469612617978631433488769044836395863389024527080031068849453724932940387236784518680103886397089968352721392659114608467787986623998996029157429691176573051378958500926971664560483820017283895481980556400636410651612596344041411508894805022766768818040689692161153794250377710684108764660091030684834722438682125583437237290112705939587711142773416585901270393554788413068784639288068310477105574566917651762600216265695218265032295213858865720782257053931888005501019152597967464753856230780589327858759515420401426214083054220574061924712706821106092765083303810022178735266025222575155714710794138114177343478784842897860268029574090925839006822429136645651579353727548245636743911014573571210125038005318027677742663214552785967284061431235820433214783274592458822347770017062816205272800041715382566147597477461643798639055429684713388652757595938981813779943434095807989985573991472176168580352432209588898556047060620642524222550950893457063295048245271613409441454625612345475094931130810420569679203293913019663326999195238728899235820329369952122386661626273953774621233851371317457161687908383536949669823093694468326754046410415269195456408149661434178552170450141935327057462964959726922187098788027051363573789492454693922844628946069285208771353452834899901996980411416151028852339521072597989226877295848028761356104111860318549210984729806178702696873027129531889193622029906842030794943279502920183633236846903979796969493246797782099081170516878167987031780232458806743488167359665267084774665689865135056661457139738385644414791229836632491682891825012483091213498661006214135129212468468832139212231531568973146098701272412979999445661278491058418050968155526553945494460012934053668114969506518837711756329948159046598962127181617490903201627062338674547133692177587360886251618996071935001066233494781231503736318834686722246179716892728805311067891396414184548312432594728190975622953153456087528447178397718492157112602218435862995585331600782805852285556028483358072528660417264875168439608318006614258607589937455344358030865390379032354561762125340414878420215606258924316251179903086529438107161368523719460231271926025253135955547740015040919429527280394215326422356786228537377934420826667996218983588023372714273222929243706588670685163387397776337760494900701565200066743042703780036662225985369859854311842572164818105135612830687651327985394585048741117303659936551116666397213401722623870712630096464006241885279332184593699727784917611629692982467400929327874499628106561324253887043791359479311227732186709681655311837289897051961467557713598661017708474566316665351552175217464674926247526984550263753529046808693768395434005654548164292522907055759580566490679062737249051777045934148429443960515021392661745771106618492753178432588393920645430068605127818810695122268233183271075245177267770159087868734752630935484895322141717767676752654442245710644362600172063357003616818128018459960428002538719750213534263369740645992811007083537624027463416249650752644159025031914049211568969385581106073949549452622372583708641322684707023741749670966370367061614016711374608573550303225757565972059757362570584073891474513249214890622155241576554686392587048448732950076730393886792695115561678830442244024828105005521076383254341707095052478506310091301791971706584854274322742958814811317364375824524733404501009138359008268198438932244118146953931950759190171832994034718357890431722068279580211684954654740959983546703589098057197926274102392889812782096407971599981452147786913460406179012007209454181898309014119739777337168032186399717493636689631711104019759857985559357978634775231154315224360624642545690666428183606945223200958656372776167514295867415665005349780299296559863941600844964286648537397223523478982507926947786257636289308733963199627877706424328227949228710993267053072240968174082117890163435275343230965004331235317082961034268541198076746423833799368736541686708298117240828277757425167665459082720144817340428682023995216588939582092987783903958318475366176773231294293671338318461247333280351282568725194772843636921008593166213313152076421711891392169520694769644685700748259290640336321151516380746777272468081903238325265107583601366703169626616883286733211234669640591488214270756966982310325721192628967223861617397979638444759450607031354105462409112561351590186858305577926272916178369425935962157458542888846658346040199554136536455514876455953325662462708544929694086258313010178985184094126794876187571240294610188057202076194865248890658943274275938222550524952812146156555166389022994140980026021061290775777312929173637766315080286701362903021501297253453806072250964729301008854956906606416818005327000427292726739209206614099677422200021140433798608415809075815533290994942225284865153960387824591689128941595344944244449559575666184411715291924968060512613680287230014573707918155312694979300054898644557868336365060204765726650778433423912739008799006652681332660455676206027453538017170924255531879343969526995698347684405506340285875769004029884190319572077993761941685600897902592137305158823902810720768276518414565411510708019269506379454697869326712602128381643035608084477988552772252885833695309626146149747041776013613059896197147375436112052748420720277640584813423599134477847554911055099552530788214534506255323929494555365721025700183233769255473058124098609936966822197168157419007852329596550171811706656307653871850460643611255108741723317597678884626513139954850639511893249455348045488918620241748807695073785901008152027047070092617951888679856740780180893859354082587840995288803383298725050947087171442179101603107702644742894148079341556202275412739505235172872347354985752011758207933245938335085876103383487162655921251384857898630791796464923527362337344120704212999253777041905498298578772447614077606541860903217899561679544577676124359260627391118222889516870996282391634003272283775540424347410536483744071041770647565385996211040262990918173947300700843036376616069607192678248425956691937197980802401582610089254429115060082612677600959018471259067720452812254202558585931779213128625341125318385630931047145081923648983996529657062123625368850864371275657436449622152825540469180562744564180111152184387453030581943298980685862684977554608019802848468672280765666641449725583563162810254297646949441664932840922833871891775083474160967668066930077858617209606823107030348131988009060388375316203114006128565107481323517519360232725010538477991742114086544743069180472138067423110170788266521246179329371802486685289747337882971614989914002458779858982832700520699804582333382301630050296534569090010980799415735510111905218860424704997632196402230555136581551409297544170317095773565862581741891213575417551383837319400801732777565275967660013955399505018350953451323528228174132476595594118159383520675697362888776046861545062905639116219200868269778564292621295705666690699009801831373622914690514781796645384243963087943534084119729226567180595900682131553416652480405076856778206107131440013550633484543154921758410062523592954797498506304932602820765101829833285104615268516656722044456269448926806793756753195835030139438131494387946129490740200437321462334879780255308563223315717989919478078397064357440858468467404333891594673368358799566274816911529462626279700551694824197178949395602264087716658708260231313006337911685319433907658012734132141250266498756088000941462846129659581258074441518325070319723950216004878793856983910113444289849046936205830807639993697939112359769298351571953925532159730136630677418604402299701393674198435114708475665781488064932767157959925632648764680170966163299289079376645771744414224742872780869468325957619502054598744118650473704592810665899558787444409288001659019214204028359662550463554453568597856684956253348626281663829885731846954131716685126916290914546371577371391528956365425789528208698824035241486085439649969724750441309450255452136804717589737806334150781912989011939333512620157522170262749045881474203240970201488561613738283300524254513147374189816692457509366260779233669171737983691093168984700542720518903302849208327096765684949684469630683652991843133299025507144216817163759521310007158681632375825350383261819168074714171468609499722332982792145285956814555761303734455150434061049247164358409400737212993865409875258685233776918243669430010646379300155604218960818114082821333249425151543371367000246355724915098631172993867511061610619344593507705558954328641892484872862551623001039167396121647467284032876724980329635974349850068643336398673465924798069551835833751383063003960710968705166606865195302699426349627167825710839005744305670206278743152464135451975775985086876607204603263364466616261295463567661699896348671053611779714971504285222253808373564589794997073084710362280294561465647722925358181581059750819348643612598751099489078702370712152986379797753712029651209907701785057374777906158019395630845999367362466556934345922869902083668239253226478801060697606452459021103850683880928550354722029792862369347479901716972180153820696298612197292505105930037178489087391283032217732637654847201141249773897745384032591080684217753120485430777556649827236190996695411003540004306755756515505877466042110587197985563582358170077640228041465035990813633690292779471338108438926392389744772474770243062464538577141814569874505436271110686672061775415827124018731529860083508969885116135829552067942122900343596361936788076983695141100497428054262838366539970351616387115407720394058147214867363962486622041481933124727291238753746028228824073216409291350060210268657275577372829550085811583161503167251718560750170232784636833979770991157154398166271864476883350326600038153051107834272649295694233253778036615310090465051519170833522216779520113458680898523935414389447188380632375576599102005010256854370042283068382529178324698228615589682827926290944741548289184689285124628377962405943386262128706984701985066636553377973214868030636197561244922558396466329355844201408789908890378930399491976290419504340980146545769691632032712725370291167357901558159329307308474778080566647467176795473017281652262210904434706310773500110761339085610774524696537578164827540025681574529265565456777115591665450415667515678010558304039304405847442168106570492378465430927255272902469514929850715689561690020733705434978622648827191204822446203040876306038273196317574667470856322160405341998533793114838333240736405109272650735046148036300140530250758338546768928124701297380524967507973810394267585786837060018609389368614415241263635697779813849393197986543585384751431115678234360924864764475950887810357280383419663174852485803579342639918542212613221853210236062595639511738274825271393939671073004331169054383467237925821644929188104235790868881130249728042240026821214832087837353461947700995737614521162026194132576149141535618286062088862188576766780670999955785532449680508970241857371565983340364417039620745243185315544354959562590785971398912577779882491831414971302063995967241089785040037262011077887065860247662315295723063146121133707303464998262851440366095069186970637619174193674626252765101599697769829624130966270444115122750331121856978110674071179607778085860088468281867668861389015534071048687357739711917539926025541053261297053366640114006072028188093004896609435580938983997755353584456626832511287153498063571830707882114249350212172762032523325122320930743594538467308150198083864946148701497587390515764694770361153830759579150500701137172132158798750809659057331219952935785674404599438699037302513011650801515984824139064490513964837531162512579718354311096935926044504230170948485771818740218939650341354542440455812555953355076722850625804567116218189790514895896006314610673746438198125744435402907128705814514329297737545812268312714446747347434062183750226490021469377171115920488640102698752666381309653225948024654840829639942798985454396935256351859495897197344022669585878158727836011628771324381769592458932845717187775477644824127483485068915369616961817337728965777185264291052193208432354679567754846929453791994361967981001925017169439730285521571881242585826008481025877738175476841084037145162677687066635356645147509267538169443270540973993056415541955583941984894528697913631594594440541225545372557176966475955218589931585366010733187499019024784278384125642959430856265977805574337767654600623705401836511579577031894254085271631861629132768029151500897455993390261410465678419984474650971501635165683433681081691633608869671911542162548767217325459847895751240989069343778559899098934621242011578116757703029273511385351484083996425654947720658413867057882066645587295331920168965252282154853771670017285596319965219848401558378400275136402100650616517876673074945385912346692763831899547946776395677759839632576233192277357131369001792585985093123138513912937178604595963059780742982977912304465127125194049124535251680151536205971775748570180596277883598664150617705365741935756315893538223583977489166280445052848397432111946883159039676196102813193284874634642402518301310916345346654176616917591690567873412741619694526528323498470797969305966627914847482528528622975302906726299892168400532242332616249996971267131725640364523884445638278311511607723630600383793303086025104219925944187303549926208941698289081008372906891416065596163659956908734750771189300106554722141778351311922216300923426397758360290986876409411593221499680802055835677176578652074274899029909880421841123607386783144847288620630903392983711993669819680121272566684254628753477130113424043398957443138166565118218126517243765537759744425594716285139101343216555227066556662653810870548478405648713193966815014905955864201932170983884042302527298531774215934175830247180559873690470057169482488277104563884909946356281787474427574353139660478669849465939511489672617966385118192671584553223363646348669851696493087738519514741944896905060121651306573091370758128596679206606370789608620766487445380966932158220257626959939017766024248103957049810639595830318585043621493615197807472536168694703686934684059060040970283807354950204940167939221427023062363019637557965561297646935609526077413226428776831185445602575404212057889574837918643443393283965174755780634457872924709348868724759289041665064379060682919051590789371352145156698017682775473090186072335917233402833140818461429822346536979350086590358457838428392612946174114502578822218649858854418907399993311842066522722802394196735777202351456821623503569037755904732539313321221701603138668711426565950909324344693126077011814455541323722206368732336814525082157347576432273775270107776363333871745341952488574376401356843826192535400980802753112566732164197941778789103629277579179302759605579983559429120388527352010491054451684243361707279824929730779127443076147879793969678733317935359191163450184101918338008201429281007997861050971618168179747639190028937962862993302494603893075701105369691949363721112227746529328640595894147877792854814714576603398069896687391954219094632311835826285680542500442282927507427236099988069250243279084498836811707752090497241312348836865259697429614690443939237566883714988772890246503848744306173405937869555725520857074348188673054281683456613853263044830686013285872255927484113376499970265639338381353639909532920698793374010369812476902786099609622609076531453652628742435150928362402704053259275957488131307800937194229206454647198070469882143231766418009660208862989769009196688731376602283841146940249059010936966261293819228582056991281539805821500101104313723221183769286895016669702719936451358689771349908736902383372659467530909676891396028097593129709851393650582597387222313667651331055329376303367689368452044767291785978421760350833005374357999779550931950352972080778557470898068254653627818126464631241841469611527905134209526472994966994803234884036054388403373439190132639010986224272827782122396201411592074552741630833928107085033326548141148097336731649690206573780173164060837563373936927455454144510451226601704266290991567941722480585688825983702191581065192138339009653592797874221587727975401859043028712672595213839927539166181006306078617272600493396697398331102692768862684091279193918677373236509327146477614829665905948932737141987985735480662488847865620190712055287035378831146424954198129744171308036320445494808313828995201563699197791330434341828578436365895118086116891215952001382164835272356753314503045934771944280780176360615704987768739483959608825416633628370035314883528461426555320887465532843329869397490376158119395807313757029824222075148566329626389843615197259876808889701170880880384993042975129925735298113734394004225498013224714310405354620134705784360937741346541597612272787985139602834914693701670330160348465418784349763038761088260151534032948490994527292490609323229786373234576088265775778061388913122789780397930023454190670567733748218780598164482070664696427320145373072278813665632129215119639222672212330163858584108939704452308285337852225571029570247022788756244594671778511780759176101017767483052960546445472848042863111400916462659707127638551492822374059620044844536917220819305035342524588810785027033899533112874301459481706363243473673723560117791539234966201090676775144440754336459439470121265701575365074058252506414513512007343564502443930962319950218982836076046112419918038268490935513314552774993194311951750600786615522404815134214171680179401138902621146670087720057492872429852978642515617408434590879262230827638143570911899333334447959796700090883297704121696647769647249277711200156576398878844115408292123854068509563140485250678843331152519187494552524379479510265633061902716770984609127311005270256817079611118170118927882990735197776903463689602384118488065528745487303547821728264408811526469399737184582082843818433080662152238760887893794815162948590023686938566804708000851113259073710034838098608367478593238491323912495722872306998192556765501166332826216966007300498548420334230016790356704386311958462904833363778077890381254759327469876146302038577756001660612457606930586595856766627512828195935724979457413975318356738320520856716266574316211242928418551732020205061390678884340394552551647578471747506287174630955128170758854494927229866764502596316383053314413578870884982479365032012846806439945024964511701224872261536920531965743687626580302848508617854470650352946872682183791199072636289965649456042165712304747947122200790170509054066690911904902061883498807967195222140746804852755599554601375361411671196013477103113052672098088233818428800342706660074025029469931304624953341950166430407350499058126126647332528640845872138507130837402326453590181056468005304482437464335481583284388854620488750533571902121528296814412153405926920080676622488476449182032568866919105030398229815080998246974894769315246946497813903750469172068759995652513202628271902710694852626738774092867236661030201281570245471881956951532278237175601249304622577369515594705849278563706344596120999946126581419502368263151401134580513556534391215366194536923934729682266833264083411094914448971295991416377998440961771862900435012934189213633753621982189050182670401795023254073057805088496377172056423069519191778805292861623402838797959940283349708059351944441116761557496446666290484360268617605077323587634196563119457627144645711324484095871160895004049018688590671835026550954897707015418326724265288965019623454446666112695158216428064348509893908292174218038865423362123894853541645250662586038620360612441127018654252214828364363919419894738437246322327110830043214285465750927950184561020181356750584151386494639338359453058538789139006017962940661614526751997466856379937579592598046323181686500240283402263386148196564624340660096285888497986631772653783085902048673595472384973980099545517719070195880106727058900070366467323143674777154256535976394525972084820392522388348235326873185526188773512288977072878136713886597455092233596176441304910614347071945133529326150395096808594031556054479189157643293865322366194610788540284968668165675835263059500708514013698909218028952604113858061861637841388026627062026618075305765416195045064498978745439899149431667021191085422204524746543217076808422884239135450395197007601218178909745377771666112226252905792903481982624252063673368801866833275561854737664637430639996321089110746997325135476829955516344213500637685070898806631541572573495333040382216548621678941901238234082601129757190330187866907474122603324488016985213733018900817503100901701517814615185408708263452957228869473054717967490325432884957490818842838010514555841751832331088554415087233805540344522210503390482291980111715751895143011532395995301566731161183440948302831181221535456861848334033172275435968154148506105224919854122707307679424777635918338717551169425678403434339495120827529725351420746489508518006765544410782128900556596347870300061024793859340936034512917280623874929133685555659578698727461598632673840800688641438213190326721305835526035572722535352603829516351686785542214921959989222558620290877407498368105900879530316928982192895750451856168666247211673561752427060059760325933010187281669137391175735040993287145070668425319057037157485187633441317367359282392125047799177438810665625673154639178430163480622943215712841801867007750078420511787413842640987200315953846206154359448223245178790374293095937696703357587023304367847192200077799536090905959746858196245228339703102324448194103057207138595160815566316964711582547655176399902962410207313289697685897117987258277331550500991290091649983744855849243256568084908272384253123555896157731294379331510787601767773268148119659098097138686848870510871639746267346756266156412544315435763422250768465652756979043760050238482463155357026763344955135258556791222493014450814746588726964951160616551821720578960333319763898161622381301962463899712958214244048276727403753865780681041720997843201103553298918202951147376885417919950393799875300152375863665419633379683285463957116134279043950920707800188242191384990476795608365911767305295608922928139542603937567296568360795839912148672729480587270936486367176453260170050939407372858230770303746180804745518701350963200116974250063873234077259716845080490769654658998266796608073350040398002384360484061965209416608092020131807362750702031982288990814992196808102468778256667234998797929378659335628221702759464547975702238642029309439909497761660918790818057062828039133641051976885138920539402212926999142470244325200008602671202103617343595371987258819664071334341038300596791774815139042384809640192853592260188025136265823826190068526681781000118280337084959469265026719254204541760810544756762190497683724535717816376056746377866932813339441257277926886275641490321730000743205391662646568529107721524025948360816824848622751883970267785254245724204084976985019262273642269771401113598709150296548315117162007295248873886119126632367129728890563731733352093605623919686871336352753562922232052722723866351835466320982331879496686884415661848167199005315980308044247804428956468714915464079143971900139239120274204187004534388592083680723161919014882692336500007854035179473588476997771584268240228640288634293915356128758016689951064127432625823457321240258203637074639123988719061595280174432402797675753890940288164524576035713832081023042381305770399152675469614240209109429612757285719232707556827499443593108643050682759581999910377823800351071397626446524694274238684088961279966262763946032038797755196260052494812773454123616722753166813269305207391553117320317401694845617169785195782760378115809717863701110507530424470628402557550959145649076675795126351175179214026009842010812846763878379040351360538838120852417020264958094333442020503789135027806629188646273218491793533030315992615858712659761734424196265981047339283531498668469715420604647958197958238581465438190707518734692530305532689441009632634228888078389085361907279340779901278274269100278107465982802537409803634632345704258152090344132025840723977287690872367598570208942633403718872612451158748071978052005443535370381679549750190483706603087466359463456716545036535441670882714510405484475811570060891984929163735397623056655299237635659507149418145153312081609666004001834343663193917246818635991498545690543213599529894918978893707528329376542678709865047735648318204764078610182815457313175511861087141545598479280677488291393663274364829943608169971336179029668073944571592874256106821873500281187243924107785561173189244456988001257704930199342781338541525587296896795317859132705090380743818306234273332341981106476347220284558421715000086213392258888827203584673326705509912722331038756312821332338763319108166235917955884353327137293299138704508971695595999051935344157747943306177732600020051579517969682835959029937753295418251963666822686185304341635753715808698513012831072332954590625723695879405833588801078711293987811191297849083605404563467264046341416465169628568548299606416404422095421428454651799799804760845617820433636247438866895094647576263126399178428443842110248240937333239720820544108789338486461651241744143871823644215163585062944298816952876288035486530323255918371412906530122609426275136001884722245563898384087747480342268868778373398436719123878411113329579781033827221363971684549312944391923740983937433563113811494655620623837013700993045842886690793232137264818914975997906338159419635264474049032741564916107681379275561018365248422988560960522590467307425530171586606860048458670167543570221801337534099199161767324784638704556795830995998641267246908940018095981075054887449274933662238262303048036753275891747813077981040027135062216520727999681522367399237893754568623728801436625353380489586418447690231329949257407254865784990638487766276405164021055412890718638847259252202052115874071655625515257980248520483490776125090986234548319526260487890487498001110147230908754926856998622835960994108498857112774224257839813488687976584719003987796717681561942382782784299438550158208769643697748944818067827477413234983147090628841650317860980824059936009662052062860470585216600571031639775804609117262685229758069308294834289752451491799436473191848187214295502935885322636363162714051497364573737867642242749472545512982990954879311848889385522935497774500889302700694459489321458805123536792840811825555716978842386896618704032896206625279474500052657607335555000548617235758229960084254603888476777340066823264477548786094553457495410028480316619460778080591208136787754031670944634819207584518199709118928155302211302424869827888025950309575277532540790683397842338473529872962052278351539539936148336234220916553414157567911506596138876038259481926310023028727885437618116036597647490097162381394667572200622673808173884669550406857406492541945080348813289376061041306399362502067218581884499941832509964431524641667227480145485914129932533906230275359788834428218226703381135558094141959131922800436349714683648304221565856280592369718451076822550082344497345501150314030980811086667223220924261720675174511834736828141522913346160285526797164070490289671946340029853041434804358143424678708911385327752862415058423360921841208696751180980197761350244632396025051289220317217861456585953524836785429113440792533814458161131832028031779430339785907981538843635303665036200184567692999976374060196302052621782077961926637370343416521885347845299443155069906927480415433205661386010982263863069522198546944543530939252514295136562912017618721280632741520693885797871881248258234978894032535873359255266386859623692547928249788973885320627069292543388871077602241455862132598366641566044028415417222010007336697201026122142706495432362747274711445593346838562130468120957240105964309969426258445717053771260564719119778247106640526273057531317264347689414678625720741031692011006041231131616857089574912138078324165253991644576162034417127032337802059785084833690484745377090073359889824126775687152886373589709614825311230583669189367688378143685726208302416211033235124754113344398034979864767831847932240822260715831501487478602792542621845453173857789963605093486545520039392886110535319256276878885255414314406705175399700423133959935088053679253867370466309610978537370514516111275944765219508082899053880206034154087159001825200319358298712877065299445842190434853798942137973849212653243224783175467007423035331211078942770726270374567654870015962807798377835212816060093105104745426720207649175639399904771888096198088023508019094487815599814960642522910438105459101483715820445703402827625156371271965846675789592116389400487829250908746092496688996563350849221215926831633164569929932977492486215362734744775352744769530758674324341404464749991841979718539596424587714605985911377917591126572839303528100479669708293335755193631691698376273297075339918828891443592214215228274945370258488994778483247613291910805143843346614580085376682137459456235495315885018099337903086364338936925612989994179701496363311057008858993735826460665744951217960825657496409588583798084271850709063020250745605738068488696043244881668422253135814971452381621475707072686089047345922925008771968185803393351768018972165033684018163390035447728249224649660387278628239147722881163634486811985701461366174928893950778483597789284780685961546059272586520105258670324796517188707687583114814202947906740967596204296826151022781538100085186711803739998667273829518430520056134334706200374159859320148704009917635472111976906300203004062729476132643440957678021995747899252630246959957641684632409243581371964565330714616262938593927230573787567261665668578154312761570170079149500452506643768656906197570114792654359054108501490608393775751057285756507157292245015191640957035126730726639783121954570742399271269965258519556147963542246242734006548384206955810486493171093909093699973536561042595259262920973652070579995059133512056869296824941652594628911139838020922553962605150232609260019538011368275395766237297396949492881332087850376015702619637228329359141842758923536835780988222181208359342739867242540559734048000164419454830227694488466705907006779477152473267806596388771818515886550348058838420018175317975309931511159452727843019250115579049468788479955334503510880830773152764577228573478721702454927768573641203354147772612809990140513344235841369927576531415793498374963326029709639918191104946900115339396438049761826826159281958141069112965172610545847483197309131591394086896784624129367312286772481268695478740468111476124955374546957682952237641961928476072750743405062671953398664837683138127089496248619589050548662690816948985181897664940272436641883293578717900801517554597975829321105015259936712429829864736064610379627318314359615942776162131666246206112661324588368174438562140549162863095018869104801198134499690309993141072610292378179595281065704365531031140897568354894628296909667331880913625403356750659846741103672628544204426218573666856715463030487848269082101349080687439588980567308239201708819582178645395526715046385295295133799261453464945036614030827610285235588206895377017979696377637860659262813201406787849320366753648033828337935401599239799916661860818357024429279158745089202497870878288800321671559037503525566082550557519772017052625936997090869502658697351995432299756621615628928684625836076263434966832778090982931209515227428104342922579777378714294656886033940326805903558509682805479625509782892309395669327192434089449395458186285786850913207226748520924485286617478104162841668643855374274798405684766800976385736016954125619930823079935785182744888020150026228526351470846018523973955895350131080137129832557516425141427566985621980001956380092549214608678101386280608023116123338181348434757481597525969646497210096881561419147105990146648529841038351007475052390462526861415083484200073548410591858045883112389889021905717072946638885700934308397669983041678521474560275918438405891660216283607726515660696143272638043930032643254755177429290572384843360716495350707630058890090331666436802894340969083203378959835425698100725871821380229696053700310768295869975268534280149736790221633212898512281562710487725338506174178727447050142364910430571971701013664707591664254766230572042822573438658783969673733181372900131315424110043960147344943444585720120174851011497016931016658193598085841062470803494592203860372636573879678752763437697003033295655555055951621594699218802983361089520437351814658083856381038790055694706269131592520055193004996774935388592325350122902019683357493010847954753829522080173555545269335372710236490049405614897354053214454558873248284662095554159654551018693906123768250742209958943622554487684629536495333912148806796368055866880717920988878504903403360609828515964139862074586233263891309303177732603391191304307060101430048764891639396407140051390101538964104136496734120882493509081900109965647818775660847265904895818039273867722661574217747550713518454178172601675541493099110555468508577079154877158217240458972403065160018179387297079704607864543561054573433358856091079690986082989385641562171237901494001892701736173012346180275321717554543062675014079177106069188747007855378666684727770141803757031953970454898069440124560141097743306897774116761013896172473415898787341949670246329499027750402423877517597061757008148408098304185884028938148831279191053358941274617820775383399562383076160765600156105067643537339240287001405842062600746019246838645572939495193897303571984362590182227761027946216534203251156652146925001010518035739624321308339859177630898531749240603001678928358570227348639439888270073088947226074494347082134463823280212655033942821964803272754712700975158624167872836046740729875870091260504247827713655551170013003880948768974060568635623489905071463554781541005485975808097719568376912771380529547712426325756700538973030946897856501418293434807262528755957754176210048278573336150754342996592122754026130211157983029222689860378186115465927089286112775821475581935222832567722206172532056600488787621433524105345228114585892050072126664240797878596960166692232223144955624176069544695838386790744903371635540543933152299419284973904337756098346905088789245255727425428945521794156117166679408867323766444503082660707454039564239247040006436909774543529303274548043635127354680450982018464898630717146611285105986326623584462061649191973831843612764404633952296098406861948312516959900436639895039779653993382092002400969498987885385853025615854697280871599234460855834665510647638551679725343396909679995163389831789883401752486963098101324588625831606780069002531090693726106098999384488974924763129830501952772580789088014163863342336822986918968182488656915094783492835330809746272003083265049423114493085042299708931242818645809112416417410276510428294350555174675773283728524815127309466336808102746983468168763239969344427506677433316821810672944745649071360272448719563644001829847145737456405425165365303466363061880306103015469342664957287290086178893981961163617056715809984728250146260824294338648248841224056313917849947411878957057102863114266864467994202025333060120070047589453052973740017098598110228030836186178066639481457954497733241415512674929664228135322054652875145440400498221507595841419584804479297976861234695141437624006640475753935977017600333124663191218585553949839907072799665874789613563530727914555314110245269963714025460557082927813905031994633021698848909680672669053956149061811360922876977400823494729815044997809201742365113879485215802243551339697459383792648412669639401056978292172196869882402666951291791052346548013404164886744099681227759526876970441528386941911760086088138275736227414017286717755850613853951142762820505367090126426197094945028699599676927248374126367036477048506258177375965985647724396095528241435311232795760982841030030913766208045558775111200135434260214814385246689038943593965970583802572299036332113262501766295374746410720155569601438099156420504713104761022172800574132217205000250471288703171294059708806350803884780853533375571690722607750540905070852743238027417346768079314540844358912187904353390141226347118584028972903853865167312191614491261470618699106106789529882763125010377972115089327279316969859515217159828554409715407202928001536003353377836746943334439051097336415667552951158163705197769321103456320754576129009521996012240623721253053535142629015169210101930719612842920232384409633053225432628496030483687507454542671092324599084372618619429603296637793451370854129252936960639978101532033348619736234870521147959519512939480788619291183798521764323231253209551902890931500052355075935262325510218918681505755163138359233256214603199754151054756384488524763371768093674338707188195652017856136564143744890583162109212443231036278246295046797045272654131682457056575430145153556812048401149802656992809220357677615330713146769829595376563958913616576617644009848024085478493512472744651647248710027969254370366458128029262400063930826533698980834536351767764434483874123943626461387075405564894819596438807620556379935016181842979393760128500310030313266827568909679911159741064741394660220643623143957536565417131278745111712119328003852553931548744456156457144993906728355995176203499734990267375662792420845036571357435268470867677412466058298373787334152084309612044732239796493667629501911358061164411244589252375480609724736943733782059141931705406765956741084215656071344683300312439889376610420323574091066184346249155187855053280368788584598492416015170932897647553321976410413779041180431316099834528841505199570331527503239085186437313150326535626864187502404278356106505329359931371890294391759806468494269406241191791049788841766621234473344184119169975475176892626507225611032743194261765610434155838104403818251666664284496072757400187830753621224848127324790922758727948546853447984714238335375890076808389523917835883189167084610733167096833142834340304808360411051087183463182664030580439499851657357028474189150745542125694926018690606583098934227062566809870793750733529628174277690330752516051491863904939222556253163023540130750209713219572513046114379290633560293747450796318921544922515471995984096566291344490654733794297350548061424272601276576511600650319577348934691989732306981713423431765158805166279047736033122123073258148991139908602707122423261336351543837879300782660421604893234146626693237763742363394272976558920809097438643428219067298027858078715618581282920661798528419360239048727998507281810656422252078406420106461269248300198569672040999958896681683532520665911015690340968582818180323023813534874953453347471374377590761742015759539304017045456787842054937799976283731391327544765864693569174766169057524267746733572508747139158523035154746270993363828441571896685780960172467223276547498742141078469563323054343309907955010886713464120212129763749121716925337209136539430365914232537246240298368403328153213506769414078604232852545876827033900386820894910257559484717705227957110497882770888396243141737025152649366364734143907951411719233591988429778625005093687708525198966400761836497341255783665288942814420687918874720237216448904099025062386895853248194860785434594344059066133770187601016888806684593213282739697848829622233912386858988605804573072871081636879222946400972383966560638753137750141083713985787262986610311535376440253449096979733987381537097595523938075488049591098469615712142605072615865279856442766158465816092452668238691956225641102954457665319759279574962663093216303959374096074350512977530192041790414537713339096201482771664473895545347204921610476078596778994130447792951470177114546542803468640757777020549398711692971723694208868583584445624350453692775798285916888275130874755967438148596346764136397173384142019610788954352768931202695593893011192699412720726126946294577824781987838545036875111335009995944340018565392676313814712087335939944754740299720211365075702406861728138023826332046983371399747704909672862730903193612793877232984618457809140121702507710959581036385206323192400350559832639686448597232218418730475916621822679291419578117390689544541070322978422148598073756469551106418209676850338524652747166964408952196536539538766309779730931826190862065451617231179821009613479594177332215041464827707464279084370898262773811511435379171784056245419932486395510522339753430393543390762459478329648579510560360855846970726369599978186022025923039420413413409644380989306915865420397871307307219603520587769085626576972419200877869662674759828418570461638999335610943893645210904471695767671314755444866738162337723224667348382532675579154564575871346172144268654736375029596014141817572435540710945790529416936869011504833468482334884614636059960394268703898923178021561554821218148559102401008741082159779740004857305747296209986168086556563482237625739953672800457703928220690322366088423427106852345998089910017314145780423868248963986953408332498412664561785529041952272960214288578981601003679063059934405278631582807924300946391086201039902054846948620489630325934589553861663018958548266809449971992719391631691806479672502877543852614814743313690458991200809824106104484677827755647015181205822231019313587138161729807505630748845344798193956247093035951144387754610951744807325368451880170894335533982156279753641349917883474929448112300296953435816312410532531194120019380037765445854462332934871385292269272796740361482757838655114424802294930510586784587888075464630310800780617986918801465817471871570334737545847648161709519002853228315911945389488094529106780783632628292934832447897558492220308729215746153859063692302207001564399406954882118914047296564391532573233832380473298371344479016055936380629113448824611006299636959601436289929398230727075308482969148007986667215575407097482883090057486262110242461116265934830410890715584703687325180823116356178486177101261852229063789496886682806928994248958954556120488200374165527360180622128846544767833364669210391890750679042818925715930586616846392841752576145174226271632724373339833336100784975608963030889919152033975275875048765361463356984784331078405381630773532358927444683696482025214961003011282161265441182126656082520607069679167703477745970840270278175127975323129907463828550135435745893702739706423675895850626826888001633827626671492935342849833536353825008712737513626055738223053015859765883694639741064975831433115656523399942752023486678966927955225333702436279253130730066357826533556380881769366618260628383833001235334804140970798626676487048669427890727724734645174845151853245782886852221169977599208714471009579779095460247986523996851979882272861532370661056243263458629822904072643496692808740308093554123592983886095809057361370488947505028150603256874710228009228392307073513367017315562585547348062027690063788050854123040547603776455288359225055183622161475234535475582135088315940018033688044984117657539158191102712939412348447542383554104834413081724499195699324634345034675770193845557029812202466695771071075025628909052788400870002995472955780131658720187196159451606172759793597715739570372538524872658431737170874294575132447560367545950641504279603842327965826707853199749582196337792399065821527286975443084881459230098943438581822169213927910119212696767255267827444300045554636300055785404160491589634245568430999198429180090970908834645697439734856443775532894116352259945801400748980249759147195653222089816666699831747047087647703665911904098253462968863949885685690936486076167918236896012182864591018805173425707548289517997822508519108107187587857164252964351979131456358389044930156775403204451399097731959409449319426473785407187239078166945310118780835138366850780024075634269970943759394199369731184125710029602567940883127516741208946825034362779211270135100028450094550648023700925941746556376073010834611802923416486500505721569290212085292763728968357439446238584180521437943020507456096575448803438249629413466883974311718604814900180043353329603031878912659587502256377549247388249200872069315055204564330576945995426526009282108675207842141387857520751710158273150191033181938475124019591414907809945470316903645135729674041949110240052380824024823016224841467407755997499562008114351737329245683313964168137991383292953966708291738991355917824192138577612801413264826090660466679728878064749038572619945432383416073567297358698986636381150855000719017364635147740485161938530917257416422953619308412214249914963063190387309613676686524061358691365934082872510100285710482197892190882275271125925195475439250507603827589323942503363947743278811158433975598629755798247334907530053836362681321086346926966810749479054117138022922558169825143546963398183141139262562787082950469488389913974562492271876415938195383630601959031942566238227750207570698901369869524728492147130834508603391656407399652302481262870846249165146972660868407130922420129154215705870014032260712652084098724554347372129607352650939489673533929644615860447553110433075991091731646061780785298848023256212450851624305307579307747446477873032596640910936880446622312101705795725109750773104000390131541115332848970735359978894882496396422243722958365069266815391969721092940794608488808938421554881059009853406195639904439319598170969055300722462181218982996438476144706390567242661101181536907020623743599607552630574382115819602185930364641089854831154086461822425823890258779421570562108166146040827984573014728665612593528049710649024586010907379862318492257162470584994074498636835958065591958236473362861159204119431891729243392426794859283856717163511648204268411872703451689251112341605483091009906587284472610966902062503053427501376055712073351513878921526324370947472563365597786785067808023050644732260878857992145212628489851197724415719745425834737083253534964980724066474582035163715813366787807845494605216552610856299308823896233738117218821552283270167849037218950068248361321250204756640813608020347780954030521510195675870583629982074552360121042273608671590464333679145377249771735917060175656910829384865951911360119287806000325521693456592509151843122592293143723632055531375182017028215230137666164757378391366485337058866366541812813494297889745995917943341170021652960358165430367563660182063962392065255014079888903256917636875215392550452647456958270185042699653927794997999328676386649280933067180339636533917174768535377629456638200852263591258296469173864986375210594679393398538774858268801152703005312497525011260254052790374355576666115820149611112796373090951673858886644628407062252960838352079882760031582812383095737586023643104209996737422654442982940397834496832092856609382522329482087993563526477903703033082815368278404801473107682508184738821242403650261808569538515936482513139576912222434811700371081580374484664944094329452650027022166726617864146198601750094186056459643822025271865996619299544923582884535548136018963974332577979069657575687983090921269562475080240058118247482091694084809632067732618941372914129438334564700574634166429235912796539661193582453413325647882371044201904676818039404719401166933654099845428353948820607469410789995074591364332915417528895774510726624605701062393545534029855266579411236546123998845506274839803652402527434219159567199403039509292153583736846923159952707815518544634913332046988086184618369095099266766629972774304131677756451788496022948538367282144094134590166137133591626329936432826758967293404129040923900250813265718461855281778559340934751433394423767460518996459497570785701116044037090437153285583272160662275558174069823877794027197736120909242271326086644759441745262102406134945789901823871965092391431080852156632149413659891980683046244652840642880383714702906000082302817411991624376428690137043506201188850627850908480379385202250063534783828316368599313452845486219030562270799482943259770658209392141110435727212366453566031324624798603825965390369470344110896488627152562339450739293635805776344968681196641713186977617827661840752166558343478467537204057808931650990579635535057987055633173004701207633159157006360740546498526493143765907202680326281590011501244613259807465961578329187165999564382796718007679813002564405153847283195100369152112264870397932668438419149598555755298578998391237422977916633395792997508633165247932148921647985866271886451372047558247628986094141255593783727571109630351822643343639221489157792089436460198197551581829624084528166791919540947552920923334318903503316792337008062431277595113614655828941574905679967282524974805313945637670420698967340628348093999312061272376183676217252866829403017149950000754408462702353334280960884361382664574724201049608442845878516953127884080163311210785194746325021729850842793725582753279369688390689995951048159299377044773325852726854633798473650397958062704072712848218638125777755943273930185108905638832228982682194288220134264573370718580775137443324767027615810773338109827579198359664034090474390462894357904920954378683222663594176694529714835701786509094248105889188220917649940710553056219695100743224091622804712873733117392045910163780436084668968687660218175494040089513606706811630345670207358496638457533254809742475975542118251991050557145321605650511843779742342272482174388390056413719065289473121894062210464508778420295774657610200752365896921241639004964640810976366288783041053640666922478510510930188055468920438742057515454204521285845678213330119450161882306330013999691624744986474836695022976682765981002168714737307727511808634671242754509249418488806296884366551122064857548059367327620883401919582576768091214727273008463528223472901794656579927711156221084499948937751723693473553929764573376722470200116503231499220813418362473457179173158335781734869966669222100543233391823467515630952028321625652104709339678937711490475079796968801634320534148957748044044915096262727487779141531225544780557268116848749536809607761559674311211604940234677386572403446136244307656893040217328046622084004909071612131558010964548628124112880308715602748351555420119751185156672703192705999307695715172540085478411242353278445110150883019168383758994849637497197194798095518012097340195712099682629159983364274825317269745426381967781315755684176295438157144079439955342871557566104208999672786497303463337273329736753921655016934680063387061738562790042123673305396357956926203162561187130731128242019806969894050920340849330404238735939356552484922314413710489415888271147559942662225524391719467186430503711920867584570462233710503397480291587639904342444699150276640243952638284484340247689925191998852117355122830636239949873853491796013225918486147495467082449277431562255691842728982036188775510083204599239577107975361209672070650287052446877034870845921809082970284111281112298712522337185974626073437724127899884675081026280734096524387759268982346485992538230843434170930007318901853004276288522573342324287509774453660275587991806788174502181678981917457080896144876119690486255452937769837941999800280546739330271408737113653637229808462037882636792350965495052808678452380113122919162528121470762830359035921470596470887444941142187988918952072600631758631089506545310247937602053447394430610245159149022708357021572952870109847945577413354812369285720293206366037434238234432810279555443277455188454436240303633937169858633269398311655558291032497155774404143487015843251571598577980773489992144335907950893014353407235897416472515714219172409787450070635035318409228135287764926182800626525151336711098083914052746118658902927174576046726316532901545930283239892231150058757641264476136733043001535327750549478372475459934231622477282628841539010621229416724171962723597927670553498114540253973678213389155795253394920326979204756735945610178403424134868158385651257152690541027499464654824354487710293223093139651777828278007170923945480671791593070704749119978286366764159933447481191008884274832270571510450321520224524470724982543573946172133499121100556056716053339513373782329855263910464815694875726961052511011328727044689702006449675061508662243064016098065219861105891300493263465179409666947770841135727591060714866118735507599638769762641883775444164180762769480611721522543746909141785682008422050841103891531232928761121697671437662107439710743608258872023256335293319527378016486918861579823605923996390689569867637888788368998215365551332338647823725555131135382037405256278245888399527567577599543505335294736182467983681474793035106371007567586193534846122701079024570139993511068933402216571736840078466423980846154405818856211527628384597071492986561174901688426738478912287256606928509228365104234675820492637969495839945091568513689375605354761193579533929436873150950738667242133123931616377820364291174966488602667028864510517886258443987056153974268750048808607059151475644491592383126422232963669934026087721314730499628821999690510755310279885828552817006370336898512113380799390498229878956912500765573424253752544802534869900817432400338541621989650868169423056899872081796436000582911304948991112271666137846005081915217780519321581864742879441995651003719468842685799082660859764771052885218807002430446950344357873478045488104014060493323878591436476421901887266919550474633552506298126333430532042493058974856844939094053268915951459537270155689419827539287007382765073228934650142317971185445760594856915008105491395943386744396039426195714157545962950263038676754259186986693569300730551755157112705884844122119109878431851105311109522271920659519345555968986613913521660000027808818681363726571919227299898554314753222777875681918910251968372290656242114929959647279676339513113996494469461839414585350230934080944184947126554332346778208502721357165617953153570349328979936861294516329381711216631032263218985316830702742825668751637116952138119491002842478442198922064027621018304157109264863507987955507959571423393288566925735201461990768697032196919651247437142788812023339114674585430084818284122978961421622747023962878198651360839548221689019257605116222751785300422384391265194613206202478570630433641081564573295872228140090941620541478256628717666394930003811209004221370005245332674076912252363697740310655052430562895193025073522492879166582743770405567010674756825970207379854511385428444467764936529147992117774807900960075240750617084678731336853904200207540019196372998883403586427895760592341781975138166695680152702973137090776890344729675761232528115308429190370689921017247670563677703138782401011210417463507517129576327828755391081371565462184140160352846233269384277084479627134302311043982889136950009662689877854023348495167030174077458745516952626771905943160280031634860803001788182766170595004897499377770856012338639668639702369072297220101204726317199043314496356559156945781293228276536425361523888530665796765520427988630072397641561648432827479883822263756188949658057991396556877441020990157800523318761681069537029603175663428561187594648559776284922298619882349985994235648504730643404613080173022058549237900437985586019522552847689181060288128836839312175216772994182419788029660090504668609543128479294108658924436938984486322778053135926233321051177795754078786874646487974993759343064282493362783577975640675454183527063541276452965232423059643926778935346025463000838475962521715975121395812507016115561627184282627341174427868757867219120866037310828439429478440731804579763249776968283091864821937100269459786290479042652050725594958333492111516580594373020266390832570884506328561482865192661562486074477369308983844369285449283464682010664470823791046865522191584232177555627652209524730055862421649468827226354005964080189715156589441576200377214305931140854922035556729262683926512988736054163531405688224766926106903772491465517271339702877320446575300461696460504662648660897327802122678506238344287937558276823418181141533804053053746961508131431065139359340832053581140046366771478716184745159250003271835965372148121315012536983549749830023810991050117924419279766712265573894974147842406376798944464792454814899622815911413019612152893634518468253547811756820402902657507691569762122460641123451723527218951340575364167245224932381707952057916768486874950310098022796325858077749980925354171168912024374072042693745205633219282547488718036012412782431514048574813439144307953396906984247862060798924622806199901485204373094394299113820703013838853918284235103419342372104220814103601155325586832705688165729617477214486873429475674927307928320953113998691204853269580568192890798523258871317108257545318915087268149509209803617275198679400758793673532506599589234066978047159605589188658947656623561948460113787151588387048796451650594293741316942762732920634513298103202616091070067803253378710932805385123256285359163707524881577171470984305032210227381035242349900303286009298723595460583686533675924831024380811975767625719377117567780641558227846498014643015977095526630427408584176882979376627272244401193054524034565256916594463211497372595290638776779592211745774933906974125286238317447024496933045272706024015040953863612638585016969611897543804985407500680616434362510928993921696416414227277108226237335108158989142647280924073003275362048623752115002725924207816088066335687603116621942699022536274809815711431361234547858052855341995689807318249444220683720742236705476739404021564407709872850878590318296242266127771194908158582909102328778284166036305808945948165519676245764297086387451612428942695381723174282757979583372108247998343912443393046107327002890927735489877924126429860708134482282314018172871552576575943249278493905637882880352253727847619641098121816383294534937476759084467397597477609102902450622080117627007368854901947830669096307824560833767448082754539790015101908346399534279423414861222672513735406056055404633522557399658415804501849582779733903590384158049258500131990563032676713537381366309785792889596412734693767005502208706639427606159642609345871648770346306716046901527424974805729534862860493372798412333957042123307939925162937580814157677052976146501579990064011162185637929175024910447914084336199714513537788629412029122496752365985515445195145467192776045104943717383540188978312886914044589030647286907613261729736158799184947926179329988292814761343615079016397732131842109806927061853006699173676162345785120069311566908105022698781383795040513330304037633871214261733240344136355948310917620902429637790309038688118496057158801735963651374168868190962832979555340748014944412117216257170039342652521867934192058805444305941597922283726372107304495341439399511333302206655781339511942874102710283295829522685744385294896705375489813087456866527042026432886926507991902410703259892136365679117592070097700276108665698327186190389511692780641988241660013487578955558327555877669201410565826628385849562759423565532131112410594814892446011510902662549680121037540782512974052228467778173857458664561827513236324755132731656865401265255259842415754989407140346746442397504499220991730199165886602432839046688128468865128931603190388310594467493936669169173235201542953671951251695031856638908057971142970285531498496723697770473392007622757248970352751286399369609029695950166810749754441226540871507945676289508428976547828302660612666137192391360366721117334558219162573043956638686634476895379746781881122356487513290636695607310776344689564985167253837526044190507259354432659991379099532204468180107597539037062002217467920124738377119287642640902591806833414080144773010328780801061563650141547087090523820971034768443141859961780124746518364660015033931125615566961740082338551410194570732126942391939128990590911206375892552783897896606871615748443931854240415890706462469636429772809289268512718956670945264143214179469745355685481451453140621042006926433986314340347025549249772734227690937785059241151656265686300283065803762461541865926086859123357691247188933191230567043320653740131292798870410866597915152453332925685745893225852886776203627064065226929936570892999412315805580547353722903689448748996523428125617052469366318972938457672627174689134450955946636262341780462889179026338135360471568845326398871643013865975808946806757641912877195761834945993352528275663371676812453127394690641075902519975003541651601525156387174084203808518754705607432982633970844779748742675324663467655863598925253411918956078225573762910535468652861482586245016223602738094486297886426021919333310682643242995922279026825813079810089118989306629642554104753354252479660758690454407780724238189959725339569248655611189555525500106235260964180366925509586448084402056681034276090211033642373242775145707873231734551652822022061113464112464530575021255671095303623575543240470353427613538448327893575000800665437154182764253533464947574733848319652086801931499888797839845773281565636010513794189644894740232665531283668104643397105595080053821253853251471659517832980169526023387350041283161674479896665658496234418656250844591615043166200771888594154037594058286832685038842375552248093827341548089960035685578974896514600021665770121054937910270170072150619402636450811507972310801654922798916359328862395720878905725753677907495320707490170292590663349011592142893410978504461646245430351029843741762459186059540346661954968735530805878182464570257579973678489064577110658427109358890204736339301801088539847359605917442472595136778538005452597062444673315647158018924045795493043509822648546050977249845347077429334399516528309678184673534410330482759322807939996559233797598321160275770921588250552796932691062945963811422438493969505069485421091764189513427333524850250989190675044557578275959898876409786828689369775192435293887060566232709415743499728279735538861404636699605728382481650598335917962159932081242370921504182580077699120930541099356436645059680992734143134447198479094022649088130137292633442108124301730426721086706330425635222158290599066513622256592562164777745727423809490985005647598382066731185662596050775021446286305693177324811990848402728230340603664011531902362308264038112000249533429151722494875702885299267974584016955470804816429315567844000969950259434361607020868373959527689261383575441542041532549724820892257874720361824094210998027781406157355946535946456927349823292770688287692145185304362382826047833778958101311455906777666978512384912304454574293655660008661543862301059129028931925076246422929825811564164210325651153592807684064572612230089356032223381009112144005526029293041414316441702491994776943405840237020090551107785810020487946935673421045351392897340799277740809047468714822572100138446919060392806619348735906101637838528010956879777598022253022198425586289168064367688488301083752314421370154244444806794938789991490841021156196025337873782140171760907577486718037111858147242581304157352849537990818606277217138737278373797172335295590640111636918065036699822532626182717039981350594081963698094010765547623328610379758922051315790363793009355567955797692447030380298802639629517857309026372935170175615291354090665836366686284215280815441612503371724127143799006131108672957844468765506990921591448854422427442503161561708025486300124904700731524823731259652169139336667312957586240575396576985185942512554854755644467406073244122597245454197189660827023387013770135117906334736676992501987090248665783548681063692947782631388184593439999765266047940267724463709326172665406200638932604636308773262008428560057682218751421936072155925011292126546062286984192195851497664193312412867599087267528375718260087489294116501264588907770997529742860298538792694051671933712129845664884939533859065004151289342038060497902029874207754219749111607264808219515566043572903662444161368909085455044192622832690649197969927958521942502997459440617375070908729746386904459027417514616588834412237919773550488226346898208449815992455628493519738690501850761199209265029320519789432550738734957928254476797403915201155824048233791251885079096634467461223351484884693003437528549309656451684573152700876816538080480251425403963056083677494716679118275538992377487248570271264679024893797444358076807726861920010556096561195944958513953499078081617384953418919581760108738053793968671818986844949356002977243461210733287502189725728557268494129089405573030619041420215217365414631473870893286012628775835909519724582440603584405309307011316468802207592572167766058872577124262099971690188949258356363814418827509040569581830374429563061474440555647464967145577147369706895633886980293930180538715770420210156263173411444429032982866801855359922216299194583685928675186783425451979781436694337364016617276984509671073851362616308701201862154213128791039334161648177412320470387996091835698307690462855169481082334514795216849217376725816989828952949225308423929890213511303010619671704060832035841410150226505342387366599929876863431289515732146613418052186030416882896308103854495507005149658366512030008894534553931144124118602965560394792995342299162354016077568192075194563327928140691540425820894676901616652687146233947044081196291224209800622659513432762749071795802879659331940787524611894417228472717293372821491036313509161215271248975607829917060331503282319049993097145880271377166671876173737241867324111227639878115684947523819031711940455504703110064620300393845228334604683520197886343024779306389497068360041879924434607317753794717570140072767259612356887853916414339360241358459560789354184663067519195790987366201430597645403947571147352427570289990312246766254396628427114732877056939358275159259135444946800021094757162858821021538720851623851418355366915397265981831067433484077272534105389801151172863830915126337153742289727022813425108551803042805380619445955836251236852368454812917722351829406970368473773775645615623376072295885825894513096176022495767933908349814143988359011245996854555848421647418269382508539248616863723528638929119292453994682524621839626065345628606294217371396344871254652663599517996947939881118385151593890162415897744677775472466834658121270754590855382516904398935696177956502200186361038961691628101843261146640156698396057646243892012263454678308605000099071810797645200735092306576117444449680606160610388297556199510111388792262075526226603626792345730999839495458221184208842476514023087857228220696531416541018095098047034507104278946442285724215575310193023721425854287008946702938160363488480088279354711134860333244784965381212552225899807621423678634304741103143332564452727355531041113621153474201233213442186793168489164377750614036445009037176680600664784630294535121529531680498105091784964342257258217772822643369436552361612224690254355148120244136822000174722803454783483326866991617811169240035925162238088036817482328654842650719197012303586891545865773746171508511472216939559484779698031223508915470385095033302435265636365000515064708329074768480567855463949272054694453406903814813678582853266666546641205655551695857178187367900733046469660048694670352738995662148069633065977624435727648051367837344126374151154633643084263892137601336227928263909717034849950888757159832551845212308805840533042481363309993980042490563065714445547083319693626303815015259383084004596346087522251373918318351853209185102722488780590377547512988807906271162919835812156331634872269557247172181955277384671873144237951235787614770227569259109030944441690025423637541647460572186751389401267758913332735323789339069791200894968037339424347886643276731884864837554483744172999846241983568347551729036352273067055038798764215960434182949985825028628657818862642227066622655128788885924214637547465903193031785795476605596714212065451028218700057819555237032805804691563997654167714149514056333544384031998299566102302931408917876360181107566456183645883319467303604491214684208469077616002259422279202840182641487224254968807578844878659516106944487571155300013469915829618929067115265548161284194411941001529308361317569830115568754379604404922671011138399747042499880524399546339562951654252208297483773309042636434317324451641929593897967958888020651304262569329689883805160240428182886973066869049597743861004455776017420962057230577894523443117818895728836264062413503034918031733327906476462191836862862191130694507679684969493363286367499698089377002907592727672274965360550378254737158587548481037660355839172004091313851057022743453669379793139313937929752803914486746911173521084321932655383574585080404202289401522576876523432451255312151304854024800103491023824141912141143600447986335576420877371635547144989262504508048175586412172499808793104059405343795452015028285812316631669344363891247063158691791192685706448663270864628744646530429208332807636534144110400346120352525868828281982895632143813207082971419753531526638677808302467835369021246301111090118376528974034966059701114682246392965606348807455001168368661977033209527489827003139639819824688645947512763593299743992805740553953123431843131054717124945848029409672173422236613694719461538058100612530785228263245042319942081190145450523829617114986207692696817300857884843693605089632692103492104305806064251127175851727613532968362958945833299189267175176499128203209458213644382766007996720507045057556211539447812145535495698737127133458921994274582234176735121666490389305642184504319553247404143201260885472086088294329779536203861983493711272502708678066198608999774159028324497555028914325791684576700037058970785905778225690960932783620343481463046454306943148443193626354855994069699349633319759141568135920132645284445052986460293705688780583757563349010895578623740009882739635835758589365977470786234903237415630314713516627221295920613571582211285745012735380275256243452197093722900979081170592159016885367048739113793958538838360513379234153490417195268592211570079444623138712754426912944210858600660163685569626174985847257594223290169432076258525385285855549985753304034743126959310656948734767109570531899107807733004116261251009752895543542387032871941342978365333418828425106170404598574327801698941776987431138347265649364314863306101720989004341311747002115532144051024325450567758713605372336403265243302579467615573719962740134883144065278678673554227781369284742172280626930844649426184528902350863630695216098807329105359321111695012980701710330075270223227458641747454875919852797555038999426357633217713570882772310240799699126568593141805902847040022198542259721584822042817242125244125598898531626675413932774856016465016366387756206306214173803477863191867204733326732176307525153102715897083613059974960626559527935197764988736113931194932771785571728560098047949591496966071783304009884820210006266966939259626861969194159486851724643467800825216308055006375028922730054998178377779923095196609193994906488740087840633813319798724026338996231650321323795264817637041812671429825820859198841950560301871195677060433509615820273219383897972770681627640654202895362896353479303955981346282422377467697933076301383484962038520526347826317777594351302673348655811623005811364976040365617406375057011746888624726174085032597734973126590637296653349974209817215758440846736642773916997501149145341845142729065483995831775521864302019248811768656885901800101186196548016317587576598823570266851621431116222035645714266642348012648117065317196093922224171292997257287347708382980007725254361959854278878041321227339077251406728387360861253848806299491283057788736374550055721720792457904895728098962414334962557785951314546787639710769112261176759967056808048611104013005421671546902632740612112823617251262122075116363189058377464936217027340127382483686590960534605432613077322373672076835938784902401574185192354410014553603754921682853059781798235136040147548079456181479472584905811000027121879508318938259373784948233635065191414162086450590844346305703887313320809637334347550612012264803347419916702563201160861986644497325832880354929857584605916137603005698150581715409434658953022571111152162071588137924377175070407344213718682029112582587983001144475074746699140994352437572965641115392540915474148015666025337264221265656017107782244567909124539742482417955788605057812844777437043022141521392147777929405590985094470324400939609643446527647001654900343093643001530012215913091343758188576940727149569146834026487133497449317862987628913391620835497843776573299000671669679662369011735221115533610989161169907655266212166152967628150168620465746583709287964731384415919503859022289798380993823346420657069590561082802994856349623221837111339806428807832704395412520220706884174214469562011311598996787491745839526448967041392893834796080567572884272601088058797143237368840235802346707469271296290472111601613455127053858446236244955916947816500638435225156486257356598133233059582531772867149394519828078280592915812182150764767958898405863243068747890544235587610751214723224247147457099496660615788785565060232770458849498322374372201986518860385878551583353183741664376787392491041887018945084595648775871615977533848816879298075163240995693989442348303585551908018166710878203749752177247458838368673851498287205069612799005819033233449459156742026433051267918367990943725806109383634398416035297434352491271117972995582797068652591108793956190209174986716558029536371279604002833316764400248350788080088420172909321734622087957505570256095277209162166578866572085022555075151238421132743419795464650610355374826530554288789808146310235054778218038145805469360394285868718390152852244029068182320286012992192500506429380346721074483963733046736944670341094651150811807471805577901698026841702469188073589174405098270309197123459121076700813263492845039130702671974733072008939005502713131706744624823595562053293393859729275528670087398134560539122171061474682971696455891757692631442238529962641255950920243334742883023097999451015088607217731051601756645798689097734154754956219514901066480495358274831864159186893045441760955097576253311282064144845373536517416188235169683809455737577066847218329044040981035621159210212360002620299791673858109070650115860803023187895780265335607877919964391234012284749590119460725727607561044177395457427420027542237366041927338490720106380906415535173317682375838567993781798616124050979374276033283896603819427611402343211784616405764369490417197280246668346819879394732004512572714622518800198247600370852733053190945568535968352423652828183659014114346554982826807156092686244189262639772995821342579112009395437854010180539056345521815436579539387054383273775620813655161499101257403042091391318579970569205435185025447733240824419980543797778801298816590161210059455622214802277134682007027294446410200593320022927299674747962390876411563433094850319748120001994863296893423596467956521941606957001259600056379546447448064481227852649310015691452231575840968712289700446252139711401333011968860679194505345876490781916091316805050479622396139615542444864775977351190999484320580922145504232961427590720456589030642656361465948403553250590623206442640064063363255151407511346733073824876825093880662952968888146920298998956704665351734438356989462610496225306116338254471623132913254091925415184183017500503552607552943235194236605604575679129543473336764575749802597574127151456549423299932747453306467126582243925418263186641356611597884477394731528946838539932222365179671455761150763544468848815298908012768162039530230987374657875923918446747438765594133077821633215788883231087890345620003750902406545700271650433738921138931533490364423299629619952638401065486887960782758042454759655430825056700047880437694972078768398204778536382530945318854982264559504293880474847705571368040807106709262904259456005179924785273988780038964416462119805186055420692467209400215469767717643741876266871765161789357891231026592514391169395641424088053869037536389780916958690901589818841823066621588809055871016329867176987949506005490133844148976155942985931477430019223602346919414790983224280188994655043132377963589628939100076087041304261405777626221243134279452990246287117372082843425212300486700557453677551610526588604986245372777011721081248885235293945548446035872436322927514948742837529479777981828218057315626407639632277044215290372900198038720297684242750908186349207422199704944667953634509372428849478692201940039618069632746865242065685112892263606044399315104822184670649682257390045599191859564102972887761560890164262856646925674116128388650051346249941978275031296943084837728551401066264042654162050639210880875485087604000038464413333880267990688197908209902363493842943886839519283959236726609035013992543536482382058672463024431232816324812249234640448355654017243368698582676142705751196575557681646003131536476271661234368409172476268220487785027183519535215426002865334914895421718287582353604953362085170244819625747460200846703736054893917421801137526275842493662414719874717194307094706517332405709982289557793555933529100211364961620370378137257141999011975102662618436694014636289381328411619876279515471270981489757610183451551758713550123838651594503905517537711300573540017926353336269812751465153669474715543593129869929703444915024791586762703968555328058332837733386426186404796598841144959676523745796904336577382801889144580131026902451550024037853445522355228269956647009466393704928528316941946657856461880874608978042509668228723176363382822191402446119214825630786707132535240256644387888858383284147716912619461192375578082927180198321688413864168972689644328849950812519812130609028692023991977227712834943675248822555893092551782377872448225698177802398059017470459416338761706351227765422698694902981521043340484201393229525158624678842973445199528111291967647258967750245469051691336858966204168804146071239110119912921073971126968381980668292325367697649696641912702096475597005083243477225764412619153123966826125837298896686560332982965382203270436832907774610519029405838595671113550365305763155665980295164462279110181260325101256092401081469508978529020639377568731672538780469774618156077682347959890840668654069656166611579408722580643082982503291216143276422186890383389617242482054407368613100482026579348816331350433564881144937735478152334593574331378941525399097193304913783060057583428970515226964156830048064405207524673885531785915690724055437548384493077724861872423399579504855871921840694194180058803373833286024932017601143381791621606839882161389951197765250568797021682488903826396223833890453390809602080784512912389635463666829538970885809287559732666704938694685967216975770001967520736599879927379944673246059560835060201778483397751649618027621476568337183199825855627700787123461279333222878982398441914762527237650676646125696000004490661860360565660240652595300877647875048109341349767708519284433740113147725703365993948323106821521221574943655917658211014245626390311222825222216654295483506846550741348966433460943423958673213930401628601360446558703255644067401314076521563165550790715452755973154102145890492269343304651831945408196131551621400537386879407779046101829537862681682509405545095243157156825077195529880559849982434821683359930843528772153716966199237208445518559223654013847460893777019016063526314648667567375274974215186502977536223613914795621809513214736344252898980689060003697975651998038614892574713167200243069455426051907502428675373599832977791575851439740585772741578939030881902301166184036493400112234215177515848641683921426555833780569077774744295910987596484112205900497766842590164528830137928886302488323489167829792435314833685876472794591332921304584829903008766914838104936150372318223624254886660287334749010308547629033002589851157222097779260846361164790097820422267624446228503286908379510084258492193817638405570242567059026723143619330181479051677486954343382492693033710694871880825548984237274033836410791994392205463554971554496264169817941999633914702614597569935323285203710527579584820649753281339658074393634111239894299767535636158120353580603035783779502554644559244511924284347149808310489855510676325412177391553455751280012598930764217403536928304339886313880902899960582432324450211961191615647760162107728613453835296840310167988860337003133125845784066650019652581718357935818142806996063240515152825126625355703296395709018239122428269427770286855634138294845168972849439102036935616987285265126155508633492452670211740172647746234254408832729384886543524201115368457444928515978960578646889652700900161437183292300866772798563631611174868079679826299554668903871933603411133482247594194963776573208846999462145799480674018038295741926642416111858855073952750908451042924228504371583436757817175341634096066850096047690784460514154523882438920653092988631905807038095604961020527349735674962159631989073305416155974674539365154493437786263780181517313467368425122259478712750162095022664252930831359551451486919365182255609613984499867798288124799983414137918139106922810887966625161080142347151326345879603812813996843329435292520669804073973878473151713804288600500463067718968261977449440863171812110284766315599488934548386894055088116514558165718970398463535782736029465686750180820385673405846019686059191998071881953813289034338058446715626659715741142195656361930256642236945448459882037737013896642142396446441053837873568108642510528153023032279143311076911363678417824353587649449978527894893674334286941365461209273255324516775446852788082913129539711036168263063387876179401512777296754595699515997818964039268951502023218586197493232978644796275193046918763947370815369312872175350904446212674514543978551346405546997568697108864490955195569470959628311897553708881155782630416479643529307068836772105282846218377533922720416222268879858765922719508774274975039759404844235141046998401425155932523717241698150321503540331185079671582759898234741244948688361028303375537537625634342995468062226066505424104511131041550875615363106971631914163615789727222474665864996057187107213484848069612024658576519290822337176873954630855662827795541432165893922633904998062137668964928956718726474581000606865425733707013426742056187148807655281815953676851321007333561539028168619412782686860158855482999554571282880427760359903820294148529743498096045604338766736555462463820962827211774045352913346914638690993290393100428475749037801534063165296518116704302289215448217363421306684086188198987054057607291689492963556624599438694142567221242990639691551537987547994190329338178466873609280394565374723074590517805372723357221130992499788109493356348126498223137657278076326781233997409736647825160216759038161183571049098834689155561205953344747805366065278344607365959552978765258983475305194970139599142299825564794816946289707426625472692330878745807535813924180984160247134273048884174883337936503244514931135327246408044651041892863416268954238870723295774122127165265134284683568504584310832719461044098040976265262437765783695775390717713150470635925788373206508512148084651999863742603827046308089019727793224219593807856686947173007085646114850441207382968712386443560665458705448816733772457226292869470380991485283311863426866921630099419910952978051630563957490732503635308441910479589039038743896428362110860315455977931204396640274839691079459042784298060024118635717172473133665215965527589575214037218531174200953580367396653211871603905632637757646451071110075489456501439802667433539991119144557047771141822175106173970231655240214481200969872498236187662531400278433841230183480656121366950515810268788361076761898410867228513816857382187766285574126161125089450216066098891184272955395146483606102995524401772998273002258027736224288865936923301312932393961722576250980584944106940386791793879101089200286439259178817963058517926399838629172653913999184061920103728623845298973604192702920293952025965616780514319142052160367148016959317138782803362984627856899136376746896770371375691586523438819148850392636555142228508892082444938485380340777048607730478364264385417096725741580343031530473947403335267066382524249433988481774013164975996300323037623585502622102153743166129458634249918451288824766733108785582455529052213362338470089276543535405889389559988422150483499997937848076034864748519329870296065244318243468546020482411562714066125126533157946090114531203719887485751902202811486845620159546738966856879911479279648308755029691504011495705744263458385035166511728455279504779241990811248016932563586500434658957263584312000123136594014785637581052617578338397999553209344225317823402853466715424609896521191549467554237709352313205753321049678334927196234357265077778107906812546835249790179073858502473434382988705771914348284235046720558673019344668527080248903138113581223090084134024143279534468391420375805876357902345824545712520401159549203286427580016905950433713741811320869516375765341225098571834723589941547816340699696488807319937034741595567873525714848540149298121859003012847721852736694927860077767577047632657351693390860891018548087141103869993262818078519314167465930062234539575396075423399899976857980531575603821956780616870090536477596719879979876175103810953212676411221310697867055984168003957132798241127755391346682777453914353398475004097623294218154398523601861630814804581961015247042160077756760263889931613271401404291144949135566875286060731736710393992779407989028397361792243216440514894350369239629570935316924382779189543755762897046479771046752164605611873629495246951016505278235473501420869903972692464165796002060938460029032074687971015753164464644714528353356955754407523149441236359169527535283573939305408360012080067861699305218747972752159746610321904762612097421113693603820234907150806285819405085702777870916712853641961658552617649291668194733450905309667166526887309662051149651253394260958291819847563795700237009576485410283770964121600360870305104289596719092510997265131413513085245463513331876384269292474577078887738923876766993164245597578249892489142659602019109195467130566218180386215895115028898148613912456228396989233894519489555668887838678890058734258956569031647225857001165218027071265485361055606938080770782742554568829419943675173475335436737321633453963819820725836799215696157150722303998574701738035346770304916977173009090892743930877169910390299657912924683235812283317988629564308625242900483564339026759974318429799583511068060313896240049266339592081135746506505238814109598614446310439754937539932164406962812387140377537867065697212949060725381305886249791945675648600886833792156597673182965881414193667133737029424955675232525772485372512902784759879688881519045138836307840369752666090389716923945962195779307041412843245332621099823081986513109200257067092187383732787627962911337902795121978997315906016146614756167907392057366293994766208914219700233048505375687271736430504248002928092885354038843023633620290133198801699862082659323246295161363072786523356014470691749661428970897894083768084282424075282959459576855776680244902948971999576991521171400774326610086487408023261905837567805045794742422840721777916185179657534329777829014231766421023116873418901280714997939224986915699233737314479460697534309452577077591984340301226470882788750258159720182887897708947576073382498534739203128991042852933233029019494176097956734494641424622924898277165785531905282109148871906676005122708599719884515320013672322726438319512545464053413066762345805713346196317573277069263234545860191169646230931517657970252624331326687455032263158511817474266677056611362890603762066862690055792069075664360454463135423063911901617313442406245886683308952333743988946112995342634886064106255929811889529573087920823743792244610096397934975788267865088724065935483284045497261908238737976693737789795706211834873730212793451057026843732083824388269894631869906898273982816396843234336153225135852514522431883716673291043218683099429962973444519694018414568362395538899324440009417361186413520867927124112188375393380829650100576704935443011670311868377535030848147972342732580759626832812192344875954271914484694733263138277360339583817667832456069463773367279699269919957378157551854521399652112760929259402408617514439944621980535156726667626938502334158783336510855876808031049314575791397531194558858676264000982062380651804931478839043893983836542452725029251904638364360795437875206192451872204401336137477953952185395427799240489679971245569092081352118760974302866210919343432466905241005818294610151501692473530778973219826719874507806294551461994171838106749107456585157673460846375037341191183473380589378855043482192943745397871684768806342317882287043996795327521940839004061772763863394135604208766588698341809246899866279140036529902807881967236310002200117565979281567669535426604024624576227748450247582294158822901593952958052178960709391580192618468837556600542297970220310743790540306030680415037156166102563555420083569568787614262324419265558123876435683967783036762740002966332157637998564593556270448761400647816600999559083956675720120815302871899592029311252341638565910629188720378213937782115207406104137056456990753952511528353034606375508163629443356958056556856239988036212595124356938902742823916910412342006380915269713238941008824015215977839238448544381107441941291642098877223081624571765260061941495174838158749006040969029364910658321933259327544473668706101679604101248329961917987850987668134421980884558345293096072883008373443946997195566222831573333098532579719761565769393205547856370335145987699307156993453203830275123731777251595014858585007208622027359401301768771957468994170664279893543082666023232288637733788363508971447143181478426986488268739972909602664699598058532425943029117640894253852194870657624415473678074917944252264909241315893822873384050476420457964829923325720498378251516064507345019433164920065310372667267521218061422644411227778934355547182401142900857540907871350324154188757451738315715544304766902838897502762428802387860767198492865803406455694208454035763607864120844474979619714078556250399542192534083346728499222586144274640593940574488349896196687106263148293497832570963070261941250006039326848576308439948954129694265362982444714191259903564331921602093204589924869528733606771480290741615119208819845459810276630228502899041675264672128199355757326612397784617569145409393257891673355212072480393052945655840820656471981257274786742450510689636874610722789978737528862556448951575753809590207504084009852257885469141688185057135889742480981271941066155828579097446107218106677519483120237588192276936312275349492789234532784505030425420208793554632008576075498745099321416133042267973062791179167691820220908363904064942898576355746631802441960574749363674124230131489804132819515125270435229956107244050207675415189854093052458206953167078178556798512698938929745885570385922658651843076655073816841949872853030121952919335752091856071867940553914754600292392628851860946969606561971472034955700012634555414161722536550916330993016468355747263422731261492339411295014205260211428452241823804999601964962083476399264562679382374317695594188616399633547495619110534784528661911278895068305595800301581201049676022472562993091497626017232848860386526430015517694223019011963409309056614138965397561966447212539384643926090309615047987985798268349972241041990613546258446392081636169327012777870838805089103004187560104659996490879985726908428478752460761795874888051677797470186440803929322210951357557373615288012547514085701737567034431920351977261540897037607650484406546805187168780244435284040110648247031280477711198805524379040720552381371887477971639525730656648258409701290880681011602171888583899906391918407217458211159893585364698437734166110053822380146132805827936812100180873651506652571955095199991313457985636251870362797925271462344759743897000422326159124789486850940950127844153668391746756648519542829119693376217381975375511980239669770193571665730719066625453808195840801527700490535376905690310712093571329812993927018590776935045785958341892610673207065958799845182591808553301883583665381071389666433147392618687335833757843546039451979604976702645470262669048410190374644678898197127941010305744219947020423414936278465697318194137209964802990363676278998720876570003614395519696814628396550631361835798363588970234687749111597990111762971874977536652041145265438644251502311410888683892110820985369630428606212126598499050294730443730806948605687034673153920838565098297722617463360448984459753495183638637853019780729556639682447020211167850874553957443807760478957214766742783682263517007098557171818399904995577833712217850889603315638240232140687343424222859881290352651362975964005423455398464274489666493886656581098564093265438472193837906400836697175878265272824228732963745215416227691510873260788724552550376112747145573641308690715931700948083345255025029453829819785212393059302429446103282528105863180612160928496410070040606362928053741689588188117279098217101620364495878118214142037500388030956004998617615046654424837708739001351537667537959263907413732788346017227466083888098925099889833629720169192453636166530414901818502828662473322266860320686695823943895780016925093297460190583750721019749294781918925055817408293207779595586653769377937947841791559007693925320110044687781710912436335568777989430365423469468281329283578489424466657949017770725748541981180984788178933690902429249637047293180800931269297417991556840173438523818070592532828982060652740274183646610457246328813148310162748532207579251514530090538618732902170008375856888540614140723072593259240828645841994552829503155561059532773345830462974520230667979887585126497060416779542107198866984271729507470760371744148275018425835063706038081198247815114601596360813906325570711233750434824113683766962485621299962122687163226709196996512419206683235922249673255054826410692016707366352333230046411931457222716362234506842032400199112871059673237732774885520575389164510853692583806196833409545583859154692384600925999893256422112665159011656604998667672079433205323433938073091106659232475948606557437808903497586206364804786674242038245163047201675188999171311578611296897663359626142409193530846826618419059503137267595379243376918971214692026186758874376255414330543547200349605067019480849768146371238835715456166688383869440854052031442578223890929953231334697039338215267236603799914086855274321322554675337280034673066611116412711838515861182276211229335269195750035636469801197269946600132809149834979279258566168730846341981953407434294995400288919098163346006833905097356053141266772289441062383846330547449382169912094445625513029701917988191010694985843672817970706353573814203595390786568349700274730621239108653832924921777189887299275698491303881462014109678655288423305518511893909140715548747418047999476548372094249935553522374848642766183820102512646333501199143459635306938113204035759847614103344285345831601698597155064772071242302660517768508612930639084459652848497873239152144649795490933356672574745366862425240268034459944896356952401285644654928500405701323614113414113251330269112791283161398672435442097501858440028192392341787108541586763644567639612395895576139434424401308071546788166857763369056990767281019353008791618439979251979619967438652320037358482119393000968475010115281495181679524871544970273886991641258305418593538945725984701285542100174683461691699262840985118228315607846310204405223113938703731831550257803559254924533391105882943013914547325871168467928819734815147382445836203461885180757668730910381381673690545528262234289670204962139125194309031164542713327685819521902506386631449695936943786860498776449550327281079675227674078959029913464292891563516059391681843044930984156666792436602202945845779184075986906849185015941875121322927986641734508472130964105176436175889935534743185769717415373199399516767393797365869157761596751141108078134815941127210575216672886771842353383367563578166922840408577205184788498834284475532243804438501414834705047642777764160793035094756983874079636064517303177143081759749384420859209063287346686795502950726522742905222820216920207750996912462683801955398431727214329180025503691814401440176876781249788948205321810145622430206645094776408866859825223074577320198665797253475928271418202413718311294528133008361580517782718953709697072774112509088046545906523697598373617070769980699768514181580628190753509214384071172021322592456644237099965142555977367086336360550556898032292772161683987990525437456551453907700330933392610571426485817760532314297322974237322177947099385989945459393496179188006794172529745042639479055891736419441477043248406673502086286805529992938273257079586601127831699532731214165309005034544844310369092120565813845926321142611795377289463232119024061416468773916764141167544698218956985899338114497694700490358593833651467371680545840635543068550134643447105573633409051200854687788265071063322927105677928559229661384745407590022492719683779271949333189021862090570194835859692854827167698190826701426048780090064624802643083712590248928421123800507450577226612784053659060205392844851685213103290566854931007101519845871394673850761804840113405207441694546761945297818639344960226956235350038451414168502682551698557928849493113879253013495801489271346122980471944295520296941095361494436959712933004466473889011434191534251455434491167637902613027120430902822761494766789245110243425874431574986108002877667577260363264671982824820496404962048717388159930316704285076968890972188984230809691431252177992663344101941520493541110478462653679326018217247265333426706231190408646256279813552917049533470806705760167346289216970949315113575072257042161321365624512895678735751964983163101072047130530168698138225291970602638153719460229579583885953777090654131498174377290866583219486682626017212312941462508358536754931861684965472728134165771918387259202279318871196271993023297969406922949355442169616615387883808730012597358480328533070152377524288185662609275027239817120753860844592421023881574503982825555932341348470950414064626590817368636265262457107276012919191628765459589770220429725633691029650846662635214788298043194835922139982637289630223793747995818623716980415593255595422304882924988413273173744461097942368109432545023617433987822734981959953608526648012750644072758472969665149849336782492368416481518533209465088628533835415493439913820652500074976485664786117174677082411037055392286071852237138747231108292153276967040534847909235406111016173644482744668465816003447316136862417253288239440460862089615094189122528960388460650926015861743278132288807359813566596244323272032788442596633440619014377336735794411082467153868963137536948791675159510822250731196102076946220354502287287263755799924685790233274856727248212125227674796460975840882668052180072274604029081456791027905587251961373924774998159989716937613611409846971385064528370204335365255148620902556039043751225067501281511626310240679603909601349808864617343029220509156475383638622122945023096881013980741339035776350467621133202626485030041330057939338144533900899079118191673008696326536305452789863264354364769578195001913989544245079299078418022577910403525848794859493788876829842595714830215994715329589484824875420741376398044958911828820457211433222384003689484846373058326404431836834795159974074008540618055622659878672971403819283278087658573091050029488070826712475154730903712814312157854715353176942895505848445418175662233114041504466293510906950636186932988289695873736240225781760897628917135117792842828258479909740391290516867934153396777986002215003729892316991141137803931255278036486380102930506128978707993241868048336633234087151754218333607593071625768253193629364137491387294946532721945421870462552110220397628415766429518634498774339909188657934522115962141312932034966462382546107061242983740673965059471636792071914562908367492602554569148040711720298744801288136341697798610898896531529331638226481497603533382995146597863473519888449844423586554621957455051709285745434518090463985928232333814159991380656405552738106888298463391460103286959848956500771204733890728393163722610347918513730570985691039459701150516228009907709185683502844071116623266536888369952374555658660039806856505540243641962568010610784261842765458562611040008281200008534006519938461282888845783960735662637152013323499027649423780091135851078414162358466718122659902913573894688802560110000557432309434235785981951939937107514814544802284951892343405788332834096109167750430632002279999081713841743593578439053095352667481281068603943459697581013222745428692509314401120024013887415867757580044482126463485685046240979435871942181820907746849221790974296644863809181516823802745339640510513891300994520111545935091899956057207930092936819141743168378683555885500118691805285884740938370229135760115416028172413123457854070649409445382732939017958842931394057311882973927704538444488186701368086606307246440512691099627039848615557556823961236831162107926875485635509307968793517657538513629851263474849677097013497768888977531155684933132573251698332789379902721259839036950743848025816640097878773095651715391351427009403941220279552824399037996173661448877475594563045190123835735405336624100203450460360546006078111790965392614729608755579909721893213507779972698185295577544668828148703427394846352897244595643507885840840326267504173781095816575150329269519609631623342101405913941529001994483038032405921167777301509503214863986663939639067658843487917800547707625013178027855510082305144595482109519461769564718650191676750871989388139065502059335364372491580051383491142305350494352466185090925914246831880513829669153205705699607970584095185238757025315419063674203234556436013990859158584901796940403722139233629607733221014841946814297337979047689371219627857407159696975337470936147533458268323877673097064170938667156000775251197850672939864156016943031445059556675032693949051491194409616460962418780578240404214116363098878028259104999541406296583606674234862164014383350094836496935769594264336796799793600127519708633589392036161791745065824490923571895075192320857100423973241227901220502911834888516435479845494190394260365600454116822094703155473540016586760430336760986457100388274808358864284560710370515468326528852442216528210763515091924326546329875326150502585579765592563390244896013873957089903371685631909780582134377536932376504884762941960669611056171397535638014895222531065152827143026967435399144518321747378052663119474941133839429856769225205867643309198160671234120958919225816545039813014382910816684222817847826834764561481682549865596790268740119136134271487047732160559739736852498292840695059935266667722264117583830452184707805884799688415477139545327384288359959847249077310938982732157380237788664288790200191298068766532524073236808521638710296377569465703055303967263015447171400801557241847995861672461284019775733211578752971303329938770796986222010117332675211418362947884681872391583594341707913085154696784440177857494962981123753477032042161015671616632897154729989040702278611334111776894354654557294515663726585412402438592592521598543031021903503164204461251917728145611621671165764128533571114034993939131623817503840666189306686575008053416495517622657271965668620332594716552403682880083574699714941756388750021855377131278932834919738485126769720537429693597173011898757802567913062835880592365656596904857069699355293053019246409707667263910931691065527884706217035394502638775250747864684649043801530426524816973655851628307081161766670506843320496328084843546390303606593053118657686766590306657912160358271602287026539505441277172273757528821151177443718418062116900903307804269763222050944543296139144710872332071454254113364059979768184365195273705242472149150327980988645762909776382220081288147797167584465224448593267242673239096549147517423424756620572362564649976247379457685478355127828600048795484015028321025012991213977586739792638849389544127862509387129084207134613941627181689892866427398101262097529875616844446020721390252653041496072866088945267234860022373759703982682567183179671507430297288320048526022416918339340743109730568216689762714695607207624064400865014554208198844000620487357787044126095330315328118479631835193294848560986297925615076443756810013897409723866217664512620056308658011387650134536404415304684237264790330195895184142762419338257663279700362236418147183808689764283029313563976271765125818369460261222783063013043620015938756123213573569739552818478854595784728683580043688954224439033618981786080566635433630961680975930745109266206454390920112265521779808022307171368345061272086672561952973784589601887233620918532251330373925542520756273360558339681281342402555435968281870141616140005395931485765979369759209407080838369361377761680951442351632185470657838833522030984315241009462385634856957257858068513837942254977673695336980279360583373927441081489824787661647226909474172390441061691661408023922069585291565794727475404440224135998744669283346577598351363508806958913628986145639076593961562919844784580035280166879614880605376635212518413217444623859287654391394700859796546981090268873344712753746090131388331758481319955124389440028790227886147542559276270034067632164908839186718158279234503246337266296771463899810132458663906476698515782833031879193360277915704232097491061690228379988321106817039320050518195015717560692242900334769072128903611246036702527350675792669719199866222314549076926829454958923014618102454211007472980218419659698748540047597721949787920654328700978967970342619739094793652605853268668356904013644478483999290560001105633329545378088405171709554797827429407707992695127500585029900158651031843550150114957811989398070570445637510428524423637568569206674734809880924045471528380926338019132805507669175401566626954430663583717865218235751741465252580593100561656083266397724275508741078775982359725337752786087249822214660687043033722368630218440533654077750022914760751771037127743087445972540830448605700019190402882974343193010479223683348410002840210934900521500830822908053397759581348591775085488509184040751861303704821526354836267377708082413830284315950400941365530523509236114215974889710202589746417266115670866585360504911457240755431893373309864724457177678651361888586781371751917180427288246970277437004350451245478492548769861444034861374513077781591485766705984050916797300186535939156935850041685507655551444521431875022702074737157249715444202227294473119802965580287397105004304157481987485282967409851703243274489279386471841804771526749129191452158258579692026594680312125788292154384218091899819944560455317957142511951920958937082475721826844762443811855707395628967734431020778530148581344007463128284580375634540102547844049019780825397678156851528696056794106499135990476365763640123569193386702527455145300513140996425606415733218106352744588473348643581308936392122369904525577247474658011339038468853437240552978049568047420435373539093236440369078466695232520267296510267731173595796914889608948140150240832819479032140647544762632135400469734657076499183560091072455185136601018986519442210806872689914431228274082081112121588795228942570078983278785821563311768967645147461067795192535986993181228280367296808740020677157746219860439211918219837733729611253772809458638406196318560473955996619621259525555393804453021776378991789318834778074730157396765137829969775278325738736036303311595717068573212058167630722731382901750404253245596398174883430308194902364335810985555066500144911967984712828354947602226375718310922743315798027818749266058846117852174279589346136300313085795392699816409846162773297008034615908422434996061878986008902051043388125283886623737255843797398707621707459312142676390573574615321647052437111512247914430744800321540019378390200526266737631395965996577278119073096688136635937233245042593177242990084311351932865748584027119177659236000863081761537745035438238098580395425684777715137254823385776083535023857307496513833452672057553769419890797187383233284407685470752431393121572611251060756715111052002363963398406048823681392022675040570833167152394765332748834465163368134420955585582426387171749557267240380437111834871094860364986242108011716670776055503511407679930801039616893360322702314886116455873586225412992460969103748725716468035691005520070301124061725311500049663966542886365700748281398361358764141574370465395040699982169371950059861149506557053330273851114800107248993925653791228987754196576508880427888234809192624301117174392993466450853160858259599786417164159619836504261168002649780942715980498136141734147380997686544733822458776068656953780853782386484891164411481856106634137146947128969511023391237475449262616218182565683247612214449742156130535210936692551164315268608663682819884089587396836338248842759950371288721917851065081901002269172235202538666536704246156456561444160590287746939071950568060287265218796929479069934208333304283668664117711237836615828899833430122381436647603441814553400666098005743228883726800005125306650814770524640124994880836603573761033454218509547409508089337942009017070983001169550073233431112200747807921891082926548355356576403067608581616499017029056820609540569105600035446235173946916532863065139423235837101400239252847409826746244099766163161478059000581973847886626437910912567923794331563486134835245110747275137061601553819199529052592437271257694209268884976676594747802759355827852060522594788706728904651550762823851357768906374518091691943128936671905070472173680228797826386836793787849166893153396114379358148494040838024407610836413877297608106976187000114658902033506144369897842069010813169564582839922129726657296924035672139633372297696451654634607272882129639060250682548607691110854855562423088543854211152308738141293986571474391762043229782472750931003478323467853346753423287163178544178401713140895245164709234898526810367221033523722017504768491149046258506639187189621165861327270865356531586230382500410423674728515150319508423274570417994745822373614325199770656107311720876483691545784324849541723870950669422613096191429004063413888873522658145325753711266820175591440079178291577154711289275082448445026568834912498813272517839502765872876535111326032468650567061762987093273553180134233717874700013657827023967796261362513746988347338171848076939761280420831714982736137465056044907033905411096818735782441005270354963411346677199426746437312431234036630677195399835593565273698305404490033919376126831773863239133817857062791712999656778733161904931698719957853771147685058353203834938263966950661899453180795649120686346303034874414637441540473234492615065662034553222027983837616177222702410147011312185089688756121282457932129737953715345828877571044500129142422299522122202637019520066183767189022424557743967178563657220663629186753613280173190146297299495612652356047224808646344346241505613877342959999783382033579408612674130269323907003445039750353477660346669873743551454669805184520960046659940089495806985569766158202565588497301856417367541232180048909390458123739252151709717930070547908920357011741795807925427921179888523051038647659385066972469288724750901095187954136805135582000403812712362971190779110040247855528738276214246511462258025807218757505541586092515975378666678092948138320786376416940716874914258634146270855233279884049771690623114980920028761994170405698674569299947150959357463927120650457619724702124792781124004172689990203566674169261194659357313310981342550408198245801433117782401146333965582999751252476453842771786049691359404242331291937138691725590997465333074864929368883756397398605250239503150545134251404475707812982343435646301930402765083195506806130550462023253427229925878616301328385161028372055248417894743875393081688491414071342579741909002246709979335265777809297960367899531979765893331759996319733133118754245371988456350717467263640601264619866794475602365530492207557047427056359625915193742141048703118387447410612138284125091186139322971353748997530115048290121442293313081914343087696209055404074842927762187919374785408957680080757918032070643507843615973630712290479226966018240347534781070045551969016977634078438049382221555990523975640631444052139183008190895369958415099545744677043488435442681019439776317575297675140171049674472709053270813509637141535904234752517518723475290226850556459613328895539369079054394300863944624735765148142415678819624005809180309835301894638143338970180289502604993799610296935386696298130582850588600505867290996904616885344134867150306147333141560167408237346668127275089519747192347182938785978335405459754138593858533338973886002533918861768255197538090231142826839097788865409384589086875351827182261501599689606652092851877552231081830128438843899074376842538696094134889567253713192157825453464315539891557105813574767437101170878029687185742754094235396615559090772473345697619219556968924461096779575536478972852903929199683500195478152228163626028492302787832748914639179758603462259313346394986546993695292645547643449625036125917500707868991496294003727875939436031227470541681446854808421480549940631819281188877113437554869560037533747873873911768437556039687553898549859045543172775432823884548319462767006341071484267065687163690357741147143883266884987478637528485410258239779416595006541562214567917000146981949751565285444367180807375285579315327090101635976232928224352785954809766796923647647192053165479709235863241777636549401693529811872038798166787821969717890518831184511366085933065521843626013212647606617675914939530150851764372937435102836075732046765685920487089849102199775043385736729148567090530055775889501006860539852854969828083064952639927396186613765898658698583710106543782654219875419341049558686894600711781571724258135063942473911003032747837846168640711700717328984607060621751634437214743955604711661656087623579739169966133315642516567239974915360435818141373886438391945536672848441659223803567157429406500829197643944733418256001673050125959611698324357519605897133241742037811041457969375689504108547848805887120154062597892501559469619867353025269920853677850694994655830985204275901488648223531096449199206549559365341591134291245614851605761118816998901515167117843312524254357851560036409678904556264761589220808073273172203021139602810601243899104411381401087011436385436095615042512641118929261077551704886125789507783765580887921808223704997741577761914677192118818020192516199416601914876731790413540225853591115284812208193467948874977648357339849335896761417975652897637991489089517194916659421380284732414658624673462174856437714283898680413745371474941700786459337786540331751018736936104666282554819834938773202625286436317411317358205693410088749499321474428631982822179912934868033374897175330949532166229680018601067732073582682890840351269116688502176386589771562188732050808792236479963130422303434204077252134864240793162213591720446191546619343892318340075742488499883613806583545080416107378033532731642867276260564551129582492664331067461088804100571125909341098546971102645141968222282789396938412359114656905148526988849512609990984904823115790176442731220364455080130944680944105816458966961291531868635910916358593902498751430202458794830776767405275985701980767271022210549337504308481563501659687552034494061960542556939419443445157985077935442755954661204771925531192807130845343361599040598617505564840712950252990229332802062623120110962248179267435966573542106982785212877315083025594995979489693391207186029788919533864913615891068544369394384314891161059078750224077847259266763883609136874195466771046714807662670454312625633955977241592309880052367260613713758603945471870213356181908429134800327139410037675832571721485371234084116844925658753961538575287842881013158699398445722754365180008905376181479166736110193351696615720820263520385656952687931435254027232051813641387818573603614122616921123232034550327688737179037943954293048954698153952294026368545868041997786502705543960761696438222459294180806869435569294831057287834018937802383858255593806118832434593440378391804604111033603674693012304915342280540710224097101644433380794080909487203973978437940012393601409646975860745146600395927030143538336008184915783403235821774044149117957022896209004551540034750177760009385433904200276655093531799201504052143277884305469779062741026399997178578660469010762167857450717949692242983354019963972157878397775515082216371635922719861349871327737736791758030524618913793597736212984612682853825051786831794393902190331098865847188774868777015567888921837377521380280946332254555228518548098456765970632980022792784481181504619750971872827123444043962441289216340352850390008553460426298813893363721560757252304796379157359647231085114589572153013750121046191247446348418673432592653447267015292208507703081867586248430792862916502781786878308211362925994221210973304077483831111876026287548320408361158704414772712512508025681891234076499048976951406194959723895344091043748248302357213911121708193954035915124441245036028805023439524890572244467185957390297436315068386375657183692623489111123097728527868374930876166456217573449069190157981545632581543278751648457870402989213609208383335916076708177468832257854684327278161790838560740547571688343107697517480634926542139139453944564741240937692651258208381857037571159073969818578623005081053788683384811409476394209337316768886778707313246115111550248023302148478883139346882251987117105925216243636192020820465722831978537442766091174042539808672189690014251149280214381453740151728920895847789056823883516957411875799070273877938280421220209057913650131209338332026094349278817129173548875671146477458831035677616605021727831959132713325193735352294680213734247662392486516870841107626736943625546145142167455763180493214410258331216413308030124040498810987856902551891966550397487649651948151051254197728798567597237077736752982958944768424117220158702608292144502170751308283773361921667454197687614014086711308854215605107725994322650077441772271300514988009788463079614129975305354358884927961570153288612154229863907573530344369854997894827638070805091720795841730052620071668726860647803562734830371487544753875024759507561562020555581255706543965968001519903751876270453749844865570297911271757011287895843154912824784363517058671835651967440786023462721096062272868360391876851352606904381370751317868082248209378802281628363686574464935713594727032700488086497447026168481304749666304841496760618305025243550368768361684275750084411598772988924779733105592553030145647153242343834883381470590550935511550403049570564747468362335942552943505438355895054081267906948902008792023318759477328866403103203662974800279225345168202069745323887945860292907154128295581213769193966833061327058239090728989123597394001296019608504177020170712162083341003085082618807139737708473109116940944684792603340557731346446863121708429187601999972877724671907528632062567220125314495590995543058346336194554561010073634293529262138038569365300733789533173360402092667490375495101270211292381726540456259439831175882671573097680295699739050150241172141384509881185267002876339887765810247275662038204177865116257678128613565131475359608856542202289492169210183343618827779003264706332441451304270058568107626603644886092306093673191773036136730090293985028917797488741199412728992344615103570963597812764032139916936469853709884622268115464476723212602677556913013414081765034189554477130691818256877197900174848132593195328145268447190811023333230502809539865990646016658959457981297985867478287917247711430402155934902784695689502640515679899073824904693360711883418629663768508041570770216438309124700808151030314883069808640431541118469562609589426565155431292212384043528069445647368418746726200086851686789087837260992712840331560414406471842800762521281819342390105615353774135549093817507017756162934792280414389730904590555738829508369003572736677505461230456277600184268725588506225590527610111569134296777027120314782149456530172580655913873551227656676099026220586539102664543394082673000755923893801434795507170237628948229692080774008227459567612002212294506174276502735779414825746915304490899022224273504952998802022835872521586347343074008294680163963123086156662354259593025303844002740200788199484773443778295149587291613098775871778182662260766631212490381037674576622530220926606601633122066996055149326500515991078832727713694294603254986022043054414063486374439110908807343761665060792774641153630793119648800837450924866475210700864376734924988317661804430950250620162741608124089907829416384351532956548866704549237065570003461290714465741964901986534166040419172552730027795418808353292799670766910128944431245992332411770484140944335157210534216100847963030278526519912022282312678553838135780247917438626765490175149645968388181868390870484111215741389098607941947889427334950456163021288115309674859765038719995694963191030314178106428735501136481935119934269579138896135761723491197708905481802184002726172586043298773838535747445524467740851080810608349751429867185192504246831990634168088088417159573179431311153241236931043685511766077732850587086868481993196442515832073045402045365726526928183545495322277786540864355451245028689148702654897799652812837550309380219097051322898834237565002130088754335234357558270899698650141641004145895692656511069219197548020526955003359308628708874350270785106919984889492299202483442293207503845460610522717704177560564859268847107407906975719753294102563405360347203495150072710583698497065601711530330820370160471002496955042664966629972646915616830689149731516874177601288693326461197471503145264371298451178025678048911305441625285375148409501901593489330393074925102771074036763047981877044110217271783427511071439928354492322035175862201113620664603601490866854312130583128380307043437574774670989819076460020845137640275803251862489950293552490115149347590545982728788445370271781174474323159288390967976354364200574068501095226368371609904853477961858855028592499307967277068035666294942318868923251804756581244749195030843121038791948064136070755669295135890399926786085396773285087410062314421282299569106382064937339334598610826707147740662595229743173902369672092714430850994060733713186206423612448905442754091027253917966201094308588097839757390681010538447022943802734578466513347958778405372746629485765477137197160415301390430315629502430648740833314651289057931896974805696022849021326774515998370227673688314866412817581913311137483112255741599050463619487055575276965920456355892387749689755420818759783992057455395297691950003344764544724356086806534804519423778760292218244873555901860495558927758475962944244812767721111331832500624319613443529826574736347104063195303014409023455971489463215596466603697691414359649819899931189513863979177538155868375392624412158883674648119077274688454429933076524710383498326126140833309007303958466692601245693465292423244184092428456671003318531319598810624648200553086116130099339697310197009827512241882749455287511713107159555680627566926408918048734682383920430338720478201014527159943641363336765974949423221468469755515879716380827695695381923242220022608977916741647533013992909303247910682946712972058420538037941504223747696442411739918618654044120979459536563446813640641457922353658234639892380092527982205053873276075915680594788826099044749974673438990151259227916108468504323013899992165340516041498457295894004687863927549172441356063414534533945227413648748352468491062294504526942040535623276257780454038046900747468105376733640478107240815707413740675540027039789178005575360165583796744213879471298098878726687418362780490044940167451414788517365271626878154213840434794275181904189634473850919639880934913485614388483617568653374822486794225130072900059088705289471427512285511239190788463523295203591744148761737042016903950185901029034349676142981216884537354286798828747337916257526024080651485983999217856017508151279376843629365934018296253264764830255713813630190124015738305797409725829426019705460936885688595620926294029386787036391088055393043544046595110980749039034144422541187224450497016777408858000169221527776444755760374620926616955723148340712664540114057157801499067844242209644056053371580171712162547735354594629962092114432946983903425316049235927609809130897680064619416904149662702201901399697600163403932771005506028976068960923839934260549946509754650124353809695301973980014670502395536370066870176101547883385161622226527100656479232508478149046673728515809700768053941187707455796998888453624473789944020611220519144866437567975688943429901814162725781558855616079326891130251766749012283693572395422483168324536828782849452682387787504415192077611129909511159784223275098038706253619565032354806258760320891786203411597138274819923783747027990590865701302431978312081806554086068386936036132969327552734374952495678781320043483641484139387389571436231611576991459846287206611424615051737962720866282506932624121079015618703318097241788930022993496258374228194752767201201378206911996296704919797819558135745975977904852156429292243174356465131598107407098541123453880903192980353206434720938163793583529576502543620245165262931720695404450558874364230728650305439690608694468465557424326632995956832963803817499454292125573826880460692897572631907871988557922740607382592973585787612656942291248726517767527312963205863596670978559794414973963367663758244158578098003142903526820825236825882692445529844093790300335780436688593495534571714282075833082208400336538390783824717305766772655253090348126829469994471979336732648244233505483628407648239932408321441658277202793931605969716285139238742730060284291430889122960772057756219697048178444084407194440384982960367421788735812981337042355160501299258397136129513887543428853718797536321394875277978154756805451326215374089792791556118540621960337422517172945574633103506580270708332028942040197922689856284040421169496272593022277601045710036425324932385159499449717615965776952298275615036892117203207386429518593684362563360777368523882082478494274392690350092751049553379175486326815785824854821307975752487608506470050998430442331920438022156194105368371787587844088210237579188796666792149458792564067279801404561520744905596404263450066403289690416087608649060053449093836261349609442979870289155468614805252573545459373490620287485017970608585679289872534567014198284751717387808928991707186128978473540834021177990050924646018690366922558264406674082953367565823920651799380256764741719715149881205967719784585874222411475455577780134557053418124281397008388792828498794137928601519501442070276467309029163999615346654272484064798758331304362366939384231675883645445031912699362096363909306323738855632221447548788193688582231477141192669386249688015981641278369252303892257218492172848955141975488515753836743539175822596152310908824350095133116928653839727858427121939370531802264971586961911477735384504792902870731391884518775757018236165370106208696711219536660614940894955167870066734797017615077003983413037219887911659811439625942706867156684059477562030545194302997382454010068861875537096438675720145662133735758775512201140112486658565910784320102116004571570873657935087572285605458553190688213797190830683682437465595137815721354834293503913466170290682027824634393915606119682817945327566472729930019767975898342544470026730892789324515478099294564970988248364134140692175137506597476739379565534788180145660910044672307905350497460313819228030401652177914293263970484608762583748305633051589453906778928829483639187639551083846546205606008232131255185720108238710145107360657028134449939914196015075716789518228042110752588648975421597284053838515164587670030400899317623896854722053939605123773925034603738026312899098128047841175624667405292931654716197932053429148156489139216245302910593281888544631361164623383414451048001480147807943302149961430941822942584753931307243197524557406415876996021797310379588665538453636744750405947342164863195467140080203888647398032820447742393230634779433115450001544594922282495857840024949822123806470723895824219148188016277310205661378765834691634981112066251024672040930901398543532694459267905127979300093410057957627890208840930941779977607267748828425197984917343208841900845815828650183900880026357213840337772750322819066875654757191802960568721594610981016051780083183531070266913063178896434883078562138159326758442128526547905952809759681410111368838560841474386824231000406333797409639208741952827098133179179929124976139637999406597375363210702133044809848103196782077727016062093476695531164408769068916471732564343657729796955118282753654739581444987986016570193554086999838860536553662366256710600398163958679181409730368849836573429754138443368945110105941864589567356598899558657585830740592521137560809575254109425980933319852601068098616329056183101815532982577009777365025988992930974144866340766653873029154405214416978005807888469676428489920203210910556721436071581353547330039016021669275376800164026984098410041076496851174247558809297332220598809590235704043335074871674543427006815696177447972208394082552473705566203211689034501955082942780564602658447161907537673073145706073299305872481263290979657004436239944460540724396395430594054543566943108853986829106566730767746196425119858345116416547102803493320813654441185095933810099090643609838539589730512334239002513943280984989114004128893795201153498446988414905063069086068537759500937639590730603761115714245466249887998756172579116999786102744532382840170094967127522924891991490242907452560922790025159576498253404682715215133639588230541534953635546698915900103609997121232566705988075678071956721597845273020548920927598582645869597967854274197142505475315078768333522286042444315973826797950660427439695863509445658127096807535285134250914404449412825086732314544734313734856132847755429732839183997747174461273902858622420688979355321729077701977872425955328452547534739897977545142647537183389641678137977030249557311869614168428915282683860229221382804179495894785481806402934020755580413450783653617796924354685698802137757309021171762620175284600617802835888111606085846459392101793535106558435117930988951396728648815527229011832742414946568407632839601893689402688155850006201519638100302019691578325779851687748891740674572998482552750607723735528199320569345380663650852311685321182942162389818059297744632131255351857542284064848372506947626768152658527530664480931389574871362970566953291179353839026189693922506104430804579075000221071500511495504043827220796843977599948127098433443734771236044217279025182898148542683340797916413892662940714974608705958247447464469054867895378922273975700544349793146982488419096483797955271353050402503060944865326728563317410197059180505932833105990158832997611956847619619479548443227046734851278875640271038054716257722310115179512498891918559573920048561440275401962596455317432331881042302610038811516627367721953514494073696042932459249760529213507291862131534335592452160510201370867613393263209562702767322438116468102566599614645767940021262457046525985609916102899089265861433355357641212682854894599908047077876669928485029608838800623981542137856806673476413634815754254961233531203818079468527508255179576142020664302091900789601679474721729744202395014574892249201448932937973508568870592965720341932841812126516493188664051745821984149757411362391476845906937881175449519566262387146210407105165867503304616874288655847035243163373622734374081511688150710202620813949894944809270387617938049293066179703219184013926585644675522816830924004629453244282228901564456070357590028705644633009696721582176621867937776867431587266460826854925468311261847040877262423287542506384726072807697025293475779678463094672688989144869139087278658835514744664297256666845676600590942617736163254055230232258002596900843405943485457693898566936456365887045823633441419389056119236686141380657112583029680264845759127548439450559596639575747571493825298347185020003927792557435885906235665873698519482609608968072069341264529321018322272309940441351250931423469081413298186667763193423522254328625226913062388560318695269634682789124373235954962547902092099113105505580587021538065307449276395904134740523770099063176411900985679321666423243488338354492181552261358452324578053534377404716591437031739692510606228967906925834462745515223938008111461630086851775465972343613814198064869874537420552534466287730825348109876321858280827065742719127236045629988630739621995694544366215699718689057327397187192014046973507603860882350700176623934063489855921411944748267343805379492527959507656075929251024336145080644341683228630654131570804528875190892337462704496368070490578252039728221919314547922994987392444847144618940094506612669114035225483406193078723783322027184659903875233702870658519507822243395512693813978055071935615141584333496208098256623760587706154331909959907227939863807961279838613680344241517581518818351793903630979539074367260608666119152802260550044351779336552299284050464731098180606624773908603259771262019494089463441408098080306466348709847359471501095778472460642372556579516116775383338670044974151805282767241726696134650481500630502945841941944406463818843358166080466914076821092194493523646436150914100321556973902017977869755086650298124800079762657576107576130139326331978136767439243544531586165161866895413910020544374049952778999866776385353214692789261249876894216064238065406061396351298406229604562931424533517879045535936728056846018665630487594273181741483899185834889181771514268397709888377365562246900788388309001276508988324914524106274983738308652253771241945379714670321783264398120179159850174499311742693075926814104309119364057508366345260592448729501396536075285806569657109179056072559897282692837704139551723784233306924781122853104258190039501866828243548071632571517423583232251027577407416811372024506608826544029538740318252566784380269219093457871962604152731446792410092156702790282243941515565775515560789525942658730935146891203632278451624869859125710869586653970743097380831707232080688249982736871888926014907001399576685828492832451761821936708692818603013415935678648916398250886566572722808807834808041901449344914892836871753124010766911798653888523227883441827435922411031562014785751639813030755979699239829831115974323077907459531717504640183526814660707207720041906746765729417032944935341848247433959086857040747475267888016044348311909970214937059678942623532743566583732020018498198296855464199459173233451569335710864714392091974693610787612944410188241931988557880812357543025951911744557111299702172074266496493218587890244551982755597985850003042905206294293382684065290578024471314620203156035695649740160392507033860860356961076686992768467373032319537641179627871294080002205550647008170956350743464447710858892710765120223787530439098370148263344167001944415105024466879677385170047862832994789182424844222170006473450825799825882482365144210428875145263971434863744048299361754424289913777249567761880266691105792675783302979582306533756973170880309495652949380272452428225737442040355385100345705329404833069125728101107480022432381284778522177292045684421497817019151848199270386818428048543772303997509847522143012414573823874567379597560442950687170374253822565158353129788438535195068756378252300409780584173566319250769204014613273228114606351948934998938273364994790986764749202482310560164229948446894730290774907809953158419940517663260979130032934900306157545648747441436863088291879531908682760577247006419848430183919739676903572483624527530811652139206839628760786456617539172078124078562065974007938162471738240405838234119206009463818611033730204599976755896332114341786818542072241909237203619135600425117051754966351988584638755952560145161177198426402074388488131137261537136160648721744816840972204551768454272183633667479777036207565628949475479087771661812831093955823585963594664463380874923370422419042611019502619994731701298652799283585500316653063813882939112826938998983523480889505479083043854699158204599084351646525445158898938974727108253174292375544936851180967546974777650103251655100845437072937315122306341878770759021458762354416212594046911175831737256789651888194719839239217919339730481851289202836823523084083907641709848367252193290835375612169711682415423467811691693525799676604647161282025771628407493602076225455718897273872223470942198536753470514491469025895058915473573797468819646428883829734767257500161875604558128067561323334211686644335846377517864340002183757487096464281912885293151258419484463239044684926884039430043269291535136715739597057493335858379845012541186943076541599577366697713040149766529153308534146954721395669987788683585901450018412366296397371414795042609876483694054409151258357892523063398377058775410375435308467811788187970753721007094409978196167715152340273758127678465967712983280348841139596190564642187462008843872314459997364772881508164453277102542644530455426428276347256253027608082073571707600417539759188488767116746976281990459462521763888422820526351745036451656645285953943026065960995029677214403349414531493260857333804935863849913360729479568894352199305601232456794509624216550807360119371995878539744614447053769617922193308937464561172109335956856355794420449495177330143934562407387312416216891089185096140781544593582202876091184247486691555053497424846295374333443373174055576490397303577969556302072776323874300471995792278388214729772650235666975463006320031120582379882060804322846636971782130410472042371963019629429592242174139079824536443276012631681394258138139865302394252772086704663034430656752531834186656385282042804253877212764750221537426828118639495132668795828144263326669482921863935516895382969488401876695946741217024736534440100249231132601682813283624654543624018310490835810007558693352418667067757321188056266668935470278339714609804017380357744858641450197141618874652754886651319509387681041492754176476010090092992160041666673220416365676983123199896873385881072673520303493942110495342005866871454822604370060804740943045379361901916995939270628276757940135220611799590551251290149431547845971127745313154595576433489229692775312050027072904660874936905484894907894762707554940655197078379018421921554933547861748838855125839062447470368457920098592007360057807249382299623534133338686556367909734552849757022109997762696415037446734614724841813595175458047316009920130741676178994519864761976236544025538695274534331786695430579415474812815400271815163553726577518938632741844971262146061596418238969441534916264172052754745750405970270981627530000680603877199003182457101730392213948316864286410481321143439308678661013636967463191732327489327735281285357781852561736693871723595137659888884586119099582042142818896282385005088820634177825969202004522532241698631980700005895508583711649114995032174343992132203058620126402336245676326771360681470945507028023701038863962181824370984501541079437379955761629317554297364249231397865729167176907651845684092929981966619466775636779597079027691355821293608597775911617481506695343653477048404711999555283788572737073053672048230211818984914052583429434946527794228830183798071632325363179120386620152837104890769056186984824904179610523029776742952996119922126562466632826121556674609643461691559674022633861455254830318277845283758331989391755362325301218914121919207765722254581863955037693124101776865410907222291238024966535917289529762373640931293806430291747898446731210084657828548260014190233374236852783534609040526488611404533217205548001265928990396876364504108894878228521229767028877712767587959936003048025004063482704442821753713214056500436880351922315597338293374284523633545775417511881309094242624319771994563749510397678612629371564866903010982698311444981904724569211168556411113218008194790921723362676330771311127668463751194670709020465924258853920220264010148853571114160682118926685859530924947755355486811258644619703397605112489604686131575889699055221784059047600154838889033797660615510768762988252928879925173339273530241969787271636585415154430402576732486762512089587076737076750549307136162920423890546476663515895599042915186787012620361411531700502446355336849843837038327743645348710100873697484651422036682427576002442731354772796936504160913326968908940767465287360613364148731956495635233825319800215706216040597071597241309638460745251118116230197857700407349001239766784657647332856306744008325318203374981971144827573023656083442146458907322019270277612145712486084701086448179738207138385693495820903588563316463835023467571230316037022333089648311479360266320170691884747167534870659578461955957277637917668011795103397394327631853621103556529292149405843252146028546929750570279991344421826219056463565961226864331403491148565877897264047033972206139449621405675521412276926237892564351974152190104582339638752287571670188475147047797830996393456524276105398588708730425239730644881406182155461462936000843477778893399152980595886985811641649105477081404866754547688374643475164953219980437130009373097825530530018442326666692344002496769515745400472156976224981843670616107704384549683538493066963560705519159614058883879161669959802988632175767537808418878270356984443413685477346709518492673841276135077812883837096086031428460928387526136598319715448231016669778441290104717896390136341043824154916869308911257285485282839490952337329069675020862269409183824086214584684570899887686253600472193118192443332686130710744591649553928516867050600075664391052409400123540314218081826481026576806233292051809923177378965379513278558609678467694783455444793588373024419182048440635879649673135340776375397627259834380845636559970560491991447903581493404520777891416775940587489404801154760714348540870058505133550589546801473923910328409976246119667873649564991784522098393601134125042655488853678370637005572022585025033566174855954032687677391849225917365534399158878256075876456982506582486199201386583367358615399552911223313850227000032493901266151662186734916764896416611035064213192824911473031499261443678783563640713086012028371435161105144788856042783590367281208567342469985053509733287037156395041334314765750208366755834447155664316929877172416320778394240119340559481417056002274746667651446827302649551892656549560825750863922062579623641536214010493353366706038103036715035640613578814050186231745448743294662364353601443393892822019151874105207335892101713740732473461385553750247552218029992039460158404506207490752341175529720105316625953399275761789091188568250979440853160827452850790234138169784862896260925646872287772384128080796043813005531817205812670631229380653625837116281378568567385988931249160313305956993912392432620003876528319134050317079180622602868359968068645068903112229298815001346593222259889566073384726903391447777097374777371727518066566856136012890337319405164848072113761832068939293240441454370756615684622125952649878740898709844770447127863953308725352143251871691265324375888213419989715000424071907816769351839988251722817017762295289192011257679191136848544993499214843893027452959862453184095194556926038919354146507893530016520325624553533228854737065293889817710744102808661371179723757991815423562176546525597305520038069041166555158749988666881461462776752314904794449161562841613104294888346112900966035899066174617667497798447389023760758521103166891995958702609529866690277912577563397608338888251844485493754561871077947188991397514963676854308370343126066763830595249356686296304416830949223348896969125051689139990666979224483002997469746998561469950549871983280659286282191803177868336328062135232491430164176042640843791482003140656745336248553393350183400855712599871202130192230652516169242872544482138564060719691789290379211460299642685937195080485477390178954774800453265127533002911409897296813945412689507680288203489433815384844850389199491259083691146887640333068883533158334391417704974795995151955210935946770857332879384749119571195695390580949509801491208198479951736508938184083186444155586449768467527070992256670644260432392484929659710260993092202177587524968173903977944935833378143484473828729434636180771274953981175949807033174423093932798128650495462588662608532578393088311683622239529742929911127831608415743528889749359948120501075042685745718030655731800155461181726273164359463546493340756687314416540288266642900591574481981426896668614450088785369107385509309656944954031026640769446072045062794979416092326196831215686371405946527690076357172296407511731417015593850022856976261791828814067501718140960776208380860491887810229628493996196886277642219613787142064323026181469132320400766572263499497460437585630612216048875895875963050642692042494302713224926880700898997227585047235911918237886243063190033517033264784075744451370901166739211618120938050146830983773140426578722887281114904779585428567523118368205091697722135864067935285480643042377044816158572926861129783591196579620959171404506357413828075147909253531562200615479158843499703728121032438677222121261061435307636645433255084091633455123222359615567890510529383556299929732189352331123858693115420604407432567266100606968376770445387759111945573127308772985156857926530618142721934319917723069533398633931874178732066752810683821529597944014827697481330573355217119874763748078058958623950775968228029341577112227296733315059256930829201087236132702555825143722925152291261403572047875703824122375966516884576799796551820551333916983406717271737772935794739401071986604044824790733465276178365370718310413207617561189892786693259906644096681965146285602003527814785035474191105483700306051875469042553903791020137245146287508922332571015258445727264067176837441674732435241809997524461827596916170328494021782244885056062970432907513814235558821970296456759241034337553334697017550040669911427916304981340983583947744035159166803599953991195521494954521953509099055759926110226561194493256747119193768938203048161990635394688175909241628895075372426500888792069490777933471887001991478700221395825039587053476242550911316658074665351767144226333237480252179019920411273181084131090313711716473885265228742329253568117269332781181852898416780735870910402450905769140945764313493287010058519505485730394279495238768281338413391731096889179650244210847463263898956807330272335404483065088685007174704163886653750903611033164566995945575671950293655115906215876493750005117288370065486256705471158365965813200930958893106875197680005614718467190335203072878880090441318036151582648842343801709355740359410774185713618349191680287295281511201973987346479962802907910838017763398963380364312548270730858013566207013677469409361678788157004978297732336976172921816495736343064257481611963825697755273254929205672350444584267813745566435798973404155303493796538170530990833061247408631029698985964308236678869398787983684151076643552998678800081473173918131484393137254288510221361834647664144059239757249001959660664039074441778026947151498250953321948700337160564713793252116698918384339170365881291128156982778273520507134080534574483031362467141337246222026355206538301744566945265760290181135945156885919129973136014712676441421001570740420057227322379590790870764394189767779340504205036398383743868425213269634278561650296900287097543340739322421275110781317065673494375311041652548617966481155380678667521059170096282857928585195563699523374059781544687990056553229311287162022770561396215241174045653208958198906775635711555870569762750559143639579072288553772929144244445167342051897149353943921409038604211259634282594001722846048190835329308243533253326968253365397171817310457076044352365610906767422001721803895349399145722155202526080884238648007422341637904102880434870728522039338313711218462515431068840228119791045898366340601814285094672084236086091753788470239251695521956457780412590906871756906077868533617766790751455633099429676823869636544359062893176948390435847077532654694239703004744619972173954862242814181445521151589238979465499025077692665957510481340986010810400751047160980963445037892849301476361528428302480708692674417827851045876056255481903330903673445962443887079470705563782917460491963486379065883034148253747157464715466708329570941031839528775930800123874752998145345892713254067896746909708085963461680500151023534990613827320492176558587722124786902743840148339064528817789724847286113061276052498960276617458566107513124135218757967913630579749806619009795848759050722389222460415624518937733674739045056611460897419010685934194613400767194853347216076416586601497057849794456828162008006841789170005867713783936540313237670628646634476474769832998909150856514271649919294704156210640322151859278418532810914513142078031089847351547816990135378075136754178297545090298774991478260972706991147392235635341619637321639887474721211036018540225292599571373491204549469838905289773017624684930782957085149045038353643092523191200625351025384011359227305348145026586925413053858727655641819400702747973078331213773391022682932079102727007766028101826538883655427166039204139756215745130194457297758145107915994308186373836529131683720116655884457531442445446203024937504739535095466860502405162088828438117035652406212362406746947489248137700662796106802892524227909380367719019629491720342603337643276499747647754266243558755620807996474878544996270787381666299994212874194999727881709817663275888302306216829012962035097105864699654781340839539863699472787288760677396311787199068138217171570366073515188920303625743680044703488589769440627430495888300995516774874559457704529001693524607371150818949197854764897304910373650572911745870611635881479173236886628208299734318607453555641416073870207763276323810122661536889537361228860351695816267569656938818290602182588662977483709521736059359074510140173442463962128377095644151942505727048615478954841470628733898152810686486229500427753987052965857971940987198721653241244354665065161627427350416739727258601548571704478473925840538217821888397429593312122262068884320955750946621871721476189975010778037048823816303675929445810896659556913378148640944263406830747395777909532973088816938317004424422792881582101000130616867999278982346169023544137142405371940764350701364278940764210091066508392755782809292348445658529880321743837915234616196797105770638034054787295222226980373116563334933746371621216238139378489129961057070494093922386738443256209566965892932144864155228322658697483418806096632292531596598463975791213065935495916445014993197231107028069071483858289197741202422947686969375804224465173529746366457362517715742550205206750292139367321093400002921928940320063284262517132410184401545326794149785467371632441733131167473879070607363832131214370528488708517760796388504038555560346044203429171845686791265301839326772041931687669561243482151985983478714903347715853198030266650434185524010924780176587131275174925855902780164768350169300591651341916282887392877715363075852809184506014967960857040002192839975296678230205781756327578797026197029211974107158869974120275645161016331028141137432343083343618185532076159878117763415275974103017116267275842789681030128233936701464097741291220234260790115314259302739639982815124861227221554506350193043641034881788690557591434418796232465578071971745140428911526676928191470504394248524785212850349260609938090673792477757298402989227174275528125293681485309848521113967153856111126943729042600994299865299953874000185730295370583735781629478355225289297847984119897043178789400073120521109374656486135014843678897643147155615338808312944579272446372715736799705655430180086652529543521480151609639453183586471134037246991462680030044628141524065477021113628338220495431747374623148317788094645600990350961375605730550138255637223308498694708100862957942001725697730380423981635257819341002093329425409074917611529654364028706695649978851639000336299591702022710873173138703104970381002569025189772732873269179441438329470865761916014571159204674168368560546227557980178001705539124638238213969641672600127635780398017227902152148529244093270069757310631396423552659526770925160122473132079017006104529897187005635060663174334846218729693047187213812716453511584366179220234036364291997712850139061055134555002434761684362263715246850015281454198718233027662530763858035517906858636030267818079629730393546143388842263728804162184259657772101974847059856168573981312385263728152242665927937918649033200029859296255612967857160192817809685149631066065676717619192234957204973837169023372276868975014376545995659496307581964083464594445445924230007056635976631651264568448443641639642981769493439545687220915399546736946785982358947571932532514627320650968555558115646499859640957039163233569184779634943923072634123873235617098246655840516940598854089321451861861715819318801297203833395124042055984264864159319835673992649441539215763948694239360460891646504090659843041622196972066187177550213521048899703654223346735527706763617936692543269853815102385707633396560965386287216796455471425030450780704631545297280829815237531440057942106938995890363887869483220226426191498225435811872743056983924863671671980844035677887879955654027805514312157594314608069077860201069151227075633275358691019238833339574248950099943024886917420561212577492416687520334599271615042488182928551791256663775005216885306953902410793164801800340397256092047103436222248700761585959293473290727643512787571157375846067432824386884019087402112281369498336801814333459183340358543392836500887341271184093055450944318142386721174278804549380181429977364338893531955275031525037922623318456707976311245920223951327302270807047878854928830274447206222118433006012587649488362734343555633582882910954391879386998058693892996110719710443022988537625400771357601842682579338020813050212529011606560257262810940792844243045068734773480116551133687839759888783033616619834640338713264317261033537083339359576286886135308160185539967625633136564174433758777237350425226258610296277449388357700485883542509005959364284699547654791643961350388731442011570424843265087554424771984455272926795793063863767541565554831506349276632039221098251833063665629976518132237115430463743413583685655874621082933046398739112288722236799106822448229463286201714213969886834637545102874124528603985171573102945611547952800389109580959991349304693452686915011595891932666721204720554808330351466755909152665145793909354155519696259622389015581645914934868417719386176804150131835566071854440852777062601694883017907244561312183727000554012134287319853223206239452736520339340539580569036226192610287315174052165969587548069279053214425872425041915755295146125345176688625856920335575790748976386482731919810381532726848136431263992531461971507660126541305846870549207632540854970979209342777613125938075409721444515422323193702488400563303177594469399453852800683496309790296746891108003130031640703909208584334750285659764681678223189452467989647715753998483587390822490231393240709634182964976044851944758543144625873684900675239809643072967679088960099140685296001927674388784570578080583660303144812284337151695912130963296048445019343826708218694641168707754587068464910288705439047061630093144307089746410835536963256369464836457358233502744197616856617202314111593076034160045721786670648214284940351101205727215286880592404529165921418552585054859456898375019090545871088110241552562555603295259615259710362868331682318900429134531271103772300130247442408949831725636307670888947506321784780120347728457990560536264529971625769250708271877576037004969640510355483046781802400893435649670765933123987813545164347175262694061063854245568210717069671003155528042239171969258497168358644624387416067862243532821473896489991539072116701721952476490987021204801981027017647600250553520527189981683346068371217251478087793119490601694044559639916773453787958197117081008654878254081652237814199851423662565674469564349958766876349783229964559875936498875825149603300995727986700797660294134215124984164632656834289289674794208717557567764627767425443211819851149941757098476399215560110982714269830730936355457857342568996325393175317005628780136749048428651298193289011846395847299001069844710543880517531513979711637120128181101851946758083232902052993360316728251613342491217050280655052988116339170314507701987938720095538749769566697880780715276623166042637840436151925529200786287563724785876013079871671990593922440450717974979497714591802659407229476416100918607679773656210102758594976018763065376068044110157933149334341874957660337585308613373050525189094358806604413254667581432529415894594858233516996760583781376093768985975552326033159965280366411286532325314134755768232331076683343954902625251500220735230961336921969359011019116348228714086497655674002584333485115851687552063016596758483998485907531145664725770523925195614153354326370135913440285693424614162461123842165800056312456856123979013277903687137513401856424468961328592461668325509672201633894739186638653587916939181377065497835270350130906780986405163190569779310462161974206929850739809005642060531638522074153668479302064223177627822368028786327372089510670461799448667734295722135948469347455093621311163370094663580847342782685918568927987027793000403521756404991607997590056867313178777699993534267226908042086051975455279689655960728046541455858237487614221098795081779610979267015559227141954385693266039912172476465866926328136055654925125839217557471576250829946053816222017847586861971370213079897468459645275536842611589056938201473026593373202600314863402300910332975726888629741382300464752873951133282109143239571916811401089278864525187621528018123546330580432302400839593691143427074319168679758686293318172711610619061213358365078976883436417923840983903487795325748711861253559573468002481271711110559539484797215848556103620408975828363315862071071784378730552583593048768902364737487348420627342100224301360280927144864974319978551769082746799474140107841655267959946911027301480557146430145254191399897227069784113396074193209033489999381685729045888417267747320056572468322397912546252911588303405494245408199044764976847560467801842630858874194521291092685977202966016211771521422395642751569285150017594648746750754559123519014351002516247244535145779162132189703610800077597105321765469333851683709325804610227025698063190060190777615069747158216743725995507512644575524481447596597087641420996242128132944524249308371547520252744869976445048199497584491447352211935456590174909274355124517944268320834209204231369527424012792696790396546843907419470397883408049949299226684877657804238559868323957089663108401351975663492816514397462695182684590889827329200400950824932191282780086924782168984498267181422783415039018940409922991941530418397130431025825507845734954012426372587199556712552979569303951477247638028895957969962386337532009190344467991833923937887980153753567674221323140805638726422804822303498512830715305572383268265487662280038493575168042935232542304233373590316728978496631610205551364050443011149533175309179972262365984444350987767816537828139837889039681178651806146315967105990191435890005518959120614917804936072352947661483659569337553466890478568696660183286826453445585954096092225720740684543705369221996730227201736383693814139614482554954120651823536418873927268385457951721277652809576152648063266928222801383963305420775087254533465168917055300147560535772884806325435756488788972278007942785809169308246496762493031409471465563567680290971985588821847007523707604442635602705666623522193050053802771781551963745400614285046437239496765236723202364678919358905204219421465150114733755898986626313757183710356560392846705163967183406204178864359898711643984441847212711226416519537875959343383063032431793159964111540506307584323770696048249269194276733738808607346441876546815973809778647813020754062990115473813784561345957063402390133614088444383677632502969044439842899728696904453897151528268170021767297300085589421544931648880993742435985303749534325330017004191029879221731432054830937830217696799457184505459726767269899281051362286623881792330715074976751503354033396182550144018627922760682388244917138801396721872631666239136116325197403152269785109862267900460774463941149098373322957974055465262122786822683163526602298217377301140197644666963068824946438486564800175544984530018878175346775272751397503573275328307509913984166641009132382630230799187756409147164600084876116499253915532620798537881516317362392459042165855425495708228947900416046915306813586249971526004553831110604339457503458150203521336567875738564936270564966352345350386596013313901631302380185181711805041029733045334136230879188771514985343436979115509870069649414742178951156871717066269320492081360043508508144173029721930329797573251533805599736952669048358433614116963937040313648436865075123699114823627842516039090812820991140581641053335242328652599741735696043818301067321472205365752635778856968133449223230899274855044591230602580571311841834460133955188519051162740669492240617395060205087269776108429418847207543776779122160818710737719581306075421909547769136589478750862105630346299616589597229443451329409967127705853552937480264395766971259407509174376026908112969773276612760010234056090309689034598404658478259403357428137382009892857753465144558637650667437287971969939121735128582304604263178022669708541122755464333400498576104679808108868552328078374325077068099165120393122168508030722729459587906197036992339309599514687802138010304876977908519981684390511378298520287289527021110602280346814975552015040769043572800261469461302123783407586848778154004895412184492109887096368310519605180084169380861463688813694258367506540281234891870379987022436856150468816549496208423840445568762966988691344733770218038731284226120090018404891230201893517840512422355925548103215775552477068693091942143052874075376465491877767759526475690975833205898708995721436543993835247751065307972855801986913298104174988635794620960380349761968646660255872802353307005532273499143949280603282465926986204676404735706481693252040735781349138715184043790244726117046183068130453693043374382035953127937179030317413360689739380566665081916591180464850595102634738563715664969932422101679530071420627063207227717647184221857583994588932090581581466580533286942335421384501875311819622464224070933270332435206073654233325121454011834772857714399135948167695590487333031806743381094120678608227021520962398601025894425307823921517671605054161609248454889975081751181931337445972230210856760173094436084433332217426654886475093309324013786679770236470304332570280963828988013712456118905252125502036874436850910631885187858411267361921428967974487468518200490660548019600664556805060125212349447562469595364996416788097057392333523632852534809180937108835781706889487208940901341222955927141740562399956072309664437601458926283376621008121850009639432432259507054344128238013657375008507009608855021182299028534869404072561254091980998214182001763184853364273378292141705328906736906760420903290451173858218593964879310608907929242109563288664411027186854509066561575773544635047031658486806936752120641497409531397391540628283463049802825511066936517896245276007288464913796885714606440484098181889031560479080148901921222279940053355731597751791571292874510190456849615083246531025432036580553249706769132666709201741785382978074308724921336447389443591665978521991020339943689567016150449150068312333314468580393623146032359518737030480285615184249790176670088726842070300443050702401571102064107489100090398063599859118255093061729901437619062452611665510220623991147208797173681454986655633822437188857844776922299172850734393314491381051517787326897427656025737008742674676213600617636712154771395601685103592786852897035777627918018816727945812524455233294808443106413224144312946903771611824288082427051306900916685102210351829207529222140636874127646464439982529090742286610416179370573596327353552861015845356566073863531273115940342295843711392015009596177073933207642876007017438496200803149736723986284612643585087908817482457347497649981250702842256375943085204363073347981344505989328950268716988162547486197671990465516629823556137239687771843891313422495943255034160000359434717213410517433049122739619678162387842369543525711449181485304695063278873774469614428402060574335245934196204209542907104261897370218713568938109915169336332057526314546839506993283432483718768281889405101036424810372131863325099964673749121185580623960548586852380845513709986916875732663892969687301416516344989254544997990817223810190989212098559229779002952530129049740781341852538446027857317126997555967817074990511619616300997277536151232819716897491058816351343749391614120252033690653026396794253589082386937230929371660962059887266314311612997913921036309559662876437300888212152948215440692905726339020725406849230044559948447325208856125729102292433653812484206608113052606017860125697213171069019348080175432826124160102092294854074056164911755512883874698564095534791724482795701918084205686084077832543830618355564038431778204166591961236423034685763964735659907257925926642310804120872009708566768717405458492098644198866343854341690477789232170285305763338798229410812051278257440466632247245954040170582669155610227912790235854917442856166991904839262990459804717770517319509066149072989057929175225460856597960848262068934533378061557427310761082355731159925930810372901403460709116980288845622594492572497960079164973029813814950957109474523306650588960325334058684036600333714866361761155334589115586274484216753039830300108827623549013330954353957251099712241967837212919012188236295165015311457692348010518613591041767994982558590480002546947320553231488917586518818492088720392548083586656080827446054158005556899444268970349292215056889162515479885038145067974499935300497861309538321179378285727134365393608974338963121953400190347551899707592958772527430202160181548623459201104208478809298823108845983339442315397111846515451805401925661727478229327515194685304530058346926745503492575764872166974500918091662114009573957720683381328263307965891872920278451072371197753194941554643651312467939650192773948733772658579728511972043671839692983387898357165088145237250893110377968540636228911423530866047120657551715516927023098344066560584785561264814812479797345897271162914937549836604184031696383916554701661389259211748820265992295918225800156155446847018894671018186543976114947935802423822203216197823873454800855095458633581504806057901891665002273460200990376371088985391127062119122658421331152868559834819342188990454588533553493775556340586658146121332622687616256546854564430581222336217370484065504923823343024367687137405662406833304268538673845212551676048106084578201786129606940216132751807363863842905614637498605328709719646980494270257559868562766715027082090090756130167839288938131108206944378942509517754427828705196669521417460475502864161640451332661403040680500773788111256362549321668076771203873869036504224596811574054808303286973909300651245267219137214451231155681092517553333359995544991890199330783008434788414060917807102349502148325030834170528380947031494230663699882880259581325998356061359430798469644246814363582874504202687933616601730182239862788120225310053383749095148947687513235316542305619614426659415746700927048800087434410637889402028830905715226811413612309493647040421764166316301102534783218224607214799097874197786428056505082200056656660148916323677964716598068611132922794767657510142296614787237628262553445095375374121095678623958944637527800627983826873866274740511041582345882503144209136143486948185353929296135677377365356894719007666267176810892076512765875445391403552871594147652443452905163423522649169327060801257685623653445018477998144243380574483645776274133604194922066005469326558785010402568647930800253054040477854614021233824405607022285934325030446716380874452064196603255078992329995184819318760901628426085913652106137164538168507819113809367598347236224627760274759662541263381228945197811628691643920995766030594965241471907314918112069732449694716161429059699218408925935481995180433515459996055363358952893743858873500259983443778866263234725120086708843437752458057867515157170267628272703732718384991270450379509103232004941843192546282941250900501504497213385549650082046268696881276688837156929957671717460979730885049666268424244826190799748560303955186489895544919376682200288439568831394711697538087998805037058908167908978785248311744651996070857616140046375807808020013044787714746750530232666148820440284617013187271077474538205362659410158639993193585613630580899269349178804545232940616969049367785854866242721823533184745286803481771799982064622458689433268128788896435331584817745478869675489264164202177421616829629187768186317076668460989896020142368164133321672494070813742321594924575629267826224615743392790820229077426322888871028757754768858648990267999196079945054200576899100492838021262010546642372804143877875258147937098536566527535905190436749248407317230566580450981980317760854471663145150441703135090752014483446869483277446535024753095554521391793246470797773396579200946304909648989071823922152788116268016094945978695830899655373100879117243831275581168057003756347982167771262696179704088213343129519995574765728924713151993151387454750366300661619416099440727000277225439436445941987620172026959547082135241150268598396514066027457698725265738851242269690622524189464679443223194284285651547282529761516121878216358604591855273703986458895747158698536649265295687220970124778448600986829535342474991557799937597879313717740286250481793016611811789433645800851896131238902176495110999857505309794885419675617932864036173465688256901789312852337557362137591992779908716612693002891791934128046276040547072826445332617047691689970503054937220746937513959646283647089306805572024362546360380456197670105773063865357539930314287457662506174508318679803042539415455138144642883849466477604769408056823509327798678665187286813504732814647251105606097079405104071502761247523276667506700289998178370846942746909890987967699884617024993235910322907794715279597972032137576655512984385026705622385085188675170305208226815428453110853646225125448433240400937001089670556527661542925965269333986555691023043983011457883698963915659237950548270471206747157943625115851527865254869208559992914972105879317543814385612471425597427195308193956261867585303504234212322875147256428905343215025600922372550393747686954501012029664113398278014099543130841667798222901062649232209277562503449254672473142138221448450826884661934023080369505805720228768086680943820599110231903116027504389012509321107108472358927375741538028737957652688174458138159038598346634040102041987919135985262868369160547379931053427633179560618967626597025386803457738646215682166127208313355016816315369792791192178371333658420897832251091795884377837059358994158319515083327514700678918609870508129054559192034900364123209325602239869776079249315585726473117733662173309682953355983124686080704155582426699616384683367835874832941980654428390095630105772737706014545993022662185440246057741358064364202928444112951202064862334751636987218271369645497685668469123043878457618454990477674325787404332785248080947073999654912538727241675943532487707452772315623470811159888174141682502527063934640526143081703799685550563350359783796746292445651830818234339171903716347843839071414389059682355071301374721504242164262633230930670869549824192515780087067171158636393042983850333706046619582306894793510263805072817997266652878320552524356015676530807399239048103641548769474912657759800197295069120023328310596412142834339152107039735428749998926366739915732946175899688283518085885713340753973462656147604765017388223869430551757993673187229947533938972840084634525252743845786926680905699289139121855785455603988632860126672931751551780785868386733346479090736984479765295381692324399735499850360777608146512804256379655460488661693500902029287697284009312519142348445509090502296064273364385074785672648312821354302411538340123139033457207970619342255173790444296138924176407606203921011252235412874822663970903613270960109322627708697170928660424395059282077552328274538580564339275702773367726502396618976108315758169960851056360119256991504729820021295290798136203088329569370751594490430617107389445819005151679563490800988563108567315507834832466614572914625964875332210475453522562877156580267354759975222603562473606532985554604282392026305679067204903219841259822896277699751280365436885090898734257467777489597254791192611590853330794399662002784453112680446628668064755098404320894898430528516159495139438019372524126908554262525857116237018648781921358601056746030187081207604001230043359335036014290774298281803182516183983746727939243272852215777407446160966224658848611513564304751827696081717265033119246408443021744272060067868957001398811251124566290060563906523782462481977679638410887353670502093056161456244264156775796136296128803361866167115572537671637743183022292314369219232381246409909722258580624891544070199708802916148128155805361586750330460695342253223781748312010337584314584968478862144280684222134508607262928662514944989120632644034284258146775670553015295694163453825936028601880805966592126500168623634896591717012604697863642108600451648893361376628571159646407938370013811305589775065253136510043022231497657539330027429163724074744827804025895780905379816116348819937288117771782126183426064166869775601180650389855969718473133047833800238016762277302353558404999236909912562546586536244610979374180719958231848533327402882825339353267938324663448305895173599177215021774951427447157626699233192440686042700918555806979268142185193744830066775353566032598549064525111988010192490221760966965924209317155987391052617444850300425738009439740737192978163664866590546980013962847113502805720932518779734991365290968007186622879382433132365981595346352892102353750276607839970564906464495153406471014643850693146681755946749374078196869025336011048429195709440478324895059184216101307617126444871290360062164809249186315077248434631057662604578690795497759764544237868744084133397796432989245530129838161623488417088768544693039880826613510509836056510628809155240654573105923339102154454681437224124928509063891718950083534486539343234342104081111668449392641125527888653768289544227630304469760697865749360501964345605559193769678161678608764007051937890716399791618562760238098572031209231544842436353766541453986253943401688282067936090915779731754225379918952669766365274489108524252165578519297998894730209654213864442653149841248681286832741884031761863257123258191945111472369672714681785499827179760534479513880599605467486109337861331913247499996445515470887776121568872960008881048637168326622559155031495920756642577066059716402128501110394220846509677258610158320073423325740637328550414010193481202129280970858414534918627170458966949296049368680013844409345996738964451715023741914457432163713566095426162333693269802081583249495727302059374610176577569075370846647410313476064523219329232678050423984268432510701032658778210974573938824912782371307424822364038447017303235693477107121073778838805642265983656765418510556185264752288812483113998932067856048980720919602102776447967192666381716271011744860796149073098419749989629393535414041417174114271053623552406207206803659611425486628096795936537786184705236591876463125004109576760341471285552641971705804863375796913837851393507471741987180590380309918525771951557320432442875880872846723592172339180851942977888617642245815525174074869041193554503829640978253781579126968803056540237474133255780999502227303486154554098616995712518614215914370888437259019137064532497401248768631787429657003101428864363245558815605320579695292707538659967641162653760447717013604294823584646381737719402114737385902502097898515132961888618667933253507916053323043859760165031571016553752573311642147447601276610555336445584272258857063901405224007245110899669666210075603155655973154514730157712555656890286901723373090528739830915010560156536020007364864401693943105105299846335422764130028354121002375964461618272138950232017863137371656547217126348094229826859445195156060501131799368466596537660821837068748756046767361339168070382212129034976232350311408078297907600093438478486306120880660900025416642908578269309290308759393840176684378311587155036543454886506731565211606002813882266279563358079109317294149560294463324618628643264438612465700592064115700602587964918714012394104825556654701134216990178650543671001416898409465849602082750351316518915929798116398759080726313123770000142545857196371954029098288967007176534921565138783666026263129456355993231883959082549608328488915685447148490484611220543716468754934273532511005091190844998508805251789435465705483299055431480806193357299969051608958771068305621463690599703626211491163245554348926778143690204864259473618807991695435282142378735484523457067748967429326393380799170681515658687669076183122913729717839172344478814463881460264854405203181227616947034931413970108468316441856650094727449642093931763096659685039603649552549455327785007354238932309409607302196681833902543588667464533044962580766415998188982229977983472395564234383143125818685999766798928101379075823465515681962726127726298285639036224756833298526748096859066904327387638242700638852481911654877914073494902726389147780229354369805571772149570536883685316414617981271582191251256703783402354495758131833722236567770149206207285516885221980879255170857454718742239143171476959010311888426161475020212460166579868785722846079797107234122486906942042013530188146369028415200814730752927184352919058187297247940271889820139405960247761177757946521507826078806709851688613168395575926164806499651969315630445110522036720926922241803037826877564925470777581557702842250575250811274168238060158931382933593044993614275960690234888584266791725523600562489443387008657829980928157388898886458311222193344102537482344751118121130790175620589172581584045512210582244101723961844483875884305111211901523291135782402769177140630964941096082651064726728480055279408286174137321392806371151134143043079430245681219884500935042497123274364343377197517935211969854345689967714219381656648741997350493573921419957512093650380787115909877981805044926897276463575470840148606065513552619443218796647359428376957091599643887789755138437307372657981144666702208028926867643094013873208556765736999766447660491957477908401561112106125536697888096844074746867111136131853555856459663950336334464364559487108425057688030571041931502380926605355894132748759974037461406205704986729051472492479016973331719589625232695975376638584472748831783850347690505600892052561762807040472918714481467346574153344232230500871197392971528213637006495049636256325417134322542921961966894629417741776668134124464058522423089425178818115462018743603431610301538931944462290762487768398903710976456193408094783752860235136631444978615764161574132980063388661173448009324443929148518359754306266949515683020762646942606482537737073384528342436066345833584017258601686790974916471868912990416616699666034490897275073852062536913068862595841950199849187378139920817457347777279282238613075887159559082274501623093517407510643047828725594195131682139932477254070941681672272298224430596219467830284956587121956520455369080260892258193783165822755360352206367623575906681503639349124782800602207784178707940473057810789626137451089251852113995381237039791642971490189709115177968077313554671990594532637169753193476095001420010088208009715294030509563509167110454145572527774559845023463412798003565255810737539541133640986961213623266394523506992331117186260413568045808648660367092001008042925527855318690045557373100843629647848819033123697071124058470272242521909940162653854763220061014795510523712391829078806306254099282008581675610875467777514696913425340694162563654632310216706882297729065694401010527065756519133458373048848350157792609836367703203388261671580484808210790828391704177151341361806231526455262575762153293464169167462532476814325854333376398712491732094083422029075902455849774798601238053704305414521327944403798060948647990097609010958774378825130055250460618519417184531707189547396585542251937982529630635895191280094306782434798584232208123632628270091226474151127975390685276529982972013950212592103829848011220494279545540144856971618939730686219389910653240667095659208227694074311592854374526654119266086626014123137357965364113945847750219662288957529002064606091852923189909024951158572940221183602041829680309802255438903422325724094064511925472826030346526712944974604185663772930162791263056555403424889904691610759400269113346095959551163033878205643398601759054253856835820277017034870615996794918437780895507932512519875293431148078805214399701705022514730579021139731470241114263849284326090290901775527265457109187011209347775512296379623750094758326779946771295979187604556229684662190438786732626379562224282822592368162612822267662072002554504042816411359127730904681668659662135129602057905703213565436912496128742720915630437777770575282056859022000389826591536879864859121583257747143686614687811678832457089615740334801216087261944353533967570125000803793987125216416426717867268767491862354841853012629315734212448618530789500157045358200948389701105620323551316351749807594945214215054296360383385481016014888138102358895787453849163728223019710232273436969470436890919744746524185753239095043563950849389242381924430140964497626328834563894135925551740475248973278448705202058299010275400972662934562290744504942071896458893818253338183884844331585321159025460753899794693224691556158280454737317353826007036607238697999330991829092504092496812350989186071400553638358840676756101150602419795968516824759189491344613129036905671081306317974814312279426283032835280086935946652903863745956181611839426803741353658917074782448919705265307447381395734943823813369772651041375017255996931608037879893108563602992526299654937412858124180530031908699916098658467905676488944673755998164874543846459581256646806689116501266021492863560018671053458455393021814879796329636321212046744823473100175811047328889053181004745512637930726778831142565331187799747885930123006227299061681142696107380697892478017281735298882815774271480541229286881516880836082400710731028218197219869264911610534137719649164502149263055215738831044240011163013428456240057102331839892014642555763565578339596887339274068926542962434669721813753752585193083464321950504224951531861266053834442146211000561948835924774830780014651037284806971313696361413041219968967796052532721511216904609591486635153598513394112025517198008063857913607908049767147791928427857874962082732499007015247113913773001335674780641335121337936365564024587865122837012767424498164007135281355480818721883901202509486418815024557982798840576818344815228975416437676661168530380988307892173409086307476336095927156685053830345464996760659082329061755974540511749666021668111922471748010016865441339103761810211485471065673754562318075490418867643822923256849382857964614266709456025001208493931410195806648800890183810137784039700239918346898767091246130775041247117506572136330483212844083495576331217421889921585624162663359737911032373454618617412175415040607699959740309468149683372391499517033869693332187440962035320848781138765764690173420410452602592911359582246838759102729226875672492075924299570971715537608417447939571126547529664615299636975040193278617031417448449550032552730853311866196559542773542759987248432310461102444400744030161457961608337012505820102602903653480966177645358882222163069259932503099940287085830654125627204910208255295597071646899040365327379327040876166493298518729101376435938821135773819542892235766180208660581155584920642780410201953462550684382944955754479338601674203018010418503431833273817061101349628340107808789167157991341689932101061543899487978157075190178989584188890606878664663551046792070909450701742655609078876150283058204305638755854438308051848824748789751744149384998481020803174863298368274586094647197109180274942979887027492176053905672008430037481673258517943685628536155990548264956164817185983038536197773481508641687303440932594722230983375672619632043099189782537404309873771962339214991481315641912428132967523396116560997530732373072684102714905429057922591044226365610571893122087865508097133576781601896853891656432782564955631084544910060869130589732209374228854331833894479756351855187652532377194444778778775525321028554084249206278868720119979869217066665071322654088188410558519383725388714475296201945966044019764104210451267679309728182516994386712745060731754235892246391265735064455078711057587111310108020241792226914312652825832660647980121476060198085339689576436519347841100293059365299258616267324759861519206757521609178863320776789975010477982652628759100024213828159419549985100960326428194833458100765959948520662584168380432330549924110623897599424311170473597166181636811254492814399705417203021697769339287453889218078869100825461690901303665454741969009594450989660325721418533227455433481760432178410965194306298141253043160471765664565765498136625021145879389780847514370043196406464969309667117717862330877287806641046114335299988254985836910401140892390854220244573348880752698717086045032811670717079911290403639161028363238304039663476938786626856086577131220049261268880181384060508707359275553726913350994032825655296285761437709531284768445213049456898469867233706334292621521587130709834497084710283974865267026066424073559102474629175127147045661668581935193303748318054672318619456938470723359217569892716844019558130422563630228974130079355887369898121499086482379452110813879714096489667440702798020189839374484148534033370125282038716060227585904954742248315273227845810456038794629762638424567200037228500936176029582423585226489716707653413190134471711100831836083329206213651046499790555143107140411047178841205015125069541201745334462292879896361113368382762401575182937834330387098459608332407196030185495673753897137814587835750627409082534976049474441630515154970808559603198869334378375974515620151486390262397718364761843993697099874562463169290575968537240883275382401702755473946835623535026831538369059591899872954545222446453228186598179187194662104319990439072503655808293263489767699942632050921770462382948122220795551246120992934002185916764236431508110377612890694372241365888527894765922250159581266879683944992527596051415849604472232961530613341232917994245089210852958493308213638756549723491552079532462105943760365080525099187420024149625760716652993295151460365630971602906867040018249078383206010646264089295007580422778900201177864487260503667258372240075262425619453343415093074594435534770898789835426579711524042304177386131787391607222169434169297046446903222682853633798617118538078752370691684287108023175605165546714149576969885950603431550050934138816852612964694240416159792478467793011042571531935349827383118785743195041649484420976576320660988724921341414517425612566870157806534436046011202714775320211727622384312671269839188725566586625616404994879851711915912390172379598140750033745201733486809289738485439577679233643388526671842070836465582990979633640428082851362552934498108190915933642196045823564747709010833399560046636511535789679307675760544602914064617432209205876141945408469326913517103109134884652502796941599774786370852725129636366194995280950982168607802084067110195489002882239241411737528111215994226987910491860306036113016315045517809633687356676519457701191060691858309707290559213320057985325110533332481199546755127650719184197699912276733149282921794882711653422853949393498134670123129772952732471251712129870667699878153092126530517732550478889233439805299603569317357359350136473736230919760576865880726037700191692917767978543802518448326497558257710978781497748543326066964408750522538738143444942109610455922608203487300720833594890654109795219794551067971861961461406700655558009681339352732658739976447956760432543521975247862513638130205398607979326069958506850944340871439981547339117871769588658495573693749499169111859832901501694112400169979590301267799803283118688576369002388320947448948487743613254686437664954717099415073031878308460765023580532994267602150518182675429647822510939769137774678115677819819055006790139845239595130361482921703965339709301528342456519469909058584401912827043802834107278312059433349019018408482444988263532404792732889989911523754933851453424159650617180719606281937859535959292736133999789536054467858422725643696076799831554435599672643740610468076288426672431629055063851448353777244827383048187156786583412654232013302860418904163216978714962286308691563148890491416652666582904184541614802357611517182850798055910312811689708682157649715887243404074664275195979457352089348509249943546274216439056364058379516657626787105009508199531957171579923619571543772595102460309112229961445515875238975034094508958619196317183161328805444875784273882055206691958172442393434591754839909591228805422712423192621601145012887114838127299039870436812996881890836859246431831113617951368052912821133146664741598220593074022682401096250453806546543382446512554124442111771970464199080555432026238627860464591415069527667050668335869294543190835520349982123073391251276711610559558136719961742921936418792555210591365199880299147073359407940988755881970967377295557158676836607081246567745597746187164934591804065371532848945036589811326313613637186374397931976801421205847355111294529453981992211836428600810251429342145055313055107579523692831689372398980646365475750993689528158248616880404707759530403873774462331503408880071985642510026344457370193548762774575995831561208185796694290247658633326492675417823939428403670223314832769342859418546001419225499450119837602972393983105541870554149791184478798042101180928585882530850765539367716170620062396186844155956815849202401863405504008153948992200701564745780145582379333906600136960342090855735642476426715307088744507136615107287612592429521659813501971211738435048462175421778913695648571035682645336929088990087150270697501026506592140876426563260590188091837901774956297971170323208506523903464309777095657712398397244226649856057979842407054271129865568815792029830670118212498818337599663729520090829492363422190826567364589494945171247640358675418680404849764169187111426790996505213298010514313210329454064160827762159891140080567810897750674143202610755500010051943619235193353358311195388396973341020891314895615269572864324230059659222111337872827576305927897610437994347110079327917350722563400178970002063194722971715595572836593627085181348580254649999665301568485985065158931181628020272449028124472543348193691305860647998044799570588659637571664724775452509829741757734637279715451053321497030312554874791420559207051771313233772955981461468756854237182074006299983982261468595511653437382529093645814692352803151225189010510789756376950958376336975684847184058602068857497175467637302754165393604045603866685130507387990807328922444252444608264308335736805429005539643898519540267863297887861900226635132416818407747329063388199993576969293274119451109721717339626819352578564678001525312787497585551012038958077075928681769741159487443210338883044624493249755403559653341879061327191864616012931609512399208978425447615404871453472894810800434220166999437429532268917163212876582360870646958121690321358040121434583608329711566261508143512229709570871240575298922356904534772576752954200025150949117016057065976941631475553931974514910250812991078218995053970113195205867304780301615519856663892385939123304568414887658835895108898750745893784261000006386307048440366951978370077954409888494180378625816859466303439778536451199239678080584954435266444123059078592408482317288693535455244912160049631741459740912895171702788245810264389548490441609929027474304696870020748215487956193936637899457032562234004913196525666473497485197371195749947679262143866738095738099594495882981539388304044729362311649355192400736191902635666216163861618559472836694983524426162180140217177612294965517680890822693712553312960610532136922443558165587295592062695386438860588487580988950253046065541354732352227148476521865003277895913508323315985530198069497679066548244839466896375132272929738240516842116316154895270296819700742037247155783790838375542421049149438068578909667412932885734928023327422083664879227594402263558275551238167080815209668601020274947217204447880407284543231654547976207958058759784663789891590441867284080549906441718410908450147948993906630674766057880734509182326930476284009820307361192584481912861051885174160015067601666915074357118280479703136542643987037942965964674216156388135914168941949320435904049093979917418008141134451171098259017443403655051319248667250831446695003340242312070327893847266602133945168571560918835171716214425909803929518769988089427064257021805803375964709604780640263457222617078240027535847987430006383733103660458191130211039980748065024965097868575984915624605138949810868301571286005351766274851013704436444989627431730367179789455466829693572557171780232240323961643471557759451474670658445499714958374245219819815589929339501151720839552146095302488436439269730090134488427208225824813853197882864909521610031057827932430873153202219005098945470639324912496204428180261202821744693778826202709252167147761725305743505008370523940866377490689857412098920547302629942378518277081393087832157135606196839448519293385109161763476136850153845263777168634144895742838574000642178313133495249705360903561415774818357458203750640081204718226362760510984384810048187353380024414881007922239950384813406184289869488922173931452441426954984840129292888148114934020714733604790253721468732714481980369997393052846757361038777921853852729924042383634836897408683351802024556875432420380552885385770170705702557514418030724656034779307637147791209965594136731224788472665967042203691507794593630178924153099834130477035079359547564507634092628227108733625734535196432111821860553586642628026296514819865961414980777558088652167178827729833198604813356902972477294692769577048005256192063432569738632665341358027868142346702080346331899521360175585465887024898029114811730845509194881914370251757989703015852104293473633361142964782761030034522019032726327904465631231051703801222785669303943844845684089782028105058449189718219347180650180266892823879386542265218705444034976263847220029325637861842394513162471476928103332423941941013855365394844361945845118274025491321012679720497402463499068358861350323967282401203413216608462672523725395935628756207472968871579673906903988640396023855958843004838760616493819651505024308629295606509374276495813866539370534490681374544761944110043617763117772754932104056215464454592058163530685689408702008494574925527262404712789692388792964493039553405942764007975420319276164341817689299957893815682629240337070056063865407714524223228526142287082087901990453718882651064623763374781689984244984480847383945865918782523507801421794616069832872289257124245681710311962904492755407910407825105526277870013920353121596405660747203528337436668568758571998607014961382044784954478051039192138353104027253908241113253547934990207834815711889782930746221832199951623792495492264178037986532243883332867436986894822248349900764258744266515476726533558519540823600035298501840161084500900148496538951254116747783683927601146057051627477233301932185922619090176710596604405558009209702579820110110915968827562729882006834429279600159078590973857256612013074414532650485436868608700280767613884617786398412242309301312613877179300198633168848281800112206900344342127849275811663925432648210706518446532947349672178281227472477681380459649270837068434466486814068878424878612328224085476218844183923454633642247254367445386361200805093892424266049955722186358298942751837533525239145867207721961515790533056387065942869409596894495757108783999380811348219931974535672234941989137310882929654964015597070521000949345309348591354419005546385881000238428865844398800565065059789350667750787153076226223087971550172299425525794196666117463592701854197767491616430660296676159678158846484405419506608241002285081618123576109990608486584480676644540262567756338961391202695096487342899665990711223013683958969577044056815641199670616638344271963285342750128087385240730852280170260917290083635885056844914399697107754377827692750683909071356885927652486791063927649113947327901649462457149290164543017893267144673510037924744506530535032234221188738166341193425282705578765006980812201319983976387160204704124672468542649697313373826936901455384445548406404799545749033946271009393977835849078874952383848285056750945521146795473109258532605461812591638939472005333736105416545011058382478007887824074075068070072326217258696266755028194851583930026451201701979397635162110795830295956996074133286558483388875190829089233603162472311368256696507394508294687344096480717441409416078168864963148483522814690171505064755263139679853548231234078856236452567652348861445549810219362958391357580858426953912352276702963918080715070982112138983426486655271300389755947793670037580113649467214939272494680772525170660058849391540257175802283269820465206951084778662410979256085408384827663769443177460848744654460803244788107961976398934609452621237411628727063114803973546895406151264083464376254906804866319754767653235641889037582015497521049946593608772125011390319187645472394143610536493933824998451804223632813337575074801881612311751225004506954873365415313186789412671713446281406546622201896995531693845963666567181315832773453219166705484076235842212003546328926060681435429881678532517012650767754791176586850675014336079578924137634268208336176506973425311318847401440794557942656723623014509652286949541214116512538215062041673048057120470994707501128475542369298984911001624429449966659847379657581271231819360016485639722734235334772965687084510967457031742691327207756878908535261703304187055854804911544747009743438571440496725510977940671366653312958805197682423875487445318004597271051125016246423214950042976489552041309918457269761581008683953209189172485827241009967022427456994755255170432236714657935569780257822699084005887082881713088044483694569174659348781367284571692686554245643044474757301682051429214643025218278695855940368427196585536226789435561835807669936054701492600474904996471734338397999605836260346868435033076691219019533547574094828163298362643681218560667376155064378498123623535886991099685241881383483506590971913048632567894340650814289355526677962272835532596358969472505201123833842861918494467546973933313896388045856085562504659116350838411935653401619372551869745689408241368476599660122061561788649874654986447058635770901056310257860470652568718016027394818543073972420503431082420984569128388782933885752025811702736841446868400340975702769598945264662315044471653436727847250329924510804456761285390367607106320861188809173509808247249898338769354668319882077566268051968311818211356379890320009340491159360237399685019220744410017511303461759160980563654365406727734322734468541892034419913227267112015194629127057268515809190641202983336691324026080652077641676954908089574557348268396576523626100712103440042375790194496753225615830141927182603002739381356194100963812573809234394911934087883295362426496709259369974060159524546338400644863355775261978594616567839558316350394140845747979598519731141514413120816063495809075937124572833606947508908452656803251149728328780569880661725790499000760028683905379500695321044640588989823523583892466155524429513410027459570481762735304764016258807787578950593583596870603278812234607247141139267731568296594982001942209761814688226431480225836377934639134477802628020243676210648430235451577140180712388287512627080369877927167313948319548353387452832955996019848442604168977157788810142240139723128265056608478161953414984730750603704590901489541196028132520300840716373126369496465477967028042414620343100364138029361777539792734905981971364211567728715263644634461263567107527347865069322989434215100273022366578237029000189466521737193969110955726597604478214064279197640808330184805549336869222930574413988636222372107466966945705508122903195338308666606743186954019271112696149005814760855869694819330899994494295285460226892884843091161456196654547124303048529546454868442576688276575074193183091886237531965337123104422006183371717634000703157238073001992536874038080075592861947831024599909028429844412134580538271905389599004010621844809050697547405838673928404863772653454361795765994302743437352440574926290379025462206112692737143850773251728351872523132794870359561268372253620093968849015636321205451518599177742936942119005025616796667881231481095544456545470448708015887224611222990328873125844802124607768907884880314343424410854717953777575899818972903768821299551988999220777107044283108768434022720315601602567509446600045698929330631518693904216954228893876761507386093459276891876718020039701656593887555169102328997236453676263136860704670352379048712612676006382985036150650304092820153445020007346723011175474149717566493679771704006766610856937368465489051113911780795936672788037835048315722321493957250135768023388709358814950087800231351250681148710792292579432397628300906110358240264304524122678619826566760870279432513081620559906593310916276091128788903383357205703089626733682450057417685224620152239539727083728941466895466296115579788485554942174582787791030114709615348533319753938632785158526116629341353003829900832080819528736957837935303001494470957277415326445606702095241666681521635427829020669022548428971278912189851576494790202350132003393777920952644869617051008167870661057791094742561859268844690722935613171965415441712749227624274594836974424023636711398699588272427291710777544022785862075002416811993274534560874879898203149429282622614490493025916004743085336074392250794633392326167098010625883447229415633890879965939689225190349527226786231534777637651170468143610897609623632029349863072449524229757092812739617393403117956575029809917843058274645917450817592803610373861455909787060320672609830547857814271558019846164974839923226663776797804202314921662981056477374595974459538886012008470177876104935679543445804933641872953859520046450059035694158514360725126186914867481791140581818548090325714752119404927814683671106878993686557528729867418058159287547872343933898971641806419368371437505713434249001516539892517924238689465336719551730579342481193639705305197975369377865167719798872361674393385051019288213517805754809538884884293848657215353870426423922405029558834061273318239710191276767958722293728826067651078208829602027564361658410183240757115176879400604725415039111789724956319606093230980760972953924276636364872560179898761529608844697522778928303593789247361277218807173952403547394846489561808397016870798470881051397215847660237849022515486775663592319358567910966578910265914506654923609020766389802395094799120865628578114396799042825100303452857904789708646447568389690359511672848331290548376751873467959421456884776029736450866901289859648422633755773315443067507984473322680649419864999267082805957634026812446050181557922451883677812144172919304840604753892353957437037416883183257374382515251786335890321319127323807721765293176513258606575529936490626971187554862070799413658990034649603897319865565680329492117036896331652932647977872898693163654375717289941566141941643829984388615206766279546505574277703731307984908282291277439275499367573868161939666088319019594824568254605323838275747295578096708014523254039190663592424170723247561394117238839722785265901104980595831015718810955412868513840757945142532839833985560024219253218048443460116726197975643884394398065319894160891784030887831446584076447039045535424667590996107499387514753716494287861467378805314897211433919355605896469309034274876777934554251195023292105972251231801018614058571735560050210848286168395007790709494467853987470542360023872387015877860226433167815732442650431651229589958054001553362287511768232740875523058627284668513889318231208138126563400479461327120869220164147399331742894746756399757119205608394244189802104360935601614050060364874004467478675283804186163888996931859738631391655474387294245704483008904941214066925645988750385230525190522268056769365709147152023636604047737329933184169088028898064001787345229250669749597787197943265265303028196344620042971794253701198896114174468951350587741619418218319233106766943389747731231484268605488736374013430684073760146030290958311044990625844066904758523478090671992346696755161174638501901751308941333831757502433734333214721909720594999336584726663071941635024973604217358376487558860051080054682458037592968993833607097475889063629203012562734968425640187840786660891156227041779990337460469280612209304521944609279037320204221560336050760818287883036094261095069874640746672382972383282618810938727056821074605804588501301960160974011725679087875094625094240164770005836278398248135233003324336465244964680866257085593142423720484224009991024272426362985464895964630048106180464487607383621523679427388740475797419835571606497759841800395241149052028785088467544519506561335683074846817950022447581701661878676424248971340187704908896811026752280995369547203739859102585601939426878329615594467644891287607600114831520294879263232769563415866775641504228211121232078975175380376215633196916172347914674518476651293718122433511699065272114862355010185265622233332975036680972569446618899848197785751026434345049116155507931271996379227971041546562329723876589243454639053435692506077975574381418879564620783307311577479723170700614841448010226566972722393836934587298879141168190094521461927352192297722712455208091891291598246837201216149507689005182833518150728677279145083449603317812224691817645767789249609884815016572585275380061141190212023699490858545144624043088983054581628425905776393212539466154788920643942326696062139089735903922716367266551595972953283223379767233791190880519384115167044445304156494743430401460224222122325396525044646590829881925039469490951783226602026124872598318128942266517704496630698974414550098892368461407683558050901251993485938369449181879500469102553540485851195278516799324083439160007037935375668704482636422881660496132957449713098363995184417218984674384301645502825188314717799013633534498316859640449118533165289639105228535929901888237037100447415608894375091719916119976597915829208241623203753761236126878609171246862435822183930960637820499871513524801040956426508270535440066508703666791549684424282125391071215580755251435935892704000750833551614055788656885088925475675977877842879817389793429409936961423704316196127359703017996394528036646252294516544740530792710174705258569769444284869822303862168359406661388080940683657929454090449779868850904115536471635049360855923228639254989476176696248793967861358019871671288784753914948724150132562317303901042151013607067159414357602450148104039130935855531127998884371731806787679986518145497913270396503223395623889706978072430232674872848995902494672612599894196788167947971778046528115799282658637934922008682597181125445566557776681441319513970160029178145736959560498531809810297959333482503954693137785501169216259768407710977667204360433855715037540137775904495296430206265049472324122780705356530991187245764465165054569087921372650936835144597288314890359479141304759048237137321952266908496870999954297833903607339460947679079099292560842161426244476733349840566368084128850964120456897650575462395182560263012650010715529413426179621313084027258819413669424174872904421784591395155222937132021068976660864281418486931679289527796307285811847034801961591219180405903020509539260723569232314527625591764952858745430747678575016793933509529088799472506049085086284470208414855216424284027473666495223696930616353477461919176659707620794106862415688719774834322992346908413637700605876981052820859024067631895775937882475255954108315684815370891373745196756207299073032103245341543487164452381453090185118633194147901901099529813552255163426822944468618192533311872967646916744668169978381519682873202320945995077105517655946860707959203439648620217361332486204274048777948651206609064328653094546954917282163536457201111767829790906232448642909061355273376472814767646033947206724180508782703007447075867811190287373491793461541466631260084753087184870569204425995964268731902879423852546321882495055750239348676826906776457217513369795760072019114949614900722126617847587311808046779343022247839192421410506707534728594874791828593844217179151245980548186713230826255271458163977136437142180274608515311806135767782246474385850658955896724778623319286738422310704087680334557810150184086441599429509107257691915533700278236277686061538843143658413062220482943626945211727597245278528935198328057168518863446390855786966149969046694939322458664704942483591930026542437815954587125025252849247039057454126617705575952848908089594879817221872362659677231481807750518672249926097158010505232298038176858652590887067981208843468023915368200105406869761298816779965503321351564090013139297448216705320246258855665886328824930753662433221469855125923230061001701623454382635346242910514302945414552124601417668853637516566715700155008874159413523186687167849583030580799447101391071585174981752721145920794056710205745042799491602164126244423391589016374888615125632719551610931723736031373860693553057692304149672499880068719049791556586729235047133639946872200894584950553952423592303131650232060870031267482971830677548320766437585789250751124798095426521241631861156554323097496354239176906193549385184395228016052504677899760546009769160147965928869703840917853137663774831104609394585782188104960370024530562521497050661437932109032331562531767614866806942510301798017769002377499378959884333871391834287241995798070316733521774057422595046853210013813687747265579930885065620787409814874841836173039159519420898841229712681250293645550289151024807556917644868970537760208658917946524992013822263039264517553356981858397254970189725080485061044036391167317146222437563884797637815712877699963721881775949984539301212998394873876024578292715870523815888572166687017077865962803371189178870807391643473261464478831694768570202698503029236118637553900309560661338665053724368535415906273468413961161371949519638542741454853926066544767427609810857092130718065129780407291406838162903488108537875220114296978695684846996272251026184809694542590210040209028568408990948372522450161451173433890234340180076507886533457304070007460810507395529421198612409686293211610290044223854165786079999103749411195406244383906480593697506944047996176945078163190793412071090583770538408167553062952984367881293581265073321521115552383284183542564542972202627362762004052592166658004967010611771222189279638519464140356215244940424164177155357124297738931837291170394519106824304965310318653964109388485841994575515898436041212522438803761164844818333067927794577377770317196440196527015525866925391209772933020553721265640153553777380939848050679743366008102035920719654606916115816028858485576730360016677130032489992640588826362825902369761308356674431849839200090881872565126902942430905787738225742558504805077168967345149315056384119658605587102058147004851869318669503245288545456020605331648540111928455267831364443050036048537233972544791216511225388323715968293756327669584428049133436838959047402893242208427091637705139240208553153911644771020155182600039529033804949324333054776066226290813845741871870806201515837526488763766853809121552284371982361303468460096715541332285987245773866104755055546973441709017263818884138123000440887080001139977458367383244407642948954450900232284396449748279128649238152535126736123260276978888625244843522644605323028247045419273790437487682335065329184893266673945614189088175304377134439643982649001747483691551541310778889407416680785318168142065068692944411481417321527584420236692466530809948356665618844743389582992195987724365263173356936570664870227148005794821685170024775506442746878208430944753698006522975998228675581562764814190338868274811762065101924541990555314128012588439906509936182227510880289646227179750938106014200978054690747489494969966505159474639251101840620984841055342487947416046882595521493885448468792827016600309824521807314603427786530965114592228928125540627425869991083329748382207055613919958992419326314481916020533502586525252929547186903211347721980074598178225101387758557823030223533849235522378198203992588043009886547323690983434538205299246631787635669427678102443158887679983088879451979586310783986792210828788577829620936000342121778236644140362034730395881729103065650105511404863495666569020853359144534410384151708785753640039796513025902770460492083536731445155918012909819551206447692736202590050735734099484560532047027189624843749344807607044521881114098127316842472897183922826669419139944936420459292557642710335137136343535061240113934725415236402641860786733134628438559611953521077017063105455280891663714844851120071094784147280903172551608639885690079723130398916043697392873362645444288478265827344527977218617212217165950785599779265226640070744004563511799433693140090435356829781029412014821761334787795416081795137802408641881286748121584016417742287106726723600250359081631124457077426007239066010795939011302265499327747862343302532112048738406265959731734874523782711761753150437384920262704344137328845649976118573691939535790584816144892429522783744184121043804244333939722732205545226919225690356065055680278359637437302270430135171323480325539379292929699570386694482115160448444763715539113938518727479324165100645850486564483647899061131832895695133598796348572355578822897324149502566670580933501282141808065273751822804354818898777755446088344233799503582131182440095033288718157153668744728834998150535596665982161755775842632814141264627624614687008962260960903683061913367834868472654277145071730576999997384670360817060964383160735404034450602357732107076020462867838018434121994611260734986759405940817349696784264221061364677492583754842512961999637816975401663236343963478766475085127697686480508188300472392005422131981951932313893199414408153600550933016023392464870351629640600858334207365178153397754093254972664368221594035714576007868434810490845183175739242103369332579358722300200414243977488534516272605121944773609216259212237748014640824551738588150945264950732390407940447291887358225843324104370655208225254013691801892334300206081156975369812432265204436395458093086854774826798595384197155532486094650706793580166926087402891140863405013348111034502903387675549797897673096004996023123953803105080303888433055434969205690358993936977371454903091327442956765965142984986713815764504550408338783605587701174737835595902671735875638620871571611658049905921988556656997047263028972904382934375283009430392722187343041668927619452695850494851645058765150555635775440046581023048392068241356363386401595761118934130406348278962964231648685726051124726625001024506601283073086461657802032191629437653854302109399847859612297723193094185809678310907862658215969075892822754382657384099218405677301742693209355429627212523105129128179821188666705047322657453465688972960597630466036979687765348689357146935927156079907201258861992082344845888089486296864634891456369082665161610527636656498883326769149464521320074850388514302301498235863133800759381553030634093810061914169777589493424365271393518882337643384865615161581421795619307570648270393989269807771619176263656493714667948777351886442062978202689272239116897070537229775425667998557538716018240330781055716015905089435665901086805662673034715973051057347797973372231680990581966271276517375475364887256268024903816273687840271725359069349107559624352929805486444429400874811819821488994045019808468120582469415852440779647235895493149544696426494580406033219785781124656175050378441982486551098444837411469764674750373085726552157413762750180712162292976963975383220576229001374036616740585004371606935703574931101643406006234991890572680489195316192414976862995165981681058228487884603844266970491928959257938311276823055842502628540914194300017547624080756261278627618697079291536023787779588505038937044488476046042082088052699070840468716978989782348496710482245235292461973686184135759290594197465520950101484696703120225284172550761962207820183342606471682951535433341877419387237310515675489360781545996021406150330824046941931532239019883823973879941530017569862363208509136984977612680864629494045960408071699509703477239760960104546950991661561530592916683957933067135348906026793240684688730415122594973055377995398444346658112336180746841199324482828955866330125567399292491785596687550760789003585159013646083599239599451273694801678797984276711286961584188283538998366846719171777328591158126337011681048439597196986452895938105401411322807560521203781341844084715388223061733265115400743803304696718382448057121638659875124867734899219898887193633814142363885887316178777283000578523654471823192979137563952970966463526844415489795521101848709085262687726410305472516811984340500550667166494072611808708816782614238875774968941124808129079757670744800926832335304073022168753925135867926729213073411629748922659773337168940132065140684567413009915802443895936176704969160899529288963177602897504324529784746242712404632722914531755237763781318761525014262556722285230335858793059867501817824075674150536589715048518544897552784813788423209925815980746363989524820635262889407670770916065126586627439594730000353569168708935979880614066151936581003795028395051519073002260391846878275827434297722414525213632930026420655847618831489835775477100594472886838536490875141157022817885471368237033290122056814560354678641714455764540928803645352242940603944191381326189496553197769189474061133909225847353908916513439919747136086333543742230725646977454526739289206329886124270904853823992060296164763849577918433790996007869684928694753653895255338792448987761095361051692542743403709777882111609813652716058310529765895067644639616612964190007524583553252033785925772778943428961989927112466429207657670832747380828443696885672577212810632994919685285979532486211104297438258500018695385729919642427597145547924090518839816613702040231375122421551253809230488992388696438878028098800565587031798370533841307224518649803434378756292924567656040062778750406009285869148517899917774594896190856297052533540763341365443642218363383960400734585165848541394802542457505231922027297351486455670616349227512928239962167194505778639782167718136244895178440135568767237677876916262104480145153606706273507097930342824816775573445400676918189545431897163710739097010009787422723383757644029315437876787304301505338235910175577879200469948879027303370323337826973660040192525230653536465687146092966209563484738704918128596663159210494566676572048164701885747182118761341024058087532504150597342630968756517559455226110370523750211478713660504308043308162041588738389871538301437112584649981481626645889950434130241313816836878171671650833254471051347423598636274941272182527169682999016717517328224377796084797602574581807949224242321822873425869723841685006781465972103432782193843708857596366114712967958447677825926905945878112674536095993264740898834185175784558686712865542561995325684921299404026297672699485128668178268222431826016941144215603165208662394751517947279398732749761910821375617007998791973650248933553783898112171702210568446325517078684330368339167905538383077794893000974472281956373854449086794441663776716743705666431861915984505078168004288023583180554956826833569919856692982018318742793468010472754476950026882835891463083456254128406720123034309070695351420340984610390797265207705221807133754578625091380701884668737780998604644068984710721716863110702556718256226304088398004780032079830327486891116438946438374162056855526984405579242444342810449655739549123065482248878884852150874462315182886901774616730442866494473649699596208323724179209055407614889280784940376845753325985202387318410931790649087105731943966986095807686807787661814701180153302369427294605336008181426729140284638071072368845768423062773997576757851223207898036004292399101262430857271350429439001118707810858433427771834325430157911845701507048975221256756836551286378782248486977235547283302649885490573128339153277653812556042713446114668043356031698822171169300367045083291923562837148911170912816373644640303263831430260678271753781193286856755986516283875757844844767118472909163546589127246578552519985639571265127190688896041100987452117879821015999270309477232266149677148878214984959524052119528412038529010992354713833598646851863107712752642371554623274155478614289420236515796295988126494779296817158338095592050521407046748027296279560196133561182318657678012034993801822742474236169811444046167274559460457168180205743197662602709409898093555283920827706000334154698731838818839811896079909306717461379190690903954766681626648532388988421268701718693524037038134025122379004995339354115853530932236197528387540288569005741639916192178889029621834623648091618071447509300628991970937478861991369568720292193999072211474545197644653762933139937695046459840039512142254608423136244150942515556487591514820751918726831150866881076525743406460472568253819850151279336054624437788326097418012083012323135588224131231622972960561508909223331414419524617614666187017442134686032103183799152499499977271859187499257145217435152062029231596776612105886457281620002282600924775619270996146641802054638092411162132943851680957543000716288125174940151532071609206526298596392916719167936711920403575476808648816706974338608333909394599100915612563216589348292505851815995032969369552829614092839196548534106010989973343240829311262518142073121514935238666129760325378171294368914049683819431905868639865358082186771659178180319396240473331403172249818279120191832882123435030449530141514365561246380883157746766485378455561957846687540589890007127535126734682525331067294860092403945465192978219092118303199156330968538626946625109888675740976207151333177946561690088833332977431417862605124365702134951688046831459839607266089420040098917031572315717839075303760631967762383158771177848057781764064924567846527485512690517699029829858906602418165752261640695019665949802230352684906231033624900458395021319437500999215453753721993793684604058395508146443844371025433964675145991596286397003867639918437029637325973022066977608069075272688212734751107392302903496122190515389808639243714384674245831515565908516181430948915728180753513643786258754350456953922523678972225905718770220010996111044040379170750372985335107449933095473114210905341768530587453742470178153864659300537321731559668256465319463355376911894476782922718511990667699244687521030888099515080091116916720931466920910340799532500791465751600409354577646641234547879277865146357163907987532957608418953519744288844883144363612421880833418625010653812341469828841263312107275235182914617715503865727330735679351655955504905527347960341952022863666582834857247675671457582693757880304282458077434041984037352134205764223419875337138147571589160026735507024582758596236106617402766337018563835869780991929692770750036579214494716594238049840811883185334279224762710782363072554056603396093533118595556274208451981828664280907402872060733718487009671069520100811530661974212182695844913702402166939215759146835151133255005416840776932769533714169221413511723724202309637026573707845412331863511788959765586074842652871668417170820886455166891721337568871282961376363123191374115606751149124255923186793440127295077790027671646320680801621420534654518605486445786905075621934765865188194368635239592900599494157904150335488052631803390747730130220117944343237219158319645995881954044463081620141757068962482554207413652411824356262904170057635094861101141496657736883691636649465935433422028131384419563131202361622784708434847744091685329088816398734294000200075289094924786597028578139284389944465703763866361681461073151451019914383092460669870448877837000000675027055116878724703309708931045262791177738899765992346439664493735626716684985848524814150515050150154307363342233170496943613781637993554378425567707199927806514376221736479485182801104742335818822583449949078951838584492739891166083760663988664434516233637569200435494514848812248091099083833956393895817819006977585527455834231862255547140145599274119175436340783142741198831623134447463367968915528055318225805269045830283431370190194128056465295429766052476785853150771285445133781316827150738164660045645068420085096652186945139067726319118243885538374964349912599716104215922862085794563857481764297389568133228974076006289926436404947067430455822766483573740297292415179184168187612877097989829574069522784938356130223151835110331768464326871391870313978073485930768593205636863035183767316457240491056520535508518841378314571450046766179008326587079759282812513236273153181848015750680192488931059534213196190264077155207862969960910020291778969285380359819386158349233319522967799663356570100267981813248891587535259411351983473480036914053963990515281190552576146014646763404688813536213361934036805231537733254874494678625449162967248265385084594198401846093224632307908294803870476106384185833035948658153328535549879348758408546517378798751015347644502020599830518225224378383659500126335483420577762031734979963667632526895824712028141090141817141264410887086054231754256443108181956878538078044504998171065351698853482615575469096791253596437416950878819149360720004478314091004249957463712269706798055953273970018837101480419035039239876453475200485829705076986542280032026584515358953947956748763833325172137222036464846571447967130610465989307797168472514339361829089817667018892203138276826324996529364149058765902228811579352473318928020603329717658773502210140311410666757152445808549386517202204910039505362420329729441221528374991035069957961468955077329535996151533402375659719531416513644065920881898535569074679779468864964513364756600014841796861608064669725916574204050946567783529127569617344655588551098546970763760770784652019668741321726404972588733640566372537983092425129839185974154863378955977458613516107724774639900819961547295729115492498587153823644222107565402174949222906354651411868702268582230646056185353099499431170181502421362820980979384320551636941344888618973771775930390922310204763013765772753257491830015847638323422225550521773014355672355667157531021142047189674108432640281951752605091806204045413304104549199845325323157558985402370082274420844273448116147903300921124733364083563043477464508326291374160688030979967191844420851208857866300185341690100100270007147926826591234591111768936374374044187164760909195294096168393295142369926540448847892079186179762504888422743695066501416067768010120039515764919054102937918865943469060186762613513749326490901657383199593059183309776678836591542119558800269837090685433802579947900246880299023848751105381704540969335482477374960637648596510680677464491613921327110378521993232736132463965001137027872076907957042362687648502662603232528559930720446340842960384315769139459994688684384529713717987707608542271118693066887404968633863588877283235201251279142756246736938879395827005846468848244557396956880979107440806479311284518850205023489320501380034484417127198631861122052412203948273860352209473954485864021219971869702346956662754285330715171517364635948029204034805057869574773454716691019104035703806744214118213940592475284896212560504432899976213282018294144787786707689988016939520391756989484543280470649775376516250625864094386609299512862294410798354663927687164855021054177128837076050484351305030628456334827542409909833786317368089538248278365238706116107622527447969726192524228344384039296330001131543679783993119818163150747510105139360348227013683159460899369117967440744784319789423031707981515908078952227500339800562850780212633542565931267045988868048892570765515294630809026690372816803580313645317448424012585518237011628729117388777233633815476965487137399258800542583256297328129511336799119256563567019156679371163528848515132433215057939602784835798800688759977078641608299375155430676201076032262149912508150164532027924908624899622820543485580826884727618673506726532792141595122945693867537005242451699625063724333845113677775680100232038699066571880468774322271897012960997540600067616252620385742578576725078148753025648387138516551929892647393783040754954609287984334213338754377740193108292603219289512970958768192207210237435327888603744787403658868213968763049040969208770722820947041152263920778440705423359789438790072229105123787147567183624991001508335191083751831245510341661630962966222872809240440581464474156030669286044765665225447785247112556793144234268761519399164725205541071729429259583603626810551117134647313126171674324128532354840454629137637439042920294136794175732813743824352530540541189282800958962356226601433451967045759905773090168964310423055294838287106088450278164890492497078704287047286404029352782280063378975427059931495155447684753369999386723036300707906418161246621894424988796292949526643241320259198027356933642639367965401412280348317970250503852172304866369673646327993783354822442722225502184363750986976415763828359995975159112303368694682923462985341636592499116079282830050182098020193620399099933899796328621516913305470827318389737602392781814041456512402207003273287509551818171437695512109524126888404375835373604427060674337586381601078741344314870491984978120581047887175822567546769432677275353323086850690342831219911723174456163565725042523875409123895100539788758281662880044330421392259042713825155217034961222618890688387585600262377186579898784465956914253380297818797001111447241541300084751784281000663456882658745334959521938907839013051828567021431175404562721898261616701007458615465363171362189611933088475298251802193904382795093778549847019373025810043264435270024688221610229958291074851041779571865584406511206302174509760818689385974168635637660633233166656545662523194192100878104842669821359218913436029345958395673088962390688968590862932964582906117427995369509459746555552308708062821845118951511144725585790877602023033908351542976540946709482667547091278324442648080966218649069064335417931708153920610896277900811689779994833055010228452127405394268211318161452488869500957054737562445574646506837388828748767461877713033898565174412707487319576260752922539909793632024179779439362243597217045513147463878169885346741160824150261400727280504035767467250954702271021178932262750039564388272342469749940667850092480392794178231235524088994924014054883593026561225305913298724268733036475372917321150129268387019736967337715852020096549613821005493125649080555463007714730618115941568387393525658968400185267330179831880724718870168188505936012758418090939263307650301882699679594247955032181725510841846766723133312788379828979844285895376655425941484750293557043650160939898609103502169260882000306031989285992743997807958918549666588781404592729748537791197761992613030077691060080529074304653673219215661232322740816656836579490927023650147686070482226973666627431665504822457582286721324144672399979858539705908681889097428922232360191389039724846817501905840511917033972909735657583080410807911925302204949168955748167317552293169153813398052632506167378889418087264511774194040521855136421189539570372855827755738809616722140606445707028099318388273097253720248339340051890509731694455828274310724791025550675604836690835998644208699315043530077557996309237871591473702771944053747276423340647243637011122888938831236039966771050112212803603140252724014409747537425944562885443771985061636254663528948715493564399900305817322169248063751480292530317618385615380167795287380611644500556225568520727200868008882640457228687141555003130571164083524887066752394095681694386645891445515629696586385564448088423225896896594921578125018726662443492767446211503290514358518238498571548004771793256544547788497895747868473010997942506549141372875601839953464163194587736242519512609484265283359908052054376966187380546688518320516405116722799811600404205584752698139980553832248761617075181638572074161600953069320977342068401672356419464790823443148664333578944991912281162482696390732868314822606818284551912185227505481832753303613242534759198378447932603223021898641470391227255768047649442195365495017794984244393945832148949039147979221989633739955290481791149664943650347885412949649323974611894955584234250429730925072138862577416090190581190833035871676145431596505380998726692882638686117893250611214628940130703053697952849461626149827613119595527530920873276800106724880026268520933826870804567596745377595299444801055796386826031013169477613605666045299885001212431790527717204014232240855804035150075423110736841136078639753001566713190352804633007388138310948492791313519492416731253107717581107588764343742142152664521438831643632100140469448909006878709394276102963666678328900112858589464746459309734890235878848369778806235124355988316250154673441854197936191476662301327862588065172544392379758723886451769308174237573102489747928490096958426343797249930197467383869968150261231634791740229081976135810790974392437193468709839645577712671896182888140704117133249191210721024076049831892285466812852609288820232137187679840762134628115411093569602646927254160046378006266480156502677381838302009540451421398563596596060956973298386265745203830660840007422825275088362099831586479893634580012019767499294596650619250033291846982223865410845815716248713739346902210547848723393309158182623972792615914535622347956876875559114944402985041338281435181832718458159027976508818547946272641594332837090624710721978914678371432647444321447516326764091634101695375690608846421338914400345963388735113837170858894032640098054620403682704143412431819901685714220875953958892360988963552111825596996615424358569554186330114063528271401744115613417053296372912463944104612026915061863265694390789309631050362811136753992584680230564512870269261511423876477998501528710183898849178789765291046327219620588565142885885984887629721270722083185852707837288563380111255345870410275303732723823245549223794657342453987859853733183901902270649057457465980542406079876646972666663268728522655180183800374181577306844540692138122467561648514050673613095662393109624403931798246164776449371373993630680826612494280198981894240365272173871620080544372599767052976009634763103115236777071973724979340869429202902333185376796446484506458979218103212761245838016912702188307739873949727830742516956023912796010792538229719470256210294342765609162429310309872518319552841945629898060740410656456364086771730450073348394529267233423858873036486053735983680625040654557331831288849689062417746257322798682866808812279166781306585387887014735640865688242295646738679360711565432099420577433182894304860233138480161868157091145073865308443824447508648999737905905679943475887701201397847389518663834040391737255139041623091684690596900791556498412130982311375091980231168414730154151756112175567310313860195145103597357166945436505554592593681458230767940230640690377610634008829318415731216085175051642838574149990829004066063045790729322541529538546281227005231577774723789372898369677460275114879796116790482502694568096831734975471433146986091884336720634853969169341530502981793835813456743709869202138745959909847597572913444056634490930310713290685620608948205278102846610144755882108530440950855238085716857913951402581732308303161470661926780101728864307432668264130814203524348019483042633104242041891663304255689978006577711686042888104569889148961076070542492481316980363954215460472928910546641827831079451242474314445059157135050812493998758457047561290901029905829529650255094475167857444146568859174434861369769134819013280282653451438481292913981508464251998653370191736833485961773403663778774258400950625907409072981747122863904150376080720172053721132889621135727938344023871574806422505900261058788723185361626822582104980108391440661631986015228724676860377319314785947391516931490780355396075700003031710642143043362247878674247537839065854868130606666360881258012994878067610970544092177244323073649815529642721989808214166630507171307729331027589742605829455000619866797155168749323388078564327903800516713761201055695435025951104215075055597753830314871470003006583927109974464741937549421647625700193339049605367170985392406161865321032650706712196015691517432913561317738568376841567442287905538369956749167390235098880986819230125049374171054960470914826747363268367633414116873851899722535477410020343419636758345790884562285312150799766626874648161750114863228661617025821405420527696568656868507721511449600572420735337756464391007675513870681830587552709031600445513569785132306388277202885445355343560318933107286922462721119252718072265685344231250059982087353852790947281259788865476181117546774446894318687992240181528265078503220657609600811021273099074902175227650129602324358806887422275884278671897382123079330567204194292873066616662389943686860807963302045758953638794359419491028907331871423982397985738556158497378315670125041215345142836910066294707895374855031772586181293393100438720065359691104916228890771902307631049416395106731318914713353164416560419746035832989373409536806240450028853392397980989237520922181216069553690853590608212115569260322398165958737126762566499915299707912906649776155324605398522775004851977342502694522645016999592877151848303605138311658707263362924660319222935302559374181638512265053949749413813179502341998150686306262179287490497844034688913335512635808794229673931885415626681231454045964191757754577813819047828475199289996831076586885740090174686072912422551833489224105745970096611977322294150032257198418983672870242876900500662974055279254470388126560181909121449551282102049868482132858656505915218126118071383597171557650237765068643629638236845640442156867509780147936204950534347966391164945817104762621332105250105830510782032066672049446609392529323283042524442109247011133736986307872303968764834042406797284504658172859605379893754127586349612376621828914118532897968521947167246232874036410463558457421584442620480167139325632532901207116567297681412184658845864433462927252711435787059735940532502248245397888902944032255922517443244342680768364023544852245245223301456027962435412608477541701711980070130706414853730694267500618844449026688152272865845740128261669459270338036793382491739138883851390188132355967293002517239259559998208753609469774138089025832074539481288587952029017592947427092749791500513322789300362490978694630778671145357127084798230480440743565150996609562778991795124953918078281275298849115819998261765721434137819313531415154386145658483288139678934191802662227742407695072755945491873850090772688645401340936070456542308349095450655032225512150797553498453814087760565067562493137781317844788563141571506709818544479871547879997749715805009259834517342178893212365101843415318582259158377137510221722195352275515662002250693283076943226960213341694416074913047369455497756814920839659440975905040269841396517317339195751462256420199021530785514987765503315691095469543788743959406975352228099644806805071765974379889293374453954107450632169886838375950281183625495185355089966496765353390960997276731199377258288698482045367458790886367407929370823232132658762244969051790226424392589454463478390775263981100317982439576599377370229550000179812871334285003027333321220269092124503524209459941937093715328402829696747810031919040859521709153625678205750419602193091862625897190444312702743978968614983357183371545533235353229000563642991046269894441496018187512666154511043072910322822182256581280552175762853383980087250802231279105305094219045168882966672019188257109630396514789564578328085358763173543659337068084343044948570443286846036026605563791075179773930961377110531393392324163089025854514023600732781826661648607834245704061408986849344927601874318222715670494604561807992004805638404947501756686088391163417455864566676264825317043401363252311888535192296213486418677293581448049608248187258523558531479032006244539190039186298431075968952922616404530692265610363613714449129729491450384986615791779005245603164594906174011190270230602199215500032108790163027530846404985648257256580052309525662754844856751858326092560969365760421375060808373241987973239926258736596199445078765940998555747631681240612470643388031395486137112562528498858571857417745581622438274768248726820120536666637950124994382499090959476973145315521028545571610703691961028293507651389725172602337000143817833943209406559005125006115939202249087118143167983744132680462493593317463657030894672156558947499162498158742745850350764521400866019732190071081694280353144164972335792607072801342831768679653411810111932760942388965502856253383507946105968845460368154828896102697255114623575852776643550036987431978849943459923009123086416071297959322200691948939846273985444798932249784412140458115854933729357596184924344714046647326597136155074046318152356810545676237225101956458306818489810916666508987195783863224766351219192044688307217040917512806195213049133877534247268834414337036214053403900408242802568869976073527156323559739795156658698928369950148423903039275846991857520180169364268294701857886772176467921991379854406415077268157578351336359621228604816341826365827028183259906550717935537842367075910907776990346769264787356282302399137728990557663112366430206474748369884329541602485670783444888844749600644903786965426868190710442872780283172784388798481156710891953030075108769871546477197337630584928689803565177500913039939703364917107999133176201731800867288922277229202951604609721675648743934107451373655316390801965914702182117597468442470777360216259198217970996806743286273802263407263429876508494714821808256565512855754299562854780278464309282873709370302224801725127421145640717058218300844516413810395577510428033892097852054864041492067699814285249357197195111811682957430699713942827504552151064958217180890311101876213844025156389021010186940971464031556085109942970256224875680258792247501295195894732596715705920200001787334849254236812942042275634126505109254841040151452299395274517913314889977491880197647140122933206767985453666299934226271941744070464218470300417580058392450887941411949278789187928433735027601934696691859450599193400585538003171180829575310399066881224975101390069197449488115117735979676193097111079159302019790173906976946984797983129476124687364881066566951370821705712785025390111079080809848447416996961488351307060773970308204915443264194424363491040989129098200747005917841443751584392064329889966018403368653685144410611400343063498756584809936778993149466292323096921818212596664870451106696909404124932220897019086940891517306939756139243617090138791940003676764536980423680791448713187590477801896760706541113365937448361615487747783132509085507099630318133683919898607226722081553735759778877206317640553799926327285375593500405307488996135188718196346824754594512498093886452539317979824162395013287593316779111194974617813348745945672129956193204804025299889467102302977877791860071539764381186158364818978035115253008857526806966607707921025914105514226714830750076728026324990878737409529485423153812910978106794045097063685614945856931479727052419095450663847782884693636766380444083675273529845711626622048153099670067185949089936423797337447952389574945372539078309500925875157982434270914199760034771005618843958176909156766528241353936635037016262598313253700122089871750655771632385519056273359177720597731063818489547885493555711414828817190305480073547454972373555857926148777964032328348779821988084023849931094338730546450713933847460409326325585581306982532972480185074969858246709849005519696309820072688323085487488579698701100772968294325688984294382314574660333876989279131980839039999862076870807017721060276927634539479861331009856229146157296289230031487759578566560349121845136778828353577868061867219891270169514640838580425422319523041874041750512586431835735597577847527499411829502361804628505996308271716110568118031488411201982028350018059714407332450216800110501700168203575395126686814555932188041328992843632732457572452798007052170274799668776642929404925892873386944614841350243191337311584989430199791901092337111683383197415811681459150998888759936115823990025683409537665134863140968280214748131382673997080329462579919063181235404996015141066664592089610527010891076312860573004527411453411527414438435346472536381438880278745435886106069510644156506616205112411227554523381322453326230445371019097786403955283226176576491717768799039963123309785462462978645927970762180316273475654467221181377228223098209337003251584767101986411087320039044468931922838343743427566113422354047546058484098854515420217797302103940517221653705649810397271017825113115630419947926086721745150413223214738054776324866946628298783836443904332900835416108514828160934574090604197937053722760094928430741267225969535386363421344218235826360878080768095404819757566562692096689227622970360055471201300678816131354031920765604179466240886752315183915566592468435392729667277681546975166436048356002967424245829174562149238362270848611797740994733717688720907739429506321463045145584591753496968366484427079552215561698716501048860166053850373748898666838019308478370977303809538081806881033812937372759623257698641559727082114475591298853949146317262379863047456773534279843006251022046466651950473915710857255463291108723448325060112456946324040212448244685467006281227383104259681293963703855080552467588555305577694217116633912096094458986116509946564969766830836002041161680762602163662643060639179259219101962201776465800823063129920642770129323116677675686916264202588669385683730991590920714325759432218765733670808362659708099349698196780659117367217372129589330767240951660556850409224651671872188697912063584730194716879555320143102296046333189490323368528534324558229160278706601880744500558616565769997737550019525511798903376332859116311813502343607103757456145596797431493377792200114752429085279551330277269038574755576522591158174528954336173324359946700485730038402480915545762540897188625775504679258219527145691853860977128123806343605095319169602984733600746384194154545959063826020502847860175863486153007641225300109674826235859692090058713298798924163639477770120236022323919695665008735848805265691054794350573878939853345206985334090462123234720163355351582732814287000364476451374216044832677150134016303361656379568179050660471494661500289391066297636872198912631239759729029053271326182678194121570595203332094418880412015228751734235283261366734954117481914445571158694097493860955157208949741563965233480991818277661483074361207610484982683580022191407228625574024281676824027925035898759317327894297790195893126191698365619966077632857350423942302454469030880488791111887309234457031751418062567134946318236091952043601476927361407288190394922979649365163149657432685912766571743794476068472285355581604442270109681746500390264244084729407200786249781432906825005897312445540027189914997603437430713968876823533123933694886168128927881350481509900503754986156304361229230483401859277720949414534915621821661264404887509620474046016891098322250072344704595810323303239426155490171615025988674738000867997289082205987977474573632298488908293766847504433970405382790926073521418068159877776229933715770607521220120043550510778396672373497938579040522810444386974228491614611137784260624338620570648846389978360322693035532749239473437700679093563265482194294972307879528831121847468417624944982194346640218414787623697991043670888880504692909080465441457014749080262021260224566823272806902090940942625821808075651598748172770229502144378476750439272991891168769556445706791130133921069682696779841048847265404017228024320240677763398846957263836166029727111974868185894645418521656002214966200102481171195315307840225305715142783639705754201306710332293004539462987588818260289283993131597157195487458185365228672169490157412168471787659144035876859186577292559764928655099576584859566449232675226601907447160504919221812017390274594109416446684858920504428810714092846023946688583328614872863638972525111947170958778487996403000754132838853161908909446283654263363504260066291521568819060054698505391481385493251066342463695543315243264860570526327388613182670486315606140784847434566155005695846162732143253136978825163479136348799345406825598404709877892352459403207390949115770730320856712237416464536717350470466078847746503302317275860798333257819719196945799071132033568717249399165050981136357632263446464814066862263548309538585768138289041535782665089318547770635212524613822606136499572872304692657405239766512209159382828252183030503340777638590813763584652229617782217071937076681607328211781689199365389895048542803218406969753396126763501936850166788576581198812628390654123072784268051114541787045671533565708071145020573595997313675247533950439327781210313306453995045409031097936780175603023439808814607198644827808791696736448435932414739293436297760747911935296856565814431444806578171407271796602849387817113019517716131207299175401399709524682274412477667312992569658704344194061409793672615687705531702482705158654806393988591438948565906993489939245678442599537001480070902855387889205083228615176010138195813461633100909554722442235344077867762660328288310858811021085604236505629393608010558412275325711530259433462013272877804844753892996731987016168427888069386694177260536467769416184592495533937110917178731714946967644973887414905565268090694792469673380561534246781098546911782644363637777493274339904909028519918786868415808841658003643679647887312814074226868526888461608410893538843104907607797956362871719709561819897016425503258725353599641981906086881797223493763064745179239676011354746074290072941868529114776037496015253124081499066758188322307394160117040588610030657806090794375108561817512591622202849603703226588112551268585316434246109919803624510233574006185063788206600748923667449954212338536354171900860752107160906940768831476997877131356876694153979310064288202843648225327207850076577897390300015305702382390334537048609167380689711267803847344213445509832016218100930419971692603204654560472183053869824040305873414143043835453874253855515994729789052531019926195360823851039447505588749246295148327992230960534587652353711506541627829545443229883179169201927876758049642008521656423190099288874011340431461853774668947051103628192491374871629013927751490594248034723231414807651546102465856332009389961818379764246508259045850693961254156059542055881781818061608283892302105710038077736476445661205565563627956022183418850076364818836825058084597669387112012216831694941279232220547696346171563802815344445591161118470718583323836700890484460146047153161639413750825319280933577783611381651416895478873064605102949447926224780847438709852520975911831724094119875001763535358095046874487646469424408606990163397012540824203819640532396352861777468335338862802592959654146410312859441285427923044952146199675756608575386851278966278964034322309890573274279083919465202250144056209928412913330330764187450020206201261855254646219570712045208770465909047365559607899950393178609416693192210538560795595218794525486492835676421892133016200684422066420078558666224186460472064510445405415007164157631266116700458289957991206383489372015181608916268834867444929384775230907529732447405744033462228622338739048609972279005525239704611830458020363716867856456530399381414387271519735129756653583807605925250420848407913753858415042713482889447742419477881810114661852272090469436062230814037297973309628084414494608137129289064992650762892645570385433714347846419217756533998076059348258387783210157365466282266900200442609045892104091615832856547003741456246992853987565936591062032909155656978229465756337238111996493773175337811117636181552938555663199618476520959067679495640826472910000082098234171663654116641874544155871917553811174516450127546653108907199718632200172198294679005984567289337881497674359558203808896804448191842549215857325078264454567480824176726325747464068900655520960790097940870538594766509218345030213717584671378464834043966659464578455867437074606545524003605623678863916631283263401058028858424446858890264810704894658787201892098948704660107192457436573871127013348531761130206463718737955240191752828679298511641550213935342854409791541571034372157744878430322288801620983471891140104483782741440779364241061837644153374435450380618329590604641035849320457681718333633938323994788236435132673034733974570454728762987192420224152498737936355479347125029825709313201784612089580914161500530050182703800061956426384948827527802254107236904880466823227220475077520154920214379606283492901344107677904394664624103760389483503909304240491004402693011269453641924018079019716206974925146520249160331966307976406375994422280986131168175230830816669802354815368042133553583883626988169835884429289340420025847068669416361276949296948606496751035085210405566096693379828496008562296532751433456596670257977354183980163059550914692665957918816162839217047504563378867481090401466073715451464668757555399577491900503721593155911260404186159476064712688195067211033597391936565837668541854531330823799721734182155085245703164383444104896961594462485505242798124480831802351824727418636506256012969726909347349971457169952526153222945174835529628818875571500351548425983827440822558687316231574602614090306976293333993029301743621872654806366775631506715950894914227558717243710141941632905846239520985355631646207181637464394800960264099668894621821589251587609156017803803401452871171387128244585804719916881879820978435216879339204125218018238780921718070824750743213115088326325470605833919613528333081173351677615076747215825238238362453857324848582116977476836241412133026257146553255217266006597892589409974263263170281940082427036410315920220884881999111375334953187043762607782367668246425470632109811984144698550612486712401698255598271886708585210583584025845679703707507853364983175311616455675448203829112923476473684133052699651268579414852180377482522479540555326038308029569042876879803497819680980734898685887853120860742438955137670459954082437311198523520032789447240102175634339986686745513941288338369537707586325095146281801169064955397826330447056486439018607148119357171277394372126324889331480139377937734164246593958070340420279808344070711747990792823612306198460157383374601204156898003243043974019636875054712872321460665838232488226290005644789559671943752559200596758254449443483567711148643587392165121563574250450212505605537551630671798970047490754486291989377792182664205399990348932989953483053882715043590600348700899499100376126158564250608574754098935924269778348392029121145261872188960308228650893822650036115535577027950083182819279126740903388336669102954346081136226423878749421144465277788541715499267224723253178532771794191970397204031156824373182388684036703689116423367415205458557699480852374956119835691285972096572851683256818738374654794965758522099195183290954349434895602017971751436102072493994193774730636232607378875194166346881719012460264684700332887009067656552210682914702873655511580007061379675803866654576235390705437140602823762305010143192079276547762284733941753604948631854051888931067162389442260487449979082781304506088808853907319988970894184551543940434602420995862695988649246405237986103796953047662695375956783922410427278586699349366673709337798164662979816646412183741247247494756297612212430523160255606498043083505863919735500931330929880617533873981154999615759900745302959629245775710319251138124081817751600757878028000380807014660734374663691595141997750111668136056156046672716113434321610184369423583183401503870976745966696263376856783139103559936825616252980133287820370175674788430679948021301281960571343470672467124434548890362900345396966873858926612197463427948039044644772695175969522043071904691963563822471777276615420146793784414875275326376500106540734154788961806892139695602417696874512451189907314072437875987412233891595384038341444938184943054338239993616269802657482063282828407752963670743402080355341489358436374742837599750472203246715896699235968398473974503038456895959427239352266661432425203939247540512493737543010945257411639671559835775530191627387981084598689215284354029004115419200005306194620113958817657220973982692228189623734103782402655022487515620498627752767855789544171113740703108360785974156322408976617700873394124310424960664739434019847295648008292286571292933745352151144240661538981518963563153595636702539179723034955603682327326425374989199633044924788769205326091885428500863013848160822121299367202620821062222083928880766658171108005312341658972617010586475062959476196410131898899834216521291786537898426867103475186708199346950099440149297835415996370876258215808563331209553115046092248040711157571570465727050010769034612092647142197246682191955535788267605948340786862340678191856843190912672744276726985388077335819698015404297603171792713540227993585774261698496576546994889308547548381122750851502691963878101464504997812793838644344721021122786311947688107162631829218391479246166002571412445160614810511483692396553542171580837512594598966974034293269036528201342107133880850660789326962434582952749846042944632834378302913281702012059892799170800948551302033164298653979081520067488583399248304705979665985597893790520804489170454619066565543614952519972453224094401066955552465662004127163874529862387141967235164741576084255673833078324913745740208976826671473354238430181087428782024938645409246183629905433871902235023515372932411616992286983593001300956313100221822894914924473476568535576354739499390426739737779431149376063215592470952308232997516518828203852279925163512569694730573254590524551802828363321946011962761487584868388807922282995625254788266057506709669176703352724042001137176790701382253372065016272498875765261217860485235702034991128496293730871558645806992341696081557925228156528775404043027065857943583009326056186335101639836193254909539637969816988523672059742262044823716753164615811844583859445368364648911610426912564633702606203105382994980507766605524256629284491804610639064570458330598623572734670304638280299386455537700889616080735061868661543632049376087471057387365943771459458951296187764886960080716291682443662630810020568955506851342077806463553249429434996877810520104724694532624505126731537900246636022627539176338465479508164305597013778036116036095164937821177226413105672238051991983884511010602157538309814652891323291624304972027267700915562670926333288753621645047457579272801346942051253589519161270572425281396364759771776417759608983920759024399558245186162909762234529921535775287428204796914063733652010866191678246207605017881793389778895788299066601815120364370318940356174568852657550615182161225751584068342656646507756500741346560064940254354580273622062084414150934055741835858622145418722768307425355605226191507962136079062314194322910056409381688002785775856964298870150863187787900892120362315393252248975737206759194614727487284998391143409487440330036810318577352411866929793965878147280285967814189740274922686282692408138347714118719202318316111279713259035871180083005296757757241170821728780722005126642503665535489563170426404677076255803910425003929127807841634978182109886422505620554066192189140378956112678111401168717861426766243786873207168076359451058837910796234856521126259064375628272595157096427275260262847215847855467230492926536809605907175030041092192796990506338448274294376285225860430667921074409882097031682442376725999616753135879579404213972701246333957122614948701434925048562914430036324364737760117359310909068920446932426649665264510713238293013102998507113505525454554492948188708075202038110593356397829856105170978206129687417501882363755379557958238396774745487984596318491622059412933483159408754096897597437206293087188780249387673098144583490096097384874867323164337114650775611490236413578373726553892067606853018227842767443134016932940255575610086293514059812948196861332151581551345744877236572515502205409146129601745998386265151014472132836964368466322897979571031754762650633783926101519040908699233355930917169742492365499940141893002134854463458394042324079096038145350776897592373072400130268953998050011756288130141793400127842530585849923416049907651705299535572575631579290885671388925951424554177891005795177571353681182896436847625487081750472789492834416643268666327143000068818139960495124388770541353436604443750067801945049833488502554401932681975472117063132353191626474736627698444248817739295708270097974004213933069431240398487133538652734832231911191671949977700871205417751137607832619126450553744601634094649735787098567007098498576992021776648490255293490517942957826507337985803404086513024022698123322117164135083564572504685608415626355937052144469259314455899131401945915260486552388703572674725328363326626043027356406756656689545770927256679238740377675231183964256391972387643660280163966775008895712900364268772696799099885353841856561011428635758944639310416459242758157552335112623127360251670549258428409321053700705853677033300973113753887901061752622368334272113474886745339202604363300408633222690358165452846526919714229362195020435161173428438483714302212063366739964059719879870272065271612803094471326111340688581755420286447894762980374228490420869010795582493845803700708346899652223777818133750315403667429282834084231310599028659768955722735794107914030705548450340650355095449231186874601671643237201290789504458159105154581031851295030333667301653869598133170245091697772488843540941534980739436671268652654271086158054672968654457471399183386681486929616417361510580763774960523312700490648575800364672913229434081906463033439345183238618582310369656906994436903022388103216264023559428238876088951564941427971431268001598660200985374835365787941607429474584388940571150887202094486109084454768312021308014611144052517187774840708352943774719604195997429954550224490202203617909729400528373808510402535912405718399906531944913253044420296595382176275847432961495798898083074538668172882903030502169517613736431400298952364966257929545669400503705749290633722794791705092686141406898384146962483962705810231200024907147111933431065784070390349821068204301076423678677564096263937107689947719730720539326187973906182926664288710194954649004069428997016144834270964890930111717276374649284572781149483404254785611223906454105701573463560898058003279372167606730053672147064591286138858126237476328261971968897475605870291078726394374196032939892905457841349398310814578746825241089443483344238842621410470812139852611381591818523081390788319681547259784357698965118466126752023459102688549677397773697952957897771292273236593872321211997415994989687658178708473410728682863359267132677630215593825000768093170524099043578189374198850433324332828225243655407977182007488642141448645593252030630476010773653340614821085716412122236406411965995285759218975826636305392269596193619167220318042587428889444107795685931169986159212730092609670092184970140749045508196405742292919855480391846434695829708942360253428621407573927214042107986699579680494687929260224958805078157346037173848770956329990719556368301218955025138422558669923516722127413297571723307427158551337164026585092398734240662495733596850684321589106952806292088726095686530593979692425723878126107234067155848230169863231938920402248565904445948830546262633613032697731971231919276060963650775868034482150245720016848476338194403194309593435656626534329239963060692178656545886073940424277765216741771389437714743065167696841555617404542754362728698940044933820125328110423903332565446992821382343989800777417804316664051327041931361934383194326800549759712916616244620070303674488915764549419192786561450873947872300837102356086210326742291204326165672768930900876879114775517177479821765412507680420919424639509714733024445550284210232865218426009106215011773761443661452462177926035976567116247715263721501111052583781750787678281640157764789704180435288982834784584492185349549142318072200484773863125013600285870296409167800914673153883121169925412505189401222035292249113634721735329769302502993462751795405889538970694293483191661057081413915586432717193936903709718802692487492145116039528709569271269198115829598689836083220566524418677903556095489408197049641979324741179223843444520398229777675876908141371807183655864096980686467625220899990212578743662083701736562154928802316308623917379182804898748410303793958171933616232960397073223396786935050622816748395451886618479663640361355586331753494716190384011727542974436919246503592444134283362351846351432588797704184553364479200487250881389639040079607883998153740797157708900598493548499041992867900445689441483851060538242591028616624729385592645677010860752526987567698416973623996449391885778705643127419198690617142471383040072539185789218875015893778983950138694615712900159810265893994458100335267958750490861862592107144968506037972572625783110334641814913253131022012747069847660147935906549964913690972296062934786298513828418378418537993624284080472426628708734829682153656298591886609848445267286514600970031811925802601383372368165438716970905380745571623095571917382749731469989121943709306047655470318236526072419833992758958892552822309012367271798986321927587506986560025570534727257141119142639165946327060676653785018393911536711174754204135502519319740037050693705754382053416099934380978476863150602671432129130953172864455605975484141626731867683690264726103154000268475605957891250406621326823398603447842104868331437578015367367253344673627554106479035265596860997488998546518674468047936086628946246206958209882411570967595248780054418333545075716383742278540830866502122016622502778409237239257331449838591130847815964837742206338257532564965719404247639561239619931070774313661350481938460501762322974814510941944187274969798975835430804812691192929857899394881500647954934835463674440654515770030221076620502550483080504275325036216820328230107215368431051336302217579135154180487328880724815142222748107226548373168901008116365817651319546595268932668643217294334917201486784217680050158129422325107541850820985092767100923785440397986114232184721402528069948933212992383465922743275269378409281471424386530451986840931327690146596450485670239575346509998116420994518477581356843142548145443186304622407839721604027905623199648964121041200516493114175494077220430591549687912372766656542910979904240328624722967793485034401037809577731020261152897488212605824637223607380680699694669412101722208321360309120590445340677877714661736365789348287160686180250483262287967586217286833777146244615116527751004993717023450360221508326963621249848872605265884133787192202095721404866888198184562807016112838818609889199742750662879403280234548591729334579750717009935593896784342581600809103753364642896810706540408085502226873350288203144144861393608049355377338796563558698429986618438051790216594539326855827031527206750236307190831660683489880233544296400336633498789361810822767212011577821452668943521300321388916313179795378656239680537416627649821917995404610749765304933043312199928915961049813574476472088876453321837089766486829462329305599213910229365253142158664139101133430432264003906925406489704510857461713657007622595713633140054558860299807853895474635171102052232210540439026689445931163133676288764664642352816524030774099010171112032771361274438353251073045746379335835054753890671241539123338987399463449870259549615206071662370744903208231918827674394735455160478530656244418145412071623821964654188535396599260753030706564825111799663269082570062797289194816897624844939907370290311170378523546858639877902275615567157900895876935090708556289624451550403013517750031714675082342492267255029171686042441972208626869919615626240992530850745714794716999143440467977139771087108049215957947499963165144946267139062883586118397220091703873181502947550600457206441497440100662404361167336673597301653879318186111210556206576883163130852319277319592546836268946080864044527351257036850911334677052368241404168703414153024491787851976021636348793475877434160308639888509678111777244464799365224631800483069586021221798270866714135999207303177347393708791080969104882816179945413253566188170153361331770525753916329032519097042620848239800920080271603552862759130307006565784329615611135670655957637595472116918418798600003878555775624002484737162718627727394712400818209236132681441692068171053827490407920157541687360553293506013192778250961316018213026517654438702640389052361470995495665463714057602169577127089091791619132126707846267114885126799250091011157133280166130874168308403686791142410807504043470321535033812791595935779889350262426905335568706242582539357941144381386332641940789694265163207996710411774198760493372564054311207599838734333186645688782184090254103696314865440414239849364078050203740091928895341459657405977348021677482569746181501210941771734120110029302109099852086156636809510428084344986562091923995416741552252535706785567568406818338571583470934949267401112811791813004307793194392545671617896277775980635787760267128049300511709042093596540190900252821460199080855340451873025770152450916697730025421728210506003927252989240618563095801532605456571203994812374869927231478155186671658388985633897765402858655088566487145105915772948957284633647515139879202943844255977755300403209065228231089214285801915681796437520543215718101886483431019036742265233760521353367656867306748366668187685202232119859021802864435615016672049847228618319308210417078270585397044393679290102775477860621593991790931854836174786612098550560665215973511504709459380162236083539127372366632005093779043050324204413618339698666982614020670854091538525324872108665863985960843367405996793770418824220890630280902599452138831718935631265527855491429558626739057316174040548927547515958603936579953407497626699240743526947340485009860308263439335640351501157094056730768412911292626994324498723333079827045838151343443844839980564096643593468518127506232610225755474924387757399399423484256868166700434839445214193056075203094380882977950119073917241929016326694882223717398959964586235036209024552318076243208451782428140313684703712464043626427143171067713328996793378292459813634289588402690033954694828466945669245041225852387798181442323529142579157263830644443516998602737761938866878826919621106364504296942985642402697320928380863690587624164218940346964890999111803512162442756804919498515508380574898625467487748550019456295558567756899467828683352778578669496716015858557682334633944882759937220770795983499116066157999421565014871694018245614860651961284270694867225533444746034104941095137954207044433974408885974384250654723424660401692745671591212925048430403229612324650443226562714465960691556469219656985184149474687808405586873546328748886562215326693171598649800873458804426340989152649117074297665519711876045330006515283367689046150058842054927437033212115432561704571105525975371972566608654304378132722202127657785639833806179636982310206253898666146888745300859023917668332967695444278224520477617199996662980895466326559376304150706403797188564007497166671151684654459198193805940976825389274832863674445128253503624582366285629195367893424652609700573712295769563912842934665905499564769111571800771686165527593874017549919300875026749090845532809448273059650090634061214820448735039544924477145564831805563916126001388111732037457547852928240773565142253657799322602748576648587056953427950350777652080903817106170591961101584800271167644171189266165184223240056084358827189422536565763641693499020360671426804588961259100271682013741275878091041534683728674919753496560405881272959808075347385321581843180306116192460358618854383434798347878887468147155508454380094184640580474821359626149462145999560535478675279772473152215554171482254613036465096740144069817150156809199979653408013284874957946070767670818991364787400247701134978754715891928567999018932517185924299692758381608948045717070237227780372732281214378749048283442502421860594639456222229074068062002647221463609807502504104804384399338951635731214635322346786382774116950205848282770764428561005145682689543112715455377223094280246620557798900082456924391495211626369640629507948546306499902030994882903326604182996199147455519015284350609089682426530394162684680916787928747012312895249939873729958715805292969847455250242250721700240543234976577598155369833938515232209891232948436777243617483031358143523887271538862011977245199636161447804160755298118464854309837259778195252548402744427301773387108245821805932351666081341590641471261587002583910634534893538842041112976212783605831185169585967202737527906306670590740381833828040333475062525559355421724353947498115652072482087312632307636765631936849646295361679009910920047242746761594500532346398317020182512815861552616500645450699053426825655070960817943863034591470750230752842732372387974949992608072410517954916271648130911026547364446783755583808568213237789417830228360645513588478766029065515573886016559528421425735033068211773471065332415280743353923345831214598289863902508871905490422015009762226330795564481098125760078438317254620756970179604262175935107390263490902090131102829466942984069765915080637122727414624917659094894096986951084907251822651799275124725222081461321422624160806881483587027607144281188770381101946227115579955186941913719526215836203909144222474314268350957489989554653652011289039550466829704169218649464927430080645506676064593585213011308493197553538796880436131930695369011881380512516314928469584901269169498493647181561834698201974345974641787978359830216277958444512963013511042612597196394145712366931138780853061358339169694145163502369023667067739091292340511201852390312354164531539618470913941607631246246286930734551892365847258493081127826222727449608789604457968468295820280191519242579937176618749677212811038386382690272240122577144466886129537569424816704284261534230096344725824462236165277157566512594979869787615001949587126472497398636081522207108295457324594871760449363493487505018418437166759281168937831317854495153366364707343702902540282906239008626959497558723907345006831718659869893818811878103482739918630617333236167510463361872293188754382929358254311425123227136608941957391173261781381702349283287182136053708098170970810689572301673737530219560613176609000179954850153425516284403304892216283888153034266275929586885728747397013754124133691388566188539958790941658565499701428996436350408200219291725495935273269031959779758727754575336413429397835188372557935554367117744918936478545042431048741432745915326084155637143465500729749601509650538395093416938092893939138107090830298483831693585437375879959449038544601252588919603790105570434496138764409361646552709838853713726839083377983184387692022704257678664310594994734475674925262769114847009548964707261536150188735902688582719428060129842067880127922486058954147476356283670667192612447625805511820065729990897877731927247969319377493306562138490751460221673782117110003613127570250064690527978612417172931144985329811914152843138962892125299840835564344525482669055166407097894253185373497350135611421953156812161240860299776736789816319348721507741730389857241332227558410586485640519774627613490297530214431187316551393495326186040257266048569382171809578051982135848995389285650731061815382648588723243665231350555510012386230098722907399508834821075351369646953447658968843075188022639657597351394800330872681122978131673539918189320031742316743764147413942233005451487985590561535707479742893046514086244348430586316058352550655114497249467661403820936572945664259983449295317308548719312850147620991512432318666056526192016072591822020936730829448717070518614282226504889342242666124649635015723553694740120781720570389681495622030817160257145631947962607441197235390943362989869460291140828682844511068255579112664715250949782077787386339989472394976753909028242512917378652905407260600341273908090643537502966013462982936491284134540912436781536073408894050004181343725868228002481196226884636665009156778475502385816469912626817063670287484991615590394919346209207868326684097732233950342111650446371204940649000341449541206976843229788538628788386205177452375764010011174763150899597189890707250308585723483045478199389968405905599827387907391653740313957897296245893838151061522258222044676417942468896164711690778425497813706675844894028199900407686388087180065351042571416266627041447848428746699403757600724801716251297207236873535787842814349425396278737749769506772830640790436875465804087442925819720576825488052597018710239191381113322785426877386848961936866984512974973916702129125460751723250689078216583486603252375699563739360921200103040957671555959499957403764305946308178664871365744513239554278288038011566784888799834645000823877354409806531853635234916401536283639691329961011262463496840778707391536449497222149030156112430430202346939892605354803393719526625969389743200347879283526124023975294775493821404197449758929975457938400165153112552541726245735370332742716968291335658997704836119803988362395614715046416854370468458253366843693483206123799518433397304173628210146380825674701543242817437154642777353600708761998564076286270996375407914438576746942104734923810916851064226157438608656014407391736278032562110014606624601332288987069919283579936649243185566498965449111271395416136846516421883868394189009762747971608446185706183124857111004718527803890858241506422695023008178364889603351477916398502749387587830242570873089588198934035142486175062793034169708429655217794823514866947217485975310225363994935525754979662951227464784603149018989942818579856519230200304617392598666912492793435339452835072940459039191395973495532996380067152708409867286194733856964064974005540709033386675890028128959686625805802472073558409013696401092961682973382064842016848978378475405439253798810582092307368136615915373761303511097215164892120689959951270202596255464073568940342912620716149677297173374232948646397921519073413417305664870302449315410737089149540572222337398971184679427577484699886540940732111896346500692726254193604517915338423205862813398670693134830639234664488850640888359623931645031798571269520769727751324312415746503021425807940445441038901700912501837975316499095032384083220912832649282901373770872155977255930242403488865633916189757462594172531080596023795905077472753025395596023062387892893321372371828329462544611126113178910041765253114846227121151597948070865948067968454930301803995802576513574784313977733934340136791522543388303110056918146836658626730025861557159395594079993566710729702533049969427311595067651575938894266273370174071841814838947958991433612008893473723837177451493612639839347483417451279810167370174487260109295058688331295641310274643740312162726302499637166680915862436676648087376643630627962474941181242033588095895387025784295373961438161816219204781726791280462208615061664576871343726331461053204350375642653392656134230797538256941792127273385508974675093056701768398567661617931511860656722300736559435888586292882298251732210604566895910704714932766776179646883377376020916248435169962888123908512935893276726433036791071256507584666437119694740092945988732318736525170161737761326445836787320116128695028158315626151973668968461536706680482758146599395517767273190100105828426839853409665008482439419580655081710785572560249207221328635079172885100396681489068607403452897889465371931701264696002237901559512161900209488917945338822038142068711884804171211415384262401244479244526344700654386796452559137344687930686006138532677049959147213804376027638878785081819055276110205859615765546013124299282508105403812047617464866046137312365798659183801183760014916368102013619047141077773251585219008545670965324078089045335537147160871296766079109609087386927454097344765625747867575688357646324646324643591303921322228068904056334105252279831026078185411690865951259511904878855741243572259175828064988629238587032203053547475111133232905739292319947119042812863145667867798302904216009939210342729138798334688268875559348464376311134206384698737802247666749421130432284290326103652731819166469085144619528608497152408029065721025144628211926184453196092885254376816459435558904443716659590923988496677294001481144522875225315957989253419238958400137660203336304538789944649832530752483295427837388244058557828696793818058604754510237288445471719138775750624207508030375903116084261346640994166740420285964834452966847855982324206326619996859917581441245754867218502812250186542403334319748870355771739245106294111568767310558692537228941321026989632012465048964686400977279310748355826425175933733577092700833804665514801899097697459266753396477982010457564198697723735226135178219367577769171334861057996917953725988437376435009990313399385845591192482835263402171207622123204351962652952976085554790203117455522931485078505336672123339966295957395402468710279648602314345982387648800133760417505098969497968467462427557888965334463841547764629719232455217870514402616012304422030226114526361810836144807679369532282482811264942139570172253486651208732821254227711508403867236522712546705350879096083509798561723394240938415103277523881195454958748032284168570026219987240899290213448950956377029900565081218191181510867705463899306484136241214266589687160181796185939028386032665995548872310348096978937345974058802589484596461271928279517305229376583090336500386960021607307039908212743338438913784783128296741582168026614187931316279989675114139328841047540736540254152658847374025446871339839245569495306116531466219951114446120928121992142055091522438287679988963984195234510450815492566932525030021813934799066353805670032021508115326187660903674924602911639808271101410595211533702068521380329941826796203907426278927728703717798758881711349846015961633013006643742698748632038297232895130257510889680822784178437118664197167918477210607340292969257878779867688724431641648104028459412803752149200851510632919419700702192129644102446427742684656735966177311801904310156436051434231250820816905360949318453096789567726982124145934631394768507710038716544894143752808271069417355465936970817848871832018829692223855325445714219725028026623996991506393271222068749779937644819180699488121520228639616480942518718533513473232095742157080100408214195395878167972090864857288352885003837335203904674320114669811953030150252739640822560420296154044096145381853655999059909004257406985840199161994204708997126169875908813636835827481112580965801504337296096972897781755845511192006000874648904445054899591071852138758362868680091505815729607705583973658524425391668113735434346924749891375339140112167181060105831135487688293294064316035465678985584865915159407475383505372440865453174985068807637139200946770683417292244682738540033477384118231738949553145750309241001206128613540403515432269920228792990090545914816744501141849790077884817598546199233007570817712592137300462310770136017874403235271025521637717607595595217276219057881380506418067728372006742805542914366842486135737010283127786727160040912247596358995427831496360445377781643266503148578994539865609645449171447363815990882148062070148347939327547799746703771497298621831204209703233650496998601630718227883428679258990782583282569179983714592993696622546576376950754783734796603611604783754753268634992356092621399248722067393289069030368564811010535387301205088796241983815351066810827612232480402161188342790948252533936525098222891012326170849867089487054947619645036445359840144114266513806084810159160721497892300531909438832437074778508447187090451681477051638525767284337856761056631225751875245239344621237749104421331781738370741673061079572283474537958239000661203258411902516836284639749565442684681396312125033769912748189027915869075239195716570003721254413409533672186702369278504377487363774540406229188290309227212767205693843254110697944217721104752205735366995669457246588908579009385381646932920432799576834427913428922966035020080475458589159830403284555671373838227098516774831631704441973460771398905686599821953515204976090215663796330095046266496928061411103466160154333317220431709016434839269823203549813600072310874139504037008211761590767578451357605212544080009056952764425226098339613574627527999828096479132372955323690381562392351045187911507240559935625341895718351958373034015001412112193549180145663721972290105325562285477649176762828148744392530275072741964920523999434547508111237223493777190829900758640814727652499687810591609218623847975500413076294394826238080647392012976296043085999863223544812310760749637222003780883529365896279704396172362633491536189933490450852519516181941867534620914240279278176041634144476098250078044822233068417404501682656053418372069299125937017985618080050480687523990425002011364656194011017056505779272535458306206718592785422567879754142823708438384181481731562073770201096312850214543078269339087268083850448137407092473399424575975064144726707356052596652699986337466116557891873030258098123198999239814656141049899494843584239285642642162174259041223953979008114073555648205556473864341085404994559794535550523900607868405660558454842036163801546831987400908670975829891559240195564343548086785213138016283074178104955926499289851346630011327292696675542331720060476039621626199260529144262607394558956451785315005852587651493522932348213935761626990614078721927892635887907270366195164177676159615502599748449258298909859055835853322048785662186110092339273837514988078180691898176381132835944230812821831682315567753350774138480821996175863600983857654673022205147921619827759079795873102513700388660234003993844656570733591707632472079627739702820776576258501867682493851743670311700820708550898820716984015142099776063861812190229289062403118664025734964546766311395344859324799746118865214500729729758201120209695522455082907754237347414957536487188410007076879865512095401647654150697007345336836907314130184245649056694667187386629674936139381313186869212492016806377098212918500465257358656269458049993128466230892834661861648981440907399070546437386436906394596025341628005503781076944665495465147761174013257935551587135196922527065465381641768288565446992728406898643861863919617227353203635405692171024325719114895472485013234612669449328181315227308381980672789325254843347480552690638390760399927177259985446292201849736190588454287404924496691325322843405919381919274323562220208939128317956277786534918044247542966151090937013422689229016767670885818642076310272019845396755333759186815913669885783763226339595288652653753121908198755002454623413971049219158150536784124504036403461044176444589691089272654323324727760448240325616922003913144880784400397405415859483809706468791660738804066220333551114953039759225102981558505512774122052823301266114346370846158137993124463334137939785681194862331546706381343700954828729970748467139595697304011116108254918287874653948833067436054166414749667524977825520527966684826380313081824057444045890002132195085573080569533405495644433994975631641393131526626766351967267688361989412267334128167892239987777267248375659347318735622189813150858027086350276009402787523694781648545450592474672962447372346991024913244547610407631732696464890752825576601439618579605655251467587966781815685270393145316606435829811052917538702179857863227670327299318161220372680366783708344314809208244071082352119540884754105075930421233114870788468646722606040500636872169703423899479374340843224144342546798033613791043836839768692423946556870285394501948692897975209175319703689211072255933420304934262232979505585993228399290982870087012342799547303070340640330729591595229406046153508315145938072383755014933904256611144700796064562466643682232733066574707681664796004742481982451396442473624763874007189767393799350142686301205777430256175254610796545424072332454471955561389365307149000835902524811494439563697047612941222135813899556577792629531682829520522401325319289096301435272963096235516271481260172032280534240559806958059180005087229997896468755878336352415541683574697107403011891802241446652365806888812727109493590443737980556933686307099693012035414191840680009537484338440998545322954293884488688205089906645088307869208679102365632478109942365712216629232009615890475817818694780341530512369776409345023395971730399189574191702879179155267843928097334584261862748148742197817363066591645222784662826438580064368658045567026940948147141858897471588624939173145460178812945651362207214270754077831095972446078033651569715048154560668715944477748971893007971512866553575890777438563053442050888450520472759838994645734512413130495978953268559826028358341628279068204044720538688691907243611387105909660116330133750867208912740568038042918715915139181538477269064168728344067230002893397706349220571142182409379395163116309484178011136440310454752340343370081468738204731242952747028858702489197238461444024346194182636638698271733158313537583368301528064323453981507469494818646248188709049504768132591683778597989287340721021465239015555540834999221679535548438957875800263749674869034246373493318191468676941194998021648966600132641650062341832547423171665509320541399130069246705843491742659913562981675314970603016409628782527741034652770092207078919359076752854549162637589802085517631605721752751321822737731040096684926210727621541413516948755967811884723086174980248888372435689451415685090246969049803591032699019550313861732188557865284421803910204040935504521410880325950694943270726741726060679903490375916665186275491961003067832623974209716270540845060307268124795357991313685227695720136120030406733602977813141915869943186327193455395554755916634801398138148384456217210090073894738941199262579408317459920319250490743007015138098562345648068210100153659416195211625899593726574901465472101964514235704350284356012921637304862281043154970672693897041268802172882114693865675709562651518571487835722814495948042032920858352267301664849243084226732434004478763099224055381286694868677159379259621686679016581906821084879511645548964366034942542149665744315807597055044029811002201143418309062488342329674113685736738901451949728317896583917895796240404159804702161304774451835906848639549624848739000529951787786664248160054953167903922487517585950852830813151197273165877686121888641345851783575059822089263612506662413704161376284400722836045928252983800056799538807672899451554045995289374459854419380263376470894336701445330056492667333840921074088226485812595166041685991384417410867683859394289782115858513313637470918638174711391876074848202106717441183841805920214136056891740765873440967007121186947824993804122348668548271577867055157770423872881699075856203763235901149869621617003347386522707984491799034675302182219358499070479667546912252396056046222137987115737454972439744820519983387244744592063271591904522174263420584939908175884236319409667571335875942892950792300465217715204726197396752056312625726963868147391984763675783639865606186197559673993584266747588534675411620717069717339814504348134318216674732773174754573983182170223066284328392823851717868541268307456463529369985442404245919823164860204036778394324017957843567743137293152805063933603974321944895214448923139087496646512088472620957815652098209948224638786226662598993498529365385419592970494377051503731205498595853328278260967227031537405405448207474304408534603065787830018946418027223392906782100963828649496395753125363515593619129185852161597849641017876980467189187252265557696635976057642709822156549789991182508884135935319113386755796240847290936986985987614196616776828484077998896071457312961645829358504446766399070173333479844628791344561783607439220230744661182118597581972904464545241127442543286942346124901672126510749012205630283285237014667760964994773660593474195983376747464147015990940274685280535104750395641536383823083053693550987738404992118860824538301150585668008951357781441602769838598654357961271162942947955900962719537263203534656148770353225176390826961757029315445566559280818381393260765618282738877397225408729395982491657731239194834965279354160073748901047557478224308552778585186842038219927804872438898020785920176546351446929584093201158824137158203738120155350451072265808342035613076916507862744842689998163332473850047288914603206445382908042480314477366875063003038665045474569621835035204682356453312820110058249973182514314077384808049456490833160298793532589766053601925465465329270533303661949207270034197152943183435905891569736774989231862579819118035957275745993666559593915205967531340081860902178513509815734249424956793101184254164079601287410777677466174183058602166276266179323104049352682122576764315863695042332095682232388425827215658527191973471311054232349809691049810048679253791839240687605583176357530337886413812684416314495767906131316170879314302158280170649666460752248838017735973063554779879514134044595847058138541721341765681844636070728199540131036599904131372871967432135814107695217637767174767224753686776096030519575951292345128113748942469214808512623333723929954197568295693198121135466385485882198260992853868935719105097162735217445241811872482466022008397472434558799233971609789193733892531456227998561359332481904214658720519117134250815413322988287642602106322556399727130265565322847588878127769394606965499609702972072455020689575893161466362281432804438414976810364661485827715508112744603469592396484965324681697009813219269273026855622317765995652381919613480375615028570352708863299587984755102018991987813004938180015312702019797432950814307041259759726904419503548044783634950551576026766274015109008621781415327311861361118292263939504986783867641386031929598244960116519142368983219565756726507942185598865371564918388868884109928451399790256307575931755310230853274541952077568477516248144479986228221821990130574442449110136398863673015150904400783699403379274400390173016605626936483762532604058058096759358067501970549935674023824034570858233135599391993397004091436776483074747383958631807415396505779430184205023493337750399431773536444036040161162857210326864022031673555345322047271613740770691941683597678427343054432302146591441631414851843457014161777228875613242351095455612250279506450485173819264765647170440971794343347346331985504287892624666077215311464740667442911541251770043740195763679077480799130936951286606260094569829648445572537644636837802689873328818682073413624627285530083836723323371901789883773206819208643313431016617776312224737343231213092128235771011467444030499221782489969206657702787147321354233804801106765017667307099008885415078997059921062952843466022128460162725707132740727570006334969057610919037449228266591176662712205690203708037272996982124034903068319045203535964037137150333494286789275705496919789520113686808983292978534866255983778744799402006755302918572207354623005359042556971114070244506045219824552573976336895239635678920342838504380768963126518620105770391510104349532790518951957104109318655368873343075416670220983443601767416996658615287417135293955384852741237063584405625254603154953013569974141189302466560776553273918481252427254047680077009912905005748261445050110363019662151469947878244805255658091862939616537545201051268710661314819542573472629387029413231804621634521941501111875333059005295867262637000087465109760116316055965334986683471353364695392504078164358071351581617040681893450624248910560458748927996996679456888947528000061486792533317185762982631177537955636311566721871688068821002397309339881556284856205246632248356386545319146659191660082478865663193396892719893568104231589269323150895378334054079930400051871587961372297678410915935077859700781500354544503774877439355075851414944467089211835235463128801674089358591053642918373134276576249749598861182173909243597449957142973334175807850484620233014431277450707841355503177732841833641806087074589340732678620296347047297542703762100377394468219235040355595133423687011777914838521106485496206074637318835227870249274363821849532389220063235009446931401495743038878451216929387811877820318705183996723404004233952974742392211876265080718885618800392156702162258189946120476922574058278614779842880546535213283331807334065183994125916208371987190231549966178949006415490252447969252525767570051097820385176386527923193751505591988974165359835891740155544498703279064053286811994698740316753359558594440191869723007719153227221931591906979862367771489953053165328124034483753506990308451588243936287310557890170600050948609782016908152510381600852553783859742415830615475928306597206519435092222153972522523706254055605397365766330962221746614789113603915737216429598671245238606688889243338753804868016883221025348159572501919887606411009951296045515680830762570321277245448292277729572895235040342543514146668075325162392375710481582811806058921600990782569393001836300733927244524277177195970707018822725343470462800647297533659449446900745651342212272410813654137936472918565316063338902532603158290610337497435926073772571002394638678165648692810063539813581001977858517145742615978891931010314077141699360494991433890646672462984249642389512571356631833338523312405193820694871692613603811537395054092808199297834556819656556057005962014534356357511279823302658119990511272470796535956578723597755624210384059237861550131195132653417505391574746106664590056785197350253230308540340156173679813592060659011716674881093357917420254347836596889241909282647362180186356566022966617094647174142705881081350829858561031333266939763112780036664767578914034654027750045709238661359673271518884331824374145536549066014326251237431032324931702818607660758038812230818425278699585319002383161931779992920605540906806735339376551612405375704574489244487128643580653293918643347900836444220761252626635728453285601194839510430323175087558778423294815969867571535869789331511578848183986605890308992540176926532084253039582678396732576568551685432223087656813664885846182479493845527696482403527217716929121090152678539373705250155791445623953873516661352373988208814514298294386353319842106479302218207412410023829336388262313444740290098095386711403412145844188979286567812283890384871793374010084373500078444198506599483992820556401597488161741939963288849008496709732005710553803161198569571151278426673930726092275491998414424744268308461843151293287608867745626861487361006967739735938951732985737482622469240531468484128192862102209925199068865018824498893448902428934454756169063886358665020959549283670054016786350273356332336213116279846467925029031113248638818639416468860461635919257850752334625616583380279851563726020725145444628817989650953729059689172963514800070396469344867839809989353630803078511801266937728892509078070535958128368617503207775961772803260721686415286483677098181850823053075249226815887710668294476840676401605028358293578222165797414943675820280267948186075425049795505253550404314497143615215907478082379373060700678657119240443751299607989986021203923570584550468056647235820133604757285856167536460345944725938175706327276190076771184319478100933685974030489023871959468922778938927994844977497215699178423457955936899430578778066798162244725969690365610889825586206735217067330057988633912602532941926501583124619798018596704741033118937014457252187003231198870795570111854399124768568156921877612466509930564006024720590320324168440451961299261918128402223485707395937751325232197359055316164815443249987855261295773827273063408408800070331797204670692417594698283977194277544715851629764136557205815709553514684972024933835302759654467040542259356918217352015415257988066473756526029057647855903230303048274464023042525702729277556946538662350800259485676176153003458151616201007989302390242887976529155419068683325689268320233362637104009967362372631448173462238572995182104840772509353054042265383462835688043435132531876323167096690757632667356009362196260043536258379619373175006758619557559850966625374560171895877338638507673876140484190396778555052749670415809740082518508501718361481907543761906090203480870319038624395224285094137994380949687641307750049507021569667861094344559222962403784979213475069056903050462828558155552718050727421076485208413977965805770113193168401324935530691114002575656067650766430559213709615816247434016616519462440272664618279741708613302853324804911081195379748313346147566278558712885509740124123594343220673058031546314200226938157926434284825604417806416808994925577669395746935766258320754406845721240387283223477826733089566783177704059196865863958927473216045767187937082138457803245148777234944567562755608005551468955878876599843023439255189565928376231283492642377155035456567984096653152185889772128407921931658754231849106273027877906154028843783593379271954337400625685629897286383231348561934337715876938477691728886221721268964172035431638542734397200523771102876074991365435782248599188511940070371149489530287738130366217688367070490714861531777584164472656763213563938091453646176239045019730106741279716909079988205361749324201303163351551285284607805930462368184124204185032825659602043027743471273015930448091948516545224933071786875802520028556246320951497229221602957389349124251330965391873016174161149777078160224583927702462679789930503517283231330570545855521298718193816009206666561053231351981363877368313202248464593926496129830450636896387433942503697025676416033825915275421916135348109844181013499532134876622744033249004800473414570791051772513163135346155739515371314433973637281739011691351342590186196476538316513776727109839583213681308952937355807801527929563509855147124304043356453864628660175976262631893648881418963584913141734847428707802559028685533948056951580523421783485177694862139113562051131552817159186049785430053827299430112913084117528743473523781818776469774185477487110408165981771994870112328530940027749283880453347749626603520296346739942616224593539966351896057683654809116237778306097733399378016260305805950437815254799377230955470763700596525104952175008514903744662966796254498877040001085869727905941617489359492852525733703662319433074753444535691414900485050218211613255117516179950689909266291305301099893217385957439863068521066825656962633055359978883369205733019733138017408415685813519671204121734694155630342706492952368289209617899955157127560886823582860505503812237643594784728382895109838200514540858303081399357264453533708368494395422468812007553176134735808714764937913043494297794396164301949347451694813681620265418355601641202113916074567009206522178898327036193124758404278108143656789601198380720273631593566448000895610837270612367043113526506963912342940383856110455839145467508928225382150006843761791283942103518561892174022546225763757145335226374749583578699888097209821501698426079774540936664146171970713871664245942220001665178623985095775852072783705384649276448562386487272904696562560538098945810749889970765041667459926854128809309274664264922379725872358288634849618542667901134329776604593124149840223777929398330124593814283579308632885838083722314539192488411918459577757204089199416476063662207567734048346429614689632467573484238619745604882757184517847019267480473955526302919342261604267359195718780827557574392532422694628086034918356447156845064513421379363334911755250651410336727435132096099556869005428103547741265487985675409589674175251136641425474093341229369610506551073828372391596610438345152366877701746080095496419102485076884937056430842634622063217057394324752660139394044254870704060433080205381409030160787610834248065465548119639045683787842389378618934329567947274153394030926759121050077972154450731164235275211054295207490032047192800570723232017585711061601030324597740638994022162041307673759801404961706725529742700430723571291578475768164991556629578840586491584792362868560379747316041146146293693425731305508842136303414090651940251858800901796162578740541389184017986342838934970247636808535724095571623735988945965065150334275701824935593207544982329496489701976287488496182046753258637077039174653179450913794369052479763990829293649731590469747585370025753614523220872055718923331998509072501142459579339579624729265906610298253854525286375457982550839953765542897975314578250003102622373304206792471556032949015781770534074910876210237904185727638077365992558168851723194125521510609291746163457166839409126749690734040045001599517252718748698263629052377167926659974861644452252840720763799630467185222494551586824436044953758991882946971001192554088205854487652716999831727762887554887232389332385041221517894857697166705979114067812141714536610492371442238788783371628433647909749146337906579922490040701090953730078941852778771668695838135875975201339745658028998921634896849588027902295947095049464132976583736276809870077070002784133330991642836127324265304465056024311150035381779805324192917877945769784963854122020254925980912403392993719083971315550431042799812323542758853306396890240170877914520138918702142744801104328192447068794831377684436807480625978096580883692143013003939675172316990932941508317842067687867929255453965989393947667898895673788038880141356874260682373049614978585864433623644779352038259601683825937757925347080241642955219142977768105857229187605682236635191554082194769122404556226626238793875667206680989057478107196651349788750716658435279776302198241954183842168121423473132101255201383456854607713272734711673827381760781229578916100529356650295471208843391658422332648958535923859869517017892536141835695689901036828287332727707420870929084169077142932621981906105001831850263697227809102170085634515265397128917059133247628428574212503904085138030403394734655065691311005502801647515739308630689754837090445772017244483077019503263368255170713008773614687415639376713142772743250166811311446508939781003164864528487102429278622020654100964288271065109164213269652199744919184736042252169935223522492494895002276438373917544153444805555416116816294245946259218676556518539835565590561648087022927198041045224619604368596902368010289202288936148965633083082510792864736506515340917369802550644327149230175008858825263179098625600962243271221493075322675116116955362624674509680458641322671152044124515537807441140341096241095198773061021955990591088117226518174357070346994118386348385660502693000179765139359478160452766727887403744535694188619710222858063999273655592636696844227044840794758511771892406698183141889303465675194935845663523671652073050611326376398502402438720447127056339870048454391713846493632404530507248074162285218009624373003092895672980718095829268500739447610788720857631364355041972315014871022472520310593512640493090289757533768308083366098189172881628412226881823211192884548719849289543108520037513603813177364348074370015893483662256034069359317070995260834527982998484539651516819925868972123457612750522561306022319962954005639932480753271137204248236742074439367746079228240508865393328170004357760822727280446215644396500993644312886062932634271342623651558107202848470355511103016349125971564358495210264544842849310572281960585162298159613552366057478011719775910361315057136363132338759338599531421141638866100932900967664265120474945590257591208991206236350731251832644621793466865679559582807593406711249188262778042932420875168217202771626106245265381400697193935065106660936848674325880062810248924327998155419360321704807716077436693156474329208302081197755713833515553166977949311826440191116523882314940627398054914266880575198522297945085110946957231846855675793540813852562739113814248103697623360216662680920682083939948886136317939835832017641829045480767070175698882830724669172104247038635001143024525944288246576727359169901021129773561928596903483919690468096220274149937798793361481483468937135934441191944817285965432918110065194325498949564694060087499109371875810743418671142529372644384155358630441137986357059908287941963836029263392247917272553821921301929039501771112926092936881229243704036173708097734565122694637851037703614310799084071436268245975534275533567533635352227373607785313234044192943809430589591968244579221716514438724939765921486282977271904566550224729482634651887492697088551273001566798245797944531430983088539669036966222853256814424772077122569495776203834146772547487342542060964021346661548463775299993537744949126570045607996106076057078460379921936280442411255080894583501090813490289775660743805206347320796340949712767418481951573160602187389669541732450244544159725753551506097108866987863529383331877119190018692445333097033701069923088840626478384601668788508083936323617876956479284518126968114819363516663002937702799352545219907194319944666754867301255451506605971436277363678833547688511938324655295478341870453112198961772735993937066597968497966575903242533603710556185491842389716518385854559250248942386908763771411055444830648610513655408706998485559963668001760580577229073313783500546118306047155908013414049997319165462435684098710908411963998883455207043873408524601866704625284142398130171406202380571904053452508963159251503001500420756351794960517513939863730174174594225729800052491742625964995700703150159276464552705635688224451901621674011727821093579328427497488270624276402980007684093482615623745651242047056841985121504078446031796538962885600019059803893722857288330353881139781259796872686065063803983192522338685022380510838066537857775647355793083839950273479065525082686596383940772903039041193860635891856715050716417841589246468172021437511454938712289624690483565411370624780471386359154258331429576031415690969542898067320705103049532566749655725438308976811942762923911563748062714434879593407404176709940216018777095536831136465217706793248234309447793931924160774702798752359020881224662206270128862650065846713320049917514606674629732214652764851806119397121205783825132038457982237459886166404719016613893534124833925449712163919869084214953840461054421491171473011052437552372755573497416616477205563854713857296501540537971422950379509710789056038964217588136612513520190048099970386537513167722179064326320008484118347875348358884603751159800257765838698009336988102474359319829203570342780776006171190629964140972602919284210061160949677095087598875742211018674625396499209699194099043882368888709038032181039649069261322432169214453419335046947319902590705152724323665149389629494821550499473416492637162254953646636319136976348729994086077801329925461622361398351256756522041723414178120077759312948558545653854525036887748491044198542683204663869659875078965799503528674396137748694904950905816451151602652999854859179842058313420653777128592482440829703662744575406691116263284130238168962969122042646569117310480091283873261375802731442195644214772048937556361377606007926167461286100413724959670782156801604536646795411747666138129602529486236343460791060198410302321791797576848461551490002815247734195143240782741803936471955166365323939672088002811766180887365745617817258126112711747622605481675904138407962211344052504958372545894492088450650638997212001077579739422326968293796795509790017944152392245696211048817422216279311802565613205505907137087794747220589597737719242276749067713596964602292835932650901799823215553510540318632075054758355953490819490359720791648061061008673104171467436262405448997058017810563926092011931322198011585723435314492304005535576189325719535444579754628455528680901531067676086011273819978832723390171936905750686208830625984423967931151313674593356977806215813361472413807016474063794422187803205893104685903547015403899051702869212352664030277621558602812032815597105688956796518540508275685741168298002168817683566480640790873084953082696920817648600772786799544081175785137176448241321302875386035800518899864630100965644019166886410696778610274006584978601895655467352876112796309603361875525002995714652625669540902338100130314692734584837303926780282498109694384762422852720929584318973612819470946619292161260166046504347824752620425652954322097873273578755200870428062949029810306285582179937873999109985537455034911330134326252993946935409236195080051889569259652505896140173600663334611175687974313218511517229324999092906611891049813444235220399558687399552494866562017871201296736309961012066660278616337595165765191582919409049574217768711387998845936155097470483337824708304212385112535015394699235573688834596518520622025788528432354226811237856696453614330397128186557714072527835344270895646620622644935042104564595016459005740964564417323862823518105320011457873736318219853286038513755753630773243369243566291085145392279146164279147202555737193679109053857773495618263028284389123577250811428926014337783585053729049585969924059742187296296887112268059677375448716684660032105469276665489536797757355677086068280950448305336744600288920138458853558531315259555117110437565887496248471887543992030225128282857386837432801576846114397562446349429379189624922120603088210175109688277811486340589209851364008380815435386792493292892008990077462926799586919090071321445365765168373402911897649661820219194940984800233066865428635674147326321992658957144305629638666323319138437358901406310940323723657459384823292923533262050219426273378492324480384224913616825812087597835912596229884779750307952370898298441681974683938900957730592069148276311049742156592614523886791777047063989290577772848289340266840690944502822972340215520198145769063454268072432565115931277142206869715238936188376129300371293391948539624190523815025312976187522521416269871688493526933669270843576048244282803985159500839910215029691849759558064405419823052713899242780357549447436083125903997130975320748062030433693845484067199564626785151521303501890578607185702409752030979990774059825559031359908082973473518025211903951169723358810081950591278057239278366866896692294531484077242014003801783789064298015923908901365092965199976100857941126186794152745014908287084859304513863098749153232102709463423688269219101083136365299813421710893649797703444339938303204918165695811733912877772510675817076735158548212732137600606591196888706207983177178576232939078917480988005242903548035611505523830865377006093174091641638463671953816162802801287249751248993825628099627264253348190372386798440580330128569823519154093946123602231869168403729926280665741208421639249592852774103880259836464785363298514551977469122395828350511915290359928007416906817563735324629807617723708929575337058546815644340068837360733752443515957943683716946283296673950905528167956483758393957555556605635847113460163628561232553290609356843769384159575837833899374567407184257232036912775857441336947439043244398349686998686296896638215991727739880763948190342637813795841986652605622911998418693919591614941814487669483501527827151904072859416076000878301889558490529351577851235768061864499779953733383903652966601030384631087973188079755653824814731461710977098533041510025473434626207268515476816216331165119083676593494861149314975712472727719476017262266239500661534328432774936106909141724279420737277556646608648124377908157053853488445186401136788247089297447614792820588615009158734372749157067366910792332204231633376321772434210178893625213894999742337814403982424881845021352883715367987561454219164325074535705946657870722374950008590477261282231631951447670003399806370030733474468135146944728713535943873947954909153837983151269705530542412777180324921705540779199138561999214482847867387747486368053682075728379565038147678596191142379222271619167254603102025785946945632436052351917035623882428756442397665607381104281791342968685086244547258633129992700865715440533429287899661572949669461889298134747134196627776244045528245724477322862862732159812366547428703369549703382055862217743051600816084536204273495627877775548487635161254741866066149219233844308760504421150213071697295170209142709898384004164671748578108571129609562372321023068778147953216983506791127939100515447874113237745372621952099332720745517746974886205379136775120824038547550038183368692215809236551328557986576928396885150058441585140582658116164462184144689056185509121014994971819375562393424885322487453615025824922331492160618989718948974125774417140293617642950130765892996427309507584970213949790959658854492299024979275181714730650842050859988135687528865047354708274294687795502006502167961092197458702649457695322728549010933341088396947687099000332124740420073110973339707454182207691542401145617776827499580436769643898630167890270694489280840864844325670927471427085904745692886156781660586629446281421030303603616177230850238717362018928418697433484745120727571655719397208387948945650899596134191381509903830072705477677484431379107822578187685125120321828350597342013074068899174353962207893862020678143000811677228436419471837376999651233614321300698313445421035305547193585557822399129699361938834325881930528005641040316276102421576866020573300361487186916394308377339553984205264198007418789848987476157440339173083813124880513267265688213564259842253848185502685514498199006576453884460344397329482464581828944856310017247972914105694113535718411334443231246177270571939081093988574430214088952819399364515728098747886740610913206802438526267577609024919370117618688473894826590045232131387192677858611875882851362668568282822357272516044515622044075142808069272957040345799995113344334500941475827487763434263014614636463843399579191087166665857835514421122364435584218086443823851962299106793877359811065223008711177248977218783142914476000802933882629534855740319172053542088941173441977140391967136618980504212939357018987309815560202686603791602120926928134421524335557341334414980901451982746812544253863261390402600795437397981008266754091493658772193947300733626852320626315357004832286710451087088456684183081274516318308075598385854150499721810644219622183870772817030633853581337681812887916765484333461921958148616967721480212176772851338820833049446816497562392257819935256020523563165748088655580159009970290735741116864054388038237917261339441741039597615299192949748213242787806640929634491071181786028160777127025875965140597434292157688671149850592745587247906349615592876685501882206904342009738754304205890524499960725374251330955733857423800729868545642853368257442911369245604432936624262903922699337270487786774784157848824880564499598817079514834463472298250698965994867701836769335327558407250858594813237002172112609001961426589839425282188865109481260223262281729335335486627928147279528394079287898476613373599401417327580426444548550980487468923732703921124044899750384792941995526807326067697949456897348353066052695907861217991063864685105517780762602302377284715107377336050606539403936443006829764548700767730735612043877860417661197626276432142231942028114473371649015360760421769151370024525485404810933262122275421848863310607607969319663475667764415247869780023536602904082369599312886552852532813204792275734799917430720983341373369366816249447941270130156422129736571604605389071317369800110246801087816451146769924333198413242574814769392861295273934819905694229660993592945700122339283108591169785361154756660909024945265614601739847477666234654258733969032592758165233618214801594164801796018891284745234787573533810769295555469663733214058034519408032120102128340464106786548661585914353196110294470242855553715118210291805090002006985059250418339008334365466017886304752072435330289432996122690176368874646707214769733742127311860202689923598287885137515984779821342591319092490986830333913076563857126784102135166225713663746172479616274698312224943137771469512717725455396341541111212368741294072544021242204654423634012334959196843190179083019766520370193524446992315191771085069594123123884044422320637118596579329469134249965932562382953428279198478012877197868299258287904243434678781767575805060922771725994997015369912007621548955887345721845956352591788631627378560149931611200715310730224308333199901165143168083601190466752925264135402267977175587622060003287866196849671964015299567724484933822001848338883456752337551243854836288777468209138235585990618165903768598791518047549210192008852357694946396551793133093021778814833541522841295363941743205784887265733750670266516527244254776241672191529085048582036638616134444569285997598408974662988425605624789805758649589093911679206858853594807568591368954268406660304605213265614341362134037097241850275399692069142834024476312005872780675404635512438628129074703323461150828340298926045690845826394465881170889278577313266158999578867429399840660704144339548142824929573572076842016008338328300676849238508181832833349417795708265494542546699555323892336704830328399043738285538537226909997331504270864221834130501414517604419362889231856519807071225783619201976205726777353631438534353940505322704024619542807610635905090244576322878644338829148239002670765660979052572131604179316377977680426107011274522124275368996148515853088181213996257051099273834674455039846328831567990136116087684576912082705774585252617535998251249537339365100818744584068737664995379239348859583471655561191420099768917167004991169842930034156020517134184222514081159360704583788013915082448894331214712570706306851174672721278296883155308568117122110243772726466809991049049570943754485361989918821062025750466998986346994142314919553437605605772118260848997324613143326499775460613820655931298356638802806948447344096079460121158277951708116771890894168671338142230643182194822977645943173830463604866425169690157014645499175728450419363268123435425534323745211661715616153165398796968648699072656410203996889450554629672658677388046749567858291821703047459362758038830962648899219784917271989088562740428170773094776838704286723030199873582568031184384974280585616338748880843248302606074455478372643539832313991793047192143589428577038401614460191061780697965268735182644726164046322613715728681001266910472112119510742516249465320958899689116974583609910536493660434316977457477616192049025075674827035422519900898052537063991671584148955891665145298983791433727586316315846245088794677229457584714176997085654433858028125511136789524415012667763678440188534049507437440071017211483869348876392265061922499489206678829083653685850754627513888946711638851159900912222066182481663818444838229769314337845711163437906621631780660748681856229741327664854015751043566260471528207173323978114616202157741076954387872578628641507991191412766438769647154191609903436877781521874787820947178296606770568258058511369748498383570612597559506311632866943126618980708678473056641253653036205393770958838466334571936447054871574246211329341712917394538230681422448521715694265994961872656453799307322918014622888692983662898029706560554827642311359633128481363600335862059322605467073008297063968753721518512041346297407116500619417296928754088251689799675823007792276098837372487272845472547220682473195659093477987056155438915306107138360521617073646646030025800023596306087321615137787652090081132296203206365601387149212222807496198649820235451112914983398766653470903020684162091934365796580530399891505057970430791986665789796165115855593014058583976020744297037610577423662413822451890338967669427197724721450860083303971973430443375923935370785063109036616796113045836086936723450287802720578672408857125982872785328724097280248217146259301022367651143686850853781577465639663600303050017087446734286185957719113564524616582027704858360433232229827616542060625489421089261910110607714813030175690661019161646142329694376529803703583448937138001782388127261129042165324963142555056685124951322930608980455844767518545831101480191372200288402727834828226228938345782878347260115068010774150005630164189017721764131333062574571755267765987026770603730140068887337517815167596311059530142197207986564210140147826998218901413264022561408899854185728710545250206504888563855722330334681464410489376494770059789913071266282517024041451801565653249071113442432368059450431124431066840972165966456014553806531107291599198915054864538588021967193383398776528544264096938863539858490197082789263090472648212185188023565437439880245039785974468598484799246794493455363157304402229596059328975150360106294424139446806734923332917887863767859157307767984487232489571837461171582541498811976677653778370272407709199971769076418470025205729551041711357851030851177838611201721913444121073164720464883081393909885925980154421307178552871510980057456949425756746918149419194346166407004950688962391009419462949712494711717247231717798006672650005907599261253772011876898302520062870330747498947607919169585911450090119655103075433793711938106716525236362866176453247802031220364631637309643286299986278173346279725666932357865520601000451084469897597272175865808060605283250549767862630671642340151377233862192181837141956916846043380082470436481881027388602337395811703289498006756516113849232478900705193002685400120424400595524249473900669995884224749745502030996295984218603298180011274570791061964584824523367110834307626158614930827040643661434008746786559594383912575668391045535300772395631021891104601660039610307559827653626438442743675855243193040243385622948958877691527212627422389891249646248189869607961103701418109339116214079656020660343070649934765956198383862413473031470700310481264406885981381697769042121364148337027691588192981303567462190471377420351855764344319965698825767334275585499915226637200541308545357772937493643830386079090620186825295733530526333099954273756672953623255603363895794684329142312515597744647182137031550454786297779762611284926060813775723570276955722363247990204082368270996547633326956021805686360262338708706171307067918002727042568022494486732474136147846218820757316143845928488985250365161978463343473491015989783521431529741535593664764611636967880816882497478095321888971613196584700782631627678845598254793861008050787969181184132045403764608767468558709691850788705063253178247937260587406277492743438327410404530945846235123122916744108163061698506860818641617127338017447310261651016136880449475781934018695816941607213145331558711447365407368708841094887409417906692524888864139042971496039834563951973900291289124217852930293020799743077355654437860541561475778104716804404008362634666460050576705427047953845499643144391123149687496036042044031837875999917181794481668262103808725255878829006157347186177209189617378811890195264096124989273650963990612227964434745551447729211912044561006054704674506836299622049448745019564026387477433480612544004586690713788374912147889035625997177130795670185104453486524810038747012670363777719713544390920768788537083358331779981154109278027547211423829102346948369036980141860333786810062667975337122810104846453904687864098935128422930533389160725824307725777907224191150448775437738258009753086406205357273058628769334787660284374525706341973616183170355284287965625244548748890812153069848262040551126129207988787473077271184918291958080747116317168589583083193861395848036211358871181895853245151514918357962875188762554593244287800491208891429522549702401181950111615278163589344017207641783024666118933973081622704899173414457121288186657849684681104392388295389841001107239487764831837868053478414230362077901652320415904772334534098888197694583596970531163286320744057240070285580183579348311592060052338743216507021799494999685880509066291627104787533868951691466957972371700708228861812810267606750711597056641531125746499145932426633969835375823715851117221436703895235888881505854814833069656209986708465081055510386943314160379275659474695474174661096837905948509146794736869773390282840668645199612534223524728246859239930325589696716460717040277477339090133439867165137565352384952256569008311022371609408366914873544110321092337402881783238241732302922674823226061364155365536264745096697682013752106470848886050991617706164424971081195834329419060095502454884082758690718201121746048854616717447493469048853857699095670761900827790242626561530916369031669832200206400800620856270288584815655377945751955372268205461274211288336342650644283047851443466494339463229697966528126757677631790354737290840740319042032810056077326357244722244469908005064171856374439190129320902607875186509756403745010929321856606565006134853764768434215582201652125119943183284564046576240535899323897366355345891274424364907319539455433151841003005884157171199306782220745131752779589067142117516168310700416174891889350102601333852068134981854126980531786712903851687230176411931251874773969397030745404829690167440870168290585213595489211601794964274786798610936796144796808320079127249431215798302222300234302341484404012984661453198261202380188968922022353853449810484494424299620345251271775118753623247999155476811297151281017890634060371236026171584654018579805652872515570220163755690641912118935227546141770777389692452233449087506923726068743880148371255680393292635212356144124586476962273703390589332768000343799612956169889488735730047710782881351327805445360802410553998287809082662988773967301838838849988142106093901505692630348616381113245002497676015494224266066759967054932786772163419097149103221716069480468550490079102396521310800106399692121096342073489328937545872970010707396323549730141428534096306374687506390507130853989840377533210589258659881194673484450027256374213972542439609031807112823960212514015537959038215304446712598353862877206515888073813649149627063990925357846376341283370306321818135884599384391933297845987760219939540723785741996361371409584958330492088890003054871255206615601168400313718986647208490662652570136257790721098903063141734394623650886038186142554262659039253126535265515353522445557673937653839812764240818367365389725909161662159594738423447421732194473203297302759627770125423068543612343108498702694164935271522023262802554376478507107592742077379798871781998992026480585934817223808740977943827004414337200648718950403426254679703897516737060811388994216753529241791047466411007406112183598128743478130042621615979515752765365602311820508262873608445766079750458562365096191655590443542865040203630224543893564810671770142772349778164751291510884132299331072691001169985146428201263495192362739136516690237399679963456306585541276576351742990659859427317562333805020322048941242427833378488091773747333451601661865473368278857909689970346594057414629523911225293050661310633909933964200318374893694439154792832639242983982992204169217493136715653353871181022212907433971315117387755759194119295162413012501389313058032952861470060263038549756846629755098992590162575118260342615141390518019434941129052390534871289343375908607203485545650555644027393127425885235410166642292253698561212094974931412049128214131459038568863614115069839802878635951982004935346463886100839106903034380434924270828188063768348904960249584334568550631028121869350231757004232426107183136668173887730977181704883112248051080299306555079394733550701197952114881697446676703578176292335821879988685484069797037836238267253901816801619033909091672490011705637675764383205448099035638917147275175456029351176225264824422697020262879839781549875224509883820465767676809428547994024187561071939346983877450056855832104577185568974420891029832447179328368183885769218143581682993740545988844527435413757518080786080423115386248661680063119582812897814693078071890444591988339565803196943811897894984334024238945004928552915881808796551937210754470429915154385848487137744189957053830318100897189291012780977425628812195834743056896628571901880653242548224897199641154143475771981101704064113826434840015666943734173013286442423796514931946292726917650993131806816153257785320609694623935100230818927857118819286988711210885461715788881581021408334201477755553105710634373949857130178902834092930117836660244677188174940830075680023183216252570708007996669030464801697265261273991011351627240947321764453993134885292359285177137397876919550995427609467970235624020815922888681551245772944278528094914456179016002941201978208735861968385400927684035713002198600868841380920181193944556256992917254398954172817364274450525695203869154281825919446219612923035264662213844418817523929217776694325147828706122870764495322498718963803093945605578071664118715991247020833512262273569242610828530945125491874804027212242559707454726829099460010732741996032790315195573755707206219570717539155161833481220100423615164668597836948808395120286588304712128184249853370786992421293029881048878059622990543192594256452785695123123209682660338068746328441797938283387954328028677673910067880023075214477518556915261309143796356995131814530617257529939039715499996183906036401341702523202187273786523299682241273841318765382494046694174816664318284931466096965579375994392042417518490368937090325736733224372005590443124853514198684653864013303677109393936229452148736004103454412611358080767341554990124511952012929707017449286600236531657051863219341815321713159204937327948031047180861978688768735454240635245463591703986044445998935500532322896676711314116012861290813962687654705033694228775695100326178765048614257559062577496511128091053156194262216761342017025809473119281011678338253903617615691071949075228160541554945335370488130932840797011478829579285794379251205333417027268404745003981169764400774448773627326875615741512265943902397842212478091987510367036153320384493145533016201749404189844351149757815998237964675051717402636614682550156238654500292769909855831018209050887456037927353325607007288590674264071414604108312102357181734555220230077379295370214055909261754271167367912971530705337910275658169322364645294532433643692852846812964159714047520440898954171935072979464984453711518729069297279459217949504521474923260733314900023563369240595405317961937238744662104994856569818570147657452743151865890844494033505316259300792714918499292647811431414997054684568043367126747138518164301094534636706973652867370048610264411770879333358611650158997702612491443785737709665189706335212308359022897665917771928545306640683309526614018893185860491651007607419427052298185386573005332158361638887083519784793438721100549126818947731171740475346630485070910551012166010813847658210003812730863233861351585593861763977354309141007463703327869661339487969435774091833373790875350021517418144962319849058402000690375504791148998832283964447169853607391758458957081553892343061211055665596450708542180556373629565302481980027292675725407286346390587310070039896349235963053189663871588258486252337759960609584749785677103691283788160226993503010802739629288547607405547078159967279487791010821979453302171774326566547657884563110760538915323777009643340748487914137842400382703570533246914566852873679116514299432305941444732224641030151620807360624934346662672318991266070622338444505365402350005029835655722344644397852361107541551092841048850863616677119881998946461978282283615750474410991569590414816387794040453906124902719860860620014026173393055284620343466026042770107048840029727755944229517880595509520004416026560175804473258299190753583077335080818602531582393874320061648184083731093714776040226054494602205250750723753298741641894716577108915951601721088049693936450867042971045000869748200863659554604404796424697002856962328075828087786332075701384435693316423814974991039348155751705855120264199571432423178557041072962737661434924513611110778813935432404647283868512703392748059066921934903945283374070448237022883024366554945265306446466827281410325999728505090397232382298872361818889584120389644109738956860226307357347872167422537371130184071440387458687019684625521774879859312390066606126876924991798888759313801204776258905029758637592211643255615124212185769096848837270025503348830479146341325048435666805469053494368597386244744259291403779437787970137165886575904772208897716682031308497507483345558272397673722651037818825683741303318252877497633243670391640871582350883731134234388883206903929548670001767196281307632287051823155702946645829159802265073325850750842202688532470234199974995944312512110193798197631772952576690757698761400660816797733088275836256729324034261267969810484388694000657473779511872343918873294065441721419243135279545396061618638190620746212544931058291356036889193146996886400125727767598047111401939783670881084778034997467466977817241719177061969251821779063989021260042723734485466325711764410882641390406898936642084682488967925702736594587066115050897945141067528629928960672865860231869661157121734474203764276930485022382488552068437548183442936099706988689655148515901764890120479426145463912407237530260254995420751026774981943775830551230629846920789898048993588514955487265271036964761905785644185336122505542096954328831101620296419047980264411579981977234132515498800346048322752899332184494567421387193882227341269802675757808590579822009332345886305999519481300565082342452255945280015685441396029237787003803062306483152405232390689147800559151556927643765879445892822905440788457209220121187403058097613435357186006194136039787191541115942482378141122187482196154916080082280550634005762034585688983827507318086396617329059310793715666632567907600823078300953996332109107754429314096282307951259350353329371589037272508206638517462408238632441430563052118015188599379958270695557273765779144612432585816706951140662641597728543049262194813218730234039972478721969782626788651793668444751586711993724602460800569314893881199896383438304697508512669566820831079281268799078256104009403655112074863737190682532144608796859226501206543545776106518658642745264145254713946095529015390403218641243036455675979422873984269289517808179828213488964290871737462094463432384430086108723454453584213637180592034352658664610335297222299992822332347460763693553287528222534097804964168853911239289849783829082089022807446455918796312642601817923378807675255644916455113677211713723959419586891817803596407388102411748734001430209847319642989485507213862009093038885476505728468385568444732009246469882732220563531430877505943090826951761746275482420309587442225584004627090608115021563408602522570629904325947960636563508051581258209821642409050546480421434010331046399579676795929212700818858282830118165149225723608863315217260988019686588407056478712731571142463689814805935389866595246496928898724069994083207306746581175750927623932947801912862524173640754773810132977878292101952715390568170357246838784388066406254223249270606775216204787311373475662354467028362852073069323774743465289762263923866117479112080218843333435880229782045928097714649867890184472067286735139479883789051985692517695783058001894700572779667550197544652696228997693558413643855544439851089523780252713600822262607270981932435533107276978996713103811581333877542170187238396330858960686777290157070622056429682629060423479442043882144055401139964541195074799182453292681379762930177010113471154201749668424748065195614258834741169336429091433459665027703596816520840810538872031478365611105854688637843793672524372140299062288250639602126936296669076171002009038562901258007007850694313563236050207156074435817737282769503835485821002086306458559251326300122922721555725238784767344467561891764522720195611387468659278828486442569620234870264176385244980714444539653604504969823144620818178262012299344207654994993522389045515608482215660917309671066754418695393960278440842418107914407209685592160492133271776284143559376481970676299682954263407348669526469174089276679774264076945632869947165607015175457169745839999698394097950847797070599559044862923752684775348616728301444082770349125964062644069619680700890684271893716790287014896129818973556945323811511929881054819471154484992787209831281065954583683790555644052748632080605969597218733210772411008625385547028003388300158229020752720685082233039682796138047723402344426787479214705284357106530688116446697601185092238175452569665245983568479129584201508182997423740537071578145896450888336898641492177938880519126750070185501685394154329449943398030279246173918596866173147904928720706445941572945444250379038794502711269832350594337568053954531946924220351666211292959949652489222269429408844168277650310779653531982678536674231729732366208953525594718834544948996234123653360566480032145467301239568361090740633677589835701334391766789284705829857208195425956229591820786802586045138804894184878474301736297266795494464595438432367653196095914597489775726688940925206632650405576784739114776828845057461571360705268463378554514720830123389371235196324636211796250485959888593056246918617684310088001856835392379404095985639097470796927703867563001137874447081055897999882818470496253756463514799032376979992682577264329823036968052509579114672803872206957963384935727035863531168991364261541527959898996167450981886612622848027166170890824029666514138951150580636866401593675784398925479281431496369285062295695419434190677308353109795039766951136971470760190019363950026464893764283672701881242354156418327289983473321105949954867864599037390504094780918628260836193116399342640017879285513760065941842038041597405702699655951184333561427428397834157665290963505315318256942738306522539250595168947943898658095559579231478401746826367260454485271483381012359746925002218062312150661846553265759830824389868679625054999187296268159582515152264224637528284606992259434709634922604734439417146862575670252824365254279009548187051299831034258797560520111474315432246842987271812258188819573310427687421519995366704695398535183649229095372093785889687599312281374388488723101339747529468725932822775701140155526119846145123909891846327756416370382804586340799033366053905271398306473928038099018127164286877761168527842836067253727990438335023006943417512423264451051122133287619539879539576882501993600989789425175245703129180016310826242499844073644980565980893857271310455606524511866554796357680543379441157733557649694023166753480725334785995110121916077824051123633684585172001254099897588754496235264377089425637746597889461912123285674826738706492713747523759631579569463474223448620553427602229484318462493980240166417398590877508155617456571161347137160500668305153258249043408736473716220434765959119077692315650033897553028720244441432116311770811370158287012122204048409914034242763274439250020119792376824914256474811847637082534539486796001046833622802211375793837954257418692077311801586152356157924474359898196736816884773830071667583013984104321429829815461424008340163931499060609971796629947646329669377028443935114745058821356550421499933886058371422584557130064048849069183607218434244943574161217305752056729103937941455705479964099484361495498545788460791553157597460107226149460224776857858689408243287031967565950407455970701707177082292728976857431151615690665217110293446051794526968849757630380363346324346962611311899299835480204281797630936407385483469699570694715347598304828671530610736929096072357091553273449095323964198598959714579291467170773340067082289535247671606685083361530498612677676588948065436088417776025283436924890281899017382232957411015329330502283578718211591973139309293380252710662513079608864608780381974652996787936088811376746189743786905959022807089018995579360889350080345425595131323829378490431727270162346063234441554822189424335569962738392807500407365657555890325935105809081109709786574688864674145661696869057996323994368665977791712659364146411673185794514311877697845581006045682825206745931568847241670042121586549292276537439287436246330157670064235942714028877545671784396918552739942232050866228976146242332852899328203733706369543118034617216749659455018590474581804547593028596837283653295243202068113247507866415307511285861578722803836630990076346956418888504175810603277045025314496705961836109767407602703830538132326154665028084522061699271999400390694297559212652147074877386964456303838222390696436066884498843556211904007314283015637491396133765522453910978746925090823036468558244550158581625323816700514410789851260356834621045806738718648065493775930663626280000967069975571764580490690749766352847025286417201498003269199966849714400707212762712710942836242474491151140625793631088036433729251126338106038211777714392862006995458439093859846472762705606909389894877820388656967192503377163288827099217680022236878125099605182905702444239348754323108776732322450292713951949524619475567308602891376352328854183615409612299090733406866976406152826896036636585518330956132743939607996242323795123681663077826562961711535101701502222963007970500503503177448148831314364827484847799388142318759138856309200984612808223505122507018316222222937973151300928898218418595624494589592799271797936342472970692951311528023933419186861988429002918052567232018843325143231843414894685171975317872836636388339569118723800506209336842648992879484672049280000645078199507310494624615202195600303864141299931144900544249138443933790214252408999121908416449705683116255969519281984909153833321904101642476175500772085124634896037168126400378464770631216731723179442650198725746492829839521311742921120250038806208030727726418289210955604552587776416276216574348345007221648363265716632692284267459536989106793432957348498006277393698432583916570106047887104648629018985968851883073958096897916253223271543697375611961059711651190948169257959904012155575609945867731673450115571781245517408432155760603394151192606207020234352059092027181979593515236787736488358353004672938222584442760503945632880705881252918092423911686167283277170802299478268187182964776946784551387431145693890856934371337083815282217745377695118567447928935968226768749179747525754183187494628933807081842480871017370620438729477587507902713038615749473053260184421474211083828303947672144126092740799014703557381513083318617305429348860669575521605490193218665560431367528383349906779384097666786279784935337831888972869907662027209172821738474458163982479043829037956247422817761731204112722197584452752448910528497842367323413207266145992146320013601346437271779371611957814030227854554644292470644638469561851524338109333085240093493898535299440778397786746251483692856796349732238428399225606738341536528375446111362335612618961252706801537739792177328186244399312610635352186580928649807885128021731968220460509988478567938836624777552731982316208092554835280462623422085443836490702266558697559241818240147952884094636226040250060057791856445996869766164862348745676185854390349926495376018584282219009556149683951326498155879285506642988984508748454508111813671035661511828826366399042242643862221900669884582031075810751069628409800688102652424021182647279486264008420790067826503174108309677132244902263232718416378641550367953860795864020464022540213816176142353534668266348806426753675190649678255154269606715581673261650735853042481244426241758136050333554245544759640388296268980621974398822537737568055301136222940021758837664102903337307903843348006327822682698204269446949065007837313048858202928050995948613302883472977171536606082958135752089660759134591759779967085443754756380495781176336527179195339103380698905579311974736001955485821691273533274618983824324359469385232066006549052851508716531033126681422473372818499306334729810400759545604556733962715626481399235647832272888903765266042704950885286103391935286774637519444820660504862118965770503369320104578256081717430445162903186778938323612363434103510456989319634125906388586037431228538201048680088081965442199180695615642276567256453928934333239490634521811865423657609321438386979388997932445571948759038241966001507604647100498098310934017439177169514022727144475697458908953408858572579499227726035630593400644231022628491745527203672082966201406390855382750343423066989881855154740504550511411253440889339488721023111456667211311372099400256448626359524307274090258972547617109883123134764299766122976048672638235137192000765059296500190309999635718975056230941353431801554973091777038223708123434446813297531597864455540281085464312193774033998948178848576586184811063600145976701125585073397555852462116087620130843710156592627092211827067333985393734079833299726993718611907095798282631704206946874312904661479909993246884607845014145566815781812851446697781966953990243109430115339215762863601763311795200404400859508225600353936966166313841846766126513172543581101415005621805563170673324098265101875706433182597865540210858714643285477751073491572014368531487058492414163762601951689531427138424575176483196637751041182322202398905301940787804547793265253759456696139972399197124325288367819968665373013742788553120465391105997265114026158025476625812986960618478595641697622995431125565443148505261745645758780302967921694129161600462576245494347863304088390128596265664147499193055170482710308447880325923256730977822299327236177489035736615337287520493596610855355751661965187748586516859918203977364997903604305742378753492437365892900856742004338837985032910184063020467000092526523296152680184031689433893419491109882955362384954426502618710248676014293881398604235517602294068242367122513827542740628541704133608926759915167014410478959228322369045515713884531476641676708572281830458415681562036755234851172746280835000084324966489764177684179655486834304574418773801668600014419408922470477440439828979929210009908994268112955633583479607759489907570928210425786853698205738875079731895620489276295397566118065845093822815001230993124148632744837902563704489394976829684279077962508302607087465689974678709889540531145061332310857347222572121409539099155530790497010643324202165994503588539027099225991726277471300597660194559723943487982442787684045419685744648325015151079497562172544595399642450077289142438294457858046019769165181018980539261093646062964648491552245682958388376474086213975531051567687738281117995543371311431398876938617802854026626946847668259899891068546884649279385037483257872117080652244260754629405979877369385359857078637273698136360193434611778304071922999053678376393032941306793250911884640239066316598999256284961082874093796911734362687919212473839661334252662860574070570463881900137635832630582583558457888907075476451212834926369201307969356711639505551975895242526411069114525276780763328135319295713610960667457218866974418154681516754694769615213929688970875128502381659515455743704636241421700607932614369946947760071443941811827303315739096410762478234302405341150712021146562259136238457377590651894206862989652259227335506482079067077993607293517786235261724626486009621537025963339545449465354199473441263830956377293954620279950902235270884734966559164523032571045071121166402703323455591025747122039511070444623855085816914893697034729512249582976139284834103645478133290546993381763726421844689401699963795741162829074869958159794828200074428038021474747188923758062260036484293668035161942517099719421495601213583682315405965849274483990084139091579336301751568305339338880897836895475764160047703176364565372140856616586961286310997888605129001898956975169031954057161362912515339531640693509693341553905950810705572223857793916382869176247912929364847303881691035747940396496048449952050519851931129011573708579504841824541623417099893812124377736507535367046656421700954139443817630330980874002561514448575676407046560276744013974679419650464603135144226898032420857385800040486399103971815203257144503267765499536213011111747602334344103715589912027616115245961605814788782726784943773995181379329106013975596071970456514952222057612204959735538438846234567517793656441564845052587932912073389455591515737472886902983875767409472001713339578721541215493132088273178074431051916828766337444557832144477901782672703184476659606304318684391306471036178176116475744124523942204111526803587769265826345840366940252044495957840196861751494273492519626249496816362256841346856546569010680132853877653449230191749968343514887851950478395928125161774408262917287759165950284453157757328993443027468847432605650394728987552140159314679362044177496313394438753898481063544937860836091025125996594094003405955588024722238653436053568853443738198365240822326525293270369388710908861786707353232587652964914021790661423575144786929627241753150713006401639796661867636814857863205412974612711375860546881711579672846470758807524658951732660420922295655066955011560865356141317263575654550346235874787360327399710236870801165595745162021736176073979907411833111479967608992449543953908153813390658777289857134584799952248145635390333789396681089555123951342027090150265950222020786514499054499506807151920481391720567376040286322938789310782467168568208568187997999348135600176494296507155429615675969816839235966587034550140395386184505341134683363074463060815822557969169968212219165861329728376513319703100774004292808182457291107818357516603870578223439426541648247433362403096230551834443314276035121281995535237390729792957544629039883919046645520460705734450071106231336937072731962433146679994355033930501662418249310408543713378661098721687190447538081880444623548502284232832396802526834729558552007281479632018940915028896608676720518936896171541740677400970110694252185531931408724119394856694157018561326286200087000429781704193192189912540842573482912088153826759453432625683891634409526520389921837851672516635206014800480625531921424545914442713070238629974480381431428066914000553054921747604106744995913201321478503540406187839087134572065795300725766303269245576779306080105328300302215247878965413730285503921915606320174411977775568678068997512427344404483777225693883107034376978492151072530938577772551007866024481372925394485548486475127892176934822858324022523918492896001045758639307483738968193150695876480628790242638392756090753374714520464343428036381902451889644640423644983094443203764067863520426004633225438035637825136919354604212181756072897815060008036690775253152083575905040973747636398048522289270191620048170970039494049663819748179920283008629461771200982723886473925070043723478556468227503379968033184275089386923689639904950568517519640064024010355848225396829621374031510486518012680997006778920157798649838446710857457313190360665060016718260445205325570561235834311140404982282238984685815734901740747684314520669531945409884186158438971285060766819379149121953119978931920601125341450401308671270183567546420759187787746701979699306515943885427039673308087287176461367002587446070323418193898855666899615249894521095862933347774640137283893677372833257429781146293917823925807905352563713519423405679120344683076988149961578191626599006798919908367501892981986414639035374815410125864214897560105598945332753938436591248701942845569357182171720388691596020539935533364825672090941117228118159703321252845855035415518579045375499744409306521638685530617361335468920035582737516916549876698328739869519180116656513793406556737603217100499325649885759066228131484984699768392130773540937035035687700136507931137141058314502120673490155997637830786181842469714187915019937698470309679504285712965910371797572638253256091212939724746264037719989412195327108723247067298852018260626385391870576128868589233600512818770951026028060079457862531572499432265853317327871122853323294235610189978342511289245275963635524267348349361479872969727324663644749537337786705104176674120614589490328185578522497419785081427671391354723520548355664278831503178323776804903936582993934042642873304492498077636304424225129638032479599504130661085129391690198792319212267595384210249451061555720836754396279700549187875673322722343046072470708603839778079889706412702153752874647460340842794652516542150767700044986448870758203355497486434618043981869066323287294189133752965525717868888672380957149785551743802398159776185090246322285581445666871859813172953733930823322882075530143626158784564355256716403808438995667977536484691460166984008279979471782681260226267407987988488808720539850934463470565550827498918832584562807606223535066437323428980720614933402604263380448960809079840697588079181846279247341238448279385160072637257135011542140997351119153018360122131188054590265448800652740071057526796498965009223873446639794637266480083690677483675371982848056843848726598738276706911082264054908430793535303814634510391254274182552899843712590678186450513183740070325339391763851187535266723836315092022576057049409056961402441065907433054679756141110660586037952930831943061648505308811746217702776019485819244755175731959601280611006304671777672891387653509163297815903913865082713124997666695593254623340598721757007993105673113945610366427159023954950375612379004716224806435886395616642805164901556572498892086816981040747196284129934125144472242160224036243693230619973549028531755231704632343155036142437928487867909887249391296255234980636019642015166005255228423970190403056650518554645004370458234134429354814516760289410231465554126251236926722815945666005268641334648290782175684873625046170351400566413310950669555750979378981619735596463264964239310442395554582082151525245985414968801072339320495115325872603782565349460576357065646952499265454105089873411481032727793955293853961052380533987741835924775950949816258815834777105791550815396363161761872977733130103116536054377772090624567695698382002036552840713916228614137343171652480274044206141010508106413550232313515921561409637126228416654550410277540469347760213513336666277941838569474341370598745273434924405804559179144157686984755573876000635375883027036576195011254399092011312244431947211397721294072507206564044620140884443650302830882850301404609713869149712456265416926725322220622436648668068266629122968615501196655611429540474495166808254122283842542667027777051019771514689850058028380581742600944579564684438232933600352070198673523109085227896706200402072055615986850347291561028540429117479490879041475314355001843128155280458270036329142880789106849434037887670434814006484667584557846483261695738473779582063975398358353139208177092358456241369968584559016919594796991263020660249106670781415679106877397725707792875792767695430008002712080927248252158175695738263802124291764564484717944799968678140036999387717236909835311786811376702273766290685451114320525252217086098090800769766695681446233560294963544259388290962223505794013787699626379861116579108899919528649046792771047972271045887665437915520945832267548011848691205414192176492408036043269408667030248280393543897183949801407294683341695492862357943611987796641086183486242297038448052408054672344153697119898148960575099025536260787645967412816444513395282754015178208160259206810327406993142059886939846874816715705319474468950860823208456325974360948532777425663806635710018006874004400681215989848439166249978813069086178012005052865686918221733728735896106031479047157118593086659586128791323637839559639880293852448991993039689394568593440235985933255946735926080419730586741636172490928466763161585706819405928485174752536160510345853050063795435105666914769746912374231609609377219845313976396491232625790660001511863223317925664093141305910895535444323674459671814131677222906065319655605541127068406205148407780230429324991146210946718734590716815446655056043872596931509249599718494004749126271946111263210070627410871476066238427761779621760263013606840817927785193462904460937109573852940452745377130691249471343105718988641793202616769464034995702615009010655774898476729598829300464249569795425730855457650480732855901841673294995306304101524410177743424252350879442252738958261673712215410166963133081497010809190072549956690440222090905713642189194259395207135245934661254788574364182312160918526065234525524258989512429880485706363065752624448935992431868364273136263301095430262271130346158244252847005271828413477613223641494413400789049780988307361062559374100858955325371409920440400226647081252982264471591967598051450672181748060738180740608573594264436656276926903316876361740693535449978320558055869173708204388067070889221136319155126855049589355259527913841496980727455841229823501055392924217937725374662116935622350949294963801685961385711896552624570606319023557596463916122011296895222737780137261024312477880662719163503166781319546506346336442144773747984819035673414517955117046233535260180289075002986450712800894888955905720781312269717585746166037236329782349319277202271766168218128631758563054570546870307709664440796339160448988419589286417634080858687624226782006752433872674325989011192077013039495032663470414580150604490393006431302236246427796583631338155579812926522377579134810538576664564036517448383867365223066165568887767223488131520991326706455734923423251348510838201386216243337017478440297525456211579944445259592441510382452285473866455590547395334675617786470124814067344864230417808714675227986682241678721411151732516819945053360597649543450081441675441663546279845757346265198682446227865689323816310808736173247377708280390980353834430682128261476890650605840875172283545926435056971449572214399591474756676061034074917972557705452128236588782452463583115848357400157489428331769132824841455103615508104109221186334264758389653138634750500885562262446067267984155262183510268350802002517409330192875625198924187377124473859884494981642363728939155324642339148316499177999902972619461079397729621920570300030773873137717916602462993147855521257777873092101379859556967306983160611066354060349682822202687598915911825317621205974872794055277862313598386414235110110360585440981877762179990679611660201903648237119384756574201684940509696339097007238841396557460616081670687131817063708716006464875707177663568659267309425734429584407537525756319969217737063514560760841530050086650585393451563263910166508810998629319617737903370446281020651955050624833254981223927191136609997647284783584173934055966975251127203429927235194555391897812960700992343074386615479729018491194815166963087526630545704144836145140162746149415511755973481946044843155342907750512809912617225746220869335518251906997662846498004051057558883350969327449069208233332119427542388284906730903267515495770355877062063180428176952406026596627390902510674213593144174584358911637042000472160052961476750683089250140558992698355725343479176199322476664815868234331161873536527469356914598488631495464507075991476476162995833014900978522804919445120789984311932087586624593769689826750656713407496174363647622452817601962680884544190152523137652017920067130709604134399923681767842137301466789066864220777994904826304592155681439465321374990341760505368917309019001774081411054807708498782969412210699610939457243438702265398400342948364590663644689326119898487718148809085960773764783635506880225911416021812012918167708767742839937652192193874969115561448652166642170138319817529424756118495799825701085543957087337590754112117147749507466747235027531457348760838481368257538083301806587055554358142373032139283168681370401090463660843349334658545836441731691005867894075362095920440649789519007480441261725268669435276058650718552761605442994937542048648934178406597867796795749040039304223014789993638358281500794043889782981483927489149908007746184083191924116761701764773547550869178290353231461142918881290901195895398355537421028853409471940994164975517398815273851574379186982661103173158904520234941342375281921642212732902877454142117127020215478459501492263120584507926691851786805831548631551744804810241614714435120238302683851762390322363379352301866355125158915950061688831598597221283324356532132940074160950212247930900941031814842983707458404587838655420882744478919441152214685943852129618660814757820377647263309549304446758942060051997074969994352875670048544764463435054465646791995418674791019728348073812796964567595589965371118520314749408821447674642978155784333241793474383280443262257008164589647798155659026299314217638669082859119243061622006066304301916308357966379639572428800461349322938018812405706217678312901433265922976576169366688397974599772831259169646265180709650825142946187149736614150824709036280408524480304717499092876684999446543560006104952098408099570945064616834687478885194224050441034270702826885118404752465274482744926518666691234123017497639334056418652012645244228027465795328231815269253504602174369968537733655945890577932648441026157471157591759612153167177334860081996297387676054502678371995226454788435059191410435681169732395586395982480544300973359675468987573245190756557014950447946420169296487188210208779952446809305376432313987947470535907336321293282483147649340808096053839294863448586864032680015740756486223859210124171466074381071569553324720996478896406583584571030017019042643597644614698408716081285337853391311488385155207683955749747334537861030874263836887832467130813118971551140689591051061698628797824105756652592704926821651459290730619626714102803334441690534956479352456929052759062511093292969416546916232079325173958253842276759886133667824019862089779457789809766543437026623322751027700604361225655601910143731860828465460766753937360901555110567870866307513107402974594032109198444139407405989134297912489935272877441748793403318505631589126362280252700663672202842797574110353706931692765766186052904301584267406170461112384271887355712149105550263296750412710665900693138197007906570736664922679016711227189598531918459759067220210881419179896989065641787966859658290310216470659871878433598593377479906516652689892324780190217239406107881968636305055149532485806501890001096871747557486716495869806584354132045036681798303610714701583484055914280980010914006926434204453700917050546902809458842273123883519656801343626764001761038543681534343148519374717787504472730771896699231656664191557117163403260560782150065495258892923101945660701669245023184010136551573105442687964686687481533392072487807198187782022902692134810023363446645244890049761486991599460245204721680209492131086233801098823660811762274431615192622165066206377880137846330603385653072340851399388255300465037588498582700083866118040813710415462538521045347223948186107523063941237798388648335514645100044727839526448198186612385045634007107500973870129418436408486654522898998957776910514497050467736104303034627123802327141137912470620668374619914606553146023283317869207040966520411820986638962810318360346240273106138366612148537248619026812540612263130621958838535486998347841378131815673606872074935024292958431419813009347224585423999473051972727106269023567153840060885145963904261093803777812026339376396082922845722149602715276671215026438400773318714453300272600825561750938504280023373868097452318919669773163762032960919371431286029417252317119492586248480180656956491415361538335442254609298961155972608032907125066821512502943673880525553956703037987352159088918133670582890678946832018112034108071906905607775558387261881831415655325585979908724651024842180678792894552332277895657665240060748607379297461708584715066208093746488919805747616792373169267081448392835300299829269613714985618013868598988970689891015762705340390780780188833269119247440835153590223686295134337524889043518312093177870100450679366894252305165890518335209030438012551362568225140715237857053969327290712420673414636479760139967348256837746267478123797516410229052178893005992096702113475008980670040425832428532550858623745969321120437170544950292106872733607075302269118961668802384872795494886592198930957830296150315281219645030065329656111513328843362096348478447660462025010817864794149420753988334329429987852635192491016193935059285219091137276100708197218643089638398616069549275308210589801614750747227060356581375519863802693158693369795169027648583092769896592239991859540961558580064144352979820761038338471338355325974383081283735804847717434380221982903898744567687173929857228828920322532845445246849260434276097776553357557595625367151992829109185576462805894953558227181995727915275642866416547489890871271709187481351821619106771244105805048958500864065927933460597637226419896780482922375045804995661411855480576640304636868678068803724635291257944978295583810907754839409748922683722338073482345904356170868340253975761995329248111920887778942556580696520423038564630115847837722489583811950367963934879744334816081984837805971279080074494058705257928473263029999951499517725527608169897470821513780342643027617256495232568112123570708812445996199446149527870330597222967264997397904041288313329087643263541139883592167257791256895448599827627067150454032552243095955407331214260677038507098435550553340290913701105023314572093806988303222479031788265537251065027398161926994240924902073492505830664710221008800625944285637712500418704005532546811091925645470530635596494208577164905209662839584713124090302753116857598878023623530649723224097295310672980318684957972371517907494736527585273635610769450407387037658230230863265435194921481155853092342081745272561585948289474976962561541337387926342596078710494960050950344227336938618478625113693505401834893388474933542414680524852491758380518096017849247627151213773749530229955773157955801726705274774018837659927873051318497127565923793536090336567474261525056097233827425535781941137593381714177751253507073234711268605933801446816165873240646256599477604444883394003575630477175766002052172693596470467622866567446342776647750777011276893180321315813625329302228341846719091464817265251605215442030202122617424352726781937733756976744634525016249859675007016580296572484568344893066807074987902181685284675920850251203318973329193277257646180820003971953868895144426611821221990606171707667029719302752315020012554181630393195384608636893484279464109340365068219985742339445374285621533045703340665022493224603732524852121485108143965166968941327209207544763506274926646589935026177865121969015560447370447385030389576495196311592566486282663072028740937532069947057791652531416772959199841871317807671498441667853918940882253161969208251872108747736029698304838875643376260970622042089207090134904621102731305016226350452470046079236936086490305335898445833066867432289200032237581277939663674693496470435542885551345574865884257688190201333897113685631603936119409010923470396344976015221164246847386710032125262510066197082250384070509720787084686250023890354772748913730766171372836653817370288676156929726623790661365270510363391019021320556788411645200140168937365959779925929781967400184765233300372566990139148048682438539366800196045125925744878982666259421460049521650478236047515938893379042599806730691339599429131739077095643956000458523741090942644508150470211079368270940511434384073618508398885029153142578816776514633813038606860861780600245945767836400515067124302327150195423418560009441183402107393400490744350938146399840211569250054205251447463779686799294579927592190641553329844756121968162425065233345169624514057621912881965892347559557978640190169549873750881002866978024933294526971925799512776800669211773222897488627332742885845459325302970642771201629658330008254027548986412380026995187917940367402326148603364878288656646040359833843548870620186203383967305061162007983487525147907232995898070979113336235904005238817643742758575709240075693969514730266577420896460439852413090583182946587793406512459416341630034852553083785219598427803963695381132866329107597050053219985090046245096227759588622649766059963865673887977560331283890743768922907804561436231923365940294874945881060832804986521967954278293378400101292324577832971140176015094533599447269994320531568927423911348005003694855977799343271334928838448325892919402891108380976898330730522596074517693742448431909780363165773665721275911952914790034317617946718361156772376824684018358617377679494278373602869153616106085574282178124531746310144844049869460690632104311546718467719558980406464818162288120234410979359039914847395214640469161338537996623039282409750966332221085772455160674189819180935614646663267691316105880303163338320257964971996875078888393185795354348741041943968020803284319238687866794356733098811162942892998642174167153602935068767019029463208095825403420584164856961005303243884145467863171490216295074047056233022773709943509684474170731530349181186247983639886517688335729169814773983429079143795714710710982012942336092956580428081174378960615085116615787566026030531956541378411932021510168271622578093698106369479455338565421741773569082721390467742214131919944283645157851781070457249381067413654512093697985722059841027814106147420376008484956779933000251467087376233227379268080966011858806903983254606587255583642845867679048762854112118622625493756395421018378509622079958323763678272307487048582041858333902080234523904504808125452598100967819001503535882040754106640328773633623701781469532186051516416882862072958070204299086000642572537691203957075423581751619714842002068869552013304276746258990108643074689516086656773801645430668586729045226807495504127206087517416620858666453658696062692160767817664154139934502834139574162296906413757178491236633957288799796811178496473436737993460780897092014812056416204306266057310175835059813539027741240848413168590310944985456162287389037050963318114097867220656400681710281565330352097364594212366060601550523871758042731431831907581872081986842485879726697897507052636908109991874174831483485815897730209585870359048552590431925470998872125682336890381020496665374412784392879890650402969834821929817227057912917154648471027679855118899707525250313673995945446071058597350403013213255511143836814003659060297221505038606351182306247855854885930704985118657676642690994669370143161681403031575593364193840820974231127235881949186186264417611712592403934136967095107965924027704771902630605430744269085889951697466615608642051667953691171905759510169509511306333054402663591740369086756586782782409481319359664646958631729057586721420964335158637565590877426882314535177893634940819273222340240960879846152041620009145355333693439261053642685210846851656441075549929261795407316452620286125541638640931225970707596683317376467560695998241510164145223979141808133545022811202054462850763614441318198266674058045589316489737133293353095302189907744645709869071594167841439308738829697700901528832082411362298606276848766365684962724696953187076956084092677215407308222736858305176974149458340234308494350476331933016778719596493512218674678868406191919997220416316352870779120142793294560600234691338979678405716123584966969579221506118881587550835760378847104187781382991631195203554948740778211062056665686198800471354617885851175072943984858932158669047356840752845336481605096470063633163412625414874116553942702624776838219914363777001345233315096458206129018066600927203703135884314353316915140600984445292596301433671629433894557634999021495625945386048742750857234266674779327406326816187722361109778215032167568326140963412455673951299949521999974289944336807162227019367497544251676997513595699982238475401633556695050529640458130748834856556668249644849184680614185568892458281980783084760557628092008613252642587458087779542237270838876249839957371874189004665059061013009979844163945217433029563206227216812043324060950813567924275650920002405290732728189699483813638563048193166902506743983129926022874211224798704561514298704875881459283193270541703309178938751501906394152712244457228519384594838633866055592060894490786611950476564259532135309113575933504638113994977247321243441992910198468466312295737870946505297293591522768281515999464295822542094685373984646479861971263060457165418867709678399351415671164868748622796924997656030481952376790404885600069097757516060838338916898303491565734167480619227905118723709366541318635603776397396227089377820029556210094338636340157929358801604731004761292946967975284561053537378136230157951319533459470548087250790914047861361060013023108058790494037718521416118253328853113765475457025398387747818507086985211642999399807995710846725077583989672247844172807564374045408107007856451749616901406116259676150808785864712161204134871535836434758746469703828127689969206794036645357743123936933124603541957555879636920458486191943439922640731484125550617855973748752832061946408205278059270180804085811123560051610255151163115544175021983856765375205514103514292875201231388914264421989993877635610064863699796646008088827979835242244777422200687863585126540542903668812855178859280587438020135277603594186096732173882998568137295490997387341797086201129012501558319584079641528975449556204354169182759750915899121357317615554771348145775869749007845398380196394146549478742871791959763700171896515941523412202789576733208232056658042957135095663317971202937865441280665375549616938441618561213415064877694231117978979411686849076046993108921154774673455058454064451054206595499470290383123996337593999551458253932868165066736175089238144925654934170455247027885807586282280117245558255013414352987715022052882326088110997813645513154081151192912515507802906232618095638677326841078249629734683615663784926106381165163536035402218324426936790356068398119627573631028535971183674298744333529287532574302033635657438634101898524967212147377161774832203441091906675293222533631541275891809997309187579566660993776165481989692554062435464331579983861696156562625280123556149115515466811009879855283478890691584210355360836232360049503471276163335438751488932849152342446041450611131956654373754794444285788539560880349491130511565695869850547185601347152029039845653982399763473836086314344972629561639117622345270783608913354658961791630482492182528699180406823610574962091363058469487485789885190218576772425697234150397658335999943827990589409691394411150657235942199542023162571991237925688271375113953650519237472479393914142212935751170855761124008551179394274168814495163217719584850121294662617965426937662584182316414591144145545800228115463135489473836714118011737163800942748901331885533358808800033850952935218012122046210682301269129315219425766830585974997992855171379322759536363622552841720538361389010481619541172643295733929894019961403818256961901686129473040095767076531247388129781477938788367544210200148081671894236248660585262351103485835411327740280369084423799858636402319361753457687852811198586221839767317488380431524763302276812538530927834547767360635545108299074711149949864562064824272533421322279882416827975779136842097418361195516526831690200806949202645817064317716197937819281104650336174054785307770082925908398365552067978344781001589560449116175185299868007432054841149759172769940457387294041866041143436910548527796018446350845640917797297141283671928974898368997186972663055156826443774818839356394082513345478314356874544010766300664239846901471644600999473855137690869315896670037643926781180223187240050696070082545755217315704406079242686037315557269876898563136621791147825634951747912031069611378668430935011381055055139236203456246875254321903607474438334667111792969133624135430357649833842442122458342972462329381063616877482253444152494216532518400295361829009597010483075540982532983771835969851198584826431739159125976473629251084224653712353100379057259416104001942136577216431648052952555298106451791597546172937734675020137519821450072452178103720226590155693230474358989320897923944519055356766680434232898668849295753673351017242687287607503127467166209664028186622026495175262161699628977335511415243528389710032296932300586684668820793547836103735559066677117229903113145322786507912630790106094998047495828695513717303536645892036604122916852330960980169086448704893450040919407663230385910921112280175301557036657420074755766362219053608807782230107622458085869027576422174741230157682237937697583071764124025776564176729017329374832666013861778709451459857667748355193244328906643970429094154820212081416960641433752000610318057222670750312012925534714385747097997296471597674035331161109158326460134360839124506251274797363236463261273883158150122987394169397667027313710647024893466398163279113811879780412759112035203291545462093951942153346961311072681834051775890925118364231225628653656225314008244676256962434480888482704915817383561006052872085051762622512699913444389811148873692822944427618867326740472266218764678617893106368345072943909108648093917862380760606169969513332685395923097509430879893668900216439942678054840555612669110287316340239594834287131046391771875127550139470616164925330658268207224172486339572119405571695834857041344811384258561471535485577777925312332947667101888847737213777359337001894018788293004937122463827194424074105037246376889175585421111247145346833143034744392138629378293812183392799816632894550651233086643243656540196522769490528622000898302376054777127919135659597430948527952906002415038176351912497861054450187640996352762118637557672909731485752998964324628226147769920282559942861117105979678590768837130688969231626805354238300321092366962590115068742469065262215100466166191270226687181466018264265481857529934591121780057996261708293408988655517796763443726424014094772203091598560518887066101490252107173278939770764829328973353642146686539981814778542620350244628767721586318632143181200386321534739991705240646118106883315341266743228477257353165459582696553201466103543460281671691244319938477885215089954956340825599798393766704789854862534719035645390969137268304649342210944684796586997541217776460917419685382966944887110684579196464166639715485651862943208495672643716973889728830408036626090397152098850950990591185502252406286594648014250168186019558424770431981332835063472485006427633546460160703740756137504461953994935192743237067337551717653947432915103594386674605323979084300570028460275362092354469707440116620520391225534485546190927638700835018006033654189154648525951089436366111034721776402666871953402147947525197287121257418422289030343734697199230799371603563609494253385578285567878957152894060946539096113037301447057455456953716612853578007265218416031452445580035466348601841942807975952268400974522105241053117575102720818538622538339771766470839053629590459113680033732031346589937583036081484946518328865036894757962217210188547889374824997632520165494666919934483887451211225493846190595822086475428425611924168228118838668233378806695083936725497664844823665997066712530792894360804460625696289264239373329523789720246147658971494697586121422045459077679373397536916508697543716637239005871985999894084708426821442171562272871562205334809262771941874350130130766309121872497907978682466485131150832893485096569899344061578470409358015105679837516019589494748544084311302352540058971395560881379555572509097803750516207859352533144661394666852056085413199722629533842606503171644608487743439269258867007002343545968879473934990616318933544453152324510719920134858560395808653386160243159666355148831007179905024640458938142976038488981122284720634599123053541763419437011287293102368097077354376944011273861490114789485124996852038113982008960859588194634689036299954025530301700780725241656557846023967015996782332547990037718308885721175522064616720514479071512869599299279963014154472030677314543691575557798459588601000177475897240578353684685453117400081835862277786199472023355350158869475092393282777716396956103858938294902318948538377941938880393564090763067764995004383873378582252807269891235239309455301480384467541678203336368553082642011674186093775378813067705720913092161765290884365659196733571081249581809616693538985137690505377663752373709030957674581178729595445936668431794366517900482519028871994966570486062065584486710958103451397250349738323506015274547263887301025307311165548364626979104209803898723976227623968317236590364508026647697976729340398143349984110813834610769661386343982463871814891948514702919233312703969113754453438055638688738481375807466825349614450774146286139033684702556254515983566184346929465821878808809506189901356316752997012796593949408901296802026084514129217882449379523618920345625926959342288058557484532767665093664649786656035988125095159284849933801617561972391170590420941357776361809737926208863688992624792516812595344985711556141137321428493911770468028178152659429397295416481974971948920077991959783488153046081488856134160289872856604366019838303417449819802411917728869781179963180514287344355253669254907105476263034110750516822906751545808543004916821918044272062508300613504876730052835676383324430891969803437177496151215789844824622285157121881807997584447261829359132401055809973576839196350832395015093047290263107335445830281487531258056025947499422092602677403044888178641215314702934435155031615947667341157447273278950816824941487270186094066343614891213878991617026115387315041306971338072301828085876669522501616494036875346769054409313763392571940557418763446768350888254945595340991516378988568738137962787573245057195266684107851101344245238427031304516974766884234440087871568056151032855441437753692315812846124628448793730325802825921389214453783752527506692063499593357039740167184228481560550762150465132831254474820910645497628886674211051302585476465988949025434459629800493223838516031389263130310428503760513433167892860099488993482399570150424596976218868132642167897004156565215246198604369602748715037381628990564211920814805328778318804937810310360682571609036809219477028926263042147062694932705965599746422152628958887973835444103887914292675134597029237219067240810901563161479021758685190439633047293340416513484476446213921850180805965503169642663305651762007527576777877439223194200869599665387542733080808021157563861944058223216874017318197334719472671603024780244330291156889982904800326126558779914725619213897760202378618765636480505083663106223186939773840282779651244248985853073500468996457579583251333690316303146781870403805731236214820091556066035655458998450938210824770873241117074583226673545928335806796766924394893811507998759045678872013571502686409059523738410907197866349795443590938688279075351156200542339099538471551209746564121414945173742213771334625813311954398571226275699792262690218270239687303797378892060066899235914302124497331312104327462972392356200729286992823809817128336722664801994166105773398957185331848787903403642906189234507660048389739805297673112266802915987314893210965856941544925768084311028462796265632999550634922621034844113407770731026676800966307220682919591536538258535727225976130797513379684792004478399780101549126343890430775384511292688763948023685704415891656734665160034525960719598122026054703852621782130215860213510532110076227652384274636722709169227544544955978804679271010352333332217891533612055937887596408666207694775288038570583101994465366612705490557788701483470254435392832512319000235909900839827662975287016654967439856744998761108295123917010814563289649744110409021047566223136282287861276213396759735374859869758707978233513075655305312519310693922600047275155289200954679760614900100795386169158100172196165705003511414771279189294694012244078454151272370746248708363662592321801796503321436861541265359412050843013250587849646935957446964636928607450606370379798606111479832816586950986005236826651757999746832837528410816419982666419920972428052468969744593690497579454727169645034277552045519215371601643487639056861031868934995955977110352353553356282684567098137936544004061985408427028282777935535945415023044326278390744083238019857036797616657164996795582116011646038101098904461202546959445881285743164757564485579483391978281424800859976421303503138762282577960730448056826166394581868525729053094818507759864067692075635747379228907636511174381099245055110664258502286729149152628544209434587765496460117097909487106395591067583743908555573280654539244804126298249187695159289433582557773578638439354318273222256507447514143025867005585375369283370291179603453416960301840280064370287837728895797679045542274256411546277539966981810340023607119156263065432127768603342534897465548451009392957899782257505004349139596388258199464907235883674912619080320964817440002411496202503227709627763174369145279693122773389353884008751151193473083742904224866288249468959281347259239864989758895527263832907961961510971767018699296749954879406758623860900893562298045080490157247906877646709347085313797603544586423029341393945195725214929821316006586927751124671832422191500645032449581363198021420813428271643135809060874463851345455708114884695107012181102883583345971124211110648746579574847988845801750316334215452914251582273155820317425402940196378471244869331934770773697308839546016103334613466418688259474071997201060544021901677029811187516390228852435708989488996752021545701779705526200731203315453445794522709789857590061585961964210078948101430799496022724362697730081460504938501984164123746366119699586099520101529254150759607943041828993215550954610274970186624769313833915579897982123187529928536626282306720643076791472820841210144348076511184851181882502980250806637958474208588260398164016519963508255226420313306743846833671346747014264579746099137379772734173348235236798728454796691444739529351653673765301654607198714361801818718573948289010597710904525751210146949269022670059372589180226768371000023306498111447961352723769969982173569016529512148887171312737198970355390149562997407893090191917610968251077448268173897607808150484775404400088991111102239871650993921606611631271897681541902240856494512701637687542522795074082651843643260662768678481730985889250574466183651587190402381988134995771208604997861944442163844573016589214769890614647502827149139002764072160893406786522765687858439428258378566476055334585813569125591878654856649107993390302022028464875063933632806069922679944915240205271928441185519714977779927521249818248443785098630724925058138657616592956364780888382134588208893463803077890093595492374534394802617016587519617634128706795608968993324930971530522172285450186539924260535252190566882445225985585809622398440503314894094341365206602630187743537491203668725243270269621732176588303660395877238127526473043666862882756494286912897518323803820275822635680441355744102408770554645460799027355778917575853133150218607157448659078451800504093506907301552137180539513432948150570583118160436303092603789209064938279667486268654279428750969464370736708609395099487449711684606141429204973214540031932361629292936468742388254166767064960179788197387814551837787803090141774312521254963462747358307650489337302263709571904220869987699087350788580597899527839912513379642724197843104956240917534958285669465512548754753229980957481094774206278486692850011407583058163966043763218948236223187687399420328021231670880151313493322818092508268522240467838321558369712219828194998411172458205167760278190543472560353266347456201340564695306171426647023373253185486862344235562362182492567105158567379011841654661465972287678280892620146580998265104261525560965019692193211235227040591870797759093118568053577027516284175361253258561085952326213797998900756770118413120807570714608008309034791932043716150495989085019212070677077663070807594350743058963555289386486685413815315488759639429277111306120792717237031781602455477380998710047073152207344019112767805797395797359116912763784685175765815146504705708463972843153343630729064480897113649843823302309072751335014915219238214897774081017091193024708536953366894973125117894359227827443123154843683074291351984296142139941217856176072333161795428962060039498071480122092009858791203037675123142554561304478208450968385028986388702780130793940511132276916533853242433540958987842075672588714503388677580391024911118549397847400916045021869348000039923402380792266109528326177559574374527347492911455433461376560898828519647479984772987430527489354919443950971126533945349870641052770534022507326379863739577150306301146295868082315720441323075914801904513699886860714637655098236333736854829279192447038831750207839830495410263435349353240396979529510690291578576164984415865406292434623934670316566373787432915059403377910803253260357978549692479269035053659989345695637468761086512590745711046238510259156791311649333379442600246637761306302961172654730252836115961672162849595179332476760457076791393005755778487155219747203150627049333430029511270448315263380481690045928836698382229543674810541103220075210278595363693255009202783548921828259504154761484346980337600944760622744076749949710403781591282968290490649942779247622703807526867070873306552606024730192356058959731099060646106204783052067974895845574016560851986248404814386945281786327337475099508627975586383057441866116067872201056479950955891602736312149594302141599427975530488423269955403528806209836060342951348139708903813502770499080369206889551094616627910362904676694331968689373132911908654627706655994141576062467733774574932955841384846652722660204029759826561253618155376721688282383929270634550964471064162586492164441975697696887993886418724505932419595930467355003947441713333498603890749117773003252033936327337733366087015416024032702067434158995483231157364234147896671972082818561016715617127842963098523105606789164509147557569468346924322158912491245182870135041499227002933310957067223490654730109585362969849843392212710903762646840041677520161424972981488640958196234952417879151838036401704068072617096137628620247302484350497309103103199209013408554593320348448513279361877783945070530107303826164455605836154933581258179279788583472278451142139213239881455112947736140445907766792426777560063972957923070387730081914389270020512959782729527937537604491581708350334345759864839456900473563874574317715916022051129523241127227288776187891802804023716338312906653627015975933885251969337935574210659068004362991143095268465843678599139502923004593408457008808372238727451202898911674661630938469177541826294803984540174729853460720296954000986484622852794510297962942820474653999242759928857354270380323120047121329152945321975422565390385799296494428688892294575815138076937638458902530343508421319981172333900844353758541581691808010313534904563488335202660011595890856750119884840819724289475503287490724620418639454198414048335290137419067717911501596452764673422705151061255004215732402994564141376736142737143725291746521705375952301622877142832949721159340944905130680691806968227499494343807034380794781599134932949995333507111268751628671456950433258397327387547156441777918030799097943288741585497975758499048968021685240397313627358249402757136144568889567912065939776656604993916063364927979797248368446224040998021755693555604407882618150317664167530874222707361726377392482667589260880030866981862806694336484308887150031782025011676435674801754194212712559630816922322359604346790643384885808976613885883839675683359384893018867285245141022137218669646193258640994888069171059503558837737297379738533892563217334932723305962364007907284434214640560543384199438496548951960127848703872914839476745131341205060602274087286495197546793276186460163125365664802575894144891491727708956155242709597777194327896995637829574067073403016946701142868022666826872906389273887993583966475164255348649185038699624695308715408891768862912711793862265045188079582549476017208772212325153703667502368319234144823894490333126278349402549684678941179290313202559316748989868571196918029633702169646259789213145801243929039045241981681956843089068723868496433365924483663145916664844174832711934549286683060456898315111007538254386380717250327194190631735156384908382066305470457008505108051515541335520395829052836062925631324790620866955468340117400925784085334476219450137498199845715460700935082529637749488272440234797616991992862830512380245365739789243233950393545050238799651756529808362992607383898152877417298924890625782891566205358746121822862141480584558589185585285276950505427956394494273777963698859841707989570844178137945258517630290574882640894205104082128527288884487384414117716025352291028991360070759698257421577219539668060327964755436260959226526608472440733329996161107298989447480578352475503469987783416064394917382583777744372749744351615235868758698323571771019505990484137935048768843946083467439285977628195753836476155930634342551781581810193142560093074106349489584343369764453311938928666504775556185540825479865922174795355443280179515997147093443165998430297070098379240669490839602559802658031292521214572872252798536562830045147873941519751819741019148323444011403860745109369553329560970483145406013647157708345425139943883433877164602589661605514563820011805802002723105707413700259853541809566794980083638745417413406560127645179879820119085378459623118268413492210304726463993926149702141668044927015161662412309605716915362031717584354783509821333204458891022417220377054093388575098151669667739685423131430812013637364581096431243027750699761942037140670386607886632362309595718696121144785660172631971770554886797588220333447078971804404664941199788088007902009728563584933181866770979478477857320288563574123988506101264901658577152975412839488512549209778469033337585039486601757486426989185160248460294912523259235379442196910474671110003829209186271390957080868964136096308517142736403248641072375771864838100621035752541539944556713931921152942299228876734624314150998092519657333089566767465972540591264179593681629876152324653277645719247239624577554691632948770870427839831021713165988834090246214672675620718917899296949818654627373270545124674772528924965397208120665542563336777704393485366258050621810692149958109266799390641648120376989393902216500344301935305636409901883429561942389996885031620182864319941340931620871413209476988617183120566320355034817721470417348347172496537814457803425767206998791178523269232470768412343972737816057922343288717956153102309791538549677510564247491958867726308312318189514747890286471510993759189513738903878675395772221323551221585796861969772174365082554470969398469008292597926075859361658735710071899581059041150570688075151652859250451804151628636889941956115919132009208365065782305137609683396703035853359235306180808577719007807876974183818185926382160464893778672206068568715168460188653927289656111539259373601031312403936242958864032905766415299591078646578372563100384622364501571513892714839640795247369948257321688703962182549860442663321539637986498215922700411474242690731006426006571932886505017681169721822013915426127815897458964428254044681133501459418224134859233916067191849430820657043275181617634116412250396020098331062974897338089836908503975072938528671083961509422858088187390673350751248730903705550721867289327197963861544844952623044196566952987944107192403237887069098447898458545124464726003654287944884631066886066233635734534111514689318363158253618172539992213058990007775720699864609982947910551487161889490403970576967067800520857326347562992370793132933918864928009615237385129456184021839922534097714844629760351632083867714217317140540447932854500294159898604841812784729380949603636916611145012678189847034032477534117366346020635295344783871018592987313229446417400221366121509959913594667699471701887163363133825166142790980892811395385176299861374081149842139953848550403610243304807134856570980610443316126447435515594762238543436741963927664402383299686107701932533489132066018948867638840277228388296355373115074309747849933070354125556700579136422820733903654847027663557825820873428957331835774018628386815492115902263973450497489321885875468890461835119992498969311723465491827728727350601737647229669770682984392011065073508164682829578599056052617186489071261374356433370640295458351719082057589508673603477498017317544822552098548922775192066387936437402179007122875891249729712822661436016597218842281283774870624511344480035039451873704970468394239785190858377116066476200431405955398237797228471171616600742421856640065218052847825371818528681518114560676460134048842239091077891602093619810309890784181782261354264416923523436142585862022191393385664636218168802344108085476597259769263231359382188555944168894817933026118211313084339834015189944009161665700868680553420738890713610394283523795098844779263106713621555904348260848914791176067177961576440005885729631879847393953963590948714375432243418547053198163148460494767798027233589655827016915938870718094513255898571164777685563276341237099778672245024116576654951031346232135505790990434906593444815285582566591334018476306658727353504852433616469850702113763928316034763848228207329349703650125755263160323631542482149347745482259467886021935492854604260507881988404175874662228147532852531024366309989996139865523082084022057787816899379718590314912482536116452636229775982961517778211479221144766607737538666775525380595955750550337008708273672659016503998503280690210927770433966240878816157537000755740007897615154203482363915549072004663502173146391832119007093467936196905592244467387812484775782460098119147871462683740284801003782556722956558563862417223484448197614002869494341918631331704661124938217086460407767739202766247825000087675200575619531149687234980922838269457652436824702858112196597917970631250776753594727292049558257898892047640136460626269023281633074980165188146875954763452449864054616525497870583599364124224124463407177715807962159814936880192125431417720047777222613851666292311128202321640071349914904483247729451516060980743455882179212229377923729863030040802459442919411642021082602379396916206187305130285509285063397330697926438798686651183145323864130624881961558309446448317036790839497563205269260095043898920913324587201270000987268322098720428061140209693268167738876384896313500300503298757094221035253505335101013256976556459663776507614790174527336586069674940376588733539056747347007989136106594297573932610069294219434229341673741223785438060087425195576873862384470112644821158545057812350536614803012809777494906587108185079245325639553213448162429990760307851819933157692355002497078052689540570700727505578066628264253512403913895406212842150724268935542501518984343339899436833615098515787244659429753744472278208109375002704716887216876157285136029343797501900278478385955259621896749917802148126941694557704640237509045916847754065365146888708864963918409678439149942513564823861074233444195499992165287964095572474750329775599827956821879886493316333124156298605966240534684512757079951598631703283052036388037684488778926063987265811539484559720617868668445913795462751625790431171625190840004272033147533440170026840243255234460430784337871983842585048309999522999830179520371073041570620044012080466096845204658058402297356016503808772983335959808724687127212859043454677716710617612717657964267060454612410334611041769853493992741406642529700354433957530389855959147413880766750970634027955564125618565729905226756165676711483504219727319242528871937767525101066192834712651113793110922714830152360707524316802705162007819488208155524491334766756184854388920254583817890295319318114697762551742880789238882684413279260135315137465275846355906069588948285362732250787174995535682745122455396799113912594604888368989049011699881003361734007949804326364289158589434954413291198037795321306250548748270704603312576403157860207417000141376245446847974167800182836828065486594169318565334667792076138459285149089040983469757414603995015864464084648193385027087432821156369170937300731785714704394606513996846676475390591984816894723891723449450796922762318064728160593763359353961623880869073259102608474801052388369831708552997326714554616460609499624286569145609950918640217520596240926130675931020121168691023979681417936454615799488269871564525113174736495189310245909296604656034253837979939359937957636845848494204125448640400457360987486601084373756795626730021176540582547776614851086190621117500633392855435390961988080542871570711223753825624770376574939386877220090037972727811857771132344441925408002803837365547696535262850796038071961595030849368910717951558802962340740078360186771323843931676053475511198494114785408721402787117592997775443221427791337431420725420185960025059451174227784045594796872336574526398173838809811014864857777834604080312301334336389075638881477374511300989595820255867605572271793965043288936532686220487509234867384476395143467730065559685434788300427402434629699242173760084170064682873679599433473371190352439083757175367681815194489032411559822503899626598977015790454331892906057310505101327978447432211551554601961897700945144682235605565756868242952924993647077311761770358132595177592035843253525949985096703367455924189855018296866233308193491073584918309122164026253748868053770783825988273967377242914614095993533542493960466708248876860948701541505110448087849214971788408580167081726938742956323039813902689324442663026740393711251221320042542127658444198467581818177129097992581655314002866169607275529813525751433317809956043618825098877804621393406069141554300217132642103158976017120479756751966018596591446297199025342761654622719167679869806628632728987208870173174151859710814541021439736225405981532760851953559824592549864383025931142151044898928154585292799666333285030513671315718851053449036367264991058884216758055126995724800876789732900817360765448369129746739415997202865918272082732395708884993550616742341342274223601941696759127063511761103573645223350139107755983310591315629997095130422250115281356638858275843520902725136490301457509928278104224120977069148178267824294010198496583253307792271510283658983729889741737891323143822919849462053117983623095402305555386449816077105346293208398709746119112728645248720756877322062160971320734797176697526958659349158107948936707212681073518478352071912763034233488135101161584442057458190928353854111441853762306460079842997848965717860705832392739856623154056411862003541310620358005717637964269462971093768125184079978044877359385201029765100919387933995495323546070340520649195518323238878901494676271645194080139607042050500081313408559480407504360093753750629650220041671420550643788706788731030363477381288263761288527518121589184415693073006371532345912223115908361738224562045036885086709771004797520754645148279425680071957197504931885116627479387728561466356495576444351667495258562209955458278617266650335013549001597899658150509200002818810219968231849915022096719449825545417386579003103843801144245211281817086680747784057816382029541798277748986629640497772243323022684946915201149049532799952113460706522225193137476615031203373459360611294622793747668388065227054498388621096928817816161695192338165233417356947954756683443830131864987636948067548330828038285365503081757616729417221261757008055690243869760315973945524249055825582615923699963770485626639130235051774839675486273520546027655422804042031738954968819007823360337799920731768405374179671050706600866050931177917763676787663793023725055254230511066364332136016028271164736773709386159646770181044344052543841773757223903042800193873869056970671819439113770265888768312092217259350842960812506640240262895700251949680618072983024119481003030040964301263868506399293421730847973043216387746830021090608535389518196654221130975455902053669507600999884935138791156399180455547993728771503078988016066341132863861802090219562603467325618875063631187845870181041462737067306223357478090685236591574558648271104298737241768731321264252885019425865133163620331185507328824910706392964880550070217977989665188780950439353256045451361304720377376194228239019938346061002667169914343956243433833014343857466774331037609536711689784137496863508279616660637161542853333639924377966367385451975420950485171102110337903186778433056945238938393683937708434741030049701090460319217097834752838835440641605937848522282816599778085973193127455885443217217057379742938726004709968952151427019826168594251647466089995653450666006472206146897935392175824320134798742268089995530112951496865631780477766067110079580128508092143076052288705443487458686859105944156836240748102861097793993935501377557170254703601049551038949765463220021050771711194163189274221861369408749924904611257102193431199420692226172448133158920765833540504862558752946057435482280809116011454858833348935086556255165968306416020586938368414630445203706855655614495913700281235121809026271787040948444066136668077682175773242283954551886185639055664023125980704390650940439895926671718733035919489793947161076755068387509100476118663800329379523161435795632984547549349595470126212064627483671145456811320770118683224606657860085597451012475685947069912441340217452068225183656999284592926720912242943617057848197491856054186455059011005639920726041274404360813233694173266799624131155637482291752641619683319634140528986376744409284565498315966864691392991296580497916219834219623072408130128071371465095202059971278985887321890618340572480241458589263409093732712467702589948463508988458915738512476533682694419617331301105689828730273526848108674337732988680561687916039420957278900121684152806165263881003529053047152183139511801739667862641428341184667491726493329952559285848556267618096831521961878162875631537887872630084857280285074119245673184583033898719973387260259277282537622574677492183612122901971060587963365554150591686654184670763770599941587556026339529090210758481540203413787596605480232339029810531241850730864468209948328894758061310802053545700766266319127297219490662475029011976000507465973507798043080525705145702242783724862910600717788327783417901899694078763355434462243311901569728019544758693794353143225158744323065019399101746758663875656900164512058996797870275134250332951538908402950715020869556911885681414723700727015639408186332982812361692098235580961333550160750603295765192767015287219203816335919883717099312085507921220664783587371211553890656138550559616625024179126266490291084605910492592782161917324208391561219232212668647060324300720579800695297274585249793132905546357284019899471477969439924780902116647912185575453977326420980812801238149033236539324583437243011444552195910387388145577075369186018390825865782781178864239970128727667600947193328726423383336913269933507036670730798154322050708786358792315499574803484327220765576062242143587333192283173760331820151617745832744086455272697490442296272768203554231424099581422009775475712436830043581002761358396155900150213131306179087604333515239853270434094162195403876137062578565018086582600298090346691323191795108752487530852439000097272555260222516035103715217877144258122431716656645113716677784381067922011294717210888740639044412991874360816263116720020772508595499154298797234591639896666224200870672863840442928990095166632756060989400735871565031775991630672921906624070090944254030136798304671353368245534919459385452438242231087224489845288008102894784975157089293736464398222690411678944677913641853508661846962519211667967238644013527681210730743592218584110992869287957684641106232313806567428171129331396831716252920497348322745507984574681135610099758462744010392110413734760562797928817699038207363946987446082682560625701945046319710431568449538084358358522912522920018795693928923274682788953421853051959422376156141523403359910512110278738131082678262288099153935655928949215806358828170978290938364597460910263380101769344650583768243188420343875135668285044161611967689270351051315267127663399736538852669088441140840310177772531024385629763979048547803716092748028015772359940210640079097632713796494644403991687209909013322185052343749875026853350822952351151679418725531786191015832939457757380586523272061540493425143245993018856687372701768580344975774406854512159405445604001321546405638346268154146779558247321862357275000846850744740217799487977124544604058057760030766403731214852215823306536615115979759883693026677611985028434337193672078719701380647842570032064948386271723900215445225775520775435055331902698430765300814251800989114866356676688786617268043567102723019951558171193811305328218402951374630328249922774151507773786786064326080272478043623306192358017807917946600445215160267217631987370042834446682039496353782699022440087535753229761454170691332287574182090832899486772285338964472038477548636177693021454547815533985996768555670745372379216824399911694844764287878673288863655113404190453577541375759118593764079046295516148457881208457306853847022053215528969717798090803861919217550819165473188494052092601681889801660656330647416796303320224382848719806783530534090647556578960887179428066772872157372852469117861410201084051792018224561309110262796137282326301851462517913770187684104593860826424567359794165040614902188955829083908860004868708942891619434275986099362954632857121283926966807396628880373538472389228559940493422848046415846130777184179194280331439179583214539873156076526494589681184862077863962364680536034418095498359821385289870090140085026225495161227958471979190092494382390482522495878735401921057867596398166794238664714668711955077479189937623673707947201492054044513868073663268998066666532195083226435771252065452432073009982592922582857339880751148250269562266943858027676587659072828787613041707606525925968225107878985394092812450067388899690818354071350764723997998531699411944404958845172821867786158539491427740860147286381089410002996986674693094315535847882921266081236856388730512156604926115185482497326187555870910492247683469957314287853595455655252499883972635203603026622729874579247484230002395563295069310581858650489220259643174915750530381001484859104489151550605644075946192105645279027268545398983359294073025987441338173906063224003014218745973313266951288907108581408618366754167301238620267620846721259372887458249531312405858237130926221040634975029767839581283544186492019171246913470623149680096946137571551641557809813023751071255441829510757759118825399077499813733890725509821035135514659923764100901313620922006239885828670499884083617689635558600591358261224732806781913377681765409737422919072284007482034065906630620287036894560815196677410417791621374375077267941736590131844392978758551231989151627403047787016735379653030621551487212834464615057326825352844638747952695341816450875339566312858180614726853004852826546237466680530693371695889133033414017633115262301422748255218847250999276145300733017459807505343963367112348333979854201854593726458128323876364953821252992203141829595194658781636319546272964361823152816962261762641431180526366275303065607056435870029164288439145364541035473530285194996336470442360987260392476570519802434336533930756839860790035143343901100539127860564698605534439211264877961473179350436198272203358461180943266308286601743184100724934122441088889531612219465908026421476804432472455244757825727079750870268633299221887874338246051616195984954735594219722791323460029995970638436496968289886324355038891183986791079080628856271162384644435962943113629779285064703559125780675450202302067854507879713456301641092017599961262676628180213309935585428013146049522460393248222343565963978698528295378258031087374194498779433137696513064353859866600080894494256835961332262637341932262241929068527005304072109698998115295520545798687817044684369988986138275465278038789416488858676612393784304705541793480205825496674738060605385993827971517212817005480557067691950753848316754783354491455201270860438319289555755765791005025084179717049821655461985153364104741062019726945442009628965775355935454154666573327560702241552947999581748086960814196773109602378524835210947024930446465024009300844010388992159793703502465816897920036992247963585299429930661527437279173986318380623643686126915809521659700901222405204578875210786597851563852147454978950423671643164103374674167690345694596312479262117892900128042866144134772604754277356295215917617247393768203379622691427818976032927350599492764308136745466277788600983997734858439043927293269897826960823998445303002293721784725749313196849035165022956428256636110023353915952603521697402392168151758971992394888900005120606650370949612813692910613281169042276230497245437244887603585160755307385480372087938222350362659377838294318826812470460930830360226113322505496650709514478817769000707909159400394584246047245596134714720370368942421694533854573010901478650673160300920506137317586540116276481521818788272505880693079910540251401993229843147234999779902667865525064836052664145702069262664235289939841070377077165005028496602833860117754422783784412523294755479670924102460927061377746083877732936263312260047322277161860377005662145467472160507780921063146297502452126014757365384985951922241307059413088838831226282841429958473668994506372976572605229371335724216879757856007812349176878853578987011798010265782334152113084208188802217252165532905528515757817202694652773894911068573946983901314203516253302075831489702307709555914863684286836026137837013209893162896252735248739935395211949243163230782613941168568403837072076255819034158762069517199552793165154128407898023812814015677097311250120540575881228582369382319390703327262354036494493861699221262399779172413729971815153299945439935073729757396767425368710396045381172057429570057193182690120677358476226540950235973405961542180702279266188606989515025137186931473306275230112924767899417653730605737700212658304892981763729034246414881832626630221040377830016924144879749784324985388492057731027126126450696935709520677096188478277411347799083774986351347599074446348331775293972761989827497677826714436197950403705357932526392891727140055388590990329233885993574360635649126794364078798782847921502030495337915027757391102491093893345814292028115404141913274924399268824274085488196912067956846268640853515807816374324237015563569104536360097727789521729861447923207846471392989481044690040836682068147087756668157170899736072854909729740512069715904320661386657346534585651857343064547399276178076445577942074664835738212666354816264406905404793547262435471011207154439580490228035273443312988695365407092841074768235322921209986753677662763878890648626364678010193118728599512711194680808357540922375614202641855781825675520177752112684301147444357678651378891541575986834677329076398156638087529316782460607849472475921358570628085885677804068470363328281354285265644368516280897117412807065226752235232808202372142082735106098150672415822987840292394180989256845948669772647122166528813203769703890043871220399794933217943196099338905999220893621317409535156333615340545613435627250385479119847076578793015694779425301986917461602758631880018118331658930181598184663579182283231154723320511493261835298720249370809204674128971955844371677853295249595699636200753109725006653080402016664865931911404725921152557349563557506579543958954461040780533426933953001260859097148666684560228384363195942289996941967515723515725553868494486748583416795843480484206497222535474994277302829310933227969070906709019324226780457641643170228475653448704542193943965574661856306814276413522445268636576926258729354908517719702486775889080661807196967935319852529782714759345715312956616232034768977311262524612675710505788457206446265497894576078718232916973135966555528714677933268902784843126400801654027412358330181858817311420312532725798598202048990581036834161025472453311154653572361180320348933814330559467996435955315339346789476744952612229243271638299809604039227430399316658258676860757254164157519061451328111512319976603299926057497907689869417983098989959883989775654858768590631157278566044611426479489900050372564437273711297039692225488290126978030778125081339576144669997791291939959859953666678564775858261308911503416912054214572856324821077215676154033606999894594045727817437819306855554744562436167267010002286124024880293302130935119459337523635074570776986379238237481545915071137537874496394825507283733250785622832290490029760212733807201474097760772689437264119495190735105655245748303633660530065124331179588236601383599994334540527511623157200713960873367298179932724423007906470618489171894382605187652130408506359790426456701857789564655829959627759246537030275228328262433608453949725743250067528336832566570468166597629826695852327894209473185686080415271212058167790925879701731378390310283595775413673018087562456241915070618748714635121122853343793357795601252051600386189806882806855046224892470196422122379758945310105067953730075509788421015147788239410269456916804220028968455922015348873339849271151212324832784566379378207703271759911630875926026341385894666953704819669549433580529668700238425070720961775009258987526409369289189566946462373234953172660265804484549073267587194345528336351491243927340934722293952899665082870355859689353458467287812881907669175478204998221208321763899908372535154491206705157818702894604075789755317043742650335215372104070673525752881329305872695005231635866198724749633751005841220619255552947927174004961819586880424022760371366508157436411324005049969563793593161692999398896757591071431571011887960376969507155807616941415959053197026431539078343796400571128224169236274622633287433523636904860920377269256877071621365569612070101513558110516948579843580900723273110077145098280704037157856821697903652604331802610357588502231439187120443686570378313079289385354145542484715774065430238647391331672781433416815354907498674103936193250380675572126885335225597726398557170027317978639547236063869662313334950448926240565728327494055961542383324565119036866167181482878297765582950277128875109799253755613357000120497300696453434946915874947967920456476044404445316431823074907592026451807073126968645485001432938837451352862782889221323513388026584778879532939691180643045511642959886345826565090866345821840950714066558216747797139821617159191112392380005808502959493200953204893808187806032886333525607296177186829693233726568635500477701893614330899015218601539784985650591561987685910187954167020095528006399683148916155183763067198333877152047517151455757459598545772714895804895847617728519300563216437338719840890803738957275177093523685272268441887931698329300787796521776666384351467225671206286726900906260507180398185536176080083329488168250010456477562625568981834568598639844829057143539631977873221262635240859909042936317917620152423612166355070128349494131338189684882613180141866429764869041341619265768467115769368276977452729886565926534731643471692525398493857597936975988631267457502860900044696996460562312808449230285459817046537697093945823245872142549159790684893801381260960429280189997855222041612758250136308928539578442418818423178610787562922130914431379553771828847754356615698658355985152064413966186183467042107815511940333410313709237485154511635899998637600416125647568179476469011504531580288866118192937464816420360344644455567171808856208953131801511520745956371646394834258208840495255206314297481546992962801541177248937747143452044907661653957351772615360233510243407383825079207881494935003545724507326896577281841556168962961758880169893095023692690698957635208634633086997907601180856459518352650091774532847661257988658604566709355687954706789173755535686744337188264138573117947510733985296816144546313157287881752824595313247222605542395246795033793213905650719886697506200180427798421157959222923277186985908720042566355953721411426485943919423542843507516080630285624353067877910424158970714611003310111286367412408480063150230398898548989630059059465867453566244780927611728542446965643768965991361109406791460408585971992522002094921112483694697433088371605991117861506390909654742322820027724800765998255075530131729907627397396955170290640343154148843853280981400585217408403523861408150457152149037139841396844974491614414924231543159658325446258256963479958872160023017162138497636344103909713227410410191213604432139873946882852981650222032717235997085842315184057118636967710125080224369925921722750923776822107032925894681109690163843029531145614542979692350759605397980229941609122572688095542622680612191446750311386370196347945411224960828734689897961951372909991450613155749733113838086697603762912210487137345028903169031026763137631329809576140450341850142189775102008496465753020566890977129392982141147782366563251493289976446883619375654327149962430170327331392088978876411561777894699503565474342695724516784118629679908117015486887338667773138355899103921484709641517580467516515302077826591334139597111959676909628375415519499780254448016550634957408877913229564340174724382252620173494792020008351724833326128638288840083136033473630116681079202537958434130687271212464961681592522022284102922652429997525795669984412810729152405137078546044727799182393229849741848111718081261079237084391580052661902883007800959681603512184927670255284915797976265708739354017330944015237251999899459249218482948311366791092075627986350467494219028613681790626824834731045081151402581743241329320942099546383766649254167167664872300443502266724604619796659306034392420499139731445941828023245042722727599479171490526121946355449753250427977923191054424315815210449775501921804333043580309165482902756424200445763853295001124326147221724386527979905283261324509022450589053302921790839324761018197932459824942578372008847813578158020611865138434534862044657603653771755526225111532444424517179367068890505979693581273719139954320006090198644231822790831703129633877998851986460254210279747500935669221670601521914925370306905192637538169644052064534906957773814306501757113802355982478067482714855323457067837847209774072342531264575393011576008165400196951247547404231968942363055843929117358325145393812275625309286154678360856006267810436736109742108970283680041087959078216266630145083216803834056064519480731376225089920228606694992046633761236106811978357336294313812224442244648851073085583381551265805658856508869835464554333841605337923600046609720063549442163074204660583993715845248362269824952568213446870465613214866658906052000232083569586510204315161720445909073286559175037424013584103071381135215920814904623687312944562167511603492267551775267615712715142385400766304336655414264025021332515204822911423392293184653765212409970129638435199027016390282126101430882501636391562103324276890344683878255355635610411452638610335176454545417393982033868413013264608540333163874016305443252495226784972533226207504591821309291416123685609879662669038479910471890588925454734430155935133899514323678922227084894480864313734211804850000353637452388782057451032514381877105927142324760172694847145599136928417712094420721152125702476401854188042274529163065619131078897454564781180077520104568793162763257890604043284188431232008630321536744916741531960601114667619904691142237331905879939178501251003819441158225565707958220475219106523901914425257523420464098080652310929174237393546373164375985374332020463696275658226157535604507437379119513860414987326578483173071897846610105533158189148959774993689352064533286039592718341838908311651968105052363759482192777654700313818420871115328128055455071215859606413710005646375499073025808899100769102077835035107602783637059572490139664486622345626607693270685116738798426667987532958753873924092709718915939265299903252214858968221328614222884624920098255511209419233034698416491411956507709753602648260672636282580775077463821327509496593964790344444275000254742071680126587490255645862675538955050279941796919961581248257168336654888176773953887496665793796981145983620137950688562601129163426266715247346958618016725370623926062253404308729024003935065035009288429400775761945590821572151402885418741570214987034868647705792802583678152234652575575638363307109193637766122565536199467358243397738644927231885038044247366431940808146146618343062985335841889697715613877272446721478817270561471406843768795925672180607371858950880400736340980117236374939391556906391017774375814722724524881776373568930502412892868905289844908143569759519681438402363347225559577567213065747853123525753926165328319404360807822742461007308647133439135513288970817197695683570355789487350646458526970734566459283792642405790151830012901026014401229349592932433856097766080023353602616765437633146800207156973598286695374487329201491263601943231856566290683631956482356778484426185682120694069652103933570362102814059785526355143200603786253865277820718699645841836793462563820342309855194225246527305270434409418334515697786875870108852178750174275502232172998056824020810734073550164031972851872522959360369613212645803837875148171463678871741289929876288616860021928207377913958004185049932118345574494889085557597512172298715816349811879500450184974372105062723414583167557529795408112808231920435056138454568811165442519375629934040077420817056680534968217236514832413921262999373971611141970164745760090644045723749996831495278673198344101193280891640861453176271565984807229930456579480470148910858738965862788020041617211138542700256928102783632542122020832710606360075811680808489684461092811489929812198191926269172987080707372794050166365879198086378240914611891199624719379750360142721050256381461788292907375022750205028861804083184444182437783838979499859145470700384522569393308068569208686880985021601066426346687575801770062947470345031504718581077152880002583752649171206950050383834790771019785100923850645082713182566215182967733914968671503015923160612963942181517560302605963110533229414427163358826001844177387423919868517872439780796166620291206232771602771929445052135525883100013757361290537152417965188252197722701583733481597603439746096179264835167480704261954535883560153383400443857587965981765073575467170815015642983706603892908430531976868355203360229332296249331596153245141764611572247206743673210945415761535652094546271922092471306120843444340043189422103130112300242130360932135284172935516158976124892806451591497169245578059949847034285538091177917400918127409084916166288195382077425724736171293723912058177167539464713652452071861389823006499572654103119961294146638768946501179869882365204244373189675120118674000771071754600213643233972796579011680162078801944242032265872784655041599492384928682534837028067012396265651676810306084843213324040370000757401195487984331224200817598254765993011906148241650332896312712764131096211189994385311443788150124269514718973217859819098803044730546341802256932463601636007251636187403840327167361891290507926300808644771003721614186872585146237283006238040947168461751881355253047721941339179560843112499987809979212202749583533527971242518761180403034136342539292786631509154859017966308057662266777955317313680730679868970638767480749650679944025737482728184638728689336793997110574659662786984828637175942239833420636747605645401093089605043279547631577830437789149607210525101043629603487106697439308140906935892210884099720479433561691142154844583401833221860805040114331054651014449402966590718658051827135138938949687813714136826117138461641905194643189333327090850674504203133940201021432816724773183929284799144737741438228836223013879707356664849560219243187517546778064389973926792002137623448644716598599188811353738795001398930167526863669228716591254465497964588897746217007736098145950404609353994462842067222028237944930989922804168189021648982694115622878306038028055796287326643032505217651274736047119761202482162514373569198316512475198500664887763291862148861311023975974365273436831331905285118789794740091141094770398725171777782117860478670467825863325742805076549299327413162019719049197920384626455277401391919141975732634969583635156323374095267218324462544888135256408661920949120965113632951460883953593676079080545469323287034059194651458138820592756050550320906464027982952595387403966110015388564669144940316795191816919024304296514038580919205197707966146043560553196206381865295321233119170896829049656124577917424362327567874042460924648646604031206984114093167056369236423452458872209332381104557981548571437696450033562763176991175694727361261426859821904281165982704445532368645506391877654653926320716375325495658635449027466531594453367133704618629853609349811618359869981687466250510160398907845696080777629206409197953274863813922442036452416434595629979899485501091674882197271331028825584013115371733523294404783962169145443240587253896962091001392758186408797279269283393815878616250679398410134523729097984054502488922857800369869148528865273227934230287469830667130500439118746042652144820414876973152859260020061184336243957159189992822021942029596941425485079410000881104017294112024938562176946053363674423473581440206190926524994755968456891352590137197545391884948297357070828438509022921349899020637784947710625053305303744674954275121361394491577631368494827602376864367756282270957065240784500282723031568743670410748019000666473360118371080025942594618242639087773892073984210732576461572194419793220614874195936805589127061525313253487342100170063709105281662829025741846496469301342206963551280550963785980670014766577745895590283689863592867365578764775476966736975028714580261944223279905726775381216033939451671397175677052182926292342259929996825507845137789889008963134388957107749648270045436142527478191091276560927694555868652161974743186537788199756956271953436056652955810960542804147037744941836529372710451868253885641120836640425057481560937557673322523726960479888641757152359250847273276078711783847926960210267131115080965923832622743654745263656166539500209860126891115187702051354154501471174926694069218312195656070055524586045035502736045615321128930795739083079680167825341282087470881422675513542321282686915149694201079202457413542150515594420048776029448988218956944739069499851687836978011148876553366735154414214659836087168220129921910185677133086124800708096618072651069441197905162953005856992907441024310735557176757715481277525049074929043656173399262898136358010144601715920652504607907217561934959253330741424628645178749753263387888188807789586297967413850858935255562441327675723828160500188787154332976954131251937041378117875115288451792733109941836781753152975430900970365157041260092863671945861262230179647427522965874293063789635364040728276472193349591458744858611372280795139653308840006123555183660898980268453713584638409723308546271960172590352876308849470501774213601919983457048230449733423093918893599111053503961518995953984453505559820717660614794905171790753214130888708578509287556464573183198358745633732390682033551140903642680468319561275285430479212933708068482390748920238264598709948074515913300710286793592052906137071860038952917223267844800442457205057070876986001255820425962354034697095580006854677199602512820669559105093129248586016246571175830002147532940172484472487086877202712764207422833479174097125565527975201361211013174891431887232102873293027911192906879704457200104897797372997784238216695817297753326166136372449663840775453983430039157136493912910544961056799307739970791048831866164779612603558744142746981209950230799039180570829574384769198541961192047588334756519831450042951859311633552749144897743931281932981845204629746588188817212739139535393263944885133118022445106288688928779234537533605131430200288170422530280165672536298209414797609748071289186381648069283228463334801016834327818807783167248299981235701373379000257679435324127104875365304729661055625631655866424661134787318387057185845376308410573498028500940010463451177301622549617925664026119458276460973002630119272470528163748096786842968513599818006451865824755115064085941960324180468001956323686143828042542392461716487198946297043960222480555977091802345822257023598591080099964938062948445006312341878823177808005750246317897967448797693167577081737305719041898310004976577217547641862974420218154846468479284215251333874717342750205644612971509581676423393381722074171873253429188512657059639450972512126119558737564907807385110087667320187223789542240226144176495394558627455554277764682565783949590892073611036791181070950385137970481906254047517436793851177713031675867669410035904538625470147730284766164716401052176449581849669901122686637658665010016743971039372032221396636613124860446347385012045968120808380406417713511742102627955021189488415775026553752432491043856528785935780884645067665495556338081413123811595523776145630490206902775805042855365405764053945755185707607444015689254696506240011861509949271767952446623139683749261048407927462932905468418090343979226399335491585201394470574459487878828253037785618294747727749011117800268441912263615839463530323068341818945479542473109165145729014634461135544694701234245398792245911429879482372585649295011640504887192254784116818345237394727649810657521085708409386539914442884197861597199274269116546029976515838925320940309568573456955823385190991012541445248547280746992770471029877916557306899881858901208977371935049580805001014054305789100451637339428061983470194988683248263224473346003402850294586501955787007457415925982839752865864574932353195962202804113516814670365701408544851494651898131488554361142425743435150876433420729675775722444446535100321114946641605380289810211888653945546281712317589172923873478483428822453726691740990407637475655800525276682181227136470909831605310345785013882388398982256371448173372322011580115451713999115234368911665812355983374952595164386921484129706213166174913880363149936193641043609610660744984156614636220852233512938004568589969950465689213236636513547116143060782693123013992009410105207715800000711889925438138691457307971259614415629888239438494868116875174799840050063585811106307526521169014274475044241852906201420463905919969139017093410267469829388630238774234309629690781058077087676829786630410945186417527148452364697466998896110003509845303549634996681901168924752128010545286182169811143999079518674266282438137503249301030371408115190608949440969493507415145025840196968795571190472669186366712352494852770829002260764608685993995008180004447664494519495956875979752168396035168697293668060792830477874107302237786393005770897767240233154944059539914361168968589760274758858643460071339992160698271502041725920031564810416835459266526187347352652031905471496189200017910567356787349586996954754123543838809580803473478886991017193757858312751284799520859853909262774451201069917059444987491446385537963571816329289731077357828026975505197509327511049083237870216646729211764035993748394262533062898321360128909322545716612064991939181060629641267286837285365255792042599147430591404320477134729647567012298889222353868111133353132311675152208507898077599621681828589376690024197821894800386806434725638022946980617394005253230770310627121689534599861572633732252524832374432178908955383796858402775991329525314704887456438970601780454534665074663175404760685564002377091672937574098677212494593673813600011495052293180261116866117999531782336674980066242511216171579303678012367977792238039644759447651299264587992445405968832949424058985531154160538491588618384399317922774716243329864411135825337009400357136657906790146299842232585466251521243315262965491152650338271931640792644696628797026587380636113855735943786740161129253295689233756800422121126668859081732992042658969335075816912695007703304050439042081645283265228974058096879313267140668905562397879539826301342512467926632437548357083208436798618792930088064816185619583201886779898444044146042901878725421534821351531464635860530473411685891006959298045347772428407585539705234867694549632239513484440055783200624542234714904885315259992942432636221393614981212175689713266355896966864317740871183985126099012413154212180674657147990422865865374490862509243543893775165658852974247472280562335537680654103122617141196775661818963572081550153840746483021492598895484985679225220900681165175025395415713575231156734801818931838512580604702358147504596529696983183317974181723774308032497006619771353738634826734960453743445763981543807402621218141927609506822977965850339785006998013311045240526983260899230727522506930582728970767776344445141344386121231872792338892730974970066592301629221284336974590646982046820075805346583729710684337736565338859409086382926840197649826588789491319144487676476465977984066335092611894448453558153794216243036502122172424224417966832338623843179134907930703645010266777552432871235774955646914223537762171165866044536654304284533433023482907727813099093409257033287913936866460506510735458275768212122328695451565758921651814140681092624870012371948986231115982804756263237291641756773932291186310215241712206510729420237731146538963769121138918731659039089077372656540476372321549029178091216770720161175409986776119706358331403340760556433356152142859849445757885613161142584367580454872856648488160429108998051085092351733812140952479565914993885798398695636278198093827913531839438334917555689712188602280374905922841095863516483530986141123736597104956644014254160214941106211562563035801810989486291377536112570579424311934421173512962143990275903824278196903167086967610737430113838118365018058633811958574775563914632186004892719536334333486490917942074927293295848407008914840177293626553810830923930835900914552149800415781448449774369491509391481127452134895126802403416825565664747999421666118923327692581925267433713490271530983694340864201471984830441751088268852988882772708448539857007184013327498131056678503712646994476146203239327299573904380142134732427841861614329625472811604958677816660398640250487832515023608125220285147088761399234906727011198197784378881229425271840582605865554574749966424768621668771154670518672192605824341247075284134914645355471513127935044775458458777075381256761465660279860059132034431134247711660702887552240617770331294468758531561857588470495832391263595933913816385869347105206620925471334359525645946700974237643686168959020123986004140691078967672205583076000353863757676759597609685691935714221968056822248738230519651535040749443057154780678201358881763267547765889191703803974252152827690433237225817278829977715109181757333160182318994084172365860239386429679892451598201876173560501093652995960653731534703364803562772317924027844532773282993222339709629273802764219044978570505364490341335880845866603434837324006379972725376066407681017263002788491007562019873125877097968112214278419933350232514788567413532394357892388408067777809565463974507437122381514973302394804292006836970597625319689652061499461153064459174014157299341548559642979706530137034453223838578952635000747781607259582392817403057787444111687340067703970256898618332347067418593144766466647986011263889961097068316901954173182856435251606357904245834274117464375852866306775808026957217205033537403251193705157721576717453783317004969444533709236382475215467923828020076244029974832247902484651902517431649824656278454174923994296973265385988278304243949941881795582955317508819118267068068476174477369894856305378584174702107200655988052894663108468339040396440769248472409942048580658485113351779893283080803875277459903905549270365538929218415744973540394251388188305880264157312076781313908159172937842738767351660032683866796357968121657280286955629123191388211169782234228344657961148621844515907352701972095793055232608359755566301570577497988049715847320426300554635967896509151536922885622298574448159373401767547281193998166302623670855577664835604616969716155789983283949226586827594424067480473500968145629674943391384098309321144191045192666254793102869711764171774997243896486914177762896923814920297723170978143078836610603739454402695752778577646329975406550704741520423181325054346725645896772708550765019661409247571568047967437978673429286971899439476754856156868725175021507099022606588301436566893730484934575802600333202780728014946887956388969800656033891253125479429929211829997273717828761731319087614018851927446176692113968773591205201477598056932911255874704844858251930619349580263990101614205251488775746166629275363870918818292875098799891762197701852376114704274940877531805154836142985148974059946804656250627768853423213632612687006886666589415739219848545623420922168273324285708620733600769690612781375382295094346362880413786058953647166578598745052154054924889851455630515099961977969244919692420300148824700200708525737629654448534363736958598888572309631811499222094512656163744532180486880483299549200965589412713073903296076114278012876513858669957592643110273124386181565685016087075007310110116021212845193962800752176840638350980150088590369578516481905171919624341833956345443601652292826527689455469353295446503040866917586883801123042287229251360309620177121821456173421126877929954624626927560021644740483501520847790270312219090330410167455530129957672809369734259684073450199539386460014343674297607376409077963517902002410394572942366888560363006879340523886632115034712751233396422671528790814067974389174718840333994264968562632199055955291669616341750311590685040106200384010152351812965245167170695412421386474759097726067417951815148339966731151012288372123115900018832935553688077161654848006294287899425143901834002973447400936364432724716665761972094165230893816311015990434925493464320344575717078168289864223400988677833789934092083075061166091726858922451335593478935043733280528680426360862566810355331174076149713615750994404666888358964985048781572286427046948532103006089897155223897712197258087910619480805230669435878649683999778534034366187602278018251056780577694763031556397472953312323865618650730076427339475914336084281684812994731339113326801032550145876304627113949785512794997985406032511342942462715157379761359249991164950148236592843286156978538894721111433314957134799702446583873712069126868815288087978740280037916417301700707095394525995028350536905364450589449054938263332966030743574981093966609023915437796742091551933422106250844444601517162063996058241561719329765601870301468477625106848864933336829342738535261217297942210706369882788468715405453061019608077059052967470240677844606546424365738407980345136304452691005345947815150539285634967854900371510869712525779020207624231349762144963045983191126272989422314582406053612909549462606696474985552019810232335847563239129603802605440334893000471067881971992649588727262941522751520725269987778528641485417140160928255633797029834295579202673029076512249408722803506425781876074067604590139092086329726811695296088169992090450450873535216437913707340656998719016903806800405064497018981594782128638866795362031108073819714124620841176397302031881176995202120227392418161719943866091659631498223643231959086240064430189350307489603251333695388112923195608158945078667455994352639255620264868537105728499870239054253932416097586822387791580569188535769270760368105272373333553266495473997401252226386720343428814725804907388389832200374402134317790191525535434529613857540807416830712133011199163670865746152432147774305277115584162657174662813369022639776089857213465798376898911218910898400541244761916654825599606798036348849671815684992061560535022790522766172478169251253286448158838000634788819500726570488856300446552131903562693883489762043244259714042479166186792238294227986718973590739681666361904574416590977084361483303476314151807197821453080307957475206916232809547462022577288704557942224948340803015550653843485959819543521408488144629624655467663351689965446361104723154304412736214923754310120152422349562852042328698147608065543412324435588651392169755289297203354613972417680986387023208783124136445371098338868365767645741172991827998042195992543364252248512650731168214232773037376360975499497896748290688302285890241281428384667575444045573569440658554373500893061017888708198766665690584820341466012587792740033648328152345031317619665595086070496173583721143351465105129748938169993007697577067266219434686069084168290902217140813412008430188019491170097630539477075387596743212923929640569689758581462608798418269692567953295842683743015541985352981926205939918613438175926413899586391142321837654393737661990082431083866094564038425159239602576449755520858788571541449668159403719951015971694506035267159309055383772919217506359944953703601798306871147297803780770579968759182662078677483156438028544066282920435539032684779917254363301331413312504019357238493578626607899245323126937615562450603374972912418966153541139049614980214675424704013849556686383345089918455757741987202671182461560357588700635845434628936721491254598854652786284255097861008973979398377332878802046162930971150023626128061819960535541617133552957536633315739517727154767664443546666855953570734786069880726061215476333256276040767580956044535504906950474067914789256935585256438201564952051786641615863050812330474567096583036745848309258630280020784028577757845746964249643792755149671034394318963171697539797036982892432116510452620104308341961974091567639395993663342711271492038503216025846055845766662951543065573824030154703697374425665304428625648514117581457812178331204671335587817474168993482991486597516223259419324599109270954295294023601877988148192472778912776865230756583957266226225529120552059216913171886721818091281884713149198143274612554999341011265418399950696836005237178765324757519163574131945411156116041318123300522640890221904711363495053111342925087695801914539192241983297906499533544832961631445576517454829445705935550366277078730570669741558530637431151351906390869923633434887998853330626693577523314260668126551416142649374273085500917897751108297672108566670510582996046945566560060443909586092475926522897591535907200656883328860083931936857781872172937479405148934508984595910433684580715973276206943655533790249091798842301621213540820822457334010149170201925292129474092819528633070021416475210406001632372639897785133770905571555888102966284638998368663614693241981859785269153279021133318738908007326773149772661482523073938272070599898014906166432920274379111236567777852472495731593482190185982771521567485539003376455997074734367286943747350903935888388807569617179742053746143261497130522745665211340972570826947783954691510267518010277228267404125302370209362210771865033517026954550751993353066467577624407662342588655806942531545771967996766559178081309826627600913765830855375277655761853453416387687935797674994707309387292882125209000260549195646564973035044937643400688017148294887007383829654374011164336607370011870373781571672174726407787748966308320815411957805056266045948406839338187103599928306892786633780431366910619344447679233776849330775127394122046569158295150056113030147952411547091751482626990114581205044084928883877436011302417160367714071290300892104597132950382870518401623694634207221188500693502491027841796985280757214648875075713068738674949392616493805596157545437875629417939346146086268161040427074106241603076145938970630057375742996653334661023701317771943090643885379051595823904072204945616525120080736173684048636075212526181490660864337204029945695193269038454175273558552014485790771013768901250253197238633889137254106774065061122941856793404582925925909526924159462181260080568341907338882115880435484327690575414298980028647753017158698473240526199830999963260213440434366739853785238266006886341104917579224948478073579565120074200213262286257856731424470936245482206692467130952186896788223924757460125727082391244552987483856985363594509658150730259603877271322567648284530151660276053175861716233429750845458609043842846120781527015100667894902722953458708334933091112458638451502533938526865909452730358596943737910149095402455356131123930328650550696878608419772980306236541802222611883340697735062907487282656145379051217888869872977754631201026961125245535540836896199994990809079988080905887520402388768468132043479050283122804308824468610530767040484882881131722727422929191595308955478197316676329405991424514412573261404395229353163177428639819960360929481384918366855986823729004224594925868508654156266664163285074413827364947078668799791797638220012170549488089131763644570002349038161775431228164950957396495456461337818562836164574872457377046806265042191820182376752295011418811916846330627032055059520660999324467896385809381064359979122396276540314130642206369855810061279673353181130887155386532556056854756794057674042727448053115279749570136874740235888056201554336502887894952183780175818443963880963764059310564439688909474595650083021342123788162694136443608188677845827716462284944478731668856166197139394727703068948044627321374917892120020099617413464667134947263207505265709935972746954034682019942886527378395117286563498166400118461221873583122697889908063997947711553913225179338683737752366341022078639632538152986413195105187622789066016138093967429230418754434125775079010240829798105425916283722986019351747813820326357914715814599747682347636518933197060611318134574349269676685086882819639007199127137271315110857129780590268777979642687117968863182728468572077709126929463754127749371747018096819628454250316251182612791020769332512992281778063751030770819171116642464597391140768738265697156518336954801704711290120114050384879543337269506521813019568850931857857972083799416183933891709747327815599187816842800988056955557895965529570581183254052229688589377996864693009529624064339596135770496635998741740270336326629683091549912242207167466112422341569367345451868626339080672699512573609064805829676189541082293167861817202111102501972439202635112329385551246053315691542160824675514820015754359621641253081392499588961439233455097266142715115796080488035499409551202945288316861270174969620596240592594077874348294015249899033639684881662087727190355798592178568532475471090391890528762695135001897897942153158011644700519984013393168688401353411589283084351101874405575079300209326909467253647958402256462096645810532418984669359033833803949336658441947300195799177768210989735521016820860859080780286201280672711961315389936726612420468217558566894981542996927700253623640398261756460536678097988935109466411963393851783301745785757892276412522216573260602143474876990475690245162178016017263208321471650367351581052209349056246885661905605066272260564300982740434558004347745541944479316848453981011839399270568601210178537388033579217860733273617424605634554257333820826901965044473140115461309622273297445772155757077204041612640390769625668259310316147252164542366257432801636911531740348501208369386035588960233339387718910711024263469184324544349724983835531519962984842495104592275593773835756288506211714879603601152650183628144514020649953671307818026927755389453745227751089811257339811778273685783671088267729289090313938067557441403587210885519255504277412049480147108331773151550482083563753532268127775058566986585597444672119282057309953736815705815829376059601389299915757201677109571643099253932949006613335803657069495997077328953988330008804580018034907028356234716970738027866699132308760735092338093745416508456836851722659799756846433368722340279265613055334889951850062556653799656672820076159069933954304436809878631551651885756620790131262120881836822505812385303102240434942376299548529532869755911471740019988017728986291376471329324302756624342106433429577398846387576038469866782849110742442872632693389830487979411273922656119597061813270549862743122463195731010324747179253511760892935880936135739775852254949450080731607712774841660206663615183357735674843791197624209140565610882081680849239835762980199283757835965018628475372457333693091083640309899838994138302590829214655329330719534818121901546895430560968071669033207658173142489432334774387910011946668100627986644599709515766095353011736278413043035276199444260886202732850720533452308590875678481134607216363961581132635056318835171634669495196873195541837503785171554285416189224875949993115289129735704875806261031612317798048916272814104774326510911707573496234355263749242399424791422060753875105301398585384507552994640089915185282518034603599053519491914385205671669312957957695141687971183332208446897546953073077705188761107383388138723309035527227419998884677665436023575911507234916014718597489567292202339621588447931649643192842273019824524357332167373744860773886636663637716613110896550955642659738754145441000570849223730904643104482676566206254959193625487761595846205463302695924919309999351798027169059926841324705254372778376621517269836214509202734757957934378476337099288913683997895433678734806927343812665179823579091093351517103177238863083690243953582023768000848489186776461915766466948848263815102644772200067377800339356644070965485925885542465978628601412647838599889259875322650580427120563811325439672469413683130030137429491577931242529585373939912173921305350715432810940324114346236878296006521478278591162752395282472411360370902574059210439932234864714402646019816397917145366085190391635696657095672935959854036332834502031789771463433957847927978705971483409308227673151665774637027696208229209560127670437891207160684203151956950377807890357040640086565115933957058624230839706153341158686165556785966588364273226543222684876656678579035840812046642755079197750858393814767504578440065289022019109151728082164294675725847359032636666216926892722634577085005704244413383093259494960695804253808765345044514539356199604532482376412414212847936748255362841968651883955865058165153902916003280156209253069825645248998338140720400511723755652453601400316235772809857927188814812065318566522046388883548356186445781720216445405514530364391203863337722986542492903129568559255659838423530564568583429521005315064383904276663573907915213652857895846736904819303156545272146072637895061872995562156541778055932495035460002823656867518985110267477314111662469330159536725469202540045867383994950481167046248537332638632410021144084776910431910677954766990453161532869834014235127549512203528172236466697071976429598261856352400560642407643485405827305001170434184046688823069705944382624213258578714748740986032847201160081885328394355817259365863169872860660343067132531587950799516668273604333645024037622148306409853151724991329386366355303290129948177919476461344593573918427200580498024367440083204291657453142418686166835563297616366811033859509651534741994467166431984365963198444172603637660086495620369218739617392202901180841510396209795868681217570405512278492446056261591674546900028472517108780011622525482671717460667140814239698080659003950495542130915717744050211069332159692082968369919813846157339324872100213255199723866628113435461832813325554846358344142544089618877596818000193952415090776883842467118574404966255502938445220525210815784893154033696631068061126537000820223600309556487691091165662493594184505565840798764441454457514160962116256255598886698290497761108550792494902711054482119306864011947482066285541699187291807928208795410600742274214513855808558770146765605331521977009336237070887015919257563468961323529041292106519472572731464829179068225651106706317211972669428544616097969294018258630172418965627685981971353810689312682269164304784001615563944528301730357143550562311070527859492695830105911576201544968270429787859919085633100705286753056336915988675070713481562149520773876153674467931104313464277290465254608442213683642808565037941373306282867191842657961883178949743123524490440088643703961854025121823785158624936933244469002718500638690009325310908548746631994646738923564121372316792092761777907440818451779235327407459201215157799796604065072288770831794600181683969382891508879838836220592542610764233540668187670010406940447798294343336613923156660754688499404446393806411386193697427209196199066623428928691185623926001905787166778118077726251209004590254850681307275740969777913193990523976074544075401362313949510217343955529328634862241907402270384889596308849195545392850308998137760464434178792208336365545283142641473919250517958255758549432520200447715831287425757318366021606311789985519494503049947040301339852502746124030215897679259091348394276915344820940626131291960544305710002737557718690565722754727574318529734349722296346060031877042705808046755614236282793936314146533836130349185598196676321000194980953082368918862680619877781544378160610714073394918972407117701461689935183535451500126881162903967023437006000484234704616169949462341233075949098473916500301829795214447817689300992364098721712458081433427909433478885450541773660679421126695661118113259379036530145661178814589243155080438266471927968312731548432368376377541300703004884487795295295171630052445119602937099810387162669721900058431991947251266849795778860163553781133829202608837747228834567948305159615381530386566462328327149429766095239041140513281309465032847913689552772019169197278001514985981831191477023641052169970935400295236660580822634571530645480073450502237698141588124599867171092721819834223261914690677831918382732647521097759375492737959885242372983755348198096519585021985689520362146745758958203170562251213288610502185136181988576653572218517333343184495238143765184729411348813070449057575198391205522979261871207831873476973872617209142473459729454982866459996615796232777527107690081050899750873219507799232196565334366709490299608531597313453305847103570069605076397780908343075313654447172778285461174634348022856352585348672927444696449340839017046932195765055669091551419653813915521898697114738062184432108186282028799263788138310818586280212515573045678629420656941984494496090472796334544151386670293002967757710213208359241265734319436932866321431905424003371312209023819403999643420445460776944479646068422323905799168385084277483131154405848330802304108011797197541657235842676078035708842253479857949436506937195058878803916003453254222135071502422351674516299822996503792155233576883058189569203200535016846327804427280843046549306134799730138040569207973318539306743538562205119085361355175987110744736494058565602017756791753014776119640654665878162421438386813099407712946111231101918686079365338458153707861549921575429948101476882349315728595615804229948902335307209378077452111985201241869933269971431192878669571671202537955312023351878547731433845612202315491002790153497340708776314650074366511570876539972707686763018797191318452969036654721187089183649005433721127316470171650487744041872139167724136251991484738860273601497133847472686946185128181305060911784491929366029960284916737891138598983139884000652942820680937487719864436391042517418541795993428005505149655309078371727590782240290376751772960405473411410917580833627053037559154398784180782151021503192725668705899716250171281554369519674858814814712056850062458434209313379080449920028370990034570895946700983969698904861982352152693828351574049454192295090972626318288545707987909156387812043504861991514351014228958980642114660307691825015730974460955647670583542267506023623241646245507370042637772635172994079496254924508589975343917868154996520222828120258715455169961102514534938631331931677856904045027527985927237348538957997902467227190264883449537578539581044824093480630403957154606753326895638061122104833018235295284000307970947085050459031875923305563081167425370628920243835517778500505016682418092015831932035622746240230532891827854262972304108991480097169216418642208063772807589168168849219734322505637361832899509348175166141198489507268756167353834637473407228709384482793886960889420734339185223535889794742104561105152730435186084082817027600776748934705562283555455353191699677072698472011018614508444777666351280697413920138937047873153810537494137296557779756306754312039921515781463786732688994992678800316479949452489007611637995301859478394231252622028731126021834169251185706108690119836880264280476538166304512122726810813055946645375314321382375918494781110145307891849771733845500674592528233550836008899855687716467194341492611879634455870409557140750794074636505013581805630603205922719215728998761211630468947898537418940948159231934047473954968268548126668068713889196490766168389609422266140953183842832404341145787089260367250513734924423626946233868744824860739917475386819637404236493306871370654545906558886298409307507704360293705160545826231872651293446502376523513119526892283132127059076042360154735739151820899212799981337198917235663149627434641222351939601728055414357151503840464733458565253138973483475518473561968848777691314450097647287225337630571521792326579065809534162606547496638502847377994529953226875827460403712701036079531050616035510016902933829348578011951439140240467590226963914871213446069973992833112157658706385540813266027671860537352482322737447364252251759425803325808778129187726588323466453038895129845280353027307295898406381838715340252589044398704366832714135404295533637376447085394847645501179552134457304510184802836007262211664306296825310716358956972973742390507178453901219132033047188942074161270106595349248590581722495886734082638581223245349935040145009746801198147093303076334096050263193929244323971286005137957541242992672509974229580592162746634340870425965396327308447406282626935241511040134258506337580428446213833639998798024890173882830318837552909471867657248460243531741277457612024853447070140394995848782046288078099963598401547414071926647150661060659929900212977724106833588632979720015727106846130125737092190980982223844116800245447658501804709981600528261995938748135889597158068706449205681845960258934931703694654424418419502834571843411595514244753248900769438080395638749871313738980605232380102578989369174969383574836351487933257756224630771430781482945281087184656718493005739325818961725849214927731304251649490775037880062353633929733171217757762480149303991368249423795025707564090713402743458045801699804748015123701309630825063930104793247421734493378621818607235205550141243939209511315498322000709388596575475279104851332287966693771119503360637000869972579982871426153567683032256892902352167416151483450898609356212120604643817112717463147704706546730377014600153035473694698928563013076482462734979925499855586426879297012238821139230924448313118524124053057023061096654281788402247387847013842747906068251840545647448082924069688969688024374484734156124765274846104505444375915091972153656179185279704481827937503764861939662310950825474486258891311807918944044147220070280601606836663320584144690792458769310449232643833432321679276988660844492748756056625445194741296492921505090081597082899167172124281422152643865996712598004303516613601276620168204315316512983274936166652413442788952775639338860306572944168429350642153530623403977254112597612996072007001526957085290428745712020871197941549686375574013970099834973319242066471901503507757725456057538350887316882341741547165364713239909529430941583752216567876127193306248363548898105458382097849684904312961727109545019130522303120827875256768262240039547230883212981827080984833949768111468848641198345938351621645466960472401225524618891031191749104328356089946862442626001603148612415040878250970867127518710773272085868878816617818564145621978107954123222406741205248655766696946835546741289645179823513699911487345531642603693089578403954193534818067650251169852835739755785725202973671322607982460054914989198827598099842045127424818384897574922600864147377254092951542431112136014349374408498765462023291715207040910112751010374216376955864997857190796956829455801849446459922232047951348593810536719709488231862988174191286878673160738644357938760085994650247844348038867759410409525489050368559347933246298702394948497611498319471764364759434333323025785193201547789821692250057290145547578680627831694544201015548554194976939834718555904736141470924678447957732542305530062198826583312021232593586416919857351446785903699156588118189339831713739527309509807980145674165652470884522804481265380132351777730985660070106319723918523038597530895801551812436442343305961918940069011480628523294743998933527378314375109478942225011402402981393593731302928734800246464339541642359937124868298681231234519316231914666800682792700398416666064130807204870151021329656037231198380810378096964907247984567057994075759606589476074954963235787922215628895470185582872522196705870557598067952511288794965545425512200982335142182677285985343189746595721580749951049812316672579991119194959359891289113060658961276425895083715248434399354856529516006824652032132405991205471458843464767925554328789496146506136144281797600068323459834346016484371061750704819300840999799834267976092324523306206084339474575394647876439144837005267543520217853684091408487455509159848356888557511516331094539935036005580130291808995819352018313263611742229385000545533008025259487717451799857178687701490601902252399519510978181573119259235769376118436369766926683245215549551717747396086299325209772742894346014983206278981055229114008803716671530407691511409237318150509870832548954142641288765328726969198040204017506713766053984754415567039175904230358602023027620556234562486516403334279224355745126984047891405916626886120079465812476236089788591439252795735942526676274853256078247044516613952465609455036251193029753994544155850538590579770015050942084961930213409155106250474360116480592262884777581392687279245841704901798402307689568483539307869742373914998961042222442650433284266736338511282517493861514741027240889334607711500126886146508167036623390242632008138269331449389723709445869509969848720698604411628356677096444807954094150519838135304654203277548568574092266273517441183661730997227495757546607006247020043510950017252718537741633167430149508160821377452531377422866009163125208294720488375767282128347143850692241264695675444879975941559810803107617929259918012736913211171661437458954344188163623101388874451637750496502677960413853924743639112797839580520738657130444644747309475993520090149378206574368204098195776021743366433719523546381948960438436597134657445999584687508489166341601301524935475834735652684924312667265411513708774576471123211660944271549133925929909477737933148756495772939735431495455108559042340596039975442187606811422941185578281793841378853575954507457316510014799709200688525376494692602469984444021386975943230050781814492046511582332375169280812781201566661165124131059844794924934656719163556601727261269269750714475246427437631612471427771380070292740479215563959524343967869048104570413348261417427801974635051989519168274805851771107547853732912876141947931746619603165851271576013544722858718919283779379372190153455245306233617499088698395014305824603232427497624144089240164833914678383231016458391898417818815753776096006770428275624268874323325500188175962029342510978831004328451988802697186685187463264305342171269746413461597418671892559160416694559226723204928053554890499847542333186048372721365694052748070157084261715912806038052547609765085170686783664152278906166179086653205279103207619491515766933166082597250520042517276106563738138364510256777730273976551540382677243225089734352348062217069783001459960868646347519637987524029331692092243143448008621668193317489406407821173648550406554685200529555370066780402299759939649991535417991159303061870795560407891484205420015013992052649727086112205365084143561606981368378938429600821706138711916837636972894372623360355815613779060860845401886793962462005880613281391606567243247268742067139529733679125077275967153502198364381750163869754923160255341598341412656512491492835981101733459044274829602046424935505552831119129485664310962542732247678927830507866852296632198256317868201308500179657659290668895749906334090100045291501443916830990537230559453130708275279490851063531803854671431809950912057160561312354998882363262259036623146877583063168979487405679289322489956149782877017604185803361489209542460313048257797350264382770434007148601972329891375482109390779893796656352547795549176908566487210217552368798340094986289243970568521000325988087659741445836199811734176747727250368199666923575279608366342548187395216353802342274346685989203882402610967697118334367331879490840629637427109653238557389490246366821440016542242114060110508576235203463057678862713792730068490368461014046537864297070945780815343793425905278462824534664716451712986780891963127558290513340292674790748587139512106134056053282163814559017239164152844298114725779748051345435543547943450047229380348581783824859037760752986341347764088245550804651833178935418418491688996598780320388828742884885339457634745792275639628242013339101118394940535321524283438695742453016769216860493373931841880596021311370489404600754179690835629744933881582050038439889637122215860866979219690934445633652458771383871333417195659074920444945805733739022473919126990520373609459492570028951334686232213778512875782800309664661439655244731708893419475110443060818987519202158587647320681206026430662671775397133862323097488635975510359168896287151278809435445774261261658027040071653517127258540343736773582174626360747590831449378353736340528228707581066367277491023328877171408424699662307637135707143128504606079495022614940119591235803518908596429739818062243809595878373888910022089833526926045798280033527223097035686305886507153040990225976289214759437063578416206994259936113978140357043061461206210804974835048602981217675257232395217041618183649071386430827170604734885150874102258988224285421102069275726159985987060105680131459869962835283654696245909274881612207710106964325297171979232949287933622930983030332245500980238086714101014680261932245157086368555169470751640815056827685946940256204445219075190684605619009872538006241912053065585086449377874692208405998767159865580058189744155834796613178949121969833685976255651304961236421835262097321251367783085554551401235289026526859695695071568877307365060607345581059783664316128854556718097110228512411629568789551143514446160617007543664134033802362403337692609910990328841717912561848385834881072399018420333258156141360510303896428671181981563637827985570766285227561811921090840598411862605034849694528655330513316724288782343873771629969780109035153422814946201100824044259702082869058460181924593885040587732622589457909576641947415420589607934431918058351292508716121834189908206367787037545375266194528797747147569918480816511000232087852572993365052375723034760217101985298471584476440872155545396294692818643143773636289264041405709269228177201873021128617200363620980781664834598922397648479537978459756117767252778847872146364960710535333912207988851436449852648225678981023659196605859529988411421359156344672820225896288007760162770962230392892908057935847456160218100235659630840370771973412641754333149954199276720088077125581021972660988910184593057932603723066339569481591024883839415112413868556479909267526658451198134733514550084696285055516611453030847322404482146305908461084984903319818202696870220512322127806261146888679968609312065562147215929920419540723974803182278748145280755146505566471388165056436011891175878355454746396265246633414501111591299835472680282567311277122887979008324968294410288371569491691531508777279022350247743118538478266086333982349236043196021669573112388851434752770441623171968318363799267823407354704803862414749058698393425607006037512822779365285831110011526178871646447135312117489482405167527934662944599716736234467161309240122085494531966440458570836359016753940672347443169402954104859913319980698428329792553728517545541053702791802959903562851570842480611077232789910262659094058370465369026356217953311375750750496596161351550524218841654414521391175316227136288667306212370114975310636385843375165187641397042999487753436143171628514426152348937826024320682667731076094926398998100045829396348246642848743614349148924959655144765113017996098693566816668061578261274517270991484214626886313701492836733439000637358938679974555632019719942118595110951983044320414104862098909814132824256775850812914647704180657415925870677167578834741745731997723475968251664765852465899400695257577422212921404277175261052055062834927554932031099306563636708757315234354398821414610079333521302311385158469598288384919300108822027257951130618978962424573300587731879628853543943342102333020030447550314615228463251646359308247156981461496165111542774548820148389622089129846020688744731418545689280771910835460260584887706292219063249799923962798726061413255298590880779186308253517647430925361224053666762715941211364907561603214886911924533972131283509589379507102651613434206825886057888174802290895128926347664116974699077277599020353634359580200240021840185859621645339121867116601851517999429871901868279376917436612377484907567795586302028626285930141147529905748446119634081715098573307311649383853853178705748156464890472032336085935586738444826175592417538135527666474475546328652290266963104356235742381583293004427017353563683624407649203249977980625271931966767935791192804795116342279621631928190893499912751793247327489600120891265599900856869198666920137048325081376315251208271505414634440503677201152563958388586878023301858663488318509848211423329874550514623290996817833166858603144235471767451333332235233538874139992606469585863234147758113988186359583288360069609135263086511793480652243924818593567240915651053959347184090586607953050174318910744045803803914617580303947670098902924162309032514118836973243002465502330587892287844472954796595020799419069257077164752739965229451838356702928036906952751326830608238133334180780446772091968343960197781174182592372283207290438217474796424321016773901300842180642710104687755755554397890027630270042959146811521943179578249914456654328409921474382309859422389135086050977598411979752333142256963837479435707456754943669480261450417286604993933179290371514545081851926611922840424307907066349465813351063466270518474309850145998261129276257021607867077707667682102521155339148880750157459818239146711252533961944014793056565666191490010227600938038569468525614182376878881975489256290758368343564745994781986882210378533605227929076813861441230167008858481523632350828533409709184572104911248744286525157337452913668106330294343127308064110027518753895184958731628036427136501117576427439870853758257193146762422381276934503032300116442390818045815770550212067404517518078181433469248783658220363373040050169778363772953549103714593952258132389233722022676676585586695863362283505711846540399181139478529729770590421245891898640815328013852950809221552882538664078422633184453485600760852017561821174811287446428334910671490396645692271726278056564216262489848005752700398882524363785765670187453101606617699449005461953741014576427623202000883665229588493983169121393080822123735016677742410015616460092304608373749998222615390954736597907709673378900568466330106788160311502371923722833631441149904907678367779926948492376839635063084889118122199199746644932081674447448863089378289830261069447062399268517699059240876577096744373490539200165955585487184618100284458353375265062688924513542011836878382212673891775553101022448352005447158716928780929361070656786868920588679537715648419804788958881002551116988753071470358317448818566479872961343657115483689258947620728366146307633759163695268556115900840744700063322324282168344408581951175226140171961082860155331518737024430404632052475206220029888994678883737299685561789106238344721114435949619335775041678537417060877336958263725614955157078331004004671207674028373354815611114627727583246404283646772365552500745691582116029556440652226852215690834082853733795458883179198735767891419980515725744859276828328793189549671729627441001821010895785725395271083655071401375939509941495950680952108807972279235734371509082678324020622240451377511418994236041995201191300334758091987193774177423289526596313589179216025508513316969320389794856176347502072167487395755270439568851373179236822911723580685675654666783745468462456831043063005621718619560204744725351251126899557326898909885029383641192113403459535612214623937671045581403558616168794357310185857132148560937481581128363968991176354840242985989332258448798139292946322490076235048257312033569518003096649951768769185966612672807560988139769969146115851507097661609103545712038321415463395883341737674787338583987189801468574850674793920667231846186147328292742642816941061142403100523914795260982914850844810131118549623646819967484685530950710068481881419802791493172274685275488673945743668108592434763088481712707679900443886168426579236667791005186723870327672901213009450735674744489445155080506281341938004177891988873706491405981196213595734830855806727259579997655425270639000434732688471459721153021031663489030798867864318978820906745852381748293672261080228888034873880956107229400232283059463796415993017846828292271673866158886486766347305424127534505203151799934908164581769774212118960843845292772406798401922622448019008044174470590967192194477677317057859701368958596303357742870662311090175947809820709360912013325875076761597667040125793490606673204089108948892397813181641814622421536699021756863232739334639514992663292402107249305021724875307491756583398428108198149554598592607909138501244092950451950676919278859177994279790052305586995259907854536253393024290616833122989528674586630341347137689442715257139801552667671946209583354868067777556358748725403819428029275179859597336955612936552718687738087095449164891222695580255162065975417377351440056711869918721304211004290416979221688697105364811189317917984589428903118524585418665568264247972272173051634015390022705455704241071762873192961646568079383940640151534068136472276542526482728495082419053067511248961862683969185126484465824089248499199439493820628611502402798018160781631686537147231581537946832842213010882224137955557716499082008379729980976000778699027931824423034361165429505460398425286263937431252460425487180937646271493804679661383307459491286081023912875570978772202987096252073824335914439389631894250366638856350134551393647607552393159562884796977276200740212338954858578990812821180138817083942310274685608092526180289480393854872991261787891398103060949841322341856475924220163084927662816643227228003888844022617952784116548137797332830864843464012915188736418628883546490141109181100883851008897775015501995329832073304671192952895613875032419714766165159498187414914341722707300588812148255070741887754779190590170849526608623810159297508531405184860576249550236892126012820714665191211045957744073155885471896335328757080738967196689192539772104867667581950443357450586117614141529173571209122036229808742270829222567568803627976864239527358154383979483751977679752914475761089936771980728114321089415467539210551029656860666922323776368141395866693520624329518670961450166563917298683353386514801932621232520533237486101167906134463247359860305517617835440795211611314455252063135747534882193338363300261548961031335670910405875984758271215855889401591793766495027938976594896577543378819686602443257882577322878666285855595784548528650087930644948997486962698481958631150323329477974041093454321086663080204218521586620787623327017071043572492895238243197086984428341955783457315067853077394659236206676424001356201157605478522743067618991809536822877293433225781562065038794048630054135185821840478801884329672128365148135812978871229828451283699996921601368116505273672082659347825713419801831306139427898402101254306562403921124931846738605577248629982185262171453255575587045897676678401718095618702392104187063444841052666752871280370128733483444142312229345945804889052853969081958267299746728200758450271011410775551434392457533875736254449964787853337075545729153561373311268551105755645344080790825387833907144522501277936755602112439399943090402259681517249064310046698392724829661306619917913318223287905785680287023770495028591455477404544651703043348411292517513396561339798097116691783540811213622865731942536644501042946711308078242405541110973429529627486961238963724624411530578907083735554194778111601080187429577833191080423010847022684197042288234280173064996148421684610852656900222991987326636941635206144582767869498929577623406066512286616214148547140171932671174478338887307068417602340884970489423331225800325063942845992950658248136283493321570626653570110920462080855003445586425212543453867939236058553908303278731065850296408145201729416903872316081791685157759345459314376392639935898775845400882697918178097028870867315615027957217830762115286668470225713587470240811442227986944929112503097827998703692395980036674069247603264350072217251150784554855845797093040074892592324506052210088151602405802497655816402927946677705634284834818537372812025466530159103457904845772892767559256747687096302678759272351850131328338034418016533294050818902973748078508058621427843068570039087509038809840708827266595539442426353373480055339434327786824905660371409779335666788409239422797079646595808223683852720845664857507401526479514384097867660083111467463586335686442341786961275783127016068205961045832800365458168493120770802883602309672302919758724621054995130726364966729372101506307215754181356970348541618284402296137086990384570462269207829763707631934868048165664353264607384759831719468104283744991397967051929433544385409267766197706830690636956213667016110774895710055708253667856111822646278863528582398442343434024657288914481187393063711412717980587524793379469641794559451861812678221284018063152521951897233852352329505624600296128019085305801189196314096066003864981441014919429374705515585153798928765136320487390474264112374624000930400682286322368983028171302128800237630276050022564111018163521005789049389715163026666959397625278067451212307482051778056083188958220942176080795188297922978812458185707614072926205199670466495174850333661661124780768049880085075090172675509894840225237055320603122156102473965197575966055587467542468368232195295922856065540546735432782783818718059865487275017494293640623176822126723464538405507251460292572866657474181319696100581969068685778792134823488585418923305640449946156798411969084232517708969169192146708154716901474190972425972740815029624916554048165505029700224103131765563409469858793311956461413219765416253374036924165652807890268865052735006255282563073813596918459539278738766993676861461717651987455370799130484302863095261221464507751184618662503941853095564796074354519437706147989639844024357060284247893039880215762794188462984400784292409658681349662020122420791781158356349733961720084034701915795439488813815696356198627654201184112431842107404360552405403838638066830176485506665326854860992872708378165199026356170340159071963453841502998972708315994879611144598729568426928712440655181172765912862076704127961834487666850034557072047830818989752500424990810068426670055801994986534663724759414753521807111708356919478819426631012948691813029273147267593618081672082276772907232435510157825460347739124201310901080814770660051377950055815910527690129624992955001975452994305093805335233117217461115435809426555250091586797274190332617781848021233446044676108542990171834721882137206430398334211566908492683227272218827380980980002751236918134088823466186155303134978633708659909676170980159728723493604363225702492864174403030103557375944146858053723978634642235776944778458175918201715099279040616333613712556612239107654126498721407675118794880926604197177668015269485639415633258088271282167332037150489662240007222702093858861924421641802001403033165420551707506531626631872064265133295045181355948566180790615813555988209483428828981232413320855653938924083270740713831850350868259574364051777351658748453552383907305016266867440385499384651283827415506666442410247686339743686455311799436465091438653178232813207684099237752802710910345447408173719888705910981561362618673968620405674590528686119637052678706884318422887548923569301512163708298819479428960010019894240170011936841792487834798985526696439522536093204391953698845029643703114559310587774856054430133968872213022473032426166798442379927038878239003571160855951946984378483467440875523173344180555825308947733199604125700314701654970899125085269778883958297140320937647002461971308002447064829634926919831989056584738089512177026556982136686179615438007272197065868576591624217766999320842213346779523151688733829938842674644235148725255461831260630721423601423891234638932677456953983609826151026519424674832508565577078897254449336226692478720376997024189262445582175854229078587785443894825218157021911300475698989094156505022209479465702797944133142351772639091129753405496931633787711261431023354798484717884256017301323317323137018780535396273504875288673797361923294752704891982466735705622256219402254384063082311599603436957902018345553349302567813505181481040181240755049162789099095208611855353597061357368677709382126453156711307206879571567838725987398922188577242210491172660268514731685624310686237369752256179208248047988013791915133821438029050807983230480011814821901180857491949919746724895470269973826251292738225347313205510877800744602521997289299542714286971190238715755325975019526828407489739699583163669145381059655055879768497100407074161062089365277887702511149402828392742667326293745329194939923885811287647208972982950713771131725419754094559150501663805910893598727616595977045712167695661073918081428502176765564510299412528316448093590923719330865953459198023710854806732821800468245735096007348054283991198206725729278539481963217584949693018184685600865130966643060271968881126246360772077373804987333383447711756087605296281373295521771160639028815882312693697803651759247264608504184315823226810935866847222613720510775354084701102147788299465924304583559916628568505745668446024143099110657660749734903719154693030147544276023119794241747538369502277414198584891111437221299402227242890905589221291870716897596834744564281480321391916329592883361174350173390764469118478748109224938453932329483233678010404516665915958737980209422826879596245419826311962811237666712555259454682332781855531840846779511407205365990283681574135311019822064057140111103047038056707044303947259478128742769954475068963616085979305521840104682441006301648119336883834933028992721553994388698505820872787178221252312077447705500495290057477764328722048966940327213740066968244677456759112835206766300057037172861107081836140292337800331029975257627819691707621038230058569322947816533880278138250984354968465607211748229661757002391158112075415599515028531041476480546955828239128529329478533455965156354279302392346368687906016271173076564027535723779760203407409157206831846516482152277667142863737808793147093857030451285059313095516672738894243494727365777751112324304758862995324178335005038484075185321699668598269311393507544077902591943735807900996528627924316043645748433239722505670519460326351758557937310322955143887786825443928104928096106878627389952025272478175836913471676005506009647358871956312014152216730258695893563675028555036942865144317047740334452793030383469152482254634562103014473137541452079624684222115149871863625516755025585575588190371358456728784178273321093522346490624358840702695280743474429221924038399259694469129231992538892837043699124787548251067196769112443917132790638682534340670009437468180931701105692051337065958961929328785094062832415305975413909631226944404395980191574139552467985907519221937498086370946357275875575714167952519445378825313805091427789206650847611629867774347375047000012586443389484881106769190521771369885161700298867735296595705965495060177145215919675995722007582463546148198285101336980227714946004510216986718940873261964374890583088018448416555105510057033119656527544546068915326020944214229906984523533080987592909085991897798783506026823158479137534115491005981085179635290970257675241512127251750969990249368204011335025596147083437586289409487607370894356927697471811918695579640634438133807047659318208566577522877973636057762551762249978273731532348871412291159391966539533390679694591170235340008744654524256703652666084134888965065764795419316496876940687410544137989986211713976162624014965624837277043862409750623690693227301711408423821735986352365881595777030085905608785548487186838781495128169368975747089569076509194037836655141088432385599806859987496599546669397712625689730966851628415986444717077068989812147218196574704906293404572946921006117963941840110618606629693428307508150249165569740635713259107661464407952060210921491378136437689133732511891966091573392951214551670897565630426183626320687265531908981784759324979998177801536925815683568298154326647357800547017998666458366769912221668680376422433439069739851722809942492137641099879821178152417617877594809783207183974427881406689430665773472528143515832532180354199688664995705932549171191682026088992091371517790199569353935681635067292821813951411328552138437338049006325733333834910071819440037254146915388056451230930745498394485065391499628181052231649871294791992956067321101061829339955773149918566596288097779602642723730080906509701477035583533436410583397095548118969449064320366390525824880590124569252064502346434058919762983820753287129405046350714884452483971290539988777643619772188521118164689170187332120965063009137528640833314583814575106234516356989029736694394578203874249472701195806235788798297114078833273087992023469762741188693035337780780810875627097866978717703818239176397932954491676811857396655664163254780993588412829279185277247328097438144816997030898263078028071072407128711290792945230616663876698330648137571253808493614688758000232109082407546230656087176280779660596592110333327170115089104811017009143198740366154969942447870725483897169392427374843776062475380348670831729140413489545907689291177511486942295283135076274653689792359553566114938016761476293984511827834839982567755914651572366944386094245041793691044225956340269911269345585574776356698283545983795658096162399676868990300909349156394252029707746398555700741319792576410560314202372237054397228280745289458560541891800357472958328522293956076368363937264215048239430696544592457352551844762353396043275120571148207366778051461284943664962347219653419353912784507072829787831488851009124625588946401133531311601276112167264212327762075160064592235166991704780042590155067090848939942953436376799668652180302843478065570362048743827495687038743181169811917089350681449949208783770826695594107659024370567045504509801296201465242747780229984002181807251094142221589047274852997830554123579256670592658296018061945015459416232000942580336853477929903433060781732858947910962631937627591802423886559169118810487299862747588287412461995908183757279285273746168797478316771963102144243569095339147639608339879306554264202975265736823137416972582701114425524513495397267354449796515944392391185571116510008944502418561189856274748555147893473094993001075778794219637590215246025651307480850210578126389118519073610347418744241993051713485769214642662477349917993763615995197516793969518612668886097922529496445463596111331651025758072332421763355470619121276272313664736387203005958684740903299412100135757878191941948529738111254089302708127102065123558507980486657345235940750104580890549676440609386761234720004685368763308659213329965094708566411216022021479821786668421197860555350516827357557779553335002860964479584751824447758951832270942786487016083499350791447500673834337564867643219725197541292034194741309854274901105954199121401400455778723978104791420745935116927896251682125841233552415929958169467712054687079390631260375233327247833095642474746098013419823308793177593241556569166390224578059156530841959954557441584715001704050490623017217035716811887485875161457738841472882932418938654510851175824205628847317559529741409603164129073794918503192260992609652929021918733608365988926407969793689263086574421155889331159807749695637364876425098992895535123803719405434466128192548084227524133173258088859790207145266896362264690140446175630685223185784677474234248838060874392167657010206982161547236424972238677008677144970929163768534274089634299708255691000539657678162022368792523261431999009987172439552622558144266498054214786045155884557003427048160559521459125383267271539093789234906096234445723617560090552423308533594581323047688497484338528373154487063046538618721488142806642263660692589709918594273962582646509894760990702695692101934255018815259421738037250938680859827811933462711846189781872793432273506024444706976799246704147424079050597415867848569382184362992290028379320040011639633096352702565303328542486085286798282737077843909425849051158556924693012582758901423378826025014517624021294731138753165357978677542315923146235967225877517201077011255839744092413419241710885054287814510617511178598517581709405669981873925436062945247361814896711353285192181343760763685524992381690183665633338657291341325798997963008217427353593100275960943764061401512908739263750926763837026560183235868434941772641662012025296572527733493873900653511183217647005238463168517029719044973991836124171171238464811260655210961767665431817297379438464493864788115982773007085005364409206002638690293214309152351907965961721291042511508869801848984616958295859973494412404589205936126788058167804195162989160838723832140402247531188699247411350440009613585211277192278893730441227053802572475199936731384732071052897585548903259285645392617627067349907353860958805072243660897926299193875613229730690270444453881568049662737919567098579743432498678117543566719815672770878448006748534962150926010764048820982661019805035532164365852509386354287017132372276855102295248024834673532648228436337463295878627710325146481673685405805476129558908572532071641526901548283024726974397174686067209085379522207433050429743994159543581780419098807267461122366631440181524396190040990177622557457921092804011475546046511300556487947206260513590268133559020454389256674150024099280651980203188324303324814476588658534196895460962254377755523861590108450952663251593796895298148110709530836704214034150885656350012165175903704535967587761370963874575269164633821043495518398517001311259813010067029114429177291143416856175599048315492614877089461659741975843541189686366483920057771749297775357720988660626813439106367637113802211775362403565667479492365587880403090033256677425747263177967708277697490876104282119771937334240459826565107972857477760370095113962261765570229691966706634168728018765717281012693175318685329453206120757300802268159368243194302599448973701049514835400792783306684920857293121927318179362269738487766582237382832416319030545532208991273763205717629577192697404736064378413140448854031356424180759373514419989241312689101244220684965254838208252312418772586610118791823304421546543061607590167984513579272486733673265059252055934112681310087672497523446957070199644919629973971043555691330496636716717754118585851846829876977645459081135520755268501214041485292520324655629420378279404819154774184987572132282391149479204605949238669539791525395606534650035565205463758776669168667788499851642964929262900355625310168085633043082883773731170148156155717402538200686215214001666629873321292894484249729172223560093103747237357444474510507100149141296754896431189557255644324682826657945822905643113873673930899532290999265127212712684602293101971513934069568340325241780675539020611398330400839803186473180956099972063602765631969241453792678590297806305128095166085743680603913765844445472731815739795572620402435098977336644831330551600517958748788314733550652073776767598704179181994998094009021236231319367225785572168128237997717609135621122275335995897576341874002810938937089246451268348759903111982772707539301647420980958036798268841005932259290603065184714124353388397001501409872437636293723072893472274796316204415580579826977075770129688151707168928583055163437319138043843748315909516974238344693439629786866077294390072324892384985751023020303915809329410162672885481968482360239051898767600588616987380145131998346397870458684331563356327052794764183212076920790146266794104251682327512531528659340553810101031392709103961893014107057436626791429179056382012272568943815218000073072173678354027094666394233589367053588783117443902577854601060228393209662577263560490015572859480157022483032234996994244905158235191200533512102860447577131586507395091471443138659788994843087568566762358338299725221551581391040040307204135723193275854037727239997383430347301642119634315526852473734088336644877561255892824770804829604500410252853566452248899371409312597247629854236527704921641104797207618754620549665971996291381424846823739029385694922592289231701532781527046529443298937293436448100978234462665043750249202916744032988018962316000551480352708187400374473059419521287265342104157951444078170997174403093430195486157159147338038439950166749550773450353606567028079688748265549061709845251730107111793952859858183519762163920934686430308616191811323404894527640065657160295885539336263638130872970704156211635814057228659226816351527701098813675388670704076852415301505130415163422972207878918340605257767773156937628602536716225043533732950454218602968668198939601027141740785816490991819591352586404752040062639942919718134965059093047098270476129683078951300332183361491219169450793789887468280883239194895352013188394451228354676535758144938029054279726507339293761613126101540997911724431126277202132840655398797795624953740118611913567269351252281743451435547519283369298760956178138383533899444406403060826076950598226002707203231074164333256539840590009897771695646053705573872283111395349286335002894239787628905072205176225701086341009857839362967445591597309793439548375083434599652237664972663369372888221474149640473537556888341630638708489488753314989483811174865711622440420385573822517727717454603457553659226944363062189328154032052727043678007845966437241491216557982749560753692397061812214026138467863454790439999920890689694249943664960715852965010610808816643198368164773014835155362260473623656061803482534124186208922203905070532474129393876035998663896468404033633419326173790012291891205446913184402585647225799050173536524382187704461753246489952849865115539572773339455021116566721393522006920267519860497125131665535484742876716145471453168052960411340815010896266647201042933876974055702058495780353715271182798015943228898086703819086650083184798702095838074519161950667359029203555500575264620017426968513299494804287653793903285166164602993912768799052426485053435017467163366368806541564263921305927994897177945311364948957212649634344726719426598871170246601782262251326497003778792860979926549620604679814756292913643455361659375350862519678415066301256949420388761872158808727473069206403997470130569302571633100811265156944262317315393933685230188918530184058647652946266427461708436489391022562584222432116283363803363415412114163933162757995298926847212656389985996911461803066834172657118302591475998743826049830820967540440699880823739897998170312134996080912474232286321013565009101299837260221395610853299130586540920025676842734999627071018089029615752606716928384629028931360202459037995613753562329119431175646745034939236525290187846382781742282777283297107823045416490297455349568305535226458717441545249412320037910362583308767163024357511143239539139311761647319457481517973586640564108639698580359300103927620735976382256184195832981115908364491788811018191079628891042765680934765832544031155192000886368461968626484756777374973576650168862662838373228347334711382900315594145856823393879771839400608015211027656322907966270291092022373373148258434201312906569329203353150101512333557515317340570029357324247905413972074275845555335049899756873473009684387169329692915817056528924253393953295124599874498564723324189452106454397961713300535186220545882474277721122292519831111326857364933958486379230505973591188508074935118233660905895541502654282884400471497133466474451055034868558941052253128082618545579391207502330630525069990850793324692991990546949592261914932086417155751695381268990557378003222883578340577891368895464320605622102174726697312769874330329449313821909340949545172571418035299411104496637610414745193979826302607279135236228478412938092039334905657000985175592249955284249928303062306691538729383342635768622000033465180512358128482133207549101362782864205768763608620270741254560433293675636637090357260316703226839006092553296844001870989130796234671927179043448012426765470749856576390319016697079133741424809530054596305338815579994975110897605874533570821904544964704394049835559414206880476496674102656813628507711156498269684786231169602881328147121605827964994220004037452179790670508107473108889858600406226304975934644896669695516051954016910205698608228591649130933137945362297465631575512083878811783485360213707334085651783277849398286005945396156101412192140653931031528316014727177504392731277293305209064092191311478273874026967234608670330872385011428234674657321483806239817403058071061741381132481209258049308204645211484581878287593505557016802365050915419903589497033001940821046100820660190130363039656009352988664023130747649793347586539810909618685529573947078663290113400119861771975149464383490378107502419250335362410682754659170789553622075498629731166165925567550274928910604297616352113863540920902280962450316584357600605272840408109271996047012744703393418307839111598441574158631625615605400469747464755937548400364583540793578646173139485050053332726850685251294101305407539065145776420730575046230023364140331971207584853184579276085530185544222529178591140216033759833831685479583483046483429663892314949013785613029001699891235255791719406270944990300526542441008472138879419359195969416716078880970502983721229046655723546447672944078934967751928600729155668209022650058847616534801299459751505986720243083747045855309394483102533204827155909507028006822682410907652055590893903232690399441789033913190595619870515817595660437154219930329960951687580381474385881436894736805311328732916726332628445554500156158719318156877207007635244418344177494698802763428691611841329532549605940564577706761150719568674964655296714415578191795282248778367609970378817732315838265424924235727580569311083803759910016710574035879241065092687371437157363120016994754891714900095860916617041169475265105996095760999166961473773631898127048793905812857050419404679543312496099917101192120508315284293124443148441111275779544989010823829289357129670031246511048539386990444105360555042510637291731619415807292222526867581123401998210473837761347052716452841678449304042458025178156789639325213619830126097248973739469447203975790155317595478448132060003240163288317937162847449908676996870253861483774038171080374066014424110213512305928123095715882051201472146001743200637643273588443976092765107727924825726581480488064277671779035847714342352419686016966824713644901368490170057472964468421536824930700739256998221491301106494672740228851797624401482657561849886196206924858734571739989098230719155858046157959942397280817301180366733506474869009950648780850710075121889504234997492654765148887533797744545699579562770424743178030728245777922218150651602272312397048617418990967708955878109098898423398434207125044932187360245650552982488747855322182539098835181789430399477251386492311477540867736458359391165690832540321419929043781233803046295463459327621431974401243377700855864178508135970199140702783442501511275171941069950775024635649443228520588503746893765715826647311918669288506516984435689230665768824475652034590508622892046453543761743900839976869238003937191740325448800900132522228048504727756571959654653808317911408632843897500552363487208256576881739245134339634464818231502166737143391111794179688988745409421626464225432811069817585183692070358603226496225393671598950841259974842744379861799392004104757044673659870529302495207313041923996885241125262272094215336339074331977679296412827939990641169440259811380825832610858318000456041194380799613940918408614074016926034166828584872761436254473593981060994308598755127854554459778142846430817379220267750283025561837439340387321499555822194469145162780484172697992869924810269667247992463045609921315616547797019016648405162663328021933663169531111927546912664905067385737897922492319770176381640821326862433807807563137654557424233393510673357841280064481953438171285789792897731208952546361682532720123052720021873726754053560267689868244158528638403617373394899315089782065137299723219051359616643715331536631739629827859828111278305310060413038498868243589431622376027778952655929558221022544716836332512275459607834920887336725915589302446391425218554122544635415113440907644444230437194852799794047935362729148492379398731041504651738492717310279484606046236910486718156499496261415945440486635870176925480497336675974063000410103606419891995986135716481584029791791104803860871174421575713747381812855246215505801460126909825075511029726667023414541916605117576987021221819826760322050453889151221332962139836626139386326720487987054524412288832939691526808897537490499100696074665021814242979496773497964828476502979837444106010112147417447656831907121001428592467789105832787857461499133654867199260364361843176371982151754076350243738195964396294167314343728563979334887759112897325167397034520656300578079259122463414316762154339579200831120629147854625401457232870741644848829921176903484065529200751135883860683340927495958984348742551445677315551360600571754661375217525356432505652262376741768326016915384714023589975011708846424206603253214633859149880187454610974801720464397095720633669622689629176454385377263675043552091734955037475746902246366889033658385175195286393917816394057781235666591763448615763789309725229915272936898707506211784945034711785686778196763040149132439169726191903484535576054807769095654934893529889175123755318425343943479803143192152904676858037348591298413983128740396244817371025545955507828775236725563118843723829130171538168030055145401434768234348140719457783618227394544096192569299893374015227891173718494722219933335025105717532929396590444937491295972826642455751164542897730287444524011996856165461963436917550149349957036896477963985167308331017918937414090614302379976304538919859873582087731029814164098189719715827639047751894175855196945401698032272270640397670150611059144634976796439921744223980316321139896375296946723274974388766135155680406772796171750066050654699668715543858316065893776688265656874601249466194118072888336452865406415888613662832084452076284441689067550871914910085249500407470764782321630555613867229106826369382185216690681686619415096198265579455550131049327616051184864917433041390857146265575633028543644972161168557755158910371739429551415219386756943299986880772277207490897996703145806056314284406917246003165649180000270491421769047638128435366301006438181561915783781037901417927838428378366836509291968848487894823579603630001070925431863648641056128035563426203306172089979962690328853462917065273501552931420901742359495797386079351124698257619311805174526184486107525963317547244999940284194822102639151513786241322539569986323481048769749604506648883125237972149590500362980284443597211429906098981172066921060919507443759488317858151278893721254797866990526937165089575864942921392683061158601918971549146119831266223811214039127749985698860594751248569505761435890205028024205496181802058954830945812232401802284969821389337593622666328159395060250282015058472528253144191046431800523574697960733031384532317050108765785489081152888700903063337602214277846973161150526604110271021738246034689830103342707893102075095734167571142074000486838603404877084820190514304110232202985373378202327200692697433933401507815839382392909121239471780011131643583199749559293059586977369706809888908626321086041994970243246829400642166137280347923505530620344803746427654702222126091447545300660868219218328211895239278471108230137596064396765731000012658540353249463833284893203085668812447642833599598934165165138722247562850767301198517949031405912042778229663056192163529551933249231465648466310331578118460773889699132078706091296761109284700581790286963011243485104817572020011988503251650549489499743340440488207807399949000310672219728772455080571991716386217126565072517291309406833974030298505673814374967122506987248720518267596100871698458567147264214145945676216947925103548563745857975418033750082177643451006282236578554615606393274060246918453212141682091135868566718986117157077215192161582727593543180789874407917356405332112463736890838261470531510079868588380112037092182945140016831504748424418118638809299336625623817552246083457880261553910668427042361145843768580903926617995384468012036728644900669955463262546253250802587955630133649959917267256081529384538539801801071183411409459290482675935352116421371126192238078739143863481748375643733977150073080808969178274619907806198421275156518348407736465667892326466982310249688517577030814232811684291327785191414513176070181037972910490520551741507947766145190175938407585445228871835792991067156985777371703285500834783257539674916265303099895497684928843541919620511264984073714398383969942924848894191849641895938963264805526983290735367333552753523070178248944456314524161480187727031486249107656829886712100122493134446142368796790982172282638201147527310881805184159868558047850220544264986845594462287148382386486311093476907945915013632949881649008894341862096689393355155364438812811470795232825858622419347726963256733454833328407494521136580716245430182375720821117811894930188753834272265586380127770725797263969161211873182522756799259788821910851810003098316636522963360165971963465462710794493632610416995295559002519664567508361921529377679997813574598723174740843841777083066686975447889421986403709900133106430262707669250575359971330920187490464168900774374953729942335219469343031412590135891614631317690089549671604612093701170649280723576301689790361117175377320952532222836987499994117120467249967507579909040363202378198920225708760389938089911451774906724083375946901416548787194086132086181921416062593000383446826452334139122872542856945405660956552126574339780698983105191475811923282577331355764614226475202110031164717666668642891417985336493189286781794508897321168439171391237226913619341093411349664318716046014322914616440155602377859611229340644883807198089631298984897350379465872843690375331204825021321866262060895198025322504436395871986952949755049883964509936135693708374983447983889455145460555480817114531410497977634156405633998022412253265183921709727277035461189506444809424970855274783721940199788090015397839679384592373324071503852382778499235233861599776214960774551047628564988390274255503484134242764448062847480923594809435914317589328387480249672171002738326963445471331529274196583926758699964559198158049114564352589922962661326080321426981526731379575817928990423981142174019786876078739737837043300184266304142256188987776041173505998151153903741646032085373063778280689938805513222383769190264641162679583985547141051681501625186486778457768392135345808837377144477391819051906843541594503480370520002134194617899701094514049721243959020386160804006632500929853906674318782810548638896801733168381453152316316939106814758570472494513680006863668331236978755588602112304146514546801952123155326290061160127890441077772713134060889913472781413544959613446471061026454013521288456699685258640318703267392386612339162843844041092051211776465959034519350462752942736178478833703924753219148977999367326533000011306794686561388509582625533668739554123661155822199649289212443195340458008411219278187333012383044462816280723454757359626844635762455591714563617589704936652595308255375469013010122911859855641997188388759591616676918493679918982526155883265853430372938831402802142322532836267330266256683845669772551271715616219050247935126030960243937142935950653968576605599207199695242587441995287043818391157520778593652630814744162443818699366014836843781886533697108247458717765744799374051933806975814390719447109361822737808107895546192569957690936987090647678537430090496985083292019934436613673244871351271795450206560811152403707743879474744533841657914305827270418834761545019333930655255219456493139877733774228493759325116000232674142640384367346352376579620426073258639877482383310143773198495436087246169134226554914359858368516423116176375708443749726514098872522897178001985000615216504416272674823728768911844574252644703546130272977920551979405034711490766770924847458343696277287291092562467631026907324974529084105675556327743310791085364379926741617846664429848837288275789434133523993478843803484900718184786372303411756953607465622586099017440336287361786226509724999751613459535917515312499402477267165259637803391227571435098527576650627300878303699405155084403162496720813013895033773356243602652188869358247176422105310198183262266796178676324824762479143364412435969004444417639240945075663468586117035034599796402229675035382761466349514055393659479312195038547380178897406650964001158648825793852020927542744097814115136337985951219812677315912894180088352851345404873588420730118549146980120769233169953491646297274895034360539937674620502925717503325575870150914603348266794266702094295813961223807643010768691297867904714308389351042496282117909923685623027707138732030143162404445136776714457576799299114237337829334775408933185115648437889119605402806680183712307792892508640123340860024351619573326029351454294453738109975511748715231439401852170082026380429075588043318543247316324344823551467702492917068603565030066325969964469030792915793944281104185395166502686770133439375842502135818218792792257809581356775678309833668450094611957446407693224047201968563300377242626814454053379619208916218432153684323861377335868227080430741077862440188992133090364497486332191971607897078388736000606786393716567286511546723291322251236103375998111727506497447694560978227948930491218344104522291638290553720459380598733191841069487054272880043269754301055199214749953207370291843368546535435646873342222277757134309271911774350349438713524834289467878197171781178269216058981190066434122426047109512858011116377106918581606111973494562709936469930360241227968242250661022979453573178390988792575046318565490821769541470920808260429015707520905314211180837945284025888255883620447767375668208923661420194185701203302430025176424029173714191594362745388331008643982891991634822396850573138264889580534427365510603966468851621226778882514843363795348940127275195295180039557575365595765132883779059237735922784603267231213265388400337195996585565955083673024494062435763524964576966523149038503495993276669046405591961636861297009279835941516033072500786594458811630998820343470753814590216608981985901825900888559066387300048981581972996723044644835266634666294004257755607212158709225805411073510519203593856863005145987107121971386550572710190473941873776599043723573132408956422200753408395365342215829793662696153464229338309353611948250353825391517600218265542499416740259384572148656755475421778589968442643945576223794527937021538647609770173943359252550130796759689438976907744879538237110905379044761721822874049997455576893087445534669633310996146913185497940040450179054669012200591426766031671193137670261040246393082119006209541276399306709131638854096023916749808728863783421325466581486231452992234382143004291658202285075145401823199839146833841677991412453403217637281811250784660872753574426869706293911802768774875710993085196038387075325862176332661312214823727983586360686362215319417251704349937845065369990706831703430344260314260165578751489437548962648067254856570854557967475613550711759480155084550993728270060071434178487073047332870939293289993059986312827628376755850805533231170780022285473270434510633432490971140634121833231638002020705954544371138436207833637628607041715645925425123287304378878650365049656080265493979060227563256827808110401957410258186974835661854646773296384149900524660424611237022315859690120670442522411696719897401206609746191014421065536092424087238095411465913079409576929726060848465410716121127216968623486687886901048364210018199917937103573243946481923264869220001951334192902289417715961323862933711586628512679589995548790177380334491278712922016084703191274254523378965207716698127686086111256688447147802068821748828294402966769049397884155605698361240800430092209292369900503994415759448656041087207165479119274382305910824971871692584843084064530850239055573658214625177050779258022527385695854678661746259878129099377851320525561469680247598637566763161271128923710140997926734671559084794790338816215615818747568493264011694995315333372296598481904814549889612570460712105170550364994527515422096504594454013701426653293218422467763035888426464745364215173343143706657216794420144297534184207321486490413850029056985393514051213574753496681390311919574464925948587897570727043626894132934780615914938206532296834593124184784565268364046362750704511343030637423388841927455068428461357274038361477551406388195745214328558567735120674509688183171528582101089843684654816208527989839061964087617681650373437163427354921689381078537377025779789854571997538286447135037636097365884105158686273701511350139814876622369155041350932561992085263045229172447279876761366113575490752533673085571357181874011734556283803704573432635507512543951171241827701223606698742053726576810522156454824263156605494403871742239901613610878001903145638628012494323414523290771621164049650663353802094498732932624331333456318041663120450344644944315236733313400309459524010056150112070030049144387898530363815040644530463151555786520076092634129432045069802664774062807312644803574304448049990791691717282563249531296242085333297043997658141230385116100242758385929778193226548058314717171533271966239638841925240394577764164557479717398076207236736554050583284992200202718471641653250415208725080059266959297866817612183951955197809038495817610587350067721305673345075847678113956986882110437124500654564167446919523529363598577704818533231000514378067046039364038331496192518912462672821001542735910514997782989918335501734163084635545344319240653309565573464869307179951639585191154554246380956481404605334676267465659668456839985135582485412933375158951615179304042920343791443441758604579813804649319241516867506645555503212513635260261081706804314882980729844859541943286698851455884769450274078180913004854229929307685038179333837134384322823550729367536403851768966645396487844469800879561149746907946628489753724977289588338032223936334972338643063520178307520518665829081242207040961414645702115441572433031086001357098078216131783258560625018686347640152694957905472603046628933629529615024489494685366048279554861379785730945014142756690910496638382059623078905682244659433394886404096271155413246123417018161786245637586724160784502525806952094040394371867166778080734947966273797347125131869869602336178884253750192263737209825116742089451042497782573811413592501040579988004412236917403159935843642352340717207758063936500342968895151923278332397079100392853847919402812139126928626466377882317272194233354275464960764536716619688081367217170916186784897935634402270251156220518709868708617717435132505584017123325989107621833698124676193451393031964775028655618269658755466667974617070325878389818078036932487090250848404367303757743170899358708369555199712125422571697381798218795818936007516674568914649091150358903611296323136203393518754961267012989485844745705054584076281573854121520567495589709702666397102439271880233028110343957103301623329740591522124636673387554933463707314395444751345700765306274847780779245366230653319734581646750981783461211607509886982917756755202951446079871256100344606302818003172798166885993406740171576291807185724349768161175261238252275830522216116376775966944048285855023417099373535267825776996937765941920309662552895445805361819106027361013579026038512777163444686767466574215280119910454867692338747481676199686080804224642299722811282312901536014555795666275160642282799960410078319180595709326845938919597457432251317376449228784886302289930603429102022222437904602218560900849263853458587435961274428330058088309050196278096426043700904151073276899239504141069121467443487205727725454650970502890572605053932689012512330794889263074211242570266435602397847931385538664591521712047391995207511623952583846199056782079903944146152161876329428453892324044864056811136252641012351877593883344835051673589124290909297952974522714751436370471136120546946220526409888682186575526518914237304350626783439937684023842117293743957433074358949406016646969847591031081741320766155226289712239563200326029254304064078756361981105018341709860845606805102053541287342192859652103960022429428912731584109456933011205969842499534373335953158965094454208494590450469814488852249521034483484812975153949186036246975485418710288579283133073786706685174910818163914054801674165798192591916481192451566703781766180062943950235500988382202774811757822410947849853264959403255053844192378402302610601260685575905815670708196477614887664295781951283323974381908623047042339213226563051010619651917114723724611328334107561689933662147394652329922884288799295285196875701268949298427306527039820101734153284708514502854707178461893821116228366783255406718735494601582135512426932503762866974626487919488192684705782500829618555345394220730898814665387316629499330757820939303333178805526552442045508846057152914197777250842531792835470182793741004394490481187042463000299498529577944079314607095403116116185134449189954372399449716333438643682267430380486264592591865222454880618437083739780649138271667870923521788284854560443690505306823815958530801908841731531056975680494294805678274643769274904791761989309804750174311124017421428285101910254518141051650875801557656103628761582098407465148150195582069396979378460026316336210558368667589135223551940608191638018290763124100572550221609742887012017400060326864969259546672778803172009439192296288818270858594417286905498252156124192157939450208261457213759684913049000390094881186297928975439884708978540326315766138775346715697102830863589853650360961929777859491023866525160051314823383092296874576153291531646624494447243788343106891372713677282278234857748783189385316874025846948778880408314239375531849744915027218289377148147397522583826524519318156408401308986358679724729917211133866273911000584989076584873829691729257124571549274367181283456195713661050506166109764306166127889498590269688532413987176388513551958888876984263864389044661828088615313368568734536183267667988401476774997408198418017590291076084262923906664187611944592410674216186144032733665187479029877791862883254422104196628463469699605189816702052191126608215343774958579484608693884321754098412385219814611672927088565478626800401681389532298723040281133097200841660226816351080004980317251906572662503552955621829670415148562901815043807259487548537189209367525212594646099582621537208559683231819669068619761765414513970420029267820751721299559703639387776251564880827503573256610417604822956111189021843824928605301049817704810372490153930095540096258722879633225958362709740187564828203221331397247925077803850865848711430951643408824772167056636800802556000957176109835779482245161912046492201834989764439758561960585489903648677413805647899411395316118394073575755263167328325070502948649635451200360353604327700113723707984131676570152066520120376562234596199677091013317154466257081968814245832387689487113476282183013099099800220240584921460585243628167338445628738816360052776664948263658189454780640027493031226425358585681750104582370651425882489762652250257641061034803054709382293718045413195102958216370147533150078577526592627371552426797964754905415021910489932611902520710851616632106588437367743677898406115902097633647066425474096096088384848701092713726238268125990531456400339399608576570306405544136379443699911382875532076928262016451461989274207966210970748182434725734623115790519320133894115775873006806290112025495731020719913632728703252173621472406410139404197483263310854228236084674139306256626471637084528214456932636732478899176465519235329916871488853453779476118117522551792156627906057529581028413809694127273094044651581240644517381323857676989675274001045740260215242204882136542415531048761224782235556413496567408010799015883810433728285004783945176660711665541252995045494684860852008175864580423099667084216156440283601873392385506796663809557426004789017034674135351961549494374066054679096729848895623632587609267051133933359540700812310296389524534989554921388679377957454180585731516376782756824397490938182160904813471803732219544515510593838365934821918806197569598166816322416333871089588131697269368325580356447965935280971884785877569666914092139125191708849666687021578847481948499315164747654571547711529777088115282746428368936040181028987094345733374262003150484980427874389652551182433397358237351659329118250543968499794201222773866301728298996499768039478598379288022604310578609186242813488986113104022692206903346355337009035882330805063006644982977763159694003652916883881252483457182698892185278889636052450891595298282875071570179617603610842987096945263704810433822901583235878450526656355630684641575440415176343287392109930257092672391048628686946441265368094314742658792817792338696923476499267508564367455300654927362708425058247356595247536735220651104672041017513519709974866104378380278970872155888990043534990057951831150388609086995891748866405058767261218432861981966232437883771616345655567550136995714404438675595083555345861274244446828476449657906697375990843197256637094870307276622252149800939347810999803998364730800018495527517625315741027551277815983531966534920639881610761162950474576627740778401416799740016557411978877964969380946771653253782132254734281645336074433591262581759572328108389956544435634169092471611515653105558662912087582451439903289423229024186900553330291995117376105216460011935763353148181657550330625491445125742992348071387436150464104750245980285551909123992134107602404364812303289714149051222215990494121056353779731408780967275238191889496718174450627176905897545964045185202805824135089685972126543739395589479147333775137907036918829221282500773059562954051867816445403038625184428840019047007898718659128101330765405617290559643675768386773801272229250549390198269987322551139484396554454645335590890768067078200915333412312212548177093014805551739985867638761694709778358572034484394567769888885365881448571638116161914663192544864540925687638341168986331842231704884861601239078208238429633232318975515748122885108989788312921305040819184234473750712768713529889286319977069347621037912408451734640923957356528632541249345829007531996585715544306660225226557363140845557630026153996023142255756333327398152759109057426095541025684155245233125781322369608256610422139870342869015587227946531145092106365974942524395042086544797911208621694981628647732555522524268449250737017466486328998255959273318710737596774737269059967033845532423314324761549094681311803348363068548960870624454183197279989549886154561627763002795439206997937811311622595243699919787488559182822928636720142334255483780179397173227876753975813168922146290145967028639984053006934454622524756736940392882965589499707254721049091042922307778030964563499124076886612251282498236974055643574488755702706902808246993454935945798247293593025950987056041515301443661906827594945752690516541311675984051792837737611007976143651868310128438247796129508888607930595234182290991100164430823452603769948209095217069569606635382353864824837045747443432395456067184493546307027505973480426005347435659177134374842968257972988723364424806220068167622633211812763451004707069645196651987090568719950881827406274762325529844198928775198662385648833125483874810138561758940208510120904833441997020038124689939058188054483257634104091987031610236173222800835957376719473150864129944520929354124628183838372233364084390582749778389709687229167010935038337883184611060521285329815995852220227235910030591179707781328886781447071675759121225995173045839780213403731691533901356229510564353049149695571010611365834372662125909098681234010115083024373205100492037955473887238248599470639847185238021976575400734405307528343536242218188443376668928500827989170173350542512912164777008492973058720190360673396162325753889758516516731552236738093666506064425901263675932553280519208349728810750222886196532123075763865179470190949138016974905329335441914433926904070561312145040197144480684526988580068562795154123197244435775184109296767198655632211345862161639884279294770250510410553474193673937855468508139089471850482505204897756687745176179945986542802243845822285703546129980794039002164603358882945412900696773397713065162982501857721399153781329705997078776913209553006828051028326684156763482882979606224517432520654761958008958378410444190976259196322457481527465334636887368043492497462387028232082444272524078519032182418806918606472844363805346479304031640473350129388302452481155603048602022061226338731699276050525113627959734943648709316236785596021968149156833456213553386979822225833041983000409392594023726636355221410042169666516266290607678783614323342455146634052611818590612214832491672533730692457903518325513570397915779930975355783923832307583117080831506039235391969661984260804273213914153755102504134328395988424255821768783441399865925166614093064159877323761634381013388890954982789294133460493229060556482526246357533241216614811727882923705405863728607562412294155210997140655494633006450122491056960142904443868734081928145454895368919337569308217362453765515928009415736124549485847140698606590483833799584293871794280080480004138488442499878779978381694445127740647410715321791041539135688106792031945533309971864118763856504504376476598312237835129771305725925844490319969814517290752701178492645467046936677422153465353822083987790650820115961398674194509103840321527758022539533827121565530277047135608452844266896415407754695211243617037914083272745553665962426934354479949253946834193580384588378687610263875772666959753118081707690890013664618930248892134274868876541446556283542110915597116312830334741258124260652304312348617646887234399045576745263689845121575834512356565875838548999391401437270220792534791823780083185396914027982346816396107669394047047391478908101531406261765100324081355415257546610539330844282110781930185123027823599581120894356442829336388084482431420686601356710974421051257908593992845403103737404875301647643452932256075960586188499688119352571738493519432829443004471117189306062233030098571270517772772162218624630007491491212982035005166723906772123355285901967128503973298264068511068712474332461949107999310267903707346444938105012964539023656435840360887156919370135682890279237641675611549572656188038122269138373209243669657303473366846980691870521963647349384521018935629302833059971610775377418706794421951430844935792766385033346518894452373756397508901007830430240656890167675094104707721081437283735604255100536425124821948065678791417573457888441088796945006894623427386486435399310773922678799431721813951544295529565970294515424077260513269209471357991202474918888887720894778564135382076279698617534092313228609652385621914258672294274160480040574879130328696232883398352532135641177695795111227474623253366389739826316471520025078999217784149394351551543304831677248431437525270926848363149051700136083387325980584637319683175016480936727176279822130680920044407145690318950056548172863774194970324292213246301805189368277732376700057828499204534567316864323310084798098429791865483098457385358576702818028801450091426999243154720727596965368836976300259388146379377717433388585353216942684754471750396786707172327460935989415332070720206966748492861295933940546158462218480421799526225826797254994820207018788864893061472816131359043604481399080643781148927687925287448365142027449797102833906227223305885331683056922354603599179054773649342528377543675811470389260574333382770650951435958718395458149408717266086996447190017435774126228830667759129386689455179010429015296391164139824960903659727220284772720033594571463522543946997557988305482378201023083019305623899759965315830772865219966770968239008793744990520969740822670001295817554829121182938362088210786118692012981854652134358493373897302389077794353342871771580777315478266945330253370148721177208055058922668465984530791556055729848256374640542212169500822371155211585882182589097556587116431833819221398395831000176578970369491024092705184351680255227008346308760984266211142956463919629392545521883251988551371442574083805780073697483936984560326839715846172870497670928742539323411137035936505101307971565002927924100507414314020766707774407774858334614019113240463978871007581479624395572160599958176839544330954152098496107941828978514461513533921826390204069976297993805375907054154353951253498414968461449978603458981453280961131914692230626204335134203947550744778065515637260631866682807180864080631556382657369460114671136125147964224922596367895795014149601492346191566497251215985437733542898811670940741404934957627990098687403314237901629690827469848254263643227112192268643302401272285240136587962440250207188949177205908710362758863416161634075759802664287885017227096088589361900678753007134598127351774802158124090444375632656518022833424768377533893916210494982920041450125670738283189202761666270159960631705939684190416549887912528065720829032187889955447959634216667778126267232062886263103586540567855081531942542503614528378651386982148010229693358562412801129481872185280780110926316926675960127190714009900228259407318079021290724375653713633587475432062508192230494281642642855453872701803705258860354791633860133423455182250881485086640271522022278411585781399922130058821735726786146971070601094812764332872155104422820637615096994720981867197274606786370052041229672289452681738371497428896686792611715677286935751079216968777075356735177789501881245214380422956315197675411152811628684552282396433980551865632283666405505025776187870122689745029796958317063752939098203336101302752167790247600025559749326938055350993817586359221405827070825581301498143880401823091537818285379594241463630815837551038154917371583168757858935845640435820785666685035538113750436072475631359911781409398936613444839337947501055521989387573860184740204643889407585500627053434146304514673503206727008532873870289712414012521196168324323764768848031448816804264433472255031404547255352221356720671819147893863703104577439793060682225429139972627898654866132224576534058373530364049168226543999541395860568660154324283360848943419352052146698863939755004913223854255013736631948475911292944245048981516583349936362869488609814905132377591080134515654584957763211190477099264102033520416704027092914073064641053948254560458510661784162180549971041901224754520982789313221559104133432150994182025798319524567530674802356491745697929910235501338728280887692040772118039908047562664525888087755229543977758731093254495118234646464384621449982825772150001820672266786508117114632007445897265498758777265942423275660215463709931910381080493222867623916055177259833930467770953670965434470486354228558593962743404833049564675078563187783817921766570120033674877182769767100158789365306520406836253220458707669269396374509169827798536885724687547743084081437757560026166146281618704754792971148141331563984041357645012324311581122478170081132328969773879252798449115610942893016148524793205995706782688077094837924003489545958207064314832118895359370623443875748931580514412073330634565471246830018598634825663674251373927826879848208620038047934376887705803427054874697932143775210497568956975736196051040567193307861365391453750206247073770406202819180783789829146561943006294469838551687965900243201539039134759037439625191457283350602787569840684577592647097554245238057505075627059604619802554008765766699381941104541420308196866019108592414626393525984636958904279312442786898811568594166883823734444927811178742563692971760000341315124047974877952101515738511095488898466367303014365033885468917712216203065073088549118771105230405176210435094618058804147474769588418409319173821885854090517193327370265035499107763013733123988706046873717922462167443096694768164046270367489241583932415157812787172825601345085830249158387501557249963801929630268106419547307343311062258508086132672292751430068916370254234820733260847358864644141373821556326330929379697688347300097649228533307993144049625078008123379864306365319372429066317710627886659244081179973227722364855016736481208573812201999093465356008841537903395671180121803519756161340813974533596233360460768770873832074520514168517522364770030321197881871935201646462528229723808336905180377088599747618710913566941749712876247704187274605983337783116629525131970811920783593594159415873183145713596309032235839483026322647052974540103654663947450375311672377113964699199418565753933179483470057987206170934519057486431843798293820169563789971763146735877723869974996341469560664527378357058591237672011166959630871668151048970602103343323552109370615921076166896978945560927674111649886368074928930578636340439498226772266287351766237432516650173637452705401205274223434188410540447192378894662866449993686612168939250230917919954205491315963015867746472070202634077009833606779726734800902627797356749661301753607742479089333218691285553457532303251635096234897942154926994798297277088722945489767989643107289281105819020601917523260296237568088014817675816236701519528202959400544018158005140160367982768409806116289140573197287636037324296877164695082304208056869056403158263948084506881567777559657352947710266807612625012161875230030891194416699710621287485847493058328390974594751342895582352474265234412087934963349187667476047607694594551271774458023169582317858458652158546312083865457565023454635635244319253990574303814272597920920580946102686768087528574991189947085657413211662660288801953161484243479760117556951894767064147427777064723010996317797519191187983510695684924742244952709477567673700394768095355141529745456410303534637576508771656747443805918211639971614527697626988954360425911110132623887351661978967826152208413372630339652585273119396898464422590183032864347037811014472415138181921826297986885067567607080685818789608672720378884025679589165037611538547728246966283005646515559662000712496239306755081285591663622361708887632630181205339807564515339574708152099816439419607899912573936645481774020414277959912202605631031963413245790247904504615218600333058553856809290252899494693478693476231668487485992021281495128140592045028542315847660285650580997659474383628641080798147428256826165609249296412942819147119871974481308553022156807517517651736363371888860751309813285801668377878998399642581394134969530154968032652986704716953305597137790008424513661944160878235835841426798347943519193086730578471185707479538605437490098933362877118928013112374482567178980729395169518301976214930866157072276708117148595062004240421206245310156890022591272650506086524927520372606765287034415383397199526795875303321882954903366227220039727164829964627786041621774121168169485504256127026994220022159352766779520165723206195458755147796135970040946238099182892835456019261846373916183990658163773346579473169730740541224632238528235479113591179265976088681284067196556751422665302754976507415013582053486314342516011633233748943283798000371643782703952236316032658600751645267743294375219195562603621667340718452580604489522355400713482366971830526973791065641890091321311772420252378248987743423482498527718008896845915802462465644648117873410349457439098445348598802417700326897715731876764316433274833506091145551044187030903423291019937410683755496145254111371458439401537612773157634377742779852864846992688695250778155921436435743409979107214191612494965725026521524598428235469285027334073418196385994458745481081582166652639797577841514706607567568152089408495823093715292363937320642706202073286059432235663840396216725082677582532765236453362771656880031947661126933515819322806272357583494787218259446651343122462008197679747388696825719375735705441151882500322022423824517589749792136406432540805268241426913600708221486179753005853937171378356745790279386761457899866379719567888241495077461316708366112552436000251455882723259555623287827222717224260648737732216207727380467436750580102905669040044738484429986921964291001999674133244536652855342749291102317458861631559787295527249709747156379367460382728241926455958468667553980760900761311705239225163517930964689928066223559638654046909791850349257249313482810738103296748465570027044468900618707729217238654781421018797045997140255078846993268899402591968263234995206073166089865970379200961036801110319643694641133883150959685730784227675306579210878762221496960273317759578977281993027844686797187984455515650945724935060501164212543210851861816086730146512618814103562984448413118729777125011779258069360616780656097829860749947290688258638353607209325664433514260972433233802883592246061038008413728500461278075922150698623686495931568477858642592947854163443019649756048925093908350966869203310044990332054775308546732317964611926371159284899724740318595925386474174787279908290312411747792421356600778023924122336925993868200676928224732895172661412060423025106496840558236788084820552570327426383202568907076077356864152457402331995027740998469127352037875832208506530825519581412966466520231048453628162100027286671058997703099256973262110538274234574476224661828324842270907720175402440451530416493812347315017362294706238176618075018838384956534815477124829153446238443881692115408012039584786086904890181309764553364264210328399485466552897393570922123139229581242957201286246534725086519685054923616969128732432957770706837986407672133216534571984271106063669329492626922176674477605443647106258931178142981501354584723939892754848217315121059330274122321350783158767578150686824231764396211016848183395520353681345055809691466560616675767974808303536876487924339060285212565641756042104547912978677887560909883331469474250963127286504758386231475561045757322867802401567405765627308985528890428169928250319852192859178907338472701689489079365869320106470652649702772416685923681130780001209949478403546002000494693262212528472860952079655376740607258476926695979432948827824565859075866929305973910633491863035369904411602850991252781344931013333041140642343837335710242616943556626175400720671276104710408483238346794938671701596154696253198296391457589385899075976189243834548579323297605505519991674266834350948334476190234775434553293090457269132200761220835402233727356238601937883005062640864822213239345351749447753703369281886893381265610973787203370353053257726489558189980687722177634534389986868618965100754939117875560083963673192324160803342570661154061709836509394972958991683450321393710146868636571239827818454992586357999920183900643889703277754487538840043250231272944681976582958826735197793934634897182990640928153538773825482096077787820866729019614874385704476507894786054022923770520081519733997206136346278102685326555664555691638822598304509419767445428443869939554674740468159465706848126922684736728356076953579607274744161558628876352110999746527368990915373655083029479323007711319930730266098419986475606294743038689172235800886233167636114399707872157945922342659331302729624895831617093603020937678722533943269241534344084859148194041590381740926177704234829850128277369602502467588299809556231181798126410098376253230669292559863857865788040999497255265230199358614996091399731694715966641956227968809368495195211230171330825090555986767233503435338958585044648659507508792898211472638808851210263427140904003764351499827646311054096708979605190669094237118736591020589247371588043983595582004776654122964612239471215604274119987985789622003106787198561247063456442258052897636893935125054078447767409030942457122495616590261190775727787785191956251127679125725004469665509901166527192288770086609437059990712516237780049881096901875473265372721496635438917906113446425140113132032459103366682674204910566746954773566983893215409682717204004506707880034985696964624695987748269168383490651432173291198697452624916947469341640258412969251389641584441690323580012582975402683525461587365134603923488559216124850555260780083377258971128782251492118243465589733034330611953004618423081021335212416559756821164573613847202697940041050255224761060280031033819851716403416786109320160909271260674488571336574934465807861574586877353979166348280389177030184271489075763835670416043617903184431876650754173787623511955387700957409828865717774615175623852302948718227146106715101730651903978403073133006243237388235743636159714212162402828712815445654740341253089321235097718942649593791416948932942239787990340515743768187831611301737314800403535509239595621669112340282987123908863625804485393699005563703331843200787258540435577611763271528402918799920924791415250410092593609105018775186624042009409803285488148180968724921523829790638917747807945460159467390395480973665648195598039602766456436282839180279976969158588170479175818019622512254696028291582538520320292603956569600154680471736264017100450270749776982404444749353550567654067623038098023407429172801214377535848036781995355999341480516048185937018884429172323776236918165995998984284123254135721154959837212872906521376352440700462752967572106520517220504853372360739956207250395358185818611078095296729398730282623050553401584726530736614200279739315776748955440588303788521322751451423710746993035527928534352196285398349807493394764696439330971006006600938676314498414741406044832318067877026757767367120750023835434843023488280154803009641156078718125062300173943176909691696064621739439523284354623032223081179021837276494560043415703493288523754546452805674295049504445110019429258762779598632269095557716876577166596070890431782815032937381898278664082511611458403113347637242916781268391472975694517306083762953641069696939061751285742656631672951733176759608643718209993594121729057309858271072860625173900677779482351428827550321228447903770639503612627907194487308233181816571991113973294622509777211938568757339887476653172677808577290438757808602369685085225042792505333027708269038322894071543101853918640013541769882007632440897265769033472290895271534783727089523267060710459481144669420226421810293321684161381321992859365249070153043384775566676479512683110761493390073828562433328953491763390639196389092456884244001872175436953279868994630027926062561859505832785232476366023743728987352326273145962175219402256448143691107796410566494441572747484982515575079659606002104031957321970165354492993884887381794611513377561751999083903897148976647925818277391270906440306856597599668928638041853716193196610649047367835442544422138472491465584728242156631935759532072242284146099599254037901046849690019686455570145981551405238855095130260142698553077138051224764690805443512309199629347236256038820617673260289182298489090063300098992100284595735904333371197482972870899954745059186652050781734574251848296134265115279795163221679131376421018869246338386331716078045787646909529030371014232696075421624123814464320346828898984841932430734909957574191742883437896637659942353831136560355762708017241491702615091104506261556179155148775785082876746518671662888173534299978292309214061878234756816706667419135581976206115353742444548429622156966446126361653704075042977614309461297552797254146408039530389719486219840168282639903776662606831051035347032206228390140591873786083167073775136116394144011285718329290067369913948495337217032500948005948377676016323686424735586765655096164494627128484503512175169673421394316957557020148877083178089354761318294598266307083371524826042449832710036159486089723202579406202230327443804051316114316814683435329687870735936164164117778713271080282458454258752782666716644112737257704540004617503852673590697258706705231219805665004874850651115902480243738834950316811687752272552923678222301283787570943843295676431919774640194818199296308288003494355678363162473198660189695019190729026189191160369123504630776689554786460384021185231652643061417645002941645172027610716252304590877205451228921524252292178593088929585115348541712330670320261436604030136201703565670073749735223850786893553557141758846297255982738264496064501619548408120533065543603072986831422933050233651558549482371800743290609969483893311131800654498999898762153062591096457881381971826762798058127472567373218100883442108169306919554634185072652155356955808137439360614570672187279006770753517947978352949348368584421641839622457378703620913922609368142307616453566317457198758314198706975918413414031093112072608216351145956321088822242592995526954997114430081031675781487157933243878997685804541394308924643777495708165965612638095092036316400635518542504302194899064050196808119771392212888561664393353562384304756682795072455613484548660239027906617921778766774679492468718645956036766470237289611084815923647077758077433984855472891232868773769576445647900534875796883193006710180833840863641976548150942816803539800177351070554874988089687676517250862996882833460200478588265914169320773380407402239261390163060426994812382700648789997600937147554154636539298128852298027963428376107081551065851415241285044558540548681862589756826105014535524717093539763512171098695930454035312020896406791896329859291185723455521186949795476674069071051417695578180406783889844655711973199358687887728409870747562090617008160464329372299093982381412837565001728366898315411873922308412479253730497783745688786999378725279277610972289720408146089484241262798675931377131975593866513328427703704153409953539038988078607804799027177198612541399798839701043960998325864566623830143579574657974862496742096485726629125799516413956510782457269330689623068706124512976899472709717997816237546083129271012755115374258495590674778260847563295116455141081738038227493607508800617002258831969786503037164689626372425891671266746372655137733653521390466064110993158500351218552352749078972612012644769064287766278324189463920218976509750923998916874391245530070854689289462303854442596236711215347874564819739010565110519792163579980547591711000196769677372661766545545124606134260702749088340030400540384871777572473784576279170745043958647424229917438473715806021124033513520090834750407201496666123599546893453446950483968973968441066555959305488505748906440080663570961354681737702436416992738436249851374671403119161543912535573773433110047458212905339595653658184966884526913992034912923853851982259991134081797080935681280159165252414886423108222272407949252044032060638809711433769552318903492012424516166780789568261701406484597166307454531381247081175137003185108180391171972460281014023225816030513625147510235146849468988082556480490011402985679941133172492998571109133386097638511355102266441590489052935426505269581414595214049226063395909036337000611166426611116053443710408913505957751185598439297156737792694839887751194537102333059589839780883241903330776713353074210839651405897904710109835266435633075606859478987507325549860775102538710591074376880803738366115238610962047201253770512226643531182461448744941955976310971160239368838808249507980681173828743379004750796119483387481036884235391935345793538684725057279247917640751242374890482508981624348608589985061516075260935426828407120061479205864416191549227446959592061901292695594809787620527873211708225142921952292656159481047146667687397534862667296645243900876652046573903526765726616805143625951617083331303180833070965696498258013708540403892187894009137324235167251474949360930293526211809799548406251013703222926828060959804360672049779516971534007931754931290554178045694014995892875722065972441395433293727953962606636586206615826806157579386963609619359919683396630334499965635392979621579697778256040026533762166269192093778528297938704232536851099090384140632924283794661117907316141406359535304216595869428924374422395850971286283364019682263099787371121138023626941030471444387808825602770953527772407795159257011343563792674661408741650131259565645348705627290612358828118231647558012053526271943457945802868603302729668944560445585440313170165749440805010653211082729463302327237364616812679820459828240210439703878267467113095844671754698703880462578028936496321281868205643992430512943318399642791898171862601876738087815214973323182190443123908920493731546928480813196535127745316858613016505577589167612030418286211040837265513366547178487391164570263176628383442753512142789129061707000791149756989002323725665142138126123921912194004713281515496414437943655287197334093032309830039623806921567338793323475374464157979998578210486034326843383632931505785265147432469521957861421721575159558150231236749663245985682590126446116244852297899030585274610819176825551846522012640635138333054014824912047719575796473612257225356172222633614677767673042681139577855653537744364744484652041213962651705487903040623541723042979137168543392440699035432738272755433548949315357090720655589825747115285177220462720473684310813141670806166688112221969623118797018640140637743682968966914808301005798952355262633267322810865561101049059517099250361158006997944894135161438522311767832759713647845399576319269002597160617091886042610291711922315067291566525268992032038489137403177400429910555200178025487130149552804149182267953393743871138653273439069345234075288379783789072699773553734037945143560387493474075485388023516514173470170167587175811321500543425529437883650910240581400208287636539522072702951694045094080966056559379203080726003184974710113622724795355616622135993093679240024598734687856271734967537937435326681798198305069289376257083427996917125197002978696354866513652687454427965649649898500426231794616849846713054476296226094306030421334723498761469092525561219626324135535808269191125587627827727003166967689378441824728973867843550686127848303854163386615032816305401780245729136530439577627027600133624377988367130445572415663493311038044015997137666638127994796350723143241671933965204387337438556047271349435460648207893443270518629251757396878697890322592784759203757753220143916601439837746346618335603801952223267977575446110887719770806223085910004121339263420292457814936367396534968084812152890125085368037520577941154510710498179291458248628181355869480001270267079552313195641851642802058753940889611009663022229998927180119084706074813235093478686750640965399450890530172451751992003069734069237860094155496903993914875894960274752936782683317116829808295065291522600677697353048422718738566275565423893928131957290880211858316171969497463462244207095843290936954309352182428982575791692131606162054225594392558213425764172569741035528556639898757488379283067036661782078542687987357808856450988970810809798559236788683086106386107018197532089755469734880915404129106281665182224241519375142226923765240654936934411727699389165290042791675854991388475216260326076975350579786307187506434486352393449203663802582481865126814242866747620621876727874401038157167667896313457858281026796798335390220935966216135612128829787030847692473845466293530107119445356616498360101786953744588738022939536850215770422449926873858266675634734226826259626127652678724023221152101411925292507337978295148576221209618516882457813283368759741552747660624647804765067569674298192672478247292412145010050427970680160724967248794705334230737238512943814159986125393976292915674759893295081539303837688653480758395839142779471879457123602070946499666331094047329594470168800691225137666782402209221595820204097958225384733573824794664072340163458080621326597183093045830197640329526037978628470461758850663158322303176602030308954129691164355941527323520240278330577948227208076744120953750003161280196723340568701331846493877175194786759203912840091323497336882177962600899704153595121913900910987496271870020189341264589135560484453339909272852116076991861077323275024547549198246343835656008886197029169581062971180036150030785981166755947145238864438278448791899838889092767754045532621071123761356103361382356192511271549906240445956644042404263965387416620660441600937791114917798731572677622171102202589597959052331891715817510923135971005176655318070292002730988308054489539767616316847705948085653056263144681795133916162726621991532919670824744400155803052745376020685700322654660268058422650844563652147778129491120600103618768831429724959702882675390117413835193781663688759743253647887090596709414913256933916640957712916923759006051095962238750379794361756394924643468338523195875586687695799791940467295418332685648636834162257726467354328395971386499653745240022615807915866089116771957282258282661447742044365204041122468100022829618562836116661239999008950381448486044348746918404724091513682345708216564621216842255170582920429518543203923771128605081217300900746398081148671362029085892183503343148428566862110039601819503607743141070036749741027149465495605704315379904408229436634887907761460851205904778178713911644935549502767741030902269715133978807060762637990188078767326788637904957859342967849608644536956704266239093596233872550758223757981211254702486535005546704206437702056479329343718742916119993210992386546610839318265850984716820741436185428102064595341767821454840737767254995919723128560666358123597878400365375182993489737937741620307485754603988857573403907441305542511941572273642982107495751580849308624756732895206184099018949595117074486728451362737165894141665712540790473877771179469928356531236098368860254559061118249221591143993291557532950796986418276803137774848493182271487985529038892636294613614581527577726218304124687774906939957821252092885498720458338103225641008218661456155546655203489251660925982962463211429902167042020406189309219675818864381049338973284036705681804213406693911171238022270834819558125590810956287182684986136924884991896905237186402408128645006553113318985086897462769550791464581622258709313073501218272795922028157336090560606278834719276549673366178087504740588254209450962224487934755446194487774694175222046797066219485391585321253866932684974323686269106562071743434058632186653028855960254248273754817669397002484134978391344813342795055738555908685493351983140859494915393033222296077262709176607768936625499730002014394562304478120695584456407714469007755268290014480754387536975132841625619734965727728714440132951788383204821172344521775595540530926764083125032241925391994829652938547169433340434882656791207528102394475727827762079380974161625478813155919630725080391720578726192830669589454528034042269634493764028391665489844387901873221691696280379654035848134813676333788910449016496202005426281110433689563291265712804260193242061051608024536631561406348289252361286468030513695753351260318314570940511923249570844838810111233274298377544391506234692758973079720403138434359028669752492715230427397147325821499744864792321458957142728771432788503414151977631905029450262088136995838138135338528085721327493497384032188417519823882564597042703808578346567230255556232022532282074655315543499269607034684439634232245355605397722862504608250168560516774837898394468145306914781472590267953575069292425138689085787542897935317329354482574157154867688132616632270847696071566697178333507632798104444158735352333567570252638203342960113462337526687688782532836464948716959235587870733958413540766418090317728285467874628767384924984433663798793561043968259708932896872208287668937853952838782043624481830031618577363669768819539186365368878387698896697861817766133780142603183095767927215688579584389527120707851254470462682154587932864685167686108738068940581339102622785070127549857343234404314670021805054550699511177576355063359572621388649672463937560083768565590955942771130988654994598792620939581726149164716440093620879857921998709941088340446666140219969229247650712980149937862989611027243395577322672542094661893600498557648171136724056100297737927693462105639112110603038655711338609725085626088886442415683819803380055712345185476592410750754152881935492091170080260519535051634275883926137198275095984849069136597941011511505229874451039554712630080056696935790971403752032551157127092385394223071173670065252554700584372594711980710533075978349019901491747175769686774872217406606698850331321709841702230548830533518663821162415486639738661477771664376383763646572291798846644444896404044276927376051469644273806707125817407964324347908549223669602347181870452704541304522838805000328914535526869602261416137475246994997942221652062836159582502107601658982458786903304922301267133584078983677388796141279696565952260164075414786283983043829100256617599167491366076830193468619852053058121442183545692842943764843187897987449148015311148520797565764695829474575869168654168128515591892508390731237680488800980475772874898700417436532489245201516470232646978616485031344926357924024002112212483460686845750745211130097266398067466101127328664976233373935575215756948478388861213860446996165201921841368534955943731780577509025908516045775606760309593635318189156758958433638850799003317264060253988317283305063574214803786929341650502385847070530278009582357206802171982562753329951538310763978073241995511483325581959296980504305899402459524963000003354645045911887316157471140139016512273165642691459040910689062018272907076063497592215133860664199579098280091762588625159818867962374572061332210553320684767194112871563241645882042873202816037900067975196798289777862273701327398834753086449892499965893882172037829889493058668533791773154788465823570696684337883305635405382766883517741524456335015758957886678392825616493862765039210021409879199012496571674796412267895560780218044997969767820791165599285217030085920712230963699264602974394169732462049623655329513857344595755751805722887612924955950787901987539683373410825339757873470545678779533132840711614468644379612053017375402659658615038389996471052320573237210411970203939322433078059622360577318021824945054112732484335722575458256581745455993319597891111740381202558916836278089775381104221536614060556386179667652135044158134623906213775249380743933931008355434191487032287730383290904037578215787934731056878896984023772074670371910858640372175445024051150936387181126783076961448934001532680387669551822607536043787929134958279195657767900094548337764713969328390221861101115303332381594926923018352893156032180978709502718729704909178163230049422902472780345652981645195219812952137638640902551549748937677446706616415519409835932939830972357221253434919964839168185624589250001176724723859386883425330051815259405142985539751262433477786265655813482069135559750843540249716669550364206253072781525678226522470991379117003340830893798074264335272251760818501505769166149956056850168223552886344469408665012137742300254039035868125830542280326657136635891248377326333268072785832306095148150482807033064703970976968182347381008766718132801544279528584762755236344850342092621342004819544456620896375178190846017842394554836904402415576710467259011418235494726525788465870590192546942327714418013305334505200108547396768939012263091786630820387035821981484540532079439921489389704965268785159319084761799349836624505904242585743310442066707986284830663897081186745496675935834836277684369694878994236793677444301407404845051839159974886057732853836238146253299970038146991668630654141573071393704816866883842929246915891518861432981074864247889823901628027838400098599467238269309189497754962223124979633443556059591410110990081205627739578860761400103444473996440373151668385722444691872183667863702688950033913893437911850183187215718487643664986182636778847721034682249965629936724863061336011504656574578353750433079438830759959775913859597912958014315037322299769605312327661096958913161226563739117926023083386985506191217368437404147152034698831894711394534668970764142073513429183042492144805584716593635725479733490669103245956285893182426543005931438584082860783877333614443584447188674989703416873613625761209174083780068629084472170451097661463524721168087086196389855333362752926160858552825129642868747896623351174200732313182821612785924760725231874221902429493770422637294529454340027188535049159054790792981563649218696732985765548698791043302936960978942098464614673748595233926556169031734823652471241330474999356902335933139634885296227243497757947813678267950751725332043562497929700518109311619633327312077484546671254512919108142085420246520364128001484982530056507800893826444391317901362446887971928039963316479408723577084614688955587863205998601237694194651733821725537429403653203597743960246649883685991040311264247889806295316937043551530757311987265724131335429478123632863443854478062353215277848666598661165867761030542110188894651287694591279594168485600232299431555534081268540405152359339450681209610747853433909612007098230057076194572623726109918370707992495547934130805996459306681637635193316008230617847656108821076760747185742959489015811865895790529967825242790089610644775307465880307598877777162351780776970613295654527853491360994706684378731204781042783120863274012168562508188773870911172316510107746395841242763422572073160002449630750717718165002643071996260839766391073950912317782485940457688687640983236891398799223378808656132501351341265270265764099927999799262235474583667939588110842414872938403081115848960421052710458520453777664061564139641783682885747574607445360725626352222748322308257064844933838723175848296434802186246716098036443245723730303017938436492236807461804304685405568696089801232816251638195751693874223878181470261725208077560486553799518840894869161978948508340490779636383810728970933871466719875117825721700193782959570475257438593459518010578121668136134053756514446238231332101391862579757976238970871122809784703077170289388736729332199140637465379263192497112184642243793670068304601005281314806556742862774863809230169309814316910905042370483677185937025167341418845602599283142118760151676029136029317326555246048163358569201435592706749230346065873302788513115639569217888129403398685277853820017757768023207069500842459557757743217719639760817208257822264113538895309551652770030215262657904853640241819550899951137002665872550179859091912754719254708346123411558619015402823698148711637212826845599857806918193709973577885910099997460070761465730058804035306906731347251412186669508419759715144171523184513556092305807963560852860688270430510148796580256551111187101162818988921602196297279073551207152591958764713527897155703259056834045087698051203762353802902500010353914463015045719283570578933855770325801866019430558374955790459595641281222649770587568511025970372371277240879475363347444981112378341234926874282318878671392314885583141140684153618713223909742600281667925260093171313998280925499538657039660855271827678823657632065181349706610379046757160878113103715837926369097597604210190704859739173928762238033151927296457212021554460235298348296833149425102509804958602597608300113787440091753563687851481083865284446728471719981123374593979051466477077363214730415300032966454695209914152066245016344452023397178889569670274042211363998175795461215679834322825176768978502721160165196373935252270475572327348411216100981753156679514264063721018258759899463608221524346811886864127688716567904557700892683927040981813663596402595524201381653458541666332368506932815678081667717464628711941808364498196128654318147384948417125534838777378685229648392943513772660432912805302337900334510953134972622337873629292931878984561004382339774642385236857340098946923586580957918758877872467027029168405595232768108229027985015653184203789270154454426973711715328163679611079942296328873285993521458271436381150135368271345773347220624433656461028453426038464250741572038150547955463657489788797873277249966537552641519008252489591504531228451525061744053749454753378685400485794618664876861171205487126958993868023600872843935386288992354354017712223635234759553505129914614398291966951590232588149581439617078403470434306329235376671203903428325448460693576333255770428804341183081363937866102251866569641785417150796563411263890275880958974943417510126733649303022310708577060003356394604343599790037713038897688679759314811781640381869556865708593746513299480595490321785851434301306391992443771827597577991636174000455994209154383488956822419682177456285897831042176375953245094867603060661269301213290574260314973569055947472480913957541216994418643880109026329913125160149911488571593368617123907440475048227230737550881214306979060354895200383504198463720909778905123419010655539758813481815467023076189680920486202742085758925929555013112157283392698045358836365626618629576126804339006410191989273004784368734491710832709472032019377807970856533872931089696434699283614436895476056720004959705966405300567488857676489123858727391947047486014200018752518995305761727129929905330337465851836100294759858005341431156930628419009174235195252142476502006720686443050625162460660143499817563768750928412406056993652372521599891212877064023259735056186206074803917948927112268888707134265576767641904496154611994487911318205781553891319666977985642977646747939572019110463846261264574441326278245373862214383265516866346615843714858121544138828937731644367869719651252694327343758494334176071312438019571237390373964035697584851395406419562381656148543647103071869023842163530060925289437849010185970215114358639946483018570962834296022496337576833536212044915977131413968947040644305215799988428980452809906248939337487655091578583348284453702330810467210610527826231082822870812422332276259887307095743710432064803361499081127377292395692316734506960524835341228134005801273047757194937955417152728144561155916211803672158610892945962623843890801191202977217890308661325421189268343284661454720433532176849575802715894525585772544754464064098348536713289998875268450788637350689959215339050623930512420828468146269338434007289160990257601863461123420400392957956563496195614799489710139403307572873149668602997207249039492065070631088945919188298789254852301012349617931480684354481710875221122440004744283619997754160944971354082858482443868119250276087767113782149767987964691029152490211429134954295597986239002969011816386770902139139917851878158398529908437632790645822263223406167969549094574247240432232988429986516362074157000575279418068045209590035236943759959106493899078763119735828241970666336671908495760443518043034300985250528399842802876892392002810000489638471621196189391857520164003055151824642332875447494194637353536834600116711195473848594171753906279308713265355344556784136743674487786352159184959834501139191887688229251697756138867645847860265611521793352907318750095550627152054821775814187613018361910826369428901492253716700135410217944482102735411650095611760993824175539121101751276874554812156185426353001396961092954433361142326033551640372731878006188314778579054212256767597299325153399160181619504213009173800741260984585748455558037872047675725549566529024934463316126342078529226194487652033831144685703561698158876641755173090070457504132147621408288917483260486647092590236743317712448025245090296885547886654859270911209134964678636900021060030698791940609533048391046404890786447889919337910662264874281377456961194606503941564437636558833585174939711166072841105487605948849910655318037286256804427217841675404098161105694747892392887685071261111695441889904073545569278430046013923301730110563833158976320617154938360862335849834384285694692556877131964082822055094813651767118037443685746009479183909445870424132147500057005623803501688086018877257153133205350914888200841297814829235252415904524360502098267612665797905840328115074629443530731569598582176368759171214634685781094194320696442991921251530217861727031654473638725889538763618260462767505330283469003279616770866845859679980785884022797315486941617404585567890239514754649563294975026988741037975170398006158919222085834337403581126765674094048635122477096368938761403142266028631393081696041060322767421261486967923150542412391576149285566368871911524096665876745079617946413976138256188685685506360661407571787344403992556575211745492388371523440810807641563465147020196377365864152772275689586641644636441797396742745670203439102282547685450261208528507437130216545418667168956563972794241390037508398067561081090262119520090985112868985417883552453382168375789548866320004201243912361903622808143180305440782758330145414542432940881926039222080428227888718758524791820626398348134447838072514238737389160897341085013816455000971223601218200201329433860848726985747105513860916776751948315341116371844276655829402655550104320904084930244819623037196986136385736058628909189517327090072145543399499051291854191358035578329894946618233086470391948947221095546527218166573929225260511492575103522397035788373896381183580527395185220358095242797438013538595999073210240397327231106141280089045212833641888856016979547689614040903769017667559344923966353709273363507018909943361290604767360387644288507525883113389000050574826768129914735391873408946586676849191914847456577454060086312898101676743438223623830389212223379168649774082694969754541089880974185583165389135238501176696579263100843111639266199045636514250809651109745019961646718718070833576844740136876693702174473388641393698776329658343745033168949007140662008416429213773516175013410053343662910837657268314664092742999803277529184555263563896414848850391707780826778657513192128252181271332663815980357483595427634167843109260280693990122544865241015725369493680119512864669263281066480959404176707851717825596676389916284651874637238925467804422715779860981687175645934887548653991229279854430385024635414365551907872240319522407234783395525686419436821649639444709735343540806385242889303324074357579727879826695056518734604257289468514957433509312009938980399454315445768187002368490101687720402106802361533447192773974056489488363927726637520827388422316843304615373414828899256456721629667062025199255545630957257564691540078025455373839789377705122261774619581400664131426235162496990328546546615864748027062907935036501873459627090463894898298523947583636102403849960248202123671555845444789110689789113420514419063490768344012630277969921820041535454847939015947306913690700902976796595901782108910749648905525966496024610330356195768548186738742110823189145662863907359656314952441879800125963910733591323024521002686545795901501304902694820495927257988635947572309921353273220185832074957134410518306598987934811558114556012734874081380224704314681056086019800920887903769662737912449051394775863849929936498257508789401000107038386699537912173027619812729433156774419935105970411743362237607757973747411766579431553984749797699997801763707418269358426388197842831153437290013958565110384264988015069663659137981012906803426934453291783507260991460821551285834739705864345972408050938188849809744337823954497890854219965295722114409432948946876316914580065458637953091359425526236896412878787387279773650367104616468438064827329464119558335747177188570684547790848540352338119810787873915400910046520183283822987972510325538382531701061851880040431949735815970561231418903619900902338628864369753057062388502346632288375208794164063260068114429908213165539739621005431593116275889909252246319380102953248131043815069402358923212016362122154261035832687887034170644473503088676422260109758727033784170277198039028455147851562054993296953558238101234284549616164047143911614958041798201311421225414773032783190288731841833352565177058461039702469876745863066529461093375990753478823334824885494087009568024583403325975387093651031018533870859918011159117131765361718725609941076183513580029229949119703018920481868654847033066680559085877987553340634269876567423032878178390705147261871266640475915646548970413250488229344898300050001778404660096911482617949832134361247448691772745146964664047074802128534783314949365796575630827459959912106018027532027570688308530188421571804888341954227088073787465150599180824418015817747039272242540689855724556870727792714016895828135207577745807434435627309072854350574351411786097448108062890892914817015612672974325332322659635384712862665626774713572812815563923108041308260093631872556816664156277738247949482365173341230282230407078613409409527123890525711472784966513146918223394043309895252079275947287978214261367647077167478392310179967074874196550987702516162573592560124851294866942628070274512937825944037032289051038625238025840408356681465610829143724295363085749510427703021353595023981119475835850327592297981568518327233178681935843184199487143311664517520298532293406248280754618259957226195943513808120032795381101101046035533879003192842899968623248282213922679571595433859035175996039845765542548407659387795859627062004034041735539802274586458878113359826078714422161094007198200289773785883534760731982078234320835490947170612635931557029767091769704126949341098023829212433301582351029800162951758918569493437918749208527657204626099996273751799163051796652529168123713809150899656118960640605536375619066849641260648109711632595729774211696960988501018326352040467043819554961659383629848026462125410148571731916913841274091826203763095177783311289703836270489210423453509983646515536507420652234312949359969986535728001060282463560044532299569493242507722962759957794118138736862206482122829927261133169966410664408056782527198191145262025251801278989089668564024026968243171478989407931292855528508530602546609069447333789556207826907992937578966100845688495485285755781247778319826653447329394537783328171624515188617928703362029045903501623962341235497318116063797201932023474525179218184031802446808083903554682703129126271400369176422524657289180692800013840665258310313552055901256133329711434255740520290121076247652491593130436563469666588838408500892357745421845132923492060607043734252369000879736886363817567214958143700196200210497574537936487499912745876591190786337231910155208321984452072982614100736548238311328682631195512112986933746133990098029809477437107727236042937869124734692631932260376469329781250519346709813773101713174712084107694424414550616099221637423606135348384272492489581683030865725097760573019066673603745711154934563054703760257107559246243088020418977606655347790576125075276669149763198885296757435808618908062562288226880392994607775336504947980685792038842121877415201700606248296790192968961546888303837873317771903087294466589605508981061099258322605911537686954466928591547355599096410642634262155754309198373491181043964299122057376246963150766062998062087164811365679863820853564990901770983918363329809554284145232601643028067295266848398375494745661261914896598742914267662010099168489576910330506832826021224999968684738046275863233715453037158523845394001395422453523607004449630240492514799702116600222055958425981762838277308791786610386039462141832478008189755552497843712809838748611383424186598971675866408160645295843317740692034608783497643941767769932585623884769571954963001688911080609425896877801145596679872113865217683121288123766967064432626190639477423704015032640669457138532861714620111380163972912809942852354087531832601175255076067840243662696406086153584962979677716073867927080265038382109683236561516551207855023194803068037434129273028124544152552157450423251678989352691085477978200855779253885653714496719123699164231482293003480450888500559493298357219862374836130024931754487605798186564118729253872949887591877164182525058477775856364083054976556524789490844647156766137963954042353030686897983915946366338210416922416272450161306941096406081879940483615700445940585562622247959612356714857334120383776393941961272681856805546365630533367660813089476731154479439447070184128587524759848198565257275362652225963660635758149482055384220854957195082592173011671536915528789415035335511261212851836556252509811932120112411926578143595073512410126190472248923109525564786532281973936826313737366126536102918940911529756291076243129061970469224374849728690185872568756307122283949022247817285225364718921773621790290689949519333275464078321498865874573087463196160330703015509546868262808207898047996023735032811852651822762021289390429645442247174653614265193453288985960661926574866086088923464204957367517796652161819233226312714385661972574590435778113750097314598174755629559578866949675774777742789492437840033767311837569315301396687287442351223091581495236890889333266867713639636673842793711224834919812644251589278825310579198756941431436504964909707137977845693792038300037544007741286940832447501871740578047133529285635902332117396448050369226088705134174829741934138928400986953451669811938780074209273387235400895881303841715720367436479615092656334266839547861898123628720516095286567480719373591190925414307719700846445413412912411365175590333506930345644407057523904062981133528106019835057624097172334506735303784705880354704811860159853861249498938879778025476390268657205724525719084736470247269529124731842080549153170541783940135774209334175071681447210719739568302516113437623735888795438668992285551835299264975762889957646856428433959151164746369960380516192523022197430010723483260837862820552971167998675668245589383563548031133007923947750490387071531900794088741553934659650938861901546646433431584399314410019758811971956172839666385078271977631931867557856831615138915093320430209435956540135378750582858415697821250464049893295144499502811078681028001111104610430256621713993685020584466374624693563445579706868459861354819419289655636848239529599882405226497387044246550494787561256516803342463226231626362455061775866906464804479067373863339104264773352941706526775123418116679736433566954984582394289019363577116187335219400259447840913413998368360986039826849313526096617303174122032194045163708040452216871675363659935828866721880219542491552999839621037997327192511909078537615967627860080803838100408653757691368201139784366439639600082526179520405430695971646749133291606801526288243559705781649597249194502234882448781087109260541940050331900657675306770939387795564988474345348122198355598421767345830620083270267189326160644992472534939278310920803650456587983499803343523971109977059492267072104718502520975631708013971873318651946892044325224113675709772189315812803410055077938441335862666251409290756723706370390834475041653346314612940868734148512731273691283458320965241806938514963515997994766241748307911813508473414797283029025822837770243895713879584727352282580577129581840793235188712871803563393848629276076153027795333867069461283661877445401155035799153610502389276392082804665472273473164487048004761002048991078569555692552426167944546214740524156270633785337874495025603989442334691973642735397395726834615912259938763174037500785420181166892827430966699680164107247139529852975280847843228692770351559835829142356030907077524726208595488330479306557529949173396426394766714339634647807826478214042082602374481934252011285923663179216622859316881914428024921559343942541318279614016844283575496581538887811932660508012897975206740015805562107932103884086657661526104641791797884044322352765595877403271540191683127068203231038965136490584676275556821247045210225604247976313273080093548411118292483130060170919028447897741240447383027334986871590566539183603297206112514880964389320893416633686495030476359522608074186001667458895391123128277302034701006163838891084460564330512765452874650133180281688539224985447146114850014751649255059810251985230109640106000950444069371079851766175769790342692161195950453354558414943215427568443787083500365209995873762117736747735677350432731852527515169190278093131630231310045659414042215123638994628468781653107716731521030509309494868694709821504267268340027675241841576441398444294889858429087317887654443771764518882400799469543435574899497796823691670192914890136910823384710406791069639307310707398068761182506027653677905249602065067923439637610940897268231215991834428919941704494672754159703773850024281659041472416315775385458921530701903882572294916186815789942761258510729176812299692839343782913819562501068119714099874017000114991972920332877340780735112468223930241473385864244691200022219534405736021016582036097048498552560523545431530807294331541587718279696475975067144118105089853508433284466182247896446754541955394742004405442025822373788698611098705660954836355558579493916887361491937859496560105822658052783862953253741663684040084294549750657128731175749811031003123680788146866689504037892666349282604599498927198978801230686037316124843728376119298984673006203132158924595373497655237125760941669968517135566427571342972102495476262313118831158183945151134826102897231333867486124144221351364905296740935056160152100694161020688953516610921871722513804044579203040368913175718331112961277727559917408780392362915719646401862930713451305938906365867483539362337566879679152691333013417717444034427075624293296980150585767069367337295948785094504305787271301235463698712798813109410258129743713517419386198097146347942311041259420870890781952982961102770685274636549883293842637261975545627246442736725640463153313990732286527397686957818902519954191263741491102056906501045302236785952727289086392490769548456630431299105105212671562481697816388933602133899802464562019375885850463318640059068611227651220955662760474882905940158303449730019195771920905799528887394826157396007552331704216864924002390249242540379597522349377047032420956493135436174168455903030581529960013308266080786827264520759266544385121630908434929274340934519026183296572661753395558917829094321399500557331780376047262547273974061388730805660805737705482753934496581415362697496751964344078910372081656824872765094786160496495084939891072643370979929555481579606755540367396707109871549802326941109838001127233003566790762922044596431696638963597531510539882720698031605671723797313351548589844673945098216852746252217211749966919321373060556356354203383376139824215313930561955987423914546344270332674710773592131469371224305140371740326215445899699513822758493013751214344602829473635512449537391359407469344349087087472365185657587755899074880413938834949501809579676349439803112310430247071039613115337187536793324339793358492476841990642198084430706108919309158853147127912670430122485063333633572993763662878921645165529656679817179544162026254984320742822004161093700860670947216191092411625235491622866922290260394504546857386771888453924016653654537227833055107264194770509745958786545897011513966574985354847548524456651522350815806398835166652271225904400550209897287431081730932102089376186166381029247185791201591232343050157472822453614365438805473817614121356403395415401435097697894751561999776121628516714074379936791054661006292579369679110528540850777966423412057071580271190258140313335284836109925208991927448884659129898962150349283904438632415135218494709835408868118416391722828078424038840931638288975117226376835181186539615280120078822565743353749821540907724989496409350377731110046813116053218707094432520919984941734849568765828990662795309955606468327008820468047832064763457715519512513670975974552380483745340794230027642714452588023183993780784021100405716255475248934408838465747819403891049870931516264256473278572323839617057383418536895573856749774371393329851537498667265305331864662900884348265734820726266062209459294291755248020374067639943827000296667707602814799960708072617052557775808586022282324870307242014792462518760838337815483206366464954038438446098960616753213354385473979824863909615903467642301524065085837696630392751625723857906821346357111298674831716417882855143681758964489780318120286742231271980086915075440480228066963774159029835987201256295717367311589657107726150921040649754931501491049853709117500793119980594176759439173758538907896393905486881251377375530660967662190469484031998870683245069040515598847439344452460038021854861579088602494065628554091286754076025542422123067313563336576953479457877177718888198193311510766291648124521420232590014916830967976720969272257274628734969978047715047707797106356780107489065757262640620239102704687817088406724377590358412051626797932880934536801059977390448849156693166264130781821043122454787151267904447008468702153070070216718215945770411270952200465586650893179692156658743717514799841625582031899863013542029304504607536571443375018247663092190560518114056371894567419596617627972546952470585939420743654048460889233691996757759590610613067257783519134270840782556901948167178134876739690070665963544195704387872833985678456190660544634014240000342877591225470266903318025108711492662411092696875811227352546133748812774231496613586655117248043226443362235057624829959059236663823320991350548571708709852346853917070127414848815559229036786051244077624296442766000207647027315551790485104096710247953529196049469159486240874625579691607210239086809261058688742401732178387941561336327169477761176432624645985613741432881491369361052996177201363174945609767983413776249362910853807653600033510260202198683974772164408110064834574547567565844832677515412468078117888851159354531227265199764553533461155471571877715080890065758486590615882611599680891005154834776823338086329560367035677448706449865834858272651803608288382042319593714680139119835200664924980067822323053317088754230040830541623506803084718730898378185422456703240018224090909377744441209840579197070155958204212738045565039873445615997968026767897166166774535749469639284404695156024807227733405208512904317653623904292347145776934090423253907256279485267371323335947563824390555894746041110618679471252216579090314699749081546359783816732420797299107323550037644904388037878160475174059735314988120056951269587751990968164307151767345147612462943961764910445724576139117878262152112063349876236805743906835715854251452046435619080685426161907323738248545490184226829485523299910275844157057882847716583025828954222561795006566954142071599598053385964976675717485457494675056283687972758673318765899605658530857279999272411628693868481946865171754531131417157871746144921135101811822776955977249491122165883941885214712776848018117885796746449139800833127122195333949325586463067005650384190976335444209496885724597454332121660721434868382224206883733769237021219649180467405198866705840405745422457552987417816643980961142091559052915018582442979355828781997498660201889474848949509286668608398338896611309424887600297130768551551867558504608208991409267517107970362721518375960774776085261444688030082543292839309844051843328817736734592388245639663515563662597541902454612108795972279835482736460433653424807221550960500173920038408022322124970537106229525068805891763223200242905963678144558789014110049234841269682343825591829353680630298868299100595601959817370243076091288085989070582746345496861640398294266228760387942563438425669250895341844914961885261900162155730668614997314984787845703679143155509040481978522207059062108781834055074446034042424329668023437900410456406283994443016992471458022986458639863424247647196341382917523265220983081283771271871100928556256812601700865551512786485740846706272487966434899883762991729711174004706794418446012093362595275158492896720440032211242834618192825006873374938387773964904362387608532339664994434099338106519307261383952839091723203299631121180110859980968105370835959162966909620362484330342688142111874395896563037599538789900324365462332093821071456004430805990878910796752167915842691518773815934058625752972261264188836220359261659917086140556744846029054964546651146390105255354446605350327111080265202277293624180953181746584306270483231032606865315178192162887922489820602675578588111252084976651458054174986422599558149399611632925779384765327181927576676267166236882235820320410761792911894543851584407149253214443615258442279233191394540935843048487935291580877216719597740498254213413973928143760143721722393945887084673157942975143590868744142535233926483458660775808937180492479211644213273533912422712850432104921699806522546866268958972826578714446512387684870526092728561057388147465568816682453831764272438775061099858685305480864135663553791097000532251586488152886629920602668203117776540540691560781615149947959357231602408912207737555842212638574614003112982175712202647076105806128580453284795737462760889654713574498701057165068286171055613263739865862228980336277095584337476172147881583357276505390485619959098416544528316248970138956961493624623346928687856463843079391907885245655443065427171729455972322561886359859119743755745211094579266994806661417111801961134063596161326413951942690861968989979396495693767999919056884253362251044003861303116917297354106736471664882487496825794986138957891545360080956494209387141712952232978082670307938336239034883516434232015263429162633827473453931885919420309110819798339984516616634496008549524034443782034728647995129012152278549218479929606632326978760509218910934292705399898898257410275795332127207007759798222581135885420124749152709275032580181877977921395229448335171440907453988208013140949779367856111256621752583375545926626072431705847061973224345911858871934307566005159505393786510457027210470951418041273560903741491378008934551903884283344989052658733686785568335600548517493350717295775566151076172444484339392839293804099868761140750671469555253684475471217457642789253033505316830194141597952458274881610529203546068219802005025183246646510537102465884662855810443251469317783601165476004045132874686815582904230735709279532190818158947682637646521804544309257562334324286944142520986192609835205840476555251020533139995394705523512426678394791694001542840110789509763803891778976558707984791683498611678001800798005700877279233696349248042144446173257858774807349632046955603713527825533755906098634233992033288550625372292071562794788197441504404398984171916091658957517467706670309265385098134916779865300112224610766009263570881899910533691977077379958972872751519763864243264216589644291629876358293491587622971651818480254569937144045498973144688302331162912751850855891522006495850643552525932733804258162659475101429791787180053142452282563338301935205455544906352990476710568845073851011382170335903724261879952095416626364186790639175834781623515141172181405051816760926852554235822392270035841399327005915976791986907003968853845926513600714156638212600549423295798110199348999517677137038120991206352849893894931795964388685209894709984614852058516909371355353666758218749374069266430331887723805069524700504142820714809271350621614849185356887437890702152441416231397164755741332633934979711766642171373057325704540099858422928675308365510291343632693043663182271021651814849747539159670409478403952134761120869089312094855406348397066270793028341650968421115373382560743515279074092769552171944378496863263109826724511076501862019303850291238597974615799490675165445899812221800766377589641962376647373179861509387964069294063667986076176595128734543046660542386515309156422604296362460381049307486912530386504800824071507811857165703784632923897579662084121259975046246917299093053293529619184320752799229864992354638261538773572051891627067192598443229339273793567607594145414073879636088799160385895358165948622556693032188972056625740101837989673654288812995012013722001266896688686387679872503507536107090207848946190674111662304955640197487533320854324256393205729623093951386595697487160587165160980731071522527422926065471142996597256372350855467542936040301195539442890630720556928947654287346873641693375098660081254701540433163884093177027386259446117106790685518617714887692347952388182091267007117519862902513334633789547036818377556986027510477544132287846143017448841181180392957981797156883322990285843239883971522502011823214046668540406651473301053386476758207267002181760257179951127479886911983664529524547932502998158557646381029352366271810825962903758000552812604738301249387448862441910013480457558179841784213105490801057425089318495802055765310606444190055287330182099585260881235540849549819045312329431532521735456473045956478361544497261665498977483072139787308001723358977337281872191510251684864017310556926895007495365945844417153259048332232384631311723468577393194957794362154298576771246295903926777172262688222425575067353827610716851487088714721777129046877020746743474365303958329675868295149053445475163003542852930500573074966657807816308309809199676141537736080603682483957138560604249527685910426710228422449796856206894849060557912780273231189287012882708147714754414721261566248445555627774521229168088529737087446825614919775596862721502048606920938020064221396964987989978089503721543814762933024701053444337302891440544872684282863880205461184468673500866876787714557177644819257027461631483582423955677227191239675432107756634418095240167856039940296846190222610203450612897147196875885089332689017485931023829711002398673245177464687999627669426981136396868548685453686908405078205656893857334683994329923775484215009413750185624451490449203268425410566124220753061506640824677168686831901622372752726737487001060766271364283716806046952367243787193459618021416904674917774727960120209084602019866617926474489428722881214279760978220317254948972114987886060160460862687688187584041614599119183195241231666735989835756658141476267824485040187135432773185980946016827219519317807337108061463916494639117047803253965901261263939581317877758087435817000708707136985097353067161576021093278739313640229328901961867224250207892486280695125068412791382939278959614540037181527103633703791354383634775059525451255154235672809321955738565713932324000941522380801090857094487417661165544345926861619483186599933514683794876048099593383826365622153625274636079819499646189244633468827355958265158138825522191005092798048594191570268526250862754711543603856828974260688311232920677821704135437854099520560521604504164970454296202386348809628197270155749623365268871420553447007478663215918889978248034567321613273393267586022796563885713806360772543791939706953170079290529035530071230866393550276598876065528681203219175588945396931999696816344185985238321954957625763914062427322865394591711086545268393981766599635796808613334602324050288063947152112250886628493626083466309520838546272214859968101499566009480875598536395919403079245329033142782697530286656764395616733192749086514109063240320506093995690706699100731248317602560439679248628852595982925383202700283799484429352680276731982365452904083565566818066471915675594529767371858337611002915868952472693549549425286874936891772166972880943300842707682403910485099563666209216133169284718093039570117690327556993800184416076664675413629763647412731978735078183766400430836865657494355688409484014946719831523550575214414995071732326052589173280558295316136461941600299664867053231064106161688587370383574866804823018291799004235664537458026385242337666799748648538703756394425150381778662590444249483363341385426950816339584140737664399130180080983106014896913775479504926386459190630649711867602902536341759307089122353729616597445027075270306594099259340308183548041318588939114761423164345022047235189842480995796040189053068679039410020360285824695668940614425075276280100081883334424523442444970628771047939843702104618880353081502230040554377313830485674265861013687768650322991177292815014923102057872461785831050839178965771148903351081924065657861162469432556229867741003336127497398112115730207991875677465635347380400399490851769572069515148374712751503886481242171695961794359764382103798006315494628626720896800639658062799243456653113461268070377491272972868691848028431964289308651380692332757225052851311644024328712106790567558693589496583611438952872902908881010507449990862398133144497058414867923732259247840852740107566502447888793744666974935756903017053949965626954478255087748081258822858042363234223389664015014403353996507699889556453269012666371951917954396193013662919967757263896111203171343407518428647985085402911441614994254715915286433899107050655519188445970829630927822702773945513695031784290331901834748765771704805177037840220183564101799847599148065650970952820011906909757076367654960863247098780347312978903119983330986881886917897215575409251728899869916070236478574812183039481228411034061400549886605193691526072533219789979507667214603318620349242019109271482325176907964044891940100874848234604828301356942720943618106965215411759542675029512810625777160597086461930170981598019454308041545199439693520891803970896833847976612924868258796514426586961638511693871494903167058679180642141110264362761855943478058821848942846680328722163136589000606615431565006011919772869404594813793053429813310980170549302204565061523819691011687415366140228847936848724661398751579843910030181975725061198014361073282024372867590188900991929061310219480117802104527617347182661134973084659574006959774987381105754778769291453487690081252709813738335709200554512437215605490009280577294558142971428480189628078838383020754181385306748231920867204558888347793617097684959284554236567090996270947557801343601582672060575884440731588062940775943540282620903322685103694361961308665317880350151126258895940651486924281630909460973819023527934338722642207316984276627351057797287222031206688040432402997917972118193630080549060066688107788292589372507939385328322748227543674655927386035295763372752371276684245312785224684555404631011197610657375543127489022376132829099447148929613585517506960180207211231524851883400208809823758967893272395031728830370477411367211644557119024864116331317276732118406179972388038067365746126489744215034930104059751523858390491259589913148085620783595720037573050458421199146115309885060789802698456671377275274299930085980813684624909448876651524614722746537893457428817282027507430170996550936543251439376336571383452312069440526106916030850495926180110393355465053834655388694762289728500961649423546983341994448394275252992487097156389927825009238091476118200382239231966769576776812679145018523244507033895820189245954849301910021763307326836852752499006392210679589415078880138875174486115592646977144512425824208755572186185719049854597319299909911312034986633309356972725270154528830434908947022770882328102350735774098311695411109488738672045924997959053940382172687983791476568996071557032476660337731450378835935647198517886408865950651847602199495055374114498261334149123618729257909645805585893783828379609194001357980953557750506223146919378011643029547770281825932805843614397890878904973977492696300517538162927923535824730624331639176792707735848789081871226528206693344654747447953268113036237813890646792965195078989358727485050875880443084612457990423450750128944466095835045895895262800762413788389564754553747185942745635291882024110476219878876640255717268796033503252791483987989114901330462491883158820236404262505686575853427053153416454081185987765222620343408900105046968407415470931666067435327694575582588207565435055086738175521775979798898457203039835785104658944913639646673691457829616606924658549220819566413364754517920389089844695146283643245738818509237925232325801794662598383707613204108164462563302075372289428901422990026689947370768906509231902397431568731058833002088190098032502866029222003494564623628612177141266533630429834152770642502256676660524241010312095028271079278862443781583352444688797666353714668125715150863904887126561593434743887926774601477891757529523497221807695009903172454723519074098736623385715222154336746095320923450366719988519238806372325489084598510048918923813747282881575566809688643915237306855152931046991253754990178646147145007802580254101018340034423416786990464807827469536535668052555098860815986141573268674755940171489245825400132519958192431579493153160638561878796128308399101317257661444894183103702845574237404780264398696979879658510870220872795049440960502289791557352221458848052303554381842653673838168066522878550607450827402348818522398064519958617781564868003860622424683252653899374710848019501863218605693333121759076976769177224889499964118416937431833262038423577623563325637184778913612452311848451326166680598658391546438704376886574437684644882219903918290868380357977636815462326272131530614113884713791564194267870770182604163228356963570576358946449677468460404323421259122922159644102417725441269730612794983988897440109979743445098108203138872876425125369811823548635235753511580371162188590246752889438062666456307983409418665054665164819823055792171416168166240651099914078077541774875307292887588146675395511675375768052328042561905531744384221733274777494933326648035487311808858839168942788746749143607594915290971879759772835174390793725727102572238137979634416939067572218394668743572718660304599018319197656831325124466372159984200395019241063339080249993786153070704620594668957393075242384386767214106968523265083816984462241998948443040495484649194954672877868753640431576183278138338322105484031278626709465905600694682020697133426307334743765174851636162786689083931426189521956389308096957879511310888217403337394967383827813412232043753574592759766181568333023113830062252833959367737278110413754040822049133696749997430690891048134396422666743663625445802916868971109422190595671043377288506423077383154835534635384393930016403839669277508201012523696112399503080078811499027888716226150153709330482868511235397515286397527733939752409888664643458423166882831352495852688030470597125107107627540067879510259376805799469109993144466403547411969109692525758221967054071767812149772937739101743585012183725189627342417776576586313493281252668128990605533411613812588171998427549865396030560197604026649178075540385911939038361257715461361117149492025975092205401681155942315697844335615846711172021203797398520318407062281034254958310293853406268915757081442101079985957769106518068605190043133015569695976746905678689266308287118067153211129651099995583110283548757644286480860565777294777942121585561929313176866966937469166578937882500861481020461068648921753322592500645580775945161723524398619238082472697510497236739634249411719967529449683859538022167753519971734142245176972025597298426483069960806217052374803829206324321726320451591393117130083618702913416666499067320126765363307508287432556403767952584251789180525340996804846328338684241291635173351631665030301883523269896058104182198444161063036309719894405459184223933154090134661389237773662394580170816022895423782680732088965133242038579108795416594583918811352831957906298504023260610843035307528442500597148163453764733372889892624983295090570306008918814994355639800399088454571281600876745545824112891955578345001774248513656007801022473816511668473328135029829914116810747591729855890333183928308843493684436376917711300342105947251222432899340834708913453492683698053350872629732112032845870124403193155604322288948053077392642941192863231714046898872088074431862409837844470344685032914800551724902145218677436942333720614149746415142309973640130365269957489678892298013452484481531094729358680615001930911439718606940790500399393677238258512613289480792998245537821211117432078562977228813909033320475873050569618688644533620602623444867890783675301588333993143216195758457254863144153457318735171989717743048508322579638503789982479023309589149445096810043506523047025571993201823179077026969086450416131554478784675935594384775046495927699183872648937880770103134451531481589365098883132674663416036365283553032195463646071964508025397851851832369956415491991402238977626543201759116320119629369734331847161353172471675852812260453559177422510840130170025845078983791542145462052364500270003771291284107230060960536060724726300657497676184042669657450746210463940016610626224509494288767047770118370585831379214583881053592008832102076693971537980016319209755094524578622586585159586657011840446871961231916994377874421835840153473766433403789939266884717927629184917781079179846965270710462514471066913520339988674683634095742084185307407606092339147436586465571773073547335273794168561146970411204477226032804104522674304487530284558726816629165947080037381197431733624472671310472695294646970759606232201779822927842562394027486887312582041073744101980463962598598964736598478594083341046481156077175067020493527315591905890442430294677240400034577895115447123113965767340772194315190838848708052630728579279584997358228489207416480778744571510246257261184439838808847485972566726594309081482370066078438970214954970952032838794903282726426833964143935884013202936943781815849973910906035196038633147584739868875569311510186023151984988460831409241255186999682743184552479600906553252398692788062028999123906786573309529456332499557649271650336342059062471571807104542827222137836372866938364044635872216765556997944010016489612682810639584474837828037281873313410088495974451631325038725552020054570568780536212253210915007989851418603557773915052961123315352889532367491677476538386265640685399408602778765307952456970741575939128975278639637626977493902455198664978335969718324243039938472508210093104172167331706429886146829757745892816332338955320508393046940567209934329616997136486137304046632807634225823895858425660951316452599681784415064031530029994634480948902638700977213449728416985621992539587253602996857386746075166717381008012769402544064555671856308287087120901776836958325758439672972160206375333522853200292674824148417117647343821792449511485999070056075366331230734523638576392100718170354217637022245322542960740301339348341850103309671612573887456256524877824972783791850433671637837654645299189530048374212601956220859296257512877733619092601812515482777541990109986185842156568529179623491242274610598676786994122075729505120885782030839567562773903153263556586151953744022703222209904466144566787411536494226110676021213622048831820913086318972762678139859791805663891241355860998809438022555549657008084324834253039746045817185271568469690560214626341327144594120047142780069133638834451556779815956683230569674408066398373105768784846799850955924784601136251170893749349391070135553252196088453751140137563680182007555351810052412782816707169245266954427782642902899907159794356582538877737479263186113148908416431129375685699801351382398362022714958737957526424008473572851700526464037389285198526294427402373700430816798988603652652962193102363658304561284148864794289133411253233564593593259400115791022433705420142758369698978160381402439312850429872931968024270296554977183137537114625642220973184956957118005440977297551645315998924685036269537079200472040476922274278686022875485284228539685295309522151026607647316837829407386407718194579862090063891251784645383465267112149467180579541930032131227973044861910794443704132234108998511027927476766007159168357836295775318433701103821601769427113774538600604374066731842666784324786823793455015808390204972739682002305062447626148612297852510949649282483982297797615616482081333381514435024794662036047596719812095903380709723844125514013756923775614150642057748696491646242667785004889805380564752850382712178443965693603867451333327323330048659145668466019606683481899771577511318476092471369316183873759761186366969444067430740657884889028466364455814424850531398755554015210425599728033376185103174780703118300965395865116595435265528215281365427709834377465134947658925248887564053290880639225442296232070151158669988503031572898740771810380209487777567814538287734204221730659591447738333930591877651220090778916116355880686953705926912301566269902567347011261195985581252125445588204370091115934324549390071470175882574862734114537390896205790442607591608601983254723434330434854470924612646476085683444660420600538013510836196587802777764357774631192633669060763195177385194330565787253027513881494953063223121440791920606766750462472342926912717624443508399748918886239149550937652230850788723450336293153407541446280567740272423482467485533466559839957146724819898538542236003634717332437500769203753303691899298247252508402272640083529656337264698750593448289251595965898068584044668696836828813441100411859940695077714131154380521571120750830894465879027024892043784509600662498535803224129877562182366128132889071649401244968574691026932838358733061633212588095658243485362190113482210199407998123002010376719333868806919532392806772383781921856139689957381687498211748618042262333168911447128687096423087508258725403802281914811280594826757072714867086672746500727833773552404827281412433032742285672862965071264849162430121074855273747438427806588714220432314487629467099788320602766716179885988280388771008681940642521245848525769925583730831023961489373225891751743922693678936362038150879440116619098782987485761166116025466388476057039572887829916020238210752940025611603787850127118203418519358627519555053977713679939707222811766072090452963976763535341321732714793138563290881102427757155577695809732214621872690383508393101651390746858813031769444875448610476470616187652707286459554461327421866976218338821453912449619230860474980230663120430170962203094707930402307863467271400291871465412388308360270517586958542137648741517480441556054253520220693504812535222583719534828509988833427873565094434206681882900267116138544345010734347092318387805660925104749129778779857994722546135810564193146864367490136829478101138637035917321729528410336353881290057877777232955168102757224454523221479729371548875253469310961929261961117289025308158824883231462316015690797927486701083290998972278048170426342303873835063145447136077067507906342877163214857867513519734637209018106288513298868116895167673636170795580545338388122242911183327694926644912761013537256744535624774439965014410274596499859657837511964451715330602233163057738041850488074523491474302432854452363937053751197612842534547952994112199681286358762603339028201966962594064435199816241374598760971461983506065755455394261168547867979123034913493581980018786437117154134774361884871864197471909587012703536368929420806577759538571083286698160669492971538518810403397440023287283513627355307712458309463626941926325798169569937833217593484691697736433754258668214211727791544479684846837345122676551328879395979457972533716983952093034339349939097276267996977582575410650168710315253356262166369226430409523184193129603639134702043623720997492289011303723557534589806919012385045087985123775679296928208902179130248753158426325058689101100848375042501946669659165572699399601515993789694954012786651699927211325325307779025411922439400154405465287407088058523785482705533369223279265452090881346122561040289806089641203499426051563205032113669573577170027251559243897879915692119185940817371111411777200220208234887456539596411278933089398977598597275353388613415731384716066149366961848845699319033537259802993297489226063630434046470414703466825894979285698101963253605998116154866122330444912296957494298825256404067954650852036309953308149719049420851427725047860376401785149689423877583530202540529504213258156037934052653058328772420625572193151669897511795146719404290646764913661009658489893454363761932780411118799482985041840102309439095375323722924249736759802190615026180388166705207924115499151456980559856904008918661977098197802722174488979136710244720386644602727124927920396273661227544368638105936110149843313501617085878777302914937438107079621660349585452491332343311847222546874159227122343993930983281837495576407894212510753086039925950032835162284787910743718526393087823213058347109992676524647935792785260558584515135952722951847653356710912829908217099259808481125588370167913151045527983913789055247422662053738611711056764530421672063771514424734630961651632578099267747445023619698852129121683686010014244603253782107698481567255559698659326320507950125255807062471262808982366078540843401642974918366870495787511923902297986487592257436624046799327542713783630492966449639791642397661799647079828050499244263772396748265886038229906751836134945933244243281522171955708207057474868280870767563198840349946553505049887627665261909665093860343564688896818568321175039931962634823283146579488730640395195663276512747016824737471825469349844528072648713021197335742930077405035040818653240636079954321628855972249807039992329819808782537616635655753701310123388508430948294284271662985632167114462137691423241514330564397082698101627992797256078467963063306686418938443655559777469770318874795530295631996922086004221843700531810526500062824605748607196606561722365039273867303377769339762450033343884436311075544887072567258481846289350540833327791044682151702149536742111600135315829204781023536986940005286478184236132962393521462296815910728274339520470604266175382320077364166612730110840167925580751178956098015095644772909228933055914425411774646663981459444938710339084495570124398226451660998723669617775929882578462270912330382994859764021455335815701827649066109876746782913152976573619815629756616490335175028264017185126100452722712380741631279014874985488562792927912916162348972693246917923922731579035922607968416793207382575333877923258501829938292042508578124834902649252151465946252638157771974407667477315101670343886772372367951279490717657953878142269335969238564629423853586176143907693581251489130534276548512714366669441491130701826067816137881851675444932632978232486436180185356453897355644127379843004363697459870491619903932907189220949202423668222640554295195462728194216829453332464220079136502252963841399912544217332842429723754811109807384022210655875898219123884090605487244213375190527032028234602604338684365751694608151661885505285246372339412035201828755437795782852347249914662905131549728717683290449018829090884740656276499298639369540846030051905340358146337211469567518941268390520500380872948553594365333493882026184252141241718898141108920316935410837343082258984188464063146225171984879003218680549994226069970510077390225016219735689882990999396827526450246797356650243098258412231110003294884889909453758295517067592098292544036231027110463710964196160953224945075361501795810327548213376467041705623343339606482057206840489594902646301786028194803736724231521659131539478631622064012282145482602831082403044513724623047385940511728783220369572889119401899823092836524330700056483169717382231239611473145157557789827650507392225895897115032739206814352126765048822028973695775140067359178513958866840101465535697971956007246144891453941173972279206910242839483645594781962713508360631075953336755504628363432747859756230215708675264823554681579305713310048835323639418968929019690387632088495318124301561180278624631250961941998969437245218760093126449142561030069606938176789883416944075176583247972260992154641872584594855360313897725542031004429889644621985727306323209335890319464958319243640067909371955159367702409161928060313223824766510569969232665622446062727942124964009861777946959191820379655043794708601361881902080254997565722166569837068210569592151142317279312973666036721903125554935645040050895778234408116585891931572787365591650766411129097989478416862389825453529884379783980561466721237033792330477483614061638430990471255243736475803911007874808204548077368112295578499476209146500125085170577177555415703285153819212795117187470444114902743615728959565839357931865553377271971513153220730776810909116497327101641420700517670454571814872268848980563524983655555238531117080258660597285007742275612313669146901107602574314137254501864392596406684076721835109846252472531720015633691003870500370670888383079767719395925319539170213387707634719014120732025071564131848331057602564774672509340463832866585325289958097380775967776409756946868697426409153505221997889953257959811231261644327355889910117385585280325325512866718048411968405726084203711565199070906604290445321703396642802808206152227350536587585580197063989929351944983868747703375367373571264281841625317390287908787684461494128705445748827512256060366696800885072820305525829102939912504307284961203463735058645518092806935787140969879341792114837965450761840212461479354905615425874018438708314864682411914388297374192606000256266541519805841577627784509855114504239755666347420389493490388974696563864449339489615049747990049158552125593182327838308047407161403635987329136035704523549624251359905490451880480327963704651731875690735033529508947330721150943375556609381973806449189314665506772554586983585379362244794625108874606030216425792771712991534958662594141212695981066138281062954618293893650696312777488164092485233064794097960603529381185735230237483932322191052620678403824810314717375765417675795598521181934059759635608192981068621827368653160809551745220871352399318959233404702898135464941782234730086295166007432956452394229472076925842497685264933682584191182152647552593282551211386004502885689983278060689443210399914084813381533603829781860997905531102858440711736124460263694175809491337704923491103135161855309155904788009201841197992435095009003686758937138382687916443865833381587454493377564171899414465939978385811963365187489112980097696114154525648782751248976078500668055157391964054754016839004442629540012655507248308833355969087253053309542994429339021729643086259278627796701630756607879782725305777689690803002500392819059508479594152499919894082616340018120036057407098442105428137262404131108503954320096778645471789634871732891402939978800216521507835868157139109264576672580603296869622736248164040148200204146631576021676177432577303903005798277563560286073246239712051448236246195001923590223845928128999962097674086219074829076014898521794914218885912695948958845505809518189521046617033108541537622858129540228438757666211375569087055277798053781241275682983680542954658164814392299601051091936468244302945134488754842220063542346415624193907907394098125832813894630555252130926319229760623403952062216844817349739317478289654826811260201447782064477087776100201476456251382573234719587289377829778772487672451566689779870609153637608287548618939238494561310106404116077705091053628646396339777623650967634697767392696508809095434448979977756025843004322741525079240850418552671875753404362390112330556329048836391607100240288129677557050804008807341409981556493672517727003760750712420045636672641380723477095110748700506784823231705766729737000793454486996972732820371585219007724343331356189841640254614329850157734799083227649334830945418110617886543676579374191251513807293982693772766303044239594674895451501484314674956220465634417313945142380539510571968967316692952727902129372549046955430186718494451629931628364184789022552146834191796843772583106210726987793531720401412848839034814527477131394525560345005510534249721142835659796638803576003860498590292568317164233224304695836654211933235371145976416895981043721719179530420843482541182061067029480606613312092811699286518625267757587211939388843626065124729289650215081086140185424273337353467045245974188317466079208937089009839899741952878474682917773615022846347292610799286521995650455189152213991453012901360213195592504332920340903217982134299621537221919463691351187628637160627990008134434054278165479317129977859540115043292224176300958780487052973192233787025261000250099925614929090022597351834420930883828257365049703301926884549642725908124911015173171092375551084673546210137595851591609118240440918204879706342347335236035850982661480908602152671835978526977388460889823929570948929134033083497452136030144774630454086544528002957138540504212291813350735810823252300730147330125332274177745739438534343153965476293805834759243870163195052393995281420695864625651266325487692870102270300914824854799102164563286438511671947137021808232689251548795542886649037882411117597429357154511635577738971198002078209230578558361046572480409685330155180293661014986928329405659867948009051229604230500628593118667644890312353876657966429815044988474525373761016502632352900932338193933702505217303565193094526306119857591785337305865279481871438131233312391097103595202305067200673299758669613802699744255530966920008319825221911253590923647453162762408444790366868895617346838053760565306572328211087327615256554558302219593419320845255976307677048968819759036550473987063371601449824512158620483073112977350690931373599675868139133265936062629667893486700834518357731390935509567037739020387345521699506582023077155139688601968307844416559292166463948523282485679850429768964560638732359427387262040236667835185317057061635547454348334626968983701437328175884738485423229231689982387132399116924441061565758540406153808076034004188650701599966833983330373852570882718241709024652673385622239401299622344057444224121416672111520485375294232838551937160748200821003483212014903026106008700694658399977785140499222587155172211487939255447974674119748478213073749169162838582006379808846831008057332336678296970217631813420586911587234460156208341249690983122594659951342824261864603418579650872952999290237224973670003292056068825387740146176072932490286260490824625102338613174182518224241911148607340452491584273516310609855509633319566305519533829567906016896710962568727544642410000749247035393232743833577301630646329972835489356189358081697672494697389609226265986967327393890503037260623093466946545821716500774632407921373530166087809086776735688981756088333388063072986693779768907426675248809238098233465733835595902981988056140838545098961326488253743209249335487454331664995281378914112854758817931137952556738007938708429320306221848314854427939569869940531166865283043140029051486412205847948776581019201833463839218470921357700344827402732979014751815216021781062907911400190413014339980611573291976526640423389890316674496767439276808051945139950036153229462844757485779949521639483266053527418753506311211576842911576638670349687894755068148478175555257235222032761074112531511192759203464496915107074030136831265215152614527614396794036769596002867928163695012014330663237382980891228854687903135948519033991283547164952372610448469237106338715486748664788567262961473620265828573344531088277835066420560044609593569410616242115459144957648051595366382746286383604873009651085187614012124255183798960260143124466564845354267041377095932900743220778526947069284068220642821112245428824701600258812892086463149661240604440654864301990855416658301522241246613893834762219620473186152990479821103182901898559200680579585275939991192318911224111371871686277252465081849185416435275380198413407672972551735197145950395986094082608926206059118167754798501212047615774541990975859476999256330243947931365399500881782916189345398469971612532386462615856491034275030495444423037674588068966470352200496371917676924327143560289687801319511162006930388405986987518199176434473919620812095074161285712363686921052914517990404956239844141240804881065583706076828472683591835285159054754471262492794934407009874564032666036964269488603958312469114565438578324978104635794175787787199800591841608222177869308848955551302038290201534238877051402173796338600257461734482427448623972925145689984715665772234162108307752099723908163807759620502879952543016271250852360284594155870095945404881636013105467967244090359306593649881074501469882341091554498782861861277581273525246428798043022022247285923492625584792416314145728866248741080149070161707118913864439492063109836784626043406147731123778096519827064724602901266855092565078125936028656292425772324120677442784210554627166518448252753972908654352444962292030079999268228189128874154404564388615521718674102358799325540853060567815485751895071820137916052932231517725882239044617079785493846809432268178059600050329155526636141972888547672008738154610730273726485126204867290528592768153739983261827993798249644166407791814305044616442859729356312762876336958629449843969478957436166808466034618796406047212121173255437876529416757932125371003737700723284127439852297603217370862432102813882284703000214431719517032815793354065624515497957062374353944748432348681423606161782203300731832514072330449654266709231684604944247771446941270168518893454541789293635637573899416771752421137637125207535782236641644673292551327352235515946290918962469904114034658553275401627750925898215291940864273631350178450446481242127842019927882630136387889936840106204626428501157954152426031237559608182849754724584001248580523341778542689267611791312739370087381685458840972303553049197274965544860850229140183826042451724628781591573372664673217990805155016015543679426071141213336712423942714991119532258784415483214183722193029551360832818293846244134520265432193569958094794773250289172804798121401937253383087088478601321069058761659984237405728348890769593607170941065626696475194323595750391269490287927577389059570464730644709763792082126018469630666265470395359164637522974849270135320088278559508811276674299711015382446764449539338112343743386840272598458811349927824815603003995536320147299420401089153693530903601136509118164229175133465832053613304817100072401890009216424622981410776622759061795508211426015911832545525026556910425743249625547727259992524885534571495027848333751447268592391891104900706408641615558500108726917109457617321608222997804534811569838774896714464415246326078737563069245127044315251643673029025900602281235625776789539080301020096893572671425678293289409463132474202972799649292677844601596767406800478652244897715843690745445817974159045681361743114383197119477765832428722752784711262026039164597657509518339126389176953864376011251893267590927570516481351996758355788890141047176199981209710634236230397811651473636762004702751805302509194716855580198601558040052158317266095488870121928509128385811511282060959360564747881478794230021908243781821724205349310560813951446107976190545130443237528723902780804823812850554608872431588455891469210391043134613783064955712807213258266278053975883449094474170431386452258879931109071907699053290926581972319336227953426071295893996141826669912922802870072692823540287016341004247419731462250876800072415579811837734907434031001889872613413268902474183253672847413884611011106122996314974428656886671354001333479676931150967237343844963045236664404160678107923821125324895891445519391059463986704905509150222113428632497872417483049455703197869698332754899478369168272727577007243846422164571450029934730426300066883034616733206793057591671811237238789020924330765402753651935652392345881885412757419803738984284581683892755639247033911086564387429646352730373842947129137652476545231914754828680105589134554914257257816297615549444455258216701308497301417291553849835048979895242468976208721904469599138639970226636150466433369015500197406968846218713514588718530003271402280712710892973200791952368797244958878973286762126814571802105785216307058051348397951251213010487597361690604151500451913428401714081511857469910831886755747145800799517768318267372440688399290203461939740019084864333819263883385251718090088925539856881909698213936939774142459836902363964252957629379088029983569353902551315776223053270813999060397770454780720594858300764021424941747596140925359579307194410478788354289310733030172258393546884009419117866936462924747168271654467217971141968334817079180419073711810533252042504233138774199110026769716803554413428809801719439706994187163471130064454259459171565919616887188792380564839253235650189044587863120676534183622038611128750099121411625590365162524307332445535289273423410462593038302435508160718015760136914565361547045417718911539547124014024768241578742146459667591049131326295856233217905061139074724417772612346172209756642621574881633489515632551997791062005785913784800948093816079586845388190159071635970529413869691782176373315755705292702428460852001863495708790728265483234296968269970220772690165759978733129074555092050210230077119723863833143870594251091178823932179315770678847842963220127088669222302314298907950023509867334498835928844718315621250083531812653994862908988179730934386513139887543657577686554695425046512080884782689330711731072116073055145113299905450954710392358794835633739669518894434186406019020774086911614755381685912969797048318166801780157603169130546493708702050452597806902108699103066435635469675531953463782142449618715598998677772464066888863788917199642881774790026133480068348974023075851419276068253501136114327803731256778091124702109390958619471515936781731247576316667121190224346357098910371125782450258905001618837945494609671754821449801499753350781253984262387979903858773343920351014618891428951234746686072827067610586029775070970810976064502381091665586267572019925859920347020045919324946597668906614915736613818346893645904392430754063070356232149400232029894147658352446347778673696263604512260945286890159949099860859075837155991494408545866122208753339265402631570197662523233548077070928841719074512825216453403537718915664078035868777743915677733880201456050460497582232274311714856601756520032989358290536627995918898775194867818027605317540408606315656187263466405156798512270637059078488649983581621190236995757720861051120880945294310865162773263276966201439176512398835841564717598859583521003558763950756680532612891391119719810368077719791580191728188201936979634074781552026405994443807958589964764065095578754584122065889320985472009196785194405532712213452012784505914062265313361185282972725650350905002937111409892320657092099126454192148970893369425738916452952818496212921469176487815741244777590550094018446908417631755606723301554262825278184413063702241987415299560986312434998583559990396835410314286547957674179736920484687620836451904805857579416599885096652941619897920723679423857684398242111917963039842841607615156045323286681229350628852297048353217599530948723010736135668963035397681980510321025387880264243978306670775062694444579512561131317235438662887166898262415086653297207497652612278502677054773540453075477330208320135311264390596920862399410120874634464685175283133057900652860590466054669235429209213789433364478410455860283663204221132840637309172285507561187810795516860380886081462637236703164973976890870702785335075024399781960461783037518084711338304056197598875576732006070372623821611021551577368118514565665501874114590931434750499516628073607691528021427421028009534160724443177178688236676599008862578685332083264224107854698290567704893745207398107602747849938000532135141278078454098897860783479381980952050906542953148542999285344281412689306439671499710184725981951578730385159281133048310143012013590521929517235506715618842382515127107522115235776092500524983152902814238220863813400674499741887525633819434081167288992033189768627197105556287784669378213567047517204897031226571160997679612024418540317360269028452484102889225881591974338260867591717509701323246922969759264223861105187560165621031198883448473595007036350434612663408549607910555185604618396054891350102095512268477295146431453401935512333498616688826255747638825273552707327210938715347516808453365022879235182520113988146452428007196674359918201977920958280546233083940565659193548841708992672260287853205827283055615015235185075486850247187517895578616927553029620568666550176555520836890437454324668675758274518414713461043729468852864677386229215852208262829687037977631218924921064195491983553793002335872299528344072086326881918728340005199473733297932898410584338054964949803729903109750640817299264922631380876315411168075971012858487519950353408992226777282032557216761870674663745357563535950844639480738604579817952859416845770481784445989417259167154718678113501923170677123422723433013462862935311494525530842829341794206739279290223283618722242729706485319827132601704898909733538653177889511363534003390069357011795259824979786654216029934557656389124329848539146068326848073303737038117783675923434484814684818524759786151899275922476965478456462426011783618004286302258288694054470927691320979134462651196780896633707767715202392840851252374104443476115533895309043097836326670045123396479116591834207233786236794627654670133320394639049237965550206353271733730045027061154626214972397430317369041680119225287381928920569477594962719696821977160079514967285115031936957397040512503260338456669866829867337641094557666493383666063135351786590616374056199074510861652773237322081909641130251225689560532132836693532479298831076031168501703183584862534644508792367796950147051483012929930742303360015461605022359731461107706399627204922320118767284760115021945520586578661718310593581940643213621994069686048257019239070844149050723731679728910859224026151615188453245586050207115340444045683332941541759425230907846367152789440550422768926275599764397634808798812316284038275626029098636268586501474420312747729202685428781885414268540015854108154871961641474392514586172394466245969582611310447676902636173791876160142245322182336105334307292909824731987912157622812120121246151065221995161857516328195910758276741335989369651221342216750507906133764898702289311373670394888830841085849589987259195551934189765254532857914427991921985588352780318308655352401171701231401432200465742528868410124898012241066653694433616145556311254798606034427446631235616953844178354449670437391980275124866090070408930734628638362255073555516430317370565272960503249108718675936706985672005016414322634223996501296212022325122676149037763287014865550517114610905809992892543563857652103497736343844779819531453459647908018390974843874670325248331192107978667491693049919358412850135972607961988786482500082993389089043618219536463178602019889140784455768980620347386238610841075477004739362611969219673247203984093590154634882589195378450588425636902861971293182136668506746989149482319594993305788253497288264244530662183109160922131579677387101066214644955081703136707333203230065572105253214755530760629015244487743504857067165161645052684365381015129311093385986231263113487521883390686591727826775478651020967093031826502118804599984683526848325109112296313264435774391750611036779787831130032824229748397170511239725492942157527881193449516699154519497413648062154832030005589184180026208712448942240760948122094128081024031607709511961229170509694370907504762452828435019908026150902325541541837065717322543505969766544664351274735188401248478790242530293301881495594873429991153623491179146757575073140399552030621626213460336414763306617069217021956696875768970452564622453959481200437251824739526344016016525225481790575435779116836018666611191045558314293129844169292187269519015385511897360647109606446060082432530967872967014684600315803120922788917934766286645322356710505428842358705980461520117305186529411665204277784348047822920726197060831930027472190688612151730123023302519167675738719238044951147784620223827066652627374938680481380325221738992439300788893142793909294425993314542538161783541170194266319995800346288725938780023445336135144498971846938037482900497173086372256885550375180923110973230215033489492531387977932750014165810571917399328820710931319648112665072220534133111527605142584164184968841168665062378556904258236792317955553281746332808899329408916877752635592217819509531127635395641095276885522381393163064428499484984703376280998783363601158976675015731887122907800339189401850338808966018550389873002346465113982250111162362147597974123460651627360258919218140378835256183857097516166755621841603351473528640579004402080598964431938432188294935169150163407558385641423105746894665589341535898808498857794705798474971418934812158992253152100752904205967562580752119455274919929221840270485750816307817385786760438881815444350848718053941202690045785731732222435682877828628907286014756422453248624005931453977297057678833467741872887317614673832182807462476979050429249208333060961053148527467056226475545221783240588904549564105485301785125108343748021731395690227081910249126494812104351723731291094202267470347690954666435155365918257499509051619999742072417364734986422424113985288038552673404364632430194650892322736072590824457847484569251479392730478127902098579384099834754649025524521103155178174941352874996119839352898874838237259467891098268066224415478938734214581176045504146074474578143009663407248929396477850331907455209154754384916829116381193858549078703256427759060205694515743562975800548098349398438619378724128893480764545856796250154486371702205623490144425122178974040738609571014125382390487754370879270980652216549116456969659881364803091447584138428573289193047995568415998298119805898526938577226045732974801899953620440401873960074598620767116188305190211613412324151725538572017192406751118389736235399085138982971079888103843671484457476419507878984372001815477880308637215949816301552499072856639596283867352728166409241272394412051436001310566301862800779117494559569292256552326636076000568845555030453557835596448063800377198991680788201752559860040553067001827881000470325786882636779890499477761407527279642499722171075119455286443048063075281499636034434974445873236184029928198775836734324175021829379596237026808078898351959389299271878734780865066482265251970980563866161757752285442379542093384425508037409967735884133675833367324694458152535816525461240859044328711129660179164055092693207369635840140151396455559442374913047736504055025243177095552642653613763085451797335944799963120487343128770373143408339024741047665340247580127934367598845034260037293361332505324562865905083111551110090509105969406491768349439321110926912874781333792179402586072415652811971114031491466048885456795376007543417998772753420258912074641306139145301872214401212540424326386994415184892442254407360937697917239828176458098746482673524693025239716728781228463008970794715970407331567085293998630027833986413672856473959149379875737345560408826580386023978480379116442332322748590514668581028576963003534143054544768087127073131542885010700555920160861860268869818033177267311901296468476389223010120312209378894590699490741359242127819352238322570429251268695372155279865731794819736874923012655953605719091864599282130161576035623122970023410094342014183241001317396983551653488110274010272490982998758323617912741481940119553554545648837657551410339426863234148572356147836975425976423105344897444458578679787978828767835044690349897618451775316256639841516020744339574150489573863087485478804462714574319904820277524239300725337491099704260782125306637312385098356225971309173513306546320791151492428070407722108475580833316231523971037934710313851531531869282861631720988475822627834336863740970567008876220306592290927458580740530761663063243716939462501263998448767293800886376883577057042856326628311077613988171973199003694760419070433615493501268652213680700968210657143638263509879811028468853842577130676946451860720674719574532815098314361128127832283086723775819667274257954215990823749691726682785977472602890255636794280593746243243136083038386076717755175792217347421298330822930060307891997235198929459186225575054833812965664420370183209077990723574068243106593782698504231958571919115645184894513036620642841689904835807310938148349128342793261387569159345777164267894294277229407795863861689740060077673153445778917834919482311093987068432375082160695096567128935420231099193785103205093179514426095795561375206112845001101935167299838744628855502610458998578931282198125113175954349962066839504690621548648472215231472574053300573601269221191335947351553399201057315256340482852436203764661014685396702496751972281531882778539913825318538188146777184657566707397847927208725003344272020291226765811361683154845845649941872762111472125824534082020972105686162826857954689876143665168316276605193696250731830032613594154848123073345260091588169129727899973847550209687439794356886828192216996059355372992831501914671506818305483271446855381642195745248004347479708763257009631458143608050054822461462447304763874748319347282574400451373576641152489093857765447728556626012873563135860415979681562906787238894795865009014534597960128575395212790462673558893147709824226393438834048508232595540384635255304854924692345922746080676327459679274826488999700774577121040946778055950559157830320738576339610200494295919580908586935498022716150975805964619359853137735877288021031859215334865961237578791080825823978662051015974519719229057159473763406379493816131659262009405435281208641952716781493965420008467448141979141934697050838121955875994607957809782383968306328974128694639439229500343839554230049294995047161634785537265307582441689918117844469040718006938916799334822285983809694393095314394107811363313175873586929673611031901188364630304749918198239303124677369944713609675977398431448491227822379200044029218277619630123506295326153098126724357259585206157607382142589398788218371340788451330741075432113103464060549336323372999356314129205283679070933973008330190220213448337725007746198136236679623610860079065900760006787911025380331198367021972739684946889346965938069020732572937166171329260787189355967720055751058882462032992950536817176177037297309328125164311153479669891862649695128342305688632190305526261430772313398321043241052944063264978219666947014335198819641892713637013160282511449437909814116368308403575096436577722678162371060288441304396537805028147007233553501095361977140473344394510998897150336470028853846078368593241044072967509997340998535093229046060331678481730793565848318410156212201758139674296294998600403598396532893337777783699501170777708409743408991665044658847477141251184502953900939137903150961347001044686570427906961759932300527117483070673376606419573799832525151338457415468131181261907610064820734137158440544421020499755707406285461742208775006608978751559215990937398868628892190847318763881912725974011465441955688632552019554904291677502722957358533730071359371014042059260868458339312644238310968355717264639594318282583519032720384371904651426643511306807461521483953774016612965347808759817539735572577182440920947344441763782913286232065663342810651827266000758305728392522001157615470066421876414046301155992132793043150895753551844478036943279787493217698444051515925348934482358705510812129596731202998437100286441979033370440046963989092223101500401767557276716656157498420574558429004137650215491617958890994633685081967880927336776846446120258625428119464606206652535744605888967452015461267353827826494585125823063828485158698148536271656528335430537658215064600225781108194413785477213215582155777727895996410880298248464130407753729581732140685637157076442750029209054423615129358846213867529644398899744433154670100634486631073242684548219948717980572065227337378906498642277571456373570226941328323216300466043221048689656554173430395980573428799855359938024914097978819368997833652916573534120249683313918427321556251553840584959136127542380905909971875428887100789292243059823385729275834509068840925991026821190668154332253676311723647600697370522535293768980109843394635129172840318158656797581590411478262614537842417897305262499107766567153796868364079015681940085235407192875690917796368899745195127058423013774156695721368499942766063251881859113228588348586821089212801262270166207923194492312010353769537025171487881865980126317948094516659196131322182967151535462662109247543274290567280393058830668573308843163918056486751797005095034604254381668558658668085283590422589515904014446863788883692375477019491302003060613895060679086823658597554282670913911653690806492957888390411270972169648682512652815617946182280677418236454589102280360568200990654603647201180828066037815596337736612445687798177056272592765628696241802673328729764670229748486416438671760012544339418025430559035662187990426742694087238356015005288600267574089127105986197979959422421827354184328576610735016737970362131168723403547054892447964631716181639460752251074751613190251857166512546384995644390995088840902383530822242028153476378470353991369315394876298766956221400224797608152084908223771581836966387000778908967559011526709806652409688219923143387083388111518332760873804489118970953773184481939632528338487365136026894309620008500100937776247888438224419323680194467504710518547827675944376016245011109092775172583428060693609874186048720304778124261075716819230139374012580664623395777200481232752380295581151710292966557917366090282257962853410758343533701960364099055739189873381521494430938117220509718110130184531849065392495399156912772145649831592490978214318952667827649691657823606187781893848423437466586712149732703433421697680362371995500712908330098983651550881972194876841239970560382862641337574402320121518359172585111233824647222278533583444701797146389724087916821283846367222516339911573583277127135351767268691033863183463532031919200799383885495444849102365971558917447112091941388934161515255776386479065916510918546018983351100558768500133459232893236870754410238065582297438399956955178753154576193681698314855850547435047570829024219338795387217328528949343505158040023633005564584674920599480284970637344159661469477774627773639923252379455478024426119506760439170316017748251114002579862079614327528893549357342474018467872734557165345626689196647385147555490373759109199374419629466960666404326442917682228158691978871990028789367701280261093347742654411554161277928130130124889241033902509391795474234864929106496828287386240973310329440419510791464821886457230265271854337978585430142415076252084950669517732748654806757064611715434968527626583569901792205336452296068563433217254591048019880921749153882814733804335309620165485644572147588381532925488954175638471024658234336608489081459154531685953384290784719211495199327681071995551525380023304829556747080648570497326224681931893800029105049218898391903328101678082069857685621922350871804285305388061208900502461583491853502813822835075571192065445081104151198900889469631116361985466380989669807804960746569538501975948487806442242636717828927559234317645518461606723411703038313042897578077163382514716448575468815828692370822042807055641132957503885131940389653882067906172309376535053011522858065636361373925234347615417943497286068538285723171347783535265466133826120199880706547534314624633947400679777544153592559489536167133783825666798029617692254057849249384441748406547969852010571158045824323399062215011436549392028624133521039397858281143819594846783242616988935762469330763285285316048513228481203276366255763318752394047495014454836977076819978597931519693663293884013753518939447620767350451008242398432484012852581788205964634655296544314098015345195926020063963430173129385248201179266981169579811552024735933402938762241235434603530269849123747860340931916923148458249299820722034354357664904724867545387723524477746432335948026396192239468717240309307133507599671580048957109416617034690406322992452031079169918832530439740522787363453336638966559850560808088866266280974927117338925676131308123245042920288798948253716365946766525570839253960121884183687325426834770112565904134101512569971131706375773562440556624911103541900437397803384382013342643609495545746650887339471952750815903722209610842323323281382299076307533386697264913496892894707011751561962646753434157552337013575336129459674025410768034166639987430590936355334575287487431855957519405642408267334294331919262046109782179555650107156856771156201882116781242149718152507177439140300813637229095875484164752857336502939516151672424550373803853560186589585640145251906490147246707466759813188111090898208136079229062164568874876300422704835547592302170619657084733724611002412248177467050093325078181941724022428616880960563281201478277018555984910919173094658544636447722944260331776174125581129019740553666610692886682494958390423256636435874936901550436210260178486271944002591134738133518733752951792998637948862284855274378063456354017399609075000018573793934333999196165571815372616023055464884586050738579217541123497905365703660503132045841895098649298106452836996393988285503968575628318844167680843909473853991530522067238840845784933413366917830625955176049313347922599951085296463455375068048729215522966579555613181288400840513079528165482491826829926798305231313035479318333723412994563943580398701984566511892561849614642059641430595874590172249265440789007012172588622525669241667097733251022537152626292817981893886648521994204777442144283407477625992283480038425543354782323762973513898716487193500574695733565014077602596287712154465700511781597787080997849931107205798005252481783256136268621567412027551513005357811790159591355075967606331352227948652435645418359848899751527249323207421136425934181289712247982434172173229290761884084234642501880406452078286438653058425763363110115756495925378601036113761145075700116359922710826802419806995510713868080251829058986967425295572582461145633141082949703627205459873926578966935665278716927884805913469560585896289298402204275313825744803798926756134518840590201971916001005113595046789128760560790870167073779491955751600460803277798705934426537187607875059478108614478990959976845517412572819841773948540533363554786518829191438899110767907860417858241165385417857786657714452931405773886721589141736646328093843612293489466510550114753352759926900494025478203879868602990714798767617746693873202123046714530660587237561902881561319297521011323927901789903463559329247873680752428748177226946543158117914192549044934993104460579665439540033223122155570198870876221221370547349855707219196583275034826968133525880899637918030620015789122381642283722895975382108636796692695459342448789440266176444149337463693739297768828618850730599355388270093581754445797383861703160193030441634818615195988048759568430054666654901447165100704190745463845041810673069848827040524332597818064970929535950405668731668110594790037095248010139031773200013242816645139517614282489198411248876217918236417692706786961046004941290862385549032159985583811948750744564666104302186158418828255326367248270952627191095724379207107132276038403210958639028396783196530228126103791334215901103399080694388547535543542145425405703368982133245374646169216011699331555916891621705922696910691703001317645281290916579098089631742506757800401237305849008451222080405139610242316259593687134594771761873798731782867288153862983887080266658067095658736735132862306770310993438610537434684419773722712509765133038345667210122555631532620579262260584659515139971376185227047816577240967152806249729339330614143446704469197712803330461300792175441691951029420015302649151083380670529501078577388438077597974740909466717876989281284294025366842548349304056679307973063752677441611711630672888031495230939140878850076850862936753251564149877747482293522019154943826646149588592846322779566685182908703917548906024808788642677049337058314351758190540712707476862619844993902541038672482731259411786805587618247252120260924231366875846489940855429158859941299117837737378107190726921028134724207528704328555328921455705609933369350886450994700214643244100434221490129811335260921262865693499695569021116179745848098013913091667773443285864809297867700803590608088102355384090087600278251029928829580100695173730141325889337542948089950732548291183150086934496683967913111684643660546790367821565642152610608474538579937628973412018603107626749827376553034372110533963080310907147505806857151592636529815190202601537297868394640100105728815880315530760103721224307613579344965006978240194411692493462665498776995394401543767280673014315100775098455967485922251086312876733854391431789264612631407250508918437122609543697687653816191891567426700836556108713205081829931274178353592686517203428102422910269215129998476154200511329544904492108610277590988557558686194640100384820141184037584632248707103653012598386438998922222787231085530306745213567842516041307687345551747113492868679022005482621348617488912878562379172810691477749788076114697071935026815203307314973380550743534570532253411695667787973390262200088550688478500451477145269820979645457457488957354371194262277436098821708863651684509621420879380604569094131322878435155854341806247541027849555482291559384868956784719859506846756379625064651741107562173084451095487828510997028507124589254841074185847364033432405134769564177214422491170475638449667094938563797198637958328123565829617901890925965457984025591664154639630023731357160935412863346760892025842180416899908737841007893230639178294686698542948658829200484250543046879776988585203055612862728072881871810117404354111759768945543522711531147517910099477998179798214731558960489280529573099979459423507778268125018216224795397661722148392152095905076523607806842288322281634296900700320006641489630192075275135928385475580598052094850428453278480555712835992527144869833025585135535830608556048845368729183473880315366759837139854159837029747232668616179457211810858465109440638665610696944070724355386543913772283688973037824097274597542366653397278217472781887604354895665628545092333355232471206675523975915403067004910757069797348206598530681190216465452703146963565239719184046214968282249323747386980138575564085537815105043778385099978917522168796813276033154297820229877947775472921945167886783502534872808335957122295797120274252004804426247318602201925759967305317408950218045777782957097521913130000551261118754473643655125505914556514358061015508566177663160438709226327204151275501182061259514789323938106108455938755058993453453548274888528021445911956677683712291981384914754667823711926977349183339254892729494475586948035264107236724136663042979326426888586774950910452744414302860467577054737031946598400128037950708501146115881239938900145724617710269540229721499675866358387999834278819683976250516743647387297050783729429185868121193838695190157371017502007112663102362270328660112665182350489402407328746455889770368397761248005835917414521085806949397910361264285495226029345393629726455656723266967604003609998583885787437878298730773697640172398111398203804631282756459683985329460985195422639725390807445446052008483106057699155002492397222033497879537503796015887976890249525966672683956056339953519604236694685840152991657151295345187863038700126342816564257365195340948898939840950352402802318455264907566216049317256510110921768931059769962179034617816135784148267494749468030763070376468601750696933846101861019248673028739917531271794216656603911537884663846364494337065972218063385369279224642326105257022118973330422674626970240255115886347343829082340400747152288670615977728344163342106389142787182193124593176073834556135071829060588536715184900815842672811505139512918912168273307249170751613691050144348443168212640732691202467077953607577631597088255156048469616512394809600690144359185129059685689095188240950727520916683682694916879621819266997489757947914340565536670424367880217212863585315573102399931999051107219157389265647905024459509998708563432775411321952994494353724525670690824550882092316799340851892374780397683245607254011692876164554099064216741990366781357358721891213070814285020057407484678873140435845170469513257007051911148090489361133339416537066633871162494052802174846849385611314552418345330778437049954724938650743625306723050289011030096644888101047988252404231878054027096887302293993164835285659394418472621859271829785184958344488308918694089545575973724808449407697708661571093224331553530153867237205871701530771088031996277383219575195314233293899529704961218289591955694932468410055277009048234863815666781054917225113949805435252414573430037016062455357155286955924690599162125677342187779382097721612625920755450300324419805779725977688096425517805760235101095259571821728038129830851984610230518561372429598082731607228016232551098618008627758585066327445283307412277747699632734620984086707524051788174377322114798649283499315562861524521623194924039430221481449242352223579108448768324028504422711030507273215042766399289990286348985435042625915038711931975476657075133708244786667502412683842379110091856542466782730873074461026421896052425870616393861321165577299337772477208648434692301387104570271219690678011516932427457872738485867289059422198462465369752530662467995276374194611905504196412544470690733998771830073320651602827607491098031471789852993286896783592094250249592611291730551602025126704973509269866595933066662085238061995938647935146516200498821961048307183787199515709747021105896677444004784727155966929768869434292135902538286674543812051366581177384023973956532929026746632846716803226825404987205327953584466058508157089864608306867302291809076960020084174042072047008723449180278029598720155652621819775613217484279482843398008037761087832293707902140712394499505653268747330203056249099737606139504963446681565996862218650461294642537723657805619895250559236253230955566976287602303815695452239575949680853034504097045175336546204264892767339704479720379625665465071598479454048917768363123249037515099872618208268661622587869162578892556835565106805063094110139018568574905967872681850716061728649760764565888520026257281090948605689368452588914432344967347233284169178406297883469258406848074492344748098415454478433027012654586309641688077623918238358429273942408831420458586875419544241003059395296274769191724961674072321161774958807905521830005501364000925136178618723192448781409305744966190733216531710945093234560529925076016618016884664048836311433755455805276474505961752771458539943010203391725785363607847404930168211145650359201881698700597153705011344578551398678409995049472873370398412830830524119763627252879345627112219440511643226730508608721591621379752219381614161212636182424770727080891118348724136337874259485230294675730759549732617280770966345903454306326202731311463957696089743856800959079231698690442855641704493657152584741853031582649219070259476476934756212545948398508245093262497213696090116106875712479894432423852555941796797858092823401025040643538938967529614060923182478167349242420952468092593442900389386660722067806202301532402288643653481464566401404599259470479366339439941041873615711256580817570210072266762187427718272062050115344232378066097408285182531617615133540532786557670116965404985961593130051971121494621920956848245316899133721966311104618380046547564403423298243032728648470331074461604238343077853294223522500184440475738834391779734457093762309602009203696740163959830020802094951087468212057511799862564153287529170540247845727920432333716747583594445883181803522706405672633699784946062680334051517901051346817932698780675011014443172949449460465596439435510850074902877118207744786934755933063006098822766536855770814847455264888255320627276701539046479012545484307580891223725521687160813924119408971785723737011083665568970934686625532440100887862743156065846148949156582096688217989912494026052542847718680702143153921708643038526398235030907121862885171735229955070190092125467946624863295186282812354071836146896231286578769451792680319400282052630589560037397295501851017346702713675920670569624371131049009049639953816739030867555825794275457333336006920467045136194146904254879387480667805240390248723424534475918313126207965163457727015383969872997512030867186909686952444575612654893615569388867009118820975630573001959567523603130695091269237936466776018002119759971079307709877695571756924297300324167453849345429224295678421296393327090059248404821919159415435129620496776119952754050197707086949688325320492515923317259138377084078332941388104051543496170208394078363816844983647982610432173693315248378156575119041533479625579016427292266500474381915329765662345092281507847481448083140764605089700283740706147295504662704781997206988614493889663714634646008670352557210574018344577789025974948251826203451790257548914444205536243167790393882054717215737532756181686804285658920011827427909499620170796773377733143754762415080136811241500483131184803814012767686486130522854370350042082742255374091780692192371127311356398319193844357843748187773787631832302023004715642502420962892440403312820474339371504274056520010487304430178756109512347605034476814887397168580371180466279947725747988862183182024269054258414545460217306481001769082024753882147458188037608871502593592635359724782086866910137835977432588028084358477318738090709768217401987410274902813637665562095858497096901111841942601389496993451863471747387693402361724785814253030439141334344792930710108889032796795135702376153259244656240399447936132092793718901266625871598826745194098992032142203149957845687111183163279082338384409220729642201768726099358744870934136487633475748353359958825720171377104743089646018986331697082548997445999190318124202625223575260392776536241364508971799879988876509598069857570360634409367039670764950082491130046735237059723252903282362325270019788695076258737672938637051546481608878409744640618861146752599328629808775272932939043207605929722913202271400048830560653683959068746466859533110086036866488784958661989210958271075139892232171077162415079848173072540580264977340606138306465002886577664613882582591715295364990241304467012639132893093564948612548599500514644879861864665230925692452100028514237144074792381399850779501512351567230635972838791021397823235337431521234781406075432789552184156779819291030089824301959673539698261861506118026849405589528313204245645482170949031255520463917648627025566621095248201375231143855378045105684334908069779725732010125088353355532198936211148591959616636386891245171679474829965074080502754854678171150087354914785398551468360560921206671813916072213760397087615703051632937684985314504314999406500189400511360001199968863220281733679167453138291964335279024425407438901780583051595606786596209147947296160812492296731531604394064535753791209599427646964772563181929064388839283740456734073986639050956344255109058348865908543046228285694374366536061594471087518170801023444784111472784040143197882708800801527235508264556513945264330872578566518519890933166822826612059941024908353609967847969040089932837499673935225350778060835594926548667555419729520235850222542179713340149876802879160336503109921179281989980019633778991456535935869481279382814357595430101128229226785716094850273478229627675636475759984030223650249016551911479205934408969879886456601257813161949955266443638081118034247554092716840141019967242417449309990416486349551356877007958374669746109006288808401510406203301480394927402368831306691357641152786506276614062579776764923282656648252143308144095441838597649015742985004794028054025216673217959910380297822667495916016456651341825046411320765238681091919029526144180054132520371957303053467804189803073372916191267645812182244214616747678598900470687610589314820486890750326739127384490069073362065026273815150884280046685261675508337452116481840230779904526522121572395927997260289846538744622686761916330227139022126387058666893833493060748337184705087153968027081194833031445346290747808520461271358972841817829150839202754187713239527482410489700547951426066282639830240121091120391780038649061542170915059269155612464898441089893757202273964958481970900437300632336876711699160902234307839087315982495925716535414555413755186849702297473151976706187003939460163070767709332532538930378773268089233286571454477768655900274185611579055904134381171920636408004491092940870582804624194636708082821595737049920110714577208483136698432324879155909853245023896524064121435950642757458042249831258881401379918483215732520825550996655698704914308697034814872515933541690862267673356653269611925500862997985288802881128084268807587478739473746728204584632011536679639023889091867008189231348488404514163019112131649580384430535782949356571865533760017808094575674577228441721744038743159805944592517676680114532376571171542531891321699352668079293017403952019440407023852644276603961062881454142298270986956664481826979271649233688824775352482303698056652255441642359450068523784074978139048735049865607574121557321919304907385587537086100369801949231434992632674978130088073762552545139035214109521561578166809910469326827887720328383774124210637950916006539620980301136984801102600955507050625314653894413306786366115380314127371264756685152735945916656262694779963890994284935636260253326171924263224492879619412142304823811701554748830828284674014233193513083173876971543427085536853688895812243646374666917575876260877761318163906623085302115327327468176825819013816117542294164424079120420865035589078318776427952623741970275655616014700792809620150240253448381001608676847661202029649110326143216013382937558807386296656411530686345419217031981144690000425298641901864653352472726674336527814587149065404263286131850376721839737990546422556374007799644352081714876978205219693582705718314265678319022902360154206508712599769400817814853457090351291168602201117108598612632770304632694278677533714016515240018662232413117807978248476595319541283162891602634455821349582565502405206774363329819567481035481336938174838010058151130878064138433553847389706365972266556171280110578102025760414285233547001763354270249760827813999364176834099925207430533322580418316606790551342036714529625097172399584178186849492005489157113459242172365722078291787140150279242566652272036533469777733537468918723813174587595152683542789102181792788634645745757917470583498532250822582138827660503039654367272383363872274801763565462478035074299226724192459865949711501819788315105311130537001722014908769699195979358881143095101741320380019030416452354174657987450410473349042785897347537303403308563080392945695273439479049257759964633105131660908821217923100080633204269513521549785532033654240325572980161464878356966711288241920979881839724684681000173512053743807510414471813204110078645083995062172917853800982181099251713555848425336282734867494286866599741630584234712536078286541632748211412584468548272344105921888541878363909750371775743099518628907147719415198105511380301021283984686057482017315589662318517757998688195093346217234374238378421613076041785525210226729213910196899310193617975359993182855890565668213871695471884026442639408804170909880566787966776834528769561479662836876481177949173122441226292115278899148923312566342222277984663041102363203070153091846655930029689448421206855209412896268098924987754790115119253608459737054665816029296372884492789220857959474014192245687330163362333477021122919818086183258285427378317320914723359986380319449619844976112380996213603581058820731378523158157303939773490484690862549235673406890714779803307690342342750509689917645899129985728279009990571620540650434747388475759020897904432732618997915069878411979207109080676150101245298025604705103973664335124001575336294263076538856001445169643564925784295713047833757067424362131270669341161439509607454553496036904209212323051743381832403678553681967937105806090875752514515115549314885203624486814873595762026345164500213950580653088339994506832749054202017246091493710018989439474084265682686036714469342525282429379408988774569417116606687254760695152024851155126287412070687882310577208347861172306013500712724223432091080582856844411868757582777542341130317714248724655740886206001293513200854604696008766429931884026921759183312046253202120301843005350078185970126397988299362656661359345778203677262240559573113066469868035880007762971167390174399218935914828994194454566076295480212615914385619758538723776856406921728668722321955241700698729069745744574256115923881173073865737084248995853305018279264972288374397770326026057606407682645811731471432342690274852681018221560437497009974732169072751250663962654844684864928095200854736014003153340140220025965168908744186593904158361558727395684713623195051546770023833176438200292698015181562000013182361714590662132445076720665112590430170656385814348628302069056728659882683153846017147947914675946295636617804668845023650958520684174020908859808206663171580343012436825261509591393751417367732238944828805099031124128405264021766165149391889526118210271433743071928994776787363129028355857868295877977935671734559694081995372849205697213208188594147198081791291457650713205068256667682374358604764797709266066658984229703510108719024058998574927764931067178248246521182552614896976493762364361100285650301586489016097725938564259350027722340921002080857018077553785690534235572173599674208192355337128907104089374227509925794509081881715605146318852216472998410056867565889309380810500339986786549582100207155415125531096244451325737044197760393589535180512653179354138005481981516211798482412130734102336738330360014131296730504819343870324039943061877110356020457795211389923878820884285547988520674194822495605043240338642022738091906613020151787511925289168619470750074475550546827287185305050317574161063919895609707186470302733925694705145483163455234521614956481625625425329254525131618384668619259905807855819968465981908792922696311413156154814363122906190868200174379256459520135318749722396190464887452975401533454915565988902015832592979385609499330194677852426675312183133710252585089032864805808426797534328062025626676536079633436188572734419675994151364412892529616145407338089586056537869060882040701082657631480982586519720284087226739521915785431409740806923949966531203389436162430598587754057534350125840516370234779197239471172807340879390777867197996810718786003255871886075678243976739261973450006258593206755240205947696143289716872184006152542726709791123944940565408373617148768051224625180268983514859262241105157274585827430330616710985289685895587648795130229673860344345687955650847349994327729499427118322797999433872277073950574180393258783776410577692202628755309414844150839325027485210224572678834370402699964288957338261555218422722271919446139001875965653629598299579580431758016043830395259908115458078397429946736853130450526053669520164811265245529847854193296845570936325174942743253045820885802761732906346365420938839217475883728155454851048383207794874641068265820330057112090675951311374902432881846054652573343233722316483372580777106607595036817130711980151151038543173016015720056784434669340952156808923693305365200955731236175893276004354221005261961057839822101880562974290308372271358127304033354136859941681708080757803998579591591273197475971468928968365015835878984711724271967273046762952704198702855242702922981475344484552740461673253197723198561008401475756690533473836867269816425016655757144130069895496949913315071150872306589906052321588671927525498410211520428358533935492932438307823082788661528651264883462810678038801142341028783684305443483242130566862660130888514578407789736161738827267777776627045759161000720330226358273311202569127583090799621652588189894068125606834827657528069053960392317973577301589533412441799768564100508847161756652736815821896005670203119639697345871549408288380243880592611150202303079039259312440728120234365475128996908463551094944223153996209317845588325665256263484726231620703902618403384439268375565049185331057515893999010008877517548102544601330214209367043660506237988824488959796135424644141248125855476750270157372879945336860136109759785996990707743560846373477232347465221629355944166459470474003908831692302328941179030947527726521183068416958223058287518217672011178113843667274304760882813434549648875544184777493914579694827269409354430587819726340149370181830302048401903096235589230367906361422777088935156894642351577428357640872101718406188529935049753244381685824557933421855454106974544412285268915987388999372461480087982244233886711968667296519903676320661620905811134688742011726077740677788133714432256210898106654852926222849331822842016752338791264230836454947226209538051774668037140219680149780449340931124448683198020113201039577540880567161483113253365698570750078943946863128745780438572506556386729312865358750666653762103347811751370681990022653300668443571219885692765386375312647223436848090170925775030253130707984779690969834716414356626042885337205355070412245748433806325944596457327066373112302527805780861331831883564780845192626323638450517087558526562611777887265578612966099976004903930609470677735411821534637982209819389235900283933470240604671234198554222575324261861123324656382123172914713792967592446503394992785975335175706604429866517294034317912163082360280965243998668734243834573356263312952120556087143178945801714068919566562264171554196849035843935130746797229732354439350724394644192795838338517617475569560288772850069688198251491937615294552687710199272985574426056307510363468033712512531808040437425086136595525889163989146389941861751444857592037131269612432015522754466326750611555864020242663796999522111112740711201444113888218372461251674455879534063220381687584800886539249895974347718831717077852139161371178314554716275158115691689400173485943546315010830938155010078900919398824225990345643481611921445435801049160284408309202062356284269155823708604681883094502510211473597832013797871226093738079530437322016996009638496673815551509849814052513929692693422148885637963920730240358213790623230294468142445935920331418726019207234241338526406919523701929494310207216576485913539737236545508195201902456111257152480179340377854976006738621852706183211057656907666673755787385135401560208754668927141811699767083140755719850565734099939277415875646839456801042108666841592036863294775398391450504303152533906871348982766465726715019255404363402018726823068659873547287510173908727823819479080526961681142143470004089679891242101357737966233933833456441905756716433217789676030303329885140121406270502408846471267387883635711367367693783009502046987900126307372133222099683230056238891001370346372690143052958491096169340171405565125988585491683631323447377281092372453539598640947607909238898089581139462566593538259720969668279168397721035360511976376082080158764940708997393774579815323313265737869849683639059919519544127617368701335369514112945277490971355876606484162789026080429122653688650547871763168482607323654552932330072856738480609734126259665182237842004728932621508303326384826047790459903747141022940385100390876958567500007636817335555940487809572047194456497022976935874124127971018468688508283545852216704071388980138835237599967226079117027481532390845233341177354272942672558896214819834176127179587023561191954596991937271960696578187929365421976733770984323548275775741221827334745090152256010146100400576900349327088287199471489486895476361580096537033831588596233299420418842002256080043381513267811600657561719510504329825566649441031866955691155290947782622084564343245049968219484612704327056938196682167574818680232655280152827728586344560047964219281598939924712953814205263631571702791438108680911513185359919674162328213117216494079340552459370937084192053432482175297058887019737051660157619443442524537154897207513187181998389447378253642380379374045748662310454068061451485925335492291408508608612633189330513150908519283673060738522560818592893634262626691223867999612358628556476895655801970010499421207798560880166659305849306903684809657600077822198480204903108903001558734506810574684794294335243697977932322904167767643365905628884504911283883146958771980208762876291134245982039047147634688031714111824876924301414377665512173840349406279399470907006990879037905017684374759854819083648900450789088277450498343056146470802118707243797480087411937956926728482408191111880312747225989406122279920547575625013368224404144282777888073888094388409748058756026428547001967907535386473950653676826983154567743706324823085404762190391121578872712138822331234641346675303553266144485065247346390198680218690552039175529247098324668897305995655595819238459696034547630163022650290442662612046892611371827453675669071922012954646319723383149489132109506752714453772699675350522125890619808099125876737990052853997661684488749484878969622370748968558143135939038048112952867080490876468489156598226925478370106748482055687679270010590421148886837428144052330284421534283145463773279235388407548060662685261356056438766610294725005519671016769688770522906583615153406221235644190421420982539568039948040112083320829294015787952778049226831022118272889420566191343247668276774440630471879742306377857562322227978811318220873405274830042907291118455268797587346820102890706420115711975332387210491163171414508164815820634053378312811648585832658848871884120331369405703607349896697728103090940980835049705086097295489333180265358131968613928940754249406272648545204023573007030448740486329844883247770346608218925561154444417858881501164764057226009286615030444583142010809141191369492225409178043976229891500722147108352944402549814168348809135807792205132516536077227512734286172096015144417260820328443173344898882100637030826138608942410153017288630769933373048383290198299035544395228729359110055434504822541758169939409538183390923500088649152102673539346563264069447452150785448480154730919012878737829519270194142915053758316167084838866892179943934934590524050885483916664304810602535000763171993958981092993882527866682635690902942862282074211814221459312099666604722816328884770052064373194639295191628201794766798703410505589876019421771626086917359516855832663885789734944059659495706727731667050879470731431390249647591295329524958915521340225376575186384809229921731783467443147168212646555188173662782759407575058734329877574881383730727126998567936864662511113343050296089634767070141263348953648614003163247263034348409206102475563927931189177626462667852417707936741804713907830065345047480754103858058945487964873299195376109590645233248431758174116826650864518967110411856092052259170273271756111801861079268318569046437619597113398542729172589000085027541448947441323750452749924433370776235761412056659214361556681583641841374444013116216914262809463714114938749350710535510721334213753275013917854889158740072594771291121790986024535803580971441545057855626550987994085724962999192496468112249424735416503782422967779684340316004803131980231514239510207255935554909596424935629448128824979471769294906932303161745287163097172783308884371885200539596083500158989874916822832756686261610239579047926987491880365953372729530759632392309823618266751080963945838043842636556534340759365691177140132404852160339239494209076588199285417429379358227126068847376932194582288149916352926285599279181026862655717026576215733243318710724333339044536141370234235752995941227248648948999773247163534731685778371939035227095405424699137364180332344613700830567642077665860102320049147460223475067242616179443238270646696536217362744075691415667658321096214253050191124817330377134356371297268381116479608795855709454465120296296304504814739167105402412525464793178004918145645820953858467005912958531193109930372810267497631682946064336204906754761372555556626078265617142067198894505576705450566526198498531024463572385008721339343475680189148161314782608478045155708770881145187748053528209092158039233576294474522895928915599693667422511561263324804382846342562272477064437647275002130008803521197037118231394014080083577317246663714520795526795067987277378572184889531357900601304384482060778264409037136370788755215895106887693754623407099804510190249421758755787877305706611269004479592739448831875838421768037586854621387682348904045933361394932729663031885281408570013248195974438089835616053502570271060763581125387487076277981607081893475984969155028908547285049673243335642944066809407486132408434893792135585146167764722787392381985712323238699002200710871719261375673127165312375091578824821139815001956655510738168292333633798325030561393799308314455131375142814274404015192915461306133783928256189601898109952999435554431241445727774634319377084758005914328786840277756029833421973172089760794114429248350384210905082366414439712526074154017430195334788498013681959596630605733763949592499591704744300723346663680552052638871160751112305120546996253786208082331376860107343394766134934482447746291284607525260890403118930692302967947996650047761010900150946324751544396097182930465915917732123150980922365958760831437730575177047587847922207107450763354779453459114763202248771435532502724935906951423947295816066957884023971414249790398162208505744985691366834390129946540904668505024516584617179867888834022118513305213934516429420689235752623053611947155664693863146565409910452265695310789149877098698792785718849627307935025878554340375697752631118519327353365506086228482722649354067374216645288723448627555847440898733059830216027712723515595466555224982645402054606238541810103609489137239131434234148589775651294367854972038450808215458783513567485370270011639668447818943904602364307756290306333126577227796349307412022519674731671190044208017233139225468108018916033888884364222252021391699267683407263805313469288960173267212954892124564967105835395258774180105678314844323418477095641759192331801159793510204603767224287127601470912848967214990515391039295093490248191078041669895155682551295196315890607663791109952696871635976893037213412319247893906798226233705062339054910634631658998539884478995151074137561248648977301862397452485065201154990698896034262533458758546611202105906477056023180604032365546532294363691590134631432688616591018467641978067511076994772685675807800538548855479290400459378473775124759287143189331731099648163756139644171355395566154038435803127633053261310862449325147170726874149074665795605255025863056073017250933831370406540330128497054055926563431913030175590090265254441053844417788031966276233395107369903682260538614007205515034637545785127366815052479627148240107739382754545929174138417526238627854067484089488623104993763479589423915212746531231440451029953735089109357454622650156485591880487822577169511860326446585410757604835303195642942517232260832446483713720483430429849242999530225760495054215578469005522417124266076594062811959907655431899667410469504660377251531749665279688237853178568165734040425253839431559188555633689371182839874904871163500738598040753343749057067495505709126843373993326252573966075156374263266362414117335913851312627077497755106758353474716877518822293001002307480413133626432984691951907964921447589635126459144763685486036348049964623983623610888860778821225322160929330806293553649938218794461755010865819617289314593383570817548633583147660524345879091197623676216588810776606137122259640314516019562029336359249415901849501323402288528682359578663183603326354233794476250518349659223210538937038490920943569690061338038500061897345861407713755766983246369959056360980202980094182581961220198545191438099464544831526071157956798802189434389096020306696193987252276404671090584381785119015305253778901096060634130445974459374393280195332722952474192843586937315804712339224252082029503163484878345763691539091019576183445231410139872669566983116249733167871279873379651269974620335513047325108106316643349966977770129292695397147953562372944862708043125947478187802635348997419667926819634627067286818972660482839068156269378319249822371301320260929775874793591198076333850342188036609261210561087855085440283671327110106387306553591873996443487130198478811532248747753401732062510878795256233957366325533185991489399048345181191306025855029758353798493480738584771343629298780317224380104518140476062326640342560132028747504825313455330611951602335397381413871110700083609852165883140522144296411228458042539027497727178511471986176457617253971192327076313997374761612991460631897065958029976976200133750057808568007939816566628977956524991834820965515168880586065839573919126561616783209465753640583946651202149362834350820933139832135770293494779978178381778539742535284154538115956714242189250218256165186850901232596974932553071630436710968011084668514957286391346413238801290908067773736023293712114527289432310775258030234774647617028952816411761474804606733612089756238690353977929539620358777725894732399215791101244982868675957995421873251340893650955904162852762753207873790679096556009627092490064675430208223167199892404613721886062436793359509376079399741083648159856734927649461290348446347459946101439820242436856872678182019927110565401505457697390703328848711918845392925371616216274953817844963178294593855524916974338700549019138827627705443032358410045362437190994245935831236267588699034535055131171530928936985960606218611522382357860537442465689233747253705968539697678509363545072570030642476655657012872666285861529793830589460227698935066414543192886466134733646973186977403085444311887514496265433507588043630370208800381893461204215015644554437624228463736367930455958408689038476774230505442685606920144193450187333553963818506296785756895330279959913402716000079529630437739903681693491221287734582323799356942714718301280377688300444588939043619683455348119667009090695338181935042717192000547219882226280612674864129271846674471289739300689407322687432033734698198423171435437394167143600087878244232391036407562784091919314279761367257212054711511741226877530341832632174193245350498713945148435716423481043496134059419359468426816400862340789143508042193062758081330198140545245958618012716189995325767247142586663053959277447744792490094718107756408967109407383479017385619159316112004883505202093557180908992170835243810849047899659160029117401371340101611627071274233569759389133320709683332595751843338573600833470038552628219152278607045980378178821581099153215884789023442548991832463536236971115844442264997520596382022195015573720676488800863494344139132985081984639725412375282419415946878503558260468458106513521180965751500242995578157919549330069078506325874680964362652271891287203268960010960289897663857180405293778760004485232744335684578368341371604392217687739382522785621721870509862140552644301810024831604391470037472888819737581005205973265928829236433543447978550411758681582916083940929342253964232650291783901477466400419053040113898380428346954255699038612514621565017711472825588813511999266459141574252675875374287337517851689756727191493268824270824307690528834117502832726650441827459796185405813396508713918239547882483679169723440072750784651496214941043804431248267183134693520198912124776298858628769838970545396005489547603974911248723877073925938155130806641149513217177121877263668157825449206674699115607797112319802852339110982993316540646966126741995337792992801079083104782817224089484581739314605106241004604855334472593349871285407631018550117214754195586733174912207930507944906174145207787825837249568647858205315564593064907486891970354533789464992917408043344686413592154591118146712787795076344068827422329656648002885655357798854978468106569104212933609927893772942710122738824621861588999768487817510975297256395004065705925630830310313872285352997761639247259816934908226039561619688968362670836130003455223473546828292379527531147962539477705825577327703705468827232489781389527813309989255482536680700689079289341175185816052026392737450973712004395427808027024815104038548336245523933910032031890787412280708730206021534345186809589215522029569772285283088710233148983809305773916033208822921482444465312928893002387975203825433421916452590926351466457845275619396838835370229873896931562949905608775935816515708753549226313027232626033770201114328385263766054685862447571502870803933442251258210710902292521672419812297697895580575185436423152198358257479999251698357346038980804698822720044248077728643942952660833541423200202144472990819469888156126494489418528291193260973473533050387547189896612743715597258197350787595812256131389543624542091265299455126835177042432191190972655294877344782384588881509795052762441670232998724252962268152449848821181615922100227458221070050962040139171584752492682716047502762892244261715925060721533897571182973471009324465152808944072713873884755213757451422166540735311948397842704489213089004441977517236976085894661899785736709213966737939642598226701583017467215741853266782372791070033899545541906404840768422505253051917008858349086792459159526593708480756576670028886343195323019560813672197376854063227900115806670710356413551171706624520393197739423560011716379956941345944382556403199888988643635979247213875768097782311514202670090139980885910670127508403421028873999700875085159701290519509067731154468914245172865474031379663349256069659002639157788318565286641231174469962680747792311918776392211820801186455691380904832155046150457093241169569680593029674334207166307128126863057688419212354960327041392339551321014316408080451720088929601090144820634525826083186719996270973655887705897870408019883316713024082971174396356762306386852007763428437082981208372391407972215637797763808882111634874588000172963513905877573805063279179532801668348925418460799117873485797322157047898494455925084286772620760681130251226377632662475301649928413458017127752668723390852612878443558700465908059431288850377319242019239518403535896903649947216549131510576914451387751627329688805167367693034535024640737358873554929965305229918935870379191250007919601965019962138092125964253494731050549237829321543104791917468604652376592090919150676802253624901123559344032111546947225152619430540062760474037062129221738681152351103458074385313104120970794843903597519687311907834620590603887624232765291941048862539170745214709851720523638903472265493061408555168108542408777791625098843855689492447438560378312344258361183227354655877955374820525182748935126127328901291295512600863053106084076551274154079855276592177838030716684363060360943104470412144304723764746663512153202934694523503277975683361116403873354792584806511147631440829558102843492480665512159579279239415166263264570732760541643098901211150197681382850385656175334765549155808103528079243190193751927937645370633128235357235116370335089395153116476324390466582501747187577136450709090591448159703666015611017078451061134349628609101683772095150863351953677756133146509938689757302731748191722355153806028085587913433613017931722002795385899844900660974179343882245059079191355651638150726965809249025185397555378416753107220918220495759667063882944670683520274053652910307154159680725476449075678775827800180226366590317282999490090739926139227536308353507459331814961605710311372306304365871147970310205257925729163127472992903232161311778980622471382772518863299759236758779550561446914625199058515201180446758897989488867041021895482708009156510817624083472665423040739174005233015760316951044970748169734638894198858842104930158806191377489875816031938468617603076813702450770107385795121566631239893855793388182129429207481930605469049276103065311172734141598397463831468845927221015819257057624188944252002609055537366539295439443032804020807023013023978382649732619024011694586035429436313841957989013473574957790444445144432613261984431065608689687608046071042720481950388808809241207870233232340610383684539469723153473783241487410808778238372189338725229291045200941754071233108223325711766058447728984988831404517704027985358914303054518629292661587882934470515469575916047630470946725302799576563676244763607193808817287380469101367259908895830816384337956458428455710522476875531293265884879814908559794514424050805223356962742797076116247727755078388688275812925707336198844247623807586701707499209430769321586100318578153824807236377027035158060740423281877749185124989769373820535218669860824314164022452756458833606916083783222012303220791185551430007970365304127557118258646881718245365505103024603815696909809216930099344433611303799075122701614805047106398199449569919096011367294609607020748445549558680895927837238000170405193345137452628432125932744047435132567422398000361882280035007460901866841651243543867447401502572871714470565554258627988653989956113625025269124506348898490224403148155704894791994366226412301284730230182201221931751526573883022002361130408126069656163757294508779813995171224504558656481472016017975310537952480689234353582681750272753640731566373137600427413794771009144589294869897969430174096363368834579179084197428872075449225297194241905664516289964506821823813560163477466969410983691945311297178857319293473055464394269889440622889852167552585301462185515017467925601943221792371914835842368771689221802349630211971113754990089492073489357207862785381390100924315470651340463331703459501789624671465585926070252562225094274821304291759107409953831961419132594120776644106677341295476628686705784095169836263026502411928920111626698338344065131262084869156719042368892491762811327382559823699725943735239926584123677249202201955380696955310329484180876768742236287794377718207639563830280511345440955050872193446375815832349775947521870577272008693874047990750844461122714490469775847395864785145253552726617860214045901386263063678227099575934786382261603811330405760663871931195620410239277683426789128551018157872426096477048044159625718401177761341255107648368819343539469582837502268057206772010819737301992980345021660341152580109652194251209040540970810599830431998122323784781982951380742981179290028679907236973405682637530746075310564579134673830906534541122519847522508319210485713629236880118466461333348847976437495801412987335375338791445389199208369412870600154140963060018766060850498291563413335335831249173446398700694800381491771902971907269941267741324472305891764513879964425826780655540617979211705645085036303786914651960686358464648619684610677592784315847721888717409293503988867021044761641715376540346915967680418145989811794127858067034331654581115558616810740071726914339234024974633942990085237749337760518678960216940315466344437922134757336088021033727897534355470878741402172758780906044714449458478196921387331458217931474116452463956090091530085515826276073320126195190879463454224852656909058334243873307537327585577199895113201764956369959774732600613489603493343897601243168719431708484541442444276579254243375950777564538725101269421426895764970833476710552956076431563296244860471367205005583560671038033592035447740867885312973095766895475199819444858097348899307302113816582242479882956414219860085693813433822348789886802580748880472277631454642185464114219080960693750710347068514741374821093317936816179397146124660422353068077998033139844375575132638606497278825989445793975018789256952931942025263220837833327000832142219510527918373462920428687186807756022823819321487532355673187906565005959930921097969874675363266641202094527043182711925750743185425068960581561638615794114533589419157660576801424551736132811833274113936205679463382541436611290129161013652044782427901253405220181628510690329314617825786784169473978082495119156985559089426655312210690033293413157759012322789451767319018551820249624989265808805939653403947483857630815028170937122085730575542836428995640002941698252078555412613155063036821854708282172599034390531904913911858420093188726843787514261504329683008450915642688306075180198476469644735264707593039868672354024117868038734057713779925084071127976924401632045064710079715384711813749700556419736692973328170004711580921324048572202787517642998691672329408695233839777520113745787346347896023926843591246391553883055012153945741568669625361277217104600425131877275190622132752745748889105913686396508048148234211043246087233787175718517041736464079761424915424687950683765938964395845561193569921731732059678289357078135284676759515853875847040184572401440470947865780278972924733578541049966298492759960603268754944112661556885044956871302294260099284614889149500654271614982791113498650468969381421261528641648439829734217172828957498137363304195738395006976562367090863670308778737097396924611895782863073813788466862457556915606908999936084198590788019409918169073723189508482133603037596463253560862507500498277042808432217925945289996557603292985911189341937950766501116680199084343735540171881805068176688110767478657962254539697924329175302542165660643077636295986586445673731316179971113490225834561683641312983574781460282410720789232817914014369455882576947860936908812286959177231629491800218508045152739733974641434812676651277269225431055531025354017670774916976909260420460186908682558254623944851174284067475691894170091575720138390601727597762234211079420499696084928838561203809091676427220852366584433320689548641373996534772331405587620299585991921468214641061403161638276540188514613429314026600083411988744083436152211030365962899892006095005146917521152254507163793086069006513516646750391496984996542261913340476882071390877983856567262402874173418558804189846042735961263877703091331949844054579000312855280875381519297260882982231003752907205781244879662493108997023037708763795356472292352039465941735330307986497591137927764112429004045203371762852429702241794205563474138382603515436661212671936133984072635965302117744012648423340724123884130227971827972456227720432212118872708386530585500219808950953503989552354675805768364657485853398733875096540782951662366030424337096567328986006992739744781374740007901085639525433204281323495658802318889030688086037120605834605760902828323445013152383544490404968642992116835942969082776977146359169461704428603029000572867032862562037680282303615634100548607233339357452584219004808993159285809748812252872468231964110577675883013607209518046824822735976433315494830303361479101685340009637543874062734277860909944967892220230029275769027732792763137364292604137861738879785182497812268217055629122423457797874986664667140188850300847167241080826013287916827798859202120324103018909476232318188531824130927520269593602515167049932160210178492271007695659797366296547884691295640015603241509171411619959912775158432941453591861250648357874051936079618887589816877762457508076997976597591447513395778737472285706974556855510224555115216743063310208910488926936050050482880860925075795199468005665480605873623078969654789584495817686357236035852373194927841884301392013928513930746498298222176530237479421685029810393999329937766913701714328585249508811742507174920720986800184855979328734531467268226996663609865558602260108130471757065963378963162356374075758364379811128899502605688930513508355148740427344058151937321472512384026983336719767055008816173447635632334735888305810249095391304478051321886705243523433220947923113725084144487170244723415823917842106731465736092567549762339960710536045704983049467846369051237599146616955669026302909893384671165200301504717123952678962266080542258954683618255917709400259544245495151690820367571723201657407008245773019316783423747541180576708198349882918327607460295245840242979485342160593646826297752330259710859522112043938225212600431127738573228142227996319166413809667004678627692574330832562582952741710053349846561077895958086121226449253861007210648784816875030460099176128184919688516053365678248913621391050197677830388164494223293810283470148048320260246369023323905953258726760582122463827466733812314111812901922980785912824344390811951192991603624186826684463071986355938573762460264037043789366407488680465800051066563340140842638119206780438416096059241234803605067909095859954402476006952775297639819737913118990358503524054728416649552331234054543645149600965285362474915378050424544561687349139687334489122697553183294882491452402686808163969239642087717038332016292226875357104749154131729953110113250808156386680091497491993633105920017685233146001265234875780407950307221205463768057447989906510795751212965362621727928162630756833468651015403812666242359271102047411138373855782090700890886291354215467911834895577553852044152042733350926557489938001274794005452254310011050634171580107320866976487122868088018727222332271313987732651690882925271589881009385197530487725093024644261870847812981965814890365979774685726299200642493602284548923138400845633793486033008350795928335680219618313952277117729749479694550412792134056860588440277662529254800490472692051566673638143849355994461713718979891745346604227227771634777270186144194168579250485344280183916983996674701430665307887417602455115879757601107653137586891190486937441617889909065103740454672821218725231151285488414978600441665031934692951416223085114880494018457752154190714630745821894423699313682353513114562286051536012367634260256303449218119533179454838703133540351765749840148524565492270245105275590459763118936396308020301081693447703590255936967830297306330611038610402030081873692017003080410032668604378868287730650247083342232096681882979463697966734011947459950649334673655284656271288846468834333493181878279165366224700175202520159409957695390123121230855495657468555721316597869620904456065664956702378917712561487989985071336888888881625713521098098125867409235294690918302488255458943704793474540032881609474173388794949204307306719553099166668431129187224642542434425061356745790199187282921474425632688166045736433903364810587148147780157433579779374124781507237937372123663766070474817781884438552516215745426682886152195298306637019256923551804288422705707127906169319607856735620649871064542036727770954874355097664234202591347981161842728336170138369550362977176980634073713830123882673365648246970467695218450836848953161435753405832288588837602718715175180611153600635944799691451957762143708033389516564279982231281551344929307238401259576741974152016848525673338940108387231140123179922557936773628404018182701257680295087742624178247198103267682398838939857162509925982827149714544641460477915515432211203969977730766034841420814170749692042220462034190278618552057149174631198223606261616443179924283151328329290514373654864041611305904413513776471542580797665212378203486459518361397748025992744153256074549928711281486145411661233111068967478985393254205519022443665411140531511435163093902287339925119451533428042998908103914041571892587218124669431902332147873434367842085734125480340528862924319461263244642617590931021910557604832965630815282293229434907211643333411342585878585702565699613659449293013763121803321539154011521798453959831992107468910975299616506394674666142288903545407393323800939065415384800246695112610447432970581064310220840015760533145797316745061848808772798276266757271576149132954207731843200937978837885540148930340459456142735808471824354679599605858353486627855087162687214766708950295908332088701255770841120222433706992550595958739081271622501619036442066899638169715815871470630861529898681711072363450424304122302792031121456484387253521089985720076435037041101945477097836354802918248470945310197058747886747303406537842020629375800432138730157558134957037184286540411623205346285195980033157204392197322874874857399736919569323542523774138617205532662869428553779949472935133292319096340867171605609169580383704976714814186801864825610527008878708247868064485346971882204748498876992705924227426676070068007413446566844308916846868303731157304217183013675491825852250408894982261029864867537183968047657458777799511603328431920271208971139294431024711183060413611047035315042867140830956298819314062051981791482274130223777084878688542086079906661424369956407887718767281077536427138830561782839987094423896971005609090459766717860564392449896042635964511576750353700134613930940948741841428150586261831687528109469212149480680308417401713819918919483811047230225746383369760237340427619379001924921948384377179190645028388914247962712055687214997144671193451710382146523892027183596703170379984698435864064361204456519687479473127800876713093989703831377398119966417201048394706663603777872594287791510849866065853401170978770562876459502038899312234417901536654675571521463323812079643689352449843173085711272299416790320445002739650796486695663110850909876271935459710740859921958318500688623784914886092179361726415318103285804373417972390560435506945835152977112459525963632327603278023587604695012935847297162400351606070933338555008355198125671548624701290190956076438112664671902375971067835458163056466550323789565360107374915980082483689764107041291348761153824570327924532240146025523112039203427335136138995913363145125268956908754794276317778658949342628022987405905874483996588546152363264387234965165995542784290389274278998110092001871348071304059767246288037924006643742657235411306509436472313704880667493191204559406257301450817790692643570276429214207591582057627465863693985234540549400154416384420253705113534877299603424348465152931991464602454801241440972030818471624501858238897516438800077563832955072431462617923994107310682216203354552359597529022319244156267116705222258223184607144938451721517497577099937391910000305381293547473960663132985010704948013562587280407705985761690577852260143299301787149379132779266843009812579626936303209660525963141118059340097776059675130905494459915159119359125104202220782760144362903173347254291140044213429179869407065030984638477309781713392811970868152407432304111461621541264469110362674299416484534429385832196815959849841173746056948058250912334952366602974860749862688027071199806543058010678723442050802575264764116651917999001278124748594668850790904875959377396951766973401829742017640315141759848434644620109689848992616739351837640446770928178337873826185434824585960283199879902536841455425993567730490533698448040576585981756424891753496995221905937710187928424659628047369679550560760473381032277499358718336726630692854886999841506196553088833768799988422500234589529940612163783867471714082900975530263337409974223774505462477456283809084063603509958811058901051117124566487211323487062268166742802479269008044713441605002277209778768904286682453576794584452509618808113863557064452296260923651231073919496911008677891151755379290782799495335465811151719343888679331559460303413417302642450526264186159412936600247902078746800178351595666578500526758151120212137167529674214352441787379971883157935246160695359029329872796041298128138338170152221567238993591882004144934151355014403338413321154096568143713273717235529216435891926283013667544211348118983455841146137513554014104289450203032479590737763926504450400362964029344826729594892853725629827058685032798314433522917704803580945069167456338673974785479770681180974754694767023341758736510587443029790317029090728069646320330191437075943470580841414629424979425582232025881096838702668334092485902622219470682533069724661023273410240917529713348168661406468432783689908529607824942474907077172835173974041909650934749879197439389885526902096322693432191996071445749236657613803937734001583148834914845162804097706596004907334929030068574529345545695364764821028152370061458151665114390648309333492924514404969224011576375120188556147559541913628457655817132479508425373200328029940406451650518624971535016672532971829828802177210597932861808041543170274941920632323912310581294935115159798150810649959080809207544208429179850506694466231051450187211252540571507954466970530806799963715565100659331780935376459559056289116465489247154041724013371171310742228348937975154795765699814400981632002751370375625166440598494034608274759538891006573369274863880549433155902574566730849328774708116785968483778946423767438851625560655272810515834773712232128456759041838037479952391300743090336487398768827574334274721736457714349781101425630545176827772681966683539795910696145511343734480986215132004847303682093671895924420213995012348247772335608858225265076891953886179174656743235630240263346191312203202803930254119913263170336621574062800629016858186035341509532246482250436708630629059547478591286113960701472606630887597074211012323203438440198554503039406872924197412901589957407919350349916975186604098483279000697039980194903937351118870024828470447209007241843330209071422435447277203749322818040895720306201047106377048392478839509497930436482653485516385686628020658455142587837204730643484155746811731019380413106326838203693110439253653235182816428320861350742401344514787025507719299707332019775135612804162173824007669965891052430718721961349942328157835937492465186802309692529086767911858042008247772863285406363388213774840833137226559629233431931481990712296578830176545601722288597718541378228952591572368220678145759399616258114142232018584449450666219194225700776749207298886680332421062417427327631283523216284814226178428462772099050798885619656495871341787369555749012290243503389540937726143255776010494049334150746515732020490995317782983180829005837709004555173266836495079413436570705522062314620674415248612564723833807701260886950827390676403360187009931105484161012634313327404903171780873344720607644502945558605635005969306113072468566228654331243499044707930399268177925876377962408022196092979632308070580812009987668784886285565006088706027695689235150711151653178633739132050715565214595972721864376394666625516508134519779378991032408966904781057940311214594431945031104636531867252158834490995223267369328638837015257445296740188550304814240432759327833293618170064698039886273783684617409585046030288346754588374342871460091936911737738815703910962676797688855157186860798125403958826863766442746149838511018495953512044823476048955321921922824849416310335634588294713613005592671057709381012018190773325904361418073291592500325177708675284628753411808883194387627332483194729872410049007728535020583972611844584218868802514952908904174054066931546438893117599370803372505184396293924924864107838255400356529317438897270152367069509186868688375763542100855195186706485691555147743418465631126744855167159765783813499050285119691726517787831865365270031948531338299767184930444686379671202175603876107609125369401321146752783327407159431896775692880586107632041310486531712697763935380499483324446554491003507683049238233957601866421899037723985981646889820280323342976437211232069161866245983837951363632060805302263603073825985607858043551144937877317623131030879800762072978615698875722009672115793135416855897207734688582417671197858144486581384275232138692546034703249016481753688826491232928943707252791649971963403644314665929197901737592068518853438531930859082276855385827458362535853649011010278895961821189119939646265227474785746088357829947638082645906906241358081584582357937580309728847224035176556688636780790689955589490977258209471562442308868500792201773952032419490972325517185768424948491194892120200732812924119748244830375497390788711649996493770176786669479124401994956485102174841347400571325079799019820656139150934044099299913084544329676460113612308765819730743556927661414719056272423540891729854524055139880351682140771951622740269175419515868998021292721789826492659529880177383558196019744583285952270608526118402338652475375038149608142714011366763503058976441769183181383537242258250930354695058168345736346236465769974837924898134918102004617825412258177465582835137071263900614378385040225139796072066801283772651386821521757346336199180707166748413129643600163162541226737991987944331106323175889960760362141343816603780514512906685554434461268303247905457571418311304750568042665994322633339852609795304175201116810849656618044361050947177378489591740265970309856140873070757594185694874361474722463842526290053236883069248638435141809861864910336663307551309702461283186523114860218627322374858650743459997893857053129907830882471071247375668929769063741711800730533055333096852578717393250992838472418745587566548891453317464156160659790960064869610302757361694140695434996195686732836852181485833383251140086046650504431288260972139722513326967760920831900920556723420559071301907142989026325288077939172564227087516788340803351854969483317745068055133052180402173179725125048166038684014198826838724277829898686960960640320399734391143904623805335217803091527194435393631308385929029980694028907203031880329553652956532031947420172777342692923804499971196919677502927608253493795504595981523374306679434499143623059119236304646382550031703940052862982777582857318580775255190324055889528827058565040484403019936765392358921437102837439781423488998092229829995149549469378022831028920039581102899052432227320954081917613792356853367267284301743011402161307793029916093853456303330686520062118617098325679324365508488322379757753357822465076634116476026847810909744762542893233949525043336323814516381074388737037823842519433768071494783154975691310260970880153142893624940021553512012499788849092480525707609870055136246995539352931269404524732643128330899662859553913842851005270576201130882883852029712759115331295735017810719222973696968293531541696324385136521751442509961570272740139889998812861381158999291359942875300392697575882697604103860578944103761438399816718449031745813003690116108216950252490319003306653028731871142942199406600577652937449260528733600230075168778629309044414464020902881941988562493266079442974291582186260418369243462353905391356240676384663542892368862948499168229778690090371749596258503634353268803639062497145402134100492307505191662763703994357088013144892144283873340757106930158570687755148677474509525940519769197293827476566091776811454516862736295575041126572024207335776784615327746844393377567341019115901916309398902012271700197271726035188221225334003433922945963194312536500784020161371037572224969525768870910864706616628526424003388817549588807719338626529152450987265088057226112795006412354242356326649424035417101351728206402927396528123576071764332011609266703320793760115992348972065363180468834615794118065263239111144293236647220348583044267132841024594201713806428694430678204376234161911992869671101849082180028090266229402001041098721848884739429910567470710550440286273703174830032724998286561259198123766721350677508035198335553893719991412441360449111865474521431446062307152395969287036679966660365673312387671028327951512473108802870658232029552483630760991056682297761494172144449989458334431678968159247275816079177801780572221490188747190402594083591859562042482896474445577584250610094532524397492743249690993415529514290954689705503657655408879432885229723362446551307929520614606443950038705411167136766234905665904484280649543240270506695374166207367834496570633033149536685364685297205113981206343298375423232873779110511713429522039915804683756882530383361968241790252835562546646950155711288685700615871707037291489929735904119779920912683102721897321906455439084613192042323945085581122127820548133622686980040515550896524482176693620163570300025482736912583353269191890722969176902780447107292393231601147724046065781895147581082077674458543351377309597123364366145126133292121851562629670699248324986030831476222413706553119866887446498512870314196660491747789457184160125070707342385301740896684883160138460145851587357952817072625123742179524085432398770214474468217501091550399566508111115074430069288098464517734296702931993146740069386529350551089842092284565631999408221321666078067164489808568003536036925317178582834088682898812972721993871199387604940483789493065718772917445859103382144141007266078153288035961878843990157747003802540077579029419021075399891634013152605622402415226796836285502871918929860674844837461235679921028432861954910369375317253297362252611873678507979862929531410918937971377129747305631317581697140003101409592226720577502938991001446270812168918956646833737174384206056429030355218998914184415680813656926910264613216443461507625924129206479511833497277614041354457049184055880622271310288072105835127475690846612945344482693900989236569607910042791947148062643322645233673096428731271326440879273993249438085684214197857897403446888384025239610792461916076552130854308958719381487832701675820093064254850425151896937527863528078490166824784142463469021864908980430420975566678321582125613174323374853428179232051486364195707283109757627922529358797557691477076401654363900207934280498344540553065776037284431602910693928772342602904186191787796824373165768651249264097882401367657691090858082964928046274437157005598740221772559054784209441995553232640452897895719603648208273578856460378150674638835243347515674936420368152300768173069402363290364036933488685608209410343404993161524217976951917219738674073977821774252230370853425265212537035021733554292960180669861057180626956909796901940327666988295288706236979125406095693829575531716642018348094989565179245729413847142817828314058449663937187509851395563225468028461543885853138746423627431281251524993420494884510349850186951104187997463913530978478564350501114935954914209863442711013236143510587104884506178454696377526297797965401664113231177344126764117603642954460212078689619308182352404137117953788041985118117333649690682979887596547913558513246808892769065516214495081917902347504992511936263074948208326407167710267461844280613958176562955052965213584892672183894258488332697759445218156622758808276683011698504804500819873637355089474672853737318803581109843696533034428724740470830523909780220005709991329446009206643648942571183907188431749362999595683343813450813611061120613408907771040809983888843170708009072357289703944941711849209792749365022328207378666558247181656254401263580003086830508751227675736560150526459148896574524475726421759266065418319551089456776645262645660916518058385075777779564508902893067483691831165433328377057569114479428157083827668128863770421426453127731506143536967051610092403683928789870502750431550628876455716278747880850641573207979687234480970951356219636806914202326276295252385243919149630203929298287275725555758590776285177578437573040474356335499940455607926649571715532338021148191237011933369384328714049285069218830505251064831178057189016193825766480683413653018891301101242656054353753229863003756109609592718832143135421595100519643718217576260519696203528645876608364508375370870009675631198188591436953503287439697203533620957870919927689846692436994832157842344932565806180227800450597489964966651384247531813207490268301421631468865515726443377935266921261490278969426233765623676997196162202661557406008229352633827777726075492496056803733242267952664873454625064474049993134727749480208169522599263946391781103729588502959846355489695101741848774591065064080000056043864145648442850620432896617313901798320434417870443682696920442643760409121001749623368149775724850087964403931298619705063665141659341279702472738132458670410738956418514178199097992786179353041778781981403692741637387133459086828896718563339954840721689800543355489486867256479906887507914593788638115025544286085008883927996883232843887227170433598953629589390756217603712802578956222005096697760420784729996017890775207043767580258584293294648536615544477285913886949714397261238843917518066328460321755644873750373268673858663569153752613523839437210156714346198725616003026985749455849496028809166096017344667739626636804412332854418806127801039271612126849911761464320880943556936172780692416990815070283332433818885126302000398699273176940505063691646494573674838988804781973075039980952770129998236462686629454054238273642782448275211552219276760710967356306593091339014878607673259554790051532407273111182219486543856549926144727445401505797010943034182786705675425613264425785706227624342780133052074439602092778446336994633299844601642362460494421384774410754194633430131695599866575235830493755849718951962255232971746924581463141258923080954457835877131005645033380790339074764067302814588378203405949867599022325108860890120189955204920268875282763503639165985142022213480364711516705717484013210066837270279406986220978067426888380321450930603820794985484609865517405791508498863076192428786685314177921741865451655261590807060962364456198073307998657383579322048008595534439506763068864140166775955011291631757399431286363521160594612689502832960621881829847337520394918810706557552998989981343400936400938831176854224272496187676054153024225757044892182816033866505748418172572755854814552999725517454846697041167748348888171528607864748037459274926991428424374829710633703459320228291974939642955866519856116029338637160516977008145248817567303505953434924796353037940955816031856036261144574184305660284207606029562141964498387194027058659165330710383708891992905221107893911248617951771366339259351620635580881199262028663904314985126317936824000546714288085733706789442228165101790510331740582718444347249364386883168139080392263059018085071033806467125715153507373884387172940065398718899656157816179531066040886411063179231253180191442570509170306825521667459575262089492663292019384043898566074666869148970372485960024838807940202086365309486040060979163124584716892493502775782715599202228671930930932334779330590516655081282053179602755548250785355645852820751364946040949091855234295726533918082254144622491269995070002279752695411540171666436061360089487309905561350172276220744653494698964589476030203073544532720242924134365745147866567644525406581940850552469987667961636075343524449427425820603500234235131472960964957023664189774938936923779991692966333400796626865650327852973201950682761018387280718347544031229449448170522661099203723774323051150462421923719770669254243207496222995824735684556902789908717902512062599427264631783020626582133689834995770376912234984229100536155761079647173037623210544452420900487092483071926603675367398479350743764058206007820652324568498483317755260573465303254907315970719969880310181474674907315604375040379621861881685788358253349534738807020952000264102957460367848954827295774317227595081794151504521978645356778259077540398587401184263804041209370998398385359788758442060489165787853801348982675016008591522986234063528540547016534498680218714368787030632852788660753706770420043071956884603891522498940223865080763322890077519069846200418626645561479688451715743456385006570481033149005673622923356987837466464560647734234460629789175479476772892612243580606875047097217654986391613909817220937015168933251632755861080586811330183551122619876256967147879559191022876352241463118086655544644071888240333259334855854774880073359202280704051136804988933086375878493819577749577104582039111793993551849202007045302171887412407215676959318491837623910079919153350446249761442895813793953042875386158033333842711864462843747367382760342211727142054271306437439136984293961785682710672498006812186649040735167097744481020795103382071849365455185044799186047042218878152655526706810345903240202228230330322764711111259810808230032401760280046742542105973224251834696696385929112400676433994264373282383344257689049651083075861375164784564529630573749767113787966194566298674261421407208095801470832303880598179263520867115245908070849304978649696654891441266899535543291252406781684111202314405924236899741677007028220699502983096646840172529175991431232305943736842875831922058845421472936631935538535995104735034326983423462689308997620427568779441221712461965081564146860830476897286637384136962808134598539399245835997215444573004195580040769279285750803010759025882873720175848916539917573985047206789973728908008529741079241317236949849210343132659628648277784459684926002011493515395085561655978040575578004938570556158545503081798750725328957870511701848899522984222875192909142563421045491151658002465753664622213894957565657178847994338361507662779850084126744652033864701323797574225952618473239471226404031769516101110120915072809851972643611002568057918505821940221879035599864594577017563311534629967911173078317691446345081330948495350101402589386173661502043150077482810545533611783193359432801911362175381315101963715205256872104484146108084906944098562182811759168432730067459572843386413991307701637624243512962638985795445288718408414456779052462656900561399657842522349477651323006975166879442069225361854973775872391637585709813235047575544005750905787669066516923034484875628225234575986010424098769810767863772478326757456315269798329796762861175206186304327651758336218269520476520318249720148421006976683514171212108478037378940979828180483421794430030693363087812107217842320724730936725193873860469858534438320470157658543991403941410633204242115957246784136536878250336843782049587728067465516290936115272620133325631716657375724014872710721867522120550806692318677855094200353882283660289817893671843671329755302050153969243806055443926339744470694681012803819129644622863490969196448425849445835923902499423574354734257798245616767964998481411578259449628610219316964814856795223102751246238977227868510396541389751448455515211354842291783346938420549948085735240096622167399256859825636069495465878944810027930413363338316374767142463776833048008375803595627460454387458138786252255473951729179924773455365799871574080446392319832184771371920179466757011721214977725547668990507333648167996371396647949903315974020259588805117211951518304697690287474662634803297251703535355235189098116494990874472941379171516335447268426921405778106366398569534854124938217498113631471810052504322026647876313021012159314843527113238745084813695704351989993925882860074478530563089797815088836837121695658721973713730571384078999572541651841964210875427685755987354088294067712023123439582623815710823696061588590241118213396451114755625848968999213590142803172211597838366212391304042951064881750718045520878311815007455190381982806704033910486106382072700595907471809394588862884249910454236362386697500461772616138534022900056277496290390741397184494594557002339266395630489639677586483848028436170023368642267596709933917609296455816207195777994141964541639756735452831878403529768041598042850791237462581822724669789313015152240587831433873122604817451781173574402025311983206142538379550836173068794363770830504608630209127082227013772539754628096304495894550915781511864904209815205729547212574946369787608792867850501959196737177236051178895489572757786333274986136964595289305273529713124680268816969367925173155001196574010548288670335451636633525828499137685978226279708042188859819600446443099090573512951909229924683455551006175253132869977604870454178771846725559980531476414163346297573776056855536600810909864395175099731623646568991175267226082353896099595687406399465073360783328313986653242758272047658596689795785894438149854470537766407588015133936231016829209466548594914649814235774598766147478607987616628758603805350077227115255697604162178395617121612547827576671067450481944766641831388066503763084664765292550164608856152584713769973397431255157559307500078470148239607220277294695228793873397142813058665361271676538331046975574812314168058073985106534272648736372009961002363293930659471651784837162636663777718091854135410848960175600750993661520779312714908062556362887247269138043282518444338886235448540693758769598982852543568560566232406072066799139927797347746029075748624696466027151803299376846081027109978121956031908431933463791092003429978588477953872632909693293550163522455175443503923062987365326047051271541069136043496201989052133335973778039573307394413445374422742081384512512742055936024793244423197822334864133883836959171888931637867919269122305618932351592822009663269780442340450190360777416519674378515873963623055515660284004399545192225045323219012503286859862258568843225114383780308199527448282918697470379334976441603055044266829138950747359972500419352011190715953232101984522744512017926460074914428977597954079961472638415396229807411836792363543774755967182158246730067448805324826155638067113213111802715245326968609778117274759033257772849171745698977853551803178482764502048653942323347286380512638002008567545079313325659410452856424503305827021635429819664169365729072167748490256550575521656958360487792136429028894639158914074268984465414637347748289975558797865280129791786368251573260962214950320398856747906708125326191837684335136768119497241129568909082102909193031741168873733344127399719290580097283627458385297359683204890327592935833777514497527567559676023868140058281775530297026039712972212502468131333732457481165939565237212020372475241402809440806178564718161951407773029157689966236357238231374959510570030768301416543111349170207237272593577241095915012257443809362268783459024770233534867784462435731789112609133286850568958863920694966556393574512155791417357548101260294048961537546605215523151951942447417419792829912282469889642849227306523521363422947198408589674418655272508189326955281511117823918696519704754970434769525039222354094901854798251485161507572080953326830914550750125719868800378053156591271469127341159968327292148923548376381473607402734234150287515429294152721219949403273200746630258849325161589300096443390434963164676131620065973645935918375808462817714207899670332876880817062932680914561197697207416309886419507831536421783037536294441393229339314507428861597442568160510877935697843576970669975056623458638225138043423864639837887878963070607038695193059374994253856929002555915575478143810808690501750118393734594981614776960016731699582855353603966648199427990391123409788853702499161632843426541793389641361258173476342828662999021780008675258587512879661349070804636809361272265831694570603862627221386574918148048405715546742944902533999032488786690611337561027672978157361747997881981633514777626408663320956876783165654091713686394496242618460684725242469753106183439535770082793286947158403740938046970868397888185677901897961791309239495076099357779672255030969960853839147614820383285941192457271447835482253630608022875845670215010982762729547069849002142046244564873828253859369426128313936951651671829883793253196719154912096968803079413304404919487230668553386021662529299752503154895663071577827524567836052077086447329799959681856465948189647184396822119281275271691004388623217660472095732447772885174874164852882868224864319833283613652630630420643053155793898174722062422063978241170753688365036935161731554269101303443594729769064676149040476954887602178073486375780617952425534479803095404437068993595762107064111823455655830817961217899472867371966757076750286781870876684357329439919244974996377281931480016344330129244971678175968231620625372788628798926962653629396304023748042554936260748868063928931970348521397978510808623488068455903826148660382111407684799560796998857801064613240747094469433538304061177600454202239182889430123654136744500082729892768671662331642594732713883451648103742778964203535349403336748110564860226516832525790088564403507246317032106896426889891339031460159195940630761532960269450012507923993983851808420304601771080382602549578891488093140913829908211005159911881012085194342484977868349338590542428485716421285890187203642008977988247503133656503099324162609253441482112650022852761526978157651195821479930488610849760135061165440797284524095329319135212796949236584910861490210860076009932567314803411357168402294538690253801003625161855276172369248006520545996781513636518237463134707586635870077186380969889421833661337365043705479509789891230325373649440125093957729990034497152392276932241400500289490346967095662090617344021746126107858131973067037503316341571182948998170870052047065959050218076825440224880125343443288360516781137156058751462048189809386593056344338393080538090068056583375823850502792727745958050443299461659935102015579703660353428129303777167645526433960464638046067575859100751783036039187163231569206460339215941085552441335199398633992340206724853267697876357729719483169277039867815391534691549315989878967082489515863974667486174585860499753387005877257496591099088388313429177113767543283369331450412278316562483672815477170430120499953222329254992153306912920981926400850031903219554777995370059329208004460407935234971492070109027003779244774364120359130627306406338950157783129072753662606930436975238335336474230571820591185480947699475285894102570575646241889261415480273357732414975297654592935399759572933842222427288593149282504548049442609742630245591265421079922479542739070587879002216954735488803870915795765231261334218431439486081508184702073772241105826800600533615768280324162538824347100690385117225290920348425664142697752085802450456821102270019028084097286780309225324208217849225677044565517583775997393720831109492187540758429982278741203102942577275824760985951864315318394036787228875028674867757581747641407827064428985184483982696416630148922889899945098552595418311035487652213015096291666712484632452998599864188629847165086492654854512514450179958187058639362072544392066708690258273973554311530179968894840711220596130821221702926840884000012798209561592382979817327487102827106286200633187677444910237173100482343597720009561366829952566746263143957892603604528017171925949691346665740196771734912524244380341720299112938820238193515197126768653093881027697792770179170584968782255290217362200196888529689100529412742585341088749300034541844227564414329285500625224365747633400452174758499459464834955883542100088713811478460948971799823429671687635036648755648952046798289009510194475923311337682331464867334451413477272575976992979171046574085619700113846106041412753437088312082687430916623763679916739245216360305309814453482625077584074881776989765909874722120394934624702401001040708415838936773673023107634326209281651167894298348935702079659563137206667584291035285010948144402255560336018131559023528858803934389948280914755488824784472532415653995664655986012062783756907384834744667411145924419229304176303992149729410236081487774582896608434391582908224445815755550674837990924300929824857073365538911369617646230056055088269970945110339465378195978997319638909503773614247701089628838339089832404681513431337407932991590089632241895761950225197778372586876868219723065291270955639896814630182775169553120281478426159521182512748915479042147436010564433598093931064103603879423976996603715622854787716733344482640317378923673966936523473131281817200089260584859499100323555492039869821964106565546037365289984429358244083335929146726292995357602376171944619041206994859160496825856377939685016126405108565659240073530967695455950670228805907522104127622412150944802638952033103936398546312696113400895493536180881973232911454111411282676156240973057886717546528761255575302529039882914566606433443279237934644263965393065030674768417578835289142207439401061008430626829531664257944049781363716185608691173194438667918638706449158158282578626912150856409446842621840008243256406641224833526636961216738972894501176593656889554099318430359808543481530338114286934159365408484227444186674927704257847658887530108961781252582854979206266589723981482409248172626551015611333475160327766927449717496824734093820117769582163220845607768191645596468993115476820632763856570976239982327080060548182698598267000827455625567302935340322475122649101034465666004806033017784344964996268302802463128319572488012362018317925798753312373382163291361132692173931135492901191116785476629339994522775353783772126895568544239514895441955774940720343996757113960997468053064430531618720347026777020222490102128874103299591212470175928163664445767876939457586585604591236499894142250605759171663664811357507658152107271412272361822885190860211147181943612415281632793755787641954690503506619291306844516981396581883850514960455267124569284468184730381210537578623156607876850315625432676750321363905422716205705300329501852544534604957566595713668892193514085776213437571438909998355652083284253270351335420516633099042844745121913756172608096671996389686363561150590109349308192297884064497003468789494940232924443946315179385631817800107026359898354076634859094958335406806634679561470407289188133331869969631163084789698057322526745591708272829830622528939616557282507137348194641887508187067013122249742159228373999588520400296418404066221911510786094787990515371387391810781536471916104764529139307162604236304380146744626622847877652161540181043830013003558051326239167479806370778698157082665524880428198572369449066219508030438473516804665027939793142583760605957484815388503394562512291631642055725386228374286252265216007724690174956936783251568116644370124079511384490454071963113296964290838606365370899275890585286912465992797188113572706072843682343397973381432980435953767687800372854996595311857159937809758154475395811113635908450288843411865454747900920953071178346723078169191313736624322591856450070482056327590106159609996303652325826910827714206710197438114885044335201846591253137432245922034755056710557961710166297630712223722917663153856974925384808509645743312830004364020331010931084470700486473633219498802460819975276632609160588494756318271712369414730641271021385713044581247797035359250927147462542405399693458607765023453220198001302675222558760102236150043952405868279701439405912516382879513689106694865049969688062351236864667216075597632082360511151962622997493708817901657028069284442719431827931325616388465690344961465914336488734752845951159344496113300155453726502744631300926479344161990826607689506162276241322603444056755394325452967682159973639305280236216403030314785507830716821503906398754066932231654785443440150392663045327198038258579454471522258081038617946133603124849115219852059242035123234746380956533519570806960581679263422887337808545656609552563468471572953461956241813799245677897166107214278070521406510358616245431255753516239660293890591073390870421519329988066488207065420018582181250829457989935125656548004699827597633437490719020050871069029358816391788718090114588205024995377494672686793614735035055197075196530159887925060139516707163189351847190404971233959467206530654393180402770434458116740950054871388237574428649559354172449080732530860407054238613186837879434271302253617173727154383923781732986297869513976457536450882315087892316339712628563478643702879112422078864558934163072840974388047043728363422478921519484143132587314663927119828314255508957541490982909073356201354170760552879280967314100393259362454927799854928505650827791174359299933068616384146260332943565055521695078579678944755818242341516416619043345617649452118071493452156664804377617937780611094829193349097904902428271903111540713686520563154163568709790445714067315302576969712483177921357092818810192226583162438959038267389860362487310395822064228087880718704864917246885295028002158529964784879135743217432971287565351391379377935438855208589046811486033639236146137098294231678586777535492066813104283804364978355424329317590341425087158885708276627249806112359646882120919158504711992369660873146074666579549960994314830197346807774401039811191045951982393148047866968871683242722746460028314617874674107662239455869324935222912267039990689619356777199842941322900373776766458750554070127156940233269760476608398097055063452944660124502870902688795090436669284166554302198609310979311871865914219091775020528862917512474943103483131483323490399805533448253353882720079839144644858780032224105104929663160473929318644163264168599938579650275403042761750036876803770219923668913273303676843290384313442892653000909027048909479085861605125560268124191673588105039757639451220748717239884958425547703260507035364600283499315839756787270662492854010901631195660729389844205940826387416389670351743698374027984857285786388224965523326340735537780684598845888669154558725789451541531432556930086589750043353760677267879621525577921918874079870716828775071809330278262153878834185593732697525934641834346812395765909840108622705149968543584693529162180043869923820875499926592477483241768765114997136695110345434722319573196999842177357904426134072997907336264968501921503116980299269787469672880976441465497827622030953568252323194961157851645079702767659473045293612947417211031597658597696552985981369175738591308893399544820592080067308017042263841587778145974336908874062506473940939077901275445390945377208018539428028099452662400353157411036411073722637169560341739953436329614788681610780275256969541077593036271916375982112678113148641668505316677737086040570478444480534601285037409760346576804965860539512887566789154619359311146935538082344776957985808641924781875143454751700158311117246926142179683924730590250762429334746937887550824903814183179271463654726322098888872155435846813360614289824102657670368605203866756130016035818922566773370612851100332420807246133094219496483339024161737262413678922034556525745464550965427877752116412628661769790039672747321802229620520980920218892200787736649958451577265617683503537533132190181597528608258615402106647382285904736483706536021765808446029608506295650248687686399998844069387541005909489680645871634889089916207180207683482094795765351102685268682959430783520655059423888628346532527035326168529578480529986842092365687969309456948144620278281544480898325110661557607509407233579361438596622916066327946834112703349623831196543354487046847092723108179148950091746981249724701036459381341736208959546867702805072932361428886740805088185268451835902896674153353806048249915622676804885809192344495462387163271704185249187299732999229137278914664376766352899417327708420858623096096665820964202218869482535383151631564745777377568871266449974269708182486042978047821900714061438225481550677962763623510093438382142293400562360867989988461593675923905806542469327093581023018232031099516793396819640285130297900366175785570881427167003316815253256209626437848351090332415347892460051440360391153558262734134023556848072620371326767265501201382498334264480477038988908118855350659237200710470171192044642603507099770558231393374714359555456208722351779514966281866486905423212208111285964417729472507823998740241617497392159312924847776038650519319472819504935985947451469370300501225217585522592799006517143190570288226529670815649550277520699437363920162009641710236268904615852540405419270617230298623659670747030257213475619714438956961691512731025276579028741196177731498550466195825114846774360669023866878750786246526319795692354796857543300557698007834179319699563105782878800634591262403221619328766051426581208603798950934046124523278953999345888183973868928151399984984526458026725223245192551257122022654892285735634455117087381838791429761925548503407800041983750361723939163019405805168293332956019997513461017155436976345443923462317537125658404307402495217980621078600814997568929896850050443310053365258536544752096808109250310198529574133418493136642052074961903714314737401404584861130125191066615432185581131271202831606256972066676593301966177867582214386624187467249851657039148868665475902381201486896630195122654941507460803186634593047096572895373893709465629938165700279338297180479102238480507016038844158925969374167742199657968757523695934353691922389083261492449412653132428372886799048102307309290975790212005658993027221891465545147051055181206442368946545409726386810947420308165530207734797303825574173091876155331982843417179578938702395895417409507132183111170118323076639164570029839508484174677158680300665158283516638086241074297889747375788226525577890179964853017049898904305193317044380929713199995170605383826435090698539755097360076296863131636035372599741815449053257268386242282076038133087486683751577559332673395112861166369958839193591622355798731870110893856732040281151043922940602510935999934329454589226903432490037661891278034990131488736609636656927709159669307449111127207256055808088494354324582278753085144335677555533632789197286769005124102061807469122551260430394987711361690516943095393960201374699965900402275313758158261525595609211227986703286778331622774824226697761717611880970989829919492726999838438380589636766602094842629763174676891490521867518663872124155563645099708664548024522495861974126752120664588256035931103473887439667785581416768656108667192884673954176236449584118517214620369725904643836274239956591213289836393221216030425124684641258091395840509823613051341287975609781253251260272752079362956905594280202653772846200923788304912719501339325564897309161980768910245656130324398064559321190972064373505545786154296337835709041064226746896892245616286516907087594004979935464117976952727178495559993710578465477010807279721494152704139623272158720080411641395907424874475830417488304137714216831001970987974551659105632429295176779996864775281452486447810782503098863918215957913476543623097957297888570561709536130614302123026239051607148640281710432162375724155220700594610202259756203018763362347745315128696553873337922002264941740100838415559185372772619706171240036217043086444354182011074086970536776218033977944715920247590393451400952142522225154630369556602305462717170340157105070466277192605243136671560648411090616537764233957900165451205284944574222070672960596558517088150802414816077576025192674729634693437535695146878399774762622645096513101107232413976066833913828808027645670180796626783866509901862746858225877188888870530961863689149618944206150990891679263656345477933180385532297779656086049238130987363138867907049229454708080441083260355938915557032179385038860662019031730177824701933260373434780894812403661147713378695513061340777817460362282442935530343516745627650375331948261733618824358330266608968062154825720611111210081294095388587851656468384628281177551782412230314479775372961187545323411329195657536559020077650948285362727955887608167354377960473368536994818986147218344625165716667222159023678187373149984423272431467449539637189839656757076656538424492887330578738375303568224710678413425244613316281367740577906740249605867937781328062610331329370540625093297288891439558313695703371621566880916661566474457740248783895493508545525191917920144797549305801893244728017626351541639728571559522102988590830022567124910137087719659229708101101115904613905418232095207287062814175315976440223837740577691068675425396968097318371077223177933029543463492473286339877128405344963016084595647777252776654019338082930051911252884201263971093150067812092145899729063486823446876082669468122993727391394495472404898482534037399243324283252413142613537140588820631806748856433090554419497360996825971012963240117800308041939364676044659829750782534835350952292654339227284381491213713121509344384499523662439868736890194908764433868963327836910386312471785117899087861134099458112871887152581527281211280502962155279853679396720598142756455826095890106573813798090950191967346234765225390283839773306465729722152911189076113879767113486426984624309623002882980401875867330545658279630492617777629647728110157605585822919448405523432669365832692362831401954056808864985914667603117361936298029242320132830283241585528988879103544219732511733222987734894831655922391216736329797862752882348305068232640685169058763544755722215760114791029917868604939371769409755402222141830777083047781903668147387154229919972718713083870994373695094109113559833458271993483491691865760932708225848181173064682915554503391805621559887958084545340394026043936389722172133565945848826899231388377174365181424603678960802606730917572590117750968398481561153551364932189378189055522653367924179236453364760879133941276455724759400161082492132866247337533651089742994398237456559759208794215640815237832672745393958474684885293437255284463494986815513677827629054541447713654404961084746883976765131359233414980693493254925499886616163404155529465837454824508437826248304392552107713923378244027964008637579514205847463113084603788573117926464623379052141310111689822049792434715522482252860513338445252216293362277398457468370904566950032986185046612508254817524317544863764591679468078951695427442421758388610113489371856023925447682878311573312701406293963764465632346423197771629509410740932562918132535991674743118116737099503670718449406529242892292492012178220645987834294694991180710953222340254788425506088485656227607193486490634648842868351582976304211189183809971894658003257794803112982231525475080470293627839794537003784664679174579158992088747100025918866346502353636311350174681604517292677512721387694397828424981780727157660029907242313106834158228121055211840442486128478429793591019383940916288593667580707479043548080945544151306349769224229860362141837973296829119442861014245753037696829562680964907058741841295635630795154378937534882690865864812809519405125860904472696871825933154416689479740556202024117466670497056545550856823773899875680058249666707794487722323409470561200798612201821106793288972177267816586029289155950332303423535219634911640083182780128200717853723350629853693189272422749320780581739186194596640437867250520788404742097666143721950007967468098593731705795120860765300285676714299501379904862897643103968193427871865720932906289324630069792572875616978587724509270884136198389867241330998701277047373378464873800961555023368637630607864088473356920103018287599391194177472325167079846297716873674194886223273887213997955591158491203743945751185814651674784679805459822295440987712732483326689195978885004288566691418202926389044941680876161765914083247106991658803559423804396440184677096712802901840673048706500202553232003422828278901439709723334848792026323787505415028713876294459363314527495174924119348130207482957878632905487855910471351060519447048220994070663269502223364222737405309715996878193762670505052357477532401802982121240829009522628813929793816735482817265534004336608409075048209607895273652929532385980684863994811657554441845800787476339317582885882229037606758613471949009787393529941746090770874699782327155758089843412021544554405175424952670308777695582196415627810097258364265682068230022581346320612091406215753155987038532112792813462086103232530524543474336651747100450326893317697745141002759951634100995317835125568627332293450326198712470969470627794459651817159084058630029097781866524549736925236496786196179513488509779406068311653079787683293327342920257274010449128609460069561702388787155947930583807500602976299910910077059067215430935835125982429159691284046675471884183181738047357350159528665900500294312119834616878797776992350333348365726605659069121494387876391429030978618034464826124297516129943640345097559019402179956657127607357452104784486673968529057979862786008815068975176394982983991690274458610265217230293679707133766274643880571654854737343108024437209306303332310548050566968289115588375470864199453613087290530571019211626892104574725400443716769301984535871529789802228423276044153979089575840808164750857722097673931118010075359191385108304586827992477607306505057278383719741912790159645733581261484387534856752909585521052808526014995722851119029718837586987940067624829986191328109057646701580392525222138397898374717086430566173049001487217595031086965034232313216127852850503541469320152746223530648934479635938536251589387398642660806624157930361248893480573313091437819485257187820409074533489814236652080683071133187982680938501037768057691044099980694416355974967577673729612494590467381819047898123190400263523132325475789000939863831213680812215302478246046263661205964330433929408870637001152689031058434601620435794939825663808665313068731727728682701276385502586710936690842974143235533994195092618930874819436000643421828085268580111984732622207821074050812200192674239266959450746270136870394219866108010689317242813535168518329495353752904741324999397621141909614141343640432152092234517129784369281097072515147352617750735914587632813526233566409905575555524523909029318242770204433753643839340177694829503723466531320794679052357316394062793668132699670420550736061760004270313640739987076068995363346359255827914621449259633164911666893711521765463361124590796557584639105428318205964007961697375572702825350822729047067396356712674236398182519586053502951869593278251794440028240711144714899955924782326113392086555048834906951026979720208356143106892780696617814914093528741119488521287388871733240399724955356324101050716803645031135062292829901407377869044864273717492234472742801427554475113935097250023094600332364173589685496414917240870517840229072069793080175580877421246853026205832729569468774206406783871479865389152699153540073186299590591098336981598438579753346448825225870086203362996109191296983877412818722073278500820538734152311042462963404251253934989852326041638253713620221089313441408585237785411828024264508345736837744692490422844872180563262786283254684654194644740684286258732241088449517681553268679561651482004047880564778420667671216931229181784843655364074375301252485218943909873657133773207607508843624498699493622438882280971549279472164125417038735604984804780570883024067144096354228696945328275285448659944398090508217293452296544310096863121866166277689283010657287504062441621895098413766692107354521597318207958597825198636197580516284032336291128137711001887516687704009583873865775605187067258769140974675743972588283291477081012273620329637718876628945225100875996197230143013439013900012680129948653173841338827282443052892619193741524384483884251202138861632914914838099619916146247845431985401096213881111940932585091449405695866341599797761927552496664951604424999372688436429718102420425089210709536744400786765181644203907603639260276070281308120231425732054521202002433743281144516566449656797212100647535129143723288121006418790749034545471625624465523559237089934723770133459973808607467989025773317173886224164578742705429351026843542084609647577575559193452128273196856293424599136458695912065945904703990766573203959559089087954749005467160746415695473296900960437013976161803774398875388621526220566380399995573060412059221072981633170290172915072438474436231357951976511079035447840334526794174654085668171976762324555652405606466283880299012114435403170420399310940159228138027565686725919320711638984861308000218144224231572237457017880949636442154578657502629686666601223894672094631566863006725082550707134546547541208237218317524557817601013355661543818067078458039388680595825383604920653591111837460195137721384051154853495650007544184156700247710820892627327934810831916300938151380242432423646201208944450022153938649193391200253177578516077098428458581726250548315545424805907652847715473413879871448267499341891571760634773164835210149289672907126362015043892432219723227450814364499108767985224751205335288378631866097610376550784092498740643542600264152873667701252482831260243490754877079918772078842610737190691303182980635288734315374889233927258004927207859876831204065372156728079833307339491591796710112088072228095454755386513570931568216406111559093094256712581128636218255455235327784976441535186451086724694373980030412883459603430099712368454739688970966226343969605020514916741007434781568191674355946471720666289080410324120888695851523510848727376774155260022567388217954525590093252611185152149210227431677359599321552424374754310103693201974680941590655714459237934827006682707707933654773349087399611078730685884321141445172611096953936711828468895115456563147295532845619573353428988279839665691482415146217967953418435650989919791317332355162728735353046525953740194109876431285993667556125352647141529392808352814997586663704766475827921027782580652738084694233326969522549713110318551049657827250548427707136731155638527054989057484444170105066879648337246715199995857944119454182109268553373779142706087912803674197407633875933300508705665644160934924639200261268586752059274087950045834987861334811097153294943983360164499332635960909083852149341302291446384299211969654925083765186810085278995611338637737283995042363020473742536337794790936567232857410201732260287482073985005398134742143052559296358721807912002247081034064841683914605546570398198885117321246138225146480078359185568263865117954324958204007081255792693478659517401629215758512553430088502272499846221244288948106773168333572963039202321227675691932676380469463630593120926889573664564134546592243478370652894803797743236029035542003204569722788548115771819788056854566253346291643361212860607421537438264966678385288845182467798620552110220502193656321880037744407982059823998465354044702582651084707909308992013305463387445577727902496566236403762992456812134026684485708279654983463740188900690158290761148919037407674970731826524026909702294323958108821498800336115476148062418311649196073123816978666070717820102980260507343119308714799444461913407198803799090881086291160530780271720645550583417336537827952064724658468073709424779487298975420292587506717578096308540197051618300458653585820875525065508903330669155389053400361998659339107945771561553062878783846337690328315491074101842710391906605066065665899369215482032080715001468006326831149193303724590599775691448266232037217864043957495204407024782427288472514141212882947426875068589276236431768771109917851110800448518972529193857089966115733716385792968957085954002339836128710715836766331790141973058770205866202557149602994276238015278826402988306365831416529328674361513961463783551283948040196049110969707451830276701069600438897437139904040002420935375665099819661993188109601308258350684362684467602527614451285176893145733757723454373957509259798659925156406426774351980670620198318989632841909240378559892554634290578266083201494780195057413890537883865602362564654344308405730381670899797773236298471362867167111348974314901723136189278153002281661296225003055476846128310167690205558153171631274940330559770461729491269541096180279148352057659559365920337428461409237418750070186978891327679686304742292996496919598543358679748360661717901607072597056855342539796793789091292893466375200808155381665843667751857538631684201798491578084589214213315212863823291043085959533307681113632002049490226800975506344046951600632173443541304834035085922689349808514615413442388832966784259419007415906580052058998337852083745071054958858849965687449751142152416442243756985069116339061197666236369934708905744992497582746663131694645762667647733961741909256836665176921910689189828258451822162939913223729940952751364756340596541859237195642816151246262894712610191061010915625723365898570023401944437438891195865927282119799951798993582339673437212138979611535831498277210868434823077513593238188178669669263226501162226917952811255898596642222703819269046798182304706912818713232870564918747341884334156593599815811898190809910486878106598364958534777599250468918671029048344560287857657233606151012961434229010752767955073678203986854934223049570326877486349800277018536596187518284189857787422440054012215715262265698789053835138236229265196411739088575614949285033884869821587582500871774722070168890681746902839334412981737191537649398008686711061527324151598578331519328390061936104882386119490395403817246275751480328251439778987724017525422337363632492680410931437175913006005360943162192567465155537007264502127798109163700130538296931478827616763111142429915148318471775395541424411751637622280377819849931983281228326104716222299978256859390600560335751485388080223341489593778598395673039321205356326231144200052636171204775764215003402153439673682640511037912811269483493716198568974474876078206711457971664901308279249551247206618898355088027403360748760555475559188794921103656649020187398049001824667425035499037382454774779679046437156805214126643135237738532927554798329150089602299715948784513404910928859458191401765122957819889521822539983965314909136564175453112298321651804299831750069520706818165861804921352125787878467004030446776923452467315180789666847299066161335218044097065900764518897753911547802347854901953258319888575416778712262495902909111347129090762590643447780895807931701748653205509763571628152287172266995456086851512159590833742769501373832920478780251710661068495114979932372437072733079205030380173708548169752586012037876276065676357805972733389112451008218510205616788160709496177848832618175921369874134249386716961519963251647203532375219956176782778444131489704710258677221934927849415866437650055052057788256828122738728941618478858973635262061041752109769988418016554977658984161701361434703668711138037854410875021652415174672724292121004160799808229681023378895875325243228379339196841544641493814047068113413340301961331123688030933130684120818871691421160811246218161590771813499833022121149400774789422857934129126959332805825368331953187811457761654633510269887254506113154576214446641131225516057614043104305940184327908024473134339767603738845284962895653407765756341894557712533513030595137406641858595661496201088154752743893529756240917059761695964059653289848468170594005876827312676392192990090963850444104489532207178530857356162561348970953910683367542552523937948798172906760923889624356551628436886294455033632311730465471777204793021280986959930251429156551009528294239288406301962798586500667523261193654097724556936644001452202223479223119038574101330766716832085569364291408589467402925691368450125703209655350763640870338500148688906749550112069198196902802340442439041089224759354499068363553960589195594862917734564889064994704877829470849376006157461801621503548418818420022335857047830828164321274768595457702088784360048684368919046231315315933133260218787695899705058499806925772750711173556581795597602726384852312013453887059226652623273301153337428883352344750026616607775952746953753757533156953072828072727039545633809173952029506349503110441311380946316020532236240012434886756213504374206473906163299678759788079612030493987081426213963707083762694526964908866987564567745017216996804583231090273191878130341995092385271702551287849797981088685699991933491629666219470102861049458542361421342576854589000538765045606246006773787778472196129213911663349382593063470006013986035022451452779988861292035186145445140707979683004556184737198918658832253471961672174153592821782907681850713022687923118800539327260279838479515206988801715998523657769973489859356419714469850929401365890994470835892417783779083211365103509721181473310503098042337208054204582054440148470107842650058830557772036071220234393888829727857285733231221426098703228076300394203790672833042916296624335229439243302395696414523820050630660819343788333504585883761982544201468976581537468375497450579634157226068194086278422912359241838746123602868753124189681355827736733015049306235007031415932775472717166056558375077554185262187474822136250181111553723558151161055749006683567406239211589044194777236943634040443169422110977339668299506047709533217031823521030325504058775410547659091944043644675322305135239543870271679400140356454038465910949510586841094112050236832252421499282412739849116103724609760841880875166689296492084488577911324686020669377451522155944888127739250190938957063952932301360468597105381236510939236806448149490941135202858861407394618924211650010634232268456152665984406380546044314361377514858075872996309521058179113737272932966165129669939129704040763761097502680293490962949292469496114760946958699938277274251475577911964804750129891025091262135082845961219314481342681310128226091066784812947643887563582341812190214247136470378067793014503788086382425338876378834543500845979414496325692027198475006803641880069877401722592683238167944558184808059797799159666323509185264982265153281540307237147178086306709806146577949428809555145401484762328568668602277764874903788050557109711871031904854809813479190114888817634588286489271659421452526468626139106079918846110225589495318439993506301069186061083678073452667407734266597386914336250272548424015390317935599972653117534399199253891103873951634232888594378991076745658787188092454961617702983485608928790529989996723064585078898045189801454638452348655594320213895883525194479476267258927740895070122938252738675826573424206589907540613541779622267965768054856919706968390769472105074085565145196343846912776259441499653165202765062374201217327092074042741408716722107800013984696577044163075210560291760409695768231393102921326631963259091570654638580386468731946811142655694051994841408076308179969720402620525683518962257785002163389678791489312637176621038563259845409205652762906996324411500191719087802341873868883428443448230653082529193567585426924987043972323331149705698340909876055463727467525570181041059409791648333366341571063682707067343589087969237668000322775210189017572542064624819372587728121666419207045198634229385375640187058169493754994693842280312537085684689429101613671544808939931511609509719061073491194950758908561951626851289305777325704382780045893911095798517572231291966241580572355663298712810997023884151912295528049708702575959196167305449244722896184135529596457153902854781980216932431102566569495027524244949041320036713459795115638389736439409270641984113879291753374632085341542459056785270844134844174097858702952461534605638462409561259965868356118700433052644329113301879527462596580897816926124497141224929175972026368926988086537483290173233609802953879168389057620811957593434582078996466345799442062238293459387258668881906372766252842840446774900146013657405020757843420977604523419960629490357396322010441075915794201481758607489947271273717937442239700285233866520904706611003875624504885859264486685182185147519137251121668630648147575273271707125200839848081151289102738076163597738983467937542792168947150534442338000763961413986830612610618876427311861082683010971022346585386536281776666423864335313621311950868142027546822616354212744289263107841119339837870525350674710161000897003912161187534027272654558312954550551289164139871640596727013861878160417371569650250087698009977143093603632344043909374920346663742480598529313545434844139326841599079997723781503328237546366538306288306407025106992518282523117148611510249313737864221980208998536976674483365553804879433747100393012632317271721571568199874183565219724776976215769674535053182908924623561990369368190270170224532355136574575324205545211771209664686380813342732536964692445492665165883808762007614506884205621509209576826071837010527154156948805700066157945820934046371938313539775162472392056901135005517513111426605596591370305907340700518423023749160533191444592483780877093097967628918416459627749425956823133896941860654896730093378698238313216564821370269091688487653499266861298839081765196523711836634415844364052088105537376155686499948442025055683184990880135016117973917606197921340635155902052912457485298122422968016712644824281363505192505265958966254950153031750012868558217930150034204777808371083932206163292963827724670318559317190313744819398440408343430576073053358237266699565099452664433687869274384825286310184451396413069165037980984601284659596053523198397782939011335409110188933106820770171631081676410558621947806437664984398335946282314491835930960892225342126054905052070057455799159224112525948680776103468354280887612874285226982938287755968073743716131119444850493803560843628721925344385519628990025373985015197679730301554368412938701184635161965695603659601559927634998972030782925284280403225854967845133904105721758849988737257457460293101953171237332500867569606465471686210911497243092182872246860995725426309517665995078348900253855476656764845456534943920191954514760615308220369895902540528925708107817498106721723627986862632712442085392710033645120918540294699013744801588871480478888954918870711751283484841854782875137538687778944862442211166601132243175062125726406471212736395518712236545736230088013947664432395975812394119035781683437276205308715755008776988223317754155805152444670067302283956376212902428733263242832282815143995502567144461023422101358512414234868671149437110348369784849475561162531106172076446951563282858067605623267854423814844673600659272464792895832923625191226089519501091129737421961006421093415772405624814911312614058023732500283754056093525700068657865437141761295838512814487765745249004926536501955815571009722927242310877238014996308350854546523105394391566255626963105313863120121990818121154503291401887099740295227745536443146332328919940016573243701828080078237782350754660788622270137609923435792550232383718053814520352563589439574018911324521116547361982441726264362040869659241255720076301286304177757468125987923585829417971726698664491125911897666679052021113469625811504381310843981321026041787170086783403894026985248215936195282307417095708788186739682676753778973092379637583382402284009902193488731015061285822982426917146712353411936434766484454821762855664305236434509215312758502732758661974429240216235406658601614515155808463233356850839846873325287091865254571855752732216954218363675767159696791538954706992848340991014398368424641837901718252115269575384007466604436858521627007797410863604677503629533119496272880642267305421970705092358509317202021827646817606080350214615587034435514045794976152750720104546549913507816427469318167641934546011671473848756855695001520056812565216128546206629270725458032602598254117728727981007181797800925037448310573854545189250219290777878118913180858858405290439925750024624601933526624365818960667525475735034630075586285591103675822258610817631758716689421569557636469239078620996383685404806767958914586849590483570237854864610515065561683706458799255085948955944850941919323733841084728252349072080437736715462382538519933702893078012496037118977500782217321428396243297402190729377812356544055108097073047552665737916765731672063051826646485968573941738510087408278327746114672393920333512465227462219102981218897502585154674778842083362768040607270661004405882415333141684483583489338334111269018463355622138156547505796612404725964170061095383991688360787627795694139456297868952118445956768495995570108812152596863671309567131514052128387125548729248746956049483232821617179565746747527298995040503718171110113889461728900264618372947415536689373348350747610761913368571551115291852332542658322859600546507485780127882242823877261162142435775012487055130233161682935183625541921725721222748213675157964109433895792237667233843443898027544411649472171047545121945387650858614609964562742698802066704954331791271515797125095004982843660116713114413717421123700783930355386422421575929325371912993871908038142634565448836801218647842665151193148556808629447590271099582010303708157077883409655991013385294550347646332000311483093503672361293636465006106779466159039881731729007612087630247934079434570428722230779374455238745071769626215331009160695890626402907134313180920762627597927749367748932016192696606026549675536007244699277452332030222303641076236161239906154576928376543608921365791178915712737858851679264002129142679641040750727557703272922473314160981154948430700487329101684682500262950433096036802476313334835275337642049455849233703709998574893826080687360130683563008221439452663345060711749561121613672138700400897143101929448907719182900387117190413137349644202987006000859946525891870529769381196288467071767497624495944994272159552616048434352702973330775987931951826448853034373959021842239230090112538897653302327030863507597578156151759093700358325202966042231994985975826007083458781801988615978560168869000192884487350397936167217923397511226097682711948985372906556833120556071114944675762290337139483193331724771274175710972246922629013047934508611170046063155747066347376252290082066297288808263781997667670413303312974248961670209101674366481794841723226710906095933246841776444384554312810992940087149967095547443102233271929536144603801969403355550997698920767550051937580117723516309448015156279190760406980019188129261568597964715056335736809908354540471386182557753282828613613523952345783293663758545819559598745108610218098225422054070590957832859527113376166759337424145566402024658253096573547075004347842640596262498375060969114442696066564798529860510641789572310090102753627657270499756842320115799841798943218072844607794182721705197584391873208610003988354334063116064100240653905939113704702012428470546297096764776818002434561203392908152328791558038508587808765099949907275297173524008042018175866013004569435609147490762472491039271645998846348786488479610736768233013183879497281282777707412204064019189109800130037991248693571978552235320460323766819816378145023530559275068233508149087246308272235799114923669714745083774243205851935307972035208501667232475443610597217683960380058843667907348191479307513663174507270305035115193184286187971385485744051148547615756321333395094825642932420791442864709873160950451428331776525807291373141392707040241466846804452213458677659190314340660913685800134213176002734100795996163804496435987900662209576375499212279625730075631732832840350892181943431707264925770264515947994638123145984894761699757043733666200423537069063430772252015126036257454724891269721507178218481197269107434957182778800230078066191616294534299023000857444325421558931058933393897789180965827684245033780332660120258935441712332533150815932994086431419910145640855848124608235644624472643316557692388473968380107981985506363237581929860869458170827879345659760665807139259062411300958439192913210703142451105129762630842819866444321369928791888014929300357570983752764368598914796758550118164688787996491103298808848353447912606869110826686697525524633772316933191566489215277400721691278433303139087016448589316102690020395679816428173354786348792004460330211212519632865279343754163483757208279050050278675045120853132417520107640286373587694330443213119309580978057887446375150551094874684282348222230478607712314624538545002939118300134286851441177837869775876776026686890325595557166033327558520721371611513890020490334965829062462069098063878127206118703529106457774497392448674957120092540115687453123082853892963041353860496617505187434675210985836451037682769539635002073542054732822105869395421286261551840698767007722601534839837605108404370061435552428319122055946124869997636521921963840242899287351702020306823299493020996438673579030375651756574008150231726489921375929015316927212352026128596950366575846285927841421860471402101947914580324045459052070308979429769547146461363273968683921241868384030131283401000461227969276294918290850431712837995712873283843258487441312410646235901567057717853237411961650635167015020885322338332561542948170264567831090576707654577672218146746025583906640872037236947721701016054205545907028742309650456594238155172685595393424391766832632376531235621313901914017583319781495590454949639437588218731285086140271133154693037083784655874223447407819673876957770863952116016375823331865661727959329842988035475650731281731280902670898617115702311947523618296765246967773989569014658234204629571458747209043709718903371029188867528132129714999990756497091583244152430143831183731598375476395592062743310981913333674608257239847743677366317438181562719140548213747450669016539719959495935476223382024379535434547618434390145551348459801274223295230468619204152078423565907630766927428053820190979693353881055855687017256672794872739517576058555949873619954431226644926732170284103696181248335894603558298850327345195027519310054098032476505001259103216453460315316335102735481095383648276510932864683861793336250219678129846380318597488371227285607977684066191049254056851801649066800103400060516572896155845191952725828987354399233439088375306900227548089388740497710552263520280074901396885175909701453301089436573671495384554432616456044187464769314592951737810687240763381681463463929225342193355786923437131001444516229112955421342977754890297351736139508564726046255119167129165203530078734288900456615886884414668865448649711875238851919286956784340518842611622706903129546836752312026333736098206039506919003020891829467203464776447083614866357403284689886176875982349360590590429389108114423072524534077614262159346940010318099959668713474200517936074059512130931830888153197595281131365740775327868331940006532987764011940035339789176851100734814534717509328316808858065371101618621687447104818149156222685676224521087139922083452651686066319887059108194582781160105649925290172509047109328413034578562213523633762828393039423878812150915695948146344868892110859640612182894598855888976166187943777893238009901499464914051040373979446813175016327968135800694324467976195415943905753335711036591474684457648936842819315397138897040620680270446553740933245763573789798104084269495316080177752706990897309422242485797800768173284587226922304596963817225549945233072590201111479687810780893428383860350526299689961552293059804740958924414391880310222785108193821275376879486514276602159897773729566243393709375901819225739207059037808180853417054584503126715892077624153058807850329595870457126379678998082235256605696486545957219833222640977932763597887062800401044965106635607605115777391460094388637900939788803472532318515735616301881163122684196755556139662129103916376600376603071871428793280695985386212625643689686754894627872984308890243947856934101875656118083170406663149150847671032920915390378632461826537751248414355825267760084224829208753356320348744297099422482731320175676795706152498904028139382781954571708009053434543510548315466000015786052439636920257650259535284322641863342694913048238199222670607491052824795706739255662359454081771696664444901301078657906695926327072523806044623723155970540823744399576078186971834041167505462733992242606129963944526547048009587674697645983873880578137458344073952620722663590711174333349206061543211085199693239022043272257160514800919969697410699102069796297888551210828614630109941077027562533018509538850865380577083508752678982298040406870767921693276250562095364241623707951059045219547689932813046424741392243138241407389642250821183169036443544157775822664722699075385269407633076050972157020300809686850923763214229652597412766631318533225330351754530756502100883303257065711681946771424514565538098398222413997906626845765533578998714029340170913719511624809252237489926183563187421021113134755313393901477904161955220128206332947824696245620276556629822857515881806220520688480155080567081807772633938413880153201348292284693379381997332152605461668871499317353968383683845737593042492629400608008253613121203564136433819297146925131541257941779490806585742766769266505160950681123938913610302668132930845717497579376933940329599108796955355962878099277589215574982448359721599618215243340411795334383379100004233678221169493566133172042093084780777622367393432983945068652427207011883678417709244900894224116498307341579642317417658623440477470754569451465192884437503925225009725395130909462288833428562149939108974664986231737352754404501100094294015652780248000704627737660296307154408367380521550361299687626777535376314107325019827160270504120694407864797371011881071372110279414098912683398231060287508374612569495321073532126520687530793210155965849683891204110272574391430351068875622776480780812140330412051619980584217435936221664693928732261115264490113692147527249858283199788061295803368526354726556335033364277532275941183061596471818103063435190616370449970017446159795220434578785535707966632717974459010691948243241344933969024870722829980115174695167395282349456661428520128639281711674420289091792758483965666205345222152988949803431191129902942040921614143774418147852300497998760203093871896757856186010213217190844096888545329324731080911502566373699007740085927718703438290166847969362095930655728828971059411385945395651628236849118054197664691594637681600899400161531868877351088348873155497398934028584878896069720176351703379863121560195552250578723463520290982459455508864569088126550688026542094250835826709004550235774724995363917227468139546800790436379592485899650015340497661982241180798707440258149866480660085938724497120892911523165298948281709238078851585645887604539506649724668784087811463009491224413641303223515252552868508366489670936771197793053062715094699765284191179088221377907555593552360123868114374281326109541339890240233567271182110898370901079006994334770223215941232331794762260110358203511470071608766471282196489452887318394870901281793196548115853901371333589394927814859749007358772497963473696901565273377945366997805118260915243034955994833659993759682773443791485240525556364852805822751798611515274877076380092538437448919034775023990179535808416631721605267557406167364317116967459213862314519565061918234528189184817256323774349843881454376432772750736487942881811891227109902306936742663736738703774042719673043445645052267373738040323565874487592075653797716027932353178620954090631027284330879476707268579624698644275480167922550879364895734763931662306899128708221155596482204381186213657539790132884420531006203389791510637260932437950977675305215033998696874161358124939748869458003152827205142871943496575148326915925508120756409017699026331842593630646031759528342578231999149531925830838508178159834707904471031367770461868367398774081387170907326854425357481948901501153301953564758788752295289859662926612342279788616886677079510283608063968364890104367463545330657562470687985938008233365233778334896457022826796489589451919504342947922614654672429104191801887926091009658624708911110705102963264272118604318529950587535400647038138298632226345787957533603525919566938689070934368260939759885055362994032162988211163520348966658333282875392177154291493521627872820963514954832784419752264397692475794012862381103228215080656859489590771292848759142847132563433760646803910620269516561534264073446329864806566292045362889221225719212987158137905333452000110318270656999271054555818350423525600036638576978439718219605664731555194416561266942046993271091504450303128032781045424817462550162280369457931645576352064703138705470880410333609954712194865309162490700808956332494094618334677034849845995109397630025356854102389167707123824755605876862678874855671671739874516539105095281264452954565233755198862133821483805947625492125886889420497596088595922780011134845547221838035174864316438211151700580506516175248372098571388317127318062139465373104616463014144033896357356384020662797656286125483094101729087490033483462504030742362910101528709403678143433844594153407546483566032229944654423258936326458137665923183675098719835582376086809370676429371325923454719733411166002793645323263393966056963306981699405453568954710303364165271929360812383119888967635014404639685638095541311011201029699828176004006128668466630680522825161170318640633932666688951359719153868241837677022468630691541964380131395841943897429713004063132776642555217001336663286801236421688811570997642278232604749182116974708263873439666880404477001538938281992539515814338999056445156644273684040911249027167938252151310188585586075410777309480621948738040353770632524207806484610537340650908586538500516183713292454415463607978715917621410602837181965444973130155889360946655037495883142983383569893791988635424707593533930325165718563633265382682286237633687532233087779430775017633595327441844775505748532091734671385369368780949288760195901333347041663307214344919291016731026011146991576648101349537773772562580636280940458927352117175068648463897294105967686742082190706403752139048712455817504879961830181480129436798807607302431201903659332065116580177831078453319295858624326287829568560748910454543307682355254076911746731939982331262284359123005111360153346156475605320742605468571862968866250003958670349192130109805778120297190016639330834128264983434582315854622607492198357426689648941996306181823786530129811951266114351352474163710053936138802985416740677295804581801582597907934357398843241115706332899690377242407459814014525494516998161354868470559256736337782516565654425287158167765834217392801469985733413654687144359738334873138207520913139676646781763497521357820150842952965576103476450356681970476306017410894114820765162758287994047117212435477609045709667851287094304740769945185088083689628902646713596734590550062682846017646875572046664018943197593035279384477482806910812460416262084422732084146010715166703780827862808254406803342486738367958099847022743943481277276833594403992084306294291009437685042025719486623009957094902676889728872002776922264917354987722804529957178964548350595441588748678991369358665559242471664737220646923891544800476801587711949840948002014947754154242819679956771556094382767867883413777417603017277364540534567869497130688891625330066256778072459287279288454183568600640847954131817518387236523905275041075443298195485927216244199654141592628820893386116347944438377819162821588668906559121129065579945856526734958659831345364062168866931876980699696229777187764698790256320429391960146905633800405425217453601694384159016247763787904652926858786389714375744610899727558260566897838270606348962972581170543685639161760982229673305642998378275306347581621582830397777335188285561855880483341729048535386586645282493052372776715588511839674630218753221786872118137876089373768805875530518124316611934581378331125419558891191120404540297525836156580732787314106543202284461794482374224002328371375241609533131454188466471460644571199628988480968993346359267960700150858408553741707364797112617726253426559151747920855401309886225833508805961744751861063750203989077639755426257888433515408807917700469564035701595436382848727873322909889652397257468587656486623962090222452568124637280267876778769804729475276195435333877326764607813505756550671908713956249218980377049134341510659555196186763068768452320525114896019202251012787192245646733008196862300691377153230777462808172257757894855464796013544366388046448786426593963717964598138741500231860579491455111453988603976828984819399631091513394136776051616589144604141174131294446830884858496945127872785326424733593815987148662100148540887537347074315963145166665636869407146099758385868200252155883362380915720402072572130283317295315153750310702130969810777604630757636434625586672247413688640272206623962526837498144980274613333320430797178694049822838530106251198325889924828993164437258313152796347192034807589078575381668978843870077799553554089868476935294373480860079850421075543145199903387945664621526987770329026204763867598846351522418308552086874232193060143600518895581809770597042911113062994599034578957748304115431912074670871048012126834643190040120639955110751622959315166984766159990160460836650949437510733906562111349141731806591510369979019006964521242724734688341078693648181052817763355858821401124220091991253703289526334131984457636943729032005717003752346692081934981502959743543266340581959840285967946484243692201222501755634730389746116499603517841084199583052555265288697927012657942494910118747752961211566678708785771719821577896778139590905138721859723298315101019108734019404346164489122823850271027311295728429418212765209121527106947819674824388564624568273343167563294618783283366310110724992644568655011908329974222744276337441467906953235190465945713874479820639060724003650594944543930181380382487246811702966126511272667432326464481428164324203867086232374642475613214545935350799870529007285508782537163425902551248697646499585995836387986642564620067776357554862389528534396703417220924762693829419488650622882597360637374302505459476145054243779187037368348076367809404814062114234009548130477666383177690909389335566540516693848187086639850131666362396791177122475401464608012218027181121342465469629117712641282623094568980894384923780116189076659064961559168971709731670513549730404131564578621815311622477975966794508264457906723839955988536299729619467994372656220572181374373419271780445923791463073843892989855529612725107044015217272517596532812743942156208116527564121023681762908433417948958208960720158467100752475334209198944716773768537790166773301910830606847405623746677221385698977376181189693323329730987065467413679338848717652428842597783386166686061649992313278366516066180684455490502967317546107787302718712062469688296972162228727298822707743814631963785010099924747971022354364766451831702886804792585566918469691399099174700649092816886727130059620018335116125055186596664687155394809697891747524105800361868235418015573765991275332852865587493769494615218847412825217601656665742710936195081123610238367669116804666391921123048876869199770291918364653765716703181329343944554009693917595023376274027734475152317015774045680729266102202223069082900998111458839364968994637762145427579722689644552475523876579096880424985593450412162436203346104679663424009042914807518974923916177060262481493811907169260436555058286101698985775031499205935718335424767686491195127432629840249922265323284245421107902774869601916713415977475718496555996963286791309277617323507658524984930417457626366042948083579522516394191955028974666302163136850254463190181878317271820339797740469468288961814846595943334501348466440820793040891481958504104515032764581765043254026031809931849691062767276980858380132099480888258788382649302037471702426935150761338826738734386737258056281726052112573086252899930702928401486787584350697345662638930083441023475298309197538028519312763461908509904869155832203139789021470327572505818782024523411331943833048537294387378557092143595200582585930941556285988378908289961180261879288942645838443256327429081195176152312675668326542146356940837128213509579362885544457262578694943190724414024934013622738551890629472562058771061074147568246118347351269742900851249841256130036396203471124355078526795263074281542971935377290287320128487002289250387760789380482885478114684108839114247547087985522752527405821598543460078078067420845737630677920390366305696188273983225838225066291082911913376313363974020631490815226248428910065193084614397485527283679118271548183739984995039062239500036933236290775906920116582787327085050016693142895326617672187131817566279066000831774658477881290450947852016520681730332635317488413742954407460286164916728186075846767410550424028190483345654697019173432044590464200310696567278362743161678211967277302762093000549235360751161176719527804201029409821004974648399318395404812353641597871459830672214378956042085820957483917040996550847658099486162547555601840332504205164806863913933906720852924928678699040134949494912413063977700510375901440229806672931503568317540300518174587528360578839642349992985961035324744007442317587005707247192082428888783610450447765183641786040141581202811140106220582845610056666600144741318346855344822473568930251155829206212700273136775445141979351243865674109056210564747847765674074175706553782426401858075681501620195421428907389102418929790697050310376653325481038602244226901901118093733786346623753430253385565338410821815357788976765816132162465436394014663636800099858337011843178319658434518792638586421920285059264463468103182011507623955458503714609891010849406246521269893888917298816843322937615104441760442112372898964906480536408822740644624984800298874482795062100132579503382551589237625018660334771130251227417791071077306790997949543229555004877433129772062705908191337886525607321519890511708067800135594782343200600602911023345255603143583773922408541451847550042207099572991472168956698189832262085974038926431913249377708775252141923482713771386068558186245094126099676676598409924264327978452130875092451376598667186325691184277166744230750508375013640041239028042143674451619678785148612931041526208324671043736347707873569183119823386357728143970106320886025230444993297018889833512000402740338681668731778892553538403519928372685802856762513283786990087885661863201541638032858506346233166817705440886430530053115254286449286234507526880562398004643278899713731737081535942878481046677216909180452579094532237118967210117205453571293065857545861077047663630206382117277971071675372095938214564883181559237577724388567957666811534333945273907837272637999782497696967375333651108079110457985235087886151622198316324398594940905524650250416023673781963779721485355612392931177972786391268581049155440920096718899026315271420037169701544491460268154880590120055942690755772787590914902575678641955218074491896773898423423016359405945114724004215468408890201170842960002860491706731542822545258522225439943684829032098492934510971192250836214464432276849315308617623830257647845615202699960661536352413325542378265491646401892066611676504487147946575409290376941556599091508345771251983943871765054957635940110350613740913426930874847355834403350861062378596312628313583460283751293136570982284161516425869623612038573429466663296816859557418689191425985597246339179404725392633237228339209807171573549890608386617735601911591344684310652855104709667259521291417712714191494810341570021114471879807760939191669331854906094886599437002663446408910546368564060238750201782412686952329055920170343637891164974952258454301615192309991655559347773997261867021790756567676650790210139734578273339802970695691185433539877726955612100870725425406536351580582099016462945864076165955517491067691042700723447016206587024563176460975062570040079758255986606611220804694346731951793605602396992528104943370414834143252062568584466173045705238129069763107339217699120148663322909836861398136678892536107799894622835445910027263240612552363705364855909056805046958832694518141676193643216739548476152908475284501574782445828423673926216358374673502158936312925578238817577257285611106304642615070607578202667073803540205006854457593032056794691885626754487500955640632485577205966673377370494330111277377437963614383426311159913828224744301017389431303063101097939861212917848283219823822674849376898501556905252524370575725186282812437597683735302748480007015457103905100721605930988539976204351106115422006675744920737996253610608372256145585661912224329689399140537828993268826310282892026955986534431230126412587702359417382398617288466394141143810051741792834940611100754016653801527867568187403039808981600623743510112996757564085390351750230881207746812930657790434032771298597532271128766486992412319606218795815135399683752901142753475775811721678013598658740282881665974492401433712670381571149085277115819726912455138513329662332765238565350364692605050143691038624117950665240318319599891689670178676362356104755192399224534534130991370106875753383040747759096913375489022064922774329253023773220941419619705384374820150112887117546723393345692360435354427610664436516098533171683382641928344772013533467734022360856356561556877852477989294044664667987475793447319864644938658527167391415934768782200206723647409110566646329807984826717403798364511331071482236380906844648509625358170975744600608164068330678268796680068382470096816318388373719842146515956885053740848754211054464982868431295641896898272379642728983261273756810927578154394553659962948601642556881110003731297933771237414771226464429430551971008967668284202871094342547331193307981981326035266648320623190597240998514011499117717032669736731069674138187480345603521305172422202755343970256199880011173267674179559410739959993543138631247129905645288978720658757817804481927766571991984415673749607501597790704467049548133689197314773361034983444968137764658859441232720429116203376653858640204539829336968625792965264796674729537495038677120707618749747663819037469148538418494100120540627819738910642300684294907521994488625102977273222806353794625300723323295264770089966826069148592944486788512615315264542710806145282716331189310097619125652539119485533374201418084717165548512660481196488080403175658275831515384015833880604520073452005000539825430804059237858519028570252624420352279852698204220633738537125495342345606126687875017024409276685735337222947825939893879809072739559421535551278063383214693877232284279230049501245520926948044792841702227516284678769442619166553738323819720973185757972418300076133199242854464213783650908541620771899080511474377135363305529566931068401879998656150184611518259712593663068940778502210275898003644908190912824539908852545066731652639948514757317898485182261122455765497447834392962287374854826221415197347514342574374805321916314970920717997559614782589288461035286129383959886143675965386550163673147810994122646322129140211420361366699066697515868609366658788133028925655749106842010561461726862720960941754935685317956192312484630603513266843525197766833040272050013866302690254944244015395606566455135280753043743551918054964602974123810829303673961078132901883203443256644116777812486703046480414295719913817575528854752072456561283404935852457180026653812052100713340507562152163768643477017755734749166716965918388308077473224272703747674007472874943575995167612077465359430137882101088404030138417612999231200503516307529853761179570936420156945108297392655358910483219659293316311624359072715636033764544836986482856942936906035865406811793525693216104599513113549949739638237885366939285981268832446929659959745340102096518258677628093911852774273605400641204061424373183026931382708000159516655997715671806535847701861686621002569339276297769989653518431776361390680932962956558475980268631642936663571446257333282477848146906179075417404145790538595976226599870013480040828570113168511383755868225263426933961952421365247342523234322158165825552554730021767502795139804738433325954104378674286214086595335668226351244380414052440354765245674909986835856921509075770219724099413345034497591005079309199339277364600703671461685572529164020168985346176737554840389635693027812473205389676799318073153249284889905253758553547809094225529195741263843711269706066419307749633646662625201550172512908404847871222503169111029926851863579942962740670464644274429641502140168022907052390502519226467291723656179397852374208649338788296187688843635663831389640433224654944676671011922535492383056218342004541757418205010566601198305839381131826230885605434393928176022323903431439218163539725522453613743342770163634012679548028358822435470787494633952285854623652128980897956296540003120094687749820287500981856425395780671295460741800490728241858635482218978131824077539895178385232960430744812354653522542583358297519660018814238448781714255551911426980875335720501449289948928720230145604213536348372286970189227205294115778990616672524877453784844859497793570636480589087993747154054059646683850572507144085292324629600448690757750631007326462512808840689446214679396915829753057161119316813169690972674315821438473386282829867852089081737831212348557136737752872012494392329677558751912469244827590873719099188326817924582526434759443668153392118036764859553762549982072378512820909817124067200047897185825295603673305761713471302457064428177410135958623832901331994816684236401929293715011908438099556378266869663021979245450339062378909879673692124242768368235962213153717175226174406140567737487584263940514695979952987100184479546087520532029920063407795183451493657086979523741261639620677694118859187293749653381951288406598904720948117747132549067044534633685302541998777238878664166851430948062001352773042600316935581656475665227913649732899513233514330635955941230540913036672203631663743928495411326061337098317121095312374235983557599137579050913243211896622456121183211576805674970668900329624634043450057681587104484826702665067523252217477195798500995685499191997550760145590977195568092206974179311657316830205161255420865456230729686698378912757816808133891760971427754257559955106153506475432361597891458429715289419788092022197496642273879927399489301271090430518111836718283620776149543615327582059287377299299191945586671828354950475967788964638447550623718289796257526962415672663376516608039844294697769014327658927377528065306925957659195010228309034453793955572144025180656097442737808234020854864980330869998117066045881159562508148616799616046051120504202848631688117885066868080909294898535570243545713592804815480475195098475667435559028100102053564711962544862824842076892354764116398963306136593890997087644952493283879928870108455554256332019563663344036533805318138905936321259802595602783746213735870635675440952645676628160303184630828452843806148311385629782038506276661094819967791486817437361556434440531079209722575102232110000763274767449614781989227580817707714069425868088928771137725367224099469872420159908365168032512590323886594719396742491666399453084228790784439278914448652029123493198610980567284723712358788896744101303168351724017754312726119994030290724622064066059089866797530633061513648733448993409898945763367529393428610998201350962211665000360710212291538584996205375200365801070076533167596023903708095372904359739427065934001102804986863393861592456689915495485111588066730349910817952601860356496688520293271822132181523848745379804947904926685174211647821488159802681520558741507969733362891274400683530439540234247176850109565346062216515797521353551387302967706482360045227789099535291959395322371557776971660012345343844247419214281858164171853572065045832405159111117399762912616577291332165664887665922264569050914725114722452332839869594608522102816751056336695978360415585784934092436681896393894911520441079879947640642326244977674886565024846834869761238870660393122891441313689947486875125875360582797681116090397957125230600281460298622190083956378162168685626573709370826048297437085260872057977611915477872632408680409317273148751497373172436776445939973513947072292424613795902233691323979824427856004427638220707667214207017387806440934928602966392962304069340300671709282025190632404177600810676730746148751673573608841500871021482623707680748088933305500377737744338741581044506839468074887148271508309411212032173606652038550634861071648208584937585495216412625897838099772016314240429009265152131493065731643120289093192196709686896039045987486066448926632679511125686074392012527881649531287969973433019478132286201478833993041240041471025996716994683285517347429209638696763165576158660574248632244108146189406864620906666037971205372149906034890540360896707849567543838096217633212110137444008165968547753312906206570229977723038978747292173882215004203092262690643832908692761808688344579488294940095402545427540066090896378133996341660483598208226951734915756770989395890944583463736179383215377769402410546211727321104937546852004257886452982760881760559758593262029693160378746937724693683953682416419596948667339903826998417674970178703177100058587856011549632203399101347538517735470940129380486381388753040072776531042196724130614424448543610322443459920258901346151943761854777685594038371950486322392612001974384804023277912660918578481424722201223047072276517225666715550193191689400553354289774743913962397840891504637064604821128458130972226940645249285822089088219343921706981885047593219130846822135094289918812131774604555073577182888084302709064062575409814627615946909170758580311654203645712230947921898749755751577404054039406979366475018118529771519614430371914945549860758953968302333303689691307608418180142992920911445736142447962779144455012311350989199844507523363839482091526460594666518856770113356346794073306824823921368143220406514315915185012579141812397848731227994128567203912727307343392350866787837183550651360126797610453522310146992792532060527149308596084357868645776777372473937678672647253546387861659131059295368462183438065869516241700887051959170055339345365815938710180229871262108180356962189672291855721471270104940896135622753112962287255722166016115691977082488898299663550251637979215247420444956087828137970737245239855970066590619254367807392166662156479471842659144765583341304687076825856914306172403553518091748303875278604115567811731635156114063083466972339933078940741894721189732884285823155122425848496448152887038146720770229736149132534830542212797911598402529023686857142848061933354514542998002859788602625204248488166560182362276968814078404055104955389801110138622745439235374322679346104480689614072549892313099983899555962103117357695729935738075466665403832863205051911155960739138882794941838267833691060994105744967790227568146705445728759642779990444652047283255707287638172273345732647508155091886237962784636861005281624589976624493121309016527847424697949532828770572231881572730233449527591867441897327309683970459364538977681305329438137190821565908093248332494985518315235927559835398490387538581313177397679613263945713149876723581885836688382563083198929766400305410095807106273256904883937931765588082525807470806796933029498880452560810488255174788853283439188502040635509393708585555526920151504078840505960797720747605451273391603496856380653614633665650500831852745856157672921891618970207023586543623364959127849015039282663011112392684485614338698147387469192360175890370810829934084050710117285486852454015579568415878852696475846087015285778567850963505599914611223383576896245773886918741137049294882983339240160986124991507471449981659386304136307437518659050542572041092801023655228403841007028647436455209676148427975444798821816320660901134629844963187661112167848750230595715513188557856707547455776636318046046693472800821361716493923726974152248974532425937356217051821844652159036547078884706638711860899716134925171168753708920833374345697554567175470186577044057908564933647375414850124600026995809716285667202250200158863708792483633341754304512808864308045874642803839780412346977567987594878586263493761602548037296319874427983946645744364218619596914046056737087664853574091274991438602123096113792831592604472781480173311774363802018012145419131886847085871212806291590079791873748131701576188997895451618446687371057760135460409227512426491116677358666702619036430776821596276397974390978876456574456521985454489251371525234137262577018747556266347846607456126348293293909797565477857575827437919035689725897440101179862887655555159781141476819450420123889138708837463628737346855604321859279350478135744921163227409304046756567807481075131294598292041352965945222937576780763872054819904783850498817368399539327286570223175940419733663793773234866130305590232020151152722019614706933618449292149876286748397928227081441003982495221977173311560208069591544482690072432329247012394069294341430632848803385962158161184040686898209257545889587958646535673651217667543178026290660721893458228658477454844425429771356230775380553493326784074046551599911136352237493210757883233836935705706593694199168041329646617763586752379619017797723774637065796586509282398891437213200203529606712688707511685952218521721855839406145327614464758672287563815390057967551346308916877599632195733165459058210506514351185268681740626520222056131982564143274736389589247832511262602653495948898415546099018319075974543207993337407309206621561274473721470439013916878662302239598984741846366225356097191067068204871596598465149843092970306321594531484275075414824536945546586801373101784824423470231953768196855220078821733662344631241508925856280338080629761884268964442084848045500633511327253297746138474649554674852306599841380005886061229629926051871938519758569529585699049481869069568932791969818795826632073227023346836716666724564468801122310071882534213653822795772829147688771997363650455501313646544257067095495982214076854310840811056448835528213665208126593894933812596152872789777193750314598226771434720990991293876938774284865610744579913303638723148806524397571027958568814987361544689228593998380965210787580619271176453223057536414901623438731983834512530822672029863607003223130675467380326302124932734814680442829764164866620249812431344422641183646142725862673547558119684428060634775116958732556010894343201866236510316228376115853160177480019806216777963350904090784929511447656340461825022449741439202996826149994881308056789337407524618157518209409773915524072772136147910543388190882473058026363168822324311581355385250151983121749585906199917009836115172109556741050859934715624176673787427836978157764886861769882162112605192984850279271929000313636776804587950309473550685033884020880067605496952787761036954377381074089192242975590563965618006816514810190062297834155342133222648411625726157685422640945350767367858358524423246639636322884528576897313988840382907429744112689187645369453380232623176026094328927102252281272126645511930655163298186185745661656903943540446092787017348919125694823424215416994918232612239403438497642469149341192805634602469485500571298959216760679627830733089992340878875373444370906498402166584461101545308523121740501034334606016872033415678279122090080602251172811897938214611146877647311881689058665550812587628114059751417750133165050858427009176911427075747464467083928395995132775079267091664609366667637451313803588746594533531127315031853102956481989332970345683800189364496411345883599073287177200522447751467105628957169607930488400191844776860537915110910137609035242360889862325369081055656192824462335267904379179798826224951765017562080599345168496778126577708545833137482264706495253883779255561710374533049440657136840739811121369171933547624771712569070702366736874636456478564740127535991866738324452417955322054044364520512823407128204171038060222381884741930571755586138481115093531576454713803961956142132218031677305803552693545004152832039570193834858820344756580556945557149057654414281846683971772356976205633609371325597339839090739956629175936769313724671581818165929447882060937510956744685938630940349155849742662699546409301401428357760743223140651734337085178292563490899995861836984835854405508009486597362930538363308226071846179058180451794567665144252234145803223856487079852202956246284960353259964806218404667274030799421093482843541121386390464156573040627006037127117057560001817972659806593062536894147754871108969598881499343906173761878988661336696406777923078984257856411316698617904965924996572305582615050653651755795721529851277221328641847364383051338943011954213511879460240659247681443082364702528264258767573214349795263876596346456498334289286628548102893289267545976560151775451058123408571151304130518226104172804369107005679479318936982808134580270403496517690282629793202669899346392367031240371935092666149399496595462746838074176399343805503707973792363461415172535473594218374223915352405277092887319685877454008336220062450557143647741538736372526360757106609115979416186269013432784985469417830083035851875853041653240577478454695782542182932788291076695430096535066005065878584082820077135490632752201534152327538922506103296287196534767370416404053567904631271992091625060764351976898297951470008638434390687915627194652836152982717308259988242211710961723811650332361447452149826920540969226335414746778009515922628088113956338116461865778605022529467305542307882966783755470955859983527615989997563686907210379326964779708772404935948750759600741263916175213911356129308555615364347757924111147884487477076768266195591427818179348386721651804317714456541886060115133185989801676812471705759638676614246041532277049311236831105327596772699264501270345754755742091803393542637187687955463180982238970140946340821260861885779839681732296743140638934556460865012137578860500208140003593970822099114375018038344816498848034386912951556919594955983191641964785883970142907824576745939450609437498342307898375216443766410416823239031105228556127881432357762029802668654744869988097664331504775236739165021404691195602355880984627064364566946222689937230625333085725210462175004799347896707001354523436110797836468396083921146226065003867928218996867554769526599861144262355729270851617117260114766329514233202375291660856987279810026111487696736567031165501962367931378312235076122114827787683751493244881039893247444073511072031774067847110179837972279021377213192480427391583510200084450355397322743904027082157152919119105045045882060721343889359917549379486921265104651153678381046963464608052014787716140617414656108199320151017326561845590661762090204804233748028933634994852446756272243843915159000298424154547933297279691315187577916160902132115083516058257918664949697233564357823268334650118349285519513411738607338679706625576418827983813844396611031378071814402729257423410601774322878488941997240450448915054983367624829963410088807646282937570615131085598132030120761647162699642671220665236863832943677934008613178183717977040831232460175214003342409327747136241195222427479464671167252749886453240423443960937331361601727505763072841689191461456984847708854228428287620282590816205631959120078654514137571949698817533125825938078710095498085049575100590752977774771786518194100597820956834891404211065075361173327156315792498081173577967528461110335842013955442696927156961094762168036531473449621861163177718598302518457358186668950833661709152227305644766987621025616364798293207634036637778759023292636201274491116093708078907864692917646576714787493357643328276804950360534616759626896662363958884627299262166439618419714474432434582938304499419733437928587067727044974011767598450685709302383059299447990375334181131637719739211744886338720387409016442808338041864549411861452401389575355102577464324766043908096735647916093149710930781315672213568983112537077560041419727277235007620764106463506686217231247684587079898875090607198555596982148734635077510492883925801408045215006120638134353625634382006708457817825796283621469171500762793112193991083896404942237878685998841969925183149938978064411870644597711675670844765420925438470268217113079382714976669650799398843025837642523361477380901328162894054331841054193741079757140891558829892691743954423151481419861730884945536978074781595517373168801472602120817199012725290483616720510531333200780101868041045138965142787097127177657012379883636696011744532042603732241689857628566363328434991489567617647268768241840247008112970816301483019252749700133408117275820650739104235683274987733327875826387114218275223642389654793201754066362179464866619901561688809867345779450462983870508845715393673172228991264220348321707310769874270298403956655617372194040682147388007535342338076936355998194559266604678082535806187829291461969171382439833368755087580759842817493799394622183644226279098017650106808393463203618279217970637941589436539666681688621187927114547737261528563374971667791417068968749662015784650047161943108570615517763182294136828177859474663188895296606180263767202119172251640741633517216883916006983089205838669744533272983531893202747704114255055977480451275305182921432339422305293776009411903395824919404157697235842211315125798692443836334179132188367924132478531945167060619226417238412965963265020346982697402063480712087766248509651477734760704499312098844539784424251767142300191558231059296652444019671055239208048621836352413459306124681118174166448438470501884613486168166485218868434765762048820265020168503066108642054829517824674672905918348458016547429022857246923609295255540219795964735995701461854212425467629868038074505076282039609182536286461705499288530244139532717872627866485801564867350910942334881826130752701037230830929159959630582012920760889469642329439884916044768913856065308899771211120676670996684406177883493527904935606851144633371615764251649142176614559521661936566790123517115938346593479390588437658372088337269907938145342208742016358376666437679124460102963199430945385385609788363895628788287660634954582375001240961756690410866718537715708921220339504938671250793260915854569687676380160729321322698487206765161416944577949531962969168158335302607257415639069096259999096515891556138379240764920612304143849725312130342675376102672535407817724653159466496939386542306631489356487413605865906674636164187310456481918159393963719979191375020753755787299904548225780628101568893189985405337085570828933928834540371406591930304545044927755200155668614182473096662917711861207660063307674818865413024742008254486855936558737730125541457919720601019010892534915569810467656286069767492330935378146653682204013023454172357185181038669598124644341161938724695443377388310619485722793428666081365991471046851348903522338876242487237647178575877274385541801737146829577962180881115016464523955668100039654695036709399605164852483373019618080738030097954133230301571650955632003808576481620902711016548233554229257923833308012338107481853703059464388249888597879444139180171920703622859598684053677021733957762888486058606980179327693881090624442331252604212432819852185424302726329725782394951236114463914469421563615884950232580751964906967116887037751578528227682793834001016136626915489128928290682865253520189636999091911730681908094786472318692115812486217931534187085811443165363294254704779880210036094013083803962719785780934014762427110248948127057722783493562811741140949747152738038089359859022833759059395530990712734196175565055639171993372303737978940954517930036134353902325722185927337986552031818274878010279415000842047202391977656429206086178495976761538935413853628803659129347783332867610680940794822640147287094080589103346303386911362960183578624681763422120821359520960874756651474857032354216345217227190199887707975228194594815927816845344666301965066255771444609494956459102376352623221927030589334312796437279218949758238293143666284237722605084981560425284503526828753202840296639266539273139171976220766086668598608441716297313094663918250156208936335357603298147548937258777401140512157528765119452634729743607231925384179767032448028848970014033354775033633752257974430054090278150088568855495739799356624204225603320259672998464509645257346778742225256051842444325258904443026693383583835947830056076143817302187007492140417948196175348805353821120567390690716691174120787600944482001694702588596962283501471372787332924843476939192940889917163067928203745756964445004308293589883581576565740938563205501251854585119332014438351239255833784516893189202640162083298106093715243767565908159939234936059024869590011086910513929888187727297079160872243960474241015982311888412412116886194037258464374001874085898790505555888734482097764687325485946292521615479935428479030223863333459188585650880487254275695167813453655739591329496675981310092394687407919956374792628738795712316717802635198844172541242393686898316039018425639569569086642583790012843657027905175707335369575425973919274249839022187826311017277274702150285881405843887467152609098565920653088872870563153595117390470951411283744594110465599218321650681186658410609749246414262421605923847003055938002002823447250515345082516235248884651062963684220483144131872599150209428754773123394913709855721371949042448025932874584621426069875956378252257638798851225655628250908387525290928200535110933924150247686519344615212821655310290112803297961932703083770863863981675052651705181536869033573572463561565937274955333774830374843069166444430108946865997705761176945840045681045672414485292016180829497114041226532582602085038022891487395843836808223061772786090083855768683201582017263476333505438568056770574627444864797527670269949160163647442436671244206802461304304115663108345557015568358873223481676058275301006937797730747347246899915550607645766099944415227916212707344549126518326353075019643900889729248164247348491605311272100612352589137381253477557635750151604650891054714794613510939251820119606223077871051178229379539188467875821918517976164102772742442185481633502311825705988843255510403880604508034814885461460490731071398624597001724117367048188194445982053367567311789013618303329051111656878790008637492448978391326257700077413400382976848389454353202307686762790394601086566579927756554552471624904819362231207772685938677502005751381553491533295111708175925715663176457204703050109464885039524142913628506846605528161001972304728686212176494533213217406585820554357845868341240147282797856901628458683085409315677309310037275876498852482010710782501265592529710113877966291610822934631884431980980444570170446713274560105142823106894279200266227707069080992885865323640171261603516989583633824491857297969895215217579333758228232132256781396862831650932230256629263531882548051476831315722241461379829115032078108176737492572711556474059854603568084992992682511727566164368862499247217289244806708827861883967364985020431987845465739338094653519465435866945393282373162712820186381516413277874626204065743084706150089136676141871842703486355708364710523590993026363732136586209358678650580534040211952633202036954050972706036100731069113507574909184723599616245014268391848294747654817042726736019985723945514080299253913003472653960090694578276649269342118366073953859304782415625790774883072353929252495262312252745719372592462102067635703231812240966663648353365166740139619034986736454277368586267667996998555133135903965365760854113130403353591497783792625627029520182178776108703636021306504585153536644958158339210117171972833621217284072660912170125653434111973002712544542811690993939389991857877305696394372033700968491774217653508049439525243195618904723681535085151681070756816375391956678349594733393022210218541746987240525917069245506724219346832152276151108569934626151661591764283596607455083948598165378905202163069182308814725696643152594506795392166675257006848571178692123188621571693032663440547376297033408959664423588624466718351281699449006313527158319410644364964191846972421054484705407413772474928735241579013127670230131773238165559024246093693626216898290030207224495962146976031030279124665935140755021394513501028715220902669119036701555430879335761777643996144062758120491164660400175252480384440709668539169638307253540818008944845250763431758031298824054760587830077291322161204552565192376212859004304807116300442561990600512056129059271129967223436964080962902082471685380413977421588953575446544016044014630353928350891280338422744924651512996560653779545933991027314687365492937129980672915456095571664391578641538865753417392760202492299682535803602248875340418585829358153311903459809053530207334600881382642658401308808929234568559556321555863498702082925239854634143034802682548135058745947887139869894450081835713552245865506401681272331794499529332321541197799766264920839111378766440363708506784410842881730336046819315998232096452187036254550297800151643435910477466998476974525014409716155232626939750704070725397517574951886504418600494436928012919455574911414790881031237813842773148220150255625842899060016276652501966946376706509620041975601398982832434138106849113865615834023538951008525907820257587173554060250262787809723839954307249438796070741578507683147493357257581366691951245508381066659727884185542535580931742170413756906400913606555073883649879333352835924965218450149264033681160858096618088084232952406127940704071359086575742432432159169897765963077922582538724528801500239509500349423050348685484103003604476077147134684431257809488166648405648035836158083893667821565149525446989824998583653347897928082234194108620747635836733510765513761298266392653597430375628463570450294255778203049623247824516544276776431681217126949880957358350018400557387137068048601566821466723695811571577113199522108813999142102335288409890360631255116220881677198885312959484938620543884423106169741597681495985934142553651087288511493819595708547071039774999168743813348461324340393950422756795702163610267599244161897220734025718498271636872640363862550059107313027622951868551915751451308789285990212784231089459096472140356426729139602183894141558031140093639761947252471019917581195989177316088893693905999433739077079308214503198482165973315797483950815593020758398300256011194695041039572088308141193604398912607430348333292747404633365334114011343449029430580803559367128283543862339190081629051506462038260244714984558621585630551128606438873779625626689446691175659525251956702927735719827349234519889636349133486652530505871210706158399880988757939061267065280320986429762370203052868213710532545828134956020221883715385268528655275013808312333449931106930300739211065300814920254493188796482335444003105702932455907028062632380458672592517508604799749400166422209738684049260113885543082071926005773109592224501722056436615980276615095576640757433408126769089487506260710723114688845182726735259376967157922140174328706973683294116285770827261954665863054793133212519738439250323945285687340625853202112809224345138330692612498063185461424282368379427130536319345054965786609022249816707999277984446293601327221975500558691091989214190106286931558634776915802210760724045148822583656601652981909765409510434513121377597082561918785772314592847987640291849782337288756554766568455618149604307047683904355805873754308165037957081795565796735537646947098953405948406702054076634210917876410402577056041145704818509807697513725511132969247957840868335396941305199244748875510523565915609209999084707411573680749140755213073249573173328892948348853090525071847948505677284316758160234969206773963135736061155565837892558948365450677323251929143008332131516160922594776088064211610330832993207240363981555086960005425685279555229863343624759578170414359810344575378775388231137790267963318877275186791391942092890763537117518195144699320234180784593238326319428915671657552096768813956770334427471548206583421180411346494576858393908104113340200189770644498589259033957914363851567140778829031519464181607410429766523550159091484112124845447823543594259214267589661065387642951186296529434167304364503480397555768711470073464547721077124322509120608755688347628999264770382527189890539903374714721403940205096545462581355991303889472317836943522162576780111913629629847347466001570866298854867868953860173745704904454797409963302335573109899002726896498727477444873637067573547171833675010193736509430449918238098290197998740585737951996632692296119113583739524921592788235947395694494986304646120156038624548660642353567618277417828886830449962270653255616284447141480751517707865598896584503119775189066736934372456115154477003342838134523701066434319689094204759059629218126467231355296390872653328179566974445593556706950656947510720562573271996772272076007421567805986151637448958286490258828323255182102242537164870318565353700355092216617582023161307436663235078876400056492789204556349192873080012767389687386751800480106002422547417097089110476691967753948137026024638838231388880268792790867259175110630639464929187941639758202192557311418624572961745214890730142387153237995102471435050717862021043363549663076065496452664963487263738513057276916413631796547844725354139692571768479499282337522716281987146060261917654041978863801848608251162758266628004382708856188278992320836538782421226219109436803368503265741733577026358499999966759629581023864722543599090587996032020329341807467010390708434548649448264474937423376246924150929731514944312954107102522061224570669686047490803988843963224280299459350002848967511768103937354420404488009852186212253877939795194932962286730287562158589647777465002476403536839981432564458492331386270905888026746907426479532407413079470652607024338681344658966079368211200620509883355888557414968628322796736212371174936376826649114083210215104526600286679835462195384415497873323256848183259610741564705142416535555059071056270200235386458798809330884189006727173282953562770557922120107036408489919699555568466862042758575294980964627895628390175748555533001458683016835298205872132290684506167887181785152597076459610223746874822123652533976706730986735703445860717372650396425476216105273880956342289606567792872653382411914076425344653802145017485602580969742013212221605938241218491069130580127035957859104012748526021473112676009353994242659510795773942942364290949968353313439994694829551820805995720074694686642138346327847807323896078402619234604125049617712379882029746234196929556977991988807834500104127345152145127885460019854568222950467206819927714890619592599473736167525409811910962711535890916662654688357803922482957223385816583535862583112888698446339919800418323957070632267110683887724116409895137119943376190853321131233402626245086050071598464041402420368324688390937330938654333077788341347027052381793025794921537121680999186028550847400177489466092981323922658282197089163331767791268183239266334124880862215170309085908838558956599335165269423888196352385145258354389270677947687602652591198146122444750963741140219043187068873400247032077871455053307406382221624914570303094159570186309619285107258938970899720471657182524150422399042637912206480621428973615402928212186726007343049754420888459418090876144152463976806744672991015483266635731319642378723971147652872943331383160660136443149786937031043558513068858254473943445861060678177081062947572984207711765255166144427582008779529286823464112982389489999845308081533492732618674365907782233752936433411441207666942360360930804123177141306309407934074672218265419678717897044225529694453396694361416668074509511339695534789637740257737044777930255751283952599379699345457953071079544102850065022053678367616736890499082081516071699189982040315504533490575634404023962239766613712323539272672955698514116203625153352907219334362467812797620062958982958094011115272887818987252517351238153653877418701066864607094262315684789968471610719429153921899072208732164748776646670523997869958971623592316083023475401380332569392163413158849490374239279221114787455997808785820756100792992893159500009645135741048252708747760111970088772023595154169415304477444772005102980287935084259421021487708175954809131579662310008261395735918811801156985209180478558997591358248128559296173442030917510168987482010893879459634282907265566596825351568524642031629763474412733649203230964223953873487607791152879008376396509142303515820180320883695350549793622874430857931609669234370963092388000053353063781270311899087677948744533538097929717619784180789796517881795296688089724682802976832637937100910716710440369299692723769632218804796021350418156267529259950490847596329500143419143874540637101174785894223179769536594806478845210922251528336728289659085905388026069148253251742750338408091890465753199017557562651444321996802969695645483518340369455237808135987682888125844801355373251084577339006002303354094970385105583274465203527985281412045921301289389000285264074681195437205355145706440226794330513423268787691112602929053135689756609546911242642619217568065813697239811362407000405586971449030922631574524982385296782760725875896001668763533345602057793831347794393797007919777985068675479548142368461652910670140546141752496568676989176991315001719000173027340092900724948902863440743288248043828680106059748935136881658273012052519176943993516091220476327330589286974114257104202699269747960115885336222897633910309306393829683765420100227454322092773090972706196468645579788195116924871331382840633435153276141414733741542224916213425931966989282238894417956053122334358867299624613922206422732336076124488605406408863923091560110288306169693583974217670701363506031277327088185248615800443854647789216475537320231119963162301266303892940510022468088378026764159192925599895171175029976566436435469860468386262320338198206673958819580459637909823518312996352535221775045738178994070789512185093279867895090658565794212294803852711212726298616106840919829415359877192306742477770150508063831831787721147531432643803067706234853404887282474149165547389938285250695241976683089829307037261061570117133754133773913989223047039761202737680493910011067183472471587701018955673817453917814865805929774121824555922471306445562916074641324662578033428086120939767511289435706671696694480405058444277314666265850036871322693477121030424483685142737456962508427078890575774767431024872343246216487891976364169812205510270246342459583742062139520526580167038873005716909367186384935270426860970743774227953558582565159042979621481832465407048777864881726556271146341414421077003451845420036489860357200005234723967279022280649616607271256945802596881350226478316940073182976089264151617619590779514034069334958995269175447594289525712783460804467741424605989622661813686626448078028617481133009990260700260747123012385458516366064864388176341636816547455996029604558813257726208117872414424405891559161611817891801412801677866187858949135600276550796117318662775199465478701765551862691978523541457670321746491190384019719207348867727050174391630760805301718725915301871951977048275027291812363719353565777836400032094206239044006660064170839448764301316425136532091109585164361393225636803897426019197406822793752200559547606619857263114881209814154462070480756672253304843178609067049572401725103111681947122667295948524331255975625488141305342368776540783387027439057315333548169650104792934349992380553208678923685817257046418110885387819977118611634486116728545932454011467257854086844949044234789634813952845293226318236536512946908000725455722575230563080566243658350330041623694192940048285861570258363546077910507510295318224911501735450162363278435711176339315883046728618101533486807423997907822996926163830322468504457782574981330507539341848142688108066124732577679576092144418155839429544972665497575962514920502454727586321296769604904669918283808227744293194282149339327266752734107584008377455402007252851459713148795466193195422594556140241734865979824743632985872859970696824154951862483207093802378609894181437846273348388017122564146796067981849630674186191604246959080226105356374190474666352578878880923739242540602822345943032277091367448666427906253244557483728633031686494687217991225142425062486438341175659433121238011197539040395400742752374674052707461610465360054889406044673229941412854642338771959615391147927955426235044587360386384855907024307331645722505247860541055071811731308176771399895546609767785820392637015700815571206977903493156593218721937498652333891557900211669825186472780343092855862532168666343680632696948470808933428985975136141779101619689214807803597259246099417206000633592445409291517957468096589148386262894248645058580752801823111305503273866474353924569203508150297018831430217113111284635914524925558137126418023711661230456088326193792252886643105683385737068096665537825501992016808351834169442093328319778873938237041652741926840252115887490433841883131281218444343248540683502369153572272506213560443707123126610786386297129237304799258094845527830475676335585359397429446754375680509521553017692629656753116524048800743013952702979183329026779516068306155179432644935884259463321602380033891215399438859162644492978953755649558902971096312425630217493584617437758418810318537654607337158362230408289839102540223914241624494206498636769608127150186989444860004804905767884494090017264519762539227218388999529731574664511448089009711233061304418654070094993521026436831752963924314902864490728288000805941239178551617575511221686804742641392550774013717170774287599826517585406551623730286959462075856000938659722996017322369485934586800495696258174246334352479715029423760359310528467829189425467436401265684935510201175983333564652404521019742540259523639411681313055546902164250414621456942582196493505809824905889530806322201771327557586081972183737938726724726751914985098520376415343235978919557900180751314338287360098147638267765579032644735374500637726877631120339916756625379321170550191831643283674792167866385591360346034695374484290217690601758752572084729361568850245834366396956071136671274252639200769981787584261225643860514683164597704223376138865863307796128280223017669245161824921465181821387812095775482784037286084915124108446925606332524410342736885693851489952777878412661688628249010057674694967436397293768337929605837596386009504538969214185356878900246862501448913404409488769153266863213080730085067950276334422559606921044831616364547736340039246384333675564018489728976134398310449140038985563057889040680524152882428931184367276773330409388433736248489801290546294997429569327931899544298215322524685313738290542597081598786794940189749010610394060957102478812531219662155055287795725564253654745065116078245306329075536555118767980563911212268280135711985783731460222142192185816417053248396688458090412854851036310772265021227151619446209565611873188874204560893612467758041969127190461745177328249832744462916667496360975244182394927636660246425043034133063710520838144763645771059041737228085796308930563294766194772495880187993990356201377479033651814372252299628706131802753857434614243716309866963278725527586664743107636498620200534728364440179795936753208892267143304826802399396608402247413696966818698672812158224355247064261159196659483513846323410498629353558794447326316363400289769228221849288287210267156566672607413822673370884587701230270403020324122218812621462472308721316713938972171786296378339757204567503067799863699912374434871222469235990849624088375055767407886594940824930736259322686165802609947020834764207753544387845543336850503547458929725921900547177850834484023555513695527849336756872108683826356602790008443023878058781176665702570540444616754752682124716906892785112714749787586737952222107414534560747313786578220514391658965066163225102536765775501131447056078008134563697591214670020660673828542672315662864895206348741708882314978265068430466422087969013638011489299710143002610935729567244050024944492733481062013746118810115748908131983162594546789494031195332524210266311404011674264281265514121111734066619899482825135495208156513515979019495832042698089840147572968330479963173397820008309155363781415322778817145053984944836577645858027361628695468741099452155341520068123976816753099222157959015188279083011355278718192354691165917368078995396680451967483573254956752918743233348616665520914647614859311964335300400275767395411578150663893097995016323672346362554792254481100700166880025891620439691377750357110565979822454213150133027603644888634337793268861171720832615056135914737376206502096326059254975735480336017720808143782906535632696313112613595597029457880720028450691588581045220048533118050545003893128199315551376239220491096817896759661793576497181919670536910199330310045877385924947933285736093129341924213457935927753116186449052040779436827163538330063555247903579797675107111429606723058548832708422018597271183967274401252393645710223505659132503024652795189095058406818531936940860590653587345499107971400592550106930642538446521437641173295029739348683499668658843648874615746434576427132166105750849034102486528207970393696142314637608664220353935543888365993564130120042057024613901386095060489268736080580929316026849340948443082267380976924902450683371363082335742573365501658866539713753670744205871007655108472042660771562595138770674341671199282207016404726955191562394665425202344784750286533342386522654039919580362822044920121640215992019948180678497913296760928401716137679111734484923047845101740625718724401599989508050889888857012031638688388947333879557230440077829161838095077156639153571923142447375060228255389976037097369948799109535484225318322811879460630385582994699625494824710338078116208150035133927985652822566685945142215191144045406992551294772365051360275001988845779655867303375204490719076023676910695210460506940405552778339580412220903854812387823644854957702294454377050065220417279445664555910160066826184909373638974374199493083394011496601512176929578076523983418655283075667966322072756072278394219255278014052271854197986554953141204931979724929965124749828668946240507433014292763628803080033959339438850953197733375324987835441021365452316743544951945805432816669191530314671792455612628966954660352617729880351985273746772661008531903015056424951978712347035921909743495017474146866617944935349270573281428675957316117495529964703757550469095831646929659693544083905079606527718553840162204868455178238520908273443451325499439073689095705939731277101051619304102825679589517155370337556907927525271347174410145287149826346937229042130846936302993865174294859254496982496367864927884325990712263660627898623240400736152415901676199098056656363530345350187456817097104532354848990530703700421477706172940681462891488915028150398576210911847893797140744209682762301385959438854215950889529674639693429514618294233543805909441605687755721262487391158372731178490721408896282465412270680012749430450098437414035002613211921018009089702653902298042602815256065143117277449771843971312423523262338795067479162383294529473361523575907913228345621869188188927565594762378778778073479141806503142272863107580183728283364944900148231496516618871099341975659086289202757498036064841899073628724144607209766721871510458732340182764289405060531047404596469003346355389013630185136690876265052447418112639775667425506602297777061531139944098814863571270033641159865191182755252923581736223048842848393741595761307662601193870879499774218110110918504638166958471085660346974192333487834114885328099737853353878773377500667139568685506796918871349993879215696341611914598380303396334190694471770417166849340152015733386034313757156749602885930066626707655599981040390777684518986727515371543830630998516286280666988378685523863564562341374798759858228971592172033315096508073707374601871399220469853952070524229308268071160632557737319518479302856213149741144429649027290368490053590843500400753302446283112792026294823878854294528931723254399862545574919040167138477641295714026546161819639463236401669933916057302637288409801132418788996344296511566851187841062515514380115950687712643990121999515171215334495142875268054073962194506661593742586785190907439356554686465951972837553856176315440048082987565879549995088702918790512863073913464588185816631479388438170813055058718114203116566529862825472331539976214222480204402766531310532247004666034942667141669528596289047755942986952307309499328504902229217432478347845774408951793304569270578572558915302366066390125049538330200544053915616059739478354639737592369215427330463713808416287885790899724158362586555310470169014920473316142989854055689890649348734923905685849993466887365489075087794125236474458760386222164386775321600785504004612162459238171026384633244129546519742712177031658263859537094414569564379420828137880328928605616063511618308460956274339064462040157592798544450408997269973097491182697315484524285933470278450290929719612711353475343752739387278949111479204874801757474759099407665647567652327671302869963094083439374784431198124629872920636413530903197525692732214132830806446678441386754639067213113443335133781859879830390906325663132124345941412993191221593808406221212662101193645248522056512298446830953898027593710634713078466097309294815296040897905457167497980405158961331385388647774008005591334278581001242974473119031250765117782718097989652810654955025641997203356507192467164978141502264806283930956052817993921060917724381924281468170321150322511206990826199483614908881741049530495923281093447338695617589794479462201654130349273585392426917407261310632006267128439540986699802363624053586754051718161518784092187193818470435486634578115869094188270568597771899419817003951765094843202403601487688818978627979031461207674495197742050239757811996266908731553875638795788527973285599852667253465091030270421894659100487336374054515232086335624529793820899444970256230306151511817178760633304338049071364794956223338118041462720546795472936899059283797709215108027799320932398081911760955021304476753902692311125860996867960745018802869940547917426851952412904125468424142593257321503861371565314024883573317347893779788312971046063510946512414576835105705378250794465867521805975225828842654807202281713259648344329612802596132714960700432794393603481455001695550938764355164692618620937886579193911433872528343542808036625021385496790867352043303594876684931134395198327003160289291386235649648928826999316465641364510695727744682428882027441419268561520048710092291292256045833283874890422049849709134307147062980389835404649040547240647954902567091085597947514418697935629579816779670150917241736915393551654157784778134851988754910641820659023954457951819997192450415687791224370635140171131517565411918104737240266576463043879940058679006681244999260319090743699945526178995342614671458046047591865960006359669881321050390642659078388509561045019043881540088749404717213507077586286423602458836438255006389781995285837829694354993915399503834599303467040372095380585272271530891920676829678456664334919057412604614484763753689261924710893755770729823678067682944010122170586223036462748995348312121947547810305434162170038258477728929699259123297955475719056771454827183633550479951631136726130512523053581683177091939317508134513598718041609689795628084002806523403605375597531917568384112005606596152509893784373816308132897774208185355143920873176132039535124980326510277093661452227719921756234094254016109324668686077588159293656235056095336211062802926521234046692990003249222620460833993013543040602051654456001595177755925410024896399009643476092264567595204995851620849184745180955438416307575175869053197490644812493507346158947697614391516114240832230610471173952341801860119932309966959989978055947693562599034909877143204559937144417147848850368181922273226564168740110793371139848190064276862287672449315633734093178414923298540165543604760232692393168450760836866335231402462524757717684610784061530136309156176993596274139354189407252617933202800954644437364831184813459784241017289984815920093062619314517460130230541903258331979098192048942427594867237167035743110971390720731459412168326426858891887367763009374319510368256771873396114210684624899509435616364670329943297806710260275891848258075085275541151415475985746022870502640561737926181855051777649277152694421314076206013527775197789802071576803936302047401385332063017997167564966099106823560154664771307356790411944692656001989220237691478536828780819946218700730272305092847152826733063431579029180262148088065085344002720866222179356719922672601836764111557295703226484918812152061508922322607101675295714758862005631530418144427149233096414537539109926374492571321007533296525590994400463454941550944243161663826662871210212359609917638378049051396501704189287163186381696898039888876022401725326040025952189070883071983481612076990521483577524750334336696270841711995560774676890327751332848874902875380401052201472967901159954042989114979477999752900811556134026431468280722740128737100912252683480229256480579839624327446339047818557545961195274006557823837220565593257260692584664791226881000676941162428232471143581095891513997310497266482996166923485384820186918913467104969397417490753207923148039827057408651957761757724123611678577015845947238820830010214661065078139439645131577555645126379505175182661080333742139958716994098121094951492675876542413334673965630451090797413354036724275555580961217986168994676041046355889980247026511525921939850391383328026286854628947675756814207946690289617979002138354381192663292917729043365696627438672165801839684665293594739846249844537136942076359168660423752890262691904676754773156103709580466944230427515853523672562121476847143126044555905142500526534464102746763293402481308549159371983290543612185485895815876510911888352738350740836407463788024322463908457073977967849534679818327276968789295717847950527847053913766952898404646908797239877753129036325573410651636192081643526391723863648956174603370220058871599148825091010144236734641526950361993527307714669800711022894207338162887579505498477414750886235997028269368249288921290838435239956241376182374501182308595993403760792716849644324734264913160360426659189118836685273860456530131671597838149471180170011905868416573846523603903668284429021046422600470786425025991078433325631805175906133695129948987837612618524042173197160010666711625490524366558672615069255210219056825852728756427762147605267177245970219830380958989325808829062732817626707742854846874553713633094143403095872474207177791523421356852769495105328107230546682950775833133486092395695331325860306213382694419163534691317099072170493811967227308168094530615517865821410386756921804520097403476860139807792062559791302878040187359304179057008140726580855728208131465907599932120661348276206818442528074021485052546304332547490946986260638324191079180577634705922498368980005228867848898762722481291264173403695953616186327677137701094244385548881968352100363889777846517154415423600505344569857147912608581068341123110093665794446890435979452602338599152771762237615874729047890031327376806508759777900173108768032908272666017607457893039367523155786303764190713745470307083843305777956606732769174888672707258306083813392126328846535804569756403000418462495721981145751904288533883904151897691286764568089798905879279342219412588443239821647184702534217519669171253085331060991486921658513550764076817748560983985750164027136837516672937182959371125271485386977207117347476929724472965232026084698012514238606037027271752137981795506982625960747023436355850623266988047847893468719514100264066354021074755804079634483333376829570124022941158259663479648695469178995888944654857245340705972344340422095101011664947642656975674153513923995964709398133777512930476944116315114642344168312694752799220052237735648023152898093159147443247041310272558313987781347310152705094378659333846452366155052032484452696511568071494790240993370544774166861994353973220536961473833622486392681363178741254468950778920272496823328737866395497146455692069838470691256672074066661724067854437584320167843314600758110336430446977610008223408697509333031345065257275182152766159773164385481117078793294535342189278778404768354743651470274103679885759966050657138588463472087743485995774406991761622512476918068017800484527753962893346695447382332806076884667618569594968331802700394350241102906553059075719885373851756788277927984212560341374237757919720078407189355965570668904484802243040600198894683551824958688359447996443839812970806738641664624327171209693501828815324927497103660497021780953528914614774853131264485502013848233679587056181257375237275741022858934893738415332685645897640949487793998673422870941029645222474715703266869046744789962903243773068208834883862209156106085559319571714947525423100335177609579206576668522524614106513785006949745106991987873288714915242938867906466418143769584087455250944123634290698588999222379459227070493993976916169433354580992036811746916029215419354345384175137903814873772100856565905353258428556608829788340824791147369405425547164188088185039761473153481729969988036036172735038282966696015256063275241796989678728335664419224187696956471442176127594958886735110139176235504548974173640925921339872260596094407661211661668512915782126837024574298919619959693226649538809406340487989901813256882510664289515001489791164680213990624565145899666834595839994555170045189818632599310446041965142356075695332086946562867578660397733791227377141717759618872938302082359517980034766026713384299218819161576611254372265789637933339394409920953231627408383108070364548247928268181678699177147096741893969880004429177214027415249831498064711294961059762690054692202890449319114198142332298859207637757207725162439631035663061715691925999118966049821547040796360361133344212414539767043904624659505969518913107651509938890043045923546261193747360377915809728543260238045958024537409620463986052604110653046015575941072148015774843451512556179028060680619682792662450301834588927219201522635454036878527155865002490578253516323426368055784457568686146308246244389300085319433218321637490381687106949534776931216670438197821587780614165182606266068022487918891270480139072939800854152505139623417762900979237076077472915219629794979696439017512677410181683103983512424093051561773781672522733869549355892325140390951826629063205084421153631720094172424070699075782068020908743512548375195214182150832491237495669816817693442262512086345878207115682596896392725823690487818576083603535901707524450914468816317170206201372550657016791155080131090287868719966209907482885231377074208768734856469683443451513446865202437565363327867909880371812676740982219533494561815351857121385911077183324191385563360840269106549705501914644083015700227547739046042373797706708322946201856662783809352107034712800677758213173281930443240305233393615637539561007032839719332108719671966892854879832497702271471148091665464878993194378153105767520849101925306620824410977447883017714086490616409468967999801204617937148597857902162982056216748001292401836750451177415992525186915468275846519608813124600751610529178615708905283984294672988381108868682564897451366652699260863513963301263134573562569841095172718598610881485913373966783924276707541115219664358517173692551947456226423234500946480556977549066660514300774787993252190930839283794814213870879822943687006268096224841038832000841075409762362702832737299574087993022598047122666552162882377823817528554686133688048608521740661566444408185446521079905459352366820849919756061875213177913925539212100100586432215380156645252161468621450967891735229503862758725033460265438214476222793912062794445264267791702026313711217424731325254504697590859261388529279577639653494100777037046739681520697777842281444353164299021799455655205022782055628343660298401578172537136806866097728774468027778905957942390421988367127610343980722866195745177846129184814143452836353686606012975668585893276008540325918519579596341968097933266454844366819202425630060613095674730595172531018059495126207529569785354086407325827385391667916497985247521586347183541399356933651984994203624351559505444768989980597659114229938747284548638799516923945294249525681276657250715801934323139080256637721686934715667528000912488503091581223689970555057685319120990511679930672814909567676811539837960506059714463928636513996017524482154542229009265955462128574343900802820797687653634936578565534696094006449078325437515897608793356370489548834999207912306725782400413203918899590356370209411128475933447609862811112536593232562471410701003593173672458778868868983783173148026670916530689748735659085933601700856242753473295561615321284677684546129167679771913312431422508547675342748023760143035295367060053101137428607895286713341380280377003942155402498562081248891822533335831756900526557508226596619759098963112834872462932111366549524053012330266461714646642918009605237811547652998984663516119122820583184268103916324524581941853348488660915446581046895913095029156286875070511155898849063300654425451127637614666298758262330816383358855873441760222738385198251457524355060250175129754677720493025283979445582846124318168377745369389091716737893983137979018475255700682655842243484360738484990995582319330771092976256579769312336304618079822729033369449637446271888955103846124551574050536907858133999383191663072885123115473439091124244900044503513319959535829450019470452355144504302737559974361070560727825173703665466632288781620776195670637757279610651525008640112904165511418850785697318086827595153024035662096526442598330835413244332989103628705901675507811730956241224373370934804823976586957647493190951727754138406369196699165807769622785870128132979681388275917157925350627599782046335311430417077964071952150935216591953207080956610638743221868392189146041375551185054718398877591917916843990564690042718787153926983101512389919981351359471905968692595253415828145361633805598308810419144645523585174286058164238653604752220355276713854620099297301255606446287246010373933935162859319081325724512148919403310292290478009513350000652330130793339784521748781823840747328416797256084784447159570717969688832630450794160801109723278599957818478017848717835460581758010661015245420256677237682536351732078557751610916962131109065728972962445016836988283073568621065520220755646490627496269174431692126006615777048925255251372980087262603473384039649482157049074073368125905998719092735194888453862818713842388801502738654994335231762546860904628269210892802514917536193858859537206066205806413873560525479386758952158187398524535735151195817150160758192544367331304457871455252340677040680783802049746720054439901094921117549735255505907881407087536162693428929578997762619498354315406622983463290867220405875391533655567121130096055747343604437108900692171457201026533373066836118070657085109928587212616315081518587351445817315438618706662229962464970623087311967713994843934006963341483599571274578231049660219276391636965091491139228529512497527998690819237141142906422065622590384089111129580829766183939605985178803571108988041120911713191631067908121656607816336582879392292507565715104934740332659155887159298395065137532053215018526402781531791355694976585045525475480253973404700493700377613401266652759320815778801201991944596774189625547984511488542308556437896070264002602452693724891330814633419095667312935298767664877380475998539058100319443676750830979064199903371736287871877356823536367484997407784752695019514281706355589899176325989406687329529932518140845154048236131095845248885811236529478079116795512060626396958318272315901693084841565095866330694018420971076991776134605822349795410473940501365472961625347677173277921283718303855249473458780413224295514436587189354431920320898209824204236006750160610880621321753765201241367000767017285121016652366302983166520057087047025213055783395277030653689192940075377891971534101364524297204967042313094938209374984787081413433047079521801672186015822163689012239280270549134347103435487873813765548281259276051752796769742301598593033441016199013215620865521562254654440184134358395656298583410638375463798314168533285767802756258155598481110686398474010427850471986542593914713467764741618759321496480718432922074865854465574419032115127685062747898846403174098177274933911080623325916620280045497830044352749517107718548055468613486355837733229004385049146326483149596879000889908970366805717263538121438676743970398471110665326202340724190823296077805051593511556971925844783019183029256666459954894135387498937950098551731847253762145024654587510415746037353037898732298892785496604759627327913714729826215034257167300378930474733567065299181234483519934966642980716779708923607888210124771363178516882682020740008407267378779882258139795011321055287173819693238167103543017919082477514462798835624973278382323335066148620995818154211274698328952131366453633582141221862498987869001700182324680881884832330297195251537673751957773653863215165818032345978950028887567022481139656251910314151840643516281258836227347021189129271092188061944579205264440291517838673257537284393117470545464643621166652160536118149391719993663130114684759025314177516820903740587006869705813304592291896396885877516464280451755130812316054629401279881669190024939489147348548455525507974313130409103594112033556681040908321875211116614044426813276484607158831834915544640153523658797937034733123713085852350262938596638777022925501900706104707806976088794989051741179321906485645176003420600477229961678141457909414506309633442528832922205229544771657563236628682769688746071023714751178698338872821597720250721736973862748800423254964757421449605195396912974321878120001340673568541570370464300765052285650124748678150640396756465677523956649280472217145869910427468887930156383573336510844381409862739849464042414757227315298704189484660531260059356386186647881976745936612474086981059136895708446098562508499219230354051355039237586733913621440786180701581565128053330330222449761777183213375001871959179625545649743581572807689100249543557152968847483377526927886607452350146793252883338848766129266885096464496643548588409786474507657696903183817240534094185027820986774699249797431266733600590635908140959108633348912165254696780255869965213843606661004351862628766013556187005138392061485177199750749599591110994167578340292980967826314553780982491864382054177049563860902659220455239122925674959058200894341463140857173861002335395484942821735149071989918609683310193225535754839875712563092431275614227367152163860466163510967525890159230553676387194315041641949677970883752401075224590030679627383680700027386956265290360923080689967410288640339111953938231225200867179544909661410714211673786222523899138229445629349894810234457086293020593510762171543301501150622026039238727832151253351235989107733727090891811035207816391404514644544728641116402013851026137066779990562702817356504662812512544660222909242479086976806159938186256341145854657137304928295210857003003874901923912777997675759857435665485497868867323990066739998752106492178119153967758598943764512884080860948729343060608410746205887809084485469516916718072525147530202031822934921197245360833859734596078029360458439519216043367082419323811097901271740502778258112004258354273616711923359108469845983833099544601599366659358601233714462278484190238447010289119217232103132252074980298543459295575088664967908260615365519990128245712381038847305655569950861553800393809364951582464772706640383963554159064000867795690269108427942699761956663957581548447610230585574462868511804592596422893477615450420524366802560822201355344840090081071818074711549463705536337769411423158615711462302876789236014585748246437241032717681421366034767389339426547947806287123673572585794358631299911432163428688592313849690439616762227784793586552014927746848703535738425327180960519410401113066305893791607043363271631332229076934155090736800948611724823665319450383831676427169480500719422620225581861026699031337258314989310376123273352060490154168411874221706773046985746895749107844248708922675911065344720353941267375786772362726607396604028270099859247731573098657199835083567133324743807956870643496654416269683796000742817155260732725785028026203394303905080272566501367111894342467703826939639574536834010993321050470966382183566307219658606727338520298003206841204491502476998666516544091609669180675819471571822743635291529344387138773915394735422079460125877796991132260577620299879313078538374111470282370271614629720449338447374308464907442253623992562703598446238563455043648724837430860124019120792853010461178263219458674729970451967654759936207886137898554932531422077644552128986927779188965471113876690101904547705132313398546789896811930794626221124679322696283084185118123963289724019875398879497739208224024081018419791670494903626419293061192862659675841334199015637090332742132093118672023766233181235342303711445174890246640422634512154195843732214035575636661025301999801074396988485533666147493846212599416894516800869041147921155780103183537853203021211946660034546842812312242645090048329315703013934305406162237383423088002539904226352656326602984235449680674517485546217307689035453497200635353065646275304420393557937471714281501734553738874989388233412034276982354279710510483201367763772655588118155993926376498810246752258041225352780075110029038478254711555290581081243554141146562790461785777837620836730033988362060180393943670004117122987112628747095477807691146845754731401660286668348115425696106361651658262501409812617033624555720593770916755250255689397876781684733821236172360325333678569947072458356046129297868319293528411024561905343539878443164175974310245323194461746361573771573631804348647945212947432215094841103335790267603925442306528980216381513988081892824298498405584346354246826833871759026299427706400740999911314088937935246600039268507673809578485121906343755368767527779166685902087182836169385894772220609713109898214103652025550896175659339784604448148410166786090647585345708430020247017605319391409883353147434539395037951930069846210993354216140142446801101338037788695011700744983030201977202416814687715486967612019499296649464372970070894023947048827869397911270254383926505294023076860727556392908793777647240155173209565522095702284849965968897219733231710071136425810311016449277685433847239368311420950840508234113186095142651032613629229903149132038212014850803843304449988312288653588338616180600831454825227120029228225440722592874916490651848397836544974269674316565065286811254699549946410675072468656428804548034519038545693008056050948602496354228831198664275291691941534993279514670366177179378552712138075657696940296546416991348750451084327547609550117278865251917257993777716400371608552053079272755545195932746374649350985481767095319662716587983685660333256254581857997262372742712600250255737019443454319838951257708948906286578316998396060845075840906987723693518405344544664844850441231296256588934219579823854413777653459495028282176305435466361248181277507694286412065297573333578607297672163300318711866574483352917994292186218217177283054428256604314342733721397946244591308331976459675643631955309774849878079787703295194707808250097032657550926290284629740196464844339922415099365012763768340678049203676641947546345977423149466615535955913276148929210799830264131795021728957391793147318539222256023216515205898129366622043273663981507705230283509136570079316947538909908919071467199723030526966720672769484726364781897985248057029896708561727036268233120300765557760928304884981124124215205175837928510184802222178758870744345144538257950694646129207342820085520274696673259474351310324403083328113507923313025409465195198030204934966886686022854335902727276440644236315076823647260599146718758650457112502168661938040868233223343623077954389389416733294964532327902134642237733955535925002373506422207081010818988596576469165404697277912052179476504860004486328984588515679701805714226934972881080682639313082749656521423847736249844978257123410285511229548712579631612475275459427670604344309215101095332172652792256113340585775961838558148986233829367602319458609118523393805524214527513582996296792998709134472385004599986066846979450241773624346277873835732281819303646381597229437208139120832782746956159169649048580847992197343808561300426903278015381797369749414071897411148739954997055725052389293639157694112607361563404591527911566697249300420121401556926639985669512925252983754353488361370092355131326006582665909524897724309484863055240079973681665945768765756439795445370925912496024768102523820141474721266459517595968100724115684706501024242742110850460040520621682085464785810821724757865517389115465464145630585121936698236795745393604648350663267780709612496237302590081184404179654973599907864716721809918635433792536966785234799112951213203265249593261220608727107419728221148950990433501318586414993842922065819703172593546672282568333798198686925237914553290108094332332951886690709994875049617978749218405010912060263484740874677838672858443797556521120355320099304784888249255326845842178771754419089706892771227948403569446008431890739736045372249045227044800251338416611408711882874440041469733729263937008116950175059679814359716411898026195678979383329752059181877024510192119259331656672404129733337235304948891666465345981215853164478990671916904749053749917787148636897042810501289020193601047625307168883887340375512408833431530141616941131473556330151299021915694063685967022145730447381276946071264640533446987171814364280300223938853987323832287297316699724212105875340616209160205082548419515772552896351533506694776073102696003575173997443193515460131598910137280904013299223264242634064311057648289169825537718746024786010633122079529455158623250513904198387748344717763759906677531467861792213880612000291476808838163523289069873103410220134446848205203212386163095702097881563364018859769282787500332035257978436535422846331574691454704503956496931313346968186772665225645569973932769625254124698061625785158049568143402978754705078924802130183960169295003638828559504239314105268797948728622240516805570274118486891034875951140427026077359694383937110250876201199890391979845573494904250277750800319211230678724657820894254391770323203584600070774686105750274822194394928323157420792621641310545040256871176947554957373920859577122803758513687391492314489036441736343726400672902722887668955449324114699145778004804359099855316891531210582713063847142608308844794057089986550890589033617393269373841236515277152786408113447868632266037104164155179181036776909717422727360460743349233743634148439147478484560730967952232974027484064346698985969927551609224920499320742460209708975488795751965276996716034030612480841258994884886459901865346979951922746068075600850129953505284215488594312172443925191905676397002046321383248140753316268988287450478967482331900654335648541143636664817310009025339193185453615912445118788156477943859972584146304904462228737908479180973844475508796091014516715260355293355232442103878558105962165793876572310588661128501016296320911512510452304993690752845423183604574586583197500103365966661048833471768698867541874864991480274667820307517116783332305580305557744992722759489910028017470381051637425327111574721417294633179021391074067579125853635898951270626397610054142464403907169347627343002374329361955409354301146159881814014925639174949606252313077488031493364780646155105714858293212263756619553858770329863150552842512570168897232679562913346820872907692824404452245321927533044425180574499803745511211372992006093760110342973709165012249498387352372559001186047985660650599040759733622543920480446296129263202307299751534731625728356227569837952432017395689518272442205043629017103094653961907625116295341657932659199352076503056935230525176816054343721247835483192037484478832971408247307484672689674376167559996069786934906664425318224511157696807197205725428804627784293528557576259507514629176590897022147595556977685404946800690123044229222973889535402585507155190570949181938952034142144701542940163799084393621548127094950909790982729847098376552357970375775121992345670747900950673595377820762280397441686386327909890503567727110077250723028492532454919504717853425237678955385343827390636784396926596341979119783965012299434394320843311623300200022303777657953407838229317741859080791966597220517256973158926952284141812216772549053374646209566083321943084435966787386226064162897658256226958664709938475398467826809398464767756141704399715049964492108685518977141056945130928384305203986240645391843396146312160199298919166967330151769788628094359242111048966334035781351556771632811984980506199433534599205047390722261718856128677010695276729702794666285211040715513173660576607847070765033922213314197701735597180665061797431318312456326614047727789427173202878777628168829174173645115086273806042301007698430211839367410965384364798064231134133099961281575344566574111482814111972774379238701321582620493569108593984232060680297743285396698777070242309470489202971128082855973164646082884063119884151917141470818555275489483757368992296516729478807859485669097161862870038942256402233108870734187661597464813244710231072773993660064672410375429945135756333096496514111223514466227749247706379988430203424767367234590996194683897537716951564778511869076525409933505054294518951454145088096711803713591310084224142315401481747468613884910492321914212858929978968612648645624675723820387784994976113917849031807977053892604549242845003990149583311566213421273756654942248064081024375207962806172713040425083123641996188502284645088239825795513359991170749807494769136570115592939220451357603901453745834845847990040990564673621277362861759467861847438912400341388483311182913261763890713634829932275600348080327657186221172096839554797164337218406690661530255837912905170911824021328089693387792680020543094138260737394071884238073353443760659243629114103137556192383467625751204511459166006831861479425891871396839620026107696038965646167269490583594943570492194610515918049253271110484973569606057038231509946061238044760832481732362430032767180373096474421032003820602788061616487093553104783824661988183818845481196730683723681466504595719327298143316614714823382238767732252517635584618543897233750592780622151067486621844293825939546646992307274618588571945103295609694200369886226594587671081757002393115805051741003742140104653663084386458486766749663882726716665512422525445948834577210746862042011769529954922777114540011575791689805761790221912560113506672003905002679763978776359728744945462928136173565730759939082288935095435947621307472356111444109587529527978513865965301257546487024301027508463402503904679065940103720254462116311872464938252732079064967199939561826261054517961680262733010218136880606222381386582939379820125665603331470013265480099124907935072487652067210272696892553415420336580178602781648366912406280836301770781999998664883676214383750821421305129165411206882611556031451577127060082740797136829630399482556764519549877128670762597259744766069349242004776981638941533082757072971492045324349038331583176424942180518547249193390881932945575771488502491320366486217804574502458478286918785763364125008428849247585355419408767975758293983775773497241206357860872083401935907307197784550931267673005361895545895984254720039685968582185485403831015851124628001529951616356785095032860114162999241280457211999277658676276690922619553491466065207658002699874646396504045520701529509995575995888046405880598859591379034871807950281977130709251936050153052763347196639596638560380309931477836451274891051799170822681098352868587967322452361973861010910928285482310663744521629134514133528060296266617658035132209368735833420679046347586454929591596608059512732214280683868880993282957402962148969426756029196210051748377008766305281782992805692237816213471257739792622813956537871282801655122577486538045928302922759863821735800376608821738007480361284439226768633125590462464330187890594691402197484458001261106703978193205899677494579598058578211445442463430947185758533541449713275987007557240206163607604355699867627050233040159611669362274689872596632859061576399630121248904717725115891621084110064893769475845127435644177018588857679258355771007252391270304129332636792816254054358715265719826741420806928406739444180129207560315423312408427574917091216719504619385456603093937870086000947684774381829317350507599816935532252955941859858954583263678133057334256441165073301102069306072922022731495476102316199079839312545694281241966585325370723105415411396855734973183615841574525202283815960297036131050928447475169109036082558936050090804500668507863301958313771683300382658793128032994727698011914289236900952214373826952237081589329385075723130725188214488624539753473515876044618742137779288861982496655801369695053261264567521518931378659615066959584573987291426505232641717379409318201528154920328325164025765923676279129328420244499232679974083187757102681101407261731361545404899357938360617914618670563871519647879040485894495315645222410736388219989757068627311724744048206730872262124271997545285641694162740077999957215593210055028341185581982071226900361516561631596308324899434773050514411416849275367335911762172263551365882799283464701274751414346731624983462089904634953508571262086902308149442509311893630047199464255951863401179242028702826898403047900692160713514965980927844106323899853028872747168778558329680951278630230677407401085016150121962044932967936364769309468168514381619969990086766612332353567313165721691524892884150552710834330588223467245198448188918193763736739814626406251985522483537352797715432611603684107620623289206124655120707573071245559070194230713607871581173338248792390538390351549884429088059434105362212307399186917692743068853220145590907047896726956971352756111319177181724978742681011081943324448452229489089102663896935554626738542152452111370827597306413570654811986557717286644917767026159449123775076352246625173277061496787840495939258519343178152217982414840580534814509465634311697263442932436929571500038538910509895739464009865986122588928697964074806964199506536524649418135394304195211464523278689575052121829480571704456117866167480999876756056040828061196438079704470680050984322015947842471126295216108858442853610875773195786917333358301288789500647338814275088718963264646475383285570639417406709702739386932839982737735322541069849386537516773769660618844450851794303238491127834613441381623340013950087109907213460871007678697475223030201475333596771067553038300428602698969138372218130988347429689717284607445279587503852877661778027021028814186666994010919731903637802086368140762617425089980357776122644552673321673400578931496962217242130311073542875130697980489949846734688724692849737709537552517012384897462476695475559144429214570005908477097203237096765219144906024612546641468422813756236220787182316539168437261283521539465947360549496533289838557037804556331616083517531804383729687417370140416579308653867757817068336829991571924988398899865650919544382696919727899072733057442978607263517403173321549163194955284480894681370188359173845752590828031453648695469269594889622600936580514692973289366569685551168136090683339878313553083157685495005885145043658892230993823179250430658781996031280017431080925405717978098942513954000202469557508512048605856440671684970414804392324900338771110620267302902023903909018752880101658065057720471547407744485787513723776231256651153269905046052681131644026533757793697480431115124819359910618400688470608520020792916201881684711177831151196620663470661650638598212822406576332250711843896555594837264484252473970509002399889168257158257365938804656874951455613749701809145898692063934712838419872003957631239389753206956883123202152069494455663179095743555254289291604240996687188599712455775772387214780812663174328529287344675653427882743404808353777287662070341382472116663310057043863381129430214115666024776176169303034599479677637141653740362782970294659354718534698083597165299813554982941380555937044223725504304893428478575425651838528070808817940375487141840562347207295668108606841696502526822412775923204691932052538839295906857018980657058709467831329122728677178863614410065106779717891949088681945692582828223456447594003232863346790383078646849130283521993016472756228767960217748886286904169056502285066139088881100701024607430448078978674828690826613689539957066320105402555743033904724483802297107349168789002706744143077704757045503706187968456315988838579573225368084889449850975319835190656634130471181887485550127041834557577885290894286258705605170140585885655329108342280469517185733202233332393097204400833597207447384230252081119858459345413279158072823034805899495013682536053423365527319158361115898577622592920546701008620859428395107824890719059663037614666488991082752753379738032816932028377461942409675907948500026862397475249584708169691103422373347329295465391959207922798284734524162858735902771755001279578258237176196467654360169247420638994039110593769906167459665104246758266017917836718205395209673833374451113016851862873899936037086923221024219443571799668748998923944908283251148293683532775118740061473447896918406728376902147918465106356759036284694705671227148756517371668916462603055352225082372103903924474735453435617401276410781951440865853657946876257962145055698073903930601622038408484326922517106151373095841764795227656310111489159782227442298641715554850788881251506534348402716919017503811926408933951168823462169374244609544716478249882933001267065331938331946322918338864770175969708040777771151455391065376164230644035742675554722521364645565774879159411170883590577503444112081842593604215198474658185672738108054915703161213316435988653337199319523067414488231259164491038937957942753635992142459361264012537702336334254115413737638395084062754035775644186004571201570989682824612418021148151864929522631164405912250319478345299924377527937860744724646947668978177181271580548093285566728972630337492703030975913553111460280392745141210092767862299338534665827022421898032887208005254368548050998743657213045219117752409652957941739598891966770423452133580369100277405735106583149153080178345994499623003903152029838279504681927868888394059829100912916169970064266725057504491863967177581729133509466942523159897099247711184545405059369665710820626561328443925899175983523900654107832897589710595872177495334366484836156400022755031518012725191441064932962623795006908142853080259064580501010237649160595337664513305686091769468740819540699968772149841403284392892033549516270438738316938998068210275651725661350862078387338293051518971536375288599989312021846270924685240407116682243639098404457715350492840433973998553089121124772726295386574940516814003596275074369354459800560551371376883664582902944174769330697720202733899789229789902024175938366290776132104060291472902957945136212554189943732931373943005992325754166186849901774531942337119020425603118639404388007403103595696529053030005980263721016929347069041674491059950697345352178295182336181247791729842154506416210717928441696784562285886753275288840941426731207598547267346969119824576086124673701328069419242267387007136400394383503934028742827121538700829000346114864978358334625186691773696207433431517345446664480113695778802924074283346939533666807024712196892753043821603498142561500284424713611783926251864626717059168686746317631735819715343914287294475159818897326015618013055811727203414632810989090094587177607737601601503850918249063757533752259244369099762639563639758115910519974389630903405815230820495973507774740097247329827107548555590906675573195715284529057143316714619066916723694130429141425358009791380721508143334484769881368468067332685251441316494454962892777926855510823487552315037183035168806641548106000093139957070974434723890912230300958111840974258794036740355648863210332008487671551350352171360082836970842481548975932203813968952739581995344423340254806384376046452843087067007724509969828496239695251258754121521140006058830422150014054231466661466125937535277921189060947575554840238717582622120180023905217683998251524030492892683718114510679477352248705530069958493472958711426838498912044588230721333203994795386948610305466955287704696404686311719448077835994384213596307212833857002479134280519111434466529576713033479018377792379990927737344879931892404650496695682400909876691388878302531536967437300357794866064321391674452902645292872467270645086874166509965192913343917896417972814021305523340195046159712559337739637160114808967682021497597510336143093217692728873118730616186333930541609303012934225531302788887667354991322250756697450536725501867972299725173680492421370802965210927443699778735971929127053834816708487537663277104974724378991002996495451598547150577178238723496149882418536005257346138173036819937183076930361904316422543032818661537718899674727454783462216461700281222961224243521515031105387450627158244827279778506928619291947216918603086285640743723628045774169943651052155029887899092135301776591429187568587221916706366326397922438493005733607790863348148768623893017769833848259398485672696804947565695464142320417292474553809089706841245022910773845225540171360166992464485641895980592369520431119727636445179689849513220174157676292909903506747471512956745642482492125760335694006498731466888502718878384767033057119544658733714411917858366861707557911463208268015959390169219367392850024115335470195426204663140097820860662357741959245370278968418497279185081562269016676176592238222071534607773534209724625881205396693519058781604096084056379002865761115888604981127958698122293864632787484660909978159941982288383018204464261111308547655141462887827452916145671560064304455782860665041916011753288657394015268441278028387359114767942905541355232896399785882897823326081417326110710025924203739982767281228865884109822981666028022388169945749409381409752284915089299440796117354063613633865804092194377684530853928420845692483838239257896983252523265733188093069362012780090950812561830480990595557456062281144091927326671216599904274278139221636700187529502459834563644043689742249044182919459982639849992241762389211354021100914065851643632242381547719053652625509052851211419984209739332401464965120532695055746608022781353577917189398020189275193539976860660623553788071441204906662232645546113115884447091993533357505533307720174247062801948132039969294180990863482330385839322405281323584413876994810689980158735122696073084378825079892916572636120985445178117459140450549453358101526099883210085070361272202674160000667272151361195486780559491893892106774273875021976117229379261135995952201142562696967792845155320290608640008685214057342576837194786400562217055965895205299592362692035261474987375722610243864663821552773917289390351072359539457667335623332863460993429304833295154881693358171545014845191238125214995197541161430872614553387586711808028161484959039171828305914652934333687272990437137690125610067615142228969902952302411438910409165616212111495710775492306411179204805853612799986376871712663256593390415088159094073052615078392817735297015135886402094289980035791094466932209908450751122080279520060870889106653608262621583457810598642896796830873073341569357408246813967249824503594907821822274931111631876319321997761080067740687268987342667570582236716525313010586826134182626046752686689612622058882708668146927653049876243569968245958094847887814135862476540367016922598808973268660187946580210547411775289363166436190390301663969972289708177156604279502442220827457013566320588207395763118892143143626937447061463452891536237462546886887988710609034598475176381039090554364987012073164077681985431122011759594799576543564175603797787231014633087300824807220292226334289474048657077698119595282429315660589819151784939751586847688276080588495008001102672350736950535340465954623461057639869961781689654228887039630859645566890364458997801526851719267659468987644926069093579886962860728330674326940217051538050825584440076338608882896196065974496584674252354723222347497074419337862105838642274416223071637620604185065333833564974782777414400871556002728938992683806404289341813601674017044467591400816139439538587968344536617950311401984719017602024267990793524329770372004887848129944231887602662809110477671020639164611818017227136440907409102854611810216956893189709483305536018224426093831818903940920340075475989859855033143519497111002461235495761333197190307918009629421553074471754795987259412877898077422199666813762553795322233249349000146360890431873384052636440631301254900869258113913452361988260244550983161585795226019329417733159407650789223124576801850568119364423703043490911546008528735091773807936332491517653451618898653105643932359736984021933617601200775214557848973702949292402621099493063223827966586456807052438970999870159641051885065241544799087324060202355896371644231303208296974449978667931222518379468097065845325013546391023315664395599328906454852438985642857637564693513088188162921047918625919666209020281125019756761705863946090971878339711163003837215878487454498919257741943240994128284542591808308883111949319574401516141831564798982823984647075034675965315843837478452905095586908985747381516245804776955466091996912434786404843680814787824336914476561812388984363171635792508233109637593527863003387221228635424158363903988940955015760016831403380187142136656257753722736693404867548750640050992739330563877568284980477241034878483295230045764722801225451715550931296254111410966623088642729230707360323507496111052364443727469254853616496965184525427223202570834729479512297635766428289024438695283881135456697912957730009206847176460131230713426298372344897998302213805296437234997603277306846079719629999430163610286726185551026230153966094149930265294691648529026449961713938446904045579563896639427834913832290275378196767018154843978103376674153661575040724722420884723940438639323490716403109769826277034131006203261494558611651514993065424794805398754704958877424038736688184042114908849852527858846595024916938502652864567649835287398638519351930501571804709441953724946161721642367705119020246250976242526716067936341577889499346847330177015995962136235412095989497344654843307252533848480672751470282471625859213075215429415269390242378621590016576181639007425565628529834936708796540784247626103538732427110078108632139048778845133871097379356608464652513741728527971523698747917596823520448137452640712902308019990285112284311505407462269848687586488445641292768004758266180896598955599581590485878247614569394337540974260556779163242316862014037661729883321808644706038657327576210429635271003262412814343828819469551977864566717862191982702158459683147727712220809097552806163509175358228715852305807956645658747504193386644924563069437255428624013740082683616017998170845040476061318803141183452800902071890376655061127313919234604972345325558448285136100811624783768323533280008085813476925400574476781730809673700225111023022506107542088831825306534860566894584889510522693215153990995597042026372794196908131925264310958549147394235882147458802522816302058214575757514031068059390053722575120958917183262201764838392311435899086454688854189961070031564104364663408234109100839069069186910490092131534189587568854913547409511626134596387316266710307967383599272525084333933839776157475619039860037794859704452716732401709014718297458284432493858661423972772434899399058168921594377257643602349825532103386446088144921817223648570514842452416099885625371928822036673094614347938412193024277340699755619148982269725433286583741178795064116609305478158695032396001425988902060742108996394791977237921281155686841412576226111056012651041039012713840259326548044488676350657636230561147771595117089525431747611589778317930701698599568020830285071136035067058503478188119087712140406050317373491618860702906648695357613518405302998130355517072082298700721897703918167068791548038682707217458182705600821077967243495024858918568328460347254084667835545853201374657678819521480758963629838272625612968160258448452632695560767638527598153981367576898947525605774407147356520283242253961625001424856352848129179945000995143585394241089244102742922531397647909750873835054095872804538914198242912780299559472415305182094692205730677660262417225034897928893996271469760408851009229305629269315658244662097725164587015942212329744858202724847650259806787191634846632448145340020738220787902833979039935343364931446582126024281117607270637950744586745705255304566785072395020589970725541404620784539275844680231833610749019321236367422538407053921567894889226008128929201482350366697014133812438172028648703256600884436483705892232469488590318927306535284857492033513729478298647512873543212739247741897977803177171878218807849694214397301377134580341228197598236505106296766890388067612136979895219894572061323573509955426898318159115850758425158535660499621130460389597066857091145693741653429005192018384465950807609882672353970471142838211414608892400905888966084623456588293405970128334493836943207349675317624772042457414049410792013769538405612938906376539602126627346649869760160192529963978629110191212727155075151231122948911463857566371751198802380677304836236783411671127848174900150396197979473320175970859075286766827595673258893489960588663163701984234782748125617186097604523410454976362425946289552170576513004381249724664910700752629498805792051742514890349118342170070642368649366775083980727378979869314201845229488284829719266257973372970610133319406205441515900451826519590818085389278929116277615376881234996317009351349681839483282258043580353819441396873021374894017087876539216007335600657619783235310119977607706679183034896847348421340282900308856619239716172946036663918401627257350888757972184523403402675344316501740730426303637088828262501982123192323060293667387677348965835196885057710197204187225163740975856963380992588318960966264251523835303853214811273610867895346547537634305855015542255624239032220295231034156422944103197888645434265402707656714287982937362782475798943001535214156239442007011677327978383124627483472310536443182965377122985330965420456663507860013120748393900657641284987759782388259140147705209802268014239631427910564439393571770644328249489890853932710735806893461610142584548619374244920763406416721616226809305323985632739738205266080389533007904052858485260957569445903519649099368730781840352581135559330252598861465513797238321512531767307349806208571971138786565693116674524932512468803531361800857461694822498404945166056816065641040568295926192566577345614456141802407870715315011558430885835678693472724666570253746819491634322687438714181860146089529253760232912356837246399337958074074226915905960042905685547694638622040902446726618041900493364586989406051416940361045806303913383685360513566726500390777969644980869238895740189590891541527039391599289366485870824593332598736646658721160838119770175670071757620853728245435437988071382407112414101428621346499919517844721697266711726436869494064522593663986913980565656388215227089419615658939682127279160340980914794482836044452313679165526444736500378673783971498895083485930806144163240555888416128306692196429604889063691389803198760381349264089877046867717843595491349392330203085929867851959877182768543430192314357662529546089825438847278190132219502916399118782900573674147459787101270244296128051824165357331132175232135464203448346331513197436689527203197724007194742645783880547517813065066217992499914452626104763357192476451184026679800791208378253954224997433171445661491072298563286248670127420454700754878868124866915264569876259253013022703481950245251216959193554667828499021180980465314596076568796953686367949829274150015804251027903493066888683036072137339477170034534404120611236366997716238512829392525658703392471978570426752850773481805779248421552480927423970656459228686116984770905215398365478516884062770721590347989169099557609208485709843387624426318064005990242356342132379623006086277573332060612946964377085942174963468789132033363471098021221688718174498085524578428124857125179867698409537698281399849170369938267623966423345276322887567474884146751712603052855703902536341545912774510575920709196723327562086337108143286249039654540202815601672608061613349657788232312641010783781421611825729749817535561045268008294816566466418280098661580372182819096970857876252666166828103434134533557674586422961825705490623727688616338860318321566613227411916110747289030781349827747698896206019731502543022038275869891634255578222039821575719245708414258438736256162250455461299651377777044014302068588206918857035549912080297337991469986587439672822999477212604173089033965091399561474236848879524533174293165475335010372902882971636091233790901354081682949682094050670090509174558647606520504938461513545637399789880939172591620339242861548461442570766318898065927682579689901581758275699062689613333661856080676870567220370409935215457066965138320975020985379804896262612783899420880759256287243636490823533341002481543423017856818942873437383800597954874835550546749107058028835780822762721376925247793446893664624475585710536217650746050233183953472037623746312920147512384286519605950659518814642885183428133056193578088309035448765854741320440976764711827674953178342147839525619123728010548326235626174101843122211008233232984380345913003555626400733311586789419318071295664483550832192277268663305339875027002093894647823111935618800506202565820487361413769652581436194295015937840442968779659497660826829906156172972875010491172690787503662469921923990587559253309505785215413179829185199328411692603320367110268135952595096835128498476245496222828945598086574149071840959603015519820031711089153183223331510769558247404540463261944694216638307317854698485335773590106691328961344924147011950942844940886772194000106748225822304304625025433840751909418770286145193319426718824300922796503024002804952255093974282397240629438419730581181471355567691242734782246496837343310144713680556647886043508505787801858710773986070017146662031202210138500674095787905201719299133115680740435874481076934787156802108729696953777919978906801783591411935561308232313059092964281629549787403787177067898666525713660552659385793355414105167632360674666600273483491739858423269569150433519198365067034014286912710192798914756522989266700633700616792929137304600750654708695085595442113311503536820249975408075088127285151299079027058861510962180260211879596168234599081135733183647605604996313896089966593564053776573338089777309653610584366935135071677794850901323126443063838631762135115839253841082572274866044528182465636443091664747526998967624087499426295788270670811424843084398897410233931016859283278967921262776028890744532419566988708069880656964417430424772636610066443642132566115338558470388490762746135036298916226548151823412902011710645339819840375954543311814115011675098677314703611715898057066196587189314305924609472345352621998200964360056934361439240946050296403110944614685655807352904517315593964023661823708095968393596971368341462582065473509415961577105051346548550075540490459929833754683926115891258911139422626844929280694804710892504725476018273983703012978740379165464446077625948729315649703509691895689979019829409372045339881668832347551634629467847598914155460148292271686326295593336320619959699934226921340457688305979820534375497576904864939240945716871559702170466739771545602751455515138257847480244840012437658020162744704797367627392997209922478240995006248049533664453351285712742573711035558506981229238174414184955984709373719433432041784716865035895491301871674275047619691487747305848782592523961206639130343407783283912639087650095456777866517833047021415506866145564254461737077107548943699285713393335903413773740771022754955761748223157650721679197086378173092558439384582827546074700710766905064182160358679801973183214871591230310540592980271158513265930796260752389856170021317467605687878023614984460709437932333819850952955881856379946058975429404718609148718211599821942575216023767514752093073536292227362519232891582605883944446678735388559591530304731852493620153459797456874133177345713129902585691474872505760529284022313050518994458140952703779003841752354055079935370634126906047173629133530539411065385181129231326296287862051262869814308783569973264045221540207137237804889280627624637704300452521686149403855883775496694780904788917025699128843395869135502135294444812315832181860329023279538314317525594627347026664927288651197060565022389730787479664199634493295113943685865830919829618430288405281736349496903063072908209154539750846791378164143267954278380218165906854219900928046594215385136811054823929824082390842572119571702391968395497466332639977669287885521844903954609941223915434992394294641314425087683207305642268729565913012368473694373287916406110581938702975029527281200668744070160840764816168773052137334183500891657041827340673706566775845929926520197543424705551694684807858874277133681505025427075363125333438038709009484963628549725517839358286236033833881436977017722635719375499795263919068826798954871637426443721784719566528566729131518977854709143351957004706439156517273805762486858597261542259331400889121161293212565572354614201330066283802797559391153995251466654106451969015262973352853954544648636829876847902228930866673836028572817420109825743011557445745179100254374273049853650342750193517853019718929473176977957284080038087483566745596599813906885261943995121737548836986306292652843728273185574281158900968305631643912276196792591882368810333180280235711661121112953847157031190762904255072570922839378459337285173199944332862062908933406083542882765442486974954026425106220700769815187287890670163557615430849933751329658674614719088263927871143156578571363504948152113485196182882633266606366678164033812832720358684979936906903070241136763574582926334857748805987205616800853410322588664307223631583121424670368325014348491147618746273424138676089925315921676281903663889483510473111515728479811011935391770430279148874885886227984844056007033185665750489031132839465395960158679141113984863903184763777203524764276936859744542634259184097671545481362677547254663005419933078946580415805757166861941181322917870958821405373081418776623903609185257363343154528937395544922253635322684168522217272271633484660208101947282552392153107429565716850300410886353533451118880303344977203753677667180990333543110596569316948508590972023317882697803135529647288647871180949571061276231059382749701600376980022010017413145743720516777744327527754693664543954619447057045084694816086475000739522259867564830121951075876235183245728378464156050144755634744103756044148032592951946245000879492903190606941324974433782364617233187450501621173611077767312207903082428937830342395440505943343112308275810874897006604647754503146964470617619266011779968044203756912185804895813761867498254793082603149279358332771413431974141541189663037978051091579892105524837434329599339281429100366066672819323768163242319502916293074643654377642505554134818965177710575011735806784161665077886280186572819229576086854596824280775724796756641899964241705954933477563120480333447903088125723490370860166268840057552950461871572101623211344412708156122870563391761257055492055694005325810246562066024971301376221037522642023023783039809872357421433660254411957733396418069381294082954109819611357870720989536331164631047937703441840269781999192210163428597202844825137875348056605918209095980535282603138658963767673832969849904244669184355952290408476164073147225325591513496953518875025677475213159978122946332925668324728424788039190760596467758725020493157375518752953358785543494890753183163831021870633625870902013408093394949171353619303271664424895749867659884228159524283250148188641283393741009254116373110022123136748613286781885872078707041354487566129413201740182100347338607502868025342159596438812206940421012655713018595960264729758627231543708310635230248635010409620941718435909294158533301028578907722422044389289387929773939246670415152070109405002859349418246222082367444749981087593982620575700774056864323147947303050963183211139649498187286896169338328322009660970059360593814603713697634694637522134877655133290776343183897330990581614297991479778073324327435493421425721647945439502933446097557831667361888258131166650880444191452698505761220780481429196971237271922761367220405300260552147380506347953676023370155018142893121799675401545508402081866665904274920426253513575734271526343059147214754783817072285241140575001261498671604340705344116602291078533337880814530879507095533338776281248348082210770017947535060190748320126904132562429392018785432940479130255368539847980568819616333756477023481845798290024073367737577033561077893189247189471299725966908617692849311074842015466074762332311246218822985895338293125015353803709146639604555933279740116944183304707026699522087297578178091479549894014334809764366440922824301929658699702532583455932880790055146694247554616881273420998309301964083847981177327813760835463416860932627254644912189836137928883801093960171732820890513321532854192055226523337378836514615754257295372750759995056430930026940163495032729751373456824029759249099090978155824789032412659470619712714268535587901395209345958540169167305833027713649631979973552261569698164411506723676642891842725444998699216726423624150302396441514539992539137608114246487351182705250265357564480936433181440808427814253358349501480428509740635225828476865903017356687807205636560972150636341250568520316617054720875328366112235909194226134458796277385048967998336290201667081938038762901026473146591653147256883647229413259211244740139015555398267644709769029948598848297277811197569200446245100660664752968385948067314551370314992489676583408439008624894254871131110181832417951542171345918990697444716952311539372154350422567488071993733273351422751769898070216450491328106126912300942809072070786459685711245487919847666569751027448921952445789076292236662631950395578141832594117305308889260659099979217818564752796890046276905429819473818523824071633363435155249578686730561099010405480305590184148672473677265153164466945790521022605704231329603907068924936493428583309004335257363931060884518211134435611547999035382066964806179622235850745190323920847845356306927482080137090940496458801110247180926391910826841188996616850949152839433207586820455563836057009359473710233548768870890687447646609048623124251700613036458727198185588042175917901495406781366303866715223226107830808129321817622435904492425441530529578279281452248591642831711427391458388023182563024632318380949902821835721959531537831955873127031319137574541778304033732196323498307916172068548692207679297458984338634464836029172946922645972016388006879297638059445952186773646870540873015346375320342389098185284683000065843272361685065792143031959528275073103047711754061950417877940219413245333587632334632487133253735899717491293006947674917869073941850624447384695706053484124499716223676707548193272840152463679522100537161379262581184313352442817515268053840660885238305176385889379961942459153168279112811692869121222771477077398160761527918546268988314864170463823200179037978365151465488432654433813692839816678284449845662840945287395282818715020091951506664478291967953563045522518939890548568437714901511785549028557502521293776884794862181439037657535978563860161272125060523346709578486998274795158643381690407987159506841716934708177422093951421266362720635388564123331489287404437296411488486139387110311112174493037619302409698003425563328691822054889549598749496890325776600625883244339145672600202203556270777608426263318638122207075230669164833365921932715377340139180507392475620211876411979143693144706635602050690670596657174777415015498021716381383525576907230747345331990814318627405923837419596102146630318476959768006928687160329871041931551708384527329786747608864282477382104723561994532964605573928210701081459633736334573028165735218507158955653600719682239822824650383597004414789502363354347678897175876135890224692146166584670525509204239515987892494536327487927660468558480615776858520840952419608483191102490137013129183596653266592581237045632765434029097484634460159321893719231471663107099873791456622482994882879230641501574328715672391255799062152953728344384010483631942964758958958459380450590080651014530059625693718289180946615338652882163758047690846606453325975152526084097949687050918113598750599298428358160970469993058644884786727212417371299624393570347234508436263232291367950988556634678973067950477288058739675212965918380515217215967644796247690127621760498834657766027730928715574564122316505334946825470181059866499143774022057629536509579543527410322205897715988954365017651776668399055265358367845760102215218250628034073660311938919314086539124554140898512053776602099216269827073775895550822790142652129634897202995146413305591393907398393988752294335644501362539282910805808582003360592657172555611805561423798266605225306518614699920310114221715977377395517764592698526772756385539875422020858219284318323910654826870098062762008505958199259444650841618998180081742760315980192234857302519938022662317026130488825037206758952620726858206408759243386980710164222363037096791575444800681862836628275224936519854225276980361208870907711296177784651715734540973858120371625573804843505876718151638374954661615507424488839907776328932903262473554593901855790338004111227887383102568898943781930311046261170283243648135072233787725827145938842635702739806229252939985635071744339148270358875860367768510167782841839412210224012146153155313651163394314110161434258884466115245483029752518803113232083724750017385044554492614052185571802846862852584774908223580563133251208435997190231248490968028845399126456007242401336634610316724113884102880636703668417957181561378944388971346318163319323206357944593349949621994707327746911958461661045629550812542086756058530388434078257430410857169303855084705756448662345770881874752644483885573952951790375655536342476276949298329107045172785614250111035694618579748303363444911003842415336349886135838208283938604292206499812950152764220543286776872387405680790007482349684530342387983336613841546422679115851090456187870073759812649200649906000820385405201719816007471593270363607393703825508163462349780401265599844123005974386932232153711675458972889101874802900526691595453194471244180794023856877388968951037457882777558538926160013893926001560543879088176083205573305486186827160364489393050486289838748271852749876005634394116445728027518414879490722924631432477978605619969466503867031123442000379485401103433427749546769252980097369705508486953906956212458601967589498217258401261724376149100807310781216381885980723203413237091038228911880490773856233327079352775620319798309877365489941160701031864443137900252044959200225490178594684596497792678838640814468857187278892941574209291710330375305169035523718148364600595730022737856338892570547050352225686013274515066541179876394401435055675697084675880204500802859265720219816791532732772278213567532281862514669562062974825179202000145854135716606244466042777258546273577213673996075321942893342579294915466820528028555615298632650203914176630521016172644221153280553059346557438025258799471024367692927015316401259073176260292843171867330012861332949172165901799503021818838561870423079687949371996946263843011914638793389485157316137494698459083509594957247896723750071029723791654141841885953823573962916169394161792994452915710145957651613086688267927566233733497994447692737504690183352341355953643975954354277081347285692112753850311696032728190558153213747199381570728157794090798904195164831241956992312535777580368003754994696565697452056786571255870150184763626430302247695874527311922869042319463702164674426320955841681979988545248850631567409782922208708960319744803244805810692267125515878555683009963020956749850922482397797780842271663388721538722782928550393055793206229330238450135444226358705643876287567868401923031013050900052113962392101919154753357785682024957853223070559921039293568641946393913158294233200336997484598430013792636077743987232203622383457823960814615272334825969314325284524441373924063862329163842532822822338753272791199085551388557279161246804143318631378895691161844728876532751886364837021029582160123679612573889158088999169366215135546074285489623107398682010401422800180907355280649244994675678896738786598690153098585180375006569294592729345286232194404934445122926652172767795859985027867570529052035256979739620883171200894297256160054962302558376094027341370720377817444782724419790474737480991230064202549880590483342994500959255772610349108270564161810914631719131627468753994777278115634704718969603048486696127934756974197688330773630101111246314716437801900586933449681463168490298656049144717432411439522248065066066148289687014231272347166725365779474131203589934065999215504151661299258338106320943053937702572653387796479790589916508712071390427106656818233280923302798067642266490000563803039157569032023984745622870294853489613996590374962195916910813085798994509785205319171497462208362765593413898850905275525802929580817460822486417717300693503059740509241882741005511987387048477389108075078491322556738642587748020526992611414796801908487664002775482823923232628419760237176476101197484889030711180519695647491906232473012430724231619692759312334191327701231727778651125955607919352319629152991459524365404708285312578168554999326629143189260539477779341503960640813435055029102019313404909660366198909068253590057536700927895002108878388377847708723664911233175792821596998340293108875933237168225819722050264587641727030546207500519694146900567488201974495041705236158443203461974284372473441692224293773226898290621319052522728713932349986408498292236591088545055983704876016556763191119906169090001678268057217795208643884237101007883016355625229637662927769340421783123862318743275133532487449014944672206520148967666976559178417828951985370339015022211213606505576334156490199863024270936564235568253298252767160917382486887549495681262624659691563596631617116964986955180060505711526485463128458267935464170798926403500375985519802617893226307433290824226932038061007660848662587586842267579810733388783397152763961215770912366572246643321205494880767587951587636531081479799766932546169353147445992739340686470844731222366135545543989260177144047925113600208071779440875318522554315565929102563234339729664990135882455992098221818338649306062682628287344436145433219819117753671713898331447855833594152095852423731910190078306557123194779147503939177224587656135348771966575220834587080141959511882940637262417563200767745978734431701970963234212299337023904182290698437998407702981885622952117418313334367456485936288404164432702918408489337518866219218370655127902064616854190109785703109454353474438293981040819360573779694906467324053782037967406844999507233560024509742244157783458980195413655058226245327845037359483936370846168070068811138423493951535993853183043987560169647381072746700104762190753112649346581906787096900102691333406671691588501662334879163221389426006853539878917180419639075565449400682879763169656801685831986175420657714121208624176841568378812858866658765178063627386135686560632030414009706066946958596874666423849576641419457858662409384628681953192613922902250518296619518820856396407885265337769883166366947688694130485978757009781940684469073270660827312597655915138972943175588125981399045748297120523226435671412273165962659606872713951956609029648715972296115480662275825290767065352739567745183127045509056074584154818365422775357847338310835930592448283623461256368398712487335411322116110629502485216837911396723189467110170837529428156110464402949751602691643901338373064275416987853874226012396691039205059415933917028597609043446094089696756568577752188404168217168303730558070118444707904653840295625008381779378747076350580102010914361300377818378711171370154436171336480503130840382172149166993263361899587335864500683281260144373690918119807951258141351131378938474628047543407916386014286517424060053896147886767865824880829543992654981197234387382495885359002287745454805770891306006262419130802319832651591928453041018793316001780674810756009975714341765888655016383980651412300578631501381009669398727451715463671147086753237666459803051103826498578038910298444947240405236257436368685456039574836680159003041187346241712767233930324874263447338615471504202501115926805216065579291512867144073468191891582045141278233711177249680089085034955088737097369680969273563053075215408564567432125202374755800226348351157721778824283228301175077043993171346293173255917459532587836524594809075187404799387183698295982410265512021159634402132746800803756200722427768137860546036259645856415141657343728676186721839954852222512718636687892878924935291092566378512856696535108424024327664905148382497227123288894221640913255424054675331302840675821655949756051454358577454138134732280237892449259465138861908267042421634693610298583190818005545104411659518008345255116717202955938939592779696715660582437593441204256637011806982479170025863007917324521240799558045277408979404273824139833407459161425771521814622302646748852659103607985743057027495644626182048392392102623507322523505726225397266188974886264386714274753567803372469223606781319849595779326181498337593456148607075139079492959528609930851552177325728494010144357667615498327903299506414498293480287112002883571163385183466631184671193488246705009273426703056327005087633153198533967789077168220878761554032176497263033228818655803984680302576519530394857283918414025029819668856435972526987257433323421929666568823171246322395943090684758890406432374454487054548098850522886253328330027185008148512059039909982162983101629263818109431322459076849330202700160547090972887605095305605321191751049330403061160522466911418114092902352219103202721125518208466430382809801331709758075915868467272693061731051306239133111989411065635906018763752276045671040567505478358556716775876620425070270498531673673966378024321538858242538919989022383126267555370844804234509121591747657730713524307970299347070766519696573308411812414117310931805649691518490347777306793511497049682133651201161592409664317717672036531695389707832687095536615909072701154558648866035765445934077752857112134917494190755068270782955895979325070096089821875453538099264454159407939077276518514869652102487055539883067434224931479702251236925810082516191715946626906801264562754986604203405904551532759368106442582647014721229951525986547433847982097019419856534217451153236177478713389912510885105858312881143066749459707351659799340561899424707253953655537306318544953745408880165162220311517075032228037807463559131609735106775351529355709329105418006645546032606448582188691506906423036085909469955800557203629945636246189685856630830005878946497976121755153786024034917266089722227991063491958647424215408760054035802846219772691753583363717637691581569831446286326999680049498311055847212857808512484351208229293940276385553663821618411380072435601019208361655962574324616694114975943218039655806287677648108134271693325323351222601176185850302355560142974167861692848534111264612992527964205715196683126221388794068576567463908235450424486272132142327919134187945702887575334177656639640724697092321328740121816942477450887923935947710359017757617566134997875011052507760845620892797605515672082517685710575364625748312932537029818740867231568432712230791104274505936192618173897805163850965127050886952234317972734094731802153737831746179815403290856613965424571156518944196466251766807998600247063691540489485441790434531195791454318066658923318238770401251326137358830497670953468126589374648373752036347166107637071407894774474574212637877840345139400496900171842600316236384294920829911452083992261368638907843360640240027540337951362720525688021527680972771093978007133963830614447910881380243337373582610831272739249820832827501590815127159347738042990131607058158203093646781100194812210435594565547152828382180494930572362444133449932411318106851586778238257348156309127445449936424199890422125017572072045373312857530984857572545037956394451846129494413578349964895037532320191535421216186250686403703960781603249638759216497224167732324618012507696724578369829282688210440304970019112638770022110546674996771501908164338480729060613442000714075362216088602198601256294006699288230287219773554381221799714643859301771697447499214274467036245942718594100178013091259020366716606287631160226557865792536804424323559871601509633056316730809188492666475885791762200523256192350537098488894531953467753920204491894941011634143734140889238990864927055759787762120521944697318610956322754778546493830574761156543615445827536846657375660975543807040777172451720529887164251625378241379408484638988544025526536757395723123928856408033028301529442322130724116845191341054807038089070556936433058340749807127374086684380049015557135042426082556748234253121473485037289819618604162229382787660522313718353933270949584072981222354913342065979649618905856139805364135768799853712318636576197714383399320967360637964191681501424860114196922515577961950536183481981065267364148251533435258739080014036100638673181381833225691372499162059543634155489948265117650211658190688824772169411730615899077842903122900399858825909547221703468675335701628648919553997361456758457037054421563406637302357092111995667590439897785086750158880640886275454948071689167572823913142534540403140822689573931030444202846660170772233028142691894832445836843241902194621003654585954152027814716050247454674984106585837815978905148595757227090477264354016886818475125678171357695823759921936797256184115145339290375729525066124708071723891347194286557794806503571895180818514754638549277776283105772019731419888635952697921363186043278702900387931696478055419395874377831144394325633911773333083858268679447514415617034784140644925504471970150102404395161888131113131266886786876617571605894055665659668309341889046378362189596541413439686171466917804676138010204540115158867385087355373088523097163591424812074221091558067254579332209375598293190726365037720890756078467326570357691695008246722969941466286093077501300153746019781189905682270061437675156402162261564895030929152615577409185159711552347432962871341280499350063751675971897190872323893855209087824026481790583500330115937243996537793829981687596157975566849683948178050108662976971823241901243623088766432246072489255466419221390106843118964252289296569078179026606947714844457541867223481893847856118249721373902393871742195042693000271162562556874683796722924608976747608821024629000806338365718585006267327356417467250877075898556534088697229708313825393794368859755908103548678041928767915891987835941204341479337207284592583221320030577389390528699425629515722829102394965851564426859445315921781428867556319555845543834643210860563164765756761350924845145265294016947628305498723273439774601505408489563838973037124606561897851627365594982772539680661774364323013076579936184779272208431334807115808626203153878324099930548661556392826689690218029767868950587722957980456772895506335904074704518014877306642644613808018526926902667315575533351197557940873732541610762810821905819287566868200960592999141452291052838777052803430870141031566699696621342286617171958264455183641405191675624378998388643140751496684835798898805640077081794880202808674156404547563929365102232376942124930178105830847729160954392663198608908659167833449195927177353021398620038356080614999225833867944119107063195537175129485751916782220737993165713149532791495615140827498109140330877242361678408111778409554126755310376047530350682264842688966923916416977932000576251354804793816281973763354659851220458529730157465421053977117649835594227729095038450956052335207693875593647085152387396990017569629647423812273918210287763881115248703000725265493339569790599218005073373907727233761993952045912244699127800706272660677784374750781764358862894346278612726540145212969520667396373778301283585964644015181221072027391470309585652305056172561466455646268746187639935057167042873144694497102547539862522527087779623729343741571850818839846761915993548775539059643941470868803598033709514220710845787085048683904605577007986095555980028792627032049199911488610228657406896314818612144440120927798931578059350414987482276637284633951618026664813475127284545898533803900840117308682380744247789874046139980103583612256734260500833691189094905714675117850153483176578244327867184123353241459037388633777771133425138277479429814481429838584607723384451388523950103388557744670619328152167730333880093972199381335230387601102795776285848156018597755779643778696457036012597954364475369879094743069272757659121434473405136455337190949171183983339028585113033796198437032179596965507941662160437897966455074875575436219733682304362284982293277784991037134340239458013770644674854390714606885804889127285572164531398136060157836776790714897480904927731650477857682133622323902132301219270348663097881860723445397479828403022992861220938649055330156267271550200895345232377455431045210793617286465961365823813278619732566817102708033790192282200775125495277407733903073888110882251759805222408946935484089809254321489054320928649041057395934141123587273777029021513941027708740276326377184839352300878858554349969330631052413756921180749839242727482105120461132581731563868276769786783244210384319072270656891083178957333315799785205675253350791891036104295043424731635045002829070887211412902161818953042571937206516913689426273071565177948564287851344749136117099060611686712584203091637124548401873738158955415848592146182693412739440821104004570017048478944601798857570353467503045359677157962682825577987814123865290429397792431338839625940690628282006682764222834241693975304902305359797102983202505382082322018154463053592161708053763308844596399830826392750437853537183432741452638634479400741208385664147747552823292630213784870889824200192022576840239750486878470958620588808850177988704979021891636566085125114483382275792954711385652963520816361785182084407576184377316856415019612047216284612430007593659675899105055478061166513040195130787442326813777092050263363455950973012172397089529415933668449839489509214216704357831095646480985682443510017221883926143960971290204664018017890276344932683771429200123231519832025784143003815657113170450511197480636320881914502484608815114778283630515552332624022892055610787923999135459008051415047101942897187955933894817895903803649395616145726830655142917704579969119171743014744356269396975932867031727947496226853013110915026521969894779360137463227956556974340204178864486932789170391803043253398895650152498047394409355250205774334985973463775755704020058392107721723464452255494806156658865058999808927587340568214315906483663131760394947256673138960601521012376113735867023113822615658177844751116963704243757468457513886913291852443609616491631689824690579933286356860917375151329185772162601127996662294441850449998087354748465082269257619524810955528771075237131894130813236426608475079051488233374076182645549609429136476736733780606966288582363683034686730288694366398402996934810055386512774175761258399503376286318446737921901612223295142221674839435224966315978620895919393330933573181595417299982289995079809504032958331380873137142957822496980667365177224480051175158856184905942636916330656272258433321663742712129279378592907062142343451252556860541179181909401145808553698383454094015628917522184956204680791136552006206595070839176423519220172712403892382001169627272405303568061369163623294450821781061377603769924356807281117577680014817725710598619378390132308903031158112490455437912691232935460210064338776098998887607175025003772516262179260698880481466324936499695275950845125219336400604813193210640415027851312927369492913850928320154907556964823661629763600356296349410780234745234792989827392505865909105305293799477393214126742070666340265233568595545560602283325714673230454546875653812205622268633401173309839330755228020460197948965311218408061462185092071396052401797498353187285534978981537613300451309355013169646920001584306756697293624818873973669831921644513507611251891286899777035283208968269001292432062515221029008285108382057396964437583682510157924481608161922863461334382408856345107629878650594134059134356558238432963896772650367622946225294820198881152416825027160184693288728260545934746423436130847947237323044641086289114057778463002904761060909404961986285202711602785013227990382740243266493286140239579096012831814793872816548883643927455037927603149276802104677810230617232130257547317141349367822295606001286799524248371312445842040210682455568603219955010590066405537525468661815873790819544629816991421311037842452628346567630211885503458695247823696684124588754385604021805447305443726111536856598494042523300336671641801345374931124068721574919954315948896481095762915236581170789434111474434706044806665446022845856178888273778557887990735463167268176381349412539301961235585949429198990228612250984115061058120266609962380207984930684281704080130566624451515330539256968651825556779106870071354521654468163071010641004552368940506059195747469606626911581239162606352472338160898616438120674456028413260694428681540333742090863835651503794904434043854539523841994575334501023086576751262496383060748538257081761446200453408603278148039921895438856490785377875743014575965198835977742032151434535774868829561196561269116133107382089458007873784853048161432155914917748484059070369334771194556377456923821802729326149219098831040152270830897141741230730805936638398858812434545091364001446813145349393768691459035979672246323965945565662418161268279951733531383274104963203930659865993986533944023509880145350966778819379524619765919248797417489902343225341995288933159239711689189583618835464807583144521000070593233263168206070942667398751527549455976369020711079364654904199168330011350749653049946797134941288862877323028516746411040082278739884998265303091236256644554352911646761939179827981077091982621708707839126725505479498301419992601870477069323866217033363137651346523033846956651705658306950195308599338368995949019728438868540259153739091120530086560384960499620831941357784625411321969109077817281041927152341049643848603242438091985236815225236024931548731184369897873492739752954227193914587877606881054228462793038077760240826435704429029268854666999074218433988254184285730273623728339753559853421364570803939098397747199701491555455108861081275924817685615984564599447487777764741987232442676827959293893844463531766237099252161121832288156905781587314626192662114248222406268123833620442039890606014344290579152329589986867123625780103850698547419519031529978599251558136227700674698396250846535358512630046305824630923367868163420356793305416079410499329438088711144763094240238191409656680444279445525385558919743077692203809507752385645663566102473285791891555417032128392180758690190553727668152778536898404378001488938073554603805277252989430333662513128328127955283501516442734119241785327333473593405831666756280755804893117458170922028523937475718128056060091742267122954329623499419947880477777072886689952593903211323582960955135762209283196965682514842592946556249477935725678982308177767255597727062026897015288165315994420690613148247803623957024527790712000286604661449616967610810991453745813402395678541955465671398805687869493164019863019751969162496662327711002141965898880234486689703932119074035806521242598635003405536305243537308970586305374629063591462724264009185122863186636549235432194733752301388783591837736717238886698630426382536850430947931412961898487160354282372074323296893584143665938395583189830493459164204365237627121711191834152452203535806222900191924089029423858790764278419708016366419734178710166967835754462164655384419688431516624840423448644855827880345378040139412321081425022492925501567111483580564658829232080206602070066894000736534235538716499828889866692585536274586104323587164866374393784239423387929159127319670965277985667672356994055937953173302853116903066192004907305301351438763738575988267918783217046856469564105870442755939848106186439512696173409597314743129264276719553426759089643890680255318283200858242065696729333320665332116051523003666104966212530179033844361855213047326715165638669764759117504227085163541505292638099933288757718782393150068466092872127169809391772974358020719591747324440238738369527405625766556944214930338016816268171357894680819123247678829533939283631866900332028809247512814092836657577553240277292498682276775508132195226159237772937848295099455690965672367169462880245117625384162585754000218115514522427216079361882050173446689931204493770347056876499513030979673355959632307131594943554891658383708049257495181185918698184414610623025645461876706903432732195633770376169259429681638997177250834721049653136986763097947971294397443776571438401558399387816108453207134346797001919259037062808110320551688447453193697207444080103423210396284022039415565057769747295179647082876876167081522753282964643797541430631032344280466182552928952957792617060714846541727421187788240943393614163682722545650478245313889547676767059865267543143495023071253228202234080997579890126545742561439173846151340125325053822202018117711989738167527121852714717927120494340114923498870209546607692548489699225568659395889397503593526946244595826532418525153424850260600163607531576190401534821352328808137949051622579566670370135290148103391609917571436332814414126507271895351601380154925207715687844170622333266921798913305775710833767926467642949036749312471376972138808404299430998160176294862204816944156679987324629771391802693627489537975109690278619927565343010356311928715303624380792668600029506721718249779587929024509827082399924054970714714411299364340366470004735313039626667291775002399592062052590349254960321697885718055450168669611178278071995935106771798701201090852753993243469480752743593144882180964442382791904033043351756257609650131536837031673213930696780530378126782062663552852942631823045284536538136633350408939823223021637999584685820925116726567863064944530081886764993098970946390015355706847208596421118562548665450371824330578435707830270944485895130558753128647439266575752819857456066054306026051962479379962601269972167752429397372803522522039522585953291747826781209737069009956503471058864917125973930384798565328641078129140634616001106887577015292222930095349631979909732326444614590899641003313445925500142664846494890109636213706040975934679675276084799761059379714099440453301730744056128853255837632207537422705290547082295293743471697666629192361858022254704655928153354591047178860493794518486605798456367584470516713464723633762031922788741615794092540488997778655775987881567929426295754963751587804858724605760237989619381918398283809737914921523522910564201599439077711176773411439467763978796818001159955409308215138823046662920760223071629827415154370354512312068791583778902064083152966379613550411554534246019443660347295206565784516567313166078806754391724643547738245506587103851216347945728245631762438501793043348712530226703198606582585307501339084248791270275625633229697027891179139458070923101540227579616050387555271868687787393388533583739343350259228863060542002761023515995701429028115274762785419516258674005446022385268944955806145634294239026840033460830313779805404601222974547273609280565889724692365641584184256639214357680383331061765383263045125261420419041802504020494065198390313326868493026933533837812463114061891003987153947971717362345081830177684705107433823138526429105512860115939911166657207682294839298576391106235225966686192961713300873508808143791101371496996138565878191586682666248271809266561640625128828571510471916336884769556903482254531138098178637851733743556811432683635649899417425014899911844744707781785059736099356793504855756247893466778294221798660710213302119235598259138080117390744281254145936289446947755239343129013221358246475168812559959590976426524347414518800804203602260700158334466818158761699427015067773579987280796746744392224512718429366977403178343613646746629452202098529351958332841750551902414682753480262197414574857664464612480662311237473944905801308731514135882749019812728735819839496227893745800878883675555316213176919549778023785458716885268183987035207163177927492208550844761584467383234468167136380289279174845730589605083256415260841189246468905054203270147811004982548557767359575370339321229056153706695850775310557224042972651490237775287591850316473799664025854174016288621205435415228417967379662464366309804214890215120296573150111844454536195496603632691436280295039686064416431413483645329717922632022326871811383205522500384068109149774026532368171479058818446488519534936216538746373173084756359861173219367923331270045352094065509861305362139499576363584823055806617835278882709226430477161989724370623398896646705454358133421407890484260311320671997442838508597796189742716199005845415954818472101969018265521974474404718843407612391716123026401948475829865710489008250212039316505875568775696331278671304344709465357746795054556609636422354936326014122209109412551830654740882822117748392187598145234728841867339454998799304106417678076547139413214490106572542781762195067619440522537816864791916642721930860198490780267171964937621256164830936378775253904503857198943112674410815421136515190831945786830726445427955761306012041677938614624457761576856361428547304243042891484279790409115461663868403408123223644524027015426948346048123921908668690513330265227866607159741873063532987084970625481753900482316188030944961781248450462911625051312225124243171050924819587414870873674771940019451014037760815168628273924646350227347939593285584680708057024358848825958969286572293351407566108067908558301218420640722395403424157721077984624581870773525249631439648323415110457849531132099150192458917459874240326870994611753707216000271582463741719364291978507925913537867151575206778248528692928007748978985568802886618819637208897802119019726700960482989623198280423301546981291921995734939455663572049817159966506864308217283911375049139149047034889508326447317294602442332368426089005007745225887226887441402734104171420919671680010860686650074656223328925492465528182701456424204126595154786907200400331294467208361407793021614150855600754154980694901311774430491416807168594631800797639297628575068871975977073799311579492790434260843476146979235737650506698734860665043745954527630947106252332985745060254299541906133728986101048810518247288676920887612500064900931002269590517495264398388330847593956652801356246269606571823375751304753099550863613295449966302386257836841681596264019364677115388255599304543627090861654892838095394045068676499226886019138220880598424937501319133897826202873171907696618225846175137420225808469996410602794229555642422094697010299805377957034426295893162521936483139156199648864513616440900350601181245454645569221918514924253620201860193503778298867021098870713618162807554400132487690338458339502943096249600374620120927901794616914635866324587868872815159306978077566688273431637014254990992278436756383740473664383978607064622445589751157933497483858515856373416852646321297710283709364792404113903252766855367763973340240218265057436008920999880087442233178998864476098414677688314734131283369122748961408988615218816417326808118420342885566102848037713317037425226775188137683516019564690584149090852535119148993263934946464852547851464000755761854967222472408092193711099697839370317332684992938407969308614866844249547218311645533724823615634735193616288272857876352761992958195156739500910872853207157295898568514744732130437737498042303940143659196240026870924959566577284132452159519070806319368082433186479344425322175357290952737725657410844215863633717444626672143470276173157831623019317048421685174722225153056189782472650647592023612573926564177206176556716293854470256773838055646325397900965964856773162552640413571306213438470388086386347099871525989577134927593949353756646892248024687184816047770989710343222120347949508816310354336606340253189541622885841547121079418099123401253424140761549868371376784939464715711329348501050159465776210621119172005012812652877493371818443325085891804205349443442283807891658591913740471995195777225361974582328489700319331133457789367080308399194109902877648963583396649682759386006157029998552030578110958444879652760319378953378055454299203845967699364305215968205902515750556425387131507227358793217367515411476098821740051162933372206496958443201739673926944628403627675247768928240234032672803825565629380218526868821890107441550907139280550447013436875650219386204185484751980983790853255364869789888969545117303042519528922862986522021306335771006425209799969854592751931659867883903441931003564839983064524576233394164871349621349372124735018057284360209611690270196005530160881572576190851160590020091214055796715837557177273524648348124230873929725356067959919828672088081371040249457102071805252836462899644064354127959007084443373463430059675291991296816642180333064830431808377931587750675289809480116827799943422368970978123800914642471899273950692394607235934566794852845705641831035272419621004261606716111692274332353342576057724358201525740888456331091494312299672249816901282993820625052655305505377253545113684002094766236044527355306897994374571519678799248783994981657646249723322063864551489694275327062710598177963720462580141864568556368281445024820352200787054498724032727568426476853380536944633890733648549736633818124747159731807041861957874619995858473076940122882930481062408103340246642072587760536827011292847192598519191374169508731137328131598240686645981654999784850349176162648158570435512789602197214098365404801047851214520437897776583350615803570227280737452382590449679219126592432944219703448600914037664262044711927999012641941491211527727075785040132163280617917247337898451945702954067725028809616620580185304228652095415526323047142000072808285271987705506511896663452885027233650428138851571286470861832380090833049413314952705293510318035072129425779071333525289744035037783401636419756351686242228428622779927453844686350137783952821720048251260166179228886679402957863708262636261148322732138945226194331622413340192317340132589936979358788824470927150592338594591393983683300092313965547180441844158747276118827484862359559973288625081724694591111446058637062807192932125144103028514008429573518497070610496405825113423397895273864383671363558480216928172606733242324097293024837494047165851643608743665265579974835026846874409123063852618414622686184346331516955221915585342203658263465694609023113462201667295393633864649809045183123200028608861067459163933414313857744244722071741409924592625483528955710801328758159921522259735474839631129217507075919892724998868654912440882137764460293064481650490768822883091016997383484402774648029126220601811608836825294339264377003529421692324756494229675807499163840650037278024886456728243049729929930293785496050347318984743797375885827678275957365067158601748093056060511171454145591857427680250503583660973978635199797118694941317752937962154415530663166696063730077211079217700640506874336511060223630811579388273802849205751034531500754071041431759300117787797641257343269232260016020009157727086741081637493651974759842100793955318361387560423300760982101233164344091944685856342908418502329817866952443104735838135493576845939501244751143741127985946468623646265152345146488368118612202246129606020965997277754912853677992164031825480721550093352617900835176490349387117790350431073780706249076781180917404699933056361952468295919698964855889723572307034216552673158976552858844902114998628335029246075494716552433281786647105893623780821495860147738244083651453103036405931997723077004742002175221712329494073019487791741132566609788006092237520363386999404711409715922863908367088618037330622605068974942537699220661309221790769579517766531795129236369519537644099983411582041111671283715652143098717437206215520742537833839084233198703548061214053202335556419747440396112358695748989385251875867530494648368774500083570484767057594925331516186954597577936291979485140764799842215761691980676638590323369056385624155362173114859640705430138205708079018929542830155071359826549822834392901588726326070579059580583316539847911426247905210951289852875373677674295875850874787047053676801903144011500668310517830196998877992984364018165002886886858229681468491371104080923557061865639750006113504375165081814642170241886367592225188089884519407972004510971004718155925654161209673496104703627293105762673290793576607193126479307150311914454551198365953766485804733185007863002181596090805391113283072258727225364554477972893582961425299244598810441406742724680507328610141585544675845909370932668570167316567768644997747999386085274547559686299694777114416873949321709832266543189978056858520986891101585464291662079792289462826669262950796709780396948269869021273932065301990518563131204877995210309411682485471785553404625121651317307455716307580874523534001181519889815879821874225849328410246387669094404621192067317356863980678125220651527845136590331659355165950772383694859545134107750005581123703249767527492215041707769076963075225901033108828150335160472700220388248790113005579264372029342409763726327582235863341081517597924217588495847936405864213974388283947204617690093853564442854012013310201021464176566013629532886023420154492988882988624687957470894339070641162278500423854940270974589064595630494340483054240725588892771072169622344399249180572831877972315040636595758925500330233863644665177831464112020183046541248044756111528896416579382033071045347698330894432721593892713601596257429126826283033480711195336706289710648091868228812062966056971265535020480465322032787194309118347263194893955232136393330476708755118863796967404275448281436626281119452302236655469648240555337159086730057613321192354134487793758587529224848170513033294065047921568118104716960163357438972729422419010164326169818168246968840275888898446210252385834130392600162042232670729275723340630722318953791191801933103024471763815307181593533772593796884994996547431567033603735354369125747006500873470705617134027824520036759569538718321194726535906907376233695318066785492490040655846579760790040068647585008560484934471065780358012576351826954332181168432922244701962392065362376646664557248004895324614698297509574607523265179643602467991496863555878188645414471896548622382000482455153675717757675052470733154557444794896821759416207449148409109479239016958791743592736937057266435043020446087216742189523275966472995518226571604855365883973068013710801127865603370621219365249021215381462950021409587013501591016041362672238389656649418055219114102184076662283574865844372438080044061269989387727601169723275088817155289674446562930101898777842709615218718426530215832588563409353787560836698805103174523527745600593456033292424948420578736549614654635257353665613436405866108872175061068569529840728336852779707281948176068235403597567741998646751549834257105644143917881242674433401483354165424196477669785842212310318783542215018662561089180630224366852394441541875677472221571754716510274411880761932018962364325654178826562506459998508383483279499286803211645176456145029695761080636861845279984390278932780826597325476568384674493863299231120728116898720858144620364399647816358456729240129916642612836914158452877415489164181308235739104077881769707953112753819875042703912045961302260577651832510541904279122547703635003591889305886141336965742445323790744792033313123911296618050553797286456297111135521796999563047775840546035898101023506937541472131002958392164780037578691247363583464858060220161368430828766348603515912573075502068153713772486850530738833530942175490217052043901766176946267524324468341930035768632254560954355868552445528487351178336515555535834676407057204166574865021591646047929775872172189688215782522675341212734407005821953512641672210223582307593781464401314542427416987190940301403663966956497664316139150167371000300640673648593939592845333728727307206101943238269219831378030901354990767007998381725588847575963490446412181612292061714706888104033455243679412252244234908183094174087584239313578028646512069425146165074987935730071998000842518276644593125297342701454280195912417579794007225448796619635170269084230008588019772748715966996559696882344447616133748383597499948656060424463831464794795029737730479226073525615951145750902049434008160124993010794424446402493400206959210050071552734255481525669273312957966724910064718762132229801258777644039526903570805693859952904761701371573449479282649083763454148639681106681376898995076705011047297947275327946502950784236325927122828266463464259095617861333680672069404811670764309873920182471189970686918936061468456740397727563961007817406238210057041727159536671870919798973977700326743926452032195612077602514762475570381073708532129570994173112898924143207347766668791885755119822433928760246934345143352455492894011414188415909808158120879470473447076241558335360008773169165496242711710428807776993727090927301205937977748046255292319459029644010236482909774312692149158314848077654016232018477080864855152356581325288622237668028941757546283177769784762088059674744284555266471523955200662187640891941390460761334717458078926505065786585591372932217838752193239827450176844623406107455146368298290730469026108816819654781190869637059891279685859853311546832043692229658929176410457968673768562175963970289402571908425858107718293851800907421318291966268325298009404935482864612549163959250477234057251904092892088267337901604120445397743330176060355573387732824238732102101073889700066689737045774771571110073325278584176154843162601027278615339326684392144012133209765694773331755049877718754841152485271533958376224430806709953897823874901563393519847110079101223359853845079334268854447926758487238519107817106037098263547199167709676782740862330709417908156797588293726049172009282561164504289753096651920157953816172784030562640431006589966896961761015448167682973750722626767598797286953126309102606314011763138585883615237984149579158708781130113943374165669865787481701968888343705204559359786292677100475512168659221351900112075418654461896707209658074644678085655086956523846299830401654372660525394885476520674923404129979640659755439551328226168864221205445590213930831348503097154765756020368342500173225540659762520093505432764448044264420515843957319818030075531835429996262815867200365495177184825840852972441032670712503233986077491180025089501683015940937846164737105205934284733580093681247953940643712883856746001735744922033247728710191448437807578673639776911430809904170064545221153908171539039055135324203000346323845410477316183773577008544142796781562780449307664529477234767608831554334105701548058443838093609339755722695918056504549260856837489792172714125801662532215269549848798169881660713110117723401695897304216967697240847154043514551757838504670476011324769424075425535227432878821809041364165804449761978536902752647495451273469910940376623284634280979248258007012290718329090096027074549364931342696892526954305766638128419465421406904448762308465059453569751114792483837433673670541075907585320064615895404933018783070688639050334803038707796228038813051369432152807912846305607019349855372769297158224032606864922454074665236790222538840493843569102434945705226401843164186637651935663614622837506831540300949645744446603477401919733226879544915619650659481798770586091499048126253184115486617005507454990974714581566873893602909112588099811107890774167723775398556267460674549611471414317629534248703296011780021199882486969495572648617666942097370091944171464037077147472867681817719707191159124784488514354568958214226218132184945158612512120235556604959847261908928778061796569309533379653785682795504086102632515133136140772265166552029974450017654646012031198737840463822583739191205238604694554180014439244409097751905040023157515589828200712753085464939232288586859194350449703540597301587368280958094998190746715221647152535005515730273691180801010162952262378789396235296742894878103971912823800295191740149240042401939827373733972059055917058862387505073470898720893183897300664203187373408963896270571682797274838058550476178950009389144057697660744856504652918156486068428583379166743935469380886602325120509889330046277028645439691046728425054426070014524584281409719224263065457648118195049792524901678088286357910020324884610624797179982466858890814805306027493214667952715359950781424032883141929923436149246660115147179948928614636071325970529050061646199498508155219904881071164687667457993580759286784209674520140379911488325040279194154671213819223491747639609077117739247892806756384496569525397965478551103704927394682896061511433064207266615929090368499065952238144899457637300638187640786330386100349404283501639991695407338609153696651150722390917633068055575777163342332466364299807610887847944306575561019173833211552300026948855274823688144748836506918348559271809207999842036842235982227699191747558186011346999245887861066622088968840759254806490558067285487300381092893492129819224175418888080218268174822670761656817570109197028082779116361281592001503776623865784129181897243370612388097773612397827975508263993184023386230812516886147079168819475815983470080480760123957655138192412458635643958993492604416856843464807341369306140313812351194854933070470951109008268833381516435183624715538233877938915277495639854607164159403253745109125707527525715425030293932123073806785639877977407410005378559990072063415052887836779911044987405789676177918615252079803755414122204855490071274438306721836967738089585785444707248652899787520591298578828239459099199965620903271286142484317397462821448926343662850473918556495024197984290669705667431791923647801787323169356506300051293621346269102603616085689259097583220933843788671355425128467280566243567416522075402695680311982167138083059992410546235870460650977015823379978735099742581488061484549799166347751032791654192568959496008774853575399280377079509634328300683938163783425371424854315880488990589283981445126898374419061206590657748150185370079621339050092247956119769038883910469134267414429692835230358998046872250473802481813235741960486037025489270654875446324695790112461558030973442537614846283094140946618643532843944314246883700330261476996277351668784964364523776395341290403158785243993937752141959372313933226163295076058613622605543328209278098806730191124426353958683385910705709269098658325635190159685022571348416373129564481815758764355549566254779875089026511862626112966823493155938842837641640494708818627848505737367336579123940737599848286567529116006618163674844039270265656199817524892059011846950738354228623278235396624004769991755884946903082432877777370076407131382735544983827423617426949548861099384840122338893100750688318489879249531497760377611805888284649858262953397508268957961155171615898544812097858568418575467449797164785255598570369864864755023094197767543790310947297459961952534844286581223787911579842693946912618075000654468357611660089468968655012953245815474320590287996282359112078511445464205310571374716427718311739192875652342381306255863694526712447419076783293688780548791156507458260518243844185007481896726784430641773047557177548300491663096688633114836314344086942750614746462231580890412733070617153156346960327540492758449136035891460913019246231217710703060237165535144109863078687854565297264467904984415115662769923138678157651898448115318655419938625188396664890151104812679705709965218612842194310388182825392946560648538347477732307619680663146961499208466414477140777944838217883669317728918939300266553541654965903578926459957766488395484128170220467535113882361139739877769848528547071468601023521780250235631792517478045149981814295831328568984962477144702771494580085117631616986803827281780860225709927347230339044993436140464419597096073483182894575663790531855824019322839926374790058045471887511199367363084956333362509881912327239642908423293824965364668725640007929253460660675291831533885656595894467736014345868431777677767433103025649349687527595757703109016061295711680265925831894307368273426950001100757772707641487269523345460375276778098222559404753935429101651506259122752738084171356699570071891555323381772577429346199501695418766585099489683984098433483432474057917821753920824733588873289593698809800409151453425369606098993534683201501857453110354201156706292295471250906356742516950264090193275618673188144910651860774424497637646355753294891667873052937532316315567145043154149106136822304309006679945785118593736350492610389882435086960782741549295750299992740390110220191764824353871493553772165100266687318163460203318745254595261179740390649010841592013088453702149125057600661528222396314090614259971897156098851608686979474066196916761601276565600287062961031711749877427126162652209255200417182234020755483560559840200583418829409473406186547340370701849287502335683594575378787497975040191920701685947518692587652486506941587505140951771365187170105038390561236804397560684030379836088461937580820651664484224449918452337926025582188120033931577039490386508202486836849541452786216735840958440881271198415135304087975616907188212501335426562670747042518238848601529373360887576483847547200703356416502069234004101035076133844177232834506136966880938934038355898715554306125959460798870271570267556865715065127066292579586414938955128553834174897431166457636107880309054564368182717094537954909557273773346058225084673158961871386510978668394022468659651361389020257066862124001253741727949884516402561316810228598660549216341179933347907756688794025476995303240955169881094259474508133913290883749085820402731660939783522833667872392612788457638518343381380691673328213645621133452314691560160126263945422745396900977394177303674840348530449658575655596726474434019168549308364338969035064218913310153641974803622900559957554501696476022775488341690256488662251866277644743753055428927441873769440649565288939284290452405241475677873219235948593503173802756437405986798859496860154030747337806511912124086153560347421688053250152832158115192949723245982426328705476078329011427080182552518186109587481766954919946971266905795532365467301188768445009302571698062698402759480022744800857248472313095898493255818866643583346658041172330744589653529631395754436173368118690993716478983358483800253724662744490214456843899985680552230424007826332217315204310130913033341467220385682381724005683954136237086213596574783744791836026988344718576962397568864840645465451144859051594287712235080211702934811083573613298945901560766931424581681383252873267869303958865497915852049251530383016101985122865902449820321282501471567720364799609467781286733150665972891408034614665864185085183058686781563324322914482968756941129641310763041770247004106971503846931116597756658202083475834639894577769605935404846805587597233300561382986042104687584625140141558968002561998407949973062029293658586322193771779640825522666410249648224797090481183978155396502024225747890487404917791461626888377020673470551989926968291690825949988827590892365172429388330424313884684127283318411438764003393708185429976911400474971471318196369054649840004440663576610511225758831942773248525084224664361608546746211904460306730376958754813127130421034787401675598416887229759565221843152793922686792531642231408669795139399198639484484598618942666005318734405626958688532959006638250412795646933585111172080962320389826409632826710778704173616477988875372979261615192355000354889777133651078836227617059784587704768071110181245254717971637980035337106328995778928167755991254380333138424884152209097069523603025759368406323017708852164380515888401447507228533176348397203427914899534260326954751235371016022708557899093130337795780282849532006233636551619729573598566410529773213975401425086700791310038324854667541509736584645474936068810512009373239377973428658854025933554718378172307213346801228610881560468797578462257176354830287020182396450578043187448386717083371644102269155551815940060215927356379419684135547956755648807975640090119636148197849573398357510020402723979736074421174014590982400179153227329479156646229538609115553615815222419782207346600828303032153425180586208736923074485437049436617710527350610887815075872202195474414798342497442193385279357959451124451980213398867829350257233101806072063876282331484751215512806230839192628822515381828321438665663034563148592441733584522956233429179019484348777209299150422568956453368871384076746563004796970650847805844688840649599393601820917102835320095751414157123768769652992232912878806395362181563563406508348758449145905294271795909154785760301280713011982521283324931023513672269245656655731772542536226863611062183507088941605535943776975421496608284337364383014755806484384003411315993485828078345932147135336379018148403290911169601061181966945474596229968045133877319750810385091447190621375650757310242403987198269829929309634710463293998201651621445766531348875009014490615804317195896666070590942884225976394406946703120422874413053169079666766580303325917247828587683165861152901150362616753850558342188485533271488039337301418994867318912910542476336246000875732351851707045931533448398854907817132848905137780125242744773392435623897836346022373087559873815771487601016678657445183805446851150277497101386361871507447467029925803430897752374634476237873247620256345994463787555174673251233775941714429987756438533561977340942503313285929289695180941776753566093176751076674459653128405447370962221252059418868858970905107359297553750395516022769649717398553156486753077416299467839407394846763675420425574014987826913395987190779714037529913944362075178616753708516693045529159495785623520248463240834099738232608650599192657570580812206916328573633506771144934056627211252805766407116677364289885276581090993770630464011175964181492237961660245290817679344886250838698975627079806229642743138347063981668606972762481667759966484598587898983758289160468891298806092984056198679017754976447744051119595074317731548693218799400785701346744977232391317629788080108242351053581856453276490692508302031818478182523123511033480150354885787230979566504682588408066393968305188670049903307638292822847081034433920020228457666026412943388241662827814808097060864492829835388368947075966356105052097494264276155388471791187828854080588933723848228164370767926171495238085260463941901954452645701898924607652794216198192689928231712660398975373638760212860408926102998403938531429688095841943094945100487532105552516990967102321031250396357968594995439571392659995067904656261405763144706360137469169191015821561109433503136252753395853549037078931628810123414877822111494236825238637882588499038562302213106674492147633847208032710873489188621593119392090670422680165952666636713444025354610146872592296677026818104699408839659626111835904700270447284872598017982455152181897023819024752689657433603766921140301317273476637791597324109133801374791493128740700868823809494493949168462844572021621269064587209004915521567105451656235120043128053382490739971111180619539460654694853718028535817511481497779212898769084263961136340747165562382064015266127227240155023912698336590051125930232082981117911500045955442774398371622676197599082275694093048696192615844909202776403500875677343452518706960101450397479530324498253342704265786547149646875718625796386012186212709424989257709474674347541682215573045104662024402054200443250217422287047563299507688607297957813462867369941671771069625870832068178198516494965533292093554030810673430323088869871014211840242606921464689357469112272331621238519806031481362695073710699440413956620650241679122889622381130341169670954738232088976827855227769026577961142001094197415512795062988580885514001679213841821317218215990509808968221280298918110171501790693213720374150865560972861309644370091214533918614458433304386756711198040764983685381134849802331728206200072908358972109577079163525203962907805182520518515916740716811094217215543512060093921628281120154944049052966813534480623337171076049433727687296316345492686929911683493534146511984749198174689373083862340973703847849175623110588180481330326386801410588730024562582836752440866209945248196312047317597168883086004202569146799324430704454426173826286718124932736165201296170398386211144933634676472447567507838439997219682898772600016315221512734635782998070605902528587855934045522218513924129796213018582487241695461876678423759824975321445389083815882703190389070136145108680381986130558112492248971644712193198611353885338147795180856370419541194329289780077406797188495024269748619484490923702896754995260337232025319378692979968029368288486868599931416442928640623691669052332438001769121860168576290240666035315268886715562480201193842557376094162234538557778272811535327189319937179754984103115595994872171666075859526398245844641312678136335366820733087602248806534096068027783859172203472644797416354980551574532986778763756523860028672271292526829057914385727363868299881537438301377038140297644919811519066739792656547987558310545191142754254015398708186893939187992626470454383272731619666990841959361921243665111365712433795501388774980936079349207409848877352122753300586393295570718867803315374524563850194839384156431064914320256984589251533753989034707244770406168339528356153518009349356382627877303681659841580911861177868072564883955039613124240957050153606631161660703343476807915712508086259915681672405782393572792484166463560082505356731511415888468964132438051395647157540145426269983539341275597839193353577620200973973125042813796575261584870685342566688890469382501987093262712281414022330511128718917892700004856360628660294038775232176248517947477247668039657500300933915933189820361562764922505027206154534090002042510199847499715912634834565544379466340215866799808978529003977620922520144587399520725673317524461735696711054238616217252781112279980836768998534254204570818553812219083178619905691371838951349173929930482022743302270687852777983052338529412338168918876732924839281414843535784992745817849362526161693337794900120101883842433402118136255945622088282417272261765671314605419246923151949212159545384956232619493553642697536869635755229224799849245357777018562085447440114673086115760533184604176904587509390724457460415338431209859393540009022690241587033313238198365589874594116595311640723815482212970368160709541547892953518515739395259264355788953169046297180460689133525335233559109913631174686173311009155660351299520259016752350957804812532435495096415621736798439287782512549952595201729694489388824367869186382031706438888331163623182233788296260389233644785864661627356318567986068968691863459403948613724099894275346283890865095637106941330270292623792292276316988963357901971260959640900653892814882064205722430273168825097170119166900360340269793934044749579802013525737089993377046770566806867239355025176898913395996153648641212945392009823970818392826466945241114783269843601083870196050377975059981325029577041759471175533105616823916916615169484249281938501801608552259615007190655263167692303357707031769318850692394274605453949925092752107773977442161982519457503520892587219376730386050946075200449004096774311816539142515571011926102984556248189699367496481871774795059783652402782151415467835385425618005447012033497055692159209269449947100736847755276423858147519121438231475220728225341029471223360828976964188777047811842024109881843728763293648222525110502198780193182462530365145413415268794391573323031471553989053848027677410479828553616015715016534133258223964194611643885338254425267661189161652310950107176576452809815576355057284653909544611627195959434905548893876464631975665524349272979966399416985925190938096255856548615698721893305775432044627467821645816718809389392597486988450325068026747354834745950039708730080664894818364605699394031460991501323666165924443079799878527274063748093157386469480278820832293566011760668351899436950569608627442373374619111508347676042130435173299646751487067308844089458028133819830002394121020018111810873942469668583570928656386364107838633009491467839262456968608494546442124428538334312287428279697610442148265194380593918082233751017645590449694288315015136045231124080754138887536180418085029610684608806346845576284027749327681538334694298366246707629179845111927764206795306291988934562937152076353349819111604393676684690912907902803231038319741682968193043258347937116767253347511230460008013654861435266283018221656834225247296664720660023809519617995155006685956980656983930987754404583408593680177149070464380840521470521423836571249449254982232274616242829079764932883411431596794938318834226754104490096573637066459495155559558263987268753281732005292904952076502726911926436783669846942437490406273045112595823199392410605460442461992850242502997561201875026559381632748529275086533460015741766930721644739431295929293589669962859201356636990853445692343767666930863697303682357165163800310156992523199393221973166042103489748522023727795237158706503430583632887503894679623110892920911746891527139732239608231861084740314077309941227393698715136205676683000558441132723381716478905469073727844291799296110864920015722688206833547611437337114947499355637528659658152093692684339778858142592311617050380500362160744991191820427224573828091294196848988376978787311065547418834068884582303864554023656569463836636371445715009276288611294587079047556745610789491065407983003112615335671337155982403807676859537619280753975652575060141463764234724813066318294660662549230528136635485678254328395975585114403761581820611093369308767011727657030655455695796699800717617805510103824380697111638401066064976414853988547888466909648312906861659031961791349946389297954540938983450657061502110706301648148047478891627407007677298306766226852331530631363198972002824076508495105949164493602818466660580194114269529869296997902025800802368534140008021467526781281755956042039655733122998073135985360265015172896160859918541604794545993104554358628179604576961111075774771512614489851358535152642783649401306855097180675395056226270303258201213613045694317827778097514003093058013276659017911760028131487746245250372031292984548466662911415476097179780262879518468701753854740344939023394296636024450775293414457087655293620185390217976308562442704051900839281098784809354285514295882971129314599813830729931758227584655218394774874489197564410761875547405254359917955054680411070431097833891918127114808095101408230722802665253214786872436511610281122100336458603596266227734845624245857895100518063180351252570501200540597656533529683246257216336568853668931096584634303879905740513019148171716789493446623533480031652037992823931404176771563143365721170848114521885346299360873827790902694028271344539998240627388809777151190001757816251282748700697894286386740020684680655531472208274193145110960969476086912834256092667239873063015285961687573778955934570153533047156227456606849243639462657793378221842213019664449177102334266545790641591933156730950982452628043123622845827925339889017888939446107959072388726963991448159611661579403078129242413222777899499883888139929645304272330698495325094257359050163523107686130764024064598172785121675593772417202596973852916530538644157169905358865843360555498858742455192266396014381929811752208285468280877335367385933142308757751019869609928020544853709249979358909967596638744401787019529002507698330115085170903262567329020400239662663263134157462290103520315683170719375116893063637617588752980127502051416262367145447890046716019943490184318217556502135054230175044650888957555131669468395021913500531756717637767687080609140010548266904987627353258370587966503821348986150608879664617875449578478133634020561486154860139120150374168111459252280135330323834166133046613596210988717115018374000894965083140165434203013577566179811630937284531343315510569586544311921741631612832705859808970076051091033688668627361425333330148457166013341285299662309044364929877917140560737256773447936785576342320880294844197292578418887897392292698740521720799858784380547292066062158216886718114189993320156853566224255254144838174731896248726268119450137406529017781411857622045333778057620466708977969453844701460039626686069213636753827171801386112245219437964203142728253186591555113521592269455367857324891584091219866117003100166137555745199114315476757171306596779357055331463036417757314531721698022377668472679977520412219544884936297383316353535802445182774361696110973061553175837232683317122989712221398547311292910772866539427245055002569906439398739969265934954853702436483209820866721201597211052913986070604553869918904745056821386074375155339641312461779763760021748315610186965338532331102318191190019039029142789859015220457199024403195625985717760396275833539266606563973092628837163298203051949172070481559766758373997613251363293977968847881793310750764877915324912752494446079885356158628570014044936723626143550092479630181158320110374232886233390450396608884961333980454088279484254697959681396242383227361956742524167615199790880970090557274927488528979257212482693632247268477200697588846390486550963942454008695016160631196400936510731087283923681957761414014322708824155539703462389201307430568730165255608625022136075313972466705292677732207790172656377467433555835870906745491895767211794301647853227739595239653899004631637842770682281560576817198823988135443853216510348071118510925891967062653989814154854389949257028941490426595239054887386606800005429664305974165278049657461247139951220818158646391143584485914509826722846740472178172671969661946539191502888620920974351629193599789413390451783649447048178936143009972209655848563932217227618709208876543832203899911655968450561094988649466365067045010648822997822287379119500949220037477806140586319162265105664568651038026386012349752619082346122410513549625653048503573359370823462043471778546227102753275767958521178131591795670451440981427377649003471649094939093547833654258668894537772942403904402018787041561646294330365413737427397967645518872102143899953420398789877881252473901280380718892788000484751895211706060013955924719445949270431879295338757215012698982338727487056514033065651683333041506541155292275587103912194171327816257085555963917164944484115639701404600858543916749407601476600431724779073505272856273749524087778297935512481457824204398854192911417573728218638085746607450089638844205715904084132159189651258952526694706981952668270569967244557963005447517462465633149274557173100134081103639371817369424344897307865860756137365757253349633531344749894422919642501669497914060211336240064343793299569093675247173961239599592749063260012385242838099355308558683268824553346928170258489004848638638494075960740367662703206551937167968756122942699996571941761889370982936679537993340217708239268623406020808169592386836750452860820271695031058788479358590708306628554210694804311979754607141000331258595158038311805737957904955436511003183733947087860122464882212443452313670111559443471402289275057756232918060708038623656835457869436722164782878585291300458111429824803776618600187537683681844951703163493059359395568331625710746490561972369443280912789978957181714341077812285038347590600604597233579926226187648896363537663579747522086444294909015637447598636647448942452757607792939613448142972103669937809966848810924483624443707501028387505729623881812456587678201085689168363766892752929864496333327188997650197735403936757988231455653701328008218879374855249358999505792507956538347116564115225308470697888414786396423298501970378710657492351270395868017682358780965808187424823835301459078996130550232103555168489734493415095596724710436147753513438416558494826736572680063268508072177901834227355198235242276995358052057300220525943157267024953620022956034776092653327321509995253751182475361366546852641784801853547930091886067280237610785186418885301864747262167087832520206473137411072584076593676000806170605551780971761540071106046891887111962014359592577661876581058104018898100808377230797487577383131162461336241948968712463134509236569364188573479773213634398761872071333007762155476389759060356877855249305605193609910063509901190020577242062045971385249104299469801068117873189736885460932777620966341753497200189800241029986885845928137377624410091463606351963958898777195756686978300556316592116065358146125168811058697900893455536032403224263394798116031379354072271777336403314351545455792927015227636283667173602627823350975379389842014293809937832837362566889639989438813168602642124240450229457705309144766339856295566096332899853730190710724762709790408323857872608614796914203642860181940947891604902537133377305700289713218351360923395581107270423461977763070647893187667641777448403723190663082242735523080574569516176802305921194522396662009668503748793336476427621166371313971852649041047963737032275598982597734677807567155309388011958635802967254395190144731758764497485603829297990284654871051506210178695481242181234847726112876894298349247728240451454271221361455225347362976737216372452694651719025083155752492323125178512898974715072648894299757284077825873569261511152819516459853750829662856811504304977232968507529041749066020708266012148040355342018292065433289305306316124888489249338497524085576007688423094515223615193158253297867499981782310427706571670576325025920449761859569508063570948509753870423711694199948108021135442315122884950628997133517601653834216146669621739314892099577216359224620180779687724642824495706553383577764710819394097156568652902389098031746130346972847209180044386535509027947301506349080877396486161409783905204442465847050136203437221671327867779612457574984947437836664708934818835480147368194215948719299355144799624259230633840620996555051880293871185374843060787533311131453317568729782469714776867840640622217392732515314620180080870492416733493927495900034884099297036021254759177043654159817539123221947153496695512076922661274829419950499825565015255225451370405055899787006388437551484936433241562927912589343193346184956498990967667179122877108464753726585652102552705493726100298615505445972511576558749292339780155414655175445303738144192978120568344325697500121087459875266478274078721928621695122097493211629703501335398022409690596138692945815702578907909269989220905403675663229845620082520839608004964057372019375061676841950822802794541519422078874849782626030129688022596875062293965805038342165161220462988689537892833124247903789769311643737488414519280525324031647131847995743771766705185486005715322101421989061742616280598621674050283347293554045852963202145090815115907433178164635854211144200943847955879020415795031876120823045394954539359912799507347048946489494088717897952273764947660275427546587933263393221326834716675735835427954887098911822983997222679824064958263511144082847891948698138318283501894024906885396110738604489055895609734302685018206783159388955598992984211320478781891485538860443931827634646516704086125094895813988200917298735709194412490817960974340352419594226499143994013610351680307767002082979661106292267541290851102035569180889796369175737437122273960230192534780197099963007302548064642028789423066112619169115761701605498934364818674035829337288744248997272773822552948679655229783755194451690707872350657937973537633174701360065194839405051482320625816549499198563476976671499289854540476341526577382887328209295085057052364970758165395977015759875696076172598130969074179159700117790319899796115072270997697698058467514413761322344924122368099555464513101032176380796093243707103032805453482730547224020439601924683205253096895612199421859610975764430286815723281475538089503820460732769517063001940430409760919311639559414565918342233118543190581554546111565338122350263733936937401742305380361388694733210153774847476239927246600115100762975149658345511286959364047317426451425345721518093222102814134090694000723774785140223535797365316757648832598175264851937940233206976131952419995950072779181190048153086117645177406365510300717059847189797663286744725910850074799435643889070278700606075761976255875604485576047517048566985417351005049299540272287119763266544244700158088922294681333172128534784422224325950158456057688776991960854765034595835819726320482972494207880250804586999276188063846561920755638671923393582795145707063423997993802205199337240090136078199528754013585399440195111691812691155779343060776231958740247953216123871189577506896392253453252538067449839051594885275723317745160806913218435849778649830421859604904868969015901944312354060972916628746144254984915969722458864206680314487571233109889165858347065967363052428983516381820429779366285807026022819784764394465605309460036411405546519024839729401574851996062912546074125014852170848040852107533933813629690024941289618481585981347309772610182757455500967348755043341275841810499279296690136723854278345171228245568968173100224826522496796904371235452303514415555831129262934465536152548584121562499321830822950163397240311467443560908250138011099529852828367377031857247104571177976620242296552844550093346899753371023256436682072390522565741347575336058188545985947794434762794656126726376052836975884706267810947274222820755498349879205461471846725816435009727796193959474537555071067083557916696518459754746498730262216079778149409961838701389158312361233470608289257579938030658462234812134008414060740537406786585691274690687882899758378498133469018996881062012984215806852207144108060315356352561395493832546971704929698535111380257151052088083924847163301318148309947785107951852027990224079637877072918832554953155556334861126621463721926674108120042594549639164068526921929661958565723867080008341436623508925423312849714903598886171925606605676030235245984986687744326903963770661783679661020654184155342384432692945395973374051847799544356686755342769537544945742518175520147285541586244316736571266101930295549560815793386830702342622353493803713122441452000525538798367770161343648461201017306363729430596522025348850365297261302641343590517679401761084647318333546367368854750676738344703725455209456922767299241990504660648545043723946784396211901909649472334782702908181488531967736701228017722298397294228472644306359023616951271239685581416771991952231198504531441337058019879027153510189174763218864609903139212035957954130033480986141148378986113926870982785163682143515844401941075452191176309043247301589580514965540953839884940700827619866857150901391464812068809496367076516287958077594383574814389469370087737743013601941810934206669498213237744138884546309540104292313659557085823008099559309221555708740250800807478270138602373906907310745983750031721353626897493674913160574857910162677129033270115761714340465333654473442061894532469496510957116350781592449837066511893925175155707822804157219657716750711802534065226780233766547373064489033104197087907272198794263911744315716994890876571724950658134881876068122097613795764254818529110682056601065442772630592675884385361294573370013958926369812339142444267051002769179906494948337192641886645624382375664074414681738775211540514991268004605180291944074325656269583785908735977946031718194398344782756266942579193049692246064174362702574389749357619716265065367995136510109185226563121857041029718467745029967268912303454194613127036297050832127393420786082013950168071769483741072096280434868910167207800257718839862850912482581475294976043301199090829850245587164320305100411997588322664501326937236724078845543807934406476543599374372143219995763471315561254288645714965525906590543984771601428366950237390540886575569482684429949395480618943405815868784133872897509768285754237688708946593516070593883301776676927116833163591548253541565248641980626780686143033847484161403663061930797021893285340120630525734945367866706173284177572551095232442490955923959129835381856225664278688927978451300965864858741013235469740586751624104556691887001303795083886421377559662176913639449718444064706158138346551526509477438368901150415155047074211207781058028648426692655403832616381563656650562851474997555921678104352098805583133475372639394192515583089796702096720066229638532403710367897694924569829204932857882796214299279649139796062957266840213028813407070986824985114031796393388716155439267270686344666556959759101169089729720933609435195183096886321192630107905023767310199303290347826674001593628483291318319373928871743644656325542976245670515978346931116867083143040757909757673090250667646195237689977157667200653403831663276275291981095229307282953960378877312128894564785628094938126728887276514028992959557099618891179223920469123057050305191175258886216443696750480516913451240391781541443225215171509025240296767808636932672632460626384223108245761331485752828050975833675195419518210771261642856886224459042578371406952632157367607130915764456362476870334009345496885269343598134607189351947044636531256680113546886269009621273693197077327017872122946484242434651250153026165480580634094988333034158994964645590550007894837350948803906704132627791265249212095635326253927232267291780879594748852434479700049553685784898377108067400004288952563587622689752734487599741790844694711734722415208033203154619273991228984472945401843277651794839460516566806809409264820782304143256523232421712744311386098275523459267450342685405256571229251758651893565095809153236771348154235686470228049060564305025108000769807272722517015741414252863798478721476079112944214810200450343192319209396871838676685657592388383347577687281713833516101626575051496780103437465679688515718145811153861386777063647235329049752354410706284846053084560727780071397645954089090585588020992602011786469579831542387412177178071886993130293006767191231312447858623462290395244214781596581338944055488865779862559992916230957230499565161638616764139397997154740822300018639978631044512036813171535902514943532551147167127722678095688533952154558167758567402941912546645217489736780249489291012247031749751238016482228193529178353371625094177528821237014196909020319208541941994393040350635061951370250127195726460418923145147291704692676959266089318660457148004953237379677257779601770946948833120407012816038793133139435694307477617532519751905684208427028764985547940994051739561583016541829870583225969926437995845878932499368627373865618804543685604906564416245089569069455884555366306576432024684633185847148313559160900543420002990695329185636626591062905653677629991062938131242214008076280015773485395176542011703347029387978978201621244291327114842870265408818040176904781649845398020471029728566993086820447837622504921437578181057658436917951598186747148251086052351319029662520092569036635034479465116901409620123550936316548963601283491413857995264680737735852710174907112504787578281746854580941522424025195949055164068542034081324203182691338017423707494068021803171980114945663901544113176404985686094317525780586442497848215393621018052079995311356428610934187591796155158851036169067726089704470403649316088855547740054680220275491950249613539439194548249828052785595749905438474757179368092110861778331411272793257118988748473068626454897646675190454963580587020323673193452119739212655358817131020707731885610251177405128327578528789698317178654998585312117919445846821252986379729790326046520980720579430343518736195304626984338516468452052544581039922711857576055455609981195532103845964259795372568980443596894195522729317250905173248359183820537478840244210740029092609726585728990631732920268653415525952797892551995597579212068481502817293443195543738073463398828466231343498090679381346854403980097352278017008943185168237144287175441309507756567876051802987031642491949418147817759218113601281842207609467205831029484552233844587827531981291092908409650986065042307946022887311034962914661989839007736466597227955493888034011450905242263090245913403930124392808495299354000292647723812140423884265785320665858471762293643584830198679839201982016436559126916014195506041660405819517889763817646619316250605604917642775075325622650728828945738483601563019811549805800235080852461164702523397231948430431761114637214380691267504837210974067047732087766425193109398443501873554470586014884452478928211329331841481362239036203586235973580442438639814356398660445810104082244456966395942222805533502441348239686570905750467600284196758418591957505477902397313794245855637411355356983695466671134295652310983620763707875004516694097665468392174785831764135458800866175410688544646340639440250327802494488806615043621834155895433164176651945933979377676368530811253214802219354806261426408027324662345355125229361527118143212341519762245201462894682212942772605793264425445075911084929703611842840057897758831721074016200715641460998316646347780520571537025628860529442305048585060654162473617247216098841453254497919760477290049646059860790797434152351408059116121563963994363450113980660022216499144377095748557820130738124904175720723386358650290310523556041089038953878344054750511603965547199725722538357046899090050075773120861469857561986136172900321856893982009088584018751596061737667187026585198287694424126388307543064130001472487015343808680799633815285627610005980722271435183993732217719641402751357201254992459525396724017964533247841633467711516071669299426199409894765078631960943946796326865162104827944232873676835004589742410670687701045335937592349593491795561006616887846543781924614831416617730923375148857601841217571645409258284414798786229963111273029371557092194961549302818608262034947644739688237363652670549169763640369842081210704504160235884566611599827845169032856328017849572676671070328966649283153131771505816505810788260271469120331451924830774781677117913832966308264383050278613748000846970216084322720213648022175970424786300804111423818762013135684735535972817913776552697129371409960654581826922664151539191616285902467546414870396951805729512405045172107519886143652856134346011118965283046749481391297227419410681562414264075173110797504334738943075872589696228543938266270829261703730586335966800432182753241847891904071227290560325936842490143878842033214262053604899532559367957280523929753622375574814040900889541322112486645670451546253273669694627293536699549644758320661683051247056728002099853888686233857772541318860358349038698189101928785907422264274963086046003363132418191650653024451116628384463053823540172258454591085313681936443105320669645490400706517483940114595165134840670927265438081083501378105592464054913533266806489597604449448098379144387144207054796251057111229696761584623373428243432195421340003201863930650797969260729590620189230174616281157401386645359085636975570393392829199401158424342821682650317509297937572003651446081866107102773267727907736631694301938797500308290668930275154919977022834210285866369717478989664994086741730038119297388901968186478625279692390166359695547157719426848449984865854839649676031016615715104549796129009739028426633164448642231087616128006805540216469150532372031783164419783984577323356396466679885914928810767082681363411607550920479105106651691330564459200827099752140933757826646731160774070520740420225681154812459213936105622682178512820202681973451525546340041362469583503640313647517466464819659097970027881631883379763998451407950694568429798539851048859156735602229607059570374497418714274518601836067086715337776923556873945176117888506873005731690571033207090266744179937820567060702114441686557998041734831823558066942568579529254561861472254044942650259614693215940296622357448688730306418554555687332111030624874987021875308868321112483310371941639198887265932269418453624608000257335167816628185666268563295399192335327127596672439511140807230304286244332425473422019281006022658189853579296613442523732718901860069120746149691951413114885224575213024506952204333160772053627473995226576648237357487509926539956247428208766403213913394593283572401446416132585769146832141640566844774280705087041877797725717859939325586659467128785306845724640845528600668250145529204991361302660170564409341634113988177274813384042107407254336186706977282574973816636402738439271676538521933265283138096248554282627763308855831555423720364937708544831440165253201595601448721034720121378230054587004970087737483748050929612520146358767039696603756431421190946286156014799757521746171526417362856217554225664041002952827886605108123781600338548020022964001328473065068072929198829430429501466285361977459934323302535534556121997979483532846187336716917208135543399370007087841721178355005897847481237409118151866618987310385940521264961793505647096782024836396613947207488018244302514268560050201018275669463376727296315550422338252664662392691632165997550171822025522602372695523100157890072882500638654870562301338935713035723743301451148400386886029065766017447268113954215704312311185027828083357105569257874534827270162439989709187840936733095318317573756352377253012919374687153410923046789237529811485801705106929181076951425013828388239155242574237532411182065542588352203647028894408312811738073064620580139501187556195185818641948448198141025710081741357449210414009390222097292075421713688552509485024925194995467012813361763566596483121893262023891397718699173126035142072687133193269618016020605291587393629206097468568218912710047025960155852461985924798911374989353037573657464910355522244603993165021084674478981721695270622666173098407102740228407116084543645389162431711125050675882323984852703809143111995965508841899254275194261148219557964504110524638047215296410497293668027768857432152654335228223908830718854476418943883355427466363482410900258266487673850086373943358942691836469890134754643133708291265664294302801911657807767034310842602055066640179024758537057637027951802944635143191666863615071056073858224502305504475000958829088066386732492833973784952792975067601941247581297559938561840084222281932872582591625659363990516524164423727566637270062277060256284494870436829800501463846314791238451188887527212854128074538401357269304678253963619140293301432429904404964497903746201417602927649785693299754915492787804533806085418873748822255340401496386964789141252177218146288542882439610807284954970600791879932326951700494788355701992852541692556039054907459736174630293298132017463498681664344410637443171185957530962287709696742882685014464086027111787895345503107775800970346693594668404509938865103084269940899553850902315744745611333940743530684653717998241732119846768638267418023806572525812988165111527066036804293405566169636741325836405118894032815238435392883973789866497497040611368542606934296073195937019305557331752631157769336018867804297699422963159023173737126774465420191504120884218043120079258450807901972104574635239567977690523995057757290522545342522488954745492233444291094325488479337699245993358272301497423108616717004959140315743086066015763933076009147166536774536653842385075541658209462150509877994025603070232865753186863884687304075018945398262972238028262162374547161886191897224222180311416660178173226616449613929550386963078880792487053399532966483601196676738169876378549721126696463686119177686569585508639882467522596464282257883684667450027020130179287662446024536909887711556071938233851168189266300173036026750346685285419486623143522292871620093972182399189771206778617172881182395046714593346603521990372926365955769364086514063897651221163076029740284339791134400680762607753069976505903971463669199708377233650034475620442370197463073141582062612484930229952552838013213484841444632435781162313861142815402781163409003795689687495162728972721105323037611394064677423865258342907318442577417501692356750013597472696213397450692398228980494560161039203838341618736229472020044755328090158341450374208754949720840934284964430813410467930786478194146598875110332494732046466077863754996214623788984363202255853277176860973437738360826553600410988947619536086657300223543881144725611809270233503579295925478133775577767631785761498724275758994885211206193441387217226968960997167782645795405048283603229498766870781075731538512003506045073595951304493309662067535532367353676408103833688658664989993719905675548287897127412424004589568404413677681843311881889331923592561662181232136460014453294123842479049054728985631193207441011446864993958033843283258535225259969155275686400071159829853016735364798327627539546750102530104407337995551356367829822702751722682656821435372582830285024221518402257007817175446688108548983319432048626404798666042947445741869100213283727993224724514911951501620927918186963841981909186514809839891361675801425001718385565177892452483801846777947465973316914766295258386960699779424074681894204671036821169676153504405141303911548886005768602407986226685107512693036987643380409445680724456026803072552715509251129858784012937809496451625336688245534137468296150823175943719227588755006172423446661392731308254997324532365002967533758892350353348971345237530203633085897543841528239287615979380770322681150900861642858594959616836413251309530539751840560110052317471882875550424918238989833824138922698416445130750479444681980967889748207296194261809199658049541355927366331111552123008751332279491763665063245011933402701730379025060283704650400966714561106357310016981063759591899482041581587817649970801300421869619494452338170143084432582931728242366429888724658232410795225555406779113689069052995193906260192322691009068440902578859334673773037004228374157433098215140759285571017024273214873607013702367457651997305822016961645103138482276158773774960061391450505439163586599570219189204056373014919870637429338668642110727745214825987772093510254911640760563509692607514483308536150740656703420018306973651616082071144302507602900804876876576663579762348026620371060462067888977067086612818356902792383985362297759573329836759192038663474229939374346728091196642333368585859405820076202018568090601536763979256391312218382417415312451602116673362553654900498775309372620483026100390020936705944354432780320312529772307329993936142756390488835520869924692797581064401623437266084798650348129599645009222236943680058325173647785978943141439947328178131451281195934332984871748513745647651703774692695183291146079081595053614879906067167484486244964221154115691350741928509584825084382294237925880565424668043245244777022123705847069871546174364406328005823788574734695949705889917871183189661531175578646975222973336866813356662645794695172177074073731321770515652465805557508272270788692614834456088854245959041626081984361975263704915003201549705027968097046126564875014857785596222616339972609497909758074251483309237193836417120653835724987530836152123552678920667690001508109166192876906127958421960152747096245794037533037367276414516655284099485978303305571950781875485230205245790185822430695159251737886039202634035472261207035268011083088128042572480729768580218588157132351649263684072371906776714433389407416797276651936626336543275985056135837537914285103937121861419763306438276802494743613314362331436819303160970312174904565489151041718079565534957524329578343896953597174614867955691524484880291416338998207898131465894997809556052050009153195546054589595253401212508065194058222861383249351013542343642330704067634796934103766361931058348026036667544158136855651577635144056482051837102603527645674641461111055697551269024410579216467533131209335893745547764850057208250971091593815138906254355583132499182438523309857642338596752752219815419685597646515929843816706913794036932943173421806032849166147873722792790400962330679614062164340154533833405169190681669553893576934020926516946730032742203618834527268065855919142005653155178157431716653430194381132733590874803046824045100948305934718192425597768728564165433096370832592207829634040349846116311801684179961327872722875748042067880231179749330605170863043957121006244572244563009416148391167992590477835799950880970741965154392948327334223851940944219055692534830393931660318657854316014748999956528396465331588274858352658103013389078712194387690714254972059870433360542883823757018312126945252776335149872021840705825242780624851499973549955828365315773351774056008109055615979886409945600646062385673162541792821168836965142271660620453296636248893276094383636209568376424848677473467794690066070827703355278522511582324135024166791728943102386233273256407591171800627684766330293913321111478396745178427275117855257396690083807884324951893063161988268739469752181110794876967911498477711439876392242789036912846550440566031828205046848228263866649590910841716335795420526419198000633250204478266812427648263551158960747148534919405095679848519079141103185120711457786618106612783321542368151377280031331671596688716938515797316950493386745849035399407574428485213001158214157310374936099084551631687469033073869834647750229668723981675802277006397567943279700567726470800827305265578694541272620538791243468495584692015052156059651530674859005640573173763668279295202058659397527972540160862834133704443904838285516861731369744467384880322681294490691138606234864313894544809981567700141953657730632666984647209581826620830104876010183189922319944088467527393248492116435291348988611525625923859496550866979076079507811832506128495006467631967598521603088718144771678635409044794159961768565840165567056117193029740692801849556114718768657797763461846005467927217818999531309685222531871694784549214909555285777404070301541206900899972468375184139081384244635109078979597352299409072843074081644017977740847239738785903118559745080904490571391656512763804583107885321174599975483298424258224704695231024937663416854573324311062380059694595550253354539261391990507768141336022025399629598150690210045526774297638480681171855353907616616781577395386844180625319880388841377064115949070162731136936819926259816966112545260650008224182102960965517863895866002722624961672599504438903063305208530667015871114464212355977642477482924335137142551639132632958137514532718108665414955263177807468829332088610422042829812855554865697149896052194375316995686932272211735896157172868637356908489952082484848074322294814211188536741541456967115492738777268954232447830678775717761223467652974536440762009673196229905891217759820469547332665519511364734308506782926110245350705229933977111027680762157062566386392753802949809956397247255243507965500644435834983085503196851545225957956489232434236028562914815211673446929515287808972793726224847850957437741150401492042243124364950138741555701214713290213750740361207455212622560564893714830065055705017078716749454963645918938261084299972646664622867122734376180496910479080031808993220905874686247729205548860799315671680026506782250224537740617138162313329983475321138009674361139757931670513255729479550696253432826587593871039312445430633702925033277654167512999900447658608910452533966068655218966569981395845342545586090740438175540939836756164338683306294086785908628308465371982689820748054679961493527140576623864777833321940046870589113555059214274096927108291421400588779801064094207225401188146039029352226409534119373606618429772627844375057241740728267367804693212488134562964629506505853762796066652186675161987723070376770197848787027968136535074186278740270261448174702776567328561753311600652569549265808625802659593856652206590774692056770396211774371712853178703380901889689747389575823394641771146661803783881442475466723764161221103608847040794369690228653640581839719268860650421901585561680704376408448443600033927905387200066898811037988242765693306675197207095333530051825954820145054993906336040479639168684369017861887458323718873454443796849216652490804125716099225937482631660356484673681466057015809729850183258958014888488157124354278872756081730221611390786513616061228471439551274298771970439776565884035462735573223141370415725124694471191980271570168813824463150366107072331757889437517191667784685907086976388659583144216008371927183809452637329697268609467459241460109641529506376910448321668233521732315622737443422318431346642006925274511797306162062033231181340485293156198451584077155593449132209408021366976537646007249248309696301869066612220185193809270516826505635559259021165097449331473311425070002007302436435145645714608304854855932059137901236538750970623040931583785799236925271623507436394152025426383136935885463291504345125751367514974087404399017388771011444252583678595953823399855370019785558240681284084824317216352136731230207949685966409430483922734594028496336931331065331018959750082907418535599316471432428433747292033451624391931372236940252684348185473050015268508282336194201383217988599696488641586415407882918942730523866231671554974354905664020789236698884981621369909281101637423256598207163173212716715080988403272778623396893311618731561174860535664905044773598604323275644717178624317078893218033380986692643009786299122442483216303842346746856384461466235797741865997635017666407043823843272716140057814967004298905538900787929976013564888081807525270358034436530011675961332855696033522463346923090445466471813072710646910989805741151971885702290568272391335713487598690240986866790793871891411700887549409042212930410940656815860550845235115765020715188395436502671651219187353826337159286970077137099818725227012537031815082639628424260644190921823154482087437546489641025268065864013255682467373822643064435264524151088752190547033028469400813143746254901491978224721461121796412224043756781357285726127566639311876438598561220700561586883787813316612941902223774020906903703719477643257792869725942550432972379094917624862259189132523868082596207589140576659354129629541231215938158848272953618790932107215968649763843229262190133549856028684368412101912753306017037662741610073793940358612652725548827570148292518622396633921104761467274523116263522516175091406341592500940329061560407317145028108547557051993959179668910425627328857416603443723091627900708186433125828197274534592429441942773011573132332751572705329197523200830031574400515302347088253066996573754637856814914886197030847699882307498040260460638491251764479226995467195572301193137319386597473697590131276558774210720197542135220212163072409529968319470864476258331179504894192125527354701960354318771368422222849474549373277579097077707163575027362345020807397854280673260366845515655619902952658451562521531461250630416516889589139065581803845584134456650608720799824232947858864456746000710894678037386095580975909090722081781345364442710673903172317493763169397596518946115328363677406122079997990829558639674949108104764231214407934205332806380111668137717471572650900497356490187724313696904484378175356474214539948972420071453847408147630440007088572610180776716114347540115559331429865405501773343176231337436826495884962819343259495158271947760864975730694186393934260281121012210179241144638267314358897223112341819219797604964001354574219699964660920854061102368156134163260044887478083569568243845414854193223839395778655499906677981257752089159099399117790364183426326602265543051238111613689864549789474737501354594200014580119191240908705305716074131229198222120215247082999495477570230529192197288840243422471151168867396965939583303692830530296081845987714222177212887488068826869206031610867303999874315889406863517300201908286632153191680804004910890873450134768200759365110087665051286434841439717189214265551977491218222930819496307457487038833634553655026808911026442856468959741189327265428172617984400253091981932515434184642743067073140964947392281169411170754381699308517273528685570310310945164402577320971846572973348033390548513921888918580376186534900944287354708172880731132863553954826026973262764116226443242008402157149447027973761729249167423799223792005529551018107310449378876515251975447901807758955718537344145758739712782311259034988109488436098121285008725813818433337129796882344361529372974355352467686376647264087902241680299546264217683367410164586407733411795640465480752629108792863664760486809715951312012483613554281928931158678428747281139339587829305287170484517418777487350183465739984397327867928234355799606051037015068931163220764291626727866316719205933727042570779404889866366452002041063117890957789271964677624272992982914501955334387054292334481499402705564970053261501683217651130341898102038316904451075437446745079403168230534625916821167067851822569438233437159358016524024950008887022973524679569581838940699996519425522819827633435243920526037633945426290004610825240175120951692782886921910654532321121587642542938200539672423277627574083234123872340571012449813304386145436531368268211631638667636882360171484791125743223850416687563310021295345570297905361629633364697811724654051409643395390931963365559933849327557212388892447531897576037516103074145402355397908234066086145038713828245225532479062825829262167008278513710151568040855817648086540712607811581382220887183173098671559528464511583018866365427839441121922138003219448584710443432214956299655367702610467114703389730407645991215421356517126517139802802458716540559515824019916061493750151451567049472515287495891029464729634941193349447800609446842886579179520390699479210629222149078230590349144910788674470786620773477413907134985035901000325197650789474169039222806012250265814494224466161658600166411941998174742626028336385646691523771362750714681891491751251310808298895927430179105293002974468735566454770772089242275800064449355337328836985907575787854521871779439706500558499108201680606451578033396545671975578279921544471813616504282347884324434922083087239649186088815213487305874734409451297773735322415061095148041821287681989836506466953110438542247333088459017867009906762219960862883068281655422652624933421164982384205619757145229104197655407752885771731187537135059238080803862632602773172262728934532533096972430085686083045657934529644437584390766105100224743530355736672557981526929807472322910791321180025094790936735378909436903528825373780147099086767331236317018725010893981654975761787295286252192112138291401622683179946209526506095105383706334732803508423833363328172140864110611803281201840393166007912401199362096503617185801521684201031929345367751327855338004529152062036099075105602571552832301771453681372006642634935013143373666598325687738925888647166871649846187505193295032127493468538193496926553947708901532159713441153859340915012248001705476389719460873263106781138574503299473632500802347098453700929694330777555410605564228254616194808701795557688763997961425720879191373476356898842504193905820564841811990055436663785921228459213113427359341543973895871201735911394602555440425748401606362755225787246315684180298138077062621223608868603350898261354567962585039780733233517815577052541688147628868957491470675215117566053857954871787644810067574153570649872046096824004879584751114694323534064074050729284371872110780626167030507685193415223652189937579975701121255625969870679417174323102949419035656216139953288595645913372352982254700947172741259163348087686834213524301710086366496002050315861236877895500558581493040215013593785649971210831269656170811079482635328138074641587845692002946647948608009171661307452007904333393945460881696698573846679352066825990898331148203443568426397819141932512779510463083711755745998869626114339676320519321458291635013350198790723482698861005942204974498882935069379872774959805787346073394970404444686515949620531615593586231511789644085855163859912961419029072161362610427779297159087233870402234147949837139242682408568312347753985807838877481046508801492009150842440622421623010820712515813979493205998067507254340862449670608861708053707776516160141378561120755140898246094771177233881849322545837973165308165635458265049012671685314572012432912822075670683722405093949078133379823176735951585604383565952410628884862784803297767720838905229867361685347007315052493083437161206283395299174445152692962265934162065564756568559542161676241763879400796735791964507967276079353128893120340326835090057287907775863820895922381960822822077996876166865293807951509035288067343965897101425217013275075968539349782486381325116169976316132796740411544659514696621360561648049055392718784854876964570919921484037571273285735480105422684301821681141623950570606674491978742610519946878958227379937165999037311391721218850844459010745076010324632880092294595255329903148316983517161259359109297593541592268037147881920950207919274491650248525029304807389618972608629983612713766807099587345459705564479445975864145176231864908861346519586880361595300691880850895061371777045717275285394004273133476027668622542320207913828384146968891344739361326951581534546106615403851749375162542354921022878278761599836870276269895767951910157044130706851973316950191487926538911757714736268546429198373955675995126162613005727365645652606813783177870919707839080205373222065702742426019411431480316088512392351342272691607272289610422548749057137881661195180943459371465436974246670162853524147904406577769236236032894296778351246920507777762307471609877306990723978987996192365225913038366637969228557229254433689264090752442297850255490828148646403951190682293857738695984036541340837926681538802692879714774186334147519267689362442132511214474115190125533480169844343222841098721602019614230771690563610607463255607234448525439133225677646915704355068613095777071480163887025908269708330557052707448864253550927502811730374983439763327733579207292715524792967146076456239831846695180650404766393599222713811376071548618069794164035168630039579482479796968784116105091258634517481372187788168185837117154574972083735125896959326078219830648489928629535232058765281250680250661792343106502510686696906409615798863516869463478760785266859731865176873974080029226283136031912866837925854097286271962138558958692577172261417207607564500557744650470894400221573650174474497882945774824499250751955801227906192696594863378617540107964923406253428712645607129421540876795356989101463062294905713918267355406755870170601176858735304852048321785956981341277283319617346924241126731085631504971206776396728316310695802306046385547988182197253654490578993420637444075695997975544738737644351941670987122413323849137386653420985062702521184577880452098795013429316232994508576436568738421939859773935969932058757119773976525859652229861756791999180863007394048317786830022864042099800589304093100254051526941238194225777978674547742687239653042274553390563120865677316965831851947763294957035004705722028491893947435756995884070801364374896244882646753974341251845868239440491087313909465233233704745194907999731082127287993120534794248414378813928183710000385552673101545693112352359111831054758527323264645637444899922931975873050731786249862952937760194799758183759390186460873704330627726347383553244176923341046937471532022375188775848781620711332806051329832264206451401054151111831552246859316214594062689375405809255773190666645453444035738160163440337478050469971707225739272423028795847027851050489800552124004322063767148878539138568482239885995772354406535718896034141570408245136529316867691521367975910913141559460507490136585521083434893243305400908760537390351482381235650350511021932876839571937651970816289181427631338933911716127381187012823777047876059687460014619759526112580065851762219222948527309589264216324368721319257587496301305590036391747371645307684740182453087204007563263806959741746026915467315063711573568854945284523035803148949232926032501285721669678938143715809618700427071866277946850022591266359278496384409628917421689473381702627328776646541781268449209722651292269034381890966608674900504571394129786670513973815447791975876885996747738567955010073521778288592352238057534051431792853137979992525310317032479475159960363138854776805859648371655109782099423790897819155125651552740768981598951111191690507937212509435083105503108429613465790348569650397824278731996683332339880153426111168858887321977927609190246524695954175166521377117454388381522755493963195659625169184329447930082708019222971331805024570653387278532921325408242460983099633792338343950260817969883609926214596693325225784143986996060011654837535740443082068973261022528093245989361463183157209053071738026436779362506178768670280854375601400655984319455821864002975639601404288010615754351830822239353571891226710994927395371685584324265469381441084834627421012474498406258932088367680132856739243852708749205676385567776129593235959476000977295314099178454034463494193784057849702765349952417184449560433994421991217497864495397249682024457661572905132587715571738952468633764697239332444705700763899129366903940777223528929273496174865295333989592034018315669531432622719088013631138318499984396300280802072699136715996470122732716822177106163340641344899360762851581351121197883587608807658856233057196947087144788471861906594305463659596845285634899570555266877950898344750151096724455353746295077881616730894433782649091241700143436083765247292704702518513051582780720229523832637737956905092601635250400454781892641206346846222607256509005915285943504378375955357675469804230733822348564408732829661663197037491539838493194256189819306589096068573085819800415403814658463386217383506594704200646070807825183151372074839908644192697114740897675587144880780939306968328602896476699844604410855233490725606208018329425646878268558508057114712070801516932649400781828879005215634549136846979265154260143278654453519084504014025622101812843840503294975118986404070749768005932615451476999236942149867171692733676492002876382542993523033842465564556737779416142026151281208408661130045594756778952081033982624940713554732672846666027350032563119111109498768604224897100001670805911851073552276794809840001786624738459326549968766606658893459067329951630101930284761830070021254906446942675229989511307526198630899095901203974053364132962655502613033287701795527690143696651754396156849707853004490036912906290818443985751713322036319989402455804011222638847414400813347226298876881766072162711169356552195421792777421375138423842649712949535058088840415103991706407643610654410162977418940928658715369595665087075203361670846283051796928540990497163047081897712133102663939693045836635449866050360757297807976423450055132618980254766571007308612521403842357584710286726704261327751543425485197244754391647821669426765347141584033361662768078466124972499067175306206931805095990522396041854068914115412544378220437927502842015737386133367173668368685324931183075664996586002941600990436399436494236438491269975038156761243120972470193588316058501646173302061709516542769100113134359347933944253715215523604383634022749000878341578234828305829984300803127528229361616179579087112235867834955008601684719404175061061134625541371079977134152693252009033894914087103446592891559273034315079820779052990543568702958015782030195348098486412890904749172332039290228597739406658679205011623303578755794250251028460324466011950865379147176532313116295665350272689742640856074048271998508171565861895066164534171005767929143768100051228908574996730281785557336556763227724234091397055012579432864126544308092066402180284809718176593987652772695655031840292882802219952143521220861289229910079268435084435652558744322742639095498094372044827656662759143171982906002800072440397115833022677474395323435389703460044535939936680149717428388694428423394886646576954867278449436226192707144206350752009299033844033100541261216190396103567810489401196245712184433863327064976795043806760438520430584402650148887212392164193535792547050342450363786631989212484191998795891997035125888431450293848406485606042415558727383374473971540696848110547866893975792731098614390231807928329278288243384668841051405542965015882458449146632517079998327333372525151358737084748334759791439384445523311635916970378924915889381125303949656051024341866577184657699305018841228813067508135020112609909734393593632676151559079840966343432331232099684354229063123045468225170700403198479282324973236622154669154925773768805381334830039744667157486749154099292407105732050071011229072192747746397081419170988301046077380038307749797207093010494649907115284738489640008022815084144810881587086880472476293687448732613634300154976857925788285307259675643745786673722126510895228085654153047303201842222466444130286185650709037512650398143211713635467017548336899512127213376351875231137746161817992756711035385415193174195508262471757686290953117004221678215626367622643712714996376338726670951896231854833133004943254924567446357950245580839547727731923003021196470445823554419967917497239497864945345436680340041769689003309740312892132156922389078311271801266032581458199378142206576882985710298616507559845846149981399086004877423061179930824816969608388604834929110888557266077906324730979101046989462883782048258491911432550590058289212203989486705777942553429188893614959488774934790702975160833423331995097835613284797230838850802867462828653128977834428767069872130852285985567217223154514300648300242295326352684308636324264874407196406541850604840141839206715284519317088280579563929007931074905608886112600922820970521039769872073382620262255927423609984359232515537286646460265896048967486043138692469708976670525539793218364497707289839150915677028980649212223524814826159983529947387031531573449869496301481251041270460501242358480748476347356897346040260839132857523702465998202861303294097589145563213649746688263172111579700528876263011855712874009609232121349645134180609745893402147888462098791814649038858452873698863750602220677405319558320184734006499447010567654655850144326385083893409481929478649132869759257346007676946359147964307334345776903655303515108313697210762542888438896918093591251170432288781863657109341059883151076159027122602881249606889491349368252749177976604572913934974851272963206096967220541516648722419665996414426033646420429531514876993728418961951737463160898434099409010973831876720616871913594348793657732549803862340500609913756781664720603336963001280745344284488916079136696492701018404574885565312085095140613884105083280433575690475371448863994818454724824413878705907463648874999209661806714671523581632914858159907582779523903468406044781526815538254924807236632318535626427175460171084625921174120990612831433800307431618144208278733195241602468948437220120523561142150136381837726684920328593936080571352769582660858204337972502814652635458486137323375975897912800418071313701103361626646311679570997020518774487324932396705895311694607874203954790936691414104689660828742631141265000770448686106380352991628813219160798432264625406978230848522414913036147233189507547026945753362737470003575693582912541377742695207764787918184794190517789433899854148894796652345017284504017256838547021944213982024885127810684743333783720069453507131086494391149614682127218205169545927592977567092073899017890220787803569816265420387901928343098158982004257480057447774340565282816850700038755565616342824094019772412924259441211843461418543129884089576378382248519916285093838427597544226525125539973436406056019914068365102732416020652533469919327190598505617883867913055007952412600308947067358606629737178060862192849668286440699599542494271693829848693520293527648007447416942356861961707691629709318640093924400313540884067689814379756743463278902211607846392092895337189873668474296636372396080888153811151198653774619318996472977855758924006201935233772255802108155600683862511902302449581823728083008620749192792331480604627482035956450345780760007401915675051019084505817104142105271452433962703283287978156851099455753120353872084648135871596065917724403522112578783264591017746599844562678315067555280289823831690559259462065389066483193352447590224503918383055232949403376242813760464715387320781436298227203699448065732633335150482283046078998633203885515371211077945032173641675716033479620274522207720825979141550739450181157568243720609636227730837587278357675183744624019895617805766155105072495531839826465856268384341884142254694580117757615496431941332371140601259228001077030971870001946370143371114196558560347180039949647357573368885248023111922981139768882295916132352109650330861151681184376564073424476677521261760363039931532460268294510082334226862333889991290825045598416346971016744794035406612699778021533004978376896978868772945533876894417062075387943145234880831773148949173107557195632391796945327910604753949370656551898420417465778226568246247816145288183639445158485882670807727932604999239617883107784410334549529009814485813839063174103459697750806736460520951680552017549446146043054396812455279088617216552006373482019945504764213242538292837606367389434921365900072074102157417991403538799669892829724071658649282408813165631379456368001367557664233406667380505121530425625263325932784959972713238127875536025194072372977154134142418123411031970660504844350861185682889708270456621374457010666028723952434476952316358217341615011534237445494762645866547768774803779098758308607258946163724013130421793332498996701973879422528114511342950483642918304753706384578157535745114683934749725841331642014828140785058567025054697270261383761727517216713392273730574063970465571738832554288028286770349628050244714348101250844586989918210475561858399415586165387728796977192890935111881198802100531020684300719396353513852498137494350408225715369859011676412833183683916767793519738502613996991878901459803813531443045846438834799259735699968651770889899993934502912066672073181216809117652429524214512356764998300898186273040537336466504587980811310937561777689164840869732966234318355260585300554658247554340621788137841937862792208067635282109218235288424834703297157389571847294408766801211925746490077500461074065533809955606935941438161506145326010843515395534744168029438706012263990400466750666982942917580611403512674061615359332521853601064285806723069148341413084420687129872856161049989946261480250072819249077889169178364293900693052488330804231581094283404956271428537614896250588605909533157984637256963887323753627069686064225431585662138489359142032075195749993141654589757798209493110757215504781006239715701296919631791593206142630265638784434868199443068795605473187606962565466183748271866658232506053354781433946365387191352538925823022487932833879887494303939449995507564961274971691005314858468945342479617669401615677818413722802550077100777346543723878243150287929946812399393200323749757867486071812978998138521635933701972555905820221453875043322276407124168429995754803197114850674347982804242180876802841333846282726815602367288581711460040118001744065781698187052125094809800757479200790086529101798937860609654804374914941826673465905447212014082891089679452000408588013337066562924149876090862420571486638949855719371010832673158273297800151244800619679760127813943216438007820116508034763064103839873421803865728966751674747104823520228843662425363254173482193892263113538204191381832617262634464909551536124276995059248184831438965058089932015025814050878446720427349315129870544258877076910853509671794012445264424012954175637055151605639869692722410631260673197890124038032319923292854965840193267367354206817266281172406512430639804394148573181559346264016752570162387343006226757407701031748789451895289481718620437078175207220933112684475041438988714009489555832029762428545036296492673188722602082442795940975808303141385665358206704846936664408654792128585848094348488983793034219404129431768921017492118218390101252823438917235574499150878238251084652005329804467385187408888987354892852563984529650883353481985057762981048188552078014790117052100242357965251315372182077979373759438376162031015176927144913875932288958896669007951054923510807414321370170821428511107395409155528094549926162951094178143032204357602447719961343858467543185371958704313553392027796019570331766662679726988152658324101121836911913493927473543440032628846975662142721250893416660944355062317315817134725619258854781656689329597929500588919111248463728088042327737389079619740314921439494459556757710634601677862341886775165729250655860415781286329738298985454735018789702210761332849203767883679275369764989179782939509906218060250319370402967638599401993963169114135257310128219187476220850936498426843042398663725074096466966697585382790950699835641910443987019194427608468513541880531181214339237891433634272962006155327049746626791581915160868520448508340961823366774168299091542911276130140861264226846276451350704427477932062271471747946956650000898908469644361622146080958343872713473967267142465182203676546398087973289402485699920770109026163293680711520814465444309512891722045579692551846619424635144569764340079392234371196499046624062924463320397061472070481942598503600005677510101400971122797798574007253681132745559045078587037699183838489314928722689059388240942377912294729374138142539568964768436133000948529495848795060724141219700214159996449275597981180158668752742136132149293704548794563705313487950909715290913980394163871070216152543119410901260006220367654876686530530028170985480252835797267252813983212019552983707932153667237584933441861826049900975800427297592963819914529511355349145696248393680488411449022055034120584519740941358679476427063184550730184495642050994985005063774279647977933528207116370588204787033872371854262395794184627061090818451004483857562804066443642062065965957490052784852342902942069831740870493777704192730999119385299237885084105726269344132396941425703821529899556365042314601269914278355190952830086668042166786384522203524999516199134613319276697909336693353393121646011113588914503794078278088544118656565725414071470394322948648194841195378272154019030338427221341712230751820988833637228585032808310442262276408464365600273386879507932229434487262875550376439008629051510718910065163848071227155503389750572833764117451472955799676175226104379387462198094412609947252728206885913857126080143316847779665850794855237860233007746666451166053636856000611289162368972751664054004754915205320159487908846382734890290232319595330323316298599458487389833965043652519266810985229664833222991222996431457477680381936369460258343131997729105447986254127506954233485367999954597645858602482214216765636504448251158523920784612499476839286667410895340022576176541722256124954820303297394748375116187664659935080007390689774192183611356894286439729252861115332775768164840525155074353945290080508790949233502277582042791859438236776132022715581649362253842031686712436671334802127574803672692168141494826439443385585357843928438335008311416326964166792652967866618523138707180127464950095702299379346747057750749980064975669455954228304571724070190049514632978113057492974286561256921987014628604785181079071518771867297893910701463664536217679922326434010579591433023207080021825220470554440555940090639177371502848922420329999679731033787726367231305708487427915105597607565543918244418074376663749008325972015130871341435308035773685744000222409500569510454544352751082316928012870473662464592923423356678625075511018153279045535060496069282473871548915360470752621842912551174197688140120083161750995196505293432653139227072631562858149127929762215932647979565143743332621093034148099706487948322549385421652131756185552597441949156829669383008696597511724244407829489517592146941978184535529389181826484058202939898260935164018286464481333651101071494882045471200335966031732489502892827888884630156686674033479559513345307692995917863026455424905390384286108374267612535783979723157861805754436741579418175391196570142125882908423805620151588993474464302674596333908975154739546768930870114188507476398703145416322484499201845620180996843090627390840602291043729872885407145653599004773209902997721492575370528272164574526540476532974492748014785001823398043097432434922900457790353607055261394900703244284032701076141623992003980267543343640010332824271747000422312948182931576178814212320900810683156842020976501858806624509978684578575690442283896488007440690957118289492197605022868275955981484673276364428623135943532616384625694491637056831886369572122615122080801876018467277326075731084275711303656769455858211710647524803086176689394035972668603781227628504114595151984255052925249350091654343454412432376572252778141030199820200954612927309908447515439568618865561958372865075088385503039532124292497595664900013368192739809428704569519676367329095803070838229962543410926973843629641128976418384392712786270632736510161194658912618423955235867824648540697022693857727299791307619672799348863332782904819460117105884515683005211194221414798950843478406631845406110872486384326001551870900662982424872802708452630362940816688928621402247762086188590280390916507207189317374009483816767205090957079704206984412375458011206554154251928092228001238573700025506678927190470262851447376599099467576500610906376039074274660594394373183467680723883963645583012560155102400726799925617120412038275556655771756735638143239339945534963980178989077018201253334888125099185839128298004371370500347618387338825358100228533133146576693613142747707893817128025973271134084503842821652612118587762489790872958665866999975744946553182087271533567530214429225094679140297161368389569520745013490228710943441821228653523486118380400185086428460302574190063552874448698328359919348774297894637164248973089046912968744614392504571064378030056328769955639237581237333641239156236445047451024869866761050927648634365356232006800498694371265599023604314139825028183266997328903204695229626220884849060630825734687476112309066079242963380495741649009336518272860313751387392887854792045595106488332204844701340645926184247785228312465973544149655256059542708236134859925155722405274379541785235512189141419435712707336547919159791650236374008741122292137486973528694261727135275410675262196001096376747993779303628450692305424591451979605474405083562905201620429948521356183560124624450374707545199210011671939823375118046596521772595300849953287099174642417080140202346772232658382283730865771852056418557020230099184744188837207766915733966992793033630861893865171072729679209840341629172245856972883781906034283048375553642009508725109759138738858315277603375976366041189904473036214227815081681250985480469294442592051363740696203302811830333665255671673005325474727584118362086889077328163849665786007282863392236423779110433540873830758052186278702224803092216580296592087940061902249701983582091296540547894993685337106786920862848982377919384910799296203088070599308303059749900583806033323317384476305249970710948874528683284880520511672710155673579167159568671383593122423909359865562368670761085015930239938071536021665854698175318631199649819528240938442935948887376113251322163654532241325902496273881597530606589969382743997177402375899961557555019218155301915356855785547212068782815368786741515602460734870462203419212587726751277792596269679717830063965600831628135290876421355285821275230482821460761023122040438906131081328410055648590571161424960822752985201577726694125363348043572860786843391254109761847973538817773867046095342418722414185036043396259765983911722854570373567907282303504248288210026582786044292254334697274637259297569199099796257200403172148877370104861028860020686763210363758251745849226150668848903269563866434045921143740802586481577142903214436650931715233486496939411096216126328002555073810423971534536527642955090341886826517171467355633621591417796746812643997046295922119509510417274120108366777933203017097440883716136307978231598887534135048261665873200142267767860769513319909430048620014211837917970651834447567195652465568139503761628751980773219103915498409475942561257711189117743388994559808497095139770337578483101994051578825030804844259501934581203669190808257779520997167137942154184795176050119725201442458287598433716655063450749485139463402791582633750725522897890120712863226256861660057030537582210839729891578636967585765939812428109073152783808418235609586513392425460650875855925590443803546698426301649374322385395834520107146443784109079311809794834573345795594518726895925644490281068029090454744436794762201609945625842696424652452409732789854607698492422421154115367592778098150471526982018617075857351207105900930384347467982929502932493062207073228318742937738628849070870226675403715489679052720154571745067220992494313626995513552533340270394972672338251596378196144098973999458649585324968553052155157642776374851194752643203562603799271357069984830950238134100026800817444369406848506825341035028288418910330673398686281113336504211604402835633825293347493196985804994245068146229185191421615506143504804735051230711935071430080447981656052837305141825763444994787282232260396905000268537993005632515737802984831961281225809439686099822937974594017449176088573516517261073056037238941552003078906354472955110179507556919780820859866545203045177163112978272889295440117190030884837576712595259783736185522001997149328824582079861585099661878457551945245669720519414569350127909998160942204026513533509136325950152976918233730084775342282327025950753285348310268549244918251700342028840473903699644534972471905425503220269355491511082932879840986722758394303245973646588875033434330437158724810523622526809466080286055315795979935795145005317720848884605457704743098179722587675664737368635976102389638357871660022981957630696778062605143265232336442730722443345953366433485830528747331681344069660650580883362750480103470917998278081280584657026965436410580529248789873336077025812617323589820036994032110396694165144241893385056943696375891766623578739385421456139143472807642883502319504057943088426386414510602918119151629221180761430763811464923259218144991713308460660303902737342723050493859516711791879125195496795744108859561760623655894393480712057314425962417070301838712657503493618429698761219438550117988941282914751759979848685732522628663877018347152966730000218359321190845717508154069569541474469945176238670833878755269888301192236790669692424581962421392637940434966889438467428708360137643269232417398320557181703342996976868553288958900469724670841167113047924597105849152480283494332975922960133522259584109756392530343343067372702837013370575044815710481495270464503203275800843981564899489745224939381897034843418355778397910164463751683423371305616026961501103580239920316344345543335324647695054974305140011847095021326912141967212163510689384666067748764846523297209222565204066479573115953957333237001654560734579470736286993094976057888837398036762398895207412045425218466170883029131168483768224527921387166963354788402301569325538631625578644430351236334157512941165092143736498116363547937133430790074979399762007410816315099340985678597887381731774740088064719341666001666714559238908941489337152887647742671706217388779984747801673524915893963312192058410618254424845942474378287772438533316176359594951616700353250895399603829882464307122855345258007737923975139618703431885818067256524092711003615724473117024858855287920383661802925310447719979236629011041543541030215237072063080104322543463367105346471346006980985471978343221811958286732349772000631691571408339211495324325941992713214798285662015346840512689251122184429104231607831452689052109767279489371372632080990199939130408945230011736906761367266094198783024458002754013002789239405778792416590552663529912873465910511221732734714053051027646662124570285794161373781260545859963513256282178739257374474675428991310116220985344000829199704155014003504383691594441154818920245838639133177552315490105739556653477020985917921302425285750733760256493906143024332597798583562854001173737402516134223702745865651127339941246835562589733783156924010822438933693003117406272272122465085109291371779090628403679195082587916184100094988296270033272761401246392774844208514353845057760276396739633005011152828372191885251376248337196125937550140300673095986029090093262314911594215647241136918164495270403529648519470354249763513217933362544460633212646430702897774312661121316902511852667715672581783220251500432487409549378112361983200937330742057317549296302233914913050966135639752393074058540784388933136075825875144922975822625492880094844061699598766063491247467965507135565187111726973297537540542043369017774196502895862260682652752675848697599152901605050195455212036236286099146667577918012727049122150412762869266792038453765501157160636631636390172011970933889861821872020617086917513403975504652581669965384914508849550129001898023920818334934554960063462060450057138736689432928403631885848781923494238867487857271394675459270124675526255479959899329729169039051200862641146498784033762950507066144454672666338013198828927415851325688497876024989537247725805420329937459047937100792692196952609566367026965136107244884062206513998905750418475022021659946354412032289281148814737359159689844633191172219427070676046663405931983005880871977942336376876640720135058714695284648677671384847950891266269171710960504393052289257672104283439646109465811066414723513520345469836577403473053702810598154305741839429878975353407709382902576492188658570860290765182351615286911974406218469627416286932522637860194962892491740546981308615362329715053956156421889664966241660629714226885680907864234705718244386605316455818336242704267546645604668396866284676895101533528468308874540310406179161675298073860926307602358388179081222337579545584187199487135955213117625553364215815323298990729017779954847394095062923612779006718332956591480740164306403080919349748579993790802001942865744281849217553889649425236936546024790156132199605858247254872509328200996636312608922371494705295256918169533434685605116436626239049874701286493280261266827634246085072712567084159647745663210344287803293300615882621166812284386812640035224948069756968997154987731702339291996343006041152435468935190460264591190682216848290293407378689786909748375290956714156394778299028783738833636401810867441905053781505576444688454837933341282456440565898621396928426838823401407039093188352948617919938171256904036527593232864510971074638721617693250256303096758227660395283899784513373170761389392497041189101901398470969171818005316791711621807694696174938979390682364643139480258955717068333865748181090606426842753930894348309073947470299364784332674839667920516416915170661371129620037773485992137006239398346125383667018561541176953670830306404012497627682953142096361099549514751950206587052461876857143590239475835835607314109798500393457633040207154007875055262395802241837920536434584646168293881336641631784921624470967946019419279391656248747731684011986305058359219717317840054381448782633850728194199042945612691953036935894788891153688389682386774747585937176836064451311825796591741635735081952271209373568001512638623945692772292782015995695338155547021007181350026109350452474222690537099795693739180253772613199537768170788455851577251070888347162120609454147155398623217786708258633175071660515297944380260644143128074415273994295510759940259683011590626345670214608559812570125949852211588920260222327289212402955059083590405420160597600988987814300454215129113172271521351347690764294565011741726073265068485619610950803161688912061696751968925525695298245487601619027159964757596268375323608071724820201546373197975430739174917103054047007090445924440465762740799873065452774225631443543433932482347309020399749616121116735121288882158100295560088539909462741717989316114684449333784011869600916143603808479796043733390830987215621145914193160308795544854812001774768863230637919154901214919930423168335077248878838231565685595552882920614827823824545095898517755355167074264151908411133888075274747733792569745909498635240516619558801852632521830942686184560065537996242908358758656631789841930844108695629123442547032617688660612333227536126673532376256212743860748339094285247519277862737559485379246347266847237669812607121815087217412062210216191939535422772578692575178603758371299883946906274543761648937727112973107654243554740623422102542310546885607387104441887614295813883410211499461159026271655822789754198291681057771910012023438980735711315423572560321003693247677096776420771096071991470818482640924374602484048755656352024347610233054790763345215649854386297904271608322351349667905956991201465642782379544432217698864023353637663217494399183400012533386419712999560635092379171646197567686991999603221634198306117398162882547701557089629554018739041727846844585964700791331629144309749556965668762638307258233844748724063542729014440896879342094961913828324374136266016508776221180846773408194137883437718429346415747092628533205273130662073887545454730675203597942396840832979285992333649633454257595934355787395250065013602909815365424587306583872472955948148741991637320110464778451790496531968239691905632330299171629093288807642219799137157023064210181216917643098234160048149045682231704343238886700704470053749713149498745106034887719510969861089216249924511678210842891988462097283933653906920647646163422407582517988413424884421842624566028428433768506560067588993594438587340556732541232902562697208447524268068880752396273343000577336591008234750220434128826713877013891483767378773796206566335262643927239428052119700303109362206223177291450416234511009733937676416249314293219963807108674293162598340692697766625163719999706297359182884938656900717007144690955688414311704349394807386884445693548767326448891764456079080356331637702048645190257772524579918072603517193366737015263288223892082591745985717084443277480780659312772689499719127501013756259037474067344544549874964969057704477993112235996479694762022234028882593256004471984830564897809835477348273921024539986406431180801482657947144357279444308263449575914604939095537736920447464509787551982682341704388510681758582641663472071718568886608805460670780254306308826132396462802471820543004877410761430285248066114766279310979606788295224049706955387715379079922655942874669861126518868894045111000875111748934873678409658683414429091165390058643974622335874471120110215852788111493401487261086231424148889506814975709029750365441356819386520766265040176698738002063571384683487608149467605767691006021992407614363914496209520044029392925470513209480500069062376552522528599606474672423463671911197573710186556225041172211362390661137407077503519832087546464386484971170315134489276635655313683135751176621904680820176796441913744245106157944620141915674705984633256388541356140005624441291400735150132418225225875002172350581405061892881162132430165621997566994063726220176056472492626080076276044053385668995449673531890303210020643773554726111954312497027132534972847718389307877541953808398132549540309686715725409437340279363822059494879990871932695389534638433178184385339257981712002498796575678772471990363464897001420925657382134803754762923657276867683814377002787354606244530869802218146467558829896150240007240371566889983304230544465095623663428109726756856784581519505074895717822414835734152309780008169134687239558029727977369938795818863728426671129970541657067278572720994561081053083088888095941872896817965625361657915055565346641129680439894656947387686752408716820364193972831862038688056550831439416486086329658665072955242261959449110838383412134503020682646578083623048594331190041720085978218723765473326812034195792290583409470697562929198532322122541531718000411817976185884425063038058678799506621365002826367352367739502482432365022370116116922106234174985180831548061621565310779347446859788354623270303149475146269939608673846611705537859421926398781108589157839937258191512325559910053740587224046053340566642500873273695862295404975955595977591602667842094381817493158354127989933545163342038576651867013594972214018160549192416472498964992499628729829445912681552952238641914239018121030862864166048266114484994456430392930879159951719462413235731887124867334088406844732342874170065718555565580988358418934707887957987334982359817470823759961077400178828051952651233395567504314552515074641955581978256178970212316365584414257247511865944777797973755373405492337995978317403186946715511282279063348290017892988626225129954703577384200283255480870747029001004855794409152140033786734393234004425080894692612268442207404609213531476205255054280391460612107282840119575885648120934808500630701604919842573812037088929461595241077948701001693859286657276646921058970340741594701067173489456095306856351244928488490717239090813367306215232230683368749059650199573958561913682489527716024975871784482339509778721236124623530768664848832667689832850396486187635229405791247099916442311244755157047128526946797200429132821802719360707385672514502279056416468974119124944280603086734574212800982679139492816531451246922361940873186071423529607155652656108738767505462891892614507785728385414552831318488594704694542548498097162510297090936387902834699143674408318912502440035586020496988839691073198800705796629278980897941018549141840616163781319127080779839757563605669528845633171366304386933643768624422868447201103700074033011799161876927793607341447890269659607165405191317669411319539473920981388894452363035015276028673831765649929872588620359002555879197367319682022581740243859902864929669832445699950776683617520060007554050480664484968982891895789115410365984639480851621360716066855608414196387984864913151879370321671555679301610467688346188042727178508788696973162703063049174232999803522733457551480267238935862271137701110430908098554740237737933237234698172952003525910895620725279830354979232585537613483722121076732625912382915335292266173698419958543475293118238817595089723607983562601688281378464506208582908904334492671489331196734428389592129454356037783799405032270077458370338646714457145318893503172676881757806574698893750914499082284739783345323636191662401834366381601321579450784512350409468506477783353542207025108738286792917624503057881053698049962103726405625400777406527327565128916749847603565308096134803339660384131147399969923765125757821083425408429247656556259319799215273030689666970631503280084369648997877513331105255597754690735627698793129492797512603197366765075873744656342719111884351898060794505083830979018204151856907070326889633996329128235386043004512066948127261204287138665969262464140783750065394870218248742491628159716264839656152727414409991915045841684617405245856002685417186514867216354220657492694817905079475881692895273750859641878892328123289688635111831989099307320186859162378287642056722127216648512601662298073940622634432833457122432777494108546424303053479489346843926576441994190187712190999093475291616306846811105389074835303832087017974064000776136692019957112576115142960353081658533271969364642956183005767552514086083167831720143778226001472002794200418605678159734465339140741931434374256337474139522813427476034218183605644933848171765813892532454629152219655430099961188880822782977394062989912170068742744886657902202173734460842746286842035264548370142237705690440938672571218831162514828293721618582978581645557588446884012092769141871222448982686833750168264129100778616006211690934189319386399442207000761960900241299254808476870845283074584893244513287414339545569358323911156277359525495206982805339313869884614701786022846242948894215703800119437551819461299781350341292670200661035526762758386386072121052508167024047770798436602657084342116770538867880357233057795784640642446256447422683786580434047062050022234387193124056859157106954325547477773670040760131323265435020700706552487813766089511024010089614618293754902965875797328175231639564164532277179078249105752328015702327920758996908273333200641158837212833619331582616972190997905965729183150114992054785729494510436534917360180182005445860751420782663817641300493191074007026341151393380632304531981351308523309515952174526913747710384127581954069399688905702172767560170846824559987772816176715136636046599203741914912988301152710972009457777784131724862083665855341200430585817704682507418228543699108975498543475219283721359494546623650962645250550364971278049680709012753655650059895745459742003939529142872520145881275454294727760094740079403814514003036395413717838302242117218738197531140518770725517609081623548506966021428433332860737352823202804766680312254690350922822309468819369382917720732312363602381533930887942420074499132917728026347300375228872662830942240607665821505759733922459536125996603375152459960786044948398057496920025043963764177327714619022152559710714882058149770321190103832113288684462766142671865448471185220823605259302362038054108374262677005244889838311043756875418886643246983578488774154609438210381528118232661087262225649434082305377046798651925513758649734024132353666838620135966936004154096243111666009013215457810952630004903014972114503496570866000617191446280349603866178752945584485138060554312173822072537754095231625368170088491143643031515776814871559159992878102609605391913608007308451294978934171885392623367939776129645311701421877779813369305352131633055830185800877190982654683729348735209418055228215999173699403581503618055140431715426307339765737189173888702708042138019252779800249358843793729134181624303933284270038369212819335428290418427458039055446345310631612961793694254817130646492912224674233419478171320140721617604068764213209054877161901363197080997370176071565784035463172933331850100742353490116990902779606083877630680368942097795327293212252199836519006095926910889892728420864873464114150076936214292951886844254368339209885817177380593005192471422993084147881775865415656340712007483814495672325507037010140802369428362103027319538298512479510964783446424477116151940949660831317653335513050205851467334784394755849074933551658886272072518572041090636536850782901729043945074362867566775564707099635110475244708131565995312980060502004384741548947025374265930843739572794955300443169230317573892054278310227065405917557076249442741585788262492890200566280326963766509177189999694559024629556248335407850252694256180926957235279263212698063777965874412485068062982423389262812621147649678961598581120972795801168859830016224031892214133118600749493775130968738774931149203192361124662213924563104073202918819049330190603103939170460692878031859427571007571434597861465635612320672623706997889499209405236847648230694232487868501110294424458743311446766495033353654422488437532010157439126425245561315878064630597569111109480402540651717519545228074809943946795882006119258608200081648206224099234381364308328104000597964205025945597748474216710497449661900835733688612522046392626818263712640980168395548106883746057210620552945676622623679845576896998893787173198709513016499838344453231575543208462785765371248739630996950344423159503359201112100878605812682538405641877163525095552101988567252924987320679416791875362602289175545528646300326785738253404845079823866885065909641618692812242304653937848659597358440292153046784110089451063239053899845508539297465813599425872198839518174595559406750793421671416707064941018249813525799295557847419366256949080391158498584878849717488164594648864634797488246786477815039451937170087912068899076832604293325161418129527729082603583887786958148466612820909751765355222678507469117770218626440245571173752611338951782385453389345456355744368885078951266049550588711684752089301535152102646195373634544977269739779404087616532100201552309853506245658168530066550838944404148642735727679362874543778997979270018363196212901001245375159595352805172804756840112338485567518075841588019461337546696916474673677506415267041459571443562843830286874064672561042822870435995554983827148501117191478615746712830102571035334382402064826566507277120794348120506173227833845716739648624461528870440573035137154482233562076585538921448810254450099105160098428757403967958161080090701315899537911790577041449679975157244478952684859978687497940729201844894498095619432263649449955138095252866072248018927745621814380343352427051621325333018454579524430340385664215046388303969736060903055551118546052035817313911446621454190974707804394672236012391184019883941135611403151907956467288931922493540767868288590851332264133535403911345010239091959775814389497542292740008466860399934220587560315900182730912377240302671838833829011029501433136167704011593819530745518453128404163023237872411346104135773605484998751211377974354508496050801071593872267116693190243710832221153173423379666460124974707911339547447628015694343175335538017745877017757354039938005350352821786305833864591057475451613666828314556810419382822334878286981608907285942787333554897993544610734046701071798552857132137233352797210258114025071107068726489937796507306045649935177404609981274043198730113066557392488653117613765897278642900528923415211963167363169132207230977230270327328348345520231237979920918260204704861739387636101339924284726764570175895166508540881791353486223662461641293047186691065388026704074922102996865623563210748762493060068331927467494327093336017794741383620140287800661431163927255463448381673845574401627715253227045299656916567926767534397850303125336868728826793606954400937210298591455674534937039616468398463537201990947228293010760028072731629584443342879667032855205223183508967240865142678823354960946762865655354356969705906039235262845369459674319084934016130294352596817977020249376346564456165354775682018015301547190831108746898653563078058937126689655346871759619552291243371797251704742984571852138648762018731800203156283754483447119281526869765809850277481723897897737237925552704605937877198998455356427314005393882697925304717589396735706475709519118736420912412268521740535401711725012782689145237270873465570652350242595392303227305666402470598751699891537212443204854593885339279070160743099206800996757458668019046474836160412776899272426773892945592066188753836152058878682951731635970334378590985153116416704330496054204575080124871758340680034224434911365448942602897324577300815999740222589174304238481097128246828699936365796663638167633891165855156271812500689326238487105278787254675140840286002452832735745852634324023383162299720239000623200734659445853623043899961907341311484980527744356498887242639987676160752581885350391116171083683888198786636120092056648182516956321487056275172609605377916102543377894599838101239461549721657713223760806966779593078511049272105991506603346905290112137815529026231012720899029449740060208466043733219196583565556139502236312562609884439536724107643666635745859312239130465722528153393307473577986848720713673909805774318228917578646863728206516826668628725305030953725030059033016285961780632431513770647738709177739325485659496071934572172185104813940801893236138594906885123139883562390240274538609409701272952250562120340913430497365589555578813110054767345576722443861910409736865485259024082792120793950034716272263803474266055746061372740857269093886030137288628018963306989607951814578125919999558840430001764779381379291071024055710295426017510578110840371931319545406138102145320170306043191130653423132692183860444154055887495594833319378657376345884114515462537174395391079008166262109427602690570573926110377540866403254272015851002363200561293451962815406213232669237617223628020440001405885372452351679972604576857456589530541367866174016422466918049956145838365267665084240645557398322280757659168174410205393696035244689311135418181882441458178089120362908156767801169924306690546699959506971889233031480505845740639324968267263072287626072990454021996041277889848917492615323771756705156928038196311951244172740631571956396745066583727959297899239323913460541830131429890376364321034171934666895719709386584835713999210180158237020622210319561913384647069077210677570041833989465026520040431337267542667495585150036295845960082219010626082863701309523601508562179534350395798856956745545849392668832442044746128954579904940191579613633517427067001692627503038683157552196862658553771865712832975437946913024141301974292318567431916075709775739671897221789229523665594104024825546743029486292115043200926998957428518956107906866165504641320721925136205747730531468328476982844291627903758854469408521071530707768055114529626124481011542366845152923202809671433944201346031729743518159466168550582045782474769118750770537927214891623971596985046444252008498700717299121014419268172281451227581776878580306217866933129525070748378697558545597103723285037305817937251935473670580362094494198893506627587123343136853552118776754171563949924818732941047875477173056342825342142422853791761551237582053949291233693254021461603256052015067596298196073688493393146477820850966455935193261283399321046533252606469839525536673252418332775351763476058872324416329522451185422607306028321788116441844916132661723217030882059559484403173722871083868196710731900261263706768623119373850094834417270219996125030952282766101747837187507234103645399843370313747915997688146144779947835898573674541140121248718332461280360542905792513164181386415155745634559401923594787708760110202369704299767246458063705194018033865536057826900064431505305884381683002772795442963493275087768359920648926523280374346647602290969579913783067116167175835906733138410029524670739833869603204622301387883914137845982566001852254829955527995619880764801443968972744554259913848490021315578671427449070051823721552565105561450208413683810538580152291960900257874381036804334805463546589309608274569263338884798091268505115146366709725678925852064438879984886590413496908152622280039032655727778609778248997542797699863296883409702351829008667493760110068674514702609140011396129394448598555408298375467810058175930991839088790645694867127135163011750250546397846369455365959921467755229844931100785093761859543285462855163631149593898834496128403709710280230676114977173650041519610384197223716317133758230702993175481642987153960567523493959852275442287165738584531373829022617096575702482879996868657570607031952075263879726949537391300790361991667992799580503169869183957936466780563891699322418639729966649127034250474062538804160019495359712863266594302281789438991457271298250767453500623352377434542052985169673870108202796224351198987154935769758803559527877531449931497544101616111986934386136121790309011984789114446552960297221522020565822834637536242028255733352982552000418048085095277134266855364831068435225058862008775181644178648468153640092613773500178094391016339547062431949362824794490105339523881900269188164963589896873945759190879265771651326801375673581501441187976365535607726783024012390932210693072884742766787386288101841452975396821234581093605162788894481243045769054104137391439155148248844053070106858793795433991527435761150479670799922192888207252436225222492726097658262930096861848531078321879065797107966338926046950752245802180698514523315445971227583972383940133353045163667607858749628121495681200461037379290015365512447863012824691765300129053989754425063276650969760630216766020201055085564653162175551313618943689267371860965937649499063494339211342082922628376876463800412531564449370148647625765486474812600235028340771744985951722214861341499499998033146670934364938591886478650997565051838059730946489096220054885439237445660498214640819057164346519710805805686009378628596031854113743873393760417290669401417199729238664264822493324473722365710069237848459646981588299232360652961869078535262075761029625303547426219528395464249526671212945553096123206378159316072608444581369118197213122553034347607917534152625976051826820871762448976981583945017700394399648724000628795832336175889016452434092241051212641434228362107390118340962196788968716742141690478267757333154065231604207264031451203204898074791356838430999041619521522239995117145661414794164022778845687647632151518367334191763716773300327981186533104299475645421940112468005752778460609326368779377525502493354963460627131283256231679599782433404759046900747143250396511129768708792288909153080665375144009433606374198182379844367319539708398315940068643058314958772080581485698399517599811580488799763583621329952125883846685429748197245864050683997625187039839717284648903661920761254441635327015962313790587695479029895691944590043419070097808881152351771149582082854730158810886393799647178072038687568827545738639407591528286344210232181445513577396029337093788562734563450923119113867129385998871848389204044552087613261517530308974404457593337606412163771313024787371073958308919990556876608303136529750058168676001993073458751642759893332542478379727960578690764905983292260477205273054870734841315819800508371541872298713435195012013298167582896582197170348926329807891122014296028492012831216146877767835548544296750839074848885387330093384879331546507006221596019031942067875213914610008569838760408830070876936431364430404841082078577956428111707553275795536409864347631120931164774020993309453518307501577224200227682414864288316062320537897399484229997488087303659849516826111117425947773192586345811185640519861952958583181103864552525271118437506194278678917195845003079088737400763675974868384800050952655013480334385059912278752906300601633440233185002400109604642651311438921040066910516401923286525288624198613981491155710243063667768551233221526109353058891551418161873296249830621675637613779964635220930373519367350780425480190374522218165837931594672844184163053430171855324162714427785777031874251771415982347721901284410385455379970141844087798947308875257544297667356047490118540228177897003634527294403099794080161903036447693312624568853414489238837461097722436971963724545802074202824374292679310247489109235128536329402140085771054313114404999471252965477803477188469826630180711734011468581841774271843728955220716474468664451234414627926064306218284945756704971941511443553709550468103943073191945089545054806486991284098927619374537765676841852195360031933429559292313039315195673808980497491577554568801632480524888573452576233211571808507794789836416017873527520396689773060618718737672173412432047863449835482046863867323665276211863704221543747474476471173822203059215447451333477143359820894276812475771723929182998343309931198377265716528278984191026666947178464428858475917320043820003139910790340843550407038076686883628971677829943003502089020659263546472770191261149163616132696701833068030959652163362025993808254371797806376427383914531029692722562248901852240040943126436030422327077226704592073084178384791109436740502780276899899643759169308476207030499241595800313610800057647003503844253764057016289428963612479428822912114867484129829422856476145417548180323461347993063521190542229829820306072397394132932248056295680832677987024318999472424535801532398788623400468630520877565960432260211828993437776981290092806075096145483284985967626592645136655407771864103147450256871175293229307680428410678166943632667284884999986724394457629550664427411015060661616405518260839036332084031654681212217755812841687451557764558487126707508559331545912983611232925556083436571777194458019025896181323567144047610307829194642464135001396859844253779492869904313365117852529661640338659028991481780101952037738967765514187752404951492549575981202821305770979326853953091640443649499097349483160689399041487208024980579821735411563321980184511224963977132202377110262479323277182038459675589641987716667721722284383076603632307669844729561631670575212054469626075166709263941283715394506157978676513865311324740509051693179828966007283641646765245787489780001764911440805294346777316202596468025412606466488033901076840284468192151392928804064339063559720728736800363599736302647123595102168445309358621323149130450976834361545618560333744696505534321466811036146156321453622263041488811724508150377584987703249598143922468389597632881721618033517859307977335379929468724618386199831615176403904513548231214856383836822451003000421397791061527536107217683797246388988236949718717555359431675005180832166787725239093103803570902811900229932283116660121340525717086878557043193076881382862212150464405490310977894601250359165821723130218204824875984902327442690462223555625154392178254328386048984937674469259250082017482477496062408087483729374044873851030768466390715287702375157945627737508618769671070155451256130984394960382163623964141973737380552379481367673276992273070863052971323350144846584355323046098071169630094316003410473171343319943773554466692467910511382652161451030926526805012412036433660444070863713680009828660537062653389108229316334962888547933300044625356332754212722747085042893433903009297802484278879275563744222892201227300297293894452736254269524744364326441155993109173473979297829656485509176762794896008724729934875638867705274268329695909193788035229344354509519998711568611548795206438111948983094860111543981082409099171021854278691345340892379493274298066739833204441567660191621284245422663335990485457432959525103240431216615041149142787128293828216737495905237426117025676071148248618042014005747536833727924000363011205502079405827533467431042524340117935111416617849680065987374485088461881575444708260443836892850968934382726133400327100318082429305299003712742116866838992335844472873897268587197808159445304047971860643386346439180092087280244376877691061963569511739273612418381360774529085849132291095426089409280363822747925684015809694331393764239823886951943928219908790387549250214944037433776674688003849848081373058275434412298977144379411103385361485692285933162461404976859870761358842143578137976186614549324958993515026223356057105860252344950765276919053788361298971106582989435872749249575680358152104067143930187606710903031173464648683448989065031182663192024495297348467711218038293361411494561038354496268707386779134377862057124338976149215394761690987466955471186892152296620017687467411011897922880935189071859602688241098296991260212831677429881867727407676956869160818296953747809605588572652729076957051481506213265798077082383789387060076704715859490342729899712827533119422298469993659290371213219783190721011760750990495646099900296635675048146765951512757612905425841091621721256151143054517702489705268430545435819631894819695356054523316983842736893925982915435244276066101132820883559040385785953761838079773658436135865192144875803758278131882018020479187365164098843058077873278053171650373845383666192019589971763821457801689522969115894007415423603096960351369410555512866783723105768647785036927831527982549666363071620528762434961869089589994949383007083089889859715989051975156197777065814848324625884593694121110062156880137640701180010064503391528478471102238319446377442000892590009656226987652881826152113708198567124067673437727714675697662915109471249792700490612851569097723588502128112263291671041339678665918105245779775294237799815514455407551117383901378672381336174788009798696080420651276375091889217946755633330329353730329623371866435309253194464713666130351360403005746128733861579299893074827914024074766933609237181875442823766361999056248151287560274696900077261315016047947295911137743367671398657377995551156804804357173187006880749631338116541113599190691179726411277332430611933425058289950222610304478971916553188734716741242257843499652121543384796731422481359292402491679546453673446324373764878322570294904268924923988682095508356921452950405422439298920292244714892338792312787973899515334237969692007084109042258699534166787092277450696634536459734039992813103852425161645570670948040014624648069651595010285893900333334824319380902959302401684034525202839794024901549183834341694445615164756220538273127013442883909996018117837011071251069748819145642316011755941479227683225864967814090075508622248310950311305853953658617185272569532977078982976737514276859055291301531416243700496637135013384822859967370570476471121333731227965985035541525761655864756501623774811354959187028884848934079226499916144928788892514338148043226763965271556527625024740019546562591423106304891850866398368280916102259124227828528070661902608236234823797484476509543862984821914559957372055030693984128019980847123453247023896277042152925297940557702003440668077879901783126884639819903190742930934968538242368785159226396190935105745446028646251171030294811186971505233203649786096150151117919516533170691626042720513190713516358087150643685028331661685062178697786882330369475871687168274601014208510231706857267625590102317213374414147788442267121980591001480504948769367960508086100742395304280442708207827064946512115018685577367853095455627996729525362702949158925758709374505870299371356954441883763032301697115955017743740878375800360655661890730040532142982705511377651538381735954935433475731083850040906929047628864820491287026147212920466001258188018987816677807536461678427238280278109583941815165926770732847398294166021432724240580263307934030570106885924714107755138248897250985327334295729784685699389037181574916048404303683547233602486294700843468117011426085392830361476145835083359322407772394130254090905601057966949259873655721765947807270499745866060478143913712350581375802221653718731083039643449335824993530889664223388438379595849820608867890989296283463338073373207412381384670270356179526110042292476541301290199594907960103323382301982019633826535766865311826154738421785407739530549486110649323791695294191743433953663991494877637924315170325832800737131241737428851278973276980425794359087826385193617524745351817418223458063031689738846337294694017498289848977475427906240292364535280157369652580385188965015569445687829911199359861302977599095444457480984768753056935457025148598940628416897738377251647532873481128291885591509511516675710511422131801903820445422130086318373107897115931093851512529757055230932069682000148785235168078161324660202697218469145042049807349928012063195283383901364313900225407871158053414004773467535010120445643786429450171481113781220141163670972712040455975763834460876337477649331594160944776791063100566096935579112547009397462086663582272505896661026321313723430812531019871418617544999121147903691091396167497426174755432357573468705841644983404068010701593909181788280149509924643938582575074282727762752343570596094524013309290652708475115781864317712050532273519160636432481868640203545991217001790392940955411475547294217406234435628578987922140525636610539848366443634203969354133239271444456185730066206614005031017348174477738525773618053619044658967663422217878434141127854773282240624392586291768128074116585484922450018860646753245982446799201447559291881857500299317502323129075149352563703986409042169312535685449252944738202129234304116674314265018453341657276959370867310739698979634660504477906887865236899589642386322606902678097757915786701318505929269101367041150897096138173535093412099379763086090320821317467301936979174201394050338897934761545839097115533433788123441710272662300331624571110710377251593727460794709950078802107081971397103320752428198673402996303283432541283283027577861412091959264394152987727531341805179144433979780979528889899862055919701555383245734108028118978399345650118298436864489508575004042569300316759215046760487735738288950304779665223725410189795583193383021011817264235283385273328874823610912038719766852448093071730429850129980108177382027703853669039662390466915325110113888832379716559296943359010112016933316830738179820842818773777623896270714888867951598682963505730775222557459365971496697992081059273854078821654306864078529960696998203121191953890384329965594793581973557912462542683217503518146077279339985548282322259386721232070777874073332365197067407075877114114294949300171266201313005119191779046241018969664256772397813082300343050171652392921420005513114334833618865194908114542812223007688714983272599688147144402690322963030447852731010413153593670906531600897473349262272792813286209980372792457151308923597616941089897423653008707547076030400512445290108423825671076741724437474971272747015395788545174814131621075044853569340192672963045732802609302991854642194236475913017405078550444772204516454381003567837080604545270348882225270595587634873362469360913486501512729758558970446391697461636868798744024619575593104875930214788686570293663965266958856749490956469213510824855645433937058113330817123342313642810013867458902283160036405533545268041775818198325671750483611530031832088391809917499170807476743963477991004420798421643839126191466371773291841959312408510731774578976527883022007685151539567502975841793262558018771331438201627020486399482910414100290863125695252272951102020989513705595082712977205266827331698701608142397188292554405669982382476686500631075185482375756347064952995306724482078384020295724066395104509527485753579848745059154226363976108038574499345570119130636670317349011219482643922745892162975246306326125934530641849212015185708737177126059015040340417700701019208696249900347879374900037053915485152616124389360393536307161820334249254653446556427078262590032923930474361186385226784731429445762917414380755386512374368853155374088376711398034720765206623759633988817149146371971807513671869704645163260804888901562398196777087953038331299069470225508196612999731470108157603818147815416139154144217777273402700044300651459913614711987145349410899937222724073079239758845635874216384587979863777179046845280905482746642017121988121562024961340806579798948926436468881792866404849940061724055457250705923249448241105667734746936135591448699076844073867079990007957436483461950857945164415438942405175682836040145775776018761926902738371172658379057460308570072478399744622155464692113230383135370795761355980674619056963427509312707002916137760184824058474793324333699281196278253545772289877422449611272501483007895843234522751052857657350570156045986260917722106511917024554106396529299308581046543799818979746482560265583183298925073780296009364649627750069916835006384334094848474838286595481369362327081860715680562946977272473148046434103446620967547500274177701148933113162120276958734742574599915513975277221448642235061146684142393995239942455362305929890535193542959584569341581922632876899234548515106877610114302343383675258667775104379629278419284613281620575246302628345941850447321510946374257118770082400498110143890215002999186052913779951469452114683022652426820351627992809972490697333973957584012093339323188858354163985937219176958336685430759015943474785017076959733397459329721794989682146660278035593403240381230640969281950981430010834557439632976640332058339491238474097420011180298663837987889216383791525265790188735751300284659164777211236995852068584000040397961848002716718612835182680049380119523945007151163722795484793009442911460457326297533715430514986533842848139685954995106715286276770089383490102320264158360564881250744165609083452346384639614109204035329323725648467636836782449325689383373176968591688492585943375189055567503622592497759462961896395940984989879722216732966346503046631358909965630043879239566062984261246858936246160632198391220438060716400517437872077595683262252247661091677710065188306172815512269202919028498344468357628654820543882735114791782189348244295582295667887885031203529643054042048832088651755606386599351320556274042373415490877572725566847372471676801637661296957735978526897932855276968154759268453431732361862447665192611476726568951856703537049708692695363300949887166010465526583525170727908522957333076944334398788081309278530744406970869236809889409592195553252421828595016514424927889117869523391991106740975652506339260924798932775934468020760512653262341916480589096443018866082419151048822042262985663543751814883267400741669357263853123731821694413350595618781872981846687936833454810898504104033265630095446819723367181871125199665675739602765322808787245155675611658374184472710440177510182361917053586045205723370699034839522190002113246828221187729735505363100566985801257894418913958826484740032904166168451395650317786630238653172858952826477700077622815631241571957766381992798441381150972972082558623362789689837673660655785847900682436196438123996318252454701000529726579987623698613303641070036011257004521931438191562371116545305916305573790458083317932937081178214860221036476560576267487881772630711208820650844086177886598278798401901653427333573216472916568011898541218335744453618051522339605402780926135933386298950500613314989294217168457760181310266825739473552706247960429260864647318463509038862842433511686491845110644174927741055073305614521836652663118944398906434443689183519687097212814731601280393644265472122818820264081034120978555937668180010375094773360126665136175426832290327395501821995222344908928210957945513385899293906122666103401278909576245780605955643190432858929205126110799429631450639410491601787464553736427073434572083387002423511369322220542622286156603948467297018559969398436616661193423177308799521958748536540431745979027535038387651318614278946954818514512154549570540150940573665060294407551995540317604330688005553076306580684661394742470626029622425560560748332531567789485134029568849811831714157819774056345993466704391372402423300968686601033512275055070702304290159192198581523024578118081645814173179106091349612357930415057918456156780453348483485099594004577864040822789566718364784925198782695142920492157374271009826531106896394744000817340655311485319790176491374923772529609763620426653830234020453717675962949108520057533371221138699085364355203857473932752966319803866999664554103004070828166153654123784259664874906212563867945540295216321259353298284468617764214489878407277861799620697935100542634122268202397081520912402212030707268753508483342737801162748307594930925779477964579147047267216244532120783888581160494368471115585653933181246187971309191981665248955313569032292494575609325692739257467762320538719275621417201883980694083975035718780079536872418415559276921475480872173430341608354032158144754307047056056799243504201338138625630445244509269216496612108724383481257569210549236548274305714460756169675473380513647097789982590269248133802409403417440637858921970056955756266278321711976203898251844417909712668360817740334669352052703893698994662721937741415906941691037030756347828580910226527786647137481212967958591907646040458256595896453164095799239074196245162095560223730945336322786135880182635151675583660719281683492637765685846555224927937064461537146976329511454638158952657749990994794103473300199639512453913644784512099291346972431099818314017467418394639921880212629379334574970399604733621830220069465247768777842495374577858291197262849262887389091360536672040067553564792431057351196516944682715214322278173538094257222602657253392132641435330189095753034753662228800370606107719567327281154237404558089504329126404993923882639089923009589034499002804148923390430470342331796458029282553259802808135303060706737356150663749056008996348902720123394135250165327152496733451195023087419773817016526606392181978443406995921083700831387606950194648985962533745818561957248858117298458059761317472309750871635654185848167940203447817852134829344076376802037504286222386756432871122579484460568665258265018286093913340782005848911433865693251011243790414075256219629315072402405584009418888528772508163526394314293200093651138543137032848229557802838150258346192203348884807629704768683467660322987321417994306603535944470472864040477360461397910822586905555045489882093325686449722025997151242472902544700915008016772893106553571077515390667559456054082830592790899718149225191685592437593876324034783984596674494555817957994036394298338343390827281447064534971133005772480460462737564138109715026590758027341139308456540136327204654456743589316401833871004014340659905380164050821154478149841310472896216657695979607697647374129458497405854342367875116521158551990030049823751659194694509091712942309868784093899733027877640338771843465642306255111463753649433487704973060164229378953027522491958744709627794117852853757323685942868544716820882641933911328643833288353804648073083327833141436689451881673272460967936173647637896793929813553175120500847082468823961966086631465653985704134124051479254319638640913796704706388904676088163338834419171617424903223590453379975394569238827303091655917118083004657254731278574601222100319084030031252970408654862906242863252902667632120441356304003695898822196945067658200615180091630293128728207643192480600080920825842533637823351037625334640058465478583598180140742481950792883031079697972036520339029943217923909900294202115758925727542555537682696938491071173862552485769232855156832998593259143668855648615184081666868810324292804063529323707893445360039410400899757673091152625867913769558807523960916930468851903859551938116746308773729057732450912377805587745445335458872161945523129441897964004216455577911908163615379762817849809075529958623168689067504748471858470637493216758392805956563282725754891523187694575298386814247447065423204037152395223538342696139161207394876895881952547861217888098576648139069512251171497601243618162232143512523586428503653772465887802772402165038347326105717293462103286159710822076269554924260608049828561035732065416194400049406845107361772685860667458829722747278481862749918335626073378173022463194434799751765534883400563545336291026430206947854922644970099304576466353865145318071655169992596281385921390113460635185670265985877513426172910797298657451712687945230810348424523000530525525801924445598787933039343673733562970287214708051591998114443309978949374498594424980310341889447281272645038458625154204653544906027916037644789979972324754333876458142514922081566325567456671076757950967725729888552470270782243913247581185060780305281428101707550908396743839181464125323079275316155735950384336031626107763665850860855379029537371940448264280910015105685777866480712570715923368232118342674510075269452228996935022285888450945677478597891384047625039629798278826978142991926162585836898190606824479024705661305410910178026493530938708213624635573966385067447826932126228356321011754367245000808238418796007429857164801137401719747336037428373801635352828070328171408517471594920775685025895729559806319550283913081730967000150821184282171066611401760457732979846752054040563511853473585470538087805971247148714866357788770440496672171171603111942199794047080922903699082277247536078805007844017159473148675490596725213589399243012472314886971786559866704989062939651706787764280401933437533281565661584868809412845084060081918283386188695473965017877353611224654448410228339958823371197741987008467880464813630687201658184612343410942740990744973592650411905973020506676677564366401370589842098177113414455074990500874990675743441265531348600909499436188611911252721123974179425420876798731680016464720059518197996594641975111797409467963099317794823308447002194455180092912153457189330578954332503333630747106437178420725579967862099117786523468323478089783084917469170731650789961489289528379801492338301832181341038060011015582059411229343156880633360151362281760581045143350158780546850761401362147999705925747646446089474642831298303708010323171036330747733767288435869881919244092558086241531301312465716549127817777762993576404047110645925166501573146651240050864882710292138703278418046399011063436851205219140990616435275252453758894061452714829912805170575471946108295471337344933268397201582910883313672712122907628619770958392019612869447563722043027119677610910868291546847928194840059343022701192688914406157252811465621330257671507969557509371101123047575237208966367311652886961702195820776555705473770497498181401435977495807751583368925322233825129597035423290246430778963283919017761211393315483397742400407233446934860052408983572959545884438455162743010266296039206299239034652135758592674492431330152504284167899306778112237893817571471032501057267940966886013830411598006171358266203101997066038762022502257028664737153411225655562768955663002609301598599122414366535060357465766575942122751949894946226117348721250550997850164017084052760988133927187556663173743029441743742887212027002077783859150734060757314650013533961642607471044558304574164181884822370460415027875759781685437075840650978315988684747847068214222849968554553368936521402506023622400358307299061598772721956487243994162279080492138503966260907734038935750692014329605722117099907883630896551016154960438231289566081881199315945680230007288650909737441350541343477056634834186415473857264693895789998684253341186650221808828025400846895742313032126799779975684353380062659091255596781187697178113334453122004531769627012498618399745288178939880673928364598740619251987502925156919658645777534858855436472300837304270763974965254115067698320670502746121464805092136699780420915120993332918110984944342728773651700441009663788648415004063727562783908490933941953043160465686098447086602353998201937686913697151783342797107379890327997945148108806147504592892466576732842858163281707480342182631092146422799163734126335985958935045710713109278420254348409786217488978337571596059705334349213705231766516307646311975408609996339937739218326952444655582270589982303028137427902136879086444102864940907546511591047662131852784339740875905622043952977721492711407670037505717635439176978251147303562252601721260741821856877019363635793220769055908227220025885782846231540401623532798520342003737282416693227934801622340750055832941512636568327453556447614089192263914264067147309712027672727708011109129853080026747497745895604130161388310872044255441304485925537432221033293018242961446525238408778815074291908374829893615358728788455801428573319868142075991345455974629768419099436588735219807058533422056706798100452813721047478444819574131415012140820548055904416174524115551703466163276913411404958736016256731609799417831807175259348104709739074910151382754771461094252179783349905111066815452657174249826090223642107070157839079097566347016354523050525619623913623704997168294573711909076896458014765427317041673621270954250933034374516276616544911992014940479903705920477904268718445520610336749507267672463721244497371951594501835318994297497036318919284587299516753709511282186900591666189483040723000575686310933499571983457944561201775330847834868408480359050195216797565266318716817507893696474145436885886448995059491658810268094929349490477636498028919284447970273054135744308842683924814491229883852785868714500904951014766889129565106619228306209489190502616133760308462635336564802353551927070194946255154051273243923211689787074546684327288453075226785879570407426154782108670709679187111735580389064920058223618490451082931466241830284632324932738623027301034458320877727908489902771521296213364543902252893382056669691314246241642924311625159551533927399041400807902653722463608562996980421222861026891421302974301214965776331392073638213323311284467353430041648346102890509829592513553963148050528839059318833268953999337681242294830093926008167233483524416163738280938594015780699344577163563065902255243673984737179649413840719594214154311607877383607529786415039039034136193438295760245813871420080794947047691248954853982063171182683760510261860677627574946955040096164356119085595196616085710545338654764143053968206191655641891316751985848532928870069384399533635105086311530606675649715366581959791514676942217330804466874277002796779376851858412192842828189708032482430545405099305872978422537492856131552658180220268861106613422217083319491117283423212274510305821855196806044145941042651245819043531558519826227731433412416274378628693245131202749904112394310961477843307653286630881030358268617008793996046471646214454668345947164837241299280780316724337540406499353517159093497655321077837677600951178849696608810877857287536492996348140691838409285906793527462848003810651500502512915424475007692799963995358716239679309238712815211830447949181101928980307227892665548921300628725189313613610705920402150915766842747302867909776239557562232526174797778857406533639463078493913361589084060798917101583752194363438351126327722623671601648024198353937068696307421459324421703388250066488632501802157174492669576985715015545711325946606405384278183263687705614955108653919406575749246051855486210339947810631855552404155194419276389815171048361437646556003366076508239324517317832285873406112004011748868480477654834090428762832313190408349794537087747378938509314345753778044829100775030006237635782756475833992199955406062572573733276381690268940705421924671773593548799199318491452028376921695007127887487073916308397431483668593043507723901750746622114928492463140787556715356916949327812266899081917943567388868989357795555608730927675991340071611589333066702928002400343772758993023372857265574624472846924748767733637435162775831793175595601693435342037654727148073491192076496770614117987608208549257364220413065444061723263394617453979458051866650766311919920855664441483359575075974115122418807463037384427519329170673180794120308727953359648506543273517015543888118886339672303890646038297172784636441732546698728405283799129149466394111290034034564001743534002905357171393002100425610595679968531992051455854310381300634309278088562105046621516887298768181643195838137275844409785777052346328561923942115115995433195595580158165388014629894930896822254010876328715293733075528987516173484721314468862848820513812207213908556360560362099199029909568085663468323649294705711069809534800574771359303543418260378058069393610594069616262070367191928099176536360378753967454503018977230735426683579459319267864289955465540064119696837854511454786280758704648216915590557155266380938651107976182625116360577458078550841986183951355080486462528193853474579954815140927669298536468142712851183147272234914377706622639919651948173603905297421889518240814464221995577295687537837256297688942968968152774261100345640961290327074744786674382392770895286602492852761139351634135094763015531966405775611066613961218549810189710384010853481393110083022341693291998707837538354913705320661574555287418361124211548020055182289114421013525516423667186897439736174984916462372311311298365027828912858061694994841262957543524620121767824380138926864799479335632678446086183777934392207959116349179427660346380102628807485090942219641775600368361179727195124897914540268116170706830077805904024060609317546648808583853920855679498841057611613402448496540798210156927926278259160834766223660160936699694903693177097631219352398221940302352699107556190319558885424557028621501471956780876389682705055784700534110652228178292116396283914250366917837050624877537211532012296316154124514957408067834795970418346243616978939412592302285422598845894150345433848914163905956492252060167154925298688490359391614684319073938383925584956420333004660544644911881635127097947137017880306122150106150118476120988900313258790959482066067235572274610248689651283916817151945777284928804565950544831205668166518586344560218836095471103320600772929129315049990841548744793685724877737717153190830698935755363391460943893978167623239824501380659901533851732685967431644210105084526352956918223372989340451711598983462213509007560292835603262175977966907666965482681387941628566149990665070282974495174749677619568171547841313251625699087940299790489284551599142349235078749719640899483809805747993836485531786928220261511774834261053762738599204778543544655468869864415927793440437601331200795005110657732757735588071720692743836916065770986755741402581023506657902973140836774298660153506858232053644662785393932406118734331132308059556757403465811123171230565793093911564740535843126585164572369169558493411987872425109449438100509737530569128875229568806391869570921149943907836338792776478530342106429614141304055562028101237258012758154553613967891271890254020707801324081273441347110320191759504570015920199394249623605794552009674877113728503349473370374971673502360684277707427813364637605237850849541484184607871168532295252635685373891346745143727894356826378015005601464884075027467313156343790123178864122520483851114977872634027833042535833985904637004461580849848241356033498161214209158478591762336233586055409550690323480598808695715171959738848771229834417998504586673038218857250322257893120520499563160862821382172669064308036017026074175075166509623261244442042974826452879757392655442711314173358246437714045409185492920332701018146920238601338266195530481067950922644341179769030355031463444485293793925604587014154998273998312627764638232697896259920007925436508916958092195685153066749359718454115603124195589296120690046773899933138062438243382213248409963982473353501940053572843443799458465355301847460835264898310842585527064151139678500113414373119010691646317392863362787481120833269203505383652410800946543577837252185810511595697705680017483580211408335437425035152230187846181294965048815407436347678170124312104233553949330975011610381030050192680583355504319627837741295169517610005249443491110844960665426794765034135790019307446963850308217122223569019081681500500731621668577713532134333968919222104587241162938700002700547433494820775343716936657825849071604206504227409649118383451619826456361428175767307581464333989150264119889877702819607578124166686264352029534399316134355130139387262165052818292115189786659989593221222844247445298659594470929668500764022074345046803678422688566306561830453151040881941429494636540961822734788330689926676379093523066630990889754916982790431259442150755969189833902258631684663339029035990623406381821079675347539697594375279562051033361279416929351722651395305150678602401643927293791622692115857752847502928438238399718668531351024916865612179939675786325892225508728248010287866378103050824355186225738940168024036551720603232436475875908061385880738657413005341735936670072018963226462435464716840775247371079777548686464765146118561937969445058584634197465062363035202518451881519552173623557821096927597894856512551761544611686909059737718227928106869574263096589305134385804271005230088159118715910802638336898036579995621374281847993624332930737633623627387626937633565722074961131149356685773002423429367924476737150558971891576979347529771743138024532219260829309068146567447217363039323123050330184396271731133924971415419620640713179565735210514563557178757713640617736754713968247392575006811518918359310343445853564921781554007833156609987374737031492673729048918969160344522815009591077926639389483992643096387779087221057013767645863710959585412889011731202617525627864715064233639404606000140660119931397892652284879356370049544148117878887861935754772572672025001866934244646077671387696646969320667918333219150630047649021458181960078765702680894127158611921490774786541686061757621938363686876848551549280804975805205168000685650221368535064689549644234461143650940661871155789928296637789067508750721897620862350542541673440569855603672559691449835672997919918839962854199859826710502443863372592984272121644097076335444809955742262894996005141195021726218602310078250385295728900424887859154848075558409876357177778653572502062764664586333846129351946705630501463643171978480039113985472071329103072365286087696983702531816129953726995324476796422718891177318480860209224203368946811469825794315335469551737551586855699734991851759858319307736244926113209097157043147734895504693358504394421205318243974220688736531515107483128662250047146441746668596661136682435937154612933691359980877025404820719708696977445899713986149480825422323223373421027310708256221890037211335686372427282011885315682630192068976375820327992085886202855497213176151301666742453442799712238311745102635024175273677108890922677859862818803406951148368815287658138573707441486638196461015706891480962803643171989162175656312262918490042613983028639548054127104422342274968731345741017966323571735414707480698667431969992456854647409857214010922951091932811652616327948922734988366226609930729721972004880502306648682946993101319084848577388033121587501796303893670674575143412180275392199737640091469598311063133647721577602147168877700578421489111453032592944935747490882834041963803601393025106917249575232458877451508940185564095982889858447546289002446848528149090744171983038911124285132145049402394918870702004826659699047073059352675932266516406364960038887143551995423031456954348937975576269543909656237312273130196752639807437777588338777009799488554836505473942503464668450869621689021771223149941472570658016483832524557366712077572300493776492578273251443991222325125028050931619384402431990085377365681510676767477813590313182947634621453189541176528954378392924919827842483130667921601034047892255681566396080665145360286967230557973789459392225355902628567613675928330208006113677313073654485250550610762886513312601379916636158011452760999185306127048459845205451684811143557714286100195355414607697726554998183299583929488313123004306625251765828255152359598058071002065728572720041405981654329575558685832482235793720325076089076087297761782673572207279677944179906007685388150476683296114828276404794634036238227357293918784841943102726392815738462110755078580353641967543879281797599753439798481979698497326574853051348226304135971739016466815696848776119387204847336545486043443489233076209532903602536532557257054303837257099146186302312128589245944037484604016050235231971957374535101553850924108596938137178839914251049792826705818408000637901176487239324089780513903528136671346363575622639102931887767897579221410607999834928291590142417118385585844310866392583717311714586519226117867987948620949291525036700392881762399310482028462765938418398007568354523439714699291556001441270173933070765832196837135115054940136806312911851113447479984114819628815505128785072837521130626622896334692960275378353438737767918653011414535903634923229359818507528372593180049766171652461247229577770905631223608025653985006254881858853793751158879467422246265785498370501276351750043884201608873353552188815694335365945578794028534854630038540698369673414851302393697857313008409317049581322948434503533860093383400923128235780817313969918069554794083169561378462994645747090353567929921901077239330313685632927237002578703200061366265506738048514755961936435176759116025996945383184739084013860116033016872880379058172281246413832921700240818273154284442824364914372459171174943512316847095794585039053461574312452888930526639458934444116595667930579658584974407335801653488545440689918336142537113319943368675498540945974678031854525114708698278102023524954242055170637457634754655259151657321675111998495062884171451568939100297892902142594511612228460880994862541578986000911436843400011360823047412304138788589829725819518360046576370079299769766413558739800265639731893213825823336006589231679274643093407786117460438188575840905589802636301769052002910153508864805094150603554799824061338317886541258907839540664074249332116380251813274588151931992581158820979847792153574860597063194627304363721890357703454495185167120767295143998465897682814964888767963342306828716653551814480073038864540510195247385733409023919166179921282427450257880126780144048631693999790598452203036372522153260597437406286998580040372396932845776026824191136381317611961336824935394365231318428450655484843779775440169109835085923466443073015930155320473967853837278838790479264421315849716779221392670880922499080290605282467052395282751399971361778290335326481910222054996156734439090921768183072735507910703940304892821584396999275056390092658061537059012546180609839887257158388142398993165926823724191661961824967271316057766687596749123193671871280576710196178427330311320297944087405290049760653144536332249317940884162370795941122315909911618981908231824630496645600248674927813755785950634831583093303339152603726894036217777195015164827426445504173719390805449956079701167001569530295026717736635601486020376000845982118204817468374713306268248329692781944986955354591101344213981161025256535766406106514147633853115777893435826842801931334658798151091131833882772595624451181440707240405867607486232847130870475349654768745067551151963403524253759067735166639199666425251434660728165565463232505455501245199787608318958375500875200321686508014342436693686300294015401061926717698320362516292455511451847840344785865439578303118129106145951145858022155182239257313108489979665600263616419646215822927245074760251778592767740640020649719616251443825219369475788153430451650543169604121137878170078777804458692617639873615911895625863017299716152726819667981737346886393596789096532948279611016091575539121203311347742861006440123346280589350218987366144422898444882823456342119066037976733192605835700848150030961688982782713440173160870359488692759138970326122106096747795930090687063144871789116422383818379578408465417490798985986417333016885078572691977450387982735157142963455912006604581969919497963615628373833039369789723674355399138760469486807353176377907255502311005438929044833830311472887841903661958207793826452982885542494664705278937489241217375252533881229698388293473500605286184541527265237916697128485109219987020871945424811574566051979182405324350267154269692057780050423209777180363564637001182171845378429956510241549917645851575820053523151485500586920132606427223105494716147696211116381190039689284250180939700376946954420949284881291971302110663048640527418463843911725531459601178637809590847035837494279375482362453564430719111877324221443386464116933784025346609911755663676538039742602578638372953111733881017929270505146593635191248917042025092116961855652938372187413898431719666026282104516863492656505863102040289384624317747087402169263129637127046034521169691151726686438063452255838887955602336596416794870508246202235815148681937840206954728435529376806549424783630912607674314634848171332976538550078116664287787068338299810117708704493884600083445770746741773856462109841544124839521418866281602729586813122221727144725361513220925312806406982218639257732172711894881371159483499702657450110783637818808633281158896949000333077993208554203416155691003803045872331312037781901011780535811772584009815695261622043794531298299492610234739377524088370030587388998812481026236442273738405980635348605921903339939400713337452507394117864130908015471093921438978306394643559817346177841903631777954850259814389700244195575047458350205826229224402655691613479657963010603531888836536508089087341109773981495414668072007921596058145972684483212944889839619624120949536966521088257322068521423991219222679351345473998125108963103902163037238281487474439550016717003405967156720381361131099639354558129307455149959771734639515437167675287863530767174214697589203673109669594971560866924285328824432523123267244972230773845993084644554418650714559973069889374174478183040664210278333930808325272774199895432009730587118484913299636701054522334193611357058176645770302372970288841752708541084695937619326569683863866467349902029434543990102503202737513762527806375871688412730337851725798568082102914032296938063673927691941117482644441551574367942214030938203481364199557324362460574471439555533786117690744340820673248219455048367247548684855570092519808106584095723322687167048849191358630613919994769855545823106447219890012922007757220245291766546325742179660097471515428420085488510722891932684185944065781377520886615807850402470973179105554019022717215422604182841426833596989017420684783420472723939262870594095319370747389529336620829223321994465829161952455378954491927833619122474033114600275412931820979471787975053425566991862254261796262783113103649620934787923844940548906354311773354615759695572993447332454239797577036543562574882564091103066146684880253238660501044466227985111341150417439910240761710991848545960625588163666110973179010419796753964164711379157877428578564736022405489156840306711432603536105524713755153966141448070473756106250657665643864446967720479985745931011834244291393682997473642875910554078573886303300914132885874293317530342022943189700684973376743954850080644144193520652003275046247365682496416031692217935638156988608086136625342687913109232964244676224731927068185047859517391806242173344408291221103701406035893523908866978538076679289593865750963455855171136796398932543280909046282578154576781054047333455143930025699954872744003749527063613261112761979807457602019278805570947133629203492587567257992164221334122570532781247449004807207620208325736945429063694052329337115991987852026817154771632670784554892109639495177487635853026952671697011940238324205048408682553259022849827018829797387463190065356527044554013047880457389873132503792255510613121276782696257628618151989524391898293744542293698687902081522669482501431154500506832244478796253400609488783235404356176047194992013626618220967207852896425092274712876971703954236439958994118482704084408399121285064836858945341751728199358537576284272448663572695834651423272948154854643565004825065208357581532380665876084195414063321911639264848622441104682398552251517777544310239042467504067263682959224757521902311943859633496583706751390121385927816277755947594939582985543144065241872708790299545269692361704170363713294405047313972247399263640853444799888685982440515650623639859777944210411686299083906990115942048857736543910894160630558963689255707982770921841562832603104488575789403442082248043007827074396704429925197360412669122569145006749410554955423198042590461853158932763638108208664295002057722397284688850989033496422521545023566375054130091076583040107376458294485268322804305011071841395141975461542237021591252480835465890684867504640200580666617378379193261089644547567188649224957041839331732560938275529927056968129648201041572761794036049838932071187587201006532402639736637912110440552748323174893339684130121869447866288941844848502152517878720548145332891267969875679993343226799933909409709009061390299828928031066395287895482224902444192849879735099820147517443696031611960888922229109419272585923305116920645263555071264305519916174948259451449637351010513107306261681898480707632453568431268427702462076244481215598475276236745425966185598276695884145854176140361786108331899469224483270983664325812981657933924469244847695055728304860645224845016349032521478769098032130328857194124037845855190725606346311723217490379697505067002562332065226943689164577079541887596827772165004339444370302738978871671097556937263281301966619251609768317612248576745750318800612120553060146920915053444893617861955340893789269128371842076225141305548513179912305854349449892328288405946095733691711653195114535459691039775684833693895966630010095185256938476772690900210466557529901191484356033420980362307726022105404365682268754102672226085797548030072994503278058583287073664845009029592756749250847127173802596634300362341491913036764797328082929780992922306590570658481356832781550181541749514743736756057441430872381892619322707132872175103715358447129664024469495097516136068049628392174342690857047734704052005724882930147111553265511923577108097789395348302794699217799958851161931854983764209290152249370371433174237652294635569003364684807497912737681973374510677569423749492429560524056626176483977459747742535602449285026844160086449707923615441469444682642771564263334062591033160340475559645084573573532963821210884311294446157749040426527923952051047100281686082290314324875865535314920400013554405182934515844946678238497237089627711430351347189036537389816691424910516877397223749725325049750835247134835992500738789766937837360330387499091394602740754698545502370437729605324660141495212504608806322240045410099021141172997736306384376408836970284381771260049473728559740926372902111659333827347910035545168079290464684802731694603825144014638392698056833093887754138006457043164681147521232028607255300191742026342281511821344418215156121484571314310347916513877775810734102153230744456071931107042325869374950315128022586209168825459521999599590291704873560508335866310588121166509458127078890077627960259010059395948920655086879465081000795981316865230527107538343749134944775394182749730028374625232114251621393160993196816752168703305341781594979163497907547563017014439644853265384185332650814906291464355098288126812819479244434577903610197889157488633679740433981202312587473069753173403995348469342446115168606927402083247828692399861437204440749102429656826853331204834876308003694779585187063865280465973909048822907463937098474079684971642404274331637658523499678842403948308383585264309892010741662961923543456032469407358520151939316064606750706166895008201505778230397565865372276345366568599330707408787287232576220058291109411110024581267336950706538796125257526051664857502664495954679058158920402942223103027124000621695643982906525931410172552571398105980238166820365811203522816472861423995006967001866537877362515136575245612874751828852331541285273324307850031552763152934232537182206214490442249637221080627594120263223947702591393075120612234676201638033049788176677652666886331550010984482970660547295848249721719923921670896560142951866553870139174396615069241119981297483958546204259026466837921919859486309190282456811495497118758369219573376864771266673110878249520923310255586428245425569223911704111623037885902449453849332331731479415441985903519446405340915547479119376917547023551514666765828115783514096901574858406748516571253183408173112327876966020328354548836653059050120489307560722238881678915343819479489460725217897986791643300508244602269946413054805003608055642598015049234730966861108542512697375105818783058701385596271288336848693818986211861512028243907447478112369148126268494122389750338039580686158429165803880477696499366164734562963032055388355362851271522874771033204487309998614452435477935855714538782491886130655305450994261962976421525530352261325514816088499056920985521360854906898197911517971679441386894942883260205438929939833573144465951868585650608796079916393854445557826785698725593626622218359821804187280161765179801464111677009159434413714199569949468125399477691479938860764069320962891697801420560999691165430016381113753109354944290647482037940281007551929315142172922036486484006878896615792556751149930986879712566228390438464416334146254559047183508060575560107116447715098116566250416437908651277435536966754146738542033496496617136676880547431390818631964114742603134567068425744069488429077843805997012046538244627908165988297032811421440851210981521152382056349895846991621421977829331337411454101851472665254636365944330930925453992857123883138536569014587667847898651917757339716837781326572898238175070312396942219633934001818297337221970261946671646524151952570275656398757415102911201662626208889206779208580461449746866494388539811137698098647100658079446745820136914884338290410328682750617745539506115643087907108159949357715778464437523355934283025143650395787805439507832186653181308648672405152874420676593370817050053433836605269455816217725837893650842924220928641504788074708172532539480833278790955982017646389251701008353039851781174482951309271798146079217486197576942147795667196534526392493317272751294457551429465558163539596939209895507328691081435203969491806091706703558759287196771612183663954965312891553694456968916397404781288469531999779443393117878201407938542645371670123249379797140109193199615456363295184409395349067212818297098996134162489187245022790084073895255068533175615689416687578626256199540883924217383849109564693602865099394722132692130322790274699101310339009135972289073537662669166820619759428199494191401104811051791721283424452664377709015680591796342470411326067790768758634837100116051871144594534032820801705851906805559074400937647943055281973050817567206654288263510407038989982964433247951166945468470131213561928076379393509066846311646977769213352530209628395264810878272462290943823424290968418987668958691753551886036369950554682896390357402491227581770800827857969140105353760628243875992747742386081946204300212812536077931148679629036430819381190674765370635968139516819359798521008400615730424568016907020353096835076067502693242025797843595894306915595870792293315038209832343427815628642090460585304435975572993498772560563173324631406973519868436434333859216126855106500401207104900258788819861006807394676455530981901136502974330551479934987306648680975371951045027254069729978054787766173496142934624253573434252199686598530240542188639250562178638461107923953062990528794720126428507309992315846336637112751278732119149042440417971748016157416791346877991309791198726173121632205726131377840833272976525934759683559244216248062091373818484169358829796299896970594027352253814439750310541686798747667600375994037788889810197041264882107820239211508780450002677945983617653645488371052203904970547912691089945447553123456340998376476440637018634019506186360703314904169645155893004716114589029853465056510496015820052930185843105222717428428032713938604840133822791405816569165174385136316465845250252808988103474102169534559741986948815030532024493452347692691584908465820794556190785863380616582897640100260916549495000081308590897210064185130723620888758169462877801894377936611261480542100520037541224019293032096351005543618748973353502595771777402923954368583891744056964084993807493906871356772593120319018540094778308709176522284820615333055548932095207680976541884907347166458925928720084697579619390738128021744049404993778874857232615245777340833260244967035681572126473709641120594876541101919706450375096759907020682953948011060516165166103567869660206237789273279307508939937542110864249250337827361740981145933369707182524631167040486642078823155441022940321167771821020172216464344555768329312699786848648547413574559818957459498848408503827205476604272765275435131901851694192489365075227435876564266128953761469383665644688407576130402302677798117958599523013256229762727647256922134429172212904820526611158196146175606298619355760530263851946460593830166980768396465853471431485553461278429522242162497048280519463361423722234433172588443890394368812557493137023578965112346361232580681166945980157574536617930578429366277349320410712722136571106996247126879859896438565502026064343150426814160671752234608734011410765024628464133707102285935786077281120770089486536828483148553294011760810654396048783785329273129583035642426440753547627149511371933885591552199113268523673381444706610702792091808798140592881829174084807702054760517689315999369663433600684507036620531655373399186231780681257629869059642536746701831403346344172229008697505723855827711456541192566395427051696305683576374496874237591425252689714762974166863627922353143645415513043901621436470577107393061730918372991147729744306164630630749179630566967872143060614050128027654079650417567749735014350752851611231975157522239979111374447721856817109285494447600204592523339879104793550674576063909268989755865363971848019442928895060769358256552032682409066729340055080048527800054840724596450608436972456443780664484083517517935939578153628259213785547719385438337937575094888809739955006885767525247926230787828702960282967157957217943537463689472757361334170212553474405282096571819295712794428491776295311759287309390759082639994208635568078926379216713120922011769141083846747395336647447835020323728478241526750291644037533952961778768484785353111172133803778904228187209667733983860534227336971576033846361157431182066881476808371392600161550516393476466068269441550408076236805701264528824897626028772355901753597097107255551747624144968077765906096085003487566348951210957081348024638199465251097404126583563976675397127000455725584702593486944804258567602139897731902430713853084922224061173500258542894748650656515380370854807244720280397915994563048200083204942559439934705088562294321737876931899446829783797388647601987084396037023525579914254545189118170454476700361858232959209804598765374277749775506706224554931867430995932494861334755671279687536704479277040376123989627110547505715792959643016272968504341276629861168871291828600361785945085191510681142561027123795952661124476543261349998912939916127149807071986654617995269356636809492346318685038273765097071289237644387888381920135621646338098001087467692467717843766937069557663436955690856229361550502229311509623308833191412184257274795512045805235734086882245513225020598456634601273185884329338844239547556398623904989215789970544202307410168400265159029793508440498446889566379274623708123329688075326412009633148305620933347677005900856603037908910441833560389620220657705186563692683510505786028245574800170139924806355015972991303658032702904211195092299581455181095475243919467506331456046889048667550142346560634670293833958720843246877692410976702911961339575782026187988351749221499153815228768537802887883315693691619973833630085917101229153307613454894608655905190437456752468414026222359615544426844811061276065751275643406879423049729250102972157856268046315604026307499012035646855990217599446415821431537250479417202353270974943995573708256166607267963879901001102203557096305851653584384724669278237561902102377964672726854724313211780051586634778340971451389528653047853088139562805078581942503566953863092077905110967574656013338975663080644823922329880696221503399309766862675117360524018775329621133106143553291783954323555918986069783587952872239786202454644726015427414551443766131184752425963817124813905074277028498147352742358687376793101935039967335551628550913932943260581172025305386795813804833315637476309593615713391717764922442419652553552363546157104604463160902802473048904427309221465295465675356160041931038866970294733931798261567790183076600860780064209037960168057932600967694917345017270002899952401299896494973890218786989730134130586439522553942702163694261763315386930783439723784634362087755329835580488057648410237045738819969451667463844006144600800359722671530971713884652963776152957050554702269426323639654045883244750642383154112905193777363156319111558897646125645817278751719116363612904378391488156953939526610659160734842091174514300831136567436295238888079122503150735945820855339480884693053067652886285998018594396199436104094852292327985386983211040742571084049406256959340051923415757293600619409370786262374471852814152699931287560930793447437645975871469809641690908802129885717631077592718042977997272314397558315026039806964102521903819699293690795954630557532240451409764347691191648575314008926106165671700420078827298327343622255526458085362395679434624595325278894346740167064080741017541025694020875047876512860161642056078804563440332901764438917602823986055767739781537695798004626004062456172015911815180355058698401500883408140614511067838491336638419737955546299169047542343918347610819320601370215650734285958429323871299790373043514971198860856307970927243716049110872093790939393565239951528801406083387692219863610078264118715190904544736264676751269538621574524678827024759755029866176939298012763764509172053007092991931918740261217602167567545008852335930949216853933796830169266083929656107391476263822558395383120424962064659863314103474793429403126722399064312999557241855488522197421401269996481572496973480137517345850385750878913035482859659025389219162559917911218864465054315580283582843068932584637683576935600031242487935413252044589558201263921931070744851748387112825548490710757460314626739763702943177403342645132263922166425356677540919821889823375872814646184713053421002491961026264951775098340817380845300139452781713937314641823322120828345946115407746304386024363666732899439067898151026050113315146815969773239442288403096038829833104503824192055198020660157225001953818197683075875651224979169316291640967033498910740950148103609228840719923526231495247195476890749756755844670940995351491522115316140793022607646258498734868661153483495096118781549083047745671789310635953777654544892055085241083997289230778602842715372294127791834922370367229479377411751317645252716052420626895546805499123961079425414685236358304037888161530782845899431903074011716381648976438589270418931082125138347868370202715747465772657210370713342162454337111325859418055661972575144429115409052113598545785284845084878395658897592469200140172558902112663377912867480455014147471154212914136670179583936603005953212436990228250450726274869078555199309512309175413542710875205554473071434774483301862377422468555632654691988541573794723922681997364052569493893466166968800352952912824060577210918892482030273942320613390062696077219953412826319731395320435327915115536547901654254603021879681047451283687772948867518272242047855921928342175843381617811748230174071705260366377874098054107940489989581868383722636143888885377153554021275381101556576726852358109458713322590177900700514267766999177470411236809385358640646157680313027648134489990899301529689053056585820973739099006976948130598989714916385486698089803898117648174160036466888266926315172150377705984451251453295700605842891731698229771893382927851055391427593412590795216307676504199236619559376259416945516153636326009092075171067010793630608364823501725833062862822350241118381036314423936957841841405450346890694113070868430689113699363776821359053559968944595439535070887665930613893908040529796350307599895153854606116436681782694379368157943037990620797769981469218215691014366703126347185843120202154508195758591105259123293692164455565672675906833917346646033605420485665106319062034530611665679020110026476153771750433696938078720642101510183901646776528203487610232617302931005993182777231889767479841299922899994532112561228826130653928157451739748063357598389842596717089341285440934425339965394887020498613026738928276734871945410326913433589995142788314299907059253543709116134926143538840641703764657456399843739255965037579026979957561366141474706495426044332686633228655697486830391867022224446859600160893141139187516129118172184615674253887790129347339730191996137328998889892187858761166707504707222194749294034618066385418775194974829897728893843032392046844074973015285003883471396356050042840770693236951103451542164167509606077652243453580560584503063712579435200622653148867377962025074186985601675587761226914588704392085695776854941508141933105884682059000205354177945487743511669914919998665495894066592144960618525654722635109558064536191560975796460280544608627046283875313485101238699517910572538025668878803286787379790434946251949651536816086784576377867707084168118721916451287260952900260856932053189716225637620576369351719901930006066717846416799493113348273605573975219872962255483274179992134789189375845202531993561404134943369147182836257470033943328721837090338411731297586345640375278628043582837095941785569336477880243335263187155687097467954134819916792168753627438475280971541198438034758631630106853588062839378342383972030349467000460491523820701016085125362012641321962910414560803890440939852672477205082211444637657995156401699626663782400913093314649259667212194232639845114074706489217830689153494468840702162586469553382195606380071854041335854355239231926582882350872579256537242070551614614913236186320377611600430977678009761247755945625683100510723283703171788046389480557606674835914596752184870588390503437271609293324821886175985222357077827676593414195380340532971475908517192657159601234862881435452098682615856623578898444362514441586229828399918357131936497277258393459679967211724799506287480601389072845314785296645597230104972514933661893932200840657177401694711298197659351664442628188198124151268355215359370311964771011327244667208159703932952388032307280171674450636251925113176528314894204469755669543281861315145658520248617252830223112825966012891438129292703521340097531437943044858848477078447332541119965960204705053478390711037429471118507813902914592726399279804517515557161447126584689072780686796312641758809025307098398125366605654334274737931887798725861796978805008475387448633919963007776505130310646425765377543298002641750244277208584181883704277821687126421185443658087487941301112348913557384935147010191193580100350889896101887554111059635353800238563319701137382290731165845406258702839105222060347715236348419903240029499738153392203792989614477390062882337573196934369763313854564360783587836590439120795161829371599687068954432730997175467563086760991107001789598915294793031093527848336744227340282120572156660499974918197646972835509214424317035064077890138455522413325218406617306774190424721292366240828242169447062528764209971646433078242681005283526035506419248524549457619020281423389128141444495896066331307844321896262920245774734545469501244016493797842460044954339297456590315829516369685124247586916075803057117340678466301087077663596388602701760682622630854486571949837811304994522955437418041648727765780813787352209024342203811341270591337132808790132614614974683774425933864137842990957332726082100845755693977485798000051518020351599446238967678980233718645035465082409588267758181315396498128898825257914948001331240297677477570037782914639045130473382320867503064637548991958857264290577698847017159343119753944399885843081143344194770024879788260434741292985383531908725251771185595048359495795520156145490949334998842265127660261994390162586484205347421339533432812558280688407081303771985142429977240348701492234790306240576674651260886963015909005808216747117701101968508971607397446879809817981951278276131339998458748651870226808414156957258555716656929780900895174740415697937791645550444401319360225496856862629194320866382603179150451768116546114588195420068294597465081735084695601188607267515120940552316971464310771587162390081013894178960884370238156967244311611826241880308357151938987329791551777071173240379688524653965327236132722573230177245251070243269353930071206727518952067394534850371936255316453300207200502742760960080751537371172980449002645297253560477754532476968578313844646670754316201119770785341993008277658127039794339451722666422414057155766199579754498286314854988995481726955684182425969796714680943463860927845779809084687948993321280376723030823793218218169040010535093179880313978762644593947080745896572544824626888741238629559449301884868134772645545388225478959037852847985829179201092856860393696704049135760213139581903143529182448569485734484269625883844335983825055340723070439862782270192848628845765726515910863460525919415329226808046220249661081885062914994498578274967749393942390833171843641326809936567148135143920719135511962901160090614310019648451125301520807115091212239643456584659206870036145693327175121954147666093575024095871513879600395559116815730315750649234842378105610709941507975609989556746608371412486319530224247700618745746391568274383441776409061811530639681147013639401922340437923414751736554477942395490390828290838099945304976934518438611336503482521348634717754903453702564696058184903273824368566628563503623134484063031147492804920915451375845648529023177688160220720971533409693175223049879104647321885940822848864466440772415394365744953518717973173180893719077363792768471724042441918189784854297439236143956412418557710377468360019917387296752837171615941640170520897846212713260038027843366870661386165884447512434391647725252212456732676646201279656447470669647238435480502976515880403794941069725056181396694886398031803796070012777551820999083487570032167210470435770477402840771836362376319999643872792607848635817076625593729890809859025283699495054828108737677620454891480881081090493131916801879978578437570007430425509311504357692834058092847135977152548288477260225468291207765638306661190578301710625448829166181594284699924097400278990510276078734848134473887495289125102023021821201631365934065217570882711982552427724762861330046209303494601305701021356345417038218042763584628352007251070782773401852358484132893027035204803869626794804984512448929743003346407952659626519494206132654852562476565732341738093674495259696128402087668340793382759071343813447017382065976015115237049601420620600081526062755058720934670439038023304903524068388719098511713295831123694648610334520337909644433892567371316630643132018361755318135083917266695846725478096692416891823543204187518290306105617189015220976934667121902639114067525089479394420719946477611949559079776006379766119793007113867957856598398769033692794788139951981779118899788041012497294646936885317183033719132117767887855054660957320760555953221072532000691464602949019751784844137278224415063392968638936246741261805802966342810288840228222099153248593252928959700803202989081661756313643389538443122564068514454168887095330997711543905043889285491198767225484923461412138437202574434554118661039122243543805020409713589695223204603772354758240018096346687387905862514394349321765739280945181605946836334848762796846005800784003795527542762680621085253456515812666552684409809402989596558431233860056869153551053026011203185867540382188437082851056188498881268484856781156923872438737909852650551773104397743052028133683019559184908095931987741071568028636875709373734851216297409255145648492942576637370671097029885085004147007044119718971775947454877605766003336118199809209834737951023360977031122298754900540047522276636665973040025909759622882817757273543897258062902478638698064362452636897402394953005222967466270165637536036757341797919939075733496394975054381804484225179597201868046379578289289838029348419020527790846000799404017439558584055716849308239344043541709632888863214148957653911207404791367492261463113258084660247066197238784866842709196772003344693493197154375026056104264838534929033593106261566517307262166171681843281850997229150538579731658803624511473071992587356524069722055028893792895702029780024583931614924846565300580716293469021640915992805694577947458003571375565536016009618246638731341981041832664270914254960928167410623436372789611973095332356465657698896977136370286547957900545268770247062927681399909834551451810504146894354941056041133669810272023981129053222495532351643197331011155154157402000668491796616177056248254242157626125576558381545547184411896441163999301899421005967460395899293229925063654945483853261593832512255760477801541675038870757087455597289150962475765685177694156379961322073432925735676078609916871060350391545236363833183145853815316283084753296450117781186726158892328937073859112225862836664724606376629216772261499169054711628464088538384505154062501460446038370987274324267282634810272523332075773052749316657068121890833954599744599695584562858872963412511315266840508379617159363199406895247968978780873384636463832201085791215644824497548630251507195550696560364440487839301645225529888831157735549579995648465451595288670838031214777957870949676024025278273842007554967511726961396059580447363019589603756304816781465584281188974061099962709986414955657204106658979790530556193989629910897395277051637523673671969182459649101662106126891383359614068254393105012888999723772540807874016308431781772085781385195155363981747931294668132186821864394764652232310080469823777873867561142837535062560365373861301291141707651571924220357792104038268378135488630294807084798864767441121491277137384845411976547658165564075241454737664969268835737728981122822218343448845446141794833027508965925992274565731468456399520547453077551512444246353575852377610189548919963632801462014763623619465022057818375122219154696759892921993375132149847632247479950387404176662564672182794728116713271312597245535949713181855855098272367770054608232775332392229377642356445872449391483427597796475986484018909732707672076318864586057749728219338416773034421878109507192857834573808164299461544752036478770837335707793005227630902026557848440134486336324778007643228211739558417718309240286794358589947417572820136305271193076279962828273501003785901585636027259780005985616464534512443052046598420283013427881494600652285711035737125180084777002177221282435404648856265181579953244516298412983950983211643248851285925623221147352321922364105195435890058954346437105514394880788796833379152512324912221172073286833781042626871205918509985705421944239118344492639029620052127211364249009074290187243724498684681715662679075555773141677702270186066759789530311797949970741241713307272847245064362883767037520062851635633435059955274461637903649027327634954511912834371345005832067708849896740870556547690496977876969922479285513669575457484523953606915470936021125517339434782814930810621160233215967291635285647420217040549834851074485855577996721642226128749125084540465549328154801000572166928089341805250708715074374634078899440848432810686969143769007542272716124710892896279185947490378175183145731864446873026835543170801836335278678177051304768141927306574773166248715362726860357257767347872037729150892347991186803155582275661282307431045769124693944321862962761632878428361292546518375944849934347122452364583652635730017781844710052776616781924614288929062575610179813180471691167343027636028066784359511215749956194763629796260818841842395105086062865346042657976986526572735092913342816698226345618289967559277828690420459800760362403873241400659144336557996846486857163177748330166457084494323527315693722777431450423864144285997901758258575671849476733881844836398166568713442942627342330540520551392061164710987228845784079725627679982926586847913335154523990939155323268771239943266425994045668211597655043101444307272649938211499920191874840293061806214595591782405668843055052233630633769067707209426165302975241336879959762456147501158912231138087890578178184816491164954774632660720744864821105370800398377586617465391490620914903456549182451808955273857716612539979616309168308786999502965174004525162652160023666783921565702847040750334823685188450271670417181064888628199248697817081841370269756473534271871311932727406406239205188456612567790745205373002405049749219982295126454709920246811585391516940320619256997522516669439052947981306278459430739667881814832887845133731944140567893737354862567745849494735383370024633723570019465163362065859195700827387914660578501985114221205053102187224069685225886868533394638647745122658482834963851371667791049316126988694814447743281305822943303982893105869964249156897161311966966347654002454444691898663578167345936384848884288719850475537632463571638130650189840312048361528671803862664403929771474269171560480786009732291874004717585967616611929602129681126976439313292348713613268127798553762230397732667294480257143881308258306999862916187271922455409535391627977594251707836974661965585762745909135100440982853020531109294501959022456464075828710081466253747863613096678434765433586462149092762620909084348167546993090501824051662373926354547349023761907613627195475039771660249701132952701339494389356571828664215410629768502242563660399283955156823028666601846773592563202537544548089004700281721038701536208604613645355801303388504771328323660748537290672706706546636044311781698787118328574336519756856119765462491110456199856549870044712919632307165105798838746694831775829283123070375521776989428684050011903118390617826873977985017738374048453936665177435260292401642267916453226777249468154277167040979288108172401266176609235111955856848547612103394928078902349902312092522599658160427774532191338400934709191892654417941882183508579829742312484209334790617000001110043601993664538980437994575787427610940803157742828441545781476180581639443658544028067697255584111367541602488036187358337826634621878750335009760898433775767137295818635413472012203606675462807699125835030223912570529467944781119892818389668804508935146428735041512717723404675881698334386352220259275463165569825734675283258265486581939576496726901289890876673953095186951610594446114965700951113793321840103256439797893665826077688708768221468492573640585974606937227279673400031266326326113095851138379639232733498465671307484184616598099103948325412560320763226953758763122002180327695494925476466366448798607541374311599139190617333177015503346742571577763245203471140249906195533008133401498055097318704246075306008287601415309447384059933406372834389999386450187431460714867114044128922487863829769488922894864491565089585801834436444384096937589388789351578762239619427332657578247624787044465680840486457252980580962358226581136574278463750531722186131607829048150661723586479728649733540406279281745062638097469727322532023838125195875166599134414818316159392101591126235150009087357710166762295145730328465599647929126976852087311465884269909403765707337744212376222191393081823451606074800074698384549057049895187861571509372340650284069802183025790573807598034584113305538576943770598285359675538622013481686123886612926738019252624351760221509506678494393697232133784561746374668497840767112784453868909038836034880017853854373731340360669254602296689740228337333382767040342752955298960873495501171285923865213809262845005135840203414789133700391317667756392510846388640301195201788131991996433366505294888701202472663748787960557935305363894335390554938359450270621672465245767674914521556381172675030170433383360944119426947985497881374039808208507145237165946721502136907548433399364963831359699649357906025566187056200499288009131342492789047530335419922746073102428811256544880997190128342857088210945203970096011877103076992995053672964855729405771931274671750777189111005610369399844890976823003788564817701886173790613257724389308674602617911861572571913245686964487220492023746259556593251818574015033680894602789355339656181774201157061923975735798290783456788184223160882339091737010322171061568047791658114520243233448135880796290966332464997616791393830062996618891336489441643945972942021634958723921372042582831955999120096420593986890069421305138392259484792717676112795807430394372158037269360405043838740011381410315658176430716563135894199320954493653299186956122714723194692826240670115696476999411439644144156426062455120874262994942973549634710491023228090238090562267817616964742679944560929690903408699953410176612491785874590657441205158367082018201017645106526399546419261767566498568228857263343546983740947759486698964451658787919995922003007855539640061353126501619753491105143188365591097307785327331057638474160796344459307451663443596064333554327213742213938114072048226753193631782454994954733766892610660056255361736457667879435578442776647610794216535696346972986248505301818154374605982086351802207809464323166872001827827887661943554193009925999852340728900776318482502404977526016424250017839244786629276334687139213988146647690834278614316402396176165834738394337534045710083641701220577943933799717544500803589950677231307340760138988833376910463641894468399575306844911143957614043382388112109749933908290246433822159290934669996799142868172370386800790022375798565264810231685099538694630050274941426253895141008662388787849813926663327285153758934807854198616618866338429987516904946565928766585970922587881638385096559001677927762289824403268575618501908065864644452352691720915545202367308408304014918130468211769491783456068756598007894779563561702915022292652048156290279354880335135805897416282641792671892057110496552087718259584158581805539118481687184704229354713782984508610472371739260447611065126935763437281025758108256349451128687590953722450416578282550786524543875703790624483933669440666791471943043320423106032654986573433018890355054189573962942184769610196236648479688477712727579334331065710195253101810229267517646030725128770595039079701752495907948810776314472545428933073632970052253774720944081858632288877967902570354252033097170753507359499770231445775905290210410724428606390451588006522069201625516014108939950912841493234615432306160703930395256279367232110904360807862314515124323401098668018645317897983324608365359583243731150134900576934180923567380963731746382074963478903287936520500289720197079957756935758302312148818213769842617634539701271267158716869818382918886192050215579418343676656952775887323216014281729706041761447017839002900801001291073532184807832380914488073039286460196860062654981756245913364404802560331464729577990785743803628302677746239613762375935003982923306275934613089190131029790097921358600085468873920295355983145384213608695631871987233431395914209448585775846235206507979939611732798626299645898245714881051668151680050498302774058581366465664715131492678793693421154168283363802483238502330963387264314004778170773281297115369194104574528761619149457088159371150787040026876788478286997390995120831583128103043462269194243169186012831151059856612811270728586411072742530814099180000864174685708018274553571923456755182673273318640916536371220827448549136856076349593775698913277313627070320366385725081074612817380244052728992194477659985580242030438002565348677947936459542510818368058228198055997895023758436850604117865538747496953962564868981236782878502405928909532111884261597314326344328458015040569046195080167468431154486183207254550600262680674583796749788600699631032669870055751153959464779020840311790272673666836170817782358107153821641113294818103392426649879414708872010308568329520070668777174487513607643103734260866668551226033918764438005804874867995465539477764903909628872917128242408933982099936470022547617952325672226073357373612236092860415757308030933721644789616787824950976599864727904148583851814201063774877398156628936982157794741331692050464814131381461779435932499566078964795617985621330497367679204013416394098984070640729189517045029013705883674183317079100317173241103386162145016176578079480934479984649426053706443301326581700678306663701132859220635399381997265935707997783803718454380560023998812731154044906657056099948142455763267161067298884002759336476440466737812147680365112853445191843402820700767369478190535633559765181015933564094582271522966769008469112838715875396729245095520804386985055336452000628660944211518265021412228854871690546457278811862701496514564649827607819497267407754949891964952290139145489640924739375017770790796048050852444791318502574392998582565102129358813181992041049543604772903357892178903000473911538131970263968063623177882386510975025357736979072823231495065471511376257413372848201432191484884036899802822031018542085001651952110006191006923933958771443541333824290719556666174773774786876279576922186020325109070254609371438424240873581265535884059912285619951864251911474893201781498680669390840802046870014242628349733632069988850074176228647349625422629790348499224391072859177261587005233296170504739450239568212021073723380410865555459050840412104295211485841473518668511670249706178316207885658648026649236534603331358814996004507898463149246349583918579650373726682376003960134537744778659018696894972025071786535547511483210788129526988750173491807506576920091717841717494803342314187331565176009373169094199991792273639645310363493368614171131157796543383706774642079591712529890934827871118251472510842399368067538120399401174593171097593272290272482873908213974862151277086021646618799053901166366477863871089141079267771846798534195991735745687964390710603419963992434957906026186746078184031501461477484876571102927387006782420431131871758729225556327634390706808311150226862247150668199468707792795875999218708802528694412417640875337925776378056020947204122286224655160792886955415632446547421607973892219119171604745292528044483899203971700317294559395989808711529809937229219698736363842895184001128381569327334055537788994481661655318579230040825222136506355656578658259150955280290918265846480937221648594243468826055638599351033485971458805378819704278018485248594569002472181012327230926320528828587903654829153007176704560792027000140491492396274482686390111165498852299881739266762043719453241831705368062625007406598323490106477410690316312426829494688320644798940049699353530318114193762971298692848748501666605274095548398251471516035833334855011208716752804575604090513347367938592669487057221440910638692768734238214630585526224593770224498960030558368064861789447937484237487084521948908090389701304952129642663235859434236136899604362476770397298194726064529957849180169780301757053859552729227025106471604990516152639947444793583746644299526745414343453741261549904402194407587967599008456454220662498188632436763132273598107230815920715112319778841429508286459062926041855178017924027607790144534374127566773563828516091632170621738384548290504201777631475606766934909635237721694946982906835711314598842017182088912853562092690037012377827485720761073565309140716448103717623381093006704513335209802203158687254337698526224022811455597011004957874663502231122454700060976536279184154095200531986388191763348574105245729650223081096481703708802549622562761274760568361860898851081600176684230587900996505196817532110793981247906659372948772140107756451796125417214795110975531035939022666311427532897515830330557981964991458014598727135597603287072234829147951243573809930419454144652565187944258042209896564955518628133564992383824130269756562403315291536870363054685871120661502805100378047790414200935981660496350469536268861674180130084416781962340435381197924591802052033927388442453131370823779404773612782232323419483538915976894968145232878537365043804269541862169779379536639670089127310318435814714804277404568890423371557659185673925014642789347717861592915156846962953982682513611629187318193364726301914466366594678086286532859336189809054567771439506700161989760629289380667209816178102804674038983630555643294683520080266717959306009287377466273161356617971698441669551279993262210866134344922780984041289707080318356656683633678211441639876874519048449592498751322683738520553040953432996337081991501054593075876196081670762453031760357232897532796029849254124640206648094258516039938168263323592957442449681508354886516205838234964570995163044119493979449752110308511529489904162827773514595372386096586961472883342205406979258913257630427589667294500660763838799964732273038081093323527462407787008713521843286615771495655122322659649477819718698675034518787527475308950882042956595203030813355022981197605157474488100143287487075612133380737246273202910707419658462441434867408162934247465615551337177994068705231963492080912427599494775238400957153113567996612297274197495468887061734004535883706724916338646633393077040781381030025725252656961782714072804373269830443517494116191238297884783753116591774090886579413236222629004361973425922058776248907652858716971572334252248357042339866018575389749130272038351945485337651109073527623963943776928586552556272744163961751671832018486747294055827402767151856267631964402938830396566056715833699252825995639484198081413624525164858967904809609535223607362128844795444040032325868799771303391821994799461925513699254735030394220245324986534092887498164831985999441204155473570136630906121048745337479873651966313300680400494743318123424786102744507990636809320207039358732863269514718130603914577532775184327720476447599195166999253338956318646857389313549127416245742280455316985217582180775762927283775707526808623557215686135921847927153180269315573855305861494320281427602232581585607008180010275971417601552818565327101707314105340365705812768995205764897760857852087084731544481080656721896178723837636875389999923247502127958052056804872714280172640271170837709549779161545843757451002311670009828700769300255545026139927541916739815350171671023545895904324415867926979785319015873192025992190552170033605244507009833469310078657711964912780760890920734816255375243274347899544108757058682236935645192583661309806196987116107660410435622322265085554425801241582017600964639099356798962919715067720128869673681240089990806056467025035896359029010168567460560064732275370050154057930663348452135955705655781594182219691317313684501826320939222452802785679811774805471197784693067507153256938042472555909912975591552815921114242312359341633019258380188831416807042267666205123212188383748955944483610806882929828519592216001938308087512489865036343827553446424486987772667582906504636809867880280958358731879021909786972604108091083839821631288857279791194906800294268712678578992984434645467098492849408648805737684504927886604250902689882860868308257887731235315092153095417263311363581160474595313042064654406791935229612993751856760857464458371155890601292874693678835310669264702879304879549435331869489861112879435419333813555485392625074564473956084987743515371871553497703002802098016008933489565149043832546453865647895473342909258768145922296209650571116655488548061468399923847108990317426821604095623731958774131027654515152562875918526254690438601345564535737089683318211943029029063948312416347849144040273637401175594098044353696128867728824798619789900734247982534656497235087013691577754765518300622278242921832380376983768545696210117103425017232631236741299001974616505245723676064194508835973522739190360236042444002426785030559718106529199387771618876618081683300571136981923863358307383399805744727284319573393095334467536648081468937739380715404216041799142903287595228541278254234001973029492676007614463437978617065949337289812278392089872941415064897446757195392800631876806355384483533567483501694770034955680187633060458865310371305799549628121840845281779290569278142741888211009003810457307674783602573046972235718196803633914583271465835753758387570235708944362478815879691503310191519185595273075210108931373766412853785549892880118814640589177114616504600129575932112880534587427228268825121292971820518444327391785022864477408733247673518620259182476060586896246397381246945736886493144072157573732716760326360941275835340654988393449613429693767782874103307907126617871474531421281920019710442155508263609664536177518999329341244643872724297811499547273890579761696504103471927119862035485750614040832830840724984609378289807229119132836427789189733632005056383380349524677473215834906475630635775645572247308025788757516330926873849898231529942083710160894498300852334413098185642880943244868129921798858988836317956683400615888550732286349333964644991173843752294451925800117740759667807833101441387776550488115973686746011853429359444552462622892551198777346808992483019254068882749487528735773212751115607914908395075764717004087551025055808139300353105745998407766058758321083256524893944285867012965820084907701516819208583052319618012600231058509097348905698857946755534451683967387636407832215604998098297435490357585422682850613981660355355898488655080206270859846356991181085579168611069623220504109617092026094384517119881178209269189528655538164400369625330982271523317928045416016150371736745733445077485133250706410059380289856791387332763938594939042502876474979850901028918731479418730349161058861973429320419148371955585787988063952397428964020748394453905480775562509122308638319633825756434093232898735333165716132041728284855298782916905672690648176687712212149273931531379385032425834290168263914750120432186590840631502940106910749457544766620388293845843031121759859005402759381717583745607467537121610113072869367579971248345085545351099133628993107085119141019395262589296743541443945383875867338646993555319810447886606328779265649127434498779409608638133102173205693491217103303815667780356506175201626301168904611254278816253339901261331609410498941082027517892528995859653896109340126181528121298864778212360182000725650302747054779864666545448339443209849653065506476003673432024931003579206551204275594521369930117821388763897807826702933218633420332104298864760537181492458189220422234206767259460313928072366274813240462728784708159373009998177865321381287742209081117499625902097893797868289494165944050094232539299771993199595635858718251577491172041448175256945467466634101445772861936909999165504432827533352359084790644904153939420102297926464840172570417527697490642190054465484529228687782165999828557840354004327669832492122075037115416822685499780853604436677348744050327638807082462801167143286659115888584314241244529870647977646916924260524625848050652875160405075257154601307024327288760636512237069005829187412270123431442709440434384928802439491728516160989289976631340367935345761015509656472694084777956732201438831000942186863884746862518543950912118917676435048851920704422745026450541429689578263584702970480121525313148315092218708825025853750636724075097054373500723322175271265369748658950214858272429605092072794595517799581577756461039149479065803214937558769702067242439911147049424801778027414589365253441321685950955186152027537943559591762523544454048039243897926635185346999165361584471773012585967334841585563574045176766996234381142699584769144713493588919021608171653276602028990493070465561713157350150710245441524006691699009378005878498312751797800448671457374082952839493531667903674909073261216800724231749403297788047007515768390099469012502212523491964983001531159909671815211796499998281168451011367748132853174204569049587106925761939199255612009795947781477868892267106388381560398993770971172772533521612797906380909546269434395539192524868549278030190318846908429711403262014812928628178935001069304331735560855681819326403604310596596523731796694166363215201133988286749240129247120039855644474378650611111783189728588905691077583476078157311238943512203817672054702046781400292616074185975390390358391366597704975470339677863720182254000333588778381161761704202862950695728820002094307707888947677995231437810875990419990315880311660526962212022788057216843517910710882506877670303829512818537524969795293979062781525913847349187440059205923642180979870793262106228151233330148695611423883530880623666460658655572732110551233005899313297181260542956277056542291891268871659183916944702079234600666640391550699237479909313823002858587992830830636298207310109873065052401740243895992065752741585143134563221609985780181893263184087055502317537133112952807624388982391443649050380146079829066561380242335028066574718710456171079637548619493160095693408888288388971264660460890556423906301116161515976892402288246513004920666261833094675675151620368489238631507588575769037227899381854690429184279248826120824845203687166413533008661382682253758773738776300570944741067537643766223441884954170642427222765990266699368667789871072866684694196325539519059189744087524953316719358445334556730435955594760432435270205098213250878479243125292137431104180923627626244315651258923393510737277251541832764098514581577686326078441262306415409390556705691879063692991069796655203380941532918258200724845728048837941481329259458948126971467727378046867805759073570009806202545046524790519507517566886684719926637891267096641411519939085207303706842685612253327455163966451034208175215692210198405242270486119450728309395130646084980479869893831225306230976998925286012723654324831825155973506849797811888586276028824841557793022609652167322896465864320669622669699690996491319127343368914296024391336559888515860093510894637882567770841638377317137539713136485396604507930263007660391741195115886115957389979320067212418744512463403761844787457549618985126205465829905071151092135836794444191904529470016682774307967684496793309599183147974228319807138068141040404313086647057100048747117096394203692411299463041365453048599967820683870508709134986428352561781633511852134261389942399783019473431351033533184096465811646002967041045232164716820089192601231003257780225440482127717659173240039342104619113189093735945628474747333734024375726987116301393363775989346234624950787610135904993645715767227301630635402850385769413184212568150207581766247533259522318612940793463784088597149048609613510790326825693213245841013042609484188366597172858993102526799879465013278042494225085020811195383467849800104030490330412533519652416429042484952588756796304175138161166035647667924473109301243559607013721901155103317557456397810079169054012109550836826553068149180315273219830578430590674611961546087693329104328451171858462455751986273234054978965729861717981877077943619722710536666588660710614066081191189958647991667818874729202447404413097736103723982657584092247183222240566473096975227567236718474972748960043175498003651928962973133199719287062411901788784016152356172906539007656385393075100223630233857481056424163146319065375418160476937875198810144734672624479171030879053243800506638288599760564766970813622184269148927140024350678968880636640537627661144486846843377366329301241658324072259908141934845248422506240345246117483891248285437537561014790819456761753576294631586191651282061950358584945663642119364245975146358376902993455896697532434423989100530304623102111494562946509263253291623228490995435142972207431207568482158991874993866566436443435414450494426245198446540807720675007265645536326317166523223446416034030035287753572437747817821702960586077116256394354276671217049408775593446471669098193938890715375685857354814130120781611129518008491765006507031558167132551528463208567562421920814183477045908970160177222470201296839536826241645911155207597444346785361357726329524917742697846485019660093226566257420386049448221607547440261116018702913720462152682987365718499459148703077797492633696039470929770844188568699086420467162509325482819957646146663240967905483766732144129384077849146430130865212122838316731610472869705539094146547753073424324830921677136474683672021635892184045657243000028914984956631116591481894174183629046216876066152810627603802852091993939144419042115512156525284409857709029428093845824888165799519508674692179945221528381923939371147926188010535448459755181343874872082011721117932883201941725129748028585058090481251127419899971830976326990651549392621669721228974479950387476733782590560835551420351866726925240634546341232399442084563525511336477109029227980838094451243368473086855417674903321003028215548789648349591814089850093641286722245635333380364148076885793501449249105481233266008719119250472226563542059739698465664980421191404982850584774885563117123695624173033658086348002706979781906839727202329722092945077454887223118840136405977269406240629229918411041736529145121282940209977118585142322360357970524117620365189955364687152238619178583453061338413492179504512361476400145846509811036390908009199278328653075723395529106041985401332166919567668499163183193689637945735841005185863875789147797171454425137921008004577789914560244408347313937649313925426562321491062146342734363685914152474003675395887532569747073169990528876061427019461351401339398134258186060215112277985875948135694629205772302376056536688271698705729937484730269013597024160114649935982546747459562878374116280473520096338386685519630278615746580741360728767410620107975532835492672234862975560785529290587512259872705186341736927193577192478163785875246011259139028041613919341841274743713496627897954754369848026881414847189284582553475087774129442049157772242139883351588652419087588717037554478215103404731382532990989761694916722390639266966532943217065485928504503768410858298070371387954020321464614031548171982823699029964686168882338053085006794209371406759497769051911476532963000522647949340933879797153167095110929999006052602656438708235654499331013620755514427743969700708843198519532750197588655989955339670852960876459991375832754182876158746036244011243821982279445356099982694367181487206085500736312237926640508644605452472958210435441036382103104217835260340958037941967920248762293296259942551865626246967400443543714013144978964265334121154617477601900375171152868479393593116008548176521312852958140124345035574171472663979239063931582391403799466258902340897691756837243518104906805340152939395397453768345935235184435850112575096454840455640387625915860667579093191281847986483884286780496942580830521311697857436321302960599472445531415334815866522944556536032410833032635619808705264886474814765222839829947786763360519628362921872404178037464977106578760492858924792427945050456194658785355857134848056070625710069514616374686820275112076420694462128963854966692747110002610830218326058700009775130017784313895949448377067965794521277445533646163689604702353644039533318226032158628618271396886903437193798307918532618632458646515768968999234459052256007328262592206516544315990604006833700932252048882634687378062840062760856145943231602154303855867933681840019566957822228894457584637327145598522328263882881903339375877128889630039783636795684765393713719063891609912365680468563894208100076919312917959659924430299905214831654848569762529143076303376434956904600067480477910233484761980875792067565336533492159491980818743342855238608311655119103280454816285491695102182922370911485551603204266322729125908424872699532587430334545957695104985645741668828017588957446478768758927138533836831039136831786619335732872120600786274936752256980467871340012875953836204717383098777545339515225667912891758230162882738216027138012095076187606341526644452976222743660261619364199373945686652747611162234494438908527619722585900875986211444713106982145589841324988229353060481123341820483818251280064636741863405891826125045148348360682540852765283847970419421056164827019249922965786387667872812917750249221614920759729596272782463444018579300325279110691495496456158567678933397899743597291940476297606945415282146109639859681128915016128593652541876712651303672495546342227278949063524491633174723933299487919632389178240230527629468435777913821384838897304515801276840618973714936825344259796560940532342579249199658772761947594389308436473537864502706209688859285491188580822939025504110153370578282384516056352705233638794091207087486470529962503437459697112397791660606152934082442570033820268741849604813789925669788200330093976954089672153702212766120694850869821691828940363102885587108905496609867282741418855317394932591390855108689285179925627407281979571122821412226408056027607323041519201088265060280737098176832405166179233416875343621680727810562661395443604066818968461413696896810283870622163152786370184922083752531100442561896902885274506381509256367441833357502175790984737551305341041595278676624432547153265605096597788002838795816913139812701493225819750687085220864535742693600037148225827202030191712804115883319718326483473048046730296231433741236501628815855133258459671259740290277689252656222778335536394731126152471797645113454442203401134330201968185584803178064897222628527069410171512271460493303955795577032629277627714042000017675409458698652033042817997286826288362157920981965723357655058236077169715423170099550630395743191870606764133893590413890585464284115745541855090610108319344298504610067529162496508058052204717022127589476500430400869745917257132699483551342781338901057501562386420922724888260502004621503234142038578143928766128849311774049034599888838793161643818487351128344639276392929174776017929336178640595528330273220406774974324385834674549558684495771672689035672972670938812870018636058712267164463679035918915585415790976611354581323330805050143265513903991843540387380406444253143258558749015640081879997231096005987598454531455950301004587846947046614243108737339685684526234653175391781107467942081937709032647050442930083867947893226098232776057211331317148409782356622933920633632455168316820206650143626242566974622025976209938380883244863191313438652873142055167857122982178386076988290200827114501421207730105743141006166954091141297077791400851061807421442457497969757154687615239120602003984999278639732747565415514200989559536223228974623405536232320811343394397700536561735210228634828454193817804348317677616106951607827478551715311930077740555204145621573241047585544441996073404333716836471357202586500376752239802727253301247573178279874068650076495141597337862496986277003467564240214557022359007906780390761130925726688043670913800636574237676726903238960699982502639359213244859925093145215221562615760637102515378167205166301045107808860357989044149820139736856396423978581210474255042893243552738200291545762953751195000831428345815879934931186748065357761019740072206007962640613006130997795623468442876292100403971851471819070044599275619867341263908420716928826059407249275085728972255203649485619649787318854997145765800141877887325280597751495264926777878712593345332021414363008687683310107878839295534007766227718610653776544982900851972406789862060115184773666252117715072745312670440991199811692338051386065072361844824945668790907342100807561817158487121269524506849007846457154792897775768868717859685909015395539069356579395694000376389611978612710716505683140718356026254902281634710919811174532499588418846454324339673337152370006593608339643284815094633349298937092182798769519389783504740436018236789868844058414669481380361748656745005890695553374798308814026321047400023680754248396268168747209005646134422575520938990006532163643028929585291428951196073275452515390779841148257049433855912242310154425922857003326755859420041671797049498244340721856107274311669356485622265055631363065853509714639436614551719957323098502550427501255901496347036533181253831647039442523616261625283132333598894889020864865480709167113239382524449937846921051958568861432619335179282972124612363227185794445114080537041961305081508153169603044120570584738843161528929657846017873457619276553792782126843857836366336789461359888816837443874649081690975212906585712296638887258176353992707332860042835409675595275209344216200916665764954446822428948646576433054350843670570231379671039764190193283069554340141718171118469128392847830421585508995713361443821417072097479414790132576709402008988415300069688128110173279175447102901444712374462074910466042220657310618242747328937843612557012377511163634666044603300146319137602895782913733219260222195768862034013812058724474864647890471557521706416837721137693423755086480165792623148945744708310035158766599522816905348474250919544254677482460552520006453504794285153308531384529059985214686435571208212340480997782035841833269726138024900708581105330937598089353130623596223106923468759161281136362454162772319744104014337589948620752310247006126391363553715760197025709380650709194177081984988689967969250991474304783049281584053586953654987454830691902373539980813935473588791441954832302915739520843158736272746164439549616188054871345181377600910088645916505433439498165925076901957416101678783836295324626383859578187169288675410657019304358536062441217547094577804392068788315162561492932916951173077266652383061179702889345053518024466606402045113959052211193472237335905427015675845319107457235421239431080767841921897183541527379462026758774742767865343871073259708022978113229189235254759838516611265399343262067382882904675546124433380229614270982179800440276120140345794143566686374109671675488722379161901000186415548485361539259334937803969999040910362562503772184257400031640931404507403383207398108425189386689251087638990039688687347337843612332869046087435843081373501496433845099971779483846750499164225969524621702081382479675471157839648430999377140801159131981969720692114661768776635906450621561511250983016249409712051602001232534245137722032717588494130928699433609236681257428473140392015283140110453238549016842687484894453902531794326998738156678165094821621576629680124594335342396426638767968439991482255207514518299580777190484185390486592358181053446234597962596097656134010657438031114930444092970496042415967708616290002186828028875983729183409246471561896570454291342890883690094047245093219079225136800431833780551034050355927816927660997687697626112504048075524020779077493948283002724973296774382752949726779676942272868963400308815659442302894427849297981720649864017227228900715835282443816790639949151282021108098059454596203556835747550537286077670497199462743907098794252750851184583763321663596470433516771696453450009434986533237475043612508140463566623093809817055552433205948437293502421638832615723906921595723801901269699143669232140889263109154398905677616933730183239330538637833018768803735770472667520040454360676431050333022467043681281860355002215854263174433125785712337877041400077414356676490403612509675599498885737740402839621037662771731103677718923118726635076211661057784824681300248136958263501367585344983144395909691982996974878747848538947680861980821818157304953104117711747198335338561753469147774163732011488757696280947713824081683953059841913402243593468379464413861799009472817954256728713864542454500104769504053039119988873948689792087713365683688825984970814376834947530529702554541733347770040726824197568289918922279492895407539601610689317730605314663571681581724866798830693389211140831638725628143351969489592513794687758911194598718563377956725719888991921862170430051924555549130782722969326497028217724091060424328799385857648176132463105869082069861895920302743210214432282626716897473354083133351488689324643512369114515021630339289545835631841029392791885825189704480817666850409544822078389568091973581616760563205120358665283941929548001966820658469456842672167357120219826914583702613372384225806999309503391635861333150998450856394003488154910488133111421880876314710971286710514753521541586051231985971810964830528965654580605969330444413951514359446291200875218406634169425200882257332466655629986802148733666554702502052676446780686411407613531252956896521946194875021133784732933659499888971778292981875974489540084418882424952243383277321048810759625197961643392192684247057321156478879858005165515034850155223587945972960991200224460782190643165561661466575681596443775946458400946056770420273680834483564770222469923577652533993205853395584299392151538856547773760051932177816785929132050756371043712596008608120034874099185373664194579018016218121227045420806924774761671397132687188719525160378043918671037393361156667277759159438218847279727376256291813673719490096519174166269513124851734075609341015059291504803697727314953982191295387091619107219322879307420853460254320127270148142887067965602960146495610642101731627121067798214349100766006391430492540309543574958967995715791043680769855226096184278029945185432848211941278817141114647799648394146305643892652408690020353181998783418757481107151165458926467262977103778564506027782897476535892507455521321669101704320609485153722752137223584789471477141933260822376915005483400459180068162999349185442104689267079107572675396959230918902483019637120592645483088949335853719250233985012738326657678488095060995253857002303853775320545863358786212425244796539796877927216214948513472149056289012077083886353671269329396678595690009095220273298659435555508145818688512083987493928809709206140308950900619262325688577444378201826785706901223516814021824471746263820576204270460566306102550755490619884978960101068253960336128439841875457890526010770277307949230084809776344007706586666390457819621117459826996887913360797046547508942710103815024777941633657375143010161708518722909182717409838879460251275320544470986240391179687006213404864296961551443660332839449796713364433594228542174190532467339415608897350747663270347155404757948104488922662368732220201415875719416772869471477418674695608592844364764988161385220186317963806791081007623004206135660593006951407740893288825033224076606904679928073424882567101005140541517044725575440038781397352066988750411256536357490296216482307743160340359190496241942674251779039111381266154513332770912528017883768502815214444410158354068540910165398454115388755093543609728104648114145839132606322324054499396633474179313424930452396257501595904710450102214403797212606084204693414008144370810779563174717864279944303822291130656295975860160619898467752705858328673752844945118334709980760947964570281102282499176330038026885479049538902769012952869018118098532555576163561885000774032528313232156633827663229482276983147706740000580534795798003623553771872249998768601164934685643464877657778008308596758260630228664149687867755607679960175300180644401634407771601175986837059721774270704196274103291690697390177179182854125886558899597927032610078450722394342963276104440619934194442779442367542549475969362008294813625096677519786989690243824695333797881479973336786220130778839576539138236952005567334886540147328626984229225510179720538700864380729104935930070045597994925674850321178748961035036187794429609035500107645267697362634781462890172516779592882910452555969796406499582742713898592114076078255396268538576021600104487090289777326983372979822738792716608329936209323117379984017820513054516158881634274604551579950235802045731945071388655150653243959872823449463879558402551972657807627978625845453702913297972889675990627987410478968532120510897926825484978679595492199774452746685775662009702861451867618459912535063698545541356544804387084945107766471964105001692836363207625499838989504824414430158498031384891951430501299377552217018866410345650738778536468267187714299995818555086586132559484287827337945000792060228464328467468889025573422698632713722614016188639772154322807167427261575606271676130699259243527188471778294997595185392210764016942026735570215543598596446865168997053787644276879042544824112038793717090970246177392729350999827709379428386855973860792445789398917763348901699283536891988461756800376148302277809003944032174436324091043443273839394529458647786573370105757675840622656875797541351014476452640546081124771220034757890027290204923928008358620538596265523793208658086448467769821742700155076618520630197222409731800614564437888779223315897196680429829747109886624006732463949964104536448521990643372219374942356581308380728633667254554666456752338100159184478606773480450590487501553251046174353028911587657851809705178634138516694980317988023737838920693935573047000976875596669527807023920831944107955511957031825439557792645370924084197198861287734211748069973396995786255390480041079275023783978160889738882012618792877170640254249599939105662465675299165999307341974236475714230487824437943462546580410773814578680529353114265857289350211652467619326967947055077031681189882699753978850179909663081935044483099452142857226904678923281953715235386301244347619229253333356716695098001971635032500027311224994142248948064052550262044268323509412822850821456387500436445224725915800825073629195701293710335955742182089102288921842964858862108260865764799014438052162368245244822375804686879050500810294548927587401755766074331559183950751869020657368831659651750440781819718711213704599126048959952428070906272143049157960690833049439744941846691741595332170226754136141106296311813343372414167802862523789975402189191404472294408589670111835095702431753535460402941717647473196864078105895834050741872971789058874181893480862654327810295507985836033626277544346267693435965428860588895441029589419162146102285232517992547856182523332878769123633981689441941789632245731491618709213925085835756087327664546834049931400212776926034061963965543417406745996723310167189051235162935659301902816815986053159257068266280431907204362248389300990351868234718034089101312485026561014971294334462139882820436447525194994587492928543307669316201919227677919152159473768083658560369842734949022237968132885758467206675885553760166276334212010973135028143954720465084728434922739716160690273374469881371880169047439986437474775439668037383818666526018306351100597718568416663505046169913847398431409517498419687522345526238939386301386969386795972002812553289134514131408490423981119761638665482233519528295103991346003207106369470603930397322231645484922598101959129822001549061379605857279605096783085421043620826748399198523360438583052860174083979378717926241923943424205879698036857515751090061821453728885490273725953850024863321646126009104770808947125345138856268839957810077802669526735377630484278675074301449403031873675625468193094456155666244472346294275572201041028295176646480718623025442610868373848992132691476197887845452367638300375123917317012429748970482232829913462847352275769311458930280565124350823136546931736153731059346866687017937294324884335827881413179146791351837307304188105979185190563674995064305178488857513816632843395300506375468889970054010751408853872159601798327216086282768162494362920984511757187062350069396551995152084711756773797069230438263247881588278619345925597900038974848192028277898624477801231073057951554391070286496338606084990648441630073100391795431980218314208519008750566486300812211561687667406101592074015989626464566419449131137468530537523504816918466831895418499549542273661095158439730041609420782851948872633091164531026344153027431958890675133855002038149149279591300063021506748722841082658370237283808260931093455813271087636978398964501674104111608411233627323331711337346464454036962448918138487406955428536862292969182025407136879209636607762663711162259103310896731290785132418194288175556210231083527499335102280153558263797355639421921558117668315151464316976457805862051818402100506396842160583862242068976153866267735168355721088340279536375816853690872460256467627297420092725457437310224931562809607301698605980154213207186679723482686474125113910135065319961046581313914995321086776877562073348386802921998529790664476926269573367971402789073978134548058134025468780256647334539543589207252721877358859541213370181130073516661271157462308830105208584886963500682072875398570177538414026117424877247590638129526514684139919531563866175506173639982687156394640667227935548333630638443555876540914227608460832320909590836477958642254409670675514876806803505117927040449891792583642747496454315069398075169591557847346405472038829995430957354078891473313252809022580857010128073873509827882436825322382658776922461858469875793849488578030375825079007556479994116851235232823651947516965398724881441505288769645801204435524050314796413931878190557356382084425586083810427172992328317907244565782147932503184430691477444782682800976668399164249199120011554244594584259754930246905390698363823951982739815855303745733638901319185850501525625185055297704573406386764178795673483861266886527250086154005039286258298617467583081185318314140236235528805027893593919305393526114833726055122415854901829945436179808913476542754865929174587269814544894551437619123722325338448953538097181999489813199221891087436712000604739517928134437906529903048596740298378012745695732069017077795408584622358884631877560783325076794443809605222117015610728101734531522337368133678467614994344853170009260974922977262126267244169271543596853185880743863154868750392539851376750157298026029816309691117287416823961636016257578974406921701935849908480697008633463502353871939390859606790699026006715257750149774933088804804196534878118565255414164624654433217026760457072861816565892546145295429252384605880096989925101623999308178096625829606753395469418388665329741344459329648353770974907870219567613081452358508390037046216862301777519020240558319630047791531381823480330020957817681550053413671904872295830737663975603071539833856827609015451234507965350945243678543848976348261627631099477667342046629119078600129080238270830183883500665327734241519925174546134276859019927304813566042850884108697661987406234862076810545483169806107396275682196520516416059624325057657326455609197733396558519956081508483668681569522555518379491606542107721619399648923754586752378109859586043406001707441460161483176863057470605809431715764650433694478855434884729904384940154274235097454635931256571721695628065538577118926609890510870143549028272597509868382532667101470977188316859154405508174840199983384809417488970384343021553938108889386422783701242628123159118465242157041901292939267412424660622081926786970910264966744584325481840084903221176262907299500003828782328522148857744556064530870294088808940691481088008501475070193506131941872487079778987626705624234255407591085485971757141479724968497249591938225367772970233385020736812710094187104549253651422933188848517626835565857393568991522625693178035154304997045497767560458087087360009125208195363939762358777486643708034053730926595290405694153813175110169071738646597853387570171343127144298826041772738394185692340100083797686720519885380986931140627106268278634507890762964524731964908714940249678050031652116844705755241461323172081757907770684044324368179477427807638041606258123919420871807352764296777306754811110537607805674188280596116495681468150650720904272252803690382363322413374439292608144609887720825046996320712752253403117722081358097600177397819549272848741358267100590326094777160752741443753254356391998591706045282087966307405319437380152416264588362951734216851841895886386537593172750344099998858797966424673201089892193048896877569223517010574305862919477104626187432270349277924916234930311973985363436590490093180083556788141438564435127022431621465505050116970438633665299111788599827725127244475405428688999874930521155340291325353716767446165932451490240301081031581742218858505962889660036329345864391433127344311658409459622887168185533094054773734859390031813823506198971244162498043357248952287764502822871305861973057974888073747071112946323838230291295030665338901781794196548479243227970780576814059902842942309821273398588815086180808250595458174763120796776402616400484903119152864183347934489855983287987625777004471824453427496344808075960425056427411789211605147649690961261636170623340892064139586701821485450654618915910999927439083397810612648152650767033987604542275692251832299796210390890651405010703656559694915475993857515259406277124787222632067407028874460998821097871286236675024108625934630111673595777002918640466572671339867381881163801408197061411406047670681151948165292170376835472732465495733112142250617247620105167901274435138257533405575394626611627589731200577739500079263672553668661350526593484066760535057223068749534621899893108135634408136919031784370982643067558618426762517197464679674379368114623110054198073211450404602878827057052815902052326024896196052419431473613839733291386551493594228026133477429708707508964459034475116515937386061567250337129332153244911592239614698780153474170194725591108470150010778091652183558595564213480960241843495570384307628835517550065228487589387529443518539086978764687306652140534605539985334906226553294796598983243871134972315696925237190743843882219681248519978448770710041355139902590307929084302520850608022947838033155604193176050641651266006252604061668657554092535596619356619365954433981790224110251572582394110732463780259147920015016776217576193830760039911339116766043623433884653583042861961387558409304204424421208758762075747786375537572739349767995009619865173472173332914584030529501839742140000836753450372264068612567602083529659519909443111164059709947423602294182081484146600709258376392013731864342786439494083154191762852099286602185506944983170570052592279595925940300625092128059858054814744075763254517056072138977130290946983499481237194413754109413048668933796053868925969777722322084288851221957777861623704786635781492030710482797157061030270041556702688181832661075375073844146748668140280700434710042302146472731407972725967471624674015885861741577444857028148847636228947130370592758846917294065606683386544669527520723572214838443327661513246402349889117839879916541335753927550901477616169173007353135554401934462560878253390251368316499800461306340553543764477492281666532866555847997207720794318133568974915743189629558356871983831098126743158420555846378227578693935038816613997846287062500202137171067444565566648865721109053400628076610024399790280639967975083868055146085204720056236304046786107950796449566505990209850161966743393609618088086979666213298947337499361198358840704339504416174242672538222184906089727480808451986870109446205225625977185857601127324564705441364507897070651897619549120770008161583699488753748930090944170744895817049774924700355499813782625143833153687084953583604819376799807875253974564511296385773489203973652968581350222767587478362004502114587796592586939040113671922553954074572853078454294878289904862864677303552470209324781681251816684481533417794830389912056285633172262056623825578645252497285757839365120348811825922004484943115565607010949300944467633919482406045432204064853737705427368302568183723610943190297359824476449909846077405709950587696066142249016981175675275419952206020250323643814133134163843541534260445959323334084630564488154246916751229596455584343689629431306401056881198004801666115127005341221588287934491522501889451800789879392968507741390796838275554516812994893046452861418511015823407564951344161339056614223774856056424212028762773652198904328204506367118654742756661523678664195508729044797967958055080388891204391730186368353125659582003443580905523865757656194018385510816308016134286332555384495958785178096514397356240771769902977788899930617911027032823772243903584798966084337719940601870931234223285982086278349542428285232204513215348775835452415255688514772576219195900771926385859681387289354303737653763641932140734274838561768622734316787235396341124376880807034990394736980606281488485894554311448788413934334558103393805414919134022208425746475829125499411428925417361831631740911657729439487703581252822783297690598922246261444998978459260623798996210006394148947604934620845126246006330988026896173885539048832762771098591278473934936678041124174954885254592581508470682489466495487096965820243487200936337305235510346065954603649260171093635221484261967665732721027687179846914457652664098953001793090003619036812112899229811816657306943276753924705876295063327192369681653811227840442237449804702151383863896542456062569581309229961710197658488326673499850916037997854589653970055120897555737921554278928909596503551501192275840957763364755057245497169791091512687179841002109931334199390061008624472707492489187523513548082733571993729372509735284212045603338726136750163593708115795178666737028246643526034959218868137926718555331483589597211005969901504224369875812732223731201073114019383746623919895002629655979954573707386649076646676162863778019541407156538768243574736726086576821006700268716022306339065976586769153284576641813603967454524086522016822634994961134221042949011066534631901856675498015967978382052941259670165545779798998193276425077772216167238946926608095626501269556981046745180405807661714403374087622279792087552646091688059735550086762657865091653555887748268874858959196221477351871089356421939717894772808494381131723963771288017442764484318826636666571197592831275543427912186005892533331895117428088446699661920043146156216698272209520790708433370281471234385424308189747998554460691647327735922544856189462865770568498951562999662706414464921550429890540520039724645082668525517075803832090124452993267204481846042800992953894597015208346941184689157293243619691759383732809983662238593844583651550906307754634297671209069332964511963025478701182860708500892275508126317935315546203200111325959636209456850812483360006221670235764845268831565696206961073620206741617280730352135875056627087362602362052082949663902713845604578547384338246181894801607875527557178394732141964791317111385500422931787024189159831497115552383381987175259035141124411219457778404282385190908340226143423360459771844613977244951877624513129297706468425391934292638563581543286772326906652419188992827946526292356973925889587405258125527050883373843879945921815328042148255197575870025866383204544537765738053312658523314183782695276531406873044992778781816147237880829744102970862373423313609545389344919499476627720592442823302681973351823386738206252263055285501636180179808611907162152604761110931415696642630208201427179947346578741172763446903775498344282264521239840929469559579534982567311824821263149289051253332456102195516655052616514218412461524478449467016502668765466591942881131218166227648048588769296619456048452382262768187074118958702468089626976223663819986237556915200366358460249807860453778374077764239343692297635133796713545128741707819902423064847156538751648126977135368881311460828711325691594316414531461353382620105143261684274529952499931910674383764803214950870489199804854533184972000558183631162603009944390553692419025478418619718987948249566019939112132979421103977698736166057406215257008773075867683768032738823442721611523094472583904666598979148726887733777546458520091136289301449771803946247580596230931787434474036181679739605256828157614056687409820142454925162628587215712838340323111498311675692238453693469037795436914506045816380186838539814166860990211215306713388825509436322066294820802781281995225496640522532169573700035996407194425078821186252395357930837956588269498593343234131309586886725974058882376211248270211315579812160485494206920908346405016631937220685736785315340605850002343794379571223071230057621561202858271793426041038026190799412743730821309490087587278046678059748034412128995674970809299812086489644491609573821121646527697163180183215796857193448452512655032162450697078802979347880509694396055836088775676397968673185140092502358471815796760954435559679117297029418836428670703993789340017184698409732235100101056632128412711563098484954141187530707044530289492774378131947103016108278813932821315483419155953443738082179566971457063828101635482441387848619168871723242883263951434989242505882014933405430065813631305301981693581528549506083612023082915064078198484398676455019146906755168535912953989011956097815323726812275219425942500612477475680224844699529128666471309825975236387781869998879646257356187962313301845613897664910423720933494534725093283268486588231406148906133756314047502372179522695264809137363504507097932201158922408303225597775470714647520055024003372599254808161798071561182744600041808324246993355294847297839594676837293284126993972558508692614538727584706909589323827480849725092548411856276421877591574973511716046599553856505379876782216938897836518903091641904963145275081889888939881237508010784684509578610497405653203726542058667671369153686045524611151098826842877105485908515628486130475942974767812071812285537763703360884999344394170538040753765860589958995477324502067020616220899401713576161929806362166834816254670437757396595210852760783000351540856211887206215464505062444650113567174152380673989010524305804222753527010700113248276268023240811486614152465498473359982340226897929160988694746397301414550174843695091151054357797355895652347043384104180842048264393975771772249150918128110930609428355642630397587708807490702871580687813391838963959075316722016894509996731986302800528568312238787930058172309118631874246782939615526239878011662915240635222906859863773706914352931347954621514077513096007589731572507252660004799895274347293684946302191635628480887530985518710405475308736656289125849002957433443926251349257376779219979978618307687855539032249607284052979447514079820325099456804464148571241376183676475861329242374884054276900187651331511900618065946692682374660786868782091642366112293519008451072738420991243416903884623822590276468001089714901829046103015830181861645820804476367003545799234694050130202978506333306714895934498677969077367601324654680904706793556569736889368274566130798849108895162105928627499482002852508076974611979840232324999576569734496909339291965215420470359402299475113034000543409547932673798187161527569461914971903056533386971967619661647280012063865580712482633799506737791841454505950055030331822941559213659753163219795390466668234404097338796110009724536457847018100921934244393674059770029221403728302909127489619978047939475973870142818976669498131150177183273887586280528114495282068953611359619961331484357156116171175947890063179474893254244735116598561662748029355224323685493540740304593020223741315138819086522786170163715069382388224401108338142453224389799316927923385935106234093323178910494084290251762421858949783665710747413920104359196035670640688297696804512010526821401979711151068142518051068126265792671701576687029918191497358447821168511144452423822423931872309681241011694786344216104389794873654313406895062272046265103259118386557571465999119912159541843295110128011016236713121283213383514033488440770546624345871710522559567793907717442427921490951365056723238541799030081367038103757859888807471647300358246648681245124029765655528433815020898581209175785646008927870417921786222311294868539173095752967698048359737715158821489558499624470535255484920530397202750281721192542184458374350742181539181378005200361130124046048547759299026150884398000662648711526032082818116002448382407627695955664571032516262594547971799270756195112243213611375759787295764667447445461894328880487981778663752306613733548524479604066507348943910427802158654490347197044605334046243747323521993029683630386764663532536039134612067372120166031324123911465979355179462281511405673468642651808038631402530915408411873685863195107629618770713777420138609264398126738335238866611848577163141631772495250018446070613021245060740178506588968585050946485719002421833356270951169710413610711634860201611131934723818972707041513789416589741096601353410388902001564871283271604633614062545995928603734465675577931631891205324066934094779069700815026569188007302405506191747970959769468361791450949476747431681147226271266235350963141392332867276496924523897422643636849987180279320462317200692607972047758166993565977742554936229891155616127547090990327254797635362083172364480960064329398611368079774697329789494902537431440700409579153751421700628979409497894208939139034320499470718230813970257182891235039383475503432147878039526844679841522743689103139091291629993547253559452126612355312501930746713386033677341316891339493593032701374298519431262441662081031436510320454729069340282211525258968658599641811142877394671377709634688762509160536310732633464967145907866600366683528279980013593908610703490725327492192767916904583854074424012030713730076780990294544175690124083740964328828372602576548037808222308372267037514519762732088550398348849948509202378124686374632186106736366649176425363474528269187605456000722603353263685942817438382564426454993818974749154920900714276296474924546949057628067032484405786180662143950329472391466598415356540802612103223806219308952168627142519027756735841297245363284044377186568190260029730988397886686928737722194467505616102567896239758513622422478276755395901432307190659277328534490385012369672708190859345537996417492712134803335915981467499457356255965350582046765718353881019324234554192792056538319111938687080596681030553706504946908785241621383175644156777935157376071731132842916205455630525462649060775455312926028620010901702085682594127190879371606783549533834486333041007080551364837011302545895980039242275959756101665688355312035689735473388672243891180013737950869911725447611507859653220346796551179685902548689431962170131576831830458072822937531056441845362734116744192529756194078538845710553810604522620891801861561380116866590370674327380298621388525799651666543102729203541026388879615376672672175993240155003450225891930768542990795218492470027013416865643659637748946062425979599266115568877656549362152652678781412069821402120993089333063155886364738394247844681219922615830292789683301300258759354050901023779107787215297486269660832580995959022054915312596566363628627531265990138880868332755706527133801644361109218382191617574644861230875085417628128884482242026258483971198612711386176465817560277038587384625729104957417954818852348481560501170630628469420332361828023709562448345424107794741163947637197176978049838794647634130771196433188927439500942183736686260132373121997213722108534075299746727826501836287576415804841960577400847539492303177243983620062516218081973037056467961644159198395443147221520675831814368239940518991853256777255356203256951840693820391850107836671573535299415952443077189299606297750347551533467328820774550685521618191041273164762323468023745762962007352744842263482511831815423932309833882761463730585335214479563845855585240975552565287497968578415687749189904614705796151444214552862393066380941826399295302294853818640839411662144582691591500854583563970107255081292829151398550223258898548129160411366972890182034907648102048009906109125292963502929980093220501113438041194687711304264029471985385564875003411654284586673641209103400852283012431534607758668072979003016341121303389100329945565728493521924030610002483728251670958046216356953163459138026378626010380511895444860491145803184020692685836372511975133206666116063585631709966744987389584395811712524218250039989591344308465210535381392221767639940909766435084673992489619612905780285325015131593009266762223699891158126638374470445083756085372396686341163489780086132203002462088455734319011055918180262566403556534998012933436910139038056429115441233098394611961088333818187977879436793977845653737282268690411135325585955906659978278063035487662096664241694625942338346946908762002856905485766949571163097587796289282181605483693352816805097259800966500377866588316324617290217081487581082941045062615241851632049614057451814397336428758500235579544901316429672368470534140413091165823294630873586985171728416303085178944231517058884970762028789645115224849134741711904903437379492062162394933685056301074657180656487140772646158750653479745578010947652381322366803881488099521996072260463419295932770245464920054967875524668412526557589968151482666806321131255756836776586388820254790735041889407734644321303410948924976421548105112755296876811904380783583344817583733636762724787048660004547629970268525930895144351751385091590753530868065124989475468686303325953194822622756014373413536472040358231565800879294325043256524108917517056552814887523098234732386401703861213863049629057940899734284167914831651963742435296163130040731616332210435659387143946033368271088722732129982984732291360780814403242507639378033221488368562217206092395113928258968788476157453758843009794822838218965223206139251348220400905577066218995567011753537537831073137766203331326804906613411278242976542433053097198067658610997141264292287283557804320572899979448081637275263541750395689246070163925815448466736851410393039364115409606219448929582938673949115950928012704009566787115556991943368951291192642049408202946951762069708289450441681408408192371675591763476210483105092566345163198572511893901921776143556369937186139219311701996460246199932559667989629034714370924961141241640472518645066650416911865615796903362080693462359273973017346787969288193513570510229486421018424876167544049895315543500550440942464449520131509963744871644785183247988395526731470845016421323466605941753127638926925060152721903410888041108095877120273724328803026798548104961634030567338469986023808778642160112951618740299338389903449240129433766897555833290514762355387396436468002749485861380158997115294486987120533771892491209551055761650561042667119540855880386813407713062155431173896636435836487666882814381211648238720922016953861614536613526332193067245624925092339069894199434627257176581833117949117492141622648030331966362987571173041441974304698929403669212401740632218776203003295557568789925871230773276417293125934564509937795674651810569903621804887077196142990632088637415989774648083754949005967827959624043518207487158236664779214185349930428932453629817922395125774372309562392002612373255309401029650492528279887546541804518663725984709938131892795008252166985350393137996579928232409912690397337456027293911007924581133094642289172598178998799834242058311629085169080567560762227518337496160221112189066879675901872816353356983328883327737531480825675219671639119434206839920098534174267880099845467484033694346308329778009091740745972930862216565306129525756565647135522213346927025212269100980388033849418075433226067787050590153915037032454336218849688010232452538401387986632523578091350858462426069684409537154648191755701161351805858081799100104749976980208659713643395862644281762198274994454429987724947334479790385547989812914567757089015155727398717982757753380535240647800568221157652850174487531448029124920132805386861041980185272373406241885893279863073088543870978308908366446235557696411791518447605752989444887539227555911643862705011259140382321912570226334940949306302402490599387756995636810932316967966998218942014814690025093227065347865203889847990983609199002944623093560912400910587496770245375042265103167804271355278983642218486750110431945667227661945673958623000423691309037925736051238542516549259208929857961604468689662528285775260000529945499858882310276516020722756344555875259617747156964030461737597559404322314560385843965933225920420231206923011294819390404281069265212243368303042788347991016316801831722852143300781767383718332231547799936220356816222298715266961836666675024659716997028562530973597418278110075127206408254234070843514394690450094255164375753125446982415784647913342746960099241421062052888214953025753600779383999841243440415794589541322736677851973143949685853020663048017721075626904871938239989910438242030477676731806535404678543333005710978403999079669362721186143012187547739886039424490869043799136057025846118561451925564432914019406453927542294779305886456217746824330008768346055087731114997156859174083104942022927477376780089753940745334383397978056076429417042461742828892803964368072233558661377731781728981179851805142026532992889533781019052424959221718083637850177080781316649150580520566256023440614863608460808437373090499957424813613777766433539865072928475186513743022376456369264524920366413120131110616724307394874138567534536745830434706811400489789279253542454447778793627887284321382895541378194975621215482054625188521483661332635991352415111573496280617598047382911998607083676180841355825700891859576227714082759100567477906084560946055902749326451518553791670693404787712284283477519341217657574955669412761035429040735348566499810852823880678328273574929107407577378661589943865798075744386409440887602334762147567314453872690071090709421544745991138365347785086602131103631802390007830286744172042923294967508492795514244802619214297606449053835739183079698083941337541414665765954444763100913932446711849559126894121887475199839860882958975379403241898088362081176944002705698105747048908887941252599927281299819713022993596899460030193491246542374091320271949930957302536622366052333580826923012308161137407075530965217515001194293234445826027672297624830963726807857984389316885669356703767541769970731443053929715253585306408300519700782829370497892763450862270351364466096393031439949225544266653859459525872023901009219821875627203984703317624855011662476800061160174180118230382133615643152072345094845328551053434462346014314786970952394130506693980621669493707563270015395975885416612059303869373791438064186679940735787239386174739306847019805484300557315727333895465259089754233803599826225569851620421986198077888061705200592771471240488825123506113220153370428340670130117597799743102119826558256972001350320000037682411440819264660207081423806685029569749539284563764101783038188068052044550199926908824923227001788043627550301977255873037523130717942236720351863129557441272999496437324083488660520079223519970751649731449893403510884638114886091095129997388001962849221550192753819682846732800428939474342530244060626538265501224444530426338482492156161370345520417560128391632740567146412120042785466746075772887996514608703671513492558085068542368436618555574328561965688795792329419695241014663228912220238812374615471406757941815928323843578554362438073664345458590129555786128143557794688162183742448002212442702262596154023702855924484803422362739035111833748137670915422781412076846071815755563265666412315336522618562048664485569806761598342924683484552278933600589643405756159881414886044522680695276369660159530651764495909362484352412752655194234542810091724949592067840665390116575940323990144310208796467036739609103238389044678587589251592802430584552789179854547341181076580553715366639149717651750654871557396696711422464754069376979161381792846510376348974718104579677021262731029743120680745976047448011822609580268076010411759506625595451653991691552861016662062094174391210473372001738066377867657384246400924185377878404067006818513057103902144602221906340039163552191077521589840841095719095973047705876757497763185597258952304297179043968194475858618933404456342770751123326574946907183122247162578761866437007996458599836559884312363498772527823268067396560976471889860747772048467221804871001901244441291458209881180650377780783568275985253316219199606759380797122147888376300024904231125449345777324473785181738345521341904566850632040333265858415772129972319206885380717838553504407030133793060859689284682750699559274576473526882954397111345192053338917028148827830386349926694563367355929770864130510847432343785828160420274128268927052684729075652453728820499272867130954504432191060193370455386815215697963428872031200177366355701312361268977629920352872099338615895831303129777979286853119965296009726296019678631846977371944771793533380862084350760677630635011808211443966812600830404168478604180127112399844461890540139659079108721591949100634096628811033522474211436058205709778768196943419671841980156176446487083179194232598685706350575202493939944061974672502664878564742141745861149430959775666328871529829899792391555804874651796073422185462777261545389797984887316776364461004028419721852069958994292912212959463442873596307704248021577908296281048440313446863489779674328470824847411546457059271007198896459623629585750370822694152240439315717514258494627647707920142991800825565691489683528290107968843022547106100140432803866607157376257687519079207009553716364425767769673911462104374745497710551945476527505539088120113453561272658159296466779124289583686573906351665548251910313169113251239685366469125387092013620250773101504235647817159189486355698475548512875289524921562634543977604209212653161042697239160490584561606105193484263002172105577625050145937460422083406981426428547530279447145909539992081031552462006530248856060532732505916616569847167154014884851403985290378662553450873599619387151123338352326149307381014374433729443286965932819877447525899985707259298216937626548341379747635892005681250994271451569387569201129507553204817845836205725180767062811706264921456390179141563714334093290844208629355489308702021022335228351772534945928920614761884239931834102135121699306857309654866242655812702608666279084180720630388127502087077411252576509853817329809259545609506271902302277274751526560963239968900785614099053761324812435976208379074960306040580817607939540759900221590012649113231639002036354936408941863332973680309093631309539451679481735658004653953097202242015525730990156285458987296890222558855085695910786987171499797625381877389205926926788368283108666679828987225917206991536107098314853928299571712800101229295071472140526162791777766106859748883312930578849445435405910924284969615062403460160931172363612793962538256887360320216833958289309919731190014033779157549029840131968537555875391299676589399529344815568007044499995869196024342820390874644385974072324179733249228408275757012312763407012800675777321643215654212736169464406517857919622018448645836452194278771108751907697501840629130898103112955929909803483681714850330236517367546419356328505012156179125910435697984666484980994440650653623477710546500648086657994292868958964517268367212791821160396493557134816207036382728683555677395681362983553055926188294217395110342305993382800453434933650485445338711278239220109585615038573755679799274853823037630965979656483985229494109940119735276920782583690921981778371832175328558268647609242163045521433788421475944611289331581029915384211165377248051978668848776612988764884206241059443130543922110270298253707084770419529387425229022604980997807489422305405675212406335999208411848949727073560787356721577612763213013936357976509547296930286180832367369762658329445520748720509062458773939268466827524587918760622766082506474963036175107612653263844463987643628615570553033961713763808809177472363567012334767979373586982795692138900792391070498874856097429482226453217974705002680146096514202145258798414552321884282608136314358523410167498614870140529904389366233960616781777634157922372559542437056077988252930615050859530693733587694821871699542197941906601582553867417881863476245614329734559065383401485438587532674519169758801772744529124366940591635772876546669987047357933588835693675653270725663330223332633216971489798809757743185870246646250003971894472627862476183551195408864307744897931408046914290612734061853225387083416065974287012125186514819196987004832410196718487339315183303453035723739685625483011163444946259852470539438446589916811374300157165441951292957541813272819406371884217320641831338732645838420668647267661689212312331336614789481043912227548881411036132469402562652799759442429579421514290578989166585478089026954527388694211350879381252467524878241473406257566059949378528558324580703975918731667303480961566707347190750497792071777343696410324742794036053724609844347035750244001813220559765286671715623590848496462440867857063508124299547505290043714540551083096479145065340960926370880041640171006427948142933720074992095713360514997215899053641706532926019906601117357306945161865954765283714566094902559115578039509266339596848100197650562640487569156402238243342554873635260168891462964879643642553535001057514181753727965530462238910041851282957988277713355869441603869437216646072488214397252188451839662576117606824336837641105095609531838204750722144150074374555428170109529311008905688849691222611725998137216779066652411159699680842413192294767490110261195336088646061080186447246019603723721404175937273640268619117248938432998861109851999894374383761454449950191638837345941512455937638257157563256270031079958127068348559528992108866584587101120009551291579125845398234750656423727965028179675551598363180182697043400336803705662554249341495673558437921456852548239359059369705608972971116810527412693450915823670822333077649940459399801554254844294447206780843571070562068199161165668940050536085048707925595522172175156548628154420257274781200438790707584064769133527564364836427613961970978987587222188393867946995082300731799324103539746892020931969758962651632527222622553244910806811407888539033185023222045319782954013113870368047219644680394327352924711602791843670660575377867580501212789973267058010915916627491503793416749103026580384610255638146048693051116484572589512126062073205835657160534050479821614588429890487274584797216192470857375441705307781048894498903614567669846726532961108537857192251412863296662713084977900596837395873794623583692743725597398607905245524214618776330223270761363309142754384467688391471251886560613304849878406292259737029633350622658010023672825824618818943498344988918440504250040691565763135623168671415783947452697579970783004724689114011823693948147951220513986986329886579271639265148501519286304503110618990682896354568800274603511704858014694197220609739413224297092914339033391013527872562690166104109855527036968446013590151375089200774413644454001642741425064038535923190530595904345562584157100213933585306898285205223436989369931654113951528635543876498373895448389550653142394471884081252086049367943308345322056059062398344310151124273622745877611114654815460676250181795622719051110187077036611760540306992763416968742476526127245564067757480898852785442114438907748209546995438867629641650945498113029351627927409580594046824995779933980764617179106133266328040770210151758910171061896890287851642460278454374628677977664075798326775383373087132415838821701804372926012134825154225502290850634856863487833285864668749732712961639783261967500923613303602422385884210121536315251515072863794382567231196443947594644866221673908449605610277650136124752048516259672641338699493804788049742002352150207621426229982244493836608724388860312491453298232410412551240551008537393451211378583528007024276639584831907280150944879733474016001204607236657675621636563686484581887787229752132154704413732333630219115493326872554679087535067592867971150445314077564166419511612042100103625624546531457501797094411444932795540722397350579081423511208042938245997192888713012229589096410752676964795888282135604546289872568043539297894184893561664822060126021998030889722886865378035642149931594197546529986673209093487456218652374456065283290112194769390245645479666103059118907152928435589372124360013899897570922538514821285320167090660108403177968915909002394256056592889857039039942410963560208139356750322356751727379091475948267329310781474447455852929501448965271274057307838321037347195917557500138076269603118208818975640530301519120760020121270552202206941572623713308837871681845437314798284959836448039443073448605014688029731479880250695593805352172538519356553673449753211472506009487140141738569909648901191432217348883154040276329754205026692835427541296439097132654837097446559523153188740138238329289245974461961147148871524713373363236087254261031869261865184605461081021011959256355015678488802946017415540253593464298137265864803427467189584201542067415045783169449127351178363972504934796786396830172311921312972421858643229327296136935566971342330904526117411764747436483163860065879070928860850263526517680256298614005682618288896913137187334697742594311817515123081476839918714426068329723178588861045323626041509443941012045446424744272411112085092021483430460196115466016926206864611575474470234194026025416178141719511878814271680767819446931434940764641385576726985276890622852500946758609053419410321072651788031189398504838841582397730041272822678397939222585136376357331063347002763956391807029866920384931414596736426454756158078715567041900006953019945588335967529956564490754565176325722201502364982648596232315791650801179174505714726634065978837953731115727549666348467907030387935059209370404470529943712494598068210813722496350252089132929823118673921265698588942646407114861464323884451119978707154942942337078746312352385903620312711270603129778562232581096235016366025962454372426618936154541183740026984614119468917771481544226264395384117409407093709643767076398588911900602593023295472970081286311506522201959235408222780156012409235019023539416890999834452180533270932965081188789188298400500362599457339159003777022110751937788760356132093854913311950307457824900246290122706724909486792716795566326324967124790315817075733765870965130664202466361847223934764668310481686288367142229939619249811657437574763214457125627021099069240241503885925558418784774326464433990948881229735315074068307252716946917947278399731280349398840996883017548644318629692306932079829607938649071497718252731270145437241400425466159753408833613024456913417342829990293517581882473670933057789317146017845636385354618559441854803350189326558867103997796789521753536542518608088575155099725295493956437751578779568324119051705330768175917801346802577609201316394814644150283031307243537580286267489787470938550991688636687648066742795064165620015076192093131706492116142390327325786759229715152279735269748116769105983757032779161489077387586587141838363886877557692956550073922713870909622636912674672995397874497825541187734104635039089052064030482639593093956876625230577386945974993466291072669398087381408863011496575654340145514555116973150579648535025271795277358255772223427265849494935307750460275992477114435618539315532792127108426887308455819534087166172549893707281248508982396769178857404766396522949617109943406790563952788039575591830934313238697279288155421721058287844530344707741315913520058124423861583071216290441003740806497003000787928081563886234685351968649178252266898878877354832705451172990973386145715104438798313241200937565316113943861396975251173223320949396186623406071988332945053397623235351651682257240942321965338527114141332305877528760414723842066506231911460138367229939383327064588355313891451246478501951715274785294215748857645465256326234142867510224138179419294631612144669551392661696251321008242763399547911127025165684723634604765001445198088226640722936913580588340594572630535583486063045829456276614036807508705825654291230172518920886695206226216053535169301872950717076723627338784152851205135267911386531523787674291800050076281886857133419108645952638430465576119785607604046591334005159577418302533518265310635250989437168952569892461841300012977085997953098079100737848744104387250041710021112067467225098312059768166411701787477645104662110392639603719334105970196738812413632110598078622828483898277269358665400197577112854421715099700258778703933067129415286919639766169796409326080552236372271244800957040150565590900111461639365777725852739910858625529592570722512312126208625803089463546039637812343260906327855975132490159160863130201142689863973609723321374063564042155573268036909271630826719527170027766655615269345199417297564416478455215996070001526041140481925012882570928107649308180653661706407314871445996316250615169540508570941328231693235853634449123253156375051482916974253037536304206285091018468621479109158294270486039903128741830532862576864319456834312836354375631110353671616543732453127233226708475834143498635073299201326006896666354868306918695056812326011272369461946738754555063078771631306397630085815165843779157143730793705742795692761545256524606404068563100333604772888041288823975873529745963662593021839201008519409034589511730966532026967146221140558337417263899725143635184509128234423318492294252224577627646997531271646882069132309567762681285097951210595813164279299148873555532997286596104670479759214019064440623725006330904721552767286698772090355435704897611735287637850899786461744495244008479445541284554415982614825933276382962430135121108167887645827844946515881168870103059670222280773695688140669076748209630967048158749709296640608811421921335978614999847066177179020590310949046148208072425578236594435406439476073397251478578710814741405490529944786134949370461201257750787841943103238967956191529589175311774343140530830799823820604911133743091513642863950146046663119758373866389015623360058896107203187955499834880986807230836970325416850872767390620333212814773308062002215382787188797206877867838516271682446349989308362041408454367366002902140532942186263545635188655801052797046236168892933710537675605732908953835224944938760858323591396485966751988937390297020097565945744273687737348655078627034830190929669878340862590076737613430825637928120005427725606263221098332700636459151122998300512178236729099347311088293171628557861754259150993603998920280153108070307267510002912088683714518155497446497775056861220936346352517304954989345814688860889080630257101378652225103116038568798938179922485505240462918947197297383761202287233309969720017152353263889866832527975905100340661257883390993253033026894104590948528317249255941896184843701256453126240156996810424068541035396528214565715965167000594667474703558526892009067473883881711127312734729836817846075356693868225759699124091064260783185243129795279189441297306635453663613723323323029541809511630936114728094247422193758190101148846056040487681976349792499841067587366046645146999888328132652151174239366680536846290733983913531475994049124209303571934830262488089432703955304747140975411196948888727317949465170126431313335286203074095390417664769573114551493805407998068594985258168986300075696136861460066665171042680699660978200838200440355412591261347304365962588946807576434415315663117863857207565356013023581393216487445019152266398720973737014006709404551102171767732798149521028358300217249738548795936066794268701817292027612741905399103384514238688951644777455327986995202488670336052481008294311822022148624959934371206258391765056987320524556663893740875429028943129678208765733633551341142240748047201506635635777779248635578321103264717168497667377674708523373041036411480103007621284182854353870789756827126439011406225301181353696230514940414912705553790440629885845659061527186187536859866984781661471705124978736581707250979586834837547355496122363759072399326784463074994269280337337417455802193669101030713530677983418755434356375592565059111100505135311469574481951090529556009255138211006213863904543310135208423567514544356633322575175381608631740413876772882640322330053541801225188167035757233115389908404802217688973862444984135817720016415954883566930127360161635201090199087858244590956301150663020270549879837172673590308632797081150718757551711121955544031783621023823923052541445099285590132663165152128851438853816146246760605757152221950352211878444910215063403010729913437633765933714964717954398208318693603911391221301970047981325397107644576280447057206583228012511961885191185859295484141155529549912656007278185778643994742831576595497399661566057614596569403666725898695756434795668940308407664941389233355555167919356877436188440518075562300384159409913643161560493955351629262686717361029694826568674070459727859667391815592498255861675409849217855250585751365678004008958361746985176437015903345851639400296403539487896808764314599334192122924289367187181324272283257069241549546690283791076780602552113094211851788129936171351743448349804849169266907479125101185686368948644018407580092914476286319628998385294529130359892091465005031740072821001601402430376008035409629680461651314001127050074003459968111293837478285231970699730264565291262500869691601903047910497784988629359563925209258701497717225894392282144389336909548476140499462650781013499675702761909324361541680551037034224826575119092955008359723495549242394644842332461357902190844156673548223058125189372684662382528670784683455885897686875751423844917375297397575417403034895052474938507904030799615968754275063569050501164275467124727604931214946507535497704958588807985771560166860551751432668687566880681011134039849547048843876227763700536401916946398461099842204365872792792870738075079834886366569943070274975826513008319367176794570345649345070119932778016417215344013069458626226817527523637864626778989799909556264827339417597031588036078529030174248141463359067054398317997424414148495146031997081665007558643250160088259190011165434757272284280744112113870063223541712889774430663488080036265360304166313594744067167958200257344788632986169333166882657760099041970961320817718908631578111015854538799938038393019176137721688160701774227500401865949889017612268109536810802498421221067695126522052738761044946741009926380344100005964374242970188850527896407408586261418855391861446184670609991779028754574654824643005115109417923470502475155959069685582394042985552290307311739160125081381170534615884723434866804505593618577453548663647927482444358984960825050616979962507454540516394342361989932822985570210708173229787780177930490115995940744126811426238079397156282104436877883401305052788379381289562788139602857621091567569222690381570170586125627380917957249998092204750282306525953712538218549485626313621290059347725499090934294775393862068546646632424219384424228109293778405847326576315764377830717050660922149895092047583381187854842364472769826559782504825911938446698038118364015950415941409940455989436236801756957015013641159464479788139705147298295337553201584132678977249402166341213627030108909331733716001675915236864011291909592824642400939576237679670799245617851038833373572087252349257399237830321064957084289998970597704734820477863741107563957240341689073241164580667526510933706875062170160956550343444366258220263977355380452305735803542739247980752037733779292386540602867347918009719097868696523520617056369918911630123942662925753046203376847475969171121005464178351687771459608075254789886958699122093340666585839913232738723151885719094420494770468484551954354219576143605726906565777883289932302734427473434190730960559794362591900593631327063213421469431922039484469349153812670830756385453581849710158074346133320021979991180183448719288320267569991620686653353526196331635472742135937057361381968832287735641449047007854336252722902425109693132357371972874035076981885786011914719884207635854356976244884474769652208195818989453995267143034996210660399002273744869601106968694653751497293148838121307670052823128288684754162399364943558381811926907122387601309629615736688794544317735225220980269266450102442844251768266746983866687384810850079713061503844295336554618027869941372623055273661594956549926165708413067061510030302747479647808673352416541153543456993032133009737674350234865145697394027668174462667004605990578474721202336756326613534981604320172491684118537331377030385943182627348628443637054419963913032694224275999469136154983822637901874615662075779389522350312010569863790150697636853196552232746830540907711858877103211519987537998110078966481260105098715024040892968528311519553290170937729470336463132796911174954827248052209294132615228062962603073440473557981951739029368926143205894062861342016284567846677687220476103955581973053283856984808234208465366404931199283280985436185916793094020986650218197199410360730915536169347892429989803722258795121310127921165183517741744961434072851767346783951571432303750754548789613439992964102184741800578601903498364371019201670444453171009787839878487884563399554540947237321171922907361533803727296156634926633971863715654563023929898850232482997410204410079891395523619395704934148699510088865725911659329896097805585528547272809505588044186551611965451549677812585157324148858580880395617154463801842800482286599561356641992199174925017424030666699432178440706203962558781909129926713619899999343657123868549330866036742331105725367577545520786355163840798175878277327236701910388400074405117467416083536083590147948853781378925853809016247746231844835408674258154650015553851895396272773358203074729888628962624952717032968671780539365932627608660658823851069346514448062799773617880419954045400719671569257420948980290815386593112067816325241827973342428317967592120586117343013288999171026998264141789857714237584558654567569388257922666436961345460339117857514774366874935303387304471597630365178698955158357769745835009780682626992184227711282805330953090783654172531549124166154119941249873006558094325015455904741708029759609155264733259701967055379927989630414435081359732860790908417116916955394944262282099290842878213998739100876234526434159666488577239496959987161254767400567136524110534341027871185125921442694581724064528061133421019139273701239168025239831586546623989388130760115614120538454471815739689905664528311673418037499038556765663243575141319164542599444618683046504074932260256077837523625595784785667050860593120687506121507722394050794712952931992553785863068974705522030354737350897680075125762570850550221726579995641105508689738577923700346208319131359913526414141921253119873578813791799642568008020811774770963246580848915839956420650554852111394747603350625055704985714234763974437856925191541653895202895564484998288454726315963431309776361563776033337368037935339943778114632321031317649319482825629859972487315873896573553839404033851920435050188303171314272003951968018669987089209735433580070784071776068146195446523413782620060791407381830147197389683435833767326929253071857715766696544431483047876211111439235009145617176865465629395741927244822453287107778935978381281431765263497107860355328322323409473558172760654821918347115240316084081113349668017144273064440626195284635321001275122520825918325872022088044074621992597878959880453459588729371473179570303958261660418006628566129601514559490676885942992764792239367314899585659227808741256284752406510488198595345036139307676716673902710132401252505620339971817414045069466939102343494937249714422505451295633174949201066999436229575708298179635971288871724866720490523126634324362956279266985119365575396867152112265370148610296164828096559272708017526064515630257070439148618464328815064153630479761574605354870147031797903531053727113631530284772432236257815024205796833663036243209543128041837270835665692370245192504374629595090502609988228966908434101345479628093020020481628103932933687085219966205391641551059427955071016802166631221007098489987886378891289248300349239470118873280384363888781133955123462545693925654505429065977390630273722761836152530480296707121144145723416505653782843565468030746911282898024095987396695168479573987075009703508161496195739065910675529378043973715694167424083033284417366136530139927064666785379392964629042309883277084220356076377844636035470952236677111285477887557884450835645643113529184824800083526475006791506243025852262600659672880885959648521257583736955404899051813787092947961217847653388225656651959116112312321750646923675277054719799025205646356956264677926760512695496577172647791211186420599459731514316262311396010722091450779888517676403898092097265653747445508076708485651883948775067222283916045090039925211993561168566555881202788544000100748581314820757797496307093658938314534095120671078907969927176250707089981415120017516529887765810371841773645122405980233815342267312746629919815961391807028368434244830769242941403684855203727299212097060635031509186584857643722036039552746368442345902001299450637225266822993701323697331317807200000919505658622347266455406565927837969085918292502413373996711696753494036611310737960007595266638306731621302761897847952189041742697331859892849966575819058648582258868633015611142193732778762545717714909493242642142296909020140756746236783169019231299160763428682573218469860071869577366383208865926633299345275039213804478663455802514290024472922224581616320438182824871532839349714042468887822073077058453980276157556202610940667193433499829924935802712014499017596478294605753535143406164351482939140616057136354929643469960312471603682200227330061581924035468824543840838995358203557218766283494991877249670554549536160289330076764974923416601334335358608012156959651673394114025446737333489669461877481569748369046216770335113279434027908130348580870364452099345664689126984662637265611849144234110503119934713813063136222304002755501102596243656818574588829289536225050056404195712691339138435300414856992200832957721351556549683679032715819730273164168732121293069656504361775532291628657175227719299803236457181435162445034778209995704232681348511109203986493228199284034707049232420838481732086085295683123057738276005709925765592307682468127025020400500770425061243631566012955018740637407479658011367923030313417859577926227479589915954735892750830148021817590170207140158135384485597582118850747618658252888467257977003638333410232389252997004703151209555397740781531112882696144391942699085172736845377503473292552741789250721232236410746354550223860968689926008081773913308367177616209780826116127552183382256733040533926599464875763195881192863475509639403402145342113544166611298187132674959172849885294957638331209212976647925711294093830601069744638969869430146733024914870169954840005273581769878766290089226276906453442912566697601657049655961431761337560068848813871964518577443536024254960360446428689942829231654075854834021329805035614655587358412581610221744684668321895684743950933120164680475849215478072193406223177618086905419242761521994041439520572355988265163654841374825593711107058549701193277116537857518773078338265197151182121109737939488340374065567341149400509222506461015714276243361030046520227202931686101516181300286282468397909925899292985906413735810771491758027820267781879827483860871689513171732097275193919763419493131438168025134632760317159960701922338397563959161333049732541868129400184120362233333694323403712598256993900287395429502328335069397487975721541670724905313483214647708124288336964757734463837545057817635051597148725387738425875945892362704034668227418951227062113626821787690848562561850607444734424058094372790172319568819988899679647491536931548795199244919350382974618623198462165356558661072915501727848059286369377482629867480266077696906431221147106171853219272580004093685157882830063806426088841565294498404615113723064284140210222708817293243539156574120284096104333095458264336793758055680100529462972143068126092811219198340037675474308345288582732705244678095569367873938093377473971907453875078626607699743623761766979519365031254205477142294395756439875283874620214809782646805785743163689349301911790812676251474701158177062731649825275243855024641170991224712307847605056391005236693198654069524781253246897217648564225230219638071044321744321251755544707165904627660971583054437324742939852634311728657548060701602141253278092773948922857772196826623529675713582078766754888383965492348661587581081233058130302123524024850816637414734315032233189998157033182655617328147804296662084816227857886635267264116149514672363305271935868775998780807366043108544068817910930031162034097078935913261739864540752271475114505429543523122588143569813339713541745288830920024129331307671291334962850368508670850926150849265485787950512712567118379838617773813702715135739484071228970713375215844038343556171661162669111228508707170048943618086211989817885880799446704621606636702072298662518319029125828503203512307988930612813303049673283456152951357211670561485798148986729093655887920905052079804358031404486715436835084728350117952459788666519248354765430974571259745516408193225944828889053937616481461422791026804667127515476226635776947146833264365224109393727437033056886429463553163083094189071584977290156856215560284685626337288652295686667502103164774637580822121856779640038007197971909697478254157042143820958290923521262562314434445289613640893804344198660048646529491733605941609322252891707663957408586600259708701875089980761913919235987719992034700229716469163536440394162468076097573214225472851263795626231290446141213853975199986380720257491007673655287012658122738219673892331647905742780548962184240722676872981360004145760082123493703305846400311421642722669025913150568764369071205777781819242163019994785550664123563540417036254756576363129374752178364880898540793012755179279010192206409426081948142109282410922435355859571859823299719418313263614933334476272756745018422853803840154720075586366492646163986419260181829413306227341348132378529774942872554972467515187101626595093046761151265657494538898756439567615767502707867433715234778323221089569909468197636897708380361939080015976411370060550712811196275745659406866175669312011285533468143245918929749398756677498206870673790701648065685149223597617717570178358627923237790004435295095415709770329758074651843562015531857820111570783642469253312558890613193920746043209112201744725073486987913610718506433368548471580367758718076729398293569731682805799945350845990706857150988076547651548205234539011083393305748327139470770523843407846476388190179269558281057117943441941546955984906492778814830829662218844148629294925255875150596409488386574824132937916851517348905974298439098419816199413118658805688240410848899081853649483477699792285490826955821026776627077890188490775922783248374227772203498576152621766871848052795275970589378382503646147294127940945602002923044692835334670300148155210945322390349561646222461792360672466123785210894192356618393216409626553222620343730534452631071989069717019240472626554845393372849268343126367181645500639171650150795494571585421592570871539731089841246427385450920854077813326464618284985272019267011767344923406751902788352835914349135020928329396273757404811176945378225700687584781754660581592272391001550401406807847058682598156422042811838056653755979736285408923654069626546805248157250062747245117853844200954104184869220268452644712379991716358702488608901922131326842193083246310240154863411406571455929546385266702740846886474144982338222994166405079475276788870631962862403797569068589566798893963904884557251331870496394296852726081520780105193434936610217370878729677284644033437929492374627459753370380005548786472523847664091130835027486868087142072622678414635764632336164672465681976174473965375128474064018887310423968758657779089854228073768870644364237195834304334294812921293994831446752891980132408465750836543088170994971880072800118401678181456357610972986787086067940835441307627649963464656894282369089553391902737574246353146439246245957522348264649649805250709684796606522214174414984685024005519574191025553249665868550691462891963666444801368784264439117412605149465011942605369887350952137990561560091430019535999308967325079734275600528549169253449189988855782993974101344734863168143099120769171296531420994800822682652884739859516738973573835201187243487013240912167180338359657075554498005058276201952875516071371592360182508636143467606947074602175938889542180352988956953018108798194980300871779956413461336947591122847772268541158240282672034220383478245194491648743017939990758419288823217432904590244001265801346150639810362312281870112346257698076298067460121517736102561779348834478685466318135644924947597673816522795671516298111049895154226068954421414350825168595316313484436371332478623236266281254247715641259122101333581941998488585333811047782311691376535077060495936414453696721918763567083638342267470521313359596589426090096175611205175164714664943509427402716084747078574913176432590792370096123343778294316297028220803185710638701434134663779523459837111752825886197084723622239594794326988589646662193305019070782942702198394604253562183999024223547776554999532400292485632549793620810167497443867159557206226313278317253351902724571724777486979998436339237163107754176604939895645191674290551747047044279405485957320977799369645560081031308811096575186175905748490516192265562564771347959081873085414089190355978173715683388746311661224749405372938731015843959699701806011844614550975890259095384738872499290258109043802373400190454247495178105427135391349189945834375843928327418466805463107911847286545814283333603860620418130994835866372154127906936223142110094321433071011601959937488788118186711332379728315492197155378697398849294962088640613466257027213520987492568296739864432727091048299711585434024941361085335955783464668172321525724576370328340432704172664604424818897539272856195167587760550740867027703426634287436143658449815364473536262260020565039312841429780738097089724099559348755223419042896980728765708490394809658196865633370622273369137614970531671507959791319287170950714841225220170711849443805522130082221104588718557842241306447526893781918128653127313011947156050965521432328766543245344572892550139574327760733788300844298950933800740151492738166222904430758381767015014304799011501507433830722343141670297380152864567770938527815910882288658887997242857484357119631230144845717929335218197099098411275445652760403137276002424958721867331561910545254821118771051925669012003538677458106000430011772049592656643959625856511733216681149764163315961064847086513233100029865469259635306435612460401675188551845496798904197067723960348906163268542968289925367945651590719891442471586105210500331325150121156526636219695417385723687419613868702806139531649673596236862488310923401695270407474791331718809824612844083015387872061477890697531948353111387511187003291588049454482247124656939563839704321580003305073009264259543921569020434277867602571658631033495962774847555136056775103017834948909219562542744417822929994886826247303287857153442765211621983139682886808963492261011749343137095418964063652716757563692439810479790249313848501241870673506342821494831899076423019088087507517887351268730130972283731519112330226522437561549418292151830704202367543270327022127702761681384707112780357289898000750627130944954501091008926715792811237231363118184163869051678015139717146549689211191667448844514201475048157241126893241393878103476302262800599363538738092861053922507582638594017074116186265338129112087932402663377103072192794901203736080527588194073104370896751251473031212312426256688672715206930446004756609701629975719151831811283370581881572170182849124610625322438835660473234862353150604228196346628290177921912596125906128261148100057085146509206047544615923699138740400543646137755349805922681552430748010801727025255426174748096284207351057274883990953480489426571550452256505165830211475528063636972728096514645361739504794740597888019482662166700177829859110594172719153189393486123318971623262682907715331473689870664571534253663534406617113710858756895808550460095020799373465512064111377636796812525916380936322993894537129972123960271361650756493967608860679288674042984037699499125424152151021810205236196093577015605406062561728976925483651833526173487923300527802373776906371459621474023110146519113955911274934479463622122361588521110328659535730702439508455561689581492136457919207026381484404871198121345467167921151729071403663915074906399465052802932938274810538693080714580082166964507063827327206463894023654600368640936719409530244857568781643013970936638248586771133245162264670937230379363959208987510368905432191639788365228071419686885975181665343884722576526529750400343598076645796315632826415847100381517098143491038991924916810653746809890126205806475298306497461425842608128685780232977562088991415538412559683314600433968700482616896331589544946715877864545330860600373018595297341283864903993169870169170427541056733089912539333723033221817421584914905172755589076243315000821271748047713773105836566786146666593074580621129174241570760907822865181231621007686544482725945409816405630255265909402921834007587920149356646320728446954544415335161755317664120900229921022811918100195095135328601638656250907400548027824366981264884918595313625901339505990467176368866024314852667540645432213381425051136582928366047641252729336226505198222380351925494059117189137701937546882569395788051518634272701979338725595140872597962764400178835636358388187986024479409273759621340976235978585219094545019259390912397361638083405019529619921609479430315421456171019604624675896123335910423113593249609704038110540393498371816214253602689094999242379872373551459556365673934548161332431198666214665179963259596676699902979279999876033940287256083407445928303647195160167203168513605808395371734166077917154649869018081337425031477446068477840237500784737148693068784187757026743002060298388359042249506881534707264072219390566197381257434370026174276627031996986079742672674934125967409570407980493054697340075654267858650355497316126265019408169990544300990609794314361254028332052128077781722152119211235894503832678224608717901105115336028308490130920658038520760859623485023833109124993212763557270825993289101553956633619177409208064344801258899932789904973251949324362225223049826837471311486505851244055383614440434008080979592046934894422475319864682210183756610800297930475082652998447423219753761029341566250507501359049017335821299192107533918310163476698519030278903409114948711578692702725769807797656322068153904562960209939326079768743433111280763678639702072740298860376069558567574936195322719557879745860342340020120091215320931818333193177104152608742898633192234105636682994862420908715086331807011008606256790024316405259266767944493136204982713081517047416228770598174187706872766556994826963257598141964465020049216845188706022773717386173552320433753724660210188247020174096063719768270390467069406892339871598949996223057879225287344992582324417387386958818078650122282665477707053451852732497028777501468544843318509797988441529594438389271965411382293073203915487949119275248991759353201164292748629380307428814999670966336816827217335255380909187704944862702403040710981949482020137490725406689699650132584525656360161113714818286303273874676660437901540085452997108494193605129844552041757182820262948468453883117323813806599669623073369031213968066469089889727477350947678333799760521561797141130902554612720286942393014402083883384438688960325063608183221534076271915460420844948603793707481230711022186817716165840608423664675587903195917869885693179411459965778224395119935306511872667874186010206317881163807325584720616602594709151005563301789135065579816548434272493538562659506329179128604543219587740854310147362211812879105351318106178335335639112170325543992108640788148564552554929410816411224603322063942380356402956257005857056196296102203954080840218497130471193790918943246293611643816534633184579810954189992303448740008853651617156013641983295939145310840497001193216704064321564490638382143456215692993182489173400868162274361947715913060834932373908583227050220178033806953517477942296069608662068970488853452150352360075126925709338236565681317066094862092960055031915927130486267142771289686890172674449584736331848400064593784885658014920694186229360424802733765655223623083919431896566129621234598810992243972808764674311592930471592410758213620421696704099731765952485587923212997975206247341248952544379866155284896495729945052620973165767495255097089661559857582458310518886773987998914278058874693865743914375476139825235312971952454923437419943443846463114957095819981399529840323387591404593003242640446742160963926787966882495883603324841015621677067606827873827074618882017161473995980062873897300217999600587527904514095395242915537165728071650494378728811951162959479277316728382559309592157336170706480614298910282483333748160328262177300668022687494017721173025326361802198913757379997322011202764065407759028662577985771425649785130965851929086831891021743954354015545204420563538215607687919268827647711666236685899324317154374457406351721708238135153757376700093846810170402743400618390178914930111232982435507710849420151231405506198959062524925464479338293678228829245854249243232677564394121898867660030740434184517460346236381743773832971371482768871685607240710997925540501648653546123404072020376831060389863771500266131712098363414576097878243458053752942395717941485389392870932765036982592447075905266220866017011486122390413005178166021055762464445322650161864939725578137733754749093238695349892197739471968303975714443491503942590728153861124418865562806738576927294792743974565266825310736274256165876937606238755236625007691960371141869989379127918015756571343576061576047440396205249428112659485500120881165284518647493221919615583123208504358346109606104621129403496335577740610127928046653769089696709763011909119519665134401678044792692080450689179326630226080429868268269737532062351917966775196860017689839869558721779470559118220071500087085099909514460702291017977581461592635903759286089534235011647999459230856795297832217116685900638672719731515973384655001263525908013565164388126068997994428048829059523231554330214150406101134212015378872433607391893026670367002411566121583772359753974157469413825442588642050370459753027619299100715686593656895573802233257646901841806384222210907124555443170930779999974315329284655876036275115928101517684266292666055209308458447853420009379613753597515858413998127556539135287400400244926151561628366130281768909869355377320798046091757707244107768540297473549168931238255686439650759036589598854193448469757820596916700357099184484448990521648007900348392873853680988133070817443157614786401174456220030457822042272571605498294239162166871294183896768470901543597323319163762006589831253211698778281384787105515764400871008322570015363553152562556103876333638802733845096072568211032773440848026135452925977052829349524664666449191973330456957356237646837081036901720698744922873593222536759069793925800996631450539420044319103731937161757016501749242028128909047891320497782312793152206450944896294260808109008005982791230705904944341367310883007299760120200404500311499076550238421725906842206106566113864414760565337867864793671420906590875673872065930857481176388797057216082851226922462329943629060137270533570018977027881642926068672477985786153290798757945982615274278658688000186538243149071048982135962297645223579145526917217253077782537619462455773774793769466928128824453198790325127321211601466943500405933813321090706259820355247303676392151082137985964915574567161156071155065559517542309320996819090902485500825403403841465015527952853603109746390880871930079314387046398818340470960702555878411257264375359044273619558477945224679566329534139135052444987765602734213339416052499837936834450343982081282323517891714562580998303613945099037118716538634475074057338250525708685525700493826087802105335811131336982381921933783732476210331334123978728849744076253694211389722997284453242060664743626090628876550261220469851112848972478337907415707095164458995437860332730720943355987817745693543460233016582055329387492958960748420897825810540043755064219298777302757990924848584333354807863818682892651615101578406254431151236904037204039768801945746489995745249801534851382160613915651213622180909632266350377949634318481367898484216287780732295785601810002931262304749067623376558880176038936938370927596124622601889166256490963924056540892912861347680472546668232996994003420388231266021402037629308548557168367185773604770841367912075888879036362642343022779371531228458227905629358262733320145785886287258338399078078091693311676999681396057358591378045680661305026285793859154377833060809770053940744868114452193226586194123163937955326246302495741412975124167768060975276532968691246298925407937208951700532343710222169653728642647750731913800750963952826118539602774879864995795505955110671199185914929924529985785156012525998454086126029226539643788074201777770278993191586764198598147140788761319881540860679015371459566740389039983242982833151658537434892291806053943194446057558036902744161971410306661105093838027011840500420663831943396717391751191659698570396063185837463459719912129401309166503084312812660655296879617575131242693711564908041834202424622682734238980743099953354239022349475043141507981241297072321499287154506186574026261959492903706753782593635310941278160321032413553381622259995212919793530833520973815301417245988159743474488031453622339795287847546863390177709824309971493068133010722658249755781241130086097071938594840403455891917771829136491524291568087870105013541216134783178148508018871955649886322471662419224525530084856193225790925142207094632333676594294555439995282207713686982662334514674695249477674884827017392231726736447053513243101058722139396787934820272790607348774034651417051780695702902254935472256855051230829225245199434963082410435772525062540677759476737865162579376352795053833408278071785151421765110210012955616244269026847866342197488689044211048135005293360916043861351738949760294470591936116699850256774977549892219431791660220667525596234342689053503265942243379287995028042486342535434927134376683010472406609795428688510708240031597059387958625236610153505007339876765571046577429239373209263677635386333169773844201884360221329323313082696470265754370423289182584861288006565260710828573052079348679550388181973591853580980569707035989927387104269668101269865226617653463694050058590409616125848122198226936127141686223059614142807803539055138478064689866390001612971443169062280528769949157512010046355319408057026428504553030633876576692700453441006509032776770628541600955402077977402357662023597135689621994023517138321497865492910387228994358216781477650539790427791787965550429442512259816421853518909818058588944051602898667900970339073522033975170052592467032691982341024124239010598580965897266098187343280527184990771000087721432505440472799768200757549847615359087513921550446905970786815328087877108441039110540417527621683272926075706678281953156664133623533754137310342985118109272966720137190120002027870188313890089768736792221376916663220145715884740391723675080828610360193188696480709537958863404338899891965564212568311118821159677786404140375891301843831569611788677962896982323503442306140102182789722147602077767262734768836902047604778586048981102736449943063698703721399690593090083098202485548802603748733864740970825668959951830221568207705627746973876123257123359425927003039626910096526227709977638852764761713964313962694470103028575182489065876957868837139476197507615475169667777727003045023964156482149562369714866710644658542620470330367223358263559407970177279418314575542370637838505543368209354614005463388890853760287323204517126586447308004575520928247105313189335768001751539707050158041086135296595315152223818812396447426263953183921008150979207631028511082554802758353681343994929222292847169733656548928781308781961525709613637625926712486357718940734787552587889109133165268963524362174302781606873881850273414152391183952330848965582971738020289926939699845808688720495502110102730414551124473823997689845715339960457754264190062729337182990881945355851734839466593042640586800073247866489350561848079094927649629203898247146990492709937651472979722622079877672098243166970511469961079049648066105405065024106548642568853758380665983103238196456351210839197418956130305308776220696419525879986015488842499057371257072251477266772648193060276479036945986620737419588935594284449915528188289569209017472074781925244980376433536198822266456633542073912082517231937172117837726145776115443808356761621043068670175390592138946509358384529734069004577637765483521176184106603037589748230824748657581051277711249419904762160797305777857381522997356755759557092568383276684695743265251720645259209362217005207195156034205935040683534152912207029899979904710746972565428503025442868438767694062725959953845803299224308879084503831277586030501988507642496358607404713496908140831443132778410116755882722486666262104265614718918842054967275422153423632574343293941788953059535052752828543492545510250121141355723834503697940468558296952109746741358707943820442570253782919791714275585501978096443518643954679898707416138062363880865817621713651547652911689324662887477682214996413336750843329039805294543185998127836956384873924777656246194761151645932730070709386858770037359936528703933461006301949728162044502351475646880110642682810089363060014627390929651169148377032798561971048640482377302948290525614700610412408853320714892370045165062885679342176881353995639526137661840756361194272951167393343545705869471237796140051539038159469815433793417938596441142768261845359243378088290004297718342688570174011902134180000917838822799959508110051124337465300617973944770208700793794072656106296339457683200205436563506480470452901571299876136110238001645975764027404308067771125397188409261253259605752723852365204637730423446356189034432641292640497871889531506193137714752697745528596706467162926453228280396705705986266862556648048834740513712873890579524923787154331593326540321702163255599293403267626441000999878921246871508006503974904445516477063504408499489681788667473781539685274656028330959109193382233333323595492904457770739446296592315017826485695846872794830870077899304224677331047753660491501122311670415149738347749777319066526715111983476612630053277856837340130290582006138342507693312660184534755848326504313138843064193384435438814723105781805322744339285209707197672592565577006981250430015256718995013235216645304360962680587462142725495379803153627035423187135949182713329585139115638607466618436910739393273728507816452768865956911008169759816855606747593632600519749335758590125734357160497867219485200987608342155584852613142900128122746417333712367915593479793580674231717153071932394648916048976263506733662652222949692379976170479709480414201400762918116277030227945653471224250643191964616445327491118336895370425313557579034983728366702172587499633216370165526505052760115579077607679543239901664941503919809611283604670653289974333990898633218435512629586328102901644714260130244288128356696083563465586123618836918975537113370498490729296139597034329895638860805919577664416463398721644442361133337317599080481885029279041704744032825377837741792002183920595553166518517902193714401785196833261907357255033856782168912768508193953703430254980130659654559527463849258442523708780706814310660417002123751132995645660448481798464528838496021841746592545841622123987142895518384209582986587552205974673367781465214432867199888779339028264397772624370404177306523647209349047196410679983091420044422340745876203141140516036348929381876612166492259199398385648672980258645978602456426721888393924762940458969563266291876393281788266268785877096984407477082087096971667866485285110484383104967813316941447407050790707070624242287930236846212509468794812220413618529199509726202535517663259620600390338739582133443609726232465070654928232733699407590930960614757347829972201888953066054288104163605223353162682267642850577975683912056967177683661527064869186463006307489924034652345453208985035115949694768676963965115478455870175087684834921871831593986344757596290982574027469483164285306204985575851012168860547682126904026149161630222013589444122402388792120882800969096417248617466915202057067758715428548321772139246344867640944216579113532003953683762954855231665639238779431424732272154987513886125636223390451549204491468438111790972374996529946779622115992267878959102294219321286582728167311932480762333551580013037839601608793454082674605703003861912242252528001875390049524352997651843938452248691875323308849453584387171794965385175373081295660584640378899611686109924213398578264742062123836597364287530180122606232693116121957977697070898977476822730652688509992781746191165818641575343466495966354901591266225177723681899034907039839290828220056088777737352840558733905979169780857830023907920363186799635110197373366472171662289716282238465441153719979495951304060591289546652217479715752456219756578106717630804951866782780166016855368720387990910702438161620800081999669090518683611071581754659837073468886978592477736592928303807854734366866536593282930154820039748763882597700501600670093782464353694255954994560179599522230460375112211955019007193581291396222333030115707337341700983849925672528745887642687699505606765348636378607731798561823656343622461357612624746042163247562965317523629534559138794509365256844632662231259563922918202993982236032239891506919588905815527388212601799167525739420215545967193476459493338642475043605059579209557305808991126705122606624402407691424541566902732428139249588347268430246551223299264143027748514577056804081214456927231599759200476548545571662949507628023936540862769876214073748175934910729234241801175655607811474961354986090062628820801835898608857353571972510829571604216940645833537729713407681994901998243524720845262397922498222101858964808798405982552485970023476455995807794713787418233310086770624071448742891710444379536561873272094407013754618625935031230886624570970949695459305828831062208606916095439017927307819741465951542092441880314178698381533439867510852562396162119007799309916454797252538604494378642966498529817059839609847272130107287421906641095852768342520149267703003695298240745989794580949212782576801026044556845359374869852219604548518519448843182415634679849184160247721512343421583411727424566265146747687873802322212275911812835075384314400220988303840694454933390350111059561009155632539366625669376889366789098500306690997620312101199094417921134279491963621622587022623647712884988364632111474730057900822930632457135328226785363864661319005148257200706940840565776954445500735868811517139536957351012375604144152363320914769414324100063134573942390396775902033792513907461652337151104075494058219493039167765364878858383226618069929411220281692010541293773375016464931442930190784954878225691631327821886402212339390097015463397133675032633760101787225298567280766738085374997750938961929707266559749261734483299480683650164277779749691331921281347768516693888332552681035078215433255627977641333448877939805540988032959292603601169645879836907117539593330824980982951355319980568710962260011543705889255593194378978905916339448596860145602881463089551707619382653022384532734942246878828903918519497526829305530049353170899695103305915694973768153168297349940545013471549693460243975683735130432418773913051505320195549206688251075260405124069914623430766386783826346692216151399005164071918911955511831543752083579341668340261714835999837295530218424155392226946896774430423910158810496805974877470061572262172439817289784219450999506273986005555877556055429395206575510044513650040323796895274544094043697873017614649463436279948966494472324976658044913820998098657689474957421483370892618298546779803358669669340564969368296949664925504203766398150925813539643881675841845483286757731114106984880414854572611078219322209604154662606397577193996411674834003061194200663996556132834684557977401219334361171146362036181663010132505547162230356840091751603194279910972987368032071953216659002357401970096272534339496501227411393925156737761679248368041026694218656333132216838217525707543833831792269644333610112321574524484784663238129058610444201255329609503371745237061340215834641603599469211320871490888849234705998961086862338120194031782707910017898682480370124522126178808022281806983287808136794199607309986033029626059232862761654238619252134444045594434550986144473797322126674283906374485802990789916941192276593755177353701337039220728837259338273505259316995094425239844361270066233607082632325769171239239223643070583702413625734554499927468952080387441863707358539710794094257602792420852854979243483564058887732741788552671058654397272518719127514404611728926927594194844714968843314290641189742597032468046652653749211224813946210727162801679863049855138977794783646203839204949493311460938622849841250604571102022844396181683556193204424607152750248718609174370231145971770997163047990540294855177101429511559535958376187130637974484681670286874026686134409446407129459670886888093043967529629550642952916896095567247286799586280671635285090311840103786433843100829259141881237751215625158140403763340790325760401041628975394901004612325686609373220883659360161793627379335600244907795850866264280400098937392083231239420937480456698161511777437138999656727278349942206757874072043571818130726861535208544965321113493312228560018111344201673282291651496166797442478431420556555778619522923661710655833368987293375434309878267432138626132894458779333232370494893483922416993538551531745724714042375150583514794746408432191018443510859435535242831045113343850704841280213038617726411767979876495655506356509332102437655427051566541928571889697367022479215012200243194470136468798593841066821779487666695143660712192687804570545160911131188880216957913932087955300501901942505342812380626096186127299277253824041734673844730264667955017703169160627075658216764271419857861612929214618786351957973713326862429502868851287300171494518170802658182778630914606784236583865119844036861259199991613418626809777726198195368871956224227831853350510318032978808884242412211444829181679803863876679910879483286509082860542648600888837509247541070602271503883484307772548302651562013976536332122222655144696017870551958905038550684070904815484883278753262278816908379391968251323626581461272542005445624826175962119028345239237801125001233223516180888703353365904160391678529753768737112892952780404772155285397549782790047594387975643717827029645537313476454419272991317758867365632507156123547362793444633136865141891637559416508063235001008262640206322439839925256028526005423479331908911041064516100005708809743260243102015084944318423294496638179196238790616524634330208045365370009033818698573280504859656830601214505174341352448740282489773018291002345520581998246470203054357324297792405669407363790497886121688909107325199505657356587276462220915043015208426672876432187567896881649601166972967145912964695316408149996200456221935876524080530127300100797918436328396331099281354910005320859931514567574127060281717395457063331691012794403045996404008414984590140996883819748427844503209814499588147605325348336357776029768282962229881240202381185949643597710658865155780719093307291117184197301288024098516264496563107321058324593081368278234396324057902277105649319228492813130642463230474143766960313253964164019615513430908995541636391286026942583448381844745358886567594386766476707537049733706565660239604281347247788937106755592060889782470206036284582183535813206935444696584866000124121124144398701233565110888405074100344859109463283442665407642512264245730973530928090721162517516528243306899867558428312129513411158144787840329643787440065380510828894844740206911860648426502906709487651140127316289844347546644119346742731084011972717695904090271036520441220631775732591798118602096998262731050628946315638629222036403979678452470700120870088115167571544026484541760960742836413319395934266570698584229493579243483531763428968461589943442029659431131355960899112411187652410165069422119226023057287665411518861315255025639597825012484481415919359883917318112135161274801204636501732000164352313380266224090437208810091837792310864032715032653707098407661876448476042744688686339687276707001138719812088570084631072428024974979677432110518996659970063655717726043949077798444724139096827652910998508478898163922309581121847458412591244020400989662932364641504359707763804120964554160499980615868614148280484471542970269681299986540418804633208386061818113763811825597838678706137299002186920850683105575048704887313573598596943507918033060744693531420301096253066336880798091073192247574298790512844991901926491833548335471115040425674255922088317541561717697284368742118531909067985122115937727101979876526354730660101361361673314259954028291450099825959758488202788411866722285578659038578635118020025946079790990799719001245705352215889223320151547798204892384187507498377819036327516277224921230990468035738127678325680914084301690907809083339478425831529750843378405960705004905560420991031045262968074183904510891230156759572154621244634945388999496467248124892108438315630949664600785331572851658002042188797136342834923943201717052677795784383043876336525829790024692726758915999454235221791572697924881724420404180928375942646813277174023675978703400307083968989469168310115200641659630213533699827592372649350622166967322664040043732371482248450975722338064882163027519361447738469654443631122862824424477290552174487778432969285299322703714684131994219733842455220331649490691079590187087172211082282542207731106504299872050943003648753329601746873188486050306114525884094062228301266088718107056088871582541109019307436482399049745962539691086502619593828976994930554856996852629271492766094602697240787133597341072210099425964965315162898531711729678139740223608791523991930723705543235950073142148853721250955442013787015635789923190764092442198099541972752608158299776043247266629649846409186372672363865491210850592512801278325007641816493088704450035953231792071651632206686694654124732971292865974449981711768643474384121138129392823639292151012330659585035957849160036529667025324270110513218835504747358702803775515062932021710447821916642359566281026768737831744933305063484414748479371791311936184983605517046819186236155061951489536631026181101378631717119389693297756664601669873470592166180148439888202229348783793537067994504271330348002958773752657810960598370705786642064291153638275866479599234562399388440641346108698249964035621398621645883875172793957189323052099324881096833002217730430684329692869440963118322259742856147134743758968796802548292938335219520088697554905356158340017313167746224162894170002607529688570686229667122920406316555873740055632514865041551410738788425841334057827408962921187796320597230162263667281011650008387171436096876603771728736171093994705242067030642387235153515696111845020712251787635087753757146165386833631652748157768234740412473938607096600754964101718886723637610043815201023444837550778971205041938393405766578317157625314292116816039616392473905610960166222415372778040867506997707441795122834601409179983847290571590412926149892375365479920274597664769176098248907374324106153968819384044814373367334739154506794445770564757441763255134950427558262110807222495228541536158329556825919619910715564875315643427890040783061094138925892648437306668047153563247801026493692900090561982628334475717016878566705500326220759542578132450980722526335549929611624703986634812848122417992061586936563751104871696574759691283284371591089151829433734385629150553143410718026675664020875442964861587325097376002256228862050287912831685135539583219563368258274379999275948347127534056551941480658995556218364183520927604860219870944270852682906342910653950987686190047286195399880088784569467205942314836375339764546395996672030801380670700627971031226614589727361498084228004577349767641935504065207125843521805082617368423729403666275153374612112086769623628131737719606089435895527927014105857533355832285262089519287397741399012029315918149849938798108755774625448950677517436866536245098082705846918011334500969799485361440349043310765890513340945894421657345075410942273093380508426611199266886567667335576669126026382866083869448031046813612313419381905666219661194988841478392304514673158231710211847379158952541018918946054327822133269419640460203607980241912769486736359227638061241744751258620491065238660557194733011555906176947082690724937753453421320521844004768136111633565311453861271416749316387698101408980878392147604321450680317681338777079647151196477605655552576093495313259794474097643715389894031055790587300235399814342173995524733738428821710850237902254689943336321562849325687938072588279570029521421775738481991163184238576936877960917019603554099880784910348165850872431126363835053537161391886872963582626288132901612801695930622131663540500818659966692937195424405203005357174957309447789137669079016206120241869896831595140321460941340554352789851007439356986623131030585089035379524305805802656384505709702219026107224053897385764320856672497420628873144860294037021211743309498137096737623329108529513679141949739744428033422424766748110905657766066678530723885058781786322033710948338420602105170161070969939643117945622237145935035739067301628277561773354919704726694054465628785193647421773137521815154050151495416360404458507013236065474315880569856198422203503571496690017356973169776132163923243325907491290592782946995508552928462347391200641077744188461314417891063121916136661447978512168467470290458428095990470410598171361192391322987437675326574861118534436791007446373570091643800111336671378228297945988443855166388682552711480527293740139119869960518355415462491918140899581915992866741860729038846862818741326571002459416152407978565436298506287158795273480448787559763986979057111240691934395419977500910188866401127264646950665065129836407172778936062931365917399339594327510504682020117586388612716225316011179969505042998768136108082589147041183657228289097853544299346991551612662527626631170121121523799168989905976773573706527443870988556362597233606628852178340467887506486515392110931093700165922580854165752038544666499499174352489348782571946395918070960909497433125403363162738987061235837769187744845955476880629772345110123129808357797833070306664977472595454822813110188520741491631248779288990848049284081737647466509192681013598756780656188173377923522028927178272763903594370266189832633595571430360524713937728503705896873423929644799518256032674734409729525422108129452158080927463287909446966390022214524476926520870748890904784865204730581976437568032278474513108208569060855658447804754579393378410767291722146633487334652334884851273918079679591431328744237292009103356175220154178961774868874306887266243476196004478367823423768738289687630334887049426114356360957249799990802291068657787478966430458562237584700015913787442664222376158864138147742089382487246721837069072287873183591145340237578260689374468661849155697938956687370324866145985101316574158861986898378525926002503255848824190490263282480040556710411628204260607242908668799116909219310303436602193019411880892856573825688753896622776388084199471702609900284206830639293744825601252791416347227785110254412624831801554599959147186060793599512441331303994309507329207969760244789986203596789845003249450825776389018497075133418374997577474571838143976107040166752410597554376150833655043973459749977242592410980067985161266278142018397142727915452949783119986262147463329727268405581831161701800279062552654785090403426457292877599163578056638995138208927311868242934755133028475950222371901806909757536753945050295256210158650119594296292641239961277122049039387132666265256332828134623260486401167888012617351392984717963876945105118128511556208623004544505370724981245760900799811823313455982408988346574587768980121658338030254011409231056734885711624290742889108244629536760673430911004667032574119162605570951993932260205231220617881940659098671606366677630157533454100174031323382291403987080093952045883783730131558724767879616467167469407573384233275857227907705562895380049455923683190317008615157333364838986003946619259494812745776392680752365471068470504210680100589059985196545074162402514622428930779707966934954899045429882931109600123146148345481408526793863321578509240719555031395113057474229365623918261754778498520109894252188004434368512238015595574212312255857682829852468087632571027434533993713733486363452374723831867429992110613657538135123107149872073431970927105733904211113275429067368398737298263260242335707478971546056253847518357755853732473812837241240418426987453594800343116822346555963756863418959926357444191402363749834908324764599234635305588183200761132647425094075435897241982452405961403473440607901163546553268305283699843258047285228510386634348338841095582166754467545389081073075884837964787272453117685983391674902702054754411873858357709361228872257097211059064993692431054401431301860536895196772592290128260284117687084845089578734890192922352981353203298615344368555209053349349261558130703731387945809414460317850227568682719334367009324337380687767954227082012958002305488692513786334324026525119300708239591918954809550408485739348781926939563024920555616666825268875726339604410906115081755958115022474925041427791875031805647079946422806714978151376564941530535717591764562034694814362212518033388027031259850207006218538418229982638858443006255879976210197674547138415121308935755633158779745757036029440815702199365017283894600325942900504663808383789182906728183254747306825857492600006758634036112835814172738383162984648275772467378027798465515060654179483543159692072231860729210630441435540667268365009280123799992334856522846729927815381613739910284346058421153834319064639452097796954432582158282614756223603925001390402372424600187318823618852979986660076432945615082305602847415612763698099128687099580143881973540582744303660342766707798278086723177891219381182154801112821421193816007053267195772061150416686338258067568145466281645119805959241625796563057716156847875832731964928143250898499255133851171247854847394039337155977379007232958092902867957355461222720571033416707094778056230485178251109202334090799254571568246442101428599970932393851817005242651558124574286456443135932751277875310067817614112972568359685218369591622677291237757315334416807541461147700726933091717933788952824559489779231465662236140987760148126197247965559905240976637029453392947069737981244624218476167811129224731944560926344475366816814298201912527498539982335735158232407835225601264055104226354416118224029741907743781774259337895435395178697526772029995510685509630405449172109391430504756871166701760906497551181655834657872271320793030485340245492408653657353689627893468596684396915397728376171887020174601797332813659709816299805119096846765562552591487138580968094617960174450445628295332694400695685019447898764789441910452256447858761801658852399629128326429956751292229713895221827179893072167309068732186143523130594472824029083270484873276553381779536466899982635316436625619971039621055919930446936738559420270907735922621132935879276174190079812916838923063056015025164328325007860464361219998481025091470161669386318018569209016189509001744001010189444572952688251613233201166150484170273115606983710909169681485200507323733954824422602213705695055035976344936506098387463192665212285426913347741756359850354461535718981549488974978435129792992683711604325796290928141641330534577515856901596677835541411406081673565196606421771453722142095213794442485179000188210737652035691508288254626837335462356621575111375292923556820844918209525852585487093724317956464365061242965378014327374380307209055632564040714749231828572314796800047175533643624953500419928902949006233729167918980520850703151556540007622533092389157151412145716131762529201658228139994886915319702009456607466191351899497084833974272900778042023793884347185281294554749725303917582478422230272285958544295751083771146994346688294039595147420158266359883995705306353964085078053433760372707907535246006395299365250852370998987485311679706704248160352657836402799789971279180336440799458876736671655875405961649101342042643505017970841441031501456822019325203120820422816318304629516013854116400793527548669917722326930042921127919478105131064771491877881735784394648163785340416799296053162330088105412889836142707020100698916907365092668406817955495888220236873276448206767381771276223144501673682564352952911362211210917639120802199834069769965016378649444912390730781640261779716389946618017373405842935122017587705028679250950258050269485555824148213736358640226744893693047468654304340565725959427155976638625929316397362462536601722519014659861789103164924860526860742589305495498990306749993294747712132506884063902091134839280267385872595152016911073105775393484397993301861776504474908438015608681690771640087845807168076683110983782574337880466285688151352276780015528603907960148590212135291683122823823496007913761628469131947126126198024538415251399591676956527475262140302185800482193425656649346845354163657379381648475343166591229629927307403249759116938119362346923572433365660981776310216967805883754408251199161249915858869699805290229567657749786412642889174671217825787174802795788832906561912169586642814088864763810906749091400141112405626253643529873865149108210838509203085050237572174311656779348014163589015288655005682401052734015978760566766453390634857090051728619608190929377522940440103558281611966538374655441284691036879718471378679311055146194846348594540357642553179374123395525687731893130258500583368244006550007743878918925220385700774402442897182435536041870267998991180567825418139134415754398788149446744833700600111783308260432055581073534581280411580259112239914263374654910481287430732635597566030182505852692883573448394883694554753970266254368231206020755541130926238164156171123575833950423697168008946398634921845749737358846786651931139120801489992157859074310212015671459916316691804865381779033915155951327679434648052500225708049059093478753984721693258382103390112505987799254463098075431266850799378502870534695901085576164712514086510229605670685785814306091739757620755762463993529595461842384339288101592150742369386273810692083862728135529591547791291001057201955092641475794205675710231365020955779014160106748062055441684434782205918282058559178642360037960783134493690121551807174399031010819095929485377174945026283966428910592848331799266852227891180734231328702395327753394072671365575490184733838744631145681971244761025057371778428622170273176935068533709356461851657392849513635048423204157806681425179513510452938813481177808174941777881099659544756373482108757128749921497328844081644058738377902983689064940372867493981673245869761785032799724620776657584520929159503239681077110084211642124090259673703711991244203368232413680912142121580407062638621852035056878266329385812024968618278719983869414673946287605702915894937278398784666814267569859245170536969693703178000094200028085107663069376554338547830855368143194219721847160926614720847696453055206104793717167668807899808545396740176563926452360665248836663730274132541979193031399210337957105690534205542542619786710128358236032471253806442915578366327321635944594865254460919851339606636015947627213104375463348829337763767296609794713295632277022009142818557770272701062472606816987955804091944972774877768134459938519832510169922473596717741491721658722257847538801048285994524644681530710513704283111907884656160549278831004787573062298123230458207337210680990381930288179721114674585092235314777552529166104017573563666013685064078536763995638567377208583753297359979728015103302357601898848090328133213936047204562546259527145191890031255602466968478776630966471572825416671391256197189576890387036308491934626095372523118199032514701933796950655433075112819330356493080803050234718452296549973545266677364330595125444856690564034434625577247381675847818555822998504957466293957425354785045932276313234524199806059406036877029870284038973060458372180533845186470123984100485775890952432096825711100810776681170463726406815344165027948381951479421954385905528935476205560518094473008533819743595576009360117760778799686302332419673075317521118907451830714288668178298173472003959883052517617911791907339304754582494937108567625854015787860242921848383001332059328136396775077238763374268558029540470685846845618876769992373730303011617314549741270073157187986381203267509772729288722553656700236778013924120963239698808012562278662812095050525976267711424754423758978651511409535349212595028315794688228134748933034363566164538263131900860176610964246806834816919688701239999355161760610912508900478102754810528277490363148586687762521570400582566533263136708442216301925389603700436783618370348204163643405362482610789202319005542615343017250452998811318435233557236685389717913654171960079565169690011818517236529717614914212871014839872302071490850391280406933355567129286072157871754718678027955557855789365250805178443763854475391585901086297870174156153566891628364128176880791121683848294710280396115360141651829423349674794077916754267920620348898690946170461979993817727434186781679917076432060797874240870025450612350020967333933963422064122720883734468227405329380159422902113230917399904917555698524867803206601146308873782469904368341767728399701407810221037248537684407722015667973245734535234178664135286799823391112064623179679821398460007009077319838772889459682516142092913525710893985215709991752907969468922671652141686837009316422068756136383698467760072938801337394481939665487449459157496319418159880761915593236928405287280851480822770471326879553386647627255769848039163472175810619807398184847183731350593501088578546530214878878753103291086506070610975337546814114564523728011162994222599607497800262871173112190527401145764541593629589532677112949649797443464735340741344130204653166796973579298513805613780969465929919594707682803746931889801047684499900096943257170923898974851613506455389220749874395941038291123080687469927177839116041641733576567235016732643635070032067596326095845093740397344979476471183070670667926328309775927124519993721936624010180366135738780820039149533189340696844789906827710537867934837115684784588393395989894809993299917529452614801566824660063891340531281680455513654346776203351663757731044334398550063130824177541461247169155646426479178335509864246670513058648669964912093367778131385932627644304658821564773220616512803056786452010214884946216359186945133081287012488943908374229407790882694442122464325707245072495097067350689935019068567061941489613316294931970221431870604945803966239224012663036594276679649787792754257428100107952747285271104371304260869002993865521309678306539735703001914799188188025122876846573574023168572759037552907481288578690434506746197099749189009756093164909208188953470427459819087470531905350825930261011685827923992320458559263369892142253396970985162465119463419947429651550736967271104522478536573757514533476317074695208001833995979959326591101648089360408941510479252606770097160563187183416448248613434081690308037823452069456847746061560099546026869333401735261727798683479867738716945244779715048834593886509155366258777061075664549253150992804421715415873113454980413150130889793863521444820909818024499936109464906157386488077924621986792054106645556374244286444668832668156342975931594574975537748939564997323367846762527799377799836667687157576956192166194319574819297998291691438401941738479287927054485384066885771912818128213948795460049303519947096878558240064330833689134936000056310719506967253139624739675315828293728100954455958329228488818523156056125621284317375141769765416004868735535198739904285740559732864255311464942164214625566080474751939456811799261684600241750358806106396981119223759464438557471202185654436037710927930152334554787436402373065734407719987358164006816239609705188411246586147173050730785156642167072093090152499812635635409486043537135399262468073901961673609117215737675385857937927293588966520798990537675964652588237257766620833119601996526393637176098917167160455424221335748687324478059856867857141518813485113392073652369766492943426163028276272239774644743330353017306168713021720050072999236540251484980966064335000598314304297977779101783719217344182523140553393324090115092067529783338718426676625115889599444633351087103174363301920003869620253631454918726400775721490797033195314165570892287880388344753722938315609509197407574768868693291113766781261516912129504459184830410378628749752397437122365059736539423247190803859033390986431584771397716002430835417135095960183119877269954404464912415281774024818528789670570141401529497882284372990375854016924009431450245239670313055579909129019826737101495492803518184777854033527257902722972380131094819994646753042191030218487984671191547552292798764573256534502432983513899219928399014301901674761522222723483000240132152078623898980348312571050198763397681086733273709559567361519262050246648415984072992945785232038496566586999569002660462013910055556974881396757022188229137004543693193259746965958697240373682272595228175433321973254366556788228196309105122422571210702541582426226434645950848685231941290423570180184177232294592241626946845154754128491114095752742186827998787958575944386741537742074685438157921907648599836425022996550904945922336781891536750712566256259797886489805872393316664136344075496007058081765410822216083711574818718196014784777019671282682395519306758701969417288706141279235456707512347068876693228475564061982245674803706334906021534097163428383415730855389745519679043491269224817900574001113456377121436552746353758311677610705713512889808582533102626456958853555574738300116141953878210749423016117470738950613766841701561458026390287490926398768563764215204676221156838352559461508098086264060813573834700822372771382453155012420075677613205905113846355051630514959217840029797357245179531542683063251224095919404773725141839610470072796762501352533238708170929939281346446134420907285256400724522666042951747385006474206827908901313106895091277780814812417274062618139655274633799441778687277363901711963917159145219974782361459521446939312059092895386008589849720778965321064280945049644987618607851688085709722845444987109806631781923442917578779863352797135383052023356029259000657684853500430313063204666319508842169633421625569181042315093446492507846346114526843551767006149034572137740392682134442754342321882114819998933473840359342285787652062308486511018333915227207444384283267930897864760066958560874614099214953503659802517843701474486319523571513877913634585210296420128182484734655926040928119572164464241908723933122034692640390485584520352458862900913254431901125885096747781806696172981902075943452988063346151578619822075375662132857747777065879567065867759560893662442703961632880523310202436576396053270121736285820946482462211841187814689724523887463927755428959154351162574355102640351823215731764679037203099910070952863575859963778202535677258415035289040119823748011223951039191708501894943917985565813179336393678302053973300312655616777527704808558559816131398161851041967175715984474040553881167896416762934506682706477817705556729009855139317501406740737714291417983051814002666652856546207811361481349461872328322165542913883042529939493369789765474392525728566047141123640344077212404211214267531166221936424376655271421888536944188111630735198540874824361238542579653476775668083804787704650702568285291857682385811104842795597143357175837474086592340205937546060996035486653970337898388046667961161959875257946599466754895394297409396052758766322067027249739208931645092630493402546291875879678210741859959866028426828521034853914325585429031455021876312008301765725006907864623211082465167351314316640275916424514369988795574231735621608954124148054168321352794074467824699308508007354744587058130393951275180302651437147254379152728856311191704604457796341856374499677294569635771677858852456026742158953145051433602129472272833294459145366810243464196630736361678063109436613585963357592656342434507113908979096360488798210501485032472163037491934981086498528183730303263113049774239008563844259266982801608987130144175456726984792796926886384371259851062435811203804686272132874784667139033729055729520811843057858351290503663276088832847027929969749857998980243894414700578853944775158676761019409570419241185075240894434366214734085823116888088174530357764522277797358754456422960830758531934108544434573273382527038728858335131880890161323658822263753012398706617819648173129536734706230420847280883449523282334109597742830231282536995387123362290782047989659032565996851799440078734065648772594626323365779844985235372306392621278659703957969943197812308690394709859581718757338521273359006927226877003479088010733996920245507195867908501960897006442745564303341600540164488805845208750052887987703782956110388334013787338850717684776042977969828211128421717019099952575251796069150880247743018261698129116213756560871586728474131600694536038787815361614489762501588147755650162280420553019057643565900504705007169375022396209963603512048402679656787962433182842932631884049277360921250740348088120697910672643984198995203787568975511168900923024393966184674770313012648399802354125839483408297238838985622838029120433719149688187012876317309814024491795422789691742564933903068666852536696438032188831597028224397514628650675789623797864973745178901426984589447081385803946909742258487632349301872868401783162468699112065244539772384376710602432100762061983924060869635248980205186828957107820526760624855492728666480543104513883529840457240661019873696205035126439649176313748594770550719722310446737736574823950984354014227773778448710593604292572035449203518951980438404558557340335018700890611630854141544780133797478001180554418384651207707781337543293074692947963144194055590926600526159537656424165869123491892858883548662415350427431742675161661309643052241482091110990881704951665997803961507583851503532120352832260404091924575003676407930549673125193476577365657000519809232071131763975656711697570280466648779357464907875289645680624900659267627066426771084813515670985208443524899079377020266837421070775526447738752549033722576276222341209335781743361902997409578505536035135448994615873045868817385038356177332405395730244437967743601720520430811494687696986599680374678676595820717194210963371192942661699439943025711420984323041120839164714152006355161684389542834432850800056492164282479721413712836494230496138454315372605127927856805006711858762360651509806890062452171140035740209070942178976400076565744471125463041215183001767795764889924002220750155125447943864830331096329271542059227050919300102696429872164432326545425942588397694181122153357833614742340890514514804063578383300231567004290857033140333032598518393069246481886261909771552959425933986173862993152201684287411646552113879553237046162334437727732799950111577871632397157337503497949088041184025184030850580688827959430625959407669435653954203937498511380982045210142559781386470525846119674074671086065164010919299422820544399770012191249184197584607438312610971076983991282077391448366080631227099029396396070017103699558099151363205405006998505655393851723180931992206139915386707061907253597240166490171301638526007183061816839571334683001072469069873902990150376395014971250518369883138256010626932948168103958400272506319995670946846750869060620762342428845686800968583835826576101503450189813844941552643029592437563202830310911950029582075675933272324927148093507135468622606284624181062564522437546202073828490405808110729782447302822022884135600720223810556485208317251798352308924637122040197558988554570268171945597537415288115826966971186217723313697563336083760886850654860719594914781869257403497364829006292807429096031623975332215637199610664391092407259103643669779684673438026704555753125167277128315738002859925623900644496769375827832342615441349161090603856116080404537347837313722430263304454583956924949297698995765404529466652851685580692954666942767445220225369827140296466101784099908766777166939303387813994823200411900080672534273746518377952992573959109262601056777290539248886398800336330715198249566697167884321392044800518291269349544199215248443604803485721585752490675435812792540129671498749494146506173647282957503258842472696082222852797128122405869934415921864398391198065922685552395310471920684221584214659172632249987143462105137719523059970553071976521153634822295537567717063193492981642582997215563818716811481972600731770732717526671710754694805345369747776055607545562470419004500522462358192059941043207804431909721049715643077089825385688408609208369006548921326564714127145697209205082219993475494614470740126760311448879620121428887400345879500530248102511949873431433264860246126992098561099253794528026619800206013353158447638900858552920946733399825502567659357303580599168650193238381432109020864805292500225154881080373572827660712128478032668163823871979935552761621648681766998512220810366107679522012467403968817511548836755495448571110167368666473772073208910165726572445833100011083051681752159554064540603482293863957141923769063465466044118119547998464985460585865753153059381228991804683002822431172964676784530565264338771112686324577316415408243039433681470991716523523121292697957384858605600101878690214363165569257367204890026744800157769556157173492262411369631382177064291589112348852987073430065867178768848601891267791291084268357639289823841173992694589533739933307673389254722337502817680242232284706993021471042809298072970454060974620509910149718556627419427144956604890450584921373062298870606431450539525221717383786113195177740157361447689224446635781940955265530675027494117713515720924489876702533362710914318105177747790699901402615538979728580353713458480963010823008358763216824396761999478154915929011965649295124058833905874108386465456247993907409488657769187878014464001110011723613715478375069937483493900123461571516289794841529490992925195238253350472073716290574101348274533102356133662944495189945189928824176332744194313696362347996549912858574814042406520345077398343021196572713971427716463853361841526098842933476122234901837095017137047940710268347427536877068252783689673147771874430242958476113268028039116096504581959066072363654770974343757285518161089728335673054972885944621156393248577008760810118026523628340197269213070221197299142594722704192612348368720422975191651856385830370779706855941714266043486536446923263257192777172271958822724175305729262614450409371441470299811716911128469612094656586617171439963009418599001081714748108585735065517971921165894332141339068620822680613634851655897549923369160275442580515721058175875368426270956186558300797833814613258124188309277884878655380180296920079719832130149425633042392787056141251512082349417074671974017396890864144575174260768686192805978687477744170220001596355587583535529584338391451331795647193585400534237688206770134593571054527558859724712001359623429405675499964278368196797776152493454178937403176256399169148558610038849722268678079097895971249020451003284014698933539287917048349271636005622613655193797768580458682341308846408909964897513477158797082721137812409257895054328971406067765783148025431320905614002892256283692721206170528577021390709822110262136739680228941574963608664556303308884014275968896580082579639958626087928106579616632668985376133515506229602917245512568886620669156223673571043603905420088867049971740704669293970719267232509889436577616819093444067941837997524582906735450041120825666493157135206955455513800408516199654937662546381120656494439294067450731853214164552461150729120275027215457240282071365776048192843229618303093113247976023543858251410143521355068037950373241730919619765351111940565867218958334326165857718074775636733454422665060786465088520944215710678879780271705432296718148819369398493385172869551729666188641488819775593963881021556991622543220237158015166843949117923694621514981520926119725839297009062970484075657170154670943768755774847588991278919871596081420031083733886631312591432103545352630936562717790607334632187561899827010906600582034123869030304709382859129900788661897067377244569159454461043038665469951861180545739790431886492461203625818797232359918196124813077793870353891588431348606784788308363401213279248409998267353879098465227638462942516194226313585108435214650579068621579432280882142520442060048489806556469868527900168870230342702611486693673797059241268143558161621935975753502505752020391149862182261591667698081646042503218446032899491549603838315307593969251867781340035172937392343107290223350057661712314567957508409697194034907445038982794798062973514715359724846893845357414236511940160272009480910469758890625189497330153963875764866215092034881888401076742692623749654443766946862979690586284720619427189163396251298499959899853286999017506379086699959365819517802950229305056602979320979916849965490359504438284370154208434992761229557090118270640701697344885176253715409269151413021046904561047719570847103579089652443829011946269087331006679428311881466154915414563245101070115262633799257341932880647286785980367738526733947536629452425393518192671154699841393986998737068756269739730180664025585519876441369846045200339193528684440833983033169868992218360301387884456306438265718423608926000137931505001660427273313508055298919762558893439312745252753518648480122436483055434920865317244636989997084948091521112240180042860114149743524195097540629066141601072892130026353630443602553212699251051710120498768640452104736075288228995482158200188684326016715956985043093896515365809674175493252460753676594209128601046159758808827391302819746776288976432489846386647272488409306507078840063483300132323077629326550175211596172674168613789495879762600791047074785424460455932085345426661497266706510399089801338788031174346928189356348458702717814837667476173857645186389143809469547823228463555190309452326856101740271005651042788412778178275372627911225534831117134556584098725626714766476692016945752657773302289311663766553624370293620887089226952178811057121168937545920386677805113026106825681844688796719481374936061085055660611307421135193727299640187210536344517021703540135934186318819194367060350110219981544048940359958116501630695820253182921305503255717144090871566095018885949168778655407774631234139019144076785739811173882607025450015836535485078108002916367757721781421294406055897030084633985888323954485947250264169098340403364005147138810146096353675675598408109369583774327796999767995499485071496503141077545221028125717413942650163774990636459276990741901558708508470514885725766205722634948699997055888295820131823931081625863036388488803192006873579302443047318122505445938503576183577193947238057076102952017679417853526430149960877253515103012115258758650008758992699227808223851580959280542322589526076701337158143548565578441644714012973378149105307952084537500736521116785654211219158379875158926671352121091599123536750798481887880401010185123699350116626774272991282583300926144306113005846595527341705859529252008257935569138707308095608323206270638946755971327314290187203879810877138887428890323930611087072049834846500054404242322409414070002645547265252060516036539473390865354052457163482562042289559199761594150396356608065991975672337092101430554091952792239210811086153064911695376022166949740383500756227888451750973908787923994292650424743083257144495482824703269488634930027639109044144539560526716737433505017565624223129565098146720622337923800550332652849443470897029192563495153540114654778320495268287182593520975669756062723348593460896114198316732103470367649856836727198188588107835754683632278737187703838747556253311538939038619046507586779839023295711202438377697588332798527548166015892605480985663664838062392014167207013109658980522919857568649832610210510530075418661905826141722999970759595713439646557201333389684029885351403970611568098642803430634700697336109993387468134579759884492040350920612372956639826931863982786411111645804073006668580484390295561366333466082054341748228428559015604456827714712717393802681411293139319779528415095105704022598014606499710418033765945878127107882394913574686799421704072513859251129865255170122996864697565056910232959103864369958234978488516121770073142030016268171815834970585937495399887197825196746517411192349823669580433773775403625957198968510601349275568741898280734587839692484113781425911542267197794012622023409651716191760508456697835223231422490511466659022097306832842003951527661226101033348406666259984500698440630398324532769390865520344894315854062626907120847694362688655035013192256014655399463623048605031021355174546060015817576443497307539675468852332949496075007064791282829232203379819981805015556998365736240711518246900274495894414800536709577123228698514025640007119247453010033170280641820870154732481936372530320021623867884429410759364442914071101530786974368108616381727558959245108332177943127076526567724116328836237238544342223997598957184144803611408829592623318009967268632212291071305985397873464490205670501005588139881418696357961598351915472047346833724496940826715027492055428490541770627040227152381863620010029228328315272308672877635423700526831768839319064307804824662017251311488585723407883055699014909737452052068672481507593457222542003164269183876619688356109484243197831513641750525561648238197749438677884291865499544317978908550784734525479416937583954276962817047251673940742855386417815819529314891683276937743249531068336766997118450800566756571517114839756677971947256464511183828032658963781450308100429104327054364544711360977872824160813444802919721141106461913599977585227206430637225434298490094516355029623752361540349809000789450379227745265713465805715228346622515176696074756434414045044997161493169817414500329690916762747167649083826079832024218431810403560182516676973564175856829667708728246129834987321272149101965987331101157550121290018490411588655488201709661382670700549837920506606304819231539135975391567569468703630771137752499697605055038749655317704470901228423053220944800178219623334649596493493693953055681326710054279976010857320044897027267906269770242393789215725472225670629302885975665214407372451281550482469390085675033630545165417680256726491310539591479473227301787716514425956661651821274275588590088070605472891694463789261100095112108481499433828305979772898662109580505472289250800887054880167354885939760336115848117444732601860728496013606524663889875947846101262761866995513943159132640362400289841066983676596474277881300235668562571870475419026565451281875052473076585957567084765622801934287428326968643145226045146775643579169520287980227732258593604088792440398517789052663426762910562111421706416450879533123242353991712990682203286449024606181644534214489140784615012034269848990911535962725122045522994364135891480687904894923015869933724681305455005631869779626083596228098300643355996505668332369630687427670156330042742394176136182093451015608212756831745757943886915100952761718160422001592543002566618290844833807848087382207730230346797391583835442546660381228065614488003136563906088011777950426847586165198290683729227173305296863036870590459143384326968833433862098904133519638084902976985994511195492888398335070688295513868927381858176362683897243216798278708062798205987952566990333104358155321889399021727466048093113624780303008870592302139670406553592344940438425469595311339564229018359578354065055139733338158696315229189369719263257615435673966417119923155567759792215546302684670075658201292262037978800469553632224684551190636919068879217286397982664325337505948291369887765060544393493905802905096474965828851138621394214248406784929506126207561717597290706467378908522589374358835901762627000495066719331414698487685112017649691638599672374117225608505555137306962348490591845378738079214030849905646200178649168834306702860620131308405513937004104324981696109511296476621290212315875445051067666859248730855803974708065759770782736145855155310927958463576838662233324220033839676216769908083554476492025986810041431598446235228173100320013814650062216575496654403177433347449276048656422547508002569605787169403178883777807602365959551580808463621916892061632267539215340966850293348318476067497888598084313345575322974908723284593938630848260225025037942978285326512816680545992790615215036047467624932790453417752050588653563865595896800730526810893192292345009102251829806150376055609177639873990805623096326375729765789072179284987915204943907499884991771224347976504648362404895899583208086220870426323024671369039247737633538430072033077205367017065504666919345870966281800550680006736753213876239574964418137760269144892935519899416904099050178283516516654309933800719202251168955123652055120608594975773670759144845651231763835283098974646250261830017318231235296217770123381559173773803944468401297167727127002769925900431274106081286461089194937770392967932255978758247201295699257456938395663712185913855112601053545986001276257444430130171497926771489741923426990146460104751057362691696643598211028159873399024945708046332081649562885831616869189753517507752587236915314953609508143307766732547012335236480102416805387440109591079529650286211593113182874677997771340451617358876796485393893425513331305298445503161810694242668494048689905478222751826880096434466080544415802757141167730578218078197649088716368328198884582142107134969410246632251691863520746856465409085922108702100782834107631956989929472661079445041110910472159537175953281699160703778468317919909204813394896877393275936598162133130733036134278043049780094691132025417438185428970486769773597131455637894232296086082691749871903675941255736861756931911158963297968048684874168206210004823778779426697413038090641439762415091605046646724723771566150159811609024103668367612835586546680837909820701984846344504760771826699644482035410669804458434464579276403247972906289010712823077696494168092304899513209192893656238585313641359690774499711378080921169726746534143054086507037039073709739239961283238263023518337984336562631862822646040763220287290290001884394324398259570236939541406489442902803741209996264766884239242073894380222288968361582024432422352065903195498885986452639903335826044413850640360397544987686657272368389562575337406429277634070442085115086671563952106300376595168744137742802368948621297244302277918691667490481489392264629397165654747022984708205179032513911421879058020024257145794375618220603924690120426612569107990044898301535094585289085497460052185846759711804800782366268682772972683339395422700848844002388755018197187764946304160011848867466958616360788576642683300188241116830084384201900918179590172553890694018896399362348647460483836542760071473478547649529100689037773395809093078502759333258499826448450788792390859404336937139034870078701362722205481225428361696293152881867244575314796252234647728579196097781051758721039203168227791195872083083047377354159401247394335739770179671871277254325184189441845711508357109276337207474496748723554852103156144849787192774221053922964525323244864417717202154962413318750954365349592603619465520691298505063104823699537233992850642498709326143551214150604061737477904159943250667688513940500967927000460557591081643363977589214613931174205464043341605761161529496618098346237640277443238496760112396882520436791977948627964485197406336244854460859374352419926064851109006366583437193118141994079625394437963959072417643743815890054633887093784801819446858732324242328725654646078064549053172748134728459837136510057654719186703391070671969404937885072715310042706840679675115854959435335878559045134336984668857483919337778189315280734399458146528955874377095368313745714633151115220684548147473799088681091650282493493693905394363944984281447409053506520666825241159374979970969925523869467709044499071573057443297779690412386950452734888121168179655580846940395271727731998531591548024900801114089071361035817926732874841616848620459607761358106589596074719516092637691345613368640898031144060592864808583957742679577563001546166763880591857877597272336125712707387531721430057873028692809535699956281278782577767777532789093274877327546911213623268850904692810988430515644941163048017325328057785034057914961446116469106605989820642358526378487458735108797110060486482673367188697230981321836913734198103858968796722098523765324662990057586835066232468692079094192517942248893664245041794408408801738962031329175148606190690464175052128766884124579412574210129844575518810480540964565288170859789537532919931433473725620668015921076869550732136797028963458227648625686194093795560415527178697406739080416026714835846342646676653200919806534073567489678473632513464811600845122817569123590339952033194393770892357630743982260538323186536918690640121539055989918478292175501629439098578134836883117571547798951226142811880939643448803312628701439546798116004998369778329379727538463849299921958822938417437643092353206468113469056454883208895855992063420270059624196826722305074973825899433428084693864873819173421177300835811954397028243710375974605850035485590627526324871550529630506665781649445047057845055066044339962285121634265781246435440665808701797007557466790030375102506513704945326264444067706349140576804810307259901956588584344655203743184563056849770056526437304085046741606978095623330686468828068607695080038279718390689147372595904916321549949612278372628456828626100736276382467931012167490363891173017251535270881526940408919689600190157576789558959926485588667158129362567440050392202962903216758885884062898027391086242586617655890295951423817204366782302056443321788989353817861497030669526521168760386710163514660425567592187424554321563821369650004110013278624454229685129685932813090044281012536156879122989548061785609747863820368995170578053115071448383255982303847159478372089084860590345850934166732455697306479149296745176144345429269822781760782604305343663416942102176979866298413527381500087532650056833297022891540092844613735861917258373039981388753451999046715953024163953756165022631847128735406591090984283137337439842634901153228042291484739256883215358001018940627169557527742872338808446448327106672568326089658917375160001334399698011993285212034457677175615117647850733793988694538088866977482056500249383612696887252595762787574199499114878162481592072018906267495544493530526726503882635578399391854448039105318196906886900798690880134926317180637929949547636064641203492485638191720718664464896958158170515599873697346130460683720774612620133076961715023704840175457445097312108112218347613058206008556526585439167662584713081678594092620652827143002199279548922723767208594490236810854207446986906260712803825160597968120955155232721688889898168948556818115629777378535372211324450753744499139182607281533588194156002916959879950129749154708396238016196654171176850918645614736253304016315572567574001554370418869582165262092154024199367083300938839737549765801892562561475870702213865397470047758194493870722008861879677537445440994578729187047946907019941353746335370591366216628116556616402547999139898211485313217490109850445445821277749874055261528710136563516607860800777098048026251912708841596644596286048666185711901077437961720898963238069107481544585294605278686779429080409782778165526563964127476525202257978453136541001620087710417894066310412839690852825325792044885029543301845561799941609094146069475609827013690610043679592167264598083214724758223561407750681829800828912766384424427769040681192522930547204847478010512287334421217527708714220230131082566426348807757978050258611823954990794989636332875386968171238970112133505452967258906301852995042416256554138935365567076727475139521837206244734478315299532175665003779665081412294100672626569980173388179205997575241406317082534191312923621245629063212276098833283311971669462822531296571264982073131480605839703595828222644610756892894882398728263142902584305690867547538063389204316964267928765573619047080512006784609156017693345741833831497892882693543851482253652605714300180041352896119023747625529465768370243931413113896811887828972888921516234162579265222666313198327243579775317475392718982689689863620285670623906474826553131493010237499497357643629446214540601041803934817970532673826802122869170892506997989579702527091486873269766889787143941030047845928358983386280495781381973231778777519206374319813625156981103980542284866755423778254838534021549762837929663356906659198205941921412084452320658884286925370825971756191119262708725028346073126041803641666808369594155286242807651514572904032365285494337331040452150900723690791098930995304299895661324696430861588974441773918571817434790335962529324342159571974379548123266450442451468434163204959354870100374271963477264197747534587568893867876912227803831945087723289514423852950522016836347590264727904872647994155767022443494401164932293429411713950085616363734437140818312703926938721095623469855034879671242839505661525193453869606940108708311269789440664106258653394087548810223234053479557809424499550025437954429975817748890176928275471255667675137043734346830620504310605322056585063517770599716022571234243293658224932078869851257109922324638096966020450194864176523460458638006086650268165413373304851774975024337353985464293942924474252896765561674488766239384726883686553040902978362866324364357552304579580970411394398524704847986350628916404884569103789696984985478433174079037741766767032822252569381302896696977708391897938976087761804469230487786415040145952515084301183583626317485153125656106603301148599457760014941098702461156691241259296924445039512623636993667147294612398393518471934642340009494198024370421098370193727079129000292419819420406238105525147391855804948614629472311140891740560992715984535047165357638781133696989683724457079411317122853154561016930584309242423866843942848982936927637340230833086298490788086078400049602280727785183806119447748252149116677662060708847743002298441967382082978625928792841372280399775066865257959496510708124764606592147102316678800571855191157658128506645786810558573486070521884777347221542408100784007590639786609184266038339703482687758103350835070953422715337247049160399777722509428999743049775984375754505107561763338809425734974563308855536070780197718628367798756855589872960803648865604316547078721616400244119442414857640304707726969489994710180084426977510091818826960295519407256565273414222848960203720417649418932377666896621049269336985565049985694175717114085804467362888053161297703330497636382703113813566884604208408912501550573844969935317588490868664630620561041421413213273172909479028958255426526197160508750435062506401589039448457953296175775860924872304157720499425236045779712310358086285834519881365164915752511151765262225121544449561550623067571368487658521637598211911812399751763303604850935466445532908887633111805071507668924920959729751794974575433681921889227277852371414770388264361693674841192929739946003812489074470639807604643780307083774667696242495041333634163820506199660600095312606209371661198309111096363801573578680166458027985561589617888436306519012217775981851504175090390371696574920388056234910063417786725476545743757298774936909102503143115036249429751394339540167260422846333967165900862200084172459553518861962682920299043983058337676727968045427722075563795550557719109444302991088741198045025793333465300300457081266260111292380498613631033407773024398159048708865458749379077608616881945705952614549032226347447860114216208834158200999806750097975949194530317779033513139819982719852902508721446056190399309901383011932378877683779116476309115151958968620086308615108424545352627862794658179904962996109774744595292990071375681799640714505963056981564321412850562978974719679996309940783767669506505646977804204637292841968830476025611612277792798201867190917260319563105555700987603260745248990477367519585402532467794764415367715660660975618342826094243600704744869849577838120621753668440971817292062176637701195740796810289975587526742636009946573463612504317018926530760834379899695443688503644052477321748214150177381316410156699149936113163415106917830410709183488938637908531576377229095817025485292862702957666705842139476182727317344754313582371262748338213979484718151109537011138113198911879778644571968758686930212097902583931140232872152297626781791439936000522767042738685095108748147073218989632757776157946298553709154954432306948475171629068267954359509068832912595932890192467442431553579149217389775634856098312538156724835672141329141378420119463513835871386344159160873237618307233226389203322367523662325272678837933480460623642170869445389751554875121560411380148855065640615766089907954218352128361208644058198309640871859197728413307335360898944953447225525876132816340706533915192012552640755249860165410973657050776117159031384689305703722405896090389555626296901621905643387465163606761811211568007925470418472035181543593748115126150199379235429735836806692778026455010316420591590972414492729309955633353775144888675387465145998390183906825133447119446753153811134533008525802736715917762074815285164353440528314077803702825279934826135582302005503552024777759959787532351017111510572733150526221683169176358048075310161488561253481703113955377992337948215685547663888551269758523429041556460926921519863318504696832975846449345141659988708734234251989352020374912282880897480891179834129222133881976072629570355249956870289907222506392904076968969449110389626530649533324992726590934968460453197934216558652955791358512956938301882365540671988052072349493174609032639071857818988062153181018138536184305960315508493481029887971389612355845551355332349764652159430018273679624645475802949069860089172833654996761722587691059375431411536016838307596018127770447730111384152462011282246707494875038449086510141264155152349109549603630893272194782417324340410654939360331966834347541231141939517823381091962426710258624922348588054650356858819186833279118680726954330724412543687894363713112398772579604070106428351440639045297786462989501155501443752346359783081267644401038118604678133429080442317791902347630198038069526025155560177249078483590632198916165323693168818323421660121248118822410459885705853716107159999663695839238417880044088660823918582024228228362766368848917708127859530204338530787515749972737147336895164192834640058172692837927092663756558716437151259069483343138820995832507724534332842766048640476593689826976864553087727144819142966081946077170163707616222116862071946803838884668315827431417047252264606237294320824504322726547990051969949858429342666603787609900204806845258145722006620831417391201574998608730333054699942561344953741728536080451537616856180708888042132508592597332499812578273906899178733894520738831834574599303269178190488891142314671669618983393678510961485886419333424491673002570135905572345604417672969693919836481215448614996394683414315886833894757416746653357221058969797844380962323386957198027560133679868991851355019781244935032677742550231326530359332724721087319714679967924519387849544327284768977785791031089405934011740867140436159823447646660991070130146687794498720583289067208995325335522550366388910593970317237259322660772319906982307629015612204496011632413728499155959984185042250820303020952054268851508277954897790628913009340376676377108890259513095296239017000799452003247257313900996037445610261452340598282579677532518239226597984481719991511247458468341657801777338175033434129464053545326429366450474744013203997903955639534559581557328764942809154065012268837631676858719629770834817015427885153909663732301283331499026633685487815072035906300290782185437810903773166128427072316073171592472522561187061150771705676719926003663642587785959029097833062405517702267736713342276480165738796737656063549458794079614116744635429187023100873428280157992561764941360240906037817520353313302606131270343333347609025137634828348109124013385401301702742207166201682052319302405547949464580699988772925181948951300327837856155685039525205915040626963848163795536241290145688228239662910238291246029627347656084838139977385031293696585389088962120552241336125351612954244650914205691759938923748256727005673633649134075172764981552085068150051379796683273161138244792592759363096722350596092448022462725339694109757627575485786295114978067353540372305706717896133587953921945885965903655711175871698418751022174076538604644727516657955263350395788416396827529794329746147907319037909891061983373928269938781119828852387549255341378619468737819042652235653957422273309775605923498215707913777773426453941037455626657134534297515866329647669085530726993767104056190523239149182015344755342646192075711601838552660756317650585429543018482364685555191423738115331659688116803364684018428002083322285767662604975483247072091849617116654701417068047086549246153679759349462735888397832880964206687900264197002268748958241479728315262368815790198785096208464521614277485612630441113325219044828710600837532742983254060084944398140769727316021527752902380369631418990847631687218544777425210894989601942229548956483244604738449104308432052646591841590465105924568129338402624723312109351837054636677665413607839462221956151320530952761489977571696430850004181790268935657342624024181314265010589942730703799381743929778752643456589167259170817612586413413270826469421927798828238001751518753474349231579404704786412221818298770694775762744306859119611031326559164069329507676602723053713255258303552535450797211144430508363030356579429048580463960127889116220967079767624690977839242320719960442486350120919766950016806827086684959565090742390528703643261782845627730677474560227153964905426522419908482385974204416801232575649404468012204386299798383029753917284736971188898643011216311088743390153350864691465366390726453523316703823867138629280715343632304579329439927867971686573644263666058587585296160794894400298856424570264968545042579798903594763732824388694715679944568045143781563844529979751851737025863877097746617118876793007230427837530058852358934798287081730663335586374027791787171800513034581274362227171786864279232500338137338912787883158935512515404499055653170298026064460142592447893139838705580419544848861757448121333925027124580631560236847689255179151019645080280547699308404898946754494795880997132497887095651970305663185511855457446777082441231841489384440809285433965961180393972051714013491760604337176544750829796834550071469054274834457786406259497705567203258760736214730848258502820341635626804491367310420208184048772134778733458559400734028066994279534798918434630955162948386954982437453938820746135647716302534342473671155010864605053470546683372925434152520087041049214236207746767626633758518655724592207752616545318166269913942656438351661107268764558141419429743698097329993118051677908380498347542627876967073943343536279487139456096653457634158734661081601117293317842604865431239868443798680682714505776626962799704959283819173304824516311930014803668653501678759655736136394669783937564595681333711890510706051854712866613860267778001418352008415235417910962971822564788356102063116125225799478621387474184510405051347744704455675647337985386421931158505644184806988957251360871653247372324669957512184984740070118236121507952792718204905296578874619166924692226340161047129681486790821230764166343890882255614493602879118578404361102131530393564241176019954467843321119842844662656104323637038507767220124453170292130938006226706357295915785454946812233398015756554202433605678950338749154554025872793148366599974278826937776979488041837744173695371653926825869482703473398989839373118965363055894334355354775276427456171207643840105391472978061221098638517882510631802078001694908861526707257586766713291220908863471806091909994237620281736859445130413070704219417132586431237169484898115248463914991798471939926402507055537156483574798758811967080557994832167715766272761269995864542572261598404045481778407918655728106989196668450705163737226750386184223548773700297780465990662531701527098294331172285864127650097866474199730088986462892125661730667574014656821660185960701185720033366142492235099931206429357395983807260136140063302173382003713148669056439202692880528972526899348898719439064375853788943664123526200994944326245738087776670773342989222711100800376997092811152806296429606184777308863846388074299593567266071811029523562630217562508031942671337790030457024513327156607304487880871684263810366502431272115404136601075568309849020867089565186889863392956575705817296325401753095866984174399316445459036186076657798876811953071548872976522078443705029185819513412303012401635390532029975669581447653456197523911866654044396354154904625165166116336965297905520867514543878705385887010859183074476387602030579136670236959922459796146308567682267557901993821825013912329482999105769838539628530364417792849696262560447919804784731554865204842465280716484443846824955369231614142835626594704836740852327654643703421709763237505182613271114920956061952060733870576742129474666190067154699616130196225316380564353848870337496927829496207221811419958548158333478594910276204123705362801730412485464673337382426922337307041247114820835261295504884135935092704271543236064112528741333908693655012695055669499043678848927164913271672569944995827141681525264128178281429601162747733614007316467841949135790104942024163276475711804098711130653786437499951264019854097921221141188096240681669008734356188287825882249195735165227380955188109060959941122734001609690845047454621756500962493851088009155735982828345127549863229547619304804142854575194540239308033814657240600301669726218197432733774850831190395730263953964836262959094569816758499084754665053123423650644208037063677906190015910406767322263981729494673728499741394660903662224372057235158532995119539850096063849526224037504278290993013984757253808534827674902168555720359878176777264661430235536067782563157181266710949651212450898727276807509137344458352820267818729914790282715771353761607688840640394629002151253481432696844184855405919488584237859907694051547311555613523096955865662801152343492627089921835754898709119057471436893366457567460519630576426671595649121574128443184710663576552632411024194416583379125258650449570987373726618447221178120760447977477602545883521501667457158169535814011205311379224568052114528043807634471447416870472084826693379014273907339568714022244985625188158078653452896321514348888422440621583594110525216733853473184000431253157974251872503213440185223106207122500750805130953580764843830949377195537114968881750352382179928671344922237613518402528535780907423653406456995738149400546260090877147268594354947203982101716293630754710532738884341634614227791598179730328360370404405256656286399274802818553033629986982303584296472265099378676858743059638904752274455010376812011079699719337978460874219086586066126923049591438936877567969524045892024813414066417095733860767260328515604228904816872945323898557774154289897414359424536869104053971856855819246689437311529212477777007151404296140519555223725219322537049920158961375490452445607486522981782648233089795879091403418189240134925962168786878648472044443894704041710495634947233914773096050389331772763346091521265366483942554789005090140351635483733210618542456746287853742457637962547910243454971698828840524995400626992740670781795567188870852258903805633984378168558408855427336906203376801085046894786760256394575775859484194514107008846933444186915303618674266810463491897375383609960341283745326725900710237069551382721348794904239232783897117472034112579046920577153673641042837792074346171634940532797692683823779364801808860164910075262576562874468187610454069842632286619758564109717498546781351526000390983275178433327881449845236103571336117018299589571075699223490846624904684758646431838114952254062078962367789479370863871454818470239626650158258354304764535120556465166072513981488605161745494672163407022726879160522051115838481356369628626863493928277083684319297662437352672471717900930344803874822381683103203010134606936260860547279656358309670203141601431038102454899225523428186551206047500488637706331686314418118448687949696575217082078477662022955810017550635180171841801547237414966215790350613384720670949282834694442577801582409288426695173532691171249034762272895751477399139919547437520890376500543598476269054471072430054520322570794003537082429139822275821173462223178550367091365280268673334539959276546129273668945936296245626184890532521345763907933384726216584227504193488918784589172456095479480957234951252184597073477787927089896752556740590658960307379568090371011014017565883974239888643254070747547285470950996801828636117772783699118205571821705146070664241912839354069434375298953294235738306409937171523150790794611029247099429852726015444257378099449836449920655190570950459993412429274250832792459896978096315662728845353211195930505645899251561898989788481518879187747483016958624996856710778369609565814980394307749827977411775195729777527013407685127095360409795902275078359573398058676687919353882566796587786863989762898172286818248283016265187678987575471396013296360261304003633900678364829783767393718631579295000985641173592895935176181272835892844096237642849242320024495628406832270489806282288544417433977053256971518785396651440241716605847939903025026348415232328497189948158501123517811375917414518709113954659732411510464668059416761598514784437684408523755884992423943742838361619775617746070818162433937657101561771619417611507993011135589890489581537912021640575733947468718864596537816941450243296972910379621219445528742736115157904055282652928449284694194767717952959732966623328756222924507837944349794066400882532867432097146956640210296188876986963055874282369544011127408473665478131943013967834827608647827038181808344453279594001632360686715409790666843092164633848943989766546495537611575907278890594367011170892620460439779353609353346541296761746303721458381425956036793468691643708901921683987847819370699085330767732796928013754230048350574432608977980647961511565055521974593669021017925833248669105956411608024710766999326649605028138688781611739117507218075335344119948943913304957455672932319594923428681588015828782400672129373190164149112603687918804149356150051660466773756649807985520976977559758437958670775961896838696025211250173041320738758828259958116788069845564886033503686622060579470309975352553328849510790711466527775876545560881811852939687699798719350841569563974714826139215635079272200438350968567434556076914595621830499194563970048519214713127327549463169574781710735763028696868176446667159497239745469779753046094385175334043988576510312880547996131595602392386984980420875979398397290889895921117196968466432005042985218513768417537754946916325560989676359484839381911594379121162036220494361439476672986584567403174074399894437921393126830083115307950596216614506384756702649824280348197665823244392693302187838221974389479802901209195664246017110311428794945888975617099762631784256850729098916884130528423180025274562795249601306539498517029808082217030797170746827441893559969366244186163855393625573043030526307942413649159541979609199569549526733610750083262892710228495884225369181010053422040356112819012353886773059379134374273118296029325558768009261129846418133425770458658856669922116913306811748184715979502154646259283688119382102151884850061301984733923321930113955863635637397312068600993159619060873508621396603859738687025083691235204908434908110260588440850693468331473435915153934882162606604069245753693389353563846307680675179930075413880491457310320220463778901935163407960658402298357542988370850838660216051736771822964895436993948499765512665497263425318438304501291197462112669327248949961535385110164415420768238223388989886206064294162294389354318738424600997555382838178341611361482573580284358537401303909370343512000638825689403090104169251659872025258770350161635767893823970727849733031172418246384962356979160221713951607351038544030431318123668009347500340303387636028884163467259099497931711655629537525541976910846178260306518451574082354707992489490566057359808419397724044734339510896584175392152762792422475503652933178987617897134249786777442541632536843960482385220525094791285929570137222081857332880575380525332346729036425229787490773115223493118336095845624267955178530777177124171616422789526170299228671137287616542731100678765401050592893824037453399735079192580765810603416305424317486086198409523717689219830840491627505806927327315316549755418398894643654365330709740495381045736017002366574051642598636649309724959829379999827800672409425096823798977095428782223002788105592638304870129002403521071920524753097973830699910008518521399932010345103129984323308408214910323733525265261841328889983082131597945571199420370103439495554923866331209442529295560254226808645870539392075400341383558410391109739148296470782048163711699712459517624890042773630248438766454391968908378124326246985421528338664595917984262732954419774618190211866223826081153121437146198065482711764216589646431120192421409303242243341008709719522996332996681336384514695074105458573744279805429117600543177557662740464661987350306002391026340305353907471994887147149991238078042801876816350218708900674294649625194219386500989232361718894156259495281899259804143953734361170272195668491746102475009317970477147125504163351734093516616236569653362685345427678320889027733891076347378854537091666560490250133819473732554649921812401022899223779623541118078823129909239546865848439053569857947570606490725443677957166214140722248785357402956489445592410745715711001708098583826523720741955658537897702825606777673173221950250295494328429836180468412163021696923972827690906328664335564685514013388908874206053025161512918019646890560485330408957942864558335933546167694412609109920680302003640102193919736282397485440953077451356402916378827637626615875043653482504018882804385791990521977895501993545464984360761829146830278930544772886825273105977129312398980547928298229568663132595039666015915179263560727210636247670613681961942692224696679491361920476584936637831809317051453995893969017010702069712126325678047524033543913876013979028183918911574188411691856385540093293113931482949016183933566459604340352733653013591167172437538091760984927118105963816301925782249057199833985489509066046240479128259029872344008191219453625564108925916431459565484722123763918589652069626181585053831843453122668296761149802911332166506766603370406914042952967503741393404372280265393635231587305156693558781854718025209177674367370317973454538532210133581677274252036163346334416153672087992846991123423607201884813153278574556609169677241089726543624994965937930495823300047884974680794161127366504102646001514857089994539586497945255330793396720547300978065636931098032596589233946604127401185020207867041042144819754251793759084019482862048773253180571519060259525809203504061681298605858069753870553390799201426268678913099919900679235260918059169569782686346406127791575827091371143062528045143988150392114327009472669463564859931949483724298503822609193806260972381021587148835837256853867953717083808328398661367510041590226323055941780262564800013951759401843645649660124809082743963607607991419969284794639808306372381943684541784384936798440485705774721228498209220803361393619353105985625543577693273108172493608668164848396229672151952965776903387801858754600312243393452394424793057263322914371410898669208936169790556818761628801841110165821221323065488295683002081596447693538771828411472210767971741497066156859871049683335488368858709788402636211712633515246650485741146670191943369957174679826790780731098573496752392413126987060404629122619070805841606728933287752085370562601333132392588829921330525012734579063963626719943529583694523236317145008640413487458211642541748071068651439151696449455311225657821655785442595238701542414430567426867896632638462644484449648055577322032286002502410585485823855830464081757227115372381168705142292840627237739567382268892912327042382212254818312588913888557241287925995120807283831362431803186572728154994881004057584030537261246984237202431308744294169089688090492578961705737120822448909808191797484294529589893821233774315644346245255902232117158751131933377469296696531219014602573197990308465967754120893018616496406170936435172357486874031920813806617896128816203226295132927655699277176405988680388477684428563494624660613104200584333575895344110045191857479393070993168207416493232670062915807605080662554793400491407686104839013950801188348179641553102757430799251492350997460791288670655152452818693335588141159605401263019147619503028553689466387630051860102537981165165241627298042276100666195535676518465255700507343961016363391761025324808703993559213149063093613525328541330094411884942294571684692747956626946422258204490909442891592110323632078583526820513181084912126139347160082077428390846935108179262604357071796413315393731018410765891897039002884116381280681838110433775197476438496490695371487404969051101672394895469736693638278331111942477565123184050137687043176188684114452102873496738522571218218727063772924489188173339704071677594705028116944103180452161602626356134189652498542541371182472616447575089908346548175059899288594550038882478868005544844975441784861227443665727017358243071710413043114743398693889434413688548283837878671503955798535181496189796569802454289477939463069777893978244022503307738474284216783013705784598455713222576757160307105974788972098403322619165365586970081270372180846988536684168391484713941658726773198597350558134115815930233134399484420951260827897255000468030362714561169231010677452419642396947725910075749442007031676144045926996065151760164361561952210474209333647773247503956686028043458862413526617450094036549118605920302164004609285185229206935017659356698533007113106177292170028864640539613958240243496863868461017142791373937086945216726364320911863334886850088769799781181210747948086080815885240272266125466747383039673291956024717803458868824003882865888468532637275472154214498228316057765506171507255817754024833156710290046341511033623173394460218798267849607643522559109203414378247895605010933926708898687725465295330193720295592126858474051873028024482703730062809009606584325745419227171475089572701722173544098228461993620915303076258126618509350934834763009143221379351613736934486375284653828441743901377862789866669076959086402853726115267055438789434847531447961370616809949258829584472370092542558412424134349776799572887182291158462603429476252200815729684065316791938761779503219633106063526197524024158163855470170994686265471735829496071533795599982329935260873121758782843226695221656526004529745387650624771756451485604733806025681348309096171908613851470824626890994236625797621347380903454750688597610822070882188570571310461435426325652198652167793626166952044779397448444980007166502164181678738895566238290248730964990916727004112439047073259312323637440183246935283772447831879331256455709723277645903087883827531789040086937266983710165636905239177684294476823752603040840533954482625565972318927125073311863023929273583195513757592939532119541579456235371009681708778743389095731947252728484197895038736045899831137385094681875221221389682728720148942005712561280603577236774429262545094373004373408969255387573025019671188281901129694511553384220442434685688710106002116854137952613531209301198111764730678515540015980727317640837971784958290429894696393189227975999119604688412285623176994796985516022516126347576339328774276654740779145043750588325368160012744493394741338903722676251542546580438419438201814128579976063476644650292120729811824798631264572920171254015929150617308808880673363940997482367060324272470349910683687224592584537264507115792267468922976872029721375240635089883316467335119772884587864511659471909322793689126963803760781871647966790349406941136173832771473397004685490878923467049887517273873044823102903131017018008588817067911101895379406777818640735350980664277546435124737487455709402350405151901002925889304339987730196918286211764263114766878495789016928526682483317065410435975725520583158866435315308532902259070759652627754861197866982817776289730194300049390272682565834269984110656311939117016589463533437216062734371951066933071144275506285586977816507971097860278935594813344289238700988984311068884718685151105901811316385112570034703995589077821648092152085362746161699200036988707851807954277953309925805953741891311652418271940914976812898486587059568278157850952881285149787327901172820788850871561101196486429930195492253840380705512014223847519171178860801238648438434530145605447003483433911531374759474205186561565967966221987546990562205871444334666112302620463031015265201874860482270306444401122334515688297044628191171526860407156087219420809630872550712416454779686884670410788568793109699913037635878630876849019160163365532302545261301912891919076907825137943094856057663323368925049303751876389159351252879708298724848606783561342154751210965848381496866998052768523719840638487491223742115654912524173837701788909982019283978209790689937180343637960272000860827431569430013091729818559422475931449405605736538841795629739042951891872842419164879301829054332575135853797854975716720223018063525883615850606110231501909416130389213580788050791432141105630330803865499084463230775021166173288537722272346700434997088135643102838258086638452420346886903411426813558869232685731975720711926088426678767712112279186454701170494140029144690636774965666369716242437183733312711056699287939646214553424266014382877136871835959691845274776278115424697779389080775919410167117552428764457670621118382208959454414637339114942330381812553358332312340346112163700324209374268224643716550280797303278124378566126144824199987917543419590651996187662147397531394204877347452690622647048144258595432400480054290688481172149148376750573022285632046857705366183365804091246464844702533058965546750937619180277299352343800767757109954408693647538774931703335849942654068881386799828076617782459928488668789271377341991363823023268449744798601885897978075862748103233034018192566193227714223973395122254242333253990324081400243589957302116508724000387397183663910304323155059966391025678060641183067831231363614783272786048650999366836772988303366193919806419462374380764334295062575772052198510704920317470024690459240759277054757052521454938360337725335637658721434382383544482826861360815254164202954829781984737953268247607776279776394441489829416847418479195840994690956879693886731738587409225694372125996999438584676412574373050859213158707330742420256178469500040828152818622136157512057007216451594527266968144430040804973723520995533181838942187423172582350594571757583075011064261333418159420920665983095194566070656479911696863601429099688995562329816376987674870262106114684824447084321152096655690931139458380759455043067148303063832547946003046299610878383752005185786312612222979435887696518463250111233720724999673033620046158686980349081864832001613308720603060288163772669004206877052973421623281385649331404543809542674012429630032573355180851215070415749526236962000453291204829210227004074469267319347612727490903347757210779673712957842383476183447110688541951494595826944409840085570777213500130384751054837126798004049116358503251355817428272629448679951277376292571168748421145303269916864053907125596459012246405492624821461619968523305293645251070039739926687674793194740547688067972216676546752973046320059554109601046586475816631623897556696082521675811372788324315350669428163908631244998736041677143343145757361342419308003467652474231015381507174403633663259141394376685685424454376339324947545538333312403424101845710231903792757381222246976831702731450943262662222516540996970020677873882384907686444336498644129550972727931306226941538289734198906944563185633648676192568122442376328466941996331206711754666727284258599466725912660190598076779542651480331316254315691783626613566050479618700570746521657596596052940031402480993241143853512026032124328765515131001419761933883509967145354631694883279479874789754061321275661089774624199748395510000364217673938050943614018016452601093870768154757275703854189151202263596539091975275590741981758998069572281713294898744674763819091430160225786499257975075692552500086023344045401750735397543516575889106364533248992645748136556935563525340526501933782932030048992496058764191397476406364136301953904550938999611633475987540558995416483966606519915114293199285456637323404764791766311082510742589028383704111969390667482576031607820826900274766245129512423673803631844077454261799004176643138370086539159337666448565810221068714478930604567616066590236085190297101751086073894515064544102750191508819594434066840355911351181940039773697704999610873745447527631828217369645808452562096013795910768658008368387948399857622990411366650984993619007520496583903084314017854170254480460269594392311825049096064887171212095777192104064040748137067740351802040277836424171940825685756074094918139051790404251202609324811758105117161964577879776674927210490722965309210247127305229512812574675276354113719339157962868520525012318559608268806263187907659926520086749630451611925812899969822714542103518280459099434837129133508115171153033671516706622330265938695217633398321309236655232114505602487543701850606581762668202503189760513016723948852350433611658565220835329095157254311043366154958832383418679956871340362281678013317488981418857825629772448011295119322520795302532999753974863756988932178193871273313143995377856147017822285747263999920122589248300914931393085434111202741613359923515523817776361112026395840717854789732560064398961648415263748704633943517309678314408872340317495431729180439303935637223397335342111154957594775954615167437140974473965805004578455764186293234317519438264677359716678759536386260360284667786617754687384496795109536136331839999579879770202295892788155734893567677076636291201510614287302631654672460808893487979536387497259499895481563606752508277236004440343014969643333576744703005133569395280036676784912035988894724454434578512008092329440778944899285463221905809218631211919663152106457461295415856578956225730747363122684229838911964092108490568242380421403166513907547478708407075861178033304511685645409913246734649617921699885323160352810343010726593017655289966817634686042826459911012747642284904919628035543114101641426901979217589780479468953666852760386786114746241849596289303753287479830037229471919976869209657147613139334556039593422936289671153624115255944334256990559005612125638407034465143621665847942758980666508372565928632327350982993796433277026100759367964212983402366734458635300874392575100056475117968970828950900464592627226732246579968343916589457622052397222055555927041809889929630181666980345906983002395525933106597213093101380214797508667121037568810582897391562468020144066112074965039093295771810670603561713850822492539445680397298425059119141817090109000369980708424095673492279437766705209465998812484255262456980641560292149782349371258242309833195204245237228815049052594391855068615900785405952984405712277221934954152334909938164834423220685072310828783113377790454730868866133097216996018085998086114744641356493805312578801559368387124580706402027344856978329632411558889646801459535008992353120157024458610257379170218302505511488517445603500168508492731837184054219690715716074654206044985739989427519250838028905082358790274938648423737812855697771033101284947656841724589802412130303179445906545101528083615752623443818778481154810505095471098456939866606063950649872415818095321254519316621487789702371137100149793838518672981838131945570125711916608468708820535671994141376651747496258017319094874154746013439977281469083210438245003581940325799179367662806957960749699376631950017677525629337014190546491577030918228501335584408884733041775759922240778156972305239404924478604048053004490971672042155405048952653337728649026110005181291507587687262885586974548513075980495282017545505639833681927255001752776052280315412388127273415592619865200412836734544080006754388146121589577368960335663356524606266298029694791737916198272905534572873565051079826291359643119206958258519030283783911541298177339673266541517400548102154648313645449618090200954404335919100761898811507180078076024270052767120705786040791293890946591212239260504394076705748138839200540096841084488388941855930977854556667651511362821569250955667757332709852878178808652962674612299949343691179931471474708332442213149844237072017653034656039192589876032943217688143832668794317011961467983644149595695277816722255107844155152006244254893235338221517534124468307868880748790032059457212403368737688360681288675300221619649905980890944372053668382859191862858328753557592227320295142853534174367827681348991677120582170702352426404313290185471838241227814713858957317445216949772296661367646894078733293626623831918821416322817880862537175920316125140283899806816442214629127335550799201934106979985892285405982329244033018096497836524278491426250641125615389853559150472704924065751113066436736995825414993148500992959171966633653173741243360235053167587689972858980296805228155775776670658254819052055905444371255504405687809837361652517569550173464849379345594833105611339519053777731153721129460783030196817352531415479461548657828475561222171419377987596685305818446797781986077921917449586171101864247542473702056939890656635811567033236571427539721487890802785823757341287878837940842640162388178741865598252446275026471430279339808492538803454689351550613730056972848513046691781310528266300020590035395167278455637016085279008647297763292983021428339121230267101921566606169248134214395705521666477423866097642857955649469636382731125208017454974684702303130295890674407378863568194733621546438244016168114193689763275992776254354765354077184150218223089183856766489582753293566462692642146233335763115915551184335833610379975207824582109675645444984057459172458772354080279590639581607145420629032454274535757620472450128605609938712066490238123808339954207786043021909413670215375353515147741606106752331752811768444703543405217744321221764036970651335155924191887254308475712478466700269775306883776372754617852266466110173682448094959318472871151415421931506309359677076133665687172780676687764384347261515027830200363852879803167734202995165066287567066721379113590948917158237124949459500363827389850059630526287293657967649572352410828505980329711137326605832173428364520669657995883790835175331377392772709527179667350576089324961156729666968220197188038187539878040723294280726595143212500420185785055438963172221712749909178445944922702858732030305595256816482206299048649940839633632335178546326069845973310416098352322847847477412102415213502205291882072563016467831188994381327001022643656347177534118075535719522591195663781617555344035062465062825872106114088712525368617794483147145040279546470199640609769947157295521141224447709666745438326860113086116472894699015003621198242239871744935996415397138093373330636703425909568252601162221980493944170235046387913494331480329409545559057884228853548851719792747251556413637410035221205293121579589203762533741907655576060386700369079583358643093751051352325355103680359717038925548922455812119399447454814070253053010759455647249657465871631781724444471437591942912953671497665272169798927207690203103683760833156244528692220298276293508442583878498533417304931597214109466396619826790842216194249674664689956648922685794441553703554529180699704987943055327633268683806552381022050549975654548697933667175752914998111427755459865550293466454005481677867828088614885026695416288973868459954564766674873401001886022459908940337293189457107492960071588424643494331469383417001078290090169569841669118005926150571436567988751405913087798489720572291309814408010728456622258706190118270945401092766563899143511458558543273870856722591271869956705442288903214141423166580783297659134100212554508166505682794052686483240561217451366582806596061442837170198980995811197479030497996042927028608695372336800813160111842112936215939135549754734406102031280678259286190367822862316422923795305136412956831535987050672506703803624769557586772902023913270901557029052886808928354444378322610449320394888620864431211099579362992414035827533558045062003771971991969358973902701053145395856521212944259446036429325243730650998625218428933408191915646065274182072815728638926310638343243845154736798968273866809716491702152670969576483480488044281157374239360818592401165008842439766625030680825449287004006981932413879806620876952759805152457299747264701284240913044626164531651849062409157944990536276852268751625178879680704382952393329169679752654753685265096620772143039878293441137602309012920074690805871854229809159324633834128441612806517715141190164410491112225828714738389788221192718108501823705402775689121844736320709116476149740843743632375526167097365423987509878053985528975308906915389099701308525201703799361061638256089281894480361140031080050330537717263745404799887266068626248706710059422457932819969684838494138096039153475365078591010260698629545445239858802523453908920473037082222770029474494939662174265887234806055468323898424427812495979338576328079478491127119215062060770700405351502608368495346537887131321435688069552343299104846933463253825518212284753350625969857249292870675949982503658389689626517962311847093099769667284876329780603787901543980128225034357283056098699972474952714700353822087958689958030587100236197901409169450484387484955435964443884062098696216736498142039779694682722483944506313074998526480696695150569408415912952896111704918183448409440904198438588059100740224748890946316768937808779681871034984362773814606540083303681762363729879472596340018643853469333220562380987911296360207505929094917463922950782255233469301362512215492828439983279101390510983653894634057853541671817883266405068496890574468957861277647117282788606253789953992949449050507486938633719768587859813380852317482014355942143190667342569124060930754400653708049223545322334618568542702399105488593529709217120133165373793081041795477632151193958028925671613167728649913290993567594794783970378599656678546044642823998293360952288070916154086324462578437947650887031042151634125742822413019465803865299934722384273404029753518832116426249153533819591615923993562834436956800559020059930856303358786988739105093176851625011911704818395138541932823912010508646267089937409033405575646540663303586756553733693785843933223249376322621088951432951745119178161204460139427033817571918499247621790477003122871594932317488835153308827680857298199489580875515375822179168755435370681418470157310783066060413500416997542903984715287632848658532842305483445973515014816678062440716689736967526466472313964753756877519779007703630702354229599031355159417397506999985684492357981313790810414216804358452582206604658915179761580206347455272405127770992629650206637498509586647883179154047456213653414430683343695529643104483448921117749606708072212506202853018554867372415387266190369307516695414450406189204766709446365821892009945192890357353894915603609356346170636051947660472189477573050016902230950778960801961238720516313926452167225908305164603052161429930639868327504534748672145348970203143888384840638816988192290892063799657943306065069596774550411645678633743715010541408216277366404733275587556575884848962146514143103802998951801706012483887093470066927844914059448097243104260994216177811460015559568221499955622804340541029756653309247753216189637254864900539957234884176599858619137132920625638162858163398418681761366099748608449798536593676846358075162524252635377758947732002472511670661103624721751379871710024460772057777232013316894069801353520044387531342442456713181618160207893124871786188717634608878403900324823385590989936865298275676620401261014145576131694542253558734371594346870754483060700003237998454575525663390818464582252993993499090297677548748486528542649311456159834869803170092420976209790220016266278096217448908160270541959049118429081175856432576319403456816816650421028139705454311340037452261289652433302725669897473971870081290175568978845721548255609802047171473424358744617903858067148797271495466673367086300729084355737276669764586108719458793619155139173442155318965021621279098151083172788676411401435656045589278546279631966321483279413296210959867562970811201992615880038914295843881005173698499782348490080896977082166792664084765401588085565582942341042862398692958500383781791977085314276136205761956256098383457012906557667965535528517578018605115198231218524176300504026328245195253776049578393944861874766809002051576337227982181058436788574539531930647679665291321162928677215463402804135043293777386593874415438321467362839727410320671536983035889630856356586865375914311814615156715268434825933933337192270456007285690216079727679769473133531602247621618912087686092729499699418685482995347800603225004780555160816621398823993788431117712418287040685865711214840548480189782696672836409442299917658255763526432034614446899977000325175269284053259705019601786906868839779202945862341455699574535832742373634043085285813120178491848676306075035104410762036120525975085528441366012610418329854440937908469433766265030505078753432140303810952642832126952736961818339345526684123244867048931714355898821373409466548458093335138862723021846661437440237063311226475518085468254987325783558636275366712789316961162390323272116602100235711046320409602767634140748887333379984064665937167331604367125188539211184772944550104715396416699867586726024968805811118562885468217164089942131285676459244071806092866051174231002542895562399579041717711919799375674453814816259521732221666515994253786860071446670875339402356574485464602691050088069043380841900481066816842572722259711406784221078579571937467160867580039521551632920844849009609925068435533490082147660859816294936195568169780867765830005604333200130028296613682133545424168997763283048798585428915074970408676112242077189591184344854420687032167608559401925696847727527876134728677055200522017886136519138285830217618016568940152273034173091169429293431071810513437455819330961714450466768598387319718236525866887495050664979969095765922557014215812296022037559566896172060753379637295908130576958069387256642439395501609924994710947808397228717391394792767599597353078512592009190737232004207709574227879224134915098774939559621446807771953984202640792707577712714190948350680827760752857039397512675878458418454504347809826410205024020232563316125922920153770960753574438583386967914088834445981387912813286477999375680889300784775804839850374771112442494846567732554376786066997306661781811231904250482457491439562429323477409625823795466336714493125184528660403352042286833138241921024681789068593501289738461885905211860579771264582569220134359191010310064464279218751153353680195488636003661832789513290057129679401074877003596084913004925097852981911626746452457117691465939727954575588841314072594915716364384543534511180256879446301603959286685775717680194042673939707208599370512902197586655476593564991274322453793321823758891667125950536148005002281409357767158708835351410332853802848830243618843301562555176973863203812122122978636303291732437631535060292193879451219809400223894084779519338941080045439422944666922531692142402582655421801302228748999020444639062877214163374053862473266821986091262074016449383619421162482816875567861825333153870148055994375046161724310363319785742583360014026899910229748569307628949181686571256945964424969861707592631150538778918802068608959974399083649109180569937219997634284453051453270787506759783718755467812290225752827249252673924493059284835849703974232185126279013912583092332483094633730956111751668228589533314631801283277478159564783401086415472425654471421526086226531716677043821607450859202865218638421788572351459523783537896435316208973875798072229527047351573058422196634085923518429644063788964295209330534881906664498749124578663711130602576747532444922570704851128320029399450722998782737916276370981991224881716805368572857263742736788486584121257774301076402220186739453545743536994130667842088452930193821801043001143233488830005571054773316120519088535056717020505633061116138144621078525150040268128286093421618604085303016681565192846418935814341052320963922334112023294809875815194506643117617765597091337559346071633849496553115015556527441983872304951793079904306313625798739815757608027901478430411631623763618426087604953867458410387054544420479092367793151658101292570676151990057885722406944928509900516662534183417926864368155655662264023885021596689479858117920700948386677406647109405809736182592419803968306912161626996410246813513367858019625183411100228393509212337997473966671083038663856859241958492789370760474491049781949812515814548692245054426211762788204533729598650423363816086756775293539732593836052237521472934367827051151918557935633376996378355047037127009563740094980180807765238993333163052098118243976152645622614211683333223901381539046266940507941583592167052745788134172223632978057232933768617475207246531974817836785432254137568925585432262756321936257916219032085786370350370612550167533521635523402791594999629332924546462241359065307773709862064648675458550867439425900018157385736576645781014043854029668607851692725554567423480346450742800121095082134594261204878242277569494489124131341291226752876138157722115889631111041395666034660653735500371728336888239319990603552245724184651462773137958328604410344552306382020024436614695455407898057948563436772136056775502612894169705181398294133608602274664228254242335762771105040601753776602689731734202688084957178025978557406440908974888385342196517993554603396017181186953840030427154673927840005586940203917788797127402010328002744934853339648691252785339461054435355483824756754761328649854254983120327622464775115725840653087260530847857216270983882142508465219969427640938289780866294253038689903442696544866015320192971311251966576912509422617978684774190353556049215546597068831696187931582352071278256399574122896806360209180346951800115017177832688430421945779480773242636101891484182776982036487881240576041837605246470046598241771941975561159075643953556854504065405438086246379237832142039420416415576568895187038556132346195895925322204779988739890180259951322632484716021761390550490026887454018807639205401241112222699191776414045370438865715114206171830217000739185061823424798110018310713931610045888405377074049410996707288431204626974463721817816045496066241797615424758905925443832786547781011752305817650730491308075909986025446774372840828657230968267943248786373126057471167568443357389151665734205598332345060592938763956069001710345870707257950158457819307510680913095175221352144071772834331099525622408164825467150414834581692792528373695948762394213628080588101160400941377771594414150810226432074435149160349762057826935748903267292897820390690752197970832966809633099015425845546086351104462377754759775677738244446542350795250148715745320678641376180444760037376404529535508655972162629729256786484114317661178421453804156280434740474270519826019769353345661040405333104143270681181719835904497319229353619107140855726115250542149122251763246540694636819724535715071856907572585266426948026926260901968219473311031781126474822232416597860731618553198159513765692816289410257011332143780262885540809567628200421626947385427437950157413494461732185467763191572638059732387449381846042689159683207635110965160967681412260819488936387378515651547486134197279929310513696494205094065423262761914095381755316112955831636410007725652098697502494499801735727643495388387777380731866323579243766474840162352409301994180784761340009749000150621477380547528107469656791058021731140664560547023957656551137400208034961945187505487945498132333567221083284495508230455494578421682796764237090207655973309103384099636693740904302617487315056718596026628065368675968929373692995683369479908197449054334761041848279911760604031606051212929413700991798054367016416176958956059608205662445667308347698115948539378033868672441430094660367981829217508377185411547469930259608287633870671169145135323292194858017916328995885573691414362052367511088156190003040282239352973684896589392243457785415888476873280438057088722833073938155428326576007246047926626436294020521964590796236824478835105525411644326392468603471409668071347825183914485621381978245423425964038017632465822402108958559710962478569262142269517227207630221266388321945002393447030547275157456133584065001582287552103820329750977283659046726435477323755984141117827027526504408261644005679225368873012794614990126901895976954070017111163131347565557211239822968398177111784806033585447530099943029573917526626089670088806955858730955049991319223995122499757334287018759708926559233096818783193229321393131083346835515385704736846228193233152597442293643620919756843435006876632268907917436266564037174579314843397635826743647943266448516847711560592989658691026064960214951952438552418383831146505959711922380802308872838113107261459355110675550988746492401488685038360093706838390337781464574468917153296009452815959876372072435816251485026128424711235233751865624108975625239813049680488673945580813628965445407563007993512931471926702596407145531897891364730142899443898385149690320430072793379992751675326500207973419656259151856990489521107355610034667376716877167426167316132456265835473872767655440537472799861675339884800016771316793894336579267025535348945349843479763692139360617301178744947366737933500267625360666920075810514655482845445247607226332012461258839863342524917839652219169578422517338374271166876256861952471598042330008247427589242824197636531218755946159862918423501307218661880888905542048683364429822062003940431226712216829951479548931952237038125539953239261934788696596720591143132683144658005492576779214896392435567042986263613195219254657158532884171149484822959031511397534731085223788358020852523838550051018981147715157872176336547097414223084202318261481429467713803886007723859282527517175232698535533424193729536598798674750577016544754686418242186230895992314558408409269726941719429592236771620211040385304798676888137270522166702194522075279238817531505430657224523314469029416500145165684055805704749909825491716450686235214652022911246724814000008549940864081957133033359537442754737645422398601598970047923139379754896895201691585707013567946201449665908776285188749347727624042326098570004334856183159494412858856827701142879558869525362361761710035668992331541594304790802057121270854153330380035297051550198201727152511944904965139280962260351815105884091742962728232242785057914572271517469657658398540693332201619122237993187025038557697378381086839971503040256687343537854909505890481479026099600147537323076536332278686548536843939943025283606682660110452346788605219244709578040135244818017260854908163166799816452291786210796698676880786072810378625612677438115207414914293521247811063627013683390974221533215484469924226786246452784122332822680861969234259031869152740748821597678643350790615209399590308404091747073847116478596747166578322802337269346291638527101298156181834850280848290281910871517463186933675809512866354473308069285914782274776961699933043124952793487125612614737450344546228034253733490160644072396914474091466683943124333338691011158209415881315879645849035784743279607468579516552240906283524232037536070441280818192651023873846378574159321019925500139996618948371144211795971749526312493451036661845729450849095140886490477642196158879259019081918734133888911291184055033829015373907272508089138302109125018356725875687967615892176421671095710950905610638272080491893376780912294586060067974942458468273074962157335046490416270169425907279216160764656081203349697137042806172786953993529094195984265465105584040587269355981530943783740835593684212991985004044082881243496060470469496761282976331959649143908242815029237618450914133101188552348884186406028356015982821000151463350836410664103014576579990623109013433399010069506787654204852981197784051956258681299071977838421546709302451397957065066256788374924382820503994698613200947200300836717119169822271451349054006438694715685220519857492657795610145199468143664996675277224046802442708772482970236698092796629859431600429110645854948474633685056521731847520507776204838110925802657358621838159145496217135981519215286471917819545866641991509904590795463019308079784890231027219592383776431155486906123862899273564258506614559057395868439178413854178055847851208596343222331987214628596782919037571292721904920967278743900022209395980625588659366801337798982990649762305991428469778038610523230585552220530729876058546821516141568638746862972729077793205320248568058044030245319262062521569932005644308426008128093938785889322242757371042351584830189734184758182429977945228245071561694788767820706579000658933794949546133419729694720953303170635416851756522599457847937344535739718933150032840186791687267439371967972295856955309675092095339553098717891176072185632226098475567059692122685327674260978150725308851341188173202673457433420911013129879528513201884846575051455972559600749096308001009044204912451963249370974592797902764095034984551293341681414161418921493882922102920772770427390787068620279356757787204976002891228696958427420789642011354724491385731085179640542780238307315415206143457765816472963721093625411445770422725306680811028298212633042019494041907199930151954199343043412150871535196667579459406462975344857366231964884706242778870742962615464647257990643068453085856150575138768003981027814384176249718451243078952782271534881272476938501873032827598530988595122466759509507659207155573941297793892665532424154568329941857109804625217307085035585809243502515376345675648802995044766626371425964758648602187794004521257535532793048906011754399169245515693605696224602469937133938071864115569611359477640688862887496904855767920855210338625332899265996495958981321467845800605355932488090316063072287696988782060376395027949527454561762117581819640278236257717184589891957451094801802109509088244920914968471561558813074506095252890534953362129199652188425517158912029501083621600844442225515143742402425860065675006507814607188022230589976781960460518101524837449751575512706958075841688993844958019247474807295205432464940195257664807514983576941273717567350885777244060247986057531552839043109528787114165575851588157468040468665064206758884260301678771050524002039240700974519858335595094197850263728418923599858851931702649354042903139761924838339362870908911956693876765136666541797544367418809012349245274684889582903852668402569776048245297881788422399117062094214391331008893938209839582041970867892566439785623066220693308803984272842644503748722949522419351907623674952493054509078672023106944356889995996514813696468559912055591307100976561434169985042608366964702191239790561796243194650282316637353260104077528499072742581926720470137353760841561486361103973802398345340471173057032691343557982107030212176164906829256839558338855012281904676055821725405915978543702683109223285926794097715000213454275897829699627357989906442102215375484982211953359829311200501358300993015861093922827291750658243476481337803435243665502572807776919723332276237444757028868044737685676437080519692406413061800537116346038408184035280437015856634243224566572545886826074327684981736160251411606995098206474833773269017607616026004220633377103701481547136904156466026682864247945177574784256219215022746758841229507207120861080558580863505761901415158905639268161114473792395307490747829990988180660184218777053192297452844204345608816634685879308318503769705270675324019745939302311283144978904917323134534965091663760021978669736187969266934009435003485404707439105376731161890289822173289551241223783424019604341146949379740571874853629447165707860005762532930024175998334566863997956903943556901201685658908181789008718638164382008434889132670510404370383475563060114301003215526551187511452183545348299088835412846716289293840392933444912029238011625324914723499692916884579954885063261774022671001000619186749542783435654571397087855510807354059430599340991166574471025850143564194560738321966695478127103533853547775209412560214725748882806422959686545155706823317657061998917147370566205139777436412320998168219323323998272910882137767138780902340030363147823301922713599688044258364521412836566008906406746130544599906837139688689083426244133720939904855172663858542836660896698554741918377708772428909533632411737910530699529782742654279358257546664896414716730930573062480151654316417586804110715582712956101333485154617800059817630962590832243167302600869020544665982650273018839962549304381074312758850163462881517867592452139554422614445446733259701842944399158306751487311653095249973202772727340301487756601491379430347042244715806782909521622311350175172660276947327709241906601505519885403760912445596436000707245944533950211870402926257211702276762359061893111683887075225444816173751213759130891370218050391332520618096435748410140932210473336646108885714406249223076188352656950696278912784516982758458251929686045230898856172643958336262538700904854248456180116837936940397344148676021151667797836012436474639267550212888063450444964993002607151420575862796715745910514609497113048476538263998662001636273825766335578755737184375330802931594338329027055537881280541269016774456348370756919040433147867519260160773452923239314594776702199761635252335490388413059890541607703966802210995360193460017241862494538823427318308482038776720628265196780180840745228346821642421895397187711815608337100241201621215386117373507037214863266620461518099411400221115635226524787516569031988941403411165248409058025686424973151927529014442906919679027700244066611119898051397659950842193273078599033129465653507182947093355335007689035634960511960195351636334799272283817384426119246621411626578095907194097157944834030678876811627138457162322036809266219266780326165649497527748969839854793189661967780182406625932458783177515763132540319576030517077733257488876020325039560959293203692810491576593503867879299114229230069350875154355834335882957556898268916751073401470007666202398911284463715431632371888267327149234676617282716003464431300286839774009182291934343807104259007944132610725624825198531319207214406457906380231435408612958953068833240635799277040737333613437947258450790985497435469077424360787419961564514897822594202348482805256723494253866313407791892229562515253031051810990586214254036172895610079734272194671992804422569006970631800070514204580359718175795959182540506116290241806210564276873154082635189683279092972149981529701633855424778597288162879933901948341228903712034538512563544043428797636157909053903744011655866851525816107490075697519088693593268687367466896695552117800473553789262225403134166000558423722620907817366601361820372993214409208230033293549805822677101033209092331220279978010405277993698490262743880172011294636640440387894350584330675005667365463740770762123555979243178586965140165123076207104213356550108815529069121314171387707948823132215237942838825759771997226082984268632071390275358116264374984521483462609375207376362204820254451098431286201789624295309638042101268903056841390115882860126256850876715424783200067682457847309692300487967047537880420474256999864495779399738132881825223970623991180475154607760453532855871008101127613028099814253099564391738782418841307846752648013018642221336321490520813627611182119658630451182075325172523605410729191118527857966063716260531203820751198955547123992550024737766784118090319575846240505441036347673670569232635740214173797887996661801685226052771974447717127701407048175855950796030013021962609264860889584360411812500185702342857654483768867511222735047936587736739288548032970235742548854007997973068402356843842425947268092270125699913126298629755329308451791617264712042129061892549440054423297629351863060929000400321894653447101633283111262815262636025097482411745361718718216106571826343045229262881057029758714357121848830989810273286159788169216763310738492216483279552456108383266368129754565780846128230583291351154434171206270968313871778359773704421084566710520723805730571824339040221669693016183932972828748252006354267240660391543688292431918510724987372126576536998108994610057946337734171109477629872823422936110663917432772127171672512848140740307683081299996742771308442485315191303652390594282992834679474150658247959962911871470462214843531257623395931418870217782874203687613585119164059578348554020326312582839110059948203155854753010582426122703333726588258073753934224553243829257992352762851124016550669879212061153314391443311606005098016307500441156162213082966250270713001213987339696056435626189731728711739647666848796505151904784042107988161754544608993648392837856188348877306749262118900555654993477749237866845625121985568013932606684735293380037937479454105848267418498632319074030187563546682477179717819036290482126148698034080702027045833270275984895548226367404847137659112903758637280399616825433156227886548916407157017791032062438692986512055994994919372497575497272651064551001696620370535731615816103228930044559442840234908263744314884651540703047357632325771191714598660432203914918518732702365251590914972736720142751923781666136148445683093559383051509028312458507782265265198009722614267821093219959570232161439261230726971900528575905801090415264212718320868041182925732169949284275433974889836612581969095840541091327069274869382728129718645208243823695952402731811088723737545618391932903138912623058177107941102498029937018192063220556067641166848036362616624621587672324643239818316846763172235322281502084824743961784091565477233514904838147856296763941171343971213437422761486053187727173422286058104718236773768693153766807267749860695892078434275049546517246844789193490225630495185305854702730833159799872381951642383827733679697797829472612016706776225133129265782744120327146534441580421354162174475649527390170263473088360282828916926009193954984420141337604194940425135299537676036651188911961703805344233473886835787966470678968815900643240854166062020126185035415314505160987964891956565285673287925160287363011699661701840327261957101569331189541828693444756673512550088838575238861188004961211673796619705009566194947884133408541395988786833583626345838771363556979875468669273473351391118961131540233636485729338684280292107934750871695995941611165826219586845458880974492621537199488613051925174038399301713235118514224811687715143803355471610999615305762844881217263727062425985560237301276840002468141351142672654788369323690538114747582600703096304077150229779627440455642460697311698295488139292738884981082441997701898803581053496887858953110726964955811777600587149829646849290807243509740174721487785564455093456209217603859797428734323884577862172011632523237044511407329527908043291719709249056989390732967475333937515514046634413578032878235687370134852348277324129297044493663865377629720164960623476577422497107141107517854448232885974176393188645636198285504777277031106170485921149469298863899528600238935111877438000422437518955037359111161731434161877280272262133451711003229595203728922883953298551643830808844393598255296662411429468634582305843065383793167995216881028044471709326397553539079666726752579350054678620039034104316593945016637953748201365699158979675281112713529723426184624056744169898870724975383061752837353071148415784395158638053686597398246309000663698460729077941333834019536317185022407642640457834130981861256207433575571533035985324687274198656124516557037941467797997441694014354253464950303405357999611991152728517365881009617265240345591684176933085168646733726705483663034660791015113964764597250393240708407946651030544540086627712666603581845004932195322874884277902956173658070909394052457071754013167832490989014630614764537422724829418794771441153675954411215268557904208649770292756104709091706956604929823214763477186297957887203789065274385830816465915530922969767086632779947944482453823640343262314227533204955670554072801009987132447141959993771220637308131734257959185263472517180243181722308817620307702161803538091438331292400678756029144561032754695120932119064231103769743458818537607886885393839658662806698030616641671317121959749480356434560386099410970072698627517050809154361504686482046732516413227584772874215679916501379670786951826107711840520347699372340428365807106690562839103685390003088403766685572976875582336795191755390222106101345817275944170460043382283913655683090980260853298823802992169625092797406408481653019276510595167622498034595291296144161746402335317141596646076982242272004336909815721446111910283505995901472179039797571592829062638852898868311793522873868258517191232463617469328581411200251088763753036417751878329711387339752412357758890771269352173403805464295892487860242699801637645613907297330027996196554623900583531228021210047992988505908445873772329016096306478637923330289924958435006835289161828506839713779875971313488878814913940212550092119402621945399698540388259766952697995984763646869716225043507094433967478647978407306618044563205500980888921331758802774593410322552202384890085785249723094551646376088746026971213264426729340747464767538296974185436422511139073596099923439256372705946296630921425726717726588074880802310920426027714181580806851939807176970369069067104724988462439891248276735215605974446478433732400593790838729736497251118535022042289576469118851029256812072886486931097434888610226149398918658031275998354363687730277692807569695990460425889192013078021956503161560904599150797948802690702721277909036979531630691254600619810691675435569156674253145592650090488115546920598477154039100848963154878917619539114649255329779948002656291131753554393073119452819296084317767795683474875411329659222796142953777254621718558524997304217744546841217496505452764311549277724346843230249406521057132363567943564286742649178371250951513199861219112869574859056710089919894812142388636634230879502232094949989056144601770982243294972865299854946428327558960964135646578671010977133783839220220054822199135325625520596580506797083616784285108005743534695613433730740620820011180209598683606533397759586814094914674953709764786523419018761381604079985574999899330965065479211143291482190331217500232195367092945158192925613641591417404079377042728308846541407627094284523658754358348736609165671530157382207703601630917371843497586395273277932145030897941095862306062655081967882725734834938695348460025542660771402111930062509125007350358416015360058966477594396939891854233780866741285657914974072972132452256939772093276096623186611247812316241564461109144647737893825729183806737695540577593161323318398023182852222919484203866531976934805676524183199532461432562692508530204226080046952456016538407369091711796915092484139112478264816608315985243391321117572791083227539795341564383753690627949043168391626651681706316396540224108074558058437187814786774617885064448692063740142149717281288032655854722617549709556444470435543609885410979327312255164889355845060624253813107210381238264324319662401337587045485995600626183851240517986545791174905776986266419137264376863333288807068044626733966647921857079893572413309056736160977997140187087282977905827677724243294975210824308512775966003031798656980542398936404591325823693316812756171869115286213172773556587073822047115806210193378325651308992535425911939585665874615112210099283234818072918803860456134082605184369896857611962647580703430511878426528749114733442786057751202450741561975316802994467763617180812480365165638460796430868377672512109874536859449538418933825111531739275179723165769855279012944484000046627132359038196085156588286258108329120844877496265975947958268448620500637258825524451294598170506256950257942690535514149537897061450283888300997431575187893064637076454826724120680339117550352953634696078038031551824441083773522077253509238804552249622449625447744988932026142736732871432208555367603296421911571106144512705714528709770274815249026873376472622167292153739875194989394187648774886870851832003584367470922103752588989048946510260622069871253103173237183399528157853999997898127810767437842519376805137733683322075161343417236871579673280587868076904375190498334999829911792084332166829322581648503733655501586459377680634544004259873893926800829531121514932745699188440986132686992950002993684528620827425603707217803417754875130041352642455623264176754044045766930611666615417412733584649857758272267673204403761075423015385826295830439164917267662896866473609463652078691348163305962374110548811783203175813090246195414602742222567452693487209088053874129049696874081132613031467601201721920315352323117448560582437639714193167920061256283358990912348489079073126312204709967375746672898536211505997972278630086533689217661158998626794072494385012290735021144290667979788385083427381666954433770822106133637412781531311060643237400132123340625368792060474660170649777106297468650907691521821737220862102958423664062061816605000680382473064978228559471148999355296020527547465825724886954765352388303424210611510990863879742014352203434717886053855464236207644500831146747588753826152505266718044169996996445196144099540413108853221524695001971276552555753438835672704382137798558923169239893097015240193418338780624217375495066914855258742002375608737316454862807287083209231527451370975904278737626223998531473951467092050390134765446951414635093874002243190043783106200701011720112896860347675984531636164956155385372746658946772256979637228982103757216402572304959411500375200855393413765676763560139383410360557168134097187094610663697209158399205008896127793516704450784358234911876019011591748948632614881741429411224781530927849837410072816720063949686391332441746133619887025085676813608019177260381428679855274375255325261883174692059303903031755967623999498808303575345130792416681942945533280900570299252523609074860353351434279257462886406417197780805085652165129381148319039092219742916397277072132099314535878692061532765735862128742808989729758655756339413751806473190558709428275000841163380054665849176702118904831404710904950956701482741461211005725764430424467931715813109687184990604195111909599028797912717864142036688090170622228308454698288471312267343370026007704015670655479212436699367113969107341533941821669294604707665240517530506056895739120735006794078659188879863019724260515167931669427241035765917601964441658946346989796487220829027022957319911929550096496861334007666358604946573463753605972621541031228422119900358365022634068715613566344344833173023456807888828115138116133771042347044765189888221709392423865628220163968829603639951189143045284485075155058617729971564810355764481539614366299013400370457812429154520899345225167969681390173167142507923190862106701253222271593007781382943884254543774253994556602520368805075740925052362778201740625907849835036154219265921809804206701162898999242955039491560688977224881933509262859946331000680821880160698743671770117068574139912755143686325517223434403500657508229345570948108107381268097031501783841515084495213423049506333942058633557535123001812132368949656192557840851270789712285759712066595166127528664261274262654405199492237292100749444978001598319712074000147860652632035488941219825637933664524883506113619202804149639766707799365793790397800262279738048987580186236375857717876862459572965932628955958559491207568945429161409361134666247506203786615860827335803252439696891276550765896076631477355869280083781282920375453576539863718625481952427196569190874585175311611448232814927846237201174618144249297137661483847944117143359737059251409705706808977995226781879213609070152297819054412258172538924585506999249513024831960428189863230222728946246458632986645308314840160174976422793608476782516916894164159541366694446214662382905519834342085763894072745362214422963720450022943128684810694946471908976451353504786594469135629685979179173044950161034478070096074759802916080578475339780654919949032220935904536327871784277028186139729156577317673631246037599695249643775265133617491865768761212266779614207959045184168634840916496783529933101012652428513030017349812819240668799091359536720717562109649964817730787944893448573254465610767432373668197326912222641653661848218654298265623199942217896369478736437999611133995363408580875171725758388131498588387907735012641436700291045504390742361323103731969087519500904168123720300845286287768679615899889946209999654731620170683212584065479384984891744867954596155951824521263025307511978503586066057286464085696959068144265878857821992268335651245554578976510508191151451771359941738192119585071883602615426593547708175318151389481224548870172270569183184693937465329102657382751388914439031649181205112335020150621227833125570233002553778386787220657058978898236087459627387146640572225601690468411973479394342236058275444474678798756300802126469064543135744367459524952005722198273464914754509138576794171680469941544003559895573114070781048137782286063189418692912505265367746329466106599090590739506647537615117291533530261380788940073961278567291240307633352183454481231690911015686491481334425485764619387237613576169207349167793422339852421385181058616179814660426073535643491815182550537569936929043735592893300256323945812251398981291336898603772738676904396536413789317756465451783928011863164341300960578378495592590486706075429540126379757693249736603270916489157916211791078285393602939617032658099202845352248865105770612365816874765812328330735372776774364584107180295548947358547080673143752746328964449155399654164072623286081706494477866091476324918272675131056233665049124037134148730875490005543737233906703932582677909249732463999164735459472330642975654132202299402894714202229393948956960517550921502516403472151079618514212170682750784238914063630019064889280953389216606242358397006165265129397150645969425602953371442275861409291309299073641849768359551792141629057250239117512535697224872126925443748046288559631996487837620420108774649646719846340100605045343254158008852585247336975917516387785800606809392532112617268691704476855945229854417556501090743427770055771516972347086107671131592212004375065335434886556294209489008834535672438712822804833014620735858721918825355427999616433384893002386323055367102978198597508983740223454656172390114850203277135675570169895610452427312933435875583644018723174201637871617761073378104419455741356084003160800597509682792023387090864746650465759590286800917259031227526181066795441489412734514149393663624181971305860247217636482882248577280064214396373938533287979527854125856148137389786252257793439434057191509027247491959969803363501300282347407216682601275513873096440785761297528702486835913824545702777302034723301204591913914754892661005260649310733910700229979188274329659666966112850541930584557501810520442360545100209153961722759791342577933004344319183920136453996899443416517386037478675455829564925060834268398849987734927657589825665483964017739671916297241797316622528200142137832593592461953698412823256782040964278108155826477866506372695279929162309369323150545404443237669919959240974871535391065385563821410908904009472119994366274557939450281766764380393964355214027321298826169111126886610740401726562894536186165238793693593275353858683000276671661392301306692164030384625162879978707197982533919716768301449244049379424472245047687735927857531889015485945329938229718909647689285757477912918723778987789791750856275827413893152367828322272589607751659378454410965463905777278414016210641780521678864532892657511709108405591628542776954065841185748283226054169094752022508832939668740992058439169886046109087582521696276984851041437811238477024582760877082144041059501529109696414804571357076739395692180030225100963342500836072120249733111452810648896006317947991529660572365022480484149225927626342913923556775697693897595415411665202381679777516462784683379310553363773613531342697701426130161874510630450217778007714305565363276245970365706039640891942340066768780548340062779732486451262072679520981738377367415852692446145909196690993375839496252877898583870437710582088126295349483751819920780303714404281489554852900383565269831021849343551833372018965238401822596044764986276737125044333392226010706784538228927623500752517321051736398317585213957183624464886595196367695518393665268371442220180791521593538420134627007550954824963560087195479894411724162692443704897699093162043399253884415792125829667981411103474310342485501489085838748069532765038514690295887947186189981210756522541178265314809768175338537799926486378308340387660093671271133178868051281816861242718205936828133908437396195794684832236980714944713990588936702336562008977008592618179943037471791708599472825729206862154828635245010616980230728898274883095046631513400097088923593727581082465134952086297958776401689344548307777195199173600960294959165703227728523823684291774706452015018448875800750830427801881449579338543687358885594940922609059494389334483954676557504720415637568273434320861371435423607994674984747977296995737551831539991161271160327325172881380771817422645299168051680495508350660373064331659258658043067854969795160560776841461387746526086037326453605744329581769996552012146573486390724602775056554160638418891504120008800997944766860868890940453849321859046654603953038046754128194260214758646889671974348686374947271762249351607697184853254012645673243135314497837108367836530479777812916400059603190418714276836104409044419878096072054208365837176493113635306599185696706006050450095138479632231941871509420762958598676056968162872629181471794760743093378442527542653831534261583337476421748964031161662214369939432308893542081754574058629496717114954267241459607817057302592500675506298136406784433589743468566622690698869516125997817542595052749780610249714549422290946266512463944410948892003050976034316650562706960243979633964678925073703901026220226907574165556525607889784868528053811492610089057867549188736688151201436055579473118161358000169482190459686240010403632948843309716292358570299480559149657130662912764980243627514554094242716083383998584670347880869050295134309832263624844433665274998698243356612234489634869714308250782219435648494037896317174144065799452605849771608574550980584217139857041205880372647778199904926925283525390132134225427245221707302773565645502890451251445607834240446069152569964131361706517136889374022574498885008282764197761683554289638254909243738240471509128745798336812988004503560789350581370437374689809412217155971948087430454305598467047624387465383618047893312167290693863911307850398570830814957298667047832551658830763564247612502088052834622148747414655175138641415056485075122289709690860947333156278152816853438189319604917512223284627309487427527595625280171072655856132585386654481649371918574980417611847403411426956414177951116999078124554608574803606134266366508861965222555981341759150041426621007504689349630136076472120395992389514320022319135994760004820958261631071797026704517679328121727947517915363284589722440479686364724104607010642471735574142348803666281547793847612256804582463683541276348838089818794505205740778922286192916285919734361442023385804012287530463609746004611760071678046341515861051972328870508133546698826659654141166891259504188778882597691590382090536723686910673055358850509805562278413099841652642720089662209196107085872263435272573274442841086463196130996378069948049599332561387209276173122159349289703337792392041259957436073677673699016101172567004127262888984837010257110053570455592344489234277477912254579256515046411527049331829880209324820962767334204987901860276935217270335768382224481248699915071185323695972446552206031847488164542793800108346829906736749866438259858105513067345459900645437117268278573130651530191267921992441658739775056363341155737517630039970579164950739671078591113314538299565254314169310316847235457083979258815017944099939359047131837676096231567649417355607345022237118910505061581916234392368789250968383167393795051006814650917064111779324438375253026647433312282348357093788193661535992355078225655741143239595662105002075328086345492581728579641783748482877063929091858030199261486841397974979350138317116363425713978382266174012607725327135110855259055505596306153219794419719680855357110063552392876094883016116226867459553377090925770575230275953149132404788238645189350381189407082613630371876382776542784114589166631957017253616246910094330528439724235257613268875009105751947657125722200687294834754848754438849890105611044301747747974959818779277540885957007367659702917506175234369480687977067349869335327509185096687324049021688919383150566373572007150243205857445693671195406934990989304473364894713757108044898624293462579895102779724058960031038898901887688573007479750756344729255020956320124964398797815513792704670447853127004709714961607108806055304568002076925959114112509674044995514400923332219943600534828992267759418028936517187704067463833316400661091545933055503891428587547879965722789030272319522247769752048796637625659391909540922660730578288192788105998294797620610237271274719851913959185604644961893385334570453868893361089290243387639511636428419039066442544787414297943507135900112310203869802150355586716016833106510547556397492056578826208059002149941083383506687705015893754925133310660605767636133167687193807670257541867617121000438391150598003564569771598005494889158758613834090070192948871485128474131817178084534616418203962737815228927204380949820049749820555858265977357653028809638565112034196980793221889495503028777648507120731402635021860715388312310730622756074512912683424356444211386003815125322595439271061361088295861577159326915616441167112715684476700830597646808203099909518404961315764744470698477059064441443640972773677936130974330588093294637102698838731486805244236425858549174333338845778308474295623118849201884665247405033190755735684764847033582926448303145860173764455661399533697172765791064571894510687917791633848859090273045585401557308038975934153665860125597322379405067125907556314846098246030912452988674303456797761487946841173775570877605609571090582699461420354735594330949605778133759850361112439782037530790972312340280320552761770236914398665340333375932853836483586973852902518492661402259377247495878348092721798830017573805630932629518565502223513141296555265202371700818456724156095419673928104109608625181866586876427059527552323925635890878048938174351153307929664495519270724116802949720104448110963653421187569872298585743714730308967454898275043508429968596791767871507308476342637894866840474371152702382158345473380008244811697107021632878248559335987210234085115315075820537822919844926682872842093448181884382323155695203492241318174925310539753553967139358786762445871713682528967483163610261947052964715792813986551620634939250059073018835745241868583971947255562493892761336776830168241108020032472888152786075866482494453197769303532519482198672003591480203120215597237537459175380779824870270346587363788345961252680539125184112257007661580168538690258603470461429494857578436348167101918372446432051597863583993123385464748832266294790222779519254732673493045672847113925516636466639680030284141416112718449633630800523015992068921887098992669859802115250174922366288246675332856989630637035019902525498083425952852670555505237452613264499796050325794425047896758701004499642021848707047347678774213395614842497491376388992396982518982934810921440457006402188991979501860114383479585130336329070745842129960030460009057050376219639484214957324479143506061391313682931321995874948960717311645648900019507102299537829117292042638473619001065158513649768015834424096762486998307314824986638628419246458276817342402719726741633587316817622889748797546042715937685922572265423294572959701068860404696193969049585104741030134993047386016474645186005455100568197610935072275545504943757982036899364347013427551445426691781055764759376992540648487015261680725437480070589982528693345324408543599320617277969571302704237181491811327894504072985995611321569391715327393251961301259137355154900021956462228261350678924154107555081357789104029432435098253830968117412096946042622868077361914374375175303112074534506173170480160251857835159311954332091673034799050382586888073757106161648150214791680022896823410772307121105312680089177489913939822334771620025486519983979771403732771929736285641973855344873549807283762787252096758012070932398516522412678353854332705195785990992881619167852620391581009228512947582215096300256257440166916713989925529220262848930269418406369678769795737055772357237897701425596881899110061552037416283690482879200002127608817003794204490198184615143202794113690694343706211837236075236895043800280471474446134986885456240176252913895487565178765946632411250830875439370643975018387247815812131131156316093978935255475298542183934336381609026612988248664423545240748381867615515785305462530466169744672214848435111475257356417762422425950973593118918770278895406921511973004899945266499076558944102569149738146089741399886536098708558290368068030645601978750454212353460751808643686252358892244061144163511662443127693282686683355298697761403121739957325301308621311044192424547017843116972686272751436676334214474028386983053899550979913296851634374338076970377698249983152441713680197177895027247190403114513432816245168767624595180249318208140366366353967162061211744856989622372549241599399832198814711371046348153427110414958085576589347244093231359012863063949916421920440005072178763414083052514989448177673296778440603973003744702673644203998024831064817799467787349440542630959493436595108663875742012272695375742914414219695827552776185356493248231207684568182245500569254778114114112188416236952197830897807115559545925289226320651263574464249351135201410202813561480993549461033612928821333071996589009751980309805836274003988137725244794186076791049682190200269835429385139714273535252313320928740246804660922684978740478755666799099201454946617110056701376878661592154785079854599685003894274057212492204205029499858565681757407364772354455999614376821309351342926610059181859093877527573281593115473262782816408144703356967263647568033414714203845841307026171391356761322435056293198160898983071427695906015813133952800804357101904149303751284690403553295870185559257556175814423385331500902657760729299120457985496905122875008441393405256480090466314870871709162594136561042839212510530476607098076937476931879609981309571544971086547019775803802269053481401764274074106086015100856600793549261312475399437066151454893515567904380235690582945573052991617622463350880541049280771862654453326205962421827239278204325757536784739061038335994480405741843033708008359208454921530925158782550405466382533017972053782433662588895325570228233722160850997293683640458328448589469621404060195284588476237505649330056732526273079434231256919352740755102398803895114800878156507543128657012388896166077875814049073923001919816175412483103297630480142353380539862459198831563851890194023577384719813738955703210556222915880232497624456352797107615723651396216036133790644662420303232049728760691373887820647882912318602649730703215680789167793731822081328585836213842116972435087693131619362251513639626793366983260497178400683845719060241939196403859104984277791997036003505699496254705844920902888639032708659909682492530483529410736197906293272896714678807870652254453673432525604159656336968853005160881621753810640345451784700764363526563950199875982039541415205934533820266698196396790970697029004805611706863986342015275217041253310451993016035791516648906733969845683848356029449754894737194534803383678796514912777856303188965924730181910488177090322240839686780724394331847608852451280349500393586593131812614795887425914221281221293803300293624560225731920590838622571869492064655112057167144163220727106249018854719179522657507965335393191905435089838316880674119100179321845066165443968742366906589331978902291370373580013614749086286897738313623815890590684438232271205294801901469861612360510619622283222037549847317868428753719907065242658539622130315377752168827184985724339020922488429557502081818883683650971847532907684220666819248415394166844750409043694459224626894166366680894064211245136583234152958191264456082839395871364512439805941576786453457349941602935688301505861023581588267979859518141725995664094267660289902931811864194201017818660541013693380697501293945864280143542009634301582489820721945958936582352904827982940255050149934731058615609241043232329521907133331348348488796957693100574881642602851868634689050468124044699331111891512595333519044506248881191803303614225535088021562053712839665086865714522972627557739621225816944582042732577973124564630892690575160675707537760820273852026517293401377413548969805593794049029432368556135470986352720688288084476507718386371508637025749001259845423508249100551441404315063974281274662217354317426435173062534111440864296497417249074907441352211240539600093308269594676427964150764275223730636568792921800942145984582676190160698791537193014946694622503551789678682368916333549558315120246541310105341040839986875269094380189822068500344277349301835156399328379910775692744637915025231479037175030724884319595903267094398989081588228977040241402360777217371657959794582976729674989827309457991045010491917439239819934790465630872444850512017953793629838808220986400563839539243629794120913430966287987397385109950309868336859336768776275713574336457326241179091363775725246446572526938550727270960039300007639794982708896375583814398188816872875681257315362914514035087478873461750732905040504531883424446140565345135701197757461427723384175654483892828620280063730506525096042263109046873507430778484660251114165343131655673636553067831423731600681531643888541828007371816197632527649559178523018973140405431458160534051579681223388746903541233156484753389215717665979822069802987673949766924773893053748066348881840873568084047094224485464233125295102498935482076012296915864885923048670226213770524557150202968111044023139414026421093714322790248362839349889274182089653615899810372538117748159347699462775086317935325655928767597001792349419078917934001106316886751831372699681325464779198942936207637441907894830338140774983493086758438918716766432240229072692845148723808533755913615021945019711640385680426767131819041305686233054778543488886050305539293905441295515237210076917099113835360704516843414853585966247327454760477164387287727253720238844257470452674974102683738819479385900390009304135243179681217435996298239584629578357419814029296827269006022054267244564219784246620485279367167210467214262834460362766771613560673249621950507764273614681288869122787531398549357650850852026900766251784789571563941048728671073238570031249798115052463253250609932880275789233729135760953777352462999749983460384358238680045144452065011390412400388002931690108400263192645804578232497465019624146703024951942116858733212548788080163718337255345908604653438946021087338871555815056116057195357954501425460045527744791907584870545742964104856162480962919071498752064109746355030556955898749733095857698074444003265546444412072940151474152713821386497998138535711231608411632435828951508854439782974317776796569212653240852425156828357021948649064091528168237367241372495477499484327945474388537832915474265375106122878295800450196659850786882319540912715268988264053253989884688190688361214585998076740757070576816466945140902331921711145491023261646826229865422600995020009142480493376413475110364713105528131356322064394025532707941416535329174023379695237771400094867896277072737325698400201385602251889351199540887755254670411580386378203085709263508059306445158629760061215197580005412190324631689158174256897960285508569036868519808637682149083763312959228557214998885577133296714845277212188307058153751682988032034487703367899558211471629915280724810421429031105577032211715202961695493653888827837151302664984577295603592571455267309571842915518916142042436161738390509962111999086335054098635134835960484610794210812596940159707720721120054805115125421624512151761792203056915955738966921110641439974517131332215684155505576907780784015146358836504070194607552920375246304745275170336715269943119158439262842779708161631667908558839071064099513957317651269320891352291596100662896020201272819742001492717934559649697076425641046883076472192943501414189533997310719025916052753490710181815816096868238231227518206542959382483249774124609575348370268333855599764663214236464883644467895585781814675950160848388713423749789725309420817457695025289319408127121540469971724395804769284645415169469982782018468497111417307969243710477713545482259196300605121937943739975279801896132313958660051367936969519414815399351856989906035279114758016713138536898408555414580985270016763368122192367871563526224197863710583068929731426806450518769767073615716089056650822630674771833222522766073338286404074509097821360809194876857234077710475563370872436154088733379980492489705912754646006316603789536790682462039032400279309644033131123222699246679812862568131457579651882569699355081956770186793007594567987846617911708543271466800829493890513638652053716901758824842416304150892363368874861734109789142393968290318844035035566266819288449692472661912526542250890460461181587008298612470886509394895956720800128575939822837441021081794714112019995747866510694769720875535394879077587324700332495067167342900196708915021646319876841900979140539695077208364144248547944235661658360003741693348797076808494937101475003824019849921928961131997764356926087593877732373036639774163261220732584249974110573834001081299614977332298920226545786081683007861456231689388760529398135266541889254417301854229108888659338900153982917959183348050277597505853365162989206108776616351646523367685662242527698295762240719313722616130618396114408410900030633884794818971661641473679486322086505741237374645809317511860901242124641224237448574982121038672978190874950468411625543722865569897108305032855466512410451354992835512165923796792177485251373130406117766918772241874673364718478668095299180246645877239246845039040050308476428299872521466681329608844487611890125536707948367103057477530460489266714844124244066463115950404297036812089756912416436907790358575028991153197118636341538123387643839751151073901614657812388963890394204067707360077856050632239877383548792241982260796328454684055487702064905142976573196427896548202181327026233397117883107270846678256829275644429271802470650762110184348197984176319467956432606531515192455270336675903191099076717790152042100569041472311313433667137636681442911521209155560122495293030528934515255128519418809843242563191177632305612447225796433387994173365264336115061966034756617834055758093097125217229126616406370221376220576742519450197399301817694680238154004455665272491572311748776979435535894506378409209447355217394148637078223680591561650258946775253818694079693697685168379639027575422141689005485466260525985810025950080640228562261427790621869255340416006821960625349045779386995278110387538369889465532043778679277917514859907451501739400871401367165026474280230064288401986914732525634798071874771573489192978382509823912026210521816579768763133282171487388075979005794925352033889121861180183093276415082410235080748238113558447826347701620667678274301327901800035804359954706388197639326028456470419089802303219047754121068353757811061728966069715078700216024751022128416313627640796889549500767649947545729487278002299202594981865417154383975910712520927006417420138426610607300917936020652923574790024171811532753366609377208838536947985158572433250736326597932793349885287933965505694229284870813112860208478423607529933925400870971523214798594202740218871106939463341599671471943804914843083919574488709921866360001568131169578324553381141741585871226168082065038361002319744396191169460672549633280524729783918202916361804195012716057259958493712736685284659083182099235999020243962579824642122884406441719388430767993852299092012243555301156169597572360832894959989999348775834717509815137404385551679706397741911364636074840293977777126059737143416924057490599616345971487863484191597175572416288393782420573611668897611920891118359719107777858738094842578756812958539960808295902060980147415359893436864133861434556054902983231900164465707191916888585376372758020958279573453289404882246101515203453418658091724234477245268577403198896070247397531246639947214968166778301872338510592064287982353735924341437631618046195437848895987933121244928532612737410564672502647513495025491082913876178910872078365621272359606570865559885990472877419852238657822235638948609951256556706039568499856343502682908614840881892282776754227315113216741539613754783858558644006516694405992615662580578120658761089740756141154054966566931329083329509561533270964157712462783446648082710710482685115184631098010319985259769323688655552131543519052743420471872454012461754863295491719748745838165014628681507835927543197306269108763402697619003800804345148963342011935650226364406695213293877116163446805247575863130380010788738168508293858307680690486116250731602927889950758978388134926473199940556621470796855813868231894871001292018242002908484595967720799883327062871492767761614036570274182067130905266278072704182806223215958850093902115547864609371444775900440174554436532213885197384765695315881336784005491955077993048923426153599968656011738609010436951442962042419995945286681108932518095199392282401674706024724433000907231260462836597330695129329911767250232441694661594226940138697235410577729216169229621785634423687244639086581588693099067057858779268197813366505345192857465448905770756681079797675541766456041496189580538597094968202214909315480835522492189824557265658403981649021447093432339318997901216585892483253088016889950606253048859869510104303212611292883253386546874780221828051670925012259909688777464537469086544783976057797089178644120620830382037995507292127587517972346562542929784103163614853876361464572088459794507235086615894337424033794442613258012549043058285519002797799409918924180174590661644904848770318579673980385769124705998960274124729838738877209277613058547788737954130779312620738158817989831536721059783714162712516103894045571045742164256338995883035925807730446963750949468864840914700667152481942187175528322746701286602678071379595687308350739380086211630310578043578810186507233810712013023053853737227580948461065498819121857321648586385275875130872079180490679428778199217844395841101156523165280938032658059561832296567550925505504069749068339467084635313665804721083424050876102814851255407057799864353874961147545338050527575101096534255854694168462519601389492335166045182527205304735567973173134485572567807022817444932036937375355665491463994684606988061339177513529545633228300477063737244120127713840931229232234528238036833512562527651782635467753381738273540400228453142152553111755855080967689075811890806104653427004467166787916810460178183516630857572926892761392828489203355029087784223935577618224093998848466448126777889058543337420229550527948055667694710403795345701852948204469567713737646706847836397186671830050699950272633067341776625899138424383079469451802029210690080989290336847831930379464401402317285661124697218677934383453380160613897685434453553396024497181709197971152547602429798201865240227990031696813040721263959233421584107758507950377953080984517275111262180058108018616645538261956096957734809974610003021986476435645605738430565336573168058385882802783744138591486082693526909551443780908200063773065622473181551871078133385196211037130737820710553664952026295793342441233043474947382607351709396491167801171716777964523314740859805802232005539506989804083094823007234313313693224204704196365165726410994637336568519115638239307270280710807861924991513022040848451290877035816562479395835498724283725551324361455491290421470490273320203634534452077482749829687330342249771741117785706922443164868252705871536917792898058049214190272279783490548331571975222359001760619602584404909444868058849719986776685740965112419018890266017972802976420734986881992538428781305068352781359713884659792602255689739761692465821356577958714873051592806174560289671911741849270554673688653444195355694142713773805364935892130987384214043454950585341825107935190732560003665456199013292072790897499868102804223751149451231070338827685666599366225685621414839611857002385727712668231438090739151621608034738630935899146233178174250995878181215340605997068340118108149846465037368698215151893769411937206529210681931914026882410375047472481027851040153215311267789239759594628083161344045130390124192948338072269060738695039292092453104762037668380693905150123218333590617248046907112307345584316481757342076499388394431709045476344246743252022536597609382005039636324073005559530478523621794251685969571040290556375723758490005377661475388800975995196420538847035463354950265036278314820421226446475845133987529409266229868500540032733763087737121971544193258254057329530508715920136758208352256071403573772989125480704918343463007686842815046788204499477485794804956210962135447135079639778063795419815548360028705018028813760443378150099384886155898830156210045446743040553682595858403742134369138974947267970905943288250369913426754583153316210508115930623674075090093226897675058485945743370557290817196602331959068545837325022173785019224435712656542204660711846625026024417547901793372202870157834186015237453056858047955350055091709893170400506460568649276207572570203886955932868246121518009399516089837278980728370056064601310527259580690489384974753596457560115233252681285835433803034295569535482658712011940378163451405822468178649107305221529924928893599408119958927164655263328302980193238146756654480593527825614899082750288412388293738461671021280692092494944563414476004237465166888365359180190890482888783029945991049619800474290218008227999997939197584355444559884234869699113484672969746747095664109253852373327226409918398227351440702393175695268478257360311916410620362281833364486648102449613714058332643169647162181029763110157875032479952338628929461841408660632849668652896788905743960764459152855321988773119331941219897526141177160964312431075730727464723684490782368477245256056533038410588961524054757666579635215644884839341493665133137943463024690545469352027047629590926381671293621107306073549358411043896537221440655009237096540262089096247532494348606653717419456030779503181999792074651957516457125786313500565504822188549313237289657446544960317482167115973919725912146538231489243840880773546125245471593127450317497232848341231551501102342960721926257487688104007670190482015750542804543216672433209367184304739235491960954560385391051325568494254621111448517523448971236869527526134007019455982443074778813060129843958936667547774317705070713703526016414825680084351425025806399279881626806560887021920314916922970534750718711504128511477479143176703013456288784042085281708897828507162575255187036888223438257001253773026394917755281894442658781020111572935798208287507514116780924475867319360828233714040257854310628136318540261891275232250764802342689151205447400125797275067091058765279948324996796130361978492070397990975281208995628288965461104538759588642595673041520568604319207475962091334701485202666965125245036722676849536890660217861276189092111941409768772154090442609626081528613298814088969314500320186856610871714511592055735962634743540953782868423319825849372959798057860785048120181842964372847197498929976866965110061325156822771612024366872318319714303496335662790854085143487856778909243864710859764353431817403943016729681431979814685301991604046146684563313600218451823433949358425628350649284401080586159854186465015224719126720393255614031262946938663629178944331876939187782823907153874709478187487613216885699655395304894220370144225520309072261241388105592625456252856956800112123822627233737922545087384624150091853822735996646271077001662022941294345479741513492224893189673799721445271304118990846045034807224138487397034278316058407895052501793304159783311877453324282087965094027812160158659493958662032876430602215715203921131355267846580535874779197402630113908615869708634014149997020139848981948199319198303909547637827704984536272527684293652402394989868580963220342285752202587858056076472883106543291503915376518310664497169441840535289215379738400065454631029972820471891454993237695520027641892253460475253281953924772212035254371425106916233388933569844599493442298311927487539609136871217299361038201370973325552198400244005658377790279155566316682693105038719519589887953648976035763161323707019456606941046828149708826203723212458282403949262424729939404423892660563926181914065860154314147168283773331691335672433589886011482072192372698414986611001740522129851572440676837161514944390018129376774943390191946567691640898911155828366886103510372086688451978505111871613210598646200258226274399485117935468767644655974568195889674835375625869842075615457368959066455755182038674368482074950380575840716145434559532301609187330615994673150776143899482114307811729694539274352601582074780828886280105383437735972698816878107655943729719899264376281145511329267667692270797810040794389058746206508400805844113243015201383845955290915169485806234092806170648553550731779824512340798792319982657807661258066547027851601530031347111486702219330915837267062200181149130269264243061826296755775229474236029406909334240887381743901745140780638769803305034665174471789774041346352909167569030350663343622633246075978178161453191817700976583520415301035047448776865834634449154234818684348293687435006723426508394824649694728030626394808183380857990749122301178929008202329217781578536766917226413748656241641354851368926171739772123563569844341013676670060274190498872679024944093005365556336770045743669351061272570625939809902945281153826362070920216103408912517046778287223786863834823448649533997109239972134812554381111217181811977490077298168655641269115678634593295434938472571390651397084037467962996096764063069915974858945391218115699547144979110081248182760112910371023203464507880296518609567382819248549484801643794475447155305535979754307660653519830305407307864857433756802701958946601521061846825905452936271369546336617425060230722750665912530079992569448593670614254950091778137959328450371737323733198245671663013548154728640092327291580816025952312656459712622533774915749793416267313383190208104734747845974141358372963684121137703708699702837486973972358318786539840795034988918398059686181249802041595532297149907696735255485693874549558165601659046206951353431081930634455523190794077452816421822911562414583322874510032390667391302492616856024823791919345428086576408167726721079295253800980935724214590378661950779309837734846113443822421043210930751219888240521504815767358395623919961364251805705178952113569176444569687949377806003132491479025694830133910864335684804841533569057736092583123385894334143721040060513995077395911721915015010571096827003135427131898738567586337828868120432684449872068404386005739099417110129927768493067263999118020852695986357326431373139567404193004710669612203788888417921436681504117057512744806017085227203717662961002198912371793968089359417404623510405753425323236142950051486444057713383944687339107274462752545719022809807349299465586876933616234087843134031320148585647863649392947224187262875022804198506319089031897425783955224255072801450969697708373398092040600326168263609183693901725115586729199348801685125918317355270026763943069139876419546319448315074276001932926261085073472348899068544639842613567374817863445222067129707245782892081527732717544032785843761569612745459427187348059995538288244853372985860947687295982413595355625537929039137510940739314850606635743961930688866992300028038332183705648603021066593961861948854466366649465742448191493255201790640882031004424182565198492230583266668206608116536437552867790640580134900260100023280223317053898640259188310494653003565128955793309792874483186302693847689515508788305360041275974043130139514946903399011456751741476441862747383135957376166151925493229772750144834680250315420484293156883732578553789515267674688231019021226971627868857123709116344908818844066107203785663233825681430302441765714861230819532465211740772743470627035608240181321308824998380438634328095177406345935479255380511621076475985750092285011678091170815495709086096864461336156743453020691815266889540577215433070516583677484263058343571267455402948751106094801484559144782401195462494684979140857305778810470517827695417188454793986275665949522880495931762803674185576670024713613250867051827015108108385813648822439620163749075651147876251931630693354090128265368978639920369990781126416679550227611770650021870590607915366139948399495675732174661804332055944113221421821452498717742196885655108526304760487408849000342146404818926008898048900278693690095972454192781585615647145019387623320807537711063079758007614213015769545765566836720523552531265833071782925286195933319623465824925446987160878396347962392163603074066863730188376413761801504510932569230034793571261197296492067343639873736549750796461145615479740525883495693445464841050017268872110238896415549721490405790088409896777231632685953918994902720782516662568416137430805438644264468706674386784607074354098451792253695660457614635602210651153363737806020934114701139147221881224341277166725112741777661769198072314520249975616441963895282099403035557548485838982678673998453961414163098969840805106071978567997517285670845973961419227181370671818415945554544956311412031283556671916121087057175384291491600962470579930203504693910279498604066520672230885844091230658100966863609316540910795827527541793641693812735263141794702061103647093161021195329845827865190894196675381927422945470686823004081125891420179072011013707423679788303662239438714098101183914750644704606084438412157643243744484138226247117993393211043260315533601489891924425022695732654282729177702062671993853468440935146817703463142534360939888771448344390578329892703382352858935560872954827966923221776510833509717182907994718525652029914578468047927398126620019436932944684990540195668607530053575838409085470845272419973854439405394282483477107273111852236612448520890547574047173301848947631389158465202145444146789255839736371171977343289580856167155845078385997159563759895693601261601974888336794977426950428746512388605656765088000014865084602965887267453420860129452495009201915057550420503909650154568987861079817157544550900487041181966333027111907532322414439068464643097391233099307388768699193856737584530443299265061689626193517581943377974674671331814715915880082123039858965249924700551872572790700862738766608200946543910485535308234191683364568063153079180609143491322977504899910360073095982479701174855130219896593687858506575004597655064778150639413298625049969718154275026519767897504909138292532237315975500400540289548017497852624537259172957141693020553019974861694410955756062929405719240086669000887468828138108346591497658748831482880365407580094229986747187671649020186401654656396035314336123664974976354912703564995532693880918384741726536387778665237110765356945964438036951002589845303715662649364759168487211362571032210101356841934670811315154058729816389438802837825641815889922095728768429459098165266963257148126315283648998153673781317299249760269201977077943433160853648311480057726462261373024237930378845379249638291148106238095546521703854176256644028514465680655737546067154486369359685465183532973336463941015654977118278214138142692358684420657815972691832635742394517048851895890323508717816405966939810901499575024873273844085562271124940867084113089106393156512985445424581203455167191155613387419209499117666493353591899711437290299365221002404119211021344267564294841468447302185757357429877488358042581653543088235850511150419377287323073161606069914759699553240323761135410146440858995745939706671268281599519489375364639056941770242858912575128989966239931258788046425704095025349174737560015042866778589590408982479369467770249699333760367913355789149021276715806898623580274482334119346975356123124372008427114926034765908378363382814784498223605651541476466997533805933552542476447123274563773171142669554218782787142653608365299728870831166024166803744611129340530197647744853454910920427793748509859912196056996137402282975161374555148523365297232355542322915770235435354477031674560008969382589900801163242301499087713112539887672806657446981714475672444250114357942404167261463537883958450123026661146194143525425333519590327511065200547249909911747144034321620697912233601449915653723155832077451840825252679727429129777661906439432378451609507786962024782726524230518806873485035784576574972787366675456735447416117683614421425149965141548270387343559336898632772956277331048567202371193998158881453465815137599135707765888397989349322431452165591145893695903111165355355397304180055347507440981734743607804726957055595311488448689106662424030181233095040286040766745916375472795883540456456793721001222945750285964060971144069777508092848663841069382852748002670283153176187640458225691873216940805084201401918614967986195694937899549964397013640902778641449407604891610677924102536747379281121333021842359345696068366260927126553786894797736720294989282090278313741828859123919453706074400920930018945992102857837998551529724366262657788738678821331079548017362623662391998497526878716366358401042282361434460194682702797186381905894720697234171368190516252401638511025407697097207931646045599104600754340508869260878633146473498324795162956223931031633010322231468394990046919414344714968834626276732336173134357907167616991992830443854740527336149152994621791900046670391475066593606118421910464505501259090986217753644367500556895869317504054586874520429032472951665806131216070407562312157581527055568787723049840636660667212336361729655623735963984368956899520539225093926196693225156743347608472170824280764329493396378306531700363464252266426123879619229219628356506401060166456129679003591318869250334140386560079530695882041498518334917620639280261563067479309537107862509972153716721479228632546175536410181797993580748282182205065538928770796516160614982300598597863501140652772301173558583417970277291079149816124511244504057835012511513544979386088536165157300792528122150925131528915026456567308377082060734272007332124246868283701167745157458820640730784406375464160455551044228925195490849517082239424296860065445676107043200276281210810824913061577436192727510467362113901835690648498438522418027365620141015456766390067156160002933378362398815771991860537755310586055760631811253617461733926720481112200744368737829826437699883795837589979813492693654561944263862412376446617258525506466671282699232638273986153961931962151279988590030918626395289193041156502121552959014814802369080904735431941602744826809627046665076868185245218219494270432892215986739820502921431877749293032039759271807092644249061565529855350551348203099236949887790451513901012178433786112838145801069608129663900136095094238502165315440596524925039097320075780973689093198575814207891429160909540460513311516897014131500371440060352066641274638611549315493125312961179911613842438951154487515652805109519038814750070308332958617709055900034039347568766217780142544134560190712367935968250337662006230374787020187103321663297303870895304896656537365295264427349338782072094523422981774233720787536172511669054005371745061977169129239414612116237790431688985554988562448389705721345503065213305153932120041589930249234899058006188966222327715544061207874130659016988316910558358748175694310349465483525865251126261484530398406474104679160000213238862820108206890393029697870369401623040942574416889917104509815847844663111565168139137201999243461238728058078645907259993724741032979283458036156930834346709280620216318670023224884341633925091616679983900265671119095034174128925976076095039074491206232420394809472206207011715374928454925561826746297787406854741900860053363703338672207152202572315875475833086658547824193713115336448047077484766635136473425397685737788698955387930272981443712912691255531968637461674068553425205518153789845116780514703463343252477577441043163198106910336922992454204765682737668823707597405399259634105227291017403211117133481709567953803892752479136500491111117850512536983576619256992194264071097059856092679675910086215277365009017555778535836507012512761973964346686024394807611175603835993770512698034818532207015841351967791134192242459347626630028472805948068461798462427931989882042289620785589562869372163095541718665195618564098152171685598543933498952954843086924650142997617350423414523843096032368685260286605586136188161016336807943522516281872110549555145970229240401456712940518374038872830027804961371421355995105010425361075619493722136173025627377700000794269899683848641494797022340360216886167131788588852489483030105082724378729327822091626074042010421695533965791429274921825465036074888800722404144534859171080241358518418435016018027499700570749027624356408053713411683732647244619350221606814927115371982213504071996803211832026325291771830813636025789868320015788893357943604415556675836368677294753171470069557372788767622699390617420328721130841079395210282272884891331780423517174443317382737068819539437796889846924931181738332796118927445745771013656102015187018017602280045734350128709388023769252473156397009223212764697389225649269002403647574233397366619761788455423668036715481369254287682902050650627851139103997516894510413103872126387120994658790690768710904490862887568431187357338553078960471200406489442148514861916345784135244022166177929542341830011739799088518404961506990495967971887823233498422945397126428518578851646505968834256586102465126930339104346811957225995217774492893293703871186592719082114452217459084190629793420962237071765938521712233462678166873866812591998609297210168928011990890740242956701366844214569803420341272734550182608058547843502471487472006355330081357975901854928453874848795850864532603633664033955184077606133196652725359433689426788485679630494574549517972024503740792862009915127128809023935110201923764538612604247567744247775291025137624888702785114281400833733168851679138234837167539888866782509665632160519352745881227070120105080091635879626435739101376869207875867983922671004791075246643542139796981688259203313904676370667480986292274243552611542432840139300328122838709750160360376237185878130016969684973829277687774402506412459113390453521205543742844459061087621110908904973454276018541530910193419876126429099140645843018776440052888356610836278248759537929798704194459357501840765766995660961822069355289150013346469512370105093388565311810326564365988854533971872636592419251261387011247396221820546339746934081211771957220125072757519824753448353756401485563357608048368338713725008051126036947164582252981703251554577725822786795613511113516687393984111083596767522519238756898754904947319885726828159773109620200254381125579470586011950083815224595527342916481149819232468945316132100079339229629663739125733658030779281289769759778484425763405718936795119849512107104249950882176272961723065423231187487167727103421834123660515021413887145271777966964970113164884550064111323823398985301118959761241588598743342908894049361589526248818978424753294423943023699146599045653857866829517256318966200028997265357187721460972022430390082711685103693548844631406036145622459505690585879910082097233251510373160844762523286242530155454666172327519207011296347158129505689632019268650516306390015807885398120035117067241895032849358530817688541048646180910152295902219636253362468672281486429386516925877879206686200569068817186710031326378484208183696432181881546188222703652493316242223208820829723699294714604417678326095885072634795267375735334625295218295900970144424307903514231148643673824099792099360896066643132285876591947359340184453655826299551837919917675021211149051174142394428405010020624970252702088622204773840209217248179246912436050035817801937244887861589198145027870849801684250323187628749105444080199616390375353330732176504963501059068094055088272104618718712878160945463936163757397309403486712654120646890334122271830229529098595075974625513069841158868023301095588374962918478291866017254418400302168614024255566639968636548721853546121421981893604416839548377599943747962850619567456786654308336957365080434072657488147264189874370354520512248313433924332279090069489183857586579073889023440979052662891788999500275308674960170025012702688058874991591963303157752450703843128899521413284606582017479061573559598267927635386550959599757760234548091560649217708431471125975965946436756191443684537068681103912722327457115174275535023404758278911521232602622453992238074337362510478308789341674050539785450122458847910243925897208049555145256888866258311484427323321171578981984217716208359625903052166669255564593891954517229778034050253144291528664408262892124288372355641386841296148043546486148210832933339655587321957536488737830569031854823709979914768000092719850973454201795144204563225754908042111463637992011433945742379568490107162146086433728507012967946369941321561931110985904599730843303399601115403082357396101866518501371635884342656497462383997151832963073673151723026269474545568235984809388394884089693041443057266981022542045085682652177207401142362593587664103599973660220867924022594045635485827708052978264579283030370763833898364884639952387274471250787991111619579926160747700278139286752550434564590701780522778177381188017824269306799615941253261146428349056628815811038778440140302075891525039017979204641528231120106690890817881427740672830466488701891281539151411575615418822804551488453750120572971810559111988369090297265027018251598473241885948381773811949050157568451125594826652738999934995938595899675719589772162027265209660037031339576459725531464656415713758619383747278816490012115088656902830711489871171860593466943214051743012231168428833290225272984310897575840029489924949155914468616924045134090385664604168951077341040844079032091423989561739196439209117824881187904391340421650095225436014615810500036981436056201891568416514424765814866541550694490197498051762206390196073544162057891826370692964391855401282826613063274656659368792737929397900017951281108715270262783564931653214549864991207524165472270973027323840655645686085176656553430536948424039001759837831911766703561749009184095655065719199922331831026620226861202244294487316003763068140791026291353752772683631397170941644027342826736060787735591299904684100271081247520556012982799336063001811062737941453599871180294406238624556808308140296495238815640084792238392219313368054594671107410038706253947091906200146334746529701471682810657482440751541629731971813240602653275622437880403031365527577089006615004173492916901936560579242423019780478356466204561046920334872655020929552653234982091216172193682322255980563734979708497459558177405405337050204051976584944866450161298506861183910571150102780212698828755839713858995755757496030357526821504159572167459389558213717065727413567063466964146627014478304338374550744018773613483640235040293943671453652452067782609371222178012181272195579849968365043006619242492941759941851936586662367841876131896312554101190621282681118682177958726593583034962098720174345328146809991996240707989484189233228352535318658436119184718509538262388254014011979543891681612909253217584382096120626987520950534015885347368443302666259182576573816941971822090355095803109713742279472144009049480017131923879229591440207926783768391377446726871268463130376263495408302743012613528326346804031110469275641561110166901378513486239302876890681043662640695328285879550477869002996564528624529010429974153709098601458045960385491010890272154550865508405734468282342766446840232040950733644342861115482742756846425210328381397609039705841842230459466692934003855064619941782654602174876364280380380713738453811523605182266362267951194790973148964407786456291133351848430846659489158889028311507490257986520510219873667789935083977457004273443380414097366013592245273115466088658215923432456414847502804485197127846322706096943632100861467075545760274149551961921975964015147206401129528913362039775072185300128394220761598756793641752806829179599486851223346893089703243210133921912219991235984281879247506962039807556560803354504822405843950868092687662443464057426958410884963321338669477447306285367311671031674631896884743007986342660964880008508893728467214384036293005735271240455721685953659955224848170647800243847048811682701475310464691377381357938319237150847754088129898669488622147940869427238847997831872960653065002177736243400087767164200244851291501764648064679871364173851554452872844676753810681203762515127754076028381239397550249979867627178700163917524527072269244259805286131025686412261996454820089990882569543170412873369423746639722692747749052635232806434645399975683494464823293954864727547249461578397340827523847368880498333453860676341287653986317198937364264451295523726795160144344509054033226641206067532890540239414644667603776861915643479529185436548427049040428816701557691650519621830259096116781729205636737568611051388198334781685901141929250471800625596993485244438035923188411745797481517310703883364681399172899533694702518451501736010700335366872954516305520428091769895545436435663172474993206149117715226113564250454542568469017234151161905741608968118154925550645923471496712634428191603699967004207296243901140531744493605893587194107197376379009577674661908249559598634578212392065014606394061470856080192911216760523313025566858486473125301553687198652247577693208176938561906249762443004832916459953808565393337276435186722535608416820032805990673260076399636431201883963000361512732490015843974747424717495804573906801265359591558506656368802039637979812302342042765331177359607470284186406753688691235057681403479530873711494931832480816310846104724089132257726353590050537968014197002278750917884586856621901596076732266272158741201442557807784656618203376859654254022593564741092453697315179758234452075332939275418526636877663483558265207594353980379315882222476532653979615455548879576345772002685718867822678807007086220163727488432689657638194489466407561584568042760918412201987267855734327482635377404734830420020222673803235813733251491153788332459075957516662003127270246001965043469082743874471577625323600093829570766754222332317109124136800820704960493541326189594006070819245571841483347544264749797844473843574331511491908860971270422700071668727724113581098905832543526938126851945768214760610612679274152532456848300285603249630767528541056287744622170907437391781761979768680661056738003491544444657860484919201650023878453551425626818472903509380149818150193672308435145701041556162470650120548264641870112066787067587156135263605911867800125440305481211075284223021543330688037220061728170977093017131912403397519333622302166708255267468390433057872969004636840748759952084183258600900025452210318190102884999005534920421253622260582632923175611227261142631581371466364531810396521793631112993643458655898668388771965837359277359023762538383793880297261961905091911242456763479391819433774507077988000029754821262299478502019411670566051896052308881438298565937443289191182303545749912451776878583250529449421021913398664424130863846582290787054229063985823497467177969843177226762918068522023008198373316109871063017343802588954336027238175284135531379130310928152631201981920788665225025307991054980244798584239679573070369612403948785844183121184776829027670753470572595695010241699742525032668657107647651374384047519408630178479957983182371417113658017527988567375297438201207632628687861305836302485341781563374261348103948130280419825971007826202660604280544886966323335707656079351528817825957465682781260107534026996828263670035807118642896124370858093726479819182106952732912025627892856196230345226698407453198698269752834716976222474905789175436129278818689864688599451793888298445503485266449975893384512965855305718215217865889114765818351587133838388490402369187977488154031299220963854088355923163801628699636134944963909571324632104427858394267654099140139934937151061492893654233878605848417686797252249217044706015102528859914567396651472258844063703524922865720912530031515198147273577916368285652053347314840455029527937277878182588231965316650376728451334518687141001015128507528372648667526233048847339108856136821933578510380828570949039207682903743940296751705847019830831323532869031973501500346657704738121233442306456784055082637522602798479245612728687327368409489986988179019581034913210610828034667302114036857662626265051128688376787193991955021299863569563485625098560904141798995752443810748688949507222132938121569403920120569025189279684252959638804904062147733169268836291472650995265252392262359506428924228049269184673933955585581681920070934017307927798831517826251554328960625132551757114232424931981411088749247048940666599529770866549322601100653930170942058260951858704047310635557928849100033481819415245558688787961266085042618604705320499825242217418039573909733726646497918069198537802575605030355618238485864635098293118701906923139537669440352043118742086180890556663317263728008265358736129680314770702842536556659520152660307126744619512460849888137733190754313110974704604202695276972361883408061565254351081014604969192931991810457458306216907216920131219499827091603395169598260140592262480589001433844846742498277704450713483666597405158589741577651817840221134258908859544783415911425761001114808305500852010559545212129893209109251573468134096558197795174376418992001876995298588157838630901010383538195283940907394455474777927708945946805068713415167896414858877427435687974835460814937967999905305016682937206774992285965304838369445694276924870201177310785642941301649914144245018822152733110588865091886197933190356334665897350187046044802794809174623069335316211070853063363667340595540393823511247199666044708062670045513144202581215506239759030395935012281232520451474458774993404489909631573480892567431040155947125446891572986238862868764444621753702308410143977791149168598176851013597422808885711300804336402788695789587877213329328646819933819644131071078146358685231526854605892091623906523206276479126737784576618813228144553104683653836647774948060601290896757619649069077768866737541751317972190998727384805685221502069006775743467686269298579400366135083745008539324626524502456986347905626279992521444768498166206394568016682780394129261497934721978134466215507735491585152394466555629439306250382295032107380963970486369376964586136945082310583755842548707120433962596412508969759297732398968103616139014129634348345850453521212374394679930307174462519652510924547205323222590295679428634650863428834444163029831827012786691758435587500554400289953532182173975132278415815845366984672345699902568719810264719497324489407439790759277026126934152128184010510748176560982788350338531797621261758561426106468857971345929993812183749970819473087998138204887715467757263945760044815366763830859331502436496802898584551291658286556431343455466292763907714638896643982381856931479796857391293699479499037876842516101471580426207705517258996822960914173644865853896368393501265447368214985344744807997352371621425259133604166811470743581323329047451083924449279987960136988639601921519702886380974895298053299273631478145394954894766714736524124556549405323201269316985578432726708612847581298613944108303466066957430670279082401763434576859163001746476312158042722216814245573648375217344076933785732173605532021684987819557968787134615248529556704695201728288079246393376093433674055223826884447545457690593057995424362528826530180606820521773000135893303514554891946849615164356537391494742318107786847468633799114117259175311376662679546067189364311161441427535919809786968384619501556151407851918584165865218795709111770184422434273822560099171698690173711560936137910550924350202703671021227059422475890038601067023094126330240738549661176309926907554904482095779240437196059493876414618103316795221155756497685522326637352526283600425417990060453584284858874085888769303364226108669835843529438112160062425385622936477143206085683315722170639775073214861946989838676830941897233803700177477735950190106272577765833264919738791529896054400431365301922569812238050515064958388979118278578612970375029023850428207412701387668142205913070021527945810064006668544381566459649325767929744673432822287084601299079760951991943710778329691545494670643251319999517259443073807354374599211229757629306527704731502728809591929719686894459414558295167972486281066047246554821486968587636365655663070218215071346545320590400120215278280120176466707770270703079440413293358741083524064641006899936529211687329842480459760922622296319029772592554889803363259116791014696286925280668913379392556027881721162461841570741018654600854490953334923137135798080729381962254909215677272090947886836365754179730915087950246553263367333784805937110966997077939292703011425192151031917847282487912086002540598846608223938589169245828794489213237310888481920395001966142289382558667165397437523197238821430201017156672486921289739268502536132099121827614001813639763673620358194400361077267066549767465179756512010991322201413871045993448334613703706674407270412623464595100005144501971166513545112198737670836794641663459615714430939154611389347114770965266258759705825568636049204123612559779226140443670400970654765128534598257917094945787072200365793892880585733289698904832715505205270893256427482741603589169496147886108725058664650622577772111658885184334221873469147000867871135329460246330313065022425805206630827503086941684679562266977913317490922379419884846008743271987826280654179729449767539057479208509465738547408939304913422842472122018877556892927698583511084526648786810703461686893563417456297024152072305607920864539096724500204020471441773282589874952840047800520348272551425677496092711284672583199041308159440950346168088466341963600014090485206738630297543281553376519502764821420131549031131343153946014295488628792031607081078778888273635255323236331301195401019624418130647206512737022724060181846057515223178175986268089959603796549296617870349062287441859380060312740967961405751820651216996388330204052931276643092077183714372041148023630716485073272988678378944748485379479793031843474968931897830039803668067849956924517417270406425260027623684041791304994998141875298517837362485111956178899244637778606590329252307166764825545019723197015663497771295565944366415810998839783057260320047370613826340935403669155979490687757560583389861208845725350168909762339861287582878343742186564455718534759584917866567175771665545424456532681322854743611491949147064074635838963690064050376804201598168729179221817785981759912189119578492620569742835931750610586748557365710531658212750845466766225988405091370229740925784619412759491640669803457952334916198631187245179163987206346179050274947029793631043197016918122013132258624248347710803808858229573018325857213288824533278816804889498308605709324096585584861684605059464477278215719118762979138833913015336287301797220656671567615684788913669081271580777754479783926733963349652715156379796855955979492369417753046662764557497373354874435152184837474699605485126820744132054140475062099805517272474120426038118869223448547767466384787119607396967755588346759608188656936543188396209746862543966721595425648398917136416136909048553194896659555690223587649785741170844573518908065006545680525684637378918099259350682931346479527665664882583004512000614776601676786751088740998156509499695460233125665513595820671824914202146080156795350155022330008791830084186028670704890690107982339716204669748879067701772388760471960108161436539518172487756922130090151043833077464253633888127671533535106707529093221881351167726621006583808818796287277959757298048706770431008092952863922805982766421650794177856440931703287642914560691368321748158883750254951453090670392640566812865297533344217651994450057094359135694128915902335044204636471606184291594456630724613840502992274080606281809554029970126694319183381384549645273915440923179274657065110563270483585783509277871265147967537292714159155946477993710522280586901595136862894739257086634317589313472785271593010897156549174902009716599848017652700943174006873739706192681767055292238965667355552740631665110739720900744969222802335923409652945317824202721945018338216564919479694834634899480521505438984727804253940054340354599711210241425083035138364731248099632316513474661804512931176049074236836971953495225058280190557713295595176112614190187616064637142703047817600559009519878163149330378090062726760999094368358674024320396811687841362425145170116028513764065274408388961698883639168997587941728621365616562799513754879475610470312528660677288281017601079162674453480252188841839471556789997862440390523805818604270363716178286584616625835162403476594802745246244294681959309459392561034783197749180876368615796989335478131918073276621200152059011389779592709868505128811218511319509654589611387752786140328230061544149277093864426641895400356005949107473149671751439280226306038386872170161154444928975860032253910228126996936079585474932788228000260500559631294417210268213922323274158342598808049565470253448361767762206760413537638105364578751771450173611391058525614786878417357034144876304083830740550752663379030416960211904879240748664352897602069616284162359091118261769230724649604458595638105916105925954491413699505776142591670563793327033075555590044296588864178123087375136464861283843963458394765271360387545785787778057812226655969354512432764629885037646198088613457205297450818818605731040982846924399644795255697532526123246689179795968418131928481364597457270893499835108561730441124554769415548986679814667017966151805719363477882256450067585623188906682100650154104956944486314482411597762224461208444552146191856178209020964092964086244608855685558638268717724781044498981517117905126635406431973879814619114892364636101733480033323246048664646747551508563162726955931324094130242865055843084586471927351788526848475198567579086304714281787865505722665713303728543685455619838195983803868833276822515943105365720774791488492215939699535858786021317717521216508260924718927569552039155937506770733709554543092122710129603936110574754458135490188220749146383431581277372939809065302454391557502604777625468867940080638927832979397171486659593081853791880639915467790497368163044867022750659747533557913442613780368924035244619440622315435501867697539905008766097534527940094982426959608633226469700316972387676895366002440003675838435162148473584928232731661977777275339217661835686043380196187087187039829429652979544717650479423731149874655505868376039158962083376093756558210849308405844526719556832901936823458630466647841943294831927044191145087759514268059232652564587433183502534789875862248873571318473087774236472983388752468695512601049484541771791990211879071254251927856415052597675970585409634235861077271883342305102520856225270401596415863379821034598056612441975299358859839265598903874554473783787618866331572866512067414927088440070344720589286340420241466061730510670103568926270811828415074762722259820810107024411500778552584618871736234597932070104817476397713798728800562999103744214948108245850359587353401113379400536336463106419341771342492206622595004927006715199045726569300224056639083177297207573141361253869649476105657266545268183489960235008111060635831211818741041264964922414066936489643818319259660921727088380475128245372773770633683882327982312132510789327336858011742667298003126708773968189111879751731714340453918951711712841977439944192024681896342142949981448530299772162041620766968567719062616393567251813328074699641693019096347291305140798162626292206951088734992378998059116620912081392047078909207948458069564493282065575067671665585033471212090565032575786444449237234622043735883270195262529208949574229320032221468001168508680345761877321955674367984745180765405445739645478554269518805199256921408153929382399390845931110248924686339903188488798230229851142207843501671688034689328906902386120089220668544691120098538900368539545803696499411564121364124038253310438172881930520035832037146398679462508840677460294795401612958960037471688512316011848361269308786536511361312374607029388031748321647083026173274327951628439579690738447319167374886008482615748279169421981912422734086520943507306098799209747342338679221031252964708217248326143401469965793132603436890853276484919643959764934456903716001223723855555924680876284410059447596639722630377769509551003893198667069948456776287996799810805654276734562974126404861082619190677712722585091132348107380298776338662446968073775551870359448872635887446207590760609943508015274791109452685033230384969637829627062044084853891591737922089133467893399002921990304205883708898593074009086194766431947941620754980358572639192680367881602345101961386349780785217649064045245146753539292686478721731414109112663253834775722534071731214849986847625817397540744818319536276834970876433090558052651244190121941020725121103722430263406040524811719279173046496771385077311251808936647739924004711918858696396382392081575281464838803318399651743920702771739095940032599349265972637171548389023593097410135017192245861635856499792278546586717943887512539583613622181845178069142243380191185817337398604502533866948523191611100658867192110324444056354432686758929047620517862570726076262717254754698812996925545371872129135290891320240147125312664752146979471319917410220802501175861130838130476683403945351078780672661965090601292687848690266440095030507287460782948358485617990485113410002768008577190141558785485720764041005793072402583275092377630958160661329148767781377235247473117265309118867041783994500490885349837348233108588538864003138883202030535919874478118077856457063582046702725660736911746496850875362627380560185649582385492819594696406504419854477347033311449940240624223309336844477117498540203775711492932433362857643826660229583056559480828211557685365662936162861123312193101606144655488334581297467642216541866571440697206438023747626230514264297550623500724318856955449704753801184771303655743160090286056032742363011503303806367015870249943225320790709735544656354752191946702813229562759385653690847321341370417794166188579999720425561706764218345531980590016085116919094594344418272245018199575350159381233899096754038669479290642689714604943408173805421675796884919981181100762343048451713257038595548544892865837794480904660656715060789698833929676536740143182019914575988592263655286188598326344153676906639222888889660142886020027786695523939317748742796638103059033349965151761228652006331595954694563508577669584277751999620031877175758875470491015248868103215945396268703548191791353817104531078490924804597092039103997126428157396303437917991258044236393429606786052594567235606569104794341720080538844104592664380769537979405540052841314950694452506470349973433818201423406517164351771659521361317135251101128475602680178187581590489685654853214012944491023454355887691836187501885423182759754970835039914701049555936996986145544540284215856547209217147226337720763202372773594642073760761675144637229179141723760294672894226530649958281560149644883485973623273375312886167372916173907289182527202427702267569931572698053368947478771485056930471816864489643564268591138674748341529004649059390203863499240591809475068758515794296258744787864192025801387911586173808458313146015039596629379136773263234909244905570951226497250948756541781446880903443382380374875504588023787803909449180729589990855468717914564287037531965250499453388549532536561258325948482560239150975733746956120634909243136244796654367361010134734902335375694593666371231135182915179926763957631865257583140434268462275194940780657295829559685431438325784617128677689791682973553891663775403292848137825593275993314660494824446305717738608738823367922251105945654530026337903940234914228657205766792182625353796038776578522152649338177430805219384016612198915117233268060733198826017852203443399639183977460787809273512867860261547549042231131289445792046566972466904252115915958881650328186549216932343250723608236425166911957560672254328234854103330470647711062641322176924608800030931070137388456493660408062071003412222097934137053798838655410634295748453081933502783763979255344322590923855570872268873696178510339272506558078853514766317336988462514504338022869214099803567567098278629420425237744305391592302955494158092416903355603021692231090149524862853279681096650320697283183063601366474031432425019396334455200655980833525271681464449602886150665870549634068041110761303319063446117023761094979929949520892497765370004533665901274876500904729894089928487366257223947977510595596547074044086217720036103515888093005039930335258276388069504525511953192796676088395518551542103138316994916252020721585469430484093555255667846810043594083713750939381284747187341508749821979025237289578602883058907616175643939542720695272575237833973001818575103120545007196533619228627784731726340576052348469934942891380966090894926895533450449101254935074534531285510620588081464041639575398976490509502109226029536198781325480508276998685393713538968923250214990082724671317762929076655712273245432544983746832772995121415134713045453405101051724360670548325786212978197197763451544668766073916853336305414327110987863557147632168976580089074578530807181013538000482314961046258131806395879687113853964352171227533792889350551320947563614058894357004350566100880943721048743370772608055317193387687495914066834235067002609278958897748993184439717509275287407600203417621527200695145798235682393326235415088879021984768676770358939035788050516208271248466433831691572680670603891082403462920448744763590657144217189637459533093941494686186039853417879332551649550313427450626591823745798164717223888712658271334212659928829082318676416410349989491203731140707220572595681852953989820545783164930042341024670450989228940323358095277645518002719409626445068581619722374819294812797355005885132764231635289672236748370939879141860710865305701791580380079700107060780439760992073713861711707549790920748760329904476488479604224885279140825321194059752070034788335342398502655571334687755108539747590660258132978774534264262128549868019531634037943853524929661804026124431982543041304376281158590399782607656452199073224987736467558757067893548323257148419173678789064926467908411873073045835138318014890142687870483390313917253846768871412456888335470616154260302186987480548038358357588052290232634312398997137317311754600833362791551663285568137918039165606632408143184515351420022077331569639984931142884938463443895471172514118486560582042996308713564644672505687485405911256675347727908618328836598767755656746477267036895214672354526356450056942591972037277095221475666888325626954029460262942653091452517625853570724574315039061444957015321973288433824443560921622736289466704943992983180935519549171579266837128754275765222790633397729488779013854101186073048997830344097550101652921801028775949193066932132046181786490942589944949506158534365513416857112834303550213404449143825471922844643667570133474730412913869611290047465030791614186195818662398443589373635540819771189348575204228156138045767842300198817252770034270100918368145650667038249315942805909162519891343869585773671052208355391499583467721944014962416860198592688720460374464390288236711249150101776953832263274562194982781308626960683575480979017814417059537050581670531986702164573260703013611515724890283157161400698896702680888680740439427874426646150460914465653534332141014041472973993606819494447709907561395201776885145625486916286682183068674227005234628544438925976006210166992148283230245932217490700894830182532465311160903527648135607226701083907585261852733074924800633128079365709818133592634954689275835612619438546968197347935297974543696561968122745231857501972313552274795649994594503573671841669420027378124553229470822739595565070530858776260478204004487877121493048492110695903799279282496364636049082977813184852536524716074719254372326163436409417586655199727726724305857717344113235852850043694439677602296251709856817981497321835429273437891022352406647048178728550449473167855949279113419216263020689470780201962965572530101882301619752588311758767293742389443638544804436353694315071615919258308956793055670235056029230914104916804597062146769303388904891670687776440549209946484426298887083338516054736021178831361726548491797297133199118458510218417137560005010523902189102182888766051444854507998234937385606876782101933332238540295408537102548508427023158830389231587041793452448018670415840934041639312709408119037579334303549398060996275260461982971111355715500279111466653671886475526717451809798394920409816252492652833907104311435585866440226627917810954446522973304283769238098356032497870937825411721545143485486670373323460874378835979266108361922086742622080996422913176766790610456481231989782367564639435878426836412086498615143082183265400301621391817254768991049675302700474135649895337875474849623527366734491466570988072500137713701659477243893357133583705587217936854574042996166680461080660712503787347232153467627022168964761294752903199186244930340919708917991290786229719815202758605636493730087538177623790336789162001602938141848452304146174347021972972867285025537035939719406424305298723533943287255880860919478483936163037963730574537801796763442592454447969317986430244333467008401742558863161636489941286234399440627043852998777379940748692398055530533829712533566655721825232613248071846795614858947020813498975469222505116525265603227756312696434386440929111017583878916863728674235287923697175737446455363674332225228105585544804027593025431784372561856813629451600179560695742947482263721053865041897167149778542726903050509682017288284319222619744255561728257429960530960608810143815469126790342108379972911534427390961881952332322593515975707445040948323176340399804312189776358093918341809736908766166701946434086262390096688075632410147112852357848591954051829487540446134874841924702730434704927861529048184595733880789516251553280136029306129297648676000608436651939730855757457836304072156037814939798173717210881044378889865352408622965067381437913390394348731368558210086018904854972536225816456456849590255117430451221772844734091983636330709144558972041340849246149233652485910655751122609388042690291345560613558979578873763635443970232580003155172556753790182839990184699508186398090899281603675275470407820044239966567461786310775229470649223046720082348664431364556519153937603920547292311442207201081609882500949061164195360357675319846975288819281412890862604228415754958773961898645324044806600138799542673083231119267623796358708300654631038004897999472536191129721120723526529151159859260038839583188611911210627273650056238433574213599078365582579446251744022605454170017263118734980643023820054170473642380267445015629511924070640262427573068409375067243289637028790213933655877544916637306152859703297657076597450831287912567960280321379982481057573671995698455626056589951660405636033755174909843700660177695153996366086983671487257263904259424365472301561871487210765144330050208273911577124619093862098554489268750930588720661301221588634920126669516331643143088021706003408717489298630617702733485536221522195648075795446843886844006191417727612664109435980215637005146724952118532559746524123153834416712782219305347485094699237838710102109902022148525906945342995402218509814502999920191662053534129642867442387379989117083622964183404497003729798954599365106502506621095080187686230451271264495598623810129921638330691671393676630077487666181000566875397576386341168391436105419221809280322720600767725167289472227015414249959961233823520493739027313613891049253436660901949916235602956209996418154274609784650258127369250448209372341094957928371500179676633723389215736060403979452748411288501052668010456418636513522042927894581644735616631811074973768831081173421712011547881311208110230745382780005871864216036272138161864756149640739903823133114663035990258177346216056303349706398666402154796174881010652701600809757056472667902457382892999014366403422907914845517926061201195879897884804691604474390385919257190129786455016663139138968311437281876524109664129411525048174687590184948854667425874147976706518171597776057963751830238707823472325613282800559237760162830263840206500547302788332292374204837315519385806805082866359236182371748101641914870559880359603488797969777065528240177138752267913703493134388837679067606765976138014322476044028703997099989391632737283251835099265476563151343834275253831075395638701214422331977005606474791896471561782127278996860091347534231995955247697613084602032385044825920403510959467104124180304976364853373011136338377967859647622878461099197693317261605283045835261479663974566252910916973391807103197294832465758587099172825339445741784721710444946965702484974648395043073664649458613521415423236588929503953058221629585110602354295986634610488672211617190949162857839210440858642622177370636213091844272050384008844757580628903283556476298191114643984981327412886317722332995990993051027429788427531954840976594469057391513483707412940800068994740761322052535867394463176996794731969920016986699309021311804648820402622486328837645428023807420516822053896327896173059940901665427085580522371025002155135285799411247870157941189194209804889697792648351348038107538764356991874547230694996040187393720970485678511273807590585368564651315238259537933305518937331025774322394768678319896321551360824225646052531632646982021226567501132480058353682474671056204526731447106628908955439759706751568120937743944684476190527618046240402835430998787628217937616708757566103197548115763976219805070544880810804321312872955112238394880313023441849799515721838704734073414915744956789221016508066294431948024822083270543351267126000554872464285187578482375044750046292119507863361275534530270968373008738764074782024711214688267562414229968576758271229385513387700866092556236741323009578475243614738994443269591475599807630977973373596666048586155483262591278565829954429802731086042986322802942032883538094915551930264811346332565895764502017226627415189817911189378306485998593644206866286328658414555386036754307209223583127774315849817619604503476240036648873580655516565780902564564563780543601832795559212704899631421654547915447867861702763842769294546396049256360474641132707483186964526434078972131422254142814401605135905668224043471783881573048554272653839923001807465901755827161436705578378617052996376577600590669495407745158492519732189405685201486978996835980517633980361623557539901357974949362504352531677311034325196397639309004808062957703570998342791165321681895475059685322477512811022715741627163269754395117932216750006896587195951059838657048254351081028667305548318007804591818192410409988208821321391126976717706930379164193846118941453213651269399197346655924197735446789336064963392742823990798031516876368215940595066149134574045193380139236719328769616203850677255024332360533031560821588126848524679105887650383355883491013894559147021681502332534400455833029574407149157018588145074950111300415363441418226204471787817525885624253878832104742290175297038765761609606496300073322233531615177149467258142889680241279200432417165236160795077918644274017831540177628085845648004246903380678306134513777209095877833746282674642016439825664088255583603824753589506570893037643529808271945719610521210952736844277364553391376365217122333347934469499584126624749423051594964281751439489605213925393848114164234439442535688881972754628793724014481084844503200537253299001873198449382408934270332848505304709763709334935277577962604782994737182287845762221385351972287018038608173862889040173111708483200939157347713697578648974958567574698947602793599236204117922105814365951526421968627296003733036700277161753527034325118809137303510078528162494309904333307449902740046650093226576039836909528073732268906344539876403642324820065029879046415888403216014267576378483027441556936189857080746788954012412019675954172711435752663363548334051369674954269713789018565299709719006655588650908092260397281283506830815394400256942911077636259255087029297558791284880529990380117709909868800083166452160663189819237406333291637303406923907743335309149627982277024210918275511979957968136356636884520964696521597691451949927575056014406517410029396276453259695769110977645408803234917517557515684389052660747194195993095680773112835557379153896160844622723892013427968801208013850332868385543305898359310628523869743935792261826693387342792824149365100115160232188802306130980729810857204984875209362884246314379504916171232090590881480950439161960259228127106188356275811230011231464238557294879994130691792700968302185727019409452721230835662910808248961022746704650936003462328311472253295970076902985442117496640278679911245693089606664389731970380655478149110236821964687258082529908451352105910389712286930510466082714706285585107133005707366997358449620113123814426478369145564295326637226629206602267381534407613667894130238484683296974845518277032287409311835205013729690449831285650985894500029638182088707163517240824277222862891652149445990022778018633266178953156959320309581664349625123238904910325306792316925280786559873483515276756357764268316594500040854446327649830703575492885786841727705527615465470503044216345064520304605763537368946119425659231880860057581341822104246570604044625425490768189923654184430346360822916046687717484185765164325898276181564081101682408161329572750196675467403313715376138368986526665073560800015476000339571065577387376957474775525077701218541846596046562134287803581503153325398821923475224680457481941501604415939617268863146199292034609488425929505355897191612278523227906084919384840827303637214886872844862812578682704753705656953712218593072735169974314539532668608715079148256376533930504141913088096382941058586399935255628602510482792784644640947271539370278192688179874742489776713904096470978112080794197081556191102358429237920431995803173524036032213021514789880248307345722128266817490609772681325011375703933931537291204569424332166068885001673366122645400318788499475880073530373963223800055543201287454287017478850189288647357026453187943833876834978520482261985130526880657658433528289834963813716408179030154540514375979813673350334100394153790093385939540016066597765452824402406416068890762852657793656932142981414688823151521922128677088000605719662038195601334963457058162659603682727801298226972280688359843463876312924323569192650349169197339411530294532322124469523301638283261135018068240102603204365274950437246989278014340151065150157608179966445684356108579289181026643284909943839970856592050214539442745702156942876247581404401416549389371894128690488288812798805846574655800613765260335456958479123655918463281632896811885256070557753109972849103133910553113460641730684919836307087479855274680502344355832164206556574132062554349987820914511600353710927350377751626728233989506744551112255127618240226210512331696623422082400521118815432953096975583990964154678147566706090028605483167072357310096962850619479036855581810173655426044633029225999432019115275696291837075090046495646349320652948002571444911087159856566627040543495166317279347586366514876119812857694781995944340349684692163176184645816205620551064889436323341594581870327382374550048164330873054783052228404890139410934386237259509608994697250537786086534347018835866342707636132442137385907967374178798284253069563979399628657283512729811832599028937759437227587474189918776743603861708704172662962959405399013194031777852612546631248085918597033304069289683068007301167685306181702070871861271088545517708092623884727293952231755684368791797080605003589602956092476781406997854886422102533797682498765748466214517500714096322854267611970213723333347481880320738893087612812781231343826683513041750483863359236875329349127170101621262018745027961649070204541525711816439332359872690162505635581290911736999379917297231555286641457467156178302414329992939358772590562407410432330042785977972162766565337912182828684484307242447092862423221617358888513572230459844067910483165351858373582401405682078753406263204989492551882093102066194042945351946637861329150374230381752008283502894527415482387243129671305136261565219105809834431124799966556483904099422928489886508575944718206810951807582919134456087878151057728332714418507030837877755200991873393277792021167528712872539458644852172849034428513704526301137038523458481665688589560351625164635911577566284246728439768367426489918083888203108516177904745457465524126866343136382446911703577975009104747857234290207271838950850109688532464685598431136416182951985147988959609276254443025147246807700663750494641062320298009092389555619586110696737460363234048732697725217279939115825423846654242104610777127742007679618547221966974108536940413046507417298971642382845516087873534565454316935401185755622259128425832906383820968026324774893451411201102880746367603987530818742316721252627953818576187906450880068515909250784324237173197986858285146483575865468406491986717590317991030006134616425553896985543281561060776838466008467487274383967344449061501367528353020612328165910934590174186453135887230303089079179649130840991156567902196270689104594934377572431942033385296259709642691350018565264720759131448148376233647310289457587890347432550209924251103109427163769057963421018744259933773165055681356790343615236736210246234209134410497804490848291445722875404813076903047565932721304921702427077965496886281001795929360552109612185523539637663090593000289167228491724697049485539465553775473677270209780202867345990130720199899059753952927764164366953748939302626293448037839383171335967494029547581579200682196879398846960266725337039257266665038649245796320802743525298240071107832316543686542199853221392776522241276932043514001059170947716040567313840246805915813817930558241308704945162447026338113480498272755533367907541777824886162489159419291608324926589916637679449630437636518917269074151292189027417439211970396998059509841007648509218334641197268305787781691821055227233849594562713651178040414277649934587009178615417289641408183748151692381488279448698546506651537900654180284986465687149567592014674549417574277540624295035778987132141904085537703367630797357885040152424811390352199289795284311218921529986565568573085112914082221943632423285202598693953271786884567961982777584763413437088818454932825488496500185837964086862406813880655278641914838118321087618580487459524397345392343845520404737513830788099438630529195260803545420871214307045556955726735429295033241581583710576195783065360892363714083600637601944055102821828391407630545726117954549459673709303800521854273491496747963869196803244041219925669050132425207287105038222413378786567614620965773452531981305015395334886489723063773945990796563025909925908171853309362978527537827328757185989628202694318913688109747279213686283775127605491800425447409567763538459506239614392928056945445948448124450259008752735581984445548433853418147289198663137111009490250627233504299937091076383355925746639838474344749348455567526639485401662651777531325989824688697639458061471828859633268827192277552925834628769464889709716712958970177235151851718941359848261537309931909782626484634474713627843197935376108398891334223557896880197953081533908558085150959678465946118126926942575809095977506608322497762151584079339926628143435879433541686801288725091035949115310187991548829197496650053756343327159818540813166763241698295665194363072439565770412181510494033101439242040535958655016686822317623626626624819932026605173408194763852296543081163577226234758628290628750019789317736194376479878242669124565340929320266064426245902895241491515466061209202088945042815485158366130399206409877230854007128772861582480574558192227555004549327299044640778931685620851145430977275052418857860928408768465222652118568045700443164059219746170815464387628627235340729561505850805601774870028527094253069662141486407633616199488135761461873070387891911801261798306623275428497572812608718648283650750553315413851647907938369444388994430739890764276003151949927840583730968578012759876862663916037804097033860738823510366905348833097076501673123947404150029015968410487715666974915977335392550892718459460055793474410631599334187107832246004197253679243069315355220609901903679524853997674661117249019716585477721030837713625634864477842009887060515140429449619483148993462404676432410748383375907026207392839315545151410254558139454011128890558159052851755528818220814083596261068138514983079438670443006799543338170143371159101337252436818256719492747141509279729490413120078399883487092066447766923950560590285623781104090090423930419364624447951582602383719895118596574173747276213865075301916099655833183204305461569053159203597388433481196113071815230195796006512703931887335525813903773816696718839605159039400291301169158662208212675167722756664074194360909483842881231759946084011230293059232613661103980270479224692257002987784746619828224246861917487073323712662653885647983989275362438490075937006568867781817234711225380658938784167689882414243169905769772059946441528716085671485836636228432829364502428950330653121935224581080420703400738249049568252123669435561718847722451200912379401695575128160268516494696004746248777491085252932401223463048895450539084550322947109915306768470286759211537194656132862414792141291689770382914414159469009926952403855598405460720884720794310783541655291132160979113011433370522348140816559573925876361281213884214388390248096323024944429237883049242382263498459470439370150578084240351379369267986217033826549066568114003654595548833437299366335746888504337188431287361829817493616640359372840012492440047994900383973428937446740320189950924348917732316084081778713417847106783750494108245047756641648343635560459739836252615060217898635913609041907807307228908080263182944087751565028238744872899439401555421123825947124759646398680747565321274167733148748161753357308278758796640916708708100499046727144054863059448031414377333792324997131469294956697687322413988433900288362564037797032368221259008478273083808491492710689396723554872527329395993798420667184970007730987047251371970944559382869053717183240229300507001819159238895431725709432112631627648964638631040095050247403956980471869257853602986251787184125317448815959172335977218012721726846117758986547118858204103318846101303885079720697549798853467944832495591146836716739987004470643230386188777978828026323580867641127932361197947509652693692172407444968580832665449706492795332499918925822023097816283536837572788993766922772877606031611565859552113502598598210528147225137192227141814340974278240735198566475365481201393542374067151464322376390837428470268113540460473402825646169191750975594583947790602926494431832185047880322210415366190249118973647905046753988608326566322245589394768035258175011033697203394609908848140398382139558854663416017972379549010126494845920534787025385424555348294841519129835594881854313906103216561608868026851199413923995112963277360800396067169059582730444449476681106585804861780233588952441320028760728301901869958383297924232319709809361140728513713547944948976622381238356526994636440763125854402136758803469926939062842178092883704224860687516352190937815786902488520271371052348355364186307292053086043774510235492632905483701598215727039091869248944313323319964578727287790118076492903015321079000694228477987556886439334391482829816562090042556625552186194363096347875505413721656576814391573378423736352970059522832849318180321936706804264078472358975301809156466831434666400952787459559703171612560595296130320244772513762054246215668388850493404710179570761476980324404487506861525113851145530545371914127865296980214743995676239073576172998550626670939091289523469697767782766488136554844365234613422999706324898326150294882545974856667114162531738150851422305128042442097793712136450410992060530643475662043313419840164470927405912882875864089830756022298957989588595211993473516322212501561948325730082247218227624444787414046507823788567100433243371420931309327213138559343139082052201886501584398183727753755292443623111807749268135303225379787178404014680538081765396357706550122440802331263345823362770213763558774472425664730992620434066916736158370356811876660914546983935008437526881236438227776111979938414761739833083189489342385481166685200568638991327970025790143790397824101703374847487702985721873771491217852541446258431637169208936294921999928392263105369648271090455756348911375061807666031325768771934630939571294743001924871508129907816535140288748733274391275673457245225187653057271933134746503177993665341599195905478592013367974010905422242977621691808067523384821875708061650480895298548335002998000231683251318304413649718954969473971123177748659467369611582364534090149565161139952074333390535806208423796874967522286308528596017965149193923199307471314602483011415849729627156611440612856484802860626786566211525490399338218657659857957249947428739366490820362944426341360777463900647254472821396976458815710042370436226540027516560756858424967294687977040152439355128683114148917203579590240804109080014795280830619327299375709134646980662259933520176343084042085435575229908341300056685862073967417357962144849415378327128051926566626201949309711739942229547477691616672718895050047109400887835097724157451330343916571107933338412872619735569754162429063414283615974681035580222370064563033054589519579475482263390157073723964941310277975225800935960725800632674526992511724614705298809470208248194104130553023994748928349542866333915082602208679220198831010968513207548154838917064699439821603772519260305198084459967417102608119579814982368837853349524285301317080356354927402594280033260377249729734021707105353198002004903010974720061495428456295134027480015230834010032903293525081730689803537814335132523980660739629472285670837508727674923744375378132450821443179330893343763446314825986883872964621740031130932876523767747133380095716994310787765672083355608275269625156168553814864160843870491893923902294364698778226745684432711191207749742209407202876344324201979035784732548546136423469294377610543347595445906552018166347425055054144752839475894424155174383160276279962041919384653831418978467139960569039910414065068620642376830298222549027566633666325810857082331037038862723678917436705484560567194931440170836027417144676732258971821459037876216471243858291400970208047578932602999042467522603519191198614635263371146099511111442292365805121538860277602961834560179068280071186994206446757898807273558752181881733851065927028704784387329327156750118919862227022674002984222887375002886645954660128430516272177856569431349612277173938121346415996243210389820413959915929571201752566248826229650409468927031289848855991620571338853017623493082408969087371241637629137710757601789699309619629387236398968716825418621905643734855529508519474138079417460826380920081724240282934666259200475957430370884978742754310867569882136139100030135505095060222091753545436328873044095249995285671563542128605710144833663744167087999661679103430984400739218152622890223655034284370356162588489297890335536326212747350238927388561360954042188591980135103840065347467400657402520041725645248119549751054470156050082013431603680714624274279097757228084763798259795751573123833158654506997366654227797415950612078347845714138544371763285650406802682070312358393990010627654724700854810760415456587787731718652308877925806369086524598168639519242668423436594518727631254151701727869158062086319048677735335417631480209405675254950124595598371389873039609997118461334332147693186794554794811774793550287689240056913951876611637265151196270332507075186054166063690507587081214098427503712327722496351384876964784017910302634050833811136451226281664056656106043589206748633224611990366035895959186874159711780885811220386212649405710995633118472240214772537344145078300236406154001403622309159875964837005857979010463676956390175421859414090992496203303991740083484608599553151087873051545905020523805772812238380616776344136237045029266167538341071425941044614204145583207626877163299445208401273555565495109986750326132229022460587983028116661027569794522947168094756818091295272616511124661126165824537405020672892951939433367038948656082465062253431545141322986487506591581494569860306037570414935992832461119474888480219368354024351042295124367555603623199312256638058122420450122219974300450184077734570968195591429715590001618352322177297110188221164903123648019596048338260505133189491060171025405570242481630949311927443236046211769111707049880862369942412672369161116579659632598251909058819928708639255532623354468723814706049167151097852777717868393804116005690481724093296338879955657262546960896662728356335134895081272573106914281611950678749978670285877214040322642474625086560153387719025846246857111067299668080937568549081274732725275556884868806528927534026025340970822543570316047142103532457921212926417444310433834927227742916499876659267685604946603127666936051753834630504748964060931489171227505563212205546901310251436768869529273709298258165897191393225361168401637747102293767777102980108909135647824231042175833879504013302628067823922897741930312818341215636729620983000481872946652042867096685444619384874531854756119160897150768835438535756918530633121040961356178739970881164573629634246250408552836985370810436555897259464756352370811939556949896800176319550947502680998549473319692727855199791269683132727903014927260849158483786997741834434607258538316912538666147898290057497439869497329256153811814811921926956307391752232673430496357988648704860255262683944616159573904796981278946559737616466985655294576112503632486493376333901891111685993090510964044240979574995213256490072805565715671745786905542095807895799290639506689391200270732098758821242133111691034022910341991927915104507890643300556674148156939589960768878775712744826591492086898737920371084684614012384707515198003135139331331993634766649244454790243442938710913071501074463186230169139715517603433612586540188603723387533836869788060257865826164790119184434364001886239846660905099289051455850562829028421491873514051055950257416706949577675868514784467188555366410237004466972638798159543956128871475175580355609055212171970458290934459467447448226933426944024379119759676118865894249292226359315046201383816922961142523127770385684144641205750829791174886644310745859743536660246195392510337029556731403450345125905548121856529881576001865022431691564030181522991398486690320786302932571051442325359637327890255249519902572188974929342186001677321405564381313700372179772767873200068480864482790295838362799319578967434199410892803836116763070128419938742266032053109108025799741771857394688127994264092672961042173023180883522260252281660056946314341256943870335293389792390614829093051739746060447067734767993355833265198591427044562276034528569570261474634356332663540762086806824826272534884145790582457726935816548465380504661625463858240034676578526575478742693321279484806418466152008073513184431352425047373502748687198037848039869739412483925441748189608737861381112120599990112770134868536683627235631325669840904342599656519578020342535172935553635937803626931318516562634883599985246034698836315899091242871677160669233761270174500803608964216487749025633304708321344532922284959466240473888566526508565432946823358650278622942307608640136913101874682651022805285507576634486189548139492745060336801175744370073090553237462469693811960417197092785602639601868194068529586061890957487753911415267822177340802706204033117415885524380069411382326928964031392208743474758184217865829941865734887445145315483825675972839649732811916142871332355549343503831389871667714588798438999301583841300810014403993081998651305574651112810169500972618323766495092395802409286777845535603871341234485600185423520154524618229109592693133331996800104547518525533320136720552497884378564786173222384411107220338415982112454230774430209389299775625335649607475926157472916366770434103274418567541267986537410949095167013175200848450109580295743644160631945405254935877737033010634531895097471766339681562031019205473843927534055320979445588229655097922352715008666298102574083092945432586203408034912029444400533890123768025872185204270118466705143559533606356034284693720358690955101595730447575659039655678344690833598391013676742756622163913830481618491274630701877236341937504874220540419828159365655857926727541157751173860176958528977404411610285148291292432698790567330879754389026161097657661011889164003396995116505959273388897403224386470429760033480640867177000519793106648642371767493177045299670515426992992014865769684329852233861708026465554925526914213613036111453881667637756981223558167345112762589779515393414961878931258631281501409437523213379802888393220353164497819093891082933168097177167661127888345613812488168658161094059257068608479545589552802545505971580145005072735209800273390861155377531756953726299889191050897629761727054264361597527036638919953937031744444312969568251328513258100323142509337950581948968304598745048258287831441415862944149090527613259027322849591544215330068573844829409732018773725349396396653451799973419050728119982750149669979036617384636096700169701537339414174033368412715931026995938193205241254841989737057680021442162277689808543418749512445565407185477599735998298853153500837014356038246354167488352151839202700877967041315779351663748837755550564341552858634856614967736367341966705879328824117665825345106787868850837274043997132240156915900061551084823824112867063845188072594074292437958996687893733650579015398680329795680625940758242158943984928403293380407946260972364626921825182454282920552438120543146083311283583808293498573248389224348144932949125063160469956599290861625993370846518677358945268948770819587224401873736766828599588792714976293920238390174557577645689225693904822387190753198538211701513256882328436316409310894196882442267976314869545756232964125080539209428443852918282296349012626468456426453213136581753330634656024657877705116809093722094765115296304476018759791055435371990621536330142546713444745838333023030300427472052584350414656249431798440140353017279032109834598062289951926500078211158208833871718412536878027675452622982454703947586431055413617682827563135014189245766514578733390561580737120272060801922629165671491376287022375006954692701866191107069791036323450698810421270300922928089533969038346380190815493877117701092979117783965036341227040545989445369469580072513496385793398673113779793817774533082900121356001693367325452489545515640591735987173509345035666994070702826334597139852417504912859032068854029426504648723412351672899359018708287519274370044550890757168681164032439443089038691794986295654784528423522651946134413057517040033944489682910417875621618484270155848558321919611435175825362026704545572586665365423101315987294010461685620732923809385452113643550562346091883601649638410380970164399217313848362678097604753592453192528638314439956910411083350360702910784112930834008194382289790175013495831566654265164692886091925609077735810167711236168728670339418920596674453223015004990104992882464058676122167964418835066670843082379435274973245339941639931081800855986883966318811313745112966532866161407985135085625573088728856024381141172936774147765560060150638566144569808105966724921207324402870997715726519300100126358297585369116336526240853267913629596572296108194684776152621891827911644614807083782761826217637473589638269735803362645007100293246232102254725357399338920678501657661085013715234738510392014719909776777394742833341768254738921344479510789665488783145001478762087248751607307866201510286280605171820948523396910404442967396570525684371716164682740082571614026217177497366600380862136187452254151741904638769394084302989720345943529579731643648393666252768932412483398659323232558757763083982459113688091988604744474324619928481449597883083416227267071973522435868319861577957273922416157646722140202933780183635293372759045859164081201780439288738959620800205015420739524001219723426010027379061171478818101431918091385316798874468154178698365563995330753050425057394608515119258392119098630484590491169646324174537867365875740324894216914568923977655593546975316855438200811095300834925643060898919659086372080924503219202754467118534275125633465757204396313526180781755668838740251971269819839055279234862270063424548875161079113309858942168002073315082437203097500078524645232511378341079805756591852651351026476520330642354282146045907795746034368588557298455867473157491801670010840912270460057981744214877533290981554502060424771513822023259341785417652774576617332962156788277644624686229649355994326619888377542343824061476278505972798973348147718458367036575241614487304987513161795786399251708347863724413958813285943767873404085618538151132765607031241674912151282390265435396583334673860937821647806818685754259705954870102931562681722629836277946840282746293296551850668380440283701080467863498049807014093355067160824373652428203534910163757064816176375510748303171662459241062604413519979906371786992033486369683330569709218240441306908832489625298640498387545976333332121227658099977001135043489939680415112691987094598178147793824470688384112094505990765329677495142201761839352257355836079568228818474504021910905199925889657680311315183209368270832298252186921370318299937184818358012260212851605685531256375083627713595422421439708642970595724624881592910720828904498450146639363491278057158125050849743616924838947735972399404442840374750715374186518245940767228151210166914330185114176136109118897807569979419900511055069016903241091248744638146116710450503256765179228222230831872644375600890762623642122775787228609953804222572643162756896762204655501448159788349855454912637764285392992658661943970196292181906543675099415420042662524706918737269617550298037508876824574589038923847093695585518000610743323961875003219352505156419908846392219101383476705718948779242791712266972996844976531285701061140343832585235580565964055879666764733445260617720585005267053967794279320874605402984147303186478765041493332433082288148398757014183666435994281430369584368677026413878507714256512960227976922849392980809473686699414991391537448767784633979561303902097552245326343903461703610688445813458143096203280030728502790068619884611410861967033433686507857961887200855483789329552622439469010296594705654993138435547747484338493142939023901397174050077253025241832611383418257758988533555393827199831282400799655289443828760429511694224044108602806560207588302983676799442409628506960335926110885909713419526378885626605997141690509104662079744331871880232446245128629411347885098071814765233330652774263599050412820835605345336338426374958456254712161570557908642619048773658168571546537225190426859977333358011732434744240631627183805010126390133420420217324645946592022411176666329556416993381072205964669656637675097971888023356738069894830535196177351873941583274163786516022228081519846727354930472694468568441624642732008542095494909096039946589019534304892361416077799186643225000655203155243752852178517061852169132244945629538523849795905323065773750038792963880633680456479207997960994595120092266889218969858390455975186894074428273478127404194358718866470429946987702892869169446293409329677915270708533594044044663307364513199427355468865332535191090375396990007961180049551542238603457153366307273420239888594607388799111165329206121293268676122360679988788783490190160484395872428707544672233652551624211637881562236447570996711189118371391561065460201488433035706378429501309888923369101784515904512115371459092469968160138784773522016415222193523303982887468140952972690646397652070002370882153144750248557286546363823151782589744036136222288957304086942262391934164738264037758683389759288427104915382756767873141701477316699788602315250197718192142185253570696423511937556636333244772082919211928164024791047522512398788300841965506516008990651356047581782919402713427040807111480496442508741492496326096049738437078473814822799492893431548202379925089749993287183226431911074653860518024653846237895931478518465353927506739334970392273652988763622479927607403422775272238785439746194497036011071110273280290284465533240293044251037579110823451516242889382434997504855711287486664916726254027773718151240955961362245081414643735433513840659496619521410159872522479290140315258440494065437496329515731264441605262243582449953452786852936175576045101867411969813304483332749239294424635177617741181083144383666943923326992175167035252861791809403885349144969600240262017685537112328408838798493753380515959685221970433565453855162604995660128475966232299426892612602486994478722567266056499293088660762305859468818530542702409063285699310523223438336760924970484483979606706888905509489586709779988662031272885357179001311274257732578097543191304590788724498536866853938057561249599918634467316282681077684767703950854688327332351155524868153603649116019932351984347011813632309968956392713571700186042472813901968266808848564373748648707328757986604022520086917651196992618512373067866553340230322064950745751856846630218200263602113816929035072310520213947520835324207323326795319713579196457723766734876866449321668020327949643761588886645103055300872622432957794269394067911401628559673600738600843381142553120178158213639537328023435491170603192564485624990089316392443874616220972579158129288769503002525880088570401897652536945445715766255011858977732261458024400347562424118246984134618339572395283768090513294354947946812429136026100248021940303741565548062926768492623407793917516169819595269454987698587590775680256345647768805479190127450813081679454959098929437342987436382237203692947561957949391340979269890150515032820915148078577454609341186743771745156037152515250883446875386737831937489230843054452003769898272120257202265374742967821466744246297134651436813037514689788090204700261286053473799714163915857240520557592967728148696210757144643953096143282943372216051850388968617591197035436001214469139298929903483106380017945301060201861753860794160738610550442881478371836753293505919130394640018357781346524451900175026257751027854823231109374764227105734421055233773297639586760878735072905623481555055667056085875003551755224890922293881156999039157687110593115198663918003432853820438323267879938666324216390002798416826940665873899041968138740061717569373855813119473443507167310931555992195505976619552649647589465838029608619076276541940582045792143465413218620769582119829718773697302962643236850017077683325492142576655330369155817463130462437556246766176993191384897256883532570328858240896470755134418134116859552302966334838975612818687890419363309199581266381417240021678625758872920052169021499903382321032564945150823585018695526908189881383189983941419274507081819883997222159531682918639609827598319875716736147265827778579789393923851533488444042351176848514459287918888206178675788417420149511282276740471108776500225074359015281541116412398017177604311845297477227993324754534868427987736113776553798688833952369719012232461055746707007932638713274245296210798140943327852079420543158306399216900339131994338659091425416468428781125836711058715177055233058412630542631555398827781171319598953160855978339217178780629806559983094801761486826463788016673784766849999782504135375834297986994375337063610018083672728402807094431761433091541812292690824181994256198306654908027030938676440923001283721387180080914553513735611174081445094498921943587024254471392948520126485494298109089477499579539199913636647536307857532905671649690069797249648053453192946386668391641177766784268686102238371856042150568101330088643233139926537081404024884406302238269353297413156592791745779479007404350086814261571632582861794593459591781820395336294163815086095296874302279704079593059840737488191014976284438222744467972224492322231942421134616293632409346535984007721623350769110921963793766349843852695329401059823388732208423988271579992081067813967294068064403953137780897434442810995288323655157632716217640955691299462722217197980054646359861316793329187821015725262362056760063348578735232619175642413005210016691267672338105588387895992907658646026159255689051947218705194986799800321082693000247840672867413304885124840837353963252147839824930657230216307427504984277604893051312635964881089309737952727567293152724611679640279234591137798977686065109503922321130761126022736128389938412396988727415049837351576283625934262571060119443659738017608721858296340185924042790693067154979982076598560665149493927551470404703050391386286370763283502801746401218332298917369505731338547242518407155616503633398467821589989535414487004466744830175404694388804752795674582244729937448186841726721028126371026480072066054816238952381452332492175189021624946025596427676486195548330849653910308557461782533032819880982967092472024791763254905995684226245735606286572021753706135229957004266810870193341680820995132266762694232018151316300044385951371743318145606936911560408661827197092842599426251069420586062162076556335638592412665213352514900201560632233639770531233188956920111305255393291937086728797321367255724194198826732767031012144164044295628829325989491521246882812960133366507417968907537734431007024784906096805752685218473051060426716494012811171333507713085886255087364191945775972573309616318559113317106150604677066231609521589376227712857316962805206715465575645299977555881001041884118059418492308336277973767291471636865719089539478439144764555998921830927468765970449853634827147218273119330243324913087031844298680319933866228277540827006029606445108000947194113709666906645217264119966291276251250487021407330646831452446531720248158035986089762759982835292599471738052059622706395114033946895982471527052945683591923056313880320726881841116463602478486862008277666806526492343579725442579781589298609411658799159831006269759564094143513074702161754625807092054093195492271840948469242054101175950599088844622983571694710902573851983167765198707021555953199035028948531288032770291826212501788161539280886855527750692910316495532965440159913781253316631405297385195045208470163989268481379600336010766591930567259607427262682523240052854021123070039456316505118438698352857124489686984978266126964671017474766012467424431009804781378391045422636025549626622541059040394992719676392689785623619771906243418818404944774516536416741918348594245438601306045124406535941041167830464068795526232972653956869080300858483490453441663547202519130206474014546757247813683896809257852750872179883366843703307779306350051210537345513838165178175598666730540613216855726232402978361086568451792160414700847801212194291433797179760945355124411242778786651368721638564328419113164771877219359187684578338938909190869030543744655803639553861355874837814309479889395318976851033197865785266795452648553514492451484187881446081821249911410861435758922808766452565915583193640126519474127934611250047129828058043468027833598844961891615693094358394494646842807165182385780856168010522285696236438723884804942767280833418141950454933686789980239597385337216084790063042323448888949034562588419986545017318934922425612599624182566894621017328692209042165833628629416537208671003615024224927701463781010277045063549609561446395752332575058831068753370167067690084875929280864328760601018094591256830436458395382476705994783946416932474662367147080488267888601036138352912037389557053290332560430484113430145709248205767876777370702988333981790029692706792349869190260356007062192819352280626295336286216055473987305199447665746687715985949452772405394193974365850963337429877112119818124932809349383022444259814368011920227908189224038253999456825074720651025091530180109715616925731647434480059689401208629014914281246908716641890892092278276485724078244639000820015270577821212099177280126291801739598096073242047740294989583867887319703969082191260597249902161672858958244110222854687750031575555751773215113875831339723845775911948072283397622755266985101910040134633238094405107027363023735700244794836047806875516476262647162133018303564770454479011442633516865505661446247072011493270861819957325773456584063692344243724353505245014652999843490731203520519438143777089018270156111292816608610259555553482960308446693200309803485974312221899467544073814383795808375706701101777134688791216977572838196611310512170237719291897887231501147955197581807743684510058824333096140502196801991736764442784663116362351634190065741560119065536168170780340002592793895395754547286592043165857530396941634498644424805426281975510469776133737026385521545215666608178669157539876978850799672271770923430027533179305734205379729158714440068992105898392196928266649008124345267903883669612279167591135743795167616934566358497686974028155378863436089546450509841553757289057000823637413126858277642106777121244473991145141941752552990848772235446017399935504972509481935331993308097424972028095246976488724225571369582742206866110241131013170821358918469823602093440647367684101461110944346275765915162198211851910758708636763333707529509201731866477746952979537088691960851588605038535827429562732518691992609444308851284346279325911240049005390992589293479474370843302303269539925161439511750201691884839053567956308382684396457074768673987907281714801037652438257370588544471606178905324293300153268774698784854591230220584313275197322408253124122646448609822609409992031629380589725344686544471889144551641023804440072238803132387342112759973769993713275254717845200864232254871305477301771879137643542102304871123986057995861736861304105182930024121628245165292994645943276324553728926058965899619013926041939690961041746372300096870776517464266950285880705467556196383257758509709706897514527446560401222228166888376309482021660427323862541998343631533847108073784248704524572852595371355529318632106881852410122788479625272567670602720702592599429600831110404765953857582186389481135068241095081212842460059689846429525495248514120537662387994974892764861688024334416856452970892210589913900921707071323954978150898600243421005286733819039819515359166692254199948922489106204014373294329757276926704742884310871109950445855670795213157196403228682017690263590015932045462836687662466101835163596607740526259759053907333918773145701444619491730449789608518811772991553332863849572406857610155100889572417797579998013811992981788087805861458424573480230367909881625313518231439503585437588499906719439279121947677287833867600308337490438312118997641270466303651771477981040268714999312525169691652863058245954198527632246358974268677380326771895207719314392935322054683427392602863466806019355933135013379125226555648235541213263753917237168006151566014038211249686662094623298545868640617050057299192706272916235644006654423844502045504984439141222607436258112213015961447818632764656772856553218400697964140789719567463147952494822024201769301402129788397304746054063459352412614844537581971040830312273869957687317543090081524833795216463675476926160214688204640592475623398922006667255086819716221800897624799101972484441791509582961669425970856259772568192363447726511936789580846831784047651687153391372349820419276121548229250195323546594338678771893953740315807135258265068601985579313748810986577386935205503137881172712790032767146752594551717597977319473678607290604596608896446561262968422393291552254521451983208921685073996065483620255408007724462624904708440965035281291222240017080885287446869627676505064942139455580386338419627569802537857108997162616652625432954655062997892151152420855456168577087821968431301485406467043985174260257091443486760001291195117007766630427533056398037463497543665834053405934553370545454622132687793810816042879038194880556501926389216025124985879880562988709470685824874510206968218567969368858447402938578072025471982581220654924451795117901295869038179877951253398906780488445000682025943647758088016273970327856876954227895434596314704541901579475332808481356517769105387675002839618303286760301720513871457978484540428812168270805980308752918722899573611043311051836581869229102287550821314845004634722674124096812105907927531237212945032373528700421699794294695977039860118715497700762196303865567578030694083136774191693116271518564484585516997644793035895855262488906305453369039407967317404163382606020451308616242160566314856474099977966336055055488033155238080761381934661645207027957278672894526397798222511642591688489156322313113810940372574791313226009254658189127708183574111310568826737153277051968952102141895877762094287105860300071731981499777883605334505725441518817061623582118315091028632835827102342669103346453097807498403218614349328072670389202708341750658968419150642647175463725265193830862734468648259097953052000915014090294965184566370785900605585394489604322475210122771067273220358428134881851488116433970222705761857996139567686371753564040807625538895653961876134390081842028948413828078627275079931858823360652128993108074739762336286825036476057876910013146063587282749407644003326620244600102097650724154413860210086298459209109144484468604702501016272579099309395122713804232086571809615399242794699834276620235062160058144978992123941888955471495988175911100719338452400777364096408133702504705182394440434784123005133908621822354201724479690215472293992565489275070836428298247532362851357049537808394535505988203669578822070389610791161802632351637727350864769216294335861823289697460133618703560112270165252314083690797669565226489122529095312762242035609302163921739722166999127201433182149271945582896789702330382990812462550291040007997953309144136021191828757071470839065969215443011699843368961974725307921303495105399367099532885265752858642283124024985848230684674101030402938831587261133585926000353279556530177974167902602320201007549804718276761176850998824667294053069234645234543924068742066104852177897432153520978795177399997320914725598608557103341124154117596818979410043678852093680187598283363753456938013389258315519778760820554734652177973457366559998486928399103109362079347235314461732214620549369743985330007940359100290446233546392402658172700072645470479053792300980519393419694294578466848305980304463026186959216344228184448046062725355003391034931314875895462818139828419260889498291039559536665142045457555646695114822507097064087759319035389856238257842147228569285254579252098159255199758144737786047284062736485206445047272798430970880565222703255499325114191797518746219787521491338632049439263328289186746311073368962909030165408897499574591246486281816099543433528249135930731206797242336563141422068816750874766574895030782890640300775817581681848668622944581279816917471170434268372654945812396224260270994440707069650574282636304163008728162910135495831968436728481175026862250904586721679328542770516590465734175624112364127614473927107996359559276827257179640986398686646043676428237814180890837242487602989560050086581404800756061214171409298922496670377520881299722620351558861561919011498158923752205398696547889268102629670361496379032576078695421544525318435931039631500748145146281494388119370527454211091479776763911921401215301497661260989281996293386531734277911775309851328483208421767097032868295788208955611018145087065897145317344426027546815356596560478649942995703680082902330534163016697681482848556271555011597593899390274907052663256986595564938904159032256656776711043765739944409595688726113957709096520889086220555344751022765333132708256245423674601617403358548716916070589493310316115542102362001671012748133724849963108356497528274213032641954062404721488247412508559019062456409859604003146790482130116205006245946161137865814669485652269046107631252036009277273257857746566432634205254785622418645849426614262148564798166130122892178396731539009877238783047336863013328513297762921340561540541963876613306450676201130081629767309588234889305120734875947687394288102569437234371311155984739418302507408524478156252605931799778380136651083810460783154751960361423446124989833441168333853104291040135324478851654225046092027685250670599993794844057717719362230352865358293291245296644726239091473553516755731133670708961756882744479911486577835835868627640507684181267675788388590042297842119291140148792762753206665457986745988224435864364879251754174094203107732464044608756419083368433989665293133136514410939412441096570887586028349038690403353014798620641091976485732760118907663505278226677585604172290511383754227295998381334339906479903655176855933711354516389176468739953914199022441366345675124639698042082744233449162546901724822596444547803677590017032850638855960539747073473829428304958190982387166314289286158804032819858892878158953955210106907239854280342118542834512719139335535531749770624937095309817978987314411553120897898229591588598960451500850540904795609217751156957589771482679849614977228229850250195826182184397172194060839489791232914237650090002627604244854862218158427798348130961971610622178675452120754643629155678723841829599485535130556582040761889409631683827729581416954296051877270600986489938150551871515801302341113324546662145655457488668023672745348780581485981380613956981386753937299820951693634591534562777722618386326374727856085479643542831393222060844173367966579557206071651803851792725727188385042330880644751210541039736080121243818579118978755179050752269404330744125613500666394617609765828101584908605786316248055789949940086726758298945625001135650994491863662755161893802716066099287012752102034934428094662397582150079973646694008470065273067747467481449051273037703794092470973457640182586195266014863511598148304141590077353455339900985225174023220459310338604862115483413391999917720872527373154916813679715152582333199081820028983299500228136337003075032865863744170899470594959792925582306365006729328923279479161970345843100016285559964908449518085064104483516125980648953933227232386918768214032763522956485859695460870438210357297764476152137754899364240408406675478221321107362318428564670667621058923218669994515091305899239285010781590580514228061815489369558064929990228059254427849286101803041581831868228451360091620120581129917922308236034328172669633767051257245078391637811782759592189434316488513487403562639188011914817430190176730866779758079405746085600741512763917551205763227741664635945979541980611536454506544264521625014516234567859454104775961660126362716418901533882822967186501471280946347008101751113008962100477486866406502375264085854072011427850353924056090137602066243957129549741473205189512852416670873855198770573294776104277233589151711406538850079545261117465355357426333749511444863996769014167427938556947230964751308936172782646318808670526131395193002860992653917840047244186201750794303477293681640324861055085669929136487722616837109158570524757779573341432157635057279821023316141902515050878753992092548869779274207252791136823890093256521992651230913321707682989186236865804629621386109083210588052499471742853727870604967339427883591839351274518041937046891891641952999241160076102276605620591833523517732564662948255428659846989707929956476429392130791486617235502083090118680525469730514573873382735833602685553148000125226433818848788568228733767202191897384998544058755021755216887166795457466424231060608692301466319912947171981537058923679596932857607594587409412486281099143663239417780984719593348927313986978950621376564021632209937064656101244860802621876323735745482956782766106785807849457054210707432376887751108932509636576068635453815980316765050189052827253743852630999861560429743954941762174423168360069723555947304369464049132288247376367552565912617718696637516236854792055002885434009162350615941225578457260390706572095010798039712635997225362963367857243352744560730968765221983995251509694960153343685395854598662769049881063138859908411102872814165357282253903506500062883227756256380327001574910301862527251040835770845817943443508579414298576108908269008369788191680556819590108043279885664453191506719975884693281813832982412883610943705176595298023263773192949427074928821745809727825016038851437991080200049800039388751078931431436320016816727792826089299856916027267533317865892623905056361641398672966798247245100157575095065270575224035313498605074295475508875430077130514112320260720696172678543348760216667477907333185934068727846514139830513082533734984868418883922000394794605120136498045176758995443091013009267157354329435827406955623249833344457815644093374778576858900969445178763404845687122152728319487636823647759893055324314239796213143847896140137481984425542895923832156086009916378466734205073372392377602758365450870856312065982289781903222400928708322923232540076226864159574333975616376851023312211302969670026662017820699758062280350205592054484776733800095408980554883934457690205138588321798408250583203556735938101699002149741859409614819509034353689679707117862009120329939969131326775323662597113091677845749924737995885727132774808007147248356065302899239967981043642903293219639401625401594921758176050035879043124650544601230605648414450114194556202179481140405245570865862710452982487876259810871428099957870953071516436565302047887140724054887602600798461593725979954260079417620141787825469691551896123479247619442799075605645030343487480118381365158607323643234823019656732454484608000954670417560748449058894404881477999393933747364114143381683432437602155788772112886713002512052667704822160942743855816729615504336227792983390067041779672409062055264026222423736371642708772397126267474908948008996718593086650638695676625749356800416653691130296202100570229236321216897406497125331385236303822439522049996384619519781596789139572167751881818557630674068575123754641166806784823101114277546270155388931525224662030485367941256512813760092706638014813531011169635304667770523295352376786335455114718877490327888047376037519660039347589054195366611216665710859088516534075560901796713264399098024837022038647970252851330958488468648458797066065599966526592858277459658065928959625852437960893736507735486092154132343555151195317482292538849367674602912391597314785748069070465318546866314960396997650294491532566193878165161505811623118266611360247523910713141904197206868066332817779621473036501251673386605218450223422594506412156153398681846134333466514401841025727079515609416964208800473497290151325597031182089279485857976510156075067052257381751940794934364547792790687515072806705817043088439863410242939050376876500455011493279730799369460429371032349014220248792520924925508003022722506777030438813921534422317226369916559714635567810466993857004405685085443833406686698780755660602470978743317462488631633412856766475193043025284792934970162342520945419869219501575093059848310382128390101281518865656050220953822478901457314456689838291263252528086558656657909925906466626994036739301960918363272283463472138005518623327982680620141570434474560967046374948066463905728953813823373161589764206397319156582748854038257696180763867416962036602342241898724008211841004833272762067487999274985810104243279923717923886041214277332241123475821814042600807919426792262127188822597769530543760355469061011402558486041790366324387054715318589899967781681388183353391786398541687167146793629348530255177900862148206729652991613680735653623464448923711385747056731247538784103794815255845519228472026091616315510716135723732697747513761806145477865979914949335290574554747691098438749210522880331764117104117257309820382111515408888503192933347661781880845299441293687093688685161893162257252059181094109751380120802011301944015419094425714938688354549884026547243058080494624294273987619015412546818631101840426532749364385396767466750242902310224156735323546262131389121804855542202767980884334579477940249083849403688957801798566773497140653576559734032991725893361921220527940812808226962031989459652281349304399732486633908763607448659235986708398402400524509034984356484246782940509743067511066441237051118424584787819838507382857459464143651604567183696515598581675512855024813418853802346122080043636506703490601004177628993181484923347644378941444512331845619881905169000774033806722590511110141088509931810864198379894607910855735012794839165841042685180504494509557651056769065955593877619759643203957523459650207718547150462515798496924434719357696538027489870405771620073058946811571630721473853839606933321867368196808298443070038142908716371337784422809466517689098307129406011116818302315733944823693561499197742882334243903961291359262349429572985121585347423700285103905845599811716959960768086900270363825225593267189002917481614855572694026471236320834461028713601411123282189289625363441355700693200537130580451148689364325216782698990556900640137554791215047034717753020142500829034706928925596027093620348732287162061398903114093981999011566185194931728892037531181180425251436229524263451475556754007947779575720363667143678553175008054450372195710176324963881517858450256345987504065727221020754663690537565715797572314394927132166582060683139047524739246529790658501428853385137010544841101119174653779223440931674696600941722749190463091992967034371786722439672708143735512496720634630139314618029118076041894689872563348647874758721378788396364777947491469577678020696382760419943884994908426493944472578520719421510498903764168853461978080570606610312716465384559903624491753651577682629846014682753995324758078140858405544855472166155500887886705975057895133986739493775017725637555616586589161999729325097124595697694907545434505799278949775396183708172921844232781316238112227643997939899486335001092164400282038754532680262364758525021203211458734784056623412546003380080546893309286181570711689454733541281192995425221762422873233602764139724269348389647825387165228171444597094519608720731026174876610121478362757219334630826167399950251352025175185658563319587389897440884372458504284310888037229934303481045680058542877484754523983827878452511813857028563630131194795777093473546044768542144818254934124989873033546939611566457630038120695220314944875592771575185282536845978323460177851283488020684802330621937845770576614189152482672187050738744360755660455185671548821795704556143732463592331078091462415359921881367941027082073722478498956868935166175668661413960297465949581636270130153679633797654992141439565755871218926451934888549402112493788671123957248898624560248431340077459586825794751392581525415494875613358534200104970088559110928815242843516922274541728100553337745617883746946949265513426178596212517290191769237620283504799298289811139945908089649677963406035615503808799730152361421577265685349807495235983221600027871387925839119638411466293445264533854325823288733780846199038854084182863565710290053912815644597935152706803014169362347448797824967785981329922944100768938670546782737894283310362725819509989526927837251916642214530414367873567731382446523015144266953866134145416599136535027700189863932955907474502509179803796661773999356059120535221581163023048081169793164348160688336967031171228173156112939306999305824657546050910495719973302299126966487020325423732482686576975493697072972610369607915644178134418526349734546224077712005153074605576188532074336708907803603218091939893510051966755476822913079680443378405993289181113904407601995406089602936621832801907383671415456482124914500389127239485925034885865555844091534866680605843838891450201581185962801860110319183062024431631216719836497272610445361893426185920943129841964333622309130224354989244342318983635998627899418348525843742797800562168627698900171639720547792020667608481190770642252483849855026813962999783271907759859216284812803468997672841014248752292218346544159981323262761037767491206951012780853059587315589097699875997383468780341539467675926693831503147080977417377614468317675954170607595063501451534966367502477291755504117914590333599348131722181599505984938796509091962681147898779673982327358710264902927647638077858813238638291803841986246120443337510761189092608614694364229242547243289134716479416764519721746516679676182776156590227815670416594829719961892487867719226393402880870780545985342571064902652747439314481832576655062558981372555864058803630445404099898292538120695436883478825406177370934581800778010999486741570080177823314401770230517521011560334777160902334255592494276439564106650206813846780995487807085370613886523290423676080164863042336513107881017235169129421680656422584602652392793230803979960240249090455827891169719183691492647113783019492303785174155407654346171384264347312343280849598170383324225865948082225130347702387824881182260035157978006734278421258835378588460844649251035268977836659696264371827168641043087096982499390260332487784044346580094275415345613322782511892610048232205720879708720473505939203453210769150706960671800741277299042183554433323353147777502382114573122565213431066010327949180955749068177969470282168635631138125177167989734913584058278574025747601515550380623649063140105707077023806098436006002098408120370540033623744259773049952581974768427774060652628742325588337844925137560233954558282852708238427154096982331551564530852572057837729019138587099599871576483585324172984931113648738435409416194998566307396813228972456803729226384321604980902016420724174502119028529584062430386539598561819506745330945500113246236046100402043738943450738098002390040259487876677690468133248554394801965062360059328212867431898593898978928920594893036201186010874819964852535897068069811833549138714830358853986032791541666453871948837390873592329722520960717259468925798139325815527689538339760738973889720480591027782391004786089242171560638785314427541509361776587639944192713181236913417746630782782149431772615367458218286302989262972178017267334138522931220187160138314241750274608634969957138865098805338022905540126352149061560511515936857258626345137578251619518188898475838383274219907750143990806774311346335755155583847418735143088647647336265162188039688875409457110482414061115569402402523630110586065733349811668776809191750007596379142771554622567116654740782321622177053314583621437639176902357745291458249546869649946946498498127507727793107565207424032406722583703109338055321805276654764636159092103027368283374779198271806921411737615020233787074077494235055150134476781091451302556841010234015700316201590445593612094471897875778788552828855908104356458951020657381172799170075469514971850363831132240991316680407715946758560277130706141840700426393456561010158949436952834167331155454500138862157182454033204694113465632974049317693470511774991256885782146885239908305806257932213026405718513450860141218330897277183056540864948892267934810808754085050517367282393400994536569652287457483144985526627126271471374234678279644044326513066564881565058566228822492229671391176098781077265672824542739857661781556920473932594683518885192281988127907862855948786563835205279710966583350146200604657965332766289621361936601507625244802560239557540097809734913285400688130236642359460340439886970426863293870518113365752925149548966783996281481773704848478236063411303272707201821315302141327763291000353328025592280087616638168794138302754583731921221745032736147757048082703251574945761842876519513850057195409230893151726764813780010395129490690021241733435732057197928684968609594644843463816359347981545392137601419447334759980123176026929382517385012984536238762735229378617007031868647179663309607125205060923128928581001795797993310863551523158101074653556759753612620333599318134285353945962961967979373226638637282717998425509626568691788294303721960460149006068515499828699837862204271715704998458739061274352901108724261728421038975613138040513210529696318311668927786270534995096291578062521449002542546723149252749378611281782053168907354993158660202419571636535539491379110753283055103354450978476905859682726870719754920292730928435669600095414844617534008207269081453083056988704705589180217936405125522940813687073552468946259267617125157825722369346848983711404395249658585641735701248162757639020595418456092661465765500990612739148050756011914774035272089269729661578100980416996961398085563353679734512132170797746146436673447125857790092305032177001079757027790212373704223844377002580627810656814236624864112103977502145264979923943062028063457187868242983639362940076749110503775031571290582150017514335786987262645566255255851951863651241593388372384249919201563819372764836968005697164010431823536772472816048557762968166473418786647168310913960989504093074409586844372885919756851091221856975035741178955156444245195309007737910067127448384641037065694470792357642561601717810273186311510301119644446553841131547996505719109838824662310533804392672262237153488251151879755687569268272388029837353495174572224929443773321993614863237081993016708896980341448462234444752195599805388789959081628524062171069128522759952745176477133801264190303631732661267853900025044623243889495131881803731153045033990869883555004704937121681999560989037521330673316724035102275982983958466937095185911075008928635270440742356240152350358487405267154104118769027784770139500113465185748704898764209629410806663642203196309389756329505653868273783221708550784861832877983717292242538933714506482106607524827984251011710772442285395949569176275048720595697319771124139864024155217098586513892327729645183516671451121225368497267591722427515950365846819943175879261929436772329113017996989962329471430006052850972812884532769227963694536723645614540656333993632612514492330923847541958546126339932599291742952706094466368020062177385854701122813033077199402377750784771503791811330303077906579093318670635999614045476166756430046972076777675230274789329726580791162630186051470960271086949107511628946974044434571927480417213829088450195613160725783582143248742371748679143747373378134657166657058709131872471603594669309843331900140120342054183063955751462209200106348852211323777117463299887717175261093031208681374913390282091921462051137201392572354572801672873018047510089313041991013040767972129131441856419450153841870133221514335727379554567706713330046092665506053041746440532001636489029821735826212950129071456283243983599459518560888577512359142855184828163902643570021810766547913210416763690718466559186151230173809838756952874677786893024721455918870017440979608698551927107000753904299643741666253498311178895310352007359527478645405335709779080857991973830875280764328799779626209084503476113520333001875680238274841963135530836126846767731916155250624354629549540988097891101726318126749600226561014505000310180652236966922644121340139183572448665122816689584748911002412617400519372192870093716826764791507234804282606687359055995626999296608798193227752223143020291184281889597003905360058988385882027642930918120745191110502025034567624478395385192218755921150018136423340081309331650933756532721666365845698701150522444749141892255217643161031564993792770797975248129904739469340490421010999787341678169306166059995344201829460764568911564858852741496315584760975281021316156360247563659223090582644070001618071533899702118206507317895568885651496555047798126975900953197846161377952196207813225495262519549349263852654519609465710519866730241895167603272692608133482234577352903276686132379439986426929242889856764804263105724080577854514027280387281003560711270993917943887954552316467276878014395355288616303949701838473683512343613952212120053750118222468060587322489912908340276298552582874276440879948790129694029965406422908789288228621912620861309824353951687873461994010242782423845595589051084622807487261351705925838885685241015022113804770715203853697186853532845345649832902464231022599085925797286432263839805586349807642438549298429288203269711624507305818160225045632895298528657946281848600085156727207450401144214857731488026444860252265953277202013347557004651930552868747381602338059173943583485932158585178449345940588391620328301346569852410872961222773620945232623688198438982029336344377186685711312551829384915547906141727254376452375698427261152040476827477708430530408390443921245467342107959071619539758739545919908039062300333909427463528376932142281336413994139354422790755105636632025991433970445125911184427273131054885443351338489377200682464467885099226050190709553540265392286796239675009325787775551882246344845143028566429792677869205176228913071234951604276671220702456687545100998038128497148325999795358786272032359000708446852270551535967942222272807712234630216713403638231145032914772326397835965044556001952520360105362273478830810961675529616914054913295402857134898906552378756464952718945845213319520805383718495357584794437224414910405098660035792934416255189835035017038605377693825333622762664241296015540183345568506623207362859284837049690344691427759962412153280778911975037620860861179374370961328769468915004715337652854687845964777184300367741246337190348285031088254521801460867313602804745344023125642028998672214482932874638239603083862905852895260583772347816368517972240721886196692410126844223130385238294586757260238321975875583412771900689228513226773369802855219761393985350507599205084052629191410490551368146193126297695095505639666305112292836607573685463987390580488512925572072047009753257587992275406075680783687811350986453734330449862740050777795745228109681502383280449721535412167949032023548304733677945951816801416644233259059709673887904362959162828683224882867919140349384612615616853824893844354223289800429783025989351983718068503054980924779312161831766991156902365969496087983495342554827479342571899186395891611647422215550395267396767277773340269028648889623236309094271077627841275197863678685337651317805934543002639453535023351043121267717874119862810127402641878434158695674999016308651689780492336875600335162577076838821425377491893910470180207279494526784488304533915171298925740354806980781978899560901753438603639291147697841050483617226383977757673293759489213435113741375914532627761199806965742669141841534898778862988073902744284701251431485331774346491626053379268924935131629503836553133709413054192916983632240241669506944721406519720134449300562924726321095529491529118474338652445504196462990323722892881252397379342602498388305784381119892890834276260034225687897047946896119078829789747270626309077973072484695380298382237060809511994868696538429227851306682601525314785261637354795512239519517888528451750522666007142165057627251177279598307196118171124176685247381874697525567826645878561931877546074810517651333427228460249852177871614264211244126724935494191584438440572369533622757447912564055948367706560399705667710055851383825946989479646685120810797912630019511452181955086911877307272594117972396620612733565370061080230962292155052388043710699856681336525754885619802839576490693452139000119377342383656024689692903806358876546072984052612406227409832315142416633189581491116092964645069085035739002582283779423983311710522445745593668124249443159184789235927732977934355169534607434023638900157422658287547559897243130703940144161672260448734044286341104060528815513300480091355943753550297784835916343082251135394824774973356418796942348897405676952647144942463291774948767709250198293843906008802103936614437371238763761909840682741158266327572174865543382284928671629599309305110155167441735550991126660243208262863707342371549639883085346445427572901664352201433560827628535189597079188808756338299853786200672860882314857095801286511473428871494464652688347573335627030647753806755469015886511121702149482917379529295210500269757322504108545636548433533307993950841513736001776434757493248080143555659483799732542586201051174999040537642768982704967039470862339707724412834700283787881789282216789142286150994230766503440889749118073639426183017585472110036914042885882467439996031310188941633288728044617378863433848503585472730016305755719549388628097739061066597501126555643655384339530305464203280375056930119130465573387587292783423280797377574078422446402715676017836825773247006299606438783169856010404207766601750765274742028507446930219076462323565518822185010933987694791936129786098620472532774002709770129502146073951813773887948058742622806271740365109017543268525560548610823160092096031716922704694040234608126110238017786534440303536945797733602684304133082599372312499148669071919692370561758768187391202339356018672969064196231017837567029504318161659821120057596686103977240832709395545121363039977727580273401059429948070817548612485696169371904221978521642083792032163005014447445513893980832536074172338726945737920842066266088651460811206727973215876322377420624069181104779838122290777635232658299135739269086897030945528941074537704920375683977994985191530086207333921666775279207614907742163855655563474569221076594401714206422952139466198225774942533644539050728327884161352681174131641644203481632158842485275808496610882694756825839747337086914031196276964168474674687855285700500464457841954377736284530912723239999706060375508052730614141385184748300471895375334935476946998480620753990984048311738176877760954097112412128775204328322166999731121969876713244346525615350730942204865527536250354213057723237769694191434252778104312303366243808472610717841057875409771397947072222531136122081880215496854920980455123175729163792473900183054921415846243348045906917207833236187014440159606306976266165929067346268760476447589661447427788797600310056697132442666962079496631583371497498453475318904855032116502183693689488536424604992430154266134562183916714985367221835113029925750276482583664194507196858703082516488813679189809249239920150068875513621371455697429277433914187640752337311703086568461134071397406346389602353982855538544854425246401111521609430737577039251619827658880321779690313558888083778139959271031634026255288278502382553701298379226924036558607999885995858600962342640698968446553041005390652537777073017550808422591009831027121315467355854434365815056967433988587478245252785177406927190021232571628673246851125533748048134858299704253086447955363246985699847518429290798259538496500798613226471127784416802655611057413092119398356377778723629610124629587582861796725060633400524564064429780624170090044497456756650018726762594585588784781531092951294008448043041840310901712042846899932940402706409858882413925182380106379718470154269589209212305945415285401574150990296398808438363867148034609275876385092487332393624957542318119315090600040574267845067284825955504104375443641685604123314107237294406318416431517161199697735044454364001387385127765501049130354395292489597348753598759901633255778248974746745127864292305958528459021727167381993998306456669012943527005576223989264417490402136909829574753080187307953186499934486911549040654188534919763954477969328129867839014533975455871951706653419042069553641719236001743602389413160299283556201566787073920637896181275766591995378785184504328913119066353863687928371674537100989850489043263122521826338513978393958922963952293072710951558453264665718249539203941477468388384435394641252984792567867901467618749958101495702400037561966443228205107341944315490019801654009327825391936413105690840406355885738923818171783365222700349749648010872199278513285994707087768765244549985071842848157300577171090354472104159336579709231023567423458236218989409594960615909147623314461537890780167254095054247547259329555918835373625495872232266935736449971619077860568708725625232168172016610681777356712630937274200356696490965620839113373769317453973759987701989154790217624911144687864466768723784412811130601375864199347659009799677456180612398580975332820819343550271280095642588763962744057090723804540128949263745300563599937464743023972493920122890460515988023105508818874024664345058953156587304666161496241613651720477555040432400883704253568824447191756852673439226501486805673932563308250805349517883969441743749780290240596813152861909783663127658640404201359710491654112175223153599757700964926138345567973240549563901242536206785959006992588462583816865548756574308505790300325381482225016485142807590013732753971050170780823195972507475310667993289743063589403610226483036029446112666006403632146396220205558917672341093318151773461001775766661569513443532412908163973121029315646362711357598129266920943305451554757189975026446894985404894805511024416513345634983859319811942568394647571923049361757854475032125187707058627181676076161755816359087493723308817988075576138124483092656086997079090190715385551188322759355882164318796674115322198245013183800749062881657473301633477259190164801820475683331129171453340073095393253689189863709711861676756229314668159015538636913793388315590654999445430898732761013842870449980915599836307547233255391246184496914088990540494006726703968838076524529602822232276521696447610806718273740062750496262220495192898102383792678026540529867834246053207553139922253590024504277978214598554350099832082547916198108874262055767869455413240279076108431202331086189895451248020613212852129398795420624160057641378757765681016524232975904712859921693356359124491670051715580011126896202618920077253404595127750226758070281706977179515434768226068164901883233010817279603628347254391230700855559097382921632258038611868726211249735911902654715158151072467463382430611698114045731046879456963451010486650927958395793037104916770282366180223378894720755377206427979300056957931742686164032797314130376550201131709114867409492326970002604219137730362148870023797289251899320103730164948308056682908829180287798390153106891330279627857319923226021785502174356483903599373308990693265543769307168567479574392292050725969485493340603379145074852870157371972725364331505354985393794326877029338006255165035545763897075564329880807448262607884061984044020947326590890989589885619451096651766316816622979491683436463191390560509468952601385339059729502189500382353773639335223347952720157980031857071549456804279558962826744831711136868022700026255082516399761064151218289508747653306633075426478358003649380339674336265102741144598902646552029291270709486533015829882328621466182732735678360026923038989488693672630220028169972065375753852385932507491223045165837903958809603573916641707339459541318624915559615921473826379230127830926149595789198672763316627141122017329185334843180348602023843436183489078771892816718598247784886036921874661169179897938359542802302298659541039696733799638153445254947727768201705560919378838231050741196216033822358995806746364981972661582216726131592637041361667944022815482380487475440938787937860453251352854627737258118818310589704338166452399261744080044244525919088989045210249073066610343968515284622820095430607315585837422551470298447923608528476400081266930690617596315881835161561262910422528480231376262118732300798981756934839494548870125147496740384941855495062326272150592780742191340199543626194131110229393231564916204105429668852989118876606433045580227070845896744470324469391845563895205919615600950438785005714266397448758981933904424595128462758830529787333034030834660535493586338132641295780762732852211379868040653376953189872988922608524508438495172315396662090203430292391240421471797374240451957183357838924084536617587218346068670405087581511506630773809567159832503212111615867665777058853875106027413885294025714833951513003906764718464489208476463014825826640457155768985023414389207959119449435109091140749391381827690173068563346752615367297184878182499241584994174186283179055428034898763870246600719853104129427211535270961483493839794881841340970060299372029220718921377927871335351800745001635533524296992500837104933930398786828827472012965291617359512102718473410522430710744850923421034460654734457370742315312484816137631764947610967705315354139841921775930054138562656606995535481532380828235561978066569049224893569630768119069289752344153753910575532208045203028189175792504700683437640733962010562456153868441039842843594648942867454675180265270321334867891673995602391248900019204367613723210748164156650804926924390524415457384556540791276724487475523933308295714717209901640126870821216194501902429019537319186824969636005837803688644699727516655854525799674025127762518165386784224500301231990332315264351800070372133883928492225239119662469571143071611586777062186900687910670192680087144027225827093261816489209272853811652226861385292644856560807686439802910984335942331691563008075940980222557677515578951391239582823826448215421273053481882396961094677894144112890662833483615798879974031708045858675839270668173192346043788667438708201041193965344258499961148129832021735928572803153198125757799374407354170987015292202420177210321635537149943444865657672915688348199407705644139808700711732307720630337523898141516566138693598575675070561362071029725955259399047613662705949947094232171710133392300687721570744935277957206702871592398206059976344208600263778817420961121262878839956084905140820559435269368261280517802831774107173700300912227641325745203877443956781049559497972566508229004082233852407845528322082647020528344688513595013274270231022079511603456561208852119269023459356323285598385168694063185526863958000325967673719000137475496238758228466224552787335856443393570778500406484715878776067446803153669827963209536945305130123174980291441688584942958996491432132836559434838815030663759702337015172130110427441312286834787386055674048670100200556429116846589413441127511540073076192128071851046141997495223913734505373252661752954560669837685679498827027038356632157497233851092417855752719061912693941006810364811761577055484264025387936121180369940195440484751393796434640232322316838786286548353974870613341688567493616403517677054845085207047562192899773533796778309883564391521291932345044131227249065157955508656205888779618712689847267344015706380329552872063957599852419682391014935310082298066643043553182340900237700087096804776581471173288921695039668908898908622440314880440195637153715009939909243725456975196053988325111752369676821497919730856883792862112930505866242655259707986539329895501210320545494295427990907034202964353044684935575110275810335853026720305834209185981957094802088259562200285496811923242460075044524723341981320378393992439556758213656427855931581220340980706328872205573908308025007770743122373203123887838692128140439870786061764630773122037134962410430706321115257381142183078258391402349609109009098005000429022823327067422427187736468507248452966882697566736625519418120555966298594683833128329024913493755728704673892230889176494366181787094556068194925383810359541738628501180467005090502603353705666376454806134488747019780645794049433276887998192271534099438654297263963269100209011301316534270788452678515808346010352310875178041302353612239410411044914164272707427341587379588407432588705288744313715687299525381996961863085740168374334344060532185641205017525958930814131636388205307235226716412427600832123581343071187670807609132912345810298460900080412740391352302245214015644288449866690481076899897797234832771653487010524215214187347230562002295481688037346792383562397059947166180771455476429259755382310948740207807500665176345015327160557247067498644613063915684737989650745754247478806499189903439549048090357955922803892437824269454319032444967026845634206221824977657388065465111498620998079344404995487588395898776777551626481202466418894785732308216559173169843788307485860496324566148881716486099803651805943817557301660119127683878374264902883971422563976945405970819258954460643817095782217882966497468177722190839184734741109999992859176924969954949922973516654631746986214976308527895385926388494486073496922227440966706882106314316906673223561697053783407107304547530765049062232874169036579130129012183735244459640190322453817511800043855545317242168800322718361224711848934716685766276576948692868854325055910604570070822375199794331785179960908285020806979238595020968980879235681465560119398853117495302886190658827181025766914527652096723126812033587378619770250402756343927926078488651170282350919523366742292557467902126153025174541967156083510997797046762652010208650153623537590424954119512117131386997213362716056042094613425346758631042027263920618351113708940141128164429014389529686634252203147972204847471501799919706193894867176138918050466070114939277121306682100317213249488007552763383969288057218107849341069094505206002776216928561530376264469348641849217446078252132127470864175498490364919549738339750333497347805863772502159452417539334948580628448592539246153370143178122629458334284336101811457486961776300507906385780360361100955784625974391849181093578245190736391294708724343133934729818999801769882839011932273676191993531881566654582649326901417593473015846032312358535063556019769879033475511954426507626825265691018463497670475741623432843086034007152827971876478089253358950592360192223321096196937838615931438432033123608125373522941474566196837213135499811790679379812097561943714565480229858840908556195738827762579173570778653247144979783680688197204989756887450900744162837878487606272367512937547414525443359211478320768818010052000236432391878885932852326792658851538593341746468895346868599878905071193399655543370678162565741690146419324464928059348602927812331717461213058864072484536970681686844988168883955651923699139654076049753177170030291928836333481512368356964179803481140461003240851378228802253168661945362803370927198021595666881146909998539921195457104216063190624538606399909991363589362533097644252767725110919687955643276625855870994459065047098983157759038033966699781088817312474864812045081340271200019136698396269369595629770127956018253151521154977361633825168644062068799731494858233942233378932099157359472124428587593201114842930387898533561550636649191582211806363813737892534093796090166985348186966901623568818716617720829705955773880715451945854902527859133890248093059432675924898210827552692487171841478256178101259056051807563768295141581032688562098670379823400284452864357711041238916756517466011425989419246725978632142567507995892110174831409273871645550561181888007192959133894023096542575115779247040915422508986364955593140961862653862317733433193269967243080928851494402181980143667590238151549251015994528028543162429845552751399276913251536384070790739502168580727581579858522719234791480423378585223752972132526933104086830642810212998240652079235927006803006006132333025704058109702411034694070249740814026642906715546809647158032114069241436492921585909154208196914213451825192469610192684696281524302758412365244586593552593053174798634966230433262588419362550224019044779272600115802440013081296199299849437437986883655284109145261577418196593272846574279799268507666101142305978559373893261344742526957479819825168270839072854926302171981081904176601629532074617204364975362286271022631364352712117123789857572417925270064363249905024349339002507053127823518547342144418349685352697796502123017177553671585404217750062686159331367226247946027948559427100463923251582613312521976139117866076168276335273910468728752050840099518442134591249522026266261970684718440257821871345276937561052002213908083811646492510275758812941145938022922786125929436448219401825705022086474337918245732215151463024155582256094343203028272131853762097893610274561755025069136358728691232564482698885177497405068619322665194997337809118812081929176329754663933642485200354106315231512764447378240541595522350879062457745601152209250314758331734281440867310257355147611291584801608227780940376169724942248946056058987736109537119702802622340557380746870620366956113818683071676768955459524861371958773889061003482245103401359291993576701633341407966423658797443433871008631095791217371180651270714672185999697358293255073690885847269715841114742618031126824334378498214806064420612433817976344015730831482174888582793837888070051978957197291514083893598387455177981977540901126441457857060954978539390316244350041146030393094795706707739285921246896089921309663882344745128759302975880809050248162439200399087965632788252069426954231960209860444625816162072927539294886827628809351562703134866730975093430628823908205176280349086060528465746214362281276156687602803117290808433676414075944879086585609123056987007882775935251573194760172614465348016462180584824930955638825643028822234393944077449405528061339969626564603078648394945255504155751922826447243490386063503953412737351734986436204328571684526808461129288678804115934153789534949273641707901745577243615159204517208256927902176265980788157122400021042434767073287286054955951153964153823506928854774572250568082042653002970682033267438548834547681377552514120290173262019796475065229372065689856959585059267891158965196115200088051236443448192928465791634711786406346616564478808163830913525335609960500967269349863191071459012836923224001922882416328932582630561695780072341224834943764844327080403963434001962925473895758656932915039394200696398635479320919717957392698471405288979181921836681552137096489658260845082956781494536146223709284483499480503488047272930959953333537150491955701443590798089872970983196532727780176884797417088434162926691704980238147106333204025321227643427066019638980841013880164829053678527504541445101830270579235302298211323070754203383140674397571609154904460202670143101728723334912688304226374314270309254891869980096353500367939205082349171315835501357983676711263522857757684963950971315005546205017133772268940645313192450677877723213458113644239155336071453535068949091891087590456023454759152040968718518106123826428876942149718979246582713733690597085582108611904940537895715209101026410256266149014696694276929009779044428543294700419663559621128778514547776619558727722501610177495858119469418564767012757342298344143609542801368929360749311133967632089906513063127807475326149867441344708132493344677490294073693571125930368761443388239821920773212761291901480662329249651549824170745115510967551455921807598973351363395375346729357010400689958615435265156972644346339167028326225330914144967430920641415592803199404801466360700264851917048960461978736973457822499956721247965692238778682171200809116302540438517139891089577522339934336363644555395178078906857213897128612648247786972814983134990250600153011787149723157037405700642423200299536568481290563197911028131129030804731716261919345836556323674490400957748916995565098885726130688214567455123842209482511242476618839773111382860273841391500555213163680306776563178807591167202153918774811075059929418356933512898765599604338023195334592031288939339365113967337409784180683195791588623969304671166667236626804005982809968685183304983446652767197076277419827290036744206179165996457730016163879247134968386588839533932651819361376777401124255351217375317409767968461463541136800685828982399447232765543901764655510134811077945517910033657730000160896102250907195254877843684977603131193943838921835359904656375383601095873621662636989927251982891335207149884884629274329128574220291856245032724921325662299588984434877085977447874935227993189532172010235657243102720667875205135549863157063379880690246079605765288794469073918686899819358734366219148994111315738624851220190311630028421694061761434423528126295164189253328247700711260331828181940404064149717599949531986541347305662176924147287934072012565545866235336761101396220390233094302560303493794146019954168075725652197960946188820239767378361514787287830245757520397231220661368202499564575038050402961192004385797876058326654681227190694974483263647302534539742795660956874559122714145723446695801807122921261920945175701632381966057586425370484306197140171503514491978822468475209327767290809516799024349193444402874521820301173178595248394143122462875977161246270066859095160916627924868705215621638027904062516083293442789292553973965506868996937262031569447772628671690052028690088749405751224542598815323368192222336428813682067597238773019508550689349972121372432828584515914779791891362977748233702327112925195572724816074113130393542769891001239407748993442002478137840774942344077200336376145219900670735131617162555665269890833881950105481458261493511024859516513044575745277688545989745272301822262013276505623996017938033584662350758078062551488396936966573516389389100292818840000319316062116803840386120224959363245097496881155089383749635477444645838055980236900095346502851577500149812144804833624303420689085414690506577005864646304932878567764022468142263571304078250432414596003434897708966574893886885970264819470006889187139544635189536243335562119845413073069407961971388300847414054140048229604511020661255757393101396478317622929510936438907901365605220704923698115002740021868186002401009896993184806820206086357413195794636623358397558653178235122625745193641607143356758562097668694337917893703086447895352039503892936284831102990414822807247277934429274519359601723918980597070215459729942129196672938337943397383061119481843563378041730265781697768620235777856554920509124893418508114621936744235695677609338728051281111620121105390070498036617735522142620515705931114135132407885940789111669673836109995454605895355357111733966494629127196066556048177004011676283379547925018409129778960660865124538591340281331672917038742280906937538663099124741740513272497884174745134936639962499018636132395850942474531685917151996641942867715182038395519451536403193145763761755360799054744937284712236180456628231396727370375743821793249996696129768240063401380661676222976698826251044600312676109689421854871751477171889688724837877690476382387073327652576213700210605083998157691355385169209058771187328588997748252104043119006922096512225782419798302179571400240442550507030509735062739992051187759020316633475802924620374873118645990464116185976846029141803116272107573926900040424834558698482703656442814997081199685904236983803312627189229120603103654301062578512464423009762953774636290337856480918828223041132368612754134478898897415608885324866683332435511094306802236737939721686350516724900758081908377894186022954958655398020567198352370162413854886821461461510171999372552455599211209184224075706923575578786808964751661987404391580338409768498957696059133074858331367686361944007101922767186847650963435654031273483390633087715261719264089771363133029250076265257410259168629763284396073136029806600113874917608894081371226059177385170087183193344209001647316567981241152575920250295673889717144145125154418261067573375189784283105860392010647518142437074685173115241892847123840099153090502872797917213336740454096928421949878508286820471713928449629205493034968465385143690223262475739439165751361519204051228725210600041390125463083113368298555472022453149387355064697463973178901518950693430612854342577086019333064976291201007131569183813170692757099445704882111817595004508930595370389808125413760389270679868301733581344794532918915677941962007597548478961642043977180660590933695754065551532095588485108782398881182067998196947513958397614616897466462393391352476447957828626083504578241322387351018521467083882500079548753434091148777100189129323758499184799915975197629000603170523420717920942913423927731250745245240816684918299966174022405537565125152033435136617527747075525185996496236445794396416450346645608468528642204243095902285332599288472104805941787306671208472696545223655218300820721639176519089659174486015798625798582072115306532737237676974281333917585432987905614449513191165373631856658671740307461729604108104308991174673262579431419693384459253939455174722958661173243081855047933879832629074967099022594794877585410239030689662918069716757945629913566238537001774284077937681734311753532077964957746476233026198398760680681235141674560536290257941506288112140324555960075661146334579475053032280745747837784413152093705209924485585477212941747843356948964273506989708195511810543828328324755814164891093052779332556941575278427241559501127524795737602781496765167734828116053431630329666299615273632537539609967101809495774118498192325170210363437205075176526391893454049953284830338319183541265400422044331566336875409794987389535652085645939098434922139969768088838519955360151619501299620936584558283162945096194062794855463456818326941681357834024246653715046528341917196901661109904611919851338318957135863109342094104420261616457881216689040103593426139407908226917872880446187836814480849864111197573892346442131775124324780272689951297863722794775716582447441018318877313441359793186587268094681928376361011752026646618945754872345019946055622813011085509844049703702307062508122547398728171306822813764750340915444185733955519355943843754702596759617434334031362265329163277777809475618781777083218076363955715729670347515758326960668925602257314369714782400798838721637059659536644699723155794084632884504083997294611621578301850267783653541949300013272895925962593235429012505866431103186127504229989595377884619788397524138438852297730886142975985140819305428237862884033925682743448800488405795610162739902769258544868542142306725071797631088725432704471324459481860686362849041354285216200716153460806023923040682512279704922355611290693678391249176939710184687483254288404491896530571283860077074908904148263985539466194563505776503764708675497677522499278765276446276355535600300641420351280678684579231344684076656158326690076211681939944373004152079517310930448931459266043756881227068741549178414413706094522178929341656674003321223396298469780937443902072231561298644403416373244850243414359846342888925530959469820626685804864942024703631403999185082916656003795264800950971290298401423038054818054850805983292149888541737503962570838399520446479819188388820313561390106231847214780384078017144806971523227681593112325933581689394342855645002670036816068597436143161776897527524976891573572265717122253196331355874796586788478687348924384709157329877379887152491634077025629142552968708463946955957693849136577598901762041272316978976911764818530058586512170551486477007262871012124198395380485831481311119761275026670909566891022479859467446312870383001977814977643384758950476305613661634943972402328218396501862365923837187217388445723538323221462678344919628053022451875868758217208766147009467965567625326148711763497735535703112553810712333071347381413032821969354703518499188405514472583922500748621660536975636013133397709555085755533747999695502200897210051024902434279382720634249663045247051008189657822751394092683413950824849498595596786451868034230520558023018557665363895031208946377840513480750018296228791552518339771314977036274357360010878368016598605458920185942396603118457229511131230782312626542859536876500068702102282600940406825489837005156188833330962389679294815155957801537679450564497402911206036357046770351393867120435105857474465086863832597036077296449122927926378235331005401989566731082032113060674152792039188797108556809797326081542656256945422541801251297809109502937821012626936281713859033234605737855422938412786315525936952101668405760651466646471548744249529793208680138173693165722950363919634474311096973974718938422493712138658079849168960107705243319560003494985042205990071532431390660690909500228301073292889364873145422873563793683663987611908835321187791344071867932920962004036868046493354051479848401895396059097794589502600105389876092339623861084759826798065328729196985189605042046139864836251263530815095926264180582265206702058239929432604074386743942904498758090903698538039865066067306055499953176875967760125755605417579294335334565101841999951716438024912169521005224083793982230248147964506391476333158915345885967029688468162842721113128130090147571292214651856039291269454342007894358492831740596302368974066589452606860356293240094183232772628307190973006347830117114131281199753917893521227609001906297463959875213211439104493517386868370667227275754553524964334503714931320308303306473978045637754461618553042701346744469284327569076137302834873588397691257988943969691251931362182692328653609830930301454888792243975229814159718512894945764367544807177612403205897119164482378642328121313491885797252668927061490833268705899016327460156280807356834325131606479483811101549938953417333867564904860051683083214765387287398988630209613543147408452846109453547453329865285900328851962130185503244023513734325777972583623026053866425033244323282866488507271688592306653689643322477107519205120613358278858471737655380648459564446909593155479273348658093690588059698582860302766224527219713259516185484058481407011128789284149941880749136428008920138416094683122103609277293267854307912064933158958782543994789920962577207399450666398612269543248688169368016273084085842837393410493343990370578866350883162444325258351808556095463335013479727396252206018840815750744719326142757088481377682047110607583705495565593166056288739469879276648946861998310505519339035036443763304976677522998663380226288211850419868284814647210418687153503980493052676189537334591410223524460782817148804393848432735717601877691794172645404668161089534635706932180803367978993649827678934833742493983196268082025099947889286008801108105644677167386382495854187225377615890230144527902996250607192865136382468351493649874568998471229277620197661765564371672951739326819879667367576022765004916350940940998469709637335392696081871122483880919114080951478063851510639084463872104410254502047057406125633576522793926095703213604883471018659541734569800607782919884261398662254581681785322495463304760001069346449459748924318141372126045971309381921087675111987434553108308440380500741538018824600043800553114000399213508902707627438516819884657186670184843892605179627224847088946226598534175552949605227894183603101352708322821975799452626172860659920271982784333875075934552499600162710078623213279393203320579358105921328790283278935108029955837497010097767569923411867552718224449144786396769509969550634657435506474607743431836295038786547752362359224677288793122226760201344672316060081784171467237108190264207590373428805216855990364952808006433126998544970358608853368206745414194318891208071819074852786126415427431209465029097500994376034630454845639009692525744838308033033895480286473150144003266795981260081860969295592774797666749725557163485165900926959756650863479731879687032670905709068664837561590839883956023163734989842011374188265242898753508793678576249210511192367829797839017307400569166752279432728979688946266261352836899367656485882229003664306844024907420003913956065108776330885338569186446234191745849405470869432824407005339227957275620269747612567827856325797898336324659828549242909755784436930975779119746372553061608824614977724034515763444213963223117036578920498409474675561201246523715947063600277800369278234094011862520989448132199333937293139145042253669260083445215345374255251392501162539794073518014970791067196909750859076373889568366183051065650804326973360460279392220025278593714532348733741280708451689452030251994802032364138602249238396946392166871805960287815831572535835672833873888159537287295618775810582007716742145355751851111864321594350178747158741968537133911189442347614307687120454973860265945319972819026178185028347798482638465198944760301043920324484754335633435515872251658155379710628868489086632511308028413350419625953533289061917636101014232367012855724866484831166685663959836979090888413390605837126933792974926012473790763050143850024743600748947014505768303471252646123587096306947002829417198862559351151440949048157310880279362499525386607545354894666762645752179954314110222252400825057342630167996218629691196309270906491108852211507592059491302453733188605206431529646185282825819613822003512495937785366695857746363452060132946599916432537028862955307953057581252476429195892955092219110701821359792687215985442434838728789197962583479695302413961819348648342643268961263828588437311887135421359712622267145889761016900201383359430512318677528740361934527573911461986830927244819166104094948053488202149790045045148318191990321629966465646227390177485997178179117865223797646668790494137801100728723717323567121741117320947733216414921378547094595032974067258786210932565288490553504854471501440327357904259105987302829810206188726859340757902739197543427446068513310184793274435883089670647976760949382984335206317265366585210454521831942273810423954126911993034986438802299375475801706765913619648890612049564928422227502837310963855410996977499873866906002952842900292091095496290269817079807978892863043379287384462697493930811719917881821978281543885529394331157224279776050590164996919787725174166552389025464074947435508624876179396018016641017218233655572780361108195652105247069561576570808213710144044859705123239120636479280829348395095090119060505702417818815777707210943226945834830932318326886476054381118999789635005378373126202161335527591002571650281554028202327613413198017193152414496189044652226481410550774907338060590618290127110419781405282939220483526857677849988714214941774219778281725061203019174295462488122577182548060191403321048861404710245157279061927525825061436075352559638656052697095537589008318822865831303014747099874232687175785535918078873830135976754458737824659036950356123417426892281724769514102755440134666058679475491933266620601483925184534538464402278995590092198434029989654300170587077787925208287206152449691737583341709168874872107591536604250186505297218238063333530347149675098729780618030997165641889204486762317435375068595781881214836827918633681273363543549703104548134294001641108956292085304766252728668224744387817217355738643060808446764439004488843196865376817656841298775780411513450329496194586682051670579949429362387797097951543723046690916183493104360132434402688202421110407139556590970168791755798901860163351484137059600454185785455662997534793987555502177746395076055543814313761500428365361283009224888169673254082841799426066501519875908069196970572396232764663768444952747410275655495612513220637344423378511094914496363634400657151862633906018384936224395164554447006297023457900357279347395435293845307816498181016803323952621316505157282910487408934961553567379984537410880208311293277534410419778860229073824099622771776579721699271323406369751844454289232522307895909442653048239067341165335034258668970973715620762841231327866128289347456205104560982176335901322113844187110286517193167346628220797959527362161470914026546117383727549986354456909591579231960891254872707866073041913228667052307613828954648814760288991775625261291462443789632422446335123559529952733878628418440540882941665539233597798090147175832437689848468719070421009875169359993258404920705507617759727094845646438769421749147428823155849791119540946480442789006663654356226336555694422234975143040713951907871695967333268520069226198535481228995166752607970418598282899987786872608898651414313618097582732135383220180741681064647191210041341993623025494532939099391878920155955967149534138229148319101012295747668668786051006678066668598250726414496802871348560694862704922559063550648257176000091876965144815090701700384511323193926856776699663698548124470599807486072085878815598639510082094480451034478250156469947770771348371855463043451886640722150194422960500359621236877195837827107352543680414282235897845046211391043155643874682823766755795360140791468486837638187558688755534788235220443966345577347533429257160711540942270726368365747065415118438821752929580816650054003645412067590237343501228173388291500524056314393419407972189885898653361721938445921624556142553838962521829674822437591526027157811414508999497304907280245289356147300573670401010377077281592071788389530466119641034010934333895765884843776852767461139933342182838171542177469979642911807904133178744553506697949841842272818522775736925184881472915984031889610996255104277456075623939809094342561620302252617805224079626307428573846018996027123134071444765724867084001538283011778125016639236125782401406299183428001307839378784948573600010733931212752404534434617105237511003025720847433379999017231855661309830404922085751191604978617747770554087778956805904081266377733646199135292388650153438321553757377434019970107427615560260977963724242737812580408197046230770392928230030315080754967384940322053710507312223193733238202467086376363506082778549934855733135094452014794061322589303875586229396305123504296816002050355200338742921403750685553450950863045129632739244744169572663937106297707218671811137153479827538274909387777376101134908388191299390408773153969844254367920978513352810416304988916522652078242768727160730899423655195590009632936974570756518530236285389595595669838060418734612779506111128206951837361992271788017812987610989413719806184740980243126444217499961387328829892325997448892948802688385180522729427180933323610421443699895716891218602324878534030300123910747793603153561467948443048444864349691594105018632879718509599562612830124717461114840332140459302814423197203640589688274586409834240175180141153188568671807143434615918616306475905100001324291897546497263295330394630505792585711721628518281467053214417237508006550066447717566238859668515035932900567171514563638711435486086641680349406161890559027992695103841974948358483409124738206522745530401806428272158333542971222542069854607087780272595823894627721259652482203887183837176971687887156720712917568521619538297115582374097825834542884062398013162784951980350387721646386304159987607564522959480654426581657083389874358875587236307075566200110853633555640441696877288551095072625130145671567762603987509159607944454500515485724876950447939165081964207112287985277701589502621081879348936051927658256486083156048032552487542173859019001035336366055680529923335815041529559782484984269794394374115017120611356367535400796351119818851734951219186966038280114063261350216105433403863080997323703327558286981981078807265386178307831234559957433588826841800591551222900924733382230217813954993819380125169755781610984490915682155274929917398919855847190939348271871760857898382187697597475992964675213889681119448355456298622883710688380250745288808461221829814023600967561576059166686442070076939864191783309235410075570035545645518179417072275922221527137685375318157034036837205991570008461330391892865875079977817744371563512014304849719200994912448938763818363920747433626965300049343499050770639023359006474318425348548856357943180718196541891385196629707714325811145347453575820614846644945869151981607290552656783576945994656237768041447049768296297355777932911696618059897322199842156998917188302315795271956065157640661852432921410259997489688658630512297478180283791630264954949636030957843281879718150155995870900530518830692588560200990910174494127328260112411427159245353875028251634260375702176685002760455570596434697468759326862874966289202563652641540149998453742687659140362442439430902245434310168354570811233294909340113349767424773210650657887630527726080011731444347070710345048901736059932346728816256974165585210445730664413073151726551445698581113174677205138301300353900932931219885492827356629290216907491115061252343175386429050668288152059925411041205471663239966090599812953786149252404942784798607112890790001800108513452821079464654188899031298444694581768166646432948351193966529120348647986079991856773298316365136252192203331907199492605447093506241977206654506406628872842421577700455663071886712928334569093958644577032617421473378727113642384621637509183319152481168170333500398988199545807676703846670576176804876027390856884895232705837508595378231069556612610512734445627914896070370791052911745124892298067090811470532796476153981030101905331427532166768881036389493098675593913834673855322921036703113287286554500634948557916842563251748831965917470210966237318007452423523056384119085825546418198182816491664556145859940974595940547827734944926830799383328175578351651993843675190600150781728899588186089242007075676830159531002946811056712886462468862382368114231104105636393256012937795353438477581162560850241833765657801994136632838111654380911787328697638175768443576341397995145018951594480523792420356639020632510321292133098428708615909716765777652792541439572392361004195453461388319798964433566400179718401300729153323606192171847870449141154411993573080844317263738200405788919309659718019061694943180240424116390362570134745540307716482200395462861034565924574550012149425906970427155851694161216695836380283815726860589802179121597551760152798746672386554990350958657613087626645305865490111372487762315519477652259023747224653557986493475774470787197995387927720667575716202443049292993208464992310483213987220447491944078585031592329118403789137274697255948752689645148914246677692971636970320951593507933321299064274470460813846354386330794156524821626169681053240530958123881519448510830726867048251231363403155310964532088682426583101561929649237716389729670937333179430943439235851455871669992835889248528321146087343824673859905450723021691400717129104611498577487048016881935215056962165398671906123459494244948555735764900064251517477458357888706823912285222077392372396205568572840020726901394171046193467254418362772886845658913284478222894109425524500677051600343188414549720223639265038708500595089290231906191741707254196591428904494714808353384486722151331519553610536672835465579449089575805642087108863473525706981592617049173875691522497292724093622997664055732116506973258923260532225294876133235779872852840752540822916410879361211583072034469666738538381536088421806908859490876170177695092987976079586101227542493836245738371173357745873531157069192696829377134776092334739826125192101142289109290998390554475824336811964157336958866971991399244473315960729901220993300528391329690785839537401081206997435248030280397612057676577780809457738806751636201256398402663924066682051588227248548759656434186824806738392174332561026202479679153863511526173837920706183705313088765088637822003329358062822337007697895044767220650851068868169234317041024874841856966435498237135940594298688232572375795296409453017274786067754229029661907151631738753314394490055684418007215400740159975010723544451966355424437316574798680113993101482886784748971265386865895233112766147377598457911609094788265349924489581969401411731477533150350621300994044412649888294660181058431122257383069516688714714163322849439727008556086626255298125290831551916695631273677922111622476969933937519633815984944010614678932215135217337107646386864501616731515581438395797733247460828962977273993300741727807135728974190592530143279417974827833205649301447115025374630336989698742260960916437767028498930046056768902209488092724054896360360795081264356383439803885648033454612632605556252272385679698280154613677682129073263466158498278073403780598213395956651947215930382842226322504424708508154399720080286023599618730339466907855816435953634269332020242087664214180522961259434291804722907583386966360767082487032883312261048221889531789447707047989799283108959278647394508019577014980552193233617652235161398187467561242244111498469850709737709934441054031136026500614125615310648084058992055562132707486484678052143700052788314368274735194791840586196798711436753564753667297165318786237192259311668108361931015518488331112939359234470320453018023026866307725707120094326191506750813825625202959940468373369140550816499924947872692146560437316685112204902292353175263040527239998829773306319990202086250859465255019097858206867415688150641401481804959613332103380433696189200337007723218335681149593507169989716719772670853924022122903464444337321197792215660346738313642235352233906500846247696951245945696161840727926279408812454114006933686753192708311845569556064749043523140685603133568622591172991290660155622490450705948218867164932695784416451558929129931289058657563136676974654041073805816574359590662012496140842180681434474821584367191349405809297671742173406419223942662783645088018173296938314486645149481863714284968520720916106499602156821799861202469728976218440992319850196711278495387486400735103515157238013581499514164336116260401784597008517518518378395576560752055114071848479276637239462861772951023773462538291514494026773998599125177854620973031855417527960050746607244295933668289296274178939133980047742282886628297481086136188595563994597589070590263257566986614413795322128098337816004631941080041769126213297014735009377830350870443329484504852212849661702742924105403785103623287060220335086691678085217220443784482098932077973864911120729998594575593490543321092394697883748776521397774012479842569115445842362987425662421566054483181317078935193046589909026562135105646526593909810701930393323010963047429634533495587999380275927006534350419816094815796670227514436818459219847734073458574152079104458563856400691528669241998467609957392955883125829978259553604643081992872319917981292954019406887321708306318070629077546051890159579053485903435490674722573820680590479167937219306981725527987140389245467364287317854421925598293346603324478061906935897848528105248714620313253105243961960999354200582902162808631715445144825104140794561924619221675392044708685709615657025365062804147560946244889823428383762648604859007609129173869304087316274805190520836709392872241925424134667389886383168249098609027004589804995711300049760344026348108572698511526279440077885892487473929206332772081497571955891064810352078997735871748432702039886693986260554725569008338024425785066672914623399442858370374825170296253065983770964656440969959337396374710685030180411533435635411614242671579357740037219142587738479280274436400298335101414677233235970385753861086860745629988461584179514545379180730273522549568072374199556333322053292889108107580101733051297034476432375520095684113912174561990153708220088901762555913671684704266622244266436348670700448384179469219169677219233886665947530707169562744342908747699076250605070866272966198894738277739420734304439529306255127716210979749997256764113041414448666550537498788178504548813743604668839889498698337497245513905524425512285080919750091312531438849155508642977705716185713042024907918103086488623453420370932423928745356930852895288481675789910836849634281448310663580010508564740486620421609671377184634071424559457076568620947829016633226437216598218052496269049915304201948334276732479837170200295212859325168502409974411282072766406440916603392376716143244022136820379873664468158345216457669258667198756706013092864281856702110229310760833888374368339126163819942007597262307721218636925008993483725464597434032045361160122820930063431015230234775010150886642578989320173562305853077583208421796046167249989758294814057536836081265112311061973976369511571398129978837572549906884728481671891675934428796962986309329577920675884953516700443472929708736678475036129203654925493397159545942731269503493644899450328525277036088551988795942946615851132678906915724149785251149186448316602946132219555659259524543229053116032915770808867418617314000059190166825298664730264282820452529738697981594013335079090162440461177594943721647144504024344708952740384046403569189622109261024030280200866506658833423584135131332707104819687976500354017653433752646158189750805610886210371536906116998639392255998741819839287136641003421691160495638695463149288651591041351675393327309738357666061442148098227039819332607987623124710836101104353556919439386325523229635914808770299548990859710905277369408008954292242214074017163447240582174750100768438485806511923319423274125222222936438894781283391131919188397725632148067887485577838667298964876263448967053955919129585111316010332777293625679339197979418188671104625364470004611823346807213739746470633662360985911779335297177486797817843296643040524922541610984963020198859669080361328578107961979451763857573721555014385075700180072131914118702167522601809710982862530500945049317687675711636638060873397652062833424030475994453339348367757728995059741764762134548345042587074689325113270103445471260177564755773211203757582279926841763536462655659283470811033974709123574701734357060856187769409442320118381716255227872002600505315795333867488169891374124984422659980646257291685917965969256662648991227683047747120137055860128128624532630903990414105380066035031291951330613231098771857630083158755984723278731200447937889514840401146531145866531871724840056406828313704833012904715654086142214064148730067956123882201701869692299903622052586592317128140912931326418557357738935340684080261228404609502451747905671594551879590323161618394611457054059388215059251468648610231438077581892600001094181224081955112452085518701428827420096975716726761258854518545996075288762428335965624724854911389697544378012834743162752358855661923101592580823337211788500290160268491445965922824580924063781306037879718502759391960785789696956918861498504610472905234682673340509144631332906890835227676189743713820566172760446059860355743143384010699809499288865126224824262250105272259253435319854866424130513511525022304619657595084494488296394401096660386784081575010975569298337648737862623996702630088378935482687121622388970468898815074668009475743855635364230912926768788870738887547589313570832175880999978793874299653142100818805267014762236401070546980429912786794247677822959114799087262958827255793360449496424500929774818399963629671624357876467370977096713287904264913718126183720862100131011132575549473310258727239033861590876857816147385588428455675074456902513985113295323062365647718238957298624197891384834253474227937953715515120978331397440368973269419594713377798273405564403970161277712159935240699378746472449655347942750474749670180401057960634251465354911709096037074589186597333174284796778815944260548065696110105981969148843676415220145846191229947477085610325721621613100708543098552278951797344450245301746545954274704345638621150316604036195445465720582240352476175531640986278606847781521335885267060919100441528656870241200589868801974320413584661458844698039482923269973589911266494920620245711857682899680829553302282408463722641850721547678112337291494633642588642048443550548816281948530482278812247761358391553169199136542002130839237351029648668787608320348680442669201422682122875979471369828849056432270947073585801308577219539319660464316169835800839973199644167204654848799795762560852764290324619102872623559447748509609662028707431491969460569040376330157375039034934431756374548330974829036227818674585707450492367259965929500692138950633174110459984632251201370469578909744306606810089940382279533080879047881526278869922573534319823994518517914450147875435187391119095299681862069353106635185693398887242082878101317060384501587524563106357869079414971529980317409779175113900258335975195327441219222738948272880479776261582986602486742735600855808999823222544968821441874036463340727644302168583157055481385109249703602625398835751138151369549682358844816546879244323725773258459828780114633291354566040301377049537408053478712634703703345696453070442887666845950596487783417130317813489800006083128004502714023322939354923543540031037255448283943458115067302486514001001393303859177698623394081430417520651343907114559062185413660599236734060366036014110005423614137763244248144109647412098132686544726646960410990391945303096959168037563127852102484379292914518753262585641905071924697981884255716677536768683992246359591008352159821319345415911155555389350760261270033731555148575348627546882812973359852485617534193376626783274110951342122294952612330461397230436846959881409906276509437164323274110008118917802738280836564920559418919847940730895874431939016475041897876019673575603668490575866796363794333219022592583252736708920703059406894502185725752494263332876711222496888425920681190074159669869518331284551232697402619799642059574281244780037827846407711617507253889205753336910720678361940576216486526545606229244252949143599858791387416912274575221356543868416463639137448940467205025360390445199389966643269878572085011827787176078201670600069311752795387731194399858627235504321162068362771138016042600289787545291271227913833756048008845576784341397286494727823745791718598817634042966964331181431899424180315293819607827586268673614475234104601282778663938284544344049493263601465533303364352710802376257081730075740965576968028805897238543992094289347712895929900110947459013975390695895094823034437480689194015966543207510749641022792123368787045465748512184408669205620207245483488723531615956227811712776610067038940734618819228140880306531688849180586567784494798326750136362053023377260519074658745463498282689912536413427395228611831341080246672721520290362319642609099064010812201802840299136570553338614248973471834798793886242793099277914362259656928393301980906627950295100184673643304791333945890147843868607630365234372610092151526659905277933899875561609141166031239547634095821958996556618257805755043085879104808720504016701795347943512676004859610067209111548502553548591481446455394018867391976409496829737033690384665960569552199416833750466997514118798338560619468266193858656615643634779776403391261944416596405793548016220011313108590907487847937407059113539611420864400783199980160874455573256423318382825454540599789119164913892648134157651165852395062669388458734079576067613242866041127723126827205761106762616524169402254294829130963928664207054025737750895952130722872653937936948886012123301276711605667301534471219113470850127690071468562139276578704237126518964875945158381272006530314873078952181529698810192951775247717224018402951803257650736260754415794552046535193723685947590586456661790022939262748722517517139968022043438850542231917515018905306052769903143553800002148432751458172525613104827104729742167957741299374329266133925540880279525762751720617433029920908268454296541590412129344090384272585718292296730134365813635641025166109414298495289652640299095827158424850265173378321259596831000166789630707611152895057971100095028212977327990120435324773486855367861635697731840596062664997359221137447328483639687004365894957604718634471258338060224456834588041406225680413525129566778637959679158203620587262281993089061378637265653606539428054879138696865236068513174435142982459664407348140227659111057363442310405134038169541321571602947127948570428743120189036342424763884789457565163322873682201527847006878421837347272199240960131981498608881626612848427394716152312465703738051343716728116596651970975132193996953402204664180832205902833390448604023756546088951977832151928670069040604061417994420783265688364113569251475202078741871897495459742008021592420272159168962632210403454733650516873952758170681970093192205094389342192148820206988617396549549150846749041914321513250625532607096669955924760525273198830148379738241410743364081853060757586379804158718591627646102653550423937693485449148135453589017970479670886611770927055893803878234636169119987815526493354371641578678020174645419320243759827920257557772713824539262301608869928470089637209870955426143821133530483667314920846510891527970894228507338565957863535097173714282089243639132530501605231123087451752923529154723032661397269972220772442899611917213235084745862295740023208941173108549313343508719948507689174645022912362099962668682002610389202594397614320350228703964021767452518759835101519744952512700151636884604542474393026265865500449604270776696542059832523498175143660334044228405084340905968416433488450804606053785818887519369275458480577511527192713637672684525208325074285882304507703379880972656891652694259378101044729185662829480676222430569284642913242772739831465359194005031979297590305564265765826500326538825014055775346236877314486903816903737629503713390803779182256339867063060300068670847550746386557272648464699523410324027555712225702081376622118569248986890177920574066050156629225574883432081477527990259888088340298772952036102975627931712956279296731771298523798461169542897600334076806426130902880978487177045081244727945640116571042049900205326996056903101385172995245614446429989819565617750433905450256329974286797920433140428967285990464201243923579072657309263098269560548710646204693725797533792671367868669653223278117159017555769214849102147574283351754666619720701504929129512993414786437265856471650579333406263885548089774483198992750106550957807598551626493640912986961693313509192695043271421529959776236671124413936749830522583701155452707105302872818485961735832614371195421355190312123566439079446682440284372119052480255728310674629329626446185881536005096083138470259447423769214279894938079274891760318043547428710688419200326255015760649011403798284444088125452658978432163850116453365676007002598481582856387958953305872545276561347806316158447646147048669851828801401389389854993183739386982320558932006351004270606114381623404355447545121110464088931470266697769412388717917187107392658485834184576888044327050047065150656070777260659168504484625515331297819403249142327870171726279329593177307080198753383589632697622359441605008062385993737957751549234628897124818322060801521121868321755671649239778058627833414184739118578108141250531110298075951625040720227549930841759371482554222351744295843636709532518802039231096094751114445034752345937070517644832717843303850389812887667100095043284561026205195409882237453171654715279759254592803099586863642265405948498611809336969903324230448260829969573455633512200623910911518910778694264853129614379441022214564417536129817766136665819657366060371381531434325611631655417018388120835598777851926082502583308068518195711817517182342162699882851743827070550360709200200244106997257223725298484870400811859329212983559880639899611521643602617719246754720126995859490725496134211769945892816552900517052403101931730938843922988497514901819251658321024231118957381004157911905713048595590309026269596468272615727745362792863020349309006855705739429240866213442307806675792542515935618613540846864135221086689889861757524086055859585501666749269817211995743851575804621595390501384418043846124877058913355514814793522147625312149164742790989365595835115498352495251395682641555526863563034006772582499169870621145870099201585978893052038217285830584983586588707974279812493148387091752167356977068824577426599191924715429592731452078874937129265542296799492130928481744918909737072158421979337457325952877618214391716551604466288207248760977433663724493976917258196947842059513551454387590178095504827563352926692087423177697974571660726454878870717126319703683035155830207798515658087991901591220916655504251072125339171989356387235607106258796393767726926719927103727896455786086604227099143434290148723437584041299210452628934896224240549422321429026920631123597158309089199746395866074847198047310093603304890233375260087565509547987043577418949720092657273589351951886631212501336239786593738567268755674367947764176159321406779965498335552587357073118844521627499670159689384399994586173699670383601106952355250936727955585933559521407793706584415572123709233717858169775459928852193847882511203445291805405304485513982418239163447772581356681101202356550837800974017616406052381807455723751317026684362004719462888826656877421374542097909172071505708606176595296021990401741062760275085628732888510854047636012726046997834727094063204169662981981915579321342479737547350640900667571678850159797294426406400436888595193091238915379287389485202822493269584873596720000455153855814555230098428176763154910637605936368416867281174077075376538209501477347411024304048581878300503357773876034707717061784859513758494726969854643946313434902566918198863999529877498275525777019101617336307872061896199577383824363301335068670516491472799270915605108448976353642690842894482381646242574975570555670593959484747254965401428765713476604305227865593579934971921646159864020672846163569543343256650756676213376439426957768312501955808526840428472075500428107513569806800717049159522302840168972052525486932746971171371298323521044251289415137048423331611399519052824465681034634683762427790855130538303984073799771596932871595081183498141932420292154823992520517156515682271760725365465135731578928749866284783607263815827020874831972762856628453454166027705916187319282996513124558638424026148755645878567185698994762430859209146721865300966121556285173669115204987920513168867922346163248594829826683821246063490184105242567283447961365540592273631576733454736879309058417589893061347723342355110492065293683937468274342706885751692961702051716872022921078273437403618120412812968076568958183612958484760219229168718136354491152231208015113807144934352164851752931678513182217785820346726054677178427369685972387545627745257132055678168027780814361954616168223000666094427622888715683802848918636019053572659980001829207637764916342525833601458744356149196717228116265206057495247927954130108328233879668488041372455494461863725658952001758621525731140811826432047798067134946713148193261606197457395357318671552472873444538609091051531464047958614444099071332514103344356885279388503992114845473637412626217181991475667980799343609970501749766919854862598455577120480563537391471708324536961203976704351281399899804099235955605448894333962912784519225523075207643288290729544057624752569348305447623668721517639882374427099743004699974250488047924718399663429934987662958945439958994723701158997753084995809739449442518049059908903724380366991460323903427296237394040688711332319539101944988434657442805739503193041765080589879977938291188559736232223485411040574323969526238415107031071478969878973104012117503994009082556442883238266631299499396826892478596424709221648294660547437849786554594638223691182141841595085775909558512865121245295928362981023949886628825930421207226196944580114167764863742840821530437982865520302096549280160220163232932791435619815985206353783593422006753707871440745439481808570299475779647706422369927283668514095998529461835689817503946580809780859048775534792824797710972991872681523828062530025615796867080040290986233813274511383282543810120206211749226810324048191820411761357429147734204361806015404279617291196798545613567007020280303986746681384263987154366330418865564052715726885338834631442805279351125494613913858402474217154869450036022713732037234650799121146124306033820497179531907990458337952603171925045225718491990749322261732831037917703309226993805675341389355614122019307084243281404221946735988229059954220743566985111057160604347407367987108312929547636620160546551899149027473671525808499225958977394407807411096495700591824120401651303864806440235834498396758375955665787351239233176308164390631442561886578697589152892667892313201729495201456994797168595799649511395433034971551284416338880911501877217874237724939418036499719121500506901104811922730988555362118917703454037143427782716628170065270196990184732146387412979472687814540532858120773633347270279548798375229063800468470615879087645797765967769096849848212187533863232610910287427561126609924193724481918282470749048858420072617204618780674654722298311540198273068041733658784514442009358516095361000008068137850710872692577646372735651007742943495668687031262404785170246961623656241442434548911191283852411012760271261257943328080142566633409698077293135373920004767260339954470468306223282407495870584598400166071364650283972219277388106471429353939310500768650497857034738534491784807715856849943703907300302229493429776375253134634482947475667869856793785264350667053169099102775384033653935707545047824778219743950711175420283439784641272097187770630127079116190460580998791193597495260732574028026168285479427176978152327093797467503051957089859360521459459068043609692594257270749227023973971897098591825015658515232628951762600267342398764139994288694789912822244480746681855791177459774831352324385880457257993337676146631136872983435718611601239744413425564993511859901008629425204030055796567231206995170052901345968814536868596522198348400134289305363182642320229853003705973225783341641013466615190260218569945027107866346591625250525494955512527381667816963638567134581261376333116697899839673802243467637236750055216303217248537875544150993305631587762870452873437519233984620799769801839768986777129294844686997427721108657684909791669034998883871349087147772690132746011741094765382381035323634270506298328676242125761690791632222834974923575768934988788180592786611162235887669625764620906755250213011508445331262240096584815574616095999673087476242545166277656919619197885992682075885244690588045479742284057033269459391524635982844688501692683443242765721246607397189930743119887664042283381168723927278974623313939463635138190482476639251566910624821338064949717645253549265699644537361890354061048861806658291069504946967884753949294206418909377085628852442055233849410128485873262719196007830570396701539347288677977379813923747072999915440772707047274913418714301115052256986620118750759907901439563759068906960531269943306026078762034969845694578492457913470354463675684059200488498309832519931601847264378132053690652586169024793680571731805664251782901781324102800935734127432251739882151715417122033713620768734580653513306559071919087247768096061354544632945087857169225952886695189303209874334134254194298947993438930569375539242219502551627063894823553570619468458258375627783803840491798631597413683032942148181262252080236150574657932656251203677311188039310454618297294832276747538163528871247835510484266747819871284570329635315448092919446361723582390290915230829481491391431623949345909574635627323997689748984601616488906776233839273857210463114541061444157972412034074740602607829667785262605045602852682050007676066579977896498343907249237131191292541141362965951969584158735631275611742964118342868731047064423397843446588944658126359723709948485756458523842302992226320647317012738762004140487478133872951879770592198934683486229704179651871184852396851127914686136391324014151803990624036057107666915317274514350953965998926940793661079550715354367373517120364549613793518690150324557435733325170760412181226245122984032008209756651794195557687708128293740217014798078174303552604207645832844650117738797622119514796068234993558732013457720635015256408985912913932941152661880436977497460317682207138546050326357065987626811562030526317485175383011428016695701947545759004897424246971171379458180321400568251941007486573179654388247492093750303165895813232941537680801695426639338271999099119921567510833933830694451241699558738988771314689344724450791148252021412087060874369012099148821350618149640924872514812185733270825859589779626670735748706800315431252942831226784495504108160164600737205757870742313938826481541350221167820579894616791383155178013789572478022469814657380353575312937029149135318038930531163730925539077517417140990037846155715701977770561681161015917605069911661718606715798905198093130449821367990520953262764243606406753471428766395762663406242787358474053053297700904781914936039924082792774537631812305261459854537764460404404451400236822383356359581478445764887605606998215314117778435288421589474468127350064630773583692668002743736264044890321658740607302732775836894372611168178392139092391751878471562514178707460160472273256890744338784903679332142020342042473387178378480617057639488911770835249114630258028424893044011945589380986942230739438362296601857360370787172525833487466310010598078412662880541448643192317817555642682011058038515019395470239160091694089907866598797980260693439402304463552409445810556890002281401518584970345287723605165307055200256886197149007528941670108442347507427151131973939719420724589916050475801266985255600831495498517700414014428743067378765325345982721527250270121340631031401435287172450473905728763748522760337624890590327485579677788614852319267254663029416002504247672043412406084863225832123446841855527096382665477722353021677999998001851567778382062024344963735608423710804045659657060389438481625769505808684075029606482231419955813977560214086211379391080836458978746305177701520662060331021840162267135420924935185865275396209082090666091884637182684541979782448841378460917097087678136771286710884803439534031222986130063446329743495578573632779181117147392893620724065942492697594226961355473677384685094934462634551900280654517829327267044303851998248526954210508435457096063550571171289761484132973954797888336253168007857362733299583894038634891093534948310876259497165274333279319439907575573631267374780837100942343669868957039642240275506706164404579667574198255172840992183812366529896891048919571444335763363869324506194109045201760323444400520120234506421487492010724027766360039541375832807198702164848325471740746600441239485440788863572490294376379867645542049265291342525191786896372456824760732565904265605199581901242289755891596442890673241673836619072930859152532840887649449309823003428417146448097865121894990123285943415725765292015000201934865527045750958852556902905141373216257071538375527729851860462830568386139333515440671046237641714961365074705393157994707227274297150401587578316027958468849187021564772213513132642396859842746277854714554137215833002706835137542379991135553566904703747179727499354771151349191781417581939796963716478760327056439336848147999531222815800732865085240690373720036859243550248037569166680158349952297061013253970902744214815876292222757807535065788706226899333561911663688371969663630178471991936663496540638089255692177099843321995660634000095224341843041815023331435131583403139832794324723585776006371043100853031394404194273690637225479219350900592756558844907906654787399028942942020909656433790589324239901248837986765386159030296037482975243572278348937482739904445102020388394276506925803174854864631795415364521588820373991684698020592311308454292937319520705421317747788942116101140694610067151733172828585152955224617770566992873008470841914586259201975638297051473805936091715115545688315373718670772014290660152282900489515929352533842335929530727557758609602167506160838117135686664732509033486494230261760571733057939267643133823313434214934143491869587653537362240409236055722084682357223177111918492996072603825125754384784913499716164490792243680589706575957959330211200644863761894289498246156046945800347550893813159461547125745559101012130642472184401469451964543118222809627066745866646901296557819142425062785958108717907410190684152608764264239094677572345654064738251692366103936217951571753237730084415798596937692394854855140586478172088386545894803954033188855302974241485000125932520038190050935552861808605317502452877697734441515302263279425957081501968451431859359903052944389975651386933128970744105075331124684929023028443720329666053244490321000422633465415664349944378856039505159806553539045605705868049523036547355693159574546566739590230507772941644764954795045260576627980871489253799711821672079044490132314490504070398162593978266225848300891454084680596179507126031848191901546758062018153963215219056218876821010493044250157060756766996378738364573566142641994854082464892554063312610612950054749830812802435886016773309726172556699455396771356674145192622053399221564114134038897565040495410628585966943056420566001238190185521761673676557074537694841309153432071044504974528211961705331792308851250117788332290701644561661696398024583599112631326953291233295033172397894950922316468757487878512251106232348031670273117277519851327511224352676773225718337742151053654022771224527022881896491567489687827668884639133033943046105284228267687696495541935490346905130838829820029785970260374924142630985650201194545303460162208341932706237039658158853695487698816042527413696913940949204302448198439341346085184408519229936429803657274987395197719813841754695639766033474700395052520452900454316188908261033738006731133681518067328602961241014292423366117560887579384716097883403471864152922489910644706859690664511663936898260085564230389879088368644806898281186656453659383528979908566449391390735916344480686591314977450989545354674736610165505143175661135433567589292052824839445100888547250903826126798503745284041606963615381994306858375895169762976653596901597016409774413823596081388499439264379081554161992416055040430304393914494028132996134672932574557715176481717442323942927585017176274729596442124293781216260283209105455430645386780241713002578559792993785200451478950833273771099969885104779183085223500979052527704621782259239170578731711391919606452765678609722413464839981017932526098156030183075841615904474793510516343061512621067727385667355853542857728597573303872820884399547197676666991877484053553864375326906807217423758475129236923072567320568255746927234254656763554478310349045909900855634148027048063458041365349497511066749317451077558197191207249007564678728437817737625813462735321269357694233096190535031859798088143010590765417013455069844664039729875408632666893415490855820621377222200172058634707976557910152104591539838775335931584620470975270774611017069492076049283255054095720080148137621099445147482426746641587743806625771781741357327920097730406059569632031377607220245382940761635419194979703979463462435674034136517337727934712841580401467084468228311095533491878337135414232376610260021118318287664084025838112049883406297729896088359217087151805090976338253695347055394964721620583386501415821095794226415566847197979661023857720360076330856428287493737486481765033457908296840102735470582880024002224905339426087832542461761555663603654185868936895136574303226881522829343637716624090254935541154372319026786547524883348347593514227932589565240824033846720509591604561869344204127280876571379056572806207406193649429195504478648796125965605103244982270377895121769037678704524693750076028160954756902104014618298612988561536433669790088526681397948329762582114539179001915430580726178897510256617774132261661837776402448549314704465127971504134746426646255886081635666237183500848043155984097160670596001875750392171520698597583806571319873483384087028846553911887516255697536412174666931247263619173352865543691191223949274526030559993827770879335738265799857435497431395800293527912918777561761039707444129247822317778142955888638982143931349084695313600839603342414660265337493482074918601362771198200542445946710684121258693018027949965707527882320739924641319350006526513524744876252333775994905113193238428643984850404406140650734443626704797772748073265864703083535720183093074243609590691849462734663397658083936842935068315192796027479592165564221179703291170049202758281640829987962737525535015817436803512318809756104649834859431890545933172159124365925494126055669936080247904916599424320335337424834918589923464141917592787479014796114850711259734988013756451670592080667588823290522348214295480231109957619045140579962376528142794566828420582151102235959402281956172965803376651348723431440748308573145432824279358032305280768586307613131860542235085475520146517660145203847535920461850111437653306552392660605443173666618734447048488482175512150819733537243226708611305948951068605830740964279658700946462404004562597233278929685992608811994040158503788280619516291401227564037741390047361097494932506901366262864543019254174915604218276046435405842890154324947822805356645494656237938172558802010364225873711510435260746127439004759342437910524196694948696041642886235567993508494680621336492091750191227132819940297813644134890213640141837472294353924445307167565254497015556665019945291261668095507452977873679281618628994335628558524884366763724340408009348651971933396238482149240473621150205748245413971016502520578682160748161977065753695567819858988673541104912832545089333754185636645299783424899332531617549489251326812832341183693772611918385124678517600897292393304819834849282405873279999779525064925534070398159576058114871148437103621615793830841971994682469461783494886020450156869320837618664027522112946402597843714641784022959779647781153164576370133731551895133604659262394911814061561594229573656122993989860007418552732217830545417116848222345757522040531404089912447948777997809356254589304149605399660918997882054585155656471388034122621466101505391079216833508523824350040118988508273474266020549982341133403768393832039891665953496439086351176298423205225891824475397697242542553089585131924342630139143977700568546976920483905939197717451227217356862390476785419529509534011483096278917985591138429079686321162578371653611867515404095617413614301815471462721861088365941311054122017203197092778633669391650502820299649539883136746793022542383335632334121137608466018613015118451942004193893467509567098236500793096047501663234446043264573943504637745718212008480625217107453304156933360087326747400393331947897372210443162367960755285083251724884498657098214759620541515797337909006651958545575464564821230017042724168319082965259010684320600800105635467521814367567384354348695719343573479716747731907297312020626449343836535047375636966929615025599240810533896011494633220934443589153126094457362435792463527845280391088761809747005129664096027170440821384858083816119995856334130907488099898227905841372473696251946275924938432729603084561058345616403883211383491257813259062814677385940195398562703430316227017239427698162695232577299500079560991582486419494233877147430273515025190356954588899064824221936101212263267146859057863226347864717034478543883209145828703076958838968059329723259389518528270784911953605395396241782835248917943404338637327952784318272934260025746369207746249021899954911784056928287759435043148952454840997255352701702005071255482649251944788397491313978703386264843694879010854491847124886490571660629919783961150508900378383842049258897011237780931640483706276573754442147762702182139685462433209404083688860221770095588992947216937889523457383340011500960661643501114711574687500811782528507959478776124820257379723579968213717861046558317488249053955532684505721626024271724825792813316720365229790170923239067737407309590697098321294101626008159631341152771877811116745117007744138069265547682702155303708589911100585347411451936616811878153172430451886632992072151660794763373240740229231890200227677586421136036843997927954807875309522871243988672802072473338894244446166560373026063797192857273020115996203706736641013331930121367594102168217076040763775849058098980232379403488158776248106604657850048801330849400654593696527441064332192694221368500763160498212281075869565523714092147671332022099817768974161907021697603733138662600671477747879215371845909513389938929754454872311992020603623724477695153954886529858130906123312287158090722655661790022717061351448875482958473389521837795787542737307639718844210071966470554147410669034314997440780110819366897920472696496967573802218042452524758382502933011866979985716564083294930284812983768778904589844370145367138482915543732326389480354018648346982152394025811118899867273355641434360652414307514966389792524144813991246108898678084637108121841166795420966785293501413056406959469911623919782390855424468224332355315501154534169158944922282856548615689059413009861191126000438246880830472109296223643652780311398194872176479502011567320415154683245429332816738973238974722205068009895224030415641347741649380025860057412354567467992821213518784830662765972670706848837091920831499909801137889288424790857763153773027528316402830131693229547310563813028344389803662668634504605833127883369491519754463254358776249940276072548034637595940463280462297600138880659140458821447012030560512943299288047935460005452795767808810111856738698201050274990920318486566295067660932279040671874286439288416785035291813019294739176934759973118624297340034476209436068453075608045766531814160155305020672537138672671100886121821708383185253078822572404710623061143536104341041528047624310971230460416479947655151316301534717763313673072197085898524097971685042445645039691430819055365457741148538810328185752338647864036697922159134432056308071754017121820537818738884198211788186517237396219352722893050215836837127543228805116418659238034903090528024182074618710211351961452984223158450773896922655253652093546487757351545218601601358042791261449240439390426455162126684182410340044872170822473118505932146865057445859797407197109179270383208835605609096645918203675804820154846478058029821260983581865188714019311473462649926345547069619581892717196369264777476147697169415720177359096929765519435952818289246212811412871310414455124106063761403872205770732259179645955315950165951444355411589423630173773132822465098930391282929007662011300481492551063871016507572303428917191403380922659721539450470966384858891138384382714497560313510455656248858817798018829272962324243789519405334068041127851610914521619516100318196453796086059641310386723504939024886385602147905098704896357439427644244990032515273932507531834668582359387948799229533898339445675253717654192562196566246714360009067277706017997781146764366200677123419265274504178278427951162640645248967812035033366523582480455882403481537709272118761260614378719829346117502577392016777043374047649574232013731193306075546544735647263361042867070965807229864138323485791112897249497296153665288535892461143703416726849942380116898657052801383822320956622296501887119540877657602980094265092449417220168320082385763039664593050228680638784180616845664019376748524431108018378410852136018295187672584288771839596430159564298378125456622478642793839559119827082826822171576838023328213367591606082020670021946803998548014746074291046274613568266887739283924844567248426052884703926294194681352647231152970637460312826049497082878265683826378643519997411591414608294447892235731480891705851043916364103183660636567852616176798324532203130961543572247606066913377947874879994470535828396836216838553690209540370676321372284911735278226019033997875580030207979353031834066163940984682214261266308470506241655937008067838819258068091629253709599910945076029139804528218584603206927379960664278728723736460696428774347549074777633512635459527714495800349560873240225578052068395420645135407018895638506191951852201742975940500091645061110782291050829548308031272423818493601989300381644024161748483761463720029289317467110910013598049228989578634088188229384039194512150466642071577978438213499057019602100745848120422529348210473154152731243413382780911888805994069704572190444008285710199241567503694998015880306807534108640353682665571508540185379476239566659143121847835576894657721765614530328829630231884321282082448873293464778583090098220038756311325584806627793388947242487956844371143705119926502853955385122673660320238648839098321133670553159768378541722259818107783924658145146449689692623953727701131505503366005234554747984567617861230246329787297859011784730502296508497034841531014644249733706344595774343803929961450419320486259167835637538335936408382335852969398629084671872637629899415967697685101849994992626496803046678957062459219694477566493335519524871584168427575092940797986914171912694185079745559070203052914320935386673894280086089527621593168438080490914278459967497946370713095717965171403325589307284054869976589958404348138550591672743254530711527656618981331563240012078564554691837387052345690591684632237504229904973229155500488440401183659250426843668177669981194305689985563206938488031672639874650025398065620315588238496655998127331127271115951592626354506632682285735575795155440346281356753593271697172168690360005202387942746980897400377237213078817216045360376204598855567545836646950310680161214273008194111641081037736759469877341795698525896543459992221537683728972133317916492523376369377139983735168776089145253020444477883389798788172234594061757383859304609541410312047109265529230726010801850534977278758156814514532279985239562235169690741595204722386856353138167614003103717264354128041408096231641908106236226257448878114490670434980610471228705593526497525129270536236520409274075588817681938427477767442808184404853295222210377907816276164406944001801437041484360049160072440189550664325422808445890339882931172151243543698488411177717660438089319971217275216394607584700626210755962324555246805091745723375078581759995424121492879113693711057427699351674056671138724593316494119520638876271612708122319363474564179383426154349027330804522031560230579371630265192072836443424970807035721830822152880866890776162368311245451376829589840777785597768255119121527700942026214672839321601521103439880273539997481649813229336621291653259226858365950134390191291411092507598066585412743339847516459058058645056353756273030856353848843044851949649726534455694593748494567711515602503438270324236880871983313326704755502098972300482984593050369426247748552328185692872004829892623389907445163291000007168841454138585610918985651052576240243105123242286069500088963983488343265630035370732598767944517784593364617060913132563462918641210011697372677409709496380582172873777011295511660842363264409295403273677270527948873179336160076405165243662778826809219916014008348216807012619053995019199616355563842616203197414728096378356706077261958166724495613518107267157169753279378056888551207840100708041953655046930317558408043164027050359182081018628485046608357166978216148914835233376220244854194178841703561293928533271853359764325298623474372058454602026441300170015935111681318478993726388262955816471944317274599031243387840700177472844482048921570582845746384312297583060764069693119867517000092275471741520289529541900054233003183067978805447484912440296895906771811537712569376010023873176248982489065574226641526243994269376094670147722423850377571228439441389338723292393735148268025749523014456278488923482563796572703949072833215489738973506478330528693199850782862857664152253245687440584819438385328020985686909622472222216608142469514913252572857568839328375320857730561501837461808492189797219041271683730483035994049963697300781292748569088554348490731586851239194856137400626602523905474019298830445168137602163592497304047257659136933719954067131352930550861176792037070347930777595275359206130549633900561849280039589433316721350792499298179422291820117044956741618512598255968226411897822383267210606446818852569329845243169959714982379630894960664607296747199192844451715302136100507620281617286367472606463122370085287651489035474070213220321778545630057073111036220894806018751745006292873989946493577517312648758362410732643559873166392728442898864894984650327707868173402824390107948666045199557408533517649013813165172302968344917754569919294234566018245263078385368481923833618771006540406325745498274574484165630858232815545972173945436187076252797133163377473462798434113518650125870678034541448520482658977273027962707762368562143351099597066609950504831095983756873400500825999587321849294973309693294653414957606204323146079274699658275691992841223048165974464836616680933324110820842164439799483825760064720674073405729376770234968555335942556142603997151853309941257221284292146765613851119478393968810857812821157803980231800726448756293203032749564355445926362490117120572278987741346051980319716383371639203158141579441606477361930066810546123258404913650122531533223699893986658388879633089762553463198175795747338075797297670193150185996461960145246819082237517471651505183104349151393123363871621932284233734990616636892115521507303461497165551099212699962066850411312717231432852076158639102484954447206142297860267960463977211338407460485686883821029137295644448081672403103969502406226340797226062527598857797152555995774567012108708314082467113979551402724852361611446335624393326654456088359974840992270325179664042388888419572099191550398466788433997487681900224736062507507546833321174281690081773435582278409655426350600398344395889620164261300277167847952963891507179729903381958806612040949187280703531141033839546620060796784352060495432112809169891618668142361198343087661093860816663662897658685203168160946864311790856957008519791398294703108427524192764197740241396835842817599702792141012301082186799097600268991646058783508322029745915344296390710189208870309400222388698637816746815329932535106219705437304198669249052607773164935341832967297736552064095116433043807137086287061240386304132081251725055112968586194403376009843985953741745723256136860757276458956145838037146461140928720484620394310799580253276190425777718066330995840328059692774337220806280430989283799856006066352426012930588355366268075490628931149485804679091837162964129054956254812347958692645103332912333196077973884825626170453033096838540801097759533714654388570024425364503146012343561851937758937151705718777235501743103610922592158904911926590047406036912077855099528573746340890030546131541052621709113789881063552764610053923102816065792262653798162687997528065886178749527892651962735231598170146094627958077485079735156531868582412153493921298714813938411475434988088543325820646206502581879983219819901463263740822562437455282462008230592033664420282682712482121018865631528317349296491365200539522941591426899113101520897083329232114034915788940915083051633918911749657076915431115907134367780858058729117710770260029489563813711124080961275255068129689957850178874818263577006447163744246275115841498066002854520580756007233218374801202126884200113683972215737743604317694670102543048161696388921353641534165421663768736225995624997269493437979957844938043093344600821723842042112751885200991811529192818003957193854805710261778797325547430494041035602195908107427860861631643942598042511399897285698963726137570094253178458084807311724861942065269951264905507538369553769394165548036892328855980978316113501505481824855237918263208273480487867524355373242450521558288695274944457784557679223594346836953239729877959465041185116816061349091658895944515526236960890621568060753760127828682462155323489609429796757392391344084282060197475558027374116595979224113035598505026080772383117075609340531161548311257258988558486900394334483686828631859239265196053841832218876988860491281512582379227944801553853234856394181475169154114579971925577288430392014175252198366553914773805723672127686351662397443840876456559763890737418796181460845627496623218937630215756991783904995759932737971536413828119430001489359230709694450939614354513320692753039216375912320311840173092853486550323291332336641836172505475057761031907081941172374134160132390167502920076947288572754384384395080387099809109162275930588215316136195589175375607800150726015138979348772342209831244081476546242037036562553236500443340660161744464048693977666947890208533696625802984665696293324673827401063624879958298446860910271725108136074009942531489166648857200568512917584230469438008867033225894294444444239169072173375470104463321143740300366833422351493136763450417313009713039430611605351482746466192137996545207559590015713942571975741931989552099488060736314188938081188656671513493129925886873934097303668759312581544259972083392878232956398337676734535947421683760034629991582643478822878035192494512306455046342864622923719327657497522054999365679287107453522636091323876581090873305517575414631832719564502785184959954153135785210095622963808252329936890587731042261293321510319219635802869082142090214820586963476789141057449602337495593666300703783536780783256509557169748181544967327335915814575092596598183236104713476229509340113070798182669631512703298780372157430281021132671969164918982660945000634306693561608977931659673470198274080488772299157503595336765126816972161498297504818811499792192523251953549570843617258694403416863804876637503748338493930972912449070046146104366161280792797463782400125916249733688838561809018922649758982243385190024183099323491581061185853753986669370366901771385226510312066550937108134414596157765108758083631555895881701737717825233907622053934497209727972252443108852331883329462304417035191088276597934391170953214543820736355732314973874944569939512229660639878403388770879836348883703549032452584728170861275707042510646638515718613889656549789922402767440824023949451226933417694749343061268923424216584864315981466148300524844513205316892389352022450143746784495558085924048919467449143264049482218891336189648037068700459302913116095607852037009813297610023084555201034696925660269905380254562567873878618733150854339854175578558729883442650963421041275286563596914285402036779522408033937630946782954280112798012849404678650880731470808232564263826077560824549954553407720881688955159523035450371341375166516092064237947146851842931674513164346409848116763502654541068872012131507682958094747311511896828892900932886761670684021584072852913514856015078292051342564047438634528017974439347622819597497003443779235644202734594389071329932932806729230275664683446051852753622381161683482051982301224802106974153810522215469825693318089522253097621591769427972917505997377572629111051107403229427703028709277523348659516882854123479939180878042136098640164416924141063022596381579468498780260530712627156622636001718516028487356837032201736787258563716867207709773671011661458634812318341123662258750936396239882380419921749487675534373326631797261959466277040388631514768518813234509788994174337314637776750409486910295204509847696673778963073470571917253753708960716972679436099126828723033388800865739358457901004652139170586556780837620637457901657224716865348083944958161051797249871875952320241241901604758897784392926172024674878156661084777696839434042535633991775376368362407534382257225397394320420533624094791312023926188579714348429951283416594164424521913571458478136250269415575535242449907048789367097947134255218279629547839000629905281360481271600381692186966621715918697811832485151417982378414340917554678304980986015214318013969813374290920903289610465104331476852597553737203998424383100230442699101455666474536818405359036289327307702697780941827781231432335573502494404643826835891435107652499854696968923196745583811640366811636018830905934593679669233295548489396706847777402334853989440243724323805453022967061191245698675109991756975453364945877675850768069358808614794790633597628870107271500793189636868931604012284707641774857346036382400399894824573873300855956822991742975096010871809427730017333534012439412206981528409143758376595207712168959392451495105101881752517473014521142463441431184905627241343758217856984402243528950429089428224998178361546510559118036700476147763171700416079488331600156803370952146424382903973612258854602670944818292000554677154391737364060849406697050031711879778565576821635057144451043780054998041456200540240989486771860551678895775695053874551634922928030861083978774458787078273454909954139449605467572430604390292333170085314200104751688702409299875419382407960331438251546529617987013920238644182485085784579665012207123362551975927152723361454515294137388398620946650732768442085339963527961189920319437621785676769293593016365046753798511433690405485832046180073262326422346751142513112119839390572829503327717531857141080518471943352571054965623802905528773727945514807912039075665889710993734847629985502059970699480628562069782807959625143418689834152066825247683085226128358380322754673962155326086591648351002007003895032459497815604382736839645244744098547670870996812611183323884743750131365763745927131785109756277876090273380613770976551439176043829113253449664777526006979004286765678029868265409838626177329066558048308024186274688706293055723661681249716496662334367531314273486932513044765802771881312481762554217447558809104296207077822788304412893073226786571843937585849861936853890677495431685469863157352223874158631033373230581704506107818657288641230952456578283739444687407859711235511815923280268277226466112281889305186565521605535515281517147891411577959217037611832933791844451632885040005809939268631416274006493387065935171467800095302078537015166836264606018731252358525299022760161411423996521799654647885047057009267503279287470564125003672515671049269468435989482928509107387706533635702804757090055930783494750258768591432842152257203009097711206843973181996786104771717333418534443933383229182887215646861800125473556502460994546602516105536588909053408066172600195066939961090654808352878971810323674773677037108412639001136020990297166192491884637154703415716599685094617485883190579902908918963044650607599072114928049310881071780513910267181016080950712621593540966991144555230372461471667691757199677005620279143726910389400401474230318055890680349530607334440126123353814972731482083129023994296589647782718197196003661590707497089223764758048853393931575791263669806669196504613160275117783667173627939474369436460842661027500868587741439330033355805671310036009185450855781051379732513393799945237507409674002062281889211066139163342054330850057081525267417513901124948746880774112369206763221507268214487086250592690636515276825076569399742970422417476499192725421817019216726724422989415902746077544913105229699140866215309778314850677313590242851185098698279394102346384547159494720741673782684700831321613315005062784328327933786247202845991999666158164758300272205181534392205148654357154882152366056578302781788334779006161518115673692240406118385086066682730759005633905810386356152425181154732432464366258052060137485473491456306992656024509260026019005529663794214993922167143075838922002101514214919766088469593906325800836401281097511320334081873498254019677063696972993667841696093511705639117137273388658468569461379857867947066008427349758325963562362300277406534188912160658042994665397536339887743607697332611674751468932688817761681564348385851401090286475950310171663253976163370556997583543672614323473620158255483231194995380214314582323283552217350064775327668254651103370681168488560175151388762416395472616113910139412791128096223113067900882313680087081400967985661513903852876717443333874691077955603639349724836219710443916856955527295854781701246904404009707571210028490795635675461530570002481834808804892119063667125347886980579735601342768036318069793235178209809958892699322927298610295615305175900484756963383289174206729875997538733194674717203937624581446686391810991895626304188109824829097916562302204493664515383923308269326879772071085189904138421771424444795546877353304444224009678735755390081054187646490174517463339032919216246534657463299580236308746840099060010570626000177519347153395243510551108391568757759474054423710131893855974681634390780910626005245038079494040221436824055388785306294666969994634804329133496502439007381603119041595585049456347958482651054451888040114840768771699689236314157342604501762616263888157953897352358558210606558479586902557154492172334608130305081193545053936660348663658083622759444650073389503872261571403636344972955001694337725432462573268132724246119417761736892092734258870148122509890514602401336746569419785169587635218940348702834336080526211686927318168294785598219798189654491397129755808493668978604409643626544178596132021119224476560270858152031709384499452304133310578852622598328531094756924051717541019789618400633023434457153836747237398154807143922669556833024219194882633743029086182350700502003441789073367412947677979070094057130545329994077825205402328934779151308180618658404642591146815564026095787154157652062056464281608624346961053919410499245776858922276219984606923760680541725646752910034994195627561504106648067608649656307838544444820111225227069781855391107452611382627441672367371850653330557632009733559400254565993207173008905361433334967460985510544620930886325889593041812591979942957423726816932180685675087740881241949272849336330733010950402749171101418810714861071199738007471876217938754276016534065094553566535248615999497149398993917881075261115500106653969405487163756369358879693684334641227832281544498150595474833326226247925492798718649067855995033119456687245268905545659952179065975053098124696125439974584637281569447173490835037864901238182147339665585281398070289871693121124496429926160699418098163090617351093247963964625787341101431558622395183245909394914679893077316087780905774254132937290175553014028667732490584743980821192943226321724692683515515503533098652664107062380210888630175824014041779919784800414161098631970107397540952714640689843748065075547950497930493333779226345539653680506477864731686183426738427653889347499762049088089075409803631001028641858052970660458104804565400665306203861029593149936627450639921786522195410648325959818315340458743774993400382280799325223694466397397296618361518383153611666295097209700223911536114496812254529495526533622947651792621293538114727822867894905041435014072626613558844411453711740375059909881901614837105258314940571445126643842047717519400484741751227305491239059385806882981367656493133009224375039391780191963400754585797500523572398408543163945310356084752202921520237016456896105791324158710696885640850822882109414846610339402581987057447639944233457704910851747204877877674763129958495409158043697295579418452430071991344633108018684850212103634720404985951315570792221388561371362058743616328890406097648540565387080202310333608415415369982571643380151308764221152023817139665991767933910733208267411080489450251531704196178953380936450092068875740761617390585414637180474629048659935305197671521197522740855412837357220161933420711178642013982222287485658967841259587745606347395209660414228329410531299019488637720306572461258168382976755193896042553954304698608989481813792608888840386264993750914859255612319488510741727431182671287881123350817788840407102128338705700666100329153125413587519888046726253313710760809824290586807548526274938029331733211628123193124896751487231782280900196152664514764072474402368965185531458498619860828611501912207732941847656940605196953137966002447995343497575121151438937589693359064403041771864295613744980986590084379149749939552952853454590966833746659291850133718970066719509418104053812538572848215151308265539158028943766705909001624582951249765606224461498495444644331846073790255251125621496594994004135240541589360656473459146576509791299603749953389066174459481238885337124478470872354162325390332391966988243317557141070249647360843004634675874544087354850905592299824541214952506417320535257122038131139041899802201255761726124901232456762730064486407673321178098465866164230005163106456814259199705214961461418924472244529880535305592591167632162799417712021718246988266503773811257901112614181589393281540300899026386588862345985487333208402093960749632815965749920720765798070022002110376341335675866474172389150787398747395248623043596751139746044700941124449488140292127322885592544480064625637454322328150526044655135029425455096052257736172248542228977027475754355009533119283306425075928714604557198653015292863508044645880687876991826396528885470517061954779163566388299100769952081483683087243220890656155001216521029906012572925633314942889787052909310831690479077983356205320864420191262234872609022284232686438938066186764625195733222927627624392873711898019126032512861878155382066640465520143565508516553213580277242902205442804404313603079314648087387226189624013647511322263616795377510813398049426771048733153786689385937576254126895091488566749779820612700957413084674326302638491966305233273893564792748580121285643274155351051930347836314902832158101455390262229429833527498463059603205547910043533977926425011634508036592914190657414601565891451460074926465063775538781518443960857807432690325677460193035858600863903940836887221046721677340196959888237335707663744986615350485361144059866466950588373118769422854337643629712112698960205761304612967843468149947041083997051387807588728194970024707011389837879910924447759101678224823374858564838657478792295414195555759840106418156178519431411320558157527621695191274348781029327644665064513540603474122482802885408459202782224192475009727629755093734273004510862813109015759925277313279260333865113923431175772280281737968332030083391167854540379589772720764325913558657854136153594870345914895111016762828898177011114062820796662403252489946904340176454631239773833748987525842169414451310122963399658948212250053386285693766185080531876765099026280965241936083507314654035604745858596668834496522448700372031984647353839416371367753009737662650708364879635438735772202627140091543804004621186838661730034219771904721937615413160986740674956021040584377811764183529459427985778056039874120221202174982432554167825028590213455204294567293536885190360123373960828514914619461861085309104015998429292422867201021609304728163146754872779291899359141425872261667595718972097610072002681929199423332859918312992510859719098183557056579537635434946344858816832829078100693291820585716155317481915714039571775211542711941014303151431000475829154423648722297002776732687453212729822715093904686132636256455897461045413883438889244694977759340861214545042481648543587020768962150363984665540168900657307060133829333036305547362127694375239556806821944019178833746413520064641972461178177780727444582630189556573933742957162071345677904624565602159931657297646786162660187203184621000393465665697047037465725151406858968819003772548790457361177395304360205818482664279258187733695507048847598192659479955256026959834791907703050990094556559166500739243966327404783489891153928387632425779473814179103626003873479224748328208543427434938994427854488237954140600298981625042809450352132864203533096459454565270748445484888798114664247085297589409525915265369386157723614924339714462828355334523771344907153003661244294255869296805442061598700638942745757692679384515372138818644453000307870490625326650205502210621642813973396377709687673477906909987915411271179089800575828229623691226100431801622054780907885998963172269312466249840420905881904751874377198347193772970862771942705631717907767933575010427543459902130695809934106938156639482144505104409959386877978200929175865880034329244357504847030798065998407414163599125547775044831005266981378912413387410830328050067906406546980333842892618418644196850253300005694628541679760624660424348621547396938463866224840467055804782416349750093035268481502813099840739873390192035102873980646486959851166874455303773343463243703552152130352682454949080880901804201227902932406146698533419954406734214665505393794712156252781448146775643834579647677304676670003129243514049018592249639410838640545142158831236663571997063123754020193084913518319918439220985666841331141814508753196416737625926685171452214058095732559148746355096916713643558446920970123670360090649196140765199476644302910240452020879120034628792258828558076554093297973110162242869564530194481616387449109531076624432677543691100844532637046097476897527410123679774997308375303593572661317257635949172023408163768926165713009878511551894255869482901937139034069655750195072008452074536830280272821173823358487584888111268841020870930131291415339568358021939624705962388944916813061664643133008742547584052413011901425784571417214551402350247426384726960369688808631540544104271967591521360796743418065017871923954329440068284398868500108224728917133155648503098059478526158054995519382760903993659230456568685518285560274956994238668258902886932107861631164961330039793005633700445849284874532389793154154823557632995260703811073808034556801284804578267795217190982683606641845496298276380785216708153771790376263306765045326816727185138156304990940250918403747342734943956316537747330928402544320209917248291379579426603619078263564446269939433837419216116261294407287275486962526858222454812101557645107521790045387334383807223827267748170839613892624816419081485707612667957663346047207964085571800718235644454249878074004201847478139715292177206852465269250735501410309312682030421871311951657454871928208428462196393492688758466920339549904195994220542963819443705068474406486733798218871148751253203807549354657937206999494670652778604295462075796094490591053206858441455412607267613186612369341249965097754958485256899393355300107682594803330994871598092762223287418368301401220321889253667538606887049400664160169427076818138941365135125949546912916335589417439412844026958850632649082801065784331456940981171455187812201190931740457969978552012209673262756513786904166499102891138139481662705554362670006332240669592215443982561039566606665775008977488268669805752883385622996933682221904878231557481131531166651075433868635468734490332901980854158633369666491849447462753508372129429249698324800865307239159109981844369885613215878819507461537810429253848050625964178850476254917665193402983055592561573057514212964203699791314749226793445724838565580231545901406515843952424403581078934573048394804333722704349982016067388742702055305695539660672295395247117044582931127434912161775756384048878997024491247889924522843197038471189128475925506117628771584213775628656468923787414926941591273002319828516929166627287030418521023320164571068325682147717390428559318189269438183753832357161129690439556101401350700867133466182886249255031552670756174382905616708843124850842271633129764985034353659362551984013605504319676290106234873226581700844572224142057482635048086682898154198353361342000959810754237294256352066193261197107204321354594257486933614204892147735811467215618644546542468442407062565577681219391558369426854994121672618044735189057137840069731407122852335555574549073338797223200826880095392039887600745493147176846343547795165847604715027033525178988803896896427206862301538310431902970864834043740183357079290722097933473976954193121692466096247172433419007914055447144183460701467802150986891329555150386767005371096457283713554856352080095456395717959378429635620065010191055261868231756588115813110154549634412043423845254780244375209899268763041069807169232796987470005447073296022834756235064109705523567545433334570780779092862070483942315538143361627648829880910346430809187824446380828291201990418596046435419898097607348860570668078765069281027205380241312918200801959359396952810607233572053557532025216033543216927557760212771385246490452299225508785823869453870063259174593825728109603596023252824249407501131220300631942600506331841040776176685896544381277182840067974303317903142776320089316964588299681856209184619147472034404472086919556146475716894069059102986711706370019134942408057829224233712640049667288026878845236612370760862151716805062576703872680406088698358657408732183952088115426120633751031444776001915136579389708138906965622682442443790737263189202670998151463237713373809845471601042966066108176942515486035418359474467519170145531781944772210556101426483615823252561001599800614456572162574395295832949999830895072487958812831483515671579860538808179751345541801830788165388921818182790190206526685339377397973067424456267437043947158757936021136192558953370748967298059593363732853906580110189192896822253821682249490756965166881753922525148409942753394236805114339680832317334366138805551567291820974048124973959332336568360883970488905381016348859319959331844795019621364925674597836705518793427316577902245854367613448986790242202892589916649064553865041187886920437909836375958707918770637277522321507664604427248930873608479429812819444579044724607803945511195425849470420985707346969898400434536170548135941271342773351281420059591256608533323208076351490293044388035410231407284984037124850156153888155753951124506928434456002312074488631182001414594104051097324164309068804152963515711943415821844677292885659206037650994095351714557067099740606664471716952061033090962068936840329672055353668586267388870060082226730690016225860844263170437211683176846211431741521992777490980418998937297520365478799522995218247970603820391046415421511501599378948177228167152629842873654029224344589936531098856140048259150634915202439172962982766675236269967437018117065962570637427815029963641167849203906646046071442060036698744435247166662972334525408667753416499764037870840694115985652932289356858764628717180780847396712478704819173614134682617819643930558320511788742505097699829434201509928059204520368653738426203497316515247885892268073271732239728360217154841334743817871657477696516714594537884341733803950450183229063700986177790083311552259222818722146213531317200021302564072935604390893686609568058835734655641669378376231388916808747927934177945784074506388879984640015986239105346931768229697879783327488232545798878738112184024077546803609777532689983625805005368904552863138885595570779307027499195629336805055633183723647922052928612765933130754610076105453035879238159028926447258990448933234276289103011346402285693978725232903450602951363819015807573508660232147728481269403605920840516232158740496361873354491388097200973923504184879752679996698999613999117098932106411675879537308724284286550092269875831778097749691324356389707148328142152414623918212329611266090386368188113254977521870793160950174514509513967844998015533917842821325205354514851049444139254915687140493671520904223698117637298828851793868638642467970716332715542437377566749678417671207359204032216527473366421820398464354906782524116341235148257771317537128830202682864090110021182451652132660377823932565942682564876776649622678228980128420530269009467699721974181977809267384876983895551006905167798749947385598844384896300824773700489787171860557586556784232145346843507845476843561881441242979634129986557546414198790782012240422936179640435995111263720177457623506962305514028157718013672013243924420323369691448438226063208028066722396053721839811652598042041708664050036329431644328474907469920948458658708286362996843481884677100991477215099882555515721859360987549959985798774938510206432603244659290645790411887018485751016515320802241002609678892819407031344200327186953652542713812655632273677159449313174122374283112111036336463694843266705131073168056313140169632022603911096897540098854829866509444260927139533373367087492479124561010169660901364452157331660892596487480327501534665919708249191163501953184810022415469657550982732520648495612210167049280488521090564288773256520121924016941860908780847649822174870319763580460895097532581575942714455476079830776766321400257906371834725717692790908266527953824655314555172218975597350642614839824815018208590244349582516574897676422873225998719128269312687179534157558834244476384806733135940508513797209772760809660756006144530627806164612773746183831766401126091413818673319861720978897394267456418100609852573766379335610935728397883129229349795574175525462521339071925247772108449235286331999550056502876171200294092838371622839064333296409211283167696214043981283286786632238760085599441824840804199486268859752637072891594395153797624072923293038910725002356543454686810847436165748433717245420053636242878939304949108176897807069089402044860548362546029525602969265738136646020276836400267508096719541229856983161457220400206000268874175580858145097931159294437275991093411979319010662377612961323954960280924455621792487767532296814144218319107209959339339217052307645676703338861266440660557952468573134523323480332934600606296829606425193236913721411946626497629253584034065602562916884628243229270847447107797921953406835866646322357993796193658054584473575297491226855267327578150916697628093986895090237249677757550529290494423241688266750353713818639930314265415793276816881183962721754600624193937341723520436948420228894045069643308605079956378631754721980015561626318637343338232297207195300082607984679804388205230566871354894560259942056608903809483114764710627079560337258067084769196827164279277696529973405707798793449461495753531406763802984558290835941129925015164306695242565432050277903403474096706242856057922310758784276987093984521972280297305604428677955189470350020190072032349618339748728028945288755727985842186430406394453987966007833787894062315527173935834844103052892168116545799769385210607546993050133914660809595270110024020332239503343251613062206085046793210731215530596078722194927786595771495606521216553242226606932034493453333586975295418092803370079771567125209555193579236992556803219505001043453073311024259368480467744196484601164311572572833830432266906718573192696830522905905206872408012642062720809932434192455449179907998123471155953666228993724800028345958734951865750453326115660438212889792494266799310858986823001340870640582063089469979251084892978359663684520893351429884609355113167161125109530639910624973327829797509674354483745747105748754952490664836812493751060873120015858858124662692890557716926271893947764799089840198973481934999587823820772874324685506850043386318927928022472622722382961159288463580633812424632030585980168648091014060489437834812921793317065244096999714341449445283643490736448640780109409738251971822844012129412647104817550301258751984293466099576747743985153935859541671671868712387927505930159919243053882294881186192118818197445370756775796092539743097116097035381839085152919835349539155840695475744921050315441467205982786557669461809027133015800555377049348848745621884077727551189012917235027551057844094064558005649068685760087983081434290575795406866549034613351644969721736711938865801526033383375995214134664761043322519275767945516371621241961524270488993001740874375912497481095025279649659826766363011484891904583722364617770683546990969420784458672777077996000703908650480123863773603769767217687549153740735586845591688237956622271884684880408171382300476257237084133617744084778114790882341463754170367356196066798988510524396109681195804927783674152095592148264730132526678591289277425601147531733305620340182510034768584201810915287287113233600485301825993543761316731569271382207369875813351633912483658790069396106690245798360889643971031044871921840230079948613627923256617176735580999644292809095036434426557837916255866447434803756489890363225617903144700615614789899499975549838486060982791310508776660961886018910253455833306177857101934901137207530581192406145615523368127761145034848304959976266663033089818170481069829811626851136788114412523507521273836577426409829600033861138611713959691572489708844175930954499240327068172977244469718190974932885487899229356348118391810284748365893578324006330610247201087591508079857756273486144606768274044177722253918714776995875317638608893411882286405741157776693883762722557843024704353385174676162675250682461253227345544691384215733454860389328755571950657497305024830710712362558203112615736691697222673538451629541305814716997535605268180730417853317027140778392362461703416650848728529169985340400306603896741913031887557901790779925096106854464124844558573182288822806944317325792780968973362648740462506683759375988172263425350937210753391540890140670346430779010890864001744921447917560987493730285443349643366854204730236586129110546430231764136172511421296919655930724120811080090888946678411360277746160221548639536240163547258179954767559716394955852830034608751253560883693235036787804064584621952058571261091194092599903638784465804433494622393108707237527735377163230517119933645441937593838062027469703979312625830793234142422275525123027121429389778212355525285138315756687430705307588091824679084944826158769956443957309074143339879121013306095813033558422987245147061643456269790107888778827385563022722373575152666057592515422257218556609409542787024662496991072110084633911034156489284138881739754227264100088403789960134603980634132609951474085083651012613126204977434286429547727372300837816044365032062789974596202217582973663393379592501375105600959270157207890753626427720486173928780222588486451728769004926223976874657417597038143707113443970492270252768761405925154082658914140671291587761087693413432631113939149195822002750072392766758713857714229704117261860909501456169265762095574832008137930958928758941747879082964696119174199784337566733265597543844468699429264046610592958979984419568367447979475206449304567168548905366321003093244094915382125798122625348256196827386636474913262936237792306557442177270420625945062019203324266399710278268718734290313933902085025107040346322943409383384265003744046512418874450184749658448650112395898200178241517590764833100323782476196378915328026664293640739102887556575966171290336540338436715967199840086976619201476680750593380817091472417407018560002202508706895082992857988157228499551339174065727544694638101589542365121527849414954856619833990456566526421134245791216622138036458607160839761794731699743375044687092457022957913220791295828094935878289111166541700938977626302125602592965883311232511083787516094073510275640820299405182857639137294218333817067873589358332358702781668734140666788668865428380969380702979297826891194879709694229377762659632788422463804702296562568111021454197263138374018143472283233725104206038258952487943248434981800293253600732959655071771660856652037901945816945734849378905350441997262561763361582049961099346351501154460148031998689267889420759599313654606992421487614110767512224146559474843249852720999146384814401500925278687419063107733914914680928780625800257308569702220125043235167869898281973023632370171604804059722303463824069349653411925024637203304158643426333546735260981786874583710678027056451083290038715856640629131931854450987103212846409455806872392051337737338363740790731442672221581380102378240512462942380427912568286352414974256342264267731330799021633578210735877219783771703984150321954092752135495804116277333858669536906348150230226990376437521962474425240822874723281601150686704779489380644304233588680502234614917610525467085504205695355327302881302076757034693055922742155538288217007976892648684250739087182815267093326739523454668063705237053021256067674410346957365459100113858188177658380971276421180280825368225699477515149318215871087031755833981350375943756722483869002065481385260220084706196393444999516599846261142200204204417459938436706560479635397058605552193663653485684030556586847965282581620479603652879096104759999054135119755745935314301945439846143515765916351117149876016672173394845459252583503337758759010725794341064926692351113463038160019994105663942545924715874695691104264781540645810291790057938230674285755824845724254282159698752589349589571410678687996645464497045176412639915108040270614534009157438033067648078239696207745051584927623928115283482805067572317290091308247862440063837075263023630438486119815366353827297269078815457360659513286574336720551578815279032136624068602112332391846751587530170428812595580223384260316198893085108132954483269828676710558892741357699570843740515346607955146643878116373205970188729667062333869893740383400315863827518239900853346951091375061729444452805581327879065230301012760438593158595141724966815395612257308222332859054760945315661175952321892675093430799960771966984363936422066048109998910700134598068657009354412115149943481206205907657401683652196866644469039123698137602954489442142197043658828307124005747577433403483769242089654024691982757893325182211903543428573077779700604758833048953152414305324821235345723297636264461783213731012009480224947880171078531804888170072811366560128255905994616329867024376022929270218547323798159177421276850178752634652873640089436305050298196221716475733309459017261330471662594224118341545346361162908568474879368533490780713783069136213446185143843345266127367588117425660126999113940383223676225000950280138837076386833397392411670696392241020935332643816175362946543493855926756580504298904505394517318058754759789356694724516643767325149481862918304579517348562987554446041408202269773336384134265820973909677546983259913956578777643866721167471470811657860783068882477315690713545282186113566000701534162139703271342337199438335553948679154305822534812525562458707752794920942282834468434829431410321193900443364703430620316751101411238564500570687057249608670243165314214859253543179036843371708579462760818094959577361179149213922847769236018260857207763149158314241633526430370693514543532177842011778350094329414189726630659071706443116489439041190161653980186910412320761085848179824854997055299958151543593513416855727219141909522680481891578726604143754752921702581886278054077628645106506858572322415630727383361053137156863934303395628898537789867525253820611553354218180999904818820970172352338003998283376594109131101884121338592825647530215268048099570660831033593438670786147406032853418580084109765590633486824288075325240645721858623183634260662444144287453329947356748926706123635011817685316534176827299648965982254635909042660589013777121023452966469294876350020334894832572285645703249469302978466827518744575403765141630365689049521892150530438456508218414278160708042974264672306637172649844959016400738113049289999407509483179183870139205368721462607336874649500109282082310305314470377418567503310877884601262241425556000284096784883663208579287183335337806132724399596116041188355561794360528847082064569758181494031470414690798772831925735328326447004965975095605420521736926241618398606508955663389471125372165729576799392661353359926590425453654992471902274150404719898487612738001555510391243452241922277213824011520574202947487848311761717414922360351737390607014873283153173477052582777892201991167288815938644566206876171452837423140321606388527727594694743294262646107886778865770781596874809813210287182817314379082722733546942783943557478853359391097605920085246133393697889236846018108668442665878293782830396947222402348205265064099372451185613030301858114943511399393381540956832806352196526595301835896777942950068362202456350677323354326658044363403491449214425107926237494599115586741290025108569959351663771773876673747884885612465578734332148922723712590412071162042918221650368502041806599409212072011419712020668852462313548461069708593495232846609662877617778514353157620506314064995036097790426760682957044390655716284721112060271050216304173472608280458053795614564309338193476002343200037512749486268048642268335877364108172831828889948644778328164071566186179339641754511025012106393359401234924846233930813970241397248202217969155895553397332030201322856768208538219948129093471614937577396231529140337800620731260848057998357347015408991162324295415387461719824905908290053423602198879101953933170066360752458144579875543873549715153976320322071787068234028531373244801687903782122360376365321646700044132266050317428384551583564895885158500886158527437676556620562245801021243417598608138478218662041931024643238533020980197464033217106040771617554173283579893359180791581704730573069760909701436945794627253523715529703733369263049999738507947652867649493676789961545298042294089054032091629098445922001513182252363136722405473202944851827144653638880940679445648507547630620826185210654321915632892666570584800940619467978872052949318998474102941498423229886804749985847548825089996033996363870748928074561757408029092273531231650870074176490442208591158455054441130967841449708154360912947085132568368597734038694760259883613273045286045901921429945998336390631290913818622274602615532260585865570444866602420976003528954371411704111856961588384334592559064564594115130177031838820843248194076894664428682439181937857155948524222391826369021644304153251339493366770509512282252183719195499255173418564685017616696082186807417203794196520097246909047388979067697643069599364626919792531494658640553354398972305730840338251741984592323154291353026764758597676053204896154098022875401250977303169616532819952478109194351027171601127734588335108721778317573703925993384017232575412367471150326842125821329550586703222786094000907541507957980821798085458533058698296559932160056873986585188672238131798040029860772031441158192988425397842025882511540931720800308060661941027026160493683543185346597892415748116304336567414157780428992021766725497401607428320534831537056695208511036769999825984548268459102711185881081374501524472055108473079776948043342260804503683568379304704018583718011765710584197217958090833496396687304737888939113255725890905141915456403051927577692884117935424880712547960872858725828391800967861914573749191341188389681258649035671800575561717612406322870168071689200221575492544260206138858293969610301813609795340361275161290434243453458927699992141853145070523819278529380604256482192762064671352883019584659923608607592400500001262027161200936555246357197350654235358809505468076986973027714098232501698891916956758512335581155300037865005527442058592047642070125443299474965431470942250619932404536849710105923684970723697581029561464355412517669659642758848817722727636369974681224649746207630536143528857293508845512022050948903694479631854546748408488736403955569920543497466924674875633943738602581149891320417184014910253199794100797650972351200198313822893746990691658405984649410220123374116339586489195151618168594281060043820996493439882706722990619085155522765718699036082439597841189869325666202184619510298416344169698080408511841814970239932494091688094291459537213606867492642443428151210555453168641797734492596557736870116463553764383370350353994156285158611099752864092664294858253810886233732064222774971486542589310652530388399117736749006993915320120166119558333557613922133333644424302355013005740815089819306770478846699377113358622224020359181221096607375893522768134495207720114974161396989775064049476757718625127494772962033560676217525488423123522435847765006408566730862145437354816849832535065681769180360880136995742792062016798572126760237031379850711319233097800436161171669364069751907784679534493444680091981061252049182828772353180370071338081020349206618928420264307730514494946542360651262429298909603044405740242382498618055907151260437189573495519477998232064669415443716351642163507470762292911366102134034743654189454826023998894622917582802988411385096031339907207594025065279928824560801300353474774793987078878573861996951368501543457661787405152886246069199150795097745197443539592046567868539455225253640874650045986599627976039005248152136681406521726888804619166325810470312425621553163288233631868315812079635653363350015190509205127985966507045221797859786915381349080002841073446761167985382503174520325328866674922285927587469457816312129715642679107546145951539822229178724981046601797404786216474962599957503526557352694967924334760509235229570899567252943331486546485640520870923517061614953852736135572169608187047034723771280745584001704132950664850213323948083254776375375452768645875994384490650855179852923510883498014321577608379877679314147867050273906525924491980315366812902440036042442131606348958784344097048790814148930490363386692795821935712085146581552154658230812700198744901026270752990001891237687139339146893113041344796691683665004157731122574102801004507926400099757194114962589036284797111875763302620332383839011791599969130265223102685261237123956534700188019027799955344627615531351017427213431190263854871903673783928476830131121128349704453953487773865658826345143057450883782300444993378224156337785450234821670684381484368337941344056086427730378512657547425503318278813734544794387025460910974875939301166682680731043347661250665513336822612149066516370865147678645799610856077339653001908431029077357035066126368826129285116312710492502264141565943296624809134699227752087000057016444681188396782668491950253061690027575582873593703394075855337536760851724403373338359440765123335370697899184373973502449411626282978013820664481330518622077329834555507313396791477378875273782511309992863412230025888095516799325020538607405683351400564380196248396006285536108966013387072444622375570272437240060537761424679227976012872183564246054453715412820059161661990579439317672386868341360649207382654609517755498320529478458041788009767035341487927406765442098717972150700789931816689555180636148117072553621954454625065498980294515303932916914508444134577998823800090603821353259563325421991634282918518191158352520243874852560140304918309477293052003386110168937106496328062091726492111684546880584138817592635654452343132819661585233158110433677875665705223095633382386088391747066787613621356931630082745689051230982199566334234956267568802973594189875393073148878099920437405783262364022204004356334657164891904748967186321110190016951633005522547938019752064968908708577683596588022962146232658529681784089765627596220924430007148432464496003259689904302748292483377574210013833757322656179901617603626763677852127927648637575924255364703033091816036463874534624188902882151529780162840859202730851054326502577341462107314679727574369944001997853267950053392190996071283568633579329442318744688284678336619754494525258606724168815640996672880335794069751826803674816851840555478354764201967811066782884158211746356108193156827520376071038742780479864129572339791226464447311273232455379993727639775947210350374897142318988743654483336656898771416283381238648257578215113515401178891122673534185191537511993754564696766625673659079497328823128887343198969479608076910100210153321900401304911708882405838209743855899142472562909638062905681335555788392987159438653515505916519099173841261271865821235574113006190483761710557308708806049794307870210184249122373374990031527627533295343351864013205664120037657508530043588515083403442279471907088572154932914158639286975803460412546917563265274136994053099985318731448532817931049732281070594452487740878011619234166850704885799677574152958805591105721726208883352125130402989521854762067421264006066762943776661221280516209001642288761691712813044111481979194147902902889355840132185097132777781059587091259975037750544435553818046941804390641609531312742382085530393602153133133522516901084190361162204344128646055894736680876545336130596605557827962314442311755626345958528277800620453501221255614284526161666771301561347390401575439216878323105197170481967104668274279392376988603200828553764572478991011532850502743934732922416255680000729948415094248758921784386219392341820119385973846950796308571306258188415908441996551983811103012278614130794675002043859158950154586113344275958341050759343524578711229669325126430822885127044333700046212283873225602884151397483824512474713883742946789044413023818290701943223538874906836542868414561985605782617396964307017908778936938634649078037301214393140268656358415150922810214813708323361135120662502750986028608201466120232226143265428425533599176956352712480904035506842833391886245067501905197556959409561863860408402908688729973661909957067982169101372602805504031922091361550281630757571105289334439751060978673040436085628424835047901609557562766941740266159482389546779576964035977884313375063266082279844512155347175135831932692284384224164776404770136525992228292276614434561045731698002868005478373252307533437118887428452249439273777827526379985576311897466752246998170463048527922723371702432717721002864001030281858498966201657076067021958569898095909708277522305150807047477992450422508404626548285548719925765443945977167252508697576097421797597579248802134588427131888624229602287403307249700730615587727520517638780782985673837271499371982482024133134051847919327319651345120873852182575804395144401733948906870300369875767269810411669982781590881539360813669045203171161864708602624002768979119160895157877551870973311126280559997451918383492644114027374687542032752867198894673710109469974295531393914911063481739337365023923105909052304454025946707955932045283132467520690799913239068192220891736634465067815647225526172078557288534978473457966042370348391604056603588577984728421870440013571977857697835695755269924492946315714794535075041810154624427700489655880710710190597283672501580482580447457456587110974134740832949579303609370543414407552256538066170770403830647094237118171134301908069468268843582009483058984241683797958267109508981185688825719723736175384704627539933626842052002083838996727782175688335354007838797164459782125539935943064799699940251058062797359239691442363166035928786003129864397680354593026912602271373822430080787078775320629553682612016578739985973080019966517685165698940125352482154112109336362445193257678070488305941057308327259739809010752682314096054342627049892630960287946441166886561009295172361373486718974407675319790998121743262505606032448843971071512164041845385633595182144119991404133382544199427133706819935108548391050943247460166480946923630940576904182028610720389563967738072017149288244482779024971599337278726336664888146341537034049153061288007896148748533959048939566735022062601315057291669161362173913416679578610590799029589634519566682517878588283372043902932699168178407063614922967621622372675280576875935384247743785291235005498644514293875797665329673063075841009290249826220946802192102761424016883115877276293139075022055423204469859919817266145570506565260005057632831548382060998856906776757519197369006861661864721566534054808417844284776184874230703839058932286045244704291149834366461083767198106755647458511503831403346857533065964217947615674165342623492293110373761133731520762459706220369185230268656607967806547158648780159692668760441903182706328658618559400467135207623760629560058726177168562943110021607649541861313147322894767576699612400387255896340718956495122660209196250743161773862894777811703221012356545121093712806338247546859385339806907860792315981643117391640581613806556233782746857319865376872915226828931056871567239574267194423013822844764139769113014911292494153057600047230273597034272626709893259287366797396595003787215230142975467562897840277618923015357380018165659323249971750212599642723206255460990640920861592164835715043899126688870498250724625979430190189946358497741858935841151521004126853563713244923406264133071930376209899500620537925584929365926359274639515109240300094142855229952270958009585689738443881034599804209394000732048241167247588552259208088731492273759745956419657973736283960556269401327201567641002227001164704971950449677248561878931066586478363561604325275202686878886330256112706789515981906661085890562505859574599854637258998195541364478472706929195604269219350386554616854332959625775350550343440397714810843296886256611072509408083797544896194703341069689283118097371936601334599462633526993263812611111629723886436471465977484376063952023272125895353858171573042022842607288326172446844832400716320414307292164219624517481118023145454252734862875760153655924082162785452810572260696213543693207643116899239866522159089477037836817605126936705119517604487934768153027825819921783614301579667862940074739359913839331722785930255000384798203672678787114878520116522069994745553332894126390185309626217594828876842562448104959557751524517507858152656219899446614952812345744859311331027186480593251300011838127583163247205088022926697985735722483579591119850657839322070367802841347039125055634157033146577560587670893907022820638132774188827615847295266042183766547865468516100918769042670609952084435581305468011831324237041381385404487797803814418821848390408883215872041187248099296030759857804545510126954123117687625975397680338352245894549284050485635677772455144433109515800016111563593228900752998434406546635312821724364365309498357002996349188629441921693007239973460215837554285090403501519198540225766464207311394972640998622135247835851054629095834465166201574172296612021316897691164038360549700190771213725012732532521795854858526300825132514027587435624960685449100770230154830570363063860813261171930110278726192608163517556259677731021601468906673752166947917330818593994298218238111951196911206031639157776872977171746805452242262347240137374504488541873778142872243769816048629124712133116434603580772364838752820400760590782633423723784428010113272754723712298754206588018393092337521156431533390114397743008831578123487200433553592111046701676777931106062140867067831255428863783899285466798875976768635669120376091209874648603832826302772896273907323798688994156520549854804724682429445089421950770671475226915207770619113306581000510981578482741828091903986387949007634148940650119733626521141362705101325386578189500673730054836849240949086405526468594723673859996534750871798252040845632319313736039622421067286977041157346927577516960680269360621274092036537618194961316015963997129786243567626744465544405214215954571348428546054230515946586484304721940113332692274119397704879514316078339673109146392781329533974876901315447736944568628916922322838875541778711067030275598815363393084649112891452618718039525435556475823216400155903482349816024299519815845945554655995406757358315311498142395185629284175447004288408571477955564298801062722484379909516867478236144385058156950417483266378249249290362432836980337984900266547578320716565446184267273250810963767716986283676404592703949745096331194450117377001380606574387521900635056768374147772652530391756690644034291468003458106925266563238973094235566119384079967029545468734153247449561979685271985014623162748450564078928779495666505879849658742170859752984076220647975010045794627248183174360316593984732006081850666047481919611753615458650812403348396198122181421256363961091404618292085285190070689597974500735990224820908560197195824047172740245975116691815374997597947545952936673894799695886867550195797876240680031171996157863141337595993293977803761802599094530049551529971815631162347986115662446377874508604917037412130568400924504177134492312477862247143180698976931897600357898970236282941028328237571215226692772087938373819235208907872927752069834424524117336023976029460075802162829988772654589323977740296224028827694503959372971714454578210018586773182743444952681279718660168456235043715943911936083220711448438475362954901060988762612985029160694432601376759015224049579057851280416771392319601680443555499694428163910211943190277741420367351444804488478713021308215678314694437497791220690190495555715678661586153601901738309023257890711599264686256442493895881609862627374351549558781465154322570474420545188753749060237435078384713268927192491499117812149246487483691983085371186411630696738568375124895482174565629156835161636006579367659576409867540077864532122830732714190924459316191197982624651938620788324155971137387670302398614588116514570919437543413235431537741684789667218156352053601760861943614041089406359137052655852589644326408063655521126388134698026075814117106340478656539102075672910584630623838329855604420344712702256688601661267609393821827098205655477708055352364354292321196970451974728552124148164980497685769328213240800963741318741373602783725283596608351079519690627417767300048228572336583458421623341644729479371088528023902491597653910984070953026068001771206801390537629459599598529525033569607062315256442231711968170466953817291112492468548192600425319308753860580741219553704116857430078909944739043362826289923201518325345240354460433475534286315050825478677126930006418023281875327964980309092923970047348305429296653361551457443911022784984627434585849362889096527910087385505354389811475777024648461925062104103103622004714300055738642709506955098618591643984749929036582942371912425539851333983291137294931204816721292240880248577510638216748654577730176717344457958166581506368824370050872102597880732416335591564583838257118540816240692648041300562290760132594507737176356141249966415318599262768247633183743630806370752219038413783733641504519080272033390268087402811340880089889267340593876789598965544326592202721454617928291926844356591665872447351458019831705673811550463364765545874870706394471228162302675362397946802974233508847349581181877792635290500592490839763527519073073840560494626982177054961005511073914652354777302335020641841818879874561343787499783386312561516649565347065237917710201628096877114390470654306582011172514316973272476263944638808189940347286765142271286225045410764431507635662159032571718642121068315142850006785308487914863469747967720907076835199290627851234938587443595654759600203974040362414271941573062941146852079172030962468571522439087352180664262930252560550517808735229287545397434291864695794017723316982730971497100180802812631294191098569993973470694162034232955738467708244779665615925926216070477626212942141290125471689895869851955564122378042664499901029935729779121116435169797663623579054697148319137239245598663726232076503895565502803427149452484791299366035309304773299127619816089586437957169562537112683192790993333884917073977630965808119867615123139702002294993005501771827127117814793237511116313677901630017559015912230342947826997252870205128395604379045752675175896604841463158725011041127972619128898780428295836135551030800261280675034148733670641842259678111987155268052731236719993736268770858276143400365598496465955942028673604514581989506087481185672956904537744765827513571860944966218038944741694244486407148869949825556310927984247877834588467010768682010934250869792362509803791935352646164887394155783986613615353655546747760102544663336926082640058209274030970187052426362747523619656437014319294434999520455953837022704822872233128685426309555016107001516885822919875015922582590371914388632032901697077528512870260208507430461073692522801058266016911340415513917663595098434127379802616021599561459348430192849984418930771792507640435495604091946265190757857902018418515701786800298739877764482763206516519696064141942140676319992789698183049661119170366746432946753359251111446937086426841145080982114349602402791348193297135437015850884194383165906866468929863594117934450277034155348540234698903104720038880740610785991264218060060268377774058881356069453930333672154686602903054708151675031298795174616344712692298808204021607596231022138576481506944856141167629336307111800500063030642772971728968378086295413471800063852327029767566572857040627587588080096961359756015356793880422432278361441613621431852948348609334732158857566450493336824456432681722503910906533218529431737237001253976387894089351235089423547428448520198277212925507007407083192220911195520926033904674562111139763275854218140548175900410153164616926106097600339205505197230955498728878525160365370596556491098596476500405777720975507236638411717700385422953288677046272601775594790509190120728439877290909270549224025541195888596225787311066784510264474576240297597172800521513506608565617946699330281648557156074158575787164366404100546613726746943187572575952905801574432567332563492614126721423712696988857485210403820474185428669920721782155125991987295116700233538026334927182166427034666129191504789793133647240367963988460148337734769459064849276967392138195036491397931251429299190971701749748462726384506479362864888135275057121277415775212737735062063169435987210018150753607883450205213455017360150692619110094110554713336276306877315362149143533216374527156109656610529289717783706560025175499823630598474866990291102506550042310436134156774828987086709900461469437644014094120955846068758181785566103830301132646936073919549265809064294268131928264036486403558694001506320300977169547043500397409346959070242354758010933869440071823809062697259394766151952810557039014738984753208147452994954797399776192989606697936683479439965662537250486813227515215585633296769914278485749786139320189450506072251479166375705655104678227483967016973674174669025694027021016775391381396937815729731512593583823434946566011592612821935406848711290213268953931342864125178140037244722520997929039895881469214955688140387249834250959303061537922407671632933313824271365508049621993189197483561868386003474578995040175673308926686573110341048455800860118962986738127195454510863984668219488956646983964044077010664442291462190948523294086937469225671180292113029340818395468608639145889767823704524500200666944227523804819350585813176146796757038129911006564425833768102258234965742541103883233976436177525151498211171636275381062096737734772889697586383594936700301173528090932050379667673964807559995435753938981964121940367931926774717989597826602604523407949845863865720535741976960059942470693950353160850120436376928707356632593959636430515712816277903110804254776670948222903231308580449389537217057218993302048158332262450750391325714565180773579616892927706051427443677926648181615660652285538547568196874345706384594724226325765316795394635192601717757459104557689912891015745630748475786607175980489194560622329241612458724000493065770609618616545343922829342439991171741171866475637394232087263621559099310429354668637141642562896972561299902964666180842243608642938578344485500739029748713560190808537140587758719417457180125416197670190011944314855508817082848787275030172056143565561760956455262184069408520893601459420475851646284232699077306411831642160729258230649730885865338022537003601089977488492768961533225740816261269094124357642246743102002208959448187400056831253171942226871355565895348267336075446510803777831868249652749578069918437458811742547946868265898413235175131669738867412351817478015710921519719920042313781468653852465697963728802076029455618023944847549590432846929374385613559054036339996271102981542752591471680567387091361897881031669028502105427370926725775439807815402505738303100675839627995628485430082857776395379549232653617499699099613095455662856750690398768236502176245630017087631292743608436146714890233266431661708722312462921176664243634296766128778755292068466187196292975912627096104579026742288251515910690748241711228916878096737198388271744422609883547926717468038722204347022916494981902319589303625469376213800185763580119963597876760573840304648870366175840234252120130080506127033995240776202204316455183524017430212948102605013776739040413642065913686384915532627791689663380058338340688037472790691368466458767753390580463254244985666964388341248867912440363088751446808255213205782823129197628870531044431397626268668795866131732784275902784944291203349346896342458471556338983501305775255354807394212153833919068446112431068989200416509922105864501935551133606854046589122420230410445670826718466033679546673161726871690848840460146962049187381115036404522997212282536765693151324691509770588948243504141055257628560887068209517784403725906731651061236263384078570772347451815380566713764623769253209818079366574598398406873577095686565783475466979138883782617225804059707422424688380382282788962955465505695914690352638292460207002908260621322546281009130591775034994527630925146737213716784959849965057957461603598331737090772473330356238210924408562689273140745846139129156249925975843588562966718505271394209968075957197301732397083700482564744305871385741300113874929342116617304550346272673781014401645472135372217926807942034879971629106381307279276629624823144623197397112988125661208420282460543491348153417163617238193376156605396272716917545434789829643840291706102370411433818702269654057331711612979728007628835020399552678503590363315707804040977009790600984510362178135926215738458376648752524048926895538559558833430716263660373722796206568813029642196748549217239304849730991904138023440792309895981830962626473821610906818120477226965706561020136016528720279440755643682859888343339608633726477257055014972487678782307267422865720693239913947738042824509133211052162411180098241760206403713312922292918346647058841241371031234688706231693266090293452228442492646661651130317549474839360061228914068836587140955290389761229222318460949024624096679379963263413730644244874544397961776060911285656248320779892175126535315414186508382847261896486972500273338433866961532644174985921630862237993746509556414668851935521500881519857976612525342853603830386991561451602670934894628189576534395010757475992613065665025119010767852796368065587072818582682023044766214707063587645716742939519116004328650065371040810608001333860157274525918405599586691961745207989832717604587545113740391275478477413518312994119731640140023783493985017464672755998239980419198914046913018193688642498993160386478649312500617416860340496287654783287889110343882285127475997235674992635456414224752759369118039680954576490607586909496907882392701779771345439763590054427426642704116307392263099936756647680724298266680155111364106413745422702918185289433623779459894975971726803599895225141645389586569584645574669488401134413367539434505747048204252361793407323690750614091555608374324333396642530479446548232723604842428017952633023037318251633114677591059603818439960042362691244407659392795036334445521974309934294072224199860429047652691130818560431880597105127406275095442089265131702222932611117051251829191909529458197309935851874224657692708124145275883040935956538414246449594415624822525132901733162003175076572747469495955769751572504168475195685345278358037428192365203722628705210806414454075955416988490013893744444173574730322382376690816162571949218565780583857861970785276158709130057438549965003097996620608040616032371466410887192067212972682962143633790375598105890107128563846451845713012986426648479510144435212585046501337989323694840953308784155301849585925559795307406058749981952626875134230964446778920065341287950677632120636349678105039581036975622250537066561841440342361875825833383928452898212222141573726938499457982522410517955268276396466622271068903942942845966846733502383991120233898728136736563845564008702399866494467443715594885130679680267363171095695881521035889486540089367356896546781418134217467580471348007880070692709184402863705518671570836846675493448373420651936602550993101445956945655774365711617552532527841460452874526050709149651306392601564817927672694898041413741844749528772114258070790384005438226957387968899649131177968544641252778320684751545500387004529127999797392433415108913159103071488388082952679127159350556628466366495352786901256372675754386953989330909889036345678863023601164554687739766522853297942548673058530150301132683915311411500393059879548083653556746269819500492436042701648033209090213756609693753217048618169103194423800854767151129120878640114836236526904402780067726773263731112168346062557207369215266847236609942497741857358130151788518029313297149770933385298538868293876899116036428368368698408368803902740802389465957712936003863262461587641672923709171866658158711033685896150182806504577348509224457418298237279500233896870331194643665786833377766180714426970636453538050069015987903029833162322562428905595812366616767963432965602545360301466846839952728125694272089698706697166983589178510646032429921216141884651599306469840763282612012712229096558861040270450417838672087753728113400953027163867410541332272681425286649630977200351796400559747548082061698857672747061335273617002042163482442310673714801682837815903311560635898120327714647581883531994151447008696930135640235575778945722726383012009234918032237996978891743576011311716622070971476217845867225719337711559108879239220005950112980302415924252220279921201714717981843722238206305512251959564804877116306864849311524623262021295810508666345118017502700374506194045976877687692079098555411071708165888021640065758346103578916418762522722782571670549517895517247831041577489597701540748730178384689275721526255032682589610593326093662511469361897635066879285712677136957047511645334286921234832855229218372693352794212532500302073871226754346682544191871414891714235909160611945895279253650428577695515676531295800815568307159066568828087372307006773056529567225107817579695493279393167585964522092859182039350165195256109208563017199021913214535374790571310444243399303485215560130931143367003676222687345563611312010820745857250402743634080885616598025923049944129145569773559181558876812537903360246550157453468687530049774993533790660165601281769811040749702865428286133602823762911047987128127069182981185140789637402847367698695192238227277642278249377124805864871345998941100356715802046384754684136686733023245846956230397525429115164302492942273625693668241097654979187324839849191122638099788503761937704836707156759323912664287675831805830886688945253504373715342580747199895659215239564924569490755589896405354684198488384086451223511913188414627257561990305177196678275865168218113981034941366663166305640647327318722145791400789088893751606401451143492827834176293093116659380349308690585151708048893841459196139572326212264364644119347719954590612664609582505107678510649936899642686409818655815832522391583804642162283408288167910092864047842400520071537908562346300476618375867261868737679337568008592873175701137931253967230933204081766458631759893591663791805723942071683003795196423996772110960749765466402782533677977219204454007324806652795456225451613874003805832462349702146941026053455000473993353003844169461887312220294796392132966893314159981206039057987247330418866582405110577172519114115345742905331082450159705466890220486405281399519316054284395457500110503053938613174859808358947712206670028780308918534765549933883973522423706565145506593879388231747316631048466800421707423312664424384601023492691904169600177757523222803917251003858374651805635396866910889875307810114607962700927128408469192634197655500329079869673183399934535512606050714674569606539361749473552165418816404900857500216612731931490053882279623074479332974639473022609761782446325502889055382694235623070687587866443899668669504020196772213283271156677748124365901234971603874879258717900191748197175356709296296894680400513662459137634032180570857323292873162967997194918652301514297502338920303325237194662252552870804698631143053131115480488106487762363928192953585108118080538827153316724524993822137987968937596524591085483525036753015312782460772640613480982323174611043666575852647875340051116063515841523673708598452383047820114349840270619666485218754080314403400797391028827707474825391832497881561434417760874222472080434779613593346395528752726218434710771775815630909721983070023485831156691708699664410033254623843935178440014740490386127740103977429199743506304384821378486494632982894391120362755494871926237875210174821260297590604528558736857222630382276029620127554677504209390836939075699155728121425524991172550058296859263674396608415194600382568564536467040299787725755810546982745187060231082913126383996819972909878652901220082978875324879563974261004366697769497020276563170302873692133551082383289972675385799638393059345494740923079674077594137661762371316996049964032034331328523280668462068593793101516907550534771223891461468213989879233181831535994014241530922578877229583534724185494901379537197142442196631919755882310184766119289225600309793451133990924297877683859595421624064346275991979314700823086651074738314442215568445006170912843068386340346939780628846063518882856963167250404314457506039581437199399833398175621368711178989154717132406355535887945950437062898912184216575648829568454508289435800495472118521196338933273636559489464251555646338551439511863935935063907681337605409223453637153235305206193285527896686822501660021688212325895312905049880858104892172889399106115604314068085467194015466703951230752572694075139974378730280484397575933306344654497075367628687111098438308973930654251324100765812122941255397295389090659834724610164132123395877970100262396821651068559133244403013193634059237077393127108837620319108497269444852917536860091043822845667895045610253760204072746486938831579273792055890325668982841716102102649492970629546453506493792600306463734628446013086769059019848468445222336143775955562600246371732719801353797693429197579834544081693393583335340066884595669485323688595068862948552393057813151558918239327957014989710762335511236806226579334589123585792217554201306568207856999562383595091388191099823093396149838277502814454537121385251039283776977317437026556619827390365900309917431131964975827185115747226706549772586785041770654644991300853921327116940288759603576774015650766720855557399185365783158310496516824602514185938467589309155202931900935294815607206402049131172673195156037692912082335860098371613100738240040462104290559928070962842785240923474066595872220493707035035928063084750123892240373849985662218843679459856842651955066990882379767708378529821204210257304701054824476569342399923527245621461857383775794876909669278620995577852159648692422570978647255117954513294574338190474753809825938743758542536422975330825317773712799560513085693600685684839148676011792818203240573180109851588236000630172958287392942527437036338142911278319165099792095647310213777087256421215873026247798854240339607682351119170068806315095670183172277386835986937353355005541040539626864204156035437012075901983191648961694656937741610687310969252645176111863021572247415429035111974085321720017235190502300020339845365088464971541626087159403525137333508857063919811266066182865086363467998226954788698178017527249720021179745481773305964410763815561651879368433776772464585366384845427105676042992329276216208227530119097061911484951877713768451211222235106400641456633990156990127649472648647418685353116781233985744135173047767927486058804022159158520535788873390415760139943038644429089815072566763697840486209398392034309613223128453044906758528290428440942344412694262276036742992617780549853173169082112389283503852605503215590206136595196718029631374228394223556486246189553065852439477580621401337367755885440232579998476033075629856143807884586526243436121510584491388246248313813080860599454978063686062053006132254564697176627725493036152168760398101999940458144132860271725023587655181965132263699346329521076511940133822988604496474227487806296378817352717499384841990541201333706598414630205048022172429159555049899363420642363657860077377695308442566278875673483473542661105353155824792843172028885266508189701453546210560159420834256708432613565899154106153200360383046207413276880014864838150611480879211523063604562597633914858292644856470917163076513329627725191946919645315947060610472247560718293346237171901178086977217362591027804024454585740219321347015826694005197690447219959884739150396048768831614886510248323780356323981903551037884187413163814001747308889235654414614055783596662416977130294220589580829927895289923901843226809891513543312420452111539283443695409280929987141541192322690534928009870136681655198442387526185566132084781737839790409460495222466949216116112266896714555207998396061907562054271459721646524674997252094277051284461152252344155062940880231294319043022571114360882324878388457781539827792425325488510640952776506694157798172889525116501604287952987855916797002532031874730710246534862208650584177648727956085610722951990123136267746105370698510930639522162101001851296743303539597579624486657966215299121661148339103458584014337558725905225429333281668014762783563411145758347640190078153237983344297579575559119093615450758502431526231500762290704370547544048586928124409469774572377892264571201084662681381762116922468616192028320163375898209360565522321401858205024794203171439902066541253368291997782099416958332406359948723155173856529422647189580971563905475498732687489945304587366111143317598232360534347139972283901740869726352682016382091573865475298028245926839830108766572302459955353018742211475572690272423212019380298393269755207486630652411230780348527432413341008376744331690416860920659091458637951050704613243576017529060600715293471493730223737585599407813420109613561862461915112149742566861196557906562394999931634490242332860953337443299727964836798228642978482778620372902034677074237712298882777655626816485958150096873913339715550857700503452453748299567397843355971823035965264432405215804417645553583114162103178889154503334933541120421523916625459738532995082361334736761257451473426026581245301819204134861076337480014119887217875381618198724369309041836096083708916431053430616559594084451974006347602613861309598548668067628592317798406342852820567709923466767709335361726834197161608132240964366348298650232835308203699882185816709790734300923602225545476646712477396734864227650922824439730990361082106692317381691429019825011937045521858472116151843481367691299330440652081096592040108723717141682222506464498029920364718460676724821981272432026807396343601513395131803776346697604615290167388568399408903525246792592271393631911749290069501676028179524526117571641007414409293719634840361584361455451996987332587521455554894018545227746664362436224625581017091691907543212829625739524877670106234407771603753914357070046927604925423141426596945794228995968212314063140916647412692486584413800693181679158974010560813267582086482190742782458253537744809228661446223937858036343970258467979840713294531979430174992003192907448315310294794663309189930462340184490165354814767060601736044702421769555639145653723753909622229843779386597081078764500261096758110968495688475413525918840508020203478062813817501242558178030955341611007742181419797888503996733064800492429333538070823721702310345373825953920225501436309872205766560114047536617509983720777801408348353387703550395472492093974997768443999781928520640408262908112799918260559641100698716518140721761940177796841653762238232548377285603231970111095034458039093482711021459906090737207507921767824823987147931511668049453402707071464218645256702842248885116136018301836015292503330837695235369321610253227982751864396736426474859282450045400042694245198647940152322415101883385424588447403207477003126797456103447083539898926105429545343125712325492705982328019269438043939120802131284307972093281361638902030544828616536398871747145881342185206510353893182255086276783992562129205142002194326322058450499332519179268744353089250452579647306991776265794726946696942527143766899348574624614673051839780576483534309595122725447513299044260278913883572372636002365945763874270908481514544163319976158905236594920899172601074960953251671228930346850299888451305142100710604047212982081014382724033836402674326967028592929310824337058711087688778757087468235349563003165595461476881803412477377405477889934742932782340927300785829470101586430596079418805330352219626329837742517626690975812063213835462348883629244831133169362859431995594263269161664879054959513890850475305035697963391729512724841098092046634189758309657059271678189689350631483201556843804563655359772091904825841985380598163867548133412507121412502931661703565723343426189249858510325660509502081550099387541499878911686930862459478891980186530190920820659046440295540386567248819082852824790413123353902164857469535845143383983198838222183305899818503187482216682647049799568558547575173059925177560682567343901264475013072080455030222095892477357779303671390791559018030860602512285514459317326178092549197714362745428230140567217588867062771670591060929592022076160482394272581217918401654876294925145161428077561439946108580824003775756724076689097471443184442650301550945248273853704507954651028863628404582820734442225958394580439757659975178712720202839238746150057208846007353396490277779306237508700439731073758074996790063330132597737556518960683539488227273502628025304581392306616922309260031296997094280496215095058093502043268448300558408262148391993769761095209031150857753290995871098961215411750018692606356982670546349761817885068962013016079403332554019416838578880455761879586302894492016901608977741383365271688413167414269475288890209362352648395642519476149887560876459323704366912453751469430128857535621676845636093342357768451268739927404247261369171731820693955895441644039821187316870897877947959829905605800194719899805872798582089899368376342930407174591341326042477521046388699759199423915370901307208648511944584367075375734974079395156993846616482029892279737864225535131832374579981614569987289497144066987234779643824142826694387649954834133626404136482467297333344385697331079178664761451286029248156889983633374443379453139542045203985328199346427057234663014744420930405088792158981941360527994527674535526788036064250923737559182564972398473132586702231002809445037759382841861815484215451572547992716340748700792407881173215822841719258436445135543822799477888103386240277650350118830082706083285770220818480454256094213177966551262355435979516161190357459268845124826701696565725586760204746589582070856620923412142719157326364324623185882077734534875258806068666696565298868068034958281852651801502812988532789950301890517515456919968417260242523437908102000082241942417774561756174186457104500293221947391267660998781260447630690395098752099215309113068305480084648677345397452294719594983805468362466254495811207683306934213681058313652179083772773723007529932608095768914384927298659060835556341050622306032110131678689979822945712066101929282498080422159983230259882135019657461250407236912174757511272566682118823413514959030983642920031225144217506096247530926906230587826348925818338647782068506201216503945368988215352192754578214007537832394137382773286732451125645897079408405180703175000366550522168133661181667437051959736146683155609373061901739197027124960764765712041832651367561882594857252320333850637351340038738274626711856656604764489174380757258375124159811386991404278744773160951543880432646531841926859622501941894594266556695980990715930153858495705095355692235769763767089633471594911213971196500488648403188815642326148075465990084525092607666195716307738455748807772752724577549481052335790817456135416495292772524484927291426576081336761058169259687483652760765699305646980917097445159913519770586107514976120013526067680628155472047434001581438897530379023167956250822201197364785443708990263178255427119252697130351818330615219671400020865932903560344821771593327592328016889070346849083764482105292453563446046179500802287643040679315333613587649563228829773474771687801802236308316025916180356840684924970519890731443748568826815893425178112416695135972758607269127223670134757952834710536102714192696064737308913078686908582655972727980490260215073730313940611184544919688278354694745411896362879482443640300754871173754049684361025638391626158760366236731072453738348487730902240028346708070818174655108530203685552693997174385835323713190193304573838643166132499493727673715069009880795501518901473830422040170954006271320210138856058415166282591553098872854580422772281331318001979798306131221146036054685711059147122322679121381461730053274449673856098872097028474971356875459518367938394644226111595314244687348022270206267741273707006131202079778477181871381842569677413792218045801257973247451643795944119569307216160288165559235184205912195917652569164491140762778028034697983330701755912002725700642293021409143370590912758696698851682928472077598422893448687781308999599627163733489798687904791123945363126457746971463719996310283893236350941194103635006524573191470327977736452046655641358610444332708457273710890443638264325440908827796747552872430638271866563371584639825458711653704764221869097639547637674324994803345452384593935333653077351244243135000191105669283255724487268657088071917750742926908316999478362308746637364712951077502543549355544457441748253069275832229977541802654048205026862822572410310420580686271765158804739943436876048023648957090100675095855080267455402418513974662528143940476243020112065325204281466725691448135605869382550440978880325569104620070560524671799855857049005408655407820168152327572271797892537852920190074414636055064837485656247980875052442534302658239050350633189792555175605624067789981737508567007279533586438575101348688509642215002329187615645386609724164147713754750712703739298192598090278905193473763741684694077737595152727517146420970457626627701544867969504235976141959028639224417543632298973860816812897257468436067608849709953552679691418550507723820776236811984435535984007483443019739255175651447445093520670804775957303454232336969662616161139724509432554051333633286042282342351513138863323851936247474830792903488480184395169868527079541367947281786679849786144188925753947692163815122164720743736522494851008244005974273143089281951372138621748524698205611204288634697472597085555108579162611797470799535932105134297802838720666101721467520112802000973978621135800099503543124442622278320489692134883815177196453769063723565995314442418393092933754101658857165773122396114809345156051032411903072182875768436860463458262149064974965884698085410051633024888385174064911322083076548844520086953583819745415279938901907399149172561199867877869150936874596053717855649924084975291711845913096877586874560542593479666366971700181493556693484850866953551194869238824592878278231365569093810047944838183443135832306170965346961124130229240117123525457796335503014969175581370458352258634071837759275482983498656584605879128136462025417812306936565024180928381383420763516131909528992087741281825655701485169046678210401156190562421456818223902799653692040880287677765521955063500732994545389371576487335828785861360132603407393891989066762993356741646225415126750025905371329351530938757788611524684383581797262743862342428101465804075834219270935851982906832104376946446208402176342498262873377602874917058892250422503725404955906022768646959208658154317173688630667630262464351254713724519837130203504985160184873549007621302642887928808914898028097150654641049235817376254377766723838058673549359285749645380225560489825792628823274463345060048836857895926710984996468860070111104993636465640452776423391082222312195145256146209540826926089355359847550909140623878160614651481013050510995556823106041554008271902347230407195744162834813331310117176262638776825257813455363622248311844839054877875394124468145222754578111333977467314267347377219764997446501490252692188603807060432834421718248376903536716289368144374215235325149487310142264955458432339661474386010023944398716311949313320519946712639427327912747306629478774574225824894462596360315533803788985309218266814369336945298105105309532342207447478798146940636065650778066096320920695462748497205801235479624269444065707268290728040605664274291319885456407488892784322014153659878685451212007224714190774728802265351866471539920903931053787562598459000078578118414768704516485126554980134978053852048203729802059701628275304315528560219150748204859740607086440440442914630313626280969272542377381934863494400987422939464418347749926162525977377195443647816410451325660448498044626071616830182531728722471954518760274264475981996565066945760977447582896151721527634212500139619614841472839159558550086909628672768433907721345177806217759846495775252908850534976426418972833061160410904968910901056089425769171633870346992581471703848042021390822124313729077314324099331750561403259650354063166502639203681686148805113362934300209089513876622670878033715572108230244829494685092745302653586330694130293396086009413565505780510091060539692079682571579966812040631427466962264342377162310981599506970307895281662004714100951404138524288023737839724041872199894329108077374087244287720215033054329015173397165180662805495741355404549065206522885826231059138344899182035989466424051899443929943986274162814764588384157765946310358538604378258945100969210145384160021871254735605541103427777792326866171510415055085933399345996808520454317824671610528934500217322867264435257215217238375783355627548268268045603518848959736409492243109664492208542249634945561069121420670005612982424957488829662801119593242142912606404871176686479687171978335046600581463898671572912721538657697298485102214205795488993007770015855618272091536142103962920994789182959033946920168117035492810383554175423764214514542060387894873372653054656433583072087893880539156647494092064234454672852457198929511907624115472115211701579358969891069027098506155578942422624231172791024650436286847290867873621127294548229276992386314525670883510429386326292878836113350081633660096528583205729795067595719466827280374767329242666259737617097979820677802334348746370672841821107032415290014054150548851723649745639032986453630253131580903753617045937023994425907856384755310968083972505288374029930657741973555056913054217941883431721858608153813488299868711779640743355822844473675644162192386065390047520603955283206757172730481142694467802538118588119633214104831878828742571266019282412606725547489221401637388534252541828301183361895758640312586684693208942630896129869001243809881205852484768313264206240595157127820339419635681657206608979965787670608643738151021444689431252532637622885222992565103968662490916745483635872531361716744953010821042211069724825965305661476758830882566974689398645652967538334620037553817851637214172222554511230216687309732668581799082782920834988651995170465687797844860802980606125328267521219278269215162601209169181156198373153423933970592069219133543786143623327108803634124099168159675463373269174353340620817561722462094824345364122482117794131296024596258414563693372115995559502230155651693393295529326278443569314085679390618299567841453592164702637441789679655398670753698924548688427603876092894183928010521971896375661481820435340014975345186941603456561687116019022715171860137369459971415736289775091705586211942185470813740550216790952627660155405578920308726518596505366417233877041330547746107528148537277967043528074566367618425257426339097219347631960277164115952442927891627559938436278594562720052371168443560375368280722902022096431153853976937433742181704165030480523776015674263921151053563757608809441186608522008467413585431218389385593199756386879273185027435600279918150283819934254392499338475990756538623202954585278644841595591603401216491013616692641334361892610756342628753221472018065935376316790845140662418735313489451039315236487176681917158518172797296715065331934463807467819250755772499706251332177240640362150028749700117868390481677079015325027645721492358584711972177726864732127677742732338557465893097890319736695470096682703294139916466970313973783827027731244351970470245386617686586241267697158858419812885886062510353764969057803853684899872475530955325678730863540844161160932539466289271221594409513124852825033625993698710432177899025212530361931811377425364650239833776301635905254923665055376890640801688842844003946165204795971713957440331167357026925905144813304177947808422813181634263166154558837775414864848941290350347582262517405083243572758037969160109955889757279319577229059028992774307644436754739135285440519862769621750723396718350363616516623164484248754407924186900647448229106117512622367130292268874614446753208117613667740271615909970724887499703542793027452518360819368804911388768141856682433217949650730091202623661927194014631351970031493811762976636775072984418460829100399564842169032284807207835506977941565904156957116021409718140073941301600382021911756077577008682838160317946058280372432953690289063762169971291505898503196366470938957131844087214407121475042587245593796826928565725285685692269227358848528427293391393143082880789718603629237936609957104836153909917947720076736410257889140138399230546513470806530688615099692515480974913476821452084275653133547537143073699953596401211792246281582104034712860059335561123836403736181006148587219526454767423526587195972827526426476828077880375249715602291413694928799694803784066514937140385563000910161438149457590303507027756155932427910249207737371664253486447207219546162623312080515246674094277945045490127694643156195063318383564724067179820013953238693605658112713405473966976687852770431118460954797589794404457380992853550472580520678131228073793359583339965599529797343676989288712395556984099288007824966966109217300634644008113879149880453562291713083247440088955084269935858798124876341605754119149298771087822199129139538655850864303164745848880462580567574708970379268239042277871672399243428963332301304032013710699982287094703375715502068273239634287200547548760534514619421570137132523458364881697469514847427157796025269436185279792006427517434935388813807809583261393925805519962550979593332270926027347463288995267608640610283556595019349964615783134267715755907957798479850630672050920647871488476778026220448443643243411760149710628003428576788124325441388587056757646677647081863142910785737174050762956824222446903554476504879579070699473848095953762116038035464342814883061490620894168765663303768848741913857447107506380872786253833403984450780654559638761771090217911849817762610370506970486476975384909468716816037471293927977768688722952088353519588825764360268191314178690578319353057713955457234983169122794044019134484873845391327827744654723391973257697919624751933665272001163748552137544802835388024492240088118126019914756070947380402268984241601865579522765769545323524237892400934944024488105529265476344037671544677111240904272195454034564083433248780109326682246274286539164042823001219916726792799739556894242365795784342220462744579476480807251882357338323307585861772142131984554420631902753096392131743732005625011198787176189717945220794358214990286176923664378222812886232428295304653416856402271278393089292880545350313922988176483438440437894792921848223075796204574211824477271488091901708073634946131761559579515364538192189132313352025395313462089284725142491032951863107357707473773804302582152788666144993015699357790726038256642400972936623823269858879933729556691847494241250485431299221473580947375132495679925238798419983699079542490610122693975519352349546260476127538564963875146310283107702135845705425765545867217233015284048197994396189911877672987295438463992363578597208197924990440441850346288363615563387863486987435161914318139431295270588557925486522377537002671953438023143434352202040310734166944718986253736087454153132564582214968797269394433398313248227193033636541384860372550479908184318856804443637313464869309054196688349150730184652269144473102521493439094569511343411138824911659051736928732057167175464166443309849912095158921427702982260004520615755105541534354257052722000036114543478756903409984741539486422121155114323132185796962196696972026218120781822854534377378533796911602255985119899194707319767728303271570387601097804794047826858350574167150525673720123131662535942677131406586547054811638377034639327242706118166466213217230496690836901918838617272123281864673786895925636426904356036282817201563162048845909348552828932547342129133672502089517007458229299904944787928893770494777727083056533062283879027355472898673674666390662455705645868694742344399048512663412015815423947326846247105429243134236286406436651513534509693363109641144448250874808290861074801164256678279623947178740201073200576636844363829191015898467424459794367347033404744062854169416429295064706594506361253403937237131121184768773260068348989026438508769509417180421013172521828097579632826464590022537618112790539064286912624201552461459634391214647566182796443759790115629418507812044838614196394799724813970370072837226475163717398947428369415571884937765140531754994938165969137278953046516884248223815924369863400039598316455618452862851462182346875091884076270008102743280306109244500160549154511363632953465750979315755341622699985691419474990962826214637429317781526743700921728930813353413138179020940818508806847358271122226782961323136702523476940312478596356311291017886326872894374362734983198703521305879346359691981846299611498647354792561433441336348194716351765581155344937372952137782102014674785520618681900204405268884495366031131579214150758859207731209577484284995478679714662165452564913456788412773123681422493862090581454797354676106191113333094959421859199571593817594536846897709137809292761732341453917803659419759779517339914051554598501266784768262181803501594375632577174947179064426859819997555486132033149325416780815658135406542278077142710049595297347310914555696506452529814840560514168899246740887081837710741622904218889956888222762595765239563687130594580113376200454236160283966396242175544215908779645119080874448335669543056990657646517871351204127557234273264773910541244140319994439874166306023589348228851400831673877336780640018164625838811799028944261805113472703930275883328058444519691514309787966124893311581442932005706297391500554594538195869286148844085568425898565344460591914388269170055280898146571443291514490171086093531277649940608823458657783084847950713686022434627203712000631116051018017475366570042188606422097536911039085140703655092002840798532224573773705812388989925846633134769472725908451998844631298331333434121906467302960862657827145230143260318368484775311818330950902119617898634515172089222638332000979609719111856982410360217346415809991071909495877868616281080218566677112725692555174249603542932439367546546258453436879669203972755440067930502469980986375328343713171502950655029059617677680279818986945154565040662110670753910540624071727042148003073421744603894852822307221483290687832023641914808671198638739140083789456361230323814215008467845332828857557709890569475504314864368422850397102308542762186479049438020912838229889210442583419754503917413657007925489653502652204659685619781675176581047463668798150834445051797265767607984557200651135828765420544252114367721607446691440288500693601552402885544802843169947382369202003681958660083830755895801276544259443379759947629324298455079192681834003764668391452902054825481030572250564948238424640543516552415764804724141699305465772379923836434226012472244659554915974329287492526997863426699972497789295835559031283655419014642947247232145825592688703155423997359907328125946600240594699887397545306346764065509650867768321330814700261354966305590847818199103211478046545963101349448027725553129220046788010765471501291552556715753405807544607983072856383903678171211896485788709785038759211437684075360389067253429554871818865307765375662125177084084502035528954476930947548198312013214062525430601427554834016931027421968605055100082474571251047900765646411228002294524820721577164426107298692913520532831228142679904355832458786466492112957506940817084032146417147710307614572751214319977066514643137890207126655677473536376883452274410684985839793043389391244978438998547498147399858373013897165169763634595777679403012640141731273711146989046473853411343186577922291652873742730221368316047287186067444576739008820175980410323620964542429125121237550659986790735289003495803862920263807496245060893151789554680464813945845719153787926788539963408514358596443855868749370794430738006174840243447187958773907759867181592336875626243925645740224508716065707302003352894931941094861968982105371434928747110317368555970681996798353282869691500819826690023044270054825127099735549962154895675615191647015650258337903852961056234492250494824766775498509967597832307464181750137592492778223173397183547478525636988558226814394549767499602905246898600698710217504534718036473898101938565785815814662645935851148324294084242844546194170708450188493244315514757188566422262534316977947669794188253531156297362639801320663685298458233610517175104611255694015423408538260420123180525383316034382933223928499454872647581478341327896658441095456878310634096774722467484200196584770260592629365864280136687729419185246776196051008753117710903209890352613360855222694031906529252006621082202574273495779007833683744281567091542391449052210659569294316666926819186501059948370808212685214376032163056575114224787180396810178809926426537017316420256876012439655530389944162401888773421331295841633100421129892896221084443481722670778360658009674700468555216301390057239088423751165424914773081355409482156910480366793980455110407999132280828527268296635067703600858639816114604980635062628456847644050006267209507727876495761983418801523424960147990565830099032130891415347944747448969523200618353407809213728006986503189012063248146037497941413310351313225169427219660689122218285669447314718256870011337921611688780874171331703019557009126931801004960077943451138884815910116671886454881703270394996449802681559536504606132354821945968437348081467201931637846159594427588517619392173939772960317924084858608753427111596829137787973518764331762764074592720085793125047640993279439346368341103277368269673665677590964023606530901326242774732494028251761508657481956166801152978034488893458944977763528975572254074633770977654991325017650114946795949769373616251943142624326542180897546216146261897072039544571084098868429275183258785881440656523139100027789675086698377305990863789847300233616448707473683122840991900385297117086366741223867671991534997654041092976475106278765452904111939979060862496505019142629738183514639715039369851002697582592610711999458938914281209128576638340043257778572197657145410429523736095938126378246230461038236988983468074640098319608752837878517443248830321583099338722821703060110716838289091771575772672335518718959698512158870998144877854822410165467943365262750701950717542862546616622389601706930926283448456174646715561279435446792956889608883376944028601587289533787553684350790177810685647316228953183341492076894311496598020390252481205068926764925093091553170042438228926067982911214714722852144789325894337287239744318135405269045339791934015640928314353994673932399970034897775685940154475715070479812439478768361785516936341199350321850211353151933883999047244628202450624853706049420646535261630137723992802628808363980981627546527759758718703050577534910932603033731137018093708186139837185461529327910769931852183047730506711153374199226784993760179732415433179031501522341628755372368754083778458648528662106792030526666565250182570352345166920167869267068722871677927318277781702948276812788504598908922968216403185572665265696824440472099640347913750434979489372204983573896739539543691843377571127578748217441910792465897114804568702534832793596309069157821066344465705373991152769201618016166962315048636784620158353097540283878583734421339884260786134082709533714484397313380502586360462181510988182423737907015175234547319399731527169502440079300361307145252273240368386769950977569296828146280609941806671564539504734705266816004027260554622466989668579862770817045603904699520206394210959088467104362875283222041612274204871333788873857138551648838493075353002839315990123787797676227815966299952582209381887549830428483537138022997207864439716444133566953844054293285183286411123060442155584045387673792202983249592061369224938510369268452962788124151153172352783259006720871506315513768420147648518474965631981878173084645715270863544625776681402277538560944296831407386908684232810703351254374674494736238923105069044181014791086327535892043667125593521235666596814345909393494943317428075521365469471254083642507960550754657453651114245887304222184565916850644873598794056636972347700424204305844482581916172584791767834537366548890375178935287931368361466401090532178820088128607679585516372662622413655244274318656291009917202303267529275561189376613899759829964241217763095726143247110979449904997121063037625715926932764344209296621936887178603351746279532496989758222797433980402331041517446302631178941815763097514255801443744357481649811253507470720339411981499871625684199614802338913348739087855930501621256160101655117989362984629547164440394868466798268254737638518602459381214724084050341985120505592366704148184345679385232682819744023550067329893243280659315744328153469396127540948404082351284315655805446018678576326323578324593089392925952797000405777785250665008382258539407684213139416349045788548272134539868203747483185381492200662830176783240591443608924123198246219100050535976922131429479568730460986388621710170992078419814887378652116962253591840002967891101963041031035953451188014352198580401828186470030462617691432215342651381947072197226955021653829033079405719166435771141439757814795379281549079524826546749942866606358366965580273459476764808364771664436919713220672938676869903892460588367437485205500999618588743217441679667275807467441162906597283331112358552385408308733413353724636422639941249985503330294067009518837233393421682476564979274443565776203663395688531510626605253014470576623111610701709707713956623275068040668831980000732589689400513172998567949000574207046467676106509211809527579426941902475420111916321245645439162965727752767405264103454329420172975961676934477617223998029420954219955367904008858081630366307645363838275131143742098196624359614057865887410257992134346307908429237212847821482772416115240235480657210977252849863688560603077845883332119708877518597278155543404245319047186452301131854428150945986421073578385072753977707770457856154712705179641720250733112796865526590081354184185372492146867926904353736089943003325433308332808101479028762067510551737195489796236492997944590391080230198440920875280599095943204696191129799231590224053031636442487461033510944669306838194510164178583594695199813675389733151480303461745315399517890469288771454992700164212002342468644049994559342229760839908385703528404498264693523301167096933177256273544847955494673874699912266221425465490585948645621603984461121749844238070923279162684898010088007438971384277807115677526193795789180707785785241950354817234583691651338776715535815360656391826224362728898658089347539963419657509785241945268071154084168297278783642983378995430206055222676541197167837644615042884781247894700692552879591479012712013154372653026973674009451482554212058231404886259715186887217695778177256736615483456819377733953292606466970288102676083876025505066698589019966650557579037908870275118496090966683271807383584070254256748628666482499792713097387394963429097583894442360529662846037989108131843524010820278851502491489059163281500367341194519507095466510331687116677643429042047580205662065010885341314228112213705599385500721421447738812355159298639025688428575704593699805921594724309958203819073142268064820060736779308117215296143936403748434953879272154339883990188858513942434638879213107048142706121876977365834636377037440900394193980549684827505975080912726682433315976699826474403982861696749536180357061514368215761275460506212823864242251420497785511673506370857721704293122133716846282567073341793207406181041232119491694554865045396833469915541325131866370741734514296154583087604592400306140283102893562300418457828029520744315702320327343912445022485307450134099739038768714189130548861047756570426725282152853841492609897604629703005707883946551529200928593308457259839087488948121786946731560822556851750521961438087551937037000815160339593666701292820698536664600724382342651921653813732009729572832425500874565767101044696246610192258916693981568224214076846220290564932835217980977899103538513420476420629174900494165181896698048288461623168983323914995548425994428468467562311240030325216322408078035582763453485235949212570143122833029666523399282836297848564739052599593281683033461706001390859766092011398569766009967569778431768810939613945116211949289031486973036255187350050030863528488542581868030541726635148656361587353337333809451485031064362715720018016024220119746051369407173764648506225497109108124206285922759857535844793249964293067151952915773114791930905739433873067915382764732216463420149635865023938410292118267629466006579037123622691254474823829781794510271152250572687541167827083088338684077853669165667224358955407333763576407026234236477531497804315749144694734871448841848747311635654047879032566466542469968250157948167775025085316565818846282581788810477151970060597445559005645002396213103993325577183105101140428793972630273617066191243123243535160422293066510064446096942987475292534420238596622092297189066653729722954211514692732002208114690683543356454185404073324305146892793474717415460398164902150985197881194964253522882233820156298932199111821427162588422941093901893727979479427725750995653931126250425064559352959371506196534959479972666203889113463876421734837096007867196777740685133381707107555685509490550720168599389317572126471664796830837827868744829032448264561996400997724898036642662819959748699734745531527552494585464893924561461092446844212224368306166903321225981609985253253548936567266450494172733240785024592554085034392377683325894948464772188395986214561749327912733346644311153276332781714610655335521272221779809709902811745689006848859191905439921719319813220336818233887165648809446040301188998752205214023914085892280647189553572623275095392109138962180904216971770733378194039019926248334268195786296571189843146288087384601896924375578952144575291422325972281928925255501928285576917493917725302100229607477325153662317706808746125483432622478285504522736426363124370255994437919518775581666229846567542504206786121502351754675924146216398473175502661306780182493203856961290567261196819119984290967031307786530100087722426670952334807220945292001915641316330618837399998299267710187127586312387291819938469142243868918764066758192414320495091204607885525217123123262599923827623033984385974735268401897531938341204121196199139834225833881651096212589437748091847445786499226675298944203391187348623947341597489383075603636946229030651028443133884723221178547268479943967915163762761249723305092420855251265848632676322793177067812218460437192303066153616731896751277007134595943482774533235917582016902205908263267864871591057295278462250654087896949399617271926160149643484603166651258777653505353476543891305087249509061663177980391741351263078430536659804574042467602704417791239067808487018093540532010021319602322731622253578388793137559870363937042078599249711603484332857545631131044447214533982497935560107301361138425612124224467193669197580896823599845648098244069777020261388232606025156730474693490239309902504988107646588942400553012528601875210569156457727060515979568627974086135697288438220024330466421109612891802994118680060062529813865753291791914854390365951127324222780600709186656359483977341247069115188036159602608831530374249515665046338966743754356449668708318157132145762047608341017825201911712827080425458493341651353575676877270136128699974982799603634703596913116802329458973271316358919011903620018359810108373853027662113736244644157421725585888107322675115253622286522838090298790398233500834981121719475758649754780488899228553079240580928937212600752067951061429692656634034045281292404689745554233883037651483635408549252001221664010782655374182633244336082697738160533195995465829861441706544281157880505911884814560932979397811661693024455905755120391634973611788779659603976864095972271754857683203519814297607077933027663320812947005022810720522321477374235325113792950177127444136193074654377215104146259304104517943905777229281330149926782859860806364408026130900740921693373246436882286275368468975470924577439121296189229166823921488737181518954122109369384905977992710010686056464323673558965305829633811139611771548306005730607710520235554443871041849353261279206677891673882078637156665086012064196979680667570702817661053527279900385653237971201921318307301180978086021327295650570406596438850601110181854487194536252504687017077953425941876719185976527762271698677311723609115031189458150769488828010925649140524183731651115117691819267569264430979941776173597425618733208178742828349513682373305349927912420795169090815164751071165973358255752964995667467370629201245597464610729863476526394552956083329213360559608820327452564256228271463826227678044176403707783204177749850254255902752103694694117833884986710138129293370624314961435891365406587308831239611611217967052964952789095025458544098895077749951522381451398394247715848348971968679445310612875917573741475333777846483629461411334809647593325693751154474478039640992769085033922473591230517244628626819668533491700736001763873363122433599788000648775721510543259884015479847163331384944321663151281952288334629408336250661980552622632772401894447376231603115093905718469801024060481161530570120448935729351412402602355020915208016988331655870865334122714139497004971742360755144287824719776113504817228461081549045744514729462866659932179816549914466717131078803773152786692019151241042986676873426225484822949360046933323930717441503787500378010950520290751804467246945459145370622799813542961214382303900699394190184597842247631468795835441005322824412176321044079293596767661037417543408637693469096427539873597215914498762530770371784025293471424158063745930966447510549672260278554929199238707940008020532575133816700516935558992170633333119042444708320660309653276737372529808899069517568057225079865055705164526669326026068435125766376983609734984102338082266937973633893645533710503195597394286852349572037523532470891565998542359549953750493815169417182250719210671282679089316706131723557835293576742780567513459254489861910337628583765468964708800864629080262371443837365729798558744623383446100268711622486466414117707377497013749798744148575189169047813360655227900043064790415979442559052884900515788388763522647768514971102337485811396150920338008094032574625764312532808464784830547173834133108482486436472846487020706830988357903367387747974810566422452155172535744099840470190849913102235228533798647225191142106693798476315370853739566677040853483355132563992871768956306046454233380150292611910768673282438901566065711415385298519326538949907093618019349087650426609675639711406002478983005446329751272860612845309249330698580837123386080221528108145651147887723563129713967548443273589086026428693248889461722474014446217893143992549126635779865495468734106120950844397868911441158387404374042075100629432053771113865093916386372496733683364414452148747140053940102979482766051125703464677359754420116271097999421364739770002215143572893828925284433407323310888359534911695760242129434500727167890831067474525496404135426869468410978907670385690686806737111193639487960483944742096364871784083790341707536047087823655510454761596421679839308027009015398944152428853519693984285161220152394073212407654285994662784517440589052842021808773324668175234883016183175726691179117624242789252815430716245846191218259978685154335595462804400956126784794848028017172283806132875999792325436116287335508252444316121992531016620474404160061065235519219344420036782222549314368331254208789366080699192886669689531797955879441236122479489035220224224249757690989407510549893648101240543546891277731569316733171622724864511003255985583236814406811024782311880548564852485868635922670359308977180433802626196187557470198270098809580597242743879290248671302846427230970085938845314096327120530617179973569267822193207010605725756118096731738773425266990219114394712739111769886879184478915409024365396909120423251342535411595648544688125749199869178885287993538262904303844204412640883978211206947105303706497137845249656104363858691538503405821886745569233081560267472520576593057449085911384054777881802207189711119536392433753930204694788584097206137503922317098690595184150531198273957311093529616362385694256889534964295384347855475747140112849036406955387440087673002346576031357908089567678807378968066378613318255650061798010513971002935164510160916320171487088717513393448964686586473222018190698435743986906346474603337950888718415028347200520062833455134075433610724226712860287705097189900756163722223874060596239713081229712626878484160534337795286830278397109887144270196596819087373985270520203177874963176386639581941290412318354348202196461518601892807685122737045614353378429387446571877745847180904771517006340072547633314673283735066527485383003805201625894587452298582148820673142735074349910776124179475312437141918329371102044799053843542227739394272530135228012689558491466796038452017542008541987695333901933311448655216704472863366290229880927385104268281710986167052056291669278725529759935956820776676295420983166312653118612552932794728729760050862420705341047418357347481819840952343083740484101674967692912116535939770997757524969135450115307698070663883812454418935498767999443234294803187150592491866683426539426924647931432879032681533906349372215836084569108989263438620634419741012621046676838138238054333345449901164020155436733120181404992044714993022132518528390720840155175710164177313839765281834996414994560323205629453121250426706190814939398876615327034664904025710654493107251792538771104582825445664086530506355907086451198503497364578335555995012524452054541927764643631024206081302125125597221484193568879868399270350386147741001044330078427450962774401148967912505376040651824279901131043491911600854444218535574020764889844673210022758324612175488091851269118525704235527122068317960787559153915615828710665356378235502433502339324571026246701818912553461665901503263174854876556644032643144515456224034393452398349277609031251723534663400438165678991959187726440643686839348984511803342124431785110369676555507413623758319935116380763530197897103315289255332853392788934366965731040412402535129135819919796026666193766743217160137543546306847696456015066904031086387168321918906258341531677968040172564749054604122946932803807570490090842803914113566518251771385084617406233907808699497549624825149634744841696006978875819304083564801598402920723060865948597474054847329468586580797464507577473602458226115753356352526560026621043854524910548321701835429200975340395846466303038199118420812190907294419863888003134742217972681837033675366668806540905126472703660354206455184396800426948923520798715287800147695715213025313319006412011327281847346561307473647568872377322991081033071415703964821890263235216376061542712135122457158186391556730560449449176166079430826382031403515961786645786195569789435867462621680585967473013974821631078892794624494579255943260517218873599879967416643806280309818528985756326407745022081419558458733734417754570880347728200309163070171649031677638745118033534027656161558635342002404447986883089863642722966218351161609349468783333743977743454649960658923885913472602131319105824702782223913234831293343446737448756558925602366794011871300983353298086730517733760506793407506110415272790573648861844997998186805595573451573268416905608532711498589711990278993615601776831524384287169950498851075483534267515422975961993638974443670856471686733482165676400180470252483935158771294343885749272412990291556789578176008509980534560155377507168656988123479018275156763233243239139591628790612897566326661769814611054502883590044370663624985795469848250389104682687457132929079102192018918091215057364298999446620800868236251223531808462459414062534451851950795354359497446270332611760779375367106987176431692003105695732028334343806871933872633544707379226010796571710235382878889460915293687201430955227899092846183123187140776364102440227324696959389632597569440189958116932136629995214205761847202052967151815002646964707042313177067797820511701049603619362560683112208937112237811862032452900609833932026931615535396156003067783533146276487793466247451478529165023395997375799653359963575922103688263694964175887584835044690554554732974369417520686767888969969490643792098132410974292432389760593328877195834338299467471631523725205345090768847158901976959686904118760369548088013625147784399650669029289540635055325019443248790262922562961635812802977892532720012324222094367932986646984034634224363060012891594406343554062959837100029787019456890473941195705118244811194275351991711026971203226404266553139793108752318683680607170917221638455967115131706151822126825278373785038913709258378014902189246641017402280408864823330962545033931657581573835979702571336064294020017808699505980541894589710631246193351650268885079544733898211106520844830142101267781602893404803698025082241285870679322446710387167606883017714234918927319141983798379860167744703842962302069238575146240736570299358372042754939693138416027918845022498908001471409051670299807396050299502748673851051176196174208297801824843126909055390603437378764375588107147086836378530451014911983046743374936734851729702991901328496586778398738483627958562697529360338535494493362145315355198227615666903002865491438809235119396597555702639968459166832854035214784698977879690347332619533096878258611983208880519619235703282211455308881938407869886616501271666402601690653360747031317516204619342244642734182619223712141697751611931741508225495179345922291774502519598756615660847919582374978089939814792517108258688325771881625979493135508286121261360166390489890445172581697092160969787775434045134607094578471217783167426141111125731334276632927554493350080514212615983649378921969238649843524330905430538580741824953361188250362189021689260928038195145818756312178258653924574097359577612437218520201100673028866511069450655272314159466472643361671945086102437788762807913376953275538105168240840371945968440243369050136282987425642280724748601847321690871146536403248504547447803238438759195995930581275005604238518980531373601007436188726609267816979510830750631226607841070968128709076899223270944657698455944300971119077847215782111482605945801374084109636689828623582551830244472790987680350285168228391223222363310847140644242759987699723319413834792079621491901476608468040469533036329002359599769418912261998551931921793546009859642493208944567652477573112403787053811089341082492924747513261947350461088201224863696123057123480836736614047132828481848940190323202012115218454451471775329371223098355549176884026133632505515439598762135770704836765045967863863753069098319388499733293914917432961751154076849173866104406797738153434020482451763592385510498167820842655109558535589272943003276247415876188560465474205541124513606380071807642784941138964988257580164143140566051443173428027769627072973521159725564975470957084948055655379018103769154040970968102443322070751557905706420696934495181532514374491261029053383872436560811159980322466381028881595274816356896584337666643000146624887907420656823620174812074801683001147104630824060021234833901661757054987713405548284790201428000166134645619074405439796485303205114759572371842378007569711523771998521461644849570628998067807923767858349950625020643298836164818573314476308873328975807971284424005426151336068610107508041149280904506683113986831268736378957324205515745388468379849456151679640871323748630767961911301394344706020558402143871241691867589092489296623390788730272145915361939413832986057797644412733034584078668718542963293701075152088696594283318294845480717027834771403895619375785467297566676069571497078485648163229576171863223105725520426161849667339841236642704671060579695773658390845367213348027425174748965887121137730383742061687880068144486876861154141495806292821983179134849787633493185197040135732166174642641179629053255774004965266825007925743444830444950820969596250948682259353420422218018381042107442181206991426139142415247415083787043430634245302911793108235792964388119361574986698058656658742298381210036372376319287662887985026779175080174756833708755493909666081568668759487569346103694307658948328358177617726780442548668903752859683872664812723343649640608731718780702748542729485830394055126658763759868890132232109410945894763892578683227844092264545484436339709871255615727789082900616120699785154523653374908050868594154481133052614513782405732748840333192728021430951519463849244748700317901863179318313631723848270616196612659791994534899743732030352397933918548276471424095789932061228473277748072118893021007360850998785306796602840303976579918254654315187316741611375799865809107063852539046971317250941112229619630637071834325571108270186024826490889031794989393185887474782520066325998687904386434364812343721561803253087175316538608489433850166238733836541524088096015788424048452171985307823075247337495047896301504375488531872052800606784021523610664505986091850261870666041515970792943660967536975388524956035168486731164069600235782343618763462776889126817244429454473240759866695307842698959756829050558249830951762729957719884658609813447191781257625174697981415146862408216787613012089038196814645124661882586764526850452898156310137008612847468027881226059172069490739353663798499273098138570727953328813104155195639924444438880730670915999495845792108029699246906905568673117230312279208966185039045134019997071821579696574363431678810149863977031049092982216472047202020685856945800991683622076644865264367081321907469466763098707948085819517243918457030554523541166287600466636039049115304920562951109995795105808472355835358333020929961507373268185789706592474406850091213289263819267070283519027446426232095617430173884014868954899891040418370176451076499615005545632252024647752618375602252059951360824728574713631842097137570891975117220629740930540400070293503572003948137735360850216580169521256208159377710594172931737815040265933523699638069671344847129082994631464723141742133032555632290587663808111697764334382277421975976534409685298859838365553878919301018152152982066490052696583458213557698252414643458834819043298251697801472266583162607652669508775832426068152828934778282460731031401041191735102051440349222410900857543906078584800525068524607946537891031778334026235427805300564930066240421299335297754043543148822548373800015305808902645340645100561519440612200271171998639750242639712521173310743081470066408071315199188291292203240579836580800020997710366059461828634346444541015504158631880058412633498893936283286550700414240625928719718962806055168061816323557056638539346432929666522849927133253293553924935839733343481069576272317824410525014714508755278423854986408076011612028434750947225832771560603330200310362777625772575248527414520013182370282742912774129094810898692493164241464869457120649478949465641133701611823707160067483566641735620257204648054998103637611856529161157146824284352185887858282751739559366815402763702425439293652628202260296525801947653050426649739340748052852994024364728559528693430159649116681524779103451148629126445790577044525565694264803938287906204408517625313612231281241461352895806278261347853820220883418608502886290272614104188650722743401165445286072974513819529023875226487918161518949471873578982875415494351747526475509827601884112942175453789525894627077000289560197198051921327874324209914849557045442528382704183175884608536756893393780230465181283878226031231075186428835600827027248347751213336707245856808321645592299093155156005232467364118505557771280729735724576141218166781763376640631835329364674613664237791830523398914418753238732522491290796453275406254001041054786547225923859915942114171559654045688105446558195658703700617781666568512230034629759590637021966362983724185463211203608414303595398693832563078753508549292776329808574793081986035249453794764962751755627448604706098322577220917302523327680201397850005972776530032941909987101572891199655119360328339688281845549309432078331546317773297158695287019705355519982039874960674507534416460407941236032137199192214377912829608913410391589286337774660079039759776984275031888261865041661590920121483040115703818166964699437500163687049474553363236873215594103341080151259398448797748541895728245118029223574456618854474561887924102659622603469880346068239748964742339941860526800952007729525647817008689906236615429563244253972682893346580137559755553239484869526676071401930541502790011868283261858281228934768876779289867168666729492637566402675498677202971395223399803153380714961737097907058600878101868078396559824878045493523775597887945401666235920761472791207320540832320914913579830484947675529171244264012598403422779483482042049807382458585714119512204274325750187015188965191139208690228081131530194139770903167647680177215005410633317120578802279839785471049290572375388037601892369011713438186465098514380561933866885360353199098454088760581045954044863839954049579084275249759200910493979437458293587286627898656861442825131120458892433767336140695940993531136959821007196267271233174537909844684344933832869578410084438960404351197117430478474858741024670366960117027187543637609064781080110094955847437165364932371753973241223458216601403291869746405110682856320303752998563194963440548596860228444734165730740024501000604371881783041197683125617247027864424581885626614546579735437125109602234438345207801572504824765083535096576744673590128982335513546019881319953591658055187660599206999762329514372420240446379083045459748941190717371884111731520436929138777043848868625734767926623423243821950400365059295819313239309033932686286669960154233908501658591222091382756437987893961425692776351617127756269837135929554876876736313676453322621301493264349206131509531074799399269266843998166462591310330740204250165166881786610008261788098919065952621892246542755483152407591736772673219464551843709119828175317003506246162764005460193178372083626663247227634676713808899902906513794107403411702515389312441485112911500457821142795784732165468549390308947704021915822073271738278217813018985357392614723036865560610866626186445600461489770554131081884753106106432388487574485956445441964243019485403970227774856729416178852666736155242900649653059745649719328756043422673855602605814621885758027963304881070443398540357075416177888725378956358472017999640823828682267383081199934001838418083420589666930937156016144583574689565050889551867706343659635305115971669800987688808870801383151059699705010199753730055165993509638109693363089467836662589863128341740081968417356351986927859021512282188586240482446917463574427393182794439929585689621722511318318871468776542541226235271285461219423930807251756942150252272379016105170243040006709727218604090634222230599773172788517596450966482718723369906657402782339845561575319346585122770095579490629944530130616408775351628658207855514678585416985734738623900924189746547270876567534025871369668379829679461864480606935221542301678948458081208392749054600390155406397293519284256271584233858604883650256092976803677427142572018416768859506120172544732323006741792776783319943203666193769856456770814222394657939026612139012312724480987364748383837774590737783329889559110091418078216095126838153705669631264824230059552999708969720403498869875972542917953063032608489521632570774419826951435169028749903094205244794696700000227575932057946421319060200389839931179152735271146804098868150609008675682796006752142365881398315966442839967592267248502240855852568871832753759969415026675425207401340366440004123280297441257547082077709270712594325742331612375855573264936951033448400959064381784574370685359665586460639767225717248668510737421499234477168504891688854905201410752268832602335173271545073664535636151817647240753747468531830995830107340943951786169695160778710713072098871325435880532335230576523142781284683661915920720186137772303299591890735152621365820040705364749351926159719057108236407567563345230765042285628643752742268557700310125217174978726343019717931605715016111295156255071067905339348189985696050857162290104774293645141065381774275348422257228226321691781082020442118722026911547509385111424885807321528494035518704630155660498040872327440512875146382331727636731106028549955948540823262670625674230571481723168320100949700686637773341245081255857840510052189860967697085807835473591778250895689572615786821648206161262680885450634262813979122853603495782364713612730588294596696211210600979119257925418140929998232936465170046855155781158233675693171989499168382753854718854019283911176467951124329937381406422786973639484703973824925205657112281257164562435054632907158210241101098002857484323940798469493995955211383885521813091687058503899537156607887565070761995290301285041756735477759784294917040547577602778297200459924051218588623877661950787357694024385929105847930659412636844297571374601482656366529934901598047566989448905613336202162389208466017489229794117758012382743117356818463592812988774612077095549538738930830872269444774769984082190939057976138420623551292815275030431475978364756589300797403132070705124757958270413930030208597656695519047083239765934481493896445307098035888017523558406836821001192345058520248271537282217584020880887169987582635610055931474433800519157645567669918599560399875800751611301473892450736759716944461046122480812193362301183493183672429417433001284307988226459393860674410421148411834984060654497048335105341498863544993235229776654174619248338467013299966318739591343955253754211053259461244831937610741997828624979000878900571539621826497326335159242285667553262067245102785097411033699197859317006824606212764067793281903918718990949771733010750181076518766666779681521780037214666851943048746432198855983313612838757673776690426159952926951406304498603554812220042410024335997434538794022294486566661913788485892993690367265037599858497451270192478370455317442616229344519491974237722566199900031433887338128004933799988708205159834016211821482030765495803718726641330916255407556857078571797608314028355412149511739818594776732342819294324781412449068494254531862047917886040366891522068386836655897027000492750405186204136578230889371896644485441338363847363948175954307816251842488028540465905196931202588189087596627715590724165184143261519466542516369612568539638624103212130320527644098501403683634677061872246865580198580016875673704144863409016317890466662207703113315510479070194336246763815603781869175767552909946145778547606343928404271486123129719497488232936512334595117887748207830421474090511544150952746570009153509293033538962172361025436237063580604511840587520290187382527885067591053621660200523383791564214148037246313589222643849762907044369444261716542116069335917417229901180352139157976016933266621155082853867925660760582092780134423056659742166585412667628154052697235209703681976862366354194487732092768109018288330397392408547281347567896484478251003952235127959222992812421486393975407292629583773121063950002990519330497904593616518782202502918102401551246264619159459569999769095669806577948183621234679389061025056302031546945611110637768600234589436628374947335533886092845797691271788784324747513012379182197787728823689035258905707171640116519595537113950985205684202418931619110210577348834916781089907299087999245402421035892734270097813997224485720121159899918014914587343056693849907405733804264623158468397531016198101911546240385970839744008601015112645540875718994613985243965067151617807497778138018963382448602251382919884223897324463404473222492963860315643010542146906299748113038159803177249142770757052136537028849867769932415818614915164620957528466758298553629540902732645998052624640379922910137107013174728669622876005954692032320139216508822277844733332999489461964147079131294958427634770096012949979705516816280690830145743362216994384562329097871159630825371976458308186104594972359017607173813709334553692350144716854702877265145009854638052461196662110258707050409921615015668448756920167033293570131289748062393060806024461493723265566367430741836675574997471625350517986712803581227784405867367337185949672366502806757988558972395983855077137692454900478638693184985133665565962893434927158791861171906922255494537710123752128133872853117550271191237910959107545842063763182348846477787580099766978319945707010888911265857342233587023863258244182446121096567426856333739970955154784585393584685375669177789586875842008050131099121993177924684245890613599979856518773131211685541754606950942860245257764236619824524533634580839980701880032873353854126798938037901912891688371706842300443496496901526398756188206083500072167349953720394405845239360689333053360537806618171498886309444358127423346380942594627345933867829186297382152054064171721820370200584797467191503727835612703167309602200774274651598056959673899690392601261590806439216259110021598175315899535962944172610113508167728064438099585887133833299873264075846102913215031447729076087337733244499703079701944032313734626459293528921995592925393322892996760026099286758701749042418611016606526779999942577627209258236205909658977612846751685881422768543555660007670835478919318426523623855012390573333323019432895215611805727752946176175029876092240844898118760899160323808511485925527651564814293263483425260651995604566454920737891344765863814486308602290822233437512386413985571278710651761690223320185049754015297941136173714349744426070600014156331341964659970279389749643035050501951456063229502938512010536436372739673049134275318554931236205896319248520550635913700709903005520981280516886424760311091855561425836169796095379798668508504103656014304634953387497616569423050083237797021622088998439646814128890122411735466878825042160170371118453188425589262624115451086827727079518660991209690008719068801921870542938725080239424738795718673857803170528973741638367547232223786619968850350541661930644005789207668006945947823444452734430826101344012376480578128675264754410879901490721080862723124723807556850272107665831535870417174768672723963345234926295890360152201799707928619485290161832573359997686371319671870896030946454713819078310046187668893840285648700440972227584122888729588981161234770501892658468834983700045036778911161267675000519808714413070000514886997835611159033062401476132076248542450624546761344055708863010984632223977552614853691206667026635321596428320623990877790873589886104768707080396325595333172818611643495681467679907797660556314213737458912981039190956474924667081068143989574941574031382122652118151790840602338568645490107104586230037714345610302676785430235056495625339361417149838544369742623910446442915057404297389761939771574917844702376127174308159963341405693172485493795984883169810953137838270001576909361526859018731293411871151505221005085003566248292481431374634476308930971051233674625165851186612982196730238077359960726581476335136433956033456896092156154630982987457185244820668138739342903705041434431536076103236989561667468987922863380248691943202669322357359535180706579393889712229983533274233619220143744981542900737452468339715616766009194990382317588764211592432839607825894992525705553791290065319458994170472566421106112012812009520474947063084520143533198488948312799415512559014331323758649741314085718679243437134144429712468229952264315677205327928218433864077004206842547960245775833347719043827344783708964427170907072902246282917026926749648493493142590201226847042349916663512741781059498486176875600607387177870047302580072620713498755667519291468414552873848867192353740465077197391781823826272512600776701475670451412751025710304029300341905323410802369723804260779730450292846910357411086647972391360105952843063853196429083013738920230204812194831655989764934876898641125011645024801991918619898241563117230530684516193192876026358234354964391741728147313656972725447814506435569942387166557107941824505027057916193747622158483594437769212614363988361850782679483252000466663033538196756921471819756071961444147405552160752130751504465944408190899266271811360320412878424265120544035542910719002451238422619960001572538072485303936983934912503052293358148392613943768549692106824062570743362082544654001325461372172816110174701680626502260241553169262118745854288506001663244132843094170826207623037501084577783548940036531682490130911925960450617051265181969742390571033839565746751649753332801504342535291718366724358240166751134735974867957773535343796017651687429800902369994183680594094690100143338305891288816381604167835844230207153604943291676518626857184499703600187659948252388355642214629946697693174446819670510114678307933184528390159100227166726141668953225595186423055251965557152839254323623468243211255496031567827894003033609909214521001625623608661095595600211317972056010511305636413332606571198972781285448809383564572519330129983414798396794024266575876468708861902433345657684870247383141880083561918239453579357403835858093412049618465252952815627736851907214830985822223921539056247519472155596742849989685302350152125334411640891476206547783656510032664236668684795105919880543496251039395076624553233981934080789341568848044868893416282210341825626855297905752257645927818679804750908636351645473182061940606995057983490694952351467011171902829172720676164060347978858634330220040053877243301832257813500382959651044365719902343880789751562197056526013814865390637848124477068935849920721543411717549875771279627843902540611576570139929042188684995308094475910936962895234970948292635549245363549811307757589389538904982508102209575824655427603874698355168105150242550910057342448146290477168033253792544167691455288230239677026497917350766075003109046995559708513849882552148451294195282811966243929183003997352062153882106054239147516871405314175083173148634788847622951581501380713054967775970257295855627393343549575587454703273854205622262677601815034606989596741067301303157499323383245058001627718705833078843822429259064774384026711703909803803373693648774360579501026970733138501341722564145603956313280885522933807021198075732986511542270399089940766405869723235793015479630925688473022562418580485512487167073864704561674720759716273102018429665900774665769676055998915395266715089719020216890619279417114280690190400844332248327574470382814070444760210438864066919127110438018563135644575772595491373927393060754077841634131112136475717959932510384635479046008501394425339684779687843017872126714420367602643576191256200002015262294091233159519292504372996418929902208433851262270353291169509243306178728792057101561892526213639370018865430244308260805687189400536698764330228256871773827304768161997184788545951945870167176174756101973967515755929438943298444212314832611196830085188873198910934367931970874004922734267916708610781462654941899007937113849223948507257759365111167100005729847184128745488502610696478693932261039941393604502948005551409980829770123000375862208385818312457295406090681284114490854583944867625945494448106615685541530122087991359397988689437814206757587118124143101568413605878298334270766203725710576997171233487326293415493798579847801807443780780842819297177572294663329345977013049655249859269130353123829248521833406298116974093415854703344230849216626246731881487832193169047191436186271132365512925618858765642149365084615692036249152613977043406164681889240503204067024643086413620680761549689702959083433708297622651381403706505680423085142793697075439683322221154193611395722741392569797565582868531298359486693559384378834821106063320503492751378547060474720733927924689517579283390168848110889326939196203294864806910167615134287061853730014792559625913995591711711029470634741285633231881893587492114927785878657550245864126616488449224291641390554692197732618423116321029999280362655850992530562413802144235813633305535460100507536498717707447663514364307910368985677134374780187265836575463848972050153164199226273660899816132577221362917272046430780276513630656139025855490484683438285509886338357028885419658410055630861777499421046351740051386710453995885657099569984390583091904518099097445456451008809864294104924414075076607172196017022665776477768250278079917004486315116238955411199687218727023457114118862746364139913637772152274742233595131282333264078080264965060117601839691794299557701436621525749387893548241199600016053375291773794931324032540722095241212700341086497347382265080566466155938907798008986929539219366160983972908225382065386129924018802911468657398917928875523241029495779249189970191011960024224406206327821632178250259953554269539810411795219387206082610615489675239073973692241362073485359507257221757052651722853349289072363506032501093122961753646921709184109955766492389023084262178015090771871294727317452559475525829639292243061366449329954088561351494647222334283024372511962534842411126475491074189036642618672523384094145099696116849681996144072989270165882707688509492758554095933114073885620035550451049336113372875659682017975396993827447444524169215773069381406638752067125592353294452170345551991161277613761879097333147086833856265597602922357133671004415579430823030277836952184849649995616175852119709385187839522680243977712340381663948643943164470984583032684006926946994828637587353926813284716929928652569896670948229697206419591814019941479528274006128499425247591547096646597611536950456745705426736766617557934508746845275812853159306518735718546278651872854138334889074971248569506575071600253324855902175250602413790878651273467255528012442213345567938274259373624672327986966643841975106017041253167302211889402497844647129291740912077898295691342592249523208158801956900166044693065918172600748802431809678085972762463563901809175464973940393730797397481213824663046816099641753680169772802018368293950516565543474568369941364917710056936632118309635343433232249518834580907733801177452418075775920046138172657423793121436948709342739965800793923268155841882155128220178870990515047533154428833056638813394176263967001066035937200817981867740716462026386976727817656136751339949051818242557286264136170710463100047438343083737132980158450504903402816334036011332109643315071467652411158302057758846531525080265778531788292139056355735160539990046352031357656426991944612400216680489866696442381733102972183827400377539919090913975834671699839829833764529390064710596262967391708029256594107899009861688677740872055226561335523176068846002410309156904601516525890010735260701926798052530933064224175542399349487264464192895343657953386926428046105415178679933228269670276453639130864770608572536704612443966223094072737162449518105398110364371739770540356930273274722951354471996175315525071978683035211167604442702346300515948992999313704756907679011285589998075212879557119628385036241026605894172274432482927291224310398682385896282179227175792079857290150663482428895841107299732769869599433082174560974161971379653221586808022590058069550233314393262730223265115516680074819640698426460694863575541357014372196149245239184418778754019195450095173266223460279102101152396027670027344525532095347024086462245821403566014203712305142297448735768270538968046897866611294537947476958922517827221844587157321405518690648979087995403214235405962993238690385755877282487835765513296245404869872971314978658548776318886920792581356470584654521456954329197831886804265700571684735579240762148464485952815539510326603243561623014523533095961037549217496617033820902569869757793989057579447509774765696751170449557797599845659342882787968876793292915337353511688036536834075558177426806670312980853477425894262488533412167460748868707951515127401127463151087278516943705815263928262535582746409548658370218461473047917380083893905269077198442012190058336438313246594259167579772018391024921777131006163805717702605777535806103055778175353580402371440013967705526704161701745139759156929182594682216450731895213165285108379653323679288942010764323394623633637213559278274425114918705984943531383290776196114981610361071952774842408775601472499996253415311245235636370355293045003312585822613815034569240425460301405694141291697133281994206403010684579484665206801189356763148247870573235824629218236851907437504455756941024041660565441762517829655924369828515584356974426526051431135897432224248629279188217325669807696240055724241766980338255870850147209378587241854945756792556810319150314892541228591981579500620710415186587510711681537746624982753446707587752220894524942627620714905519261202775156360292117354977714152901100508973886906076746842284564962765746946408596954561493562207229883811353181588988971437407395567754395437620535201621124628018410466877977330230616391857623591346345071304483454545171115812429823212459835819455232577294659759533506903810991443209508487254905101654138598738927247321033792968315914404624920106356528786770990723145545076466615756477746482134820415905871934312124258046212317451779312729381158530809748329911803513979995499475449130754029352680355973054573212247519252146593578099295649438882216901949567016144746887715960341187339173974037295908653593175656922819180665261814251775943332992732999965648525685314646673481800265989496827414330577517728589485992671234706456516811440529695739127961675300534830583957956464915094045771764602343876496289186879802181504268251357063186921742332635150703393059684613192857503253995124083945804708599569323339594030722215715136574756481730392197721712893100728910265024654650159511342493169134414912104989465828490540907092659747430033843668383973048419624182059478035087105351840374001642069478244110622182596827229769094676807876871158401727019733176159445587081396939106041920303022913240176635851102607766448407638672407968018236452444578145463606843796559163746904979489184868576468308067081946583094254912776119578530711585690280716626157396135508514066445211823463964274028377912013077566866962091234228193627162842809436382385742141106348242519729834199687179639856257830446201363049403262356283342045898396346460240481068529394408163302278353750231189870197489205840825811061236142644397684509679221000097219358538247124288875413815191083731066082639984261506626783320748782395103434740290747295507745814532852058775889530931686870561271624382541319119443553950568410983594270342959154289711049096525021797533075175051018399524154472825788791687095215558629900553158888229539445726410094413897815357688807550687959942813752172694725566786084407768967267629783255613346468586231273394549173377996270810332176361700127334165599263421030922421118787113243832979552166729021589014669646412484284339639824031235137279305888167589292712712638523225515691517124432619204426536509158994840882038183940412466162889975747324938782077447902441178638331113972807236609739632481297391839643485681095958246022353030556665220249171650133032001211106687001669300864551190862849648545254675955143733341409731158811618267504895029056581466616935621469698339619641250770258696655519070309079224096797522171268967776594832443592137664258822978074739485580532399790625667732328372595260920638904593501736495455799773957688667817653180748357156652975409612169664966244660629067775331749376531306087355817528628430355985735355173561402743318470745518451965847975099262199115945176445213446718611313913710144945785073493021044772601240457766212432804439545314131935249849935792743396405892248266159522121938220500564332530093735449649618823807250363814326180422024538531837454514658232819703561675741001327110608064428161950447892807252460344834281992817056371637364868761778986883220123738649953658955442284029508836264699963389853292571076288791523969716643652704076771843284625540539505504691430353439778179296616363973723144022459673487409953770964607035545918652047524577177636655212218780119110988577052426492992367863566248377012904569029406734985645467092989720776239469695753832032169194605420942409200686271801035184636231302153476456833263959521375609393743366506394652623380261484840305845212534736927022706093895715448101557870610986691402122112582957509061533594327994484559885195390548547157138246536377848876674446805299807847660015503866702799685732607140784037672745486639788010389887880015270779077881752071270243675527132427269774953991863576529183080251232425126095939957757449394542913826742976578472243065925542473156722141714693989747617881390171348110340434281487808916518124696072273825644534928964222341444108793014463068463819021700488523735853416153148841965451275312342071935242169625166745922802713451690601403024800678568621232655184510600282076919971586223522703487305870606041905385329373914376069204238197484924824112365617002868618240628465266013119421845311909191284937410252256193448371237350936546570387675528461924992218423831277816096912705370919302423263205311906577827236411128808561159627031220998371857669634971186139479565157330553376269238584204207392112396270678087545718427091439403988661526873983738580953820055576786023425659247984581148267835690854675908541089656732381225480116253384512796247955291694402415544992188631362027752923624226225779055211020523486964329351502349788976060584557900837842505265965552305698704996017684604845118712123612990099853305883240241952120372525274287945531022842605826710951849626442933193042419099141208028561771917160335137015525249822696819499938954351104887463325254855026648168369130866432764288176417014895969609057668312173062045782063028032108963980995237664807246242484375758386611550885909253104530715217005763410543537946529005181122259306987981963664337140886959163008941508949944375260584596928613692282215574142907869525327660637299768971180660754486917255911713525834871844032269175023449560405423944490428340892207090060751387615272361686047634076684135229663003999720361235502318411681774710736132217577756201191876903176080625259453165627206504760418362470853885696059896810486493530714291083774948265509192388333526762148498144489554325929343872273902844853242662179055391396976119969314709015710455386071504029436676465925274938304327289200914106534761318845606178726708887484776672278095470918165466029525516225678151659727366726547890430383006633884986701825706974087124874174826722739845332211441453522318063891555287488331340025372035714110212289808706738260795826395354125988494054922939195505859643579252128827950603194261661078620211041759382582138759740357148208525177024598454602554306833456581975268446651563008894561619530570403144920261050784295903036181767327510124266884460530470601647932209408711719873960817846333018339495754023020591727866748786187226360253870245767745522754915505419704970666586080589896325274612254935707392259127479491591875573823865436278547345569533903787213495775828680330369655009771388775839523357231465716444975960173428368238113755158880823954031029415711288969631043391135069286888124709632978460647529171739866355497549837707838651164210823719387059536234681148869172993325041609186750141224941987111009745703797606244896647601518040280204260898361531963252044643774866413668413843712354731805186527320377287856941223485675580498789332907036645330614715066768943604170703138715123622974719482724123225699610924516465683198589654626769234903941823540819425593138274599777068762908182018748356545753609049805744550791605816127270614260411075509535448744463619412842813880477103374438008992017975967768047339915960278018174671905048625593965299322663757892632172137742551256090216592042529301937415389259675899053037728706533446672762629498565955866559862405109216904029132117362876989120617696492832092148266231045931905973974677664525117698338484580864324892027682031757179614033060237727420018445268467718777760716177967719950707095154559342511094842262705842530539399952588083320613289903829344554013961994334568583239181740277051265907553468719966783863396369075714233776293964522383465466846198433735988709703258331999964973038860275703044529708888280245736924145934061722183130654792317165520693649474180440586492460130995519193473964917719705170253747964133333712335270931542124297107199938173301426730198864834079888072118104085267386228159167459037949515962367583228267314254913631628242575113053366106549318062253707868298896924516188213233818268886085509216815603002851713284427194313303212128493260027189176613933480287715205959243731151120755195589594386344962510542274208471724778123021315776890529838830057333128567320018630140528867917887009768865044345783768146554769463572590136924499522346431100339634342848330254898219238389712154040285342363824723494067611827118604760004299859520985730054916170273291355477385851871009123867562204990397776900944479372037812130352155123017756469044106759707777788288800082933997806553198306408955536396883552453209402905307760313123391144319231725114435353588085072728012895719646017943973325375987089446515863077959041863962102085271583721224766837737311605914734447318447774538889808175756895640207692088876089582175163539612898037581455014597855027218712874517495946711131959199125239260427157330833917070667052116426435466760602372718506427961252100074087676450305238449559878163394867417078930302385061086386497244605924230457917131053346402417336520572690514122305050202624649865363962443734197849728194227819412053745213834672359650751687782689595434124980087447536557253025836493972300978222702181911870588267683851045561553534141166655699534425086181448052841553489821751845958715062692079727210555163932164495263488076115897580277604854573005224912916051812681732243036036721159086088432313429006550817317425549499725816275689776366923042733632164716292181738414769621054043692266823535775532116892887500407151152881953246815888085019188885389735453818510364113025517530346873365750317038409481232329703989543717155898110859462308945183788505133514462583618932418197978292955972684560974921508018257523326641976419925712811490887499912851071531528752133737640022638584061306261112498552119118474091485113593897202251997402594231672815296899817179760596389759076458191232791626439194867577345993880156204103828923400689273212811173147644540880661639813139178244469605644147597194387423333514514101111683856550385297002759272571026121909700088994300911521342363760168544403001947544151236458941039506602148768050431643063202039438081200632892657247325674489380115121423464933132181260757544771648714941405950045544857539860058823817188187863331967554144761876821320573127727776808123258441241357597326690933964854782307518849961211634867072509101188983124328503602401843182772851457625526159476295453501643276634193796815719822760746726135708801483096811193948866813706559060189860955435558542699217396835744089301308669301535816912182549066389792191737366783619276558722616081102561297525281519621647467304276229227390348555444174357530800098824718490097592947390951587282639578395310679070328547062289093813500684613576809381641009491947075505766124615707701609914553316010808499181634494555270728154056555202415846024841436241258745496031410055319976665313751492776312296515125441175269369917404873826791358021250296006949418262682707114013029495145570673280472552181596613474666622188534980780640288468100128284157324927308217511238389641904354407276910119786681508997777308798690333369631970311201460225989785831097135884478394466476873401156059256970686181721270130609401925054436185621339424987614308385530357081080777819473392618925567732213252099083015033850308783651583259462250780132530230959975461357689497245130078539687116499706712477848543476036848453550017331363682179113466654637936314834959160886981807233129764778281215632993366065249314189671490563530669835564047601585548686287130987680806087786751951591020819622807875663486108188513914231425710619419894358457558615660186783819222274019707657106305613229066765684030978254770016009119028047492473537627137410012415507959645904255923473358088301124417007389167638697772616390277978267957325001921988657686628034075011742267880964675170415905128667909913824139595311003174722505129793909092013550582449008351283902571190785880914863233458935294491102540588010190471415681636012991793272535333587385431900220747638281311531046052894477857871267551728190719567148859766079514787906107824221399535115159550138547391272044165498112628693324892113282240985249433536215142200837368005217776968115233265962346920773727065983542953026073168079069365006627924160134715197926021405102267973331468306905995738450728371160628997274694537683998556941158710172376965028607967589665535251105963789251130962748160638189365948182296091936765473883847030660324201567602226861734628554654127351611595097317393081342123986931950302921990529850044794422036729582870531540983087733684821767790278332790674524937773893809521816158874419542091865067647962311480628569836858521838561602561649504827152128975717139058932663732243071583932364790164474446591146250483457562904946531844642537541210739396319380713624285652713226818084107230235466448285252907835351350279326984452253614485147064490190140196672602583774908205551406670124286562223460681457272706182229756405639570314241954308903174359085370154122666440870867032899495432423686742544504320489425433406945764488225260326218128474455529439284521753097489841162177657515309750633978092495225385726735999434707784828169072929529522791036927048895594731049616313929033638659993065286997574900093102785515153493803527735160102620508442295125452863363926267301968531605414694501581872379931578088495754571588810345076779855239116998109913387990470259124463385438967210106580071527500667299070546116751752285129921056018343342760869501686346952872687527669497505774884150767579839776352509238398428154960432868172445308837647336751965883779387424372759828757045303609457433217815488126848490990142763089869568720446945233953634125895878934203672402775941305315471915591920884248657919311843422750954731248764031886995846865229423171480103405616964198947763245463723879391964106038968002419527053331160735646601569595150503572203981754741993695310091928966153739506840599028283275762767267094932019050485637275992295607412544810787160413641674101569797973605680910623223678110719397371058724372682291701630656755955811315334605947055947171973574058731347139547294091784741319142020575460523183051299182438840730305681423832584275383008175962695904919267865673263473671270099893390278205677116288496252705271895344027367557151949810385890526109667827791945606404143744997298223028300072041196932510008915953528796579034096802944619525807535904317252942356392165407718249269724463927474005421196098340850506350456914876674098269795364208732110796761295286857496488972937282821617949898581959001410839439025039509125065597292388249859225367003250192531328657399081740722524076279003576872834313042602677891873951881894560986004455261162233768000705864913727552683775656443475042644327884046737732080987935644890008346206318201189316693250809533918692570444675974901578451778108400012814522087329169980882157948110752953125935379324428047154016703600953698458531962571997950873777566770421549610528923258321460712506864676820849079765328456973187096871714330136549789955412146636041098760017813529946957406024039185021697638275274220844783211408558718312046203863943431444560865209075121970650681081292294193562913029399548630933925153765086601320670464534828892727705140104852912545461599332040417583042228061274637542010889465138227090433847184154529982423740928438210921161127949610314261544847553045294362870688608093140712478552015777911070117969586794456406944452362513931635029594711325947199161583904518712731932111648851552236090932299800298724144419538557357038322138327269807657686900275566808843320479362435716091982236943530882194733350530799158633586856569886922430181728513194616054420456906874714167445130840442764672486587497056033481932818580426536705064313077216805890130615290415505995572091255378289137022460472944460312027202656727220431872805072817896562763254995338184302248934071292199170625234947497239914410953307657017599701611757549662414722616598805141672360011010457834491705942054039301032090956682364254111377742723416717060360847675572105337800559277411893928273112534042369970880156822102931395061324660029917376899671608443966489055324712158441693287455959337495032589742067610783459457236519722392662593725793737230947968970315227997705025740782962803680891459649169945558507242271815669135221988322465205691058062819638844786941723863573599870997157372441710757449515339659622438707310541644531649697209909580351409541672761578579755645823982712821567070703414586080462411950754314221693812286557010362134262445619279669635012764110652604841429541473084038194263269447235921965998578567352720089564953469490383057828914825955856398957942059395613832641688646518086606072715157716796830026798527210114636533112187918035991261254718044359361429822479977834181295691826894528056648494657746004852151386590394187097709340075457867145209656735811571368230455638711160961065190150758818297916670281846148240257952401576711643232097818773404203809397909701315094540174272146923590652469997102778715026308593225710060885049637364901099008800291479378663816901426978749373404042057539394595994140829848400455243445700768958572009009732839642928613385578214056179145546642929443707175446813452901086748064263038683822056343836710437847074459621906327510213682760371413941137477298065990815604758456414408576780697578194198196614145084453171728863972723211818643021706015585222941208298670232593952479783001160671437217350289814398495874074766370779334525410633970886747742758222211910407981253566825391809774771667262867771882624525748422737204005961821092463099533271448088236579806123624718608560198135519426155528308697362746138753863688784344909031984465221262352256382425303352127519091200039436560749303957897147347225924823254528126505733708070192983498768131828291073842593256594778858234730045819680332334048007167950364886173803848130191122693729822638096457583360760917586513017464335216673852388721748086455191164800972658887693015376146578670928081983324889694399344303623578367508300924221386504987581592498324415646179454236463302336857745681123973172700971132554792711065335476267985675508856856178107252058390565202592955665954479248495538774936654187179419834454859218400312746822991937780959303860810201855762813963841302154985295821963205440492366914729054033361458530912818852028924724662110466438869036381433635917306054261286541448488262575555056682797176082198546289825913947164860447321122491012808464113935873316449254192800622245997906039758080594648591045666689260247309156953215827123262396696630869276894565244939777235464457533996682687179457230618090064139916235897982137176807351316399395617503326758930333635072714029259690320658808946882407630315817325474947825192689422125580031154676096496845677267772685693485134872088866285523533382169302351807802892201191801916156964112274170657372705779348386045502095423423452277968701871097987855829602610396174297227868816786879738233518109933304267291860532068975580925948922907184338375042208726983084263829152688290759271770366170158748031369398698574934060517524330538032279802807661897260509769814972964105608799041080938328890188191617301892234833500891630065814118804306288013764053276492073275189633847055359254331046900054395979897358468087072852638596157334456131868793670654689362518799978852377100661571527571452517745574091758819887815627429955084458843709463558790622279169816114241490171877965393538552917458329794286385293800999508511721994396383577046538057333671516450593844235901916502183344169007655008858682169619134653830838859703149553252052733119695723221663429622989599793589088418088742823267234134667197525619289342723112296592540583657842174942656453041739860479523488144510189200285700652406635767126912684767086013179435717285405236976908740181305256209520643680630343203495011422716514058724124115817024795277999128004534731996703879965172166297711387737066009150243885826141857184106431063596868159114211004889678654347137468108855742430166488762690534936043602994363515413624042347070531753525603790754745282087629688718829411451303959289361369652928088542441016468896246042207129863000040322174505207674297369069846885067479834731548952221783795859854529959331452171672000267922053888707553854636351607526384092394218554859372350080081577363156440217308149617475282397895094836179275610220075871242177831861812529779727177103285474271450135402530788099235298119685862676201801733484007053055005501549383366472615111269769416609849376334328513387924894270332765674319574722512717320699530900290568115298589872153274262325605158203358496358903076610909101360920911002465972439968581859743796321551601893371830280825569891143895026635452868710833556622241934480535391013790440742935180496004561160121459562248016752226751011923884884380022487334504642128651815802750325011581756783211373664626846063738485152580028237156211733079412707289744777271330203091584034615608755832415538575732984138380870511542309223985899562661570270404886816004811226605601696817006578109503189065732925044764472165780856601079189853061287177222683754624109852880006172588885696365913893163793539793401670013954256165043205346954359147208062504045512469228169021936896421752567810722010259622695703506598770138716993687916311462181695222484829265526011407640670590810545424411534757683019431299993928063585486766076445441781240007066721453175112567638011196516525004677545701460416262260239699124761598599091307954881568606145105707004859472259274607143666898859965060394963963347500619790143029988210398317442078350757194654951113801738976544888570042905021633444598346431230524567224448970818700534322672585249629560298118771188158790759568376340362807403750859627238972433277656733248088815856326156215615770503438517164356360304581669057306162050481558584685988065307204787982166828958065346106947649512422961347022167687398145935315324743430361746823008364210032157383586758725264546323948587228804321636607854063033503006615933771477947673761105864559023144995842206965039702664149589766786812138147237465307664130423877535663061637457392207265608433553706061578545303636370526038961767435822762130844309294828250184573857037293126851942500969940128669419118685160620182278756440819661312579057870940381282784107801542875931761028013388005801155525147763287289471229647021129476376527093906573364596711231822123314305040819704892701831949821940153057625354529162415818825069348414541611017360959828719837330944978792068807234973871245768497811059969486936516693518276090782736570595363074986710376406042365537898905864404377953015463342611399839857683258771872991289583660659351136300726439338353678644880622726647652428786399519044084516994981338277510285631754407622723999331061749432171640971594610564967559255722324413590441686384805544705812716139009678943726282769584882683318115845864244110492264774224968107999692098777246831220320954656614808220783780350606765654429412952234349833439275502639745627070664110244564981573765037323105676641278770791877818913566144048522395910437525342366756698375684680699347206836770219397217253782808851331119054751607954528409369020314635114414283818159664408460441096032892602677587933628475252979868645239538720931749148325704278096636090621182468082375388116048883708027313600025736361022674937089743738815494855239974428499877107004211608635513711541609104945336957292412427437884729360882844067601758021032026608679639207642879959526940449877086113445274030019474732006690635103472635713531352746860297894852679547104103965011853264704415262329802799867644474851787136898044397596729252641793334020266856441489382631924991000469708899884711249512836206553394491514799252058417156768496348476035204028413912889742686420909723133447057682090348949851217466659438425634780741814244573372444200376818619541562807005038258207332912755794904045280817489776384732615203980176849488079630930634227808210019136996443496038210050775380415235209536194973693240803245872848347055403116003509836926548184475893559428458795206410707900707401250512934618014336806799119749760983600911368252786437103569951065412184754358078099447863875461585064974880347021059490971343365429540145559059329665723247388996104378352718042460913908828414184732866332316360340485162929875519620801795061759770782519653604667481955869591964916074838508423861137578048067084076064759785034656123743407680843741537928387222218423128717860748273576685898755236463495710912661419106992431947022511812966370078997820999006325819443304739049241566745821629427213021389354786055945753478654199562197326783692045750569407831389964928143386429263428445886824605471107108046559361488919209104305412966704324230743110033150474967088603165223547815821246456054512615395335298546519379067244748680661973299769682428306339950416443719872111414214766519140832757653668681993226251593080127028168687783797342216355317950035288210330577781373732363324582518421111001593845636715179445449343238950155899900619013144697861788770915780920528668113862591267600921487464821892959893769631531085410027472769773504093474607845193606779902180721877119879912972409394139080643024218442332028171915878686247884072686504750712244829225868014432514415437689025999563378224703411652103947225537539218036630927861036040330818226772838198935953278759650252991475283125243740549554702213612198648928429977447958454778813651678344036924415069340732462533429833422212924023447211778790279318807660302281030922010483054428413609952501075999045460689356117913690037734308829715483138454605853423375288706198412233790144575397118515520525760763314423745539585232085157152184202997362132467937904810105493343316064561549777087682581510987482243227036811107372917427454019537035023671923349667707439313585966669458181375384800045068085083220417051917457378218286089805598835701019781537370762820417438692461114365059065236138314601399491342930409941910316457223258403066545679256110525732562944638205720601002304393428575269869291888369466280971979069190181712455511312208586813040340079773740772064348237951893457849484214677935113832964073840114321066084459994870653173488793608210594155807424898279378553608500714704089572009089875650590469315712985951929327284873867505934047795718134899449657306737023214081292267119340063810462529770541599975268086417907529150468984255933268984387943789376079851951367398568524757206147652442294042335337162265176469618941111134801069316877453266110334779036979432197768837692237578291345140056827374693242834324899926237528679270326667873475267863057273245553471750919558722851409475180980612441515087910590142662536321940964488892823998482893268120144814188884686837884903233931618131340376900536790537415501552247565800966650731384212498818860357619604391638702732737638723039258467465432282837493797086615657414300635147534083485854926200615764992990390838987959497508626048044321056838051100119465502478621438493607807841319633977859190085627276357735445287818877532428332759942778530437799693624137543510057185496393490003898988552906209698333624868331160599063541921901830230715986871975061817062333226186484612246758635887104781121058238966489536174233387231524708252921597620683549779739048032785518148679670768976583229961399309870544573917367543943561729196984317187582055802786754080256682953960783435782310648614919892055942267581633650466258190681444022674997389927969183097876053276582838949449078881024083076209852631585979410038820000749481965717134532507099736349327813431395201582636598191204453854641739250140526058216621718474353865966516773546556378540153438863864435486256769483396223782616773862096244040556534415268615039076582751656931664229265094126147797727304488638207382450927984972645143951576908198944847970279730394088496968936504530632331024380421892017712965164598696252710999258472987541788054264283623455838294740117856245940417310489639850243064556095182749072571181127004816487938940943689481964042194336536887530238588906284066344779792388934671099876505094610671699991366116092848601407364275143219013184370536709274386955976707419210246972566655518075148163915791772394602968908153991160860706723275312313367155310735433421847473230108478038170625586038107035734244136129170156509389329317016626654392675648386941015049676679075993390030967178343632030460287109000270015084800825739429779338144700639904807549656261882730884635559110845757050525057933354520640029722346313394439748514821144037873868782148879340366135111430991494932542153971126800806507907550542518593650569948868694507397504168196795494584824188345928600581277408719070146977686763766362079627018369504044103378255823193974146936964786774627057394138167826084533720977907078244132273030358528739699319628792966084536476122287049230413767410052208339862334508515411818782020726922117227657613436899126442348664744303508699735089497317945331338298813449655716153531328494076752812013963088101043707377385259311784951511869108399499607262853042536125986374614346863569581471373027680054440774901447287133765465416603735175647657109505276030233702530529266656211884567470829265921901539714279052383628176095695501768119516589567648795299925407141952896369849382162422193305752034185282143599596949487018661068280944417760720653401129388775594287743854457017793786398858794332986696761838679115269872069623291747390439820047099623746500872604044155099962705849905965059442911401390858792085216961146605836447272423858677784839568732151279897333991309532720602569713206692112460025403777329581944157306477722172717571989038166048607132998046318155744494666540878581510648829704812063959564241697037818071664751345917421071369828712256289235633322564672611301331278977140661691381004432846703637757134944532902678759925128838498306479679912190885542754755772342064798762043146122356638205183404628427259619698530644912594843267241544794096663661231817302534159913945593500301419772137263168517587508405617482250104719476929232778186019259879160676312625011708817984798180500285842497272076389538445661103587830893158676516828353092716479022737976066505597427544885796592335082758080017131407850765035591954177661785188915787482114201629975725713758163805062531420864792631571077457804180219499245942997987396038820501051065008261960564565036200088872376150935435251561734606162317951654332041730070866075661069875159608390297773371623125492203443123936966058968408493992179892682655382907597310105780631187449669028621857266813926933185480471946227064992392064995974895545176994262116648905202343747542056067070764727315443396906750164359108980767362330350124200630236764649435710336752264806783888540757612663489942518313997312469998145707078300184525239985193792874726182181580204959374540145485702752025219909222951568485301390085240535079495800263295028671414418417786484845960684026740596578700193762397770444497019017037288052550327201276514849547892295771957901808382828728040733717509485811745299167262687022650347381780451998401830467570221353793937862824683614068888915185040197825983005343343790640796156677412971619458457630105083398963312723235768644833242574377341594940264814350697058466174473107334946675472843045066108797212136298710779425927044865773654756594918691657472310265131071307740233605603084735513754821008422446816864286669783391863952488067888846117719263320674812407157911253848351250089283141791405559146489379369594968493456610861669033448756872647915688248564163632313337487851465336282706773120819495327308523470843543802009502427366396929605789786733190315379525184724990591638046616921656398802750364156772131583104907007610034244066553764346032527933429471572984770887878345922527570967608183672820077838581062526609192050555802184596089734689783956065532676054785842911267194257399324717118325284392254921067581681913990885454850288862772776233349361860632155743290933042044712002112396758871908653029430418064541355851967051571241068020905699003176154134359587635801092551259060342788602736200487618239547226294723759557985962298612227567489353897437715746713056062267603077003816897242262406406815885649921906931400845471034689293651440749801864518465732853073960687164334126316760411883914231419689722889705938210388442608687022727309775565255488935092887859054388276440835560192014571111812650306218793253987359549873027131284617325947691430315224691676849921987250919664527218565529880069300973247349978704666208488257663289423217130211723049880523277269485715265544230047333957193322365573292182479794868985297269539091717995970515253870383153319166430079518251082137884798330913770335050802077529358630574962171810394471786932953997221931079766417839452392645055505967823208466600676487761382886079597308449476340534443191705485888458508180157630307236058347450412611017479016202378792174269255573327548333264419434527232732957820492061362860554546908175205228870147270737242333249306122981958401459884361454803538723459974437321993299632402967668269860591765304858715043830830060365826739496403075320923997679136867898237154788273717693408929214050644905125864032986569379169729326457864887852001687785060832834933871742937271322619051769417428254697199325192997817615580916349306539719057908806307565036615184790153521573769092908167953699197264468079361862629947399168235787314321301348349481974268283519560290186578473978293291849605598881507852107003533675930894791532368146595997184051972388465720907075582067964299027348977813177126331752004111651204745812571599495229094625049183452954661767593956338131924496097530691418976110726355948800054933601340657728749274525873124510929486968777147007439242894884651322797680102588488736960230894768407671174575060910740302159712188205521803373085233611333287275547893339000827261033292668613058419352848859670150554995090004184584747468322268506602176337801619529027231655084632795357575065642314480448102725153396823982503522165757591347454835843618845271713199854649673778189715354597973624481369342912362658198789264523591385849633528989311994380231890728215471599462148476162480317941123726321737196446831673313813584286170059253404539728331096545041837794464283137975746047322170125695552831097454267046333460286609921610176037360853438123282800212974956371873402245507640204496516468917841009755247906198789763202420776941343147952211398224084015805886642835987333339204593596972576759194928440510310956760129028989366171591305084454379889592847969545477379198444309303668309842003605940210594940971264461050441785800460200986008305962362695546745311664389238817315928811820183058805586894948296950594431873976834217135248712281503646336863675340811506005612580095902549554934527869445610685279927678101505746698994990868219737306757640915380434598536290888407626966777060665316684847145442229304802868792361194539336951496996940163280969371980356121274183861583049799396242309004857580993029474905924817542856773886229329422441976219821325312164537527949303255968097739742044117677252999633868232281044863308311781447029696329261326346649140519039785818275338673295338377451403377401945636528197187361671523639513345952550645269735892186819365569236006191038177584689608436960282235878864806181196832022297081128033126301487942786376856674989379802274841562909226926078517022532938133520718732983163857203666258234781168173764762915379932169853410973219722645326365897878412360768195848094338660510463306743835820889663023486031459918089910252186213432133091803913011303150074735908386340702149046730932094455497371927552618681476700901858937185530807273181821478642486688619366254781465315340544920898070357819620184953777565803447202746980086762476192672287533798388790649404444240225085842636012128580935289079667334502259970403694527939944105513094718237756583096944214913817585714739448904650864441704140675416577615732081382043913017714972730368473360057127083256737233753474903616864855292282174836636794846464916165377015017729599666090959760172817990737224966856550991423288446369819644922740445931629601893837691312789957836778129102973203953120856122818160329701568641971696499458248821692294538444758133929024719442811438751560428184097797029018669548897390563919432861202645182017942386456869792082479914187575982302860357619787409968514337768221059541759282374529433569869918236195212383040926248737356823492906057646039787259994994690045905716225181827222692732068930971351872930601942703843156935712160824993625204038530183877307552418787421736232474174244568345392600982238149557862160066560846096823658462385200807866032973107761123321092414387505314727975008924067470151389668271491907249554978753182339670129190124869893775607355698486040353709596756256567067146203672718505206516064180135092006057968976864899923021772793139722013722376141490313469304555745104807685820721849514389962179326623941910979078430944045404730394854529022000567225373697401545440846159298400156328422347830799186501892312925037479078292873414886221588748802064495517841526406222878265878811172860146407141159962789903777171010861872696103206069726886380119898738721248074946284793015087954773245821486718580859852694576611132582033217535246504643963343935329526214087827599419974021024641609793065602303473775937945522440628501864701980832251628843681139106157750929491107604634912623938518366386241202122812469712490651816656044778920509527399572226109515493954206895012661258715230905002892564780047188647236309827415064509419298350728288681912533886880172205360702734051154428609385474405923912440094669511106407708527083577120693780034841114370377209931406971440976305037819878352339355991034143039835830706121037013175208131424995723565756084120642500845290902620303151763022366960023552013714188962866661306788982154117763676594112311280417460649771315263208401302186076959776507961421568103997711588779070767385725141132214657423838069434828823290468948700684938140960544056220089078756368150087657225271183803057112320821322743493435194349707558677083035120089888922881138480684560172427625003901597311398273046601820090684323008515663996785061554072310986248813201762801564325143970895320566538592396013665011850933692862505528682800269750173974694393102709073968516653134882944075736076340390480563488642336266916510550790001446470851391333880126674584958880269318087398347264259396932679751617012024624930730947261943438375903734256427169511828001272284147381075676242613332407057509526485023913644221569736876066506168469440547212536928939923229853854028546226544951115586615345859294277728143813826586895862250689531586356926054444360717325845042687293792730813407329062838175936505046053366410482488790945635853094854737856600270431995393078081405408632378182771304383276025373572647874740898446063761408774451620348139362677042725745289318981456955041078979619857922176952874484885267575299186461326225525564000574100434009215879606793961340902183817889560833549943590034446964649058607478041245857173633234350502793576323032210272936516923972153728141339995541474386200147900763320903182742255499606395088769244911766796006549062563710848018330645820154022423399945087229521673856086491917798738400431070386792916936549868551854187450019817012253189100026272652041439954242068029776650764832023544249454816318900297959663419820493236569247526538107598586279293199110943370067014042600014271517917070865462143317578952502243726733952277566174564515637508667172277376369335154534222701953959222810081670834110775758048624216864181008991256821209401717351691551256395598703916777478003339796143844842920553147560430958696382143741249934714214523115269391719345847846420436833848550985941237065922756112810340821605020368322125706054418261284039741956343960681297035949415832434541267188306291545894655100798166553231852594393114110590022897345695864388445393247610399581353768384422030708054422729020962395116621513229443046006853122741465113779622286690479058788976595590123956899772804930568185357727447857861028017447730416351666038760542561141182359104428733365617238873532022260957047350760342391615502445661141709279269067147466045539881202439411824719360821976416198679309397555015493466763547639342012388932322259623019960530299853087355796618425962604255320221732802763468236530902490651985997631023730308193077396860646421533665163441607065195252764806862756341846793802690753680149001985714352954825190293757219156147676809588128318885694866457397031186524580530581763378566470032737625470415678228787799498373348425629683913806670656683162759022710056003917747365732544834403663393862907602330464394762196827998382786562739513104339250481071583246391338478781652909484409868798725480354316772320088626782009891552103740944462729452246923659994039760665112898827340517218356183148896648985700909568087806274687256355102024740815628889385239021070277946199535428732921668914499786050201564554830983518427588707637602983970028294306335167093449408002051350202672888981591545511854930299348012807303902874607218576161953474986542464935379421889986758881411752442809599407936018886383257916300515537706932825160591861308166835967648997020340714859547488756679730266347421233730348323965875820348838538614140594545432026910194597221220195695035730661978240887047950725944871421177023013610014133393603188365546247429431721173460207802459461025090850601687621162638177143535689045014684068153007378843853812656823418028267610196061425546050545260484954389789647697499311139472807708904867705643669628240772103310676666365643263998565964047845792377896946181363212045363174980331901992756075789849730522254307023981806607714979442142076449979946860148570773273028940344897003174319896083187301244089145697199659659706849360645757871168046385738343835499617503016672244839829249122882375421194080149794306768334841368571857023621877195933740653092021548111259196248812717337475482631749352842868011661375255330891455531809780981434972660460938775921787979742238771488879803924705164666372105460413143062050800736460746538814028562684152137130847824989900719370026882406466207683671901439199373907348613827549156152803780101061836648754497447242948706579047257904766669674914793206031093993201953999251767869356625683999600085986544600047628000563904665943553185420126869832375200457181407134411516807101659417449133326422133902363802924948711265036226589771542028926085703561507893488835237623673979462633847848570558474640100765950105632869156643260788892669704402867880991151039678606418785047196615028560237846510427125826345484265039107324520244924592242648042095381114275638245032729332484457437562930893554621547710102248228211789654071375964912646124587007803294473177331135742375672707388442412308919888195156380070562666883716755304118946192813088502851367919201690765462610948702625929271392953207363231222648043171780307345995860166216561864761647945867998126356688790464408641859185000022280160069598812257895747479846623306417871885495603920643152435716127412818901633742643791824487969290565839071970236845747885704554932046529409346302336937217350660700226345380823692114457463840040555971786725180264006725528336798616462627295234639660895676750615305544286270539240741867887460837899982981710365817122998168918057951017186332616568654525236399214461632723115802062416360057816660877926380502823655812109199656922346147051550796591139842773283575246579328786611258462264100936557629015487724562975028813980193255039596275282337577936239058562273836522110023327654525382511371030629847096565691825327527070851692969821800761803660554026981611180156802975843622037092442987073933223111278159605291766832703911339152282638894077248965710651680771176782624282070138612399656771276820710561316479078883712181716705225134587186765475527102931371272532248403430492697029713566587038802517732214535488688204055435870004126356807464223593796384178655221147080768633929832580352706169702229644477194998282421577924722854254711859947525890848237307006925010091200050637133503451802550180866816184997737445437491776762848830811298660535282461368760869291283418554252185945692517730040858401517738525947218431491794427941489179879995970369865102280196339325371154075376508725203702332081984677663340098275715617614307314895417096926874005818707874888919623303536199341272925917856308661988117224162191523039210954394450715937798001928540740749615544607575108530785336174513845561786804824463974449554940468218324588310783411878216254324105237094003055804870974929924576882668839911739659239458190402474119941328642596249376528068340996233747143580345251384938467260112250209890957788145783591494128801595954600032718841000683496389283889776524795104417353267381274263704367728665815680207439754300608703555365431901715841380495318292333521044943818942063393532992169760966895703641126474822473236221063962491150819896972358322876095099456618702394202506394132674820109303594363516214480906576940481785650148590335039618679341137296769827190617235423586155811393189495941677110014937307453817423756189077934511912232647884109998628479411718448948812308331053502554764035288631955533393929501126830580644683958365945511722087870140833733276424789402796345339643842826558623147917324430187438805133807444540715593039781221248574732381569498893488874050642194461821442110948446621609734118036896114071438297526552012169932136358711058167212531642756437098449350564927356774158172088095954970034771976286866307937966548437512032287677076285975786049601097112621951910692627138877332022230026770354152397276260262041463535910859520486120992168159720252793325107004296541661709170480494824920036243564728355371402653816003598289141590074589549250407893387710444886434070115640396002293555846671125123176452137626817721633606116976406484384403221179311574285911138089604787389228191509610148146056969325650336602943641692206585666266080800061377214455441155921276912405390540216633252489584439732458327446197069959272911489685721854783216038151082449806122025054807870486548339116872215955520369324101073132908864480877082126010999234513109153451209560294282265058311782565246019906422959228106244728543247283294359711019681066227457697766292067688093128653034569204821641025338148846794509901241536782025220623832967396065992611171429038131199912584114080549545810582349069183487572164412752306559811568290772852483273921284279177962466771177460855903146525862018580757688772471417779797192557748580682109114750988028863530952217857644301063007314760814582657969515770120707362856220669860461865581137121673679790018195138809724110219085874452852784958426138438684948497922325691748688649057927920817820975421880717674322824880211411180900360322549871472201304112745802249261598609784425492293002148996904339164118015065499184004623747006697098656403879242323016877188969053090255679462549855516115393440506547038647722940018314438406806620803466413867779082046784758544891305668475703541171477705521143580044370189086850140309661698189038537324320049139085212531381376063321477458148729533306804946272978525629765917092004184629481047266419061055702831283419946580976264745751642402890188813618963519935208579120962956733022881202080313529870213173945111179978609319669079987055884261468649772265501597716102474779318323812705739902389568842608484163146433352493682134557264729208217160061892592569568289428195286815873274009604138598768621839004483217213647688671104221456633055732625005454527390087015651554011586379528989571136839942042987998530323395260270071022633470224020836477110795115867225344171011486483670506086176667323432632630250489156304040820999955544812459433785882868226354131575369802407186468437752191652063447263056763011174241672988006471769010280572055688357342911657451923020117618697054152772759840663917798234539110313600105240498310418335410733655786686913188624691982650465165012860625826421662641090825406778915322129416443906183613882786008819937227974961447192373473928853102060741358730998940688533980792634400003690860472431959428703230660743691406944047930551223034176587372223876351256673703467331087813553233477621203732378205430342419559295197991042975981669231342456408514740209926769715514517629894888482434682239426260259745746668786965493862581709588370229879809398783792914504405746937468610515838190067492035677091944343213076487606334438652402283341288003938515723426788756942282993588619543455941641605159354387880728823337296473679537419078173932740527120139639027657917002239154369288952252875301207407442821843606661324795419195334008165570626283548382560722012966000153233533483271150542513378409080986392964240220939794151256092945891502636488967666742614611461852706210381423114419204484578426679708483257423920267140417950622646473686504213437665772091707745910092245577198115241621861623272257443672116999158276986862306884632569106527045207712915752825068238825085848449533394963002720451375018475783727723893576109930678054523294073911930918337037980972479442452410149491814968833674103342796199962086036481978172430706311125867887092526020384071352174511746896166169865972520485448270002156764748934941269479415394487819538456208336286517244851995828389548114431012201741886211567312550370983888775560345827201032683226914112802566372176780325817029338069996234785030546287152124525659440507272865019804310983656098383147543262144783423854343602086837251614851341206729260734118779358112481199392340674092084489852722957088104105278232021021317805454804234922024858801551113460738600339703550528112112287970373158863038080569324849809834467179026059039255523896673836976800507883126952636257279232251668442921662893276054371693866817228259790321282489914857118383617673954980580987286733865502368041120888022259848589133502626467386433951652064024935265206464953884991856800978440807644733197526786672440500135287093271159428854450135930887120740294098940778526774227624081129546157261369934341438646633174794273756534061219353220293221221430305380113660465604614637257725817113992102829420759572767436806535053716630101217132170815197766231642962238709921035022611694807095528962318181501261165604800721623325955621192456069357377496784847407117972833020804528782917317431788622303070189051221083475079687451037562258646723023106984801749987641526746435285605016875664750187829697861813907564355687592474178124530595940325966082998985032983004027081612550751683247420947461131668924663139933694775555651269943132059783290522003177735255085664606042399997902141344046975369339670466339783372172619374773212020275946469993062692993311272751286680832763718332714237655958508957918742374860029468827883728118027350925930269832607339766155670712403338868045881094193648361375137704909038660201838274278307128617364015519993897529085391567566843429369082488899812157525416275522113630076709281078982121154750717204135880041734938156895149302109784430115395312220987520265287892547524387665780684241882106961363054514280121463903680279800247197504618693914626902683586697660842246420121250503566376451907303973729043377665032586194463707138953498598304529368737155581562425857011847831322710342067345661547573445068909315628083033067559347821748940120634624721876114382121034158610139288617450107488471091107463121902158764613575631327540712386639963608360376628139435086147506653895913914598367337356579253161051494466961427458895749442912740668751236172564738447262850102907745842800166759084742751166821811165342378715375465199694284887113935751676486058426275182304079276260218003725020345597335019183949283388758105845505678290497709838538862386466267736762670414180553214636737103612961037860506133008887493202017607647371035845509089448318426850048644753635016579145792268010381340819694216373639877401889570637714007250496793921362518592222194351040278666729274224763525641579899955289922312865141010213723090119034845797536835585813218251367610342384104177600476074357306043558879125326399080415164720801253278001303574830291202757996737539910136200504523823448596889840538318964118642862063086972267205385970785193997982447180194104446860264909934569760522368792639226917415268971778200056448205143801311032014246861180984999118494083995450867271545569875634118123536265672301420468573052170204735904488990405136593435819473098536010465283204636717734221469740098862077353354964544744669389742948289553118637511884931776649517463196672837304922244646601496677548911100345073123159330527866222795112415469124935970218168230333671644226999829739000230956167882369252443798221991307490189031114120541507589235423081840997726460731434999915398234041734218020784607230051794037163504396727702756255007080538720205139107639084559819005773848313533727083748161863509550124578917593447643537673417774398541910375832236879695126890490824585890820335046007855995180342017194166335551297177710744882567561594753581107733135225765259861961670710035516252949964016867185631492959838046246197253509556323925182568035503583120299180706686928350307101346574925249310114959084796080453517171237775433309767165746654348405205957954035320194453746564616970147797321999342382897064129556579225264257621791891150902672036673188465878983729284570116256268812677342449360373654358493776062459853960112835325367147112465865776229422351896168511572808177179981838525711936217817176602694802336762307912381526439722956090336069036919651759151362766030616398945423472582997872883578105020338220490270039026552441916573237280031985790191371885441545039404865485071601333906583046357854806973183636851254732646075653045000851684365455589496817102258875920153049635387505612799971521858334961357564533734307065180915212601248570900121293900130390869778673317989602757071560837458790304736077055269432299017099013573014510063591240734759285575190592981783445133892223726124629699193569940486978740444938039420436367920493461921998378672968908178126779121029274174788181728075665980962024272867326589655834595331283336826875994159747094213856131073335108984646796197640502660310846614924331694225399389877914269725831725738180785336581216316596910506675066015511677674314227355272892832466681838128088049940080794740557223993503449772286580279156277602376861048835576404615399338662520925497155749393171572847893138898241069231239547314083377703401369239242683313458166682987117756017402317248911694280635632026903014579635348738364559307404533476563352144954868906703308938312046662807568355910036258778264527817878626588651124665336858271171981429801122647866981409669082542924899597225792610321530462871622872319080001886238367027792674951276646861769529657545789174806731062190469185722192388870031638065354979766705248475493567619720708844710447014424656844801099975500563382152530958375100462053791327422513416088405462682517752768002683507970137659632642370542832956199497204154226247581145355858130582009183512510566999589463351195641418069264607764376549302458641642388740682783523272787380555299801772539911743105640604764890263386284203597834711258395900995453046830677868728450970451424303132021308498336246196326161670917362057861400320887790474863359925198128273106373657497444640414897002580214748871762743647370291660275387391831065519989884519868306292403763519048753899155333393659156282706234807773978390807710966339448470552481624193377448001074884175614660092066087507584030523687051938823549140364090105409433070329046132485330993915684601619722987964756309163534901634461154978823683202877397883165692529413493034857752630686681694932923314054855481763571300296591450165987597979840145359066216868603686588532276390781980391572232021197688088616438756300499195947974733255618377732755304294043273414492172887456344196269319752133918101554586563473330207402100286355800050420473078275224731088682079705333591328301379444484748526387119951075107660422627098124046880025838786620102471925792717225344096246832386744206194632696809739394508070912736676309130268570795473565091376952964383675534037228218143068484267636661427309432250176281906547189506562740177433162651319176917343770238413652140565620099990704960754366714855827768887375098659309098790443506858209483267344159881690018456267688733931751325102124915202031846605373509659113449831436469729402576337333934483595202979685026234583109574354879239758735948608141921636377356090091878417933819391515158449522015240875779287610791427065455484454039828523799517770550726849618329788951610907066947681357459590478663370831935508939827507874776186902790946365842922513672223083234789052698123196256152620956838849994131813717720702619194594995986092033081830377117666915468590654555639842149743953463422471797370876380846079664600307828106126456497256946013749282727666418094892908721895024471320964500246051260672717861982524841438862034955772014717036411676969257922354991669196432109385237697992091542572394292591191626245734480459322731398700155603217024039906093249076325002663425302546376738367856408676928092553288140284867291719187040143823401281301014780377326775284666208837111834883867995325719563363602923327582784269425404943637222160740388787308443924746651378081676722020733084743721172927822312355448932409165592484823146081435859675458325769819847565408067931289143265640396067725158804182406586614140690864245150189786776868576857933947331878725102421730675024293620443352767276075463498101025797544006621775894732389972334417131385051941176688804330041354513831876142902246114483664039536541057267941590990526108645227634418996357273040968391420801876385616282765895429254848016260681851265382001760413184414633611335897241265030824056757296889985510519137782223602842136386238494473372024609793711308979363369750126799181487097963277216975144768865349105979658017989038498318490602466410506181659970462465703690675111720161464375927685752600627509385488448429223138410882365270796985412465421950135043397807427583063405607920291129163895142703194937405441680424122525513871455644295051423330633774437016458521716444075908095132435877266862813847032093504595287513874297138911093367540697180076850038299694018606591383180713788015277039584246212392413299745874739256932701703835143857153669341135463562571172406701239224685375548562353105144294281391603002856698741038566851339030079887488466070429106466005474725645682708181796400592164736936783674460203797061877091670059547798823683327513746381935193947123805498040487616855419960866853531104033524158593537226262154099974579132150783519936451063914444175631950143236752966188087338555147907050379670639533024475273302157894110827795198916419951077981893060785140621556452814815123558486796125377192526856977752196151835546959483245184404741289835236051683681132487992517762599500911088502674930257395823314439205455957468631150753407809053115061346982451940258807822651956238841815034919075904382073193676870562624445958046324814978802454841248452808573193736495681843661381845248050530212417872398876361569691684820331115760092976648334522639217969508818184845961345972106665300082391228237496775673644459816682439170591794549831576847412264689080291137115446195929299244043977646230027853164240551415343418305813310288866857787795074511652989811558840402768257186586763094242046054419246989981960214255816396978661948572200556317069021480306224852353372550977314553542547491463813794682285456606382729975248864941873124403641878263143468409185149509611364372951585036428159639135694824219960619263960575210909824875669768530673530785254945976009671307166093818665729170311957250344987781565476808909311868592783067161048855006049079154127198579928581338158813779601417306551725934190132262551483835082706904205529223730679543381895176347540605768990609869536173073187273470249345913684084844542378805417143416545280528239432425973300343183933229261831011777609184133073032264118659428438434739029740026407202183851585766067949390332575659077426896092809057207640183908313852822375969907876117411965280846781279316470014328418430371040538493305417406371956794278872305858651227664096047762947336032107550471961749028320243602721762115475762313213251844255925114290484408935223523813730932590117179659546953514504964474335114561188190072920209088654564516755396626051551606658672771769103422284561543222906642315782024212355646283045206957997564348553971427342777750285658494602766991739782162899354458303454854445834219970621680351711595614681751585599681366427329594312222907762048666573049106962614229358678040852212985014212231855001488568852623864854853991298744990977813824213793351850833042522576119779952627160239153548283066730190195087451002924779038355395107920652702471224988887474563622215882958433919134973573708147701657650684362557576094788836305809444883126896003783608318838597542427432107580025411292116510787663797494895405459757814429130819153873611056325836410819410066929242750122646043712915528930572040521116604560806112203834090044322891971148110154098659980026777948499999281537247033200223284147828091084998735596372882588928990172751007929282562066532825775884418868123343479568161352884753678527343921735685532135895695631900713278755003806393892308421759557732582914641954038911961157246983107664550720119269759673285594172344838264579853257778387126092434410246798508395216198132966623081241607800101778625711358989859875875690625256753886003259669963557866351863312973782753310351968345485498517265151153694222651199099471306134655831454497978369097380529404152440064364706827647035295139090803391258421995512440090905048047576248393658187701683241847759980561488834368932474936446469296848477954518805249759278369195171725487826841772028847530707443840849734147334992450052147775074437882824473095781810982894005239089468583935871643565362583257348231440762804544820623194364868214289454803419373324408653783037979078608022533582148361971827812126549602940586071432150332312016139851308101422320263981632700719876687955681783045238284466616977674515041616037233676316819769751629521735214170429883548579772983884478687891174506956840899805274367020410811214529777549827963812292698114657232647352195579649324653619467646343439485045902221892265232611162492924032210207215914353535679905627414472875786137906636520895473935975268062932869072673980884433644132585682876768120338285494945433969212344551394849759840998544125373908336077228099401952431711236099318761190142192232513964061643226076538742455093076929909963421104576870092181580123789070543509500766337729330917756965977289966987055771159827173452607437515987634747953439588673535692062963574067634012423842617321669837892349507386150904334259221512774606205716332185514594017662309596669277417847567480022212836807682148102707542664500728552122579099963357229746617556768835745088228300262552976124125994388671203609101860753220801984564574191253124228386220034696606993569015651322165304109085852702160929088157871591392770770708057512301659661645728510261229869221754646452233703724323003727443344902419030853022510644807706488774198307610244836934067070928739954914792479067014615569289341848934655599449902954666670628950172203779451240032760862996767569008163224633233195403412445387127778132567268282106814541713969361802438453576848979416788557390738693788990748702628447235900856368439389117119205246252682766306979098348353069633245342012878971866140114051232790091106421098045288725848582472302930852521079528265544664787384535902329637158680971619219356904923844503580419270695945624262419830137274387922556680012456998478137535978946793431217691382729032076001323786287096538801826009167925602472717588479866471203586539035551709729091420171315657574428558710864428289408904056748513760432354249065223759728862102603653809432182676533222201941631892451761168079080966017047642307260665995318768298927375167644728399623857045985483878530505364618171257705136813799941229333079193920316480826629594595302836825369126624520640312165262407239590885263239569640833893562394680258809507584983319435563553297388229434774586296217707717558942378521955959100799665698109166680359283049886035710831132817102603114969777201463668417467916952135019322327044226616777608506239634407931987578603949225463187722680993333412824552930618005542423504936903549512169380965021268451465907848611402052622042657464925347617776498842108126821325703832372371547520232178628636724167050451406837356775766198386489894412783437439885054221947428934865036459414269571727757988379500061280921272486700083106624095101447415712064704043846958695286353606703908050182775960074891632568265126179677325367377606485907803096616704277615963206978388145527517560281487863256461379627980191424679385782689349917244547402633353049709410030678894436746756370349924292074011153006810679645564502334812892136497846624175964907656706275753890531247353876976125023987736137902238714407400062004261452081889430050875175575117489385592523236319942648267523761581457062458938396302572617525978981066288910159623577110052967052625770847864305749739752960120532465280013230787131692532713171748416263119604204200906476573253297650534907161365201226787320810808580574501801001008473846226362316577957554965062387236730473470253064469005422513478918062414190093934964744033980334264166685853152888097807130258268652518882100595673621867005785871320705840877120079607671870255470713196706563476980805231550925139935329138293808506774358969168790897241164711840649928703706617452699559102391281064435142626775399498978342856274200720809219580974390720193464392072694581834469916122119155779079502838364038463675582365219806440900850994614036512197062835697739522694125061505982472498896955321663819286906883055130373575746042100352114502977551450017060488248569380114517400987677276288194151926775727019700258025390714269385810255733527733191745050732834521643512023281179262063916529670506507456055302160101189201518859751179973852938486851016698063138485464511822348210101688084561943614591361173391647888919985342581564301776836221953067731042697675552164264553735776345815504339048466816736044970740021874687789485288028212498296816748417828856949920001989183694260883156525546440676244726787396598166422836068478583610871240261388651520783864607054163794820985312509751679743363862511451326324312381268667149709088220895369626542137308215914450448838581640923907314891442396596174882765430331389664132352551627301699763329131370167055186024849158431685274740970169696535655204903734143492343076643361111646701028868827329289530639150253421210872245905479935802784163363786478477814584940314903832848777278816424172820419586348790912123619260389397600713196349648223173884253566259381035130234784671070672316121341053325245890971440806201906149790579985937651516228795754882019677509355475823949415245964764030701018408412053705670564891213954145840062705435582887669472090496695536289800203398331019426178875477383566452167521836637915555479638767136979798675569690062365544902978236080028490587722659326103757169711277281727451145401729781484451054096132849824097138223501969031829772206363302897963326997605649031654046754390526037054627067291223158125514158059601741962287866135885406846542212612187852543130894768527348682382736158297938913544571877829149523973804714581584668425275848176194199137646764196918223018848443027251864326658147431191953802721003379790160710225410666451976718406088312376040835213489440131690889832852326959298836974583419953941514572230271687209331544411870358295549837977985230274349272522656215146417894446959434790514061822432627947837797496330593302999999648696206749292039265370818680811204066069380456834062797618518186604915172533077420230328836691462816776603947200033232541124473341388350284778640356826908372600354286026851389377512972093256361607745924880030669996472566156587973848950577909026863919800756511853822524974835417009771421904609994539053179380944754484189809090680153927107453386285473155728314323098067704488551789236504140248644733331688048000740824837186088985557981624239226230378145362424932402751669473260273972763171481701155386337387076997409370981251069554351374953276481952584167991751542214398940573567956347115792122172759084278918020474230293814016263804062100804414267333098551564148306988954161463193020263140888641326012117260826025466055301372606440574498876196408326519144033743465051025532621185598574349227358811749004520016651799346949347414388582512824639664737937577181804184162731517939755638357151407806051029128294694423613399268023960085861617766238861033623981641815214904073788218389339741626894258753384934076118293680802500867617306653991890887376629853556698369963140002441262298570917681681944647835808790842082162747432832590221103947144880351854302147122746554383352596563103656930982718953327770511523400628465076026168936581474044636179331618649240404923106066705785218338782330264928071869104528572220634384952957283358480744872089078720085844901677199174841640598495522977070805357273106196356881403032836860337472688935454143680383422917717243683675011359001299430415802195250838362255699655035106924786636890364002344027000074946234561209415961336151074739762108523029847197373960607988166817025014825770861444381407150969019491662544018525074415558752629061004464140624786442591955922110890013274144564931401740499529975738165793812688868152338828974083886483617986837660158106959351928128011274768234928580447119961682221088439241937250737947357499280571125865813248944348831549006545769717257500321173068654538585866423166981900249396306152097191468656460283304030949291023793253885120247536734226482611674957045554978166730311771640035447723001525004557991571309852516174120086130099429549471844587393953390663911417800179143454705735310365862569876825481886906204418028835590624447276354304917891373741299195997548973556220795593803013684485088727390058869489518659352543095811276218400276138958487899928171275249480904647121945064001471685192317271141064135115216729003760457213800398665108330076057267384528651966832020685366075524540925644643425548942848341204865555397655863105843322389329421286184756252667541320756282703567136866169271249819933106573858466220138280649491548379286833681148467903593416897749785635132517040394803232337793259973009331813475595163474552476950324189256995475669077661093411691322378805185314498709514240053058387661371044963927688083029052385876220237197848352666613159967106891894021664226452719783307010417287536307068797231122818584629471753709954114794546657405374337237230984409124656677333439223826393390799254376495466685306472577514368878608033660385318510778972174772275762177230191608777562183759749791218574675646098619003714423605150963216277517923238176414355926748720883861790039331040319993619922197473547677033008194409893175486138642278050810480418444278521944517324365830906773307623836215830412746390919150906950207922410123965766387022102947018573540699709472843124047111853681368891432942319647633796931612179361163229939258034969169838987183730924544221846036913988405268387316458959340210519488900282180438768326810075708627328243631017943945739875579391534853075228754831314971821194511435741658256027760884600243001808350457912445538751232955001668464902237828801774896003080499363703494709655307875862210970505154878943278496874451376279535924533598850310712229351726054260234946664183105985138861061114695804998249559224846014673388672202487912632159598096886270716769535371619795159194809228861601084967940283400321655547903243193775153086319700954840774863347351153341433897077031142363030036051754065308416041537939618132920048291550642330760485773170330179310393845432131218050967261730832847487639830933974319473679005057342818622027020212245662370899923199101442610507292427965184425463927774440748869653183297493596359993873532037045635992187055360125889295640355915291155956385699033519018227245784499944703108937735485494507597342087690382732908352750471250559744575682835475114581993820181677345831441374652412934980279573674776540317039833953034225887911548383769514541507575956138452696694317378005865446427561679718360808290503836238442832922504613172631192898482893119000199759200144977096317733221096438794049859630550922024769447949220157619094342069718989281413480748392343694460785741790323936279505935869832625131529124285138150869259545311555624922688570438860514032768929768934857714937847869384693636247610217124172398017290207003142644119388216891498065296425686669142133916483904190897790387825017409890593592428128873083259938431886850192053371826697865730227136742804354603477942282440725696267163146160904760396696051865782996641844106327097950679652868288377644277978937781727642815221911031936276518954638067092867591365443206338074892984874497104692136168134760558421015456312569382031484060727924224295268872518783556037623817849957286816756935247076421998428258657788524604016053629027291040358725566516986567045033862246307439809953501768908419543950496102328329684109004370078577838194927463154390189053089492566203346409702815745473816083401161236092870322843070326637812992265686590144939624284568072624000436828321840733216467808650039854818442019798256069658630710421107610154080138708285931758074269428286508163746496651491480584291828600037388056227427429246046725077316284085230338901349834744710080160765220929850033064420309763400550775908301682705752227057963828038320672840387816363165965423964546003518617190129153206195942476684793648508981950192768864444331787884839896345839684255824979702637238483765406454361312980827480234534967899202156500741774637911040413775261627088660711749562953208960269612085038236712217700268289757517146319354093988633295305441628206792127226356917126626052867226018783670127497822531388310417545727058265705807506159634759753120950948349615993247822960674060422913127844482421687569108003392051376353860424454055202350271145286512482596598060112656698977527865539689375861498990145144582334620405181656686614341182284469542949486184080986872585279178309828806842415212400590803722741927419941796447407629881859512354115956120355630827734059480585958808038553702720337277440714447681377750188094073147927911730096371377681812142472221597350937209478408114780062941533869802959677572111934069295502426971437063826637211378836640353797412628526649552441912758169553617194011067833511687421302931288534334127572521594827246259947652124830464921359591512360965717007855242626960880842848895556897021670166829767170715725132298954157697433674410578389332631472810113986087727539012834428693631085685591949026723486361913642770057154985641350993068608107597112184846182093283657275779670626298891640399739668499012026201599883453538834946964494335332323832247077323444976137571783828160761994459425628151559423767982362649025277851420682887471376694472978115171274252787169634397478858714811786990236604304205298787576084978233143104553500047467587847632295765644496818885128310305358899239415643279557858017516570905809846689883004535986878771790899302351041189180617232394428515499584942158214694506932718043255306905233797033388237871046363908165817725555290292128533092123034189337250200730441206544256553281658886321826346922660283441636275861499513873134744071474688197767840055048648595811739115458160939639353314031890759670607113063494444953760819081863667431889769102288711978990600392982959961619916497101415899163384954702119666017035834790312656008158278496792634444111750154413179676832088123419715815770558908422212679381402942550507986205822115181582229656386222111753467274211483789184669615250219313731123373757354632345795032561284150288360145837994347915725311904035216108940721289647245839363960433479308524171176578850157364454394561138064971376730323365710587611065909422373955706754210107765943156768298281473369055922960402064632344891791516404473106525219104889238573951153865398117308451206556116367122100862931583324032791003817314760098491629021820313751162153875021050749584836178747296061988985863557643271276833506648661623912434408476019601346071248588322841534705020103754045561139248897961468857809011226568263447023369932482010590377775776558047928669792996634489493924597840387219550975928068077182485402318485167467891350452728729321675899707129961533842140775692659048812449631616947290677745649282920883127892876981690885776907430425605698205688723018803249056669880867567563677757815752122125163594460218444899827571692807401430476150921806436700883768003460460346799158090388862527276382954388143691845812629886878887934784915597514128974948223885316046706367599314410125127925850630806126054737062610016701029951229084444288190749728679994737068301535007401027023745719627908706145356356926663709929253028105543686581188564275688941919002394019050239947040985693921897580095855443614260776443901742127643927526927954126384422778800235787604232978685304487116424114947755156235708477344878314294319434859644304938942091626225257006315269359503860701178938267222982551081209003346439943229003683524956368992848666741522008038752325734741488352349126498771679651916741160745763425248043372138380194490501152583035438894910569765445624690552097562091065712384726549412177797397649051167348498438427892745646239599020974633184574740903781714957568528453993260219748883513169164933300625290323991005511721070154012913267353179323913298712191808763741238939631848903808036057732155627829057997081499873442002907266653889500401149872958812903792902462557482947040056738571652148778796887442012239841116568876081659397262585052091663276802408027467694208457574770585056379572091824987929640411939228864603771705692854382972417218717043177711284957163434972092636192456810206813448140415148859997463760116869383576930266863442347654049366582944857819190128470693083303405659715671565351807467582348820356152553546879772592007201563791309111334412952932816420132260619651092567181549110562971740510615438319707717806688815865184518708468341521125244493250814998724169880704757540027653210422682496376826929106293726829642346514634217099212793190082336833060232725594111314630865854003468586171272144450837405651580767197263976210911631619237558457846667230526232117127191092672181113045463569452005456694681680808293812514702022826946120566647825390312532101560595425613146932457568347212745709262362750433006647761684389780689698044289769131362602442131165226932400784085342640060434125732253914891952336403759263560230635901627978412837653304946619414826750830271776486539335868247845483630796084285235369160266215290497344308211923044195715121452525892076141892969413289498604480673054009053174081556193576509883757105914805134039234741838950945984460104274246095010268581649514128013697878729337324219570201289411202507533618002974542858549518058136059006723166657475519599091525527451265889659542624244398751703253262324706845088003893242878763348134676191834071058526594404943888497612486785354698965690420252567568593091865480721371329095347438733177079403615224231541040283436294073056859223693750042029600275046879940791655485884604203152443470783143449323780233293846466250986988424790109811795690572586743236969833104106316613385371508606563559276489747608038538348006398245860360937332249859427089927696213575719226448035731792722479257546486262861629129446036227836622333092051211159768492047132371690015025642902285269827169420699779216128621699267307727947165883109761617669399017873944944124468141965696439775052867796309486956181949733423729743078296318344160590026167114905086401476426928728044901170224774885036788307542043719987685859885129972949361832716611299274454434004144236459462384553761711402329111644371280917459739984327868500899007740938913462303544577791281314052940050257878573700791714467454023729653175417666371115745783811850521157424720710747160816400665455597777155306972128858939611056042289249340586288017178300496238237838087268323014301154022616677201725107510023720456307194302021597888651873717314302126039890939763137156312609735731582787876933332401256177861410695976085269769036187184983119841955363514634071641373052432084286171455690123380660862951685992443100667658175401437681497662678748714472451463790637118776513064708480933862793527389073598860668109565441526778457980498618802427484941249554123382238409286745335277676198777474059702907404327911503580052942663471826584311974599707608604643609110086669341518380984786063927914913797147969762604699637139391271098469870179884639956018781087665596280308552705447665064462782542289367212205230013753949290257817888473000938034107310599559447905891742193205122954979849227576855588041896912320208340474821051200949583401869728039607778527156497382616218232549861494021694656753776797680511986908825529387153822557446214541853261760447512417244926242910808446359982316843119563376702082580123165218481918413930556997553965545758743880218997672596959534359252040001734431716440854437432631352243662916919132203159282159191352472551694580515513330060659613497868663636938592952082706778509699148694606059316470636026647513310128547760245453767542193290660731219541423720741280087995602788905986686434120012064870101929318445006705083145154212839666639157827460220420473828647985749094967275624268374361919000252257172585665928138815578615127547208865991752405645937569095719662395320321915369953913709567271602645915322179778208500416646795181540924105983393619368711308549982640599129452286544174047310918802564410541923919439016467037753225920368587525080305915741334542464982250746865757171527310047606185848206691319139941579556601476677906548415693598223667542379734175869276099934869486431219378143844294350373421824841328938840872021796855134267217034267314727846986659516367162457522641994307842482182119464511624103194557713150232941959680890025181290032907670783725504502762340909890822731067049575407013547173095027689184952394770190870570587759161978807929766773552216932858258161497811713155119592661864893820365473420858856376493819610366619452206863745441719001952886493582176281665286279446798494507974051124528013354322799395525040760290856965952151342930558200558385360301197519048899221760180130375206997224088729874016039717208439614846792779023756652309318696239292542882017613929706501238218125329602273694565352500554638443446024550473746928796320651079090157334163220568397999788371495400720309963670634655299111182360028039949592189028008664688114198073473884791222013630328176289914412189107644607995921345186274575153576107989344570268236995262560156531045425860062677653845719950967480009410891431766957313850097710584643188177887942924479742794528178950286095364918194715284125065705103641827744987032535121748106924801476006208084639796525812785252948357211608811715194684653743517528686829498300615520837396221329112295345933014644892313496702266360435474772805733301497319686837622329771417876585323483003499959601782048834272200634230443636166214460553485914270978020535755462262804109960592529045492149547642764191285252550854247018953127656579299425168316672829979273111450534006025599524472343471393186197706756922708930505076847180311650202478844258707581735472529396301029046372803802095847254411601800770662608452882007302078513434485658068151175418037548215781299184992819484583605477427101110068985266197452791978112267262152914993224463146529677251086272454042643852770782364012128533273409245891525975919196619580584731535281027399210386046765761259872475047739635464694386175925286103151810162874988042372055324500250348182647558449086646368467519789470332668975967738288876625374812058972730428346493561580021894103140155121077775613605786492324056816971092659212599300072008202972484567967893292686463316844788360616017239803897642331825305380655903601238307887080672331185570541773670110525200750372818549433152533178182647025653349090222363328220356703718696090937078305341789578061489029782604137867382271962158185731122275748522047225222905715526122416931470593777285716948317070087656773910406290372396131017419743549826845729420725067725135530981549729285160203725537482748153651132064906551498971766454575789433141060746860457165156244203590096640922592716645877991047101584667541690773180774079823228315831377520029877908635498166904165342133934178508098089260649198615901012178619368108340403697992219896651571472438106077732239596023848712220882466867916312160483317108689782534408947214013404263684589082567962351153367595377085647118520859782837415492499297556789825287942487446915263137094655915103906549914790284002654331637162603435823854881520685053949702296545574164781122230800894971027253163979676387729829698542818920257584132052691648552312813115253622466794482925816106531319490091800569814791219859644403413520898031476361906185413411826966930628831505598894462749218615304635338242324017014371940449397121528661751045563212283740611037412921861490198235849636924725893807880040334483761794677792025493521596171029812634932822604159136966610413265472975677291539210348883049283046197156008236189461884655531164559277642268515985154439933204122343656207322280311719545376325186536367941313840102908805550382477351969784019052070217202459477881156673680044014259618215058850432458432595500740722245122609087661706360503966107523676432674766094205427432838810534586767772936620156126757621093914049889263120129978411848795061094143499498489455611075829494242921047542678501817003809407140199998021955788766992684730486831935198982047042700784516050929327420929864627334253450619055820412915792169834339436582368851289549644178636476190578311407493169275008979981549344264579126308904410046853488531143975914181746459559770273116263901624389733991500618442481449894078268878848328566112660270584287050177579716557289940697252282218358046443678526484191866783439953198515712282606251888250423721831727087492903126305363168133329031182511676442828746427208040441161032192962361582953715544955200756028329852633260148128246300254179996008369071247310161522424701503993673801334310650520343757401045821580502756272919826572525314011102957164285799071729571216858118334370113097617228963391268753721075341259488109106148815139794245064208378809502588291155914727257441293158024328660106413856726746650489541357774052246579166170780914078513332438226328695393436788428182558735801086378934904972068323546513471317924544372414853080904443331916741697853395470337484236537721556440784719450151080754941038688202607114685308661468579660579661143858391385665243593276828064960829118184069822188538522178759550822895095698925977547545921724233267010967243273370858278232254245687126371064041798554330643054247065227687221040014863148778484275019441844187962980405489504050397168455490635446866471362419478645671345582144339989060207324917513630012945561284688692332508634749815479736321019382481032261914301308707305071491914049855012778227387759850402228721163771891847617164769482672086648531456700647555528468135916487338190799728413493189683535350932298983089787917584417015267255684549752658564188535770196685222793988651328992979601218683286062548406922334513740495431209789926165777954359089715455780699446569957461450289141484322028909505088580618511297461076401922285876604070173180456334179097037822078573154628929705617772820989779236109684386863552777964938488683981809800568034292870286208612919484864353645019004485788016829394748591782182172665712315520170454764356300936692722510527475201371415811809434796495716913381124130136516074627485477999412282708734391973021038370993961380043765662626760581186529104285244532393680012607711914843750885897288733227692872858506643907630703454233514172692875525139741912705985586394958254773340987439700125609203645234495152705507785217546336259243414234545681902277013909458932496405755041971150468080341191390380464023449053148966782773987926331892505473079603528121706573389327165852952360036788861625878644707419966937399584215037168892940609001127460008745275372887722474912114879064799796388483298641785337123899057251893014158890677159249128862658478684637559451084089235092744311844254452904504548770293337565541882482347736852865300715738578590143880844025336313018172057514146481723231919480216989814810280530944617061998564335300486225392972784343998806809200794251513707194456817182410212328870188482180055071270154796602712806077821606302800233628627088845818631180567972283351972209226351572387530334930333954805899874418690468891845949774137641634485418052839441627572827399521407699003289773210976433287709209697386710523191954829891886930439566310221925424900665312085881015977928199112168079444077878380916743486126816699477686967965752119782060167050007616358975295926486439324798606434607115707890770782828463382144137637779582765527711061390745698067354039378917455624956497124329757317107879570537087031143730887966027246155264433755110828509238646704769938279463645545094821629792796936626180611172438339833862753193385452028305046198697401060965768850061256556417530070019701619359899963515632204708473623936268650529588365368407785279709523539144702691264838911656943509900851015663081133455604875414695790052253742246524541221042939028590446785421918012772064322753259602031586324831085694396287966954099183617375037438608954960511701440561957908408341496879765550930870218057417930870648038405022116088771359206541390303609820388143818933983786961852240407929068763343529051096506498031387745159065436866907308174239540882731780221700692275043874422724031185822624557057614610184800025314674702605973729531971692709080950981960451411524340040765243693830296337576707785193942775209616911984520121605073818800555547976096639049264279305605708821956646049319966538251617300457129858246256159733693186872910272937087377557809703942196084813499264205148276713702467422554603064879005207769522495243680929399921152589994152485987630457645518374597980274777754596018452122451933929255413210241921204447854070391553015761308342963244424127654530014512482234556538808001102101061396098461369990116483419269133531361538537106063886895922784848709835031836253019807270986473358464519930212950649100041249027644456981868301187828733642903583728749102788289753996792153436194438782366366643043554201782722494361088322161195060272980382515073080887332447252645527347590438731486653203158730185967234040314962139086866042956004058662764382415325289501713043711478768307904503861064274447504535989441183882223959058891449033032527804910756627689047461510926093951036561027455659791159795008003254458965578899004231462425250436011781113150092995714428097586188364705037886829748835487004041548031638342334661384227062614450191052061713088241318083806648017050614965086311525023634522639437707654017591953192923534952829810653497828263188730545568490067021708044879605918986470593952033769274670596009810673707444121320508812549737253453799223162057165771950377302134550870646179525016907175732416112889395570687859571215661559017905032406582442206572906655637284568721236503897846787141924197256889455897386391568334375132321421437972531050631062865312113439013861125155825412797086000911258024703760672168453137314732747892533928196328515895225116076473450420468469385252756523479514948255203072735800638440739465784953930682144946338258666849964022342037133003564363396706205837740504517736361871278604753745856897477669756515004377279402081401976687158438900604695280262055716393582518085379002965336158494736054134512386657894967639155307743401013049936750710129420282359527810843896856273022278956934558460347839700491143077849822917912577794945401571385591485083939060651911184933037057749537693752361315898203551526434864564090914502360831145848493675997797599384085931586546147921752587130007804908965060661555259379766265497311763069058779074957495585918903606643368563090517502390448003364191637830646515069619061723796577246582154184858136092603243635701282157098738986303753643545522029221816837065471459973414501018393724195713723474837806939889960792017734124892789498436654522708526368582442901137245140169731770791686063997383014140135239982410644086057211400427559016235782137450330726348420389620924598383973583638719820579061424250053377583212668786266112518094747493004754560736759477596078069969301490308990144815471494566252195642542999732556456480329573528713567784062029455910845004871986240515564460221671145023218824633640123001796873971994378905286270933077300465445922189044259836945823096180185401949454369104795653278172311521149058357441394194444415704362312779619981886183376823554609394605480832101905131651002322555241040449991329179067966233493984636674263280405918737779341710199054476479004708429236068692291611728388080003331199265663380680086373877268158773365036876873702960155750942700750862747085822207844798444432864903028010795583266908927762648690979375924871420404790082487917893163795546729505101112006126255392710557357079056104599646198992729931735199406577336011481129397882286462405633936012614554752164331808563529298230740558830551571681393704724307651164846692897537618019736768478111562090214288133993507491719441261593363338400988751885699056704775476265887515845651016833410174551619925820107703443794886775079445137737852929177819491454158919198320357532474827471874659431574557726006960165943377048587514978147634502933231755842961988146005443800150674817275140651450005507564083596891789426977422204094852538094362130349815168009773793864559877308336591199947436984431538438125152396185790660860816826010625335317919120333692724968461806578638216435841742933469493644824761124414294198373881732063851725035697359116083243456564039840463774393967811448284083103376554836749961132041692899330033370893375207987597737236480794229312616673146297658505747468485007013065336967735307066699997953562625269910168229414257909171946301642000463031245061688684477294849531123360565424304201436440287590983211704058708255971209969164709346798217364308069056871168338387841084832421593431415272608263232261948870425485443482697586691001263041290580680254090827764523988266528132700831705532529964637656121980612774056949496353036649580514717289976561054602508274979744807313634763099140129446710996676905449616845588100322699561981754094188005678803964353353540773311861299961885434667230393888278429938845718426930568984531223537224990098104422442330721799501876253228979168493619933028584982634129261276360797020832902777135642568818808061427337418539135297320589468344885719610687943122859652090404046712884662112408460294474974487783622347286006785597168644486822255929764326068055357959494555560022660768373032387683837234665864008119549891526182217084400212691548624059853598258097900119531308519694168143302308819008300792556826520116702503552891087478941080939583365096699978057897898072172412308565379844577115025094900740682031215839211459912836889491253499364031056398846243910651404953551984720162792518754923866057996244069570518246098434565622704451347433519947537913011814494585975673269625630439081371294613636795216935983413608547200708365808517482992881670048849523312744998759537282939664764102532253847369239591128648963212600717115535274873272810085737248545591868422086281409150289060025109550633455627011184738437289502813812900977549470421615920695066249552742661654878565226151925152444919600110690456821232877182330108735649582418668129543425684615561234153994226576049464298646193046983736999720282600169488205506222658789165044805592819602964587961378299768088247631637366470765362344407290221133578731167434425085849921445777461190701679282858117175371708838109597592953560102146301192697455431499252785317857486984860373139341146842838770270820708286934129027544174012296578951955462730908700075226668430823438151834116609039894532618538374909973817518700513622493313361709418943576001064305827451217687388016738173938538232282029080743427383727268511531942405103613987167966184789307512187189936070361077889663606962100092195893934093214378101348121126990009856622526500230493478436643886456610428500939742167918913757330994288414612076367736941334505221640043036863745735663138769161210898539662529374780961720257250149680316706532009011432052904231657235324347198200219361747377034177045329487980413469658331048894839380654112287468915250727274671157380341729946517833256554982920234791149578435111324743003009419769206256546523245588989437308006618680758417025559790117386943034790409774968530794834204312609078495618924341531261952334848126049428979765375449417303024347968515219331066195361201767948823440404515020249305248872741968928654595456428312116875552201664384479095443739232126597178298908242321297307183390443625854908995355992293505834558547057760748498186517814366493160437030828691343672642274311797270318698806352714499103329180205627168627581203418543810889000178356460102152231077163075292224041367237355874199356985426341257541386169946449593767348403795740854910294850358320293201484763068677730824152562990636669294802752052852959119240138282666438773395280342194446303652418320510034633437921310797123260609658582454299081392545714909152215524368259669176571215440376232012292073577729013815777932627022538318101997730258680413501683998404371251713890776071527462800971041239352586311548669238036705991830949263288609638644614868589930608268919764400251391988013659575413446019879581901321313339477999536194343888481775536679017787959491053097880511926659132182384867486761986596470005727986545137682267864266632200070575699460093081473458635023512935550117329412223434206820584746858956373987821145915773663961128590503559962604069759132395512172402311949851110080736822391557459376075770536842674264122295065514854952606495621084338510618233517297511351009114635496697705659487546544647707770241670475595349143529807552973180278699812910462115069158114766369513289542412257262339660277975087425251550774964036863369210269676148230680915143672741223518324097627537175137637610771319771472658995933335573921421955484722965007913369014078810693708516471273527544281964242455193543609684069155110705689233715250724183435887969699416313235247410864124005889451998946120544034360652460633166207459498878948551771501467555702369773198569269718682224142210685863637091036664703319504174412996866018423427930883447899487628029037683459834321691242421798975631216071475359650140202765888219844174251832136340492080345779302264507267030102522027967394457435734898454111820269958946798273153553491324450987376435907559430709112256938923947492299408637643954584276893508536057696001764095773180814099020517197455532277576873352864292455167955745151509291014509836160530544207175638385671987061770001450221158008398200519838301132717627890313505276407000806779178114567548386344002821929412053268093819008582531283636353015837475713137302558359378434133415458123866959983223717214736446958362430377007075861532731392301846345419812907881477735721043392039348337011088635229426982869108826195229663621280482277496918262266418287663392984545876356151282457951887582798827935209322344997181322175174483842467729178387904818603910452267319633108722230597885488961215969247038506135921550391164479136086900139438674134631214780633478518716290734048687246293597867488125532758248318062147272413357889031971886773697560494637080295329360737915783408895914084595870761307048314740363729003700071923327765488024380989524325722147404630698668378410102583234670963999947284947860359712292256901598248658315247157065418032539193826413352983852472954994942835231547439712304314022127313048368808637235725704614531371022223580166253745041855640486710087678845403688427362593385241112990062224695737528105754784756164274274508628189306181184314371984395706487722468585832807754227654063217581624058477108935766274280131829040908778113481278753587194897937154328170175888540053415361046555149341227312663220496901808986495545826591645792333544303484797681150027230256116627451253544229738252652162746368837774058178134671916080285195571485939884608126556517272718320826955392631159830002374762623558443561043248271098000135627612872966154218786146625702082549334445815637573950159675894631098658374210554609401614289490360145932210420132908545995444900226756351723134352277784167726389708128486543778796856839855442332445831675221462883394173655829749402233080605428672331020626482215657387756383809793166758806923266758229952691902194333586749654446999797651097922157047537198292853972232172448874727656885958987080008157538961589222026473788452931290500928504852701701464583168830699789690941139875969870712683638638284891957680213740170875126871566659142811913129226361193432562818013658003497560279429256999189908860672023941260305300417945521045863763654317383445287077932508082848986684866753889311249552821001239000285912898937472551445119760823208542432154032477333862505359120166331223272761247820098811704415029708672841672833628803859044312249621239653014676529694773347178186507481837891814422606240547928228787203724357671094100393741661912810306082840089991393179068630451630935700360830802035681419021769273853335468598990930710880306828796141023027506198324645010395938612593902793227169754203361393438295037464885808158203313066227808426452890471291649149993030771309665052727516874171013148969670543805170093506466462640880557000566737972852900236466235127462086128738291447304240421335727991378708426608966986708337235444640297767663689773942387429468595869544591376894288548163515514625060184760389680221365852462652144545018470733180188652117650795890666792293100541141246588437909196186658343253368750187241636359312933770518466787083760809456201332138873283345488575520620834423910751261929159685685428403958784400394735742218691873943605786352152235856773897090484010003476480462667833388406573183611246582020216411286101242062089621011229406002022517221126468930378741430472801741057110994812879170143762102204599540765138530000401057173003294233451537843482624193425887133330775986566065910546250615364622382987293931571447430239627629794950476569418222410990060466637805605995818502014478897589948294561346591462970778809174457773393779109199703397707992536113711269582107776353932060013735123700739684693280375012019936400403811173945972508515640628579457960458209169903795400817809615896811136471052797933052453726067557079712813702189493238318496153086539297944024650071523865396115267465301748568725083096697346655853281324318791852410719758394205259181393893150875267716619500852447419723869052902883481872009101651512922561575163553653014362400681509326899607136980259362048953695060460554209355274113278806375468013060310591493457445780477146616276766003633042321519915852174554354566395327699085167805273229792024387825362776613421350312455264852917015058008605749537014246682830248726361249963610843187930309833527138194092227278384344351978885893057856318948179698574969426567373480372360225681424011791248172144776269935436865451639569944352127869141188999874719863802151247744184932592440531076622233374127992340615698569624793388955998273900608218495766461726688137852100454677817213125944162626736688628017883492078846218540564145809385257333081909887753033747019609716582911628053373049418395469229997871658969271984778111725327627148496544109267789845481293668603970807753519109970554064533664398729348259623011164607283493862737376480712325397275717636885684474258702437568707089639583351124135926227648407111793733551741336101120141889615249826348422478111611855988975895360742296923540492238424219418757467250081036952258701895910383681526729150053878754623583816765782337565572441195703789326656577326015235983527512222013135305826878934185014023643998780848516336790032975718407653069619017287877986791415365772899336291253426823667681384530739078481922675453473218427546416128825631627661981176148336182517432350322987211782057107592115433453757153566532813684821681735124532815712467273584857452217221946415877422121441573941417426092453112228218364374608516825635947912081166995004411549226249098611039115138773506085067883010365407649440013706919649462298669637064704316391712313063000561987530271999121456920596081115873165828597339482078861020982018910957348611441225762520469078641495281669579776220488150976889319404379651248183314024591615508516222607534558165330834023689384636192861994472816973388595160019554466030690259584818544425694971760398716935235936292668504514828330361753999984115650486643364416731107683652490076420032737346898921777176746756740090579751079946192527649885569716389761795905673893528268555636394099587231105235885832921182635757559700814449391808384448589316278802170782523255021550926754057322742696944544040808127122972480880715383332724202116458391111373423621505576502113739815040470403061138247658708304230601486758512645214100327222463543373176789280097394835268679994901960814767225672108880862141525484133361121011632356203497417436131996089524017114815489292677105433248994831430715773177240546977535519845742851633699517406267329847049993659457982421901611715531996244095335596679372266322444481789698528232482068021388786235528570219218738082301171986312932965460297780161930550019371595205018984048902949902783557214262747534591866875326477309773773599265682473949858497954728451157137355301931016062854016950526534883453140322200121185437287709806550080673914000045201571802002966380805921382491463635603358334830684523683151083297516168486471219338425613890259781648613756321072702158387756281764756614933303466011166502249935828239325725593098445363248431119342388718641928717819175343022632539504152941073688969657192168238372606226710896594043817877663965962437782815305167970414610319233342806796175414993946169338782010469841747709218897765135036791062036033367494216188945184128473381052610075257772775888419365940860042921411857153993703213189072082380970837621949756726029010549181075623750108490030370172155039560514126257900047975016436707747281060449072194054302817337554525443906031005193985233933807206958782279906559452465761148130179107916686273604321723438416641966096338559078421847207669292835407572758378236950798807180603840531485849587610312624118744934792735356769491530341954663448335079984459653463033017976566376259706534377218379819383573858692796698899734909293299925976555624303438466258936532219355608366122657546437289210355614974476348839242512868073453028929154710047047150975951586863937346127402384113003743944274362256917445476053304928475009206164141201625608757548018494217942378875145447482121921764288163560566097161711349948534690623445501562230571571190236553290244313926008258178386533135939591482001754217282772189848037395078705804215054320713272254342128781414468036669875279553064080255199777252939008247000213994632239547223979294803837111534200801774357319200408689394923227927318672902620476233404693439188104692004010650839114642566739749014355800178859656464195750531419722483389584454779738674258375149920621143645376831603465452825160975983806278374071984798274065860636394790492480257072769595822010469480483177299451691685029507738742120887601299784230813446426216701334359934508393599936512957363751831734220981389476122661082897786944867025517278672160659351690008519223599649807657949165559351891883681724605409778479856683128219659019155767503310723961529250404891534521836537060514278833347062908255148458297150630712544680876084695193574779454596903629865786632103629056376781680917392021043574804730631724316261544301612010976696909537143526282512036207993724631366843343149209070819677765072701116442062385946881964106805623546142219950723425175809752472082918852624109979879974751458290530474721589387982979173040665739806065049653603675616505874979000531930889003899798159951306686126325835508479408136846949957111557200147173323366901882069521785181979075257792863064639845220093476722920177738254888561784321630657552693649839468896828961351823343925713576988775961620824319415767818373693433468903320928875726315021303060215203869061153658773618301935344877188792950103718544392443931329302388523151222249828387621065635430318020980554928010693156174316463283287217165713400131687958841992500965665180929276455211375098010259997139242797294742839346573525234434087336718331085481096521224066642048319639593808286566551452984943956959658338367738339155438436889840515420580967590359337188275752603260614581577198561089894170904480073593024480333640476517113768587825268636415851746837066298074862030206660923990179602523535099230965980468029680254177207907230655697614579208012481971691409428012749426337032689943531924618845961964699160332481527229428432338543539950553763103109941325814725784527740686008196308272460049654760355234530586172477029342632898099420950672448154792093032541386075805916546238128757205148999587196326263864789333464903605622971795713682415987242976145365165034980751698627891691185090397020056486152806857495121405197313900411815024837826699954190767069560447247294408159081641440119696572437971999431289101551779638624935606785448033791306868140794182411114231951998978582785612747234118498441150727060681029203911693531262774331288626195979290822248059579412773249941711706055219161971325715066048740436065184131569340306482203487159853849967940193885065914715345385752914962615993294708125099432213571574591231004522470785724459719732823084294282341949066894482487168023629394790532096008034820499834877110505582583917512227473389285754142689326076174567447675588120277493701337452481013089197910107263808258018766332674464103746217229490187045159444406540642507781760043124060813668897756485290639148376707158268396853577009475638764534183692967179522553518988589367171402939688829786519076021653352972279332203571289659120313380154253074749363660674074418689873187607629560638121128514266368035578287061266682132760703270029001631500418761402482864270043594843396753559414061960721589668050811784986643262617270003596434729858797365721412498309612003254343323299034566788913910349990573494143935880439066331062434229708605481119316952550317086330505601938991811584320013696998960450142086792691966123878559250081374476692447240853185330280019753078077827944608340668783775589538060852545631186841124417773571589670003246934086199772121884746295520220435924036728317358548686782603243316012604295272982517300859833723315910708764221616861725689481834316751633951795252165173953312609829359607579491610475009049220398481158573218946977619928445284709379921956135278405587911512111802800601679306864326330642211760043928675457580581561214250495463787281875644937898214867127552779472741956090918878371695030159886449257061727507726549468852864930364803019586222421421971993094490664195490552519669090099674585084792865237971154190344018851732021249518964736512673630042389923651717688787157013036273558631567007884475764536306235857423581914609696345733838085130193040064419120148915408158970807106289428162553405503082759625666269976671100296437370265648231360274069352037391450113961953790856758217047736726034058607391488603015510409998503804616202235521148313089493046967206622577832749382151652916219331954053285686023978437513633789232341068925494376308811589989090053568994459523545068167421396937942124417321264844257403035271268455213566514303502098751546602179218311247742268566280684527433164122888784760676599780082796191028217844504670532064921182056860522273176162580981197397882370451258538640119468150395711771205763761231348568694229398536439677897068108735829580586550449240743152919690488340497123698047952562475762674034153956257272371666700128152914143675986823153068451412500945309624245546248498673427811700855838280245402037200936981720992762310728896965645764356485890349071711329228871085273010306364466752152126386251083066087029010715654607643115420772470465330966515481399218062245327997731768294865061652311139334616376436274867717055885019732598036080551459736027450220208461321864940787503279075754167232981704793349544410970006549364466283632119092478612515183307309409646697875468370359088077047932373888047715398210601000066504474109515188959140725712086536261659135912730638880051908438301379410006215233304441246819494178839392089718843778199622680771140765060889985167145816272620030002545268112138720796769882522920901894651834659304146229678525937720633662220234792548318093231150805539138216193123529332420674930483330019413663194785747982290830577853782684457716149552927793205581306492681167424424798495669823358809449460626842582382290525580237493071946801368778544057990966221134461982134746714047974068780946550068996118679847793130535362756157589925954230853773285572784134923537747269352358281461963306886611293400935013329419453546608262563040825838705379427709056361402911927425383251463646738620569601285738893660195440696882829077943549053910621339033357398372913800281749847530615459570603050223874910785396894042862360723862202851839056750793759248445510047065783461364280159593859348963368589326173292441806146567831034920385052257848058401575484573159624880254036524165034046651948477070645131423734791580693843576254004812216166833899864463831873326553190899072293971134334939634803464688874787194130593396226270309153964981736621350245896022872627795476531624696711323962458437849665798719419135713874415176922634699787745412047007624630736408386809242256804128569550526403945532785103789362645002490034534372038556877357209891945543026644778245245521201198468751775418192830494172239383480356616456208248247054598790749567902534149233441211294342942539706166447352706819552072131083785882821879617602674806578239684188744743981727192527392413033321619270293300828758227324143888323741517885996705179589883795704902252812051985725979868447025534155323433885930300594726004162779825354304241720762813964746790269333621075059364576598661978910786183542216985679226777120844548216541068526592946467484565672170033634506669434134757214580383048721396897000940958560403538354611373393681338476436287517470716301695039843114635862324611619545365001177684118557373907481513022516825934325782723978816901091648033180563110404599965058698741908174330416029863942681711792190132569627490495901630719173208247711003467568427756472824012288703050911544741245095423508754430007511993562329778820209191136221486280351076662875072696150003617626184918880131622660728128686170629964799565724394847590528805406613691512230524165692232071501427447877491930203048875882936417015965972183868196400398423808413931475461192702643333077029679324455808304902607719444958917915373108789153795708996218597186774275691028075505034052182765935291963600739309006047346191396975343327486870672728674199340488185170788551408343333304514330661411604032521919252223852254075349147762018476003560170495722328652522074397471145323069664355543488267643543646450586738468208245216116455065631730245924311749348790268087993893136447398068025374904915527899367764382729672622074511659662734023177593749416906374157699474616076174888585625859616946828180582822281583544886573596471155804595199731711752302040349456754968431602193429653587707566975832633223565100879539413752117400968193177523803499520957856296600360456523688526984954099595281383208973075536588722202348237249598078491660594243955219822855394598747026172607173765348779019158710568996916257672281611065071037111728754893022338962593854623731631554397087941003774413007051525981109751311005033727819919340056990746343056417526115851666348215636563225129905159091766837296359232279947832480222340513698814668457601845021386004323489663246171450165553377239651089472648522764374081566845671465251223863132305464113911047292200900398114272624526652032229471566340686276467221888984964829960382556490384169035045037862185464645701610139851953601220804707818586387358913759483172625006305425464197861060878321904342465978577171699440544598642597476249802869228971819180121501260886088442399935328492440878802467580177760315571697806753751659018179157837218843864587628001170696472048841025972004915901551737885316624132236025467137114081914151592593992593350822895585819892882236527019330336863865392386078711813094549613103619084602327707344768180751649718249991366824570922663153454107285862987362161367485050151109651974725154226369753187684163874085695383191664081603692623728045417824132713024107083924554278753349264879155743220372255135749563900404806535719969811685634102918948003455603791934067665786629464592158139911189788661398300181379330156470757761848474510477255072882601002247356889772612804056261559153407865984717343043253019686499928227102027116830404041277083687634335013607133755323867537304831908310846777017138584653261658830279940348224308003722053142950073691254149332625274410969671682809443993203598837410520753223608713334612776729358865292036857016632871387431989747852722419702631499095510212218219949739393013904317917028802839107470016549210250840509666661192735381076695048665177197394843190687065813233006126713363439921037389294970065259164271560794339254771132896533102761725918159125820457324582347310506828279171485736533384499764474293231582094109439138419933718676979012568019323140310799099126064065338342507578714873714543716489416561083688472925254937558683316380485405069111395624319322503188532640757073901511356765736369530398740384816222169341484430820016922434943430805908570695293789895903099974456334825704262104740004878908801378397946639469367652407333398237060612335135815688289133311176985249482050705326297016972904431589443390387149254610804084175017710734631170712340323212035684129620017559802166613475621317180811735696640055732252010183822281575433251806730569824946551879287712791591081042992349399554090299292110322834462857464849641763668208408157850499067452175382965492100335680717790261429432004135063043913649383128553374658641478123060857922696579821089458443330273450948397687567883203236242423757950645153508988843438862770520718909140875926206298160989172884219891192894409307048819158475502517914727436428956618755436103069002884620237483725685967460037313600217660106628247185154193313820162786801635691847637702834425059894360905600507964957898359605115019725678399555961710373275154013247107496729025986351006034057538838098788447374065496935199787555518914949940990029918097367193210521822538443077346194630649839271168181636059435507598476810746320624899721013167640551265893425021902859590367342384438773493995410516790128433617233477825769805406385529195952379256712060793898166054996690377116623887160711008671929367451229683530289169854573370101842575003686836270392930830269073037697567426295268349130048110562107108204507827998372561504960973676226839825623771775009871358325144348888350140342306466782793754137952408514183897893369616436501576601538938728687060146422563638890472860609600776477727218688384649823780590122014859151138379193242754099478794318086986937314985086890342485630405682542152905356609077217925349993408103856810331833809876398308159213754762693939830574401082183431721667200142960986749307597266734094667371554522539610555265922476091880116041115966303710999001798954982597879884639350012340299803854865917312013928135125702244362148633166284482686852718326209050248063224295388874293964505159273080967326666356236825263862518430471314865433159645778384392702051005241913170139538729556739533514434101689364637625386986024709794445291983122431181264858233252181322470824478765565280064926801144931173962932227622350373586721411785099799869971809261374222019734137386817534016390580721653693458569321069644127583737481887811293021605017789110496731446365040845889206503335715142213456244658713440974180879746951824817605651649667885853224257824994959805037157004851192612723043472884931928639171269292845999928634180130364178299163917692131604566033844923911797265536914300310393759645745944827647719803499131505768579621389241824759972704868007184322603129823165461368663057920320222011966414076346471654037998208141137582266106479120926497594215058800506082126441131716055297864574947637632282370964394653423933740323554115980841080265521058579072770206863122027755382221961732400255405393416369065063028168001252820495525723692365200350838052121129411290331045127228636038537970565001325773159557856146263371532677363854667770509145718526389837908142546984141895242317534719536119612695070918081606314984597955304931167740217884278263737669475524266437265447257216036193426308141848555167963411176627873310388662573820637477980976038036668688949720648673112516972856503479436514785454357563332020248579616862250796092975925693606501854927105865732895804281703324628268276966341285192728972356883544783589410113150653415197182022154703792542750102039079943457894617887825580134830333374637465701707085446352402903108927352357608436550080234302799686509044979025816380851803706715683893371727707581023119059896487079760517123034387565125347388031226691193826856968195451317871493850413411758139736231633471585764148717288833506184838980688071357985399759828602966337679119143222974958280778996700001701844274875466817935141083389663071155934998637712757286246610856334722144032192968743971867829788567808182298903904298976550668099473542585303735525316518785639934869199283156350880886131435008087346211688427845603049537152063844056450451891437742314935496721564545409988109611596189884161762657832848327179240300906171075200987784139058923353931901033245469975609235508581880637613834894911234719999195702000064045378924720126300998704138060211921199578210449865523655915890753908089574855491104907261685559477308607504740872510201952467990466317689574474431874859076337230418139486204733875752664977562619086886751782611413733328151893359673681388371778597686772863002829907280558711816011108935359920494952983780036257882363233324351360543607180484347538005059977882505262620522650921158059660115322859271781064304036382446070331978096890540136964578633631246459963482367356697674162645268911754391960701141526757439360642357554203160486291310249879575784528652964892102956421449575056177202806512439557077831182033568215456123547892158872438384074923513882676187630738730070417409395306438668133554330229605676837373642243192797117683337096491903903676009271870501511337448589989711210066760793315752749369723169785951286743786456470917989907903095568405861537385669732761084418313826305014807140087670748229931777627459386088785454189705327726483917562045188622298790760350443280920906916946666237351171227714290899428839877014048301467265537876448939315645523561221527469265177934295448717034955365329896356773887912168845770666557102799315821597294257128158861494295554940654446697794962295400158279483118442655923298359056790403558084912922066357593081819243460204012816118825753698014323975694663553739501744807483643298382936288979627152301095408622083157789466219779129206598619098876647381090948937292276917306348352923971418098758760050921033204325166116149827692879130939555638678738567906471619910874920116730549275178401075693812945835366157975492052628287576691799660722938941259951705348726237590376246888377547157294080582003726101129271186778625181367586761139512654969632528630681694402886206074247891522513628689802648287609190894922028106564718172092894641554864532455195092744496391243951017942941610502454102212798734683629371717121864261722417329425964551841833332657718223691636884391332776778367377425768773337917867362589203807251776819740090960006918556107437122489251094469613988277105130004775341566249862719867293713931366204858529398902963394303998733587162621253914849563398257479652183768077431632562629849085566002065248026707275507234495503404536962847384346877511723964425937326824441390321017917906483420579703793819851831595827670431702923245791242427773121335422479323807070396193549002750260594049231305588436508754903016612130141353849371963814414740770538215829833987264101764356930069661449544230695250300910522948359555895116371601651791762620125290276107944279387819560929493543822511864359892436222310030410885632269662528006880925172388499226706805256366956346176393160243823887742951244320019795792692592211090641363304228175193295615032605275308234551250555226868083759280267138648291411550119029719507522360985694175780955915123940230200948374605114194787504974380023584131275990760860027387925611903007424650000818863966139788303547725895643664095087545666922378459602975357445476199290840045941752990036531422043283680164059859791561770749649463968314325312855724969053372310348937503197166886290508606330079866445549216936428253717844724098174860095363619055520221142136169845710450591053930208677308379089623632914051018788774521230663793215095840838653571979566334493998742096360057933057470916527433750700950164098690589151050680607435964557043168807710484868484792932531887694384517725974659286158579191744816837546692081309865696018092418228527359299913708784951338676710158880790521079958394434086050021006863557915502935144549499827882553557601498421908769151351691668182709381683300043369464348288947885018866090826569824409133589677324372476193204850334336714354621538909997075634099825634077381617732476907545999796833801013524239899165567532544953866235061070336456141034402884398796936750708225015228171129047329534114870503332855340427029824758915263722968313390895553637738406053520577715606852132312162520695627617405115328544636515136928879932606931684795620396092507138616162405695057914444576125362479480513237252239302877183259468822878084515415822752903455311104356755397078515152405511733239152279756095701048175246931344956431802905267205577262626286824205250473953889747025847174670963206597417810243883208700036050087232744107439139548495526128611579127616111050691291130971224881977887125880197774360293299154480668239249693631081903975560376139942904133726196295952034692826405793216593141191547670485351255701491308597158706699843919311492195694393637536656778629734389632950315741805419404863932840178143876425333668706675611629218590364228439633391544078237406000982723683698005247880521715039850923835964076299667351401687026143677605640481958892545225494561414882966868033377297120203830728839645313947660787085514481543265816226274193672625131987077146097883595232653228966432554722024046423203598419632028488014925348369522275521052813008857028680174715290835170064196293685564120579487070961504897861350492510074572085770069797228072542255794580312991624641088979119537188863686770744546431175824331199317429491306555352302049981723403329168195801394907582303823122969336527512066728086255554216467717696148655123972467782308244579886424820865406943134435875753178048668487716533921076690702178319589909524645317241209301768380373082390206536313230462314906000220346106673223005635412884687473096881087530384173602946233953137546377821439426757972413946514101141990829669640432875934996171082763684007858373852177984753480767227472232004630034278404576822493903208193221677569082624017382251294294150057153377190303563794573759862286309235286774472841737157497203003355109318597957682314564657187386499744672828893971623826301885282187734325936418187624867009986937677642378093527808145133326309723612922359808916121306686716406237745991875426298568802511713434783680973630510747159707953546959634240476096982135162198246181839228651741475919604823075042361000303990639057910864230627597662457456866150018967199922931604474605425681976817169458368880024661357954282400145091295390311167220433216405161077293673866469352227506114394146836058131668595394491063304942480431409051031394622937636034204942105186263521289918661819917590654304320524067243867041266759575382360952005041209953241815284291710454415971075230454690931872280408605643355427451983162648510493683452870160010220026440033802586411444442277039417525479780297565231661735371849498428485255318237591070102358685627549727873317506526966679196187676496441616724427091327428292232274456888022142655668140154532734822648016825243257315304724763625350216767752824410037249601824806662991777021231080986889283775476807360508657794785908912664352299258471037044558097828856785750655396427035721043918287830665183600317011258641726258849760143784994523905125866966870024613449902280867550209242135034903703627699393747463966511447027962844075049069080725912378465711778458755718891338474297269368874851338861509437842844635507973461536156286594095071880347161483741757361954115185020153911814937802762707730168165107491393524764238019600744385938746626470544688115793536122222042590748776864957974977157787023134475889306282747034025330554413158275197374042378159037813207967236165609795612769564034733292058706096386566396588864113131858358525311319297805073343580678156680608801097850436309584290067695671282916029010387209959361417892415156362425827318277340527761312363505838386536659801072062247754276590685870823551129573766911280701985622749742170607233414937680470638898112599322714385304025114234813452184940429484648443078788380708906300178575026477786037548121330710541418788985515579788157261195705918941113593177015430765943224044560430195426861203838469587245447500192072571886371341384152819661897131210728728639210172185180687939212715152129583779657700773773211734646749370089527953114922008330149155903357613918166727496005591899471253641870280270551573169074712999338223030680034341928815040673368399882298353394098492452028989043278690307979201576200912029137741454831346337946453148329113276289016051008353077655365462894621198469060081835367972691633591179683877514094964696717839390318104445067317049025001977129996585898214413522640577862268835707286047522933329947381738844337379257726786236714688305214172586626721017153161648279317765852984560796686371830302398102128180538765886678622656591011725619725342870476157852165433729323989793529580519970160652416621367149524612202719298284882769463064515159506926830853281618121885129228393735677789379819393969979683466714910317152065207911038931020489180734289995718651344112459264069794686618108509607776643668362658464457842274781669498679083509442709285770114399693720785996048789937594285415082154700680534989692171164577393792421527612264838824816349266456645014318336085602144601081751305240698424800601011336850698947030906750424821090996758642648211314927462706712597192654038427895291442205728897275447475303758102653349545891466109002410322203470993626598749914077773331779909870858087686240794464385849959591443224087644889324189578268417679589409118864594126930024147132832305344824065350989488257941784830447309442347932506243468942953285383834082565810191529133819470315346941714123526535440277314701389305952358022391185609436440664584671205705204463039584265204311986380837866130416299562880118031025261453914276567060555627591294777841432844562693798093185223795509654895562227148104431191737447498139108016358143187439431284304102430888817491430791469576397146772175479026386972870426498495255577084946015344273647757489876537718113403860142757420089272654826075775189171546891856195716021014409916116281753814579870809811950891186605447078808126313600357964078453843047716588339325287327044595943064500295644004264613998668714419970700314364400708832421417050874278504993106757402030498982995313061126690320638314919759051467715321440016029684470706853433996715310724552422336725993260843613624128823116038882862931769520553223843100311198859946806413129344301973336885031017077161590268389075833171051438389551309883909243602622458597327597882810558509328522765147611624266738624491958540581735641576130420088757452632273277118075658592384416019124075817634455118691420176977200395904893819527090040047015908703876616030870442318930400039747093432909005448644176789606816884008543888417052574354773927548726952793616998947233572733124360197576817697050167672604977198441083741544898150514205553200525066033373008117507224598439187644297541997698579801843018613419592353422183637988183796185361230253259292001000415040040743953273961598462703712524430941302553800059711345736749214008572637087598851454001732462631320975731644151841534218113065904605950960283950433619660783649456859595148165551540555086379695424774191035131406156232992111575276477794185891316053891047864878275998566142133561813832518945997006685809228805379586726646032213876027330543377664680018354446041079197807852934118227370775415847221939460133990395045418118831208106939473711214144618426761635334365674985153223958096452891050494195764669213988875105415920974971492249153837332990832868182981289717233611533847650782970465247491992910760387185730160668994019080429137385515968865893677678585821807207522639046349652782669579797368818187690489647591120465467579809925291486745534242159043380105185543148105935357087871371108950333976436442714412744051276074612844656714610600989763295482143831201910612761374271812229404024729355261773532206058059767679173351268396302874024932637335649968121412168246240343725632870740040045401931263836255738540989380487921248465786435303956645333277248694629933941802055920175479747872548648118197733847850101474463681068381684103587164996966475213769662573682179707037210543200299121959308942692494672356292624731091458186960235576637830160742443456854399265087148077331531053292294626837358509095082671476502817241895223435975084455651543625080229250022568724171232319738973294066791716191554613795818849887318702157988971207122267759256222532482672539203220876690972788718585109727680576746312519692992388384732707347196251427095920291484151852699851427854832329234555478642799086061055100748697594843519282571103845839412042318568692722583393629166385744895125296035603928872494450890236508351076828629971220934405992018933594669688348363227633127627025530870602584999980993918080485994933514336832453110302501405047935778940140779172367967815809504884640752289544594341613339593300360562665858343173218479476151775127406280931298140746115668577302466525520308121438520481585448743303100432805733373677940888509747937805255318614426383479405254358401015158438346380589966363047913355570332625251413593410593957482007872470147774952958270428953200965856658815239736226169444123356140901551221526859346124846636147813432347009043661341788101187581785554017827059919317046044733455300832798460437488616801036268224429979034765871442806737227397564502285081954603991195807601581660365903635325082106630670265484049152842110835297662589994092198048237993202097926730746707483349745204612072725703935339301240509026345798468918664495408674735672775553464731938330950574838439255719387952883529224167399112312690532893593117335897840122447302158768460965485702406042553767072439443179382092896762487738047560113833195187826068533838705311843284228107501410023144564482276049841246046181092299451925575528919492168768828087433107881980635425846466488728462972937527037062030844100212588309499400607325864320320725540299691341436929586768409791739489987302721024018801675381347936982013603858124953156592290665197980566766208156779934241135280804933907146578681491904452447953646218022686445383365712119880875298983780890636675491557159340235295999135976699058869795261737501585231321319271781457786595192451798859992870675214674397924373919247134833716536831225422024705667057467104910795147294403057465148133909634249429657018219285413241901990797599829869204688609122545657360467001173682590147239606996221821414108251916900823273354392450234255492998560766684866272921027986127817126684159871579893248845683238260210827687787086374821772916692817273239645268073815810186384989678579962063980221185924200384081664751776084267486961382128713717902269633816085654126827700647397491289619217565567782608854125512446455510396191044944665029715027524323441335020207167949892768135239887996073573556776588223339697325103017864652920543879557637959792760110310604111044430143658589170256797382568459783063081133723810877292001660713906910763169966860433879963018376505736682346831616329438503950441804749856250826466587009476880233112346677284083981258973068842519563402063764743449859698764455284397331825216122392250454013195866258930679948304108104222365270798786170391057993777629045633858447953965730013478607099443041509278262884043706912982107700546571180540277578120485342270937778752554659052423576430264902860246670934136505291889908834372400049634308726280491470173885955425372700027190405794439542389241103746890394055642082856028400455359671447776560664208697764094115401882098840090868852010527841195951240642378621696227676374691112401215097439681108279010597670645215636851271269116734430936217592208096677631215002230210475519076436849057860257713064256398255411687610189988084223706388512384696458582171027978129365697611719143773560714726622769132659087974495427173247970643450713844787748910950496863434203475639040217981751845258693456542511153869337724536107658893857745163230194143130769482365896447898844889671030171493318644254824265986481994174008794000035276381943849189402804651667164338936059389058639662908902436121646256977305772775740340277859819437134604457025595136552065171907106003811156851291435287206358987281158386766808121725314075486749459795419525215881787747520723097717249285744813518281216326423342423197633693377593828131465990099369273919428490814154904629756385437507847673628138686353603899624090314320389210709697211660736465606310788892531142230845424967266092975876349416203038801061328892852073532260837987238571513044437456286206561677150301105962787352928029419641050674745179673912920208969218047984526504847704192780735299078988265480007074694911496265284220020286104089061375806795910841506948452062922846643534804618868326951413082348740958993101356298043288667761962525561181220156389900909203931429692027689216728712157187112360492153952178161049620062029605190907889368726877587900305541917121039327782681398343232741222814860817175536045693161251961417043677000324333395941522041932061282936557719407232277011020294149428472070473288889060527159361809162591256902470858306661553426697359997629779116286974927244280213626671638800236849359884441132447682716569899026578745853353256630376165167420595501382652865348758385236049121072455383871095520166468730899188529651351757255294350474413688585670676409959796767288791145923219353985733168699811974241066202829467524809614469706857585378308980584039072786966804520275534837832313920016901547415534029206818456693414593803974299108098771887548596903786767503934230963668926646486350006061345200690852382313977540316984348185032210566698279187354974499544050887720010699091007562425330611717661999595818423747768609345236632903739143799946138056104068302952877245842869345331612386753175721429441075115962087183221251898510282585789391261752763310620498821529249759660734218111419593907873316312515483010215017239905207904397002890789015292433498032801040483548399313745683047680242366411593864700991197968757439417283959614559028729481590701919216646777074528002912594320137502469897640790866867772999063204410014132961448270073204881177686993393618634983458712599280489832194433657124400491190034341942709378231384481620430931660186303600282940286519195876575971511347390624170644000671216077590606317468810935014441449015760746783968529873041858781069992449811135896755887536547446569152231198208988998505350095600544143129469859692167358218592698994728035676688974509756252173978873171466606747821971012837577990235425459194460811543821050078284267998490518083459523113526931022687461083880665135862355961582739480291818541090718701764230451346386300900248390993287416660780060088302031269307307230845871031571831865096080461333102219213159176773705493750353229050789423826952783232720186929702825929875478702792275245433878313426153839606961245479280740200727940434079187246826675176464696370998127852923176224438332428943158088855491032719512964982212446891732663331625453462539570349979828170363650089464264693104575007257605689678701392510745313912138628252383692680005655642262031862068039921344442182829245486146018588228574157737046359393613517417894590728122013376808367081438219434429473180826654654737501419397194890982932863897375999454470223300192559904868499377569683617808769986018817385486523628623463635441622351246079583980549250145739611118484273662780245483424117263687898618558479882112097604963325631098294539405255559396249613745263346569026593497578384544632779528371984059494726564055282031398004056392347336043534905535987680665352503087148983862363545165115512434332404785219588897505970406049673698465797914230055678935735104523066585612595795560778872422697616239604027040510233302467045577450794496570870622927738122926304371802785495931902906496451560901792976966644534898981911495744588307496311034272174190826078215226698609642310436082451041482305457739578094875976761116994901172422634246780065241983463928520824515839826789864142249431339230149705854099715436447420692945826290957350668474053095725255757455417043920212580928065700731685990494226247235842918962229775154333328023564798343536293037339894118834590237250258122858305690371302204522785220096021963069812445569318846544346734084627339309456279469843438943746973749392623824362520734321406062132290972233077230083740682665061196822601925913558390746599111253940011052154626089636640663045800743637288852613883486859688498783221311713587006053790257146503610160074048902356284730002167144645683616659165578493617093671708218314943007952226257216759099099939226222859517963945254571761304117566896164023346031387519698731847828770758683658706088631501653920969521115387710218894566400255048235116706623213797708804196654711276316712969245387563480074717795641727851791231178939520126303523902687259432738846529467427968538623658558133017149567724964523624758560778893039790892298889127592821935595220316208646458251618301964896258002145797351327601758758730384352664300929487243615142394475732053697041368487151706754778924855934764390273857127792923333434458873730248412019313817100683344025358313520949447283374882765323350636314633242421758858011026215482457155988681516274560583376142544278725892407978113772754469631121849650826800228704317993117623402002387199993118877727092743123285161321093665170253412062761087598403765081755781699682968265025725799499747197680316913487163176130520897048509530722227703924435637309667400545686522178509850073218779495817582014527050747273176993889844669576811628680999151570333140208181452178901655914616492334319411967332799459457635902700583992575135521848368426876408271934262396748878592292095888941594427040526075139109666245465061155918931316907619032655139747260154579603690323038081793907252739467646597119342457667688364418716219692304314301003705239095187724973001125848287045031536357669222135109960434474224388142982567971302198352618898808940640285431680343674218936254986333968524678545067956050460241773396668345791833307618782904866880108740119293359723989547062320770964433234019765101199811432523171835355915975846846671675085885444090003104647962148166649382464752651736132634808805008005543417455977551182526571149257730172859360198041568506134613403247952190384890495442175879833511512812402592059070898878604667321394733733634096235455083058274210406829419997237589885363770099023212867025867482257794365716852509140250181109447343030902592769295140190946206609053645324338365267108922092247001567271850213729688930463024594412470862761626178674212295264714770021156071942297934233973828778970834541873437264947899715071213722766738050610985583625100764392858850772612312781942156437820562959943454654030997724540787835124131380348195548686171678451435919027302709855113957223580871320722766992087906007781855897205377457995581513593001147700581210071516035208066984097190642318610625024834715055092138408565777131146953721999162647949561109002184112940063336841961809049965991583822577735174192102243502197897461856361677021210389337324733285342972172201312749584328194539312720368625880305980041510229776066013773652964731096290690276859924525003149734315743119126309748997872792197526426681511939290764755900886263313077338490686698079273825952683230116597364932917750081755840035788809513653134439098135524780243121566777950217876656147210037184866576306766993788180145153719263231614766485880877114199385203377345281880459420964693984598580465842767495818964396450929498216962842612997903545845507088842165051844307203806633524838273161080685548833832258315272538950926499282747006348217202091487867553947743415899934047536437630370047672080298197543679794464787904245868386034455362975040503650218775815717680139215781219215749583926494542511884175867061547197494349955888879690326209357669478748336213388026620839952627117392828810463701826100577352433464571621888798889606809282553024754532186447678347125871819429974842977451889474336117170447913545370657094398535601395028323955718502561357400521602345879006210740920317282831598792758125985248722355724864267078154925949793004612036883483347008458723892114530979259996356749547102704293517082321943922820627675904883514846442819091275897326878014908743019085643087594083819975117337561259469370419857877078771993417081903395210461292245506167009588412014396317004448124204675026377564526464216291767497565300959188296548404617583090111818264478152957395463655510136675752860431941142136819867879841333827939635275947895796620665829662840160782060556088119702674475912039846641634253668928218181895172232009736565305103480444175720104233709303143921307932650889519372934237311351943544320271554950149071465639541965902817548809956706405177185817201881187084450462429431840183493360223859523363466172474612859345422724707985937007286335918604266871519058542227485371454205705429969520671894734524589386502516497076837265598964314073120218075118050667905142995506320305237979676712005612793807072408092470450953527312500259010444998428895954514418236622505452485632382620622639745688112239627308162097357737043305514832811476569173680594023164180125100881877637329046880742197392458258293374977555279962386012913844314134375700509569802132560784908084270378661681379916745439338521523265586808005571650069098898122244921300880274039548692896282787614515534280901697170279756987484442872346935721377382437660258690053271458726913028337307122296065725830290149769504032532075194778583713059374556510887578521549747520228483194916161518702364681814651088142287993149004682678131089649042658102486249466766479830767599978768087943990824411753919571607114085444718202255892681578241985364027246217367302001087483365852876734626998752372318959543851098249114274716191498502300682115666357516947562450013495155058326844465203634173719092556309998822682122805733317875702252066689258526803101481086276930034840601996127579392605111163137544503593603023916165877668743652336952342682791833252968863219244481626273283091741169548959628357179656502535154482724173531789149444277025296794448009432995362546123123859404050570102599097668823167882019968634786417814256568490125286316595711151679855494766036633629790540145341279713329966479757020286142528741858916654086802279929842355460737130829661862759847684770593052727139758111910424622331220066344496479387002254190237587304927710404942061510019135136072216183830503780602183250123014683673826285035335565322122545378440018757678996319861506693461943634208932327085669458590513820999407051865354204376302880147800806007568115463085088325361592269153020309092130766235678210459472107686638447470485578253716417288484219542376450684765219977535001978721399650859257677781384422289816795438717682988843809534284306061908681808177948707124294499238936735899162897229817376874264556572172710976663156920567984554827519697267245822977055481164054504265923242687692865209177007206656109847131561727629327776799776733764983929394539902064812137063609928512013559976724840225440164735701790541190702368374990669621217375975614128872384516273205398511054640574228708875694157478021966943138290167492411639905714558096530104101446295638877896916890163199452969238519290362023001007641812586137253807827340367536879040684708153282340767512741922356291148973636110917008876581694420692055131356178282848322978618513430659212885090183783913130241394528110286398003506375240894769397981854236259883056926290699279571347575695686789541742002626229497882489982924498210640161998507490280454084453445467944708249039302325417031361188526344992846692171615950626895301858232956972890135765503022613132841206860378989885593066482134540333443074362778161878247258413514866670459188718989962682001092023897866755099577845010254731687443370244701669076620236364105819926985963423509514317079435894705250060162867540511049441109796044674922162931592222228890242807008013442159375658863060419162154188543444430504286631647913443021067282651320540146956900433459121284743581461980472842478532470783804379524853458588529308836882990391967507583106403393498139813252809353573982406211756099758942404158514818395294501311536957688251896836309647492063887673602915610417832028181492665647486199375673106919371310417923450621293970879330596969955338351378782557077914908364949851982240604736834388894277630529664662135406416617764382027565016627016705316976950270341781673667743663772067769518022780906629311484122684981541903015978714260768134223880018580575819846608391052437870265746509759651686167054794982112167937799400329002747802937549289558702945340208091832429694952695933290308347982162958082627583821769043979624925189668425659634289690078691084837065683600100174991423104640911592802764665375720231560131165471607742152871049035396535642079100435488280769672007734274065917206360337291343250855819992050419627887754875641070254147961238536344412128046238051141313174065310349400228630141674662948598645657765995835090645467431854009560353401502423846996913644282336754558667573558741702275680852199073495740116819276028683191755772489784895173292258965389619131172565568723519425190488831726077093603099842411456113092853411457785400003223803732954795360736100482387943926988344747222013036371707166936257700860540326045367617977225045326300571577295508305021821286608871020903981579251568861967655310811555844153042136047665233599784150648716417575891490348557434489337561457763797587973924751504767673714490917024239708620029129733799171296783625340402891763251119271152713248632057916655699849304464611193966421759118183155992077396164953363703290099681780134197293713926564918605747910739187041843075743790516430793031096232397612424526536144909600633899809835080406353760819505718370430646854250000877167212775043615014654119042973066638504231734056638246521371258165237965769234278111376452948737725532145388110388208473243745947262683638597762962893727236764715310791276467096247924849161320161817989248929106165188850127388404726905552737725033439574731989075000539363271280686873190415216452267414941754665364664304275118739440136568905912336469557168765825197408188423526605036592008947216319630468300418699083431638536480943468299717377965933029366840748932909610488242868947046983873283653611124450713826563063523416180955095141524449085696925190117083188438940213084653804178981123202320007285539443879651220212800579871111595340896395676181826728199016592990820265544873788387195513681843494504253625100239396824473969787085599201897626685947490020755876301540730166643640735905819018525233910067021948735236529228495782624772067783956403281593246468071895588605311684918536190274890306835986541713299871992739773532537693515957975449958455259676153667830081660438965469784581056114920016234830192140701521456283685429294976550359171842662165569648997405223358750045972305277320823442078748470888824899448530091644961721164244603023433257576854058936476047248336912088395617606280064228225618096155897629073381347900597526118392669199036797429981932223135694143294976634331075690285878602988240014158993834046144738622602270170305405761292508903839291532695434734905212944930856480052831130949057982486558904078333547170931715779043474873056194642253673309387453130433854246475382725036281826828176328857019347900516878798524059242101293948306980510330425349438147983733618379147412387407911677462749426524697144837361073383324528853657722946558318342441998385760389681679657239018316998407048301287665529649182300754977863515482125793198053459808783186445316478107605409116575902002936271273387593122743102868780961399768056506618772501340279435682910982078615365140398292863927495836417221951262397181706685683451997262641399074443068755729524766792109450477340330937167624547679506835041292144421297649075971711118285423589646272503099366350471605082279618558686437513916227892382487653646746267694789990495563112223046362781190694864006424398630870765958270661014513383745656532766063286013728921451485339627538494342920278850784587262608978990317135962862284656878702139738781038347282408209293555527387765752794405734356135559059848756507062646970238584677486515697128996548688289963645718066884623617975354020531947501542040604197610294293461733167694513142143417161046097526078787790415395187120300580932558861299477360571316440569152137658669394380836488354837695310809276641077363792909325529300344817409491017748478251864687765786598112592375687936476523988443719799609952555425622953541729652441637793191545505363245958329932751757886220899723682778215292672462350610090489786219690799998272732597705756571471555901262797443682789572599958858496849968964949014034396745413198212734619098606682721792355597290262571529088130555693754678811817860766001524697093416980495956483625858471855171590695735261914952727550905135917759973299485615195345759873951943082798964789077596628067648868203515162494777816609153008935643555837681557150186699968134663776817041974615418694865308086575056362876138762010631095555472017237423670179252333756291191244382247255035304538930224950975481343832629615696192138028775364168490018777514722023281326984990445579658084922566240519092806378937239797982221520483656178800583821887160618851605733275249071631915680934163352904666694040142483082927753011671172607680034384125776826903250572227332270024382669310846462261500802926220000052252423792559558299769052933257942197111675000064202998580254538134304028484426193445083558515721314522537911427858712867500768838931031189606427470480414798553783390131095326858476467730255770853142595577968537697123081386083552799137425218112860975693225342428679372772976396226307349114129166429936277814291953165209237973914457372909655247846176041498309597692467029618150817359917912822786361707628198930918407051938997203628855160976705920079322139544488714740163803226344231559369748498153653914131521355521633162121028476726288604383281767939479242816920174897235984187759618270702981977361772212273432609217332939734781460427890678772054314323011650217575243479039500463857321037947461791190739098497474336824651108152558699653375003445142046775747238247973445968889758145708007056085989699521862378539788636238880482120003747469974821237727575269170144782831828157062646998770876954728230094282777339583862248821681966900899039427753364629999826674964564942927153234086568511887704335543349334234569277097958524322169308117673041159415226162468087290669982245088371889798417276768953695091594340061276599669429039486649324980994803461383394032717324232589253252489366114050676625811654980559730994483550709876544835339066072481182404174855168363845759791211932444122389201313488434202723115952349213343848045219580038785290061197012562480508754818556284401597164038327351824411034377217519099757207261826578800606683556648217843556297602649287740478727616391199542620979176082016422123059383897172423931852216251668790847927312361702467573910633791833631133051805826171401787363466489984096352023754947262750774886551376239682468622766660947137736886605226344408252205454873241563511210676641206776406608933528426860084657699707966419957261937752714741333062490084322116833641169456477868855717016727616395520304467928229578412328903778509231494246286142284006621598427219151978044646130627354424039377662993477585194099704355511142050810146968588096248023195024315851522958980574964830569284636439424489550926582732355637939081182484544914046317799449444922686724061284512127833448838791766907414527445637929594848603851344172608375448810621577667854790709397561523912853972568534848433827034784333180936569996361772298170282758426248296019183776520258299588320020808857760707520024508623200398501412933238463703036286498856529941267884868774788677279556160161700344880783116458885718962966560981746475996540479356210763675411154161896158936195876729690698253128572337161583919646810849988188090383237631631271785665667565013982813152552177531917592008516935967295007785620641189846435283385695859597841320082311859329122527083723465058405057663680795201683159526231481515432341930983181268347985504324952154496398202557558337131022942943528018731985020567852887367222001208765914962810306547868802351854304095077243045546265220569110538203675178301491768731744016284980150018590447391251798843364129056004082486630490436180496583263808707582339722303587172338981849937331332918524539760240904830278875719118644605815657122696701924497482294534993997814587347121173344142925560219288793058240391295845320111617921893991556921967734619028459754975811652338539556324199542776261477163287622241992676634745846073059726008399002649871373201462105826368713354669286279313285409387966952856703789797838214207688457675372973369089663864420663301442027920969544553671219551070158402183821872123584934095172982267018237506504977208426468834748839252830482997914669974558910124470355920091888988356422754881099836425008686025812970886590453118093172271175130551536511344063909935054503198213386032511970331932570709472763131616909944909468781706033259098118372553989179088073138205659313267721387205076158998662643173000544212251871952267243682706167718987794948115044346946138649417614482696315062442572982475356806366700387271090507695439495336864672451991062714105297932668279765225028958971766902293699015724788447231337950597280832861112594109584244770898823643147353142412754586804791321651498006574740203314080016377821571906261183875850388622147428085021219602622466934170965878828888646543522210902208496410594716499627253893060614379249427927503540625101820824978351162217586139712488358042222550110849233264612163905002199267892119906702625081006906943376079044491182798087077869328038900040074484076332115980236480678561265389997924109959500186256247463921392518164304462946925354529531660192372205721101091895747197078624320123492364313700964005331173968910619226151909550759707800144817820671707978992929811945840596000349092558891112047319103130930299587093530756066531716028316736499926061986042412330397884950075670281983769908725296475035257943743598713409601222430645678921625342387811673255387201657161357538545351056588586880273471817510226997938060627525625785793476302225813945897951507647487403192883364570811980649143829815203232897886064059255715666002459448945520872401453411659001358096928216545931546698862087870041726366979681327753659605893308588610840839987966269326048625533156624557313584144041372824029199148809029935833246123078411532920755757452729174455644657859256942390167416971725546241187879368778606396114522487903512160941457839885716886927911980822686501455088226512242021216557581517164903812373626975033334567875467642465189142018564503161651697719153417173671960457097634308435256314941860087970078855235720485676125846969085079314591481491424576808375189411293419862078631325126351701648739433857397561019206191434924448683526722852222633775103745236134250581424413299995647782867934566532617194001134134616252525222134008701415806683776398404995652989698877702090774839144373726559619803896707030776846142444045143196208859857202879830135373140758181392558054771018621490201354976754335550022400134717487445055612417448359994875414497085196361137647657612793042452210579551300203682814407649377861199697270165876177262887893191169448654911771157967218063347761399189914503918998694579553876113384915659443562132124607340173827911888123237224267524508454750588489049564962662110761221330330727506475287382099913722651568323588122236411198896921391680461860129146698589169706449790351171644741535009268878203523806739976142469939901736922148694134457974706519519632824434689957263421411909491020909553785389703166604548525100465244358178376916593501524335684133598020783917139620346004350361057572337722488535163628550360924499979670870820861707974175263808967984964838927399199194167577267949609764683046240601384969392306289437884387214991240007856031833549192878524253332928470231215093167737133492876870756082745050237908184110923390599401677568322488041784799112810604176916919205909909311756482187084726961554266662198895968867525075438332999744859107202520398877366227397007441484637088472241592057879895108904583399791063485466700118099501710555544455637015049539310126010162333339397319669812045087254698421052493898562040907718386925681431340431530507272000881285621612707142033735021566752273929232908554726112675888530637685397778584734040783966946248111987509024568714039463092206762825410700524937347858016569236091102656288064872005753080496698183242866608317487894301086824042520819445300067057603886261806166370091670259892340880842166890352430998073242526811586172543939022755072537602482558282275639114455029665430088999409844128127372033079161970505160485852321837784327044351023856495776738592748959537032097493582607860548654960664371913605339255893043824051901735486423111913576769316154477888199281881338726346334608561907691803010643972663645343335176050654702998266097168090870294122312731028478270881599071273737478352355432998491193814969056658124105298961624900078576276905999150223767731228636128649468498246152183422858709118288269249858173862519802578241727215362645574299313347782977352417084007878040540717704256771102475121039747921727194714251351375533119004193932319282861810251278115798569499483144731974725902265849283830346522326300618696592276737849114169224689317051613344718166467720576734069184012509048905080597948496681451799201943052683204864238775290114993461118810782725380841262721150730536580050955064449308465346437299551825637392607602478127462048320294725610824206721100762478958924785350560288368155273374873110932655708938561607155187075730942012630504653938627791165641297955202625904127011339453192612401018156878728146425844148391101732946852610649890499907617616518985580681373868674908178697553507598725925718757713181866451388149333897962640377621115608197956510121417625342622764013024378227298365273080377650012981682847166881273628932269937651715223358624042177989117413188251781187038328021021086250734820864045530269890540160746606711759197725055571363817862752889499414598859843620660023510054757983340764056754849463139226662023134570139814455686320092285883711294538534719216810599818482490471286438531886301551933793133367271018854709818784037299827577733424305163973438210565029702433193264320577414362236772715994401654171409114638829727654313285090903684823142545297051290037104909130338320183911214365671234532722786476583590773091767936851693485481515503955294356832946394842435676289436710409808180067635028388308786640425820135898621923558433348510257131114911065540109969904495897118408982580987412365120681729597166231227381844083568085036990673652725974559364574119157561789229266360443894891500669916840063973777001418433242272347638864401122650833043185603418457823228863911235513548567000416205126857180932587960808018060415434008255081305756550511753813484158986355062613059538505041247367028454249020089025655956402613380639668750850285125074650055832352289881107339001290534016959388249261703199015388470871340229492491677093285022791699722620275886156771557853850260441284688702256442704828821770025543225603355637316625498309866077528261475409514297410479299729056491451578316792245686263846662254081737425053316934307256914411144891267933299749456331265011767649579730972781403056679190591294503903830730235441255434076649338887697049080173700110969248223038029081003584718783263620900670660351508244733980140027412534618678285937067816379070639132255559347929475222258427401491497073726352974834168739365385974711183062230317494253397378739866324116022491683809627075633941814515685359753096538484256984623468979680519565818885300377537976595860025898176724488952415977325936699262438426392963578122291295234812677462659861876946374313515406218641716597869565044247213193400696555928799809398886571640388819105179548481291912342615886643037757549372881395037771964306931016520080730548756940889930524705367334614983916321231846124803462345506870680930692900105063140331512261611268865901828566819578342319115164223305184422731416754929490480327628142725165842405907117018695155235198279672995245749744924805156843518611793202950910035229690757982956526009872121131830955445529923085853208246220524008463034670447076463379975560098666153500025004385009764275482501883603024989779285030962864764460775334733782102920664891080368269385694686723887899659037834909852868650828059180407319725637461130331743673134539217680554101376101167072164320559946171615802537476218229605875078170387569548032733177650559225832932065850632931226491234787437876310368158924395006108743013869513178310138574323839491184616235620274850849868622446978142453235582783850938651096835923102718490715427447026219668120360806042219089156532008859852057180187514778105251213136523462331467509076473560388852791002160677330754898380528664322217438806852838636496314681265257292503428847319618505759303256396263776287076972679067260812525344569397616231603645898460099097499470887795386751903780201385769455190118841152492592843302857393458081019879881058859365521272746484631925264261381231143885515607598549591674200519220905574054182539982849515036689519987725028562850329284551553388665622973483244936592846701909152154335877138900315229728470782024700357449713054365222986629741755972722918501377465459757463487670971093134911538407776399156893674606601839615862905033235917073136058060717341575308219935882662524044538631513864572019706549943262625074056219966805032699487429180963393190416525758823890281034175136762726310744995700714937641204627090371804326465498444070484637175410164409631855448269892981460450261757175008599953027785419500187445483462756567261967342185043279779328282274115590286642530584036817279723114202116555940115108564858016302197959919981785664767976171992085992770503412437899792202247935190563591899311925875305198083518503614828747656948867977420724024990019307408714118752965847023411988823760676118479557388466941135923471320382150864824561123358975243791451686236168323339411462545122885296680057271693883364580683612887269111295690759297610755003035696667150208559111994086686652543886595473122216485373450772959868694972384627772125584546974046523806673539070295835219116248280228022900768061963420238804625970302639424947935939657440081302354388927263509878196277488883764413070889394181646851630193083433975234303798633330721084333589801308947432219620191555785067437545089948876574198171906703936475549653326067807767570669094476958052142120642275937998579891801433140352068022667509383669098088174333291176885842730993207729216604558541501973147376585218677560845890108306224576994205558127507236303202608123382153717429642355173143592073074215614882152230018531056329656050566425872791080750951482371450912089177478380258026518432200588242398105453462853209497182396016415112980159161322450732301159473882477146654975421885773662879444530685888982589738895567778799121554152545907526338426640089089542611649555136918311101210117795289682334051552637340509400466907315849932113461801125203221001358668524931961708905765749989037848484837016944855667446670148667324462141492099342442663544962811399959733755884036744522825623913455728383007757567580262058321838632244564528324125873391678611530810988510325529171011563405066057348836465133971939703543848003407973183312585727447106915376661452277296607369219971772927381394474291369315578073557679041141321396567107338632656545237988784879700959143081766056934416666763758911765768620282852752938377149502332966314475923077274520790331452060448872628222063731045093731864200609755059425492788786578053397526955607079339238154264379662289558520398374818469040261782053027341018683199033011964331668186324472831876808875981341895160334752644787005325522890742123528544318544047981974167055396960523792504285905109887918735077756951310533206970881848143310498010760275564852799257111659329633804514700712368196181425021834433648553172359427371914823544249735263270568792658491069602988319369049264816724148413338777252055717646327641417371721716092987339263987956031441893623064650370589465837802744866075565458721482739022734795358636717538121682542316975670224557169895820616734614368448903983613577577095252936062271448813819141780213812994965923610017154240199549797892528818437368884153263747354166177851176184995259482792730959231016720846998448167527367275953281777466601859386255801750105076873875758146630228422464103505140261462186041875111218268473801677675496535952797865217556103113290687994433261405424399745667428656599814732715296576345691691286964698231371935869976538109179519012136342708837452402803815884113506793937516708879192879708216762631556030063636241701678382937059599565200826855461670923008642793400307082601855574336842534763025823073108991760162710402864442259250407914439615216920833251236022849113064244552424865494414784599492888360442377499944480655409894393381107850020434221485840407881039239028553786829608987325328935870429071671986983975953306029990743397301331710764608345802637366893927463045149079642482654524924454911368103864170984027817281528418402163379662007318402961672988333090782257172703310847586146169323624111417063134529641269719245112880322093368956904866066986969154105121684125399552559958213140527451651766473425438106830729374707850165475435186932695197639181960664868193415829779062584257801645670104531767753389907222368532170101756983678614012587473432073795121981010526880823830193372270041450622037800794596595937778274913607165956886749454645213170070290511036294700981121467462337132737680944226583606297292195369423778846936914837214209382770195871590464338476650744618058912740052239274552901514960509761042123401154856587738500648448206885422993083965527026659433648288510800860437034582307555608150913741392636940943849854472828946953958689876710830837745440908202701873792751871591142686817301688594656279612095761982180005232644594352724673351024892067600917449102610625621375342438894180030975922350678593707126240799866346453568443894638134602240425106310088871040073728740421821834519123463062076397516366602905381349805604802457386005937808702933686062251882285597467433922455902478506207259022782494795375640849356311922568508597656385487116579994371462074595705001420351922649925731554018377279410037855586232439325872209523183735608107499660350042083807792916992489783257704181387009315005474061139293084563391985652997340802601574155661495462482104886074786467964181433668601207636698161787290785684831353195465579474035235075645052982035086803859136860474301664381542201924889494247330520098559404800181443270903858105592998725984173706140240064048943193276545345299018927088290543855177177122596245952920114413133393800754232162854107910332766477073539462967802588748231944926554086441120199796782213315034696344531574085591983018696667062272577522027877869547486815477787459705049953366151549706897062954802647736699324780920921929962112571448109536784059004980569197562829863979142263795598026878439042737895058589747254823256959750006991329609710209451438901931429417942801155264321080128538344155560278518983565570593705802060941975353988659338618615153603546400615691633701039584349807112927456519623005846876278858058688292484522056856974108371292597214293700813634569878289297061567681577513070697976231862073256535108966058450561783929903064487722162047804101656457009746756925836775638576140781606028352281536786158717580140146483436152482418970706919544394430040156415526982050599384901182433700520771638227581465598956641436649219628498575244676076888331961378160252085695843171243651404191954327902491081238293899319450864185187402494007431081316143278313831981618500506702849930501224493421306193951974547298429862342986910408007961244800538261964366911478763874668536539111436870546913099961463637685371185868878672548349011287381002293473384872655454255345462733275501700731558911084229006555063622938684719246590969919724365555011192111640262820118286951267398683854259980552250614887931454527462273724847441316689942783461353619212339772837453194331045350536217245181822908518024878059184073490640876467309104497289397707836950822167312400878237830634763758576710138195942527413966911071265472081640000946412522074669314256194373947563242670203186433909845528556226776844321123808151162118538886673706253872491974810165181559209579019063613168246927850875978099103041374940666935603697582396330604629486815014275752450509783652231501341326840208620558487678220927797695820254525277045375101194957190426370035307730415575145793775698710812228603119965787744337166202923611696224812082343754322175345181347482671286732381251732162222420611051822171865697984717597483679352590639149305677502672346062868370067782151216877954577016750261535264045510506299796969672923999287174022686292406696837474293082323453581877623724885491366441912844090947905448285544888445358603361014237399002147206319159083432166866005022540301708652310625269479131746955749880326061352853524397924101176278613713593436276875970192827110602214505513016293476235101326397698969579834255726168833021162494711475686650314602397471380866648732328189330682404375111080943546740365680457767129163668602380417405984713167858423592832115312794617406879657555694610199374801372432509684680967308941729991841932615589203354387422145137427270061320757712998914225814773421016941455120469808500050736960729912946141539067005568060993430898920981539561068067109819878729358939623699487892374539879371798802630995853052995980148905740682511970634494327799788971815061529875960203415146984115978906641094033778609486722974592653744239421137069979015905202923888089078221561331431767585859412825256008626992087041383270969300349927303502172660137819796045829086364702221326209482643652060700148825021956938593708080571457626917620219174456290831198815710990397528374402211517487486693688721829077298533166174879148735900133259731192933061634524746461651495619405358274876101278123601658041777883360970938734442375598315391051517848036462420510603862247120768922432287190277578436319628425732777980161194671788714706516079082924848667921733002608100421217196878884998864026414769949011659693012627861134837088818203123801825202308471380749444522367196803895169423425101511357013531497707503425344905060787586794295996152313014923732641445364594400889547111143180009601313935982445831810954509192936496408902612540654438730598370738975510644870540800603199029983337108762493500791060415084260044131765812428827686095464980625032579658078471410146758685561507555212081059467066552648299863686083563920412833855220884599480098560253500282530623612930950084703780725109991572216073681348800828018765176158737879322358887657851345224487705957612512487863783339030895382731485547924255929374865735628682656452256513687142070858949111016878767977330893306661131909023524739073425261893335409322417967111648079604611566626821985153369382076415281034295639555506177738723579677589342965911205872226116205112701354562754463984535932088921952971989094341629764793127784830097059912397918835294717119444096949585509602278521045015151443896864113775436332445502495985919212380990635077798567018808109285100930164027627690935797140415735332248224965405804242918013692193586618580974913256212402607929726389923961845625592501804542404845734993437414550483344065430557368094987223340752662605240818988088731259103398414842713154406090481578346857540418415472552050003587621011358113113500149521830892830362181771515298329154294535400240227272233633007104369271532233434216527389035690487623397155587206425484131852355363572443134119204794532834182821016112059602906545635905013349258179907121721607237612402081120266867387863515565995481910677989511775866091227644227768387667822014360679886091955512242504853423536918408040208867589345542887821131406678059939375782620105821645204170911254822848857770540259566070671035955567896126845888073414690252823446356601871608229020440431680724492634265629749511931860911311264737060156141757337433046070172838800687854914610639546153987431398232646020472380250481653978699570387505733060588010312583097685779551376320223934520766083512906117439263888702605605961167603758529312734012590847769892961325521588377122739940659571370143656831301925968137472977703537155496622030139980018374216001593226870369885574429945801201649997788141283002775035251350207652434856000214422645555463549763150954664013748800889014547768559962635350743086772081411456370681653453014618421782703948237547882821344641557168808486269257636621849747645532556311111409633262165785756139866242103073431182581913000528914358322776475397094431311712205477176739794751478528638982255545998540049040136767953728502858267405860730501311205958140302329826948239607749748577817390676087188569714441991539363225786228696719666539606780576307463850528073230430079068909485018784242264178605802993303880002815042904024913922083886461816555230522339526555964208925099210185200799096366262643836609109912442977265962790208592655512357260797349829079760688817111970143839372636470641765330735793044080518921534997927350001129169243499443081589767653714982015225900568475714949297558773186576230156407275247842119264517540986450738851664559296440008805366527111989132854952902488785705547544342804166725151176923040808495255038558007016238872527798670666657888251003044393828969315401499804250784269269268946656950869726875246437589561631394432188723140732298296114297928865598037318657636093111517174847519681722729188106448364353228478631076587399159981722931108522344566619997929291446109121301134016828675915831104367765603225393170605526982541959824227604124068173329793559171364217438290222300360709363465113853694227629488453649142742445999331258374622477946924601063924708095355289181623496552369665978455417003479334484966492301367762358972019972365696697517705454313323024520200581368495794619251469388923946770440369058212019388413381348043497781404814529181546029423379085269221438871527107015364668703309156827137858798945190867361146868787291355350156969087341337013674760640536166267120229002041466837385477100543956932041383428511963649271499248795899272240699585690644442938969692763288327746393961089842173526930331637766465329448344453484855238394726552964271928241814124784258070014499441513291213381874706804979751196143323749308179242507280652013641611078997572611653038324938735222084696000202611353903175848897691274555187915081178204842228818436731198581835953480760583998872084064205216208860849360133008519949560577319983674428926892888992550335369696768516403228844777084601338209932698448078750137626340571213901573665557703974671867255110149378406585064439318457586122685260769707405470878990066873881959309645155633282788659217294817622969603797705061066964984240739091791253535758747708343055136333498724594422624600510208804787935653690704604722310803202232994371476481653449618682309087830352276218369729369687550062593677517859384077170375441317964046601874744019858558961398004927603825031173504575542792177766822817091035000925612901949869950158073945612954283644040117282914798488459571340826848424099409741750614962927641502135314392696265150907902152180402605436764456621947432110899860806299318047946789034199653085348224954450094506365084802994949355821547171079077308142874099086568929291986099228341009271902122688935088138729107301227985593726725919034052964758484970147220383825845927353423932810863531962998692888379901440548174183728984512246658115506805228460810139486715867264099090409085653240876323478347486908699241031760734956390148207179649408087010514735237705590394360526458471705193267543155161902002215376175215812986600234388835778069337891274642741596566887814502927432049346605643214701645618023772696924859307621570724480273668428545278379213298277919933056362516405462352708991632687353237487189636446403631089108401678891970691320663779753367164453893381195311146712235368848758037890203597725495744182049202301291618200062269412238218327100868659975197901248993805489375293295484027049781903885603201379758551598964617362493062153255890035757583449568957393278621300677303631480611914776128545942494245485760937144570265432498425495616655063367059655900952999105410986360770395402870037782766384888600344469491844609930760492746867679634739156120673146108938015031926121385993569412458148223237801209467601988134628755519539942461345463698854914549216107631151186814681079559427080374421176759606588859621163349687418745088284703847059213842918525619864137027159553847189956236201426245634215022276893662391128061284664989027162115495932042480487290319360937568109820454469056170800185746178855019425710083223562918595197392354915197444060058687428544048947233756164887563899388097641505238179283302626476360622525447999724935518124876749744489511067464707978497162836705177000963965589751220007151175476657288572861335115375610822329239732958038418936786722613325157024221761681400553777705417861527967091843749341710641051340182760873030958236762714027836825896266255564140714219176555569081427025194342382960833331817052864870329482467424217245425273001138304323717160173111692855603275535573873358429183296743408810316359754218872925601024288599896872208845788976884157618360360010470300589381519863289936351206780259025426654539810686777915445243761785627065920558091357694328701835852868774377448162071373490432328956646401510500817005880592186271696262260740265745229225156808004968219029460215190974036638857925926378674952454615019323857867826895487938821684022908236649005764876139839879520273788460150542891131938779674888208689081938983773887054657631971524536736459248453134330826147030292092219253071729837021516326344749691889104988618956962710731844423588811514728297683259482698889256815470775029351814939619274077787958337771228768674005023599240044188392486155622896383386523866144723195703145866321195663137172978540537760622162019266288021452782791846691948986615251887007766868494885567749128148970028650759495451165355775196808831915328670015516792684503370328669332105254523030666055253579655022289636620459953346820264276159943559821474424832463091233001149865886117948772329693928081826078336430484805636106571265838689017640813221023984987514502166951202372216483661885464142147599124553627725970655330646523385211250347612851186401291897911097294342212699051828068727070974246536326870894701322966695841440001884196202687824220459664013757041352387308760620514591181345242125154989098103963666966667495241758914656526378951508421987965733604524991951737589626658118703117217939945670693071049689691654715909091593598420595133729350624635995372022742647803505140949003679658924949341857495851489507567274266221290136731982989323318144643169036409126039508689823804872100419025684657105485471576368483924229996634564892134769280153688754567614681119405136407792677334695247293571798164884299404771023201726398779257731035935170573211855507790984097618253631470475360571108514007401757440434457220216989220160999826955804103109348770257016229433301455408101443782697529471186770924406217641688653205367281055552586275374000383245761163512976120400451011082928482070810128121251265979921929839260461738486481356221887605965084709573059319444390494612724686409485258514161636421649515787339057769064989991743817746073041739294717356291087252012611349879677373622696236766144117742046114043383327716517746327629028797847529389163637881894979146276836567667822250881022757614551079629282709633842698479878125567160705710566153797777824330123835039643998685853115336572752822441249353567832857997886796303481457838377014976969470306118487313274051527395040710392144532405931218534440776968975505775762532182273849490048547022361566453406613879531707744059846104932062976923795694501111549705240714857303229175675992201770837687872726030250336369490861949686247417392504957817537413632644291687226832516267786194003005025651471689486168695836456912222109316707137169996867982861392773813523001038400541377635542296126946645975490299184841981092817250552675587024085685682076166553577352976845525894616720984400858896474651019932774299462139204784831663611782436835390367721300693613971419892330788168288996266542658729566384150549512570921002512820444327460875713914312724911769064500690103562105380701050135387198456584086473839400396948228939928635913329510982171613043219803200448688563802267666297655178261545348100500908983898237795543052268883868658748340692569103180624876851206055725118756222485831015009682945985802033517424051354994086261805436014580697314377601032328304033804941420406473568193012733994964831981783949708499113749479927643199091972050209148303371762427436650048493037758571308290542727141647205858513371291298532259453767190630603278058061409703759375213078375423403699305964981075532027460686797039546691591952035335341265240266838962139869616810649343368532557371591998886159501858152003578751464099253035863513464877823720345478430287576279757791240580724826893150553409422734864140744472492779996374478000852525709201399533351262510276043367279250930087707598962716498320444398008018673705499310343785334081609628880561876076227439364192224933277685540838243766538392737113669322723660187218140161751821922720038891397709506144309395175550661319569876223020854351426309032154954237134892445483471407803797661107917019028735882712333524158129120142598650325782611251082078231398002356406695257295617233131949764387614627390700889176405746020677339818248113962804945389713768232792810965283557508503582073391209265543473504441871921348159086017286952361182664347324037698923358254211684864062985897440117139288303722300925772642925800271553723400279911537340689043180541774330917365739498106020494041187114493585709775635335271365842926899494834229099618114632067148629531116936170325655236235264618382680269765494326403317545993794708479006397057241334932724480999341193181096152775082060214571683961381399779152544385475604830357923281012006516459790400893246543501248694208036769340288875811898443364438179232978773395302037037066143489071358087567336488552004008087052888227399252866608371572632893412559902178417163062272246615004719777618869001041763589482947636796788147852270560505827878869575853086704982272167122774590048764769763978613436860586904991741789050475282815166319381466641144319786352831879667089827736916110089941337011862299137380082250972592263035565844635057230621374826561753698528525564107797270513773101176636670224662612629867637608470731054763362669333554815636430634922899390627198401121394761151115087721695240882207170192015400539482438055973474307223546226886870858693094773824675805337816292177075998350183463802703971222612583720899712866482804784676358189247452780552927773743330499862313305460507930806029529447976212775087998164205312614760778608935557240658156871260089108348105468248559991455693037443498961446410696762023699243286789123551470594034455686358608148084343541332890069765602010981012355020534262196539193864391492038362892658862292918256600829650512838123986835471278215476129074895478884831540702435416074402241427382404478223103326482552981833572921764668352710058077481235452984009968459197061451211151984973047303867336223133484122330451031998189210836029163761529962934333689960998780728481571888330784589229470436180145673909051371648549495882580363710571256499007694010858318978273832632778153190175807024713951148093018829457340165156645469480091918425156123910732725363341151820795114771346906194728141791429796868787602971662397794651522216623484587690859422263330421928462191467322990142591954146078588548769244773381918186201527948387124116915580298629504747475370057509303493875083509338258925587498336615881027064303205137093996428788693924373183321539807031909997440887442320074581191544227489210077164818375417064836940817893380936048326303403932517410396163995761419858110875479425302958054943954414218270317200223190025286677280168180452134014684767093082001950271559948124598735755044541274036599578399396462059676310535749113229192470119480948421814199931449497720368716591833183449575966879290834542031974933223914194710904577638753032577432906593572560170076147440430177050629580772029118951071766502477499754987130756310613228835386504955047315580966356312274644526350471048588722363096589546856003806062577026171079702201488028300794633777489464910678811006041221543273103288733113591238003131940502488241173926746293819213298257433318598107832831089216654766299238433390990187103763371899590261691996553093335255740889286132477846569481226505306583424576706927932831056376373572116395154287770117718577960597571360111245874140263390129017818720768527737547521101433037490604844724098753070789979260604859002897020198586732960895612268835206782662063908836818930378963430760075750379110729378102671595524447515923786963787139375470568328712998917494658307600039686891833728343028569057091462320295118827468862001845114759826302813415617224385121703818313080830682758324690757206802627051917842487409643367804963000611636435671788340538797228025872460619148508221526341857913676442354984105314902172998548857381511865649062403044259555052136479662760186869553017347143706732452121703171208692085570835745791972568362940975426668103150925861896952867601792450417668007664401012513159986593201994671122123348384435809856537971870117669657163187230103207638084745578721054206542474117618353142557715545088121520744894757322161279045215308027182990537872702850320801077773819157739116233006843733926126459707524603399845815490037888712028858613478414911258231611452897936162520844714542421919207640715422304967165521816547137519392414456675213718269054964837072205298698617524811689917128716328035075943356657269275930142107426392549964904484939724448141710557899011505694118557371377839443254951697463989335002489653201944499490892672891306220809955969650075610717420871336592684790456044043858964526081227291179108510043972118761581626619070993742360142493323338039534670044433574113070069942739669194979170674439862283584715828464836232315327848877104932508674516388630665224686100139943467884519503650405374967773919942528285046935846818192906267137567884530604298711047751603882751244452512326185054093839173437627691434606849106879032957559842176673105883977091254065031702921454895816893920730978416648800144936916479298406409788376431538586244640041763941775981844861057820982751096949531197058955661753868243346354695681888813346480086828991967071524035241267573137516986236602322987008889462949541262150790142590603260637896323848878667529288616963167040071801276687901058891559913115059279293902497873654232493431792643756071987537825887464013455450536902344177988513863357953851762330924747886128401306558609849761659963177550396231928498480264331424661792392398917106089841681921048049033934179133163694649337998997201464098702020957550407247481608216579976397650876829250708265443164463097995118117611140127803183482326325787502688334441912049243970907700899440147018647469570214160603425016113283371138653266345950315785672524377775856606175254593061917026723127929661725318879868868184379493225707671545732424852553906651042096011776061665244732132343035918507481753456289492470817709859898063695142402596870091236022506730909456730910936149124060544309199166356960556389263176508836841881556557968184507066982970552500886724568587283958615126270243097029587969084886401131781578376909278554845904096227036779444832262746049943088998702085891558358823549200749898652227235560941344623251930650332655367513779044234570402815816778336771954057958886850986365975092091035221458860529159447409265275225099368586554553468566824800272622356524489929447325870162841356124204780248023794753048537041640440948229080654667705040584292829552289885334503787419084731364952264619420894391738860878575270972619774032958941915109297083607882784743288263018640280954407626286544122109887669056654567064517249699229525219754887512564677002201382402558885220274393821686906302691528188129765612551674072218197844769585930380385917605534267180752777657330851493027398212403649173616350044165715095184571967389633767441913623228212685740833065998600020180292827771122291017095223030103323346686130781174160195908557486096678322007877107836176983763389485715255056827103670379732624779499020213594174140518016481068572786486006303757528539597126996073551328317486773996596833372148531602347287763855436674206851488174135543988621405363561152096301796878461502622189091807264990748270809384713402168965019592639509952205745725735432889246414014570476385520577962921440260256565195076674545713993044622275591008925068336798521622927916885925587110312335925678587692982430048493657414813344124234699265997651627429100036121347929055104057102023828767530597260715151317396922791837270570471838360048986026378218554391740719710020818123663670991513803542293317749299348704109947376437571393427917490254719584702555055400921771953132122856527558360273614531967834831457832098165983505386246827445204183222619076269151576093358297927581034883977990607515467916284193640773430774414060578671500157742874947537304506679554633500757437498858213340709172894671822353300358445603957627625500405543823679642550100452327686078802034656599833874032980165992133801960758859300232257086386897959444982036947494290199389577822872399932306051553846709483785970857397952395360157340643459847310374592959642634532438714606153476507118962785809066117734405049580420746993591799291451137384501028316438041714214837842826790809333448682096167319154265865365747888401001703701884907728862929482349654263003801419851554047018406830530675000709197573688911691708416878272738288161688015116061112328656796013541482549820436229813328213343433821257485406849234808839095107823178344848251263183000705246496320704007245405837684221166648639415170715769629927569060921067660311512416306643500690917766175858788514572748139088293002848581853280245829870311497838878262363804350964881650208955334610858056767257759829686732112200176358830160458754282473183663109596441247977255001015516668402386116934175822030982204643994075069056074366369711779668748035592521087930545658462181294557888603986432928246224140394516804991174540694866707855038208301302877320247881918217456682293675869454122017102856587805950820129675548783697607575889330786972943232240014028313417556190431661798022033293996546785370057793312999010786216937490220769251231279202967649330261250422260162337326307011209355481774752986546306495906270890374372101349446970063748281467477882802529799662260928032490218000187872188764080378035829751018212302227758772683495715384749011514758993987657728687828145390418331287044916987780271924436122361088303987517487062304659742267019762992429794117036480846991640003449293803588972180671905328816366606925300938136191934955143033724994378604495454870679766419975984902479192277185127776304975502591751737149528372828564767546087596886203287877769584090905191728093650559540558862442081662859841319405841166840885099496191579754538578734109166960625922284179281578879065579296939068463807272936267992844457338315777646402877558159749798564166266964659861720096246564343287597218733820410918837792355979696751168118130275298388815103253931416448484340502473937739321121540764447174028848148659982440389265111374772121105096999513217562692305561176494609322913462750993890379567302408975065135448031818015445958036919129088457471520142227481769304461922961272082585852123690125136037714398467800788978709089879098008772352601380476206274986294374936277090907441552930259097331278373714447324053506204596127589679373915487913808862430499149467096432598125422912111752959139106756159810935428647608429413576690206445261125609281023369200570267638931737553161716535746296122204513014687685332132471628831165981008083073297354284722414575174190030159973238531563668347146246718108794440967390275733984592192141817238539311190480103706057252307314771025221963086423395498627959231630569195474587083175963322166168198113829363456636429930549892355613524256032788260053548479686809113293982812084242143387901078174313864764452646932651174198431681260779215000026752812888688845715450576466024642568876110293846541447712638695828564661328146083636775453337413990900064629923007902142155636992084829887919505932505600659394924342798484762954147095765567667398543209357402768158146634869867741205036706329482413534938117515172098230305258202867288939790627177366408262691830994838905088931879269703234358507991020743516783119396535872858655898663156951809152503003079286429885453138195925992670529868857083186780455124960008020960619826692051722529536158259987737107418573602320710743246089854734972955623746809567082383603131436668455162411972485059218737598949875662879861744066354294250635376038797334159378067330595337977839144360268913123041180698905290181458558313193569735570676838857570572343902669674386956229915869278304433014159594080899382031568463637562746608081394552928275449455971594153982295883155882799212052604042323037481782155008331724140768198425819621727764807572683899663759467709243253891604539251797153352225916927285229210148841843214655665577296855514391287326988771435983817745427160156549310680004945526943245541520314845877194737718040836264377111090022706328112072368253833736512278870043840213537194494682592961676586058989070829823280840556036071693357098216486617020461555899723989068962630475660359120861125498308972200598784696686676103979055883361668721685738389092697648455697860712400823843618878559285920624176275184683965772194105079504440960949402973511867137684732092535350754612867780244493675412639346057299271365241433412751269152765584242806824478291562439686067700915184145294873848566429908375413753602969429758367024597554475678926396626302771599950280024966065156614765879321900252217411137052630486135352614675870333464959539979805754640924004538159608514264179007020442725059291280389589458648480507674772578002029787251927001430478845355753709423077268633277340647203093630983777026854985138493222689720339730847208855192974423091795412254804178008934955337053960386707478764198607850504519832868746860641760762185057990674782877144058882674341223333676517912070831814933267198534555511321518506734220064475423827471027163359008380473804094757064947404837289237904832827551229878044886956054004411486696630256003560131553467536370855801136447309399608262943184561858936100677391902120467085707603795012681502026966459099857209923668376588963320255470795283958267694630841622731153158159601811042172242197481085879818157473861912368065868565158408999592971436924195422244178141797087682152741228242220851280203043151956012640948622545516327667387010751809883149725338745744184082708665760513481739280692751117418091625796201171629202760633766451028744318566770789343562362428809687867775426942657522542910744358730930134760575208002003197182377199903658018711060963405325725748930985322733964820572385720358778372599407276669176965704551587447443189740729543064225565447779163767965790602630329205498957491663387324070062437710195575729004798939307840224106009165651290513025394292052036007327433541275089463116681105839887727703896086177454886088805339295264388093498592718506076828986888303270716627856568568651048119721896029297452769360596463144776168194859342860411759665711440065821271645981981378582919076232000337571228604773774768901598951267386505849819833199332376581696411512169559174512585600488021995586929174723690211068724996267902862889563590050211272314085589573253860356879816787385747190417642147262690627482230506695999967217207929259937343875232872197342145468961303997919561623212061751537739668022852338560099020336722526868960272737331232248857674274751699896059364116452013317392456320409276978151568360250597292618390648602570668616237249165507841224137701266070392003309329374912130997693416982000647161529747370849590270831152568594024071016680114664780321778231634204526838316828376154852998600542245796604542200001333582968143376792349110617566474615676022938731319505720722612726633041594492282394997900141260078656651224901651151831106589448526544453825648355232651144064053616624385064171171108948092496873303169368477695013352175504961274923070442858155495402347242534589539361375410234360476782873938345075202789076874045440067340140261280381855675436124482790437351022789648614592377599483272455971138414990419004927019567362993695981785956052188458346962947870173553232783702171566028933378001139015693113452729417519393241177450300289984912285913373437489597709137742806789292508182228509782343757844917700125091182616160083479765274890892534240821347429419325990072823385968431545064520787274184911510714772507951012648424935914479558319399168289478361586487104988267897854396181228143656180546079714696299903995850380183340978724542745625835543006059007372201045392814956049354167678954394577385849400318165792583004004212223933995301961711480944730650318318346805143365696203004890466810843433132854748248981403713894582930760071749849234502821389211869223739745886284659132038601419436626031278900556763837029619188383491280441504754044548400988777704858600591836846423512659547434432528899544418638323428160851244633867954651957678697035272606615695323944615166778536346782587600240729830260088623047820336933837651086778880489306488121127189095895351413741728748900763875603244485845970756681448835077213560541470157482626364514640791314243436278234302917906630543242928663638054046453795303015208533094812537666272123714610320976619042372123196864733426717509742237181585166274736354106294512957001478110483721493853670472923048243189378185661700761653240256546817473915974428633403322203177310739936173814277166630966545236921633292458025992336567940326896831123656244940816336186760198940620867883504911048957907327944761579625443649284117393822341085913577001221448196931581411456482713463192356108479063998635990042298929119713410054655496754846631749872380024126426861473354522015799721639991016668846496272210139560861136482571969966905522141256839968847510948515921055222957802012889842928656679425374470375466036932662793394534515486681799216219460575234416913991587435895964458899812413381690964063287853380089170066371105531684630595018083385559145620486164055106547517723220461735379688751608070281556265931391378831871553092957155417493153360342606784982206928646726863814084246764712232120752412255633060666385082069859841399009708978964827732061066004472606800521917225198725220884703467475491121709249961650494810972450393088387173017604523223630782968095586823578985953477359907324788348941499119645994436602244210025785102404455508403429240887440301491681112246772948052862148503672891734891265376781318284701504591529481779262290509645307232691273429488941302584846600999063355808875380794977136182878202497040674619554520916923017711893360734342054207146238959340012179421828388724787316822214191207951340170136405262331209141549311532474364965506027811236619590084558349882318868574984350467459815957367637224611950588724872475830223039221826402940490069565394053298441098418693678488527735964497183299531967821847870769972374003026186899812059179650121488066409068501926828246837779143872620235862712477494051529582232127392952403131868001491503338855551449077860711964113201464790196264279502422288264096910937608544935585993653115969514010204402692702047082084376893366432351153378551875082495817809936407447879871922480788401527886437519294098989076342166253339984186652408018356587247691425626951665047213012561518129501364800476003551311701967769412815552707917776850304984285557709190267076205554885598752822202041290443093198294167065750253464389669608761064413127227880743213885022409252970387805751755577096672975508785950919854070164653380222337288820966301242815890048197752068454963727877878619125183737360693513992577761771814652230446795492436229510009188541277183700934665679432484073790624851619078082393482662788489803264381365764274911169644295213504759167331133478520387833922804971347746213718205671935635795506161583353962024465084887433987248608229356244930038440960905287644027550349966347789520630949951281708794315399147181722255864333695716659179438343474216795653433101911028756418518674311532860086305437253627966949953704980314326312028236472133291125245064947931829807384726357364295658509065437813005469993298510159850222742266077752922821243593381426455308423982639762713563537010828295368831549126754560497267643741966470156130570455006139262618178455865745096438206709006244102429345987006819021935727187321750948726813737432578318003459368809807543059722944227478606161315396771416419135303757347569108832980641305776554055625123965485522496396651547945119428747395127393180986275296722516719949800659968602160184598978528265792839919017941604236431883851321236784107330774141665072143185371170350926446721457182002546136622271915689206216854680883169620963970998775569984477140102591164182950315398543065183688660577462330956655280015827055506966098618115725936741679587395234015569104177240958067389889448829919341442992958723221649242726666762694102986300325533900446230328805856424087087857628070932687804287607380740917240857794162165311201463926989549431469235941620604296477560106834978745237163285116892949702880067618567661735569147781460002918723484258594204149750699189358826480664448968300210663561854505349148102872872950608552124743104962099977331327795559624817416894062257322134699972344043006104312590399130058448379175106091511968077366162490543035121619599971415476204648639155530013550528379040935548656465918152748999520176493496585377138154816529647220203071037784118877139243306096229678519006381738122250647696527962772369647939793043537620340638616681554662233441220705544611643731384271162634742162977111805646629272401513675939854997319858345694503858453308780398155965464534260913738460863800124991263797046175942317705876728436232799478098015015689180100080882499004480600994935223733887039819002756487171667903601089139678919523903324395052272333736435443859828537910956560031858858040763497344055010759837575100411633667552166551343355919280291689950635634448976837591048117015440042193976168064378244853127435370804578040973808451976398738310640322827383056800308580943448441632071704682394863387170182147060280109060769208875006031317576757057008538710396157981963328044264469801128455549074168030515362785704422816316790022110067602963645074648087130020452019088757300002202870190813101337871048323402677413867125936948430704506987748121103235413854890168075976592660434010362461034330198636100684762848152919517918318849533234320359940181087696042406243439782392248101710835273995367198876403957220418613792263918578623178948722582162373041466714340124516416053515737971679204812327428109924271630880470888850049722100547557539033493353086445830971575785446845749465907103141913682495801016040819831167956744635573478859844070238155491280934320962460813517264620094653152485970075110449802102682340371974557661113892078736644961437395873103276096958887640539148007437521155205406179741291720804414507718538953981911065553754614758620741828835683318421928751516352886617104572079919067737264323266058124008861659520243611904628767627966099296258810293319289486352956821486394182873512222634905166384821587927392961895996555084916367090725326244924001296679133919241566686343558300156931894070334607048964060071189216758997574730036362617652053254824595020526024585166542586866324554639761474595882236230309508911420690902594108077078981385951583839478012904914680283484984162545245138184028610693054020413808623253481981512292496618747730245418853819921660390528049418534857679281342170021519069591739081747159512851835974471327992727504542318377083068249763614249495937515907289915713446783363785125532443135714797011873209353376458571900725828260937985141123737071106586816873147329618943599407135296440591913543370915656149165937475611529289714432511011737772292041835559773374789852157695033006352699986128709639654481578897610746587050997339450708776108900356397955957855927851383611769987882947864703302613247405328539266247616048339064889226749369779789302087079539987977100099988147519177310420658999818789402875060746933032285264186302425592791663362909080329691165881631335312795523375286928514972789238682503633223509531875325326525552271339796590175503336940436655497931926524634627143474586071575121334950738373100576915853052604888541202144167843988209945798860949842470146222705475551116851476164630690339948643420467976852315606280015258218147284820056536098649094477728674218473112763595026454478954299918425197119944343015342309803941389175426749866284039412864851119248107820371797464052758571979283491160313340226891071212724775517751688771996487549634958589690746495536193300807151701951161760394684701629980900375491317222605886202228420841955478129738556550286475451223328120945047220777195703703142991312599408531064469547532800458963829719609880241264135992488553911656713828594272380185809662583890825359455618505629508189102890779956963696621718907345853972125213535215015522041793611724268003273030521675606420030964020297448727686156769634809442243851100815965922498301981679372656044013290167993606993497353677815138614030390542062471765387218562737395935585542845429754310918663994805707526869690652857885100473881355711228783902654051637727137275594266648086754014983943181482374494927762830193850120654027151154722284055727645113733793128426992253061938982303334801384403998681366445023656824322708511403354560772036769116605481295913624330801848029180352958227135947240971634229468584901344528486159343819085309473707833747318065998292907200723957780311537405807675218315681383171584032849031697215279059068233458007503892444407022684217547353945377705023857694894013492252231815878463855444504289785052490224057913393464405801203084483641180450109412314662359875646905508747154953372646194865287590363472751569067043423909004025940632035208075231158453352292985246208914409036826105209373870171397309997000216226621465241707123740258827861497504074609701190357716692529623274691733697605266853583224402183639277900140536418448221406282815619598417527090281726702190884645104830212574854598993747173472779952649224588747923511358694280363848751356989429630749633947241089949847555613563857419241843845160141455770801701798797466877173796623954288799792715063618061601453773927580710334228319943174014491107676490796621494488892867622433894069146265906290029281019398025416147987732040025754946653106345233184893538221834477276438630595962219961336949908664154106894061297569624677043693721104504394544606608863759801548604206605113311631081027216830878137143889820442607282709715943659892385479865262040878714719395809446552688833522907139512833661676010052104682850334653361737405814561780409262037391991280758078343328229397801499050147852047345605129911594799487402809730386264986762172918206665214197857972706810901083920280746700621041839350575105427866782804037472845157902808434785818753274741302150174813958954747062877154476466402489612171691814672477740109153718348994335285220300579051819595918141585218058380453579286393909876543220436981460540780411178467671702570065476253623299540635359536042412794530404836792914648560913249381689432491414006552855915047027278725706449819391506434067582304801947456239248926304274342115168846547441794582523590980947557226289199435467034587167974655616800607121676169569458621351391780616434034785523107394990785947629135223177687077164699956743826395010853068002185092798171512668172535289468561110664012943060979806375058089358015608699703243475351785531296153758982733265964281149426299667693046119959925027011813834701520199728685411106270898542578314449042644631420623639334399153415717947778149166099129479947630968248209005915988376911619073408569539732171559963531220988632991572637159127586361339808759514454452948308826361521505536798233023687174496280153112365371748679931058176740196555721850552332551051074861199189435274928962202251783923472540802488274523787376558900108516601791176641756473847198444759274735478323070865954652865440924983159651651091328970282404248300064686570429521995211796008871031459035302492789798793285951194978377951323170305076443592157311410353419308392919450385259174320998769725210189100461833886425989642654869403978980207410821414090183359029206212472582913230735353184082578574400877719055552992390374898260807382497625016968823360868779269623000520767459742601476706707881163234629436944732002748975015033424718116561929118573429559651170066325778364808440741565244963092592249017694261375157635907733666138722654085759753561578907343513110885544481745612233923933553415968694238291272844624769151362048933270013204513651205004281475751636882164644277736576516998345063707610158965886479787457934212576526202099876903794135560542775294687039941735285648207599772261224896957992924751193827106082174278295428587761663156235375698858273825917701646878346109495107718118319386967201301704165999145818887869400384950336847794750020469938640404571179031098616105026444554138384221547421774960516657244262928168379717881873103247969918517071439181281073005525641298473274026743025899929370949358924079418309275706117576219705575521326690188531648293184215319505043707433010882129750720699889577250496632433856363659471132957653797178474573636593928162420621845205080857012875584840981650039366540666707757203121868074761617144354013306626260929867440101772634760752198748773930689376063395673722659798836445675333041752102703707962869372252222612012537089700721185723881680451747787055166969599099844231215801484827323281860900302727113807447453440621040160479620837288352243650512650340335888879447660034381050398212433279424060549101755287573801565144234940130619970143974165453157702667494517027708858404042539242011212952692278859566335777274882098249685137109546604973485406808283568811031669955198925303740755660283899007909076494754933707695922284091644146197234163066095849634696759708110171520655411558710308228052988541260653552264826852793833984299006567087666903810357427316326154473820192279029377143407409843848887144638251779879793172133989916943158672116686958760669061600420987039645559584161837626759381213679665430684657374913914088416367287376903038344445344329862340572321112897138868243812032345430033115135609392751988024388114187895538227942191783946839313320698665399869989068173719126081274286004720536544365385320431381990687710842396899590390316717920383049913089626533636781162333550404586628299782450584842545024907749694448461812040140510134897570079015580235728069660998715086481188232923043676531133850731315177358070069880456245779131915502032689978468939035084644939726661773153693181853683248166812013397408319779106873944923129664442899028496350775137468163042254603183468569868510228168868166122966136693575909990507975882201449558459312112805987737182117072553568354973659096101983363163227516928873296979699284137763095124101425086925263274124104822018031441999243194145696026870872725382662179950445965073947602114707403971486289675819010185237084385399383619251827469460574765074198278041964574993670910151710223954175759936814406665327271526154041779083216647688130934888446762205104518436883825993483415350760416452194762162488821103064693812243929430047452106295166196165446602107778080800626862441988736178408236236551626995040176404960887062450856599721950419962393964517044825843113338401887238802397509342328128478880869008867830809535324469521834715351614769187991703291588246949771298184273045556308331352176123335536693973801100016502144185384612666051378224445813952387929683442337962560041246048606720355982509951199198864278638989127797120673476868108044542607286639639000264115291456715099294149610965231243736418888826624802334815632325073307466391215997048161102404490210613685124462550034391315190548316490294905424350328531198461797553093782234177509596971567011575642576236864735992430478089069376129391790009400980013420259247267937966245989978102145779696073051489486983886655632032376738072861409762161880442010176044060037654442809954082687688463028730220279266806778240951733870846081544346268999446388131526885826665523426913257801401383882880772372371291466243962840723696476023891432570026750950379392087542475811596611053606937766218274350302806149024765265335213323701930738123375610966844191875881710998302764310375494130604050190391803263292391061645215572749168344137398545402186543975921486021382906676160189473472733376673981467167361581766301230528573060547970842746026814538580353975210295504757202548774762865478418270849073766666771897958313951187745634352640704501260139182106152777911162138897469189106841499475433921647307652018364901089401352976734290209431239225132268805934942661713588576768575626113613298360502093539084220205568714879349517395151450028204779482495859997459686728461339452802718876710012472992353081884726123794584850941763747397085659467671289437121831267259290765969129522027897722620262558742740957653054690864344279048037427012711842542486754889950199893298342041773849356748560157468737871971113894346210201498835163110910002630041771976459748009361684302549968855624068050205059420897602749138711170268340936778185645159086646774420901898868742503500332594196112414629959757748928733208336485834068983485205314537206193224319230131793859629906444492502309705734929073402564129920037797200373506574745523997628628430300626929007920023964815409608692087569344596277983194041647698026140230954156561646711704465512672351372053445525388616718741545554098914003447531887252192911323687539855483910125773230382001781140874709461219593714811922183978403642007483925441039349682815946190058749733382210600257955228708447092319542232607051767697828824097191006586496151222221065257527150197880797737300034069303860867250513431495495308206930349498727762915220703472985727980575558347468850650609689619969521421735172374984531165034821011238817784316290742226119622080775165881254389048012535138523254885550062719294983314039136937132569934302445527760374806144389554825289071222627837220304222263851835615399727753024217456661528685077599072028497995583859935783279171715854852687935010571946540736226584052524114981350221740743867578470985638268225093153856603126522872075603561846077349018436786108697510035957231253500001903950608245836656961031480735425768248056693083316397712315343205964248626861873850373857323471773235120929745196988312324353016134653346055413522268096544324926854393755731291865573695912812947833455781844465257577442831128081842022516740948187006490125369424008882337255063808673585411398137886670712704715807373689484263755925993936745728130464207344923588753931371466474029396139980128217637665022431893874384403448452477061631877023192263579695609604874818234119797256992061752054937812649089318865138409675363008250006335070489783482600025620871653391687888784964294921923904957866064536983577046637077757762228398649378340017800707881310708840365266186538010202874203357496532029729321154736511396317678312744823621819956033811773850315026549261087448273925394607276792996074874473563593450335412472570095200475705709033335973275958525323740082351730992962327240104081337549612759458282282687171275546720236877002672287384994109161740674233946607990034357054878000122464866733581543209704248073199825625473736142526011560016371346314563436093498467851152724833802647066120475000416206475744630716977440283815224192052366937474181610722381049005964958245019361371670913064538020500338717632338051097999113579401376845055912958242883042384505107678834146631291485001516168150019962733624088454463102079354908703114889826214859579706496235751568263479491337658207914020029154691103557118595354286723169198574718072390963282243552676795522360300687661960667560550073637146812567114212913736431879218896622092525564299475225371991484347350625296667332389394765736764929384954176478585210281537911841232498425612546603866416323389457447037992513338202359715588314093574636700325381170577735905959870269005428925745795693913222559917859299913401237797763335706210573693923902083188820574237853319964012958689301969241044727430437491237048491409789660309453137739195766359476600991606109005249146690312294326103482773480476668669331018769459625007126913691167840275910911614744411211512306784549637476647990224436406712713023052199351441610975087308738876272857994763188613056687075675469095565669287059683052929755464737808796288742953352454219046690949062312556307805542371487129450785267670781586537417777981192186818534336841082163512547879554141767149200006444149069771299144962819153666844132920399577324226715342658658342566248847468350288018821327230107325821449662685772865754421367036754136036392320044503053064341875140464443190261515465531443119964088169639047324094389701740023395149187260258121290982848358049333870901913720288167806736666063405367186269384773983539694546199797282100974915884343092567555321708734806918576465847542752447390998183939380907152412526000715137966106877385965371956904223689098035435822547713899349659003339877294036721482070351952751662892511378553131477833554621652825468213533304246896106097195496078333073569910635366102408518137413374082339854954889871359629182061812807343103378873389579702461266841038107024419339916757133764825521674031123008951900790456610417851280503710979003645885066928646007322359687869611034650291977128270548230182817290659012266170439873034697087668353303110516719097404777803705295007232181831755753555102342241144634702072645555632907925576874684121293619485092198571291034098154987863245494755302855100506586712337451354726402759147888766718881327969502164173661881980378247681400382601468860470763188342499041300969049828763637278541404681868125788902646001733677825050222176207459084781606631837428612679357950010521740061325139307660553247924818704379110870176626631538387385282690514154429214053330075599018421055879843478392920104956069059921478706191629568366498324907456758720224832291659408355817088794268731578364118830954610468793013590730901442399845667947132746852145741028461566700378481747600654570562159646156017317567794907661468911079815753647337562256196675229783623226495601517541433831064900622729769725795459708386073361038907578089694277891313042016324377409094738903747656644514050900524561523006208552209095821025519276183785456585645734411773369951693433188339462111743924818869681625717469223083442227001967630917209510696510856686422590195107440481878291179099918675797551324609209731328600065347640412345755344162768212093643414169139325847724978651585752727556581677617851918590423823327451882352212767661209342488399932361595112088974038364590914840431873379372282762393355024088854123940613487239053289969683567676086510506678166308353226140050677386279204397101813334712720163378067179083988566920008621734294778089138081362974619258435255829877287898547905242584699978537316654143138035197523834874816254977762306591314074947541653047103514106271824584109788513657743809182097427275683610766172205852152197223115635464267566883806194185189388053126086268200411532950251125679039480263107348083523797832108940897814655099834002691392459834250993451803912585663230899848431591778539851409305074775303830429864037663613623121963140893577941909411745694180298954637167935889150231847863938887215039256056281502284941858903882573060873141892835477036241034828021677883523689186965224126471929469285464097308600767465648938288014050506947117330826621848123521015518703769527180863841021263060517798778424874984269895728185578059791093522248442045572827440062775668411610751738551460173232531376144941793628610924319370679841449706313599972925400999689187453648854723491161774664449053657975258801389289445022842695764490204701071084463951525576661781688642513826565907673257832058879255035160898488996876639339713119387640351302329665997441172825409170565691223514832772246057749828719305126320239715314110636520327522418065335922602848401653794830471930064272927489251461903356333988802713922902049903345478615955182858070252504750937800507862225034048038828606234604036260469162454562716898460068657061374489551780867359366308581366035509130858515056969645568619320651033948552742706653159982788407920369695979142129475467710256384739876302737271336381020268874400585308911900593730498632781423565286808156763144128795969949025971066665001268325847838108045595730293867738066997752874680557671599378399481297109844286972399764379742366183691038118521937785515531767664264876780514327489749716079098146474654901777547356588870753036890281761596517569451404577900333358379807714437245886606783488420117171739515361736821394216858348914593664451531404042007725673412372416060486732797056527927143036954319689651975202732086233926251645806111718183091057702019201819054917404408813564233058121071400700008970804573587678542560029757756520859815967647976869927993687855048281062818092946256910698327979705227138255059465746813008773126281429508909677497319675915751440316035011615332635130175620958862950312664591761123140488258508700705171154970901728179469622127863452241394306172387510703071854298344385752806290052819558150488772408284760921212607253377380031715176689716036266779176614690890069342577341173870472067763364251612539692227552789107781658696016141621602392326993164916789913705982522748492189896179378635950156221933516096897663507479462840947153487967745424195993626951265092316322203343883828868860777055857389847208887700455148583283039205257697784424334196854522223616468075132385147469840579545695907369174382235151046980693223317921304385116074897110476141099093991959631766852109086486135193668036812985924423451662273155358556303963848746426375783452715859863665403906035625242948560537390440181956450696090361201922282596701152597709104868498752959858075860774416604773650094977587561389883880817706888699118422230756380476342655928287121401134766187855152105030742199141872059380573373268682262375448712958815614311884080325638366480930037038060288770914784756736523384760872664107160282004880028924804172784484609610875298753948700607547059642324020966268408920584428469079154329838828711500537048838635355267324739542708227843472777824176788865718504515867213557789859784875977377081461662853372597214509376123400895944885018549336709987360635995953310102571926979287420704051957472412782790567238985939280296499203977113768754225905546829765393824363378455686873259718521283955708087127319440763760066149698547894731394147847628715739230043081185845849079398856213085658613039898159254279787782402679463793039753322191416810508892352627149976865329539599887037075131759162065604279098996446487312204777238186023147285609623406434953573050067338756247998678176342649602020864694129121612622273395847433392231060980005975303463447328243996938142428567848242712367442021922330204227614792028509558699683451226840931196770347103949212268808938201875207881510161048160013715210111756082706500441471926129646174321706442415921523017114855935613092916109682628460292296677499906695590640457308371509432656084228408949082615727783056550724481511153188269087434429790233673997557144263625613332801216965758143676854876750163879819282229020168630450835787885413279184075875729770946903055579883539781483313875317634946428845551533709468395541093939324913356465663240007268566312838670460579118531204537472695569862688314034888777704700729000889583295768559577938746177216651513117019418710278047206908080383409728620599367776017489523557699394105802372174287301524477635265407442793296649327205282937270579386519071504195782648486305629207234039298491996740237601824054185332984681641138407369458137909792273051558742668458009396273300455027588907219472571980378514577843925490341483310801009184878638249879654955410404446600463427922875509140238232439196671813262790049859907195818472030247982815583714891883108885248534304184806406145972355143840655938540026307884621320228207265993273845234985767775788417262779587328728800760738148145437317900039269020653643777521090357156226658593279771906931008744221140402803924007227883077439847948679390355960738788269086567059260770321382371497051620720441435385979075299458825145163605937579095259339993568702911383380321266475343572839363654885793003175274481478352520721137265741792245821433113856276316185443835983372723547515824008046824640368813891315454250603712660218414867515839713216996602737696669070350090754268661557835381246536509699179677791831868674287089781570671160675602125405610160885494812999124801197372784691199074149066009459163062650983677217859273550535804489222403913027946746440234562902872015729293635773657334041616754599608526163348496269887436384618425475717356801468502291298150689440913562183853528498119888173966356070255795879747254379676667262852847289792242215148827290740723806676343998847885934338289215290651202820323080804445234894279606707823329276615673020545384211143816469386968139979163403345419427986209526336779014977042971872498774392189126851157387709208159803454033680962240111035628284614833445522999068832101118046222335032758635299871160151769168881226922438777114668945056293210607632339727780254374822329968693656976150988157876541337651686565960546135741712874745222872777321050460941140615939408387389168502594043638581706716677592114166547449324914323722523388071897968343541956095293441204426731353508615865130415965708702510041880603933335693563789900349186953288148215023804246986657070607787271736175375549942243259318928783740197791576218242062111068652144424726424389402225152666568960664044509352760431759065798447639204526426895544966430226333741704211856903987516230082978618467835380427415304012525273858466389827992648192530851918184273080018652519301111060244830342041875851030533403247363218079777721478971964827983309658938676036789361388043720598138108790482183062750976863330386842051775155580846948486914836372550796803353032014683365806280795392837995259179215799400412443609705262709993634926435242634102215792132516186329297456811845766586264096522205900325882601215828440221230738963113567117245512277486574166038619479749883133827534238135235465847267743173902959106931740930247178968783456746406960037437323201702747057755724861508885799431241629128279342042175346500855135843517222321766698663685422807478171572549820691341996893463016045716837013481883010227224911958306472594539008313507721508410393205851277431867064930087505012576583315474615720586876587146062053380398222580531166258749629325677223439763788563451163488937953268005079383309016632318289001521885555359459123307859024553534591617630044314198493844235122962190929611586605393429196944110961926692499209131946070674568485731229447716491276764721912648774780847002678171909013027199656675430936823059988285819454220132257543934960222488958069842887374435248770213640549702431124051600571056305794666580125926933240143205533031850955312968552404563333391646533788201169239275822523427612651188689791487873837938167002925339476461787090396124167597802065951781447399318270616175027494488929648719848427485469929143904117166773725073706943156811865494774311005255377172078966787825291380470664276150726731834231824826506602311053066678538993729328931804429023221285722162311009139027738861169900163673792627771301867499936986260687600324902072526925445447164647469153627629495430556969427084396430146230559651307383728004675746385412561112889659919066871233656175088679570662069636170245700103191830003393914314580056325750517115773719388129887749479436433768443566198695597731892814944113307739131527308769018611187078974469837382369726631132576592525410302149276872125475437208162999938733591702488022493031964435201909863988654568278837245520131964017424721590576368750244774237467539862024680762198902315241890153389968167529938747764029691029938026333657406748523434989350065748472247509297359676626150769928989787590016093305235633669044798310090193068542322546470023411354494611340477361826517119800670899560399696534627987779780659340980094381880906477750369661669024051178578993056592623332813884609233760221805801567309001804755188016544291129957437326699743921302810305887764962398634656060043320574719029483595942262853409458304254800582706303178869934669845547313289439710328679929427507968541691591524560421171640444788319554819580835330170747851853999223265980308596735901185030091022653950926723900385177661232831460325408129844426903405916379876298960700450091438357072358501247154568625011756528999353345710518831122227431275276618270936654166785096675837713983866681316933448403735951569801267570914734729728416535294997901741597440584210785076825987174586872268401378604274423921099163143298230035969875405525660919841789726934774736714463459539109509784541816963751093289159900339588862076598909929297855772848343911366290116913942904791717856845296149819327067441801380537198460358201487403983722327937201066278372275705918761903288646884011709841925053718988589885511559238312164947669427903354797410647884833453499489027400747797537852852348795483209005930080373678645020367504036796414804259706792851116927698859016857815154390297900603286784277943255438498549837906604740890366068503541553276166976422843321288578889165563326242954888521714299604064477187188112548939474632044296821504672927808825198500450028636166092211842949381494389792609131452884336754772325000468478884217331285315340414678047760673054162427153681828373867128616640364061960430773888188454544957504403470972488678831167566693332366346295587917129589891464464834881853016089354105889064984092722528462098484413911774032105832275522403071606642683801171256044680600881349144577785237384892004125504336960567965070521376648273337311866000042270847167714717454295892790422375772032511357921273937606123830499258810540578163024567920354866694006741569559359944102236020690643243912902960422964178185303639345635427118652674787277982655549050515361675036705136732020043336170653416124205853518752934608772427661360571305480980381668363235267303865198013483102910133594691883037530679653810388870393940652498653558552085888274516846606658214523723072387937442604304443999670792593099651394344958413979384162269647466938159951281854062748273645385040158129743419266535847677270749356955295506314386097784440182190496964884930764912445742870526494170464599582746993475411540897777684430525804631172028736451545679766080289008775917735857388191457176640405293919349248094321806398235186287022011478326231310271985825081078928518480009191214113803202274398096237658625313241354828122145220858839569634906838763597968362931669495291815635751303381451886672909054749849778327149532079004020204110993941879314869357178901971828132228658251313835392651452539643021027012425191468755487254231698672381924789638263174293532343078482342283496173471979137174064931698648431442256471898067187270329503238590513095076099577031577583616850913039298964352115482328460514199808691957251977554563486138561181967804474348595637680132027581809305916329765957781529010025118630683647012133393615635239537127520431354994714402484771148574446621100287919804593242856544724576745567825719949672901766922404190233925881073301671797492996407227698626472702309253844628082387325456942002853058586939736730835453385485699367308599020290382332599969845819919437259992383102182872724058793470753085075905581554989405161219185364304660225630088876294748753503186922210790064710301887296789476250195755104238512860020785246557150671879103421564235584877689946593230409189700487862267745019821818646786205184272379296229563039497818313143861271394346877490198445289919253709865676740667195724547385354126624912885499168335792914072424859172526594117012002507430182842480191278022837526906432208188690781272384135864929072537883919091705314994024657903379882984653371533169959062296792735009589913361304240212190508049171552770484740532897516094440439943079614296264586745780221998439367479844076816122443216139473373390639609472555415989672453824937705431210530939321965397116604840312544951891544863075999491955820587110761716905002429571526912980223344748224761730628900732505898973773512774600292666467807380526815167221118346998490174404287172170527265801824585594308673794214011744316483321061083610955392489029600924194786752905256125559597938571995729032829504916833043590004208413347133452422283171191924974478449681690624931446782169082815570319611154666107172785348299833728998038894310291349057296984242690849328862387910832030695982667087722917491937840524525072508981269206246372205525188974961175976270644345264855118472382419177246383962194940723704800478530711258366674294416879972289972370018216498279997770305509592581562815963983155065779758429274082162973738880015450167164249777807911619166247418944238405311419912032393627084346575896302807143280022305080508624448683079815361061929123696099120140062252245453527558273064883775955402111718279830961995709512396833753213037325223766283829002270337320063210694823557881339700180565075173060134457389755131122455143623841180535290936613837053112308667927755402628281795204110462167499179328274916299098367815537942814727996771479628716612765323795343859709672076504790682104766137245061098214554730422308669057577889030079591330275174576042283674323220282177718173860342302561699955694415175460894023849758688755813367794201552114966205341057695055980035005293731266232663483557391516887936759951224503839420433457534489538989016806756518719745184727858658615040291085047387645984723327255525623504018540179140828747484602345489808497745150227770094758634758617746667574337124268937043916203158430219453611749933369267518922667356437095644591286305306549192509266647652948234228797466013097785933785425771581570839119840985753554518873201380943733551398915442148436126619338713940394263710402407120796264392056466302590157434135179802279387331825427249376658621431066739923811374923006683195922621438052973585253781555936779263269249189098796492640685925861674198153542902318746310726692770659931914934543611143989894536104795734222653616447388549416301320258980445236212136445450151577165107540910653945057996495102446920584377611234712212426648036885950562298906677195019998818843353129111366209635545889492128002731461705738293599300674521970226901417874600062773666898087169288752257995609189240785062712940650967469002912781757517863106116472551343009116291445430286888016489476825739380218405397688172224220835392599493623122400014831042556249531892697709186572075353019515266539072349788488891311887927327446159940307251569182289112454590545916365681847396144445187540288641262797404421245670732700616345035385661986550250147711580421338571368581392936896524237312608977206761216795386245314736883362626640742018169378928590353706346009646660010959969381432385758483058017632151911709118058215200863934189204973747818619383761032328792219641907676485324761977269299942708193837038494792796423184088498283394979628077426021748176407927259924231529956543934290592899909238724927363051712749114447630719441804076069230064845760094743665783967415221861195124683686773555159914739177500073938329667157891679676632198114324921299192148015189791180638672732024157860173508356649933324663412638334740242632971128592759155422572237830418744648494446067223502331031261918630086248547162176267068845968828263139115933090968729558754210670078720256559957721631499096535317288176440685292283770862531118691113697650973468696819067083210641564478894895803365025915723346815874183519236714053245959330681050948655701328828519839690001856187973850625519445597197171487578144385757617591891801738930925820639602482101460247502205193983493292228899005511850828162655595562610429673587334852171695637054807300112736551230942667901688707451463851867585535366823950884474561140868877048269068104542876201738601091638217358390338383696083535662691421812210787631426589977276555838822845633821519508221541222297161357918290846108543720678989213980770657814047241594808876331571405327810950260843464456291043121450903637455148989556666624663526374784246009398182204987021595988344450340963577275576782243136711266419788668807391020972203197671848040924335722394948000447971310076981965630983659872337689509874828854673623805814841486161372734882868952543295798610137048361860140202515201085660172115709082902713990720092503311374203765828325694050309484242781458645909873187165490124836632928158036932752386871753026256720834873543236032356227551618036304863252830389998426451551462646897482327029183522145344913430562769978140591813675283806219623180836449434710931652262174484997539301102060310063537049660471576444604803238930502761113349878913491726154500758942342315481870137658745000524223126875511265495011048129541745976188426257394844060394639503639088310483853879362647274013222759679041728409223350653375190077010026264778959675472966917367002106796435762197369105447970429722174690599268670254404302539714842626943118569677483009494766600590372577728423073538878661724214062779319165294351161882258962944439627358390676222420950656170504066727062140986198012312864125084012480707134097030095738187431476470693303483777213361617254072157973802018141280130987544751079568603782796263332521571279375822206426814727528397555784519897157637068587132035674848642061651314647211914038669968639693627738286095441526588717314876238849548693895656761269304219970304965797102199122345307244881769910930539673679784338671830983520607440124937350692754184908634909007071477328122618892860749585192246680880806060500847658113886253178414888198792009185268580742323941957458332405763077576185135416869063276146230021949391677705858605615948655408613695979087469642745844451994009340417568604542968461463851482776616862829395628799109732148426679898427439452040189555501451065096075521879565999189714308484926238265071595639974042985450544409712627352777089530136360422391572142457796590319934434326278657256201763645809429982537127574885238803823404287720092262754914330253339673387803481228084494108950150220773780463595048494783426298291739712311824544486426106729216382036652959650010321426606450089176535679272707868067865769080941244642579901470741131225069954760789997775153476362588905199763301665322430760503391801359122621840889789090658809312047967266087654865585248097719403561800204841669073070265424297397844742421678307741969167440129638496039198957558282576099535945419046315220714364337931097251424267935670930599845502683533131170268056392876762858009353783989945443604905189096731937550159387661283837603464997768053354566158412299957801937896406000031424582524207084155810074734305651580679448327993901749158197966808590406318250178771487031065933522697674941780393195308439427142380099348695170147304941502224719852135872909457437182358191387092790116647859108646987377404698881671255261997764339653981889264845697288461368605761110770856805688725197537724025432806455241956993579253136333445686200440395672443847976470530890648138913546519897189863017655389463151891971380327942061826177579950159653264933709898499598530130636209382697338935053129653954245130895889907241039621356085537770195768371586927643166454199491421426860847141021455493286445344682879453671851799819370241568699883497949785915369839653893344293538551140230493962873771146520692166255495202601345444145292383549388532735141217707539206238325312353150023297527609229374812184089866635213709466824020936297263069325856206453218182882704057856146686370620377414240727517426171241739897821779805860864121631978188213287388898777617864264332871504377821868663790188597238863978662834277270243646972734081275768237337772202243794970390341517356099809786402537044468798315408087105473400014525239527705532363458675531097368213077052318442391753342978262208522924589321055065035990475315843180078090406517157325066838553595960454695858254682181863053477095532991104369464095402876264724553266182081162588610799011923097743600426079994001359380019068454180299153968346986663269041869523841050273687648936434487005494694040408241205380911255133666810434560861153850228889578848325771990129642449243481847338383177700293653228161052293700266582456271735612226153759603186290638361106786101895317908414416912614109157919119380931059519864870552029957930569299668522916032405423627147168605844897819119593298950414097732332377648588379528050148677400081349314590321333983337699376486490921888179363345047693497531992416368098247934447252528445562014848417460058921513589399831401251982662012713781603482663190127939702678762465653385542380934231070981068987374853857748497447260277090911151628309767024986654940570270520339749960376254924817644072199490577686715835072430189795193612965689226210029014904784449335721284894260285365939649179271570190284752851599404441554962034145470238014643151198335187594486015019644945433768664267820657376720093502076208619476456589901669577173054778958118099176380149463615755076368315586863999898755133459623531790084688041275166099250917870749066091196333770027468230082036047914508023125841176589108352482712150331876089718085637167215152667112215827415229252132153131607615094130028962578919663343966738563405960573063720795191561973269380360751154351409531446503312129635049851659182510558508554359500121514368216755878630625735825055642344461702861148239427671048328019246302079359263575299261640982636487859310450910180020200825199521792145762239235440079921313235594532667876375159272438484163996098203245303241420456671287318423203456610466156075093874477934497254094231265723475789874157098513917626555207374754449191338710978473836097643166230104065149560747797761036927716227550324415838335155849344042958690376515057902276689177923329225653702740313949512493530134836151575983743948350720230967443754561721070914690099344836945270036281258962470982174764075555893475519345829659097877987899796729493699523840854645939359263560652843170107048262906951008906625876912765596204836253686807209064878463947511156217122861678940308173984136251123701360388590861585669425946777384109330712301359880494592992174676766802594774762999690206780404432335727641790253935806485814076381417407900152205399954160063407297197843313383102704114305602618892711565949703616272576856605680606053661714207914613965482155284490045269652902769767910706018846526650231828862835268423622760958878538509087079113904409306824206887779716396189747700773222641667193410562985628984491891875933675815208397287745752080367366879449578774499187206205994342033013105927504001401145939228878722924468957571590609539631714027693472877940219116571638528530895439539978218759863416228384471476266689359483064146396701675792470307052972965978693255783085938493481107504175378206707573850361657222429214222267464529931445829622265787862116990892924670703140274529926289821432225828747338432755997463592233963977711849005379484949016079514399656492479733106869094384734138594938120237072241078527616858087066532510107016286895422875423885976018072732002520833166254396017234303886992328694512873453808052158429110500905837525768630464007508934193703416692545321114535605292009510624271275167414204604858534353975978458813983295996629668857362044235376620105231400227061987864545727422216851696315168472799968682209013608612353266445694874141829419076005142553119873506458646496540601902919990122493468566747711269822493564499427270522809034833526305933761452879525396597179983813051643044994479462838384318646473350687630638848518231062999628365789240587052620374698294880868498871324823933454257762029432726632668098744141635963277619014860260621157079338719484747289206990601231894286778846021619190954300731194062019159673836577857218665137377956681183029032743963353840659628880970974093375901179933187134049909898663817719309777376451741804552630319066341965228565278548537203350206309063207054817332924386344315212064387819798659509835302703649090499666604485792930322758401472089851662185573169926730846130494794863144274341792233468894572817846822521823763344344872658693604894654611248589237552636538495488796703977929031614307276665562577777365966692971729966102932967155129937594004805008382647056109310861904073701726026154658528629882429499904887763865203811174490249242031801693113038265330096543286135600488078683550951461667183875894640731634503620980586642579709296236850652075521802809206401227282453987356074151730009008201081382490400022602104039394464282426276411917749727080496017208703306284488810682928953985686186952898946618617300801731151460434846124778334388587059827341239069019034655889645181088377292305712927943018135181621212492333465525998679193187755490955622268167079197039034502788213051235780002315856981203253132199401113217119044617839996654553700701652543973242094226174894293205754201980171441697056055010690796474835696704632078165924800926189671459310792328818528736412909563278669757287174939322447939446956258653779576124847141163315321486638536270811232876065835537229039428881528739798596975671867989956226437075002008214386297686903020271946892776281961893430319963822089925097145272498343851756512586624492714844923427133697878569889684263000607669055826255715781167380688144722736377167966466941550143674930973629822455631646342891407692379644969710835798908870745757292979593985061338231369386657925699697169213284117763524906641259768345593215501519038209198571632505732460429241553127481228123312452263911560847168161789301354851886796096500579485780184430490893176078236717533423011204386118504545017098490789590273433306719348973272472008181672255396614962972777235830256550651298925590983072555218381411887471515902645811944913030600964686571194288006457836771146520949689176301636620985427979943302685187544757729192679131525755362557421820436857756850469921068335662301638293154728017421736386373123369151022446095113360297505489536915785037390998090689128614351068751253346467343506103438772767655408837323605324832624034553023109106303263636846405649496283620421375189964870755657906101667083977475966159373481664714198324975701611937295032775596468146158327823385963405288841124112498289637444578644675994854349250869524732446295524559036526443918759338686395915596430107928896992746169491557933252920775909401462356845420531442850266710313897223781537892490431626694833340555653025834273213478440870929432774226271972421369175396340840379303684865059313772925906029494461458741088017274882923998112879247873053554555235397859893066252377874148243582619790133736105184462515278155232188496073379798880328776773796987738764274934738093972708371610563586450906983037892330109102531948690864077356700263702144870262342981724034885193539376767831683439583257746696188600803875831950093524797305478318393803654472869756752124373315042872003368197078592242819075073086593127806783369860141636346691167135594394256599026299333118515706354416845889741228296350158078534421358543081033828910472147287558452005481765442105847445065452024778776335080701324775237973894511018478525371114286723731707433667108597586482617871458800987635513984213791893730163338214393507730365582859927198226509472838508122031827573102635199556112082183340271662625806484740712532764974899487505794419936261588712144322533201279593240902521811237461566992698480157978208132837382159485343557649255932002717350828802532546611184402720757975513563856802890036970710173680014075314146972710827375217605251204258787814692719706174292307809659958422461798683500338570480741398095486481309186643391580203631739859072183872738979689093220981141525771893207208406701402642599263039237584599331533232432422051549354363737122842685888761897003653474884629875553141376192101414528707238622664728598474171408315270926555431975946328915791032472758609230651924063623377327243762124255850233174254655853307688243026664382849850383341590194613200715421105953856190061376611568221586673488493903904467648029736607238576144996816075240096716782818489644638379774501568702170342856614791552642255559398508774383038137555060562190539873352475625388994203649316553574609992205769461462982479061070289805129501281488472914633678864332410983380295476142002809692321900323609363921453132997440494725214936115566817429832290863438285392354893301178190930567704352765666309362123041008915775369939950150473548479167615694414062076950629560019564773571337863593492514321936628435397080761730792491163277792871646879604309670791326875597433091352718086529413068832710755240396445991656504326474684957655275421581848432844443820210263442187755323033157329127252342693502097898844348054520668727598167864829877534283352716527170419606128388801829209813200247804507352505601212757831277877861277865097767217182083506071663846977217752979105198636708144053979374752294869653528755220107004719094178911908313147575216239082738812834932079129919082557306841454215508737281212830179943704028032320217511374274141896817922014382334933170721828712774630673384654698785520049269354893296181755584989644177766268399860295377951519219402257627315099707224513198428847248532103615484527245260799711731067344038171308301280692909193393289341541537531347989459947604854928433777991282025606003946271221767716643101221001537452710563726512204023185923421315759653749489646552757882750239233803702677989491225660906245897900783793522268329129009737578588327966828302541098411645209869900512620084431841862062351105385539562862300129730874139772154860232289208236616296777272616365292315188456777413050699187117347360683952257777371163530297730782306876752754648716684346010032597682185917767544684160547541857621004108205751566371644090694295941304926024433150108426920419670920744155560593290389756077242684251832999916796232904621206770954982778680454955937171544497252607814978489706649186124372500455964140542458785987973538358980251624531593247330233952614362502284666837707869172081180211601738963200293762440282928370456892523001352072261305289575451611650866219584520587659991546394954785122257618416738308256428628681259879970698841909153328215677944961318803763021303534608153357480722523286785966033608722803245424091242486979996358852606875389146814807409791275632016567919812374414495988288228064593603631021605049381855202428096590108539549738284357347167543908976247495917554216560302813171875387741074375004990493601622140130615390516692143883681136849556596385984338638176898883857879895921441001401972106303427013549200006022026817838806814224543961218056288726039556021205399589264076440539143872760990252896607411643535863567782953900798131213807686084186427380333955001812053925336651124763957378577698758786519862300251148291642679886069176494454862249762148820334666405915250461945238550499942333762730366305239077863003617388657534564677560992970455630093702136134457989994642472988535691869289331828354413526565809184917512681412849570056014949756996853676775298677033865004147384638232042508717573351290261735203519331934421849973323546498851052181435274296933186713962979671589997839644008907960240610872619693450952334456239271676839583307703785427001247182560307099010947354031813563149066381902495113330130697233958814053082852026429516618054891679209006536638218548742358750044540945667910266895132210110452278999925457972426107379148549806299701712879818380739871675353024747929301367374050297740192247655137639109301238024215501286566685191180702028192785738171526395950378618178133729804374241585459713478681277771308082221399510423812977617252423025770395958483355303668039301004189330886548702824140816173913046803189265809022730751605122225696135621776257745832297793901626984673075997991854679860173015867160801372362035358378915532987644320555561447939678112595072885814676983371497876332342537480859885476668696115303178547279846904807831493279303172832019504111955119892279502573577002710437840365163752633304612793185504286666725434717343203275435302049323874064441609545491433309017448815314699527070751924997218725275901893770316446415600088818360268815819610647422020850717690582876912039350104510121089385335447723914496439279293521586751209908732076495523155393732348290346087163867937404493406003090146293101315481473431458885384257640050762014308271167203361430235232522706182297016929145749347095018072723346936830710770110852559313505790444941087382942489958298087575891292962631201444449038953384428579418638533915151598960294246605049755079629554290539187435836226328036127750857589094105964893170846552304035567119869075456276483740565026943203600044603401621717116068478744462116259951141640193363156189623639293482462976654937354856126933331014140371269163530004667499007631380137627099328318578191450225552067003267119306634057696135892345317524572361798850586633414619988182888730548515244795111398872051826987231283892839533398801674999739725669729285020538726423420606328594912751660434451621267334623549536114714697621419627820636575603305682977295549381583698529899084874239925551083413916804734992458523741910029665271774892591225329010057279167083180085817188031116331708315292781518367821476148453467623585794634989114331674539985119154474295234429769140626338546812353045867695902550285110867985815749478436904797967726274979497662216908768496283746139910027655965837437183290692088368247518946777104478846896135482319384879293103835500280314406730458370167024678971455323766954983621159273403175835181839917014705468137966191277120972699267146591326929322648629285177991155462498197486775086783731748674030447717966984337523233638039140772499476349371207777635693521203706454946888235165313054313149270014738590522566604976192055544823204205754769164352740242020794940624342317809816034140912919990096158844460021075841695098358538335196269879417634972002869577247440437155925844052974121980094209725265948256134599661870636804889016308766321363509546193380387483155251992914266228843881353931107983572096000667499922359234017959384953027696985314048241369379823983371513563004901521436247111666975276595616527864460027826744008560316891257480863750766314491996646312014761941958299112440415417489198633238354463483461087906040060266130097279393717585933476802257719052811355889492295706498108182862450838483143421016726553149208348249290616222622625069370151115477644775815684429276118793143768039234887350849594106708771349711921063447546292737363456783573393109751983916005652043669329538602588908075273948895084167135189129246517064869556156200199316751822800946170890977473947128699196927614770624821017055088905583012020002776074854258860254838054293447953849478230749860759946184546343108196707928511618014054635185311970312384985127730276482779321883957830978274759104194868347210195787889957866776297900218979400939012370626134373558219617241612027789458794417506448918084127705354481279930648103860490400233813362596812171950614910213345381190650578736946270415238814086611997937424070484664217278894831126344465784947881590356495336154335681766057139526525606855484123753401779110705006107106374778830023529450577932050497890850763148396457684329328687069226810751482663385452092820761245303738187062252305152984611877977848332274062716064540063002620397264681392477150602329923273839310741036087872345695946768632184982977300774609028433095995085616628674417383418272936966648523957763775111707184832476262887412741520966117473034182931584641215297864037054186104116119286689101396348703638548693095710943175028921310512876414305611712454977089021189833865071419500805228553958820166231467369323752410817136735665316107871640369459320906624195263147122171343780196932869846229933351498277448417584825028764626418720066200463599860037743633142886622067979873801133389827673083805242908709351215200797564450911605723556980494654998493733425755172806381635421252483113057509312800907391818217638026775595986613383878107913982793153889970747714890732191960945247423531821761505252770712455009157093591828493498914942628479378321928680343473202277389112434457310545514937102307334438551980105942597642178135032366838118620259887572103973770935569438095912516684307172460873715912600553635895535519777331962426142632463398925074716703971015101814842263107976753713121207475181051958320241639122943773592717789640135525077606575561755783118324482054751414474351800161416663709512461273312984129111432094381360657992809233980798116261515781503235830310828075119216775333537281379671423413641023731378074615842277085222496091714517308795527703351513151359472070575826041498811115358760128998306340191243307608381377575538713163870558698933571093169921615929819299733408128858357167503529967531062182186235757373250862106988140240162810145477525367865869697005311502048658952062209156680333701256241048398154877997201930304421324225691801587543129517385602925675209180357544368050667379686589544081482769262977056648040719211663839827242657464012907294673018424492529180613378154154820261972267314882584998914837266896987935129180775108004091425438145227679162185575595433360431028823802254480179040468399942340958560734561367210888763954565548452411933538812706760311795923772109191486548189349793730745787837013481229954583853047169818802330248663383671684722161865066035569365340130906363905054315926638350521304295842932239862478357859670780537264794016164405943335242709378353321686570586338140934142084355840184024102013136800772195165764458371703140483478363863300447878157260046988486917508345962769910932513543980812584691744133381372266592821119012354677356741335653428758918561128144622905846511656754949539922302954234364586833665170179879742987241444942342883458425953973588468828198700531666265512630227784148990592860190133799222673024146588104043527521615824375014107288240739523863132716224806885681705509053651710638030696264536277031010042744949613961651605456650375088948807810347743134797016343192879715796946667562252420024616272017842802237851794111068072410363942153214905119191903858375555763351553341310553336868606964370505371357598507321084659121967628693654974681960365766108020257033876905907185924635674487924538549574982346381359257784909088588211726612664010736243623212669550849490548634676192234528523741486106519168731689866098867238636876489488694653798319783665563723049061232738619235453525424842297068605294115933483434626516553985723183812436179150257069500670005828511268116740182267974241044940266061596719799231507954178853426695582684224214773213364749908850189530281690344755399905067324594767047574007521236620175540461909753731407552283325581147904374149738974467152615227863836121476065736006745690215923896106306922687001839615841736641170687502163393390118921742263009685676909170456132712081430873006011560702533649741418651395008238543681428766220720810370187322099148193376305492592745734535532943326948157691815053625634661985157528114344749115420344702441407278036426453853908586810481544355344349351738727229490196937730045235690621080069558411397661925455278466918364784450442233491555634704750371760420279502527706595162350087787391078088436822268677649119597723547155102511090475624407413237481882758795896188046603548561130736305441504889468989341306094749538510933166673849559160913106933389730940105224546138493862774522242374882718193255062457859698945400446537374701704891828913413269218272564008331827681923444798456464589560551454221075821517811394249444800222244275862462575975077763175274279784863574401957477512399677871927126889487096491626103445265268853710856617590665655184450150298162387374645256439137705627906626032477840256467066067182342762651317152939208775783919540352154977591077725317305060114040188041654002880230099181629512222562978020164632320158946306218508623436624211014714999169073713579966241280805951779049504204781256406091152302246224769016320083445917459394877028849090293026668630339307359632014347236454807874681951568079123879686606671252462502849629332162823809660692194742143215432373358625126293734619138758110120305836104831742913516134301555556849975258693830494709426103461029417211270844661387577213643412344514989778147298812580232193942889647309950447040382174280107007382106772764670766194189547167378092740109101542446171272955168841520837552887996905755573291461611656799908743615360491295981439656901149942622708840416160171168851672476924195894651894847745436628381455507007638265808163415372962324452964214040294130530489973299608486273946771937009203252532586172222150082796378535301325980502409196921792304436954172288488537761717327551681366369934692399528680408318813953159372403539955569297559219622455322977400319953239457969827624869543686669036093613981147055843120532941215370470903077838570746063952992161111420503631012809167518519242184023876419950198404333748731224542973274118573562821450386553907835443114602439242837064263305528759899851690236669573495335127859498432964381992574789328539786463835733081778993071257133876332203040674653565877299725117139409566060317870300137561630148050601422354164406774178196004343446897795765099996628301980269839590818684434416947609064077537122839122148217119500502016270593215117102441912718526359353293376316381198476130978373204043781083600647014187215067802249497453480562969448883771706361018636883052438219386044012589635851471290703438904212559049692361170050689646157163992333194972679373965979738026777359535273481369257367821540677766404916416907465533435333993069254570940714357269186338334859843175007656223541691433069437440376499686057225614926787302217510415731973174200757161224690884791334698326988869682280778802852609063065354391923685471762754252403960377882599803439591951877468550734941635879577031912065688085832958285021994763280032754473360089516345102910949475252295704004383336183479985179954968183053293464992019664146681172663995554666985453854401990409734497768978333483363302874493765790927640128675074681302007805334488699851431940857382343204507946531927519258150500911391432769777970085481378685818219895085935087633432934867634933702307623423404051185803204180501819978168791774681340882079453151908887457970066495878265381414636295640348927715538196251396315894683573174371327548662037806635841405088784160924630679252509918551100288205603693002058875365980252713896366501921585691461201287282629504790538563162912836121512780773745625879892618014748673537356427159869971317195035375258721739790557719024549349755600541856862908129874357256317608847026742457735302757278454169186455056947188481521589632392384775553311612094758408183411497744206697249193358625201431928043647243675855133149863955859549223553017905571766988414051151526806133233869345411713434200334844537084789080788498977424833347830490574209492969151432793136338784614937274518368585751868199409974007001712416694003131679391522327622661203587278876965203980378893100365308594701038678056605585916636073732795084785045423089611670258577834545499046497999642002474696070613965708686731190938419857739129270637141396615547588700633844778280435021265675977375094303293367568194230011432804192345764802454452824894691924950684599269603327780540663779339923374213950854766542326450541872762916647793135253068526332837865892136181589755323631201970611451622886513893381762873276602832655044905417533629715116566800727827800598304662269175008875959429929401296165004564764553461781931688470201702275710880532342895983613584404721848155478472120378036856544891792507072994414968168947428022285461067362781165361162754904053082773696789543167506823522131344797219291286899971315344202597013513628390394857217777038219618095280462931280291691951849373797022196431178217724591482824747699612017965400650321077719662733958426944736131909156188549807132813990744421323322758077949731320971996114353922616672951893760560838654153390156638339377594879090648349775454115387068173932474899828475970622214403008661713269176348411626273271484956710820271471634489774778537690501742831048991494319195997664803382904992918638827978374708888788048934925430440256499588170085888989602381375346034895608040206062837988680692086041886532297862192937512462339749495858692384177954549163831515120617051937162744510233115601278225679940238263972774366696972060055557154426263520036166967433400795841687010770266218933887733826917113869987679438894919585874967378428497974127596021048779722556281290231942552730015444835996296815589221748108328803086090665036934711750945364826750382889245454181259062232092660106238940441292025436033392666419922869966164351272024644964507010748544415167111857931780980462570180036010868222949509276936233104008709231441700095315377330570529289542871371501139121792738483058922679346100468405420174756215795271863013298002287864770093135614791174165947133074610351101823184029930599581029548794792508487205183895010202907266544681093742800899226245586387980475648514838721839886218976096545707117520821412198533304400425985547247724281322765302061495403466553030560856641294917300984045931092882139560104160761287408132903346780030000649966557444698331225362657369669976240163510849062338996941051027466628880710406339225511316112960904112953618196456722571293920208162708561832962043583610713901473656400371487194747392725483899680858046101911973605519472358804981497049093364686773521165559612635051957818049513812306731906396024534375503992105964044543828649040651028724799398207933023031707007355940621093769554112177258272194562309930482255297562191005400215814870846623972561938080727223902182508918572007112367677975222297455908715702731719656559694854484949207190021086287669029906735663074229762066320474884026651224231340785434634333350598340003626130785026571410599889291361289803880399636408525216992226932900853040231216022973390892791368533427403953755241580421257607299679961124677896479181244196703598583379748439448420123489291691131568306081811466586537629082816047710283351792138281749352769079513317008478800574292810169076824271545569965492386079106668116351038681929612498013107227153545100412560725309073087563659132170789403128578484884272460726903839916883896748662498472203454440038413888467511953331241515326753668675071197078716531627745551890270213747741491933116197693930624428821170272963054692644001028753343659305904783993941947194993968025960388529814524135134502467072274059289585958295648751099912711939193489629944932602034940770933988503361962823290791452354525730778020721092619502973574202888850954552219360264491715435917347980606584082543695475825827637599626464189754573583245837204336867720837178026639339755191506885172950890463772351076873780443138832893238030009845725726374939327360646516051218296326068576399284701849768378726186770632733294201110273735002983442425779754771039424619904346939538495150460794399336961215731927417366746252392903671646343149936213774963028449408541434613200604667082232134881431093491087847127261616802247558760947250526261776254102243209688965316422943524767163076287680313243067566766564398259802390278047132058128465087140147755129444700661226550515776402850667456883757922388587197295275096048395148438649472144967124207765442495294354851015090667586717913530437974125463110337593405559138432037401395745284248660754107048282319112052827450559363506474424412511836853633703847747692330024429487498616435644591133905476261870678827015429551591911498646724600954438288572931870695143715467088743352587549229209016961369787080534904809231329965503592741543549197937498325424032769312512725156752791350320718633913773187184113747828934454799357652362030063856697300806625849179052500064680485997632154255340162236552512105949284340703338176804244171378215547164314282291652344927045382126502012743269409459837557368852056127487703925896319012338661161717806853572497075249048291593531635725866563315061983237258002278196369325178706321327932898204380899753375341016827637668907472102704012717105771688981293845504265566363431321237189459377246378584137388225009513615050284292413073614300268228838600546992286628747532700040771085745826079639974023847278793676890978093206318897974224306500471702071267912748018881552445330885609894912824510618916008800895390027080605558689695543199471822757325618300820077084164507554435841329097688395294039960461502992316583182514262126256966301651840085063508143408173146976227444746108132696078877148333479390502322568313712417659381865498572660086934212061118994791415565394327598164478093377843034586414151192111972112476614545804962357137000739408512817874446385924674226397369514612775597781032082555541388000790526851184130318225176151373701265919320681709444099722686600233357293016473398346360988330964521813236326693765297094294585199167166887327735652956692976482042895347932756766045106698014941662430860860590506301208803479138252993436664459876956298656826057620455036191872686791231031203409438071652801039197340002701812629072173127538364655016571664616374800110461547722353358762275228817161903124448439566392804462338355126654625749911676851352920394850364949517672032280813418922324012498087575270508890902754012843308712046880255837333362912652005167018373216990945981138947609612773810064346220672606540775086373573390586971356446560528531997184770757669759107915689413363270521609618447695304751637794703343697011745322045706379801388460275538031087517493314171677682610284768334636170205628322108247326962331619369553489781173627624732735408653933215403582474618214474148381999831067799293447719611126043342132260203947380803977376976432152570507352683144276263871735296530413363293079379497078744293131426456693302692226183275935343073314966170584467128040064533523151216111195103650133574697235328751543272960407635713404383898977760586754647887116082097418671188031899150745822442422634481032949802250734730130412387577547568778722708606826555531247146378017446059389909985231622932479768273092500629518485739243374262632025835425745760567558167499829677931235787394282610305675900241152859873315526790903016440959145867819570065903548748216681329079875217610204681580869581690222213604912174969555820504985840262502461057188160059250961445914937191026257829670594741165208812495336376342490275419220619793570546982253048827113387169795368377651051311537263863769003207997930391397093358615223781769721946649881599051279126392359621785780391648812702765888616312745430646762385737369286316999332474589313994020301496866215183908338552363519986774049470975573384407780780206080739756944121521231691509849196942700382658981834974595776008284464091573067722941311576174510612882132578730968603049804828009203700452280757368929300418995672865093147649620782419563892825655507954380711459439064245287078835663567988702807035349871433483491908747102933898707835854106664579580350559210459110627788958018810979278125455023508073962864107978309098019924664817091663008475660098789874255874662096001169068016981095911234430240925667968999824714724837000339586065536512629018693835688592051577265849281976558936413767714129983646024703492176911627093133313100676020662753532970162233998140016106246916877382368365948525413650688361792377018500538845938380558881427955599239689831276564863527249681647318330565907482729209410459588264464257085242502053107470118269608742096003868431494546886106743351434430126974095180182649944081777267112143946121410207561948624957717595492435680365825379384471042461469178087837365148248836483697471025689664416777192562231911327024611135090124426585234159624753052960020799487239222145502070018688788046440378195901925270664380464132298211886783548684721185225358815641799776032357494154454780834310523931056441236548096201583246905086049919359919360264466110125548514168595623085976473155732117553477244933216534298248425070471646229807252494053446500158963205728403473940633782187645783268363090965058505577699092538642516683214162768032003003032409163274569573940561642446476232864460465202136743257624678635237021120395892059779004649159579526077089801505917237612379579680153418813346329248215029005394037402313038766812540877281329969248575287046359490948232333354430028961842698590455250488927011143224268282501511800948229066409542717659047195567927872249066693723372588692255361988686330903119880625834371281908012808397091356810689250268757078218999934918714540786514391227653683714741220099210895340984495311130646536725767535838554207913139705510005921020095977378192774269125851456553558805948866680222637338495363198398971957142411298355398863071584484983760279931558222357176286343562236548177880243395317344800534588374063854586720776341983447831517058825841261939045512856393863001032076440477855235748974394820612769041221808681171823860921223365434713099259905602264808727892941929754085315126632484076903931650273125236597644158412226940497014233793946599437268814885383541994327986197547830685540287849595344619620007499511078379055971109729157793619740442870655181704169713740527109409598187743571082129094909829116846515766952850098138087744260166572810578917420300746889401934020490430348256542471576245139801025964104786361244294973531087072243535276204319592192164065805631042593010864325876955160808103892095951357029485137305046518114750585158989878677005062491856954219420558349735096380318344823200891740534301266858414674702227852292048774873189391665540377791253590916227506762665638775570026211700415596696700362992494661578736540430905187894299996170620055981096210319527991960310273836801445897826917778622989530222129139825552969811013101301610916209376163017172285661517620812876727815745547733149486057259196048832937430869004249636621669279187401418866711147061886846373256688727830292901565417224639061779096266649561551818758817543132808632488197180482992833889981209532482263322150952129836436182532292786630685531402315480566145981277477979487542739658455865462339715946196776102174304422301169078668970158524388843386679337971629461001716791506918039092858309135749422513522093108266831334306401027163462564223325195022312819664569504741484887930853403839036068617739819348822533201798018936949687616993383732251829295708987110252980324825502818966476618500472313237009114261430493404777921985039151641114772681701232510130572672957436864227407817718205607359008123036783862416998721224091162436688689248772841668211352741575657615966438106625154430441573334011328019043609091882375440524280380389319338017863049867334021385793888226097594010291580398055270410630436183851951218084686826540630970902522712968321819446587369105448776730594528563754722346459710314942485426419992051946696830253943635877544684399544151736226389103349017969310150055773762544126651824486677238874289894114975178530205545713079352161557093698055357951110424121559738999263727712622388403129855017201000515913793786990162659000720564528049719325187953996166563438724068121802355550797163408344673277907016924139855569633510737804447484838525830464388705043959692137461944664952193928018758099229149237874615612585017436366877525084037187893107502214687676495519381211849882380640208785791592516586909870921447067738696727954887202148363635314781535867098787494283996453575459995862060336763926771176935844778496276979265644184120963998387801505006858203818274255498303345502687065121210832907839917294072919446144254200152921859161765297588837697986498006125777978847015529520185370442160405241106423710769482193667568039118970294889791901853729112038671895291839127484286398685447263120443831660827049008732185122281240798001396492717361200474430392682180227804398719191691561232280628944163186722705482037694051755440940302358964334171518754423751116858919990983268594298794827691762497946034980779001308657426238883448117783503862022691539449288841350081946029954654768523547866683722850980477788554567201076897935387733195782928369298915990343508624461069684552658045075936184972504243933798693910984118748583248755524584050974937894685893951091799306211444223570816880182475105626304454425943047022434618261864643117841816953439608945234590429360079626367599680164838853034746083812770176459156559771933638143554689001535951476257822084591984258751150011048022555635274986518060551609614527862912970660829930342187142043227079393678019513236662792507854653275736790829728177057274724243400150890313135138475835743672234244338597298531518146842945113273407761945941153376541634220705314118303092984276824203560546858832461132568094678956758646518903790138959687956431701680302871806595547528271160551142232721015998539345985273008313174989960668088931680924160951988489406057213029278654428764240390260848167960595666616401909427550692201856499035109053676529826093253345389208693624597423867174102338912098571128375909986579171244357557085038787172921474201527490171445490621595018868830149528970574130695607186596567229699084905619553291861330079155239669958856384761153541440278421346677467628727654378817202613556979985353771291848145132599460858990350065791711301439307859324956939381281285781949659439640427449281769639609755099425375360863908367911177022664861757441885300618867904286917743760231511595246685298181158971646626654357531621278029732527297183536884076468456741141662027553713900676557438938083798747124429465195197367475694207309616456409581461849760420504752449353735442264314967384167980565039227802189425133248672709110032980921226679824673618447887579961688076908979925955841418981312100406793568876932467332678523124552306638638782410723517259164965490935439318223173065946409632945627986152558474953887897285104257517407034559756311817181812313465407901094943471155179013744171865413613401258416274826516836646575956642445784593556871293717355821745081991743508465597122763052152395918823160423266751501803701911719612599384111108754615429833951255015868728752175171873618622912335739464285536984981193118292048891626798271382157493864878687411845499983665505809505508228675264135512541182428590767398501776331625451671125076668390472279838836333066716482830134139685420835870788880537171877039311700517219034969345251385859430552575258524695082614717518007344432365503375219445393336748981787775379305127817890898388703542035193210749033354897321562723389443683943102916514007595472757941352488510626807244437945618537680637797303308060634749767043780434866720772881810263990748503224572340584393091611640681443384249263210755178523416935587800194907108334603110116751053057190077721913067721055891083325372415637878487900649089561782024495971666627992043101930776430367157622539849044694407890354123510844742050190477088905751834428996701216380892191551211996405805683718178066191254968321243727568159112214376561473796966053387896175533232657802702218508620312690884501122577919206429121840968109095386538509285168631173987831916097098358809134190512782041283672423321444690572713274801247258451096574446739162599751582226480548076581467720579370465581984745833911862789271999507877181017677346355892755315774714566125273436389626095676356719417101346248048587389772222428499872210457576475063423392514862332557367516713872043397309283144552985313913360566726630460581227983349331851055691035380629079546518541351559248787659615444693045250779165747312707960776736901853602140772739049795969147298760926080879178153539068711178646687602347254099406148748110326905040887252136137235016661987756745079480402142923702793291810631079043814233014237294599837398358448629193058778436442879686150493560944736405639402080260822669349125605010214645822711916624030387493584334274431608968855702019931699567448768456031223713265312588623684369588620125813260054819297850380223118648216902866068621836326141790797947710931192113166841070793861732128190040245629638847909189125705261747353870900301134238815936273482298217499912791712333707078212264169665741206658319666349117869689008124974175889872241339334661466651424840645617557363401968053017886500609986490878047245829929701765250762917544591401270158207729998144035751799551087051985262004255616104213119582145893692485788415205362894132126289370038105602815395911846408897541140538052440187871935807437260208390430159698538542027197490146770536569573323913783969842401126374806157378816603764933054491432802315780233822667314138231034917044579646081879368164679295395541856216800337100883363872902829761130436668702477677955398998252186430169270558834792950816913844302229615223436969708142847654993343737433648163548078267274801547748674703040537902848563057230942422291287721503777105218112938940434566325167468482657477203567035918542942768888605157756958881663811843748428530253235821869591514601832638635403497504100646846138255158983412486031564576829682171249436993961433285070819791492789460125755733560594913760186142904052964259853244665879087071385661005215727296265427254626952711333114563763899705967692167997021044335852553316136409415927697466062552370860050198634979111247841713425563532420864793032350498701890419234600151562003310038987141034387347419302649059281509309476358405136982336518466227387617099040718693991518767765781238958908688796126240624413485705470583308064880719266525272456849459121403836356018289812965904759918489455678290631562446143673513645156043493858206046171946825265496670723943739486363548844125656392940685341556933493056651288231550381452989560916248235857761684596428073982652113396320086995645077004276479520397349726079946699347219958578509171720361994889132118245172932376027768469548217762650762862975876629041366746901261089354748230111902001612153059447190683898565953968449272047290697431902314559550963205458436470973737696301357548164769327720486307752947886524655585287428767779683181881696317560568332356003714136576032503816318547559339261421727815500338636755551563240126584202411212700030446404119119702612774396713375307444622906826733526128822523896333046034542787976844838850779596533739764433578931961523816309624741044137832463018100942858862047944780156747291268589830429329244811678454301602700644695334677055920256018193371691493745298936745215896258016513048813805349317176106839565691186553912310797897802740068990648214836823619852790578821793842900684198039197046436787056273094844647122188494926092451737533617011549043657997920245190350252759446562146596486323124584982311346638508860269633496335049241360708987332902498087679990105586166429110929894327811104269115924794656596755748328963290089647234720699990193170712955578031573105831606822373710372644924465008895028727916215598645292040933518263647188779998523055681821403133006402469542302549220920644803952380312836458847245623374032125767689392059310537870135572357651600200691671757558917879790009223741429043033500349030931730756865747100931720342604528280704782680792460993423164355155680661462534001511157773451708674779171375827357409163675609702143899715158926521546849108777138466910864622335492069313218518371642104488613618816297474269505415271322799119931366634655368390435246194686974327275619366904093736143586258273749115573072850068753897125188142256454552034984131184693012147240691200661424092160431867966283155948095686617988494341896405429960991984567943902001788681227530891932357956496777049643265041410873305048306803939543673928810796796375472046875036025216115305631586983029167993425621240860627536569553673748183384932547206608473954036976486176152888883903549701041429394055266067253782085229018824247045133791147569140597756076763263585798026465880765691490676469326626970305421046343752841994085083029310314679155667619291740667979199087807220727912364747432285975091487642927237799872994525951324280867120517172328744988469992847645025211570220960796483815863951768161659115824465000272362605095735169160102270253780646147819074685573770985118687154558421887982989708655000532310244654106540636173242747902267962074788298962371558327263897801726772551095252212830198063476449740764514410233845828083937837479687296714293567069062670004706280096710050752749509326281459746538816031512222732540651306074535287466782568324517941813796486488925941608562907178057944893960942274408661706125156536158216029494105362210637206328518331973577461531976640836477333179700496081767915162429591433343353795166800317297239128627686343791144576855036007077292585580954204058231320399388210766407275458620834251440188687046444847410082636914604756192119117393364161978500040797296245912721292585704519387992477499824544042213501955188245941881123106838173033716278269105095693493907602408138904892843031998250698517250994398322776465776219609565585822650183420995508251402615942442905359813415066633142967009560868372928863569582201767793214364629483735944261907453331141520947703731782568532233643804396178086439572113563754979829889332540639978943599690017345339593938012105029483488356462158237593849268265450564681900370879869743241203987844351262676074236840702129056595824703891719629761541398539498045309270247401109238110849279460509841838889478930695463930417824108437909285591463119814650439294588892514198775362672926717240974064662220493705521466497898368203790084775151752293524180559008451452585897632228116311361774671212809387496702327578914907984628906054137036529690623398002666683887053845627095272862170614394393573853036613172381142172024550928835404475537686480637083342053509884394563401042167692884703023116893869345031193266364221923580043085598816773522653806930374214275017717825597668082461148802607835623783651555710906727658637748036876951508480913110996446667750034672437660707206406272488499118792497628791855892646284276791526917421041592976960714252262522460730531209858153257400122372829981679712727307192222631270181433632374460327536220499183443823368739727418060490045445435907688743143167773560429592504922505372289933285632907568826885965299912914262478680681690931439655283696970286329732050897630923730730749849535064575861570907994216008520463107795477249336255611400453075379060005145651355841850273618337204339182008848924148736402732474894168011425681737788273983337433530767373238292550106706108702765677206736952512360626801464883328485174210188101211938613537089704394596628259243742684629987853512856962424031779894628246972810252019616988498851678394164231357770307806307445124496915885064472537233137854474450222787739681088719938115167439902393260548758538588572414872494493555246073531458898150985207977508025938618956623556090851942903896416333194392403893912321079247778459985948308457736471435328474290096876549313220668462396218721161674117171804049263093638163485977824609044087229062447645975979984987714152269692941735939349714699128376710057147650250615350512264176006906931595125211133279510896870708050406483319075746889014105076072126158669297442759472462262093168581443271539851081066655926336830944691889646759195120710115486136774772473188291758263850973350978252345051535756256657281241580146232418902353020638807059473846954300611460623328839535646057870823894166861384963066302637861098523505127020001247317592003719879002303469145162624879315543052458628492432926626171608878564690270548326562549730897445402882362968794187825981157345100828435234892764949581116759104601387711107455237328237519203761642904175756129083655578696890347750562103565043505940713646748918995279080875835864054773789314969345647179933127240536610693815967424454398184386546513600067576497354258149046883538687772863266939284975300367024136154751053618389507850904743849691217962341604062564278225221383716587845323082999296795302776996956156449704128373190505429651902534528638780882254419912788922022076639571108514693202001892789973158112140097908484299369391073089568746122422498623281720208607670482942788668310597765369149442598595504347806580818729128534348168145356068684394379364690950443251844888646415065539527990550890557103218138942699351064196373514300044952415819767229100083657513984433721227100469988741066382660991028615390941671106116116437634103017293393922180877115613753900357138625228357193519927792895486166327155055334866244078948006631469956094801683698494139437676180046850327985634428910581417713081382178504220065103321677487594711198349304211698258499542635168429682113062135452816895447025471802523323318945656499359398024174324907925239525958802560732304089363432642206250037651579559362708901775339920121888619170076326943098833110607635614614823287016491870334795262675988206328372619638673355180715905267274624492460047930582187536018084033519467175102228968112962104997953998386117471922942945986734822981685798859283813383703528489175147435498479005661185656743701885764296138224353859571632071678931549415558625349105155600485843784055800621569126835732860864603435151845458471249985328455777054451057263605188719317119374114319318901358636741553165578668513247318323479589358267256908106403043628712895926403867677914578421203808873291630201492432401444700635167434132464878150404370174091373674647959004028981821570526790059517864828215504161160152038999855182456867311561031788173175047062639227492066879712119807428740418045223934296034503517013285739747546257337304068070291679996205128877107514518092658016887929464442950339976218276285496063718242544291436890355090012043858340272285481336349689961791599843095142800300798338351760981561383863807165693145552943155625498174157040192370509421913395494672258775996226313770317047097624772814720320462657885512688321843067907663788575923730435050438659945757450512622335844876640080128956435266901961468121725033489115226600476501471766757801187523210898795362629415976084463806127806318414701332362932855312691335756254426629956258375856316836779543552040030542107802438991155799431166709812173498630564552345589881731070701880073812882891969391243000635389318796640502454045122878225720766190338523107217418943837204106459982475006926605744683169756023416635558644367924720724623325270031143844883540932459969116058806001965819935488807727376344539878035608818475165593426149383742461567784700415462133531489655274834479557969487621412471142595137920299720097674145565903149820304125000080688664416155338391688773713449341311102830490893870780275879244064145485641371074022833445034401510340106502862819375299821602010610099145416106694981822529438109812433141953560106521626347722308110067087869407956708131495082373960003757514940356190571214259174145624493134123531827759982990557760555091471265871112666313486282491656480113972829748520800063227930220752557237041006439501914265582097513056814009083478480111162517845596403408015632497625758997034319334530789854199007798213166396440586261283484433057903596379530975389974383743525529361429596256023425368182640936404184821732604356492554029363613862943928383572360956851660183062050222148008863509772990389315406904851575614631189634100982302525329682798290464638173311386601493000021312225053275370045156452483185871421173731304184140405320225522755194493928865840274329973291708343290703802806004039741608393872100920381860648144129545776289820658208587529154462803339613992479204951554597185201429963552267669904571131894791270605479499378428411070270758878092220851010728860831750112982899800745259601316671806288479966039484762818533114708304435944531628647085874263555520963107152337460699193094723156605148615003986792836567992370272693697246508627547786942205958717778006057863044910123600871646522749931371458429695284865536893729787226540102224811586626236315850560251268277025868681910334627810174086050386084717437223932299041304328681150689796481701553898886162269546170405732606525645038342390198788303370032239812993627068532654010129156111599550790363607335418931125828583290268641000829978129278810852422026249956572757815731350011562117514770552474105196097379597120357870978814101631808889022218577813687869718032590827544166079466169377445382096027599767875892809033502235208036354839268521816790866393874287082504206728917036775659411515356946510109857666761534505820297754997458731526037819856994039591514586585147654354430087936658775631219885396008815168010538738880366504014235455614320669686476485703074969730540682812839157770395108362205254658404113075795296978810651197894147976083995692323070908917743221970688627852540522648354590766067171941284834879420700062232713449573713527632287129075737692178109808537113108631862599096108862850609438229617990441943868803775097643624285254134553226551790167083142677196288129908152093713141421214015398774451016327563529773078924928252929664445139984468362206361301354959156500617888324258077929890033516841206800266646653133950605486105655549479855179350654358211365415483390454140698876861207519592322078491203362146727906647072242365578291644476743072522278933030934896817155802652925079890098011033822293718085767228000061200267932320322629344832298589641713152209992809877530965702422617704227729269120997138785642700732026743359428867410263453048953070073323366791209520920765027079652168686901785980860164068109020925535694222433260288934681673741699081941469984097109460328926914968592147106366416433071176754932425968709804793196261813427353005979519138309823401578994293297801010769396563834714416532913024665408400056052176978611862412723419358750969517134388060853345719924466209647584603938760799217334907115004972531006076816199267329028085032875634172173685326750715876025782791739778482817457931876350404652536406363611323201846846694476080598729019802281747831534727127829010527511212871047996975724170060559071477849269102921543757436120503000093389022686335808356915691741246382888577921199209531596608246781449205363508331180119830214962210317429250596547539239900590054289853160801131862824054785695198238030490514532765642399992941307653490132899759475784899607592500303793077851041839831585427655130194735347963967966853954951023478813637928091102669233859729579892902010598882747977962053600139277265318518497131091949428970107634938323007484813811560812015251176579143074298933345194798971530651583348466964548355496319257814998031456973520871180564186149624885897292065035238865789024822688649882378077291761524144325895724467585203694696369657515606971802402883120532547479746871801535991161212896296580526791030629513596908585033478145100519870467923649227560968517278649004046356823728090850524342978514662266222845829024484960717503196757249297971444217266953725546628086199828717497289024082536851328707461072152224170123649775993205929869146970866600040488610610988138249031996410095743560560727882017500842126879014898102064722859315624629095301920266722966615912583101285032005519054517841120773756846450378062091853586835050295437228061846903806101651638870945746596196993585940833072636479546777452914242117966565792722590171734001878005048169383533043694455065687176041130305949071095573380062525277915283168542495089895547882767892879749012944486662520765896065183705903422909278936108317442788852751045737777490775633187411238497221131125924386242035776517909597254028651514236142581913603565935795886304119944240013447711595252718788659364490124306232984389396117371257883095131494416399190824345883513723000166318756959436477990113129416663184043321174527222967096422881392426498498745696067640522836910254329755931304456735375657708608883394775418319397920464305883228774997407620833990944066965295303468565036207131903261107050430476379893777193346989400763847954652231401012766780506572322723948190428626938459076884946570095005123846975307779161047772188082083088809260984656037321022415064228020397188750230482642134407750706357585639062814825883890274947924396344697719821586621637703058151031524081100548242052595547308365727276860190406469255154741238005225336359138994883034195031330979040869139350533106947940840546129605360127613627801736691573960256546200601837575126459173030079809712469541515282618633684872774302216435773840711783366545972681305649937460006279737066890581443776678702659988205628772572907234389717025299930978931222801328511309224406273705675768508512853086901326041572043389313895355513276613335385366977256488644392600395601899764981663716542923683826550867871264289648545215046950898447913964422225220508340340517139339390087205163857590051544566754254889399723625237848866927287604066282889201072245258669610368901145067449816257960839725636164647899913596125149574549063563118305274810793035392383083526526053547715362616055780625994372311267729362012549891147168208805744975561326181286925067672597350345215524631124547407647182997130046053620377058818296335095591460973418824697038549233784065655526748511631737952777792276732466437751977318245010651415527847249667372722238774135090517972788599472707039545037373259399422070758063126586404878351551123005444124156717122179653107343958774730005353113962171368387957520722585201021716071165194066500398005283384110060391643977828770530148143615293442706070041486957643145866006507769891402495448946697931001273593442212663877235666799447585771120167226150675830164451745606666131837558038110472915542195969731328327164269487389209111314145003730603137878820979094506797084540365996395343219678605065103736524232959287278609863328696947548673319974809744350631691952580431233514216022417793438395417754915537389955411132649055991959322055317207878917853910304666783299036210879024303124599420711088753179734358234282183167458401286876662745818125469765222404017309899768914694011094581208993521177359189509107205469483124262115424233204559775783579980416989928459652965396578402046487649684278083840337348359357901721045192922094591316013361059256797391109299675492714756285904646595157648254289954766080752946670635151602357562170226904362688297412135571055540207095898066091019703757525979187687031233688458143299977185098462147419901007669291614951799476562996833484189687125264842575382398822404480343882541335519983687381603716047237719565189036265727965743936424133298428304212015498675856517829800702269125182907007501122165431489866014057094020893619673654563426711158275684403765575715186965705498435707041843831567668613361865001871127871319091155190936527269523590669321251888955146642981707717615781496925267017505068785154369775646895483383634199321177924458122986769626975711845486961473448755116423570335491252020456346208251204461642549336927825590215259178421280011981965828365376302804719227851863876332057980867050111069262330798547706269477477088347776389248864443433707823871147370687989641746030106967677532962470314245479530214568335273168761841012781503550960713578669690883036540799936570102365549566282677919667894132483017642587109755472555474183218307305270892738447688596033121360185134543553381393461634592648497941327963839250833609596806999495231639727195862195555491834247643793425207807174380721987419365502357817361076525164972573831187771195795340905563802370208235183773880463714781099410810677689871159344991670014890913212286673753112983457260266609080692314808043069724971697884674433773240425915939128898648520990933610155716357716982436096554878412379016532550275194832515711155429230984435864819455380756037445845486981098447132390122551340375012898944331533033151710406813047802247548479884737404204575612573079723845162180779977230502773734002331857187460460819257112125055262632260303135475951189968861402269936660583796036005402803076071601234491894074622376788492089410425557819765038115582437889926128495059733911904017088497469557315690146260832194330425422151410838591249924409691069950813432218971465935876371409220878992732615803612556892494076551580860801796391507904323638985952461476314008419491027542678590010259378359435383834964851376938320302126626178904239316089475650756820649298566360857519592326831838394740910383324103957395156627639083657434331107825442813374812941498556958511639236813099363563193585626531807860231525277719369823013538195135533452136827906381277462642732065674147978996931565037892577748732194974986617803798914094280938694721939992890675048128841490349529840382737017434419617211312179475179101285378353919092241443000298002536482743419967303287731068699506981285267278167204704082609599774332898640292054367127157126768280956126144468243978746159583089376994395549373705928725454774724420537248442971163895813277872270588026055751426299926368583480908068284517829848346249788208550072354817878978923754941974058613074933909967428482900251499372943708158398254421209965524794172173945567744949380916137313770643773013401792407966796898685298607978770247809304024025769306569694406487334288141330819888221295326758011846982931977843086446411277064358605407335195961837008146557280391154863167321494706055388095683897841791302570964108739977217129860896050838494532742804752364004522886962133547988489679677592704365804687381242923120401133826760767766206390101353093176362430520086761890257902316990287859067404580857933436684071459935897240438713698101313092435495589909127066261172522281660583708700093771380674583585472941892802733101456321484052774592379754809224060111318277244219384287693252844142287998125374818897487642861245156993400438759196326212577313406570315844272709387085264593361697855337447332459862681749440955372576589029929690309002724252436571727653872072481721841192011430799165669384773742652684067542453517770593482890812649048984515634107589542555712980309853762225385240087069188569946552392145129426187756613339277029727018248296362902173452586015972402684255188071603031085128091300076127451483161069671824118069433912093900676224663893657213260348991909011536236454232785938401523344054315873663551306155486443249137410724028098428402884474511947575443874366626538326246658269787376019034959051292238311170040736255291805968309971218250200357731752630224005257134762053869395204473326901579625430581875279892389664640977785074839776110106238619793896919037136777266169763582264282718732390051333013854884215938277963192147221985449786701107994120136818220314398038406723626311045603869045460154545878917539062534316126418949214777278712767213366714162937287773813490218681458423187579517407448508631358200245197652925791078000832772544254367647047658021907315552184271370606099434340076276156579270702896390907527234029795526394488320086775645191511507278880738795562605075206079457970213622615912806401565465100889029949866645383844827634812262071793027105419005567431822866273926830738441525236617925320278395204535491380361608043409178965627075687439782574081215670629005704081376783865979913658638108911399719348575212263181866405154762196269926864437444183282683413346641237956533984836565162338001487904547631943624018154738879826503767370110910789572532186871620711469468798189352678380201373240182930520110438693584766103962503449728513249848284488415980601714350842346512234337472099831445612843865740245638775112397050229655687853207697844356060035007227451836337651950284994438226120187319041302820425900095154221293959344703715378685258841849882768064920079755092634885043700467592236114042297545246608014750062894953645155555118257669877511283678005677507020774143321301339715639728357581887814126704201013010449123828547016566945984269431923508464174120294756717125439643394346909520848900839842116078371611952812135557829655654126757871285087784088843475186485692432971126705833227146834342154035677095434081628898732373182365717812345901119344464758408024692442213260380541060616169362108426843607101106276844268620091256760621126772845947801355912747589278641266571576633926480049078749193676054355033881199475469428350496902058973778596226768771372841115478313122959002150076847695816588523648500454467308135645258631517240910383428766264894277301352364680227989214008124038432731728038310992197463625376415931493672904149852149653323352328992946530728693145223770293641767972984169167326166461980758723778073146889309020473500020542576368239243739938453340603250324194338823846326620937865808564668443428509449118404565347776635581652465823368315965657485345642709065264907690424919102798514405473621933837382364880023347987510860360948657152805430134100801145523627577397010401480297471867570588967516176891173031262546560853469600893900018340653100538672071137058119754731139641538274103698138775334873214407614511709283738406654737377608697032085267369548220502964510692845773685600962072531291090689232551113301009473352703612353764058550937210681603590332164204449841516072765772462395920418190127474862127534924997164690480200618131357073847653577777875674474967606998164101146579271093942787797203878043185190393036828895082094289795382276925169128517048852678200422394039956822738925183333549860838922403551418597947384131127661195844975776287495383445739329324122247256524504644533894948701610494561935009799431177108051353669992360325915839147451389960442325683530495584675166461014159725039014702438032079276335756065658108802469285110013195668496889098055994731406003769707290191388569415433397255523158721772168654712831765962612009024195736619823872640023201579002162500079561451778736857547417385178551211578509764384774261347482790547988060874092810097999708194876806703499313695195983151271045755693211435374088393235829220826314858242137480472263312450799050854645613489396197486928400172536793730539761501941154535781488479308851377745577543735036471708013611503656337335019012092815226768796152995860077368877018972744987090818466995496474997315231479658495171528558296920695928489520033707900434359401271479000691773737222206029484051317352455001125397116190066840078770571180021168998767272619396369182583874150884604633673019430684718539567056479911654422960232836709508503970330845904859207573389485839865942855238610418145671549890456073713237827980365829812433494386466102503320084987620273502584755044546022551589247334357250117946870080700838674167180087301553371080870605939573132158962537569453967921890609437391733942014908366741128718126677739901771499050589519179457806154116211746567811760604418210546050928100050579556931734705005727106748307177477862921276914616316272119920096516030895030295823442234953579256708002073427924822166697502521089208331261391456257537479609875536382237795745698294701441049172254089062610022886729095873578386109474686209240778191736529884136174302126442584884217154685998001510958197934298214710656883355774687907031821351164946373462919148964210204242401769798392837446269405021696152563377957769927883898789520683561643092067672720307183962644753899308938512986467015745043112093130853958051944828006301905594644245199233986076814412235155073381988532847111230352783346735459256220773460164036225739835033637219561715339214749986491818685599336092547078783620557952143098054038199024886319651224769549362786450684846680046476154747762207112788411079038834231897674061479215167712845827402425591747740018590254651908711945798905835069591186356639942052787194598256905151262290632436393281302940006120251239278074760668565730154246821758163987798998907175842693983961997090386523585022895581394565387872439503947310745027298798928409938560513080266302675917498106071715922601029643683991621038005214088940482564148670533775426333685245391945829646411086356867222733131954122325988834089361177469508372080844951358408562751305310957000650846327550366123936782919386663830591631865449218976650384734004403232150156428079284267350025831262143851631733385878381824742851695770812774124270867843890393337743182276077723412579823277227431668218602475067226360488330996957370555041205461827826177409572782803014563928273696724372753074299873076514704977450915442517492856498369773470077968581972534118373832199363505392503390385177649934521019043554484971171673137351059926048248698966080347773242521842617639853903229478693712107553696267860156565007455263326577248594923472022954928961835017940791024584801286543699678835791744570138793075208855905130388496613632033417981461884856701116322513375124216800641246223559986058644865005640870633873476901718987966678574004404823021447897790495645300579112686499237010919565932691012102179061693386522016212036198800242783004134451699912213652207332084317486238887276076427288112982657102838524864457674126052082127657651309931108451085237679881803520539671525805359575748830936983657237529040364812579834207748062225403205722725299818127136217327764933452500947452304935295633563572896831481592487808381618026718789027041849076155015572183561530433485452470424548632711395340117784648080305211543422453213400993870128773655071116428738200156226939314253419634140151125377137127617406470441297374721525105193400504791469836259152818396569195722719008235739273741648284502261437238243462256196945501876665436373463996252255178941922865967534919148752649440569360969112891881016654972112336305970153007956150676734352463596711203735112038584796325229657662500901707347014547814202422402225848922286285945884053651335750637996773447134736521368509270908538635032402201901422988431979334314911256030795012111516927537580744253330764658463166193289798976199517792831472611668967480707998666212154462966137743664977641186405400008873992588450409331590776492774798795798805744692151743808177187576620095578227105939577409667936165311374105149625835168335554309555893160815217022976287741966596679351782344414332886337052195593414865010805575688424609637174433288417877661487899247518816618841609072683772100085055079400003956515953472896360425051573519693971076623247574211783638259873507794172071421006368816995290337146059693663829739312613652890853744896955096383174773615245379233145803663131212340399548945854420253073921362837586517857514618906391754281169190191929390329039781550237508709901865144523226920475477871805462947791004401276452070094531147307481957483064188401814953215116905572093325711625551040236454619811418800441209376949728514602597651860735200822534976189256435612877877943938534712029426516678149995531113533251697691565511372971734126088527622150949880369228093554704312011278373892155503582976427196434854675775795546472037419667137858889932552274657964771226561212862209795156774646479427109786965850003571715060190133738657270905658396543183203151765955451730731008244935379170229469247707904845539299788647010228260373279891364621121039363735082374606326257605731705162721372768875036189538670359895294272481486907524366312948083770481854572940822679065481775765295873034389246062501072088605873188229287866453723967833469742506156144545848063532263392361148275505218579466348564858088745402779140339899402756676523588985946049999263365679723570210111989988634143957111699183880970381181969477107990243764795659882945451230173952975673885657847678196968262781298065901989341458541878935579203762265853390734856389849940690756301123176994175460472317707895039654845366598787232198649802998336130924637799656505595212951891169547278654561858519463717131659098269618214696405930221296206827241881655991468213192030118837615375235639105998673448701309785200064219170094339490723513438973287721001044225601580340503520645844098278587090300062276390381755864315364363400959151205011676977795028483586099203313150176662623936485538050483953007631659870748746028791415812277473433048607590024573088700103060906168853620294557702314103753113217622786303180123514604844000552475265577841848222583498305769833357240018359611216901876134046913784732841263614684064788414038408874938920157887322752103282689377277766514975256575366063005823795033370356536394952083590966049211571790973012306502090931878376502179872277850923082484399702532845317930184819920888076198423569134675577894677281535508730582762330545623881618761023449566104214626957980143547062705341622277737546656343396323989749473859943646111153027042878115527796291786424858544456258043646955758920765087028287172629305229037874976142698007110473193464814168815011706351736244618153060054166730189500321674697206245722488560117881750627395184139543760118797288461945586140482868007742003275847321142376374717063860740955961092888947513972884257843277755138209445696084513968865671609736625203148634822908607669268375416744019707095730949037924111552157513818004331037063491744182474098747447912648858361366636895967612508712215776472267112341144208389699524579600247651468005162969433341268006912145267815775386093072111364891092981208032140726485372501033148589727399141656860784123495988937406319175991987874529509433791136637211986541851277696988919715132082331385009945769761724767551541787965101716769930873928185682489981814581548529139630732822978266247097434364963332266129039883818630744013420736711299441521639008784057594569772229255286873836034085121684200065944424600883278428910490014159659787784254477822934923518219079618581282500728814111203802891796395346911861031302636820958297500993084531059926469656874324999604652454368131622622792435364908786549382531504799274941490297524986897783812738957277064663997559547457720841251154918686221593427968141857555081125621778887191450979919583771509094687264136835217865917505499092886517777553996848036696524644615126087253806486924566639673380237504235775686266387401889005772618440983450515804111583783177925295941775713098296406150137270320537657380178036801918281706009585770692143462226149750207693552889477040808953110300423514274314128798187025327127117745659370365339294767564808947244883709892550983943334267561730095318629906344575888396182369247820736636491070150939511589850285439962299827841609441303380479694847932118732958079774118193590964579149836254615045724295605455269413457395403229316387020221041509179192889707602908813743059874716806040965743017518051250861323599545628779536145982101393309921476898413179210335872060369494914185655797098595416196980740450018601955697857294293722323106512898140149256981155379974985913357271901425799129880917033990312903906300824686586567778926003708249001996436259299764960733463712402059782777818500355608197880658873745461636626330107713257644533915124883463006386047467193275135581359861760274807288058481765456857864221856894944276424165905366485971003485673283734293993281433657179716029703831787392715082941620846774262697609895423245936823741037633347557142710641834510693393125290565782468181540733398098620288664220288860117016201365653018119554712692362362767096741986788525550574708560821691128835689698719855110241398100235539542437103436612730254460176836070208111151994754628086600054632417817871417935203996746886351129447492655597270142740250925431283986895619689427822129644064420801247742678440273657992326700501510675595753030891127021819409229601581359884070794907608493132659840852196993092923348334759433180655470793562303510685361097348098064511265958285670295740066481679487183094270580258639608376426201989147628287695145302306143403337089037431691254151481904979799262338740506361465584391317260107776279790387230615048104204031087170700474943607586359059775556378040620887361397085637833583443131135493687056461962489380160838007603241105665643222186411291274458600743644304467859363526681695760747126320099466031362580649037485427912038903441291788859089216418678947916194395512816638226224007425014819980408008884303025674789815568347398076506309300325111800756026655273374921047799255031039169586967088635866801561563252498039947637586266341959434773352254156969138730375186886949420491695060670007207486736755697268191962209495409792033059008142523201624785112316130164261569400422080146808140467712463956926547454922601320496726228397079785267707743090033064529775247624200078331608574938754331824657436605245115556694969018596463253917093961066687659987019773049588325621149072179068448880236402892408804354702043638955332589569906961864587295503018151591694415663843967314274345235323929927318539424203648579978456589448385574648077544144924357911036171263834843702801789806257570494048082290529128409404521230962509268841995754368837011056469374713398306663754367691117511847065262440787001006268819676093210129598771578036213475757699551410652489952841146648382533785621379533425933993421953857175965679578484276991341084439681026576990656725962641241401574790093511080365457158413950125425441006727248887319463495120640962069960123711816577135188702206839339960082016040798568919836389799241991203080703488914229902116994593870086324376121950439693313865681800700842047428690427044260228416654744029200161063400953609124130234301375765278119590152483962064552424506404044279018220461385297608135987659039844324996911962593771648749282358218392246444314186928282161759584512153086879624499551895532654255128966636193984996201184066777875219312091866827194536672180432282043371431404800090032851756667644866890316994758241229943069783825914517352038895042884345754301656465968067221501695893412419617897340067987570205867401184080849753645597131060088045254437478764197598376294649564899757514901717577880512402752952796481308055300941861544235339456535361883513197091001232066629065020889569541057376375474394244455850238553113833577859767950282890226680555958467772299217310813949635658921044344907834408826642175308998182180285220037179678935924961185576527000102404707523138265458850189086184861611386168451942359528839709816427966728325276943311786829209754480420114995147319704364163960665957733694195026969333646931077418254542820403401450690633876724979234800633564580270503749249440198814333718928386920877761072829832110097818159407455045022781043748818027369374048279504568264359019382721803655851158998604859320402559746576204777579482092474973990939264247021338515787862315810516310185847771809287956628211666282915398580924863646246997896533546866778178367524149473073759949286388262195195018379849426743493816145258148125147087045051215699488266943618171736493873676364265367500373309797327941553308839867898591163056308195499365477958338187859621979943067612513418059565177322028765289117718232418192960535146689594730817635914826945314311597829896024747889793074265693003981505314457567078788730472405873774642598046244104759753109080553285582397008563435542414826830042945690031059176460124581283239541453208611452908993138478544104642530895340636599473776583775750157826414412214041607441437205054999780469481537633143230840671747391024514429912598418059212401331248941502536682856613843316536229370803925513408660460891074746063240183712762887040371314455690123589485142701284211746076652147212184020328778878588007796927227528387418195726167809377117711967973049595770889708302540892837605011013680369230291936540521224070826846255578431457705046724463400402357707906997485551877286898065943934939414707079084588061899594045894739193445289234156695681636513893547047766035166121394230730599845374179430051385861660828394002195963456055400542320938904549811701977666313337562329473066218853090090644598083061206836973383158779855888599936976723948806779616294768271766141345963178816309667752982549288882750684857942434865376319967655763667706821170703514622689659698364716999489709681074433451744343504958275847334104125187232770438235796885310703847870238104497085387004083866585019165152713523837947779409365269519608107212451247442316739087662381429828760022501469326942001284268741711550112614621186884674288330513580954043077932226198537276794779394721387815428129772790406635973419695630352333361416612312813671419197905894560271805555493228538109535386994197393582935794748551527492392671221668476501627162550002448091178321297019036479337715039590316581279763052301959029839183438143607530744799112843793655760878961946548649651482544902491181741879904810746309572253064740208998466605412533264272484660832174497660636422791273705755605917413435362389479522805959073965682062387275156984822503515091393100105223253500751955166395648398261527700936863417124603018579937619538731110581212975438623290212131547781916723950271185463904302691904674870897222880884575951952461989448707502653975339086690412271590742804147667622242407203706237997719009937649526644760337350407229812497307990173816913135882497512179073199085645804952548495700646935411810761688174855968296491500604371767873721511358561368268118083639749861056588839423050122912868916027482324386670860370889223083185576215673117592567626054368246426536401878139010478894152165190100542854177931636041125972783858241099401363348337546650659006081790335568616443783982738546993392797314973377077692247826070934689976423163991219567849001565140967167644546884009970223224071725428418785611686660461014596837837168578488787934925528763558043384718649755111719985499967553748805198728648257708636617664007912263679290804615902857599266099929707838051207639297598461392454318238673261626411820363343376163126293363168501833519805043887157283244257743088157329424558654950806550741741023232202377697741780951263684793891336277696875930712872849594086162576268409956519370369075265633278798277048970499184427594418154291678047138862037199431108615866714056869018101591527926533614322253193559935586190777149948601758705640980969497495595450017481575763792873543758318730773713793044681775892062691399812833307506636101988684231473179241656573133334870058380091495559792223317254239173977153106143344034561910066805511163403437207032516658371867542637541091894326304346401220948818262604335907133234643906961796184584455608840790787384699512937637794022986065684092714349270812395651910399752291536291292826345006663909405691959126458506215761682491528985178107466432845683547498543151496231746294957350696112890421227162594928968128821013223374116146166087786420233846870681992074446323729204732733261688275521826009952563041210265497050902891381142445654565681128503152843280453656257465928294250721771320327081445398688976014824357126795033757562896906305339481721953472444787394529171767643979709706746592344289031596279733111942658323872352808150743367937767008279450514035674718126146074814531922188190838150866626906078100660967825075382754821905831338873497560064221889351676786884151743732366085156701684221757359685889280750932482900190242927825435111729693195517583590927410982384980028268919281895067091339933784812857729853911260850052461072331170928382274371802282737991506177288740481418131712913922417679297485661494967227182541959477369590592373734617973999560951562773423395717244486158771724182371746598567604790888854992435747614927873350950520504924014640598702595283484367467259197203169565890872037186525560226530699362771164539777774348675978134782713085909679737677283103495757597615791651041117070273450288868529930291438421265478200400938183574908375586192422166484761865748441027817387251157449701593141399270801962832435358551345777125817621382131922255337380327108844121328303537309675101559832396179375842870428701854850174103675235607234737147446535967053188719176948870520690669629316676058895167585035921192910994249682088824599588659536291291399613932040631380784705415660542159250076222503993316050654575264389682265757142243825447632746862772688060472349864228778897502794299995927842185546145690462949514545072697426902934704972220656119535504393910557276097359821088328554659972489356497812038107571583395751500447089287943302788942341745631396774151093259646929755630026325222146332664006689149754120520414801389657624122530361509878122807765840185625107972183288665295343089831778018027156452278810995365677071983138383750633753537256486424881228235211582858587929349856631507949537226236627220860850153983905197003162474684730899614080395258822496236609012455299166884265870037565061696055125971051623285145695965763411361672535985588796013999837578078464510622588260054797197661267484631712618500190960313712566646853973277576213667959523775318287290982980403493284267873280107736833461534480717594658212181799893954343352014018974652892376363044480258934264086091466332464635670905236272598747423249869652602236174135511399543442294555311552894434459057836818446019236675359635919703210991453539540680251197296012196042666906700324755786826349675370440006882437858304721641938585731907761917430832534754862381146700675158341539357479685701189278066710191640635111575729070310312670119666271534043590040190946923536436966447506283511651959051367394885712641835800103055430661385506010881252548448376179793125465316929360469466761389610425673808263948912739011738620588956495307774434247177664202912567455592128277669591121663258142296028378517240998986270272578994968466239607428530742816164733612231442025776259409913920577858539288258707096006305906536654907345415492727534282506224051833312802700035093294157244257403457176913226285514571884598532585888926366773547692198931562472535691776126661205586801155641683073483427684120695781211838805163955528197606790378432478634528802912167677545243685297052434582174374546459338968796753865800562433439991017644760764826908968308098582129582563892453735771526242493465961944026802344913198748715886383591084166400628751963768184361823666987174643759767651494171624710349523241290420207691305207888066854646425134455118513190407565618087277119476096811879031090916177848102573245155635451540653302437009082874404701031191453915105870314023127375186867373266776760717876109213661190061127659807148772491361474309519671434865782025375901483695300316878294332583172028660447809987631639415206483612214278246053174801943450636907248623553205472602215249017135802498329054108995265300982434732465306301043536477201893023947243354139594286867499248185598179469336266673802738681149995553662071314157398178593290537653796602001438240288931233065915536455816437075866102722623374162073390045367278924296032065235660423193896691898169689126591088607720844492888014389059900751370561834179640496434893364221575270610061943786015344179182414412010408452716503088675068506149275407896263388528265590979082034604093701125188002341480751844516251001821939061209258267032507384659124506688046150142405566324088013196326209044674943395541486018342727948094557656102781505926794374665944102293132320973001152205869971970399610557480267947596824288747199396761124752975229911769956733477560544050057634523733006470158553488259547486226265539336945478401890341899904298919738336812502985407441801064669342809611798730867829860586674733017566874014525343130775526776221701386888733284184865735378596712945985740604270314937729407028097682636343420620673472852818994563332802890722316861779835201334160612054547999837247221921570010777139905689962787210076988946265195134632455897528903551727142225500966122136585930024753608580309709882034576288084785422342690340877953964496143093895780019479164600953479889258752771284340690908402585144930788583563827525928061650668137773086520301773488776537207199506243001698691052615505369571248726311331346883288867905425531743897844167040628302195329904975143858190516280586846985410648146932354120390059127424889332386851502450635646893667391568243370257185126206253914911368164506396662199541184619838119289784614559828796311890137898661183685249588632494502473280319557417781445983421893839800808621906677593012733573427684081919402030238302096743576605067994918226552170780172286267547521718576093641702472728434332140300463068745349625654380629244560689271096284597685271297459413821896323940875545682667223893725045230410253113206146079065546099691370719031982807925516627215445351558879964598456713203070587450388502630947042397049820816616756396650270550180453805049221303718253035090344266897283557100446303286589025464084536343927747288454409817498730173961868621450609336525751327424408293845699797661682216717997458281135239555500586499543177896891257645494402101281575178844658778403733723096494726112300382016859273048096974136880233663879379452462592193870294233966185091713597016058562095528350680432818661503055103807308075518580088833681465302648627100809498076506842742445742578373606506035606230193829144122960948003548022016874008785613940604139644965166599856333404809022569976346581979844002432710549184356063856316657146136755550292591043659157567474024685275552697622793377127320041835245186257545953526761389350949623205226098064537660494059449918556580740121989304586961215226141375778195484547871131873823954503833533841352321411669104235770502530227349453505647325594678493598945512963785028712227312014773214365870145719324667221350027689958377566149239175083093652828627801225029504505622163734110800661112818771007218848737438832187113071858919766574119188759241145867340853995413366118213837689565150545444596521983925167606911673515178061676221561968584697789614819769986628179385058469094592860071681337088895718661301869645506869423415049574096163820828236551644030229157551814535009609399339288981497086606727483774194325681503907006449846346220468509916648612662475463396629074732601694557895993395195034102085808484279789385907097432656876665356207029590251760037146853082280708264678978985838583381399082344111194654644695304619675473384666120719178121821776103151172033960567056194401077078244019059745633678317062565376300115110709987992985213906695208849144410806571410445609874986579993113956975482264833603100482710246222322445098731784831089679376607081136362051964918085367253618424967456413599928048645725603171613043205333425016407043658525903646801253279934488258257226824553191352443543843303186529331581555575771938691096140578417198284588650592808090741272520767777027151218828282247178246951298969983656381741931117616049415678784320727561412165929179937649755446031614161838409588374287154147664376935477096291206285816539133144414392678794016433590580038878320531292675304209691404821243103039035670238440358740799877316690318745867933808739413302737282595797698872974708286732674803866593240358247768274263914649124621985918310667634815834462785989694704728737804249343121193279017826070828663673676338227914205620080071174389496062409454421923865367661102319884201567481738226734169276973945204474845551338025452927173140840102674289019467510706393978280862892407371599621139482816967082058861418981099407763273445280396204098998163938935890847860291696239092878783526369306775546615180841383449790536340895728394313695853191368705185835611454025592056756991556328086373592400661034169750912554081218837945576618858172545810719243875413110345189297607990184311855554905432166091889455695530110014194061076531271834960244715028630895522117896258624307381748129476979065780818413388591361091359143039383022176537675205796427200191400472841528568664102847219418119954446447714132341287465746541106078837023383619742215878858455779400703559971801713969449281075375891694313125359278895998274111326590124539915577107975421156881619021439574351796684384743843707262561942200745085957151885311895965938430887002569866784786474482562552842105460791738155781283968208710763479546164633518373131802760364887778010036632303816921681496018035495975396809902644084766097147405245045875962142485226478281501489465444137344162901866512325998799444523807571074045885312192398337031895286955548894480129662686358006696411553594769714410648609399621099309605677941440623422999031451397217558289187629924736486103421009515233414156800984108246375518696928711298664903533438260790812428871281901109889555048543127596343812095365288187131489788749765147149362812640237126253265934224525695319896541614475268446916291594274588316709991655370581058328606521112936216470317250902415234018712616387430190576186022220268128252829828335291041485359129152229312121691787020721232414069971912623023945939693844814510702451118723373636213100791608347033913276360288972511983169347338785021960861755227620706008323413488470601859114760779196906601995716362036541338930151651722161203648875603067794003983623129681165163471727475833111311044790125247365737893492544104586022814340974301706991880814646835284971894340917569456851139795496806877450404055205992071002738536142789183477866042677079773521780409569469038636126215332908815294901806203089451676771397174106708975411532274875259811733659377809539928354434278175360917143828695818572544585999136510954578466213869957628051873392563836165514968894389348004993152505050827411369524841442240090153054845450039176435327559950721571603276246072305629264758832017440723600998758151543565413695018846498058869664984097290171810636822653839747745729320527328403577265835525349212609918499840519459674687883676260464335889515323706281035736710304620230235283203526140021734977109043324490769877577976456061812576729248883529505711876434912594588675444185086571357117099204818275105609138940376294622515044664423540292331515789855102674016261351822997509196427645183165069669852835013576371064539206906403670122983903307053308952222278968145776050906121462667126526314328164578353790296750703693902019592867506101510228646614008595588146577944221588954016085835860999412297323565162158851636396930163994148417219328459446170260281104736837416565278078389191087851017230741485711571664253181952727638467760134054565998337866408685037218315880214096958441277768919907986012891395985034791096608699350304338872503981352260672005771880053969356577099389732557862386753886032811078650197664995878807498278185457149222210928565609949885929262523157036577546170298849873321909458524954205424479901721347227524824716929428189566893179691148015571670046673240344043464638886422262481155699481145085669694766842938432803949578105550317468061117388912442879281868594865269110450364473967091261507193212143708812756621615360500531256251332547953469856447150975657871354127594706440453969020362985199721667598884510116344539617055165198515028330169415998991141274635479915083066048195035619690067264073767391355891959349387245360061233782356402526390996351710743681560615327102453593479639429512382224103434766426374226998655496572086645330623193608682050197830883970678568998544013209713914256819934593387404730547023171805080153617479017894122783987120881149760731681155046667576195460038808146906018862005990444599697586574695283103186455246305538714567067089871729054078419361973909077927374068394241312056391819350354034880798341507696684801059217243317122281309245645926226664394728340222417555977226048493084403556531831331198832869718289037737576970370306317173146332688329184173899332767667744459385745399670706635598687258292863846600994811475841116386656963213865839396834084552489529746055126812114435287246999198332195896366380655733093807035817553829008471846116033537689663401290714309609455508192134026286971676429924919835807778105062408694257431165967192012742993177362621346192401168553428550696248225293889338101229907360051711905559175272736580898348889404995570090011217976626162239777425663715779155680681149491980852583593836012247585047598608022597750107752472494781467312263199335847148474915451798471629268136938079692066784009136879461421969594062638281530663749693882945202607105106438163481097399336921985604718756924191939605981942782513934404971007125991232758912485607158824845151613119248833817831232486867816983384623671900547631779644451256250289265377942975340313099633398107964669320136956498217751022280576255575374317558837498148756411687489825193953879064718288916809119223197008763371058706884921602308875288214979643414918730253692245687444745970483234073227793922921179544923721870776735149869705248168453119327598336134402685460515352938257520324783108978654672241491071140394112859303623493755877462239265846254124879259646130646675257220059168829855326092617352679986070615044878610356286613646405024762504076158008912109020691124104749023417870933896673729627244774792100239947744393763354899164359856552228480286771363889261505145195857534984098953861356407423260745984469134699691720995869700009271651676337415144412865465161705210102132642516384066138659299699684356823667979868962888629392274103941924946039577867730353928694607036625334638022994248995299041534037965039210933396648842421365782419626772568379223798395934141243019103812299610634030521015740294729705039709183606844963405899757211663224372858212963068853704055204889112766147976898668434095627666927508842678543716845196551986691886781328748518925186955260526142527531034204376715576827614264783057994832127554750151379521678985274211409545193801623043687821346826725522063345721148005633656909594609253845891160522085567189367330283570662372621015774387898945236811502139767247976036137495883596909698844230063536256216312805974229411887535214299284498496809861363253948950512022553455489044681239227969212501664883222719559719163552720681392838545707670110004995194504005527442526531464645717211009491395041126052982274801979832308058912461803951005401495118216536552739641295192552251060530580004823477964402973595744084507729413619011998034039148166354817864828138617716207975153366664882383937643969489418429724884332028710169901380737773844229400548821537720798723048025414668783382417585960383961880697874649692494730080713031318984119722205298204775024276497601834641418185311323197444379738283121802850401669543463191926983290393364380115357919875146323249135797696724735114163230629511103539927185311661613802515758218145854230754349517525107513312610553623213351024049175299794867241816709471179329850373839320780480892225951366349373579963748544910756766133734969036996951741324373713239931087868309068231245965112708980873910112013220017208512976707362054577719577506369903278628924878588129650868992300332690090885476716457914052580043145968455582206478276063156524454538419829380087964711027202949286227618852126388261316452954678626685209596256104227390528002714318590751190066743249764307755217968170154019277228556173307038252129225236893207579438430598785436591303576416721469307037613271562422940855602531367455498435934009971791887576468787237407456311135015660833935765704001588794416561736369858136506595207663367212501779309059922828029829598411314096830071371366384036927155597123494636873062727901009264893018518995557040350149537524644149921120841673599016352359635971511490440817049386408092814400407082539483633644472569827102749576212126390840610289694459564266192850488256407390810572904209045264256102760342806773393550766554538051647067998344159882544031816544345536285850787971881063795197893099669738640120347308939472056415455572779328649994788487643146397689422544386378326162253148652763235754546956209718931434077878202472342661701318614344259675686046538080697261765755745869003227489862170472819918695179825242107025065672871280682911718776025771920796329527469126348464994915027416276644007949244144548504100920185440042333471460665540162451371035445649026661806892231238887690096332784223730015461585312664336757716792116038930372186185390441911514820780547206203426939009306048161220589810650140784702296768462778847874145492580698519138423942673080549566406617826295525467282894023289965563818041483565843082784293040506792569329706200987331641077775743346783538362166903072270807188193687528629433605694533860521442019202042959235722256065197855902110067054833318850402952010453993792329101205002192238354640382234830857680829187133540401858174043981068640241416369598127196301627738668006876460412875429602709387354839536735080377777604171642322765949448729552842275636545944043532740549477452069511708158866472711115406084783905142149004871984719443149050458581061446981014763478976145941317827471322843736592390740304919549594324178938321746925803182959688699938391139876984306411121238525747968306617348496207218116590156719396021979518841769718415730731317224539222337338509045624221364789250521955918459758304584177585677401566029670157105949573035050142574084551028497708863027548135827917868415291706846974549783338720805521723289303948085218419852195927715099341877684946967782703778150528121557858380243915732665535234311828047269539988484395647167068514733207365377589839644746381440343169386418618591732777520040429357623227495213039959380394004951423154289434123275833083471751718539355345447674503480848528655988377719561498084093689943726152322009091901181513942321041689288200788922040603492488074484435722492095546882721857564702124771066043837610781815416487972715266723772092631369699405766942297818576925476357799423584203952839671192192549547666883266182178775150827017708064871942480439486550327879838072299747042391215324651610349543340504482911788903717795390758476301893825699376745149052090144573118381402960292331853648003703057472272967548209769395406806853992607109044942672810529556459460610824462510123820974645544918940458632883524863542684249235826572417737391146079630088449212505701101075173576907579677903325805029007980158958911113002400701505843777709731695539809551447510670425960047301574872379924605614558652355679276796739423127979688202488647149118095824691174304105749612263157718117592560565759853018934146084007642355494022662871510796324360641565246865241641923732430453328253798443002106716809283075250007978053079832830220528285828632522552578421766125027788469504611054068594794446664196365575692110154327672958918970829573655015451204346841716049069350066102681878120860423906850327083932962323392138806259865198452168359509480628337331231362335766597780124626412223656247162301959983635729835149759448449080830718625339164581035164139328245741901377201760613362266751320799536440932997915083175356461931108077494476154274581581347147581211358591170873452199030151505349382195021729813096372127808767353996863925376850185157062588326617912176555014809574549905711613185486635408328100380414386918015883638127570838989888045283882392672623281176310398819021352588376147533638103764864297422643204617111971323481262247216274524190525124220122552486979435235882328856577053714341879474837312281613884298691106994318349797686606479850108689792634277758197824592956657230801428850316035563333015602392212965491268105053699574960755758743834884563789823781838771071136167210979364682181249278138462646169473495166606469071458019259924918930233030520948290613253555980919830978040844284501475406139082838110180605102675065849200577280749318477364318020195747848555792341757694677157928630616091015179216510093469159299697071989793538685655092876562252633665350588881363372811551303930194063216394079004672351809975369773118219440188917925483252190040187417106862564892823353770956286262723506721560073427341542351825002049462441452597547675680387243759987971342151387739033426364550821361401123039088690215210588566194439186966201885173293118818498147088654746219637309705964829869043286266878706926814255034240294050187435713150064593880321236359038199292742016997566743571675148347285587046738965800512954390903477912448133825646864862117720020261964825709420436640138907696149914705955638306786036068384458007779157175202194251941555664771745283626037264985316956929050222575376744727098914669887881142100091622608668244167636835462662115809747615743893739313948631349748288744134405193685440332150151318667691483169020656565192335156880254798484708709403000628750944664291519790393089577715991494656757530381960031146624922516264237609628116402882493058238714589126708676940541899127711977078521932451835718405453546219910861967047451187039585805190316665370074845396871418024037169404340329871279144992673992699118165377948322255762819328216918494806795062304166045761885064435404880107221739246985620007912593034547187355625303177000199149633092257821106474223732178245142059265249755748061449352797433232775701202155426360173924960881288619727063704720881267044755614512730509271324637014305195975028010065274813238023654930447527816295455294671916385889706644615780794543447165683860848620623095770065041209777533434221578305077769512273093926829322014064075141462209140677841032658529077273458512635005593281344874776283635874823522703508067219376966907028469842650783463585659308688979378720207493170878413239632810533737720368014713462469801491215483988062568047977501903114852194861597920883927674116467358584607820401343073090102807819510005218302058642132825683640530472503223896079275377896585876772569589514739887258340495018944188711739084811468470277588709539414944443416497787008580610500649829551503010056639001971066224326505844178849918434081316026205240010347650824921659834427224157366551124394790355818238226884917109416238016664577912317977958847835004759843036509999797243773976282161869485305001258158359187695495290246906406012943189599115438285802990909040970118407105246041435255864206240272185369728416009650352855885601934383964238229320824721089653504145981159441381796903246021601819304641922424987365289231583171805425623579335671543078834485613287759166056121937571239466732855283102149372725788877709867110019284541295546889714292538230956446279155169268519513399043865254173019653981417696002798474944688806671371052830131115094576650214394329009226863993234675241281558071981192954043796663211609256668721124444788617811204730753669120792534598594412456517902080301772526281068024381831088172533548441255619935017286235085936554622497332414763427019101507824355501468896495103910491506310601941562079464512237843700534029926060086965070846868745254581304148067689255730896692038650503223559091798662149934786314854604193668104784682707791362032482120022626480454462901292503045285516968587305674214309736621821315261127348106198662263489583034014998534774238702201491472964863973128026760000591532459829372514678915854292329049843759493022626311889620928946316455040509545043207477249003719993592259215057056609347601054816491991554617646678691193713232759620536012142181693201405530148317039986950716352745389569038655517519073017353446187078509869464685362900893728096081625316262242900504193607867590224303934316658619008467123797602983471156175008586428888117411348532801141611089230316570655332933108418413599240163129260270409469316081210302878781850334871362560705840829431585508992130365254484770283951171733335790776425475807394631099220068229365163913684130327629265642708285860360126746275994868529978500580115423114382778620392941908828734977969001856569284253456248578707131004161005387842643328441014996054355298532232060147500323954294298111281833370427250340724829557669833467177358576993159226492718568955539914126803522469333860823308658674909791434770541627895439191448776517433876522440564119633887972291926727472933560118612202236251985551033821950720701965499551099939277786377474650130357822775859418882762122864140785897702714843444488944681592110847050144637602722332969358025254811908567502861234873764314386894749206228597829861754030374010064256834930749754763660913935924950983102383157363284613017209625963328072800211787590775639341455669200664358208918465459719933650383958402071886603808503139953595953885018625782764976787860637070411404803683060770942495804922003126346427766309503151594175363672460613348294303993108418562460475200402146412865204866903136496777383922462839922795818807084182138144424422526514899996132924351137562934890556832226478164973005601034902012341442122552481267521174125707832862535894913950488289238570651209239776208831950253636621267743937754334277716976579012501952480893376896074373123182126496361048633306353832132140122770198711870218103960450452328536984037166664396756311133226440890289119774365299652754466293579711331438030542935897333190348830005504319308797557104087570061459355629550306444118868303035674648022536951845373668701732683093102566281329245070782918658716647690599734023769346845947901649251641624914648501061425633330141167486620152813382766802820250468259642738934580825952842859861944688881566464998611008368703026392305387258722944791909900877179691771732844601244009469244037259583107686301312274237457923866950543787968086936895088927994507822161839510080631698234259068412486875827361662671134054136569846925575895810805499257321372815136632653663812304684459764996855887223838151996341561730887463821131781713657403855018149323232841491981610134698463462759014174510932270786280083163036314155615878389249117833419947684291371336512221213325759340041729750274455152077723368052322900047192511183214250393059264471112420844040603985568995412433841151506205814575794344793874576375486562732105837599492207623519593426230856781073890064403875557668374689783510263913174356611706180551030311040792744076413111700658855182980254478670472121316039950191925176015596732628886895767763770101216900416037573868883530446182596172124976003581745327060306130285057296966729609853353661917559863661331388110665651775374197867758493693364209932438528730813542802273047481798913044016263359212983366496481251157897887470192885384116166992078873499938115721436850358308826235130642861156335238328994847087610559579410969881098625586770038684811678297636396250204573102044268086280102266189739032331668720073692384621501604970887231896276099909147565560870170002727418778002684458069933927357348270035638274438008834177643177179984119350851342180017892139903493303492812421204361282316699525722437239697399220536029470564156313982193338901573424710703054816020826822277528899370546369107341457595542922634075374502549939734065324148320301116188823367594844605704929604433641712262831756258561355117484983362501715368967719613514393414149086397569164261367056029136741964190462256493230276143328753893059989623962300271534215509680041367410683390655149959932811335114595616000946433998686841453759874548371247886729320492477803911473488402549077822369764703787921456172055356673682637057197121536955866202773150997534614966146843179447400670913318691255504408304010138518497740530021473124150931883576965554435416940246927754508398201430125581784248211368291237531074298403882620895367156734672671260408081525309050388103925746537610572724861657542249204535123844783428899928757372036098293738874777537300062807346599122376270988111243088902372795882294986860437822364120117899791336900274295618536088563786076242576529397147990380494838418871453395244103451059626969735326019022409310115690832130974870604134073230589267552464935781532063034485242116370073360372211941997348993671558581209690161645745060867843915838896635560838773604872701080725403759150958996883336054555301951056283222836101164947603739945488727196308103371923351223939962513334045118409737015596189733757896828370667313007811747445945540776463699846717723523602701752014911893619648703256595220580239988067549452547440376144036467210534351342693550566084525988609996071769959789800999798780021874271013598392238496750642146499630449139638431753540451370012977261244495156157706278610497289347335888318445005740411180849018863785505489875505942198663841729848132607696354143653545647820289928671189540528571384369273197126998423143268592625462197415529958438913980449328861779658023433417940914371794511021095026791945915049862281364188497795338588282219853786904698819406670388234419466236250408894659099696438158561653584270468192686660143128115569733458299132168870907610605803258474383964422730329262980272001737948910880088792970674318962227169805870673868205152958518472029153367821059791192863767161164350916876602807099754695330174645993280589440411527868929831525029355711981471281613228271272088065573976822427901167593373167275379885898609852443750887792606421844244416347995594600513479325453478620607715171443086538053287079466219262965666049915330962886686823884245757226334202098555407319688356331337519090005372257318248713642265070694086427944940567636254264246413357580526158942608917541791530904292806499585222334775613723983223036287604830866788851583823551964180582981951598408533103948410138057953820783022380026588260324715916327981462423964777697649593038003821035045321719785911991041284413716561193225160602454731876838980328513574926345854499091985600199176164027202119936352320589543757499679821936254343993591307989318764008666561490903549348279543268401821104405117063598574880801052066735993270115498126387062335416732084494033723838627193294274893624090123193211684897727245057876641747746417499500944926393152411902390479439226124394439075123867695776756549034129610206352738410910334082216337090551572724314828431123350732547760482823911526643972046577028960782536020729189862121192012845012448559095081478331001534415311175468355923896942333311470515925057590265362429903660103138794911410108718161684713372652789665773017349533506657668264595604422225193987493470817310427307121190117510731672487230093777703546196743648872226127906201344367031783993697944015524048114060215332204330246967447215646832024842282723857257223807322281721374685210646027765597609593968813299143445546495331778005957395398288158246627320788103665775084843513449136007278720593223567040779003309077944792023150179082389026191426673971806170885675498447286530643008474307646621279339078923651525522668832582480495378443885335319204828881704139042822038678579796495936388265655026925588185851400393995762916967698777039884461070266013757035877121704413665512279443915540621125649058088040728729135583976406223690904905684961329010754915975748674381807914645292299557769846914449576307812913356943869355303285474010282470652089436894855224568561580883802266877246246125637956190057752058207922840622167201656758834228340429601189340095208899887272137516353557466340880101911587266912234549169896865046187772532981634197760568839344615450021797890080359716301287271938954974353029801262797277902817061650772249570897543072212768415760127535588377465791034197289313947684601130287820491299802247502411947943595402419862864611401451481552799741954442173515352527257430849926336020497793911426258065024357769683744233146607321892828142784180310514887549404272692772587990946948091172668303483975595491381060529547815889553872178095787581732732657819763637038223785020863902938355711590083671128873247332381900308286028463418778322981898323193015099727436636699017514901845866169120918137139943878603207935883220579778418472492145164564393822539226963228833317940311689443524966657769213766002719028769083284375711765921944096963583424283778523185834464408329429888013729859225195184851202277730166573190334342905106809277484112524280073343070147815286472670412103521267089324578245492261000491030044369266047297636340212477013041482312680634189906516954375705110977448287486540950257055349769853255777762071379092342214811202725600143373983737460848654699325184059908565041967148410589493024452277809394253808113500662107180906974627966059096518468163199010775595387522719088483893011614654459004400087125219701662211656582992388132928064279798006717606915083604889655724134911093072095859324618467452313839472109854424750945358198187177969423917239736908868903345158419573296737133692810102227690579788973791105985021830275417352597045806441546066117038745462471053893093870859009115283433454238861653263415517763027116497774837319005965953810386221724139872600864022576453712103640608487509638920712996004968924154146787961406166812322919789067158400116006018163981130497241029010716553562777633117179056337328697003220961635200513614154323770728542958606378763403259479648825937502143620406210085723911241914414019741605682702372474062732978908862654683441988038010515304805896750247410409573698370848353117301487107349151757167207235956276373784027071937899902966413975175403847392502596116733432237561477838238720821201524216543590735522519768753937007397710509456796764439676690649045874699657111923481747516162987384998370868530730759805405884462045930498783067175682284690253237041868470575698523459963683193156688517112086868813583428417415909530498395879074421779480106637061651412668293023510093746893572405993436632867443835199413968302875493043960006962369470562999896708561494715114473714978792277265571374548462091268458133341941053440931232481232345006420084754984750578829039243214553094178707252235832198102951746709939039655951475701786465637525576268263035791954008777847411620286364811268533531359257634514299612574112625630688748648346854485021211063568535228106647684615278712867583153195921808819618197903884719708114755703851647695430550402166555024610137002274738977046471170267115667163805784642415544526637588168615391456219012588680905948473900547279705484373899738809202632349545711515291557497495550801787785916184814525404708853557430896949498806948025300641615273956831801683747099514355735333282093025810216596400583488168551164585565105117028283634368780895638293574938957516495077843118683759015026935194403740960963551661211483622052940510765702779410431781027941346202273458295072366686377284706570478209345479561133296135923304677370707580716967305793940521182658945062282823540820681223031113746166131375598311669909361672322539619128762651436085113752799111134279091765787432172011681140401874655786826977535083436548717476344130348319399499614536251712128337922611755422053825828609670283739872407991741114578078231948326281342561540516523601495661293194797180394733115904132191153850518985637132487860940748281059803307276887398782383986509473018466178124867831119624728632726078987775897674608007686594071711028652979524421853360989335435105233843755965442117932831493973793715578647161030003105642516798476135068670542447892007002834337718940107232191531814895792678764327187261539222508117319269293711173787047837748621686275772991974201225693809013460749716339462639739977476859244445339814222616885112264659731988442992114935765104732312008061904126392380576767501008743884193112230585594059601547580387997200365250416515005024193907746265770442982753292582446910517189045037709405974060384661413816074713014025011402505250950510830701840079689234733766437318340767179906735362193641785045427486272138078787045033643304551123700454592535323916417245231355287580420041615452924326890754813303242661122432081995675063219012351858516856867510028576041112581870296033838652939197117893863402394885479049059723777425386350600062785831815618349641685788778349485536174542531496670498422379103645716994844787326761736634875380640700607144492574042551135428681776515206859987855037492263419494944718174648382693634583276842171033919125556033395840885769566237139127706367060219243150361082771958455494468098432208502026732192692741951777899278620085420261465065537412011303475325070725113502381661976613850913623838840417499557940390287569801992736248771321075532436202429214769636499880175302556604007931344104747297824014470365245094627219407190174874995458582842745609585396359890326738773398346192070106218347314980434608148012383658653066778144745505394293878075393849246014595541776040949620284529670343505646592100603275195775746095072944803001802270969707359611529289502278603403640466440628400191239210890962642763125448065068858676783913417242530049534787787034142691419110060429704969809497174015016119454977803025376603151911986944617386617226570844802296319623006292694485379066380028776129596144310711944138306632475199925214613723436068549654689390720922745601716639688291691498090524018222999223971336636956454618642907375535378508408409580497982609720432665006127989927516370493614118472471498475241588014894710912011830262158802989668474447750766880074989994691001482217320633798121465196278266763302007426898213726662265734043678886413647089118195059205745186859497605718208056734971528686200358089202835617799420999563435923456735334363560684824874732122191484419108722415058461874101214287316518372780566873745124591498976306246217759611150601574317888621588934050189169027355786467262241110673462024151143430704923676363374763049765822526618871200430921791494686742275492794123130831281907210794119930641608242172628292027441585774067910649692858989179128128290909376747010157787414332511751932980926772110448679047581281997812863052632405209734196980463709265917595581320043038403394771350073112031296721056848009999044328391383806921831087319144142471113818199141215917926682286856714125856261187130847290731964403355707078194912740185602720606529099983811399248176669321222264937751113130546206880542308571431929765950495952993777904648560670081737541696911282305704624667847168726855832696264888858505285465155467246463219691276262972834453857794358389096562696399736635295196605374103565177983487940263442954108140086873406178414530372221336296504787882080395711196929692459159111980241209288332346310249191376660388647048266025877399932154697257969420038548351028876469870555078946276109719064861772165962823878080152402068908668343838668624449751594090128285599743604314136126842225963894437281807345028252967115895483338178591009278126933428115583457922825620740367280150096495554068022095005989129328027388201591029207901243954431592608789276268184198117490717868190172762971087439226230182824803552638373963187043013966274325831226301298105677706068554683121518821878060505523110626467413548722799212575813573286281310842434554149173212745584053573847293564190143381156553823601520298172013341750983743468738955188408469689915676882433406819497450601778047620070648884727894179915126113865653098861943994358703019622967022307022275656145011622426214234587803369830497066715389078620026277526849104757415537617491504272970478765995836143816108669294070156458995747059898453281631133248107989220919362225301290081827343732652792039532473305153670319973665403968746262201195639919606226950913384121845817083324931963301970542537198630228419179807317522606240761492209866641084078250159098750161206207781875946583376837090131772321186342761848415654313733397382028946484348629459876814157783695520997281734303503931410989545127765765391336757441681034236249700714781265283457816087195630553393262548527868896038580350240115261056277111623046100431947988078980106902368784331008744511069137156390780175497936564051141773156555810626961035014572210939789674559366567676355547394343254830582202700596685431514660947744879762509814679034200030933005568389656598789930541157408279072236713904601943189796827984893352669794999384257690946045776856974857837796234898151051956524169352158825613253339608970813677475185738991828791596549612642713627187459099974860571966658183782319588635296480291854989956051683076809258916048906232204690472577759313329944251374557889444916022829418972252238769957816319641257736512725221056210855363869613418221262582767756215426782829262208418417917291844531583729442358508225833410802938634522909884742653625395203686518814847749929951215997511289218697779057994011900435656547345887129115559085521977243009396104377646247992173549420434140048166004161557281180359523511989058015147163660117365834547198746411339199365036028011487409590874353380756188417878026956305066122726161236479570969604194598953020961801945873377652079015949258146009559799900852092457172434199518913568127495776731202311475693575680875331631538245180618048984706498700519225755977715823133486629114481223339325106906582877872260623827233557971201244228200812729032240211655109243869161255162629770292059649054811266045875148068443714428308627900746995149969089342143206661618690647693310672191375427854264745655084413210782164338640348410884677668546257126609894270297107572255678256655798435931857054647671879478594853526768799198275356458410927614846824364278111400559971856758441246167920505087686877965955997276133530090545964127075139239792703522328828065300820072763429634576692875084750721336901798094156355351232668685949590099020806155077768705015739889208408627638881918816131695275919809437106394141730851548184275355075005789634876292261332685025951517687665642752753015593192159760622092473779496267477279484478212860302550660822076580081463218960075918840759257836582766590659567363552242417139075676114479263722331438016430812166019731355444441326596989453267067211486249478066938022874870905530834148231099758557897936554733002781829945907546097153487932510984094064749974809999061279355777813936552526115700252377566209718424804911995155593560849790648481972365670990462246853882393905973586695965416569503623233421278018506883186697788952603716258717980254334117888501322220430897988086639887611082926693092698893901253430254110596495823918509826835623185362815499147379283798594319252973278255528339302251290641165847437513531299533822174296591138418611896630870215496325181799878299150384771151424819162526437520755492382592311497997767407894193599821982274479157727770145911288937433602425817267236662406510802689708579331532679235279302590879280380006503927462876260695220705329144243039170959944580397340529973807026979102578292156101976493870247816649445282947562969355264645451689027708338919098908480571950662305640182168536941098561482110969006382266619329237725553011958141568957340697394731882031883890015571300961332259049607623008231045538259846734036985367295555458502774053179422091347356171277620282036946664835818393490806704744302750442084648717521475424367959844016495395634557590736960280146378481809351622067427187164583545538099940955137648452351166254493705536609205019818858196357157098784040466447550221235102600449844460118517851257419524552447197518818137585894172103057873966379540880083635744128686828650895893821543121496517428371716924654420457513006638304942405295971356157352859952429886251330659630748253625154525594535720983528748623712538473273606234559740710311534462406961482818401491382363842572134508632850634196452907098753464203065411784166658748830427011933438920826575425537619353968873061251606452658866814179806647887880424049329371268592139003254818025249739566984873178197362375439566348750628366613575323060339524512334839402130389338424008743256231927867458340097377211046753998782996745438615186090636534011676275062888904432524664300915817674228766559902861669385707200348121116484585855282126350151126600264986589395846988125842776546140108061112965745536832611940257293521107733972435601043803246484282922822444195255345118569154477901714855782791971657356808143648361419107286883628351818471427258307677683153635142207096960078761016009667002326239313676708086547247412128707839490594817381937775149985998884156176640677925562082421396095594421396628173700913110642574113090853101758969258369088795160401385153532110673012266842143513551273859826319683354496935727630829632027488269097516059575999850043913012017085285024895565735286033794496806355138384397049287540823932623940516748516539725200124266763460508475839462404096806309338472473199791755082877787756365460114649432640090811470770349867213587851402222392144309737590029196095037043888249416313829427853387571012121111917146337043444364820184791976664691569042062820755034864696585268396427677456249103857028240276785282812189702227987201281174334425650722510824245506256440045365588911122831214465236871971327302902467599926571948643328114301976533573362199123573397973369330450976564538891413911582955719461963915421473884484999899681236982325503837448778638985478486521344497535559415640739662619198200589911187856749038783833051239828806996371192566722662724801097479801556878297087932494262755092763676949482398863582222771568083037110535044451170631259647743325944397871710084751073038821806970189903251618489555701094853052777971275062598542133616023857819620179604994828128340688578770814466533740493584114596193297937795648353472302971612670283925203708924648149728509224748362163300373295886321567907374819018224348653327993591082850106027411160046622549533508759511289576336550239119236456814917667149026785007746908585095090933510721588718649757153497725766734486170350400351166524406964651378300227905773341885312144223431156021256203804246300623241931594845799999507302407391806606919566738283202583975964450246617770146976582023445134201607125016806279074277788426958454360446594394345383921668034288447606535332897369399568005040700334808327790694236641145194348782781930504511003540315961031910016545631743269633163205641018169272509454768005476170553095281815794803030723948085525924927346292951264473784149547342640224456735322418473677443390977450532910174013745390812563979621072676016307915059972121835741284592316780439760367349424220886283275920665596802395267454435174253089892727979893154317215420877268910809178229423002234421741507072540442624948677689189104721183450209894564090521221490319693123996401837303279485602550162190630025734653254182618853146945518768316619089433852374609149366743435378630877288021613854046915568284077657160519816442818758652836679147306398276129005593577945384238947337446585598924665398080582756446275243434682243166915611765264212747228936439255482576552960395089713442801381041505646876784477037071799980211054045146588117488399319822382329683205337214551826360493095981810934763390620072323377124176894439830194080299107712500340674845048463743079696031728644145122523021169115191792911840319583495619720142535656214342825325002237182431171316289809333735537127413596316712594182895871938194511099484154998657040470794787043264152954687528361539420844733937022764117939587913548334467586084817536655175900094049070828287232377200580780761928772640783745679485710327249717643793107904663987494953249563818440913654452388469329652456657359571661436904846533873032839408676855154892058630221977441646774964340930383694528202109574287517776858490256781709185243143382986253907493582438662438605630372226195985813314887124456241896329040048181710538125320125134654657230017107793006870716426682552541633331711095022487218766918039374527664476916422424665717885364258483128819332779565057556867775010224709349662457580934008542026425780343731180350060448392300435938564061691475443350751867736720412469884412401699844056407523735427749496007458876300909127339903348562436557958890098371989729621840546204464294105101134265581526811696590910741726676209015076738511781254686327042477030460741335945049490697979770081037394782814331206528448504486432258155902775504790087624609417131953405722916702235369492301226881858054170342783157078824661870274642293606459491841525426702067452039149956531254049536515472488276898247980296783436214274793548581476115174906045881046403757513696607582841859260330935820988267318388244294531880500574256065132421045094580296293363958936213884547185216320297737498106386214313751170342476788535128473953294841455318202536128452302682859937647437306865638354519714383213440808843702020432613322234828609081565633246539223106345249013436471211253856605114032606477179580397368520295370898465062102436969789556767401631896840497519893992607945498717266798984355087609495002865663687107416705654390972967643544104420727931741415986020161277084885030254063145680881951179366194816606778603011719961250378233395261740460529611316680453626656069905537504832023819931986144914836096902775105815926458619014961895919038984911336901940911702528433706356935292498820462264675876379784076906766312113723434254108926596717234411220699218348129353557132128959430182888195143531417890254964006200491909609136004321273559393012662705329798942340964865463405719470713518501380450819324047049163928339689201961490930056035066247420357120248618155692876583053126416251859603858259052035383049311756530994466179266693233260952893646532570695706277815880282405808597766029528995355455419889746170869693644654714448041033603771137110844448318621843552300697384665294616396901751348496322972092735477223464963142668112711768955231373670782362353584510434242225228520814736885446710247113166734200411231956380107170184926483993697575664674011410325107486726742186379340792737152949157016067126216781055400049506305781962965702734105849778539358638980466477467158929570600073218110384021918831059245102670497519410154791640329472171856084508769260116884867883161240299158466535418036038725965121940884386705975015617945168472601460541580988419795119647033804990328648460552748971724931256024680423092493999034668816481898755600193868181870574313356783158902747537678460731118879597404028344415589146049978207660865462166714070012139739503300166922832541962778906388738174143606243535585428908482993430278503397577875511427945086279965872083663197450882144545463528823670501595268901625827283262704878542542632178183829674684799388705479621611717587371876910590207301009186974693524931991757964770533822860077956278524393646132326876274481810598451022443322504079838339761031054286469321197716199378362147087291854217475886821821081891509751948862508483652690386000685422828808617557076354028505086717900604976056469175043180935242293493808109598664115752355017917736651982655556253715739562023299031301616778311158597359578763461013242432581297100839802985739988824924608285503172832817829211064159912913086668475506580692289068166737546737148347258788711532508468532550314334502844915659205317995113984853260458792085854476448956117482899458202805890141663568377328089597510052142520527708424816677405309213937632906219990213832692020670653494885504187270680239654407290642168386342318545078985886604232697205106339529110359405558975364963444739941134414444968901929972138276047713078612434630268377961328742536919919647277189483804777501940055814614979405655389464316533806682709253769890468753350700404644968883864757293674372692685479000007195869768808105178204021049920944270769782747904069831790390555638361684793771120982067335137585682632602664939003272013684055131261159917718839723525933789770583443412018420526933176760442773981956292635230290783203977832516787875534361520229854760421128237620323347765952832679135289875294051747661279752564541018844949137773637977087771077541065555900695776102891637670024194322564912029946097294962028796898814130080741102742403351668561274781160172196364340729073800780383225817625423614074016011392770784641341113901325637483682403870601280090964273789233079594817368177212125780839575766172414773323287332340314888828633605084687322521391587939132782405849970725667968950921622252857356002482404137532973436906888170787310251787423884399314248040833364852255593738258740167039722284545182463380211595889562511630074072543429682132553063619733953613292527646351895920871710800030898208734485324887237768055774190909186940344979730099204820104208176832656683669650171161549812391551609043184281773326641736380867777373902974992457633967774857241371458405134050562291279271180408647505206969260794501560128033954096529320542958090613997237539046407833258756994743392552920913871415200774815806191648425639285684882782907232620967977093005627301650771237335210474295292865788305885746522569634896220672422031885229443580247234077295735294725461406638609260192118419985964343436631359687347649605304050791892737338585596967754941328313665667112665090873820103668491465256795785935945045560447618189242097918749851458364719617913790747336746036309676360815135817336531861497063114819813355895096410836389097839836071967109663856056050400490381867598779879383385774338414544296609093337465166176112789609541044839802065334868717909669157724398244692699098455858100857453577981309976268652804376517412125200285498894848329100305827981861673408342490238494860065388772469244980720099718222521586763638038896919416762923868565421222188570056335100317885981946254792807295534194270960334879274804532530123584070358585099383106948868498082263145610687030146583199737646471647434073548830207166919410433755435448645987160795570167632199668104866349949726002536404252277735751512530945690260927767488626878442111646900742052938781946068518089579232877007704909907523991625577019929178375280710834761152767359203964724434759984251784920924316494789233889001416884578350773266384052402748394593080973289727637871220756618301429745438304167794632760425215645026882668403772048757994597704502146933727656874429443701255647898802714154813353434117228574279210151557197297893900756905775959205374144749143912738647820197443941525145089729064360997095221802207587439419459256511957662538388759384270596235689507114159434139418452252271384891163567095978407539937630769696219533294078358181854787553279384809721364173960454789991376214674359914165773358729575865552838934084190282687388981305419896513973492345112049105628407446395104603537571618047317309645549841504453468399058938471145911235804101977839520208940523882615655684716549926315280607469638250761740268057812584031183107316426461498431205289654611589964016418867489670337015417434346410817175821167278219687291021555398875792736670478841886510638534846305224197652152595601472394328393755601214973562061277444468689171144970657250668105061837629542318831777065158102596511258851590658813726333630387753839804751840933374073215450710835569123281484959772209877641691516156347794808519802599801782352563432107429474669054063964762955006244763700344398649574520618622489418571115988230761495263359498561787150069021308299515746487210592576592020737205290367536178532888469626718566552672632573375730042314253308083847776862651416619354843450380865541005492030113058630013424459663906730165878305183666097151371424289047197650056051661117314245851459602713388570243064845695572568576338188823730037176791058761329357268650738987638613776056550278837345895403610693591010262721121990163440935378347669304710004567138779317361854654780710838235483223702945388864879949131593070133783535770463467165729606057696250671873044244888370634139551645785347958498749326348614815410812765511245398958027507571452865474524576723393727603290163245467893910042477854444295872276220164216796196537878659263347898499328922846280509685008105693284463670491113903209349188725679035608649400887020673608740715820067080624083930329271935190755779804786288193855445926046139885827851162625655677078884496460956300668326560026583614485592061140330271275002001844043194033940878680727142740977889862318405623017074021802753695070489674535485044664361270090738057425473068777736299893984822230911728366426104379331688427272599295269642237257966168292462835354394355687661506502250683793344836018548217764716969770237989340711855455167925354109482574070952631547891602304227130406341787526834547174981168624249084858651501539553779365817892217469879805580097759674127300412046510791339535124025637362187557002674663754897994335281617108926359640909361222872876386089628383974520701606276415076373238948555767859905408515726654911413380579215189510478216490298164909858071836888594217355275332710203678387506300814600216158895952674642888363600296962784912034967730482398715148622447301164556692700167562633126949428912235042485562816705240199659041753365893096741767582895237773811912821893766587256962496827493504285996079058217982300421141607696326974509114974489165883675500410462195947552017813813094434387719801210116123690239430738923531727539673227822568845820258427423833896036076843010729641116802456646649037527765599665829106930396630298464302545172948318042027873909434010498013389920226653433826835673376942307489963842076766647510158243957372634545091342060962824951754990907019492100815589774703548877482473755207256513551066111444987830984182827392181143571200411720468626723630969313294060373871354670946172778873051335462595965836592062967336618774199880112007562640007461925031015286754160209603008584990265964194101315259265204016670556641326935095487433986446309071549912718982369638486427702501231562269838123023722146834065536072750551698443724132274181185329586082775157556972580960808318213221093390490175337441420829363788649707069359229342559637044178995376001475439338724550717150868625256505249920898855679879568372846568009717995780380390962693748792067703868976032378012498572457322141015239646577186953008553160694070890802940004848183540712479538502657626496162857936432177761177086103837565660498782517534283204514765164614875266635341033873049615058629891682808204065650711938505282782128937639392698798345027544816091517388007032556056462359835750833825047946750721877799134502952530143744096445811874773917323095643984420371245340791009985793366052218342754843425076165097870917138986823516590960172879944076032587816340459981729582225509271296897193395392792069172281059402936792439686624783791442808573796746130209372956861104226460017919408446908171485451407183123506312966113727467065941283742470379259272828872385255871718227726314066350958774418414305476379431731713657778264724155596280782061428429650983802177842836304502592028354009939008594655446608512062358711003920850751286824868979275790579915466813677207066411332865998061894211369272556275776051792222734914000568411076866610520237813757550346216232035923859544409050144323780872975594737164378947942482428553438185863510979920762578497572970216343113438030057027839638699770599229697724747384379756305590497249508039582597495360604475078727219930051018498380513138623019896355299623264587621454257262617261336452800400811930581487561963288270731856979319747017802955063937804303232038443690505052769980657897995146342755528381201459513349930432175587753292213505003806649220299972438854165125926967681394024947541126023178952696446942380659365686700807544378677822612797368409585835567379873969559962559026781441645355563386787379498381556647007687223865985937414348503389648031813013997382248845965527387804897928184793249486562454703618663158158892516147816320203085261992995764372577170940280845211456352892465656590309120223270166289296928693386661587328420130236512604820024821613894207793895743972993518104306765328538743068133158883990293412774026050868446033948397506333105616339982221439814060153575407522788012267733269325342464400590817966379191564756912107997200074112191378648137371827852503468612968793328793969433166160597695982143186765442790081627072081184002341137477402425403451749769679698748452472207516096193816665119412606637969063533212823088460115394519366326820183143684035498974986345873360995478637790487820499730325551752127258407702938649808513808321579495091017398257549672504576113651264038424500062015554789379386243303524652962657322284844149596053566225797657403306640668605604747361426008920005539806922881625170173752677649955172022643373949723536696473253741321305890922299806136888941580725484606378536206325817417344458971083391909437832423047374203711508677449851902801153778420375777561079807684702249374357466760306794216274161483712868266843978809172833732251170476591306578856427375077881214583975686965175543124652960558322771641785341271921628546049441451613705935660975766453363084212622075877488372168220584570246823279076589499610078743087903341616457500608479092417649741447324753888068652770219149910140863543361640862613118398978979039159194273714489925626333012841399166792015324697235583049027182772453255967612101216510539682602488956564445545383700604879837415761761731952043553320200892373015086020018785308714613745025337254642185915366952320011885038298959852297985191934604061105151435842901832585755428603989599655943184857812008388943224381037635623178047318158128783147432561159437909862609908905786207578732583954685299491304730206444106008079064946536350318145171212719031215397338128469705994064388105595310295186196564480033305809635934820797137763211204761455212823623771778157777551348304964628225891424140689123263296745177543273877645607310959081850477685995603850443989632193471117216870613196191744493324549646030594051230928622822056019149822294903880940349042036507078543821317077972406081853749005452106383305846883960776138735325135684721888435777285748681138193589888219828439055050130782880484793669514573756474625596399616274701448466742110016567221292594912731773719104526200450028545224481306738114182807882434940962194104165365441115763209931903445765482593857833112692650771280895296930699429096197460432802736865223225176328921527671997486974226991680153523981023533005187618856334465993447997455347257530826612048289733706340866220656034686211257683355737432382181881508967395437172859714129746002653666445151059193908480229307358256311666501670558512079512236244159764328325492170668440734196409238147381004218378866880042962251466958549577495200480209895859852923290377165121137722946435786749471537534660905724347664872660245880644478124207686726704266357802517544562124122729665914113324997463826455742736019484362110515592175927307107393853497269181856616730620837404816429288253656313503897426763895884074601326181839744890401643381420283374325481026237830273178322450225003996092309863185814284085210751366132328018230283431908991887629146083342759657763792072968763954469516630038090640479242562237356434550888151410809749223954329337251113225254120294652282072185350594312847011315708583524883825432216705506525448356034833701066513532896876929457910964392568927109431438655523349961859383162785060829932942677985635523781533388742065627393911098240194336806677294484430379387672728505682525151596116068154251555934160276633863231415743160200247570277832440147960925205748057033104632712696243782500645967272350253351572856979102169381822302928327542796013618157791465888599819457725230249724341165914229468570333945283149394594771055230315444724814036629563488594048036858257301318429091775742238344405338519191803901587079082165640327204265330678277335826596238569045950772230905301970854970013652455369020472319673658062217095451011032107576312059370450651982632283112696909851936495642542330698885445133815896699641891559308266752229385042404046290143902664624049511593226083972206839333182645760637504190088500782498150902459259379086678203632310153615320308684344859878321306851902813098431610841152291674914762369489260341423341336502998789286218170302847079595817420073652912255288277951810263008631978370749092454185337452370066300417839202010923701621452265031208751724092206468023298839919157000955915157046040858241775804628794605016627719535344621284469424854616375384105261050179505570924004035692225778887717683124097023737012751612063286667524767727732644580453043799622316722738806667379616622277881692312700099651752495173968258592378948865302309200704816184826067740554720746443207042854485244604816033065876365455274973532375910191339117030386929778020154475981602608378075709422135980048017666850496303297060332867207929472885895689093118269594683834899786973408362516698300850372531654316425343772617181315359960290494642162499964676119598085306490925051857070219791786140158297892537821873348815677719905126862558162796239064557119641640785968172952882087999981668331358864798649367104993637889080856861692286197993014497070553127957129709078468092897627107633743892530537615208323933528544019894340614782070139517189346351732682786913556611491345905533973541397005224300608860463742831789581481728378187753707968894802020072752466563974088365769310867247731590563669719964259128815665344226425297566925602507713110663099653011447244575357998989480284780882928768402440179021756256007300103444245564683344323001105084690066368491748106903588683269209600850066354768940101040297473536073471108191439954089753160074986893044968430992703482840129263493162684756533613019206292511669050256504062554738422649996066943617946840386379036213899987527614669473999442557943187032597636909941408097987768503079760952323446817487939610048744667257950535715320506395046367941144990847927581287469574901347741120816823912337366068420046866671886974177620902253851008979900626786723462670738361646934352802817925637212562098705543717312074276893277388957677469328769895407132158143018307809871345334670768229355876259509416817485821508402891806851254955330727630966928159829609583683277790478328281126609501244768773817572283926753405863672679759420647340570489113475617469322684603120111767187408577780384440382636102210323972603472492331676377725571575129941191625283894667089520149543700896615031451144522357764331799649598982666373238499910747662431265590392212445194973511322389443675219137156622512758626969627890042751413961458322926459854282301776902780850982207468776494760088996074068924901947949177525617350507478819486395598248011500142109508812307293852789756762429865130044114095192942205017565412735175879461677849585552944836217669203041323219870769069168735733608759131715441554174340595760122091473414635103411397879717465054727954349107364503995287467702717539405335249775344546372056056248931926100726434871361869461164393599128725551890088152736180786782406730483748775932826872018704433367144970454299469483888480414977645250423340482089152162445452707648169008724442739510630675752021121560291919040884896952218655405090666370606990132172405185108220180828260516592223082373048623110424461411273901637855041084398864873955891824366471011565453698326963548970027718474462602011042856010560724975861253580047900866857572469680243145965435856948779129300503988266993743094557864350742583182066559180881964229811345824227839782506821827729943295581450034384389849140511164449662602493631037490013228186874558929092617357566757663138510278128350230153886761113321909715144785440076743452159133229255744397995556438474910484968988843975088176308706620848364848675064274109710416414032478571236537903532357817072018558404314333393796044993634356661567845185320046243896482842635983599372079373404764857886890374686225625149615578374791450279249400707492421444187921280297258106568362715334626204601594258314916478620127946281640940706003532191150574271925432476744783216490837840194658350409700638480986774220572015227651027548720393087011140557867043530425553756206959345596244486776228068025842724527667579555930549205947199988579125754897325455230219930438917321110689432765698793272490733766138822823941744676637329356138052121945180694435177582409106343738794882464091773342159874860597366535212977068891354322023945560333114626455489022177260012160948050590229891535781366061951379938943349962261170804699658233293693222592643730196648820905228761432604325995406813061478291035101169026998145339157167539808118557247527712419322789623578549604658064044589422741883301924902139176535098622574614609031639798002630055710516590206599157159295304736399928391486626189242384560893033713854301569408073297964894955632226772503608974648384665426966432735411133607803498889818867503664954413904574047911777324967600726424728925931042171352357141322437209009850086361777801579320916457569737439446418412179614433944233975687328469316701247871354778151117978263458223430446643352474742655934011881846983010779390529420204170216816929544238041888221029779903208586143577301423187672835736220371734975224656711337273221549542305132396039175095991520560136103837779879521308042483861565641678819530104738426728401321681837160549821879270857218473450958891834518945960655710596781846750198250119197792451798630183328566730189252793908046171141026328017031907178788318116830216984535154235160638184309727988133067958041504705980716925698857132487923704222575142978162582520189875371811840237504653938304374387947078734934835638536058355080291037906971027032758005712458352641395857264596768335527350622245322253216750138160061464287033950094826046862206678373156999633650262903482072652270471907681645254228477237121415912417717941424764302961791555549092078801182611419637373622614455772306235652540961091324156863284375602814067250874853286451083198844738370560514799628583921402545347620696042403866438937902434324031331339549747068334251281608279250022863500768250378108776984163475713079457646480001900014530095823024271685534884346885292163582387652244929124768017345469809940321765613078125061079607212794726546549993358103022062270963442261896388908144416863363245074391998240076889925768759332496972334749109571052715797954882797719214864438928071654743506358234077340940550132823265404530976013025666931028989202304562313233699318623047871822989106172949230123514107790333740651742221782741944031596414797115476706106759091683859794522191061116396457079042640478416185774833446577905404329464072554913033651474978110593604602143033541011476906513691877944911317893960270632117062180896346056021859506497835557883600048507182542394114974050915369193671111721460045733827704967413857008951877536593141193710713553711818951846616643366064754958048409917654555432924619837867422313903369331713927896684501076502476310999445698324458512015550032161807868785828971714570910429919062736823866017549453636862068706941070134251191288567655218454827394407693071139752671647713080898377279482804855063729563101029744573066118923561334528499698329358198103645860567370462337313573207424618291637728889523177320397049026575443773153738437996221123370215508942560967327505884991801450553538507075343911677354890933093509032475652106856778516534318575106875245068519112876219559322736164570824206147170446710226475077695138240344244625632867571749306692792581501889455937192917638581654836640326371540726303037627796587726763834434259660342501054428995213402438241674360430580571602180513264866227470067203272710133485789935613206742354882599957327133651005526516067192278600925596066968519325686932571491904716493328795772551051652367455458669762883043271837852869065513786445939721130431063116840648482957169966839475219977174635261928971848887392117607635746656737644359945282301875678121517262743125694155876695438001441816244478226350089085756904549207251154900646201966602267492977873148863017324901068663664031590523024458774349788246871361423992618685386173550490051974256730922288400777943951618290664346294296582464746229705590189965129098995917547864707340948291587554411739914866355319630324101223136348696341552913957605770723786632568588069060994586683250391489128250711186454240943664274147084320090401417125247189906591312704120206490415306480750189194341969592653873611398120543339401386766244394503313156177957743394844577558901933154550642294884438475759308050741461629177727905321140042098136399456474662184089874237323907068483435694786188200946996184154953531288065006197334284442124012806048718561894208142532409272917724776884578509154606465984689331320884212851634390746124397567706241026451766241064165666163884032698023954792083856192631540504121674866052745128845984596832899845246486422763292035417185106009392768292253253465470235203645468925013736801502486673844281816848443483293420909476360085763671890552155060390382564228134248456421568560116437402284272937017056494755959681629953357388363161168100118097814155657103897040609767906397096488577076645443732110545316115846316043570498548029822759805126203913724998627473724538091254993787164110238284014763826159018811111608294957054564713136091575962410049561276727209465089567160832699104350184962731440771068089095157616728083510956665724108611099959480053508215843019653581532358862955402687320465639052802241995949954194837801623654144493079992199450473075411601369760194964338071429485362262025887662600538052967809797464932694766082306271450530394043760535792337840108348687712828038562963789945385932840860526622785054189925852546703655014426722030661214827450490003637584762125443853610689599744507290019418379443038047469908751534452730982211996875232549160137408848335688297407165145390986770626030661251639128757787798546327987105628601188717491563279304975388390116509960122611485885598054945484517015282523973953046672251569091825541212903269620964125096080052742494800898666521138656436248995602176783088413340867044428427537922140698062401691094720767719736185248616615551453048799289095776800297336438340783192682519363766004405074943179408337185733276726065528445623331980006903625684226884363872020076560984188939919548591970679627716325955236586008701592686637970074302791420165506600698507213653966198522143061418833046987527629652370963072111134409583658096855741712158112483393334937441544595217039776458072388717589270513254778767787540879603773697981025418984923562644147910008113405181122108836250998748994603593336790480526618256145367672250743798393315367696946795510964270832304858166236003552288954014216053234906902888053055000034089179520307528941372030945380939273974436995258311683378218576887246193626991614355578626755265868747194451154096112183601403418308926940707479588134738288482744109455319437531505812663018317963792747597755775006134041368250069958887539114152448288542159162116931156538107797117242352523591480444864166943265370943724644881774923835678209090777337930901562159314498890397806199816051525190585718792010470453454129575364211259184293844288920734273720491068520306047246099490853034778470059351273627153294192945387681693124616884919005007166712131978873420453360450276043345911089605168989582072748210814720923976247768191187443940264940482115963908223957835367285521042894999196173493519384522602533693775926959345283077308271802124287126269492694358115465940538210444349475931498836427058045246501214735507254713985015429975186596730097467289309619337167223645053954148053553438267624990487072258815780259872554108702087627313765479871489368446743572779320725000822888151867017862832273638239966021946492330482895985304541819690369464892604177438010381438292328119042912865206818758537149374444548889247552439240494109661543791717323297058722992691118707237718737229272357681036233987301289194769806271820978250622449627374513752464816933940076416078745495972074419942244246358811513233008622484170655960096873889725777114576446421888524683801123221216591284772104688437501923215307613873171099502182564711467051158217467579535164688292275906379547508650650106908529083046243438851441424524637290808434784880427697845789461888354482125547639834992016976777318630205363047970908065326692530162299648495018635738906353493070835322592049513766522070177489926326529006832087135516843240846809911268840413589833747767496346210425252259421422448165633713548929094467591069562445730051251214202575228966630091977907226801609818086177629761484572216837848691509663214903935551569516477146862291641214628935185620549087593613480122057192843342901360718275028371444525699632503179361982284702347603962452897737811890578995589586535565717039510285750608137299923279557570755653918005411535606222295714702281091456257045460278869969262824511970986366629097745938483608122038078400665205795878499613216245770969812671220049936779655899498665332473816925685155961011081758230413501888542975797175594764067561859438428919111375841321133911916390756179006689779698547291357391107436835185997864132133354953827258423448992550269215328711803519964642329472677272902715220282977975071462677316943467900902763039640211177758810929735463348523681923478625346492845480327776246785156180944429094421966629262664270560374559973793049574658435179103674827103364915221291672750706651481938823823015017186446395304945308787787448329923404788501546931203428324762086028722257653516553775313550012419507407626656926907251184927799490972881832169910362464465695827853318852111670250254752216810671970097189935966945240598680888085219975553656521897728465421517587314902597432271641172640577442646913943286816576486423562639040950364920699444656437675400839489564554895333651765939242077458034148288698923250236185164716085966760981492944649818130858099230466910425515631947218656729191702682867030526544953294312924414137688894253423407393829924153750800706170983920307890086247533231465285613543884420879259277423459812582021275077877078455459712020388697544458341664482043510298623860599883238243218663463326792132689332135317506962159675135355919684666508403859893587171302804578458690230849733823252981414162861993531075353304300651145937138037778831839201946820554850567971914310478554628345901850948964650858105745852635140404775688745624434622396522580856964431759500027502258897564953117570848162307100759223812679517309735764501339271109919899096408864593775386437098224133463017282453203293649544707247149568706154890020139362924892644641676503586259271490953428174260708093345931817813724071957907458164179290329665978904646738563139891189801970336362608939066694518561208954072673823879995132041072887694332837977701073547140114689479419686585063204993975908312641464731780659232983661914061119331836404883193482297316079121304788701086618198135035100441237508103283715477132317555815706666998772632061818186846665583913096885914451763089957637574932819281618574707428574343871060182767863869586603294902129342115776348870291961843653942537910856788033939757985719176569887263150206143428871154781938500774207291832843602253470931655017689082452479724670269578183841593432121799922098991453250070490761179137903365732866871076987604190912646904255907776091380600789937609813311536407704547450686361524333152550993457525621831487051667729846636974007145866360661193778525166182634883779223544506861865791690722467038981448856985313476577332626153693309623756490343529711537702318678785290512423949906411038365859735773311924342298668963511004563738430059667718425372870095571063312472880246208374981295004965206526063381080887064882829530242015672801028001509491656037917734316567476201306391007685773594333727646949356669212879702535386150294224416474794333192812423523223323066302363500153450987201649638888601730562027215405604183589815023015848168983005415387262269193585119503824295964885373263308923438816343489081034412321593724312010149811460623232330996504249266645340939407632827548262391831951902448175023869533740715440625236346589960134757391415100484214461002264626219803394111375691818792701428978555610248188475262082566174931196493369616349276949164230720857271211381536721296050987875664552941405759851887301792977312762540388609303925636403388382180563955466346424667192725246145384596920662967507879534211618499262620801422956558782374965191208572307869576761601451749812454973040004029525026744731532710589506700011846823924914212892401504187595822269295330004705072480338751353817883739176479003827458859692145782556112223794741012786974977558150135647488051407992071754411788680017810102369571763807189190551824678096551785689398522373444751713249835395320080675911587968996828427954753374167480699044266140853043232967041608318864467505816338227729022979856203085757434534716296111107217187934406005822530218729081806542113502499212628690260681336878734998129681636845698192275875891884778233161722069587884155826867016593868603561393749504412846861136522139648834956641840453611379521513959004829200831032332511281781972968929298704628513922079664307082659309814268244767632680348798541712764433022263730899381913403106698371573599228035881719473511906817479218761728537897216941170300387257443912696131658592642221331020993896107058949995305060405716946751168082166533567408123154660015961884503191192758103185056127502496080480766896364647938052730868207862895349327031469750199761876858248013935938821412580618735355824105373811423757259228188646164950522133387543859912768219105724433520847505009686676400478647785987522466661847502992602733923292875786569821560562677345873707342718688907591678250606549803389706535783161222518177151315802182308190260221093726075668633897883307337313086819875484926855114150973993951718972776246007187134889115837486502650991828098605428518246822100947334319609243621157050108190984117416541765590786816743657615620646592588763153859241722280225816661044393422556562254357401365734378749316497223561048028604493340612735364388538905987884286465816138040690051934147381467716678469543535208123217546974312588474892697586194144256226620060932305140889836781640298878810242017674099543087397501689586823270716744314618348943182426528738201430144193915745500852131805593037004207075464665931089843265222846127377927209178359810042692620177756618271872914804757854296823439651524938390662866834584397861871839308978786608777526620309367078889699172859583848441932594952961641351730620919729339577691559669023212349239569034078635587298302343303131893468237158273998515142771919530966784731886017364563012189894846949646313283479222511637678873928668082074721738143549119556537098206933217714327348094106034724924858599283803817204461227881688361811101225771933755947910797883708834278071538769813360677961737843256887137110429413060633912952111502975840786013346807535592185875334502322961823696536810278837788580637085671900979341468352368456364922967492460794404271569145132909460053061730772392373812085361444117633422754880344047676576786158926631437638137312959206175265765305883326111709447620160459003314806523180233374801556591313174742586519445922100472096437570200958936806319935136392252459243799402739688095756579991779394968121989964764758902710349946170246505710933338809461744228774204543306193874790020213276532105680085762690478331201874048236130414138372722104478623738515549284238118455836604623825310525681967757925610440948804608616314335749670831709770845007851731909478896133921695488317516999576555673838159293162416547782658825066582684994086502393558038755343661364265896355333799685445245746722568244413005355676196438965879777212465408875812911431017511113131246576983854734182779655139196541009630535726555894151397130653001065060864482141408800073158824863149261152180796061551395097854824790711939647323503810955013159231855081584910099568466908660660817506814344444233668632349728162219693266220181502649133172883781055992513373131755255950746934201293789347758454423881294432168673346143322209618983632823779808179124263054475524797643644333068920745242725710729064292359619783439265694076965056755424354060276524448776955046037463072571400583366878358609765762978967731364157014725609011602957671326938732637859284168999129071716778704695768939709101134414870628940612809871650223784420077982079691347074089519881922928555760754930201241825074000515250517568449272325003270145743830325206868599347670909517931833246807490361387563897136884726511261852868859098121834781395687178511925544809100733573998789480840507758611612808236009126469986001957196559943801067309451732494509475534328990789741505843432889026243966163501405853551031295080774595416346050035320998441299014361350843207002445096305422135285339354653758532936405412854518358777171493951719348667480980034784033342081424452981043270375134489001729366849951734645965808592469389103048376507247744532198989854439284247928031525356035272583918468064835535439270817386436617100387814694374154929126366085418638519549869806509917542586290517856928395378664143176839445445243593749303921819544555630566703745705426735209622434854034598714529644992690845357319561366531250692375293492955303899187974361908404292427759975182186549038179756980534727790033830818471623011583411716571926832544384094993008568592910692510175190433478993339674209200438575038907662736052160320614925462271373492205696518877091202764091138951864226303965463595586011092993082789799881781086128840681851984106855232496629771887175612701058298126547458901585011495762952760330410861538642915982499252816151740559482201777652676163901373492311287535260409025895890603676836267915663842552747862462121799876916389263434795434304292130884644315487501096716371676105507325058792030171705481380781458185535669553113316730571697062478205382837385261478237115304978140107914795987010968593370678589036720606628448816969775190243188146606589304657083651358739742106732287692755007571057830980746131473643397614144755654355362314743193917028550875921034812567930332035716071102296052554579217164118575995826493536649958666329473782595033541318519433338282992732186225853369006008623224899371122651661616722459194239400696654445775349595572165425129736991394058730165016142844040166429977627165835485746142425441001293268981839620731635871269372968813061098889231729034930036639723098571096514366331015781620443720421566598465815345998505674828517099899910445533110490011596300519699257677527076515450935739089464188503917783245751743106318404742010331373813076281575103903391674945807279326277931112684202310026865952748215566989920119462228092901321470689330727665231055867747462376358257406720377666993294689336471629722810884527605095236450569553750204113305520516867850445173225175504753800766680949459648866431850975618398436228327240809436837937913477051762217114484236282862548137683661658526362983808475092788803954807115766878540251225761349814648317659303750288421690820123790258334074025565075622574815858865225649444882773853033158504173383440930932953770114546927560603376301397069113090445850016055967586959859640506695831352324895657911305251761635573340318965169114930183059431491420298451278080637753668921975974202835010627040877573387444357995010229811070695020963786818433655028192177856548094278841993921319111077355223379411860153778718868667321115700379219042253377504129157732337131517609121550902505196493656365774383919145937251707981840258726299203144151296705787671636302278606374678408724997415236715988236075632502927787687721047065690650384944602766385401655408533918457538252190788371790784994275531825696158911505226484644618301207443449775072206963707845688437988138243592422881597274400563524498227941677550827145164657794868419527983311805173855462727245257674549687062177140981602081378346105298064469792172947168720408200589466434983947654131027869078694445167736384955751096613349707646465008554936537082924471955040715606076850216338268126568404880293979674673157717900304719282081770903534660671080331579705763247680169747646102278696185888593208320538148070961938233225240795310119539962908274127695151467819716799647455942960845972536030920590063671556492226203398209731446503466773661284100358955175538017023516102358103453755447825263048530027747386085852452758376795225206668818815152323411518185512044619678429329349856446391366280102780530462665267746788128512544286779564127003750212516728282089152942969416448319474440757286911412653222613740814238293588656644063294707412347589624640288059858053799055195855166957369971803546914745401906999192873467711963110237228761295216124405806946723245431650016254692997942130962761330102338192633943678881829495821880949282271689328386963736367828043311620009919027871655633568959970538620731886602065622681267525399067736024609151989521654073725848962346852172726977996562658892537226884673259253106480827248901310053610604651054482849323953470755242415778937716787469292974956428297561395963192601285588344798945812728606169371472695250566388645012757714422176489609033569426374159972776036676483416386595577319951518202719941808205979616873599068397784261865594752489708263781517119493223082795746827435498296013097952115366125039032861541785874679156683347618563271885276809686455456496938751020913415274981408775786727912081724007564078275007793945228651211063681726826941800244010030391944821521453479073727544370130996032860044324969699825585154626145116422557759217191506399406240568825020045345576625807058933291263717201592460886671232031986374070357169306203861587618393350256618848374134815781456088384740853569208164578895119541968962833371356700611471146659597782705355696370005632604413740926896072203974474125970739912159774558958287454951045045010490312075265867115795100521964897246779411902585043436398784952812593900407582355704674658177762974166619176202017471976347142572607005506819238270415818622148693233770934524081121645565148440727516117487148472982696547847179185813776766719839706327535036211578518194689255138434077434526824627094434848469184215737933458647835986936397526685024052215834852367105375679190881217336288197358817147369323247505901297641609682271313138176253194239661941770384823230682412088644921715310930018177698691507388566384882871917877479463674765591900497952014827528970942530828023366569125959269213217982951195011346118140772574665195640044564928431513743590625488059570991782174860536278377561222434816231994575807797514957394322148069696421744404710530984449599424476854111297826946420327006331125485568089426344779275190938729589329579771216803062818317985250551653053585468705686843296241448188221380113242227115714280927658428917882495524696947242565972663511909388413766392504965576266140554652178525758989670090261659172857062338520555899027594405656887193973597088000629430935320411680557873278863860601603234642318494124667592007711471335988083573145866959092995175215520871502223664766913805782709679196339269811818427477829148564148579131996619999503807486241636059458231229099653088616304133646216306334633343834733594491590790865943910516472792186833656485430541473495136202731665988124374691665279977551376911953490236139956189269620705887855753791978751609854103826448715446702722508814510046195080434582192272959196613440810825381518577703731493753836049945497283682123789078672882156763455415131515609953990059944446293839027575469669089981555944376575610599463533726907636839342051475143787941097699286121256285507179972752961113061858824218825346988227416276668503098680851415830545673035810779090976968034790896069521864828330243689703591023957818362962110426609182281935867392134833106406223892009274424709014436409862564574454613199407810745912823010809071303776979790113797462556415918679872717562701403638160317678945302172756394132967101253192866729019691824910731469287833502493806293467849221143825688166000947001545985199068957929697195329672742867312066174181964504531733187200278799275456401024435067486040740605874992430375313714626908527652053499721808098162164865117814003136486549332153422137724441432371644126218783100318484692556148041559971996970514796104908406870920392567381600628697066140354515861243229183701985002268196055541238015645690454821479876806174466895450445262318420133552136217551661068751586532412525350734272180656304892942808485635015106711215144711903576709219584282048944937364635507010284877652447316466744425690281524604632525540673058861467654591871139110729382391317399575949234229128786330755459332684738443204974360826855845642316407361911193456552257659194828609034706303074869421972797224547461402111573137556967947510196401753575501712676425255834422844224311917104174099187439332569077107960559128602465917880746658271438636257906584867827837227629899383809777127840976566351199222734210876358373083417282111268772562280376951289391616832703711042442181370055248883338300015115741586260756906084257959253435154917029885186287374023288457979320808499421588503698647970553262916486053196992818155755714134368121115902509451156774274861910932344896225685575975481201865408828652808591572183927121098926740668972464736266962159141242398986392372924249513472005005136305252245958250346425754721832412347630630084830413998725066743498131801391813654772119529498596395706501667367635680816922530231805840048818642555062782993853668749603012740953109702035197629924262713983238487394949652825095215492826560028489208319555596083962985938056842747413658410005487186552740719511339645128287564546155294910377488981452725889980003093700522274931677487325737782008226122179291340423601944452651563128884462650512408723129577957394836446092432011238495381673845642977613481581577584202555420051893917229915892794951808469576240226052228568390850980885544652294724187605132072973763780882253610409600833459423919693932206844481407369823760961220009591822331431509252635406447736650238085791345334322866176517880161564310421283388018239244352441969857631251371898111364912030417331603496098806921171758960694362997065704015616909099306710392044728998659241815081321392951460089590012028120156469846250776210480870118722613285219718048805758756674807015530987807419197794015755553791243845978504863191156979704863135323478122832423341677315568360542260252594231473511812684933516219318532390519397196525312567670432616898924656415545768085033397500184483308797725850363708509782953205293860545371764615898458714819201978741638443192759901874912728727379536878417640573236983671926164300399249741491715325113664195268419383713976321570736559004434784459406673428857450832991878177740836443835054668771685158543326235370692183003342073355609422840327015911838165249293944386742726836802654730856443711271170834609754837806061026633907042807703486379678798756685645483464736654456360430956390606710287840921779195949419553094023228874198408983938423813051830307275557828545932156330010987777218816741222970831660080689673848012363446780141382187049589785276349571847845474601513441592848546027599997638515822640695775681006027860130539954434219410303302416029595879581592301063780813289076558609140038628493628265067102240131153311345945109460967692417061477171147667661537578374016443076144776708273927293166007390012225791444732968554644298957619107307829693377056858486914573836515786293534597498991521340859856334734245691431781498136813936152148102426774394621120880161114240224528686251173230905834520963499342953935347189693560302705077743526746758100218049279681588938364388483070062422481738159529195154421391644458174563914566939695652443773624519379738418531819900844472843919036732222674575055281660205000368687017655302307679155252666255682293996341584776709522205141343146292597300816484441823123785696205958948146464228265298969711929893934391930879972554241761948482216421675768383469504487344198918569939976802110374743375434618532774919462424783994557179282853876075626433948100207516797334535098621264985550377690244404566343042917435769945852055971266227363086132511212563696211814537853499775200696139647093921252678698455617052216219130114191397745333588819483089868321431234219029044646933225240558470812848277358415544336980448248936841568247279185372925690828063412997764194797080887978185238696160889566271711286050228954672165969910389471415022281726314260153465481633351931325649710263723333355269945699024945836635474354523316238329699456306835204528856023993312360857602276382794979277339301576235051208924814372995249156731158563597718508730651833837802213020333547663137438779277779404492295209745473483031881292870247733380794972215787236733040959083998512510249518116866152090820731537537180956067411154683989357598795062716179435328985326477773509085506436734147813802777721179109322579474578809176699395444450432553165330298246064763793834116517773254804315742224369625350652238737425086961610045833198126997904228310387570303228963984770528896564613231595941917165357212583107191855819812035155128205659736525632684615146465371872244141353996739108759433065776810282812255819742374117620484130634166932488520402023404156660362616426091210075420470370352083203485104693239071319461418601596898608192055070765619144840482015850052375432215972276267465528588469749871127932711274226805319127468588035164293333946681378890256735494190109301439989232565328919713267217811980427608895448389189456587027670509524471973073184790900259488482885800988887783225012716374501843641201185844287569872742100040616406060468462378692714028663325654650540113475642940762698955628096948084248621440509204322889416579800552079054036208994168150359829967783948335658043387534103670031253076283924606157369960160337922762064905496110562999905456686229917331409695234733309147404052737159653605815827355832362837319062141099665412932576244475966891402058926155417583609432173035047439631283672220155422793128946889973007719461618829102818661030230517428000586387046832950629305983361802039747798049076117120240670334918495103491806727137710671974056732563581542084724083101526894890643438637427357970413469787693492176896952663601034217623924313030971129783444055083867195387799829460726513964546007039794674021254066646644842346651208947057386004772112630599546977676118661822409493806045883737858749723876814467390586095024868680075101993420262686652310661746976297051973500193832303736083730965421237504446262110705336119816557116628643762385557449194823084512632761671929534545864405480093755395349690246091494735717662471008130803977921578030300110342579513668637296207396846249603751725447165052675202552502601680140070559492954964416322378778923712977191953986646741131409174647969878377766109596889506544985806343940876734127122245547131119787073989197809179234399790577726357593433429105245828631047555461337320950968822138201030717416935883734731902122741235642917198270911064707880006855142040560392908991938530506751843447102679760268289280807710461260838283887065925233397149119782191110628220471534770251639471528815656632412925369091472879091067374195986533223590523564274411984040332495275025406244671567421419290759111924739686444297371519219572807908105618493761517721744487165828594779567184017505830419068865755090496387027359937431282332944370127043276725330149678262666917095545863791150833394469919651747953511291489413642329325759270439845969165988875427460753334493208192389739638512728928973025423703489614690702503637596533874333840392041108348402078316283112728022249191183810672731294034936378637020296460305852571478937276096787880724486125251496818383485645621723850196832219300548577034934265183031548550178831617555982060480513070470713130466846402622628716544271692980474252783314942197846846579158974880731866120822617018617697424653000115966002745619220332895460851025950599508724600640547340795201687595479616281679278190880927407606420521428097886975094309873893816301495833574295410914853778080803584424646174257596985075006757091104892317100044260809344289080761312658161470070974114089528930518380780684100872146553812159249748176297364954138630633671399592592689467315370067512090923524913558594637855953484445532821268807905051201424358135088718889733551500089144898884718367632413803699165722249978292370377300532097632776101118839064404304324800919571977122753237553615032480433872231724175622374748068338733849302824427942541527470111706646120972886077074418404019986156282305216517731705328452374019533093217563483876811485847429948919117943891164085550742150997186671768822155043984655166914533693343874181239595601189781710147266048300282140146473596024988820520010119338120131026250224450457298931437719656603132255293108462099244362618654361897924312653526981759308820840540974045265754922909855611441329830340070069468624002569355241413132181747330451574608525242396754647711902896013195518507275764001262120181020887485555693951645337587257159682461368933345893983665293100420634393344333261830599267467486199111302829008681198746120190071636013442853179269023467417606641562653627836197207994667543953487201412213169078673725623676380830234297665359636212733624491801616388420365568745003394457704494925494252200851656648679910715665727516099654169501881180796864902232936193372067591817131492179413013867877207730736269303928157138499417557519200869768108012284943148537779909032019608650209683281133217257984720258332045771201581094989653217178026799358940637402145591214550054843221026073931978846235333519971314302537579385857643904827379366793284077828700333670540279918890704948591481214325360105272132443350621810158128108487106962408150913390582428299708384553365439060064426088580346163862569101219138262054237572978827894581603815993493633374111298119227932648321002482219369846398160828160893575228195373503023265875975872024721521278109365610512920831046867378280812534253539710408061536492417944975343912646934431647496981414049815301148965618409239072597401103690130182292892139612929802104745539713953683635686078649305309235036852807029080990480927859602939143421111000510805086222370159512950946936389343309569209782945397545343676295920569135438593768390003406312796199366310430937578142624330469444447271883260494727611177529454291050364894162087434041833534195088459198719823714550991140636114432124375176496425783473349915807676531244120673497759905705306538265091155924405555544239705112918848881889615081897648839704100061827311673619902614020135534385706184768534048397654102569871250868614265446906643039597796201825943516524424267950510627084600524546289796914691873553981425608489028444212591723698636043190148874918932126462280290910809539312391542823304410930547431199429186137130583496454700550149324904489276285471621262000386155370801664438912989445927655010468096255480303641363656497535617356771666812357004136256733994399844243217606109484287022948083719330906330661970528122554410244308464358527032155358026573603814965500024077187153045394606389177564426196779006220225274301132183811913133547171852503984794764547181016571145212556663747477066543165899018539933016999787276576052818706943714674388712116433560531331451490507871711069445342756213899521068906501446944139051863615645698429643122839747260316347118688434472072842499252980984111608513439657285379573463626397488982851033977489914017445528441011671289754565827095489626183958901596701501033512380441719000598907494071664950285166984718626747062710781299628949409632172603717764586524994730550843609618617675479640868664800958102170444862687804443604432195581492206332462405806047647764182796372840526870650422463511217409180653519441348033951766336628969681551465891825683082197272736699138826163512919234747628205316118229018466449325917117867859911085077239797276692490138661652341301663165825902981104200079040642234353977915980931387453089183142606495685739938269624453676825853066897071758481438882173297285942587806813059305384670029421815879776469227762220820890460425875735554645309737474411483903716633462808712050567217741585137463321082649028699409081847887084200181769023634444283380327521104680497523785340629845766995983683185972036882260906390865546134337535130095039358121681067544550080707098643431413480904969825728535487625151891900795946197830130640320450495636633094605486520877823206356089738881145211599115100817767968822587225640074384901158184582220079204084480882051777213129983162426765482471678503243101791205789880762637114506615970526477822825924303284091828416320063235735663237303652254647027505280212833508601914818847138196482713247579393236632884235005887515250785993671785113274283408375400020699628683499928585133507970134570761968266479379466180967478332857977081120862163445218574363907560847003438132775400061606729287132927227214105491190242784853198313094647174504406790305378957699077368577007040075279934655474253948569150197134515206732293705827199631200071974998347249562628909360458887756298445077091399727148426708128694246307686811229625709784594845986936850302598104663398272570341247459473955548871334273731343367594205193091183154653077476107509575790853348116837185023832735355049738914785305755857488689637943001301144257108320853689852698571307295468094860169288867075582253597227794791631467850415426551601830772392418166102949476198737899458205001462278941184245558833656543177553975050933077827741691966300398840336658521188053673762954293431878769246936554537868608163544267870968375504403533697612042606811621057401368358956015826526214459127736864103686198610344810032697485689789482120202091433306248787516952327724604404354521406136907691240462633947795445490783193263907650018891298976514250644811667950566444073843346677293425709047541690777105613594477578459320252351115680072388403725871503641644714762604930852935779784792630155603281538557893410686538889438567734234401586822585938258277600907550640764512295834543987159764093501254758480755762922850253188647935292721765744563414719747107946866675599319593174638640332150714520334535881474836066508822518509685815811300873581056001031876407967129205991391015239524632489806787839263357266283218948686568693217088544364210973846740738513295346027018271039056031525227833269579069258533180678093103325041218362314494834015055100202549635509096970140756210193965684439417645819096244712568825521666650649732377083687435578408438063827359136578221150611297059098660274009429765307042506385836376520981110960959716651450305999564112846993200578439121261715088663373253700746067401015792410726210813735063436069821346227582668414511885202404537185801931441443088788485034851328845070082376455864065831230796763252761674409569786034857581451702560790488310812355900724158294613379845944025598825444102341437926665337921435371234453358014179679742460795566214028540368350065211776928601933258161361093709954315732089672772135236533827031277300155184668730155863100502592048931890054237502457172512513892552445155953807423592218927389995468587343398785550842867246401171003703556559091107723843232640565920653480255424304299124074077913405306735958866937004844390386563908026684911930409714003476342509856908706063995830149816896637464267696496026291687190953064768553716611483667480159864693090977907585587848522957970163423598416156123368032004986541580653184714099555394317647727315818336552130125706434895215921128996647671794799374184439102043900814387489069323066643279457422588904019093934858232133799150349660475385143154259265860059599539720918661490365897773615528513908840792714290154173251024493025273979714685680420038637175261006385852022579316464153195791973884893409263065501710889124130069024017685005378021315051650144860658667083585915764833726862767443297306842566235482909581327026309878098981218486205978410412140566032231311525101492854782547062276445672737589981275741608782361780033917818806254228857078183144709668582815388215757092718174750385907864007289977144411056696535788950847308952861765089725324152798501341840100275523812827812508683242023257315685821117267843942652883718677588565378757541523701422771309817771601460490527391662670014040179925152657121044886487687799360832703084610764955661709818679941037737003859446254377471707028484753795630493135414874277962049389075392894755768000930652085639402262813609708746514371858820141720544847352857389541641956046272652139303222304926569958317461240026873963151219287113557697944105530301409020551673352101787783139615182478385023901188887125697155720914742784347344023012941935331329535355481017216920531834955586278400929622119590370547192136450176463665123032258306816883986950625504179158703048648674853358096478356811709182394771808156026764038025635633735778762994541296956344091210125319821010410531972577725417698958551131099956108968905572222638386477335077347464149204350285323970596449587351750122533090205145889337057741514840599617726041487294678452588765014413607960277217829002172515581258162745614718292841594364465789636102315672180685587075329490460507557345650471886544097711050091517304283864501706700782494598069355550819919410089961884782172454712154804693533147988208964553561239428661928950973720708078784693233811761933802546551602681892679497620283671253969246609729143600884230475157337245063699194411986343120197722646854577077764106104247487429904645916760158260166769595110518824931987767478657009242927413164625602118528602952549619029209850407484646645480671606585883759863520801406984292283172701132745083533791091743762913890601508131022730110356496101565108571100149933938608298249455078506259318186946075765882775753215040000730175070485607156275579777119738926114315454330880063356982273641360115555896782034661242342579723255641743519125808489063097199454472172645347029507736140816163314737406877385709263255060508233546659709960995943268937062813573006075810274869238548247645981202035625477741013254562698815269389026283846472136189245390115316113999713065093144330463486151948902998207837776603928879398760831612809285089688002474834297678530581354962359352141434455555245989379355546572819323685312580825675384430512773732576857269057090382418121097632574947049869688841086948913803614998435933792745826939453520192809167401787983719037835350972370675098291220946954502692534227168373982745738243631602108502224955837517978261731218068599268949243379733572346905886432298272703040926186379970541235959834523111660534791489030291541711972457156329030809306892861279301233226673643880642631848704230186462754446832086284307508527730994752563840470974412287965904455654258486385013212463164216174270446976389668882766466640973011922813177555454213040407858819407424190791845611365235543887193734463065751298959430639365757117641362233117231514242416665367782303413483735940172111241449175749362514803803709456738492880799207694429326632613103819727398826568767195427674117050381024759209145757496450095823013028996791621577719599508627308264153054180852775137335634175483189136535340367457652371289041045542300212444289282713301667572938534340177410871713447180660330899427719185659141976586148159592166714461416435595421410183067326943915425215788801405049776202285228957209041095105790245194767237637879767735104883704726305441181932272855512201276960586669255005517484453323016845039607429385780235371797510266785104785768024653512252179810577789238196042228504184175422176821323024324807127382911644171252441541516547851896652776763412587213605311858130002303013265192440685073636950688110846382054193386728734760503061043696019874493981311313238131104055435332516419274317659658294451364091113287710445168710963798586362434852155537037691168498284087398057964009712641477875687616085965966058713633900119014816332590422575675165573342321749357470159606867131386407904117726033978944748749255755936406344014247236722973623145639253630504741839551383677367832647124656327834435274638316201854466926429026528868497478613482140671080057267901196776335851818550427704771457958807280926575140160442078142625588904458492089783997940770964088524117074571355877190764869334044517254427208230515047058714033896784979931508062899660901003611701193760015184372394070054017009647705945202074066658580285769643780822556062885905711849690257197491193649362840252546732462294933769399391826724487058449359928150986232495410891736496570540468205013900154717456649355055208221185705064728270214481173101355667485133081900535293239061835859296983016390565377397573141633196565007622538948569065595002222250054893880784474694689447519352108518593301762595283550643432368748080478006208745717634930263673908511384743660218138723705064651248421478218651935377947537652636123440313317724377106631667662382290098940700464146388124883730277495733598435486089910354151231744319396883624789854077613581978254791633123128330782601850272164027787490662058299531522523088635570323594375471733922459972893433577432259914936692009429149495912427529501592860843148735099373734829047238032440530737662638541897501306680089834220407031299602735711494072224367734479039014600037974927618352944257559346666389860970214388495773333499043454297420989937672269546555799878798414146380790748710899412778970603895597881655380682167549069505856452891404301976437354164179238656684417482559556635341844202045870304996670000308461254341815303782826028128244393787557430875239454006348347507271050088366088307970896397096643229342779511404193553709928068683850741034430557571011365333090928642459956656209202198355941481111171099660294488155632714761076778125512881932380611933313849177737078366431366037438946104073030713120119311370430274362175795464001805486826472221827992749599406312265525942224715604373912214377209674931673611417626143669136564836361332049467562017607268265643917665970831025499715741542878094140971753014543129875637980282570867760826477229922273809740438077527637975891078175126861342260554451392615254943102255912579222260621089247618098974905625934970582312477424902984497262901943181084793873704223637091394591702393444591186172085365890406506744504091718199280003506986912001514347310299459201800374329943546922733909743935855956990226125745287753196490076188362973268300886673055470624485826361157244993062869386401054532929282706003555417561055056674568528150845147369246408877034064027240828745028816509335457390728699336707178460416054281485504271511271661759778129567857805359730305912816873439094106850630960993854724530352823371556315377120850677139119511999596160193461842667737904632899402828795399453695963996696656685495789423957142125235578726370503565617864740383948025971255293401049422080764285880138063537931464072189281034114460171042431242348660394765109035885639889760247294491230113632757466656184832222160813467228568237673684239893483617634017760414932246458390713628474516426808984132302188572325192432763531090046446608660781713076250192345008052936213693690114882735181920291838817529592175920917860509844071097329865671342134693654697060112701968082026947035089944924196034786109103843240420904835966369998778276400797326482324058784738306701799684665207780287562008970496279825490246223711685386470090566631228644689245414192922935106312699926655580276351206196916802866443205930528806945068504430989935854434233843081102915596512540916434978886648235451275573671555020974616139732849243088367757546549087959689008861741296213138100052227667304305095908523233627802109168848992646432303956106068918517479644021623844968027899023119867029464290155010926796948322031082605655495625640154737902511655300153206180280569314202964328710914229599968543012449433880040446782501012758707783682335845521090340689016797157370635457720097094566692305399075751765917610587397837596757607027693137526302101233225868909495884220861963036719995535113337885546499040696436560481000996780917330213740049990803626163585862554087047779748213768324077226663022055143525274964529593920306875617756990169958301008475049902125915157012606425188131177351625308150324987428221216100970613848197592539519151381716847806801790137192014201719854301594436617392453156792188787705574188326513494882818703021100543920940081405481195970615486699022065431262851484233561201121865474043632141294300214419647078525008106929909666535848883177486449507678158876912527362972032006021384104452524121689443097499439582111145654719276466140984930452244600355152622853075209751099795125188086357590216824740953710343422245061528906442096915265782595962820815253233203146213188450558986827594515691706442832287085713409392899664700130736321551008425832647434822634068845150159632255034803885968705166397324859123955926038741684290982445838541714852648223230215587501236123572713342779108608261232209942082937352648681144665877634410141373946952353825803828189048856839536512195699396618592260367456911692862975665291564810035957752128465247887925643523952925691702948912556021972675542963319878100054486191079294079665069313295661484343003232886626836851026648343583284942135125087726883268610979644350887305635326958138782816088982145197835718636577992157343021597354066056208114248403696278616055325360537226755981942021587501139240356535857906898815332748657256995635319469049564081592030378619226402333966887029313773740873569759310901895233729737104822451743063359975200141995302420232505181130019801384203976813934330167352022226191353743660196306292345422880993522685584237734620947784546225116593534951303721128703060819741156672717096276944403687264493675360781950437015992474729235320972464143348924046949597918354489447714267361956011821167187874768444100815228247140305453625874677271247835332288114541859051915846557130541191221227634510718411480448198185685920647201363871406039144616012082798228860264642936047162830391598523141887145373966364613084716043939711307493734551309936284706354348636057335844017856105859434040936653446029858657783044538772551337852408825564637710589935971068722840435093429615550037858595032374399129248524726807486267185640183532155438280516089927111149931555246716250656483527051823734921444004371548083764584293040727644935953743783825741614863696954478546933202889970040655314378331972389497940114229901247525371260255062256443516567645614980711049346777985466729760699584131024949121882367138089430733942740508579300674036419076344075352688977113182342620950831399074403946569515170631078554113063111270909076540347659936349656379963331733497023595567113104875767688999762117659028954026044543475257206666064845068774290872896294387455613755644336592149808419684218694476100716793177144165834411910311401371722277944163904542594504965963550037788756892793184652335318926795311011110833529289134634590942490106726987730990028021128137199042939983958245153808401418828495732867555846886284201664652949155203032549861018903848276110628738298421228173069796530052370298767791737127095078842799358540853648620561048591088356359041364476586238487775952845402479257000329919882471843768821396378964592339466569171096997518884127025065470893875066787465980700419346997194167921162858539370069043341680814460777426629498984414201583746400677667770473840509817512766715547576974128093940865035511138159042888582829337269248114973448875695337761211019296122780849874100882167113776041015336487985416344161338399116982485595681384869790360502398343095122130766884601917004327199779178466866725545992470640627841846068858281028077098855663428660076262688389790174834029885002085286159016653348064998299630416763276462659981348512673462055059769791066185318773762630668577923886943874265160608526135386664489489135851139214436264040295886429543391886346335517000995952222838139356417831762372721513507684776705678933481313704149984947325465998540778927924743824182362935460658475672854611877197314217309751055032182636556203098612543517222518809385970386464526585503377392629728691058498035738257824411669753827805398939861650803896440960976510492766072302901636349134444887751678335300873567629341552249100299697397395680988027066367050634078931753166180256197530670785628412296064667076089659476165536703594430218189240437616033730297391949120970984384851195524527320658560200523625870996252965149810831168918174057915943501367710089563808411225733772437928335417684017058234198483116079039677294506462521713835089175234079777527426272712302218660670556052902845794017419150916212379768023114423504778062573083723543231711208615375288757653895261726476064521024081887336462757873103334076983601378295485150361040909902601796793471403450588400793638825306781881437354979750720808741079171186497612163116311395166772207691637409359916729298402833620012565157909485726131063700939927597949412546587756588586716226565223429926528535530505009142570325847490983357422643288965671081611660859323505430433189841046661387529628818680408228426580629462961437393211090348936343255133690773715906528300276263572190634259028015480468004719237171473621633846230377112204149910674267126142896283431843318042585520309106298570855842277894513460235343034165792921996766133299421794281225926236413065687058122829554249216685489301105118093930304756167608396225766506559784568756942111556056955409382534227953293233041537391356307060857735354447368455093480964055154774508613019277090847153627297460142593285614944880720743675498108063054085685733704191575657138032674152461660623808726600363015064376659255260139064416377513741081148811242131453150221443967191558652688327140635781235788399593484425708908103887012385798558129596992905843551624599889749802322256999537175844161172516901552493596932268716295056744531237636706061166945888655950820450406372284711528517203386784243281795914120541793393000136283950990108195669637569149178044081449568241378392129920317967416447163309294506447931092847945653501028971423405764920737252132380136157549632773657630239961374268048627583581753031839863953506862497597239953077379674910050204309383149686229795867532194739503698878667896054393397865337008620801043990917182317007925452782236339785961590835199659206177325864380364468975002632357266846173610645360152791109827586039929467076714292482325163401023718275605514432771043453257660938817241386047101628698473605855289719440536562221859605806424130080963549746403101465930388920906590389238544299820852825556170955058532305263044606569618177587045252775057179247853601251833993485935083882413474406077377932976517022953005090647233820781822073210375162483183416620178061403186738355602109388165401956952778679190181967321063350673020655442726206682715699195257592274709152407408174525360931047619832193054437590579990091702507913469668435848533437303753651530150216658979752935962651011581182901530482217474392252371949599360211495626027928928616877152049933786606308839200768757365724825812921660379862196545815596873119615025983820910172617299221266842510185469002600095125968190587960845139935929047801051290979458890830369512618620677637756388154763311523648783816198435794570068025903485501341692495853926822934258966341556673861558968600232529551700783607137673569403196683282529997706566026980258221990828583469284839559809476486010659249780650233076754238393306272960035065637291362612459587455314696421697164251969618825691437096996390254549860966391493643034751590625273602838247732887409516966100580369974153619693596934882038866651960777771215307802641231712292683826991816655974042388038226897094829353979629629856728479907416735728622758537543241949464578461829556938556850775183232266502682793493583645742864179416408875679007992021973551582166396872477211105806352127048052499426688646913452966495819911386035563835302027684345292555655528747134386690261740280621947834534323046279627572777626371910762386182190132361849486316365041308196956599955535122910501212537069686625935539658467613027313412776146603813063330704054751730259738644670241015812426739703453616349382304061182134122975583439063073764271014769393471677850443774660525114438588074949134439483190849184993076802428456628343294768433531341177147636982081201042185435107816307516135428256416933423697499284306895593820089774010033873190239029347276241416063254366822716707073957148390458418610264527464308215675294837303596075522803378703080520658179010569013256367631612794607309205373908790458171885947350209636564779300353101530832241942165058867364866356902584992923025736360348588410689552273029597137891190637632909570122047821219247465128291648159448712202946342738064071928462365558474033791221616388178914289446440359888498161407776183661693288598074802240789148610976421941204685574184282413336092103101043181671229199210221983190763359280177798076027002305090000426810457876785095285271541865151970191405458119590748620837264282345296702446644490335371687691659981647809784014413569791880006933094031827319367794020392717338790549571363581540261930087253890358078721782077151180354919360225437936864426670958746126402945198116840279943330023967650472685072572753117431925297064464647237366887776561656803973901031888055654368633535492236625530105598875789407570368270188659140970543681040268217007704307853421798016345196785842743445333624450532762960935206869724025911002717808170082122783278954589939591078883481929876097431235174579477354128342893645017161713851929659596853257068874431335722320131856933363746420780188891833089205009917678421548323022339274980926910878058356229777397840553020115321678279318839147751944526764774666384972807577486597363036226284667127447539597188004017170474876110021231750686886714978243801816167994990012402779743521187800649291783381324907740510784455791391549632468914469854569580982850554090102769726665704440196673710554814235224597695301405677687986140951266114291529104028480512449624758373825575470893946796145745827161783649408008969334212564092778626271141067542890410668357584696269157747610136426750646600220851830558550600133853148574383516166213523779613687952458671351499636645991697035061397228871675823449423303179772400071367216108809675870438882808932940472032038544627411990312054108598021223607709162943974822272387027682428156793354790496182664494441100062010179089265070065730327667153671778780399853137660660049864463989753614692939043668833114351765400132773579959922216781634216956247945517456408524497665457163828139357281272073260376930652411052890822184052298438472633048115561463424776350443721734873305856937021302427058804085492419441326011191531855074473190794283060268831320961423975066833712616885443091682488439460199368798610179188912884777645728347156052430713531975871069240177257271533297216424310717082973788608877972711094005035527635307546924826684634002695359896235725293195438694865860950352148843290279719517053238492971766059427947623719158300486093895983873893875081186858247027254631723296895154536694263372729359061387756435713306091011330010971943053144271434966689316291013148405539362785055247394455661820465915896821632179084983517177943095750029952355653020866352529882705381673616833179994318713611585333259417645558836946127815315318441196969763562847657532466115130965630398042099543927102536834099917452365692516930454641339341807396510708079781308210968481137228659966585352110845423659255489891431055466717856466556428002770442414634995858495984988057832420451339246613577814517984491666173493011795990507378357434130567411375617501214242064487394652022462113494232430758332127003197742005066846873306149814020557337457970415814418124251426394649988433865303929885671792030807649708544794507855120711152648441228375945811238395900998076192647071243458787552520120366400635315808726823203703380975171797823697318763061043465956273188582213885155034826291032952713495413897133556535076375967631692891061322572854961042741693947308168668798882001618853312066608370754930840460096467670618065095605005007768861876814150588987639020296377902650974948255924863527753022391135510428708355653232818484337095237366140009809046613665902628289137026360695494902645883003750575340850934442769504600287844240072841470966862322568620370600248246244842971991780321607096011307712114846862057207129435927896613547513160827201576224143912056027962595331216333500787473160486275151914591934198883768324003912164494750885379357925544175482121229542273764845487421123281003354741257993828275354364387839944964704752706733044588776460848057055425258887240288906776595063564589147061984679706144446861122378997556636212514057411589580337155828608089153997441511384843588765571081847880089850783295433719874555498172355226493955941145704506182218296574135183537213371088031648726511451525675934962868338949257412666949568694031883084032134789240259253819159486122666774098872140711726345670371818451362320470233915667286611266581017974248447044249497888545727229053379262323878783151061460223847402698417129221471256306382064258305540035625771837771423405037560231353521396196930326135733436717487530660905096122003761353658345731011070886299780398685916522014843260561259087427472252865541963831586964546640658667106686713809179953587736442089561463841072964132763943041602260552630092228797380062525279800392689490045762941143510464903737538890065051621194597680585230225434733960712092067237050266008543292329749432018393035237751694258045605664975869913425896341659396863434056224652182831273154010066654522999452098222701720643814569876473036316515077336893525915519110499823494698921821969343691758659860864739105824350524956235254873318967450350095458706566601821460098972728140502605032670612634253797224465244738369355979807657894223701395279394431340085228562719635894680064382290894102250831554518756309412652711128832614734342662130562403397868849285467656747193306834900821609569894442966013931518341563277010681080816015405280297727399846916404921337735339932343396668169719534009968224686583875245826247537801911484763848869859154506105527954020791115745906798138550421276325492171280243372397028715099949755030692140928271063073848755220165707882857646784732494282144702374152209271306097601516879626727201599244977090476128987235869042358961415499768362217812596221295076948495822152142161920539884385524493534411537868942759059838120258956090724365589283143860611182056018571915357698916542337341049031791451196108785070467176778550206613327471207838301235836173168742820069066091983684470194020884061710013040618317676223183513013135033166510181210988431792001767330985208665671577925793841105547538843415526024187050761157014131413904432606561436470428019273172702889364130001153385710661240551074513434360852709693344938350000194846250931160726846791788955252762005586875508286278907258749521815149227796862540151464777272068522956676881433906931329528032243221212880673940588218538037345337154838077090824701023973491014444164500759403898074308015583023671791961002617798589292687413128202325512278068988678181777777295068074420497403324061278586269994375876902146451306470640404541662663056536059520877663830093997876729269646072513663341615566840433455194543695001266396891874238889254201701250765039155112837029853055844376715917262006340698802580929668921147142611067295234314166545121901768788455221011878785053521497801069564579794567020655949106548074768824869337656059232273652656466856836746960887141795979441093382544457234700239586017619529660770750857663253143771065474398893288440045984501417276920560447777996438034824238416772697079644758779055824711552920783616673731761428593056671538928127878310070375994295896330524260781667614965368939900685140829012016433521124285669140140217740811040629654428264297030492323546670862304873816484632302227854380267674025603705464857259789207921302200925640790848043819737365988405166592320013974137268668046988594224744075889657447136791956071892253848721800123079513770197221561953451388973665491885136080942877345344758766350001465738003623798953976296234543354617612429904912467120517256526486776949595659616777675258070916299810558315864968585228123637159362778129224952887349351488570329152646513555597054334290419357830573301323988688080803681622852702056659321274321057724141023463338542911899237032068303318509722389828546311196951740793160484779360336124411122512939942551857281245127004765717806163524451135974610938041866206653521821901509881400311802475687267280045783330440416217702799553960914962014853593727110510767164818386312892534186452725460818566670730965754104181724766327881161257090134518109258732507668012124778699260807604363781247597612361348195588469614102623005121830551034879458261010724290215811452738834194604353147716688562971552513337511616742934378931606834062944625389343797835702620141150102129536668884026361233146885109222556470634477939360097812612764737727534114024341196521882312280422854576512089769535052254217099976152179985610601237803215914255926331240125427547053596488542501064901079939668591852788900186364646484424554706186925823296723029623660083376359428671714104089319381252801920804808193733749024429580640267305760679324385187754896920712947900492051738449878815392710498174879127259076766199714458965347390098907835030004586469078307188607105917062422375311499932319151813429248077612188064959683129775733549141511247009701836005506960159499736984216015878764084950296565327586007759121998105948445467197050916177567003783744833637005239910696219825861677418922162054049390543712812264744297555922718742544855547511733017472919384728307816860860680454690283780937423292935308919530155651446328302488184022748497812193085820266529074521021323506847669552104800886356641203601752027253074656847896127735930643237880780742385649255776964318974568953943605093501944399456718412102282353474777844467426245433115275776276087999832717675581628323412335552949243561605707969777543878985639884259648704955499863970128293925889598715917011002726203900189103913589703826969466356051760340422045602475373894143962157468100066883932337333067511218645414877095880394355175558883337675966049830915809572258663321129434749735110242288299370013467038284850903059515548702543092925148106788788768635461499805875779239180598272848827374286366482552436104569153563380706164168064227134495165296584686236641139928260405836574657442194412252059816716321119402927221755514740862027219743437338226347029761774295566690114161111733020800880330678270875492697705941562732386329510212900202956736346206143860882595253821773177605898708403443434352475306684130523385451992472297506875071032702152855775280386091635920330958971424047894627869313611337286617228227195333033769440088748432571409598948325253143458839034488652959783774957193707611752399937704785719260079984706912958111683057616848125081055887365243916709134047902779074305927734553934877931461042710675434173100551274769289292535331898812435270942842068613335793057691940959941328266468957232845454059307440355329006962707700245364333516169294064886426542479491175418670505977235643360955646809666322866152598013606398775209970628708920214234954480771396394523911313803635972406091160772870521793007583505690824741816018278726016002712681208120826607022135775402850726639452694665297595102248842934555791167685784742405027216939437048240591592994778430506476255267486842959421492251366555873282579876114986837265878402604845565274373823198544647824578108459226818071617464836782972952907600428022389328517741923825591861140500611713686863194336555700306107211531166696172857346807632061648904611625742041467763506261514976733818183532418658280967309148803191509027912283497480251967705176864481264987847874534608149704065302718635794250988521776575874413350539899742631689150123861634902476479470468116120360744394213516895866366585357984162541230623418829906899113309830849036446078219191456095292676996892877119551560145474423300480036658337983138628794254788622754169816990385069072339582289920265243875662553312729617870948941643809278058957749985370913173062495279072704748677160929880082186673092402154803219681134439856583961832727243182025763207193354351919047079119316470698886147684228628320288095677234070460008142558946608197981388426035508105921777829573363690127929274466275680940757946821067124143259961964543819110742980748183159086799866147582921095757201955417175164361577139172141585101921444921484042847789614054032832155149193931816515939476687832151491308305983869209930121377240279336756367517171018513506277374773182478312774829220699538193351751462252949462300850074427834441305537957268365819392991188095041998559616806271911015151649011705309257095823798882120009348816195875026600376611797435511678154756966028238886602999934742480089966599189658660354349445951401553614960090136439820417315256873640499374078801169512738741343335147310922275510532566648716886346085917507680347259981861393550599126631265287287534399643053434497136059609090143913503421474752808760094552393651046062390042016304375376532081220762085364051193939990704709720197417774535871565169207513380410594689866904024165915749267411538783905899513771976196312772867501508109608205616900206641203702972610293974882185672611932146687115510637715207807584078169502676782804974184953925935751199842822696220261840738622845228652136639271520799541322562521943473896330039945583720282711948553296520098572888418144036960963178195705423568381299312652873631897644041093321239873529877132313749446393559818007035399460092177194745903824666398072600658174342426026359201821771557342396448340312382081114970578976042631123449941235198991378764497300877156608510105529266915697158925468917384572855272392595069662578973607926766421000299411650923551628523175273830805474190492283979790721650936107659569089111219592636497978123128871307466408835694231374033671812062099740744437504163723380777565641044906088685485615663210952210622405341068990104518121892368061347368227924968916284758455754092698772868534351003530233392191916363811245059040973061887973152361808491990531232172374497296417007307964223945805055303307190912746472114497726499865263229288895999269749022829339584035541137159126767874640911079704957385733091158176897858206416497950360735317463923030955043923708401087264441274194320888742020248264721857803403454100179931197931045336810537385992850089438615160422239991719161112177499486670893284175619015982794601413672233792271846091762314115294393615414083833648053316854701989305720955735955271786965462620997623773608775562325906382044641469751097075027420622947361007484966795337647550373583886917472199553759139499460174052679621461403096518499465210926937124290933202910092948689865906026407910392150458911729406970597630670677845115901880461444476867157379430844909003075206842995129551233229788411380269543777088910877896658234431265178183671825353972891718055155794440887185879033022414129855367251605942034186476464579455978649594642140613057555965274644622559285955735861396710460691059959857588912570469231167561087363758882112801969380313442558357995228151114382769243842223721266962878757455932418680936582778226747593105076343571044227950995521757847042564633856366026951097256117937998907627649457107225619657814266349548107800433831912221036180752712993975868957070210257219276162228383872424712849188512984651046394775839599067929053280663857680701142398100954938813401371543447105824678786344961976031018500515537163523137493936876642989729796439929818687142333811302780057303242073916264336818161504034921547620558396778425007544026994503929568765078322444618757542818282864996384429044231023899151081523442829377886146065518220686028894593459096420088038981346295315498348467523921727263745301471688073326051768387260565109310382215960268934910834374414750582545555294692493697677388959954819226455720362071031113518642687832728240346909039601271995744713267943298130202526556572304490500549161395718491065202695504016973353954844103986365016092728872049557341364761825796386375465101596666712975330916516531400973170690357404982302412981280481481166414473908515674223926432285326046820854008147647613620698733319907397239051701126201742382969655501248124194260380816039028829248353709083760161427035889534086218656028603453968877749307239757120914351253842790577375752245077614244735486335337291579569908407763836677040031131357734043772220862229215053836866898719362111890230676457151256752012546223507015151506792789673436920244988681582179162903073100537248267141206700420269246812598984332358377225367998349968481546039458010151945184612995262420434991528250369647733041724543689073800076237070740650296680589446116314579518778341071107675015927280856682733881399645530274125947353734061215972013962116046231386631194116069717903777630746617855071111367205003793367899866176109000514273664257361709170957008599997734206171569813045784738754978526686140692683159583556465777521381793370328132637952416940436508473329765815372870201797097097388416694075688852389639614276716327729334980174760258072516788646967257732865708609240525956702499104750423445888835892677840599052602686609129622056714370372134551951721287751893092004421131232114934137737521925272576285146015375797678224775851331764222237386024115343360115282503722563139718137186469521016286500831001052957952150632100003192996698491163587117239295442947050244481105705585540789480518011560386753567368424375222814389355727760618373378475757872191732061879178401626344698741121001439460072824082254664320764916581041013617728849498948233124163117324146486147283045344381526843566920679348505604023510132443091220905387379743605710953338427577073542242177896244514010404122827386986706160366067249823874241432162729110137620453379149203331531484265635028098854276418696245134889534865083573229478726570284651024253825216138730924858844938564567195093246809375590454371189934662069775621231355095199668762008587191680677251052770823631130907124809936747412027213610819474553508982775304806096057421744990862606826571341802059954448892145163375459725072541395558823982487861932880701028406358286068517140299990338621681300974284588672073459523421929246163601254407746873001595547248713154376358189184494817120197211312092360837897646465077509080671358963151779864743357432894478360430722682794498083817594090158225660310456715047048024476152073352403326445542419822209348109103657142981869831000864431297935880998930960781859169792608755859508664771464431752540130027522766030513715961125257969365953215581067886373808173249563399900918213715646389344760003966768699684356959377204374791831047886469628789031445356825136766924327138866325229801686563563429050894902915476495334998481946902244553915667877110060249768134754618035626174581830958410980266414035041043112010586784337743818809399720456464176560385640019382575053764062193490230310268573513507573528350397090895306231432061311505045350630663133872993219546819807317304556847665980785475769264547425800545044387219688539118751750274925587395780089651046190772835472596819469461165314712644270924479273303627718661834599253590606517766937129363367299832208738811112995668815530344162311934766501367996490224253624913035807354544780772995622422052302201998236088584496950688251886975989318497672139035709750684219101422034901310707120660047372923064508515249761159433588117789614151336464395800759979636212944774180635323596673344579205195183416174395250908826803788249930183493470919856475393728407383768831054761198837125226098597902708953440516381769736929054929853199363500001281111018855190526191430087625550992858735705411956721972862161524520888891207935747152997428659107261371468589941415676580748733914211518268605207908756876382483818963673598310973347534127166620733033931195301562557442578423734256119255547693349131463801954668417919329963390994517647518045313892827554813747673139862095595040456200852709827373106607328763407868096517165938247172401458888097086103780417872294374594373342194723370441853911173159512464922239333229177800435645602323079721430550629094798017762696885709564392253558512422696309623680372532225868887960934023978234067741606542089900428106463806030729547191268232502046377858657488470609603959265152814969559532628283577615294166341069416980321228663297743446206255855504950287774854794926461897777035925049874886846621617425183799851901997936538926222559187324545670954718894658326723589203599703929465199887471587230520431256157430604984240738824879246478780898965938839638845750316259119094597556050459693914178265877675705718109167970869595689511707901464858037436475468411454246285782550739645662479263823907304431114579123190748913071752677783724663638303541745982433197266085618340480858736040843099731764730250771160919003831128275266521614952687678056203507163501815074695393248021138073418045069788133060310799617191796103213667368436350661076276392930738537241726171554862444234239607199376678059447064778020574776402195703416599933820505611643171124758212805049912240533580434640486833222610395632705037820720173088168522324875271202766666554673779349664287771066309538735533795394881836665336271374133850294777583085474901755974612375368813739508513704144216803435784852168469903826845830055263180463804957322864077420486233680417615270350078424320013330889425621497625355188504635453889386255957678138295824533755716444263573646943727028247516370567437574299457063702565308375407537749710288516724296340501605832341402249276801624282221420184176358170594111244512269540211738509398751469068388247619099712817805063227822675707681890951075198241810476502727525949838498446167273134515128280949890944656724142883422073004692821672864869818440814922371186151242914102471400769617012500010782940234065664516333949656252696213048393499230292507011500877287872332461495694773378250594923282136261095006764353774715601218948316569633894320792429685276667247458397357669045132955926284562326919352157699632822265192553306169594167727848130153510732933165416279201155877425197772265097010414196748976469803234068717307091742128476644657355629758388419124884793864733056087571563959822213046402070236829474113076911809704309132692879430971841357691748948484613711018394127823001630508786517251416365976583542072290687304899564714953399945105704606597888253943426811435885911000975718451001449350383167808873885595217835519849461316992711288837362378087886000838377545469170558184899999652437576840013244352162562433186602294988867840698209597620592325192507436672598593984573377482057890672817023861382056781301900770473324372135891631048555001419000147528466870768336478387052824058636686875790848973091729574405452279154896459705828516928721136801421997358827288474621858291151400989965932764970949708213805380688563058936431199246166471764784543807776178105393956281162046943786216506955766894402963166507282980111775035450494905087363715649969192262422928655136227174704003643713421917513324269989067999100873291974101543810829101183940393472515986454940804388873829473315931465627803226159014399154365868372949655981539559858313692147456247065467701692641701739944833597989369122754642708180311799766703243576813336816822973272298125274489224250893604317249625188674314224132564967115950068845198164501576810444609411223324466991234862043695857059858160009120381622862167520847830656065454608599105225803820265134120283143362698097960719235800203134933583593952672896587301344451464937097853663140316558433729263201848682269385538481479109206616644202764896982988804483341406148140861138451607391949146709131138223696595042654038392780242099894840059067776198766170849408998351548410023143670154114310386749170464878952337668748637510775038334178443672788279503110453626552880104228458758842283359481719327264278234015947411014057567277725082339879632017655621001834946549111378701211873793264629420341676415301908444134318146539209397146141524772018000091056629772922176571365764865120811906537361221859582723048781906499159410736541736624662189166810076772937537874237081843707902242090109756419181835963718674322083614339664528337789665347073865236393421829662247329447617088095119602312540341477402476040901038557638799718758424259779071849122989139055629454613812109122397649684335453891754480910614889779163574026253873646764554696589493909763340871696106610488047786854261429798150394844487305308663649712329486770755347031072047302182115567976989127152242277147245077981127452260119274168173685871143473461980396342279917629554465746050696961354850807124401744036764225591146060919578910782104813956772218653352606662313977758324505463542721312312611934175513601354510336924738377391637586413985118390120398152220975461081159007191485905560460199562970435472320265257110408160096821843052048338579813282358305944868466025729644352807529738346451752511099779720140662256920526661103132004898296422546699806245447274466647096033274125944422952578293413671711651538177569981589350082974069048505203241580961201676384617638642012448849762672616819664298181337415653574036778991576897327116510234804319834676362434400579821498915958751700627634890632862554452861330642026842059168691900749063141100724816863551735937716862486854948706661537999435257632707211926950275269238890041650476337556246064255568947018618306633747857980384723464063397565287337196671965005860022625386565824245709866542650949908168101980016181804703458096950228439837591520269699741209482389437415578505830901937577341356270219936736528980567133356002705900512865658367253008212354168705185915961045234606434275176578189940236304773145908930111740793807347515631511724094034326336203790952039441605870005033706706930161157594342059209223649161953162296788895985933978884736712553808514970090749025408594403603408450484891510068386782604639245302273280283735443937259165610347640824095182351156345839437453715713514021685046810464699443311338552039810547469508560917929013817996167297753215384404732771532965694416655194858582789871102238259166427190562189400038321063138362370247976802548293959775596018272693439266379210550727828557136531713716299049886020626893903164342306087486357218139858783257473702658454835618648629069979548192289296302753855847846677665565266231695833965788017059003499202973383615834798888061272769854418039450630364265572973094949967168945267594546818849822753973480890897343622358322133588837327975900506266800252089145304180892516746985006236348305840660679466618015651416591266463847377358976895972861248695623893823716177968926162910188356371586443224108108155069530108509636169913579535606403595325711902645596440327957946909309208105538363967998798642480288862724735081950387521696721208492290375510606001048215700656704415402132651774060483116167297217850852083972197262731594961714657041863465609099515676370539346713233329368184849584599283527417816646445575551475833475016663138427505890168936647976493418763579962641149842543355925054534238963433626758072187960103884604036438623858093434060904475026095438800505068897231475743393216985119085105262160957231890651470907850446048008360691865725348832288183617477320078598806864830010055373790850194241021930506526318639856202202669926652120872811804117339561529477467569761829156731249246371699037051253477081104842878028569249612771169898098005512347982290637517120326127624651952955696312763612967059049440021670940692370112452965749171710911076645473703885959942206146846507872956674875935321133327590413086142135905851943772807074244085821655531585730754180649244594063117748998602627487899759272025073006697702361173589558129326109501596553474142994995319025917661211925689203631696850641887652470366013142428427735135962517764703930566068169033763042134720276550278968866047132000322666395840496112841016328643105641304054170542055699919107332979719841894285290305659779762281841006027320209209917821886767613382768223003380402573352722774310041065916047240631027274238299455425706271751772704001631526337517196934575418602261199512071509332993878528574972021305545764898026687753891933053884165422524072508662132026434495902026247303722938982455110478327932463010133138393577076195999683065901248626635816514434707550844204165472714449407322569765597536887842963740945809245456474164562310812571855799777559960393708872092070600871109564773855926319937106495793936391150087916863210226471277666507548355944662905343997593025189615234977263961934156600576904201216398910230411048362049760119496024201060404989681610952169016401877516977760934116411696375020014680501384297787939361089317275315490919516014313193162421281269849945343957296281381030883151156367474081310785735510215692211133987244609209054373973485309175223522103208168652541214890643084279728522607045113329838852997120497651153338563588480710070425087418187786554508019650733981483580360026300188184438390964111276500602264349860362496469114901915262495352752344910691150211989410662644651363560501252475692154807020568572390400034091451524572641554058419383257944375132693794001566474515198703522225232553911350985898046901768371682775388245339389129010246592831673844193966196125989131927188035466104313566385141199207775235668579543887542319872297095697236583369041266158104262655946939558084720661887270673737597003185296204508872778737161344417483071543125148510816549912901010499279866602218729175243212380504820084719783054547727949579748745783911283869567371743104896022317573562116258934011359147945921174428173171206609203784428243113241845377975641756225038733367072241114347124699889275449275169781809527239807485125619943098993455921411257161375893857037773842329346415457692150486739453160911452142200775957305892767688240352893147527225424599325913806200116468387291963016127429771975812005101757732724993247721639771972016149929682102485669568627824166886841035736887141010454860130608501780623981500246025413106500263875087307329218762234392894795162047401898644035510760875860892233888175172637418681901964693207105427084502607177737931160578987652344890987820206590445506896527400647841769091133013458573096347703176150001365958695066751557021011263142508718636243896375046573320111022570066375537078980017440657305779326219181648862333324895028799707742381545951523198378999141062416062349580479695762672270729717628027632681993397198747855598318301140231308444315180748420625775654672877613672074147286754048759614584593664052833470201462373087180927799586444317564828833865605123639635814147976198197290265449160585209042723431403954681014779158121942519128311545365350285937905472105275220660393614645118052740033615592251351811702456540008771555325450449343825267172373856155822607758240457820826940899301822302617169544982911753323908540367232139836837924861979667448829051744026846957226387100701859245400978845291323619316051922031007665595205881016420465958585746866257385276453654407184175162163845140353576179072124486087428448802438873624105139185027757151584696156489166724198198040739487474892227376535758730753447119982923424059242453359389253078241191253717141004312320042947673426240974989016778102806245357006502624911054221427872618644466950065499063958663694281657824538477039104499366157306867866698683784395860702948671030058243548059964552364937985095070460263705458746184056741402446670545586951439582067674370870141558177693394627158147531761076983753074099367722831725323864837802112643043824960731418403317121211767383165681553975302862530018804944900087388592817218566090183373287477884097146408412228746855429686335696579589309171289331314339314464540134962884115196775680684865333776892229184579481480958718586432944076147231788681329043602010203078633303210623421086709448734875774628772940970999660735410618664092864780258530540848322623548722846148161237649427249499339278563627429478848471688711234398167341573010151354432709267592621162032523876853748980087738665391277847141446722832578365863319540262473711626138041597462109882617866023535221948283321461460117762192770195840919921480072640488893863618973692730728155713617020897916736062973645970638524028313302118698854460428063759246177235273644970581474536299602864879854280836267033215444805065063262794975884919005802227511077856913065884395907880404228785132713545003410087036597652811358721068169078703382032091099784977173843752931565524358176926716295213219477389061606448131932257711197944733050090842421809061156311833715195629067548701158354793343212238717912581132211855005499337363418009374677835422392443006488842046421857418027967154594274554651696411956067025327456380741221468003240137221898914962173069949519120815215459724825594341977718387252800110582465679787071589201866307763754780151299770408442170595861443711389828914200711231943184636272049253868563724746374691744174171141168848952027692791618710307339002821754738914424799817513963752324790564417057230358825589046828937449630718184464252113712051803824603606212473457276190159204147549281289218747510237860489026565772576707100534565108719120415451245838008444905572069723572897245734007619838477617823140610414764923945495038251366929591778756559552039151164463894580240288528927320373646318522125072120200121380896222795524519664937256555960078470520909523172489436444383465377506204812361537008503851574479904869024580772464634131851464208489673505860578030129593767512596471953781366550588305823116499166980995143816577155767503218475170524626154068370891280851316032138272653995693440263853417664078742199465794028731064492878442942622155516132350983129988668127545630121194906876402083463220553749829825536945371550320773774855624428246503614563617296759252028547685589908361909785270222524545794755674785287527123779891421628278080226842932698630097589751790214256380941985046223964791889779739742061942568124241317867048513990142818765218527694332549558085334696945811139388505123817975415667718757458701494870114496898275813866107409230381362824176535759614453642682548026776023395076684218466786386505585189546747587054513675949942247464862228379067501148402778803813586854283883768736741232305711559976659452875764316584582396078105069719015971987381746698504197492014839443476291255525802350269344878699182347694400554879704595407622265794957868718009700428136277975624383798494710599645174815454065859840175881316468665896237247615021027285050979577618091303004261251884196369251783213960722710195386327322686834257877767370585246513774216555796518116976956809053225087002523154772841866492091027186207370835177500198513823236295876571917779062342165753685504956295708350792732741566555365130631554035164150003798831364384849352323510025302668635235856164048787067352654006409153700197822962692052597026131450016894096556317163385689155632029434663875973102283316632932847460862881803916070880511474043165115308007601813282172451280371487717260920135405238137434426527009211608077666449113309510836807421783861733732961893662216997209391733963079633508695761862960805625609166504750942877232731834199287048700070174336996646053313477582632883148787068022636772552559724827961689984287259100583826937616004732015160388399895318714066512178413678052673458248644617195344287358947448475998373439152528654884845398925520751267631048730965292011586296674300329572655149927079062038822263705667592288461311806981168922436194528319504210801442108521169828730338852449345882203443388181439410590153587744967349435783664899182013047300316935897254008486985800359088662429034195342037143228116159280091349763325473519406240029428240410859512172534415205098015214543500833734805807400487053192598363838900753736946265224702472880722836149274700270424687108595267475201114002472575478411402115701233414803529896538526457947456693982451390273834897660436925383404282106953343628716027520568493851451117918403743097393762685882571229855096693720361650731123314262657256123031708855327045616955953086428901872889961887940315216150592145561401631971250237574149989083919408161832486973679936377387439079864364038304267822501028143805210131357398000554434727176728711975690837114720905565789213903273051105404341790079111952885198182804822524983741080631020318155269803667582966655323836340941268568603480671820580145848792350525409573570346657309967578731938466603786853237955781249328410541050719969069339234403548635470588436711137231432876094426984271072099728333852929452075218975451891795791755658292552890800296859885628737698576417846516245225225500521994191068320620161846551543444211520963194801284019106596562206112591293152955255758113897464988568504382761616909829851965284178088657809637381793721051246048050752611112641970889749605362059078229642146586389502820218664025437351577857714262026086314807257953039114246690456962158473522232839601486917671251555603823339418217569795029470310620091210863503644199706853926298300385208373082631835681937866778986432481255696091580045362590104728037950168020787833249249420308652559438366109944707325127193135867641824994480123669141881546452217506987763532252043323879469705120619247974783012219758315133874368849553174617606384864067579581422521716133609053129615378416821061790112505899892403979759401805385851162759254835128761675071254864351604400301715927716704602890034515678991187374756059675957952173952465385335402613783165330126934511675121008018671825587259346687977684704304471126109789990226652614290715354261690630264196418953657994498906327281097959927388187606851919952079248067161953530695224294401304231865499106964470429811288854628649866730808782777173643569063706118219609808035560644614897203141288026490504311712543161220111422920507916571384609209789977939017596714482829106096080488581307304880991654686998118555326574103880233225853070456842854999659715086887664577065576414520666343195557708115736774314031123176250741965487556149833767808899765940179299251222964194081888734380053699529091834144529576434035271006020918619868157506080359215690185664034192613877754039696989468422145216213631583583522892783840057469823625711354685940194862401900803086640392593705655491086108148316029481149441372585243769958923940469001507148848434818373007660314726757953836975414355373811058768845106798428741961085227673500010946665678402395214055041217536794559563477735919614668440013464459469962669040696981979765050692679720408348007432709565577060075448325099164531027362909214320475242398255359707744278203083789643246701227625992232006384613737537347663039596124548080581695758318751799469910461053711735028611060209535824427027287753320401835748218057311319670323641682074070841351719610847068585225739298528896197345452239271589032996801141092476488985794503051992020399117423779002466112656585764360186066528226473439941764924594579871439491875436428764134366353003356536364957669896028324782422062333237590182593372780096817039994028452976485713876991156073546524970224294067088322282098752164206219200084274977895794602685288021330872993068147601533848921138992132250801668233169596940828672075528842077068778458828909371833459518165150625903473781333187460378235032328996874430120489890897309060303885170911097596542418955906457765811647459615210680602462352677814460060061079347552271452328305725939834428937906951455021219314763508266524119455704729885061015006099953103558428074877523451723905216158894642822305843324098345594630183733252616506160499782891286388711673882657192598403424695214760268047261171987348261986520063241238398451017463346426174336865523129609283054089745704852153528066428081800821999049839620928136708372967714672976097144802567142015935939713997345358848057127028246914076120671820008576389650350934832927263762655218331715807400510442123264952633660734257438270007952742814741868154993079221372218020086027098559268467903475699536255985950360408982420696074569632156403455578068274418722241523710951279574337201324669312664633465901833205646468630625678764452514532299203139170215930287811494651430148223067164871926074661900727865075344274994520663829808890495769271854911579688267922389055686383018765223051220168548075499771499244902332425785815286387203879224999339188769756066318255788197177911501183252942167004926600050980612644937018219346118228571791854222444223733791939147588113531961219489246297739857757058471013875579898973294998096661356656176128088191945101671051470701594901440203158286625104494072508243198975769204402838439807177816837244089652358970402124347338755477692232760575726984108128098297812162900327644601705068380969204384439863436489426220736744759226680794863414343232000329579810041732144552232742599138660016192114571027614521822956465224877030630514777006490116636335815558197467267616099924003112663826245991002140093437822726003638769762198779579788514046703530251999512832033373034555094338475594696108112591784716528196983756050565089361230544345022771316532251398938261514476261761756596080333682715625843674409684895136088402613161578597671597941969501175953338595104047047175778658759388959696420628798669083323143140296597701179786539873128747298192990941443770009079088248259599020310571552429242948233766257881627855249127451019552277323640586340067271348784420702613397144950441826920867224594627017494691396046528797091442461570395356050685014969899023566577163490325129056051947305144188579145165502339979836124157331315783313681622081157453201376796044226067225817329242465360885515353716663578355533797275450393465907905124055351420867438475436750188849453205079661068804655789115620724045232719864450978978917997467036013123726162809659509731809939798106107886658944131628449385183502323122971731864480461806964725400243505105630150742831305804329848992780510911725490479655867950099795262590649517318139061496675561436482338995600432519671216080563098561783228971014201725293700425442386755898695869384933464043627921912345634127318570237658781478976579877426143245301099529041947447917851924997813415702997427335325326548874661385406424698236084520146994519791233533532324381877654909604481527514463151703525121737835685444379399626597390062728556611101079402217872133083205633538369247783991405215609728017661782625622915438723981208757844942231490208818700146660435422542856594678830748191441506790887529382776440687510636898886712756820948457845514614733167597567479723922730440575746224905219058285396827744460400592430538783567951007952606755183084214725339511974230987963043333117923394783369960166054606455809526698825517956672996456880860756939897962904922801170888563401133766899748907259735442163857947699062287602552343445270121674413065355786019961286149500850731229515460383109052585747827519323550682487831407779482344512267277805630912641791498597270712372752302775809078380592597292310195591408967670423648112538492805182636283932697240668021325596878060899445704263547248231932896049087890600777587800733494185637441025170697517117757056741566324387651610067585122166574113304699345024048428996544073734845935554094611875516826486177813803106616477431023853309687520386240759545572856068363162796106669212476272843688105135159197442382102690926127154288708734508691338941821073857204627334198122389645422424672585666836923224639138713070959074959058549526221140080871005951977558430846513987252335644300191143739830696835811232104066474033743373879125316946773636395804685923489317095627445868614598410040758368291823039810738655666303863872057298841534053830466140900760009078651425654351571609932539989584673439249955467425794750319017315101813718584951199125494945187616537468681444674091809396643112126911833469892795794124256415805025877655783048893249935928505698698749413784112477837729290832347902118444689515188557974008238433585864768836926322942549613785654656821060277797979801204124907985926828458964382318197928798540697615410484301824208172740391143485491784419690656519215360328088845264210497429046633328540208191180223739231973266626413468954979872206018369660539445070882596010709779702851299541565344569303493641457250681852951389191241390612670740685357057916413461313932527108500956088287996193900192289620910182205232807929904472579035897493418386143675449446580555670146124411506551048384367867740870735338524356154808489784458558519485011832671544099434347426707007334091045696264181482496417198966961752212935686183514967162664350201575910019716754524815233075807273819198330644251443061014258935243005041272856387515189935099954689386069658113147629014057494721325094037489902726709667883728478563962777321984507883871064249313210239916498118846363858707256738001416528574631174744226746654941234034580194056688735514997768969723677284337644775044386500689629557007356667170850450203909313680417760330165550511173927110513659711449764343350320010870105717994909298893853660436951322951846071784765002328313472160060292987368914568926639784307019589133954930003857394412987191530298057779860136966078655771248513254725016509503810028430479911106670344010710391374695288945063433991444748344233544785051557940332661648254387184561411860594571899907205036203332378359405431619835128676526543339956323344002428136183974475563829985400358574016294250179547013015905428501682279472354851228686055107504029002147737430878514067189626048480695181234771379015377804781411931981267155786734643986101934206840167256868497444328056905796007724374757091297964566549017124790775986175586277125000861225870945544834998937792033809744642244391632528456503959118620286488508831797945066606948678448578227990895941844126428890275564384893344926508797530824364177341385419880251260919889018744809945756271384867972508566540930338517191883159636046216876727256495585499097380350721221404918410803164102931565519409338221471203421662966749412110872135234495811763291343165272669145015655238974374535492402457143061775639508334189473048021726741368668475875276324536538310010769257125209853026273407274523147455734045967338364611895404411520357158840791511254619546678499967435195604760414372874469669451705009668238172271728465348139200963461748020630048629120405811907843740671613659777525539950405331539723347874984598061180749402711944998730792521388366211612906813848564017951024012178684386699530496702796288322346226817927022333688499555433648568425573159187415470047992956669873180004238653283384580102772604090017282407683243585237969441963389438924908649099861506471776062517981788037859200228381785819027353759634956570370400720945744109657259643548811736812027432926984302853974452497636795039872721706394862464341693188701945348933413202418345831495564744791043334425726559293733067971885261041639537882726830715551614220977879739143201449610430106802702760942252037634590681489175544986445986478557370295234710866629306065312411613874247272231691986170647233842245215347548030084915591866077693381893526153992996534982320649805441743279296090436016837042848448967866631931919827525756223436069248769631541020933954244998154304980759011664379166333933367265624665596341323441467715824376900919430737452123335367029904562547200867867240882582939793099634074985211115985344353696801241761448844715667848577798272051491085175442077593990051768401802613372100647467430546058797530834899931100578470087523246817955001052480301696619177460364588602042349459241016932924990394900846172619419268102592958198565185491498591408415397727860992413054417346932682622624665775020395883446414325895192723284462515242535431329309737575281819820230821953863769794867425460964493723740019153434466461191797544306666772293932238430307194337574029844221719865377952272879954958081825403850403642447273723385248949938303913616465773683117063312042657102651912557139424732243350150604608602414939913162907902936371654505228195362429680330111052139253958266177784814844160454979851349414863728462653524953756244807246944924267734557043436366751206926864669420925292774831358307168004658861973987317456894939203721053954284908536373616380839073601477850708027125730600530300297242825344365122652106136605437850276008286986457815188143321426111203583201862579654194178496602187576908117939540436165787001408743178003741083139223355895740915984520079154864005725238103611273876703603479521131575680131025102142268612209401097504945083208735559335440177578542675369528931640896630694995164091419104907472020397880274820070756950215012641336310752559698495417613026429290411444586074550746403527183267986608893434343177034000693013107654556402522044697517512291740963343019410481784967199206159461432910149254393346714758136562928422540519296406067624066116603049463571461006694907106725675885365813098103423411982608533051329117611436088587531682788218448363517043359668591397872780495914090295164074610320172749190703912114034967484081232525674502026045369374622193929329784384583670322561199784203779813863743353809937983508394315447910234589941150198013659054793592646047124129140498366975085454364917855967065243716160748380835314086539193334966841551509270099790667997788865408578430491237389822472544941597066051942215335872483321914835835556257617199114023128533170404162102076804700286481327627835925751556331953167394878358793985117704506368997273673819982311439428095256277697166760054530423030813053341746214686077213978430740586222744342348638143813379594705465584553733826084842063225009969882852323548671121027897820389174597530232458762466666622886566916894166428160771166190468081783227909975147091628905835743283555406569149015285378177556996405908173709499311411738140973071241657425769511234058600846952038394546548515511653631460079785803188147187560639097554767229670265982841400218635542112803813941792740175718644286421794763201461902756200710259405383237892377746045420693047007390962678873784820727945529077017994183616810501174903112288703417681533374496939308856740509404476392625137938371715920604873509195024357277545188115957068440741895329372560242021919627415103809602408067833233557751109031764045284333980845115788587427721758548824022306336623679029713943330737206160287130017386041881025848996896712100203493618414300299400668973269284157468729974028167683202202108523288343153232985351773173563580638067494620480119308280813129392740693418481897033532794172622255477783064153626788563477413955916297685256258042354742900448538631963910364785230640603716434022178837550362489888983177606762525599130590284689797993735076297913666241730259476823081035237939897373839573220595406952621268396389236824666471527515312828317057019961536140225467419455220622454577359377282100699675828702119033507502662786963495888112091024057891991326400868760063145211829063274215855320965091997482726654548030539718375746147223231812893708709321384189125687245412068185313723611216399580168541736707093657644347519078996955238587353637366744091241284905749784227831389892088162987200458190331497461518882982382419724321968256198711424455305257997017308068434290321300107041615557255543476971267769075861067160355271535002615172765516180641801347810533529036872890763461741649303231580276474423634532114405949645783399134714813912886731878604210920451035537618923219888127554281296504448136561586707906747845989235308675432558715776089604115501930825543035444406776500703461686773695692179310123553437004106680000940589384258085917900769455288447167117725463564303673149340838525877552911890240420832929760901976331282850628491192517280839972569607880378492727880557927710451800903970282007317078159870396999110796936604216735500689343165895963948548718611187286858882496070615347418629291185343136194913651322031344217778154734179290243328259076383299173001753289672161916379147045299344999267471570921109178183547723378618112510575301573337165171879812489366968568161478468820861018891320488372802013946286765989098077656553753089314335173271311104885299747219271266354098513104039143818513784408118180062521503927015562338783090189690361559456149162829620904334784894036858508764672820736119156862259876791715861434300018789800483374353254213455813427099502436372885061257252895748773666623450662437851630466744562939380646060666975345641629479282583801752626111326355672962756713852784009112298781242508554647932980739550471486534609203991133040797129671185837441819009689117545187560500227189393585623977009138658045426602865451606097835232956264531617304871946877136027563082238602992704048210585476608989418523349326080466465246692408988679728508003550569694655164216569348660927149252020643168898958794683291995605209877882204895435416483868041859428220778219723338047193734952665944010543236204783464058796868137099398960990315697910077883210000890367714371905701021486852887595264436154098428140844952680748320953117435398482676922499185431949699215654075732304399707069271163956652761684702018222482731756188342105585180376458955760234337308135357889061947581263809676762342143445105719858795890791361831945914699437663806913346127467488111681089361002887534571234863432504652558134385521733797629251632615309867387944478006507721228000013845978387585509597716887298777535880671394874904770267562630781919991277279928650604096649903458083348279504013865514468199348431732064712468993209418419160393619861732058600321124324151378428999950398742722324273679047332530520948176703812001554528245283857688159461037833180463240310151574939475101801717443889718637848755922852988239003336180123126783519043619140632465324009880121671617326153771262206179513053907265442665283982374398749158624968076917304816147872477380372921152674395790332040439006737327733304623173603392155387356263072936083500056794246313511928080994902579041521937121613383583033714002061215934121880442564669546175829309204328775347165663159394125897305369019271582801305032315269625215757835616545337741031443858991042590540063801525447322117311061917853849546671738231190749956984187638064463371424056609975245312223417034978515318510136040682624785201221704959325454508467064724964622897759666916054014956889408960980283427792345003538924925281807547403113521769631123402673799844149978992018936355989603400957281675790765224283994306586755344768724215912242818064753900527921773903231194603241994168983779051863999132238520828634692901723831804859222834314191869693786620771399670616306397759357709156122100141484343556275625712585732849694094268738831098500650669433354853993580535709706934335502710805315121803877849849578012248836204898010905522652985751389304576941794782435344724750818027973326646470657946972715863269993709506977759802054414440882396324773677292179653827277820386792607091526079121476013507108029769807935317475341516538631192621736160804183377472899046427660630188765796709762725465175763793188650009552394047313168101042827208494507049244471897771608608860570148248282165912462875110337834450679682016590405824669863131804191683115409731504718573715912241559559158830330028568698442534967855368974694707251464607201525010976406387412372829530928712250486506047342970458680412920318124639824931811256451701820189353515256998652289939636278271889301554813896837675336811270170352725976969556135331392304264432443489182130685611055207872289068727017627739429296833079807278465738619808062536426506264212719551177219509084390508279203785019108494278657501339079434572142256761983035825832099577986161670424815139860316419847895804181452176775242948975220913082746795055723847655156800859004885696140763268968448980773494443730966348877275614375529070862734965519321084203250585434117721528243060166705989566665760184063966700270302727616479801697633473330366918835587819357636855493038871205744788924070006032200454179628054683220529402495740791303203104929389330372770892444662169178233193264609615513897351053945563390196451503686898937754589406980847829874254502595352446837152034430276530140544372914098269151406808042571019872537834552884492225363386716188079188535572678179307818189683572531619837334598054766420936095382884410830129805532432871408042141665084792531905644157487648904903298827127401237765988649136212406422239260803739872475479860262742697092980450489240398117028365617374364051436383050356088779764961665736558831799995837309995350999516689950234471686092819473381963581792330515813749379414227350019216069101992265304007176064623701036369924966988248291101091784128812635185564267483846587242499471027357836447968419947867649404717287457520949416185579153073494389902675124262836312055072487213873979973006690660463870699118850845383874409410169735585174599126118925068543516387037989770672113413208868389013483756129155059823298264713354388874175623233489125045629187723173460568316932406868133222272135489743988498648233071799354527307535585427062941653874336645285703965732247659480566537587207439741061807431036680470687522522451069039752640055288914884351563947427330425553302216038242861162347105875972609720685391237757216264429472394237898297975030197859454589281418633827487936120015488929975043054055971378249939587567826589538161053846974296584754632870124482821748426573776084998335217873225248102850535812282366506916281225894594012557362463542664662746509084655232644875339906954885912529196328954250587845692001914644372577224048245658298351815887677480985541753984970046903362912945383251968456190381442174539223824757221932480438101733925442556840425813291621180430063047161501065583345071092457904997500608827117460854931221314687951327952819971395242231111200259697100164395175595393880325594287078597103624369884967692519619589083514751799872176863549811178448223042951974117263006069496590293424903411166093875392178943485547215567889160793166935365701432395679166063084498394449332037853392864216438695927539742105346071173613154510095114894065131344207464625133817441778803910635961371231530203173219976738057316208915110123918823296939763521439641299452312143555181252395330439617625200341311016794221841200655412410708704531953325399333036383754849263464847565545163468083001094190181097831252344838379203980196155130513842200520245622198605366023772740084113112113515131397433895313378277642475492691004166787802749707702831451520991589698756289522691165370381844610887711587647976004967919388904414480649432223213811046183804463051016711773538360266222575776181531765470287987948436184813058692907509581336474207393600787042363603663663892859825518367739346568455301466611591708720499365049939233577819941278155420346010400172609733602542633205271469433684703005191364476179709623851896981350757789443181620108609896175268729373394700858122937622053782756607931741667101927979568190344734509103850686493084631247536342082930363038439930451122321428832049029355906331465292844629712953421416521025580157429584536132875776559802843363354176956928404764270362193551002193213313151326979137923376939151040706225320868465503915730790771897637139957691887425478575211255774919594235287681078641123115786685801891613262778557378174821657066718666395057490593426932830002108633077578852448051319475105272260224959732221288608098962400341393792737472473900490831287292004148741192586567023899749247931345122112649449444508297512879269106310850667093305748876438362165573952711610439183677334704846835097458439411085014495980853556037320138966837943076926369599194293621172791671653712659960605022933929585582953308369145292245692406920160860481433743901374123968506837896591060743902511396294034923357579066996143211459696492384785723313684159801733934420724692509897223239453941402033298619917689241286996788968862296412991033106316842006398376602870386281627037513361160590995505034231337647148975385149316304124084135993606558232974431534386625240534344635741380166444043262908067292431184988630607980374301078142304621463437539585225898223049114299736192281209230498508163201173973946596909887017821620385749426314417193288148961894091353327491141856211084534586850372312819306855641829741126069553219297436414066772215638945789845389031053024016103932144650102207243417361710729606061052711563583253801385941795425505289178138180931277345781970947490281604359843491006822081969308309249817305497388700509501754786145621550852178362979056639975379948000095764034450223396113667008524377545070020559918391417801831564426535367431274361851030404653506811973284281858448268334831470886300270342741751660148671649516642704777026138329189235344532600214294673303870635500534563677356096206766101949410851130904445737397986537937974595671806372411073155978914369954862184267931138935565460613862175875004491633117569797141337928837485849013972651282452715909764893482944980148224121419158766676919623259922874925368898786795451530086204245077665063342255061362660617436550183572054094056765522770338178210522672582256071031899724954207610152356738198722860469160754901894336340601075774370935522993575494233166178601090690261904408969457424599836266316594819860754133267579976553698013862795937234216172627251932049299450194632255045656847132186533074340506236617760780984541713267843198313870973716873786467822345705947480717342779989700735293211218510874625684733160150088584450121566086213628106422619614701717790341638428226243061847616157774758295357540180283492754536869441944269460691064326262960670232588998568172511963645616135578809862413115915966003073091557705780243185472345252857062361358597838027129388775322615136067258161324404313427913085007709274869510776814278442643816748782635458782553685770360542890160434376031119814404260930911254411032952932730168270294988675655681012912284270165399503869471769662408773787294205840445703043440151457479594475330082533558661412593349208022000831588097374054278180035906862424299866932794946634297411024783347040252282399567337813747705860042118234976337697765993158230895923836235944289923492408723984354359416471475022549888858435844638244442200768885788155390234466638807710439228224096201202245151057715080888162480610664672098608959097922281705541171277366969879220910083187053684297296151819603978400621253583969061554734062424224873057238871334723465514646630582888651957200925644125951827369763804359239884452391622050827440410968391271117170304121976321053705926933625098002275104819683195313422900397901477467582527422880422624627957240435060968382909280239125715403935889078023655355680898180966270379263118332053939246040855414463653893591101705798964053277733365978569413661993296099856595950824913216165916694132213586848173536840651481008828834318131217082281653139232073781621223773498487667459106742401462633412802794273970295420130416604719924554212149559824376201121642998365401870334620549852022793026052785347705895041907483661273753454727303131365243318815654908300021322205142097108628621733883062586837403183324805845437761638618799319875808703650543545262213553118433884525835532335009280231395783078971414916844559692524984603047817224638788658411930093457782294951595924004233287037508713458252691496725310527365018622928577534432643761195896551957348014336965902520089250652073479253847190266659224570488586760465717992681908683264321915009765155732123519867683986661533692490404757782536285285048503382999802302009861009466635683378193800027261844335622900537445525571032525819888750713014560272443064441850369467852246960149952355718821606485446516700049552741819238001858483812091810547280859693070181925211391092508980852435050800432352914362312835211088311664110215375439923377782562649277152755654325251966979352068318832057568793170689024598434264477550800924518801765056167312873376283978260709178936446923843479327569621415847228874435748295971019980229272518878084763826373061524856663604312784797230390452451538629098566888076054956399885528890816780228753873635232413173457264828583277662647589708353683134607978405676270673718071969822213647052413014155298734081493073299362079903011267845714072809652694277135487960576073101712134653990061066846635515367974987325217177864793365625561132733452620142010556954082927149656358129200100512473415523352675909086744620642782357487367530031232847067246483115326966968537757261543477586008223089348719580587025889430849108969152927776408033651663036571658582004299390060091692393541770510967076021811299603699593547010638243666808299721333655802707257933938216890024897630021374493545344616328704141609538845983218224746439917980721231148079728447330193440341312984257864042561898943850608120758802572189861823232247566491551875935453542440251714882478663808491579388824362489751544586645119231654496271912776566007981551229650536510124804808889479742539692354946486643921381247461693545714623248746624572031161382246801139971779769181811717162488061422001041682236194805371327546661630375020581771851537112453988584276960157920908755629978402705585968075404114806970259962797785632876747135418453491973777976044802274096815968365273116771067644827391927130467310302907748488695825882579402968851786767834083008539188606959750208285349329232637354010981073795407735844892706089390322616393439691650792540372309708445670737059964425117181597457853749922474015392766732749319427071156247491405818405688731483031907686014141401901525119837769855605886501911086416126535154320455920296166592289597140895018329142961749778710018966539162541129319829834883523362356390161072048640787878420424761178527763997282790957648243718452037826192743859192438521982271340492400911087393063973048036664370206842413583966950731959789281369773845498215487529834969259532623310397230090464256858499660532357304767017608970248052729011485390532769541660648483378805362704014153088831010664289818965517258509037722555116076710094303457423415138853768039536316580101332124793835953910828729620836053105522336470714471657783009041893779038140421772282688245222008270875943184623603817920974528038668919355034225219904476202668832627986629667173755207545568214196919045246545892044797786871458366106319764788154099006479361959047860783265281913083204530743453040849415827403671174904499911711751855022656516847704780326270079423210046153353895501070874190239330948397587471405372969220026391230830124732108785764501132053753852840263150789436832848152095957493012065871483424446551922023445767557791189594311645592422937882015383880721616360731153355565724287376150216027377007660318564513431535196005309625496519624842516005286086089325061152462835326570463400162269730427722733735268757250311353301476408288363310923202172171028876401850867014362071673354548136231584258373850645437127797217620920325814641297677329897998347381995785813409287992738861457745613303013063523012603124083860544582052083223418778090862016749902616781938776897311700818689469199904884955107173478286124867071294651518202430791233844233319128514537504661410413318620800760611079515457206744126298668011720336893057605688380952342743981441893691365462731213627230849076915119214575383150077988958311326478910711251326982722035105375271211396686494918892282692683153354073409818233427257163363665213862503411198263582120863856522389566138023505941180394280366255333497305339285591021624214242497561559066249235946132951040399521400051306867051226780008754208573465839933344201372800357515293365837862684459742682025965167436096194215278125621909393703540815452547694160820825068442200264184061879374193786703679198861286832915069956876662604129773749455597265272483158228736206793740318969882352556939794449458353050774798183482554048521090980972847427556066423740481896890607031400117638436160163190253418248338728643022966619747991468698447287373157271628636397370722817987845798695034948748464740710405723664226744608086979720871388586228799450857550336111459604076073574258897985477742776297396246036292252806367226311676006306631701137773196107259203999006655575435726315694322352019903141978402632199079762738288765716044395202521694905640881304762968458407894571280506485731807639525970567663384468975340874950502949673268638074276297171277398353268833753557559571476429395361335264507857134970729515782826509561827018139691068922203473074999705822006769316945078959254165982084494968606222069456666617862561928648115575151308374995600461906192613968231170487813950930369990687203420242736331769820688229628426760144039087424254318832405992107517707417558180783360059658973941833523402001821123135328032858948691300780684073393243960190378736062388578854873430206611518859106424257528143794344700461567484358577325528970350986936051395198523696419485610766138261030221782439680129093668151506520851321612989231455504707966525452123942755148853473069580586622462087757067560865009624329312639297710188838400547442518931392991007069514978858634590255051955809355577213979810733838417325527745873820076263657874648338202131010409163558396900296877332840102353072419909204225519579798389754946160831671147441477454159744622640331307128065293827637504382848834738748873876877325035706472534172634521650214006937580911124026308962882416631764259265638916914193979944527329005318007764952602853532466677205730170035217574192911476352071954085518097343791099185494081555686474017710350212735524863121546257048850129145028095538902613684867240069614248918280721290378882853944333785249276252408514746544699078053187741885070842268976793958730666731275284197476351144514632442422579132948371699199113390385792590065218431052818246452574605632448698481127470827340828692687840596540479259153377716416863909126644626698641324472639963511510839443295615809044421233134711190731985616945293628719521399371280385094308281373211311631620071661712898988992074249190859237074551066438367077181286075534553106921086166240174300313456304544954902379642582390500933519801885701734549275782460374771236340766494999600532373771481302731587609183709410119701393085820023419183938562281075722528001663505751262307091312943962939241006741359443467241831772643844954340637991225775034168513311818681995987188034635006244408642387166905811652042620763248534366106143967351639194150666431391127340689791615516576495785789024187887582919181646007090548372989373875960822000394055856137207664281144704839966129982491879401294838303146909165640612170567115690496416155194750478404764076891687513700051738827968888874401125871301652837263353946348328955614348016466247401970449147208034138578188707396146758859722303603735624594072789939812866552339901041578502336696151346332618034301095513884372200310808917833151685706649366922851534461806256304030088498031042938918876718199758258945325258374269569070766092575045418697181901705559433237052389028480809726409993451208018955848306316342952270084831883836342503880315792077347811840975579532720963875000304188574690268126266207390464118882962404742555027527301216120497097361399500662607534638997761103426920562837051143755684142101343665002134106972817348887749836761285636605657598555570834650516222518675499207078515554377724009789583875430155435728176593353682895055158045245160708772823822999051838195071989732679149912482588878939457944411678693012806523320909758409834681001985801021214844413883864178376377599659435640581768782615915148410734519605605146755856449327396877089429312057812103597351119984227125122529168588695047970913568539636083913600257559234957007223805328842551100039461705527070156347355806439119641091706353848724483318395242538058644738321373377778265451731966948188609001467461804888034914908972379006494490374578696588844416938432744725006166063514090990962055126792445065454665707448210020627215413157507236164385096316169530428146362809725874904938268430077540440155307669877814637099083678387088331443156057942438294167222409218304206875776276030720405912431075150812658946513453592713426105024959969797965662587809326731720808657443378149627831250763078530704444493551086797322024881807965703106839032094561357124163322261271572073693420848401639801765764811458417082989091976839982371615821925285897457323476795099130934475946188712862605273102126307845514624537760611736931729217361428602916617680316097137202872869705332820569469518812393712967790879230492319282607134989662990606595772953153000839785989428902932534905622999781099999557634648196383439465193420507782062059023813315019982215316035171998049759918479981420495821577098546879424628102928156020876219284019918760232369169803130913112097505704995869847318960558909621595517217849941413826735391982436140442115579023855068867794365720367852359180695385433722698041700151701357345982462799715882974544586401120620580451421585428640441615419607064273112085520875534982285566067696758482352795016581930123763745781723600193264031677428310393275360859056441809982952563278797965589471670211024649582714161016687651001749195506908919602431860546015415800204240181386782344626838515119320833046779100538374606379496964388273732516152862919700825829325409175148805599023021695897833001719244183710244531555040871595428112993378204215109469444757902934280629502029611675857958663916146308490938791587975273897740753398143780887218280082495881940848816997867842956561652869510234289091268089769307703758183356944635170698191198620097635463055775630564257147118779806835279485151094686740820314935478156027468565282424509491654361284095898341025596905753863815124119488083533663934723537932955314287528112757622707635595824972578386909721142262699635937060689026611327956033567326996678042620920519224722969718812120969071188942849444337193263524946732506471743780913446171614353101151510302672617526732724564856707685216741379006369937944230759543081921067604270747958655665553917281192372290472531335706246980139323950965401259448151210023092320526950556216798748871014971544815914185234862243050157602014150350640390597258487232649816892355255533188678651896982029987635596319085352863903097725038956307406827933557884510733516731453010469557373700412433665851589028406549696179590000718988969489250456883041272753190297201010068578152851709358469432642596479186389883558104197741550677423384079360204811275425185822015585516439409081915351984474762605736600929416689662895610842684678109825946058017893141872201190325965788528979281153524752042847615955872149076606425402058722971709770898465511706244681409837039398543898914316087539420756915680215439701275617064624675278061936232418169002015587937321403187460007414492871372845396813855437107066413408397114933705824774250287896249573342817510111739564304130365139298992402307555265041344006420923390586486458574105259687159428214365716736947747259524856094171337850275161251743113717384478072648677305815046171471545126729394353508201026004004770296971556762713275679996528052036425066554189115604186359937332105739958677207018898494136562829063755026057712582979156559553125726165613364451348700562432199162586744984003605509586485755358384557377144767837252080928236918434088094050253386269953121819812846441927906301119311822940235795864164248724729693464989747327752641116344721150656813228647860271103773932600974419497050885002523299735326416172868220318789153840303224380152981789306558115252890577835862315796897668260192199385037268251962943068023143093740039936385681708561866941220953207083833026357615161831495453161801636770028883574866934785225926841335618698725919050436846907423650713985121484382917129017536907115644553457413105700817941750536715506228201876082792118952508951191322933677847746559628207938309543291367351988914391450760450926573001729391395302358625619649060084502796224120123779831990868812659626596896496857319316431191975327449674150316821489918327891071790536897777420092228005636858094401416491340365511178013489699015338633641152146072607336594205915869312157524901614785089442301389954222836732800284689772720768527995392548255288948335185120474896944023869306738232898457935641148050198280260018079965099498275275208290551575363754414071081442541676501363889029198736396284878272825015446118190846816329821854017162093807765187688069400441456184149616010062609929057298028615907949102688954825587954707073510449630056504913296177425816319010374837556008197841702483616315449696996948452054109025428514537456026684693879011225962222320104888097299867264179593167058203158967905580645832667985910936851536810230431606060666400513161437738933320002899467662860777712332366434330934018359277067284867581218580791547741410967544984129362945418978058949994702318937441077340339547678407618002324241349111451907690774587255598551474071269440894945780540602681764238434593963383280462310408993815177311637271692232718945469179809440144386696064090151733419659500646352930091077909591262437498058131766567167868899483499197828145881318906284144836276437551819444028548684178157414430559050179755185505320068842358448557182962919974986030646474362976372050401594149476379637587701637027912170213035750693060271665803196186777326161312964076623740691342856176628303965520532166361289491286446286058646549856335950787609984347082229692490438405900822051562718790006832043763058890853135217073398765112738137374837125667431933112450997492370555255543787112075005607093110422138152653715163469006177574437687944877112968928437837275483539865799278454590835221194228870215973966393368282836583948354251339288989242914308991291102857225561651546723946994415862602203344388437834322913612355855252813240890013241098460678647912767971309295548402974896644254983459935152754433162625558504926345125456996071514295314458995372821153484083610271349570891476652017100809833315166683474615431188784494496176039847841899944685739147022707562947956694830810754929003621522112643535330473776498079132984821931352735452306608618080968038113422608337665387480568764931940824559461247570512641252892149131088143975935903742281158989270866295911454862453983599583845365089880133013465065764757038338109989435856756939088457144743453445719275362662111975545823106704684923527189475365600655894771241490905590817260286228909271963270482457875415250317664289077088779889164043065966753163407649475961734367553858548466694415266894353271460780078881789993232499445870553065293091442474297258455338066966008573920198340778456894474261932892738034729224571479777199738149797061860590993356843637573855863374501118850464252687384077233482963417489471480589451128819725753617156671674886966125983908480737254463582353853450283090265948489747352101451169049622261775770702370394394154709887592169273997917589160940860513244509614984917997139045473962948215791834001566591581820989276719374381922003531137584835020236918071574995023294569843260584288858586477191422543933287425351372739480075788418494354296497844743759133888842636365261206044628374682067559061294569721166531314247562631688748335461495598609357156760687688569342923162848829596714025175127549147149896960223168929180981911975346298535549520780144382741264319510762616641836916686802522915672643040175748520218792318705626470599001221454441484778503218476780644522879727691174118355558927272485886075871627886264991134595833210111870625587743743942303930945160161699876447338946129023750561140165847359919959790196397788639753197147628221686251118719851573100700459194133445283969452954928227107383122872948887068539226531503995929043691212905014274297379964072491311194766752094643529713445878308553014338380073774418578747949889011153133481338902336451878095888471684242495356753566930785979983022176527050970256077525599372344173507369132889628936144282266185618945819696338978423130652410938131095364991109676421513493371676037409938064766134633175943323090832689199952323195263335935696008992426145224012014669237240342728854155493563401340685915235255608887637446009905531800754533518816814783790245460118445086827582678679411044521597426801811413002466796915405722237737657302520684836691660889989145597254850677546065129283286186462088921476555178974562560417075893375231482704511752260510353170847707551259608471145191735477673584976017162706440163937156838442499313664427198608807511579870262794610030257178217001671612116009919508153258492661672400320347678236865453701409580201231528457514182969313417097944389975217743538239107724507785583263978648971119139368563669952069898507632631701086332815297021828861618945325426561267810422892379878900788495372415643795409763262978330299796786930019212581138342868090781090052366524185861821606669896234083048645683728441016907195545500570272729679379780351433194555967428245690609578914736954711665959918857800911047181926258911903926171369982971906435997244213007354055341361330209331017627612485473144390370828185128267819505888364973027442289395648187852298889484277761688917199851364664903516284483229905751969023207070982744434424114922431294945634712150256678549529854393746455876651797961869939185800220370139161603847504815417803070472714967755064241063555765659591197563385208575589289503114689809236067278163053158697118483955299364927763678709357643019832882630125843968161206250611719327603611597285039555326520283454310571126587940460479892170774683852571427564525331899722502435027098377632905097821983235076350569504633750982924156548091348449234621376411755195425551774009196638363254747163788144783431560346064758512156893852961631713238790201158817386730380867934138312084664690109948135959818030101150919755934385972423271307050714740138448973151662937898882470897440509580097884498506490518900703247494997772567360906788505661718362060331737113344320878988389639418844810499306334048178241730738742425821876662952840845392745920801201639770699815402519971097211296661550068931263863291964083163171319700034816958214065274354504632195417091351669002700732091321193459441976638233062372200497576797441134098126858347028086116072797827552517205276437364917791995569546406524906813822451899939611172404858888821653884275827273394827215224756506410145165788477190707820720519021884028452469776878004899357999865699680403303463089777491953337818990215029860306319543029562765992755094748959863347285305231578318639887593794575602799514966986051825463401719971792702703040972763952701388668016785574911221381916674939510477100809152700370602181646750889474453042441062162998988448820801415050645644505898795049787107857716183849293440035283006146436551330605965576706685816447394270280623914506848723888788274557525023432486386409443861006462936536028859072298612917142688534401928121834151305907905785882807661689054686520412521580903345003317015455736438247804693335618825728163717875966597513342430682426589561101218535394254977296360662834041960030480668931705201224159825370634357114183291074233331103431493251002754224212258749146706831303350619605709730906981285717522041668826963944359034312075708509781895037741435175699360468060414636047594826990827568636152990625446123905781640562546997981231764466093042007096273916969018827538639567086524636198230506398832110826505334277216631490328254196375826237074819082270750761321919605715816008053101585852728096801465615712897566412370530060246591931160150879244375494797111962625850399617780728572306600710755970036400599953329117918156874262090832714472597303857872165431857319330451231459884006234811769582041392902457795400987575649585566179909507009114213986897141513460288279390016099282819339428096428496592663247500531704273971463023679104597480778875614924910232325243706288877973404587865861689899273619330888449834467026748063842861476867111681968622231778329132990018977321506820374531041710542502058480114410578341447601024028632371375381411687398894328072907645150800235584507801016530785350386448419034825737492349443975061737073438285119248668925467751356346996548715625179632995102789710056753514003171484318078401830226324211898122151286855958041108614144790065180925460229189880716188231912667100970897763207948763778847730389128487387055097451470792041805753381296028210977465871949102234501616260504512562413301908258457215153366698416936666678585753960303667209334418556104351411446187951905386510302127721619798064285632144772263498125337656065585317643227915413693053732773511475734887578736441172030767791144143737511903350441432575473039000204405830343199435081604881875539387953237558824849576538321846184159147049731477373019033306567154591072603615403439330199883301665972729183273403467149425241534438223475508547594832540247356970239612299024529709598607495656542008004134378318216706376048138382658840641601064008061174268129264516670585511073230160266852793076392017567477568311928159417766329544967170169266445793644828281547335398444084162291555856050972708529447822508760810080666896414622068314175999607423605190494408769076644363981310251750457086996867118750347804163416577218011319775824104155288944789663118136564342435843128495954120700194034932773984390174498659369569167154384125154770294723984839224854377604946092791337423202535223600901886659377505582236718472462753784870029114245523685062588714514423081708932053545958487175784263173231495871079598557935944419270392005681130512162038906738124950193367694047987381940189426751232665043217607416848434558660909261557110475678603015052473574656273002758400806223780831158022121026544522980918407840881936513062733646711029544654785701375544067590993718932071330901860261035133104115087549510845907075537635799145241227027789734888445644714972394080029972508960348945246161797079650696206052695129415664791412605326783084505638713753390183818969177790066335230006425864643005670791162939213032654292448218419139429247978745970518542299079902679840429256074747071571978699214995533243854334042222615897957284904469439054787115323763065307454213049725789128834076508358795231227090183512707665063634996043759044830276856532978841156177853439834750296572035936184321762620444004510615533104470990241888253049910395869197161836762293946207877582779017272084812064406847177575373557511265521289739607828366685500035314293413428292144751485517072589326697094949008194867124191385265433670940165180276581397130453126090695664615981621847263026686140503939673149717676835453813864741564238531970666911954357765748899739695020008773852986664411226085255459833653670745008915095992895374307816377600288651509477954137826080777641278065289536338773933334944039709885992589249625147066231870952354991274664318701647869069162383105735033974619062996807503445842515630903408536620829126499009247753603144622020860606758685870360128092852196018950453715927380523851925501013633762425783081777312011554249174765047697785725783979260621227844898226000515765896233611608448708176726308068604191259342200472632740898942753317480703695661290268800002503467070652498511338986108477628711794968624241250467341579934403876711796888694144236099780848348330174792860046981815705598632803335078738448824280616465196951782600511826179196182630007549738929806083786319839103160239706518702806164814938174305943085475759984740827801622110263945698070492144043355259282607421472287188164769578068351491023412041967690125321078721064762639392707876632479259073792151236135712347180605738646466198511405543796419128762742529496229345161248774340773733019625781829303317235513136286487826471927581952955007216166791464694154781967487815277995073629005155380613158181298690659221301962066687421317743634075555895927597702175925072205380407438011421624206745579101058879768767342457179161941790169029399271179326920804623894783615464846719738252388896645063289796878634503760168445856554733446276592525413987414041702912201206697504897505914654230677426493360868333430855797122954194436427051522040050895652922880357361472166113809845550775798619023387828215664558921194610152215178974399420711564646924370237284848604802720076275579582289775250532168476778209834040520898324471262645070782407679128209456446310358989508701498462070950086170216958015822339235780369345196556986113123920923899005399960544665730919652127042785888308131599635854039278074038300665876564514949013211480734734539051084548844607446125246268732744807388523395122468594797119316923310230744872508998599965830585242635408776370213231245853575231969270635649157831680523287558460846106518806239529955723604400852418903160979294795013664601618888419808759552818777207575251489977881025756782876501617531065316700721531721555947418100443718805376841379110615901335735431352403879519524683118977183730607698415909730826526895215936765811468865082443160456633557665518747859764397397045161350226456281830222848233056080217788230123806336371645574073331504425330635321756511761400560437217649093197329863301086494533795318007729488758011025378923025023376262848688714686253037808201278275555663907759885325643866252188323861096774013536243260089620144348050932870635687849925267998194912112341939173296541722207023299447201656290186132186633270947586324356404623116838829219802744166989306045956959528273367273009904837854565140538987512360163473155912402388893187035987009061106298732623106667518309906472730468905476718821726772094896721493287227511163608183672573110470626950974159257687785905552768817817398299774169515154631201779246940581229191006715401291820887455805245588819771299036359566064599237554171295395330945414586502384247794278380827408602382014328364263929845987775821714692384930473619999724556119857866220976687900011300032124369718771701540689702158852593756286556019947631954121007740771078198913426541309062593485750663667676349783251660929125292874477642089969281175716239175696017662905015907245930702710366680124578452583043430014754906849779147919934777907553843587749395530078318051901065043071378889955953425644345134770910953099278013812584236248186987366802251629328899654204865327750385481931684181941990486792616741154918640201773922747365150432118302007985439147555765043714570892873992874980678866485795095203670788370476747217617457528405748313524833300563947928252327392854174757343673955934980484341444497089152847119914879057823565170797810911931204248910669821150739157959826780406798426647125815270285973086896159917034924540645707795105726751775209786375220500539336775411003709268526740763008781720502892693378340671250579135440362996936064976253035650623092704108321667569608780196859806256894753889897456370983081599703459862816518582320087329610489428527429436913821794345072820674803348295289645644071775462514974016773812767232360752256570316293976980871806679720104990409569144093242201893469731578814021132599665774743685519495861353780045600344885560742944220249373866271131405172461349790847473781871109948483347004460167885704083215607448884818419278257738700147025297280416605360946925412634145914886054733546739538610819620453371058664472073838370670105000902337490714181259312365359898171803815321881968423987855302407908884655726172041775257594237370308152806270537541360374066528844580920083933209412875975841578985363852634908293218625473639668289500038158176798071415392228654358973232604451396449316983449225205730177482259623347845548402213915683177092544689222078890590853731902461018326425055084332564239215745993003318821069298135683066380011059753237524691557978705183560196883301483622092901536120962023861357425150857113345629002058754471839066854022119004857489508384174934349688309686706355932076027128101462302505640526943108602839806252673525259931644475465141547663383296196689022582407019100880356277223597052268136708598501535495224316557492124022204821619580478736995375200155408479293058031426008134364488767279717313107040502596799906476394461706197067041339079913794411507545175129721680283938231872429898210250561569483359321264094603973663344327135241804790050188638654860141963054686056432840581512070556873573612732499434741112237316045360651086979843154863217884072225310410846663944747942314390248329629439614798992397914367383108665586667027607291850197309935489635240869381883873105258560571221537835494093566541373157043713631022893654937651799996936681209545283243737086971008742241344207884266253463046628109317881559167417449241739657884687974550447089043748239464500516936425313204094618136735123148455904986309006449072841356406881124806649838639000795830937785800280881121367410459565504956743617976807976636918874007905880545115689046213181089786187753609195234819144654020082273667050752993643570206577041663696350741534971020950537313843302361261352092064363826562130126209333819414494856585893648270299481750857212906305770344052925338051549299176529837053643919903151881418014318473125435013937669422001846541563674551332678436417942841351701438436840706108818147118200728003976016574346175603944605714514500693659338838806774204036515758418148582093676021541331699518047458119324409545493381728801297911544072075123515661704791126079016344518521316278291259337321339792249333077285757392715865953553106499240401639042508900899990307823616505014601449779973364939109632642241270275718472837321471838444732048768301475172068116761452742814107231193784105344147300207403833777904254909937525717485845122790222656233730803963146177752144913749854940205279165200695256937546941295361475432392480197785815054565788316983937618207304720839690224018014401867851744984521169413370956245049000000053409277791109664078971152723084480876738515135193973880207528121669464706534509712670469214531493677640191231201678871279206520119532268531386586539593555087891252515937281372058230033347028529920824897331474550080693864852314711321156760733364418019734311154505078084415768170401646833848570096928114856202138476699715904667564581008263099848642760337116658160286229563438669146329106637831739338871797886849009819401947716298625158069698891126837080229599250190351583824838597588669722676768086510906130216314981030177891134422895821283897878831879852455085324023540698181492009610884614667689737517205304661946955142106091440511022099965953686932383093949523733592447726091908914551824353070739006313555866666792781182675365145561056521460763439235684018835996058020297304727242174415492203335690800606070593474615396290509558289707323188841056942747156423634198084101269588922295516408163495129217505026839938535855622538601829838075898042073619308629585271857990799620529891209271642948963131086093276246693768091914601435525321679717653937692555188160377872412672326934478436924846736849501688404495114261956502722180033831032793153607143565016887026734044676310782601745673381178906773049187914339963817948513387259293763471465134845480756599390870195910407807068127351567323424570563153500176252504649593634834075834913534573745010951887664317384473659886065998781749905188685472875453236627866607318213779919988741994830821511038440698771747728389303668321125748449804287058843806063888143739979789822807638860983592023030257068895274664016266660138807309860995247221572523030109000903062980157364439822468327300336116414894415984815150641459344312835932553828505212813595857821899883238639020301978059262318748719303212756483801463230287749534018326173353187387686084734543072965033133387500242988030020978012748947825482607617785066016643609445273583889612848797371988642284832040999113622477685095685740904127995006406920656232541374720774010376463367746853548775487431498872615226166215438558717964183193719324550105172583101956790352767339964156196131591019952772830596034967415961483253689941325891705274851921591742614044112564294911955521632132888126563758589679301986166564859784759316404889382625426313693112420030330387680354155868623273913554253798466986726998892033234718427265447349308331503219492134151474351555114258991826168551510280516227003966954834929162905720451032566238850982029128561910613862844490691666341395110342814987280229898517987305712703224926739280222722521744170360045815705986010184892762923572893997023127595598388540633707990362771722715113541294532447558038427316273323871969965700264908490700851383509940967278879440758361532520768490855690180524396202847405971602670726182407261603031374329153882768921166123536650381394928048756415660318447780837883269699110896379644882723353411785610238344780166526655425072822875256478232422017478911395810896549805570911133662406562856404988501737107885067946327297606081526887431821993388528769835110908291205405174156678688949702013877687458871503349380372638165124678353812822562448411183506336643668847468777791049076172331386656920533828109792958782665499892182481541954622575910793340678383826973035669894544804169747643100032916721664289238553423258739809423516282851308080840349180402966886447087667804464825165183457305768808918396029084903264545078691198523758524523648925345624134776210619489535752790031346339107761448253539319265188379544579688002380456748166258191847462214646515643783008953202372880045914887329513670454933519294231790640446067925222119118764840429623379486827257242536289701272650718505542339255129620444994627576704806512366158742067555277966943292844094018746648170300613356629459323392885715471187994586633825370357639041796197326679297065985036528953986072549799387401660686113152824814108373457994126897742121268331557165461647778153806736068844965066709917112987818544787440305255776247477876693828955462966523268564084604927682292785753257268828526583530726169235481029917702479772918263679902426074128670140722652009825565075994229897178461777237646921585632563421495612159800804270022050389931523175838925514369455691546009031048596091863247735069658182629800059860800132815475942435950463370742771039814689765966779398108605126162597765047041702894383530706065178954950567736923190248984481602668606114398306052614423725243243753764878081789703849302487063954326796474053714347486910455312571579842724575009081530728519107754302139950108443704541241659868058747726028920303269358248669852453645404067549896355420084299142906647514506016986667609331864735405606564838602233471784859675957508185160910442402710436093107693319909698532119862200987056140616424148043487532784740445794269852679845733623658978998745357865355506625444021488209565865620449428504869321617169562392664715337588765827033095801020166210382833147411234897171912372503215210718196088821427898697337289054280624634399064657581046635955795496958231452873235925325948275344326302374402540565649080567601891201340097741730979557550570777302680792882672127939694234642170618577835288440154193277198548012080264623284265890925371816888700415007710698431728961882477596619656431417466208029997758719525094685350461530352324853148647437025783059084518751220603366412610263480830516449081565229648072453502777711707624906904055791872995076456658261946737004923744073352934634678751983810974341760195810869219306644683755516735634632535305432675533745865527002398627343294957953079513735607219033244240370428722495852303877505818447202090754675021875346163322557599077016687009685619999684233592010788848732070936886414535957207948109370827714513774347119064921459324446538717250759063736237752252457611950096765210438047915633351841419020366945116560723833615906326977932564321342967252418952663923807852080727194959065993636680033826976756633000661905560622367195598359882438029638723473148176659081841061450505538673973006183864166771855243061076241501918123404883855009049233701803994000451035359066485158375374044369146937394034800492738923156483419070896926509563367590132522023424920959565204214208782371461454473575424990097217713432076861668540369600285656737190801380708830839450776670230188066235634805395871121414229109625298326981733853723327075284751990250674296939006745734218686817871624285655039284354275671188125236055069937770214338920032954003315603653704065741950510272791188579093257290700094345598456421727600562177891145122691814668703787418905470161133070410601939919434576275389040364223872512697553165604065994734755082371777904541875125572599368969019403120999928739863336690322643293648026293020525107789288722359816751840174139977497005378036087165220827951702169590743198033796010699583050110087648677525916627908991089895079619334202323282525957967662388658696329016451638594482843459965505403904721204204443206479796842362457769929761673991386105207467899419457346693923418549271683657150977953507982614462618609276052197631377081746399580898702031638748041172871843889263028318397969157648407112852888012132373346233469393287034147538060057152564204684741547256738117099714069709300150134206300167786936836179952036512296294316290102256924178814004181226429835332752890645834548480048199498510905009296951776662796757810529413492079829108691855099715331551795468369307981363623776865690133146930240739799348004879916647802039626541749336708349911325129139775865081992826948394766289572027146307746531387836697741303675013051912321915743617690438821039721515327140929527718196732161952330481266010065539745958814071786287423488348239820493756644284594703044810065521212705738468457815933886001902762815651200387721239866363040823867215393896652966084997587062638437517152520373068550718458101162146151720987015662306512607540557485041359845574440696214464162087564065550711972428243926594448764577184751433224446743386860524795503829904270380125538149311971126198141076475024088715306810584229472311240006133129597365582328016625922542310096249900817245752132110365424876445836455394730810868624185995632061370522826254883570772851673854828048628894795285907226137787616873520241789826266385639869182841955164389008332180809253394014062061002660664407198536270158215048036283484081090151820595063544304402210729163662260363493948989736721941220150760161721296415569397964222356875876351161431996896513668794044861823226778272186167008128260725439023281464102993314065699728941185195121862640940312383671916047645451948502700954162328795874347717075103929321671393700047044760155848912387734105046638658020045884586292554358072582119980026103523873292379673953367933525988923812370324627327545851701055881778226487214100592440161609607122697953167128435295702231152016480063061306216069391467149466285204409090269022197728362107059887723820528173175975288377372771735691849631816152842952161868884132162627002385937267071395446525034067964415785001588400446711427159080431672226019083768813955021451592700389429027860449947420011696104570855425684407200900109904951956993813896611696817329630355720548403883970201588163892522936755681373710676461416482820385992381355435549856089815988344192115384108255217532931342897327628649153377587766946490128331495066957472442948862908095325948177168383836164304887884295172095505019447256635813302952610933739631939544896693965644782344146757793517324552004243730794289939214400167821410723611691174941339043866221894150462065338452542316299882170659394846631602670198277168571951899617277796106148345912510408043738247440673200108175221390077029250565584761014199549632594737196255759768966760060980065073586814598836070381509155405069398180580841535814979071893177961707415962834922298103913262307835263235843440804446453100473180320367780839857745055833675598160908713367656879465752305595013967634046554757069716622229669161820366370434949912857936100419739826037310936007020243132321569041431223584846517723990164528561456316570868751809411605218731559943878151862695394997576343864069542069025582606775114366972487828283923741015513706788459256293364145676060375386955640206812353599041777603564118341200446781651119640850994883405795990295184141099348086038737460307301794657447129856684883042569648709640999374447395711724219894552815578034425973684251056494651284008148129048207995338132357835366311020930661088065833637431225095206456032254453325139355150765549749506009338465862829758714216111408115563214176056560438315531464024468862585903072919333104949647849260620774611444377432171555437277066904541898186297409377775993563953963420757910992701229167513224277596900721850845293989986015197678367130159329594163092983201955269988296884623556562488133512917314019544148885702964287711256150154821400210070306069857489381418639399568368878684131209270737229342946128689457668258979008546310275577069578832330558151488867499074299514700647870778532433163776834297029436797918623373655411322874021108626777372902858628871354538742226326599463837944022198727993952388045162036317604143424103820939712107826214823749290905302480196245001745075153484218568682994588779610556186717371714672804950622363837468716915284067477127196995476690769041033911214310019599640724512744495290523337520608375427408922706963058896652450804711882769527279767030358632875445267546791990765126824680759536725387664139043143444432821064766459079505068406102880544496837999892144487892003871201263764853124156998315563540248546348393982380492306835751957771752050302306897531221973925368351272733231556067246341242468684345725611785741499874349286618706126665082722184870905824341515862382652105299985127907911188692005181039992412353208215430028311970253323673556566580030020358813641237926482987804999304579403918785296278017211120218383484900715323915644913525213758265537549568987906209897367636343147378680703098083061796320509857606326545128164711269277607143995665496909019978487732196092101697601736909347964780900373461814395456658696865924759827274182192248619843514787537726920759295018236008701362200110171470087504987654540255647009364247731555524645897571955747543184329887800247785534139394862243783303572753499023546050047639290292483582648656480457975859523582051554393897367306717377700919701319261033555801863731783355828557841355567545418767835324944785554120783542846251250267525041076582943322398630968144329394281131882483759594143707847114244886210682814086657026653001264444054005108771182840307643369788869353127385546467851018908385328283658242326963020485241545167135077933203324689924321413885413909409692040388216185404892584731908121848604335405776533697581807543771126167157525577546569477394682080367050744983897006864984873569041268492733117804602849658663819245506805084742123017907435697535111148878089170368992529848598501917917252568250186296594097862468250969923300606756186103311642528197366220086534089557831255494142833074804799703803249809442205545830049299633607651820880008856377760078069139814272205938830203702716557019482206183133119565615386600207730789897352850939884105127564352926609147324272681148234798410790721888492635321667442670336140422636462314184874083254595402533659224977625920468527263974427399322329650221965557489034012300710932940352725766440483333596700993221150053253450164665720007308094385629471322458634942444798996432651634959348291675296396159280814747957440504395352813167148056088504038168881800211892599201517877404377260211751144644785891804992388660295634162270628339713335097271805380576671396659161994175556545677600216870480007090649857784604960517630589761300783231679361397023507001252935795191050500284670753349769231020677076267764142488003852766505712447673146265893794959495431187672911258574267055039298780472784564927134585490757163037680259122316461926540351903333157766914514526174779113209121986643452337387362842280478949341749556289163955516621413809574893103893305516146923215128836487652804828242266203449013556747324437017773190234500851728353235969920722682695313206155393042417088869073586085043668729099114585734396143150750053624822168184990068492616137802191788934328683536352663221981641441425265223072848976731931543528891453114187506467046242930598184006298647896003240254935991624801016111138760635605066604163760689422584733313804370703575312596239211106796424410904216766627974973097871442909633447173216814584448482004900686950418536429193308475692751777689049736135616003748856911779567749071649626135844549371842311250246542321708801367595079548473761248630535500414357125686972280580675961643236297544364988732692096241364104030492166214198745173157098061038909002862503434184073275311471049761342874212084679207012997508324174849664015389003024215565458138936319201428881256002627172648960907275288399528767825922832228053063883637913634301116210659508728153584728170553664297729484846659814157155377432755011661786588495011290702849685123870901919890865760877810791199521431969750942329670007907798337460414329070574906191303226757748831780962389898333108135242610565217998402649053997167320737243453512411696006333751229133369235004922254958619070153035216817829587058588856383698187202708524529524289916927115404439058308688505796842166661600392579430197337203959512834293557984166130047227062046601442368867136356640784599534867071719156460966824151734452859804142991558825662596880591325706926726027224614747415781653304136955988313485571895431009398923330033263659972188462437274280362376034625850063889567408471248969489127428771889342448403247400736763566779011454425522202062379120726320223748640368941155616576226181558531004421268138229234011766722896274745565221635286471596427197647548569209612134614199364934975168337737574064577136006023928003036685456443070301151745468220018084643677791819002020274909877603185724422744105324518629288888692458467988070959351238305633284568872482845330729757002176506301015734502094403948071370643101808893825743904639325233028392638501571453392930085522202529281391588361421501695969866993933000362993774175300810955244995056704896729722096969582955074481095529378291393084029817229297125285649574721803244202984599896418663373930518684240003376836809889041149068445019720603221033310132190372936063526553357456471695240402605768211881691808860260403187759529395248944241850713317200426902760990589406171052138924006730751186389158468191694778449491439787934783175819561002596318135462088231620685848276432655804627321649209118450468219454901700541628313061707068599765938079871819889010984819923146120203938581379479731894613137572963050984243460343371964594784753646052558007200229827129449454878182656170305426038410079006290265669697237457736539213611714477127889791165190159594279491331036614003992193303537438472229963874834131109084208639930866797175929182163698109381099095797434352803120377967066051059633384808427000561791622009784581598183337304698243355874293307177604453294131192374625575879216728652870259472654437846253167671507337021237205693553056307410609697723133202301204624338602819646416872966585571634797635037958697020018135067316086742669987286420796020866273143720017548242967459965488415701776786839701595025364486372437805529133983306704194843001721377442933587620780149599702727551642209218085224278464410401275523813157565496085645749738686155198545141094497086894342646781710971996909563146692847449588953946672317459409645914218781672308172341050467382635151241473528683050339511606264910861446770537908568746411271191738458525677572512714566911840227890966063780304537163794744509101480644439993129908909805092207457789587971132575299333978906139349405208714598685996441832892860447837372083118543154502637555774545262339557363229037576912479679671754884260627160555279419893380770147278920312247255321484214918586986435336584616956396267988464381921921339334976230288543181653957211449632602783049148416079473479679514758889835692546716615086793459126491753318239732209020808127947559050153144940782521565480420943534554954570542312736085192582030911904583311876345243230064088585552688140806431653972376650243984413524021484767467373391791807961761567683528312679220520117056343557561474110215103295970365158071242606549872941142502129109441508488829265788366585199713766205773442238184563818859280187708094283836173667169014546543280455582085633060719788428218411661322352756899982822873609111249307571034872504725813181923067840642217181577791833149851827164249587160475958628791191715860064569067487615485432774454651311293763946589759658419076704913880077046316850953451054886817773651560870458652155832791583696398899119793463077533514897494917024010231022691697155761671063092064874342224098588039489050155512973252435353017769241159694786968656488706876477457439779435762774279270758711612404414255586407097684804719660021781247681235715904410732028467508757356390406689069413418179019921297883022323151029289886454429091280520043999577676386992906071983973069337351805639062201804326184389098400980419463102659941986645216459721279833632275277548774909525476452708692415466226034329044183166895021745047109275476212409956579650939709954498762503733370445134617189854103460199359503287127531352405983793017065949920193160037026752585721372257530237019787140285014399707934451895876968814204270689600206652786282855146751769484962038863641507601817429384555848070675085636937618907721265876200907322889006949601694977927875743389856340296337029124760959771338489312398058374753006430348750914560372648477882488303929034497421200550655138344628549242017231897896073363697423434050223394220475210404514844247950469845935906349710713863712981553478148067485532675740885888858997863135570874701040634478294493042352215524934089569497356319304921307376319191439278721904224695207703033294770725405443271722393159490031864421581210697863228872511253675568563638510311508527082260614871161580949215492985715534444854332631532248584339487647525112455319045433298019510139890584881092307423989054902678222231528826097457596544586916799371359643870482685715721761208734991957799004689941705600530423370417644407071305217185292163428615365840714899802786918146151796759445536359351962583791755841489026572814878053341472551065714407808994549046892889518293188445319005314515799183620135699964425720631905469120368256022729638031968448244999996273879621508832043959999623775983733307631011428383191664411400659900640201666646360300033884951533078022008787839043956229119705366078424165098286585982337634588137868999261853225778065774788529724690330020067951371423180936365749245932977982440195790943367040442241482316897786021997509058818353643924776457275302039342116252322376213731677157792649934176435223157043798470404975339568110547445886161501225024996081357039734902360500066754189068572611742427671884967743814184190639879896396594589930100386895413377972897507237527181992773373080477460286962437654491328371046593216224938605924274520672254127376761775967526820360387762964763575452865387397569403507780220108437877681968702265013809651501981682874862984221626838146058645939591352738830733068783099551236947976516019482619457802438631764294596028576740074828783584062859483501733488325253174681210208914232007184171510821983685050293216793282275511905469069016243796670550361045322771611225718630201480060400107052032545972682025521548591239273029095516275195399607830640339433947938131311566142255272576043972427146713955200032743789384873736962465626943805045143091181758797432230149299312198574979942396923600498666349293946211187539950351978791987887744498366228907031011345768786578342470444307245534002115847523674617453482471085281609143584903558929076790425056402288410616766114713354736702348672828534394273263256599071852459021515533153386362076952750697007024150830209732433481933350225160867066095521404211805727339807710298321774156756423274595229684847663019331223908810780705942989654688492083048618226867767663694241153809482506499888936070506700552242923156564259066112568798890068854811175509222637806829782759683748152579781697215210350369025383635877592108692576768772487545283958699850937223390145502313472996150318953684517793093095164630882473198297888542164882624535901166040130346126927568650599201029738115055519518760607125195007993368339992514723781270072546158350659788671411365235818484652846382881795754905835144166358594567183580963741418691818268812485551986133959815898971176554121493642700063855905541570292405346474364508763729197196431057995761509578693508191143131534728676199687145095430692649184392473035186041442490448476130350959066431766221947966335283707814135035883065870921614050235597394890265883771118713502713746150503426299765763648184613469890892319543731785825250286948970746192551839113263986797109001477240807136130419180736590655956814094652770365359681307447352470490158841991283925126326751673035676668606864562848525447834480206761528538176029413934021418013753258220316575838035052310827264410256613357123046045506052254122930464891822476503001241293779414206557061905073168699395789014116063935222831401481318468309037494391115150392411072807578103009554731260015077092504291579162346472655020018451533647418536860196767163022265627948557129010182223258178934132103633217347181691487112860443512416096810656255760942401384157928867850956811270155262822306322091347100567551102846950674433789418317058204783552773983854721921407757025155303744167779869842725716851048623982284210988489838639836391689159021092853355324116327959055816199383179015843267538620240335457035427978943976094570253175765500825562967087425843243080177560885846967982925800881694375304682302437655020877982430338425607538636913770644329354047819784105227489036552382932659764647521944604761635802912827218694420682239583969888691406918921219755363102218687718046580955152335144102522005712692762805318652029091863725600877025238533843352133888158837411484145396889841408484138745646802084479712987854920244979421901586733613318610032550857219657416170604274761071756296397638396755190976236746744045447259653085619079568193427082042772072441554503527757309231406484129094917514482199583665616168061701386443747406190970166793511346493023240600848543113714867934142603370175241923109730791045776489009069069941158259609353578507264308024164244714227251131932235271017882790568244820783055275143637697875834256318193109529319849196182731573173077578937391680981314715397904498536123414765181442234553808610930397386769282670715667843503999715995189811777346608355244166925260330822454675275903946165329572597460619207399430253026155514967391618101386619694416736737156971252261936244491421230487194614183895122522585113705399275857957418029465742647501632120280045284383273896446855835376613971114186231075044106194226861261670493066341363823343013115462903638911603143136448486631557165567572359240669813512344680427798496190490939995410008808607072025172411591764457233211856008925958606546253534777887987926513543239050331472225476401173454736726519569528941461232637486102333260765538483185270618337854267904992521896553808565802011665340735130986457691794190035073371381130841015865626048805934924959716373901945377951546170526710988749589529522068923621900015465099033323446660502446893360900109248721226904013704122540079939586095238192429550067467598495827328188152827406257543592276020741169135851879901429616689824309752370567231481577533092411678243724231978794732491140401625566103782822519942738474367757144010235904178888795813859023040329944543506162780759828984081247270230941787835301987533398044180309425026373333165303444991378771592341709272214320495771654140871061199767131572558167029422065504447724188598383407224514377292552178357684025970197529392062650573831459465374182652054418980906875994133465399361207363586496308055132327290471120311103073858604499819399645581902922543239340498068180082621615931437665109969248030436994634393175029993054764577801315878491822748834862274275478973827096512953461091884478015137252785260639162584290725061345337176434546347949616894525216156100642404585584884080821011775244902007687504770979554522518238184984614937103082182661313739319488042239390425638794633098274734006507942576243095670488329857261623993146975633849817054624427172905985634368936207380772050632064978709364170500332077430620824945660716675379928298018167871750054326257537162958257958113844043056527672820086840309039826084846789138228052591029721132128400833407506154956836965464245695747614494167661882747030085073753657000154226714228269683143432987069006974438776317153099887160573237316991989821994111410481913164665200229179789821961309143236864023347312034771350984608360601367863121403416117729290629385669607059965484124045708572780565927558242833797091395953022547665288584799284616008182771111070890307542298893075569715936305514746308754289183567685737075633952131403629823647659186268908196939503862294728768285702631889735203488695263676376625474223335080910496837269127252244394758727015326269074894171076480685128126690102530759879108628813012173890881805812198080266553534412529046332834127350866611655186308844794201836664691382008837605912515510802396054328904274235726026421157953248981730444568848043022664401797873879101925138499691671552773548261422250148325654820428275718624216812642239972067064196594822751304071427234475506690304558905488000157130091245486667393816295210182801936047384994796290561291790479919323145265406687208555435900849109234668796749393687148448834280675481670003885720315887564227386310457685965558637308112683089957263515768835217074665093074099569672468059318118721212157744768523718657948889016658480809734608404173981376691521916926205090485400452768975751745705106310935925080008344073323842717717317247467336665636283209006210155540670233094564136448147387757229523378432622591438908411940455013956352092319901280228579590821571885672348153812624219226627431471593471868588393196403270451231366192779164968477465054579403394708303488450433336250516324319144025398397616387892560162868059308529204124652720571178933757723982222937980808391097447882077978679139174872605870995079310239782898072394657006631406591092798468938700868913712133771357973032261521618212750980951371692521522697555913633799478274131092892056586270573838957670653106480423021281152004373609032408209687929949532149656822407332185266818563193150711414069575082974649265140900714225852666627904009940070945388484418917237146900582215923004718518209898462042867199111630087878163381440911839378141700077434260433223260637264344639395075645312359677371168985270796286549084126285544026565227434130030882685168593007600573579488792178006278808133980991617762335832625166016351757175717857796637098115698388273735596078540128773600765447406999130653713566284995054057703667279181661060513601650871186305940834060416390881790853908632132530491836973412249923512544669153206285342210102071469678302525766014281849331555601878829129780827381961483399986980828466579738987407965521830479464258213873881365132137288207188675256623356331329199846716691690800619538099415707500016500323282214213815882562146248682439494462503347960496038185741614997233262381929681744777396497914592876614380874942082199356939570875693020516909926354643584817858773631042119585441677422400209981040860886082680302129660997201530701221328407410411335911831370501997901718304189225466995471073779389151776812067302295470509259179443722507596065029115214469192616653983491800447104059274882681502529394088940494048995226608781861690980356834261519704665085455231307780729821848996008232521873279138950793456524073741726288854512744952657624041268852545693750219554786470933688052582150218801567171317499103398498486353283558936208413034637878086116735927451860973844046331167218109593059050774874938905015982165133327308401835591974383643765112938709915888673813094907526980674188778835299524006336244977705578776723497479148623263648596150254414393462851046993804959365539576328468092183038874084497178502273229574688295394754866677610541435735731552521380061721368579284028741833379295060019870451328528860833395443220608575969394321046922896577142411073531205800443843570083877500647387841801906905437575035391602798724178169079206847192613944141211288068287806957930682494494553010524537751177722268480462637570428652973643006049034287780064665746305396849510228410681640950759900577535827738780746344791607719727283883948088052284247522708266957860273467794256811326331194429490288012526067564086073291788943482828603091739180696946186740244862923700045610448031832805385583602866812569207429966219044841528508058038186446987581170931185759538094191029076226134185274167801039712403709230220385277536450042062415864028977438652582503717639881029675396926774252375847611337192154640236199085641071535946035148115459916821361028738941513629594703780629685119222193355770191944588160820734364977493209108638112745029140727116040401849813899007191892411812733773946118714722040393417620474824403787828711090581994142070757171710230883359467091731609113370268864124721506953378139951631562901506148520422721153413359281689370482526444575478299930833107436168769309163302486879592170309778773990761719032063517166930199290189866468782380507595097375093030957148153470895680008607749969868328559165741700009234625537320957862433162244086601874063405471157230321228836183661130876338627577401675415456859809391974629322319095900175864102471439993833850047858423683333837389585159837733107683361966508460086785753313734838969607100219998046365355906234433457248784078794884694950364910978173398484943494003234765045948680352374521799141064657354345146521146578903427343202152574475750348063401705233209499064160138624074611905867206304933204846548553999396166290263165979479056090814983301030466542194759332728250424853055108001025834483160149225776167207477770450990197720857911962447552758485570403730666173681317271426508617573987407935863460640751238091730979614524420420759537465345944444576483184869491343435058927565826091302733395819193577899330131462335203166197163910475584024300654607791788964076868646233315857365219771656228169464695426388695129778913680813939115234403940951408217865595466363132312560576650926162921921440874864527779934898977318852898778788870143764467168594291787782394411103991629095653334776066725487386851762642092113722394009865318681943948037659802759869155898083430240631397961248176369827831087075379072525744457506009907002003721588579846197265060778469132045852394874314752895795062245541866181447482552383108102027322280198696085049443935755251949350101293123480524766305168581202788890801492857634147071287699636447556145891235278596289578034071511376193673508486820731305383815035938749521300522016323968734412856151641287785877629558270588504852464250069188354374414885214009619379416396934899246040333072369025527470676462984772560870882039544150564757321786806068582973356184075044962077086349358216563990435021665442084675362480455250768702651547335940601831433743633550537766241135445848588656801507640341575406294950465558199506352988798698287222015492097227813618084619737296559683698368873707770980509013750642840280832855113676083715015459586566367230549799523168509718609280354685274758623638174351584177263564843977932207269231071913834059367216438372133175050199635544248604257858782904634203341874519662328639365742520421552948640765755116325097792871534185387058149242184140136942458174235508192733670809463892198439878570421107357550036450607418564232667807258071017686202525824871553818131557509263337803880643896261255021925802734503678336203403545376523718985861654446154555128976593567424071694560485838036261509153892748096763049521374431356159897010456677980551205280702101589427811792812711827407436416616772422832793982500538021785552251099725143777702141222261432574146609880519125811331492121030381169291681661626628053833684742558464927378329705013046078542994482559407751631920210088940596577426624015363772290864708330505396163147859212050232065131616433936294670554707606380667165637529524078514711035752110215860023830197576582763398069247540487609221164631637771568457844896301002199385112864057876504170820415944690040875792773183323385053058527837977850660424534501107650049154196840380578887993298321711628980771245743759682417932201934887552311176782492663650690171968975983791422139644149136051786188155576327404223334749594203022049954699925946442871585623323125378397856353647855131107439551985137688646134601196987126175392791644121408080641468101215145561987624575190115943072629017610068951936124228800555205054189828119498196954453815969788628693666095676473009730254044031596229441029717986037941561693949992194811604045985192303504747216950650739255889644741685974248773526228377747914473004114579055416254428704541496113748559973135841402520512611831129510494318720022580554543317345324965535153288228598522962489494797205123889978083893386751349952910686661008715814922196069269209951806079858293061899947477083881994200426601376765620454762773864280690108646105636423879053988102240966779178638493133517963594323450702524798267142137792099073396588273056271394382187504597770175376712841198175396220592708165712186512112299699600159281485112002183457774583982693099060035288199179796049435175305555301666394435708665288673883414423160956752538007968368411686642820068307126018290734616163906887843270238085118288957371990620007578182155683357906801278720982051472848683105642206287569140925188349689299221375805107931067953051133897741581035608341072767925816889027300046160129466705953454046785523281128921465051628114491606572386623861544246162575361511408946631770598210300547020434229022400658456858197865051065144712875587632207193844648765226677410919796455792088191381271590699194557620993936682161639598661157241398845617619214962583786016045037653451011594424087038935378338056818655345034837983492855795141775974473998711567258660072147555536051966320888147212730558060992216915848435419664586595822544664687020237491002637755366893950420558284131154236187148279253783691895528547024614103332303495998886542035742649896704981497461921065628170347234163696796395770255428542236538728447198905060777472594150616920143879516086716365729496725457117311325835837695993444549260501368225960589810514551596256639750001779216434870594682709508904664196569339222237728820740966888540446381055786692715519925206009030667925295148389553076197455476307021252886828365391118106216947149538078490449173877879440430554557593435625174506017875204577313701687704641905122576956966408858729168913551194282933898315305456199895007604692421789939978886048628881191333892148883458402569358048228104290198813098227281312008588280717489512155270071592835217142329538212667762889950904373536830025776887204993708838593302086972311869898535333788237220111758264776677592107581621458810447811851175304462069009549077723765728853319322889496457698975924537457927334755431542378900324458687980947814388235971899205155995725083532977411493582949124961031306779727797230479254250883830344440886154640784265026363201651105921207676674675276065080183864405785832668629511744647738390994962806888593099877589880252568711969061284852209117081899423294183517688330180896920768774277851789298673531592719164549210809079642100526227474623662646856863061081878591469238575140884623443328588056661784772588112147156235551630034084461955310669247701607413203093892621191996198197570365773124103379475966146446611900984142136800859741278142271292119929951930137261066464146819354306021515674080719720775831799248215581398436775230684862592030984809427156480367215143987149417192575320648078591680822536301923209037171543229958584023579551581630242913349111222283389000891036411244935968248786367207021137920187973686417982992384208549442985362604421527702835463461727729012554010563821216244998416867943311872996790953687126601569620997545090758489288929797636955521663958914855715028142184437215433806854023267503376076935739196098694510299150087320597411370362211382549814823500319301299899761659851155442004062922387752474861113233761070620390194439236039690054993388775690064018197070120633194315965997651025021612690681154841779370175786649442990596452085064750931657815520428748389520826001822101418646975761984932709737050229122488730299978814375871527229285337005917898056944649403324471840728377009324965944438715208524521429109148049458780747587290721055298443967049846035977471338655910230756803847271618413970637351751840703136968844390141483319047447263542549630602664543659932339717371092933012139400617036560606502378490990004155357721025979356968928449202342240479656155106522209986582129028525416244146119726166876406828786179661717066164847093157834998408521304037512122405672258841699419481167481945095163724420139348659049750553997874759661689876610505903668435122452961723225293116550413168824384001757654745537692089128235967043873897352122511770372904589607722939192795790458706525591184377369124589480432058217887755935472119202021109214548724658598516211637573544380953562084647284416975482658832588509738438808428638689215026831560201078656191690656448955564453620731257774438932529964510837563268900610337559422507630217459735979071191690140033749785680147116105209528454425228343496176155390826408065580994938164446198769965663078095773553567830470703093338731106009985975481267228391785987518563345587477452291631122819134176577831379038610731489503714058290232862745016399952494130158114294284340472645067365268373358581391405324581066035494395625275484905788306630398136760877065322813392994413163100032045783180601036014083796759302984125870107618153307331038757529443539881136494576062752286422329937175471181112030415024649697158603693438026532202672125009578416007429416041427389232923183084492339231572364487763040913450369197020408799637997848876860577614975748851775908006522632387147036506623629637912105745154202017796572882151098574698519350547980675525012133247263796744109429395712660435241590996798783453537700533894672342745160715125628949650152966867665291313145644304517754430080893373656313559871721430027264531107428469265165667754636228318080837977814161622892020286266688153672547154457363582503165191751311571774124652000932012596181046363547986280696174147507422846294590132239198945703924424692756695613943348344046955753502646964455871754970650935457522782376614155493272353153704784436092622275264987580070998261028811609630097895913522848770775962438692954127088521109364222485396868490595616768952208814472549994585704925826929864815032541154639330217876761854649285542145283930806791497205630063175923411650180673599820991869880716884317367379050695946924903549781109693037012360188421351311731999966505400856734114432110006653660043800665511164621934642275449259676065801011547553034234642414287587122568915860709983710248128594524542794827332824526118115164839253347293606322739869340573581188076529817382428851514157628228082036883685802176411627872782308568284838202700601894252329777886546127762405384244073206313167115762847889894621512395124476784206840443409493290892402614176373741944075634705674395794671021602711472296625675371711398067448524722246980651728533887008725673654821140421583042132797698145764655741094350774732599838215624418943209257900747872311130564285076589437058801749621702885906111902378489549050092600267743661525209220276910547327723282215391063387235836545536057314879086007308974551039086781409253036849377739600777200060889564182508200706835305324824957156316634949778651443036874895150778439566841345084150106086140690518880114484824542324635356771647369234139762545910454942976535887632953352136774620661319087482771399742348971625884172843320245455883383275898381586476513615696183080234019591540078957849386761752863763237730607877807404750946097866273472549886444998345650567421343828570628430195636560937580622483058540183789770105585881207631149661849490898769003981182029608252832895494327142458621428202023137278076211876003024249926401522383640694119808978046706998824572866388449575199991178347362479602489263757340627711081316036950403317484293228928383527984437373768043925647076918392952712059504541698368681831010830548115914820994128083792182285110781802873212915913033912717590741444593121791361737594406542098988342923440879320232832393639631553309456814856290685212872217024487641451700833295116195203458429016735491098774890072324328312502437477144997739630850985377420130285709200187814038710947170753942291750237802386846585253258205312673349337328041197579283276883239193985031282679317115794474679803167483725124166645011610209519372310768497141524296945246355329760050415470023282863228176146664719032431882396419235593668021538138589864581653221151768002768865658393435098886688748252033475170823461083725855776948405573456304544626148949749753626948949038689562325848860639399367498859314963910269639103934352408976273757776448857483598935820233825285541841509568693993539570756620634226472428120333010888605154270984804683899342125185665121990361832573587233556459650546816439372369620875212595043264146672731511234936995232453553281949274814282677273048012953151902498603504974868640168880558655629286878541050134925300410660043805536930294482418248298980680167376454479326552458299083829382415553613856803879123302450964157251471120077850604150791162139898883994801168143358273520019301712133996791439937091717437003579241025520794731267167917141809817346591515413855671856841961006884280424911764048584270146553669899037283832291260944051973037944185792487453391993297840981157892939341028338620778906350325511866823556059176710321426609873608935108032297891805155545949583760125352830183044717223485746331090197961199139130435250439306360216717647935611333444757336004368570243964715063370050796281630722166512865748260821054227061432774036589828310548281349076676391203727510874155474827832963119675547476093634469082742085974126277985177547571655290301551881000113128745073047593076999328299360362460124793990748967540471221163569428560661647822745424700195152287809774195964632079957380305440646996922048730522256185550959365751256614921063771927981517268773376770585152968542005559268604553835970026900341834101325219487065111800053009759540320287929947406898431705988399090166098665460885175618317427041211227672363482656673918529932704389403682718346949014336311979701197838486308771013606501992208144511418359334713563401132990577888518137818311920078790590269396517594352409782113463086244880843069385730709440922279724218060345440216905105470105482021107227930277299096688991734864339804879815036130591780824649566651397838726016846188031972656824005141217333829846299453885606574221943214299803196996321376483125783303535942891643250993380339942035355589726341695563716081700421135369146403550313871379416869444715122579055675647982675131448540626089876915187524069020142068044168191352598946832553037492893239644507397522629758346406454002016475025687975210640850759392965808307792921116216243626691136715007038917658039007835715109108992674283452514696513309886182772503287335064193887929445554484226023854860731190200508142204483698933772907066951744662695940990380567967120268298657686304870803753585478571349741763554062030157523397452389598796656932516600766505634845024106710392343663283338703589645256378074626515975908699366144557255617707683379659899392447020326604820279052029021828844571448658885803182353355813428280605005151175810282193988528491347809976071269032425037208658109395796495046866676375956014078883697217590397683722382223085028994638568544576656081777858255701429784893027571830832025473195263338751948900318933540122603818046694440293878311848819718307032385147333711907757249849861461795017563008106795662212272057886835406460587568517212533755641390144990234681011214491849081879181630239747120986702329909882019919925145545520187922796318246253678383117842461312760444677320320209713162038917953765857352466387187419944555802435913284032059825772449108717772621516384998171052155183956751286181279317908630235273456484460688823896479809937270023767191355067092159928282692842457670320112544271916105505932498391981400318478100249072687619510976634014833221203886567929937361590859069430687768128920620380689045453998102619413454065684217709244197300122578621009632386290436670958324087939363166463253955542061375342926102724529183680424875810239578901462074370012913019148625564749257138368887541537052405233257680248819832095642989574232385690977371997479475956433516113191181585820959816857820866152198656768404384181436779116001574618309510356438089571329891997070642333917071818080767532570694681546535788550635523998169642809395345494407866174395815872724345516472219377078254918340250309284810038765481796173373184217270386127554315564144536706200487749881706358527170021738293436149612072821584263737297106443519301794044546056184878687728258060312879802170879860981084458354074416733836114010466056718705497272861693430999900345862393056394011207462312171844967613242497113132392060144972904256466757490616070412988794545093099355607653553039218344675840696863423242567297093424504940520231157843059259422777639338984626032659537102834501830073650490972668665431429795321449273114262569946924719255105547762289517022002331474084415331627494835000513336146108719944628070695127306105271033054531325039149516846751962392737669751385877818247467174791568074069301116100230022908880778006970371014482007377736600840811813773203608898043107396588708848549691760747291844644813600915606944272642682508275492012472087171167118437612953838046589950251339080550096248112724970125620586324151526012188530460489122050359395265371937168970022604678824680676942540920541274909073101783381622206555961664261475723992888242226484234501733644164595190575376395001528836141300157270211058888556153094784186150265011729383575167910699106748450518746422453173389263410319309048883288819972178727980757795878201483617862256789794864065779719833769242596405848338540135030056428523525800238306907865601744689606666854518084859633696795635078397147403997504785912907186540907481099947760862376540036029008003434916988684569600152702988969624641657641072407213826717516648034066775864943067522393174470773559351193605390139410513075666354629404503633190384589124677971267708490973243953957710520936913777003212149140914528664741579484355512055197327422281688700423118198932561766149964570873316614724219484914719767518520054620728229860817575915637476104608733008000813982160445498014267766793550361852554491540856953566706504705658883346602797441107894997058835654917441012292817252854253755001077727284044944855996610700742170827415142960351411365707583661282818369779700342509919542640832705274627663439286947977273023953854113575465254536238124346968984913433356648639179003629915165932200439552330930199464514024451902002735605098810175426733048311190355055184344754174323670299000959385480622188425936414106042331031093130776003611225256655969143624887337904357074065938983599530677779377428314999508946067815895386071631287392594502603006932152299215905286881975271637060763178631467874930622042441146796999040440997831499519568205690500323607168740135895734932723661136918679091649525137260254143777294152378599859114618822033908055100694026183838675548974275445455338605784283672101039112327929574337132793664075654018901673102151727546412853216556158799852879479638511017446987228893824671537860063326391456994667392187959543596791137092409119011891198136107404122300635809350851347605641485499086034517486072370289085681090803461069271804657709519245184025521314588671441174444797623638460055874270812141397251854980180473605487900329867266065124355443500901829581304265318492003676014722609406785366775862551084717986030256162208935692395750819700180891837721842611452509652665724829121699314991536393172473506692249362189184867246084865583187345205344983569291754571339756825966936798745177255231556546697282787903182172782102950444944471348898865535836615854690288067976499253889944405941852970137420005679427931989472482981757102936305662501613535597508258183381196857835594121926778077815425902520071504635394985285645900791836574025473333453069479676971168666430643638024992850757419562867483609891334292331149265944727578042575091406857067536535165701005810580762386172755917991501838689770504643238191240717984031484990861308216989649499770227439938588724013720359313264892113362773355807741556330379866007948093935863913388350582711760700194801587228526529892257802946425817878426380105144208782318699948629751975441630275825489681198397337968035418841007875943492599638055499001734281175123026954090970125488462356422482291673702905728337129992104076635739453660522244331587114591781446851755985711198505193897231850725751473092372320599365460075244207574496758717665047112602101632639332998801415055282988533236821315741310196588948941075581866970947697947279299474603212670186122843882841374753664529898263090097867819848915526889337512069422529706657643532450361737541676006612338214817615468158304926742672082846756489778349354355130726916097272951932200419886135444870430237263551549385945564372968747127643419544440124418306170529566093330546269451073612268957673396265100172205578894710060440234244750460522432753823935067278418289836459681068186086345949049316731542167125108225124579587153472225218807615055182973673094852765214722510569046278131417148082298821637877056579514200861087420521049058937940590866467178137397496221629580030954306594956120042117553021654590453541386438640561875936372913985652261535716097926494326570818490342093901939786642012554951507830321428199396944370206610079980049105518834045115621586755185808126447774699571359628255253135923911254409366999015803778984583071769326557440095223359610395525813442629000302975513329224882622492288351120611261587333028556804197649339309585561190941482985262044637123161543374574868867706189014914193679678878502626811666479222668778547610918327478167497745453937054544038339143078883434567449906806824004463736809638652455872044157184801852138215271614381674379884728886071705879433439684946881725170665146492579821691687139252753307610512247984070753124152541924654479697430986467189834576167512494114194670854586441219987243564438015354344395753386371523722309825865389979294084880384395730849314895576267032236187693444947880448375074796544159155219070069254892662287172172441520407038005603369518437264220318810533490708527783129640091951702092319787808968047315576611592389858845249297067573053184227693161366088768126039457990234518323490693777781918393406168967408937706436275118623246556345688145488168093961757300481843236515915008792786196956076567159418432501870000622916917424664127473973103966856038195749988356839954719867455775641995031386429780851245956081710056747325443435017052919294050205310923769214617738532303541460782743281103379916657054435476669519511791279065107074727476886926272486728547960166114540293655207005192883714807764560440822915234180817962702291730776641871002347602703946636551269801622877537324549283155523858164058715375065462652607424166467929432888135841200893452405637306870483234960207671498582748028925810684174950432941903290198909669655616414938188078628693207608288040615669101865818741756344063759089495490896913595556112575839511167924658448035923502116165882414135006294003672301374233180680084742497247753967574963244673809801969118260347480321783761166794949076890824452481787979576044038099517475710828972100282222521618297714217748956726858746472937787539176811844931471712168896275087754065967339531865159740870193917870241735208276070442592003090021911358517422948327729027630319810906350147299624973969234825330690311914058180345848573003275567699373055698786489765945686571323838394450172673016465498401953098218664364782890158680137558419895808584013705598931004111214071249990712795580397585918547381798068903789773176028728293766709317487097971485173723774625789583505108540495972268953173601468831080483756232941090806461365660720543422984007617851950765850181406134616228808349170782603887240168396231669976362234854539244347494177262556192678181120969610574850566214034958178992378677475301263720326702085711090733837196524867596346939799848639486468711737678858638672988397768262377528438550275845363195893902697024396787913662315150418919677889463337624128427810158793062291506189978311259968381646539291787620816787551996399288908537108937974133744878471976513413671303627647476332592559311266271393533217564125897692328179194973548824344872691584402601529318996053160197946152855497505085003201694336313909198595162345193368420902569854802966319020603558209622054323630470564557297685501803824379051741325915298321312813313411941199311242884277961106821889590885572641943359147919479042793055244049394367849732499375347639980766870602706267146955970408371156779520338686614844505366981795834476304108745254619461706216738895127526227127196847824982391595085570379378383522804484122232404613226472815825809615215208492503131844843716999979634058327654082623893008421457522950479352287989501782438229730964183342100136173019661913323704186745709736650546883570019796148960431788915108278642096081337927328574912389334374450537677656371779491517650932906911671687533277311599322497812516547126981753321770680718046350005164034566139926534582723994145746836528429436877892455604538353785701537453091081747597921828568236808478228154389455254727206590611126207532430983910687334361846978395677120969126585375700413416809351357527321197013134755894095069728763950363407957708849737175543145353820044645982613337298842880780055238569732280320555456889360715510706917767292112024307751822451525528637631603399539001026401641530687649941245608640984506064073925633112205780785465076455565037328896917790809077754344324153236000661705182566943079080715918248962379706769614542436165010091024603512807533317655738266826687748111569930165322184530361762657748339228672605473185125344661034877490775437282560078739648370299377774387781540073962233136917072372180521913701740824052701121856603033584868544719068939213037365519626184665083633125022294598769702867605127180230530175741388924604507351091464210182919374349255597236102581945283018285752257031725735304340640339270330372624450492597513514754544299512455829106028031066891352346395994738114815562126460512721492072895659516971121186902836840579257523800372026837290409883751842995384511302124743629238043286282460816854037562490566158670856822799464012253292890533507132006636107692602570383060073377396476851217543718701003989249488246782788455762516447342048280818165843989517350433137803609769381693711070311358853854301440618226000280014240981514022193998294230663827435584906507684727416763399355555231860338434306719378768971818961936005306121954896235988733822109993863760306228918947823942311446514065318606678016701371590271789701582115161663309505310581916751281857128624669265546520402291575755965526393090435477851206749383842228618932429961502323992493865403336142685027718106572806996324527610725486329015753223175450452652343682600541210748099886088009626010634382421665493983353329412973854490166133762310485264347822861480644682109243909639520823586856059169537330933941311877890807857946174011419914566266533085249156895431543597597271585864511613445692741252189631884947719124890969368539435818437650715615069968343079445937800631293429791314428979472187565509421826991434148177412957472693370045164366702399503313263046428836494259543175672065158580949501292318760758967232018824671416885488715706319769813851525478535300809365010820007364044516706903071780293446918953961133275438312665971402526015925665980128922803696235184879112698026151538625338282276357290797538929643926011955335866521221936735325632677178776051131064012860640815298487812453325097725354955004991597288016096790075885063710018261390734915550550887541628402930796597813260818421291883146765332212770268145934650754622943460729569228729375864332101773149901589965295853527205988577489278294584150846956781954055002865157791914709834727505946457625202053859293023331989762048533353022745429486831025667303103358665549991752214171928828299201404330203724285573838967513440076511773664996328128621708833461721783262667377336156516412222572659031428093188441372052642843750035999536860103258825388534999451192520694191129210680894038934688594614631030348515628421449639385447736791205457208562244339877268216653203908739727490673833378716169283778414713407882700913780480638189675506313629902151854439088357501630479140374372176950210684366824120474577327662549302957503595899186709628605619014702771460605867987227545240254936938572907947354358846186043567953800900439895310978411892889720522236324373952225689732204531185803818698994523470642453961532892815079894701201374357641622728050323190763509701638248102006083944043455222467742672195428805108687391383432140477294957376450136113956042762900047476899135488398146391832953862614610497527742943852763662345690153502392198941753214082065100849077563557886736758629769856081658090051830268463242634779466499114097334426498234397923762026303682986568012819642757770610612758950701907624323682061639379832480779270278699150215459909506053776732995880002228474853303955255515864859920632772034215732456760842024583533391429651737162757046749831374374975626208930255917625042246576850408633320738699335274277547526971441660531373535474015754923811296526790971406321980779616879428594903542616568947548792586786301697026104149893080453846470085799505124003987690943580392239842310705817051610115501545516513858222636407235742669339238104519859561299209303507880634771808240259575163377998613618629255403512421728634428519739259107064136556078215827767495375789275212101633508470801990969713276914313833010246037134197003655926316126423686429442949005197016200089863289248139828698491243935185758954327294716948659025057945681020763712857883395254952648991145612989400578358449496918986161739052498526024518511824171095878342383115622809789353234205605212097550561872775048400073842817952008364830801110796512135351872035586279507124226365802523419661856040336362292143078682449595240635066654127968171764787618832758904204434071298717332169541866279185324644858075297858367172044949260278295631721270868193173198727858099260631334412873458728347567420660329069894208450564018463790615510072863840325055260763773466772087976072405908514421338053500074227927996460913026520708703423029330325359368700264437024037711671605710608138003684787013376723965767224996406041777070478068162924946831851423563841820324243823203820686373039854757483033348656011669977665777244376709289230390325927162548231457188829077694912332062190258438087173133717712560516864188399624304685837673081048768518936793116674035300028026590761187430953642939977808811196188217763556265809181915687621962928313014412154882427709520633499090411517302355540386656148076106712224631413338176348025844901451713396820524239900076267970296407115273308342894898628321884580785720269103809435905000183021887241404866806572317005490253287192356204719675600521819326740087688728980197650989765216738706141051500720508885111932141832168907330655847268851482061047894454638654199021262149359042898949283159600150055825604931658220595042665526787256581997596702809451139779654499982031084849125295502764247462860860964906384504071436859692551709195059075541863961840285190807104625537472756938342074403067199401499952084678524190396542432065394299724675154857342459464965693608539162393163316277192629450237401677840731053623536499448021291114139776558070814548987005528431316631273025013653587620879573874889423957610478135075584745764743009180906248036058470188635203828356531930736833030679093359600045468603886768366123806052601161821517559457640650611115444431936797810963114094406256385819714331359189868971371091964346270174740513300840193574803712649784877185247351755271583441959671990486583837575178128357705132832330072001405579740064150006469835835830795307371846342982214308004365590542299374022362551396594651713399971256468745090952660815977905007048624004452906567243017126767144081970302257311409515080660864306829391801616776921077075960460809745332063307043426435461609992060969698989017814487476377115141410608929443591575699659240333995824142152236895496669322833007627059935144642862521314627056377813447003707839146774467793720956930667520496913030504064332204513526465739649759333926345581041852751364956614848276561674136879201888043520993026663865979920465376142555614514024657141480681168609241053198613044513607776727145038356307047312039490508554233232033770000085636758967749885918419475763157061386268197661992237870257059244480547399635359691838352303696113820796385912700541143651833124077125510807868476102511933588661064522228145390500850330722450329088946965439017782275508438433010740406686171565717749762190384602183083885055770074752976883338016251974935652296028858296159130207748587520779709098852654874790772328241824823131117537421806178324490482481856315361139481306722216062789660848412195564968009492908821537411211201819069664664720016156742906183092200375363204665418130639686250633435512935628484509215198369460077754010504686789221238867538080044793823090428136577630064207780652309077612770384800571938740217731518574160041759668525922991346641308892575595192687341769588371393106515979981544198413003222075832988487862940201591704257317814116466782218950373076959676198445891191276003570419407402517662982838367465505892972147838457110287282065318227605315287716392102394781269967109451767989509739503379307858686629243237544887015024910355429646545832831685267377833385336841484196255621308443718156852327555614754761886125951509664583221556385077838896159111076206120214833586099822616463377110400969387947411010511691874136970963077673435144706125528910405739765419049170830727395716698710181585712330774429476159323057546234171901879107729603413136603689661352733744760678775526504430218090013604987408799072314169718561191072544659740143974483977531753618109219088084692546858953827414102697696422158838214717438521482218788001579025643209494343894170828396748446225058515022049551982020692520129782804080341149587799337205957358204758096250805763365538997327446981140384293357179782426910379121175993513519714689941665704867688013286760064631895626939607208299353898622342434034540884852044652533498356129163242613351115873143378699237189867237828267748107716624857629688387963357046635159454219275058838267110767462430109824950660384456055876665057453820772875419017511220576785315515128472768209023614316902973151132810947204846738308739033389528751352428986094798545756585436276469247200691339081752938937957447559961880057462177752335112185630145518192935987664929925848956794102943465348854107548926449497027646992464696258410372180871351697052054431465619147680543476885081268146258630606630704248711216263650623713575428751567561716842725070056107308741594902695672407853321835176039559894493678327274067785193382207942366541919037703862124797780054153333850394615210932167940298520805913454588923241772210066115290712960457349491396836687927569268371287973020923105911374637870882978892799450691946548563452653022214925383992699966870104946053916134527680987714080830276595620384500607449786262719071029804836635080066182694577251658751060927973664108317700713264428734441161947847280656413176448142067484788546782738960253355407622505072458255423996150607408682992941363620496227859265392022017720063936773867633083292172361601836153211496762227726775459697559057334022921815260317836340707565950968858045001277768593380055382882317042142857023124168545737640447799125246382962803009587122462724887416735005745304923124748358231936699554957746814640943576214838519395724254367010777490832432072849759533249072603135983263271280253459958271202493405157226158497658061573110804771918922280908948174755208822389293120513032186361935228937677525150635690117425852104786945113103378446365306617355850857190791127316154091703739264990594165299528433775214485446977977857815491084466699204610138466157418728281337927821551475017729021291687368728895347373735941002474672818466905842049893341374136865012709618022466002067989978611017077588188747176279075256760059213597641500896775562060505628039169578056359516386904295116763737733440040931462224307307206326511141831003414909224513444658152973732524060026226865018935515148593696339585162167111258025071071816738618289359235928503105357054866833226961987005935631831491650611474043704074085713342145895593667992456594265445913906773152579445275204911267818172409077636106381635761644065093976176563567745109338957825646076113296290867987597103528302453432574964243070225420752876937136752112653533373491443830886911251229557686212050804652221152124439706057859432263939595423402891667229279866591003602342626660600579970247952155494125281617931023795863378667117237829543492434748400551488070684279306264397447084780698363574907933691717238565809613999644161786785119845337377894097884157967278763996533678210433940906395574812491502422576786905541756996002652363183758668497821534324299071495393689668895645880202804407253877614229935028617649383927929524247506698419432942054344264028576351023528896529903748761583658766337306455447099661265597179900108685477322204528427458373341987566131532782337847408698448522501749807974511787815096315075239742859171319673241666481060706329770563091265379816534120976325054689057829681015848662363910286673253998520329545628845425259074569017254853923003914395635159270173463129047766885011138298254206608267897335880211671054287150611213570241978521962768188236917786818597466093711070302716628892374875581278944418486304107143920973900221223671550103219477077275702014311895928880647263229205184440371745539683013848866860359546153129523220445145988227902252025465284790617939944021323320085870222181465907745864489826426553442588512312424109597601413617613909584301241107145610551059571504981027361445014755150383239473661221756677336304692020041356074242338613668818146181533614922167179202986060585017357532777067298319197594035485448356729832751862180983378575090030411205994075614510789940190416452324453631047240440353364203189891390273664935145745971422935780436961083339974365311725830376899683086160102573161827373016207323715898709190219829346579942314453670174218636810708343188036918068448586823913742519061973887770530259176904196385301715749714102570500042836036644212679641034958229709579885457989801214782063165682585340025172749733575324806334856227101561714897953436245943949521424935078797034318122597904178745598770370597854609535634311127549893771319691053084424552340746094906805319368059992536526000200251592747430368706060109954532522333966948485958756350151741102172011421363744610780250536875826547884284367439608135337212295146708101476552619472247056352704405777170820806546605162754134021107386236277582013459910314595091165927652039715022690992003981971046509051813910869210984202176969451787357558318517080820572948957939563194744327954427213522491033437312923145100234550429889775380136275418973689286434485115155500802967466784057270611772991869526588770742731500711595175303952513949287574289324952138762634969491313088099427935080280972610197361498099036275473997399471747340504603196893132077754308948762755847811981097234233195893632714334570786903966136959536685825593259782736005602388011056817135132839730573773811622096629222877277087617259302381517333651947307820931324233685878999225242496790483720345709569278516922893828187064621283628504757196957805001189043181338738232147446133777639536062959235031198914145662139459084191366730621637166988320462827726890101744922339342565965602998027318943978843462031332490530904969548903938871060932423337516887325767379202357661027479345953273799751437296694546505704263430569985186851065089333624256311457598335144718938543936118516147679969642701239437276960566561291960220228013386618269647419201759054188355998102738435241925918611376118557653505656236208480196039638201343009818918500199274502280440302631891812878444943733703921845191920372752461867586153442619269215647190348844391849565031214712188561262395143604381984432371529295245925367373944697207882415134380648670478876582926186808041176191334135825783521509104110326807365628993343668209925650210078234941925479332248512088817376125803327959512243041496130388908837326019888154264120447334197137051979246080628670274842929363934450235395458417065604809590862121611999137418911912579614406389408250831664723218748749276382856252169709094209853946494692130445982318078042681561372720120047427839418099860610686216110305475984524034005685791562202812191835414777387309622521653989874877478328484419949385756333275170243581297746126001700210935315785528100759013697977399843644614628192082447488433963138711333323135993357777758444452838806234434404795216888248079790419818933738163570723907778400148987097961966514249092308878363410303976111435489860445987114039738741154529446435917887550119129861209266430653803064954378424894400977810421337763334381229232601652836383173042789923604544194529264822320155341327317043927597963272297193335170302088508412471047100898154735863771280879530018362943286019622550218827292502358557875863239980117095009882777269765496197732806470457999499348335690784204992868244082210950136510778405862620731895435530143802896862809085245972926624097323393336089199380689077220299202449500899374701942111903554283184170374306877362803626195353972986557266639359560200762948465315277190587759542228782359102734448741849360698374333739541904028836807480140937783750073326157247119451571787128604972088691176508920256132361696499969433845551204423987871195727293492318873280329532025218924882879983240939768967330163300282747594156135264111428227648594791641701789527082794583280812375944080647779465204310360036522673697135869143221746752013296199336664682366598567470414182038526568039685949205035397233817893560277482990225405054968107149012287999815196119696950384682967917383097869893386871695394051299009412552554557377998881134790288230586798772318543929324658881395218992125733303058815089525605276454354208806407934264285151767349070953171480579403121075227490735090584616825332965108195426818250874467113158854653277482417095572166183413195719672978998598855554878391363766090103451366402539907753915011101739738784844058953433442600005433363874735151316791685369511117918619068870488102881189931880344459546215798813389921823423480242150973915007233327080965123654410382810730982126634079384134865845784016301859294688381065387107970513989624095822394911775742928238403356368113567636130470951960921717874384595970445599111221565183392761511141670755878553019813911907097958213165703798339022836282423814021845493383584131416858393458477686452894891107178104999952926145902599881015647932935615032828425290619177291285412671537323640326791407658438437450670131343469559003597202018688756204021952041209411767895210907781196058901885993485348811560599514774999101458483604264928975188477985659151614216178362677142085295886281128167983976269505541184579330732388635089711154765862589089059618263011146837357898818918925372067965351856485820939644845333951581324600970305267916234956011456646893967441382901327861119123899832114446155267225838414289545488421726848306310482512053539541210576547725243695926236708014182125157276630440941544842113434974973383264080800193444328815002093444663522565859639581957800765585065612697972062281142256184057605061157112991482707991452362315153108053585280387236085737702031689810644173704154656903321811387867691365074634444674985678777062512151763499444043056101892904953313789691800678247174163621550963421974300521860324988045873498337639987976957219453179029827569122942632368728688498821943976809506178426476130423494223037285447690660134633315390646955964460277090219361348294393755858609604943954423360832044392710281227463897436311500895548530287709352192785802604323630358142449338523698659286170542241374678779588259006105000995073100549396117422069575372565453455807125421836312136610693039554389445581055117932765926869933167967797139904736621090672080069227860124430909195608330161395902130743867084133111881385734897207603098121268999405453974665641977780962411529285264212983666153411150848788284945631704846042548109795658371747433431686695655816037524801533352176132712535486081487248487988085160504460277124833033383264595528659892370069512206674814494369998367284884403640366153612052142052622800036545758354969359527186053939310132152746494330547905213887111227620243833996703229464185316166425367390793738920868933091674098625595944663369682054363446051888652186144776497140043449690826886852235367336084457397833778722660959504677765579708884448999834414395864871316187617027878851165832224244324243253594494079438159658131878153168138840349430153814566055002906879330714186686519314060051336894324819192185360500242336434826651561593025518286767885741898420451723631014398483136426979611609694324084097012409410886692695897803959663180554639281114785629041896617895220300185652375385646911596419243501317215061535184558152343397560459232086225625521191806355356741952014533589271896888858055143154088360141678809230331043248407498279913051077674656861171367675117025579884120901945461867983596539364479891988061237797578319838192512447611125359525627277332672730291318432847710226704850498977601084460366458752054544286345178466947296358082274878785104033364305434158765893947209320524248577849727501441591896325092998382268636820160776310984408261954275833402321747863378711056657034942389547290229105362626630510831067182454087998261130910924892449088934424260067013310642337111820528865358705217044230503693191651972301743220299379527345399929427089974437779102403588143191636908328239431598403867709356006331799981223655527905442879133064347042167128574404246858199868504353135964383696957716945077051133763482052858399839907297728397363102243317022813620501583623203744462999355404346273791861100486286165777035539340529998928340025878580695395628781239626931245647953400125088353105730412126988251280923250623835930933833958464793359826439461999692644944262020542232174968092770047474426080458361120955458082417191455463143696772963286330119875487033971398877739388825778625305355700951769029920055427646413856034721547237133932206637055547139797852137062546199079444399458616342976820784433428320237627710548483042746698392783159995253905097366573386211384434659063634769326122426764354245207362345266291428927593960438894968444081820080468361775837414849550066257072896588322729377310788789009959545395770319729767907537751946228687056538805906735993858343085741892479116337961096661888081698350169606991450482711987706144629548382030130613288059947309795752638239405605026844434915750629163722028995353523470379212001945784327762951668113432222052185967278752604199917850363522883153149230930833502132650453121348833514347262682230817693546189987680805129423265136528009056104153900146933956278595794413632768989915117209336448187355056780835931556689222172843626580060428924463535461573764413422795459421970074428189230827348050217092390278024024487048229099757508733637179688965764007910792057843515167797844735746384872715412098659924089441435978132387169397433703486025269349050033368456862984056724870464553784641961333454764938128489398569242344467206144412439284928254655907694652519597875362163574567734126288565010171504024271648927348158635857984313032777783475176512752318997935260049469249069621095476195106976544643604232184486205978619585704607051538466459158138728933727740874497381857973394790683035819245404633555323288775530130288500308691276766398202563146958329917362925405044283293061738632055508958437652015393663701939250342581516651749485138951007058997507138973851857543578794628885613911267265166256996031960021459560546030484130540942409475487797524062776224209573435195284517183863439737094377314768114105872254696590511640915287860877330170096201905379398344051081551666410554821807704396402571568583556326873929027463766744575488213024897692946865584014393537072546041829877269472286441773903086770691592838892735448277597514198258623106833330065187593851569137832538622236846536582612561185313249226034443568627531465400268790761423320188655842742016967529349215933391366503444920597248595969914670564693604004046415504204573476961937387550844086842211548784908649068084740251481941769582332286911538603304379810812967857280641201018704302792870757961993220270863878490300645125996861003306410604982892067864123514897742236275689975479101895450446647138218617712937942839072259733701356285642588982970487604649876781636586674673581293247672016490475392810750885326485651390733058126292568222331185968902211312903824877340721715874885742397101365576960652468702341640596213056647994613664685764451791115587486496769498365631716994801586307522046402494762101321356022540500505628939586377856501445942629857269941924727011204201649765125522984769491334223897781580146864165844012896059346950649451351390504518786404579603343662394084301332907827760080310103708711617194980123414829345089217063190268945341248989191724798968222923471616273066378921724216222284636779545975983898622426764416344399946178586999390867535964292462134470222096317001961957709702251499552506749807874484843814929532356451084055471677434336429252163877260808149937808687717156665339802325802414392278682084978670459212825932916223225079025041797404994253267218045126679468286959854369890014872889269964016054171667584184512858570880437274012074446973153488036766753804402432607368590997882567995082546662850826540970921727719259461464747558635146196539915270491804545541967078343256042961925955620040553608852272210221446205563651720745996143568408966500986758987610238944719714648959370384147875273898231432256482041686050338849577610695815647631838757342404329887887840354554563746001125254013234956058908395081177216091506723910457105677738519928861269579118550692184169014923931704239189017543676563062288520253046926049214283149600599428852366409709081047085784728050675213084961932837623030742604942648240564157536300117181150810771655705177372352726048419340915676596472145891536474222985475197829856411270390479022182443182723186390017313234924568535131918313047407555801521047181453557730050728057812828224461476194658631857297886680781943977267396615094770116098799426486623379510289794280012326314623903747122893710324944212376006508348091549959187461363683047844139015640870565814968508747931467974104635403053295688061779250278298054649178356664090548817632463849917054962035547574314041177299225730243729593940422686168383242820901698952045819846202238443766071036417197058203922209395968279504073719300494877165219528097983579682839547231088359529280866040975451139824196902611745854297701462897726798639362041853460044363227540949944959660594926543347826039889817950782644864681331323858142564195355693501510789320565665131022922946737659868105299632033461914373326776779250757898038075427737155940726167486462154521431861213068665375153594954961448164373849763760556231968161163406576295766405422432706431996610585886898045312309037600646849811720274073975409601126471364601884303553558322002188605238802505102786161792892379739138098397574084513432684387000353827146989506614998892548478121932161076878403628239922979028854602998613993749145000741665679565875789081412692201346199758208766962724316311709935742651077559866844257722833477656581640356942943764474734598669351804879697593917995154472186107798578244579078374845771325895702971308377219998209457718466763053184075837741655826676176350205477453779035451851152154527973584210722455463708636220009743235723065370098564039039245308568150152955748716625063546917246703583850510722793003171845282169894698711804410395782494948224962583954438029637365016117760556194697672425048998239293784368177041842718068535194736265617885869602151417006322960583098212320660004488984031403410682426748721155496312199153059157697814916061773982046965945508023062142434492483153367702200136109683295961451943360334278951808042938874300779736537404948610193983214568570383003048491865313526143714980677611540804356858989822196490117301536909267149523837666241338588362078008767486693830832370831570624878372486898470147211309821231592623385576088802648463374771605427678633854601154097425513611759743645632501428040365234795381760662432819038452541532136000033040685760833695722518856865012822400012876717271523719165911550481379418292447652947401827436532545927999855803598124086870285664288380453877214072555872350034880858673097892828882236373000925625502780350793642912197075361464443628569417728764015875241081219749407391517689201709622004918804328895953169753883469032544379828023093706019516597185206831579724613737256228355360116925133643952245212044516468748159304750585490261139751994291456972200511807693682401557338053987423783207853889179139385482612429240848784490275519032976649717410667437630546313400156512589495068563794024541313040559545179511357597038595195124030604210409221661291492536373634019180142041652289510944788760398677337089831852151051085591555729103014971696673123988463526167371121819122655224110499502095787046491117964086303235407132319611191880130501863576365181654791420861796991892029954419728576197941085728502483808987504936741944721355781658575741105066599341027393213542003751449579046453833100719036480185894471567890694369048478598635576726382901159247808458592867195226875464719408039011299141502546313533049242514449629963252771492526123974937642727583503042020935432489422109560182185286821032716641029425865005211350042338269690408295244422090370658091516249806184088805965996805020023538360344477449367042420726713590290091369963807307596005490464649225453463400105903347142286281086867344081918329075785023192443667388933856275328460812543120257365616061350902429542762909167607768598939653516506004105926411498326928581668605585301876535552328418212269050175140077261533690742904273512841173168665597633985848211416351961236518000166012946185174784604062385810368608399807172480103416375629395315852661796568915844437100801197252971098445909529411246970509488708355506187449817091549029979975194968144223721352957391956996263420069155068245138201237563238292340845726663710442645037297517986837517051193330901860467232280925061912042175485788033283185493482609065880259075719454876935032067960453974581274410240691972492625525728124206163584363430527142953100879974029354314820363060533914655111606663665777690122132085835999711343222365577426795674935815563173522776786092606693268644795846945655441797091070218016948790314895573706912728808428526133078484734787274397311540180604414416177910155850681929139268433217876425406091433118770407329812387450008595776513984877066495488317666962129951238382959646689228771097134538983591490405770542175730551229434317829091090357692102536320392527319369133829902729114746888707860121314631821004578317452632732854618381810331392562232439819368151428222675941600902289863817244966354060433878311868100300574672057582879774083648532007407415050312292576383712643180436651666037809606102972056795835894604417447069421457630529132276131086385726137890870910982936635488354456091160512458322824479214948399728427107542880860492033502090074674966012235222805286143835676590732711456437125726837129731747050408845587350677134681677062659861329806455173099544854082717298105714711838236666666243932301093351758544797096536991818067061227271346029374264814315633949128423625153888135545476558395132389055314001243885019912452794520939317337212098600438345505177492545344893452132134069028180540762248837588658162570118174055659326659483169088116965548681197792667029340181728198752869657647227632249411114755252115485185020338235771118898286255232837083648717830239337419101613505759188422097329816408624994606988258949099645649928907048398570607980802507319089412496256989887815526068605981223582604832128192683252743447832024854210374893980318623240225053922656999673430666995408701073967554563025279448212064593649486700718898815137178885466147960454991724129691950955564646935544745731096233706103750083344896087141480157801729463703694701427976387422077566752357510080813749571083226437882855013629482657157743449096150771465221358703472891542474100996552248176635015695787815987754472481207592037718055577358522422278381853631180086420047719704348365097364822252755742931022770160327721375712454676464929359337687483404653177241404638472572812514232764213602722902881197108760892361429515642100708689121999693184134038501311001117346989503865713207236751085369033367029121839124960869329856400401403215305704228181054069507349655869183898587549147091305037900407005607386180853083792162628376216973452906677968981366929849431939445938823393014323502755416359512831711240505927020391133136201125825194033826750846921889447678721430068653945266600261453136622805934470061974523111566558184165256730235583882512524012977312994974253205123895081286503828834984012865906918921244178267530986667122722186234802941623981148066464495091730130657161386195097110229410686773522819108089501727761156273403990909795418674133079829028070194918032902502595218326117494404330872921830765798606852431937607258983595396809700452411089097597968101988381532377224684516337769915968440493315990318522416284949338622608619736410484201714575187245042370632114154392491123445234083965979358384164251638172379624416138187691296354529357678896264190754097389863371364783680864864695596643805767656794648254903882775596494662164071248438945532165642733875618549620781433786863273458302426159729914421812755361176285786802582802242890888533519786181249545116401201873366089716028585193649030937192410218945497001692237007633580615297016150752219205118693898839332673191899644759350650165637136210621448465991266604012639552076826581495954400602127909847109855971827800864650884425126166051651727607113939607802364790062810612450013654472271184352824586454361634273134368192358169023217620773965749537957459035354841608234802103579579241346751261554457535355925922710960003100863017704234013650576131442669315249500488780834133591815389458495370742523999171899382120143992906402390083586547693355553975630976404047847103563405237522762395430703537698105001717036424748671898806766595466235457177391384060841703847968759955189998804383004089693058418555914111418714036545473281778827970614318121114455705633566035429406211715108335935318965586363594156348460334355919140085958514779543179977847337895307883570274268167072675618168112768709621063865827331771323490225524712662804296410615945704300569734428382683319377053985358833694509180601066602592560010126596307306232040349781454071672384614184981973506415508524310644834060880120779992251647952284705907828152162025507712485206938445116198943425692105509640790682543461941765113862664385405601617073090455063201690578515234655287339546014301486711677793482904567704615277677855553549006025736306684760213444706143177109181085719344777875007189454593891711839737208385490039663048520585982075314770355020246985598207384189108911452489564462959075393764123640214408092222680685163946149973216706251162243889002984935344399031313564152152023504721671204416159832766107745342073783762420576907797904156031522522122353515891865477502489492942508023014639068637741644463232188081119437768223206539194523084619409136264094072102750823572327631673259180610977412725997298461888801475798444926538967322360533051159475972781272190343604652654800719342284830013911354963264618810079595130465152577982687078714832727170526335121726342058281412054835113703228090850264077302583241402995190414867789057007371601382131676145089704965883630321020329225492162401377365689940744955315802737589686961240037049694876132024016140559406701340319732819241128287253408475408871013967213479863866413313349585379542279689618765203308101106268083207059860730771137562432287469304862068700829913266329599886216556126783417034236674212479822511474472194659633642942743667164868999075393045907600114789499885084183420240579617702716602690116524359563310987804363069770342185815767641816096980363020024351218808782239109906519744457035218965859207624222993622592186943599146021931698102119909511050859376432099736270558379523401592433925929901612614965729319345474944275319110755902721951658767353063358196541711239118448191911045007917445169764876444505328055448184894294330560675304749521027099354472816929980552420369239774037851754085406403910453830744744581326601821584907211794010513574990899544892098920305793944813919595050356074102241367162057330660554262483708396478421905321772082534579129723031485669817950313693379401343139409317889843524910533298345004649092255283342247705532959384143417989617656664537078652237473638799824758644785877497597618119718446202396693786536129542702245661513792420615628261368191736818691593472226958081435015371666283270218337657321231700567152997601867875489074958940371638491857663964404283410428589643144234498011390452931683648295589956622970260069520572318789746288842700525880393236237774571676545097312071472248554473752953039902689978131579822342624833926744287904570239548718023330148269878469848922153068741780340498739873953115615882893547971506822095529119324439524334552661853665901775493550602727192477599010759365925778096454743170069881200477689941516452383702289245119152350302788739248805046092591847831127693912146166145447052535621380449017012493550384809520693319932775867159955861041237792697439812944908627500266837456999627771572226769251948715816529245668168886163667627527189394448326547020249770752374594062595047856166621989323768713786302965270058565691072886575894793954109867757723018364895867868955113566032123589747067842597117655576143923178615917289572434960845570489678989521844498052581135572793822416696386892134048136466098447456815463150141451372684099030528917423947543176597400322856869011914739616184143593938018334727744597265995550127492192590480993295206372909396692648025830602286388640299202129086231063880976436829268120878342051689189632882455932554717844449546640998594197678364961319277769829880787073779655589333858554651212417643694668483968047453214489319476981777011484924700096777385100649988618172774987766186436005940287604698740595126105370365934035282516574084615032393867306156222086735575984524157528180739575667760201933243080384044939439560051206110656381042281086178430494004306904488223489782777292137314723600285215160744668929419604860691274875156234384869906672803074144845216364392694207644064998540000431163439502124949004407889117055994642109154720808983603828592017458152257653701419445939272366942663827584142858389398019005830730305120173961254831281110079069623205214022246287418470131369629565843940109319901634408999164194332177413554733760204237395117360012700289453864929121286438227298791352397800244156675010742257543192143518808119178094245354628998100573308294887758796202622756650190805964239467211287170514116017754898921454176809841060092387371544693726574671567879532495911303184303559344862132652966091079646430502855625260550880462282744226102521527212722569434985109725395459913588533432487111445838991743176731057892741815930323256511045766277626803207116745843623501892787195727975064212715587836699912369874131848414166227908518272465023457852716161359076416725045901280737810410207180476636940174516108171967736726461176425431501390106428908023607477559778885337392228106339087745265710532953262727996369460174199791242089153332367488199346575539857986831581626253883832790591133694515789692646100168232528483811853068824641930856202724699780106986132373435036928690282194200821188457053495151573903452441441159944992209206160675935312777918311360483688549004475891064310766186689811556140643140012097758148796347837575698268954105221369809118901457784929218438861112057509677679571373189678558166191975415563953544181391976873458518464844693252837396029797443825867582323125724369910113230345865513814964910526908272491089677143115022807039546725313822477380294291636416493889794512531708321367256969642772696765173479865469874884284145280786802177529541734946349111323182232873673863652915148073736337507203402956595574121519740276344953404409371544412717883264844107426461447308784330426239810565165048362509389019277425782573761797069855536399471337382632971500327042715244027936758578515824894635942919380971904602769983123672848825629700903124897988489365983141519892153795637218629482244953230525667286299613343682718085378728449970096724965164864167406088638518495372117529146338454475723020195289846781563752404843864177118336231320560350205339808239056967856161449400557673041113309324195640981051123915355526611882632754399941633186564133040312552447618246346324535155670160221634363932787396415636589631811725030428570535880167454057239359729221999186633590777906837468321547586464640221353623268800798260096041292601759673756346833591127637009051678082877090768734973425223725379259574130425232014645338970896001743099143984566609562056506411722533093297493898444794710692028534545788759536768108788423052855293091994828569960440660057455872639221861924386568425204774979287596304597784385946681807142410272578271804090745400746726111295499271170990413320731375429284990839924073698484318885684873856251822020488155322897008317952348422106629881182596065457036317780942144688661887303628453731983254129637979094417545719312806329160579667815433369343712077614076570410196946645104034262712585053524854716452694377874308858504615343913194675016352285423151496103757635074503061423879695414927042304466984900524973994402983337379536256760688087894729951532623931824506738608243484272311662104064923495526506958902812796297841555866755894331026371113091465280511652671301556462270392500124809688555040170686355867393455353361018951606639308932805587799807289352808018463069178497369552721944429083114848600348463664103427007967144010069369506113409205690659291787185376219924423441875823689428576417889899111262219580748786448812451949535585426540449832898903346434949118653960717880358591048912763318178544516312157087497800025600403427183264910977554008454721625427717279220799731815713392807812809453282922194814317909465054211433761240346608538818991381239208335923816080323692179185204666467949554258395436300032299399491837139891234310265459815670073020138031538561428138548203437729420717371837030910621216991574374594340785721611425724096283648188456634215133924779448563398491274892711474042387755048298239421151435888512180493707025417001268338225239327749353177290232202263498330342648138007403288241815238087228950170305862576337269365437036521621924729448282402405649406310330260003523885218184845202284074253279506783418378295232766645263999382739468415140953720341602005375035406321778713324317836641723972223407915765355920970524695035869252901439800494776609528629944482214369315786974589483703974651758659979307046306270535272634090744559631489875244437143326846997260528964844464498914607937057642659834428131494788242761621198136427837806911257338030571974935644937425110871314586247205887592004983461563120197007251320463848682350632211152507763377991931181737613113711206453347315163718022753564469319338643640134759025939323175280989938716416483439962837801090611985329161831237515240864705806024309758068207329903561581334390225551904047578757445559486437701074555754508412448169151884150471639757006801330079945895716750454332955052906399761216772517530644318068043390093047401761789035211450648382143861766270067211555585762771570301692532846840468187015233819529005886781433658270409665593039175509872831133953600514870752785606304840897200177423545882572402906461252219507812187871847952504680139104899825586797489769377625250775784116449438639674274431466107251889594312974178912873717157736540814987848657685977468367893186287341401198112524524978545794924265201583923102643570683697420136962588040043125223372674747859923336709140670103854472939971373468384778935139357199533278562157714610948259044147284088194725038493935115063191076025461199744726091422717082388236088588108497980383885514812651770817436293738904327159249522119385303625135445941085833774527334679506475462700269566250861632403469547261620387084589219292387934393280073115175958865379093069799697572600836183075820709660890044032852060810755383714578522457226445115172893466499138550672100534185766792448100736154539384121895359800575895702562953674980444523841814179464792764173842407443032680669242406262874136538854807668820815326630287518610991509166650612495919516631645053860862099613094406891901865933225686033221718725552200443136238833969680941981954537343419279770690808751544206479682792398393112550993585606937375061069200735933814444720860100348822413366035926081717240244505270331224581610834148033770295999446382188625638958613735953807114111324628728501526591976253006273821183299009544369540785256993689503591967537066485556023610169022444656930975257483885657815510088143221691711119013021950470728663305161577152673942942886396633789453355311396520786485808323009487685066677152014893324784144043233721582060907201705807294917737711734838076068455135700461827852193933790633733833677520608978636916562509152931193715215916857467370259767981362126361901678034335093230024148935397828024043934225743507479237189305587278979633601729857890705816485577538245327188086182328361798971181533615302648080703059771559741691853809668360490089622056088959298549434242036928355759635024669426052648224399378840184229482628101809527481828398227202824966130424035112038268389695965821862051885518101020373959439181656277343510697306542075422068457525190468336421319269648111600260724788196571836955603764657604748856221246046081544778425777405382467007529946203049532071095651205143969083953656515202490244211812661115670200931629807326888260379698069223316823155000729889139777116316848125245283918891371700416173463264552449399620923034949448168418539207638881087865651634366445036822709296167070252649458406982873702964099037612483352106633859351627035279860461787939612003765990686840019242002144732916893655370134572157604110860919512865526117163154507038362314737842845761740579092336626615804857442936439303225392159455673450038554737632923728241339219842365068803383330942178712786748168584327933545978482968975682329737895412343053983650941262379127398219440618591643464407625022178880319806292757450571398986040385071240709905993596215615086626732654082988489420156547725553313446401629737523579604477231860038081611676097172236255978764407255896625362970614899902799721673763129043548535442162231511735685407212056847212283772888579655164536943322757299318001071583719088017516022459039198483607254403115001452179168298716591321865706841930569845602919293307188420616450541904463982603256219106706457331283109409138961098512676198080657647610809977344685458926521971359098333928606718501000035262378417756867403266643902609245098966120058431588726012007825383883586578469870438468649258269637869073251748408271916928725344650233918846906182545651861738544934533088130173028478439553225352901950472968864035406100751246075224804909008895585951061663330056162499227327001462492471983568447001995095890831724730601517582762784527861057304039242702068383787388024502138917579130066327814240611264676874522539336887013764194682774817431252554264463615021681040047228805756861346090843516229081291754411618634616502365801558144462268634551301114088706398442653505239133838228369604606336872304948887441139694401449872862592269863438375525863629067225570070627799656944116296754684900433570407921825700305224140519502965084849829475129378586644393624373460077040267654066956411602362051747835110350169259799446755556239862805879435737148382540094844119125903636244114880439456348093045656132858735450343485586610171633459738245174552122741559277354220720059001118073590182585189602161602852567635552104928050000859843699836892199036056551663635809059836146740035509398064477131307029940265357024619086049737216777087402978648725287240032222117628803135154775710609203180030548671140477252324312857831290518361655840259867832854054355575195093074334175015841829272212052831818721373388577784330018967873787251519709834695044741833896820900450161332541506793246007380802280773732784007673242369695573988799607915620189631779798749480705310445213116968241119470387070373923375074676164599649556886200795999002902797726524800142740219390058856501111663400494602396532515556796618717006812668031745567233149467426739006273376125700003249310746830342620921660895966664332226560331689261845131635918312917184325065748635618418194133359206399687770673988733289580945760697744537966314070164583653008633234283785540736984806511741277010751906310069127011026445317645126306662291745875177495495479606199310792988744786392658290523608030978308700565966896021099500877719329351831375459048889905474895483331498098119819096930147402504553213104178117745521923972663390522234671022914870689382036731619672603981570950642031302574611797643881418217228830814178804238883837606098866688210408055857313216397895831672799873599152001947162210573934382477143280856055484049171056779079738700509616016544614904919326896921229316046217041341063571438490671031327194745091792065146825923405751743588935661234973079830591817071435432053126521246008731161834546332782501891001866987086834807676991991095112503323102450187793783880728756941085892756065706581949451463730854302055537093975465902801016936369262551333988269943789256460156933606300152771473161238219456554503403394686956084683828638666372658829101968437712344618150040930703905563840173240221298964381059507313886383948155732581584529558572122392835620283656872330743352206193424227049797130626098524499889469108722300881492938944467473579956452214787860482403613447020219222966745260824604620441373650084290111457121020248938485044737469667998774367772348113856578356036109441036174518910976230824049060861324623673117204947029104181339705987920202699002124521310812824158921113080939917395549711488944148113732120337561378172200399002744494429833553387683064636217115723236907151905287740992932826461996458553895598459081896512620582573946421062095700409898067999546754981154390601847962098159318671154498297992719920457865802809899922739682203284541518585853611965388867996620706261988712261150268434906355456176385951624705127174644206018345927130421104233941580795245101750933152273949239507311530587094914686905757266699235828928536497093012688141969938779932810275259301217415972724067507740037753066029833982750098760512426860500144110164974945547655168512562034195910308374435086664470175284121742252286461691056957307444547156422963374863020447613393921665625679240987280388363239644785932040036452352340315580782691075580168822223613628689526398806916484872598376393655965984077190464639977313362649588082362873787914623921783051916660212760458934809610547159631518250506075507971292453684005339649060839544614010884007229407443268506975069589337034184221714417896925099707377379713124282636992836962468640688965333720951570702512853494666674753442842250059999008275956483845473077384411976583144905517156189319121218823419540921777960434634886145253608666722122504209434409522939754711754036743076358912560393735859955722430551858337591922105273961849466685901813341485881230077544306784872754337138429966679954532830053278473553664683559148435156346120684766877634943148904645386225170655621046919099568105054709058808267283244963617650578498198511811985415092448850300689890252361539553724703202506476271195032728295820973040353280012194228718292648483452080362551756681940023366662821871254590659285142839265524895047967112239827286494623581251178681168636793050865499492554140494650363216446348542309383050171000985908540326619738156261743124434867151230396958391787780141583480120966049099593704771059564183201229355378082899978330441480085299777290682279049037799846608659097357789693792645606764710155059005655039572825961491554619291281074754761664601020805984137808459071577608758929847607604203209006269175764635794142355718694402171463527691617608109545029697412947135087928681931628841140345091359885444163907654527509972881496421810387893485854859002556241612127642535649649511389294100154337774628595376938415861912552009730512062387516323582586583684233657844628649504823584623409793220492656863195979625266028484105748971013535077993621054487396173832428427352999025234609086903126488995780511989106180738452090925599221149854244976461986329918935478757236310483924499047518229345508000090265938434824557918227856408822545466121091798544995474496705183367907764456632531788193938026154610630556404374437277978242873225311019209478290497853189632827207658969719764900203426063540220566445285756223199790353026126331886567811357095092637744746860613520259101302454263362254475637185166012846274700204413419777258285525463146058316686181151926469757955051319779172349650197955477955901135304499005864640503811938980540361005143045749698538346630602487584418351684403201883263014292288251578999132702176182049715789510323532618478771706822991301512021280372666610656740005418527072922007928731327581671768058009003107598639115088272799013665813884658181542942342529332038575632684650514682853137136543964091835353937466738162603101611991871840966482506911989054953396986350555911399304404844805437019204200249321269444582202398661304827586491211243417210940238015677616225961839692000026390757977253240339677649446391377905587700570203552105113405025235771677480587389615833781930559832675508897542279346407952207685569780563864149826378694458569470724170740301595844208316975822818960462717136158091051309757459169473863414494208110595331946683933057259280838313416050323444682288193296612540710777181350852144915088334137963847644969867714832976222315496346707017121481003388969684936658832275205452958893916948620420579855070851655720051214016397549207078589956637641106106672069565766040753729500539827220745323938223619425756396340530801596893364180621037243727658414926585736836889776555256297292555495544389525122678253320867193801496081595460469093891754875208641331286957975409161227490260968125773032591963789698934594773667928628990947253231197372707405235634569113206322056648661126387222937157854636587297374879662591506472485503985732722674362487383997681827628408868881887657639603595030029085530979419208470916734677134420822234835347797400860106715153288574033127701846535135626330663675345837998204428618723652547083534781532692386753502457786177305421632781845274658417109278084749681065560924520247875539696373097286155592892431217491900448554165814279263069451935435504083546309074138170007281085576864527703312511366480333210594246080866903552883758171882364659233541348076285119008473632554123470197474276932972962885822455081524869949714787227687621483413760553449097319387931600692287553871040034590155534910020724978882642667756069916882125381645534327518204129990611485950395967950951498384793096672815820700108794887990922268782790077353037404153294807653739871190694090191495052479787328486377186820370437331643753682586571442553164572407530228237510839041572317202383431909129348961268985737149982543290446203919115304189943374315089921443589651085263272749050987594528470518852820456975717910625355103342859051158623444006085579703745955307363456156370698350570581760617435536609756193189839297498457855367142154268765798179034376927480196307317256855991285594017961581985018637630788781344249697619316258430637509915588748877513927601667489127828261235457936509826191132964772972279120131058514910828328302696483762418294870934260023138916748482406927786983242104382209797826421903904178224974933326081478178984753493282590823493667875470807788558061348267778359280414129463442810264612381276385977047311826556946637140001048709935886256856398407146179617994480293880178973697357212717917925382466406305292471959592907983642631739293495399577636757001105808340225201440181879522183147243385394625830566970687926439337867074226756280488015807542355779835160248785720883238059373161254476633994955642748602837697094411233681400767887871564736715532602669973988980675463412846446749901765706660775060783536368198057316330871313550293791799201606461594022194901881640883402458134409432323359429194042926668682892081282290191743959014973330609505636424274504137628436940304714111437439201613980097065976258050708752988388017239431460113550473426335990073003216544484322355664611350660544328033322744436583702351245480069609579387398543932109657402525614088263330058194401253737907721690159150811605788543876560102714494684117440366329717306396461261969384128310409824332085743525818826894942222356166947397394618338619222627338971896077041310309581694532453714552890278446387477837559254433111882851366154847555991653382514278637611298767205252449982538722750287556872971240892674496738898964612616215160135392653004587212918185667567649154018811239381444664674636297843787977156002072725247490456366976513408054825975509635361885124447392734661102837317377607730375205116367636111590752756744064042155020828910980236025871272636822139208286322190245475435807344781577712916840780725562042271040540849734870268865809641231721792245887302081583352576058025872831716428544106946770141104922610110975307744034051641963381902700561848078255542727630879371031348493206340800258983607576703185546817086132576103688746062598898186842587192019996101590776022677381466364097133340825490740346598704900139660347466909671587826610514335749114442855129468920222298720617886574823636539835708739063984583534291842575418591844415488110729161548795944890686586608085227551633856957794999266601726307091755003461207597449148871434648620698797486742437885332280458361031523168719716771285576145593052310595351260104866202125458666449048349456934073683680271733767679708341359444406515956428706222605953818207952264774105382123153003738760349807733608876971764783079965518379668828444155069484028513248582278136413365708101342622799319350607119723588250594184914772288849755722046481129053221826046618554734438244686060166156047217567899602889737870686881112918084804374146543495509818113475658014251577077238157366026635176662389179943149683792326876744573578837041486439431450544668323953422104176249685867888801301333220981802064638577405947484293036824087735182393435602439753470333930312088670763063830726093200304789638037027560210629363308267646597631855638401544990193620762132718012528647360008670633177267283338849874123502233712756687374573824354328974074629848955417663262510421806350655786157265564000190283501202393891540270814130048656312097195975405524707665412348939801784279980572094163128577394024895467535864463173994810021034637756293892297011761345843214146866858102567982821800168223486406050440760984582669983078100851371103280182906080025413904506874172560277538202431030573729770752999736983195683299834048405865089721519303775970515303072412517594539091769535618165891203123189865711756224097339929960596913629060081432538173420885147092008995244463902802529397280922898087297595984068253057378952203464394999578383945357387880400841137672332672698989627123891181462922656483279352249451270796198911707649641707876260585746649735995136919710858371029930505589074966956362786093060416268824375805287612079195809973691447717522977695051272408745211713803785144474255369223220902492042683649443828976222517095999610792291810349949422519965623654324867678246135530297842713738350583808808912856978562373190468608924268626476965440986289336483082128142816255427942874099805631672325775132527436483610960723164374279479978065039357075473404533800333517052296195057750363396086180614949495370778269618332447011675554658868742072770121202863837912584659420916117563625950209254099303039712361093505241094192060906390719637790611886002144594721744941217453360713739445646274899361693649269672442049660597364433165357291126491662976243205503679479893340418195663852870596811743717407470068856714155936737546262532080056419752647377988661473289244630887428896617432469092509627377715676358428158946391044062367686446415734406460553398058825045162274890655695520750868781927123624919357430312682402416206982330108726348231414819504171623653783577254533232424327182043570702504979195512110430106271653938071599011530349356393061832629957054634267297955782807053597513196202350369088418022167349796605860497069822056384070031116236757995741309395326087253874790038335630537727118753196549830000595667701714176239325389850208733023444633106020266638122342190099571476590906225461040157217060498447720139880207646159460013721160509691141565320942001718987502159348166208463692611077123058666973648718833045458448163677923441549722810729338169211788104656221829602600024690667308006380263797031824664029227782147046798753426315798878417528996702894282116596780924564023273198023973982893295579257277328390634688216542385910034767391959586457617065851022226676037505394872380408084819956541689961646024531773562804089179968883973425433194609999308195442476276511418802733391009712704409957702603842092527100818992246499135818128458519891388129827121476560721108515261787623135748283274883149118190471555270919998061361737866835042123942313821040029181283306876039096101183450139007076756146877174793628894517204872561224838693440809778987223050209184956425729639959566599128228932973844463899437985432415371852206593809745576040505992889787407219388001395099612764306825001105295441914364779431167497029580098925796376872747294142368519279757367951928825441064484452726132207991664239489101181008952347481775053912969980449011659067613843413167989014066924477279381642505101185860569363908012399109818198102847151199088874695269538446330107969489288333416583677032705209999057773563020100636141607929226176723773372908094925978529389405847806775712720389231256479601209710664209069242785876828160978498047541092974772954459456728741609624445307066327894497193569571570725903357248952733957212736047008772560833156942093153276325781844003135614423176862692499136477752055490409753756768698723175886034406751313577369206491263450001205813906785062191328281522643704239062399031314992188932321355883958473766550116792549708204503554408347679682864793507570544488377486895264627683622311624418213287316874594545710078592808169161133697450219963616522285568351041239548171869903088691182779374564689616625626401019260950381440445758396777770102702685872217451149571339361364115277603260142033128951065170463502170168165739044315952678569392323331659338102838866231625574560816995272604473141479665136552161914832513316843987787231994799025222073455807357354104674981007790521744241091103412638403281924036442416404287160775105239222100455011117923522690840791177313380736363932732503576121882355733267926270198095656068310361086968133685464668340554221331313549447245548385413419735263361516156327131541939511974748544436877143137158149522831063439491723226519859489795755311886447816097353419490941290468037599076022233748114983648809044250202709585740067789579401086967999161620782109961417820546328241722884323615814974368504069794464627186486277438627787191175348605718205928323953076968808604946281264490032636100800580065799233587466579496450671488803224610706136595959460958876498359329098326134330535495209471557847606264261201728066816391777938079436413787597543130570772050820547619924475987864980760565188591370306312116425952121909730901568070530836328853494426297310170017078990652463001559225781746316265775584048772893466435387268568910657903351266043810501505559377432876060969911987812479977361631826759543469088075816260595106142071878672508092152716366475850547806219917766505998256373489530320710171038094369858318255465505861295571290974965266659555087212621166188879688108761553992344256012572003681054388347881902973513457279716977548514706303777363663988072674296763588982302901934844721648307231574201572493472724770741381256359847508257629818150607170152054803458138626723193041714218540136099104754973581549363666694782676611093761173127064606892169940519103075498409883373653047148753066151819427055112115381465016119640017579461966435455672320737819967026367261703669368368765445880099547205563296154665899196650652880045754726892472124636095074525257551475668320417139295030112832212465295752476079048874512025179119367858548129741737224231187340810921622951553685327867618820868984406794452204983345830123751312008395352407753460179042263414404414645531564254706396012184265579731384718064752242246418782406609754972396525726351996804391693761755571610798024755308602337812251600600902309830193766172134919062193254829995777896844801473711602694198694505039037520215289398140835225185397479427562808569302551143331655693766372620869079170128801152666698774977070628457447874342251900305484979987386509606978447699344227459524810315783105859890170614428431629080414285322702005179527402483831302045074967313813183834748830324256806607489190142717426053830992934949343429123347758243199578789680460655622844983931295019335725080818797058737110745090997990029075769640550858430246445889452871189957563898862419457801891101371298490160403151851486439535192314827463661744983941999378646652867571688205016135601555758512504652623087944334718648527671002184367150708104749987908754248866250815930426698493078254103614175064160300357255180546537957211906853162290300409304804329763769484836601523130543393190052765012442323410319257646508646962672478482046908655855745546592299124320863441898993574219052200549887057274023463083027246471713172669894059677617422288703999584939685176002037715205961610667039873270247341687656126310532589874323222252347394275435023676276526004108262159366965182771644607788731734571127419096069812257266315869347276445198744279882626740914748837152529981583270308438942574070236254397217753706066914427909730647693191055350714457398523627603188363826075702710255203202461014651126019865834433435750920665977791221363459332248101662171847873008124718922663923822062460429313541666296584715600224287349951940401777631110666146631287393373711733533052039713244232833099649977816686212062362923048021103531711344226403574019992913448569160430001141503105045048367204753315653179494976320588560958471487666540578986882009880167865794431166743488429235019990889514778957709584657945702374344533724859468935397570254055641553115515183905770683365891183810071936330400094363440046579514075613247379756212369678147904333177505218477093218911422701667617354223298973480718816126560499875971649068626895576968679966283904666486136213469965182377571670269042660298252601965834336705919204684955682582480590252368557880421534683159120129149763856985231484444648351785192165684866280290073404163985128610492399023646030035871879259774730209683981136640252544482953048793565508719328261414196000923719100679611305134932064014367098567607160948601442787355790879740150853806565603904050623972948016523576905145520745089144333075287961762049759924442335938951151774322476095978059607876129923043388122737096883985792876056327139072865036922285892034471859168259043617592283593772511806980419514469417353042099918137216276536387207569854072443787086245002448682956646879449850636360666708177364981584035667396860467022615929726452269962390673073119972703990286778179576666594074412097864400357779036439169516262074698324238011927635034825133818856246355050474204250024351067240802074444988372447746846988145315698925496684859807617056585162545758109607332902411933924933542918119338730687165512636791819873353459661637068364401544131152577287012789935704886694860133728921748140266667811226665860713533704432101180220947255405850477274783901839374019781265487684971386147537365144551203152670944673406867678658274234935063911956143262343937322675726298034201778980035685458888537418085702472917747152714027795319229329026376115697534664140917038016560865611574926536360546265482717358876783795690167458324694791455324593610352792499751807367244676234962482932769140850596910512420405571911165389895483250471414904835586272944480244494857700463886541803523862839053856329366384361260158381883926984943867533561075745962853841170153210944348414230294750461074567047861601348334700686443083111049795019721286254556246637667112730247131114087731926136705816689179441150393501259069133166963477798219337695861762097298518005349500127070025674132090298851402150287551330165351042546886965392011963248545040929190903736046614469086323041295454862628750308812242277265896053736346274057744971282894566554727669099276115495232360899675434224688785113441919763531646801067526806650050042085250694205899215283650932046238894181192334423926709990544882147882037270693381246590282216711508860929494806173171041992299734123611468595555120457447922354430363700189997237332283317957654679130568596434887388831262515419224592819888926798778796231295178620464927222064693683468444479909050928089290506339993366320396458771532111181832417677053111989923287937878857097917381426085981863088837818712281573995943841179114167643959764811224826607699478978751220293457229127765969205094940551278971703046262213320103141820566694583543828854076956160075960930786459399798573862676594815276549979503653044642756501805605296664909532240989920386205849538006073591331361078278053585524364083618465028349055986608872669406195717058594963734224946080853250331192942236653350162276225813880719964457654504516176395503860777381016189325071740340424531341724177758490354066549179970274001852976417763209166566360234276964349754975662107363502912239910025210620204646209919907643863475259365999033146946582350152129665357472425153116278751327513167518469324672500068700395908365388197204845000047749661616557887852126895355148238552508072762212587895555013043240846991128348398211759795836720086374522369538893534751918988190524807694141783537387973111342621149347704744303031188315619020877456256124681967516076996265339623385533094290618536760180106235980369262674799647283887939788798528530392422641997547853352404244612208569493272116576554460914544667941341874492705977669739836378153648709258528156044370109936764999653311080919418634387086594546547302973021696497356433626821098858134587700452666278734249663111334660222842836422321520094171634009544950075398482255806508072646608259582786544935556108208390443397931862976953814610191880196801159193692100036155918526279397759963478194970392940736351581392807340726076261502308110495419607537045346554220341471412555742264885187422424272217318772834553371800153275501084472496883895185542058101186679994522548170234708288700153806302714015877000821489019866985206600595314026231681354264692735408922884070048829841426682673271854383303768466448209294782291513480471051120471453335077144157457724764728913997241536347904998770389699450795992497467066649286578994878039443234193263647016343058267911269771772495800438575173937252031747159274635272059811253729667586264997849429793669680983754643320480392345763536845064430525376905471777385024613107737209551344954489036067051159367898511237239856973368249348783558902098051445228926961228028830433608747963119164870379136151121846489352594345298368720888354142143380263679358945210626144379330165575481281447798444091725254841715948437001413625391599505806637323086061325301139268100380062526067119176381858819472470132375242624843582865913052856833350316329025837127764157603914069788375311855974343219278419136325617284517385830317937230934457417459485402345611124808854106612009180117031476285384606914303396955055852519381761997392962627798185557761945593072144411850294454604230994024699228316157176817261837324633469430774048379761063848429819672080743758702596390125214570817414823339525305768931161790427445538312543424390313680089968732754468061624721671471261318121666087001117843592179140084021575267610561820123157785198779725651505402618058573999835037608821021776462515352793684805998746475309610034575782680967998266452176831041136587041333606027544274029379324989788408377081722356179377849103669551588435999331142826297414038465810759575779950810132982968314460575279247025997773388909315656599939736646972616671788590276577630039510055162787335381819438254306242793383070061845386557795840026186154328184797643669922803614189061556405294946733262804269719174964975841605671752262492825892771420798148055922358255148105593022011765962662630761540419639064679317428947301936438095323571413790616428712830562135832756783661727321639204873940840400732219315913310332131664615933758883977353953316953402211900003033017729870930377659057398887698171126467395496425600494927688388286919950609371616014418827720222957359002779046323607491633012645429159911647640383786767242943092160840874462823589029097220616326306615484917635143902807982890962078191469761232981474027539245338455334544335298277902834638105230605385672088501173236585013066347667623193553468845123798724370071040816826614089274249067832755320740916890669927618150849122208477351646816775777861716640327174261005300850657280674003504788657130686221321912421772413916662055915627040924744274740821399288609763340495238580632882915379622238555325069800903756747876298546737512230126029813922628574360666273429157194654373592563759492318039118517616903016816487652943266601549951025142156627114679298283495541559583477241417488400369572697671399467971562169899120421842570517871278167106650926249412828796598038547749384212673814404210218928697876989108525006240724608057738243282483993692935533236772640931566585181181348980217858400768167609748648372954855803926504681673000857119743259927187902523682147972802285157831492047194840241661559799751828427382817767941010174008961672326056165124964706320506043200903187822019937502622861106097179553523387544534265698115333952709634731556382571775265554663714955281004110660208452878456850690554458375995013382718091074478993913183451595794998981609451981792139516519080965128701884035695140183562918907191155802024091405895710930679726698656162155266916119136684830130313828324101049041683077577022847194104961320752545300438743021897228429327687406818788448173490596756273070897982973382968812131497193613106638831461272592317160372028421317463685318289620467588623948011553887644622436678840823758348174091432862059481434686859190882863476667192503917665639544052347227671518580876902409355189288688450955668434113086376391319293932833942641151128307495820365896768226808002115513602196236834274678242263362530333764509736072846261527461818316413979304566003284061051202848703058053235583198976090453662176592876544007327394573912762838352792631329184035569460685306060992970216484070633804431648329619465980315932499908891921740589665618445893172742765335259877099332703988384257044613492376279548719749065647031751333364068328599605308550422786220971535497766193068772298901428082558080212858310748257612047332124736487418030286752628148790913005969614918257249742141004847859604316945242031415554916071563872277803132456215374933318355738167543475220567925117905584416395143294236714331432383662660985111617556724412636963069373450364356810729451337782180049349171372116840694458503598563302156814177041521759204456260090690809155717423552201086325080527750910835339277185564993213058887323950907733753217713453447281854177325737663470254376943490558324888135788298823704780314202042912776866787433583196405739091643941016921340714073355367113748899746279171162726308335477126808980162630717883099070227825795683605617904488095401089922407306918467455168687352998223051753425148273649311543907171408553673046166084596868745556189008246534382736597732107958492063556970470221300159707092856128437686751255808771799766815783195546312567258773453422397241641887325460998047097874936202427434343612704098525640311793876743978503970755343071993377381484242922678728204330738278282826885958580128568498679622036915824564399312836276227516929520252047475722904519000741687338725239745366843802167944248798789728694034755204708737128410449387533590429084864800242392163396284230228577117869033979836890976751705490749362875944375005138923933718174716110829045235302604414063734131603167639960306771346760524349673761642153126673192983086755267731296764526165328540912703489117260659158205689144177727631151978845179542865344131457471433000287429320099876983645582752085444460357138244312593506942780658566672121702611585610943281399139912600870139250467172900684219905223399900458161432472776416061579104038125917448227528344643424273345474066966475413211261015293406941994048034163757519584015590659554342081556488612453913946967562321784767237392556264822446810483899564230280223418016024895141346468479553285516831687069800059605801652428400426349123560681971859850501104011785482458295231631964741548665014965694865457856193949097535626048047959291972720889189702204179982594861116506704219392785783767224293943768565801591672921925891324232211530835670710077842674229048239362558141864608030777444816749731780134002823025339691562681679987341675800363421175046493796427959110311271988428002242070478441979508881840711320734874707776377058531509573375624661028019654823297111560385087414263001993320751109550828065939967249190413243309685604506051099092047015422958514897951729805732812848346896213043400244427722474980408392847997093510453656736748832481706848920513291020498756868532552386865734877428479995393574740677185295338024936626646276766248794541089980672731145245119428314054806258536902953024915446828906929556622952526746686237022385562790876791090571486586525165581847894167558882426066975829628679935837893870246792446299450523960395879223209444669710137708923761978052407040945593001747561889661167948464954974855826131583854131792623759089023432997481283023451904028227799092446201221210794552854549244925054719598414709730502279782284726387090224068231716305331379073049316230138214908853102744148723012149568959836300755657199814981028455388559601855223775581224886275871022380715180958351707798389756469980812933615609855986678989504793443440973287414370666764543733773388659506262428526275454558292001081179783601145933012626038181540683096603541954005081558378224769114742974343851353464039894620661163041170059267135603273434546781662126633748502814333099413469761165051872526089244563662289747297838011627077508390226431389866654841655088855893679980459774451914050098746425055834436505034840426645455196407420743733893980761973475172035944713909542680171298493063550275374925080681582257383456991282668130047479064454299212797226719872539647384511901912881958583369165863529639255088968693420099928960948159599628182423097454302034329708187604299735908678692339739647292698421470890426817141870867200737581625950374243690372588895031612188368180795679754194996790959987148902066319592037988277257206129918725806106387313059093094738157940406894460176911922660175575271520802490502529952189413528642968327541848964020029629734120253898372501880713557650302273866825568498461994636312739653306233185287837346431871306113931895798145187529935299022470110254043686542890549018631126757874699196592861708116900707083143753117288635429002416196400626136541960841898889503307467901635869256788749516042215744103221240413608233720395261647711943016029263795528905014932618253753929885277807075118104723808688440743761531734802315109596205438390098701067377830323618470570330894036748583404490209034034446676405686023570481955260933609475075814886072130807051809216290769833934512788852947610661745773225802976150809143565466079429772042669490338596582748336934960809954179641654414997763227667894157553452328765219915528774849067892858496791074403214041693063809010439832942171710465047254555481942132479477140713403826084809490958600062797231606310142154383673459298390282246674211007887385226110592770806549627907977059686422902706675386228271696166474772247439949527783149426838604643854054832805760478978286184767697129676081433759840853351148564828009185183089004697742967615182796496553415084474632231554750103512508611479911768770057554580096600810616410371731121732010199126118364085437868104053752143441189264498682894419337018082926016444010896648689128451388050583986348505516866794546135077002022550884122733021961555933566672396800040814205124226760826387457149783974420439089378379193549174855733614669313638837349567203117981467289520760935751841559074565568647620670633939685026726155618880376400772539024807731007851478392086168378053420462707369138977762294924253054197466984519351247036978595158100106885409578263935578002908337556844135847376016771816801083749009784164731410451833596052772632211476333015257186149290087487779808462658594076208088607997925885867089374436996333524017313988280299532965909543832320959913276234703454819380030270457117699222090830655420141982447436913103430752707207757650484887558132289015699423362448345070355840671310989286998387308525654185945106840441393772292684761432424102382746865454234751692605497043349916393147249471730981952697871272591620429211604578840513022525893126875072899564655333168835132655695656910634400548619963933645333706373542999694356440188899549020792712176412736176981976977713825178639683468869438013144112898058315641484601095405892233198381110851223220036894731954023340531251155315884254366892695904235238708234357472091637951197322148569266720496477861901551358543884552933324594767515704719754655547592391873183958967125822466966025224612916884254096251303510810443305027078175200872287522195913920454213790117315026712939263364386862333744310616004772061510424797875385539536292276074493533683469326058920277825955193166124360005791208956331871937146942938847005659470616914991262845468314990861605605280223965428975611645598733284355582110429365541031572137959554348084803845646433997460713149234969864852335989351614207132104332871107169446191564821267528063883993317740977202969051957332105967410677967112579587937784924524574686787095229421364215585917126329701307593118642614386928534976663597122540339458109261788929360440418818337820523682887230027925231391881440501372198158097881050996297963310491406492859965562099819508273221976192266879370369736226042302045763836048258071653529095323944644533847516424571835908883780434281393614397173618596200635249808640855680094785041306029294166245552044147302384596354484008937326865394251692429963680767802250764053098747723545393854790117353898011809055549026433297039760533584408032962671332007473096890242679444898130471687359793408073088645486869227622212165023797913714737244168919449280531019199090833618574744261190821299760852661586478428766785171616175552613453869386026348165808634204133346111453681263052599732907194087677953203001358830880451667795793234930800627464467231026503020666075129316909802798850024000715780520594985111567884675873149874081188933188078059240898666856059803629575165911138930218790412708504646071549121289527835252323966303814261698777857884628188978990870205488370779361651090089320258927654155748694674959297992125188515277280800238828974025695782911926474061212286213124810837865164362487342601517331505899513056566404321373318352444425641576735515081784619957677817341410468695449872178652785006407303083626915287325083891929672171241598720579103201665900172492652601566143234265346634336428644535797517236238691004541758948094623405052268033127353034683772140084785424128582582046596376314399095835996964971059447625890482850769519135451440143185534916937415058912969568107958129449388168044900306613419572062244656493802973945341829432498133815528234613332897881650517133592557524141972558347443075532625646909967834402887419566493407390436289724771737721252172496480642535442586882824105485929298710407623168507522463405389206908136443347198639569663163220328833964931707621344178761844292687822355943339928029703484969043456249153981494383465755997101711567081306116272895743561561142163179994876390495106053692275906612300499020911593294716047402855411433470481993144647776204648857574106552693770578721300954306742468277589213767954460046251232553509264430673440062508100354910472516292209602980282131254281409285436450174445874551844101509552124713559933134849152759754243739907396610225288904048743161333857434381892267587293283544315619297386084491110714888434620240711861601367949932709447815308647789708142599030647863962538280580758252081856252466961248559172142422240827620631269862613955261953895509248576156923866359858788397571159700690921115876583548961197601486978650653769965743950036432358765344788843882097584685706442419143093580159092994413146845263199147786301697887574522666671423162190767011390939036277024661004046893296824011720135093564840885581870765080593259958030953960480541806092183105119990536716570141907180496622371894415206462383182865233461912776024699926960113702219433539513307073577269420529853532173649242776476629509241256842287686776650697855058910110077456145625024677154030458440022205545134581966056944711032779377806001586501605380766874536470690456729709492249656808152749394354107089563900142076992088048590645219883387900621363781829472215591716850663393276577282401508972305297396881431516769591037559432701516967065242808412324092793713046841949502041408092414126403225321701010564236661239756421002163776862555904062370767765116128315816662271834702472692944749999092512027616751042392036950821897394617177324669434277489833808221506060813104848164133625486725099682946836466680684271449403254194271127866961039058920900115670276476581623965806540365727065497091712263589858664774368194723860687058330545964309626051627715350355185590632574096917081162325879467988993145541004982693340372109832470079842815293022329267800677303415644543301619956039236042533493439504673274066693200766492147924441369647153612060978322618650461997572219650542783726407057993086585911842929442439945451161420843806358750886419191087331411953490640564325444665124144948909119882339448527192120190641380660307169619715305604298187763482727007345150295946945000709318098215425559598844799959390790637927245611284960276421605650779733793628570187823128879427568594531484726348028962238913731869364142082620357959122472075947837641948464267960780649984034232869161422073896297372317704580451921701083887802014567311060151698916086613606927446870169551778920360171105559447268386507576859735075993351586417006813726406422210544108405303852713229754387182844769866123108703247960798059080936535093582091412605162841589244180655687624626872929287521817347642052564088053767767071223918642502719600543886085386629383788656656204202873469687708404124436921096241436577171977014255113630365547470560041526983043055049715163140469129850312101892398088942654136091518738580674946273917631235440404849015896547222203856417878176905051628858126770492301611683708712115242218725488775650321977966852628678436017392809110317881388305769013864970797716736195946947178612040699267981906227333639633009207236285709710177133472662916467344610483535194885899613829137801925671971611075218848847566068957764598557419152484412120670241710594295843833172053692594369810849187318336157702629302194328380393083086821394779756780444422615550311122917543053687859685797440291775995197084731616097071376547108333817100455641834716821054191884838060856148438033620521713945857894420957023517053727628430742318682952546957900870900661816937911479530960949618933840308639640734510835712741819751582890789106552859176609708013352989575641993011503252532424386534457374933599185027373483527620878337308886524670185545299852076353901564835365546405359482196931553044771064746264986543692178516617189549304401565713862280898372972583600552339920042152883310122359026845062299250163498749232436901252846417683876930023642506649123034919557397560726881344771200940616106622161051318921580492577172075361992674335489984460934826352709910306601730797505590610010426154483867632042400832293421385009447688503720404554863023589873986585746621733759633959287443490647620010784642282618076080017476315460083556305872193116233107925536786183078552643312996467770152435266510921387050075111312981296825705353783553326236233605541923420705470227009600570942823091762472821933294397648840402152113523300391163205963081657368163998719456975782587501702788857280494281248514595646241653728123445048536627900391548835450091827315253476986674755703088669482736300432134266997440905215853985477500780894838459671304720707542550159236287547606972549956500320629650884840843730846972186184558135796266333386371876893667574362555621667553381372385671905589329790930207594033464803475816945971055660201631360924046504049455046200467977633615143039377319873530744033884239229680341059559856008420819082629281338369182886847507652189548663355246689114827094842997510187281799738286372237515731380687906097451442762492497971972048032823107924088678396939184401723241730692173385319743835417257582707648184530337676980677751147124664350129073570986568273212688693163158470755647151121554107999747259278962379002333010145200115336965634545689097433836205504446358215693551005253295057423862281675443135670168022910464845632979138300211523272641731128635151712572726386638845861428622987109464868226765420517342719970012511927875726217530249119664367114639373647864633570803066392797975165999112551692269097736169417334120097576870055384616130162476017635184314780605762291447451811730349052232658561717493779199677726885253189642051823913743912178654579893830033987123999297753515509981152108641640445268186806995947291906190505655139330183084053671870211050394641306508585660155764771396460344574483785947792563966266826109335409323046611657912895354498194545178530105955604269939763499453690858736017930086431758649882955213506204592966987135684779053220049659312245391612344934414048904583072817583476817989856848419104690450940120116162984905086956639961148737031709260296283571587259677591485228546964923118300668252000673494368607095135901990638644946913299682662673853445824060474756001114426311199665982538310324098051543907900398619268097261010069727722954291013736749045629547568043565871593784463285667848447226890606831158684287714602128984580576682510549209811616495365272220426339240574303957182601000014392452382213217466053832275792264241916457225792415986692087942075765690061318690625722566171314790032184669889973007990004753338559537833894969355266412026960519901483064045527339418347481656870217052554249197800139461783332731033549701535399309081121338148109153721052271268344520177935659700295417480765311670791326719529845357471860448910469687525173522055386407307065812183041610837126783891960888096032383863844141812913683556118400688460390633544790122833546743500408273482715525308052515571414898277264820221219292090998888228642750220599604344090996469179729177399509740285243449385257593797750279961141931936444230360787367105231525484172296786263251983472093158583411589171477806881827077432899422676628512023853836983296671415130026895355110712115319357486948607172543493853139217322367946806356458903217638391976288406413288773736409733987255881260415590431765808033319727493491965921069454923442563547245153790260816641896992446978137791582461417757135120077934028757111512091888548452505459185490725712289701998832669191181259587100915065998067893907125665467916701485238914685850109790432789297818628485930609986262057469919992659425302734722585961992081581404823356832008702066331912109023349827452898041194006971835005910881960504184424437958348775010482092587645332877920158085536092957540697137684811040922062644669455302242307166557774426033152364872175053048257521970650764095599351426532550887188899352143532369571176762788972902608042362497579613751126946082370365884440400328920862361577785042218067207724009020446176330585582526887831885824333112257242729011298360798761879004368127596164221472692759076765828080704798748061312736813449044853866387743730075981934783919408064761643319525561988883467603938861931070164989426199312694136573765727007991130315082864979174648667972110600283872823427150853827754535935109193512989268830671051514305337434346259438876131594295408718327622346768880998380706115990891526547261387998933069109873182652827528085409575876776887728915791442413230088213855172854330902165247880670952621998219464620593304750595160568697944570254482786756827981113814849079627917400196688408683601047632194747687782622206951893561668606877263414373930134969620405183454902744988647640103507922501653111243224512771395497802625553412314431379645688392559080393264545906876943192544423849799041361945250992300350215560762303142951797373765785073069061476018568341686707892985707985656994271872618284438905749063008733953514862417474242883709243666173604418123718959962185455433634113611599609831049983841308753825905513098344839919183570704923458552044920590377949199645999268768968900721134899745584184072521319861868644821448757975996630371944128981222667710792720199286472753440238642144047680397264724970873932443902680954380747145341888602619274065665208946234529126653817865283147616221316369075612421673417085612162487921803487340257826675603538918166193716812069000207504640486365535796709465048973798835356041992969604296422910118121538854035922726854517020202825768168485069159276226926792400628362679368083904662283694438383787082797181383211714643059220648598191927332052996844626818688367877798741390414763594442254780721950946079683181338841141504664529092953657155594448248815991368369750903400807659838371362573955726518958584709728353618787849085213135183053543931461044916614542692440790093571643793568411162677701095002855548259040950569869362802622082689977141790253454404165617163526808409353674972723443769578253074843560561111977397700045208679263715096150637147384676256662672100789799298999579705282055322611398352425771902659335949542398468593179634073937200761636739203870768205864136097445238207129481331836966541318479500752289895576061227845500996016127522748156168248060233465901615957735299165399469199606702205461462907036991920386931532789966192851614580813314495616808065618205160257788870037652302964988014344270633698867512480352176209521317127393401508095968051514356448945735283249595493159234509108980770310888365726386940432755721381528189805817852253424336673953830364888823841296993562243934726885514418609442392477338644034419740012909276401805216381091203116410029894655971148042536255284122264088104674406675684029678507088440508645447537673208300703001298391461582616760438314845630957304191297073837204602471666919969747459018690452986754661676560377092923084926693658594106850695176262605951328368843034789506438271917621124976781735839210786552140159759584474903176796627228676092953036995470107983141684261732809414646280394923690260035652482899669920002420130565010658231796070999383026881642674244381323844792632463661675871870559014374257821165936750891827185020381526398152708787479382899645249317942599981824684759089108145809087923123451395223460054095046126456192495796926350802218741394458020239788146248514665725935277779075869092658376827297291950462489031491090021650926867206045056990828174834242923708861251851434338002317914704171489242064514355290761414073331135734358317904116456269449178260195821094359856925485882306397889327756121306551137735972249970009105130812086141754148118564797228920078124622457170794727413279455022792375819565170156820971102795606562978835501722761174780740226135721427028982656793864939821395024114996949965758526980083226148465631589213474536584245827845089113752860618967823977937276319591419100355557879234585106418722302889520988509259848088442456539695040310322255201735183093796062362938200353240415114256297232062286958989329909932972365950067623815353055145028433099818962315256966791132617855265371210475082279710762527803604615610605456940358716013219546758029939843856131681030388028666573696964555199891662013784963097288199871961945464342000805417113465580681533917504332100018304056714377541829269117837075034310828278917402804587584585151529596287476189070445967563540169056953115130397657802697944857717753216696120204174193844389731672690739480375962853127830218207346899608806859881498402879573936821335974093638575285467195493211668936348308354735126099585117865303298417297159671209209556057976975730251880431483353630601703512601300721546776572966521762684592807420177894260888143832627230499598417149692372412632846396369986649386757974513918494426770972127387069639241585476032560883130052137546408724927383781113944305455184153522375395807430530792054772712740366251555397581712979909998250136443075197309360300270208205674932328888682383655904698659829491436860727156181009367523490319871507718970562768116133261926491747484043736034750858247537503283983938115854330052926438553129491903671020442187528439921152692972989336567169001273565108190763089573489340752633768215647346437444727154524643157837420631524663234113124119310962139679219691817272911340057056349341004981019749677210899957871796464947363829822195346930353344095347893588810784731666828010305410309998710646969698020294099089814821092984596714162736851267350966775864150311980230413477775833873367228726512661451292316646755527186756591124012543556693356278576541844871794209965870098726036010605054224939443175271484287502351101279718383099079320394674069230712666130240279333554956573530758286759471578503939392945951792970998469819365015333381991310056277532945236969213662088938507101545397954518893126580688081458098420731158661904931571665147493183242108777894243552872535760629866866625694043023531034924015092951565926914269499005308134507071858323612014280332601686429439989025619590225077462942290651974816027408825263778071873734261070548775477400974311922045055335391303493101492507800794255741879181271577454698174302684167551759307307940745707904140379822907997765904388215972466241761890553608734597766818439278527891552826994506337627535525347584141547402256573444366233355888752768412604432167649519814481522715940584631407682996158933286846325300122954747358913846288142623764181289792605085357774075890427469980035821606369042896423723401651578175404633058920801223204309651367546676467099490469697591566135484089625810467615146432741527299715543535946657907877026358139820665702960131451519310643927365215766845984293770793523052642714054898688335189168725154096484296330705143851514682870678749324717383146812883453464641720826645738678319734441926235087294857811291823353688269693153581726261761813324025634938875985257425916812194370114869596252004156137660338179561785303726031821617977553318838299108574162794095809690423257066985878390355291460396780872844841409226215010020784431181178123046960943583265190449442030500382672401825705865922706095594602032750670728520589909423243638494400880925510655263060795350874038345087424701463322639742952232516450216053291619238823075673445390684751587264592232814265444672143979043748732343048204735082524436441117951708105504742720057523785769859409668047825322658577583026367040341962810599318907296909700541649728667743617236943536681691198834397638654053815715430152936642226827526400447920979900334382999867816386737099986333418939342560924048718469793847979385592843944445193112528401949479618772175521297789927806935143402740912511297953528396031277394313434052259098925825597524931440200714614113601355069948172847951700335016942906883642811837798725447834930847297067953362108460460360027744767216460367086728435915580541460700471519467944279161982525841524840842436266129797190716203041869898970466557875026584292763606751072943125013152771187882224428717044621605976323777004729866829134181089533839576335810037995952245889328697243165647753599647067688679012521285920507476098507270045386200363398434697103190655105953575158968744946645122369017411007866631176398982984949479267224483133313113591220698726683751852739243273146299049756975975851812015694778212362787060231788411638067161580116375150562479819452796133497939062835111705750755261780577851974772680270795598915163818850282725882547297696882456648076424250513025162165117195037110259387379058984531771852616602954882358536675756961055087723449485538086555217288798877135205464256690609283296632022420456831445110546280584383101885518743247045001358857541547262810060100058912316911038619060605562047435257756375608254917299524352723775582990356724601383016169065276771118075753636149773179852758699382721618804743871151117844159208585813935053417505021277500866718210771474109773281762466171706242178657696156522684231138166731171331962620967598482889046117371895954640035325589161863472933952278786763743169541584369331419611616396807422439376875047923271751473640830053259995894301670012328571373012662405036386274372029560711575797486010639067065875072323159514761229243915464230617207339490743482825473677767395958800419266448796887326141650074770490151883863250436185694395795126456405157527490388359384247014458387803120080216160249545766970420457601896308918830624907509872755154226741647917847694037104669762263932992511958980556982997959355371792642135698718482377487952696102731649703121341079330265897471195343074568937193577864410614472357508565719966726906296071053713331426212891431150540991132679527030072710997265651536311623400605194832610457292500143997017096194658998594709751220725464387214752829659013163658784996374949349680940109795303989827182170953717501075312158356821420371720693207059070722000118401460833234371177146450538893332212793859809452166731273170356972464810335388176013629982138689498609312975320384217628605275036127191751528013278258928546126482846405803540136610123828035625201069646727161069275583238999700261558740212612412402363045189959358114613566564014169892660894663278481746382577173279425895425391317291025922288523601512709273728100917010628605168023434665316561446494466455445833883615098868337737850753706441267210317650606367030124723561869451564126311281045132721246964361252652856563795786852710098239872202661599196927101006492613477190632431432472412068554894006587104750692160483232933973352594645207915652573408064081789941100987176048501726254293650298516648566809198944684909037691947977848467741250773011161571854600663329739763680701237746416153143929273743050801230943134532916238311716199298372423418621687147032500634697335092600298550992396320152298837825490606747245911685795316908758400943296714349153286024568474200966683529039255069587649287829218478321136543181914290102784465729544541567259971441181082581366854463466214307609467523782676654781305924143088654675036502436093291734205442899596654732548428625329982215417370337641412375286977739450282431906994772498551467356801253415247732260868711597704346664275755889528066911912161752500337998739030176054320616398461105337432664128664702058634615289468289889062114300864446085936114374636447414217426175370142319728239714388644902023638745942138466963199648331321004674298662249212062403365956592312148974642693240256866006568301151124801495055853259604104865436935866263464547679125070010298087760478730029106874422918676623505418908581479636565601456342334880109937343235520045996789501696385187756937883223939920341224900837118220349070597334040353290556295839124553672411860050078889348886933488146541296666173889477220046556261633788855855289430644386435548839495961683406183454185173323237217580135671989522080092173894710521411255569126390591283671993040581852017699882188507932059308575424252435848822905322877172356890535532426156848026663767842076880136551449837976772048764348231789188178761551185710895379098813692464682825023917523879261310397843437244933336528951242969749835343734648969071861768344656097733739707409384726094570607018097341415452163087165378990475924913942319009664745283328272147394144711284746064142978087428853207473573155739928829509576004324134876282621908613620021389402903611525524783145201907108248242260516507041276744121113316162195553120579749606337487312074802630843588194822200549560098543543154339905565703665283759982160586782744176501000009136009759888286030136934201020909060463982392611020922548230983411309512152265651273754159045529960422890929658824691102184466870056577137307844343523363356777070056975083823494919372784855824195430527111636335604425268362880411684589295096869358948819175909706438769881162984549791977992716921530768841651658748471086782489447458864786693037623962040863206864839787924093411175232174060997634825042426168785356335529546990741762348519258217487217102528151878181810828540319368568526039639460614795709396227393417152335073960025946531849864699981572955411010980906858322224777018055475738819145038164868801948574487198629858171423200804688315761409366175916930953498666480934236221108050688551739260706672647086018539805350881111537984302406044488221400860819986571179779445191958496861115485992905823851472790045095287950995943525058584894464936901079007423560041765256920523583166403257037951209752654629994642060929735454475377989002179954511530373363508784534853813521623287319786185567840103212581578223174548469132556697968512318154577030507155066640263354157051021590165608086175387726364317139959799034154967051186633267846207216996946506847323995387017697674790439386465954600772556469627950098053776654948255619534620298622042015194049268406211971727148493791120249833735917945894912969258475464938682510667640639163580987687296691440700422781281365445199847393675188916829231154770322179394498691938138529799784908142353693653036592470006563238543078899517783009642608059050520178604856085878961832120983309439137860209221187497202688117378410606964343371469052733340113522876366443579494199191910646663468743384657925443442904542589715567504974263959409241010130497244156774463020460754095413698329643054498175934649142961907569671241968770011922720972377475303096556972079126225603822934193966672215578009108110773674535733934683986617844946058462033410188425481874122447798755230301720803241245456447144705659737176666575565387032512468800854581764526150732903547309181598677769841323473510510852772421076090247274631187503753635516245679106770041642763317805189042543237280504036810010287884457726802629063543758553167685957959847488116159818081745680582427379061567159261587340586153038523059152448971708997301042728428606149609613873701564303801130864232176662548149031397932240275090508440922593661592733078214935539282649132171091030252832017794102461149526220717002355039294819380240505089082151159322465989631008449306377452332683541300520114034584979111165705196395757315908107665740000661812944036280493918924440534969342604893997961168484948827751869769422791322154383203586893946804622354579486468710668760953618514873242952402356057483182217857209851909800362255590023718840221440590997020969022148572425222511254624134817030080110553471320252609006730168330636460389585288400882386730690236472851277980267933155208966096602337844746500488958448853644548289669990468439543686920838912523295177989286697647005289596964521114338412320215332640879105163726572392658851096366682608158687176147191869270760217428684127725135974557220776559236753527790066251722076555807552685946201627987449948836590273903081640092135422159887186108680352011453056148796194212560019256824927122022198255756874880686553533047965690282091529785752654262779076075042997382334534239700941133184771172582611491382188484861622637914260609013412466940679016128884981479244390958679206639783760016977656571426705410451242413073408932209632950374763500517081835953065468738936948014443756472469691197813698830616788537535355297879060538165178598261687723948794268267063720908611613768479542474951104108833680019855705193407236742149366011921374493929032372103855839370277505915303806964815594909229114768630756351291060193248796705759142279349805522645668779219691216407998652436887367860441495878459865563075247093794280078961379032617921286558091230483103467740638031802569515779823419549413818902402821056544640618039839939313214784077644886924813800629428048358479383504168497369779772079144018139480992123322938469603882339608846971201484328158487341797359282305161401104703482765672224895463746991375832394246201070596212329101736527574276965014641366689842012519043239685629761217101208977684779426956143977058076654982310016060527056944433300821451875735273196235268969447621153429459931822621657629601943887758177122382520055522817683548906419515344834168168195195219805917598569194075709266577314277564941757841880203668838826637648799515484275274116969475279088841846696527569794682205099692711810230131220655537891101500744106365041899878559220669778587301853354987986525437577202267693334677127741238788794232742755935389275362886945727728442098591686859403300428618134357893284016592896660021981670509287231048337790774250652886005440568220026869144296311553817483963637650883126361925475110944697707751402526220937987999877045402510958634647875163222139384581092554553342375275164427145730106465356589018984231488156218166802506777485647798800429649952635063861776125545804331887556023845646284625924916990609277825434170144224161273980054369751159259350643391541025028971964512153887331399084726852284722266372971962556662253065141028383961030303815358214655164395861052025654851508820784567795616754018218603660176159449920222585179031539633323228217673293290805829700978291439506016144845239475062724286149926229283722696756658616139340469898625856565097439861323052806740534986355111277782993457856359461632902370284951087488119386567977847832941710083777268127139401289405930568069767788921286992482061754893098434653769189000180855888449803421392288412093109915235365602364951549354926430904572140596079303262216369720603945266272745882321915027643820914938196014523133979477745704253474361846858962596638087000763334215983133629325422083236843713589053498767716596681608892988167358134945015910201595948730751675884283474047629371846703568551073607341291218062505813956297375751535732361166624844623070662337110413433411047734551907580734637431645150427990776966011139379215692416534385367297196083569646714251384150917178624361660526867336101659899328754322051303049870327284348387865191091001295805836109650333708426340611962522456524558526216335532646519540009531926272778712430830067829151006490587605775405949495880354015854971921618172229725319076920652580257817173546189864386473381480209609345316666891806441698435921726545202484997069985720811593191120716514430442339641462116783644007970999647240639168169415364080699975094879502673640337153382636724955103845348152455658319569175808143391390842154064037400750990928987874675543764036056215469901123194390868133857189976549271672681603382014002970154755318856759570692769759312836828795606020002441996456830603913149836060746804100852825957242333382560562139563817818110487980712551051668558224822502858479444710915758116379436155644540277387010345588695869435175814098414186126768271752897622238968182255028552912542836273493079613926186384838474468859261763478141976348617516671643417680289138608757403290123001463851014789304947759566211991397615152587770655498144297985052839618381322376999251229478503951630710568344482638486704894040406118451211277643513190738492483526874929543294237977806276613437673259264234112709329823193528907396968008919160375575211723209823248191964416150171725050982835616128115647693238958106368635326823808878836943312216326714611834720509929119982630017172159906463701405183223659900029537870333725798149152501145742434297327206154271583804050463653143686613676464546800458802176443616114437620646448122057629713183653536706274881079435337349740438236759649547176250132287977006818084964423988613573086799130443105474696100287172539955542810138013967629154292375974108162114135959761392394120372879720593530459341740589005324066872055644257505066693203504301663045664315951167852049572632773510558231431443401481108697195400634106723723921438945593054446163319863858902525659167073449372307646854342283923480083446836496310966489651805882059707270325806639357353656276556202449484032866848507128738036784388860832664494903114180938592409407306315782921996500248629758330131035889315448592484991521838759504711819997154715925251533408311710819781628394594973851060388350807249874787590729155767114586501721978878414214797896785674623548243037532694658474078036427967828402678212531449271811320633122802794675139859058067522215936466681335998132926166429020115990894719401734659364682437175223961638226107408217784038024222431544076083684855969204609394316637891267936342636449612937668153845653690502242339474466305637375791698419742461251393105211652943853653251211100812725198155147670764575580732059430342507702629572907873041791657952817448462950754888735226615257618799759248117488831674714456790085733402030426762275120894782762767811165467873357792697734168955004472811423049397808187981435258147094322953131061038756401414347542972009406527840362337392689090434408875329290217548371042484672089024444131277057822787472122323495639636973242267804477750113287798089684138385980707722744137836744224554037768307775985540961520614032614483333177859936540226720348078884824503214335506394658536109800086204458408174992243107164704048382346824682586831512497445615514138585746918930774233008635054762896190028250896753274117423505076682524721627567873714629094201027417751582021327090768062186827725645282465435000947834384899684227855167828349337757963407551262324080519624643171733485698398480782800126339681475947817727966852646467962643617742848089505462115306857501190449152330729186345995178362184982816797967777096459168522071821054445811282836711477092001154481870355133606044825710018341627832660167805554853490319100751722134211292660994267837536455283684403465123191256258375408516450351588938475671544502176797152982896774911363475011821019352927184486854136828877604503920906116753043713511707138604188074592376549645018896598612890041091112363155485248697836374637557260504753995517736065972152077780670051445026224061893761687947919435361964560917159189599225570672372251903496196729308049840215577058459367205240831879125037423827082368437727409747284785567940780693131905558347463875498174542164832184389560583822004998373844348919242587238697182648491157148993252997994271749342025873775775145731034037946183345256806342572346772956817338669745368397398401237243531786855116436701527378944529471063578177059583994826923608521865169962837427143886751534993582355241908066637558635474637554793141362399260763437324970649268884159411859465438375637255397732656077581213617494096418185911692295620113107155025211335577230754102559558747214774090984992451406040773388319792538213860246256995652304641441727236617938878555640325757300007262817405972504260179717934996512320460605628868444040340657289485695475246144548701936340660396101500471329493300268019278332721596562290015293175130337589776660720390804787051083249093338873444912635231103817161759695515657629867396673619638912965962750135656405303477988046218783513566400450750726106871456977990937245759773120032530382188583812542770300996056603379009177181816494965931086686310829649701155995110181741204118619282773571501249852236203122082751476622659507152065115299950014343864588956486344955941163587290714870418113069225219634006138276863345315221786744312593612548841735081579502000525700554008976820235855762707738973211650144516029017727433129943118357467903355498211376426134591393487769955743143416211355787841610103448763773190235172357650396526791971985400262411142070546022371519929500939472647192394566939351257677261098359275649050932242651024506104153422113979974494485018432954736527874515034271263425742453717010981743801443170446429396944952195082246202555671690778228626838162268052873651076690770295107590943680282844722999542067862804337521543339870119004262739360855948377789077157798674716157237910329700570934723362226450495844200279672527139833820321696057310658181452294939142584585543135019643669318542767646326656103043515681600218006755324219304387378195245242548168382103611174786804133058280721296522574160121662607809663220917296510494068823246277942073925002374132083110325547567223398333467864160858409531351828855502799397957751688606481958789597202561156759016446575452518578784469574396112654737493747801826950445883632550594130814832614495128027749259609425346855289504866688992829105703298402919171053546396111926520726422251279705178961584308809344043071706008210964475411629079866644203202597035911614507905014449074373108477451874462984744788513477161251140426346749027606414396777227433893912166157647236253770370687265355410104727615731503688770331922332084878712223904438404538367231984647606986426374840619176633662152546054562446449625905435233208495254603631087342286347895364857835500763881979672934652003972929244508188563208451657658606984422982144982088415276296200830877533511833541366503497031367542850107411732294611335715970874608752584690648084905566722013652544645181355222825717145435188060811137235072681065921160079337535068924905220871510617614393739979589176163067142171085477457796776350170404264400204648818110250306468092988839267789332112568976091391573470733988814808214763322427715605505280409672761312374281079209664341783745945715965582839979518720427454229046162742388507968789127692472080577249546307836027246002385655009728382482103302919459476511181328760592585443999455233065106646474939605654342173998718917202851044401479908553762629867429503715033200138533872516952728422088131105098139530121043166395260092268369451259687193173787950458870202051806219279897093852842128877767256164241950675206756212788578360221497678356216611364380545462592197925621667213691641704211550725304769308489471145566113557525429653123824570576115444526509694099206966823574400188693726473865152084057601139060716993567435416749903889955980421887122386196540327187308496696887807652346782277821367357035307739739271749101648268427428686156007713964831394356342227969697412722676599966013905287115326246021246924263022546132277426034246608373150927714952999353022410693285784651653929396262746962710264700307810841307468591610484452252169189789207887823148978005901993197921843298708569968371855688510622793091640684721248818371055933388820134641927674447664870777464201906163888966052696851431146500759387849918769764946061673007402776853494956849076184073712823468851612323552124599254190957008570024385245168061889424710556465425057397874491616061395321572156187296329292898224756109792602316715967293175561517805443402377583059571003940115622633557947671889566335623180802064986284515001626121776654562603527898307064899362050768382763030872723054456569229476383451945094090282342372599035368398825222457040524448246597914164395700240437822753804970483410208105670892808476214838953167075929779310412755248498372371222045332934087764572904554906360036491776228930861234950669602048804401461929057124314644657813827940316276057590561977794847564550113690349238585256719588055220212148202420812424433799170945541503100393789714174706065816731258583690381930044245360861570536517591772819257344912093143096346077800615743807927529163662283421014419590652211496163253729995426964685681946153234069005573479666979813303681327663515424436520357708922650881862963256848268757187484916111756736282943425374495890593271695731041925064604064355777905622381221056430470945585653550390802526907173639874843134053597599713128582123120037067029529050499070381458005944011553229475714871264146632284759938621594590868635687963867195822905455598964456508697442371951267053170516061367334825504896963733505839197530805741315247252353475979044579456902001321029207300471562802310467295669523615400128100211126046208144458327726198463537173063849787401293986595742290620809683811603792041610946810524767058257984025121025838955570547673869641561677148576332747003380177338984844663079083455637059113918292531551595151023706267004028082165551289785441395753512188891838468459375683995154479209421949727255922671009037650534683836203712592219196827538433295673638498227057222770294749681361545266772779861735064217251062771591693578505837087654539145183034149286370153085377426465801737702684652272939818512402345039841003443738473680405844794233541984543153188889815479687023964103443069373060775039007848334188815484338580562070577295624193266335436669380786919887843672836428675757899567480232043842520734353928522573922741635925587154575292958394289603510200312179924625955770587651578987138450775246166002483582353919566995242299910410848666391592338382686676395609904678562032202624543773512127960366084508583385625762517970221210106046748824576945587638977124712613162195612818460022688264728871175250587487343046370342854167148038014353930263926950389121155881631110956960847292210273885367738389326708347919674497355367099614084590564765545728983798152533970974383489799690557937342745279120786952209394257004620279919351977123126184497827997547968556483770719326741276242225686681669427717364203235499113724105669467405114247682346650759941306502298695966349547180272921622482327451166308034084949953663158624941389561063725323451385003987773064657268998971418150452321161922438577500607811537570773610927646637291375443830123268672959009510487303620345388571864317196720107091123925298991282751541918825383995664287515231419868055064729947517567107803239888710455254543933196515755506905969782282760639517060596519266738880112164241558528741719829456604196961333643258427297433651227919460241338864430393790849301294512936403538617901881349013265921743052514554218599013567304622437346972642523852633420192337673630621405262023540549588950509937740469801564544824623918161181088090677294183191523244868457097008601964178178662277387372763522908911534297980379830201501107792408450380735739210795315333163330127944119237708243618060671108230657845068310862159464987777538772319071317982563435098520696128285633030938268861858816111612638581261164546915101623737069290519895373669910325995557539874744347314190962654861931719473110669863194840932870156012573210482108798482514247396864327560299918712685760494621595874715185345285131648952538173117497731302067158242081655504023159405974278293244494172044780167903257728881001759975605450306987195855362012732271002808378009931241500001537125289832093052306539111938914660319091275522741961398164433512419525714145450839492566181651608563419624143648734908587860388477366677307907058881449717977475464087171636860849535715956067256726642674192084095172004166871967769225645532743544450573280288485090988073040110444455946733939485834585042079889668978891684504321001936957837406161193586897891331699456996584478079860481971346626457880617997388094430858721290336909081206867131257532948045357525986356278069102952512847313663994600902471580280707769606703970081141891356772529197965296859977026586812027242283662624038626239806871427940665493565062253690287782980551403431711166312178313398730481520762187069371924724516606688252093770214291654634319287260560493995815117042568494798427269024975591332596687115865721248430907161011259971175066719014985310646245921083344444358804585375556401557533075062343989230925677089637373658756499784775481490681159871019671691279100821076120547194752965749244379962695982780132031120851849959570848512531894434343621264217753905252940525617309908451426903337077922458401118981004829905462584265190663490568229683103802111842354534697101868485737312116069677218569808697179226922673388763939941762325927837589851499354467577215015944819158618695885996357937024286009100539729912138062500405477338884742176087647584583920388653340179749693401824202811367771230163202061179565226564971165693505243537167742809116262860999321591327595915599148038769125623217258710527807476965972640371071952155439920045931916529258418644575029942786803437731016503885093485740540952187519742135712807120866315329106346379524167104844216915027613651761173306241261072497613136850772754930506393457035319483968893446306353367575512428886588398312748136120502340203494867558920592945726000725366216412746340218976268812623219700126687177500635218378407955109964577988220766183310851360096905805517122017095690164354457645125612789242635496433167503096619257914958977511931835210392215876134796135928146305944769535315823326662063791368896343501219436685518313605800217404037618806518899965903068080368632768926727359322988968207149421384213509205216748343901080174743778628564843501048848189523839940279407191251723708907579416915563290706551215411561774812339366155686807303871311494093001214481340101924996174791423461895002459271613406608143249507513830161053389817983653637700337721086238805586210931616813851341643498491172375530265119023057889624781948317863768412073106381559211044967020521639635491020605990566337790701021944615145764250259826599378498356984764479804713312115773573502300988068489877108086287628602945695746334628999789712771476806488574750096631847869735583002018565793823308046579503319510263914789211154913748445588728476652528904198867310494347690771985473497574716554106602573146506589513710716481348479781084744979326092750450833589282079699904891996983356104542400131029726620688336265377677108204848133722807109412950176853147357453256327043553966655804033960466922119057583535158352438522296877443248728697375798225579299649975619809942185180278841336054843586299742323600473288265809904398301877728514362973083075766001429152364116707465161427771265625687538501909059726402214842363481462493983691302342289821186092051452010571736604618685275508607844740542998954933024302386438965428433280637659175495543260586362429952983525441805444259229344567214484815250508571206461005138531431831926398574639044622211064734692641257339100275702988354841958302541651676931518669680057098472646009199064443856824967838249996700280145589355226700728175814284482774152540016920185916595681921782091286407211903522488281201753765861065048269007618808068381030637519111542784826131686661191641907479606039548417119584156313187443103334883556479969672279816861238536870101947570784201632877701168739298001850408075659048333805424200679146664674776203828082358621338609248458344684053926152056982748047599928795334734044250845414645551226714074898821390958453828080804785806877770245492373404943297610217277383883892619619092093256700472623545019680775542806881139502795085861310757813639398033348302856353602356632642906758129153024898831178159380679906021802098237389668229606618370944342705888065594889804924211009048947609437711257231335214009850539117894308663190032957250511282983675329053351915804811955550121072854291707422561082481787259376973528060498623124694005555613462824662973175754666656279477777377570800733465573869237739453003654053257182649818909132842909283888829534032178763389669285399126873872994529793060198350500305624949485586409294306668122233386352177053367729751019262333621166302537067987516610247821287771213420401794567293298993093900017511337801469122306212137593584072097293840985300863978532015391071319477226510743835980983871711052566436502295340113948941702789516317193477680961156985700003680419196576507259579690072934623511476532197649884686511361202207334075689980476700058888107717370523747538947144022251744027522961753056810875039928008650594941407599112956668795655957758710755038348499801504423208884995320695436175794696356203604318745451643051367778663732744121581101071308017018765964239591148742244659851760914045863028093440360056931775278643577369779368732597614285527377486196071496865547629100363111294087479594904613526532978530892177015814156523596824372317504689114864575164343445397161945291187085468208059548553130317152350353763957326636749755872515325304595478451795248057665893408794221051988864399848270031572783141241851808546305794463976929074617904051369283024576082766974616172676688892908432004904171889932970310770376499680780814288882902033896000854622510867331090189948223848618883761497197410890417711141015484580200012814518441368392606970207630490895672744990929748040143971230113679737375418506080395718830449677432653690349792610555653748246334973195728857069500975340519593098700775665575619164718411098324389122007769820304051625376625943254801351867597735863612198035420173247492378102868858915965574542871642580917412948836318631569944760006647615114136335870676042287014630337588900624645308132964685633633513369741901417057919877294587819949798825767412336744953220623277070827736193765699230093215510100573810434886340758468734949343669710473396736367024184694643748264950367103888681137555372359067074179272786248091875378228754547579685197306076830409684119197937872698923191845758714685390998393701934338012379270581213701243310092105651263642637612032185815018803985929160687375731713417189060376882872492383804276649441840219409058772168815209719384533596903825725819227143365702436163580812004871366692287849498079788573986644051754608308187405553743687019322836915939898652955545867849728468424267647084886537598706465978561299354017225487255938565682321696378374718104291908226231758207635533654441329363745069598238301734414723214165821519539598712210956326670385262546446212735575670610230913093502397034333589582116624761311500095361543706530766169940313864334110467989106327055060483600033611113906597749885887722450803331462012525544326525323148682571847108594247550829063730024393634486822227093258457231973970192030917004168635327877471946182396512702984785784128795257674047365633680949583803123782904053661665279952847027040077445776395523927848665372139527410033271763788334980377898741988435418304778122521532629086413604057879730023669896364360522368124725283232200207871933070220784017649258459142472104196319191732364105204533065110021062938670943188724395117197274124237232838359087876979487744279808569111084502688795583213108557420822395666851236751113030525106481586264856580543771032384104836446833145607168382011910674003302870845731607080996144655003846201745161491056380068391314140381162556403690384288999124700626937483677550319311583870063649931305389902292268523789944949883932170239947943952182796266254567586829815889219831071058417819528672077947748490932799737855719586224112516223607481850965071480034740200986923042346301311383305298423369187041388807608951004500058042339812356149342015544886649434995125302156761092285694888440277064083918111161394720490624815540645813153682189829871519610945205835662832307291359710097571153223952958074998388364388336104116495465149820988160554877872821335493142089141375592346826900731938817777014846952431234031084643371430550951611287353775825962852635749208312501090521292259784893091872128081635977318978085935754458409903563638446415243042628477675847758599720480206890219750627016975026669323517540217266293470862006533165131899962227248831439303449659346274957502053730205165276421710947350215344474252887126494123295279868802509021612246014234946036210840154237578764253260502340983939561218129245010257971920265523541202403428487704819423715070740008494646804803193623740496322211024139616373175822915697499242113584008128834737022441333236188862585227784374830325572243980048514393063498085123132906752094460775448163892446737023571046940585546924046384865938111307515559718968202645907851199708423589429432536550700339663667736721706248318888370603972639171933515018942573278251101681154115522323834282278747268618088116977335245262061707502597820488052973430628808502106777725584567696427729946236342667079337339192734931205147048928768279712977300333681614325842191798714113623464130020238361023405818990305928194823109088788362863020458107771770353114363982151578920391727425797253701126303775580862367080535739937347896817049103680184678133319824187800436602663013948119138380698004962690433680797021978262482012952133590022248748040664713096659502811168896479626956219562386812075074822028889232368872658921863162224345672781350546534566665989413999596179212069645833598266288718867452813267697408437112280020451305507763744893559158998873580650391998357516056316524365774742849608104669960540153019830839207573334408528804695038511653204775480661559246585256680183992056474761792054975501914222877803829904707713654277599356628528076825392458122732936851711723506263902787259869697140761919790019693828124676791215750446977040218705886955263516927846753019746229459410687893310933056753763073764901345352014309200041261543680758952671152016163829984126319648626096878086502644709633390477960314035460075615749846958961488170179130309304627966377666766812870408947388757424500855782537143829172113091962360010144481217455345608862810641311593956132759531293423146356839443272292770466574991895742797870779410987617242803744885692745427135702477077569728722703465796521696869511290618281749135427353193499172873427160093472228081041737577009961018906657163619285013115418239455521586039190041518689495023300931722228250495091357214597972092767428516416287020093192118614073220140576960209416155885965848373264702646762957016472863710069840827657196138264999896450429652313542315227245531508382391235252400467642319654426691351242082779362186490763240171311707810712090011204706484188339621340846773188957706333627396241811501595833452423892952184131193804115553666321715113149472946450351200819928459233520585580821847890077670708423280340134661971719190879904803963917161811423693958176101291178356324309641303754657212535686230500655865611231442056987517789795891814022629967288688133649756961895020019082148966529577886165597799738829272429510829652379238182277031407582926266084321453301069217823671464548795663297850006314844733087187672769804858957507404434652728037946839648872910125436117896101136922203985913571161230249655495992538315426797504968917809973797019858014984366529716845426042366280324122580215150043878702999459513446277254222617754213847168686867137742999607775045981768613785293793751658059917907970193835809776815026694510686462571227248769855209666448242659733088013459211750521892039007030436191600297028265011258415487735807564148361799764425723257497274295018405298654212435147563578857679974987062614999761196455607513020414058813128220260291398660601632532345495514147668687616689606162110005620152128714593817799015605192428836272101082523049092451524239215245022890868884199918588241882674230509219645801202064371111774594877830311031773311791204275254561655538027660256858913847687176501133450984645654349720192099317521723987565140330472063793313588088949270916539739062510375042568950574147875294985702933898545896070615153687323301859882902107171314860248410813875374151169014800084106599629674548458833637402730910500650070016951245886058980492041591303289271612143795561380125150600562145858633439434019631776239963730866413057468765709193033016772442474118445852370079197604081294976505679355058200526511561693823470399093504290390191079952581983673245649287014300345240681589419702957202828094667375875455738175761781405597769736161830579100231125980191924171228192252716109983433931289246138457667488159568953634979674808564274322953742058845808892910078578836050670209402160360189766698263529559600727412944103389398377790145734392257709163653578638486965215231394026994839313425933572942333059761324362124377525795440126528510397792735464188122897384114956084878964449937613023931180005966008487933898239729839693349941524515568352632887840121439581506397963216053179877820897304699089254614435845752504242127754247023467750229598530553552655180881888330897493342260958536407270123516174310513261508004786764406481162327516598991431630577738164891599181911778087733096366078942008940313883878858032534088776816995137523028048045906415674900525667336467466966634775561095350884000751056328837124538004526790946586476126957005857375987917499629332315951412456716594490121079067988563271154722007156482485730183489297475981436993138874138586877850218144636017493808847697733080078137153799207921041295720837409684277719691696260918162564494111773101059330784466710076970004465254989107967492406963941169490134857991471539858133489316488937897937303322881864283499728703070541548035220898256746156558596483302772546330632153884897869708674549314697974124837000776653767312169745130665204934776429146663026728875157139237581400407237716959093421394209390290163460737679404303638919830027468818059132014929745063805245264870747142224985882242230700234986802231101828352178388268561150827496836284042848899572447692023478874949570915513571098440694607732674443433053981727947523819615389134654496028619821185793211621717226879717538135948487287571884387640681312005604115582361929430451010745624072038775502379384871729662435241028805662719365496175699128324036327081169997747871734869101603217313691606786635242694688234296327215400352130814591010842531878080239047983964438711612410449757591944972525703864652789563749168481142967310330596962837888821993759577288805082339476514241908653084913498790365536932639641124536846617143927519292157818065742804991314489433012974794448469854437154918839071422390100932996464074563576485386890694013260931178126789294980186272181821390745049053627302905139176137809963125543061073650422729559504980113291937362095274564857481419825464398065177505210761217888629819863879523938077799606249568438718217608431922658870118379142722942404403700699651845072570433094091421802636920000646092393035236834396307813413408208762110633107143830699906260342774026811709059974559463374021251502114212386877561660608084954426249016355373622903209966868232802330595091773338772052388959700379544529012401585234030815479640569306843490320464004650697456659905544931336197730202660076184598509581282510272444631891345775787587062846585760124998811222938593579710813119714272795107262428690602131228355899948970091890354522179306746763824678837429850849321322063719689027923063641923256463226435174749400611224684651292112949806677626522806052528925786375211740872133475006415863677454249671216017740875447829741340702846535823145346500724204686859334485366725972745093858708527831878592877279198149455671317075887886123662450037278007534459929220623103745654849689559779992154427515372389104828848269212163985809439290782822902031636494060108669653439933262558203279501391931746439279442050034641326632010370667497255709402315198045188929146707695387738520846079828371936428699073258004829082716406612653067919779033700986511056835865519105380540323467908282709802497151806965534904621299384320213992701221026429356344260711226341634629462070101898390349655411871136185044156804397817449613508607701564735285388299811028309215630412188759451001455557186620401820304767795557342477135046853470345304972654694836072884164647735797503819994849827372299171644901220009574891812074616363777217268092079229842699605852191122440263879910195367783737717633996036221402387952830237212877856760316898545944389439606967875279249843366810402272074746887083995579998331039177095815867148778908325708083010510496142162054017633481871371093896853067391878103701502417377921710714977334304382825118706602118457719443359807478717497211956246337469731547950740552770445152227121280862305218888502407331492281811371797773623662637689796935419414261425926592749227085498744136887467166253701013097446422604797573529740320811010847224900825872890158063184509330374999126148408092449800005570823921032875468767767119270693276007320957996459485697473048391742817961127833474331419916225683119064321387504189679718628045071900534548192729669899894943904040513096195518252247898126310572842834738559889229919089591261633815601540765510857036271081239763639446218483078744876313299989593968302086223713036844601562316396391415413760025132263466300699776947541783823973836040702737987715955045539500406009237514796425848023391365383889567394157023867724562867768911043766068099336034399643216272072310833375072979227942637562540166249750259658151357397097944014871496801666534796853042424864606627648501442775317295682914916286752764868859107257771259211920507572009960437330986288560224981063270345065041347521627783784192587916852894851997633014659204590867442149864275075159624616093738524109705695362430518740710195608015923225559018894280004686253150513898430922764927059931058662526680045128900360318995426111841598630736441574114542987527482529108376663781432545269340250737090936432061797240618746947094616401852325457853123954665407923901604967625731864500455820963570576237835702151405086106080428337179813217889830412431872624648607896437741450129563876485916305668110647820659677301879946967149295554751153526021381768148043455368835952109617895487886291917710298421957435798980657019640044655569365991444990012017038366113174586503658043282513666467607332778481978944965117174735316559398047593948367717710618400817444024932510240984325243001976578369707800293407742520281942137456018967815389014000502077156146024146548792511464758833858946268410700861576083730991090425287853186397195777607151073666428311531430328503524714348023403966194503244550844320362315118093029398007919016957258987196878277988374089943561761352721486144323453498448451955460725050132011925491632504252865209870787198503740636300660540273453690942022216647012013545832212679795648315042800794540272403050492366196851661282816198520208706609116561448787285714622005354159337929552432405581235741160071508883372093660013436731335407151330049153873038732517997983773864645823598266713027530276051807428351331275280265441546623534426611672892747249260932075165145482829013687435901884784262162020872760395915889779797169894290178188959680775940730753942271925063245442811031999118045896830228291077281128093685831714381552342322933562691748573855286208555841849790461464310310866880753530016340337078081206945333060094678220753934219234589417503251064335043018494538612957014509129235780666913786310682044218452279880895055076930867578060089785368403321248747751427409533924833353075532847015262873560212095607286732658854774655796702240103605991874955369942488265502367489394252110313806849155166306759803105507262133537604627786614665934708502733284795212015746936147108584671520140412541028435429265201128511000779761668337088810252613264993134490452755294976736371831201138382855070780090156151584450427067430889949735432490252152105312349793174008813728157085026117666876195729145401420955859496584252488224963760367574362291121547561986392651055136231479634232538410743778054153292653251325934323653262634166315786931593567551748357916467314563784871621067035978320055256010067447298416717395052998580302501507668055456830333831972219144970127840511705944909688930061691157823241627753240483143838787862338824130834288040021270075430275524016419464943790460995934790604317780856810467623447808923061022878780569794790517662039361597235573643703335621742692526579802007634772151766611416923517855250141973834017135537863562067429521412630731303661639421359200825873789570974322148843022873370732283559221753104259467275874319602971639011067905927486054105322556684759412272350039116198638593237584933367783646446503786350639307702540959264837410516313581971359057704652155063985351011069054082382588792126280038780995279812682035530539013801656879714597612958535397415175397556792231601206395972797482104118119834808404714771822242369472121777012164948759580415444538852178088090351005112056442768455329824730816146235900294510101876529317775317214808543430927922101898885271088721025944724658897054318144541559401996898466876151632766838838541011726071027937851700977961030525117426100503492306903457607297333345786348430318890169477403739322365806762426825990840345741021718825718395250158452563755194240422735609807353688965852323030371939289621372132638805785779426822724949394576997097715168223634043735866965779469393230337776025843252836950435890355306246391424309466990814535602873557955796433692033507282969191576368392021479847116345591242521455184879923802134355197282115328045815300117283401161651477028883994000221064220345569298151590347764228637218582447213901674259728318089010548572531627337305879235186100798998672093253362532598974546351088085890368406839726049952106150557819708106213532380189576763312881597652937264175182979510464711646253315209972366730307216786537142027986190944474246869901698270015829026171969207779844788272999260075349248718175336703824707811635389043913513888380338170332087195007945669026670394390134853358591572975678017301961945148001085773110009302263416044132535546485913233943133092554007959227825683140986185583356401185247076509780205172151657736574994554053478130298920917322284113666916106961583478860491005769580174005507025911325875337952571312264302873087253902294720408615507945512801855537787043247404912166384218291165041364117023801368485534520276893039886337904901485722065550399218028003888408505987237842690855526963206073082443503872338021599615390322248060999971059776015567384342549144265708300189848551852291071311965937078623726804372590855015173186267497578001277822890297491718180981637207668811488728392872719273006296715465153569398558383396975539220763498348622282907744216150861509825583924771904071839529568651703150790408273536054692120168865620034636903411566712928941496880154947054627988939902462867689421886799227200328993397741451959781526502061070918564370445594427692616890951416206224756855580878372174269204888102553647622053144907940419527630514875133745559844767185600966769320637799356715493823311342877799728660921998830876214212821550639535778888059246400693028363547385379456994726940263647512417111664105699101032925469794357315145826097348320931360425674174043762201071023787597343917650191606284815449300021459705103499453738675435630873500019241956206698222177439690213572651442856655779250238410966519430024811047582715644125218104289769474114192816458796498807905616640141980076289506692311493037307246483792974015968583139627515975891300864654028972358863938717270940559472445034677325641379068388900087682261706232044470593676596979407722160300712398995860104004088413525812726427970864881476440491566643850335844711166229272234111550542095942939508607620105445443942197837185386958920502947638662414292996933515526384025555164925744977536408073903862868426868321439725677990619560483562287818934993119925548568391803558827684727743401616016522796740630045858642031766502444274511727176413914513973969507146428410947216449669243541004624350969525572715203653908524899740989787511380742904365759117420817947028474463929783784690145029768373226861445920869009067818158561085201618634367610776286453077350362691187460835910072427503229486958918116049046901322893395169265282770979078910983892304658218130281304415931974008318000332295954348822164118225294244749530758760252799911991684182347212274056752329550493601087466234412386481174613557431562938533998934646842124570615841958712759898016834412199777883943923221356959849135270542146366934085319424834660249945063800510913275008108669464629139571159366567001552606672658617173373608990130438250150771424287248640129021731403122862839852187701337837968096690944931130374751321970166291024583771566270983156956002901704666525238945817825682011406267188235810632163563918398203914121040915741819088475329179235123930979836994181098168404835234009770455857815062280369073242434999891703404653336826407803852386655684157071365235458674027243807671287897035988427169543652382951016987329621832580507984915544021687426671554259673256350319144551714121539515251052271899614471390287522550022194949770058034153992653955586297915312586931161019282150793093716952813961707422138662690922086325461696487137617179414070948707548097987959501213632112754733726176829562112058885465743415364407306409836805431080142499347657105023740521460428392905155269758434120096625096276742229977110419437347921728498487851615460395825042229600642541061909974243512981864081200226785724599786585208393562508285104269769664099472943574214579000100423348881411036932325035084894652925588829187650244719573433577583841911949651404403899388701230799456253971114010505232602338878888969968862985044794790671928641860257213862519574298504458897977563695221279862732901600515368164683258023250740965257991985220116865447425195234820212930279742869183937581612427587568757635028145311892063710794563438075423501869926670371868292880472102260066260145900323450315770888381217300677147810857608920692632856497759945711385729433764230428294290085090985205078640806391490713962506802678981875613782771808870333454729415331116046624319615977618145428470308407706139390849245651304624973224844718566227598018410517093675262540385014216335734299951142413165027067442103660332481886772452604863714904801185792395680639352545349183121277277623101574105949215195144191259603840268991241328238803494121988358613415258236453876588990703457297136011412935403816372563042288859935394762220759184196644921930942477682382648109908987374629766880855259260033128253517253160917602075708240167320088497680455016410459813900605231262595085030166114846396362777539509635665656048114207810938972706228316160702813406765808240821911588265361234642236357947437697360683452693542570423874786679395754329537918181180742286197209018895957523946163354434116502477843342890271347389142368922087044032308363481573422118995205395707787316395730888926631269625966863880830558463792075305791699041920885543029309162404710991898796379753938631182639054635979190745020587350350632229330325652959676135342728362503662792464711058788372782339005493799354181770994758034670841804891262317910822576362637223851342549155607340283228638030009923569171949829580112230692422405263551146326405718822586985932261997624021792503858145050047416148246867917983614082778937249940635443290681585277029276413409143686954765603785078191384331219973352009113575958802900751362015122098679623754285789330416265647225717653849659968883754397261011064528499081065487725653848249953895576623366300024297986967739986896046545868437398722596666087359559022573290411490400529902853944110103241334063252393661673863148097076476689403541964220215563196590672450548234493351293445405881673402986568528991431859827689252571800306202965908243056349634774859140762632330469576535212416194229368121520108748727077320419497947234458480048026102065408426349668546802366563919830581222504292301568058168016343335667871138705235647077714663346462058317464049602709404994267292423047932463952220826797346019757449996882213307232833400411951430575838691864904648425781930193313538883507458561928236486161606550578503795394447562792458679008109867971231134334870516756181300615796321423516377322348287738133848118296434536925686601460776378560675842786915500371161665052803048904935146045001763022734486104084096380234542165303050822480219343115577746524292937726802848582615237550902406417394096549027369607131011786631491444798932397366997371791382657651876611072548982154355477003430471751660238318385200456100038686168405823495451200215435787199532469031372288679722224072325365059018906888507805623928124821323098892733675780742094202458625584721999779155155090401556770136632241983618136500964771416637052518450768842343869257031259098131823089914351490809806174270970923132510751887181642642401505206949915163237829190889191453481372330123078618257119021931116399551785031758047524609149033749251874396679842673307447815059733402505911407502485806374014240216408164784703961425500663622664160212306129504397155046322324977349885882821865684276555138924234250183079417412150329774678502426202179730473449046124365165875160881195933605581712586981435462194007115959554081394804512777902291090727150663999231920989860080631290240563069123459912697876377016655819946609722425996726441572136710543679072233912970021494385192397289266452021350340223182004578927529630584733723875063000470196823060552211227141738285875006778856205908487026071158868662496369031870600274980016444493190197260320292115519292055668235511626439129121412094024661963350710472611061669063315661850745683197135102623313468171321240478281015779661271348674768425252313539795562885778224263968691803881035873547135104380407623970676418846331380918175337699391571135650410326963917708863949484381726835370432529444383048368156784365176258827786644080829142597286745891078257607499535297055869747040307407817235328824498541246129607212647965398091719826830360854497124944812578741118320022404046542478123158224607642156750878287744396996544994926765420824650193471362546317504416434866165200363273153060619067046306362692502889319136331702433646358851069226392212077523792366288041317126657360668839170653546388562809620316677334461537375673327577801141483353763537728890726155284241951474890168005947394380129933959066085367541966601601350432675875117230847597869748075000244565100249728516356663676258644873164846362074828355853381950379161516994484925115279479548736282867569057855003643308276596259045860747401889415107261567450982785843448536972586442507681769036144416704080556514177986756349883351438431875224827456515677097558365588239644589184674873615206858578044788836274810956074645456253741429615475010451226276896281975546686454674961375391181008735732118080429288248303177392564540507705250537906745614006034944029942503722510731623085172270304331652493416257408281622840009268308941461989642908488337075140872734898602337860897633472038077052064129468660434900931510020760540239186771373651559321703212940246579210200312915090109776481427150129559217072453400785386570496294054643129847379260358105768452931039627282365909121774443872611761048794289207178041179628893910565534118934416501446617021359548777684208685314537853480590838345736135768979133146776628713585715866621389940551181838891933141003856332741849115661105520865050206145252831914842826932344878742998410132041815280660996058413942242426319393392078244739210868011907708601104396161459973120605818176659101014623221072148642655797841562734251849493397579112555820819232809326503196288191199375656293825250504207712158620189854793809782543171877659063850522738577645871425817528562839105076344364129356841333181621421563157792071098238402229224707254296964590486878611108744730227453895666525548235193663723372811356163833528826580739101455417531616282324498283947702387958193556086878620300503723532606738853929939581121010506900467293996249466966903305002363604018264719511276544577811921521966400680781504834716515697692873634828531201689288516802149193588007266506875450543120306671640701600256421080713176228465991203255485859643372321677199594215586631527697045170956947954798207525565557596068784216625357972043968235434302511821488538301956513559303354677441776358735192389929671397293359576447183608332337764347388569186866977579727421115351697646068471322395453160419645444060228118420083164371330761418685164423342293900291900297781593065710752905298239203648076313293422568576292334709934979969868472241223203464913294802230208959519850661871820860024236338433318104976761003413568000668045401724315795019720966652011408158648821962638243081971416714667088323432127669199076814778957179565444353008619700353822841819655117835234297537408002279108866003402095946966802822991042335898105887927555992759660822016596822567359437789684611293054396335783793192576554741368854797820847510455089015722296412521920039342858530370923688265341095926230538196755045718852420054488095332216634498503835471026790435603737780689197838199349319287184975413711752988072952729390492166403957050766300774589038942134974128760224748303535372404707801080889520877243589990362220181696584269906609051053010521753601956760190188862243755303979663451468700053186034893358790118363328038214206672854990524779962213454546220139317333888735373903916438926511446074887945818876999328103911810366500815559937525690457628127202413160161348923019379348702753783659427034617612263758384244090899923064513860712526158223721392321064264890752729637474858084810604311339457862918395948601448712050629256635597119307037102569161661131841129946144147000931635794777657212728348009933561094558688681741457594068947596822663382379344767841687877635001126882454327806595408678117568544793858805925013267018196294712749431783902864220270692048869450020713425256146745281011041940247458210048852811065588021369435450159891946682374738497698041194999844696683367688071727241037077486796275771592520861907977612749789694461633324278787019650970901609399252317180407995007179658960357388808891197145216626626958250828548855771655570794554385709266343046946782802425121345248050546531319287454106344646223454306264616034043520635998651844919275776218557748723985581447409246752624426323247902477190449520003974858730886924712650723071005654697213844528611633892456723243936038246819987071752799145597231263750548942917989051146260996854329337260574368665184873129103124711124992781820098888757836621328445247275106875001146137025763636063894596287382413298137290756665516627756414155662204700120316983169257897234664727502320764941651232164306371477708379636304500933404520889765258970487942641960055792119388669359763074375498822493280256854845454162057323043311271849464171761321798380622281079320021251835850958743716157521877213212484348152741258487557487094454602869300917649968700722404393631928283557287792533101235664635014819908040456141655808532693666073857232629389910610823278704152347082422044772669837395697620196298420983122798109298253754756475891008846412946061725534437811102705275552044411420083454681881917488586702680598241628109616670611207707191644427161643387082394243130340423115070507574724182516964875541520376080341748497204840190136284933725779985871420822424004179883194069360554570460306580673508187045230312931008107526291881505518578795186284687859957333325326364215973840797264787217217177658246689200374276523204125444140017983055555850574706328850408995065894908859722108583050340553039855371318927568585919739283377982658406613992631102328411301042046040594095640616601008491267539116939252110993573294892364150060412047744417766084626465601213178432523472656123823606444592510107414428968144546880834762047327961940679388426632170242415525093844656114294578013720831329472350257770173059582444787661120395024542938801206934066793870069911177325423817678707505081259928616431242196070979101422686367545015711095158505521878670069017068438776208390635091879671353135281034855539963574173241667943548099903115820759118928393995088582106252344526588430631981957971824598288273864253083984269694370982908078449864294041461246864337657703436842352767980489249086174200444728605973783420271027931470449178249102985036114769106453718847477499316848012030867081436029879593894464103342100633800900973099149935920588242164540465799556828482303772622761435387235647692022394664409691711079301856093099620838806525825076891570156004448457403336037195035095800909986705209979962088528701228269431804169317158202978533877105207650803917849901686640844736904690005958120716477885137550864784272676498586632583024851293706838836849060346433540881423330367063191129924345799669547769473111482383732268961497659137332556151167242826163632288984889906773908606215398302455779273349516987972573074058475932437260668945842529283968307386486379737643854009373992533260711054968684584697823387434992271552056369111814708096692774152878864545895570292649996314333256735094525279119805268254179075016142887809267586008676428100436225538666334366961726887976235559220352231690051617152176217349628395222798777875046437070462147249696378680676492386393647388250280339377651368630904629327922684235029058044490600786386000127540108231930859859357498689949400059351485023980402957352573114926089471816096963668348774257375731497522835190346448429273267989008711515943075199487239473960913254094899684969624176679957308828967353634338054637180178239931164999143408577658867051253062582357743869676096856928237152028417751445336312652985324625391065634080685707307921062780955017755608342076387544254418002785847086894067423468061918944139276949481623691289713372948268757060919567170554725187413730564202789361659169821266939863215214097076953928803524850243944661161478522071150263648080092030267410816513470487940533602982275783220598083617170161061625560903381078211903989052875152555768972288587555737951513200765856172760704998753433645270761142158689865369735899525326780052643569877986060552894107566139478154523623177222530378615303215483619673794241286949871351595027529780051604036057827181242405800857594361700316160548469049355363924251543329666112163395944665609722205415862813179542842877364660712042116406020147653399656069581517360467300867565567987109503427946048581204324684292492665999229333330935167952379987103429399745565818706965423336662312257361878381852316766801240638825760508815580381297746431153839922230761231293456050260801187723368105836250415162217730479422016342167366665529585813438631289356252603050207522520837456677385943854394150049366935103209505138811286264498393156396420643752335764362823984060595787946981319661216720761905659959074036339132582220823716727586966151896400816488493946285200553048460181418884566978035348003304766063195666009611850670342297889675160817603011907352555565390055673862007042010803337588681575360412136682176907640271464750666310284401587671202839408547875126551502764134800987240674124943523626935386495172003580772820033399296635158307054080966819186535399126118401241997055000075716050103441510624623061930093506237812756932404311745160303654588580879586522946064633615818854303672105799577866725340828551947875639585304809951526357830984508858546497649023952651493252068707277784502377445112479455295313265974447674825309568969504274823016877970754744047613570555290482585342425524622926561272736723077117294456894781793026367058705047225542426976708653467682597650071448456965022975473969734762686371838737177742227085697829223783343587242526995129971324373665216896008802547925704379624807749361388961687762682994967840732424356401289806115603007355013445272229169835454277412497012467570450105171335457251416735978924470715140096125023898554146400026259069209442178505710465982916527681968557456408966032099101472145899303583965599474991783510094749731164933476561494993413861492959543840469753424865794987782810050560425373381672485624293670870237652550091710016642094085770594546226583106312364115650336860652552034064542563711184812202387903395322197302344411557994293059784302043678735001089691151368116514319161064421302533893264461208640392442335281521777618823699457493692403325271598431736812651474802265210938010292684823700398481303517021351881913738600779694480830821688143475335283579764597685888931155737675878348129616299966487828382706183829099071130470700644840684892308616551735041427206842826157959951581247203374613836804056933842117520717417030647103320330577140497233631863096069922352144264303723113842849255290461325889646585993679751743840267656816107764478949846783993020624223669584276258714802212490529266166197289670756185678309201796291413719406471906815965475919948740094230570291095371417032713067983445057119867582637939016008821834206965483570024037659705395548008984041438939958023176055922039036690594522801105412064413595215318428895747949824007140705827444089794061882209135204285320342433178637252551327071414271301336678179714626828076195851089269525114205995452307200074630211909281031512618643818921516899169002988542309436922787115745577022698953874436326124592890119971644721604732116480417578202992524232183930864186427230449915415076561408318605138375427772893725933834786349908534001656287980786844469569660507122096095216523671790898165368789818756158469359802845533555458257740193062390764194118491477325708865879315277391910556000038041640758658445707955168019091632301696251131954471412364908217106685007331560799882436019047068296392305836137006783427564941254763654798545318277367487252025291739435602130653077954942789936632875603895556538586134362017083619506268415310104939629045978704173586365249783442448587473737048952863198802051588514114066625822663207499629690326074427218331152156736876456920033724961306138361591958992042776804727146996697672090173642819016159587512067620499744429886110658386760929051690415784509772559818430359915328818490470881727892399383407016874473430332519527830430215526391690154085541665480333242939884126181610466958516151881985084474889753138258239041637734870777397543214380054468864546574473257515493479144723466774244285479285379728575500687966731091085929221107728778543140020095893233828522448486543326825991588876801560940006047065655887036523738253047540365756840771932352161754270574196131335086307993745852972043613855641875960289436834999526548053757632531014506375105673637176690693828792898987299173548118846275249395238715500922202700422139734512345610022652449240504702692104337035854825011545717649840478046569840133308646301226395897943147084315323870857692040316488627525282824641980971901681887842789517204855182790672110612124802451030773358859251369040796209417576676918903940895111084411569595280638908454542741386844599138923050035783419152434725379076569291225068532603065547012314214795949824902679496194810504301083147161175717814162679920678108047814369288851749251162289369855251479006211544234448873194440395839038634810771820409291197378616206371241040203431332880198122091044982997462360705767150174225445945423801999265741843065898076713955774092906736851424129719495199787898695883560502820013478092412119583694415299076356307873039837799254798697581727713605386912142639529852101858226271489676946955993407540641794289193196752384152217400112888196931715207854446321215827816692107698508250327897827333789064172344371607927973181299982874257287054579413223471593992866162270509791912284333548962123089549552358998563519060174025229997959139203471493110910489435224826262570031882290743576962923315746369341198787464087778249231003831692130965364788923345124271156122269863236270714231469367471633721723289992088236097951404306396965084053965401301206593874728571948132885132912023773317350305457474333472889134202714338874972772519279152668026400582500981376543073529106426515005228501999554491361700845425744674931133947538805514696508960855945016293174717805033546441332329680953435194539391041938975960325499438679063577397093115464825694613593445644667745702672579802927838156085180093775761880767583658790105443381517249207284318896992236933087446928716045076478189843921820052836639663305665844284567508643019906686463381254205214485483335144432788335127200571863166329061641314819356735066857883304679973026856721383801502738288346153998568442602512111143640794346564870295145216324131005679038483937206533193083876011696456177872243106790415374052030813182415573620540249909389487442090954920800442483382413255019502656859005569190087619533005453015613866107313857019373812870642082145355787010035906519635295450682413899064594540106646758879756905808946919159143411652701482521879937302733587013419426262472948875918155308263916937675174309866180438005703913145998187120033953416969175632227901161559230091294670829088922205219488622713779861690666370304696041275516359606911218225665319741451561780336499242288958810495206029190196234085258381652819259893966567920065144086251377397350745861704193049006931200913509826742107076931061084702305549194850523886960550526194707829319389283811668917311961541536973450432863056900678102431340545737385657564721296331605976149458428993460157575078886895196541739468133229974712529362481091500912653308017293407334290563503524119278013286378441601732069637530238689359438109439339552860783063062964693719930481786705729422157699288344833759494240532126849286551194279518063237001815660698484128553584070753314224633177542955127529435854858721800229067662276136351293708379151074038651006149900027214384539747617697687622701729819933991240842561922373924797488666042623440784769375736826818562055540109002717270572472379044175945627408430604762265209717955471962143114226364114688926020490518524491449420551617551785652290982373178000494056394492525632819191171148958427611899174749421467616168058550467827298285857108857517496057380655862005251671104544363630986095873668307741625537985642166490399024510060996406208858205468945981860646167928431743668934590574386372654035175518260054459019746315489145578753658439957528454676851384399663419244976488725703715593830093714712286838567993281464373099250386877065517263172359739781916975539369784719517682293635435300316167076876944400916642596194542674737053206298793985952196954583608963109254556183356268732002128631540179466158141249078732475808469022179634046763033774638892534062717520087449337830194393070191596724921647068818381312028859472620406624587124656497401246939315536774760929770522118585989708055501478638514080962334181305607989454953650072048461999982083783142005252421258803731752398176898862542845193345747014724315521773790929143094666136126066964025751333590226495903808395233102837245872862105139456804011753922510348042921821794190037838166510639120815641195884959520582360915194304463669635163786462007001986486603792414379208223167595436286703923332158030606354346756412968134901895526629333126681292424312990118440522166140735109590545845127905186171052427558001756011534204278213028821730189883207795157816273361771902645435377733538321799525119389020203192118215301288364799883706698015118079714956939444361875955150447664172879721371557779030929580933011600859655627894988803031155297451962795366694576884329766998569144066162359611095394305951600475600029045949093396830941567385682740829758737517429937412425395481935308667778481569426504700543836457156483847504826476410282776099029329187263113565190178350055407761926896559933266465204030569357204212957558044991398458205632025246747499924092267995780492416450371462287413233293057281579331807187677418622631963032018353818570503123792803262923930167992399913451897508238809053332301494315647498633553323135592091484877305945240441563026801724366231386382518195625176261086423668717476185427829962061265251373439977685126035624372362770522781073641563011700443152332689527126602538628153363273155059226533535036228445589756209816061804923924499268471576648756899430786989819105551291534037952119254095296177297540419767351089169097208526328254955495771848402544997905377706697700624869069904931075234720759716890678816514897214605799094062792014285320669988410521976252673440020921249050772704703829402006724591568506770478107392691585390878103241150684468611593689099407098882173165393035181171102253567894536635732736922455233896712022861200074294338261770647261290330777710993955434320435311910312434290020083748306601151601114710379431102423734518935832791474456100485927239132242412897179312306099593188546077813339499676892625207020336115646487235102787234835969757747757231253364825920312124682107928630954777570553793810374197507442004142777536226345899388226064536089008912209856983410687300159225004812728393215011274071895990183782853175174212425535410376046160396075443590978933676543553522041613761714732249869004270789891635379155849146186729576886538485691967747030439346698801719732449803808009818950819282159785334091478526457501524232345948667897259685649393895271680975726398247138489699795271142594644074861607686597673006029605280904276578502191008612707369148245346738299988814059642283271082074191424485039156630178948297205480008258939107143216982802112995223934210046219129415071360229515486325027866075086563730826249564038221524335402724499340551319652864325453622744074832655056052614873011403263106591875566752015364451390844422313111911936023524195487524591405418724719155380975562203461330624829622749324460451226604558740170700078152067257641346374531220051665221012378019517014393197202536659736777624241815278715596669082484258774172450672377203741947777675167535135810388703313659861547866522691770763592816609820552660593515049655646315332007320977738360095130158955793383031014635679416241254260525479234565428507972372555146399341302169279458886220422196275757334625960954948223313642162996879373874074229517017386090913963439182099276306433861780792388285987153248492460685518613972018945887699605626213481021623330112405464402461949319808154241133220950367505691127766332618447488910229001293017351108172819587708939483716412275459869020280821534590126795095575943974252999839734115807876901339738079832560160736167606352013972915413824714563534615014506565064355243581932971907322158875905970507209239657416473192137346718980079308525196798745997926334353059302714211202328549376949090911640806008871422828191606736403664216892876509956830280697173935913602665550719116651144329079740606621755071176962574879315902592699978234686326164355727306392775279466562540511009772560002958519241726295020932631677408153895218767161184760193579067622561698128964596366345557824029904584304556324331961384377209588038388859836567553496600688739361284210502760834282026358087926946283912332247865012717626651112813872122950074176567505921265178807306629647838928550087109176999856615120656466124422839037967746514392822843372071470404911730529439108311523887203273684850315041363560329884245912765650077502713624554808513614462899283610411136111486963552305128335221819928756292381277889387758236224957336199203201715007308422486231866319691411958984335797031626259297702348580650781578101713541657401777395142529766982940839370154299539215050451215117281876961292642588928988416099217371536639442609233002572042525007209910684973177271056048406185958935155756154477804560809463960454562877818380220965369786846586220605927233666831213196346886624878036750102432576388597416759629300572289962995712975178220386382349717735541475093072789217125138486927868441952946746889701446668497761664566320241829188108601561600147833669558531577123847467345011769072974623862567062785588447145593220205022476863657805617769485585211687789354891914291501479193467317944291828107947184997639055176120022862973271568248025678133445836149309552282632568408933988398074490160719051988058119224237794021145962347870797239115688083564960362548402598842583651128864655601170419584855911720360609931064646625298435338305628056950247952781866399401188234936743161257165411123361427006951627381785981058718017700728158841793401852365354879138422366727170801486650165412730901458310965890475340222408311634434577937016377300661359352269517895935913172424965485726457339185406972264343026064804073316479034068461509090475903291945809867019493359913374647066022028798642254844124191091049449928212110691359299365959800182634702165680801000275588908311962940100008796368547036565971229071766110410218837934406093325737711676022826457435698546734941236854724680374836198124511964576667952905465849981832354174765821011731554182503282580715238172347218482725095758949582576568558067721097383682245005581294266931301373178854708301752775933960471144496816836411437351050169387161654541303095211142696179391148762239386050541341821212021488129571082665918337828218826475977602506900057936925593645140685038437844822690755975160669413880730513231048328891496481441152534649373942782006806681748363051208269016409087101360496547073598499519163604211425091028878747146706283789549392644416180759239032707388055891830707259798861801012447546788299951296868422474851770352452816135619635619686112558833862757813192211035002124474973894498697429835729466528378146124145023039372127934756089602707872119286077639267581742453048793808238443502017136109977204069105758558515225393557461952135231931473586690711081660907588688557685027808445516138602231748597695779027298093533807231601269569239424946882222709639693384276821747961436708804161614859577186354193735212749917684426643986120927157719747070483131988267362905235872340062016478717819090904473978463417132977516821307747914375679137027021019248764538451348884175006255299094574380268706107079620207647636813297598883892763982830259445230374736385625973413908321481591588312688043128176460990760026291767060727483049359678177441733846935852451938602175047325646704001957231536062906616719118510759604893829090693505543968810619050512110468401883387217242675026971445615949601539924730075836158109374332717890283990430201448037566476063351242522266011023141530141544192580786007885969307652881944379688572580269456180922597753671275240214472703831990334481601940188968882707674534153762320275174364066807689270109467258061459169753826835063429997573735207163896859814269307115855728479917736961704171058560849814068332280879101981597284848250697605723579752745108076622665859949275460042223939202631466237080596263062760282315612666505245104276576149567753203496424591180656450903149302417147204220415559466584228164143079852386154492175848813477234431364495756921101696502207454734401711069142669569794506346997045983123500331057233272344033209376647410422759498584216850871386758643258323564052888946967822154618521060235616245825719790703766304942789260710400264263722712115878605184541309859563285385918836874077424466689445217246283752147076243594425445090903019985388634234439079935945717944860465065359987029912031364807760259419309294211102217953665905290383609412882050263722204468332489770859291828319719707200818553309024872395968655305466183782095677556856046081174292681697396023649174568266324064823073226609648615097992432421671938300241170100743175371930539266796965802279331224172494857476365502130837814034058651143725607627356636032025772839617193512226629986140961701054363062817046461393615686266300854338314577738311493212483586811066721055052956037460865593164025787922040430499219361571186372187252900773072512378772732246613824239407018134836006033838160545235671080651454840725019829864217114921318222009949155526769747198422532025138980238120607119758463122749785371097219585568310720502667587044803589271321430905862804213470233107654623575518508130988627811406553745397357977428148943261487935437714225818619040664487600835273056020001444517348217536524199900804175821806344137417307023836926087337018722336844535552675796836569744769986762660102520962228914347758220821502187641172681584710415944266538118421026223516637645612879105161457323606874033971526261244202443544571013663032158289050602113700015935617723501196660839184639449622962295585969899035177234656338114318892607180919272676808729067643488322184636496960267312039792235543779372018796663653879595721004054082224670507852886403781646570193882809849861610240430971062582335522907069259598699994735133850466571633456022567495956409528011594213095991856460062233207569462655552327457423764473076846254054554073592940885434467808339875556130102652761005179131905966027231460995211197974225386969764446739214239607230344467975120016452946200765328947013653798706158254214821686125786597341399189424994921947113169017825495042369570877970968083646183398938117874675746667570761285827844438937925238635438976143899302724918586962366694985775583338296266571911605535650594926454007732165814853357996361442413417004386527728918617917127284510063316984258720352605706512976915034510664416887952851069052827598537233248925664079967816592905711034069821401814693544303793701297937546952683147913989287935252391773166601342865480263549129053124591279378473928081351731186323993234874801323464465714342567993192880741860323180289323699647534814678406202695054487848808452849765782437382190227061523602629733968130406171191347175423521635421733959078027731949216280940486739570407002067668140832608924220634817001097590180635904018756459714152671316140969444012095024967428360439143591333528673129497741784802056737715634319223905713288089734737727082479454241971153693724447765016207421380617467851895734299920275903884013317523516950333429842783961669671396665903726666442463185116011937045672173724979106334076207112157428538078636458834667376859393576081190586771265360118940306892598663446414745656217954937940756399169870444665886553685142352361780215722674579193015600365502519418461458657259777939094664514744347629263214153084210553347306313817133860925315668218930112093089660226270620010555473917563581675729820027418089373407015476585923340308838592615472850993504403737507692223063315606462461553766350751708805024544219002096885800687424614181823857029025940171901588299685974332765471639278951656714908616779022695781166031299860593441693283050082080153408140847379035702984402172666067302596339512328847737152559018276700619754925288883412990344811140134885355843296778424316851954534097417437632623050031490453838324079452214242103277695425664236339750996501431462803648978467214134834678068599605991992204261513768985187739130003201852684835719219287377227878872666440437285632750048031721104775608906185143563461052545390837227746456427088143011477378147284182302759490952158096315009265748218767301783785547131582642906308650147956877838420632112904925211422261319427677523997462748126657911356945239023434022989106907655627216434368843841281741722017040837677459140145431510108121250344291735690432823962181910025128587494589166290641176907377927449600911251857317763039084783743959531269752392026648667295169329114159430234731171018048195892574578871208320008855555855934409293380826127026118432562492758556563118983455066334556875860192475059715131194981565480463104751746224307191249560399838004879235295123051639215576955525861808488457964798867523678102558292185289318583596840496549994072377239754195308506630758062765231016226088036754263476022588978330034383630978254112260031210364349721462736708045312360315693958264142306608109470460512862539446443461127335515140152156328980350370811166126326665943161651766376094225395987618062779110693530797108830472769495906287829267756637293399148839467391790246514976908756859874980687285853595079503384083235470647203732466689197475964988534781626457769492464230742829050009615642387000066992088122827543621968428181375337242177351903542646772274491266883679576270129808244795827356144897329038906316014092459242954709315896910544594594723010759707892284324629404889695477367965175348631137076288229555291947783848390645274736809869500680038110026311766575467938777247056184756598252893280966533771159171931199780283198871191637828540330712714414417642852557063089820666009305336707264106085684421996349201404421980472897542372391050826394861599102487483373855255045985944836237272213807382207121616454234668702024138314010444094871404149232204372107121102501558134783794311046033954639292166742660174906857628580683729282162752539309131996388445603506726006749684099410580768001972671492210370284860599078394226542571490171887943819342839089169393333765975588061397238062328946776127546689876754393024708708938156095990436643322669615435903303449565110178337706315454592466329181039847566266815755597039537664308009654012966690456513507020865362232399253022641444897185827964308169659575679483594898344496890715302239046463992959471439063473554789807182412710809886974662625108026159537882842431007572484205039834707664876816466005233115347551572973053846688525385347624538165407510639513216386103050885647880208575232122727262200859253794214225505283249625149127630310262316065062017641567098340063375156629349114795353747436836882049872885978184401560505118670388925739909048219559043614706584751981658085858758069791543591351190098837703007112001888120206585182565278236173680610295261412298221206592375642594773669877653880649405873862754576793020777008883244444063638526474623178581136444528544933008990900987378777141956867974581114335458020363950755313377574349081132352082376476501742518399344896064538769987806461582609962841357104610063355468361410995205519893207024432427840293943660376551844373764042507577729894997912697270162471812461716924640299389497380336083644551995897051385578852510725875396867073396024020702598890304520454074104916224609361990552055130218698317912053011106655042445404799171407183950764060180597168488426562127984616022946475912619640083383714350277972433595988909732716649729770470539539387636300624229532110436045320043344634843103498546394640168229938188542703674087285734688302465118277914612796839891026425642153229257094253462476669263526484871923775045215830631981539036317970686984600307953161135346779510132397977634412120129141339723724921654377471980099079425415734544786872154042564796334380466390226789903233097101738799969951364309838570986935778098688950406812656834686175966025129883410331164856638970176189708180363256004851043959301740671558353143502675614705172615480918036366855841431946067663474557011104518653639216189589562690121234077112159318691018895506970141730902089368467573608405670777305259549895433974026287771329949298419431694732223686867205992011340652574193745124613830284964542528798368962992152388491723437090764877107547710022706066327973508511616856276030592615813990105276957426917644080610207561232009579734393485390231872232534365398103267028792983581296702982075394302428814952030737881899626389658808111527824086744642254324152419494264750309045011292770569590770046240905953406167494259612374194911786280845392214429944870729306313733274216461638426999397514615892128564355688408989471125043994423013604081706088495011308798940566852821877654632133577683664217650029281227396460019343748007074152407756547101040125817246254541464799964254217175092644199159876975110009655277441483729687149319298563126082173338824232381628506861877875709034140186527992173459593489973440815739550685400556267023236798329767065750338844801499636308176911963252234409594164166923959502798714242188511953395008410750601391509482900786592150750033426461976695959397374787948634055964098203111359363104769422322244737346952928465546519675382938616991221545803857414583643174451925899339951222181120073869272878579363222706180830709988720992100185938695604537172091983902429479430064290180998658984999975977469715488165478286851223304897036321230365878653084387510550299817581738276312882445509433935371605350346333296429408955320494436624994317669223355233544709886253527398692507235302280798470679346584914420131194413474236517378690725878987043407417704900497968795415378593816302170083879012663319475397305826563118337758432745906250258156566152047323907633973016922361758117046222340581567557971262248811617395853329404079550851679637249785552629777644923054458778396561903016086187346716323042554352172924823428862948960904212089146875714738298372368003828214825363718779028113232174290859101680301837968333484283238165040030425757329726898707018093602257252212570953253606597475225920870797592411773021633849938095923933174123265525400274170801751913086075548804158904813110849786091349541071278588946105451847379374821881237059536590015246006831959172397422245039252830923657494952859734345829928979483229684469654142111120449380113726553181768086713028982551557899156777828693817098651431437530951659213486248988980504069374223186570007030852063540873399520245414967646865193833112270209545363576268396332352712336078719628094909762008134404038536667749436797224519060452670363680685630226441339398736256456832537283032726264807619497024823868202042285140030880975560152851355234285998565686782272052299427635158835003156658282747655284713094676621028131423822593558886115156241544323692871438963913126954741150697736164266084810182615829650124222631419150203078014175410837990335941276459849409397013420620973519964242853524636794829929634164427637241245334047082342098877619669949096135153065923698864118399973126858790248147471857081039585460372879889390852176900858023479799055545842821038881571522946602655069240973357560254103464034485513274961792660621269700544251327243043261630985754083126935551311334489112302506215112115987083164145983791430108560976037617774014104820307037301831392138755095397326084589290784863635347613404477937551004367067502773682464585495363761858106598109907136431300720466259636368418908491524542360150154571772837697711951886791725328846228410593980568012732288563402615704249418406771506483493032741930750947154900184380416345158646380281782327834451852655412709572551621615175665652125327325694721789363388897548083657847364702357157599959996909130963756764997251171613797124915052983951726675609187814214438773114467987823627373743957915609364604278573539144220697313278939819140104932488585130085908821496907511912810088104131624342586176735925311359476089305240063381718901849379797427117860560982652202464220278372963963820891408336154668559906792447333000547864913521444215803895956799697377230568255295108312753740227539796839062747282362090056699152358228786541280364361880510859295927524560237178180346021009699566688118534081790470687459971681059532997711167320606649636794426231078001657694613654383810230885387549522028506081563945796199228131684245896794565913940983209926817322462853812409578733811053540042665965527165106803290038478603047720121422270474813384638972127696907077796836140823104816137635183509774062320550224426724998137984746631980968289868354004230713886422605092049883011330224099418344837901304257815956887105936088624699658159339760257528329124181500736085897421747826696387195946189475290798201179269415359344198046618525668374372537764715559412391982817959579334882578262297425620440496906489733636003472833842605774993218198517337026931358091338736837401162246373696093934814067920322855628520655474108900005553391210257779125245711406124033333886264444504578242964548105351795096591744788375071527663678087916594772433957949789919440853445868717814991836737384505719374173293960024908565789457366454496471241321734187551513773493541084982719968161573633237498968996994555511381286300945295133300509265687985162276284075945566791063076490892027824957152642643853524620507718331440762626044454455442497847876196892621899200296630738984876084072587404628458897509380129132365104118600332826127829917095193582287291678801984715042240700346629106360205056228718408288767919845723826903532898615781236686302790637698080688505768686425491930181936035806031616267046185672069256713069323451952531675361504937538479185284433080789858876614186520991551270417110300996987223446092864854685068163919453727207733985189902517401976566724389219936971807192528218772134144571608070444528064711651670874094279631012898024598512557417668332335554425802952690877811345626074714038976988118704528996961250994174572473169726643675837643205585032132370930387736965059760678838665952409579176544042683403994684619532749349177256398117322593169335874072747037108107839552293588496111693463645558501659504038750379345582892248756404375870782295104097427202000635955755496711262800928705645513712667764632995488027318692180051335933008046751445797870321682619336655216016036862106664068691615483880464002395398770887254443028088063699857267080103685116331783568915578793728569033516348860150499992531880368794757372515575080168257415158807647393468112622267278005917859072898303639306011104726301506744990856104028941708994410767814870838778024732325770989999263437174178629787047642604256032246930394075478335513342012931859122841409400186750752540684859224955968694360854440330607219669572083281945661275457348764601410548018195747094216183341464554976428550928681594430531976796574120169977588557038352545473911116041841055655244264526724807921359418610043986231918919633216751137120897026857391083115358791276706098408348041201240882414129865518232399616092615545155261466117163690867368238237289467485696729503834129692283231933416764036400969499130653498367276717023721303634979231902545066279398934215092087993663784275099515026697062724923969364334861389773591218288088026886469797956512567990171248898904629112918758351989237193760968843296260906827488456912424032237983948265625623549883358182145730961408877157217177185825390759812999976427323542451356849661991418585410065237633665393592125152060245582878893682589652458974089261522426466364624967347682812133725755087647020288396599832091388196539387665700297965247248892993777398167855604917453414007974909048874011339652418192885147532843690919571743104629352916937592901261137918744944789444459934209810816523726984613383896976988352087892071065840335424910239686230535046001139839791768073912970914983321152971418453547950391750585470991346744764243952945069245307673181760232520863182965036128982066363985993968649724812322713945544778345886283258913005803123124776320461066428562830365529809806702676730650164609494509862054626532562547501565187233128882395849679193206456429028491951944694800252003132925672925054323255336981058366817511449411355820710072194801321352538722739133120495737916236959542599869001043251491710011558475231084410042273612847219198540363278569500442181876834481038479963623646813192356810288466467398453527023686721023003847360734084657773830479696145991862646674355399351546520470686137573379604111358236830664385977985025619618302814984494046712448073174705564675987763849490513735793385593641783341047266869661632246518382607858481336982976458975787458307283868973289600478218163274235938743007778281265116140230203373443579606032871763808831876080393776675054063671404976191773034813578055541957809569331894514176715591613085975488166114296795825973473871466985530583737141412472915656923520088490171807580682822063717659572138039453539164804868154727296180513790239392431477888853740742590321018786114985527157354784925942203518090499513984681163221603300683359673706666154311088558709793935857377483688237587907123191602147142001455152502064250971339342841117442410542373147232853783548576922434834132787598179648706197328781005545190354576666446119950766769771167246554595213825026800098728467212276371836349304648265832115999366927999614762758516387163553277669266331895207863262383479024761930647603509646214460386542312647630415917717907877965592615300483503936643922932369665894410391749388284480666008197867574491673360205037165285570758532072573605078798014953771816094608054199670704786597963305603859619531697962963792487751648965690870856738061364583760185449635547791982237177982382525750513818820987942708441218783729329241276223376258961482745807886729061515682842054582596244401484112191533637032082289434245137400297375792417118588790543425020711990633111997163269316493230704834024907012358408154408075338228595366054770568496271790980212815345756347037920501143640680881207825467089684309412422239422217715951868855410630976336714531409543791092659837386696515916644291108418024830631596982371284749220599780746657185178635461626609920585854186573262116729461366384085434255748496510714990123637765011762406066211966520811061645351095155369443430748815696263908514315688715992485102125979281507190688416948892627946946146102893053880465204382129159548951843157657316682989800825108617469865492818510998762692185617005759051603390644087298739313052198993719618466937753032243497521974856530642351162700008454297007244561083742225013628180577456576567829014478524545728678365526625758670072641002867250759292830032095331147738598114406736418419716854951181583725358163255469398552101619611044319831211145053676624749687827611048177963459878471496706555541433886792946652132308900572546871131388983331570331877481364824244201668389896747474774151603641454642540706489286673849406148837677865875461817155249639541158583058773750731810673299283916875406957783101801874474468503175166326840406814597899396013065769654934796164651682124896887576183647687330999945303076625294777693109494448168671301268399353065437364261037995602616823318307653902148350793606632324755439629662249996365626719443874618542759194534543219076532381705596680752496805526830701299028734102643847894922474913661709017728128428033032324231271038299752971808992089621407805199329978010251362002721879224031629612004290786901403897504488784717970430934470659153566687520573752109693181084767172815736862876999065643891972642256882398587844903256592765139679934965191545549497117795655093144654572402798703262879324176545605239610534101753411555233390476448557209584777743950465241254179019333321960416552923504542467110150093038025486727000833461807032774792579854766028210155270138266287227403293672349456395493707382363820149340562653491211564623917767853811547878248019720528172596409152217797299004329220548880002493085328487644774655741529417800414621905211128155530090041012882825028181752903577210185029433590857231659693284156054584620265094693264409652205687534812196077955120073293697825418847863384439048623349755943193735150136166257339016965934519543738417612733940411101335625610950044699071248442237410108111729327473659518250672525797835349321608873181051008718374395223969998393086748199343642355551152546716286691402659125910317148820156853572369962324112692381289295484369640852525998555245323449083701094667733421280879049763916962702958050251989949903801324423762798331502406420671852011385348492898961047344837559636494436836375366814933098600053171564017140541069588935886878579742413101418758619064232031295589283499371141020393181838066849569412172694359054384187969075873253085005505444480254984392695474947944254874952142788558374528547996216917316960160902283451570033962601013168859553289605332807717065612831218349053602409619971652245967325585951653185867417519206702165091711314099701355293068294811188212051551855128791684536977860410149751616220712123356953785043726395038325392629116855365740634687185891184591076460777733243553618770894857492040619188499160829495750159079671445834310286890657030150634657062766561384577424501415488209308175353578972401902236480358226846911408974848606983214801992562729691775413241427095221397978057419070145791215519446290737850991470729487899476781401251834375741724272568701221584210211724500557384732625385839831599817542570185713338744410061925154240214781897709129011546633118499094418604351512405465872450838312848823166495650941925120061336112859843049192306329998963001771249239429782280341112976236952083723955758336340841802581568155983963662432667143094425791915598639950729099842783719813316716818123466679444737325879072644392063673606007172405873871425780908727792197009758156916465727371071056963749239789598442146828953675163838329660681041294288075083697645400462072107538386754932082608855291193920210604227626923893623358768686986743035412399005417140354314116690418546776448007499985860691993072574517913410834911491746418098462208626826608006969492446199287009915628373282725581333354027924447369577348711416030912807861518290907853842855020036141599491122584033117913968362775653541976483529232572476914162903035186282275592867175456884829569877498554752008768963976995340025917475704156578052884490753204025422132941791359633886824105963344148013321348378144109257075440259410809084304316151490718022916780206535178486547620056073267953660537173259766025684357730060517652232258080916167763689289797341335419076471004141429894239322166007318009917350428894344515588171468157808448615698023246078399733205151160165127435177652586239949557796293186469371411351385622014746889024212071779068543370348737386262791907025181687635629868643814243309225472360107137950327715437095355542328430857519716579611433194286072866691461230505003621798217573924245804868374193918497093384137067358628230391369882416503831662847026323717340744699998789415667602425877414038612350577413342098616549254168378642081894546877173651517006012910714552778780677659780499429913490245705779393699627334573240152272047690886067197527202567989818618074581747503215261998800877281047050802015423656284530680939201086453488406180611897249577614397674897744876889336427735381286726412077137560742487470388027540929108182211085167453626994569943566787321281329901592389294415828185711814275763655349148375405295979236734591967951056578910829710054996908461568999788113963765252834856808527027612150835464511227175539347158981203231906489907239184462065125930592378432371349656736779256418534926769005977320009766365659144236220794875979332809184234108838768398590682172828056614785619990953854874270413364786453705002306330769394901526470735043596836497850691914677804222521059717040175762132238296861655279262626492756742845649688334237486171970780932908299539165168350540609160666795093754611736458827071206911172347669267330528758312312918243339410440701724517692865039113049614013872874398948772514927306287525157337562016080707829326641978115581035091445229239825569075213920294243618735336451730182032230441709898352247359354283684518960954806170845846868997671835665908236130049932211116863163324776109076454791076529003856337393704467508215424643859311545330284430820219585402537785823052598104738247149283723244739772665025421104798346986171526547170664496243889516755804815443192397791160399582476992931711144099076038299870786994555319971921301467834757377629962167019713926459462418452462852707989748123506346499587374235325487672078050003431142687088369891456664998340997307598954311921011408193308657515703713242108354865203514668240599081373719862058270595300320137255153649990560985851344431258833080730366204332526002462686138535497145842153817825883903520309298001073243001085818902268003195033648498643391902872300561855941309996157263670702664362197938434258300184084524493942111493005895205181054772560911647630096750239415072308496479236863144493261577796166491295735853461397297167888826720083871997289390265325653197982380196392402254194950604847299848575063386026244953066539754235715682744162686437497314948339983870732848127455874548193891214840882964233389807020754504589788249106564037313645000897558155169622672272775269286247490246632293231252497065171606028238026788666742778027657070791157163937555607218302052479533312802929724782723380302345740524963559516332781503898008353145587919486893035689062528582283748583253092927599861824769772863408146422015682811292238891042762681966739224624614781796124345338537849847850381980639300420115073222336597141465256277932464409545178367556950707807095077699477017001223299516412025809539270344320207454162204597309577717512547918468820448945222662268975927241340403363183596944871051337216572033861922159177690732740347681155939900875606119178382765404144275560628998062123900955138755910943049482719529525722066892122755214135423970102128524687460552272221217179225901555148418313376216271214280551643142018167702176541969322000516866334607546146348494008070054075860569281120471994941977785987090120119156336719294200422820638681824360597552759113828233087555806354648913151110409998767013990466143676898492859773759176749259888326368202093156518681245236291099176831222732476702221137336869746120358987972189024191706395601130708222400988712163752447775973549340026669534991959993590760146847529697074453117868155694996892102824942291612553854261250655771255725751128069810011234337499611133000801979760489709636971089433614559180288728249407549008995757855268013040561409532878199164348950876831122922065535390875210703191425919288676532200273270121191190478947508498091316680766554415245464081584257078091086472433636914470369078025987737673551730018294048055998066237064064977727744404399485013939148464798492601256642200218706987136550039944490488933787876293693047370831138794710991261714208179678381197878780952599986794993392565359390079732395271736489945702971538958701509344713764028549277307167957466727311259908295483972930369410563895375710016568187154661433145825925056688820115889011574914216418839079147428967710320736371377295968093781154914799750179992952974601884057941435013592640107928562985446057534775373887174021057513368954762632249215283042620037780388393219738665421483852646995949238619317084685155554400170836285356745706399315591724445396373204078405936350694204773357429425166181196333180383055263748636692809380742970468678852845579238736184818571548598740467048056869085439419835857380154931030816321623326318328399626221557548396844822187949887000406142095583592247523257799826147389737294583668771102930948865674340416919239532941794988256985272030706478653960802262470060854363587345308467283576283228506169677922340060801078227612292735109307972352333543259480231974604738517275498178670435877131500311397172032038390829140233853876437144290690113825849102884401640322249421665923070109803010502416174211654394555688905774757312483940087571989908083915605052640892844216122268308434189639700136589307719998738678890732469339254439807856369507672517179511135745308624681448894895119752396505313558052892912616537287189649307623711362296465099140817262162569444430930641158466458671655402030142146736576628803662058478087418159574206831215859414666361413094366804020065913196948786989944743252990159078313608617774643873796222678963876958541030068785774946378352911770782832473626243695471537901393551822868380210960500217258562717887298710817507211050655787601444588867598152954020303445727245841570428024072044114979569597263121689942667704757129545814865514921755688160053426080643860268206477692099063068541683712142219912791503738578958717116412397769969241526670701320106622248652811353627931187228385711132003462587490472141048121440654156099461646059454738260671796154086490390397060030791049174504455742329167507943718133506364241572054437622117595084255587001940582412237814077110853804156227574146364716634224439525256330993577655572884812240336280809075554243212355075241677356345701390304345313813539694295207148835374078426664040655735317614222005820242678847770800466234988887938792899262818219963185648662117982193528901774117268735866520564865330578540583396925024169068519580343405081880658818108506001056184579507046997269999745175325582192825628141446555885040536321039486803347236069835417976674550938716378529303853041956421362657532395948211657417753869968112943234139685238972157147579281802673727006208211472814411520617921914084622552370827829184466726748318647341895651976080851904037181799271123017448643753862988995211467092943630849864115718317887701616384805761662601901442968493832466330851621687404488371983157026493741056529631749132668662520471509284232000663975080757306645895744966699641218212285371283863475247795420013948106822988267486555792829484482121786074322286097762027952958511510438147991548994032715743917665679133645492781955861883229612038481039717212472757388088123204838804046469147836408795929349754174625999672578487660033373055024272193452652586638933938867562479741739477158607594164632686106564078458929378150329089214581593752750842058419300402843827222481647077781213387701478195263059932517880282536666756498185189960251367029709498119261632957858215542198475926835956847138166178929341120417269090607716084744142266735428259778566422625824247594625865114079374942096639784696674411462686311721152530641523508166408070207046997964500029862705023182369269625606228800796732667491367861201190266811427798267622740698651149216258189905603865668396915379205671501733233823227476327797568057403384278594890776407167454888284351089666825926889474058597754164126372009046125380777584253150194568737037330963614313843225518632979757495749166943829804611583396646286378908590528390544559165782018527887178744557629158183707685811596157207641487269244861446315182379081537131575502112629403547171359991517398133979968950021018179714222776631295990293716235332800630951710570815244823182700116612434550509300005461559734677941088841393292699388468381007332497403023391470774103190154214450901085270612160361334785695835073981173114083222355497703658112675606198827211420224679908141940284795195349286963309534326992589662780654625406040451528266723003131003554921363134082641894970772406872399311087996214054780261530345328553645997305905725830399626774059248486716441442702607706370517887540162962229700394180192520313622201171316979961206259702281514888623420498297797661940264535929794346615576076937330363215584115939766188551896045864210499887697112931560998884253104640903226369266490357419099861817919505159472883035049273971031234509656695734059296103535046073294940441371598444995876596702457536948776325769139299446526176060905025549510095149685607504318632898174457063763052096361548724952197813559761721881878801981275571952845652021188682545992075089475468604137158277073686198999618662983416865367368034325239517277921493569785359764165359862855838208711419584414420924293738278384903134971885747039401924206735253658331558051127557387659979857650619516375514045089384801368453667749916741534843767100216964293889303989951869366110384815412336019973706185269332021533504273417486966618681688043362571244639987390215591714988622639783617088250422102034052785172573100100377663545509033607541147326718327063137563857909700440776670148776057037803826235934870723268213933775805992553997526702890662139362712825436239231813923793549680647245946908796346606906542113066701905474150926425497495454440662692508490098639408677652182238604387983350600907888468610469951166594063708181871801053505841582158930848249917167586788128790355860514828238201861444840738355438180258042146155015827404652845375164345965851127567205285614239828630547294744300462577197511799702991242110980999499968095102518016858744548744272851571783077730467491270817429500211725996022694518789373969003211030455423678928558635428144231628296496487683442479346791461681578030336508234171503068814858948350679936216935455842743638944664434892608750036774592180564366702996688473210777883216751965472544374697848556683359129671580609941366928878767245814678318384648515532578887510437122645323981096905438574391166029051373999025345564853349966512367174825206158310364977009586067102152182451324347230104918275067651790495016316818693075325255954106057808490921159061705187112401546443703427967818892019621599487235687587482643808237707802042609051980344001727640409974221191831072750270244542537267225024640181088909764614933223237082347911358218756809285372725120868092024076609499118228667790687263273725179455798150949094837542027198819580481058076811319051208186655484514547990188368765762207639856562081556752749272006902823779314166420594255825048070059525432025580189552919509218366900677874200642334902985554327241208764161292113571668152745486876040961576463276288474036228426826405053776456631895145490087996400512370862495890393981463885997479616675419883785495958463489016119760408838184641282317406805611691164468744697714185074630650857076958359198614815087793945945959908474714512305334888054849628446278390470938760811982433241897860898057037789059491094831721689103110831234359038760554091774355076335339450224469285389630929267505357820831683158639073686325151625215984779518058130207052149206817855650702887071577783867064361399767795051423652640508725413587121675396994195913235732444777322531082167521406978398761358856821582690570165968781346316728139131448914935591218314639774639985260988538659754335859429561827983736424001372871992157233499981529219847652549942350017074102245947532975714324792695384114662416230373395051386521588850420841857822133522723116800449765909800285880272675496952760819146436576573381593725843851971637517006435825732505222496018953629952884930431727700891019084881014680925132921509643170380948574320102451527258254159290675784317173508994042761474309965414944011492538470313081522210663640505037808192793265651291514646935689413301495564456681672491978887164152385686114321959474465594577190057727426630259542900115131760107612554619796029772484668733093981613706383685665776664839338907236684883869739900662709724033911231276582138013153209816870674640647695150964528901790146552757704650665260713720510064363049912223668367097393930348254399353619111762201262623851810959735857464573472060360351075293894639030393802830417927580821690184969903198031738774116848667477438271972506164799624552844345044244742915808877481249122983724499995205807036282094049886238128430739083871095773179600701571531247339162309858614958487916455433802149775628868303763536752467911417269731517741299006872162050910884636491246278494727760847744507150665210639300621411496265377506801793879307561636649220721103669887732792778925302401284567648158122075549858961604753831201679136354160281624417912739819708514525731074301496960602851135070945272455193264773326167506733618903803973352486756759781063663056456618193412771914818256117751746480923235364085066992351140509252575160429844632128338195691164945045841070123045997211757310639056620092581080193790222881663485740246224202152965962912177349812452663806847143891350365336069165080498466832292671183202838020004833357177382325672080040936969453903133020666391279738144252093181613732489379342582940270023152801813798340682456456370121996290946723351845367670720164750705566713500875936470040146075968832172645095503352419574864172791721856378491828510496272790439886929041117203219484197011131405712538018140865012537916980784292224691185269325298973991686349612076939927939833079044121190965624175925283188324844753772273766950359831703648168555353140786739665002179504233764043730498550505283005084682745665784836911505445651173983820739364388020167657545224349400921626424115840920996282595476522964691278797196075472191424601690508260263681937618653918772850142376999277034640412633333598776587554436756284190530012570344031698671113162176373993606266170119509655480808938586334136955584737590966624634138293235623036789969080250195508853153622107980699011277450452598667215629318234769887528113122989190170637145995168475495564617155263124289570850236167295234417457206480274571255677026534392840479007351599805595369747930318438248472512409423838730403607674671790427735499818317210070643140599670233411778900904954386859177491056279853011917666550690623116044636884657316954559374136150045144320574422249112241337624783249126320953054417429196679495882532750149011297496169539560874590794090868576219508800076429778682153223206319015431846694601191359461040661893707869360627966368706563849347725177803934635953844456883972760686129520006129482454442622995639699050609739289983092041782384853639874400033709183646727390306890003530143561755720581307651201885573169058168616269621587479593809885452190150960184395610738452936688145366114397546958853237443686408139930524537646456582255006977792612425164653303233457978297648746386744454984375780734317014411509953318714860112214514915809602203602207900228931842985861718905589553083705221586909768984058017408600045111187071183210211406202963800459792132890260467771407648710293318505020140365489776704372208984069514636947718146970476398433087166232820543025228971852201428569284944905906342544901190565598056495163882909337997146307049051390754332942603812255616010349416809843269364845419088313014256479837625708975915217671140256319586737644726321995108939079889782715654819935854158392387173495010557623085964408834544661887196809660419459529439899337448025339081987271780970334488790420396193464856799575685105045868283596908358515051814915625236577798482823906937054397591310345886883075715257859609927096434017813371529339310912068471542355169190898089258514349415103850833202413747625157442646277722657069084143266137666112344915090555342422139770750378328498412253081384902659276595291959340888930202745117648630774130278629031153420889377049309208602159079902900823445786226246977415339954008727607134251460131265150397879965759760967951181962290801095039570156051400329701194594616452249686491259889274877184778935098792356666585191367606053336403491454086818244530893547240804665012989110300244309663545903342430442213676303538601153858871849203046450022381022023169121164324101053394325732168627300502264360978473404687697971371389420961700498605575172748183391087196295930106421272418888098235071799377978695934729353516448514204857020150359979069299078147531223069410958305053007619594632920336565775100200609565192963897308685493441634937921724989593264104897983067967877508931915284577251870756986900861113528973902073212695212106755688475091549358813558092603430444316956769242374461775168610843731226815811968990905731224822296397926725049257376864764662855493305672031075760846397491851661202674434467273771980194003750985709820936263065945648789629270966100946071070280371629715143952813416979552977169184342841659673075589349335458630076704374587536635272420554740461115229333763063711607251025793655729952994233938425346636001835131301990533459752939285363912402520268451832452973951477464509951663798946569955636266473741151113403626939266942056093864316709359312656622686655486733039284263947850951837204398760906456477402495987841331546589162487957238554571067878475271148183441128893511961241683134041382116963283004454948441744451440440780624253835611172556114582311080530427093767218811046503211755534744605997029535016322426043746902605193089629227592025436082423267691702755401053631584097234516657195603639461101794791572536857778894528602139608829321088320561208218324205168640645569326341631283438907031581629237979171541243153953054261425983248551914435934256318226927677632693901594735841973505308669576751203256724828734186295683759532542841257604905813264392229732420509348421161183548016061849507167066905897591005154749576483568061245722639480554289724292363158712772888038728403225636660352736412117721950972008182125432579330486007159833482786978292096078657663005051820214802985104452878925680771052565201019401222824155481730801465027724262360687237866786339767521711641306595520732086322182412619546536122233403860467143711692891073635405054536746702971479089594834999555330648391917699310780804274089948811215509632399038331301870915217650647112982935101111128582129857396324837836542125224170620761695012709050682796750381839051589956810997476627931607082319085419504115224328478623776542993073250195289640742647904325909265541550112270198945654894956176989624275317545468838932414883767964562577686146503573259496782902834352130094344377860369436957329758326347567170221439327113980979759187534846274456765324267075679362654960762110861204976871839538232170651801356371903228512032098771468864547666418952715972540000434992264580522912595614592953847654696619478656956930691123615872277780827703915400263611625564920320970529845429006545453950978062708262944333672805634876767748918308239935978616696414299014025733137851077614788769475670192277890229387564461061684727819680552500990185859756305608237971173929120994936198146289702237960682165272064713924201386745151915545028388262933152914736281072447703430207071906807878907856212850360710569945104872437301093657779154029263749302059740999838719181648295165933210444056409065407581399252673880152439202532408404675586728487381246996815507918970818255844682399424527916483313393624479253001777719148353426357215637550162772053992886042669636523044248368702438293586885583979278625845026598492841403813415152245424056487463470321084422025983718361260085472052970279542952924505484081316421901171849149051118343436735355628806621066219535870699907228635795197632457635259156123691390852483608471090209180499985688556152757538603894286126509605165483507720922333213009053950056602825817171051453936073792203541190715924388450711133845418028215194365883675980793097237898194784759400181439727871648736941078682257943573559183510853395608934710446030819906632823129606920467837118210778292499057479123687134059633256136262203834061363189397420650993940159592268228593044929595769104910605148409308284940725153743970094242707786297447972268406313935493099016811270116029761348639040927713179729613556054193002747167007319257533811173865516494157058194690475130458347035483511115451729651508228800638772339883060544148174170104122413485271990163104494369576090787553096107634390220594135789258518954195563479548630118800986460461118708947868845650571233734209634312321225317679062086872072473973525555127476216042520570541338639447225513605063925066854628908735428593300977570526082434465499209042403558319364215678031471140380817303329276470147185207240328188568498926854765998107909355374112257441418581614393125269805325691029304452308444461639784065180221993363486529837650812963519485103364447331588600469456962681172402475754578082281122901469249150481243186511718585824009899837746506280386878242674746224032822845677694269750480979814751118996863991205393637069619175785472527877153322095534223458493117988837906404296906302995893677562234645049368215917252860116463880943759528075825758075485394622282456351477894304521937771842139343239409507106261717063250220371372438904961988724103757929707579171564928265000305013511613169235798806400198522885522756057309044524575865346526745408293582587357176173822555209596262100394590074413220143118465286717744102912640046392341428974353194026640260571311779884082683261848972963447040821325275079460867434371574332579236176803722308305046400401992854283898152720313673493074714451474678899753713078339407142159079724328516668900182053905789326788981401491428132211537326421268819807556792307803639347644844564876808541652868161994121687344007863615282989229396629411731793194441983207861734382739209355098504703889224622128754308177740027797247276860546966602733481987883090446971158864352433935195050137192263600845428569709661972722165821426770947164840082788894007978145445058194575595358674334978835672150664825716748028274228347163842493368158831831591632350145820860589196750043607286344151501890719622868460816921417891956632669050739720057224189200830694542308777557081620450480958344143334371066218373169913535480536204144790865931036974191320718316186341216321198639249323099846969509444543354081196118213650809657052325844541027665806358138546139835547941428590019935039531024999350727419794401378208833660857871144798206766904619345311002836700197504626145806798622893187723346325506922252503369848600169328730523378602188618540756641447820116544711666697011179064324844856256926024417180065822437242679218742949682781806572879735728637450077397839287515491117461913975555839253904117539373647926476005049338573678865014338602553369930787667418762473224274735613240672713481752246357777784721579784282258136585330118710091841353322636324554039188851917392790721337590916303953040001117574490343407286192691696073160592605136046096685103318292142698639358938122481931405784602975519377480784445772691037243341221761106948992762192545464982672662976740092215881187086125650185998749373070209415270869886967151787038596146684929198006260268191094554149941803131477747973139889737777214747377246021978440579681862194797463498483412025127554821529414983938114713985064135284075769274105378803718800002173305633844847045315388948767833527985449611858462302564343719271787885385427118442395607005049881779102864024629088541231938524522122265070329951101463574595014042499861309682782839127269088789773194489086728209909897752550846673777482526054399682520912749651841304237758351352976031528812323675198973043579851581109281069987863137593182129323169907806185891747871707299112632589032153864582507578610532142051966166650407953846266218944739961076064920535193091523547619987417261259163621276898594628625079803273560109906793766098136960477803746884099604514061266558103915431825922488337257097634931241619953643821677893529541007709239453099064429737807269866991815899406015437926628389894932876276719279039575768598251123279242438735845081027974322059893626609879184351627822992885256112290390510414422366074458296592870512335871600631707557303015632537810856543865227721457612991921720082236740778126226476272632571089755403021994469885428290265449680672963035018308942097895595079342998379209332409500811341855669027065099582992670401166811431363959488799680576733379425038810157043106959387234823591615122836394148851390299655168157823847244691439771225287268471774139689655095818281864516003995549132934480135000870243414441228406522578007334256541141238801290102914259874286018066984671680273962067575241120631698468922126828816032439884423715006886528468528910118278166733683186046444867976327910822955000452991653734804408575661888800252781341394129284101021208689836260608045779229121893296994500931833684252897851184334386854972696201858417373793954604053913973281186867732261121276066895633928111802826712425941744692779690915220923093799597502291095534816190380302477865242339313246282401576460758005811384521284778586335604994853646443562174891264022530311982664037501826959749077136933613549238568101751100391744695702696469295294164267273620643477453946461930439268708636423803510194361970777186497247485572735055317853425258184610160063485128251601381547441960889154863635487629273882621252796214341907780396045473816140503837845732265993179518845575215661561221987705094172593040053718123882644071231906876774713744868245557118607302764756628888949978698409945190708559716426182010973754041203593749237526181811103718412123282639296241604598432599546956970710659820803782220225256924506931389991402486630280396750595048502362700624720965880148714027216816974422281706210696824891481351710977852752769962254337052084105175263562021418079861692202363644913131944087885601625983229479166599741670172780195717009902899708132842953229734541442923035173494518525437255943084779219813021309608393954699033607534762671125345280571027744591756842144192958620615850874623476532231571488386789659766100606059045772920570887021875032914244598725230876991892985442310764682448811929029400942611686005803155208503274471911461231203645746194429895790915763827548820843366638388191655819572912326906803207483600038268373611622843892967776347434008263293604240076012469402402828192300056259028462750876115368762650546903672013223614811989721493819628137596167399048452193775941476259073828289211854071582574198584141020814710501356246078310618994932244608633444774802794461698942741324162812678689189072069974460818790199658797580889132428662290036083890792064816990945501743230089835574135246630898705203159379126053885754760157161186277034954571947582574554895827919695500258735567077919276103705435921479853313774494990676471045622360342038777629708555408757644819116175823734220757503038453702805751071148248337628462654698711640273493389541220527765918224998828692763649937591033763077356833267165252862525248589109809469202499428222538586026909361503823706795442114208875983664123443327401347533780895122372791491722629312914033435855281456566830485487917736599357619574679424813565212500324658272881496205285816378390594669903860860487352570166469509633943613730859542962320454351871727253954029773300315636450212284355816281347023077566712608083814359742876343764267643949803075600229884899209233157305433807286320318599997595429975389171683031779651959964271853302160337985214244679447759602539745644346167223454444436378557780025519501636536707681383728827845372906572913093277508756889944402001528513354516768393240071535205619487622130278643257112365556338926466763538764156416066029790648442250429646683419217040041601799729907032176740410341597003514077905166893553473112690015155226632904780746144420246150104672572397243629912768732138340656157332225247076458661658706941667787211750187568979332515240802448659709035845966256127280442552731697279084795010804240690316073431158465419840172616535954934318010192232006312503333702147672797391873805784993537064618198063108283164009305855259388453286159058046216041326387752313441243152324113344441612622745934221718839796975469686525767088778545342303916790177267417430682618800777147160609234114373320405154146702909876345786582020108994764255879319433916029816133350517153172302246953936251126046665020530636371102548274197928809683009216635039348766106257289595420023358320140821203368857246737329839454072309535267185957445044108476940648072227852085816249352959800255359758117947241463252919604451591255595341840128134689789844715027327862981416066007771083021669888707284274022555063268608517875960446133918903521184953047063088108018641489311290477670595883368625878932730819948929898107525245972987725535723968913241318271243363866514967883636235435733350570148859869086114345609807681573056398029877262254040473138091086147702654940857435070315426718786467682809724943317067933214885253962864325315611387677028610995006445202345393756550498453075450885900496243887635763942149690565658220683275535800618350036502203767199067000331272495813638212462958076134277267048916134366223818559203153088141250329760081921400965680114151105442048038160600659269435027004362111673353283794391635928329294302094527067648215728210036940163713934137682024791509123941307326633490242253542653931348420294436609519119064445199067678746734145601072205107089624575821130711497729122716144706431296600002715542413465432162466175584894205203562617848914332311342476518052646547230859310060153823383168284205042705306191625950520441324843122188334816682736384947705798722419537619742212437321434401180314955925502429439164017461017614694983403467804861356445660249166528448461984912297551946832251400017811558113492620760140222483933298961438481319011813052835789767948641364557003906349075691460218835221506375806575169082094453747615869900816898365208813739352145571906983363341880356575034915888518008643736828065185053147029435614189342662258734750221901322180779198077651357294327333308781709545223833962769151543180344596846079824962084530354588729982127398529280545998183754479481949233051530388076181234443534210423444116234879689098111721014051671210542320729121039550890532879021289389554714957498140595729128338758627080575850466107123490016034543939423614141374885824316842297899202018450863431977395010803403574780531843593713641121677224778054250858253304749027262544138634601266196297815550202222026010472338538949716667713269679665180077980939550773542464197896427302623025321247776888402031637513248563018338143158401496390277592729111033672743836656087361280987744572156585113122871430762359639362527409904512196143291835185285062786546641169347064317741273571742178449578103250674756358452802895831559428593393912162057803073611589571539746868582251945432435053312013481048274041213604308106162952845172687583609998733623316931910056751335291222825652230669306438330312480540609079315002920665144045064073864627012994451045093997754245178029123338194354106072343955349149402363971727835934271453282527081726168728646031286099340720562654664554121283404278783350910457415101694443131883629649362826426068621404096354889747597989099107408498392725601939531592138891565953609674878134528523704542172024975385912640042784403902807548215837120154949056200633510790201043874232903837557184363580240412506111687629609633661842869405980136322737909585017958770276172931401735147961602478758702317012939482061800624983808149125982150350065187403652987886351572137368917339365129812961654204081228586012090591302061689631709758041524370739220728791729343367082507075658044536060696049500848968953726516323019082501608064590849909203922854512266343556962029429181420915773582643539705060955551895587597987286195055849124224114004202822163760418516193904642067553255577474327312636301342652371952619701653265596743215098168810595753219942243423135617393830467282046178686098350560153587976036099210814274535733960907600195175102315231823839655628662533417744390958161469458104360410438511025114684034618238187506109015340063008706664833669674852874035090639718274742002771075548808524735594038193581850453139532847325220531272943373447635377766403441978933697254371125758725698263039400771459458109898292741052177145288297769256136973324628682902262581486582740355305128257818541372001285738672199624299986253242852366106791739258361105533811360064748118813556842313785232987042420274808368294637474597324298375652476487991182308267554016716662455621568807599212205766333792197595800248869849087728551131906921506952035618772807311432810767719996226600405288073845002350708680747311258231174359849720244111834405402877366665363200882321111927854838628879875545696089971550677281373404848714255430086168395311372650775111760214882281843536374607657652391919924102376034031449392633427974417924784980134158340739730340963347014236248264481642919116029666610506665290811796506886241633237681574272025319845084498422604657607113370852768058578389423801280322133605458263066911100080206143365490671846584530013057732703223596036963895430531463949033190044929453835129580438373719477505504134060042835342247225751744920278154481050999255539420729823422677175306805358211423907739444606617441005087216853655652302682302731297281522825038332182155216986579827634978067901393840832099061111723072047350945985047978536725672928368911683246285753428351309196216032388225143068236840758267110681151922913678568464157039478773052042340964128356719377129237880268292642946306748032005686017754406240693376367369446761440361243991432533909431024438185051786553829360674578786786148056708204433803579811853356674466970537290663308539130366702873720926265201627480466961572384140575424541082642321696075415848363963336625616863766071938903854717900759567116492979287452189764828927350066238215043940908823151752602274976604633332215481185276934967542705058424299117240614625303574894400309175381723826875266031884302828870271998944479328428016764478552965751049785223198761742606644463335327875940547901585811477725458855163482328162492318764590796052056015411353511264328410184264899127786972277039688904909044024246878220392922889549249690961147945065034740598741616805054897861009958442949189343193431932051573884897377553821209276363226081276978405142294854944156921500776894636498977276480570760138853553558505761478419439008773609444306607679312707562233175752093241719356416555510560766119558554239327099669163413307729009287168041253381572942158537222053341621502852325556340814871192446824114796715749636747693289945225782760308523467227956746964484301085187884357525302002877121882218607919954898184577655564594506604044045981403313802269285816395482101463937359097224699739225197728055927042812818161334342535908857587869286446016574364955534519832144982643281646219286869733742929355705071555057380360937019729937289595727335555444982162201865628492744173277028767443522518488724238441597786635646430070427356908675766416206824275960090514132034466495888211626876898952936092164551553860917955165014520810033545920365353958386225103242633711115165755655117511272452020591386389771245987899265774000640318073636002393166957181497064450078346950250780479779377076598805470786218831204796981688645923183191766435254827667838389518549613491543286704389199688596511367817685747169887459940342630070471763581207338340998750332499768949899007606502594987707168315415915331296629489801694720911788208419786268423766766613439025333438003037943806096057053805004721437121018412507612656372527745118627521889091890990034280104636196132868482008665070030722536681463934071827663373556630535415568210214386237947311153238248650369150318317427933601730624581243829199731179444115054861746764194430162405045014781730370950706426320183475449145220519967491318323043935538789126173346427709904912382799052013403409930887153856740666031009531942448608672635612138486513706349812738915315636323010392487598386106164076707796498436744971742949527866108801621930949149978386589518885140286392339928820383768780352157147298666654311440076527071655391716876404072734815583667736365041490576857185320348329643161985421387005903700048002182085486444487142359479840845796995017660072442534274437724161663042443199879059448124733176774044377508727068123026392698894074528951576752379948849861827627754856588734796058819504310515051851704846916207635627964815756128107767456553435580748967945555447202838288660201378176803996588376729789120564592188254255317239734282848236302716501877587535919028635311129070320479432673417899802846372930677927289922764264688660358801522656205788141456120075238600854907227691316185019696652637051273582438806219128646189322878983060504840668814982887539827259369689008909530052810553619824761680749517265582583425743839758488743297618044236274924406356443234067605204429896225646803598786329878836593021932512269348741959130916153279263258110954263920327001946841296317263708829657483944996952325998574467964017595780570309382192721445293905355202544416143488725496307857811487831836870745275945031700062868210997782980423727204422817222361483171483993273610981865344925888845809079680685512849451262244935235675719975187389714753607075674908066382615378661498704338011582691862032007512450176105124499151729858200091508529322536777955285889931360995982077686879953404682341569164331498696782569081450902676577289912042768091518627825976681708937829943914067121379665834970226407106933438080198034888385187661497129263873842239048954449585248170225639164189079184703978616867101954393273030887426916657831215447204380004618545865539897354180277877436942782576064948490151287900732379386555061258591599788028317313565815205426697716791906278872425507057090972420009121546277635757075815510823131732833035631105476518745972008226919372787738779244217778205513793059829917320990448560751469458620312995879427574987426666658671419573132700369177391193790736824583476783840058413458692600771124084723653832217710175853855661253620470401829889328321284013795661256113436496892603893065748346896528159959152051956226707017038595135259496098918585273603098557679216209963079898688595265626018351550965205145639690459776038197413878970518964806851464091986702802228341374829383665017673887840876146070510780118566171665090383400164637979688782558440034359484205935250727970760843347641171018358297750467016318039152764280245320748125837021603735589579957831415630856548597807963062320287294403379640856669599080299490928832802998032513311265762684077222097342989963240579688565148873367610033936988558351820787443492102849417637395689991658054541964915078257084430988535432491742716567275136463188449453091862956415153382184415975881456796826565209686736892161207412113033971538382708196069473202495636545024964749235612361802270381771739782023770640948973947368954366016629634041575659459589686030671960799233834781552217939805804367068457582315933617107008119902248453617527312328395304572244426975051302794718613503141062454449579866292779811740505800757266657665624378730960435917806315568078332585485332732041360769527902527936094882893789876327406416014977162528620462868734207735498868461350243808334170294918852231858669990813800673932197191398277688560962938647991452555060962561587003016407216715014304801437440835389761741784559670891353069550696597974538217998244468790274424503687333374446985460231248620244200732054779380288588923924978571894147773668693768576268959181852924451342770793729175935266707218431805517525388364652656467218454151689405623877337654099247471994250999759665375341404669829053460448489064322072114072880655190863498763913155458941487841914653277525203598285958848537153937340373208981154015160044737904303134591276195947933198418133588653550316248245559014377440419567114641312456963875782606284550470567778109586605394666315550319764709609197705166065321932730950840665301508639387796788987940136367609425231422059298220019985889369916209028212586064638010609390847363019497844661924584977644844933140599043293516968355382522877182770794960525762142464656351872927758771726881391946364761831212954412520875004967752347015278946615381265722944946357473229565951959892499426429419433011323904797151204643985408529169321134833663326347599275818324686688914780592411561395263948515381425298003943349523514978644175417574150447308255161878456696021988836200812823920590888435470527999854919874992311935213910875681165335255209874574152801713138387761358246709044764661313897643623126933518886619339254503679844882355279712170847054665764819537907515425826136789820845736196538384151337425020947218688794846083584833811002892418344867263257263329293413295458512637712262353662028692940269167728624350044759607920341444593885025607915990336967891766036622893221244287982041164424978877570391530530467129099115624046388677622208929565271981900613125748045308992484094333218373556043242265238332853891416755584006402879661706996434386929485519129432335169594239140517514292602897998217644005917933903182506120571130498442462550231212085830574301925570911999291613146977781989892538832483072142464738012641986973404349578792200762814423498880720007939538472535794774638252442646900327556309982071715760619477290061623756896468078598072978248680940688432746776102526046893339402724751794162054918465281645188963394228799713770881216164198120607017996124341519206023105464213319050559962349915681218631195314003370325716614341591495709827877595223193966409417817667889724700705220815208026758959636439470483599020638547226606708822655643306281365429054214390193402354027565673932992997985979556209303721419973857529232835928432811222522341649138309742107002306273558786475842694470115442092889604239092645715050331925117145989785581435506437839224956824752145026729345273380792320987785456489399453486614066546448609171415622011089281401991019604994948999186721642475284607722253871665141437848296950110454873015406565063048503393907991181748683927649264346243155059121888902675517580348133389077643825458700247595198321154212146841702537037761706870979832675778723964000798728806249805547931261900835146611376486307033141331636103947999531219376388189842772722217092501375024566482443381373169776976771522172341871886699462618479828266929387130500579344152373679474092328869238613220121113929112108230252324866016923730567610186754062702653472127519681634811871150129479700185195356076255845484365345144237547374015694199031101985905869290834897497957884100512339229364302534144896271788113872307491171980354619708290560423751061888204007561615059792983152938408904608675088995879477467532455265374224400416667814812044967527737395165770049619913509976799876839150541071231057458985953828531605067299111256016461313896917318405342955738590546713886789805588097932524217359517750989775079026474446226282915670405932226743734942494061492855066941146482083616969233646665668759915673033863542929099130316939626735082510309615767636400737260925799963216286760554754187587284060913498092323725234787598963987595859341461062920816501941500711328572962869170290438671042647923775697669834478159842398707843305055583566692359765363925442309332973770645571209928591487476125840890507573186784577916967543583892167934006827202205765683692076302031275231038451255449991168041412984379754715956695262656583086726516706660854924328306327997732022695867400065003161445746935416809689541850820150067532717603279345266004468380421784551483902080083955106046127543149327916932779443915057156159005906144242624800036297667434347124267545750677687384425253702650379224021726265662683198451885121448344806173546217101193539394127823195451536362756930100525097285102853846388871477113519429267917771831466257488211657503095815376541987211683229950792092513547969486556520803979492276926628439540141121709712070977430756956946091605498453599827893310288838390782861172536362717135212508622853386423637014494901956281707300107487187323864601765568807348097688651583756687894263317598773513598210723888022275243161861421904699579504118258568463758170041165552349949929387514242114650105485294775530088480382543121995062619868653563254765840482009038054031485085975529403333934825949813413097639142017499513898414323735927562868456863065364325412222489535527957811160268772471167350454413208027218627385832397897081051005133825589643835813238618955713356340923696994351717011657511087982301363619354275923334773496019775680799482077458406585963855009128458260420316785848461203848842358963543000687572411468998324034540360046728252397586212284744320772880105676968074433808276331071275557636542055319896607991484628171500587204361948351972223554348392144654827347824332531197689605511830230924479891111944685232935408671197557651675316902066454963516786147765286770819551036650350844240517134806247225526996643240761144335348562258124339906696020699629353861137240599833178875156151551649319809666563938429491766754356989941081033709722463194103312307997629804348148846248084156467964646674147282225293499839728258304974830693554125600393476340666270085915953633465008333232578461086423919446426452462399675793890126266376856450015320985826023125499224418690129145968580174192717918735772343091793137315465016421812563018823613889775325719994796966433023588416221824619252959624359856629679747928332941921332762745496409686604239447592245610240727657385229471520389782938025475072496411704341205075304712626708700858341973945651057516054006299805317614959954084148860709769151611448596099741505912724830530792966996263573431777157682696515700322703854587657603365424746466713247491304853539439674177095924404712744086786649804392930854778829539364717542097912112600010352137602483660875233430681793106283653192905396566174921584281920655819781057015629521343075260116021193338263730972590560622190336905624184688687898253579988915521703116588742211898086174407765422473618407259347941668970495306850533008882588385271330987108349083869861486819790289000459641569338945854650976289041756822924891684242885894971172072302479085016653728851737426945668065874238921821392504071640872637704184445429433707469796771574819129697700907543913736717982723466648322656997509866962445997952486136059548236103837575904706515812806127202343971496463197156914786419210077966531667441366284605516506817010285854868870948650166808512991349279508932364225024007984783749826148042008871479957710530182610245296995215833397247909220940858793516153875474444662646330531867558064668453115335178269370245569730725109992529834912981270712170700931796562449700381307425775599747660864354930451443915296055512276485142057816657452550391459086682447858340147859210220624860066253073756755735192764423746592329024072426552160506217778580283347448897967759308882522533693318315930529234351867450733757817888404492290467610610009962709703860877702463455412812150639772824204807144972173614884362366837114254447565643424667910730317156079793758414489986738885697285245369373399719023472513511702433858929428397710333638002101206583465585359011977743972129584209980331379925433204402791484253337596360351928596005781106033609930977713860075041525953773225379508224025523797398228969966770927521690629288290151122567423279238521558465972639267451116806797721001102658233919580073418063777149776681605788352492427614577429699022977314872128101240671160472525317582510338515919478866227708503999279044352173427487001112638501460886620703449206615362149918776089066539200199984170924427956042164765283405468459730818470612087042066825332966710644158227957365586774200301907484024971541388684672080272324314530715807625732900246731351716341695554729278658516676951834681829436050241146915599218704408255313149828653480784248929290736638401797433733413665978883582365039885548760017266793145941055017728496753689828037747395263493290622789642493233172764015683223008412294923926152129110152671666583766616686509844712441408994241601105670058829457448031380168925421737411391616849843973659694549193484518842724624704475830902242391215759391131197463160784898102649582493216186497403541697419249910545234432024985483513540862180394506880165993694455781670716529284033687652960820206640850415217933372155987704440092867478002552791484016976388295902401856535863371862881208855172246163731652391973452979968570283982671869942734429514233156265339876561710568917847146080696083244690041571807491504093638646309391654398932208867284460378584861642499312921882736740049450287526365000325702951695706077858722028316126519248528698357574457626239224747090959547380635797518549065407082469427289534544445170725222423868743787287413371225393396917517024907171531640979651465373516758330288610385959171985462084614561257491016964517148548437738579383054184244123043809347525777262839184090971992672392206767796531103529447082536140712896103267609210222063815955208516003876632453100494394799642898971973146744199937542817625658733549855590106615766107809252350032064250222859183852803336946591187505034094188953075488696294513392710738715093703218373766326417704647920970444001226217451335180491282602376542072691601792661573667440445824887090397849284116857372109823307791533242685268736904916531446256625355095716066023823133081625842282800701987588244199658043745908693112442136175800368304721677056830751264148489831480228891357180671849930543197739163717610142081605358491667323013072629934121966237671434535807842192224714142049334209550081492461104373654244517061956576086400762702429842700440382989592850125712955082829496616310707784932231454479347139171532131355129266399042063494807659874233694036958885720898293724056324399092414676126106473236352762259864492649377336167853017624499279146006284173971397308999865720738291430713319018336259088220067222555762812694036146530221980752464582401348001837918251614467591202014391376374371616312568589279887890856904076458797401418957012087140862357200114031760723832392461491895437117987443649027001596678645083649409628065180575774634179440057790872755252573470042228283953334317345816670918513427954578675814254926304146933378047738296403970597668467902270484480475377675446602271466056859520801988811700378082054072642173904426728637819581606242575611812577010140052427106162492526333543476603134056113373055782812478796416320344871115499715934703178735664431458367080822153103844308708411996459982384708170439681609299114981307304399836119966217024895016824429644445992770629771152625597151688595077324506988059015195466873070973505801367379408095148358399236687997578043503074208895463264116250630162765352109725496967167591144197678091797185156993754744618978158389332410381860768631949971365171631927555882733691919275351653500813357212451611354444575785723986762941883494790525490389770458083701575466484508937338557926769607381538777250209331261756413204039430365120801240424450169178761528770072004411231212700343637907158346013156133951002851822355767309622172761611415876728908009139348459634614378961409889520414151568785891881916349277002783740848091700998947361568746254466774440964735384619694516516563800383664871041649201199251530093613041676448833271620480157159042465104883756131246861965603436838386502491908601038500549022981661178920063299406695965679070751584900763342768630253589246262261159279909634165434957483118119783275454772951045523627605734003941695355156459833252615029011523071732279665891900682513633402443822495287407681864555374779421754445568398965095182284116151847680109382101427505506951471812953370607277374410088447765081046083875096291720694811732917471429499623036403000641080090164137560025624693481749948756752759518262715035416969753713975596705021394830505142096820760292664518993134048637762455065553714604658387923848222586255933416591288431128772846672620486404154083098808582401041760142438056946659269644993676659821525321484395949017018837199243410807476005689796772570915917809024017350730491763788204173485612533141411760288493094187306899694263654091767301379078776319711996372499293795801058881468693455768997399839093756180478579899013316029677652531336738815684175747073027289203177587388859709599944724397664413431432905218765942244968890034691022539287809994272111122705186641800311512877355467337489535481455906064782431876824213935261042480239344971136362515864493396678205509816696211166868114422580435765396048759413841964879311675358885039969388733887987585582349945490567558059417552938774705677646579410134523640266183887723100737956489352724978666831090790592905862315821433380236484425613302023551539095774506933856047039648464678744785113979016040233054930823637745173580745434264066735922619794889373230419961147468171267765403222876243522511459449555238671715088479438657937856430755167932428828163486149318337353240120696380580832058908415740390545412928472519070102840243126730513516705651030397854920227185575847264847674129128399907023381756636605419031809582625138400216416168930785355949513523130481039431562489732207002159991039615492075517635474919569364186129385844037078281284945981163785270301480826975367944790645920373979462158228872865519536475492072930893364650150969136326877032791414187195428951261439376190541829936342534044237650519031639230691131442050431462796074911181628577040839550345368588648832426666604291836130211614418012403361416609189654668987550267082418860132624386161687303835222928709764740974093921266514123819242436210967946497283342384403645881955702485599270226779963629905900734359449406321019634063455132672928234304502578657672357235732226925739183834818894471748077530496408048718840682005593412597956219625954901966946542647232949293671397824381646499561156950413887641784661774670285680505138701333644581117207148992064700352333138408264124290000755398747297247081130857374411594120664610872706782913065406560926406649656882339817869380313745471396497749808948670320173949107260472278186441498333459113213839537619491090151469727730466213209884683377224606603689164051617261530357150801906525149006618531214627707054973403274092794927113306444211654626754277601173718177608506519884795320058189009525501547536376077448855274835923122848765502656942727531728297869708915378929483913862563119552996724382943206445194088432497954657036051263926831405020491363599440036740659955360732489101080147858873696479348417415501653491624859184850043136047052390302562444430416909844885024254447610995957074025656362811630280138419406234543504762557537635164024673726642415595994222093373730419572463529851880519964295486571080041488980926539175553633790297606087575789034124341960329144121457558477697771310646271938396652427983050419784079136879802390350585212610856886683008302141914619260883187165286901820288023209872275904870282908366148394625304211567173698284882176880797659159555765033411596731754405438091529580741465723622443498034866313986524450384888890983152041801428269979237583233298531265423977491028521584203205878868019367025288480636046323885914302755691897956782330399195804250538521844402517145840090761216067674112206638881878636848120414599421055051387366045541124596754352764508360607644277001463570249032945874708436206557128562706846243886676607252147351821983205668998139176574880956628702309437163288380431094091245068547470178859794477934835821708589908603464174122104572261491808907798155120730557905053956073158088434201567018503125652220375061951079572906169975892063007833934559835522480400434580423765304564835483052308585041732724586014191361933266477487320227514306712457328567170080977169800138004442075501820960027869518697837272613205396513152385664743746782853745220954783803980306902317857716761023511707282776300811807270181095572454162835434269581212123935976199212919789034583235168949673672293083126226706348339323084250285595626449138189414548456448183307931585366838799626069117654494914369443085994643956479059127036971194436184927985644984366786827401446913327499140595817298610552723778775831204497799743975618008867207803635738190914607877333922047521859464228352215403041232070653052647967944702032876641943459802810680447546881567061037211007071696034961953593143346834275097934415077395109691293474419164643168002555854974947695232529448720231743441754654449097255142434012938181178142423918605937496206175142673039693007076062197788422842161680925640072118577375746774880553168375327038214138523829625383351274247084484694512046504154689728523145850502342435935745220385631084703972756054980264009608962471330772593706704519762212450341780716552247868183156787335097446172478343242972778332656817206438966003991938521599277307731136988238386924425701609367776467581238646460138179061685905062230371274323921281570859734434320739420386002023325541380988153781007346167839943159893687150838902112998743995336660547382428043178964324134600314313840031096251248984295765361228061037333338259920615400960652741123856298213189730391606998231194055954834661118298578704058635473725567570309610857344104164263654327281661396075598793788010382726386069815250745809252084878692886674891548637789336105375804762941156619770737925965898971780495327397765458082489187518308442037648155470367273037590210874648949174699585405334209143217292921418108057132999980688491936626446408682083892225492804971842710708637441797874056246253243100045033155965274016527302280659004928135191875772169622588604446841046114661200789943899435663081244980440456702495426335074764636580744725579028457776849479450441499016801828013442995505628033041780141805051131457076316702443571667046272972683533333620655223742187357666236992431230476002313931267538555190452458287858576461739212286040533552099606885719007124884252666933277515915476497661653722388110535493832810421984140056329419743135341801764220575281864678903388113132746294585572036571666357670019709799011370895451749690060079552265347988473118230569038523378364015646476412228536967926005963658796194811596957069902100219392681174831176295458190619211529553302527820044061425774217337974971889504015855162828464322618082530295417893202319542984894621180710029467377076231853478275183183017397118826559768469456221914583488022059259988471116785160733442378123275948128983742413960709995566715790338722227784638900890003806205450371545718287493014552176763296704395797181494856369687599908801650267980086599669832864351437293400449184498653990935429737150798397548544162844635328558470845209260966895345694828662431100271344017717109914089276383816379564864420647274741703251329153554008117007980421997968597695391504133067969833820639430606510155903844819073210540495088377192162485475320797883666063055634809116876444179849719653396755745061529107242552511050423162882530300146537253747678651344234331255980782656836380653675874519571237612143428268411555592335237161629622062569588930784352237562216605586536963667382963640365384102770764302694430590062614748552820086593192915581523384936324867319053445800093249518801265844665183786476679007469525547145179496014406931074278118696412148524224719512270320445901257706554816322479540841995080128189947540098808390590984349778547418811101456055526731296341083752166191309886730726354672554597305734217315190440321102261268639459318227611552338265530313310609232088832247169424187534642235497229123626802717382703632567638547332449886538537834105788595313067529780409016417793424670224287858868421919945225385765856285823781557076558246296842883530456604586776069625946111786005862224117914767245773710461968427629995311798495732579311388670850781318096569512257237876271086792335670913854981806524200441846009644288252495245645479951152814313880582573172573534217042912009905950835654267424223100058151018032348824872647180857633629174134692415720761095166036997423048411893890029734401433330418546141803072031627978181105873453386642904513884375604675354101180543992159473761303662800421143058264859669508587474189462628202770048542640372376933292722998692767572617267260579727403302618181644499724738119929911154288822353653186969942792602124408619940838225620737155561492712880907211183818413454589829323772866213355792131052831380033816083757911364648033680403360163951466143137931251279887336428845927470356804359809102972025713174773349403075164247165814337324207596492223951776873810422121022922865644991821760810906036583601507213397196884533563055753424672591687760935851256057485279916418094597749129985541129034523252759610385566279494795882038385506567373227903629524027368186062911751476368742197148252962555472796560848354639210711134558894615038754682791615883016841677329339792181717535894004317657523217289737349920222923563704534306427795623511662942247005248839669487119319454774880964875098648653672265395312546912001007350733005892259499389679813581845962526774514568470360521443650437660984234000768620875800693411492081243009990529988553476564381331674025549542556965284879655464785327168457310321446593684726939612041594360687630813269638521831102344909180425004880684163152892384491256073573724433205933029768909782376060085097709579725773677401547348298901428418496831156254350762036137712865253276609243332176788828861334840790465127078663348961521343307164470834970662411505647733784620445588555654738713512320809452837474525127467594149833384237376483280928795697347234691226957215240523860374803966331676355926632158502234701287864641345566145923529799901540113591942711634155793198150718737536389361415289203456761786936071257600142467217800320500387993863633980801922747897142545894095730748672696038334305593028991354098009791270879047644206330958246795135824908299711020015873802491385249913856339290373627504698911222296162030683394954983144427988906065058155104557238141500602286094264214060659154058806337811370144332681642481937371226726990380614099071511643421042204602710468339747509199418514911117437061393116118853236426086541825435159816587180046902589038715824643397387850575397869553627683854010671318873891548173064331318515596218893661630355891534368586939105313996379632127711881428641814494527339227369506466436221731255043547588920808999672763053499439780580602946858849359482640726759332635347780856079893445628847183481635049251842097548933143519024678029942331243383146607024904045650991503341825450826381616646939398652314479704698501267606705945252258657612101979391792019249294789763411653360614656497550664221334128827492224038827320102304460352133953288055268519248036086889235221689188859371108576149906964902858637378635245770526519381465956555351387974478986834987853500355417743282155287539009899224440307331913518711637276999462691506762043537794618793864910423832756245983287626720574048754928160269931037405079835717837627260091530672587193486115609358498788422246261819591516699959359377572164160026769419542519836801017755250804591724094343326325055509576026360531223903586723114428913898335302197593510261898603018153145798581592675834699218229927849189462906240817505447850405688444980383232080759680890873103215242956980883657883384741509759059029691055617096284324221515660016968072448663689737009597421474701453331066284423916925058374621625610036734567225815665138632314740471320024515355950999229142402925653268119909173912093273833823575562716169021966243378589398951427969062376910713901209926675024662355269366272382424814547082657107553949066940682901560224760805051408774400400505826782498618919959813425704634861679476236875956554315225403714865617707228009888447352530811349623102088802276055166171952232978178479770799643677797209555654922271158058353946516748548893123209166908555156747312889073258348186059918470456235600605861441189404153808522592223270509163338879112563579513822678107524009468123458363147574581974054251175853622487041130142836650335144193748531882280004204444870226628782448420307641685466770134150777066035981643951844161967642335508282190174004952921904580466295094774767364825831592033172427916545289920209109988329730639307774597436961711946774033687293737006176526431543339053070693699712785212588096103067114974014920958159975260041361010702932728090620445579656587728863158861729219391451334468907604563415075166043345144865476904964152129403198285609085354693831665077971435892062012407032184357734889392296691205812555852444172849919383964239344884102786164917661183358565785475256885829463653819223333361171473715952878426408449462652061130300647583554217944520368162027548613403699847668295436273446499248374015388738731163066660786115645995122254852852887456896109668270283897124386726884165672001234205676497146678480192642661379866678772319667978794103930830685081604884455099948753168371044779428391763409296567058732136557043665275433593421730136564886080409663302493444388994838224974480885626450745917807662368916735516324265369960135009329248532114340982927760254690577093096678981042812318526970246711904090305363228462030440005910907153666342241216545452254161666205235684972624092510524742034217790125552775959811435280463990770609010137661021099945885436628127736284494831263642619427519647103177456984764821190271761643467719200008017565343832388669665241051204954955747310374366336880803685403405901443015041326742556679214097914246050283699482942714265255503118389428514266041291049785512363178089253495516330916417685978659725169433787876521649818047634501018144307570357443447932471224795358786493700959279028746115378756298930307990802772516220528234688397612518644124056471216900534900380347502901113501741472744129149845664948597343231501950909265236854416940874635602017882067155327823387592067408012074493124525487411703447821108544259546425141446350902792948647977105011032355447422271490970299663052581732328825835316086307658579763784858632214214161239205266992118120120290725426405270535923778269965255141922952708579436458717406980317093096071488945377591092297677114116037411745909098283234345908273680914571959875129315786650046277709875283078237426420104572662642527939749733776042355125247666308254675731397911450639787669224230253419614932072220524000961699712826784533263436962757102610412690778106777482059130657804611464290085040143700365219868058493484312254074810469670093141600405241848943611632281579036953121179991885451108073357792914058404926869691394883242864472640249964759045325669166614948788743778080494585773808895311736254591829279813365486973323458271269888776596995084776951229972325207898818498370165825603765660433459098412246250187419627900876312486094154558190289337154996395722283801715031948697337131593348745306864133272320852543080182195536819214530739508747587626148186358119473935185426498127703215172183579330141720589914148195890994957948935071905680057700227481653122320295128815070710019598870588181893781227319205046070477819485676497341178074666917776544488243346247943058034125588562753230275157260224388855185076242434586993456228419603788800382722813844462600481956493251473478646132621382806642553588599207117863121905633176048322808186968601089606299939351854193854388414802899152780219260586677560680252991912836162974001380328945917853480201874560278278583417988738854669710528114703622316673005457757414527211224857349207826855814401687631899689819778725546881172902438055334692255570204532047696471884249872724360761878445905479966045392629910387072435979769347093648796059753883209581335098025838419518943919779272820758565199422286936150558506795325292870545274754576608843274419246492207945622252011783444562569009612838776582805890048947391120576038618653040615562613149640316901255497667602241454232646574727350292116535480791752981845837567464249488167517906416086067102589673163011905599686203061376185259005732407391265162276364259799655728371527613168403402997598202058128796273903265378905074475056902405311828858520588211740939185285502179495791133636143837064072320092538876938605961387331968461245063770033847960295755953456602152787022003118302526417793151417914716152103649899742646994967668124200726106598905731579421177590765566986116716345801496032317986104014046428238706469778688357864196491504365589287876337255568337023280095751161755114002227350561600204815754837643385125946985356752210898693061834182486522360436075887931857568616728340611347928341062127793824533884289474487875508020755499785140219010597239120087162363131248928221413408672177995473546253628789357977957632903610905481154662855802469916433739364256081398881131239069423503690354923312225473031122602194337399103775519085887473063961658774741010428067460514688324363605711669958088976724925692450161268572240712196791086208133789133191961465423046110472407676448422084331251963465805115670522046112715141834492033834770567861828517158531241253003505482130186067149193701662817673031444897739159182030271523090074204139613236418813659480016613276068986930447940490835003049892945637311944120117765459931513700064488846157440197034068435148487813802894926579523708919972998848568188315590206563005734467447824510121117509794553030817356096926684784733848178433892061864443979492415030555016826375822787422445218221963035332993921781241222147680060294251753129736696288255384787526801928332274452642496771459281139765686772771214153066195731049010556707019150309787380737772558063908512263670130264136391444734582216283555132234611360626753615153808687671620990545079659394930299533348586390290010399076144062505836946025828603399774031158529877179403176104627022082383764040164709658799573332025856337106541065558267246492103050589163019851140916839789805294877740660676745433781224726013074202931995413372443188156578599453215706529843963134608108692708718719691584194162915587227375602499194603144094724787629114794259458392296104716934475914008292092714359076027776887087359663117025548418859266844258484024253264868148652890258295445569349085313833727265910875908880047629282078361404898229954549703438711315962108507709121173214014381998640899128077064302062273809645317932677131663030189752231741539166244695429066365501098076469393772841671076939286056946051765122497594898018509657686842580903065332786608158360768709234264037615469332886844104310479042832761299985873505445863565700025097845205761055758928223273449047256628797254968168367551820517913403785740185464045706804431328359644010553857481516272209471607081039843397365107651971177033536242914278098828362524830954543513376996017878412118729172203664267711510209899279024996900147178391938416668912585642934201110984885550086558806037146299420029790713144301615022114659189642491885798739160564493977358917380429821498925314384992746778416056748912596059850432625959150756808297066972568770863111312523024165975638547560832821035910685289192151982655532037034924517131985757861731384922071230416548316860007851343481399968733843253752876737855636822711979895136687358989897916963434972428456045036347384314534136819138084485535386078217196343232621390209524908085974908958580011035333197066706300013374754958974223172816546371334215828524772975204061884847483170888425168137102080627645904310681738589135376493219466648736989165209973084488531111943195245756332279464029722358042892511079274541694619236116033537011789492731342847706992120523730106325154866407193725273555167045333409182544022549487595467258751441430866150492130235921131226320343494666510872318883092411858122071218343133971062172458555755155982481133358287780432855370522790983254445058386657118987271454479351357588672645298384083011311540236839573989679832913506779014753217859416941396488390127416276408427324211981632763307652230660463176266554053059797636159577233768599600077902459948873980121248276701231518722038989144362930083491277565593724812477039096248103336838465293162831634639499501930488967259829399427849905285159205283044549283025956648301828206464755997266029220418079010274332261594617427747363381737612103180760091360789835812757698490104913298045722671824365824963269212826381613742127666824689327507927957138294192008702361675998464847494186115086456173593434197538042516119450513667977326837964465446015803928405819861202284141974518042308127764038965499944363751330004072645869010930720467571344523765477589114859461347947319755249655926282861477669799729366565196004686002185253821072063285365612821379106703959905755197913866022112150857598922049695198073176250116494107142756442558514739176980937714825296014061136611824902609053420876350171866166442850150786506527614970991705962522008752197574139561356541438804573355664848183919220499949556234747213596467775807140407955575931732278158492676158811752507785267955020438764901298410482408659963356138565887082921694098661663875705172952002169732474415286746500878089616168514746237724713824274347688156027471187439400412034297901706534620064900965046472959526157992651096492488086759238180804158339441379676351857180372215956180930197306469394367259440052908257904175480471217080586243336547371982110094616264644404121695186278119497875517787183214016954000039272707640985520564375648211161503535832333071410625941664088108245287640109776085237457711529087341090408806790723754651876791182540172224937997199459981170768974906795820587355153292953074904080619492178643866115038659346278548126890009561492267994560259511452972246890321246746228441569482266278212837762539390922452388356648169750308915636705540526952093586583924953354144862198854935008852824467120492566040329404950397283138861871274764241381726250310965011712591585027486561690655241594866977173905600117985894136707786749195551808129072847088402411724611686460187753058954613198609204506975444896243134256396648359351733135517167598168609522313915019944012830608741354926206337945200524918404360289100993234932687065756957575037238941283311208965198427777358054196505489614769796957005573262536943127925071505840881023906217989982276766861893457871195604993683091707198842046372511414802821180266367858128184560469961834966611477862527214366253224822140717998994064917818494121296802935215311411500812684219164528118578036027105639289846075780217634239403671689894487962478213060611153069664349999701416615705967021153166245658260139808612601497719300272778676210456875057907570397985790040962598661203380726244104728354449676358838366652985337519296560607935503847412223730154811600692378930484282127891152288177488112172425056496142511928456272943091539397893864924274701460271168790749075762576220948910775458402535918608265285627582422732397920629743814251925047284692956241188775872219366591405923476368273278291521492023900303864778474894753754570905792549700179698039830110815086942950037296646913667806447028609562723030371603356341921831168004153608832854404766156417141204203484771044783845085771903384833487910444496283881552627171005724257797987939317768536006024822964954261406453063990105252974293815192925605971149417977909179074427321678494244381141590379043223521712693001193197848394808071786425198671656216797985633967860539506957082754367502095820231465763289734355681834762636262913615548225043704109655699909764690165025441335208477989680815446308509907951135657041015602352397131298071283096782242269770470704902775044225468155241181045749613267251091052825424264416487045291926752279709523260733947321518961713932762874652843500521606996380253718711312929584747036138119706242622199983723401504332631615609510646413335977557347589989140309691915245261096232164181915291879425600652291149568257993741032066511265498762721826959622175265640436824281651719891079090500099612720393281907826140364656214370864549260490991249426412960908801737998028607466696323226760052738210472086986751496779945050230858003133113472022412384618452037798026493763888304671373185341605570277505915522410597717310987191067661202149011206654784380802820756571005644567527941863084364176913909736991790103781672226233631749635461652499753615877890506196840022836574875028679090007034121324576184701088620084634491670284772115950452444854226615155881873642011937204777570737282605256136655403724560426289340637353622912613602762688447605496816054289589860843810127979336242479037838207501587080813285431357879589907036656137845565053409353150472399982618802120030837256888266666351261435937740877716236534983728404505896327798632668252510524432228523367620550287700114980272144339106044571437746877150893607636901698048309625292226615783694090328578628359012660509053627096616585005800660353854233173976741277220817076430335607457656303825996639797674740518631263356109064402688275961888403858647012497783496008530795160481606381160796353232283448928387896499246614578102627150763947281191138592333238384245493093905275272824934006387209169701835536231965267146238844999222131716841008520385718216017452190901720960444784187658293800496770912666492718471488332221367179498829302241415737682264280797905251512987277496998087900607555773284832169448816968098889557100484882423736324674905033247348712985752040989699072806793502173136281141646242168503788022697145337116545211579751062400885214038464033112238206641039940629312711029436265268135288037349814858743788986514928962764566421651697827907670958478961143163617402041648080029159345598862428364801381619165289320848014427972937862342048837602775485722494841525320581799238377277494269970500708907568151423242438610876136316200655214028741943081489315914556193367028969873841661768691050600114048809975362004101727104280382420771377726150806684404960936252606916406080485304855120055827725591225756889413199118169602298934022518285218609775139558382864685441745152946539275498585029633046289024537331966388416306118783739745628455326644218934244160971364829017212611940300014656375785191418916856375441533096416803552152901834437192709105734460768780936287750230113111516640565726672835520288054038466987662001406451736119716753749464221078359545013529253207814256474082910922837675391085789873110126912280877669567495121492817479315079201588271927396241649358932730589404422635873261390295715730330412580598967712816504168580954794470095248224889636580569297821379217564833433828591330067028907211579236698420904324482209790435568931627161257828223494833437934697770275172606476206387765107590616682791095716993110800052111551866240764917573396372550780105189889097607156362026746443556914641228737862034283445578354410441615006485665108882695249755960761075956158412882367648691974098805161403104668726527682212207715547966244048053106402105998862814419506786305478127380280396815385238423813008748686035185562393881239542365622410485326015210126569675864659091490841873727847981803469984969670162589103288267824867799441337612780974440012394885883842915015383819039543874249800656004301945496191575229994390656164800972297154968369310162844628854929764802991141779447748218509850639543484969228028091268412190265505936764654053472728176238140282720505523363031981625365252694665282628932833854857196433298094584918130880312912881356941941648361288295462902179988882578444886316414054920976203802710145545148711822522338801415080801116242921997657417391998808583723498841130153882695177523386192742581596836154498020702880254790937169072783864423347414365418857919596801149462485983215607048514760953755816137526609641103808449235108642338916624490428887928046475872416600330770160067936081363614767921089160989051304864037562263807874804595948955699485528276941077916987385175086303704860097660450745454683339001439883883900810540800881518676875295424302885349985858302763695187349312730738921191335547055243563105470715695716189820779058318105925841178364273272657060433582166294975603478820772764146428650344660248914719829178515782514574068093930348823839383552167659372540802465461805209344273133216915101724289790403406168267335904344004050616915656358145790717755722375665349065802827633698061056307020094383041429227128900227875303288060173334385023577767896235664615044305727399289534164604498047342000408189868444250816065932237562168487542755022366395746727653214861146604149470489783611284039503371144296160539638903592398188624944849863480772293613064431024814886598032606913826275603494554098590992650894747802314375948707545119384621600846974475239991689085779853270737247897381977898908391752354759274484285890201817119901796219339462923673513238965251838815905715951987098375281449694014145793132052868751224207329633015040477299626772383124584397978204471249578541105421882842283551496187392878122895946341617979878689960646159774872068206828017452809340389106001670952050370689106290486737458244862214179563926650428275035422977495632691153136230864913953292737033844581975485851841361770299051856213779229730473590792649948179632480592729027538045816814899584183524752472294455072629319064803894975020150930570388052599759273932594714066567408230876995908352973464248892176349296758263790948136694892534183268943457105041124571228009722579823001850684570525194729584717142450248125280425619501415690023388472890854646538486344811591364275349249956465183288141790811006475158473762049248952069001859392323917445115296224810717767723413776338605193988533713009806775557825865031424909065508463338299541697730288902912679621918036733906816273036742497564084076267532997977675724232362792921093550028671969075806085938658985724172345239863196508278352722428032060531708694333422912732205650533777728942547235534673031364624732551272779489030850879491471274695394646208846173183787446515208723150950701930518204168712899169544825987584083021252922968012818097525537377345032684854984592911990414139693991575579728003202482823364231816432234632478631668062581776070318087544864260595099734656726769667761514698111802534408871241187333987462653235024286300263909469690648867424813150265361139162107860454170152141106744913369306464366555820787669429079178281580153574880269433185431372195178154243727299502997554871259530135440030565008233905830585336680150819995897998903897186240216410982214002073896697830768786799389002375321027982809846160331268686076816212916523662612621316594803186796176916431675410821858911001403721405799749063269826931908471997919317878571457567519552066371389486933659890168869666066498921339817844093782488177878244572295727050733440674173374627001387416216465460534914900193928599401191188259383441461407901755979483707922772018624214837909218201850763613963359935612548086212621487873596998693617843085352616875212475777545165442242381515618156554941173639951198270011544495032797993895525683076269574033254962455514995267304230007378245335778799626951614116949673083547192660191383163395128325079122996248501294330436233636762186879242486967409827625044652928129129885642853017384807716540149266072766218445454307221418197210622795266760538844782088797723221670791975496138518233391604759852130204193286186074445885615755631333876496311041469671995240066900361028081721082915131267990250233792139257811732213551959078457607420477257091310218355697946969502875195888181828605701083684115766670077239049673428326951595312164432044487746325610356853086741937651155961248545840479604678242569149918925384964927508107675335614561543672253072386696650681530957963048526163000705733048040851984085968993399398368682043254021178064997249677476140555539278337346721737361956543138784783579275161622252319032577545891336684150579795553119608424653223545147335016765683181735119719021572007573376651609973558986954288572665178346715907220083809454012289077809947241962118249570831893032306834148589731916275838213216510949469778505832919532328439781464263182648765099555373594106140128764338198562215372109493491485476394142401291840986822820600896872064238750717639130588633342926793471983445777323140102028313360679683665978666418832327090090531634591251247417904873576116915362418270137729705397404715803731249803712566082338834899590358697094162570471568752424358061072459852833317586503905182912906767617493143183193771538853944638771225127859783501179450820205237285387058993822841181003472861493262096416340377248877224557433732789971467418470692132436398479402200336775151562434224362896217466743527647443122726672314286191599852662694476628548160386043484347485934921556786728592142865334051721037319493015650075083860808803401970893340763937696345892556787360870591201755084379233381334063844942802368014208641331229576208557173360646521793148830053776769319202410099645959822567427503762295497498109192200633458272270046572939079089998922579605146115259582509749508240123008237220393219359006874473454074992463618471772361576293190637261350002716974737032134281184551529307897679221213799840788192506742553850643459030830229194802231439700933104177134542429767405731322086249822174960030014290913143968631242130135393092925370050771907305385647594146203167810151593647449342345811384872370328669823851980591969007749925194626097444748255413188718604487800798828040935285005892801650664445791705483916007094776133690382872467015331933077464476613517073342144374632883482490041002433994231119996033216457415067973639059738951638797578320322526137976849246739241225339953159790753621764815240428680200098649859913878812656242126980419673171147717487734624775388628321258436511070857551821255591942173426007547440846392807494315689238722202994061593185513494016159163470920631678561143601553133258131180827514499914758607235300858054744243531135082045723905380386939474845527068951017190994907213414610246485919071609082804136584673698977414457776736501055137841682835782658164502891665436161675065788575260356684341628061280845222004395402999687904633863250149025859846473671953673394874114174812785018295992117653043796016262881598944520501227256271052764997046704719409564180246156455814847738354867794560135165906554982396801216899746630878272897762259342097006196600908592213626139129200021645284057116765453317766230892302713358718686237181450121003486491928582910549831067602786443991361254735063901382689758391830094033772607986364816140808703856918904995214066951068880150485092195526486689852847839394079178415388180822222254758756811723717491534207702615007842537569983022928612106984774752931668464327174768789772083359406184108346776298105210431702342860451952837939523628745242793142538215899702348674353243094410348322752901492616755156892954540375075883172836840851637213652465799445020781838982584509796962247809628280486247256492702215821178986843259596330050555999327741311644168458205920189109664962527225525854616523873120480280553481118386101861918168310891151621487677462416949687563182294020200480089146953597085322649643532353208152020152504271274703618593778598029913345729828637095462148687977027150411669574410583906030846701870797819179898391077252341808303584922391607629643087141891324767122698652530346694013520453754748275155435580796379051150866015233001882593996674469769031290761355748110338612745432775152864481364882383646006020896538029909070249683153256396654991370784295380157771019583386709549927165985511153975595136545826465327052132005787834749697439450082796501049560191145372310530047278885731177029520650013285464938773736154292098466885745805286697959071635708181751704218488949043817759205583123509432607497237920688600695018764980191109962775117066633740808745695761631544532739176766827654677242391167627951531179264655171346182218654854210424548243428779835761626878934248110471239343015369246495681709045521622791597244887470807753668526787847529527432512559596484461794867292559702548891884494396033113064921897703641413813720819167102613253033006509687590294529352398558977477299978108641494421664187135659418688920976539042386337543233316230040678334616147365062846695383008656090504980691706983759835703917777731337496559015338575429613087981811767036685880292427335226225495301261191603023706363614459439055764299709890456243620689984499903350795549298248936696113038439859272312323278995598161102829254633636037570136992526730431757914850229834532446742554027662897813305413027545405190336333207944197561351568394102039909878143006133110292839777596211159943909091402055036717691455374389845474166231900666761488751880249797898531690333623060872188395260955471957438529199879169852610664869820317969965660085208998192485378033325349723840282355823037754702345821282208781042021677465468870687832975019080321045076425908923360690624629748484464125359913542997340579076607826780448719931402243171854055858031738040994814373307815862269869680471011573528669501769449726553419708610130283786599315175120733705763901176779602666227189663188046338019799607822068092544157128287365448178374455004358725487029393601899472196872186356799713096405844438350889400507891998203552523490835487493040049306570646010884289106322150758026561727369471319025707796763600342659420593769779410788349568129688878663010107514275006298749766879486299639932661308945791211214684172796893453162500418934607629792784946883572338032482182518743752379844007249421121253476904367654449435328010927927328844397553103684336858007790672768784078266448370921972667127711145572558786875098840716820224910738034231772803850112474409181072744883683111475951251681519882353317945122905011705082601392751196369984414936723405560917532774334168280529317005263665668770741169319466325925503471613205013889561286861866625883883804885690691852264072701327432566633202487275930794611129839214642976758656529913542318482024252247770400808484075330813368660979774624872883412482969737732017385820918927617821366447690751335510492024298803456975265489943612253251615070276689695809144828914469178125074767688589979171322791494945970579317277719646125375125083277499952658337280236526703461088903818363037188904333018893419977563007971386896365854025965265394166212488337487252701192195654556165881928392931732447848587095947716153339965649472502091797524885135468338367656061037019794763497602470191828119701036223045192541629210209534023844964733102548564597208308091884515891551971589473666239068278306225387007752115357922222856540979938668472619755499335407310159225469770633209894376263385782170627831959676921585922009190925047834748969395011755568000884995456630783291542555683858622946563833042118765635986910091422831118896103180256113428537142960568545005772073232495657657515701232946789010252171201963542409330717993724803928839097359800877345059162361354378700186068176591610204834968384214682648423613410826382594922059830684760423316887506667910524262182091737563523408462954100456229153920535500092164861503794739105587800444017137893472044684075098738254020204262877087776709523265634271348655254661623107086134485183142593252749683374550205547976238984452380972487602223669456601540762745758340856002146957309943780535576299979183557943258491264872268806407669351458127810520679566347158290571580102871073042105310903163717039210785267243188519259948798835888497351105239588026326740012445694190880801431978032319028600648019329225512374100389520039414074065025226302980556724959261085404577215020885695246339828068391934931621607644203130283440679171660866212199511738795353361361851615335535902839841645887325235055767136077188148068516736224568329699902204135894233929647606429465734227448699349069878004975416836272313246328200983005818230549759142719127879623731588306947096202223375519510877469165721542450549525241646833453465652831331420157559850964348690267516036461989117603171443370228424546441019518307201852602064036012295340694099966307826720301413327349886866714614898133322606476326076794934079051127559245819830588644100783400239824656067353216261292201164467796825915169149820687878245772359617818287980642204125840875456166909880854488182750257885328379607171850382992618779881772458502635689630722891864136639440056020481972831683993317348068070535509133160187743160603614779185342023779209028794397826667057972887079159726000108951399411901783747125373989295082722759471513243967425637049703058739191780683802617657747262341599902061621444831364423867197943562525916744876887587524684320691132306559538104537548839722188998667222711793886956067432685204082154421363210116373724492019276750903508435802961379783657901615605951181465326669750019689288465635821397533644755334083477287121634628340184584864353332106321073261439102731547102623431631655866806150315352975783738273749657943235046109069641514749832315629343587118692212888627893177376599293574154961814710254668020431426051211632083321351472820635603612687023051909261593381226570708859115888122628576148731976130959926992083970759959589683407872910700844257916544449320349315993252759406449648811145660456775806825183657240524639706675219069817943734425906031437740102373868640263359595195343707284645439720164520193851253724397442966538039035255899326432330792837719167842270626925141111499314733760748157663303048665511513661982937488678348300781308139814361957838383732100003731565595414824417069515663892678128264326007814073876250887304494821961091992815162861033087160762313477769474806188299409071121457687315332333228445352771364518369937718534288199832874185770048104796446421872478668737344423645768767342071076521306501881158099613299729697624383416998932596189296865563764933027780976024820932848978867421109885570814099226636797229527457366831879526360594401737046892054131362685212258801970253210737113002212371644123384851844752185906475889677867200551526778441222833613423723403582530182475538525520726227003643889647885482617150152400876790443745308903978689660772672084602883679090876050039935197569309058203655419100062840279815143265806868712197699092963187489213337589442750495667315756453011536584406591007889526618024626109113762635991525034016923335223428771051439410937180920236928709143596524558382764917768687196571010916597732155646421559248730577299663176123847513387785722909447443777364392882585764811592476725557404043293465076640017074325266197730849494422418058388327757366907304497922664125294074884763445333649614520956968656544452029568816419848044807387123295446516903169022446316492355993610896159444837287651825313792334979163780089900826384054392458648129415884465652147272024718079119855959763794318406914610071337101618044773846188250084984302812901545422953620118503318714871823252165933722915907548569245772211614085363049975410499543412324490045654050413726026210738727006078556809167815943337483593583768647364250464394077546031955227076725371629682224663965444153914738676879515012099405015174796781924299913880100049548749722556766563620043957417599426676177486791427510063467650756583009234268014599149910277760614981841018758376748364352319244280683234451251458219083244577702454808111548614418188931027259122428586374216512341389593124380996936004739497693053591545985198830408644349607001877439951781121711655414267385236296570732450972382588441803870944343545303614716346365267932657713374932283335465238766638458059286204412576898553123774525662437989010605002988566428606182625745249144133457409256836005718853691057184875892017865418084341658293680272095835100026796086817281822221535755545129405225922194384552958534197100240363454001776411820559278869587363040119175006429591633264977616739426375287069014348069606242233495430865241646058474285141923829800518710771319587459510541041443533570122671918545254840057194726398270408091722799135189237815854533658322410147493283554708121937253783109780824596393218386273398266564162382708567993950176334242463904784318239657220494769559801735161534089557846622099051512797294439347492616260440952195459159987963405332814719192789200755420280282293299476538005677539271732629367072054314455891960669018426238495619910688628035932326410699525916398715514353113842368015539057560535002317254077318716781359625889113398114556795480897264962592586806351410541873211383361503879700743609942370329551964222325819902746184455452942275590627871915338073331345324365295823002085652873472759944308691422987655673559991061128242908347786855578832095945440937296216981179130789243401917236702522764784590788874568591337532840113561054975679068326163460709131779461151083181077781349888958339562588501303263054066011175644658730164200559876586872165890341338293620993892978875420927876182714578074291003754666643387697917214884018316305134270510067017930188510363550883138791048390759727345207877433984360929489673900652635368918682891035123228508606696240269058127575179705184456691701192291098304661038633293942021731066231465102315063564538818532094704647439607539083641579646839584556136917122657431012114997332008312545072383717791782491482677653075578981765436548373472290038031230020125083101546423852616315049024948121050840431789808964979899825137022411740998895005552665433191115547090616916106992023575771399672544313766006471358442145378307757625494724549034865994538096765375051431200397694236824109413443874650747871658583350989645760380554806179150492556663449442129124384964465510138390586100443200380081624679868641409086892131955685493264423118769999874797114710240095470120243230468781638768533491568871089704010320302514769910415708875171659032566897874132061711038714696050206191862067951614797099740168702746448582118117353650540685721881578518573899238811367412895371653049612027892513048431904326557389850162008717415980712235780306877057025123992350480029579668763594723613523294332037205572268259341648390950232384593874173936270252338537477717610195215279912278220280494599640895843350271159430401043260471736435022883519275704244607475690660194963212562766742698738796556786757674412846760702056651340378688399896429885811280706401026433044530576400925280390473915058092840144902002977912564495168305074874170418188505886355802153685618152701390790325704563019749448708539793825123355764330260210973502439360964433287905700184663961545758085916918993713467086851448889264934407294446950784221616897400791595564505455527159417019105124260055925615673124304571578224182130298706940032186580587185312151073696651878686138552646443167644411458420672002815232632047370555857866872006471297918251729972896679344080971147360286300601050469831201998087672008432030865711923939824618095275034272185679107751117815720615374185203482535408361117369393286508204113611337007607271937652161965192514474239413422103646863156652934915938812399845932926720134666884532315249957093380362392244955136494937561879970367491020812347665508460582927097549813156021131820067943029126613471070561388971908155152551135249345617788929209391924526015908659545756053812106499496913874364712830529792296710555905111262091379760311425772714839563006419519354435240931498968694535644769206801759748801677481886813167762828080711939658220228467105906512495581230242863267801398836871864229956991109177712592569747408737866235113630223431828165699808815846270919501967308799032386722841964363901251218795085917083607082561856925651792857029378071805054646058210215375413432289024492571542766688913006009912608368116863623647513398157745662111413347494038444112408518801053777205647526019344714273269189146198180352951717261211400978035230975871296654289353447970730741441367255584282653283564968953018283758143908446360054060354859001358660449244433132219946353222693921460756642640563109463394131999606263610386696137817524397256128897640243548374650677373202120541635891196063522022921600162676362976993469162701674168997466349059761342118144803945820791397189140189502645790122485954453435647527164579705545354621625979039471319812176632144341468377349632526505725855356660579764513340339487289824863954512259040946759707772481348771457822035893481350655729679387395259930019568035474265106002732583870275589667708386085028092166905947184541691164422710395602832323079338508474476990770455025337011325470828527234731076399793728850860714485457590664532928716851395301564562849494485869597836568971049187860095873458249876457949020959835614354502399955735535005966628475669845699088942669021742882121379013595520700302113391110204527377892557340546692304840788792649930415638315214872025761247448865878451680990576007234308421279453083270513411031492896895263745256790610738234390266274892082945149694713803449933968405173464414520363514444016285272078002480128539367375747220859740744029512772774689272509517181362872279367343050792779013161322383394178888839006664697789798562843579929770360533915872555689480097593539467485002299539554302568109487134968865687389058856165321401140304307908760370684552892585592635919693100223551811695591708356378466828674901570272835895566265256228091940563892135747074995406767072491476832159631303052750158463679137935665157339625644588838882671675561462938671660834891886829643799815795060685077579104224586865695185906955529999958687473241109723960942752894961055921800717364249411563553745617143386337683324969018443735771831267566463758098714488310069180824803589240938173044748872132050287821032873060761107083277484610086453074586533432170548676338889558871691718842789586441063343685972163812749657025853516013270562612800593244429935470988494912013092371524998189712512407187798466115703817369703449487330404525904040004132687188253472082388544372762471535570745134417376318141995626328351839689240290801716956660159554992041707486552219148243623594916000609031748686769142922584854910434376551878057812174635096324786262468515868107629995694500261936062792779143800394434457149604196752506928213239022204640100535185753591843304498372726679063424999430927369810510249162632878098106032799505910779102862762193900856162590387520491250836615377174803699006387779715642186514874068513968131763717657674290559096610717355214633711483188188376676171748876516431594826198216111961211164975446962597691487837309203308096167816709494769555999617993761971761122967004859255105141094669043012259927515919022356204731095616889039390170623690414585148936237172504911484043949067932659067763575305676139860582646630600971956830498080396678633401045213076748226103604631652706168895395964093573812709239294174907927177990217663885503142707317160550902556018671206048192210685514568822833366353667798406678413692974234401103611624126447759693257776845973043432326716363557377367812272902217735862254215087099248292990896421284406348143795679242263790740228084754737840859806906740230606992526685031707896017291415045808618517449074748135524436960271057256575945782929481352996736154999891466157291484068063759768430220891658721084634093047715977080681622443726158853373142833230743579946363860204310501598102340050336354537445438415371003827338291513549566677507363568797495378214174545872735808806767707888042925533211797593615412010931384728665618073125397103418570508051765793030046754021963555218513281814780054465462473890741013680719983785601295154052095889961242145529765939632486068940759904906034597401673006019491731695800635473161552956806147022425781372864743391648496131763978500549681784162223596826327953705273936451886189991865697613036871431988163278680654447356968519900288415212773679132061033999342720672618078101559508409760344926872796825291266496124098842660632436713966656864794377993221604423450512456445583697392179538102906607536253124326000359920197306918741911092298814084376641993542724098548175242806669297802428670963664011814195868896801663111958034964221564345419550731173451377943207169170256991778884341139159975350574218225599369543084052450061356022133752847694093827012357402743576154486241895636287151576140251695710321018438243223511458891295709756361886935985055694289603158806510293004967607131621565953564828987897444511900161674836063055759969039978728848546633006040079122197243545260201569653430962968065992722113540369659712528727548787099220500031694336792708455998690672492684838473129127202278872992016162836332184089316903886641672969851517154235546731308245036690363136105838044121522800390223704238764355124030186319410351443923913929398078151595302543642685629940466037630311226842260012413906497629967628227538249505379683282269361257432298711531215644807615085744469423279711989659777348572527608170124529539393513911753334552163060752549854874129964190193062908308998165717857063854468888037284467906750291336418379121271662599234638352188195863379515829515182899385870958428741261432708166303647462259013330586875100944879148112645542796736549988992347332587830567465084916644254695290539774160295183145452125557234729264377599917715161853555678847595917091163021870088383645358879885437721311970677446802790786923164784629123418322310014741908258409773935974711235233335677784941161886074816043002843055451369654401126000888735167934705315863973201460740847100219781488681173043439405266930560333941139353378009516364556526990466705501299819697781528512473622929939193487308355114865482641181929989572417908519992845676899555285352972677318682389425967418418286459787643421324750646752539720884846037677898857206260722611568286839492973164927054261014415808931026506333852949093389247935071956814775546798331888484005920121346535844576366202840114650915787063852960465315656393495689525869882457334746740320014380264191576729733908676539956123636746686182057259833282391471423397107472846363321844712995319474403822928463445296454412749760722137472477657299801171880358482021256235911499465731100786107770691774265702482381877872893253172469102722657123138256743956312232432534633225486781489500485275741803894405032150381234652150660332977944485750048088090296666989298383747531299494818451723130022270872844138982534072121055439279222928634958993714915314475665766714315528529216966574712906858774565716363164425816355238941263143751380116746645861316355123961332508476100768431087750188894243622210176052647387902550969708821966994652928626752426455855332738886977265459658787331664112910897269121327787775431307548669125574825972640174231112932564738569159503316602786000519016565214114441855457727444177064039518304999710388228887510761560766975948582134177325395991718640986385763899470760280565866977467668704869758392267247089841477962074490114268905173345330005352258568812484833657513500860625633089685459245944475965694767581692338313597931526976600686010444946325936124656415278355265855024774846053533349004760483868734643052737109201947044188424330849325129617576421421991879581807164436888444699555909550015164113035346007491734407671045690882079663567926702896509245064518544944602943764731732407383626727090263441047036242689653016903197008995174106943554295733322476656322041954740767949841093092490379451303699922517827392669492144935284125824036659716303286633503615253162788919300419354116986336837942060014844459419914888474473072437655568230212414275082396527767577758494242797209285435172546961030109170042689855520397279971991896225512824264478130603574829500535081123071879777589958302132317658325001967763267151247969553574863502845420861320388017456948313002169495577164085217789104940607597143299561161164073427185060061762814375695404369322566430461907303563894283860363482827402376959529615260937041260669951091249561813683531765096343199322910120158771265025197819889032782529056694511618449580088458539114638468847170584089847257636290000818273769478231755248354124837843170045147744813494090771179166414435860553064358861277154381917222073786345277725416769832051404972481954609125316059104811102356152470620518141007755420852020128958485294106056105195261311311913889618676346433894374061296270920682380000935098561026700415641176450497717412428794696465438645543282559384467483552390716837014030011811505903502694952185959819598117637036996567238883117143068262152824184993043749023892474061691326193491359141962644946177192663630696163262099478952444260537220940189943870807451240933034208187318158451011106011946598403119788566350453279213088138938745755764441891773881233153691829655485250658631272425256576893992219206090265334690890442678931635107914827596170865186174282110426059335919372066586681024934182862873628575206780472692855076802440954371937021375083010840994667554251207331117034752674461570241775967360088921108630831643997349119127247801232165655732977351755174936677471275357140396665161543743538841398024645677508734529398971710682475814696803940286560945306333379075833873122944427303021070215271987150833693260236082523027532967350312704928934135607017584674892940990300919489797367142354817850179515772598343383415997565147128075036057796834111598348450840051315177013645161303986740447529227489337818257488799915950901341319375708869720877257071456201055739166263926257169144304723474595078772373924916160683072855635029833560762911601950643921599363682095523192263007626166700114967861144098856687368712601626604058598199476658588750035244423118237585140830057488497380300545696724995503628860548423671734955228353731675488595582748427239384354237938554704605046645241257895025189199223838143930856895530109361376451514552782012484319655000815139814438033359039864926892001280590778576341717641794824127132230214865399513838778744630630045542186874712518514261417120313457075704457567714810460835858238324709176247675604889823798138658966421571789031698728344104552817125630874167058682694941843477082658892759412236008834147364465470236469511758969662306624424788175070633586569002757686026971743372902404155840393744688382476417879837345977189557570666895511971583261249043589689089678407928286873364056105426915400017007291066668030938437386992943764543720676546989056011598613592315236569433804829892423004385180255148469438071797999251475276323360294591583055793561468328802033507474999143223829603941549084623942601144882471990958581511384675413403279090939836177519041795609726126834534864361639681382116249480872527853665386163273041011943125935982790019568807198328574032993308599804811847457466235581110800542556933547729715118235171791316350760373597724550957101355142672312152735504832034937262240554857950683232570206376609834121560702294377063258134047123064546070329712328718631021753943859975424138885321370994218375463506712595262216810141410119116822943691102440847160481466675638650556458979291522791291972816802226186069551590991506672517135914075866146324182848841127670246178577934260821341865566846101591551418504558953887690209287363438109599456396644738435516521814552531454227447212210499162931062775625812653365340974080820137723679548352409636354152994604093750747851067442063134582558474461101041851625135508834412535091385431417116116417815393749260691214280517368029561817940495758958502763189806976167511692759298901028923373978032718209203530033379208172294340387822731611289749726556037385857944499968237455858328163262899046358300820406250667934819149071047656321737794033732907644921086960888190796075183273364289854715207923709066508299037505104945312748357104034998620407866165133945645981892633187372946797788220187671129000386001240796206429252968596868338358580281917037113222552151895987929335415962455112450953703417004620142696771052870288205817448919892118909901817392376944766051217681880116816740834974095961666251357084326511414448268760292140117411019982668800310096121221803231684321015988289914181343762872011005746999588628286321236223046075982503895074352465067178821601958105418974562331388945842018369977776531096992796994621369577160518366547104731640418233612079654962888819507523382722378509630868616364746735555526044541521305316051002504035164744296556686491457321857516731229708683911035238216101389287418334967037144591595366880966950752955654023817568484081594092327351240026788088424843176916710207031021030872609791639158466159404035347483276418550035625907178245875411441341602560988931251141281559588366341208998127521644191331550327078291105116806821210717092040453134557265973757088070709509993821180973831642442357738529174082001829820279922387504248313536046216255850052608287414247341769605997244592242669208667072008077842349173169206284598013728327274768071203220224312903263665018347808390536970914840826256770724710417273950100385206085732964100820645581135628087617166305483049544467045215736174406753981069956016768995062021021301899034873055829702478244619572721382086901054054573814050543201874074001345826255522669971507186855828996162756518873167569675307582424391523777959739908319926708850594145224515407502963981940642989565341934379406488407218320198319737405934684810071736807099361134662931659221039076917916481191082913486470752628995746675683076032273653545443545741673154509746211875409160713549761877141471255243901092734012877332239447471699312526993446618515995104067652406661202820272905007296756104456655402569940458559841969100418971937253687976446773898065118211720122745341778862965832427952626135474083810495579723598944230268290619529712084791508203141874295852961236454082949695189961811257728581535913776394175858919613199170512490977335683697842549561731623311267803986657605184606240988208450631603984968687656005669049392783101142617196002075091064506684010534986053151317915184906715047120109512307422735861056134121917371825621630901227576402519070811572279145920529304157868971999032418961693944462190802718791263147784249522271616597003570558593926166609498915153604195179259056979986988465150559537518153418409449537852995237094954050120182898016085695827007950239471231371860014039970025372426518785785912368153658655140982582972045627289274062333059135279372603799798018116484557400202321680530918762554221167444522664234109049984993881843529890186685990463334186469055441086450227533424224723365804313357456172404701806784058331798694700977572228908805662359523369462472538970081529850988185832464070092142011861012635860375331601614553245391918064722278724178709845098048467525513544421381887824644000200190774736655161381465251754198860885790845608559989993615020737668910781365641221595893532114125877478378156827803013087196494681795235409477291583558174470781846224227531105509296332543676914929421396580714294829181645312384865279862875943451355469132483314538666976719261479281966842644150961853623287344543874011826705886292795237843815672144936940221398935965351305619528122310252969654909486130412140783124772617307034015366383332910141767910793334435284033993722786961389274581690672616658375922056053004957595570766019538241077269084348699644361986575884494155536620546880950184595100497131154658814694875662320190496886004637416620889087145022518844906788892750605930597851335592611239770400605510090000649553627916255660152112065230100064645268456048196069406100374384081835768347351281516533593480851095503605285508809816910145357206001601448978728387765558144254059030460218503856499712176833328311908777484944985453630936830121811926876630903220429251658392473766591959184046037076097656677543138308756085632584120826733138034424559363386793340939211881949934994796467672234891977012340370917708460925363586499450525044872494463565626814797882750392339303220020866998796741920228510623140317588025654167678820939562967105709677128639237732205984842747379445252265085149982346655529004463198065288571891376681096915276485843563332014278425183352579632520692178287003930915424202932072390968412869926051426813841532938352319103434111803996894506573501190930099529474419704033114127451486203062873251605373129528051576845304984452402516403407698029281385108010523897219735808294938360716510440313475960740773445547256750857619925949287649235247425138913676409587996449872946033450104694859409597498711103445076360385438097825543517989421986681252749724312088787756515111707377847433916327440454254864305119059387731041260627803522301260116403442147058260639249518958968616356276868665820228263328275918365541981799931891758590374003491816877413468110303321743231469838397800293268623856394244801681040363078722072359172448592355006712516491727741441756552872048714277259549087285897649557623603947797834379898639911210270908698919681376221788700094751819007458583994060777840487161506090456263864022233231472096364746974483810831726931183319265080360392054399287840348298411457188733449607159425632338942848076286148014292034544666163597217371755954037505350330086561254674669215658687811460030886161084380115858000117805685982470749220514488247707918450176321218783878451469654992174427391585742029607409037519612422762010532658477806140747731972636725776908400080547429264047378857486221943298375234379288363686540120558579198979557454053398240735907357892771894301587518330407456672751923891522922839702910588067925279089305779229456243699057508355359180213603667566930764184206068098966733521420193997556450912230528907081219349977626089873470394678878459372076421269016783093894911764185674401949193750280802459429972202801853493201478092017919660493868614609726586218334145879565619565029689477364479217293191996306665317489535897624699596395767612238998930342768243980878713634057622840350028183775337199537803147344707986101988269257593111685383438187738150619615904350463039771701363431525847289489395678288308685304939499982871622609044188034188356514245354352359445834542358933077982254532164730548266659801337403192438456461914062120163227900243829565189231136167484601150969970390661382089884166915051396844046425355938122887642755383654920980550942005160049521794923583172405170394963122364257772856407724751028219052123133915094989258381342979749060264544021614188814231915882651790910036918128785845953621797783547281826659807088225367884371811333059016369031577138829473078167122097382084064265906546056232791496862660051338732774455634868393877846269283238329894305783846864383338835580628673779771934439840758745001187924239559744001989776171050759121307505584335082860636824386299774498138362536222332975091159157137263591818425568327711019722077447326299447603342225075560310642141487637657978079297420333615157460238328186203318765939654361901461435821409127596278154519623393977384472287361869409921112512285217538057857350242073638093453532838038653606560096484950239853655853165658055946707796586491668028387910842782424554075022781337771744257559914815114450342868916395405203876309691262368747965323287322593551180851614478410810800454879985675397824446818095891691646899417465533955561855389867660885480596542615547795393199355070058645319103455885416327996002818589149730327127155490233467979085472704091337814515899485599783922645832314573572595703859972129944857741286134608747381427124321054428559537847485748095128570093397232995660393425349102605447029151910369508989006665278109748368461285608332981814405607566486649481529953760224626839010854314530030316883839109193309233073965909736981409124299366577064433794101384941154685997539107238358319569066863274205063571135241583343455781409215098487902267621103568459745307959809833199743614792382160509758855144626648208530000884178541370869305995777703997652528765896044035259396073681998419538145962093078541192958722039748906317275271134240024697758489313828751570033502855745411523070479103583823723677023602382334201111987074138746431820774750713751812757682952721070295621734746197242637753474422987467110085537369661346088285130712064203038295503141614963727260417163257328572505614983788602171099778232912880340978103769569805023558056768236192345793020847580136675662004345192660106392507980431582937632583279134361314225211346743447294349514923247799522593928773422096298132843676576224225591615563609031310305545845617623819614155270959974329401675766303186079088494766647416141175303464965762524650871933715303856807000924438610942643358836565560811385072830225030066466180146672841514636205127323167225541305034118256024590178165502748721934342051776413599309815349553820595047561432023190766496984215290529412371243179298375814534793031417552587508676929419406640956240796908657712567897287868722466897536522237042370708156867817355515483577269111079127025318600731635635223667138141080128994932516625644687884256393040678570778247406110620213254757218682204393072634274000623630662199872584726090282025060119334646969087010461960384198520857281589762144551298068044848496998495411511959345932248295750808871975868051594712669030787152243440507892210558396285941366640192276171091274795583612938155081886092914062991813417847821811496106889032601855526086967054885138137999882390137110845756796337263421731997715977897754132081847847804666637996859983247645132543492520859686124397138150105906747547638222028070650456992146918773487520477408643287720614960211103103046387404752744522402905484233985294490091910395921774906666360177766328765340542476289024702273992717233174416368227737302727360105270970105093134549294286634277558830979110326425921938636005158340417381409099437014107313915655402560848544207152326243949224424224533373794577658833074780778230366700904807415506676233598630669870872485696436587444454395589346418957098845259249532756747774949349349677239298646425273247528688140154361343580199143762450288056097356689292136437443798795059837833544718924092987216759513499027562010551100131810409243962653362856583263963837535092936118216692945549248836307462988115379140165356839813857298603947781336010713976892481912787903630856630777008943012127471625080603893591602791843612172098340938202493042718064688749049707562378133922767341677373104422337353495565637378803552451196552399773855124609811167518564355586026705324548667548776313106036085455973000768568031361321838051946423735777433624238096212933941001238136076962180002903524137603759498080707760177535400750042134406785302905515303688413619526080782224737411947331576797244772159132396323901967941253793957612115530212921235289005039655211219629901657347989221969308434906754880669262056347291617182080384176210578842077314284036282298608533116921400757378701501540158986123015596188787758213804679105995957709979625255471763346400573066609452667294932847553672558160708513007007885490529087368912749880816874078807097077338424450932299442610906218655383956677041767278466034548197233428941363825863595298986611672307916641497934556897694855740097773113268349961692993683568963325793457972597603977680820696338982870176185861403166575690676049304494191652518833559602189901684761957133377165194736825561710625330334897408802796642390550171600308985750020954203633192427085261313437086867234893915350973924569062659808368551985655784050062877627781214110854441047142573272979042008342616094676710898865527664156422252652270370119505948197563947876012262419251893862530614663520523844941306237457249356105018226025442115271588741384348502766547996671243656522757636818522764155808068932489497300312180000902334267829179295737472717761968166467345295057379787563148193278177219197185872844383664547126797509301344970879641824323182538603925760316679856451488420490676499343795001567011987010874638984259283498229417836452995503107373006078448115857645487572336256644735098693481209675429354149790611517676100578988428072804436793761119898480679934262743730225458434450797772261418625278443890344710469236541002261098190558018490341297256836172079440086703476735781429379970562021701789486882904330101552642589700534321088731556188580039260902675030010579244131589780109466186038893692658097909027498613013636791444830035545826489621688469534432679216374898514318919015403742910572355675507663006519319185057935907042934385308908411932233140084438044274616248887872176385234946486962753871888703856561216427614813147024561378247134921522330483561997106287867636951009869339873293868263851542982828508307999063292879193185687156046574365613208178190335263139675125303918653826678037103975881931861779902859794556470504705339181105823951837128454817943549064138821484797864930517747599217337279154639866437691628197132081971489480974544804250471562945090984516496975639146772335425085886990773611893533107610001638648796302590167312243956143268643211444281843830867166796800751364066455962269489963967878776183365874262540977637412294636265180956874883488650995765675697644336150463828377199124090681883170921977359555208923884800728262942584824252451162077855183218613669591156487431056025770339844635645153886400313044590819900046931613371247741984398715951851550843212952840744784174289585360591225067954878700078720251418798968342224231589972060975773896889630638166782623999444307481422733813779693228076038171232477342896595464184186073814597555194118280183712937621378937216785629601841030074186446714961532265891726160088782294231721459287577362727552838900793479097565203016680349272551966267074554362248848588289449107708504309120490095303973196607748800845148822881316890895644895094964063856988582332341252040759422657147038662620970098666265522518812167859852882553604340860632754751126912703555931433599022567892535701678615719229767278547703155499025699437865798981677304586108635276599540437676666027158535013993566980647624077170129783587729048782138659427051102020393472327293254640963710146762804418236190245098049469143531756092886558256179458290836177401849584241117246114109476155530875598966913633024523660771395430782882440882353965567892810838226150934004397546087348170512106116847844000008619939174292421516494796483691550811905022528641900277478012291455925590905670854694842777605318356290963123078633180375046160337149874930494112698894807030307136559595812406644285281147201460365314818919711720373242365435733833842347958509824101429197451811825281514117950074593866764013466429774354398730266468032902909244244696216602157356626207387049034956089751650691086860607439577643042582045715872322773007788126224759615729994320018020122156655971680252752058092782089259715839009170491893086167830288784022166238476536188015464733604184230564005125276444000835035868259546876157804533110892861668085829381851241153653592990603976875536643144558158451267281004896734193557532566284708163071221018194784326662253998249428229959772666401382114613370828834443390821059283031794738714565358716343062619913793639426960399505159742778935523983898669505074400939882267022233812911716401273017641001271666546955415820632852927360857359468097266487916175546503409250350666622233516519193784429035378500065743641753227229126452388814394681321824513009658813929047827108658440586562854056749781547962827370582082308076576923036628902916515320524566164986776027603434232792267253667102226620476698595359388831945787708357048318325523184418096485579315997517912499421081046781351620359655591410194165099190222067350317564134453282935962776066486577185936956855638007285439758490869278603171592584195216201911450774813399845679685558133201675078466912206966942293321336261712919326388431543707296526777101725315847168391963243829310784827657284676572925311662291677296905924619735914421390448335694491804736293929975572407236720889886026504613110772526705417485866027212366419220341323763782954685801331842369130573675152924095883443568655729998325559970549636960533487726272109041606631515257707811383308503208800100721867270127589461824841092787233780586388394052422828762876133128449193644639653206837983096246189894224078958784134316287133239610369894583750768384171764447578940100421632418054165493313567369891905093942106636037702320582314348463124092738161895383532608760040200141330125139126760845470772310303620190763770417858946044745547970950373918685905594004687741064192915630095925179793767120582080830080113421301630143570106667550032078413934220173374755866892425542358347751746575391289422454842914467183503858025238217388674488764337160667655966823271126143117321953721977852188141625559127909061370166001057728754471603221835605550436058342365571409916236972819322271660152485711114506192485885405840960005781903114234758874794838534624811473160894952660706186889791166954113901549803842341303348193764914579892949177621720794862044225234638656529959123635988660168980709862029292038962877499783671883946016376449974075019992679923732819740580888231434781766586009628057465143917574921288326704160855576280135487170587918734458734453810264127697337315072243789465201338978888246148785365747800444346040997799244184149486759589792759363535846807963969369758996145105243644144938547689200023837321713845931026222230719886536927014977157664172933312989125126048856988181081045582065559503098040194204387244178809091309378922822187583072540624039478396819714126886995202250525743965565844786559386378333191333408480431342046341679890970982392167884494980789553657394116426894249904713149325819089625028108770534994518512846541178795763138850226137583528259329046680283051300360671000800935457890744666699683388800714149621974738673090670084598090151411320603153522644533862632757422039935085602615569690278337024171694005321379899916746010322171001021262123527412074458956434773916062398138090881961170303953323500135078277637889077418896373783009140877558452563008071716191697227749237932350669822006332493482127019228590472966500156351631926223611867898891171164545322543710677939779425350492735911707491195683325931714110898197368316055929453412086016350089824618695959436050118184878779291318120257246477061938991628531872619583920801511790690730548667989416795716207550259983112611614390209553912967206667793582874013475255904193073821734591936794935722080150132702429978279020486085029266957447278353628449820852615700240844136269301943296759677610711154714139787936711512208474400822422563234813337833277252449932720486841923258302131401243277087964771339700157459075122871702185068616991842046010532054000412770344780131738407707361820502905302459742356591232357763610280458843974950840476899295899435915893366559409400425176162068187370812702739738124739263578645234406198001952148796643314057857326991548501665994871188010596308430501942125432716541358570908585836952634430561156798672472047614789482370956787937076239044949363242204332092713508286948806290174414124146031306155015659778023882966148521796078184552072739915684478255021278265449724199902215840672775788289319262134619254901293818022587154058841058150420408815938108747757458526823392361328999101395175741233972368632821643973300206160177229072814886116123210674926115032115655969086553891717499130423659957163178696109168214141506977712174611571792568551041958762109745436795710342105883188997741630863142686086996012695556304658549839988576723794538638198151510969839500623587506386960632451400024614023992695209622881221442360475502893114289934354333004669185954020824147959853931834072747413154766313175170470569027036359151368032240844498224594614510280731098370922582742838475253818690401998932148064382490963537287325838601305119183940042200649534729309370047790245046341610477242419820841135240768256792015271838988055557458553117567564099776523160629167696507492642068399985945657625486285775760156304925972855818651425775082969109841621683958479197345573554229068032281949677843264145034037466944156780873470332200076774655039891217392340160357702314956088213869061953014854093540167685329063388397355333796925556187902330782597778804943077208986834367622188715385063706001763982518577682855238658340815002459981568450783687388416601609399763092089293036733134980356661614052852083061081604775629694845529423888816523656616610256931398106733707513484708904544876159843136235403188630893601031048142494209616668712329428983522675728676307273842303512768204746162031238047134530442505623913514197299400984804158301697622231022825085384093872380245490957557724961748149147672486557204862184810960350612055433940786640608483766940728312867931737098441420160119572233239260314747556419188711562845042227345104868904672442069103108478577104800546378035623258145602905006007203303197457142073737500949596798612102763231879094331455044790308896593761725504380793304253116156622150411482011090935781287049770294854030242042375439553628855648914547543720598508487080497736792455973220555699536581488648405916834506892489776758709918268352423668454230002711701717298781039682746370454932170999890395639922017226811639284642755116072825215852672788387593236915771105274886445223264482783045029899417264350419126239279838401964068195749820904557273444846748964478580418728553571942755529034829348510503448746552484642122716258834835008818485864890426771602346736240852527382290972520411232985627447957242578667054918978288157597642914898457419729896582161616713863331916624107020283340147984365885307559315224490169054335051797712146734554735167077498745021016080724259716901597724857847034888195829184567565293927134548516016026247784204635878100267429748416992400642213034152022259284152859960355479500038979371920008780527022229272639766255247898799599894222080204451404972096105061145718546850116703277181703684548504445460061188997349269152810633109198330836619575945699505871846933255145650067258938158987074944948078497558631071700590054035586224450474099791932268834605216062834359655022527810294986738327633406867636803478200700405208728599256515511731021356489910812296278116041274157929347406766643545378185968093284149087055488421841325860769724694939930265104552630647770845305179874686776925462655761507515596834330726630699837064641933905267389464430545226829974147288990842137971465058041194244203718535322917309139304677306388185987944929203925197171852773914457417472941292103427475565423624359915631794863926163474767947791904371212685839104693901788170201683132224011838339425034270995972971077732314198393605399994410574795933823478172613130363776099701899878526013435321014967427912823766348226823504752788577598312682652354511049337959627697558393755098722668394468147339285115221084365245094449134617920164914048129190788270442345032039646361689373707553647267741690951531400748366084380697273958569233988322182878854662252043760614020068003688378952510138478542486985837935120641591053091798597630593113557798222172676413250225820228148371125739250722250625158452397421286065897929024191292291861446121681268420406907750069977571957989719702992652163595290413603063197208819807418024067242637746608903398376487570567009666081294987077816646185957028351798502322430333862282858144244607530799952345000089237726053136883306371696124687548416724700640996515157871196486716497092206335907099364289071639363275860003926309453090158025418426241063423792341230558138414006081505024775605832240712318745755419066450730548527877567897953426309451602850341654518897308212991948974054132834404155375639941089636632828380646483612517871230541098559102347597294151238960506175039960861115189016683840391397730608267759180662320448775591767585408905139680741283745612044989721863196553301643048945007315102672817100777614883975203281508836531096088762257812769404699247963669952717140008106839060580403189007364082603241884537805856118381727628816800780621998663050984356360218920541954379162909363521748124647303152886104149208602427473021008355733136428720743404722447556773719878020592350676103923693233772083275706941941912791649939349891129483451520430899614718798822787496451351369105352637182198476921853965987760241330886685195079622619103978401783572925724080115939259630551102456522019158580341634720315763630325724640315620479657584908153169628920441597392417981737250400842341736868236363472218980633411902787180963279584543885709932891257630027702972072217988447614097860308163966433383644766923190393144844209407855559742306878180561970223743394980106606545764449304531634781664023769293247567734543885136124213058820714588270275648797455872544994591306206614019748362415826377387015222384574858871292547556580183294101447703096875143703434943171312209171924011412865752548417313948161816999104753170106825758178609758125081034426672553298528051733830386360228071624982320929685469087729657558249261080925489312203291053565711567271802935416752501185479453298400996626136510855771067234722085760245643821809710515052589151998786468416978796332666722473425869948799573597795508896369483258764125310163136644573331869661385499122198729757207423817993934795325069986524101787580462731145151517586541843014185330812432910995831059860485613852931249019463255763915361838222335506917226136792137125596842496219350562279815239238307433057891594385633285898449844712880781947034258345515716185432140222857621817693850372127741631650874996708325452465520115797578510419598463112778303728793692517842725615948633876045244231921974397669976913770142501301050427230248585462116844394299533695490067451589059232159857392622917516260081041244342444967152587411128387671688981401428326633696526424884952440027384969403420173473427033879483199598410308627237373107087933830441850057846192987846940353318382644217199206712842255659064056535703496214842983236430926842064134746931427696962967487634382071275188733855148387486888188130821867816106007988312111502757058925415725043074557119543739096462884940400492322766003384507598693831047568430596181219248591472159054596702131493623772420857348246616292085962820414267041100676296148701326978629418572699343018502113943104100990617811459224912391509971118266663525147747492586813600781996938411382023743553169365005122740528121268778593692431164583679401092126913087836081163773175256646954017371466701527654501852810076986971527622224931289955306435903105902998891208910419268860728318403297384633337020576675978032927985886949572771778008328213576713663001906153636499824495394342303417908567574070903046375645617496449538144625894661544978676385775170849719862317775139105392794507437637310348106421098844887174652969450221664333271801651783028852563473293003267754181361695951460380882512531695561941009442255199832448405830848903647828907631488225831591888852268597662415328940825286129877339865993412276577742805569451812916979945116521723921445286985089604816684645634417540941490499050416299301858602409627700905754549379158704530132167027878939141273183394598401635234599788478210283771694057099202944043533793028775608628916832768473283124213140065637190641721358926659006147366788226852309757206632292189145433969472644277501230251581135309965915291235339115861626055435420806024615510176527527421003803318583046708098129661516621337884281846868783940695349866871119476683615616514866033385787811154883772582298556822950799871349332357598749065625106466643748156314179898856000400010667198029824487113607691806717050503270827154327340500906849235944486341968832765167551590828615980927374472229954534562231728462318997385032402878656105912413104388935425173190794680065770327333383897200326120569294751289098382600908974712713626831497524257695261533865857048756407056867686170947833927684317066929412759419366388776561404623949480644362445365085630968593621189702375693710576838556836067757905666089484561246858845416851615566465794045879305896995033146009106063213270698720446420149327506739196694208627913632475845218309583301813403373919047826853809872521493289206003176533690659779257577944605262178374115772907496228564379184258912595769377791988184070012897991731974874156514837114077645999570918751037669648551141695092574738705583535714282978436776669832774175574796958656116460216302481253720644865177562393966954944043598353454182743202581298983074784822207256194818592779948669456020062032530596626281357349732394122771220194285390478571188227643400453897229656254507969100955860843418069211425557794438060094986273582837440875608609213023909635594542308419962649673534102574216547690650362875002845980038179471269667099098157928824101675989401570837100668532977765156776753495385759858658686778975475431296810290085848405934862102855190001398837879736671113623178925899664483624576882669569806472743425598617791079188426020889817018642228646765057503774905531102632568760606234399462477910419349930361842773155432510826500242295341836702070114110904777970067782808464904136962931354701069156814889891651852203476375777894249067465945015852751629632828234504891617494832113239595935049992583891817026178922863740679094291982281931320779199323876546622238479202801713743680201488422296542523259162284047557500183391741215434310057348577452181770596094380377964625487040176586523257212232114299233478313984286929527070714162353700873715302196268120538409489222253662862039985102196005887496493911526780550850484022474263386184180686949646381473895116108119721107603364212002892409355241704813017298131295801749473536017008831111823023403921853152064275758136251902912121221148555135437012582090546386410314368779187448270678127133568801763603845611765002729672634284126101514682724655360881681528758600275795881719830809046472703620586445292159122708920133357671189573468096022333953690180508916645677387314403820767799109358252715247338185929650437500383840115201438755957867519379216167170718753911279560299071098597180047512737736906868823401051475953537903931280691800774922294888251231427782216698391715810994792070041803336277512528173420703350434837376208807615687653416157374131664348042507759202931614429553464842161983300267172736555503071360453447686419857145422226684791443219133228213936252935728703683438532090796420682604365031136920362577987881447376799310180319635947597504665752132144151893347010152676961012219169687061935790813729088996954262818848427881866021104553754801305791294368679576068113818647012863912293456233065391342710344593990853367261201382542297326834362660658319053184370008103135941099231253799406337479937302974345571735682195718813325146778114815097297890902563829758578796912395076745326543958889215055894097954337113925451134569696182249501727342817798382332106019381001965849322752079169909893650802329290603841197257062819087901894510392834712868989419636875076654215842344557349445296248227106607927873513849689130670545883830268853125458795876616893325920964983223677769332834954548683657995130476423158370033607990650499891523736321279863107471060376992473409953657542744668145380381984491299328813517708371440451670763617136802482137394029514872296383574472062799793035869100653856711664650498925817888022550283831767556377494601214393102001642753222781893932670311163740205888634442297453752890066433737821934356763882810310925985535386664947691832468740808068884317079274053317809489541027275645294717750886824242375447665616514744368987715515385165778251100773760251652138200885067455784962226272059043791359464810276878464396843770990973471947452396032577621986988565071922986367278159848492062114877814462197417712736624823540397721923818043915011029060539423006883180107698341346549477020415650243584288224678755319528793351737795115283432769843918448939552159482068495501977675929997168859656933906452856265182438049317256916631725310475046766625771174131483051531161699027864886675595442489022097139350181120294972110765257154148221366800500695490785327576875971097845386694895459808091000474628852261606028615279582399109589890775992881835381304933886477141441194039597387145976410219847368591923268993466367914999487406543385864289077252646269300360660459234492661419314770251962006868308081497380152489164571123512774584958951243305617407803119467507450973292973146948275349982270135872687851040489466246496012848346833072788909489723749845906308596269215056714062514803983374189917481675955495900339843480363051360181018494140809932602906525059002356856680257000901566386387410358008552493174367277018095251804786824521843246713220968946508459920597683324157385083781326190619630143847476064004273056510759252094374027473890149576045521426436308652728458955912265616506315191086647573524150097166472394601508443368330784873536907415669680766674793899123093858709459542719665498693545407244917311079129565098451823000640119529646851741210593351424725211798859151807086672865470197309057773946399723832174237903651644603330307005713226168989794463326819699056762821275309452497535547853566794170331044856027625134628055231852751285519729075326515259622118418681527779799822119066520757632532783005158597510278586428094845963804880005250415644895807718353299283426510424485451591514923669652270763250374559556856649932762075689431422009882924180008438731695593399187969260914374634829087491831201933256282912711839178092864310574271251646168053249021029117776794370384830224257504489514359168395400164977500435319347310226200628233783920117076387923143583125026962701719800943725559971025757876835634739617701187635430103949979322938266813074458736426259482710287934222386728629100789244023470821253908727475667915560685478371395325507387780280778736413864555088322909485318677790756411363088376681792693900298772722798101030458201726878923404618305760256080051650907339384377449125847118006994546068651615270109589634402371639549962397659094091006412634860598008639787537635027188324145610888734236669431157348095211722024710079394624652576922498967045311250139759839624243412931423764479309448058322874774402345560653647201898618884539345501592416564964339112754607877012291619877825979238511457054264975587933376610653360338712514536059935799058569106091345102627688769137274653454685367037868426775684338279857763589732331340186432786636884796498285968252126085522150729974925482788229192130224882233218651082749519526284695428714636286168519626322071239349524775741961647456118936396501184748480165941340961508951075168577645676736005705118671926311301195888535729631096352779473097699482834642112909564241880232120415227417951255264078412486555986987311156719780517054804395246424052893405010499812591103524318479424992324949504494348981669515790740981150263042436038976613859754677115134644562947574485334716492186815741646969745018357308642989303784512657703074685116358054653626433081821480589433806402580168808847165594689874027794965972479893619391500609577637595474847200120964374509395828317719579621333432492917673828516132613178020491081637657534606032683679270399392887220483181927024129950729499463280844002790328711976710275761672441479583169681144319488826256425981736626894057644271143010164953562455886790400090510115471755358885568565447577237357260634025975862199929521373654641715978515276033358647160652543676483191279939028720484222554848108492749411610720313617686310757170921339370690601120932825239075943508270791963561599042255008262220185628671536614965504719449904051895254907281649399586153818705073490132339340706369861885841777010693182143336316249564021780961313795329545879393994252796346950394673565093846768759424229645086888831151193317011722649258694724411552824723708156815596008417925619536262550676045257977643659399403241848815273802260115247030930413922548014354944938630370575479409199609599418315676536108328507370695852246036035848629476937444707511075633724114468641553350858182496565372175038651491812377939439018380975394806207493691615024534018487670610632906034607725997780039382146008052571640081006738470490386083271684675113175951984319323554235441999346505186995826058673818012223218213834785418305191281581996213841241597684137518873803292955023086133127708105081987661503057906615790234209329588506787570993876500656051723078045048468303440805418077014710509325564824952946791769347365088893960181031139348557656185296795971131946303998953424022059483262819889159289337502169691916112330140617984349810138046482969405371457271559713685692477162984462337356218021671097781632222416453716891401627937137138097321445444287115347117991388720625612755809938446458727128263336064117839083013033657668187134340611299635922944512393687134920168352580224312694018059487016273676728087154994062893028344050845633775860128435868222559096360894487910691171105359982195697643202371440454614384696563483624825350526249737429339508236167501615840609630298637704346016264552899584134222979543540734716733585296722152165606326201232939253052456577547332413166754502483285279768322222611612653192537997410457011058664180440136028545263830768842163092928059349649768708162903554620240717969578124645588768232028699317726817731093731772349775312093874962666096009412880887543186340787489003124831265371844387443429337153660654245290748748285102380726934571016507215593919674721473123804585878078360675729526626543525136633064051316688828769673523117982644731343122537317331644145561835265367413720984422065094521603774449396280137103504705560738908312040504726589424801001573061124080601405546611087636992608107186264367348001200782739856435142246426897875561879230117964875054254784834341850046965067467823277608448574091264365274477805888121437431494365786301476397180541790739367392904256151652703335984746612037061574279522021622203864016838306365454692689574504025878914632714233763279310929053322489686346518292072443452718591331979075200366072994058498006644992263697566386782931572670718198524672128761261603288263663352451988110128350393554567686246243786875106700430274879291998644719526110357699959346395263412534048683049884825352132879658806379013610418545058790520680715432223590355446806281394347630662397767340420950583519642209956820103597290921645696951058333471472741471311368005025388898955358102532697364310888167157312060230415685165809469545892134600783563032499632352444336815746504436048972718870891057072364791396337621331347449113187476019484257819726845720210449351660054414852942587337316896491186242746180079864746699508745798572994018528909726064446739900111942127376077756515499895577991318604639336795518907463254350303810943574424829209245356334023334137755115203853574173243236947961345005451900508844612078531684504248584379272034208443548402509925847068697853319275803190779303708446278497989546568430254573722025926934561689748682806367810546893653797406965700025011898075429902616534953599374110722842585754441924591853225250659640713805414449193094137944345508152038408609360713668083143943352305990784919937667915030689675163865391456724091641888465696684320733118736409940644854976468829584890121992298078495456994698200430628979507831379229806442819048348890160892211687162711724603444843902136589775922174394397030112322408258085759013393766259332979090088248935273701539433629614837745253308756990277690719632619831132823101516139383167621687434225815457539943439008737131394412147934261943881997888913427790101616946826752062540460394242505671129781395687280133969269616133903626095443657288518734265539321952460973727400237484770009952717109876814651425899200818251271131045659220712394832775168027327809789124327308236273077433134435660711391397136371017543862989468093371635351461429727847467164537595029699742363553801064763066714060866818409740139594784671479734660919120097204510537697822295179202563997790595536623186440042915625574402844727264209895326270359829183744493943142273548651145417887759330013701181234190065082466221361993550261989608438613446576824160429968043401939679135645854253422108108944065612923219050377492567767367848783295399294944490587085335965571661384059423452554137408669112925341324541706530755250292557973770346706970099746329162463777852618685740709626277618416103297533903215891947089923917851752707970514105903764238730713121718211016624033722414450953191212012381534114423467931260355840775772737923450481680168227458295713738063175860998844666952229324879387332248970012152282470362318544998148558460774371879653472078064880647729408210645712455164760240818736425260572964844052457345963074415027310016659338057787462977548482291242446409124315760017398334330822644659425741517540882575741192471314642320288588843275944330260808276076281920732189211900978929092199367437967466993895085274216371499455322304895296562939706253389676059674581556621037993324735798564803715119499269079858708849814375191565314358842486690117719522363308162748096027413758737193313504720201890111520507552083826192063914139882432439022531405523097362712418743381719706849361466753115798471205475442820295373023415345657408165186245113511327457073072092521071205682750228017050605775959375473936787175041133973245956519090414887297965613245787093108005252232137817821466596329069761670674166932116588897154429760682735414553939031445765346162847879398900565482394206564931736365475300717374650304725785713383323612464992702505527544656072913627872291636808010592064951125613808124725951493226805479010086435429617094421040802053145909667455631076178614653099652340600143647473620553901384862656247605893892552005880279600224395307299560552344850540636439799630477838511839694115400283145420246677850692363227455359487044323888223656644631540619320839194036114832849078108568660494980524696777193449303696742284112058010898016816352987020115764515631005209112978429206912471728004248001307538470396632308056536686503867843656326160485644584966449190006948302056209598601484416033878415031218933102590950901480375531407124342789818149766835858476862053543159519772879894061036341362109676086755488291630866280729012547957279311030013258300239270747909944058531078259998101524965549795984057359297708583247461801077281292625569534590182724584741046802377176201073842391871352188224710075897245523435958953728975710720485353363751086396907212944748824354967312669402896287661325683896532973462683175040340666246616449371529016422798328242239437552949110956567290955889114243357710260896549582393539472986611863894193425782313501881250748699068733482395201695082061923536876058549480960607478514837090656481160216676202679126015374373168844624559191207709617490874733520948933892905269236671314584061293007178213468638201052879703071295134483204709323121574823691262414163222889003331810657808479134020539697612385846669682217195286993773391738999431771791308613512317609073291054147264385515072011135385537112123863861900171952831626416710869688018285758588583084807050173290940363634148604005020024658386060833715120335159141921483293145482054779018727307680190043374689649202410148741359788845085665108220274269952191049517448962587666365291062875997498463199388994070983117155355285580116015166177305716957800471970320638859053061921006512644693921437472721466411632261315971741338834552035943196494222088514290102078492051800094049320394609812180043840022420102122331448077871196372623468356346620060113013285930197064265449716905482838603156742306802259735888252287967388286500827610373269257079166220827258321391087564748987357031116394392069247201201507053434518452223910880026731957703083703070538762457642048888611058913298966246978625203649868130501267604973805153153192808736952919993391679204216651398606451639022460133711165131275253150705326639747250817771561617328460670749923349163266640295744855570134176557552965459108002688481539245851523211051063759016916017739347894429144247634324425594896782410673189799355322659479801041082364829877721480710583087413912617221433659566685293057195832923008720751548785369648029145826227572097582171518925078316187675230018875035835944123391017198872529373091184042940409128073546000741850577041351719725683865080949297779937723721617313239386673847123276404466376059008279233828869902687070410201423322081813946895529894419994227080773025169027610385716811856315959532481471343866927496386883505109914467824439574021478803346953972091675068704749485947410112999873422528145161390078345040549230039819108240379389245116654550740016036298994425407526220200140698901203245078453170516677552546973178226032263653666036248874348317382687635539344035537830800639609967405987818314832382924213605351650538499671017627199601810403377413620670975668313404440988869468640078646679277695572678420130871537616740172191139464190814975533520030607680858111497302904367485883491284921223830265706956086632011318955717653491388350700158034087653465014626428140893790548611431936113535967466950733864394954024126683058126240032057956372931006998194994183445961604372375741469224042970031720674654614360196939848248704100834621560082248556073163137792506025254264116345372809782398567662118125364648309877323607990881872240578092828648764223366934209076223877304349768615256052438318735310167221752319954840612841203222699896425686975959410624298727327604439476671357475597169621403910038542610047256050408291237505656610757280845292084174803709272607118492691704262476955421202465052326956758230379192914748823480054486435492869311429690380166474673117621447036794343847177181605610377393294076546617735857017577370705928746620163785722484921391111945688084802508980525337861805207973419311466998788061756554844041208810742776510492834150070662707362415795297513143289406803772258509789638852388425118918150805411757333835472846896814018972909069809935634968963500202988942068773198690665633138623886654425556171284379059596148642902876630329467196563911550149393937736978857583210567336065474295970426681411823143235678102155245163107365859774148148799811235819114090578186224832153553511000074961645840229069825955818244992030482258184070451371672470943587408982882559091297226678055583955597333349637280359919852132674360180621055912628166296841674434090069799475246793193640535052363710978188212494790163004710809857051366190647416305219351037567101598765464156859057571868034039344706831869054056192966233898341776103104401974115571303902870820786848548851323123051383087106600948781259348001162996635216385576615747253738666037623560573518483624627319954997580156869069862675390182932685429648016043429758579789046589780650880035833677325512442092603209836638936827725939390087453705051648043988509077248027294858035679091646294998711614294535872191922506748726030591329074666730281194042690427192800240967786488077875839255122761085828811300168337180238043289434863923235120348743004678429228246191597821583091344513545628205512033692230394140821855476311440336698265890190091441473176872194657178458140335364350257582147530397146876732089202194674887158831713346263163399361435280845862655412273565863477404368994532390958372017981901063747662257033236308536117567001250936457915048702312977092799866438125901858909398782237907603013485738688667377920515613869354406617696615114628946290463667393801615646170287614491384984112034054045281321622462541337902005290848067336036231692132134031338844736543240146895544699948346507081370721062099750908742885945310751192600846268135674776927566694853271718339078374741523602714757247653371315973884298550719533416771966698197713232246682819713383950255451465270154177878845107049487259131392701781823353204547171921829853936765499469886464356506202660298007707231728211548196301393956154297175264096696534842206766439502728218891639195677731315694751936596130377975440877691289608156007609377360215353917791652778432232757082659816407007886601674187563289252439884903215989003249419031085225672784870672376658431930382363004867832235507481510419147050994884978060454907532039642976120809594583280434646812241468868111517626183888358178296059106716980928764154780970350636036362046336954018050925955268584325706066920244289683033952085586625324338358874708500627501355336861552333454114999976494951352552847671523990956258023643320059321972207109278242368742714192705719789860113881690463126257274925151176692045307227480009204696045928437236462438948387342921413465236920808449780148483279326186461008747811675969163684849494381493040987654907706151621419678698011123744333560672262471813711120945702212303017280115614605368621353411463049723491569120431044943583548772668390418309237149806589619295024020660481341539154075447364509507059281098963983729033582422296904675556803702443971295970617731257733903405720809066848425044295149836890013708976900583178608097123983376857393788679630706077480967799886087880834208176570311348583827274089761290905227142702181855338041443885747109329763775368600854198851726409663483012237589356015642481908238881821683977058993963016713101336070797498986710410035100148463824498476396427164091779351994720596013326299294139248887898327573565092497906257431406934830017187680951054052375029541128185391700037033428113085608500970526855777020662348422849653418851417739476756753188949307613116213815769090881645823724190304157249478523763849044260265958382048048303476948717688117522569197847628698336709527092603195791706957102578207443815087773167539347823524188018303240348607311213440403605161981408307456004492963977488261273794713697817403164626174770213047468541075768116378366910144210801225502307497852552036685774605245618389972983012399892094317498291206461510966721216289271496844133383116834445262592153098785006980878586202104791762127307869293825519640553052306192256745107382599661484611459965193729422400468479925530181468503369209456016259682928111672896155161270224500692555528826260446177167336737641205787613420077719405752665627478360633180999618219675897814913170824660350574382792459864120276459961371545843786237700380524524106070203928052431522250247612584196856180089403751879217669198907303292785708475224896938856947530802617307154662499595400796045345570191605220712641342740875341094778563206160091603885790130037950532372213969470888907898488835573560126670579122698053191240724464188211253651494343228650856841050377277245234217589499622526355390201991406682286825478492476675343279584661373553678850987743911612318363907175142871352984940851427053881016145583460991647678561295217393619079858809579907476824376588340818635385367834680175555297237260445988118990628867444602907710436646590226156922100597220522416356975661276351537516815230337241246482625264737972688475439401651220884521097688029380763522215920395133813108890343673498767129466057200702448729662341633629017688657214238166816757232023719971340070820596701917929708493656521787693265767028002822050358620371073710884065164308990048392013129193531735843619327228166567662121980987891760158053122777428190666911271357860526445672682033443834770132706653040655864121031003488185832745910035689025036484291243750169753300564424406352745884891552628923220860219726531314783311240317887804845874869433764699878207768310143199440019335521675695397643917693592127491470281259342463602584083570242057720992004681506908988811037648133275843143877261625191849067157034948531665798882947373590413320433268513293536855691135265924910789284380122999320921011737996103188679975066053964855673860389665018312131658305786664762668902472485446329335476905466981296490347879711430152128838436885576510374446066253368023908347828051469971574727270170396538507533543190265388268023718101427156777042389245761203179596807769526425135337884363422095542789762306100523231766441667457287825354519979690383986066804984236862574443371021640626774448933914874338743580224327870996361559216178651423875021567664184360838864749636137006019814134770440313503948463178253089106936020030835360943295320496105553211986351469521277991637728821430353739971590421391375467238925984588166441779292185334404193881162149153129201657695595003672719224590692675890653472465378204488952806764996253984465278602486232960242586725782068405946659477134961410069503784005831324389651327387620400873365820372760779553349287383916274345158793239731035348092106295832010681366500604312544232816923412081528893040245368532596440292762690016670557908808407252393613629146746108494115033906622287895979713489572451631720556812921448420635679002723780284549755573642253066978860733508399006607381408344068667490317054091174181896395004664938754064871653335702343291880476906653747818628500231219990810353057347837308933325917769082801886089956028832974978927132660246089109878634059575580561677440239764838041874313695908231984088985094392895157217691255038304675241218249616695604795380883592103183227177287985304640683103298515867856602785101777251809183493882742526769186655789900070650723550320812730005133438105174095438350792136312599665521433327219240136954388500251694691675587320372148800340706993662357890661358892402087049370514887947104456839263803938940975651517246993722123476414662715081697337145248205920039536289365817173349930079101861497218169167822182714432647067439319971533198476143787325207974736978088301835534873915886461557787556482203520996266130850778265192028863363784506345192730331198973395758463198500952964934322833509041409214197238171500219897349828111978564912995557998438221209945672918610304846233516028216519852980533436095133510902547235435130105101974793359763759782004431946514227979860494377100738200030748525527521616634470117260876038477227022652459724235993267643921001256177241262808721160555297831371018514506496164294779631277002677442023156797746983280478187851186817164397851454529430718500200179065241718917367271105866011085187293536124348716298421570494328780515212125172289072886325738980574127605769860619292052272395130058868200672690598220036094712821692107499205069584865378310139043985731836098241184785993972675397983137200716073288477951164666792279044723586583493267355209414208023404846593438951454643507646167325261825930973608818887971745455691854317222263234589449857793764376532183989696924023237630911730293542474574190787151997121124650248428198535447570235256239439497670913350679228700483395673032497468246706756705107872957464719875505860920398384631068934761871335219250023647087002084929153024600460250280039733893060484512181640974092333954854692639703014787602370792054053762314445000500413381575497648402345789540610771101282086669301904978732189550562607789088429610069479110248763546583619443816491066312795362105934557556767078907466482733890944770955199679651738284303043706439371801830809451454212508486684887512490897345089194379891483722328295647206678107612608755837691683579700279351312945772142319243978650024528229778693372398619103601168779921440106154704022146932072031961510876851093607146425763793320029334032161223051526253886153991021220396184059803911765062723652715079797251936421923800530933334390294839267881179349504359386893819011390468372442854072501086187948440994854706944351631869393428012978604144834482641566558693489453124135805908217466679167378847451049152856531569560641516379083104904465140850419785113374188966157507736000327054901691594687249738486447857898284562394266030796118704476195325065059712377413187964220126703592256849105915139254660840042876619455547597322733451496388666736689913000689140024001972939867882444390442154401796595821135039994477658270069428037778576505893305892030141774274151772822983963014509622907402379263284924197429527964888461030182266209613012690650885005902203423157963118611069622034919117281060581987880524081115046313922535561336717782260316877471147791758631186239444514395918554112930429162662713054491052122244072572452181939638631066653891764045443696414905754058338586400168653995941941208016018552408609890674796706111580052678011738543613528591114710235385543572485562318328516445386549149743154045895152826492318597974734885857161856251662190050081770978981204650070081360044525147061672775897061994564101227068528728557372874091066139513592569977256797984237025208197217916663317905421795494732463643775505758232858733026987616778067608940608849963416227195821011031545166893687841609224275044367872489903639066877313733035341006932127812776751410620111580324217776352246555034698684649301110662181495099113528667052861368214626996935899702659560889947893823074169885731837508980265352022639732032225009750246149018410714098518418985104401552154845271282880931589404252623014484902943245319021235115912140331886831964448984909023913749012043352678967214661174858210933025471228948938049854471156051096838407819688401594758188781270922351480116485684980134647257655759914417221322398528472269967982500866954837998903368552157503370597306765075624692012027886924945193161320477612765028416618389187059398404153637960024153195181510019177381883859523073986848850225445107256940227938293444629826306659539721592973545874793612280100633049470121321156971012350294101218110745097009307059487416015142495788289120864133082802463365390945330841899373927762440496583196898106379002209879684447469360379169015859121290622160113836427703982932131621763696107448614321083401996554702191503314640868619857272744508493617771060745331945853281459580548532887030072224250770721223718280674207890567120090017374753363641843396960138545820915328958428720628414140791488945814324238369248193620340488010395143977361934415104829642665624601433979438529007098331128067786848154028696571710575713840965786783236708200640791429584618758505860626093159607866798351274585040987944965877249701392875865350471723715250574458168539303009114422277383070565736346402889650506373788734235251597023576521012836820795989403532642135417366044006073434501515145561050854125407453910960792666612844656107954393577353175045076670081363524935756975929487074278858172686884630399048857152651376150199721869046301332984034472523037479081488312010531949787449652404576353574330761174882642416216792254803727366152719198445573504317978183411008280687068823641807915692221955027012859387256230563483463966854272485212720595017060988677118943728495184673068111514216873859849200092158947154312782573273034393981024915884062830403810959550203132945290194556145386444593518826322865534297218115627245126079174051867932804231917832718262239766576099488462822478757892148593570712931069303180466141067494024710258322410930042876342408005398670081947120688421763984600816982597680322444791558931735089547550167294859234472849855087018226867942286355080762636322370730362261059280696328628617980858187935189716338631088555167400720888013243475685228385064632660148331933705537105062178052707908986099614635109908016428437837533613857685619985298365767464876967338809911808465712341453515156113193586757055198688238158253902143715795153988530691383271034435933437463082709233815976068633211231764309802626266231189372316375119993079975486587459629883480138355136784056851909927015926041863009881291248449925753031213249730201500845198962865019777674646267259152338134257779492342444871478747293301578534514764187052397027714462790784875162824864341074204133043690977086549158843272344189076517024884096541137779442307603820122794380547596460884506871502691813087115988382216863065712431541629087941264436163127882021808078504133360274192016008193752963907812648010360075810644513352515513180301120969750914816797653065000938887277635256675141524484944236028624033088029765968600453756799137454381859314592366893829023330545573738850690380175459757432245015697699740225052186805198034389833486607745235487602096219107287556421653229288405524395017927191475395510513226676309497970024944657921791198691965955597419033034588457470548666880672492133497260904984701397349521421148366417517598368890108025868300383398673021505220435177543612676103988753292375421812482007438517039197123342338222514937699779846823919105422166963587056381054408013436507481596379931752150567679629968569943463435410526532550310070332666248336801892201321093632381803818070557209038150518868674551230897543913833429412358185697808388256316625485386946948227607152539651009827492189524162284108342263105489836208071377935542694727262845539801844544049883802126911220771846252979264041040500538690188279752211519653349053965008748996286564425057076191515131264629946831849478286730279199050693778844976260600552580194114200253035798553373084685859366849321735048573648690042459023624506435667878061772596712339648786312024003149004485322149607555565198378926265577368509267989304469212756888135715205203908938594157286792377780322960220877646280852321341002999834906993160407823977588404900682049953443727435740974698858818927388790964827072859896125924344285612616909417121435166342152475554404128200488687529453069175694531509291597453384229483328586346151218531255450541483106037576539617847333483479752483840535645297218183072842315726919284242588119848523344508924029927013339648480254070153792069673738002185082155496631963759300811624254202582348650841864081558262315004975418548518242490963547427152052175591561009752797109954626345650447381473779479280875057043367304880636971969490373111868324888956443853433854182894371462931915788294096232342087934031572160813795732465804333933272982329762152723090134391047959500747319410287356228630463827129498556061066896920951695543466216222552189228876906082416753551923776025779800100649202962174943245935053685726817839275163672910524259523971895879718461634401159857115091940902513896127017790979443409349883998474672606735227728704836495687520659015730974394375752335188755917125334592053324384885631037693120770127966578780305379846730991501335053056733717668498413862560696906003892453376520364585752171616434998645559324386584345485974128999095814919692613927394723686811592399165024286488242067516537512707585805476032560861560561838904701370961199291074935251230506621364879312688028508843818651580812489502628170670020768823270180341949572904019155475732473761740668558174763487672651007828284915970632860715213360072861137507433853082913925739900199515645205970397370975188481250507046591848526344233518536378473181697705099518152699014078324874544603183355701614545537247669317362881972037943758795256411465898020354652350266089357304881292850769105817264687492214330075837498352726687722173594396032277136717275592032785685596525410157613533976621961223954894962948895491994243311351521598989777270493620272334606241850542579025976216665017524298959872487511321581761595906651639069001365172932521232419478437070868865672565652566700117286324342897464457259577570943175454777643319049949116091033647263011909548831699797541307957407452486203785587006687037946918767495021495859462652265483936544141176035806305959173367359623779238221344397784208447534239573302403441411172805365078394931314574098557289319575787565663516661135169601707220974947772062858648114906956178219913762334035587307968921745046898301514992692978066013885512501664356399815189709020968435345324375054760340974943958079284775982976857181823887517107913587522749151123185408921103170825343229295173269593264890259842787424815237157106480497503250047440043044492288159433022331062420232821355633790077072497483980659302713823860095999810214032807719077623505843288014850247963032718898812514732803563690849984337558301050015705572510686974615076621996261533407143984533114536961685075927829450515688042381443792308196994170549185615829336833975534651602818568433841592704701045895685218997687694281389317703125699934377044649993732322903301377010562128927304392734614596513370629361933017736910231883392826601557530478520694473175877907111884892489000687198546766451090901681694627131347142017173246132459894380240580936529470213954306777118168293411728624481344784169926801517970181457195201075298297275039451110676208731420216274581966358094880144972777538521314482741064978150121529200389161629780864764693195108174419399371972729389634151596846278180959010428104975987874334174546829863109377790030613293801405653462166363800444843571369733960480043023358482947450788365222695232842093403153039350465605594141735111380774211284205820898327105130075117734744676474500241601653541194691138094630943363736185756451788943903561451996697079204177186858704420834403035937684833003938450470450447537960376003655666674322324980944228069940459026618123483614037640053332399146261589034118445882833752195140875974553531602715436728022199963904070987970705991194695269455999998053907483615431463415283065233731270514240795725381561734700107031183679190523450164249783854634203708845380180151825647469741782521816987942318440503358226536315262276077988232988825478348946751914583202764014561311891514939010000668660055717125061782755428583924358619473214690799224710858906715199773779675045122878412686452289313118592776227638851094394905388364279272293284217880240854141538823075510855391266531309933813626628902856151265740717844769188237783027603072949687708191362707407281987593260726202800760591625500525103820696067528531159615712807562780503929531097683358188720136472295293964591785005444682166534182976223631900733112897947802237271212656201533538282018692214915972039538425560002590420125764212601837552740150790817218418560358151567636841436004194657768264855948480513908888499141213877767591923691756803195620231838092527966124627655884757397052909177418394568980723440437029941750306742552267209933340415721535184536098890027046494072899989661122404414755683212756208701139225317548109969877263142782466115763724127405004417192536348064462856583643690660673008867756181121083983631471211942746755732227953656188400277653112390775581436236080347929054293079120984232674288123763288437463938430038195983931771956494649320342717323374598285217079452848862753160809622321838344153733481873154257113419717783442535734684456818866238432426991224899220422446559528179903717104672714918068609610807895473797609113840552262443780646230112822808114959553320373675944331647755270996434769346273495384194026177700093373851814157781663580389241567673349531283419844134451419029895201410179903191154122882964469441709666948922266493061571862181085222633665907970933002342565092991215133969163000685331874899602496748625741308077736197306015067854229673492956038406242672756429663363199440135993354096619376308780011407583649666710209199788838116596052309038004190767051256207474275399587012781405860435441222195173606482438529133595453978218796375897055332369188104606808501623907567796288961236321613951221274467448197540605817134624131823613808985414851447630436829336716089036676801405407325028576349733992412194351713810537918697012562836403986094282218712861881424311853964068027900687301303855749063227451052350504869953120720399480241304929342793122340596077782588015643421475403993728937661038320250293382085284368695292677455895524095468087609090024558239478162692352861178582463086376090506672342737682396863271703073523456052887585762325670521457806855436360490767612412051533794827638802228175462568909811171519951123874672204860786439716784669794925135855973613443854546776200859053760924519252213806582222405137566454066283054754543916877581835655789312966477447827286200593374004464947667498946648864386595157662020731067729239071321099637590429309561254268065042214767185623861882127448033673791285686117314328581132508599466080087863219050463520327523897157344613151614321493630396667928279520245558644553240197447934944871437613163581539268166920201869848838859218090062128658681003907996645545188175596614472313258063713218624740947314338861154681822678247044942053470335268324920880699564943711061294658485946681164187533621641767894146766490014107569087248799116946668652590245153626261155963782506329964764198476299813058653020544324769078421972257407444988912279666598532772806764673596552946938768100104865217553864198583674552885203461408208909588045487640294956341275446840275425912260952418628072127871329654818636549112190801972186697229640997620474576794039738369350411889927627410261036812058324315480356410964860980652740957164670338104567483434601679727073208606934553900454301031161746016875280680286222369395641402072968575955480710095235980592547427222328353815864734279520969551192787198349592987006229354972587007747247248977277482201816549362243907291991557734269668591296194671703070856084072791660190198582359688997003976809520592172385529967274261557715014601463748015462332046615665468126659309032628724288450273917717659528957477125416836536647301291222340888596103124594940214811918505429338153591386465765358789540831974198476601748690873178324500450691494645820427917230530161413416308605435557609849769629148726524830512796083872989864707656741310887740071910201337001406996277125641204732579661597739790542879176446284910100115865647070174001174106001072417937377072317649477507416400399779889416798410331747698846753821194281253624588417272752381238612832544582198784835641999978286817751135969755139006038182150143638747392675512808758356341696693221790545650589034216002400038103181631587895008293292585218595974820515109967786666697290228430793117634544702662491776413656727203815039675053420348439559023993178945660425418844489222949114930310374270845144754648410172832213369188225122606628674599725470798641177363432125610950430312111181211387606318633144384638438542060154067111881625489399563207488615640088500027367880365222112943625872152828363300744959894151500196342187836561906100832790904001787333999860657293030151067807917602998352268492374740772306334554557770996142813550884989155158030892391105486966834851537690478047219537830812633914784869629476226913537804245250749529796068801298043741908009933461856406119919065319258434576212991493945874623966322177817285192313077424672035197919269255769881549033781322992229470903309621168931917494042581926588101521611487529243258041430391745329112517964088795311063455394074002069475021040442790039977665600108455110789481078925302304978338729559147814035808459907040113666572059075226901027981546465926510309731126012561882275515646803085739487195115079687441272291436560892387622046905100080320708790463231025481906850917786875483654050287416955848210322321984152125964993953066906303091316235477253488219852171293668562263966564093087745595962482589630193894543074327481458722742522351132964564110529033783853064600562299850143969127183475722663574466777002900700092480703628778080521199233749507835398790561919292797059119895803508014004110470804172517271097026817145902068143806521665548810773316442896506512263465732632944293729370348339317775046806425256419661794231864711260861167754538520369888145357615219324716312045547028191549761075248971956725405152035135510674872647910937141606749513697381866569779521790498611926997519769239104822421762389712693821899272337088254208143528736050894857668918710452279519516491038059868467724524184810222648858315850348200408981040974777786825680376693853638003595504700098443728024668550751307877773631615407281528588332422202908691940896523100363857852482121905654509002707139956930309634767196249611728431438289689270565248334913174895735406939518601909655299991136865951608886759843741906228368303823100874018555016628673045615598405378030462871803122843251595667906154006918979680622473845533082034600175900303868638176595485748226056046878218702746269812300443035006883397322252016237841501487218836212377944469052312117843495183661355163543906141623740605733308598267012524664728332246776554679203542849746077464190724365947151266278785891965870669221638955643829539544966279286969992667811159414022480441642648505757447660949596162364548140098521733996759220000396520990013464481266343749857411016444812420517790269437328637434848779457960323912139057821511919472461476140025286877068740121054939807282421918577592107890837224898126625732824007369328227035984992242274935026424977607303267773426290538472700773339645042830843895822140207709009748205991496678203077892549558480755432844842232690334559099722059552426702347149600386589335074451381758481005476873108906607220755708483022121279451423499061114079842946302298115903961752357725426317852656296588437730050329469425695674074001901687857638318048114249723352054878575784184618185682770331792884202398435104597848464215259925286343666090952049641851851421041709187383035920350057204090059853296234157641299246060144013847893212920857076821293306897710290802612144044172023239918432774039360885755054987215796082921788085244217980732391370860769487543283936695771818241368531721417872853123054765479707051642281423833688287898126512027562917633352679242229881723039459703110172700848446354843410143735641635039764213715885052631668853532253462103236892974778073148502472075681545256376743146782181658111163281624828847567915332033414133281306381276483469761608493229073217784177463077577719476337441141349246525677357982127809378225483659212525229333055697960710162394677446538396811860518832472585395871858540799078950283240451306091738520441861014625689929703435064019571377035759515253522627439401015786980146393879278759377388592408458760054301791289902050703351871089902948439065110611517747812424509563307884821617576851629476479495042798544831444055148092928411674214032063738984344213435684913496028939464268460819782541812360035639342454201823141856732398758078030006823208106689115697086037167061544816498402697844840930774208729864502357420385377059004732109008670692658561628029049571291912829332687899217666159908050908039912176221692733373545536982547548870960480132986454521311225741926788447975097880351024764435387598983792077045876926310517445679853677745418299898105820790290671991825700011556342855834537754147399480365323021141181379765846284353917283564590107365991596916325433248359554617987446781158797619492665943200530152865109749617435462212539951108225630065869566742763520336311419978032979161845042371155430398745711822794408089689708288796187077568127542635239350087322396187262811646066096284340592727741493786429918093634423127995885606760510349084477957720807092665296884496127085412164631997421561305463283258706633373378197014100389825300400433999742985403485321352152576819218574450370109320641127404559087174920124177812843341820937678786637672161778755488234483073702144050297501690568413184914716343401727549550429243777382109386557634233707989777586698259023593158087315157181013874239955393309978998258145518103564428398882581569505057052939214508282848438315277887764910085070634866825260148686361396888768289464317946204992085148540023295809370522538125149228617784995652544097616506188918464890817029801602951771389896679279528304552337267743525632711285491981374034593488912560807903174223239769567781803344711290243366262387449886475226097735636200212038383204617409644309486651262837893876566693197075036790814695027065619601233809633546829218751180236103330671137798674934749032474816291908263409949576251010349247545342534194505782632395990525504153040037408193057876001371102480039371911953032381714126411575996340589356896883983724249741028640071023139738254507997064542448520690666988189768201179686579633859250084744959376823343516747618881500884853303172447798176372827569126287544359203405344343476512860608422816677944815179944333850759805870147479487583590530722636738646625666318103334410385085001448864351011416057438950450195984655948991757424662062470601685669683762939376042356710856500865476645338524190588248213280864474255658673028696555255584654734783819383045038465106739184015551411326339710309413774284336540745895768949749527210834855699952496103303686758547734729902437214504518304540835775935435303525036769848073030649744684912044458350084010713330939540886691558747527877418904430733919299717752317641069481608883317473924861441388172886469950474533287733830855356465064264114750789558252450878061312535892385987961393589017820783487600371113548085473770000048897696080399443569553444352573664076177560514059992492529420659911241203909422812250888528619121588648362432438215943811370755759612304737013348370374810319768322147240664852309832974932179481633098323633110035673526544102224685611986214848744784460433566951361239211512397489925671771246589069828521870105170331138398411840054720379410078739965784026595897342767372704314663774974910736058731828830002464314519209287897522327424209958678198062626446313291743512545405734328466031882227137770678654526418396922968712434155103658680537625987911349985933266088130131337731836604991750046802129463723046325622759542536722278281872866996056135327659851510728485542886889294854356554711542441740632606583183149183047044873998318331706416172488062855592024412481864905779491756740398916602790708297304777651003163065441088354952809995897069786926121132418724034596245343500422463778331510566297853756474106051983287366029558019569985894952850914341544112812336397232947362717137156840150368928924992219456670315057504212760948873106254457670592886280180802988087766981833629830318147124137641344870627881569305674820555831858768589941376014021708383868747783473839002293532626664991032472398191208018285808455448357218390107863004033244542059106969216880512082165391867134667870429267018221873603909424521042138804284850616306520974478020879711936480998754639248581431972008277106789315924997714913760037169717670125748367486846297097877709736472588960598073506189381315883326716709458601642383023129608274008764949162882422860857596005363914137103572354483965858416257589565468510710792497834934432237615347699090308495528247211567611129940758952209292549703188640062887910559389885732998323371427310535624918406496906510536223475038541428628327609813992430174413715916091741450204730168290013235171491941739885195880256189679097714217720553757320262182962151175966286175909642332528860305465875217761035895135043526359282078084578928012276322916042183108861168758549666000241564282661038734333439799493551270928967609294856843767022292373092629791804160946891042181485504318618847859732389106213030423011428121245116514157952489801208495776535034559126805775808050318005095743651443754870069699089529020789178629611876255788207969292523551093268046073638949490855556441610738265173536322411151173767418662704916072328577948419666902365258216704846370747411541719494914511351344060525699207648515005460711796252199546799043158329897875674533842900747411616778611387763005993071894035599650854250151685110600929021948489278511589375880948231972497181938696936373603568622455414928908931332420638231186644865590345233847831029629593874121306883991719583578144027165113528937069761509649702577599764810840686129168855481143004810171162592787454153924550945569031747249466632797616056276762504034390560539215745658656715807853207261350783573506124011636722638809957314778952971789323776200722637265603021853470018809164105096961177628997085195601941152909446842473409288020334104159044686012819033315957736686810377555287326371196421279508661266255371190881913984569991503751524153002461793932094217932422473490173423611467748180059630912363202215089007933497948228126111331363197953617467156953638793646287667588054273836803717923411667606838624749233638478427269274825736140117166282160743894694178692910636179860330459018564373415643105498601466917145674104513331755552640893182278086530175181042839541766622090632348219467441165739663580538521080918666805709412639802653490583375644027843269470699040512543307917349043171726397570094969600004136951165980140884237186595430939239067129666262027431492001005191486305795641075828925257900235580318247922216338508334626671548190505623844615732138080015126866290991437006719050493508480949318724893559802825484991904844306489220456182343045704797638217921546009513189713580169993750011160324744102263207455844312843316612675262241181929617275898122303484713829818031027862088788792241837234909057769533041993733314361427711246841963450313606950296266088579536831012646231260567487717632088137014470573958257874573778988880440194104069137543465740448307546103874528142551854897861319413968987731788552587787530033881590602401229428831462332626972801929833237282112435609844507313807208656891741730058994845224130820817736700734851784511418304475097686330886048379620236544171394393086182132049012157704700844703154354375612684425755202167344341486080572731974742373110685127539203054524506992514997584996387020742652146718657758204356307634920533699341638333180873466445343758722419043401921279027840719886292284114139848020477504222443177621390992780241331528294048751961930232195786731366040716344734275610544095644158592532831340929952800555867030634134781015514312040573171676164560421809194825841137186036088525957194801352688893364426668649915088946752752609621717414302661822657844747316020054586570566463622470523859900709225183131166011491194886439114495378204501394826372831559405130951815323507466200381593353557755543846165733769143829177585886703666026550788591545548918227965694970613898522483756831807953211364384884950967345139851248713433257395292260849980554753359312044808932697325397879513041213395187407347480601410640776457735276436717828322538454922635699920187316015037119995905267687242777365790639465169394737844046331870351603190298741476665013267035167644968975888104886319023683041150032298265777178945884256471329643630654759643290746456558983573003018529809838345862712465625062765333472459357489599588071712638794522638297654363640128966649070164111300483611287114332864174726580191266386039802766427779258507277439470949150686878916168146993145219245095637877589024121310951676904337553845808145332790341121113251004931227716576751233009420802759835026852279650729136766096350939770287173852716480525609354682134471191329951882692227554918472044670151006424925198117699627073695336480643717739452218970872384792510165714401210306649825284358486695924088734027530582509414314890176284297382889076181975505324405801398402999660748522801758586669545745912127597368534383272419824934670039684331999130968376265220343798402492392141674424176148521397411380976025233505095686604480844056757544405298965290048148554641457675708283963782209282549730554048864137119624563917798891511252375756950065541777853847285043029811316491540988454431317795679357992073800037783332220282500218712011496788064490770205220668474648145721659096296659992199194416798367871616395457114693353100297812486147769603710005306080053572233601586776701545871248381585099310990497044655477516241636180558953258662630375451449454852348169471521745204830592087710711738192575410543252427760260591482650978184692882859735961952244592546796163459356704746074195521055190439930724663277809818456985672745839380213319536377822086423759049797575182027015471718012173058676753483561286791989004795204440787893695677473719232978317212396103358616098756154195921884000162956855324537044846626884226424719815218932702924146565570710793048982455540606319465569095438253937160941532962583578980916585222514698671189951303639352560327154856688364478640428338802126628325993335339329956931301311512213759984943424224492895073216748220311282649093142073493698953588566007030338197073882212474989748651557172384506509493842432440270896024148888286383058805150481345481060681833827553838452780628802026091116648175396748144208503145395895347779985810016252195374477870665687369994732740488474576485369912755413880092475836184808693442796965702335308883760345724884106113935756951993071583040190941218413082307583119844485764149860262132876145007664257103266610696637833796679705718566976835818277889419846790705643629357655707135078800734996111512760820141857594986429058244770734937701326563847198930333035111513431483432666714758734411255540316352563282202426095229790799585979359838520582010539467899403618223091283097133289161127403015435877785855384988392528792646353344143215100399649193909645420553548928962615486160578877061496298258442438064471920337469960295390428896842110340443047086200189522216507797510718102322230083747591487669626219894537228894488015054855804223617710736995771856008190301159059381124172331061710633150743203351553280013649484560720018450222463195354198323902292554459599118087547301536474515421807531862351159544367218987444381436776142638058841067042783411929551561575819945221564293208674663791256580034238826497901868124642678796925195811317906828583744434987056434600886633206019391662058327468843722127127701644643167658976887112769396223937605886078068529729171588808455104860054287244706587399273591861913368975699160326075540485514672586763042321883994761691694632614047621131036593795271081598166450710841395411887602845476870096813247049025291089331820628605425986527936867161772065277739791048695309994763430829371886815416121096226354877621992025986876994155180455789067528211848786600057911923546017639804117298716373809491387622236477372995274213760408235313750599452985950903024784612646389830630099530971070640761712707733640270508298440517047666525243342859271256745756155640912027685128356176893230286654410101099818270744716337638481844214205397735130818131538238095506411896198651867070059344294068179871215452004263178173827515886553718285874553895182337526707544734406434010172916273774979450277102361128390150197138745221589529348192852091073983261122252376245822844503262465480844822577714673856150245262631785994973612903679558872448896980954611211036720290574094994561361796410283247277145785744488378636505894976434191047848124467959861976172349707648283125713647843045033343047797497019258404056817909713834733603412337443887586978911009224408445743770677389927149507486782175862060291034253350360304948940855329135322892461248173812833140936343579971354305953042389082152924934166427560339767432673011546277446452637075477192752448524126762855112257125686885594830114758295200407357157116268225471954906622257130872974927716440301460227046461990010239826299963374998370449776651195376230731090874253055164685183702698399784497426745970051436180378771411854515288251435834449395792871035774468691338298288353172083360897221274460501003588751026849219684921085629173201158375362064499360819335973308537806552681149662106784104797280737848684850553248563348333729594741980173849163656399416223598990309550567773465214559504090009592961473430963340404368489820644069227505797680430152907796785871511210492696545881007427543899571683769927903142570716311411671489795013869369307019552397262626907414897989915909473029593371588004659671737663776032851806097448393622460264385680278031657484984117538621350392498509472472830501958219235821972521715233515688388387019234176532552475003344097233115659698023699821095027602759316082461810002943165278836359736348081832382443828859910675557870973081792418072790895765450084663775378629484548173532405294152247414084861659480775900491224408908003496375274096911797732019311276051474474328021456689217018902728641171067913266834913285095762552537291903743499245036162354005090126479367794911197798005831647148466207216760977106477241610760577600788327728603721274168840371958459950120216445188145917657547092347840411702030718736548842876533999279457523751570685885370977767397946977757689303003719423257011980728218510381089000996054061456950461743836424287940090152312135056756010164213729103427217349273984853593382798371116313614495891352368803357951985328307448113360631803484621947575408541389018548966022643440187289996967593900706377471790297165561396692158611216970037940624889379855831136561639169297928731496745545538738603512295950501138212892220631219286854032414697404247118720910571017301928636708478420461774674350202881098296606390408787168356361442915407507450340398648254213600244210983236157333215163027956047898376120303738901547684033099036548379584513949863961881555474459523726878725893403874559728522242359276811404065247105146337045835692344845044840818686562034957171205027459866753697038002443030777545122077389415653374255654425549575087437253724236508798199180095623647937978503594099927247396196109297723104774978300488667372170037786128667752955686680830899993315313073006087243716171292248168724574478731370920766396149729557906442766062234890911409505660874905097284028636486072355415927650231158722171027417964218765677195399723826281940402362170578771480165597213728032153714135368034690970002005194549384802422592165684692027931747207739617351258696646350875670184211079663928838310523406301040305689225860582482174031278217108480043732373334898218840037645676138860775351811878751165604059015015414352759308445863750571016220680180321472668977082122337241722930291266525931862712963708515334964950370614069166994952706942230769117737970737678958840458372108149044080906434946615323927413083777050504776150526410790932060356890474599074211039165925016238293348628441678406561712260513920642419237900672902023255764636291028316285919704985511308591263763787416272560930544879714337624194340942242189759126634638480158615847163047035434830499517877260780571200597096092582975205090336708012031490658072008414532805590903509436107126578228037917768335288290987863868081281945830743414689997726840041210366265467717645982772606448655747355843335638130004444643087691795451862918426911534235399083417770286237659495189292494722425088032267285400680931416851011287649503093548986706374031873508228441087042064773358120677503278606984187406871947094821236642046961737164654917775761882605684826514435548506225142887775352470670409737578172532700441536191905488940026612656471741188290615049128286790774287085749100854522476525753636159263221623229257014420135915354625764383095887014677407152700823521982934439502956587225760978362650587442497283613288902714172645859288990488128959970657544249653160057809398458392854307759530192219968738253227987707588595327454440150211699721131495237205606670768634575203812855404275096879956485109351031743578684464531321742974362676958267921335993915991904860887106422712827255043934664107366643769494322095376127247217372410109082329215665666560663740838571296095968563952419733863975577171882515428272893152042159521475697066285270316098589278422036002477178619186697518687404073752140424556135670183449161270016625702286378348183859085232027485888276775026020553074586612967486593466476542151388936857994232271295200998147125802578033527049648948474207977081187126826073519401204294032123007245884178731040492027282543249334305939044018402554304897841054797847548829456211748640785606500427161237554296192198672746581722329739009548253889797555016115659719917356185699367661053950470833855096340737120017539164670534985751396774218595274379893223158584982893469967054150112613154322757563252920906473275838773385170479366211729728569798858630493512238443789974558832990247945178518935592835095897439024724735746197210617437480106665359203191265486512977521911860674515360694923579783659499098185806226848057426462538925683312770791400263180353826256676800948808344105338780907454730089601402467682190984466373076133041626596437934441424607044739423252437821757895452052198854103171650410746670337744781472817188091467241996454093677002300405255799162507901778679875367469821018448430400991348830525246788243810055741695483537363384655014049591634785836502473862682850770170275430857537746840937867611897308999816628441380038649219824408941631846616121847164568412287295407465689410400336435445833496749588661768414571985294261685745639956863343475042478561968645587675624273200555532430855773053506955553718859225083760698143977351558424996119041423149194798354993831160349788523046418248651708526414947084576858751625942095354511360973504033110900791355383320994246239118485480038174179243223751699275770847460610203066157920822169404189369913401101968165070915095274918540251651877774734538814870165418763514890098294917320815153558271807501980741499857596946801277161483668621155052782974183772842417678869914241810286858669355427691797838036190615900990028373986500066362311092184296146468017709818586072730757859580163049331293055405626704264284200917415202882039045257952298175282149593148790787043156228480044851125402584797003720525903523314757012640121611386878919717158210112388436497338310772093587646908561884418284002791694002530472743075011194918912413380853220225091228078835449090059433057889569732319475697839844390813085958313217111464913908278934980773394642165894841303288719288160404203106884433108954603134049761336701895545638630864837120695231746968668180188175136125897505676674135578279287120093343788006000104199789132312241465906960679438932573930478000902719126552245936473059276751863109391419274883367263150205289088379126132616688163849325543233582764297086305099026285886704987465757325568761154893134194814908357716905815566635671224700588390051885997630797932587566951743947408384388215769451761948119402503233102951338964591159567159906500409222281516374849539724253948495206215156078391098655931989748777424371171165817422880278283701040284316003600757319293296525996769923332395514203444501654690960266178848504131287601306557614251950803439120722897987729290024114207939718311134533604686544340416326939068145684006390631993079313149945979196608546157035239273869851885070013922609237052400768080258555728581597535467330379241793770789073964178401058219018450391200015316006215140301152960204412490580686209351500032186961705782293256415419967810144618878421995460153253564665665129839555194435785514794378450005203717263109143025282230707562368618877198211352745819826140652361929160876801673089996988360826495538357095031029877881429124345472707308842443863615674673968009818901005555323127957313333459998064100512239174518914264420910187629292353260313161237017070430727221296006921716217877685179637659066605807791800834031535587299901810995436312220774010527221302018001351527944936088192899039415671121281626316177549170670083172578747917811587674543022210135230537792665494073853699420839048462813936699290107275223700346163782024032216161538761443758636531697599154436493452231237837776941371659853035818861897107009584291736671208495311975689261308465497446856218568689242498556516328145347741688955711625889597114586354240727867510565954781786703213639400980597072181815111070040545471007936594680248384867968357921555172745424610793906206389922008439550486720710560565776802949938189043773115256092179941697015783136750768084704779737487630531025453652073627683335912753064814899624644850085605320906471893842255757642821795751570504846940959821441494967908484123211306599334768874138666887273557443261130479047806241494439688227548153090660642081007789915260757722794283623846446656998602239703626439190499138103333750540903233872742971933275069006327402393252757510363288718817363434717564904696871414775613007058802176848866262297636955607943667189805902347351280400108410422898936103205066907842566934807279074264536614576623473110819952204689045214025078507285696324519245260563407212401548364731914511068722150958470053770087416693925316165207722214033314210866437636028765950316165405201402831891496032901175042726661189697161383388051831069574247848517017337143281268047232494096432769480807070047597649251087014353882546298256498864190936888985650149090479680748772417322462736393594760495444834893263402452850172074666531840629503241959568480049614852435784041052384055938991289675368289666389539034940846737882573409808109525846295683368293019233483365182921298560587634292846033730391310608509468978439781726823620598094138993692467277815169415615450005325701047789313421349481423654204058402071102201452595868229802083577927431920994197679037759668226127909940356909528684356879542603664835666653304983988540165963045609576941645588855201585458700034295251595800703292071506127429697948358531802717079227512464479373041617913536703012957783606242611138538303227572917975391024156963299566677950630708298523197814729170956417888936191041517869553360488396897241961874987426346824339523390795482326415619749960134228720886098463497596646131808416630504673865860296569218323240360586787855303889325291983683425623351000846904599611682417655342882030254270409871397231528662520589504590664183509177082077176037908129615749150129632009474890609864120391650577733360792701634220841812161530568430662848112337203647671233997273093280836392922479960803820950740104121398620727843823847829691626722887741503021902964676237205556853824867662023139737622750582090004352782917014745718949260396065899541412508721644662859567087609601179942405097168841103095784127149811615640363787153685808873401302154936607290428975452583531904917799842085288234289189214378384699996569638376802220759501464425978175720483539958514699306648336098712711000550744968105944488777191033986721732269130183107187877213088556118185192728626415871514484353116276760947655707139340180837567590856912640168332798693322110738312804073967659666741752440630205599436507723740092219736152701824701209346365723387205630208682931818764116069669522721832227678015654183070322160222956319290684828044037777127684218301618159778551708549991425093679898601500611640403740725958226477562674673155630587246373315692123804624282365033318263966466989009625758657855622750939612162722623117492744614341557842554994744692073138865536277765902882668384140501517194871924134335572377468964107199356673194738815424192347709663342794247481039652159581954542423880855686659884381814038929234048634962856453181407555571399382469756919109399625389803821158217367556413368853628328006991749621840468536602876597020171079660111854560915366983237357613060262821300929413892661405492028830304067034817414089391765253056975299493072596131909900996446916420427029439679308555588548363679175851707870548433121977280136401751040852891725946271983903116451140094219193819592205687459783317096308812753670319359738376499027295488929146135592137540447503281504881173005891765057575348120332910296358575239159959767823805393625303167629447655295876236328427775324974977945805644720012288125406047757199968886320919183269530655482934970179369433466429672034379169341738626913725595345337962281473740414903923141038936960478078646177330777368709944809170613770398286311911009611501699014203224289839087688346343128712404130826713343363027583094502155341226376213724284504463070356647218780211563342986589970827943727406249787170620872485912234588473179584275727558406876244807740761393793998652081762365304178402582928754959450896733875200274783662277985131365178407730283992935973234769529882457266547158163211013468305531922324882274308583474172941056446802688163459397684730852462223278464626161447330792268484920685230639868792681272406589144695322568470917616531477759527013643302460917464682208051583558060961938503816401752730577712599920278901574346694504936777301777689236576507635541903982186799139581190772235740017876267647642822246985711424504518449391856544260842244548472386759842299422993367378381484054649904437722825053859630316063764326333021159391923724094725301690908986343369635403080748422307475216519441995488858007405426300092504885777696401303235090299355362339324906413706702982633778664606990989180967838404473967725069017379039132374390444045523617096645908258800964555979769894219311681693908056904887566547982766900635363304397536605359315286308116361545538571588089928411415413805168679309749463341564286404761580946636402858319782974913081361516632412651770880492786217726572217380106368774576423036195477962743201883774194643052111568385208163963563725415677786848221497982878242606716402808364055570112971976145582856246358713727877362123460871641471460102891812679297149804375321134502140701284037687698442540826082235661127953657014775926445547894411877477147270454992613144683086886026167383725514246779600473846671033389329854491278568657889163343354527778349017147677295450308579252871594293103866103785092060152505517551292325298328182424167691738644914099591825676769301951292599606314647806003495831350756040071765547583948533755917326655084713519151414278682401686959239910714629972606585546282424509653630759098437474801995255259779256319056534067087147426543169713074963949142691222777964317638478479205095861206197691067587387539313083624186870024348697375241917284309292001344121450993044711828187925100729396555025426960456703819039264451670421762271144179738245582730268150182476723447558608238874156134683661270180416059855311498781571852748187958651848500744677901073360659602329419214443930590212735363151914369395210587631705072338505067877489653404103354853909438801695387198891619555783003259487635716722869075403951266820296610263461761720852288921929484258185677404176673178167357015453558969435416976147562924139460900124877951830815743419482144890199213057909036458528779732227135497881176528459696876261291711253786014579560805953803657755719357690963679913300040365786147800791751244743169032178944562769786768396293398141777892350747161973736668816740752695748248907192123380893707526588486417593437732933351568009478533906179280447790604804556993414731525926539919801091885068092227364914043704853382475207719675719799452969932724729778672245832217200720783785509436463695990285464261121379780447126428992398071111348588744324783027598231582775929936199935156002929849393865568982560059043398124095657738226964534073282157177061281527401042961208005690873847621348965832832282003739009359859760457141149531865477494907795108662600569248707516382422388038807571836214046718424684449607609088149983712670880266797069914278219842158904032938836388654082951892299952351866711913387038391482024701676463567342624173991656704148792040667240591162829223512173895098625968137797524290843879391686824425919720012523186142309845377514325223047010586611802267864437453723160539529343490576880719423699279610029989502147865873168958032477085182828231742787889142538471503437514172110058636499457962970854773800919551110255800481305370411388684988227844283982591253454871074813103816438323184015322767166496653856540397853934814530935101842959007873936568915023661472002321501460806086299693101507674708704877978366359737716357657026579018473877296252674906207799990820123748305004445504820400163560244040320330859098766091337611158089244535121538939974107090940424062278277685424396744510319606394444469564114190922627595954070738028951530114399921213361806663173073897831118202382403187973266095755882191146774254763887715931070541967584950388838760340123933909442203627396207564678348797228506971950589335425494164548945254626600893560899765180720721913499566120864886783093539941549912825200058497693012252126166645180530565997991901598631617588606547425366494040359897290035280082287610338110048762399581349650073050048033128250786889469949611959117777071376114501493036208616443368185654687554385462858941084964600216751921035573113234280346408612520592657676471347464621938091836800111823085480811997041690268109819104272722944856395453392835937428179853472862953936660123706343248714189429721450434436921379320394808297441108512636574671485873599726098342998179171423144191889476016508040819887823903475636745730410014871623351333537526989277155545532956432316314744030132366807338807267164402529360997108056449211059311126825260656652969240242060929054086261051874260157422868760377941244888263711185567807614169260071646602666472378806804941993682412353339557498956240090548889816332506548804256724675381189751312478447306931578181050042502942960898497061495689050207031670186568588021054170501271927045896765524758973407747217170620409112406271627664359933763957289534117989279356337942515660442770093078720554298546005258162519404559795239806744415413347434901070268414841475132469914021495271732170546391725263373914360391506176997460662246673932964585704483849261454400375312763090815250017000086784489942512076266368113447305209395148179711466827873471756602645308827084260052529401189474385026610868470487428787207394523496872029575281850792770810851866725502731766943647941451188345085599318473954559545241473679357827082109513946719979705042922867765918390080308622125344632057397921611313689424246112640006978315540971572960879517178245641831195678983471255883111791523344643550865848330112943874710913843076095465346102581091206299283136092670953299686776424615313347708810107264932800059788741278222430460299435737645849593379851454537484889287350618665034723838677615702214184773470276793807532125211688053337436064501716689690173448519459579260062815249774034281784288343656613882275869067558081324753286797578481861347496026972255347779583457940709799617598712831186204910908409930313427168137978198677618176682898090265930284095756916500897211701065122528651741806680411182359693816064438598192594854926742609304421625277158522852874801359981575712768222014670550135985406839229955509399565512149512102638077503881949166396658882903208124390400307464235782413996192273486701593075863137052414242189374035245743016904792778028227660169672928005276378333019810549457639314780673887727088534817021047513280042479804457061969718465529711571185796482447694018605788465897734024654216526631687965052523607193537319906981956680728140307526867508646209264326799939797749485605635218703907754991109817781669355798931790740007464356811744221356362214911800762919395439165559225210814224406473141237535372481695932768981387349938501907048971125178767482180274776158903720441333494373445758946215614705712351322440521080399695947497252260118418253957022939111128740010298237507368014967147694579584924680520688833860469037524793479935324694548596264784250065265599024640216887331947381398126698117012326882759922444637144793239373955663029282065398019726492568315472290528656149104289551191699170935054667717103828562185322407222408942616836583515884000610111602344939664989272677691831422324753534094631221813027146130378181247907184877737318143707445762282787433910744824864613738437569607348463212063620483043806271295072916287555833575687972861358058588503405587861617366517509288954289364244896364313396394113967512749120287016043518078619386226868225749119721484993829467560573275499385592259982634952611884206743825675130861979888448896645302266893245034177789317508498157462216219147359117062278869313796625077978199683980590101823318111761254099556767362482921355724020917336630786866386827887094912761342248230012700071659895665636523844161349575081185206010303086176847704518355612970165259762364928776109100953072095683215599837940994928928834606552856609628068144951205124134311346316203098742893462027536877492899463759959957591798355704552768891261154838352813589390172803939673197286347442576621242711271313342162038467437244294164748718813683481537449726192213992499685118339956154798309820241284528152206175662361537896214920820419503206109885883266746048217521578569882454711541431862949998384917677750051173467162287178048740183837135147139109925375191907105076087923710689039480905244351158935395725615791012488955346458724240152237581253483994289762624904723081351178729828453584510361738799211511296708443014677996779872650293485186887931551099335828960136592180938131690144439703985130243726296701932560786860956161985194716849380613727202946121712095902052956955741914069011368919587507043342176109937049638453340045694086883345171535749199913789750070471607451905303591478858733419297681323953806965282614990855421920005229369990559505141880194041792970047386858792786466592564479267012296561675745423955850084423671643622835473000397653341990607924579963048023126903063406591750535497957275510264867128980348868975372213513748065699667927457062133048421625983058669450961790531212253265822111728017601814384026876097903389497734081255222598046931553582666839956242357242168888466146416245347196745044255634061422846985509734882631616979907084078282560460826866842804722431493803407888729386508000248710358886126806266735950326945298163176928987645742834489049109667226405352192564956528521041872925460183907004027183326852192528646853511662229304820388660691951281353342326838526881639603448618557001142636623087497125846412346816340070009326861830085235209584604676157745127232470535539530535616465248499500074169761597720714200388907755150361135122776022761991809164105986405504778069269459382685453232954478643875336484424152736691184802246057356719824857234810503287570144604576941839475043308019758831205419358035898715703441884979836591106454976188520712795486763962709379777835656717636810887423419984845046571591013155365660678338607513940000530634297706276074671795322253189455882159366699901628852186638954003175143025537967284931361174817704167027981408360163974094314997436707201218088765687799332136357179329398216872237161277595690196521945717674121217140183685654469628921790299646445174147708007098882741633000428401959554195878730477970148794180666464247519368910669338275129042380705282037060304198355537160081324763613214938239694873513380906235949412384287469471414863202535820396769180079576944148908040957348494201962539595229122405615710676099207821567925660709973702272494323826754913129527794840574596676137814165601710878334462009130953840783064504674587852192210320494569300156104415499146302243105109261885915807556980862120973574799497669468722353726772768894431543486324963402637326177798083650497403896465413465800721828634949991762132454729001395559696229813994006711135332251385178019302416566213506220773454583558049300348523508125102453222319505252079601441941082196929359010543549384492364866822545410156758336053129219291460827681001851509420903361788458939542646810542484737847208486069821313897366666888048821506749857954980850282555488237758099440973325493699136184425748188056506144807455242760206673228698285238013479597107247194993410649293872821623505938465742012836786355964761377836298662120774898838994271932007069834014520064622243239597203348278975760788454509725469471056215515552163964939834289903268023170717274185411239496695569379679942158781022984414729574227769093569138744456234797731535580418519798623855996302115989377642550430602398502109814496260819458566515697488983147483454350123845119257451349065100055620662086961273177643170022541407191627190626937515631637584830047985243125102698803369782144769359730364052970399745924243208532420701873664661853951983143590991190782485933135042253332275560615427230287870745987402621214709000241333334339041276756657395623027441037133949619857835104145349578460844650328513148299269010105398762704353935008298850600048252354857004412942334437777922458934508468565424241963672007504110061953794471572261614195110292122898347177051307900004112899455462850346966746054334440218768989629346066030940371614758615350248992039723564324071768892059976392865313963468941231590344255035850315781055139245117790335610692701616762292390124410521027415814032791840222443210724974612891009338525145664061493118500454734345004606194952064159926910926113464344783151192254491915056309342649588290007811788226071898878916070483972642049823887779824322663534890033782853980567065472938927060540451576089755597957074551036336583393625867614484264213160937337022329442351453862454717529355886302794888071923534083174370877897292685276831466698653082170779174565086675641418203856158040867208824773099749728942575090819084703518303418852673857535246684707906561364456352198054966421159548104868584254157266312411536784290964491354209425270317057060383432007849509665838324297372851954516182593725375437046782835222659888065347567769271656362542721442922098392770150395498634854494334678133169687199468920149800335644732062038414754114760599944749617521232564533724476126229941447939548240536954621016148180049751226178351878840776085317293196345458689264835001760234460146647693661021544996300584998353956064564936765170380779010589911000769416099064852712318664961651655631366557597547520576630421417893453811950531295326066860181438980759540091592633388165506402864894352853370138029198497664998896374360757247916797702220255164399466126677436502278252764971211004789671624037320228683324440379684739608854811971278518401304047399459558104963051879243591654379792755350270592940314525343217204280545869239149678055931152043625260719301414003001996565361399160925015590191225753858368880342925272746026249713504092382088799086154616293211219531204636787769286252465328635497410972340608571925604700492453141740657207188906478919462512758393038674173713025948191055440940750490444516012844309167129355946297399362279844219485665362804965338809666316605339711864340630208499645380699970868758844904949940027785659553098708154297238972507274137752009420163089342516238491764712928839771390282452956994803477507455401055866376028164120698048301587499456325420903392996697915274599511224397403255893045064750205376612824727207681027860109434755461510102093862706470819388693838583081874164109126951703370683789895527585657099876341763446548933110043515267188292604431459246964940076133597887621801433914219311620811641858358478725906693664153693231004814034883298168240722375455867011378840165311962193034940728393928037296739814902446875267845489296961043690109435474079775683872460253516492809082544006762572058136171054266321657329588891259845168425438434908523769390848377114578783154190949630519744502616821182652084537298474576918159069299271780811912825204576845024982452426094098981726315997456834260806723828527278155947104747080014355855238752784733346713037893569938870303105963305228085171744736032133939841267759565709898749180022918425482870762643913088317150648064835978773746200712963585433470060465883491841920427535355312047844109437823791478604119489428191984623863246942105161827009101276605074222935198650955435629075297083180677263515464679659708423843467841253315710251513820839566117672515846652856211675174294724845708603541477784730354232955999068003311218546998138182475616396328597786407713421166633298696884582684904704392270779521084438527703725427861895177674616200378989611424296494606077944704670466753141137375290917104859650385639273181593926332615115769179136053767912082591150299459778170028330989403949429334776751773501273515811192142081110591794855481860542006038494022565686888666675510774791668777108435118270700777435804688721078245400075034711944978212386725638407042761411461658062011602251154329418426184682022240508043628300674834381150640331409835055609180951442992418223846088440755552003063298480662338787768258233519870710417142770072588438461016838624614188881961486698629215602317111898033650464843905152250851968149398245323138747052829015925782486694395479446078439338443999655029126542551372904124954281029240779562787308869293486474315833370589554697876943115618759157332899436993055221831280207405940497008575591673078422747132952444111717139489266560046421101743548984675815979222250418116485913454446125523158558618843622237172502921120399027197576652419954310334854853890056320682534540510839083984668135918530903512827958066134788616988091033544115069025849029521078262891758228301382183160470130304444459825177923063316339832947168008742707256390458689943234451710460154101773562167440621633728873933344049673925891842522373793520833204335290037300841637104572346822182300790034533752888179585760621595298369879662421004712864820423241395122445830305245739052616812100283491694442015949511594919047510473859065832251609145468046186907120373997016109392202980261986075808157456126278534068902031100188153452327167956893677324462069964819551193353487191518591627278023600915236669926820775718458570947237246213516245135315672450357008107503914093417257532113898246894794726678551597558270359000201563430463967735541324501320626090583074328594677923134385704782248102446058584383693106302297557690192411616770085391844615486170993165428777053638736363039600931469079285240833047077925642809949953624812363003135461056877745918927739431847540666192888041646919322571620206413858532907530000783202092026020900383809131418530737300860901537689175321054440387612896612075128899029282976106630225173471603458433023673058810610203682306130237157764154329719303124450943597912213509208428470154238005350889241820030620938558084836832691119292580875694091189209758764211892735448548548324423519546828583871217287031905044182500644897215489004898447993118974372043364319565146237914986817930807653619496201795135895943894563601933875778789865680170177120132095213790010308108998920478847393041052989923070260279779416463493294123173774122542289780356037729571321615204812952128031778831023591566389659999898350069059346343775314838787656856642018320304565599395813676423661170519930610093053070308914514879923056297073239009011137137976099721885895536239056992250882661234438184546134368706064621860298862702541698737918309268468504149360529837468879489094267626426300326529416264144612170355421002011860960447657972509779518286275864691328820500938159973157814350508507520912770219187824227299290927090061728934702439073458812796368465046440614087558541159575655931861948307173926733663403434109641426797376971427468645932835980121433367214242617109369252556750752693901482342910186569237100104854497408446331391279844466229476897404249004657838853826401806569324375238211185854291919579237593186803633292261371828533845620036735563580428162014664566902415539599617246940242354217405585003083662082228747815124251619882622845024154014354231144303627454505523107606063679047026292158675230233669849880726459407583460258297006114601637784067674461418414013469627676847299182172625496507758364933617857749221805277136675109883553383095735357274779219838095853028001252965800348087547468493207962707045098359876537951367344907504331586972441098295575469008304334663234321877402258206379099862403087158073303565024764551279110035478772663316161322652034189367422892398201505261511286735703668335152602084949447452762707354941956157755043053861942749022781786449409658444450492561321944564199056218095022924948924787918297187144197689724568864560222215075403887694840633518849720867525704217419449004699995891151401950087549178285393747041096613222842655344291760376425988164318308523741400753067409910196346666945404008100226864741781343610662641877425921471799934003683452239326170343121084341730725983398141567750340173498630721643576356790799368881787957853513816794061620844110241740851780806213884365839971923119110944704132086750668808451591327469347534302308842466743694360868437960531425718628138373447342744501299455630508347661036217439324898487065274003719741298700471391777336042861283390097509324042194938484315871193559858369547175283367639577052756566826567539507783741135087669078653744463154933045760292234020436292578691789911062047043814896289166935028900390184627315133084091018313702759324707929006589327535662980763012789863901645478242368440262252780607042743618729572494476841469092766833609563623191475325531507657448055808078373828289425915987022183547989554082079861243901396030573826194293098861210446822936095404703508337398773590578262233810130895925262868698774890771336077040757115255595772499051502134675454644654432194636235439934775096909209734860855043949649843052418470406929042408713125885471234087153747038831650487489447652791198117442508127392790474753481544114758073844428013955602357528979958528003175506678182824790145233484941985553749588997797784874154880536141704890721085395245246304707345083279232131686335028243159304673174859542431460812494623041504399377029745602071364363997255994308896537122702396320310527010997416975472950963882202934124646543180901760479444833418017215415993283568542248139809188862607762273828197374644377861513479509334945155253253020885621690896833019373013647845742431160055804644020036590916063562277562124129536493419488667146056167403395724249991166882862181588913870226861320156320752782142635462834557912133473221747006205983460203637108961968220066509409395956488354137805854886669684995764982485198040427331267640622564215405632818228035128148529275631287785214785912594350834623876984204077030879961433240395926085577242370721676828404784971322156890437493491751256519294125950248035475784414777366158637852635192087862392085895124918316556961300271126653427028872048542690986325856882865116495830963058433079651878809701288732897648842564140956004450828772131714292246765069482337970883968435582203312160256798897664084620760559202343386709104013953961162315354138599987966184587142167582436729436118022107993053296002821394931607617234890435167968812936340862937475635190016344083601301224643462715577118510273681708903816075910851881680630615535066726559058979222253745150475748281617803907123608731943065922857144766644296998723591719543882533247572418995446381368137188909813143139357700877066258731968315534711530492156933421425758963263808627505877628951592941727912424024740208421395701431673516532125608991443810668314533120830010096963253921362016537242775142641259267663425617077561469907347642873501743473399878506117982773707320620759262452968741526251031064411801168587065080744300922610471533501927555519021157486603366379376159595682945759507557433955344997776711033059157941542744968608261507375517580813796500692365047329244471682452285561897631697855743179057333522887615866059150339456320416378283650890164605182539303199062482953355414140279955595166830137854076699856008459578720415425125006580098927706721117600991492284629943599472225026170107929415082549298591913774332055859224705740229138781111829803814902385120007110822267757397192436783332379873260977998258698674280182798997871012730001859315416033020157237533222284109026169586058559682049739798735554103970334739755621034043521362972387444976862005910461675902693170072811139449493339295193044417693812579200119533413760087594522444220420572297009749025119583731418633828785986104401493851328390753540014216748992529070129123093176206114253901886609329217223196202344474181286165281736408297484215677854782368004594237407337457916339957000493919092751434946025117452757314461712406535503442307100394136905103803559161228297694842766098150017059778203722373970798092640079044502771455515453774326803757345660093947354240149280495217083036526267698608944941743416790127280464523286644811400387349911071211055751323418997493683353899113723405172622628839762050093804222800719150979500217659829279669668945224736306000331514449894744302249933324844542238917203809860098786767765940379149324499793857969781336970748983170828328883760346293144795594851675749728050381896686947459726809736680647418711174269178067587333126655793495121088548322772668294752020525266878910386348816862132568970244769505780507349889846640565437489989265905011366269977351054462676807525973261592322829748007707398920734414625461651245766586975535624513613331996074724456452872732191489803773428382477324741721819752107112574601212538844406141821001983110016033311610363388732803830468827782505085982002619661280217838277221800660568144105548350173412944666726547757639934074576940078983371507854991146018393491774134580841788840391860489869319961047916850438918153290759556432629057179280445469893216907479905870919470294572732686853326664302329407035689016629715081350007947849022078152192627132734644218193854659338733895885598148669203765087052370960488981665205997407993027003586506351084197839016491807184129146750938626126068076111032398826754750095618541216427669043740477426220479141693642770570438047536778786082391061219654718215317081415142530695021985233589732181635250136559195995451766310554779283503146129103364069199216318550415254341465391572380296474730193848532166241870943831510961201706417103178078588260497666475204659829820381116709472395338302025132106217962175495289790320371600952599969459991596483653861663670068022031776299050350045229058837862361562227180923544178834912252060731366848375800098744914248402773550630206116854263724950156124517600403079812101378989300126264017398495402270695171341535980426780918096998210611242031470618540215308704972910434431422904943486691064491823883137605364134361137699809810352702421620481967972817803381744892344047334718117036041651706407743143001969358500751114504031351250762636035964259489359340339532366726077873734027867203459652715149150492858318100251661441064554867110602438734747403245533465400154189690817729647138389659004684864006067717073760171933316184312479779913619468720031329845585033931849290129621644480025641554681195661658209166880583866209047506576273896361885027966745399912994494009493305220970637274467639703393144351322522768058441172937472369521911295413940399042053600328833877542819384297600158847046451162746983030624362545600034147879051150449296162768849321397319123568768420674915812654651586440079167362536369416709153611861720207537353830707518415112058371577139253134745489175888790716146123424798419059317232183574771591693235125348554657736364618417712207515175563971616992387876120346619018472843309799081406447076588918211204131120701968740381334793483689368501906213701753172392515219498800363760811229911966451511118018509173711397794386469568308146992762556093655659755767512618528072097388911392006587708031886018822477895591898636847133945260530102647652008812595014448946842366205309199526865071083786679478413031958908454567574326351229365005761374084837156549645218742648419311748370162367863643937093812152985375428242966952831845285894202851431508967705304789729630574246665361815928521963318636644845297974241638071911067705835660759104763595595682568863998533338092804238460707807877337275213820599836834278673721427662310038051049117945608875120760753158895472138178937623310902976359796116077658121110470953321674378256165430725020468674300607599990014117912119882873566937775913260887115050637108428240980735615233837536282764214040187268358943204632070840648866881328418729747339711346090927897623578980299844574341541364572544886615205092554130692179706937101041960415360579827897839476583617187902244032822524807613413230971184852901535253818036722645867849453074005673022376010374708157220029330696852886804382978571861308411829337796313236769441344847647319470196121923718980829835020494373242851360929454875189638914935418341199329327786241676542225756928687580002355358396583913736418416648791674111563622655654415107206689788910344038923059415314053890980295859201961075771020886264300739763678726860068341857012094427650082716253972801269911468430774568201012697679798910279539843358668134864943454365544694137936066502221772441255597033944399721780972800317071600466681930164274997380737454102119893152492691891590136005066860360334669813463409179108957973726948242620928377281828373723338161318890903873591940892585631571602477760023108628188789186795871596647173488662958841339313925102243426327945664783932713673924227187416454054326849006749059875967926219473473001170658335420813391910395222531951453257955838896925219732122082849656475798798541154392647874467567035780002369193062974598110702904351623907089799936101505569901796177504585366263173961734618033074290000848373605272859666490150042668337946287925075165756103881905044979171855309028075610885592868098262917811421048291321472934913473766588996360694607779637220689979578651208990932943374531714878811831227148367324444179367692854499674838435790534390380240610993145332872605021455794711717882167550511435231595524931207613343981271491523440679351854787345590096576284575046720061338552089381086632515770267177487950368542580736903743751755655970705140304448647306763294040563002385678306734317407077573043962137686349048858530561794101443629808205080834766891457373820683848808525779642491516262369242566393698471400242852982923492602954724783938300028036999036268395619908245202340439429190612037443142944720049991417627661432434580243977857013654558480290644135223661608261266239497866403481118421766511655860814127028924406958211774034532807598337415521417130723615375498738667558611423995146505028966703350973250560474082801091569357114312101774486987561042182589267417563886908325979725300104948022925726599037443671512395186212195614426351928141984141892950059822607473279553315879258248204038017661674886159284917686736040449169985210104695720191612226112822148022251500957728011920542829609866287919086297447760318490715233650710935995257957410331070393179551484859666190312437131920195473109964045765337324989526108065572206411282938614486879366933067519248270114581267102786433273432229097693842429640296576812159216430248843878663460749902542241094518341565956109023663765190792344656421477111045502486875619564413102221701759517636518239310534727682728874011838264266197251037420723577791289708765694082403031845464825264895221277101265801291786168299013359430471461053814472372281504356995280877731268784719269838405433566371428152744156370906694421357644970151199490617633430162249846209199656882767689189048790062117309432600989862364869152391265850961922972336099624229411214600556928945722828561506067406751204161798486134061308982953931134150894236292670678008548056217365898395032184696727332276670043780131411154419797610635326796385766858183010256025052542696699248602335715066592145495417710452169700901601279370926327322570015826823226302903248410413723512493025450460808691238656753680617317915042051005244725174258162767376033835493481271572884614841925276497179750001134005768309327925711338124639051661467691354956957507679208764368753897726157374524458434778667827352199164667817588193181652192452106726202246690767581718722794701850497119676768643664933655012416169143503945846799948648414470823776737222560851855976093395167423664667174856397442919390674760102782441031857577087413369523002848418359752624897588383242049931524206825934321424488193699360833498609977079031967643976622723824177805551883934256362313699658141446745979270018725950582167923663785134821081953559534251508694331441947237648542272986958706115571233029843089567551719612441561970179285034187961288166169032318051924846230755239641338105997102324897818446885057505615184097510411340903598168956159824650835028719873502786722281919913647236058794839586335189918923963442811093891213520051000964419687579008721307776713630964241141434018292073042509029047692282485730613007663587173502654923301152989705720757379793308873077279903471486402203397747822517125796581769074463884445416487516304043074090900921751481063861926118417140316661932745350004464816907976278161859736707769991252672523424004151613166895695544523585731908706566287365501605595894143709981481461419102436283958476901433293051225513582898143654214173898085816461622022991794650129594121848738339951561285423448035873204381764040290359064671067481413280490862796072263718705159796701235580252772541107888299461462725766233720726953273970883411476122645737914546801806820792899066243536616798213123571623922680658436461730795114488259400386336343860760117688326299383443574712837825354381661329002262561344944444205169351695691614104961382041195306852453339320320778013651482971581092502185054523406483474791422659465169011495742382758161134495717992461765648956669964426496565537382461877312689770174242663529793079608228940591346186338903882239557455520204000601471679773866195477659108550927107528501746071864703800249102298935509343793963299461956221552067844888797633090851507530601622287720551752340342868696371628173837644852559706624481588698037186057988013733083703276163816506116068809854313840079469546519217833935688691706156919557426871068189086552781102769174952856191359752406355839734359203004658764771533527597873714244485065369094866738906879634339602558472629193739553005732402121726934350480553269215134676001291838431829005750090771470472237998250112898299706653861559830164797959183253655649128733392598701798834800123880706810156434490276262088012587644741378795597493742733879021707895955873779633061822418959516550462727373775658371571487909326463910532129485043218654940122594946092783268698315302584993181907573087442807864694655419843487987762057738457866513503684601808242338653129749478591993939161567796040390498757796063802674872623736467877915373312002210433461644268673319634627037241272207125788545239931738804106462437700172238721496944031888348714101761757146920747296683898328210491211056638705301394213137367411470889027676056572629430172199742773029077733921772243555230861411140371760172643682710868566838232530675037952228297562365819785183095685450142717486676190872606501016100054200398141011745062255979825811377481739723798019620823073783934465266307451253466262912822471047133784943415536176261026418919699655653479783317452355550613962441622494918154758561611949307061588688751695572887018977525244743000734570855316466587171578499130090823229397616899329965619935860158032119826513569786911883781748093590370621417848529649610035521903291286278164410633190707837881381036201173284096947723513550308327400414543887311749865366188121071261656034253240350206431111774914743808744199862483328369004682105995948634455047464488231239962301632230707460142727353721079196651055589227842282063800082667507723778545442272238361864693270971652673988295550893386232432966653376693879632363850384558636931285204333598085264763910944668241608711400876403040729292933171364259702145968851384914908253194704731876422867185937297654811355399598806994616972149203098749504138960379603826651254658516290667777762291570017852355285778616002849663266064266031142413068622068507316852249614374916229663234233559117529895088033395699437988232167770721892292045189959496065064354539068621213580878604348202154796020060707473028070063339997847505240076958487918260183950097135637287382995743233715844081449409479555683220539809765130025496387555843477950770261299211028343791817331823513285639582239533133356377391895056883354771967283455193650648745024980452265682763901243556951094946881029762444480290530825201901966855922341274784445590376804899555817949711076359632878651789654596283137606999188277463389164896109103408543470628228189296520818803017626252352490111371514260415233036379727732175624524118451587424306886684614857860239935160893896734358378319103088356792625192385261790005305061398062585135903397172817155749142867163514204119796348110948144713265538322351545817416401243815630961640399282094584960516395729643869823447463467996995856653389967483371782687285313816411971974682775840550208644310322263358436259297559367677294399864028005846290577208136671802202132788953614647177509161686391417611481215350077017029083255936213640469144270986066134500061967492563547375935933444543105593122219326694598242635382035492058139187067893631310064383802224025309798019410274187201363826298904492433178131756178748977915428311406788809838533440798920647926157042053142504052828738766489220054104248590025158094420005815719345691501721237048658283745786080620155142068609686814626857567190488513371846678110466805536548869184860721446312682917578368157645831486020824874948274845388394601738393358113605917490178320826843463243282969199986833490726464652220205221335890409650450945534661136718265905000740885602054463698142075824410131199773098944253973769512403028688424304680713877917277063002977411670487165383459524323831000537591590015794785059113456062291356145961170393254524241142140081553477979259569625293979483696577122503194784172718921913617143043018578125123940369238096901876190115331828179431847230833704220430826794886734836771289032807633514543707228967569383302736827424271696716756978830781168025167677023455941999746427505074490365207776934596297627739037726984758814719816207634807525911006830909321995299505751849382165270425436293054134130054412886722333537557654443261154642549803341477203165502300432974098680134190890717821078858424481096118196605049275538100068066204676756613655812848295510338337159909501205665431944477255235544855398646457350171709083890529206815251733927271435083144276284246833170718412925647226011544420267864685746484613970861739698836701949847816170416497708820928308774828793432858617950185546626118546579730009423919169617992214681834228518775613027065883257222890079752952452931366465676770358419407450784217808919915122521987831801584678281689792271597427790852968006414216978492278682584429305058661972556934243135530119408726664698941294685148011381079773685507784463248566848808571020030322042611184010920037421993623082450834934839703382809135534961363021353523713622378983906793556112733460921530952695527730723074602415683001235427594764727957062237732892715721912069069110958143451159312307111588559040884279615649070823241604439871068346390076645807261768570795117854714247602926879843848317448223645017177657580179849652349551730120498358656553161184132811356688540277582493309105370045587144307246336352138602990377223860103383667680220835809230124123813067979562422529480501586282886867438532044895208265465188912122874165268542661474462434666888242910136330916247555129301085434847830203081537038083701415032946038496230141029230143634084744708628572387458869484571695734954805799890254556525678956952797586202968224133802820119409839210677747656714266648246776390897615382685803030380656733527830315250577323369278926861806464962057199009802198686537476892364525458859761991017362276242340627962236493546462205873325233145056575263737146326609342920659616044440953160662789162404298983171213291608711971642295386813084760452540361806416900213106949057695912894990122282085878676553465372505421690591006388824677721081197729235212615592929617139499010814319426902706124305980182550980205912443181616397778838606785788211929991984681354043060164635373634232293036498396188933464601666828301084560189053224681917829794159600509069898088116844538109613910975706078861722996895753781118865135891502829423173157744435902730320064065570779885336620643553555424820789052199712474676973679860539735844386428846258375695582044702342261174785012850454747694224624234273719064896972458708685158403299577648906724964753617556767061515227334909391500730710106732931242770083076182070237533409072464876206382985410875167004193529633874068209954029172104005669050393531007237263469443147243628811199178088405714908410987752788780518403689376035444313322473067077846284242179259923076733967254257916370394581668615838292352902996154035314851628913484685246735603013024877900683302444115501011330233138150289478193129419577890971496824517340340290253353099904905080966554157615245688976937697635466477890443142319807195028468763594772830614798450222337295807818410953032345518419638847531703918352709032941152523885828007653452047830804716424093946840582794402106957477806673784024116658446548760889596633932175328052480107306018833830278706888553230669611198210471195130891458617704286903869415062383272969632118138819150231669821829605412020764316666644570032265997103566003388358044248706023573777382090748723641416533143309415462136634357510860873494374754486967759855498791819907911380250749852611415630739231731962468394116621636818787574959359477526575780673362773501065423456700546218161126317842646352122938063834342709850100957166826635313321905519448095394088763257497170954789659809278181475629066280680987759918051140751313433276662402628947106062989500127199966754202941222858071937907958584164665848671918183633061521579836864750236944651945147325484978705928422804885535166967991443661333599576519319333839987808459098315944944997046935550547506539422039394899920506036370264335413889723513124256476729592885771125019327317588640135196765142679927966012890449535371921388463415645165924341686569862097746230565772623371358020135436751407695133177283140124658481105033560291778962287601819527320031839381390424662542470046500305666549229490819729030220956068428314275625183384133692113079863243929385824322421850181529597453119719478659474567060896907954932531272340177538582701897956721972256936022120691435908838741053691223737253591487179307833482616784839565616457573267515936510990054297692409783627591745564062382036776342740065239029182967794321576027032528489465062044118642744185979417266419127430331250901014045476480816313706874440533201406659478999899389441521515458799910938186563016212801265728003404880331465147054975932526286055614551868647003110528642912273585322756696722347979955202506120649428337451932368668939841613392535470957396809528290626587969199842507831452615763943188201906524411161512286593502434255894960493824162997649764905559796417050359524294146463471901516021596184447432185816023056968012346728094729220750008246393826543243966695849932116081964715488418879233257612171962719587375456480441616391894683860993891176010736664555883316320963651169009409963349333868917200836122272158210060846107251779942536674031894055490062947522580819152314018510057437551345500734945424988089270064248792149960220806989729176706906513857956296995470845523753365778990936764831554322620809658706060252585219538264559307620548560517386822984786673917329439017154245514322963963819182191476239502493938303983378825169325538097884884481044114166122678756566397227821018596572507638913434215152489289751028594755215116130122708895625307862524644555109955014234059824202074645033956531989667802398806099629694045180907389850270570511862100926350104282367136267984964091518206672733735524767282224164785617937640538262627185775280889259898350370326077539667866742122645383276147549153415822432031968540059112566784549086179070545055833312808240649879944525377169608370929828613467153051880680773511281310283257892474214977775769476889348172456745473189680499088564724641110766117042404830180067108670076353269809758154621814720161483884027345597988451217207963677878396250443862034735190914602756341353479551522600050812389363793744921770975708194045489452947570479822553153433335157396746182097180321829289837222242878006220480768903507606859888176530312913607189467937905085717965441348620900910790864705557606948022056268364108355374675714895880132145016985927450543641937536283542316349946762674572130976335313778163335624020868098063271537475849497260130926241452237980455026593676078017756555937782318533814278324729738153642514427434900300695341063369041408561833608685445885253457968832089533366316578461353270251809381910541556707866961772942932882930057247355616379072873576353228031716064614727447021634770466434098398232514967167864735093649276344764499120770979608008839394330471817273450608617671214640395409028704318843510604020231019760140696073037804293863634480962891779604690597764521609052926429593684052402126544498913312032427393038229917640091185919724017534607311594701437162444233868001941350481453017567959928310397006943573500917237373168589841957925721548558224384771478748115194548699368950129303371665351659316796715922645378414703333770574991959372424827779397225307594808064188987223016066103538444626068367269051659532921032566485120162691806574316495867595563473840881665286224498356452312524727065245771481838149145997980400394468517815704007825539065064451372000846027971703298623334083495205302087376423670008678418179072297370001437464843231150819229821606921676315181383135758801754253208757280051832120239331804676994524242791754913041281686448199820184170281457636657794333280606442681749171182123344412302531610654702724883326388564971982033358734322009537294883280894909112359847989130361614261898379071368452450534167844291391111464877788396471235453263915343959828763809672068252481374742326116279019470997150026132361805563896810697524962644877837990465627365584140657323147588627727695063086859388349867243844204745653149862738398908994759057749613311038819084732606378875408108111436311191561708066012006093833373671243758469919940064919813035551603084072146850712048747217248013433862704936276970880352047374222855897915809967894710854717407570663979401657346934550027674379732718753886069579321483157735081044720373553192013957025388213195341974399400495231829715719571607114319557025701466642723049070381382431830855181959907094088481850706974113280217447871891293777153549152801910131572631142167008203346407740039388182070753981989680530952414778735002106894579620759318612928350078145560910907428067561904815415002019645897909359649316460335209802667847198398038962660000008578942881976772978697657146486703067739749534355989718582993271202888526225209214587727500074957937751120662970945282394905153771172531989556500490145816435358524800965295197677285915603190808336643105817869830409586536015627896004501390426198038526906108624568312083836615218846038913058520206945019214623656113287253627868148444922112012171746183916821058592919132341054596424455102479414882154454518790411088660428503652297547733762537941787610117769691176963527003208166082573088079787317728807502309200277084023119467494244421120517718060853958731011917490676868787012402096993352568519323322372596496805833347271206251636926979759114337303179674941952690933707839995316805992513412803808709583885030174939905165175564393427753572257224125234359811025203746349787637887516647514908831565325491283440046285685706690278120674747897029097440897357607559594203138129938758346782155902244350915976411040431585428910220651769386564024130235723334898167106129017259966177430600868293588675165296589325583454717604872056483144069258488936696284230698946539974386960536123398265786920590471791856455296236168962733881329762194377016351464023847811893799673102633039810034058770341071418616924847802284908472721571312368763948651055160403344687773795182551616636626471171274752983353375273878287789959108813686249040394192767535276203516968286910504377238564151579491750208643992079364268715168352197382041853987634581881189336505281368969474877328376937190902145349613360979291285003210597927714007048532168820126866323938013301807232652887825555108536207515293664646115180426924636551375321779803774959873940208125446678804149168198587545565146665472104758612013907672334143907053277566821129703458103836050818536467377589673562563314380964972415466702918411818699840663817339092541025332021752102556735842185140528188128061506194907433147088102803462111050555465141849376392631856484546254363738461413325489483136058514924043857762717803994762824003439809375930401187152579406590853231316282154694569343781468438859727025370644952968506153163407412003261088663247543986461618887031736241401106470031436229003040636991945740119392633195340485948898383771924693574550480195728442619902102661167704351940075501252889467569742230169137396577285140685483819333223136562991219714662402548455030806979923832802238512851685413363831147592883571595658329981938921344221574424967561976191231538085613958938262378593371189799186662636200120189600911869405740962447623677150808206690033095500448089571793216938176128001542296235099505610133873849614130902984672186252359551389818432060987275641933062289429037539170246638588051679174308149422780009941177046269693611730098324678945025406406427905025602489183202920698989752501539134097233539610106073510314869712212043446379431298660216295727886849438868390732213087613177321787477824221317534532411146529781253022574375911586746822499137392479882651348176465678877430448575836735918277169684307079689305305116603910355083062075402563476335067390899631061735126550220308293637799195170415068481614980571583295590151735126470799608847126222894864038186926993901053718173529830749787598718551616273054378020978503623138942792792266807220682484150443816791751838702200749521258214891990019099810438516115902000613343204940793378703766893627887613718914864496414810682836056285816594099409944618908921301074772185944908566632681056968406254972542199679579329118033336651506438818988757290819352453058584198337809920584349867117187702826270115358450716123223851377843233443263193466398311335098662164890016386763550585365788104991880443259771175817895479181474274940040982516946522022515849039708485411564806531767386941451664396530347059360571125579586722330115412249927862610710934172650122811085644107317781524424379676479645658597088978801751968762944054692889483404049671105659344674639189064872688025794020816199893167840769477448591570598470698606521371243949181480650690486193359503624258702369977249304108784130883966548818510519286758689736584880166091733509850388300350025990335327805342581670700829606949489978363559496514256999234041757096394952553279424638226332528172894227172515145159052429260143160969377428939396666076233053879245380151645315191247022110061975982795543587352808590505279793325317946806036824529491657975199823882326539150155878710421400765173139324267695159778159075122747624749162079315004916614442773465707889679115867540510969877993900437191035831258840332533837379470741476961577759422472278811345659428485437481163440198431719683914173725464071265626445941169850727235852143215014332026083651076916007343933070113231519162433882959422189044088906985382672719793160342006101432264955191021598364879469513613220321143677232712349495363639385933225699532653756905293617589771134498449202959777598756564263939625253520062775485917553585047058112611198719822529559501340791123456252375500810101854963536290209449937786184050050126865481618872116085977679510702170562964760644092240559079112742111060032999584786584111681544766127465357068784340366832203247453855851179753883922116460245095251213433539353314510937999103455643871284789409115853806213211922919421416775381225638624783840727443257124563917647712319110607591011603532545480704790787086861358583315419853202064204124629792732902730784762573894862570498632821283746357530032801499683379969679514129411777786892078701490886683537776255667582355664690598746582361736756898879815658041056062371808754056986901572501580964442483765808557956731645841418257109231523983970413833087608762132838526792380089999601570413077930174108599288747652946077406832101353383169807230299412958233321217433145386668647808047245984607815460730981809217673813541345095675551582905720705117943995747905213499132255851657408909482982099023667484842842104666080608567428711129445331548504551382894887054169969000406202862565556552036690537247378662584565384031387998429291988067938233223024282508658033137582550542660517662458280141524686143113972604882692299543360340874642364026176643923031186756291987679585930921684878272614165217517816524469995044737595681216483076860621005904667498336955971392757748244889889645105869998871788118653340898052734996524660754267136818576991150209286725489230464212037216023169077973990199979895840546142397657863886026780294336412753332543306475337082070668861399704526177038830501863194554923519649100911864761053189742820060702719625685515891431747155072718240843120255573796915285778239450009366546518664779881232563019625298469810518234585047434974344525066754486752324290381353163029430368447657671015050041345650064649523484707855303334567204564642091146994511038501517490074370893861248137654516078465907186631392092299262646081845208164192200707140401709208893888300598340243351480698485502669650343464576976155993616189782115040355921677439008220360846412554392807462756676687736304877546196340885430958488670082384121790866266375414329095716066951988687129251353598191973015152976665312823374418620176231160175858688894560825893643452279685912172719004998384426969098660519800127702911474012302904800440146880488793032410129224062516863141821887013687846618572148269090182241598520102342296512319218861392624743938847282315752093120540401180986483263432593978502824760595322587874552379250701628585722441017264005428736654328888653347735128537298174107603271150134475352014933348418816104673705812986603014017678020467148489976085580049485195429106662816166285853112614175553505462486967157588432927059991185723158674509833494450999943200290259416230923620841685001761372950771806104201417684178583985226449501302148416082002980897667175342488520799778207246763125833385027076373484151011488302844161540719325249684595956266804436352954209770550892815855752868278694495701942526193490300696009209419195978275213029096516262129141529910927714376540847490869842734428009588545625530887035651464398206237891837498354160559724035426761619711293620374428338262225522548369052367894579385441797991470395107286309996932138572982060606061275674959551703142258549165065013138541281676939407599210797339012463365406926590737599099313569251487411783421570016061143603712298725782223578052190061450928707205258482835841842070463965257830844313468181921031999648719811676115563517277852697222150707083606129061454997927192996185923128467363230081980879281836984035381352995645823104321761869505529734727257184444358563008060922003473263641493486238188504525133628621373897207936664650547715920329620242643145853865698722827677265670356535547871040489935750958694585347964222109535661736983924583396144353682203753784749907685732237367359823752301896205505795244054382778481035095263363806489496397491050206701767722238205593782289631332272694218155397431475770417990844587389367258092783177878612462234024919521682719019640576566272461185945489489207462356893274708149413120793341394514893360016084739446444337156617609889583413235513401898976533054135293306783971574788386565695596201018345074381005101850805292003288797045364694397901551397203189564843077634519032857439743339364986105056001801434647533377525895017774257062813592750409399748555857553524683147828499405470249145790747499444781250326853935695749140967004446191988535004391876808354910661047630058556617540387361259888208470153375200980360330089546585284677428215215763961394677469684639218172638222208896578370789926296336379670469396980933590531731341082546828297730779290673271769764386282724870896872888210184191499397739133305951999812761716447084890650074793540967657746448402073309393305085681774616945763968621637530239840673774519187935670462059917294797910366807744078398570580804766767859898092083765753176746690118593433034222363638465031516123637026355803551797781808667331099261478843345152255960109414613023978400535524331281943198731470734789560356911344703021689374549917485410335406339295238345626974403982686074785301207905543354873379375227714817220770689647080329941580423562397834290643650407890752916375601613319977061240255964796765391871521671277725332214598468747007505695055343354234456999635863074547030258449617061099480369037235146111891663165576563907051460567294146870659692352419389362342014033869405016557821102822586766477787840489958147496559741997347430655678679116942036667370653756089637315399625222108281372174537531080365948632340021954198994474202780776319546519998937894809127796072675018100817411259092500055175066065085550338573580264917586167686473494780859817207416602703468285548990486410947856022216584003287760249599506552169009542878220322991207523465401194265432031651470851849021023744450368218093796963403587255992787802505221275198604140095801921858962640491498863139861516506868921203761193787667709001647711226505648610252719891819988491164029006120934300823014795542079529972140307083244856390892815005492052398569896272618146362954739433784532048863673351328567936177235017336368393758907367417904064194393617318305095954611503014176297969201765110366108062813028636760798547607577703318634743600616003177441772294994549312610977220250787203510887018654715853614108791914909690618064186792807411494004818900734925459039664206182765782331185507867307884113575440166255814510583001505254715732512276390588948767073666503519272869614107742257330392448380939688062558300852233415442866851801351971290544000949279578528046806495992043156727667133416725276384295477023354558701616396576578165972515335060498572096042260703388842820506492095177177871052258405920131165389122137776532508598148699589942973768012841091674958960135754459261244875195782097311194695522579719306876636258083773993984632704524920410833200647265913830186859829952218194423867244189894872611363036141512992899787018009260127782755153977474796486116739187920284306080733705381567502043874332125723523126749602271227932576110272988665171068446382438498145610620799830754205186092994716026880556711726112155742659356901051454143020841737447982727911527021764019336703280055000574772401263367499418704652962246650598693469765434596947029783429543333635069505914736639860173268399040989914285902348933073010907336666075912729863437787595266899772313944101246088085014902702655738634088931226312448744783320621375561038248881594252224444571727225647672889959516608892064562211327496315234106094406827013868276246964086492803480654536858068268270810641430516362788994287877398416501869357246469310077852382852489433279697711749124400175367572173123647931635385401170228523820320474149212011120873842186507859429167237142777948023345733912219439913511627008524303168011243481374388797124212228591294328054587206229153398915168466337986990885554520209623918530154785417654988148180988506621232877178008515380477608180220312523340475431586738302476635689178609099226714880827652832250020939000749207874837073720372431941270962041094403897935780232727682784841286743374241775341350849153867448651539234474041381370367627432910814019699101848994122117604860507264988329851012198513129797011182536115818414976318989725212875941898680778745823113738496404924143158417783818895602600229171817128508000205880298189878784116115288783313833751411330670771353441808786557949910823302557162769471611209168477561830463974525839742977582940983489145707961367705399001903866669183184329915233842807825550027670346047706539393396167181984005447953373459551457251695483743611163612924286290113894345180919228808403473883883548567746160047302653663757029185990215282226014900891985247629218102484064491593037608037473960603809097621666473677045350757783311415888722610825601479709647882158993298079797513527180959731014798142863821295755320552231602112230471826376447354406866976295602674125273773284669731301120024599039172214353518022694152700469992548719161474693766528044624780835342553202982579900695846618544972199693563933477385324621533238922250672597978838083082196933354665656814097427265337615020444462652689962628180656616081497214724487809624006684505662988243184714758906219097005001323388710081739819447083298649993035656040007332436830607760832099635821314946499577506238419963797811215617544439874615031778025010384907721659791448185130300663114232366060725293525496779801920875633013781476167398448971156073207887349388174909513856444996049922473826930175511631701280364137496169784556503805047210578265941001883328336225231542468848033993788506109459940348637419429735870600048933384701749191306217252962826757791086322296364993916703601350563391548146291057188082812787023780714062719652067242878446102845386577343574062677564284975280814933217410384486237997086302974759243751969336546420828694879362846702354639764237187475238166426641918271615220239043291511244201377146495746462058868697535505255995362581324691091303812035055607120846091898694129900441294704673908086146927291260091983877245703199973380940803984014159751689544844990811927962267402111990471513796454960995897852566646523611794793429511713359101447290065267070304215478807174621963623741181481513227486645169441945068651148494733454675167687162838173746810822239778442365017846135134484828779795635482507013925527441133882896924668455756261605795103382053411109392484543433129521435706086718554240722191324109492060952894050462416226081046271846655487008816764300770629194435079725351854812349501034701812110299262628533270809247381947019763395226616005605736940136877472794091944281300038742676323346080093312111995850573215102934695807105053964760528709221058455037099725567524738224634804713367957103585463415728082231763632749496524234537764246367896580605228632790673542142573617230768186149150742241792712683518582783243334497383369756588359160697755021285062369997638275402696325590953278372920598369855347134012831078308770349071660129850966414000143485355153939155252811320651012178608123397449674317779246323519420223962215875267848629147518030902589177543219289223195758486306016636116693736787328947042223933578844796269209591254234973611820577812013849974212654139413069017867072954020357514692956494608289906902869937233991929908768067166787450442298023093397126575415827645443781229819546147382691006506819594728014589913832783571895477772868666997346427244658922856554721206493442474726117008312795378757791622791757980422715074853590781532977156872949035699495406893446436185073023398535024617740500874371595023676250489849974077053699099140116603776721710201832356518629279586339384369975824026246535094982691003916791041610171400660587120502214913737315128734684361031390544269884851548427511987641454832039692866410441812350858800165624195478931972164790922480494953043670690461102891094531833639745663110125826043748023071072911204595060369280844507846332037885944999713802420695190602348923457327100051387436683479509677638279911359537740499840501497413198644806903854732287702624878258989483883468721584261879535027302764370886384190243781141561075174215584281374864475111858730754745188830150158615032043744974684575134749066773466662774128548112593382055378084597700370506530790784302935128488949537471821972063432148469548928831365185327606125818625823924683962371200480046204882767656477384558999141892267237509580130763539323138946857888027550096863158859945200699937220380947952851558343634436758097471491265876011227606367826023816167651844712576798583592136808731984220398167594443589235208624740686411453205995068078090978963184747900689922781149178697999268814241640679689912100783785453784541701435688812277567507319643120139149827095874450033401511337651450260606715198760034845118203258467122911637461954448609791361424009003386957511304904475904625836143017240412041137892241726361158606497973748360938296115044583100450113197822810020766357233459874343701910646220051799305997216538213773844056519210243418851508999465103548236075269982726905448069066041050013076432802735276820978024313121563183751132883592285353073567995001460249729589171758319939791858972176633846268226022582134263649909880610474879281137012468608097750010724217283817150225328077646201862581122668722388197194194123703669470362482722285563626285138338473867376078008666869866156393725771501447030820451257192596554169553446148884809782984193757381812539457418119091401057661516337255123233750521041921573597021967605245667196563491699298923648855585431936500401517333459293243889750771177098433556957480362216691574336993296579233593121039317673815028278052903072573501191698071445444382382935234586271530356073828081813147017366664316044780591254093485470397817593420390034314053092749135208343174786782584250421774790883167386501682591126070870716479172938375633443600905164700728128138310734625062806766728677692484893429700984448856428832103715161293688593378561487970402567660782331685662980609319700950185786405612983985778088051410866899679755263836684456730406075924028148581957399922289123663223379252191891805804356144896659894610880248021304901775500239368412696273669757662182994467242309902194873441251111030194608406679690706605433689803519324476915028831227609703473369178002589078159271674866589385583465063852362916745759248980848264650784589657100730864764822425942984480819055854701674432797478251662558522993751990644528048817949075646823078145421042088806010731090235695366690632747659735381267957347605077075955070251145522438104803024865075051651608959601255670590131227804443971279950426533259105786041664867959706733481248876011436728766148757193764720661456721987291422405649767877040345108258680747408160131053892815037663453706519853096710612361640813710114033318991938793842207605645649769061808922360223208206709585845773231585520204924355152510992084987658059220088362370531463980086850667735363174657187458601167995710462483118484179831463374124142350780398893172077518319469975983087205933204252176604460176607522757904324417966715804645479346949364458571165048753309017547805532918341090468005205187880437411471091204610739439937157135590488513686306480240685584352510001044289623960195988967393984779579702762617187968444332945022622765718128639978505966639240095011069201497218712422384206031670784214980824811624392295657789726653733417661453856724015216720416861136526381434966607304550989814882379341030176509373009227139169172642117566214914203766745349613360424227617308739604896427820423786082445711147776852745518071231151225451264055108207707701929059541637746558496692032054559857726276636363074787840604131211272345153528105687181989768943810017509540185818291886324876786703593222675727281005948460285294261254188169038829859370145603283037179004618830758958759983340297277545071075873161560507199949021605117109336148918603329206030107308954838254124839763672613856397850563316209881129147924503410465315797680413448431888641622938800678656624352391358812465608139521423541307612880227449036981431306698203216847739786137851127427209212433992124474528616922199948604092490549476379721299799438806662136878895280747796262187281742383943780646128857906767979572206303288309477594913897325571800818538250541933844816210407431759168755293805945031563933893293474763986002037613484300133750825035733448186339604064061950547673377377596087648863769853138763841119909188180022813207536102261396364760220816349536818499964329372520976692008141417720187177931949836495350144595561302908067907458699707645897030166551577396811740483523031511584332048944077478064817568580990984597603219584402773618432487881772742261071255144000602903743403041727056006939181405982843272643634690461156946699278830788182610108646895261072388160340916002045394794250064845458662450041544165349950348641212223518706664975507843451144119780245012629207033353088928969124322318986268743940673967991449463596296677516947008338511817987471019297892466148781624399980560507390431376522857837668783187520988773441215214458456701707175795100080475412177112249093343883529267843802627785870068378361104923084087088357903585848056217331695786895353482562248969776960538894604607807865414128590406949873274798501110479558632760948409479988720813132121388499019031957038735217282959139409755287553039964556053185693002503177137278717216423554617639484482819593125785407101428175120345844236500907184895783321382231189118119503592693646325438614750211299526599774614013634745556938889757463703666310555045883425458078043804460208806850627698632311809066102830883311982479544804029095318011304970406313183925252070792824438692695703607752055553882030094518580128339522924827881016142792417722280322678352400250617265933208151056737871996604122783630585552964756775765852028278486801194024719982084726877816213621335250276577168682109428012559250683463135932371726098100645109527818841354612746481610338979429306416443565768879885206011999937532638073093563387159629336649862005525688216312576968202367846797408972770587315063541328622304880287947006427534365852821308789959198843236720155562776328019704560943017444627031715397677204233201341919218578483277195589010440416694913904812668922907270356557728198093259467531063952400800685863828982256681640542269691658861609242996439722314805867772349103666787052259235925212244201275412844037926030435859091347006663720182409947742244272197583822767026460871001159196290460821994244659231575226911296919337080921759809732425382725395618872611539956303794067160023914402182104025760733271182948326673968799878071678776597261229935397523588709782319773890858798719885461287106836193229442520069820898232333161787234059761570529040144764777430027428583342177167810767187206070880639423395390477193139670024189799754722175666474222910181845382588510076319888942510792717353978917196667866531729687787903807249776575299566012903168917890588928134072682205686834288861786629737409202489054476621703755613196340399836548509354362645446626451503995305055077459762158467683815386438278081407187434204337621670138129624648559433462777340464165645899858876044685205218576563909990579909044959617032394522026948540008480564998487532253068171784286182271620642646174012833110585105421402505901343225225475539872699704957835376085770557602291457030436738335027296009899422697839990176282341277895352327293158530760313958318556097802685097179555684417321855197607566875819982019559460852192917174194712036786277198826919932644577541596731155901781008098759244449915739283206679395694626243203252826719712633226222726178690331076369512476279290089053430206167323614232951659031504019574512990029778665800679257858660427682756933268085973732632432261779467823974384526988835185945103867235020464644086279837354570311786441457580707075580027683063607471916900473394301235544944500896755202359087420234403829113345296832032154670036461035765992257398034423184027625243392097009358574995682625624334128095784374785617217075101388651778062429886207976314003606571953568502745148611372203354215949344240075357766610344529443300812323077660757443335164110955502646014099424893132672240817952644065215552952561472032696899410275363648209429263462211478140444980351315620519429285104258257582581533343341681912902988646570640955445390715443091583782962719050675214947761416481375440147850311943715659183940058910984905964021171026069394682715634358921870264444356587351628692447366397323701407543601330596587434852129591629482347543331155557613227190330902095901209412769436992686458878709040482137332904101692435943527923345514147606803840442740890592760991176273476459949326296142477582908237049406317253517989642404582543871230130280907678385551077433934908651169435209031138639926205362958250082466579472278577857185130533304995133257240409013417526084399989455307261773742002817573472900424323374782499157209059711425176037459988947580002144809170764703604522562386457256564346917211967431480117532266811074947083681244683252021493462163440827504933704973615309593691277144549490021619438533840613065083660021761909409697699076973064080305505857553797313699539895704013857258594231160250324807466605917235978529062686259530554045777270575173609942768769737816098579159711178284475233105719794430699653190863178906349154516080839343068575433777837111528249925214662631079493886062363738490195750750598037573346162317488507669093468767882801802350474730842542479154090614116204143237807443974697875422197583564599518327742499258296983564931662072344471639757287001013010552453520569418751981721993542599287625104465920612787271485389155775477601737723972873171777144058777778719563601647025567740200808377624278503165747421811656480592452045392737665562208999058006603007957966602268246881741045284566302470284668732936850950485210165815361083725342858425080376247261562245429602047585567123787504368761328082272309878181374304491459388125701980398874761835352627059824037457683159721804571935078705542904799358690362973033368170347451242313427324192575799769849378545968312377002472624712099741785547034046683271909844464347177744316905778009949452196694267429847647796566261016032349530567746834259249108296092140796922102080904580821859151955455933291040507096567743056451842047592673621869042703920221951549952841745506159494541581882480398346291560009315142051753075137544189490257407554620598636232290914804546438789142946131991073955243538338255700694776059830495160549071280303712524283103995356419508158323567125259079225760589376240547817744119235897794931447198862130149854411425753615121680136971154975607769787738459497191184953862289523276022559037633558001047408000937893763658980022718015121823819174113020523902387999395792240373590319362878280384800299048979161340128198304084762270147277490803248591708706828264422297009174171182188898306274464862602290843021183581273700187800188215378690292426103894296556137019771619497648717293770832878447038719356500579245090245293205821729393985699855146133661552074152470932516309930805979015177182275247792643581236356358913988556004171049450597298944317466156758402797908289389026596625155147876318783430890838156124041728185542112043846156847601749875969401303070343043175039895564573274062701769439249954509546383609126742286614494041902445499548044587476132309438477601677517885841110723278926907038630251571304671241578867870063838885586913963644744183774673510419274457004382921445487510960069545981396671427296809988243296203600181766639820131121083234966562738265780718602356463964751629672780294426720716673127049768337956281156383057150143800451563330665962517859010389309172951331934631599442987989770422829796395481951886811064996147487800250115079016295543101362907404773144928040275690418518601611858301310809124468224700734703400096469220403368863041291294299506461156442936223652495017175873338425282788601985377385672048670302199294607247237560884019849035114506243231501966392679093130161934839112167828387928230993221839920470296942559747180215190824986643560729952154456674192424788296626163510182763841321380896051359771625153772488595145934773743143165034198855831146698026518109473539560451156171270798111613101519736590766280577318356190062566758628201748115493957030269240336914595364605368684193836640538933212409379287088029474222446792008970793183564667554379440695231448136371977556315640243417551420700248440165662341738932760386285751729191592012373028561074526440956151471971399594871706980116601654237976340155608544597761781332091227469832266138339299614486536909610808576557813268850915619997785432120248911263808678190810157476249584960118721464352143005000886460110212677321336568889688657612247189200647834588169482967071386857937091515425861505087056013672540705218313982468626156621659216985285017574374894660227710605032942720841692489639307491289563807887223172385828831815847896127223182643652544136294504415513086872363288887897450801699498245456765184916214807033501596324658997115304785553983272543239387640657447720386035557401892150877182665836428762471042111596362784605728265582907789227993508836754857792505684591487289160035247251553323949827430669194638265027424226275503820430507181301487354697611531422285524918389023204274702356323849455362410577825834861532550732067132048768783784485401952878984862490464138812961991366167471656574327543072993115996920660259099747622618116932809058763701342568772828984136987810854947827780909422804601456687758527786036750920647196789803774186359486995353250007134840827608285875816546978374233318422439893195847039085006192400338260263903898791230017398187064096794407928663621336690389544555126341465629827663047351188693698501206969376655227128153164853633924704638524565912296568086221450165768963014869161120503133402763501092041447719539881093846353869602437888583713866077364930028009494870542588402226942370361569383787891391883109520647208999397360439802206867285482041632625802861193930629458706843337795768504091517868174238207527595526006299792948777788316667403279204031319904596071294412750067649863191482568363634237818484753682536124740894366984670197391530411892195369627608435385273422750452158133253619075810754531758859800999829660444525057022139795242797850969225349558576390077512641136537507960115986191562993843572669372564550780970815617852895770290187529702786902103749031030362145021458633391979844888482351111141182879799165823829350861914578958250601901167933932383762370573415463290705738151202880301454360232956538989050165066955025125481113272990083916986254849535861281562352584837268950283969110371654766850996756237443972762797780902512836276056082647661652568557346769026835252253655652418093109425295421381397137187724603783866059726261108617428560587203415759389627181201792073745643438163182397653224880479591672290561422258756411793620991912226079845409582690865519876171578864293407774778768564819990778829362004507376611308896504865989335514535042710997977315582672718681853606725109336576382868678544401746376599037693013776706882689588252182868281407277589172573274778720139041065076313319103212669131622401520182215802320150057826787391091876588633600933877342482909986429815166484599143827081330213240145697126209513785445901004229290831250221410037115746087551781306226918514452953879520611719900732643411611530621730692481154438412907891878961450185074602682499371108345321953774769026670538201458493113811850492403056701988530483679244612281930107045513491166213570048250870057597702888913638359474368562042883513093589295993971026183075257580220198664029669439016822787471387295481290987208339484747649629497255893123618178139443086143344460666163901675067066134683202411426565783563494692435171697890206595058160671414585155845382602552733973538374204276724724326659806789728347327698316625198769139538757117508200781955266056325163412179890747095140201162886783956466927291093679573285029828493416868906186464274819426568142537841181888047611299455872615150049646166521368505459784828210605345867762347180523879015280464572767195440437662532500878725223365499468769284692082854818137072169671813638053214710817067305586412129290323822782914756535507543949260499958836363199063514159839636523082778976277590849203379759793272885259998159993456210820215605504820827029341353296505499500821086842250511717438788997261243885987582058802063766253581324253920124077928737864675505824136837514965166403773733102843178310257898603252498935764633609699613938174850241521569971287914963862397193699148722476839644096583346434045353691777159247251686430833514976753210697711272679067130011884383897633253052917428371193694660195914426943887565698110605418049082819478682349820472412517366406943414207463982942111162340921017197634978255580585717905595736813087267501474352966076364226628651232342740676894470185645565690204459648229723438358057939842923534630542464616196243757675800867982466175643558035439119042603049853061092546731485999416687421414752641480486544342977025183890466416838273827801605990912552449504507877188774375208170520919875168962554093245038423952965303910398548072670217027427279884994290939003657687736773613999100863032011352178745317116116466237121041884605782695734268651140093031995371964013269655599596159318112706074246955432644695413837139205206722231966959729942344925703580444986765049601612396933652819283464882391253829128291890650781203929881339372924795685010108791044895212620225811223657450196853809719930673615151027454397813971834926440723365230715636913022793062308832882182534719443759707130611560230978308481005381802175315633644057985751357516995361271556992401485501757250500665913695529111124739317660818227094232165650558549253523756721731969003966836618218948737619064001253529742356262624862418534872964013998935319887797814180185104380715086342620520049609175387651523542150021115589821937776214097705269869944250789322389362335362893734767202687265421934969418940525824486101496853323852396351645256461976984786703747618210869325848052518369291944600436308696382465635665513264693688464984827258109557630427955797882462966554252756193028668061320026602500870592178485102673453537593502795550589323363726565662273899639591534056604666346259455059458059262614320770535827601724409322887412085513056720573451843421685602287599439075474666321226903068925757320607721022180722471735049765177983983177983883562598372948775023514891717187360584268109972880807702022529777405495584240148917816593103618593038594520922699577862502881636409573259661851956735759349560424254122745384291412209502533994687129431124440501764917043801258703265363086060837839439989108960146301903000648444146613639003111204371197325588151390683161824048592990293827570576038969226529593850189920521998796383418737954249066138391570085863242344477079425915897287928905531122423103149978171562866496518799786698094781741062607500072339137077541220445179416798295010909974945109530741640883357670769697293353985960908520956487874696192196505077812261395581913279284549949245150531134623687719602935718674635285555889901029679443608005590162221714697122064303855602923807301622237933717409684379253734684050767907254173580295188354035024712850004464951106800016552624472612639056852003232723207110891358243714015085909233266667157231074836565595106634528038672014660638229295166380502373947290938957672113107376048842682253558713069744173190282771079520766576839992718449932018316915971460129594417771807543276387335612846026070913870928440317629587551346293242708427033916973670252477658511101041490471881931068054115194670087335998626755087870501946849727292048127011661605942832964599908388468988835076058524180624803944832292839165765451694543375897238592967367552346600863492967721335574951600124771241127965757870702185459317805889380321470626871760553008142497089962630007119972018292578610816905090291783361437256428056738851914052704649544334442032283757011305534290553611404938437671784490595946308442102021337767164058922811889205605307270363308654348654700325668470842716724825678198471561916807040518624982948852774255797042895166378637676619107005035002589386453050774185803017352067251847633556704372676807913498048811992430847372421543172370677025511447323692268397118231382595687285787451509266564192387298845503689182803386959686953272160439473874328663938520797603393581622789426243812418048799705849764125098006860316490382724479694920567055271773566022057695384365619550406572027716517918613517836797181311429924931115668666675463612398440095389292783637031441942373328232355469147444464556213024469986157359890807142375258655862836780747544877439915769244865434831508691028542320225731538774717733989066672062262769783831935283457465664596783070656177009273244017571105408876707297362186575924660449195699735798341915520953380555890514569586613150231319111115680137306257357618533974200656614129353285625527472339433217228129842325747494255143904629579097251317372789980134990055276647172231079288411556673937999152044169207043564337606565046092716423348104630536346307850422806814377155114236781174198850438095161045088266178960209826783018109789702959309704829948213558147541229781656584156690943182484193494208733321524386608659731566164003945986552350522917424578011357708854279923318436438680225959053022922150043145699778532138911466112880366412886939543201337516396325846926592875546566810318767075960058778763247902558322542236778711687781419260560286357417587950906641630883590405295768750146124726613944878196880145935991756264890467057045930546142709569032146913208572907810977198810102879975047003242212319832080688171853714488911445833130514815282938313786217463705076790371494194542200306532106519534010375108564524445344741422639530615309230793606928705813458758058517415827641848842667192858822253157872473129488674768683545913220540121341635252767763855308532726120465361268263436746457174567262912169413467922603894941236094141678294071962788085804703872631252940326157697505375510758839712078154506398141044336372339138638988988904518093667140678797596083285329320503598170601646684306718513851604084817076997505884657689260917374833705271056913527277466748029584733376316621405548327456578862163729654470851794067640617945007376867002690784949465972417720530949866301624108903943449943918539453984536700045355785344468684930376325450925106570690624612140856578294346606762711708701191988055828241075055433092272890810389440543871056747216925388897887677817811942079915776363886444653965577883309312534757482480945348324615205415609708741072775464840572735771046062511236364097072170043923867194948428971102635326204443435131815130081815342683545196267100832106391735533939107479665792265803382532988949281374789946323688371893760573318931438155910685021423561073303290363692959728601722701413523175368599124737617450619814669235928926496245504037250567505836850483760426514260627478863531111177700753182888360024884773334068162872747523231993294034940629450219133177688477250131797837043594250607450209852444294747961501245276202678517396459049603955824685593986124544146761655491160500930896192058871924684566911498849986945368432756789891101501944997696761005081941907563545825630682538363691417382800517245656760063813681715635162909789917568453040285075330561639275593815699606884095490888167850587725055735509513467044700204124877051495282334171318336547586906646792158965414818556551066197924090761591362447660729264066508398631215392947802204900176853857458234925054527351262554861957903174845074654036058001407342670514250743419974491602640836075791409094855223670730958232682984202857058343035064294693334752299782798012950760763420805099260781411818126465774055639737554535808401029756625997333506591642954363628228200947842967227273969551960135873746630311724005878506970773624942415430423559176738239232333637059225910641467709766437881986406466765621592127200221124518505148977977665136187823256856632542073927242784323711736860128613272336134277020354250328838470824727708983801336816306098956690636172138166965306003674328621481192735278699220086006515657914128043900935668514779167886821529415207454594244166074008238160018381534109651352924253976179753891352888992709476251194650226730491421418951330516150952883844139487955833095535129875379688267157168697192782651642129876462085995974397159577855966320832585975046246846154174019617399267835843182866495387772279145790385246574864239084858190248981311135628115546234535951143319660193246871936951322634883182080758213087064294791956720537672793705850449052845636461820524711236946382440105073253817419020872624425107127735383117265293742756951233519767297331956149176264361702467491853703120170012426228664058154837547364812868355559690999284620650719601119768353029037735865037401994985981565350053365666718422623349544717009621287644623846053981628208995204299516014566892304173568462977561217483846736875997750181778617264909092312549044302427018174156681756669525528008947596062855762721753755336554660111633022188321736613391683792904434215153191606350036452548625585288724358303029610292964464990406131130142252746688107115315482751001104255129443535369723315891559090192564701105795176947851486974495888639280618928691096729606598058841578396332894373005915300469864391499703238925041345853139461295688961375346609709199858459144418808436731236594198641694315496090622293069024377256034933639661773223018360838329664349347293571817184083724772500531757069311976182617249758971645535318830988614817595682622111542069735012355088569310605037032416156904981794272565990396287561084812670355057857643740700326204902813213885417895211773859622415572654373207465003484079991481941414637710395592802641293963306483317745352953457171669045484340954702888033400626760869544044751623618483679278283998716850461550257886911687400183301853418025833170142603838244240106656987194508713622655374042531292067372309422600747061683289755689074409446754748616595097727032447810840708851146687212954090488987979567087625347903578198263648244374344357763584041051136213447710645635400306670392138549212345497892746676972897183376562444317771477949994495282922371909104728340764949531673182334608010109607113009877191113319448181637109161859091828132277387830002172160178004499493523337805168779749028488449016692819325410577038962811606286089263980497286959597951524631006472571925232518909786863918037419748421924982279071818238460489394836814493461876798629554246533314787463570011676445847023498131013476328955586503044532017656179409471008801884040185900014960131688290663466083040984135796926114672166501364924192067457588428285784699762495775975042104674087139510393535385004504119177526222533911870816278997546994353901818221431595247651883554930163931577598420488037029215652233124473918480405928215177738612130783219304304223699550357217773431894378111459908561071876195243731075997557711146486971867391709531727601817878771557867194633074604978473426669997315219096777269063651788798545905641534139640275371357545713239482989428456769775331542651358972827566238560522733842876939579499815015363074781859534233827406690996743392593325311420122786850535426858659889241229688929765108675857157830093613674143330239313659427865656234791798434246247423850525661184757784034121884552400271192371673677437472507282623627636438847863833982817913433998664672782234362499750859457160390180227422767119056846946066772611831468440399912061532995220196797194871333680212037317820472101854739986268142663714407299075829415370736379825997956816116300105561697572553355860175539543269758935172358977706073666593982318303046504760367506319200960253759271242877408417230038742519151101504243085655835924974646148393705505511355153729845225920725484951563720218266075610128493374759867835713008829594922608261915620207215272470448326635599680059427426618579675136630394199075088812247026626838745992082780429610865196954743268695840238992345863123240707643552136905662381870686107058689293408950129503810156151169803888146175889831852703324178388661990429715101053703255176890046308625584208316129834579838684184697294952921518697247487321117756480627800488117712684724644278709499294790490779060654513603914673396498524855600656848238039988101261121756583089087143593408878485612163489495870783896515002302091972697544056043090541448752185740941411511847329679575784143116857888964257264894497140357766526350850371276128976905820805708491958071775643260538240034405239964531966322558217814920644641438480353783881220044718855033420042470711270388078796963731611095071758124745926780423356179702926525947139127398574015173374895373575628970809893096433012918373493396047517288301039077021416429696469230046966010979094359436372309609920899182852791812546033308271560085803734861884124143756400597531279574324694283400298814509628116552381430809819752464463200500492383392460630960651494880372251985133273274921121319689176398016827700981635081832730871826324393752858025991133333647642620522599272188473414052198455992158648183496400439818903103518845728015877662855977768609933534861187987861769926207304223357530751153604058028642611039003729525808984132935063523530139800900462733352400750782383219830322741593975275902834045222429944121074047739866473446514302474181104934192271251305312199794578201456838953957304848435226175746041567140239061772675042996184220463549679059410819543947392905119668310973879764373173071445897337120723042138634190867473743546908599997254334030647023892162865114363049740985956902016135665237902148183895196932479094371639980879097207353783619962335752895205483822973495153254843019771936349826432108309854963076783126998394549571799512370684459486313274717014325452505675047707400645664550692754429877486712126296220823750027117048834392298982768118486427197871141016875887731045757792780927396732647937375739471572813596772155668997852766831870126618895994954846427420480728076581749741824416687039949254997882703279987984525029909129392355598681215848203045315807674267176944768952809634196042446402559371718500268670129807492095333277475879471495446128459420723271372865551998452522393368189678085034584239864530260959392506569412387627252523402939905384874909707311066991481460863817140644586769466315650824998959433319596994425437610054409974740638785959395062030919180927443644505077874620792146552381757953269545845745838080408451401244463601823885907067032529655500897387082368528283294767772531784767003689223372130778019955455511146222138880162379792068896651600006240306637324403136277690389988123874572905322360473926854456907169330133146355189389052282627642702645106714761664184989465485655650631960170015026403335629853867447453013279099776233897516668113825878429855476524780200290179794779550364578920307213897776831340985950326396724887218147250508451241532308418637903900162467229823830093677510062996200090318432361655268080471131714066053084230483657218354695162899540985679143828451999626333911816636310087415461210588297127040429554856113039569696096089727005191804487518154051295564704209316584028911189519516063962757038273498991577956411140388914521195667498539721927602803046513868451643706535537791874512350951279178962325871220913516119157249449963613066525744904963217390851573914041538487649605808026792123521502306253962163353760199322680051104918041387975732394682837623593150143782912429376012683720757178560184681247140252348427949280995917432527624332863692422714079731624770951141325293776359273567654886974109577980569909111038757294063922851960047676832771282190536860529098794968978215457133142152764382808330370169132924809750144064344325217572721054367901257685470737493249413141741232155643152097518517148677063074334571009729775673931953130316441998094197441202364991239446270555994892982663355597541001443860738577024142604868611838044996045626661462557926765602706084784229257208167164651461942387492885568702241971832925358525994864312151853880084318277167248946512807934800477590787646889607735137618579231614758268218531126837055489799230626388865116211591579031823343123341810447734675481201419868405235016614139597816139502554290400837486711977416844103741698500656440842961310564545113217585805144097968618159029986242432403568527459220706584416221304737288243467926767096864422018123392960744361403759515523590382084969086880189892222266418160700287192946833841150938342070660155409916684818607193528841207915876876770973148693163091284980500079160412696636946905047001308070705897465446151095366806552420628728740292669425930864517361897812239942148051775100231892746397714831711012209446990770162476201776537806170410086094818493513920364736427735662629043600648160885130313914942268149149716262633497159101755073985009361724314639418044276398013105455393977394194199581418410344216103081162806406316656799460589754623641685654669249600780785488870054858683413947472968041960888799615532299665752455895742570728341902291852478866003953399623747208528620714917429876926287481997520797572967433409815954579913706091126971185386437429020357355107944304636227045249764609846510699222148587929147475767039919463878481245380619745636095558643037353903312229678190745925961382131201535982541817140415073266864318038752718156093663301998555027607033237247838935225169162833978881775002971010625952691787832748068331571232591789315468315272283106475136401014251274328689812733813998525268409225674525168535378097998901586053587839081614068517939836762974639466696811670811629549253037737050463248992355417299249101650306510804471679810690064200690003294202981005265426049139802867273266384491686841406667983079011294879880725317400947836009689635683619844187331122631944210541199012929502529611074700900077257410997823388865512557635681759165129914224855243596379286853770540684778716019288489975972203892182009152984483713046240630981077681204307077344158987968443771122075067682963468674451153619770747002871741430844271924641038768725771081184167643137408142412960431234869665216976793862217031653272897611240845817141037196306989581411281312376736260397631265975107528828154748173285240551916891882649185598387340794178619491084185164013573887324533065145036775216685180225676723721192517356595679970005313090713283818454133463672780776905890006571540946052414250477629709059919990189834147619186075963048367911657701972813395223151450065375818655694097840638342350087635867059754424230790010581823523492728354913765236638277637811860794016393894335356681325350534367366607771385030302847530514808355199830272349560393481671560555976173698599493196842518316334758265425201850204949287741115659846622445821031131729673978424352127891926682094813110664937130540849853633228093499089851678684512157536359438736724559902785086773009359415457990821604306285384977131862103767285988310654859493731041620993002574404339214207173854187033223713735622187974597793487528519884316372466776686827412894878131226786670771659123518252210330329509240353700373275314674140771265453313767219581007798190796246751643418829395417569612951196761263409282531594500528706233083709296738347962003205849117268045512795041489741224645183265780323079038122787875768144675397054040379861707677469428307357377139189887594124071022189136822422778470699384030625352095571249920220781812143449061263985227320224482777637014922229094404118171034787138941944623391360000093530172811000486013418041195808919298363081429537850000275142729046821997376607103191360883372059576012132714424507770566575033826099506143788019441518420461648450390724666370333623180235487253824191346319809918659691525885973455791105217889826452269881644463493109467216263144492569003053703004193552650685390364220392220210612713346378832914416725796858793544519373901983904185958519919809817760990316091881103488673034247067852970566804064991846464082178294397764030665748779455870044889093114348870159071019422967406679272935503241625585457182728858108078560890736739056516704746906240351550227520677108747736663227532245672831913003851652700043024594584407263918738469547299669142054193695065800555082861656248687933074825483594733776049862364668122341378753089579439989521574091912273522150692856103913172213565467422100304627914436349842140025036140205880912629450444967043007054159779586447153704128324466274100519187211634890891963178580564483135613387946819973891397180523794859672411434821977623979970756983495316442449506007896773828263114015549765433132654637453023652972551169723279896439394723666358768204908205957882130627361350574393036482615396217209624942824820565342208902499867901517445068448617117443702826861047319789755674575270115048443465550692178158704162022004335397326333876401364821287347234885220439256603931222404515765098019256129542667712606604095634271303175556439725383239266624971007036402696428887816624379781016472157578776662078075938888574808170273085511959626396447273807676176673448941670640918821908656735554029101339194031448240210723356554641800738859570369387491822299685259161297855615608067766141811116437859186322388643933227152305409747472989030750467366077875680425730651168545065724634189158572100714485529240305909430553342719921989147181782037500803207381410978487785115575861735487230380349971981309834708479433393414070416482523299220571334631839744303845012471036016896317664225392687534907769676615209206010582375436430230797718459650926169256273788161105585913106119059542409248486853113546134288339715385392354068734936852467631438869244779434414846560896289065842090573337842744586378770828864641002366832152757789315544471447663893859094947263324171044972125748877819283086213578387889060413424638491853373176986914892626494726219583383583061955769952537561021130061325813072170028575115157433161311073276840650966921452855978269435439676148496020551476283158975026731490150047814189577943118546642405691635899114366747818054589012771735916059570091618550857072136351110702831084208607899574959460195319238496345575560772011958934136644405663502437922833940306925889853708557761558501556797601762450776092530486188756407123326393024800919292050910328605657153438963597985438786116365045992582603456850088030918267596368676378510671694290350731471656360753109665307950608547012870321241684208023785614801291197405869807461999441594606516978913281648740956093265016909833139045045543382513141783791542641203383531943904936999779847682865757301567936205880061101401627014418010897278180172865213060930346259657126695574157090992124064992267789397397487461517842365545520274003122049240231718296410690688607877001305247047511379993488286712083745270883894933620958901818580312033702434503074466421254683092186742633189492452439708065138728829959361671329836711287276012036261833538682041175142398427198963912137415515271683579210310355404126258256336942641892051506080055562360163020490523460814226795925901725576070748416209285426163924992421417826040526913029746858695736509063417714363214054135456399130390719711078428075633598436789095331653385148680705050573232046996387676296364415252992940485345075894348371054626756542017605284555307687953034852327124198632642177582257955292546425015311559038385781589598496838516708111571079427874611322742568647377064258139987872566990642847096629790337386776521259516645875617673752960115657920963664675483042663265430183694577479821117588811917659082630533586002642495147653266484874734259079149600125171967498133791605379174696263275700907748025495121528837609152111870013972632301357268810340061159069334361668678494037870077462245633601340679680478723081285968911606514752705984148881069683945965553880770561887450727311559581906411736434999760997288007747221395888535894704526424766506118620986980145774745983944804019142926145695904591878107308159248157623212388295187584660841673165958972275531110502596613556838207329032322051743495199995725556549632069003294280344925540325585653751418271375871775289931774532628334282068332998290488799510321186439834872830078902677606390834835651799379342159907305679913203114303021451949111566267428095883030546379172944234666910141583862368088053998393588065671870445708609870374767386304277713604161501001615418364265598024660433787633074104643355979103027640287500301067156009621828936747713411596592719457313014480259315415383302574782360339062007058474812082739505966827710428826436781169466908108885419518611422534733801083798252603172157941354683351550496764929922549473836672010466348052478514108405354427580782542555126990124501279155839910957194751988213706909652382254450522983257855055214028466932345954978328649844772340520995762920792747928135978507773220555278749480289150714842753155388657063334996583644847261308106209160738837212976818987241168812750517345656342408617473847751753043532062133570896346144875933902526532337182771334716281630284090021736485276242560476584887687751702115968784808657360978651169983357679712271292044237839601005340565126604599817598624943449701765482159234487963447843438846436328654466520063383123555549259305118176257742653026912825928485425700631212461926755951282402813112542806098622732870703734991541518038086180241174491794442379372047618687477896368574899336315307151451266721176236817242914625261723534204474819282462861575626545798443316595825382419446582133417268442263829174214958528023813208951779231145142016432588373433766381578224654199024804458097624930667560641465452629309973240546937670416125675379467343592296625489063479210607133574747103473035732500078506744282462618532821553625313460062945257248467638384733272972268162086700888265314706010819361708018136802016608801022646654532094776000300924023703714154261719885817039976036838298129972825722155914713122680330954690085202198149669160440190145970182954645627981351723173993361010756055224283473447542948812067641431314824910506003249769845653962809739352220345066906937167785759704800102456114700259649227205293739515950237864443683396947987817865978662038831928320298881885419336959878507062199402250961731564547787792256318501349620866496169484803633892554831863640802467407917609955532327278164110083389411022436389368316158688223762521868808758831284375119767428093178365419580760743689016007012414365400884551835378323800550505735476888712577377177671598662050048125215437927485794412171437078573828306760595280635964012871009395137884029625220865232273590241126796210653912389003798219940514418008666436699360577718659779029568570409105304169993140871508000373954288230548779874939589685326504353858574876997588934370301048344813632784452271306474013556488586609441706709978713479769929476644613788780238449516363651377413593424183623110292790372013103538492567599259737996892845996591908524805911715958637929052865278784951691047290837296309415713167412654279571335547872927601918839153456356626670254621389948991320652562608203522938797666233924626115491422290796290618064682668618893319528403190843103039774016971336670832108514755796096509830053771613918375881747989335828762938545450854761813817273817977865565260405688025315419465558948042809283897653234847379305870687044358385497213866647307648192051192845570184325774750158124286161467435875140000241265106603332269560720668820523840365744351146414633379421618577129423638638803894182480116125631516357699544806368839233774800846214691353358712649193802095587762762197401386173774048106502889316064548335289174250656492840279629299395997275911982888779381112009397190362251618518346377933390931412003732780903782752457740438173585991932494301368676894648567340285492931451511198274999302552096425886757997227740242690434180537924299925399746455095883447284149002605651146813782968641988343379073240640869416812379253819716083227403072027866429167570293554069839186872041417327126267367005565586025924005957640686752731283931408591886081161981897350000988647202533462675948316253832290387514458053041209312884219710185031168874903873375636367325556446977609586078865102044594449095774973869584576890877265192746965401271716490929671452377966386517691599806042167279020291647216957992636182523113851495323783363148166440787724748851905213381123757407032537976361848358186700051268021208994617434883876905705631322495112089856691740232678534414890761465641877829141016811162987269175688949985517841332906211405446349505367849440930514633174588616161141330525427956478930203145426036332235865890441601781357048870194350761967115145172040425982979068849848059571677645999984715667170611842756960391643503467852527973582373299352801668868608841058583041161216669868063669444603153284151044076783938598894050129301634505509957604928102181463910698090055966502017844309606647889493280179407757709944826739143771763470784622119168442402510704022452976159593153541760698984472260085016655769720591671599583541007177550174585037079664932741418930437080811870547114632100080744322486533036650862866769342707100723137211662172006534445868997235801137592050748315216623889635871500167857761559254601678829194023409395697738009946287757995408399631967953826355581533530142104249584664893249099679283658903149902168866227783944199983313902775311865522478009970821056480689457271782171493065469948319436640632296030674974408997929259060387348056443860905691733383229987207298095896945409487221200886469470681238157569974015407976161984361051404410115496483600659187854467427115681996243166976388021687889338349130643181523276243659273435127966505780205498075945525295584563215808964641996072907934407372168385991292324214708088653423001158466156761964260727604925016138509532513076914901448705499867721473318167139586744703807609528338106403383327222523344283263400945750931565522884954655163764808164517981464573768447094754146837362987814249649282558260874117797196702562547645407746607165041836585088862492378206835033767526223911528533955168401854379123957824389845797236593276817752721182139111903248490408980766011988439705085288149446674177629027122587266489930573341084987375295384977520917760964673487105869717219165998705428693210447534794846481788324271324234536569988721904556054194368603124491174361415186849944859955244248047092604451362168005099996810023886923441887325008040518783947305253518300426085463739981830953267280940968667829070129049122631286324540180105925670852729805996097904885040696429495263110312877685259169723954445525156510132491853343510715799481174834155584825783119655214804496532078884689835367504257203994052125763528303562209542755669589460902902488202984420497567259530595026530851302987879079947598328414485393405896345635155439299920263499061103581830161308581289151375809429927262120314544282817245537036878432969011806768913638361706760547116854244428914857975146478491052970263295620438402171506661297398093598853042799778654188923848144665737929152230661370510536283855196300868440842346153989740236184177617628871145012440256342738862819866744572232602196088120932177951390396835682803590400506184318063212519655146998036804741964420413061075170607672468723026211078342054052504465172535526845041037775946100225805278736597166333664561090299023174954839886413409997729834039789326597290090148926129115394964213956533213776025584627400452597531796697749862867445029198780667482214306852904478284769484202650943458464164366928673490957922971912115650258374905050709576581808716415480752059834551584901146458245217987358615684108960947373329950814906547450519475511852490835063940758844822037385197718422868590497886251699741158231058646699900773796587462146309379493050353744658955656360202054266738207899947407387300866359419536872237295214943834838425995848686260741832072500315566339448959676689348826388924978947861087358099932633170074619826043465089319190053356749822056821555667515264276295828250482041238829931815799996093998278619000220137324133338680341562184433814188178214060477053329587804553907551351892050326324004550724461571533598563808852218183077524360996158653273917957873372869600218316777556104206457706390553555663275959261808885088792328860713703678805214113426765643934875392628551415807471319983745520787211235283867248499119399894432929595100428285977710284487282431135670894142107097672190874069773106072353235529547639640852293446930892849416983078724794557586543066778383857910855561767902706852069736099668933408795400708521979912271435564895598525709482790654904267729769677037777397957520819928904997141050225166047692609132533761443454566096086021645019519588772875042371434706370149114374991483314152006673494019173924059235235081084902623790308427276441027475775526704192347145000778786984925642332376574155876983388929879274501556901841591991763012575902662434378655493068711876571287052404407443257514496471463074291749212647488164564892326772788323112248580337194328304958213540149060602752079291945274891308816665991081385164319557900031784299341434494382769721022682084343457962097562761902685542267816718340917681539866952277380014274432312600695351652052720826866835570463117141849268304593379409945155084686641087939389578659781024094192352527388602859905735460885510683972834836688622475441643927707505751173422092788949353752795239307202493932873393279848036668405835665460296864502887986489684658643863024851316483157175709222316883104441996436790698523674612615058904981234893304719132719793883183175129970074291533588001316285826091448941648322557894429853616479656997040602335319116219823599608845899712184001788299250718499186368556579151393168102695448201663494792596754211135661441392487242583949671370058021227504416673376640594514816117159887649875102733314768109609659477023689803189483215877075342198383270344692485466334784807836396848438768616763111888658119440685293716950577694362540497602849414460617934197381338246159464679904910304707941783165229102026989203049962191194671173593329753902145331304597316818685898666604235256543570812461990034524352550604333636422295267601747782518443125710892920582288080082194809141099367598736950980102995074159073478615581178455697884901459354552992693846680774429730523024616131071123688876137138748486671048948449441749988452191176461314493968686262567524237759418793791522641881610886821249776849063015960213324906275623156663440628168937327040362571638394093206081380219545622016325902243310092117652741497493130925857550286908860614626355730200020851382315057220005619236984457042392451313984042389091635184479331622182740132630052839907958619615720894328683932658479387351901933416873633702566355826144528400662058020812170798739380900146516948641119447369848909612814577064114981822889343770912516180185492137311447196044504264000290124530851927634334063757584973283392954289246667479661656119120238865740523150772037464830129859545027420476473277186183950709118376771224030098540008993568755513479275092172539961945437457486876022628655021054235048509321680583668025003279109927525025509636309831184298820403626637193395500569949136116813163831987130591128463755725226750992001818864160007955413340583067802019274526385941667566233217447514719281992356552670322354413048218946104200789450731526583524239357624936478034886293192369301050253142134343421755862104921301777781050101077932963411636681258249216532583645857691157787487477157776148492503197154991554769407022873916834461839492129119877775227721079517206188724798307264631468420926852813973115119754988134957520768610315933972101782499081846544755584397707395005977975226489107251215559564121510384613237420910975797958263974238033440996841099055105332666628207448688247469182046820395237122189610358333698234081965937382969024069930946790214928674030136150839509883080706320186749050322155263118138980151727952653515344696259069098506948388223423723375749492296998073770196330074717808591891767493426402611147745676025748043348467368264655787338618995385254542614904643855571578928673832879084589420823786063191704394856176479206067740892810811013233781656744821732957925578763683085948449259645907113268336099470447907755820735428234520915446296391924201244304978336765381127526065368850735727898434764268432432162014684577907864046604227513373945384839469969229009037573479059365907806702156245555156553783370005458347204802465990161208407465104886171631476847011732661862097714694887049807462467565242407538469876124760224636595996725653202544877594293012218065146964089542002895390950210010527203451373132359050790491742763843645288221737666915098192910488417533143046193311093234342264728557454633558010598317043828716390827607753888968842990520708693099321500431700094244939986803186976040251319468230910472653073755473443810036512901140466869095746446236610351246994231989380767013548122544598339888188881689537580230340006294394571747510342784229583113880450358441143669778752806758412453944360844875351305313414834597251497956769276337235189518556939578888534702051201271362763645169125186654114798447791613543346202560424485711268672269932197667384508899277948910256671692111766013050407667639336745753338720813757466998761316588986928953440803380134468555500893438106827257518305557952103402584851042247995717772188953338828494999342691811515337861415630634895892800191019737005632519964605563399147366528475913537276162635251579032587442099449856074800784078092890995055669444801324199512136190039724243788693489671013956403429548634277339679400627587661739306860837734019230988043224923993884777007900242857509592373900394974304726173086746110021899105231686174031932836357096648249255353732335154138510405738518555160132973922733169845831578631793938059953991446398743765636804633746488408519068529033382097298110445713103231243494239302466570034137378556245073078677676700381846545781162052912818872180399228122620372416110490125842502154563321152678040527958485910387920418805747516118468847396859381745370175142357481554814033433729220249797276542874889575329672955042093672896569886112859176952668777401600936003212086295544487596001463730174739759472210636479998227101370032248797457765582655809191304594539806851738163518625536716791931527897265830185636287563880843624705009481086819392164391449630913424668986509436342934256774190742253434825575449727030827819163118426651913589326637133876093991406865049184735280269857188445461388982708828441791681235791924842532710801772846937412487694880564729242880435771442006823537987790287251330879217032642959905163625498688926652666364108676564427749220324451245617948903448062349914414231872569506398329661209498011039117249355554293167828359602474632064047594853037794230673198983431175246406037878997208668866597273505352867735920856263097524778044359390701905631165572715846731363687927865850093382790817375742461390112908818947074410047529254396868144603115487150134233783877384434311523248270201085310016465300987530583031947572798281810687010708914190554443352172467094275025012298877320663100058837398233722843370012316925986039538806079886286686795750616468329375271367298267655709011056443945675827187938949055053909419200809956916639589254768058831721767549718424735473687799498608554184938417717197201971670089293164713375407957266356212150250385503574879297841168154351033704699958409453121664444315186747242038051445449555498892118237403665819736605926498458166137270662706082101019092502890083442143523124489541420956316604207838981851264695009574916730040763198784777807626832419949443443769283491066655369412839514523581236087947627137541883021842441041228863985143862520174968319030758330567213167092103509315547971872527181116543337535027123210947322272292809705509781073137891860604980249858079021313922927214646853233579222568612904859816834620374525808949531024100345912440796480615838714379464621548927012624070606788077946662993530207773794656866318996291639035140098978997165283995851419033846400340198862179108253609689180606193456295706949629963813984797119785142066001295767454334853117601753966016700016492073035222311161813520958536863707749601095612474386164968806397906744901279650239443075088178270694982933607480569612459485873311403487100355941565723486551206677519487947231598757485149308194042422036632156840557106429828671368610832439397738917338749266291906216694314313762285951142665636886453602140528653919678329688683173483455631972191481751412623536982610269575760438478287353494420988343051051255183737980705897803566536706660151166132788941790495632868764919479982323428013638565597351859445387761016206638768331312156221779297465079389902559885672371946787814892143056694460551348454345821592766602297444578581606300379588618957407402524682200992967568408370003477953181837980915499203109841645830681241522446638534489621874700028714050666672486684110193169111451922852091146911418998771182010716419652091521572626719199296921972787177226190092518805490675966634745164922131824668231560378185691543858900656280215770831935299599001740102004643682930801166914199658897373900598978697233687322655626141544493615141903987367284484532782910244381799647610393848222532525321090767778969924172435592813739861054858706484564425486894272288970302183076041150368837009888558137250032534981533421523137706530452931865523550657600684924437003458405827002025266876582983007410687609271547190940468045171063490998493958966423497297472820467656284597734911195865338376142072479899866832419919215037033665574540830918913094874409298459709029419577893866522108469398655357974028118103883262051331755807584368595018678117582632468759904114145763159467692388206892955250743562546881913853809097609121316858230899088699274852057576460820512494178758936595998338299601847705249120349830596956051701769299392535219365526046251521002917320470121181072146596121080592199222620898213221202858755189593576251318538765195426354198335404071074908334875668763610147283463023212680851235488627748858660602269341258442877384185618241206398002004823793895283773948545214876472231237653191484655614915182346304560695716218624388127945692330406309271202798256704486802207260809441958277120251070537645356937493494050167094597453980385849597251676777352764187608039574190023375707055508949890787467756063343079899446465599716080891168042576828301123761779603868165705938685452666347907988977144986947102413008414069100938087338418747276125256300393549287961696417314091477846865124697854888484788164684917886566468270804447498958910272682921543564622678717436798609140039552575483142707459811449917858496270991359982460653513301775863050677816350956161268328506571043724628490471661320676166202679555641364848809752230261070853560822508651125877717579988232018673305205578039979452916916157908690189689603832569422000007672996773235564475733506260723418242458600073757352495603007735300172722785128313461971206575095345786844894543350606600433300229831177611001316860261009359512612501589659308558113106060313396904961284744890045779538458158743079808813536341459242183551705587534682810885433160457423448831183774685087984313276157984947532086938283571794648929804922980715779718276808795488169100548744849855330467641774302784801406695708043443765983084242192098136107857343808095534758353453438091368826519150447942119517030369659218683256018453739356320035625066016041845638243511066561203187761691487758002352382062321214616395783657631429514422108300730558614033355709340119419909348742216283704361398559234507008050499791205669313691555595327369913891407662738414703089880501562596267367481803054282098418959069524855325035631627266850368900019412629525591574810734737926825165824260679229063410162038281620993153639743161929180844094766241183483458730150960506385112182323411368956741390227840337917878094883392196073724264703407421684141053054384446906569789578194438468992003750443834491094482753065163629772581841042851904128541628463243846613156637468511402854964144168286248586616735462037849413922265795645007302829354152104049801369690476978047087904630700415701425187465436183247472963133888928122003106267826194881962779944951213261817637433903766825157689464101162260964826951246339846332801548609953301309535590436438456921605183705390390371522324624734226509423903962278059038734485101771769017700375616276606130270433052358143447559096644876546153956422844532176731925138808453494561362536198108322319507407199871381496126728919970394416924340662259963093223557046687459824860130697741886238338664354152690155552427764069435889205403346976087902090843654401895242486518490486111228388896498639741008264098395312573287577405129627789356546741246821022931710703997810795898451814543803149084710626895205582205938222932150913785942176106936451617595597318699385826944409973764363031709071791451692865325339169405299603882822098222262368980494573221082916633777874386507998113934040950391817274582199899892847604715058668348087565592128416026031890937100271138294430098302397832230051787867147012849618483267392272106121022480381816361536376178631750080613737944196297592783259462485658188885915603754624987512374627368534292493415821273561749443684654122183114181886510507763562924929092390622770522872571391328569900244720453352112157516355731080826631602653920236356222684282788887759212848340466126845523088142403384116363023699959425195008636508864656133180372459040592164957134058061311444274557065493841670417200849187124274220182121439826201367716860091127730425703748223110563166864291451089903736724701159162859924086970125512171961890770284616070280229349450230796146862318201969425216151871220019764785500077355898817796956406905988287163351064385979822048891228279433272382792526240609060864271115162187960760935343542396985192771520923366635121313845000829052643005237396628185479465889189919988357596892126398085317563569429874018722801911548915546594084635144262758193883575935399183897620913877619646204058404125805353309301187051498231529997929527492793721318171795425258678858835688805578714105515780560545846590233842655676208069077366682094457324502300761170873397465348628125653923557432764067134156567228695889793940843790070066161102853608844876618667525703115817598484184051932921029440093249359492811788176965885701265127943155141618142439709979180287493307888894461993739356682489355693639462230293210449524702755352587183668919837030025257720568693980834195413731581538551126292590548802182406939690864486036446859960873823239147884127079017314401748375875299344410761289818975046580115114218215964684825800937380041777687118369167228704821844050945836560517174916185509950310173110709186722311287887581228051948703278249881275573078628490688661842648292978043150369293581398877536801701649145372376975644233758809692540203048066590589283151305806551777969601325496769237125605577622297331748162042148131353447093226168157428958690554302840581937867266826760653570954794560476672519554489012145272933520338692712394136102456868970829655565512383131107949544433006312139800610532894188006879548189493133716253287874320275596009458873839706897355346789316460563849675915764174185534736505420421279854829502146225402081855608626883045230537512407422138215277852475357780782701245661840183686512696969240756571187123129560955355648687717232115436677430259989971623272546392827219843835401702332527375879250185277324946412036482563891676662292079320963420711425968521286086942423349070895706867970028094768552218056910046185503713630312010106475142893895561582930450895393956376902565875196062577038864264050890111077302177341626883320767112095428454329669515202697702342951703393639390769186547385412552094920669633656742175315759876723985429726070193862820700820001536650487281268299115893563537042965692001990820350721263187484856796806641632881585601413628342061731677735388762878371950296761935434997866134506341495836903370361838052056925000764351170654642431956007918809956517766723888887364685826395923373724080205014748175211702982921272382205199474901305991978147192558229262012824562994269687645735355255503388139847870185791110231155051410174739483881405844572858207442802735995059941405357434905713236417860160945820326814400735144262226652737752317023423181709496401425910108807084291114217806409483531441435082882398596917110936879257175531614804529288529006259439335153038060007824569514418712575723947997637085051511918046546855646150978803882285776917795079615745066930751455668376994000953358215265865096448302391188634145981599980574905855793268326245841042208949043857470040875231979529190188577299636370136409323720402961724395296978441199596532104465188474767093672620129934363863674860536883565241086086832534537414194467032835769732428064178905801114481918310029182274320451371165358882918309891176239121737116731722517015827248847334240566606377222222339953001615706163739883055664462448589684988160309816498833888476737498930585036009136580042493624362449377125613320345349677763770472529774391591394284369700106782890311091904194672492787268661172200754624297673105423705743398379800099324116138073429484467742557247266692380745583929548633145360860461348674717964690992512556252259582920762860559475391910164235476148497695117921459487315570665987706536312065488857902142848515898469503920716380834522846096371389786016296285599329784473748844375050684700423312873524924043921310757284954231765015628780030699638944908115641454698901960141432238332447306782956678493209381627970958839390308729034429939724570993584005321993752318955096210260949635955996947584266718443668619397255697481103601081505487532062960274447948043970221321065315137766626386932571864318573338471999116328373454140345815684083550620065823022572768217748660826319543375165549522359709515091659161690861302675105766968388323719969588356894000853253117146098799589944910671225260098773912751440141341918379561918185909731808619914461386354589185162358335693717844966640082920350349059743672705643413469586417980369094322665020310912293788219089532363574227563972420189253415913067429984036359944764820184744464449968219332630133408651825943192929782751049396304250759735208496643018923408959734404248695854318713216608136458547604017899514390122170206269497755919603138278997073900130731448375635774048824841200789134926359656400052668599986355264128847501089418013059334124170883387781827535413111604686551387346969481862394135755357826343367039864918235651323119965494808906104711818321179884417904031646908003698876688185266643404264856609363734957638765392453911807414353211297708597176750385746556105941110612732794680362548157278625542266002327620798662651568015854498992076909684317703335057679719100290937990090303072058365155170988267512190547912488625281880850397358403807042802043148459640968668588441455617258798557009027280998885801398864765003526994760805785859164512082296389024793513029107951491995217376831087558596453639701355241887530988754606948638169934681927415060195638113079427513676466216497408218319041172499706539284672070499163782170815409164580635398925152889935873903550498190889180575003722415878438203367898288495947244288157881121486132416475333119820157504936845228258094380351767784762889622193353417977771771588180513325690050984744588102138700636895125734356437751392891058223677282313069853821583107679299129510119385043105310061596272595588279042266613932968931488215883995276409964975487386842680266261140957902899435038170545418400116407407679922069948128663991443428283364682502750421563771832584428292813420868144151846680158329682839997054276333789387353167422434364206947758527420039915139108072647515701220224857719337808960970077039341642166367349818216355729622670692299706188428222764068801515687417843602486000589269679467008604395297120360104497436449667759326811191053946920973168305931303293662137864888716731546736601628679571981996702407308500115978953685563575319231971915105148561714043997482720018565965644637450089751819676440043127299997676115737055827899161239299080597748110357781337413611909030020791589993199912843139270306150470209486942457292364678044473104649202277834450567506130722387310090411406031700744423055744392073480051741059987319797240602850572179440244569980531476631757775894512838374241253845168825303495451448722331501491349555016073048388311857132139687389493664808508267866845392360608989406555816999850584042115401063121765629106534759418640418344680528789737340288805147478897941746585308214594478708072714029771030872319429757488897971526753684431190269559244133878009690272980300110657671047621743720428497750975367263148745497411495892854580828715849304060963686693298518065441559640277972313338254166422084805860065688461993184112592905293494863877469616745604067447717055641290257352062525974453971135249032097094930560985109013482349237371624398533507327370595167574861010370191402550854809319815181690714485480454833338458277848267850529143560315003513134834196890238120190264334634524115318938418239499982710045721776213761271457357028828830422313866931425664483619857799015908860204508818902851561535377629591958082530945490139124030780269123403634123811580872992964414790854686521365091343084305259802178929808798982530364356212555610043143987378578769736414838114573565502903894851963703846006273967502571612535485283803788743352294804531397755967237847171587800372257548578743896849852320639930470097106166757357660412871408194844544246427239602381934380258938613531540372501426178553015033863146273323549208673868078325614026298351706183780111274376468564502254004174076461013294342416247608304563835773702310479347112126166714896698716358685416030433722076035533235769608347943800075238475195495784629452632153414087975512530862593542752883871878184200017747444045481904627319518248359836004632564897464260410971936209642529375044868366539967660642838483994332966745391180882108762435123780029284673080043309299507366007174934210471642597091743552029245024590380327405882849629522245936652005066038956307004851742004935757316970108799059708483757381210696928087691833887715589391416130833421543690216768830318515142184156906155287556231718952175981673215613757446195329295567879017506124760350922924671319750672116586330830978029436791220198432698650129671550934120205714378485190796681669118937799294491250770224303731981237315577814712383818553243275127456664511641080098651663047973538356590607533482192389835747284071202049344317897910021248184437384724500331792702509686041124346719760731755635858603554491556227120744014282218802469181998433891498887048920726640048756404708754873595129838068916519141425561832919259561125972841663395989624704592480312567081514120903943887601274119145355793648067372351654507372135988937919026012345913108177212796467090935877145716770047794095412115054931728207841594158204245561708016353939856446312884724694951151172773890102043973390524983714701509456535150125045241906084702915913263582485789914050675435535677626966728131541598881166484129732506624431338273098947701915979739291474317724982617147341680237545325441897745709605455289419687502719387719720975451120779379000415087663398429856941946455370080177570240846311643680687349193561066576761783336934041944844926061551033164821459790737521122543301533877874146911073607557641544337007744314880657404126175068670299801127981095772229162527549034404982115624794956995455845996748038529671335737538936790975495659691862155761162385476248210050452260321736615601117403670035779490379980745422415216309176731319252488969731553698461388935586502360285127572971072581432378328739857745377732473667998829749079598496150524110157809267512503166209886810440931964592039789346012385213988716643257625433739704012261999309991582052951072361712319047821216771811891838891348945358868478041555924922415936931662691404227111426714412041582641039623810259920354178225938501600000271928818389138987111031109085471230721530706078963888662628076391625155061588360496066529580756261212853319148143961316377556910358511171732877635010784807726629229645511373164453355043194208483284431229290232671678238329299433669570679907207667661947728534284603707296921978672563092432641087569424486540693547880930757881757084744211101509180695678916724681781310413045269566834215102449653682497061591264986701159430184487981382321593083791061063286977461872991255292192985457458100425910914895285214679514538699493639566478426000321226611861902266954393883718571751858711719134506507593885749365592677520115673876849670170617690305846321919760584130544003154283909494552230452409218047411331605568693637633894638361764269896521034637398725472072790675243971250483034813743329214235181058026034880444977977303757828971098276013006238571436487320457865541558559910684461676784148040472056975239053331110823678849990956413035681404887579442209890440292775075564685171429218800688328230030877556650208571954777357915207839789452656147456227504887016581675072487530943236151299334208287139337513019680782582973602631587117573038293650234268509833040493565230214364251681063016742376100127172650815744950496911426313757177039731758344662693230021219918510973186328428800253968585464117970998763738833681719329214435895321524701638539949773728811908958608019070256428565688878995100268097118178769699548497360527816703869471231194540612729265383013980305141798619643231783033034369808292407676725694545972861023041395129320224351610753313988929556394909322547699229912401665731217411102045680359558027253645384210975091932018864485724341642525756145539315872185688936420651760182062295384879116016664868750656324234058414955587239755748962091876180109557071829401169661991339317003588877557404167756995476408331926856375334085525887815336171370669920229092177801306493619157485516151912582400292288201628669857868279601027942850603832004524100796429234231785655413187497759871618310544904937022320190276506787796105866950333957826464426441116366141354883100288607962497115554656205957500464113981915444493991978200661344338701176576583213675640690434849734075838101397758169653460367754194848234484019542032632210188881656795858400940670707030907132398489584949522572087819446934590922208873913761720948490025460490030408299674659648016096866357338928480384711647191028613975749144905150947181655331342509874274338339169557239157703276861212894150525979176624273370220632590480964305721239307722413971629073346811648841256692163944046921195364433375817088142349620309920661145752442185738706624034588328287535798391001774484973870233690137213916033735149020049456298295393506498172953694310336900349145310570328597493160979484993006509134367609859859525882961496004899453113099219345080434607367565306094445432268722285641603535179817056847020228533188504879667586314266642355371393509177774447609822188956700007273722466638512439438298743010302976233567184495501934935371374188392687480999845525934038293950928075162721604379210719589261684506789686499453910062734418736942695475052926454103853530178321214026061440802264573462541672354590198919578190527825772976564203595360264846886688152072027335680197799777119469770158890124955764521226216075679126836763590182738145278872018800405929090171626994592657618147279559862425314145254222657746950628516308325425650328682184294095113479034535465167326909580544859439675685673643370632737780763997225544740599407634686074017721422426924007513947164315390363493966749146485607973041057210555283005858345920152469587191803110560949355391152676867150701131882021054931022297118931338950362493915730474705409480620452275564949981087987172790815667114692329298139185319613133191678837354296320821343099573079319706829944885347677269798159647952422728633858256935917752664468783488357654294786209205801313865815549681293327309823918264618337979910669652522799999776430882093643865294780150849666316614298487214345998041748632045880540141868349206761610948196597681546956485855920652133532674399148615486958576889770978244424038124332784497878859408530085126789884281492564840575893691243639432115352020398112465143365552910930024132313074066619453788777488623613701643512959435655098219327724034736018369563326310500105045145442399754053913141113699703358786150607583369853487508746713578498352824882896253524411547680365515794362798470738947143037303550677919007159173991357588692431777342413872889778224087732866741988431803800976867012501126044127395078468565632103702289638944061657779261735084115379554920992546372726378480838229691626111336076955865812437502229725890108568842612240877790642405394797714996103984246291848935697255485122921882286424306396469419101425616069174579169811186028405038968453380538117468938382722725519112239564875602202733316574959691597467917679406765777665795850898980026062192623896696624535250010419954597590469029931823558622443872514548600946164210447611709894810201092879986716512136100376477735948882580662772817076470967409526845307822166402413969897104757947317386339835870371717744415845616548470529294141269997661045365871725781974712768616010162702091963837310423810644099890801108163556519170520492565802655121411951844741724874806756920363151807221942039189425840103781395378526017131550892013773066336031163957109931502350035484307518856458453943753858545187060285571133181768088295323601931100657385813036889894068620230450395268327757876736246598250333618694317322405894050709809361510687216709762881304136754697199732233509038900847415288073385888269566483990789961326172630532732010413188643739995214581902563567969597989680329546018065306644444276537525883638064907494163116846896755768218206997887275699327456892451754844983680488175565986472260656114492905047963352404019307642044224351509522438683017549792464461499432581066509630231091080589910367961181118034627464932678371503440193303882958258359530114707282406665617155044667479259195705758313806688282961799738570083851805294411295466246605461257976598783962729770703512480041474386787613716865743776742872110199757016260100178286035452164844965712855845320422453648109957671787853446997466731541610890727961853847772174560511926438296274168472510690558313157942168599607966554038717457581544465944675838927883987891401213320789751183494772788307137220585973295201792036429989243453464467891799646246485656248945967345761752801500764809584090816066068943577757319631771061370981631217552382041622110658347585313880960430429075405889730305016691355589227114539935823368764704662609332822154984899099183155804349827017362799155239800663084166067020715421394238482613640032468437620744802425902662376545733408499545506892325353258215917283869591037391573953973092828324056259131278037239478903069836097490701036150005758749142456386069666210099786541008962593232309450537037394234456153004036728461672043905515152614828985939953515946936157138055179726535430559159400916806166790139542545774972155505508055078230771370874385982633237078368970636871144096428049186888066339078159097017931554733165915737300746612407298489251324985954618289592515599111832117857064692700567024476981937268364868845051253185667329782626829136927821766181354188986359968303338979749305525038157591157232872589675159520588012237037334855331316157841281923118840909828527715586695108699542831873843670584747153927153863296874278192681531074579546461072131061858772886955165628600208912595571124206842659785730914537661715540243272178564076446237519777502728591251913145917551211126145738324728612390508524388908668200803634231043221164292183954979382929651105553741271510320410535217729049138849435563383212097095862750535799622603620761451433910658525649425197957861263275284108179975741342490070709088797021139203810740469319678810966720966290701638358773262911736187390558059350250323902884730326635009853658337768168600533180951859120141478023496995866419408660859924534329261399322316933347910635430846819726521881237160711678466394496594841496120117972679690912618549915696328851064459143025651448633156142609608391374251238613164915091978719999188017115892717533572951107710857875436060657928274071256320008304719583584102549508555817442747273196085472122431497938556349198825176132084989768284063983393380723727684885917600721350817310479562072812834819367170260068828368356101287670319958071572055786246019319017774351835293826865816059454535104407699609704657431588174209080008914480297251055268354035016674489966475938284960429907110267417260975747535382238801798495817689004062158916268387563710114899381181748697855799328159256670529210409799148740658137626482107696092549522058773550105056042011983861715873411202856045467100398070557300949164891420717262450383480602662233918351453043602559149238254189939161974571156525365261243341151262872166305572142361741736531118083593048743258095490174315840480739435022894166754076290604677744451121951428550212248519397328155701010421216165840886984665406966509223677228918192096258098795353437998233792515271200325576528058278634959555019141139529964585210256171950606726256498751406352311270621397673846370867826769183672918911887940983070259615263487990548467102348876025739912418724983107115877878686333737615804725834387046264313680306601061447658356502423266370361095453187067356269268260889669196970137241010510290211472653620672311013555629299641145391770451820290467239400962754327541734793827941002872834632736179325250624593495905268006372853941350695499892491461900396624694493891535005948626174365248958462353888695540364993671554296133282898532472047375963019173581371926356028511892944750581328228124968196440124548840294448672826412046219663465667727499328817995995769939766485475060309683406157411843708438564288893331025469270781746943202545266273445263632816553043272751229559482550332154104765109304568547769502590833320285428430811166639867791667282317677903356188329962502735394532193750637380783957342322538676400292103622811883466729924628761921613586577518750019575244384009215090834729981434997320930562651364499342241415729966323703440460481016992659493175973250200831153011869078596136855126047604719608625886565390030510844836440599328145350477538161254764142313964231196480393987418740301201113065019117507414111360501723543316111916446162033334686121728884254104788421808558134367096957286722930688382666370213090119856905046957976678240973137878650712919678715264989308395013919156199820362972271567926274469772295332121041629888044945722156773998059791713103741934363105913257614460583041721208494831489330263434633199296872595818005947501332611468540292998298905324738901513605639745797597804040224479817703157525666160015995841260990340149915741538842159806151664935981593721519206133832842380817415950089015510434774409210089967654399068823047962209251705681345216693455140594509269878763101733655241790999734171509203924010870942817765880255906514362748618223461138944484582088217659110551660413314328654185185018479455406216579750812242575644147302441844763885220789545406963157261665442440330270903595916163065554500243993811138601694215271719321573558297598263744178319719304379952574988633570909124813447741145892682732798243937013273480817116151073459834972692334547823036677693312822591837549643097287350783661691500783663344623560711052781082122611051502101884727964622084954450065204061945201666059576506765905195941036586620674774977772611711047482562528653010553639972628289179877021436298551706259726630972860619067029487477389702158763314497289922495080361115119098749750324875464205440697165603969586770366534022646792275888217978168511989724718108620448734108326469262006069141559805700960228702487515624736652886713898993574054786157845504631661537685733865827492395609591262462736437955070888637521386413964062946639934910338450155263870924002963868830060976896658599165519948565460723736872957464273650091354020200312603532850663568386453066380802893287275565652954655377723857958859146779706188501861538751159489323840405027841904169554491611754924710106620888501703749868789017345810053518843326139013982854569729477409483182924684527316246532364693519770960402426290634651501830374388985261860160224688450175895788447904549081644988061140604614753447084969415887599673676129398962286663667113774874355572278833970313218459822486917043103358034717139562349529121055982953395270714650627571263242555671774744093137529779617992426867635148392195375716969563453366930614509155515275288044308585373868439775702739113319099462708974954193147104302487721153321250939372745916622436694262821295479459050300980943988540460097602285674061098127145968722170952808891413556694666769615701191592993022561252399353580130460277351160856842243627359227231608384149409760218446808062589423280936737430058626281465156898100489968773427468157977264203634750817072928525221357984521463668588442739980552878288979136640183845962408706108722533451653531871541481408042998884300363464087205907681893412633596668866549521720735649738242055784451078345463012719632020730064478552782273147143864111324772633477209231030443154207498265120485543851766278799292584586026263386108886032925577238972418974029641608862028876991533987197660682056112699055016613117543686408215164168152758534494890331128821603046553874302107507259843383332590460588966547898401672682793745936784642476094790669836374480370397618809341506049484130827516619779521725690360613128729920893598671067879288749183689096641635971701054396663570211312597348733764067893304271435283430786574556927902383734332230787264089912626749882699145373622990322968920331755554317927377403162562065100724273444808563254372251307583586348763797522071896875887933505641394614421817082121823216946372486150097502968802800031472776762366532346923853478526500352050459837641792104055887457810866382822381271013403856624488370843366666354605013117511347732588776535269446659616360344123273793185044818237978320088464399501546636637718326790207040827111393246977599793986806661225077086401837279176424138405723729187444759626064533159053107929655078362284018131416905100767397125001170783739740545226820672504950543951329958729083478906506266714147533993966891496274953998170508701010393654412639644391454328384871709194994994996694503578481250366848980132734271426274062256189299382656856333454122317380210278083256843397305262797135750290377089925047532426174027584234711405100809321505007976555765595011795093409330082218647056106050841395353029451829005346363900678496500812476762163911470872872291165382235225182207442516414413283453458153523756430946580467669530646605094009710147976883343049032444684198539045608445202147273639310384230061424300307740579662946467523746393142313907205485560674756226018592895250064066297438858926501678504202425491504303414113058881284836543678361779838038781567150718881541207362500802520366090936856480508232542499898967098841207769223669362861072742342789577307287242106951057112607987694793818458649101845891097396902065537653551973138445591212162887820571404093053585731712077692555651220792279388114942629714578424927982476322873662070723358958208334419380831729007052402189163908757567028150759429854086309905141777937205649618580667132435598001135717031385684126991175787231634201116101173437819153246746683436490892500635553039869471619599378894517791701715188451804849350448447751670161345358322429735940036433706636916578132137361893292424444961004859318087938030026786323627233262131202986937951846183854644240472681937249515774715157623200561318198041314206883071533635703520239007890043119424837132126928132395967123116722475025313259406451457029379647598410586955150262973299945153786073442706785243490769627924753779277790416279333334726448607804713323170639830703006754516257818384868224276993205416474499187895597405372736498453158675855855670042196279850810398456120646844058884546880138067631250005462964473366934086615104254344136255220709146261213245642468344782136267689164304647450136541871138766445888981806719757644836969296532616840969459726998252644111209190700775124428799754723393030772808587768695277080187043112577843370962417397580691679475629029854912391967522403628133399792908977632055834717420652682642783449148665791317661186449616452878474139574591332457749078856064779944682584415630931615270032467712657025217296666603924714352571519302435622965131368629580685606812450344185909014333299167849625896106909522414747344079445146384810933084430541552681530736254625355611910322376297248741467660665996543199691791942670793277113493233868023026917241214531291128699639598851468307127203966029590056648700091699369972454209044144354904474764491516258863292926413212224660395483244843652596483288943929345792372517188772837005259016464387265580419512730973372380128512809849458526890570794188297882311528044687635894168542442157684444627936820588864532642339786553922825418259041348186682785827602776874565781133496837642683574217086531087397354252694000987551385191827866500878345253070394446594454355149897947993537191771244248478219122232067179534403348167974111358442941336841428079150170764344817246489992508237533554210130623278538552420828807876927957405021178460929058177458614503497030850308499873431618210473719851390565588480943362488427170199582087506975986294039728712083565826197291748907293651313971873090552145550518767478144002217078814326465470006423626263342276566859183861831357386829094877933328902956513594571486170206409238597789419812086331544592813611269430103585016435251491373019284789140257987162386229438927234681847928573462230376423596687680486721968087495044389934978362236072345697629116092050312679971312266986363689686133229095084663042680702912229253298839194099883811940682514077549634822610927640785536624887752445302511495759733622234060080622641980656616565504010317939097284833150798382420508359295724642146341932603418905830921329098371154351462907867375190087409140407868806686998645542256058786090878379813491737782223655158007412632770128141451770839507618154869339674072572567903915438753884508068821275632031086098933594129048123409750325282830819967478754933932197409053363945951310071031745814414089172502480768354063892896492222647717522060097896621068713823868240321298719765250120851878427419124687478928966888544959670295505932856380537314766769137238494387852003080033295480373939833709239872713842548122136459526682769714173190515397580791058413444614622322584176745870086041503425166244242527042224952508987725799804555694077474516417188185300401875764547301504831428774313645397931854502035499936085894444465269781577661766458706284746350697792759568230131722229836222643075389793088600196341840357118068238134505602344346836769235514387494915667060188517852692013940312254878894816158851082147381508611658180653772905072136707899823879350061569305632561938564032529552425351832933118695008926703439626911639971354907682615327149613224560522989073219660153721924976064133709484480654533392550579101937892934236377328170173970776024433672650650844723096858013987012693659652029396431339812684485590481242612483275989925431646178708777999349923629189716381551440265110805011090286758910707107829419192139540188107950478863922640115888928474062379756862147206110979708368299059414727120954089514081800269040284671151180551245634819361110919156063291230511943665171690795900461646786549054673433392852192866834874247262483862863873666647176297916830997826623633128507373828898577087733967858326824313055692129891819247239956283116926473870373422920982574312478683943754649762010266525040264596927455255907680220547249028491273806134322343464804287066184318618458355522023120671403288570875541901440345008732422924808726751458261930072365709479276918974568147480506571924417636473142592082653458392465393949762638169941842496118209657638407070841610008058473896043264171455186350249698848117515506731906236692533939990645478593139235471464351118481286644141775200195220908919292786321439634665128715481290606546768581568694559372051895256785952654947115835243952734189624735782301944975820132976407778589483039521169434209088150490686075829770987577874657532496724369173691233424350929112105293101111635733457128846011676071817010310449628090613639254414754515122898383211598156553958634911794497958719197399295100827026165825029208396819895917443291193545562327079189340215528021971899284670500504977195803801325043309298980414607998268505066070553570284703548489091489635192718728625637463098425507638019794028066023407255456028219224348183669241294149976817646189862766662946392535568390220876096747378507892278159913379001990239269682484199173358072373957752306153791747489443282597362168602413594928289468614917022522533599670607222415155804144661767558479685306656082277008867345286118164927359747788867985519821979405246490006829981691088248264426158450869274728365023184845627538170001348510225220988879315026611086961251455339832559383624514100053829563736225516704952826257015549172535296110320939562665495731308532143484683733309265469338365810801528514365836982202128661716168079213651559182875120638393017032547564520519948685187570981581065933077725283864410705277368172386955692655062809048685673367797606281547314890954344727230805937138154087091405744513826425503501896296791278304217775613997644874118546381915839782660345824947599271480767838786865778257488314512387872954888226139194674311681965929830019827765701009472642434360916951903769716532557586972278507039901282828335469604861054979389792944629826514979100065361029199889573057238397300739737897751430056212929889411958744806620793383188587370519179610729373203163003141929583922906187066401674797616988101897215384556090872842330535605464036978825793554177871585068763076023498815624535055273436622528338109182631698804379635779226742275274713151916791415407960961276967290852669381436058467903407318750221079070609064105240817635186865543591696942833963718253342354125295140465282629989387716288314774375527906752025465887005856876489006314239209487464082850851829775597943910391070775891578870228755007793989392467544792370737765599445001279889970519401110778625045748150618663040230672702082722918043964649886166878882215557582442836201207474386151727439623792372368563118338777841251814518081191852136579424799021691313309258023537264705018392954811196941937040559346416115786083086408891500717361026202800630673722120063247601392941011371874627508395142732707002866073276005496245217902597394486905424957930559084009561735872592627368482224297558744567853244347207574968245595809478858528502900836474114362728502507853535291311094924222433950129037535022931953018669500834176291845916660565675093255342479719471741489705747826930539927986170755040049429614970652069938822290256301354650234880301383400776362524635291836293744485639676206064649852134078710422638789334897799797493024330927336385938994056726268718837068308489381549635463749151394136470218209373862329588692327803055149754970478615169767318953503430936365047944245738768256542278322585153911151536713452529920647562303322378786747740629049676432951748641426394135279300353268964695643027862908923488872033546904936058619866863905217787633812179272909593348469672715208342663306162483928315262130005258971587516865562604909723917320694225115496801413835511494848454698801815868133947510637178518435598101614951595647751402881436355389472316148328071489187661306696435430421662481777024813966195400230025948376530579009415485096366839494778790487638141249510942852021858551450104670894236529696335419682610739338410726430856985632229979959037708516519732511473058685473193290731703500135219278178906069147537761370993098553873643399391640352943584143511271796561294225817734473202739114992645168985355637396311635286213506845693072866503772426424434700129202068030447500106643675251073964537461316448993959486990362779328267030091834912222574920685452144180985293341697606901430483764158025327873779638924901506443138637786889114146722216393104324487461393929326930867484111929091496544472633781009020209864428049508096502604559388767476295457111907842561169934425807049141755176205507564462926506546182197506765952533214350624870648281727736853193378729030843474033056058956842023884931253250128021950617962018720230341302089182116044297523447058323641247968649895302985489448472867776556298813876855284779979197157100163253831464222242421590750357154626011131399010045988170903101003015168145294192997338542815181358005392537416717466286354697760929585643495441665725625203235213623359336470990261766777117940400077423252517417522157532761488524985261114410061864066198290270585221673226843115584202006364022356061979869186391747811678444950541682593849922530517038724105971294671360808634401005206458454935184514324410515852995478727070021292396965864807861976824651195303913714186389686065057944343191555426212283474676833134233485123091467246936453395844718043879319146251481010360157131716879753546843597215803756260068450534051611482781738733876018376133016281995543370484315093810025511120023981706203064495356004094322633386681188238050976557811119872254470004690792055369995145082376359289521073548637233146268945228029298908275118686283907103132956318760178476888167405611573791606907847856587377693178412042443176117651460545588676911558484974507280853954067832383618094914713738198606266730178719165763155715760101341081803211594307554256361124300444903931458613277102209064734013803252545098136706246143674160631625059622762232362776628334057841897042700221871756711869984475460767995596111320620646260626930463251821934961607217409528585794034063888547138290281430137662822621108131411632015943299351005683524975113435749800300540983180132778803764730538414085287029207944868702390691905851547208184689597701820140145249379469473179964350152233922547751465426441004587633671579010481000176468328340814479441111795437786204250824812395684556769076090157476663709565352709500330352364059471537801308253182496925326054024700697843363941251126661879272911631612173276782192556466316875710065274519447161544448008242368991601935210056982974503471343687414839206737983506833637192774523211050544880657819294757551439269875099634983374924470072832057661797490718532019945962315116209122278210472511015944555818828535828733427445778441366605030064287340211213808047282420809493602400508698096743701152063494535979911963194477210805347952802013982203414197473411489907386306198370687629112816148654822753487420617095358431714285915809229877254739950240272311253822785897178583327314592205036783802620369270541338911544937081748850941927070448940355902331993658470858202148032161721820977913326214770262873485982203432528556314558795371102216391018551344342352187600070814121060826534580489219103019692250570677994831550668950197490694114718790645255055813269491660467343675567432203082990174586373844641553066451377623674960547130770524282058499335947135178553811770709082836624152618583863121948432077357764645961598396529861932785908293894405894396483018563624467080347858782650290352758431144590045866683239027824445960153104185492458182995538015924530727834320090859780183066336505195140243556432703860646055639322472867686870704500040107784841102072310057985494295095548917977866991368186828840864348681013817045927473541918499179684806069920478795194220938574324264856754997646835269223371762246485875107295274141129592002611629008656245128877854027471908518157240050460708579245357292458864848618807551935490413138597747343363405489332554241574624682894056167349204698899760666391592731552155190689082572134185906391495596428148516744544443976736588036110850324798882360910883233637424602842111834823390769013379880622333292374052195232482971465975194603372347691063402884646777503703926676733462635604380243806079230430240154622864248010977137210273312133083652575478612533594864669880823843858924710100511110029284661338943314037973519728814800473436335379443463859938027735319666015001314001512138597716436851339254677767069773659501709783565259897343944133653813724240223927942316076356425789374745726920858547037928576273308397450639747573270618225629927313610473764270473073568282170636415873206330630147590511792782129226642879446151999977178206907146114612040463205306579035359273380579256029925000871551998886645260375209200937798225554814090274254065735231876556081200530606275880753733093553957307177741500242680936999625741513414845022602321348665432695709985691859347504957127613895041893109065368148812969314305203256426235251004484323745167074202795593758917051577266766546193268952279115733864943291695025141453620773278061953288387856934567929149818882302208357296133402857253760772165410904416949935016652550556891177802428006715711332171955262459747952263478691420181829716925008787585815521959861303963678014523062498007398143401041287734006268726821054527114648240671762971147748682636536071704340449851250794615954304487344498752539683669347397296006964063006393572202042169689439238578420324044763949820647589801214549438436534344003336835304832264447546151891137300180689129230741116526699813554031149125028401341109694463049718805880918647076479647306013695860394865983007468798201428438702246515310826930561965420864700720606378445694599983358669697404263165069601034547403537451563401840429416119705281071737995437582003632419239727768186477518641972987148439345651519303011695598671648732420127829337386203048864401168856471824432481516698059441997013258852571888099139433275918350415624864864543992839875287830152556192507351666013385383825476199319000199762775284804288063955911585664286243322549134640664954332810216052239361116694489941970765747080496231977709306602467675831712491197321997273039838545628282421723997991242150810909174827117677822121653507908141157180130302903712415134128719586313609294163282396272879852511324827284577078501343963345885878267585712771086622109328526896853662761713892711475734493899680604980098810920537305579304357671120404527624496518532435530740359576450399104737619993525585618301601064207880709406405538563699748415254882498510314869149658921936385499192760336508408716595147130351866673156114494295401654158382523043747335410455747516672459823055007721108489606936683826086189928071124065461770260647552369257717524582226093784515615674521130116559903785346370798705134863737009122977203308496448568130336394897035695448540753135565431137599256058099400694059266180241396813846089675539644990622566040957871369269225396041524733257293268943729857446201006282275501982570015389328788328397488067585406600767667090277878303198394094779024690480605950003597438085297920310761510105819571289375653974438193410495729002755339381923450603903211267553316036899771845448287142795158166515912158136115239093042777576640167314979284425808022785262769633728574512158653807336357838667889944270765741635093192531205536610540057942876091372665127170731004218987091434177367356897164912386034948202815572252788840302433805710127719780636279542972104392087631171080249320914214489945674325908639315388939624281416547085449462784586277766399416356419138350321069171381754573600099205066638735320957763839176971039305546639323274271550254032706158735568594383491375293122023611332502778197536928821603380880333871127622924127669015686587276254785127848826803925524530019396757016253341547792583424191833050764610843987503462535083335417278554405990521041909938915987578162784547584512236548738564746249091948599056616173295272553024291144117580317694320822422577549488940817971128034914878047241098021334945454016085116163581586274712290943748988292231953275364621260924123707955546093851682724611705688398860021983957283522366442224849857595132338398875671311059187891218176165134946237261007144598679542587204060599255700207826792622390893603578749035602273807057378634982435023649464419423044604944171079401353008064661465219027204240117189942926605583818763831861032755850116648408336711885712973048217853671214415030404796565853209290046674785970756604156307986989875387062815963701151080426399922043670910855259988735521146246587567405745696037559594003148091781356158942976112690907473097721817361890239699951127559368425421912705753269655613289882977120474879316053768958671207855985469805220878008876288048654858935776892964733689003075849832782329594609310368476619285582114996825516966589165103968573870770805503791315733358406086761626460062590881830752002579956504747847664996586530418780160837359866528508042169079382939785900872737540568880306307577194333616245346297408428742160832479498062129364039687577213098546214180659185428581456774219095572429166685393099748808471985768084137586519242354832698699192947188049178408889560414621114753467652994642523739732511116186234362376475354221778592127258920824926078279811213619336875742602426492690154369917689970488345299996874627142061864336351371441669741385282777475674264237439390135007380087152049513604133396976626310250621594192195262461568564106474764054693254206984535283690266002156062528600385352320796222232869097184881041162708146434211386308290261270382022495107300333184388479543380015674981125869434257233326006826561611458720516857860148605839844623065360550222410590644370347633132025624949328479455683769020962544414765103175263771345567833845013109076341316589636855393177181242691247996374741201115512315889923175730785381031232927267539045185360005180171292920638649336315838934028449806947742101412266103486190520113961109359584313917175319056956252819770839190801399201146548217025396137771199623009433644521926922200042076796496803977566870749516291136862593580833360593001429415374611860118490708704662360530152629626289744749228481066151352555038366059331828915247865403937562304972058066730105447084374585528433544108546325062572841564254747185607401945403387274377659480837758496325881390834372001180009146638248603898030409343794441003300644741728606268003759037309420880781988195033663166074663510560538925205769691501713392164726674070420467036251929408841819706258300405586593362577980919442706393113977955545263485517721752651424045254840607876104750319750338099274424737241062643093441232878676654426685862789035537468747339073976081606837302182229445472053400151982251967211666029243493503261831985714835180252971649277982565197317252266851485443845733931264077401917414231911312660585673878792768684664183679950415715165965443391080588415334616302875734375868499675551223877784406685591397796950269476328621227093521154465121112290233775867282748460168553956536935242921797045028268309621036150276384816211073290268900993192394316401229144816979461263502235176037237141268487424540653912840799548610154530128870975603178045178246517063508722050769989036513171531199490805098460734237232943499226769096402320708152050431084038610873759530261557456517704915496295546274509987219067221810378404092908201772433375877395672005762534583630067896906261886699975218582943365584623773087273581290221022177429433812796616854161548369522062523219510775396545387350458984153416770092496735246616573363747718674074717655094657971734144665897348898951717855205059278493703508892527868456567585482209727493519143400816800591934880017897798792117285625100041620977802280443581283198838773328177487981252034540678734663683729633296211263860255399377567817256391058319696644103473425164110703561023348065913899304304471147246299082144814492590331040376538973506574075327867886297846439265550096237208067217735925052217393273636979854746972788896690401241849835781762934557345516794377879447067766213599701797306399029314036333151117068595456768248279959691294866426883402684835754083039725858428978489617705653280639963206151931257670780278202415217393749666138904806120240292909382293735818089926750968716348997092852456335625632633835798529874011713230880365834542449911213520673408261464392767944754575702544518736671161186656406136173260345984450738259993735858107811128100242712750332057108829706951256322410095483401370381654961566752857831121630927299388536733100422049387193651045659765601181026433037428858956797643208418461578057678498764261899622658557473694987031679629160145261643602761086878712314579804308621870118281384597008174040461815059784295696779513358293527235686536820583952438138962575278173934238023696108546133219517576981071937731487592594608701251338248693170776898365202178294492251993821248826606039921658743392972713847550389351497243391277384132373694437800160342080442023040532708493746996599657067765099333225833907527187967396661180731986102242430384553271318694181248364320334074908688575137955264711153957434190768959766600869670883291497652223432359244563421866357203974939052065768011408034808055982233783301368158584910783087993677412983664416156779881644766135456419803383437529758124766244823457316688634598682803906508010787242055371660034582443567238924092542248700242440779958403307622243002327558022292167619517780060556540077370274497074004310209924081811361983630569991610029297549021459117895522874477416972553751294047877199382533224766428758981527090962318484217774837993172121164271414544653407628651848535393975095783477040222088493147110510563149016767218605621306110108980703062201787939421541397561738437430700350112807857286426041537542152292358277081383878744393208055604587761256284632984055357349586616582754330601089062281829122612221522282718109912642277409586211356349390540913480668348004444833744552239168915609418434261610321777970056564032424191156276451695607315717025934679161620741385084453379104906087215141718174738759311478795750322379846269226016682161122153350139386837542313006391593655858449163722410985762851787586179581785394187196248178429204984636127200387531014732645464230408246588960370866015006672957482272094265414750043774682046994236804885110424428426631644186130921640675598666001368369550328287399331519376247801233619446485740075917899904790130814686608368098052915887675193458010980950926101551650956352314528979493772127792371711531204554346705874655235343306077191113091615024318048646785668840358926914607936035143838505460659229225266989019324849649350744688031874544356523692003603650102365141897543512754494920111484815356996232408417548946567697534339135581072563225055385966013595554913435188396712388292295734957265422873075624641962150976724830572219509653898629868282678941899246064419357136482943233890227215959360982410119027321352008613171326701847971446579252888578856747980042827904981700231766203777526873037356048870453051906186768253651732579768083673451086111374350144713653299137868888238489948505389363521916574356674200737033782565249121986041214062370609831066439387056669071024093567202334480384753411958475534352726438929971678250425023999334030856025425304558062372859261163612954601301176522143392555348503841386363619760730926611863323835084048208649427486304691715163187217967498877475105548931784380806303882741792653079762869543389368017925531080133254531925965562440459291903752407763644488942185589585022491420507105281678760011282316332591523600567066491940496742568213005048245867341924414638946917938751797165686606014892169007510562894474548066119539169665811656017784775046559545976363184815847592628565830566068925223799140017641177382956423685465051162997325928149510668376650804313024481205729576564477579023989127128621623990554504173892131347603120285041381459888362352519794113139865237262906854651156324808413388230080509411196170271951041161152369886820056896789016191088385173369176530909330817604798108322744263723008605477282593728098935638497589673561989589916858137384001799912145097534432199807502430078859131437670231316698531747851199001005610143901692188633854050558426316466395830929998770630435208499399730239522416333426248853316038221912377553255379857742632535781335847279480812145684683798574189571041453381557224934561681133847638687487642698125226537460619428781352547221445685732587307581546691031813569751670992509480911817326021187708892628751253283779933597046431790613287823718923704285831600676986644155792570178118969981007847658019416274246563675714572244837662717607526416215186104253925204397476280713880962141123356352767943342160998388414073502231007661193126537443251508411970072718290318907724238735055784357329168441433880546207485874228396267200964005102011937496953087160548072544381876195529116665437503013312895781682447348159456722229581425310883201303586859538627515575615012866701214608342856965702033278450125977001749224005756314369798819816504918278301416127345654932639874793995004614028282659639117877644936367500197918583977268258923674654183368926579144344004507253044201095186219439566358900924635394586359286687405100949976950895696321340032647109803132972536374674376704950376737253843346754338624053864312021255128176941438862001046437672749857917288633882773547317968852893669634672351673329340629179781331424275626796008104003250457833554093255685820156238069828208154391356734803219074432915033847277902873265559837876245959485530038264059899178898492457959615133094044990925603296865719388318306077739515120022801413986446905131310015534842901816130964451131230106784474917890669011459938022001474874836084777977645824488372697521918337563128505241586895090224976303671061441159013780353906536407893070183981993899311217947093058225701199023005537376887726488144919815568125858417016048296363899233116150800982268035697275141139036732560790574392670643164333458325742986456699899067830713953474332555516162605089030606265611634176380300872027928125158369224936701702642208185184044691502081408548585395931040054342692374932899950473072005106966571465994498602203434484771480719587161302429079340153493165663463400030112961329658630717276946536804721542620696340878112805474615138924725762846216009131749495929538261026925170025757042661417841427938420827663228524475762583417049946278208370630611997474533518157834927426060195728707370305405855055537330315221525253421846863927657964458620437452906493197000995849904147157627469007086012299191987177939004732360675494097846966681782428875732104982339602123280430935618678147764975632075883583314638203455899747465665519091714697371178734760136368176496599678342432117992732791966749723713554362427579628567785263470257205916738513715562274187320701787185857332594565717428204831009128857187312607009358923167520007122045698968703020589952682855500443816133204772242673506463473513256986876017019398196874347838940335256473411526911252807529837238910215249975415682365202253984647064750946941215340824800570368975167187386246855740384715213893472628330830061338275422335170533708440269404574118156367579977745530066166771341072996191531641744678083058904050740128115953614982804369042793663716673093652530632808180069644056477128118027724089124772711682219307199569464486990504381666109896276212219718405749046626919445691557304378794084448954922136697172305331347044156433042057845528349089503377957110717906189733754335415843454557725104303922188091453446314075917296606404827140734598156987814829421356605582020617766844648007310237320505733754959745892385922522026013168640348977761017071425912786020306716715288644072278574729844325901634997333984159847145482551394374816498888010561313683160291657109169341383693063707285414101789869866174861156919668076457500824016304389483552792277582742652618688998600594797853012429890405425482512336103965278464049331488169516077871177943764909016269117166082074949548560978717291652060519234958407906645258028255084893847307586436257339289966209067142163357412828385071403288449088694189979068255138000245353127875833973837681663304367694029460037033460581639350001022333587071420925691314956705796514278896408288560047329276973707036951809927076031379888255473857765467647958185793947454335979962677462513396743997039051445968273465521799129864156239614580722737896006733589818953023175113452398580042397228643909678787592130493505560898562542013721066605210058078859742746541159748024901275696730248773405147247704838864096108595013347688248439302367187985840429645017107461164326654179309834959690938492244497556431479409304543961916952205067111066231400472969926840117768293587994930921088578654458696887508918764347803255833758838560941582063835066173538006352407269586968978786675217390901752367390856909294147355526759945320067447372322301564283017375416633692949305502349813699023158682794665413340471264691329850841148843794829368789206087580174294992188630313780788400060091094849697498791744610462507459132912293380974095700020634964009907485535070701339328906224300951671566786838234891077539072930761024831295135013370385701380627607900470392716925815701052302311106298376117792038832590625411575701097516236197484942480087780380354275760695789059450475850158638115287770513785605729107574551895050527850211215045420797775642871151689019071549993500559297120052910587599969718261532566002829330572572567089378545721988889429201772045111142537455436213772104559506095898681046554595759105903098853476423013573872558033606646979630786018782559047017496478572122866927832482404454921424812451671145888746082451250952412004600603040435033823131599780160358492904159348224183033364186158538993688401653344655676599849863672219482297977640364009486596629597604713333485240056900812195797263906616687805015249462788938175010930278399842708243780882642579881732940074988992720121526335030436559368780249961672586499665239857079604213057658250301265961691429037451928551164072006343730472830163131482953406893393745536109802609312066135126564455604656269490447233110955906948971466135992256497412878973153706801747525861977291811983841502770000586622984864572644017764685718049033718062856963158686973389939441641839458623535424439543582021278736878124559220877490987524314639184645401112733733306106347514752028992740500860704794765875810095028506578334961433338513227107521428162726790618350931941307243114353481647472206930502773729548644465116159132567490476514563367614026319577020637591372360934101010814342807573863917156944528177021542296140936867657172047210182678933439112826669576733144798020701968915435267021827855257397928332660478481646075029802072275543955952254270303537215247185126645184251832815122375716461412582906714574425796082145439149087205905937714424519295249721429596975197155269151743286508815516182497647680255405325006851760517686659187854512111203919044491238123869956725873883694555816177414310662313210497082393888091771423469587508369022652750879968453174587706883535282371814676416900758866436815810173852781149373228327358561699902806320117954629181929536377802803503035588755395417440471476749547052661665661356629316187786987477425084712614832361294482356281529206629566391086481035453261135453396895738295932887156798119399455915332071878509306694223561162422872888993747265634375969206338344691427347373974978776468733139599457031982333838714954761689807188318571456930370036902300830796973632427434812622286834028880967300830497113032442590875042526470464771288894164078126260171427793420031644604251052258034913522905201329460003657985922950801899314098618592433635545519577438596026867878838774546219703263807197068907811535753089536904570075484702747939574160521002742550836824190235420117624924296103232124775828366311712224828015080222552039119266328613686173555019095693126484525266817531971741872527924521831534490304042749441777555508406578297450325604452719653304918985104492590128301751742693567714991066958067039517862190004389959445201037235484246286972178546435560379989678489678165550845629322132124053586312242405187363104832440530568610820670546102444983509585629111326548364484375419576708445550653281728032537771478072153966735665049381348771462311120466991143194112199075756420978639308087594075803492552834000293164775246928460127250269472000272198147521330309791033197255769470304804049866619088211895706365945153754732003758386776471370872410275810286420413308741086361487569364754255586899761797461470910877414693463310170575075913877878290106165845582191646762230100169761811017853951373241928072252711183545665821146505097832320964385359482985595132427292745024457191857232145166747146271922243538460572491592876408299241196458677591209068327824425488305505333894317694894379617176861489798800206290417460781053221265095838645197675050258777179893755720550259692202565353807636621830529247238624600439762860865293788832823233632283956046222217277343522158323746691458364494098534417798155371625671008465681075504989698443674362332443325646799779664400272281395898775462034219482263868264103243615085909353659595019322392672073331539708631754840136061952629750121137159725324904360303342734008535219497868376571246643892499275259976083915082481597331593408047698310324313450887781607459577956976598551817659366303108248914287222980069113326354579885060211548786451276897760015757617088597990371246826729207488736639804385524589973962868203814909728479656550583337673506764966423766927128568725710171860527213010068068501403628567567909342341845956157799357062490712719839366791753332923798283779582133048061684287446910153943397436988685447696944623455933751689143040475824465007155737255776905797964731211418238971128917451121148536959171095163768704270043604452886290575476399259506015935340541287936942188746802685522779871639002914080991507237590360303358116109198669531335623170869652437829981924878591184215776643758959693488708768556589583808734926371196972743164177408576457427114024380761300659047944401438372007715757203734431635543448107329091062523633775206599498141362481812500645450236921945428490966380405906252104152174115675175859683322646023924182707671951425501178654824769856758985591756154082969312334710030638706179079588677702969892496686730222585857964096409756080045654368608640010004875147789870212681400697139712073607612714957925621298096405491349365896459077433837571919101423568246800793071090242992847571547683245355729107775533845536342971820984139726948094175625818004576584585461872974968836102897595813404224476567141265561324352510150127381506300905825175481181698063428106881562900332831784513058409942372778560397958361006367917155893858774123219061443905927513923494431370972913454363444586292340924279413670484743768948307704668872374942356923778347673953374706102700351613378286546736832827746922316957032721958656578967469929743833630861799068720916122276207789444656524355626155847266124081506968548922431509102488689497057445367930032094122071106533775987759848099441751789904641094938116458684388016594713479961805042476254620437900537139684472783077440375163420197789454472292126984990421292220587124579666051245903600164120089968673592544116322966200976431320244096507121615890860147971433131853327480302277804214293200594425538553326633464199963831898920641673001402011932310076869094001175974240935880076962351486307074579900905277413883426723595704920587110503754427868051627332989342921162666143016430893359776377986211758270333272339190620075298108436197815249788409582403602585002276345643500213421630322313050791437943393362930948573646126600618383621855163972464019282501637595340520367369159909878285402359416199320610167098374070018424366494721197665168098326072615656205390336487081048157117704843893298943786205191304638573660153798220583128467644603070686183125339496328701009927919236585024405238948153570970918553082641840638169992335051980312781452259838896540348677557764835719938539054281148043077097315044907789993900622030781289511542083736889470974302224311938550639773342314808493718715823458572590783903531117673278183335558366505580506636977979919093356340573461641646675253730664868338275099565360623397349859621877823047618251552325399170250859800931729194405897496955146842578447460341576137966384647018604093995301796450553961769159438789653925309569314318916035689913150096896240445425233720978864892406502688554169623047723029515329330970024537193955015760610058838035756258292320518593603921502081919915834026543024838723879732842569361297854278380801462295568766368020888865113522431830073096934604483117933528766618241170569233105642210248184998978221249251517048351284719101264755964278915091285974012147777619787927306730555857324838040761685614195820266452631904015080138058988324809489037968574331131797414795089136708906624704637867304392234866279809924717236620204401285592093806362601232593487415679011853128350635148687534425866342689251453670636541236486664228770219084161726030881867641107757004197506615400223196026781559280303272759729041519504309844847151987759260885028836741078490097841254511343178830622382127485810212928549810121063201186023921339441898518358978077437731052224446527916654541569904241226533592140701609953912209625255941710121636416387740858221233584155227083541863712672797447979158881254542463242918481342994161438427596282822829375407020251704846037823354382559930299195014929879076690972000189052176802694708575474074624428212852468045681083816033539714065313603230515454728090639692612907579684154933387688686323580869325677394332523753532349447841091697116816103561889892713938309003997607825751442971551067884130483721613689625990129137012008630210868209605728903856672655065230412870510576237513849280815192606436195954254436836775981117479525304601700781522041159099148494595247287128959388025286143493755211005142431639617989521619194463484678455910692137605289456678743362855450144521966839287917680983799737233868557789767339602476078671748729072144440294736356647420769341095077337949346908516529620514022137823598085342770040028106382663566311395156138960641490431743170322776043289557159627219813937198025887953149610371902615858024594867295946080035327926885940111705227058566645302100937824950597479914142602541422288285210909543276091890190964986987827270515830260367075478085587114049346541392582287610770019424439575343183448409127520006677193676329951947864960567288690573873354578458637418733023117601233760521749675147447066995518464202108440513744669119805514394192082995126359041416673213576039813139275232997528810155983174399163473893730708920228187046596423319584220691701814256361462273336293765592984966774549762951965874860191531264807845664892019508047456223039823466452912031855186444027174653593007687171797075015899310198205568142414344291679338723760272248671196783510955898206051167336652010821815620028202724829156646623750985033090674378921924179127773143504344105777047752851276009107819454906032920685085003969300483643349803594595847229921632451555423764370831101269902357571315741291695359129472636216496852872814526390849461180119769948495736981254775553124979488505457162104941452498877578957047223247264856641517560179299019798871903517819192890021619165352211904344294097686943495542107657869236727401552561297448039850302462445554718463684093896873524609714930155940518050862435014249518100433267325590537667668452555732843450476885776123352075513317677474896415066075380831042302374689774124449930995616165832922680280678412709304409988921400528600869943040286676453834544895182992424419949776604589117400543804269607455273371357859980865807353376455307360673435125392813637422418551995438788977782168950825165197892529080038976795892608773339582349414943679516080975078636533423531297876582452737481212698707008373608517699982469448497174404955061704186991360375301170278569340590877912095526307518559786998856353108661132493959430266999679592224688362984229424634742751829635954546987860071248695624462196415160631061944719935032633552324478580092497083756037122981573233774184846600515290861703871882705894688558874205713790332837264665101695286591397233785100820294438633109713930106237603488256519332217309901764027575220563721798064889755964655339872277537832593129278179891132297509286298395730659832258758043753668208151994947576095331017830035775624874954395106648871744233989485156846080131383099979758669479444956782057245497192346706246426683223895992468136180259472381092846887199925856109823498831108217823924067530433257975900589583701061361337468287946283821678385191618917734918212496064114646304781037717844333769415343863237577287176313435733263181555697686399851740407493886657972509205911520703020582402487084230422783485289517517982703562529413994524550479974403211643580892615425567477333005703048768504254046473359029902216504725809396472478118012104118928411016546457791716415741608260687863423028198026566347424626701991580919203580640293864476806438694699566094881062306689811320045508221180994154330573765478689934183852662153084494318960646677135751970790891537358371716847399067037624969054972580343898144267187834206910679315465690856071015349096156486725303655566262211733282128123751724991074230252977940291581989164391459916345526161589123111980920958733410542133139598585919078862489296266461020393220967048284496572349098867311801649255829794827738443953539131467659366993148896354528586651905743331002680383410732738955240720644949595309264147361264821510928920868945968648275951136903120430747253557636004121950433916642981407043234195093362569957955868975182132298544722469868456429800515755672287465113117335519282424014827297196585089302601230769266188347127128727879600960007484561783810255812336285847833547758184299517771720416000578554894542300750276433413642447018638985673495938398010462443939693057439750244438237186939988510394114093852586013824461160800166713428404625054581165138882215285689988326432503250426245527936589601901211436413096556106482366989615393350539929647066731069938130397728688638273643748823443366167592566339994201872108816887452689060390771177149203437345696899137075199753718707233722754156690359197601113226280603924458532311890307865221119155203096589984247508200334441048471292406920661395771706174037769637164780968825617881935260139600230477853144895395352616630548922139258849790892087329614564577290544086769599224408840805593829728645540783916512537161908788186607723647579747971191511433937577316701391443338745500813468418930139565669047723331711934127750563176807775312286632568583602302723954643600536872302211764974202736102206861302926827654960396473653466712511150358279417152664927543727447394093616380694685773102155283478395614554730463764388240046167899451938269212272986150232790945576520923231500420940910340689088786200101854123216096842417731991299551177998695899893085437475089754000367506426745216496804048847201323497331573600866584806461888533867796116164041153335039416833834377634215768594163345165310605439187258281452872086823883131951208565356705401718169789354423422679122949034881262843233047536068639958065930041320509635472936502952257444492561261008118488363905160637485636863290451253924689139493678155798404966779264371225435196601915847958966482345787570433880551406107199118217662046450502569479576040795963580383736931399004416595460690138206309374156447693561677149205714175530227831199017550138568837720893448526003270019421769907689554061211065618114041943368265749696342046734570396554862912462506472213479790700494696052318401625573648270602021381373458207252518869686052317170134786217821771098086546709543331836765152705273383917223873208664372179325950310288977172209781561122898843686794640092759404663581954455820736375113590631775529442629660814139993542852989927955211805720364816911395543289628572871412343114456024866140786937139627193560041993255741538011304424700362106691401330667821617985936096671696768614892882059107128240858839788567251462028414742822200096074904298774403861798210078594563605615415105325313549792265235155879455191613790752663885515139124443729155925071699711979532548632014560818230743245649775744571879567709912400035893697096007695568589738289718788687022897293790213174947760633426848830228905716178240467954945111677925085484146291869196572315299181900607672344446168342486348474383701147927721714611306913326070361700656917450207203411983074218591886006222140193486394156923380833928131036575909845080862736069089598501505828287193413677997904669794944523902991719405206318515529844465715981238029294024231447043457924644067404480167996777713358981643593885234946854219835531218974879141429531907108637812074915645172285097398689582138133996079047792897002579932610863483801044110610783666230241237123255655637712112141124794132413194388293699437290270604716758358182846762395964330077812282822024361880978521916766023010507933046029455801990928165042590964618010435976588631905632388527694273085342679043718753910781022424062741740926092511996954037561026726349838731767025622575655509534636002514372745062388523723552899198631053352580832893949047685906271349032052027998605585529703263607578402213704271149494305032452175644496930108454751943135345109195069665990971935480177426855610595099926448699536111850103150869128422634916055232321599978941758688179285140647285226553147658344118033590069006130822676713946690856420033323911986576625673978683322079755956137526433404283841239713205796755163609971047379167022129367029426659614757995619957509119808579198969528678132452524148595149410921468890207130927117897671711407634481847420116685694127001343850421168274267034792009952148033439444189411007993165430464691336992244753813276048714470837551157089613635019878903975250928177413070734297696709442406926108745268654464907033270772823798534204310783016011588485056774457072537022273533627010284494917783524206481999952599962892084955257888185983987499241451412266375066138910370672974057930639203470322245109685376181558500265043307626493274171024738225164116575706776690487636520122232390388416013755002101384396873054301071738040826193278161022253410890388971327037271269955205751638350288390571429964248194518808124120375429239411403236503199651550119171588612823607163750473589092948695999749951236281255261948871809198173928921532820720082782227079845241465506631220621186298574614664780572198772882936334200634158423817443685962408495133287430528643069832012180299284538723014504611893535299338733810739955758140736014600513121502923412584242976013496228322133750915325715164065948164383136914757574383868852817666738226672212719415288685673000193769519382273695540560666015965804467089610032215844429184004916775705545211196407316224597974509624143345696444167766403782412324512387276481220249537088768897163561239551149704598166021542129864777455681398765744458829687027937779221643221424790310543694878524250057953356636403014185823030565835323649043672877118149508973578694034953813329832817469348876522471572069860383848751100568247029870925163617402630396265538937668157934494909738086508891697505160928295480156722767874064615415501962811367702287562028665529033057740340301908118436909472045184814447551032293140575431792080231081376514374858560376370035112731171138431503777328855128661618168461786327507608802145224476470936350923267932800652662704969307683916075826152424276902081101907715297839787093641116714923480618335936576930700934700093877826517181720645675409304834530864455635922590207914469843647268796264674223048500480485072885405103899731514921533474993361339978278188734314561198114356041453724938720858839411991809880097817603052755143133310098550463219649518023318905566856318806288439910313927067871958107989128394695021340918407721820710089984165869367769755564834743042259617065484472789497528369141002332030090470391538643433355348576325444604303502696304635670325017276923564450779596815492664452293882348921175252474074899800475812046765907394820910415712570995297679609959175073676415213670457398905526454383209342229554925819843537507792785607333429812058385918364655476383260320019470056053841685024836665063062600636726750566983482932193273573317989510823108024139194017004080949654198614679890529404909502014530684652506173252548281058479874150074325096435895196548270520914610838257795357878910843153257966361881610062928730494199434109010989280358893667820266039582238874701907091311857244890732706728429488947831947333613164072210519139746917585823337437602807316139701575129160291923153242133394713913456331981915538039255183447734104364516762340010804622265472849563730974150633642342912141415959072480161445100545844983242430649340617514048839929829503200819963411217070056419214405484584046436305164092583615129235381308975746764393397136470440626419208885190743777345639758616824697726185828699685830706886333300585425827070129379100474661117531463375986872580504855481424498214658740103608554417741278160220657346881033808885979009351671333953705409288011628676507652621816743357774603836414084182646729750461537637588385226745649048501498532878845254355795129590850897737521728148047821499698940840594462247670523070333336807704497734533967118068026708145414823502180826649453733447330443450684867125155574901942566288907671270236354691970947123177554016786062621389743246269807268325268925931861558261952341249873190397181127958546073552257834779884716719131462523393445069235486384612284548667943149849919723260384360096969410022872251488890315550099750842432233331019386542907536484137845659890683503926570558791148068709039486819072991405581655197012868344145986869873833610061162807640829106619003050627110403724768049623764734360693177652779268755485992323621427548495365914449207062682662368093542378232188693151282309018799885952350916897524187741468711606216960314692797083804087904473447812982183063110388816139887211752791195551244758333662014211823675945947560615269895615090204175197340634725294099735141024677374336149416203860278806923768932301879486960800774743628650247033535631946669004933646036669771886884052474327664655026289167404070761481176270212215589203828456074331879931500806557728817830631337135879727284897592422563122756654851195354171523201055355685405360803987159194767341887175732989667931038681466112444514769238398160630553614087790852241282857567369844320359870062676465884181831061798669719159852495877422937725344077378457399556166839469866266477667676891553854227009002003316775519466991091769672856861620082707083816237720352901929488565235950743157860930393020006626884850764453162194668302773258895701902394329303352401943107655644437305687138709754999334200903980229577433860620909334386200835519241361081404190354695795483548780272077725118771064791606580145917763786801835604897193705176137421164539104813281906667981694568606655724684495867786788624579735361325099855742341103656243806576371104390121469675498303113375093714324482911281507018588387978050327930140142237731408950234497342922146003276966563822307412313977355439651641874428134719598374218334285488449478968994158602399977415922492985269987146512760174419720335135974709643548881979147686286875030604089074389468378984663607781295492594509063959034449742048303377149804578869133217911753262145408083039938486682802096682584337605172673509668655760131085892375410828776422190903431491957460141690153540562523344084231708090269501667896903577907897738183544026086173620312617929665280483774116968825601488431828656363905717216125606564616955837372184432272003559565340524307260834779167178856337336110985188661639396515923321434280635101700145148574819282659698806638484386518582889603564529152991773236576394679781029369059800337063200694539831799788736793331316030186523996120717897590591042749089881728723528327202719056758095527886306839256575086592484894306022585654963719504130119992180071068542633726581277647013096565357310726326108915786349240354504885857585336262428853226704291063935285402209386265141675149682535021364146996940114875124627107479739999105500850332181658895966335797684198430877761016379017256486018025041975118541749113592164231372405335417006768530382926892636749165954713505845990866744239889859138184407758467583799128846055543327680313347674697574938871083470530118198347880385947321603742793095047967539559578885293576379245730973739501886440475910678449503395998028601569812634126100412274003287903686270787597858911087601203776336938044268994432855469805786068225745676576643922784702236186145596859276094218889363678655053344815610723149638268821987288077598151490781898612655079732001054903342190103966478254366388949761111985304890516709390317912822815707148258838711531688153429966724303382396083954455005233358782188883040532837226929545786106581084756263333822213318144323570738900075655765834188565124702734291692357119913608478066227402515859669716583998391294584736788508083297444690029698777220453392233806100314790230761212258515138050954319008905016274681282352890167511450655503572508459985035672446352663616173634944716601456673060245462461279738653692039521046355073135305906994820317545352330461109593991956308527691676125136064855272111167570558416348549871392405686023933029105094601559369850168413498641614316675002192325619212992755883135965305950839207929170175209695562398022630616027880402082100745294465702761732610254065220538191982150020870872745617572015307897230015440244252613962773614215665797984686456873445735150387857043571116447517043645135982045914161643656059883499546362694496513664442022990271833597064213145807768545569416032226073980798042307688554467905625028710813738544649220168601301975617827193536266527499626673920637792255212311132993956187031540382373017689325903475539403335477757190909143466227454212907163231218930491430698307622716287277324913666600793553056411195419968134312076827991389465692691452570337430618994664596239746101490049448833780771402566152929497657551537434834366372200573511747587322248274519316407481455695148986522676412148121360988419331554969216800467959921237143152657242537195881688567471706108204873118637169670188085982579684206666052209976052102431908816981466918053962180369206764043253368632691892422825015817600973024923639301010730700220153675080934853699604594550255865677638427143048388451123093714699801929480023626589996826891398939841553133176655869247360058684096280482796021896120241565344805699822360578022806848245626266739534709019090038349569366278345314183201007644364786147903522770300884621254022614352337858119215804656459084838323061959428147066536880968052645266576669400368344768975975516841020471435435285775259681267038937070353360241032690953102202719837138411497561554135221869156356507756689917452243228833146087997346369793257828171393855634751983992299913426534978105234701778762395255812126922662586461072457019253016810245201575857564168354330742531755295115014740750130215212755833064582875200653860210853039243159371299821442511489167920011790358463781473327592254527898645130562718069231601873586291588567296084539611903468741989033466514160083826449767207364491329799070439462610500112149739695654417749285551469743497894086763507854232542548542261419169869994669673695214142029605797095767673369665623872829866954606781622510526166268516379933690132558132995083636400301801574493960221227019467267408301116450658229427108381167293295389620193139199821025112902879080500204173593441950134505116750393735763920914035230651395694429213054471379806762122382047946269206713451782885225444354791389679072313121901825724052929026224162747225870900123055753519028298301868152238872131600119086049339663179430685890558916405429839493034445746143313214535143155190030450104372996194829656374357989542868062067089711669113231206144283273719833157373382412045497816218417389174347798422578280490945291914407042266499805880668880948027574802915716626120289992498565126150504659045141423576499128306693357309449169792952536827149024479531335851359769396016929711904418225390172293421655989126949581045244391552226100401219304644795977047076807668151298264799972478401002936323030915879895666261062695280932126566066330235004005384279879874177601803975308102835541901947993935711094028986528443634683569862161665849542437487140461400091055349121150805554043651056738167567123315017864279789394447343695329369981642949824658801811270002594937225389893285390671087285215634812179837487133272197926245429670377960351640628833735641903017589234432683325086621919680327484164466776148329161255121960535823398668030650630604267238454489035060098110168829464248210024549397435505411791168981652574903744398939449393727268483976044166848750687520936992220597357070260738905610804953036169851257729513751843332855165664047657630484284549139131484740094800971377543989433756583467870190512173246658545751657029617393064288625235733758080832555165394497830280990952891469388456806065996361081769036600367875743718960488651949238342772105347343079823924871049323943224006767793680122184038844679465974882302987927912378709993334392738132046555436011602381607404282268343301698142023579285806083157142111898603849850386578187433136256570927746142885212851863938592512195179049597209703780215079557028802467134544876038202730482335002134797657004785402210730588031941303449676955915762851086988272416605997611277977883451956015701974709878583146494138206427051586983497429637777113743762505046432107858644612338672401172252137264164702965028314916311676279009456179117089184707960409492125642933092041203307235280278138097949408561834716528872614732328879304891146718986300374672505422683688520047313398937602400542694241978822008447660750031515027939308417437914930825181997846484669430526402471629728046676454018448216874844876705067039267885208786140658628972149891569920102067429357383927768298797344108526747713418995811218132763811194807434578864144137233271060810730599368061343715541439996787095647113311228543535977881110183350056418756604515624387606648735222420961795559809364855371111539417797743406554593365524667713391292197167835309230171520075462230833485157521395585166297979652811623421363953762808069793584305543287673323453595114911460238106120744546477383662765928176725819640268591489194581987055939293612699784705261012011458693036279700382746237603022371643853029072755952915020554301260937306833462741741774262802144992115858298807438150765380887040499659657589466711894091719435179065937611762015989556634031945369595057727013210370327758178888135696775384503127159950067318353287493268926758403985130626694275085887572990687246729720144814518374965722579415549144510173605932257281913662960204652139117484302222126427275198847699923961408158977677889784324456034466896678267013089086648763550768763866383448608118157294953469474189431756240670682040277820127035066254927695357493021830508995861511713170912601897912228642893314326390315850916360156064817448491722040732779200122377191373581313257949081442535204830030352326751883470430414151446928584860108872600176684372299692794118538313392502868282612622257490300292930293596298407758522874928304210702108657071235814542389170160605117085682109288947392711795888402154711946225894236984420439831855871501802314565258177677490989886573715340111472104274089062310705222576092248109912411414963655396592474280038431495422140910813735100062571211615332762163089742330688710743238737518609028178677792556598623945268349875979855480820208828796041496574760161825285203640344966916067045828865723369884831360099265638153524111731734895922330439894535048051502559451574363637108809736151504993931170024123524987306947968539313762584238086829930392635563500100249867676671274215406973514071336750318490011904485926192741725288176328565438400679927828051399804835625465772529222544283893709102707904715935864067962541301940558330022113434853509889942892000442608418937374895497848773876493525044700865180172999235343690589054111641365552953981983491948130180495128270677468901847099817098765210305615041444475466902938500586109708938614849056941212675522570937143496801619015486994577347628140249899349115620515010536066624752371804305109225107161401817907242073920007816779671139873450956763618316481372204460077127716668943682444762131637170719653702688525703705188060831680811442086543065425915176865759893430517081007526394394647739905170553619548447225393612838311969465746925702787759558541242956684710851135151342210054027552481752953438414635323883555235784084942919703831237169358758177040469993326261901978500999246471538821783607301985872767534272347510279315869204346452604238779517050969256903750060460523538378436263573942337304480368128808007251934571536007938419726796336814827730794940890502662459966892312162887859368218724707814887639514264236691235462307196747401902114069026510573547372884161345997155937538990742984797145804701251696069464422213305798889924696083878649784975443272344924525919255469412060764469177878773616184880750694952992929193697899936655233087374015543352069523043330696860312028194261318590281244205097615998496718091859790747870118581467293558120895203979484823457314492840927675927561007558094097191018480776838953779510098354665367484345344253785893600743917004093581979292003993934818081667995167763994067883018111986694368367934559700610789926690931023287425398765276130862157245342577816543769980781298943584064086557320703654495808880766266471434884025007868337330725272342612106532432615279776176037224526465102481567501518313298976101570881685610262027964979548909709702361201084581353236013268808420426436481101527642012054018959755008056784078984413237343344897634483966630585522662384962333565420712467080191565253484655295003606449576567797015165375517538502652166600471495370488753215758158127901463891579271593672682841185910020461773770145437199504063567575207983337472154317212349287870282460345645084877043591658557510145925826444828710718948567910235234857663791873138464576944572024866145372420651858825624096055698339475707328846902054995935885707010294683952115977040223300569609480373043268125521189395776296034756379286051077563408209991250222835304988616697894498508446185098287253350846442373277772723297022611667239676708076497783203723447544376025528690648303417282974218104506496664772058066760782660608681507933695693808472054716460450000053550772321602910013817654789839706992315159789247192430870029016598182659056727927072573679194328161037103974770091013501708976206978007107584710251743061053713005974325781822533550526555776014997349142202993096106828202522846082059460395736732349063207339988425291542954118815882819109567806702406644883539217688483572816725864413564654784138412498407791959744155070733634527979128449733082947576521505468734391312301907034111938318381317796177120880931724372773597051037693694584473386542276524806558133819234861394390808503679483834627301658801462961270362083448338207026008884246822876273326529808527568884049377494942811605166686449513820478703555518175737734144033647756341234982614110995292429021388306164497755158271639023851592131795298085668746426490558414184906651697922359844778911051217546429530789753121042719566406691254245984957911492224383304085198623516497966387878401243173702267069577315144492695352418490608924094563129395661725321440090977516613274304327814638133521197476902611951353752280173145052913907334851544710545062351365807350519109100403497936907411740881201080081106076398431590442247958241501615950841178989566438023650173695515506688404905840655504828164854269660007124257164796162442586853386970943467408309539810096064127783338986402598364552142306343659358360550357724353231902418267636935107779191479888381461635582062055438798912401520070189607080537748485387285216341870434478637476860357519754225225345832213061356793727067096976751828169424791011800424204556242806283230619361843490248371337916898655243567605420666643970340359655681845433063121309255906197672952177587688611259610573233281431014590736709572931806429123242129714131080105219047732191550218024689519569858788092411182511090625442635790092165416463293496906657192932011313853139453167117957336522641129420215840559161297787905818543965243311325399037181455611529174884479843161723493330885020676029576180709589328810285225505975552640988853272529148326993412915589247319160412429989581939771531006943391451930966426527291678578860733819090816825181460822905823809588940140855875499318630582312830094735389949710179688814242866383085028091801640604504683598255735934552799348960775666865169977141992456256590019811754183267804991241207300175674959780260482579557401886195725480411101050606718781744045034474991835781169265524265287973294029593815072444592631447106716755629040341911810415804304332162758754066243419687280372293360916888444363054687697613122476379654883554721962520379892581854659885188293412802331000654808947752722427786233428464454828468160388868849076488602953748835072526511228636039780924096834116919080161965871917553286136119196717259098457124769765204750993827155456519269885769680499539161962769798692285621916529334030708603058884986510185330061400055621977477593989421163668453134030449254562048947380067099921302948233505439767219414852466254902252512514198016836833856137172951965310429002636628179953934151724591689407380036768678031478045119650675936507212425908113228431448704577783277618373296244078761211441472376488447345556495735421440934257390762017580209765770158908453404895251206924607594179482085430408373264956040293790443037353679048284985455973365916359215933190064576414868101433999727362854892684046760970506770665964520855675246820852333446596614541811825334185679076357164134420498735905347392404684748798031695009984003350831673335149214779546275907704705285830781778360613921355884287467512183855511546440510525134983851240507050934131028626967876972588202438346837907169206715600824775582326479774996237022880366216970014609868822294152731139646487425285125865708462104659055383805768549086099031303789680746336822965215045158477497755063390542000888844349375520484232466604108754166579824474352099829250360508740185707373322947655185097118363438704081795521898353592307013012548861566225829721354425060678051599477678595778011377427965409923166614600636480475880656271839557249441620204735817416101743456983973339254976635843150504798787125422889008292238509313340128333614870618977529068643568323420977944466943977662067677690018640920805158387108119606171933497985825274305712020165008494515829107745675158751271859317733925647796159137545333027174650381376690726073548992776239305025881542213458408524495034717236849872005348145031338205442019569705222086411680283328039163641558201374641917518115809511776510158688193855301251418421897879320043484528867395675588377872319793078226059338079573661739906429115415642415473225710788902985424368258722980506121140558875176420945129690040114176464900830183040023680492537625275365774946632154490560680514141828814795778586466042943084124216512130371638946709763586716796819128130641493991717270662723193052886031049496364391123936169437926245084125139043269758653978432659763165283493341176690667583985102922732597558556274143035909644322639893791184367597776999112090528965739882893192207990220776684475862941687617867881774928137623844066458545326168562537108807726489661330654542733795730886625174343117733172092366824940518913875200895692914536286780943905532064954054201492167679155926914785884700741767251840450249804555998017112678717193371771047691169385152320252780063690169081706993438781628629798701014794456814356478840278299355069790562104063391262823176103874611894287019255849316956899111035449074490884988022517025945782244151393944360565126011509723478540986212561330918608656699697203487371614411480913044246090814725134133517946946827105187017046753870379516679182620924052782273689357685858609270100517521655025646822931486402426858348487420216299973250497689019062993051723398265422527079031382849586882066821597136807958612421944751908127182259183048067328585589862990838638922934219922087067557849748194175180870703630476818980401714623527003120536579953884924191418653670504750027020527942802268032092611461476151661945141202945866380963201321143191860336263854548660842256731025914317573609787604722566738510971378476118261331240905179950893774543743250972365158435173858505689170571057932484482251054286586400266678789150988360457872281347512589462324140826134845374547767739701041921074882568968244127683752733380086346840019796978959144824286567466175043734364916917719171521178971490017981404328668309794312107760036284808003876809224554271549473380539437496087268800685242871056321336733970244216242868989557243459314872849209455647779821098867737370903267707436800604215585787530115645858087763439316490864891141026979418978167069779716427557852358893925503373540374457293760271398603409773381196103369076573843845618934235661763673609518290016229400652780073044566822626151723134834826867865091129663557309225450860434833378350441460825200901472486079337243225583732515485905152953233065691257683327573405678925895220870391520955633000943105336231025682812902490999798814061605606692573419722463708170385211972627123714948326245466360942067827798132977889409399162698670933143094031581711439401260453669492747549261828365909137546120772477770227693208629467640544257485444428922660864273795331834747720621606331653222726068797870312404117635360100484887632229739241936417777873094315567929365680215071367176595716673869364731784343538961724031402733991739836821203998346724796541499952307569772127586775145365615697733519747801079715474372082355248349694327386447121162767040087027024037886337097965318805214191012273002749845406494113779370949531511698661913055369347802683962376355188534646526383532759952139387395357815674605157097045159852789225249552161269884419575376204361302126440672791573479499841905390105202523058796479442976482288476638012719630577285606069123403898853044260673288918015691034865183880631928399154559249170964650986256495746433874342071234549167866959253568177709238112663744182229212039249000972857398079844094265794490187462088452216380602837583998136404449139316281555911644931572031847854484756158460673351471061898320633665428201287100789451150648991363863984226282811820951333244200625492997904650231001109651920689128455899171788327938808251708891566864400804222871328123672817206890803573865835935286263794570301819271794917678570172979510422991993908260858939621213345687916009821222106914856085321462559786966260835195877102506475939788101973697515495066779096088276548737939715341578089750596846055335400464248450310452672765369059514474957670930726121126395915007375270994992763099140044440288860264167868757569905924310588148639883143333574895266418294226798096757963138154791656689164412653044744863332958379191160459954773681207622691285548553767718775444400202854295501183725394768076533882918185134478214902824895627735141936300902380645195371451719894216081779824267475018756536333314619708786226957567281421365531317813415527881515553916227730470123460608625819639236834018810150714997579953076907273963397652375926265805174120050222028140880665873858940875059091223264514660339856486060375043397238362407860035530299569193417116634503127597219967158216286906599253489709087103702407095928480841874414142235873890020427355657332532485843599750009154655083659504053741795961085951941545321601332014518319483002761623942267263275262149102786669824074339318423218235117114457527026344843515042389080738664461996018782765929497199257767968151073105159180565015749189233638126370384449105464499815347100600395527298517321463707627947501352833813045666629495849927882285419224178511330101941511268401122080461883564210837943295916304276303842335654662268056613379705450895190517700191848240936906111233906345796560336991146020829250028930953930215762895987897929707588944642471764627956471413600490904033727105650873904771758381054136093821251642177935466882358464658696673466071741893298006746621105422033291724459312078463773117293693276803063013988714736045883841770044928339243141573044875836389401050708454381391769862360889098355544249701700308764943741511484849705331155903668890023452957250941450661619244837953219881519734813830387925488315345511425406153119972728460647592471790522859292990558031960157982758079391989252271345765407299302915352595668158426827904607975841217454655379196133263790233783006425273753716877555805578965243329290628235939277900002942752004914553744636389334113679178978636029490436162726564388467623740530206500866987800556411403764987568839851516556421248958869017475922566727083957338348005260575582365779614619396766072821221635801548947099322795086584881508566230694590981281308114658326428225271680553818578764834689099866176156775560491132423233478795731320288887964468101663122183180977722670539231092801684043181149693883730005147656536627884175046917529573371152633844730817154527372350291315619327345422176554426211814837059331442155661854339021204846216671114649385105668152395229485261369018438202012138486243165516793092493184396286978159715672843605678107336497850266604329434102382769796666196617084944329610354708135117117429485625920855444070838288430463221903184083937965107945870555329804561664193517847688925703205241780734541731086496702505887726175657050861984687748676291471018197701451830614630753057933274614050192391408400889311977729433300133755620866608665817322243651903755222903678117493607418037229394265617658956647317397691490373024029097738137312762672641651079850630115470417008599626940756641121619803824738681503698791028689638490749631087304098121589305944527563684846449916783252508151632746117551766891037898080114402593390773778144086850558302166662657578187569449108721811935559891412019827358602903387614128874550594212037975159172141538763346147887883918458308313880304312185344019606816277104958561643036073663898394338376882297537502461183124436466149190696704708445135069511943917286972447032916895395915348815086737275950620908121547672474758367323589583694913714726413425257283994784145845282549056316277483750416429753983526980889695176309416492176935601512149676157121054057466664248825543454421509762482758664407658586507220842238768179092885897628022412615423407936513333171851764619706353602488365163461204962013521091484103305793657686759494558063516861888606298080304025323473767225210479472360468902199911064879614019733376925757157236409953904934189634034465268546194095389936066354234276168848348043201941068791562863592630518413274853048819959944960601335062952782449169260376105481480624384824410855220720822495694535425414744255896470372811017064739151431901918318884805674855307168354124516511396759012488075282993695942144004530905684618911065179661915760352892365722958922378127427759933175311753556584905828659905547409642801411696174786223648918796651492747510934513586512702014288141540275803601794681682289647443445419901298162644918563705080471798906530233921833699359695513348372103863031851597825926096850975303732949652204835894707309915343675971384606394574940557433237281673001559732717481679262228457108663056364366405043688873183355874281118049432068205109025944728925412316654762775984404657357306802988179666206196566985608331123358371779787133344282177567732700384238906982767169105939462030685949986916485485370087017023086144752350275740659166518501883454189540034466853153298624401581522120068534300432310928518423460471275548086297355679466962296943351618107971477651192257716911514561284790046919365938188765346659176656099836165603450021922556389281276924712186502740739791872309089751262408649391904522403630872481241867196481379452656549566870719943005171369632692803119059849414505038573437911293681261382091111222276796390475856218854048292515232126691463447108290567980620672284987903473698277855785192789161651410952607160120925223187805461746559095893105056448493041824998183812178403639205880703551303056371270317701368684512182675551205604451462835796398873500798898746195486972063968032178143103848113349957975855506454519483947976507187198245804700665718726530489381867824207779943602752384332147072771374122581419170924248389573044099541333997684718212277317199810010538655524882387916658924218210764743879658172440468765540521976180415869092150634948650724480969737230947371890334983899817426047394566091481429918836766008607650598926277867602667725107476719229227129600628915285974642129275798528002709947718946411168570559178129450629601586621060623395723531089275634039381044644021477079929623250842747041543583910438388348211455331096123517550829150760079756599022160259189820033483121022022454773040131491600080142486317746989289378814357270545307161052231961318686938524032669707527065683767684103912585816071556751082645304741788115462528155776381445954236333678899649582980416478000923183689899786667824584676265297264997714199120419409406575812553939658408430133850313875715346321598017929981758792713621751361110888103572240251255388165560386802554608468299044164835036201041670930286753433466141873993900351266685614122686269020981652349117424344437846887080467451191729906943453220888027721942052060333995609586905708954861079731301605830396065186463940775773618320169575854747982925462984836428349452192574146109957756574130050186772883999962390409420967144329378890735038460566221367070463375992960504848389972969363387135603358852915302268126953071524721638302584608859821624583814691478614974031863546830794935712517296151774110611530684283563703674785373975322986933756453207854293719464043142984578776558890024162108237811248723177411552132515023267239026017075373192341325378161813764922401852623781423389182514809850070378769131702934524895657434452090427070613214423656610408033718994138706124838401358628302975358369304255787819926744148641279986929502387661467230330265716457683079170094455337264492517821782963282113549217290066156744183617586078553130617377087608357259030040661194400205909431053781675057938642093045037940193116249546759702831166826791448149532696229311026948023936263588367420645835583340548847325532499930139030557426984758620463236752375795856542618088428044600654681546591926734663076876323365813585069434212054378003972846978063732492876227516093718967829652223089551831896865162387654806953884730544392443324893863564904179683829081266939484856913847532867512143936876116812678693320931241780261164783091899458894323242970565126568847325243494100075486445510122380164457405385441919762219177258496773816937499841996008397321992574853688058408660133885057248709715345416783006248742020357415639944626990180124414813040953926352241949853164337638871250672270941388698882581281770795026772762001666542638612203981999017251844198618428146490640215612293567751869611554242056787306183269626318268583242830548850663178986909825282005855961058088183436911852874974277672659956147523187112284435970959619733791153364381668288780328332737357278297389474232055676911380124069012471041482500480250332980871382239102054379685753795816597247532680149936820848207550016278993509621068609327872398118673116921331605612496608778926263171702177533640042496494925599211692145367979756240112037792529102739822721057634488384097633090167602138467316534305586496011334211694856617631130005244388567988345006514100862531397790675416633337955540781058464849214182616309813801579524907535277525701156465797374166207556791301745722739609228198785752044064467701082176692720957582486529509446526111359613773970167352909205579818555412767964028489517143553748261420934265399765521475224172107916662165071455563107053974257505319395995409329244695676295322935087344287113162432829211416522363788116426419880336906629818604142324733496942820065402664115385509611271983836946633881076992971081956262740162963235295077546100778001825831605612913735071870436094266500207815093198809606781754065799808452315821041454778564119972169295888784769997617054196174751821201220679692097418398799884949215170697222434495128104447177795399495685365700557775723005361567664589558962106270715381689308757878181297771858332280447212898384939729294659972075966081210171924444516988668670886662047427487999565163096869534888107717137062084966816910165693040897047124587465366364631000719300901765195232478388272528473154856279670199497272301586369746460455664665236254204250520319990536363923827239888293356509321251301081915328499391265883151251266630401763528380104034553964289263476952164912994332142225529964366154615429184926487312840641246447635155396247615464410434804819851531522918709358114125882971462123283836972465858048443860316006015196103120731420086636970214650835621921589208744034333713951721533568593313947557233656429461258639135469523325463854278313533890190421929564809291423513217750606240516792991578700059027748314697050495777727697818719717491968685981517022268420412911859862445603533946006027651804566501870094579946466586989585431455943301312096209682651241329285267547345872158122927834221890738102645710692717711593547975143534326832580140560148906954947624347860397304916152970516826561523918480581026469642050298634334293924009700139429636852089211330628224281205198682693197771581245817897383944384392897477081677570450011708836129786183940570329584293930869061378471671812430584235744634448971964108526366014307446085344070594123454506630310826962485386506687806185472443206470910498417341212234206684113031529553597749812017569631023725044022230060125668000684680851320995272860559389040856831518565203656725481011459803907123700205305318101867547921192587483612895674845752534334702996209685543898367484824839350327573567121009007967188023806898167200673189380111818219439442227598850094705055581085231541635923719626238088370787521555706951869206922005493336153533007131444699410359018531846233241673820862358466026186352171134555189811966554117712910814118172783070483605225014939684714705280312633956465431873679602615156101468143755734689306858404945734646207880361976755434923224772003384140052803716683463950692956598965098591746968860980850062745491770916857003609833460233944629743807686425934429775259751270406818174775042958261503210669254348198623950072657297599750583389258739671163125965083369440612143874360485877502428742414256677607385636573836033961304800119688490641109257268849821475255923770791439396682232817008538762556245649455045692553742834432343332648234999179672887804174683814722707968917549126064040225607755959266980459596244794418204068658939677749128913994622596128380563829974687929665192347981794604425333283188516255163508703260562968432796169557568763753927817467092646946291577670678134645192107634051861487274897575752029310068569725556948766512529926592018270702797138392453000255502281808532086208876930440415955490881552768087090275209106570104112851289437483582482033085546469205785867712313316255013580643038231468152729145932403717894054729573637744025573245454591978279779034054504013413454883194301445861670775879276992001615484595163112185000422912166171101585216994335245354008742828584964496650551741682021023698777279538252929513463964490142312621705952267426568480961398263406526924978137039822918808160619364202971687471260579122733954633371654873833431048432690759040732725781518257678997320729377853553451428478133592699371626814246622555458648815084990622976458873031593030806167649205869517399120283408173660870289023138550005960822478986077704064507130128731681531443395260909172486056560095642743757265576798990169234026294811531172797834275142734587510999060111839861389545767874188015945443459474032542847317633065704085403663938357059538769530115955073875649369106318007528733046110261011637929265686416102013476455156912585141098292056090217432796700089068264474017911009575825170924065490902056465720976100949470576637941063829997248305688920245803046557653465737753471666102498281477762514102119818347152715597503418232026353624629947608010302434636185176113132174827848331708944182723135047228766722325303118810875837959197510806020776318789901629842670303269794637591190142924643255744797456151270177462210006939266204685037934449189638444944140124150678074914467329872577880920233341510407099885308838131665747137818942482057490028430609584428129615168111625374191917139536622835516735454051734549412173139807405428798900451700224068147608214688816482902422277900312513447610563669711082482332503352163556236936731198950258686261846400217208428476710475393525074690812712355409683445513150836395554238131975819152018809052774207665781746217401717449013251336892722466117903882552553160304709119354501921891701585336570586126140012809972545534077223053245274962800851504195475551195768467128466629372256170924909969475296750410593788926929864679777384521806268878331047388854034942500587561816031563961435840660678824159706458088266677513121588340060333192825841823063984133443387077681537409511840351691421310320441422499409494954168318410533835841847674937459036220144704253066410584846147700548274359915174597064688579338176719191318107950236453170306127401180219083879694184017288060097928242688771103232135731918261667203006650269551962111364987123167116876955561463354044340503732739805601704510581532026475790481118275511496731523305937476981554987257704418820398925979708831882004881042554814900209886868944024500658698501952852981717914169333540362025060385977544041217787937663175662900288868535065112862592417626537618656361171442438214108465103863713455448450286279837837201417994516673495004585552713277698667731326581854748551907460613978705395806874629008372255310775958898400616407570883595874740032413762669007403772543332956279135575793013329451331401202103611544278612037802477470963727661873655869117109356431316300205038862999744192940254019289779233122288938806585830565879906736887093958807281041333700826321684016483104879773780915144144084578179498354822103516383430966386090287971558636946545209186467685633102592252800316368236052366455819539514863016944659749233318612936334422651253921184203647786129918125344696270602225252938410772093910890104564598898963993849790199361575598748966859556014242657030858981682320815872609534044089548916883024640360113334973167747624962170212574892897525594445148772067591463386494705443097379135258043423370491324832647130570385958321925985024949047617052047368565294841915225008662314812095935901953685986752116784952902494979846091821251142867389446347685456372182366465942620880379359974029167482029757812254803116116469846251904082459623960198826059706718808025307078233305860982372617535288582574650783547297346257189477880192016767160591960702716114497538575527048790640769002286000818073568428610586545863286251830958413044123605196401834229884390188943504653063897572647582691526850855043322162706396703043900194164441137185734420875094180216313220990584600732080705608578045589632628132630752901431874174930118781781651995096478329265434395099707273071087629518519207826322693212587219314771016333918041388725541007762904973530007298430676658273333529598019753440850024566490371057160308063475707075499399068160488327238852127618972713501599159352730681957158557759335150674131985765072474805042847712718499165237602659224368303748088199255427087656019154386763536800725878425505816443761093730335356568995548218045796809678820969659820945196990949667203570197302647622588645053305648883257665978684250907713768350376060129037023000908077756581178850334145299100381307971990867890324802538529882705030856984805638082603567567625922718475276643253428285594420951238043814798613623445404225126022600113448620200239261925043407861405229288768294195846906706742221622852429799379267881614222283676562365117694001521021624172989225386340469494164159374984402586181337736497708806487104288356946244815790346609469861417299051439496197330532289838443644630040943974031872752886185272473894976227297632495997173039295142692577317512395332767871630349852420349914435708561541079840140760611868082496756802907259522998018113589642458814311057082033197522141280932647590770427251612249463336862332438383021548831023939305933592633819359553724897466865865003897590746452836331803318750908073906074494133251438864584702602888362929245503102571610674039951185714869712819862784886056760962892063558072916245275191130474188452016357281038746765163425159083092370210535407753154572406607805891650532384723432570023117610737897107410915880201706421122463458154730890827455261012521281937288037877321159072212699659152480116343319267991523714152219132542966101254649300503023393811840512569176895908053706222625284590672358211007092264138103352941915543715638171445146412040805276831885334120324707480291683947989379599741670849182250273858391198110949975037067242381130300444984017229327145946254408612532939179375139614983118930996002035665670895805934602501582987531059564829067192236698534947109947185114592683006152147507788408438003059611183350053784614295457014639310465307087452176463793037819244806046553849369933459298215081227176580858380685322584663527799267609080917370481142214088574622627105808754044324451613340340306034466939666870261857560703547927833395857381700413956682520868243084326505970052634338152312943666582103906405337337712069151242594597585877686757783871157803769611467260872673114596441751035595136462932216962592004699695676024998523456411084607733499727078643008794011040767089426606441683538793084111701851858831544854052700311357830346045578785086241550205615918398238961586502696141990844325576084685118886386485961111750998977737174962718418108715890944412287654235922906579399823926685248565062915876256519976120742723831235914067626480677984839442893521506532701321893531833557518977496628063924367465056843828532478515555372843006172243016492490490486253010316718616446213548837383119368242031482382362950463387697255565909333132662886691608778276297794862697587913816220549486777001637415639768048498338324493695461080564503852050333481520182791595344216801765181511507432583482568209160104645500083454586259201481370858750331409935116334710807773111080557103804453423056261381107247067938063289846478360883548043425121897581742013396996062719986409300645465963498764960971786656990067091426313022841929049107539743196382449484440426930037513245086309477025005947846375937477446103369007295679583355006344113858929611513510089577767304941168652355575666227913293639974231004680773652832570055056600116158516262205959094550146183948005912990160701328451196523949365842395361789657682870809601421331600694037691372105118010330807060187073458755633043227143876020381846639273689274344715790687808286386347138277227157559267773178198658142478474903807670518758761735570054620597015890834762847293930026574927631942678364100957427029524701052838844707412823880051269294816178934032129312912799447092571244853190587957074151795967437291215941838550043276821542558159532148191634031077314111490057508671215062702452814546104153082618897778431331602351664876879323476696593555191351072714519028559983766646959041607093786078678191372406614416146425611224633280300953511281396213806554625125134459129424437039357595989247184115935695231603850777010013044608137515820581961238303199928767382287134960571279620886201739624350230163379589862084803092883190025232767957336723389125544076537869788264767188789844856889796848479258421671707878565363576272876034562797488183540055896478580434586396919703203706106500181087625006952568224152162548531771099183325904449975679248934157952936054628304087677120713679327661266277572598802207780013999011057222431500010469737858522157653163150605345080544525919817201281411936349460059002449618288583002061877049543853715826403957446655037430122513566468104323562315668109494782968398080027315036067419528161562481156711105714930073317362047758888709508266782794620920934421314662270958594872154674239907033640973039580667541076463133406277950761117299285454208863440015929449848031968450833818047533645573671309018920580496612620747295852391678280218659837001691155263072958394152666083739052844317713247858861436517121668526313132157165010511644375108729794473088267935185206236458825142502274832938047560711617524382114366122998314631770067312810992644916174713323303240311155265165811077173098648614577343002207100504188734054803435469392192127921427393232454535918130410074206971760950309504186318609818725696587336725995672523248955192404097199023093970982140479812085088509392980634487182070976730042456647829670917639355099310836254602266659263487623579803161918079844311961356615900724565594268562640762538736905021903490385535975647506483145249939844646230844027866100445475183431884434943376835429377768663810698801520667799819539966060370539824110121665671367128052408122115094441042441755566434030932739977442954257769916561642753205640987852252695239204023437592801616182554751039543300946141112514670792684961022277971151594455542331863133178018328334154056926807275726718043988580776666460787122466314162960148932321146683115113768660757618338638246304692253211432284274393220244614901849313730980376404735956980842436546769979560466709548908191666362804710075854295364201021837305732074055609076444765211570672960807856601219475377962263467729986295425994436616930503027730839881364483598593733781507079994847386563453660005840583741201904389927550039694691822388315862178972869796952358802077157059159312531980669658756914269870824680077762232283200226745224755883344016341813878050122124631020327510938111389588606701635532646677446922670548475596371375806528189731087545980375667728078371018018229104949497622705601103300409852263826705686711751163304341879080102897212252816597670809237707748763784394645709898780929954350811986634492655618541231660829638963255302810723245948492214465135682887262151212598798593170710962334310726959808045563902902880970092566624086066852234101782591213777731871081550807288741413593598586912520792626408078497646595069009911754175695722953170950469841976708120315753456207449080827082353581068829207796375252928609875412306199292127041246553990593894650837268436863813731660765726711520668752157731614655545742097563885065589759509374903657436512118442315692415097815831590612293107129542913224737310955451782956428925760368741379798129142014097790769766619362937881644350634635119283559658524812415180417043641662365962766197750322243720571324126933359130679817886611499623985448052855968294349019523925560649716213831996988606975808362130437412213438229390540406166497917918827424614855824800579156915982413510984665338322502637909880563201727113629027005203260003903034103298166777576241405161344986330537136419993826385503992052287363606214558549573364662249444176838835561456701552353888772615108268924832200523912014021239817827324588742102390803579853894549837713001229728448190254593150960401403565799735793452266843564244537353491528351987119537741082617677687625865276710847261480206871818260282794232066464181409882134388962246431432249089569978280318335528930475960734931220276055838070008056852492006064293162534654908746612333552073208791228040649627815305708854228996567001287903856554408805199650780253963827956576453845373467809983063178411874540542683649596556061227782103261176871713503492614738359765805829465852739910832640543054407152523339812341506633378853611672791565714302510678778063873611375091221692132027192441362870400168374695686182135223317323392958293257915008743737954987569280915660895375368076339878960051340293227477526808777838745391015134425940518287743318421001197125695673110130751407313426896443680078025267877867798232063882865499247570049062085783371193350376700305994543466940443077304554687875665175192368824994016963371253476612090661782725080425018146615363151072354236626717323315764592411915262094862479833850169607802639934817424495305267397792928986087826937751488901668680444061818779575313471781961100785982046038035132363406068544736315616417796129927747613805983881123479766113294052976810948609377971100744852035247734317403452784019804353360824472322755241967966304074924159523067370083847324333235697441054992266198100353027523525609680413656863207469342244115457976800154088965678783159760411488756681244611248986347022104527526776427617946694006963911867681834512709271636596385364456283942358834603848339243315713590051375962086849406678737307781002420328197698391944855001988664137040456123813229249554219576921494220032370255889945172663274708982621684516339958898647641154702582169442227115257923177121089584173521616469361054755349877907013266893983633150252278836258440220646084469348497264128804259580386767576992097018317565768759668586311280707782929512904358283845429596019021785233294843391109237367226597697435536217156572263304705310614637672544932259657319435045131136820789017160892061991015041419635429830225291452684451531052595790971434604676136602555212727231782927585263836652503608226725841296618452998163014920647000175280851884925068232296850332244159558529609497096018347058208365169487899782416824216712454294412104290946227586702928203906888402917022100246374775536993305331627069921182969905412011094163316630368815484408063561342914480788511107331776123194668036284900452425368839531482122177638286209332816642291283019562117317408896576245082337455748735070546648967965433655622006463203091302178036468220029916809643485370361856102914222442957257540474865471361484994180755154311741376628301509375965373895376154783904145496140585752909655818587252579182634181689843542551546481498384306874190404377530568298889062853578884033984717691836011705822579483335805461594739219567993777698378256270482434422455649874717832438952661835474329265428157456815662070713773892585157284595668606934187055787246201821630655977513653882500750036521578296669503503271598717244358067247632504801988263035089614427433420425356199858351270935021342414086110531022921747975714042083558626707595423358456169402099973395952689468747787816842432515487074717184430137414629455917533726159808807168566870350168692495708872826825650822374627144037474663075443213339627598956084331985913590267697514494288748918357221840126329529128666754149891573547612165552490990959930217440245690940292058856516759596272667104617068769656800446794610411584830582590076673142343323872505320887252804798368584175979986436962018268474340319906792949929137072502017559811815069065441039421143405970888775070608454788498674884194411251549596548736500905974524252382647552919554585648765413290732199017898551852718326335708247782710389256531474493241827935639189182037031275773536139483010510906886479569722034101207178976211162572523776573384140491714537388286012463403347257070701324597029543972320854883618941797869539847395472900536206171566005441649342389580452722821504817742014684200079563172719639754441323316109913255443478378057024587058773466395614333064386151502145922561787208692114732730909162528030110244103514088351365731018148455052156232222110907383781220130167640665460832313767912230958664225014387791817428416058169125697897661590841560921869777832367016398480872554692234233972169207023640619430956836496731250404246883440154044306598434160822505746616214717788684389603944101584756683705494185123911363144780639612208127365349904016443116030107627550991172595796911647275531065226960980793679393197739875451680020787622089282475810082613718285929047807410228458205347098181748544053079026608917738241975235960943263861110370776343846280416709972623200235826760550804681023159884338006731946744558593288330124364794651510726271358759228626415010014348916342452852582517772834400097688885253749978430751934123197722853092075586298242585832421497516524329385036454410340868062191801499051277869361014808461799569315841833256609936148639515917939128781966087729045187738007296266988811331817132959389059039317215233483374359760770195345254790405422199477954447106714993807531093034989738152553182603314287589906883552246255959723319924747277584137521736391278120755222734396272796175624261332046600135095168176443328185350780449910795634811453192429774415612433230155029337244108285227477674431472705360339111619316957288863449116472917708038563109086951649797906104369201309686247982876661778263518938662759085976330587963179036446558689642337970135074206795147810097502796919477373007279885208798080326890287849164232819896339286962043954735491388866910331983971038049893503059760489663538423206072152204417497776687093158338904311276365266122499078019265356011271695739067449536650596566549748835639761667690562607723597005092172183756178347707330463170432005910397846546572258583418344873545462715244680245057159765557391278365754149596199323933256710711718527445244297087950024810548326683597000123106392034782673061389591693864127109432586311615746696694982138573375611708593777136570469486197315707103777268929948021635242434101577325104826970828407843174600576627372584172075378458284981603941540221597578789936881290723320198116983943295578966046977002829513865023396561666301104140913911487563032354275438262303817809012858137246773418095605751348077528909645529287593432452648850283075153023222639923829829005743423284829019540411456325560879599021270351139091622874765297904232934718487529061488560768972860028400783215589776076128315438838193548040119662582580654210968459669590698031021710410899252099401494104433735448853279125016144096964672498584242037196475796828232533890621385397389156704799797767865037940084690624283974409588971454023263157207725551912459354876583640234178576672080542646449101853666598056654198015570121070143552626321956134618007113030480052255401520563473258558339865970780185213096578990476973354002210887145303561706679846973178003225109300800246912927539143078906890312767806436504089393796785643733347420787640767118470236817142086988172337664208223061305538837392497125028302688637535710422737739348310657643096041742670880566585712748566470608057272993697878599896372755413831507024535439568031540459459253075665949633117670785587784104303337029201490983490533526129671204080898443700842935108344518425791964749021037567955150857296828975048032897922029674591123168672091071890097413519941986275784883566426970919120622384913935010927511453006802229060960911589190685114141087320104394215189286810574791737028032990553465388442187774751942041355778104665799780136479569275010283954660993661408403522618150568479073327340197616682213337679846168203628063423078753768222287196459783955110108524983319431770903086688306942119402680200601429936345375970961647761801970656211111545300100833715012963286211370613219116507964158922049403454702513982295662995576351557110043012344907859170807587553446453508734037406785609584525576803279404422301295804744030080093882925931538664451398830341328721970626880124880990790750044206299306441998242097173415291599039449631559952891129279292354425215203142874674914768510766521945357083150465724666360358871833976159255912350494172767419528561782019368857084177495453506370237933190744240627267835943158324221258447682577937688167214920371445711048208723555033682831303662384354076656539504928439220465970451242776844797741372346728656923482449726441638945791758525189268193960377312452023015600953302597421807487438797992908973820889622981628022335710995661645498352761078950454538604894513551527413954717829071876151621447972797020380888924297365076067251799708968189896237052741312251841052402106749407400714352087512845523302824211757230192084347176711969786631467631000410369691832446406651894463418385314912717078749312844999710634750952573235290941943713516352185847021368337994803308950116057512735536663053939020652306088265693765769483352586092413231139352356255979595288371175106733165437401414037924185631317134542313007093731981148067149148765417233945493570992758119817600626146474620845830712249076930790632272884971409413898483588712387645429502247219990677831247904071358246309087094138848481392968042246679409580279178897006949859759496746762619784992631404889352055920467314780452063712270960884022012801940178889396205142618046890166958711193570119367505664244270070640401928606665472598265655260193526102653026769596484910356853298965345450589232633068778454996485222103603086587169237779404580817704325085904393096279837703855467114921481199478561911798057123117423868550525463337643538340849685840741953437955910038909235994634178588194798614159208337514600051395711042024793746317638288700057679820866384254287863685358791310604001771890977591833455413331949277291481775753927291755924027396000572053589169097408474709417918500280992863285434875125063416074340747258375471078213078882505737728384441539963076938332161170775787575724889019765165157912513949383549345459240691692637732499917861810846637311676734637141743367162838876597603217990940159917494925722916105535101000747865018554616620686480639896267170783612856667509192590587688842617826273773279328616122852486707493962942224748375441668896102570780005914904851181978900891300043504762157400491444750357368341998795224467076315776082256172248899228874169637210183363893928546060822623722432768066681510664409011724450975245808476058000706544543371401364924256577206198949409831396853893366309469245149116104500569994666302955711225240718458067596451265083427204570653658705195449067215453783521649209927408192823731346339865159505540424571805334160539977304344611733821949163276931229065864717638230016724526188945458587642817870838044162997239711747134433218951645001025590127470577913713844926358952602563327970361687578817865903072800418382339532842768956049892495876636290816769006105814949252140513303896007638905915993079335890739636713723667220123871080853595277818940928082420402785918837563209802533002993758678317325144808764831518097170448070965523735464466677915101371240452025022392901938178268508740565705841261309623387993944803115574605456069662868123282391706034688533238779658689844696787695484188331422823834948270383965583587107637953742195635428706110034782152593156250593319333989322814716093274443772427474841102786209011554569512129703747656692594938848939429997791754357968854782462558541807164772695712829396940216047940841690573369465578184292079244757343823604033590889026579340431729779146609118269163377069574044736418625239812256366247411034401621705655419814115864934061170627382623536328333180531972950187565684030162787196332143885955829358158386663866256818875567948305035596821634730645495062201284830961364660928884185567355071005087498229871345945715183620304969778610844804212852685763905586604280829524683205918734712144069465146069723283767432692217989618349798826646394786450818257838748553929071006844092550109929685592847045882375878096350777308454402121434536261646718367707535186485560396414893770238017900251370250003361950540865837152263725890166969407282016037708851783373028801740701027126268236496658635630284186424942728693204972994607914945043105297795227950479977804662283892266400037265212035535491411226914992987898947978872529329308434888544659719728807875837792424388382729139089021052843579744831194890858173396938138810846928105789718282105710864533161422357389763925388241705716942599128422105411294498117364835070547513879182415035374775353740658532568560941436553954825327756721219486616620446497168602455538607508565340790740522745786872628541342063589198624975603137602911341870214885231024013834412745839868859908991600135590584780750436631231176077216672814178048428388241731231676917858472387003848300563132736621527509223273009955316368732358720759116434550048903023629374184594782031902847051081768369038751672006356007905943528515175041133195888961544926530434565647207142482643262499530771350381345635290347641878199739981375055322642549109642413236398268492113533146280029417008591532868447809646313494604522850285982591182348288660409782905639052984478260063655267162878713562114669738953069689210442083652674535346024419914479646051431144492351740983830190661457495712406292744044951589528825566816945287301890922617029451150406347464484075428838397404795482670342088593956008343611024628321557771083634831234139685680140786787370601677363622009056389741359709122187632305509228962641776294993976393158307876558961512376957444480114299740241426907762671617380416466907916006326208710099345900787568622353741292433987988708001640317157393540271110222373301733589165230985092201218821912694645328587486534266703656510124177416132190335011463145488271764275146214944417701012121755777565204693362423288368950984813114262760294491431783902273311148504946643284014063891389808161825261848673751107154848869730546623691659641558047802708074719339579719271639665537038068673537952889538098856550107530476002720266304583907987867299223568495120700797309562507662531646318663436773444802692780926855541783196449892753834221241870764938899691639702458060813936933289197384981777857860068225786445100199134157188875297607000801605367871377414315801327451297753719943779768503953210672345614090378576399766277877186660147757185048015029713978475211892049466830823399911743933623723876321563501591548312226828275534061928870652518289293171188966072698639285305202580175619147393625073398651562727847077652686073484508400767305988387784844304090887288391055192345979352450011332025516210549715890008060802695676960520336847042554111283805046937500968094838018079444830844456094647286731051098475403315406129107174413370608973470210865703972638594093846759977626858545619721613583565549050816907478814284528854807460153118851398150741748217583101248436853681652849990755699023425814561046464670601756391681080174006802278137948327047792031390895058885092045650686146309167094783901245681599968668009626567732236725584153281666283659415165505112950757403568810377780516405159276942795307119499196593233693963959724268808832894936670886743294116428330672457907868374041095904765562958664059627833840058434739408804717969469121818690767509440734423054196827454432122404390246079302967999518578737845739706197073185485872794193410627327631000931858383060295163173651725116421138091316115199310543590445883093093388483738727364360465538113089131787263594793775977908784506803195669711226065296676189242224555196843859798876283595297554415521818952765623755887518880269080784093021210741091441129369118213516327348537944562752322588818036860444636131954402975446845820993448935668702172594148948194838204874031431416177330732152966761815664347028825803064073846496022445451700275601937525437665557967600723903234508688322267470337459594961540273943060940617739151649213155394647828135297010785202747861557582068205769361528410709921366974092354904509662324721301088396025332408119986146277238963980972175372226745262945388066416909080224901212335601820024482390329680006919392287644756523063001822017706527123270582818935388772874695547737078342670439237393721454640077315950095678955359745395632597402836193558056410204234042178133290345348907658771494531451383622020801012061657393160862426919813918736852028010614830664221903452200951035897698745880679296413958673732668292199585080248333693966956057522491098078527836626298724554640849116745113792798351681719297010012724002510405927693640550133485825496941752986292271753553217786465206887684536176503384229770301437416265738163340026989297830902515295282894463407649576924064455068405242251449839558624661233031398559803089653144484741065267853239264724273810195463380654453206694683852115639423405383723833202289226854206414639915868898624128668188158038685526082744005900448511738141052897390607081647661554981496198575497706165892429668451655250810727687151281550492314172209741484298330816462781203910412990344030020985108766029578382339860055233562933908533325216602971919493662605161322918136666354162956491306647340386019126177114043897027682585684773527567089269363015596062663079813256129950287945458888125343145141904097360450853825802022429348041871927016163382159230441295849384674715567723779240109880910688638569523184878973064106067710910495716807681768926405531144145490654414640118281639000831864878110170145973048284641313680729674052068757137995909206798719691660709068064494870058885137199638918733294736856824041818684334468542157275473362044326557133700778669820593394877541230896635420515024714344054142594020335745485694969539664338223355831846245724132672571491418452941860197704810921113811077437255187650042047806223817030791405779510069556732622799103953672196857920441380809759244338294570617755407185968600264788923648817181887181525707826443102136719182182973653723320114777523185566527848947222710018389671528259546366418390298435529012127432880869862314168415138408981008411747266923380805495933553466941504188676048972925195183381096441079722893527672312835554511595454895770669023795224989730504346838848610409142350234383747347058294971125393060415292422219957254293179596417073532483012246533928071563320385828084642602739206025731864992471615528304970888337614039575657735323797855827448779464912075800686329658490708379814885999899417312082102644468849673309166945277984984072086511508943817936767727149609167154983502324771630102757478481027812499806800773984838280013043375910432277539350394355553239182265620792140340457908838937053406151003898839665035080679601241489354935567491841868989927434305626372393649010720778792075602066005735634261803731672807950755273754113506955954209836704650014793860915854571507589263050556761126981573707746136942535983850476150449479836821113375641267367714493073708369174660777790326445370177194227084986070366568540246987902778795143652521275977417385417616904051244630972787139194419262055681776444563060291393947132071740710857068499475325283400217420747453739274323142392854783074857422296480501610967329233995577260053115959782213722121693622754913473343036312076208220288250947794048803011605955911052337265744317911265935613954840250252259552113222741263107865016765445262894884601892614663975738186435506764159898714541278076293608500517666006420223815028323262445784798511508069290391383706955379230230597411117209261927127875144748002878661743987177186647851472332601712836612398953690739886886287679503880365331569770780958786628392013667325035472758209122847799972681262335997921075267299114210637458380882625568234690513022170909085780082995487033372656692544148142857686225742262591157739538809890163480973222041474679621521980194298569771802849008797106672696188305568317788217006851632694570437390448900589846629154493182977246995277834680895553822906574955523372269902843073331296001097572767375754095690224360930237401934895191768200229505968830448251716117204230520344432107970471649525379640057867188352790126490830419820597878874521998872320361241736337917043048822187816133999936260210270352485925427076007550176909529317777699888816238565930228318074153210375357971544256757730103692657557784637545324252699344741317302674984905265437664153741846608781973164428262268192299632228710558580625575630045073413183026535218474463550097055278656300041169450302181900519252046122988150774215499612592501219659003583772309680118100047910768473144610711553511441622805757205206744205062194644643637722423501289436981243005044722015491076365393349357384959964645197198929031012293232606384505712421978499108617338835104083686407558922125304132096501401314486384625917640597770075275659114620393832391798331833009937976394740022728276856990116309015863513438520163722903994657500288947540066817862386572246447210353766344064753375533124415645264525705906579440578489869708181712656378354514911227529695915149272681351879043266007247114181742936610875791006606351092657409249059694160752912390342956652047014257329315826698358340501935308526161187080513573661816287777963232536661887380901953048581128981201099940322953870971751224526511412256013253208308945835794968470564260901249744517722282098499767808383159749967780405549872960856216593901473172804653248273838134194707097730916325805347456539942251781181457082977039963963512152571135377721594399866987705621640944280271020224553596380619132899450964024196462797989309246223082665875016406470360058258830458537315004825109344625307907046846389202851330755161517211688210139574069497936493947590602318765518921444518353817189632164335126034633765232834210926903856673648764373055695254560461299220874291848207019328781506222519603136326448967624147660440816601106904063817410105783070132127871055474677680530234263121013311151898059137852933909807275865944224665527549836482657396679055172822458870074362508305480505486435260237402126427667144770253543288956873499925506424809744517878721357639141083324638792257991791940477645290658762180236250286326766524558077831821214972532259861004942120497470057183484944035795630182198923558863486203921503444426232172007067208700992601036537615082714137103264816814860629270459119105277137198762434312891329997171497231243742296931445509936211753899381239921402086207635482470038588450917955817677182681053142734830328562918428415088670307023938610463633505306500940894368514418213519352808004026864482424521356028445441257615685149924187152548301789608800842033037310949869287325014165494870797911744504334430377001059291220480721184280329642017210250801651379448171967041823312534221317147073816447170393964940314676185416290750704736238593827075820144872232353528876927267937533125192522473320140373700889498073626181657296532576259660041138914246195521892124349384428231579082588509960014397279974913599738799224829950920536046789821420146608337571411210427940531750803425201655644087089864667575373423445903828506216195302560397984947391071864360622960914467681317978394683416341099834938686383013016685424069664516824640797364760589009059334882534557366170550801669360747421752490127840338377716894873931040465833687354936703414079978830435100474384151863459945136194526528068194262928257245416897292549414069057838774965864392442121932529644762980565101969900451953057423448718724912001957883477878230242017316829710177356442620346487248663004389829461621765858029820762215549285653781054971698433668500704678512927311185997113872894772805173118890166473142067153301603035119141549893751223555887343354974201336342449856193375391852321545137968980137670806558902484283697590027405917084773567855516776980222400667744666606807162577264611689634390983718876541947640400131519955873338310576479340439398635550218988100125994743189281765531742415193559641964518496012042792358998868703429081974165878166890194104593348046748522902802877983213281191468670106683867669277596913395688765437950982022770040566668602651891168244375510175626454488735243739720062202223993946064897544959752125634476095415518791876585433149889445278623173989786756395200246423870106899388962693548380191197489473751469721391332822376379485500078314257183280051756541402652789096638104518881410711663927257700293191995029227067161613062502683884647565761080578128053665056976201086210765709513415244558572326759807827652383483662892292718742875727156622604883754158538160341900324480548652370661199367240713894234046909138893083506857517269518068434772440033132767804121086671250703367579118444057511957660358433095543525524721516747484965532261750814116431296628453242846560471016078100137878833060813705496841515491999710365456007356211773748853438136122922136059519684016997679970282993522884679040789581733625174788847286501817351070735514027447075308342822891133121814153006148065871952379602915726516124399039730388641719623569415488880758067879761137198155270017058083756208287470137024190058055045064251718437422161843829986649939931843872548299934815690656742797066069067683429892244985830207480282121913757682030428284472591908200758349275695859541329833527174706565634215693851780651993306931971681693937816519893699059907976269585891069883958877349699857270502861737237856116327641960958402529501625786488270131475784616385760661222655970976981543700866430359889523703230134833172375405087342261491676228466371116294967180272366034352154086106554357590045511434956628654267034004380480508039096412098822159061544257463696421647411883370310587285915287865988354890791413809051967809636891832927541290310890839404425389073723968654660277427177892012475473413336567527207009390097399226226354161270486477912035121643863253525692126374767692275192192923577899026307152844783454321721198440754109220716218222921823748029957789143049233985686806647959246939872842805554343758589148222307297067578860945714767201758602085502378937641868389287924697730466525546673258852344239063017784985933099696146376945806293541315306647757131359698599024465243688771978783987613474642670552304053375063395210062098603325507515674154811812934182935078407331936739306630117526577291783271804200287800361890000189733787680716969082836986388271446322254018384875455839236250898024770808798464902612940624980590106875497953866274159108312394323097124316684896436865074869203257825841776816758997396916534372282444794869642803323775942461369519384129308143642449344106174377518029861567045745188513022689082922519624390723791023499014749859197843706973480659084283357677471649852862652046878435205659160800651143650578779668621928176125850614413798244685679726872106689693139003697495172108651795851855934247045048970267089373056666156230442116332919469432348768132050160970925542609979768194824535836898890491538549973796588965266320590501689258237544811664300673617845770585012328064009701175259075215852817413489033579974855807345734771002194362395598376435125900401262074474350775781928834204284723215188067463225199721547113677688785338196478692190851831113541558982421430245971262028723643024423652151825392068898152930337566985526806424985025964528885103800692204919984477284830149267324408233855623743564447310442141337217846857265220014996147690047310922521068776866227030416230616367742701908945157751396281688360111659165414617120205462159684238104399927439002543805259772912767262157941409306103069826873523931981690402133931925578482562378811204202013273518082959476331886992689203941086842369125794370428274755480345626112795338731711717124354911056993528471523871595689306940386123441535010035764945141405906096817087271768694980024670814638588855798625963061155879376546655799097622923871843372448784456894028319895849418702738213160356917355201255697627335228312190081842791983685243422807062091862958820944081997707390234137297029807937234768791034975521417614616235999701168734567315643757369286322242750119412916773634038065407993822741023953781392684484219027502058833842214452547163728916399048722587625358982723721993649960362511274198925889887234456475075071986791670682516417420039085744367768285443451246191748844184612215481279587110286694847295969392631137471878542751150023182454343054023277481659225052921714897556732309737786847214733409640107480726518165158093602878488905687417391160240570293218630701177915535680245054042171781156748300401880092529654789494991452942444747796190840196925430695774791401635205951088034452082127814168864493169798298751478333874021634034242987298978968264467275374713655540328616922532806199018530540201181427839475724486190315493664809678019549445295252468419242185642349319249623022752813530496230869364197942734171111143965842952694068255181062490048265994976442853742246945042398273165223231150501329938714388290548057806768253412192570673245884666328885174240156270611579545609777994857340126759227974926960594455047136429873356898696660973347830450992439879713003747732606843459756658149838631608158512088535793798674238856272474345865533678139091856183186489679627600372852302817622600450862508612812391546083478248145492218143061624165140722760455472583581528547909246505080722489241341240932140076089626103645363366903564701450850845980321742830852983273185492297325790976395201855346726667538121672923193233746788467742813433981565742751462220264710223877318193597580879309704040310358083667269023523758458316561885720320908272450072931712681317616595722976983474072705751257145244742721931912432571551334497170378321916799869395469145039169847422899446526050829626062411267617228756185635042737008041386524917970429771780434269480222892742541147121099522338536312114537060681013706717361120965105485293423927260045317259902856987266286370371986389160380983679044001726246357722093122853868364064921540016239883159330868181327878918198057749866448792010471444817915674746070184521710355989306156207705484590886645304234745051068039147139682890995087424034733836677735038607670749313893908977341267920294227461467622977263122426584867449114291629438516577833341811084161561943432259819475982875302996207928855730678085656838729496683467173800482704212927503567532300751053061290162852323403073006942952764545740750322309671962102624313709107952196587392525192213034112935448335593084540252443777011616552405803793317868967318840536892660284696241872439300465684996944336784609162806363690002136003281978589831079440194603783070262582889661613698755041190080515305336628188037303427512975828560530364962492389812500288962069888022732345004314352234982522771669485620818294359566022185488572470345198382281912019619582782547878848767302089384749890164493882998263880324174355238398722914242819042315311782436706002510338610819584658537588600155585952157123740280442029829471658773483375182783491350623470428011787352508671034147243590017521520261875520165222581674447751358944308833947895858455480539152435465699961343892696476327264910823583314380158559119406552646058857210963384584500893207811540551640344651092110783120978893108577654724670289201260045364936320028834904678861632847940258704177636971180982097404194765124323388358010962687040402007104773207721684027194598745733994612963798632809621735981493347230219351233355762948329406231848028834446424797622933788979772732103705068152696247645124634563074033180252880375454303839883449304231081460232655146285539127518641615160927347478997864479583328964222734091804113503526196097424579004522002780773987920714676312308996398485384473007929808196644337091264515484739550084563661496897336949967145007905407482142275251324738458442727693847190881043917379254528026331633957477234643399663335241835286182463153429369163584525653823512638432516762808576019477399270407479711804694299186985414967604867898584375484468255917077208337951901371983323938024720191764499854294240561958160460901601380758248815048122545971045905215388923628163206821491020583507841007729266585480510631250036441085764974679103538295482191753165770224358635186553127685849575939729324387211686089145359120707619804735173028299219865079111635951374587595775622898944928749153756257389629638663869806325932096587508396633445947905737475728812925568611220914822731591713447663304782828195610538694766734973424943546975477698909670467058662121754496181697252278385082284114002768879452078166041238501615371622542658880709267434486617770565291019275233897136553309020333103273950715622015856611538134133718238863425027469129279200475358971321148256236191911239675143697911451287107649145302746493490568615872423355885853781760447824523375355751219303615987418138130662278695646539635693248214317243340408310618226500647110932212087463520245014257648278501952388680064529800280064732824903914428058030083056795799165735114802473685615951711385996533020526824292568660163022708763044598269920249578678149118974779054924907077685003318436229172487013247483847525640129840974379232775106304457191953860554769973099042519918034909203231353813831240552468238638520731343402106481909915315298232248408566498355427987691274988069204249705847125143891847491164081490164967729269101750219407072120510155923623297021837284351302616530414709862628166063486279108068036672747546069775004616153361917857694508578678493858763628591737230858634781815090179835411825017878864562949784548918509944306720645780475932673405002520187135925924018088497084621071610958965103176425528729313526236268851052851490820210172808751521695718758931640778653958082576316848457541145389096779229373208537814804503830730757465129304857502760737125038672764413713692378252458156276170414305073273877796796779100034433581542670940151629476219241525660699372884973754296527995433491648650864113957502586096707718305707252981573159262008362788114559273524583800557643192180225883956878954952339781293185699316767485644154718182612471459864333735057088494762179261970437527493901908722117301773870772639775035941547562267794784849472578299995985916994576885337348152836212871353863439844862219273266305869556725909738325253938810853224287604229594856033965844895630786538342948236829614581980550798307247646456320098012106738968010279519905053804280261707116838851288893831136659747428935635774876532293997422794883070365058945058823894824146393224511085527932963436327481721495496744424947606822289344309532147335083760669223177214402445902125195588569213610695114424951146637160381010744176933383910843361332764862699189630508627896353154713724791160460540526203555496605265864122983655122148039018755137796653357269472172863882561315400385564109116234021624673056073411661125673486656555656200877969696555069545139803856156057793159137947272855360180842587544984753984996952361512946047035170655895116160734487504189388732619750008407204372152803573817031735415199953747453049214960352905891988882127886238030133877952270679314373016425458453120757744136904924976947125666948203580083888114147627690298898015650762716819618429155106471791817740010196231906522782782966357598680994158049854624578561873401435311711865279805865870015242685158083943079707227547358720961750368555602641303155867958612471245929880321186928071044594971903928180683819019768070080215518293918382770761485621016362487651363221925095808140989527191505014891158093045502061743135804100502705303738104701420009560790663110983842580523957252799860797059085402250380039949004685605841376841493608744531207052908104861405008185307188880742133390964643323009643652075615769804587745458547200842011586552951971420215272272806906646529381898881838660763951745741538070996170805339991438787345384148374528773884694700126114080084684469188902850989914980347537859966114305884759834507972783740815485759538349127774031824876423032241422868898870694091099435719749782910411793242195521219233084234045581976146900565386851084031764243272011627393703760149353447290204462740457947898061667245434567205067908884338618515932638929409620325862059524053817503526666077235787317569357952782531642828998021032921055779131351853955642424831240426267599082205071358817077206012573410258701507102240177572761801940975751652193892926706368115896468914781140867097955064906967727027977662150633010899764942280159796447187806809403387683277508596506748910715155626617359580338773573375049306418604100258922264789055772133666121488574137061779419438995661469570427388729647810954579156460876573422368173266245094522078063957325287244194475728717743936728286561813164230572214058692640281519567197800894391941480856770264775245642870916721978687509894465027275600214658847517525127288647953098917339376598125183740963097828543611864070130040223841494620579967338843509629513901707585699217932288243004319108063435977234676133935275724215988333872543373198953159724453315695517008604099186734165148332453799273959796418194404787779538234014470340077819058450990911487329205512094286491125018203635284351838745628182854821306079365820785309703996701332779667968158012348969766333452099618185878777887107418535454280620513409226685993982614226135820227269708291997747902402577604872156993722892894366477788869621014019099607788846328406089432354269426512122191738263946450766418261385472074205166510158921960032371622765173441754284358315549185117640935670601282543820766161507815431137934072926374715063606880055445587578580306943938735405086229288607169225025181191353859371939031128398176901964932927425361704159825651251264256829883762317609809043006341790544420280926578744250082518668022001411044392544986219082600377600594917127269977227937164172743697812615499137749974541434505398645247807455085871849806424172289380519638234166353333541384405721025764324717045335972408303181311134752748413881347411982565979456651889849981638758674950658460634270011170946669846023979113319037207647467731294531029265329448124130307390463736686239183510915968073947927265805157629127825907134041480278157907193076144810751497472605545937421432017660444323536084479832727309021867028846369467976469433793039076419902245861145185246047479488779445252394216542899426894432492810518070448955818607748671989791078400579859559366070750108828316252614128153010460946118500811327862674174518671143211426424022717284947449186475542662692975853435274800475158661830337285407119144952372831044046623142523835618706831724465584518729054783154216004796460021991723476118529526223060022417522247821457786800650366358043060050820892461664111287677264147333831121734956614338245587298926836013375680957563615269670515787373681697356724500676046897444541638838594015750677132905270322116594532375103204635628493353831062995690894805433165629433171502259357162440949484806656567038365803828967736302359853610173201249521081328398022341330742362011404730063395361453604232205981704730270568100603691295635566289179619091511828739123086589430649764038424538516391482341530638775416430498016090385856522028112760778570820322063424673007298813258096778249425608372180316854545505276536473533724728346419238650172521511199403953962175022222623948394190697824116625888860892324119009891035907710589163963702521037105905763344662497337794929475966463291843850402248639062713823849728529295073021086153414388214269367613649230801118390093234905332417860311779458719419847865481753366932589379957744782427154429369589466409519691000226849755035714408023043623423551050771203891846966960627438958779236225443873351257516848275250038294649427274750662790498004425574728274950269330694920179858256538776211945907700307798585759440318470982409922592190037339079169093777151321025047605884359881362185843908441514190584324691242147417003278655724067362676737618486885730094185313821888103453220013733297331846279407000123304515598540192014246807923836705308250051940102266101321044126318688712058235401490308128259298289434669860178660061718557882009679030878458893760202492901562237355166566548014996204956361168965600926841326522244155467022558890758327684476288659209282541252708869715311617611052100038098854429690044373466317694151469413576679947844145354709354810364103949521250732044782323780270009977138835603461926682487470137841596683644941912269212996826443246007575727805374464780456155242609528827046782057987069175369387868360969066628628900146344377182092258947264480816522861346658199136920705979911836417227176611317695220331392351080423602138755006839084670160919498666107167034312150203239849867209975635699202265360298567930853337557912589679081494726401913196884227584878086705725500524831409665229948119463065306183916129484691615611840984600867566886185003804083059382259931558917593127466832473700827295378052489213920853342797843844855821674913576958431557790670625572588581876604003855935802335392503235784345174605767720130893719955377772751019981542973692338888763674975998035394999210851993235667725373547592555614160346169889710242774960809734942213293018937089066207770743741461837262894261415843973213380973442679495949581000639106669269876935097287838625665236471581128554752784964965454617314406772502577259330859102476458093813146470299702566065361648871767331267154959175354844642137535206151286770733543771625867998494324794017462727125423623470474971886978235756757507392435627352146107939147380127313832462063965543013396277887635731287856181326689872416696640660647602855953664875876983359237584452454391917667737317233578109946747378445864115781819933217338130832315882193952362572453549167911035606072587899064693861931334402698073788626025777415765928460745376440599643429979700940874264115454420755579213639074967907269065486913174953914203445209594895794521592383545983892868144958627413826340918941388225617280568531970434087911286614403729248166362242698627632217441199895351896663050383524887476353575206696683159890737522231552411805780831705962230416524174738597543712530246573062755334499108313366949153282077660033475055595065560427498599131391132198682596554108940917370272052867179035803328393308634466173301561311452004955843461635274325960932841058375066590745838875371394950181781255570933280982814065056671562266615659898149573772881924071896355519587070508497607228507463558806964364646548626856689822155791786906476116290458932555578890571252382995044571527317065461415031784237764526994244799245053360753976755618825389282745288864100207564680429494975820814284527470042885315445746770825630709575665443844112695517702798782656900243875616835688910252530129153117634469249865263167346491976627333979904686335331923145202352824160674620600819568661517862278940820301966599162321901001895480837713426232107210717187323010928226295426648057660810230940302074435330018972127464765148961145115917823703058315692142297170085561669915084471806258928500986809448027894174005943240965073487566700459017390441176830053979054279477222549397486101310957506496208160459078492060841545503889665842153840469673229991325754176474117707592943700920331349517844465685826004677347535369801676121268784034482814648042355950739718363227794079413258380406257365834131300732032791283412734411542572787754615178408712817970349943496234113754201343543277577665123514967996795024821893342136532086718331811777380456894883044505808754726078259391848080505135669948395869570260629799475028747373715497672252263645953993608912190015976334210233894516564632816360035323376365711822544079476692673651466757419436926745330815805574779715030486341241575398717516496563593565010427095079568119106165739804376610510585662850888913784569830438478113445031298609529007916797282117198594247357527111144580295974877379293980597333146837348146190235835160689014683930687916794110408151937445756328775223243119335949134200082064540646479591587340768380572526171711812545853866646398773982089456001608669235706173772117703538796583988451882839061525577050440899195977202266890227943809923543355371915379043845655740120404689338051381536268388825595200533948440928467464250060330752661158789622490947611565761473644746852286415894618153692747168223537117323942333580640457223921231472126696329074709997678097557350925779253283559158049917877014466157907188094977690437490279660418586588685418941778860837697733883461101649847415381848717329982389784923938903368339319692906678480234529539860508021808993086149910034759419989046688982036945608478862627982751318522727869149595651930864067788647557344615073049417180969430217274025715863464367456783112764880554740387852056055350272856694333465753357360229254209012259953586926985702596502801772885505129011228116455727950582294631443182270854397667234104656729210043021391734201223657074773951931637195517795460600415807787191438902748405532286574280813054351532240099828462283053957686112495384615791063988203297110978729775488216496904956413893833366857858698448600587705722931855749753980067317163520979926351851306940894474322508296849366148787946526710800000973094806628687747638510039217158878727337128288226410036779498443484829536426562447348914830472769317752330062885737401866029109317494308878077356930683006553632131302534876626625128913209305566764974706932219540475658485757586645418559712026367681164007656820017667056238749109703037680021080763506988383369295012129614913128122436359311318400050125967731212915970858553719792405031029365808235891540244472193412631043681843113703010484976299551085880927071701359351241920564381192861413040118257887673859284954366967798264344150367771815230513348063400749115591256883738889461533426459184071018622332779852837787288209174340642220188953402805607171776593802823815321065261925434857532913166349781194711261555116380918942361763295502638055736920356990204002516705759332486090870772161003764963653393955849879585485188154287397277419348425066669605693322388362856063805860545116887133578955734078511174391431635720553115237716735509418190154529452860489976068239879397216651956975431115461048686027546157408555901039827738692708579173399701902585242888851553598617995277273860669986705468654664766458583063675174280881203488680166227613056706573028311593314432792059044946591421241059531652525004665629871325681564858075122635136668446314136441223379526345850763719575611172704954359560826353977157824223203481346171711260919335015053613080952451864570028214571427413395173124088144676342762333758042100646525252076270245504337008383227289448446432797800830447401328179352213453840898052651228250685275685542787572123953330985200829326677707831425658632635766041843996494733197330783761936916183934865881419763795030449622875691695125064506438018746296046694304812809044594859291968453273051379742058226171742110500966945146232294362354441169807717759548551468778906306052565132435263341185346709127863088347576671869155752880935704867337461114926404879587777576052418004764374909814740550238950660928145580216095754551037404737168415155151347937200847529209048062438148953424912423305746320961084530228664943705439775136827168136681382408852970258541330904878043196247775611692421310548423529874749608127677809901411002877712091385755402443630878044996293066791549869511270153480684296326772411689764509465675314611316831384417821279354580138708374530292328486806718634108375985631008930758557965614502023040113865524459722098612194288561961576819735396551831985381564851870317109499291505191590806918348448923563026264277327701593842244469187542062917435748513376295393666965628961312254711595653101907376925923782727484823880790555186489403219658501001971689936495632283222122063912841632614897877247876693230809237949454844860913112018116523307139184728814530028182532222841738905076838459100871072972328780612169645737274677871430102354963516238233327340979572861561764129181783379401637141720781762953031591460580489575005404379109236473528708800929531770751489245100396894125546088293893496171166070646873012000020286151183042413612044479956332533083080796228569920368959952504948554517740492055882354768029911649506577912450038591333874283613819586649791298155399094737564938170444998367711346913081131614358191334683142550986745033881657166432157260995214567042433222202314572950267661449132858024810575526879292348831394505166215823003685405757535681531477983899255723490049502380526143198278389061217674806069150081557587799994462027813891616613509353715328112353689926636381520335899675719029675348241627617172794491000946240909969164213806891990934136962801222960074579304306520260610571240517064613723230607137653963759150616883672767777551933793469267050214280680321532454281856395836079455286039679776687379579670958422442734419862064713558632563145813859922150270137882440257475598922621097122338219111908088190719360266415140123558456276034013498932751767138108586285095758636097879187713103031493376140025677556503169116077576381217352816496594521161630238126560300496661257181109833888790526255362845200558951682856749207804755763896638906528857846981123454695845293322388071049066958153040951931774069290553569881151612641373649121675171822710378602465412526257079467971669341890596258574517554235823953748584467506059560773613609647892477752191260686699400755793985925105789500816444783425705562811473371244741317242782539359357396293337550261130955593919825852059753179277772484550468717039630871045390988619747945030810605622685447067869102959432698493973635825472687062058547489977526263494804269178646382587130304401650337120297790415879749441392447492917436005974891380378703460935339121451784345368356788592101320001040475739082644135675924526115174807003939866437560885719442744057784434557645248920587889435998012985257978831675297234580204418839471684766270391474001132884242603251900290936196321814431872649910049797462614294431239628256935336663740219161289542318121715311323589545975174063032341661386555125765751711354062425992567231565365940176179864673455936500867356770622900841507928763859235896144896296683620293335886572995800350459837973841944472841187430055493832762078582093926502351385475910283357169499280975534020914300806288606002305266191646524546951568175824263343417684614591233311611157422597521792624384518499675911504337757538417388174517080375042402618602402768870842500661316689459067270944079382378020619018195256167752945827797189436101648904378175643794420376437654305038952975556208083165858519209510046717675621893705034902749715965058593075467870117124264560899645830251283082967665717634869459397447279045678494868946396924929979060314142664632729926586929982082619359641600952585968544935240161423239092596898756188103520425357368798742050813575032707809125963198474978600865555307534964049721526939484638463127273304558015196025121811759933836669351327896110698279503712014781981116870371675149356871574110574711286351536442214931460488752302285070233920600899485490947826725173809174000575174730803090820848247678119035720653665488940882342195860856177600815555210867974622578392802386771450776923618165496627101763804906843756678146501846893996469933787071778847914192783915809593941664691515779344132081746081655232692240312296468367546827803479294970914022064160697522615539083206589815755617031070256489918827824840559857278362478561741009583143014998618437028520022692520539574556517461811417832417640000986696370364279039723398466596831500472313096432350724662739963743641162394892605031800137634049199594609941631946645959704163774493482108566947415027626998691544807525022038384643554094633054632429089474087572448808794410315282141688172170439770663572189693332892032411904886610321020905481511688469044953624069243687278966888231446691955055314461459846906035387561112137394120692290760598061082837157739612296390221513027529340001204011092738259467199120812868991794837667111051564845704892880624832691478035389624809748835564523402571392363018535524112574053750717702058109297126413480997537136055195270877165548249365434735040482698942428824899276262469454655540836030751884872978241164053120694672936520809012899471204807080221663864183492053717847471670969467716908477897831271205818455481940126474478857374341553049990452448618737658155253399314503550392598502778564484545984102828348897150734488415327310064718888102509485378157176050255952087054706972348650890767026090321518208433970279103717922530875493778777319548932431414284284132125281259082398819459089235592544535780575172214908189265694046801115050353280450386754091901022960473102223044015224672006239687438446060571730315431770184785202122033929544532952771780391822443476244279454385886377948610561708523896395783490812325455529869331735250861535445690489773368256812547408156175910708063836230084963907997220265566176495249834779055470361960684491495049304800665790629097217271259010623218207133145131153996581362463067303370202774132874399917906617991088048681464306064312661083317859488421610432173713891894778465658400550090643144636976231087469833128788128105987530348810287083827000887855582226777951102304970954195534173690894646069291171304082939932991167714606580619570818930265732121372581734307771717531872203737682916625098449279767347876506416341473602839870507861449750502826003296707510564817864612226235182507573715030674361127260779254899964459860471744974361181872292884660932433309090420467975083802280517113206389117327060139221037889000289203514584011663568430522233534316259246171141768868904663554808776068650047750790580462235746313697557842050463148173749715625311885201362783851912840397260259123613211192545461572911781630883432751410976493671563790505223988907329111139259435712944268774394875104515490646363090675759775204775674708971293809493720643011711384831191520294201124727912975997191646414983974692296467046021306302518491458227707593398923201987481447848148252090246023335681093166059213603970461257039082615152510606933052239488916033548562610822591289624372038467659391302309260150006042393920300052641357889988522454690168729701183792575843936814381643102515302265994889700275395830814928436245577503486746957077396158150855495898184992136694107956074117685641538142041564930264814949752460721044489619257084764582111435565408566935564549356783010505867031893931768025297982619117635022166062651915580446378952144939139854191221209594542103453633585833258220440155965678050095135953748860618134137817604235382468492740987287276484835654052158169765801828142190518733424248750291319484362480914127644480222144587561219530600872572101522284095371484599394642413505236230363081894526790891820916166442590286663934315748785124652784313788423605849608387983190202653272452611394177310195601682073948970479907067672860927570392515800627371751940464957688108879652231557984235166017082696588691543077725394836691914660932201102807286444052051032953494062987337830721738267610862480537622545843753762363118366289270834814717327146186571466213085635667450126981124090606608445592387848393068803767172012533393371004068335057756038763968104492190105107008870096741556969544324022269759878703128424719706277719522140641892656577088082600908040299709727275992992276262624416489921344742838730171308054992113427228688724647681996634260522069107758007334615924914564155822929149725683069410759591298244519878220406430711379494938069139251113281528238711065139823125024862581978134078530875857582094789348776753613657178973670292326198517525272678403684704151420525610897585039186799801692887684062684261385197021873277972650255603645737923381386645792675280216560013373102374382740845579136026131130472539799562007996516216381447981311052386859289242150287600485252723996419066437152942525296273055874470392434095480900372495745005405487383367925212686488140579545639667467763117687597102639059614530391871348385812140329015935003935712024676034092793887077924965191570058903911724329725656988482333844157508440269569527131321777264174221438572669311247898664822328462934462180134493725462155265568943733903231716679523654883764610743558842283950030979351025953518358753517531777361272966686577914925589247181402115199504367823196659636305908744362412457346631123116596187354376685236953604560683790057737464875330447280631699746214661628136771498376159484278535098667556871377926625996577936448513657362766618006167010659215961264282428734067253308225153995664272086200905193326876519065745704073604707468036697215294602342485816967405357957255328836528913270414623235550180320850023356895026479874164662251466673315222668734972695238496140636277972637043103865123412249762427084654799175625936627342144186379402218944994343512901071613851391763412009358774646480221667553480366834264199027417371179320281732821663849669273735866220360154287379122195070693464240870148245784404033876204401769125630156567130721532436937950888572566227978412504895270497994889105426518225484029673879401880733412121362386939213273285419051813325335667100428425556387822161603358764728374671289717648729451049916011678537520253081947994518406928371728305277109458216088533384178051754347306068284811353543495585172214317755822766850027057818528560656520099376355678838118894734579777654441879627327305924496786980147558429653352716319110931042089532340866177286576677847684309604692616708522949461295741184868406117261380722761988643324516374008279471782067495124241198323178806235472741025223093257235458651556119746859884979698464889423430128262400440483115600921368479624479328955118769224140122928567459172039329196526584274022888749641609679186493652807258907882767386088706503418520607245370047274018340839142820228945767017879516201072431278056064924568310309271228212446261828146903522873810183503961377622270469565542028944644740816846987523781788590634095515669756203669525300595219194407279048560620141918802252961548803718170648682927213867663549478138550541619169205458985503387102991722164046462750644064703584844997315908530531446902920514417551338611187825369857589324246723731299547182923222079669199372973183765808397511467164396859288547321322269864630382074503794176434843563926311298449050777858784977135551562183147373442809488452570195090522840126150732272335115840336917449260157510164076790887964338690896482780662838032116184447576488061311886312521143842992078111406555257121480755119568510856130235659796661997768995881089679526777695766602037603140486254645203776287839343237382659775332619266327089675154484223794129355135524491729166436372088523658345228718379229373139828151737235387661944644175521185516543458454471449368865400978949117242787166658701453827839440493726494176466832976563840856953891154908657794262940005786108629897007768639090354894482734738239070050635033117078483279743187103998913225738413480605555052376599214767317530140623602944544094798239515645565093171959032869889326519376608391906557704228628061666086973333259158202077602614733361622716579502274107297941318116951155071293358953655405470073649339748594307382913845851190691231395881688236540319828696704837315347503977276331236733981676266087530371231867070595609694125243226062599458253260887574331276776206900894972698984699857769195707663788670541169714315127275855467511669768308886931774669031447342032415195923650086788230387722166474579042469428537512473673679778010277292053005846253974966711894157621338637707827647746887894669067059621576288465096981654159159934589809765936061131282271370940052304448687887064109501997554208533841538198139774110215948302492250437548963939681676607539202823153308289062238535993034438149041518303906662700790394457728979885451305935242325735486110024063906244085828705494367348224338262729881133407901644622700973706138390287768404723604529018007891023284781351006969103502484438293843980401512930770500812608234670037190525157881093053705007621299747366134858018462915532586904671905757861964102022420065943103378618807803619468622806450602474047596861175332379287776665020884449791372315845530757060906313011220739521753311274359664289273561444521056719537751347605186518116293485443780334340195464089296817643165337586987545012459410638594829845572544358729300338040626035378774979964926849244176514431015850729059341115148990501504025245842421734064490328795542840747620752402319094171498609424820470885244361792787430634433131230161558005499144741833524058723688721906841095709281890149558753128676681771507103481335122968250001928018930532729326923945191085069120555444948449935310881949604862209100377842528191952478420076949435097010429157864718533017013014585045629954088088935033630924837289701565583687476140401440054735774690314995374178778199734659674207963465387786900137565167821318542690773938176356157381492867571606618197727681464068038860494880105575925693946061473939064436384367821037502503965279065473126291364260047254491000803746661862259587732855142423782906078915327766947699813105566137047139792812120135328111841801470293313437579504034546072087082171473358551809685533608186381494911100043270393506485408769274544422601923584608035763118150775857032423786618752433073325799104561438376176335762573768072372003337341988314742430296266783911979623898360399078635200722170271494683380782158524294295771613270475851966519777483670115168100874696289150335373716669187425767347389156507341704893981641658250095203144762240976274050578248937186987885331883512870382131672269987048562402471861385018337854158133475728304850760016004995628409558573841451289365371602195666361916781505012932515033200026050898962978892379576475288508978915425958123903532099139197143385077631123461123923178228583041238397824426111358956843034864588770354534230072465791964209659072972975003205311369613606852630033289095083174752566392148031406973881606947120078930227838479207630906745739651585371373700328978550020699994677757900599140997989579154842929678731325426536597631029507241345750345991013320384779967565186492733725773202907948077765469245287308152632676534479994426106034154761000674125855676343420634135536527217271668642761938671660081761542282454098264605890763461496605850389364623018626879781365341527705030220731253803855134499647019617375115306174440179733016184937078897512180591939143126691039552304486102756317172671347434855547841184785085591546738704507491272636400858361752094504657359771409946062503892475798069280521065550400002167713123532125174508573340618401940463215144126806055186400477926158258128691288565459454904769763490851495475288016717279196726519037979068715486020922724593330890160591632667221178441138261625721209600756372285478351927257542531225097898418949605428222323644993477263234518074558071604826328195173236661744354128093598005382732059854128489110051939835890228570971931262860063946979353479211629091328758371785089383009583520663179219632721559904936474687386375544926376495875335499812654149485921818067211003328101148629766569678148720450142652214814662750177385223888537933714043035754675792547392307798724886681571390925000106061200033775412182402336939231736573026954662945096508598817041268861981024769662220124133317010711830197040943565085829769986040247534444460062794004672130730748732228608521812454502393999738486915092733198594024268324225231807388581159874083423468639037750167916765448209784616798816938487804482667723667009912280188496112416494204723747715164469214940557616520424964386315924894949477390544556530341051058668265560784516000188350233211215097260053747834258829962612970563413154895038440493494937888080520738694456057234933718391722606768077304115312741157065686320359990555624994568866318887328944598849665449941666160457221521434087449701580383808833803782891891296732137886485936215113376767617719591914354863564008207033963515522836575758683722044399567599879159549725111897872109537916323480771344081149373798775648580742717467937249241234943275123994127073242827550462862965173761720595906174904794929574973291871421428417912061333930883516764303436983912118136296786468721500966916484111952689993359170884095861021793061098041749097213276984589321932312320229152008192275552902065080972581485667184445201818427421501093679292515245811845003150006227457609804139636575917000801551313971051269709936520526433970171480281185463771771316404235237720813027244495918887259476021806122486625787748711641797400571186956656949078305499036171854176881543769780861424806245200442202330392622085460420994984597270444704055865170507324472003127614841949079944090409248213250408473179011447251609222516409870385045270053089145651548446604263260250805515395235205401437662935239282577488506841433959985630744392298242846542105689623628970615183034990797793987854223980654764569742798783671734342465833679897720276356534485660623489634336888923082913960142307868252544937804473587779113911706376103518055729377801604907522126822686719422803264283844253926493716456137294736335988634784037531313753244963712038493802259601230991597734960777973521571667813210930834742821933762927355678055885335264343851658416988704175376407755337015606132698425899071064627875357773386118826910491484046522728287912184075455749103130888516333079214351368796188934388840426077067116402593308648145953113720000529343431004473563180322101629740958311548956395442348957630847049596362112530323922469154849659653594233650820764961053668632145417364827475515569010146424085952303706617616745255469455309013216237274972376511089354998311930170344379082127882522261103742859579982594160544231271395593845202125626530389433190658976727396110893188217701579724075235616310065012563115852017226857237992417301444067801301864770773771658887518737345443081623545117600125344910920469960392923532572747407229212338304450371509271078657590154221122303195436653965972141444996514391201175278529822947877888255855258282084464664919015518347305370540156977579244840315220214296558438111207634236475161895071726303856820620567908485649805074836978390433602046773651638913737512386702856384527178757273233940528724426873202796311555791630731885295879293508314210789779463972435649955807570180314576045535443012232189386275334963650422634216716482478517267524510690950214049903257060690684528745907322978256421854961018068708879602024503023391139161912106158157633691774644238351715999678777867664310406665574256219967646933571288939016018695091907347623494614248002333219573877226765030704569098899356074975955612101572065667223482311911537762310732504147088092513387332262710862198451775916559356328003968935432887515752972789434632908110120222996111154238316451209951468677026295188134631763383578469534766049212317389908691271041014410232476929590518169599061011789193679063408789156055869161979676075234866226834246961479284151063605566786685489609244566565761877742548628209155076801431874203655570908713799636775879267179248894845608634233933027572090910644231502174030355964747027893365180473479690372431363453383643156511265722329271440065025743644347792178783537106160249827768682004492811988278003135251465905777665201928966172667656220373080264505617124650864666398256492754551283607152087130769556446110989693983168312913273940873056863641503895672312297057895664242012704193282899411795141210308066610642648604891463786486042603520259077920581690227322450672578260011729917241966359847247823934151284180260586085123497772211202018837421467376253955197550890025185090353357897813445049717906428235643695805400160319801441071293300537140685632297151218922145203777117388745299824127615676008995564923894491856751060950992283428562173153507073706024648706161399247245682464976286125136391081869060205855057524212851792113198201262403443809750278539909009456396997871257534079226236368929223033671727013046802857574910957350094177631119033221186662469508279833549104030274253449716860443309000230470770648060934480972718779770422626413411545481488482647838723449612282482494227452795379694990072676511585240367637111186970866388201106181474208847416686901392027756789469905224812111148928887348994789814847642025229171017913906287268519915849031427747769004558084361283360595623108758077704650565070137276229699305407024117540782414351206792238314067942155603336287450639506499375130926742700158021930781326151977262960993535495364317040437704252664856489233929724014160770627101578338185554495538721071082235432325856186840759296138976284010646349612360147068581370839004433939097565337682801802478327517149056749836792395342699420593868286663215083816055830783395313973672337640566087977441524872306563898417601857206298492593602270931906161032235665941307954917960579484210624716526033124775286091139395917733793600840968875352317178885445803798706127437303077941432175483370805411858740258696788877231396622327445799302267999586188033177709699325881531173289432802966617626490966464756971567714762094941736021452203665232637572129792910470414334467039235374777248056695748032078496587016081969959252662288202487225723504623051392284272376256960923661431895931943821900915727773509606534211112458207339199702338345080126355242577322919185304655846979735977712797186206960182547314481006070638795707816555879306845220620167868075236421468291233705216165260171215057263524586382822474694258915113082282596420704846198630715853255476206362240546182496395321798257599596042132086401647913452772467754523622031686401695108555220379411058298330345618488734888878878876655418368250659055794273568400832572060225706839628124777791369042012799294640674688974238878112830590292911053268323560441033843671298404322505035395039163394320536515418345135501722115326120954600828452441308555383014777330591074196116896187732445651090711237891274782139395103657974621777924701884322502573171789606653829767894591783948449991867410958388486014543602090936624694542367044934266210502148189214343725187887525001759461805495156168054523882186822930593167198938281985687880057221442151943759834162313140120765433773901616870512119292687593676313316808260648480211452173048750969701912843789204173595314293181005276511561346603207666642450590331846374359848494720224262414588546543949563076407602988155986460663155699050526815383286611137657746646704188149317191620484635840068556835390110962608798881118383684889395649643984565923248382804944737084885252015151202357699865745240206410472102098142891635447057187090912722350195931016791558603537549395773929918042304622600986500708100093332747101123215585121478148824661477109888272313677242921260704015073722159091970768230669940294189941407958400373429690988226334916827173210460923958544272259971026285195424833654283864053602911873417468802258027705876490029251280587430333441086500892486832081815312318054388677690581318856210681664723261974343326581978607383488437757101187177007993202975244384908013024697636638449663376447049641250980721974262577074753159839837150160583116083399541747191819767528881541746224283123650729418773835160441636141985161393096976918453327501870699036540540664896075227727834088074533507407995140496875024587066802764728015749498233268425561496586768443563144150490122098724642234532144513567438942442000220280086886122923313133301356190197842572900970599679880678869783466471943578530504507383267934614839700670443887906068825745309320893514047081190280927571167464106047792831541825898434304383205275078156822987495298141199720117722823718321059592284610258896209410548316044034697918755993347184585261377261419509944684327240552145566551118522980141361173496282109774556820683690280450821550311068927069914395100212089312143946358861801928324122675194373270501110760497919011463565388451217983531356494900281809226607055407739741282334767086526875779959821265187634132585191086856322804401549623580738444581624548809507653110994742448426153068122037844646189461004518152121004339616497222387861418548984519102972720507013044070326247428453112189428832622114356404653036402007060294817378852923744713279566040459059011813848839790365829540730188086351328783993214367860148233063417943937300010426729775110528073206697988130294485611785891175119086465521594926559825214145278442255052543902153524383519665164371780136121508818306233661852397561456773460452906695613915741482040613965448335596344210347444646610826506717361153967711634638404498665141543204354964989721459047503465736456013785215881777635992810629833566245224297505669535172230568902250214654331707211154476020865419941341369749262717418755062094413076084945235574037591126344380118484346323876306075012075809727529826076901036586097034423442517743570061550660266409506520478233979055834227641808323202380221286347500974903907909395608260333211248942482687793397723568940904064612275751479064638611281203101092291091019900972181258451194451036333028302623316636120745789786600567580239335116149661587741749914766213354984151409266564383238941585014700168734476116714272672755340139476783943931402357770560700129191311140315386088556164373094828522144084686573163874803365810713211607587310346878486845705542006593476556370765637492360833775563790002513311528994529477631418638554624404953487388125514156368521445548009354583244148826336508291236067961525280832320732219488196814821983188377608065197018640008527745767590103880969120030773877813799800745175434699247251817911157090662263676361965872688162583766870806897915914590650580815776542918426457640470388806549926874872427040829888206123728079631048453996271339581372613730265775268943090274419346240011065568863253497163962865725920032601163276045691366113508988366913506735450050219734190006870552658001435235169920131640838491184109612143221542837769613641324009065311935844654518400006508065349287497154099483720208052254898149110459014617142292353409248781092134230454769127238488560190125939761125653835242545713443998479880413081489167421918609500836775634055727168003181375454593426663145415050260853728160670873128204608149424041622856699925504354368843051520110687505105883458597803873482416257537993768700128600348993967295749360779321996156426790237881509134798255815575926493903636262651796504698179181590141784685971488630828662960984479820744613666218346115990777793804849143600270017436666229290262803785888996507013482369579341617315152593545416716213397218243044645285623789562391979224078451936194999732803508228666675464885059819379640882163928594886345417936145838309103929038422607156054671320470732858683339774336020980290163467431484942900196963107434873654678304913310790771595691034909766261628997441984160528668775483840032097512425065477075572189930188620475507222302509751752319935523522960050943107230195603982665533635270196421353551533622171581360229962211117203933735962557180035576881806553727827101009226978489134580592422825288645555272093054970289966091706432851625483379495798505202933706437010681188045165258599720235504648744852845291676090470989355334779755711169423624238045750836744050011697661512014176996715320059951796174763884976786087236555158838157016846094910010486780454701628862000802373687327196843055373215025830205189427782321751589878851917283115567221652287017112823521378044902112024643254104126973804063523101115885402059812431521492447307074217676711778857075842118005560168830752690622692048142930583543984845857481253687189700476986026686700098212917365957662570040743737301716543726070212240657628993089409773722608190567502901791538563594663614373007740668831936079212387969199818440549838411808679206321377242153504236276364386618981481718367346898546844549008046941155163117982258088744315464402046570731974828506060400903536190166359223428588495011176560363850268686724593169840225670569342358456356003356238519905453380492759305227698570498646927713781245151595360094351938032300537103701956429506706127254432687150081085333051597040451999495943821899122399340317261268591114227792974582046221248646520689869658540807179062416436612538460997371947440714012696060555144127985339434488532296671970153984412188849375756958195328715296548888900066616449855185415605604651137565409646170832733441244384286956694156111140928321949130247745238042027658052371139085886460279512825891755164666743417817004134382519950599224392224342250046615332086267728249214616935757083910291881162475501677255983033117043393376920312817711408640360814413302280341025614285643179567349532024260921864060504496197901252483011802572469580863887653821796715872135900557365211508874016555063513415671695374552272269705749942010972097337527081679208629102206223261692404490550522701578261589951700720794167240808902607891780147116330382859811225540204428681771515049023407811965699704811268761125719790533941127844788959817298833755750920349203963071139439844552743309571697689723810526142031935739140380532449926888775008912320350794833060935345490094019371554094314203668141399936428571805788856873837693842606574335960830479058510520204640999297150465001685005811393089986674517345028144098399441899969136852092146968163843193375540498036110340399619703305157510535569124738716951035045899421104929287315856559573976785914192123703701261259663249647773909357177494219675305573041816116074503589572452194879305365815595523050013112413501287938980748357777886710046218002528317924830464117541471693615505759076314514527932376136631381934763667328142499760360232832903356756373549809743601550339982621429919408435605762339037366483631333753665748497241888892657194669833431415423521372144875486832671422165936284713661444657247513296435262175005875922899037720134607657649611845464381943064371698916542451227572171953377979930954641153843558441480441305530244813817851834685998375967191288735315166233404391003610152032072902969254969070765020360566759909931777621815934628030500362908474819475864265492688697035528607191890022351564308178468105689100854201984690665140943812828780528658506318570608925275714995419870529703990091141301041836557883370480970823500555130663948100259111779768995432620995534946208356432401048686773460731712954585362186128062548755404452611872792491997834236914753746692344354121990955792018574288946115851034050622317054081716834509030303236559583600401522275510283052110596357278477775351008136817990939152738350273378905601452684661791171370445377978357802285391272287135181689157517995181267852533154327170409736529023478738910326634901269439261047765433718260329401905115910355293876728657020289888689368328234744983323740526043512966583907203741437532369631916065038208427098777166793203694668608704048061548192264636620077082183820669426791673798781512929804998261212663543038523412063449107523814413587986872874827216253133930594793502593574897614556671256605513295484212519329926895838120489348533013454159580063768937320972606557017222198996523134093104997145530647696002184049527365159963647132566542702644576173223788387706739561575299153661211428023160834715417471487705861017564906659274852135531031998108628159284138546105703438579343926477839764098563909452817532328422587250895564813328806392312794023544645766550815703918633887181422023313605088866314343316560160641132770305301139234466712289053924149826066314782749782472764013983085425892457657818884013696300225896183417632876977938401341222468544681119177967538969329562264417290097836342276195461718753345105687693590720855169557784682323032351769939709934727699947974654571903842406509703231783235474878725607884450773750340692181999006613180850413131545957370974812102179706172839928254800085635080346636020370381842810579181907768732008655422117687638440688486646024757834769532810052832905157035067510930379692506613722866454299647371632342521561927343974440259131923286912799977023582678834830723209267531675569076325771986332203406422285738897679900878336846533963722046492584785315768763217392192332415482878276296511013125337370844872235781942851839034479590294590680268252498303168166403917455322136366722273793091892878676633520234952199288605953103183641497749919392910371296720848944094426573724047360077857906614977032618206322197669201751750602845712124420290073385120815532449315016544289233370105857055543468944650109059260322295371993094110813064973383466124538722075736886678545676354727482967427044583536533507270816047144483858136756504649884031333289284842045878550783446939312774667255198555611626174122810120483941182863931352434331251781019137065391891542822092234965323094583143522614157356892178112077652751889069335263856192052085501250872075092467479090642934240029293217415146847181869031831724911866887282713578886612442606127154987883961261634542036729320593802294491127661514236975710073070862680705355848306403665855296285447508441338425635156145586493750112247174272195140635633691706913761767730075922440876351359519368920357080345952750766167829499731347166761246500317746205371128929760118010950947552377158669732866486625535935594321399719984835828298441446196396461536012850638831513836632966741613445702197213918329621317787724342335340198700085252660701449752982393799926783988678802339547103215086355177984068896224671682690198256414412208327201543020620685548346489298824874527193659808154849645551060809871592025414862777332822709024283034031740497089011942188858852512204623597047040324590656343636596886414260858454171052145767074217020520152725349760171277156551439682331350007254275807535958955132647441663957238335481658037057606261516692186352800054035980122713150233969364866726078726714274616324740287884525543820670661525163159727317298933046648211326418312934019634358390750170434574471880514773982893482398720691600546994796743076824864415927804090279458787731465485219195390134859109831299133957184536635481976235183947585719198381404064281353167835360207093862034210968617216240288039043180774460445575851637547997193829288136758073398908409983268645258640967223214959792054685353013172431043218269115981769659967220074410285428446309002674633346755641587903843602307133379552173095653962256040086955313626432999206696879487590226381125504004386485427545645096261940538066479690874171564649249987312984829650512204323059334531687722661280852589192803344997927284209752614524221072578528652610835157781067294320262272514034037049014846728364399604555729926910939389456710148816614112254661580444427001866241274626414131107319852512370204913257401033705375790660911594696158853587732835455152720105157260071934366938668681967887575350631410929669349129566467435489328693774426979006039909963230775089433247685931081401228079451737696836667218187395807128182906641711987400890758641540202232907072353704682196603287025640349758030519672694232177435040444444245118284512034628308855478524596560719398621785359020222755147034792264229329871152711890875559945703056043692069275952681568319491132842422124756512779132926571365976495168114352971296136130435042910060569139983806182781970903869051679316052986312713869974804675484125831975192281947529884358932531497947963013760193128901370552220064059887897664536657947452193431769979248496916540309119837218433983382584655376123044334361600850086553895366756480284674218013381024609774123525288524363832457493289174556125482876026132169901342405774101584698517172959209720512705653203189397362053873524596100206260518424007590201221573199168562745170860941796708389560635149005261369270204765494520805739033768065990807475706491318904220534506397019492829977315380333742121679422892168507964610632723704518570366055037250782696180603852692398304078730803875774677446277433350346130646451127259771870686804157365592770799631233320290284407649540381746646160268019532965270023983008413633420182689144860308572742988506603609924204025102156555800534851871084068278799499370366475660358401485760260746630332013343183773865730746246386574586254739394558700907812014538793404834356334141470518281570075469000671443437829371095949119194478857424268542439159639867348879499974917954620590849494522662290183873460017129460224397672455810667955216792311630757960994203214556963482412942768062872014537636875478873350119483499720393257015722910922939675108103713972881460734231716661687845768913031203610170411547597092239960290354657603471593657562757580966712062926966449473055290093384028783682008272766244647589605158370049409714558324527786465524957185847763607506342298784665405855219025878615726232497857940478731803544638848813115737218464095639105046864366516383788959704484713319379112615001184056150735454900440333934900200747376934821510869113866731544101008270633726326346209155279962877236822719147156988697527911555016255616212550853459120938059537468345358920574311850730211785494260762890255757739101702588078532433787358441224499033512874886561974183003257354499307076583288057828566745796621750641021903845507130457429152278482765882730543599014538333415956635802188422759251308275541591126919068573239669400122840421425876668110249320762540115188061115168399439805859603645016796587269037523576631477296405683941473410587396209145575944854904804254259053061765112917719403407962143597861955850957637877589377663386704552312174991889769945057723952714424062262436016587444374582232252800916838194468422795696626800217322784076406217843304159327735901492150777325983746502876781464692442549629190003037506899144676621086423100004138736425867321155439237852580805781510555401350081263715656428262624213619360626466328533006075150880513151936017813694569171950317900332100602402130749772869410338053551693015929151342989567429766968633877078563629891547684965489151457675143547698823132584437393596922950841421920684676905764503806287986179342299964212734570744596817315284297844566300223004544530160874460415645834903860347315762350252183479088445377308618348803134916207837329422266532400563882868062000254320480464945619477703791963419323324193287365639286723019379384426316254939336282989905787932328267050896391009963028579524971190364219720559151571381977682665710645109402000503887284626174690757574180015873494731230632372044756958172154139468025339459971110946443733995968919446949754145629641710040273121628177804039107139993933960615277855042374873823217472731028935607582159602263959072830016307561757677090066502675641683621449285770108956505040235731353812517324486324557601341674109674738014505973974698010162143356572999140682347710364122443054977858451793083002428213071532138579429874987895634842910840352136681285694001889543636760747280945826034980393561729790064373435377232036259803425489757594498771189336144780208942833764660354859821637719109658581247275718814358326492401189510745497859979939965284191015763329720736471567185258016618570083388824905343244740613756063198065443688752636817617466089428488326832838535612785022223417611990756561917788230010736700219588722080777858257213338240324685500528596225802040124225032408455421884650060253534930732588911988848472991919222337415673233817390925137171378895113513963122986187057635796881817887675825248012207626665692309875056301196580704405105472790531636727350393862692092424436968490410674896408302530234301688665744260603639362203500313383404978383953153055703129298641579669009517841871044517419737738031909807963031780782048705429595053355700904920776602039044380842126183231648465008626567904424404431734888194868628602717181234178621834313707951921207553863985042126317489584750457304063562344451860307939148567367368483883713703842516374303052779008370135205008128478601002133168264781000679136604136963125892606908781682903705070731849895546485907829186254827559325767479519794958666089896181413689434955890375299547832757436270959963216430515443142589098321700901483848415476438689627217388119672897911167130111282891962430623637208043086211421943180000040556260507153519079820266274414303399551668370189597571373267197294892433920599500617925141398868830918051819580726154627326163254982675286065874545407351383609436075669730656006630735861766102869733569629307731404928984982935932840948428467996842177582409308541184231553152907297442527775701076261627749764012084913039540113288603482373825031684367828323650525441051112312354640572427680293192057009589933172760427555613335371665272584714435985057605621279050203223307031445760250918398149590188261015913890628336506880084331973175125166817284345731088713377395628007805976250147983921323358766414933630117848666338720625622713106665167050336008530779679765218220216028175937973838856030890667222914600744603142089934058454130991158917206168557867983167071860151092496236261014809845184569551895996263058708047698447359142053978847065676879800293123509940368682012720064390085387349398328609987915240219488271825157474447034288295252145716387957139101822081353454309897696982128800210772544572684864448419802454595334588681269576339560895995375235568188378191249984798132794529489051614625637739872707473244716268275611939592753429563079414296013192538760346903164180766660473637037720357860460068500702066154826374422541196903702670276103857185775134264785294855884842135328769441577259583249469364931006914530589349274813826210755436865052539693428217277037025759932775090363295666645084022500501565183714297108450009757700378629230481153184789607885773463262607421367859044045051986379762460403430876717683115904937534523337994930637593404478185356344446476009891240906986205717400783295504894623023868563556857712843099711416963629154989667943988799143671703260879320618735151549443975087010278823175867364006479043721764376023194934480878053571956806291239853006357960580026961490142860697722300139086819235387141116313949275429860293257830919508720923166872328420501552185883353769813794516787479798885639299507282355587446440540831027281490799606949837131419180059165108494643323439006973304184082178999815279868276650499784442574248740547700955839106172035943906943118491039106438776559004868338426333706935806241212151311000589945211017957758835578734043496662341373268219430062845892739131300771790434010234326915471161116720724783457668075312700297681045187904578438779826289965331385484906114655440016530743271577567876278256895247214979736159394741554875219692223940875914811185223801051241725982356820472887355350894766452775847579204276944926705765305636077770842206172160867216813279636364892278834380201962165934858702554081679297476924253852009260847929366014721184397806798037531022749898464463599988967308547478576608827168088130382355533006189035280897198566686014768370860373169111729212348706331592480810405540429123478980406801788357735869993973289088869934436333262382551620464465306915009846698171125012344476104083846626027482040943641658544991384027620904190131467864171785655938971800947327379493769743312697413550830728521505782405785442370628508891200376614918735363487590169862561172942649377997875370550667627067220993446539634988079816908583866206235053307351024312707167751130085405985171709698334920718077784900542336269131084063442694782567825081736706694407034369891095878105250824445842002328628510532219219053769465674955218632082490081042458190774839340560776161808691706289946423936894234038957872960992340073555349271241165462368169949904981039364613102553775014894761464080981806800196146118815225729713340124886946672362587826083586081805965236680860584230565063634407595649648623316295543501662675539684411067737937090790221058369487097631167140822091805892215127023294674466034055539786767191307698008801678871114391018977003555400827749016516583750104934961294499787330191757396530520425452380934126644029376310500221841783627590155303696399159488265413366109531541573923495839608835486597724206547086585509050272839902507475373823075628589844919701074769626326959690547088415676304262583351869346287245808191169077159460663408647750990836151898865156283393443685313806836577039763830603223131509077426481016552154749076928837596335816307921655747908870019552034660887888356559304516731661831571699961004561652357826141681833060622981726466455230486322947807947203447274719077111452333356598092998646636272240090824704518495523103617420585369154155944642794165732301706860520964252017874954919820619378880584254006840802708640422308960000651569791453896500151971833464530165472934954854589311196802302067761296514321041850507039745970277011311465943167983590142235214337632539876576906232048325204268172579501931324228525415634846853949656335061851724502798492807110390415167761186995199243580086648034304865647081758795536948942239739506462725481349072097577942144305543043874304935924302629055305652759790646074957075538340324763328116515166225526250757265835818072236289053149569821470854720467463685135897369553188333113370324951284483119425940721471992841457761858960812139281086228990637571715121943149273824408564192934861829381661091673644913289429553474931887123034200181524799412954793646753626132354607472420518954838794930089139380941477773259494048164488241004298672149780120536766264087008556240168787518626084212101914513472843478146426227220243878560081193407527442695065384155496442086982692595915028133071730207979038222576396170440239511337952896539753324820908992638969350059058430755362348772118280503609573309303058029834534320180599857635610641868703025495472206388461113737846602791129903005780920129250328672193843960960566634669130875389629012998214571589637393220025651864912394575797800500820813644559603471241824142129806016648259192942601419822196685703763542596215796505628789155533195747704024499751295532485696254104247015726303811745539912895588179394497938686125761754352991884653653405250271522619075842133735983689258494193656951710225151745599045583708594135084139606981594804238733801745049934197445820356151102554037066908849521166713631879835960105205058641794449990000776894660012461138416935997585707462555275948669718953516686046939193225053630845947899627019557763077838191764291239584682213588649511947402385050511725237250081183796427571564340694321055387400349619407071496956336858898115914051956900744694043731825621936984945523851132709031402061762829422560844567289018042702204451371135493686912345726593033530122245470855480134836153075857475530656305031185673649316012456625896473117031763345569209604591633656948097883755326417805488313338560617458840842585184676524035172631322384839220797867459009718914326734216429153194371377097097143111064412916005126020983638148211037013721517156905364981805332070205974097108537081782574421538617651803552411854270782352676683140750152423971083520132290680816976001487799348851284158307643292404717329019297469924493287015217561622580108358476468659857794155718425693327978587471020730501383477982285652792355794584466058946540905874852704657010855414387139722911206587255350247110884976150592438294771282160394365695052192714431027174917791280387559827201238401498861543484315433963594071091098901242140991036975582885555952164090466754185987120504899490794070229217024493477881499206690165012357539409712987763032666404781589374234124237129284302695495865461570456003907481911024583683994037812744189761784468492690965896273469689487055805784581495325607208217718527954821075850928618327610076115221702840597719693196735017404845318975987864241504355027650093662660925062402918878858607282491897822290832551224881502353265209954820761352311472079845645767362205560589309734907731756117124099558307784271259923042394341297722342689514040834473061022767239624813927713782735534920462747722139477812182052410397287932525112319650470527564232395134055225821821446652572082796130294321300141269281043729518849907829005376227167070019687216424636322503844707745198038722823414314593050635615146002831329167371770916271489557842311031940379070831495791877581152045937633156617123786580690504541051806305076856986429468746570394095881308279336761233896511201885331930469177430190438214676609500973610396644514161269797505568968648085432378069387230724663238937589767234834900371052355682837790671379981298296599171777138294115283461799343066958909106386052534320310371061285828387432609430826506686797876310511183556871293501326435553334971483580823628147454591576308935626124939250720811603313378650231588900460377074084513517202299772782619831094189664277713422798995083973152839567833151165073738817174466667888465378119186667373559169760321553194811741825734027459354733874502817981424540465351610047107670380881282675174957867007336413007937409851319821544844417512012433368953745096629949258023915573965443831257393524925527448290490570098643366816561867436282248115152135023791276716221200641188306680662826085934962031785759979499551590829999687400862017368318107961236869441308104578223654894689199854268485760662264457439192110662194579616650564082733533117382469853680370713576752549563186131254015129513124786708658532572948903340637077666972618601937864064185203568876618607214759394443276356036562269321014026724120109346948673753394245579187525968444558423039276284492210035553464966750951008337438009344356161658478393312938151233807551205177446323170666266955468749981179273587654306618013749486526564068839545340524280824409363644476237759472117607444215008319066902631754696946557388071959494563824373366859008682847223270631300894835744401691513614711082330833753232716230358627786374945907690811756311771442182884800658033255700563075012915117365448724526842141989758456627116690762419403685425307577182401364850163479891515928053391662180215422110355785639211636700818536315063468556518462771553833391679740488436898145295223122994149236964131318673721782038654660201717672129242846241145306984458140366320057059330146169003796602276374420431848105644655338444494102801495295914004390612991551109636397011859033502486501573616698085507650559324930462427411724551281452993976706563654668227163742643262486284058780166995775830292933554438439066184376861563445582392146421966136827218648794451317410299672186819941825626406405651985543977438419857107684507262035900610117404921067469729095446750921954970541169392625020017982796594678018699681752061899418211517392690673341789372823528542864336956202894778138155516338957015601805686634270186500011240865007066469500002219490954433576533098749747241599702419934487379483225662699439347100530608501617936286292663057208149876722725971410191110839576982147657985602462935462338494597137543492529323442724990383440916749894913577522491158900001606716289428712621651410932064806348959545637081662598224396386038210546691793227245245619633795006301745617816801186284856744172220758729738516041270114850561588094791831125739438093907027965628119906558260485648857741763436981399756081156990231328626818169042083044375488883093780559413217458614936729622307224018304131644369116516519628094132276433614857806354490894362958171961397230744616148282387100383051086926410468322114641843996369726108723121605325718076642173334251567243096876958869325104683245966513482970021435085242851032385395223277539418532348860148599239889397119426679624794227645718394129888989436775154942825163656781633836122943454099478303384417834582181131389488646824619376921430166405528352844174425964767635203874266878112296431079519774194012261541969506512987704708314225010854839405042321334990370552835928743199028136246648592173150357400635205702639199055574686537642436879904505411178345109397817198232874896932047676508168631999752368323757992252142187967415907610101043223030862877018949656601422589364118095096050374035578857420506654711652962906857414646108808684407021171772546903739797211623512552246502963322085830618745625533199694960144622770830128998782348954633227779145342319114190383784926339682977288157554546640952317254247635643538714869335143883444150910152095230636148083800296445274908519111157280978385133685851364243429807421043779116240589588571876370625554444836586962831768729810740321500621521832272916740565843258848398241156130110825433274977768226852454832385890474643851134390932396169581296436252969590021586525673480470967507189291398678106656551022688718111520923307861150900122732818375090770228035665780087343309520369152529122910065183267632727770601827520918032445722864913914791500467056625615474839233407625141668428785275181166853519100534846519640982952717264071778199448223050128470905233708338239516199872242931058793062960713101054202141073924441588074849039376311956026111328871140583483426437324612552582310785527765851737325885550580531387634550733964351712709528976244810299997029820993310446718361475100862386272767717589688404321382075620020255372115887061800617428575915716705530394745366017634184545276800187685580448251851650916409191872020412857702746958624863542206969024159076803860687317513946443749980350901729428118487786076890202972734801551134919858985284214436850330761832006185715193729574562254885915979060233612524153494798845904239833234003112928890654682854393894081203586583129212005983878392649547881957191778546486162186026021511733402015416383710718689949596826027568761259366901229378794992352798773058894404852431466421726747516581015587939952808044885433740733840323185335735904708940032998381049902675049962520027509183912913804927861355485429522231359627498103668780669507557421894125650574869577765903750114410220334667005119706927889584830445035919977407824076533537635295014789266489461165817848570596087779096562784594545149565106430505714223440236141783785967713544930656297060220544272433751089060645585160127883214936698240828813828656639421172452054733125165756856573691180074938049208626805903113727644893878657831795813804540634998323442540924384921723065576101828797382529821235613027746982546663115606176116025998846330486307946871588646984794019702587827845028252952844605141624633920444293590243425039719459575220642880508473966440659661343074053236224670964164851679528184911136883853464222549956595746523130291392438937820030392392028422752901191930094914087006655349890830519593070722108120184799395249553836496859648674676318602714319316716288851123276576102305873713275967223156606752492220850475412720190664448853815238692464587349804917402049747742324326223831059172682933902684074392764602299152836865223936593603949579655667444872752649773859312061847126038839984070351636208568334110934914855375963170608625882750418609038173833198610282952817207740882718241877424009032560866328372467398067258790894660308754996951762583189450227047388374624600681912361758149712296125364050555849778844445396228329119570956325520693821418009489870880016247341499505703941476151238081988211938913537596810128761919872155448001143392731836609446778530356559456351762118712689925967602130493291893621154822655394018652589069792201018656388717872506227048992130030456393721282798686687907522378965608849929940900283449351974374910073098487501823889478500176035615472487972909463461465143498992662971862347879008406365026132591234533433210861094534524108924200199960880543835514109655325120987637285810474721619036561393509998950215421187862321290751583810105885652595992287330010628606017462667239009895792126406436840671470027390088922099853033224595330420529876357532170883253384237713639355008962313734480936698684785386972756039175969420424796382392607524923221143755436596370337821828175783798815959340062892834031545436219076907130016979788870774744018484679868015823065980223546966450581828449814992390188122833172936581304306658956603006091075004134012461827730218123829134662530104200920164621493750977350897453334673583769156807700780048176350129905220125796182989704549230004013210086764094134305603328379848531270364986076978812644299857868245707019644810362330657488851309742632777297933059569344704700593692338520320370939581093421400491810394535768422541926032242706344152601757480878925832256621091094714178877350536123407492916556822908862200679767391162477271994815601348482687013093655746938198634542739886423529158768133636362934545380723738092662147204284128966426495992125580087183630137486631076616012409131264765866398005491405296067126544825534602219003854625309336954707117807876034347307792574784446884849016450406617556312718970079435748002881810731176614722184657528055898698138559324680246015631235483258892121711736927070590612610805824235097477596106491573897776999074140602566779895721860827900917167429514422901151497124274118418436562962721089016972559938084584503768999062594977457661431744933806111606369176983955461220983358923266419320931374926370485832436404246853267109235128199166202902165809455007292946981224077757617794177569583873826532267682420999479283789341350698888366691698728185738473087017892852316842350082758092945498223130528416539356802057038113684403405850588017076501394721279712642136102762791989511517765721329959438471885660907053481406113300378132108231200386341577850334506063163733010742555166085356051433952945076309321668256833730582700463935570000562919830051696172848015147615256895454569093548506277082982617478567011970313475670348789816183471973161532248335858821801951643520480892687239601430566833231725009412951697065813397798029212938094772332545908767121436036694628492957037913757823313311805856915518863029626617011724496393352869905683396595865583511057499624207544999852631017577987938253289083319762362952891744669139028589635378621079840106994115022612139321334434472319265888181376905950564597676086640204029490647099132517255686523310290280923509360552551082676809804133181586574407610810674571198717465911291677423450664414621983594104842926618365199101374990991850597914928860869594598620171939874592564212854863467867053100241677114625446455979092577229424415348106303375333620028643249581348728426129326085731937408048691809682292542055577240721345414324756884024782835274148592812202424934735426715495362438518712887240805779463999840721825169140497198140289533743535026968349499843213089412338768150153600083114471729589294187030814965008013281903576802037261195871118642002638952699030841389015582258035502059301585866497167154020141713666896660925670492676506373276634241780482724292103909782023457680035232896725898665154419682797325652390559748531868057069495263357054968330303225268793113846575498078356334125988296599074166243399138296656067563026763991315576093910677872351714463742300112061177403334842551182688860839751602124620419142495925862418507953464718478921804450103428577849640783957002012679779897682850911127945215976937071603194246073255479526470704643813224170583753551451913233719860944597824709332531640700523324750587833252829584558068555525017053439758007447967503767591315333020465756534197200700101379026006228017625911003815839829602104810926039143040562073891692261193972540367915157925747628938482926930526154934755844681050223967549379401904531369298869397298240779549391806797740335809928903212738959979695807813549647494076461241360425502140485337969165549390720554895975694188769804110423926962091456504701092455714552520090143201467954679020179729910116659857109211488332628891386965663645933227689021982190058308147605786012505141015318770558765002627470123470612672075397562324366585752319823933914409670678830849588021218605328346524361734396773323574757989131480609038756562127275560333168166694809642190505656116843241651527124686901041329799544172015599417357764473016463417198334099713377817357520703350761128600053179323711047747168156978420565575786403399153261583207625382655459323385390002362737616311462873038270028381340670370486037665826647869582558836951672250136266262157273681390436503411431072589472062306610314483941651115159595758802054081644711132978487162526635543395692300698432814231572476072695216578165696831705119125156644262570466213544190983398771659062893381280342061876092333378044076021803545922675619706820457003065408963135118224757049753696473934775783934843945260913818688576943328772447279035947051924415718245430548885865230276090619353046040630765766153310077247582751991375126566807215275924885041805667132625183340153049381257054333511078704820419568770207527031695990342578944553244962994255619436163637778260298370605399449396227679835692224851644014899830213491479956969364366859095441454115864070365830605013943647092469358008080471185204171648594673499964245233420801192849679826999174099148099961954126526746580087296612112094014210737150293813883316519408173768708463846086690166209135699993590212941037037881429401520341535298343634750524710175782358885586986538524734191447580456434889078668693998879711371250030375004276051999085227586300448984352561023410477445964352745217351694902920425395060994060599457001373998692449219945876678312313987860413840701856430953274375036588829443618483960526808382308269843034896472551319943371874650972710438247138894330901324738104281079799137461951386421914740210379370005667835123597768860171513749532453651510723408848264842383947508352992319218786561411779982069378788001156844987683294264450821013653436701205365152771563418753154695052750758267694491150875427656561369680942958028420316011813601768503160339038873745748760101556491835815206535746147976806813025327697115738466288459569297581289167313450105956638020311954548860094506320614604858042455365404176204887720753879034113655388732088265432830026914564643304135204365440843876003698137073336899030615686067867744596463215377402393153797103441029541345386977639513061586647107656363114256624239150042497810758348518944232039969845704964108521141223497680426128778454913612322059836045305739672751629630139927016492218456837223748791230850412946160192966686839978609444976085688320775517172389497627485692694007282389418438097638554907372347598667060865286109390337064577800013244137454784700180949948386335442437567810071939528189283690081976979559817773966333951877543450234241464398886952277250449309880851501479916963486778197547073484910147725129372380147734069913916952657428637495395565058334836843504984547666314700476822294653331637955352060860972234935955695327224438447801011808456969790897421295461665354641452055108041150222475637642821354922454341277606253441850879568287822798047684138706496990295306540549114180304993632320512965493299948493304168958032204415337611037354048061769865532959330055929569774161864267817268174683733426485389765536559160998364692485161892662939313303823442060530938432185221258389915227451885100085502871471166498122987410365205812433051501597411764340445762522356610396434909369492945597193993016303657849679580929597558129846965030191441746668753634487901372755082046447737755256639427065301211534418571317467568867906649938058328068780959422011506254958800004043976027430846661503529944954926523338301372853033754599459130462918175708179825664100403675526328175171598440082419315107538800939630020958340634123043046333366401650814377203199802184770265990146433948139482765352602103014822390225444798943747798550391220774042612141405030315535219595412503697458909872570334146867911092011914185172715778515966832030453486549799262454665969699351097345029499312484677253001455924799099291025946860785436840024076761526435283981054180009511453978068799851849636457557198934659538631776471885349726482836352744209460550359411371115402273060989864039719058112495052409140995334430216330647092266424716707233450268406283592281227795094772008138883821729962253563073582013795755966158614835467912197236179659166348703986892431357270590939335799712251013822610868775679052794328737136083339981807430174616229471676916796057629921495538182784991644153870250668257286799661512726887212992727968661536108380727212676295618149775626998386013863297631711047364262525018859681307218484110524280387975463477819882662728133328081419376450232495199412783336461416721297561118174637279809368614418592252564566852185015667585112698474328310342180419129565729945767879647271915222771292436717718617812501572489355267487730716965437527758594606164028453769833226131872615722691757876027617082323311549087729312071958802778765206125142620263022657876112995952595469154421188749158085135100031225107982386944986903811176495285551342120003454548272737798076360130487674087228689056193969255980865914822218757356976942719604148145829840109765801950335281298660713067221902515424007296861052331489323790470106414953780016443401655476099780338954996870473019262265504982048582000718379332525136223593520677178447711033567614065922348796266920349868100038229344686417217079932658744921083653082157996302045991106711133005329710051534686005889824872635957995320659187150023344321365735006096125825881775535574480617221556305670141927891714236078276855139296671115168847461357895002725395103282264768689709057275316737114653559768527683923931028118380749995506743840998701404878115778851140101912946465227486746139879706477736058854661666268288742590395234062840810077090918843216416958782256907381791100423690084515049557782094591166384305816374241471089163340705766268523636685844667872361176689391458906234933570658526515164709191353433291367606655517289913107587381586995502862473090828428947255174986801377787294705991217960071364504296520098913781858095246414225299269133934922964473968706963144675786975456464923526161414855048704183854035871321028737590530209239719448459437423786635035790779640300295554215903457648983744068244168879973053776673824535356447949905946600541309304888995290225841159775500209412916917067422433755803141545612157910882292965726497879226494512218085072109940599388860728098850895882099619027534981340349412053920990936308302835704190825386670285245977534911700117360641711521634631142523721540256358615617167574331876425210461045948845684205871342313976378573967063278165518563490439908786510439346435471231570889224107949647308957946232227553019307291785697525760160598390335639568645017330126847331634366580245543878331994709398643307184080000670805321853709673898833259725138899584374757844683756388359436428884785808390302114721055940630892019730467847332665157383448467908412422608156316243523173937170369924384428562866903953071694056982255975781885901000453658088170959530987867812804257219663878953033336411293643842514392574723031452907572953276854076736486115434954036601619131898172678058494793290031249614882096470441213681990930357845237355304083405991657536443817051397416837421745751580296269803699280125600009668626532286898869289663792468703883414391794680141301178336691666215473172720817837108497450160360751210559701043068783512709777238315612493279065595282556422290276099434128671493158017588913746983840770522558529368705022567139945683266808533832800892482701465100018131897047032685650069765530988624035847025258959746385760901583500845117778943551190829110587633396034347343492725948329064662573629589383160629449531632944249141994719827565923242654485962017714989694361385005559030473184191169321990537947806990971437734729077155953240661273492157007624385227328130051272520714280298512297865750708138288907957884492132368136359334741713169884841904956560213628890245362169057598303484150454324580101828688975445935947795609248162979993933684475313286057023779082468509902004061603870232052683583338853929473267349572987130048407157523697683049320367434740335106749921097518542187439531202915933889847038168202386881530364891623890557814000309838140379749586998425483031269482484625233057686359431235640530673785837886123480355949382949963727854797337363678180800674612549725893487570836919500648372272071198215360157083217684812817772760830304512308569929464627781888125005226841554592367473552125169906255861082544120196632965982730600882115005196557478122350911358316672808964649734174367083034148915409213247476958677656510652314222475644815799739326962262172476148118353739075616620685339424439747199443484515316496579083007811670312849056100962423780083608866825532028729065860379231768203814393337247943875105653794346356901135316679912613103406785556403761500513066640895049748293003292475666011419024806882196164380656930305366041546170725965677845838751832803889418903951809285342297816756737159914808130831181017977464853695470461819747013404920338468883813404884425831462238591890663280508994273618826810128582843507065733803494535543667798951769220038922465328444042228894886096010945680472423831550888640589528279333502820466060946065351746175226330951310167912487441722595349146534613811593098308644945416500521277483645818085594494421863889757071617973715864537653000437810726084743563555390734019208634828405328187562469002299769624495195977855028658294989113576044576188787499621106981390901322734980054250858005679970521436849258863297480166931819708322853282555324672392644065656624229992509564103920735384773916647615441491813045546824565819270115726510595615848917084419359368073549685638114321856365525483659433725260787937403515318623671924002091772383950745802497679700895529612247354414059144180140617198392793139241424643456064441995983721859285647784008608814553244556656217694769879158142983540616312285264360135499164610142701890183366997864591765251340759045816190306693225041196849295849826354950607897779053658559284182177597481623831050648190598644894123414171753218724225007078173677425758202110135631296534091887976010466194676628057629582764912867151501818627667841452883182079697112360204458329859748027862051797602688300624754120571004445559788791442876803711939948890137244370034493971548391527952488516837107596219543338057017653554189965695134207183639490895432857700325345470758167855797635446496794811952335938319541931404549112701043548737340831628461253129745127717865286811081957232602651076885130398306107932241217856877121415111122008469387593827345266395050093014591254272489102956438079168534357016663535391549309367627420325490343268235986114144360922954262681980422687126737239207866751024934984014884751925026029395710313422371512074849114265626104603912899129017545827411208477521096140774340328030451083737166712417194140993647296907464831035690463459671979339609117272107330141036343904010802600814624220203923601832727603408944252885234234749552549403123967730321070651333022762107928325368827165743040097925913127178654542700549229512701312084984134143543993237953421003644890349852830083533939403318431697903743973912529307121070742804184240116286784540251027050626517287602285354343185393785421524769845396875688557758017609352553387227648694978855551925648388643004807127640426435260594034310396501939779049389529801391767639067463033874015778864195707236709546415120968871150111992304378884450422193783728586703588960977286300605690783209641300549055453165586832076368959355846237364597622531675338871172917918946573773508627608404114183592648951589618049868613439316073822296788121890771560862513020590818125413579576437903160068302182442347699649335249998272500732649891228246634682354373899283244790290278200313612399812793439599160691093647293050584742023487823237094286483812327120985064070149777122931577105401861078610738447400898049769089183274487984464631016061815290637340827303629520530016947956566456069381249719001034491617625897594742853573389065735517750836166916453456744445474721424035521270621003994871479735814488615798979172903609879605850761101179725380570724228470702181494587426496158394715199856688399134875477736100108153567223973094870774592237895022106400379214913327198892619126024055068967684773516476631777012008267087259431892945989571812195020461051754523976323902571157728751810089355389690183363353634622612238703914945445143860113054050515104050498199990608159716205396835759000977600846346108558099079126817840620780220477812061660002169650749952534249666337597363046734700955610818054999753543873102382664267599938933458500002564551397468345596569590687999947607036079678425425239602524153440682753315612577343600432252317012427612278771424359374602134958091688721234671015705542512862776088271203275204488160690453410754706189079111690703183628457185442053991584958474029949367139359542702650308180220530741425043133520751230337709087237110300894949542627290601147249458772076018404478568066043878102109034838627831038294614609958368447114138846744934523936128825108500347490352859215826391320865864963842972007706738199311075470854530484354686714034156295883279248988372466330081372443936519926870124552826537866252177490682442788592267293440871583606280749191240902213854885006098906883159572130116396750018782568761466053679691370898025968208798314672185066339960997010498345648068098915313173273076135460738704000132358027680445876336730029677669945588777205941971273786231073001259409703153026155229423250490158361192506378966294364786484930086731151838016383187807752040668623999605837257190464844513472182910931172528283580578448834256115502742252166619851066299255406946951054948155500416180535313190288250928972623858834953602315406673155289726388799252050242865283250514779629111565014070518376647452416393230221446377151962258613957818084269672303362712901268723533445253439351082694413093896256979210263169466909158716686141653946194272028707205316617457216233375242585172944535555816234548395154336997365422221513641387124701250560361065595072498901280618703337485911786263990221068290731829742238777136509138086572678039774713469951839532513426796817400295966225149129888508617571036880131322523856502805740829922033562891928937673219675750810294515832694031030442426009235393319691082520066632281738003930516288941643320585757295061850499623528695504654121865274243980788903924208227330801562960319460354336938370254259721593667718068083663195995105351756792331019178651757491281852409290701008804210842185885284188074337917909869597893655460003537153696050517325250691921000654382605727877024521466708140692717178688043611325604095883105355021146246740062201299590724511736894421055148378031143152009821737084360386934821220131320095656046357737309060363670582947632087988462649390818690099699389513235206172255582060807104735905220382378141567166460009598094651876953320026739082111215294777622459799772522751782780652271825986257632298494260816251564746198240759338286500813369131194917829704550059401743309429730439759843614489752681891757836991458343758580992628958113413985657986541600844345216167797465449597573970492124140694376868518733558551039985442617740827832793253290319343303542818602989477127286747751777177941324988070676944347680391386665514439546089090241350686946032698734051899040984127169984167602508263682663455580324911116268946251965558097300859618144519228904418401327996921021038539908259004742761023479608091175368765342991295493613791616531546787141545006645520774181147211433914833413642471714042144144192592794488778364106632900643038690499973811978211542226437680035188736719185702075799067502322620612853435945873377710101129937943226033017618551504204772421091979182136517929668009279105845424317513694700985572452413487716558432806477115367287311016478736006224709807948458483673367866107199054745697806679980602816206465801878101238285154621601590468589439680810222552239047713160015463785183103686524997593150079899679597505322999238230877445657761481504981806983837452987075368493077478381389735470729189080699224425137137452587765941649916864075850001453281720527311094690321882206066201392873710932298722426595914745294666055408386589117995586711747307807697537270452488248375764182759972364805820364130047770545647500428355597235342035749033735410579657757702602273052624387102345079685822177652069334432346907398565935209308945575533081231199417077773987093289046295325138416023151655606249321887590648062550964295577979938122859354474064536919393056699609656327070837774591224365676602638558379860873470759576848085544948461604265391743485769967743550972645828096281313190510842928803531751698994764944344442138767224374490376528552205395880279390507157747834867931130235372712606053465834034896166029197427667549206799927441964945349184121984655774818199643831845245176338983794643193944413249553981405439441693147524202327567834769017429409315175183186924684135887527269367689542334271971646647087118599646775942152560912186478733597429728586372855938377348148256293386337733189364968797200182656241784108741048894956150189567200124580738879092067271454806243509541348099625817725307383863477816217825596194044741746181183120481220126866318689322115778855917981686049404093739728680623218911883726004872893151290938241343750345822371264529220020297316155960049481428279535595383772534609914037154974694564318362446694096057937815190712213387747837016789089199144704081646378447807208845906323141301472990231057425565634795472065723673188236821404556311061825482578365071948832805401211155508045743224460957232898458580252048530647372600366972856408508916922118802581526799709572771806992801103998295429915912014420509819425021328398211638295628156078861064536918845861254735223338223450262807041960689125029654861703525575340044185607066718718854125139139467783348381464992547782849960975200179017004042960099228403009429148148058005100321996437041712152680134952902283638668770322662590563921019346549590670768180020350145586583478344431990333689878440948700668744497507316943539959398015894433130515755873530033270277699545724137629359765197496678299034160685964105615015229248218798831538612936166497424214389156743871441727547872612968230546341714645750814239039594476663601118808162756406349852747670870962597524624289154855336932045268761179898420762430932760638372212027069743526163954935026547674644561623061810607559710398059904715034219508947200123954254906915419096938034141653943407699549699095081869673008424337990485856024564658964339652976769723362515265718929364234325784425685322543654859957946783538583223233840226733212382535933491786069936101795212577616916504993754613052375712997574210455995679822359302785507920003983008197346763843244387179497502632181319806422488469358777514599089204409463604329418754748010083917412100270782012131109868204268963566943956162048270395746348592809548563914662232305967627357533276530376468953541000760780254513162374625251109444582922766004815132018205248200325774075744069834119253445017536355916727217823315530826220364679546358320113641207201680168709476852749162036057771109658211876534752058351492992401803799797044272089315415586617123089097554582664129864161893402510646293327386796630077304576416828826466444233152394108931040676602677624585524713312548916248190262801825523543602093421642104575342561400221973572036290600399255963486126635375879800956368574179594916532201282780054001841387623256184972044039982591856098396056508612047583351067970186840981278588245921557020196857303833330129014720520969233260337175170478734099874533889509066385202164622174579583109318298400254041250348573311879780188609211807846004325371304652773557070064611029135138988237513108040169971545543863100155637862402384474437561020734297964355826463907099637899952195539074682228813323150133367037809042898647240074415244138484063345448873470535801051806012948815395949007035289428107304112746833490686812196853572976910560919196613257176794930737975702381308546230605810489360648504950554016923225871355121360054242340182471080519792627092153690075544804809797573165860813188626973237780995808232747279619555364852622330870011674159388112849006238492122825321315991927516233812161865812465685763352582583623342609082096560433532909624092864843917168787258206986935267726636330821327020427243794715380101846554048923036463443271546052494508249017827072255887813344570818921966699804553023732637592355353677037680953700000656484678051898371819534518605811877497510437257836112313809867403923675657530606236583926518106294343361678276797363780072260739195757369548205903441026223696538258274184088312326400376891403060989513847563352514122168851753589686587245397214370535919902752827055286596423680284390539441033700568005680486334502319553017079675013262986393947271554291093878210100202316905704684069921824128811047238148570206500028578357661972118835583059290148921646887024044956369603061717458583560636405738119028852822454210570633565853196110180537743936485224599404042226188971027614691848435118622026016525999505668221154884571604410350251246333694565492435165413915852197881407464540084211177194901034906838746247367621585278948389870843622128074937724450012612246741100582904494987323905075691682160185815706378544425845033710118884877166508422085044435017274148199851468936910667601847172381962740735292644800820418729770484282228094590923636068530149232317441865040184445847809631647695899069590012557528485677295359544308696849669600762197694467572606542601923123558649682540707689757810465990439759327018584765784610956047593549870524795826715887144386763298469408424810698097428178557966928919049080174187288573739559554705030964178713216099379002910214582383378902906066249716359299156052303423774001243966942214202432943505768071382843862979035610813457467155240198067787035804844900192270668647352095638888041572830007489608391209356819996251729539121513228561720581860504588906748462876584475593489516308986258333946972039824835758517192787423276042760791862469284017143303269794185888356455133016090626319829923058780639680700389060588325424390757457963804734603401535203574139896689957479854437502436132316164996644885492957072771039669236995355600409421938296628631093682212668115967916192008830889260270008533072518797794416987997808965148561956439894656085426546386490053412622770980869245844231104694230230326782227051610517999656799976695716668625778617114327700438292812772212753369709202306502705486662772725744786354858389930456631484893592753855559235554936828054237867482490505046519250058829849262280818619474132775717366339385476272379156953458322426270789234257322838898810254580894770386931197757924109309807625810753824688133796721463972391513257895888403943704399476687290177468931005224526873081101363908022983751060893789006383337961861109789954029786253746458529223827878659782941366514975288205283580429623074625456801983393188930549130753990195722419018636367909747674091344216959962051168144816869768376155170026544716914459424242466028432494750343182147178093994129071061251802487266816895569754760100323347544180861458843250014496213906958520439377034801446373529240557738254735936974423825270699756353174495596051484283811626566177414132356493512732542299903835796759291956708697840347787079775639753814654327325849647351349531586905012984089010646401274978453507401421872340703606158472610861408528210181080239110629013131998153130812825645636371949782963813549917149333144788152060430023881558921379853510678294644140725283379245674342017541243728170329377713125718951633349301208928406085295104427031185337292561781682530540536909848292081074250216825513739862571451506436728491298276218375589462165506421163837115237607637571378382629703204132802499674524082603499020678985894567552726734708462519452926421322609879876272202521976814807300382604537439553544145366987156835104767857768865145075687639164868872397873607423230290142330554704423946421992631764761964702565234811484505946012699425598713072894050990707435848340806151489306097403015042546827458244616566438401226341886230383555060342620730016721347928083576270673041283465326881827025520365123826634229610825407696620190833961458393249183208218448765699756330147379317638178013998736665748557977534527393841150611980909690657865568440194271870643775768531506759689130249265045404511862646284214949119883391725652181575201038983737325809729775901294433222520648290747747098442730177639203213647609886824261080340731767350678876957674099817165403486288434958846636546229500756987515053546802063542989438235718372694837530771488203328556010748386580260425009216836879405804323086699091826631723619438775249240698786014036893776225354827268947502548952682166078596832290728242077235014014509654652931742192730733768071256340656599524163451043620617486743912413536889035692237164132758189135317883808215897157946805796071490548427389122536717095378195191765294990078474501391834758159886955849486808313940346070202195240614685258529917894521387151539694814954531571606310975508444532171890278722175658475701363620025317180025401590216559580717361326514673473232253678562506477125257314342929191726767630513242610456631501892109208874837583427805470191676353387211156311728719613502751093815273598922962741420437681637419224243868567192088474168806256933054567267344239916425804515209631761983438610340586097787760298116067932761471607798053945770271317630996111603990988918485073108718475045356662726610670574292952242414448255763781565038842499442931115129312727291659649751875622014346198959424155920996622237450742124203285775066277603081360331826832905923188933107959343112507342066741501701202607858001886708675433673065654868660685338974983413030911033509880062679663503173294766638868677008410808989038045854800201364009805207006975566883396884881454149337221711656947277396261670773614643508917418396121697119247666199290722026311620812922018913423700166845347994873767195531615311053732718157966797778888419081428027256484919057832160810875274377802370774694173828916358423864179091871049534340304688212056757554454808647034153224139977601989542409836985397102145058357639535700574518474960553298283309821649803553376433512168016726806393913898176012378882624753183017173349441337224881312628922017749070611468992748828824214591718731920368720987098235973884530495145780094350966527729795076304542513509611152647655351223156005498956507326568954261559545518656951490531496955633162005758272497714696988444793227011898258570582796902215858436360800283401833530059495311659573670292108744035648887639669496727805280351849050980898532117127410864770051913764808969748878520003388237406029184418976467614870159582987437692193931189948289871336537571652576341708694784154568940587721763362337652501682567490092729113669380916003450776429603694433347405573074087739366709233027323477033413775768961805843691108445633602240661290925416055161436828219259114172502813120403742411165101473304851292300600960042153815032653029977694904548346585554287459846308361589119507270687897110614167382980449161111772768358346905163910994442523453842771651962481345922125991557242099119635748435667711932520124515121567880088515099816860510550431121863623909030287190012017563913320632048190487101621627148870813993483175086002180325121947164901796610047510061603616831741304750944431820805701841167247373882820717373304366332577650657581631235667223974615558412381273518377158728857998565394853516014445638250318779275730058088941641951086700300056809741031531152623621738810127028854225024850049570610258480502728406624896872500801973788476052529306670942334852983077775171637649922228741969009788871741758267120990147923565566180266268252694607096824865674461909423386216979841196663625239416724336172847747738270444022159887764491914887072676078988299855114545453504849792032716147401163944737037627608693685054908497794435184483789404157375845046328571625348628887627945554182640609836772260083408523504947916494216951067584580888465308608010691810360998964493750656127159147164460971508318798610260580155730073873803880158325691834902151110324386020922702772893138901158485438254888995546113370140412989409331726017127825516166772594499686041342367059070693127920398613337971375365784488868076072995799186478969237231040144617015937432169783791933757862839702640349019084103741095409388835418647682513846354278295007886461114634801143384331942731668812073216039963293158601135674642912978419823389621243809941584219321502901739271638932362396005352651162722743126837077722069572099989066731242967835851289347499606364751503277760666870987785797030753892917287192274989176327097640831848842185330646609384801491357832981723289877766673572890174060737176036900174328298289423768048554016168195203328093192724113280351506494406994925769481691077062703666505776970859895469015539943837144721596290071609882138928008585909196866048712868207551606966511860151519546863357927548311013200805392258783166028510080072164426499845706324049926153740955741143172882807794159647981320957674683904715091538111877539674213615070134701752198404048508252344241597345506258039003726519649576232261141066430155851447967900400140671001551575107910639446774599340770199602469406172870217003850952554004644848409860799963495559144135071278165775059759992015706741413843380619439461225954150660593339364527461862069462372430328357683030674519251535829286672072844899158839908133294715388576257474899232310971188728651941365037160081906323995269260726072913720691060896077865184694273146763342417107558439533312672127249141548094794783670469896649950685409838053516988066726900985743206780237563947211025079888547818867712824254419287626673446313223372183025007661027430954524383427865462368078833710982726981972045253518578347728588108974034775398885725497992371254606691598013060221850981398886994430862484008080153537970865677205369016211084157011057066566729421682280576609373231556345479538474963736953767902058095500695103296945832788342164150829073506242992273177920243528622546419907754292949810317323698064879872409586834297618440888842165201931842866604332898372780144080051106274026531554619895335740424777571057328758600071526545329114191459050989902264742479969080009454115153933914702551718690793451860807551806654297860750124852406494722249840569484666517309725837331398171320845877047853506930187248027354266493989743831188879449890942987063743363804664874361305825717712349108074167986677016397900829217669780415693913890141001302408948463234691881540199945700521365508187635786703009419406352286254049195524835524667009730698546964281299646004440742866221969129457720305683434882800572157980992618592508051989440404014276962703560972405725767315433367386749190058579490012810949424237459215696330639114875257207620590552053715778766283737621540548392853157646078077734323717947917116468075391748970346035743088357131239215670814532209650785026980544123324855863497154476690882738893012776493452572948281526037265527493068560653709933433988284012918780135373171268485703541891325465523478598919485354036623094097032404989552651557731602455195542375203476882787682652266679586208778764032370872769122636389793328759172690078357805828201514015152293560923991661416369371618028800504401167707942331942989262604614143601254035349574267270458120580518591458686077707793904614927720528572727633386921275683522563756813696367932698006228586610139214529891301020077979241631304244600472511833850861589446635841066376523971194951418904645422091203151580225549962599039270821867882286667579649661580924026570306729762641167911710815273544007326850941299154538079459239690335378254261161913933425715876852041367908991718318582201476675711494108098957387916008754640478790026776070772782728527985445407323064973022868368072859850353801120236964850909619944099332879949883104146458850746163898757083750215818501858314414400896935086518406470412082069079651184202697561611287654694434828934166481657549767572237013169652220384754736938458010227083382499619053389057304913007547038780212524382604224382157277585742023433211211690376616982724565502203240737480251777411527440220796081101149210726440965157943727103556682869359614816359469878272450108250066289643223903889413545600011269596918195399187528698433037636801018340373592415187505596890021662004936213711784850941682139390583969780446607809046084693753067007087311146282732386436784674081180564963469002218098321072711665866452436107376590710309407415465507922377815785945723308053758256995875652940329072077016092068029472975776207010724525576157824185573974298892469326415085695289410412394775948841339101825324944080290473701827379412141993152925260100125721248063228734152625141371591173625649054371318391771915284168395880750746733143358612914698117011321775204036855742991328785667958126813656020709514087476781095184015584061837485488997852291459208634659849451883025907280471138216367061087682260451778281115899009682727195397158839439054583058575632498118205169249466362593935594463846813508285354072502919884229343763748176527020124046747548197926271755412408726512138044943893579260249568396296492518776826549681394117035953112609703631072291651867976729756394614863724388283397112425977357548247011665160329403189903439686384690545910681321999726395543927050939219015706150246261265543629633609500622831350738475978772849871935514511311060445464751534337887899613072655514526294616764741800729628358721731347908505051531857395503981134945774480158491318543631892403047877207408160181347681139866300458674439708599302609758963340371956179337357075286753043904470055945047446118324275275820261167514971354278939396150961018678235168817041895947793393122880208536221552675242086179756693044492905762269800147357342147812559429829490294209438023933595076059328048247588376297027980233024935547516062127230637816523973472069323036208192588028903277245897615532208849470153353115154694046496546976456097060092808883291738087792754391375721268337568612671027431708693539068079810775163750596189568084035705396928714064527416357913345155558565805591983368891367666270699506828536282030425437127794759107581252540922101628297925816093112071154249596207266175573133960213823949776051754741592155318124931363101497687869405843660102299385890343829380837731990772063657394968198706585811475961202203450228197747084393107389893553793002100889125634454534899228028377880684488962525946448154727089102969725365707323423829038182837149138318316680693576895146389783292117066285794631785586357755456247498919660001503259237824927473179964631451098356086521135045501495366140637154963237338733794677786624218938969704742733247004315756287429347609199422127788681286850689731555256252002603414715871524364334111960023228363907284735879159945941090987131750839999856177783634167432609667843542807078323564034694371220879164962999870820161833160861548977495187076313485939949316426972275787367757457029531572310315955972836752249796586807164680295407822068936352828996183553243596259857180420105898370106659335171609460909721894193577496822849243810435925056441749532069313525748483621941051210596887450241266575115483982637974404268450705735174227023713135010844561110036597622610377414710079634927311371317270736700358528379047002227292214319673518580800397600558863139310007486022008777238787998007273962908494176915798966072015554177775638095335195070324804567008260747114136205821092942744417196903037377993614388556424587868707220404587356084968992533248340583598918423432145574317718426226563768375435785952979216235833687052752767491958375287354361071507827396931112421371661513742996761503818412779246317955151170652215827592498047044294182128503515577205378956185209287277611068054165446720811392687764261026123511000418916631022615357806851000977974644440530892555006288941693477093791007319794039785578142822920431634152859451985949679578354662742244575295943093187413422773576418693358983448017846482743272993410548107925808499928359799239924238845882747790238380320770352542879574659713125004266920918890859926336653530674979766826620741158854162688399025123451214033813195373703057987019133684889858977555820486924198184059886626623992253109681644269509965317452646672163707158919171272232950900769989753974569194601595387088973570911149407216428198494943180436045177492220464935591378734148910936837118479970495835038411314264747245458639182818058286188378503255232636439965052943704250719553217079159721064971954826771775949251602130497592204667622159905721064344842845851504384027448598088487232509832022669251867275251018529282843170059202959641069424810235982379428291272296630048298751473548880814491098652510633021449548842059242560337859005078357110224119830063490430562107820067608689054717958017113829344972566445182896360417327851499323258057785497690968328429857263647260324187628556288726663042334132199579919471634260806658727709680122543701460805424960435651139987392085920526433162384286894660176317553192388684478841367115108694206934829800158476822116417177197553443324275566249155686571955870043215315047870080380311801241928706414359832635036926421939200633114047771432337608886240838823229853397574131940112523681443493789439628939325672099468085815414845651382791017629121747545009024114512729663915257119797470108403999991504535919239516523247183119627178366680548348070797843179556565684731971042616961991247029376500392786013753347669528692531944413161583238431980869119311550489818097489059932004757923996215666225572386125533752633331414343099754839585156310684454391955144048244903903687687163978676033871005123025085024241006113283025009205729172347997463798110356137822712350939322317241713057556085763661816425388421253618865329472089488473749635533780477716349809581786894898726349018636563708813615041379870772665678632286207422959789862072680412010340886816825890533634868149901568643679879333740861615243402732477866955267649643769044748485840768999544988238804561771294355384284035974141431283587716932040147422889695888357359008529006133027040204036881319151209208651582380251348268598237247332221836701645686480012683145612229919006251828069119647097684812711127753490249007692452350907771840740144094920632789701799379550246645858598380736573186104664606260547811560917958584811557712631971135449801924214421270800999615617052584668969266644272558566502518388809953951670962061369124918871859127844903624484062429035759729971247533037938296417089809198927717795644526267864567240907496643962939555075160666181669280041341897153906021203681157683645230813937132072318333549339975020080161040557232235212191485800956066370038047092030043225990285221806399209235137807425067553035035719516525317790561011359437637814747569360380951686204686700770774158112366857144225987515831556315023646488067194565001844666963750284565955713984540195891885018106321610194122356209171448198803888836349166567384663807329828598261970145909153085348736658786360757982386545845845663049198429721280432819261531510156673118735613476411374494384600372364824132331592522345517741362508101784708634310690116682655323350040453147462312195716316356878048628797372548689039064308887155794537960299027222241328818503333633420886007671865285897540987425405990073677970210925362577028729025515287839939282602948696216768585476377208734273047112488432274260916635596778526806143304611121464347594941041010000617539342736951686056865000794606638156376004364164265297409021951420707418697046313035493642411085826394992657738820610751843182500241737551647197477733566883908212513509827038393112742344665086037056317425617358658926331595639599169659599972625422483810139619673623862156670268073602626533987496152303575957043778656539040589361521897722783660970950129908822852397432715141973129467808431530603184896455711912290684015050842348224562332693578574108996595046009312823709906692362052401308831690940400686184783425343816475232740513193712123073655751582538067827504351821643396790318833269148884511929459386623070236907911128036400254579165557486433562055464736088640681789242715323548354265126100938537088114576835275547232276078608561879876819598032947312056877722901162311546351332358427339117552245628877129215311853562384242023305273181585343954348051512036097382216417302556794309353895784431033719761594635738822778106303997697042617029529428191043588164290071038194227312111126059262833946514365958827831680430257300593581566512439893461605108058249218201342287517235015312505658447207591367137484306384576498387373972086076381803592132511847473444418438628753963593487096973923196508836663650377131277464275623635892381859368182868612442291841835033133431203114174575128026975854574829092976242112830430201168838537900200198221844790803350059264249631936477690055377231330418604818591727549443809583019323808153030714097867234814354041432422654501801230304483168243469604529467713196431450514412703451179378733468228767278326298462243956255647512342251803240842508061187642699820826976839225762352031171270935277419917138298426215321391371671277271865810068536959112528411043261528867086630785044026521064066106215098149113120896744090451652236715807064076073958484445273568937216590763980696564014310268297401811072383187229977868088794088674442314676153918322063338547993815796643960286896196800610489367254858608305900844241201419768194861515114757615025785679191491065825799171585388025471205701737072820585763621918822297325878303150763850511958645132704732396555116120708367142673564299543980695584247358720173393287346595424717016387432122235575919544846934752806567404384165970469919068950450324603327150388099495737294513277247497199687473003753089061281698823148594082313224750742782573207934323850051922259587825668097743018250524758901440270680970710118731529232765128952985550957367121050904722485352574674243165727654615447525695432230725320604152005060376772343301737782353382188196921714817841887045168014762324940073604729382784517490720355355952216473342013808907265662961830278598849782055138064212180722126690740886359373819544017388946094700474273850141571832053150228036130389949888613682772255435824942378359789612977129382743790361634982927105731994590224909054651271244364480515265912508055528874276998024617567966454494465068509623586947719939819234364088976407569978119939638701461001303180000725733937781241790679154071237650621289151972860068434320666329500775431276097084218214636802672586169829405989113654517963422941045219365644213939913253622345989052186072124559315422602898714607846674452219178399809897054822474055568450243292375108242581578500366386727143194727996013831225247658643786935439065773134682813497248776810932072802609058369674563179451854210828101775111590931383590300068777504596152355634889455845692077159234449219798221563206638915207133492049925679114900864374144134275221116931072004120268495017005337924050881913215862480327558591738595016282783233641253300185296692509928777000639874287845887371900739730398178880336465986956787486897748839276674805574363032520157954529694396925991529662011269425301599397563419945154830593379857783386078957728092604204234811348376722356088356014874007117557273290188118983523456371395621432957106140004942030130145971430753978568645090877792213113543629409361237384671878211446424192913099525298373025484150258743355284169820023598607233430488921483764930246692541690426794571745079924283595537240361896132550020535310231040492274183420867622360859342818450815650357334492857211168450574162419552077663952221813774226497068262062865097833284665618863168122071871701865874261223402225849636951701251108646238294644554152364406957555416523519522406375523460080237153825411438050416075645339186259895756841918292340444198918377298312299310394520013118190216230952344225521383490259115932706902604325253152862430839223074740480907010950507940919899031498146747573589064806071140036389891566383004411959195341016942725252034993502719470765719467652287061572958562668952767085090024992816089676699244174540329773408775198319190450394754093072046214771495794609637895058496498187256836165244621964504735467274362495117197283961945330811926660303649091234592088430710279107405788995040765995474749002926136450792585458094168948602908614142387654909682585208370879964324312187310645118836405026592710371460234270863473804007813455558681998178112384129957119143347855471029843389857060573278208481241965673441768036713943260246398965968589304923680553199619287670730857490910416071648279578214794191582913709992917189215712479305743036888191505580067620298973540393412690380363634892524275616695880405035027434831153650799648626891311030115079019084413700192092802135756216532123965012054620883256294844792410195660900973759012038378486397365460369371614686175213235539540011122194872667043161583713581015972064136062195991361099804143419679583790710513697380167024387524610041529864828350884557622799760112254534487680844719959258619970434105961869123917215468942725669680494823906403443696461442081560723398877288752601008724889198432535218094079528973465061320466104527659435738129440082857284803986533280672615308451650173712033435484037810363435650187985672074735122668621300156547333257153850038641370181161648472834209788363242024600455972512885711842641937115845758994370709448376633861923154787599625616343660213001812745918155006641786752402907597525733076178815293495940050801588620197707057228676159556124913157058250636599670162531615162077488379153596752918977659360901763683274488084652703660186407992938785714044926649487217744216948131456593907678627306551794751417973144735667029527362589454934668302810560974233420355263022245087624326929089338112687681880782979738497019159807647556106424503251618000000374182921562185275672571014937244886754662872149608937442262525311134095866527350594102823399594422278981111242688304272624178082892413260512582461823333813542880913634012752424116677957535710808286378531906325668742736032640006506182060421319143221248965707754042442213571567587750204918904061753773179671735122898493929425462637146531781503832117436478198509857751460929567705659124267213498823748283590265197158362235269113058577848971950106729868218404537542951979641974797441686992063358272655895973430554147469511362895832150320972843042874858951515755866854270357510581689580339314673638188445902477749168826173072414855862747790541469498582482862226097034787217579165862342102739404081266752312051877528786455510579203056563294473420457371134827927231862016881702065957919292610694785536215285125442457109578326983925178503506780778639677325842792588451398344695542536257034719467393541973840965254568576464195847884272214643670437041067045132902209141573873418314973248558028396797368511724479857624490881917001926498568573144678231248911557041671643384600603137734335236767549785162226800333690975078345465705290015613909140381099980219855330876897085221387141476185787203307690365775159942634135971987490574400074126288969516188112652323372148236971540015025704401498455997916537410400438815782163504572352132516333618164959675263800826852827794757639685585806300251061762881249563932008416831652939414027251920303951896891719896750560151291033905183960551896326355997847212554310914129601298697758904953129163756180712993842066180264849763765679416314581575080894639237657336688536931397867279100104507355749499852677935945949064493963051602051052219044977373038474000029442474945507087897151741910306256097764099866386699316137724832057019320861011653380633171448342523860500880642054839961535407115955550134027386688731085925232862971235215248896256881843047858487477004434699113794213429859862666665098616947113526366321843038222776645148969161564985130783247281596364003288238471094424898355775346658147160544744475071654100221834024506913620931522504130064860425882412655336059542166292405321616150067321461273860197401797325548812096138330911850016310001590955899414155157218570666139935879273436843239049925911111270242175724936271966256372666363257856703259418816076961726888118158692311769514793171356390251597278209893119468478283037148478715722839905005481539844984664197441618087107364634876030917783801748383064657757711866644587351461598095274343825468280820497772740399590710058613048481711269246555116903260441512624864604394015184238172423827939121845367436750382627733414366522217697253424458969335433454074697650589620748240850262114407487106180769350952708943831748849718089329657993636088343740384793582501833063301835177939162196629620865387058005353660585457158091684071580209855307147729229702229775051536652828272981441796709142642611639249854890601001707808659370486127292165876332792704014125699220341353072576809228952841394373308700148316371625210603477783912447996903598368288761678581407055287767752637111776570573533991299133608666594089878146293393999904425896406861645384117766175127526315719117634891866038138485217727911443685867425863774409638222761615050641110825443276024053176232942855143160692415089246845563532240425449213079748203615909507193645456262515976632456705950430578840051007615160679265184463641149864863486436698724465084782608775256730120831435543078657837311115915486717817260507566679495198303045372823561608936861847472038508998120011854855928987966393226118904237408721917474801764318854978663645201831452674574469560923080750514054992281929125464292708625582660009700269965248192743615736786670168995419181130406919968779598404885534785195046259742996698707954071814123259612342180382051454536294583288335010004582873071224576804290843193451696784739900837611845692584807764421484436820015239024874439136628999533629595478078360545161912874409044750506590573059969218739600302150961919038889248144874552824218152517381480471254237047234864068463569541054746031206070771803149694009423744525726607888579688440873905930865440651748376220609371796459598981022860447049596193939982590259699945687449203337713949485437133951289931805473259750021085342832585893044177283680607412867724690024130533231938544402471730476640722788419282924267692728982970997506016051287858422219711584251302816926273772164360108939265642179936049759396112723335893368705973859739689238091926873652994862128700981657476070127452859294218382565972877907168331729944601416875276423643989476037140364695119784291497178308205894028493472678444368973501363009322869958533044672879404269207283598740349815217282535965257331135610261905740488478254919186159732701845016282703920609539348231352038770241215040467800746234633414066525634935968688732806002308067951740266016436899406918513378453777290797530464002025160925015084983132378582544958246956358831066690642746446964631878636828813024317535735392708119691828235942033941940744459834440608919249538694932096085432300744443357899896833550438133843887442725053869735557104129356669534046324268743063768882532976336097848845676708865034643624860696936439313218591227087681748447191059932224648313603832820050495066813638064422441299260403932001361331284594554243922631988098343323916736108813273076896017654947523522951677148428525209233403723308165191295408523737714012160932353338766611285260664710046039416746125145188057669258309289527727780390929581742067509244805185724393560033099531222179224364766860882618920532498417223064879461525580020468484716116330944832001722020921523689048660926608868635123784167087432311329466311184640540559717783591689290547561123768244433988207242042614391243589791123968678918691505516001808102613882687182701824529136970730640372625637326644582609965202465547267168213949539499256523394821046773838586857168014371125234410157653885324761696945788300630810259743252005290309063362049085670290892420766375200002084067332529342294136132458866926935833450378070540238970150220699958578494715931216725124227524467825136102848169055416464278075026863188387240905022455281149386836090999561401841637438984865218039753545570150580316183948188014045440819375697570412387299172293024020119688456292743513262376477003817702156773319507841689709407165782333639251239426486034102733833314003563985953878006503973848931236658865907524983060998316810640396066230635177449334827773768880938740945786759368078681199441450105890820354530659333061920607442860305050894880973561595566460958595375755340264191419055930552159896202404944602833995140093500023436316765754737140287358535822746824333046714981937906489431681988733240561281672776762404156302693116655343302277193136743115397109990839407096411237772433839673247679081503102218569118651054727331070530053176071157549774084956008253410437257024905754806261854091340618653095081069566428518325190484920077978926278425284500436681269444518858261106605973609281790753695799012322424024884646699783364488987049066865003558698202441301402747224273482362511848849044335648057619153908764125157070853939681194921182976280336449982187403892868317023641777811742748943466731149458324478098133929153530707182758331186353643494812283582999892927410080298498401299248516927850694406791110329763362191500509215244201348403477092920096821021714172287136267039715620378196575924841134486127156925795474285205332223688171918278660854220480253762206008145812745462061504225345522044636894498976027579850345254823909298887138252249627899096366117901034033521854460451674640584106933537972213635060635543794848536713546350268960709115435283004710949305112729019379703021795587503078095843544592540992892497462325949594474013650598201791859731135267668770093739805846733945520768214956654626760976690024162189675192422561425946486980228366604766962407398924048065739093714640366084849437116001340446137233009192258752382622986057762240672307615115716709690445739474601776373014044150870336411493424483066271901764675133937877220995080778402351182118063287252567640458031869480225373287108405784620381396593621162963686610614495777835143187097405902988788422597848807518487244044560298891543080479813811902554144771632217746973714999766305909210922590928058719094781850237629620986307324351376415026275377497214691299776495663990130743661248559865167018382524416053178465386785083884321924213591557533111335088209350159640274747399352746394012424031548299612875493445544781303717523124273034955815360937867780585932591121129692977090166771706138909485760128897590203675956710673177735494517709756995390068419235806836764203334960357444207549882430686951619328810677833724990690558947627806685813959437999288825620732795871111370880393876191150624951139164374229748394047378658382401847001815232213879720848837339748485439368047780509581098970606726536446952772147693827881828495497283364787766711437293708147446298356946281324790321244670569523969979440679144455179070883374008578703063248133406510167580800368171186489643143918539774731009400536615781500849557074424951849484126573153964491309655040125679056020962437882611427740181065387558459960767309957453340776101670652135012717676252290466487307567336564760028125194541290549082005358867164612466708504522407022780111617883516405104872986708189229486530005033144858076318441005733893153283141861821019411502516411556454116646678069310096347770121931672812203543351499606176876268272636141254191863422789756625012019730608819028823232811138609828167433193370870043465183905657820166251631425630062842231563067336816865960288120636714623009352619010078848292611383012846260940241870242672419307430130260702643705766324376394469481783513087768615176650352941200435345668836442145416121533592409336180893418599878085065960836752024497772144323187016470584027906577644652487195097156613709974257231760719989513806089291177554184568879412052335949208384828279979634841208427801140026038088924305600923178516953899359210383849951034173023384201467842068695292864950646775047142962678725412459554042918728153902245836824116314133543706996761370055235129896652293455980485944245305723771075375460175314392252692822922499562343144069004878038616566965875078509229723670602923816448382120701849914605040152890142820348022106415865036391462420049759675439395317013876287517135424953852630245296981138177230637569896929359216597816118760682721973048440142250703426937486322370996640944653401079417524598782486318550712162403280425350843244170153385345203248138297940154937217468518739007549923287725315316467883309219421556392671862774439026998287578851760786328243885182063705093437048926770982319339706234115398112739854882070823801123707769298125288195885832497498120676612752480208958768861904608805866199775107203888929227934354385152731717422243106238898607213709685446952498386213061067729299456972982938339674698541947733338028592142597928306519128880956236670529419840090422020739233344795492560740692884597365239055485116242390089032558982952636460585569792965027480466994968255896152013675767849845209539563770660185438660501608523895572316398658468689890529891624931106382541082109932834384257027090700454458025846221947531320481942946301536333876819849282312873502763930506329575198951553962316052857072874584810725438259958520342095716723836189585143268159177020184219529955664861225875250067158517944941260267381164429255953343860809774595002881047781728046936369432583841932949257016797057614212497230235819731905783721806244976229917575866430101891692273682844315114645460396527143034769415537346578706987489045524403553412755288351727631486425013998312104239452764614794945457251922521045844896171175117713494539098919997228938033661536105791702135938958788464052269403729462781547782921126689743467424363367156254621313671040180782054992598428745560413440659638718210916227947452915284638980803223533357917393202066571786819018108139004431832367033979407760907978267466072999214755364869884997072997305299858763129965880780530878173223440350540656589325257506368652083176794331644860832506447907823034976011384117369490089118781557011806648156994764858415632715026180788979401360929183531630845825579132527171655263028012868294915360895642777344702563462876394727527257874167300184308728026391807657367023118936523318128095580212763879466616557786108950113600455145157086009675694637927593032906400416729795322473196756126970923665870610752996803314277966027205702116693837427220211294000643977172649560501178242339661208274539626813233761071136077870618627643055155103947451915161763808439766842274915424133626645987236691738891089427388310046106241560931922880097769775911922658359015963599118872426321269730330643948295074636267847713876460939108662919982286558947732357342249210910918781418935803523568475664768472010500093155589727349757664017410987221846926971340211390448095061759930320983227291868632340874078237929502478345497243268248504038984923333189961981724676174063252874886107287250618620295152249769276046315849605080179036887342199785848639099406058504199339181650196012196844458438235543027748737196709997173005731817084759082335028968966753295534799784578968753653836871057814952725554394676160100496578426282270313970073254817336406526726779866637747927476036939568652702537954574009605564527630466357718962199734767719350242739627950745768993261243602080244877271199416570055168469864009075746102195987388321181752270770882645692808081437832651332805201746740542951089771414865207311025094836869588326861295361359265482222471062216437615141000433503519620212863661726228437422565231947575899040514852859903997805727990209519910967509579421962366591626597323995277544086894132294256237298008661791566108620104083061053602990584185161641433398422005167310901647688386872933360551341219703385999462839388614947697173529200002591399664536344249768907906141685866364022205654474089909761324484983076605950297292249473483821586742516977257790421440376183310871952363429808592159411967725528680340852060001757715121859394446492865579620738156774329308779910531372376258623568597467271402353298695776620041710174873330812922563649310018584699608808223040545373377480718009226193183762856408313436686553011946423447388908269145762721751271653553569751217469726587194316279494385032724448440490796043748245819860994279877015164746180516901299079668620517462356603347552997511298725169772549154402859515236328822959421978340359222417033562729154500354706522962643667006881254334484741780804711845258499372141075370966198393405473796251063105600672832364042429947704490628014934349318581856663590083525924912269683165289103059114598708647572222807748140031112131712534557945982491861724560167043103052074069708504215999198607973917209585859253361499783326421783672302866710291060483821511878927074809996768997450012093665798980139392459259114953489369698270461584678255931490344882163676558835337484841873758181060849429465756840934591554437306123425901676060309613671139301660276827016928035931383214033848172750964777608364377925994378755189548850144905876719309807095573725730327600472873149218376007695724074026177635782364758997644625008017989973563294183573968127718602562078878285813697352142300866465018650751726732735408660544259759167018283925512556531949194767299719335473064448340767759979483624783207034753028686726299775433510074165873544920440321504741485283035629299858878425943513579041980998993923369671177614556483497608423339682865652649847827590644856374589335134176617260737524697396252853760557912393233509832200931447666671479253070036189521165102443168587877411466856689836402823088248793726250754763000812655440901786716334102768158036286682690009160765559387094750637632687879650605376346598875063863918898714612025033690626473586367069996713744263851672799408031740654914704841962864272774518453676550470846347636697822537977359109277317445632776558188925578091054815844325805510258846356125767066953923165454388134508749267305536378717630038171907928981292768754657486052446746549595588412699825649101429672398766500114134158731029221176343059759909391219687792995008416354497412383163361320950440811387666436759236980406943129000588972812146238608100392563223940324307006649314585686168977783423236916392997406259260998912211824499477911655081134269509996185558851996588350973478948957492290479906503289729735127062827931423374857475587352966609936012630958837691355294031066010816707870921383376841998585415131036713517026008854678349991259617141457296649919567974403608071193507490709313063124404026987611934808462344325411540550119370674508064502155925395387182493308422362307522476747523564270547196504646953688212644034678965407812033760098107370002670108679612050601611316360611160705478857067145958252266545650610807663200552342177108325771387712478282904684625137401619751079215530341228771762757526061492798396169959924627114160093103009219536354316142592047207307288075209890320852785161595353139406311060740165649045138610676303282975900701198418405981434085333037287813477145925962307496563873049769619175804309840821607111657586920108239763341222323654920513193465412254411564803744469884368499117043788931281490000018030415220682045187394176221652762299434680239261121010116716239122635678840154461001663892728070797167552337610900233230674614948062106131857267882836948814645577034262795989160518101162829047051277362922723708877705327024724599562557312869853246480351292507183520579352289819319716924311132370463144219316605065797374792894522851537073440973825014875296751943960679225196230799004751439098742290306697622503046526455764244911014450046378904620279438961153420535473753793418843764819396463063245762213597553186220443321255030965947642748051890732872984527753778529033526102676550267476836833243895130995036777720138589600193756964317457075503431239460719388290023900299208339252216823845388210273769626129196387178774574660464579733503045153963238178945512014424411005192728704791507613753581685020568309191527632481728756327488229161244686213028652677592973162922356150726721278952266483198708612086940338400214538425960744038927241991238785602367881738600441841382560347492574910729924206039617526962785489547474600906019979098002279003545490073700878463180396593771971991760169394083034045503184047436419870418902137785756621065510443183868858456463515053953446061377449399668427816965068772031432990053766377959286212168699170469412117263393617600412783853800872492357941885037076685744804094236965750470812396279588319385054295039300970642090314643960475705197462877763305022331212676335201744099511428957298936310783640344441273461631580299879596778941072293570074841048722682920032837234221518155213663881116779923731181015867054977432891712253428112232450165218065123857317113147575152150453172849123456058789844682299291209634809685818979181352068084911360945912173147284078116866061858547116452070783420216392611055127128968975125376647480458518660652461407738569385706901965907315334281109339498077957873365764448635173900194428644912762016819693630276299514134318164282271608280736421755311441453556636085279633791908285507914575462334678841102344078908226211322935614548292276547156219980118499789070614309378155956162689954061377990230994831190196634929105663080015587031957245275923287340107230925315173104884679989167628450139221401776747941102727245855714899032096843091779645824300437010286110129926901998067830155811074012047996587369937512909649410802759704375853334395722227051025864751542720050020372089700937312277130498447774358963236727818958439906340159446142810084272162500988646456913526136041521471660358792956975478145917722245908534393134888271713075059708587786866023571789973549668208852772204629984384805234336558157638744278389522787287938518138126057632967218794988139645599144576806132837844818125127548603929255028092229696645080686061884624504780442605814804693298210158317697340419579203815883824672326734262718651375735038087050620203303724904404420917121768413611812108352387375609571222899373911682577583340785515243154953060914056084225840835585646838297641864631173531432670348151271931792390145918641900229857069799216339056452011659265762018888006514207601977101907363438947893755761103363124190666348456802057012166562232293040501755512180735190543767201750075308358658939193486879174844965687321218022788593603533397012647757265106227756877172408567408367849026889060724341624024814715347918300936502220979431063508240927706019404846868102730917223475649099894012982748819256100569691399175965030761291471549505695287606510408027335355664340741261429493008364319505414300464973822551367725507029617989659553901324503903618875949615145836147272623861688537903341893133301432520761933484701600674934295462923794803664666164590942085442925027915477903076128863858087057024584742302262958022918702849072173521644153202666201017177903353774275810336961540167453415272892194023613593110183809766144791918995844262028650986964724955953546589925859999539231133823485563224683208280884346877391463518906311752401960152831335105696459257505227930965593458507523655998501368970489738837609823606004215527052707453303976434202451993407426887902340976790661221407548116163519630537314518982053441485661355614417819317273288909901781927967649711484385887706278704058159579714327064799627129686262899573106437267580482958249923995265338879877285375049045637024863578221725018472909445802896482001160981921812779015301538739955758990526307483878367006181660975418315971440694841105073575635022135927499395920538865886399887343604522292769001557332662740811440333973278297036494156581563228518929100819609945242200610944615164737763483724981003181216448369802588177797293774683505642079269296556164214630131638497190762523783183513604780753721540037186241938688973349056111560682809194830005964723683292893566827825069934092117731524055015715099358924157927111759646293802527163822992333693616592421469304374297396925360106035329907668751559324362224840238312885241494948406753336841792012145500155443114687018150337012759719293787370835283808419594343039403968627037656179365549958562108473799405949799414797622358745109311727697325413897563544409627573674708181269043655498778325929796470942278283414438404723799584763493163951374162424629851181820901696214101934705682157804181686378014006825327485394944779484326550628977462148690806819209628342719339997013876668763277277324902450398708920009459683326160554435577518609644900146489601893683569521164747547237302460177489422025723296345018841349796406488792944856198826419585728300775317718967041121671944255670097962419827869543835668952342769593772597867081008457451218438726329034756009779034323637550567358172353547621905291997455104101187666424631841898302337895871429950709012239138283907419062206819138864124669979964946750942531858478017067808542167254734128456158104284998211114059892101458985620473018600725451618488924478006710965419026679804520089132055652170082078671065581746054982117916335149098697075744200331993207967278097372472908390068255227241148909037375758163954390082308435621038196484997727853986811314424155594485321031993109959938372423393006200160608540134249935208019381966433745550580043852503793642651667592898640502956045681755221130492161897186084500351438215705727035678737436726809039400643853903329232027817732693488949581068701200417309853391734341977260569744548826286328114324988425262000172155924001661436053291564174795283351236596162829133141993208807148651087102539466588820662312938729170352615041723944878738168727744836517349961332195730467422237920510308685089088065159659672379291190296967860627592315611656055720789740714067996473827721014050849685169025922898125281020265136445877814101720209961620447135565631466259129723365296620678895608659975086522591311622718975114731383079059019243093885704337572142356275339203000602185182705262748429644112249750871833501402489128968528643447099630218227077831551224022163993455616627886071160882822250727485164065812983303227080905344484765090162461618640100138564583828857651523825568230835134919205221984184364399438906010961390796825404899612849298700071686700465482705222009091738859101849385800112601628956645920595555096190419444369464170057308048834616902972534088949834984479857097984377699261536918686085566346424625967720559474657377259368036951403436707754742933871810923869738489019584727912930108708239124571463011464312101702683866046281343804092003529478451231289899496537764263181943787437613644359890649495778484791027922576914388889710587502978882929985605564367955915305319007680016966987628365737801046661494384548238717147484752630110488196035513649298911445770008989616146331455909286587143564387794466941050547949434846924092580357057215273150407073977660771375910236580862729999869025960528928032266742256643905929751567949744213080239784362451674008807683406921259886354096593552826872771645027619568531599283928791394570537243416773292400920297111584094071809501847528269846077761328275779835798992830403184532020201846775518433182684034893154322739323077318522236787921490384788313353974749470910245321330470956296778362492224055990412898227104604636044048271438083161181256517272590006302028591856428645146484820077302900809359891318008229042430858423290601311604387152686989497236376794467135103832290827730993955185016782008399538801639574705261742154052907241163889806645346956662793297061707837941339456870100164726092384443880807542594591465832638128765671418693752705500331970726186589283184672632413716148724851999085424647208129744385688770144368514529590504992226085819505860957854706191800318543506275585625229076268111635924708781838930152458911734276016855706352802301455250151026688816265168498924260257655326198058071110163658949888106767940975102600212912176260194866338705672214655126987563339781217043471327883742071639385375194670959043229077555844751631281213570920571841517262812538156429134022033189660308889563311241880363247770151796680532188442910935694851442368268748788644842539394443068106822936425592807035684332154690381656400896417871885070710220147989339395723545789238099570448853938495756741463934657732379506577123099211390320651867695021601339538576068612619820368418526105594550892966620245958978253552033614253766417197971479242592030907153723576272193801277071084253680876707414361171482153319934792619224288669984818083745065627972790613704524184129048162320336521100869316593718131264609136837985846829562098503475978467044018841150171114652734121134982713076928436428118966101985551695577527800692018594995991344220945493737204971743360002858425807622334743317760836935792286218587433645106595525082054496483745957729681691361222306657487780670812074148145477740483604623388811359663901035104181917868651738023799374428931725663484983198638050363273045466595767850175977974762637462353133205713408951732168316369408407161149198408595733966217001432594221846475534203050285985269986675351874572843842207191901849952393122410390068493742808337049761866281121585649048043742016552748183735870822911214777294952115521563597645590830699238652309258688147602055817461319886625653947214954726452376186885745725050656816283157658244665600850882095585838572256362101614516063291037986483400660505874617796648370015270914871454279459512033382936592108196547185246383082011499299303494615839058571921958685751377870728681126726510230772042612871022104057351249527809501292479189987198574736398027774583388326936413760173658879120047832860050409265080290861506041128078383192880938850340952972866516933045144114489269732551964072856679647771324239552291438348678880999817078506191250348882390782513935880877582548738559393056930953012099655271901863237656391160087698094449065593746333609977197063557682438641068237000811028859728455698390087712103524847468145702657186739907538331280984812481256546773642126554653901947178909256257002689942892296592892173505710056630972231007260589530465664743613075313092382215726194047674989490409834865177677096401882327830475389199359799141244152672252631347680274605490690680807102068925184160515005527845215194349471026664898824425464673406895779286428905683912223909408767850083023411456638382416760534533456168793372424886098081242192975285186992742431450790223650440836082936981159137169131138371545207693655282064273936067019514346537127216120402891696866424213627540809901827027829609519394366345124753801648989896463153676905214758644766813940724240197761903914551111683303264939650447129117590215068689777995704886183500927694793231129081865888370330115446802748359838217755544262775717172152412583501513573254987171104906519307784313818840962840375099128609759814994218407160054112862083316751706096475138595298687841739357986087933400996174875531638392864792758912250164587875115944410889848306721453415246723872409346054733457032775558976364222797331149750780956060474853146355200306377237769335476913676678847722951222274174394572364350025151761568577108131647381926662968650603733059658540665453528441685999161014577966618563175767816274517101639885517608668254434453903984629457005014842193277646359133039873617464436803261546415838439723633124114082441315568620573214140644674058193743737118484382689632936795237967986456875852866155745719840797787986403437126458538691356106674379780450755790705533280522896358282223563063732130966938935926437982943131189896954862765487111756260121170772432565702722718867601764556032835500853271296649217187815470236233984448523453958431254925126245585568800822264072540686599518870888956691156581646631750822223057887547539414672937572950205326306524970848495840125919144140802519786193560578465953954993420484873791530106897309615234790060086190634167392936225498044144707159281812178418926893153242847472803187566640098438328008780611949360629056345616620955542809522583042742442106157489082031787528317499445623204037927547285074523429972513322258192351375762601522624032868540924835790917141994767490716676117543465259652550521071553359370796249266901468889907497442419046957653501080150850517340307170398470817502401529484036062071329793532797870573463574958989936876114701058666929498599520491463495172066608538248872403963800776013492483338676706544073185799867518420984912838699600892199576517315487953710602908107167335798128043399942157514840038250994047528938621296867036514261703589239525566641721397980024654519835223748395770073612448462657119446267773721819665301644623065557478857586983296452878477428845436151683491833443163266005209268993357333734198573888214034424443740722518936756838356031700346668901987725752016597239367740128759931788064391513731751782889237318701181289000649882434173311515455658128696828201326491189428827359905570759635871431736982527402135958989359988404232502328756448701947129888412048566890934473549949521524495987740726578114901449811554374201649110725569714687512927854029174558851331836694666190119274315683058743290524420483673528470600133644085897370917201158964768252191743362798889157933930339779625102823110265503977723128974183038152003386900746497251870256596732419379199490421837172223969260195860802398101641518275418101582379830040699899047511196293065933901912504362857475767309416158781666397755744021334920003037461230394360210807887764576340527115655618122584419241384603703529775163647471374186645594799449305050439811061479516466367243543427377555884073354419761001249256590996992714153622023084387002662108549533398958068325679829130947933860201383385328841715060459020624234770119519913603057714832224217100390408829502681687817009197668609649970690446099273285325021614712053079173316186193371425938672820472110531310401530359670621714455011784552291498729084027526144577500417122701778082984736066495263377223184938733453228014900125916267479379492701806595307878433616570045052125475027260478867697615749110035697889527725278657274942991031930840614343636760867477263402010959209852257224179960385044123400644754850323914020365022195747225871542012089547373320973890406982497450099810429571630212871974845355533339175484152195621259375137833897633512201229775930720312980678237077188104122303955360468052430906064452136287987436173511664461767781505265258765743064165947540340972985664428778742905310922024027436775021141423232480495744301459554324918645073097873209009505471146399703019382289016021746074454388894298781513615162916285209544679660809113127817606212660941866200932718437346531063237847808946311332200312135052228608355624448582960879773886788441079131261669557583357705427496349626894656229589234356126110261226718356009794117028229657309441781002403929430526537995057330029694486936939609471757569363247138739454569079071426656148235944817777502913698931434832605700537677144026414134370672525708638618563934582673676048735258848333620527353357859190150092675040056703965764239941284723599065884342851161512097102967490617866181457221498387252977378308553926631011194128943778569710866653950725937245884254710985205639224790959113639915418019800403707872116803170879371857106969350513829132305084754081204314267145534244026552147228530131047313272353132116358544974319779864519012132623280466104206244073476870094142063544835058226483362875301930216277315127232074524457499686022473847544320259155001636742173458942591215133449905022266690235384682100242617164493792174532538833785017673945284830601006568867635560975850049630107096607694281212915825558067537657530578810572411909376552220750111245977400175278289870980627517206536784943204761272800248480165766098415857651095793860483072582328381827655129957658228505830602677595167566711982078834506615868506325947074676067271077730418297272624429004018198095819309420256835312846283542479039902320897649096172492938294403421309687547099491765284791076657008700762239984390227364900743421139885519357897066466391724875099685277253137159485083236581886508585639679510209377250785845765933520041385273059370064651714088911876590709470356015007827282283606335634465993955164299606891683192977715820994232901748681657238017735743254517377324099223970198526294762434959095518791117738655470001985628577379062354082818358599475179961979507649273838800711487747368493730876969282559195097036007383155686837413675346560984123056402918363704046843641148716973218465265194414431912981778638608273723057191455623889978494146316066893573890533494523707276248359787028195882655709771343852709098031208671081954718004695634045213629628356037449500386130188738970552694311678736557174309721483932800107281666260584811323615309832700302586054817238396697079483044092208726156103489728828301397263688576253582388670738711947159692548637274784832194891771669264226893279074016691535279755997214115730507625282465494425195244421033041324996501025690626534558163054564945370543318707288966545460434355819120070388327393404999463389242161409175470724658144183483246444811139941069590085740820569117312344907598332818451720154953631782707861822402284584791425385530409789990941747279826148346516298503614492099835949747072935381922570671646813589739748926077452260209857356284114963990728505872436429373289802297260942001432075493866737436318937928491868773787450897696976729022400936521099550267576927920498854994900102655517142062620365503895887468138169868378020935732255567744833023862110520117643060233775636319097564662149325169087935458859407462034702977710337227397113476786875575208180694521756065714577139251493367570545526545512725296249423276728849337702251508745606862358019533239607398510816117535603440183672471221230758589630704914127722548134151474414232414534949296830451137307383553862371414605014230275571840136652529556414105937750164229772360377241017731526125503552250889187966370351212865532863053480466491816685823777384884280148977895687267278690956189727995032251963543887529767072400193715185295771935916408366267450269672107119462566005352428024561769253956695067596205171955594494041713112745878965513389264487942388027123331272099680869176807863194793387109596366060952181812529757838560619273057345089973347669557228535900510827666974388474363055081717358335320482292508609917062630373477643727974086383914739773892803522188087352996327760208709168398044877261490801308861399322047712360771121714498576374715838876653702230122343638710731688897829351210726217890277404194185144913538442174494729712748928291622489364289333453688510822900783858845987200298810021689296822503946423920279531651736116296009587413006527732048306573011008956452102077431460778491624236550830785030265250707009866754229658021967925593722232125245546343326357648419800156459460526546177487419039582621447202573987353115522914028218782358368302213929220738166870472657402017829602375329173920288397359300252593052556546132469185753360424693345696989168035637948960274540467432816692569489279201137086047885678091113342385998727517842775202845781307860588286282836041374176238221918888228623356818053752303415811639738934844175237755420308976584636714845445265986693995103344947262267583709023169724889706595157861292520991547220636978827774843223722538824999529260749157150841274022668767316058090991768584043873504933007920233362258136979657150026653697913637503195305216806770484686330128299450238023749475412401026596035140150799549634650470962456455713361381778288839714202848373189999497073944805840292462197270388843319141045916742415804737953003259365843944859197012190352923115226794480283121528794373790434300358492428002120476465252814423157541715910154750520602362198491519733249501845590083372404108939029244504229861840291140476359402220483859820463273207031891319653929867560569058571901982896205913011080338349183070036776636183575418000102217493663600213325944176741128449246196473656283052163072339222187059799404338529386036847019636323903605496136643729973077835066733514017469170355134405830190715374808852569851858504407209523055645731208785297970354177246340149070656921120220889046637381618252144773254017384639988515597173794044495843450989402555459767584108721953671805959023631692668822779205909119751597437745854695688200405237538649748459620550335275998356283362473531970144198584296136018389672132370044369866012465388542902057767452567637366639932633512282975474721354339826012224182513861484077640839252052559409246921909760928131218811622455724400923064433648706142395638392616480825985979745843526323736800803706089393271294877348582981886325407046714386700306091053064779522271698965147769365836558210032227893497478847526742530528904147199094858548883081769785284897696291420469788005989013964120699645943563767871729947449987241694069558073986309513980054292327858037565442496392512220872131312003701885326545533481298545595657950650776694054331928748372286041567910019553591638386852847210943579998635605876503272646208816140646444715629117634922836291705347299703457239407495495951582332848680376706820719357799450729236386575084161075496980185640630890664474830052895739669329640706974343709005421754359696679374812350245327160466485513161706224556028920966061018377857116807771790708911537122346479607590000351372463022729736411616068739070562961549960727960102822495609935833255657173100985518127755536747345920487229434402156258422533412264555222196602119595146670261781789018218135879299087425756859944138366248707341775059289584077527183124585850438872334806654361223062048549311751087485556757196963062531815318835791014421096078635607035488562251533798111507528497503433043837830270087155677640620971156915970857389305891961705287731312419465860878475763740212970166620488891200461916479135354426489282976861045648464015883762770537881789470964098250793084253976546033766678011914357433467211556781896856322253649751303155369879341337688445081394863312751771560650283263196838519615218827141033805121966144752280828571000069917588922809369487162987573279705127396720611046042035001283144993795290241019109202457470335297480974429191674921673559759752714308252824823709962044040560610186960334947208660415169472147044915392547654800131393811472367684775872368427380973732620616601612716605279047336738211255175857814507455877463335757749451711215541401112020317969045351838656334153760630951359161111701749695802081164931212931537718519975257613161172434909348341921425330717571667218041127276716296362816010713004752045876444531079419364679687317610248280606293569664378322069710682206803044436762394914846976364359112597239570415490048070679848365331316239477334258094796734817289471299836667706193692656881058831980788627931833157619669732971244164638764372786788679888162570665821215827890366955271341798941306099653646882836415124807601428147878017578635823025914007002322742907490769776064175816937213335159322499176441300954302081910578977773165466798519385684914348502471917126078583256419316078071490369655107634714921716765163915320959070764879715515933538062103844749945891634529960953615892540017648878988548476509847794266366574925789592787550327341408051014453540158169490873961525933010586196833235695018810942776930769344635526325679033354700057352904454011274046172444182254595006319458642086819072615703972970082169103246044240046712646077998005855577567166206186030524760833818207931966560930460169443596339863559031554971124285711083816630674579042491596211172263325182193556493390172278652604985306498731077119297237152750661081744271927174388208728506119798528117321496436583579078504982328516603717374712083280459375241568710930488240311162162562254394603085166921631438701173338797001638615012185145256686238572202643057084608180742290562512809733166340129375359754679050202412388124555247367054921419778771528253265447610815961579323928822962636098809055523285583220560566801793126976861880866772350678541331663503732699663494751798060019108163953626959422329881620189310005465918537822802277056836754090204694402306947448136159579459135774568287791167635329750955131916027953542393543110149358759495102951045374812073162942548742302732442063406559734651941738407441593121324676417278000621248582918827177218022306294495319483842931284362219090064656991355182764398720902128063682747998439975027805864805222987319268982758521577763892070574362818969589237843926297344489614602153367413840116648066603298663216188995446143352936437011852414301675063984155049069976638268535368022302972581720028456221438873080405001633023423366650086346134234416435314554351362344848826422678640992616559334410119855417356571607645377063664957329652756549806325080049153167814830404720291638226557112844629745821368809116049663502044431788622195382452363651819522315856404904528332486480943200709218957045278855206677771804552108859222455768150997566361187950313699817667321651415173987046424140222542731029410101034234183353868536697372798799110792781981677384948912751931564282282726966768956760656923072255613531321062279758971945718510382106611246716073521025230587927251125458841978624462354284615162867914503091029628605988350895727518570823483873109167415705537672929042701854617312082743509805784305198390521021962412711028187085257007444047347988514090000483577652227748947719260694017391226448789979562183253556303672451412994102529101211096620006826903935718602711710271429494179773589655593359743935983305079017654961436339048591651864365426798720973694295095845064723935066805809803342854692086541049974033797477096998439457929244638228389003783860997883760954706599057173008432183185730718226411867761914917713649290430114250903565261639683575850638254370774252207574523108620042031281114968548843472367993728914182270997411423839989666794080058863137908528894211224152532101107092518078360350359188342110054580933346012203292399035931456328004356795987266673780472369002810385412064629399559117625260248962457905074147488446792250038575206722254641517597018153229149692398960653855124342610776828709051373849396085533640193308549150477530319418887398200951301848121178605159686829007701852227989758731237673566707091291621194489083744523719210748289155484332199252928444569572846415229189535455414485480820055092277506944277539835339001640580135062726246584961757366546955891395701958728572753121645388950556319071604822095278412198550973002995025052137747490911715712515252911914040656336834573656102133945493280751823129074650122390352358489487992678214859510964069693955305917140209989711772206674929826108136928906156921622519176068106628713757945708737993864568191970834899257014935359205215959580806411007495644642915026616962449114519368827497667898335838336780767430506241618957086811885595277852032231794512023816465062810749652069157742633514014736641218219391576700612445470145991216436681163371007671530057324472248603950214413891500302244707282925422335235272444876321460733205542079308987522263627763668524811089873666880472690300842958029214289472282216032307019508327764308213579353350016353297405342841168859655349127934350081265466647363307234799017701545779814501175121341248277015124490831010824528916831545026518695468830015552603705153690605851239001081551464253372361440201029134483371317278498141219457998180218807441516054235792082965379305494046851788317907732786195680232151218907885581143412098866953862628777985941552265221046704088476808916474943371124302340436703618322264708015725931275648170999522874552171785237972287132504379567281133246641292935405558581282458854853634294903343898552627820443995077782488855989683316307105928638116702369149916885199620868918230822291112290832971483009854585307178187904735351684581262111650849229058888742164291744549881705847566606690799568585972352080762188063371381860384679308191645826617268260010765852711856202425320365277733657164949917089498375267736941480552052569503717901648207723147475420298669310142133974670280209739109628086405767980730328098585527986345827045501315511363257455456391191024216548365540283307508729993569856524711419352490356243769057828896827961910876140630712617340713706962050179675625258598410475719893181453252020778801974498198606728645938532352186492101543647728901034945497008141517154289675098085522013211220895421446009847486881672434740471382243175305222955335450458026008220182657480971645488623209543429836885447728612891561735280682458164249887199700764490927706563496210742262113313681856470589564595662003273196661681855652927765317464207455078220952704209610863927148971052045124639784394998742368576096149279363318924743364990651947548984190229297165412824119829253393217630703442391902741101335576756283335306289118746429057306633662746112184416307563702695034825663528581135576530727451924702221256860631206293986578934302623999219425248611967002192223081162322749319651624899250090166903804149828147762501324758124102644722698086864736674852068500204903509884323157234851391384700905177031597194000711837101750711058191161664196836696292842236856972828351065596069229928841092539438484279371587890082642921361365261100324813961669984489396248683461593591449327098649324633196803169733695619474006765444054359401291316143044546870900052135018028184868600658454403888517132153141247603770235481869469720631958334730938187989653426605444345399003222438204886776928467559968938125814009294089882329590074724074701180219059600709645338262625191883307028935705521439411587203006925427973384580714868221631381312486247441879515257337111408457846844813403153122353937226358983455240437234524175968224775731206088968708054704385558180041176679591940512040808809737482586489002096818750018391338278495922014683681710469037610082575394549641593722782026708793066113534355427053794509989266129007871792283732874592514349755147767061722256919167532519243155832886545526449193531005388755385354190617512101997550191859351219312505328348820921033877452469319203590932803387532558929951648056527167678424484645012575374250355635580519795607938516992188518558731363096116466949456155670418076044609434782180417573219997537249944284187212276657903541670061486999967517920523225446573124611339016525764547684122486944150265319705894604197464999288694988618177475236490864642701614872437781249534581884098836300523259203297225842858733196224947794969509445425243708674238056783495193279164060824568916445168285935388902658254543860911943326142247230604452100900259117273119802370810267616032808612882635303287513891751979616399178727973039396448860519105044705246050891709649837897922108515917724916054527099522447219868546824822393842584984199827842604204965578721412361665580430636847616303585508040876209404907724581449874855967083023033285794499587461384395635704810369158604008472739325485391109105016261241044013070091189810756805420666465541065967862616163125899766102846913034331323038481410143510210862671482869460511822325977061025087585387797842431055219188890175002223280697707261900504848788207639142199582254844046990831024393398271657420454645447300294692870845920270709865079659005780909096975455578734482355274519231483080741736873976948476739812130598057095831684679819523578670014142331911450295987411145957953537102655135730830522639224894974823940606185427138679927073032504060085086385711025527381897222878353230052986750842460255500673461680462228864017329356026545626021137586829352748637794502562969738297480999098939120167993436717803370669459880070830783965657740767313586116451072176963457606549894349089538485035148618551212066231396918265253643085014214159953605664278276486337225787642154129567960522858428778543918261446684899967558599149993183851353671567589040646372002971059639425130841564192622916803989810051189437184667689862165195887979824883550559282704412027729370608961379750852348602975683233338053942006863416099499043491968213494775175304082306574818312501970860504071265039677339181167562889858073966608379856990002054304753540340777798438314804008389753212397859199032083089523141714444089821747558882998719354722808360123060349025499791310439427820231290990771788563878213190350820278821723497597538293061178541047002116324395050325995495743111949502809245031738832287025254079199897489114216245064969441773641995662809629846775691291160577191516528891751720907249393275618498064250036319151766840495876706594613774172981118589997019114435590873824338838540084983366834367300416931725300988336289533508022999801517076826299533789398071017599630883297508601614417743513369206714831862641906338965072545420087129408477822138217696510230319044235809561828459148595005061849203575410989517585965632770833565116215541811698763326431408134164542759826407883786371734725398211298512871925373159849491651317881471801332346778421330212919421685252391992269686460417603318128948182900281375408775480674605398913051731917981507013266754146833712204199887218584845264347565157315796920021935406755105479548929442343224070026065521833270135741837230747390333494510553861060739846235467195429929193633937596069932830056742500468097358201750156320849249851750541894021145898264697834626751654885516564867757633877128541740246438008046365828766528535707960100603771308077067472324252299682493718622541010219373498853085250315898088999521168403271594138905340028510447407422207881039675102897733834377708810867230221864588957242380402891882657150989488965759646728402234055273302399637407751566479029774018181603927154908291929895644576183740004693018491487955273461792650403507873317145024502025548603340017006068877675895440174617414804286928214703301765897238047470638478123497276519132025433407868041576152782187859132133421495187791247605934269467501571730875503120049384720077092873411098794592957943373381824090990166867191196425810984431274386896046276718216142335335874077159075178629774445152876782265612542853628111959694914506659360134338198200569749554597779516176927128870033770036563800226799288438683237455391185669491691951234770056694715961344533601819475449310847244905623070406694312875464839865071908138012843080280448927777104520243663064647048805731272822837723433702304030177599173938770586213347262182566277053135686349376270722388420086821485928470461671724457365152853782105996135037613690105490567763061717909188424287959431144149099354600558116307982464167567467425527440850318270837640328291819916370336089334871896974984566990459493540658473155039528229045757598407649930987297514904111142688970936779710420424488481985935502065426014326806659574250041933680653855400485638096079024423842450765458369226304528051231296925449147285278348119307592373436090616622256126654360869065190068620474981963487778531787565741714719187710964210471142091197869419708940507966345625252446626367864420466892279758094174067203415690030578974912604761632872706290056101319242434204629558218983194509661772424500556853915739874249424653064668990735132830927563005339965555187651661471601647802089777427551222765946904618062442936074450316278123016358146662846687471780863218875543773797197542592056798974848957776103112272263357039331324674994321247963244473804479181182307467826921752047845331917966738820738598346958635033148411002288504177073598676868102899980853250241494327418761770182328431057556529941805487734891359857217874085495879090018017023964112144410724298157637139873343728118352761358107452528412430618526049577034778979008600677959607935796350534386784444706980133137327511105418643459919550405186272419644900573531813488187674047016509800650396155400583443150016983402512761742085552117630904715629642733658667212798164621688145314449944909979735298167340631841506615571255693995262986778864451345625417768199755728453419403425159147323714495051562268187090115974115352244186480756197035089696197269986329689974369734876506512723217360397570658522288276529995568768305595695241780291442609416960782721751150487303169862202720235713093512249493137709603720314120807497024255959333235375181477625842514053850688852087825764257691785781519711913940505745213110213630626548159823886146414860392081247218712676353859513195075665523510381812939114562216469565661307473118340058800063735951379064394962651665239083138357911093391175121663290054754486134126849848407830923443745709970866355503346437745009958033042421835408308318123601984026385696830989372895655235736876972565548303282691729997147259460620163483234237758168951938630385655350510259508878997856555998148509825920872604192479630354088905348641093784409843562790435473007218433319646934589195583763807097244912973424683661049301183750794508558182438974100021269599269340429518843526307973625569924731583624327352005684684727477038523293445626403277242337598607313885102389265641191792658581323824030828502249447032250739724989700047698935005243126217952570438351428240577142258857896901739621786165146406266744104683396189403591941219152303141036411306864993843779408721120362618579239501466967700080138558742179278936021964540676777230260063074983164168775671879137254882076717949755857163800085268775485208829488201157439944557398930809272832465848953179923871282146867588434599229691840575148237014417394231028100280481911043364259383521148545054068480434900037905401496386886825186510752675275160198409218926222197553139677572490679269772638183859838550108942712958841719423989881401092851961004952362183491513736133263092040090271757369212936019369921487886601493870888064143828081807744623966177408869223841310798595507659592421920405703676251361569894530947716609130331017866242447563483145397087038541436832348868544215747302804065694473221855992774536281661638527864138549117966351771214235702202574044984933266033477311036822399608749997225356331887733434958525997835676247694852281302518544280841585945720842617492082241862570747699324273647105353151849078563806573619451645971896631186551295921588769474845336810366495004599335735320990557280740576791686798203146599093543793170081526498243202903723254749463333192989188025074157852825343975851513765670502803062148173282401105302932207307638993676563363909931630341760599557758046820121893876904810411091084056442834303478996442407589313221392185079187136049907959013247824370863449761448080692536640621769708893157638387295297956261659747842274150805010619069714236348834226350274315712761793702148849787118052118909427223429618282825186219798490184649984640374984186824356744034926241922875331582946021944659913033406687990806033156170338340735789853244339287631627166129793538332617068895930961358369467064693940619195122446338061297971569587533999743323220851563756639695660329184571977984369880000464514320221379384995861839186669090769823434314609200332496013276522394428942049163999503967408782341690483453665768517592747714484224236641946123271853412144646815170420880048110417511199044424364595502697333683586094044405077409816187412216112715090996157539417335535565775002425232830633035763236163216072219287389709403903646223759335430898745690158376713924349275114951082707065876340591017928762445128516278529567826838431724077554039544893193522610610901000068739460711876362964879010195749773767448934237117549539296724347332143445396724525492842401133948504287753075231641874045592584625427170754720514753682935365903530097179476057987664787605794828558146333459898672351831675833590322526564092179040068292556156508965656953018106523139995781511879166450288183890014340841083633075216608061186729949951973442120950903617987251370868089594360822973853290446877575106175980162315458336728171320759425840238298728134046761969576364501242986313424368412205411364571300349427784671945483377247046142340784687210559972132075103571397671632992519324055485666504260599078168573166544097909900918495501431075209222125759395121359327770938743590998158195090713924591256259913533543636108273853752938184276005037698409415626871556267286151358256681836319761453644960506868167861428080666934657447945322167144005287441779275797965916772263039756248559122969238422806571534207954031957029765411589685353752731104374497670147047896072425045467866020192817968929003915811985864694507173745215560604732310775743088047645868788888881121577057214627554029370159978046842311715379330964203636506429781605351736638230445236678297120109718290044860758986007779267196194233734700704047646878242850934390994256643501117828350008248274204762418487997990505478638053816737273098541976270433172479164772732484992065990907798648138555429633998039787127585521631724939745132492700838738127559979016018211409059376625775368858810212123794696000306119664117360044020609347411764089984252110748050240935422137238625635369997963393852116706409553790656917046522722262509105242417170943025235761637080713399795335351617536086174673760788661727588671043371655921544784358664601220748406096204012578320960576383310309329602149448708373742001470260450866547451289576427966032598493910105675886007014459106414277360555572106779312608899334697402483407331244587014203830075361445932856806453719539596414512513587916323641430793817809017288538374340073022740682774853471470501766647385707203582697033636809564931710130044921019402373155824833684913633318265188932596859536665771255208631458369221558452325024009756784938126942535905129422539997618884724369137938818299518573850414919739795303724391714131902076708171175423152846838751314652577618207042858716165353295529707986173568046522483029095025816783167197975939341207398234170648106875867971203655286121726905528452688641506434740599150314969403354870549357487139674466640428028677030564199713602822445744920621760900875756969071735472391258035267707883700244551482473524901058048518754697620062026794408576077652613042011299923815976706344039980231951008751124401835703832953471372463419005713975766400123788282228800091900563918030528210575806871832669314990945941999630375901884491965365076870726663256873547495408590637090965762822774076291688778001240760623470005257172614565953491629777049080789165898169087146183658732032987423813667904255473678769153121432256584649382989112180889922503374802826377953095648224860616926243888873395818451018340003779352406024876277534243364061524544796523835195943262438328075185517997880472462645047067850300784692772059727908101628692766090031270349520138880626048673621672697338783737992176139846930344543456737566873382199610462993744810965348828198527183098113084054404831435188554300172318188224036895593517122350018573525322523911280024864805133752697559328978116742336341961917800799494970433794630899660565397624895622584982741881411533654941346748685793228946457015414012084965230348781114890571396186176123067612702710764959834808528365477964500938607133942837031667286468141839528802593954928584530017644054085535918260409258972915841879090496944545152246298215072067330013802890553936477755459577179320224682130319376840515174550712804927453029130650393337838359862186537214987614125165706710975694760594084683654933957078542285553952261808452559093207378031848686354575340085656786324587862083576320259575857145313288672795168665370926272958143747265854515892982390804386564431885827402946641053077489100046321141574046602409421093717432064174680101854674972325100830178444264467808688436397958391378731651826612165620788875288713886616107869939322201391496908228018044142739732287282035444264539269521876907213676340173893286831318316957816171758201763847054945474209299617722626182732808001357274425636153447084829374526038026053137862915725412521112763738606483745667343827252598682294185945876817713650878184065667048922209999786071269088363513609664299716089278631561643221592824462981431952598389136103298845921513115080962660478096894810749988893787716178712663645896070587603567683946121283889049879670138489818588248347403593029254250259944137450325066833571576893214125569459437058912230224700879397652219383545222475315318461992952387447832293588685790728221493223819375900531171132142372082336054210722595499103922897740987886217878627123320240959608407994614155503773797163742016557908377850817431144125677548895372641726019080004585291524902177592262001165964107401208704106174390099700432737074793485962654755537649610761470398219768100979506788988316282392027606315416248197609936902979178034322459760272838349451625074612526569358205230491601874913022040007862582685346749638431346285449620669954879637592501147622399788318495791035679046597024673897814011034655826482896595018955973371272832973273481863210853262810675653121228644266895415877402352032575499727830355512593969776192970999966225459971045418623299458256164163804825406033994859072483809835153776300096638358480838525907350604952421136942486452108724297900208208046202815913254594624310056838565456823505038846473892070889813302491215962678550764175225457391062102945671850430860351818176847787828318973540263566524135036021984689648000368060906479989387519036530731033131318748528437646776027397826676084419679768061840811305012704572180602834102082767253606083763010317456963011749755517985313751560569833576264747235066992152856799092544837884330561892635762292749323388071394414462494391419403886980970135163410532264518260914051863741737358369842053187526637346943115738135404600328058941656666433299723806605388286106191521355708533019656708075953867760682138955180643563119172662793933812277713497212245272499779052061053046824582054134919475112842747777834071308448932169104572917351614868354472507843164631344896484868858465641666076440701505456039270850813795538173290325256402442466428575944153942790553612306712471896955526832519806228170083126935017821539927615880629964499226665564133212945173918528299567734411504787832452529536328486383384827382686171142049752350821402424177403121867578616740229427770462247062245981815146582206127600757202418488476814962451448495718701514461360442502166403214140806175279566387401327013452321668539786309496105455190472451081941514064839146636036758770855475953547340693666075081837465912596667505323732297728277911221666617984687457114290069355045869313523522607512189046830303707185425851993471919397376926146687404771642762413032486303789661607491241875640661285759986460504958785610155887496102372384119309816637361899841078735945640242245984265311535133512094515095779823348716393208446206523635728205707845012202267572454846833049845172474833439276543897715824344015851079906376733472040038673372315231728472097687249365140137794479106010183324519353646630295371890947439153773592037068728056178942020061919681702808633936903938957722842564122768557830062936967854337826087836575014534016588234364794610300483723107431270646119747934120913924619741913127957580860172131394390330334114610813142318293567387466512740531181179078483984066636635921476064912929333070369509233033933470879598158832508684228659786503525247411928182616594317080418403652653479959798152704380809594874554316564932929004625199411948561171745024805582115133835543437175277684946427968744565130807789184645582176129765664243013900533344175467071022626807333349114152758792767488183642332338875415713843157175258019047279150440377609158854575126469258907399579450105972648781368523234715273306743991160139604744799673898401660294180053508847200085216170517449376546455986103928929563227079468846172322178916578406667233281456931797483161822061094983895045293520355248447908886002753885906204071099013708089730629939369743652235910161290653496722650982419293276924963763587851383614830502208509269811293365077285144164483295284709873513101292209450604162630296503683297506878980944685500260623265929844830067184641284388921040099682216540034184821729134927843584666100559852257043552010602612698091183086382522256307661702167889959124896960292565233093282604806677020530738381297026938644669232424561141303984599133669376359924563456431065014730199326224937017571928007920881289556879794897035503927796884630745861280839075325436152173947304292370434092047217272237949116941017160991938457753932212470256035570251098287683481005281325415064231510825373050757048479750641356456053906039254827483615704805441987100763640144815212525677793864743460676070896902569447444958105400869743146702278391094100007695722036587138132153642580290334583065544872122718753088178253360692620716993803530072923316044983432757102545587273218437552641219087350966311688017875172724185071990822724389937850240513263609145747467264954855166507868285811948836545734300768033871254011422932832631759735935702721369725551408856890524934433277996787033947720344608956471509884513032996748775175168033598778326620988011265770763872623574044566216181013585740521015684999998495750982124697954962252977940597949621812192107730022510562718433582512052923750212659131095196379815246295728496114496257566527219480714636708563869227033635548622104543714966323922637962788989724812330739804221076499318751155989024022222438920014385497319332726141980177350675614774809192013757100062345333743360717500402923399752539609231909028123396377146643096925487847117565028937231948456191590879581596080029538424010237139522049776513132648200084922846471489199750184376975972670711180374087812393097983979523231264030629557924945950296275870267795765809602537652588410849002758321562200030472528829320601144107794470191093430146059378950007769755508168062715640807206239674123867312705950121900747122480647134881334408295718664175974396987877018258321408472636503128577985232733747583516403929239318036764177980522662880778807759096548945245720165474840973206444156297050191349930730670489956835757315535070813709516721396275382732556427590917124387623560497495071427410634575145237274842295060423577124334358937521773370636901976107815087009328458065582803069175238923801428804986456973241076173843042312810998933400929764174128176996117147245179272014531083659919125334535316801930674960887983417735514550039325645510309913915867725521963424413883526659817658699643615034525912693659332355537520686036324685789311777185545098360706169310012920188113262025111990433432488021848903921938728139809874275206652441666786947890708841358523457626381364381082120520758443071118630280962232248514356789854056332223162812978490163221713611895665899341994303631091374714646371151593280150916863962486092885675230886569817642505842931321825909176579344874607172708935164765948282885713516137149672286840349473575236442934206389872464390967495048108201669981786667245563136202610096190350310461184392037247222090884198762836153216081805642043329590120655651300405161527146170269425221485200305977195004721444685174381592515467957840885758614224731816202360090270685157334307325110768379195628211433415775138482359777207651677843885785587912495785202176897182911230243981411043691998139859370864667576517526786115849050964710619922541748781284146799952896852385881682704584547551515126463049003991204446265289479562703009581293289156511591034749142984742301737055817354738779341583554125806404543609970865976054696288227843378602953452616955637327625518195940885156923819603281607938066657472748455711077126187153448612543699082582090861877387021518706326418820455341613357409526975918554388578290605082883701586747453816040952621545474063100901964730066050632930703819586657688072426671810394968098407957490358010546064432349401066275534707510569467790304399771053993387278043330150551263309791796473829402560717318510132690466721141740052536219651559329319521507035895116561381180491684079918722231396626891832182890052776837155733527833030490446058299750894204260500957222905424691905314239382743597009507969496577567274034963496232468813259339327331559454913738678074412560728543510201537185885944937190484177517751679892911784693724690744834339517430103086498625426332444915827866442382768653796801476974346029526281753871831326851704221309535608841940500951849139483384413812485958661254659200398413896467531521515710433100654629404879834217035709559546554996300827466294754792250694532709783226018895521932524910094142506322961643023104974596924141017690106333952509764177140964859434646007361090469115731977311830059649395128635833090137127780024769751308685874855662357142790803142255629684630252619617504126237256782496354450644822885815855536270316563691515185371235259428695438361873422704235788567676286925696447224025757419987962131334691672352474230495977323848306797984732782125546727143642457085898467351961162404261407754172718392807887531604859153804995789235245374128351275424670807101725238020647392900450339042012503706716376174782966148019884085080496546201813668619645272102596894841855166805295147494107406711642346274792999709484431931698501153909670402480990466951123286760450270839314382851751000756221949809626901824364367386350807531728109218598109434088492868202756022751614837459595762582029448590142419888437380455336499930159469449178048399077681976619321344372248825866878231426016463890692264803701006787697379842710500962381766812686079137232995394251338123747942336159242956119873959700541568686140893936330224766265030001281061923364357163962587964509361640978228115928179008490146405565276891315416744738489578321835209984644277007662551025543754361717368109677368578233613724843056453622835418744817430989185057515784429542005854703914993288921539548342518271333248822084689340987370444010625706296475304311038381235296800262526610376917272587411085002144384366252824121716484037689248428168034240057422056130374619979820662578320063567191078181549513269632398533763839454973288454208030553059682655288826510291472817329260927497425155890780377471037400980870619456434795296584532746806531713691809913736372038739658949761884401925672138763331836304793730174794038954161059453145117126058216426643006861863271513547827718002309242494254454318831108784541936947896760833891330882295351122068818821769586796484159360667869250396504298987545867889391245762928524279183420468681967937889863112112443848167367293964602599300874016115142211117584642513160464350626383501223960406395027385227489941583212797761041875569293821056678446783439995952262068275413761317318092356853840189592022909760603073306089971201057463145102217974179247663503524888469880384324123101141535112808988876328004019679926994462023480141778732148003048292931357073492291890246117634560495346185724220674201988917338350304463380035674475251695017496970532246161709252747821029234311894437164186568583532278531935248746534630690422444418552864266695279473979143043703360706407264987010179581246752077379851508767568043057200962076546086248930112045419817762027047659464884333087874753191187363930596476486878164238791448706623233047952978423994995336012878817275076845295582362350437521063725306023452030098941468687147483207232402931762120677011130352887100943568867163284880563340381334653707515519412430983437783019403186671397312278895738007469232882139887461383426557153418114199395887706292300486929263574184852178684847189081915466808671707978916149089175649555206308395139953449931912550836721988851235825809939392996909868567321593984492778510038578685251930111837736835165379706645109001182005744376158076974189628537406376931475730350427386555059991977890059483180062981224252605426978606451358236869181708639803674984208039552722195989587427592158762404614965446681536609830260868069614036624642371258765513301767417526601662180725370659601473010363340868033417338602531008411803226600376661560490883031178573016116764613846599781869631186301092460298670923349855676758656280754587675085146797495297173759655710675387748151754405618576375456931380730099504147488828243837019280716750372058210380760474107581883049724186626796163173686904918774027001791619920796973521358029259619535178838040874911230464973623985420458020576876708266816137906093544645596675661350579848697126018898596338090616037085348083099560550719136733564897461349038954945775331025732950496271095678334233612485143953843434914524904366561576109937599765496927803956601426319676989875878970349784011039527294040445221116764222973566173630120794353460405816591601173673206444870433654561510496437265581824548269096738320891009574413733753385233170730737182332572254511988053972969405333983776246296210989788155919052736673737620242749476595532183655313477168790342899651961900328530305430778497039866752783381155593344023869191319495099057075792394607383990196487167395944508070474403442640201809225751498023143642897228957439959909909221562087115433028957775878241719315452318365959650563915292916941152843265569832166084962295085647751426551703073870669481551302080099425207306824883837858495840718543074159319055586539115215263359589976246895027855302566323642061433073464899980119475723136084457862474831766861797453398909173327099839960898391913925565968923491982413146225966945255814169415921625322908983156182272120648304702555496497311198677467360844266483933813017742061174728634377948867589570202290403846448646820423714746502188267104356358300877152498872806482520916552836271676492867248251088690363058046924224990478174811953478827586692710915367639464488124632001174914565493863627774443699243391913872929783872986705690626973413841339723548763946601911883730966122982489627567190685306674121360176602497378605350047968256449590466960472047188652678336704093230126014612046527985536080869586967386027595552657687689801712180969244602534517785610957168664956612159217083885219509318382827439799428525098378948922028076132147569182418815762551666774803250174086351704259724725303166904463822048225141206772358135445514405006465651486703118528770993870857705258795646018283700644609254699634179670705738172108740132000418779442397643181227016433145328738948288184847335152869051616133040570112697749952052451272410840027334270607321177732043001785842429280761458268951087831130584505647740072264637700472978001847509902519387893279094533127729461983353319420120392985231959512097907613181779092496476836268292310388088910315896412907723449323416957054556119268672603427624433979426263266295557990411623800390554463799009331501259491678360153472437295363088960707638160854910195516861986634549456160836834857648121624430636571403028336157689872704846910731425598328130888760792546906360635087102469090496825531826560384462321341696637374779953796689564578555587801234218558021876784917833444557858456003267807601747690692353095004975087507935177404417628697912120542322211140184356951948885859813194873975499041575606964545998712948164287631181682953612168011418860741963137659431683795151359239592769902936936895810085075798695940977852194987899897256262165797364128178841812378362966659206049601096783325431510229590775199480096915022302056084509336056736638550580708260109031488008282467169237591941398899918650604948775627679071371202442369892229734129401388884447045350556321165554587172133909275821709574234185086763772741199135483978502191149917922426965429149085042450472230263617446711501649082164865398951396136503146705547432987971890972301656508465504432798038415524947666189349752474320878777452891908966885744058597828201890537478506346215896701342325852730653157759042977029599034900264937916680663488930517512399154952741828968295900083651454612362014311262712562952453531250388733348620172001546069533949454451942801538707815145735175630487234075508582775883200138468839670712910141719538664841634146852884794269536108454904886737559748482810495697157211645477360264363432358152353625718707398398605292827537222346939573914367613424361714011685475098516619009646283918349450505492869384249223076236851039735085893748149963153567253645943069996490910029372858697117730882997870408627303936086799295641179329239043175940810499649284581615047726219183301462473894907245538451180317787359889151883195708862445953759916782621721049969529915073145260272052567611607542079270978914938107986959983528468076645322302054902894558670425252115215314849997974877282213944734227711437179785534387143569256854538551554539251772429608743672912583065729813662647835707045750917255227751093150647736026126141726542527485249249173715992866313699067629269393177178451214680569385087711360970302886772373290076564719311317005454022994027642328445536763378562306649934649752910819152400039274847652377850561258438862434300677177058251214354889919553271015886464241399557354974726035543453699194242473599276282485645714817204365364862808193148499287666965918493112474277103497058823160598498906414696422300621484011116618227568383844021524219944428714054630725072005032516015257908175251937908004287862096110851412288801471501043653431141702368961706689217366398951624869051913712138619738674166716528410934632204307044712315237391466764558104643472764871091650600801404866779160764122266440739029745069379516727436797676174803814937996584273060688442614195445334247512411890717287198501244601159383988790565019159104340585750179911252983268932902258802751124108185929237778100288037278846923508502917259975099323681834470656628868497004272670011731733683217672736387651675709641001609948586662298277739347937122617635486066883501174484406713745553375792056339300338405775748071379493016346379671424677603021733018250805044064450495984879727098208451682297583536143464866683172046740469876476723323499253623900529353243033286147063324857012246626337397592835015459013704756846954600353665445149101948134145951621900469954171398621307614313339337744246505519586345304130034088210184027751857445920476017799218934163226816511496262577401939156331075659754681021520971595969420604740755227601921882461755762405609149531438048930553726057057671811716328675709273542766744154411940847405639014440162154995351667370918532536601562558340044226907052543775978447968025224050861538815211780600172893093812059263267689018133873473285830657976150379056046190051092332283656665270721165364383432576996792248133191132883433481861744010034593970816943849757893961520241561045685240371817893256902564198448489847176332455438189544658293891270050041261512625781135352655788248814553836001491245634245197777132354186372744563987750348404515919004811598036124108074467033573923085941179784105465925511624702027595402995896587203628465615567609997484877502258127098225529224276931760944477397831347975394855264487164341023876660514354174046394247978872791539996332638868740057498467194963988050072820487758783394409016134804098154683760969759176713905538987231828149740946419794904152944984392510918304460133524173309502645515703064698798581484695789719074355584685847804109159255104217751856730090513681519103085635257818490708467688277191907980511520665410643942667639069549921131675645560285693741949012306954171320804599971722164803276763310862997124053526204611902988332166213620589501433017212933133453933270040668546804581623276152439524181394264255035179580207988813219177626573569193914509821292776817278788290461037479307970507641299743164164960390251264672953573387830485725657968024614148534004071571983986260415086484948243082968553279414987974191255432077906625072620774933657738094531426908818902795286805845186957807707923676563539192768160627934969296983474577224581437832963213348020398059631593268840808589857735373277099680350108874914509449748693324228750832463558896386951900252113577102100963040890355765796986692622113625544918479073635568403884585495639390680521370470259014612710494610394079608268149141880105354329280900410566720903358237025707062457210894216450394293889679130012230468915462340033506226621539093768163589736539332632400622044339470741709869440268817362087446908192062222944820948713421101693969560745488908882363016148017956163556489188620346854790534667175913881088804883774240395503275270665264030853788788182579029226208432971135937729356304707260089527581590558137444220412765531069661704801146950804306838464763439011361387613904049154211657840237086006899163492491107409352854961370011581029586232512891941169025016841193791517085757767806757027913455224312003902733396424046442773335039539063095632614469118252390210597673758812915025865270789177778982212180593966151166527719467506220357451405226224923146925423761681689547279462389642235054499324634870839167003894789015517357027689889369552741149188875106882113743279798965904274657398916073694384312647237914221352589874099938828312267273816808944689957067188846687037593190685625595935758613774538026668557395413468708240096552061411252457240469262604351796717137502374244644216977123817346665438546074391788049879585205593230266143558355760027185207281720146358585216742102913780347658369343659726328466384853911323156629092658559278234972517076103349104630981562495154203407694120806114281582733077796572999286077775362301212896683551928101225303057199606356008260102625950374860814579992040614045156925902343705359640307101129053528345476410287360665815396456109461545486694969989488064399373624584282191690902467083603306912253983967954611648982652845334984435561960216778111268228083592894624281868951710261394468997681026260539372413931308068987594406800410415166557145527732265936415387123044509456984894440049157088620691187173512490605021772822024527655299458767513721034206193554430558338758202461901890402527298798317957596934124025149808738084284512539849650694676024829183924385560124206706453993715687265515133235644331536979252144765395431361892442619905927585854225261798750266274834688168129466472860969400476017744962610332941951905486563662754342968985223525004257004747582538009879869282760327936889288166165402650081601667809918123083204389089795117964598660262478016444766512169147140937941938341194251944952593001530158900243403353867263622774331877841289807952393699910968179688713885238661917787180074510785897456019815708565000359647195317661972493423008693889112499287389984892212435086904201824455421768112461869468259024689781095274775979361461549057994270551953691103851758044976431571329361181519100778282604340646970672993203581644217828318349038428031971684762678849806855709452496550289202869929334566781825663802539874496093674326989119539900622280326252549417777768685636900178401482078476287089764694715036507820748995929050033559828055663384296749239064406796083223677581626385407598537760872126931884264613713196645062196798083436908341965945688034392461809485240053750026474368410192941725909654543205017007753766197841435499143493265674906514095849173821508378126645307021049685804783888054136637079641823770559419566271163817694296278014800279212379068974785858716123523247268280413329396280711512144469143178283611214186427369117375706325781948426143186743234270770322972532094349789351993411643508261477590208754735233759039221199238194922151932646710866686605541685176031160467990082811492755271765524724533152898986468971579133281481271727267613956497205778347424376041064679891193910438359048861503602491417813981792426418956335801849088516614440745742102835912517596580595485171221168811276465134731833828740889373975518844781440681145217722390050909652759948574596516496634525240252940948924383182942658478572124052908930403119188547540851381652462852597082886779585091421306113323664198412743963385779308594326664477233259966450222833255175514562858915398386031445287881970371994393993755636067278387795906031608994075291090719122995169855020919505172116405320018765421738999898440063164424122567259320611651159089200365432123484978190766748562654479933359917851187651458294827539782629989107259077284753458293465864737810437694304855436696607360968751178233180983755421289424669651888765555979303826687251334838059111301014598697452330858688328529856868505232446421047695290345116057675335468094794629980392876669650513799219231881583352794455366732151700898050253693007658861556619086983588616552258855885043233644308037350516997847803911771923578613509716535943961180355106520796235530088664298553183499585218131775396125844484868136908017759190874162734383434307393382993193868029023483728133963462927369606073661974766568043712180994174048449688457947385368084119566275486446128457940833560973764259173136707549277314922434501312215990504481673849788787944207142579917203204021813797968337811399860762057862561249662389783890350906368551511187423145872961587322991783603173985102774136263214339869037833764583236622017979540316324868237781781459867452689790445257789571995652972463870489739933162999238187859136812148109844749316768309809386953980645617999027313107068356074827821968901455277996212828171063745204111662105545961576858914877768400892137703251777479463486578280338398979048012491123847287407750433628244492483668695142078927179111625442576566307140167895822997839822664242036454408005693122529174694678245732299579511348067133999240221108207411012447265727581649731899822107118084955540448157750906797886788109415344018886760922281636422074459003477099921808809817954101833862771854484501120619880954831330442112184123047068388270061608118522853477301893053766605918446181247066140867537125780625948004610810057412431169678721223125397378339950698195186312078261678754742525576676365944264733003967912657548246172347638129622051841927970917853343436504419443478801635229172183322664408094122647233912565580954135171652674234163704794236557628800674968724098047628955481253060451717413145548489172089909594911985265863937344691665801095897700677353429260932972510915263055071974153457143430891375689227099882723247697041368089319498059900081723442653235407286843696978789158548882179960050868735660183068910592506507319232508689363161074830623082886967271083202869457343650581624898577388589195661441047280281808856324352130125839036807907277861033468890385212986291220507065119123273853725970749398055638448960361148041978889743612134841283555386646010729209378890909224734445472749093267192403579631874079585448549306756224470507068926997395257421989564725875572028494656201490693389984149922087601059146107356825701261769806027839397646087771405109262832787409782905702695833396393878618658328800869799120605785870298054021210756087443889972327680662747108274849854530818210772732862521717959753155652603163320039915537248466007459767852192451877879633136605699167655788381911211538284796717188926246328949821249793241038726184841821691257181288793426997248132908917454988752960805922096699119272022323314752324099089506360853781643656316119733580703466555618586009834577216862403683144920219975749174420743626496397509810883185567006754579737610481203239251407032785830457190636465774399127602489441381198452223432639190138249116769390110782997869959393428421857065566304731863753263753817675642725242967922582679606715931035909665773984502476897068792177690808394488810569994024633319860047159285041084790627292383486265286778520328838598488097798659314698695505495534439342650279235311223591442966394737153705104860038339195267952516410172756160707507224775407594847921723990406038356687840511939530230017256591976575866915059126647881919883391802575096136658674702188432333928504173070093447517710782884169002954543798682330969712169427345367079644341250711645669027574353197786883714715329067290477241394691417916591715255562153030508217793623783632597329174364163967126492844547379077251862230703489482120190785186023726396929935000441118617079644195088942640971687760101345462802363016918695272129304539787109349099107474435615257142838477932074019673358685990591838080619053823688219332725742447864779641021226074417550099628556871232963547692411834129357832399545943535656977228496175110043275978886955235090226625923209921566261721077428834902390190198574543402584595359523737316501152568338257848593763995982048572506654795412024791045149485500559467708888861727704617637230620304572585016145026765985462991858915279809902472391881595692194988444627999539414575848894913378671212699869176516356865737463042149397550026838357437430372002420440948358025714073805233945287948813949556462210792340616347974150175141931621114894415530105563490090830703085443078141449442366952683000795279136969835079337274444677242450465701367491828733711012122474743991493962517177332366860496485330309010024089592328692848859116128509437722549054939603187493489698935128508906692728044484519556927120522037912050205441575415727832685828328155551809165613060824069720380741152622944363968835840456984336354581877464469353780924045225701162175161222801152092176408262199894996952270739717666120249772786948876118002245629841003942373441366610212007461655795406890100552930909014695222199814758613874582925404223213758770607533982955325042932022734862830476840863024726706723492301994062304844376814041787870920181634245353478419407284784172658837974430542342300574629061657277022348628585517929036672048092066867485400559126071188957957936515218473745730592138673572304972751017340647830142700441193588996884388477813919556576872587530917310571179775942447585632945526994698892687117006677726660376489615275562911053486631335620563593188489465980349112076284136154037941746423487995372940227647417249119398650284436209347214429977248524365991370659720480667063576437290909184027852008394143243348712060067983949811429526525650783250252570027127095025221709038169494012930648983426495514909344260080148351179759933288458372610024081719177109562631970200386792278012354948401123813623888156001078806418064064389672328668009931253113768083770738020801407035121561101329754302224737647820886737021665131243124789202534896201728563816545946924800887904186999582407936698818011497440513347572649133501692151324634730696729497936961974340177448467743678289117451931410160179315912870926952730103237234233451970334817497829398594564321882587676108373696321030413786131579319795133003995762276311212634518365560850570610433149003791981403782540594108055811692272588990625020617084923384967881445392692512009839078392388309057187143468047144113829954007052643824123694852815596031826639101866421939165672856651764987119864781680200849314001405725436069646294008065240164319401211820824342483443712881209995319851562155001321131955686900642590676389657686974095485196298291079679198455958252885376640233445771958745905005988079098893693569712136764215056035902575429292331023229651723866743273676904395927448548283352160715236464070340753541679249701228138010640635666760012334299830158541528437292342422319183929684501073299279919837700796090881885902891236268715493975783411781416819937363559199118677575730972108612878446481198586226287788005776861466109911106370878729122350933339368374071413482697112942380269291348808594997035084525871341020467527217232510449143140779429911262348236588717756935020509569075169858116819023370875313867943815539349827198810015298957102261903006263390282056485024032001489298656908706328933879015864139854274234557651985157297308245809482861926966794840059427183618938345989929800521772653527344312227481137200430710367869714412959547207720130606771856503151752239407788669606217116952471259091264344576310125393662473583317128627790203531509532174148609476832787426840728626811113388995237998824289119655942687906867690859916228910238031941500564477751539858979777970930150470902858302806515348238544084618738685601498837966370068510806845128862612141048666566063633965576954805180749908389370964537055464439755946156620162654166305180430331642974704237395877392580939241768388066916416778874702140021836827110738550054029617550579380173334624549671980219234167729563417417920404538131001358787231280837473471581395037496051449199012311737397705036848997547991816926764960532957877434914566328325508372361481457589353065635015243473305537364385751352256872310453292580399772143055141664246893041637434833715243206598749086377142009444983700102233080661967918114268469394575409164151359323455713215379435343050064729638316570389120083075388778209868356416572714337628744022991031971757596514469869220826531069879450286262560861192890835605357911680901344060931876701282467676869499359977832307465618381540208951493037139717780972078950058745077047527512812199310517570017482488222247661505569147913124049599248701663116332740929960203479831153543731437559767973649198981883455388635991646700800114224566086690527736236275870891981344876326318165423699504346538094778265916046984736822172263006052402877514040158051705467114584922332487147989491824957980838468811870880399739138026594232340629726508166144532077666690399668083845508020935008740342631092185427279142955627484648634285543362042330474151229231246891434892541117092385637136208979011439234834610030779692193849055616169334754579364413157883152204756842207857630022677915141511995944752501739132431054204622811837201643455356036462249114003528852095309389385227965633882054010168655605270168997940284041380421268573971951686247152926431349135177877739413425000991535426420636735188664736462566560716910507764415100719719941832535884944272004982206684545497318292497134030806749304814857202535838450732612819778819973561172223834706645080478700065926568222272643905687454175850850104108558202493689203998520555782143026416435055712080690919028965744895159103778700485199743819497936451100960115058159106445506310073556082427439352096335036154127333575059475595244923156578351003927045239838164690448519218785386971448844711480339581257960012623564140555369760761801630441644840555797972207414984105259368597620144729170615234389480409762955679601304920187984440953357120301049881290093983265287464557412646955576646081652832493560929743472818556988309395743795294568943268568169835968235077716232124099424987779138146207232802486517803530124242507555883795726818178428926801900022937929399394705528480438893156092700487583582015903479707160239981739296992196857661768585927245259509196555288257551219983726131214624580451945613604855900748293695325283465317684618500958556881460651424088667699670325448659190216685737842508686415634045588178736953233433824453532404359346399621160351696044743055351558734526873503625831252025497043898965729767280380380197254758124508744622740421401555610925111780032532751072019229869982159457140654007475199950905337300161386787131062474758057431080371313804032128681911651642685444050278798899147641883019112703181514776632057399168787044233241501471750929318548445961323180596021260197311418450613877212295157536687306436729743347467730662293680894374705134732832337525406595362062072890486150853497937288244308602560736442962066030281177178715482362162003444576630083994713575276001406427692653900396152455268302526674998532851141718630893786486065470891564665949634756548673555038076138822478951573424119470545835416730337296496824829662189791396298649731208856544496309761406516622328650428730678553460697934061771084011020517773830827284305853584310679669264387135407059238781367654576844172867911312338627194397529500585517541050670309607574119471416997888353823667506666404300515238316963315100465982509948122346460264026082556924647923072768384223204068383417836745924555368966169277187062307955401038540518985130807111811894056930094527610812904521406789525844415952424328012786789326196494136748406038088058776958400935066350166495491260413287193255643293688654510708062773644365923998851384629270600060388504788731182563125000442264524946784105806589502845930776872811833625289456536150171228053814906012045640574362401590283921355434463446880004163195089681583422507829983878227242765016278208214808122916991618489555365309687516063349607254214892267122163670053610757019022792160715746481025435316550304885314540705979670052737336560200305092547117076780573949276349749784930640794997675815723915344868763857931433822319529352000794592460564071418689019677610676717339442927115414183440251408830152946503612534171350301185180334448614820663367126510984973320836470896149352065861870524623942866259334536659196901036310151816677694084081655444298154818129254892040450281262407642528860091190689042265293439701860766860149263710313927540136776339195087262827377526648305875729764258365765410271473290621605449378190997200705558808311792677173156276267611359169068464954778964626737939102371775587703019779818812784649845832228863437120544014934390386341948989288043244805179060699584269971322905495303963862870200593742286339988100813843581646059702094741831256697152180921890982784033792137577469545057807489216049051502594991222674497977918674912252466297555372429734381845137347075450345152286344180447739551012729287045002550721951410471825822097302969128091384257429908174848807717254656627685514215405204355113195622968904381370857568611496989740785798046439294831742470934143409343159341078774737172006830874176162368365038826783498828243938260114170513810622285528613736740364298619344959241313280776501557435145351350460254642747514370782215903729824518563105114655388594938287578143308284697573108715698639578607095603818833073088433756348553482676683732254337804929731249750374092559899377501556567424964522614750139149903525275871781335434005714759352102921252516815796893544132065491702634894777785578960397930678253650992808192467288310903378052308204975803942040623189823121143318731191439110847787500310468248648754614598890930681628338595084900090326473585299517929037371457716025805552237388418046686647092866500438360073003985651948500393776903959576627693217747257895716880077807562543636753772559176977238543041621902159393754548425338163611244665820003544239458315955129965521346736322625371898855584494640674225348007007893334937036115488795901307448170496059627554904545015749071104986253315820668709607348040990016663111153463391624491189704414264880796033716147067429956147039888992354890220641326329309658997097332372345307928994962735411833265117300491118206120086801226247576624977527835915768390160653078181755355671072926932789161247935050140716356018359436321006247956300787395094144146877437264574648777309561244553354090504831512217790177018780444667313141330047638281392351878926828089054072137619066729088081513273914765747761460812695394136659056310968977458020666610147444736209257602578418882753070401167954948491187096415356486181300050520328746710845242052746717429318910108990441837432606888829574907962795604392161848560390805414008195650743499113137271798294819086496150970578012040154377829451153119992053243177485037839816963327440962142722934796080390591245412749110668858001283207857583351771730627263488898800658599187811644862909701179403210448661038210590428824781349890228276270943106168769816978179010536429957856165378967740347904296930883399866729864515953184070131607194433943230955617155552471285229056470470712753908835838333846888199461238054778510540750720367198635299925400071837158137686943820375960752830156818215168089554382416460075933978051677566302149879807326239970220816139603336118929999195674608365408246918761228560570794460382311342503774084367309517319757093085095620761362670364833215404178390096077865055641496438161294642166674968427987580621967954978432066416323330473975294406702723816055825497429131714429763672064063572513560607077727392844032079888804895406347883304535000898342669594489134652692983093021081714138219366052699249959300934176914222723280036944034416482621395306383538318713222091395007020920157612091815971698936280486412021742079083508542239313968132709091921015025947770359416696577746420053146125361591724934278261974674376472628684519228378489516856706782424469007274289570493393483854851490726384271210816811319739377585693230435800584323605657927426777079689409261274582183054854152163451224319399673486812709604986432030414294013153660916282840435493719522249547738563335004023080214563766841987425660008519886797909568193645741614859067213074315612453625775812957318316737985120703471624333413722346017814171514263975484985280375662357615931108211079765566727781382560250196102195252638756841361717154222903670917358043865459941198829714630254616597301429965143953259380784552908031756428066623472163807907926656716925922709629852050404409199384381258218427614183855272461726372026115329680396049213979594721678033438906950242175434615445461192975200570172482229811574658074826483733716227863404637400889326952618161517559500224717771113877011467849215108838828453513562499367483772642442105074754237757000190806496930349320311671505206028324061338158681100360366830701513045982545416483410599643799639489114637262911224753231331025503825196867427048462362330975728998862509045274130246225461238614599135627627391899790274992594754985825375459491946527186327413949064783806575135731635809073891429685339313324511374660323227119075045641538518733777396478120404133897197523157902292974178853695663088380154186997942777802110603645735357689552332540415506621098350523649360058154261143033631247690007788114615337264985448572345441070926908794096947920117054086280038163395577615003546376060734869610382908449881610057987245214867432923198654583387382413794444020003898686450708186702191349317990615089684849945304834516704462796708083933253550572659289202424868039481748445604210570853699991138385067378617462001267952498599161453748989592757385493840230056597760290312902594751902255428129657391384135668185611432426009098278547211802217887559894907120769934147959446644303876750921797932182535043658683539388079913566814936757483363196448262215506988666130144263176648413384596323424116524215943512942958544294763541503975077417551488814927643221499894538435970318765033429516142455305455875848780685441841662896964795959838317035612735992861907401334886315164043530605866265739995335847752978205589518856057614354955139491807506297912124408485093542829575117600474546792178795424092733487444211640413845558312702135155203718158307860733880685196274674780846972512133350569450268911270215750667189051748810207313538295901401207577406905165684653887313944830325078533426533973818474665158548336649565199695606929013200629177665091716325444621767346856634958282365459366331092464782472641683449668987826464691734436051888722051500168404696986937292136208889466843010880439873786304770798741505181424723489272775324349449481522438007310129764908609176403193351052046215990459478633806802632434696033092689676830932911796290041692721123540945241387038804410220094403750380387227994831891249232854064899242906412304519803092950810643142106267929349324826966103852876984427669091730740298427085166585642709297766692665914419910109246609963644286694953060387950995144652954838330827960230976291195482583594569527461601831891029608635932744854843798509603421255016199619477088404674110592381763648694444630682725409122345528291162776602555922440284393138402490110018995502569872630286673747477709031787672911128740685116373850009616451200715302806907014931570470654298037753971455081802484993448966355591596628392127161484794874380771635949822711630864737708386566066118947946463195080458925148476432041473111833089405725406344034262119051428268427914278905394134261710888693131881704630042986440070226575465329190887435480332369309740828921012727678220794701521336514455078157216023946410372066594792562631471360658162095918522056543049886551789776163597876453591640668629043766773348608580623852907343200899430182576739831058791735319709981996143510993195839043876809708763265376232403990935493836104073712658512843447384447289876436141710352334262266283799240537329438335902558853064891539542964812213175053706309538612033823750849807732137479747286605286320498313844198093255521643056321853205682678991973983621536590519527747443705726625120558788046360762736306213743149231605248412732401257082883694522748120664598141330650797577125719107808935843204054315289812234086467052648661776297654701986048130083044774547320066024303338629393415245917638770507986477771377331186738869103365108785001849614616588889800174145839574534382938859398621262317463130832969097229200267201061894140021991462629967063967551844859816617792816827874489599612900584529307556273216127047462867940817345497189283498491601570551832696042106693500721006768968660479213135896750330057239527140520046962565482799860227907499626613201541640048304294978105350408704833343640112635550633087603705906812969143624534666176170066352464819809687254233560412422318907764078088072423911285203633250297668525071332561345258119506470877263673369540133527808881689197863487015421188012273183600270610979710006189218837039855511552109183303350539171226039305606802018320287805510969457029347101145586865200045902450171284391193217555153638835720030150062621939762984319622915532295280109605439620012453211273918198026751717004101993980422176209151350388310436370478222873248881584078278796584913600371378772118137458332046548408346454562687697922072037919773005937899107731309775202524219688236425422605723289732443635009958229586694714315259894797380851680915685236581845036016721017857774710756115443671548026891536863549472936123750892593232334803732866254622825606915194928573014251537915660014347026992780462929793051290288886770581386201737452930820942053553435372720258536954567252341883928279727815208632354835259647866675510970723641355724613731841272673045737966415161102969363734058744891975387421438906480794331209984170118831695303865033198566064954866352616753250442067526827433951916668174186366876959568693129815027363400832058860263932735554481850266040761779530905181319273442145948900865472722908465717979487436731010345037707389235165473339094886186352870638555063527055650462232236572087290778529472097530373424675353580145852618009979701871760114173445720575277779479658128451780699232060569612321172137185350655782961358409538243442257214707620770920102430403608155116629430520055360851617228001228317370066865226021232450180378362264289300486886696124657577708085851794231386154068968575140598228937784174066478134781672275995666319200950868883668080109358256083494134846454532174436374871659759509063850081615334589812976416867414425346399174733398134567925512499879134481974261657515682088402852597603543020252582479514831410345433161899591970490917763929922709357929967500225310927541044305594150531614758295175470536680859620869726684165907073500452943789097663403382235498516508296456148911639666465680522533080469853779505948301459038075885014964225224023093335760448840760910279401385970225588835900375262531746689916413248796801940440780566049868044305060067007921324639420862436862760621429770040093667963857038962704141424081244957118957773906760219670739558771540077884874303837432817376745808884281673024731569248016899607620494836047732983536286277746871372263869195757340710546238168819674016501096638746991076305135521811253610343262641377639083188105796726930518935405142723890889084727452267439958613162518242817432431438700437497969818883534578907794032059261502784172923337022342058698639182885519722137654915712123825964018612891729887243963485874820809590870769912053287867742729153650556269900776196915101252753391547191603807251890316222777235839294345796026446157332611666877005323654593360289444049805719796507069122207593588232712323642911835558232923275197751039704464642008196469690274783026729532545040062876309023434593216441326757618905218043002843965726526082840598402838444946060000433499808028964695265545307052486104516388892346637493890085109885534567367868601645544277799405453101235824740058832607143489185461348760285667176667808369955803748902261692483227634521656473233075613532107064977420522235023723878500227815927729552320944881400732138156578597783321665884858139984704678824932894958503606802846501237347909902313379649016807593014915479806045667786100538968250787676630781962476731866065409813945274573500165388094717255169101555573313977750662538128923607517703430708328840174080249946962591639025338332597234493625632604896083100032335031145821175423527872587007796422909986319368076050676225879002335902490763421234162563924972091316293603921218952097465297840778237984356148524039411813832671958872745263465094235516357100518424993592349643341524837243210430434573484436315907711905798499254813466946525517404421424456834068726424478322496578223715298525554472766385250368858705618036426682131938599588607834270128870419620456023847082222002071174296871877096585729506162233334371595131747038311368087395479306134625712829472869910323432753822383787669471436739108510465179712930580684530740683941092343641597538944038351398862575473542896594837191930993519193794628730251915673121969281472297185247081249958954348672089726062614168123398545486657942359056953820192725994397998462660013277791465239882919308765878937030265720623738843282425988997089097333912837558002799882157678874699831014186475705554546699059777523709705726230696559249328383356590710672754620632423819515929785844442542866795078350647090892942337649429136644801488469864827535221361550105976873329412460004328274807789245194996917399034325591290971793627525173612395731862705124218168400452907986144059232101727220754900635941886174807676074255610191425651312716201416691900474980826248741874968736143608748909593861468990660201153266834097089346854486644151367021544021510021168273968455403996364709993401153465687996948538456671355951646650364841687168799838934409585367723693274521787874763340889421762430727988166193883089933958162122639366003420182755139627577837935401712368716953383097388476240514183064707541284545336152184284252367205121516042936007737530242858722445327466720879767009150845127369849898921765898548107683468997543952897319785716407970291483551759224797934691751724326096321357622370485313048595219637467580920834249350234614510068649568415854076864062917899832605909809408884642431487968951168917291709598891118211090267556866551938733924771403308146201091706312422611789628778302580646380300832674687587598500963554969919959952866021778640010916371942304539792732790586877817627864335671774941655357150883635364150623882100687777609962497059828064180729038007726519046346687898976374952031957573791281498979363466435751384402210097017088333783328616684659651876535867398646816576412385993383144239079421943256893389931329867124211239665988231793862714765542788337774855216428648118054293098153575270467782641602791049024086172979350476271848025344516550345849617830943639655395155864250624873008355075328198406899417205415972075126913879235847004578933543361411902770939250728622757811902793113535243398131142464374827109696904960240610172126186616728100427266198724854732127028256248374067343332821758310532948761162582724000725845926714645165208821833333589348904280718107456237468272177557948719357589425034751913498760177874848975215670828267052964934993316155261786811641562525414654403134183213635344665131393612711695941191827448242105343843832841044263974957598875381467173223832685869506459629871792707477552781442243912168512883304216949898064110046443164518062798622844183873015714744986903118408418545334575360729571884154602124222221956377617911806057656513843304605333155344190444818962951199971412648918216131703437226098209668407734880733432086635852214937769196448885333632294157079601801354584935557336763298236354893107415748132945586327072986899933751353166745052840654271339330406695130263759495972122922109673590358423012085835586502563583027656197125983193004465892717860149131042478227637891442512595585667763417249109636510553870138428905799170681685055960790490387361705028220641772121399746998721202839941148920385216981189913196710210538979298054505871277832112342377466907917994251807448931527533776326325363896943915774977631474595576117510364296724603249708780007390526563707674448731847221994456328297583730991297220310366190087615617608725728419675311514317379373426971047175282346390811270477138196692012045232923319343468392363776409216295707816469676222697386184019153373552260071774723773682961629899654812845749714659408027421861584701482131115091625499463912635286008779033782020612262397947766501686506033675744281858374304137137663695002733829794331889392981295359185673037053095459952989608245545881755406679601084973713510337220064706521151993396437155401358815823469447526675171956966227228701376998143230878540678980220767363519009792068888316421912427580473522814629978908630233744479770408640074645878489392180246929431486896889308718918999924386572503591157591405154206137085660317719115442561582322782934977415351486153892394135707353157036040308953792735278951864575207524015546572928012844977874841864143725394789165159713546256600677081196969377639213178646716906285969698200121863117371859132537320465630594468146654464258830295424942437940979343043384742580915699623303876037972261155547303211182953571557612941801875828144206659483115473676623860416410896076645977309605967104274243536157186675983756908496202911976506305446436498694714231957838488551183085012796142371226928855703587619436813095149872121267597464503057910387538237537672303369752619494237505934210868937030793725083847882729315877510169184172423250153137369304858253109407221693018687995037171362188084313916536855139706243168514233329826826661560508831869630892389019153273901852974379319749663497304550866335207480211076847046816019165224382339450467668318581931536578322988986610096818668571881016375043075517212690323782784733287334728063818411480944017428825143674598418473085868320059595758281304740348073989092409322836641166323097371912757122394447006900644541005213557321373989127797388820264900619534368976855791186375227682831350592821841769241980685307000636460916822435797141372167420044661724453380731209373689316511128064907074816208625678802398140730146381930020187678430713121478434142972906353411152361222862108469903187509357280323312820152289112280223177498308591426632133453968350474476976570427532750557954330277784453136208422057565323118301167430533969587876573775173379398077863908099220982701813148364980678513187728143683040923473914809740533095013026356831212992070681927338215115911733743971892271994276621418048055098574129501302641706665496809027419299315079455057071917303901725639710737986444408462168024549529545804686209091202171013961963067606331135884236565035282572855538031354302415801468324911738619158120407690980201237036968916800422289480712285443203940193198924875043171252378408160352922202737626598840256908952569178316468879682319162963001255284010033599968225035763517800583934604252452372900039527451326625009031472428033700402547286889020818128145463453947027452638795762333560570715718970193916403529418409916202017717358265561991445315935194013438053717582821068093845296372157488178444313543028141508072819947391826307196359816415076791907439204685960829341522479783178655610004820697604700449524054594930858380379234337644953229650009848891373751831680763316696395886019519933256701681131136291154736922679877913049177797163270376700625549692600266377963361823594429808791646575341143597062413453618142367034390559548513449704990067680137006588777918963979544649991818989869193575896872227237042472276904639854104093919493205962035025943847062033918869636916599555075995164857710733029018539534626878896771265044671893574795212771590100395664078940205895865806347093409535383839150095113139595566549302721691453617753576695546624113858950741091431108564917505909531140508563339298658068504865810101400185172770136898892521439277413277382917395772782560107949601688810669141302150608140468830179519042151783636300938123902394766453295294191072228070759549497976865600176999174129519006354546198640956428622290841941137461189228357859105296156098391749813017471245673718698566650349884051716260454490936306143256508415118934846992393013430954122795950101081153979120158392101046627208610100627637579629570061045004951230557551278301446539661917769660647585190348475806894353396813823036191917784965852254603971017338396718449277690930115705073356112275236419575536916364103585602207369293687620434879011518354117994212408543470007835970992149213440866840158736745406858340223088880571895823933020274296562412103092797644731574138234716045442139691057719221532665121382384457258156312910059471928963678656529986199188549303320288636431089555852487886923663013038211716205109130184132686287962643571844436750684348689590188590604151788316136872018161012785190540598061637236356228675550751615482493090135316212458103167372647175092037836531404231685343763578033180082428202042300195876754546227398846564691609559174449735369011253845637621044144300641091983888547580498476516930606174917873436053313571802720795129882411462643022625765585137964908634475802550751786672028053623550366710936937632446519705358804803883502613718350073449182229177737913184699766754131924040646608019851251484943601011475490979920199799231364643078599300183597592508016153644528627463699741348581662926012982920581688644653853554098405436093790609378825166585700809729491853655616568856547329252573354381274784675480681053842358165774550440848234505278144859824521031226835637137672196113945452883204904363434307725885092396040199765361408772385747630342903176343873500185383750220132068113131856470920684315473978064654996178199473017295443774711272302853893853322687416513901695232174528909167955119532297577383964509559892957227471246307692040398930391284131811070471441106526909417760785622900980132388599022376030341375042150984107761585853706331399116438687408304298669918879729850279966346705225436539638971486089151301785892764369767131668792595268613589548177596660567612659483480988732475637319056667724244986782047004524946846252127152928290930250703458793690549135191816148352867892753525167217824622975052489887485312996454475100707344930869163862101311805080308884460504589476655815329228547436857934958121027718854940990244528186260788454275027551010624407184736827038449700514413300842914394863719880655097670088485491266133563568393690173349869130493866798799300747348982687644382134080901420662325263062742055038031765781515670523098863638854101437531079237605208378529252517147765131510263472118910783187573814574464708975600711004770517086697334236198076536026267578686045367178796585022659008641311105216776528301081875592888707569382239271335867893901566939631439128009016406934071230944498596377088844032810103974466697203099486112418150863486919629165120895067572095041380229347693840263881799435537540444179591372813693294005983434081229606610731131794943497942406288157285381711317558012416719858957846431832477012955963167872512372649142021921496748526219442420143572050230544081974867674743318114351658120538311211694431541020339847025066926991956540688782136676610656140171909267718155585166872718241858403286202585744366733694928715994877842772548224863844663107095388643325784598128968590604618500136650168825069461226696478644702498118158870635646596941386184568924104319676159493180322820777402404981320836678101515089155683732865093036138486324220619577704889560550278051734994848044315183864092139854081282456063637127312412355495502547455641508715142568395424614240057630844946961203383953134105789648501373274658710737562363685654847077833457315597820125045812063122452596833097783758183284629297189685603842555081437879661952583938790154255281983786021888943446162504965079427352298848416163585131735285943099912509479300967821975293956484164130213352925366813557494179611215000518164345669313039781672657220609539449797726400081288591512215621477675554833334823098848556471313552699755257480249742166729673778025587177224468001338274326353335488312231904471124873876297367929763326587978576763600592187595992900444753871491586204146031995769078671449497716765310897385532966772667226044469181632902645347013692135120713116157514597552591388955069492255831548896462297978814081399999223819715162075576657743717152414503398275197722010537551779743103454844881604934370012232668103151938262266860331754262416180154570789025568178432326894350237091728223765146065739993379418471725846355090297900201208680810503593982588010820465805009098565302175952029558956863205632406581624605674735418707684067523260169232623721458434364448627699552566410879239820743540676461242930121834612957864500216405088565360064937601400051049630247533089247073611790776711938285324189069244776302742690812186262760594169674987942327251589921628898422778953922092719492623157851601255564693609531718989339477440684423643839114872172162071966446384425060523162642242836492119604227970442547914568351980481032661820910160782946141850372933628031849034532635661088212567105500770339812959772011428419776838824891988720709915113559327699023485039640158998181328673862686652685915122972620579092603077376761769145946554907668891983697715616451363552500527431399716999823020753012562400341961094824747534452470174208844503895228950339660132794556085197307991461808485555414448218780596092249002514922714260129063548449797971073804425791866225901974540008211041964821386254698046628368042494603658998898722816346649911009837067399571388390952627084994615015587245978935543831659229889929551181509691077668373745039612610371693421691188106729040270520323735398304195987539244617555941524908323057307681837638188666715545988701178073857520063780259644690229018150209804042243595954552282109432069958554429799254594698642084484874086402134331416384656483184815302036246167073971049224103935870126372537221057720147156187807935109941095690701699814755527227208102028047709581060282309601568231039173686157464370753569723348221362196080160381357086762053319760969410266720591806616405039717590840955600257930118354123817107842249425342378030202137279068755509901953766514751140307304798091640571820748258414704264490401045480708685839737769015581594506283902908269966796530035512654179683622744561521112801361670976152552992857056218586344922494066431142431967856933906069636117802418956184788577300635060413414949965648403808524683574370518298432799032007180576826333060181169692435215899282900323975029604552128756838632838224819507360596065914166393096042625856003659260339214075869751700582833524106956775093953802402191846029417079200297653554480864109384707634947707984300155966657443675530008769690575369644147301460743908117619010965605987020091403716374449620108500327853745759995981245418277624609667825205944417018404768454490179538932694906739014905899309059715238517705331820293732216693785621478088996216568038499846144533087466216742255955645737186129068445415611635089469364802817650594900224958294465901185985416529278473360267043886630010588764241118237628850849246423307537359278915699474598084196347188358157430642151745596408757174066940289144754657426101260069788819760659600796469630738450684924977321251883070721613310144593368338300470573957814926922842514006541317130940881081234369846476982988997149712687473391938780442044774367859981369470076655434811509544624762252625480395333175470200503207609372914988520663431335075266995379082320611931304505815947136177738047661448382297594463852051878548230755875650779434234696839207234293378713569139688770694878537973148447128458630945470503385998055484825821173623568547065947195175527075139951654890602030329626537945422798147106822952778025373650245814259997879262186365555331488346756423835275456120248801216108599503005713706214332928207993843519637513564314587430202824472841310029612681774875838757559837904319654452298174697726303396291118895558006624194165447227023467183585173809389870476676452794779687509632608205039574602580937189728671194243620949463392291272310448245746360082230769642281303974313880740798250768031938762100822773533613877612059694476200528965111812070812522455266293998623563993520221266099203531101306205068384693683222063835792750802529556565196722120466625133329244297212637189909681544854100424100513436259481213433110110476734294477855172855419031148432203048399854650926359169236369893712427181757539819931856612583286787264800547403191341631764794901957211681792465773143358829514394890032098032567418662045493925713453286485397381887075138874669990819673037483585246835466108999702355905822061947391360804709351788519003013138683203184252868853556206148745445286463042068068306814397598813719226685868786782937111284806835296850936196641244916605863265645675839964139103962874391141260799778194660299587188399762093599480071591751783667547017236589527894412966155202199126454006923038855919862675972575374045774096452449736955880321629786964294416784617370051401260989785243572574978413179245962585932668841413332993428945794304455117095632936213998596464302141817748392701311653835516130774112294981313118486998307665572632549610905789526590822948417827696708868919971676488810482609373814374608519112738134519396233840195528034564578424147873688902796773772857673357234913829147371203655547857593905562610704548138419841203043942227687650285256966030057878913750003354190857010908566358428886356008670565419658024489983737306285806285758479685932631294696743231763840818397369229590107783689145096077872821072597857633240316691952221630391928446856714376524915588158956236549826294383835521674301310601566637720553370276163671985556150427299137235063704225489813372094700290798393634970784218761381767423758771280828537290266065030277037931395714937124783844469948182062102823280647477538807973287503094944917451736347652025745228411757580981242634946194315375163407018612986497881224128155902797190830341009573378325015432539513165919455636801193329827543810302151910098847034043381285021015083716211294591323040186796818646722322998568051522961467831430937961744957093491430582376648390050273868856681446830523806290779309653289516392150599659287583454859703772770065708587461595339698374909167673434892381737967958419971805489817964699630377751227539848662881371485082215936506660933240514226977595031355392911917812562297651282434448529690352916410363066266310005049448895674228825210323292421877510456537834623446006956874260556227375973762706107730778472450464887162879379192540970636197070557065882346574971891817964243438342405418081545782482790351826827374673380937452776069543920700596580027010091973351937661305369116453130448125469619839127114819726442553643617353696120437177044834130637617518147001676222692087449627047195763253228401755502818210795532889482426295447304098678077565706522597468849685606888787145972314974027739482592256867100047609005609688193588336404493721922883956432170767151764305064549056010328837052602289487581523750473730057163987455610328603883255501609741574336034925009567626904178362156205449915721032802800472872227881336143584714266408505792502290205391423264774091689228386996913673492922654180927766021247255351957593274590625605372243419605834876403817590385420376781015122928950856898577560472249067381897532717866452245242115791815790437153444014592123100760460343555012461024751259009371977050291180852367825439470572007004153535914135079009409933720080336782657271615623622632819126255121643873999624660503114160778278716148615519363654847899848050697815060373236488708436729191600682038595298733549729143548900608020376678443036658433044575641964237775765125240435858262427801373495505145890766250163684357720759118876668628130643007658291219070653062615934228531123573228972222158225276989111398173780044677102475474032432321980093371214424383670583313817956444753737199405037343592727211866107448798879272317156506012870649415835793704889485511754418348707939538302463672218311634420102199862013301770395983642546924521898946596189815203804139705552214304045734992371257346526961945321501231819107902393200068186647784623928218325163181500227438717427410439549331147719546014487525041876825728625084999262041588436094387857424542681631831618542317321685324085990629739798118365319865149314314042015288603380159164308555456501861113519789744350616890114358307257537762616472985648269561857867310302058601516639935307422956342753056015496724955629683120958930729755999435085074255036032320218118295369627298156987252623632683342086134117743592139369254145878929462553136223616143177767621099929229077070662733911380241891477608744515227517555502802871708031407149852050195078652359898300805441845963116731441723035680311346464329772349004219690004457373935668051367748042141278110485185689615077309842601971578414251306344866518873368709527728987793484767521514226239892608131981552017515576912178424573004915172564776808800742091254164681733389976511401829591099922638928530442956941388710411163077377238508979985691333389072502494620939673433161140657234540956767677405851966223937606207703540421991553419581165305653703534874390789474349051859535942219358056656919432781714946889764283575313794799147296634268082268595649132796896514343522473705149181347259337069204407128914522964088238520864724657332828765526990342177773457351947166391071183782707462155992725426424671845756462701265829154110152944939918612318051591984710200539966473786155208432351906465285774956474148788460371744207608261395812521331907319684489254675081265017868212734652131793249292180365432378291225235718726799044959152267348205183332911419720395517985408358858336111030396556252349134628499995922172560683388329177902286050081708232890940809601561267241040602143271358767998190930366781029851574795567849259223802235969207973530902337679258086064862555206535142458008736037252251995115495550858895209485569905731562085650961345369552556749047219617277414437944624966789463190696824813609746674344983117740834240931339147654874653571809291741949777018979647313178033542579843554927585107139220368158817276667069885371504320630558915081874515050003135975619600876312998485336761446850711806340275887132207533847144175484565379130036862578645070670448506858384316687920393689635802387799619484217404810839740265715547373798206997783009581159985105736416567399693220101499871112364416072428712872913500479533387826501759716642213212915299635075021906905482028542276160153363329771810660464877609983560819429521753379154866296472713565982911226072667314502771157357972036012963511386025091795445701647587517980685049570206929672518157676951984226294115940621574249915339897966793008305670740124385483574114958277421677072350658907254899289011334426487333913454820827990107609771976855308888288110685187121082048970728826080133562027759497596380614219174991303647218372807893664252443310757296162781687414128752093986677996624967029952087217903947108404859807978571361596899206526454486075283780572952671123507781058211003336242685899031591217058666120232811429977341303974314185379192342864724251750035344281551800789186177898541560751640782804878366255313641403298974921462943008899627586249894956106602849988003645815813981755823837063920722712752106384114813417830685731171467644077555936078208649944263749452662646636234474413569121840675187984933169285558101360875510250695840839909130201220203965341461193755565904172401640823371320503227472272673903645369750872761284329388256469585383690624358173781472791830288547765484616503120324356601643708845922858898389150668907051716657105900594204571993953212811444239047086251418255063904010155972805471822651126944590433213893282518736023903649909127363238806120168265516826379260492706597678460917700406760372107225943387480764614982916440357000064040791242918923885380657278849040793605695003559742354459619610090979989728602175750802895553837924533227024247698654077966219902079857453776167799862135565601637724811297723957799675465374312500577246747421473340008617636125642816326732578220238878975132757221781894426621918278760879664718079789930344375945204524346207372951483106127421875105119740135731837469475146134129687286815372161123770376143231905042007909772649943528141145155582054298717774650170733117830801606313297744213545130894376288042298156682948096309609772266448247540086603028814611610196548690801373606595202152633223204670451272665653866741678724711055405548876416263092824410523385621444903167670420901372249327457769975141231901099661591499151226683994766735821710100655791717604239186244313038940846916215029498879502111428364161747213333775940187980736830521598044250722541598571072471176927200506109195426677823583808553206751401595173655800470258428766160451599728097684429315858337845335748288930888652982416137805332957888416891001352653873029236905220402863693679249571279681820107631962721290816654574986387048768095846021158636406390117629372622510659266262479472788629953406620235072123308923217048075097375064876270235823357172851452902546757025406429413851653848313749460588689036704345933045113300883060134104218529219881981307005133870764434578413530571118031983760639748426490633397993296206632831756790438312497247494267322468273720223840765612871961269681486262327682143682838097745065309057740019249330253990555084071266127488954570413734584849587870883814724422706033981174904923680606040730912314580364555672349158780500976730904779998733884752826752980691720462523602218805244850935659908107339180850221125295414025231237181070564300082546406963927599329049093801175575554021240964181229824560969607267418400532882105788787415491137497374022107645629217803437840075436603593055950661688129044995334878166056705842045208538833536753731280583097340321360438165748817717621544439281700329622802221710680248177142101633233151157648791330628764326995409539720728757752011473175921136240563217929002529712384177257142768519812132506585899889735229980206227409162369082934980885384108061018462087756421170519662175912491787188357374069506762243388189145767037946846087137890223002864957836748879544110790776250389595963369245360995159512992371617731079309115350652069792532835868681255794035251910380752552380606317392161952385514988647212044553541510387053737728881419874012272849406882300713279673814191812780638577775010409155392227071197180987287230108432216904123065801242777301424527113473812057409888162693760846597523830542551523792889348344826849610528685819476387225898671624385577217991016261000544543143910983220738424837697552977081899804803034377984338290873750920263405582829394144328376109218482005412169517740007111920231953283873153966846723435624584308900673875075048850184096703411576188488564360422173215211751625960371868872858633468515312916897227270807369824355103398409773388642802179610747859890539981614464024028369076161981466762609314909130995570339216099093597636402092249233744643458605522427171144554437168348351209897563966039108867114933416237254752847756849621213451080575562612838758358847885081181600763245148551108877410791886063099666134527936540462620588744121406980898702415573620010184332366745060393469639950118873905926374476348037633039212463420650302427079207216836245436017605358067742683703390808778454081896629654259278981637299771223040190154972870559319110648844483770417828087218908127901814717637568003864359999823564907472092248974250174849314405162735767868643189467483375055380781149785015288546456018369558314672841899505601229853191356014623575663947210692054175687253340697229481946882311416952197044052832782328963997737202681860152472509899822361368906182453151555901224094016883592733575199296790145408968416642551552018327145993424957917503809798276537472764506632395089905129889941477728708778444454090606268434299779895783148185242837483401251134094834086396563821417993297558326943645664018493931778700397384529025027568199515062094761397640536840902236669955476010509525110277545495208307457760258909559695240576610117964445320904139771381596073885512789545157777573082329052538868485930181190055674643451421146062957541793655638597088589169127535493136476714290453068926411759099173190937188535947189788675305128266177593206435364561610647410328142854326553003139098153327000219587043530888806376484298345749908569873557352927468042576650110316015052882685450725864147492922313660394906625064871276722809189455523104783724009658644928252921696935602176048548839692582990901648999785808102222702495246441784914113010274627199789435204906933252526619980075101241065273421840804003142066963821342401401050676309454409812981580020784111352180086770381119629247256810538655707934117195027667716114898561760093275803348569078516846284330510505353890284988944714159146640490433083203027141661726454688788876067052939490252243436668351689979906169335509279315386509306473115114487485159863757340575903222020234008977310753832125797869816441812002903341002409897890194747173408612990690837538794393174329657003781494056503456391854208376978624753222374989428712971813455245731101843131750058550265631347856924839863767161523790986359767572824771897042306141512410228914004195581071948239568098027062455394860102995040986834753590006155530060732193510291564816557263511986216810237351627458799738563159172889479372066254825888032171142616814275748458370360323506112126354980416748095426091883585384177084895850466303973453297382937336892619780914637058763945384239590419654117465498313510520435684911100628712240063928766994697484770161364764681952925666767940123392541875814013418567728713735938555904343135742746790840110769533015460082177012025711860089069256305952364786814177887960585087743731279577061562008855692852578922891452292943876932153770785633622001667878171670342066371079374589610362410427159585895342759596102323179825836819463459463226821463255483388379510010527160798032751029100180707061282658061559833976810238730960481887032473487755575716199045497062596944882532256483125468646236798759009579298743451620875492873072770517983419019320761762009013058287486034867195186691498682673871914459590432467749233492367576310567318408675981681584961385195731168358020139056274227372688866105216969046750740555062471515475368929570695406461708354908055749682620383437362365643142455724660297545279158433499788634843919265833140729051596923219017254483904262198701890935992327409597155421663894419505193860242174317127539675917224845688829949348632054067290547930403806219904557156909578951481441349255785201530451950584527069012088840381542892839027937491598514725843288818584964206087991053505444190884900275321387161195844538539253051311157510302260527386333058993303494165021463327954476634067200419929594810468917435680745900683247138692284678487035035143526866197211499099611159091324145815263207985863568008253659893966872932837015981363303057597694883785036700204806147291096262069082185941688268864931175320897856199544523470346961157108053217615581503906288070264876244651780619971707668148475532097403815084128452088874692785999360401467617252569569934076720530071930372239440264187694273168620438671918917254903476800981515785670685006295941260524809517883396236378503191159511168693521922907010106677311179924815710255516565572634905137915533754538939245794177713048390874897920396768142914127553036876172624324400428907915818590545696950536057332223702050289268350712477378951755584924478696480931549740994583438088330530908546129408927258362024640536219927432651326026462247063196970596259929603585459348566614299675606564552030517527380187837791960515207340246602594630880916660028730700709901027215452271884699504221008840580147246786777262190263653649654645564741694257856921996829042901589231900305043902094069210975883154317103233320580370111590554964165369067446687428920553874817484745194867260144540867084862081251113175992293685847159299731762698821083713259620763013113090111780551911310290735943782770959331816893615473699196465740253469194460014777767477015102217239655187904018927868226137733270152738862941948806722748779680262369178399410870789539138636445538108855867851346464631077410606546751082987019013214508729958056525885086688942982969611272748624135753354658253447069498692728617120546352546187388189439318311486073432851134746287894407408402850556628108565649819489986853008902341973121192622863991446739966601043195660773653970890793985532165403344564623524678557344961441143616417876226699372763860747014270684660350914508753187703103134878435645436655764215605826964879055228738480498212899800881624557660759520780609069376988090388121054229552200022693289663599136919027714657799171290617263840505077273775264720053215276420881623607888961827601766906566705725057984858984092165131440475815250363411266350319567963968700885559209602596797420047344151730582993421175566485042877221510478558562669767712424049008174209104246803393806952329600291366289770870032664141718507601793033955911181093048634800056596750264417255909099735231609360631457894261444285426955013926802693336863188828035702601005650027668225681145662616400142334314750841786653010183493041992980978008476968055436518537271679893935062553730765679557678494073899825123254049744133940190332239619706851379768964655783308785373381462104116693021835755314850284185489406210133629792652350760144372633390769132815114496054438653860156173321286296449490350019650546494847266463931661241277180843269957367082897836126442862233399835087755699671463047233702062401517659076816823797863170329367597887146986012585130131682168314289294918794096469330320206965005386039637673659848461061915219599393940483351765970338939453585983530391605490818709240978420196452307848411605492319307384599905652510376329549220983827601042824234676096677536512912302939091499332691221632747534771495053915636094347899181475946414644005510292921664648003260603977599250825583685904866709425142411518509162287357038949571579644678236467653105644990395819279424783338021100869387000716943336176306670121242904928704830170830400485817336795537603406105657617712813315188594929723158285378393587743245377221647814762768337802293477539071537616523229309948498778162453365328976717398356616758501482927003279426240500297662253526199120164551848515641911749888607364628570884440126663235241111783244620246098169889303333490690676383563714236653391065265857888847510795419855806412050350983094598073620636929996386254197546274318933841739818071524276296666526130283407289645310018057963598378819226969049850120647246092190375049625809552415477262661841795172868946935214393668689410644426915530807116084211798682411698315664065711516890707696927457360234962339559004959099724910988460631262416175260217341433923420733406681079364514988605353852820205501499557707707284219917819126834606326427515596953051173047924237453012464209847708735520407302549720164227822521378798931276412709626197536971201300025693577748807910561212292326048253953191984146991828865099688691004549116516093687532064740501719818219673337541150755490660172750320141261624370862219949271734526103563120403271943065822528552584984174826098912505198427858075141108497877745972799451395582477739991239164253022192957902168683596224892003105157225283670106535521882343415583174106278272457194217379697731793321689297708061738139684185622917523728684344658266113179425679483707983580111889089458495194311419414033443437875920170401998055476585993137808022954328781362371244865325885527219183705982373945408597964740138871931122268208252192453866138389500364856703016520735846732150869939121584070433113864396030763188767935474368363625524971385115384216949674026588748545281084328624899848549787702903724245538550403416792462641536158275576189234729203159928807896955735036284797571068197888039045843224460263207872817540515185144472009479634393694286514784414660956598148263794758071347153057106637260111973453558059048529616516192390146282358464198014656051969187977281367440469825934871549638251568317949343945631302153820310285545911549549695773502058727917776009139410287939200832342368149323565978127925230612066482516184278099710675388032043117238371177590694026003831467257978889153728522595396396417818897680578288714106778766637942815521887441492101944240644150251061563403932434816281159649605211280377172692695336693780049743429576817032307876019425664079341525572570646557849533362169505959407892295046689019350256016179809682682598184835052692302123075667845578182656686787068033332265871709255681087287381945792504525453166340874438850338480245889900277981111245778309413068934749438075244723539083052353328192884801846334241838643549520779111500524239470242601804566072161482198036380770374411720087011924682628848318156719094926072450115001577591763507533878111631960513807163599996219281815450751870280068019252535207871711164339103520043010775611924802984698463288323930733094428369538489132857339162082359660332679100413444313680082672351979772814965131071322493767227573554768358276599854445377119368448976798611047097059549415151905867915273138158145974067483327645825769448726777938033521090758199472619030968505417396929954706865379662257228337946021592256957894362336642832252224743128461439723275513308361913505374093058215255024635304654373814931440069955518113064256346321708027024963852744110348501883602318160043698618893578093405227739924272627222773375153780853300010554123049126818336200628558721145912522762640809847494972844260768002419088693264446049924033793630410990644320489994119762456968161081050515379881547448696469598698395032044377505057680190954553880738351861830742048983325173418370098899982838917962423290220043453154451564126222070462286640360408477818897427953445915783483039481856889495767909789177192373277587156511769225182586639911921163965940076306889859742161035541644474142099659285886142350102953401516195705104531001431956670129158317612239055811869895760162393265922164120480983524128748492052024557659305668307862560174900335065832066072810780978371450785969486771992154156179302429379487852681960005819343723765448758606554113552113707933651768844366835651707522085858587969248977836904837624133989149911045123566661716498364564835153435565536265259909111769373562148495227978820230995340323759468760370169316966009943924354128696050866949301158036435296898789426581398001870002787369762576965797889548401001929614821438217638805032649797500391091889064296210747013093448588351355274646750991330207282652307961697290663550675130923384205498941203952336934431995483483400849944512889475338436843339768673819597618657360128183400665415989645184580425651554830236086522482428474382440955129046977666572334216627302288973238441644839928344844389511112047116987318026979693605216245159338082757017948410483460744743473966649099515853510470661003259443418847726325363613938164388186114531584272967838751959491619360411715611103885977860244819010520087812615012299930040274366467479995416170206515942180501054450691464753109933113948467392706390017124864305374780947026098631811861959188799685595648304953604678153132578940492821278861083648901027967572999689625769977975232662108555456057103038408693976988236404136970099736954718262188803949004271708795236407683009735560979652220258851858444211277409822732194455681585076862159797519299249479534359708689011901567067520537931471680890241739840491984081382453931690325790987746637660981543046626684615315584420660595538418623763019169457184594986899364272619411234915603042896033117747497751417038258327818720386520666108256724547964803863684177898491028181940398800718299259984183152833079491760647800695650018114850661685718019717977112967749012347344443095724320509826849668762057417087021945941343312552508594800563824161445008022898068005324578831634450138274284930872243136739575967602944875262864526949027912686082921045093713387624860770554020782400485581953712324645117131326251534092569662007304432658796966990602644545170981561622750702043520109540770628575393107364878407241024201587091421906983297339481352215025203597143359853778110742739621241191990129834882917497699078540694169893279305788915150038388260473954608259811742189430234899575747083471107848888837859019388525222730097323337750973768336458215980397805362449046312275902151655331957374174529182231288004860734199712260446046063612736190628684973437304914875973362266903968836584991486956916026430557826549721896044394680760341830008537406561872790920861049978769271225698651781351971389956129393910228648130360200709767582531915708343143724769574317717601403193503494831737104159860659036724586271022649296751471236407561857411994888181992245276172543147087448113710001495548915245039581209519579134163965332194557111467074317867014859471868421863958214531307641939967601545026246883636049927994317074616786242081456728357132463216569996949741022422671369417762550206084605014913420460518624272651789478820980152827435294461712500301968528466384789669925879945295988118609491618213990645876439076575882825990711632349488694791233128019596797869577444076394656092427549456157696480530676311970633802413601661607220535764672868540238653072691025997625393559039244643420424127123066270455640709305700842324481925735335346665046054303599208295346945548873572899533914515218206166493550566883422045040266652059550588667063929343366404860413127014177005096819111441466065023466313157579023494205246111995443827018762856583830962931319872619875441429721988500578985043259880118906431275706862416549735392301196775664183162749227452101814045383371138717271346682039159654208478541233550312979847701688903211562580905419027799165184675335292938954738956566305619987232422201652131176637284347015528113483062007846148818522552772342178221128035296511642240621413547523668335340494544060296434236868734701945892546282280327147615597862169870928574080734893615169883416532949382118878511693236861102773695137520965294701305229714474005158499277932026569451210516115639800203150550900639089415115839227441234641658265980473219404514132862180877594637761773813411033835697922885898565498789246576950474172016633448225794454883044268017285430668981626059107122450549278496498069941807543529982540617676814740876426026003188260683953787685885223318571027980545033198148855213054944301869267710248079720237162217573649455839422073760548772805109809045176912519619600740484672940854544104447552993007561233516439349199006198592857380099364097101332917050962435451887384556407464994985710816487494685364352804524336485270349515902981801938783269039322346111959332059755964102554796282922199289415691888298672900328081832689801311839070209664017562664871072416824721752151350140719817722195869242724779077538122037626088142767260481030604741580145458303619603486205106427709133479488497092074008808972851992258200259763893858141782193822784593057218837174715632305557118618210363590605101715683814867640971749513656681318277774643327936871738913134732031183113403198798099798057189414690749301028208672197579243671697165755057686916568395574383031985128087024980276459532044932458241271467425517685805735417909786590975839739298573667360364282494679225813900384201354250876237377310973827266186355761669524648284197249168056520076828459536629038883652156126631812423883654726036200289182946116457573295031304938716285669004967762556731585888255192972066486563054443540742469986844611500821686673767833835895057402671652123077889162300872716960213518436085543278309359850616788969273069780975236032046731922722380022338530194063323118865025522503258931778268950791040147298080504377804967109161530451860763602412372511584490304401416189815717028544452304181238423158680821220452911724246818468712999151493486456404434079400341978017092187404747286863092083412819337383694133693020051941073804968848057053178686363808282200671580370555532785661290985477655123495924790996129262180772611431964869930826232209145021705514983776372868822468368428994310889691510267646408144510261414296360987974962554390623605352967193966511090036731983427112645107954417750560043414066095542071663583535914675616889675440549607208396452214196286131112913389619920419405802620579217374546472177606617869025586171803586565335654090568466266959754839263212799453357798421067634734021475259274342055708092857421857893663090031043842247447066922392586210860957631061599279614955520400099281514659425618878071113243728834523719859773187559133299156690374283161554802698758886062971562995647810836207504047053907335018824681194079302277713655287192564933253799124696519448045122615731511957443997841155227606562528884716615233077215934067119468967281307006382313471038816011737712920006679612971493882378687593327319062560921836953692309303311647233647998640160839350998562426017725575296950401217459301616299900536976703084185473413091855706234981909714302952485482220705188913548891856443106483701332897752160330175882120455198476599838856063425803633428337189962185331997467564051270637087611122636436930591889417133241654181150132367099740467740520008049605733661762779816147373210345465532926917913135656872209708201061662037016357995718362318741900820542285913967266781535102918699641169795103063738309933564620580002798868481508664731446462059394075173957258298334699617368279469977104333931491165262294353197316613748617632818607040237595721944116056459856388919996169847205948488757462498594772245702886646524316223737232461659164673709273283613531806796309715537258183892580761362728364432059833515861128225145738131654966105608102523260238141909070228157461494352071439112796646269849412631817157283074662267851410516488238843751770262271287242696414661543638007931352569412210029422324384866081461011337968718497268771978094796069836142058739004087580682441007302952649653441790099447998796109520594608788513848872447973586771091833370067725073791581935003324586040605546790652398436180682159942643234598806259192705608122000080507174856821200117639341518317395963219320458072595909435369271031777823158944818997334377770134481507183254916394524257944959796202053273454881544180568166869866763330380722450625424536210770900665131714229978335634947784145168111871961990250061375269735258211802495437192050461366314700933571831060944759622758170570512128893155304329487951228736289251903172878435509493093104353276263148170645318760664101008312843878432182084520736755493904804553567247788530268274942494707000406834849357916489752876109607543687120923334787518777076708224989330380108312069074756211955775052995677086161638327960624089759086386620256791676741257401411989410030455819910941057529105261344219529008439712442944419170695602896875254637674155896765241615914643605583243864320074171269602992849748460937979864174052507986835642299231655481605249352441679913933614103188586792361330128158759830952722599205689824689295785157835454740407406156556132617021978197905965363024399564714196836334856776726814511742377140383200047392833110321047815333558371583814114610006105156426958753225576883011977726457897596175325880245738358378313842190002066979634811082796103357988680908106757364091366060396180418281869751008897023509545712717926856579570220362092732516291209128724116686911881888495285564472625003627053235284061309795364746615777125996758462030018356001104301831416676559624805200068442251956280832855487888048376609273920113246009795374561889808961866883375062775836264966460011840181200854226552477548295226008784142662404045124519396366448075738351252147774566879876506859728510847128056386998944996557787892944949370391110492249395355745249522943429003581141315406139671908205221007027591361600558484465816241524584085759556421857702744440421234979189217963782875791982308081211134881668462987521840381541840927635710321908699117157221220526663917603267737764187752936606190903274017723210228230610121919755291131878437245704469526280766706642231289140432306470115442045846938761552181292938808438865708763835867732507519431329480536627177591177873674165326578162115026221258751625213530582348257310882011529981065349235587292017322166976369836544299553434423501699094096111343504131382013106966112652235982202542983985567921211428947844240454172502154006128435120553002760589016860471195322191565101345344541838038555531356206460009697683676266283563533391536532986800885455365911570270146657252408671738126747532501216387595677939201729772883845667578794053794716050434606450313984236737381870224534833689787517190333459080487079749308751318856503925195042626756439313398811428781438971035550576773620317138811674996859666327675905762620863885926245148847573661664710474451487550592642783754466667679002990992149220187374966988677993021474515944213705969134028844631945778921943762695551253591519479974532184325246703340527738202641392228091746638706705240826306749129621456275741188341214926197671527271448920764485729075600883542537260247412301952232239425043380142899275793150355620584985791142528946544356217220340008857706689778873720266905531222521139622542976506405735304389756444834352523816640000403053872493168522266204969874578791859533586930340177963832992102190053752149885759637605392168420384340014229269336406399254517981957018137552579695552408198966356733243851045143561852850869649583814408507705994185527902472797242167226645981558069787414401847102385888419350425421805512212187737733340057594648510011640838368472360511752430881137014011257337994939188551949471342959183404977884957679148016235604482827362669875942368844516776599222648250100004962078926846973338635288626294283336220374976588644970470550932215072918962646778484740448449210613590304678856319912818986713301215851168137412191525810685643376655151944209619086441102050903828188029375496968366368259195266916208502493569187884448778061180004205534606456314016588203017483593198394591175413435176124472037293284114854582821717909460780777129550320922377503639789230391850700378983510266220317628955669647942302273743585837501259846338434778453945277052910381852736809047424211131523920521373796927982984682379148745556407300683083825503139607647866061490982615181815388286343295958124241327717893466074541839751244903261108995574825890243838244205938619510014570561135304728961544428542741038685441846828334774770796639608130408196367726717831592940236717336340862112007129677545145866447474632122945560660986129991758912379917729781844344465816695880046994975821320166124765891183984159408562332559167553434647961280433934696343061473587698781089550995422526991618131877672441565067377220677525174008996084040785322571602341985093236730138562716068239689686474934605354000696158421391506040203159387643810113848414300072565147781764113425018896317847142552256358786492872324228128225030601557744225797535571289400362667444258432080053130927880935549171964183099271250971830184405309342110716486713867823039414063270277281839832687246565589156193309478974652007581971234604243603414407874487754576312392188761941131933052698758795261163708299666378501517400565921409986463733514250595151593413481250915864201478555479354157408305057709807701166196375834732688497728046008720763216979889273529245493747921145895271261534341642001160145692606598539359585910092793359409714440852003267040004692644799129038850411682739235504070039113405870476867714552485277532317364129706409768981988988776908187148022366956522455617321287204562907160046449953772837219032569959952631579741691881165480433382688718543334351109011696887037142033699337546344770995277547614152236273319295828579810865836252688016298178396566242962656607892450987347569870799085272227331938959789985563179502513351345002543681397741645361173602299241201090147090070777091586925841218232888561762050544021426123035211066290769698137852348001783859674003069506728569403778177034725254170666664647994551126546465575934455556092335270080478444466474472112519685908220444324236981400229804783486930908176419039828077963542909959365647968991750114647035361723485339825136343639761399215771201506040911972037076334517504887027923031735613247281678896003738010276412432254616184773008113935499692625740838875949844128198519870260573426602740812320393043896894508239726189824985397126183821490175542839560455166502467361125159272051538283081155424754681388042222168851452282325407170125143041583458952488715469830885852297052652599777778219288392777106134169453874729353593014102400248774013750776978063207997947875942250207320144354147024350547519515007929655401506475915971902022862778517726593854378728199493122040896880041214386964011601496933473575393332678328112620003640339177781419188029945595037531969151869425626256988837039666881850163789356065640157671863757230502635964056172346656385992155960526383772555582471896746728574847442377839697710798026913336113943696877009734950774559115572844581758487329653356767494572407005163501033516398877849941090667214805621848289206966338014882331853914696958894104011152863655321579199841956403086673068081930450911360794510581658566234432940688172831509737299700026458974531139105060050291814853034847082688157862805596770101130942592928155651141024926941957666214359385797571031529182797992067382855168866867880732126473654649587419697847224305052574867778339946005453443086454066465204874629280070687458042313750619004484140395051897606246970386123172898016354692281043655111089377406802947132303563495104749414012865007195318362228778713315916611835827591171941489645810197496402593072910971537122275788360584917659949740869862119270129624732742851839176929222045640058518539348857672856479834034955731904281463744106162879321719458059283997581417004352851525128809480064156116114190707301062024258638283788740836637022314747006178897025680650678759349886542312609717196670906106380745078963882725467773362691584067898036594160891771653457333231781328958411681180763429163640513470455158894576168830978903312358548747346645217163752854312086497211058700307098462187968104758499394099515369458131527036230879317715009954282944513691789541023591412502412063045355643022176023416812676234208169626939023371933498710367960991675276407381101317480429395485201141225867126342195088074378596966831242912135384439830092095725659992623995120249970985692598273562316477380459393311429366941998098699268990564456265651450473066444446544919533833172972763487313322739259674363801517588310615230793015387038899970885435918765188627893403161929551267372769246970964972412490760225622417722593213801480152084967587547506629758868579543663613416861031992146771352006815740207554998582478695976984190616750923810701405025134335639364049692359053475673365948787377183078264697891013747968352192817599265707517326953312236182790878509824716019500918088775996835892348911973692103140721930147240214290066848172884101493316293823435245819180185125974820296494429577216653944683143651733683061824915234430954218221940255977730135059622939049099512064755143995079799439901740550852531810680126558018076531891065781105467134364749314281936284034667965694013006631669841638681982661577453638649346877793164164268488888355311762751556180723879601998224147308663916103599310417177304346851910480130124340266813605620946166987610072321466230079004176021660392258889411888964086994196084640275939712689080000043366858649090143072464947431867584618933338082275314521449402751910966866035824096184404319307818914739582501520034702242132695317954426253031259338336717200188343847783425901027808131509089444384278028974144550582763378849706473566019376603778462669354642127130780006789566492955370270415805171477647306601545189482002304904455504012267385337069974751637025399646337759409584251169040258607765842171458352147557404294193319889192826938402684215051301774222549028312028567486727004342358417800491135851513475547219106637098356140704041267435513062221004957559524517277861275846893717420375580228505587502083209837410725820376904912952307210197236428180151035476421163519721578729501695873718526088615656458892925453028274846403363387795156197672387287630872334819835798351780019341533504253084173510750990763158219370215100872448832908433398463201749820811973085968177865654900270199861523614660014901603207180510273423229577329918924512936274078637217578213708040014575575881128029555482998270717696757169709950900275660791188883144254315562178467450026904981548813408707636303299251051452977879358623740269848115654415948334707174027216146500477436467147038051339240710360690601561451098575942406022368067534607118020981958323753455292089361816338756766132089450424103472767434544402281903694195497829080804888530501135383579516249859200766972728290440746226965422491769022131683562044290810733976873957662306142266400384004623030900655801368629725719028408288901087325754892093116967001130392003504029917906662962898748372554810578719117074307320418651937081717220910634829682620382118991543345424719126849184541238176641753845409723194178201306307812530727500241394419005070406537289878393636477440947823322242470184625378582020997244901027902357422116280222204036042881007192824109732699822206247215784444671665992951024104283448893365029891231275258892123997798336157909018109589366991081999600334456709840949887152253346416182088608978169678427591512006702505218674123300183207313995066398406556404063925789705990711546993001469471363286935805992025569649110901064707901653948727771687677927862533879479840502837425855512153930807034851880919629109803238272661998874165909962507601530548666146738278737820445427665868468542209859126953418202280443659327865991761801355840545814392681603729775362884602979656802994650014976618285477520870756692498895584442558188328472068753397100038243751656720718202310413490786596135268424772467944969757974618624329072946255630825119624663959668213874792162327237894732378564926245779131946535016833920785199495578419340643812654771913062070891480552453914456686421920144770505778238812247276662579307068957467528200729182826911777578935924900655168221977427743779113292881092062203309439029579915063140565498683648232876140238775768930512571749900955717001187205643508814126827969047682646222074669073049105487703954061220264606460301334703521668044316070672083472069330265825152399202395661003014627488607799723531514734823797371316392599566612273284991489167921577348769434294562937331464708209250129860658436626889812576912117986352058721794630265494785708228186643388561245644163405019802839626088561076574802470593298891827762779186083552301875476957863249786380721644925005866156547596138140591388809415374362380851324433599317940151872641851895879746431476050280410832661361000685674719263698301543398855952193012552480432709452755100858364185316568804696803100585498713468130723929646794463526158956544588832035971140963815428367125117226205174368663829704737367395853843628067964885186251871173563344246995459634899619216880011785101546851387255853291047127967578833271423505794175687985696120045982898611706764306068576644321931183162966150954008357950894336181432869690795505310916960190851460996071642583646572594294620677656722248747558647075112085503085827439648618256079730820454194756852144343625146768386308543162118324823325647176559092083541993454697389094611485419722513665073372650548534849897339325477646619897800038026452049611210349358974696521258741049919439964387371893497252040867185508558811756812552609265590433170920208369147318966455982117330357203541549322422575197541134590667153901952399845807723182016528296524216335824251165594862536843009017252689642657372571940776426145253993610502003026233646213695476654712144731404884493231613796838093366788800836499549707285167226259183224392238750778350974633537092445435770030633117748953689978730798939467136516831210536197122441665322186512683382303669148089663346630481577402321015662372743140145678842601746029316730616561271185482838886358811360184891901281812341965742288410134270170605183141212559015952254920879374677031106242578079333609092950209954845246698617940950751455938921410187547334592645917584786151855490848463785793250953295810688373732019385948544581936188552330126686733564503999687367348312971594093022845508844265452781805420418302789343979281208163059446589041510310390179446587768852611494591110354938570889380744632361638156147712730657412273842602894364859731131875889150181520584483533747677690148397585781914485974245492619966961928799414334174826191754699455122948002690613098681436289046051868540282002954730865570756976608243561947605383476685863981923149190314091749269387813754912041805219696010857082756863009430136792420244432533924880380913402662172503549302396765448185246467918741756109636492262843566817623990469278263549123285457825963960209282234456551009315957284871835844994505640787605202813603972314933536953921524136622183630001540999114958794653049060006999069894479639704742085901021172838319077521244964216107072913764328621852561836541888566127560219262272974552183496838307177217707651330167237395786088402025413722292137213880835285110230701034525930823678028721029612103046888498151729826555268898936756711215113945132315039812228813174260796232014817521961305096196313410740393179321585959281661021063463317980554942551890303322546827632022768693880656522379481825975345827802526347487420453504126755867652386224295153979948804097910982889030181630830081454915562298617421866990228432017416521211038410018014304717701449326408566216915465990443238273262026844618717039180907686254370730926012256516490582535089355733299748832548062823451061629410081632301666762293548811739414988534544534913936352098018535286319809591603850379699645487131172072763584364663669319941965753207523486143459635531376629155538968337790434890461594223920248485256655941176018114355015980601065317888795584289509458796459402207743222417447543249325438652543714387385718856301312775510875797215240215356100650828450518853007471523739103344148698315677117921037565681451197923338352651755892114681309948587931918996834096864128061309722611463356683565525756077148264081337245428156664542364591023711960629763679716224864172153997697300550952015669950529722839242584109112082822879641128954668374516168387333815943638596083275226364783462338532523421839747025020712435351228773560623324332677986194321209398020617648850822534583993794770831154472805537265942703210743868043453575147861920800391423167641888297890285235783162896581215141857208682156325587055479647304714415504857386619810818330841530196360384794429627042835187360849474976757462769258282557475688046504078436883821338408329704640413302553354464271167314936985192325584932736465139494278547586613154089269108475970543103882482488413637615801995694114090253720629104355095298475950512538245330077309089335641100975193876167447450569511756554230395217250595829050487518814497334039315832786817432661617604222285124290185214251480707202197326939802166554287786709325643663130755015502797201471954007823013345849024982550311797845678190840026405681262096291398495083520860994755375262937607588636959541037379972786607956087336983778091033712652995291922118688679019853925960677675231376376660233746653656752056959200105010798079700727956690257184269858731997792492475171682168014267526076765371941226794510885920150488992556902180461575442385632103346063754695651723234377398119044972900015079464637151214481386569921269195992486076198641800784032865056132591320043349448683123708343991419006034509510785213078607466716793487157787305390376297060151936373519836294910233750231810169171432957720320323502254006528793035170890267755190435178521466885164662352426603146488514671319405094713894757302344085334958226192816168383542167346422069930522648439595343772082559347126408952224332440158745666063019295836754845920006941213282842889879789359935696010467170851201779171072728341635490224978392075224338978667931291712475317831673410083273469413675459811455277616098180755414014455445663063049341464169377676965606966137705507739862966009976521425642858250821550814621737099372438404730667022004420817418762319007298608353748103803886722191271328629500681658795447669133545121661710310244299509093388040985424229512120500497364519652982046848915016866651801323997589466086874701611716898166719587391330652515889675429487452818160998870304654455752271302347745398379981404558192960889927413153587132429811380508542205773042588979189396688325803811979218215831400839047997023711088955217286266578332488577654197075601687402849235768478529002056857758405687843149149644767121692601069907507822283913772447261861801665467164996536084093399455548870787158586722963674765320197933556636331245877961311805086255140295503037377372122416606983920504512750479113025893256551183407450330980101298770910217861729577152137328888142418740716390180407108539192295724647718746007501942895203482605846344303441319738863398251222486164203674879300972809842404351972708634922004227736165125253510039642783133737915741879392410776375788593428260279760688149538344227900282033665098251020306540245726600396267527079228641128876926140391557594812264646355764600204426374718078420663852969256115895837446841250665431807744851003608832393267428699898138494222854367594324766403649913113030185619310997562842975586651139976836899954570371745506470699763457985012735845247652687689821612948503166472690627486110893193910295508001276852388095783019651854554384683541146574332313691700723453359513724990530003509323469748616366304511553453568019379654930314441640200945496572101169288948780819796760603264029448074124686820150445078784414827444555209726749032516654421885252504111182206698924132254517096556146813874373173400071368488176893727780896280086013956143826901400992033435852697199959137908280193053029389980595110632040659159769186185359323757776226373022036171048384022444853028235425093016990457278654067668930645188192223171497698222756390885566977444489219606559553446658839045669379995857407705979950878956929185082984863523203106439437513468944460917852764437594419344975378216539076849947236306695925295087838146523464250406276311142386763876155795119402161505303305325677149003500609691460845332161956220519479340569362655417580952599484304518391254398159533482602838003755089838832479082167341262169004128848784283903600770317678145732453309620599109934621594195648634544359677324047134351189165095657402492034160072082516922233884292448541208480204139201219543681779226175339998317907759743226721427772307643232303235635934962520489724018151520922844739640753666816829226263001926234414697641341794300220488884935882180746074605237209567893685491281086104850281972216041902796793566445595878271355745019010143351362677142350335456748485464552385734947289708209716837862281364676434523764950276589891116751073364943710558077240882433481687023380369517599053275086351896036735323022862331961713692535724088882360184039540892728004286802635993788471902280297985840737367034751950820190958305208740271151545886655641395986193614017172617781513975256412003959146661746528266316795581130267457219207897285788320422055320933505984318948882213734807881023987052486655009387965496726959044091577710502567351135425659093641656377808491917654835695898689740309573218955275229404269607540673177894520050015153181356728598920915710998524915419527533047947896684596445927084562875351054673227565559427454834961440513142460189164840516100664020580262512358395547762381727782312911244325548029805658777985122010197343184075902215327553464089229026819948382155983428608090751706784675318247014696393661951393418058665906980197462164495738853006959309957131166699363499572259578274380594238142883721868184934556189667251264589809264559001362129727590090170727055805674244816427278942916160027403599116463097828332994511688135869176609321599355806558596233100284068125555714517037479105811472815520259577280828699332489551506726730893927486164913090743054434225189421318667519059123407360077138756541757287828232811693712201777265282770517825761253867410228342886042012091302679840732003850580263987646770051239463589239102265757786500333071418133352160950143566431321793188172177284980577011551569531232860405581010780770755022664914085551238628419200733109580271350795457776298482992807951932243517143043772307705447525447528256195361710632312934750043741690840696123287945816695630314119196480387115901978352831392785458824223625803609727285128307251905512757841386509768563123504014783836812125458617751670919226663045350760146153021898969744875729751301595618544610677246177222298612756199365729746338126112792862736247505709635260993806515922594126236726656044818352347380395511844838133488610877263275217827022025729370555762326826932383223086779678086834203912524979392100352913745349952826225097940721336196723764264827240655041167110692022112330889138303653332564549414768089285798981452210525096484183390293162847665951618630120382581400691774652055994744998978753864678519617967153959200481698963539607685372069640854782610624788237662356418493797071479223532002885809551920695326071623698695058177314157355939384670915794948240398494024328890564468843965565041822300822462575630668979616171443048248771237121598735902914223570300766803973707414355497776246145489592148664498465635473042723952692631924465219569138701577347752218257616879702995818098644914764004947045294106231776911465961762132964573806905838699744770295343698709063687619694561534982048980260878482732055944040883338242142923841402883105814349088559550502454770778539921407378113285923399774243340166047273318846396624612863967021624096017452174027396321002389333203184065985067889703445111010408668759069918085334394405838629458200955170208120180324397380252983259655518232280089758170958251566184394265814119073462723495224225139141339726340319417784998917022162342859125681911201715690079999801526573462458310305033216607736718465574105108810110288623621512567387750264985441773646867887884756205867346157070259814819543375120018694536289284534569397502713169771978995371290998495329726856605798915074767206052898635687767533066103005010309802030405109355675642180602122100828768648829343778701410605652416087291965779651783864190737977615197980986315678986632508969097558840064537807486796868289223388662632680343121597652959810496462621682669302287414133240077075034833775751835182609286055144837913232282772012667932928365962633514385117178429052091636799832347505163757036615460523889220809698983263445374308237082592553843578264900607072741541498958070651491353857278876961134093848309596545947839828444621092966108537716154683167342965420997947785440868675119831812268810973142459298511735719414340639998938938593034499079615778789677722708659172463019678760788679301676024256097064894775137202808593924309512623760478965074512490379658645565199680980765791615562649057122624198009496244574903823988052302093083102666105517506969784001702551994628341166378457328542188575148719624541707855464445245174436449724093722454678837778489347978214204877241590874277375317721581847330392095740957626110591572451831121227608461987310260778989275467095797938697952687650714630387069291160834930340935479496397395060006101963584683983279842028559181788141084711605876333869014461450918613520299643964095268928167997845235477015822691426991524764971974963858551878927175140040161221191535965971870820116805335802021805574025775798299366930442608875735084558520004305353943422894690292467025035273782819727814101999326738829427606070250146091387597843101727994163568322727378902420374189086628466139511492116371549231782322299691724420365808790129996641931978803031076327846806723401746359625833454803636178297533190034261712203375314428354754249313585385224518287072985435723972549711929636283820347527089338520527332443545091117822068041024411432580438303718794034367971284532149305953360841278989884363824254683544840801943604340364105696682105633751305140136132697781329355540979569111031214376897406889550600838949634610349502832044006130429163468580183299801975842988856412246122836080202289160535221101751813651604172409147772627399964192686663441318555936611543158552031669492923911085048658239184202122159137069394124290773442584855785592231419985866762751926797362567463065775759598133195486801167802350553226706984638643341694350185098677153787038701843080589028748197382272374116238890653325730928245776354140716470131122662332732252549243536057396742744293446982266149368595120661346455273719182442504568087904555692115825687964077144524877701304865738963410821300191895235177337332657565374581703912157188415502796428965519839974198585289009023673432303048774743529043140260365019636686176291457664103350488911903883063732074631140600076033798296926178077802471656807162687053015439497406130833425283678444722269062991106836510812676937999785176549131542365664402087830164165488911534512801916733096534476383463176825391789018521063731518034161207832092729717708590923058805844118244590028583751600744705499211985974044241765628306672143202350558406926934353484174652161465007996928503462227498066835434397355173863555180841811260457048318646511250517408493859717383666277579298964711219301155268057925661987246948467201213528547664633129212683767704176382733410088122865200552571198442170509213553628064793770185074910339477074549452627604881334175345936987155139533419977760453153732401584314011949645940234479830324785683765074129515348760361325514752132452775373172768545878625611436533884380932188613394259114313113162007699055721063755642858006237675991157706938114878459979025460828302310255853587007736876581187779283985912516505385851979646756795566809975052181158780965115402693735835990196608920002981759711264502693008315014221349700582217906777706646807419006109835893283955890734146135134768855361853367986076482685612585687181951174118178013299831874926258440266280903966460204356730564547236532011754715277946351968079468573616110766671990690884591608552866225920831574933469534821338736965388898334652440109522442374583653745255971996403034358591013336799956978595820569154216198603493741371666083226970603270295476633029245539357781547155226323021577854653363331978075729450768860224001241987373910169464577143759520994910598937296787970071563125911472941895237816172913698026853023497871291673436861933233109909916566970986568694957270661835856636764591724045416821772221509497965094874924790905006609886504558576619476144361605803713738568340874691037411684350656575824957937568018305728054177815019623406004199919682360960392739988282336415465013849618016943444990582995960504683143851971538056449531924522890713957179082542978939174829074207791169756852258493959049928261620218986197145044754593131511376125223991785519185161907367837794706374175390461653063339198271557706659605392770128511267424880494650277732541099989122823218300592968579132812512148827270887461250452328406996810789740228024886480606207894430873177901765250588585320745015952462895979285187286417627171352623217991116802426419432592692105203758292649360772747490710196212160166115790862279803235893582196648185985631384820854760568949409955566294082607787219040037818751605094315806839102992163198705283378831208216887352445623595872452927752854803847498204403246614290474226473874665926568595323817070250467003592878388591419807743177732140614362150555743032490470862995473853404667960630344375593232092874314741353690853480175324479137761243458250567817162174966483559368442962259394942316536851435221331578398624382764928573327337220384334115867474517139386730634490650805932434234280802169804695588839937509244292338817314687640916412805601510769411095270128521672047203841760688841712789851420230405982237438134536765036394121154134747250606375668476080359622451193348421114844293372249308624733782778627847561700920359837882175114414005857068767861151917792177825447396582771481897504069981111752498369627156732817303609338072793827638153546860671416111395491438847397411913128825465478392657761044814305460589344474426027298464533216512967951487817355954857472314458578911793003365747182133672711014641421502889862313921415502708812351665703895615687060129996214160361635349781445771570665931728750794777145375016229278137158577936906910101016351202375772597981080530213153017662689215835106342748509641774640227495840127381912214496075357498453548566245867849797071106227026402647249533340578423659950785733559986927938605556386994173923279218350253517946157738492752050545383305832155998306622430028723663848791710194850603949635544661821532400694451003984563566878996348138462558554653255518899433272850170217623219512920969175762674916956559612642655644292316141975772641530352681851897965234518641325983396921279677106834458365782179850585579986769484430783219892264991523115369975569620078710032512014880154581772925141833927422452761656328781867544021149187354411060062334464058473209665367615745452564162133534906456017571178416709637144814071690562724354377677355814459335113197080375481196042860663197775966567790908002880482107587370327384341527857436080341023005890800595892390971066463044995592051080490419154637065550609327894142210411660187732899106937336463817904443368019955711577461159073519165560214040280684945899672343710931981659459360759478006276666254654487094590236743046577313756128750866621078080352836173962139465390246819035666169844309054146988080556733997608285707326959873318586423959849816888014534286111251161835569300951820927041192010175838861108574641718282576591516635921848240323758255102754971540168854476632689810598804192919673322931623587561625372927017310431279218691272993217663902078515828770208081351261523376187429200145501234394829598221098293591939652578911557868743412653994902715418438776649008363457718270378223186907881869644666289041089538474496669639691513105232525329565121444130551642859638999792883105671555687999430625762474316164392715304272250128895025205701672929762598873396449347636454487165323411078267546041821873724852946503335409576093434026656000202269701031178853784032690792707428591859591030401253646569840932882653590620379175136394665767837649533801304807737982701871557299457871100571559545008362414970386934436370134117974310454713402271404978212147130790058607826767641828635284054646395113265044382303667395317330005828209468140041939949021580943422404710444116163701153758983291789062536222434352792669712499864200340350487205817241249602499768713493253107027401064440221644105665975291374350330073227486090753651001350075107372839553904410490503006582864859039942173907348692134271685741331019607006238167344482060969299699807041290003761258006070984102700251556738574433744295164827707803432891110446205593642918739340613055147312617319280969300215911693105087415500895534284425467491524166727367077108915591945524786735908302956484024090939320160011621643276368481283705158288194759516948196572142525525993284682681560811905222680674454881540667194713768866726215605707102301441188796932082018931386486360587757016437380836263232583345645004230859537634278747754119598271842676974638364598765464370550262989774888742617728969379489820174234098628270057410734119137265186940589045087907767955524183729863003776932607441945525822017833236034293364545270882139824033492886319824991141584905492737161960024857033436711977486459712093458628395135462801275243116503861667734138389965381360087991030148526302416382588942234926177773662351610417492579279138552189235419306596291125578374134085277370049984692016856090682345326259741975442517121497353688615843052552099986213156843509120787878870390970897122780223094715047853499825339444858749485606992172057855610979678202430619997853709241525941113615465054583048838137684509790482490000951623820725364357382482316729438432032723375972771126899266973651652967050217908935472007576316184500605553495112428181189043714434692557545166101983214380136688318366350632338102041176737160455791971179268132647539510566038529927302179487806274735690402579557058294399342465008277249336965674914258575743461125246189297347317418467511296602322290075913570165873369326901470461769869902901052191145212482084041193577340751563661997470697930192332868550903684107935726549566881928124779654625217049603280541658269412773765419442146169392288342569711749903779421438025026416595281308690909980151679163644988762382996221685571277843057643910969193443063175171123411187130178734645594008304694700387554573862768596481160500089817562732601011108385270215150236162804123620898020966216853803298388111084336713735276069297856211345207200161678923273394212706668258481332611219619341573791769745189936589016917860503367325487948770839201976310160846043263432459126620336679023318307734464154857186366931344987036188417070773249264840567551933759967933792578405681120966576362261243782395421661367488099175927831621738416007980655967712407883323837599531403934018915243802517472456905657908056870465165549262288972864338574827137440156178137780264374231558327232607814749745744176794814115668453085903541402706860934496753562343888055839403533809241227474021259952182371641332624385051116834692392351277622123848803741360591522841819331487706167929386199709125278959981223394568488622163959291794996296758301591572328374177241585054993332600844383442214548207975373112649829580181732158817129750757393298599335199507542302693497217367404016425834020705959979386365821829083115320210901272099905656768031131342965861403267275829659160102607696043018607915252049403113666063378592310014561518810960661702553117352584806530962812397718655073530804633788456349099031177328157782312229388204281246154759984235155405393266524864593229805855703473004994697237545075775917513186512738143804771359610303425628840456995727046460984337870932429079861425245653592941675766707572939590668863766807161909141542611598152428244633164297549931829688611126066074370371495578155494253202222272006036271721640979769765711623086824099643362226596213716989815691863333166231153837210909580447973230394331870565451241849439846369936846397633257116603872130770601815504264285875081566126503102936130648399685582552759145635981773622130354068940030881903696227733115735074848526880168527008524152860083932832911342147815825981676187582648067336512451228074683931721866562044011236563635330835835148268998268266465400760255538648340065022201722151991181755052206384652767311409836453739558470932969732940574045568252784372513895563820769955296300799505446418620391341668725840217597647028814644331674779129041089763342556973133982683460710611514893612503298830581358104629426572870321223673570786308367250527047792842849882403944833814645586440658657458872348543161936162850576328548135863280043768789984867128718123236534062414033055176013486456798001085762859675302504930835335220446280500390002755229052518053493650261849412857853682200881563459842933615907178992783961960585560593211374434118150266596439168767069260865541057114973902969990354486141464859274159607314905021806659142863962548483441856833954244402036487909768309121122587233495015762443535642425934302535279475424729419770775303247754512222430556202545274250936117667146140031931244275222740737146412602290466414993248255939772196452340686042883883993828156635204096744196216134233147152172193033328233265865694443359336754320492099847464818144687263812910509915223748652051298095741347614419283609655259279904745081239521785630986638944219811949696040103758160218585172037815969979156581891291133979245582643653994899755516956413486995487872244408446755902679882437639037650811240283508253395145665308846711806120146456835160743986034552038427999058454662317527476173889091372260618431103823094967017047163593181551309516824188219020167588466967787809547083744805690718906465127345076663456092418281537316250101902889482923423075412831262913659553353947606746628772473555067264131032005325457998541245954408246805522942256111477211218475601202160342162099042409761663617753243769872971430577176018110342524128183702922744897410231151672870019442192965304499730995482079465120369376496779914085322704400743723078539076666400343319101196107249593488691214408239252679218955106633383959837336486445909946789114236156148837071099203531565012544876125860515979197003395208919447809031236850608836325275904623480983767805429587748832833240565108990209138203377619984329550783934465457739502402214844535777838064913840712417451382819128455648769593459129113778697928177455169476008397738290979393525065150725944920557039069782236633229553297241135768319006059013495548613610891223081682573042724771159477874798863268817747044492663325150010675205939245954103278988299823659913037398075093745364736640537238707585787736017122730505268950265322833615154242808062169064922122694583550381814296400415156883642232874465578913692493792405667027118266902943763389451650843851699863302204458501630094613693858992341357211064991655832830702271888399781859615774238773618494999200022439866662451983054721674631614941073269328502473719870946681700658081657592866214799105807243758575989976296250115125317946421729759617692080226830693941946983991752778275209249833633074153840742081906886621917132184365998940964470245812849035122694412925898562006211195260420642053379824483630383256445109891824859798889514492519126204883125096877669773223407786009236818900966982769825909911512500648401272283878485970660796242577672673632439486562747986397462292393922460039932768480683526056155194322640811313698734365673300431650046139730813899808546455211240519540126277876958200490212964640047430695896513414277696125911118751904655033258800969123126430269016189697984612735733603465892114047217438565675026100027845223354841796193142162368373155238265297112882236487185333559303958174314153665311676267800049350464173923696346204335801292591952399481225442380504558527204594033671629217872506028038010320453042228629838596094863758405406736501856661638220324164066900703458749088098664709874787469194354375284127227159292826964620537138936710766907946200186981975791852184628536269940285797997118624503361271041405513715283494535188613605793826484282296912058914452009387073473093072849223180048092000372032419094683618317897462575036323829628359255093940062111174246331201462153178903633440608271204909368041994551656985597284086588638798466205021923349274400549754009930852316292154673853652242489047767350745665189999537812614301327768118725959984588688294516648967397142383308185986056554397884516309774029179273769932564095145877918602691086932268055348741611336329335579441407287033296188764887670305444663058039981029990916145332398772798957272612863018596355225952079281501268907431381660697316895803712578392248822767214273163131148542654523887382568924612352996901732002595503902163562759482280467528995141494184546786333439425536201403106195080898709978654029704773380179858516203839853673755826523116188043010450295540505619178310793619414948487376927798264173499830527905043210726744017780182641925504757765840644927953192273551699289722520253489477272534243079723085122829051792856437513390177073794037260597921990703778516062265912364664824941701360717567010096960504559227352383963291540236288102587821749637283934395235349829430485977184835630764137160427275287371257360895846030475844432009076096057110783516000659732038529688728644953961875641153681791061285840909388052188505279704283932991622924841939317415066537462834003069336390179133131227963857544129489175289046250826820196866366314866190258055299410450902335234095359524025504643284609586358589588032317659675863636579448064008803278610955664666202490402421986483766436853369757343145078824724776107337753864412582181510776248617579527886934490778982329292409580251230023809599537429908202165813451431635327905415459728699489015436943435794151051990159443670104068013778086617793499436875847065323319638329484599614907324353393013692313810192773101444773735316328515199940363487393340652120276774372716080307887559442568117019603677624009379627668306948240144246677011476931701779320351589710965679443530626891560364398871076537688661400841272757149757833727804392317362194108599405483256606253210802393129893104561899130702041130763890594651847168285973055816541099512748522313686850183178878962893100608571244020943436902156142565185809007750518358598608646602002017025976708028353663633778825806900645475550798639531817583617626888194685851471543877146511640829168646589331839824031091826506083600346320170865467061671084427361480004901057820389796047664636504183009875875529554162249023327613666054159403006078427923929635657358886851212712231302614893308547889195103333886516025015926322490779201381953918371790621481641690766746129006789288178642419388581219646749492110757125226078027352921367605864831428316050607753631786370101948090539895158293613971602491654340525052874926854733373027842365428058873118019762025859069754784881349662268502455977625260004585178163991680723228910345203211291637807079882889394178052575939732308843529696995879484385053558192665893201063855175213917867786759506161239949812115206238146469589125040078618512249660887268021202681958653243666289880710930933673219693185089084365872231947590892235606312125015356855846742366427666332634167020106869357131973598611052757602061774438898138675368846528481713053676051478335350189096875390214238411000057072504241240203560802208862049514063037591215204801372793473577238700956873236934915929694890250344954685843353446376085012763600369882936399960353471234201236982508890973797213360528273053584548353779545511648844102915704553525947592889411167210264649779113073099381718421854069880639765120682900206716416239950420643533453806977944170122356968178319428531282062501343904756564095147116049355437519556472315860449009244763035518431320001183678887409830591415058410182776185503806359769435524902353863526866826934909820494451831149973847856627000934845234563238723580876891226387781787791800333919368123349828122306672116506536105475757600648089032996964572581144878792073373472582349749677295311741724794015706096273628551958756539446477926537610507966329545242376817204310334755493039436572968643676733544806595407842883118830957646861979002122668714558756495050659930394827489077981666138639451132505622883347219840165570574228621318954448423786247764283292736357499052608555382512197301649631421686375285809382231498528832369382032751023250171505318445296348897491678551478719210883614411972337186270490798889612525487525420893722288972755024211140797028736100965811896654722017074209254308886231258977227309792515423686294385295993479989207649133141410640864248515066383592864588496918459688260680728359942833528903225682662082046878835446013095753848226013042679888003809014072547312701196306882786812517103992436110333432350761122176748315378420124865245556778654200240388802896822082248100533831932772768364357775798922081445141069678412976863737927235983531782621364890007167191903228400839257678008461754059409332953541347281406848832929227710251425075311507282284724923018932255427513826352010548008135825993788882723488676338821546540328886140302091027963228886785427004135654475318790541721721570549197374666143508464147766135817570261098195633214090320607613870650249597622848550451843724973120634938847684186951442175453792849187073186791325430824270839443608324162957122415764297774764450415345559235210193493462609045874786241682876731577426153797206107179880544925467780063723295817851093634478089225987503254624021346530789555812573722802296954222599082764368398545223850667582927605564210902065192557791765003878119637222250829025535331299408458849735874195298289839234904787246561349902096491655994247229432851329878375768519703783445668407801440378743439095356973910594218247917205255650597400317539914220347121460118279604258098621739437585165931230128933808317494328129058898724284851288362037778687015971958291958268005536332718548318767263264001720874155728677107441128424553686587981878572142536835489527653560140635730951865747744790019826231513241255751788516805967908138962041325851915828182649390451586226001567943082975042617719759768408314847812744554109705153626177048625004910312646591282986640713860876868692896658823417766013638275708732995210979665578617450382747721771365534481320392859295415488825350652532762957986822534279234347734329944176054506442912443053191182134381759353948789800951205385339365791075923741046360107650415383667859205158017961273571033247835103144415799198532902229865830185259442269193098836886372336167217405854690922227758148081113878921084527105402481101992590311170004425172051855713025347310642151037994048940070264353362661310700704677439156023280575825754430893032902211436805065419984377848224421305262549813127470736354166251674197315386206413342729672767400950211183493788033552291652861181612961496103719497781694852035026104689683604831234245862004825556783897388256072229719867261654597810784279933712416435633238072474229946336116044702188347624319474668597160712155500694904696779520772081527716101277171436840850369786475522925579751341679057742321073566558888967120344745559435527702123457975241180165001999391544490339745252472688996068296392516236164629724991723404905862358855315406439958445006694591662552337905193751530182855274526699279697167150667927662256488249214993326272529032146499102711840107231362507605043287241368055114386459112380914145644167489985893408855485035012038901261857653634970559466936867748516120626155904960113470570737065147857002302615396284403239041333740006701054029355935848896644684841382299812759709632346563428512575455386242241631553416041762130715470055964502158829873159147700063769101997228805398200247199745578174407884122656953530231016024754416036573960843037978222778432089230731751118839152591486066847216750140499485207083216168910876578611220084008248041859810959587956811342677402596656521693566751731277137866331381927949151178289635015439288891704659551881171623521838670922629162688015821842273284701119999355932682163378377086178896526355181808802406976719961748208849690054349923828802000589480056458609599993856289899170946605257253680661445339004076140637090861087763683937912873040940214071850402690900267886300404647761231044768417453187042674602668127158630240041627512712708362685971172682428645533561595251039538166668552694526297773111830718454920283880722564716966837446693768875476754916480328880085553719105240304937928676169253498863048328511315219297143321247469302482699104280208700620462171903522149936131700756579253117211898985815119602389198065637508876569276565024087930963808175835986975145477442628620267622539768571991093943713088754513651401945925261322803796640005516068403513303738146059932846117180048134522235809655600956536352167078104001672075886946167647818440521501885335155325288865694920323877669208317562935232266414886164685922379560045112112701923260577280665006915736584403665961553744210975898435001686483613769158382225345964887941076993529901100398703427160794084127887822861499418825166667675083002829170290801184912752576258466353332777679778684676833816320245161003019005730363017866996552520972105699875522948057664614278358887684784906855862557513866423663007693323255209400217310579751437214751034527516827540913466705308105017874827494143210605391520839555632010064390311421869175197508206866912023870793845089765386506560369085164125811326381681951471295952443327886754043419559059471093090677628061916842332209272922270778834339267551573134469093789316423448158565926471442225863333100452957214399239711972544215481683202222977152619139795113503299002365050877062446990757938571836525661175271573572286011161826077946144671118312935463122408551215605980500764513040954806969110820316727075916294553027458394802218217229675390775266741142073117154609152596222380879880915413745756038762724365633589378602063274004591761708539830735475213384748560840676611258120638002534787990303541011654181616236369432369785595943047910114620906151928455495334021464163480335414146080385562866890668613832591691140751616070853175149420632082360971130836749373224930901257082968117223127900788625925126041625513178599498751867654399632847247753931789543021292225356263497345279920581226921970533294919087366587131413235791291902027225669392492987080382214920001909821509152979315183257558972969786433267099110872769500013907825428542834098289850990894401212605121113008290175012802497743174410408799807996047385342540855691371011083515545750505170038209509296903392880537780381432218646818807958215788098378764860249351098718847512068453176947677705271842527395273617930553983047013998254889027694529298318877762774919060363824421184004147732045458221490247334289836534831570210369611982230956643642826434184717326271567803413705293919028364484350091056031749515465804272500927322146111913874651484454863749519166813824808723516640738155187136317579773675441779421153759135535578310382795424336385010503598997936037806315845603153114581964787240750433149993782478644406732649863891966166286698246798547860980200694867114052900003211785359768579274718811489750255425485338116225673650384256255352743687309500413701816927219681811386665518797423080041586487110041114527113830391084337049626971329352061900912728274994093863133364607357220063070701473664973995839618586507585444748975926230878489134705028844443117740888898362117408628005836120506602958721405523320528716445365131825160748730776695460439808893624703133202513274243557540471396026481445498673745294748508732861194775784894186828041919428223156525999200073705306213515105497420980230160833976488379512283867521342906319870944483684662357150229066427568577760978543295530236525049338196430604130724915563859712725745065639442318658652933096300972351201940141360322679620575047197993043679995857179462468975323100459367020809780328064998969057909665300125536171360528391210831597094884976806883277212384415721431518058340826187090242879644631482452631296578765759394065032009311240816542952499329294764030167502310540591876624282913476820556253095882744503573497492978096422001767039430430705889070766836819971666749773499500578145795404108649157151438304828911795491388186905531532032609798653810055844669940005314039404216753738999532396847038060954875334610495935823115057549086727007687087764885286486011581977760698001518440622987408569124855908479866974458909366028824498694883504318469042181177848616509268262199378097099593109766820671873841329640516783982822293536564851895424679751650218842336055859935707557153556903064077022525935645593966384339729038895154664841864197102789530543645713054033347653276820679739469265083760043751539727416320168212427656355523149358287264980002734829840687779239744921440363710678424013379906796924407535281830438939218925943047072872673511073541415441345758514160674123979377896292814449687003393449091916663374335994880770398435530032801676860226504379162750210846485107503599225452700125602827374348033052237210732881631332936876011298497984898210781742336163044941517850742464852203620813616989575583745362933512157659971757630716421965807677490486010947842126568941744527874487880146815422694949992428631875829628083360019068834047983549322981796294068223852563909583865366273684461831998909859383314027467596534355150233310161751544721486066228843583883574338204776871723122155579563351727592749992552599779824897802753257479046450801808488513792381233303274694403724060309411620437391177210248976832967515349425749756761125159963656138686564281979859797920642515619778030337853215451974438559886275439477479557106296647558807081766451261110953917884276332056399508971572243417009254700220138975810616328567058521203814951475550806366536139317945450018343390398773236775629064879238481214818111740653356174555467411648290172637191787656714013695186990149661728379284857585650442622079711728962966768760631859120436190593294021507212568633315783240000870162489006673640031778430867127154324064197688283648156382447407892991809288206869595003265418814623755986175797234579059458692732407191977473160463850415653497770048820953945539693205016959797298373906227521147857220566393509704745937964642192071791582271101064926611790176450518829299734665373597396968459161735484354614031736708682008076173447751468805311047998082099455843610289976394872412898465779047362338484102824354405910638083780036675582233376879233994197345310576440281426469152796945096167610801755921652924151720883400825441453612318820551513203314415681831901655640362602719554708564796199787845782144775476687737602290939058768853715426049939867014588538426749577365003990952063082659482922291874172849171425582574342246542607577543142098148718413449427805593564499185889166951197879639402004741611262903796969131360699660808409653207192533730858110610902681330856042108604050032376797786795818334642000184872030807824289359905802236794981012259201144793629255463545528765995088762724311676510207964077389833287532312480809000301998181845560462157288480588810338417599599531551134669253596103011577434583805844742892096296406626255257991692225338334916637368072563882718775030805931357898662348874641518899973472669587863355104411800311517782759873421907238083406414373612614325048075053274123513078496975852510895583439868881294677631192594486800682822302032135147951946303828564880437611626782982783843081380722205711054503622457642249648383651110696659025452069125119104849918901575382574122279444475687047228067412926443170158678740286462306620126440117699685896353755035867863117925951386687967207810246200185505882425881930889969914367013581341788698770978814945759092663015639247164956181358478463535103438408091732607338037511661387028278635775756511666228968059078109178780751007360229273189730540131360522113290884300184402923094616740232302870819110324115244831076921794805412517181948113871204052065659064228566212879283393050339283332953164377499753564089640090162725375979972251678525599213500404931751783505662752904426824408198603038320459248845150348857219699639958356402152571899322924259647652445946515236706245014235656812404686952685907854228703356689994098918572127085367675105391639602680162083636560127585400241324485780375445903962200679015554424512818356056787040833771719132560982433428158793901500862425208485227009437406964598232603687886846117137187154426101545758850601080100080662185546195196255962850516655671406328614020382252255517451985410516717009819387020827718979746266661388100423114810284478204959307851531284274916386716364429274483939643185165334906280948603377393545418399386189928210452478637185854039303706645360244713169016003500290309968029881660457470520266418454946923958420365921563101102485549393191782609870521759438517808780572397053052609624297251446609897446245674640707479125232723631647403730556284912264553308896075110930637379633585658701612881173005220208277462196063042998181190830523151182978664568328941404318289319806935684320504211880774632519057633955813913010149067658224533824546501101887151469668854434829752475242885101614190293321824097101807850548156367601856969147933134310170735881736506864141108550113969483343352023676754916702323508276192108683092917981773161488606126718982988485520213392930789096292098671876313980479340703716836053848652946709666254898000527939719597173172270507560883259349457559609513088783124238732493170725326133309567620287130669093144230925075178454942973039128037496715013490034471170923661570162331167856502608298880949681884081985162440844858368793848791658947821863495560151190372832305412532405049445728776457243220961628960737450280075984949428872726267863334595333267098451741489597506620331180330106776664967905293188036195401687267251804552362754471734922763182791802096090693398875846113275366793574628083438321179760483888834746973245286073524948002069187017541893153343919949931984865543396854064075333521811995416847284764795362583123358105590404498389089358167145453763825226959362738570311929325741911252554281143197087134640986587059311007907478048526209064022465388481818381420040837335540122165752193171457907827795805227053455285612081652128526067603226959259052677660933473496900318417201588541710697103709223352351193439449145784564345653393336544939981711205462645170404181756574243498018699357614029054032225093472710900006732800342012333356469797706711352471934217958672970166842004317670983172119273869745411875450372614338341316428849103843760139028968417390595055178187399264178570810755335806547157833107370570754757062780124493593784098925567577337723248712408457679685841488364035903564919875050983450161543768048996508427919904756488479925140433166351678195958172118563832742338519179942419379781664024911014208942816433413592158571492275796845556526619665147026840244387463285684358814387756674222595041872209649621886342069607705919671400126685260023210608528668780299406098771127508810463304017123198124615259123209025482948327178803716283547277221701694157288137962932672129233357794663614590086846905178837491415664316465474264016279679159184623272197777289489834364527870952533112024189671462620862585603290950827884706597054023130036446674700568483748038514343842890734248542363780087225678069932757484767111105965377051648661773960651355325609965657509779487232271765419339790405387302099257076575444872191937232123429399094682905591671332634855686972437036485275130761422536564886709732958570371243982724982035145126707468728666876161541819575553771790705901659801509747228608597799058769633855453680308352668459259947840719751607408215556453384969944436983107663435859379869122726520330896409292193369070136313302451419641959930696235886761029178800456169852915710163373919276121516311781289410481848876312850216843094809345844645045923883402113172786885271850876560343220214823054201442479436366284527888479139431225042451395111830149119287716131185222027183167939955640833475153117403935637450078541772755024262206470720470163562861114944163618496130332805089818140814842453916322518959574618132171794003576225810657370673247860146121317579974735854798128559618355820537802544027314760276108981018895058188631571352520580158567482066450815561326357788300336424498599001011013864634734680230288215640680820808434484535847927114198441770048017493555614444645870376709627269138311887875134937527778694909771409547617031324260846100924650029840742307003406249303670201997835713394608237111102751935821260455329129439196340121118869615785461798150607127815446052405061886573846057469737600832959061248213081508939636790652348548902394284969282768536276658002168442680101440279440861753973092522089091744335042433044441279160474377091835881214664774907559324114473135600040147052251355966483519010724222833676421016529367402832857537725588813519057990558939165037604302904310316502018027573330552139757161053088242293384060430300523296074408173601323825714034394360867726970422938962968119218813903939958736501484831985126751832856474024031391216379026507425954158311043916893945999962500419939513107607676678189813379937324813689558550376527920222996645487198628367901859083421164663836623053166533684015019349178830389471209565033798190832710250719686536301286425181702070369412192622965574188374479375037192068410739466751661467678183186891186424078010265623472661219367302915831027021504213310307007834949487591966675877231201050780691329174317050837764635812748492144715104687992960303521876792086752893675845807100212362957554657987989869080085034132726047704457375794386704968172214124472185002628090684228692517890610185255361656145869300727865232879835238943549190699342551419706038320856933575326794185921098882307284305816664557369440822309004445555440809140520025671656305686281039462948807793580995187894746108076199483429665077417361976903812480549424603048240080132703190722504879956601178422877119582817186902682645443481434545465473645959085899128624257966626009244538055581627579570973000397039260533551342419544270401531359562840628497118631377524316386561675113809391555549390718874298174024338846927779336096137022146579296677507096008596639295675734173722917474236573296399314122258341923947816465080871026458942908207890387461394408240617823452303591529392787244194761116216806359774904838859250827007709685021199081180136942920566259825245532881042609448817973288676628550776654243572163287305936562673360450656508267244310827205557453614167127066253721536129005287555526758227923099505714565096744002261812755724316185664089717529061604488636193174388558738248492737960374739815760383467742319050421249052669240566326994997818388939401253682599835072458567451334681050566553053450543109603522774761784818792347016325416850164695133381181574190073747416327672149071612099474129862810746770705368719085326069496457927740167348208591779103898623705821159843850899340454024619861565058506110130379125604528633522438542528612643902910864904845478515238478895543971870171608326444305003783561735736846973108340513713371020549073494609334749898047114862447903957061410284512830936558584929696926873676679490091921355385390667192484877582055347518326432432105651881209112520228359611456666996505252546985571507390399882289764223438968005541824909677810844990626752648467516689571885755097985831949848875765468032874905279227161108581639992454436421935800248692736824953969404074436464486331043466047392194233522231004023439366108972184133537492934037942161841029235510413053465270933086828440799106699212232522855115523130988391901108174334651211683055804327296600781611104963048554161422456323074991963438642123235595539665847375720922611914027257733463798920689862544472859731106580323973007629693276931037891812208909334939563432284648652158565523757488251651514510424167335831876943421801748088438801086213221180650440621473210642621942418647951789275709638057502435739191456509095713474348739615630474308402600177509879303762063436373331261324918542833522884741822501178605967137290019250725677012905583664142442436827407147137921730652723159783418127063783671863108169153077233221767940347728641786492521867603515157379533448471926600646559063662720404328354342108287672691579736950385001073276450396358733716382308125668842617094957888474474570386767853498709158133781593163811701141852622172436751135498993487450396502045782258986397018541301877502152058030129511337327984700805509783754845225063118468877396185107263967229518935868060029573408868133724907333432536863668022690667179876019892627566763474424213602466487555274666465301163176534665300344351877799334598445154801275767430542698053653358154203299752913583269298160649641849836968280907528317044729711943416116166096893641420087357011178810897907849141314043926430050842866081495604924996895712202772635883725775841299398708870535999139851922119262079731871231050612100713296256970417449696350742664178326862887840868101173494142730515688691632543928820897166076398478821702045292516623867725003220972989136868337214836371171704774891364339825342078345760880039697505652516502541700674783520323344429715797393447949049314381365330420208619742220390393235907984116815235892579587049062986866501751906778260848763970552738772204131818435726044145671165594056943595725273713814738138520994172074936786036529278356511784638217692310247012041611066492482472315002838906811259633908529757730888324887420412205839989533053476892759895508002980731523385928836245809538304523343974479231907344328181733641192427216614622782263873041219577028474561340929746047591890824150197883311605372958385440579322450403580988309599107506641071452587496400066149932812874954377508448853847331356716748849823181524999861952986811173732890135554314358381404941977638234199826788916986002026287944621811544729270659076885267445041535256744705111337743203992273355104461120295859136200126997997177714025509497609887572488686858991959552123419885529756850682826432985036336503677665048227667773941026821300125424983207866906667919400975529829809066747367016566468508509204833624678856068380725349061172521283134333019280587674038334352818879519810094103097753702761022490811769827331159378480268852916105632599414372788487737288190247353382545022734704639805488611310005546999132152533166461489298923528213046837370350196535581213072338120918260844407464788365151911535412804245497694640741313431725336020979339212551659884204492809169955358341792764698705522425555866772338875538659516008453808424478382789191465839028554399136942773100863742236025904601378634822219539934096592609415868568085888116875807701231855262515434313295386714362910522355210258958437666750544545478025103022005155703217644840964820696191762385840600825904679707054852937227893588450731944007817002327113268098237705161407591573115345989131400195450029810942974420808836452515596283238892180865223718012644149777665250963270067584434346607717410406773860516817363682298588695604691815418676372993951218000912815419768849115785841124244649237220782964297599542361486465925778794983460963125091863053458565536712862548858043577442517572368643679379694292415483192473789420892550456014060073090233430203847237909917082771201790392477940956230853886595355318993909342607884381939022228435789646651982434460396435302464357265838562567494402372325802158219362904635573440014114468582578248202321557546331943931741623963784825323931673400099761375647855001744145598024917621976800321359886708907826344105319297361673078614479123218500529623400535787284956497566253605498681169533225746840591638698689082314045826336435727411281140224021862256836559057636545664372688768363068970957106764776845465604870057393395209772133550840867666976416445831556347623504400418516655214292218857967713709802780598536487474969380623413609152587778326372148125251559664435983096405294351584287976642300422621974840765503945450375868217869914344789803549836892450544416277793582680068622136339663086671401625627068273981794904526837778707536603783652951955827268214350433656141926476889004849195271169172135113091407929274686002663840160839491552554960973385500025992204021877313933345763589856311328760268742220500423456039445877592997306070374312047231904525169311148971915172145772721993803162239347619178020321655852542556857558512351304512120999967858417634827899858616126863251741254236633037542950173173808864605542303434670811758819598470251652633883640656332694106836461743249182974427769321440312809567378417199268200783933084482609111531596632185412475742337790769994754374603622080031486400880567664434047679194708732962802324588811136556298613009251718649426703890259827201357829893632152085557976765084137031041291620691031614903904952813638817646997563774036625521952739746855848051369397023637397347467073792039495376025616988613262849391877767594854197984466363635181730817937964264255303441989276866679446310114809141243878775355826153768052862121137389785471998355038872605871981536002349217578293654008053480361713618686262124930317254875917953145926469070729573954102467835049765340656860121668240219206976121498593002906609882940769807683015296973508612224182410469799588358467096689010502784392929974406077273526043210200431761133433858502630185321384902082656053033072193617675341549015489829349260581900043906202976113729378383909063369247471692239841809198158348046251628777235792085430017638323873129148888657747700384311441723104823797323624951128799889320302210545650889627191981361821384520735013763300779341966232584690098662444731161032956826473169042698868343064906506526007597840924357625405092665283165438297332437457337330790733013014048134144410398137784911403926385200753849080621697021409390822156892899588290377500714507197861597908069838823098952085635202666875319819721103170521213764797151875860190158286178446580061845044332920543873931897523034921746448618839428756730089921026454849965826301803548713655445371911303510844399689835762061490379269452209717990621560941238438036717882130975754296794188527040237732981244524141930642046960006537856313613386193183524736658091966100226960482135880297699541788493470798760309227085630219157497483668420304307739531869935778157582825855157464412864832711869327430207346725521879396783041093907467793482170009988769018509322355756385110632438116108015283745998086206131804783738285653450768254313289573479858262162467433440567057926826344765752062400431646516653845774549481243585954038941628897412262628373623694399506649496649050777293420485513092527152332219160906663508333908733875223220317711137248626093315064481807403367214680506875399316301696480928426490832462858838752036768063524672110033175123904477353778035308852051564432758830077514852796711381071877047943899838372911077110424524792557894920299631340401494948062114061469437391757215630857434655490574157364894386907461084897942066529783754768783606725311911706594570613366239403573085592463540516241047239491027178534275741963713189952016359468617981205445690702003882948633511809859552775075633738154150726908457129990779948140867210619234784475536128457999607780581569131371025606792476542320390443394548894591574865024143446976952007252055567663936142275757834182394535320033064754665753077423282306642331746832420581892009993784143398804489378874523986516197108004876655475296659127606244506850289166878433935194184536278028191695561250442309434408508050556375761479467286475123353398232987611691508428466626715106842332657920355171406104223866008554874296381597595463216671278359646942785859604663068323157662846831620783139088629701200097863427755057958832987192198396320187075579496367644084938644132283426377438570977666973849928276083776137256224918496897446932443821612499360213339028465645624992850936325090380425966548686881382625898446130728603929978947704908526454734630629853936439485692611508618789507656766119651692031560956005775346371497634067603253059206745333028816596369393479895035775424499908823592091176075632337905894204552521503218097902190935411309806873314098538072824116636778660719185368383544196628238946708287760680057116046652577951373540598593241574789800222759907005834537730333771140793807801629644494707904014474716648566470856199456101424388224965087681082873576241733501447341210395413408006418297277852319420538364057421880202790220102531945524037573707324535055308700319249886046099472998933547752358109127797891556200556383184201744928397617589583015380862051768551271258026000177534326346224488500912783382785340401121243160789653996367250056563649610522126593678975300773991267815520757995924673551660180715283956265691095097592029650800584966115499535660848225742780443690652727962050178908234632009570084075447859983084290529147749992089989069261562853379380496544543217270619636355642267502302048066810560604973144885160899486611573986808178003016870950304857118678974784566818367217111859648602835271011816703955973666087259810606073792144395737342532328010364045442234614222544055260153240002026929781305031974341380274940905550887981826794267005875608504849084049125850123741391234414349597388003791907475203095874124494879321759803010348604912268948969338763398553094087178303659414989235473492014344723360564778512541481536233345196013038447482812981246579177341370514864476015814861605957385456357235010252769408565844328615804626347018393306132803998472767739478165212994256557919654225469929725692157559853683994667086895578764757287151155411545116253367951447812532499428501548479922031327022117551729985558477432317741499065447493763137173856652285702662720230054961264931923077165059165499056516234147134054377175823860466492852605688153851662243743491952503990275816576652467438758241838809937574534140856235347710726294165020973965246881242677591663613216958029484759318616437635890918271381304311037675814156188300011606729149244265198550715517431652439663225280719351539446257207009571012375056549217848760664998244508854682871297277713580438766681444904893323927250238835147591271530022129136971267736013837881779898596010637962483987178466105503815203617849544435499043390093369678400057416835737354672871270481970817114035896953348849447253215867491065375080385730390457962254030199586597042102656496161660069223565695853346047603864019294131391584990257809098715011317950506792305629665810803721547675103127360998459649611443430361915132167121248676681259864793727216434440454372572367959627786553783862173846510794650571793868604219146405927071435454617842545790560734008609008000701509182953504740524549974429735169792874575118496745557384019301314917036960235145729716761930472575910601152595432689249444920958302714381491686277611612730255724629468595710872558223505859796872386890309669632493526489192103737173406178293398346362678987814060020261515135818327351986200866910979775241197596166429633037222160078302330595569805823301287853853676665554714098268801858552926541033756751909446094126271837616612707846903625657502827380503496197338565891075211787636086290145631996007404937464771956780082039641952994122032794987559598637221739793412770216620325888237564031613555385622417524744009647474891398034854275839320301828362176518532577097672120026132965299842240081894674885667591578452987254216314678036508406347163472294970091002128168647042477133206882378428556646149464497013612164940407224844024138968521020335457541260064263853198322623571716332193962266831291756294313907428231459660347210261457085714694902512984268334416493773312261716430021486692238162369555048207276631428268526496239095192034647123203886049146174114928297944891446459051037489822053703085430357543673909509950039422912472753951505906323970937879364060803376743564043718822147605272824628799818254463399708812371202024122402719169658554982124807329768948245066630289289763308147478714327744671630308388628642398997544135906589535229558101203729155160598618013958052677909894612878853792768873849177073381695797409039573530981321769195930243256009067391915043987917022963070193225586931916337117366770382829547697372231717488967834557119967559695988913843883403950223999416034269863526103910237651931320420327775765071828082244522685912886144622483649258053272074402178659673023751795569994762892578948940109708469624812514755307863955936158498384985009743856790049638652327664439893972749685919376162881851494860359381544779259744477936024118122985931232096065307710283824031919022989144426968533653829119818059790477880566200165702434979023905409586184916974059421999865580398464277062035787738695005581537762604865508915191896108817154809581131580221484626594094089880229709288793142590030920450408539013317197604709235906719047332857851533547094895175423740909933235927419911762344146473885354701969926869420840201611752116802274819902828883869031493552937881574753343208195982737637980444228460604320184794020064607160694800772798316068084959940523194396336266170396026044145819727957336827257213943416403251055382966384754892934680389737215915647824993799334150786248183869823935182131928339135300831587367387611359506263908071610229921466922385021762001358923206779744816985789976961500362816685263177932034776035342355613766970028162115330311855726059167568274562142268657662144655152064355291052159907698272362957921435737852140978613859201695063947877225247020407821935439590624562190269061413565858755786814821229752250579240917005009915243588177961688488619318647461151157675478094800038749497647853775245868415565761444354527056963096299756819093350329451562471963188756650947561758824977858228462952702177886993177064872128435674584099067493963170176308584285858312609085911132918988619917459549362453869693768553460712291538938323341553469854718911177022185801022907992815225557851999632779659537274617969057183610192702190212596687309753230945714062642552060950802290728403325012839679364450980464420711262094346497374901589003271048964129029107270290502668898988628230872323376573970051131219821617152452757016837775381463101114950858772963738830885810488032065590123738253840149480959545725618390057068517639427752332079875616852232158523471514018583186421514948771769846110303390200153775792499478756103364036831743010130433408358599534852891473623202424297339649991444026529381958117380639924417660101815022891079174618920566292556369800092067116449118360003124942364034846857960355999566960024470359020223838951404289756322616144518488142194105818250964852233009081587338677396565141745436980848791169683527820218736557518579918039584206082968721185638116958693439211480972033613131434996238910384097399888933527166946234154728769247836355258105252617379690873370012569173164962623471343184143913118351690567915404928876608147656932161980910716392638040650192258204567384833391220968888247332179369235988778412720005792148094157833638591098690064526275404578524129290524968726801016101164564266103198183499119000505774924950785559052918691874713640218794997025098566955009906540156943091759328167306535104135348978528049033419463050508149249992925783806694448403862614243287562050484329692074321556996453519205305321410032047167776893844387272886535987174842440284861640360977998805061531382248224636541477258517214397070968182465145504728357718696776705889525862929219740774950113730511682861988685004102110528731657347694517363324417454992325976827658796007387101562066556990768370723494287426174072356883210744559183874198381058847844365525326058424452534905576144932409407615446051848940417537159658444494343996938448213551242309135104546453263758739889053092144604612945064001788182339389070898174432219901786882472884435879240838567208308751682855112969394505301085667324612541943440855969994416498900295841533219535323390180045261661924143718286330875039588440553653609237768011182266518110289792325754773225549246216268554461069503567932284427065501468995409159566916358856809015878455151683187431935539719250503214199868978354951120326260012828368933742635733749130996703095264726975007177477986637705464946570913973395478244093189260454179507706070791488327690522017770855882396930730074110673486279991482110861225707194099199997441916840395326471518072424376513790789950003547127457481333978855917300270189319324855659414790974807179815509522033971124895502557080564614792212917503191137476523974622018338622023107247264303572294600966430157071190153195685426342497761143464844991106158790978127775605800220413547051536219417730598339845504532000197977871469010950472268839612721268829955430477405670691658824332755270252604183628521156915687093466510603227828524463869472382315468259480563498072619690623195342894026590195362698872756270644908119573672236968002853484201912630291262717304275692243465791299077937728540018692091898735387145735489112526105445053636143641842753112754791733487403474891315161696839947185641311909870977376570750455639697501987028657699668175925932825904059919207930098457746962133019568152386151412755204462478412992867469498070816804874833314856877556735246255052597246443609888082232147606477381407361695850944293159287120903106964104180980984637738432741632644855596193112387059896972133049591280893682249674077202234800203541198249485659850536355563147923488488232619431279303178617062251721337577956912178328249054204441515060481309006876289752391742996031091863006336322812708663525681215070733325392945630523246801611359193879618767273392002529631438123927503036489228405300295469339764266138528729507779933961177027139797233506563624590918988296478086776398794191348021892255793986335180356276039694075408032138694971208946632345238910846153071580909189790618949340859986091534440296681423418724257651874310356699382994658754737807475641692697060919386219837473404337679962151039907058172309901294096686229450960013377126656071864949983968205224117353565975962992252101674829260099688131004230683882791001821783563808974571972329125414840270086362173530532419199843473306848692715533641523663811261559856160077463004692377972943874186132218549430257175290941595374426026576846853945993330335914790400177172727101622946587935377613175047517768601212778624655587794642172903792393215336889568926976669128682041772991339640915313637569010146473738774309955586869570984510214076079285661108912212153379751815212504910733126021276073528053909931823695573777013758488940857501678429113547973874487713641383960041081508367431616815855154600266268871918471976878523594000175624114570918150178020843567609555744703470458425051543261818902359136992985381409032936223041518730680511707516180949241871143658926789091125698234927439474405546885659227449933875856747867802415216921596409735144721483887108139358888132384575603273373344385713694749683129977833600422495195431135703690348281401636054486309877953079640845196393969025038345538439112967132128774359845076298463733207021718986258158045038806898567168343021096316123022886854956121431354528734652584167993809460086773997503382891975577749976653788777296220986770219137086779657330320323714280553006369604331780218805211191796434282486591526300474452615537399946280332092719940813650573771358213434505807428033547438711169219709379349886208004380792917127750261513313579793821989098457857177679746798688436942224269635005688270960390621214534896991256581831786226202126177934991376820292868318038058200985064011340744530899155174846588295066805604896729215907132153130614505599348988388752334717202395325552719379347577424302495358056335768556602596586673976552656756387070966363159998634354432238069614507802093733539352090330853523782417095401427550165111588671111373624604884924942275693853423701736355511762527488406797489109007725919615225845100881264980896767081356599697949038934285815686381276272465009145565187993842132815358945376806019826867051226743964729143561803814485512386860948507778793757431576687838781525548820483384000444869015979680732338971631298416718691139806939451716841311676821223130046714864123963143228714579805191193842651269011250500081834542535129181595425810842202125532576697545430966671601593213664746786734248602492130583674898857245147805999011146716664620525136713033116430076330734451919163655387299778934576880075133417128913492809963324936295253839235931487754797628640885944553480829981145253894731420136789867835110505809348820191052801837389728638313394455544739203678548668790572431451353658424297993797642196075827552066040989899479822483409758971722641628429790960187285300468178163238090175809153498440864723325106584023648485876235465873490765970789665013565072955881354407714529362773266006826060400714661739651770651949454541909043447714954835742497956877977833684042326200899170902158523117345113956220105005723462111016945627372991789964140737343908373089596454468067674944347690324162317969271628278698376648530838041371182384655468048146277899536002049794400330136612684457456740114114720226423847289139665649674079618718584458682239062310178830857599026755421613473434614281661946466806769722789696316879950262246412315187523417096286241498902318250853565887169250902973522427272049258110121448802756117959404701583164415975426509440820769662996476620117220326351228409755037084494764849227463767642567748745441895913694530925171231990375227532054178852789040916411326681002016251790005981363754559623377057655704266716638978392718403796030420398035232404356367160072031170352187472582593329299437477266239768733480849136638639903210658689076074284512833327246652344137455598001169805165503422845049093181734660117624027968726736113987876097171632895135332722233974890437496705631457225107540921043298550446916414132171476781311786655997097028919034327505487519630526898886053315035772895348985737017922519121219859133863700165519590459714386003738405225171975430962480675733616334481847895640786451809512756764681378387962970426650855114208950475975261948117320624818565052305109496305784626362451223152969065220239946632815080796765982385666269747809243089910778015351019577460652628425536649931937242106614341223143206044240712472263855086777374878943473620741854240760233327311854107249865281430506209913242910427629102050785237732881593799694212408450244726651899100754777585045111508045292230256327377546311684997087986702512164218357339135833048163172647239070740912977512511372279307838262775378241450603942157898405623689490878942127200937975904942947531367830269951306507533321853707556490610343482070586484527645985964138361274672615229734184412614467573764401751538347229098277905630826910848205167377285652073566172186924778737542562858534175098629534551491847546492253083134208659622396820689740694008784505152320819934057398891073301533649739587909508718732376794339775772864887108309488231098257459396342797786147318957916972855598981540343617661430440417883705983799871103576592756986771246769074788539361190443862145529419075126317390026126771623278965656139228574887457084805331371634102809095338716547429613666874029931233051598581659731307745373929272059914293332623076634530081026222323310536211245140068960572774428028148302687168220374671943347637661628155949603087795658953892234245635684934789804895592783991872349006554694448624773688602899789544797154963899288684507694875963163833755425541155789679573457698586075275076799794311582152095730694586144034226352935608615363862231128503303679174744143229705629260458729615345834209476257115554668476794283179213799668543507289185081070805441563764839696577024236024347543206909398283127925499825237916616041209452686283040516153312334977711699128726004655608133279509932037248072845531586427690259885054363986244796576182899044697476144874723037594036192569684264875918489593137147835908798044540682636955638338336377231120809553080787825038079647207700481421596765899794396609640272544070798689562505826043119566203758015818947050993638885510579829996079054345363208830268925378313081074663472201777402380191966622846036297409428971493299974008298921111362273426663876090870443818318544479043819343380766336429065235427951247322898819172303415782342921977697931124458978427607141241354830060147480627159146119585074518013217014286281566662429205251546780768799844215269318409415455483296290726636764120935515597712764591628843397826265447620723638997282242285388301502147674325962549181255647854047269514018749981519905949105639383060734733101436077597385871434848935927977928917371099041553823581951842264117293927816814951612143337051025923901274497424737764702423939306232763514968855185636012769839755562137788997212734622565691577020324124204245360783957551945570087401095711571734897460028249850058934996409531217383102457856321667803960701983571225088324612031611335925567986353727202971977940111511080615006380548878345432588715441221187425490637273849939561411106990012470828242820214674670342170495590000007213469531564748822730189284652375285599306770684605198022060907795468176885481021107961063072846992166653697302783627944822784807505962827632297334788005979863085134037571246995586897203639796341450405152339805026311332798364424711122991678826244559771404037632619170318957587013348646283864792629766112843870813248954297653667928390407472149673814001549386331743654034073882307753655840824678047175774644098486111099702914703223098003788961560792284255449536890820635506277418709362724549969724084887108496289276108313612176534621331037330315677467983255265130361450894929023091182439544908853509960904982339650169976279094139283131384223545250847334830413674689587667719539286484193949865305813955084664639501217201509669581456516712766526300490627732571203042232031418236646109170312782690064741818025906456167673653317233948687153968071025644569696177395739323168586856731272867999421136417456115432177215202485819876829149685767431787501548166261449364458434418979558840032179947375816018891689447575696086587922251368080959004910769483473605670455626849555214258810584329778858652285144793880463638271096433017524109303444369336365698716790589859859793306925630090322488621498415470659780426078205493726008601528468636001651105086659286716442691975357223398847548259177456982662645949841313764526611924797550309731214000937671297502388733374658504158408007940257742695104690325339865281156664571415102332679548560468898197952596827974584485879775650981656502113521912155268873866839892302438698104169620965484453370806191829439517492768404176442969688632069035326919377447497096069954401591617749377449877853698214647481787245659494566825445578262531831789812510514271866942744818057369793048899654752288092208779320373227509486152287215291309692180342137408280688529866144935038105546517272678983280386506461135105170779078000729544468113106177494903040830535180314610194915934648786979937118715039229987499698164361544618648795062963924252997135591757499560256656357608552203744937842279521658781755555759450955890401768516721347174421477566358082826546739987363243075719813580208021756687038808388450679324823561817616932591484673575430258231126257539101534460168854680181487723342633497608230583928949784462568293945319536402841074966948414198924219710313752549622828045701808559994625126605406785857419539176577102401462261257891126352264762769222470514935732289081901850039360665872125643021320245265446998963138439121379457528762898183072159522818140979953383665970974760024355827721741486423529705935123755319829929896944895589402966368680990016803776109557384604043217299435617384199817963700478272723619908271403016441581926669558155966280875720054131248021666602782107957550752742743827525580613271767750615529546057494672381260095314487360684558427412132078852625155364092696545168990410072263480416842264427789095611244686303357694455408720803531668611499452552331108725745743106940225207100081338727128283618965755592721646917480601506025787402360899213593723239915923693296802660157501139936234981021368459208752807063893326896379117424213587272446954721754871226870680029662496028971548776313915580390089775613268349096171537985586830074228965894086853570165678077162139361844579010257016581461667252108000997925747487181686399979957291008831891105853267573282801126187594566664541723522143614710679944146986964223167804399770994168910582997631043284605494340635694796978688961420185923337888403322135965542098236994604485777172752209522656670967133130386731596660152562123005376152178902226697117334951661427250814129462918853220139195356906096157928987407425494110321317457933415346198178259317160503217335494044549884102193824848605568635808771938115914445866754793070689300886431862884932521634115343399603553136084534112860603865847808633321676527610539100608351100499924115664758556507494484639187275334399936675348085093018412999150492616483659322688983633576037635505847908130812706033203691458755888060321400734210096848932016721335749523255011020381597600177138962648730341487678305988333882136280417563168446184095686610945860654750198220711670594783027309534335789396007566543877823400095563353590834144614820565481214572592679701999768411186863482838281150061861031873142973956201513129107291502722933631750115518095582879079234743779288054710603885307322615172643956597125939992840492927385830746551138837601073407314884292996813672325002667280125753230158554526182973541220954247700870747634255840756219660207496946350165451953933047927525818653734131432523483848167869300520287551425844303200282297302611723243589075669418259058048059277615591103244594670297391014832343105471833583166027054495193574132661875424081548634349239644663724595662543963105154158298228819284307878176593135117375878414172243242353762225891936508268180638214501555769491611159769859796236971608591204207089432903331805611660735214366602816645886769223383830725522701140297506379552521922608263143837750230032936615752888383375681342092568519231246624876136659907408343550637740989777395892307205380682545980690851240772584788887909607666546385322635229227258747308908363026402797361241050909732980939372817836184231943021784662369168947653355185819998992320831926046075987382169832763041308524337172884982553730723969555718691743525240589303658118839214943143736962762288971791981302252764743809680335349992846704757436812007136398717705536158282403474942061003150923641016007208440055287621176693525533112917714087365362702444209485126555902740873081782138122179192259514949605883885676642038866240711202644184828123718134009673114551742889119130202014223403329500770515686829266206297178540626975978125533505870145618057662327930623784353615340844185508502270466296834654786492286107001728072004268425780422745884954271955516591891091948990941939613733457873959766739033473144492851554517764796873749109041007693275116434984500078572078534703669168685857302271354158331732266940745404116898533954731603172480167313011000930410742772446747525447377373998959082813182537988430106655051964234780842163680281607060702402496755175853507125838793018466646879463145299546523748334101146715918099294700340177777174734443359915087613419064006856986278829704439743004165617181878950424176921933089045283118202690820442960312549314066818750153150336211705573651654269000762589966371217115285741973264415464102008982304685872620583335294107833948406439088885708392047758974228357678928958277990664920488160334105697798385264081809299189560797954797032965600636411606482791492186867943212421036432174816010949032844384549853151169596357310526249661769330729229698640710542040274145044866150463957862316058332685328300796410364207821612701398816534505315252692437727621259774480347771925995114950851560732499580761212738663949440797625077834262165930889155626011508111638842679956898209570871581791090215476686279435058662123920384017239734186294374105560468100897155881625155307866414607636223221530899058538037099171896385907781951454359571381966106085313332289320626260901358013940367974577622132810376427065507338391391318317057726103285169914901080509449088713641608153681511755869147094368230521533392727303140742025134422469931646601856159929775337171255573241500436548474798735982187611290308226349950348270762494142893431191681226435498795231203941282446720370893587831341662532424732834816275242898629818629238466316779778317982486423267169458943926824813503635435744787018998910587443040209115015049117341555000082943503899299223000415614628863963763574444622854346086843918855628499379200191236238223196201080783466900422109844090849778233234717848506950942576876847143089332405821353452826211687722444493330374347755528874741159691314011237312593573575936914972685651152275384691109901976361402077787935923909125081293721038246265425922756424365587706866168646647210533785702914858221728608033198000205838954836529389860436902298820947034098541419741998342522511279771802247629489063796680504531866720621748382010634418491800821390948038033085128661938225037293517686279891974120203421348804113656869739373519694141661459289878749869110035932294992626709810238030097635803961697352337760117457842249090841983599353347311633951567488832404148101712823110240222516878199023925700745133136966808271930679068539394076268713009451557906578064495623884652786665607861768395974380961761168470131605200943607985980141928777442775414229625340624479362621666249072547999505151311785450083148324432092155193290974835696333326805549221409742755568448291060139632691741589643383198830034529307593163492216114154200983261107268535066691746234918945562573258527252694646412823735375509915431779739446447129784524022222635199697760307828534285876428233832860559995556504393977882384338176008619631360998267879909203498047054575630043809474244139244223889973326504034143810381790071854435616434891015674341234535995819260446858675756261801591065967113672346005673258072093658813790387638056754724640239584375573022557137944846235277244536525876387717635922634607891403272122034308861769793547353071040890306318991626624175032785361977245484447961726792777628923196215549126393236786973840418737916350507242271427031569813584844847300178742091491043034647374968858415181335588736794133623761157506270574614774840783215015054879251494455770399164297287363169340292309382130362693454598679190808566114361946856961831210549350106811241430411500152174625094719543115473878606658249992709882524789436609453932529446087018622196315959906128232817311262506403409724115775475894362511799656485986476116559699879052316917357509830194598449815733681776211253133856462526478197592585772861118671313527026295218923497376299704123307769550034366941230206354213130142908870936347372487640015425216802360683574938061200636643411173950987790053107870513594302176062383691942088726703841291975846872605663636294816300925561702478821130243984991298961499507899312543853045681771589383419191520463194437143456294361672956526336219331414434415446336377299478906616626908267780598234203009190230324804943299887883229335683922852356116138469357570318240198094411204329080374496893830220636529947586683834043552171721078769205145966138498486200729631882270976178916706878644291110596776400285432180964890207456671882505594405134469572625387555318392699011855989712657788950866364664274807566536204770993822043194185733223479808639722262755088729394371440548075542418026968505242266914248406541679749803410146400070059257021234800410259833567046297053489607532926723495205787891332606801133815675640157746603039774777392186643572301758231112887435281447545652575598105974946871826834799196909821371651180769734697811641423223190076401688702631023718274799996895957657042927261405828557143927245767166473825414015020254191026870788187728336038129836855336191052521333350340242418028435491665236304771879366555561162725357282429559880159817883188994760595052878358272104723757724447544588551962057498973553063721281096485295043170466072767326683646118214343602182510930695821717851895965958788744133464495613314733479009564120408044049498079321729659655994478400166338413000451087113696572108440176096171892536980870679603470254865556893580396518231997513704541594058105393980519068661451747115281763109782835763958963382723742496567544497723852827067594607041619044177095305900625435692923189726945017753293228575769326464975144996735412286818639259990956183639835293432559235056977366022240447517692095407405381022397947005852772187513358614157246645514689415652465010373258168962768511649955677183602772150631275720394583284715757234978991368084025796753891036262766689602531228412833899693484082385934892191167844331124846163946374392867708263513596584494754219697564951734568499950696319819447368557733528117888695591411535373137485801688604585808287610346011528491748621322688408801805467613583228125377939776471384200636719112544564898897247865868656104054156548410705136937219307085345994276140343006479937031109977888582868225566160537669618279745530066319373771592215023519140048448160308406922793089670641634573166291069471669239563462074222317674333194322566686718814892731073072512054835642330707010549840451809150202890163471007514551976666334483588869870984371884395904449521392438587292751309587551432201759677331843242313662682047942516810374833084044792265085374711484074261892276929402773542647630459013338943671892347353243152132149659973141114842781164217160729684746511789972642879619998637084826690275437831086305761658766826138745175182578759795212866159758392862659824103683529345701138642098642973371636870900166319209542390937367675098679731118455032633832769229434810156260008237164249459469190004692176557813693338295802183934611607109026600700456921132111461705131778855118263874609030367190337846903158597268714509717315552454723955705052074582270043804069854717147013212642885317301939558349235703522965864759357965334162638259803723861275359551142353505360264210840869102624873264038223528900480644320514737625119513357175487414049375538719441870819460317300166820374327007352675140365598088697522742064715003018642300093123965549083377581348206508655582162655394140469723729771372267667163403529274136063984323061085131761347002359434156955622181234839533321984160074666251823996608829234694269936859440362114676288257559154433373920592483162234009380576113224593314600585745294563641142529836182609300235733410927981341141717918711182808627408035444224299119028019923730870279789381888481084487475575976634635744667051963622735141946257672767937642082159495847652314068710539673872653893150576489056429361125852603811862798575571295732367949444636782724408368270949236772238529269203708538463002193093896701943188503564425346993977291044178128600266889949484508838343272065055535320137830494182438251841790594764899065805138537029638834598813170767435917457872514249304255437764942866171947743387059444228264831032663167027053163526236729989333587701716351626746376880980400281864811862694082375482804883863395181853481853944516165579889404079869372270292820545354296286711563179603481298206803548045647035392991860895013285779315967741028763965896240374031306963579393791701348068267084445997814822564395535145819439120204071495813302011186690046284727465727208264967117146709512935856818031819589068407350844199930546481672547835763389494641299459564706500794555192423478602092384061760378205452779793809875180997604105026724425311285971876404800401292239844347361903155098441709986760498367908530539310427753570879838511642533261175736956270786605276092618799334803538430442330872197366694575776457404565792567793635527864602628691058078296486927566639747540219479450710432673432760983055320551114417360849930753712361441327546704560846170521908189574395739947763592824127608060184344487491427580065165287308697753533643240941973534381792882621400432604758312111027055433243832559980894254095292803291153975347661160506903937814478599517601132986095305247573417057138313259657832911994831429893601327887379003531259256752017258127311057508510667457046650571388558462032351037424677240567114843221363061545834606838100527218194340531278378944972435596666148752357158305398965471059029754264455214145504226460613672810172729235404462651843667168356199928596602939096600056774324318629814237184018915529868822048741056516211554981182010586248749101737157491469513322178796843681803876082930456349418060305445481088299290095633965115131102143214197813401762253032512160141553748896245387709686782110337263130478124378499307388127594908241548120112282359551307684097755781610878059566926795230783539681493240205498787548913250541538036524140270441192108580968669430234981468992266284802620975946834969325642759158009928684731909845013716152776812199555293021191217337468638835962501052583116264179217948704938245395738748126106369910447102788110554150537447970287314061668694759565683609312858984132245298267843803247304504452408521378944953950485852112035863811482836542455293205152522475283805643697291779041557709912021294936585281355915994160756826984893529215082742787648249024196321007532840241007981704322883592602510507623596836129964194753351557091671498149500437138838438014297388613481286910550621111811219680137742617596952938752010476645218094013857577768237511043366264587584146513559944104919064867892670006666751320714210929852142955312707971956468591770821501732984542882561587300400209227965273523661376401644198761359920134567595968711616916583029946835299943867732088265584834695617145722202492538746837731587562291392838153930462121184659169682998982386510292243917264439702129488986666323814564587102588244193822975409412958416608871875609934524626475231141784677491641268608773221933720378006455194685776716445380349090890928034621124266636124624197772411618464195782076857508086273354866870516416449842475849669901796148092221782425703087938748803446504936603582763702583757519112170320454326891741487034948760611441540395371226104216034084498624451403449183317616447610030013519817477555028890172636803314222382307365568292896591158997349993012066668906969525188363344122499507240009439564305242712898832248471862365590800350690592877639324018920866761171145497127943118903591794444775962601232817652735412567352031690976748191227933924562108980633513478644512810698646201033826907983717900679828473553347015052332605515537845899490969567161651429630542793877058751075890115317608488635368031707696453431689654641331159040114102402039460348694228112338103484690526740380690728658900137242086866628467308464837004404738123939957402094179746396691218113191707588774561730961137528592783386330672405539225500869678972915715495435088236986286118363180970290017168934924451102889563497344295027301948674518839957906407587184790461631213093086982620649374391124574700886502900174704285952798031349871518170761733527444260012822001746406079847400165746535189393708543941956245996601860490287914272953265180496000152918396253232608232132644472061167113138522884036101879672007506327334381293733035871807359404336267623149054660183116427779862231527291914591745420646491724370302221620474594954325928870743631135835766415016697787930253718107617884199611827866176186007553700082195323413704088515110754018037186904246824732272709195187167641816138854695142471457727434558918375540267997430579264632029730683053528866261780378319870388704416729578523337283535052966951598526698619857381116848674197971776733090014499815086054549764798164521879985471520793885548778306620212090771477144257880811467632173676075768296702616727418094575441917717968739619003190331716995002069537619867387901961076391503331543859616109640379948776760851845725874446001978057599758827016159813939475509783506082615079149772650951242949666879821765127666714955490177484966879287344319296520984143110238164410820222681217175187921556333078931011847843434170250205391405225774530566414646979901876107358740555450756743326474745822795906370849798388614315445951803655912589805134046598965680851891997014232846128577457188312756580066314695283304382361600187656290018729168707518960711679598037753867569080107610349505358682383885245495680835243001957035165583189139939867842233867826853025385119640007077271317262219082066646636813081411126535195444547463523906859124426489659998063349949713207077295804059150069236985276536714395009532186783874303812527832528219832677195645676405028690557614903453978976295502203117183741324307975377754419532516365138734326768560186452213674216784796069839834449834321734559035908064545323673516371956646426475549186354892138586973804234763498644984467858424778675045084723529399615003428146160447271377151435263654588374027335474536541380230322042362175914870182860740705179896629792446897478055246043573166431836037078264068848019468822725277179794305373298540697576473361239527930307629093231957567065364559058905242939567440109576182889702061344129384669337469574379388225251494758372188042851705640587961692927240146198407604761834185479886581324689341478347437568970804405566251838885484042565154335124696603328578675535412435144427479303333503494824623193852374418557035410020847087673762431958706639261896451431693428496986736770770083752920471906335791341643248759520916160717801388582609058577325683957099338325825736315199008443661286559691706526640987383644030253861747328838746238620687896878833457670927354388940675594111931605567981164370238996178306872168159624930915657013042416806151642776372267961831740286490958839544915721445749369573349295070445959986278123251332411611443015488268602550344550543285962507607550547512900875350544131679793143185706836378415608549912861059011925202235393352138834949486100099795791203783383690045113028633772215590330399995369721017425585851669657544279010469093725373768365030774653840138448655219185591670006893424597119415251373865960079726345463393388434133177177100502349930204708819730082028739166713039708575257285397468763341299442606366393137290445156958284618701629883528341591061572190283137692415227469739635797986204661177819975574614962313380639353015158737710838808620257313039666232830148567851110123465494699774857207057301419049830162287576096789705426967946515343657881344124465312428191239140473311630914145904960114023670882599608137814037108943429555062912211627683251329653198147989979942890317067671093769979327412765163443944182001768973200536541139052923547691065521320481336536291375498692029430965350225413284040432475981656489543337342203951926350684787880268326261335118913648564833172689904210797459441085529788720698433195015040089341982941920730235042473861931888323278826166325254543504136607110680192953203766939817865214864835479540204269493309156548635524714003127004567634783914569161407399386274309353476470813675435717436612791392547480584186201360466038412266713402113034261238933949929631784594137255369166308220552293273475627085902940194550565335937247167565519256910131120631599052565603057989487880374014090794752078846061893748938292270548428325920369675892680820617028541939061251317615413843493313018036891884854710891062202941429677762651809774162784426871798976059205452692990799932357963144734034824823913546786106269138811544324204452887619700281334687008608826069638469439060310124512386859211832824260042356044017386179462340911952720535162550472053384511555725636442350904900789091944602188937227455181314653328584773186648618141846511593666767959375809993062903091185932040048830956002876259284289256568597033850398961192908912890322643571406110371669056390653450923416514115006837678261946389991657722433168946031464381435390254965481353600928813167374570681698982771094691454406242072332927163461205939979990372879138549702916975841382750103386563463206981547571978085860825860972275341877731749057626529495738204954410542834570779568309388423967242961524004879946987144222917616442635911709469731602935495585146327757942111702985741279610812926000941712026466145067256216395093309097773672336069599441659286604098025474493948174634721512470255867848339843112324869638823185210268692657027644064936006496165812096473858788416401789218949311080988010251897030716836617408640170272355354847956195073371139285466640315575795881243077336266343068155546904638080768902198551049188591440081058606884238473232809930343749516705658258200448400847817892393824911675502219542206686717331030842846013814011656965837238811557721721733495372877740888724589346871276809718214926640094704705739596412489884007687390846449931529167113880871535297981326305944904825137799905193813244353101818978869970619280400227802596519268044868328758665860678653675661322238217318732937170518875274505625320185034917322458084992705464534576635617374130167528909887493868418913432228212239824586860350775301170159987887300437873294920569623437067061087688163602639531488624211839482044577273002685366059492080863184891132050964375550959040453181596018951460287293120271039343971003846496040834880389448038216615131610708567575574102375862646071389357659716497477504966504376795545486363487577029212052632957537580936802568384441314645547743537474547127200375542383986445629105266152709788724974317252555665890717553640669190566193736592335648696926104951732262134727626449565641963270545918628104806492577469399703419757600712414655352553543786847610297943465701698422136887007593661833608826324335290878845207168766331956482146153439470893113854062985825999822714556279569364709231850272772401201304609654587451532111828510868054003277474597744217419903818940198478749131236534194263706964033278807297050253988526438768920100773709347894573910399707040845611683920086339488395650842714557856659156559925833074159349335434975826560480080401910161440783264072022959507564811123068553895321786550329391579457392132028219994339112958206657645559507524002471622055047568189163274672693351604177976435681953193726480150496971003048430284986534442908071348296928595587134757478332910874575831240534948086454570736400604972461895587964678378278222829424396846361656681902948200238288017240201405470353469872595398223982015962393379009223536933095642229100006886472043354921356763502855360821104778150241476209237666283122425341781152973912227326679509187464954495542390630104349355169607370433883804898891624379798617877132177208514073307253573712218990850809021385305345946318621731199349876088997577555040083223706616774112404853577698427927958752864497872360396323639559758859383784082824583962185543690301047859368573851808897842694053593813433196999139304226762802035272578240193474222122413514000229523948297730135713224835665382510817963035269654917488089337051897945571372184923570547370232316667506326690911621023805591683315385040954841260792687982206238238294018385260322823379924638663242641521741284273853932384209272407840788032482948508571644095891485949322302545372696993805717445281698110730984297301114988844340680917783718324022491282921694823978353351913629981066105897178695108115775487188033098766177405572806766586680787462179900352738698969729945900132743123733680403927667011878668959588022724636745220996958422507676620971267906236093236565151927423644210765565113518322745934162488102927611517286658335344319589583301238243328433103168361619044072754781977570064249133729442789296979753581569778150961167748620211176592888414191507451876271163294203676652839524364608531403012153545784046263805004448582535512489239202291353076647475449282398253148305029949407568448851999841373782352208138018653813855349712933314333988464881819689586371002462624020701031650446395906400749304859062268431699070940272802417277248777691728261096895319273291503426165089415243972800758540331404117889482298927348730415539753894452268817955767288861608132580091117807952879814633565359503362822404806837522945820456330034960136019874692205915175235455597194695306529909788211785920043489334421472737011914901984699716061536722683139894631860926245400838838677531803505107300566994787421905145963939230754266394148219247796120254793901991148834311931321710934768127208838852378388062730250289466080447985468569649759197599915083440395554583131568870723769207819515284561376451804009468652960982074344989168609257051794268303606108193233919700533409126422788676219800672342789862325659087432164717402625534784838850287466172874324644970458633166720072886013212556134919675610610630215274152167132752396261157189547757587722889573202092264160166264274736055250043543722247020253293369721345612635836145361587321352344813795146820542840823727183273458933287674671183308535534156210747339061536285325538023413099478682844021426399417076287480129136881605116948540091834913434903613298241172974420047609348795637254241645336301513666272211629889762834735419123902739988152134228356824702779967150485871786900610159106322050282048939462795844299439582828895955212832873132086950649519434487691770799485885151440145209824002969584962710329677197409887023382297747515945547871368432255902310435924209760261419180432603019343901412540958511602216079907599199284462129692530211545801273346410271803205968477398263570812423479597090728968943884149033412132715199923877933506687118138027111390511972076703259148642364070823336096702907966083315706573271834093035963681751919639608228086138281147250627997404636389557687947605839810625162848430545376313171372348006972057789853083441239611942105836177706880489880239572394593456324072908752581510804310588095133268528616006772926548123238999648625802605079896308056222269574575401359011121035193885147564555291308358178941846069083468307246935396092548438442468041681163698350798603260948038552578913250500860270188807770512107614081732556193328952506447719332497407679360844025104479888313736949736397681531041806655485128508361173255149221377284588731373736222357263393678722691977619518077509857900031128424412972953971313755977216441452621141018496314565619056254035416923189080440375360489844711537051410887163362714134939843402040474292129921226125087575426482202434689859074762288818149684123597998303536184478659807646526239117474568915341476638779215006495349268644316713261851535565002607547909380923090006782689352333669943882130727162390542207944006058376534161964275195345577275764799224609921385382198849903273800065330249927795818250134553365465082985567582713418935121020514618255232921704242126277933754716429166120787825609163874170685785843789744484820037622959974540133973792114619948359454945477959276418764013246136475181451102390949387033124383598003794268255136667229690924352602416190120393903888067947139750708170751814837985247705347165724919891428664316614241254719340306371231053195933884369843775202205958835962259139954724807671836955871094562025674126498936578384165254226989310868756388206251435265765902497267094356927693755855825987218126778916998646591772789761456590732238922735687824250482150540421475384046892776214228464996057879416796583669503297154098474824145341923476586372041714002143527659112260269600364533039146313652986298086938640440575029194596745302799068073096847377025332105941107230438154373348945028318661847823837181117304194211885054301300981305380658424765930510098516843129386673647997985833475995771611979320462400819970021434804557834702088735403490665864586487346278754981903660257240458719268579054268338909596111896623549744796951386371648273095791528908281897926967039110360999944899039497469781870726488328470835130158968368752538608796586522919927010332595429236310080489054278582860251777621510149814192659534474844921084928097341255640421659683201282023665166668812715550389714776798519439746132306165148980084511269443378520132006879460905942957126613304196095165295336636899898960671371023959236415310542749426846437693143030520532182126970797710971618218825782067264581399689751461061429624324045378720855223629470885664292744560152018691376092460275199115843963007823355416456091349509593895741594611274169815926783956028777755330938795609912634174073734121392020883180675562142039184364606945918284760856536929453499098724208142530719014657590016487608705149797049435040769512262040015911586256935884243348560897095116254867249842075818823922366682082938357796210258123226776149096548683393667449339395144489770232877658040212524223062647673661845013538240990053757098070158173461600748752977411341171243243671132858239056377132631918371626810136735508914966393926819987920898387325130858093966010196374376642017311271424622083115774755717900256242938233095976136625323707102297805077512295669814896242813147267437820243423674358150337016605245719959041520926337753543687059903370862666445244844905107046496669299230529503035716264390137506155154133124055820045294007169673872056475284381264712023245620216899011105034790489035009662671478014375392873167850011012681010427555308520950941316335933890150992431861206344409807052070806034773764372918630159334732782636503816874240102081413505587667936816993748249863241968739626367501408260089418076760003105313940672856187951226384369410143662262229961770240730250052211329362813144097686334676259289803043656907520971992424457735724305959209960488589840077239328640166051758028044909883210722551316752436949253791019492251515161512160956502009402753101461964391357641415285550166118250761928222355490201351132448256269034814618715438556690978889766187977346383446348638931978013092582196813304502516637655580456651366373349298519705538511884944252956727196519893154867729528204853920323692217007404608347661469964860542034136895044179437060002542087561025649405820037928452886558091534800453416562829117134728593325171472973369061610956859645138893505192731184101313451666004657800615543751302752979679066795420290765308866324843697184000036723323108906172792681531699882543972579204409823734424383272398861401583636076912198237112893519286981873770590381871727170460117913972693058947875386093699294954608056710122668096449775812208513605766539593250381194455149600833489706298532037585634989914558571843786860959352872553788654733036247640137186937870246851195339516773339541222852045845670482335076868252506594801309407154815024307254706433276037779624233342532191269603970552550992810627957723227238621610051412011626570374243422921434155565514817147659793146672417662335951524670973514339681343825749936408960321061352292374431702290381560289744048282338960363791589033678562858706217024525822341172834051141587725382250509515668564008507144969050932972241465002322850334038866892331319702979202323829747317530771337528357410499707314496596700115548991316363890420156385869987898039852917927445215227391014713986768092993532771616439228387273898621937709520474328001807559417461990348740628631946179138170169432561658839998056795518104152726528925044434193538519842469313781090136165761651354515217766111265605217341257946178773495353290158125934277432056307674298127330128500247667283330541032690907855837273609590005888607834557558429192294782856965843273250060953858329914185296861688999781693926993608564258491178449654048226637793977138821436875329691628331980128563700113369014450450949004379759565073055493285475853330289262300871891688835325870200879975057107749330517620583976887211426904919736861508654231230765048741455852064512088215926474467999761443941949565388753208075796257535098353980763862959189868149923611497158782458907361292015161625527073115470233420388289890907417153956444643112910042632865266061615382250542347726228659153351592777307181032879818294808015338797787902671076202011718187661295630756454576205127164592151451248827334366023787558473289606904746857856537236223217880957278680752408710034499632355305667488020246617036126942256140564190682517299011446447851945176299133180070938485811367772598379592646237885179422840783862114325475626201076493081506656566466925352664567163301072892554551254378507613936114474069643544440177393301869027511651541460115241064539176766330214771984744754495412963963238391021180141865365359162047136921643899426635461535159141960240443342385216827653533160927904751260419986294737288228697268908089643684461604012134724914596329986505926032515546845812185074556329532832041133939237032279326175434750965064548259310157539701358895961817188346823747987916980999516692522560943296878001298537002790602563561181176593628967440052071746523472816548772236713006489220195355354960088878618710235385556792995677670529515645616844022518159043209825427322897407650023881713233256755258109386839315971304139612558211862489095021912171125074085380152266236490243509054531037902132643453160361800890900291808232766925260740676935301883617762819253244188165543405921198872964679312342020933105889184060635370969357194938402206453821304680205626352916987901094517913613687643474599363640597186407228962226593006315188518265064521630349956680274972709158052095916311219601293121625046437107229101039458783487698509014714761107637701230304804564641984207051523473329884008858791445065837237724912474973158584786280830724019772560618134350349834383796869177087688544398740442839757429539492686098173588425388017136030228689938410643278859066727946471263773322416382320916421904152665142199497098856329253126500351373147717568209830185380223639650723217572578431463758900024354617183276806048796091373352716945352007870472216485493476178294727827963124614303137717615018792460626345440355322864376843520709035357798282226195640277681393845043026933855450342475275241317127863909173781739419948647644460735689847761966197107642630191564226583694609929940776150508667134341085339006332003810792719128975434703403026235541166532954576545415601318292421050274743100915390983447292657209372681141115460513599841095711616408295556929068878018934088470626320930477890038296422992509373810243144635141738662991815979750087007077768117716953375505705038778626173924460146799565384627946529699074247689824669284244974333572313268217816973797627078251468076165380888179577475828153241948424593169822711423681750302712790232038112712867800427368689252480827196579278483012762378193008825164875419488650826455988393759415324862897524374646570341251912578703939726537126772076756988877443375488113526428493998703762632172186010929316680349524735500193833550539869735720980698684492748993406525511313704259851746780542958278510909480489550050631864727180650598834985908198416820475399596289831386628781173519338752446288428541262017499507562661777229259815401199908422174860133129840842769898049691422892125671655203479995178665834992631914077395282475560382599039608692437545818812833269198564878139259998994416560980692042881758501874791556553685133274965482320169236945083736582427893193263914481628864463643193085389119847814851361240817033439623970241924805953050000511390846196908418743554762272861987392602183870298289177292674353919560514826614261426377776785285285446459841440034454678757585582687010301232808487406887275631511644133982533001668464649477693585751739778088333468082515931421794141379815103136744123915683327742327629004435654698908259875450936061949455129462755653486691711520624623979183883874288383213827736283561711736716923820044255462993108456954431677960890496629698614929096060119848956463413191324525802853344900663071579583521769080212156703078489890742632964118024342505953055618474320605472501745429015348572861818737749051806120989782715262889607604576469121678210123122829628989985590865313090082079655225271060320894582057747405330448643368669457168660058601319205882306555371714642170395664641572689928877463358652356621480934873313663450616521390408458531030742217200383291035111771820580426897258099815951258988050877351975968015734520890635664281132180077865414506046411892912920915280346790960387554964996391295085980939729531985803804482138897180354318557246802800027951499367772142785232817200081958164601468124337934674055072108366291733177370059433040524585194054131273834964339549378513651086530835674678118855196289297649578756231298323554110715032757806425237238103145252912329379500380129741533071009437884286479429642510734216346972759024479113117272228267455580591803429356733442726823827169873672810001462875374104957725631700407855454196562806927384021860175191318466019809403568129313299809971225230330158459069663423790174173990003338118015132691600742597559893112867855325043744224024128569410778362595369084103060188283143763399772478286070142067589960817937602054876575925538910976457278250974801055031632045991297322833326001810776090243649737455135934014455348981197786735081920150744813369754324995515828383832346494935182981012096698843612098343822406277493141181557167236349433913059164434591187153039271976685645985596320029724818430387961212070792834220128540518388922381884993872141620756813938358313509642408858819765318636657169193427898446281874246917491096634091813005583073299147007201348897221052305504027367506333765379155967873365839351352694442420890157975999128966510334063383392418765543938356066546526148126850761164104517452280697482477249550492310103234237755630806783629145295620259723921228600055502249163654938373211921562719691516980679454997392946587249797355910461569331011850005757599943703043507915694358571043169676819970864375503036770586469201595232480871480823479495693913202808724316915536011952909255143619291875192202991456632884477443148486496477669272573832503019809716714396312694445063610690720610915620888525556731543751918175723054875639873306527112737670203113270756209995941084003842520776060243243355184572518727491867147004653974224757837930081343339187216869106838809701566474115444428195320162325506809119083855771801028430736203685968408834683662824819822669679311242088946653702168002833778548365474220942741907565229444841700970959414815647758974537009146856608513522725528961323135384065167682286596642264505591960436453002282494004730121180438287812190876413735389058965402446798149698749879664448540675591466242717874233206038700012854632791979924534875633531244444867284326732897714052666768440641947642973979093520670663587272713164402948899028785699075378853774950202171016658724013264806590033436140297813227675526694861076071754998820452377580736729920629127199206142281469462472031351664168845274978712997473862215670278103062390502135179475080446393607769858277216281216746975914499033975596816028911660368804896640401567237881024069271362669227619503133177780517771536950532200567239000607844038862210232336532063352187732496990866804646361884633812029848819370647277385856321216606361950360062706509727059641584273331643282959256348078462933586682246899415229892177730358057226000337431595835934384312172355752345219560220531638092349947024271374831294714274668967603269924308221316092359319457814401108928373564776338132355296328906074322003538132198658632067915586138240968666050969701143545557536599013479105997417585676333589330033018533748498762977599384454894778789607721300615437399122581245206379273249493276934493743126103946480028419338954847361029664209573538268502391220011407441218942092585721650379100688254291808600487920766796634736510612687810958916252912485806863429085643362252779476424194143494419438591221640934913412612380199007121593868928693677826375943276313956937315659306698371561715461680210789508733073661419132216483721088846843201368631851137095337498028160757375946245650568797343686528418984882137908123470769889603423944147724481295656029535403947835347680091618927011072286842643124025464975041689049267267587807939489198972200010378971023232663051011119711730403456139926998682256476229609194819601209927025221085042478797713467043749173662689147617164493917853534553214807922308452708647897703548428744557169114968236691126849200502484811712837731106731016363399873110766728555358012862959787628585349205311710691123567238579818250533877768501285322504714963729953190507649141530612464423849169418290637059881454316800698641892532103722007600149360237988089247998636359774644331240427071678582077937247812925064798254663628719744102646740729159392355817139699675026694910364672056398652319313560947451083199079494468391815267677423060341370519359214781221026772556643580972555878388578254343303618430372934415681445757057125399044521508287292105795448473607979259318120780657937690946583824422818199291999452809659318392317846305346156059350151643535994328361715995913679361569504120509440826892914417859192820388108375839180122209975365763009698246967398093994599165959891246136436577768027678151067534249845857370119923205237279258476647145517324356229953361250910474319817857571003331108928251450086040471319053725508511816206978093604152395942620506799382202693644563630471359478603822420013193008752387384660318050782466834201961200206662903269221224474857290276739054015912149527450828029966613622782492863443014133922007979212033644029416460924894658552626773706673687044810011335880705271365530230990402026327469206120888294499983426659275814043350122033533159782867006556380755266718202193339092397036354021120280843742133098458801420987916019289340115385626109883051090954125098059273089569085521470604850087497660032347119343627914148675271257463968013663210519276177771875978191153679754521191569980506866110952969864701243831235479210273516396504842508470557936658494317329690192746901020159085355221121518556221682998669079696331072182615561450508497054796365588817751607971442187781306584216345898078993443050279020983929065479804748934527489274339999483090450041588406069816927199830850268295707678776272411478603854143436670667055095395332535946080507420790214204006791484166446344043089070926218855215656669752464836426394480902179013957330325700688893115171238273855422994966399108846647916320956649501915476688281898956205937538990144903160996361558882655435060078714597298062866922958539528114061935692559983287007611278527712349823277091435468887777350742815883110412009439681357020924614395335075028897279714955161798854415920181073986200831157745861505494546058423993666769305295692262060743493433106875233148367626733606497794085327757486495374267892680258130404270145997707648573331363380104107499535521593337263975596949021275050413273191142898985132662562289594807047197227204434765793165759300251181579243034200584634055684513999781017102959338767858813145290296239070464374502036789086637311989826117573146252509587233059831413509658627867444135419051246466647267370662665171565349478382981450141464028013229522902051312754785099001977954942075197526323076210562032808735681959513460126429952856089897773642024407622388802281671954542723063017549820062092238307062642093551656054106276303998714628462280363622739529712303228140965755996480465460797340554209821158934383417887585105951989990460998808653078176894194188725498493973104983403661376233931692984752418584397985368738582632705217354744502509412944761788071574683238896035726722849055529353008924479389928891842479270194737383142785269285681086381517849516991672260831204318717605587003303769175916641551497332239591209472466688374196000065356585474739533638457769555947043283773543892727438767479615890953456407860894315807508776037607293222264305355712045678243222843444076219386774449680951330189653503753801825121635825203209667655651194346526576315668599668374702536025944206332534933080383966459166487857748379795164344890039291759434671078953628682564206577757978204331040494497476100712062402945780249855242187449210705277456763103994215596964301820748353633321823479825182071483407776157181314646073685186472434536047039140436780443306704222977401123153943864896602606214108427549706781172394118738909630017610410388869910251123865136571845329513828509930114672785864484268288107387385739971588599792465559263024392676570083646209548524961884010290345327320715911490923877078204025524240677468044608843881291602488960333618230389145743149472937674912392598359880655517406693958203769738075499660299387811761349173284076309591885253004719050195762424627885576934725713543804063584521948321698477010189878330398736879050294577194013175307010730493503220011476448609079993826803701616830054975008507706182046110420904049799954019146925411020609984730244072638119676830291851998982797925024200247787440728689760959712620686499197224101160549036141305997080630909352541279465073643504328145434873139640018119792866929650352417271124458747485534047038407414962389566050337112153231537801148903381479710029466689125508022471802927701400630897131069190253929669421309095671335415750211735248469696454413633782337487948627860412517579014842131402685672975427196114310525265622211151733422687850073353398367726582177318534186003516470029541772576194929274382288578695974912602519768093402154187209165460385079578496930724587250200451233847003132876131385863869443083674322015295763982219336275758050801420957278895527068571939486005361164805809497902503064143744912565948651581786251527940166688009096715430104592304293404024219241133046011100043514430648765488624745116970597947647443144094856680924711215198775040286541411158992180872748999532487274491566649262404674886137656652184818090301592708776123692752002509648009346610712008372552194601434116235117036790563673388492388354220082906417114492533652029380065000953299057937841625215438715459252641092405678325911735298575728587008495193700612708258381981191212700764381782380848227370654967612704101546905880404563269943591483350131196362018134277050308895041743641346275642045457571045882115644054559038269062071042134868985593157593580096865672614566810916381297233534114914770534980716999276421981260778569628180190570269726851202678797665558971016399106066939041823028701281538489411424334510751749293244882903016574266221082074710081388025682018161023615295405849074178904071759574553368647192315578558647928403253867714247984960186545861581045562894510702327652575060113442643402788410871187068578327482660722047401494772822084618787763081941092611619663713125540833158975771824750645352681076803905924719424537483216568868508590756248003634756474555038957569712846685797738934188867688106207491034067206978865725492292834489731554423624100609305040264104640913449358858952279505307940234062869518811140837966769805880341218658782721604973615028216389294665209823428939047830038754889844370371443102245251875060278851869694848265290325776936292211382767459390784347843697875637688313675397188206335544122249038950187246026309728137356087447133313947668156354223803545145600106880664155502014027015439482085998008434575897756428180136459240279292317229710083109660761822997329978700352600389222919767048256509076745341991525415995251937126922731156149499736126449778049761520065374641138033862999674609549809500156059586757107997789054641653079682275729711968127415804639677746441798909032623637357988862710616773294339852268809526205459850931895070755888692896518301687041543147917354160631118506465694736180889632284108687016877687186847698922887519467486558386399835818680622210662455424467819651049651923327806701033850989096505814478776708901732074508492149479237853959181745741667039636186283027430134347966459179886593842952903110409834817983907239106985380836576000336208660420027041088528405526243676615606678501203338255298112450971652787402198828562968067534505275522480377097810909769072672103081251435332808642563842156784611415358722688210620708327480405920174253807316565728175720165575668072585869767327638943304431657241513605568929329154410342211333410448553985421625203346169126424352850300328552942474603009266976184362969471135335972279832716950084985953374969185801197378329416140176872671054062221115158151069017831125395824111705591809839882177503830064879908155058914546481004103708649893853542690434988179212672575262720635361055311236841014323856801296038838788697974128968905656203794483569532696048665100153443283937980709051575706804840394394202634851560740996151903662498543317351013841643395844719859833022782272543927651802537038641109667902322463224327315058218741517056295096600901735374473397048838247034198001312114110479843913043018004007366275564838281826886539313299725070578568657580191882460397119885364823784222728898926389757337426766066625680351927678440848537680263815217193086861943623474760930982925320994170645093049424727715987027609664254544680647885338219749382459807182109052678464628781106970623388608765252628806817890065598381085838354296089029329048386952366099804283380920869655277713994895845529481103959349875418488429478068564159647146885748629537969501497428245302212030345816884036445047806039550215553336655706108544888642691754836691850878678776845690247860935940231502525899832223301089817788004128459954987520320931496627403432186358220944970752921268666301750154992626801210862967903070701165903868761086006097373854039632912124731825847845220251671481798329827420050158711302689716322000111214783678846729343911981480199651288176815715278279941137002677429567007480979715581061551434030034971005877999941816379518624843787209451845453860205935722291799498550644952561432479580783026743454198552591216742697411784207606584182491244444028591791891071363711410373788125425531000958114604624363771282453929825110311592034198872428722553372679264866211253517293141405531574433353849120750850092444495770064373308137211911280775568316341315400353692263123126259052806177487776759033373267523102625201439845023499425889338247557348381470757043887922981213734553330782743858618847787656410421426343474822358699498702384804317212748015961040719745089520125437357225313918134395826550926499420351801079267310932077807904150011725192721350878575638667955698377909854704318692600593319110177525156096326269513034107512242070188672760280822295033439550421025558763375779450908365306963868333785098854670207980159641605651203475031644410031208592219134311498801885437143577798044572141104237118244248336619966265390664287928336752463263857297932672527550319122590540857292304066292519847000167294323545832925612582448741462493149933571439690528692140276541065277223767787158366633153760559752068799977865703518333473645370200897646049851130731744650033891820299169842347044967558857614456069704418676029116973723407302497838512630680580821942323331937444162873953468607148992196434140373214719360540830195001720767070688084731355545466438585024084147215375728686090896331367878740069079934517791752861538229343633556375598755411442122055991478503807916491906815557996965078534219433523797323749446866170398302138543389187935560257341252193673228812681972098512672984274492866957556957584173497528833906902320990445043816580154011136326448937198428074732363674242361811827957010808884572017325644872735131829231930295492722011719364743602751082394985138196550763441496414219523195014080668893531639119021142510127501852681757449993003915173081946015896834977595591370109924724479683914910165383785861964728002985100263695074625741034401073336373732463622612453156070057238975683784982896460503691011430952466241532654941388239547240208229223080393579546689334187704113215424611871973206287113028145175815712846812488270899026143962079465567799902288071567816405484827372808971485813910060408547887573208175205886703824223046701064863102274824432157322916330184455708868574084729116126448509115751811686760988280712723124644239661006803317955651782918057012408396039522921398988001068982733986271131639335918156087474850443060143998848266117387353828077093927410092070397660364732305382867956866621061108390326581952918168807478686354334259458674256791246010570122347448486717110361542648466744535313531068391060542523574381525288554374186555062641981864389022735770775940740241208537516200237189300762450626538153938848617592265535445305760770161837624295807360117576325436775799122085448506002019885984677070867805612119722048046217862066441281149714688134758969336441028322003280521338798681690335776299337257110009664829796490307650477539837393585756062742435932588895776356764876127696946260299916841793661636200034949841399950841659666418301885774231492522358460597412940548453871289626364146429657168134571748700961546832165336900056493325489331416832906555691281120832698804948687839254575702049826878304671125777653896751554626080811113701381956799825455026282835749002738788580859313720903226853956280457540112977296652211773580773651704970566472937345069592876434559006101384519167877415115692042621981977490121594134804608440924629302701236236621764103764814624298869560454686133477221000949567680131339409350723360773597973465500273919541254269772464246094827828440484408994229491526359385426767370350217478910326158139253216460242389524752593578415028866376231290134694388868025172918447744185839211771837640082053769821588477302718472430043706605367824518071293187155551371293328971335081096476110366280089326927425327678422873110357089314825706202076184376850481331093602362066973017289495063459144772887894684123744161480846926723402458389339825617264490163450377048366145087703563299794342808884142170382250281975920841794512700355509272656114898765460093803272419582986840557502764196805411024250471828178851472322387038011495383929233341987277753234438395115383722402394367528879521646151193862797198357236580534266690896081180599196125161980409913181837079030443449471100716007610571884718369553735757111251767751037935497117963847607238043715099253940494721497698497452551572893364169728057350156686239519565049874892125319108892814065711768412303523763832858322576617185469935180259760903967306512842849426291923485669017624644584369076436545699289212219289843220520521286828423467772169488057278157183599690838839190681152849234119698020079710786049856583993394364392974477784361955739043160171506266369568208450923726909554186735332988566477362433127054447160615361761338169586433713878531227019942794758170929277604867896986648251027411036835906293186757308919758417368051485413833680783850020527792440962345330881517961387738083681070146479240830961371909326714673544936275578652598934762312650518469662366292923589428215014747261774499105595726218613507576938108805625960878077200811223539103479321216903653428039165348031308818746365294407119719457901683456795334145592803743583203390033045755548021217293753586706871137112158375877292694428412086907918363121776638103065530213818438161711721408316939348854208495356183240581177418550539374020150437779451481824642685596390644797981012464777922672604652039118154942105935147472379545462675948415652690209738983642855879823749760248536071560832106556097917503274529020177269495687522751976771196626964192003398994188016604993555360915177647171315643866914673711975226677815958662306827077267007336621870619804577907391127230893341488053533982627021493684264867744142840977134630543646866726486149818394735580184533392526698714569734323962650115432094852767087904743545106249671081891662910207045023471632520263348562593139103465769384411106599015143112867446471997779948431021046171405136954187809041583639848571448417427517811193513785040239847446437697928381217606337273491918875392575285430396502743109661274015320538462045107415243294932179341418071192682455045460920651904946845589924821949287058932601331144222123136024784527866306302038430609278452944658303629244840747993581778943007031155500875182982549491478939786059604226416040874706229212650528077440199662769216479392172910864682847754834144757611946926265111599336967451355170258430921561398410280074464628201484256874933986176007243680129541718691391424320802953004583398401652539973266558279636118948440309016499373675809469858589533255303561179728820627116878727741501982699688127146295605070783551412093563670876891780573483632261002463119866407836179111184345747011250201992018733018662383549077470804609736158893570233239996749526651373484324136611228731494688489171138985101641537379985625797589660269777213606974451020855014747469659379617936309449020725555108257040742376836009303809081335100224768088607230203686099705341074823901191713816294121319068652646025215222477289381011625049191558433842584768440644209571453485481019695614471233917381938862617138574053440466121557351105618760743829312335829838227514397605584092537673522884600251683247590117051706367244458581843839624859145457313584791720754831866162934372106356647781563703731573477973942819520006500116501020128571167855578903310332380057606211850743984917143585497381899383417483119137396297507008503448056620459094255581039444264057552214423238657205103408484107578382120606886371589400122616139797913937664934174643813264694780055316709333302642779990924199825793904004766068398382724212549772920694878316392083047066516787448289525304048710209819188803973138688348646376106666274873910876657709056643463064151442031208577646448662142771702088689230291230253227361113251774518957354621639466350438358835130481719755891643703953977878061005290008074559965545493521940341161437938095207257722213618970203345254751942157582998989031951225798493647241348026492563541643455140049780969823135097620590689568184888704458169720483002139120842808705813969985347044654310106924170897414618750723743689336625441475777605387780431363354459493260983570459263727341955614634754729533000255503289344373381374032030697852370655646851421108279931194717502569634466414037291150115419332888755979013281797604715287497925323934770227483854254745230094183380719808316690423755038842880958803265977624290444392667256713581583385417624113934224428299950584537022135260154039694462349696432557414291672646720906944752166833999208646873997740070863434137566755622815743858052640127253966715137321442129633686113494709627786106138436322541370686462471960995756008352020645273354793100972943111886666853829360074922053415451231419460774462348297495268388113213778100500393803226003288388744409566598935166643790506474456329290417336300058623413816198196512978410336205168218519131554631178167200579026168470354572602181659676989493718144180784037219532153029696062512186157358172173833360985888769209407056209358807515247902334288637187929712064404812136503811583872990915273956610080154430504792712186632437579154250849069024904261940799566000533324452991540713295877616119231403692812144588180861150890880162289444451068854640014942572194841951582141951115945891789369743154147520241334945806002269282892701775125073148693601614945839439256244244377800954478185858756179695775510891929380041598939534087254718821750447633629114873503320925657023275038894975849888951290564228484971244044403418957310451197977570856016636993151925616880392988420972270390938878815072626327567779033341674635268045780121275026677101297335166471839102289345368052606580119459797866521582917973742690655452708230936449554304786575661895364364891224731205204212038421953850109706112004144829458149920178862589259038971255593701259981856154639907979514015373148746837161889122663090877791306249387231466181671166847795206268778706150159789208228121031047916771141761547208675575746797079191636274051147324829390895020265524610390813054997655554544192039254001602120158790218007436823607920357942287082480727410586977795144568071997108649026836149537398292502630789068902400388690703066742424860890150196470948495396163486949574743324537364262270486656636385646309476375488712562475370291618994546992675413732089630989461581744924670585192967279500067948104621661258034028505519156227568166747495194545639275525940796842532444417558325873973336792444736824414291780979776281528593260622490857792874405272664134612835817731579434373886738022387924583033745322838937593173344418210700806654438501787866994829397891516173301163792452370757207995691953465906161522716684154962370917250022814863479081601351979759206099691971140925525509850415842028474857464199340304751256756043184266269625945238846904980452146050223889807288355190823498387271942560357129052187146893131047205626334889045912484354675593182980161958296256986268073008110974124812409952954669198930215912841285922803716280672252624826742505939385239531349432941235141719829426555106816861092067087936822750270614306914911790218941158967213835749875772744842391431628329851299593130526278972682853263132636033367336377561355380565975499674150151680013763416091373426966275632209812515484306940847514106048672813962628740925409312738741629993019473108703822717847952705125751659221887808858682247621451908579256878348798572702794903139375474800326604151193173277936462093391835716291715735355635144199371959876232229167042239520815592887292749698257190926890226514447901791452931625076068047070041451150588247043273571769938955111884904746879791930340722434865456306884476860811006173775141918382654256520003876849040780505038234499419375956000847552643211278718827122230095783188305904666141660573079829045257733390931160185393510407143237491040816588634931418793337394735539285040213288261003161333009635781173027018508759860346001025307463670950931739751398829356328735246520010443547767813471030387007089977380682609077220611147876563246975040932675982343345265121564935971135083215151043416515534904257791052309440820152720722093506331651214456997881239747810508506761366937941503192608257731820468809158828996544507881199354529339874511191910329605075367020255129856759550955751338098684233401740149304473557321863731122297651639715778700574769906026927950552714933203847334989687162106805144931740014699501026227452688123263110915248087599259086983890686267781703317967473709941963325376067059051243254105540302479291526100123603204595190022428057019119963216482542014101306672471545331869439285115547666114566625945275537718835842003488327006748075462184417563521258768953141223048385328882958570501773980087931681392698777289842515345784793158082524420720479435456177024901951489409688114389304876776860937625797862302745342926793719593827732522984371005462861529928769247779511665035282716833075473129638899434007155581201584459656726179264223939856098238706897746280027837622072995652666583645120236868735552351010748230125613417925889436874910569518852679535813765898533100393855342860572855549151097202078467756655946779258014559432532720143736892018670236123380328114873626636055916279462173106591467031825837424760107172740517898942950241123992564222488779360334346916840661771715768318859658769234455701972264319316356203026585997600487699017274782867674352611978830175628857979632414278711800487723863844994422610399560869776117827732503822800529292823204460864389605367603480755272991476066427597598777871327115361360378532009231113448916040453018772783175284000240542162069293153113844215469198595959341777149298838430363232939317392131952811816508528834799536751349450833862155926695011675175683561527117241113736569990221330270979820954701108412292522068455838316555034485934716433325865329908704321325933359212528261899734969161950250328160313465957468838993316087764400209254711110514701137148030603200565543205909337077235029283142300450794581045037175884920274476334311830967632851398234485014067899723394810494333671659287494605868826915800891909642848620924293046385448420544656044125961869097870564607869311719318064151771557193768758625667909731576919090630704058342179735810556379026684294174073979293630728839356618331260243909745588078794097496998283834996779122826449525453287942506050255472652092147365154024607687424200977653203974485912148763239298337919361884869724977804660517860161084026580765462865653945491444251877295162217187309590737024712900170856354600863446250215841431737912163011274275994518029930652948794849281404493420306771201888129849509638403533981496741403210821012098035707618346628047758313801730654924457991593986873342872589989079215605634429101908023216562097109545398885997461025449851108320733081712333689172618576813955767079055995140735387198939479743381754258690116820492824515277538399145825215617247075411671436502215188261702968634493889415892392589256389989366748658710845653925658905836529564126857198592947157680826602144190369829905396526438874642167372145468705487714444197605858950920504143797049977265974910534717181062735993722660905897438183656732711256551546500316104082511065273298164060786683601312367179098219717341876906545543177289596482531959470270111480532894344347477083430895600114863698402520482126495884769914394764398097136184467370245299014785287717974256629358250980342824952328352577766111947090244825749218904186196693902009428681133257544405306454613774099836766674696257462092675677507385995291949100700323791997261598208876557653604432943934391563781441052617240306459450269857278517266889284566267160301954037352198665365221522793945357511387818409889396188771151316940246888878847867006824803224327199595552156292467028448378670551247717951436150169589956198903224667585841507150498620967057062754593792488659062955017035328524321566876192282024238582943804679438943432230658117336009496626353725695898243790831498335434392028173272551172236249525483922234195976801933054915402259251217765787969138864053631526414559455306135572675797518212451981208448927291031684987885420944119749108619248384649412844240454403479090587640408111591581980485445321215934046398789179050688343593372941182052144228069233836235767783135869110559581951587730644386435824394172426053909364841471959940778202996371555677279596755989291886406195904022683690632046968175177907477673474496867613967596037960275151911016321516382750348194437010527945008306498224405140635293478978237615401139273646393884369351231596134560641745644395281746250097110520198176237462092083526022125415878436600201570755986153159491307742450588648582208319447589479819468517677931499056715448766339483132787527650362691939552155397804980020336795125732272140946001753097588971347011799721691512809332900166686339528418264417079128454826284436498029724229585550323416603862839098715442605942758735144473997521555254706517479841394256207993003256272591393410508843461605287499123748834669356035887515603039215218763548115316997904195606991503108976409043817331220336655213357924951577515208176939231603305720217615621771204790459057995187770432499812164673122957626191948813263749641114062176211441145801786853812791912177373886397046397472683461889175055959140079378869770628477303773280150821860573997036929549000848668509868703402036895702303398662498416793398585354002716494684233819948299187797991196881513418968624324670664602685282026780423978019016736008500917757447810582495400388234590494156389928004687789060792296212283451062077150023411236702288338895413450094236545204099017277187286263083900145856559939232602384494586614088668500440917926937029163573544041188707096798668680552596691661763779094282209657918661001044025141324531534757759204276277364923794511516445773458003953574803466053314808761333500606977032343764383494279359527130089729817108907915455481458406478721264562624819496513603250718364625306941555999537223108211453972910149637053870574566807453264394994284720844680907543973619036610995069486632279038268286947991563889271407375239037968090221439217823681813249536401608750768921205623479917880582955254922472220933159355399118148228834809383190081037681916376494433246925611682723438082700491695459542698280721921247171053736661814453690972836652669945762445904744942029033279849729392692660460531872005600063521089216070823782492828408608172820561881585946761343118027117504263457058485316485450465767435334337211854859531027380617973337880824514037081034638703105169781226347307583737161938278458334719901947017998371683545240425978224400900882600748277983550576418314169488579162672610493611096966564367226356067557830040078094509404750601222494310676904883398257075006989917311995989952874117130220329860655352392822340223258406900601649033879621488735967375086488666691315290686022956658971531304105370754487835198679937398043243229084628657572078922131553296443216549625028489269869577064255053697513264330797843235398165056113577445362185193458779533075413834225234198139439880429404541623833357772612129298187386567719767605535242782364085308654086036020981514381008266392016839824760851356524900606791037339479304994815880254394773289758890911849647613401620839039115867224487910082019441039155099236219250646919194463425200359274871244921986825950453886656852287204260764646476035658633636601626226201053035404548068838112654587492841242258418452587965105181358187145823965220330731732695547746828655785495362680766908370761691593142381089556764819830227061984141720515498639451594124281912727260543054475458860974711030265002733009060886320992744244721625558269700726461014002985277205891897260356490807576677691271925321886615389695105646888183791894895299571228664688495378899268133720807638650922789240169873226824785545994392173822056158241035850027722738461318716631804165454122200205418211903934817593365556812248816675087100015080268136253262527922402004393042641526169513701672760177460069369557175196233826645703889509965472892131999008708868858343866456006061866718190914841319685532809845989560522098277459696433947100435815246082431387212125855394678696138644451710317970660457007913652821540582248182977785434732497135710684492489919229745679052360316757710608080894982089133821846209142205813259198684084115234972245688162215854733865359764039243604884260664179201587806319629398643451147474944858749901166001846241129662378206621196829283485641451661124504503796657066292478507641605175333506533595845874997978049800455095602896249615914149258897675847653182166728264573116147708756878843526479219456963579226560194318972847211206867233731829986811459420967566797531452010351964891449629632519838492973850553203060593333575790359894225666591005792499405823677460925626722291538866342873063312567746272878078303996864019724108172314118882623575625836893227604101042940863842673886734866102602155076532089588970424068244200594640165729431480339214024903872229954463030101696811938276490017154060577803346347829482233377696022236124021838037538722693097866033430540086654701351279532292343561855956782483756915677996494587519743510778427767110479232715907853043943292203286201071282212567773982730944967494318818411835672301217785214324189318792976350128983575007208151946341533286052789019074381343351638876089862194841403258713588425536368529806607199039217331442351278021531598919375002255382173145049574350238471228073180378867911568149323534532766123135162190205414415375805295365418439136569907299925137048941132156620253811006835268103266961686855719069086610228697552314423706734797446741406763433034429746135343339320106243653929293719003855751087387993489319801817338168819096911623375057103265041541944362829071309194203841717094622667348179407615855817514059480067104452585877200255343528475842379318042546204270447097784711252625068008658284048888033114679724345459176795783240111845509303736114674880365670040994952863853452442252993101239146781551812902900431944020957627828546885545468595430500689824786339644919089635660059244745273400745612808587211478512671908985478476829231598217367641342730751653900182954692923880130975443084379385234743079248809764187440579567022179924495582200339305374064045721462187491235099124196299692092046843632665834271531818113554916090705009804571926274853834072926108239139511685839914493810207091376002965866358816891163164603876548582538430733786180763524314675108230876120822550449269706368670868434989696334091723442255971773981875901196856178560544545168642797945368759396361655893088119850801373099053040709361582664017294776493574564534960981881668439968677183639359942884142158561262311394561962386048688741848401933726082435349541433179924260550927113480957152162561598037783515890591236256620216532994375286914801713397176821434064769851700254625712883603982921424919236871717625325953928395265628381443329017043024575896848696733426453286542766950008507133480905385323798019377673371370708551029073260481033038486682771959624320462634031864045709435331888051168985203232263091382003930799846267360625965679779711138877562759211152982305958003938599490574032090960519451446371540813099865808936356994531811176847431615746170517843301818169790562489028167096456252863079632417684668854598492156376897628331343400210169426394970975073354174381109994863142621191042978838978125118963371589561798368855749452039862232972424649837139546393697385948380617231300849956500039223812744729904277934116389035927850015854638557349105312342670059532584893741834655436722857575681220213111470700542834682562468848062719773352253476058033695600726867033044787700458343440943431568180615284280332760538245015297538663281853842145359383050145057821747293482832947926877228240024301542364072864441669631016588879831330691290874933824611452485316588653649805228821789644412427005934649783166897556235416946481356392129168838421778118822855241889495043144812272634295631301158330261192679038925637866351844718127194272963036895382208092752290025860747730306707931201068949483052825393889775729969401804372408160824867176492345516329068640667132906894113222803285837819942531375228009213527721257992583207721474332455294328213425990182343190160282231917724902835440230228571697862125214233687641242851257134581384360864412286894808594584963877032883726787311449954520981251269673860570603727035235456415852488695974722779009262694755285089404929020356319378770783674191047280976925162320327502038801565218250438981875620408800307048673677178623081037249807407037218985641000496769907334343048004670723915824762033512475367784700243718278894174077539647214862486772838004301407123385463182585491507625810370913828233185387444534177863050681454718511202831241555229010681225965204388257640034709601536597102100978167368852831590760901753871601191613836325467484517201833596565485355347615910597569726055323415320202310620104953795240269898656639487259495462975754572895094346622796834453080469167916843127675319668175976905104033014798908582205808807982775097400043050635131563455532339056290472909422714856773025512716219945912752167502117003477727126963610118932619995043234442464851580435296133400956617760909688774310173718000707345748741235771529181853390730356670310107690563051272404688760437815697527215304845147123483911152915471170930054384598686303108736394039895461861508107739410045554241772480903160105669177205843498979592241261666837786851810933880997130846500171286310689616147614562652058357191038045124393612608650799625789922897074659710695148577343086759882309913006215043953453514940559893854546686316694613152851602069654227741655384636235789866966608572972074879607700293237155256890435493815126788937244346310290815642541066955125862107341040540026883329739066002396856542548384058755299271358659257126862381660969351044386390417490657532842305402140139239609338281967483030140196227824923638398189934757926754952322845777530512600183265419511160677084963833579954430077535448676620544801561897105640416830298721225386314429563297965536695090044107312585003495731116563846477428906880483842155595659213890613061434798147303247340343607530990420087321438680493793519066853622041658874110291637192543270823111190748799131839553797860941887183035270219884696145911846699026308766197624941712050935799366851474831129691778490564877140143578052789074986321172586836004141601343739374426795296727014808249031498032840364845631170229339716857908737523008408759533458133836687625961351845767297152064565175182967276808141830724306996566836586957644552500184553327321040227893455452540156308630560031454961178229876582807451764530118648273332921685478627222322375107942597113427857110602344532759318277332469022566189464496562571581345817217597188370178320193900128454669060946485370666736297052034457947156454932994196092343694118973376216786057915931767346046555594284930656834448731892347585665280928573893972715307973013244916537399413965348925862052532225557458200192435714832729972545775344689768113112402762012243806265373279484899547439256581228585347882267168850212245144103413342245044709953799692569703220223780479780795791366106388823474384527237417510110265407724185539714500109110510725155633317743711461550739139530642411305085347818024110246971078772149969567949779441491037746007212189637086763405798220231092578388240766438644513687584207974772289181653848984604082575648782345095705485216494099862773491685542991935306636025261250344746241521121367684141085737489137623897768158141518301703692907092103462868721041476140561768805877288713608722007729544164842278614936732905033030859743255175570637046060068934284748203342544697449258453051549907837338667823134985626521576003759030329244762695000923594603459177373505067448070756285950471001968249476895590768222653731153728719469054767955807060350433996908919820372525747761967318778307503780238658751027425688904033763652437946988816890557395197847260807663919392185485366899561593523796473065069641873136203151169631700423269669988204251789789863459269557975640415829059327934771974302538107775146366971360513552003870135195383737430510887043701561548821867986370894035817379256353786860005303974324897828056335319825454481500475401393257487754280116626261015096183077425038408621951449693808207912133822277711605527875590630664129790961863594606516249058717407625379656294404047984528338804911104450824391573385627751677929459643444082702400420189699260709168209835745657408242961672378719883203780575160593679455234621553307516825656991718231691528803354827239933847844643375195259827703739292254565858214726669497326515239080161558296222142848929839631229370784363292890747064643184837185220877846052315101911119425247890013653698033502319850031913480510507272218114311862169373896677404824556334673320440255139576512396939313594090549291796985107411803034876543836832312727238052152700697320799350735721060403258099482023968309166029845078964077644962172643478036783337968581985982070686039481772238545952588454080712737430878182325009794895796017112153786835960823442880130551477361241290145621397205850005314070689813830897869746042487641051121269760466285190561519926619286505737536309536682806965979840133172241868330607780622666293465323085168398920030994392698741504390225408103476155988506674934249098729072205666565633055018524578981772784473001973858873805433356821427642075782709984434461508395987516133752324417482223268524691506966370776634059883089744755526010719701171905433559962240172535330200165500023080659093048741920104387892934743531543363779437732251928238220103447204522529233181131699298962859992221241977750951832499672877533422039989678626046882655814689950103789919181016500678763718314406939507976849384647551728304515980980048052007009499314047069302192097777521210267804239449811474389508502887487330548348419789334492354270010163816906688223728633956219862953359426792132220879372211248396077493706899691292222077980144150715651949644219597536146777186564697015712676288691107829019914732325754950805037554535400273900551540035505537455941718777622342428117350336417995792372724550752621182643626908287843654928456981594088700866731803758841726685363450217481845313562884322530959331684142415359921627709807210155973188700211501837803320285635720780856433369738720394503114263215935132538539910131672341110669745313667046380046033327526353286557996548022282206246090343693977326892580004008854398583911424176875031701014927728936394901296946083169110234592369508215585039406186417141986946228016459001314256742366908582098718761004924028997376474953851558996064167418572040833242252863711477724632129096932215296189095617904755218097474778463365121010863681911741585706641149382004498226775122262713617927681771983886113083634062951762905062983284724467908591753153392667474149908364417908015824159545394724510134564864162954136339943838884875938367281854258699533952943145364268924875913834978565121041982908028978442352618729900181662318261833668951199897924298223536584163475604318972704372415222746867253302395477717852935501771060306073399636070532878907605072020534514718655041608103841496679581371685720886886755822154985807693010360070275048907591194836914519382471857736114263797521174174370265106641090064407145181181885656407611952158125099229846026880765288717544063784975886983040004018691517230189780662862731839141041603451139438775764176093613557005774470785905393707090545313318554003211116595367600711990093306989966002549627386074265488393788366667244511643102836564211540901511665662338433546390331405112480414085265000590816229125945415098357671631920812328376028163235904283484044713086912490393813133965332525232845960321608017042715179223404101553981704773493090209970130841880355378381283012927945574885714720065997662755459876278719815776142806648357763068013464183184444776113601322996424596488031980016686675153562118156737449325854314448139432467156078548518930968832492451549632905649580549116324450467960773906445212825581136220693624075827206526886146211856517710691067557199685893543479304981448922892361911648343714209597898072751748749367968743477927562721050160720082088017673350438548146688821094521608361735028878399383373327312697791445697874990771478041342821462735134685494197119511950439234090409389958411772032088517841902921063803027359873700193839648064028879983185359613649815415987974544790709581689965785301375155163243640047674418799067035423784114811800659875372547669503631731285871022665214097338964516493801608541317860652002419270842536739347767432480271194386193494060863480288865486798321045098304430953321487518573413997319253887284702759106397783027161425971458754402093965276752816503615300994173657337907569127036839419545819718762010806944212804089429428101516654033723959820130656371042363018304981544017855886597420709317329938805564831182378171825367753687390607629123689205856584079140602103774795456504859359240024389294041127024639209334205257079552576897598595158579032395272816132933603646338751225677738446611882238592954109554199195342734237436088045054857802306660878111286716931267081346333310771994037904497566356794866949267860733845028467837007914427917582671204265061591715361696006544588769959410737812328117553859834650742693976096946858572613745283684798306023550641258542436188471443755117964300992532617107170596222575416765944982917149183469087950341647338845921873445213069448584416055859856639720520180587589093013330764742395500434037311287284592169663096489339820387867310419318134978729015962961336296447897887124067968432674275008515194801791526949562778119600704337067789362611018495248058306436704473736470380467811263287039870877379109445321083765221217177181605741655978770757250378419198442645195150507675521522458543874965915500279212326814607749360945145837130490798017355214725310339377693950247000277347637375365433845267459848876223086080969977175433310282501854035186552950390791591415534471134381964308940909503762957602810902031612415800703470064486626010796008808728440748554008756535153118482243241630913100141964829028666001584556224679160513595438684873117645907253256904782002235144488965693285309037182808481511187826452556819353439395645028937248905105139354975768620715661649440316668718814384027250574586318073493683082848160145371577209858146735872523840478631295027168866446579215239783304549642657133420409700972581219056651715365076735536430179621034856769579813440400460488257538435341055402041145138037341347122980947917154303926318161051463736531667452534537016985591106665650092422670923130192233800616237670178161605537784531065871642758006584031672690002713228371868170938259922450260852552635224968952973765769259644182878838103814655257013488681410956134088639505647856116941974419867807409581047506595026146388431224571400007937544476819252338418774607763750035163511291924227313050116309881111149785455301072631146997432324448172514599128892908662400197525431081973030984282032615545212036624535352115160927405880214536361006577165644771146570180297686614200609185059085770301629139863838251123093440112348488973998261954406335963224086924000385198615546469437448704438450275190318176154439344160563752118578843405960207090818139491019736701179191933887265945334827930795714642690669980941705402562460852357121034506956954654795661808001699652342492524934183453216061300650926496397209025950857686885461791813601600487715855927137013849745642269981116902905771030952528726796200888040487476291532112507136319072298604031024994303229812640494843673202635872098234502923996495870575487150966001589664199909915260066005676578508944759661987320104444567483635078600146061643301903280741743024801916634985484974375956052808679732102045370436297708527598277952202099725910083000928746991351029817280510921304924026533466226343394242500761492732554490061070922175675313919727762185600368240353331604348427353549377719196419316604104752071088868668012979056318841203666558461882548839415991649438429458402185946526894946362971080652183177779920388321800087622409599711606404033427439813772565603128029396369026911219709992032347882067872946903267411694137697766623817410619106175007731917570102109306853106175706591706436581677369367292238926395534192377797160536670008735362986037373720052246177632342498852395271896743538819056866279542229064949827186817085557934689095856840241612307244957235762110968912473255190054693859472100545120574671160197577816044824080835637203079348448249383523042669626410201730716739341899458866120929666329196912634600833063604282499158856521707080120561473502508644941592690171325291737065841825446834467565327701332056561551237448619935946973483004026206661230177799035337818843994813355892395521820247426763358345739537360194428515268211820350640221639174329502699537647580619785663440657054475888265977835945538662044152842143998535583733853228312299003198790190802032077603985456526710708400829500131873841379972774504350483054009269681785387285183635453038874975984246162605335361287452306291824803560434017821654639206123025142020189608502597931073051339519850575144558043027463667044284373331768972721716067697466292197215545997139985812683254673629529374862208108254518246303071318769765977004119006093244653966141486153395166884624091873559037354433878493389517458979766714577894071896862815631671487951915038113146205203749433566751981692914254495374954262578670336281024956398087990537246230906273298486893986903447446822706002059572485872639265966778189473818904334575353430143359224788943805164800139502798959262397119150202485049341911194697054554686673374390416552705076215052119963795427395082522195343388149616514937138721163252123241623944740994647655556260974176523735864531800705379379136360234421346234856922827437652204148506390633091776147988414514027491921370322210041526699483693369426332981198380985492598896856671844110045519762619372899687782574197871340790540209749655154505136848953904273098592092785314749014888406616651641374431942206497993992683750128826790057681174156816129366204783116074237003658716716577230077368515449529390277321082027366848361434333425614446097557705159246419662013068602799893208875167288818484108570591225238718392306784263518719103905600339390399115652267236319361383473810967807632607717068560769948640785075928426357553420792255908739890669603065045161033778655487643284676439343279364192418357621589228381235630022890873426658104158074270476376996012982732677282194377155450124773916926334624948809592734872891894292037145910770004373719714276989120032040951125851520497003040651645500963549528392679744569690913666716204015718872691539513379674091041974246313116982726705858823129066138108385175828071631817724404375976874293622455069191498616122122912496994921040705302483081733830948408144452748047819293811120619941355394591737532400055893277621171492479638921892162743327096420442760951229869045393045585960744264255029405146710704236362468257125856181159132410010596068142438304872233247651589148468052437241470001102172124944478787629293727233143263289659031179474190824482785153959331100389278368548010442270475149311820277630901148897555124053611229996639565933888109807158275078290734989432963589932768169136342264775404033091493894313565043744883896865502389082844487233597856811830119181964256716956238796934101608436996236991289385438995644996337830721204295642958692932861440092101014242952527252750377600115582260154569694996485834794340465866448416603098439738973808844650664445017471305929006532711731930431704079610135234803974619347539347170265843666215326777921757965563960216380890154641963118880076933452110642009569559394439389003653945749376168039065501052896890128037975625107398786700489931879277443796004686841595890297257434335333642908793906247088288485345165206263925716843404562782610843488887490471381209828819680603890588897626221806668208360314716131923039336812142184229210640503458032186546038513298411054528258274538942375644646039346776589622365668795277626295873298658904872967690393204267248373884124707386690661549163568555004357909719409773969803843378735717679668775943791497794306211384680496338543720067494478188926114778937621473928981683137658279949412782596084767055953739652401017576946658958473006277636794434579656839018729793882267004641056870781306027398513570287630629768232758494610089312730006399979451602946116953015696259918924044655080887146394737922354843368539364367196913722740069473301761452917663925247256681405076426963621136336654145310374929225869879352526244312623502258904000090230353484084604983060054212793016114399744949198075516668945416816908930179786439495263466235939984430352624686955684766159912136116658179770043437632560011835838326891944211144701627360033159825948173238505356090379116511841818854873252392499879952762664225929888097196227525880213094095201288165673464960658167622662430265625124877759216175655177533419886670180719692368016866045093570224707146511868264815514688673278756904869210194806208159595033464791607360126504932259894278628023853083211891566820789768825547124901236325095319620796990984535389616899730123463540201208192450872781299414870221549483098637825500312757000895154889777801836110533138941934020395938160265977461365844209236026350888994161840482147466349718904578989873181368843652411023662006227643464829021022965385643981300619796508532612334049853444861033813255663981084173727654399306949427157803667138544028177453476958726965080566145497734397341055804109118307558951229488998224051301797512139829388499285990083542094360225349677336833380180687814415176032757208480070341778316243873137960548571073366422497328778024493124248745684368947518623993318729637384427093427896097068214452868514817412554912568928533143557649246933651481879678479525946039642948807232804094300933971537536970580954810121873620938223411692432195812113208524953934392986578559234966505764498241256349579815314422431426260883038894532266056358769686863535938320034285050896908286773974205703258188176351565214350008333816027522504185758246990114566441000283991367779550685908215667401758237584469881285312532540641841099051383267563522885192220762445439317179694281611180818390220387960347035182286022559101293984667713055365014291919250488460267502697422339480982589515798703102141157996121911546422607806525791825897036305080427274326833670594745368483524765587984868874819500048721640079980175465132258921696788720684821707799317702231405751531579225326316583136581091962179843632338575509103555421495621036329165643157709947713269918343034915144852723507745835284120204840418656999634667519590487171049372831967834054908347229700893588489858753853775124102917446243426440542987086173765742268194375395541388944396292306578080701844673763646375297074032671046105168042115737018438633968802360207155311828671340737149636372999976732139788410198299189667390340622698980804510216251032454863287817196134339810849087011266621401906532043761872264258539491248340526248074115383077501048462056788762468459878391977248626711808315148452278751130010579900321605627600491534773992468286737353018348435234095162778812594690153805714489869791016918092127277836043890993584197158356277114698933575156229038776388673039319820672929764366992681812003785903403358117282860671664130158784536559214022223102611967958979989016791078413737536024074314115125178595915340975126946473243455493636103855087902362727077223820608302134578278130474775349285543026298590404485809481209298953899939848767397161263705001056818389274472970587507518945281988521512523803050046351763752399011852993320953651235684172874184221578382714597524941113598396149014609814701611858880141513936066433149287786928006998692645124181300927648626287376326501622567493405653277116807436233996576605418766489287946539106574057404225788214304262718978611761460267520484713751913569371895096554046514783828270645658598757675663608355819160150493805651901834605899118833818657916625882715428138242571142623730221343835863039713829378944808818388844267221831990161771128907171003076838061993372247197525036570785148134287486019954683246367554291074760897878260472661210341232620413277779181083278280708044302758133123281021266147103168127876123528200527906181681763873411071943876374422901859781554900033436625699088358636063883589945909726855350320909586526243502465399380116301545576770027688532161449645321169921395220594745604022064913803936228429251268531690814543046788144350518873544044635533131130675885009384821935788690058026491303464661551386416017584241895474732305815229112427664272638205272001156638775120750095907159084368911475705874357292255639882667928152211148153266002060215026093862888065829694773607587369737514869531836532155573370388407015035888604532503767630224784419269426730789434222911755185862458976087662577851076136005925680495322784651545992587649184397679036392827713045697545403733019555212644561567474934540111583134813152482211242396577664992858554081820279349275946452194196667113002890003691451460079804490741232671946267897104878453327587613038081056724504674923936483446715419793725445988442137138596346109746550554368780456963689333460345952734854500444655438903145733622106708748248420316442367866595083611390351557816809398516930523748950429477230248928750617265442513543163627487882548822746632851887998244952344549990544818321662899710197218320297723529729741573996042098858631940165564456664972301773696077597577982620308066169660943820003445518206002364393138355057009747879156013578852195845709708423668150343135220359346206778649376560461946744159748182329017876953131494600511122192470404533593710630797330905113417025777186376353647560944176591053741122483882316439195697486079948613640790381783461270180807404017467382752228629455266738087422551480371435680413946725767902494030212459011370474065256581051453382766503260413748292033701089824945176151375405554335940836719865490678047140670555686766964655468985042244107206631196870672141247660216848372612496970177931319165589752816993606495625547512800438302941323996135101056781041885563301539809779707811593467956342570717688706812854387050889509864981131858517514233270986744983649845626868209366332318949432309948439577571019123914367209234646597755011319264835825208616950648510719021719131533773382704185999171666681181103600686153591970836587195200606897725744575335300693624634381248206630903183953733497647223735683523972088373590736067716025645285401309626636369257059149635313120211376897346790504396801209685124319754163874875624830217736352117988097088198128907625089458604385478571280131893433062848472898841100866156671139614286699125296220235689544046739818940184050067722395783721115141489297794421008546342643657886710082464961932687213834465661132733622628424694092727609068488384137407585312527787313872456586663151543334689640762914036232451068040352504742346924688392767697096900676405204620692695585680645566242872561188900739404781175258995747588046117385916002876759215830303363833324124117529684707060030719437594665820574873484543576949099052734643829396834900471297259240657270036396044778262623712907570722044700803911437551921554899813654866278921503252459000077128568256537518621681641540624409304166870151103996276124949550110156970815964409660970138282113914287027101213349350491128163298720351579339703259557628353490553243400753183945737425499541825276887719206823724319864304092346099293178266878003043625780551271490322270408865972537570747322584549653071398314813934416710261020248023833837841362085951246806321399278315067294452894005011760124169749452143676018398606684100561734353525510472512031791344749452182140351480309104804062203347764777009733592061759001621669200346257139592143123348973489383963787658279114128614364128667672102420856517886563027665726553615687162365060764858613717248835654638471552345956320778027492930145971730486351509539309678785330842630895705659525913800962020495838310030625749574134333218974957536787342960774710882690631430098101759092910673709810278380628232972038631766401499524157741225220668092986420985406183401719464822971252875824165927128487845874687132738087037458108291447985121902989196008933510698690629431089166989912941922080616415816825950921057273903625533718211890523260497219611857007062184227076617515774243608964955204774878649719689729316039670877626646825643082368731942630608292882120652256602669690336206342771777715911072866272582763766996393177141233664037428801855211208107385322546694245440552762102206101190623711945238323716222233505992542709340058629074843739395216128991149480262336581732869888131895447719549447034220804023998208140967578845569883075957069964136044588261561761580189111591589429120924692085510743522008722771182329714067859919375016114653827019100984666286411035173463367996168784605847857343729236597302226274585362177643116334124865700156828489790244258896581045809727029888143731346727583405881866318733482149927090224699035247180251159862722093129950850368930771098390038634978563250927291728978422315805973881868920430379047483702706719167346812472526388529904138732979434605172688539463417181479504039775933646469101869672684482492257323829157875807144640498892533046865186473646749040980162748704786719170290584446300577418672280069360356203123637540195022745899307560711677134311062201613720807732333366141270387726896772686157512691350536831637226500872928390686795853278957344253462342115621889150606105310301710511484439264103282011482868984335362641096175771668151367303321393502768488873335921913961723254809804021141828712272119056323650763550584305502769358815632497206196142148651802589142890572313191717354556930432810999730394161995107105200567083863667985220268961730711017427132255653891753325253426410145724885467684344588103775400299457371137423381943242383064221385440369846183937809994085336491846844541122642643836822251716104294143601313848283050904777369968007580207514973138552131123407025506985294836942927637333233859777743351326529866847460528966464343927932687226903709910539033265967082729393733787877144421687650867171289687030884007940708970849385703567256946698086658638994766971502803924623769342246070016066235474340154900385806951515192357064975313598001685468818207286432073946125339768123274211750891942302692804141637475188355772236053144818171371693543338533764983442803505171555390618569066968226635099666744034765200563857562695957095373382484715181899209299411846998544127104665260916599135339296856131536545285556821736417154233826014084638724488699888264331116483961793567519232311520593378112877113639446397096784876256441563391518123734862978979356102529151152729870929188300267248312016949801615670034450420153931159562850473801818091212759756103382192302872441531775074556548575119317595546832325592304659553492274588503758230433556182154652089458132821995372771012739262410408150822835568651807701086037333030765104423962814668694585431119973377848950595054384445486571147214432626342232538503154139915889743483134311638895479847100184753126664129593095381007313235072999130018620823799966437346494486463835640524788583633244101881523549106600785446573090770152498195433849802564808694176509543201225545471894831230100511801522946496067029958155427599785025224846053575737028833617966005997431137343066954369997550990799581656397460443819072537373846390406667184620037073977979631279716377780684923320100915649075448939819622559228513918015851045096404014429393379478022872660137543976236403303880389873583688032807814708251397536355983229316741485757143813713759074654711456268106526174365858577421285455067277002912128966486109976162766959730779426960356685978122594420299212879186880707296442793302836489528819986362451757979827670872480942282680092669150938652221010292023620533334677365890404403696873498594459576725642275495825688539898971014750100404871694919868919819541929368339219206792593073348771300490459082849617499495810675130995552839021157224831035088810938480006446706479506796518067183591513536179946446687295901665066932595335855685639209493342361738226337352583204878153260041617874422332313994356102102183354444837375259092420555767788213779735770963121217185937970158500335417216708242178620832818793796882830465061080168008693341807421248705828730174295430762319635207413045548561302476296183382710203812100947413076873181394303639311733149531975580268328455154773842364312425274237015284549573517201892633286132982235051138649542862657577893938632215635476365191548985571371349680177350820239650615101755535522250976861766019792532306085655720469814846725705833947788742961080450456429540051161755577297204552497720562397973810512556476956556214762771161302749014496230155298427727511608248189102101563156533291513677341397525914992835902808342405262231065382570175178225006634284913342326582951741921549584677929551409268464606261378830583135652863429632174842340183062564625146092225148278829027784286203807940201848370186253719833443087649944136905945567488015469412049006604538365533177002880313389705224813635695069219126445230451017038061845100701552405975178896886459378598544054875652021987808407633124513051450187898311887734105884090079309202496647130037906393383599030887796508778118588635019173639355891375311670017475014481576225790411067062963609929321466843220133674680310441135255970362183441716248229295959712084910075702084863099525985926502628532444225156381542348773407039152721336190990569378189960564824033475963429959158578608690583690933789832380998196674280789936410333692908956422756377488278254330222728711406182911786960996754996455339315935529730686208700850618145303895419147408552633740516623265680336259434792564337400697669472964963395190953784364197114153989443752967614582669147775538309470902554047290291083268876273211703525626011220531876575455044781842014568138855148853599487906753091735294677353261293499599208715634756225887472030948336504326019616437355414578524771565311911497778901306089340768730563996838786682839023607658779722053057701971512398860683142844923968596687690586839431701445760630093153736113992803357010292207014582507795118469708069690442667292475036346345563221869480624845862897233323626458345863847294856410369910911548343433779950900977431153425377550277198385822411116148246386629004354521311164707575944449830806736990211347171023260608108995161114792756659872106557480138258418926188636869755583536522582620089266837445885209564536707649735938697270778361329305960896382490717069266517619428868826574464232391730069293665949123228775585841105863006361721637022739304848489571835152083243589818360287422258028597569300502529520375529698817514015958085007622861152370563604787113635673781858530958558393064689193147199476606029030908486861228377980334998784878053523148608457624776338014507465714263206295739046905720277243630479886910086491206192634717822174774874874752127129832450916596697063524806535209566604710857912195064323906200301493508066864584887761151875949681028459605362632600157916906071283124016888793582781037708819001644922173565135490820288206162984830187876475235152927356474891487337732188642533976727020249248642537821163865788494286755143370587737654815318318571774442582198339216713398911757034782667342832655718754319205853796271558909921564761264774245544225829439779729548142322520616119187120889932181655949049696823645034947255857088974511916315524259116336507644462976427002892791471979606276192843375407270533820428975593988504593511307602435925718138286407271925037980199848571009690349884698008044832352046849276186466205717273569209273378397196740116181053472492503715250280014207947620886462243337857729051583859826602148972583933689414263258300058257451987633070514446462245461423196327735484210757435255601211509612616067634538211257305544439920722282270123811128037565367740447165413512680529708892805469247768246939376453391807307514319341224402551717305892117621424842473852125941837122388394244711448189740617577561816974368273828597775796164936838004247782989915074037767452806420837013399572845465629351004512447302429974843082125885998718579298883644091912076639191868500659075180839188592990411608359968777166799113472773655606646982760745927787660812423964814965252719123050807858810957131424797905561659597267796232332039303263317585209482485763366442799884655881604902378445533732906396605680521941185119585753534758124536775298932976694234490453681990427759223880890345883384330667452649229655977083883941412891287860690014243206645287959462424532856237546939742571860114394520777993764637895227330006598850518597106525232258685581364334611970445009462229493919424413129335671098056074475661494235236245484876333091307695109292014196605644060883420979352474754877148758676581801871958180592071650257214671258176784735929889338902265234464321532384332540467397413984166391849301125711299305682728651481338166429043139013296386577589744258362288337000457462698296113572410088452458123042558490279541922174629014621806073923614327663625233638422709267164425300541185427071250352801231979385515221082835854340956013358679610035265633896352132769033062842495099169791864303390876636264545424329410963595576861303449790423743365843642906253149909890513557771482632884059735387709564203837475708173099404043188340537577925921154382464504085689785938181802113439120046096862786958610555812580898351659121623794062502620066960504807944964875653765004914264655172386357675535016655983169281089858880312418622841738534484711338433769873822814995093821032618417656286804140733428806496534506399386768011004573693133684127006859826004740430166516942141740150917460841428626690626011356709821643793122331346842521689566627492402985433162540322661292616860009277610544491660856968091156770748308591808283171469475928814698041166231881961843312801865734583227050767763256859512261930061566310017971670872955943989740532707382483722545929021576438207296393533611243228795596397164851631180736639395381942396332273999637486942857504435154155429875449168257043011266429183355856499886445877545314841468136721019116519690783991874812950520214479010685084582456592518737727767074571415247860751365511087986646750311536759417866191644553184011486420372716333034290172553339456670482141636589285896255219454978668695323602880780385180093849174113404679971248254741128394902867026582861809278588363138777561364254092488114207036449170899634335996272230043082327762151251559862027917175605178759903322610721080166676206280557130096090140997913963369410968852297645260930019766326454737956966963074948669766658459552480027553386010844181516888353873786383321396406734708062462470891662476295155805914547556523139604764446327086154532520352047386772498378258782891667600371441478835884064867368602125351450862608180990957735058242037207758836262438395526595518031201212059721039926040286216169419019988967276227297709002608179474983486671675758532400781361005091989748641462037801987222947279182602200657338316470924590854320191830529305883497803134923570932104559007322621989850490426918461560983102926794221042894717950319365819510209152472740107357745873914247330831233183718038935686162828017958432325681573006762694411590333264327884943803785680567281753424904978270659761590170871831733011277237426994807912627628220290269058481311055575946585718685897407373976465562359180539376683598461737806416697389868674560286480090201849970977019356631021946576255204569952360645774396062220246082757182203493693325086169305983371433123808374949326365693721977760831154550672763693213287465090049699127274452877989797427018493549968792934049874011327362200670633097012207149638287929151203361732641343998496660380413075448798536993398724707904088284301856409791254776157375770852567933845753707953194875452723542808112928717416265664706346377366377792947755670543825611628750063489710845331583799353376710807103687485863109486694383652560358198739860770369135171581112375088033791959835142519562964953365003504661680332474692703385377380050662070138047760846325462244076041706546667372815603114730406974657242756540965510685756420477589112201728434229659503169066205295781677432987855683599944587063583238318035872613248556966570200260957270917544323836017951494973596257531968707901502647192547830810052475302217136633849506258824616323433184419984814159673752634635615143681200354439063355842808598233190270637275899361577605424789559723212623690777112638442619331410303921985859894913065223497426921323489114731420235171887440109593408902449453738480023535023523730894086968889071933732239246545346632149302256043430763050943629607877070948954197124398183952219536871970264119793769560364841307783891632512565061104464143323386211536463601989403356819003984009754392410491431378110051830744350622276720828895365495855667840088146805029695451147133328540056845168107225997201269020221103203772734517099042515473925716490464936251928983781455612092670226841388644414146938653307417888002084412354882127831112676287032014199694851330222162787387270351362602569726412657174242485357887539245216838380627740526959188345219919648115014902757196722110479273706448761161573339450386052729601742238659711497903392365310816317826880375000317143231593564392235953107411518318068507601286241017365332235252464954549639441301265310381933158053637482076638203666365747496147651376474511865150233452874159329861931196783696746578799121304996823957547641896303973055739125057737701548228510048684298145944334393903073381941722053148340281096112230590005330969217598356584393576241408013667460690179233656751723268686982943613266949151213253645199662981322077748779855402771494273275452555191738413706139811971263296929239104084556062555981056043119274591779668428470822124998410699826906205704448930384614049185125083796737510324124125638602223454102459398088526464429035263619000671372745399296410494483712095032261688703299212705849638458490418431417859727588355217924708017012592584421332684625405344556944615611219888835221678385701420647837640649461053430386846986396244082041838902749684086995871485878128372706940761831043272711356987897399880499942359511420157805954863925173734339124928817900896337177874793061955810236870020418813084886356021778571989114167521628750762543267965419596475342721302379937961245264957997056421312116006165458838597673389396205956645247845828973336793229551324207232123849074675894915643456349676687086247071045614651310363763485429437838486997077524024284494366061480652498958075173579619998818518805903823742974561013669749820115665697945096158249388085562822045273086306230184074246485208484550089583981848588716939429088926655905151756664088540483910469080760167328744455686689091170278463870388416673019162550282997076939932871923282251965279705946104987290101287578284914719093224525580544823951883273438061652347344472177495120275166766501004878980998741640009908496269291631608762382355378652254938225370391665175046022668473094111059081049044527233343878822996318374632462291871572416522968420170127628202287222770759166043550910177018500982990960923508222023951734571029047382120295708866175880290990030166630719331893865083539084805221613966660775137431390946331752924976382580068258254403970588833595373286051540770716892393583234364366197748224588474028387540112275259717685155120641759664613690594898600845298659026655320614475871890925240311067820754146371467380429176808190526934201447792928048200488597825441790155587711145497619999151522974456464959452676609476887539130797223384886412215262153673704972046752785616200002467204434094908981758518254587444592380611364056732080610424725709302134165934962159076939636627585030410858609110608498968486966422004999486411033573832538559862248100454187286029680787046498085817069434567691469935176274261922232055668536300212282460523152064881595694121471296146894849500012524563531876056246927259140182639497092022561532397350459170521810467357330211720714484255198726636971424385610362539295968800026536654048684112566867457643707651474969692707642835885756551664460179327130660836935845757579782658975862304550871926686720588941571996083769347233298906760242410064846282033768295045865939997357495706598253058636585030385965021230250317736862146623829105485497160877391255270978558413831972721727890497398583569697488496625080040698123815561481661074100483540228645722532471931536816249135686588782636986921386135018999060033279943710372236513279422676709064740486882864072605543158978158988083551592809911917937641119679280983390795247468817514332067009739467499755095371942989825463663926925807830403951368462592881654252678645060759992811240645306506665600401950583871560487412163701275276744745988411196529862382034260451760891244615667633017429505326663456368272419649618629097229866886580581499116794117722633413822957796462328853910975510490273802268982661401023524429760755558141336979364360500002126970615846739243098418704607053772133979115298798362685625681464089787040010101804070768713922394398176684083187361622601491951049332090375162338161939427132379999075093802437805943864221951481111282741143840508429048706844713170789019948587536229020520388120654103097384626337073733076297405850022081477114267822864518198439410258926513275973076362734124591335954197597361821661309422517852707726504083746506475741551341507895888098547628257349423243295710564488634518373016953461346882214138035756990316638216937997568663181411759190935417726510973340408231461811235139925586708197750828916712626595966206064285829264889431114017038020805814572689351841282405300109746465600231673765569162832707191708619598325148540408387137317748044445747991713912415490762625367924652018790721097033144021040345819009045132354803443365596296420200829587332507908428121004391589236662712596641641063733444008914363586683495738572319730045624818445766266885917329086744269546351084102932518276442943889334637824374919080054529563726789616716793150921293284908487768168619203216812982200292297212574282397338528315534232023768810072483533752594604850128193903671941983718635415516442679078806447598778155424508702458535337355982931999865849472038018864914447906805378675284032311939775464811499903826102856090361085880856363603836036963056315133733081691692131869190998903328625657633941216077289130761992350750106549839589310982685094730884678928418943676303000786567483482787930242116974010344854044175622444886516193766980843320442068412044202506475609447702274571894277205075942679871559493964061746414341063936801660300384174612759562532548872447851218805492723378812031195044602711938776293539940045063022151869914524368873194693493993194124571380850499450634548475752582752151063260864411334544072169494145852152139050645083283587373824002948443725421022806301646576600673717463394071625431180355502962710720828302970307684218274493318109075599475957697917073077648970025352359151206373935384204516757056422294749650176203419100043182605478880473322702265248867672595649008105897841998965874846226011368597211121325651364484447732483428681444521408663005623444868294487811135616010199068784355998708093673101023111092664496023380711085791588254264595453326900820419106064668623968198783199803132564821700217258404362017244330228157571144957743031401169106930584592153309199183770571490023158604575106145128403868612483052856423659102677279458798263256151380714811417106389759056539148600423476158822910911037715446813880780353023225631059313279129439776145568140713488730654557511876349674090945385149286644766384632260986152097579544574400707968696761230652438482914552830262830170791187518086518484296802823658305179235868889773230489377501412565957847704134344905802899420894417896430022577054609802736012406795243894367882868077505637032489802262895414203132962930698161588935273665133961925902401734667427512571089304049128079173978157991300707215408723431003481510817678800831368541953375650417648110546032044141391394115704315021195946382101242281285568493966678482839419729968571303943684247009582274978181928479023892624811596157540241868875950153737371374992780465435239765108504603272557682166498831521683299423269975251566969218230981694008897535001680580810353448059059702042729801242559730634634423851085889467830366772447378340586962014748972107014904331562785089494991647693078630724330936109652722858790854346812777395013630907520476791473387510575683188776134793019457864114204216504376588499341542528299491388792326668621005703573183770138694220671614655946990707280253869533392166332876522072689398765104198346421164000999757284084425741368919596047051502893917100856415257520370685829034852991184711479968785453444021472275051235987661838351943520370252465154116441578074929249142132987156606860876623410664497847207055595104140552594544626064322776127387993417227370080984130286990510608121415441866696076058673879794700226903536545848636852877430718394462831434179609819791984594995575003680542135689476254204937793099960219022548954389294815068580491485744710140008637447745655007568871508179822980067629087794903259249283231077827045628995414748406200622687794305931062282260121792497898593629176331106779276389134360422274709919206097865138292052379362180008005609167295512255205366004645623358578466223224064377285662911513096347253444252173635076550339997543737348468705269527424968189553492572015261528304637405705626239853915196588309583169018892603597392160474788973228505068748926023079450898509403136972261721221041088762986098608867188663713453641165684817384498653569330694539728231729489333972837551379247732392085871811279015918888215558450960177193848364618119639737665182055603877498035309621814111344645965744277193986202897422978120252521241679733417924672741240298013680379075005364454214243933117011079410580055571380684432165423028189689882453411591322704495955383739016340287481403806452975836486676371378873569203731026765106979406569161711854510270164360783626326028590941082973764562956567514340818456251767635527177966525507899242735449253216505559188906427421558362244294577596948145985900419040212084775686958419194374921230907697548839028429233348424507498039341768137651064353507316911125565110561894402022390386577021214792332333366558408615074561719340446336788456025471831109552227396170377799114115012766811567491492719741271500578427325280822748525543148775117794531689600281935672289928878469250897459349179124774180134308179877644215385070703971850077830567319671535070563151137370700408326595007480127113670666067796106536217648199743553493208066901416973723849543511092524317514579912513249505723920782974115057823091224316419006990141851184074152507545451021815224169355241951015802775826671286843463561655072076736844170260987253841442981368152983102189521184418362244507964339120801120018113578812273200304842050263626317333341294485753929305358051202775288685951009685905620063429066064184648459835698737366435054354504642933901308183081921843813784871351232493640206758843186907921686234089417232718373267816466474176071200940230043247227018974198840294041045521841762444062133058302446936935881153869936259180822491367297603480876802503277757160461471038182488517286177147813813662630753719254975260094901949867010971532920816298692885631604909517458827000852799160709369325033021102799734327124854740540026752611456406952125686262813855097176894224236758702612115940400663359490695504733713845070272366700041786672928523637046445580865320968523373597179117128745407392200649859303771402633086834516234269579253009316376512468215952357747618976113857176712138878259342936528668893891102216118964953801790628730589468801909326840694571566734977469374771874359974504387789244128521487528487498749423402342389069003248290007973070409030707881009065026154257138125916585916105741274688692892211709546578067035034920836833962951720958636038390274037973268606468725168665756157243415311527586761632405472802740731009758600874408492319525461329308204049865415767155971220340838606310851747135486515063732541662598766504574310697654881935996407823092823838588900196743857444105544964514972128422809456777928662895474880887221118111010535470605663393418880217924608575343987995535895663165286394297855894918952861330495170087422047704644943562793689489811920634695474534794981053418863307426339993701938381237152941061987463108481572411781473430706287020742688762566755766832874084034431800640470540646819568346290230190082967023305525758354972713074849040237543600177483360002878718121431954888447933970996968664503716394662225565103321167352010771948854666296770828014835369166656548390923870836997611841216303655321901753359681853760060575699192633146914123548057052827653075987318401752746491407639782122456901913081579975078012607479196437222275777828079374159152403268721361929933520390600393645719622872402212930094437780597857522618567851388560212238558494950574358260006810096827233654690590372394238774685339227284767749789376129485199395186437458384463911169920075413319640234272451219232896388003518613249858279588491420914909910891861639936401922641743916215595382412258863504092851862205925175276272971478836314487063880509881129856604702850542270959599882618451012099562485768808530845054642028246194552798299215621319191645269958331276404517637941228876575468509629316586156560920731703723152520942302188516512697021217248787229589823902128147488196006438859958100938443801944652512866026558804746314266617231153236336469141197115920936607781551687867703272989826440508112502720329862525723014986642769575172128805764241686027256815459918824606207857285013746788896399878780582377254225794689115239362680883918903429832547875316714296211161787739690839212978140605902885296892204374808362372576187659986256155895739232591554411169210834860766168860994034218871153253261225204555039720381137550375027439442434974890900945799421024641414569116244326499232731715141461243894200799905959504120506932749913895905807808292049191053505585269738307327265808608223463910033774692128896646522099160525997116616373178073889430631319159900376965855675485045445904536768659714526530899269498614458857753248448608931723090415347194122728133500066040557491518729939134079270927470052584977951193281342762997641446896100339750599814126808293761868559018237688944435303185880964264242327807216210487468770845204719605740673592439493319595206318761401548361912567714399295554459724282983171631397415157813699224917936812889264024026871249409323330274618187847064765941055818010951875968285444780688048546582355753317291528499003585685259981059781641582832801394404701510146256315264001082798879473302726717866755555643321975800610662188554649921499978382327122681365769766614232306103820579275371366467882815472231699671837338778703050479983709479146402633819757646719851666431139264836606178422962257727458765861293072981230022387372156171516410775200647861542248592375609512932797412076272638740454874899315967455103940830614350332927227351946943601945258368602800601408154344255273384030595650026067992247499058475069076747678115091557554088234864958163239215919529358757802254009369070217894520969918651424434844455438257244795596388377670128240452281911440941577200166869375032868392077208653803525661990624710455583125699099909856672101256855334073112508944055911126373989634969715197602708431153060399876695159548233929524144478825678151188457886590929506959921440375999922812548688058768570749580687458495743824263453168176756345296244495372858748164873667974373960355507485453552529365336628584982085035495746457771014758358172251860857601964915548173980214544009060549202938027814033817294462784730040843528888006155419467912501925938602390667737820587895220452039571899765687116466047225052901338846717117478576116231630839822787579724884996933140387293265447967757882318999423126911722209115690061147904225062150461539544082637855766311872229788577889217120849008015441401666929883376439840412441269599228792844414083647510219597520678672301711976732307398219934451894028119150409654565442147922016437115762648980537152968242665815929286440719744808273727761925990964549712266205078980312528043274840588257897239864665843565839073774530645573168135589969428556073098487858241595574503157835886698821656744346604331624891224580814294226117797762972995929004661215294096823906570782922190317437267002995307509044010051484163152196019079869281182643003450653384103811403348481373117479001524015908718196714204732145798538985418238772178670846382942748659007450942445745287041684928402973474311499698214214094045559496898470169943653944931393975526407599188224890334690795807288071069840835735795718006841790637614632814156288820602041990984708209254977816807872312499854320359547027924623520324635589537269462549090817121803166820667620698440168786415202114151002090618115161652096622247813817733722208655351316180772131350085036750760022167384107591279750702237070476577043439716550008283717193682227695492787036722565905213826066001590945780845418351743942040292060079924133920866102326100893322206305611342150827594932907279956251691052818802214335920138307539819759536736640420704434952068209449748433516349822887336321667296862517569721290659997878798394139370432202456178205370461456390908786994319973707371341047993727725510944119357486893315123695007098041340633747786960744412136214526466344981171016720589772479625697924865179329589872781547255240143239360935760800314462491081951130119271006321606805887018412677164530374119159627537061401621536815043033546037222877472028319944104165201724857277918039143887244692448902386026854252672778411365037365655322257322466283701775882594550656012487122301212187942013027624411261281842857866640823962577792180913755842083724704959628764463006850676610662183745604847049022886311417772613214334016768346141168462913295751343785772422767362315493326680186570330622442440955685335707425833010563481120549760093982545563093591771799564746807632951274000866036400043121457352751773312858307960918576203512423501429556327522593155619015295142326215608281340486956331749664056266658866037608312314958921320540911161896896739226745031703253379623353993156920467343819925882806222220418851489228602759552095686266456301778917963797691121135332177691820655906189946687768330165399718234035969061071406442577640371606507305241383508752978781705197725534080253312052009550250671769451554962859070906406738181434103651483639038192334031361033339598982433789778361733470072100212095434417320840625880909090872211097152566904846137524213683322314587362621168067331314363791574447962315483006836836032404263369100454537204236205825234088997427043194074294000011388584545489144470721040207683890600493895397444293520896127405637243987447953044222068169157242883484442537965672403670149746863648928629036491062972961162926658455473739095409822600852989620372769564961612128374695852284110626624744928461189828267964267174551327060296199401193998644843320623281985039791565666899421815291024465825063199326674468983736030578808589409480922284929176498166803418000320424256629514692268298949233937854284501405832506904826018646637347596093306547979065307400276492106469516476233974603052951512126791855115587831276722890901204437065821400576788860076273534751517047735108283200743905382063420440928030164324608151692626750397618788212738894399015338984855877408072595810188800415391575350364576488032355625491311689969573960928754873589901356437911503840763147439518611225532737357969495431633307658927345358918671278929660109460298998532153450423809382470320898211186703017218195783712578159996027145666289178917817033389860179216282477368172787698960856076902353215783116494244306354197730730666443003137755892863002915204697129838622614812054578626856890331802819253996432432009961990740049147354527285351941829437751612294160643269773610214871916180839335857636199661543019449496467950896667212588247345346335367252516133976385209049339246621987938009325801759640355388945659191899370639093550469547217868955928894309664581183523097598814486568512855770952224944095635994164400359414666277195545942838139263604122041105397901543860029865806360291542533927556619014441416215519980990536567310039630376452472722455744984154460691056178272969127324433942291842819040460157127096299103694450814053639026136366326572613543512025253488835279825659457696562637489433076486278689151678410592287818209084751499782913282270846446725881789898134178655507942353262725341272853634946794080049908170261073842688560081113996540210657367690459415184455230295594936821472303047144523743352931761421136015163762794113729462857016151649296207170216202068619013827229673459800378707483953202793318277574688513181107588201231442820432340825108062894326981156249551890028319199240078295618855636957158262733228022056554689829531487104172969505738261353905251876416352795124816298704661052285210185334974783242803772188066732631110978404355038682217024765641999173726530937383904327395503001355653253116805838535994052190882255452291557609939663941567982514376133622585055547025128850020925334765955438074511716538733953048027687799594906810127157154007278220911172513087465573280368413397968223758689868428693137105313287144496061500785664923597484214332357169611056598903005799232051767461106796202281401654800373779536212547176406067768677809596345769084593415930704106237505859276551964823567628868867889562661782174348821152719261409959893166174932212908771033248607191740057148549865167347309665355952453961577584059127005195842232161073894592341000084196370089415542191310477436409470308062117904064508349450796057604307399964763867157202051052892462915479539593544596826305095157284143917166775506111335631843874885443234670442708475744655945659142614456558811013827180844058211844897017867251506675292189107687353723378149421813910709394850024354274171830377940666681507649521850141846232226706588546583794298667578030925637438356380223890634764765503471480425311264360733045698548067997051885241476590069863145587278691101561808115113352615296048461363948432472659525548231268175899118740379380064939949244133464469034592133707914501668126070812227384450637329789040252364259990510966362351691987158797552102434870386491216450827024421433072540692444150872650335493277057233219128756389594501209826556010089496331561232018060223426094273073326686621937194238123975159148851730585405773874925993630930559842203947431447148421385744530138193694736036408583616160254219876228277363557484503777739086245387438405943670330425522731847993061025129967563386197006087841160231301437028962159538363666780278573829355797475272873784506503267458029442237227280575644073761854264418433349417604849819289750334167765737801264978388567662765877489316583479323687320955163582217559585474291547979039171193864248686860679065512583762517367014710985670393076609438576552862391648792605111769545340869264486113434857991840819567672143523003788689441095428325964628054825870773930864808906509726052675107575891581989438070091189088194719924457163095766149949232301726201449337730716655578679288025136108812363026773801356644370347182207365696269689694904091328742753107059712315344664536750729588238615741766085041180338071620554834718337547387509250388418522435864313279698248017733728146188283946246787924965053537910582644875480952875265503581889583361832893142058255848903736323202641848241272798526218201055181032891757706330819852265420442958506624284947854719435718480157214211816097635015461754380348851872850470344149395382287288839157193942817477087704335961845186470180949105412106121821766019737256811149747535192926748856869203990713086995805933244925655061785857048369434652516470285158105166345024354657234328443115129037610825120817588013220581558387806297702608763959544586923713511275920905479647572605590726531796705263087626611863802134753563184183143737920436258270485879378983906115164713710877871342949517115468096512612279847912259116674866823387877794145924963284970413497180556599510369461008334557079750632985489308628057485334870792232966115451471396529342960732191596952758748505616823551689998490373367558476823531449645407643646856723566661283423567298519599344871861194652712007351413512933798656318338077995874126877641813800505802753680503535541541075416252644104760639946216286269672453496461394008876087874695805440263086249558573940831899748291654840145545508393756673021243964775903223883589032958642062214735557269762279419927831745033763978227148190689379675127957280551664273574698666496457053651614930432074103746746737259340612934402464191172412317089909052749877869405655737635250251337247906241138573177607621212148533356733257261279259077695977389908582018441638824554915088323435789409318680077032149887114610310429913314456904145908300755446147613175712994923881225151804985202713261664926351839372113855803938215608110005090545298358739051329639467153910679835150064766609740953390848127246194594086364682438779008667271285436107322630845896661392108030251685468254383336552735458157792102753111787164396433347700560737375510529622583988383064579485046638700087755755888710380639388968780020265879468150428327549830687343277435633195899920269380717717195053539139985478987822218495450450067562025464117905854519088737912163596275673338610426771042311693841887850356378072410711833791341668346668705017289138842937755786888974272306330183870731570249774003796121629740085063312771461945483328372685682475155274669968160433775798772592860577451376787494845719308275165857410200324981048879511740725149730786022758118770431386047401070827834436494844722702721132065920937014704641728151543381042418317513032961548060673715076359324169006337486061345351131524250966812889270571337331309363569204901275370441845745153999122590220332183478488628588873718129540591859343475574311758980422585422319773326946653733768413805194685088632828175933173002811663668638627939445881606400249971939382151642875641585304941363795448202011678315338883019866558776356037813547955318321705241557330500474882866516765942523760255446417489858595083024868303367246506541891809118925454754487464605461416321478144357286695274513984184776013678220791923759011055896378847329509134545788897463376083568193665469636254595175440238067358589830270664897942402913602358157407350551098991745549443444289191600827913155544176459596055234022340568045047634042440754211320448825576022083846815969218489397165876425185110530536170617578415384170939557854588402846599864308157042235553576531561873973151333319892491577655956659270819922459118151345009404687712272835247644030963148641325507229094826884282589377241010144821296406309806465691968362973794002192148817004584158345559421776470477112803199735592192669234915414569417117573639500309778800889243710857055242462907174220183160791824808415297111847594959326896683913618334954066720142756337291959351112902690906950020702649085681063978201752039325486354717319672729791391974157057926101794181019346027795148841675495098514312731890643229627739103655048475464466014066677324310174722701583848560835685093691241055367053393283856280853776974136018457583475232621929777604574655781121391789120217651495686069901911077612146916535531971917730773973932596520869484524471298805142757007884574377854493332558053991077945972343981963405970139243710166648147503412714389560702790204116484872112714590884373711051012743853473495226812571520785853257640564912527834694090266010046210309888654363868563913684014280036773694969813630521481557284174757916427655564838071978148560672993302044900776228729555621646037652342844298263170595606867696020290632417207724632731042029900639984160794838837126707460828926979199065755802883629783756251021507128693373940756021685208278019050619515340091559814974820774726763836815304774012561153034149904119468635319574855196049372020012386609434390690450641738118182354121425487185285987022859695841757217085789212172555982811810962217087245350172484928265346529294689725113302120418444828187191743625699437658710318288569188342793886018018212033666887393876396158854766158604538435014736876702534585690733528120102337513997379033798174903075417035744644651270015622246333667843380912853106358313173582533282813511619113677699271329200033439693022848874443398546147256561450257216718940020377791476743131713903222842205374857261092415788015591836475390347760997453148060868414047214353425870951245945410053050373347526056100436890552389639646052767759185396480542664568297221991275076063962942495076004878214294525506779995822519025391234398237111098390291401970680434353018638694652530765098945830430708940271271672840912538968959568949943987491509819051351090605701666021429172081182804085896828772107725042207255710161262611217532712591493261968520233631498017234823831377095510096309753231927380821687986674804714999973419987497573722057737601231242569510961197306622374284781796320907664157793818005148876758829224405981375778006443122166461657455236092056342168279220851510275397169448571647456983601794908542106577898378663087489684042383837128361665740918866797474828052757645023749732970442450894058589108033692619662766053079158315676660239582603019649999676541030113024176005752649744969260148436417019894356383369145330288219411204870826205042828430669990012149587052158464413488552667079814958264010045551761556784187537865544316586947181902186533325592510259743473050805645132286029309613609610718515530036119478150418180598570556230672757150737859059023270411917956949721676477901547181317949751375832042876038455740535346821777719982951434614915908084622372923560404925167525628238111061364539168224424888140582227459856053071372668403631922124628456261629658766107777236390628839840327709180982056341971357963494562963817591372602743197113518776963339535941602049617674108138740926012603581056157700562982679773618278180400479863619832504264280318035449243816852918521174286733516136910736301644702696433141213087483561118341876762995777431161428357883061620434612509804908668237082751001997461598985437625851986763177519178950500920039920687731487242076331818333730824021803024214123358314360596529446257605504099946469407620167208371772900428127049711473909928534105786281183152842122675336994959419084358266431180646987911433744521552041958778337394059850203613285043595383725226865126076172489361039591242223881774553343691961651266195941073002201538446368072441876573417569140891406736776711701989405696706984397570075848150795277636780799267611562262332077708587896373813675538401819892718386201393607609132909045499137790365634694605400737275409216857017026886582913773683861870612949541623628942274159131610683554558489063970179938661550169456571358461883573670839822066580726176207051375948665275597555437298012650918427417929576159239336804141110993006472272201671221108937247726925475513315620984170840317377575524643022971352496613244146161039163031382824253032727200151086396012417385388830063548948585341463964230937089570756207372434397300553443774948100655073049924183261900385582657471161346202668613309485637752018061407307303360712202021807608222307557921194505825804153568074022701936565827675062785347619775494375431284218894316552172021197414102476495693410323297119284144938883899765410693224014609425494233342416317676454699237207064881976488705315123709034441683780495381202560172439627504139868440150684008307454744103667528654698165009713036874552789303294122871425042689535039531838341194752741378384488007935475436562614949695270367346701103334809119670107468905209609346708292112464808800711624550724812602862980031959211559837659678082285291149656106311795579654720745398455668033778294727878065896733101218395456175565710825511517681994656535092059178600704859121781798541883439503746082581977151278900477625571882906792331045302237791154731315193803390124859706460210816075461873051345752063283843167047722806980295509644377083120679703212108345829094768105365701168400378080344173926084646367015668521710486316591234534569862721855246037480142651435687507895318816046350229880920290496343397031077281235387304376343666371774616041610827190829646673001126103496537148811648296885016581052805365679397210917358840549326364160047163923636710442151023591137971620648055224452225355073723163651596722703825044450785526126666042538734617545562255633251793057524220113369287498006748656862986806756857825992762769549433187402523363916146945712037553666441980830557979307419684957388361531529172267472041533751475753810760295508596909030889135535954563529948803371905631129625596928211143661022605858232529622252557672203247023487412426285165720714773385985895950609134031594970821476695815380837061593378985369375140157048110357723086280325959450755775596589876719029532968813560994183477559555022902472530973407678198899027433905641262790814733465766352338466397948909891718006009139351725055461825139252393881522778417670072627414865884916467285549326655248976233393889349064867817679760524426676715457715357326459365226875436999753491079475058773143022599461097926844280336474774222380708274144734847739078094736234927974975125261853217058636765127455958788710988658464757185754694658630501231376277189844898604629325637490074577579161591961546821560569168540359202583699539017815233847700449472264079614972921181898173783636004487310865350448717143419203083331970493245767354905875550749033235504407987094632771890674699609929200108437680059363769782153883144596492639417169477499730459822148689928802304391233113319676952725063294595720329942529823009131806224979842520741301133886458987723369818717619659745932262473075209236267649568585379860068585148680519222818420359944459431615682106423152240283597882851131085140169620965817862593135792320236303663293880493454781057896467612938639861612723414343192561349313334766456835137377667640939401934555761895320410256617618431566088770653784338330590912811812735842541400564305979231005509020149882499530805754722746190830071088406507850428385361408452519581056610752911633327002525137476214784813683645852643713647197946565709387933982193786787009177047787662618944249593658677823382184639852590581629372455266795745495413271281962571260252285223448036563040119255212534154843823939837251165427285439200724030235679468398189212645941602724775425537661393464042658229638523037462145004165848192717719232521876882378239048439707325817496584441419183494194661905068599355599385331312765459925099979734967765545038896439572704263663287184717737684362572696090296232002486317086865735453323704432188424149453028252389053574447174958523548733362092938990607422971955757167152226769380278907783951588168342273283359776257763117825843135048933309765523345086931992970983668823445686626759732810974766560080167318743964062679118725074865825138692116560100472918410710303509217846407457625432719938958162546883842483673900953420101144607052073218600909257875596487474646427572417888626042137928831153619232693052483362506692012400569612713299829078578932644631016775169018404723433931413972825050731967963670430146535443962655188418797124012971969692584041287966845086051229364153880984940070230078142067381397692024797276104204187645275256035662403571618971513427426631709042993598621145753576950345577335371031054830802494584042219798770364458219442396176246691440572489121071428995566690599996609246626107061246086210737875193697056890703815898890970103062485256790447109571534186033248551917937511010168891158526415546093659073844040809268458574473251792230415898264079907238936024683467506684326910386274455618290739815918143677364509574371007683864519475958515533443659074549615493802376831139379727489124011466416289641173378963001960050411670095484252957073372989852305003747304038314277316313317197780954848621915249994469213234819540957367872881680587038674784711475974966588295740242371900833695841096084415601934117382220740844334932882736348533269651234639051527422280467397549970895860398690436729484926481623289499976862010301542819042904338428578305133163589410813961404357657087940503790003107103932864934786936739314377842736805355830050009757035374172448534303730823914402374355027581954981580432608253209209350302132084756277528468688498099445460565192279749176856763642723356928410996016289772754115269966090001307053507369793319073716716712680936005480057347181733213127891584965944288950788076498877389006913469187953960801844643441607340456882704974697418701463010138903852103793379258920281975678576893007520626620975479857423670467562822576233324970719777402373554017995403480190839452434009769437947647328136292978950943300240321320110181084920881365152551592972135550682235069502771957794949609406087071850656270341269375277584964596985147711676151900103590162835681901977100741806600379105728217148936575977708185543223261823264089155044130449104733457465172086548131777973005628489036613130230556194566757375246855257690155413146643685083251686731187668081263417927856379032082361081256960002237379860238431235209814481751770015747940595740902123391093501491882291754086446928233468697728752658299179697497313939113371392466261602297360914086490905643977532311776989924336175023852231794642584344655509882263191811552767258462375331180796526736547711937817100439832189777493941606498211520497850705590508638725176654428263623937698086931148982907616759942085847845866945464664458388010667405896610310009954150636063085706261485226561244235804476798327187789415377517842839216105107338362393193769278661056424115600876569201985588756439145882572001331805577413857539375431458328055276862112931454181237041228602194034523225058455766800517474762353816524088962238613478174060592793800504636917611529071707864586949992692732245870232665973656445729980496504124162220279696220349335016841737495706956165871380007859715112127977576995225115479546012515228837017718472000252377587565466984576490423715857688456039263303251223645559109633385955264176723291428558420195949742306697089190499169997875157337167981645636900098161486393879714679803874544982085194855811297037422670093671914488638612258266519241684725554617231507332866013907769910553170411384457121445186772688454861032060364908494195727800598763211649665199541043720661164585593224124972293156695479846542480365429784625967633313045089955993364032494799161190318530582561149530490665665551972393468198125519155365809585424943077822682674060049356643357285425691803908126569519175226105837119490673655143512312795940535082824982124439222807212939932485746989225962402707872256157779087344652646770761836214374322629885052252326221456597729067129912406044896044755380989474774065665223976505930184221727438580365234716212217095033131099378022290286923380390346006049895366419123093456463113207275825275892437527803265732946954113807039007873909396863722823974537700317319999742774480667683253916877919999503959109131364114619750529048222471688299322446508824494740678074460068628202780106038423908690175906820107340487575662446837706680949954860411068811534456208917248255303299077368275181641623116876230476857238601433474525354666024782194161110348858239479324316392626898659779700382746447457069850801312189455606255894053615396423394292232214352725417284043426215392924438753944324948407103003718084928739775175613235797530530631019852555052311386787554018751012111957989481145842438850124800722526024103150696625924135520239129451878041098777366837585912856417831327513174204038088232931845113856249519746848170218277842922456366163104858222526124059629601685603595405668539874266661934928198047393533419341369719984384146912895244228009570481003242649603430151479844835073208092214628755164208585867538721640621653322438839599738243878057202840257591362878057542099455786985421536623443310910052890247713225604091846594748681407662375347013074491189482059286160860647435105573757496207350880964035765640301715951418683860701272611263042624085919278418516060496194474083562493605213968681039004674482711015325119430050152922039620175053141799793997120546334547298581555575255734070577550499359472950225491407706720375201946675464152066010231837335542331952161498712916594515159160573234318527969469280182355008944468279567184988292524564401864434655591350879442063487032876932512727668080798697871056685148754998155023659999602316833324602044722277522961181361359674008336130483903449434351659798306686432778034714092148718317498058315275706257489707280159197570487762468491090558280154219586828714813231542972125948313094309928830360995073461761180047736789967742267045910025380896426225506464846922112841137402949961851560476692658286439710948932235624895423181861557577453085718047911364489239502047487179386889665641448794589158193410020839865969735820576921904029638039035443261525721167494231778578937124317194859170376692174689379114701365667871734737503243159775417345248354445090073991615679464781692479819924635429122078954719751778574017114342955079702231818446294105794834192397128487092030205042256495728511957522518040926458541570756629221556434534942095448098989027043295038154633220738927252448991120085917632350475452374878726828025533029781526615326452054480270083917211100935340190616725734434909764740884030303511784738852742093023818862912766462987396651994157325334378253117971212731922329492679696066177620870150474634326001383537842087503846499829409765822182373984520526255115511600811432493484788684136889166441295779461668031950530731735596483967628760772562339454161774173042419904558603128929629455737477726641131112862746600055026578247519897928769394792485750491610689471124104407063881847494050188458685298463246471369140615631079557795891410841499077319525477423904676714456919910331006090365593634120747651106240207442200785123112696766708658233363859159368978248759296358932511663159932464948887178778618617045356994392208317773539603024502610286935800235913429780741475150548170904329527355662241782667834496799108574846359522511622886105311746697480807472739129759262275929235625230859549641499382925278839359128488990411799558516187234848229180847941652660890208916884112193163023961560612095308676810802101196587360639295413581499991915064780110562802261524404165648905712828134789733774819432973322206525014503661029866169186378825478918844650652920328530567326809979826755301128711241486807968347614641695574797498740473458094016307029428927982994548241724132867678280206660622198333695301280950596390379498359063410075183559903807796013288911342011816463153804323439639567152959577602630960589927823827917746678776084859143800220521489523171925046753986662908540620969116677941438667133126832928766585708656246316990877116347444719879905128857931340997259552032753551207786077404095714729311493540784951399188734370560680636599659023414046750016128462561964560386916805382709984049166236982307190107202156331937389295278619695342362238505605999401765065175169863419965447421332465362064703542524396002243453239346004845646064988208654901175460950388152915743476698211545221489205914763012421760233921677114664291265917452219241446589332962215418481414116652457267416771177550309545647640541993767999816589426874944083353307347878744381807355147997901215882553719081189841001547879614027587965666129288204413796095172680294885860164842733737998275077198374159136290080432083414199161284822373341097323433636818898748089940840140593755737292900038048522010797619620894524458765640434623072848449751990931475351517503522111413228322005844136703194238113954724431757018032138531332124832533219612662261552789749248975002658745383895788578155778947062894650094030526856837177328251695378027939037090198110196937858176232955363950894196458184248044993399741877008333097903764414718070258345140306920538064846879714156743431505294268950741264719057733773290073690369259991915719279052213648989827158915081352305621627164000998974189071383172315820133505823848119107258860562167630393069550359487297653546650812383372135375558312806895571325227314379360296532744718972739449367976010782865008555814765012256817828864513162531260949490535410560995715987897425552844407137586827165247556727537332448013379000748920612438015931087216037576775563031872874234941751699748916020120861705849540082360706279607434266568740597647247583296520127008136671769792688788383773054146603557893523834904957584511432556959859826201512675542676870101525298043374424478300629026347915340172052077253039322287171066299201630004760864510732530946395047751287899297619432125430219846981814139728200644412428809388767864796103768021462875455577223588422180810992531683724606804161624259416857879151780591681841816658751632059942253541875509941102933377878340476962309844984423883315981729514714506113385100303829135963920970717974301991101289864053528397573930438875361756159739880061907310747264575243622082846943773397185004280358937907221020990330539901591239575824586784301502472401402816063871695025307884610538662332644316878530276366386673124905816357322948178346387743469451911431693804305382532919886343483117512190559558127826570078395478806750594126226175007933817912297759645224610899753605436242290317595547808464187866013345371990699649145491760340496936123441978964573149613750761934116627010438039644977851007995372304884467261368932944006793790087799115140617393388081140441023366292785109037720960564877459593730464055003744282672866052351855229016529059007909978049713373659603605222845143934248750790538759531978581096853975695599530419666210144295386490798060875448283385061303198189899393427113815121771854414495434724165005149144677007970157237111496326317860465702785252740004610857304487418129746919603220107872696534860970463826751815613598327859122135039476626545024978932642759274703625255758486767361389689025806937539600144188173072774224187881899494920934025752605515590712539416128687321133000146644910601085933511613135238617654495289794262628705511405587275224865521017189143183984621009924015410111080314861858771591014589020182415833146386496894770519567835740823651471551245881073298934311361141963094924854229562620971730271604386248443123703642068209607507986309271455122381952877576025729619264055091288603527317353544151753158321726945579085955551551642534650537560390354122372975892457003726106447717811607419543393145873120127874740688002309516102579421915099093292999296944309338765570844914657780177659303061747757276525627125187269729260833412225333732218661193910634722691215624240695611064329360228614397367831029438410084650144536338212919563704199480920076802627548602587951942042351994101678752033076437933573004478801260748539958249777656725129826283676996080640944005953780156679907150705296208089879891189220522333002288876157802239864971719696932637123875491029790879118492101288087231172633481099507916971606506450982875659030373866598744453066750532199589756172332962744533966006254262795936499470062471646687051423317739043680105458446085250524279458376292874428140252536739685376902058869471666719484224982740251754641590132328558478254002120103007612922694249784992750111266433002581526314261954322036452542907635133652759519312124418289807356155355742075939973469156526776941150083661923806158006739765889054714747800508532555549151472163987020065654974380990698774019808802461806601378853345846902365925613557381193449974675317031284863018629289672461595624910411927546559548378839188302413008490484989614218653796586928116359238347606964544230404718863469646155079193722911632995777866120164896992888360498364115600193353419094544943116149239353388202435928369356169060530052153264251554260624215375631169846913560029123916625438417938702288941440567058192317316011657263053974482848526457309063683220424337087757922039387979112064452695604168981160341456502605103417675331403557311332387625430745353823320558656307033156405204379227134085726010334748084555753530335611895765565363337079872008122744674886361923073138935055476460458536750646853637031365796882278719151547813532809963455954970573477434929063139484964153662308626706152224165223702126387164235259365026092729766051411944162926697032840251712851021370589089306201054667499318297767747191067994398596267420915204025568951600795843122620371092109255491442772425655861760595537995401295826078453688519472758439085568298299228407349056407267638509365286311221194146828538028350224482371162478299214032857235509890726368176161736806212602444924915834343514900791378089221789518944019515755585246092036304937510334704041895379013532035208058375007893615907334797972886575476636551368807141468339050575621266431717874445257710363445588475322755215761021119172452990674024979433033781338373266538021957627983756262975074879983593651921201095460660446250253734689925234759572156863226741746957606511663977807797155367114419930150061950344848272810471190129563704403113940325344005635851833237377866984887070367277761805250002357507806334545051410801822855075608839535028800564664841330808258977382481562802518535183663498901481859061882182233195072204832837257623757991884415442312186270298966954177539249462161764535961117800730264495215352685771388478394928675504443059705521588560954372794926776374471519104779429986161347761201437286600713302690693671866001122130858979179983906039495820869796877799210993375166056077989938001264118189291508749059178799092572501176342002229287386775146712405032391334918688531135711521436615104932796566877393795341046699181886916452928438616565150058016142122405661495815012522325677598887054358870845460967411536619570979733757958458793304481659911538732886027861017107393570785617302833135595891079343527664485755732402505104926790206553420065070124617591094963529072036635675256858091271379266688169296962588475920299556354932587745877307408734572444365473627710037895450926118447161015581368028877705732445445457267427631758997266660769734792369251603359616019449588181495531874008525585468371560950285010593071812318374279054304671504156780781765975478409913887608644484033804913047146812037183649492743800462501581400525229845307960638385587663239697259022549606226944721866692151297308094268335855738599834378062468940069733119442774871100431878457301100456918300864127806246990201438064915684151077585707069111166470529335326807409773621330710408656158544972839997889598239029762128571148206852137527746075834915408362841109953324197550737193697449015879630267917450498673378033275183759576634921904908842864148559641521464171281251562153629755305091222022115457759702416427085249298980922530904009259387766896665624923584638033996171508561487302609156703787630775681660423028720371442772807599304406302327448088662540557650376119302575072223308284142312408334739170916825884093193967589460687120344282311855643464536616996106095725595314371486387368153719885101635894591593953750363290643465455924026781476776415558665540884039343458266679520046860795123715911713497144182478081130926565734802573952842948357427338109507633925148702047223977181448423737417079586415453483834572191005282397657830960548082592671375543061699999684530726219856472772987774650016421103544296022274279463120995362705441826997628638769372725615882378253615940871465782939333969620300161608436723772500544546677062200183527710503703330791362450494044174910706000742728738411013117305909875073542809362992961657326626479297126431467603337279359480427234757074452878641658022775317526797816706252511628736534301217372134015492217849874358672997630545061818274145052850070730856677113439213451183738688734475842674242862181571055918385121724439613033004196196329593134392350417820042387319089884828592822980885382630155321040517691748173835338196887858970271767734657328669658636963884758012727667397072208368654846747076694908209815314613763871857314513889817245069989513069357953575850039020114781539303765561287081958282236169772292340259387945976654208951507543503152370620028240716257394372630679296147188808433825631519245221225012187395646299367515263536334340025640310498849959167124448869797078545743380335697995951418173146882754553684718933943627779184912172100452295041606959756394609344716743791994646655330777933949365764759862627816340673557313706947400700347792899174044013508733501339339527133164724839798908803026286548299306152496485403580184489248188565788783487588418203485307910594609348586666272002093921991449355268454717715663441015724056875572137943495705897187232683636313755099342263008285141661068994395731423709490759512381416308550172368089393025897920736575243562775424095311080723783475283750299420708982980873743224080348200363889745057154460491568678936035407281356842712400315594737312271097412079499750913505006496547355882019625140751960147951767090912245542527385981922782782792740381541517132137092998300512648331623338034906927879363330227968078705856022294915875131220976192907120363038573375593153922554191562548744820435503930153174306281101473646153990036616311989153980382979315087733906149805404889504755516965971028879493730307606340730387684462194896802801669717547297814702930576754797267325999311850310536725330269206278468764747483587575213596287906381801184205577885171316009380442270238315277574162112626532550752970479343014704837082361149656382495942752632868866107210995800661164704763678492680151953261652603454877439318482344642662702101808123597763332050888677491147899095068687440023327026035562099493818836068405639844700135054474084734283329665773762168405411737045991383769818988322574484791136527456860251287674775851681170653249422494836781707073119624838071792758800051818822353515837600037085834289315884175528267792646503037983568156040445960564646361764778363092917491530826570264864671784104602337785034983747606918751466337894519656226376650965066637481384406225947574920812618870388906381751233273221155664458898736245492645929958545544124693063839308573840057633393125781106783040451308784208572177658567782016403516862251292067623266265940714456398224972777974240883076824169927363680633186333872658251259837220363313343902231271378982362169019065117144552745274861730957819803158335717801859345912701638414747858525568568611380671287778675534694662099647765846605204070637359047427300401160524457226116349499013433382775175771489011857206409608979770953663856829580544981370520131042696538507580740087402551392351631208812594767931954809018012912472795025169397772275085339059201775858323241943222413186801996295357891773298370771654870868544518866447538738798058782444867343388213625983895294885931933534650509308877135426082311712553538305210483237993339249296986183752923033546857436746078542255585070958215019048802484971167701214272473737578162885214244136329069281507899763232384103953314513912211846525153443449570033566753520314332282918641967296220368825415434007643380333536186955739806442482995091913794070812864613562196666118079619005304909216441679987579626626461003007137764409789665080784711667395398800518720792473385711480805110624545444749852425337354323069465351195516387688359674523864112540921328933058089530528201868529013374845533533133721433439815110961059788068977496648764860336335572999160945216797498713719260321506131603687907945283796489798983729610087047258105732627759073486865668416715352856870770704794698706801380927001108766408353493617623977930304424966182244929953538799916750530213952104958964468113764913538922884686117340493805041014541207930453082585240250242627851045232617351729738682419633478990510131865345235945493019372437430092537757627625763943474425724982037008356131093639453232700665058073810883747999370621077079135292718819048729300793442990609333536025941700584309927958737180660610147937067545989628053246957694750328735245756467578324196733391382430246957280014720291619996111936227622980398190100895290776125599119022627603849357252015175908998172093416421529492327521215519894970510406454533729546858532597336752497608884937112433182411726114898958816080820912768919115645861751454305082372497335080259394165644024623603321085683178116079216275382903636478330881772654355774254095071482960519821351034354680905875095683096509719126316376716173376495250648369836107856929020444607977811576215525206602551594428803425223386326184508389895968795380466357214361824929432337346241656059855368951488345555016500559480349248825473065474411373814590076343088046040927091086955413372876257797296817639440548049352999626237748894238630839113645352624970773616692853129252320436975344282380722807844998711356980882617218511549307067995272108626812418935357557467407837438203903280404474734157165359337762253221262948122313684800072901193044598691651069175599280681108592474248044847267637946962119461467118373242465514265846416365958474020495187546049757879992762681984506516482293272787425952471304468680438829724056386691610654324906427257968973235095287551290114396143873025548644293195004643507257957248867813399710736677866896531632573728382198039503407373529459332632217920264750880891289846033858935179704108453011097397837901673129012100324842226736346251074969589956628388863241559665617825034048230332248946598677573128245395236947591727633034058250402975430692360133917607362981250009105192472803770872123812822480402537709861549595868972027140022966159864013322372224496475418424107349338936000165309079661642014076280722200690324734060494339533275098210034754773571937283453146759438072549858655167202201920958965248311063779308312437974895847008135973760344810452438212730606044704626615549697198680435951542254129862030214856451731716391921709719925813902381744327353003072200836120750952805617207319960005113596075693770662182422274056896503944104992402789150392597883093910895200309172581050663119021787200474684925781389438969275584289712316102615746975075748575484054331083584758300871118624525182341693803858823898705716766340854861062199355868855708995116084970268079233633301041319657194993569790975578789588650710209640675413709673226311278296861673518790739107529049421938106333261394869999089446955158286378498717202376020776492909491970357581292751441855463268356279059780676208152458439482490730300319880912777235982856870439526880222338903101203517979695050853059419878631558387507354444487354020146603939856244254724614550824576089959363272879179708648099830081938195773953078695157856799475042963008443569569077389402115497427572384347512928711753333918887895455864273840502084227639642606892319819133397109739780890365632317976841685119169937310503425636026711147070144755993020153452521783866145767388599358692315340990481138300263315056087639070857896295324451148587907317870070326572052635432353191048708226254825491941565584733409769961528567726608548423885545482364084709191139673639781774958131844823110661629834345872480700658387850664547262385953595789373866172628882872052777039686268543060018446975758621251537128999527695203238596221643478276765176800480131001375246995287679584757167774959194616321996463038854916798836699917946944221064941978879705140423666803589324374610686864614706176380714013530643286178846758436183928797079795170545594243912490864323694007075534857718337338411600752581840785075312099019851117383311372684090560780790887490277877671317921282360184186583804185872056844379161540672135911108898519970285253878846354342142899500035707459821884422672304328486151454475383880313981578070446105574912108787592516281147636113869814026069530853675893997575930073636825766008796776588971561661579728371500363847992822347224003907651651910617786938794389542906813690426125832731185545582508241615094844431717607862586288819815687127144857942504481570672523037736491471486055826606811883973520963424923052348421162545969880229649002680234405911173467650785925961581350221787948406781735870167377714441098227143984266804428240796678496016231445718218082853320014183918373581001874391162162424354738759748010537972528823975472614950423000582904540649196955286512149113268610373354360697531055675051680872991488818167193046682005895110755006886384155745578907965807849474419289211129496886480905221827058575784509373505858217007308950388885085247008968463931694295923873738232949909073518794625347624623536067760716034109953347641787798139925209603587903296948114235285289936775840041518836179790293298183732657338464010967711268555855963660208869888343773027519175505812401888510233586142957256681297403799668146587677785446068228481603598072489740696467151039998394722070561934290034569022894543393395075848955208686584478656094289743554089959833907922454357544422041392503270808230532519099406992491725525325665272850471970165588756538537963347872550584402719220854945952031210072332937953429306960959796778164574572566206261065308440274969531869996575662163753121187504628922979238912259326863474718195016106082604926741279359029407423606989325069978024834255534429083449081182316290045039070818453068536412582148834007503619810807983374335988387698543713685736097414431797452055100295415739643618462697996219268295231181213019083942558846735077951075925533280494132977186602090330595315133588214312670392520281756872997179850085675522499287499230794939946245157991866560767490660327939498172696637883799742979953619187524923276351003709980119527810093174765743853171397381373130808841406007714624076942587014817900463869070696491386656503503893970517365664254475449736021803655138293320857000536835034877206710766814473228794517971125039085973853839815092593249122238473889562069319375588840616689375359436283956220605630076169628468854484381967350863710431394623685458134083991487870904171610640568329576175814885589727309951581320636368601135555726918612088440419349568753321747814469222045505937072758427440166168349621848073264412196232350402450088525097562297555749321317302976093022919266293865629498242670578198009010639610459894099991133615519122689653134001242335994702516088527814608224896328033470589713441565526819355082960782959230351346012408215065119496714569184079835750043478574603787363903895944112299539481507264407866412675296529246141541468487674704830378797529034597978328175614206611903902138821245708663992392926778044098618775022810733542959028468251584665322142603116197289523241912054642983274418722385395046715713801549057065204845748574000551953897333664336533331885391083301985828900079854255625274409518602611463386533592125501047896407749759797119111001370517615595733274968336212764354377970796916814059741098510912110230535351780334324296318792492840497647336948486932118457518937261709036044269154395498732143243793220915772279273219851603270959195054792691987292222450883470549333032285574999234407780228099956711236318887441819891226502209258565747729256972829451778699241515567137619956355913242851634588758012263536293399775554283040269396261845161785592003445165325712283148654925391324266334090052415960269312233578098050978660838289426196844596938720111607220984359028826753992447686512426302952228545786894606316850928254094922636928833269995391440461386647170930607447536955339603519331412960761154284025310753686573313213361952117390724563952388322595963423806217072423273634286109301725321355258368284594311598061382643761618526192651481714713774251875016503673503417914684352794678702234378159728199684719018375225466504772938958224459624335786609602984961889941115901316430082767744651884628943667809855746428208836905735330743894312438206717098936775247699177520976557855246524113105316610238811594519381495583678034381018996503521085546638301227902515125443823883317641693400993108920653949966186889202959446005410506780124414108569466083175656456933413442042313632263704312368783033516983741995235137065142831702902536518300341285610606267559636786037522340877973211090385352112156357448136423889078888692464247457815461350709782628949995271560309874471142461215949986543232626466646626259827107824712430283629255815934046618757512301169037637848291166856719036521245298851776174187219947915792421650042794860886271253144532760526247088440433555132692550504199791625660364610034358581604144094067055253452219575078971447029047147132687512094569598544416470947056300108908795402811577747735035794777503079710192887863372233297426728646249448158197503152489274798482339441130871268527528835415851636980199527636838416144354352675468296546235572791752612002295106253996156519954672032390538976128459564799941230783044663756215453839698516663200169149658580301450255680946111932914821199805262053838908388106552496173867712927764638766466790582468699915737693309802210763597135505325878805029568077621893737155008918847415137841182472200632137125530271245652341008921303623459607504188979740040797392660743838319138166611520960409636508359861181870330258117347577066410273179984274542932350076400115219558044668066749328549571805253634590769282361897406274013290216732942037451331829501839853207897659362064638835971192352739095173610792229157620277558301922407290328331712492285283642092269630686856354877186696609318828005417479312990466751286887677493810214863646019394357331982452545463325163209598483733879014488053316902533787110908711769669109765972775741459780196594629106915757523577315524300462597429592643111535699072231456712583281698714217084187937105648238078772880082452959072744485711676448012569629985120797212245793889751503647757014691540193013885064612790956175700913750405594205706495291431752411569496170048942838483086848323780422339749646201784184542912920998616545340451700843457170810109111802212647912016510059492315541906100100469689384614593561928555695266014235990722998446342577571957153254647959979184311999715017434427049934737124352921233513737352207428538986774677248652774582418663758892087703153503816027510943738881764077656330818872741821972997406555963367033049217228770439846827380302226487533765886608537754545761208150329348434587633699339585156303881489487831255192222419398285870010260149831499798480030917086985886034531015732264264342171535716097633824919012912410098942554123107304188594800775969377476408206891965088877107279486483961092240472423840288168998394708330485228604774239951612535556393211788955275569144724180875180132980185794058608652001371485404903200137787158286404793374550852988439281017183024998981032528272015643546060506688613165197517237128086295337062913647536179615976586454125056463412521377805188959201208907596603738945750078800895803243356670169359817863331755451665065077405865013860470886773536180944019487632636400520133996316751178349100102246129217012618308473294327343798222719013529789044486519124387375667487716037617873618500986035989848390952425785225637047025232500735507257872292049093894678715685071955131388037217189406494249527998874868135343687034446070357836033526870857348361960032875588192056252425107614227604159790592381938453397160669230862930510171230014837409586802848467446549657446726894294108392409044290546100745963811509415496807256407724347986590859973958228001779188299409358932706136547106260450437603932007303375275864065647546115974703227749713265499583601961136208188868223503988101524502209269368658672920761591344037681854280405363000452704383894688413854076013137065904668631256024810072161728048672721033560291514257625771902068912401426993870939561395771821522740731983809679263895776408756756077398596545483435343401214923338782081980147481478097139857189289980326431143796106845594562888124214453540785598416409591247601139368963942243745846424355450880819553741353158942187172331351447922502857162571430233000019618277857405093219531298602653428139128800827190877478503095238829652891877782687620219506694068672983000013391759822205203746578240828025686931490861368218604400638967368073614380910776111686384717897316839615890036297745883652535903067619584769005329294383807231078955791544993990034959979813360960756488472923397516167524985661517976029930860194471339984085019231931967009520260143409624088902589856235519540435094540487889242960335018859773432823184818433340367091242753769403041962057558194807636085199852493705227903128232353038920718161288273570484230019654967839108414872091476593948540860404375385786577633870769270644339251371394015434949235554968369860625330306925945619712052233203979960589925347373744050964788683844431826293243319415446156133001671856197136638596297043681638460616250586365010849008726687464481131983705157876077021877508068674746272155875948787579104985871722479849321843371449554147726819237361968727015772412349419517950355417460507532357667110014745504811029225592584016663265772360113531743386143312264924241073866964469802004367934083293083190716502228129812423689886936247049800317552119947451616994916060570530043931277224571732671944115537801046680670264507474841786882221463751060306860283076520814100055988918728285144523116127984891960511267600309095373298685885285806925191394444822659350305331848339221750703198216243499016469296452132520681964104965803748313362742703098626238743388763820135972896348695372848494135872966153155778859482005211290452168782953319079945248541938049690017829686201630505953261434745025885733409001136456583431014494018263441545192714890917526895437084183488055981189078146381907247784371105839816289003510862017503320064727842418198815545477269923097985837099089783573279964477996416412662394951384714403120008773192454163341769757442246554836903795735186487595145735214513725173832509315323099807673660905053154987063071171493559483844546773894070679427455875412769391573313343545622635626126356533147273509689075599819397570370546005687762444239485568734172600774235509484445436492107157219145451328800547364782135536335034356409754763271810619427294174904725318682560243045093516128743217758888799145455252368742949930349301304046515392592043700007294147649384768665619137505050157993439810434005098897051118876095433474221325810902917002787342757936778471524224639028585305294758583273381552331378473519023575087395953279071734497863543886603413943764303561822944061771715579311612233712537671118461778891002810433304541108551597072297529262874583920356299488296269570449687844580266384533077171021436578566235774904816972777299131697352518225569599800696201582893226029662181966217669803391686170034138283443282832283170355739450172443200192583880562170321707991273488430185989073301934825319858290256852672334118186812878673435482782680493890079399984403298204995640352965174755694431817357971282851834460074710797060823520969987069120458304999987632087348594522790567046011084838311077010132760024419594782452411238463622420280282289539104440941081784372742181274771563153533427670547934257217246631154414880874091812039682245656300383796969229440317885273005244541327955721112666033491466684743940984820992922276212887156618855176714607136070808430927319200528835513927064770257266266268800894704320522480838168154592205742603650820085003000165872453110272498491296770443445988520861480545401616357277545942634460465096763328699275757658625065897419403092905929523070648106557419836604705809175601077547039427762926709708582549664421329511969941669403111747589128009371373856243398616674881900373873815766606742802158492412095459071433584409517331311397413702620289470949663023440823539901423654942774349377139670310422768970829030957574670869416375439988133737164103421670843454832764132044648062556043938036641951933837852317009545277881173501458690464435470859493607338183313144342771950624433064746182238317613920058061820063906911616871572497395124493833369281865879679046621480853479625014836415571620601750374436948129312078618572760268090430663127759733084713224271268814029082132068189269297625257407896464173226952826538557911494301900204924430348790730746527843678786925306732598569206479580263091584174622826493934612712757893066441152106639663137443331384232167005918186715730454070452761543441250529137878022349261887045285832860145141746319992964139883154111525241001019642726629426927460831244749687151933256243602537332565915021792157139916994410987266711658110250845338265741674701349483355769945220953150624513435863650895604299106015899298465790313474992891215105321563291319462961762051628182870799608269880317671268747779324453810683002026805145605333449800429200570214609883368997701247132091955949781358489084874165497271785925903187483449309806989007665614619785885180315639526699362271713360349716562181389871460571788519642829488117525743720453842474849202818705732846451218732145196882332868408128076488591730609696117533481694009718610512594235444161477774672772973838175790982029884641102884277177916279457282908515520901586274974498409077160582719375807565960932975731225558959471451873759079496360829955922450570400715016418573008333910149845303479328227051874503577379094862739460274225127835260111826651838156349651901871602757700886342421748134948810007154958739198217141587873554886722187576983415965758617907341506419907628602511573219709794927697683944917985203875258490293781792569527406982878286245774525982087257603894444054829014099376380232417436735285126104277985207981448224628031282248419506955819345784628527307887613929247920439088073544843580812041303860599438817926359099964100778903844650797305430578784104623698469990204422756672636922053889815373119323645224300980289630371107400771194887050230287829304326097679891012641540662079574628914580568894309947297175076091866666752798987396483776661181738018583328914306293426551201955391672787470257390107744666104784499085603433120543807700991354174193739063362943490310713433937468609841115490618534036899273970346791019576350748689194828705277451710207977567522493349179061540522762216663430513068211689055918198931115819249722748790083157233565772734248104184610582012138169275766980465455554232987376571311038613172593568680459789807201740379921020874847895217354068822447375729314887729125860665578165637116437619524015398275499165733934615603229150522634322471869907494430886708939604709454400520499484705750719641059722855102989039046460938121215592848132536198767499622827606792828861334511044346716755064660760541504275445466355789297395788153176158293810328462463595239543176306696928195846496734658115113195629731895458727559577650407385683193078846701990080175521667030683637877468714127344930482795523296706839036477047109557053377906339994094544173693276012998334734905458845454678740204874506584171280888837552040961844870423939799802768163281569134451699848801304650017512055422801820623811524078052796877326667501866423801102850332587573184682949824803313060683921894318427467950924508507167727864541691966499630754217453078780743636940301940878460692585051630889905147654940563580131614783603993366514744268301184412399927156576836422459762677130058773688248386288253752758218471498455686767075424381962038000717855235961676556513235465487262287067964432695908397600167797153793278528336592203879656013676542536807422404555714381605128707505056172732568805513892632754447539988572549244684089007140827898963852303447569565588420531836206428101102731836007110972839367320192081441813083027100925792554827796371547311886155181455996143816360925780326941119368102426360480913325350833120825695307802021816311718614323506764056400283844901778777012159928339778206606514874473909624494706239002541620497109750332710125306782661726080806480149682015093547889335866968125904196660797900516059909144454682528026117761407347630201988793421717886527701354104662508388061016023522999434151469770270665308155468835233145412352536017499697474507889100548136356752763281514510871372750798709651120981091275405520538016993444012611441957334055662575265084357981323794022334734367141844510799191251413454757630589195725165549716310451712604882512008709500110559005743041498835610405624473153713628274356200261210476068771313174375259043328530373869995243023110900059867311602415294456277910541685892678819482935105861897925771088410951259911755248355020523837695114670675795123550516399626911782730452649049932650417674832818680566926903712910457960841224795356010037706090071796119634972002330917087391856880741936929613519607356665151881522349653619499726021826915877136749526685008411894289933059643235886589569638759022746169557004303937118715217934075907384557346237533259960081357289263419471848751190915246287420327562452291166668234708299808371771035736223800037263291854424389084652140975907227489175790132738334774383104293608063314171982949658606266485525412863981928752332421060190722835639074810274252210417297321381533289249846681319498088498393781221450327939202701656408854378141657705602371209395472536724149977606486539605652739189989328698298075782026085115169409226529696731257264147293730160669045329020700750836076307069278796577662524051287568369827389222169708482927974647444161086641395237073177824158626119948791129023256176971143045262213817756877253771648474646064074648379101889682477063500386301738310225859904949725137646695496547543736517077122381197998709722599328200925937139038800829126406277856940375995488850668285110397629256559636890729096001739751734327923502448112946909243542512120294041826195895476165870995689286404056699777270500420848028393280467524662092469077482969806038439872899727767537513918553066768540451120278580730563236947732730327780353358173964196509941362201507275178284861016123928074431653514352755322750558328083445861652376078077906282671111562808316224313678361944809760654487087722054064224166448413604661300801961172014510032454926813892096451344614996342876568809490045364875360506840815763272034948572649010639240839406441598812457307293814559224829525148454966264466156687350940317542637195024641329693771656482314550335539191914421491891487684300463312273482825783869262906170907082106974590748488011554686350647426181750397709357102517915565972821600672165407236622688875171867815019055446068920180021631191978460392735626766776536734814237592764300120702840301684255861756842404488379354191994434398920411929645895092997086549200002476710810516134049321289113219580180127265417393635213743747075333427294427406219566123690624581259887551179531045011097646312632538882512934196141571578077183582126584002217308363267240946248220063207226886475250171805928966007381838274035018507609352626794742583740537557073743579919849579620015024143603542442839671177360604826172994686326254571123684493494219289357041606378952939653263523156692901073433496860832951466645749902945450879827563378034115252542383982482074234155038486196210164259850285081596621685943087987462375113757602158438714019736123030774335174850277702811924318838719385382316698763720081010286115236442386044106840221924038260621036166785407672452224200646918621769652282935806096995184962080193113247671866451971310231355217405753140046916002156434342441747727735694065958165330909786340535570341672695104208823599562932078776117385104768073206409375289185302106022771897182544825486470604615263873483150194306352097581983709986369649793407241862827298752575247598244823175814997364779229940224981689892095461889729994324283126027592754139564844306018502673960575002217859068292309814500222408136561692820872666036404733622071387902087915539844468672893807407403669033570244762024185049010837800461223242551175235830204865597481796187977471816092642141519157645667628647818584344221252660022668145665806298358081950400000419709240488818806076724983910549141751751140940607808465837573718946058600360007241641662130119697458004903998971330745298909371689753978932143135063522183854672787922236166015616793203018817013550675932488570702531458403244895122830424377107913548389066262166901972152578278941736229401330566172604740362233884537716124657639307773370403798602372150649561271492709920540172609831671669786029119527151678884943913214839111970824379241735619117386681239043860762501527848170625644148570067433423834077948346983387424787186819416217263163257131535814658922243584348928436284966277796296435768221788429312598511065886953584608571866398007384804822532614377078311678086071625392526939933789993636938947346363521090726190041393729088346418865445813174710597237595470435261948914780433175936938762552710332204932216339508993276643158595312304525242069492150057973235734010674005843989648480566790618516546111435992134825103617129640512389562410782438163771442311996950605533341605990952733858122442087373565820575966487754148019369827893666071019635993874388494492638102266135045495901256859325112224505625867575843347249466385193578085382149902190652130695039050623211561861079150709118153453670593050777719996571265516194548786193043434856400524987192351154957674379115373275544936418502278202321253103070576925501163839795952227572813845803916783902948355939537276539690725212028991707598767760847242824253255472349156657561192140199940506172909008570431521549526867317048509849313744111496354483580565997153762035283160635656339251032739205297628314283580848929272900698605055432609410139118044700481000867907264251435894639965802956144397911460396459599768896208488110929448824274848867819301430687985271673624299830273391629710708798212808309978727498198748103869400900074186772235864676844423412591272926971586881834089229213122200047914043387493183130395334014083656687099876847434464748875890315158735010824778399784619623974497036155230162974593013433402766092975825371640753378455921719381421443546020480769653890820400980194578216587885184931015003332190196131619840957152726903324285484287946872322197020069834330438565074083748722525924926554174681875984319661743444894000161341952999259795958275199750276058695583935909886396176661186123984691558645501537731315446746962276821493558516487713629457890685159219955556809963819671192722941996766584318016535567620228072402297234019106745268446340971578810764014299681132409850114164942091717358326517317602841275634542808347701370663359287060042354695473467736962481376867559966086877831680102235297750384611757227888824806347586452385509846988283575945761092886351478035397597998140816512691767008555883725250096460306787583843767299937927309624813103346980406623804713228704689066775438719206944114288813496630918399625713259863594385836213468813139903144573763566484345194622290422859796662466673172936181452750361599726741038781178193269766581827704984059730432645350795954426233336787228851497872306481996446789246310269211494152027847274589298715353428104954509358210000595282173231334034331420848604333973131626711904328896523393429411447242051536899171991699003151258224780321638389484675765837793881330382716915684819398353743813037005043061356302062812875287099674871114093939872788660783109033351562696902215922110704028069703252749140831284706820871871725648331172897159556296316205711892813877263347130448453546367144120985191643195753577430305626624951054018815167495874472318251915061042304064616522882210770747857377306905662401161404609164444127496636489762798377092148432568869194711804181764846310036744789019621812686074054754698919145445200560875984997436903171706208138422570886652443735717669944676570061994539185724850022122428339477266581852459132554520518133252159598582027452082580956198259320110739342094140091055244633981259815280535952327672273329745750463144572260008375596044265925018190667199305821561299736292826199238310126690940072138193650971354279851898049662884009674080616841683201014943963248138040058444500073518136439297267348710064293402663882443523860331545486309658070109620402791645565027540801783015178898106565582925684063499024554797132842317289394079322456506825068037172681564445494948743393361626559476442452947232305372777491901746055715215073481692667045738131108888895274515341351006707035999202006408666639366360795390158937194169836306903341257049112673665822090295781007154531705278775011540308436000504392212086846425783711137717031556828030389974440313010099354235916751702880231923529275838721965295253737207980858970422583212564783809571186032359871644644006117893507834922087853703333620519656693931505805826399856959618129436683486141264221323083211514534802775291735848291338836274263611763705021100179266839055928719277816777141547042324412899899342464654783943963086542908295279089182883144419257713339956773459949341139535670453554742796188401422265001100013142013009723933875552677171067425266754468139040836727254500593701727111659855261691787814245047619494012238272468304784987803964813719887837434499373640703424787800535408444225464149255969296257092060127061324296828788724183789123336947362418394952013410371703143075515838626167138567539456260136208548874489289003195666113925627806062344538171736185594602761863830445176521856587104083449662488015606234034709117830552158541765093384696999945656457176044769906278035910687575606481702774955300464718217382232892220545567662349112883484942109278666555861199861484751379251407109379332288241138882897414507649004415398631558868997279844819284789779160265774060703434684733866376882467086408452032424675220819439160305709793010063371796126373275902791026023661686655737229097956191656320942716867299277510295633221226433274065012206522468559569994735280307579380797606071241931859378565638513056654789881946684546167831445158556780433695547460711358072214897255285265629160914208843431662519523056511440471145729217838854598262738265382784307809926339288175302492734690540319497127933138794592831914611742898429946057885271030358877270551280481229460705239835848773236777490893787161255126173018314194408500278726579592801671693582492498505650115743762932460735327641710895777419777062065606732462850999431920155077696625540762864375508424797955563687576024961734815651406979581775643146903340224092184494752729458327363875443220738525510010933111613065616495772351763842534112168903118176127957173864437938520927632265659712785756956464692866772849115076024702636685037789441277361061762901563355411098558951475449282789887158259215881607060771414731066435834150455592927988607246399502184282278846024867621995969489922578232054102211113189944675934956996324474647726934714830067035634984279536220341568295663343142829987697524464259710828335760620785068141099852774248028504660275733864879327956747295126442521294536738324176058620855600572653699066667178018605759942873204383553804632558491014659348735088634478164335014459329860058941544252310625487728722537389835809782070145716580754307881923664739848319593502603079832518292070194204229023929459713445366888932130311987907266558949720395750010146291707815698936567197784361817892470395259577106761770652739210745191261310467713753322570243884273610305773736321939490169853611885791337325155689358146097615656484374417818323917107436594254016379756402208040759728119453121001748277422969429798074175876246861878231052229055253777240279209728951024449682720423829191703080474700845155222729769793834966915348507040818195087039116066843004210843309642306772748431682320802245451061188328833430542877222031571008320536682022238182837113390420236181031314025747246275243055257102519277837247007526402990849045008849751695727933457337256801043859620665635620773498440200969898940351895078200593063882706416561461584072133401410548684036131963625882200055984534832303225883421424600061520342321317418229884720438645673120941709577436838782940632932244442256486629284663465322040143614638796679181070240572740247061266692020994721597138933230722088049110814331194906819139923040083070228098225067035168744250947672901952906472298118877086920258341189346176947729837520430855183757092193595481288108572941626492329125354834463999123789366073016216488144485559117508717714114357320233626025692331040690482082132532256227003772038203898320643893084988537002894664859924429211308466937902165613364966420251037173031643464113441239774852509375266946485168438469770608098579111002231770413988720739441153013835433000924681773546387736284176158458062800310893111374272331430354756207973859235621207691624441299528728285893645665975553061112127283798443421750947338134769393440113845188408856168656615372838606946874993655548208031785213941065414585448095439648032038219144853991372033472610181178327213493482551651785447153785408353862260505484020457976681761473069794847384057694437230555389963368648047742888012665875978121555403284627399195207767264232368140322903751766437892680079963234193333249520488641980309723213857806185051821451177491459959567391262306628531659415397549344772245384035339291135153865562041146344715637354841978403790158043201234133447300236563073988864437306502821833151353131047762116199419513239146198244703963771409148584371459538754268921568105921494308677821873316521676205261078415440820805504180759515688451130635136579754111094058422561328562225345577263088293727972507993471781088601816846509449560020173760403111868835551225534235596289178506776140692856136276426713751616738117457103826647668770761503595744374818356187622686861997426343960172437107406574419406526518728395058674771585781595437135352751269479256690805705175258855206291870356540684623217611463608544846938461646555830092597448662640388907757594780791917111157439094625572285120994724529508151006753670766298913163234290252722607150368735112539841061029834819656368149934142688433002903970716100157700316949212046391783762139323643223027408966040731302732912592106454791800682521727117193217388335830158180334590021494675215697795397993192843685667508094677447849995896614147302977893129413582151534233537716238780038064227640166785050231353098478699023352753363356300555691936881921996725720075002851718552295371087265566099027183128043282879112388763807838056779113027658933330620236415013622138615630361700866239816725339396308304714968184567840050098255851107871006466420056628210102140397741891003419677161144015043178704013945333956837154600639020726324270350159284060092152633049747177235826298439855632141052945997982797674394615253952739230661760907184831260774153494587718993577818264201480609113754331958085505636016592107025104253918176226806553380076436289217650765890177882982481824720387906924593371899705560408313952387986204618653760396265013964966811575294833680150326006498652945795277688056788415942403126904638622918787886652212613644542095448582830593050634235320845219415282988925182294770579367351295175791729785358999445912149655811383468061888775353523501060033186390678449328887345354479641870964732196276848381648851997107796622571018138175338904259061266722826056247834661674851522931449812873947548996773693345569877928409461139967229083784284653290776798283534477746093171558513398801979832997862206043490436652723176120369201763426019201327970433897997585430172724370835630671798175306692233773988756748284725772514386416608564705024246478847638143335917236960671061327656644235805263242230102002444010635121249924851030484008285045572255787973530431124976683102987646703390402327343271963532408424205636126321513228358700789933993839329912405535136513222560446445720987799083373427448296746312309317975788858698090851795278589491269956349500915347492305017270989338854901239227470531300335079988183616161959316594655791745364307602669049045775779101885426863586462142565060342234155176682837839990445815068161078890043017766954585700852433503437636022769747801310714561867822743009649200232915744638570089001729669357318500292051676003311930581483575930121359634321658583409298087905899059443094645721652293004137829453255894796559074649416037388103409674328318049357813524398389089691521041208498769917013835448978502509853179282058222041474409895620675716572780954140469501329931269716788152726488889360618346015795487351105616630824134769357555685231689946225424938200310253616227635367872055682729336661970580427613738682138073846777424604036626847802695770446795175504112664640292068098451696069312498060616212616401767359796235998394158721103360694366102969220237374842665980135960404716609365344013136361046180113899191970857512369975545046937609249636258148382696864412431356663339961906073438057475819373148944464619110559431641277597978827757464236132029115784179851776807481253943495276335362641398309593918375833233366472089965616311095624801250182212800782211645434359196667756610231674647988355036262454687874665122613118252140909688443885018819764587022779717328733098397534802689371689091105803126355548593370281920946701638334920623619944573551295682411429147343550344713637956083733182876849294005532640531188395362155236874062904760299392183068962204909175222304602547908955930793261517593687439979203806787314347375762990986418531526262633769446279223252152988855125058575822387655968108640637414399347170231256851434668668836801740579733625390726703166368478210873373648084415462476232161814364508344876060543272816553950207641289187796627506374251118889933298612534978062616471022230112075905631023289574946479962780338861416431141898389305905149054160993181971481013327169739457588670443583272472242940565128047930074868362404290506673848390840025882640839145616280833322230839419020368329752844375613973508605710656503767134672144288878469798137199531284049192897815816467602721236872052311957676058329956242177898513270725871033884543636911473133388898149842504090123610511585030626818830865294296797383937337482408127786392398793883872096788782702239546093310073177895547479661329515334487503381812212220983972243280370964957041082359208490238549232607186061227239812230613395814067620390838665177045083034441600375614942580962716686604018273509127034859278409745690537723166948314308247489217444176865308871532950060075496077637723570759803111423980859975391437785598597595504346580210108654263788460583186903027546718655799267968817883853854395653879915730085856291186209169486498596233105061585675677137198636105435862003805605080677142421675670407242131338201644593682829032974154128446128319631490713948758462452174820177467964248634674294584083943752611332566608665926375275507742231289571670857950666047583595815259352514313593966519110765679309065176060189963454617177054829991143126880897662185000911097249394863001760536522581824134178957858236981259208690345140855167805512646941159995299910124286715360059897779496275379716789478425321994462800542210717839390179859222314037226784044876275019299132187018075937090902641919498242959433009507140669499722852161875749224886604002515233340556414731819935332570755202899821180202034577393143086538499190737165339096612507022030977185745574234133157916723562665172898328282798112497345245583574701725045085730576630129924427693825973220002364403812364508838848018778697876787309597029760225519817342332791621829514654271203878973250714261588433506459110089718035835858225537220833335157860546318866635638647749708690884776512479495668959281949824300674865774806012059370725512333686446741551782550901705206773683805001877286692616563024008064465573846340533888179894021536255878987749997553104057043124302966794981271128646832310739433855430586669318120420669793037441923353435390161205002012832397114899196867583059363886142477101753022009964147176032454827294745297542438104223224519624964402760053468844831190538089240054442469349797422291536830943070533575508829445875177094031558440759530321404192099562254425677353055968081343528324256210963960715719279248630557625561761943620192565373253601509135622492622066847917860251930123214138996148856739134325694363121203466132982091960919354259153309651989196673566107503249993165046685614622777063949706371523315932808371998035115108906269302262685237957057476951974301906111221239600214291674474704456513991626786727017106075664104128735891350209563152993320419521988926588818514345751418895477749327299953136501384913904643510759074951484647693376925473908429351141115397886316491614092597547212482327245853003985583963827792869560789271652857720447607239477856132632297946502708283472381341659598221680759894340640921894629961986835630734582786182022020619689503604513038940936402162757698652375559517303402624416654856419458542837980422048042855220850872163983748324382026831345978758254725904839641645589131462897785670352880818093019476410564033978551709837353148086572588019294968765241935966391488845446347598829413059278475662601064021852086426688150430606461474254825375364554059328871342959642652721102214766154145978947834302467962402394709842883971139839839574999911525874376318361273341683748998252875577372834664819581747308525574910851641511508988658443145683528681391690693486903259440062482259109868771925736118210648000901147113195084725969809796952488684498086932530708728408618015664580059262295657000960233620915669038745149695428797218664216420877073367882034799817023640250924737323929452119584675002192116009661428350988764934549930600211219784354362382650456018727159661343379652605586979895804660774320476625902105458574425194401764706780246391860306257860350524754907004407237199252072069119527221159440828491862150291867163780803102241656983515946112759361524313487762223287140510509353348269459415684028302821072019874566640615458347218465931963898467157355994646363731133669192556759816348778613240128198717883019826666679894378195670237751608568729566578414603268371286415157399274587396836523235752401735244420536315034460286679735356115707471614784723886030481880586068473315791674366708861003583146025703097956264929167917699617001874246210399933782721059069521640467984582751225686509176874910630979925527878590122223715572702335655738005994011999191151763981208707714366862604077314771330791748408348920859244918106658458403396075922832204475630867278579322834437414837199666775929231064524705290482885910155342143734111101694652337616101872249292254252335704957513886005957619135635981901588882885126428956964680107240315753965397519251876116941769071491962718719059781917446467587262954654671589324941444848128187383509276795311951609765237522981133586765140465860472877312656222486653274648948393084896491363084351426250687243364055591175839151015335754023059108559612772249829539162269883853732685232043658374760803692282625338221697305733009843819461322705750934393766092352109617517334956014496432800445394437093323956816530250664260891999943579483793929320209756542431658750375571970330315517247298667563422994158136153860016449092464534011187040333480745723324892097746109691345348914712062029400318592056300177301241107749975433398304688296945081435287563066406846838304355368844909217423528968112929380245319191798718232466324966391700661346718184882673142729283408348776281580778787213450334275199497918408355159332868492854841086047299695743895388035972332971703045097647379330521034242455950759152352428184823134596356489890910732938081307791285997798030032322096817202993464600526943934292601697571789858081157360669671769390820494702987976389607560694267097853396893908939399796548539098096914628167504876750460421383323811394485160764190589224127435790405378457211669716889826537849623341999123048181007304498679091276292241349336967003336754198336673244293252632225251000385071534914036707737996867822870552014222941152673126722788746293130027863825841815142535667786124226259103192853545593202905198875444419289131274990345734833637955280125988638044306959910740121816889905343026227751761312754468216940721284334846270386769124603091870626286524613330990493044406237481139338315455379449148075417766324462168455892172695802268663829059117667001523670606437765188604559651334567355733967779269729631469303156425329222084002896133331259066281553863367276942784820163460096985902005001008764967349203134166700047002885519990434131373721924178413382621148944411573109259194113617314153029981452696722842825722638569667159472112833711186350744393205435178932163397949018605093713490545767173041996888664017105363771306257440017134306983032377606346891228510771440416171888274564473880646391332180214044318228787471824472669801561747674519602211626675606521518995643530937073434299676402673386127744323536723194142456314053117892238446859062127480345360894498003059648732004926633337076964622023994689719901249528852438591825288699971767909964725090904561456889226809463564409251316401558730200593139902949492700916906015547643959607066707862770544718844984904368796705065245706890040049614871100309051451820921331655962626138171116800123325384421922702492844376604968362042061850319354554514848394290574284636937757867873699128867942081192014638291595974200979385847720222462804337015825601157335275576962001527214529479116829119852947677050166119027987030391583481840879706451248137298790222646679717645365842548907147065071770959736847883296976548340791845706609335483334007942249329362046898856330763476302250011691295269203336163423154577112626812927748229336750136769727706374725122877049638754863259341446379434075393789644223477937313579043559846694128444775500398972629028895383764117304849813867044263359928451735434603408133614763159546814073920364071182553755458563465977693120153781480413755794155977712227200381316464130023685236258825926497299358426735255702132114896968813146442994533779124950236787941500928742617674125294230954007168779153698393335425239459306568499989673937736153010850287069484862130679295542620174611223448740297135582484396307349589524864382769167943287569061370654067078523982265918176157718580692029014928727955774498106411870639773584949676064283691205979005495588808676832717559078394426540016712862511215275247565921375480423873020706178503457327045756337560830958318442646614248732900003922688018659331224730343141892187082254499086345441520946802451989594012571977662880619664579056460257161528175285830834203957223110120341998530977011063465053586203044557234032187698715263367280008750395527844184655576204172229277973248880885462549801608695472251761379518893480198529914222160162952785215414545078596442519964769301130313019789632140778743133781676268175387917566954664570263629674736631473375298153273139378276524474382938867294914755866794707057166731271584938804216688850162536882229023662747141567138275430467055676670137229745031631029321559053379930201189983472149060728901517277962126322091011924313780830418699299175787125018866139442685935978414741280285326128959857656947911651173965810730095743368363517903229518889745854307988507552119263499302581107843288942475736935972290383376022374102583435187586252477969156128739194255245736339385100664776711015259647728099417009283680058416829729564020688418219122974012671074190574255141029470693181701687637385175431906243590126045647779288453725790861521851591661749971162165160193949055183544612502503967581369407273301702355641024379435300881090975985485098000206580034105648636943398057774192954543451971922650437281844241748112495656983336577844215559551638948465589218019077707337536101606815312517676180202299522066457316192013874513108320145821252311906182248048880383137845731537652800757683309422996962807822636736033586419649120927014924672629941823804663297234706846678670163212520544666354052347949084361167307745432760603523767973684826498004964539646987984959921539117005311011392488745894618360201375240546291231669259677940176705525825510806793471135693202993346115695787884490777731477274726419027256419530809806330083274140374433546590337793717733377196565931786933883201348976553403173851460585267475486299631589733193703491774336219039988940539721462109510599307438011621996562778107616123637244760204358919206234607553955278972518217920718762535038423809165905206293956599235749447600214011505611095577764931624917309890174896017266947494886006006605532512029031247614239435634239432164512802866051082379647650820729702325145659843640490717168196431111266479343555740537863621327394750133638555193387074914778683284572891637517776778265647388593908444798460224461688188748362322165435728298623222103767913971947597938156083377559136268450040509052821206917035252285448747191690199940051468671154714729132394225298006858544029873260448089466741950898201839338945133902469516420301436525927183823256065982577132418778103438586454333203511172140527396510175030574812872408668880397159391627130163261098494799769120689211735049212182415605121320924916069069788295792026306555264561411500258181974683591381118877130404198037841201963401946303680553034774301733361276562485965305044315450821345741394750764667699139984050574402182864966460677393504516638015081606623757224923223016574502921766213405825177312188247160150796452063109162630049002034070428996356542287816844088307269979216636985565629958529048293546565561441839958522544030921763076225577510103947711127470538194000135657129753672689953424618541030081603950002885698695808355466540276399369155837875028557421836626800500517011599368218640931288065917750732452761571709584805313814291589516785951754859086226060404023170838020218941972476243986885959209818452846992645757686053254100909476294441113199439119984325293560600197613547871928223243236608993677992296378603045149239038091836779138717327183180984771652364931851864665537915879043856071768887843523915275463432623137960537952260451999508582354756465439260935149989097923694128562666274735935298887595288649188380378028396521017683603648617889353059012428007023245399954196161397413853339065561676411641795946721561794178251372574647437910993339261799112361964313573241543735793188771731057249026663051349747825904808598758898559985906252729167535893942892332188640308228351913122188408689559843045549513174314641454044309901969692207455969760999952910919767184353285580067866430006990020592909242559603656915908442802837552785859573912088637897070538225517272082383271054612616158338075394989724996689805163932699541600706609510844660166785539912408569158275930065320908426509700836133989149792952265072195315961171152001787516154415616785165404279586699029950400639509523662823368803283909389030361282532280850792423920090661659045118124048429948979690477059548688228343169958107003233119268245256123585526374754641787364680259208636999678459360386692825975307732193095753855019412661598735769165595672965313064251894239113116258444369325866094742145891141150864945295676047123878059540339415170671506914267577351747198685195110751743042503188704683808032811979293086855217406365300438794136624261933316334485552974804199160193011979377403257589417582383888292521065748580469695158302119101013221311979058205023808490916596959968959378901352283536378024384969280436416458947750333209585832012215314018821910827251789790051090269304472631942610842590179538132166781476974869371522115954032489180205976117240470563197141616261954476291957399839322605864222365394546867834425038874066428041905199278582206059220502933060800479650942760863744595292748909561712772983257987481020069057347373279721435557720552653290254850812163573386438310613965739284067262855558594834234289034024742459825754838682331591816243253847912094516254732522577090083312544152817428746891758508839341284598832082873249434333264012862055096409672757994204068011647594055927795194771502362876302668141214582034242197882936842614356531473139293591494251361318789883294114040098222293611420601811136411450597863295805158861774028912026818806328542289587078597339624038127635989238196729746861837184760727575394843080725458779929003049325396240186716648986450320466100976085497202563861122060961119806302786446184065901604762651545111745891322531655901533067011932760552109112851222529938605007907438802181814647588498986146525209755802095554823538118910904754976834152780329968097019987889193932667396755325447883382716324097290034756129827399662710009425902771815295682859561382691780550960586685230077161517530459106341012057515810634390253063399409044922735023616821041309859636479836858002281762066976681217553671874093877145036125743169908155248956152576849859013376750139711313124646217114469438314407489389240663242868497647020376540855365871525806391904094438719708624846444758382787195726641924633357608277570777229344532809644371519580893468273492425579179961522188972209163943027251964749961781825396398352306433906557607297368148025539613602546930015058932092848696323831832769293535218854812042252914923345871457157531581898913143532577139325304989071937127633533868100144220273923482485109496672753019531663733302383495963481023711344450902596442543894773217299383646383759790463219380416739150470113351743575875391649129151371812274394349044693807045844602267516191910558269682195326126224577419075628454297431299305323323625647487412445422990652995542520508871610267395298929156178009275558124569698875951898212049067589154533574572386116628822566992164384642383890582506838615654891783225287244921022192958860099567361102497181985199869070716080441896227913040910324060801380547546166248617024932981285219749191965750789471547500461885012131299294002409223385069388184984565877591970689356896533156449189383873919502300152799726260861507377675588114642455433961886393139107490798483650028607465445653239547162723932851037377102112104571455726158797389318992260403291766927661596728245837821126737621007122696572800053283028997320376142238336897319347948463452295032653354907030352449146434744913457543989068972552179535425155284170484310764842416934381450559566599303364124497452457323410238435971554670558166814804326975022237966237250741331410268047287395601449738476103757896714116675343508008103210863874144776007270993892513794036849423997047830111233982402500127943627539750372957049349996231480332288058504812070755073620596533401857719563639243045216284560725958948373716934138265726095956527703663149634025413191494309467484738858209939567913399879124917475059585149568896010661162614389067694273299538855327449494255860647897252407424030570505807880533016546613840446522590192647328910330508183517592313951459813785340241940747370557014908004161986982138561534880643774713536673076001544689992744702670408377906567796306543757700342013689326177404141099872112016175406921561492691957920338321442135775078742702079531978265182030765215122568904509026642463924238351780803254428747721211354321552832462223067214452559604846231681339940965994166966159887949053292817034453465057745545119561325315209238515932507214376501925000033084422107748725068984323444933823757055181007330480011736913643622710446953449556604327435383021955034226841085683463346414087520681255053872314899616664959832868406474154316729158274511731029583475779474963427830460038463414574773954868466462037482678580737793059983852133463158073617958942782524572492321384160155208220707435866807029006237539371375997272016227657692061994256053281994976918990698963928678327569512134495352665734481107295715334892623793110346778146364556292801219035353171923242467535302001997709120580760071641993508020786484284769417117004950170921524309751910789523260089579754431309581127479266980180340685021551925838829988254895450044081263242461759847228597913305248422924528997803353007198635321354792410782672174000094689705423206948708066244326689473093451040406808293262802313185085533649313360508735182565928462060306668506869474127031350507115565281024596410083324785608599477260186629376196428498138759190981470206907686155810276598226882147526938850865181511650079156789349874553852055959207285764680989608823728948769011305712059387040183304764918008367372335032476138531788963621858364039777094261787935311391336971210507819663748298543564578247862944551864262430150626191617512626056823056527725880469571239189716903652416334190770589215445904999999212884381023195076933601601888355328720503850518434714423473822614315225904990410083998409889330916921818384973162719618955347568285484380548550701134879164745006438231775315607456363366986657730552256542663835291326102691915638770478904075166268769790863166206547631172474172845027243431211092663093441797372163845069910382356299393539006964834031219031423714034147253733436142899520415332300317303095376789812577133338388032324781812007777879521330910511863853022959812508168733005607156773564007097749505952304908172101997744498242414266527966988119097561623198244137564431333521568613006924128194789102031240846135992126803958031641184139831200289901904505137732716754930439235405870227992712679704684215002541161765983773899173893510106275098699787646348101925479932189291564346299701865575722106065465048693432723097378516506155862096160167963720206924429928207640047832276613262908221111348023527972514893861352479854357846581805462674422028386769256039493869561373637224990395712529817981289015115030922517956199274884413374465848470199875887314550065011600325613894352915817562359995096908604002385270526018905416790207380176014951253767750835621542819967341443481788500789363774663985537667350677746217259290841592434641155191420483712530286965867277383230565479715768441306345408163386573893911900442405015359380314740278358571457554810338958763743865748818791199698563027637480055963127142324447475071588883777123962047808129379160966547673075289437631376224663925051512341212127373712073264070450564546765626915828835789052126727116161439872176012809854577781187266718308917826801908534490828520814342127553181732814739970720710062850557639440423961099038468479207845078519376115094597735952153175528950886087948497044589643870007625706080937244218142828647293670819271359542006987140609045176250920111849453263891204141096579447498447762877860567548422712774166801869398696090523167884282081804672483290309910240350448861733894154680162052229500038127020061855025416574320223783197882898772120219267989013886866833415092739555130271414695926152989147510826240463338141677605140400833701827986663569100612617350578786159492543757568025225067906000835796445584551751485830499433431353981854020428379931955402015918626498941230073268056864957803124681032233936210856085440580020624222529316713107230150643794878266792230752532052883087297826317718039480611649468493817298099009488330416145472661240573208505893233779654603398298417129970302320410815820094129239828968548958380590924986013896363673590771556014919692807183393915682243518113031804329683896960951982509826339592986981438899334057724437153478765235671913298307766653530793002908565679738007953594209169251250577785938241432302942146063717000394548622934019930393033904617663877306263898606527802655980674375873158417084747125326650971727367224614460754718548296387907645291316053060754231940816800435612417906712877314630802094793506258923535765909171921694413463542208440466497150967034394702488759225096343064116965688040303058833776618759275132274046154922540592257574012884755577094678110051300823685943666651086325155359958756405603147244382095236572147061252007637255589330762173243710312647189757710006566934609528924017377746649111108521107130013781182642410056337344803291060709751923700233722212574515761875612538564887685517614239087687763483771348204396856230550240533239979879113615255849311494552920272939930349765616518409934920661618917874795955381299151574736531440398692124504867389106005064222227549521517419644081647863097417060576788974352780139447949070581386011717976034990538326613454542560341187095441184286434702750486236214112372536245087795965213233214524493684707962983144418969012844601351316968017404832069064738630871201545630460503406114383331352713779432519045758893870339778301969827236282027220619158338059975360232760792025355429995471887172263435318854501740797718566922417809805413038783023603817686676612395667297651257298917567114998754943918949306014396842177118712519321659821274845683497337319623156330056393756608624137586728602413829893119680329129459213770346735087818080505769354378402284551454744335029563534016701712614849289488023680473422283122972463103641704834437480257648036017261389630059583338115724335261666117009233300698582704211262015315367605401634415033217457223254459016284550935150019056400677925745093109975211970624442563960716066032246626367674519640648481175551083191573536014032364423914451386057778374062146382934281251636620645499358932785433894246018925333097063898698140424794988035891999127157151721480159786413170738972066662427682995914964525140805627348622584483319249401171606129388448429962427983905053769634264745176272207046345431272827563236846045641684737357411738395544082094521227438621732398229893055359068974159392741538429704606572165923142405866420209238591251552618018376108814615414102998351282432657501938497579230079122137038402969384859027110331894529158903740862807307577173182893477524599282619392097852777653527760875467138910245892842678982625959376590283315639261419035022987578660566703117513425060494272322125149208715112297740601289876186635108042019206119087451512059461661924526101279952829236691412594131403787479015572555756285229122701192377226676742835862774303265594366742644890931582840549872521229978690115490595823918723806700784536902090286077649956909377242062809795143777336666406605593414013742974991132362459908883430146149008756876264809406077701521222313834004222751966583389836490205614874722087000014812429524366422096456032638603697921299501032430046477379233351531137934028139159114592702753179592765842745133999253701695178317596128554436242557685826553613104399732421256127303699072836954721856455652112308173639203746141717280424544457770323827581778510285687064814219676051458114046876107044733412569681249073421136692726261053021449400030576871946220561820798141780778095067398951086676845108244832930263884375327446654057951964752593747893547508662267577967745942431713824139933036200639216085793204477560217934278471605071930636945724478323326391739829423032362274241045515892906448962315145409522969820683285638834818952654417390808931843390152824732511867087328215852315511104685690895899319263172815024517983988966095952792134236034568749260873347366585805264910793588929818425008979295868575508463599922152481435166720969506951360621089298684609428843237425212102342412851161285537048829863120747863330921042171861293064353396883642990862107628091374821915901628542671772055179925431739855638466571596579866588412186173161500076463782908354633044298419652144536422775226279541901795786735994416073658570264180374459510957169609234649174252080580513802761612427276972812584388981061832419972374935945490605200666000879508931896853980443176981690546234109278770337957975734878647375079177888204207622670588239930475334253954767178138916470962474214393146011434633329450247971516324212266678127102211323909489247553024156674144180530732789639556372727683204535918563488883236875677390712186198091717007102283662027551650484452250215519717888160892683075858529445103500133994199297168620831391401856828973750745945615435732357413037941254832105384966868847891821539682409289151702359767861876390601800917007956160833234767130343560419534651128273542327163572308888749037120140077585207630362655974090650733160335174854183930203515196954458885409305187505262774729090356359918232189128569343214618747601230768292622998966706053935218893470554180317714681718471662285134537421781450607893097795932779602074834805388264902130708530929675701365760588110797501284178797753501024446734532407069505329776760308738945341097117063756572150729121700405731300931570072492201019180389835751032678261623612080900955484515613757633629921072396621385261170826107544594823274040304108590161041504785655421207490776026808311310071965598981551166173787634908148166076524266834222349578439111592985322992333728307523954070948305319793036360311324950852328694193780708237124617304700101754670874843737626323096952450461156635146657049349261724304859408036576199591863480236488525550815768294973081230721461211357713038572446970348779003956485473731976819825955230894428930794498692688492241905240419846207727118994726930850787496683993510103202726172807592816298753417812921164509289179447070401906250406156408745623618934490686091235275727159487172481331390842412410396493195984881331923856395990735960025646641201707117978623243892859699238385195407494988513390481832591590420255943145212347413183002306487582369424305294852512489014604678051771665832224093570110981949621428264385870609085290617923910373045634867185685309124006416152448011641210496578061496001889075903287067129081354255924769238322476560835765991228082141261234002956273676969335841932531008324451777610172161005242683881744510671572417372334740632134335790871158346924283139278454785302623421513051297034351905503049806572098759346132818847818731897486367917131643443198523735991883336256738017312871250276993280834072798824115768871088551721435715046688039569879272670416066021079713079798156391695724914977106464150682563889746995887672267555645408467827179205043191954331925520712048102250626959639264050680144444484996859516165141647035614096931804358144861683326689603413374193692024343507934244330845819590946534076799441065518647813314970037388639345294409337180546638449388623369112619020690659161526649267935633366458939306361732191612127477801575390983726423320296114781746369698313109964559265658669473925356938637343234475458663134237986238787407294887249659198672975570015913622598694487174773199784908138543098568052882506649113284102730239726463235917459762339604084596788972080735141305437593426157800174235449200531404494470374724697004463246769453890485689532363427355134922472064832000884244513467310934734888225381787038944348354875345246172333157839001131982118083391358597331118707931259773761185230434246735344314999041696137371649549566623658425129857002673020400212518918582355891915213246281577061641815764867283640145622358995515932840607440973201500950514483687926875716409427868965576879769285982674817605218365574389684944850494373321369946314828184335003617856341659806882624469235569331651188318836171952440738051011214067896608436084739217638812834282667877913955247995130710595204465285371143921780189574455665505716231068224297000132954239663608682411267714289213495351791950683437951997852803391744252541764805918721598118159098908074421344425094732559620568100147984087274437517068588096665957158512837346700094492382439941902692947540451073061334509645150859940750658468644411869613414907210944469492761920066585138112449920996151041945520345455366294873479733853086117222977387356460315484942502720680682766433144889125008593398021624723393154364204640961628292363786618506885597087964999727188899547419136600058061510737111481769574542150507574530962809743938305376573007176823701086528560615624869972461141648264008275466430735964704266393875572588111818460273114033526460429875663895550314914274611029671832592840969401398504119191042040048023321708628561466884122483248474656414725710141189470693687747848850934839776858237310345827677905967781743668201965952255841944773771415724382711907862792029941524502841767238976971472329916650375057141643443487036243774174278350366008177048034689121727997947535991632020859114161555502616507251689270146803179350391510109378415350295042724388059341383758973292868292020595141494658453182468585718852131402664700510358728546470168658027526176768114381690559826176282510998888933055347369713626676353313913651638752872224623019955356270882997147923174705203479678348405547440091116797101294687295675102061590990959867014699389923584792999909702855717033287815821929551199897483683704122707007823859892877458654873771611334386474193087889788632766278487798982838334408331099764852688525524191728029858609159274986798658768141669997230663605051597990342438029308620113833952025489387797094159438076187501330874808116548673252574242396549241464387840291456663875536498257017973746997592884989303996065303133734106022397010676301200454566440083953373041375084604229229315016462002450300771458651879290290826303630085839962393268662812116607709564421727384075487062573122239229853535089782455122813255125142404648980243303228380327720504603634829323447393003878994743655999659065474102966416765434930564313982263083594577753244216945986522871727944978167014837572760875952886406587954951796526972261536629435025601721633604091881925462748601733023671117424602506301988533218023672642695562875754992290528440326955080672622712480219564193936436778065046674720132062708857504959283801411247104648983706086133533835358025857047604049473354731527838030205868895341526562010421965965902316043783026511069036939122509631260064935160414819878156674897524367176290160531872288810480164240407151535997070084813299568938058669355420289456023475042051044701771970325288194234907776663963727359656736159287148040626953491314401043397416667619489640072925177110511769790513179005051526913328678215226009051224666690671160012635788713364449711173902663396259492963821029746160027751881372054022819075032842122670001646951183433505416477413467924389115757782233881224861271503298324034617359236383462242412702570606067119258543411197174982789739576254714192595789962377848914847098777159310449543228356057302961764341847571887493507234008831750507938440645781972073646173339728092120471123897400415038234884937969609319415823032049312856191982547856034578317613986536877086109376740291682657196482413527178678424698968850032318850708198790941157027354988951594942748618983684099886362674264719672972176656076894250093223705207746153646853309919580708370800984762871395773974921409750429238408703928065630227782230831667529577938093772044231150177992381169903196194784561890454887059007833971591092607948482754942253307646852367958150492260909525007885341433428618855045944366385760601558619785297621147555646765432130001281687529985166296776243569046947440667024692728233247261294712811793239392917146354955234190194616175313712735916229941106747196873084087599576883431632615996920119785773217773999958193567329887490415006221454319688560269301442175269368160020328672002932240700778671598887046872168511864933179376030166627215631301908724110850745339816427224340193123891500984690627473160753564291328371095725565915966355581502845109756038139903576556596693984764065839191411594313553660234935713582376939288446967922710835013893770438264180484741459331171723735159667348798400910154021060535574706334028498010720580517099296352472268366866230171816864288492478863866558830670479772173369534856669853442802343744691635731852590544238467628099938079788532005756057932440002929193593755840452701503075944318557329305203174736754437008651349926029890645289941632466396555221945836578876817107837499138451274927276168509939246106495141791163638675074453416868405278731829487890203909102263316403866895819039063043438604378331148683891379937215052084615764385597194324637943891067349729461800804505067949092109324024128402879970879120458570848268597576678627183345152439743122909416911656552447539477632922018250586878796192248120940818019089148322364305595613411660302188288673602949110530333950629144427755649380068749215650115999183206653312644235373187115441994764769157869276336099176841473882623650479119329235056920143170836943180539700293519384644918787442154142231832066736144969384759557951172664864747664320776717607960065514656225471433596579320594345524329518868937717247063217053101291023028029621055518323387071362742036389794606729719190128380073104161113779527567971543019563518616837887311651865582908100046971452213204743500344152144329844244679929464301794672011083592873068488993639964382534011668960879867415496089880891594553763902056854286131519642213935455477224908809816746772985219817264775628809728982754589855970228444754391189124621216086659729983765248331225641517061006804509435844055987737194336447465028812912797655869113814440652421738263076156246411422548850027906046353853608109112806533720971837371894186407198849913700678431236202178543729240741424554552983057076174625318375487362711727645743464337637888704513803664649370613121924918372200202235463042951422141814417556908874913691347334504380152430272462731699104140755163644117281445320537375113504792529777638242007432782225251218584802613904262981460106588627315775546270213179316109486954185122031374815639226889381709427318307614666285391878721580978524831691790688340393297006086235107358815720135352980939660684534283390740705920074239925598961455587232395308876352735855028526548354597561181482571283616900276994378510578740682577708937679516786981200151494493917222320974364261629228867333317251788973726341134811861461729563114829145009538378794154047231823322686702075085348633826960204824588347180449276427885998043188458646659938581572408162089827946610069855999182204189064905164308320035623705867428894781085320092788792135504383719748095236643058136774177633468561773102772700095524116224402978218050504812980820261944573954476240339572871121141670894148990341777275569878210286701501645402856997792561769504735988596242656035533279575861079779414132951399758605733815017180794949284284680013298592534337528638980267186499672617197706300816692755136062120447392595217744219623868259806778788939442520030527891483725792785863580689102829486402941277050017370469447523403802517332834428532419732838417915739693022055517122837449810896493161541042966886979417945479913069815388742014662576758731860939730104452409134517205756817479607289353132584895734073317383923141768636378493083470815392755637579002176106181417958928922280053916771722180255521837980866958006625798875294219065528282294158081900177095827426994603923422988712013798396383878863725443199777836755926543617724643542305099603539575656409707929673852288116992185578926233642336458296462568259233010697032647220853649911157699988932431847120791535591293342074755340967154772061906427230955756700555349504699104116034623236520932458454798137549141732133860798460001255249685235958078143897458676497129893644398475922746146904286291241953334817824432614922384825648337021061285115899337416178012868550209455218496059023871475084240354873348244350464038464783050677250650924850495522118470040742046485658973893445085666053019267692385339447973009097588859732072691133524160524864219193094723500307889163648829575218771239343862633474042103840457111613828465219353468231054671346020137480736344913062486980134493100532875609277850732953194747733772533919098482553603180180852844917814176903319584762259872784186802687373502691216391602520018984001485687330089119845227324235778727777463887902304969099245392660297024075856938688683513112842214499579921942669343031568711208747415133980350280834041621707634337870760892554527171491323517553070514926312831183391145271739318006611471534963062787089223762540238009069976913805292526882871690787365933042220806554415642027867071805034603255366379200947802734006009589613409522145169695406085287546430730682350608689312066487482423853271716337569496347499204971536958236233258742787004834721368876753360981869216574179976831327828639073049604080959718453179465250820479845217830140445025316737318653437955763741297629255270976084200048316410452987504927564603581048554920559955045047541768020351235868891071446793654365821872612007128410974206847761290959918539393602303521317271586114754973464384010344408858898618219442944249317724288376573548734958417572902452024666807061538244005795592255163010206108210014433660249985556372116388387825254552613858859658724172669629915689289270925232341823200228895858367805619819932655180350339411957511845480002036666042452618715321355208433027071876728341184173134088314519465019946458856016899769931572239309383966648002235874493294726803904883377785727713497754248150773682454160961732586706002568226527663635914588581301246371526639376383914161926320842416795414888651480682930257789335003273743509744848294935565791225175581317435334745175995964040294662413542994538977475857651671709392298141964059609926130414822171458068637138633631708079936316911974564575066829365810574675841859638053731496722165315760501241644496876342481481848811334588423386670936011114708534513466865204161798353974674717611023753284082655281426252267626485925069739259159985011810843917401885926558602583660891641720891827338771672330005906460961302026662205177599533438876499253920118185433800775312574280058273789029888910773160984720702220470330527800936765119669444920732232269230819158019342116178517520087142852449077075243448636417284204570829515967206845604399913731711736741516145019888095780119972260195547923314818437718510707599773251977380989882292779725568930756364114049362584165041257928371224240396787069694768153541724045501839244228630832496583456905213210525341553860304384650849878557240519967207903207936472508103090346372743092393679537300130079382347741262398256280107870709638315826402008065238238450863557951440183752923620059969654225460872102490902178076444975479161428003816093822436512304519286434018839789590577416036596400308933190617438197019874493952781281374564300044253687835133502585232229208031522637844170568861902001520167572520761038764796520783336072263715565915827363726214092726007479110346108974699625781762650394236293780439755246794183912015735515463185840410557148753031182981166408867803543161058839214723855767599179184781472955051066043942750968156244566002901880998293227363579598863948538936585575363768479859358762376737193325289704940685803888970681091631099030389398268174019481502930438720315142140151627446160002865907870936998537261275586424788157606001031278123445054297378478782734969036668054169796353421923759537581232258509503343389199303389500260529910162368967054535923306760142986410343851546946130353565352531654320842112348209517325157226372871310060267196836426937734539959658895353116974112440108109242642727805775274105784724117609551451063011835287923734591730928943165028386138369636979175936314668345832302413683178926908399836078247804993403490088218852800521444797053962315678233660785126833513662003677394174148825576292865849618127654858265872850008440978088018348000624320556127493979448962143176562330565484103013863833931738095834510827964989375570965915132244452513654591267609606656430026643947320408966876520825357878140288595945164143321435702280848149586820082728959012800078844012449336364282447382886057587597150007149761972121190381959058821217151797726075457867840443508906788325777398139096804709376148774105841966715122141434894684635137167771919903055189435523476044296045522209487309420898304783348189115802324105198623001825262689955521513580776527653783071535585846666852909550945501974066503617044846038297155961163914882571972424760687132605530392175088369747851647375138665635590281287499692123879966414700860850168768517302231442430747274359082180582620205034257182031658274225197613637495116643846843416235817690890894030479062101621134410322504430000668718246140362165632344658987229933935703130551819041990709679154109021131400807900292828670462129368773834925788290703937717354766767548831207365806037436269444488948767741890599840591002240773699206611288591744242081271567191078017298372284052976922981581823372930892135833944522596327618052611759884892204398939065562169025704614486325667041739130089397190788994316631749325968146132743380346289299949711427397061745116423327232757385692355375905029525156636944246769205991233805958618974419249148539222511834159358206587370571312131062353653145677409691510807281479264063325097160830014730872134246565257803474632532649721412938382867770383016311907275322512269167502894486669935263012187600542967817587920940153744260211406469441306115316916699212689348730476868055885089192100765834762803628101454266568752353684277223980089403245573532595123629971761020396508704717241318701262136045949327417717151625200872482356421934329520051896944065435044391032170296325726497887285328881515921866249561408130289977220313296840827308667103194846886423023533044626952384058388482977033369061521032109820770653834564850655715668790259560922201683526347806250473683974914141513297957205166275050419494483510046372081447189387988029245064219439714788972355559702423730088816736900147080401472511061220148689826532616907012429254637863117460420542041483231610790223796846294685104064297509698888168252567157138001730587285094955397863069836515574987008320905431941090806799083638955975889475581236710542298765374982978446224893797194909553470299455277250358452862028273565924791635861991645319454890705188572512232850741613841318177433931341961021571909567951360320301965636372966878030454416154585986699592486185400678443377059057890443297610826939068385221981802283732189468137018434712354040795717794553317889039182514015888851596445354454169508443484241282354609925676984647768104847886918800515075362134160886911326095870067592493108054713418576083791464922220610459875162863581017005742756894332803722668907110705806380166294749836157595657769181295131674294307354908881181516383361842855413074804633625264457035621350115380592963368903231246851653661496847962526963483999592589324654798697181691740348763693577198122354433498440137074656656703834715518406025535236892431273075019346920094444736215208469679713837489116444140737439063151972580705017437472254658494905630989447086549847329787880179072324354219874019833371339970539076025593429795228429903137358067417594221733904621817284921589629192742886640786040216387984445733174972919006981657085196138644723159725516038777880496397834747204322505791751584940445682336884027015504402479707823180180891595687668620660170216981336522483529733049637127049179381513620554918954110953479785583929684712568015562450788003083344188704209044999306356503656070641303821534559321424843116070274850057273516097313126747917131539539801117376939330265377272198292990936906568306985780256735883533942963092921050068266973156013046680191807702719712848127572002464418156855247600141646737843593392633078012119563388157282184029107811467927985311163402327503292209061205809239980740777554589400119680573158051672362894821784601750496456733051679335472331029434077493196463918047703962536034735213010099999841885552119100379396433757034551828779752908250010024904836945992470792121324322092749496042995880972851729844286830398415117443250750773635010794904618746328415025702336376757975939146780451336252693872855662234088166661223913740660550152265787122565475741044288233021259566480968927762782192834020852810165468781162062922646019839285617498737264603427417555833230127558031032374259507463160799043690724388916414291674482876149479109617551719478948316284163531530440979554955538535351102695406395958921615199261308260161696458179822607318948046382590714010567240316106016683519507545147401321765642803141167136272624994102003465483450842854446385843227226527070464156117871761478915141068842519132473844286390669025084838302484096601390064615017170050492551381903267936867907760867642031206884438439178024744731741253295113197544615457767981982215956982242407942049958726874087233280719171539568668483468233732551870107620671565796404061559250738851222715416453789845580042524394224596815705700955420052643722530312332833722780201306859607216721460957349980457438973011744759538290881986682003869170466127915014964031171054081936223025202874642492721522160146158440033997015330676521151478163191267913151448293726190668850323403389450843038919342532405335962705544379543954971170202797402289926692747878830133638822400425424728725340650953356529922770401447344152263781640668427683633166866872134253850854213872763654024694777033810505967654556653358544570219834045539090758679889062275288232547342420155189430751185137509536312731969328616015222916141479677538536316872158790249188837243640584806493564184774123266871278551150668457788602510738596436706253058550744246326203341897665495024806597526051375702943095038925625275031639188560592597583686229177361094467755002449138183750678423984368096135677892463508662978030935408416039051071819650122925858135744025182147537829989458006552088408033771833999463203915902677491421868065409102314541373494537333163478155051901038258943839023811995119807893561752047244166691705355461761102014476364108113970808481903754345813142505602275930461125694638591467787582732883209689976517352270426479953141211223890369388439904828165990867508114907709871166037239004807909365248659847785185269599911403225156395347215613041308982205119089082030435088122660616928500774766340686732931141934114676398678155931286272592734701298013750125321926122835181499867874294695241172003326022456193799320658869498031357788686790052312819267717389215533236341137376234752531822687859865746424893997712747040367774770872179488303590961686008402873776943928793123053570840405212762653045980692454882516322313393210080554673509936787712372230924783755795022383110647643307339155227908143928512765307397770362018270829937861482004010743439089900192749992007861919731442223911814348873756428582612210047531920049643509835087625584144842645461954410238097650120139531117118307157504504669026845946772831158547796087887050405717952132334129431645979124544953583289544397678228281531420333738363257536972132914964938288262985753647605784437137198554390812860535456639172497598074485790964677347761786434245558769175275698435365875941178063738327505644172002127258704583749185429817602690684336165008331733255347178773304371433065917195120840017323864598710474077682185379402717018447342317611232204429812408533070053881010590065863436110213904324471602884839400289795837416336627162017951382289483400977515302495256544471893359482186715477688186247590952342047032926559298973244053591046286360136730544754117119093807902354445213846343145889703897248415261349184521441222598022677643381909682195897442755870550911021661908025507808866917327545472626462859177968258244738135492062431559219768981471231059869868351266439773939324222127808185208195814557157679797638604868122446063517799601313479274404066002865921359024864577230137771734392807074829306104890761955911744657732659471521818309087081646516750855643877816263867136985515278771007128182706058363431492656105763125835530289119749556545883506223462145055519323538651821869953207432513453190023597383656041311046286874421994419199351287162575333376155272896202894193874976872374216857584290216319254037475085848875733704695827423279676997524084750839070072090992947877100075639083743284857775694836133199942435855749689387888228558217818115132911614666284909623639287137226047705745215846425499135115837262882498910815455012800612958329388638870185119511578869435123746221383681735259943994126264958299240547092227925413534351652519875087074823692332750732079902979774937676490050507020819345022772254221684500746577561140321996922799139906533847739515659173295886771899016329848393293601246938602765225442578705778223362488004970496041369168640971439930183127427848972281531342468626909843593790972963365964073582623792319147224672284145138683312073132521681623685191654251980217825074322178037607611286619493301951640392759029066952418023724802493886509071373227760934359532749721121273678168673993256011976736186315773260582671464223947155598258885954452671001267678623415516578061952288843676636952987057644037506275904714593929072055100832595241838085483003794350600507799540404181181411456059395448792129796101828294119708021626268397882144446429285639217745216612989621002312171312250200824804196486168251495060191582416906943841320154315655433613852497073371188138616141489811516999269837666326012172511878048293517082011774894622370003947394289024089668152626726089476976617125800874972726969099637061294795530062452466477440046976981031481855653803080052687279287764035724411735628086122284354068596513909370562136708628764052980667743775503176140284742732434601381634290542055407828186899648449835610820910096551736089244488756297629793029625373425284964880874477795653357167012862188906087698971450173681134543082090882130473412343299650444822790810817194527311460601543017936042615715539061384318001514767166302754060994111654226668682066655946007036037586407785682579919368129682678796671988953067570843078924685545198438807459284077989435997316218614187182661848786262763793461026477688676469680583403973776840572525571635703443971855763107744852171199853179737729393567279329382256911109172600334934498071376957890892713254525543443967773774222090022980160239399196296311937832014179715536521597122323420729810342942454228634545514640964297406760131589274726361258706726838486423477836156540693985525524253677988301916909624837126256782038072716667158640072229099290256624722598182133296115195014432564689330807358119974428198755543682018932012392031035299646458335769493328172794182194545233741721981774712757322826206118670897455301962884531398819957650013353949067010567328945233934685412339475560641417953981995433380928333923305725476637952632730538627978927636335649062816288091970559928079490510254288459092182358466425256882399275994652848103767996041783381881343778526350285292548116442350783900093729476159054574275346087907511144176114798442468025916981097366802320566316641456673753994151495652396669991951472944649238084612555461546025560162585569087191646678040746931280911763711979186437446019385322628997669731817181605731265314578893322303792271528288443640425576788134114950377465027247981781773313718068236197312532346610399043817176516156652800614632612765713493264967942816359719541961065458384778886215812876809755500259084288884211391217693383390901148793709091804406255801095440630157850832320055961757648212347580173439207834065432061205661798694744003262419209587388400370460019552521286721373609576095674444587110547588532114723400022132456322075273639029107159570317589964112807885647944304916826075390634280572293460939815438587555541689336098084834450212568491322232741410441524447931246635563978597093029945642918903017199820135033434883178163922446940633802426911108169546899542218398685544484602161060998041693938722631008921252425171058619073592958770765655021125786195162466138845703120617552690106174964212553213222024045389207359239436334020840370099757324283961973198589605811548991272488419882121885966079617456752337403986908201393091341277456889778427449972805185047523382402746035013286946890442891263094956272195650816198419591366848450722471628558219817310824070274380522227459956832992491484273902521610444978427948532319465258137112409436993348631476701901729443045409073874373903774734225596116613644900053172211307204817610227684594174669371188040956495087556457013267485627629275528837258196246982193196370382709452603474486806871845692686276856963579681009243861606682402361753281594834842699160857501938927809250030213643319187710356659993141157834762829099450392283590864142772168673655849035090572213075409401513696533898473406828478091097865657633879326668725356307437046981101738569642236636250036668863645321449686866788303010359674703439113482384074285497362688117906283327736002749700518825964298652773711171534749830340041771191296922379881434930053396155018478372243266355989477126216751655892323217267699026728234917203172943873381744523829546942907420275187231257428733029917808421737046469637959376010181175767139094182711058585148205667039916298055594027970268777456793311871692881101657642130173239865533043723153407817198337960217507218113845896758942723705862270998887621551934319740362019859243838067564959251823166439005803411339798277870198972178105877409789802723182277893584464060739719178294965010385193471959642936848406731124110677891879439730020479553091779865852872037485748981517423589317450914122819422342033522231807243808010839712823056768641703882551643317106795926061059475605635357394705797597656148425757729470243575917800686377425960636266476235932044680974722886571988985452693792683961663894277282894068935392874426106899985643295528973807124367361198351750096621130381304050375294699471699288221153919104737861702401699289598051053875153296856783988512972988376002501666291476360006467423042810906273923140680608816516675718331917792842165357231752019997212784670079234237968306464192724351636483664593175720932198535730077044779767444523940679370773428204540598570684208498787673544913573979043294026180036174218366034122938745386891857135774561319875253596725612338799283464503487300408467733341284144612455833343495152900719447658406202056050038153240334431897511619191307586604484560182025311159974026463208655575898835923776492261894334111688872025062384583246669912018887564984022724772785576744210848088513298996609611123105055243302164361986685028428934454421037769727032380526638426770552410894324114531803878453741797534408473176560852940925006499392638677797162118821141916678376896133847373730632531542434057514798554945645129926447984665387783776674702013135342831032616077133433532079592845473727220436038037328927873628412197457141867617121362972194984219816924914590935373015287207678971621480136621739094223318622933589801964974646445162176820407767254810665220738259617774845077366246927561699913542284989021398365228120955000295709536781862615135943389183898307798930835249162362602090824690414867982557216913256932102489220550914872687633305698807037905863144312077052804218042316680387148419502288921976920679106953999525343430027103099343036951468049303364106345402893360539186033531899335161283840885343863340102551839262708497187518454586827192203329117832432346293067183730823669145701825985998259978342493833268199790536085996782587132741834823895018143646449053546178446992561752626323946015237263890604052987637344375353087246668353667278870282322777203704488979678763473707066165699748981786465210207002151551070616283797338906725430155591839884688393138865125717691989963281532427168391231890618277673779736513604187235051963819858643164225447515872980570601411351348829410765599209742997121037016598121999951190516162435434295343808016120457392234488875032055969801608968322674311470890749263082744640162873056552687090370388259077979155270459541576839638141053525302569306579722346882564631606055840256116620721179218894606528411877674543304237108593183745747437938903032920291514944540889163466644496277309348612344655417483354933537671797878688041038045356042693342873338868083779420066030459178184710676931449534215878347001796836419553626006676456925646555892288532810398275608762975640749286895707437071469184705340888958646809329176953990456427264961422265256247919160239318509908125016543795029155205268032315500862421207006148890855914230949107793124656928323307327078544419369632420549269825679852055207553896593716786980153046766590786274341021402888282379703713667639010970778194945678005194039434216875942723451181445464958359060772257651791259901732380502242067579801341857990228250460549938277783968646041520416389216081931016085673626187930042388225925155795003607502907901124970110651573938963911687086150805985477269679595184254379675350571553832644589135849399453052338173980008397646252246008312915582183139914518399125499091625464364307280891036501617211852140154245367909177701873444319847583307906596998602439036661010237064725202621538894993363367678109584193185711210806567275235699456463410371544807637165321369139384144958870556126944042709430808164054530973242995980372423254288913310962189296320707469729323561779407541194494797166121734823978796744928057128716982990509312038564893291777182657526115098859477023346871893049513883811325823401498230492033435776558926633603103038007622681157817017073541317874326998479696021535887164619026071636259167652861750857422303951912714398889536659314939409150587617465203248857287678189295419039877138841484682444948036968711848029245188548355893121825501146263872479213876429681299636109524016408335630165599023304155276950015315140740327162915069438799103766310733600798730751298015807907231946618108558369051282601614320903578419015352445595004876986570678003774269122501441104719799967593541330210021151396362762400426130838819798217862208488736509318412105121831798714696786022306573730262821248865088792933286790408286679734812400866427564888721145358517981270746228361729532729770569708256996315411272484462470285325485063651252789182607064994970585904927829394053943604757153577136267348130425115042728377803966905548333083960648028358746289797896589903232629990811460849824876539073171993000192874716852850574577460709628045173848025514609807429436105421794486984409036502423396125495459847506704201968838648584965468016468422053329107603295166372952186871962461347941041779920054245489623363988802519742114676272318350573478062621905653758302844424266141703429038569712072617481778979252919274437585398461313487474679073259206321265968245458144528250738658233543461417845409053194605093246846892009776267868854379275196869890440718568687105548672593125684407160701184602890604935660234844947431217619087124023035246979370996830581647281053239210851235383662530050864258265756636066262422438964701551461301474257406660769398012891370348306796369326135389538403338671313161423148607987202668949539842728408880773523677424606595976892289873240720453138628421970274444982673436293696754637597223017597602491910105162998374262353717475099670337960279122078126321260775273667387756349357027100797236089519531228644878004221629039250202671308122697777652884415718715183155710495294062114390228617449969484531963962904044681622182125167933577070510221722171486732915104804450293822512229956345806110355313689490036814642318596062661293541876854724945545127421962790270512953003952911179544979908901889885704322211855026560019307054438565119287468737348869808037161987228474861706721290096681195761293579495933452266951677759595554339634415435046306583650218443048640066144010653438816062685729606958355267614006152374858051299545906343968639585345658746725704468891718535369097500380583879584543292645021212757903127182251702194760618253902813737054406938382398234862700974136666958195450204490204708643820714963271886375656054856793593110191663762007678230764977640835017134491506928145649693564806392700110751887529742687289897161293264829960853072468865365197742557348116579345155346279825953546851346744326751968150814759438963465257916298197316021405629376885082846179306658617173014222467681297070326963452190159950892480397031186200483329251489317640525406732653786176123856491088635094106093215127065386075698042256081387023628956422441175431044360188051129068882204327116751613926507330463623879805235715664284067940593670389052329063029479739817777208312630032016639717890426078308113543938349477100824717195670567623263592304001779922901468174292540271030188271296608547237635391947568749674272835127522474577517988346151687572709499395655890314825422559623860191999761078971512408034131510967393620916996015969565174376271174509348082991324528566495761682778643893307176099220317085793804200967950164199978627847564804429406979197837475424039126990957604516755623599116714445728742071242590115993045739378428507002994567785964119913609714096188854167181765129573261049056508562763141023523381336519184851526111784513163570254857430092854976961059125267602607598809168191595700202668962760908386830814694856974644932248170117526856143246155476578005486193534754210577474474624390915783401778467988243590267139410557069032566334087916473161734064916081606938658116252179064408555095441275673535558404311079832689483545864274088426676589659540292999123894207003509578139523481620743133372125108488611019470980612074417320647122740447624204233152159469352186655130375757842893265883818807832469077598482760912804007251899327256618358785957328234099517383406323512000945593439032164283319780506391651235168643070424077042106661767715254394953028813711825743450649220754222652732769616514110302469855711309853914898652196713108858967631046763603455153746615157426602374749309349286443956539547787667080827072975089518190359304298490484537544217452938622809937145727249811259965093766843540184936724561748097803491091820475221961330660818103946727454298795872242115795409134599663171555101570793660063500608665151287407548161342560307322570212750149797147174112621973447445098781266649134319064225510698334011521230350387276949742224898296988249564458016018088239472744930534909954939844851455805787369938709509873778704592398256239881275668089686679302401077910962715380778529864731146623686000193014049665747636247383385986762926052247916209100372594879757888650871632762691097644896625854914011931273793718567531364859177254313885175591360554981946426202040017372369441334779733945863436684932297824103663861986049991844538183709490702543764647689656048086418389802934944788451997257588680042102599336443090421714774336271475336944482653890169957251511835751857458022630093308405036249195686220058902518210901835744274698486871999042152322126640887137957221794568140354398276548099478543522295334046607785622960086357861533517807630042292420814440672147530075264760807338663945848450979491564651177297008685119292393760633213391625364483028258511448751346155568392416977067713088518601393474935065633343585544562611869300725658095505517268834788226957755136791104097877180780929777982439948968309131697093481897456358681679851376028562027652779877836150219116474849556868273656575324327241488695937489357705838365665730990249335028143168644571899230675854667325976506853908799723691291750338068283605865379051024125446653256921714245000673594803892684576637788578513161407956599733246377743230409136716297121179081674761693103105614075062188308301883087730256334140267816243439902302311434566470262200917298044213306267272357021266950480932464087017057939364497411525489855914868773348280743913200863022551858614900144076560535175955712962295118101104837317248989559598132160107081047290438785824918482836615193924250980951936810050801890723199475082741723885157433283831909558031593619246150311534996271758804567269477063623566706775665388168937250335406251803103145222842603976393480962681537550653408740058643029234770610145957980892622774280896750816166342970659383628855800547839413366755941095988835357669172476564447245443371153500785265579437654421628849370255651481952005068935495241922264828229614184732808599694470683110704451992639928664817569174729190006542506889871832100195112656927987328264889156081205427433551288046444408645155621007891630148397142719510173391386287391383113540973146152525606160017577397463270282446318499609302039429360183137821013267182608462873034972659634117718835658253341741466967834274112322505624533625826440723509204723396302358257719810290345221597413210971231426037839759925691135328517238101730190019053624423276777961569410872006636267309205870033417507031409220747895886436794856501307910952113131105935944781644119137748675797978817295036058737716068040706576218027479038655372325074883145209768830313586978947966227302383672288909071016314487728652846610970262227921321672863762768312867129318570296583049030097692913793221026350743360242003807399558359150890500482104925887175049799789658189576359661528331493823003378120785631630929536510762884074734396998806954398902853321201503067756794248053508946921365759992264686996098290040426152750900995432245907143739748664228488210763525569070177163320368532719771484081779989215494753418029095567266740638052257212920535251731541153669089931645166322642166840978509842112766426995016605673900146152874168115942059204873144600177128363983223541656341295840673161295119302510494437911836772809376658719540904743206099911455303917730713742706757338134702630009011769806682753919461776430256920761858539005842963980562633155989837491611523031140403914021428090825225109924921608165625300302028653206271528272261790781833714830838382177629582231143405082680070498946619889683395391145784990788221236604176411022929209247389704436445856601546492876393019560301200807511973047592149552315627511259229686096578785205970143212298280491944964684924240322746201741959848414372741766361994810416339005205345458432558428386070523835581428556700540267626784120030582048364824705759844892747814703575247873951063087769313530862101473598745517820863166365034873720304844740708359254972735292153075496559697384865509568165345104206996502626136721113108934730689653756630022033913664643039894356231137274821901971058349705108953324022272943514184380182049040704263650688115870335285469195485732575865205043385398583400967990829059868931478660171801126944087729657870052925437032279097243148555549007894756502865377343002912362657385961228114632662647661379472493855490167634288700421882806638397663434148459012316461202483041628475052759300925024613825073283466680606278506772975705152286542395021112623926237094672676488981053875198718231579889331095006146394249468248611688004793256962412143763702546767290315502210232784278681613235267126436781612784359768806187614537152901418451119574266552274459386812940981017728507480143821346354445106329265381367193434695073340890190614442512338515113923542951920658390583942271618906281006034139707603808606185808954384133896961168312352650242296226708219090740534950262037385906834450592525972154651023599528555334885323916860778457738332953143500321337104322864718437882811128756639534498503327016040921146671897565003505125168086006871120325923926707131010036257314855171114290069560468614863986840812491841691263788805603345576604806172576035244972235694121927151408981096204624104554134846895849615966463756029497034997946824694750915337065583692712229861105013296159369558477250669798235234339600197821871311740623171130518946386554832508696032337000716374598620226242818845605499680460517057229795174062713510587313377415513923810265156349945019651302070655877773779972257846295675778911600130084071675917058324758424379162801339851713612509601403576204849096286801477509451483111574894840782343831191215899441672612615070679352673996646774513827759720097360813031638321849742483741186029084272291901484066739982073395899123130454485674040257171652547545064851555014019853115007759483720272553734843927902486264963869447957936204139951387052454735140179481502302866558742390783599683441780293666575762543270726758150578787051432011682192913234505959526390697441720187869510264100086052722185583945217873026405437334809056590025371384260394236737179089754112916717039622979994671751306267549337552384504677910184318090742625722026088052218135382365524884985236551111885530596017901643418419207143798080407250383189512220795925159492198329045526642544429510447802832294710154726605113203242248037806776059550584143677596905963432743280360484617514667655749128223842400061547597736894618666837997543820113046256047600391626963527057466545042225431390396022028014065876528851462368029006667215715960820917115303237612343263715931366124368990982649974418395424690248804638377164099670887624475249309849032769039424892542903976642872144593402860212201787588879199509281733125803730041884846971479532501630797802406692299427558372907248593736056804426732779407261344324064946308816705289792832305005170368969156252546938470905488505894129596537037127110299876065699798464219420263195596465668204812836320079150289775577345562740452140674035578823546977451049031776342228618708940365067100886645983284100952529438591396595749577315344253884538685283848241706735216664946526154854970995961199586710047554925541938214189323941998112462883415822256209338683654149372287975612018837477675427081576175724857117644673309619398372782223168060868767683199413632577474595812328013270223897035080296062116671420371438341433453922133030492863022940029505566286189056096425279394012416754671926197615395008695557648970285924023715592220492542669823583917506936004443290148980195774083023431551586921030333906090387604141481569531618866934251419055896116972562425163695373635787621971837556951745555998403055563719722726261238875316815340809085477041756581406476295883334258901854185479634650334164129821024858048745605924993053711736364521428883557268089518091551051929804838690062105566910443972917676916766759823685047589445119893345000887917473485855980640398185310828949424573820687125921130813296004077927735376663368475362167942922445454228672452778666782359871018830324111587916746534801031357686406834335721989364205451559791385922833020767942280381500305471509970929567084985031809529426648503948149266500398738966136315348520320210018123671373794304917654016469928864641054000776630466523273713486884090898869694833859344081860704672711558138267189671285870460554169122157959731681609914579780096695226032081504933369673718285874121110797703055348424826513614866149939097168973967151098604087916595590726238628329067056046476866587369085492503155598633473111631928949716225727541698821247523680244803655677368986802052206588243370202168495599726288094173568879495035248975333455033496689391012529255093577988083842706643174780295966734519920442553718290850110623762800436743196510923561697882133534734837430654957712668384552571119207864320635804487857358018084946081645165791399744034857917452409593685945577996051986524979381609981188763667476331253903362857276194171801252031352753219700625391283625896029866539762846292327198630231184538856293871743486533442007884265110748741328424717136807350903315683729770036769994087988094527668166988088850007546437213337167431496578910860089361497847432378302810631808827405807790430980446875340030424006814360285728904634710804555716728904008023057389549615876362395448301898629196812982693735359599540664276408331113105786284419025761400399220667123559499362014396041900581480465165132751195046146068574570544800240989359156566539271686100813877602420596229818113387733499833484793045494077826428251328759799003458469843676666103717073967804384918203584686767556553528991873007634813633366280916489460672935748036487067298406885390113636723265754737160227665383594964454897211564529783151288829907874332183709316804920401315377899138435558900459932315824296668251060269896637517711325619963164481119294692346137249881656418945981148889586853240579542422938064862987463646323651323240304105797574241336684163737298400886533799058652860418000587390985609114261309976144003676619729196433251090802089370292754446677628940549637959673540496887657432433435464445435381289642216903894863547315078984189467937422836957870032108385797760067362414500799754730489274540008940221979943261483279813582540719019028508835758588083949599481708489484882753941864658367143202714933932138197360237074806776783645054714035866266403972446329204034744966080415567930531333017062887878664315110729643679748657706665901926272477098560436448100405832349156040589664326749910711297173079033180610016073218954713688449014489748715578754347595939529810876899403156827408752838932093243210389562903985796135134873465228008433940090531082199134789602691310747772582241842416943008171557081821340411277545981015437753832029952790142063231835004797666240289868287129879978863742223946124888239765897294032698675044242752257576718281068326488175588772488932740303482797388736290333486339607754458040785063227491759102915178620396772350395432637157197512286622856147452859285319307743113695073169554010171739410456978863125006615050441719098988660933795717977046279186566896157226011062476137682043857952948087719569835333898875079059144237546408634919198472488918525097538651102032292664828260067549655222441565892946807211250713435801143394734303705978568552771050045734380314294433979754268087028639343863513581012294714193377670858043750736232981564789101370320827442987991622723310988335494074893426407364308217755546202826736316541119718760270789692765177818285199073878207506676895764421856847776735769928732001464779342655446880348168631628296970756291847582705195762239973662974382969820094390638575803263131913249866499576731325180373449245629640145412058271753222169662791248320438954061079790627704254350841433646910885437456844355711733298825222989600586012060671425281223809294653943285795442343894875250228155574386714653857759007847926811185850201531560880348493149436078629801414476930484213930958759309529352763564131652568137364757496992293877939120505478448383999572399041265178620445814078343507306516958132830366587544058173200523139762782121524291120904088937433596875119911321964059029845164848477991377230746015667566364970783043421671814949308409732773083626278612192506542691573852163829495623945742858977494902926313481100323534671872888208227515220538912232755289122279929794010652886890795383356538495614538888416081469629932063471620903309214538361077607193577675400821128782339835301908607879802872229777812409041149743146735602689558738571007587441281510068000575480524981994205048768103530333303654468267829813286387106422435737858519895628021478580519667972419083288568233751772343537215089358796557473885415451517975909750914355179739358123209113801965642312328285969583860805118019406745667886302561695472883505517755737388624763459370121342970036040103356793448946573906745511272398513600055078920495360211587003619164082372282913636244191379480785769785023268419807869925000932687157414283536703753697663271737080943142255387095862801446825796117717334031984005552576650450244479313176945675369164517565668695479632597318838455271695167760899963545043951794146831523746703767292714500040258218160592935235850549050247629782747865903857605929472246906674331112488302654464274126636896924444546801443300302662820505917043135900547022269510417454071830358111310188784910592433279714656372346359223035563222890612731342929173439476345334088001756259665607675653454115656000859826454934165427087608666454888580186369504531070101122628502511611985446150909513939485035664418659729991218858396815228736368726883614737761292431396365310724528116907018127989672006830986650688063460438395480222673216389269971117067825804165476315828124561076245626698933488024352645252678669735605526599505242934602026523602914927774125833410354595394836871797218318638731511502508378881759277417907482353980463586606152553050031032622149851390904282020634734289283267039430174932302785546311186428017226378501651488808389995299978379589144052975527671670274363743782038199583674135934352254659982755912521752516307801226681509480504412744284304305531711959384974622772652945337412007200869194342055454569415317697309184265309653700021865730225496188518507010081498154748367192004443136054457777182501088484070670162016773581404573813896008666541794445685968820389780969421522804158271720086364372590371885089885528460957351961916844486554165414222329312407701993738918786156669774381311497234216025051607781393343649548236977669546653527623487508652192643881361486803899980643111452016593536554228277284602825961709221890598845848288674143312655162924697014370008631047585160801921029514174647723472024366281098504672751401294866516599147444051124185523982543023665746252056402841714479922330959817612130352481294387858747111218014947767716238778509282087467002636523186274181550565289765508861351385027177561529554222935081817601957969494311259579189480032143995842908207359202836967025568510290124737131984019224459847761849334645926832515605067337335013652846696274855873412427132200573846834111267530409423311279282917445900787079267459410060569601390277599630140373029774752256230020859681784635229802631691265439135871185083178464494880943228945128414053497756963460443349295532413000077366261989208779943138640369866853347309710065303203944551801009037483982354943752563518667774930496111607510923256617611235310563134418267404627948585362962325416524564252073848861018039491744223676853188377870818607054482806994648459508691056584519465772743045664652442308955656253730631321146994669106561717590727259812884311948442297894094362266254846684176742032238693462842100694052067016147419613823332987576689674695896247399164120730647600452704189272098701108743853726787359427103316215166861691062287443817386767949260988987834339718998554189831266584929794521126789719952213257017422791098091745800237045561839324114191338296117963363248725477622265651900059720678326100635788864451179845187859552274066391102992911086427843125040143262868742559469545073412058121897502144727454888551685015567862360663450572791441669166517754666703033150794652327108106259687731270779302841198770743097496453144951377526982057906382599957719864926340588971684962671154635198537539748980149096622473033928993489257298398409851669633025181332271807275509013106259419871761257911132665385383792626769619252307737882121868496195229204018051413238649980896312864007596713895615459154266903976795239539476286249898560518186774082131400269583998268729120719719822507762240909470499912038984068944679492902637099824820084749189530742694780590705392890878413785940424740395728508521691748319908876199056060117516450896326395698032135818394775599473560315292141369581951842956359777453357163065958749552396029453045881548862189929732436031184542437037783036604477363076065731500777353685860796734710135772485131960464115005245195877609874938249095747672052688552624789242829247593246758554576922415873589958343688931271700986434387375722589767348874414956171310657106390291694615223496455431614478556170364377328401936444422536181821989255336446612785243486591641620500309275372754437601983237012973438220109148697113864813660019059139884662214608879034995275390251275203108633064775773469182770794192001887905556910476719100220501112089456413981781326276990391309936347524697724453102608943333461302738449156503134628560994407145621101830352631734018714365658489907980252038343157768544344635407806986697767124199104673178678048908096630741765403289572364376688967967071503728629180983534763789237991602950677808302353359555970049203630827665521248279156123239913044575841587708696007351158250669685968867204319544228661307245277494960482295900637448967634895595683116255555685087422858513712846607115610649442005241595887542751352594417341823838879498031003808306777546521579000015511421981973580318248571896496973560276915403517038923544145921433680004397208611421435679246377755200059299122810050588278207162218669942655410539592987755068457442160927626960542331194981869254799300013160986880762356273740619206144795107697375802772022895375066934601920692427684552133977729296656488141832213661069558813823057693433157170370265978695627951650139815343536609200579846163111459180017825244739090992695036177172828123903435213149035528864692318292907994333520787169792471924413658931804658533109733765396509645713639435926685458584672560001007928103220820824151535436762169882336700055896146224726929888348974636214266093340617491239503414413053629871966862217748909157527925867855787175625134789595676330994708270326091856574012766946909603572679756739690311349885855505970628797729506056325425848184565984483052064661767236630311969662572483497303532321622819643884270995498450888570002408511826568888903936021055172582716125072051741678587758355952278913544599592965473094424686833234039959252511259952904800577397414153246750506204350625130105032303725535398666146298849821043286797092691908721425638205219917149781108744843605325737468256900790545991992489989250738503233110076668614073852088536179977780795688166621843115603896200298974232550575263132797422335822429670802627299283879073874734228460647428036895883476315280258446936540512604980813819366763402802789626612938627671055450843506103069301441727504863953119511326174494043467218203030267837231344551889028170467907964408769310536949016445134832806005409778962319470650448690352283039129512946526787175035729630083977129694062032218658411028588173695673117368699276928735361248863385619730446571662767397770948128077728263870534725520906654187990137896147276666394556782152097284251936861176424325241817609449486556301241958547863026804229830898384905077078572822000014284764634464392082050137988060405349122826452737729078796561332260794212678737220194891608683117464148208534993153073193791837176298701478355984448403546942477248087369311754156620430938116810179547376228138497706235494726410460268332350165799666127973784770294015968801512943118871117640233392806532976062774079104038101373024010140791870281099060524693700151947786089189213804865685162992751061119678333402863682773044140559105920733018973822251014765447493168615701166914368856704736555420786330260907020840261787421526103210144762598471409588686411763988496724476118328262962182630122386093821423499985842562205726006055446455357188775451714330664283148530880641340050051988319493136842137106272335746248752161323167428801573017380286918632636299441375555735740808655582740347543294206328132550467909013473604578538125098923481175906757271886587832258800703935749241762833441068387876173890980592304591500850418793475042848606690978040723942715686695600541486210239416150430281410397955745559716255974022575704326944644065477028494277203844189927822971603807021780824402453397567918520237587772785157910175040717624223386100198144576012232342548908081800565808178349724951499006760629340495990273383764469138969762675061207669850671614943273127262658010588435780425589154582063326266580353790105951802305261768916772740427243840136153189439297323215248162748943792024998244061233355258185108626932040577637814094475956258577232472560551591866268992880011832827313997550919341889660192232014369059857782759978401838332051782980332090549095288857535571296411582363568996792269317068822915304581795725801297874893212054654685629071226555046453628825602331797042866412580320241787168246315773357004619621657970197353993043932407238441486592657415827759174205606082977257876463766965531544671405228237841689602860886754581101341851663116026241275790123424558328921448442432441169514237028842961662079078421258042295499412367862396174631557691048357057420342616415177826102420068783011836692600240290682982640254884020696515515407006271130676195790981004974618443320330408710706746712152176016516018999620326785826761107773418165101653473109607345332920947138104223475509785277133630510965185535385918617456203498343449308488781106593397959699582189722080093811345872221073354632011691712194501580802285291496468670475604520237102153348357567152693197286929916108150218820888942612507794262182900649572261565045483173428963232982077208688582003111759928237657152336733604103950275846777212389946472894227768372071829427240492754005823927183804912314449724460957497218231389556515449546241503736585179946687921294560520861925200352969423491542120565729272490549942340346014134921292242969971902489790134878208420777827579977103494561376251489058826712871466322814994563435688421209396118040077558472496542569325882709287531769038546208230526867460790061631349486381363514345197024300771703806718032745909765148286120981801158638793744535964621377048472406510142392382163092862005891690434534505208484000791108962196973416953151474456099509939840943963888990671766307222861211394174381785892010159286915957701654208582470568070884531310596659301554300663984967902483372761725052127817541391875250038236749149484379072678471012697946216467387594882127170192999920321312262845119809810715899294932224069597274722516334236177512881804872137315720197038482881664844520670934314927350255893472986819683430501305670917933842843293687042415419087393146410791610740336959540982103656685279690041138485635341526249031642169753413390235582002642275611101619743273478381549887198324927503487566580056183347962282100417929465805286168359963829583444790290629343263740557913803541339795996361643787689732717564922296485384253175543132406515676028208639053647814074730731554395901259060297424901561410676954557438858981463171323078173886326563731953795235224449969888358158228501959118063571047788149697029738435840847074581597462534515157525635776974213542271579249502359787841931637554096586693474383232780363017941575839782659693780014151933436352450497802709978077969227924964027376778761864497104876988818337054728472317014842441675021812299767425679538128114919489640270216169726560573022617718749772352699450023350987411368258564474999738656542860353177083828401304224628930482472703536775003851116197128609231852731156381059505156358394742732749707050988515460348278523145099854769773703887601249482903447014039324871203385337522531260400569197636461739364948600078402906085515698121511608673416072665966942250987926315533065505806276139563028638683980719320146681579090763036405957182767558367682481410163781248873045909710952600170636020381181078217451424477022821334669595313058887157735583225105073248127234917341901929093976031360174233824333587231751420122396634983290653806168992410344312476415875985397350868494469245624612833024652773024685399405286419228555893447670191073433858665322199463657072940342357338893892618304165864456356512667627705533071142334639700216810290321336470641151430367847514722243787817416406203363458504001078397878521175739756741027042782759525431398243377325670891035413126971799876999197224682841944661999083060066430249183603840230335101489846995513125710922717473620610811330176439703820819097166893219703023596018135412673037633434738884746536883857698611525598934182758369910789848446435055013007085951992469580346564304016634449485648438270432925473636138621960952528440842852171727650574293788823165098500572954159425246066878280287408576391437831653322364525707782392657992248362235442644008565352566834534406387538637814796450199383906168796074803663709953428215923784554047490111692464004417591755814906629769838773381339056328444025026599662618240907120393607927943274675051934246109964297485806869265974942430662290194340538989036879171938092081183015797653933844527377527434877509741883650620405645255541215320734551635609484259175222862664061062151953130483276234922293400815957741032138927303570065325055505584035230326459263109590986927507039841193119035673160757522351016736479953137810890969074849435349729260462449856349148272695752786541274028419825762604270350183296509490647131907328086456079437896607940952087765990813681676993954773135724509880945725821059072157698217150474258435872715570439243699640941844676034021227737499359206659328861406665555294673697412177467849229873769176356618719660436139444749297413616942380948398347636071508409069535176403626257469671943072513503599092809594286053818637989442679172020171946967384731091066828772409101299147514199225035842447659644166547434293496054929724642944925697297103780527208677517284975542929292569155284244296983698788661828113968712633432514840569379913875561877676778647496668268977257652638412925208263719200040810036762855547144297867034979117428091773821306570790428921651337189857229868198953712985354344803779211893451385361021720660383293272550019171444332728522930413294644822372480805121971383926633875586687641308032821857889078544834501425520055798220842395413168529853993232433425325815956708325037918868478156932625715196753398649957738821706685305717322647484535015429283528199581076302503700984536113389105368527751323957196793756827254721204170260776945016866917219692316479190599872443894924802218738722355296519626583359122670195417595514669371549801889029255077909202200361569584905797623238302121695228754690162189130753494594627748178694279878059639406918423874959073557168931826262975646013961859486495251690087905948302327473176552023884249001846522345011873131703151206704766052722835068592586411892764420506895400159305210406610439611163936034639861317863894722859335054874304523060790263656649948277573833731584070822937349669069071643989899578215300147024054862328719756234401416977259425875672212502114576104794813982663236627829211257224090597792202874418140479272513725242049578208814952097635741135680960299306283289150393656138577912071573756540386002508534560124406403123085598163138996160519488896863702220725313456933596104506697288841769456122972698756931825078959431671791830969290153512660721296434143903581598493184498759734499188302914602394515543116917419067572543460769383309524501188820545546725451219528427332600192760212043225239415071795639338257694220668856062099850190655755674923218673796531198072680005422730256704251899031054631690954737710735748868698509976792418034026444949499151075796463879925266769652639254271173532732594484897951192178289191215666434837193250790605576904672546346852367368127373379796710123955983550670246544139673986611011950005790273703634259847073177478361273413452937397149395258151211089144865687134623696080133819893237307379580048944529022648906287693305347217425339124583121046822035783718042127917378397307886262645361818616075942997338200531174817760196333900900342635999586602824097903307593403113074818647770680842026692454696878365183186031289227282227447739966193932171865885265281301646263097373363510791853813885700791002775558315296033355722036229708318318019270894503593987004209839335502571983812120799177139632980285934771353974986760069455493902022494525547017492832899879788790935723636461554034436750475380030144326258887832570269075245855853127859287657892201296440221513059398858492369836573045321697060576241513179406432039716534215813387115137214743621409417216497897596094702899012127114907629164652113466182605626094248374260885463053857967011693921324368584694255029924994322692766630110243085722394730212041969394704833858697547982421392911791217630666915045569605307028925661394295233136461215109726315205138255099917729304404947361051375053630526339742618224369815880393311829937331423129603061959822763145676581302986063975699375887583761659002993430529105542222348457305748162189245652675381158540041088086652071259347749482116148631986205574395609407122403034974740035650983098886639607972430333103501811564888565878505555305382174891195497035640644849822669961460513913444863371803833530579651858487284233281605280959354473751073025233930728217969711645826291495489811268007608256967268284270770389173041130382049850896275062859802359443591138206889617912064273120645881389209064219652252376826158692016607241321451795046216704165445817887369683087915602126294341385277167779550623589290413909689623809561088526930251733319714969974374530993440455980616071933717853245813805283249179994136194083603574288965490291035190462315888079893923615047090603076825959802326818798338333886135431284815647567293833511097076304020994724253109400939961795025987103240196790887603769662477312484975664889832456020684451959013150661821139165773167367023442449129280581303641033202532808286130861830620386426207688665099198136882498881346790827073033395841742422942742353109841539702591495366357293043717164865175659189247377593472321400318097448746530284608789483186244331990752221204312269939234790058193336597887653109528727194380089851112262427501452456717408584074895536489667116495703900101956060922795387083370171075946553887029801906766934565615223147537286021614821479671148334606984144251702489717821988276994005237421499555705692900204230914538566988798452397298822259216202201719382997147043698885831563530493977988984818326318509388947776772497808802000172582180832021874573951016638170602441196278490085184483896928396267188547328717473655229998298731872824222603159771163137725265336289329882614117636275030817805291620223472433947094739153577461816324391646614450672052640283220128659549625786521301181281768544301614203785935240227775140308136467064416541192099581202537253485961547634145799111812067371112346662751856161640981396420777150514153149727281449564293326719187463541028970080025786094782208211851244884131671228986120880426912618353163525622625275322517700352300216164346694049618546484548658344394303402177170438528608983730325443618476483229578070633950011919654151034314118577841402685334256174222294588267119351445539530710106872236874535151740170800655567888175160295319558475032788495437941182110626923498745105598005510164570264137749794604951242460266031136481045790625804412386899534985937699885835534104658676225691009625436871659216210105807577950094775075587717137886261702670608841815158306426959048184923215916082220398390525383910272339052206819126966643969076762955208230435932068631535259271304224155894320732596811006333592815068751572468622597599840708545093053445234532332846940461672694305623550834107302264087831760716333380884381712362561314843919956573987543272967545087943421861651420789362262909398364299457381987912295107322815566748852696087605575184799074450097160734503278399632751171470838516256887333775921553293341237855321110592911081270132318033233785870381962728607200924321132613909250420220301822581456548427088215554389927128298950240439100277319729368124187157685993241555163130690375776206951351280852928374587375475102592013233707221272135224772972970970021702266739130463479206653682695410080375388714029858764067780144668427801134366780407817244725197911498994205338282144159515699393617903955510322344927667148895304995789249120617584706376721576911968673597633010662121791739347803211902669026798088778930078549067549329804918318386731524477037969534576506785583548094414706584777056561655912839063458957935810154271412989983742884327446897164685302605335247969112368873158528661504943465231977847127290217716357556358821333030793695868740785388993117871651142877127055458206641404151129453382754158084601886652099655863332738040418789006406089384620237335455685798229484317168138826508629087489100637496856217145399177960730548389094080610753928956963839497815180649068858598752842550679322863849813847325098688698761688956761960289695085218462606912428079065699749384742872047207445555167238723057426574056851840860105047110972431509892608929757023044493242188142792662565434595804644201789159253168371451496068092111478069434210733677925804634100733371771496583445489950871442454631390160379664848560681396708924827152939048228580021834853428236901981546116528746346564376812696562670195069213791247099699227422253966448236107904714715470110077200661590156263668964055546542203736878838188329482497088534630274600169750234455004907427885054023070145207397319697073723574821993962364804056743154278139682044418890197958746285000120089313450291417134484985496468044609926215709612681211765043454567473759658551212948981117559622542163933782763384098687366303373023762741454532340677552214458837690815944747767410559674135546248413047470934555656230941181494521485882057077436365390577047378557506279309298464895121796718922169166672936061303470110822601475071815526602947806082497997745850852473926964533135814845213305594450659766934203209519676118490637090425987330552705524938528454077216382415184208600103609055722829598636084900621620595719977203046758911235660493947484790057554015838298936740410941636577550072170458488647544196142872709073523772733036138854257163584506641094750796638148877643723386693394897438206841426726369230475143824298566087144417518031130806186464883902473190840241170107863551643564510151099253875435605209053851350164276644169355169697450490973910026679046854675807975010157514932615067938684320233711635416610124216324674482978854993496950484504548530137626123407923130869729371362455529691010061942624070852574592920427598933367223679653991396779007790781271760575738999257306645689484112702030275906276630668152134376657021848960339845157200455557093930622112986255149476291460153316775655324135888064106216376617902415462714697989903720884613058245520970394330770553645580035012950915663417666481445202134741324536526896799173465484979098927029321906389667391502068161209965632901727339280693864811565283732316999335370140987168954267884208443339645392663105584539817295721045835356197791859375883469199264900383900216011801287373678624791193121042242439719963333570421294615078884890138220805061841829053675895977832618196815802305162718860613144959165938285350617667248607678376814862476984576370915848261527145587270009815526752993097010468239240489121855186483369229820032544125388108696975781021846565609090542799659400901384715131102060402028849599826156935236756644128305217408997710684263414771916908471222522032441276598105150407273831582536388706459422807429189413174501521233103113537868915875903130753431151723901406733114718485070654489693938200931421720702355220653797965291161349682037928571238874676664263374167095387584706579057493036952156838692901717833634202563621809514165302899361835891496080452725793243812548497739831156807788537686408910680370436722712220739625888343199631381967711479589143557655014828168390156425948130620859981470558205697525304004295231636571431478036528603180311438317188337725614864643990236513825668570293682026029716315706987909752339547524672401142042628450090754581424421370808417296366280686181112352780009706361238895211362825279726865950666956273244290126269631070303022888707655005341171305254671955886903644258949831530520059729983250436859736970850959773348767233428472333939740814638673644801706006864839319138092218540982835546346757542014004737730104577240316806318136206727200973546769764944653447984207539788021635092317288332567045987333131590319660682552404579301108569914397949054941319917652056711522904367329661503922623456831672430317959648472852579571443823549040387269295220612582111912492546877553888054166791481345844871896176349460482624834753589965067802319612606078883941255151558874745439008481292274691435007660997190540902011524569809809060702893186415781608022969712495509972865293277459388643475021592662809027791135882386749937580657873627086247054336401798043837729492378980181943270711133019626006414995607768559740698800990905975930093347736564143122949257318654780989733480573755871101795339939895250598723435221277599349659627733487558053823773656106114928809497219965459470708121539591186431058561796140698887469264146184299777333441827558609429349086653701339393100091345920596178153848613094917714753599541940484237997697253246002681051761183105744801490802264124443418314226676669281198733500835229946670784397406706726163954656613289095987767105511307994034901874062978630306456951706844367989662779547341736062284493260553114758932517903194052017095102011160570480602048440509551916832139936176974489622636147381265482684163902165023416697794340849482251898924910920973213940811111485638359640077091819423506422584139482906556732449468291108138333962965130085913320291628665009029468891642724914891056259897733160474393506217583245697576109096195377796182390391379315207686823077859499763240332020756127876491277590981763714140443515778105338884892523497085291201844177315812720111864576837768429114986661047504624202661531175505285007356941486579944340468932373984898735558110159132767659373716774748234443305025324102208471775244520113230490163199700270457464914169145982623796432638777813707125020193936860958816040100629856494314811069635871996325837571284399668693423772361648253388479951179005638821529088602240045597751380419047505813495582091219943714115866044660006879238442447999228421514696919208372826969188691922695665121264344123955736385791737710507880748837552135004295923433292237609248866236525065166359332061205883110894279341920096630818932539859110256804725771677960760049654876578569008142478298867525405732451042354832855947456397182602382254470639976362887949906388509206237989099879526181539234010148737981924177025884605875053923272826333556725554816392775135552975921366541768049344538845547529347519070439695412549793608157903249274968253987267850000085225468296253458138902835149279078168553511585809487496216223987787734472712877858185709801548882310343022916923741330762779721257653163503294773978851604545463364196687898993423000619450141410603798088573987908632033695265954509037070905803370125392642517842334565121677610447779060597691087256459702783597433389468078693335461942494594642541942548433425983988921973269607326222826331109120192358866428316944544006151124299625501356202457523056336626013902401151232077136647081833757303461683515992432011571144169917796765111170540400557082946976584316194079325592578877755692644892414884267283701835782615936985970519194432479408197876012666211620924068980839367986498420362484515722387334600753069917328520222023579977853220667099595420930463573943666617915318898994435191218639493318288904191714061882110303399058870632587758846425165946743416573576468953972163798777693063441582622992388621067661203869116707525280927637802539278066678333398666699325924372811432469257301028388543312095318918932296475388757798176957560038648092246765862871305804549458426111940505456207821565596138965409050701082930995570739357879681760598360153166169399937877628916245368188127217650489656918973410387912990889598485818857644443577207634728240140164899521849233400083378774171306088334281583585441202883953357799227412432509724950974142320788625926502521867244835030646363119678247953817027748133792375704775720098091140939023274261661837886141814509028196104899717700506176713402951502458637346142718001191001983284580651415727899042389996706193221613196847505310787545549903876753737519217247520106695964945178151741522463712043583701126103704594508151390693392342186748671231488083105065181931545244079207482114958831980050434110982587138880265982373098497896118897577426878251173336598515409366948886198478056090610018890977617199752773245163524541330141777514421757326489487138847008896386493050634579670458746249515371172868780162782594268199262070263758938494285611083752983754639198342267462509501890417169638344581939843490803661595541351155385399902858783510564481630457891504251799946319896048221334877864354935659625560951170669134709707900629434060032198350916725985732679949338795096481720358065678148473599768339169657005394432846130670346495418227683739726737279435250461213366854199577878577443477019490475872123159211741576766642083690631833807133286429584847007299611649378834399019224974059694208329333258830035317332174597859275459453953333604945412035048541200321723153467076886869138800224994387998836953130177947454907939042403877584135090831973877243754855625986636840888794661992537640620779607376439595949288613026000020320280452490360238137551833677067911139189973692109683017745454588302336113557472641023564231374973734704576705885788942157724676585313659347558211947705837021124762755183154606941954195956005513643777186470092874038515236714630293758233683869353777967960684967300757853646339229515980370720676275527430748989127262325652346288200745698372838332996503683633958735482101248583813889831041069133209507092270502236753687611291074989484612451464096303151073215444958314637444436295369057630929140419786267098992710186903751742557339895534430076674690106907413324582906595019588712440902874753528146069803590488485003278499343274674944929462695509819987723149073732862358061438552459619243640209513647414971649427005698399067247635744805097352963814986338993666955512543177131066766542036088297963352432695836419696312583190418373316109435955796874019920558891850994773068015171634567199004025046440778634883452442890409473801114245894291801839462254894906270125807714827441346692648206940880585672868792441454488680371903742521289734130139470678913064988875315466402042631985908706493678292221904564489613542164445972637403200178747472309320179045218483693069468452045812890383906610400543013992677344564268763033555326528638015562557125804001538913629768467216782889512796271136749200583174031805787641989460559952697860523453826026528240309580731004081120263173178353606974165810801902635271155148875411050166915609729660649758052266029425357766119516345125459742522836249116233526392419129944276413606961829198094642185705580519954034293741638389869230250605948173252637671078565081107236602849021755569576055816668423534190932155127957613467507621829918394931814003329217894134987408797930211255188853213736777273453272342745058823756885540316091710483593821747738232926532653017223126455946637375470141794797987947710241713921997905442705533964294337717044635211175081733825300058638737383557005466124595324087294813797329871859301007986421252177181760658873913429277843092568211080526534038451235888364489933804049871249756090127805412822589884410956515394954122536524341259947875766751328483386553640972687803039103888161040839695981175116633994086884727149395171689976310461034138547049446095602827789052086707604235027551726123225096883698446918718053187360558652805584858742881260469504209565400590500982641425375026491418370650572555174617753836544213049399759690325396378010755995553780039594478828242974446021750498653701651785824369375087983387525149493095533734499043640863605768053724297446753690762649655017382468668038571179349477656679592248919626352244957794524929684518701659476536077705558837963583302560557318453530549870454548414910280445639736812668618454589073153410344654181357442557828992510106954706911497703082549881911275289806317512353569399226562374784978677928141253804610886545996754833960019719874118022571895355287676977166706133000337251544315250933065872568664264985039242855061343346495540548400878784903724248270191670094783546377134348743361454009144517698627116104958764340681122819703637710388817375597516210150687618432796655373045723511188910098833218275113486913486325507112825775226562453357131506235088942293590298247429997976778431295584631352331598726249694947082299554267434111066238834265973628437767665102961087950786504420050277304659304905887464054253154544099459878653496587672519197030293171629733557154546649899404698900618762725637966138151700632046118748068246629540682773889314030759622326291448790094609587507705933983961754681505312816055549064347365698282118421172994723483877946207527106552109805414230657626082322389582261682194983904447394405994620873509850215954634139795854488547120938414617328739840520892700815268722336683292362376423551318849228660739677823270045662719859601454319655578195720947548875456652738650643244972762270396233044440624218600668274213799249891818638079674463312877474892245033455624675515893143619789917784493701903085178216291189303149991784856661418679899076391402903763759914825787328430335184346837140601315438138711790351504421813450911586804409815724565080525680154301763406407408139934322582488594085483945597082853573891662748569007438646894507249167658465768816634824198822535235893687213904940649964925259442248053971964103950552646894107565133819858523598429567927804031955565639895377258035565097605562399932912035143839305794176456669679689212347286695603239301355441701903900208190474506620712478508639236389512746740918843776269978157854584559918898415644349668111972308061816197283309628070185056627978543072506022059697568473476766861066938961899379806260954803278497757219304868562063606632742951630308140566079055524016781174984856798831409506468868115791865708695747331201920304185463795791729362645487360984525039687123913439199862651940123069203216649370639970244311999357921581314326336406011647532576625335713180403987881243504865522868741957854505808868131036877401000712561302316594550135358541872134821712480731501224976528950645719868567925941735217799980504518127845542939526995303015513179870204528438116196579312024427319331856668547356964292181619561362707214314873010809298711803772582524272569821288875701927994035801919097498559951965749442939858940128148388036416074910980892292329002991726308574598749226853528009332363053185696999201128102948746852632849708404472555503530457840329122811777366413863680600257451359929159253479635775622012790463359624009186507271748492866804413222217382519575674049488653398479582975057806489262017084196438893255513460473543521765165470075241833863016498339577450446737967335666787925968478416579995611495961187246620323943535122729652657233796329712514602715461955997259237709252385073671965110863355586903019568006683003661845231924619350050936218389757930393651095478346396046747916003817539182085303883344663753041838471459380471731181413141350693453338465001571061969110982457872535689941761571206409116250228198305042462567424018940825356622404911991237420052409245422403822251128122309662249603724260707323433482203061986342575808182936448062579765366890742338093622917480246291904436561925826476713909573683014408762443070129687611858641151536022121160722742158080447250433678326924004303347007374336630705529765390085445667131248937268411522193257182419240392088216903655331470466611948337969306262885310362598890767382273455597475529341797196006680989651098859950844543647049288424707441602613417128762697310864356596613323513398391630214275132969202964890535717373385027003654216036445446836852424431855993299928804263201721492131277104682380900819648346770870261135026385259926076797386591807272022303036815559719077696045752811724365984199250643948089891348518098723765572706743935914866013908724039681913599945938783942361428204102459420682813196639918831189081579633177824299331825787885168735121821689781431303885227606614292265471052423403063079242400856924104730907811164878892401554488750570653790020203828551069049399427536835896447060305104344901796065749410150684229618832082535225371397912748060724985651781633953690611620062560670536307864496458141719195429282499330412976139510345017645542502208975991341188337545494789449510335315019962240381245467667479111033968416132548896689084365532802361521638684473678554246501675557879802798705266869157891094278003228209754598329912614671386391068795167924500413956390576235543995202929787210381543947208529302285723866220925794017995015501774209435894569065020768200394102941232371024218752196799764851742525579720032524542366267562280174363226264086731620798071781504204469829498110675729252516791310351118181773579188950882320719988799589772050914877656531312438673464324489212988720958225139886393334411683065338473887967363652302536456290206662876734220045838448064028672544976290986415299482937199967794061096747436006318709778020790697585723763844393893374559661873364371807162588592414781241639824721778286257579005365720684255078489400246324296760458452671652547494529194177512778204434521658308622687572914690445900510149132858867825926897275878944958966539628251194770526619564755041794347675063614983581056718985996004183499489330363022066663059548703873142508124571661391233926610259755134868447860461872631071685004611530072175058123602723847322547816479357454306180625156554653554409458218189452555537479559236288072198203081856411715588715052984429982079867626297768824428185309963319581823224986094649533942149562007629672842346816709328573999002011510711615081909481529194314793272233541588558714558661818166128672502124857647174440314607540512883050038882239796880854152772732506046270441794944201709863112479575384133124966496354320033863409581469116803407442357280480708949078338932696585828495722430887057077529191875184919905404628644983013263651100944808761344889628418573537646377619352695440429697467462329340964611779041189480290290079800916602027101855286507476355869521176712731896673421795547608417100122894940777778812766219693919396245692876013890735922692242705533418947376087228059109719214466567193566350825342693362645238199200058148661942667554920339068019694366322270847330032280697214979696459626557361523744619026767711626569464935222792727672326202996089821871759785855210758864492162123154755847485536961803814401060872133221350773834808043963623330908947224207701547158019253415496088354208729774681099134453961675273371267788037575994315091432343112726139999839257630481212961938418564818166287874269573327502852645142746951744018618091887326169817021618285050799511341022294895738022642039284692665986783401099376499462026738932142046644861974291995142363236592691757354721771066406389807471231080996020158889127647670939110911217177516989863051248363917395852724900467791358383615017391000453611983283984406015493853244756243722151351318732499285353473819530211042129979305661722859369024201018460533814871928419857668680741249657168961987224892251804490839785428195669697297021656071776791667082817493413469207762599369515230060346804247377299950849670493476546912324331233908269480423944496647521112441771750603377805680531865085755039984298064469617292924068420979080928681995082184603133742493055434308509130275529902204293621277406068094986228416703575373770952384196000771655792484929444027303355919488144271313369439011631016859784637071136386860493776380049341896672655114179633201825080702678496076423939239388943097617379412255537725679205243258249956770209581276442885930197430196129027350414888177881027044146802217666728684539710098141050629274337281657345783050830445837939170446036209398386786899316223088843657487400839426439465175288327578220173374391546267658753968417242435410682669284154827179143378593820369278937307079700004367546322325540509687682564802346910488187678214661869788434347528621757048450601620802819129110150923528881233900174812142763145032899692737800763575131275606115531397428663922933214546215234172730094504151800732835827413648062094704924966564623941628786291959679456097616301352251751200197071391610085528927203956453450259958137025464954929221215572529509156110733100972014644448663416082432049494179601001050233644460729970202383434339200742948225793206050526977646904815802134641346299993948169018131947067533825588441802853268808211376717709576985826302794220020163803763744677501013089602407047273457203575217355345575201557388693988609089853131665930211074643342181116435091872283233349530678470209402258386649235709800263551676070559625859888345155896575442410056324350289578570378125572476011977280871834616728767710607332020735543935973269936256115893104151244285132874046881924940462344732287908354885094131267700369613000656267036949531796045502850890531305456928833207121461752054125455345732088247199119874773353202239035734052815757720707033727014443092367896844380874068072896428425157486525529016062773316777128158733452339974807662426392508688407310845096617433275877574679475321360012866045389160456772625178927011804704749818648382763883976260974370187774121873964765772505931280399439515184956785193330174785847290191792011606995013317466193517021559733370707793906624741733429309045004427474312214109987638002552046795144151156995296687431823607310618300439134722456350494145415012389234406576857391307459421599458120996406989033580558334000515346813246358222574429661940543592581554800430841077576048458566070024833900864864350952452656540166119235395596744229127806293403704138850315079970112472086183156932943933363259039352290948181022363190000023623304524621034198945189368557454103503474242218846952119679575356812993541199800944074814945473115175007006407070612754488885995088526960667782922423551440313574140697227523823449284601344569270438916949337558115088774461478548567532995214250028479417501281924875392281630657165927274147808816495850143648948327456433003059486515687762560131666923921450208274769772319240032759337466845942843688573487282569234274026831278451874818478306485457773268777630657068017540503358811361534643551114748696830919411552744072973414803111826841309297227270738231676184727992647670880629713646374572373019251043041359427716100697592308516102501258760269345909702657262174630567983172394915405495918621125155463251963039662446915762263325726865092506601252464448978640582388421657498125857563133966566153210366043279188683531692107699023824585044036360951484070076140226342641045013835844621035100082828721129873918286511887960893175488318617265464278235074587554976532517160957883952244347579841977038367365756661178551674540232895789949400158237032324763711679808831937150053603244188806614488467987610839019356734381343748073479658674289631017151290527417933377245180512859097875267505833625541361639632476750674971664936227054114286818785235685762476652268345542137254882222125937336262221221881963281404427719187323281799782091209168661360001638442286854168798891568799912119372145779503720529477913999242945366023819105633467064292167408665541753731936557135429780854446815566871122891254549515857303192963129276453897910284423461435893740225156637579970660276789874998454570610997235884036188093634795634076515276487320176072547253079813103147336496227371145928952649515726720443402021102757295959517762430786660005517438962628805747308113040356381118000734681244982479480560743092316686545070115007892595169596443318131446859893540853982233828312333681416603776448408345382604745557499038767944795213113814590853100713976512751334047068241342734078412167246311994254367686493634916964627159977106876584003026878152920371104418601308155947009056493153721163059839369274812526228167668892788074067292129182175242614700917060339431055133030639461958276131132822123241988411540611662825549115704679212980690770583897222652089212147438030530401386359280248904765069351631980252698273082579100540602267568105056934737317329191463847551903748714170104069950873396573282657089057757822813813554049245276378880059086497016673330053531896650082572711235017212191951817960264098118164671230780292933380960504963224386335929705080791696839694776222739307474098528096480960922640186168049658361833664352246273161124792279232305673809526616796444673969313162846492938659465910176877415160812928412038054838124936115345524331434731253385467844481132865082896906736097067183206572255994587889584682307796561714404070873588823194724257641307810907482391495131704729912667848539016997611315067868923544505965440113157580136943308823512869394538280615688679470032800129823620835128029816864055786222585951711447397582432358594412911655277920605012505443530862498898814443489058260897834576564635995936502418233689424518000694174013675613319631649759020932409419814856761175557131271877662549367294225063509672285575789024435340267563716440184796685255239867436877980777364845317576582370620595246370814393989303039633719864342097563137761354629653212799692639179538156934190082424821873086450599676609989747492976301437408520762421261044305184776491127047052089975322488058113738989908106593708077294564548807966665063890720195715245792024340988028666346980228447769184297569552477408387413656172602092175665250512403217104258058063848257593718061659017921763019340487833885304276500639333150921533083059986087167984337579826516749067387565027339236528293436295760028800280515127222247096443436230123413484771270484821531120940923220281433841584737203946935154669102780567660961527079243685482270911774588332357286395206708758896862361109808821332186357920870418865877673319389298654410657066856761624487508797065036789653189136916714541575912280170095241834117418101814704418270672128749329342618706645061014749444800531690322947351051262570332041108369203962943488552747304008620459657481278892357368064903115982063933897661015347506325482148736150443109936750023103807759447083243410699466317411558247286656065886096124382598331894407678692697265335925411132875961037684794119672916973579792575327555616820928945887909618026793210887749676911831402612593616308095612841721407755209900281989437434302492837384550613439022513094468759680826288593030209379646500075029133005153797284988553318514233660471379261539873128334434821084957027371657516776318674881646942181368166359976730281969883700022944301546645700162659740911979733217428240968009045689564692333976084427780525832627332476322970125074167139477744724213154831455811219075802544140482905604041207686190284787284344554700316066794027550130502277783783520085249316006661949407755556478482098909222701247981303149067139807023353308336702611509972473376807520199321188909236160463328918459828855986944853770001515900894280983270235372628529515791564471646247303197167491145426962224933060168131862179852192899710063798831263777920818248987968039353121682557951841164972928623593524011665330486405780601629430111408149354800663045801512570765049182312271016010665353097616775418144971221820704993045662357488003825758665804888491877061836400718915429795601858135886156548604528650035255374987414369006562990961946583840279724181343807487942866034420838556830453262139698264985039956472008724578224280473538326125509066472811162236331014782208859398581238311396619174490756337786701309796036458236281377789194396829159929651451874977660563283472882315693945163289656282398603212149377418589200651580738726201785603552546220734833190484353165084818054238494750170163628675756751501378107195713315202262060452899168347357891711782334006492710896179582918747582935402284684864306456879295683511200315534192417983820289039067367797451568151714729013700727346877080925308395598370849988519724144690856892143811372971374729008865998839690577015789833566150759745217095358311022869083967227755071150902302965680133445515046033824218948370886038779397311166342222275250427890200576071355065071546977937783399347280285787903879531109601122488941745644656320740912449420419644050226066528777887067651652026351474439680315878565431444255266668352965681040017845188810829778843902238355477068948455586404348682934409631308744989964452576594753538147802115126506654008342098904495245314411147189941896081742980900116703059814395737103124549964798753351471486147831558821633136455509553975931006989596497209825898827036258866257187972617886514906264815914438302270936370240911157168583626243426723522577626448010932510867269729398036204172144829787418158964215511197063358074522519125039087715642753350106911279540264028351335001354839183036286222638296064561832052317258290364095191690980818012829778717792279961994909736406525911306250335398856154750863550106146128009847121550210044669643528908078560100560606375517096423161935782750499050776143896467152495171744142798925611743052363040590647273001481914270984920773621739755927490812697036140412118814948158850528091412603874157391966327322260795985284611114311082587749797334358446584413798506073177730084625884724742392857457505401670068752666901340859959830188995916561159980168423947173592297436618705448403795854507683171911703931587060189125215081466340478634749359734688677730350002964676679407260928091335493970686431662899950873348930545256401211465363616065686339470162979972882381931236894893481893718707943961692088389235825281444565966125661422968855654361037113427484758959379186165604682989236773363419087771039544477066783638304267963588608010362330025725984428668488057476561847980143322568836271897029982951202149126999562077482602994660762365812548988374628788669984942995812415794881345728037513908345925382538667877381616534922058314594230785132324669039290353391984562774391443363001270977107396948376419318844681671490036385753016517357009239280504293956587630454805594878347691145497156730360927432710660406022964945661925584342603518647698288467757080156849621540449439111371630594326585434134736083117590536890721216365210896332393763140465436029904063444351136344473800454802622913979519371739442354825719927424238788530485970993159573074905989812998705439147167758826323193068300223851248556650005965182071212853141081557800155304798303455187227712295804679317976290832332920695610217826448009542530694822095077204943104352479549330797285603982399137206909323669651326605218272631412101512472401639383429148291660514794039102816875887245299732484461797486452086862132290635801143666452061889295861238567001924228431118510830554748609916261007175499426287441413617460405817933484357756215283240642946895900218708979486434161401613633124466633303962576132771396957962086768392551058395038273466755711122393295149229481844938976105261629001685148950498578398866603180832706278871542346061832669472107897187204422443773297351626761946600102853075913220246252310407507590006426085231524477991898314344404155964996752552457870573238049589053483672797593866972325712072871214008320096908920650608232748707591285253125695247233763285262408230492823009966309085845137437906755194120491321073960285074548306034758149104789806678915447399904504632600505079310192099965712008541475057136279024448521652783085377138296505059779308230866424067507648656126689103441827554300541936539712487457048669473751318734499634956645948014976503568664705170983342743712947365762801662924912417135323369270051974949586690433661123275393081241805341926493031424142149128923248454912894801881153002200450498025182886642504875155893520935244909481821376562695944798311496257635665747348924421923510016627476907354569150347922180710588465269011340652115381291400482000113402466224864128777286052953437504448037942599359545443616403539994816476223049619055116813845284815329363940970574513830050116354656663181622426006874211466845997879213690858941762234907643566762796717998340929664934596484683914556549071169130758993539834856456660878483787633317844653861392209143179208864277005912101215421646932126729344973319964240532557075285171517641523348346184915825304432477401837460824555668224877527296065985215993152782060544773926432987063106537490841273375453653942252674084481331954360581325768936433354738089829459008954684638980995921840539160479161576188408970657399823158316850689800432128696735918123674103443740538814925056180080227550437343949564781617025330131895071260148242725975465822321476725251466888566578220089369664272560630677397173021488728008925564458307280586874091333234437693756639999892360718557180048524566203350548518008262815186724205605359531286643542620181705318025106761352845139462659624268092566823742728225274205533861934336684813274164449322266865874211856934237766739724504592722744675881240969125378594817518218417975974373019870760496283267669879430308227263352262195763792514356682966683338180870739862422693939884562749106052639240579765283372609640328689496988184185933353002921943898145034000455910294567341381760545557827588977077179737887806029856392245654438535903209848356102575293581452371769302498622455159831764597845907189855213920341460917851621601643212748144902769286039249748617476595095232741557598329441541709560046899393891741250272884844300909468746468650519904207563000470277598551407406091367107751155082563229495642138621338249155070214021223674305019951803764729591243880049077760421522333061964906952222555064441858605400178169413035729600831446523008824158864290975457535238375070059834458793913155073272692847558626004604149673316058898141755748446270456943306773105422895484294032407898730480217939519337992227160292074316105490499784435906124342289650851526346984241640205764969695006514886707342650834030448387003034597302918784503569926909326524026642892679703787817312511267896191056861212366763924604603504928892213224536318702084067151405127080436434555424977099450845183062286808888558995413975130269095350162351303164383142086952701705892074926821188199473130967635379591266925602394221509391492781275951676883744636397007463879886924697431290962630715415173413154013615579259741909470422463473842516223399921307835795081783855515161530728651997917836366610832994118457298893958142351673029857308619823928371857744801097962036468325344233968109434339213504665213034417325366447486249490627213365597685678435893446111315030340099233458973067701086549832590469526884989724546578702966179695505665384052848774518068990761363214176664468434283308049711178106406993442343515672331243379643743676392745466183517219591644321539160852667023629535714714215737743747332698615727473550375672109781038544490079832748783475703948099272228547224558754160046677979132477271440963268312691038037719705094114902337625179038632681753142808807172053338084335521645444328884327763089512636151928297267326145022254421103546127460449965038774859857297734409385741565539432531926120390927948086446798116294281868862380779687507510963663997858711328691462518762274087701410750159442389583390644736955073067529364605367553111280641428415853525432345449876789608921397626007840438767855524998494815930818795047465701258587242190569580168989296854695785507675136225347251391001051810560608575993419153772210955366374385781041130173484751474628350521805817825835355984769781859953748345494090236135943712465401527685926667165649310798525314734043486259886084958454939430277104342419762295375091897960061307942166295443971945431062651307736956218403415416378772355044630319918123531826536178566294829411467644171546565252147853497273658586996963526969560826277995486962617491792048689088152599325203992692342830782757513076674496923885581703410470467709844283658355144446993032768039804743810299627383502130119377640648587300225980622047053489817042160062709603171412727414509857642917315962361357410943635763057657731922733390824581214738382523697148164261938371329995574113683103326310762465629769788775168917789587504311879832493179071434005441614222224209324798960388385911321725879278029012260438289774792663646454876259172761472344260122601073840194447072261579165516325192641716040927649898575053929096701061883363136356963027939069106400687775044215517771867978751914538772793531520356016726814811373649919166938383400185691364502495960044879215795806020831747149850017628387408308234330619036229601118205312507122602514194826381454173359322042261280284575648367114383734517430200296438961305104811392412699546019624045980748567362943483608822646968349629181466232340361695868315085055655089832927983780002420685145338857808120970527737290097568599476930528176390749685151245937484526404377240511162310783270004472554065593996181932563422353967530933911409469822551100666439796986131586373645106819825973789359772033197394977610312925974881985909541262260865905125761580921026240196961940827867200300134518303327992953176800916218487728200363708843819864373780790434073521736840734629022270057063105350315969799100053679919139714088841443204271000941267534500937746733878453351702808870470251247457284215225676486194285957199255562078585098330818413330641025196973038263741341480058366745648998640774058461390814051852873033836220679046210551638080259059259006405951392946230043272395670977754870837454822132885918888639440612072375554391828036653149435751590360991054094629529144681453663892031880621101529874322932744998545206647730520664305231203731198574208116482351193667313453421750083018676290046410332282739196469065308574143605711294497751739648479902999553679427036075029075195431694023963758957975159984711874867631352473846500503091241075142896563020940215844507746845195793923584967318890338856324745895865011951413141271481705909785864281376867131382958472156547030692588722356251723614577842656619314282182937805695921945178449215624228629841009000418112852745712349126780552724297596216322681565671881108062063008383037875589021837365426830385281301989625703409073971086552441037490324783878674104952304840837943680120576170167806313461221903440644111286853104326454596942113079414985403051408398346832171267459597009595667076899072464667891793870526822629320848085112746955992266651478540703108122500258810965122067805345945005268241705644840790826810632423828581528232022201441619542916379275157925362453327985757862506384106378313453799373211322767580398597319135423863946865376366746086507399209150531573327727666762872417606759697157842516320261507875704054946195934806604275277787467743149513809060212594942567160665025488199541037990861640030971871293228841426269059147940523616129791794399692307608028151855915224817696334717721526706539862268965033174128272815329592381325894497864538418621629801450685283170176794129646767763073987586030956661267805094418584043489434006630932344151230613086294234890235850032374693923902881256547283489516109093513980273399427054686068567428338084843410161874923905196491882268679511208552252465067077187878438144227955199905509250403403129483581992304851182110515385905442862801683665261342074282856985490684829338347561558903173734416287962282295294135670533636678576826491470356240265722927568004596279680529023384397527035074470589348940916781321844975546330636554275971920583943555181608319948742605807385027606750052572264053633270528152593646510123109758093098954309989158246231725150399886280751661215582998462988077004238894957404954850104201837485560842173667150118176586050440480569568089800634628150907491540470869419289209413285220915364325938749334026628161198647018827539627823143797996478796930657578040611132132476847721189951461189753160900076241050512117370731172276120527633576737894851331985530066013245480634206973841630411602467972307194999423334674646418537663469695664586683540620007387039246146169023008730137718420581300857454755518088925144758687486926062549917740340601922182194704147437804010433437126504951697243691515166551931213712132755148232316325125289125960897186321412468281573009008845888512549469933352242283794230304157841692640834562687219558475798621504013124259108161702247619491107351468222241460236899925917573799684924595052234353768954490274441414652999374144171879707166450183296337762709756402488739295824558451592517588217437691064367670950348628030478903070341882058856658118908482081550903793605535667995692376391543703601188318858583892923104224691082243274378887222102827780342982130814415637345943896995890685031226487592661698355757086705780987316418561181074229603859472713815405067370027164953059667735700564693585281751003061507677447615863055413788055072991440390522376575598031525963824206835078362556804170731235120900708514508084358616500854047719614206732569984344339235468594893349190243117896813240104400814863458706121282893403341798168022383084518737979245518916236821286880082371058540060024333646889381285193449926731526207540787177539516767162684232560847944142043435236564777794599819841799968194167495674012043921538739376482956224369662699808601064460478183089860025329878058232243420370705523314959857523606310964812429221220347288120896231075701375359373431452550928808722701407435632643586417935399055778095014912119354676959020071325670315845239922401763273466623040383298878454351516122899938792811935530639717980589020439306079037194508688403963201563762764851469885647224364389808456989506360901986438192287040893490509854380507486516968205435172516102272971359766851757048330140999143843610662576387425057581068706047992393453032815865390395835163449861415509440149399353038855153099951675688915831992486620389653210673642975524651681909921748566815369024913541763753562352847142987859053213981760348897557728090154701718859647161216781834232109404040512511249147658514388088915544147615603023307956948950378644179760598080977964210971257424753969024533610744844868145079744280117118897464209180837567421415647565336145055776131093609035313529112032469854806228971071357454683535295760099737099984606364901669188777034477497647588887651962926450807222124952319516520159187528632294334466475782598576160744093075509379976727514201672703196185909353322875856846486199639119740713087515774240127415256197718501026904332362347529835310633103697352599447520416913563067288704474958619573185794291362341648936478581955639248373220573422196767702318135945950280012237966538527428179198663228035809025061074349298943292759192750899323260267174437152589798824111512599839065601177073892333596676818918568656517849170796001136843995969262189687901057381199203801729135441870435827768325224025615582701735171402659373626393981854364204540139070453205091050923204503455010544992273421915702354273817284272655694194574507558830284367284064600154708882891567143139646888260822698356562305027809858733828265684944420386322858895595862586220700954123899208010640210697236291150535593268047353525781751230577976190448940982685798009990717548340400023413811997563018125189914921116400621704652858442025836994095550179907173309277460763836503330014579789653121127283974890632717738867628074507026984108304055396881609095314588687452922910840683605299489607686005946596558426122227361855496557825542918129880056676239094824463882277761673752350069917385721990946016411481332643139196843117321219392708596314441238174365224422722102749580597657301419925106403035325942568562885547087048780920941592001444870320254860810933866035106374857310054569035019477284024677870417332393377120728922839630185778551488249054468913474596467615824792256180173208166401294994255720369288246415427319643515094079951017563236335333577850630385711455839772067901395802951178280480494937069514014763919643413517787006694561592544483723735206283645468705562295444642073295704041390436608002022202517932895945926246611177540050369682329206447283907624520379911372408072813429484791352735750917056085260996721884798367898320316492505284206864149488949646091961362229538322959306505631335316356622924318791512349239552896261673693432489097572289019750767507177373205446749363150630188744971378092322719481946185588240676146741989321019198671445615180741186357059113589610581961309590717010103565391101018451409474205857237778135679507159057489672583384127551882667018003075968408414596919339051923371542439727111070914824006402615943202700512238219423354237095564055663057117133752664857484579267557826814872547765933958609268405049542067702527723435673805843874672490419642800115003454089823298321559421369618361932968488257421990365748268739475543387986764479133569919117922718968897233468662976889874500037156927605082068703196337888151581396971925078519262558205261019783753996838040336985769371252913399920420565300304458915957630248465696881013122140771396545575121566061885353612347999675021997373661741640249527469954495080032063494390277648030975618971882100522545614134865280375216636693662127890513129105308998284969748366120937767715697263599785636349440130432796070784770667189588402576664164594498544567578963751611703650026331301864998573556093308462152185910739059583614248539162014881884489408211231843041503752314124490892202138142956125360992291870398924055978213289332656065015455135551634128819745458487657676388693907455121013040626129443892866273039449112833799219272509609666753420453878125954193762482955864046118897253259018026700091359222152506667963265663985384844288159177750382169314796973761497032665549588211621568108387440591189588476047488900971892592119119812481904939473369825304899469050870925152985088586966547650584509166001511177374128948462891990958045320277682909617115431249358399660992402652127965609673077214037692866295579455300546969428746234145329592465461832257215270736695979032173971388150277409817609107197122101180187639242586600698901322110966211864104136057983283542286603234607985657736684963906313188477702778921160123131420283033690881121672542299168599823032093665885506924115267970428195120774280923757971968802376640933094293497268501853631966145760703488469458433692158670231401296892754476609071968021275752263090152105839438956266687287962588985362148364782930378036201107122504009883594758876439608396054629217345573271605443280273273226453114945257755710898170602558672337901500013563997419668024896990607129940423323117499871277424587738697826546517764335424292267876139583005546830758317859323624897803862415340687034024582628163381973102532296522829394905523125500596161450685250537522567792958666887331746320737093029893378348741934045383166933815031945161533941256190183877060203872141364458720980150480912959338837593019976377900655941643099580337800850337550613996395075847005080839067305430295454211414699213887692075791253769860354073930005201051635151671607461356080626253890161559386035466472023135164235080815314027546240787885282994187577679249109201210445854836434671167719603723630074842979272040995139169838067574831469237801833323154097601108100126946818076419851357025745543577683781496777943665049441062260059266788494269839453176128697028258778215341489531113042181560762746554833141936831945125197897758953649877413660687638347554038797821115922747843741215874221011627722351652446575490627640542954329647509306673031505695638831074789422321403205020999643853081673867386808386403723042928315476418766268680723691139698420542249005843662206074267542988081188423929605746354483504907753362918646746648199126946318079181292881900198626228368886693759206885030766820452306456988011337312442316916874387527441736318839290604805929730165869656531976579752075784468587314894633918080543600085803931844461092063526896184053147286368496201588765838017707080235893619445237517176935590977436061341824356409867529203011762724990828294598338647341513776874712239754141523488830771294775922899210090982465788077850813747211622320591865081725206307881535797696728161720787912050592266106515635190459420298932453887362266814907446114558467672214642464801334396496719765593180157947741039226647004207582104425944217742428513572911679731403920831596922731518344923124638042212962946530371436771086264233045358543938381845165003822502292033046031647233249539951670203852179374260272020710735455332414764918398320025936081838702211263469183073622436129633796325292548163649222896488042193324589575287045411651137196498150084457305510913266855848890712260637570147800365462954237699965245063311715061880522548843736615152108415811173539935902736350099309181446846699545570134365156799644132471453291334639020487368856550155781720844988260845388623041072340566858930515672176034366897781901012511058004459619278481083631396906207551923945133746036715339907117168902345322357872062185368140970510142214840304856895197301391270468759893181637010337797650780416454310578717241323993096263768788295751870029911357461579786228089899806759588051014330554216541206039030317764586558961313746820232315025180268097014770855492796981954488335038500313410342932323274614363400091485142392227185946907388499899780034646639122421572330331811215911731893826716194406486312187481973895214266191985072700824300258311851419423411047989137595738662523123543104502770747853808231878016614249219042747191361890669322797952167951732408075270364628496461628215001534505552742328822801538148346323562816199673859287431635184622393137668335138885347431811981963237855639596557336314125917923126252123521188239714504503040673136708953574128715741887341266031997480024354074570119231875529961007388588806195035298880547748652389002557786075376021748808714767673164017465560809253489746042441307693446380011662601374471770782092389452609496349663905461168830039089123895064179900682147052468328132942489958756410465576154811420413074344536955116426936132249360326021722229515139245124616117535017390457845927490644276592376523144528700063874613686447134087385017796642842571571766360221799668144042925333169338355389300756046831424884651641174297570536446344774080122350719085514819227616561719098833647265491184092515532204948264117471855660019369016343020077532757036886806706547850098914238868823136865275295099254815737028510277588985282272745852630773660494129110246267050761699880941461348701807780806981884090273389685038214061132364924945393545705071022027131224849816481134337160280462794857696236081797319088877678692415010530342438428150012784314187168779706489844561444502841605191067839809356799266819284235371395564144929552497556408861287800796836226332178020910194584395165206937631045768814273825553535262359240009810395482359940334113512768235636244564337458735675774610311458275622397172051912167214003757002199772104210684221396483000659737072801390183463911619813174448564913916613303049153867507740548665489931918272151658442127808853968479321017467883962936861771246203609132740568630572893170582758465938510659978595112006759765683737171413020446045816593637385422745551532624454159205703118751781197536569385388427192719194161335566627118568889716071587771609910020917385707273361081635994729581443758760049958803279707892197539066116880006874819485804643008798892607280290614837572572934954355535044626234367705632609537321228826706728636693425993336088381297529015453390610181962215582074684250473660006420965398266668899249784682999699445340365098276207719109555352520928627462610466992919606225567023407968648234277542563558028513969852290684472781161470928858608037508892538724833685331300114413287510792585605661945251144785207497528940520086311116632573711721566543083480624629112798836247588612359979710232383566260351491791743343860257060668371196866487428767137368707610322635950124837139102012749565550227877092433079672222801004929772228750807019885879149336771189878048452575563873473833827705047808215131298291917199355716415986666181804619941449844275904522931798033161287351134358428599086452282732413832380939860767624557983210277725214648771158398766859740937910542290947357418095790884944215979191836697076486794363043468379286136595290842603152325515740237024161887004136828072167457541266343176090749704600167021479519967576301780565162623941430811217681628586263609820344276276139709751489446211851906893851430931013457980914596880133971300446707046928170224438771432730886479688502949189247099911206903110411838787922985592437880992868720259351681049635074899410251255522340840014893154414992564349253380467781152504416579360775507541980890570504537648106353389952485875673640182372707037560159386925300785587731557512864269036871726903738650545068503113618898953594517896450640833883718685865459239360891633094798932892041277860064365905959645798608906900179171467109450477132343140113961313015120703703972714420451645922037140257035388756151590109523647042712638257864637533735288665309370801558010591212247815921792234603545419588136194345530444919908190495138610222994955348740147181392255295643175478030490539022506966561760730246687311736602716904746268041902510107508981851010350562691947669003076687159377247002317891412311608202093609008019668491812803155875150652784956334885980336165496299976546467459344679285860691992731180600919679979904338223693230419351543086920055200796284387106979512422216554278599949890944053683301399874407831298990199787913714777834807551846388556564008398474489248338698426886021548762190085555188254384598563991378878261775254083835364643712930546804363102156057357773374936684000905788235778873793273149497390753843526659145090409962930979537148337098670175854405361499041722110205645575689811390621572728515751792368816088554341071795628247911643097596399873719938648260066071484014873184977406222406969250331434933960917799406811984826582968086105276308385272641687987244626173441727052067475020790635246897970448803835274234103713789125077210619621614615122921033499074736507341853223275040834703269173581565934860281743252082960145666556212266623414250771191352740467980260979722072964341474175398933565133238620449210437968512772098554738183249262057540581274538912019241782912939565687146974199543380798499111438168458075879053834260353664661736600272136634949638717202961347654191197603858324208969029006999988962693446747912181483954299321508851804462874769725857230178901139067366184392910874966596770872560191187965747195396561895002175778264317267954900616273850562274104661428830286420361367729571749877033453197807980237530496301661170078184031970213273011343770608681493222327487868356294964560225080534616220636664499523341177691141935488342050844151802929484694815463171713557882066759057423890951721413973289836641606184250588762703393111435196130128277565754680589058043118907854942226206595219196239607650030041772415596456759100946852614549209262590628966898451400069604030547347490907532441290901397600110737377782395689826083519151502626027002240466742319461761040351375936835326930086740136622086519361516892282239096229085194864536495244938885807952129001258918456717730994095506690659952851011388233400371706524388644161586454369900979359440669293633283455149704879618482781729485738165416620851229088715784807896841037533897668414846266624480800654642333476727745562964394948609299552214209292170680871546389242547109205308527008099520931560391878390340148972247029932246212631631762931067953156533882889353218346044046704303548468267965140449388203816364124261963190442262499962655370167379990559097236418966487938895317094702377275130072109567229809208821258664808258661541076120267007858611776386286855158951487169449562783525097907283331420919154500049268734144757363886541335760718733647038324201849207210990110912994566669141481869152126037537478103626164193061044010361856914644689213767119137482073174273905458145026689839891077247079192412568680773289303488879359756335038392714468476610025245766968818013989750929883511767903895808511365452248075406410436699870767547239100700058083902182585150070608512418783856940502343798420052157425931504362814821584932466429374387731143468710532693452121820108855939633213434226557873966684882250486335680917379358680852127499033666635278835178358854937835125563282336363688350518177022883268902473460400105433807427939031775955603770711287976964256017891896887017835537479721166804384137910616594703821005032421019109053824203535825836930671707955601649931617013442621330521437729459550021248201531246845384864016327527076309090151233025522684074170021250379187489319787474640209685539662872395470052725578110820831898279319876652354005511698248029456350906429716880653256438911872834687812131124747267373590165860935904973940857022560144496432347101366543969064535847117141409513027645763362440602177306885964914747851991277363579554902156924247227174411995948395332617680927023417345127654785183394072941360558447118128888727747686123419751883809872717761888587664798678265590969435660225964695003920137168806551291220529093148854116255716829834310024631295356495033202390074489324782735494007246266211706588596080182753399540678762404061294071143458587647327476457149222596507602185598557914307111418724876244723279092794875889055867602698421905818257330153643688986063767847446334531740467235037636852289476214718875485517001045984242699896431073120231955207586589109492194757352497069397345421980439207211336042433402631939035052658780907476085153465653155003675550302932173015583732668158587039691776176896974107233588888995924366584683192875348544593548185433776887740636661608265372017952765792936366806676489430740894135156389284197209557761927688661540590595095568371541793464270453504740888188005646591776879404179639605316898650451933282324464114334356409901072501891987319021215998232296601207739951890442488686754332754979457361577512036155464331536545512866583957589025231870521896981883988385244871964038608712395366301070558550660399499310040615172111667744164914873529848093835340250537099718561993789769588908967419045978560547142648642209628665535278989748778337872133518894336401912462440301782672826311170056899655246649820149375978237786646437880745469681043832384028934631852308749844791890742530961611169303327791122024980350965022391115596671860835513184723126765549214067628349085440781727033579812481235616953604845921284005737605720055241635152150981875144015359186827463137741405558574199203170000981867774197375499365210625999316523733491037788469204490699353132757107945452395117868604106147516680925272343250842091904493497067663604518383826909882624655110360060044631514338956575519914620300774531273370288131070352950693497313035699004039771082326424065404935737853730565469607889244999676828814505508338826803919583880569772177258520025979690632892770552146417448229772539132570241477367477453947555280525749282101539560242027249337203819657559507246755309193875637526503118488121878717924564062939538566142813097991663331501155063229828209684123679527496128548952316884638022113304476689707417947761334907098049477350265473201851437317093285875763833296196325987082508022342038008216069511105654066048027365379621607309816136207824811585675267951162541977188067391523737395260960339555708595575634037562728303676605183033912228770092256958181654714658968704812179208270414122359212728465528080236645993768812320124875787617920742150861005601946377843267323149048654689874249260219697166564042279093963434761283425926128594831302050728763391494479921071755120576491690467097644728006448448685346407669692693658687615378140368010417941087952475174140213993402957491392076546362381031159713539257265492675422043665675104802051560646288513968381473572065460839359603034775193625628487913616202593957119921211151766764683407346278283094897672352526000458616233889766143023906147070911398158418620349677329621101137275242664111297044293974056795928005349429134626236295857084944418571763205981947706345930714877146736293179487729569352040501577420183512686322269290467514794435199857709375951145273171179268129449717101491728408793351636399520704301348890055477828300296008294526860589374588529883494469417242987220803880056103500138562687047281402217061884443338289384077890964366889672076719269043540047714245049995308700967547603015565506506504867545408389302457727622597257222045034042064865458657582958315933936145039875000273284516214863374792412460451731376394237301514198361619070677278307600111912480773452709016608104019710257490033034198270752340330935101043709341521746860743749395490208446076923003927692616580034056149524801092513290497932845736849154621285747264770995437768658325978079356569428617805150601584526481491254879934786533451278438017980354080381151307294300894766950254492317527132122107168669085804398192732593956850191981256734347990170207466455384300247757433178689359477437148768192212780402281964563934216681245397625995911704638961089624274453249390781584999574677270176304410779173925983468880123190343686210792532864329469780317179750567957475333900643967034166066993671583294707477419905447215057916374823138186612032028349644884155684244415534593295591113313761251731407352250916613133793005027824256613585083995047840822626749290815632150397197516861777460659354456911555131595123724337210708078456411399812631020641781155661587635496206818144295123150611568931559079618513980025069328904170383674157827892596666651854726947491621652749139188113957956680126791021270971610938860259993634082846261502428120117292513975353537531855418133024733572470153902111027685290578035191962902444317664886396388696105171980703155282062317432016367595048827987731720252378616750627265395351106161496497449975104148753709717799786689992238053309792049188119163264854337291811759745869966077874182429657622620522211504783308286706436534442906564030621933208602923868795023480533375745510260345514029169502050804543335355630562499520216484532604987688502817780825896497534270730253025461637644938299148101168970349754456699968933810725089590237213966869924081573112451218098930456440456056262154191613168184323752856283515262541261465006122897828432956770158782848794276015486538261885095962236988924413757586332623899290632618652339209395457255564322989469917883301892288778984104001392572588100648631249977049943507313830752484585861084421747465612467164363452922540457305805543814238173069372981941677125901881971932493165407870319223454359932650751656157782901139673986378033335312310109423553978361289027070273474124033055663561282340211930506748258235959721690957428426100497632161169279549951487110250527171370494549924905138024134728928622621391396349324128950216126510253938792942653489163357905084046306463783278655571456921405419674584461628679238168056001355646454807981544958988857700373743823286260241382689197028132648424971220122060551575113133563518479949428537801076668691387303565159320609881996765656571376563205776291715740668951052213203033335590363164175611398624764878381558976874220665859278287162619161598642803715487187391556183930655328370353868533836847744271277235731660187392414347540121001726339131603983520920114073893824287573377830945810979500942646112423240836124225617656307590481996641451942864411759617393336244631453195888685841012422911143960574839671683434998669489488328906839680722423340006413460873872690114642613402130297204632177374438231603908074950800101311514603355380706584502548880873422139351886540776687976326089559827246837397083317394196043335881783393904697220092621789089329813536004440763081183856005525811576575577126171632335548461813677903303495818134185417720930068285255715021067493707054829433430656299555119172482387143037085890485674573641437201931808360896990244466736641555691710497961993973637606221999861085590838183005847478458684301258152409249272084248640325002030307410784090174238357388809810379289220305924130989676857454483048821443827272917682520525366430461467360112504005103210159782243293634104536946340030666066047218228932469290039088705122549785643450025263544945255478322521555412253286818564314605007648200277790270403032198030769167482065133378689756725911353032182098753560679111548657966593392601655996805691819635653523105832694986351312201210131288455883648180431413143955854796894876963395914959558758455890030200582041637489788150289079523377383345710742093730579031131143025519745649768085659794658948064090077350457962923220732646653262585768568050517721924527431746679347094285571382792790155634070496181717145954733884872249061940772636770266155914343730002448803316242699117823671007279371189871455896594559116277737732005391232978382347283076752297783856657476652741734110868793239992644019992603632068427093463440746700085745646319673708286814327455512293498575136673007063198084850478123510737970923465963661513057286727617966259728736438604878992363044817802897674241801173199847096492051735461076189425674848438610811918345414561738493143102571438592558764980564036921845209406788723396004037789598011752709436772235221004330775257595494206133291333668918169159537885357582020063197199852609978313864991134440582431504565778339467349761025444228011433180267610633415253583794229170073747871176693041021550040401892905648923102070882640169885886852394398925696096657287224795861932193470971986487704680214979575798141449562352124759681682772218231224898594140319887588890451175331156930631783903694067037209577811960337328969587521078449101315003478823600802922835660437368513742113182827181010249203985805068945753319858280984750235963659350632083215580977412915786137060375046228272890948622394088754227735755919119841004534749825737271608207779597311788187466864958455561031222961549266212290923313325837844111878023529137560454322610330186230083658540502703735939658832811447803200458951126691605987673943607857140470474379244142409922229776406680237768724393165496158866800621270957502011154714062322869494822044253260458563384972893960580503060387857755291568096390316762248089041703415163047554316623720444570383974965930092454441211594042146421143501763352897793873968405866108722934624572231565654541865820883481001736914442043900475265463222632642758410690831802642598334902560106657265657001129928141646385967731651246838524937317744492313574354264617904166559700734969705700106874108961476561886430213815264954990365197891657123962456223248840681000140763810955095154820403125584801306070537204428884353911184577392604804895954517481108686523552373266995887472241372890057406581128687960750530075516479890976897800173842989974544535715830523796266182878605864588288381893892374315125513015025441607027930030175379848798222816641335624103821803552224596899635251728809684757130291715164419639656333649144282408303724459798500616800945039012700436167010944592624105631627519794249722705570629068207925105198434608528793861384583639196278936918082169078144292042001787127134922309971406416056068426112526190551716528199844018254734971891529179181617818506165267262859865174151184367214232774390803095656270622723667521760087263279583858605849425023036364039611402881303304442693404963986639513273036616410358152033358372012420180590190846691089784522184792388185553438344718049714445794395335237410322600307263870811755905151118211574288046915186471984591393146506263886613500181917039770477510293619547864249127419026767314445448807124123506828596006206788656222613168414215012701819254102149850208168651134625540732679006821736637823808387220083111874085913585452210259316958056460408113603433216738030091905606536372658693525555643785627294048624090601691899146238042025987934545754380232468701066148058718873745122749846405016201139387128964476392850509670561095849623786235834090650017937216883067557276025096600930526757919746131237932546533596763485639965559121389412967378424653756983296619253945404848430822996231187710094984197598857247637985463608773048641433807864491384983201560001477893739577182267179734626149694860754727331933686260024293197711344000757769950164557545253188587343007473404258834580098561848328505804580151121683519883183384300615703674185846004083770935228148228649488940967744875331879671662443958941008366270626653268130863934348751542010666553681564734332318387614068604427793990644612917756628426210788060950026472192750268262092920140893406307746715703244122589226854857960419189749342657427275244336545808242809516626153817746279714556749195445717564291961089617601718919844051669618351535108631657186594960686127067532089526461723324618687543353275247107292592318676095670966992344156247164953965627960528836263092656519995203527649130592970715121964274982305312993750988052559837614602053594277757052133165270748141133055523981541803903883413919162528325274892651274023073333446898760074826365298643321542865376184905001146624327473431330546001557046521407595865772551177468513337736797075523314518446373013013249744395803007375806026950032480237073585877733517027704478263987526163631445338162952980770273223741672134424506124191874510844751846045608816875709971835003114838859759449712355682759209470356040474077348973205939974832578890564000838398843518102595321960804346958563449845720988393254462243895885447011081275328416809910300902687076125102410847977873941788837569392427585230475949712743203739651317139677629743936078439800060258364119006004228032184828322628486598045104268848745345551653749739809554764786327905271111613889212834300282609946487188412246462799576761152993137608812981907882686105074606702996049424565256507329203575272188173973105817977795672554631651946097866880023162155888998871072382169394318750885946349814949724093799056505450918558343041346801565010510371466404286218477238929784239508476121822333854129041007946300240332571278009881775811525489266414285223914036429451792541600902848251736442621558510929608934507150608604446948940896236845701162586875241320270918539747846243909717733996290330765337764207952486316347986753712362036944986118743734482092109421598565736967982384679448740861173909670433569567684451437913037165940452262837723746276199017934095490143004487518021105840459025641536786128258845800470093527742871393646157619875584094282291231280780202519823380441288316940056038464594819592800417254815744360669062933039075670529956245946373817010446264895113750079385045408248853746748059852123309189622959869650081868125688456099498596553549572517249775805189238610762864859499862067070885361603719193629418277995614843585773144295155857250054224769133628699333400298860877194290986113692879103068239128949942901417123987715034279062195822757690135720674366534213924385722389074310305067155456184123732878925449166058649174124576709396868792679351558528638999789682129073509265196488991175862773069719323457993732015061844180235952303150780977608072713664505132924787528434836502164067065348517264610555803229696969665001713465331866449320927004249763585263665501633005553720371314420133636459907756104571199040787036862156983865232306714246913999482487324976636386850295323661037605799984825509338715154807360421281458464098803163870535859022678092788225984322282740811138452468706016874655265931861540381216565814529534165579545513880309535827384213549633657921231292862719126642597312470140159838359519225118324679019902691926177615856569700463706683163098344523475170827249292286903379614772083618856773649146982359970658564001370983254897439790120898261269838540198943372047176840064942527851410940192835810637138311961401967924198135369542868133798169500252633144633424609178616622792635823654804658220325820901568205976813198081683909468166584163170524129176669671783918203967027512332840791471606588321322448933076197183820655828869733911649263594447756822500061851559426075352368242326164694855460739311634674274597083702088786905458122183878333017796275995256147012665933588247266194783472177711658268083625529861855435644603199829301032088251369645437180311826359766251938269707169108799638339166134299112030404740164613715389321371368445205215568151416486389095601710896710873958009486237882218166611490723291780628297969064578178521602415503891298555800683525579161683443780600014386393156503171325470698144402060640425079509572206079977428659133793898222146514264131429536121361086377265820927261474988513929589822148196709025228434999312528012726278376706949163304009703193052162825650231699157543016907704493880035412064326415259667783210849436872370703077226223050872824318755856739206060196918510509309263979940653876692272746778342018957479208410586323147438730970276345791386253785959438061820976146567064042455303096807919717961617990155852315932301349276780562528404923443767052462714374108696258192188441396617189315728747472347210706181368991048065236623615411816429383794684755590022759328624258660152488720850964314999343440620165839092160079324277542617832330370584400214826001076939882982433489292849333244845409366743730841091327244492597489860444788771337288515674260959757468829149772754588585260408970892249960471841371561685807060254998883661291670360823332665212181128719761708405892230881459806455398878734021836519433844726831682557118615548981778423862822686539019291058960980598418933719974838774704820196664548311459984560326019409485395289939372717264662858377874627597189987452657950850777369582239126939376358933727351377208258943497504181939158366088701393199338562973292107409356688930921224307538414449528008488447869017822853861276819584871675034882490452860195090886474893225723438507978747106919751146157101542472477489726659924526775265801753712831857124202329202837825337139209819422002389496893178954179735804017839388418074335634523761809415572439723609922641968958597329085143774416612206296344478711731987901777595956306194862159161199922203386390160093153440174957924153083672137560158563853538742086084288818089170662790947306848631283400224678554442528629578280605775375430657032572851555264071836376818146851361243694416704722512364377329023791409153747875910762639243077399725962927277764613399761803106732377680483343059732935495060200576121788099216668183382151336652722361693149452809720550910222599586052930589121199122938991981125479773067880997510584334873000313816076920732508246930667764096339031478088565477105358725188391020552227642667457138862485087161439173782037274820183511800060694550916068128199159815606906553452019748525520406849209156579326153236108669324490560658625857132462444811194092357440891097202215477993998936021378897716931888032081732164161023150048043861006698104282685205089925782640717740862730889609942320730065875580534031789105890172325447373725626059412066219699782521212589934532264227677078626891932984353095112941728892978325984223016970526427759388819334671749701166807684733844543524982475778570409044815731682929627689649775465120681030176559362981614166345004144279123319733403561703286080599409666452862746345648749868873916031319753056544928091113885738348207248663222004999072054679775331906047801116059260798743351486800913761007563585164428771205160296808997902149946150947549467927209991439042242161449931309109170151688809960230407839922883947579789301874711343431486682860864565624224949604128934312276233096342326522464345294978160836390635629397367336113700363889374170417255982682111583555694123290055541098904690373352578127246001808823202185738159154007134495805628437668416818703731996446801477873865740600616136446944184240045857773932478478448882373469982035592784968848795785785881251708991148602898717156463200377354443712395859693243937804583732531300836174185173165419319805462441933538492161271931935656849505087985400979931468283230019780704565667578141495221893463389998454985231545188917272828850529674639180698243148660234570035235256677895308399605253173570534274867338628579561589168871315607784663355811737668432067115599053580193880181806507730540929773777882559675688958817430717316705459645620119856697917001741716409484901810944247310908829071548672287265985959876873569092237418555041573363837446808371708786163679954107490554682959658803316454958855382636778607072653918852109484139965329576324130463459671422023180640177858606951540753580152360590507875145253759882817368727326595673542405527491236377200261762243292181161234788028760218357835400813881823961530575887095262581972832061757156247781647019705705785246670305801652063718358570288724753643174947693181610160512151933488666626760426430657086190942924186160459770767791285732394276597777864799432078206527973823038625540990645087293865639695533469576454756438342876349185603438722823634543872910568772804692489867318709418529052344462275050615181454981865337239145128075051549103124298573708271258815075213125299736319572835860489701904896196813336973975814829817496552670488185769236740500442628348592605700654641206384684842195672629711893200039408372783692715315690276922607878398913141820792992592388665590701566208166585789288504208521875163806707210680547080617319777722841847685405247918550585845420237802422304133883469430682172748030535486935933176785717158428644653764620709471109278723811230242286472192459793340442341372139678456249468174333722948070382038410467227938711277639784422368877195861842649290180260211816891929595368533293301680700997828823999587658980392878092860383015344953042697725953619546945288994300501810287968477374879786659240724260473255488752393160399750721900134340416682605107837888719653761503407869129780971973357085073089816275839234926018301987524661807207096785347565916353653288965149018971785615344470376664064964238880982422272544461974610614342723710662849202266410817444948833689884656120885308763416049220418572471306944563210312596267615248982884427653786760840426645595996217104748613692733583054373627597172596719078991747951756401929970049322923032367288356559018391408588509871997076353266468176815459073585042325084346846034598277731485446394084945272575808015049921640259538293152770418618150434214190617030959533118999467990275780945567126110955247995916336287162472531912691238939954951960231265433182496095247467377502903388791506729710549419717799085481199971983542902796640061472820290471681606016168652672263719569958872539235705203298068127859662137404731960257264170819306628463374177475975418392449215935492144702378304984668344570675647092593332212993460872454602093096798178331918497592755236641924480025960777041905448784587333939867504720230755437890332466787273151719240058674183309854841573772797962308948741532998781192297367583366644042519653649426527432741743310134088895531503326837695482634199100619833831008791342502629832606933125293454412558674484212481382914346604445316648876408417009752295539741396963949903497429212284758870229141350587924474622904219943412799843347768802199320389244851023173606965090801481845002587846578693208803804991799481405543221567992345546996331225046394941327132955422601301918760725240291279944763480507159379016730852776101992672769824004268069943166344928173375018434888221994283734253375464651722231193055985395185428436994498222826114574958774338955134210715208016369687897216055158441239415309325162344661789382904919160851709428181009947217112317652770126360774508760435491194983171679803659473284218189247709107358715274869657168886192472456327922442946845812650916807355786161696012913027676117682202677074154770104478436046804040147620670397326848413777085183536529701588832409081445856275422060417660485606589301929958592405512252726887185960151732376519383740850684244927187730663508883132899328237566564055609121429253702415831485639305850605651007864391924247599622296833563409920719452855102149871719851501151602157092725495044512756067735438474466312518326756729207244063691005824838692254291938815991749673994578098641429487527504243030892400595052406014764995562121186496617558299626612748692514283896196893198813995880438997230162891736662520044297498788781751742106899451537658001855879221351400741909062927764756047376253763991019030097412816710244632573497046190514994517826784980917502381624526598194625506511425272533639778328649242166206201763047826796941256716075331182479126973645506023716848935938211694184342850760767884562989276311114506132846034708650976705426238866402766426214217920549216002502148773278632283153035009864223084919972726336820154298786946806664526520740930227964675258896714826482837412372244422320573303469882885474318320315189972269572834570750019121192142801380436053420581638795033324975531561080501045404720985692583286857462597781968833285828750038537227844348538360302496314870561132793553951154452511198594009267094564887241463414562102185499130116011450115697155978482089972873578852991433352305218082755025868896093947087259842482037536297460336329183292517576009659647714155965833384413651304964581434925570811413075555545471313960010802176093772207925304979248272739969717466916348018911468029343194278572150359271227584519058328257573863168355053019624336385419547710888787648475998579304882654988746666433156056351580380862001435746814231670787162726923254273397875151648327552895349407844918058759116670704471232085188758806206144089331413451204752796245068840258808398598798401428685026712738687681935920611712367821232250180026588667682110720265006525466137105694601402732364311295134543648754798541164777764643153450427281016417366268361226740370060499252036278767223875746239196036406735406933557688690031792773406326106546916648488663047037493363930172990204794517127455941965757391083575609604800814234347557574694858640680801098846385286515092665625119105412736034362315982469340138526339681355416418990199668834620191162530127694089087730602785589596389361912191131346083775284617940077886691671342885420337527835123248839818531266935998793433323913248057181833238940908410032088353971741230631390756308625650244392273083182193198938023039181531184193487426558057853602304364929452641961904731394588065885445603097145459427293924318155914949644999699349916916866879593501150099046189312668242943321640687692677722937315759004949549270892138390744807630621444919796784331077288595255826236403080224590136150541574022931549929068257739897509353070684990560213010864507031150509300250428841422124757250348104035171213658732173461809900132233939081160993484466671150817983068114818668745911197023932667831521920129749500908032688247677413310437765961707223444963904120026206577012904032106186521800113322474938944254616334826943730451685975681978870441226080666618449519853540630776657795597069659238652485920364987538159263015428535960661240492506637340557779283815759861746337516003487487848199566092598425650854608444121167256785696871788432631717258768203871332417858744718756771164517037974873578342702754737368906201499030789809767966039822580971235316486523408519314934621871095046205663713558162280062896099298610909448521116514205579720160199248426221488039712338920755096654553673765295984903689929255198180951988220794869879852984602514797825307090351967896759482669766978239516556474562841640735122133969140009198733155429268440427359040124715819160366197537655618571587726004978937912340598068430416441412130944458039585129901249571435306050736361091846642000113770531329864004456113310157608653066620990291694557365763756150417201771033825054129293772171984744412540734515573187436079360108256750530564399990281327969722733633295828456195558222846655592748720366969415185988655656379377611004612868409814636014893701195067247253051760360669081862082697577958739537348251190312010148759428957388159750410922928333337159546484608141858178810092399498879308566929735000572176452569171207427765202523017867205230385663022262565323818245163192859941938580184408341999472356532504602584947820793520230642249984780533105851207118420033232508006768190807634750469304482511965706834168574253472556592101381422325829132574705212200653681570104118333641080859098660950032754977175254074243553968575083789120825514038286793550517234600219087116183882157018308435500627830097913174840663913058839969736827606905766742776031302279783567332474674514798539222809019543685581153627022364334607571109419383866232908828673609687199718712455387525672029068742113937815957882714287606142755086002691143980581387370478636006365265433597328040780551381217588476752214633824958652856282680768059698696073487288170857436395712877922713508380523439542596718793455214142558663025158545742471831731169944657864801300376881197398260594104715976941828485654980810171483008247199723955994969928384718238861188827850366534562684181847226012589041577160271275085581956646463345538387934901112685370363812157198495701542722482930277785090254987143016871542597628641568767686360162495035947202335231607700386113076988280763370979134217863741776622991881835598293095316574857955778404410585402264783736560738680568616843127810504150680826784992256416936630067459155263874922212313876639921599096849594944628156404731144571929919717956356804686029562143409330419766388128842689850127755361729789282772777154374617700495979767044175473547048010351357205306559573897469640665387817617198686391319026146589377666673875505361630872670716075712465207014298697230171965790736505553397155184874785130526759071747643600999007542471051495712243727640157740125008316906478532458911788483936055079917023544763475588056680028099525557648694971298570324045724104442006267146956197295727703637211074026503091012299108980477275673853549708590014403221278884215796840280238122022406795573576569359342243956343120515067544974344219850601701598001774479852382699022029846440711163423334951927258270063686318727051514086021110008542227893414691548946822074745684159908139335302390147805079909683807753053166452123281510894572307256814227827035777534263613683833002503532353713943371110634001637874420091336647221540993267434735258021030136856543532082224016050873656245119240174771159602192360810316212509108216991228143837588546807689597103378027402676410486736989501737947428123601355348909989478192668644768033838692603810528125618189478818939709171123753453286316451215163248912106340154886979223605395726706199955079304038637614498089482706465120747499612928159305590026905403643718169174072552309466767975327682750630911162576626864083168177115394320265836285076168190279664587597443082016832266027405870710076496863194957428785314404804663854184662282321543493157548780524455581625989016984065123257863854198102860030329377592700226775864375801865194638884612744073450397303246996999619852328293938141891430695845840712610931564124530497082845361475411164156718000739612384840297335699750159461716382476016220305954737943965461389931838325919227880099249180750236776487980849725069605851437259383447928283984545380636641201739733611036360973371357800065974964391531787018201036275776453647124638213391303497030254685624410981274050813160138395554040837117392118062146976984454560806245121577706238292170275836662035675910364441973619967602566186029032806840008478208388455544463519480014554176789880313661900462452905457516499919050521895963957793476123517234358183634250518393537077975689850562298465650563687117607026061910113112459502819697604869607966854484079795189217589191978191783972106783308159764697535510880816309342929278100683183228566117910675380443776719299894927546765775751349432842633067714145563875244069563297040101805551311366711845549796959031558297410048648047065641419324148977694134743053385940066788523169033576841376697222183762712716799150953421072457123706097086729051891058488285698551336702831112170488030815809574761899120338153132158108064225289012745330322169842484774282429328435076639882561579942795081273421185161500827345639269387305731812420622586172774988699697447367325436759882289455585409851716402231090989031882980584232229737671955841101666176943687816227334142498012354468153713117009373472957413383230879112926956363387061607784163093318571156929675671788492892880271663513597032322913172307784188095128573793024159385197343236431049887765924480789871810153919574462307345064989492200185502685257191429058667035626723958020825987056848046864040481083144653392143669071220894757010518227719843956944347599523069844331959248278215116014928190123490052737269074255761165375409110344675554686649306020196632017186589870445772640455069067258587880815701912735826307123951792278991054835919412434485332917743767645768225339929872096944316669047121413237750765387019731586527027416856468106453117805981071810524447961970889832446105554376380567246127652825557512499515989620450796792969535528026915897752004599747193520322563639946725474236708733856865085032229356449868114475449365170192780558356543781606706043137840761942923748233800697490455977817389452860336982600328761964062244708988973416922439281848238499853878305856053916124193689955024539610776708726927291433536951150823051477133544926538493949884015564268759746072577187110655439261964335129707476575684458163954174898526909614760038224200677912670224299158887012982425387109672603437831323416260515042973688555530222159391850905276735326995692068035509142730963817204036028524849655686076702616003408746724955315872054611516839121625213928842995643731685462943321421830406973331601253774012560283405655735939138238227785244040363345811899837780149442115173788252903797042413931088328906630591091069559978873337005970471612553195622341225200306120677107088011240698918882915490875559453000942619742370858363872363105648490073033483775345897797400053325680826582913295447597657871214144534367684926960189865362189178988847177362066378355073065742656568615854613336054988634363735024095051524666723681911046098338998660750956346419597911606011782169294635129913045386896773671935794787278330354946840480738615826216452459858819750851500210078665185502123487549558721869876350883623906491313200777060722386277744610273422260493040174072627006890175331797842768884631727561275719483570880275720840156798790466926193321852443148639436219609222755348717024741489108982043566650890829046964437153877407097163878534261234494464479002969794823762195273888299892088264797553028826145595814959358713044471238367881539237376168425853590134370304292335483169847819129436495152826629198434620682418911154817111959345368327481282774812951773830775451281360886023925163156975027252777269065239112129275962571845885921565283336526590054288100980052373350403528405303618830530456444172104182164325690023225755721401542941506994948907398217695939965637945790151631566624886179775443157970948384648121655139057988615418952543127347097274370948069363264200286712754305579105656895606202851780412780074198755581115444292584211318407388615004661654237580993851016120449289232592310868509030706914784219858873418606333906444485238257591602478400283136589553431362651227472360187696900689057443156543644191443147565196169827808667315267850762873385084210270166861111045208911380071000863872423417753087810488944633267527282991344474962657948557442824071254120549691304674652123668032110179272691479332882252225419229137080418476006775623192909034720180448884847816829701067729807598580991790969793776953368201641748115596635599921358208774084378749650906093082500419583389150768957005916916848709248875052803664384382712100077431366006047799399121936744368309730334646023977782625569530442110519152611005904468826165037957382500328503328677726067384013741516463638739174484023780531201971921174640479767523972351918939898210695228103180572963900769148894370056772895114421988770931420709543935426433012983748545031945583621715266477017220062293911225072376491241684623359007734206576294498616561033092022085805105193850318661156096913410227381600435033740538296631121847237250984046069935941875993486173609836144507115085683481505279289279740186173959046013866770907270611556229391639549255800444925339387173686706171708724434936725758186109700617838657201300527812246707265756770957778419643662799596461400156405688195431047683989474216593491836974157133113214039133881756265392514245912142410051210028216996685905375547578264965684161191308634837861495272075463358131251298709118090487307971453026338841667484519824759686881470571153477421786090846818316592920183860174787767070238037703504816396645006033349678159663137782450782837309770141183907048207741430981515755289621850000235709459899088721854986411247621396956115520496640447422450943324833605479236830747816015765527751524817178844212226211585539076483283812767606826115401567518142505659202423443762705705441006932131413893163087904654508110078828554538105116089947548854691847233545828544859555346602893802303575172167194206661003909065394368145832873811958262734183873545150741099928882667324221295917948328000728202444528058477415136075934293302680133599667671708413927477542097179677415374027321013947163232919793431745743211924351979683107066438562824864226097582199909441573484536897174191178831948420325481442115557898252633815651385350377150456081136648277865109119088963902657193877200203355680078886801610797150831965818994000308101864414237664741196142228960338179800376505219491534871768119507890064812167769344071006871019834003491958060433771061919284426905138549961412003260000193405733979933071310266360592236417660608280191024564997668518691405342934963658752782363008157796495223359476325212494602207531140320705588891779885909144212934051364437509367096766664205461481308257941572187790438029785386755851670864220494140548798115696554437075477401844985956194561929346125720570345844791056007497354407076078389033936870926111192115371985027726417058093854673436748360780859249402069489615237245553700708436589510864226177805297169935453705044431596932144092870006287336709522769169459861232926685833391177548482579730373296730487124587295457041477943694483474386688656263988147151864246414968258417911668749555564025278272684918648655904925084879886014080468103991634808667377712327873038400009488700492151022873162951356000285738770475661426569572753099482914126026338847467983989269176172826516499648104363428062795773732284909023249489633345951305444942172847864489014151228797325645046390538725328543642048849912557020302310232881933663370174871990971869280688093931174842298034373769889347212688444647574960479312037797568327007330126071960995462115926571627423294475158332266877981774697004605596952855661401001667911185621076929262967751758102614227627268835168361359920728162933125473523299339760827285648861699214463732288373797734581849113742989346033325187116084844195437887721438138454495452077834536827829422660649656042662577169092251564591526729088845324359545033769688801193509710173076510897725329552027205889548465698363672271267082173949321704625401009161815809367053912164462589756051826332343114782276408021089544823412338332133130348304394830920718567800242722981172914499225928185272468162281599002419086450343425352397624982694423241041710417527904956473995135906728392948422169271241190176943344364153761050648127048544039551533347833445107483841637180183007397390325975409507264451745758530664159021664198623577310404260894397158205082982770049736080073716127388879875754924339927295474807150519884154496900321932054653286068095600927310155013141807371921607450050184358628616270026693197321663595361201390058369453504643090550311685959358207500560870656345407651307167564780447113166289372176899147636117495868670295169416245452937296094948642416391424717797188009905927894505525283528562926303778078086903298634686285035985831300063854295185595672143284150184246364311489537351936714306196902332723092343132638526680098124435890121528929215397263256861027325946540585341934144336877776718397047684617636905230622302011132262399107463031571026386037291095874272446678170364172192093917085364612142336575054647220802997539008578309210305646071902892946668402185626383889580226967472078369954956726432304229533820820023853512822949922118643424563045999947942552901222821899548992715890216179809695559108345635875324258689341922762872009865605895015801748768249205494101644221046600654217500529486024009070134421635906064432497945248515304776482566746212199017140328649942656238557190833774513402236171686868579469146198286251056814830099902580630997591855689623337576054047712362709856000538767137446779088486494077152294896730187467560785539289119913829042686508963976846719138731849391673613495821638531507220271419055874615217244375601694247905623505383486711469386681406387319165282815901806987789189568605023597538789068416264724133691666159727381653247107711047501920246309260789324761522906453003847178171618603741011466520924979349017584346534769491101186112331460899693859195257885563841757055564070417112824420971517443050026531313410317588736359989354868037035391122910179781049166071874262465387110366108060564639591959831068771433521769703945646351644137079151158353706320124177209467338936853724991203777059681054240471258498485301319014774789508887157434278022722228210436419786404172099706331263243055857216800380848050845589505691320966881100256354703803227244332929751024255319593096357245839533634725181462496129098897084738251275703635216788104462849359906158536995036715851292912734524027129191228806762659016259767760301192378652377667905459741671123013842914927931419837179293718677745509024068709022981590336310166774519326847804889144216809257853170871091222669543552631978929683431693049443034382307459488181178155653432951731744566522852680960316778434961333493722012169403248618426832372975272818630862099304343328720900935867675048350187256917203902985684753598401893754302826408260065103556384698131986510651964364326927970439788317611037443425587410978402136809966249838456311703460836425950269680708576038002538837454075891748400499729002375030279116066502079960034814708603066460985955338862429113822314038549840527183037749637383577377673079835756392890452842804679166913775027093243987286038695218248481784522082353450377535476478823762833186723783892417320074479247427162839255322923659265072651090566348059635730406213849778228408645236675949368745554321876538473745642908716494051645856766389541601014645690902868853086445349293901454399376405310889883470567157711580441026370785046110381731293145025942350758889457899364417015927730826081543842194310566138663449768267492965722640590119038103551760742202169331739272765699008438400434950369235010892394451213288145527610070829911343751931712826651013836355958207017116561630169870616426668653337207791181407586050161988407508137676567993327643231422194774994348205087642768963878826122353344703337702943883446829909816651266999201218851723511986106553724346724569954582487149881847448903640036141502711788841643390961307500727194215192109462949518369123838786405179665817072234031005396290039913516805294734790600119019239078928866656587852836376567322711528360182973840968386857837621642632176230183376423427854086382631478433664084930610783292551423689482501311663341582343628641103059535304689883218632633786343284353139878964892231620463797076889693731124864351147071702387824213026663254293929544688632724981173468537137139843766406102052949958873221097108870168372890783926059806186089929651257144044236958341804337090878287374233991982478535755175741272777395244955462542349336346274176544851678252528883295911031385956606046771684152647860700135128900882194142704813589956301840889368834518088333737210739227460018402388267039197084826627076599278691577361591748649338014371017543572974186610054360790955248772198441549932972270624366440677880779573661647066428871392886300766901012247258133036542298014020486540332064287217838393389636379890551970578940158216959258369102555389531377840923405593913925369602130452565724383920608664707050514934210816386272791017282568719200039644068727339661450713466462078304114361290519916515070181033541166536856493598498324066702216177698441218561930930864730769747166988363858371107594405100654590575171380470104049233897904632336400809088777085793601654864808471390009999344695375233588746378925246894186931377859082301821788707033349755592444427030793524254043444529683733125844346103125895693453530544432051058968915687030455444921673174649513810304321497565162731394412302038844613734995044085306724347937142641033233128099002210699538385194429901401782842541785346674792425870997112611485438416103483690102292448045922411273828687670783578400403370089173117035341755225616857084675955861519055509585574741459392721142386643019863321554751062784967444981979451764629538037859281893410403893863640601938940374073704530019491544476531745752361496632084732285501046468297053376104302657424271991890199146614222675817019337691030235526284418703304294429253762543631739688883956971130822245209898528143003978540575571879952645557202278467264102739760804220105334509640199399676118148769137406116804668531502364009174528019295622208704039608859092118378033890865433941537010251536237227254253099442186519083387398840416024767353544777221799176856292806565031826241837518618364820179092361015712396094495377713256079662814150795738834546303881073225653781380842751745021031838166313072118681170630993536857615911770140438630948732525105779823497873062566603033458839324010692376512240205534418799918807724266597273069660928010344229341388116145741290621838384613219375344249970562755845748540505311515572321594832318968447228932318208661046667300962815550557488775656732168545241168269531550731120631366447631917316081919411232073352643490967927551256204787041584557235288639153070494532898649109425128394594274525725804182336054059748280507301005670161936209191899643021844812019211314964283566735653378198937100440232123729394299781506781814833258566923948171490459707682718123939799182400388014647567468740598587704622152005363455851477524002219621686080504781464392732632714250538982443467699664014743790076340198017066288525345004790555204079321567038831158043078564836032526150948298042912727057402846775789447814916325947009485657055882060210745330038730528687152588006420771558526005277932236615371573264337990658093106104579315596549983177715800444652860662331239276905721985203041972135986210305223130737035656181113938057802562353501837331317050274438814083746991365927752558446841940139852918881718916239725685534829800785070522685337391919428975489866266592954559245869208749391055730719244766471170834287788403428612678039732340999394938418558042183506666964732974685887322345583408400603934892075395859163101928545750792481486993035801153049981080133975017865843363692334830053478186854805564801928962911684357961111758283400820424130229528974448166698495849859063853196214875323184895271414213750003839319986570001992381040211348965603541267525995267949206369251960714405548388329656684619123323718969240193164626476033755141340196561255087868669536126906673497433855152530142733068870474942974133852333187256184547022329621755927084645974486782856073118597215686637047461228779274487300394785078695315439304135884048821621877145589028482289176136046739529222460752865778347787875489751430511599944648359898494186538262870647404574855693026697561952988751337322161363714325721971488005355544480634704773420754176124012061385744423427011561675143035088662378994123340870459071109715787469730291649078900215115119095815389588140536867316834842646940398996033399676496636711658088129631770274010280799902635919885944108837413002148500970582472808181025296378016804934973862125678308606662921696032141727997729199088459140547291568300315822028433917157521171957799326961653775203740556120767909105322484651840486692434890598966564111411344395267142448957745938108530610007681465135932193052209103109954456780849349019312949601950311205751785212715411462179945434797493347919095937947650175837391712136423896813101966997101253049277326817021587689230142845611569280215651115554527128447569609138665719183256010848633896555495563495953267545214290243759817267833868072487350369369677691142906990839426686869322166816270817862436662875730472995719245162248251283842594680780260541462358013537636345550737976746131116445830757872112930441022255509551083070982543568593655645485039788963003940511835885671341607957640061266100952726134884244706326579473998874568782728094267054486799429712770766163033558278956893713653015063508988903005702724505030804643182819743985116211827827072593738670968785894383435477584412327391642866784286883323900429605806089039868577561024364932565738196618610857953650498701549871228404247965058513548540211282483798839180865916089263799381047755445031741617397174578133973254273670476187806083453447658951885250738024159417473507989369794674104242841175350596761355923874323125898169232660252930839868804362341083426840514554382423874449950182836514091843434194085433431030778189667157882396697365936342526752646229849552097780329110925075110930317494639349908378098872355664495884630899851512288010606137291023630497344429741878201430521469671940545557776277929989652243393079234662789921009550538296065913957757693320909606368310960206185718128138427570337020325285080305712310171375679004901212474959027532809526016794602070787365908563958162230484318735745311551864806338511283204897220595420596920503764306062887449368713646928965940866604410291552633855849171970637576685313991417899676923347796090139338964308566135743597665827558351277410039206164813884487607698335574910495857307017347265680478020505086594654515892974644319666747503476557958166467108322907714706874955950378126451418617159236515898371851224451397113962340325225025586113440434121994164388370698440311388589213838279346077121510952047309084819938973191220743132589749426653049146526660266525219325967301920044189053299416012661714503224449363940114637913988000015152825250384442430317174587467464796176534508458969882660957917378662315366487608798905608802604056687305523146011201797116654657009974194075578357633013851858545688193481519038767812841453352450711756994743121676518826427312924909274940338865399311276583027306940258749606222644415660860971408438007298135867898317994277075555157217122030947559472894177527550063489929301899637482698499863882919006412122340467399224941376131435768504615657802266830264256921120425182903549003101438338775166012835270626184828629670356317600668809721463470304350193090042978557405730646620970477853470468664623670708069691606615998143197397777020135901657500635354757137121702049461902386712103716684286587763043467421147847964853673533486775647745037191153196572637332603985380404306361681821389920956320261085145889559170414777491202706188961858857662654748758784789985948887260948267195637067422531239344260205617858560031437788177507127806386646184210557911884883038609322924179638102284167702724596714488190070322671006553128849229846403437520344523719966995174224044533470056950122507229326668783133665786914312517429097683430357506955229437880034740332707707032270547428679117563995639012954855145006118344684453495460056811054242832892041640068019937375322916874959054759919150308240515090853287517255465317160028914029897973023727380102776573953478435460299949508248034167411104804110574414043968009930787981552770986172004141281851091374650639033561851816138789028224539299876374741351111417391341632369275278906270303605771017528147531418133003264634239627287369358348281265319449142946674038767434846474320836420841894803493343251632382876384230774993803447651041417477652498254220191583347764976889892814601697688665418451101402031570548719601252997876206173162598173747679964010627863039749568957192902224859903697835909645370345697521543129576514839640786514054872537198376250516683063659936226245970943431035760759608533196421253085604601840798856292121264455974463009870266975924296391578153725252737582227788061307579962065875428369294944185604136485834398304827637381340806061942935052454593773559814245345034432906642647768262415494438623168181713644757468335220209494242808111884355199700850704098033813627515244227197271189320952388194478570636629827563416353541240531354164778232393676299112540244774407986335467208781396636544030347281024650135099016138762006750360121015336923931352603408859269894443415779057715752502792887452834879457844872703277547396506852224317264876133255999950157143812838195848979196573838518395647067597299186264099973138444014802423494114229878999366539933481884948499656237988082580266784543994033479522260956607494954533442290484021257317982339605465749451281924670500632227859389808379827503472691867765841050755024247150984286371230579468353381027105964963388038832782833773987348833022363260869624175831555338386193884612290531172638448886284752646453392082436409096244939606715795669004352387186928361553963192174764429322293948111821942541192368242690632806903073203576038532922137637335448660599789378497685377985596386649472912681518185040113012331068963480062798140253511669564907994175073442146308621333998171646614680327588427050145228217549237070240174116347798899610192488562014929172196948360094050829099488236179734366165417028856182827393194731230478024219219274364885224711451835401222027930037340110550424545486351947958453847944951171416098434494929211732509965770175835077559902317774218165657036222143550164243288532720811913602533228627311254820676540185645064164160079470891045682812287639159425059359147221880164677948298121141615084504937293259957595412506057606802177435200974829556799731138243306906040699006411888837309012807866149817511466524513729254296396505191485988601745339472766515200837864801167685849310020883448019498090474261985791852862982331167235577841305046345656353303494690922757641145105759711855386664567942042479214106207572427106552718892960044086442036631477227821642448849040955175560418474521676239875080588849109195612231631565503836327411632541094891485144157773527045255433347226233523030788663481449483001407998013768429989230863170343516681682423924776780458350264476518749685924235558892540740896918486694263023896185704424870833590395582999649201022279972046842967766871957359799140698454715635082666630737999290007568963610764690938521128540713441532782172220579171174193548860656580546655333345812952709485040396936925232439299002647180674325839224043573772634778663538473831092401000222107914548242918026308047898386770648270645287730934472274061021986836044766746466930433753729298983865407685953087785204126996079797986164884852603621593058978584258981055604466230284077590597425335833028392372779575196074807681414103217221626026356927053077040769270187796135223231573568180216155568144647438833353512100809484988491493234403125610149991918852842609259302058708829680696583733900713636470544954962446012699683518109658221791981912230421081981941005958970313810190804615092189328024675662555171545619872292653153389864182939032405563663401189120336972021006100333560956472087996854749885363017402031050439433953918757135633628640403643798634329292868626420535283790152585437057010150223295579465687553027055016889067847067355921921947192721994960761008195577820430016911772990332800728543305437484755449441873951114473870863785431361093575170943607847743037074468484817638456659730666042494600527200694678047024064174798679540538756490944408426894839112592168484128415733832560258288856166354764528610365022973662120715340892870440823176263016884700770309834696147055768766873184643707408550296420782976943501078355289620246307415362907794093697824895923232143737802233905823996365452052970064546300141606449839102770716211150064818084826515994449931746817422255177471393810861080903844164569180859816310950433382951812807909301028950836354508642595198750403437304187930016851524704111643926885252914192149444331705285662545680241656789060280597657164081542150391138917358130208949731516517447725404664753010020711740539407822741886734947280835706570737976303904118871420556332954554237860511186932807550749199498574151710903489779016100447729413241727038006540323025033619225824874922763617445007033702935968044910226732499702509340839724147541989392386540431225260605323397158796812303690568732057346373859766924117768805688476616120479705370528212578157854371104392120359208257486003928136031094635430859358060250541564373302557673918726721714059268458742053668309573662009759966716278011343917028324197739196482674645141936995462717187184779029302425156652522522969368656724727852163250053267849484518121113312529168949575166850726261322492128946102552582360640042496733865020987130140714979552726913491638939909882958097168918453029379483005202740286517300076204658175893673520240444218720948981032478874779864088701506626272178004623009300603934515790769423563087464853994448603145341701473797395544935039631093857824751862814175183331607090736566060608105019107700111327044621953173143502516993221210469821158831903689229410692329614495298654937838336102209661836133807361297050231195423221500057159485243055041052932544674300025227297433641444015102596184873322446626725968999087331214830498499823467683169730728098078054630000546145620205670417381000220358745070235867450270043084480415349856673313925760391590364397689668617682023237404164726244866732324706135692096378593506484137029455487242285026670651916545681177953403277731082198444429878866388652049707723863336587279872945766328147903503625861268882877111431616629135964470464277049121527479043922337938482008759999552632149665893049405118603789480072527047195710913126426015875680320494569540372189887746164537769484420977878170792360936999016398215608302651405665201744225750444332326096625217755634759429657193156742676744395908334863205240066097484061331932678532213958594024986465234137353661831182781110003879273760240770431131145201502639363814476052914824468487063040379214453999436067113196513675135873862245498211815940181581283484337545124509909797319660811220334375080374256542337714748768360407984717030031493756520112344824029507513276338983526767831234894643024695956051603717866623087715569368555176156918970219969769173897905074131879598882037804886943696373762448095398358423235511017112223665571154385579512616125880376561978925839330377919008445917977383221662363687593050008840726270979505333919821014929043145582373549865308582034253969018878090627697168235301573749362977809733953531563317051467587033636227857276129166101311133274428095290549062208372621964322721196622337414742142419490462492327087313535993343800921935138066031220328977565181699904568055475894157032722261899828569062814085552380357150468928513468402950656602253274430774293636185402409877487213462792025311774354408809265893158649420061548617384474826842372688771922250085483796457475406910439225381928285974535660117400941992370890231827610392112722921438280891948166552066913529161480574135447392275030378647979232130046528330187356969322360314549953912933718559974779827857765552732347371651362424241445118167675348948291839492915044488133486614946450981525144288211190045917382463787641695704514332219969492781424873462824576796953385391491469781565286340141294422730562376234489712829252182503198496032169157371657485505697102823142583261072134646366673386244190448494838422317961102534005535673070850398255962114739622182203456712248965229828829206098560503757071661162458716643115407099596192007418683342108855529591519377697837045382040635090637448062340945856221509404444597467422356837486551044993857884915100161037194895756961251212719440109104422694835185726159213118487018601103036175063402941056176090837226965893708063213940042084161061714806714215661147342918563474716708410136689621238756438241578753710178719958482781831127941413452632578386513247190995153147262201808631797318429576454320568747637527309409262966768381708610564037228550467819646839786215743996581380248659976451664738291118278473869757467448761433658553348076037918485945649354781063053618342523128998711919293058966116551120915788141088863939580898379932577242947291401425768387452661615510641835959822126939621840566575883038088578269218829504872753758217924796821732214847817722035751609313372990921897889069387363966651316357979131814037188303308290990351794375414116859242273380191393527559684137679788982687589506788650550346314835308084932302260068761801894499785904967760821407467615616806350869247570052596342939011432142479292072664839227558585373193003991486772673581806150707402083244201760012467910099781867772234510990508951792673915103570061040571838544918275730355991252890513171454773897488478398084311743210857695102309487712796494995911770909542252828732462814298583968252717728398646397173112121924861732842338285136594162056074551983120693801508029688332430909559666909262964641662714914964639352326413460908596395352802676072540611782005487890246130782457196563486983652351813581479993935824614929218285423947294569203491906316909650666369447692763170780999304245311747119937836846446005520762113826263300207673796427330248324578726183543175681578529562650344935221843182900410343160445601940947149860481122849265457840760131651792135430416694504921052840799692142423975211451376758955312758986830874628933713606840769005519277026212830175400023328674586904401639688754242650025672507158038067166827542088939282757229729427982685912061456013313905546595423856632858247018337948102874028349174889691754854554198778410948357718912533959761988407964661775710006160493334356194496543368086893106698270565947195265045000001147301967164479566030060648348912474394662474571047591230295770237966597834372230915229448119902932095781340278315051159671558588151519685057591064395828014574076852926912449843728641973067958541886852866213753959147723166137834170314455449640398747253902633889981539393693453144137513027354742001481568109086039403755652979159132694933713101239610710419904303240039682987818551055799404092614310357098527434945930807252243456128154584996143947104103547984269115076277796986085270212945799722058002961014059026852425504978281319148665855083834253409087090213407105204245324865619897365531220087122072512820992207874792089797081447592691644501476355798411502197044391806095299531453880768583789781258969034557038922267603027166648860524477814245260995376284592647443249180358889249556191227131797247833463706227799293920005879553869704994616411629120503125443267437762835228582363703338683387076561368392219661228078671146574379705358672687168732027126929497548495737180969784024575852918941255491054136323166122743667897563172920968444503891186277631840274400948284446829741365046599896638469833269646769136713454942057882053805740511014231991786310388019421118294235918117605955745473634764069795639534172732995296849347622752580173969310073467153049140695686008379377911752147729878260041480916574187937885392476984591269668512802062339154488406578987355964050491654850761207863824333822927687135567671681602247037051245990688378057821303370146026417005363565336173064194424588082380533581000975457969779249222391600697801711710685440199398586394286265701241400592439757416535341759971083969514194271769468143937234742517811938563616478301215854647312622964406527343863185077827312364516798808048712549639512785864033676787815309890119996667850576706244021017189144098215969457986404256317150405589918895356119814523901473999643950379232592782588232433987342334531895678706745582751094612025798401266591333972063521133745064909911731597337059632422314717431290802495151192777129157265189794271888218937940198708815901947135938071050404218416492797655404044392724669545515402411939164930731469390411598611750958918342707899346470406829827055219549849919145441089444419613265416910540738291324041869673295179214870623947195062473263877624420158598038648998777254312793277046119322125782632865892104540270227138789610189118235115759613120221278415218394770186490128796486526934750007600070480214735924541861115592124331687738371001408574941935743586129858701721918359493421774924571336316184665834028972152275262308022727332016518075336453740727099581181166171346321779446355220277987183929289428083136854546886050950031155346950404425134124316671995523398886959378566701067193541333878370065648831292777927268353726444271136433539939390875218260882114052632622403020821501155128649531264154357619109411182329253736296756704876358991096043588597687977499203401606772445319985406839307638096058254633918152762615556110587292895214919202937704023082309235026353363114774236410123730212455551212867524874516457060696018022932499193530652384856666797484496998116916551694080493476787298358873012905112552461357667246629463559921614853376233921781983858596431886717149746198417623111147821732121874126614767162002299750254727226998806688208141389573250271046711654509839720180397760747531055082701336193581071141120745695248643793271886088676687222004353590768286926376366564099110545772565026164119710469673689053842672386718774850700975167953534350524428944577970645218629892456949334955254889968492222675506060646360607574761855557188807919756178884936349100239984956436545652033913865923007786560609986510695890315979734864560812591928981986092071155125973108157293233725034389203761555769099247405172306558590004389398696401902653722565375832707513097950114450209416843396799948448258974433816501364730371105786502710683949089455322698822905156329714601824378883975500050809127017711841651850179678046508548303065345323294916995969109404774786722812615915521515121987293430570291421717867133445021954163477724995401141958071175045214740769603869007228075416855318932460853000112305743416532177390096776090067433950872867761527102164601155381851533437960463163055005989924521074038945581847222674861258202023940171505674488014050189418594316989567056807026840479935369207134367145813084190127774230799550713147501048023977234916950923315376869195706427825257962005832772126230289939579776982931447194370307399571701909729195091625994145617801244535585408869694663549384788995373089639634088019529640564181554436373502176910912689545460278271970334585822198663448448688990028442216942882222306659443296047714583106775413490553786329253536059693585187526442542653817006076111470679110172152875913334721582954753531541673113370653051612004499226726016794090836801016452457411049259746130912786191500770569100451796931367304353724078067794739286026687681790730700974069978378948471222214850403087253445089631745420122297217111882768359557806974295188997580165026653326047289814415038654870166181956555227247540518018446302736132405107165170638528445208789404755884536101089713342193338995465311886381261470615196771308205197573057815663250825627219393460391422458751333723703154160789557431047068484273717843078454050773058537301922875153296281892887133129120864466507067780461011368526327936635784611681801030066204450379528827477440997221056309485571038165415293360363474055520441967196640946826663357157019538588725533504043308455445634635643149951995313893624028485964378927388373743577998012453174577467448357182858923344540292363145046118604704765302033639114726094568573938590716206545707628241602020191076599450376790034668854532254187632435664763278332872410063580478372333744017956289472683300641998649220265753249904721093289651711012093644061825411241188529259871004288109868712823377978226276288463407767549758473740096635986586027902932449683130591407651160571566992473926304562979114274939001206039780015063210498648012932179170148874491262208641018824225254996175370182608833133983282526846408080127250887528240048248312319014207615812203969372378181457219249245778464991829530511774570122118067014368135214927143569529193363645882269486803784505124935571920483645434046804412921929769812315938585286476491181327473513408033322469924872707376557231088415736013507042971232647869667162706258165974080651738844469726355480309401203625040775136134442263746461268732152850521438306220411811382884074078668730945061043806632196511968666150027096501771428514192780154276669964156946001618977650845102689848504927946742182136498677025835682954077700085367432394851997663587129430009069778003479083457496078326328217827700625543842178031569106522249314248396254800244118442918536045297115507420710553167432103107465736279082296625374850969035233904333745371678484056426326408047525281527762540851266231369476907892073945687666409561015705091743357968677269288878351514494634474961776295315539912997594574471678852271319157621076123627673942872559402346714951943160994790555226449241587595509344816089348413613712090926479544802432677899960743303852003394690169391979899512223687274739597607600779192687572705016658720177831442739363946157739742484504200620740623652753272212552498921137168604065391348138107914290627816106778283185430331710756136625602944931443026293874902278205788337540746720039360656242054180954919398820366050060233715491839238090233615401552757535659665743265221233954024697283700463085829879179053447761726258002269161457961903322304069096448217526826887277887016992996176092141451875511508776776707626119520239819267786621076747510195487167998832023195914406211529573574864427102724510409951670582854295217990552807067873910542932057181759093621597759843367131406118056783644949869761869860503592371248246887423119654096713877047748846157343052688845148669398241318414907167461224903353352010000704510171004058315556653693079667196742360700819706477831550281707243091838601376924506196170564086265524077284894494182329786926402229508773721205039301980109716685214149015313536216998838772156032098647641042164259452966536497913418890149746940805840587463441135966383256802100074177471332627144474019565592623295424207125035669223187152552216840390026880260330706307041551713691743351445023208451555154123225897524618105344597146495347654922023623011904690821945585278132382667287544973613187938478680192427702932905549862628604984075064630506355621670238484406024198305525892138492694002488807492345742449119573393535025581547434974671630313340131815495685338867514906526645887126709358069257671772996412493753185711263646928220715284182186045522999575759835580412228152717474554686048112449980538562278815155631664999351903550892299963229442595254655195975744997223758763836534957045235300386638666553609722425510764272227563230869322481253448092487266444749002972454537706336582265085139449987761615629476503042745737850896279565404137264984678134285991601296159872962380422670976696150407939055742658393050869992375837343188264319420945274806620806208831094608170627129074749313247559455579928227266226241293099103693941936721125472865887346029953612947272314495774383429812382603139954246140118612582995503966633431263723907097568585693896401990250167451853286727378677469113272204069318383630956794980100175476815826999043799929186456107715924055261474300093654794277816018221076466199966237445954105911947594273573941064430209748362072959635420596272680550250777639839934220809354891590788933901639147194013498881332928807016906607281340844349932883456390017485484279711359569351110862336092345004946921611513355467703804315429795284015295848983044827107763224232416355377098181353317665289037810990527496767056018447961294779628363739641123657422226726719797557352282456524247420590975613957001430269118784997055324081032711690413132432537719808236706430243511239435575455733023198412247227135545281579531680179159376960454232271549304777153838242212368582118088279530561943916740491764059561532442480771243396044019766706945511036328760431476414375769176616183055710471190302081497545967620802481283247949397453091741266461241076138507216239555585166220944375585527380960973884959019777866011165780964296602139992978675750772568128872977907862502143651397776155673718992561261079067325359231352445023885283688328905548296302887278887217004980738280154006902770162753189188998459747199883791470471540313918095830783184801994194904341227513794754206369066028528176069614652480354332732609999012362113550164589042219151086660395973279873564828861005480899726840096077507302102037080932660356719150245748190309324422196854889096517649865669560495729857906625759789730962266504562942447287269430063018064926686558290189297057574082977524391726767437770433005650785859316876261973461569894824018990347087877205731339604173222741328906983697938558834767405219904318333012297904708265663061142465299028946152216595143672341347713541692267420173648070115482095508789223004778107348231017723848907790173831814060539256722181851281595065067424723648820729204981463944672314570099757566935953702520625544225719360473868181693843445921670092261823676352563481350072542445119678825186101403718532745951650592289671372282112267312109184423055166729234201817541720819671626609556048591741827405365933853815071146152454419191727872361769365166854920054453546428898805127076370982499189240853295202463567772158232622940167413602980812386425984780306097805621011008513537791666356205048790020249265780001714341053156357767744329269860185184524468001042364100330524319483604530456892452426354902765666157771794597764060622706058249245622854947205061839352114963889259041556823681475245509158680890315769866517994985186756318578489618597497047812530002143284042875428871995953472988295806303647198816927747774531690653911966640979319898533457790240041308184906554413039046331264699897264286171777606405284856879747604327595717391598273774560524582148102427815447153054034067990064953865626839080289272953969064794168392246673876097708857498626168106873591854802260679580660697591744478216275086560292015339451839925378257846538416388061408700338801775119479806393511734564811338336598293251574741503088621094618211537798043428123201696979700225469270274337837360339974232704933115642569835796990905914548825937030731077659691581499159011125082099711536801231032050742672807123959340479406662768444447203407069749462795404793256497512884093347809169248394739981486780260152422085727850299533212489217644614959485819782996503614382998740350452617549956713262885741753995398475748030067467174615390796284755847031117739041565090820409418646120010428962925565508955205903728581029837893499255059382949624602329874036294616503559301875923500853734319777181990905241349186577124210893480507239403433539650913816115633003023508436426075144484694869960303272295017976345468850153910076810652010825197377705861606928454621351272821722477957808246706846560653213426955609260515920229330048886025282649172499280899540353611250572909823297080143399775596324319381282439420999790014451756094430423969510823563975866118173091856562695822726163731239710254774644014982588464103700968648400272978227243679674423142117368710400830237315436306447012649500828502967178383281149978125972421391813779764515627362729951338372046885687275039200870595972736294535223022275510760850998829381261291729781447486921870302737205824678466731966767834277614667236136038074178089505296313612444057037668886883214676873513497972497860314452372008143554878562103809797325089820397623133168239420637884357916365196990419791213172158236264129399325237131312357740616374888632291156524969011149472226250465278663868036399635648721496928248227316033174352933234875776037626892496006273937205593217266067286356856336923329763109659826417131605895188347290479377127287082298605380543362252279394866270540948315145159157472525977888159732067275817049085283852569072662597126518389306199795596041102178815124814174906125195099312888525116473434414478362437206891152501731966554751796798589843728294187167490606485974453984339268941686012759063065023493292569661176128761774208711459511361260546980803152472088589964334841851709696132853855710654692003777808675276349111418756150874803356606614584878933619516437547837390657449367594907248934321125618318850791141930933038031908504151147552803351222801061825595750150148480038560644766902022544890518957632241972248683792592349996553131310592216356987156768336673807993245080414457235572316520302502236353680156167415962227149831992438769105318447427744953584952907713596879303106863644328440081930486545655781821168340633431788750028333693789381112003881476530023462909690905474177057199434208907238724739153692471110220487211736329257220803441897463097940295733373040028735010009989012877628114918855755779597697163085305714401787162122107516997880373145090467255252106290684416245354704513137083486815363930810399505185549255429715862753006014299488628105354801032274782033438642972084092138071337460660158416438290168116162103167718660146669149972144142642719776706929791612452645753384300528661605373996096220765020843995565153700450319342442310177985341759067563677532971162157988282624581520707398033003757625578341533075329465889045480298408918413793069927796938923027014012762266128082135593553881182564853662708556383588579838950519006980245019836029372270657084609355399783157683316859404479990681653690757617742179268180392744733628120305299540919818985781801885170821112754567000765290015415216139857490497607489802982657817572439917987942280982358382737385870920178930045033906706723922338458896415318394093462160420333300395242828433255007406269611454986374560428820628040842461003735803335415592545512410668280297452200699232244567391676939445192247792669526117872377538386141413591326001998299710927163000035550005048571663741793503778897734034936381582845504914410808817881829598607447395698796923706124245391441636157860544135541725497182716627823457270464382266956885976145772736180174929325925293676779007482988374403518107408353048152516396547055389709156579467282086390000109653792892600972844340489966701086191909096623799931770766964099943811710072870166447124376160071868577558261584249321207543432878606879893429963624590794167643816054728233379184911183500056487079645703587945214419014945758604183406574560699042511256704359803562502168697870406060021307346909878796470462334656860387294171994752407387395650086612020507367912886339351844821799372278537337109199730794418697266940517040801253890048319658126539933479592008191577580511276791695977126646102114520112194589590927259839611651431424268954510755832446614122517466583492199381327685759351263678588474771845425831635295120614581238982117854841953065842796393370683638981519446947364617136969934756997138594936502222439403237448299561466235528158747525887197264820351272923409520566831963800774673230288689674635156411269380447855703938811098283730412818182012492802024000718666871372407684227861519610597785905924321643720369836890308370932816236880345738169577250337654131940051945682376309731061613866722760393815442990800060099915362764878706237327587256316632795892312056529148382083774998556455539320063707611233545228452055962228335747276857869897377922122983285107616244153383520424517944272263041608562263809997437917332892023737725404813308640440987093402921429305123424851106730573727839584810990318372831784678433909152608535370535814654124669444304513669440655045779204258308354464554325892406240129546482669831561678603259878167916819300790602600531249351246145426259866639910392739498095878526422017264980847064641708806209134530028279210027561640831521359600705830025272510887394978119720904347594498575828648717847296564464623938464886378984321399391740095596476517546189795398028759608826167404798898067079925680044355331011569507698274104007845266332333689177066649574905716844078680599799641038493644291643398555117988404624384104978035455973420688041906193700382300504147092042636441359149644769319887564817833963679954726517185453162032681338397726516745453689691689744858912836402925785289111813286653811669694710455808504210855851522066732569623866637053795335568479680742205143189638266283108910601010885736954682337524142879746913249211820965713644617480005240612661855505073054438537348718363521216856221820932209381853658957822642950986064872618369275507114496819591019360498424527558993010794712074789183527244369540888667503134973535293678434560210085307549616227353723610125797289504892459581167540386859954720335174288845694544039302145866446210049918169036323958206431175086194597975041217248364013276549907785007010702634350370267983682494511081672318499602913017182349692267446636966761142552636826822806790107406591265158960568008462306547336386910469308528196382599193895822205364948653425330887944515828145134387090719257210420395834223056586079742811933698904450613708686893042498994588968261896643892505455928652336069935879501657878051203066944244901336577541779141084948418770337165405626229741705793836854948051192486710494438499878180363594443067098849062030005945876494205925741313298658729671500859395133258482530780140897348064047697772187919250322719418373540079642385957908765152614477180403968082952304182393007593762590951097680741667154760302989734175269732387809598126228323780369927694329750327634041693772067940416461070794410950415686947814241254784753887533979921491753551589148588893148769516273230325365061845978948064704386332558462969627628624787738294376541406755761779332606417763322031985515072550489847492935610179570403546952583432272543342676710094562559947297322548913569361622662965518616291954848840968086281853175238387776832127688931234093723820504234845934165160738723291287503845942398306954017754643186412089424290313551598347785996836122209114358354684135515942133929308847640330613243735667018742743711682416188886953420641749839947475191058380905992055656940277878395658005258323612386448164018572792440654983834654059390667594197269536957055210467905210634076836420338990716048922743836589446029714448045770239737549052453049900822657744443053573793637307831274585871703719557957170699837532796699880226174689261147383019595058799399762300154982317886294586882938862429281462443013313339458840054315723301382740725369242259361697545896864985889945759501057959672609857660645095486386634283751602646328709819570278221850039490972879835904484117793688524218252305706879815318293167616889290731937134101318814728068858906903566247946373405771255200484933550365747968082111318499788311658961691129796113322553538356882667149634652570924099563078605501994961297283448825696155087439100846574894668194125415757845610815190483806112553078409249711779080700527696455705237142380444454694784455852075130904416395606826649035995377995399537398131645486129658911294004268754821884788277506572081478858194443500233166225493515594363710078069557776807941441749930062120689606091948022243540416761067089527303180123028887945106773565816723524533163193523410594579260253396584775302021223008944306486955788768978336006266938317344783157184817662450375235096611679318028437443653192741827877054663104979489971746288317678274464640140667298827405487436118916956264545439675499072511423485743967294774450721594745773767672503287951377829475978630451519553582061685124449056183406389842988677432188074255833920359546124649010831077999234601370405005527800581252246770457787607934227201988453596628088470796174353914933141842968442080798346210440031745992285337284172729110244563384839200010993883266231992143213856416186133155358278374359773565721220112233114195907149946743285420568727934743279785265359007155979087817405027808947901921199269076204784183113472566518219311928474620555255411525892246841079086305606863273384512077522962482238202286668155563957429522496563447331783194849292333247949340901594255020908266828328273638894532500923666770267924057778595077984954003409732639909929558314471070850828887928273323668387764601593921462455061057775618461106522745421832141610330821100860741549826636743717082919192127430250370994878341363559033761216012633649769556480647821466843915549722247904371568808762482351485495957756530396741174072873502727850037340952430612362166494765537378865682749503793446474077021461926875822859673707223050007423560468973194564168532914423971657259462810072321281432916104899895711765222291751875872090557417308578901084869689690448328147195322676687050386058963577444579197524623025585420234228504197797231889803456577974900270381985331764231515845458172128458080858283723684777721421797005066986903302129295815853396219201611577451142639823484437503400841944109355905396188682831646654640928219225996038254330679572345365068769004990180715915271243847613260659009489672856913734268643720043343263058272023421865620781255658240837729682897757861185017790500403004842875114241014473146564414942772331910125798451900777375058089156090393533283619194727625742797310249951468075590010745930046234593134713874341596354968230406980381934164173473992965902749500501480627217498583529346231231320441654770145824743275113168929938333750598737298135173027076549735797441442602110314898849567404436875814851934371182172834759671725413311751547264348798702996354400503812839074319267472084574778767231551988891429842521224394826186430492939873126712333131162061759131909113950944031757102587230896326371670814471550459002830093622685904921438732919597559270084955495658550216738419163458996644465163302369354472428728618572163638005408014096387619149062521741378973607360970635137984599583894500074183375733420491604507631759225904076857456201594933183562402045037776991095712757544348853321707384649795869684189737010456319310899303793147596771604150120299993737324379172084380231716520208124185555179954221263258126714396052240322390338003498239347529446439279450967976390208869294562422069091662138669368438831118448835076272670492216331243256186084901260419679608208832005630981832991420645108294720778248090552315667302149612069319220086067764644432520081291975401451366534138972326492452360755736797640460888276547372048337459866225858375920859666960799658412769324977678962186200360178068441239593183212375501308780663913739936067565675043967847259386941219783486911477326528608722024346203743808736525715373306536867604409176942001923726546040780325928208907854264829842679172831726761023836706554043795813145602601734925202958980030592340980398965375214129021363681800359450922371514254016548327113384996204380429941102982727306669656207521985253880711504744257218227029082754704792420001615500615598277837812502570906526490027600841746482579215605876655427974277639843642015881068117011878404806436624260054572907570048075903768734669016445282462195928533367424375435209995498459091286210145929377489524446278077806143698770425602445392936861223274076613574593376057227786196420819984380593673675320705113840649355029539749306585394210752058920860251645330646109630734264606257864747165382855440109230739802506704897632073898398596037585807238312146473545606832080847300808533049155583357029035794466784652071610091245227355731278772557461708794156526674195004786474810836680728469941194695765585060142671644167431134991872326298952788118572205325255240268080383199192439192356465712472182177948164424949339633686165933366774677989641544719758581435441467260486522680836546383535524915490781421936735733197607838730989950392180687685429313386266255269214844030555702588234423146686044738373336796221951299109717955094527826385920900454172429498554676811218990776317552092139936594075220176111150186263292386680435856398818740878276297279515749867545367972179544264070146706458103448085068889162568100781283154986914612976421056167035047180409074660854196020349997696028716696274846974949436308065595558922331560763606494700113731458147613712050075245205671096932371967854934580222292481721866271039060423733654790133666070051815868287630579602223434271564490652065985461225693055313063581458264892247028257873966746727526588063130297457962054936727458592727077585283299036193835332738464198434974993913394230883673896649610067248797786813150814294089498985043459580402242144739913260672477858789461985654139449950763042443208681599778279642844876268214694603454772208966520835122707344145857257200861293379923468789121044251533397024150183728077901662046924501441131597019044785240272312839119108425002261679060636772059784293241628436325592912352840722197993267220269635459659633330947716401340932274286861373388229335019400379806620715323882918136175364591076829293124564244846611607759715062387305165780402166989976976984070186539231850453137197574289729583889189449173584015120689994733332043033795165750066191934989347464204262987962689930977807519869152497262828754183508410873428560944178426054328923542893501521560254586322999395614721586519608261249390447541095063201457465327626264312968113291795678997026418971827659411640105400092296154595135693269297552407965512896510267101477044732099877798806430652424922871300093790356894657358377300027649501750296899876184753414665136201075848933438424281865573575037752910402857792769534809258751855521178155067472110987581844675035659060162105649512104245265809351717906714145747477373087768517016370250699863132399160940824042925776827312091100903980542856553816785495619481405024730124430244160218870900318882752362097255530526731364725581034457140607089582735323169119697383642352082117475379866051808175881641691638359846542967446659727882263084686992372505080755127375634787649908213267848870471635302651653960815478086853627915491136677388828809276156809715767247852069790907673537396718758137881683607764460365969724596158243861265005617973302378973152503930823355847178401572036740077152505391529080427309543837295123975681819615331305100318578960862369150216036889889056312481847443645436777073414863731577516053029126960700652636466226892257370862414234513390838241326135551408115489306161417656638435698298548952270741239860161048032554988878449792884467892245087613850925802161529555357265039367296200315513835653582182470044122833861267723903448620277713059834954502704983026386045139920744818894437645072877774974524042325921148317283007947169751002299305084233735833935994059737985394752981336262398174311879956124574413096225295464804629196482716338750299348966534872981431423469305224754822264657423036070653630425741212504613840713741249027887281144402645123888955522219746678938387506619670525232087989171744350484535716899670704321491572132508863658381847210693137425093982964127511720904599244376050498869998980767856246732527113938809485540192599460484422773066364372297205096721229765621144570807913188313457700761637161290846650779098113284342417941790688706774104238999372683671443811083639608059602970950728284010308986053586236953037893582256198004875074227437097293025546126949599560048935042042740224464960989006813046059594888637184878873031537296316949919203237359640227395751693002801762163663176815327166494916295094968401375931168243920646151019974992421217839589837843626475307136208103363323017140349320584401753678645090391856659934107346012138900291292315634000335535066342835736925043348348971066552250008595914035429145868823540684676425765060213894125262137559455209841581488077974829673698351496139061280019133413368434430746295535390655259056394791902275900116100899581179232433175988134597100232715374652488066217818467094811861223902258602616724990922656960200533963122726410906210049363383879791454702458662935311796064706534038249185400497243844443246362172716514637536946455730944471647286249936406511797525969112129034854304140420152203046980236547754158838499995361304553198759794854295999798994533973052783770163868946918907556752691057125398221633289892142592844907309926027042958194777347786498682447168091113260757788134331340178676831067399899513231217283148812817647884375637822811041850895338185912286127841231730877438553097826664088095698066366670938387423710864348531289728349005590296692537419851186508364241985383114292807307622365469312813082324046155419745091554454899326507128896855841354138865818249078166611927902406700129142648214301113254871295979954085836514416806698741575926459280275686940025656582815803274523664118004527045483657683921345063040313071659404888447750684274732013184420377417402268384575675407250486330717159390911092660947029970186691132455569367230704128587192872852174735023885233897860851626187960019966821587487470750401010091480751777800698063602391783157263441881124097785667815680131583656478057762312426772654660290487276953205817959935858670610983887583853680385067719781944949599597325705674423214078976158005633345757957853362029561810355954957699579920023797823479966276597879819547795722412077417929035843520837935756305804279902358587414741336077404813172610652559002165397551608630234573495429703516287357755366112602994761073145297204758557059232060779706860567988991298360189728383081066486635114425913308390009646670734064090008805183353169216017968841491141466892743132039949372068593377542221834147616209773478331016119809160390336262992984359045869604135318880432690958810658001133865407552183327064754083422187010190573568615545144645016579176604993670252164465957199773533164704499744593404240590037092128871389532940957495900788695910398925344277820715929470892814195769573990148312764758997060613095027324801572984235484109163588830455584442754167977539643782775853353748945173209891872152037120755501852992339965214403267542717870832204862334383149320407135931878297291749615537240397442015274734183355660671805075543087694520524813767511237810741168573659380926667998851929949043805618396230930676935594651845301876609023322806312778876103145831912674918414108110764791515817174334958303568556931891911779114410976649603203211139679234793062868732739819070677609159065487802701089534006514201226608435382300403272272573453116584953541071416016466825849694545172505004043296493628481177057332455860014397739093905364785053617797525927542383066525497256440134430094416347542550253159755237848373102860427532413685595902466375813483642912098050051050226155333661117000873976093116675236854526653970885927510418465658532793236073113020086842151680120073022773084148519444149482716513418450477514765050972657784970823977668999619043390154819457424793929971858000699315452384962906956228627938527955406191399316849430562816441825969718623750802684255866239783672967230847452329983842730542980331241534913943776172811711557676301413229634169985664399964521968369661508897326953999928483803189957469944373059164232079937690593441964511052358402048561298582025644820968558364482712301181146667916493780119109935151050676687365324959961393979113978032352055078262102548874036293601841109603366742395537825054681884026258950037574317720810302379778205895396926871287103916784276549230730607708902025758949607257396625428089833693083470876337178826373046745612522975479451366261407454428682285521968448194752381028887460195727260629078641599955714786828378852462979565229580950449271416582783115676356255522266770725870303991412825199279409380265151804528205260611569398466519722021911692917443078061040225999651071181048766380166328246143426702509265730428111252872516532663206438283891654109655236515163829197288147802152133263363351583155036961864669431494866655422304999580266614236065111273598006539174681035901997877698246613984898429961304219424300790627721652587250701831096001534683907818434082176639150235642161675090220290392567378432653810631935969432810799677995268440299356786075895479140149966601797803953326984016784458429591788080588675314642665744559041997462290283788921773554868655856845326738908993869722309950640259881617516188706614101496828332368133503060057163865645673485351323953947683970137909412280604850690080410243406877797831737983874378026872055735243772201282234587031920348489619372685268376405198256101083712962725074787215808403756488158653012539967021326593309625075260777566803867603205817459157143824460627184112125870250476663044373091751256520126135716989839028168823301061305052610606395539101733780165028684541297609280181628085710968141923392574227712904553817365604687404852679365378183675521928973255517644356317605136713722704787455324023583720057148074017814486361855248440038512959823397069218298391830845498098756873865109513821994457480288597815207666068374739287004885742927301159453404529938930682166133827357411094154987656549892396615117466739475639928247205106929296549363729040809319272347084539530519357664539906719715821645252498793594644438910123643160255485494965861929282053428662916692131421067915186170407211239146833195401411142312862863783275842393675760996561128848182140874795880110973263249139870659407001486541206879093213078279401926492037273577479622305403579460913405034932120700558916489363646168873462097182788625610827068279309907011172025419720762613660210883579163626435111421664324583778278071656476599164070474337348282190910423140768597272948828422357659066540780563441014026102587190345652693212336189438455681217588836243168693932040228842198442801250049148377878912147416865484591752664287674073159550451069038261119297793066067769767131217580454771456196771089157548604347573207011219673780855142030748428709802225169102291681059045957108581389565463491943185064116152458442265072270178844798610289897665300401712993419631297346716164637951367509749970144549438041771258355101752654074303185598266751247538566386733199608267814741544530780122619543648842737933552780625392425447813174268159926564206081986508707620309299386723451235610526484663634953307608081141306470064570944885896761860809451362201128442019590189484082367143595433414119241060370495348623172910756446042826101437370788396995926036037511377503466913433069964168778867831864333719183399720613648471598496543185177984993011021886270476614869276696691615382567064863818280441419997102394659207028908925231221863016976475340418531069146521607523818685258738700023179962932192111713766427316945808845469726421515801428108296798972520454722717805287837989849265178702014932315653143459050538544625346573359743824931143651906692848357547950964981502484131981339395603036892084531447661297547492026231045573078654801187334179675862958207187024782296445650844155780467953701897037116017515951798243499667295063869625285869128714521615950389913424441666366409128105007371824707778004461656445789146638770142005636049142498540590721413232112857339269644614687627500867947377066597094281333058807931601538545306199107663875828023782315959025584649065740812361584594865477643214619929353941359704050614065823088652910349486261052467758299849565596040886528265439467916696177651089063874876711672406837257286658160489451083698887226588321241274014857402955516251443999641926227126641885739425721442256701295389565294127453219860694093194356315806229551748048123662197555064505304240624880934996746014265639627401493771168927243729441369879641768795563618602291362997178058108757624335832300429924603829279089050930037353817393326660396686225168812502868845359219227793471436146310455239290301127812662366330319997566116318283537238377318513237474146965661481542474589006136877043302399135181878705309746384979445499810773378198781362200109963248719686321258423402077910151726965624473605792867467625183980525505232392117954838867073890880099738227765950512595481773311091440925999593788394510328895164464889412432894143920101844885573407737814167577909285865642078849880655201715434016526184810733761592610037238709793840632901654256007071570537655148078360625695260956204197257292302279090623257842135264959385864811941767117539642137126531063690597963695843186124858386446232240812146298592669518671636762181340848438958792516360986565577764600963332691132083850812393929611837259234374547300552143481496478605122140262770772744428030892039334864442748151565595314553093274254026665170633529549337403846428996658408384631850475845180967273798190141446279221198472752934528475436540314826418852469383328084640609477948129523559928597891359337900066259729422139637213484088888702419632490436501090850494920048545174297852638334466542799790729205136463454287728359036579199748729202223789267334921071988933774209934187481141887448216626055848885194270317392483223916501187251325686937400555057602464735731530757759076080123171585616903701125534034999785267845964441543858359507741022369632175596441623565429569475257202926234206107132840332931305327124538229381325672156187719890501058483138492932743357349632733712225116988701403294190389429543555668630719724310736612422738176550102814852361661805540984739311572614150743739056226700823255947761842741570138938104314043358033380120995067692568795903928295885501399588658897958128236941203966230168226656585327320912389208117121240292418251036004225123336147031595096945944053952229693453745326145140651207995347056812108010452944269457695859411870429715499210137726444395350659672266073201871105162512428568438450722491674219769907340857291931531055033224466120627921248029139921818473166274112813102146293201745905506750806932288304624856961852348826142188753294313983179479256769602165735277167825133816139615983313421388434728230392190268528823630720552875774437800607703282061995238583937675890740591469417591505389060702351634803730956976512708027165539392260168987707143501942890090654038717005585451861873279973768921581474862843371092010002253246404329459669599814446394852570570295317488461385731823268566983845994572585736095983185994881101558702861045464290111811300449822268757721831756130329804827416460254842690690165107414246756652044725172282813600472475087804760574167244913200006128014610453709420386733341014050900285926911058763255830732167257144431701510425442534938664132816509113606454470778913390299660261407243706598770266330051983754112010415934239318283708116104472447259009766432827166314551353139326047832984089839424723756768917073956971796969253282776435156066139978886029638050465372411891836757445722935980337649700789047638078711942246438133269457717095592795785921735975356416483229727097112679780655525704251646064122162027109597788665140462290502748289124743586445032572764316481619891954678511330042446126107442230219262230650159522284417536494054079331708208870358519518490747416609471347534289719595018628567300736263480847974837575788779049250422617152297754667565403382454764952818553744473789351542393516236069425777954068187774082626896738162763268884782121613399143175662877496438294949968366028330105970506704054097981613922748500440977123320210242243800695933974200926078028571392562670445574439528588793532927947608491267769601615874273797746698908333526474293997997195101497506818862270192914276389558277794335827421264097402660770067843331748862934011157355785415536659913189681480893051993429846053098107755783226514270163111672759924005936376510718888803274242403945774337242783773882814314471899223069813725304449457575207771884036059010044463582224909186949876649607270767057595078354343297043107540114066656119670450216453264263030995028131775297137678998106090669709217555176374819229728430809596848472457715183616164852258342617311388454183913009712444528824785845231534535934673350780159871516254735733043653608490716850333910470293612144858339566729139729839601266441148824656430213098769698779617148443278392315219013317541141460040113576152746464545165995080625502463541542535760739108372812912226871645728601477538259966071114619427812724111731494828011473739359343412052638661108740431890764255049355660266921476903645242101834319304616829165061932867116861014029645836934897650313485446960563923356546411196548410863115194861062841824743630555115449893290908887518757852638690733507904875973148051168094503153689507122785907372429068460993665040236157832822859046140598462209340598661267046048504545420591629024192900325660352025203834059345629119087154264796017392728625481256307604157163814834411020694936945978804105254358393639776023100336640959666398782780122074335080009958202686866798096819397355851887729786573978281428419114386397770543436621443428921624541446502898365419384559335293693825155197294778370473548581245282047043173650948724147396252208230415564952255852710690381065962209590709803058172734618626849269335541498598970780652813904302748298305861781397530695485356527095374158191314765228301400510097936759390507772888648615284989121998267405600421047962942184221946313792733003685432392181440730688748317524607863369502713745539189526791748411957261198779589703820830367072493275272793854620228912225925557071060382853829777927821968878630322823577705522160193096894989117681284625887946867306463197527332428795312950022453845555331719281163822114241713075118140947905800898196489815555359081180579015495349268175216008066914950184454625194577534728465680140451769789781956738821622434186560229571430464100908420284529750750357780770457668707509590890720971243026558167481540912206209986466810256901752808277839858413560624313130016479707488163226661899380392564705957883210632092058336590795538152524771503860525503365183746414884826502650571781560251414604245073529690939642925450613945723121957324206169053250185279315198888512724441171718832300484080409518364877069591632006942646554403543116553163647496104908771920553385277971481291079581260089785823467967898013308498820447808129675508390713192477944236253963316485627927288569202601712490494680741721854644649957544279786421378249562291478391503566926968277573833571594876404088176436816577815432124285704319751588775104774270720920218400579612473497246001388014072535368039208066345275952961472649052215537026053858590060971073407032085368529853042940992694998362813409242896429184306728960687016483108934450638707447459471431244633583616044587978561751205678904435376145917599906295651406306924762776910888962460884669789424981480543698916430960239607824750104679517675597669002930879064901560826831699133815091523326651719722105520185585351927622140463560186175351126958406158057145230002034654151589848406526567854892301119411594808365089487894014865889220336385384142018678982473345775896902537061472417925992942443928770651042596951734732818917685565440212640154519642301899061754669907886797726372501278790859484599207693603489974242431190179160213053473602578127682019236340987787554038825861389586787904905003452767159618860136646076824341977615124112857178880439557728477700187776796504004481102540456467248579657640873265764966418221165792190936369871220633827642176072615438903504889301777557904143485213614776326676057460974931858869033026274524256212446824876661952051995403476512451318072563596889726852296271792881012993463244995174831393919963542208792003626003777329230997675925436406410531975374575790966221825520023288836013649550239457010458921131712483577258517825216189203774368641700930717642119579827218285934025354840508186099521289277502480218866576132057852171767783961463711402484439132186919942852163490061294775885715685449997507649248992791161959963773839704343457356512252110002498908162899445840051926940454488352156398468669107752472169267821337999702514157405479930854882326664567203109851749287147863770156834460894421493836383258168453625846166810676098666402946912851909160222350166341585914554731966788782982140552177458702313821791268347578086940917915274804508398868005594156421609711267023291055281773091973933892506185439947154214508001670997313305862372214883945082520547134255094819963536247137255890696801886578776389206877606416151711318734567478726145307861479010591800608735180518633040131233096242342864929590328306968900380166592636402713876520543021467318509041695644185070533945200858214899752324153647992954056353309335624910162668679851907205175037836988666466286250217474845385304679021543065035415929879439539096412105802260798604585729236310893072107781530753482233683829247464507501399239489459024545112384101286908062114782371604072920718404000478340042375964808216459542858756342283796889922613286850202265637000374266559054834797327847657953524586538543702964395904939346114233408814288496754397754161816576825584062659720700346636159436221571677328603310222399773387969471744868522086894019147536338305550824166541303051808667974332117329348996022788081976917484181978467595844698068231153392498048710113687409942857624364822356020891932192515931853949272403920797712098314095905453528453858843926182036098622072001563738093955179922767279077296061635899061465050916470620024081805738659946569438614167967505691095434338750030942007151298718261269107232429709010765195294317926399260819911942177610385821697373084458208148592288289746066293737519182692419107739536584862578084998764363343129026197608666628182313240044077093624308773921097581733693435722902931251408976229045221313500175684357650112047706448278433455961614064701349525851101358200644907272033599011411276067649150011586516678965777038477165368676320708524441612503775942180950602270237532177450183394448408584926070611692621168872184103239303638292703839761294704675238106020682504056491454685600968699901467913770939145927047106350178337175595609629606597516305171034660633937198539221066166051800618968569374620472769603888062120115370584174452505449964138072395704929593476133126213216433411456335441091374929696699862211399348560042580153995747864738928060618944401936201932586109717993323481303348316039714596164043350949484236469495352677148562230531139439372644715760712717833268424131210341844208288076523159142924099182875148714288958866371723621866085909457876889813927861784179638592692441073338248251434799729425267536496832595984699811387397946188395713116598466922627166531503136783289525649515801568361950193253627277993843268925624607052836839330795728766758330034500309046541296845006296669879332435712155085265148618857021815268752751963051593584896302940283136087602386885120817204791981171972066074503403499311635424694954714601635615027893878796560433866822748520405428589755457453456730699363139793474210858098822712490506042366882060045136030301758488554771200534537574459962871928527872702120711611835255382354377145110996716111966094374197995235544947562641921825623505659038165282622455322050975378516288290381111747011585787877506547727866613905135440866819294111618420557723259058724802771167603500202954158155501404304495089273757237570937683931727643344368057442609224648304596165434094090132947491407772727175075622235521149846461266826231438220449089006792339416695453071577156540680960242778866744623879000742092814625067424270025651062187476439955291502462987494690586125914193371052315675856423715009179712429824923492608124126857559947091494259345215900436691387901710899337582855636374545962006254108681168896628646536210722189011250719874568620295061844482891422486543173768043468365054324718509541178386895805824511380137321480305531590189565729878381804583607395978049012717035316908591441336780849603571089782277427188075505291252517014339477908760630210774838817474355580765903288218818960106196423454284951135129441753478547144708272045729887367731726689626813777513372448064356501158559109999766491299384512097091116958650226007869576519146534424198893923923275826761557721275608014273577838026804827767277299370372180560826733620301899502155928933816720934672073231879412579530397027182751089498722969601180513331028874312045348914203101579348650667196921624298719405541668664530491090856775309074696105572408776086772443925758280259407190615608978365102050508204423817831927363907057532593439511995513849690793610745313328488775791224293450370139692302854231732693827623808356501512885435482004803475146745412094387392897681665987764734559944898613155840441744968917760001489944437602098769494483507421293461949188761021231948582617721004940569664758718082201971173098915210629803380409012521410158163102213343153644051570479441395717253044588269333367383508260043759007755058126358322931212392177739462864258983265931520866737690914070467994107328062766102148221187868704985919473689865860031113993348662197713027653822298047297443310363221323623766530350532077445582012660168647256608594588989423214010860971682932180047315790687750092222039291207694561118863522608843648492372882471844864033444225148051169037685492576360789371737743234045708169140753361040305747342966081409461260750785850318708804684494915636847073788183111546470942570046267824432750074872030326416184980759437423893357908921984427305440821739792930958847598657263000877001004178827036573530770527423467209853136551565524488069951356357501203979515254607057398532341009621601156601747673374862755433380862164725806197351784741566701470604301989426310549664124185402338902836856334095497148497602048419946517440467886658132941180316212472154050804473892913391495375738421703735113179061747783492655910700278381749243463078221391586933047951737091379134745731657519094807406300821590533557933640100658010098726592209232211014507601434257307850851959300045189419390449177530076151614356369091479805145201002553711477963632938123240972235060757818309036533276214092031435570509625391725705917609286315227013851181506138740756059351230634695851712333509062839608286631499153302441259116018202316317020983592489507831656464540490203326224865811837215583864672284662426017741108516342529622307760317163212404969035673064810098260924126424000773234000072200448138936581152121449423911934802325587732614966390969919109135861228110906601144436186185942575230968925523923429749566137552781730500121993773429175863029566101629405159016882581103275475649339310903002495831560539915449816268897575222877319694071129118786317740128993016571710198078878006177014262914097038587342103955937944142242657928115922720985306899720070582709399203860141657239373708570386585726731633790022621233229238815575207579713421100273796926403985871994052784100306052235802199452920895356943295373506431047969316678575598166363495894608427981195064416123540054959608746178933433095373422596139050082366975358343412340074938701807225822647524483280091652003310936972417521935237479699034875112475526574567888136563185893021030422091300984062471753967348692228346341402932443238222004155231482075350183315122589536483420340218492043629825997172841920342632269657734855673952439369988517753322070193025734999481857733948558993360168408025124185998524744344758712009982386107099016223178970207719078573439376203055921672887440153385308740975822382610444184523174047806960573410689617769121946208653124520134390259657703727732823085331531767701871758675489357145655812743412413647545212382220128454923976359448124197693010955040457331877763815818721499831209237805682368045248868626198873534011999110396578142315122316677791469548336931873222730432069386194737251753624718992625603797322449793398106607308870507951029699666710159397952559961409762236281989575160985364363716979642593927070802494491946390491921612373250083656972024614991662831880031022185439569162351226933993693924371749793637503090027414576137738454612734466107935997607894736647907444231812439640775020697579285172473107298766331547856379306470186233322950606283345767555499127634499473353909223348893535280701059717778765929910224951951800580535330479400747427668166261648462239682097650431229492855333647860848827206260837171833833937058418821039614855184886964479817890193802621973594974559341715496827967282228889901164789030966093047724917488507030189626367997884685207077052279215056886431809998935383543370433879530052893620354097525602084269903049730976899764902080929705063560856692927214159932214242578419004929473647759415002060606327092640865198547398755628500752048928261125310421572958561548421570912683081787452330688599315780934569664869091692293137815299627848482963088011875839218431265403668128079431086598127977104152077307456255514400109391290300069993712463427065050827920113178889828696330632995660466419671653691067307091933262068565575596443171343733541494513911553697831172160759290658610684648808480052933921994242287525646841560937051359379506813236262856482616302582617418111951901760605700661579955102048439379804016176573518240191768468602493239796587269823007443887880381452454345296541994178824096590386528069715612227922137198293336773830710376241994378224809542311708261822985841915542382550192225715000281627263546589834552018372100738147135189828039411791987004873388187433091488100448713566303834496574134537695456335486722024318833211790319513327037415964156595854892226645175789854729366183113937457223063566589694299241160420252451346363515367680500151236797507550172839597061246970771555000350213144806109323705390293992025392028695032921974057815935460941507396923267444793501539920369170539058637689222660566532247874960370196535713091482491866262061793178930780793902719781422021505024689591413316842316856527700055486874194017085352109726538223213271998547366223779751910332935845741659920665058555791995099560596212594181241518166629177357275330878189192069550960987557431204031421593091892676812731154118847049530903636397733810170824397899621085158650233060859744459005418830741223689781988822210372869389706493077545597628803197245858817232102898375878926261077681280737465076146856710768224586791652257705040532201685994652730717483671624242125442748769780403690993234024561392293209783798347749082759031700181632937985027574351935734933875541834833926112701339766813001152896992609485435628728054052396447473158637042015535464241824936365582289071114370002866698092844673852119216984844603308656928941973541105357401979763225324871638838583465243307063395304656681236127140278105739996512297212821748828908532862013876840545911043611577763707610048399675733214031923869818035606576600687188654068639061794130019429379212899520796292690450956325400291955658427297091134620912317571778176683039936476160941339634973536071861844692319103463544076591209066553953234952526226823167590905510701841721567378635785541304985404710763183677083297315608057658154583240969196478628311371377368657955649136643208026742055548033892969130413222777882402641142188597130131824479391517049655635965247784308088756575429126541364516328774232371343596865673475141915501762587097033455525470750892124477410064661872451011004370424103612941867510589190202693911631327673304636602024937327871199100577688593165554334152898149590356062562695388961668581471862262629638429734923501093304502028147586923352924004573413785736155162344055963267666500983374939639289614660290916361118943498302384620174782635487108589610882683223468697037674106865635067536787384533979881119352745254962028978571901716907138240252990977523401333905036429323630803754007489112792982723157485370744405156351079444425712315754491808374268182766626370929863524785749694223642991146334338944882943507036784407943532844147849289200903200948661820060805770136791890375862024093695882125707681772808977575378744072968327018372611220219137533659502503696742650823466355715882556980754419607403132481259721023050686443593105249446447283864830284684262952738029675033621030609395990606266025370715432432599345554332578806075592292617117180809728135631251513674831102102148772385418727330182718579027505111674903607822358223109212965924971928050729239415886185367968245449539418218068338970190738325283466399376796929503139399042078426748850653678217651600955330253333924178859184334187962656085891163183743271386911303951290325631740660945473895204423824838583685193309726950982023392260815011241718854124338767316202986869089135599412444119302579493974322158580306553309009450630276487363823090176701763217454709257286871867643545651815991246244253313563306717520686099583692686741110487730739932796709297790162547349290777498776700483187239896062312809596469553412174546564883947310549951725216490272420102536862697240853262373982972788817536449769833638897883766902991938697548712605182130760278189895046866166452224144231473058066516759184186191528996229928376559525794706756638915405311568203610795321906134879567416850304380685919199783859969671933760038436514090270320261426506753739417670920697700156151207492643819205632508743563225887174100403511588543616505091306076901484090193679069950875425144694418223850890372551940030947474102396295275897177425764503622109291545657951923697691907419496286845835038556009944257790420743986291752413206513823324725758967751165645371439621375778846797365609439549590324045986358851735647954969395264567727153593550055427842243126283141200519939290934177519095028432553137628030833775801990328093115475840597513136942606343399187148640127628850541656056376273919865261581631848828646310513737931255603344456790122894003708340768316266283889327676536694750193815502067441142852626120988736263412689520121904321258320069163053840463961038216460844541925895115585266788499262675061392911300735142921844900285508970580700775216751025924600925414710801231072659546709549795513888935862479925045411499039315500713683771732385069648031048696848375890341071277996132024466367165741487835860883557600645863947327254320345351896059828730595516785176624714142906220488429718966199430815315523454416304773310656427330244828847222134630020688980560847751675433013016928013750725941383116159152466800345316058115981580708331225524958111217653010250258346208904743047173001987857273010564139146693674563898343623732700244169441342832045683130830088798104186875542124629661232872030273681868897420890757529459949122907559428604691737418531578503716062412279218500869573905208416256743220123449451766712814095608600047593165776361778333968076191778121866496832411013388267052959318120739425962090562865347149639395792976285868798902021484812988437356449500194770791196346257862112601592091239058982104164018362818157682360365800262566912501019503385068648408821785947659101000507600666268424229953595355637611063176943542628362651212122160355297226990407350084052981196537165390359014820094991764810035352406986196155637553595204476177959949359108465334541444791312189444092937895803912206001141294779256927302193156157043809402487767475444144313634840841753438149457829237302903517643411068116684232274459084395778614330340647997263933975119165092413969884764514073320217169823829861292630704196509081225780123259184185945512692663418960452264985472785360162542532608282945194411240932997852512878987985976962997396189050391891176928368932525170467757701735164532005925750947935622640220486849439323490411179491486564988853509715148019975841257748485267496561963927389454067990732653476070570107317491476112790013105029382333100215433224646151768883207833666340599251897598494440629507851002749670564031023990402490781525240713829576265312149302170391063701002672084155128985143332721722758488350024708199435631493233838587615450825712302460371526369697513847124855658400950266893915789944927294079269061760742150839683074522284892338046582641067833009404069822392574998327744831929543814131740342880739938052293162415875409131537081897981185171678426070822934911862925522191748930139484697394858468857304694014672339529121569532759021978182523332567914186750510275962861319349410452378941316692093435962414432615175029293551656322615388183386366741351195144145887692111579661919285429756606731901872186104844872598570577984426832940408815177224930392800961224837017200017500018932711655928609628286490796016823120519797279269190837774247926100974226644485698707087149890855856104634366463526519045001092076501037183314522474080118555279759988898115214634714762612287350430352718742845893470207347659705511686126700812787834544411807981951920777301244248083860451187882373043423708544662670613953980665084339148255071502735912462055312096379736259039551275683567514024683192684595757935999489081479570424030972217172924895345109626788994115403939010437631294766457688407816053385267129977762130263337232074000319457450888736262915217464243205220516500934353460696150666715247251936951310367589444854127217346674238917568536961737121449087325282501869365432504209322197479748705986330390070605725700283472779494661182346313138189636970772551392324250652835920393614506862152175956244657811318603257770705634008779102674070914828931615453561678620668676996539484239509334963441048051431826911084503917166201648999358004200452402501290099166884407161113773971822660956682247076514194466212544393312196044504179915408071606332891436558790480844127235693604524162623810801454882273893945769397501782654505263134074403694178911950559176578177984557603959938666513861587008687662985777102015392885409519636350001731560518149168348802007231748406291341669525426732331391672660424576258698853239585425104159875092381126274923269762531277290694475755830280344834414950698598207011847489346635708287516219262984083564265072912958894797427146014478326440029315705643745571282130232705745435542130406080149214628177820089319245560849694382154266079799055941690262469017938680653986781139428036105775655729182791768487584014199227388065268301015748578933980608543747743734584357245750467650888777936373017203479485124891375586542821305449217060464559476333406670207819861689736841745887543583805431088936051244463885649590505018931801058474936667670252832997758599192642367051650019306138805755442273518010659872241966218210952783978019306985725023980451647723507117843066722529618751207588235508419515907589519970092856424472484197975239348976620439465060205328289342808942191277945349421678685281682991479966622330077286655850387152918382198515553294385924418445365462974857282516841927620375644102077240258982985900920855995853934273148049823540171696800995203301690761068958045030683872200260843650568423396519459352700063675087244103128474100308268491571298118070201886469444450053036019704778061305343169662083156916645251102027830676137605758909370220166226306772219280607335468912910739710268814711017384238451631015340142445117249071254196583878967175405735364985994403333262303510653726763366304490762352755750171820019817763357896746691587921768544648909269025997288960353886236452686872077252098980763780191649475096957758827654139147407924478600374208278950378084516361051372700309527662227146947633502464840450448183438533902399027667351536879830576993002956741414352254986574619981580294157385361257920416663687355662416006905480412947670098897515916052715968221574371294743332500136584025153544808841896506542215348983900196873288077805147233095230812191510948140260588299626596876970553511265218670721502590333984013170987556008362823067922120431087087299112076931743975076537491053884517858956237025370765815826077544681830544862892483164155809600737707066086446426644962053423332299644636207792321275232949236315204888822306884836102447065170211667576204045305637336739189907665550976070728555694411886588664242274832101480403186889914405236771596372753685963816602789881788365974091465594944848219495010170064250169177302557503682457185361538188415319526589906709430766782622493914531890246560828310760995070786318382849498136628311973203802179278728400342426218728029075627982383011102945561688972962807570514866407480580624176090668747731567307294655435192791667334606440913678564597714165148791832579522314807844983339497141224865350828175576502898898742339804928406808190242952941918360165205755971703547083088957838770896484534960992712050105332486226066896227011549715305767639980312082651496175459370799635754209578515711507858834420221286108604987308621273178793945121665649938803967074556732814082213734069585402148996648141249954147749252457708165512668954852346476975090241866303534565548249138852069267354798828896477700493515280195078582538929586708428006536130465781294732920771714799814981472787935583145934074804022254064907046642503892351263142621859648862361284935883533605744208205906327732177127081320606580227164837594856148695811894076515980775152702617209186469117960331609694835581888017377665791751586927088799522935724606617152090933403837104831176309684628490582296067286595373988251837995005960714150618885525540633789159676743094872496205789921586556729798534884664525639757938291487323270051447330075373544756977064127407968357553053920533226929590877351296814192073917938778570988205855565827699979138998661015898228726125480294805009545334058064625330550727256641899486042282501090375641927976408418870295467609661429651767052503746899527956227400665960899438651172308644004130942273305094931649748752369185934188725413595910670035361695741141810916822905727999223377338691652805229908244211349931273352076648876355281941725473407402100027039912261329274666560786461383027986504637952205760526340783897835745471275413332495370481671447493851754616315113995106849536837002618800966852830695084284522685428836512224817314054576748709578953019508112980643823784224166683317246972982420374099355353695041601595682334809511383223210542880028199446295543081167956636881293490219392515587485196045191983753266508002509385432590602593441594696060703095338295927240537814670842258377768187302613949487139463978232106589367922024678725370474129687408026175675312741280784201837806088435711956552432169520953331507261582305734314937465643629212364129471338842281262456315545304630052064866187374488032008365805030208681844112488131015574266569827770290829048692756857268177826687331043500361383647833786506845439074024128141937952591684827639877667058754950833761135112020322285413559765611102554811005874095049980942900648043871542867889910152083569402776137543388157093659522330524403002631561319778663108068461647225218352920143869091147158897112404236076321314934348287136352801237755183947088475423931215558981873720715864459208584725949448093414725776509947740598244460762998954300439712217002117588152802836526635339065590156640306104404711035946930486949311999977628100885215462347402492991777181843055612219976568290591782074968533390341818884065234568665946871610508610129778186033886137059772832703985804068344099745590044037656189366167003264473470657166816174793150673336323284097357763799136207952277184170248629782220983645370962275503832151829199908421067023054546150857922552205102196350680823393478525297217997213215741401478569718698865375453642881199632288148397283170267166928607881191198479329499637150230386914894568952047053922769142193909213768255582939511612997549133023305340520750548878826254375629905221061438050621905564535570382724827326119753559913527070796377965036692626986718878842109580920657903061359249544710119295228313774830471992201996091427856461501199960712080426972535340362754556269001890763947757913717928687812151403979463685195503533667898439433620958040739140799769635198903108173751194371934189882914974580091266554948557535221908616255049453688626984568935467375620921954376097403654215452397517447222231123204669306614983588943239547891521493856793320303183707641800952105886878986190786609684822624510127216923854074066292237480534157122997692018533481009928854386660571379322847077839403918348539646700438277254292013923067117677781720058651109675929784456361250375142414769603804796983747491496105364868716243721124976104267124691933068745295591498644133266416879133936999340578062357627171099008584899513152936848724795946347728612712772972809609612384791639812898341884315104427018052261713080678146658617787369698723446310478315575840997735321338498092535459863110461344589103900652895343993793831765188496841003673485662610909716823578807055113860555420629430909218881630101677079064567258397119799463578062321338469807241897522117913218864735547896490720813107403468666254413274171520473495060426882714310674554533060858155745580839187345129841359791863854045891057004284011985355921860199281986564573833823844832753462449958300637120433586925885272081010636896448622572967384505044610941785942818578810170313317573291769694508509643145543675370846834277161796329983625355785309487662890292552772632102928112337628984964792267786869831438455521916455142188161894365555628391711643171647270916882272289688650158615421648389252106365952589639249554149844263124320422759565346737658420045801592644399941804673575987249637342247676917333658100863954700459449116215506709375033674458410125978722739935500863685667096506248916340034918703177604074741651381394300535988841627686407873901434195823653826337541278170621005914170859932955402319404114826414370933536202577222370912150577203069548446129854217378304336800453798296389063425762502162915546590870750816682734955725767370098403369142360714517840451922107492538701357592844060885172510405511581476133148463551553603650352870145604011774711777584500347150466383107092651503977727631106726295114129568487629287590351758763838654714973372664633431472352698045849004111182916979582222738871094926926680628707100379156475097815525566870699146688609146909321810375004726467301147142219429786857251035077302525152735751781514758115881450083161726091486222798728506149706873168477125222849588270685408488825453462667058062154858575745025486017420815068087605977069463544012639591984370328495716611398791700028086687230690409944508665601508566539642189515511031946502894690640384491821567305328103342133119969079547763255215914924269866735296540890357232016816119459127769072878505022994755180764030803790097822547877882804895250562024844376390817087701251891660520762778621230142029658734200635005461532543085355252911898092950797957430256952671746041345890361519075226999320471942319843528899854959675946577131463064477201527762589796615210867685691552632697579944546485493638461923294257209966145380670106489492437575124535362838434447040362534640285494835416805227089624233541008009742187254490445917907251332211463112814439326821838117550107508148149491186740465280668136780220878310322689308340260165760112853405866339200231373641379963863198321811471926156588776867173613751492052824581402965857868840086882809579650726299428965606684759459320929646445857850603137147774730528913026370853603618364954719939071889017616458861024794040716055805254901743639779987303214613924944652631358960513587380969933615405611172291541181475961673371222397823042099328713911601711233972620778914595778358735419480861804923892147421333379505818361170298093538288492860839245338853034541327325737358017448183348186591775394318486758047576707528751931058123669775835274194081854538390635398966250931602567738058047323856711808856305098995264245824499051673599315951178930183658341224434306743057401725887819463818524125847197034437951422209133800786811225592744721999817613328477724700589782861636713901850593452914849941158244717848347902304272122666229483312934712090187900186711286161619511304125363465510016430516439710282948872712028257126467300798776824912198286885744148128751272776513103428403194386171036306209703806414142743790576774446133236083720806346562206494108379522745142218759507013579606633430560800657831220848271118644809338834315243016901488868056343292457482976516619908390272658979896377332867395051168975352452291847129276181340307069211220006247542006647554279540211287643340066172023810902743176359803123812033297706135617849921127824311781957020051352789840771354884172432951739453624254407119659105221936042498778575589141956991725594326575359232148887066774728681370830762644881279805321973342828121466232434373005538519546122021591209517323286154260159633430121116332189468445261563842373175051236417668463891131663901089304260604460241506374300965210315310876996128615770878016004035618224749176871168480983381471816275134763887296140203956881607162215462690275661200318090269858963000489558797167695266299734044168342767724840905872773620126395820173142473283732443850189946444035651331814395411612462306807649332611017089057852858370578677162599779963034273703420175762136294577346479040487090961545334473263810457757969760522202714338445307646518030670954645259471885281208766661967232574814898526331215079213246184293687957943702343853505538051993046940227258451422605289062199931235417225183236424780477039903896429880508907623415082285508504168405701272509894264089493271866469981831045302495182664130192020007220900430880725376348029887681383438470815878303259030510375411561134562314898547008606503388463783400977172754997727260932968197394019854996637579629632940498821524016270359756342599273756726370442407581934743787357795758671678777869074084821753044634042874118417192237385464150478121052419244016609831352858116452966104505577746573775770065203956513177828593227177008759755879328000222077809275192572364907644353056341418974012391987440254366480734182965970651951587503999072284047373121760453937854647483863263149513970701876551849396156944662835609819641199230739569566950501840245477824090085694405904671793091160034454690155134225552063262959358599921527159189723345809722625508054534960157130516562251891103536660875148115689424868243483189390053311195035005448631866649768251566210930601966257038353507383464295470366012767000300793658740531061504514547999373149841566471802319530776487618247580077112985250461037809973638615408446902847497166833286319596196033820505283202763853395025779626327064811751443030851298312506781999968058163001625479988017345547673240484418374999999441178147185251694514540311261336623529634048974559525119545211389559490956824906942446403545242847699547702619211327904344066818857161577289943979836427534654972111089688089662107516357957939615707844061728976868473824605354307978148021719176477441235603857803328063869075583195495627947364750263264444486681709616729596230223434383819414724148835064401177521786946329670832089101585312561077735809611014701796907317976515886161504159128108756553832891149143785236881135704751521434537458791093154427710518723061885483355974476738239101390476449183107854550937201351279888973368748241411552435017157764964320535434609059237058975185744800735063133497990674332670831860758051982776616908415923461450092558834815715557737658688233188082974959475159652205568038791704123555986871232858769738309895290181744579324263313326666433309800654629317416021311704224186447201316280237762546665469491359490434759922071715143246232510764936125522180812876498806445281197450563233468923924389913578194417111810536115747685585575082644165861414950519921411460619873233423997881077016286116726431535153667187512950195421547557273851147141524954209995916862899052587612605911437218696391559302493823014786471069498422702119356786076545532577683912078115952269292323653370802149993657584164816113387228959412524882082006100129034401674152747397499397163937139268808430062022070002577295145813719161600714890189650252275883150052301632796543946437904058441019130037194473674379756511567117236992536309228216979143666709777710652838095064536947812415832000448218958951452234522761539859030915912132837549953675680923378941738361473065403107844478396035521914002496674015399007108534946842640854315057082553755720040225169613426134131487801429520661343596835843026853753281073785286049501986559820928319625377427629061454172086892160666503388341207303485193101278127149874896504204364679248195445371805582454115168878497969027036326169947561084250636056991978343043320865720333438156606834485809101831081732408030687093722965939603314472958597217131208861114671029243103146861864620713294463496756185873443894123819672213478639700900542088471621704600724646032102660826748608514759909770355138151964363585973975972585522233810902811736696449085594970350858492644316146456808233832598964433252299184969308858941300567081589898373256382454634433126727893844001986459520842016236709552864964823102491344134266293418955417817933911976591807535946810359490394104497285508234112849948303968577140533985204924731547853036502049023535724949819781458004982903135610298308952760818418782965593021742191629821948450041601751873788757160000312904999605258169720376961440318003450493781671316996400983357047015422905344112359498448665410712406526625856602533227302220111776816525740277777134007999152275330773720186381300675171844712881359543054830249202518513936087256026811045094148024293409502014400800708789313220811257223544898345225289608067925590542342292712791281873307737698227859883680682486152990667004423120962906445455262592909520037041030409894364140351456111954923701734782500860909414417322104028066442084469166429228006717102754288855120157965029945954194671081948368420465450575629259589466672601471439029867027416223591680186716530181779536925536966304656169221483283495801684515700905522941037329261488310955256206743687843582934532271798520589809075507757381766896672486531778236410299971548891985360759522080731575880477942545573750809418532874555110812825446709044866903012251652072696259252229964266540989213634790843232265942698333060114845737095836983708893698596565148717315181497593814563130654099046368578303607449231415542588300642317912973922379331445443077141307638676945049892537035256000509753059684468283367997187620861546029935527945135451238709398408384768744733209778500164680672942970386936265108355309026724909326658006932736983987927215955235604064624839867522196884840234453114678145697675248192725544372062211433454851230500701299897993615998552859097241459829426866811574278407785414936405420237497292359626556759925937493490394199664295539804538380514533689319410165069320412627148431718485167018602886769074819131133506592195785867224258112793060579627507157858474728967218163677308539258783953339728942855460902496598633249398801342035814822044064798648428642516518795734546593361776553418095109164650806065514114070795285757671139068504403530975230739576630454389211697550256705728610242023900897280629603722402193497776907787983974974201970049407462575121541835298564728169284100902200079286729441695987924062674000368802378058511007916049491905818768689360659031303559763978297204257072513251266074593190090484225382001928818376733877501495740366214796777817059936481212462703766855610077851523681907981598065929167222727674896366105836096431542526577593809909396231348194944176982023811223409010469761440753022925427115496170093018265661065691525226841936033235164360241524438553815532688727920584639925126136392774535238903716178677874424063401740274077675204457705075543391107190414567862649268265121510643790570063907246313730474713623283709656990654395449177923235824365965707588631520652061224296188344689592829852341733950809556285579673231232514619698126967359584662986217599870322906969440833619383100531125326428496064366289388698354759790087234003159393911602988726972758294639441938325249379555673990280139457884631809796568449211307940906953197361458881414799639661335938483714259656809337811799122584759068885600643112748799324402992309433226043408487771671044579838554209882873557855274668778645748341260688702760642534610305519003282872069681814347846960249315891535229108269204558076675579391600821451153378704177174969191539893242646332110097300130350429291724677716694903977571824114583263308957001098262196512392550901962962532759814610690918832275835976526662216246268207250426533484085615373305030615974614521846233876838216471196163407823567986156376110638141430441502085017969066489037645516001405680788227812790379722414607794357582679151779358455996857362451987570222045693187922031515006200732974558558446236461372069651850111839539985098087957783349102079991393036442316685970899474963686064951211329733379818687625390013003586754409090133480097791796279271137348530900405789910811125018649793232616284383123741151068993032593188463346568951309413574997493187173943656783976841482054549939395247958822221104026689411106560834674119586215339152675061345170241573785385034142632760035283940275153232161421322413186144409406553307353718877895272514915902183192997971437025682899046106594985314978474063930023802369486873373182724616085961348058561943547119162555328144054185114597571807926295375034878739205674979707883757970804534977864490406417486697403566552438441051943742212898356971434470782328331087120697004087557853831094622746158635902748180290367207175605109530947066152259240321451709626127680508394757300159519891464773973214152858039261244001930778358742134872772770852270712562568693565780201999038985139110140758324727141699810442905495246338429902978397439208546329675656295954043472671914140735299373138445982765762718221497158437819404009999839326967590775082614554857013428470687175265388266191196822364879062753756154223504708469331432520586352196418048735938386890827789848657875015852282983685269906424068020979442408339897208038043581447433561295707958727754617381781907010807812835820866738372110181893692641305257777336462349673588316899690635017658180754794740904165820868081164289842538299475967995714255750316301434197928920846792335729487671102796965648718028549672854771624001964800788860922818162423824407987369179616218649514739220733141420301465482963546509468182026754529569155386716055873964752398614023848827024296610094112947216777757112121472397026894701235382868125306250440490372068934977552409656578662493750247394464714719289842779477102439192002373202466873427074939464118405014499519928193456205997096369469016954146296575915671414787337843120013394799486443218508807034527978244456130888106545217838495171709342253051474180452373864065975070952452394022498976288524385641913260587056113182623640835978527875665541834435686532903706668600393284362750630750122435077662484661409098866079082722837754202649755061249977429339015715713696479639522766105228644707089258929347077464153342857062513304096030465651066509478410576286438000473441975019235970907553496186204506731998528075851243846648689336284124021214357276901703543291493984920579175207036125413216805097494606909282900438665851021548831253457043872996933969389564212221745788166785172708015432474813761032312528766811428402864306708732842185844511379147978901193736815950348459425971524334370438151028034876369772694704369121004322992250865191518855396988614533058647527976137590973924127741790902078109659657442268911533519534362605289897138599609065654877669210905016065726313651572203415298931515817677880616844108757694536586536428992356707175341291988275958967382110177356108360723062442680594123966786980113586834079578221376689287296453990023921405099372782226515709030250098697364210898506422095145366043556390430383021815334231848164745277212007481682526161789274077994418993706995545045045026109744417929897685582673635070234812814413238184402203820231937642385899624856356033846044462551726589678647719012796186036107689590401608776910847921303773430754599631648666970667201873755949864021595911399884383840345323888802589878606976827026659102625168606364054610691399972986514970996130125145932920773206166322094513929081610645736021512088882362718880853534539737309254709525629837151837816914031751295534087015258043218550651252481877258435398840294517153138889334649184281005874572442457839329960458827961021557311134117772872208796964578785730339042970473215767487253347245508744698253004231790374161953838242129683427144821176937334642022277219853947795206294149970334898773438494447899826851325870693282028517530001589758999819659379013783781713634479941332010842753925817864034510239948471076851030574631942972084092795775116894334553461982457795872142647667429855854475793610970494818358757814041339891101007226535654953262728649074628463983836493732993566290719653341635625021160840444857258206175536012528936710753827135864232323104230064773021308539870999314930732640430889905572342427821690897647074860585467188363373501259421996473465818804556105923670374917812734040230822740320838034836508817042093272086834676227442752822543551527394376327007470147314012289362536282885280458383622513887495412834364697147533563149287826881120627645523722749667456583595597802999093695083952564882818350933443362380411087932556987895071245409231479023746459690147267251097662190402198106530914273228410005756993999971947858100623897250167064951340118925987672077835777227440075121824839604590569323085404480993411191058490704423363175874361769800690092953959142137013023142833504638731943105451331031435637618970253264507412233371753441100017298507887758131843765505928053256336777161657221577973811789684345473179166923590734445734714912293494658439260415122681687806232731215048838647049791529398098263468397510179846407315854401134098240205501397907639891851499903442564181705059595349114404006821571878852611786035242972953868550560622813312027772738554810998303738055833122243039842810140721792786145188549129775824815676836793983436839578740856425001936535582446041905656773670463014197015014313035854182053050353871781753732300165049163382113161051767697774339328340885500790758144364020581349587379431813519536170238203318147976617158391407677590511810555073905246597987756061863556836031943201518349316179856454581791292914232155132057236337293668534188504979351309866416921714736004015692145301946138131519789011136758503990244681399433492180951086688968289504337465539978985744935382775935743979892261941606074849068576211323541492471515624452735766021643510357876573583411541628932394883715841057864905657947879274342364694180079309990095980946963132725282181600969738148279331712800458170541649221114950770356922043304267597786386467683942143794611164720506329847659557083500234894388440225061211575288556101732556863154721248683485213149306566921214232319234838448135440887684981334510474442100058031917499155343878349262795952686155595074170302189015877825386570244444416991685753155325071375176243726206927841012892635564169387987609803908260802588822449654055815050275211975406364094015159109894245754415173546758083388709556055625130544774324420107873597512873988083237482542261770148272522663528837501538299984404307949052886280845265194524386913208774489276603967395623397181612353451390482976024676394690515972720495639273170292230391480181056198839769591065380887486410055149607099164281374202056780488347135837668941258091159070612757070971072834228237274668796491613400112077552461004288509412944143426598598037712143066366065792568719798540257115466089824905265519921985416122882675218927403710165750761134696972657663552562906798786572973317254173167051891709377691179652409104458715798981241843810465904403673097423639431825895656356185806083451204814317058750642322482383954379879642508050125110876120051146430663904397143410793511973735105940129310700450874289529997266308270437292429146288621500879982001354758274789321625942128179866924704161502360080806998980469551098161521390752952211539794206431535652310013386665404203646395128763724471265847451088707432224938886968181923379215139504263375279857272633603229534170687643370617939343065890949924479801131932671401505926138059642143085437641197056073228879008317078711939087020103377596094321990426312120954080385376724957732055657480804059314508144990062369729811502194918179927117482585479425329861641943174537266382783543713064815133959739250616641105039133361784249318670529464708515140577073546291981171422136343997258702118357453609598543643751899977642139834695272411158625754575747363958499373106421884957889574683592737060707449213066610662084292634156087884384296120832122781977539621089819697479526509566303222742933710774761980120361908371563971609699148738237173638603227668751659481480363856412374454450456305252057597766722727696402342210451526013037947495168963313345904774831241767845577019366232195267927470801790418017940811310319072293787104401873926023518807238106237474002775798762600408787673683597112192433016425974732042019828440500165175804535555236946209129656809510543043958953939882744819910429914804273816364120449470359324791348652113718142519554964002888521560871628384475030389929175894699499984111583265491108354294212315286585853373916130538665902097108573935032183468170883411408327642612785261167779787683438663059573045147520465770331096911557751759415961180211813891231395954468760037076432027184454260811402895280176902606845216996663750343445909264098651597001970744753991625321049853836894883097478028110016584744951833287514851488054493012208911074747784045439908748627653532268297650274780315698520115657845255644912259392469785758258750898398697389223489929870993791773610947521096222376818976432422308222687191953862847255774135376122032577101099903031866817723707363766568030068756477143561520174663320646261929020645760522777787825217253391900190984867379844075823738322086887481439542860965158311737930610104160309707971153514312552677058820957056407166027347631096344551790399335353023906013394105921776334486127885019327527840701556939677920745620339430212061773197959486173488960283515133434611758762046309302329958211861775602084911252272972894212975672430360037204557181808430438288897558729655569645268472102484804193147633790645778230473817385080460690016173911538012728451572318273029790173196985344491252048250720653217254456085304354420101322341604243512452428457498878191932311473486417733806167301070927447515147014796247342085280639970556122991867421487228218889188681916141523647432212352006875952855020073413112278289678288583327671169490827955498992302659335323788551030684333023247847582468545583456377398071461102944085207108224266674808780414380871650984389861581718857955018808069176630045261425811576560378364685748498526617708207271780989139857488946139362896546522982401578265367468892854468650582140464021077145270320532228425967175672497450524550904234235413515935784723843754560429596609593002954562320329514630034947940446165982320493683953424044337236375635422710583723823163292965736702496360287499951632603907085883194790970117575459348018862671133671786573377108075058201905349140656756962665493920088673789458189769377162206103288368464106473572892157146777533456920179635132977344933805006195922486831057819275328994647839034730303686072611410752268276844996840747816458662071508797385510787458557385184042998460785808309661620358691073497240120996395472903331273188240534047003759689672902236383716505038188811771082589370352024211739969295010572205540433139869314551346322244490801355120993571613984669668738471185091165469052259251087253868593816233675639205223374606133512785866493618956325647968651983888917654907981769902089583848779354144311590103050892782621528184788839466380807623651133455925538654161717806788341589939658860594757096389113813550300988879172666395612478192452118490129049942464445962428576209558080401693967061698017488304382953420706600410391096798479893687877983566303764163004149460706480572263464608805254821780398862480695717199660135180870435248148312026242906556624606765762681921204751646064477554965447268538226493247722741551782687950395436203497555742202945718637417090669646438846090061328045442523940031543558428087378029213739350377574157670828664390025628874624118689399706597928213614568376429452504604210327461579011387230561140525776885587106203720401975625917557878270688248427603351868921789813515314901897128098077237270027533983519781358563525269221007277678218389935944085502777388341840976497159521201326835135531294978751072927748349559118881804617408774062577057323084738725486586492247739841679219134166827119281849380796495903597514069151728368646775038034784423985644197422020468371702632244797289798077239051075643909161664362661760836016133352564044042479186157526778188315478976302659103377839403880907877348588346776122010724257470574019660538422144406595902731172980511801853442408295775885309938514053993475961025526868305543682701126434054344963452734090294471009124248293257626753514461508197921556340535243418715799392791361403625179762608666557852785766897305173872980527864973042157845244583813456034201491195802121101407861044774888505148948043595706005105317324185981165578817376388071580076409478829764915280794769851325506721349553116997753248182831891541734976486010290711683153293835732107930584528009157283255103348134443566982378687096464019297949444774744884609956173725638383503535300638744269263525043222403675778226089144020104981038076083919446185061650336215407466211084854687435559251481406759267540409617555353810701710348776188129166501107416976544582011313775508790176303590506314905485137101176911752547763762326120086463209532185745111822799537425923569605351805648854841672944868413790597640252068394138125329826930555196228174393780053039728182747665294586519542067682042100555085325970255851143804422589527651871907066720302559436457727817235966283517481326747465685978407528963708018453798303237996318898485692471064991050951406780673535160927846285431444667243006738897426736602979124015779823063440000539106881511922491186460459700548368098866808241123963317951646842604742995063235640237219513810194257590630815091191101618650481842713353847769622680780416931297444895251421069353917021710884247139700788436275681770984225257502815533801515349884892697000594595297046009466601333887190254728784146828385856515236101938000643591001634307424921005541201745276219644649484019270020010238907174610301198473048189368497196720885985639144987131852885506263635851277399772116954066947565332331856228926921530633858869167334449072838066731432956535261041661315279827245498942772325890708526610031007769401144407149320771141952783654754398743764088458520308487421981225329588545225534016698351837718173091608503961691350954703174558046320763128327716733352878359180129783914871021312706298149929985555974303569894842467173575581278944178565299709965260559307236692110312249223385400550358355874729663556027630657360105963412996626517877231489498212531892437774728371693967330264247575836523637829469459058060996422593754637625203577065927807028199446170130673765824818861178106789198487179097209875636110488640618196031939340197313632076354260858485984336356179264087952123457157306073055185733165165905274193060534272618853947078896086118572916486114827128467843377348626903269499518494172099383652715970199919149336588919671478425175510135890162021342357304994994219109935342233468935629970095919143961828859868726661406861742285938790659523357485450551359851065228678037370638263238515159570517587131792380939586700305229570577408946141089898072049589389292525002108140331552704739517254854832097264335739412983279485093680203110827991518065435317559482627985130990969849686025907154618335664692111520203914047974805771969167913293085900602531330611866967070683167605919383286501733703770604138150117185805198862450152110029614986841953356298101645046282123130745765186932927661889652139140749213176421232849434120942021129624052284456008230379642558220474599174510724484581903992263118446957452241739641348372439188208637311462870567080845997145286228240087932241235591517235172851917919400151924137973846274263019368135810966784208891504679230940638500952702115301523811475193518841446845344515541330721921547889653132311872680455749658686675926905416210028180192302623698418745059965740352536772861711890553797633104202167767401774905395637137927620320285888480912852957554954781287685594318323778977976092057974884512459580672914270580262182519943202282817116513826834913878296548063597968344343016956293990711662575229276522998240404941383131520936599916544919902185936616279024964981591618697738208933616603110651942165236886653829533700639600328057104525726397296507167370321638186093584373259887669937689547161368839443582424138839083475049985983748164289149435013465286490671641373685692938086037503076944567015703439206805529853533195904322696258245556046213433889848394751830344405269389493480526899077289505779545750253072627314948668369271077616481731892197863529727013646104423530905420203444056437331892364924651573016590765107834675540813610283730284421711372252231855972091699473052447447836901072018556313335241864761700218416025282133598496499494518815520065501587093832314736526687306405446709399446346388349722726839580163010404949794845337172657213007271537859861886894182009720027864459338933116671225915757239316906913537622835164015064985820266283640317424556876813505881136720953816535317020953079134002590763834651875513436407176586191366357084063593777557112020284198561297522251936761919241241300505659335345348076706795834116279653195801486055755690494826701803262824302401219981633631428224408450805176810153286574299916552695695066124006332745282091411314876562488425583981512091504501028455642950153309315892898562515138178054730561082212782646556721010256785712058574703499245418185520842101371920702998189422508106004644996643208104105299828499525313644052642698911378312544653526111414406481541921470891022270320071895350337582700943623563199248789945071408695589068397396624251906170537820391414397825584433629477690510740192898810253147470902080048121451411114758463189242142945364982233555536568438367266334329624625915616808227657966087343499308718292624796409773166722420176174941014561412253014212339325294339498579812355787414599371130926688772365800255365367997370725454645129068791653430445483266229113044215247385411953015316078726870199957477889711201863994538018166498073292114138865695221732468387903012236092554450004834187821811938649600636464343138287063337346618688514888095402962965561679027893854276620930851189425467164022157953027369674149865208743601810108358399976407975796499624552218455068645105506068316161609552658054129144007326773238023808256535980374409291342371742350339679872552272677415634149435871038401324746785368326236802873146272797428261816311524567714443215325187244105354073081126685081899487393620210212186445930553245973766687853843617813877689016340126567621558026881769695144649080720849426397905740158981982174058787490977969683431754543659125566575128367424824480986212172347380372136510844698421580383172420715176771854183092182371308959729367409753221386075137475666829725610590604079138033837372036628298046059273200013613510654692370890741218014988546406534155384380996349714028613049696688097575757748284326942027248206714250674790907005185425029892202436254788231270656855887618288181838401248786808620025352862327872586795267978326657668785635940444510033201754549498385171131661404852851921027823810432222078629807238983159921472522412845484492774016694267515770126195914384319494648859509664424466287956530317501592317105733724443512690156313770137767622340726890225057690605880753212175647853037907245544920948990943211665782560604427782758200889859020276006788146935546489947719107686259091732846951930767017904105337031147778081572651953894253515117305432560610566565121228763581178332087709460624468455125656137300368770188268851278733326762572969660126352441381607052519815005525975693600115454539001897141488119526897169484982973494200733009285238359048688275198573505919461927888950496108884859991857515228827361183599019327613379358555332108666586997371002434712009356375385349221973805149607269047230748600446241607055765184189279822718223008973806184707786616734495537233863516836927071119935710058127911846615078172233251210744492932246039449605107260020466024330431235606647294774677131646407418135816377622135614738683255434231597579259943933205602129502746433940481192517333436603714226868685520010868595656193806301665021556326526618409695381201040705758659519360694212760515875467306232677366701012413089237558713887498918495361297494126058716805337383618078057864672430535676025427768445725835843848898528308770775711617300678198450912067828533217560734582988214600556781570045592029318290957855902889006893253517092747663232176610905120296123917412917626803156988341414331037460200032495306013023863484750646402162579494125971914982626422824316586659558447055472507767314683254186542698028598879621780152039004910186644232864886019144184166215719502935676990050373439951857747840341029771703613433844856054906820559839502420976920796542648063762876589518456132365363035885784669527724219223300380980028265973263733187743215241321448657241702442438384028738346693638183000556487223793012221144821554814449909895577786035057152195693772012513298045669873976797483308574572036820813290640451360099876179895899468393429879723887716874501654764479612076017826363175315257117350152684865070935612495353303051479009348937019631149542819413280858100579865003885994452172143514224669947268186018356198231316819202717527880723879446312672876899333233590528538191997442755131806482361820988975017403081653455074303032722988628212978047826137679966171844895627258049958192626656998294672580732170752545864489181230653010718601386991052874315920855090833377718066454722702478410544998796217133079887401998892290005187001680563556221623104671395734514891886282277690930925380490289760491616127647246251173661281577949140909173485062215286298667863954315591981629825405271985010577957898996050616404441298537579373832559949129403983575188899022839995165385442912686274106457974285386555435022946569868114812080622980311190953141150101155571655745309601714426711289330409429733667679418014245858001089093353359956281389101262097406853197329993910458868432967025418224935095501700644638722928011386149915426076413796137840653022523642083192306477687424038714355627719638958454759584872296577897697901313941014889558412728002557975369176871323274257194358542314874107162421866591532315128417741427850919681437140629359883178212741837912034991432170979489812597498423813177290448718715165560117132844684003658230546462231063703226265281843650299147618113151475340309561628638269133945393369975554348164210979780885508458631623385154257133633538079908877516284903253131380420548653024646145510289500585580054078397220697031628128604970078308220898504687245281221156814448940973167646306231249152357859720791855202169412897099389343005040448657580393001258336170205584500885715683427014041247098515398560292985757923369800430621902449861404020086883898188973901585095531091475770466759161237023472348836976619833763648508697136580646354226068055648245460692946755968699346325655425128295580287603279694108413812264338314276540419697910877390740574969476260917768112027817061335291552929697361188133639678453038731747050325380849917211168954186590686939680520974654155935195168379751847135857012088474456029025830137350041638182167257641706888999731661842800251603667677155477088604674717385900416702438720673261232357805804488538120316547774366754371850198689625051225979955694110780720532171666046857213385511032764701461024470775383980644949234431340654903054599320305542984157606647096055961793145675904903139249576774115605094180407082384043796522729546862995578663894819350749426660394231120503993296188058992068874611201208813112522037011304723257042068717597332394960023774619746871523947209677730014293351567421220207384728571044765709903993740805173081305542782386721271237100039011669647671004623659580560325502384223522571207823357646730521931194546948076301552568816565522329268310302918820931614224042997673755983088446320291375596195220148970478926639214459662421524833253903659457397537940387566830974377125266908439200223910269029737712906293408935937205066022058230383839195491947414259767543636692742280028142796509539785470132512759115133067224618697535119189276898928764627221618015395883376077904250577013244689799714353163565497636211487136585372175097064799756972449727977166926325281915565303530586566285491317158567736840155128860160588665956499959192100280021621803668878519616286041886639644736987749633450253580160726519886815234972753602710786557133395577324990958982169466626738400328525645173809058847694853879145154516059470060450496300013492645665160906770721572627875705549242217277026257151425531897777381087416022533543590609086052146326566251245889072885283735306281356731498385064857138830932629086579005796473999370062381445046426060730073441291750103799765486946967803816242890612480406842854990748173597773913938683640493355924175464851165620795834092436047842519795522096647795198653836125206044076036615674573097471184023142692797890140188200076035407060701010261589919471249470880742857461520841225442663750627507070340613217934100312947211944899988174716542538422873590123824511972613802872189670644380196166216610067084340287280487589933289726981597582513918906732509094582191736995641482877779581390551148615402972787638268781768015133916281904503407651436773088737820276692843537083100080836745773705955352549465136387126295520303666982149554874628438174042230714259020082985214043693396148198687295100423647717589532556329281029312517410701724483287306622087564163487962293275386679443055375826496296218965570904734131865894280665560400512834983843161986863645055437689597617180664837786909373217890271959651876163964777973764165948801459683638545368845204190430185472584353556057329112268399093242484501775067145407419445827685732162040406100567616384752705124299401747956367384586040993813140264187376711695425942022852206084077809279691687249767367505450653730550321285940544591704439302604870279225005853807505188781862479386274955789288176854945748002625673635333670266469604979564699066023273418476700694491217685770024734259478503354875619334023015370316965932639257697489471273562449275745603572503863516283350895619343011523361817943270002802195655321765810158214240115411244155687170801393936963571215718498578524529314249667866960332276157824376869417570717674140128952442701067597165055371437456669878730739992227301349819636869200004747982301384637318166421659445354481835590469557934458432552732892224268942648957990278677293491007309709057486441092783988320335214169926154480766557247691358724833513150332938026198908504898500737176447798333177174517480237733910480266983319557018682553612189615822676743007520478279640497799934998715366772582220632653954350062209121219373619568207863817216084433697070543457833361619087577377673280112448528666295750806215975676733209150540362914007213296658805249332320017754350070224909409814062959268978773362475080721084956844054253289929430277737119434813969358777633316881246803738512149231010361022615173484531713155089689306503352477724411582752483456417793305071968179807342543194170736373880406369370173812012413921959916490439125234850407886855705333232575573760580930173897040882442626587708229588098961510932120771116055363742618907106581179805762143957885671303128659501783302385040389118265343894692269432915812143606678542552983483345260168271030067087060238975868214838478263704894303696709264882495674175587661359519577113595825926430567482133494522729765546799942566566763401754430070595111171589653794684633487589323544507619033070739988827428760696554424946522179140669935054166390802114412206436641427099136200064831293106802919508663684511298304865065041995348644213289433595668352840205290514229815261178931053916389365855348646736870551641211893259975698044844893093541579079201916000799365192179904217532272488439394113743164622013053313472814213991032216269446844989708020920987653010416572983820294477870537616647313971668064154656554838844964389167654376894213806547052264322246465995113140233408052795775272741186222785784059165253269552002788402274365720681164609610318581173665152175716868218047863723904412028423164197148251534393776806685689053146404971029058829492745914421136541630259818429069817103020345588157583596952076951897460241851426673586031923079762549522008636608297711298113650586250630979979215595444186821852682827875109363783128252209714616049451217869388301380814658228561667742890080600274614097318599798170260871936305382443552222228334868977342110877676666939266922217535075417607086123590399082935210479141960404772855487802997808530708788362841229904859454196061409905038598463855096829888702042729589341802394695160771223169815186914871703843601271110607363629772982303952992422662120529174767546113383271115365665418859607769514212057432763561955167656763725936526187429797008908302786947581202489195439283648561789604424358127728067476653761671115379332204353888215973210554993924204706015197443772609509798863524311009453813857366055743896709401132046011318939946774072709249922572630106595193567032196717765697426701109688220801555195924869428777420492741698082663968717994684262296991247652663805098952992581305681832582602822006451401751810416653628056598572329709012274083607743567875167359511171262968517743531188375605141380416713434478735183741158117196610570653975428604263218721114407561132578344368932630943363186363754658886050360518425148363560598997292311504490895401668317756011942532454250167345128020600709278569398255277442405686433023732759406269493032309159139504450022151039471531535264827782493526026000840954003531752680826847499479614360412714771408773139841296416766360112125201053410213438755568855679151057113075135914844143718602047882075511165926012909947517361704294310980084783530744212628249757070982242335935715606317922963136437239899876329624697024506079038780777801903448631738114305698849195931680206674394708778911789486691230539241892398432741896736874437689862096334972312682165155967658796593606283255138187288005617769154598858050490042884978735365997548967602875908041750207443983108387096646140661332310240791932569968523023530702545354935953154556249175958314285711345877909011626203394434172968438324936804368181212937716262294955654148001068923833703315424137651357082614778885213767677998478464550141910778351018953226142661186592683412106033009432885226712234183753068223474704467993633664070959970579493498198609982612224062535270857147917926649711125392129081723040346918506616863284082008358691872526106892031407321017563706151478478700069526699954555362429921747059404210882027499056033912659641252405084575209354929654870568096186670823158250449384527258600188904570531271691168407641023274464915170623869004265239676471571079925068000306848242100874881519491171705002670438278317917713550272294543567237072267458967076581515126680198191672472172456884545541888368450904616736236109839645682898715816453056740817649495857641384755548193323977265772271893147757664240154788518252335350950669079200922331067064810100681852510582322793431445982217435796325304185542742136070232231177143035173386865712504344076019939137457233411913695233526747620255819000768047116827619724024032773098472156560647820076652655527188222296852494349577054326659823993899481269072915253027763260394418658497181415826107194066377724787361627697336977941728246218195148110663958558588613645525256441844149226543568203128344444602957652801674424628381930527182093603418571581693632142441056235686028538323647467275327083277728734456542792205859204629478993042821909934225418244441492906672844633786976650707509461396106712630440456846658969641412861329005672904941436475454761112943788072505878994960374356237578688779133075376373762196278397217515596598542040466177951894566815029935917268466919595558083510723129995181457372526432199121161666096612708274189456935566023842649085786888877780025629193977144718480618612083124502267976531316465709467430993030326989362486591110903129880038141516074963167641870287063832436115903838583018561174400558768694264332450020680869124900331702612585432123037291779596366060757791828956870018197249365049252372866646545779669531868049145367773767051610717469835232963248399014810093426475861360857885856330371152092360235362996350837824722191257144565825019263833925599099640267866258401119497741429427258236626794641216084202556990323682548260074876086808498735641131616304085456035943302769623495869899257112091601114950384536426145078518400731042306675469032925099478119526932482326806929479885140808273045831907846663690960870212107451536535066836884608304488487987924698203185045001839980765027900617374117876658368316642493853861645890893616305514793229348252747251581560685121458076485737407650908739347739649328578774629300669729859788069422972871804461502755003771681630210709893282691934297880496303280366546656532846430054268429950134588248209431270730842545556749432473132647075909670641669819804939603572418090132402257686719162841892774606101401127735763459888320404632082695480411340348135592185685012215085999485663051047089142261021849931201956215236695087938006517827675348328528100455436774102049282774446518272656112785817216451849958011518669081052533988229158854694799337368256183069707950931812702406238905907991092406467290686583037324668722907989505904682887020801100872814625406470883751681725100361394178835264362013047235844646191482023639981331892818544669239064881197179894119470059245380385908249530241288351052507985204090695341606158159354398330621580873098741216109609747274950783520997030583753330257443821127619409992968979430610754496479900017234485318228576180839305487944962528307619857933972444983122933230115135241302480706643794986135646410403343334025043787283479636845273220079822688661510776915607925151640671130292325291486907950822676972347454298311931097984835457245836383231620383789184634762005550830088643799732687552529009564717247655505208421457098051370800704898194836993223709238130752284729828966394508617200431889575131027929524090477207317818700012913986894810461684169252093678032257436530379733045778083143480630427985634729976052213247503181243238730825608047398376874210221425931209999925877109343637662599671419996391430001455993913712549542466858374985268186501092025765362906499108121086795383509015935358047052418857953509142891113414812632878435344412214644002457488444488105754268107366760996081455419241913935138562468762938142613524047724099754633082365669926681542414471093247852134170478530199551649317854558628396875996197154299514978994177005285550655368352566331952793973106047456901406476735602651808425730484325730404389821816282299245144436489046686540416609685806786465194626386120708069396924563861139665542345064243457357236955081483571750726790045715274211274900978132930811861857651077797587206629447461528463541393770315192159053379020527653178638161797118957662376208206796342451687424360010618043954771758223236163738318761868795690889858675285423955239385875710997636433246617624159974434630288516305624875004676418939589238061725510770760148498522125568706955269461463875274507439072060837689729743072433889645345554288218380572917042044137676429476568940228386338657548485886590534787189508161252322068090510909868947125264960591509470571173051474002991547751053364096798148318048964915306848699632655302030242898817588211496404364335300378455405158906286708483050389767487031277319213337069315516575063076790743794510223719820213313005087041104590575255424678606833632084063176954778759814986254268723732370355685654368206555358567231967146354872355730153133154531471099470518752810625189463931867038136373597693230575664173425469232552131966105279111090505927360010232322661976394008449566215228711025259383958549376520929113203222220638894679769122138649216076895655227550517142040605055447614995855156910642054032200236045413488694087573179508275509674653427868565965909278366668867155598048413699456136437373832915054604779145174593915479627349387868489944759367210177396994193124017956959214161153006184818800226268791011787405198618240346908767917533868528051345786374391075837615141237639683968413595243587797243664675295416319168922094571366907710581502092424801924850865026935376757006658942080930401006111630214466462707819752208226110902876543504840110331337775466559218348354829281385305380209410614589002950514757019450532632550419271708532890080703468103861526239434011177198813118523165987004775872295555658525797508177426297094590178123114684570345773755032331782503932667745135569167348118312465545740661126314767558477297717819881343838092638717683877715833910838511341792593495669985568194824267522081227107063664027780228583772413196741230973803844359202122155923991287033166336878490793475873926306885027421063492875231136885527025584740551001319752473167674511480417143872299983321983444240160225418110051621354500492779799134661658796560215100567780185248477872999651897116876769656270074924883579947891273957064789792496584029569467285626686646545591246282207009062039579311256317911143269530737956331802752582624213833299924176129097136266801641751933029757847305730718094943049616363971746007599333688311721761571326337582475010515513225679400623837778139113874614480612675321476024944702072004376094908773676421550389335667538954876422405575037592426868450153885360243441011381983805409638486120030688860798637620046249804739789988822089127191866167499930226175923246838307508943690381587529271094841533674720860786964805283811114602598481140494440814197677423214652675317851859446136683649487186346569394185800187416429557164548101857968020005510537152210628871924380020879184055180035632633114648669950592325377400587324631029804295717739553662224870616043160838150332066827497045662351078895829356920617305607228524240925500764680554222855018579527819354966920776356004325552357426720665191466286205692365887691465811086775399752014933768720286727779563906446724411328833036546999457857162531412418930022707375916465917425395808831372957347546074686830475995089325983065205611380590367196583595214800498787712839291238471168556725181070565315368182404919575260859925822720374329072473438638245472491986514268208671982742813123266643774968467130484120076644870079064703280613408546823275143920835047357890506992397980840464164757442286284426935722341321349950255433492443677760912218599283838864899728423498683368682063806285857970022327573827247908155693011877534136051221925861567408825164317020216485808726333257776321003294884814209067993893617915853161625330912526605207935888583507012041384295449902278402713510421412441255436007597003877478417888264372096690921726482422710859983942455893749548906974501684987446283608500665817604048084669429213203446679294968282320518219625760860545168233936616594434515623967443510718559980301625939780574338069850106261154528212942661538888825490680556909323262692214319745404166567175533352073843521416540869661274224012127812188891178683891641580769095113772543673871653069357634059543253867941985274122050632061454439044975791087745338333385131201827159696000783193709755560649066191166871582904244086741549692271630894230362749360975141369556036285676339092669321305139147619215729077874018466491422887785254687679155264696407502245990660671085342165586637851179648014010606614335352649894944813580918582240698186175262284467975799670707477898529357729005285431158268649625639027078527894887899369493533563787618254472606173899762538475431915956973294201833799137400845945212403322352267655356517123868232273051991860675120206348536591228302821316927569725595190290082092450076270940921951848467670768595268255050658428175376108200477027943780676282418602303684118260428045946480046468094969411496856549016955583792486461683027603879379114251460970504227580188664357416685221814504301214454651304723460446313891142125388219974736914076302226171836394534935553114377820213624664466049474233073080236674101929819604014450937834469037993434642256468970187282193595319907210550510519850289325443124330789299244656265599507140066924537679253046361644719639702230687173255835030234674213916171232170795963064935316838089443137172693112537146440624777891429260649557699980898694909335717447926432885684794169233483755540469845426513743030528971299764372310414387353039148521858917245194305582221624316566477618274970873514026570710339584985123508187423655996939588913772912151492138804179195775184166790185208921214216451112294982200066190340712119966372012279657136768661217007361198009402188800194250182797394687071576914232706465702781572082249156350328611085519037839799532615467829953022639450731361534468809940226750679465198867639561058274765977480847914612351427339145195402611873879796910421211618405400672515924823348613807672995798493012661713159774129527279672234222489379648921821184897256664698985486794487117833949398547163810065429622717546235786465607450061935295955233976173261778330360896016720290758591150035477497167666191518496942296372527531148499162957287294078282478126164269104894508116585519594740430401179314312588309133112819398810739954698655996633230687317361001199000962476531097731838711765247224112601325400551190964908389804787672779071908431493665494078211213551688587137060672899314165728223479375222804727824177326558986916812141237200062547567985667150017218167757339850437949085384593384906715420622228354556911995344363520264732877678510320910605840068622646010737785405210424658998525473338907129832870413143939916643801488866683586046151000440181832727911446434823027839406363161759901410517795409322910105172621106236100892626030767957633397955564969835208570296270970707433075985942403677958536211781088213609788805675924363758185821543122071213850697933609561177986521949936327236598175559116828882793966839288697763206216314907273839217419992927529890351052500852202518129615240888244886121950362193691694808636234983841022203521955133948526901287392174646370348411055620338282143165957455089619449559841516108935214121226952395785715548680747474590378454598013310918540607770242936290547757865655888409284647108097081100860142687020806630921215370931510617942896844694012228400099605627649234024042386065523865200254228052413247368576496482165298566578306738317686841208442514650296888791134063683198332089954971499661711346472299271211345661291835627625348619112845333029942390146772459538009943456417346369354008204850042790526787837116209275452421994328788798376545452806324810440381077817139178923735300689114508947662359935252584826111227358191855402838288765794312804623461703064792940320017827549281211389347130351246004096900330755558709405205053525416995395844819627522374798564184048629354322433541504217549719687654069432758260813869633158944603333243699521370510367077250697706853342305074867222208029286742694072998152240926383089833372319364071448634509758119852871362488474676101573021631552154135236943595080514035704817693453824636535464554146815582736707928668888597202231312472665456324525428951965403220069097021914687127652803357523703682013579691077533651795831455293027329935958291668847623208536361878190633347626929200348457018014250288688926048334888861630256261443387725917719324872218999056786413908540000621354402248449393557825785335468181565146718331660767696267369938261903275209741728633382499572322239700416259442558427958094159641508013946426108245231436246027962794362040185784264792945416820085648890070897756022988679802348381104756726077933973895313013452690514511288978320567532905325589209232831965449676742537829953248859503533539665449060028058433151359735007667025546060042755265540287089577008025708236803943708036161353700227994317306896355428639096071125670821243777369779219267835662658713903178448957730796332979612948164742507983699836342993413125970042838191690271073042194635271255812906241640351967116157066964087055955651665120495432918573545099071487346135575889540810947296839921042876398350607832707102937837069705184465736013655022719408633744479359180725248082602014480663088600532619037711033230748425508250949281631195567619572225358547610394674531551539164764517945000763825110282088629437395558480137467972842280636543390270377679487732130485490705004333706317366817430374173264628580963951033741518003140031985697191522633259052803004568392147429483291250802236778787979819592812521138380009734993693209965694908656290158380223773932332975670168896973261030981334141325452656819890708686014550164839204616819776459699881529859423847545897372779544408540801842692587132401471712488226173137675370566039268409463049060118587192567328221798033785372344790532428573576899721646015351189699466381232962503270518656439032500597951812053563096484218989367741659730414910194695895683440098357668361187368820493861671702432408365988167804503167257609696246428707029279792677437437269769202881811039204116076658827155223444102952756786884597532185039570181441237951264652133069839827275690339009525948184276246608346128231327024079469761652898409673932864807859154509609739429564549428259396301209400583609104930165003372524352113449392925421593866117122422957283853705322751377930022669079997084080357116554353991349219890731948550867735658656624212014808683142197431044342836301391527496658034745446994131432318956646966793781455218542583522183647700342516609197642046510538890913835420676486094176194442157165177561056924958605956068940061380679616612346038732518031314906648357027069261789893245930723683085284753565918282441153605740613788284690755335447380836126288290593401959195823652108147948967310013528936215888518072484013532162406244835418405716780015878239922089268503860785477039642292031522514559730768408772455785368167992918085667429732092679824816515534759215196442684034043313062298601743345287079361582884925821081248024629578374267354568524918850022839355044614738025612274652106507601190224698301965707284713532821069973676324148005733147498383976064587274638223666814035241026669263829103133419606039357487295355644242614477649910773431570200256653199885314938611469073972203545897849765823376774375876863622777932625048888572771324165902107650809916983756046816494785007336336221287038893252259972261415731434401882081209613051924759280145725796672130903439848810784807403692066993497605281303303106895444304639490351744147318100261313406617957166702802330789883598576674825970152516071935095818924876314742712522618525988171929600266984392841397249056332754350861996492350288202536498820146492624163849446750161865277094039742647455399754375910104495645029433965165512294090387221027477880049708414910613362774307744500610996898260663631510691053216114436023061420407206269206605250625158297879835809434827056832693005486594963933533320467900798649112506376207591608671970737811440687241821439635570240312281692222241244111464832034292960850087772507481296887825307946083039207985398998593777510889603642122238647145463529723438765916291836235608453657062217055936893253320076153699996265825673981841409388022598500108517594504040950745058728656305061864715117705889808905929452373128909941959934048147260283198299269213105100203191290226470099135766351963366873486552830901213470654899132577740367280472036875534518994664020366874982537261532211438395906645158451037556340274863900679876697787758003292452000061123947778004510616891211314790231996527802253575795560868022032417313359369617657294391796199087607279780695197896034425725354518096109154245558065094725083565430454113974664900326045670953050846391262450372628625202498436587950716346610379962953160379205215614838358809635257476083393524208913149069574188882570998065320147551506792006725135167414844433751355631957895504962376012017507877419061695572244196163743870764332364718739078511222244526555931551164886178083774803933190276878582141016645780833770309834758614256710032675680480847415064068156449397533774281626947772512545743663176174207258436404773641120220249414736125572934526817654646665149264288366616143449115134101834895858046708624872256808469917324181947510830396805374396384522868514884496246971539600085351524115871019825790473035476631409673868684480942027028734533350256430016968931601540531763112738373529585830043813652423420829969442435655977649191892719500019075902105807266455117658042005738262211029172173773191502687791426090282367134750903599823518076623048940954935348724763921879556482000478453403103473169016491178141850796035362958135702894317578490348055148726065604961455116851908402435622560862071130000985911029792620984856705149439453227081658167568335671305906538432052075288021788753964045880253117791762390058343532425521373642864110623758637919767530619472930345466168645251393907252541797226313156647406145776629679363922372857184016326508745663935571930638183938526292478847784087014616015394537907236785902953860177990827106226237009810505471902186740652912673506813689353989236513575428550965470850075003008323913900905273791605067691940833234597965879980630070687132579737057459707542425925888738480478163366546996688154035019832695046915245203252807821514477045865666828639770000230761606864134813979675641361539411676886212663787641780450197995692875799471296639588271112006665182474726268061171511969820058255021398615568078933063563483302057076572638439790759359236524507080227563875977651223435477302849319362620107674809706454120725429929704066940702367023790925667603201485954602664171204437144347671560095472431800201148659399299014441689316028569953517241853279602400450339576039329494437446287821288759751667929906189647959932356130414913527852242468755572654810369793694954040328370265007510648626562508426306354587827939933897481870283998144285867787395705581252977714442152356099970738579386543642758501971375405077425008724678062373853949605526938956993485440963102616806465535651723442176219238600120343203504331422630098689478480313064158489278723849724574526247445186626301991326773277001982349878568099019836142303523189793063386320044457769394235875681591517383308673565365148964457443824805067155017321302589896397659068109901383075392052781227346923762658856873536255012308792610809828010111281673409384399547983247982600323665669461279930053630570923919693339793460851762005157663206995240600255377326572227808657862370584405040270928682352307267550126986738118909700338063822665962730343567144641759478702465859572893136219881923069401959201378917205716473589849012126626045246601780258768010025426516372579673664005359963159130533382134017926825218544653059776270010815383005917285652962440966828080447781002040365167252170812126379865522366474611660319626074862802888232620307754502688523611826614129622784241536388641509637657776868218561941105787054690675188056911283049903604025759683178711737401060584012709018376677881191125642392722244555292494882273939337740136638088539755279622282127876785989181001695533749051109898353268062644721386457053093420111679273420315764587477830474448180109898486493366941337862604934037261131946241772138559822522673739606925260350564088962779873346037790570197382580126641277653228002567317275715316522921122491766766948267871791236310555817147480646755485400204718938546872325112008594158805433461532205999505297126180634295653532384335453758304217898955367507054751734795217320770274342965830975974683683316066118784398995878194706616510939580842047508938128930662566609533456018962606553671140958060149531490053905823744980368205738396379427648766115413678376900981579699331702793077505186239223962394645534432555375214885910211369515783499316468969866874496947104499312454867458374918105428840622076755747219932254006899416204539063115185043220716857213610075701198220274437884681596772187140207456466264009942183731494818510044039983959301832677640104916633654368908322990509222179867547029566725363183750027976683322665796094206677925039987650477726117729450441018291048161794443606716145596268514477960174651622662641207424063250441946908455800869442796688294819277987324577780978293557214315666013317330913882872736122029730669589958313497447642292977529201758288161822873421939698051818765046639030305228079342137097147402360484442169727584277078027237589240586499866339011702723970602775442756448881512959555090275761850063267460044697726291624983866904453159657478491107843946610837611092837826590181366749302534412284076941065448560137345285575637794544925044769667721965286601637284584165986130596748971866963605113527295076306401440490801311512158415364740012171366290292360559050260194734330453626486600589005649786530948031966382252916629544691442959184559422717834996481714282210541908212698128342503757848097720028770837577607053313226756534707019094302599066124028638067232948249124122110023428266172321477470806098140392966942692535596936134375368168862239168705719768349835084936647333704603625588323846331351670975124046892343048903833200292621487831009744606002360536546309031684199792565580059252700421782346397034339616303076474291853776686874334585351224497224685574035534377149762893967842881079777224319556279791209338903885665656369187480950996076970565950864206212704593602021730303209758580836170531779338228058318645170839069828732333864243865552851433897500292869638577108174766755684790081777718987940089578381043870451466834565183440174446043809510763842360294465700126105283354867875929606752007546199036791098124974135069725734364479252564714308741684813724892303924758043014275310709005167877504633648686117210433625883480939803342294574073580180600463334486875204709588736201043896187284136004988462366825410164840233190656572210499394581525729268189951343557967498558267100033074298906422981586882109422650527768821614365415325342338480183598782496723260410307093729929188054440460820639336145422771250765889499830174355356436148435017588801362540275535489454980272649843421071842800716099791174029663700436523344391492866116361512503140939174917044004218859177127361068238517094407269030216059469728211150526286925086235153241269221689933446512930554676797405552127529548581798885213972799332217808514842242046192695373225371363536908496793115292486557910395414837129416315418980506473661156535135707721232119171879266227409312771613130022485792741860374574788569632284686903467207357579861015133494370455672918495609685538403871750070531443503691975278246731397148875621093443044362962135361608133108973089296866202633133830188851878175617223635433232524198861805762037085411997195624462235697986575046016085875678268162686630231604458502874928051792075627252029853935721170403763846272235954693443092565977221842525870595067100355793531896758599040307700759293630988503526156158910022493888193085466439640056834233772418610822775369113725488489007486305689582163624999430625891811725073535305153163739129243829696102532619323083549121058159588337740522674999470249714283576610066408876151458590682341677125440703423459498331887260967408640755377361675193696492604134932371717703743224006530894179141921433987830435046299248808289141196047961519338512820596781810057126186649256917478996093397118242604375106481649464532036097277138284277479601330630025226589252126998898091246006194576588720518659435005160270766495600716786075060348489681287933844455626514849715403731266394603832583723071590923233962730550591131038362989446032566839396734639242376641603373451319508876407211807847791281691905988384855367821541860190401107918839459533894135443024278265076139852046099545507374075144725795721889115449987285363968189161113659363330816992549634438589468168883986522665990667979113975446310694107009734188421968667913077775952468354839984204703096435508738104665664112195489616031115994365714136037395670444432304393398296983476661334649943395714081686840966716285034235591319293466191263619922292151799804435952406067027387119714718109408394538781081409610118169775843168285335224144427218525094941285970372371400393226046436296050993446537622129662950784614691546670537009293168341882738044561766895251317824441964510273216604734855040540152914378210563603289274326351641412515768983872881669521622910985015494700346069754078194077608515766714342776950058785711975364848757358099489390551264781334875200955945990727002315687363826390020565357173141415720589921737971651226496728757722451031037883948497524434553905215414951822352247919849620434189800931544078054472378344098078170751753440598327590586821848578341097629213793328750748083547241724068116805090617660467431162054814181062472300900691268481708047061921575437045962835795924160900133094112673920390362462188725433223976309023174464777253764771824806131273641516462643462551087428736159148485870832917497886093331058262179855124662361747211331812748670724301094551834035039412844123363861794787948906049169790113188334233340129847207815805139122260369559871646762956773726524672426212665208189453573756883614635166064284162560947970334300120491579164036704928691918500788919917097714831315498316636013126461138260839950678489298197027734672887515331672983687159828884201304817965237255486214549979379728312954699719812244499963190056926059269222065149340656039033778056039134764530544942783661011082827322446074075807673853851404928927485695482889112212601706919702260474503933817332850930290670582744838683637569145975388648001645572795596933050281569756880169859660230820456706758765723364028123738284869579440189510633455101211382061329006488844965552254661184861665407257460636156923107434864717511086539445967455304420280218464401357101450668038435137967150544206701569419167389880628879735000654342708388253257536551967561055598830420443438840150410844654821083361622651607639966183840844284699552163221790334374700981284213553494639295837362769964388716855219481471279240080610392758407678556301799638121702120819691839116677701595136050640890441297883788290472051253577931610007240298154311913653666201322351843259525987759081525549191358870941630153207233152376334389151525280447263203512856965892668271396641968298069587169200709558877287211396084038454704976802712918757951202737248053546926268377949398890286128823962445047997836306904961580066132015102649887265646308158743953711215297037194594034672475648856394182028508971432369049173596026315895119724722598861189654831925779783552167168120995033566874976646959624407231024065361072901547511983948684314546756862213277396759917583434285391711459152652442239372794202118128086866281935612124390398546694936334019287119714171746152586554758278857657468735014621330128607710161691722714517426864233943145842045774857324098320142158989487478520671804647322249523536912598968815542086105671580148802406208239202734264877930927087557196202697775212087816270113701661921370900680953214674505438731338446995014826614978110416120854632098462324276640431238193592062890915897466583081677243125417642265137512212811445569320596144722552745830303043128661309129681787415352520827930328077215175425904656805764209795044610078608995076942651437665074299268468068634177299973754516657134420895684428362298788975658954287167216367093406801868248217316143074250140011916402498701254439430122753061115498348744067884726848037089909676762928821804729993824538725916428005079217756121318267682174911809182276839003540099612064066907909473572952064016195899316610108943293600658446674904698559009758807178991237482257127648734697535909912648608803474800264415610690914684630525659791746661478958476784297624327835593358254432149659836732110415881263241412046156391982463676996978668019414559353991460920565524110426503902835050449129259738701207438460671505845296157712971581301104619037768330693795528252442596103201697395962325721924206249944919082074377109814346694382418884244096140469408442742544405917071287943042379805304012272860080068027338182650843752889345305323225000104682687746500771908789482744369053600176803076878056518928163850289811496081500383190845430757203664389759903968307760430805340451043076135893233638628161904613805733332095155569109226064889501570090638170602578362101767197432018098111549641050602045528567401325311845562462097306211854528693915031418753876627924894538792372712914193584908458939863374981168032141892805068801594277633291896733380285715171840694354921120608089552345406945534570654707443262736708129899248476517832041522024158349415473621452818090873301625436082106434322129478141437883288003520531949281795658353336012710245273741764749344707227674553903340735552891571797115769835857591740195165190380192992855992767358779397074744206296383664698766165893293922055375258251512058718759577249525578148308570479461546011011461090840300911048205692438241856775473270167662765002540897539863796915182613369342620741239078317120867938784205719258488541841631700677153991731385433850352005060154744442162391664321048924791767364330468347792635674758290886360546972449783800930852425893803749703257096890929816468223601224366744256687174670585135050600376824326580687608326761123719676938047822990069507801198057558919257097186329854599234527506618069665249875377272398934217574940336192506574839892497073149545520123047328038061290989344752048753229206061898905111966579185585930762798393862992687837978207209391185266647408464780097205334800273208480457304557599286536767038938996224156752087603064419669836769242267907365001759105470450091020911712636494615552775600020452696081104439683535636057114570369842144455791407311536151453826555555657607360048360743351993019189398824864829308198861392219856926413168920179872351864492990714405437679383951499820322672312355267579239399019991937751458515786019690667158695507170048441996393468338635514069009526244840154736457615019796860217157220094528240676209205864885795706225882649327910157555894713684611373398875930251398799479310966500348639578985885747927685813339983687306103687149720053752420170779665301994599870958757965847810296983629261759302832475946092771552023778266096234564783216741405792142698611847853925370752495219319366267860738865100611370887830051638155902451812291044113871860720825012497034987177433469659878934448147798069542575912303245090051323394794284272646737207534233360410767421339078706716876822911857538172281686098708382502687098098864275800974431543636289907183195446481053025384633933301731295151828281000767632809641510354978284920395890626213783671806831578410982159091285118868949234665300575536014336556611683571355617152103231471035859364914247650979323112660941060240880419758543025839808415289780364484858767790731485997432764185677921836265392834967357654287674597600554609496320240670842895588529243276837092026480618216172270497979639911058345615525599019932801333713737594256348973882518857981515034168539912557066735438415869829308396090632528920457091338463024504296146720035143042822415659596512327373858681670511159962098231647231988345874171728832119412075317969218441109873702014516358808273838323489640484946622416302043254784928844191360356577345632774544737946168466030218971448851775483052066690696817232938618028655037698023027124439257409910159794619037919752122319518475015102350558426452904665325256781160077837075387474268025972900992402291996783427042104877803899968103427776345446415411451285396502294331202161118180538189178229232811533503720650604075277405629585651391490297223987756364585998109012372270229320234694407654981799582215256511159397779793002713901236309729635096340479139057723487840886313763731022564349810678551434572576472905926276684485974095659583985133092972651801552883032153058744479228379537170363338461054170136887112092482165614334983230423436500095914093770574469340312323523619174455000474170776275242674792773518414350446396693268458154958511049646737574501935446565649627618043274175738823509654835902027475884070240361648182686568357808145925603651959263234798985084980804151069522119531496338941503986579866940927520755358240112560309201253410340838276612055158640497723552893632266244595763891422673593240524200775504919094446770198181127193495726838684175695766799216429507521191974826652387279433532819776999938855277628178631351479757129079692080655260207421233165453188767250941004691780727460838705670442294996212426485449293474600670614063034528318921941475415537406092019185976714750357692154545184889088333521065844781490983245762867139752887852249962957799005887524834939931035778081311996546019892998791901423104225209125013323768869644626359878277445088425181152905687563712721641112755455610318612831981081291024919373122189215323020761438346836727943101374403034959434310660296490620112429571865805941064665732545458116971342113262509984136710219262945610066191349427711679234112393149512176262892987048318684162729069418411049416710478761507041405312243679451348073656548358831845664083851089697623625991214358256861588746801599363521151409918645133671824097176188282024541917347230302158647982766391469710171409408660464466777708874727633229470498727908056782628094880316489003984270151623846875024501593296246262409125570719763783358840751125814187570808503173225913205725816132684516883131656950672655552108231936037199495679671522979872872995889264637892964744324183948400547165129631077622671591814975265245483324787792162994309573192572423955636074760551281499226931179065726817656690581357567668223241710465261910493247410439611046051475410155912236043049830952400850340944821636844753813921125894243677870224994285273188774780048907118917686581268814309833118339697838939738430175148125082887272226160136918051337972694079166212986664840416837393473038183417607322884986094085624339318318604455749830012287760117988960292298543391020520064855641614374607787659051979760743710589669449711523383962461863908395753274152692142925073136923563319822565530377033879961189878182732043770069126219427217630146515150721120169887613447243216616470713572619363681564056120906448388585783689761574480607367385344028774814154322687557832118260244874768937380679365872175256524892942571269433509201505040244883024584148994503087146663871054841711813728308193730455434212434480220911910923723358824387565179916453479633503818460714220542272171620132478856302993175081185670606476621864261557604711986686096026446762851110858063654990607999106017979890162923132070682017478071207938387420188826777293061653746779888837842498812644457100132143338351200260287942493747332378606854661736248244983782462128296893724089112623227285134158778035704196880334626095432061123971383028761269807152690294298728592766152471391885058522170542865892796775835551216784906785761131855745651896475106339143604648099676737388631414385668720535006046882675622418142260871806465010721969631323743509870570965765984651569475015001022582072759387640160779236199013770906046146750473760548274045539963733367059684621467989813912184746686314183756661777458584476860457020375996137248628131970591289763356286368990148954782427168021408292597421147511482285532581201256638836979479342974205775523611626761606871609757072369442714927169563653937498410673544862546219888763116203315744304756798818935642786951737724689854301198509167806165285157675689382142047990437930452272863545183861004219094806585985799782079615538760698087493674713098124250958273209868933168372536257930997250763044987165755814819337864258197749084652418534134189456938123249413856983388258151072196928566558683974823050149053049967562065028412882422098310967850648131230931419391845709803783878771572052179188460683522582684140705193579712115838863536477273653261289264166902834172533489915390895965294207214069879237917239609938762809470560407161233247677668839020857229176475451282587008148396416448343824622551496535253919112651754825384950442573126990569084159373502024772595576697546771814690479784547215205437291419174303033186226563056247380831799564040642223575477783229653990942893368957090238492940313552688711920082876751622404887509290089902872544871695142856205308106640440550192297925057396069183548110278351469513350524453152397846504017638100614167378659117965222285690431151378081722117620350253174730464937369135733698366424643970367667240804672747898126741410628535079779912637856120238886473942743813197935023879840226516294798165681538800742448984872504479417113704330058276791987143450044287010146426080743284892511137316100074446534585567597501984493207041347309261637985039851819317368463481355915913294893946888620597857068912708357620930932359464624729060481711459118361412468936091656034411997648497221570226264802099891506688529206352205969625152532486123481466207445871054126641973928979120765362667095012241129634828251611518559559795735085307493056939196380905207366499750917986727597013416865379767994380994744500010232524160134299900596727380776608082477109083035527508745827433066776832708598564747532301865613666187067126305325368582766709672373579216086561186515035557061753357891526653622498161343747544099347265752824797608281670648468203471958497457931766472192507020721322047074453166241505607888601609026889813907212454933494390753440331891579096076772919246435877539395467152362162168537309171550739703604218077985839330674739896144107270072511681456619417488270980209777133981579641624693739922630508325994445964734633208080763967517802195774740642251001350361282387906057631247854332781752647920731984772790835203048167124032645067991635138226724433710036740892974060366802596834447887110646843460459721134053950289049675785359226279724770088401684645781502190952178204992517645470770258341602307800894598297134244498190545583545644530286701079848538871605724875499260992557171185018350767700875773116158451202413768378393806513451791136796999160031748474104981335470419265249264675187209235535313136870495249142386853191584655477754824607640291183887919077223368176457168946645643465679517298029284608894724227158863532829603620454587100740632824039263678821370290949424082720214927848086936629619736083515432368500578211240891419656552315140862610808976793254262976862107609265772614550045588254879952866427940119657925244095645872234040755966691287152503949560709473907223226962687657529520067445870429113257832481723179369230245707098977287617691382942454341013299453727282851026612928026153405861185061207340974014689261444558365914752951271304041507491142670500864900044975115842216041456549894461785754874920307215481477550965725936102003277982372065292263949173692759517559189120475586860456538005546290422807943649145427551904604747116320204942112748159505042816055949138126818791572656027417015310375736022956412699048785757581740771979144980221412464617240404133575462240268680865090784241213564683344880981071456281185059730294430540991590947947356153665835824890954171332368950775219585905536530648069867475886407945230433597269088156811294232216457555118078487720219709588322914414773887866127900460500383481030742077795741106513393033402757629606545192120954090583710850867839311875841349868066749623861910216129858257097752920592569098827682829009640108022916636304488932973109403066124251515132903151788736533401729522171007587264873266312569651310036136998129184035191603792089422921822059502655998850029619484702970641583153074725001673006717861552092799740422161493238929661192561369029761206336265897243556475631244166128853877841602843144768142408669095106509510984022354194372406918883089584926705315153684794673743577294307550274130868201798745619480925968514331239617719787245646156207957997430714933998176074867642540092056901935659341802768689031824154466855703490936460560255195577509451700390684156050549204466440627131565316427188447164624763704114309413763684857472997304157475899404324970707680539421784597801756563041530666356056275894777146643990283396121432071473692077532680552669433125554936599903859842060786348118085761016498345945951834756179800103191946945671056910857969320618901301600865098462904559713938398189271301543787104959089802194100881090151645845380915424453998635541858634779559091237298965367918902536555782857902946690481922541954685579737969125157385722113212394851607404990756645645619497446201075199920571097723140448674140066407369697464470975881006668401009753950128916179002976475324159187484446603149741797484504813871733860412648281882847013209712506854530460760125016770017052631129913784827164813453900874897409802770619863842728978014203318665728263752511058126723745821005380252446381610740956217609843720204848791636243234967886602498797710542980648331691120087874888596269942876081600695752304572028477145787935580026998644562512274843356065238982591237047736004766622126190933042679662015458589192920330875685153244584467829838408547936228556211719205210240469486548487125594712963872318654294636853532841378898161383374609903292554037006210645859208407523138163426667806700626700647273891422205964213775196887846553169223313353500788153295474986770374597668888287582987809085396572503948618783947234595077505247601526450991764302182968772189806573499965155760825809822192581926160539035502081992963106969216147970602404242022003381959347122732916406304454402148073742696481485890014843107235735201324192931393055825011641543701922504164722172358175521127258721614830610178748754084460575232517281780163912481135215931773676733998208625537920240204756457188034630487846202712699237854902341617649026457888863048932458815581157753802862789049455566460020121285527350784587957689446398298552579398214669706340704657058016994513698418052427969601517310858394889122336097979695873150449679322197444256246200092456985732425430162068063485259052091856899040326735842205547441655254635845794013657012003818654205577770025245577503285440211195920793159652317866194941991527992275979820324381423473082970404845722483709416758000902010616245255368651508739782040857438884147266092269031478269752605685222857456308093806324129533972663117695293709182745101826931854852104621776088194398559097414278092919730544314920103228443579838379444165091358402528791397364255006934293895194953922071651998563022429323157388853630258313406409748946480716962571014733837921455604138071501617595952052470291390759818858708084492428236113716392698732260108032183709212019368910759191219928536976057067504389186644613552171278524084936200766226339938582997029166754163232687991569492323435632301906052820721780792494778415424093332804880750581861233146138762098690019836034857563968459973048590211093282580024065808003451001859724051379802659026475611229583385279311786416096741559152591395249384101869896038209814708034347553593694830394980580701816757359892868350067462847577704669359268400955597932065657143288367909852262404101532744873246651661902974895894924417213744984801765086234307528752929120030453197905672606760538774879715687153442345755448439461071001488803381485207866966564501906450313082754163902496871852697727348264915676428984860251413939208545911206450316992192964528184374494889718169326593327955101079698895974679032513502706581578008758800326031067500268113372518910799605936994356625736185061597988103242346957934436464756864729905267782708912044528506726966540359631114032490829304418293612273043971938139015769959994154796071478544113254554968575385643656473819476158061239586834353962842012280178628674543179284155487958328060070748440040595023874501742639853964182755002160788384681480611507246021155813544659125207654040881134992992757981588740282962986512306031836266957223237811406569083719832167670790721833019956027886405514744676814705044828611360834835533722055762952032255334959296019184976112792884561600999878662405834772809779528601944122050121700955791617088079598558196881716389752940993870346001614407376724565355771257323305650087518060814633380336062983460667935304385564529295884873790773830968266906585358815571516119864172662280822707750622936560496490224478452127809420846100504872883257343607211823428329373184145791238242093984158230959213732157035698209646314495238671511448646531178142038940131357849849490410044226985368173319585054195721287127629936210356317220676666889056188211411954179785565432228470225983919214543285375718202851937498761848878544876664256906196285717689478091184519411511401422603899432460731318033613546519614482819611350789060279250951469419166649642110407500340207099955434966346737198412219146723117126133274816922353967099995768561777470599694604422081082905502894955073808226023415577080730601986320080504088730681716544615935088340377112934955519734361103921686547720877053043311280289892069923608072028999882131253336691967325648198474726886014852417407013963661410091885235847691492713834266496485626082140973521013569133136413891368026947351845256204558455610765316585714092930123870074568128253937132921168931868323910153159108788733149773072623162014506368634865357383196678300703358348920595224561297454255921310562526668388707773073461051189307495365013815573032903920019229914641491648004064396018656391919983390542115461418461562651559994458896314000109082797032479111236939225445823824852413818479481468032145255676097416628753902134031562947868760878834839662177162802408926787823939158735834459504377788289596350570618924058766704051087131823119057597254590293718635146084740640943894596918148027031593021188560489592673953184174652873087244253616444856343335782158310094350532831570732599555436534149138514316611695424906753153015784453246888729366930336203272236092771498161386398900374055446210682663489069795839855045062967614938214606861774728017712224969335287099147086798034630953970173163602120301153289942946748953393885756226312459997897375617423507650099745583240241948569256992363987381388719619647902722489606118335486257639936693382582737462582535292270295489846112381595369735974145613455898166180100807268967728586364607828733661904273931894977422502567011433155029977603247721108211577342124535822202759517882740550328982268652187372210313667958756624253852525987478337746605045835327375095848435272620096743421086124618313027406177884380417463631557363624329898445623351357034403860752681211237840949660373336754019183347632158001352135994190105661338587172048264982022275421072281087177681937887393077672886792816196645228383710641043667611913801150462182716048735159732453917457201124122436132684463935122952747944825657338723663584079519938798409386990303672751841817014506468997567752765986281859013208110318708543852123955293292467568568760587514444683783925752537594478569919960720500537285122626933889536022351997216587225045335568181348952679456519271075290867891760203589779538789527432788851920858906757969546316848833357041755571793504696554910717525178399455330833336498260693123403987019376690991360406360310430700912068350712790475951241485023046478388833341071399462845786430527070106830135157696753288993320098084636856228337044325812452725982363457378315123956607856800501742453936613462782860768009934442979352222491403170804480919378598510338777519289768251287938199475717078359747237595503832870142443271808541124971840900167455879146828240382940340378577522923770520413889724390876555540930580903074201996317367234427847141493038366780970506459752158406002985582803309790896013302376859081153344516888664734064813167753790863805650937893286345186180891147701679314043804775796022746683057669173794348951019465561480490773998979122086319611207252458387121642249469165198431211236561590177059651795303878979745764622505705101400725884366508170688714951840453786930300061807222541448223101778066013734216238615974038385744782068501527891886427075246543680799182796073457646124409829387927558681755190659279481676011784356538807583563146405641548157367096611259214602101076217734314283686356106647676672403227638469884864294093458549994982324901512019140117533216824305087286347035970935408263028878410487002176136893340075352756841345720654803213804557740031585269113898473402402977119438654944415431839614433729543683966557457385597982359065675621572547148776300286846685301094336211413235409129864182690249348312771824703463344297142513085744630144158333838434287343811302461160753883073844224407301161532150493314104080079725782981972100723595655679022004212006015189409974098924647466479650947283855642851156064040105510545122032920182531913103899522514762077380202408551361068884185417662407759200562323875586720131061088312459212894005055556667216526037491925108578558665741077002442296378856514776539040006830015176277663918051741939047901273615405805261928060826814213364756274418391124454772669372467079647559563922541670444735792991718106802776898512784831126888919975247551932401422674895502862393443429560722513103406016511380218960590147717059205428437769902559403133966068640352674235533826272763085268359295343602259280926792437889165465759966773519060885027966785968092034208338771034845164822643840803090509137629585824037381094201046098369219482219020955651404943269790404003167099813826324122744288940739988613514464830014690098246356623390622009626017503360065076665810144455582499664690560517226831822639074176733847818228290972917819084021893413006055793917402224631394687713343677536556141474435582062435826765643968784324453406685386415454868297847265879564712361918360588590872877490182000109428346326839864219990930965333888836595579253325847560035028871534335811164905714394124333873006230130576858715246252972205403885411895523124686441319618901080481112697462902620360359011459957006335234352422744931806726128594631870760241987723751714445767914506015657347062253132579899044237729852462128242377578041005889100695282361690308582107860957156322828479756811900531776163540741850152555334394420972541245599406605431387345561620506527717403457604066683114042535577373698615239183314181873373592444890389785257274308546320851374342024624737321114779528312293812568607208235294346973836884165031177057251235629101513494457814993254176165592983693814049837923161067188408383448374649659332203274757957478499156317255774037102041095742503738389050367666988085590600590027730378204202729911325139842114271128856470052791895155816382711339748357790751227984869428587203021027564166985184147833574463198102784991266739728201613532948899293156362475581887016513614437614527870797236482116611385366900968325715524671626728531121154752639968050600926090898878720664850987752968751084621589693158315012221299220757111501162182195504834886874041741678531673952518485323957832837929174238746296731864012728594204014381892197007709983085031653055061437222766059562030861317031339436751851075177321734614135373256947178502096221127373600599779617898873587660033487099362600627655291451209866312140977027423390531006009764557708080356435762491996260769703881593412672575009637748185542819618948281437071282710575752456974304072174713348487960291148023299762583448240171234189304150067048638128002025536432157666906197624470228497169690378573620636555575504666137156555369022174923220075580034388285715759893028118114712871660021374898156725740010646714120746579960506465174670219777249101242642474395923555721743547495056330601867502995275508931230111033446244296847636660955384663734312687924129819313414309489824675634737456312493692042504871625529543177226703531714764574392744876154225388624260378644877642307937290681794760835175900187582460938678824695030185193628363315693936563132280787984249320674214754823130560041592756168456647370265683990393792458617192942331047197034020189315117147399471524356789012667730222981325852206389546600988802711687256245637882650101360186858032233182986700537925203461139849636667249617794069316087912856167093922676009852117853754771182923124847866081882957732767573867413589658776833263837731634747391494856278594941442559061123300718199437783761636116144339264964407508934566211550314255883715956063074504549672596046282794459989535079186039197194980697072693326747241677811045766070026251741092932663072378451493113790164245744497858640090778258709388047142068106815826198694485019766308453357990567915323319189215159072811299664054013880886226989651341583708090089379920334542392277738825413533396010636449038644141905021254711545974292475597763131765908014670667010085927147247066517963607880115039214972395747456117695382681483958542810137652414693719419133883269296872061027182492977628532949487046491944129034663550922302418320588345740043207331823610637781689278743894881775913278986660945644143182142167629266990881284447140037111287049157522174467601789964312593213442931490609251487534972235147276740350232746176889253849036367210278045469929473404689907464855342170316579526444289266638880688343253334216599632939331759599226241873221341693480035803128440321300991938375748078423376603160715894457193325006676918442328438356863712432347064451107559586825085967032046328271216569895385389967179266685734855828006371014213576789608612141632742829757839808475024957679408422007140725939980073784752243664936583504180368168985752361836304274564589760953308739557197206530050292412332657178011076934638512718741455657130916205234320907526460693294930073988892486515256370931746198114266862235541600630043781349470778610423486837311758432973937704698976618564647845940791963027997354822297583609014175003216397281380414911451210602911008171580947073084313684300017829061214426032945589898579854660347306573152150722018006845521837805546768638218674670653540413073549935597525275595491908993643220964200854871102525033384117931020924687966648684714399874700010805756414782275699048426492174644706059237792799181651351511053603590053682441653033288549210640596496049266621180620873403568948421814618952095411945436905952773810973842283593658835990500811402291875643337678071315480808933487519783856159622678531386925368301476631597655114044662145102618071214051231780192846364048568757564125039068341037900077086217875987484810274362929568810696465605186929443078881761075818610054116366310241399399430906976416611928201467457038082180771394433848869013904252101650679531920054948730700428048615812006869577677206238182527522915773334815852160114344497903831531702600231292948887748216388638927945001557477590809339240139705809294762655943431299726279796938145704307651006746621566049392888545898926379386965398223624751966086571688163918292981062939864376444470554041608869519762975914672451920330787156966984080491977632106516991816444249242446580992815349007944487567219584912084133273374045595054718162041072142927328053681870451243008838573908019152674835269362674766811682488053024362673984414450436755385246902185627892739358715275597495528813036325602299236028922260683858820693432886368676024463167796651458996753874991223783927634857178899823006746307748422508678518434815088294284086208386850233086472392973355424946044557734415008920994230807518597948994901969987544415621620721572623571918775113994354624440411650117431171491056338544053268924969253325925601299696171058504173367969467126614696987224043919687066746526693798476430145328404852217103643959367485095861079428045450118927328738913251399350446308856679314065953666255362544241646093935486788862560004483290648740386468506857870382076373884539428474873077023638855485758898311611751384594256018723147762854324953699252241088420854670656746649375445021742092679552651715962027804314977587984865901447854785559120835604443396237960166249034013922525702364217417168009491597460614754547039229269803603123847893169280406725948346363093086437708726962914598468295652605344258640306718730507555544387693851109286811681654775551628710430259702587218218353356807955352598769866057608441568879097308749554985022154933317172451230341334276117163706261859693706604374053057810072024837849073566220274559914733999892729574581788916823916130081631894597095178753380298036912164422660697269627603431649386215442445300565323653134493766695550138378895424053712527426534621245613890729206723972438582593106945588696566418562668311778538858843826967454409240281336578218909695222522703823799905171622326765702866278611698871350037549083211519197458726545026248308666339716258188333669144273032317530422391188961206489457381116525048094258605220578369218835276281606165892774548369762740586033211560253212829146872283954887437131362773750676857972766170810989819801129553648612760223859187546479875184757885280794450371843155433799979386879320254588138372725939499038426506372543434286165663876821902210299500518348183573521429024529420746424029050041051091832150526186589893556421061200760604521697677750183191412167987657544472221770723217549838974812866887868800165113463355783738769974605553309788137066450186348929335206412361595335056665307293755832732112482279098299838438477769584405379744234108573837144190275966235653630353864979463418783301312963174972601577790186099231897722428079912018864092608748215541890831229586823406027207543103211109334801650698128999354651223195111523525673803353150803125799196212681120242237306797953724371206362143391220059372334863841919610655977576343620032201714763589174831956620131015833337146568453731544121510837838275348041483818534844880443506399899051665496924494216905663680898752399297560357398834994065162358977285740743678930724407228816960360396368995054924397931239794405581324703639667184563002282076792865176039738121402703210134674054381255692501670971175261282127310414533929228146804332097383188564665670748005263820885700765817777461179608618006619261041482906647594381211618676174663623330030111388217858239384047327410061372970191161811342088642114105105833523966835732187155322721447088047187120955195608815331972080107151287375083615285104276798978710415630548045707587708808148206907309893534323023540467631298821089684216984050100114580635527992258174484540509721124459626492659444807494425418281893744957627220341633092946465478906860088120767771876307575538981866044525548759079073362158841451312238562618343495927883830116603406900740715512276892909112617430149987608608786579146776522550466782054164064609940536839200399050254329589855061065046930627902435478870599100192860700298173258597750326170858073045303404904585601738951055591078148713876293282703166278441603921799530327035839971202007032133722180736224324402900090059643340785473335946299437012098982213467473799123223815839443775244446372486970310031002582040984475735947146214321894531638384219002221140330696936016662597163888330625028850968552122866796755298079022606908017574079376774484177509369602966513080431412594150987550873065735166113300308676813417869370431955785170642618559455542482747640888638181932787885325291238899770780592554229236879932331326975717919445385147448104158903196857202947677485726362951514332314018942746536843400327474179676299236387224653741881476688704951928794522912701636041885722999208809021661859753165282620243731812655167675652903307189238238496343502954731005972598662238597093239838870654665507075043084302925071982125867227467861592744979863890340892969112528345775050881866235382620250710375048084288506080131897163835699300466194275862681571444673234182510629171041252020507927522479074284181546269813893210973330713535556925415305882043427350908843444148525807870040009982497440684098935789070668024774192692938650175374324146637385206064778882632252707936570844442957534323827293442454067799545159775129827423899348271690569631670418966597317154672175609908409907081017088177404230942807839341655867637872171226345910710208105218583775838106386760170557063538307880549041198566946882093129742325761562768482846889861506767328687250174017812911439334526220037510625321391171215967588703247650132946938484149803203978658598095890670211471410656528565068862006859349680498192784035925368506983211423365298370996867581223408078204649208942171346503586294088673700113422128178839404618164542542802366333204851275589735352875532894977387532855576390292032995695396032816608683889374770721879755482664479242833951473561450947735939896453894790418067288946602037246862744787055810913825146483848942620122336147139881332802192813948799680817883325936721151933327153770491339079520283739274255829310731031359438939884376407564299125219168967408021064233437308312213110414882471310035300490877657260019859144274112474262455131681230740666670076527459955061416270455533185836030215104501298922248293618012169372705532858505253536179648787035286772518012144071366465242223308210432919586226138456536764487411845121223606541749614825726798435988921465954997979530651516155441181282165113572864867463011412702109271920260835988186648212240234366566758223260637632252061508371802378992053727779996610896007128227634853231006203281195969557831726244727226896026737439350219559258580704300942373826857897336939554475471613338221964389895476698923257389496078361334105594591474447420549143853626517992711425931731916772007510748084351031892338511937281819332686801977158718361316284159851686010530703877002890373095828224812008419565621732333225573605438028191515161328367301707637547380893799811796813037623990766016449914751266521581812453966830360119040080128886175662280634267457892867726622545487704810579707171996000910313313681768019998496044633231579781895540311783517798656890502764520556912082772445304214534925567709012364014370863905892836057509536126871630465433303577840752789997383818310923462478260900977449583789161736234010093947271705368697865992481894630831650127475083039218556445626998630213860078220767275539565793241460624015572563881422220676148551513201179001783592968054778739674522897212102469477928316755148318592053274167886855976805085247292524752590825000190893556452935567814541539357831653280038928638544682424789246890558971854679453135118997232751757574718787167939816261010125684846640751581177290428355443493596337714543122422897688681719835668597858538684599451248968694935552821756479000991442868143744737112155013914871808728827309698336979809144502807044531762771962012727856522854027147807541050624634061349291273604556918800910307322039626725193142288824134791877760760785407809637172317380392919801850137767437300657218497698833869239840907645129618311661918565672754714490145141700105157188075587892094342687563989186899576772422667094481752833220114050245798077360070170556913273449835944740650047460226859290338382981857658331208563432405521308781216057803379380450602656366855324432490111422999943878949614976942737980793064940029905981493601196990019626651318224620355727711744006489714349818571372587743703967156822029242326925898143384765554296486770211040275993568640446108424321730058283521030739557235781843250303085024316475787503422046804722960598082194761013813292106346667910451976441005866931487472754876639356205456997526667470673663107673464996184978709077177233349367298674158943393774625599148918614462878935879043819310187451132686308965071130009079191815101476517330420462269103948128437086620581416900878652230495361182709962117090968560746921275592843594083780126193543716801622938454125468830383229345543783447768604438958962510279742203140654031936672936434920741188042697242076538688580565035818137399666535258370492000475188407345689780595754351311381184833487928894321489694017673205862047869499038829345170033910184645377421171978008715038479045790535635969787185012501005767299884617534827458034261531387089327610218140976771589078045488751712966158942001373578668575233810412693402347205408791137662679282531719845914286270775945875999945904821954700577476237223518393221746691989268160915631258946854590830077337157167811435570088588972213694886137521293624357833771223768364632961334457942483128356768219634381198637369268360089692289418070452496761875870152545739364977592829834291142240549182535114226727122310754052000387450020204795593146978433496734387720127427650183567833862303100490238343458970099550186048837555486873097445404753585796010045676951155216094657492211491848005818513117009629120093172472383728846971463879710355577481837370642253076482609739784520660763205373387270533806197798086341274939021441430246241649513400276748229401652382218509846901127448731717334850702034932823936783967523759810395138864313384155474236586950515162152623101588730892876678280048975526669931051779353877387032842170924971858453737619947032445837468325250354738664424707468436693010465023082529156939066669419913634266797158988138048214161962053276392051452249419419052600547073647246609702699057248259992926946994778448779093214888368501525694545169156286476859349848338982783409040427721032042568471664801791711166639976997713242494253956142767273134626355273092178813321339941960529286395475353440800194799643481794113226745066059133603275837402363940560016096452585854723908560666668787139505165311893315313236238160199430396435849489019967111948519998744898680654086698600714211811809812654363987446165744800820046620799607993231331828391405191385353870429742290278241888514737996494370667693404679000078596198333586438909084177364837511865572125844839805313080055629790449093813011652954728263003209992507443294773562198672739555881315427448249903311271089163680865296982412413470205273885145489560091637211840850910058420636475800614037723158058677877639411527990991590524448311950923868746443358984378430009269704184782315142535287946308448441494383309835602898450742334094125276101735338795115177909762095369635460198525326275169489014391791249774217745172750284797976531628834806706635655457875726108469996416002362294762992951113802036017479623509359950919016591777026314242524526573151286277497627521107296833554120053506328025452209758063994247120121925359552872946546654230652206940130934247122580986122104113744511042944000606127971265764937524594886562007342540979214730491516583684382538631199745244737827156218218627637441577694843204489161456520728414790304191714244325517667614139144677062219261287891666570186995378421520515461290182142897616277979719788088360119098232688169214836224019528193928015220305065524080597653999109463172256701529422375455309059172333469208799457831221717115438670638380743998579161537155342992372316982262803710599647193976173209888661365467197069917236355135505685616084103081402366433979676862341402711061573913036509811310767600977209234376278977599046334441805778503747463413841085208950277060377163983278865029392107354548906549400445519125468464889476644413599166166873939194916541559949095157686666868168830117574778285167926432640499425078424679359014027438010962428737497520196861692794438692532475113402856359140056625698534762491953259322027269151675591178511965339151976749773090410085470617322773953867133224442016126283334718276110657917886029254937461811140716575239289289043389770691676166525055133712400761354968135461665034832264961265660726548407970156003830491424481836648577416829022508998524526649493802042317582156460798614011271969833067508383408740683968987428576077666039956498381573941269806915121314891687727884947801716691219220901621756070438553918299760941571151481741370159109755517822953665307803126383067600210701263741345282348345690377669895254472654887525882956062636795624335555717289431844509224318441877812445854530561082753740124375627018201116336706196957041490522979560955481949321227132754046401070804847987484904372795566923891319431651079977813022618913155852324084177555886698263762260024173743093639819467471384028683031996533032203100622195237558873546806774755923406573310828176459787854849270744318043906007276088853505974890961772639939615267936691542787397021843163461614092471123963127509573211417272609329851687342338600191548860042400655991941828046448716008575726643635561235299265328122394569936190408153122443771457973505815160275807020390401247304606451718528808598430471028650038207361613863901644884725731616994871606356165012848630615232568072940664324722921715433506108884525391633587697077529398923958162586457473318566719603954411172797362169282989004679572064746850391584260552699551795118940610458899343372527144024884775052915725275511660192148594230499798287486259231953533448359206651033167065382103777558223558372224471609014762852006880575469579451878853335164098018669544296156110268952717954698604319564318870833253938193422823937346553867402638287192828127836528370731968298180856769591754736071650969093147748957257273258476839806234961897389623674637241403093281850705492212166325268023036604964782861478567968900620745182340372942687353665011149138402809816576982625623399558705645594792001374229952639468249466828037392887897246665523180539138593026237761813481550040672579917542349153268392461896754597862054447790804809894442209358868892804275678805789336464510705747512252027626089040298310532303615900262334677935607580400078520904955603193343804242620577296374687327831164872853976128807251311655948762167272625210150079246394755299358865410867536464156401317379209942022573539767630419513345164605964268004405932781702759261159987251011690146293304561837795700804861110134910995265488408925416823473954096769498440381668652305720905492002454736353298533262480768839615053623495868878747269606674784428101406259106277481226665694005526937363309838805175849511838043624730156635160446599009833997957791564957088137279641801059826051160575941524268392685871230697199539912898646099719549222474680036097022786690154252215453683030947075201930625646880988951421798450693334874783858035810862265700481242610028941428757801981235733983916472845799199295268246913936459334906848349297696844048589145451164734479728775868094802160204146835169167357202289819718094303908980438945689621604074995694905332166335945011732344899816746406639107764299787062592437648501731566761120111524629990557404222938861461610704087407421175507082547725847400880305175444950292257138985881986264891738011108177632235247396886811452459295527020571467072781436580557422632542220587108295843337299661751365556981727057993624281913797597552704798474900220242987600300302230593808306567680800517217097438717026933628574652755558628882706500543684584179083800257451881194021216749578852286901346618457055820048041423140883587412334908741659617149427870949607617947935525756879879786718390654364609368976601478792876728197189729095472327901499233467950764196092095904117277741606190810023562489633810562531912032588555628502053152773334379279498650630685495442395233914955718611585131481256366089320835135160251261886538978870713958699078496091479660498814871230839588319400137975994239949600936232750081879906148906710217505239584219779080433958088618022520835265442318701969751099958173295749838343314160718367722090812359061545635565039223596677357726702539941700913420817310486870257455371361293670364068131062936502553680128576908476748692469614581142967354982073242456548955582821872281968096263509558720401461368092044654999248707006233848444588159617400785430640843448440413937253503108029111237416572804483457812651900561585490793636942971475883897554811681220848894685975696691381675723409776690793417427275455620511069090445497204497027683295659936089510197775803158349082810274530732741736977254175517143603580948437577109150088725466137869450590589793982537667571658085034931850669060102120428047073815811427856187871324931706748329683061436870599836612283521168148036509273746831852456966419712486668648515998382976321350852000349333804577384823171469184333378747226767637254741671042699660051062842954356128286282741234388576902455308194116079747136281070326753403518644708008196749802455594174721667490927801127499273438208168439407052158458904029678864021533886768316144639250316126862863404902069876049774220069694973021277527323445584462465479494430157095784921711822267330088825242728036029515554782059418001985060397965395442424595152717785313438742720363588808846817077632422835211615625560634345971896641929216892088485464169046328742275845691225306331495493194122342382515924674976156730459343341011186084716506135480527374314189463012716220658845342060142239388545194739038081055245329850579208432449401248231275929321876359582434105677364133854685632118638486724659971131388278920744079046018997268730969209890614435047918535741250258321366666811602145237922899258082544886319218962318204347011698595074575311493778332545812066738377521649624658602777415686381970818076484499187003279425643532941914931493433945979966828746268242750159510408318637564095809350159496409189049100423692157130362091547733285627104610116326908725975803104669486335879211813224661511411949072135684240492838477080694448150274767841241930409931445461317579160129092670784265674796329000548934213796800045527414450701107528495620042670770502655216412061376330818252728552738141622911125299125612898224043320983966125144797343048441339602907926942386276321226954911204419994765353632851235241243430280358898887378507998776534271601459525019416030114352695803671850859751667981906015755259886672690334047583230630802253618661026195877299118485241000678512800808187399216280738768645716036135195526538597819401550260928595287909130387226081582744508822675689146922897090468524206993444150470657884452205474339939594803967777654432662197554688169684968597755967819562437908825302706847142349809455594000907589888586920875010000312550994459416711245852818529586336167631135041187451896105152058955976672433770504669721205521434761271820575098248852596884598560253123502466573970528476789263024774909946080714307952762968330837283249605657539624040981583841962336939030768365682376705907853515301956326090693269904785499310574791498353430101865303026608810520653489420304677545545003464662158443359932312823322061450701651057562001588896971262507611064569423815732539870345151452099912038517373985689312200428980964185128592106472236479166111833539365734664885308558823110280205307018824640438773791211627877715764969298142313902631636071847835730629343194072025583154268986535443173816547499860350034495508579882844439163988128300179402022694300679373535439505128638081831097819081546148040763638942794948983769243215495022322970166743015628040485467159288899415765570624823821813134896872664737517312041659815965808113157234293281503387862599873215566180967614302794929401757580341621588795892803767746359245401123801772867673765965494209273434761897977218361919219677374328044331843958008591188236061102740845022798316985281472142684596439524559666635888181721235241728281029123423765832412453932354171238643474756248600577770120342976148668596907439398232761340238296183232428316794608691322981890388017319097467456760092294324714166681934011519587085244420135814217815711109165969365197183624453279038322900466118000520644064643966507340468808800827624721632190208710394906809873657383853963927993104032815476867066505104055528335794573518621876142490667984825988145051296463177552839794254058387628194132651333652725645011855770394126662675064982842094630649438863646246417781954467790749936791959151526180473481078882244287503541603285642292020121827004425872131750205673125371649269254059595569751006776775971125483734060606002511777516533688457871671720736081208517877722966424575289953959816939535235002746724603907676372672335640798068736592975477072161581782450273821785976889165411184542743037513031490039944101035382793314781581402659210215808042109248062592764588406689803845494109737893532039625712254111294891968416719188659559106496082196712619413034828028063722878959966426077906387087384914165080581632824477206737864431657399478197546234427227324911748493919391052569170027596757803860003552756334746602272982025379199012234910245530434956494321296666234376760424545642390380889791794980213920839553422009815182587222706056444699522922743875541001625662953399548810342802977896457727475090778853334126219624664230814254188683966291925011316229035079550579826284408465522632165670012732569236746233934946155112828568179852319359281732874215355069615420865480976976835359525482304113876841903712018659356130689038818015838410800595320968160329781459010091403772755876344234051742607541857866551211923814919349913701468679860876588729579112046089335697666790137323419778911046052932697698477429694469848271800093390073450718062025034093771278448758298239670818697337827623465585087450968794207070869017512555259627343708244346037810431311038409713487860048045482887494890032865350827781620530271804792326221123340074142147933122510207025228931233802355585023888307768455158182948394114952942665133153559220489780914522442817057653105529247656492335719547487016290938827148988735110427105022571433399287700815446693239273895565859909694451876644064435799108489313735241392032668057941331681897942405227129182544222264413887704685912849167615764503026333468886042856822131502975105424994356682685483710775011553272578544016564795669380175542220338663775138813428888388508194816306054515569143179730850715786203481587031129461063328971904318842744395530367825585884631362715384374154766934895315978719024073658720983228328157471228787385203470436676944957337175708476355900891748266008782364227532102030251205017943827904725467046897864992452331248523046480540751059029436980209762282882883146455816968346117171734796576740415091202452866535767584407877262812632045288622000097025075504086170650931174231910507652839214452837969922787171940387740634838401877752758620312418813791318637087411531747837763041822349312121420103669902636249992017814695919869164763103509615851492511434997036891181002287262737645388142335597232738623662977667143951281037468529421043001300229415372239626126602341148080930755194271152499670180452336644336962092948375660301603969714273309080908820652353953771707832673984501040620333392413850093302387769189459780540132120680361731320640939614106307553852330974979122214289753053967917891868941094141193114230728728334274417979206598464031009674047458812804579275894483455350938659257953638740742005893207224464036512804317919505769230208652303195848276341922312177086059178025546194010008421507730772972016769695093170587666964444360241043216668892231862304177318716287584612481600265297587062919908272755274618744734424539697334311097662216842203225378925297557306991140821260788145732313591961039764261238944641815456678239649126443075884381316130944812119923638429847175768152242197535283640434344134049011610982237394183019496149358989845605135227552568632153484072023422253116088712315804049408892285643501741421331575890197124255153786477429866408757318142866493163466627531973460808697305128192310235347911062999570010985695753796029978621821598450231234711114388721599833229034224303824310584921254241987982445449652036454250713191331829620402489647404369235323850495396243179847390366972689919528949948406383182340840067621401030233634231791687884501755391971532011438009214787916960584148536646452167680911377912893118270859137884738204278464790994112931873219853233165337805932774501582880954509489291255648813086054652971832681250208116072490787662483329644603461714912160228431256561717692796305068570939846290920062796369808949963517783329837109129312697815623034395917080846932895846713395605390147685960023837930719364497410002234527249652916929487509774247096112532026068124890628227659578298966902100868347175516063240626531040383950347768055764888624337163627753367824411565007835255273374444491305180916834281826270191344658386668154294893972807970296646136180861360130130180291734924149577847559321032403285104065672842092029050719678507991151325769103514997778860007020626880070620228714275415990758320661819617178086259208335516689740755081036613938271321901705365647944741007719752607110197208128737878422502894034499082564642242854358370287022326751789991363454809661941848994502330189816724643515773820553224920742712058191747516497790331969438949662702061675087600750571260872659269166084248281744414833509875174425428363432569558222224475496970115154840822164777311608991347018189116622858843164346521027717650854808720069177311182832363908916892491598937693582272282050116148427686666584037773088906022322014310033465376844423585790144834106326747654616367866785322801237560269779894794452686233239094137325505810960653551031245523315095863787185501776826768863606321272747004096953310682537740153905374168433598885452102191924026334268480793393399391461491149988097597933936987547811291126030018973900065773683408102075153721181045905299285521728545932550425698635024060666149455808347390969417670108332746635667525894684922560355675643833734407012135371739211995149734022986199979400852256278032427483457238438353919299619133428566054668679208530614167076549286465482527208612604697993919456012076471133021820152585213113589587557235702302342344796332112635699858046846936144835799337741035764167875592667181073110564917045085143716770510438133420227747981565424118746402891088787023095212897145325109474355597853800768398777449834687383975992071431870895117721098392096830421809486216552896750545444137679827821634091008260637121422483020836506542533160996482367951489388763789063846973601802045136203680758035387238383495351644973237078118213093476927464975124650723105612201614760701800874407856827184282682383251756808066529307709357164716481264686494485118876979537964659829281901421761743697973828119866384281110162809631256343422360806725895390520290613195610644872382691808121751550823536449589305569140293993023755586924189234170487966172330251078510850925109730629367286662245239295041129368702015616181939297353407433924625221775704871676527808444736045631877147186275606483927961728241483515185440396038282427268438901104048719361566143648323810052302806967916876897806702883488111673534053829873780411064682579807144645358691698937414690470141562611813326562797298995543271114008792064731547139278118526976464054602361040441334151467864924930799817907642820915694699346713809744730888866546540892944560610494382539981380845304464413393778527928230555977333117141451214378997880162231984345540596297261187549330297041562956171203374940757834260344604188441827304810158467019403291126422955874408038481802492368298556472876937026415697862900320383729151165164399661172110970634093081729787745887330391525205329117222619110083632970317673642656042020302752691387658745606317896515821083667561749673395143863660909965951986107425729636907424130325253855179552408031170644761470610207127556373197549934734953678844587563939248240772772109062996059740888993467253460164915756652588801493380098195109504982937446229052208370398679170794948136362210568919308647230867551313840331501454203722412711564483467455706168841647195800160554678550096710323326088713632222332738915233620014003091624667532672462742073782174163524904191953953808639604265082008196679279044587405129168159377801096173854549570916147427455481606087583160691228881481232073012406432427590785555176022522759511299219275583908569989542150857914915736982361904016299425918425915729996891096232842056668623885643063536340718656214038022718599792267812372998088822277945518350227632177321336409736889742623238025229142361285364742160042965791340721370423724487357669829121837286809177214736902499576079032300814082033894556238936205042408044151083227832038946643422749010152035543079318760951441338265344909003394561426316026981417429236566117532669720788927803508262606211332729487305106049675315746780320945336870058122381100961666810676120158172029727418604345463836544359209981641042135053106543219740104061431820909639916956100079962869786938528230148689676493477897191791435942330815121794495233911929748257192238233556305244191918498620392682075387364817559177453103997019443736089436952911312720946150358159738780586474192728545113268190343479331311715496177893627808714137722792998928298012846184276345954882627336571468885070746987012802481309228413647993435740527309512251724090741407247057695365628814217306764580861324725499868314331943283558806791129917207396336701164192594884425096582168163627355552711359648611302495496121465863370180500427931500276108751945086244351450629683982405122922111283939006724568630053208899505498673972538466044748232451816030184780513407383889885781843522239054152474424355668746066832214014514933522558815542237150002834250681404831186986778711528147321683807683482434746183794366398116244885917918920940242457339848256579887341108709563947668142750022213248052630843397809102827508529167523129143361201466827264588746748037147162177799212526523102797901144765706962001635599745224418354949459797982749774743523016903499398099663233272216868775518106407566657305641610122101203406452624073065339105275344414937567687128021955103429664631475454895666678102737767888032442118306740816751138673835878505327976535799981696020639123905851367055357989385009078829593945056995891988476043396715716671836952302179645857944137025757745312516618462701411850995838454646269732179203130036902377164643189864702497291703312220745151127736248329204124945322994153386993785187813730673203092808722454288365132471084870923534287609050139444534689533988289686608132475359931371826435408904647557008090780876827236906208532668817767745780286612975450045188522941499071311386614589268041450448104237531719658222679526524532553938461062596030643978371431279195962143619334509496055946429403638289032881881932154793102875870753246711458418354964526335455261976629936358197491080650133653274696915451249958372629742253841130155304643023373437725409700741242890592635815469184781734627915123188399789351061222967224593920396597588375400371362021117775924401429518559729377269602048287748894375364501213369530927118733240606630252557238457827361809476475455159683589974233916815969438626343461724789669488589724059996290052090940361274782689254403895427480749199256786326529408992058971640109113197600196045914865087651518319529122198156898952676273573134072110922349810991742013590263597802507941295991421933536969202234956818161622380876925518097499232204076687723417512386909647210138971046044882818720315557403094350820646879501556891082112641452427939310271313893375981268396346241270575681731781847185183684973419518342941269433621110052919997235762069200928318327037884186776787604277905271335691926902400236548800448657344760101517104009847928418565754571841161338860017182833724713188110014037893019618063864371124004638174341726604933537612634189798738865278637329201345073991301099017525241975723766850973918754966511291265424728442605001381998481128134115696598597599915463232393665920606829123135420504228193706371090411948225838592010158157370299159518688443687005029784106554671249909694201563520416764273519744386026917089765582401077944682134789108483390595640095699712165384309323928476196182803786793704896999676424640537261246785911225237962573707145948206692008890937092216681341803136258742525571469567532550258723071962575137074472789588082167802670628563950304685809709963709263166660413790844928341659849842634699181849296384295544817529940802597609645556555089705043060329111377212193421878550142596244106902677140307784225765050350067658749120149759096309513807130854626378071441786986091820693609281390353920419236877123400645253021586455445806909838049726753419087286110586654529547857214276576347165318320115194773267310778033194182624069971721393428204938738100964586594567681182738055445066911352179514532439483246246374647087988711864281140753073802526764042677865446643754236217868715446793519396235251279728857735314862010735348000916488115113168197999982081982489512540736762541681083252421086500075715420876541861802543310897259108186359810098427147361359988041583645098001221104116343055333426650977265043424991254588733640815984804507026819214634401650681869026525130405149568777796988282461931632627725708590401979322765745409149583165250289910175939040853667616507243626972217686670163370845173682076699913143857638787624512924816828692143413872527196506152036347342562824491392257722887562448263948923619974383026555143743432624596382514286202494611944536600550417139612425242302155465989822475130358275912169035346684479648929381970803917616352438078921304095761509932695585828605988460754507616520564939717602324808093836983354236470176086906080167685839570641412724676552033825688941523154476691638139251292273299776275030674262097249764296750098727537037630120666256898501625230705843471846028638604229048702724552735019014357629760251306552773475032818750787805159327975379583761200596919453451273818170011198952572372455242251088277416366293399631973672157573920486533122811632315573649869558736021535375072375052984938067752924975497447950357617465735744791517765844129863664194873652656209679997669205676179542481538531202904388741647229072193906735963979669187759401711786129706939935661730307719833922607670552178510019060132186612455766250483870911328809869593533480546567097844121191597954634289551445834404433447293116451111203359647091203789433413084838396836269183462482332678386462342406278142394628537285874140765348058408131402555945137043515118819105075786231838086326526582119367272894653069932267538504756595400017855129100984524862183114311461499758712932966976167179004486868494442655696412568115503557647488508320849263004579010689561140226018531111999422716522057088169241299750038033744962712884880512168401702412802706557938698313147976107688208503366838967223963128855915422192154409813739354280102798835633132559103858018455807333933344550199705902918150319740415857630971955357107724037244505967642736578807410474435824072165418989249454697321964796076662285362773207727786216059365636210833644865122926719398201160714291757320459878087274956384093052623892121244241296892756917794344361097722879814678985799807896595060357731971419915789029752647327257668230391458928898651005206653945983141269502099700987144086694434474367106373632487331546008497985243012216604220416416701110188437205201283432385886653231801912727626515834013769899926385770411738289075024361459065520964126452655143154128008142763592951783943750980667909419750235091605635182786078166857658455806286641998513737862819918363527918945979070775489417551131992786303119197721685147242875407196428496603608148810856243179445752369296852121542499030784009598106888738830852432366837090893898066367317062677866573655293422960562858910121806440238474412901572232141589268992999051123737330052814076893806919464626780116444202987502474556346822498554906220543146387492180005041957221788068859230493792994665092971235100581675235490888111272762279892318609030834288682106633963541813434675853271410432180505079773653922957670149617155314786889274191288955550371690703472210122630583726661203823757184941139869122922008904922806000411936128828714197175364814001662301709447367781092954010654395731582237856726674073205948883001762104495356495518824524974813230792300646855323592618007321941644945766196550103339425423802819597009709184055664015282610264490164635647443601798187431922571910628793890930666595157517712460557444880242718065123736261088653396891884468337832629429924588196804302472179629249041371226095006364054650644439389532038777958434832856608358274037891432916406729754705438154815322761980992572102260992254060710977479238007183718637350768770305152785785521930611374242424212846089732976334111278895336948259580612596951958061389637867930876886627608740788123246193673061757985741724162912274773969671054988134334716711577886613076191136430391828139556221206183131868161508800536918447285606564613537386268791877071284948282487414213401528160758319772903978111395059821331898016429487542088699123546398596234232249959251618192778915738440199461636608161512058264248644160586989693124594754346739592368891935417990379241725988901051256249793394042905900500512069744842316735663560949257309741818552009220536360301350732233804801274000174193464418802747783287526514957518474977447396972284366459980748449207992872486652966696402412172217466959007906528983510981098494245540760891348569865761508214918529863808362882104128276938839257967438529075611417249135300623393494315900001199029784123080077491770527420171889269957237267178914547173305909591480092411358913222005882420633055614553423570338756079268702276118600568208123923863620544782300684302986265262336795384107128152357388044140908109520240459079383518345350529387430567691373721300788976666642736914198806002678394239336957288566908897927598856789126703267983718890658398386374408194254617479806913538880275154039061308619393225837121627677565842801815539171771539913199333152793424719763802501380133372141277185175945878801806039579645572942079987950950589650105734939414009750416912247084784893172297781165201157192829579879631391837723725693733126800884242352717051369298408943897261669587273190562734968972430911511407252304909592737614426918854922362413781716734510385527516976100434079113565229803580077010568785956070841463937630036354302694149297362862305888892599699379128592295530904375577807903180270063898189904468469532373052391593807235929195008513084371150444751896178075822827847433367753490556325290823923363739884881385481216429142613888865811312761386065762015490474878720875800418762648846581775577627313509178989901871593152216056361447076041419929699934564085736863870125572347556284440119444700908504311267138494358080145612996054348660955431666406016110197610027181849561889769291045034558635244325447633084771415726728802499912680718234263168239665474211823689805677977889312442065917605646826955516034299804415553960354348389019767767221565480785323088162758071231567356152111788249762116861927978606938934473703235561483268601347841268477594032945173256240197685836830982754686617248512854768832756613888928502587294008228305814012206308335377123593908927065478210435008378333962558903889200693929882200785394860099367383953136907216901756970891638054559645307347950432586380810341572491470330619565296300688265383452174342489406200067836352213650125293223582196824647158036125965360690448972511985585634029519494728393778898942879651437318337459288379130254990726766843286271155251325105473702956482561328459787965660873617133002156988802190679111466268603633681319436141245773347555821841832201521819703227851448083868147009767356468490630713536157069012513771354920642086466465316156459562268821435211363072024255966328053742227117413543258503711998084176229269836226029083727211779478496295431264916965410189142212327917190450156902204390990840832354975107815962685131527646096383491314028121418551578672649833717308210350758383869110314145182837694545913263197005720860147974011202536376761800555826492434900535185594869566126590818426094342397755798386069620812379334306437427956629171644732705489582810045917471114995093462761323476827712492445064833649299086767697247233213101185555072462307009326967358745056691544867303960439548307201161696882146902725280502304468947551801472831281768048386730069976814052400413728705481368886425887809634752463002350725127170984237693214847843127538033791525074384594912810059885639963451202131921495345197364566948948335272670870413709328299988905672701669222099009168729235199763565544788463965455922085155730466965570297956598860320455641881317278434699853599426911141259654183273234423681033691776905023024838888614765824974456241827328785215874972977900119499781584612917105479481045987524422321751942701744028206350665444453878184005595274953555018821844949087770271404374173758010907946971839881422070307215881909560834484094564104908372890709661368955605894247641809663054207593419713445100370282559211749802850814824719042676095805184928897627136306423943255530694915089923978950343792098225504728702871668628544859819352277613889117979053244251516043847122427733831968419777010121191154573261814969634792687522816247028785753032362149409906936253150104770058370479139497183158751121189993047426978364680285089637587630010073643205676542589256455575189543537705439490879425316926446698813500002385241499431565509220034214033000652981079595512629162334828144708956805781087745946749096882863453554363462999931434624408152739718007245786982755215052992503754148044401128474419537326534593175273525996328674130495679881004069000695857876851927490572489086102809161545883651806689880761895231711932549109915421928302997127636090811004109866093165109659805916890303589312378057901228199769091306624876639960076590047311327773934569315834230183853004307854667394189037194455316113551373610112938114014789173492855476600541996336234234911318733966324790786558345655129389008440106302428469540586618484384777628593443395103499221383120303806948693084455516621875481916930783198821914200664536553773595457828484120889833946427761414578024627810318948997291185034540165010337253124521213957980977319865761821033323006435372128948707836179778552996873197726396010002948654854518912947817707724027353565023497971916458710316907442520293243007487939887078801966434954811762024221885192102346648343507588013169886348083913707287476424761930435239084358385251084938443426105541619643924188101424852942528310069069404553539228833513870409968751695327255332002703892606522723813853866509553253977383842565376917599515423144592697934630582163921318342758143185755634261080233813016095531168743395430477753062956241899849193831557390324252216189828555478423712568908434155805229913669444499902539306180809066987708065061807066322865169111628667531482540629080685884272475292562698352092147026073753012229918511264549970733725213000967121805084518164129299584372262940992080791084589192018926873261963847975283709653808719205895171568632490207130274843050147108817997792687714547457965603862767327493165610608998813014733993722356445218728003298108179377514855493719265257895239008094953712011106560937445250896206765333949049516501400982684828033492173220289325413398612136405668116991643909376912920140236660324220351610012361842111276606272419150452315288620479504452179513624217971161990797323765763704105671820505370909094698904610165411500588240589154879741943865437293360178015190485922865461937350074811076051298800180156895425133970299363277562657957419419381265989902129709006587371779427076238245797770785177402925475076746910208956596841731532655876772160128733947890607219766817213677651305350126541962170334425846859665200092179330710779604440342229018583425585462860187021859745580847750676792824356215556487540038818775123920658356617418023238973877572809305101158974626433705976049853669139849360403333594182110363216517644536514271204964881060846347478329519587418664371770568025292048070587688295498655043361229859041468496166551734452293234804575162508464660561286656223187153991612189466016083640552398355391355766185507989710615374868631975533522514078077727235035789697553649270138927181064370650756136781590762823951251680317589905558718211612751872612525340387062128352623129526929817790007028492138925732321676478196353435570364809122450384538888324875445981282107443899260156892980260892877599758500074880423736893228448469942901542881604751587667880621405212735596653169699124745112064849835779672235503162170727690290167529807102834859933916975834294070469475713276208635604583957284248533759809363457860883919970772351868189423919987783960390059162721793883765492524328473831041762170879783548511737529002578471055789032470715884455133252355926836174797314304573676589922261870664707954543598298440667997297773838673804237354561732237597277932493519083315288904187205362636510871167684009704931579185757712439337169144205725871691108459883153743700073081230060946892680673735136607265564469585160362334578029481843416407057027609917302634056266026130129966038551331489346306070036974079048618520540405468408109749354494878338002397336635716446700461126420310133048151503395807989411086113013870842839054483074182603389296417519561375187565899007052671904956877929975333171601735697391495527351594786271092543157138794774042975761774268883731060653372763717555526004306301416827988484014047885984345039002340234116596850366406093804328900677736741775406180897921426604618643740872948502153348382357388315159550262046346131992576564919048777212083016451905039573026102016737830830986550425522395977501927078499794866118811594039022582751819899697991844178081739020051407409946001208864215372710157589506039596493746385322243282987378690312695194056054518897624947616271691435843411834473710518027468663827331692685306358328350688883310962954870594268643792219815856319698967650154824813053615211877690351450187158273961210492213940773486650814743209384520418183987513735063584600010527498595694306764481162119584403423741786612538858745542488597669873349371362832351708873824032122589497139213024402528145109215442517736623153447154426284644090986419509666731021612169414838464320374682737302933186867437220983147466582633604989428192013508636262232610045251987638884877841315767473333562076713973621877743802182540001679659685466569766601994189823489235633767496150757759941409339131635120269567275770324634724221234364399247926657702304833863473761904431720387155621521351162561498147816671098083790096789326342728021416436119342280868302008743209373142516468766017954581540649335095281770832595030524325959733394815563430839394977636983266294348984479244085898691843870089298399321957231858167186594234581042696866273144005384382288540801236154573558347939281036776399566885401186517065104365169237472937143120965206853244578623540943301580394414947040308309420088389499178838992747317063668779948665317315336047423094411308544441435173014437099535152177697850201839010963444047457519041606783393672019569897096819033304658759165142589526141446090769811210183834648716506970968107518932095103684104961398075742909868564338588965131552807338161916322299749663760619023791479930169463262216136644255397872794796318660749784570576076013833806625082665453746313659053117055821220961283481151401228977948187141502766053702916056692499102591860086021818373805175871788736250803513514973016280338773606612046228335174706659360938809212012213532833456906840777392896331589906054645452854142887030349514382859902371583690198507119866234993807927209867483906188655688886926819016889452709426768637386676885725554387198916328003849308884831407411990690855094291981949546357031141602274376693985613065466879399346050337918788358037917498974509154582416937840377401019901417381551997119115469734619393899984512336681078807733217073293242881100941303044385543761557988187408270079780903086467956217436532343966461100116983846542500111590816876108807314361754826976661308915973505159535575215375104010866417357036090457525214742300617161640447740314541198246334529917027558459591586427026595365862318433240966027269068600714990242554009470236458235222524188444563728049015121875330374326297113313705571824177640207181724104154258534017263535059701632337994523574694014745026755963379829192845494267147510036854779524600621547473332883121347037421074008906842125134643742915636087078825043770887496370305710088805739214282645625892431000308251955738565874300736697828606641846685040012558704927921357169452702450412400737004897513707685611181997927457308774307356316033004237064060591276999844232786909652730659472287783000566452549329915930043832892843062648688700160560535611399877968056187715273255542477762372627200625907882548465361796257874751272297735324795485901882590001856810519514987476771225240552788031314216510545487797451725549842803556723102123242032623628328178010063724290090426581056597309007033026976146292463857965099690385511654298539622987346145566543630699601309172883847344610947932165420576697990935962442764638952641594608853407530071341641042021507083147670574616242884847389311553786210663984370657749363390824864154534154204176482147543170377849750479140601299733433754613035598761349811127559617461755878470892236676041815689216377038142377861142102324286536306411385893249806119729284256404909817216823587912496569871186251928631500921002721391288907524614367544741616971810945142396098999566204417330644993727367689151853185714408049543276503661489703709091316098961666675609003988948660876779177036972600426973295941222686770607937738812455484948403054262042039281914660976648099835258396725735529181525339889757110690085617581594864117637509640824924765517410056414603973331135971987478825700041633982539471171814526153235915854408880703797902884858277495840327913238516092577935825896787629095121741567965607963742655910328084914756053359656100468513581314753291590348586458541265969251702788659561679484770521393960037154778914414320510239892955481794525979818210680345001611004548020041199820611474207630128443178258322168441127092068577650479266660531788484377340608053673235047021383920980493067568340825373597070805001150178462920821376635441514238121586419741727912103086187629839327841212733032993541858200819729492285020773108487694626533534298054284758128532123756924183570278093147624336034537202873902141390898609468548111847415729075840925619099166273126718885770315299521714424752452737722488064770577429068726828409965148184701775579596286046058061613506641849509808214999357618875064005694068706117416081770252551136253456632449411228698154381419110016326249776393455538083672862428924023845226949304987329655877821626384821913781419072141123266234811837286803289021562039189677152378014550814334387136610747136131444850644952696003809799937185501896337627088925956025074753789282812946438907657996847202635944558682181356690424518818740716314964150121487207097127519013081164977634869693257113954097853588116884052282229332498098781668128914598307011246270462024858316499324263246883888014646000451983367720688773327981177354955336180797739829259618091563377773834390775116424247598009980873314588389747353620518928159148696767387993622300187651952698883533840036666712224757351182511114130496721177452678126479624737105482023530632053433355447225285889843900024633050249977574326969948516984308407902560924261944550321236105168618231809515332862582624893326222109070359004221582751358618770214209918763041489544100111234430494250380220010610678918446952909481454552599724186929002044023176331331070166502447967982402199114261152873304827198056484439262545317218888993956870634860776861848279890734141691430219875085374366802747620482851052781521942326775889303300974433472438763335401212572383732223348893340036607601281746045171434956109773558820275310357301956147453685228477975311816843411167273017166379651970329786574327051229541754395419737396829625902093076434988159500308448473205344484823039448146535093226857446124698323999100735264614290195118204177814332829213616430445532495891243771572072862502193519089878192781457259638065018134304070865411606449495939048037054181241742732894197500320277429228472336469752834868760702564308232526520748872614626144650665959522532706387777250335991022506910863963015027138462962494438584015101599110106572954211390210601929369474697246456836834532248448566306351390955905898117586888903072342568391202966624327197652784942390517513592341192145469042894611618559035479172313719834930217218942745216675519832782650236607294482834221307217634445951198366459883388256126725031281790134100930168153580351808261986148491751361500538554613619218203584728358902013133495347804806177204181100618788516290189203325513437994756634301483314603165462357284285146164665854857284079153764527153350660068125523774950963944815494462866511678883871569245766478678038971942214551851069201407347234509539469876431034934356818415420161904321586183703105850347012080518832936186276833224732447680920921161788164048956767316392213146104921686255546258428993649308957372649987898078685792814559679556569327960366086361759824134914386195189651213352362258084862562826868303187007309296533578641778721545009412057043556179025096844476833830939478664621678688893391196257229554404270080113170355311996112596323678965856177744251682034586010739429029619220899344232432032481758363318777549264997923674732591899684329767535891990468638467899152747438507683058669062594694103583964373212623681463995652383298853415069081491557794189026353113796842485487417127733133897811823600895286472602776594511552490011838910030468201766930924244327884210123018236336082529749082118825657614063232920141610870122701126970823145805782870918671378387212213380518805474304122942079333325983306374744712156378570951925230998686132492189714677442577768913970935174024798406132875028405671308334300480819939672175118071441288524452805075968879842365298556567275538933020408080398594449552659184132815975732416416231387601755673538964251421635616632293135130650926285030077880350177691431034939238546093991911164440456043989472761728612444524903648202852410229425866906895367106593055668802251616058590368549826424946477539371584954479090574730602805405211478152160473594349471629008313085908925640017834486431773985784678023535289378759868694673629068143517144681835870001261936125209001902201886574229992353743403498832850698069685747698931544092336142803254506285110149937985521497854732002155081289180253010062703991670577365862230410523509848053729913812588662446340707586494005942542568485689907399814379336903885401606374121501598576292518320585495330801898072920171457442996732272170332343607336055379137944157227223045705444351611237609538547464039809152481124174651800580514452425005508304473519688822292385739705164869347119725155822060224073150931132666731939806723992795963875087431823178596141474144545117505657255660556317708855240489422778941692096829470161723218384258063528645439567419403401258257275694853100996318781357553912755433878244019454973733484304000477457241478473226469912888504559969044445206749434067915974065751929420857689858359952419906942798553658411710349031429798124745057990812580567208085770606697838715723826256621069246171652864370754914653188282705294866170821068282259700430349428748545401818945113065694375627083057054235284550898315310405697024740359265608878939244535675795992329547587331427724585743859788929055012783759712343510695691744015954084160276558439020182503745188486407938253501931121606398577611583604694258601782920897270142031869732350704584881223825539096705289786413149363490156231166787655738725166959292072179610298576399778043607097036691263404032078895372589738133407569749235343404920484828096356229182797897522545053058468833048706022354866526740993957643046909048762238796458738759856230336939594657169179216378712908389796208604533933823166549298947844630094036873452880865459864153551929682918167423494216300843175101204623427695886770583510976591387201330748374794680142366385280947027708260643475012228509569798308204651736242962330261768458753453050508336266187354268433861320220977988442819511204179000552825140549261328067455485716432703137230891274016966153934167010984987918579420002881062143219159290812047154921467430922621971182804122359155880005331275645308365110898926281470275414388992671293149037363114113715364316944114600859808781713818070925426672605833252401050453159834123118704510291375342304090377398726326603319782368877804964533652583180404207655738882472405130389761119198137140731389734375069632262548507554988929236406848647324108736224243350979197307973906074833273062336190698745908082808890115197262501461845496916483540577647644875472500949654961004819405878919612645295853787647165192661965731581205733896610766063794272322739851947565794484390071511584268168968415534961487944625799522832545957057154071596889701734182545008368577116498758469594270582088402488598611358166122993892806606875540374359967539897730659068746484011318276813013408842718699604633453785139493091954491281932391002357555665971375737039564088200538563193642876728888328554978514698763767281094646815398212658946385037261919171856272058435446953890180880495916317593318227462393820629968199381105737421633424238742595895794782638322806753212557878756118687173077402851537117337889316769742092862800414596222788304168278806481393132355688503800531159361758744566561709686687501046078212672249731228522585014004967420155536796074795332190740252460405656247852904794750828930271766445286585222113869844681223191559897435157412852818739382090379353656047670818006405541551306731070838788938384484524701537888956598895152876815162426597252380468409694955868870986108982326224745757546992367313152671890302622883758363320643883634194143032834111762405083990237801514139806399149627419286866001908119361302816586621774092216457691878967702956858978629501432159795722277495491067384828164011412323027369559935490488631281010452422105531343501793115802374666939736269425570799189956038355074549518680770646947601642672787620257139663695862390344893666638031396721189553933610297800893223266409549846545418067558215969341316761192809110604113459877236288517243687268753018185581828959694297102270721376028070873785987046994981653699210009372985804026448454124218421530401619267615291736536405616040418921116195175683004755224495788307291678874317154147759991546188174862056490219382093015041506823748624977665208932716118225087879430462186518651101809441226075219144367916402720849102000590104808318427345503111484564999440629827479805152050561390419357586424080949448997611670639425230198198798402373212423261471262341624723469869584147618638351808173121868061849452657862100883254867182985657482576929141697258017869044533601902995206406395186847300197474006736767944811064692832518928944830536652394624291910251711898139594945173120473777208908718003780769294896287144856837271216191745046362861958919144225240327988592838173651063910353885944885941931312333292305630010889491273403711060833678256741696399020914215938781169843079197445850974094865804494594114062239765350867306525995774348057985289686845122048361382567619593378763325805521283649569311714290244514209298937100217795510360429118323192991482486318715484576905457059365621204847991653115050960251347476311498307107370378625451432795252647508788920088480410266431267723181050464895974741604387946451822924767404525576439068827634065761285852661770519622143689645093304989898128402710621263711870856393332286903656549436389318098455550314503120493243813652028198385517529220325299715288106601060171236379843081778756104295034969013573548833185054851605518342483074044245193273956950308711042380445122120328336126055069912011976602845942794637549453646583348782743478526493481612487717178128181946568261735673919437848572213216608646130675260898061547858960136533225164766709536193511720406825902716182592275954277942671236689944690210798396774686489012554270460702887543221213977297702730488824096228722081141456625709863054813875697718639334241892098611353405422207383055683422921161606115058381689602823718750897782578533367768620330857843806348779521256646596465689816026512666894203641213221602055926481771517352879271258627315957547083357167797828631710075129305329495515149702060011623709840032725839107506741435634889615235762333334746845239691534529446136377594196948838230247847636570673334159489939137123248731347630750349702892578226133032303223786408123111865302564693431254516083402539679623615238624126198465745632801524350050847325043895337850191028091666808285863050227070502544378510287581942786661459529427562805724826481893067102722038889016968273900232011346373994479971542276566633880216379781964316294624929878092794800019437959967404099210059718980951347524255289585557703550726524457372262412123262815028736847254932938986899477042672112085670115900055434734246843891121340246837218487105324363842912694102499369471746677735650279217378138553602543781268065737159078503690042494889514889612213983777141660117810992273498900602483899766316737030208871151632469036731540826945558008391602670320765727715132388063657643742495260119765020053872366189995071247846570330948280843237424611007563421115942992773128718591030337009760484639718114189894532131336996227068681510156350958963133663475622880082522212651672840174540636618510953029249025206772955683105850988463994448415493763366345432273500585643349647884294408408213231132245569931907260283100058377069532344128485980574827784252136950137470563998888092789276941741698695611461976257106368717439648265345915874411835735793836414091310815510771253692244076823472038466302570914024208362952799309127001030698072201543376013278654859390967698829990643910962388309778752308482961576152887378386643377721796006259359798919942827866121982492926394678954865359594787873086865547250307566025219838105021552067708469738192938640083702663888054087902436828568791268868998367801173437449868118284166093742295355134812038778812669136618335231882497300943554133764741422758315655252313011946364442576509528334924022162686296811188855207509549961137599091461335557563085913755005231083664796307150419839121005023541756478048177912355092550471100150888275526928038449629581875223917006896707332039267240199052305017470516680802631659451876940615076242625993728867089527856666270230812578614803103140298029900233404150210556791724350493967725717841546312294706318380097654004242737314371562759726434118081184104142193955531816424578346413779889146342673920927216497314075792742027842371676239749637478095680668355899708212962218483527744349052863666496649000953856520234422309097814357931781239603000458413308742871761324484315610917075500154443950498882056718921033961794496407997773673899670375188693724170934260423212570962820039677460056507815181929233982981980114444985766999332766830697128203176604039614213666577720914304361815426630492024568803294144504329413322946711302458855734054881564674809670385555358299288294857595699151270321372949999446894807466988083904518271636482072649064554286978296406973053069329067001000676609241434519665073278929843122654840905527582418510479500138459519537855021315395800465307964907256263778436978952623134971228768084543811448601328182597492538637628158784534171379405398569674189538824077992827219208981147503263020206034158529500358499707923017023308820634959134330120524549265239800257834767961301512434622241970431716818551144119449445263282294101783108612065004987531822459253520319930589564806778008166351074287945473026906358908300932873627375654285314405671138954195211226929213221460722945878267990022940284569014266859604522824591541975886447511385541314095066386801873951706639275066649841035771406834198239845184384980402322655157086876148985006323479681735840340403404079314979922975888479752357299608236555362422414460828337572994751800700448060946072684246623973533596823665704059902300554664299597944774653980918102537536441306196323988318102894113861572580658011166327480942987763943867168954584198495441780997277197220100761616063232861704602890044063124363951023826134981081544965743674896787996885109866977720596970838777201219885257107017821308549644929083541555155465166583176881505325472617092499371064039609568124692870612349277530839060547548868800510729232450388883474446368376156357995549373183736218750267707302763300063530489547689928410697268232120183356482010381962354726831457640108974216295158431126053299877732793449450209710422288936426806241217389540146234440095517341331377974481154075670787109968478775134443347898254999155470257020989757136274713283325168710991861458994354878030158539592816400800144137860174201557978955308786731676973604018206561113245406067403616060437689978571996287776436297003748697017357024724142248780822790098662257683390446135055128883417241589397734482337464250729790889310657636413708865862964913630032525950047168567310912640501162860337625652160019017182238300839828209066426885912423752063578375779942513160458658692045381630486782070808337129414478198764180094030975234548801815117466333446206904537528773446867781420230528114915234897455963104082713020500737443040095458665434420139864161459774742480879806676870618813488386023030121800987903231781403080185818660765192774427331514986099954470124594609234272757769574977081943079807047437496685016444021760052826256021477809750523031430771772607927494580246088955027583021970722726101850808526197936042243332274663567366964539703909644621456620897325641057006950233076961748172324527528208604958607446436756458663313933654701334678373321501576286071967704344306252266074921521109852383824285283614433055492445685618199249068387598604219714450644859529084454923282968845169058281540962600965276884044156477773329112281916536446500659043697543228223811273757582011477932163216474704848438910862161560000041319266080707805846463253964713522484272460724468164867303436179164903458392169717880647844288561480138171847384631565222693622164453042198627641037077350560868956203214660596004890551499232282272294343184594905555471000934820262038035609922831606317151512414344235276324260250399541136189564957228076161644303071084869076431358705157842945531149663966909345753829300700690105734597914122541679051755658731993562331956178315188311173872710993094356326810766163999413570428907118645972051130284270625191578053299846825774395758612083735834111112682400584999066575001868776729603687291605190020534821452805842118507500715215465440229564160668885894862446100954141103327150573363653535686753171734899742540637093110487032900721889353353232251893963965531980513966270651540040510967504109959826540993958364486592429509063855628942497082569949735982964548991422241900775516175657589767540518279518962793858203328291505341792656841393664708945849778318909026951895647630418596932367973614417271454680553389732542577936437360073363241298546427730356045270322164077924358859094521619429323181141869647181881764653013075229509026157575160162930537195238180438683523734338230976551022048786285456973348782507373967514620288416565507237926617735681019967560287915412597051302932512067643846513406290720297358800429179966686818302911533365087445407932395824393354651452247984870943075681998616098349164660790963552499464936557094764314319855435855798634562878357722729837766087181039713833548908725275684452643718531991802344224802934251832563194009444050843157543858260925779615305398468940956511024606086953829007190943778233564994533379895164547217307470632517391418532036680681718299764977115086709368618482679322537004401459597340275101506722603436013146686383970588993438012022871035947604385662402008243779204528264504418760340274698938000237167359381832013711398696710628885114528390145194060287068662021802677586158622116633672060229138808587656029451215858077561407015500331836920703140650738782876571234808970725312276626592414382700839686210587276944819849505578608486830110406300257047642306343299826792351123234149306120706503314885332471907179347148388902412281489133327788345039799242127976291966954879155017717679378695885411626893330504017147666197231720962019004352333338633761536245288802619736745983924898337293680812749806692105492547357747553548550865319006683825698382341129834031484194692628523607870851252765056523790031144403269278103359018612617628406483685269004416283024868129370930149728759828149899712868024161408053819013347498238072218484000924645494142220420748433468043590278735431629998819777980482166679798128714855943429820688523779558248309241255083998578973646291394953815121436743992678920457055166090865986888722028415252531378588139190850241385306227072374032931265420572505377157434199090877176775274329051959414427120066855094581132033806831204571343346811534943658550729214685092002959604104737739385578763369642773427467903324316062328587892748439600966266872397130225351050877932727710142586257176225804165568369518438644282024369851408939256459904693349783547896658782180507457232995537721913951148310640561957984690801312406925798075109702895795676118262802160993881350113649506198793425839274927126802909678624921204179130713138403817472333666063581739176172022398237866862547312018009336243901704308490161086092634514924639628974756526661761906606805684476548527014368454189086820761480685173507599884387656233935325082268568890450404005249841007571085423363875789272954978008249632690850601928500687280332018400815037434351726790846478673696000828038050575276570233305408047964762976601353601365609471452368548489229042867774213986825887751346546483786126201470481727207597459817840740267139353740275157008024819179903301003936469118037499723044610860180808242698956152702167411828561354597548148815799211473483154303137579738105625601767691713824899229240522100407374427720780290074305814186116171545659266681877890553552848803772879074933982296878594596098364851117661241909844254786633085182862200609024926699430950674509240425549665971056087430635254982015066922756346861692706318813794334919136221621809292802077544794585344089548436768384717470539794824204147176344790377577243450417296449296068892765243883042877699392729082352020763345781177438997450441218972234262087027745243979109601310688991690188737226719208757465544090002510983395350881923572346819592088717894136014142939830221297060557389581619781253139262112719094164474463401825592396749105352785828542671603903072865258487599913924208859671250136327225050013283615028687159492765670834006575815451960591685783764655391715788042108636955052882769274339930721384685443038774329562716605231073307717204161469550381343888617728098748501037065086332814296927783060280129462092199890082883661692753752933956666786768490893086743338814367156745804026623748152250401885540537776659286340890867815661817992138137789245963453673850080380801732227211046800210758096682089030529309180971326888215523069495658893782473679746840796316890498984552855382589333435171808772975114359309914824522324612132580513238364234697382852265080402474469606592738639947387212934441837546018065879257958322820261201504697477269569611360500548835607692677869553212514077092260800003059171712978100187921804177018697537578874665637191691036155788499759465105447499640575225106953817263563222978842201718957239264133184214937109166074400710949501009085611869603299054208070672944516666327141814184837257715321480208808627509785680158599880233284833723335884438307924999350845235677322970372572255526691616527880308705437339345409147900568798576760876127811310641640275103239838726809833040226674321125958477247664160306895441367158117913773076723297777551738719763150661369192597113275726073554832383104488717364062482942903281215435615518377124642548107298695492213796859784090368220435615415933122218930483794046184132835735258955309292336587488812889782932862385566823396112462965369492167125107593395289433119382663530589408159234150148144257453229805015093393363939277652294122193426094250578152010127241457835726750511418416990700162656157778891136050374071411308081604956292128980939850882860079355908585255867307108642544946520867307975372096691395812416092199494728161243618841792282547904388666395045892462020430313081830741080278962084632830414764881006990588991288164956821509371935419524316923801372750889834404862798132702752421825183696075946502311838845192690675463872428550851487045467668779437971604947857476940214412251005271353315598323575732058135389361502147701716963840374116400669591261502295065568378561859497281349905265233206476159515100466764699155357015141299157077862104106706274181739579421635114811973931156496094379367971304011779559332085255878080657860814676859475524193634516797981687912986279804184256773671172077859986673196449647411117585333707635800031040355860362902056239753881219804352305909071568951304554530200051046353817134420034371549871975888365629624957638338132178062001060495092487022487999157028876235883442179357478034971668040583847065998423316801997072096061732713419899407820785903804476249652562286450462183853467113382672877273730756620106334036135049226878461334054884744944144769572851119026423211296738099678092710835125860679974839977697674291746396732057259253738042603290441486980501413444388218572790565437207042791287994769367746580291895337813901912778124971130126292232052371531306153456789751779782409879852027851402116900720287366913379321891346239663079096494404950619986785916191410587640485874227804606027837103391003406272322023595360285805349213619976419567209889048474043861405046345967094833550413091147171715904317333173416913320202707733087051220880105356268334665195320152996035205768319193819169457625654922706539239575853521536201776166969848758870544901325930987401855932110259126435848143259756869413993716309839104057946306366621209872843677246585707195329741719710075963984788185935385109729399815318778590431855778720840547505291004716956343854213406252144072478145658537081747490722716206068295034001370833658342320656052603528824783309539700684232246326341856581304498275261484222404650111810079267368046518286195980021221519162427820487895789461291643286789754064974599054893553256363171444482293539241289738594866195876819500429473210417230350134517948508567758449355555410465953164036837300756872436866246010397696376036847934571828450032774633069817082113162568155435313638924547937761458806064110863065919354745175969867800469245154363917056706354856528040748150054999044069524569701073148243459579975024194132977410237401531296340286331106504788916622122472724777171198535291428072609516538337058091151219187693581535553364107029226184783587983764228349499518395260092108572599245277608453803685997626266840235911927961672652067285952136391878849727786901330822015821409074389416734264670802218787465658535846911939144396966675649856093507520043008069308267732203376725633588470999264000722039851931624462527971984960317840420857333257408112832836861525677821791817748937679777519840670776165764478470138281069681519938481847111814614673057887063601952211482984308307517562001338644851830560579812647050583681485621151449378432375995085372142691350271637647531283539859400700430209312867052932100528468638576982552810424337557688287064984926720637932299726854751964468985331141944123153921154015668029887224131651199036056134359867622715697821341048291735465644002950007920065285726578577331330631389122953034938485900469725806460894974061237843510376813438445198835562969745964815639089036426654032683075766251352189232375685570802124943481677851698230934197003973547860939182679906955738600888366566556686969317052952735731946284076751309847710108314757668063741084123611337338737977313188813770935691059796457465303273881336894796008622286814615903061429209180650675160480502654058283077766296815954974709052595016730754096886803197643185572148457725739946106671330419185710254754520812432270720835790698505434211357127642855024509993722245889089332321834623591243484784912735943314710536838382400889387984515940611254427402031112890152766182498316723391428540011752687951538678572360561816737363925186059651555642206695082111393800770779923838157818096930289376383565543558950924135186715755721792977508975996563701821578502191658059350539775623504324267294878619797948064925991193631360780487388244020752181786802070992182342966056832324703752644697407329528909559325821578661388777898965415338823415967966024733978508575947423394753148984962926254207193605453353901877001770360795493946053494914741364682862822938441434121273232558889133170500650239128238128493770394638272796201809202595939490244407220205575356640371391611792333082246883902696328047598996087991675153458392829954762732295379934777539989674368706733460762925693328305348064218558791091120085968154551194376857216711715866530662694644147217812927214312015653437420964195149415735615063941891541492546603789141276443520155652170127233834418683386054955153866254342917820488288539817299641518001505106286632383295833974333488536802654020954042882033686312926004247503090016030089295954499352685686906149432166423678851025793291073029679861951763508974375752154602628939409627102002287236119532553508596715779784016247838019247636046326973620080347679660696949347604716785505213430200354029918020949488168643106447328104851142533547020737938261607410509490645390526053651384783290040007689755995211574697005703381220303994690597532846623491992340908230650001747653345206762473454882845560592226099575777662207435223711528613385477155177415028685354444586885976485688602142474878318255271184091696441546137168385046630028138840009816972806356104568673560812665887616873915767441458804467547788132024216005143080317016137930671967485251285853320359592350622991891253034633906388174005784847540390768751843294044942700328090978762966070797440063837127078406289873004169056984863007584404766914589782015413813455732724979714350978274693672557468736296502464333535211334549915867058984908043876582412280005228947343533418970221085280246536363412350498843735987009254695754358906162175048785946656205383151997985462184551545123424754047585942737565058412131545411984719808327784186805861827904898917052875784120656244220926370111181629839847681621106339038174043059186160426541030231116983740436956816759472717654717171444707265336292653791413975850636414835099773117305636024029382198586950097025857222824197305989901697727262125630911978925501463229049273513551147980899169201988265197559022925540882786208910488477387161084176106752161786928529603585851251143858280618889332082280119535939872913062167923818689926994121974639965587982722975866596476738458491335327386373419595025555695090076934055963883363191965855411202330892926465497575452339755617323972898764115619614077103882115030127914459991057351230825084950025547335728559256466286550996207520819749508424698001952450960033972705352132753120474395926866025845344320764356604396032136821431618287631483767066477795179743672728730400106712275290831686118342248928833983652234609333170366340883472808937577139600155743441110000366045106905066701216995316471000519689686814576834518665832145015762383514082187211147468467904167045108368660320125136460268907674439615492662992336377931879448413751628816584163125261925060802249550179574289533783173334187705621545438326577047513231094383113326393336323907704410844631776406248448216028537123060016329712792429330656238460450005360712259064717375659358287944134688956312345532001254153160395002724682816934129755631990775803241309682950912581604098808929157218313966752999622349524519816166584107801762126279365239252816498234457532519326790907028050216860237299514118627283670207805903033511993351510017228030646377096977636938982723590311245579301168823961040217485154845488898301328434630273960221667243259990798259629535093482204100673360911111873042223470063022696758598674945243818918354603484979092973936422646514476754429866550338810715084815308368924477180780559221090383507117061494789926252469293306467822675617826685972901730575878954238336334645304151507174037762411721750208954042605307197303748004651927643151067283670297879192946316181223624469390386521791082351681294819079810177394717822356704002735496378534546983492784690187502471640310242267784124764204335151414049273417210880549818864693475621184596101301011503565143692063470357869542714529251355657163432919024607656031854680485464799445107533065025699663562925567609474961652843810120475486659729045142343505420434899116493360511294467512438775624739258825974058742275445031877300761813794013930517982044423688329704907352108183006207872888152804295845090175376376025123363861848818915249461888923607153644205738700617240365100827433074028279269560462092898218452803858701981122970338825970508111019191881981704743575949432652096369447000300200145813858146056365755811464720745104889240420219114446636849453468310261472555788159584156453895724226399356810596225474950354460651366728894462135415195755405300705883251818781499490063557090139976956308346868382527802459210494060452237309702356978018445683943859417157814284144455907073408222314987160863349737038939535065671134202004488924383884338625588666550057340629603556892951688721104172806174441127340239927020875939985246608418684676081943736460099146489308975355532649530996787425349666740936949991715247102559528878456669377623459604870704572151296748900682618614861081216736684489121324579242334910638717557112389974174646367530157961254212207069413527557327140317377846390003913609469066635679750169512606106636943075851638325841628906152339017496385879571131034959021687228643713810303538372184797273681044973587885329915570073968911101899478342407560789820425261692983192138028456515510173157873020467484502528416898937147053441734918843577275487890560488239296134067342920948944068754112958423803743281088697835224101327542734965635516830929382131922264934050909647181876186548927150704257925871120609077384699724870486648292232652002665794736163144176607930829120180531349267771745592575558802882451435753696263151146733728967194506718019304456301126622680244416103529053826026003875926114087689489748496194070184899719428767481352751390159948804982210094583610754764160117863314409190789629903549585401610799250486965100045183158706968048083923158440086133871453445104616904692351579494395736451128929366521695566738021024994937913539623445801119812081753067255728047069634333201988426103015327840726828458718913630628438709577472856402678752291151678598601629275062967324080153199369255672845163628318632212087211804099281114124593848715698793112527934231551757659049407723605001460875152650920189186776379413330362463963673705671651583229233712199225375252539013541246043043757117914131820596805423591711289930714392156175270059031537170531325188256649362832511995731142599574894438518850215756515729969035514382070642354785587910575845664817171031858318307987986237211717473694005089678995711997081616517990344721549743063434904914444879922982604720348444159444249422825155208295986596000379952287014965882779373434955595283591181342316667456939714910156503606493694581607017744786235970263294780569724956426335589722864206877223742732333880385673584602248599177976611518996614809345030498968970767315337365485123347141822791123238079403541385398011757538321152181853698484331888535090513909951507123755567848571622233930117503331466563524764805828732532173448547570047279527893647950604317341237406800751804940653986617487802192460270573110576240478264876119013519453054626948648578717189823721955107637289612996690739796899010214066179645920588143456667948185601089137028251368356183725573214287754968742181949040888401852372882707232513621377321882721824744817965615932223311495360769923321459430565281747136302986740810023226585164143881838236130286927722561221094960796110092806722370774481768433561915841590525755293760280636035856559625570470957595379539789273794403543598699587657914658039706897001578828697272365213203410684272356037993524009251104426995609671148425570472517631335434713972561594339756228508485558668414862237042691475025100459204120733052646250087066339637243758280908857708891295845167746207378147253515898304131621905561589894879817136665568437938914286038912665125750654041997715173639261048099628367637948720462384660996740899760446847309337527675140150849239234686219105382768253293382379502754017733665294972177046347564010066646791577206633802163838077275591145459845889299331204483538563704925878098121308624413532036008099709971281489286491535669359867875381643468117265280515974942491009853913463340758503422635937023021664841843418041989175862843944510218794897426139283838323332966318982607260008208964236175264070536051389650521809871836575358326124559492427427707889159842666220773310899970657057822334639806173065383644824662500467880231196257373699477263696136006558466459868174185169024512786202648142373365503973496515998049790739518310406664436400890742997847780905838255090200311057062679467873535978129805193089749958456366733517319007365468823376501940846981547965241131769858320048754079934034676503109033528065983507009084794432400396457115392903515169173834641522961918299930078366289326241454028867335013830925016792250914250379429080104579141916550822007356751142311479371882050382630675788834259235148530738406784995070945386623783251133778824988099160879469210441955585273773472364967374286720993330613579805953991485625457419165635139947774894956111039079041833526411700113163389645827649996803432013733407653443234930478605221353291142787563934163903662881309625626981488385828013638167169556834615504247462885775269025138084709941898410477025093332905243293550084245802775832919494220248752305695315090290160131201282877108914485144341236390267035695653681291823616367222520366027353416135265465301835312481881938041376644465846452519817430413331638345488501786373009115265728981293311905596268659585838253141330670845467087426912557536747148037464205030487769594656828467277342643610784903324095586928785936060724599568581462111379271644670587681157346820796692104712905054509810348374654474744458822760404134953391898135740170321634155928706575290427639704837025859139484901182614855848638826945228040667137948833153387267112509606799083149451899148870357079869590370179122793380341557293547674853548922340099686821014981429768790334882419257546495560901363927602301744989146366486906157100585923060012803098137449829387040590633120606247962274105826011909878752816535240022081474679009926050979054775136766275555504952635336934710267323753295745468549268129823411392566921520900177116058169785001829191964050114141925284512700530714312879942623353745688411680725100695837880102275700296904829017430944780388686747062066452985249710645580190844494776500129046661353549085803200599090125431083976583312560300579711100425848735557105938376429463574564445843941152119520536992919500457282541715834035137020677442945792214222593794105290881664288384387227835883880105847547981969804610705604270503678740518628949712722885487207825760313717663280651859114287479572310513237665832082444557859299569615773568116523389987339551915442693842650498722445419445618114649402009355710910500359625366999176972825112463235573519553301009179135835387630124638622583636395414320065490614009394749333397063037055367916229961116160198783965970815619253248290878573096708177390907011535696369621888146175400589871378946811229748951124078487448646582579484046336888261971388041792601607098961616640003304249917628108921135310678829390815676131251115012956112816611996844418329668414073927694971109658277524478578819910934269757667153334325393386292761481039807769350709685182498893632955774977731287215525315907691490127047520812983717455563854025620136576132209294157030059930810197327313577821571551682236921390935448064914625821450399014259431557185179996997882682172190763339220902854371590024601089491606375157577130081499891255780415094044108991754320362044533412090822187964727570952763553040160194593960090012851868595358421021651035768720581597598816942097002071734407942378815114189041520652848195327285833858092005735381631345548430180971370237745960059240210780067272241241982833342080385213302643718627823341359661961722085149426925990487956387588496039900358980198210705563469321257420681018785292389622214463533778242221302929302080472069130048406991814540629323787217287574638457576389895098292797865698525286002460851430296085058273615839807855181602359515261816121195182976460804087768708336324640248435829903753286813639617087057207922473186012462295094164797082725538773838895085267892752716919563656289214711834545100110885928918172034783333293204578054233441347875906563225054287200046327596189657484723400010500184131720363678347467816527667592751515109339032288567968210499156770435379665482596260915483486469662693707729263711737962381994956570155020650272376027650900006504847137143963330220271403399141062236829284102980019168798507432813944668372987505799488846763508317957701086243783399213788554922248014768742257061690705230082012529561983880777806346850670216687340419575365692733932922381329054807659898250438321033070371501524199167511054840350419304335033620173860608882229705003810132032061685934584968563944076298344553327419201548218510448995143498668493707462316975445057929050782032930005623982850647461596489140736683193633110815943465489091457597156743885266470199684731229607142759866591809956861559965915863309068439123167049096655314800197687988837414111350757784661619155547379847258011637498153312032843400842089511810570340946117250958987560678005191215929519950581521486405902987189336216677232962262429732530134598703228407699077841903000195562175372025020902305454289035056356478584171516918678041922981505343681730814061684297529747749441304090885983215011537101398361803635197799409414455811369921183509949839330739666285158873576064543735293122874397173204316762933881596111319852913535473283892251056696163551341342882006682241867966835040792774087723298935024418520934182504079445314442472858935263199322316534026979680952607644030662374002946685516367794271291353616413191530763310788098978077776655130676684148522819787497797801326018488273538136452103246647476336041985291359646565811891467713862653085718416276184708963550775429330792004925205441089366766833136022090843035798978298376315689394805883034560648270982623021816958637945963596609648884219809179903343928453458544306411065237225018158080167650686002514923223632645855357415005201969427504253424999501537153523168309264126161485206322409151852688290413427042593513480683460450542678578481912576499973103008084835302555156989920463549513392486740122982838242854209915477705764608480384975338110344761496671565223675445256626932141673517837126764512845908715406770115881029829102716241980709300702447162074103323494700066665145451657534028587183031960717425430256286122520355817001851946848144876404791883273636058301062742918377131343698311293902507595875089624782333341784060118177773033080367826346663332943443594851963727790532680019928925911563194560012550305167221355901542261524805384575890621934168991650428769439683193892282094300623340846612406718057991111231120287630868515398858740053799076652825355601306656496553178129012559444823631966269131176274051457401773468053752801529590140909337852010991182470194289557476845131016696016278528411177318478642383936012891830775716990025692227009537635665327963280788794886213988801591786331614306095929061057705056856481744007218366511613963800859693194242291113088566277278201425950111130540715033145379250746984079799945366818559726041332864799996018475833933098810667856404894135466392342729482109616098650191131356141691290685067676679841813935666854550044178633863365597905277377320241598729913801312084036694792241243195257328982904716527078348008472691350131484580447089989334042920876009484324504621211197673131676771622548387583826630681806819593265221781903025155098834970003810076817184766950055700490584792875333481906529651468896294514300279547637632841342918500880636975121539921922207453605808439299018816243715285475750283622689988758407538917125615973865746423719208743695251301825317280708235785317466422491150758508665709086272976186067397358977089525198413339717058984069964204056516353325095255775050013920854802526103402047422586200965308820188909546401167848156261562060955349348709888032954991421079140275467943987029457654676921352817593260305132532016640062418970523111359644906510091205149357235130147576446582985860333982077534703122531216116267331832951230083654880525986501281659036810475367224609842534834440257339511215965628853753550473415108687175629921851342838876859183447183592965146956662328883340690621059774851486310903962002532670216180995813583465121363659917303832091832319113119088745160574418733095465307036513711993916978425435286338131757702715162018388922131034039256578394623679086177875667799207347410311989587180471978668186263052687628120094026438714831409701566429723634500028991683108208288443727773697238643810663511686520712554123731507235077582072530517595060773425487360826470921344497007607208290943962018688917238218769758814486768245268253847896965288522090898472416237354757784455075134575844303998148336988160713440113146436125709127937277671792164793637538526178340363505346825852131502500390612394369357068511340025708528891775800375378529753368429755852647715062784479705679901545775912767175624978146013092075876254741696828841464968580895513984691280748968104079054105392566992478167104832686325605061530969970849940458598864690120685399385536010178432166214451661748807699799543540319644053281674304114601491334856278620436972246239751792803834713311495465408916661538583199776599048738522798593447861956628798400945217013859849324051348140951273829840500243191289007557958164943697962593938507343605837725356997308570657967965817748479314590529917827660770489299713362147140702424367569856678179065837647025679540660377477037516907681875578985549626206391705620615264199649911070823874498558190994010013200727655548102866195037774421507012643762970213903718089517305301967241963647159219839228815874589838433846267821325946530443355514303911611122219978585362165129869685793542434997986755080007399496056849971041825184869542211002441943913799190072601007642297718986256093173841980220804887385007911838367577053199483691666501858149795028785405089111357329734344917307302431701665233576015769057379855930658304725958690992984085355881126322311068966076206678294149748106287568959992425635016933075781025472253375959193546687354262046903360588996106468328557145160473758126978762452006801952148041335776716328952065428818027721000403551205787880770737740906451595714105553332122548015516639377805838224308872347209043034514049876798290154122725896498032640876489741161136668349292593712091826976923183910516770531758849141319645460641948298297212360247670459532178063192373237412541879375925270739205870989194695598483209927936367143868109360517069628562619363475574557371923619042639762676582155356182968789948262476925759207766002657068332733684358510812683623682262074113884106719414576757830560987737391494195038580796254023704589765050154216083882508870943684214088164689584456485352782675961981966331029845199513851525858564648824651156042466409132460690399244849723470327582267666288948527849963650989029868297700581005497063328581281426896104990985950680489199015445873570309514722925040608705308257917466280070165904393341822453107571570191741096582707180425810545567813854981827187668759427745032428489613187161647381373880449609212683162575856620217992585568118478331598790410640459804479270905554886205494522711350945104152362298642106907005329524819113652118966335518998611595821634261433405309228908335764328082824925816963399702590687637890608598291343714611954474123796092141025365695950009818565732094479282303244123412054041730491509781088269770474879286489237524444489895884028080130623210994119108846058131572477438609247560024601756316679034313797092095836970313004075675188376243890592437418796681859521151969725740463552129967838841096369670353720735192255671537535614517666147170986935004109251243890464354636672802908910482177994697357929274996664305082227856250350042504619882321058684883104561173927677789207164918815667081498779281980539600087782062226309690570028687274358733167605623432497735105432452380055335061723649112322191910270373322997245415963378802637849169523151146771113536750858708703440169645664010357172319255730041282973010545293621273952057675031785764154181593105505788437152931294105846933095288241725244217318800099436456690870248555154155406959073946962782943950333632963088037349218218324063872261652261522520343084276459590507451101503907641895280066725639951765465503641858685910645092488600221813363099725893153167319294699111435660668295358986955682392122613324546068292460687815054084623941774855972319826886258746035360969758238004102133638397011051790580866011657711866348710141954461539839973439844988353323729996689953437868423367360255375896292507503834490232330003949283844987676962551333036618887071659212521268193614427506593376884129361049855915101136709887828038691275422147456083084055777144083613903620115210767980505187742203748918337483753401723208670827296342676343820736713013274002629909605706266967922071191951124592692376203025884031977319169587913302370065241864967950638053444353939784604239998300721345002744709510479925288363260122005289589923838326074586973624413114633423600206145106984118712905930559288541702440006459836078388161557498431178807750654717932679110239994748508801863544228464728877264635291331824628635727348752910652714941307633006861007175564090540928851001649525267566772955074722930958741551145527775572115297857058358042173984475911851740123626771693188333332680229221856232014126817310306185804968267034988442569541515088738208954805795513707455215754490939061742502948808599397679215665290256061108925158699563036100759618249333555393012944193432827338417967684318755893703326365673816655115378715454137971148588208487377654091137921084702202034896178793258042276579441480306997511833036545776692884714071837463783659304898065161584417103927365266909098484891429164213607665758004964559440079690789409889112975243110247442671013391371295614699205422276753225484502627756653547558420598166195813194753101219340194961307454619626378233227106514969196960038525711365347937800869016448497202162943448950107995392215400091169940865223292103825561905122614684339577975603430049466865946177152332798101264172764426255713277497425447364899392364689562444692191393170686871741663764885382225112840419249044484818600479080416433596861583049143080411006681127087927250523976126024647957758434605845473898690251962704733280132069363130815640272160838184679181601476886370828311534381111316651626926733306860813664678999249718250561669301177622538606644256466545710629369765881646306384405232258384877209181602849219036956256410333100596782022482475490710496710545862787576875804673705202544905789491385718478458583500922567527097418954241636959473043544011039602256188800706769869526781521112209011840929144715164381460096728404162860041916939932305705334182706041654136590656980312096744167883106647919196603588710513482649126874365229714196424857396600247698560043102698983135472601363461101122150052888805443442265523953585994172052477917075191260109742327577016075622252023163598582933946888463081184982307633041618647894125690653182357031062597888700134084590454174977609881195566711387838533279433949097345272431709869821203694269187833237189309545794101421007438831889473496492640270810833303951571464021452386070053787365522710288683393388256599422154924188552156451824569632130139871166069872663893922496026442259453089615334334514912034894478549811626772335978699781712555643986574533686552123187877048958311892315078842329738916005118611121244985026914542929178903912462118829360173455612632303035711461810488899086932145505163367290737645783817051191168552789281693553691897507274855050883013210838776217272771024244519396231510654839334075640094832605932497180886065729842798395650740505378914411254286171701824446932016334924369610670793540826487748342894845809639650670600517391226464970024273547670981874763408693571224262312869625419133514206539329379537646156158332767833974419588372175243827622060386972962747105331364752498650657207961045292339928794245903708797756843544164499671711620554430435944587711068536794249308992510598105011016099901201070417393110376915657580423567439764701158466431061362397239660355409460707790305372074187117852039801502832775970618806358598772881891521252682386089808571610957247407754424600175437067086059613288546075903801562204045483191910269011585041120401565942707543926920028507541427544254877683492181113055052661183246979195701915019798841133751016064996027454286847611821878805822713155378748848379653742299997956424696575647056234295236474269445343244739255668779417619611609683843708920350555972622432909910227610744657209506518435237139703234798537073706690644593694518258880819865035680926924731481109915060266532011906837425721656613431747176556343029743322853254463450537134005524877701560092232906537781213998965760219307098860592275566094082905981367604303356621356738235937980467081000993048458438775449539051885669242084541504099337611136243254559880360799197278685135626816089097014617903141524674100031366947458868290315968749857675224885860963458728318104827155710190712844435743689563456611549243370162416962168117355150831976306086461310085031895067113498298745949195633047606383942961377836167672905197628683808817599729278265502787692365488106966803380847980090927926020622180347609562926662513486762954625541106222369947046480823075596143249054873157703608164032330902896891140011118546497419449491720920314452158841990126281145505711595593965058275742259733561350037848876859676182382066278259009524605320111321181896216199570813120185119544386809090534895158192766443836617424869021252918004565577103240362389062346598913348521853473524556529759250706901182329819177193806834295868463922935034497612694355009104764932624810249615641407907636632798024346602584542602450645821407812579239811952030110368477746499751136547515070260905494517042235224985961521546695212106134675397223637881924199525628235295512333541976604731395156148175036211713630139520423300284288432225437934116212314931129589973403204698763000491362541453512359253414258363005070613418803836677738877808910359722041182260393287996907310602818415977777899517199980181499958748661929267008949639675146090789993934017140891462153735906661472738948409442459330258897481305092449833104251697573296402522968246052678769310631196542736884518147868367200975361923250879338668983209830988078029380506584598007721245808026574061036973212435358892919468740468827099062965326983199798423212296813887832104100758645595856276274137283214495757397596002021585369167749577430001235911679257233285063425432613029988239491950934431238095669298195446867750870285639369477910744517981555130484063033563256658233430332074540165304630575196681848013079133638265720121976571339673706831007699644290078942251685059286570917602495293886952243667260389105772648668985700063715736168894546612761680711852138976444968478478796119729483903916405360352435718456911517127758564346643957389894347543862995669342361823989163377960489954213122002761335958378642012876410582879161822112877634669029979215783569198843355613338926970682802041687458344911643768418655383467464486198479003059485368655347727331188359443476718655717746342429147584325627456880777326279142088381591553367592147934014384866979350925802893728645843428022443412503720260367211657483116082490853792274622812294046720906793916747575489304031884395357732120012053618962148127086312319210592521367699591653079244009038250275881659308733028598570295127071667294157266200461224926884865752383632658728746164387285074348860683775324312351773961510758513271463795236793804591882211023328370479147298888199770296503636503220904433361083652833585248993535119717642497870221167231136859852523262514201967559773024472633749110018812285256265511162424169548566376587308907242624012605076191546491861337541366870200077811060502865652813555468761058204565351435646243439137301949663722100444307084045182177694704653151378447420731168307485050488272447612301572044370418127325840990751631644949153643354400692299978956368341446641495975978634362723543074343909229295175454806964146389546127669767223319265059273654863351781266024606187605049782055578608159343376885141983871328062016738544778299337368036153358918668397817286289841830087258991206864408483272076138202387979609233046070947929784167641014943563561182032731542925833904236536181218678574157649404561124071054676666412816036856528458672653429658474133766244146627536137258827397979740424688896980624001763925917423347684251701268321057359100655590441719969221735547659876766878595861524485173222513443209751465874754793691963645619221490968776978095906860187016166740741221563497770914715516803376223857134370282966422154511505522455011169463003109117240945778956507411419414750421520620347332786261268835676808335543694357253605041247065741482813761804806327149018741446082415135324410425462398360458713240521398147736316805421809335526409883814899030820111437603106962394173629055560985057559018492354007527465738973794926146750092811458158382293634271479535423066347420338833268734744097215474134740755407752513946473632772119660150831257774346385476451654240023799974714600827783409686145437225722748565071349717138534238978142748940178220447019262350496495699158641425464824468983551886285469672705866839811847198434916800785908724693651448476380102989457759277507221249552309163293641537710161271883594775062513399929695400858762843200769406512873030772765276470706800441595359970381866541409604875329435370635832265087569636505024669953498261043783941369973220872436087979799990802423821734640668425954153259788438733598689529466782257688954049924545191572653024123863334223544842739959413160674631352311125068973238061298703391615740458702351101354195416204458583986132112893294579464044196390735919101331651267665452165630077472943350639097484421266050319787076571805492377157895538311701374662806797061016488811791875885128355346734717596803245952037033222825299416431045982922467896251802984146195665836619476642750900914470450159029765396965000623204979057139349752157561906635270050425278420156221913639331685294614848445690329158010102198628637943937616134973490187555498323019898779806561235269843481854612952725853053792231289995782091670602037197355831656563898916752051681919189486147088609419731916089738122762186410959565516997594784009696250343065899557216847866767317469295969144283863127017934007989308841811246273317627789504839054399188851890254575235275088414888739887422951262931623166191832580905861194946112624841993088629675720514978811121690999510815053268666959388273497142374015909583729609058419625025217298173992070112744698068880987364296662168517921475918507737679092151367265789483593346117301506838644968326789003165980491713123536576103061956700334528957575520050716133947265875811838741540541423902117892303314167494306736622894001933598956738928937566884470609138372437935760355551460376252528441947195319417708633026998377745626842509637044894886264174666684245987864151171143786618784788842851247186830938955448307750666306573491011229375520379703777922490809980526071386155965917941157720480402844518547859541037925268197024394578149173062269160193872633660042183021406786576620775227366862833105404528115882528359659606183307816598427149067296657564985731454497902670877208534065926137355110956666542463013171203180033898231351789587503924299492677022623615460373769256191041539186101853325213765930288336298331572180105838360694271663546954965762082579655032352472249397484035280274851533785304011253993245403161455493955242171927567228131648392838319632747824483818494584201441823483321117904848660669459728060888893595717713692287217458583422066432532987359659344079370284475949391902864121802390731250502614608419786892613835049105843618938109442986673388798526098518198667174804613525321220782479019556465183940687263671172803806400334968085392713677430066813115181047631697337341767618212717110595170084035507410984669456054259261976141713994306434061904752859203900174848867159203449602062594767359951367630825364469003027389997029427999500144193320751888323729724717119144773218070756590409033017140959436897103493833904170980122761814522092562428687669779135825849144189756413097165484893957687936630126100614199790584022487574191732682374268610929242876615891294153673005291671564918122879852888885840273806653200740464858655707266112542277904468342694390882810869039648078715537871712658661618031969919383944779938521817435178753932522175128963319476261975055295970108526654521873145082773093052622442274621596645461932584962848289904947991523119249609857934659924701288391424779212531536553457189399680627750866008254508041630715199658929368603365357741585322979953359110401747210378949478934641971012170274223677575726408657734261371676823573313100737647086656964439016752414682528562683413331946517518608207733778533305776784034384098422313875608713338293238356272479921969531309268161466695024955185629896145708840707062216410205338829413504458907112649801235559055610223586037833543510352688618801778984455478944359388238155193214843760464550223212488594082437987981724715662463741744514008538016998649258799181489580036080098075149835825722668805227096874801401591611217141529995367367732370905317481662449425877270458010312669989212099356264897772415984614709418432576504916507175948459307493795679879019066249413118017896404290748694465734304993459764448309268271809896340136839516275111737752039481170899926398171099841590273037802971411860660089139100099091588541490752362553756210867744419496436646286947097032143579960213103326303048579546548620759696786081452097197907353512687186018583371438978101219244994162289436767080494280579479715531992670749502643085198106783031118794605550898950309948449730865617829559814863977487307108704342232473904046512097995442438827170256956499320298579079939167397901553718201287310342570997456465644618561872011248101547025955312278044900527111587783642196987719083044043236536367680544884496338269749148128656189512635216364780008607292697195065757971128025518005313461648289425336787015458667847884021984439122330569324015696026843931596840695932354156421525783088284642206828507306272971624568265346045823449827313035166276371462522510524420988491952770584203178413080563280035783514690131348133057878225379930455526459207473369012729494468369875622507710609184646446292810674612056640568494108353827520142002598642278421568297122988090309165633125382252011466571101292865618885637701361187498945205386308792567252737936589785082604242636703928888682585316239464050215203099188224691549715836322818698057237387263152848571510280607642221533140104500499715175918172873910169012930402923620192511009686812169494554596018012360767686072485887279262085382655668403995018839386609569228434062347902949846712386137452166630067018682919521645885168674603803442177465472566417904157802519383266974064947110611212743700068286542602854395360814096579618628487346225176508571668279300837770571657750373478145331596929989377976657593151138225347457370794448661676375753823794395914246780895775988708479116376076278958371019391666036399469532088731826597751872353854222247472396666553617249711672648485903731166002931258430466932266692956808723785807312144854182903116257887747208009941944673208248810075881924925740119378531163801523336150540643514767537343229627175597360338963390511442109784343268438520694056135692874727343739392538381917086804315970187568735937604439861830645393977585698855997362390944006758581940555854316913515430550214810396752901381430586070623465009945622952533469000504084195894137360623067433505028461420678550367578853018957565465335667608940042380109391369443802382765444883067332614423086353491058346599017937719031017249050185469208177071199462551979671240445518893215526226100719254965846726564368449508184219047196401899552788740706015235042953513800227432644253778164019602505748388329191877447255307371069093784226241732020031918011304647715756971672705442794846210553098588660322260724205118008612226325544725059786381533567761036827222694131958530712301228966231352784405591911210022141362288432677212552908928308897414420032716620975914976937812292559303318333055095276918774715378402344554096470241923537386069794688851136236332123342365589270166828797166418533685490498042294582347724923954571704556460151597178335746479171894843191564848392335861829160278146186984433513565031204713237040448763913599433304445577394629600573801500553280369893692068426754152592211711063530584168423426490594861122926998086354392950727531884496218213218817725860072875507684500896188526452046519779028014807001071126869275357344065849109278741972565485275499090709992978353304406878413368727541979697231820211249782753856990929991193808277090215340896266620522714388746824254785166327479426951389693026051240315399091578754544204399288121208769030183966363151733311783757765249382019614084801662101197959824606067075132342402114237822692018602593949498593402237310198129233739538450900703429926616259097770514731649157139251737043602843645640362268117908815623799949376261890006203685903800668027348425338100087329420781956186566001555262942824765284001852677188258822150775274465747892073411166698132833620357496036345267783880617427105009965545099455829496553697440516857502289359040009613534914684331589337049118425592797523506564886987475993991827118444910972619867044902445786726217289861502245949315572799425835348977280352997467389963385860728235185045400452892507573582851074653493915118994014569352750461818670379306648487415272227296679529684698712008199749071332917991329106539451986252693774435449626211526620145448918672762904212567076845453456134761190080191217320991495021037641717150225656613630937927967691269457270150717860922485379524719283799800449282268455999675722519841638110005627457164652396090051089241982525120173603355882615359272359019869722656995360467781855611192107739329175174785305299759022350614320920628701197082888103989121382660345715708941300740228940706845687087096898718074290281155306973150553363282417775330062932567705830449254474191483630988243493236565708730531068718421457741753432380196702305779413729041851475258851800061296883831441690027269956476667959709329705454462026815443585012590000163666840666917190882649119811221057633689943311579327118530327492894330195691894142317330032775070488671351836104110245801283392591004885950147392171317038554480551148408217869408991970843516438292971438349471516994397208355744502388226856094442464526125657794044497310437080963392526871193228327634644209808686270142424939330616005032059384200587106547557707508416804099010493819444401314813040594912468121357095095770435182321440326986049116621475829605327871302756517412396662346116330550526012467880279991729887516767077534640356379850446359509995256966736977363386226095218800368145540093938170621594715031803802721695161900263095217340176577004682352011640937955993559671251093511954696718851119209179189627509852962971378053916254134870156353608964744350253908410335494171787904317029625938454131845643638269932775626255330676694902328375179177232014854419160251020486956225146552141978442535583278239817643224782809408868041565930566414522484216930650128656485586839978802765851576105627760985221831491329229499532065159281137928610542199849546388773091615017668749080847356626718837272530403277354218287728212184858755717650457154248064626009912546373592317272357114657144435599114165974419442745092622443639229342567801443010617544714030378728972416551862127065938104413206488347516049836452183970467620675863306305083923643277537113418195185671628416317151255657653675925508275409760865839026247287739498149060213455733666717721974459696286634855841033098335114045399166297981038169460716863861489492160666933355624857170439137768912661873100858580851021368845729932673906529720419987065682071855568358758368702890252261163470601429988831757305079209851102681490264824372767645713305374636655182107043330419553713392634043806823140780235451413333540123165839177900973750708701555663402944861992481129960830222145643114987476748253087975921186152445808639562597533908809306155671212807893814176762389143044523371504064002838525034140714899356523396695615730868473143847258325183366919127642881494126132160346981265722112138098502283610710218807064830929950960210345445500141426526602945579575744086084753755680742608979722005402271814563522253576002391475096241580277868767617942795267738938615025478270674892996360104903056614377774635982428242789825658804770998449187915470164831688462326261114767099770202903153963522181426302638969686212771047836938784573103102537171095802609003396814177887906699845152312436264414185004462513597452067726336577011835673492508141609797692303654505865200030439967697498891995973016252887903102762362205071338357218869473413722108339188607479935708512370385627244429255038118590757927718081063833705170797758550510669246817096876554871458857250408451476321434396905723648896063433402762490081696315884209459139799960463116043987295201961138464330163777597067783317366492385116313078232313899886536492119249816341382777356473952620471800727120683863805277458803202707691474958216124435856642825902184892296749748166559182639174125720348667151592252362372041368435380641864494773278696464906973503692129671297666931713153825447529403274816973612982364995203892156021281335777447108711399353552522630715314802670335939937290536494688184463349408814056590325800202447395302895401823929523822126103894774986813700372513623025549598212608268530115847517886927308624192322639878573543476006510947947200732011770008246913387310717083712108262851673380922361497406974759316776649138101711090910811700404536851514717832145323000651192064501440282256152442205502644384384819605873669691034909636270842106508456240690851707350169175617990908128774848752217140588241576602959832699498407708671190492227558484801586707789801137694401702474317129263993642489124650016996521280606914236311190958739757549379663682213908379373867038529701582208668847899058270220689742331988582678989194877549780145864743198993652784474730255420594960847244376050059803346489145783961081775284326391002798170990977695539069171362374449327367564885613384716539190648839765997684423384180668280680659492331837914007586816904708708175205949146282137700598743100884554030688040579841448477798961764318608655629362069782594280154307524025756553772367516323676046755611901869314253011095783948517104168906966778349035214287755439589552853535825597525644589276763765405225865314751480174148600691212079495170712496173712430517510369779733416939785126040409856570692381488507509878268113434656545150825727076427108234372718320215271012728483394034115086707767758094366995988016192071899168940579744094427873627884393007363673424421675712114258973723414964723866926830283875658100331000225467030425395674639203918083424058601010742027840251180192528296139107106441402863534205909380940100029660715270877442449217055435028764713504597282494353407286398645756565723813457935325908093447236938934130638488639403110747179334362070920882202905472653725277392850617051379999558846962914706819237832281729572525145711218369564574659451890588393714676140757596795306593928384095310114790951590694958721899407526629215981324564190775050589378375489249456948827285880557859527809949766833018153792511586025433434620336599664656600220219657541386283109110716350343821214060699376884799300901121750809774148182961015024892979851252973768376727627754702931454159150430127124517065423717607015050426236293671976460924538689778379140555544063260783779093133711856219368213797078275438001603199344033241473469978072365808881894824371177967715062061706444726888773415823244682399533221335367255055044768340057238694998347734207837617364296744979318823922452774335216783236512779570317962078477809368051948503282761212255780815200492067169597048898333849377635489579871453539408366071722607777989203389990555008843376857513537995115635625079658970779047300006148474755621188093255207985491370169089319453948656157656985351003062204097802360630507486152103004945998074642047114714093079469888236063131676470850876052256861576560435217109297902290431235986767720934285995659291812462521924927398725158888469264009141052331351902600870328436819669796975816244871080685422646615485747381170273888828092149522530442216734352404670018789390417334560873038032806883453015646434252220555014114861574581435171903888678580406869794533645790497137808675213639505303901380869339910889467213969376160032010845427371772296058862761681350781228324231650879421357976672046391440745320865757183715687976936191854356935026012449100395915509286785511920887151497032295317105677250448514053818559420622216265392446352876807907905906037361343206409353636586559121962910319130749226433494272373133139424243833941802689183532675416199904205592910759393530328627981686701713599364929759714747705519656533574824112762644643799515001727535212459273510211357723839880217001604163734209146649692744039677049333520765156337431561793663623656450374875713738489105954655771158968899472999871040588324271277678220765667773904833381536971531996954186321819507195763017479490365469366283551062406019164010346353041695033390550494152707158268974972521571651491238910312089436177919096107212698305308652319876933513149192155927505487476431090616382009720268918774242078104046783607636427524301620359810561168163806707032014265125713866326246551310489080280866966454984230423635979654146600117208195838728318072348529861064792511860204155709172970767035032926457236065887455744967234664616378136933857804031244618380264032592911462218313213355235933619623080928316716345542940133208805966808773054056576320085499308890700671419267605960990792565486898025826717065812648932061403464683846966730843824515286782048782473301289353766540899641713539914029229579087780980358776684625089586937237237119185373337385953910177194314985974147381721064101083442463282858263437520446374976898517972824420201756298470273365638287640126945019154465447838332607597730314801559963274243944491061803037324630449826052226171988948819377462011955062552151308099234393055526060645801836307215385498866631092173088108127296435982812119613355305618773554878869180714532034601519562993045220368447730723786576222540249962352535051949028892937194360839532678665271370561442844717026592402161686340734585194600517180877941898655317399010463585146022304517881223093783616551435136349711243191401548827012041357203132954156615549194017938580228375031418572304261768214672563131850384377571567794604936370356076802219430521852270839539973477598335810680216456155602041916164309612643477594914205849592262385763181519971813842541329081783165303078040337541691593070742312256550895255108353700772525511158985230379664237823236870271183155631864202278043145508281058740142926430306412435257964721554030659669202746182860919110854340044577069440025661671621082700707751851448605873532079818799933798635156968855321866379068456704394387281163925242452548797593468328411070528005566495524891666932773155979491035450123090133312797069986992973482720756852197593047978992585945143798082661274852096905622322528725127202305133739152893169647764001288489858201960339400000913726378809056200811194636162171798092383754343103941433774517681008030838555115250985936612265871819571541624500501561930010418053173009199556791255344319696864947989454392676287012932044826944687311097822108800905590212828632219210098900550811668920726865355563699686333025459440863449207755035314798056445791081523309344330656393813430217308893026659546909739656238049326472735851738907741626386483168839972879723202018772801035011330913073878279407887618488723157361710619744324180730831499649929317084812328435654881812780228775594273757519433383478488837080005651252586125642229233978414268967403355448169154792036381518833173671630206036492270116552387986816835687344564787389952775020043221088033785065049326391219308623989008906306258703186377216420273101981504672364822184994513497505604893051807154419851195210588757506456335894385496304001956919055250612628855666086559205004689776848769792546998844154870677916306989966283529743274655938643328586114443382738716109132106008901204987467165230806775308295394370063611235383640428747277608713222234284977952097463892878921782907085054814395595517988051458501335485052643765450999079024404646400738315827675718883102503221757862958157851670913996940826280213175624702399021563403326554408065751715344053468199060000470008854180821595186692268927421332342199469365739872957847650842715454904748533900749153765607932052932172173098205357668804727894538962879686224625250547083449521242769132354365815932573078745063556652591801205839661045737748159649903828375225446058403629613965270578422138298490035176451448232414333081772848486641663968814916708983192260959898147062799983077907560959738101341966238027260634134709894621320040688230346415702532116123929356460061213769419637582421789345471175768726172947914134994258572321169798269077638833706345689049939091498398590705543088027838200591696054962105301525624214837685674730024047108070529312618944751523549805806492072990170291825837235258291386813711547462794712474460521393737604826165999005228997669338795117953763445974007842837366875263019719696216744922444552649707488687141839755470750770501870787955539468241670085477388127640257292718533461252847819731930379442311212928252574865776196233674289402155347203543231645376639999506510718744406540538854079423123614985338786881107057019030102094491972841718419134083342122312889031331446290500417751960543701628782751366181797195626321578932279254160630651928955514620869255471367379254686718636159365324869329106790612778119846056210499071773575842717454677790889585905357542323767845749735390924720655749044392667677176907028698146025971261376835317102643141001100673108083147758149621413218547935703194135425043453731137919332856369951844776136490388758702385008204886576423890400016982353206773490294903252981098229387362244185269256113146962717655888181897422748762371554922577249217513824093347009227773477803669999818751752998218383648801583763417485268299666025284142738885997163961551148463659532404830201669674116794948684068057982606431129867827525403667589114084460307350025296024829822328991010988365141338942489597047531089983918481740684320771979650155126215606277903697848318205371142333779346742364926181936517676015205473003893857902997197347017375192764981495396700859049113233551142504389179201971606884974492252031333460451459263077297852736901684181528636110393248321100683770290609310125393838822846392479098730685876839676956513934475119583148476226404669563692047305709367924001839631791351916361728043230835042583320760528241727692648118957203443994254956414182541740053082569326359239717802198679383093480512105221513438725878242548593057630668353614609407248747636457926803561793984308358317074001912315931100962429793331943096382544211960570175509694340870634078801397145236841854498736642972118851402327899377587257530273188465279646956044454758052173825154442451634178604539565557470723297564083574513478909478932758382803353238062584597513096148581210435989489391830972616899715499730233346981814116354946666384749993124732363350097213225706466118756718375867237934235103923440609472183421359529339872878757235782599802547362286665566032426499737185481825937119625313182921827419086260402631553602180237542661868310906841817890243990740501498703650571254490408819254896386551444213526877373610854503976483725364350951750080270470304244298056810291551194155683202976438282891240326812652253994954243739735779992074114390673127137411135999644396989304538573649641709709028199977802669054055656922674279363060465976544769061919055990564341542290503020472321733726571193226094365799385298348339454256990080003598394267646885727136390893988283035574854748215053397564933810437625382889173137694581435443391030337462666173870764814704073341182634574050241082159984373938688129103425121752390551764482360387582462703271304715198869586414434231370508060223844181999502813655496686628057301506852325048840683444498911745367056508113399167995229928754430506039174922577493943656653460847588822845853417115986523612992229033389068768599280674284595608161361841374713059538826412976310423571908229848055707730751925748393697849278386706601550141618776981377137321595492005705880299258783389749629478019357497208092660416784102348625046674523311250533036841257452546224366530825058537076025136551998765107194057297466551812554775194039313017911732890171493160659908307174317789545228261386733056998315652506076529320833619089837967834724119926237989881920481731580017347232762455674654342575958501494395584498686255590691988826288321720683919637493960513925994959266974842776934738893641754301189257696720216011317705118067843633937319456545041061427504079245890180328557182906934223671963872730290889756720945505253762744079573229225872492332809360672529020333480262565838096043879997415882176642651452674366008914856895705564232267467288677300909940865877247366831109028554050224363675821080434131750027914948094283090240801503144808802314676126666730872595611518804207561885091153880164316463962506542103928254299979011750355800992814008707430597045694983594352787150653063092496872417022037763571486326744173303497634835007541033140342601743634909879596043912976117977398010617801659202715828253404930765975617189809177157621882149689993752767718344020485835865694784362011828080152883795017034707190601939931113897676206865774351240284584330705462572650083760953260601187356599141480016060073272291187587978255455584183923765730744883406694315688728829906675182396843534919276616155407828624577570473753872365591712176902078698530234820144656288789145312713040477017023747715148021250041773665780426292163320707086890928416511890634209415137552886123382843396984353076207102983596006418434709328955920350718287801785573013074244078299666174018545558110440131973763600218879583064095405863120215906596113257582992040928837273956977645656656917020628608572306678577371401493700722239994275610286974465547506195926457883059270361801556727532757054126389003860696214138829091568953504458585420893066176291976264181214891854993912451420238470297224722730808866226102882768578252158680228997542513477496438555528217882162703421879563556021811990450502376291216649879499916370335343024128710785777736787338794781423883897246369496228206536157981573696372019011785097563520917264205166252986665994501004914172726669048723071629648932986999832729237261390122954665411693059872161451404516698090049114711784097967255666088317447673001588992587859480973423879555649757423983575195893490498075099926356559077840124697587228473853907886303437388381952449587684431767129494916610093393430325638551345905101507581457839121071462620874768514998278098796034352869385155516571345164325837903443633420740495827365430509811310700741687321399317393606277619469552301622761334373211837656605442391015405574255825240053864865240271069180514456914313470323568416850820326456917489699493177736692956768601723715896600627565795912167343526121621947667614155941672895609810279524902023263398096953153276976833033628636357495707263365369082690318375588089996258970150960603370172162033233205470090576915423993616131042876422822730163858852153369394120229997281330336468367275341563193355057210408223269202717946024945179701594912416289630046570066087497372974270820322635677916300698418274384228822221794453155098559567172509845084163162240942262354890462001944254529451223752456390047393015388743846147136006055732011254628300542673397752569850454097562877103508327604072411498522784473950947304441014163746573714847087119992115851100003264408976979029277253328156949824685471623349623248111565630207779596075193128302997199543794868147012603247908240074224944016599401648261971137900605843547365352892649122956603960330099222834384965464951197905373655171705797039583971432962279448905792692297153636945948792916649884358706353667524889379667589972174060484422677769718842369579649547807581106651183912793874822184351291604513439312146177925004514335764284841501605317938951320916331321310555307944779359370073293112317890660797383926597303169454088009046201348881192672184662036905671749151865866102033532679006901881153209699683630524977406410623171664838646626603382539893925925967973765390847114993327812467564178617438194230348770893384015725695966345461264921030558164979173642041083843709319690223344470397070290577528649836334103355027311913520944386038501418104957267315408445012639126859460242103324411621070034734262861898142035082869457808738347298896979053937662324928134415986137852455025151348031483271016234745789371870180298349984441861729726881067400625460226579673504765706303079249484656524430070217574466905391288398561905275525052019460043411306226620260166263101704960532737428492783323198243889157351741378861613880035051117149709339393886696874223782375199467380469328899108811329978666251232811067874347064075302289605530536529129804226538488418447133724385466632795684059809361738903148997370693139958905279491686953461640730196233521394847657616197800261786802662869090280441861220148196371051193586840340455668494397695767632445053077558375978063335536804758265659562789065574688871969663763048099112311269547415715321042491683240036846325617383593483929146316990121520212065556832557904125889842041524288358617348623495182081466342251177140534362111798428865732483071429672926786217297217580700824401293126215140126230447268917094574541686278480476406360842637463302137920662768270838440935154656403055805250202712482280409871824101714190262214790236995798172858619830383673607313917143233443597731185893846777075719023374240876867305545685834159613638382137720695852109976241053248883700149299241678765229301599103627226121789412410701682481510906617699584653719793939012719065389628676350487067620931229184042711962312111815299312298778403744010004430910448878960919274032937006712356237333368407491397104024532617899256968350995392285542105846972882309739974709930052025112407612140520468502796351874354200337978338390432531621294201687288010227727908152083114059036038146073294638082876152236298285307617070826220723741819937772679297682272778726701532112627176656728808411714607930033124717341499278325391031492412771482367775390217765689541415249670985874025252843218506416749571008299422724599437891019593682988023888236967366738950032295822951840772558875608806090290710892832127312894875090558392403516835023152982153499620467708515695673985886479055179569206741364919538609437838320420358212588465400036706997430865452057758221819846400872390126233126829506050864572298302551082804014339689221526089557884904354779864723123460253783351923777421475778478532111407929868993449201603439374229788719894094427151542708598345741357750802304217615688352398595304113369913388999994603331467457345902402836231616532076617169291807365744660106562889757238949503694708409292204449645770903512126218810781375244723629340677688127077801684593707583796935265801481766383544704522071053781120307011411984957642937434009199538713436517077312441743554104174816612723812239318918394730601676125120156429283195799469670456282337084758260946935554177856444454990402531334132518097196066714700570483560677395660056687411002818337015314289959400334834268095696621924908234357576500609523344604358701947904495799647474924892429115146130635016622345417800922338067257132771510069705194367680694054803485864266872739304039238689532602556107468954578918644066466659477555040079682748815693629237685388963764360187537157274905430826965089886706219250964303483559582508575871458598027953356628860388384007590069479913249456468280839501452596159092274234108161759884062821435613923581391064562373132502892383984124249948926617901743101605806597168362128436914168606458210056943903851912026667325134944957591391100105742935224937990798902056983083877594596109251146983449521372101943401306905519758468464560467012875720628775027415641230379164216747572173342304464822582933182032494772321784278788025101135120065437560614774120830784249681803700147887160627330548152167872557180587700260356146700263943657045769970714815138061086870856563359721554401362473759615443628965336258180364946514593627973343399601373961243531147885628164900476139025898386104552137752470523687556095081159294271295270014696249391862385464400576327655126006650238672736916666443708337870412799129819026773312589344562254711105761279994356605305457764065099144182163523053839241294965810438014620178451985170626189627861362972792962305265086828550844838904858327082359780868719335029047330464428309656016393342776821653646714471794195384954648570692931669482702508191082272435513793123751314598590468050035474246845668474412925600010088655657999739107926493505691806247630540534495354993180710380155345442527970437317922418658647110042201724760447235185148465659647453918508952978087197499937630234732589991848356084521187762530901520046391189028012378067541041232429985487277940532678056583696349856191333579283114502468469232545643978774459749529321054048260578112012481795578810676289358831543978894651672157782114801351274419741434535853043400756555719232014145148408274871181578396978889976668623943417607880120043230831620907589315694800497623917018356249877442109563581465988161976680017334295694225808068603752073853454640628760455509910737200685185204442989230246540817823282361478128911458893815890568935536051171900502539511914773747085023672551333384145381569031398238403681196574582414219220265190416612643304248896618905425255836014443129577809180653613966233931404854839962429297740389153221565939794586782855841906547591931177439577809920902802776147940732700813709180629863074300383463779232470090419345546578274117851916395828012181267141732770176838997713034064184006383612095376098783907948305697118179345755261828136060839923159761457829947949161203609179086289804188696523800341475588625647939464988558180891634209706176079261514686693707346232287837756205170051532072571360008514445146361079210179662843524648684306036536777290959197676034830350557376867991265500149455355690710477356288361666755769039990887892730571970005219046972016568472639525744223034237419027460549359453326340016210606889414953128743027412293699772708160417772338538035330745143879159223580965864793835652411260682710812316931608672201746534987377910781539138325765590237576138986025396035142521186976332051447507649555182623021300858974670078315286093114031696593125366468877743610031964793441979569952230164646664018951073651486139649930396009500374149109434962051514975304342591846942782314839779916676083067340814216736973940657259793922658480032106702928927701949287178026760722282112399303035090818638787482006646213768740573884564713341922665946689010324486295095603518895276575853670937989817010457614989261798453862511445221426795285282431449358812272458170596817648153401994919843223739094744804704698089208428132608758388591604522376373392704462858269772358514637131112922697385324166650260221586749300955738063110394024307269526992122395587626337523288339711892261464933548514658640363174474185925057299043216319444729979682280821377953260079127024881750417039310352765283792178075931669107876482857437385840525885714548369236293240421806958627908222493681859470286605449380659386291106851620505714088946941660185101763613020573603843564437434211933491046959513374134060498641719744864170742222728862298526423427387434931173970133273892549813844362998741128760614943616778118869849716866324671256817035571947582566858265863557605882656440519648952657813114742174624159933797472614312986437830282336544597660963048737813747121530201369117818324940405948613414995529039654386729921086386748267538738585962644575088117943479173916472256186398434778767835071144334791782223306285021012501463140908470021620045418817296193221192280965752556637654307985250142417394476656995901207303993691278812401631415333369185249619161583431645780959849891860787956244757660554760808153160438009992148203229730616359091355636309172423394740234592478256447428697222731178236168759096672155412583262370896325837794950790127746212983684773037596037246170064689607541214817828482797271211428661941045327734706285957713663332560012133355361312513798690929818072631214001886402639105222194734099219316498305187634898697448769637315691924329372671747527390821922441639322802324460188513597966614831099705481307193979632764208378869876722374516034237566168801738967357895289270297790724769065457266044338480239934086408738675368380092739113117842790692469539099294426783667974585855443441264359169249726110093443211636142714091376970393751840711985725806331024331706750734445341992061070504362368998498754228870190654295938347019693866737963315427680973193396115758991832829142856158431945444122829055716990217765179019081934274250250383124364053548930868759636641736739710857914132627003059421528697258798833231147367089299179693970730223305105778755903007277487142262349703124192871437642465868521944306367268398592273529768268909051522082037066345964710821379836749490325717276757117599819190142526078895341011053120301348148033302128402991100838860209961883528863071778100602927014783139412443337294510458311904702282132753452754825556144751300696160584201851283286874302333208093676357828160850171775554236079423487903633046270137085475948665224805343176535548163772452233672544710457785373442373659083907798489434449179570501994408155552189710015637665757374689934504333451368298952182315798600458800428604907209428381946186566256868849435659196947948574524670955790729861918398044556708050361850722763390870789005575629960808836289757052674990276575262285143009320013615280235528708184075485080313129170276526912920819009353407142471354977776047424669393825451772489163348032060533083027472040762603663415685532432794942283100428607254694500738837185781083437909365803160566594050788169533758664343021544542625932559867400466192908781655369318864651691220612581190689814459877129700514585421385091671612650616858179753204976112175584187852412824043842205486303247086468072089347895407406012720749348264953432192804294771158733883879906191074709341271665232723420631337708203075024412977216400516098014784637760384723499468723020374618909593056625459859244256374200114096882080094721899685602665518275617391560177554318923564249200229753315329977585862862714687210419636034192548902226519253116219368874901898247159509720050612613915137188661943081722870999076835599500673967507339644862073532977766463931928793270689310656361767585259860593871567169627636782221001142665881421070209679900473554152390262736672372916141137979570386557402249805842131153067147914110020798718769208273666285963154567192575684965615347419714823845811209878595339375611406278751958877043316698340607465008633131244729269735616485545469033142907782469086239346680204510008439648265679797003770486533598900575015281135147624822137177780370795557879148079949915521586991839909851141133801906432153196095760330047859732148281478384506077339178623260739037376370566082090443387575267069005815777248638915395597836770330807319350168272803798225955874802911605968814506586419961508153244237808015085770053583364916121043101089330134171261297639756007890075102779366623756562659374714775541391472829639588706278911776139714133643947300128763090881092892055626156831177531609313446608867692770669963708737620366180446455571406281097012471299593102336022638244156560025047716519760232439107978154220427724770287072107924150316989568327940709343754904545494975856413754662972024410701152583843791090042415083799863922756475163313232021666493702219470111264780139758333486891568572311225730797570722209225040251067987325060956966344457668080890507614216397858845553222687321201167039033938529912121928479768766101514964185496280665167118439314267711629802982071763449267163465734386837252752961249075158428295647423136695823128047324585026234626672670880003711044794153776316097447090991672920965954600442870252597433917875168264637046599992664029105891475611862111064703151102024469426804783975904123980289255871556307774855663311088806229626982331254341052430371495906696527432304774667287496113737246249754168672893780445008229218718351981282322740094643433354305914231058915060299580626516743616911315631421925504947420773513501552368694643552589791368522011089606670184376069739179158549286962566104087656825373603947083788676591595387064112692056077154609043443319142319763561334156453309726108476582314618134742206767416199980573562792586735545670188127401660772284808619039376989834660183223941045036131524684586689304811329078942864341655321097954815080454919722224561966604069403105367845240091351467643478885579885640958194825006117764860166818602648993653988134768023099522105524796644340445634717238488290590501396370461758843978063681273874618234571287936210291798744530566713615099071889226581827810009277982760138191827027976092945932148210797692350523062540875710449998367277967453796640130489919871050683534986798520909757344426002203841897296056494253566824808343378061198487854941763846413470807191172945768234196085783031925201448818827155465217989158237600913715207248467409332608779426770593904826920834267106417013846525187906843783336648272618887355644278359572478501049596063967657799874931384500557854583756958012040668543921160693282253327261393262571561990673883510735285040285358830889469254926197646711358655518147552170919275942844202833604650208659814250821800402151843672234899087190727987818863529984883679703640485813222658274053125289819014406102134500784627993923784728830004590164035137408325169318026854464777258694455366348093721863762080267089437708360080336199460733974039287792770798715282137558587166625251595439718598679267756928424387297001665778067592207340079963888266188990687106201315100449136095646356087489423275774429144036182017319266425830632970901209968039389286360680325497812889624569670574177158001275369212552485922414154920387765281793910924643145006786353308099873196409813143198809081007209917576461547623763160978592735588654886170632991552815945502328312113557967047992308027601936841590824529993931791838317013271229779330999368751523502164905487976555152539455271151510083275761951999934789505249305790299857802795722876528306820361470605437705282876917750844870876253962597838812541758309307111468259117712590235372694772314255185946245844163530872510403348823996328055349742514270394537470158679339137549410818970389329270386095199588100820125690486955569515136731161371144022303579715603346267465047349380516020485814828446220912934786794838984894523308813882121037145016022514720616258619791476149328792317108528777455935073219386594171974734989675133315499079064365559897893782212164726946087621991972105161536702618532004230818505621649300601490002333532735438553293833875222851868698968112480827260042476827018645841224573143318531815253747699731595884713477609106056625460529927695849456050418931515384459859568290468159804010428550059653573344635720052094539322041318082617904223357552279812433700234713026757656821995362308670617898908695728257374858944508588907958118755429808829539378832531246936767723098431070076682160867324609178996845929362143060537868131199453680072504871745246902379008724612680770755050441963316950098060847588637998514883027683002809351202456461795466555105246096446376736307235330950313556905732195841313070918153053188910314484182176267690253805989820251424257284883426804916630297336098814958819541588059546595850931298150380448413769196136016762828737355423742648929565665906191610007295238649097426674660833569442712677833388575382866937300613172615213747187798903302608104346353502566945324430864700925677028125758367097089979180594653546706880837305667430209961236601416950777984156340760748808366550362784853297076399710590186311029902251353673290248308235799833028517414642728515615008557793243060313864455782178632298464783743905274892787785290213058963312057437757776046553457240900738037502220878029731484247405506212507879701040088296233174890209614132027532722722061810358322938219699881223855795489677238999370075349050711217735170814349225443471434543211126418792588989204351780600058639665228399431399159742435523089912408302182149170655932951475214812073576839092815918100952846764240803735135800235471130031266557207975344194235459237247829879232276188630295523656877521530429937048033259188566539377766228038954843191020201785625677209270383530363199745010007418050584809670203246704687231431201014727255858248490292271367244972279666583849127171465169790511697933023901361008924218462722974174538114350124530392530711709711901488681720462461487822004160437480970538403252535067390270780117762025909693149519969655472524673643847766596172737521446091684500656404137183504993210394232274909432880628333479458235192192128244256011027205437646102355745412301880548089251708869402916284280581087385862419776813791545388150432394128274469076301414367309261071909525961604377946755061251092870739842242826672051953921334492384783929641900765967875774569635683295662597300215067940093949082052484265005187507848760597467114852526961316491030017524161291343550002605130792395131545348517167914560278431049179006619451568784845589224709027840140126566906745913066453660517953208765460801768086239105613781417036287649237136680026841209122832626294269161648152954464253332314314151237302705118765222528013506918790094279946179577927629083375788637044878078798289405505895698863603115853635541186139930444340025600682672226502378661201067076705545431380720866616435683956035846807341555090436044341532035548894336026736182557938416872081332157161442390020357267747201178161026489044096359742900413969512590084931214598173162680175548724637709571629260574002855519608902675566209949436688947965412300816273649810739477987380501461163201701157634064298059184023890539768950307279715167832051299215230408320026653369099509578385532280498299876480997861024762014807393303898151884430607683968518445413442811763878469233380153642186060439854254875735765846984613972416633709494443363070444178031704571537015033701411123243363027290851886078917541387840111392112810295086819578401189237638568124898159560194782592671322639880233845966700962168238130169575202133293112648512145147840656781727886553262224864834915723746951555306743242966540266106750618130298832686013515853110130083633010662806231869199284298685838423603320301546225284591226023983007603626112511608204576933341759928907346768979637475825703487776019676066866803399678240210018394566622630483918188270730600562526838277218696163648143886694987650944663394273272501836961811378618041057816992508104261395179411052447923295758086419801834613248585157477246751206989108841244690322595487609436852861795642110502278170558935790811460581612916493540255585071848391964708965247557669433739577127035128927069789793753643225449713627327880952318268408274480489004530178883983612234039742909936712231067389456227379088112242043113220431343197737546911912241219619390999326892197116863449066546313268287358437796049173698483417135452937922796963212805306359707849010227357459752572959188266788376188488139472414677335421021072809879636051834044868164772712152069518504914337076873705532246635722854775063739052226131591249635364772891604662118809462178996428703819873436186238019083975375863876312686046291453264242588436419778425382666321653886799775927466560611742825365699994459863034258233508847582861596254816101613448390762604772340710649855081705761166358568537607977188481562840603067620452936270400075622630504704866716981851585707446349599228946514158040349277512152187949122051296364707940439905381630481161944889911535703005718121373918856999183330932483193082030581290795505125821284160914358258297194257694726536527430348899889555099110614075909698179262366751708562530792213887720209731823450108528361819924620036088975577546637258300441615680102320646098341833969643189082008621420291719247243281736693382574341992205151913541109868939122800693274348629110219572726658821057169522109555499991397296011887809133461553307963493110036577055634819260792788390923369620591468543126520115357702273310170677422202846651204685818684540786942609981800213804598554187290801158525884930556725787654058928438434792736042079315584030420543491143379070848170748669915600101630875079380964608786456185968812482806947748790820378108003101753477548838668586641698202848354774487761909429344504451092734115849146278893619862710367992871378192176156642288555265518852707135216835862159723053536417115800028635085466670106111340854643872945448408867462956399548352977789404292131943710755199506123126543618354734830260725931179087472860484646924674708022669325970497473533636093001518212205863808598706140488563440745095165012315567162290000043120699745459428933395005794355752321035119494345176078809089890806675329159062298801985618891161012781479321678277984970658650852235209351868166684428946520031288344163839317316423987415752180440571979194532736401633210012628636253540196699800465147875038856487989718631455364963848319717297582083699612709781604402281764765938739485688098918034316106000503815460552667511279396611723531312400951945536245040818982595182755116337855894004121261083921047494626315244437193018799084090879744297068957028839949077311542320809068520069534896633111970116910796094692013780607893709055293656098130140001843331671426249683708485086630442443473566325394778006829024168504741236555372347217187508046315490251223083320923673912154702517142189354605419449065923417747136621839743796033732459544596115199425284745933772649884633601693193635091168957279238195937470024441471828569013384205135272609925984512117624754876172950198295817920167125463732605442206325414673712866266375688682455164264919579748749290574153440835457213181848173460131122239119981792294399936140496435226828054840022398267142233600457727883803901245855212289890896092901121023441778525695689880359383586506043768691350415132934224084520758111555781591150510100484012728602508859401955908046116767577448845168505180380454253802305146882867179278460302893164421574248354262623706320441048453431982211283885477084898544135564176379767164992230413445125996868446638436683961269425999493713136307500089502155737002906126709920488233268679367686232413482324573955096833289681296977269298992102965147311389437950062373800433953050689103710888054475446995224490689310473306166951966264454552725496867071705288751528300548431321395907309430039728685014371816451806611750005162942560569348284383876567334286365463019632142257261758442949221425829537154790606935267860097917438421699913327863940714530782887105351562000473318457781756363393232047567598495642459125665485789240274700015723508581268235104727751753949461512971065549919947955496823879965742332831741839073065398501655549252009106417789346902794038006758015821171680043980211918436022377335846987689956464240104194478722574554806727539882040311587224888314486542979758285928567401166621066057499089153007256461316707379278418955282003210456254944915430586757098034363751536220313050666722648763318046906206535042804981712770577624773016003343524999883067499094301740556188471406261087270438919488933244050410804259696157000899436623395303922955968798266957950455138939634214921563276361128743477508583969523338385785284754070823513224357468816671105831854312089281925008576415951361634190297887611910953569697157560456271233641805189250788669499292006222699688373521254407720443343856713491186533611490015162877959230808993357247607446041088596448279159710408120352088388307821983062253697822726788873251294652415902435406592833266860876667470153956944890366460243669296094569062272153044672003591586814506461225303025150262693366809217782176097884771510898681490786936593701296371174824239942582782278008844772120965609976097517010293036669081065879295427087988247438473582597572386805171523074777592822141481972743617357031699959269257497248272753957117866293852311721655716606621357343702990327895389825044346198815318563707742184743850676390262588296176121834582359929297307878926335699197352670165644706770139749640074032947358187331353737831015701627803227293687052710028098654313162613079402707095950140566113562514685170343423757707132620934949876892603488889180882175794752698836600151254152566245915690186413170890929084830487064097203472482110987045944600949355261499066559722981359614054394736833762527681976250211375895775869014394912048159099833487850958601314392513268008000256366889600321368747512967105030630126281540873921940817184772136930611638595551491605025843216600642804820246182817518225532335864918426182969291825078792247201737285297257149890912420290073182686971552309290809210783911045706958404336080924502057728095081843296027615450865785575886224293286012952465901538898358014021677691828992129677546523058281917602304528601043040701745172260336101204987101239975456523455607409783697847412436881841867182740644166030896478747544554000637584835240482898136194296595641421289802457011381617164911770297631468437291511180628009246574477263033673802937617785572941332037955488163798451042911814377862816960980347304324777539607623786127901386227433569606306318515822569937436488852893610562061847573456580382917437630888517628526486892517529293226233693117502166655111494140216951391553900552545143699140605994754068570950243295252905400700506044870154745731398858637249961070591946746723144689246784164718447016162741381301446094703213306641773207012827309459691497131473623907755171646670720719110916372825956206757026240996516601654497700858756145880839427478903804590472546218715745694901810659328475114861703362207477742669716685164723672373722416085611754611736802287451603450443416647537567101549281708363008926623732825908319036727309255846274531715031508914110507967800414012063317311990770106836196785912079117121795011930069316617516000896152245554368178868961226202776815249832185277953357957284476486871857699340781913687524574180436158995587160597387310941967735590569392110924267454859576659325220551485660456132997927297842071813720437294172305326023310245628649537490343181766396782902384390747948526896892841861608040392192646876169061929357670576181883607263408310258258882442933279413957317263518545928532227341009825332516682799957460663638505127563920580118935515041220519101215327149858323432162575315300070557099509591094042418933243492046242926848432555746896138807903330631021530103791078154568341990946793059653088811860085549391839772731729678865874788097763736759344137070301667715550065170842056998684362273517033903296558638512450720975674585120347767192355519494599485025767440894267201677028055123586130543029999371387055582595418776289265716546694309785113454576063318921220236903090789609803164266886183911556615065106517694370851859395496213389262034178213776840141450482415828555852579689417766072185252713478280968492721643008513406489476903477872243781630503662049723246811838074530853300591716843230114718885463195481503049713910486046309469588264166155189609728384144458994883857626456455601191902962575016987008340011944785693368184290374207842865231739784127186013361905622645027476158440601548938472978904115365012308988014185369830457338896471207702573792653496526252786828750219718531631256489827139650232065180289423712537475015179412386470406057511894275319227414360186561875401112004594186594822099147878169277701855702767687964876473618672754318661757478018230862481818575625943926460389567309235947641270321335089990197904590443444721433355357541300391510965480188964694901740374269597669187236997757723068730967249436545753133316741591873006727298108387407749390302437793763504236696452205705731941963971739038487853468956595018719668775362956333688298831403518121141269461245532820226484153609471788599089284409346810114106723521008629235310633743398394991693609750789338918103830877776132364589494348744210478655294710503978740394438765966812144858392336587696059761943563516305871771097200820762642180357390523284690259672608895285527924015209756297620183160617615429343566793956179543771164059087423363733054996044429159423732153005517408165918252812429514658367892567893702135151998534223609644854594429963632814172699702062956347084364422409582222638189082663585890170876269351809391305830347950619060797795774384512188541132360605644307152611755128208946926041601296203274238770462688480599678859909510254908171651986500175644942224881310394260996607031207550620574291554219000505975700507080881522216559979776705641516267610836618597350751974099396341689588723723420074561648052946549045277689947956579429346385154108634391371680833386528244844170247075857318143327088780543610318295128060582286347979803206339063279045211853837315039260098167283552771485290725746218574096246793110909692810308446154463705822806285959234053253099518738582931221013017685082728307359726874086760502370001403829582344697180412466084327769418306611215148366110784117706917533440335804791912347848995628839012545504455458507401083404709580014267234838430254673288284968136744276424044456608945758386546619306104425927291766653838314656088520997463424979657764416740251152776956359367495217498842958569383290826617321338983487267074681696519168277635718834186670919310580956567025343774993447108159022191086013509199149726076992179181168232326581344129161173464066595163500294323534577554645175888385788181894865389639694804359220114707906229242068139844965032224164409842449777890807034330056792803919632146772943346068153320743412342201905291955441533470219149226797038246694818423195290887259505652915809891535268483942445915949650031294860730364830675205860695775172027916708657613353349884884146792443013798853039469687689991281056205911453088787475907758888054626765262898649325649493526047778251180230548484615902670405686508880328199542992206741424255342066416370497920005762986434564734277709713311668603570159046598591283484148691792075635614525298928980093935695480232081401441536647055149823505479951851059371075904760657620439817462797604626771323659214091493114682603211960914197331351258473427510830489624524030022457033098589744608362056040100428193993025901652899044040211826225867583423226118378222435801232068731168333062711671911366427820465068385940780925459553485932091998189498320150898158583277372222520086371498049831617742942224443763420020825873039089963216438806973617252325876411514971399599408729871883845647002813485640764417995384274990977339464938018092986423688373730153748610285798030202119850558298954273559280732277192365313944680708746864126652992977126086778981582284086539237888103076050636047442666535766126034370929306551188129434570660032936677082209933917808150744097705167209258585044851291090874288069043913613367760540542482254683022025186108708324108343050366204411727197078756091978741997769708549246426807880686806698929620848913642486715120699602371665318556705678315739785950883198597350142932677612943333137816408279980720784255990503812737918719218379423094941829815740463126362490594215051376444028159193529019139209936151836405912234203427352989283692118229895027608583933261291872385988956714723138169228208756056555715296930097428377339972100140568258715008536954631690350730301024877549004433011544175798055356308484882059493375415648547111276776391235963982817604781187874429123240118719436693297677382663063138781611368627856484142279060208920257225064078146072977761915545447326928171011195600630412314518908195194339169338111858737559191383379408488351868252909360856442585349996133036063228323408470872503213672988146500317899070168209783959090501510587857228183361862640055341648652530726655604966531722663946677307355063428907863288486675129601294648718995684398278701744341343889623192005783463325042073679682271607354554881837850878827875619930138349144996040071272750186498158874145289666604637812129610040871071876557597624114080103045650253785905597704182600168965729239367345281238484346074588350693938010405122288980178680654971609450872523985205710117464722269221192032306348129260232495189280553751207833989536908371578316577997355533306027095310879026322511634047128058455194231325349346405549654644968812269634205945505082334300600175503144444380902687161755741384972469514049216491486486091515401280719273428588986221250721724402786510780070572927438701077529712049420270573117286320726803613959898928826299973653675092404976778212420312438069161313874853013601981907188182552060930252802081270674446121373838437084226264335444954963611791992222106394900388437750750641306396801745745496620547716796929564503150748875184401798648758648306882859628880043296430582785134973808658301314733059553072294129110206775828724522604489824012113285051769262583108033581062758984884394543655881365456176324844041853963435753674926410782714414465635629861515210119981396960777717829026568218205678232358090127861220994504898062707771330640472985642912268039842149522824492711370689240138956706058773573778382248480483309399455777193825684010373290269978187536045999575428950806024182837230997427492100335625252223200524143854677941820089357633624382864593939883463025945193110058841121024733350667283803197021098040742465127269718601499376086257003130384691435777408112491135873365175707620518283196372853876937008980691886242084001763883804532211144262576646791807453275336140986489006662482625450750966489135536598157747886041053368746381846017970650399882335861405258344344256335699301893514807915451522153734961155274647487299290930239854021623759981617970681737228354357117801559453801519950082499683417041288355144087596595222780043028600640888690829474097251261536461875149115971686059444891650450708813504588479187957542621914864039955231306307889271495817212023194929565954437261876382495559284888144609410351940228673141624677963909619576675155835945355972634737600858264996893202363705266487267735500572113891762872421491626159653000723273200468440461483658369568270050811423227653047995687513595234941940205377717725158989002335322151634990361411600250069009720075081440551884189034081017051889195081751647511330343651355526439456484520332363801397099725400690478771496061553270524474797112491927443848031025065672005134212859023642082758508849118551060963779331876112490955149860342034790845092993284824809319490397229434134269629223242588819271295218787338646166358295224973325295368667387303305635347996912281533136511219392748131900405394001653501187187865991786603136602497760646257405165833851529305159927711400066693466911752478234827103913494024909757275729800270731189643181088725720932770437244132661367203247439716758981533334347688154136093888317988628735159417076695370459800003170847803188540062738405501674099979826314578980036536087959705265634755496473808277413579294773364075488291039941797015478242857511244033059526187037266126585978780668358320227952473645512023263782308749571443884978727792159699202931750756726181567853123194224819564686912569930621970005088041490617101986223445470954857678334900672048533366099122507536345165270425533625649371118321957358908439460574034484257958493584647670499407741925212377999635238544515855134976486559823775005480810064039783971096532105458268641584265133016593614021430592614374608466929990160060729501460284025374756979021652801677300888385757486420148205328936447405961206021254563036825566413354312894225103379701316464656751877120820215346646897340922712414094542937420530114884965185303487830981509678027336141212432871339904125540573909004150516851265548448454295647659103736728432066517833668630982266188768689320372478201067881227552812052873276098187208522413940803014925891757800797277835865712280672727373707451828162340446251878876199313289374310655195663895973913355305402380829417479761150138035689557776555506881116071373377290826110296229333570020927156193832606265937825021449644342835231855842976065396492042859177785313070606391735289992980174463185988508394476784630302079997460656186926882516701819748369036094019893317132335460741855497423412245927805044194758381168300453064438959514465133801904513351928466564147183998698289168482347401709641228813287551623577496873398919283658758209834097043857998624358713389372536330719573982961170914693914650169654418860586787667422656549191141274681108976368998014649332274774301158627822450180663032851438563307377790851139253619953933742257147966009090490401951324596901248410244259299103678601827969402032408314723381816439584064483064924148767492179144616166599461799539202358673865310927367521831076343109370243530505795966671346726869483296135433354095398988879628009991491829546487791172308106703205073012675425844439636121617578117608282249801629871091262501029955426173204357543921677999429203011942806037816650116101730987670477562407427668149300258195639374075250823793942901070130938086164718285129923271094204658719174662803053932645147861128376297770665089845206256401347077941532903584085324402044048495092278492510238600923833623284391523337970120246230935114096293315592990260440334158803512608389387775408677764896701548301984902480511240905801202970839455320835477768218057335786544770044377285521721902640372288581824473547310253315027055615879094911622692460267120204358657359337151609709906028321404701439565453830497324684581975192482975357004893245361663302296521046243524156303630961016730098632374303709426253388918025353981939408441907128446634583335705264032802591557343139126646182787928727032330543483097831763796210332559629417660490194379528122513355211242520905090950568092052912364389627190580314161303094062839936363691278205077425243474710431075970005230855424444032075169897437473755828192133299308779795710056244950588728425210322107548873682145492609121377767962917426641178205123800937019974256438788408465887681999585532886762452769467006561652177396577364536064716576982099037544618603882071581565250679163092984324593697914630341127937654138580780171988056150737340252060144335076696901110318120996603633621826942530623896344379670135494777742193125538733459719706452948852126551681997579606226767350075985157073531782069139777480193211734962753318335696030277160919700357591759589032969226855158571162581469964023153258737838176841621591629499305633792722130868326947882189581557735532148368049095606984739021040083432046399397545504888729765867761048212670654713844987954557134998942574442146299402686443714912797783930273999105255315038415547997878891317095149322475405800332047120003655587434366221264281024893459598826412729438362487075205559196962296442093699948913097664712130987469795674283040846508106960497697937669373791398864660051772130896612062089442095309529946141844991811600323114559036476056660421580417286093582877869579175806177126115096239707754084700768714805144227252497837122730153037738068834010656460058734294989063138567264222854534439019716990902516043468608582019258462253211273522242700022865950845754950389297187010420497604038134029269483826288904923519352233623640431484269747760890595121143425543370015559932210132245148998649625072198360756746278571168820993862326811262488485608930442717426374168297635791037092137875833194306419417661008036358802917257956316192625917103494754250754030658937991430665005895533794373491955024647189127322387631774449750581011345463798341284626219368666079395563774724646178138627332321031423059258741790720033959361944160334104692792554462727106738693643571525655839317179253635800352520737668677367962409734927079580450161516854291580970621349819770887274376979848048898227455880285645926090619511530457168585421620326216219045206562985692958600456932910913566556956968153761299822598990512592875715391578464192974245174678639696573213882176665397437030277709069962273700023466773059143796851330085903461416649448238490060532911589788615090760393818898961755882176302651230149758637253606538428528827017968039371699923546320868323540632040952534316429673262437238540383312891191939072132699753413956930442629298752932856878966249372723308177278739080191987749520561513866783883460996791671267888807149237419403297113413823456042162388725564046846316500571027658625505227286243498314501025517796953437778063942907552226722562839272001916469985144574574383529201661249775470945590671360809570381396523466586214415254691708529340263790955547150106996726784738279436805769453042761880633779765324136526008043610682642852853666872936635521260468568067138670706609972100742652301726368774446564025572216274458561927166775231070470736362444987665707458792148750045602593491815518274444582928999853934323173597067593821193622869278381924530220450740089176268197255960730468755318073237706432877666142990469633492178789436432490146594292643699094166196034661123177500837426425727307789071711851936376954457762810061625531015500770791490663595165135198107558030221528607602346568624913911462111140037541015842856863265915475544263230810279850035468657794119306939960657045178207460220184077497806521729857345257203270105713672242464978166797406594007796780542025662867301622441450088822435067809977909921888586063023755273656016652482247043942532903570430040641155947951681960738878835011968175632891694619184383769629968906504809866379751047733611522327879736461934195070713784632134213296969238085269557513209889133382776223460299833500601006627040102593589127424116175559179706835202370629162639105959138331933950858766863419534399389192245486289290169358104781517176285197478889698809675122127681362346111141384726973780640177412762127942629649112590999719659537024010092895774085013120909390369904825118779187602086947597230970300180202105266124038599517521965958871945784249610770389001570078764445281959589008673693341151907113157765865619453637377020269890207521294888943997368314492645837310590061891658918439839222083046341562896763719567344160523184437460183447676541214036787930329134579794964495503684582733817065771245917319830860124328689525291783609034244555336321373126461666103027842164887724455313162010338451957838442804176385923135470947125564207897560027930811848043412492772157438689606353100302225236428295646554269201807445674572420483748882476249738531570311372990103432969076497908645825166138187571289679138972999592724156048733000820813558066669314581227338561278067024095727754460189953346533385855176519129609845441576144443623667389505357960666130180152080695810024410669205579458109636483110070901354371386916419130986582621399389982081293912790014429431601364067635387501746151788394990813741990839473474167209900223903112555083286947440415436879270303930386073158054189874817920564520405759374157970039854939971530747942801131916291704931818825516724563500450533305986076540836294570423738664002274718669682463276296422507664522556233646604740270259010940230577021803276507996107291731542976173115124017183114002383327867105115378939406045241901154293423172164870407692906469234087147950609063945437959182479382809541093582928055287311518202337181490675581254645361992356207225900576452906582300461242512092143462487565652630946669438411899562509205578431194948149774082840277036834194438995792950124266616114475626091113268589043516905801948988283512293699837944855503399593324839201312658804892352741972368794909080547077155281973771700335815109553851641393754776186492843162787059666567682350421146410640483015755772136531250853158927976708478195348478793360428737383994330284859174400425567311184863844314395223118475894389140462722883429677369876720163895359082462129337203820844575515178013553816230212309518966613735347460358298811677698845795046578782228811101290691329277327014105873880287996034728353158270104567751118391113646911317516300440424143273311687388168148591289029893239348020711038719997281937560947811043317517035927306438133482496976940596161819304028774237557532209678711419952125456043844618367180740694976512444912603768067195373030856365359397917555904146423040792989963449976617967313992564496267401462317942646684087681531769086792631074422780839848465550835780720374015595555755260733750481436164687338939883034062688412215130070800807152450632095844402743553854679385995329695335979759685066765158746517597519478988493059252600811442352122366701886357562146175133937951882387086941304517645944262534289519440955700300318983792889058549832765165632312041438117287630030228226785905995527433127562901224054918798642384211628172731900861916689461902657309748994811596907545594358178257245608390504446657337671217582823843076367995624163333313101262116768519130224185970401630707763116663115059400383871961992875700140127080213547303284997066671150202586436955603282284586487362597126939527964427328993421646495786468788439308675700252101564158007562979078554517312170006968532581519697490555323083074929448124423641725118148859750369847856912472953054333090810287842003682587866309442397870352563541169719958327743368536279977896110902405130081375816669954312572202049943559973976954114988302584293762362903883959108057015749745311372589387503065108166613364665371793228306066478442022112157059412360144552190024723240822201278870348865451109761671466525000812998926532986685948694232305288202656788633433755018761220072951732860270313964572518488285524213482961178650036544858485560768807289993445630267023780416353630475419275865758402530397694169324130929913837451909304808859099973928933573935015826941534802524670008161245597189298655281545804161664991973533234477307242937552770696510041009005288110405506413102893745880362099576107147750572385472122899088270295589026872611625099341911727117761893371193937560241459540733259270821664271720766958416121231857603295124436457016125487741667635114581247219850564895950554415729057875620138068426988332345584501974317744956356991844249048303276210627695310335766439011002201477951156326738556211646273514337485630379388145152732054920755596610798356077146590170304274160616094303764110929870700954277454406521298037951628935214033942592508826586451597737313873081614230621869897502099522542821844486725849929938104963511452442614350071020594648560402694322414812232920176028714250458084700172832023016453242394792133564677059323440089128409732049166577704917964119604979515408213135198165237825493648835630445412574801258882914716632147353344188410489187574939030135953320861379699105508055328707705950386606109547211363271470996660916729754780207142505517128277619480566035273302733331338229127187323797357341550222702898185286269537382328299900171057174255398988097416412456808342237490012157510064234415893355538645892675665032914479101108504809566266463594123882085652849000278377090535396261340373409051638460721989703403276824825526970080377731897915681308031754573676537330961967000379738719328038290669211608146314127267892596377276790884582476938179304915774577602306206633336963927003400342640423857273867004683900467610512256367994560296028432032854940411624207794866808047035394377001601048792078587194022800487814732392078689793339067808235040618432590867267501045834612980855407476054041224799675655754772841739053884416181635232158516822687739577375513591279381135512729252613973386472058958653893023615411401554611968046664161849004831486530817487878798142242749646156256699431779251712511699306237596971202413844808991516501164994134206407231445483703272366150215440817879034362924103269581017402993407924763197904110117406172386784909043490671673083692215093404202572861058019531747825200102420329831866101299825622534098926146836340202032176776675724188604822435110366181751982196789532557310702710331726203932229662370778776378836053953150884871195499415723464429385789220279356718846063506695713079671253171331098668175871853156206785506492881021034594332954104510873336236353017098544435103843118390945421999589601807498828403832467954543037856806978879848418471810102510202156750026324091477174185208225524185647042156342843220937172995078081691648802628457186758309773407970413613218335396596550429633511567731855209549234376592808945756800487251861320953741585249925838385241860836694121790580259263021491418776757149523528899723620799970363639743328390204171637552442886127528245043214793424856895166808131302578929256757974059767585747141477619083727697452569945056751754116423397550905570870053399877361594907639879086862942057113442171246172480789280949913870298636559248136739360288815080670092385364633399707110497949943529732446864000117648502654638166812829208369487145658803796123452337342975275888011083950163265784942618228103382966634458412826162699885412987540599726194973619778152071927640097971922770936968017143601194491615164363583039954653397998012785614974594738844711241776502263986840184309127025584130104274881449273491882070635993834094481272130301151315409470477202767808918236420796869590039519655817775413145057355133204418490006826860662769314045756390504462379931947271577351454972798210164229297069251478263477351214252233683358617522044508801379292137226993602304246786076341316614298151965147555031547437315834942913628467501007171843238204198709277629291588767610079213436130623711677836301425742999846901664494812443073738517331658607330000751047423792827302835267136537248849559171039160108791644232310469356247981540441817863514362465999068464148877700055590516577634173988501127758558326817797660801896276840950802119189785584172710714592078711517551993429986811954855826801645292995639239046054567227004995073590197426584517146473568068364892458410438291710596919638435850527786350025873427141101301711135319109360113561934947336469630869607553607765621877488875688349923457681257768127800886627015384055300228565785394199854544467331850261638478778976390349702001985873895411606373904542018098998824380385946582746217080505546292525582819785515454263399398702224549442792528246176585619527963848197698191376461512108770526780433300158642506937899640687625673231684838384225623283372154712493174027130612440463637735797694149517883132590420833952638634708144623172247569571638842066966715537798642573334606366640627286292489181500668896449043188088783237052549894975322559331050959147730754183994058934488204967940482789876221780150200519034987706423574669707086659329503108355372251611791050755440229593816966971532647804324021325877047347098115164347351355276459600132207091054340204320189989661873588849880267913288219087138698152706101178971053284941929595491394834002357773919578447497368508409492970949640099447202970792396211089617254380321308971599120141730624105090298461382226118999801228999062644202312763422063194744846836233885116991686660890087198035270368184975416164546625288408789650886263899215367795510921557362333239883273774875624711096655370695631245796053242449246603157875827543705118862012867132560912106057684312542066010639305491682751358155249369013965976601244721409569429038141492989229866034157198218290858637305857202832979133544995420819902543546731165723839352202044442976537794522475891951032229791838920401765135039398432019713511392828083276474628357784144793321025907148611695578961987591091303794851511134149276733546316220650987585520572760057495671322524022293599664267202917556137998132383384580967899867795433079885218554165652046046363466701457608956844039788632667137324782631837622798857746915178404026980634318327816863722911716151645765356668665593293790996439550296336464266576374818727705343812209331553512478376558839152426700387703615587138696988528256677063788709078782326966711247028230441062241107759676598161871002501864385252795327103841259819850139778497451290142184679834942767743609589536388105252111331008298645983680765735514478002432463086782529757450764117110934830431762774001343015112290492078875033665753247115880195899951927402530167458320065561167121479104488008159927187061838750900461701901848537785009793012391128041502398885883471602523148490245253146645608729892703376824432330462673713676130570304779905852846611688274231620569984780356535200948612858646928775261366975975055005391363023515087544965656446480925308144950344810201698825287548570200466415839009425718260718328330559157857102202316222908539515585315894140923212529919016927190085267806458150195995604301861162481899893490941663316919304534579280044622905065515794886585240462293521505082097082970085454129961913048792952628061714147204653920672483479376198185900084449716649633809980095567433707852057466847368762191824251602125482932767141339896136114945975017898372487205940298632275485504960425263017609784481287864465124718082178667382106110954952512851500399812036733208083642335680989595068038155494034702356433513970491551607363600909661432879618076166676526761051919195721207725488408012539780651913416214182075432046501244688190239965444870180594084572043852375903813201994969224444850205320169339907999632155842280662703319466512038809172702775374130603472315332144736537910336552442531685422185470290649020844637735510740002222215429172813816747879131777276330387550619017435974344198081562692093916490386331713783764484621005308089013931403406980287170147740206903653275919821679210321959470342103732781343667557458273773882136768629304608398419199679985621096282202420445964393918253236601990120173449070212447265952414611664008146938836644640770139003712549439457348394751764117145946610439357821534756476530833242198205091319964561532529203292286164378709741910548773759981651809271924187633749182851838625734656830108446638344325696829580701835215290050804752579095005726898256546503562927322598622853503682193222752142325213016708806121295190339737610094375623369454101737683522435108032411103670471783595005381680627678289133474104419200357946623307706085089391994534706844683529488446033306370595554721726208617397750799470160870660220239221648091479000647957104611285225113454241994898430493616773588299467283583557894447130407420735841732598033234099438398267475821645474494343269659039621666207346012977221817155489143485845067655555141297214552516730990786978657547488249547495123473075397537265886154062306385884486075816281681762546816636398171417716053730160275377507925130573597481845420727720761526719609841515140796772802638772570166542079693403752684805623559946358966340711783672031839078609170891364282944825383525242987082263051832029719319925498413207506506771267231573280324963408360818698269913182772716433185317533830073667986195532951056230241968229108615540264282326498318457343971958623517626975087698692404256379830102292177922795315379351465215900855771172089239699517858790636495441363629532043273562856392105860698670729468338134075412625705106294331844331875430072671340776796563464857113324979183421650240309670777103914426553785591544195612036675103729412789449582382437552582425750051275311071038160446630548444810769512012480188382691869274484335331987174294928605506033846901495780677864478715938645353589614493345654118876063548489791684801906044423965056450195406895806425589497876058980639813258146553501500667247717207502510527416823260157436078139008848274232754928247127417017897964699924075350170187615709951107021778864642488005937066528373492927365230013729983253366484957437871771589682118045870042382848470500983089838064951206664853797143663761828143023914413970557389138645638918386228586350314636864839170860704438522268017937630565266135713784217914890189362161490767845309820366597410805023598650898217667601282329526890888761493346164318397791193399588460309289855198753538608983630679158163513315994148275745190091546005533401016958238529290687556143325423280655552439294762890313960639124308433870646821700697847165311684405762822711261651627440432653820588910436474557666588843740941578577146254120113968229197877810331257069997489038533841641066418308602662725718949066833876536628986343011666920043861273445910392340442636113608458023847584271613519105763968114494302160193313231484926639935281656834803148347886962542362994888382463807468422632069058285125451473681509207355509723969946099403704666727991217745230885041675517318646417669328372443930626802050425520200301769447956797974169479882710131330456048950309696580302390663632834454660216980581960693714424070143884292566699569623587557435727713015908763352877811299271993043881736737039960076341031643401558437656225775465254107937528560813918508604810662910837788811888066179645423299638449376091479576941478419645027929789923724492245539074825402609327334478380732136084833893906096654363073113228202241920828399415928885366539784833740877026264672819920647994589496863861787906933503782934046218307253718160121209404574023673422061574276174441335493540825312934147493561191764273860360842212036428704394902712091721952305181051549298641790546605842237721609573206725022956832196771402221441642558092181312987470433818122338162383391857630782207999479651587568997514548053451541834935535603623847989087095141785402180041650797447408268614015695481370729142446410374545641381030082335660681695537502718549510012470368944050864536909432906430384324720238284117661734920794920749032095447943852808602731547164378487803364125123334035779994267613896751751590697737978497091754061663861750227815036203143037574650807240732962516183929905718767741195270737998616725109312903418573043271106371088313920326856450513641666982490381089031776315231140187170392858314586369506831144186651329497740928916649466412882920783092852713854446316368601103401228453816487456026664867607330694470557654351123591226391469669141081752935922344677218793992178972598053559098781325945864695766902917687140126116859993465785151176111453069058115477689631312628580424551136766269468234535289386534405420659224323709225739889812722077155720139079513510846287975129806819213035058523843724745309523631274049114751873616016555658951008210008569459695639791093787130711129586885139115610948490144105613624217668289189201123351874287165126281732692091995108643041524960890017365984265874988853800875146581024282559075784015250369789269079999124529041166867387066830888883663157167075589109343011412029433124261109064291191614889396471125538349574894536006456433753807434367396085938699667972508370642732944226003128491371372097168181114110845283252528252370228859255603004042022985400470721068764838470645613935662876044427081902187422183785459579056387102916516406546172953060097380893052130255720306955760184615452893969200530563417689221781111269622309159538362676348466500634992172367771278474696180641167452462039248446460514255794602591889147650874877921922753027378391551602387786018517449777033516044595967354882051894559207656262284894271045191833838154403149401772390245161069560422856605312552093254055482843818701332890691589307435103887392330595666949133520539971815658185735507843290220382833919303465434097615663111958960843081651759877465508723244086098909760119626009620449989070858677757712331950714067718001846780534478081320048600034749876058185372299476330861394579608417430487937380520170471816234181901843923648919233340547795646530456661367399145365465399972100997253529879892284877824034873894485154777279386626990815200029842390002613021913449312830924292951726590560281938855122203004353672053565934569220178739011625410100294731194755502219591379299281404873442142993775825785657423927243686314313538959724221421613867670525898670835235109722940390248870566969845691076097590383376115407882497199241945916647309887193546511359487168563922922001892624272838230934557914230899209446477374351120802726428395373313872172992666213643272492735732346229047428890738048829816388086828895618643681037900695580018894503046734629092583016060878448706135707544474119385376463941194444400216835456014251516947888040013048871599469228598115209558505840288232411284389422943663393415283634545149810272118011440250398451164222546850837571589141881993135468565796588635798806918608946054035174628212817419889778824494553656216146365022937527610586354097507436417184217131612511158168979885662385568904392267217527245250417428370589191264809504385882195588311608662202965881680944738183511666514737382030725543565962729963289506659411325966378688930998431851307517847569967892172903205264772355492692029806540359374786125038725496486794928272137547219889363661650750920498968609693575886514063426512581301438291894384257249261193369496933042606720280089220975970702805212161317483830896734053520209742615552438782569091194081932940440970811583388547103884586759701103730209764201796180788198986655937288710878095654981664459964110759011688690873331987421015165055458752924170706203168596710578260752910251976058542743000663381759727296797172244621433636495074623554405269418144401285717510264639670880440125335862006936760352616239639933143892494726392454032092559381612700904165565353183763159166808864175191604886126730602062463870686327709198646580514305524515812565487860543984432797559328937925250925904969467811651674714057054053503185682142675808905055781465546712669510543843502919461555596675347126999450587995841393990086753953402646598962901113378110529143082604733642965699401873146118390702386225089613015205236349620769786683606408998383015276186969481838115673059213216209233912035123670704830462292969735760406530448237684357152537333696181480064475028912790127739781580030959241162380844302496546757886672717716551848935735299551475064962002442123348092318460012392141043002975960279942823715909422716995234225338781464107714497117270599920287623621067400997074396128187287119281780062498752560207386523106790219441667222818016399902224880134103534451219148531194591297280750643190069289717389721751150482714161826597383796443746920793876539771231097683679482214141226481880186781703814662663182310456831745937494834131811096731711845992836145088773436856994705637279526499041695247887682361302752599457610297573422309911106508395070898811675975595827765844892086669701446008185947190401374374654396808563124521236106667453323822885279152466945475686194446923818201765800074744161532078556626246000312999136538256976819272267280418015411669898409441350485551627581264446687157308757999924362060952194597109839892347826588150374528626910269983561509849500245462615256679353151112459171156477567101892648717851221399174655518425111379756007440773464522932066675243021667371708097597579600512463606507204632552700349616046039702078288643717229098407338522542957515669878404498432370098775842959171789250260069225576061474617377969093910844174210119639669209782806816224942208008379421856040344310101291724841223328393463715819224392368502227822210755535517870575360851318924998305747373760177779797171495920732033937696661608511430024744490174374160184979598823112145541772777312872100923946828280939509638602871466196720120259103658080490174804654950312360532235940700102029849030385253487548937316657166715801488082076787438377203593279711395399991455315770986681680587417769555221083156724705069264048972667410846263983130838035562583297611286871752131209560718532783055930700974408196421169954714239045571352675368576544046195144027405444400519761858645931863520451254925141838537732780963537365722077952335558259459944501174057277049174462530101631807100640810984336784636964309760595695436235373491061145938318685956853922751355080975067894289730530420634920826846824281184522980396650525131120170211629415958516156774620067628273690397476775652071958469287005651312803558561512236497208910965827831214425019065555388540855282993289895132989113982485914737951559526108157124249913459301894550677122132669277004746903634328064298718870639190001270407331344422748174428928167642305701421792560250237993061986318358854089771327790994580216627145768605422100738828340014971048471677650352763891858077703435735117925150428187769993997401945799667187673090859858926286875056063243492862139954448966527361374952332899372970978350152521910397650194485216812954696823909622621910222904242767510877017986606983878523185598428399311965796981413303772152946757684843698234976771890760665259815786037885258465151144304442687179563979742410149292169118430826376043398070280841854321472160630566949927005420017245922684331445849824516112291062996888540364590889635557805604707068366868379297342946247886898389688898742635363018587077220661565752426880384815117497935996581062179303874457457688153314105493876455360072033954038064084332000318968499723827121293992540573480181843727111716541831133384546780366941280435164988979773880792788510905030071869992063560134001359583873066580014942992936067448846577322968860715715593589430024303626850073438440553290576588702015191645395011955967363872548101297352679543352377558450620830694905607344214711568929085233551668026551425070570945241516108265948358978927146670822312366732864442999498804785003902836603737633935551244556699875763271768985590285168784048737885358498919812470788163623845600929099514299373761428384058378784241363658882766727187467432370241189263607343612319336412061327452185454653342457389052373997014502012260520917411647199566186849292577944701547552604166958607049013770830185349644456114237061783861109511135981401205829925041342362644465226080116981490172911702614621271535879025615600141212898582211899539301344363215792323749756846713356466400119950081198138269962478093440761304744843385946080982613676026978224960149562413649109514318423569755497176948695012592805214914895086099449162433394375140962400707261999946181192626475270088641221537623876179563269205608487301842254253457487939604482180219913342631930308998521113719825486729926433629283942521282554249092557739131413273859362887779439835891540165376659570055083511642033213282602088261795175285324044074426987902111904568889941899817175223136147491740213777866562205915356179276354902500459733305955109598301101453837704608717720612854458654234733037698469671838713409751784784281947350235514277078946557636372615602498511603443829445882250732595436041753529224923435996722229997124291522054663415732641615763159184619656283167853682741047792698264179704494733165832939635216318566376605477198818866475439159646657637515456746253829268507964223111933299194890118531072246984238852109514131027996572208265010073820744328381849844353249470288121370066561881893473643065341261545205413132348793427773582504081278170688787223430396471023332293647243240484574204036977140127241119551874726458027005218656655246828079709672756250581561968138282227575923858818368282570652117733858607031625208557656050437916536549895499116601771745449627566452964491342458845438820573982993069524265586225737813168861797569910047618326317565476308341625937067836815094417927247741625241886982797308116567657704162215599418902275992041016195093334312920727726145611968002530546405334556490557685236791017132251939357911157275301520891991254506616299124856065216558050500209906861455546167181591707906460315665690745816047014364492563931508607407823482339146489209647419003034736598599058438575292402484429485352475294330063772817086928873149050958854120526328511031980345294080272224108462728477518053757853553539009613058275874238650230897388926382161521437916375246808489183895169256245490016523313906804840663759543658784560681362221003779156872033323654257193489513832717142695190973557593427701707577131418723606698112823977824429925967427157915996819477719887401708924273397522639026008225578210192084192380273651444868702063701837572613181313650543883450428363103053542474854495108126134123232173555372488612670270594163795512454231801976021961799492240743952866981550394623692714190669516940530674612772615752049088798478406105047257363224582362617083563376228444562059113416359761959771667448311368990707982041720257523185683549444282322121220027238316985692912723797928026853037406270716137567016077506102970651717675764319259818167466026067593132372534921502423689104881508165467529905808575771091624302999897901114826736126267445971631634187841784295754821719962873222103453461908152227762989755222697841091725867084265051027842944484826379919436351129911899554969172854940574202851606399562416455340749801846493231020373212152339308877538326558952293700781808501103425891274827830666986280828660471459996974693044116144885246414426496750057198507890274521494131178318231865625946832997764036553003419006572167505954074895307429182641146557999211567449125202497148621511214237712527534629437493803940002908900115072903489681823840314711607686076240797026049111262419623432618253870968971526676331534862756436742519214495433652504660741633837114360032949269233077971897581022565628696633586945615056236738855331113704175631165859767605883540687234439087146642256842002605082292567906662015589042604764934192768513048520872510442933463295436626173203862497691753276989332909967603427960225970734520924427446349838467140753377186083046973427134403531140390288800156803297408846978523232662774587323330810888671002467886701273104740598992924271251153189341699789193085823805309411395058236005666397352469431098853215880748835950373266360626442456976548708044010154647429589693013403820092770468663713733162194526457300763046725652616524349970511748874145189088217028530404118520231772964167939436628576685311675605084917382983645606708462784052302115597688704664319276494797768384965471303623403751606877740556930617294462609292831982735682498877636891910088827612018214842046156069577920794234839118820230908247236502717874269181103810730876321288511807016842912000736762975437340289875211746119103808751023205325114048205139727331020963434923489056928573152555451143555289417571518867635141510445228189803292486806299564122586282721437960160952345397194799721850711303936393847638804136947978472171613901863186555500111968918893247905347380689663258040908301491632769267418340719230060238665832977075766182896205854314768364352759051570481805650972504591141317756803642531136786640860985755931323565702143210955096486751556968671228647053337250073208698730545620183907533352013018405530486942772330797568404149030387253290478614162940398763044933686015903126581411548846630692225167491447741018410195668510394503977474845492377026488393602475395219737252128115023940673971758895582768041110035261291394770186037010980059972778587689383615219875401287817678440272387706284776579234748516373190645251353264061699785752133733808964657600803844130478552677442347564454645177792089807569580673728460429161937850919923777790173073139596122506294699232698517692643261717411411419685105053973334540373019227962923288098279659815006395157518909424319509440589738589817810718162251479951698069468201826512325798506469330008547719197715473297928837597367172850477096186163682544566099932202011060866511261928062343015715503846006902245781057963339437663952528182551186373384509385162226825699286443604065260573417463638568931171153382595171708864727948124858011300860729507770269363113471123911465622889266932030910938094375906464438104314111115020183759181326193249667556699719723501844903409383881002119514327618708661958032561137761723785468107904682769581071435027019245570851201906497769084848591646322269350845430085983001181826774966337930092969706017735775590965285940216799118331411746329755899407708755127224132013541951534309708319430866567869015316846273885699606966626829733193950577822104564267719911258037540591713176630012251993572390105692241840608245867877546211792580954007033779971582429206009427818281127960672101873858996307295236946746344221097475378791086720019939767859562611121194255241989203966632478530185246357194280911274300097183070329015182734134634573804855303409466025937144169152590714445235592660868789641864309979752689754066432868754316196839502037260161921560478532282781741204018429243332314577770426733546390025897733754762719506335153803032930919321664946864539694417815636734962973041055808283077895931522782815539469250069828800289488734467200298140666141794897987764255896116507671888478095050580379441235374108275467004060411844764197657519993730541432177727007617113145597558824136332767381042029998840206150769598863544659799342404702258024289978012479613443532088537658015020793302597193233408909572389175139194871701260278054622279889046572026791315250062096242047882672660559324666460178850530345031723136254141125234949476101039837070970861443702742401865163717353242772760674866180673313853801352677948054306039532174121114449347001338619323089307747732723201402404347048279797495664956398835406130261824763173819629962564029936682152828890912166225163413327440880244391167019456928147177150431028440025434731299676179137311018317249040496708754691242164473505296570836522082742352974346634460317271433493549609773084659286547158435510841409003445743244726606770923370506754557981785573434905237694826010571207287372116839279258338586608756561958750313458577484080164633441877860461458010526538091589064957632140568949227100570046375799433795264035540702166586131961967699462230528708842783465387108286188111064091115762733738914281128389244586733710526113227696737042100374579057883757520648654851003686723228844309240068079855997618172287959022848186078855564489714926138592301683631445920529260282346062417214978724409764349542197442902854168370489591712975182305757600101173655144976206958136517666135869976187151345241706712521789971230048645137918507287451745998628673241500604020985832679382722766269176323236224590983047831251578887654255910414604568533260522408905430440975113533324280933147108023266516084182188319300004884556176047926269421511186765278809925190844394400783540010910263917997434149579898753051877121636456389288111286837573857045901126318438887216063611608481602869350732385158778212244558092886585508779616485380216271191467791676970847743498259865321978802880882750485013176459354341835389378956213122857294301279240899242291277786734376199676847765883963156132150866921114695909678722287898253202551749130636479265552037660394501840972469186056318636086035560610980747296120453491262961422966845609847577863669518796365614013078687255552002203953758404636346053422278531054152302060034218582570154126892658640559930248217122306133797469925467210281228007007583741349992132879083035257119012976785847744395663700457622663204776553857483707493311087651592455258602539779517323898589851887023306759506204864810349707433893354367196629580758786951931644448432020491813275932413104041671083536931256382559516206471804117925875801629149051795015963402856408012591781876222095796145251601611459604889538499308803014402564308831416704609220484931844448445850008190488465972013125079726950218612971320890220713178599550355383268142660362450371559977018228913347869909421199186517446197473627053023924036804933216086972878520696479111891146533970636228501152002962212711457431978394077725511004360675459912369578433636935961097710631529138416946143416825005373275194131959094657019173104279676122654363479136257913713453577344177236944305940946247379573500535499579000882423521831279670047200255115516500368756544712748008947301245815279855381923372078080870303162388984687743472427577953994076381811242575933678450880934557354582145074194292101536581697485137247723691468109995819533504732492672160274239868813802433075205527979813980250219347673584552369455890707379770949247752106694276565685513544073181519007036982049689221995418575102956401361389306671043709292536977282525469519938684716822468853661384140278841948611892636742194163678749216099145510030376690650548642281476681578217442452173423083894157819365339021971070752806820191583141976812017003420932465381995831456092744353734971372644167404612092605347042607983613285998738922443165000424053710237035317068817309350677357334339839465629956661069587859198497495423888373538186707361819261913119617115591591725083097055014138845677087565378789431913777332736026274587812678800545234857990150561745685226959119576346098237025513867685259082987643293681618925901159510016476538140133301947440145059557118702828278325618503343492483598373378454754703996527423490035549888407711861931380152511839113735098872742434679789470531259447967079662908034771787133245387450501232361819553054813893482331535132421544469203686721198530361433261987474546998393736611407152547769061150071797253241023911982277529471246545972824424559562077655494522158351324615276833936746365428367579304459612663268613561992389812633138293793673308090127481861868184411470219314549912749593881197833368983915507825736942343137619160696916281234878890321262744442476234714123643538400530585681114254811607635023023157594202830675090367121932990935634180006579206888049001054512086872159606904798261592786251092830125441834019819393019822328797499811313243501224034897288838713252426971319682579204170116110477572382425612360141848016401952120149074712598500937252467757711654178263081051172758297173888347959161895618882963819404386529218052102015109489018205904146750536799785278527370681337007021631030423857106827004384127134326431533127380489814010229679423152986370542387538691154674927760364210909166808932060920788954706656408448980618561800292921703842604298402977706373310287012761696433794813756320681523055873476872262446704745753693138293297937347168804667356797087187137995383499805288085862577913585468907059316440620033817985830782376821366628745137108788931494989054940784290467766213074990631904322927986688731910069707545642270368021527103340372172123125556609334606401228851316614971512398411958638260248150099590935281159573014166913577309327305363075330843339193471589127332556105875005525787993542271949238492783238767678793160441702531475562173543601469805334288278355108271022434338403930409027201884116016704772501405149489552973839952444313602541048611092512437308038648210127923624831885181320525656975373513129510630159663631551716768968115214074451343101514268450764586946973673827917742264131817041828479859057572773774453948826950617687275143674924151989695768252119751422274562898748473757715057240299842349959738061927033564666971243002992883518709904227139063660618016685667813989033560550039020602493447865255208489669256771572739490645687547920588913524508150910326200422562181802246305599608434503746304441864877623902125966443552520217618219370074380102017347845089269608546031610475978401640054947253259721630260412189916372329641575502212924544047820522354702446977721735051711932843390852400773937886095405998037100870063378130051854998615391216368272277224762022286149492117915539846175156059881644938178498075898105858755920826589025707891821020405176160159684432576881764520552953968677169177097145778167388419861078801429249659498392238318989808373237555283004098824209713233518944555829694444956288781135072302406377116014303664995666546868993274991006136700677616010029448197529927503045355658038971914468199473245207447665254223143562186843374751034634473854771873892603329875235438644890887616455764033561162467918502779903672550775688224377255659154094860248690886401445902166541480421718310483521781292847633259070849102869667465034852762139836440794932938189242296302693009733049597420360390317242517103649232341558405202782396998311660338150699008984024409505208966687086931016492609644197369245821678455987854359609476301815799768599854563937683135529181521187457298601935747736317114622231753539303118747458696836488003952112145943630334060919231419856379092209445325706732737506294584774374873229769355989449780257612678610048434525792046790311094539424467744249973109610310790905169957636502393859222014208989197448079897704786326888161183188117240766747614818797938375518605086849028911304442531923482608892998888883096263740304962305230916558160205507417442779017615733959596512138832771337495487327622624385566114274001466802369022352979140807455033830842452369573747965977977245560204334211501413052719178458966185040430168462685321469199732445648703361596360026913794739579285037971090828468555205373773398598729915213413444027919214259158329857519279426839447380330829271060320321866249957038795654083216066945667798477523964460462375405479619353503374060384293160887166075236993593625471925393747856491565774970711492240998434089177455601702844973305653071663521346935831148435245620313939578206817694055644582103237207382290979563467378165201372421244067219781471186367216180009028048228903560816666982066094876201501750602859147689592153224679506983635868723428730070645278359563367664443860945061393969844133453630740676984805257272625733703091348758753521544122939764184050323227829520056569595298949112231828013389307514358234063965707525022981293480811264856280405779149848872575473953277425801816042137854402209376864227673903156187511361123327756403956113884529648352570757172161768609961886993919892732575773082945509325047392524173911402168737006411679140156630760216051906920495754076300593991129508443412103526040510418900538834630369839251840117409183910226355773759917224555300992455354688552050801391735216291086905854860782331865668979202526032076898689083317518536303009159006112587892084290288576338078917060027989869777873047868630911492329232596368820573459264414276182791856653902673199608433293832238728667062376373254265346424379815551536409496370166214433032648357764148583974514217095289115179315327124465976426687521349760895885165396119646015362214588528655712750110578331202739929590987104422825379058582657701736859874977559583105104355687741303026453558989456956418961225014527870173838023501435917278833718098648308803087755271488944816069580536602984027077433875758080468670289557602807261331167064724316904800426870307332402459067482466109133027004287680543490555674901095313065685226071517736948318695627110871343583702196326941325079271239638495941083159566698727945345655436768420641453403280003084799081112094793476216437183781100642146588442823701016556195054177862828866788653541688187724112459679476872000620666718933823044202362368302041958711633993641003747326780302795875558542303724199003478936590058490502362583056825422484087405534903706761632771415229078616989425620543138026653112459849265318636844149105931941612551451866312485361998210749023752372309817675817572127372880834442330803464965311252718122332226460286121752205794722657543536522775370401505102814528920632076228686016600765361577333738712571826656029411625366959890811480020381959716268904757524380525056197016036200537380308676568403042691646536606742278885546057251359022972722753774018721343496225463706048085705585899389631107937593765009309667530238006005083810903479404098038254671608961372882682845551150838637858680422797431011245525421462435629880131075012609778669852021605820181218318612846556525966396883095239255700077563102559375725871451862128048909461177308169689035207736960476993887188423567751905457191810242413457352397442676035590158275143947594969658480218625156669159385029281180146060633853468312182884565856367247401531809660784769847090617248242359529262906022178850385925316012574960838800253406638408298816761961625118901417189943995050594476387666766501036366322914877658287822456004255919380725184028302303311131313358801560567421332499545214650821941059837901416865457364514047297181377578248565076174272410191291023476511587577432778180826060058115526668794017013320077053457550909901291773230104684657930353389854119316742725054782103534140494375590064506800030063766513706090311549164376306725320284407375577678662884487526664566606214042677091821323032818586811916835098023168144403426603593876651685087705227578085354147778525814389476835755084528150116755472747757224273909791046958004158915092142267965215303560750434953321846449474229526204932593316684499949938251026810084069149332015774410532200626558963728467503260483847859137224745982531247429060521588149744105803429790952149132029344382183990906404108167578707914638634188930052820271949153332180373222121507891889061365249285946703707205544623683600190479982258696634979355215712362329978243591949619289480971197091123869310964784896638236104249398132618118800349023533179015985586536647944128005790091710107865980008963997335560332413170399335934538139286087116185889461484064338046428042038484623595312770555064720077480350331411889891869005917582550684432183638265257306790486259356011324199674323784934678272040543426399522791818965789689084763166761489369210102885886145602635886349086857771880619713915717032422658790508643535867091869844788985376517859597545793606141287512734726765351192769516074675287493445514007954230250815810701001769026040977849438540233870159137041001274175896634712123756087081683647065184264880729481928067110980347346428173974855457791034410199743456636186557038717563976573765556463940702429903266739855070893043257167560643751095116839625584647743193176314323182801412079711101102272253812649677515258979629231796185495056703854817730437778309094323223037468243959063305955965023369622480650169707845273097659823429041115100449618387550516987069737836443464042483398794998139852168264686211303273197065778488690249263239595781264047874827522431163560167436036608611597053812962653758677008553621152772070127493280189697721952591960560544313558346696750097292452724490955257473570360562901291158808468777264517816849800603429338486952697417471120227824700490733590669877012632102420426541174206377024031119603324860689339666550108694084527706764337838598012353081656939225774831584596039083822479893962882681211700696196117298927369772468026681666016084499717178974242121861278465681762580125170833212209440970135875128441201849683138808219924849068334568636376301723611555530561203375788697350305226711464377926519025928715697666951367417781958983020095695344315776747436162423859210468518470969736876426692519978103592147777004366614089354707235244069438403259819925211605370773824454625219105009397967666721628248737231355611649171240051057243866110081177889727536809802028720360968263621691620608087378965336118714482926117164693188270780008122699479186216275602754857512514164652356721722777582034336977328765024643112449557306288334028030819885215374452738558392066568721070277341811319845728148454569810282452822314107273790217093143244427930795742430434997259200840193521757811883668930850338955378623864699788505864434089995640227914546365001427182059772794136702256026770620193538962812308947763449806074762168178362174104810916222889321866901160430243280653741661115493182518708500414986900357824671375862215963136979287079183136368122708905941900585821905317244895680174678315615061472996243142190732971664108530474056232834638941073378636476107339777112346064433761662740199846349618326770088006221995911108431370246342976427700291110941306739890101701735931186440773820804142392327030632695873338467859262151225123181879857262487164659676588153087586660403649237758747570936458878821368689480872916326356756125097754029743017784568067034119924053536804407258434705577088103405844578390261616428862593303334652380310943235423569570964146747582056021034661171019310597237941985521607687528495431295842418684617690709453262333535167162330242243797763001497121295380676823301625856054051046503631628093810525871410275869107447415669947168798532177859495145111087625480267343618243887501891215556689255014279461889282084104162344824093857053146714598326093126867594535539626093466571389856372961323048523754182806558921600963375458379995078410469186513541502770862568605115742761281020328325676425397029899087012050409711099978789636235511717076159227251906110561276505578493723861651855032886707549124435371708236898448861354056975434538052627917897341690872821392033854496758953771648139642696547648153251203665996935459393286612068717935644890809152441477168328673561269553681859346510217076656100499708573726305944943501150651382169864723991711967163730739830467833049503157441039888816130776158016603329414004193674166046313448578005773692464831123076221126034341135661446539863331087694858350620524239830291746317164033089468101639457095539134876137688764439841830862946938132344425960364270698618543652695938802637755965504473804898146679057809993518323544016426091689066548201637551944097254025626776686543343362681356422617090437318020098335430145320009649603745337371261371775771588198356019462376608341873176716139503075558006718700032117080084955181867977744206103414010231894879789877409068912077108707375147389044358789649258662336531004219889651261376783371899628717307072350828376985285517598216610384165972224432665099471160561264760100548348109874674742512709409026456280793510763271640320661227412099987449486688270077189049326205847457240930486149448076310041138676091172773816163493964940380483519073391861478159836845868703697649565737519149662115154917854380319242925575676004836272773455056196827586703066258587891433417219606055219796494042721396307988243485683202576725923737145437912556189988746718036436940709071772937641477076683794706856484875986060162298084435618749836779473324799540500014590765257404614876333579856094283450183897289211874283968591815194618773342000206693259922035222604594641173944055876374878403975666431548381067670832102063099001228610820428583570148261726566704000631741716013712463721585848908106013801911681928847207267330136404890847883708209160766340407514020844076879564195943653668279810919985296098603180742302070585382923195255499696453933095379227916061577640433966131189815715462576625130437844781361066289000055050117629098298028548860282238118157420352704749407278703711906046506821764644396054315273017214460987244630389036096994287936584524909256146116434994673418834031625088327761024888532348923254084169344057317611061455233700682550259380134710778147358945047423865445651780529119103696481215739473722500982498133844886192637946952510764264917762127613575714784464630334827916958575970088852753943181512798143769570125988796725464124270578828238810029832191449711758843337817592153205791512728444426814216644639383105862883826415292303541366034559320265684530220570490709582560307559882205033429938299615075270682739665521573793943331322148699328556567799752453515356804027244317416396377180409168731917665808632457641789274156820325323999002293270304942613682692375088231433013013005809947822532279609952921645930973293470785953630383934016042555575866380337083269432562950804742742330643984836033662151154444203724803512367010326747878941527295860342707011282174646859621844536154415586028345432199363381618942092656743929598185208346057066209293107916964208308692414824523856556783313115803103432516965177626146808163504084937193667002291853283227268244496932979124711804896522144324074258866311415065377022561573663422718293760892451615720467683139253237624342281067769711619503361735002366545725219181497191958978624456817918665601843562693617911390658872887485034547299925974370886991382686445528739277712361266625551999771482440996348668939993944900131538632505079916032027028592404224311051436753881077883934321259535819596728061930709056108054952571060332527381656986405547894010381108702561784489601916594695383669620444841100295007597593607228884691563535055695720249618118361000317209283020937016560571281754395308753099570591109039938071365111022605587269216600327598838097897527505633536398238837300029168001060499887365034551656551142560846701850168119118089408132413919614561146451349869479056879165265322441955396501710713611753590493927813295287387460350342043831056644945993788970960382630978499862231056865135864290322846695120677927898229214306865315759358583381146874318348183892997396062282424932601609550032477121336507351054620129871339326566177505559088304609988340965642335578408389287106200060731628080835896107699377078631904337157468223669542743546585883880896920352726589013284593675632075073030405673791660367528066692971072545838203066978842900906921893046612701880527537677456644520917830699976805829892137504187744318923837861171622680078059597613219661937468436546970230116251959515244660337276972628551444050783001636173361784777358073953943379515188675892460952134489383907130549259712860984321200155829624903864529004421291964610755900128822278972423420183090341797572493872216978078885069186929495843424852694367248594509933232403431482869344375781852587314063548218501734183173445284696231427773752364132917829200020329065009891481199378445404349535815671268261326590446337507185921713465411219588077242314265848542925907248597795896245094608790936237951586170317561323723850002617693434440114139361642134404482175142935132353688886160626221923356057478315166487852681798473418626460150047330006292876137129565967037930320560509273036853467794527324770085679643551784590848557446760862787485913855863691196091368932325688247242784916224909225714175180308097057540983863472452296617275342808927809141871470425654399295701213123254283050399054847044681208045084748797718865114952047389739698389869331042306561835599589031572883294565010305990384027014362273806198135944665977017336579046573051534442362563886950394516067220252059947702463416099361319728777598734772963318832705839472705189173145920729393178294550546714856236217025149671721276137940132196632187327594659745128670125848268883951628345783979855357946829452305030127449532094540526430966190729217182918498692986640761106176800659407287479643685108163109202827601761001733709000839362061592162204065346960246111693348114039408159919059593115427133830992832749528343588239483868884592869273707563282628622144599083257727309555772661014888586946477150796247805845267105149255983641354523797799860004427590073007846941214254797502750422260013146121181594519717886150918907010789911117750185987977469946801778666525762625719835364642576473889497324676505701862689646405154141643141137546246092073064760344052088956660157858760249283775400221423987409335839092604552978268856595640273997950555067133495020436730138294154767580577103095915933202460729500248484002936398904995280109961435620705441347269526566791367776490436762670682822193167552076760886390361019286470704341975398577279377387943471917529722724395607304053509844669247904153495821060867512155424773820547105016633185816308035636986816357294175391680245230832880690335224461493177564454011423545640275714577312210447744352633725442615319649974453293936939066609901179986111149156677933122329602394464536519462195135512807746371975817553798121365800871782869687935064215116129899135956149299233277528219233952320831963629875679092549131430189515228308002512957381487294607591889002830189699390391520387832614612126838367679401435820629697740327021381621769505577559288919972386867244893899560663260801425771659107995861756452553826663088078465700780612487885799202969906153038744248683195310169676288685040909833509002967919181422952115166928324684677741088123159711462381882193648618408668379629982620425687775607533731361051569046409437567840731034258572860899273704563447937573169373794851513778717394224823441984049245936031062577192301294335015196767876804960139049514243751529922878492384217282406777554907507020392059460074648029248899247880428534732102186486512795913933960842240657555298737457563778125425163306762323729307861338786979266756136716691844100495619529246535568415444404361058374415461844271069561682249420249325018661268165168522893717201002380601915034940697248939987670733953753418137013478213882072872223208395647910847345726911063649094271249256935095842652485032203112672983960896076765558105882844044160581829121142791362294815675438516764937855984489793598844074809543917422001148864637717050422119656043847118091821220127192551694291122350603489300760964467204227275101472833417069062461638968676963461122400689573439588062840871330988862039592240126644117860787821550381726030193089888889983056690435325824572654961344105236230535829248475752351694076192217838865051255834171661884652968284105110430013280580996142055390925476302324989261471055810299639326683623484961146081152970260897613060307064114541199148291295265880524050353473646778956852978451504868054668238260086309317541444699877443549049362073798648895654943427744926521680526255692707502226759057006992972695038840367885781922513423244474013075222597067619569752301139803745400272110977056917523875765055934080772586712636305509000860575275703324193289676562086665811840781104337617960757669213331499836487901667118961490311057160473094636000388680313207412364064226555610440232325184071599011374059406757364289208065519720822716235480268281885867915595799561895422352533146969882055905028590020474118700792417085530006360903980992896548408109414201708898005294610010510093380637172679742717230920129159264161164196106959349763240706502189643752258021024501874865379587774809457548186222733828299237819518114988452667182045209625620614866803801029662640576180336201480751699815712087452583606578702648239188459529033640865042261178717593487195717150207396251659511152794691142437905020234760330835962473391015705234471045040422386637884056091032706166622269722990047626215172815111556903661296379438912997733185672947603321992178520599780848922845838362913522110188354395744226499535895801381524888768086735451843227582158313063594132626569250997262278450943773584224392805344477400797798830217895671606968180882121454245471067970952534285287620381734900106290683070487510019957407852361337168340943037350944203608352472593971202666834107639233200432856879675800170843498570698723198547805502126666093717495151802632951939473239957878126394228084817060231121309853288367068707297523437270353541658694800958606928568734633133964774212037567152960154166096067361541126568176463183706787793984437880594089559710613777003091825570239419242307551153919152921669973059332213157597180623118100495505752887856968755080900216337134502883264521097090431022685401096583715835952267164315006832779337457093439134678705303374486035507634709084864559430579721111713669669621965589414735619261926501884736037864130201997405304703649996747297008499272102551915926368076788462117743181570335338758938803982663732106199447226096842100388814297508763027767032797356041048869699968319502765569644220366608385583723090048303856328048188698812764641721782427320204477428614541634232609852723809950937929875082098409404782092671323585346360186052811808898433517161676193227141534770389891576029815400047462235988227422017903032276090851499185631888090534919665770542199061532677793511830750541797506902951078240214155589212777442354490407149782235472321091561025839317318079790475385995998459473865384968806052698798258311989091446067660265814783023760842102220823339716956521954430564848357250487294536597584972603668696411004468718874738913898715105731144704300613536539547876178910089229093390179741618489387472897115599674071630546296355736960933296918805430392077796491407952386119256629469445795736057251102601158551474460222577232647006393001667360040950340035880807714648235907043878047142736160846069005371446770379709990691844294960003144719915415833689905940638216500187927043005415653051633486388134902461663000132502993535888285578487834913487356599495250884899672642926852051303260570397974379956454779467221531163450419859826871786953935427456033493214602681322636183748199012615022309070224974478293921180326523522793428821662003674851590825841309155442839828871766276647199343930801435449330763807251532233422653520859661081501990939464068975160156457294549869889669350974187606623917842305880230919043952197961304416135939662465897779332443242513177263749037610813660780424285404129018188337731220355780300005800242372984892552121607267578177104027496498936560407777955842300692653726943579171369914955061995966206491074114515078796121623076778948022946312265642701514381054787284420694549269321825418034347859334928836443910360762721090910898748790881825776179525809797853903687845823787056799022509305127288448695850685051451990053413028990731781621888407046460572224374638413342597306955060526474878971184919699463959582896106713710776673379169942232431436395517028921514508827225675843112295262395055206623667052828604024945993238909349311932387214458486674187160324992574363378971040111238995750165234835806134230687574061028877671529566126264630500610326269808011152318259577990739152118178517737048907937328781672815662492147059078046857466431961551064719110863128586830981796688287024269174193418723665783756382788313747863829048642380819578519497825047488047699122238303763379844226336421968212185033239551290361012325454505884374169525246318161363735642852510169062419811426788631056671785499997076507348054096477141889797028826913855684988560279159768545958384865913601645108077233520647949506031075552616579129238169268568084967351667165360657309315531035433460525893913216380630272656750906953574748289643837160266805289593308361309682483976200394027014256487616551826823285909196377312788625598389116507579083363524867430898335010871377854274062426764371147904903286970256214416806114720945119021647042921927393281255946137324399036007987528962272119283961759765148030217219585752722980681457137423527763730884543254945212128480254624890793146446464407605615344100240879058710395418891020772509565093205552966622920580430445967869630326213892937441282367566577847952530174902366999935363295489145795957398331843012673000265518893978605668350953437455410680961400418257311050028140994081323799517739266655130231304680452665518771515539943573507078246488160925277209081100256623864212989905962169150214142519461262676967169975424315338378277196820466091724635330941418646888421465249713794458703400273087496277208413793983113203260444931205086109963991268597111640687998296052939634774693645117576967782770256642765198868562674820903192514078782740918694994760762064377760552393616882617174570959139489142834191017508633758828945029775931751540872641476823404182780413996481339247699383559765801833460890379381988367134039442865178771805941915986488778976411355002864904657086600574142726814738280654567076602254713020825590382040388949903733028197960490336379208367516016058423782936604857874560478152417608920285784457658263392314835735717151592295182020966465837160407625367489980103125385575643971712305657365786754991873442661986723650621357849483057544084140264222651533586150215670068572146264676327650536388670686578495978379635373798169807126983092822245298433327405453888476390299080133850565969027535959955756312735992421408440759486686362904165040387107016457139904677169674732046529809707943707561730588289437736226845329636529697186504689857918151237668458889333530142043733398014701176999482934911897603373384129874088878152629721048245804401708517565966615744168644781430292472464101076118232198929351597655746894686228972254218275702750789780338883135808289960786753499010050519499003362172576425695223991946239888175375227717169844727013689623067096325937006166907438468075779833728563770161463793260269870753457800224836785859502677696335796799981740729954148029771517689718672215517415096442806892658021836407769307664444901550583065050581323510503863535011316895198762603016043899301019313764630427064103150801734752180663401776172560435599532796003627099555879753349570644690572072847037265631198585486895780634062968204073414280686042599193284454396531205015501063438298093057925660334293898931382958824691254664121562727734006078386768878204531233949169426476675277770539100208143977983646245493523957101159760979916167156645924646415768214314156446775121235717078590435823943015655656734047907146620457036570879512749456308645588854943734863292340032210079692750772763607375541738156063068260933348719338425146469583073361463734562306847042970392085895103794703639351474720102927518170686303769797292944559453478508429097131955675333408476565595840507719659610141342583301258326158641163134625119407875004924142029557555759846738857343703156091049912336896026691632351677098548963974878710294194336133210801149674104860732907532234949872311414384945356521140967232215499032161298381548728001988070224180128278394908234959759986648165819498810340851891543650139473343250598472049814117021386038961042422965779518647073636974042234896418437433266432317847280627307118729453278730780205298963998923008374696415914048069372805493864654015509154256281788118672579431295287316438105450232879829894113635524058364540810960463812459305031868333368151732664505657118873992347898092838755860806460131761232520496936435837627500634923554097815298315716000263550642913733205995078055879342384236695499875902831479846819417979237662664648815115916379261226034077923648547310630523907049900486360623285263580213240689144601641909684539582192802454768822075174413070768330518295821406403371073180347421667832499248396981232483636740077174286820493334505864817923398249284276824212394215149037835168316884854696570540729562963439567924273382081197747793646467079583036134514926085778511478340480437909948311813162641674890583258253184193020484207780152483202020793709177660653031688403804326724658810692738097678572321794264796399158624529799742308654781733482258758308182035829962121611047269745422823135498758006149605236477780141349484734633143205488732130512266586613603921833665541263192009943651307210733241039642499832512147179942712027028065104640582182328252338836997507985381911949610075096725186108608451519780715924050957967049034146251116616873412527282120475341918646482949531389578028570618313205426405593262724356584393673715070845359675804321877621282652087439899638581575808271203260018919442090889047960361604849390297534955055086087223663075530533563852044517448352004587118170142501695490430535165284924704196186409092058862749509309525346942139291808242149622277116507691248826578370960116396805192519944542070297604083760304974798909474350196781611970185928028119951559416199908435719187431712292702244718428730117782515772505823897376349391079026798314814252172640195654840580074459216237637154968683584977509776580363529383556804739528434991856966622651475347783228120111978438798286752569465099512082480352192062758239964185301978284703361134923194163627841134443894701936120670908287150764075634134349605561169118783387738793082352833458341254271304251657481938507694916154453431472800899808056868230650593043195882355231929626790260592136003590753145236200227151011731740535430019423574417252889048529877062825372285464150690963763343928445770866175789476469045999871387797268019453217496046940271521707418912458375052015374474619729611042446589973006216720374960676391011586764895204996784609114947298546766816261681718420216324492582623531490971513925325885864149686256034979607248304009454643394483391911466634997073137337394963262891947751893723918706574099193788682080508940484045721511254171162950323715529972581998252850912668472438552867678264622424085661797491586033753959015946216670407282043312136507488476689160726158567090410625930578974599674855230318205343367598897713520238343908656023394863324137279901722565855149449738264313447240103265051686140059778714639140403259756460033364108199479018887726457634882601105023591405635207773576623144310358638051565560338433784365593295337152374465683519387512872017240598005891372607920556644884868856319860801033192830500599297550527057378175736521568703691836055559868102654428047153731610444994733973117544014083744060753014671280133017589535311492310238180480116827288944072105017774888400776042043277355751900411041267518989301242616985161684453317522528124490699564979826778132017135060652667170287191337877231666665773680398515077848179535889400883013378794147752763700859031369326747596329207495399817954870969364305802922197553779979110065637574296440221712503210173910679126883093205491462030414606632197374228704603358259495862888509737439504658843570312433319116869576947661945434848348479439497723059441061070229704721978064880930554584450845365583830814819873444007175073734743505651382072545546998032595248220833608921234396366829458317074418822526454734819983820102463231143252161082359489975525236770928372178385337871194617067663543293354970085310550654497889888565665900296720582413904387956021071696204606071695758642587555708664560446293923705709654429054061409629166138649840622295486212709390450389192342979187692004192741047382573043450548004797574223638357192307384241501769030654041017690509743039592433259957125698278707438920802287176987051637889672940588760687618676244658657896290860827961579708135079577774193605559104998232882322157997406996668399065242022093364705696381858998157908458655667052887368802655408513195424022747673602982718752515440241307256677959920482233458177922977366962199484042766903354068030269401284426528036342479632949937072505240810294718253254188967715628613136076649740424548678982033918591552954646718730534571214732096435292931503282609722918037867561027019778171726704140570691836253321571361161353020857889437027174847359620436518544771112357022047634719314217149413585208232984025285723096579938563596687457520913577408951923552058247650366663476123512627837154430642792690704568760571745399010125539702510474542865787419676589601435703867492508801984016259860749324959318479501157901561512514000010252537715028747937731860576430524007343589549810810280620487790968074086872231681824882756692218206481609155824659108358212721956902905319524943882380840202147889224686422221577205007281791364475774984928309358766797680618807162513022218518620802924669438328741351005048539448373753667284124238022561945687505242864012713040067004549412216018929028573278056585709092859321961754718021567530993331563409149946330844333522150207613835919034105308365699742543462973777573914462583627507840879561391174019794272488292063164086783448476770504785376330129326040717632125804349949432734707718156684187098763291661724708901053910832551938214533214633919642243493168716623705104102623371766337804160251931455230108162641824393902280378801226587502205168616145420213327589171243496825797071904657917946709498049833498442410738290002843568523826674244540698850300631500678592568596224345816062404029046017261281976349234616358962585326116861509574811900706608071006681633248431403552135275532622242915800775889753440894618735727851362376708858077604707277253435931873801586407142108829178532577806803906412734504240426960306285378141039912022877719131781305355622121889467326576580454193554065674370492717601049332471821573941169454167536911321399853142888015227023643452233537198145470624389268042112056388758225686941700826764725223792699675565463196813610927656947718208824802023876863644667385226273929316790119093657480420861399180349254401419739993442469728989967001264248704642789020478088350914213752607958043011049300148271448366517412542041146496604664056347526886837735370191064220871869916118660623173839763163044904314566660101241465977156385781449606800855936865009954244622410277138556467695697378650572443946461274461858777775599462585664094217543550841840563857468776554129157091325454262142208723833940154546666678051346333290768258893669249949579630150419526590256508262202870401563973790072169886265913314054166666819416896799213316341998075286473708045077592905776230598400074028145560603140798359940561121991310801750100269965640414058547267060341981782708444872180363262975919197916658246193567864976362220461233341796949008377111968275169487375173989376823702618349437905132144639717121651781455358051914141494648691012070023337951944083351496831325265410760207285840296588685630646208884952010460651239974007749316318726447407985770827551522257808947293501152085863387574684025613845890876450234724797303358245822236384092559119092858291417833482866815663285489472288232890391687602363705856037740435399889081149462487003993389891669193100544975585844058069986768454850763193249553002518545949207703497686227266004570540118000904315437020198642334590504686137853200491822483054356771376289554000848327763725424212951655144547202265203958892236824107210375965090650237417748487578028957329980541898271228120778468376517369844373468845330718632362812006186244004284620295425983546934915838406133275615233310753479465932955944816058888843571368417882141735505783097111374882059453945552340301980353771338811902345427473711297185945207626182055752596603056611374661759721408332534917641603500440188043567877565727846704172341919943858680596451860025044672492209624560996206835895409663239041111981232352167485371725159601727009729525042682664120720981699243390613278646731542257245724090589030234339162168558511562001272638575309707587508570947800839126738786898588060068029811649565007990097833516373659239510042416542335020044157462418511431078052673646094192505391672375082236877787680329718640384851255499074253744672652039960481561816420858339508024937223909978308136884739722319389933909929127027161252467319272980037733913280303239869907096433486499127296597158520493538464902937586593174044292392724970462571931952027292170403996078169151218637421635719571921119141253293606917618130217851804459715414446299783645601834339421950413690339052310223967755417417872386279651776988524815194991390917917880259282990865987336073666946439858608184433228502602421379472940980924224025811768281428455591209876718586343178956365492107994547551790386521471957103191723564490233755089301250401619635651503271978975193760461282268374738045793837162167036430013946218730216503975058960161726575981366343651344642004916221939161155656047924781252328111052362773258619709692792614777511614134157365972000660509232399357570657734454760782509662789338927995266357165007177865432264256322897238520673951101451246552770296455146054556808049966650165954799714383991759336867514091295731199440921679765600244993564393528720635736668321364118043414149623474923235969272246081575124982448505985168345541809634368704560805567507191417231611522606557218276468102821002852954320766005122362462848454080894283725667838642907892205381539596302752212881512799239343106854164493584923933302735620178712348018278591495238630093976801150199253535133426537773786586476966631930836567297029513762785188211957930369589561106792877550341571417252491719591420658110394781868876931762004291327154903947840814161802032810126867604437893193556050575018488651371299559034544058771682534395218062314607086124215401877317725434154018563960050257206485311000885716166001288347232708042408664268391709298529584497474020952819284052033522634238006735052072321446908974574307035346580226686613957691779269962229362128530274782361189794354447722599845950464439243525068188062445562811191680296223781618576040189115316723414338323791273432485391995042389714326461907922081879903657025720399392891418517438513821046928853454572154180681965184401771245250088411827333039334913602493570676658613618175717454615505407343901122965392140706174879829447906811343454646739779230223590875953282416689814421103071523081317624215691198600906233294798682479763783185133564734055032629835991827563354342083518972645919181353782971863327526451414014480619461171540815402983013557882350808762930412759723876007812314080599376354293648887986871003302085053887592068973721498778330238061546735033147992347341303220501838865067998001455097076591303185902182268330656826632697433404723125368631325924508467577814603042832858086144835056150095767531216052706230701635337318160524476282145971770036019082888722449114142131644869015955400264503842917625335268113775595217259832741010483260463562144067000390604661976355663776860212728159629519965561657855038908089608983907657372157277272524158626231436955744762741143493516807657848133489930361483304912417600906231893762429579362778256155413324223748843787832542686043033872989583356412146184274483764517129136288905237838125131189640879058991554119364287439895809613348186353862071574902413180258675140196385444979922937887355269619232618010857255397475609242933885022224769386414191494510220102611647240753424411902062618215606850705661631783180824469011171294308395637439157905636435688112130149388471178008235315917929368419433678982854365231381702180349448328695392380012719807034816691791287957520191718285014398803595677252094930209882064381007318194468001974425437050629165348352093117213077677014212036650897865651748113234217133818588702780288874883155795135337437687528989759976345923786152117885869025025823723448188186391640020257095097641630246631847118437474619279134987791906424100710260085911584094025123857015309607030739317716675537257115218069055351801412737565004891315300058105909823923082537294904059874374212402257437156835420034240477670532703218415432814298877010723093649577783518114309386745526167121406648545665173684452336920533144231201458792758719380503717758665972547378108564265063716258300972509854249058487345611190843641020506150905379017083140512575103599632513346724877137064267876193206977142271272271868153211640555739058886530945856532225738872658147930095445446186533538657187991439386793654246668593028555923400917018543586838946748780089843545462956345072339416640537083252295229661754181799805310597628039840978251493023560568276970545444993251171431801344221807516063844244855641893113078229514930369406247106690688819645127691269545341133578309284802691027948420712774719140056085553245871384959303943043199651552870510409166505973533224319416312925068607775600953746101957885986522726653028567256879281645204372785683935087210140162893219854511032044558288465583290662976581732750487949625083371793339303693906016225737295161306005283651219633077024556287874211034674649279978652265062383356963630929585011574069455805470808668178939922323750235711551683294072924138161094957313626792438501781276480117186470570471175859627544152026689788072887454923673081480084242748368566728231012955918656737185699397848993478474970457889688330644765410067636660893364381809004731914395222190093897344611205308292846581621912988849534739907001993354611937414276151498468591589235499572808445632371352140661034763791962037770185241626897720806704388296628279575511945799623113784522907329083460613798300302623353740586449718627003947950386651371844712020628189218784695274927580727368939188913958661479735994461793665891478951565552585745006025867535975769111846329143978178029258694154490437675155374616166664913075050565542097707507015750223421616072480296277698584207662876726093147136103312110105004944106479528983267832166496442922180698977807199058824832998367832872715333137160256715838999448572840276440068734781581191032295286216642202623389732262941754709514214670663318155548414019212796805410929703684351649695845551630049643955656210530232603618509343502481136046050843683273483300303518219144083718670592046512512873658796528387155872420406514203195945337004570946294104354780139345021800585167744046323740051924334884906136206343470631730616949012070602817325260298035720239186801838048249896068594996819762497762419945626112031740999910828142813208519567017559141227362760660341529570837828969141132884609873703899024484828704149093414147330867035617059943795914251671568779615748540592389975379817895962775193427236534012256662710729926023512906852441782115831608544011956414689023246337083009288905620578797750943828773472917320098136364702528218300650709884670792877249139922356750655992298295769240845404051884127771487739591575785566911300481810418720857336685118338024911465762847909121237492138632008440443609797690614407933272031835022079505642110866508709860879874493844166306486191096475253610623612363160285387266150212175350399655985660921269095875196008145793510974453346729511926131601708430395238050800010518738401079992056693286782129374870059796735810869257805849152002821943883488680054212979728243426835415143011556983482151913004663339560423209252952981401602684907183641820773215601382611975861299136527449106914277337375566900802596231434659528731042461749721127117117760893355999849358556312712663671696128649495414662099510898555638443095022013932085343906472889829163890407637596366662360272779936738234819902584977765406845607105835244704728496746005540799173031663673107852555264202891658803906986338641011958808757523527077396669726274993194464843379816521135059146115533117841685472906839333667920214041322668807743658846836710051034781068609709315804896878913676776536939375210550582249175242251328052791725158853606850423575459983800489854401729710844502359895281298994126292872764973153201970813101354172192967789259429447812420043816988890086747390602570629796155012214834011452692840263853117077830190827470114784596069257182967344466012478166730292123160751921934402397385771049119112423345005829090898948915645472709204916103928136300862160579047290820041881809633341404537044642774204386901918023854258592523404376037379096552744313710554570997151900975726725842490278781228030655183852969513328337885454564368743471154270032427271504552019822352208760035275959085227935267519174175083641004503672700559344514169944485292692475089082515968689702034699899696040156300335190706760528849638067562637225896235557072085635206978237585858774241548292973904954409722904741559818033456391971634605360460248713862951612742626442123777361644859697228950862566311971778044415787305117198820933348539618309135734773923458327598202801464434168960415931517328901201695981643504332666778048517922805722477456967018958962665982166612099874443178031939349215770688986125492993759021950780340723649414013789133702571503449669769812795356530184716032325823598428680018252873267040089651746167569217116946632573714987869900459500069687543170498335910523863116841795851691987856833614189523229267568052380629899207091123462540110304834157808489930002324998668160969258929598187722782320281940762698930257233269853559803716515752266187608291996429547778596159233871012389864656919434327495326124152909362106917129373542311423556093588227648541517913131775130464781978555153691387009826008516107278263435976969824262212681457830932954144725284563877377989884818765379292255084317770719228974312803157254003247327550356095754929195150528066817062676720940662864745192374503782361434432818396456164633832603093454011245486127127413845725765750270982024971131211216965502209511090361329554281552919984542263347070570411507494421814314445420520292471752586547653706755963222647720630710573200639996925323018185748958250943220551069834322306734296982531538830147741141160701671501646592260855345634805789954069310137853479170521302933300557494089907105072309231453213288929335921704570827353631699003487242692414831146590151616522785098474160759151902024674530878666953028813700583505987685904317870772592295955285957624243087856071033535189060570138918307978010566376483423650888650359788359877773695770935584163480206193628186630893397210868057809086538952881922167804184368937921516547764469269940306670818564756765528946545311808455033696625577308978543576016537725394865010391114771626770895545249823996999630820362655010009166243953311624655599408328500245021795807547277897958324451128708575679579435458542493929554053536742979456864390075648243131347470169093252247340034204207950059960325241699275564725505896565496333312952141897996612106271844222925057573734329422327548464135180522579973270434934970228327674906585470341583034405109903403066133366407068495077812408605147846148108873274015400987419071172059762023497750175294479585811392642054315234838806050412301027821100679304229615344095037147188229111850476623558500823733917467654798793519675918356021905092228826790965178577910290352027732067437249595884869819668843978145876352583711812436858417159318465804863001313405672342265065212614032277352605498437277771690171709963271709983171690371676292374707943872595360126309612030271629116792828447117196660107872196006532272124341396590895494846379866657117287235520695478246011210236570974112176071022902437009137271417008305173691417994568298565021385782899457203257958077882365026674568786472338670298212218896633591432617341741663947092228512097951700328138836165761957808807961902654659425683362394023690267415353006329113725507913977290228621849615127688526474994726915357328452728089779235651756254576784491173050396760446820303025300422323734664874803801607108897271841967411856061619584992487626911377502400930311462574174745509370459497789792283314203764755287469142920854451512968859113279015802637797213688546268728843336985563205529541259639030611015442070047927394712414048594005899653252265468039281059771373706709234540054776729852821484246066052230261654928100701771443667259946382538092119876860830517613024467571737313190262388064019021252158263484404112912553618827599895905234006490212155481667813313833092640842740874180841851434403749336197734360132275883185380780589790929893601670342834181866777666136742738351664420532000522961987747264250531492236516554047882619907350773684489534256422652008903766198603232286398382602696275377456973081111533461669354470465084282902194249014074205887051804695014443955470563926511055959598572539499034925912746271242989445774588366705902932977037444899204020913921260693956654899145330705130946745256322364883907734257209702035264174043812958486835160331399891526396525410227858755983718751508286884037044413531078568056045648951410274707624589415049220644956400376428311363538058626810314455749593938515559481703692372926082169497581250277120907635826873460537437675670760157185023847161123957390178837658661445878894238823251552518157686573611310673876522645417197716721136272887854026575709210458754191572400554227358056009076243669049230653817666626515307676125108092693348831002257288875120587496298965523425576324070242816649349527701155117605125263169759502923188962013271896414250096113897425517387958078253985872034419544539253039972554049911967274654468455852166489748340397760226174502281335660747126398337925130824895651592263740387226844934297737440592216715670941937107075214439791672955106284388550809110201371706867066866707147811153256095866716968898399660698084995222211560951212302380406435692984072582399847250345546108077654486003572722764590250783856550865868572784587327496624463573636361886640519192715881081361206870697240761502722022743225392893057877993972031870746140803730857756981465364328888776949800817355173489899599102107789318195284351775787238277006710036399799176914212116817260516816221634813154912939490061236850051788903620006050284259342245798106209051284977033169787656566627165159267394669428089469486808294080383688674294185183313357562931141934810106336667240099425785204161092427811535683109420584443638691492072992857822552435975263636038694271913230244884777582984837168901065873415361688661058387415592265953370353054737641853538401234997311617464147140003840289530321646151746838334569947384240214497388786146572697657899647598385300462372078730414652937581382932423475975825401791246969765786037426869887598218224212035046909313870846657788270898931348952328556229533490845630245978702292388173091431688073517098412025050126340782908146277328057975010805154215494153641295313076109199901505770992752928783728384801259567599417070219398482381372043648036910860706258261653422015312044461657289015721998791121690920682901110864111286605512259184291334194599168766651680134171602133785259917111643241094216034964804776694193228962080746222731206451620552413628652869489034516421007379969700025254316819328478129694756287329044467391329083480662516752892938324971111883113065768873551252788635287046553238322230295625718900825129338293511924482628059487320519179812974367861359348449292221246426805096588089234397009249068208811332956343007293205095563387748935728649048626345715221412203425030927648645350010563242871141868401462723563831698490398751258704693011306345913438684052671662051918271304316863615862137632800117026825121615435410968773228791714952074701608813892800587510498329354453189256928663511354932592492794568292617364598069019438944238957108909707948523456003470877367112008308307396984539970892869386142152302486790930335736436779543722331535150284094685579719394819298669957652492315633285832947466171834503122625065024851779369538321401197178757638314509340284010064192790689323496874169405607079254804928736847571223007753471063718658295755215387411471723698320148945484338513480312016823849770435550584775319914529466540986698570353989687879710916287330822736180286841850300422246643242645072304092048148222980598829105709569282886521018815426190967298786555348202163434394920056068643323532543862469825963154244998228472507475617554992593891319429940052129027333177751592041623622475436675676983324066300259736731499514847954363508606731682640319404715755280064145838058114176293430849816785100814848517076908355113181600883526767996568133827374759089639633286318871445035695513068659398415942955035592016914759415141107755537791562909798283031576311632666721125035139316626956282662412855723640483260231303010277248864227035411541748143721716949821071073760998719861779115709282148018807381853223898190822616308455106470935287210950963797207616129403011758255947681618283477782688897710200726980339765257439603256949834962022900790768201139569911586025381938341438356967555105033705727815854437966956373937214567220773643112450055419099317921368126898201461371457921771351756613342164543076714505065077458292101460527572331253300413354965733656582046078088112666422163471781858089905437771314517228904576944088338049336618119410842727211483637048129328677828592487963672231706769130470380993349061302975561121572862529401941532414893008639398196572671890096653822565195454952019832433422026340384249125891254663586467563110627119529027222135488783087462426342283672278558056296430620282732926717718475237461074582802204818863992533863730760361888026004333439572158328167112150722009455800024313443780793070888380797166422748185921046200933160672590775481090266746021833033085967257950135999749149847470571672206843246211109465797533854208932545119567905437883675414653413977664448138486932785869669019577382028680446069886842385985220839528753328277026190674033573039481061201839469335969517687849645094615317058315125317466988342429529841820637462588863392373047344423683568792471190847310522630683557479889063466910468341700087545526560111601074647466137481764906455982470074859517055015092084385765626440554550537976442604577527962802776248164944884261597016754137748999363523095924368275235850870458133067944019260201655545534481416049490738977284242276681616973211418541936450687356710464232122319351534931363557486090425545434035026215347600619049784966284032271895855765460098798158886929470857114613530975931047950658558185754928913460723036089551645006352752971692907693852475500056004923272474242125586943350359286129428280295593451389805003846366008667784681300827589136537925069163280187011440076015136880355518412248774559127848200228860588649407898763715019561339069014363770869727732669173740629899575665903911111269366324897464352279729962218919563796027509893172974437907485507466952710992059225393477939687687096636531404352584590329136580789668762472296840002563296735771989725811360615416784276414303024058015642134805036137879198578341543851956429925809196170613592797419539553335374215729649139389458652716749033363180915466078829651887479911804635624833043823620409008431510933588536566514164623321346009335445312629127307565442285775992212488590808652149975722864355193416746013248627225133136933310897598802821998049127807247892389023463855575735487068418325383209586310554825699051118128462312445370000977429746163778960885246229077665822107106574813447912257812064170426752885358203773277026827928061108046585285556911973435724357575237522856908960087368602865232063935623143994710522124461021814161497262192350803359997470544570408838043878590927997064225532102791065053318030714144260757380423054875801738808392226374287361658504479565182764278769086409660739259293820272102167133811041195983744083508179373690013054030083829718088337709718817392149419312769504080252902477658370225842704607449371288362252248450030138991617492024713915372784514407106547523139531305660496512607063788656340265999499749220618565267800053314361674260127140229577233607697067751230248806466475972348780457761826333759365174054779642445568876554849937038744734153951230039320250740226740357688393795162282489008948719151868657102328970655451788646316631957820111593589660096778718273310650167037525235244405100144855725222980556517843679355249667622159487893737660759988921992831989434148306720114559392501585777231776876553754587585236735072156025152457196866335797535680684116317397423848404282011281717783848661753129075276585900484337752369361603823354566117143467761069964826504423066540713700396403439046721153590460275271820938172847299218063145293895618864503269784491378222128393382283862740655826575203974124727047811967634941336541223911588606516078208901249580011817547853148130209355190520944554034940986995004311839136393555248516913078608669053182768586617260059825854476872698359893743502327223435783578312665461231266096805627609739132429024621327789759987357754446892670441745829032125472974102128052594619657855259444969217115030991466925703553987238066448779138959759956945531621753358794986326553989314124443949944753294638039745938250647470906342837253697711768672928691742786906793099164659872078254322995611596530153731134065908067342677868393416121617396669351712105692808506608054458827945385776736148958026541293964462199243953755163175705690487508376321845772496764274731458750645464338422521009513403233432586324943416623998941766701402057307415311141397890728519066767377904251438485305875982851076091212908291985810522657530167118473461581571880206378644611188950436915696103194550936002102449524665603104328013014317091372130413827690964324360527905256730799259710467085297937617666324418151572072975583861057140416709102698063384941039860773310241976352094288404123210629213101961954437832637813269722115787754788854129071642702611214314779655213482245266652211762515515628107583969881747337538964138537049243630258614548753003939871726525619184692391736196816324436468766088526407988070770301602464907418848833716430485365763260196152500186862514312977935241191400515982416777191489835822205434051087433081141005068630572004020311263711256081489133320174901332625444004899931763121740770297306163899579136775510310454434372667195064742688092273648324102272272167297615299718765513209076514929937607494275224762017084390423036606085828457617899599746421603290120931263197914464340153555871825855756054950573942196154223963695711564471543700498253924904899226959491881836193999022780143826093193796337069587324344046568398788884333496796123997132921658886895478768312249565343461397851247187825949461321507631779286733975646467035880567889983323979807375612112840821350380828105385549410570258233796823163282832859290442138812462366042240362256659189234160898305397866186844505444619936413517717698377736959320830744885086563850081289572434008073605396354024151076897553471479095828593754072615796907767110595962005259691612520455949104433561329966995749244195567809835351206983876197525849705272648867583760479812473207618603747325230694629907424111539940797508934137079976000861993966853808024213831382362602971355835350156073482060433744491357211716008380239507213549609056661878649479924370732983087530477195468014890331368052956505903260381451249417029506057759982519430412921959220446868912624517586156092960363011469535326744830880348821082535791668574729637542570228420191153216631130486731116449240073523091431586662809969563317993541009601549310636453762353107948472888533406060164535364475551296083922087838438345381639873689800175074894683690808934740113640459913120702350894674580396377652027022413725279715045297654378815283714296426897727354430087463207509468894600595941549583191449654835480332373811939240890353855300881449440239951877613406041287095502116380059110479603832571501066390895129593130354339867623377414000815697162418909105303929255894249428125299680507948319784465099536790691845271418886792018461927936552745794992884264149945893670917043851765926721757474772442309353032465916231127773638328108050799451117822453949018507483472345879793121796335212430577991441389393728727577953282406346351462562134502343098162875847135226373735388673468763392557609657994663754597026970671156051682563011150513011308876911543638561106954950442046531367321291032070687965479344084230150882258221551804151035178438356498572554342780236304586147554410265349601677490039439229832199277911788112216598807581660754270838313936745229878022977455775788396342808205370581670241618087150187047595836240950195933856724066996923200441084875430372168671104078274784576727674098221946705885033897871385230461157150104166684184005406414512669605473065118374338879478412551355251786384280698605949181804304895791697051712054446249875838655136380876407514951603733143641811686119984968154049562576632172656535773789814280323553469999555060489020328085218178635705236093559447083200950835693649526279360076033464055571352073681628359812861081891433752228209181772988981439018145202404417378468530126992572251229122331456847566764240645933251581088113662933923824329506730642734535855126866175307352399778863136476368311176609095746965854018027889541673697864291607850865075933297284817788041633511763579285303634221883202635203583876002611462212157176236153669393415590250876479450861064427623394940733777107777126299480132541497625264450856134888105761728446522986370012596042193593075531638955557139967455485130400362579780262217673435062954081679168622351944651224292490945160768137572838486487727850285499662301965837771060631520402364784567640594548737926281546267109368379912121437252113971404361191366935719417448231091523484474563581898345340424209122215269985485372518574017966021383428188631598270371084079115267195916010274450893717207050056496502251952729157186621081159859691323085875004525805193401411965418366469126422633611038716663303357049956625964091995043157429430974932057609920750936056576272409797697561448318249498204348164582655362127724764745435204152569216978812395967802600150930030873006375998748333970460404564768630786683600024752731333800787322773079876019171849803929362846929550934344361932176583169766747880808727731008942842826343732506924122201907745833825777827019931410390543864332458982930585074059849042280328866030382452413032213764817545262148081633437650485675797551958072794774653954427085097057001518187681368231608315389426712789951769741165239339030921644085679286319163496620737223571899097372722602912735467234296957440580232447121549861852523154330599413214310657545059488156138389042751677919345624997398180609647788710513792285891610653626468562393630912064774319341790772461048653756841432877763420864320783522613050370134214457319974055260258288052555656891514650781111784279269477015482371804859150994073990345892715887772319314043576160028229800850554069377723251255438218915716871971942443197076499805628251626665092860631884711630629048572368301117742241125113463103756587989737586476200724104531753336495491365097938444153086292168032238013799580982082320737377415090432405424245790870173841822366297353757840718228003099403091028008549639754903601172277171557593486034146913673204116292874362776820890365066731139153605407315979819648325932527677617846647246577797721266351423962765166318819374524031771678207730498906692662166036516707615856028025251366719938601241726797833696940135031022493895622687000712933259773787987248885917568352254568625278185732512759744564568680135215568958377054744858348050970773796108323969193447248339980326552520096807849989466142540969277853699123627192383881395334402139281831765020497315067141759265505584014523980537092617740385287212281700328907035899114417733188839995227371538664974784505590328869623578372294274530234429184242404242595973518793901663300949153816397098069810138543459802567829497138290222915795606428068989336893282268683087813927375798985640874447086488985752173051428385819267932755678452597864500380246954461266592836596027932869857258191840505401352555416327499913035131102107987541164106630621857883809115663986801361982076466871660976420818363278016839124921647190110145433886531478842129442779436168648198861564486014654515022469777182005490658067606373031904169255868712915256566440437720505867044535838304623673569237654127835373171768744903113234144260718776818681445501421351559012632046540451428482747317746564759192024265139350636500313099232852195145536385097825936012321853545240401859248586844390132356509599732984390999886874479536386927968495276316216797501747206589706944144178050445885820831650274391559869378269542663201032106340250821423630878365390812208763861674718209569380010630081217051126840038686439137718569167343937888164738379463763823409060340486181769867458170049373840882902417323420900596920270817107193219044537241802027128769452746471728673127952303090921394108234847808720075358866186719420669533602641145264500620938883822017325693275799683409433050589258400253327867240067311640226738521255389564402533872738187016983090927024447670829805609630724705186433564580435316582302747173800576607135995176960318161140947292250146288850770205017112647866703921625213939784525483897987279458666149462815125919554041592964270067349350264572216933705606216004583440992859923239160099616055577294313702478030966330455972839596392412580105136604954899810385872808365367723026999708182861417666727687815262473502537407774614498163488085330164325686750038487972079136352773203565486315041023290925351447585450495802356337638422112159242441229368792068122408323431642762468832696668158596020318501585965722312091934473489498345548307047746103247449971393697898040013651045647167540476286096085326540144086745906087237961246431806627793371210005164622215378962388672368279889901144816113490130721293049035836893791601013018481623569892996325476244333010182510513570697169270123484252489963873050917660216600681679966106082940309726979388589591470782530717322927520246028923679992209617094050456399371941518635836291489784152474360524547947480528171363977439488244082321952831055949842239141631816379716396462279475848020000842675840169586764396731494291223219155039501595749689170218191506671176142267940629933430707407641189034340712788907129817009451025954247304699467803086619931560513634390110429502212551429888666835134983029920071039087800954991708253375023925712546835905148244921370885867736887599489250207411147476830271370638013235704449347969626753866236438392701112304093694710582909241144286275741350740916258152026125995284909753686500618781050921386177182159566217513242525627048126688001895899355737677758633472469353065589389898344226316420564599531425706154523636792397556100667108649006135752212823897292705823360597826832396876017201250187811158334641173605756025380153034077336747449434494651581508281817981037090255408902286537382125971058131910668756390502198167603661825320592685031355937419130006413953238058809454175374162578492413565030186972073781243587595560925126215907645230663044766985220123132058193876982542450334780187752122328384802675687417362266260735781725224236194245147067511090645236891771793627890129226570345670864109333512217772267675189319624278994185862003433409336669871365516072820792163900463414535249251832533629319307167537194699611385004443610602530414063250615639923881453243877756223598804633398937108697675354147124678377590222834547234844127329224432256487063228075973378233458710442299243192817076921951786196991782697821509463970748311928039304650555505860286080289496157535038268621170416902829977518508903007588350022299178783177697403174672221057861201581131088931653663447635609879600493041354748491749168046800855153301812918276882147460703759217894169112980964094790753915383958510475820675884471313693977577903660471437914900443781294285751260678733538673041686824369516953298106822494803751043788995830512594342033100117450358650525211877908942198761313849344501487254125886810749705090274995853075706116525141339061348867175489788655310709129220646446801296864537896514419059901191471119296541708767283879072218404432001736912352816690919991707917332253697594177386412127088262867210991581181435428391899046050911207115444670881705466255783100186680426585335960026253420514693598360072290944502803333074986041854331811885586553594033604980927525588348729524257619649659899615385892091258134738975311043360323826470154273293084115005744778597631675882978296130571436599107009885325597956207471764061477417091590721912220680530584775968093024660728483011685762176803898774498676768621073333156254766756336925664407132328157156965512957634198094557393360715141260088796100877731006384197953828462665017859115669867519530188347859401487497457511802316625822886352167214136149299138261955332971873392860040569577387782598377611679789580831926913918699545726774723380965844125589669363414474621275578428666551075892298370650858085201505533132993121106312627808050024957455848713248356632208406100178842177468045999833455143586450253575468521432720898546949074265189306180002703949578761149274258536377607367041532621197743223527934486133588281840850608107245412874899343005802834732701177832005364028576462960421873845480041365391481003944280889448711236460433113145186007059520142608809182868742392391886629301834198792250453548978984920531373735102683780331811634109126006658399233972468190145453495743328651470379157599750811502872626128198042289800506436451506598739281861728970596162428021261692021734930068492615805551543600203425141314257005382305723325932958699975986009870693879705149482389952552099809970479473763503612603914873004316967552031918415701478067482622683610043961902448526645823944140146695175891819567175739392181106997423673164530229959854997887697493993135716578752014796512172051410356866254454897761321141916472775319459025406361707077905978955401142316969520426999750834366643600419874938015355041114825965886150634874446885782889346342897934321630788909544401350222080306991890131399106885268412718226781125900634205905634841609933723160412266727158775522793725910781496937742373770371633773636345388140735081927889981481169696914008220008326661559327733902887774740633879622706247312459130095888448602866151960961634607832444100889148031730499398865719551630464989523548441447237896213855091639215185502812749589027123296741325124881666789459017525777292498332859559006001810777591132956757211485166706010856943235562763389553470527276335436606464040930425006824166873530952304735928249800041896261227151814194989969299512853363224156732048468095448480538355169545250830954509741801461340685518683202473890575426204186301210014616512518216440531710094148244708191912361724013309183277743151452846067953630755840546733519913266453336557093289712802722909604807541364795110953484243198459726524512705499401933196000760911053610381325477468305896810834366449006448280763013793223811401250341175360297601202601985573389693584009162627996733373465107883436533329048221636399210396515404846600665252098474200615578699022094685484160054786027644965510139266405625138402341589103847822466347437244751324442878269993064474727848794181490050657085718162695927280148311566625440985291042287427769210457584201692803484969666219146748688270433652047003606156453358265500601733181416674212526111130808528196705058479643823917049596146440977218509107941377322819795607918512359625070790752005093731445609393789329032578972426591505579241790601399506532964681423452368303525915162505719579098094928175285982943018547617494565166943385724967238417168843100249595521877927136947883957580681679944862740634340565033495400919482396648829550386060495328248013607652730863938128057158319657437309678835470812838841351657022608733173266178122029843386355711682741380278882885526227715139058049561063879870863328194845472640770402662840391712852632803493351588789271205831003740896878038226227737245837632370822989302860395089419000903367351116319095067916849677862226650064612444615047081449851406419767955390979098269883191646791199249932237388135384918465264875074532175702507654088085272654849458743553716561474865926515188419635370328958166558647824482945940568322242567556761429047001942015931646512243016969577808004580951895418258143086443625465688444904379675053291287043638475510875361597029126152714089832174107969105628359475776827286621447546309218397083125020065065657910287296655185562846104907528362036415295159152596898502927361825478284244586314610242372515770007089625394037818026493246634704870834869360893369889147108711462708281642869890258756605923030490551523608892257019825181180363403593972152834426610384594389158017444914194270491338465474766725218475431541833337260881464570471326144140101056546406031596222002784180073541980621182744874941526855818467355262003988568090672255515444785990816776202729403245988968248758114153152496828272027078934285204353706408370130335060596693378183293711316866256455765247128971685829724112007348412182853291586304816948111728560470903938078662629493277604312701700440031541747351338662214301048493057680527630797424335510694867230609246787645516662979420456793091365221483196363933766503321102749739107385602735928303206242439281805198414817865085193680710794528396832593271741472045246723277354546861412944374878319372766088676152547850380238655872250609464076221247266416211854191674439323909677780434642844603485916385353592786869761489028773168641328204780533062656395517279671060935173228414574040717363794460496254759304922501025279905248189451762890710151902405245314106587911001687070945764891919428005372740783953928177616479499651988016144844174359187089698691313545610649497580659270830726641339000559780876217115517577857690444244546829645857266378343249001724905745246908269322250985080664971814337510486762200176325355193526428150579249340775475915806484343795439634073564874204612576445692073915570612933809338707382583049842172833037754213872716101246491260041065061301713962389834069106492526244650812347584608856106296108763119578763168946211804369173522809466317458212549186330974075028075570171970801420080613260166191339664873088487980388626343528214658857346810444790842881239594504768702991773915206655405264825188586587715998804427672420470411804010809733085870666561630407627689543942693282726595681370082818600544019266173544182933364940010564574785476727305735885446396569704851338184548926136712369699604796521614661119946599376992033181533836434698311194544350550751542527934970490002091893935002920762963293892320505647218604312812379838145493155028029047687152610440548371043642732449820162838929658504167699398632826970376972896971261394987897694048750323531200433390807588377578231110828088195658272293165882458416040849993760812023042631611252026189787956204716968594441530748292491340029472354878528603877263437207659589583880572890147748390442300784964742855495617508537906148474832235479002560174722386498442415765693043483926747338763179034097861316959966351147316442216945343601785969245994186913373209373025763434276560116706818835777054935041790121166594537811703859685257401051179047472173548291358852537429809260388794846906607352145717905317971743228775602854136135242585500176284576905891674583052347995677477856985185954170073254937358120897738478600349100644103672614385885263981709581279323716518992634960625346740079050052298148982828110934194847357153293927703931807322160475219041892090972657435331337301296062594076912382566833204895355686844054131030841296496121537327176775665734389585747078736457670431819780032080961317307579923284192663170999350781230989971064360565414288534082920702899747546372846335736071094332496372630872032283134411668159697418515752740249178211173284753568583005426425924298119895615603022936027863772581250478840763917412694584430035534215412422501913053123349262475731186567126199174568623438166020631457579045684583871594050707035493310973819361390588335721459647516403136301989336112331891163294632887088971699351752199607206309499433002938249247483919114668699885046973898346843614095915887414879792473580322792500244907253065278496863233922576623405451529369311724051015267146938287205126644963019302571488785968161070700989483404370443695297074590158111244454218625525146169454924411771632034063798184564895853404198878230598494422286344738915572878541520411830291385448421997588576135759620419948443566134723415555623975186062684822574418528099833252749773692032180341805115193951203507183128281139991613367965931314012226247206735177920137086449701660483844350694732274331323287298939735618450054547118968521830040243906964627675263893578015098950474026113343184017626014130089414784326081988023890388107722035185763275234990991843247002732042957133471221844857359233306131530736441801728465744966950009070209052830443696662581790073643378539482969034395850318965066632760974015114170093763501794176863399088597039004417360095079112875251645624849449969461354906965634968350652013646552281791782403613601650988879141809293562176442842702913728465858816424990245523162306281716486803042689226027605892124091479828672814791933169063832237959760330203973310762270900324085622833359675607785793333227457437837541239652537248431861308998365957297900684785937418056845901455082246639382593949965612918001184245841027199335663958765523336376222710314042255644529893448185085113354717229869293514214395612499209932277187937044355113034833374142487062327279407138568223344783769114068822830079283482638111777649547288175488535020710009324846003963956547154873763449098138861159078112036225427094030986989542108540899212716634020088829821707740228561043215606026291628804320601548544875649392389527202570644440236522281516363575138156619301513083793436299020739426551565610627652773487866078884566016372872805807034090192388811452640050002548531094169710417570253076243600977125127838239396627600232110107760763518361191343974016030320343123172711962874113959515893213023929030623048715024729266369312858559015847027674502993077189671853894774846288529214445068492998404715617483563154145394048698120936110945104657370020204987283506955906380401726023847986303883686370794655172269773816089753525661239114775790213581152526750640361937049902003699975074858516431837195735741694793830626519079075471682648061075210790834683446986185344890560380054002297189343485325588658397757984316934370204745443059276180702872784983785744210818502137538152580372634592623920362547871407343468705385708479897183697273855589597912727397988277282907239876821522063446170676550043594658204099128217384292447130452014405657129542385791564007720163203291150063797799528886953581886503459808963102182505223265509636410275763299271735257554628877052420928479825523611178849461564393530672168941636431639008821488645463318977336810845863888500151965159930714719993657522958357210713228282074091825770048421865667848253812822276082876965826523946261387769543597540293615741382239005716972031194853891537649551428322853565721577154737187365454768647286435315017768841612682931778372826309519147802196191760713849214250759340472271359897037754512159288307003859753746451052557503570887019867382592718067503124596610304980079120549886065146954772730916276077966890112372212920423413781253010294402089823380676302733627122486389312687222894251749502764719944923163338661063345840253032751100154125042822297886865818682386815250789044736899151892413140360841168771360610354106414769256153135288829841972919201851098224110517404864568688769791815181202252417946352433281786994017909714984552822355466201921095403732282958956733942021841507911693791322695452157997105477148038007707508659090966366369401808815051286671740986249268720196700862469098445664382981938047967365952662028487396940638696572319503120250748381382071366696170696900726026863051820220065870396863546659921846528158298124981415617041911773141546442834074262931151694724399538141320282089967158149248228548993868674436713064286049462144758526155130535244817233555104327184765495657456774555789444205742753853059888227830163640456908806620135666739858155259216569604058524367789482448998396609387972074129924496760805772758810432685608015405716578612981432532993697020753649849468692228933371312203415099900993178120025702694906009768553638806721475697498919658518035628211878269818135588047040613434581164015733212510443313202025256139175818721919221645651726376874510197931849386086635719682472875617637700918565254745409328565606332060023881630556483944644326496969619794904625740962719177831278453290486783535385111471535557422847700910720125497751122701621272165114539022811417517259912314085850111112745169991079270438651621275083421929927261714451704994239023121431206163468328566158010280034209293412407515057267733722181103885987124044388467550431015191532880673170947104154970188093809853844225504064593401605938209580227147774311923839012870308551653930950144404473719880281714716872603204887246873058267124761746941255715986417078618271545157156333806860317417530766953806622191495264826005664085554135369534234712766050177507184865461223497785798832929494758172063674459834969281922667393760866491923779011204555370838185753587003598035608760266753864058427073171217460411304362545482052307693152563363863900373143459959221811118327227291687230005488578680466097544092489771491536618841837385873407629588936752332946415691695227579109314478279945584749289161212248467582369405114325803174400787564327338302120061169284971032092731758094387033490449612827852601974795657033246573854176540121387964247540534908487525556048887873785486578258149599378194456582134709759852346506974296732160315459832465592082469597419701912097096913073070197614190383250513753024870656540658676943741514283451298969635982970481539756619522401468252215199768024381094033884468711576116378232486011934416071119610036156280197359409038671644995532343207475505026180808556495587585341749951217944117407901230337685648738562533924780006347132145241704944004792737507043035539140263075816063617909944358556675353915718413501599941359331928346699137818762093803972323482766534047719062989721404730686519065206579579542393092230393082173325528321267504100354984184832661181566664799038129787042799315767004477666142807253740009500825906970448255962035989406077074507983044030659130954234662817812515841093046564792530282270149117814368667524536629101159857456091184887924622574326643906917946452964732300037015195339035693496478234702517316268219857417928007969471654661585840920781960651133340709808986886673169711002293708230127430316729611832396296580994191777953312986283987654642476996407505222397579819718844253772747367120777544956581790027785165648565159735897189520121590507759108541214024587093353212454912640801957219210787055206464166900664241295874019642989395406606419518076845238030799210569481531788024238765420161674230592661145096587920211951619674523887038964075721983329898697813066829809985008838017657890418775977416933402664907275502366795439738461332919434138435894633211654669313029774803258767262350074608441197837044347989568941963749087726328026595418390655762908762117455633542416182538122537976872134245274092478877844139022589798119710086253734739410833504340871964064310434612444542705620292171633059170040208391549778883743513410681601793208772030614404831407918861855435793412410781357205537881546633857842738600789161076903650848456596431683578937342009296432090438133876322753083578427151451275170876215323210005205969066476239684114114505574400503050097098112372455094368155262449572714241178738177366043950897814411250869311635157013762059534601542986342870096346265450417582402685515066944749192678901498700642870382836131786305018232289060581272636594304854679594866807389809379409086884030803498640734748254445219264817708147372477811203246084111025772088331221062502536058269461278263942001486910645608923626647293017729020687681067977798234179410496196243880783721103154404324628880291229595617807420802915770613199111107629961556563630028220664918997211725199927025534947574792642709202676306480667611283886302226745778519532493992511779850293867442620136749261271753151247621103245694054112767209779884732422138355074034228725045087762861504775981166893253896730232636401116723110539084078605663921370802211021432797294694549378496351745452197582059876026663274179732962089572384378541688807071047256326831517135405470858505138995744798127826919955450537378720186786581879482945879461739729850546342721632768178008013959188910638833775529498175049466682683594420610084204596976018084510605865226997177014859545916728768954939989946888354394526355451551347257316354287490620810312431897146818304213483718563385343571174565958740701040775438184692073741855904451809795851078042130823997572376604602959358097785855592977912242693726862088698683939104228122134843508263086966511561387789601201992340306916308764898569802868663624019155704594405938008786100510409137542552844430803381536299856917484073485032917067335831272620240602727264345294723052305724260896476519103871949100785646912212255897949076525490339269465037830055517661396649991265507143775824598123170114684047150315813042661121008692849416563220662896078224203101837772854472743080265702045114697477365049791015252887597392559464887344373857198689309878059976129156087422817379055459072499964666243865346333134004705268634801598480199181494416611335377522683993068345999012975385971219394102829014320161241070177221707935481786938366973976230364806832160386782011743129615989293024555235813580583503313063924796603397815735825392899321239722115394452954238221892570734265438571010086371446515012402980044799261495088404922695208681306844439705014356379169357058277349792102825105327372484651993963134578189230260104490084498124086682396341428007556967032075284625399912369113476842124830168614896535188047387797962599068421828602429605231508364413614134869734065056064165314493735709304486684311249584171044539475186331114781030189357549668957803623461142342615056545776141890654038311865278517728627827049935076741336335279885615778170602519341352800140965837161951881878306331827437703340715787126645950871957170961887415687556904642465284662202816948803802809036299262449191612669425501962996837727688869013387727345466014292762231892753142312362118569844956390760277958318300453201781232149864519595321553264217041816505616181496996682033803266355814072574636469172031627132922262857058049152879650085034314402459121857267118657030545731567009029953735723486751696120081045527514377352403627539957017531429071314604155608159846453657577269838833161829544906066460294368041127562734876316778500524883860950162047652200047343221308333539449715019096619645484143134487431299756068063099133167700609293100914938231773333133108863445745470000534274755018982164678018132576275315726006401642565131852790940707423845838083987819073305211899974358168490054643320428275878207327876924106071410515347244319800192265935588998141401008172774250705952559992638299695092569590484082436945385928341999117548133351239059457966139044417252786508781192040149913792884811574204659705140874654104829227604487719859964311103804570935328169988710777116138359231297420886397195446137991535609120422574382164846252251494313163727772719417699157276104537788604824278404360992914025295900513127256004453673800175690885378795485266407940517102559280126194988653527534586604829100945533544534635566106608631705497830769713188404888383202767878096491632913156347548306898337069371528545476495802254416472651322933388770603572903463585968407299086049009629756294702173167432468724310781996982954211621757030728946251729413013402827565754490285894654982372745875889109724525449670674441565867812898093437685894566190709751506969989465796279762301684079306464428901094834948806592970492221933931030865552046394211899536900253571463969663256386582235338311039885057885034753294982191758856185206281043419262285115044875033892541313430194832425507937487210677513910761598885018528211410946090929198269220031926378723148753354444674013330495641462097925085893271893187657374989037374149113219756672017231704060440194479253467352200765601333405122480105774665701272105987629607415525288648649871894429943913508851384146103044494990360997952066062243431541806866298419819189061280487656716722441797527291243186078470408865478177049221038671368636929410081278101001108122729368604591088509603822391565415019557986460205363838788724041843026651503587483380165106518251791922382662071684928953391993602092568537724983781153932834934589857642234251244923577051970524703343474928653289296468658704051066162034813039095856699622454325537496551487424511871728069832296589078822874237796381381398365809098490059645847255521928818158204223526455470215479433953226293866718538165170646021272251541731429116236939142999978669685665375385457008376229403175485700610779668888510987672728399839697361783756746487658127664972773017141952531620490727757869264095777275010792523996333872893549843091660791614791177881282892969233597143037777393654405457386879076781511048171350428703852326103290949874142008145967308403418104435372254584603044313190084343195920075652002268969189071846354753336619907400336635874655369295035445961366448550509731836601745827993082539299938161520484146047471349743226494067303370913117574583643277943559215400625551695430825314135534311475401265339247937552393526956383053674377042083115950022204988797527406904082158266987274350153695846220475353152847759476385725385903698791584544764207358115636285112523867368887004621940029862559227201758581230715410622038192441950837535871711201152175488245763397405886731554673939573001959911909483946307345195736378899454520671087476259187891808651555111402302120113374054719947212145136820447433443487341711147227165572574107731720167949065876364234082417778384867570323470586582536785996922877655934815413212456300056976985284118583201087487356018311442437476664910126324984959752493140513692407802540165047212336230990311808139561261956400544563964907716170785778977471417775357351531143381163370179056022967710391154381666936335320671041902902457119237626755047237044407003287017437032698614927560516285840552420596173955189926544706385410827202225941119991718673811624988205759490328604978416679889295125074488839018014964137400874086919889759709504920895461297984546044178810379041194452272450674926591500854804910883636461994787232755969037203463939296964091451380414854560552181667402989854490028985193954778768142165444387743509577487010932267978544483576152954042314122793585704787022420337575143724225055403077702011913315856601327382030719355339047091873231406943636408027017105316462088423300277143387921813074764041712283458260142600292106920301632680868369960099417124634947096926389793682366471159281911545024737000495119084359121692925376095325384454972459178348981800314471701660136582477217490836843379339881799166576625938774112501392128728192767745878373750669885983360939755439352200413623575894197615374230949238372330490825568249028980219118215148250106296090437749173503134987390100936278448433950921557034245605768525527367734195996048042219517638228419733389777352951985690833466857901301220604538125251989645741673040423727084104671225507548446038787510713001013943696187332727645559487937548946907879463306933133686465768689285703798995416847724494335781502755264226638506851034067900279318586996678059309480921109715692678688809783770537428338025753744805905244457550054336889088997366383595917554487185715766082447863277112705894050352873483349609434030795727396433236580080248808416559695581492960143454063455916970364239763977170900482762168776206954864217232743351155227244197175198878138549852751816963695220360609374436726915106903402492052845568376002121734898049047127764147469372655920810225359066968628262137265319730667893390665202369165429397225332388099562402671529860416817967919697148857337469564731282985738287556054923873053273598860206104194720073673323691733048250210304956720876699237664942596763122509923803762899469830125423993631374562650188490342219815318950270251490882954646655811761130948100634446412274641694603945973636673987447889673407702251065402691502723413106018095492226906755684594973690946133277874465319113785740063867494255545032586511563248957806777502863774372298058275769009977683526717392187536966500423990350348299611603379931164546251945826213030961568435901072356112063847353736575645950529385459372205715786488217267144963812721331554807052428813246557088319299567061351285804867158219466807056074541854639340245051166489544526018748524123359531083606375872830916584756332500112301130309197007545982187458260317413571261137607935242174316830725264706513942769377259245386595581528125231443439243048242240466197016461615482894248963518289441223549555558582728473313943341926598087878336778328611111834981105928764124466992400528638982336372728626004902490938040179249134168884444863733844087796195559567397354384391873564863976823539179769681600113502437494766386500386387460461741423610876318776512311017695136029270504225057453738419717229736139919557532394931208894413885106158035022744963641491862876061853044557550264434283137405555682865737226428727060305445690065196880746962968079064865214623561942572371290820253449177189866455024988778382219909167403905355498512515386981063468741154623970975871420332149179747918722582932124213803821251338871191367166683583191610141693288448106696106564352369728090989162600713915539332548252901543329193463634854138468360303887647495577075075509346474918316448083627976873378918457716899230872425829631056365597191445367416646771281962438742078403913995564942468733596364200311264360110951426238451811627749803790984721793660386934825659707794761815788581735704438212677476774329399661553198929597318788443864015070590418044909310034545771405175354874408255857491334254490028166700542868558081655255485916753289405508442837396280635857943678049764596363752210542924355419530591373710675014118494176677487135191011217309063353628350116847156865678242411429550799496643530932067433068533698849178831119724459404252451330423968115086562450988372048036574126340427916770152049765875636976417702524359031781143289184014307360211595903974754915903328821205054856576155181946417666650864122136433186412819438354391090175461006243178702365512671259816605574878391732296986641141299880002999747832532480279178080632088120930343680139784594946980239626686367605536302285988271742226780434498704591988311437634965712817937094699550119400209678047571167634120408035606166759755617952855673017190947837845375973435301904095155802543641364905231505653890761863361026971305265533200712339968997140412166486285209680277883549506395479654296059474420499929356189291654700558859393346727766993146579895574941063588430803592650904038977182191519144662435694295635064742401208648762556827589472673312077414048727839005027007388241422756838701732116271645493404080286479004844023663499534633864162983813829711031034663471468713650646696342356874773107948067674466884722866178309341233237264008651876811681773937568019245994008198058311870631323941187002567653780237458279479408499559291491435215556863809619956076620480955819688952703890013863281268193059268274986701674164560206607848727310732100314524357291654848872771171436832213657594000847441089786145832328406877498016734572353735043890618480656842419866135262486037944795697953077336802295248086652728568882533570816785381850125677763796338400841068968986885392953739359310964039766249299869106476844945663344148479297235929793636332034982091156775624413021606893828843596254798517437197484616722123804993405316185697293856646294765134916498633290029548382950752888387013341753601588922667042188784974360409986017033506857971749459033034523187368176054053208472008363588305307945486201696572166443681845581189536710052631644438602952809166095144126595971683241867737991418699988886619133977721990517724228867633512583571032778106203522780795540513285078919234339945348471309969171898621668391699980623735105016340418087025858653412080403308035415937672365194286238026645905749760648082815978983075659855293409825961859714704568122711716437814562459072935950904126022689738402387871745833614310300127643315023995655572352381306165241780693660872742928188652297162202003786614369386793559524256986014708099498201523888125415226649526994202249655181090292511960404095735850625624999745945307568992748456940462895691002654590364277664192913779158098002816930529064458850424040287561082903430799807040959949621811439325242913116847049069329985483616925604100289099603625167420268200175463370463627292855206116972069039203162706275193358706288746077907159963754052492617407277646456604249899147784428091971116680380874026956716171037872817043341720338082874824562245625633678817495478415300476302509791477163197157249086627719901452725125776454728810602132001095000115497494941661391731445113957098600588126890400961034907819391740755831317448316200860678398688322170167051543281980129036286040994855345362480702110128757906932220116511013312466235826999223434417514049407251830286648860936566672072454260255187482924537254551498529596618260573417236291933509899915651860972936297705227650857221675731177257361804346888631555475807989883642086821431368117988236815059694512533170186233710349133309196565630200692006071258868193019642502011842080706504757454183312258135747205396360862546290047786519238588537129701237411472800444336109183908771318298676519180699591736017964714772676597453228580812301848567109397060718980055845177160346823727732074168386872099973459055476341779439140114990812307314033070929136303626423422668705367095503023188461132946265378099596278038683619667711857748732564305231023544953515916616199533471742992804441364024624718374163026703244926454329805918358528378458127702841650098988482026856924224530548207241817699674186450526414142843488255777978863820545879484888420857871773593108543418220948056621710059572437492652688881550995815928513759505650645363525496249761152742812581376518048447632148340737647065474732440737972092672912134954386288392533960848090799202420265001986989035610538775062895112817555906124420262758457852926927288529427930463618936803905484381382485770177168524567243075103560675695156028525541411572503593234826963989408438240601286995547447717423589466727805690271673366714323848786659214649127155244874513699519103314410432878610828252577374513066605066519127091959386490984067149435731442368218625550593448150587643534708763431595058739746249629096608864578366621277198446272411153417622244258836311340292012502109463464981128533860964769298692726037728428879465677603270667063048147084910399033640380202295911591264075262204947834759772425123646734182725753044123419608604467506943445074669059958066513526274291435111443029911434664997287283514945735568615459104806323225796005858580450142522338824797505820842273541497442873444361130172190865138256735185821938959780029564046235186940792378340280370569779735524151691580194479709021514384819261692028561724142372342754101448651569639668351469583022419698361910195672577083687609328513207717032175962806587326279288737518156712096956407807015737450929073661620373044199948046363124297694575587823978670825664361253084132912247149576729499357240235498636142362926825745934609147446779545364828435001648876560372153985623270331732115850726505159531833072312651648458006145330748923561797559228698979883417018688593757701587860651866052835434179224612427356984057420733696023897356593099212530414833423992833784538630201218904776465532671103158804892418954512392848799946568592916064209858229220210314660197965610263691736738677648145179349404687081042125761885046372141668770679798777831300026020658487532020478914537337412582619046059766623677663941060848151026390361467448830710669063807009763266869093821794829941340908212517827709034193838382108981277487126739105008858529493753271452512257696745658137334732115291426762629181665316814521654895242623052030636170503371885745504732350123971284221008839121600635986243447069456384559076096709198830466937969272376263330474464934650217152080512067132137460140108844930266097270635393519947630168314689769351099164829618605706040013881239743269472207928559317048603192597042610313472549071458879307933444526518725937589785613372271495699966601104975032488645602990443411675530485424272819935969493296223397821711618056933958836310747966604318762100449443247951564070577205383035238349231377966711916566228598909992276754457808072125141704940666917224612460350010076752622078002936331089004198801405879038050563372247621795254623802765932077068818963133586754318513162800087131506620461635332885354508979107246313568580858678877468855825648611097537634912634850571104174633399877367620347768351631763989918672997210104560232538455007288787186163040167145435684790623895448060646203090403471655258372017138729538256623678410710725325820615620068467845661037042011945414471567745131770059709025179628819910441483594407412723326108175116384238443009570713924602929803759570500440184699100000988577971507933583899846642857933146565015552872038179658773878309887922076776617297305428315400288156407326191251100705603114002287324364049611109586135129890260892170200085048017432172311060794308887318882668872627740003953125164425658282966362547505455043074868134216229916383249098999431121317967448375340371881310762045378222805352265954440880694177857056500347244114073411004095992443362748866517661456141486855554461539406366813679521127162777128252626066476856764423316487187328554438562789852040233632710331295827179759610526522280544967546500134040643835801034315788355700155395083189053170075552730575822130715430401158891404604297571936247213507444215317813684898378171010365230629118269657299106098229867146833806266874624882920521332575236245325189259765470997157813677008540167681618406739729671865775641181107573861531275151436493769302578027641838092698300127818042327254155990663794052315738587328504438418421754613498215066904470817994571097809461655349108397738187925560671292827501480133523406461419868194811990712790674646295495900628874963605303667557610141575712718804573750094020746836622734004083071172399261227075649088627980991357790356311244546332483986092211845991694531168673686641555556666077340696950621474969752033942548448017666974208466884093191425884870002096705276214210258785117490994277043484456429265661420737777086762932125800137480425612922627331283693784579914665387285076917384586747334531162703086353883791175807044733878604195181159303443765059687773679997891839621388509640453557604866487207307193970260681402219827824976676118340902775274828405077993608802610463612304121213468939273391969728640152418068341258714636624973998904428040210976832472932327207372342376248729351714711828223027949223377533032342665970895184177514106066639238967737958559023032368185373338295018831040477947381444028749931876543018775460803127298675067150170583451980614499839108896149617498168045322259061642059841369156576122405185607002500287013014296353221333737362694834930995019096810155743713101903118305985484695553429218175846368415468306917280933720819634688726960891257692441700818944093825615924973821323640229879634373602835865078980838724512981852001451377337752643566438207921792751508138360414825935340944573123326193667136103415892758082150967989553758194838771888580987758875276495938587067159340830758471792384640396508695146406034619307824704427768927372086771629978214561113089152153048589134336698620070756980163997730987317900990672845424236614380297988335482003164022187813515434031847906039523032440291083706113821629925090081665304830172528101020205931866337208650825677520947238215669608733824228980287289994944338574908600096538035418382453551494790621875556444032934594583775085248067001945876393366255522613782806415228888815613551704158675556528390685276229651182717727256249999024650760928859676108926733901472561497508980374601913209373366090404258421158998530642470378004253969532128855193953709446919273577286491835844588629901683510126870569229074857674684460116770193979098800665669891592539805916242768574879165996145221940497887064499782305983709234669074883154919696089975398868586135936674618093483149943437565273306077885251173161265844957561475858199244300538451564195781005219886308121369759737753999300590978811864725313097524508508299843933257759888654840758441837270696677017792945284862385398317376461324631944582980033106768056361191224652430315718443289222634271460638403030125563037316932135223541859826633566225920061589053846293198111116544896296781479882932658687618358899028977863968572727948943126453837303104168702799725462587354669141186465099052053655372156525017548175869761387294624229843566358511412341686313323169680294250920938386174320675415846154185310124979397339828880569996992258052694241103193594263953372578934378320641346192611228006224598713504258730420833590648464886840626954628267316881507025380790063743361843635815545730135786386724916639385786827333146343999800304095381633513634968692545219616280028203319815615054590389063297676683924283446191562162618995090613176292729432313997595624590315473797160957149697026371056555200830644166740928914300129803114600634415615593259460722869802596165220489928725972400918068384658631004070690382897217340727470030875417235127927000497755503275895867733673531719483952016922275314165718090251647796931791824886314664573702263493516494978417372510793966287525829785335281332891787628616941279080685158124823466716741511138621672676539199790609570322940176914666494300606330374941281668059870311414160079070619567314292889832545884691945428841518937550210046801386087294221540443315948933164550400786588962107177934463916100326613588549632475781031174331441485841386760099510873102021388144281540241643439954159620733328507418795830357397444112800852627848583698719454300474842774185499051648405579215856432516098424113485251206540919171492588227456652936918251050088467845579590900950795284412025579564431773652718926064218940344134123448931589224600337818607668982083950757458547994480047515742105781449916290016006551118783937787828897344057916380494705083064923016426804652335943858512460034251035715288864630008718088600596692473871362406775087199256661726585522740614235442031625173645168301203056587045517559132968596490640111142050449467332920775065281392438549015079904771711531880353350953220047220284354717529498730500209561757714821217446185786509737055938964941248335627990348663504412174554230118639417875033727861380891814187127932583808641832351252223802513539123824656100909087250120146338705061624253189767443868294269950053608426999352457086107282521445182858493770813142805137408362504954425882019480764121692925843799420597205145399706924761730774511030107059332590254592176591001099006096178789788410050823885578685267948110292777331628402909731786679021089545731599390786403081415198992498115461062310494229382626294804990381942505553406112222185672481976523665864049501394807225217830762238032326634378057318505484385120765762599439161678262838652786142284311638054934524382984820891870245799548603595439172275607984314369955608150884453420993062478630638393966334797127185668219455995197882978984926380983115264036658270631956325264925335195887668347260339758825821964487114922981309598272989422314812680613473879070889400563863799817418983079474019325711566108971935444571048981996304512501805263004861618805055364013305243364981782379289013228270621161194397015305503580928212744406346955764567552471600760912974262124938971186690454497906458886420811978509621740839628421173795453988300135257017130791245100567156807623709871123913323988947346442923869042435981900291635970663308538437170113571252955816272139013564454559733686339684851169065824273481910699695006322554473694981167563346535963858909606450570080923035895443906862187717026266223640181459339640521582732237372182987983695343953539747946030300695195495124812583131524711813390449004356713204182384467999347281672799909726942751190647173008173393511552291766620665694809066939264225470531419645294699054400006697669419725762681437869457653344980424743751920526948061869987057877675455072592945628543345233622999846551729167582593123126009758012270120829988088633000548974488260648117836326595017449728196021992678719992392120117927939520766836982193602949980264898546149136937519404202675583470308993334547432964241599771248842624145457860306001804553111733533960676695308636301307213007186422208527329205265660808375708881216872124547903579246225431542473095176102478341468779127086375974186269414466668487422166121865387908150592658358585081426589496387338807023970786351926469100550824436254119287932760812337535559623810895943579840966819064823205644314468906961471982249300838125357105153138270211866406838559806179813463161970726974534405575596107331646769714956548638768786969378733281656846207262064963765146400178662749462633080155532921861379872908973132793111400474010024861035318470960962633711225338310474312867422809586328310719236040307206665657808483774312740644940941076646491665086341188982800346085537484794776117704096576384699062140079712406606240342453812724608973861371693557923262086887965007003790637529817497308802396053278945857251916451293935730648769399929624000224589908342427537300119818535101113151271561103998227361503554715379258995557390358318358238651619856651132936304591200341979787284288611398554344182270748181391414923428471316972558430206159120971442008289113885400376527433564176193084237558933507564104223202083860571595923373258177254720460093518065235374350805431604254935470453466239529948820060001832240001134213987390504493270306055101098125791020999541141166794773985895101503998931026672339614541380066485277356028317763251677511906796458408691663017842666353813534738327638626813804745684158644865721372872415511266097760793278399005323212009635590550854453199869714727575204909694635626042463437137855524603120603363376965803502135132531069862882687518296691558364881566409312598160229517088775503219444666823775836379250775210675042687660952101929173869999343678156864229783801614995035597318112400511870740345803122968436046237026548669184936833541289999802184061541796952031516748889855486720387546234444868505160943987207928010497951218330463975528421777633145275254607852040339506934144091672467009035753350847354112374042263672974029596062190040459044390616355969980165805228097690979222311731905820684057373813602170916974847849160570810126023836362030851451206418742130195862001403732814021726143891188597795222697564023515871757201455657964070354610992354991588784579470100139654310705708649512850234013934121278037684432591391842332924403371662682549510904786024563651801122598371507806713843516839236072391691607748579376189622411011914499681490695913150707577845519637012220849297608299056625464925600378039084961706812552085244769174545383112621070088942536390236467718371196350381363540741267456855652930136714957597679657824517712692099741825635001156032093553185424748929848264868805818852122741094790991940431592424419591880241567687390486036195180581191179774732489805384048029028798458570700632766527629868234299670388628588173969716816463336203893550566014711840013274971037616800777500786230014730701633383044103096240883804523482425867406273109200827339313632988011117530765452886228678349458649705828761236457734851898015861061920260892309082424352027427812156653602845906054398164624372526329003074709984533418525795246548453436828505183953046103340668810891452195757835509067951346401072633781963660120005560574766508421293809433088427924162516340576228251129512791872789195629142202262049052591848594220961506922149721152869965223150676731998711419781681333295910432647537420582999397540673487779585649566093386821185598209586457619872485004027438819868046875160451490400899475222473491218743531998518471058315230897076783054849197206254573749304074372360111890541568098727495455209048506690047263670226067371076941225525442300719686274945853871068234777380250139538544015816371620833180319308545882594991403899654065667908237033997833328299706181090703937007542614521649657313127357773291549933467424351932632935197848219649544369478341964061518288770201599433691056144210947268251928381646519198026042494593999646060391917808771693115886285937008303218306286626404507946352373923228410922108836270286460363464504542253437899853447707709911384159226225577458085979743042800864639307899684887448002202121820829104944935429798941468388493789196145286080418720401004548354722910066438447392293008937430181223765305710603292519591814036140463872268669456708717667228322605165024017707827125560395345469836574471097088048950023537955819750622951846231766260945960440258619427583504843815720379423591423202306491246137873176071736359151038508161276795195355604197620695565222201930769355591120409671871779178158989683992900920006525242300350392307636209682929451456171239188253099280533085306663857530263762177157008153481042899353780196727058756330731566090886199660243026917048945603307228658035852305599968749935718239181613529392157005498209685158408972026752477104304043246735996723857574731275746213573540937229129285172991779518239056300911249755236198670201739787836394492917886186603806962142175356066914712974089011726947122633353572282077721724561796546925528065951515568333968694313210310806317304013875650092277208025928882418940699340096044212678709064869491683349945365144781287397583157843201401870182254866128537872354534976970606652189716328175995485367539802661627223820070324442676124635781219873356746374066403913653408972130043789804569226282508212368436092095958052022780815112906870535434878358062225717769230276587108691233075244465207963746506172861553486513444005731384276846758610629542486243892514901283897344985784834526937917244707907008996853558833899231976308348754195058466417513021236865248550592577875370397325110710148437164091653840841213594702649480243381664316732674093231573896058964036457589131452439103598851266858762144467700189491156036986989048762534358124745172128776403741249931676684921040895469007125645215824609811737928918623340398347361247735579432543406053711877276082754547542681306055254246794822409792063041043568069789807223457914708915775389873687336802647524449182337459122289265925017473164809693826827667600411506360922290890273079017247676884497968616562317166058767659731571985478157668053599869497985559310103239017217874780511305160663378952224436863157011805067870770802301236095349594047463319492047688024832812477165229866765388784052377964348815280452082068230089341750944872244034826869123638887185697419822005370360609277050839713068974625093106920019538387999418747299354635939953328962018275037226400950318679570432257622903565852566240861809969375590671329063163759660201359856175954123781356965319943085177449616993600211562289636434836566566656477196335530077249655794290198524513314036633906058933166869245616938966794424788558113596460210372236190129854847202406827553365290531890161454439980299205547890149050041627080267501772756218634350229582124195486401809010471734343766843652873095071043314417099544559621921025773021602753163041027161039119514533406206962040492011216256707437477962130714967173171414191354739260602886134843251259128779767953198245751831058803002845530829329633701382420456633103440037953040286162145929193771616001392658717046713974052436658850140956449983347014655707964733559456745163418886633357721837986442300558234691379718383863036318739869659671644520087452637267110133091412976202712870348279316215760786602509259259612276501480620664471699346584019423897631836621905406040071771108606690061480482280531542930939166997527149578314154870235484203235226952304695576880522235912354348001689718130348931479260097566554784802439794393878775722834343897303273406447205536017592284091775990589575268408283703710166295998470877175213676105596001882277020914306868314529526603385393985025399121861162716550369577033841195136360881989317280805415811609308366259176847660326783283165940678283892641619494109817863491378309677177977065411881422079318872544693221367595467214869210879130772885441813437121884621290323830239292537735453142265863525755101391545094343228896340090024069843482415987580853194982782708905075312204354067169264869455288419941572339594971622509184342569045374562279443052443382132271479189906504602404972240751339674674169824841418205452776175724153243059510689990813229935648453222018906111699746315587010259913889679125730585471981711276928627521508465846856629194710767324975538320519845646478733677338585637868567306332560358268880056188609254550105341158696028187459104145827282028158887850686663780010168935788720930221998547606090796418113262279079216855317365286930236983343349247249548075805302345377625048314489503747008531954253087887743767744385914615259980725489345530350887899242199037945034797057400766756101199452042695356369180488563117846030189523127908412656676334071936251790337532743635852348157565102289717854898648829723513250826566530807567775514368801527667236648632633454387913279261300771882082200468854092140319948005795985316868222802530659613864198635846766125762228513598257195713228313589417387696593439288443132569549641447779123460946663232966413370284905330704443246463066154161722770327596435488583652712696138275418067853475571481766556997667029443065788272880124693163780477226861841870985934479702893031400660671737554614732191333167244254842495970491380801082265277632058001502752294824902593778734098225758422009550291147040720567108066376157879121730953002676299501383545922119874336225311150774886090177486718772155725594397842154162026862134228083705656947139954892372502959511998830198786580492360192324533131673097105910563255804342220405843662549877618296619604526843575077412891467796584043157603228132210798932134768028564072266233827287983918177853322242469708448975152700946901676951624580280249308591098128851980826978197278064086889690766116253816484047288452789136922217754807181142182292786825698939305541784368600865156595198809038212255928012276695975536873430561042802627864408381819601039439568870996452875911320061553272532931279777640675223125846742809720729792348582974807802624617284513396512214806675932652226000909152445935323968494555804540607105564322917202492727590125425828830273599450561444437692587413356099985108417245161006011333480641701229532699587529327957378545953865364389175935935093694863278005419669574201895902216458421873219711779398119055401462255299749379043430479549966770434462322743102256910953178332568345632867917933611036442530659301478850222840576937425455211766712110971755398718474154996563168991217169880433134675958959049476914942617532501031556603188187828708622930255664184493312415036577466505504321723634133548068558052592184025364948055822044032157000147190483768288394302011166299643534750377357038342084044050312963264665033483251753086280195682753904129576289148043811823453471150815986794914934623638001476453328922915799651955849174118219734392767087685301651001913181960351730586218181753058718722444941676258519626682192884406843837039147456402966637039135403295518155142410583195187840188195500019555896073638562772236714572326143078608422823367327951712954213829408797391106795702278187089641293254017809453919466264157100876725754537247408406941640221410922086337773610514371026050280631238070369020952834752456715795334954407179181724058601534855577134117139311894233317896354174370093161674199462863069750854175548491732323925366055148791092521055313063253655245035276828314420922762020632472832528962598218071453066042988572330384130801283181710724250655886336850180880239659509111627215859902425496747715556950350728788858297737447714500488726023324504102198266968701719797518385943761365537874274195581098977519437082961486741105079280795853731694234687018225907818579225121180212181505931315756043194025424405321405977565232349045000116159182498505564877088323967085413996149263367888308040144294510421684164725821698650646455927472837904244899818225492071323746832841018658458993397944063998253054670688578254724801445765113126793264633567581118525221598978137759229489368336693662477148225541935734119799674205364615327672518079573717892374156741124360265615023412059341500125641155868233466393238207238207588921136554676033108726558102318483453303100067317277921285368116750545405975509494337588062385794345394149000530854276330962479267768396920885581883850670725543582328352244875620348903430574069062562970257686495239730890995645729279173086516863794407617940929288872914431206318559283161352606101347075497549402158441550862301830050092485567552321868388316015283454233223107876718332610074689002101914361925125956478406196774122723282713328624936078227223131539413932954235306367614761107836690864726344322868997118848289362736060683538724005949612073424318049628082443499617015351353925737703615069185374171460712938390252587220223273520057744698957497761342352656551614139640044498078489581979708186427074539877555222963941997774947120595041269957398916841470342824787930102997558358397748762936654551980971554480817106257083235294302015002849736994995491521884994230259682046940617073271255142589133537043522179745100841459652880453319602372930586884708376828074659980483022471398327874773150713075377766385304445390402508120278403891026713311207042572193651741100367817042730819163092461372538709336885150589129773774933840569889015218579062005656573202562163124188279472552910106364906491794837456824741061984209028013758118833316721007785477316131864726507833305896413876555255831574162305812383794320227781824434078583407592428050211097137812480762166124135670824456677821798472242438270258990209497837623982020900659962540180376248949099573558755806563785274326248625891180618994704137714622048687346602173905175977242600254294481294954532737938976985655518748899365895065547165288571130185681649778681672614384767635663341488902708931142718299554583538304115395522940222318472303483427554453439011674073404270985074180763700419255758561951259447736715791456629236335189115571218181660331365356906945230300475024748040157574425850048316869757839064939954515603954557415087366412074371845128828543171527570412879161023588094221541905985340148572543388316641781480941044088391080158300510392191992400314240906572435848917506873960902389097202365055650102625151604078366442153476159428839830862182106299209470991367203816403984810953561011779472380897617058034377118375225299118337932515536751915701595094409781112913046552233123134825301714923187676561867504031901844341468221134804413037365512540819551500730593205790660164287582290187362313241792316988536744091875653156172725957303603988383619410386415941406772750912033774163996708442184177351841774366115266180182792091476168029999267358761173539979443802957062882639601953462258970918190248608146874537360223607894935574839821625501635925695750401520363604826483896495248896112822643123628326520348188192890659384418112070318168885838674640574204301925014024783599473193115909330244329371812855210608196106521762117439808106655822085108547327877452669979225923724221441670576399657477895786644166101960707783121932277742367260831023798359376344893437697590009998980547366895975415820689376702315968180779999393923606867862165312415685003542415864009335298290148915249392395748715366673069410757958019567534889076520622250728933219180946478731073680316554264508568111510420605332753757481594991857120892564499857982501260316909032270346693912375783924867248003828882198904276988544179807013369403375379691224958957779216107678965500178694684456372113965748773498086013783799132599856189151009641271171733343266858329236121544083470074661569275843756468413043905137485565454863722726523336387620129191450784796481511553569502675757156013676579374748716202897525231024696391622493117395127394864948089033869576380738116562024581698113266344459382564042861565032713347116550924115016343938251581141297776802473283010655499038032586210565884252187738550971780432742850621403869295832005427604290663599942610018540585579487085379386322722229845294698675837426033669921584464801752632203185098342832751762451159748601922272729918024245984249116545807668937665485471964136952554605809860133626313263958324435609415472953889695209528892976047199806310785507189898880799654017086928192578440994253638014647050177913173238968825511458290176986235097052483403619305848196788442342166349431806737311920438211049788410011272075508923288389689595784304921179020710422990157267307487778419478834090950669993188848809485397942310145768682566909027845768899378393932706291991044538191597785399062596892594481283545817396119075900515788027963440248051681376543371715550969460618032965126444746253261071386157483510855198272583186775411338906195375431848013681775479925715472630745967788859696409087628561574835086259278872587796783972873752530497608375710326247204008054045683204864190238017480204567876081451406237417217922347109689278593495715931795273472956205996304523221496857117706459493118715190589074395156552766694377501208645408454532693066336828502438558176444454161149474809377884936434835456763124463732319643702330637809503765367522592150000192572333661627946983298377266908096669561380037917633777419346817177327656055262187390069539671514142244698323947043072947979571623993257441658678270083512716339885140059881386323498318358438274419016599371598147915581973267527094951080791180181882656679573545211601233915522684562501555255351885946510815712249268075784862270918136245837345239748456597710806942040507140167003247778100370662475935813140434073216122956495539882655180777817720855677000645445669205145978011943829496696950491859763832605561699449831041384361978646270511433957812478448653910884714505705271810450591620609735918435774327225226474878874969357819020737568453138709539055661067075734339907710045569943982068827319322795598034049265189043430432038348618373907986689105711517692272153553881573248031351838425276363315334233748302324328320705846895480596047353961713323260587861574065886674463159542181620849186241805550039416037326978321850651309885239765078686831049065775559350325746449942882322126649255220929408981603245693931139779230010286736806911352966906346940673449904027275424489514199559920835020842402258568311641262002630878482836309249835276902542096547664730022624959835862827728566974505527190579830788934404284617554637962262037080637645780653449467293623513900914602443682391533703550250981745507873787092147996050774472436308391732331486201514546140287211184570841832705509881175378814464689770780648829317921991001014586215491131736251557896114413643582996659967382046969566413517489864166603708111606041155959597875829394724962735019394645605781708449744001343994034611325082208478561373490626504719512700749167191378713088797930080294281679394895460115227746744568865493569820719450783641007910250826929475442651610531785373809237827509722853145406826177323509701733439155878338386469155717938134781093421604959101113990889631828378443342218573570679094060553345832079670590502758060895441957140265668767138354219282921315539263641410245490069701697377625157210927890195399203561178752248473846759004733726150153705734636928555447799965321932350550610844024248535442191017878185601781243186767933332857984207930607655384243574287913359536526161776362463904956619314733984886916534162766826502536559665702213264445528292676912459504660536394717454409163806520853078214617465480368251689131866661849639767335598536017899504414257212098938473630341558919794378274309042839753760554086945785444269871405700240313698453916345305859064616378777073350094575719237277004619583431856818904772756673143717432591154302570876663036170177147206359292323565039220089321628644916034973285629654109412289637429896247957541535978630355915336641827430275905193213129681289814845536551988647806518480715597548221016189184666377411322883871684481516015799657956361901064405616957888095654532527315967058520843326402246915567477876130796440150665198727407357840855022071553874661170881957813771631502797393998522441676705906097098684024458659087950193203580604758718873485850746971170713797021215240508947963463528140709905769830475295074890408994215912569698383608767400986339456200728312357772934251989768051310489498320269809479523896075649871056545233067446485294850513452667676506694586640984187308128049616098170654147626020724209934674574368137820196182616312932490622463392708510284111980525660081221478874464495129335846174339520898751887502624915048540120919570471064153508613429427585192494551690143726800717149110139950932889380547954659800210429365138257608115214344261892207525252376047697104573685919264439476281755034019480845668557025462701488087173005381167647354749858158715330189526993320586695455586715636987625636618120233443229646030977992442272519892775184330650161049664880954427489835857616015442461339481985327522103777522405318869784032850682299767403947858284049433460096717211861857179368889611506922984109015446257139966922686623105362970236014749792568500089636822067304333187266669312164993343236564938260063500784835462460962012886332129249322642858799060182345114791669945905674105717439588327268424256820495187554656771919229944154167672913265058965531288144125350951281530816984970947833140878998724043736194910181875677410634830962693885208803122629422746180579707645792412155782476146316751186899475560475270472504247588467928969160866735284535314176416738815308519774497001664823550712880275789920256277629476976101600374889776416698760836996921157947871333264154287682470128459250117964892408450245543571660104093674192364534484629929670367408955766915617628755739077962806076175284433338820281970232912222968922353677179165471992211309163939398787601207615289864279511934468865377725068148582374148595329787405470637191037883851979250971508835504851523138974769372439435544152537771867309174494558480022132296430123692586492212939047580034045360886435933119724716792551584972123270272987693689925371026187369862562184266452636183295229314335851636315472827805378573231063855699764957926801033800927875008746899519770864355892980384164712050880632161060747178649198893064489129966799413881159579061401260987654329350683297216949725898812688675727711258473241040680238727449329943151240002533169294471247064876286233493491508383283078462973477191513304805919458304968107764796300343606368518200699957982549800322369810981000664762826637850708342126417069657696691257909321496326642707634470544035869371144321098118816033498722684429917361058871326970355229576085632023779900271358470206815349997323510997766284736367851365066625613850898496708042181645848099331135551037668356467251618608426285056019872161348781435332903079998304353712098027843295295589279931522909939574126745847343121475796589682988905555636782121008930234603271019970750602446950043649695571300540037944444356608131469657923219003484765841567650788600974889347987962758632499739256187685263681066966217385225915735109115571652408995959013408508472089640073765473942065852025472183845025198232195926163984782946092840362694788776791559700939675666790560293137979673678091706053695113229403328394345164184945993915112712084231704264069459055853070608775220687641928353028460970272420704893153146380438979025769366461884748044942492886105802075336549538717231046406690098654984536428116386724710205387816272671641884347226991680667041935389578049192720928854670550670768646038405020990287275342324517570893275277988600200064231509850062919733307737531271568223675194299913177789485989721006550338374479311061915005021619644148075346179835447621571243273840314182977387837776775473742862986253710406934303499609549655692761078240659465148327480203388171278847726363244041881029146813951344842239850039552991815436224601158928586043932647942063548427465780045524160036542328885408226153782529434439749682951723192849972886348800603885517113554952946000828211979241001194829543861329804723201902503014716964879050584932706867789065658378913847531091044914028973098042328493653359446772808093262679992683895374350465404867555451745459212576620310908346985515494581534484249417090053238821271670951625861190681064177497517216172906347734912449185016513565485798439215873302146044657053153750978285837554601254246101602537509043867454243966580484479150810234910406217888677057573438770637448155051856164762364359304787678975469206055631121569630513155639469185918329300038322431965995660525901403181873591745293334963169879285740536399858228999196748898727973697968214093175563366611005908942462661727411166923905380622044470251249708547882303988192444123481888313708371855560770297638558770193879900303160580795633711043154972363565429661438655764611901668296072527228845826680756274083425909874267394848137110861694160994331253541942723115496750238098636002562051946606915130219702900463105800222581578313382229155888296572820980218241789268436263286249616213966914116731201452007605639752541860605034491033144035376396971867104200894543943088847121344974799383320673576763379211935199640683932108264591010827358157579230550808911890136759663079605838536996988341934121316772160317460836963765712785080422779449708962200333005052480154897215619879358884716660039997173268686473656947554568185739852985977720576416613091713241239289502975188390193891068597191742655959497501240716545826116663615630505059703824487981939728306966147438093307885173397847926705720389628233521982682694054617363772098291485510911581629617250680009512945505523519559163495273796050088354557697211842256306897747401252291170378312232857159399985595912791358269084463562502333603368084768689248622960229741109739454153002118008423445268866524213914097831032355414903951425597936909041953594773684675333926698269697835710414284465508185735517315473662140051581743527154777812673037284114280456583556970306231961804320392439549668398113550028439134851662441908432905055694701736861886614123291291777006068855698351251324792922895919310151812216042166338336855247629852276329295777582404122843034728460838150767129071079491826430328095304352131196801224780317627587612043471127098682997744966240073464221602377459033502628731327220563996256004481579210413381299013138807832066678111709122575429880388516788674071835243827654117223935525860203820248264129510911067331987063893646418308498757271972002768846050378746887833761741833727981818007109556921036833551859392948172021807037572595530490142371425265954461781924208042655894142103835943737289660021059468248397789134519849459396204616014836786727697994529703344724687917297012704107328460366369863571237575391941469241343085265752826543861819323725155075815109382125015193738741769324853649155691908871044616303729029603585283818722975944550101499832275650699524908385441100330650942640687427978074355857109316219590763553196841782460752203529118378358553590659421273977825935983575957019996045920989485122930630717345662337063857567744592338089849210394182461580179083085556905958698434077976211889676436117719252716181726125773622045286991197743744489696486714983491974444280126837152760729578566204259953814996550931566746609487596268829973195478734014550267178838942862448860781472252002249725053506492237311059349110797318489791132384337729225775135604900793271697842749628467417414979014694392620471732300636715842453156057649394462666579876952132970405982247357329338211706034602047601597720254563861019463131044897273634252480940781328331503829217100714788092477078687350062879289920386462087609965411695381069034166248731430203576573638842498734884073441360300876932578250306896409060317670997536766536579467472911694662309412125068249248767409521642115302403035993561118159534878990292160399451509951862626375898970543525866615004445224320798674683873947534253209007076659761250447307251377440756613800908404663776821481430727087520346260815318996556905639069165984699856518938885158773731210064397733883482340896577816915258750812948392752424288933165216415864596691960927774253685315371332893738610656434214086722197775685891197222380183860132710477212719214182186169752145241243949915225336036754712434464091501806971108365595322837204910768020884211475174825086475117302715618193130376477518129959542056175580447788716166769758203205494746079717943833223102284672725811954546263889768106119978905138078203733798753472058611677365774765737853055180260368511874368371947041920771808025759741653632454061792901427794036942182106593616346379550145343981551413457051065144458094485122091389390116979611414298991175196649366473356021571261222142432288378302859501335975414837085882955483153909683084003246740141247327009463729621471101460649131665212751529581843517716257560060310590797601691833404733298051430516395281389874229441983125845869897608093699972664466236760418999849620061835637168755807969104582305196644839525590070612367837015143689202659111550012827118725974354222907071097921790237764458671188200590641557511952607492341455512235634909517695944259536273944827918452947340395767503588258855202656397401078762402589385708352387831332758227458819803330817496404050793919695025771327585066699633231202417622692195337577812338332929021063491343584649748689197493227213712266312074104007368980958424190316121434225573480860236514745784464419225584746406360130759504452125070794673823395112732681451508763755293724809367541971611518526679334069059399447350802445454853898758664129868755449427631905656975341641573760733476522586466781094606189925615076516776002496887092507633986016887168998088605059676759681443897655590635049765959702536711115322114720704364716527175037196643378542971445817634642652812920593001105127536890672105014901865461808106096787313518870691473381811680289462826220033047445839619598845240086526796525935594445858302635700144115198324893326637951438588660473809577091113609164640716961026952573233458735256329679980253444641541551171434870581656060040866408868111943014693841029037709175111849382219956940762415333415552714680608502905174036133540883630683573750846508964768644368466454810849372156286195761140800094383376093131424651162741961740790741211018805092636245292245266299986555500232532309817524523387954243831716569080034963224017287766994151565993539620261266673286587339053958127272977262361266649451601614302363185544782526686741620920269555116862098922760346237545388105631076966868872687471501524488052873068781044338686586248809469687280170667175102103348338751946439903629888275123451332154741801835165774512396962701690240278324229167130118254421770520310531387243949945014311034285611595239226176399291789333467053937711564447992946425784594268123724481395256729887030441458088828265863109323900292711443047637213068403501402779428734319202174204726021531038285780807751402394970019862442877951119352448115364874779269316431413304564400305892515052561537757501435425685908701154633244234427335759421864077794032975384440034108184277315333462546795664020523266072561612649828714137283499803592160213663361339831179116755527949979836965965037375737695343175294080989908272139293819913428394337985109648571924512682070484734682053599412704570771280454941237821058982532033646259583233306965151603396678188569486460771894955786614272572646457176844606547793111059177053042108223043280892919508361554028831739397132669091636988347709597547572746174051019448316824661390779312028801474119483848329500272294648906904805637971912398885575703048255988477404348471834877127277143545260091765419528112528569704748809494195485369737092162788578341054631505709270300721968984216553185069031270495243698856128455401694984408978445266855333425946455133413442475079315696138505975582673579751170147467717382054967334736674612503023216304871170831738017048215862337897587137125316921252333777256083355637918912241194619103039163824532260411649348352297988203686229261388254016830743843156979532673681913917123592363230019237881671646099563071009188037946876793543354960594757686752946276931428719285841415698053309458343019000521758995866845814254050791613740620576137890153780937450867642969573266955590934594491019717114706590091350353030930743288930381106575360129065113506441010958346691958727898031125142943514928461175998585273969485642184813255844840117972750018142157214497943335827288449826928677654306961327103846540626873710335333220166082088405877076473135781407356690787638187495409426388371996040617192670936017243670516465519151448509200840536589536953683231218623503233236447107217326536761548847224094900314544545390600659067780128388132217737481840791194338474086188970293542942639441276929809794900110556702665616935218947140750991308567110597053053121017912156500776172185155789509449975005514473507244670525774324958871760579573859100852822059772032708497832161438534164987726235200672718402812378550846358611677407138386100327336243751598585796828697886207844791584416587695422944787551687404475058574158452458839194979439715511074878085524208498083932427657661358939974627323322410416326163962637801431185758925497469297298895166517916297374830399261293606676980454128013462284340103208622019416991797266736892475628323158974360198146462759535342507267302249322352705788713394712600914176906935074853796495654958886623878447926087551109052926187427593731143303389676956879584435837788517023752500195198056404944212687391451592215862079689275643549564827619700601399252802219143555200750789165565504462724271774952954316948128014353315631715056646843589920006454705652597850592315943953712413064192149736956909861450426442249538820717129729500493621070530426228362683564562844681600569477281610457552549518231406815816166589643454935811912575266977062863896265151148379810860027127958902471768019408561065460227909108564670271945059959571965976592109468088979096671396608226006306151711137291065956969840648361378054039719254598922710778948653902061703673660568697556631953815353149122277131884225382764579924951737979685142667861931416102442023077292795847240531480814650638928239040051075599976480305941645652260457377693601337301309514803009639735699715136956446395592909618596016806539756015410246686032344447236174548740238003067308064892456536736963237244838979810018308707718378227386263940117431377889018817612435047204271697053325548066564227720973641611530869726662312721372032134450478221469288197598098802289594329813245990308388092728140450894698062581028094368624680098464792327623238321046225303457629598367063761884800086414562133598770029181634251530478120716899097123096320796273744070033285112276801286069695319190057020838442459419544444581227258738442743060821915784911072823381358177592971747695003250415341066308606707376037620470416656954554026193998789937945021949669099372538479323832393849526441246820356157532428544393179034580011366418218246967038480565881751144007997119781510130124331596511403652010788901800667298901611083405841816232201660797835794311050753030986206501511865083022347765362437036692744091019643169177951826533362552221258753409354607902648601512567234126674848667947017900681527546865096134649536213339671585846573044000080556035180825781937115582142695889776761699196744559288667347429429894269829097376899216969054641696944680176005902846104979532048715915579823671116170576403233133579776674904709159712626230897071091279132756452723483445975112890405046711283721836471979129721143054239157277396380228598200087142679789052417872273541629609704747024912944832592274962703890285182055302276224322072941781774652873791452313246104225740133330840492003464401426914113118846479174567543470803690069200106819139149114747032320313245112503165779982570449786156943342019558417597391521272235836114993347169463865529266044579623702611925411803508335816720953304850654351608482860336771687005719377457512075633575811157826426829321635596166266300893225909927892490045664934004661736469114770808365956045577986540434877668624983026481322516079764463981151378620928979565631627571357445916490485027085266453868811582848016998021675239421914993232544317312326175570799710676790581234520826439412424928289392542246892335886469438288518124278590332006005406778113477703844192950725657196266444374798580231285062904740264090952472147336914851600900324690006605533841726299488093080752577053636144533959062499204433744821426965215846841117465038006041666755622895161675004906303378919438503270359037114426453003560442958778201665915220112300573276022617453338654201177079953361097855924403039772810258605845546323182870019732461406331834616231752330996846700630701979780181127809556609847491959461329843514649663733504953393139917876694218983738747108813369646629944262726339134937438514154475647179843737632779052346822813416709965399412916475430584723632734707843951611049032985340349379797777882168582483696550254415596864808862691765051339027521609774571148098893832436796154754315483916784842238165642477289071797839459147105773606774181304585204382488532090334946512427796039361406413533851499531849805643361747559494474272066215016511031410924744805478852636198767307073953059819610203389963278466895206149714413384524615817798337768750502682227697404411808332330827692701201365196159002266570600815778959210645328278553484714498354943665815391250450982214538416986684973094822147552910514327496056612017577924617201640426966759306944089728706778339242913523987668259244608647545789436942824656113146101878019417013533012701757039821011867295811929995723859235072969493035353772049523821224166318743397394447528096607009539876809409650893237724096747188443639162280423760704785956460728681951147112836312342853303815959973326693115326057909876628541762198847257051139879506181771165603507360295424348977203062505519810355325288889322711367601684063739894155515925911539739004402679795680764893512752251966966436904917350880226245975065260288739222845990880105941573264524797179115618948746651851801432354097349376307656401931831996923487380973907081823381848377184361890944711626892346780741246719560425169191538153974435267319189057668322195787445446491323565738174979609086738817678599041912174012338118006779281759553170778258871290180993657771891772950501096867619001952009116845642142614323170269458651747670241154989899857541699029245570722490909415379901740133930122872506005687530423892126605097563657253800890650124010048872620253975887258839415647521889665386648494431064315070417156418838939138352782871850448475684937988555409502787573698528606622818598066883991473981482506267006583864761609957185757465948802682050655402409333814540756503402417136516030545978389805124781906984035411383311252774750514929651419261304501945469002228934787990035042758366934246922374105386484477565682595944570742363408870929335182290121780409092798157058613969196083262553222301418693522006152917737927801406800891892878462443691633771317755978643816641681694138800856846590177994035305307462690784818277473876119517050375576470025677059424992089621265400465690666038298190884371492965211216611500617782282891415193199359606640630224782063227586151870756067254437427056696586047451716008883999143124126145802430645902154118944722940268524720592042216171228729330147863607638815665279477219478634929292434342686087777173414532721924495982343711891573361553585993446518707676821172901270310085562536867036844852666151975032148187381417938789005306360732451221062352742881462356321763996617759845964855374051276245458894783781487231809852305605356629796946923574496292967765302043152519744432600211168796946607273274205451804622453359312995612617327105033644367121114176164547943582881043438844327718391871372702548660208522772049773288596741143274503786155273850401572781483006021745029162053480834838774565505653447343581430926763027944642986973891763585661350070760905687135166336117667945813754314806123796852217817913912110135855653532144063726812908272048803439575049212428993843623966982582195375959366852895259518849938593779557858546460069174206100123513744632140534621002455501652419453373861128472910035648143807079321724969823848230784454579676710561883185082044502010960325847344189256364324678371567985632630387977556611736078659971753908877148534358651343495445611902280605057662636081395804145617011568345843291327709498707180615968105743754145278959898829407482643194873733647883945218785351792161934242577665032893768598516201279076379244506543086936800783285382266219829917811645474010374827305462242101054859775817854034812577217391916431825757440544782448538897475696146838402871367139070252831961863487304023471473268591543975558147653063577065617751286371971870518152979056231841884392775458535772981837668269395847724626650647186755716441222167695035101854981127724198964631069591356074055846856295593875836358129497191152677640881901853874986133191310414714745683743442831295676951763740469248102370868040822907147181878028676111790415161643902267316887516783057841123464104141231530163405639531345527192807166873068190695298806243671085965512729314270808449299590024274575914558828942359580637646181978614170794425196858580942558717011157665249446436556496776221056926525789380710533583064161380066999278386662699338099835161173914379831465301651501690022445327173940466644925253671985692098400196858429786309066774323131459718794965324744432386941205688939765801052083535954206922494790376801717624056275985245246370471110657890410880596900396663268087182270687307235973454665950549414407005017952367673921092447971355723635942074861800722635100959976811802552744532741106952687793489245289307595600309517713248985636159073208065609567625439756178583583865481781788972754582314315990243217883493607164507717767278705327762284625822767149028464434652064024733951952731529819373572119139537247919700817484519705407239410117231530376515496267038551432499765082232694182670571446379639038074796282836685837119552605180104063522307699557739110601943080836619221548889805236276002702067433533585249452783052514034306994470886321857014610233426413975658989493261629544767209880047388939110467779477030113835165756771140248475675036666372383445756541175189432634419933730820170674151706007890631271967194641679772911903294503062958060724885094007580706255845632357628046341919563562839103751484004517870823404296157073563124427226223515065597799382968681041284074803127481084300951158292856398309286746867979285640057808512311668637304023158712340890674603811882405722972347203322339235198063732549528543986946675761341160022791071096142819653834837437729474229199531818664977747338627389886467852461895828955887464104712963001155427829398027987860145548575624686489425393709721709555178480688207152205071164462685506145531976665762844945938090109767770776015418588357509704586375473515798272619642811602322226122380402293306279799120268869443978566419667319366584954313682481795683094333929078425330773924210787991985433969597169362473335693561974443847064524786336331679116146699514322786268877215605105088123293962690042612200572243686783177932742687989620733437719036523454118154936975652120852333380999295266943426949068976286175452304889192671614371403590962509519152303228733831975973070291352339652991057793015099731360002301458299446980743593951705088945330227723655856890513815199159767962716010190900738128633939453358206776644276738295039914084988372159691151209640451474910511761396963200711018806940440328238563729996082453281672714945437965360026021624543416312947941223835682567594276678142345384850594134907692566094250224976529922302733518297130269595840346706817444727185347423354109011090569123684237281138779670796659841024804544289757959747066631448639153588117460967443509149556659969290716737262714317624859559405173479634110181050396768212637901171949173598603274254990842564776593114934982117353254794990892242770598232927046103265156342814285351592377863105499595921959231576994414459688375537808852165382711976998289026972718792648812679879826239439915683102619490875861647452846163295023772967664885978998730380732170011789405871957376491926094304177058075141821211631652801901874773472565417386225622413936567349078351122224766719235591040315216854341964432822761979914988958702736849747032284814447957663240738134957572956604266139533936687103699756896287070978825663369194678739165694367488889411991970264510867374521928299970453753892803131769252987952983203902038585452173461350521799201417074120696587358105976449809712004831285848845533381244613081802340101860833628574224333964503256329707979713081609427841816594582850815617634920459984495662722049442453750637469067892729778758001496082795274106392513991762046958932403803836449126135703399064533001466376514643297961162507491111763292701669912509954937922878214615325518179471367729511736464867563963533537615992229251988902535919081763484200275431101866784672505952590995999771461699775311581839732688963370362498651925074610145909745982620483911827947774381483271898984128220418478099743388623369779764149830759398536600787186973955660049091134491957984438768426608225806291470035867758048513592912541997541402225807323150592373265785104744542333982961660982773823781940842985252356960975269304342351206523133984295924361185075771429139352901231150311572651154317038539058085025321878557495173320495153877180167951479202284955077274249643229301681604820616979994270203993106109794664757238277349239907735634063645438203087210145005554530084796600462966417472407270315765385411907139665220882844954727951508704600961314207793419758333407635983424738980099081275568253559309242829459080528101191824361234912794687728977305426841597672536678731667484004395006628035412107721242741787326138042037325744499038168984297920037578311136006738343395589778774805693566017995391644683485496352707134313986497380340045499187517846700253312749483595698897689423919688350019075117634840248725102937898169166588322911710918328855484272596722982313486000137074756470197537241572609023134809691952307887149698317984661847500508459424730891466641845209218618845683336583595910080124954251059824283048429244030321248916628690070881370099419591343707729475672825887057107268879248739258322927948086807022199631663759316216026290508262649912613319172540487402606784570958637594917748037883226392248991088146084666863856011485674479630066315853014566420610737479873934067114288985468204565460798292021528796664921858589270303601939735939851555439323511882254636142282722821618732415282469803979435890188664222155228693533690810002681483353035184766819442232347973678741363180709420104281760231773463841986035378326961169008324852275231428152463474291970558712625245938651188414090761155151639090555876061544006574888061979870634760284609698729138151372266860722478746828946530125764379848843142908148046905048456545255711551958799407716396426583202206118196042564907730475083809122913408172792689804418494137585454183110443593562223427127411093212269637838688083784802172471208849412635872874661885384722472693884010031501741496883142090861053581941858631351463835341166415314521260717537937121706605074424361471724650315652381251028348899563693619748281976638209829508325899651917970180836316795961171347892918097748406143764926703238223119640665583343620293446538912843581956144470596893525115554140596380075168254211733895291837003305100092388858048123596395091156736824851001929364503845587231040129710824540046114615476915244678536335061880969964301549199758289238347641279092964128901948179454020995717971398833426132264958265272365256094260415771799401229097162109481127833381951177894778478952498034175802873183036693943910659512797525799986021577696338965634288410372223886339210524078417077766430952230842232844430193729184437887805847899755094701624663661803855355992653314826371828193736488823251893973212069063335694335941141827609596581976142772840255686989958651783484281975959644328577005976150423019352605907426185017653670812543838668077685581038268917256539482664747320471233544404277380009950092497283780589841221859832534201882107239508323926489027444110601822422907496247195432020975905965554272513065706677827688599906349304294639407997319602568900435258336401035735607485413903481930521218853632938849329305216253445868885931159776144079279493265478176867243176641423686542698106785644142652181141068708176311328469850509612230891052188962718795893632046299226485766848696272340539408912028711106664220671666731871610029776590464453839695865323395673629095671365322980199110153935020103513705325804935814142590888378394950495904351846121457804620423811816526403865254639725285229934277019713864734088315519360836773724662284671980000188254335886114084944816617727149570983117415980526695702665415724784653119909031778588883250971172523179041114630777478365710929268454728655710015815004875395538952822673966220905818998488059279316391382148856125708328584825767317079918457535008957291485819554537888227794650082721951435448746902503608297046214186503785959939426153179442951357353842332571408441236214238103008085385690083757194213737453880472750761168435452256431472059668503074407733812746289737501407765481820619463500668642887401520702238517564732779296422528246503706485449734558561340237711136708447174792719667933588167173511739982235655985492615421810137358176419805625965568873836534783046643468473133654146046283014737128793834648808728679531909619655440281864607746584203294225902681528495593689402311095079457365892060268083154211294028278784878555711037523037912691103359138923147463165260011134102540246167853782102969566117839772603072206015544372845094482698580779577857631888962813423646441912583881079788760652910834443203440917238399472691673211447005579454671575693914760335839394474932198634883446781601222330698895108495152169797718419562334037097090976346205070776054322553401892578835074614277714733281209119801964573540618346939740637617212059129791087345786996950018076418068863801661908147163986890607306113704746587753713382247236572516620833587912156433808528804868673459563316166540676853004881068932532252792099860104537985978245051073984918111848735797100123788868248757378483070911046352571044115682081578830133695967822321534469580555643902731874092558023837063988970687413228222350921257504892333380693761905208587024614412336654757090892087544827108357835524941655703611444645185265929140939608028978498077266372316407668041506276247826645247865323706529954649420349283725307215672305291454835007987987809353557709166703131282045010881782242936191287002881245010828666914692795135268731804425182406743320133525127620426565761716761403377312753557043610905210840002986739803999827734797618536583796417327127209949414726073926120559600825641207518423930241118216120034213861409933655578153578932754025844139242643406069666878165292881309984883325344615342982604849032187169372808815222172708186954242016560764328691602330729057498911950835334026235659278900439118468799463666618556931603149997161077100260950644309711351494625116324264840347401498621256652296503767200195273078139007819798586674838746557606587203066454532118166404004155896050104795241395438233324746133288395988338808283312507808268339165169863324109547751269127296977570830688382896362295519932763448462352267123330013589053265553363744518641060827611453653068523506649299756361904046034678059324654565105469867387187348304167181787824302133450168376565747320991409902140623158645999909496941230446560941414304753954842798090690826016234855977856989405367545153388702627859849985531624924518416757450368758452342721807139026275693641738020137605231075986645332680985557278316388116302099925988042166168105402651263469227916498401555705473899158379049423734988725069983101496345191156626608724454594914900254426328565812809820675366303639404379866457499521488179263640971304847117700722998428550909461271126129460922390453087431252928976635376860479894204874611131667321123226155664834236279609734067279206807496507864549887482834795106317485778724376404454010303127339415928891050322115070209423316497267801611765076169423004670628794792265178239325302316290557190947701749223628850083624745752701074895370827602713398487285714167268073631844133671935491794891375508635249066156079366920909675236749790268020882110309392176294538770499183157599259259831767366327574420225017267024253489204698218361011774740615303838878240235753154707453955494159616185855514659134568856455402831726517996555964514165290643703057358761256200067043663190821583383652778612927571627886253811011326466490636414232253749203946402303090461048606054037726818177202619009995916709597332083330662759171940809114750973289460014603256024923535110625702992342802452221789977243764583268755279053002213472060674614518259344383622773621446363460298874821346821042319438838103864029411971440299705851954069100811769748646586579002847978446461610624206324242025205044123411523306412439105067037287503440067180286001261572215780184365044670008854272287969250690825475169349721314709636159634088046295116881648521045947170548882782260372180189375579234870217657812791410607400618181315615409642302426355825870792038858393979772224935389485255173826637914949085861590102905715164542983166952532957901929263921354783942664789387830801730748455192390931517717223896200534808527010628134036238071879737753440610119047187158486322387020534027107574798694704886149217480244150078633694592008587674991727124444373247358328688353783158437676514406717202443648645562867316183301524073322213830013422040847822628876124362090438793334030141338775532911425706242967840701423668343461172980624434173367779716253128838454140122207831163818382897802419643937468165461910507502448715441494535565580727367399503985594236403564914066278477788375906999497086952176650672059267968597561333459356832236380737781837213035568120186275224884386835589557057831324681972320205215496768862220353676892499834160308824135987954907031678147862361345013002115032510692832193605930067163219439489102631037636785871389345421410096205332709753969696001256564517270763596021776559709611695845549282401323049106470880986378303830150372654112083164331986752871737420127444943830474977358629547713031197284292513906570421134232066986166867391239956291926174892532705049883622742610627029938304385749138243315061593104198670097046525023261423841574468143095185885166751663298937528438170346095766924665644900705018378133465833647183508568904829305807942500914641324941878185666626488470667391778892268823425063642554276882405142306774319929316359399856416619582699791404573363218749376724193013287974827690314335518691985856472416860887969799906197802469467725624150625225241348992527745838594810967303532805923323140660918325199370845186965650476742281837818542480203561308731744908577428735099154283534954893601293374643317228426171110154361698359649141060460809135759171627275665796305426603993651155638967031238289311885313423373696894485468057332344201766055982666399129652992043524288187925718063402013225551237106057288185713723123277362403587132431441547801376309841762845386872719959472533124147393808977388481594828742173144106647549230046605685729024751510072880316348685948889717548783715640609477681408502425196045225424880653186183435098389750576778855464870337117673020775484015376572705632100566928417102861858742849829072286361667789264323481347066814816623166962660563455440542939943416524740838229666902152323913562678213533213808324030409200030046423064328664173035999964720316281505464811167703856419033468344815859304847658598243163677793642879621157708621100984886700880030006881638429236413469317349769439377131539532018015512517399887495642150140907469349342657856361575353277053845594309579744569005505116614540311383733789353588228723393113040572991064939101146473897044984666742375678483943581802622491049444450423978543934128684849378580623970749605399103329180077687779596218704733055352534636569273290432474646398619473358118155197766812573604484529578649839659646836692740864408556000262888379430224046969520553551014070125143313680485056481046374936096918791777021327367299797640260217763404902793955223283269790434608777016206904102998829758932093147124323878921688103927195990861764178577527963732506918841811298821749799382020055514473641616600456776620990839609405569896654104545913443973317907365020480593796249247321501484038629588644810819596414510198041226081808952721220463900195727925410303721665740066567522251219180897409138579431829163818170411166947158432932365392232754346075735408940922849932246656685272886786561388137530626990123378111001546188454655353005719827602271602421052790526938990741392445690990785818908027019018832494448045773119200258705609862606314922799897457282488964299501766554709360428940689381370062055598914142235879119617635131618343578938591183592294435546801908011594432204136416230561725936094865520293108311111921908080976453747348967649260825100331213057445485771161884004475774134651034488964874741352434871348492939772731735874729015348910170752444362859151578805696295773869957498143588481640451385301033074793486853494480806169513402643331820397681333543994347175901792306008071282906976438579685477149880997007183978721943675222010579111507806677794101183200476802674549804725146555183810691722862827740032185532190322035432498214163744895253804548303764603443788850810486585364231072128565548602529276252129507555954174159999068927920616318234512218209936978613979160718969282865687366502417307535046983808697505660092915186988807511721537377049828850791741772257806976562851972736399778728644828226413292846622804924539892295901557110947689252944352979818281665530346007122405098974795292508957189272924528163663023640314841650507787219783102748708762254607026796817378287902881061323621432309663003246588178897784199900015146455300370666678454685813493386168747027111421567226354477453343266726630653531657507144797029358184598553778547807697890849829157304164399877075627849169917367883515449341750638291862092833938917162857698597420808549273895159791304145045930451779131311618240609229710121884239835271862638392649700381551128560202360544968449471408268677322814634031855451969532533985575999049823938314692658217635452464294232721679606245608070538444764595834575139617987306356243372139931836637686700591626690390701407571475375836787076472997201348431213901377058843702717836398994903661659798182758463120395996669563192787540212861981161096987816035831974876605035381540050514377374655534297157570181361793167543964887907154491531654103717723578722330765214093189060469558816151176725697455093721056901980872314925884364012758250726422957643516611248921691873703951155746590040133501741550923142452657828362129849874160837817485715901844483338432647595186984708152458346791451964490828744736754654560032118446808143600139246373150483422505126446909479851730593144699204327084867366366002503442617844169717738007971769172081997242656364914679537918751738996806537732688597459271262230393752998068243839888873731247554384902275137324450749427380466392826699777559472250967772872384293810858348036921710921759401727871199939414017560933430208786368491502446627207796549338013731649050967582666631963564098176903848340952238936386231862364124650418691260507731688349130455637655057222748189318794130361960305764183478564588039206242624808289410833865313258645262973746534105888190146954406765790155047567520705300821535471713372689941115000319274357831023634480033143603076795590075776841976846444164208466743203284352921636029675671248829446982063364874336751022615482118155409358483930605274044843958724142660981120326594190863182726085929442675206417335571218411113672978010232373739978182137207000354448264544219652090076939853084338519937503485652405088641570745203732942260695289988271184097572424977221498370603879648239929134567838258005758141040664588439301970849123484600742519062759174500276885713417447869585972689626329167136804454406971883682340330629484804135676580966705210213851490250470697531269528408974713909520975206975602178904561621021887625366993302006330422183087268829194060148289139994094117220027113911158380408276039026416844647443472615055491207611244059776920572395226636589446142746680126006506983511937565937349977681080054530747989161574923880714341019066971922619531326511743163017211942738500645701280867847688183506214380428489675802321129609086863546497866219142707677982776610122611813083386314127091375053199881198246293822342885200885053629084545439501284686792003627502404246760041421042064511171073432096277530018271465004724514127514638729623433909601114462144137840196648713469122483951555144541726365273901201513465173667960529698307007590646988445785245502338942858823977883992642591935317734859749178805221637775875125243692251521896487422772121340187599026606386710262135658686714494268114562200322929076541190668313566130132233256822713158801750098590298544733763366802379260396300245126733642997189520661590956419349661547769276991445066049060671695159797705978172435076239664615421229639239069182225717018644797959133157121670813475624748190575896473346648973464293359777801442514708649336695379798652006143663660020352862395433014464606884936121756849868770730427686353254014051371772725424364065995233778716210968813060734926022451719680305985350335317005863835640511258056769128760201281356808557800983655929656361018883766697700170316522396737232314098861902058579544326029845398632264689258894121360816606859164423155352378436585558653361897064659165149914238042318494313300990889904523819262085265258789384946918876298260321084437410237600013884320843592067375418890110318707125859518114283974902777407062362296171359843716816931426587693523464510091742585718544787604070829146556526327987594021252128262661775627803160926883594825717371154236345404176355224676005603345166093735658074182150518393435472396552295385251140396694226077718096709001279565311551427708539296387016155955657615901777024531625387391416568935512838064475342003065314864613304196565554372768828922836202295191850445701175331723151354462194304986602251854790546926667051940743317092538372423589801285277346204034745321873311021614356879441849011289246333465639279287980451851925912537551782742342060842487042176620189246110509839886023914284121828811433996527424912646744809376020915065855534704738561154269488475191002329610743408044356641959935308509604733119700783776819418859298290612597746152434974296079706851063606294639831518765974277109421606436385106653312144512968845441773771351904473561412497986744719514706948271602965830455787299391453649523740486488625377933205051700614130798196722811881395029752968488621391648239196449028297063754866550856477360070233325167426232713534698702455277358873887946124989428173535524245630152192173875462290015752331972650496106605364699339815549684062723973802565775615469118311162418991184676358746205737811396172070732706257616855073339469982183618638285714179416539593183119086251480384943945760885888865590133464124644479806629670747584904545539293752915165325963656973285745182445029744653816374806951719215810637495699419409552453046547100211607672586950975602916377793466424527734334155748125061354910473799348340616813200076473785592142243007602121925951583132976257444430665758319986572970734394625458014117723135345972215587511146566279775629622730989774793082612263521010781974296839696026262853454325782816796038718681899754209521308643952349688171307825459814986560557004899829340849767960499821088385931138883764404242653115480759376119473918992645805491430227235766493723870010173489507041278810654390850704950081131201739859459707979475349390573501763288871216725576094230647266017951525508546030498427842616183858632178764652262566022651951416741163734426363158021376602227985734968199955511809497333897732961253641221607741877908063960729920223951480676134555015072189112949879388355621256755553138929090795983848512745874122968583353361079249120667625087708174715583825707493130833743639470355204503694989326983256265480733907712187694251471942699083707043787072843795249389652549716383346778715816443604091954472691416734354257200238637040253135463287284916828931192846462621152696966258531578815047452469365972949885633950410521136927554881466872336357297673186146164265292505915828471429360080771043488283721112253624923813314902700658141991249311294176786194710150854183896392207801628759946369478009067547029517854764151432740240408569501566544144700615634480336126433453761135889623426049947126556650256915712424922810447936570259314856601904125117711942499701022298969508446253009506282815479726100479228114837387670404647732000576484370107115767290345740430322875472839680321873427903703052740927134025265960756330200959776247044569250095422916202041137986721960009737550681472004403377454742479849190257958070273957758994821517856556690088763241423388615927038241313569740640090424102062332859624079246027379182438269195088675281735451403780922362649074154930422920560506363493006551981622678685645724865404407846436100756771587881030475251080737052827635874270669785656510514054446498259219753155511639156510173867843505759187312215652487377564781510232804450305186727891404256969135196718355935042435074685407303089491139435641127887262757447651090918716510102690376230902924562369160930100120744011689883665976117502967946834220493565715874244472440121375146355894796691113508598910207908960387424829405782300383303730867859875971646323549097704107857517711037360934698792887433538323001513347432054319360704654409647370651897954309609622361556082375713060976263532700000589490610221117846103985586926768203799075351860913220008445588257131941887104567319007885284390099137216963622222032904464166974751732342976558238562833445314954091830877341500986597434205166124195354964111528285075011019579587406756540934913853133172640623252742290661670508555605139818061877383958820316369090577998275393960216031703065833726074079894612131428676920453373379377197520443366728888624008606590953063705122271102285570209840301401992823216084627837362572034176769863965206638233843615543311409676086078475854587768985058450786128750545855873934839496887217541495823222958947339029546730648568420672147234034814926212733712146329449925074475511586876647124286815129219845462479851660130405910234586660144910218044629454078186840779874466034792078758167105186839149054689566709338607545689428486527370503628627704500604825463060259656451278896112972850845622752929809367778150157360204173370065639787677331134775989027502742492667132290185255756322714079396912352424175611086897507404418205445954669497885855635684488072090370544603255644636154625646076483544817713124578186758133027465954426167977339136746845315075482665024099378232973982613223526085735984822566480556799336210812278332496436496407006836545635015768463691638826713683901212740647055184407465802092236341717430198281891904352339593617278033506138070601523616159127197544655820462176533140676055082951273309154646501558779524130617267962867459828898384993084486519150807387433536194023645317877237932397096184495804008649426991446644941165193367170240894943236819386176721819612030221680615297741669791710124695776420052740263088947758620474901564092197267324025654999514365081353492090720810731681929748072895563768999808626037551904117354360047874363253987367717839382261317270285197946696579587689684743486010719771823434593699240072872194191004461002626768529732679008759668480833491199112977885962423034585371223083506940286220253803235621221476545994725285300783199449265107267026545556279758463150012137481375033416530948767888061786942212691778525631259225072097282931096730419539900214542212288302295283255997878832364232884746685392623738746007386653837593733959765604514534627807915462947699116847781799030307749688575070342888276523696107724767323571729326380154571785503410129326004684417795148789102275551160962001851438438367020509866620319807541775216820273132360901110104070643083756809268690116248457355999092983268573330727150303305470959357981585250862279933246275836649423847654581742403024911318877622109392003690879211420392702126930126381277134479044300088906023074490765480072263317592814642932125280481214406542650922326201715346036533912099184310841119881014628074858697856559052361626828309799578565356721002229320313387862937695276977341776875336124998045877096140804207610058724460530408079804172703450126962727706234744868622297590310427327573816943983709164526245734176854900568897621799944225982521305948250125513781027931507587195532128880786145664733518538237702842066414533792813579270250827848698377534019312237461825869394970188902876684596434863397244117329915845947052447381832060896935434276900176686046048632476835585872041454600599128790020123605017512945617676894618317011078911136966386265927980437694366031442488180732952874005003996807900528362679225276745378039239767932454292292911374523211510885355865324665751265173194804453417681934218863335265771616309866061729250445618634812180256063655639543639374137291492583747661237766017033797903131781044804638754710151930355433821304558459326426572175736773680973921528719125342246104086351858302237087900737297756515153448766645595444481323373699441258245431841165749587766876771201159682878246290632476056420106820264032001384337182845445822558681675688109402551061016519617592907399266509612292260319876340529186832813463310511274430662660541743199040755064507103249842257603123138189898124343240166934313438012852341128389270279196163678484175752732171412908686299756419595574258772957748242734399832423860936434951582394463112142680966292980612051137910762392350412438948125059646134706108546490723556740610730983009291805167452963831431858174208145767001414583982146954815018471423642737009919014451030736692369096483004714055167696546522275465902108477071542633097179005010808884088173021141599692188665573832764516117797642008045671742215489927356384945183944528187283092707382093690371031866245341591322733610815134697567040627687377063217820084885852484564760211971442055983844479197977689814292504573396276330190809867609090816731840394279716029962766565151295002101402993477024942769591307716357862460192203086651011766415893997359968945675860538277113603168530427722725555515926436754699516779703979629869303218595852328498807687591672018343036567947279575344329426587636452916446958905111293368807891585982731363661993696624385051323635805636534595670894844243188378459521707537601082199095122809493684277441892690715224385615973963112750343227699758965754022823382789368769948732294849717961776379209659047014973687198811670352011495121272036850478608196910871499490849599004137840602366164302425359788314681334425368754696660382361473003822924199779460154157063236008279738724660284755148955159043117289643488307775600893358091843560733209260538342951611680448246836634214312660453539639719272793765807721474545905439295208289946753382985103799445713677976904960085521943344995216109688479222583858205480520419389181489037781918396322187295605185284442837336139546984452613809688529655064592285098439000863726713638119451262216557416494965753610251289839248669648597225431159753757602532990615051823109609405801950256997844731702861406909204231678129337397586242169752194489538462858358791417355762421963359129281680201955342335079879766372935095114414675540186054766059287669037660773405815989171260243571663824008141311872566959056784745174142279659579308594268835189963738852279619137835312433551035795721843126561510317636820963105565711606170962228749648292592183771124887654702261723385140017746124921514909906608070278148564268161631123267007700696327466214742775850267761242940531854537143764682902272543642969615641762315230328178985144242095645387175050183866045521112287488656487021376442477605847117464531520395532381416691002130944764267549434926829373506425696399435596919867446412982086002625394864671574416665215964916845554813656391807694876139940329410541747154863013322678541687940615803001082453077081869793494567040587536188602034516806672665931021911129773429307815046355808705131973015830854515040800082140686533951852781276165141361902111492549144021000647812767701341850267275430049475003594751618520095937209129802693170588639900900077050042747594603793746189896469500573343532214829378134079425249247468850537838671545650773839984140963765172454247044649024055326706343984483537711310928639359579193045711359668138625763803509753412796290713744279689332215595739323904542905101065259216108003840110848646941987451373907376675284373660168662329192104881759638805535357016384927588121314283343500690520988930268877571354402039061892142425306297417986829772130634815847543125240295960735436111687861155446480402921161337610226076286550417271104025253609698966607366625528240046892228904360303865778790376268056759704858594572012896025007349580156636945665943181048004328436363898981650207241831811035902743587780345837169742172035126444349702892579932533441367134678966565360958924196295761666496431673644436136634642933174295850371405861721028024574209797377689129891130981297288457221010648507258657354359435066778044203421177136504755117538526688183899247258392629786778824868889098618273627023740211931706867287754499256418331324918173923715455612014931335869381308511218750012105778704938007474476991214759689854515667143053641879507801902508200576436971830576608209864419021155982009479619470030476166663133699345432644216936197987223313110211482874714226121621170858633290257623948677247916582084022173277989519195269114408508363368771009508734209995446896311142353115767885300254732296474332643506319456012171444191991802818235812419635465624559340209942005614918354654195794444177049943088995945279320577097723191353869096670039036157471083736630050599241210844696223500659586674939422004330438668483300305073729613945246858647100184268305117029698102550448332203659440385592834374094231095313867056678159637031648052663214610515728928446449548081001718230029239324311432817473551027967659112574038689221687124070833204599189136284002341958724080290085905779454072910798840840478236178704720574074510171069044369877393839054069864835300883646161766471253703356814671754130762380634035940194291791579922139228497340759243149957014068467829253884200478477419267006805384256157596399708173898617744299428457316647276587723698478458049087573825581684051487196689988973409843319085649771744032154448046488148153730456454122116523382149217083129410280634796560998683083050072855534129420051287804603077797796188780764313839967907004687867906056936156220530158713431894717647824643933469164286030121356983987831242910819705162081011963215024149228075920254512171164698692558174774108520453738512161034907477837401919058163615384763533870818596454841416028799612730069647553310007066011993099828611440930772841354539096121482738378522935415249906158046956218370088500627155104906897340680323874097826328390737543251031833912047349803049647813387151801007750004576712522491679418515335299662842768249330848984037592418575215798417598159841328870418536944547294491735516549383892903474467791702020599928547433609025605378295150349809725347602254442528341107136046178012649156538832414833776204723716377088969876033376052102581224482911771793893936705874013677255048468922373729471860371222944373050506940108371201445055950660596384138668964632426117632221346023757304439690474020345763354427186303136673564182093298189606685533896023598732945845927421779961903834066889312766048271449819909143325069578907279319363713932363078739355321997712872994113936944179749362785028081298543492657546934434490331324951433720763222148963616228616143209807683514702343466544222013077415530124363077348912082808646589577298895597174429326523775118049346842554352929421093649485490774941468923378947287832029839427283320437188494322578776901238127393941093010750345524509987387998470405937076318126646232950555231968724324358890566126187638417473347614994178238391265579540610420643361738275171241392855862133781336117089817932144695125721096617492760084925777595117460958965043647952064369354319867074690952624081268161425444185909408683611233078912004571939990360606784751863005100531925690079526960119836237213024105034378999000980167243412529165706721814227200850917857654124362205361807782780049628527000637841911985799498550546903637022474393636557577104115094645158896019651782304738985286471452126883563577348655225003110382259666617579238602841847282354417305985900194421464010551168001237322706485285141557507360266815562759392547943228774223807557800886875689265262800767322111575914072819792642941757421245460421519236940804633240624455946152656276774241025980339213114228454278917003801499311447434774865949947200942144473030156976327887027244268350549305912014073464245055679950224946888242371040082247475047198948988356893252819369526610134337637778588240157542545035748686855224675099756228689121148913110154427337046886232821866777158637340567049532494245535145626883391147145871708331237157189229046527112115974665195646720035949514200026153455066991988518371054410287496119916997721164056342832664573414073661736955150475314278514029843793655764782112082874483810209763699971623401077016456163712157087565949903600883673958616183795335901794230588833337459880424306381358544726858997940002431546516063604659745720016303045571313593133660146173384492030408564192132811341614501822411467951059579315261230322269962176610471347519274805582890264761765083250194435194379744037075227173316431452420951546156470414064761650846052895443971457769678747894253014300706548838997911221839416181886632526802520371566159635879840670646729887896523336803349957736524430645876093179143295580855113067400931059055903496791945924257204000999169567137367267244868167561728606393814265572163916490648453173539118827856210025414892111570457152303997591435130868337816480192140572651347376631490352974934063783415101300180538150304605227926323519453852761768899107664871789596211813021122652898056056512069027866892315545619723814132336018781308693693652989751498402237828053790281356081337536418464722641008260623093600891587917515283545696293088542965445668390174828892588817124737545764246164984488961765952148524706386874200755507117061733086170249988727487897961908041098614631565369587621764534830746320547881376563396019742446196485925521106172896756314283730336180047218399996666202302017680053731072886083527086475355168858378818656930522267964235258181044723419588017583937186010844389191093877328534660640387228215250494013949399584261641555754712800951211609874667767475946218971618129776319535840146381438777540224887978466090266662153612126628926490366917554222472282578630925252601358142169618179509491908169771945088690429027749694644341078572776318852278297540872105193532335216815807843141665902035106438245687626194567361060872084750839896291465981048238555767865212317612974279119345951634379337314030636220949551177137196949756413869096498546603559919387398902450772966300441447109126505245284957851299765253346827952247625265861453309049724892127024807468312366825815516891393887809960328488236416049207593427732723194842992407167731571475126049204518722206051943295800177324512580084595407832505708257214161838142843883918136813754116333977405745201877859081188074129531660541369356775296659805452346326157981137717633856244754886543126575079260737649145811060631938857818643840898068087843671388056065546378707581336647138771054693383772188018668367166205822997249695147770088579466959724085133532691256433244196438507597295309159784359483058596918778930862551388375166877587911662016744276626830768244208288968258679813211530986034672687870494363550603864564793463867665475803054058728892728232251923546400636816661868428749466078278197170174047528147257693486666465303006603687005037776079941542805296385406800374111147875674494666106405564502419966032296312802635929607901962353097342070941694262214208273164157080136367483908188750368003856956495446250511918863041808841835609005322741609485398367427326797868367452284942624336953527808237370001986516239363909597205816157684980238485953939426692585242853120584190561661128603726801777494124752042648405936471146415519213262003076389423800896765318269090499300675409724304476237056015913161164311455650247937319355732848656411881657362649398034984906566059027304314548992975559648778997202149121055788384343787948095024111644485240734271946293673127254273120314939813712804248112304437343223084903505965868067272624277851925977456335699390670722699436538624530696581849722334583256293029144143292516916467951083458603684830382069067894986009932917675313842576166140630787965199718043168454292621246265303274739230486742681145540505856709927659107533273591843364717661175302372093707453533320579377217043149610487542884012045060841405575210200550638664986944349553845480177195816955133523721791363249270492690820956601232484787346892853125731058609662816263185667217009589200560925351651608386355227369511437458287543131974872048784299074860381803607304865535071407242792283454673660664662761275733510724053274050923264159835922754496922983036516713055412333930674756497965649876968642908918900520301982599366508373872828101568482899572005087514829246218725828645551854315841003982271598548833349244781375710329132895873095726126599788687513231090496729809298229847190513855454171502039627743885532820702960029903300944811337466049335513154908411334934769556133405710677433819569984424421780553882688717605391118734805174308533595611939869182787627737758410702047030908471199188352579448002968453521123028913295350587558722701947455086273097126034125022198730404229747989786152594286469114479658425413281480175971373881811895886949947198172460024750840677187236352053322149687428336007455974349479015046817202596337240713921020708899477974141211067277459332425855639366545591640528110559966586973313368972929735304790505916098655627280919342284087549881796738313360685148135975919979849166112163959736388816206395049520995830360726636552342790187541512573340676189772836816134530427373026985531204103550211029749244202183728874916023941884688414471081675937482111870331112175931638315868405141697854578190747408205240300685111426433254904935088956706477212019217076809287049831234663257026054716236978716011498757019350569463262394065607538882498463581135849147934689895364003540007713465567002025112489109682366808661744192093675963132385786293295010345972670665169145980653962690433143448134349364718021700223904200561012302513763245692909707787138880033717732993201932034739315003689142544681195322245466666340907264263339222678099505654226035707887913867576896871655583234820828977524339821162769611157023390060877186933115253704330913649806006379612798016963362219347929334850000908211731954521349358991283794416711991293601825838368081023610516716683243299638013888112753089590960826993514749427501558559436556068308047390994108764863426944620468518764437123512798455719062591174762450587223946824207449519720364317301992246809432529795410115112341075225291644468886388314315173876897140269439065881627033738766058879518172838692083142004044180192056860930030579736420554417679198844934032282003032015674601035303302253689102958341230938426192054015928243399822370724062760500032752787939320325465760424035477922344871722324567413358898368924621783624002109212172274663654125258910074871370674789747749742672704978525928540176596091758211856028584402697003426665294764726339277257936035500058242235284201762841751419793617153865660438939000836838684247166623643078673171472578547172551049374945354737102614258922908127707496549952974588637777332474165702521944450443679651386815397093965911292158231176530062056212282210509065106678405555077558091859488553274171439833353053364329224999651801957533742006266945518542659605519623104027380708327035198126841872698618230634312327570953704088364612570545654107355437056690762278619239161128157504569992419035876276145764528496399359826394995182744475302958216355093530822630850595292217326096079035972382428143448434624801864445759757377279760373149232675310200883060664692262555451607372644473447308090271613840539915513611719397631617117788587955459711076448953122547750533300650589986547518994488288958551502760496896548510021930287225911850078283852842002595241241155575416083559024373686519307876326731575284604983861915218745238813967701860329426538673901205430826688090372110888697681106956285565002618172082411564816089777399733814504860555172667619131534400076199798548880425368240499208243348421120839249634731450448024106680156954912555025447474154261508679104641530180346712739027466707186137623996138932410804751442946215241581872916879044830302908253171933947547240633772559790123531587238952099600216326188675220564642248836804654267164312982834272636462589498049490682057603210776083789259669823312268651139334387533837904195618810647749879383870541968075718187409887366307786487464973639196040336997341239483749647243717164073964391812946968742907588751870470181684817938690926907945260031225155814452580188895564768995367524973275017190354200843079586020499974699058186793221569310448476918164285985003970855035805891339581227969728333125431441571113467677247069416992348583906230765127769059636540581832216480226946170752539706306059157577159808905601095372891466169091722130281509510751817950234900241659231653768823222260326242181645460582923562051321885466240585131695060556215455093885147553924527038472676770629240164482883029113307492211745373733178284905149226786467992752281215615110603350571708657418668971885115231433134792118133165519513982415462287499125740373767723400952900800605658525037458318611918349307056107905698446976008279598831764502072974284151450194371471288365670906722510511643842070249536602286912369498527816479965703109642816327102202545688626049494467738353689344264696019471408048958181780074059489546792393782515233967842561180487692718239461305916365751853162105727115602065932521898357981329768740842042604588384767861267116247937667878120542396209367959541478609864661101333469586197444494357892118677542018270547014404165125337328722603495883673184267441827917641047921250792604117577451875912743326673470134520602261419359324107470710384989573723140183757760524855060376318607005232252444273693985129063738024194862754886095318517608124030235101074246562564330648993208347630791437237467129849776316878366098421930302059294714935529931323004925209299304470338650244340066502120135268900687018012286883019266433263287103298791676142102990468644865570745661341875423202091023057945420862499553538909960038334299888747289417700035028512365150456874740426056492804736294922852022630474799781188408809300783071438141863699891372727014519968595353948306596836520648480419861347089827444972806494575477901973834981118534301673537961893678761673965535018540211053690573554289361213280972312093414661699762131517867617393610119885848916311966171368338333669796988659507629602658741009146086692155357576428715888114629360736115316911529311545468453948915306394029316628532978863309891766236569274047775801051700309199200535879074457722593341899734108562759732079281881664089653425936506793075639537037271775753752279968871524810122661690187819293444490353807470186100363719913583713930688709266337771072997141035510807887261353696071232049165346408907529052733562876043625740413937624255231353876684532169922807345126469589094317297610599072513759211272537428694472328082395815593303000146816114262952938044138100381545224995402222982825966332496911562132008829650371529192262377626661402049124880924930475208717393052536366885793699868016597771713220748788510044112116607020870011861118698818241431561552256252478412330527724328244739511172898676374291607627091841663388087890119117444832274801304748257212023878899537399389975792327707132930674940443954356084445137534219381104981291964187817110240850560772116915035581488265563845600793912350772501325662207759539317420974319465612066441510827356666405745945330300553319274763033161824845200144208213326265621361632209499626608082221228383030265234890886902346408368710871045817238815352251354267905354103154101783364973050564518093008718416331592491974789708247868072942038494384099482677952078229355606816254899566953265414070581912049098005807252494790804320487357967100976519995004014375169687149324530353034028353767340628389350401371211578998013508660120248045799407682684881143323778851479524862075902128323242056729839445610162431881115914800688291992816791018072823755311507065956497224251626116045872473023187749419085622298122698342744347269243830479188687471103722332973135972690322991775239967984541390699950603246548078439036641912567726835393495678249901385642559766702899883310105063626796467246907179815944098476060962994955833663576579813313784583387227162964698118185927652966809465502360126155207681837226385334118507446856290932973715937833434727520889082506371259216074196424922293483969833748511167196077351259310146290776519807382062008168253792207628979697416747333963730545852747263764224634726994218723461995447802420084758871885527662274379681992638929476113576350830148482479156059296721191797631121973522593384574459535310765937418698314925993635273612813109221861178571930966389524360502274858930980134647106788310569878467631348581381216741047452732096465272747615035105019905714251279103569906305416962511160082036094630359793032730873068717526177388121978206778297920043638470519550465097677855372404384569328372565089895381883671523463349573990780489304384804629967796345474665962061187287346914513947709659834859379035915411978091971860400547564672594704701718177332739777028169821753226270740163914899429816276323117377286258250732723039685651030924890368046505241802154645744167437492196550102006502142773374665002746499707988918759529299219003096344412642154970640025343837321792566020415690664047327425960673853326939237488007063801462143089087195818008367972547117001455804487306511263054583294717056074748139429921963586736258835523253708159748636344336685948769639655055554541049160831058941977118175810233354257121365778149998111433009039881784382911463045528402473990748366387118899362560365909425923612916097469676972317606771519359925594540388558065024635964178681202269149166541477958685229604364875450944277357981461363043967386026273079496660076910487467156474642267931513829032531277092666631258770879656536960475178122291934217518223513812333265094240868806401285013300371672209749090771885056098645361452858867273647611879212897703993517751705336953627571998797406820069598456554277095350349998474126716735955730034519333223002647746758372584870019317618960659854923529358530711873072159050899623261802748139860240448872011191662574768291371664483913103398532824431200161846995555576162444282577949832236961708616449402319302648333122467352266119343865397982266226996926925992024418169009656988698699732970539244343024739219211953616885664642449757203767127133877087553217429342149169999617142657462616994612653133919847453739382341919380349207252237700148352170359206574451682435831212053372226370002084135057722091868692964322744694956221098798459116432545576097142896898341099846098584362785873511820395404990433495001423745310122083039337408101983562643639415813821741104605863322569939475933601753439718283215421816095926081437215325372492800116810069752743632706675013422513480603853060596364602642467051421767184262115452492809770935897205562833014955002766004779578241372883130703650323205370755672354229591299485621256691189761312255227477552168731079440193689792379434595086185151700586620506962969724624343373739773813369038441118544077030600564520783772524491373363857655884697306162022095911201542340883710071423808223739884228383032436613611292415883030396041960722685239088608363376865967807190773215788193584459577497025280071930402386248329447409999277773004561513430777441472033998389535016562909670117572339111828540370634476960933153235994198444831679766562347932518145665436869965689851073030660363626280170784901673742168928049840640688643527654897277617804104323728536338345150705301566271955784703014281006904785625436749879733757748849425648308915672991733450778211612211874969257561893078351759328499268523690272103591827758168115601971717829212141925876878599651336261247074302628832021505881497999987863120565208348737027209476167472762846212794835263322327757175249587484527299712543747079537671288023708702387614852349029098407193287349888863193409556766783489243240049498785643318279049600881773325242427037591610595641853197100128064159635856363601028213662468135233711904468907529010950350058448882696391975368378346813732023364369655469381557761060557959884195415625926484905046447925608659441553488473997350752479349553558055199056598911336192430846333690486824871552664844850354874733199465446334100773406447678215855903894927311577648595975569444574298570781822154711022953097245604169698417377762139284536850831038568745056831425025020618855456535790018356869370564648054322555788494221267243820281982285314426907086844893412432010478252542425638482643657941938091549327559781197206927379675610474866571081755368657226431983760528894540370834647687606627921827734187820759064709441634006349368900671882609013349379756949481789815969302858843526669144949654352755413211256495005474425932403807215484039102348737058001747521574084245535551839495878238325412823268981300797291296410184110124219361288789723863428476679585594138474531741008113213935136028015265700220206237089390244543137006677540114782045921291822300438250077553512509401046773084643565321321561125303328392985952365063242976377460880190247513547103570397164825865321314122018048345095196043639149697997074109659825207506777373678213127975312774688772608464058983846921656263968904708662244448480545326254724328416120465824347707834348046981278430896410197495719317438254406380203544329127936854677098988168212634945920254719504230882000462147645567736833337772914546558785441153345640099447586032798313980236041943239419870736846102502522606818020232783878123694628161915302121494145186303272837893458702500599991713504653459481033027224015502662006048412892858248140463022131766323853966137487060306770300844725612847157923485741525642124293680720293345392891323953560583737577738038421243075581203858491998790543396293883736649613267960447692383490748494513736882116162848546127513978039755434506275926532557953037872429745053809868772210523691161331010630374189664103949592182728237182992552146682858922505197409495841522279286084250797453385975068061691399809950062924436286224976909008788280836698500500694499340559861255413343785416571339953478296536167766302544918000948974780249212400255292277676725177433836969860894182777686737815166161941346138785461269637640361924750331005213110695272967941923925383570032150898235281310612401385457405175760121028642823709291232773238962122693876959419023603254681160574781062688516231125637798010945566454686088266803488753796617673996752996736024786825546683359957056526636771468692470710695139655279472043648566604601556687613030322942204498219767003839631921613895083013395700578072854712447076732817146683026351512091367849023991850739962529391695660268611908224925785005793564389234010832922899024600951332893799896806578363431926239700984877154684221163532505941831788493681785181032758889923631966319019085417425886730970256179923697335386838564019728376998815527499410650961800418713753420363930913488687675751857485061990560801980449397757883960366863919100730643876761615547976052102629925162573941846126057725237738641266462606159219805835785061481587082440415769167600597707051619050856053306581377778943760875761092503484364424048022721940612886029467522956159761607408700512999286890621690334907707262508820892554917883387633956128492744348667505192804200792390997596261065919436463872358576321169744866132365907483479944761667216480947450449330048986598692015764702624790508201454493772215942263075405047428548314160697841321512002026326625628073258190392262029386543225998394918131256085123784789182490123366513007817539490511124186564328364161021814757654772599519490716841645754107364828104402154571680344440895058837660817178034985438729847790950245382244643178667947270899619673442030986174278310253501779055058736670020038009019010764892618159808199296140074820574866104573618943145128576175362997073601041710203569094729565666668036996183644033604554737962370921075955107184142782487726730983411222028417569068651941299505928818321319011078907856718331608654168879027269667648414756383455418801564280695893868086524175836063509196906435546241304162723719532234807153437428010353467547619027441135396021101770592954266365623296091586601882177761556437757805058896032741746333038996953500210706450825743079976385153294420423870574693398531170398807300663412530000971905965498298038318757423869440162802614369284091665594375189234909736922647046543823941631052269162332361909687582616409838438166632246141653550465749248432149093927500294109560299381691883141029390980064303399098627371829446560469118119044808451596322118309871319612092763868462135029732573392082514404277567177009496776351474759047120235862684195413675450708869511644303295587579586620719133339962054872488168598308562057351870658888512203822288480457128794043302661099541089016514070300954481895136495807836664782701938541663327243673157275453369789375813104308111553972266415622090558878272061626889467261652840682831968923478460895405539637651416026383639414053798016607221337290811570636720258206185407310709425534780378311566456495620116159733733727989618109163990369573948978196872287220586808529191721254836772140528970509321542052633406142885782873044154623562702561065739200775108158735194464531485918165052562141009498557148694101177650075304540303209089689082813049687337236966094662584147799064796733688559845482639803705662616627095917431244354482837566879273171654823856160595672841057606139267068414060913020777239502113844738537091673528179666259667354982496329529344220293814477458720995422899149061817404434778417388606388440943383489393305589037614218076143654628043593023609464217782834175782279219315665446605436118032342262020372539342420898451258138207403845748106704299179805376638325802143784800292310145048894971898517515634603539347203582143750349767950973260475337388798365241364391385458442952859848995043610759096163912254984571449947699804141059823777243195492740698667515365285436276768781493120086542088503301833711625789825353056864350029811709803089436073089405350960263573219059594873116697111097516836581231784267209537963533431343675421920943194332440586548886458646867351769077102166677092684308446410024806446641356074063298724133575071134349992851386383117593453745117474016273075507413072870433288266243622269823974651634222118343802966941769024418197084777838611640551470236669945932269775018672409989449714851604029468727160629530629544933317913089312075671513734547608141959614713119655758423466782512801595498070877278187491439862276708265104556930662418566110205949845570420433128711471691853965103850663224080235932222409967444603624789844383734805823614399132455729113065740451608708499343358647171320986316982635629479214693034499317165606263217055459348559601284011524062074107532579425430671781390645948881003024613181139704497648555164064376507005540921324353884740378964079231386479336266281587874703644590841141620623353159708133422305729095526364573748225837767664281821527910391440876533044352919401686392160107168487067581372857024156000784111052946420666543776107573074250717884310079087444289987451194834095240932879052331226886894904306144319209317093478216990320198107773852320834222862633011158835582978689877257999454749717378359966567258021710326474026663515478110645777035305852700646633512301416048480748888915066053682384621196829413127673113977942811752067653132945963725815414243266766173142090024571396969186449556255793425932372978891093718924385628328482238893331263042360941563776179703077071166030116833095172706551878216342744915569136865099548290320756911975615728360295204998737165259626590897001117111281382730852898761955935147250840874133029659688686401773716246191338479740017273724862817271541278281195827238142499098966007133709213932464868809499633056003397303241706552420265108020721714673758330024195961978830900183794786916921473528195238689664626168263397454200902381450251597964744708176478794961130622827571828916179725219675216699878680064598785586503054047436094062610614923442756864984426251883554554110375348935873388929846138660979810408997807261921088339557576354853682700374394856797548085163827596319569597720614721414556573542194435528801471283025371261967529336766494458550965596156654962648529986910775164280363622799127410306649100912540269153570544401337899044456046789617794627456251284450407780870873242115518105516164434646907295547708998667538932869726714043842227777644589982021164529976531065407862400804326694591794509685584046900434891090864402519715286366405812233963353491329567757236969152297744218928810542232594331449289285868320821112032647753490786220473522214788553251514875720656888086489019577001250777729313899179264041744868219160380389943950349552188077727200246037725383037306877943572779263281349514373433550333078584709080443561311462433377583979746681394950784701986040914068257863522485345863610903331295175801936371581257067199960915891481874678664537274444719663091241301191192982254843771514565752041552987591893105801204077273510459449989223495443133766072853729641486893019259956242799757845421033890716239785302688504760531252191413725623958517857289871481136923656996089659960113869807801871350910025023362495551741083987697375330825136811486733349005037898744375337281369507353409725198322212134509965493000717523746447607314653492817197990316068590812784536051096051285273937581809867590293948563314489008371282919868849604373518549484025097182727661089081509228295741402229248350592531136134427501594045812263401127630065830183801827295377667418945134955852906427512454241510636147243130390431230219219853307109580763712253050224765207954349893392493128502434263053727386614597766191131734975804720411876701352078036343722690659065050008416408910541526229988488794730175177174487333527082880528316272676321290522325114979761591966017651537242793276380307292660802744826680779285049097077635165458859436044852769863161304614942007346717981731802294963107417626154519456201051104314911642254750759780984223250189692653552799917643733169165894937872269056313632556508497400151430768853672424247901565961436789977745791348809237714380069188925926649550126316474657174960168077448489620907870822495230016034324318460838769419090074280462502447666721211157272898732497129408152793760183812177995780416697677186002681522074575046225487332216436061365192613387479489297295248354838157084600180067075298537883134299718900136266684851211293242500133365708370924790923539079527373375221411075207292556488978936695048106836377764410063002697837254639140141261150530451599910411894312494439232043085211158270082839330035405030569337201819191353616287498568340315909256610039745585316002080507955168734610253665296835860694045554378612647049422447401279343943282391275114119254498394971540646793163387632617860456936993792154083711772128844623998666124685624987781651731511259944118969951216127513388563897102141380720396920958412299649974320367405240361027463185192229819743804487116288353110054701690771746048865710043421512578608984091007265014676341566304968508286854788044674588828628007544351605687635932037115162044934782337246313414508321419179784442351426373051765683266239751904199422876175343896747940884322357045822692306025088296268939929371060313034974424066016112121415760751190052338478188181947883177862707752112623890476198131990545891145858960429637056936722495583900074774473403105404602079109850539741699617572398884954477085974759847471095774384882776164193156543816567015799459669940531317567896912579307650334032647347486122757899575232241065341979366143063981456834123435598564629723180054077533604380654752127152706802944922247574151101570387676985709486897602701078885132945271158209132974877835229837712298756401599909262605135502065234246024585646136959503148937073468403177960064063568279108260606564724981321113945683058989394246073394586617903838258697014292953419610052018204331484434158850180430214882767071194889491252740592587801584799370015463951676335285153893720899538458126012879661674998225248339678159574306282871790624031267666418240217180164102223431033955705756589287163013746757443628684760000888011284552561831957384718538025007869133704757680921703090242728072552551359835523301200662842239169976980778890365308950578408481744053711852620198755538156586470054858136773503846882786050072384134122915596169764299522659726289889559332495786147837348521657842251593836619800877156239645953419951467541578082600052234366480513155025008217892979222532947990529162416854468566154621451540870327271499725582013663913882352469697302393020017429239908068018228238831023466292624211245445395506636157818517828113470060593171987146204314896363257046078800448762791268678768033653659689341602864057301086223598757923097112244220633601100593321886192431497340515726021273521592422924168500083691255190471833354265507027553892966922316497278582516958420259672294551162264446686819505034242109180612441296074517330654438428204680686070981475647777762892622615843724293811060117255060658488356755650712385290853721681289322134592387077710016162118234962646594702408945017367987583644651130707702393549330145088007470697477480172752466907493457228652087917547144571069875451026751709802216689387643968560027856020021209366796085406017693643342057481386012088149905230630880422800530604929695674195999460686231871534404917867234843247905859742560830512517492775425541345591484170012192587432673413384239482111793458127488421610778848846928331536499214382572283374984894894254098641437694155539948816738645767166459047132467588957309590887891612900108064073649001730606570720110003199158189616734159996837871190393988779804175211417383654473421702114630481934834130710634506812582338069921934219715246626553557769272037945148186153296886002095942738349567225705352897518375615493722642353216679579518022674907645020461497019307993250011749833148030005119101548677199387927324477023987306744173353666978157575294869868657268348377252863148650661724182781040587395689069904177363701647584974664876409481558350774175223641160709461969069313022282464407208844882569104729442928174787478974339106472650294113217603975061417717060348205619873564432576265444860857935887632065837232037744587255184758111275059316560843558793931827674609802663929118307887252265243955921602307626252741129141907657063298590533051807630018647093472377936137069797301715133082401292480886024772893464333485051379681698041352300543889837986837924769413371812601799565083669620144606615068990156230920131637459541526629996010911909542499829193382351966217762204740905313353672108445521248841615895650663376217318439028629542753005364330591260897276125921794912974043576192772537737111375879109373166052577673767337000148023183699356839485660049540913353794992739563438133052065300259942646803753931763012481707691384993878071964124810940323082261127001538820949326524477359958242977083517814744650782373933124303329934960764619175879062655079236762441032238093594276110306710022524246932827916449855339128780519765675563150534722923429210229004954300878785394313677258305802447171527347596988521859276302708809381106947174579493437635086568000069496566674617119721933799592603336926610421783060909359784933728702425820708762168328060395445236692793995435127258318037641829764715487045251043848011601932135899776814909954142901775073400282701679034536421381709905177954219868446581162316055840353648522764958409221533579753461592677479331151830746609712464462439628584482474546785986925410470880339286017691823948835754209814850686369926832048516125181335932280923952701327083009350421521561937066318969634247233821288554947908818679168826198321401812521658970630612367335106424498354932411883729684060564915384942332609036418833829276971884192993382922216789784152543782217776195818078810946450209459571695868850974225249221958829045432347325299419623795157703879850345298573860556264147122965112729189941607532431977067697301958162458657853002059140621984185927360758483255956335369651309962695892375886616169345355690847161696543073438378187627796997644835672971048654543208847960285582001619967939036142682544591346480572959346657342313080835275958421926508462062746799520599882794712018535758917653932927822704458219810976038050767997360000075962498891062993132436279733983651457778738289051055872790263896770344618965468058302129130248918062934207734223011564604366606229855540233364108981186667622401409823160010792919059549490300933722808157515938012824151780014196366096443705767086115276887326551600225696405195620432498639266848709657250853840415608666808359669356772621044279534178317304119975901889754307943989201356160738111410877612640909085944723990248252637841905808128998950264957534775639287895314526979002477527080798523489861205125058875293880703571096144875006763655521226366713547936189382828119834968371081476028666437510123325349570335914495980952990394056467331717832226571780912098496682509945252028992970164657440922091013003464389087261525437542300465193472915646326666780979674901242126230815609381759875116123602960554559338216855961265360362393372453640752996207545875057780496911034654134156132710076011319226045983772739614982645755645568978681156145523715688447682301984024494617023234809735974275677967573628330024287739409743759915609709454472894810620011765732594348528519589484523589290805182182111306684044047125358303386781271414645007092103758868957993526931052990883018292989642479675655152701034775489435370284505995005755869191366406285864745810962274803463958769417266810035776343510510710466913537733572411555156673855061889229248872075624387199111568940318788382135963800922064700583552725135582681035355844816386223707685945721312900647927982532151238487633755975613464592281778037826960196185502483408020718764586403907802682273520259446016174988275943760177560098438725463988891170493813396036420174770740282206590840864830346503329423006789808375432388663776863338244669665564554932958207371425583249075715364722554018195766255305421484683265214437908721152342249512834232218363909076295274143598104602318352747540792480278118149886747047451152814411421068009815836679728035399899575433878611029101869809624704306292895468676418737316131091295270162165162818299228911296983098720218095172561921355268843325513454692787005817403861951028153006111316782650396266824142488508641358083120427735314433629950554586539048380155882582300956991976786292302144006644726583299764039343776089069490206200362937153887754760617601248008712053781187047404761887818835203097067378227839757784207737954713473774055920970826103043598792083566711705421872596562377762313424935634053060527953191286601317892406565158151857263457278984790330978173180083974028141914650147391584460471369489541119152908671920555947399123140354055331024057586800042227534435475990624791356539306741122088781159987693203195419676888509855086620448591086259378792830154888624595970733579938871526110967950803395431624378669713608616913624850611152609117671118524627631577702146950244749210498723386217821528107341368810059662695178029570326025727788896168950656043976420069760601117232581282711767017301773911045862098422102918945502115453427360517437697207536651543115808237219297789137915256798656941566574535229748340588747225349335099020966566655321775711409290407200703977975627944728189767541581099937855634843158988480841011255743750749386084327375450290838838375331994840850320771133746076332241514620653098950948894353899490869894884853851867072706546138779137019539954716269822246456693436088904192343472889977495831034287614276796534636813291236340087066366766654013111743531606343148941675200853804311336655094367263865033130083251900950729669160749087180880193307734149746267567485138745464123893099459492958586990536704899805737073154151902614410909940075352942853219045423606261620836729858775029630797253353143420644391156575004729116400884221889236407887465138168523268336012130769164255102315565247689959748421189371564167652722583864553188503650266180614709564497501542323973885411646216915151848917868271971839055417018297648557579062464859721414399802171369707709515505776649030674741614394937528437537009122268727869239586113970931228818774776176077869680749438607426721575257672265081171797450242619023436198098131558760882051033266995242745157493836644598252373709268304730706691167402515857346728203932533740796310153633308246660660726545846529316328277338284813695715739347533818857206574606426900099845880584610373172396537286912935779964423801232806471673717321967330861210180797050935474818849573839201290103743732238127904674904947551807031013811301466377287197640918924148634543684247678003199645500320824694724611443600650648161401166854353113377745821499001530053745431019502159678991605526273203215190292669519806587817869920278713307889025824574904544403849356638140173900504627945954771147417441640639384935015069457725062335280799198652974301788377218382950344177780938666906142738924319849553175005980809885932971979971144362391693548060663619258283517180040250024562500703074634150870017373233527638767742093049662026813141054682015574400689935127069980783677531229146269759795873786003768918157789691806580439985987000731118888125803355853843516295524565388971207503180053099000047635887040248181232113007152831817900200976547538357793185028311239508876474777387802708890539728814577675548917862282050285299485769163246997738416273278840505216699492954760707209670533712139983869009343432022035390376498095230839117749215484758044906622240319435774194022437919785089465671676080402036270233365299411503348206849777223057383447381582365406003062145068935635271324460438955589712588714772643999088732471511838340382491847713336484404710160001141394243520117364559573168247196295716510546709736939665445387500303943901589006937882811615451692162507822968290947442409794527007297428654108949357546257127471937520558113475082323884877806307439838029729724735310490072616893406296306207866745629491535349532662891534194763565132966637111399362020945396062883956132027760494233771347033321873659547515034832859578150073892478294689253539937634742730365907709043845112074870123242530384026007397669642700708876388693966254369406300978953011812492612958480598009941453616782416753272344849869410773370479968748110451388215787203748681113470957199179086015981548419738672235590412830382824814169301918603992905607820030365987711039186527771285620268577390877682372322717879541815974019289981903872149487885418582564517401332149264310178697166680422670607627650704718619117728291972130692322903693245132284715309199184265613442696062207282262531011590758708269241267869148593747147671050866543121013669358744044354334818022474012598404412485970739925355088064123805880029858839857889883379317050755847654794725130491353891852971618763282323850691458377218534180282949805137082098517048886656689567853782794158168722256844763897456901003400153442631894330749874477315499248927991649199392732366745231479062364186237611416270985526828739721950157237143634808056531136081845360255021349000236084342352287943781940381282710612201489340325085990700257740314736328786377609904170150357562735271613220892769493588381710032624482191645395192999211501379428764483021606538714061003866942390805230390058990954244214091795327732501913274969295888001568642834949493751777258997995579172129584664200057103771170985016155880169620492052590765396191317749775537347971881862270999685114628828614707752930566778289615201649305730571573382336457635272524428499733453673984732794749592004724558210798808770936173848451843735059685579453067159233717455947156050899665552677158249745350847776905830327532229081855533700692805517819736654143440070817405597215094888987640423594863435021961607224918158533604397672894026352367952902417126431673615200897593540443825556219078915395899396249208547374969794259768385805298372267055576710620440173549364203274851105134340018529609858711791665050394359961559097808121740359324358350889268501687142971681991552828478754433875255258556441402870276198708528795519220632084131712751676756590328291426995102105306982445121048964018430183951162524825809608899279833182533213146217006372520348970139739815863894786495830142826907014873209444823532401990159156008470547582252105874573391992451545159880677566764987927136222638822370532866849363562412043333432543107854710770421694344835145808675063654598222025859669851570628104866071887924764302844090944175951851473651470833589330928250163122839722071839640496437412088169736116721932266780542827083554134745347511981389133826902548521727297742748058195770298712475018981111888726139232524719500799762400495914715790378618876875943053537551238793249639149874081661898265037309688005069937056029900613776989780137462843242746177464511912310460473244532266323473915685955426827184362463534210437640940209807398197683436017144670673571942035436548715548535302821780611868647828306959527915385222450787966326492882981479670168630029892871981776761067343246292374966383813187791515399944239113826087436256389551532698229473204215474154822305067248272793575685200549121880740057241148410779615930135443887788446780688548283634087626307636360606682058981830755487105248694871006653839999287354362600507673540343582948331487864509487618628946314154922357783227115455086942954007762331663902684969905618744996874619497907777691692154944090070902816696177505328766158273485483141337425104462076963796625522283077228474455214410213278566324152951689781998553828060011925772009069290721040994163874482835314293044239694427765481531093017307677818201010986551215231437753832222465725562396576431879216025947453307889923503548309479548034595749658124939013791447177465362068391190276930675093448477542499232827018960974821377630029399836314727045152068785927987564052838677348150793954344189226087885125309348312952442687737335265355894096011303427863301913764161845909634950885241513094900376790788435665844927716721286234149810510332681374071952609397678030552627315424099402734698526589654183693930243852667942198243400425978801042845058381813611223533268265772868206222829157280420623167391861701446875371571818714363181413499989363061806238211469759816811858001180096540337486577814919435364958267909092215603178449728984127630023991921069911860807819196768534213834922609058701545422722474391594441315373505479041593253088758799848051760400345565362978893282968507477249551993295074960902467252484199519839902367371295282026966424233633686324906432771229547593703861040207468723325862000780604169590840363133056856891577360733468204907712635031122435591690515478094746752468101708932409119848844721896362766769608637633025582692139795597731352924237009424670954920298337826545665140718849286031341517451486317241187642767046606922583353469201234831333915675965438123872099849250432624465309736886083571269496036039333037762154712085961525854634776483825231752052310929983091103349585107760967586170099701592766271290286175453859664712147752055642410027299787614131939476188970211785985179828212127878440417411954499239993655317357694883889462451144173628551256012565024768972703503593801180707816021111595036495849651132830104732930071549560952692547456732695520430035441779013795381946975713586199964758550397669463162299701363124637643985188759626174984080589890129736489509059365514272000482995030807774837780241599830613914695881720847946929125073857829931215019585847479266691439688828617968448336348721911430929102515446727779484513037634004532716264183696322447862858567146489164251183820412906650408805847703858268816502229327650332411514612974083611940989694089751338874774843552947942068257411989772690059907276104849846686359357685911363253482476672656380966482913632509135853142637224760352279383841837787817074475210690189678609944447779852081089151390585689927453022247714342009147556710526313951386858386702318762125236157210038070967202017988594271186158188303987576929219644228971437205049332361949443271400293918720120722666334165530025656587674392947413924936757499777002776380057434110146864608957842000317340865526233467241929268618859372211849999784157668429276028702081068262846718353996593347574329932685258264821942557182580331766067197596806721640170324109376832466228716440330142716105213345073598723120344388798055891369202947888589513880869380481102404891037505351467794564068623414153080376230200185610775248111714038993006503078816017513395120678104543205991730150012841367272583871555050593002959117516823627911650215400463788841384632237734294292365482286836726548238361722472578029065598143859440036753085934163640060483207874201282610560014916891321014481318501407104642291981167845465746196035497920089527292076481427940313797360207160102783011466081007684984256374685766306713858543580792430214920419888925532564381773783982925389470148198823704321634561450555720810714575353693398659800364109757371163782807576834041286296186496090832672700808696228003145983422636416921236615082255989024900840231900601512752084348716319447814884610813008741638153332026271320047721317242343535287823218078311673951661729859578398123840539483628107288499088593157702068140005534316992216691820460419542386928137211039388305594533504446911405056048065470511285427900143036822471618252834785545969882096567719005183476204974766656682218732832073734897691035069371828576476677665258675183159673964292243476498394358385274153861911626958769691652354573594112476130475771787788719518154329710288566013061933192887245976177242566470876644905740683117941303533520455135028766803770271901733134311225619610780704307330334003380943545192262796772218922090636757881858841162601695166356532079392732425363898025849152875643490383736143413274584525842716460899148547830956853054418968155878588455723875779860313641622575826199504848990303826719572398851242856567067887769793353901148031008474932135386607168368489090010752564234510141099039592665521946810252642169191992932565777180965209900290162736317664933763417156948860221559440783615311129930703166104061912785052174184204070868994937359602182638767033988929181434340485198239602859054591933724211038284066720358493619356490809399282306364545312987862026768043271314019261283950522285852597111386071544239902463562081974468980877556066414990429505933011962004150478713469726399436012048658406267973080834876846298026253728739599329807262157919816317117653224735437885691897021611235783274338835579425848224146605247416851249518170893015586886718949487416302588590685183789300559190869922993965915574469002013263755797341398276046145507608359908169323028526855571464466910063500929525093707142369372401238723710675852191695790242350613327148772376483633557310126675169804460600681339866436817579097527411823714888101742372584741586188813467964907436643032786042518888843518940837462697059575779900075650757609720386807872021941090821438120419709842789939724965782577835444170237786881747941410694558205672190059627148784670111453201436174437983214290512664165450823756911007949704414350589303980809586909948887159338994283891889420084443503007458323232739499867838341364456095910935382082759572570464022614013178967828024551798662985783588835688256396505470464466449259117639778443771585694678645863136669802009327579520505964729140579456556381340774957227848893477767180626204165084427987278713587343816849095104687982893977484497701968436024879003357732222591213667559959929382803764807722576163683983828136413671734521503792440141438262580389262532029390559900372916434981230820539446607598957122394432292486168871388773269248544220873244033467001185070691726281595743009876422092716018140585410884025820085830134467866366253356155110537980712271543126455937541158052900109925773087071219670704542808918081210035036413092580666986173934090752695787562455107716742852674926605030057027390596602431073621315601906991250745697914841795429190944654835362511523561848597256446649719663733570316215326528658070798193532563279582778800194146819872465947883722960750526214223844086296604641674265830296962719106786140089695595434222472875228754264808363989682715754937677171247414091547215740253208967466476236397081174676005887539048474687931303987565109912127606041178054364435820004103182525745620903357316939483344076868614504668061630872169387743341152132948799268764273009385255613030578426894383688803064365463301508169230943711381037583867408585387721151061775818630826422362325934825379377457984016734430683559108085209643364657361510588609234592064560809015037561594212906040151939326661109736891974453752426822080694475214092754120589596236527853953994548989359486395585007988300546885689880419775412528355172714546891507196014713684091687812365586891167695573239911679950854149048135798447397687821205934926422495789816645699261585529215396220541374990768154733132490147970184382715665820906654900601481218935772853225139004386899599308523869200041018572341033127867034878206672277283794648074163168417601806246265160374186615372338159551753012207455231965809737808890116135612582590210989605438572735246383905057480619410252980514443064254146868338034868408142153703870194884736864981291090725133158835150768654200399869601486365652392588474698441242596704779916105595726490829481081039612862055700784666455944012089746229388498108835386054768406970467362421259104409018403244201625371286335665440065973977401354438497017535026681217356614449695259284182540336664595122841296464297906043818037147781591616149209704711586650295697262355276537363892224965523492087738295369356594485870020554174808122283555425934876202334878883696666341557778798433324281180766154445603290149100319445124085882192880894551468739503871551953947404924290616729925550111365460570992930669424813798480763128299236905933699279752329853952089458957319353258249442404535846098988221862140108904177603952120520665753971769424515909121423386527509666320785815303418563938428258984712103817635708747697701906369359558379261701918640731582806492972399766211626697053619689955910913044175900385590907640463226812114123973550399997251808810270018694027778007344171215443466194327873515836772129389956350492813207345953221953478247247374560668935398074407266735844015071896078587320377931003634521734298090478909703369560027382352182373061687540142457932569289103142597518420882241738889472784999762863364635530028747914205134364596700360305217007458428018705528193066699050493732186736758995441432031942662596256226516629603727902170491614006847999439870478905885973018009399259621147328405090372866127855359840786083964184153121263138336499103482335988072069744447251923318322643381919341336618063440332846709261298595932425105070198675053413609246164837626779139693022313065189323847361383321019829883424394647782668332830176786955019190285996118189276461155166591836708556027164999960777335206948216821448457386537757849656879383921370424834807822889692854756145546341367252747131654858077080821482938633938582681650238468290318482152147328307988763500183728642413526589340026903857755660553536299658478328013739935047920857153978915337079852981946129022982427142168163075995348429161897643188248116615667955932953263161461683918187629287522717090070396676634758437147774651239027015400485661890578955644138094360679633644356162755060359517265312068988424037797740323929610734711455584737970603634039675489308620770247515515983685135684834898943007576885151326690105597361311739948309791597314221139023678270695232263856560628126366463425593756703693301862193632431629153063325797510256505407317773784094988505363238719734502337352747059269128801106692131369935303627741251230901245874591259769091150523754168285736582258308092210537254815773041383914874654583302408573703340134438787251683210277789837643297454968630998613915471161140354718896043264423331755958339374867876076148981636128087318005833454505804135568804852033528580641399166158350454133436642243579597994910656091647877163604637295259934663327737979601807410855797056017968780004878238923429143360655849620976752135617343975087326959993051394022796316213479539585238853655652508040070412217847902370521517473877417230028423892322116893655501661191303501827467137708578656546122623223524987847966179904804264372663459309410902696142284616372265867628776584897767449892599131416601977935096441367900432613352048836474349894736953158238394188931794597388439825863368861185550448110907917861529334561393372832199514815226264563853415239160665133040933175438026125783694263285122329394037313345654239962175117599694782728137320608140872530511971335324087811967141186982254998159271182617152384196628317335451561793404826037809602362228155910168716898846608581089402579691875431474997201931185310847110096982551036797128349167243646464025923866928167997741756748902518704336085846183638019241157857462260532162643022557524487924491325274132560713779440721465774558435305063704207997997547363993735876103788836760321329977831403420107766366016144034977927437316728958878208573835841976976550606809581965803137636088364992710871909285138293966626729111252800751679560981400309047758340662425956403880784880211669331749139201480699537477122060178157485668505094374343570396711266051962275504205721440450959562671177694943588026435544665409146470217235983989345726204002993501979148142646257663445871943406102443433456551880244323141731562840577699778803549623374772554012887334892848068640468035656656889455126537919905794857774127173329889003001963455130104701586377516544155741683909194962267958453485632777492732352572271228748272934655408179730655960127845608815697620823809507069313800086200055422262012161888558360837434869859016123595489756103068279504771910559627846493383200359202087368963699415888401962803012210742992350659403783371999456080069155999655444345663774966422107716351449728973020955162748230232919856009040860341301067326597138198072306158539692555937441860639049303662493686633377094139766287417827865017566124286770838241610987051053113549964224032906307806882687638182627503437262584022029625666030321352520969788672275974325448216620161238782825390358629314047285404961490404649735068661096141309655058895819677968506532812859539266252884175160409095786810521288051135172681942581271628236321475292358067187198241005408808904938601800944908579833378707241559480077293722900829854477484065141049305964721433807695560740387541296391632108340212298286430219996085457635671757440680556195829173723980100007180480297759061165295570052223311817887035231996779524884103725509731909497053797008465358843688889350133858390013671474921153862072770434150293272911342691252284318035682746390626433950166768387518788520733862660065222336742448690810259095287964675336831135974840587737030244040950017486031665406895642263197218688899116889154613784250803646625378030150329241613559428217287375098949555588172119335841908991397552897203520469345328079903795030633137751328565697696198793677361368624566655317499003683209652980606192124249805361557628041393570516958597901045720145800836881646252288468150536551750187866998264507362125365770639027239264222458905151127702037500523235223928567823487833800135793391969662009667766089321364825296491565312025583809524719512517194533345661281376363149547902196203805426299942209768670834982357170828505068017134220499550177227124495908002114007922509174243687342001781310412806202950521868427694344369830435419266942308276834738169250427744505403150833907746315990538650442330466502577144484021913285173734216788630035285109129805455161451873163404311437383193568738304901646335603276415029789744747670373443921680497419209914096098953467742675930880481595616378233436587182883863461269763787544538174978154083910321390247061575200158103977975202482423161117300404141869878266543740048514227860541004347844995256287957781290124415613109544417213807879175519676660775605584314145404088329827830861793061319212083663798050804012149895907469698003225937944720556975314615061991692786367328678232067312729538184941892191498582468459893050662093300472394545047190230387785231580078443445726186211521278861514619990277393448326722736688785471687996729622796750896442659852310110746581129503557606954670182969546419744253973375912512656529133354577701983333433093996321440725650832112046008240616477239284713666522565627756281593127204247640711241650576681503653575145960413632692760033466648994058475930320332165170261051001692994661998094751413678651048401568564037677745881806738417643380593254320639507414328962458261272827196648830768370585732209643908251485009811509987950228831448941947837055596054760275733496380412484377210224407464929244667146185869727534540845273579675908276963772549269541863735316526579751624741723916300465378306856053794415617828670248319884631663401548800003653670265422446785024479564901504364550918509180207223911018426395664965673581126018682708151801084959879192214827462439421592733667453296804074739601578777831885361276426511458460638635296829445991982231912251700458977527279217769205011548410643915988879084906067049450091358298142602425524693216127451107978619400840070729863048975240834100522562814711276734452191768324175339853254569691710029380934867230898909699969647137629474178898832017865579610072678530196137875362560578496825583278203635109315051380430131892471643557246388200070341117889118125193729672101712870095532899396189049672895228719489131619334452414298094164841486718329856658188072860591402799472223411115818443013856817601430799371937232562929874872264718134769052496578085940029595832524163390498603383493881698541462031973520125060735225784039383476433773043501834539015054880662123470761250446975963931038209484017032890685373120651920096062249881490757924022165348834586259347530603202968555006574009258501327308629069172064786037629871141485527937535810732573527769285519947339044688600520852016457885928894304795050925499375295182212766598439088178953493970247246465641703427251921366100868919064037877503444813032989941713912616907290151762858830560686328439591723420010095457205071172686213260059474662022919399490939341126281738038752467419831694633481609961393851998774897771761472867546878976142203848611719486973776932197916250079786859549215026552272588186571844468436279041744077937865891177726175803954281490219616985980657078908656821530290374668510636334998311674095882831888021401084450766547289922213950629387237585667335928412871310562455424111149719692042670692529861841661752476984625219975848263128022317496467067877601693640716355680676748938537070106176441118299316184507810537526699656924906996648249724519176993453767429859132089747268865703684410192944972198717034119848793307464655908176962508453367115278100754588349860063341337967892940323909002405181625007925815246133259796336030074848643055326167279581202143629938389579080163919867239811684713642645627953536808245155243334620941939986289958358054644558774509089364628650706771226329014696969159675235508396845279332832670279985599314654484947908578843689267087251118530994880383470695512680882718022003404982159233221089653969132902615842053069744406245048055951741652541682638988316142892068814125039037690571976603664149080931129929181077356193230817040160246922102512831446674228524137716267723422298111446190577666281846714312721775912481672192744138542845134346846962181099230351605516530852412319648872492234232691853953662524854046761553193701244670623765209567514872547290785308524430686205687780892828918277185419324734205117885492063638471880567973751223089008126580224832139193914283077897100471753591537155150901003257460793420648367041006652559578792134439957346338349879037916756336840036209988591900182094970955473602246179886760734829700472892235930691314060646973864978642296632454610760101572454534478172987421413163702031584748148793693088591980917584114917425942760150380053655780646986862301230745067889417239670778155307901400604238247876184782081736324972693566621952314716854392535443546795711563314243696934592169594060222648670959753603096851572764908220868385250081558773299144184455923754274559637678812429639817444084739548110610680454636487583974640047736766610435395224507649533774640213851067001192148966389387169780381979995821495945617096836423685525985130221323833764141866247540899879557467565251462040893571594123778925272881939934342415387111774666882315232194850613268633982343328579186299151801748712445675669282274411254590626102774439921010904541673890665016834813034483376223440431674561117745482943605336408954415551488642700717785080805644087689906645706166719728749371103084704601179328363761922386656304268582418285740166995501776349144682286223198081545464980683805254449749793484434907223547228318299204490437676131493112131411928425927526241513277510101810660686095130585329349988439433822667190409515809373314411091781709888483852844493030484177597039829937147165668187265581775493411304810289479182252439765871523154460992391661030935254661015748561352814827893654177461396874296506066646082691470993058153949769630242580209492502156907546032313222021110246207839303450651387439002152834001966602802972270625464490092009091508747150557611805386779885093100227655319466169306142711454818522245900625283243285767683137822881062616002490498030945546692479862289378072696337878713596087902082463255898410598868657986371006311182185442123185124224085148136211996165820746282839788008273205487963178541300486425414677487183924468375972771479673395317324971602365315669967582961325713995043753301300327273486422670447533657113741149463092052961250464290438692169935844928093069857113936141119903761447123511557451203350356665213519825433593172543007215256511936878747650649579906176991996757279334845029479508677948866879568893516819360436411739140625380721247722719278405131532777482292372619006386570165293803927173028081366339330329590854872073850918807235821812881315474913999133599653345560212581217830819653515852147087900387135592778600183569151995158854278442460612690647696786148910854167887356622811362514994247322546977766142489044698881208744859460361221637690760754907346834099936475048085466242805275218766366881338069937411538635153925396537416861590272568299062802850506033084195505296752069876747230264828843180921107113820102609947577785380169598685403700305929845392366544234499981975380964593774278934813521855357468941129666906846609114344372487393890019678504743221426757990756712186827457363956386585353158506493469351469140915087473612989484852554200646737264566717621767349983131792852721485477542841102057900128146964353219041496826766088491792757787034769905393103684136980972993976850797139318727259264025317392721762284043885793935844969691574603055172449715847169594235244855121911164360206834492000405680783651535119374609948561275282692218191806271066971157595288699307957761798747326907573138568960002370810711914771338076643608632436849163361574145447618363305814838333843910465197252120108422806973519382486271497151561872125991606567786173436846401820877512305005949759076447910642010950780057696699670240417961273924425883777025906055712643049948915748864384461908112656157526772100683557484356394948233382551111424175969892776434851832197822550538900190997271337256047679129570175944935907731101324777834518967547868159656422307393781105286396268558811566410902667017303384936136614823780182206693869367188932248188866578561216701365491821264299385654469987647159417086470072675179412461053003414236634156254889638705019939727956110713869113133127470495782083336400911052171828777629911789691037518527406824991871666095306927184168961978118664028938183318830854267559225418465836026029670490420053896582775257679536547431053594030990144705905064685318184192250703650552951750037966266270606873278535145432107268273146638427784371114939553041566044792967317222916378259212302864966429787287439847617709880198240910533111070953437442831167310625202237043012943347829093722276065514972747374460517261542059234163028921072361488557693165685270193675727836821365334305474635628863208932503671696783841833900587388176751029405069985721748353455889205523006510090943283072710614963274406985684349974666760543896368916664109876582345903698891675495241357484082461191293703699863084031240365495157900102442406128419237247779064084524530899709636703912965111144396088975394827821899962061935688237988190344316112996309604184049314465309885512160966067565045008235927011016569499549080517904477305107488621011215830388683798067538805371985476873351000621401591081753458106450580288142994336156230222976062999369166851159348027993570659147493487086259673014406758881196856101357377663578238407512855939115200884233637664746468393447706250094260734362970932226545155289782549940479554143183787526123848506270039418789591619267422039214782059458404330832090944249471666835059257421690052433236732773584034250350274433908245746914163822113470518954648342373439927367136744924954025688384863926485472023376504124417910184957610928220250130493776510246367598346506581203914598736805941385460161170806685269290858467409361446267385218177911002049223867068012420512945165845883702783434605869601970077088198262393453670421717117543777528378003752459350294822808159228623164633334853819315555147865275168102486186957440799068536543251912959354679710069316057110259585654932381029013009379238405433692978063647147380904303459839882684192981561090737200633112994892465886331553679333041636908152019201477610436851997764831385246257500210946071873115511611667943070253168521728271517353361069357422217904641890963108864507559197023917331833052226163255422612819159888326717854821083493777664035530409367887102755446435033206562457215430995270286000224063335710953837658368958250168836880764289807650874808187661447282066840090033243630626603512248263060794963083375804545618897367854590607899581573937041674285562062361426487907364823257739121551627322654245663024686656329055281318595436978523844963555551181864794696119733919723892866314870835472183967707574025602830188131929595254383296689662740312497748305102987661909959768908132884070567776099482696580023300494341950153842300177679975721854714151805137856741424998325951242432264387208825999296458147603596350860635660591171122138404761716995246261649253083562627320664834070492995935319814573952041890212109560419754597477238717517601908258612748030769039848449608064258394537867548441740137895981865490340619411508842157277892490901283401405658691349844770145554014042385183358570899116652422435037127373400834845542484645510438133482669601138315807159769972290209548760532330424770105475959044927862382697418911569311970774760616164330550179277259823183964764987970433255239382822186244839062568521626176098284341277597422147858831972318981646876012215164083537257023711232740205229629094572239843839216057733069312663625904072766863196151467273421536033981164645177778375357200011078536151017869052326238675004052976764973750468859334949153410564196040815364385838516207266636040297473781856308112826974162795569686376174877924539324392975613094516045655659977447710021808429363730431303508535514204241922975674147583285812931110893654475720867143948793103415415620823417497220405348129617790985080167994511041199107717370930226324890445483748637424380171297488463045553043731063028153555425676580560981378718357339809229503089639901275257893052775437772354327248591036165925184959170107712912351684851134621601188730172128139628323888145294851014721053079046779068337609370546428909552228315696608925008295909501968629320608382480089004676891343211335856206648554587039682751233286955034799554042635059149475266941865646011411064433288402523699318814042171710367677119611035286170580531613270010076926673666585820436664762958276872764563141422187416589493158149521953867726460650845500517090977472384825785119058101805629324640721741462443999210773772577002242146764889970215638133578216943583726487449643995233881294428121771065810273785502732809924389154294611755583994398897637851677815171180414127721613478624544314049618301703328761213701417201487228109843632766563966375713320951590356047667047151773707524277466549191718823906954392569750751081389474651445368230932647396259323758324043028118086441327243627740166977299551511496039681542958281663993789348833483160410528962887793558405908815935291915035236718664863936351932851456701812491712310050968109613773942270132357105443744458569622365192001691232122255550957368966712181139304406358282463438823329282124023942573937333134314987383494091773807113109183374330520870691758181711743787693170992878373976098862434663643224721419472439062131512348242868149971301709213289933537831114331688921123485653512195891274085971121495084920322028953742640716951707635412358854264214864529260705722045395058081425589272346204600604682582033711655294043149156506952763841980963483352976688145958561987541967717168983167318945127597207879830313304357322927526432798816433285348199375410914302043065095538966955454954330407381228287684160737390126600357835962623843391490710770453228767157421647549468063928985307301002983164761204149852927447727890069339916765688147041126030444233171166822723535455539911677371997781284762544764754672153459549673125551745832343318195789958827991500811275798022962832943389694038763354754687410909411911498181853193982957667095702484487848056242226377007353658984569957085391892906563181212705163681529634358831331249791744820578400300542190043842073890350884418815059939874829188358039088893619953689931599342915088158593854703329512285164385105697863176610610326126545426110964010669701339151474988403094155922307588828668919639734126182189146529086788890433465550462901464150650210936901764291828342226644389291389902540995734873958132504775260636641523573031337543437473885012976605792343014296956207502315236485867956326650029433431552593766910550209766441646288232704916892925922310386052855931886280223292391376714680621286700654023671448650013485114006897716018299333853035802743381835767728865028918119792501937711817625793087720344911354168380716447234506036895780434895188432227388093585161626609603239070639433551760846059069447702713409503489369996779120009024257267639775622999444174329286017032898201951465207741562389651734858900936344467318629215606790078707851800878911298691179823402787964733673825262952677437753834421763240478627439139957028322066324297523179601099788098942839172386268437597241699077975191826745775108041531060876308523294549697467376949681694518332764692465995875145997033756294402938340897636374801777276158059659641191794590288956419556630558351098296816670027957560539875628996980166440962245054498429653833018351816440290415063683603806515436702623647292436729656595588325710741101665235049891367515948000142653338562152208839087720612846224523380819960970136713709720015024924924217025581895380252360073360459685666266325651591848599552521208504765568070035580302034246285753249931996871435279793678082140203636959036086687433354592606528354830185678308976518249311677901528472582331139670070259664375241739717603511252733488466142298362402137913500533817865970825938764729417297014911989289044447739042032998241224242688026593647200804561676630529883190166061786153545338145292812338298991138864733091037321780487285702388110968622875924620095728085350747845522316370543119454921521233845967275305473874934408156484576269971816248108971851785402596917216737030015703410701360320128736324897596508264330085803159846601183840212315339230796424674783019191512317474639694921349694677488078205350410836486005437836241950945928653849728865486813244938015324169381842553146790514627826551566834733100019912892885133885404705293267935666685484760232159871954375785166037728036936980472728301901789666543521828643566949305455443617631481663132172101508025064609840256676059284111058153452254416663902345968770240725191209914241116825617889771357949768142574660348037696247045316851904672856442449830229858316853196830804919405389899845499881133984487624547369544677574321285558258353223005930737047452470892780226056589366676490475003186695843336143281282080613931242941018917206830296895291664276218396104935451605828480258067453867049293756188456492866241902275982029529909710955452685055457292924375597222865504112239445960606691896857798308193392072031147149293180453139774908149532515783185491582309833208605141934229967729376212104840612189178375786269534347692357911666462112217413862305303198461964859044156581821749689051961571561921552917164228202247846719308760410516817732105761203122876940267300149376857700222220770304575712851028535742408422487748557882036630479919222446856631741202639119450981508969743999633351345004231017903500893462187969612596248338290949138555556144189929534465864883307900492679544917433897599446698069992323308688650081151175892544973487858985930281223201486608333941168001386737973468059123753954999100554065078090894840702933122022539856381004900115097213417311882341428453178048531971297479097808017280342504364345670114917037319564687984450631147967975270923083708081399020002857557419675938442753082721729831039947310754930400615746148405688150470509306291648180906530908164333617310402915370965486430889829047382240624246879811760262257286615189126367071039872267759492077415128129073949306491892073453756302931449615125844886909345862794596112530613812951878620456804342651596653636322206847336986888374877434334820736969265303273154001636491020574680942438272124224769560137800486184824301631956727082494492974980961414972345600097109452789560068012254366217806173046182415669896472350887728128887657163023690419014686515039904822849039167794114637862693268985057782931721854769517934508767438380520344714562791083119058650882872176787956917952688919754283028966953465323008872195265346400413452559986031330645735855561954698112578232398216989722274843083025109251508555663502270018742316176543811554989197145110021817563152767728397493011310866978811231344340609254281445816518215400978597254012746528501329281806531651809999460310255062380058895968348348502402061544799361975009379864708342701993783642184712609299942425482856016921263125049575625650636037257524494251149126818090071917258119726069023074631733111524569045496049007941192934739517117420769523460951655698456849801152861187647797128959013823524078438594461402703798799621262495061498163636833603344910549858939488221767179383601219822061179268756585274656693672984322290988926512843276569234359518810312564921091884994302036539420073860560039856475424310918692404645400846121860630586898525604183691016789907623927138842272449803293686773603568613136366006665890909677709895387420814893327861746092247033950233714788845438724665593428000879814437546375647135177432920210702122889572034291599085101813146792431228679935333368741311834710409587040570108288447092446696055463425050712031974388804098756866648003858739829409807515431177718533378774579147710684114670829733868637805951970047959982698697399926778944228461970187398097406183241585277587639378848633842366033786204357002046284085667209726768148979783745361371719014706121676105884689802263946699041018854636174669175591719731649055186338877421344041065165725410143656642472923446963917451629075221209324789189561859715289085136378439529994787290705125916184301103057845053677045741897908551533591867748452126715935276698870509022338024588188871345544148171176239518617917384416846485166895545128509361225504486707088271107048833125442690607437638471168077307099776910390253483250482938833346623220696564689859324878228500329160202923598142119658159927444113972395709469710386842338005567015643183336233411508192935818529284477590541347555536267498116271426941117143327041338391593651389539188017249634926175572643178589025997692441247826146157935610230739392367596439388264420257266757731901325138553679689821997551269868317908422160775974843227028061429190949162860149031267944547543240258007226633739155985183019702110566362288519093185360713886621568763862658586559756007810557911583687336570125594547868484797190767112793032212084247370487292189264291306667862832100489375196477942716897955269551381028954400342378252216822599202685396384770654548394453143513551312818387853884265108284052034850547016925221917584831003709813573623059530994944270208967577259629153997980159378934407598387198673155809713014322608208669428043793590663078940758335053640124650999633314982516508123252286786143038086975134353941301636047226322742270835807812510831378636046502977419373736374735616169961002024149013568371277351219017194479216636295124465616656012460038004407783139159669557959286880845891060951840580000765087784162704310801983379099351958297843155025120574378437732578856236795985864387730682909718519605026973444078431360233231385959521553861043960282833686702093753160012374456085271882762281496824622145835875278098149155198453842171013700993366421073237608845284627376290831283314561634413707971057240392243186717842736747319968297309143579344081342751578113154093170933284164615792640554629192438360120422824548335926968391736607363384547438579052415513688075499113892404647152446739214382792849424204325842924604380289428747190102848704070575465757398603948561470496465922973767049045489267726415969466782853874093463408469819279126609724476431566024747540092804196837110888857600864240299360147060585617428283325683789323673794980596862610061510286300938402825691675087267196656522235321629851919602371744367636758502495526653722034352873367865603104197525974474367762042847032959590728876511623974773889987747422435477893808103106565030450041545886160236794787696099858936225069335169764277363066321391372475186865114708826510323914658248787152773582778071813569348526836749659154204559076800900111056644571484294663102163422330063618129822308836325535217953360158086528829677905592815554726083364203674313872096243334685181010823619757357594455735217928386012035348956076582269656692771750126026724218437763149747664615917528326102015505199244093478049135546979339034529175385620392629998841783227566709527955424310807282314235257758573585604305604739411937834739017773106784962082400295906435489879248269393126577252618639717684213238571201762378056974594992058925335526561799917250272369209700480802591887185762472141788248322551295005030326884581555956435697712248775685928842894311698986680397837650464098267124795911658010812253482495035475503584582576509232849669623909301815276298134179162417075468701124344275808991489152470125340901241422176862908860754935812313186254134010909076240612541603808453387766820845188074320968438560801970618452033593761711752368495042471182955513078193709495119328615033400855042943391107003230464151430552083974070691451998045188684581980106761894525304187193404170919494151872889838297211712575258602316848234077668180607110802559173530629970386036848256562705382420580657358865000542230388366991354672856493492332622464009816626295801690965059945471958620570812988475125632991302494692259576736855182437285608275582610810647647937612883605519741862440171168983004691369293335337213313344669097204943456373441773200725203369324436166431365950362062031112995730927118588292070644384872238380296258213287122121867241412491636761900152295756903169645679550732620403825609499893210428549053828745300924409359210779897561531612728255591993747796710897751860556011549883724372249278723336583809390515046640801518751152708145801903852081029198016665714132712542602814746879013302829347370110373836040076588915514121461251780807545790228012673678519502932464687240912963229279458038592376647356568032314087134011850823407057635701354143858000193803101805178356407742217189010962090953816604591191590334793751961677959917841533967142581854921097830573463462578007774454174160499630939920105454638983447198864847790828567100927635761047396402895269347727684129967073970611211063014965925510556762701272237409637303013304143425503215740884809783888241634801708208246792792572656769994348730964609781657774367880029717520846762239900335782836679287958679153515077742117982513279859303838888022207174966452167351908316581329887852788151312917663419615308208635296648188807224836093724629887673521287538686875058791527374508891884982123255726996501031811923525003321432357158628977220600892766745590805611912809016764679887318979460621640047398745422402930416409393907703297178288157003010042351834181325023051095500149592837822719090847748230221040546133994305084168887324464672350686524087340287573295209933321130491508327357942846222924359899681090170167120464534739699739046877298462773148646085466909777948603351172059770888982255504964506330490553126954208025958756617643813931896491327232445504050011974320280990523472497391827043183685718741630819338269526103419199784889663390067120554830840230359417185589644069305909707165078929055949891809030203673877346751938806290669983372101974821667313195975003428047683783185925542803845914738648142293756767347680979756177158140606643386065564990515481379111914199952535091375536844837163589401243645401629682863935582115353517935959328055174531301414472374808523848391159612495915762783791326572730449961762627712257929742035800667141232350726128640230749048067436820369573736687004668911895178341802570024151486948239586314477987215160005097022887374138414550460609973520422055147667973412165894158722657163380634282015459459718576042853313844125135028792149615486631396090802150494982727814332474155113318740917609013434699243763715164176168576069256395116104473810182095760814416446899253678264127884193947797458559784737237687065637752987681581905419330599031701303359106273771651105516295661589592890083119562387353567963779218605939897971365180034182171949324584201129162350261767533950262425897226950460379324604868101915765425879573487883533900197921113143436422106457600981542429940765635592098783849011443864201466015990247889235197155803573740082381127837735321786684677274252402796857655458465456012146580498883746972374367871732286379682733344251918261498892255403783820138007593450202477073612933340941220773587398459812101931707561615796455003741896011083591508764827269915202617976162322308349159533314012202953966370689327951553397662199962340705966190364751624972290955632001396814515044036609707850634645385988546675749899549597939896704815892660958575581882790671535593045687686173923628515414640701218439769894825451854994384421681164047012686933795101707211841046373829600471944144245774670501830352590571359408020885847942396119244033875408377767404809527456072570832820094099247669145068078000629570603380315374584366626006026283733582309818339362909269832309967947845935895940899868910779887191519800850896854791185075801383932155489788477569429094992523981766981111570844457882804133012954017568095434478815564236975099580543318064821386568055922330736364951342728799422814752935654660988489147665705949531683308048873939561915797958609810893352219388186017217149208941171925250451025208369807153504586416018092686884363865227206410198883413232045351539213356239787137590955521790758576262683511870500014882175041496339127197664749117556951205254379263775339294209050090313818643381019332125061889818863826665166731746583318632107682699520782805562840963013303193699443994006108656235986823202344538766850983810847966889237084052455004645946582495440161818770175946783618663434448784441881174154318792785383235668681832192853364840431896615022865625461701835757509809108956013100712662510069404160925567203800899804814586564119275681868137472403886104049838717293084927923343337431043505304165399338834391215151619215275259579753421777966595775569989959859142720679601616790262125309137876603012124861120641586124906664128304667258676911558993457834438178597353774261715985683111438582430242488361975063392850269250876621762807485184563382430285141927221271529325457205948184363006791586397311345765257713695910290497386248323601713192763984894261668870005243206706965842034814959883135803798627235189222685919149101642342773547811987330817695118017939561814476753963687375144163868212334631019553330089097531568408061150251051097040556052412302091432175135722106542059472560447481012307358815870877094539207444667841440248643314314800699450470523227418307579703096429712539920116097876292338847777602054401325449397006257826224529409654290663209859803960775446922895985612094884668489820353170861493744238205214998129227730410849291564108664287860284539177293497323199765780529394725395827513251105687225425415719100689359284119944496252584798092981549413383042908580972473371123703450354226920086096867948348832779291233333891472981595579959325720473533055056554338118340371166597330847725557692309498243082743970098170812933045567321838140583615302219860858382034722139698815650911757303099442877642265585323802737342338005330743325742307600401242591864504509400702993658757897276438060989309813946029712289327938004019495425969009455916768069167660064658876775569094114754816709081016729556282010595119616516767019854165099350452910154903925732880778403554572673820389549410265161190550489676723493141119277613923055638969960807363388226208216865080725459166759904736980058001600896862844570436790275484691681532285140206646291036727946046028728521976524782109465503152396158292856363255253545332642526567313431168401621828082472355616773305245580292959888071036278892948420614883126310244839435685166221883255543092905880167981070949326591252628424635611310609812421230002540556923159500879977226460503821324243840764635469309108404588545161792991082448882157896576065405245490675161881891790010676272365415647405644024404360569962703772137244447199608263389817117638958961040722302751110138873950819010892147324740005065518150284411400352809516638760223688260412631627700211211910295942625290330445695879196509282038650966670242986168031874079535238773685113299890578427267555754464161624662162720981768792165498664541655049469469180673042951116789222305626513626926624471234923197079092084658391207316633379773785508675955117766841931213048476157611566233624416260661058710297869505654735082604262105047391552213231314333129002549810198972862519310093313799413671326991689819674197790518287509109062364331595633051309070352369511021847214728483321169178259783911567127989740082291338372629745965122011358344426095012822646270089617562978914041668019400622552104064187866213018469325641439565151678438944192902613787607548751599761043564876737256166742921284358579989956291194462836352602987884648659221978156754669396470560121141586092291289471322579377470484636763559068501663212521884811658369857604799267460512146971947625772615905902124975981862479935698112809572277518714196805170697991404394711872196418576351355610981105769896682856824141079811360182619862306247377211529518642881535875813518551904394228989480445162045536494879806650295555544517695334667100751877715115016663106292212615620894094252557664262123808511238467570161484874902050380413661300186681650154974043759414473592465902556115675375003322382257112640792106439905477633920922361500564416559595657552204626554991141571168239091525936767870419984007139921737257578382637565835210819971778062279673518936757164570175231044203474226526419998119829148297048854120146629461053262863161742508537160585627925698584116827873391295024904986190443117822336860735248759165466687058964017427265365450930342227225155404279034012975491961940769221959720989456391379484954816696105997550981837659455932004276666352122939958525504189052714941878237531604087066812006568545933096684301682004096674730416748565229392974745262461060881309783006718153819719674582589992910713369682823340701324223826456186181419688649303072794053696702042818991429309808059971457965595588755836284913395360726081450103276761643542164223077346698464542402484306127312232349595706338786255760530198861055847906882269364507269963633331931579558916556782032920365393681153828542636474954289529687885583959954594995358251498974650638384702207972116991476748610213433052173977472187828165995970153892276056527550816441311688959276990102068223258678011972467144452361733166495479292284136989419339446818175780620563182546288616926530851512358208142168865571261477872217507134984777016528605117848929883883846633999158832371206896224782784851971953762631561351218684514182746284672722131889351273116033085902994883624270312790523974068909400721944391481639099573540414233664953533369180613495139582389047249921858549225691806843907004118849691129870466526250200112087405122800521530735259059299550321709495006882952944203004616205515188174866360474132400391932696792633317886055372575807808237687626789820965659890832318629873176523828903997157015782174161322686216086240655061973068436495320995132807420346225991127883417198070810199700300600468969634016841560493639224904702414884507956140032874436277804308028205356275016535368497233759494906046348614123585805576365723305410698296162631180473210277882887645382585869059617367584532401990285694295790518412848802307956952476102538186235817795482686990488263954170216950449936512619728698342688506989732750813684075249864716506796814520765617581575381554251398487107770358428468598681319626870234993555589175825672006916882427461188866307204746397690340019937101586034019999704081087878488257532310350487232275779829562574236227236838896606814527826621840592513351617468785877431571721379602685958967165619587596961980114623614225199602134902209665024453798664205770371900735736633112524871973314761874343354661267987722262597441549874947167447555979354782946582794993594598943130461677802977671963214794840902971664920054391416619872333317734512535404757559959659409640253343271445638375930935773069378597485712934890847088064968923849327967318573590385620859564675750475195182873864783826350521328403555500300184090117647170942618454376743371682866576936095427799658518733098107013287584316739014837983889922656573215754731099279783482752728786583492146461602152930594968567577167140995553642591603688540691677458211419224075687531384678085788150558009545842047478228775892077246435554778770164638263333409670045995851891254628474219192479316443907841369337149060777851915564428823962977655034228184440742244966275219558404711293284934335954786676609788171250357089291555017114984340479552805576822246710658575104894814491240524540356853255660488019282182981035622965415602070284702428602165092376158944745042697471291820652772527783867863865846775444654102846024293901120088361685449999516053285181446469536198539888914155803789884041049998280184215387365924532107793435213603806913053939833854635692797220339181164796318664566226699384276987320004590848952124523385719288122029710107232917831345520217017338146557445654532763238149135408382083535315615025325700102490325017569230795716564479234782835785895735599824988977315604603130981829520343959770152959086233735303535056790052558237702351149946980453289785259572813066088387089228595697308493420014212990071821601824761908956816055326041133276759434304829930167986619978825498406082534516077984345680580119919613455147546504319419986705896411840051330902234456459258339001627010927118619852306792648665415848169000874138413299081768858494730402422143492311508453543137342074155751442730583388530576363742895096785993413170317757873577524441042502976435278246840794012364257931576635529079308149420286360583826203022320105555895049793326516182871475742814295130518718214840325844865119060729294087225017523227580828805614128661570573947762292403150548059120045596753122381385458046625803450001926494627823871710280534679252923989555419944978851741282265903352531684925557823325051252422346052077325790846750085193670275001026922665246657446370913218922248592432638029098997395451111030963839981457099139191898089720607946551176210038337816073566025783191424609986537186426455143019462072785171968602776336736512373267885649263501352428576549212605674998628082897632801584091792197417143515143977870059729857468997059549991849518348918950851304492357564552665104243104406422213257500048539747251460996210777205807018661033649006369351842284603681130797648815559398248796409204902824504861339101883784620191276615456857188672241100039499802115527124824177273942636976064037447384400125852164732955071922164485332024387797975365272408912478071972680929341539770590564696616652096173553008349018092679109294322713239679804152596625431120403042734385223599525407735348362832583645880026844008752036706639159634797944986891373065629712461106171136648226350730830854098376436890873665096542990742504194005166377596999435245789812128242098947897025039343929613100851349793903569301933475359105163198317935185027293728672747211649360885137307097402559309581070756856687706242457137061915129217815231272897591111586461897357231617237289190511525401617134212880366773418354261442295112243247741768627721181985772933182937308807204091380173855149009375839057487807876099588913309846606762846329672604191220438344567350011827317878735025820896332610319771361024967296571691010405625777256677393494058765318201362588019921238146712114622813357987639002943855211839888045154918001958560651631559737992360880225843112158395378246770699030434978397725424303735262584514748422101600230834704707011106267773186828427581605561467625169326993576911913612204498882916619077062786971621625647759750140645211033664512350644420470457782295165826414288226058366720607752511113225190844334563847841796164406511032574643361038278854134701463513076192428804365799031458057594192101994345267677514567681752594353422995674903920358344457303663453711873103206804159632415530635538827369415466916519696651512504314226784647305067950723597436022446962640494559287043270148555083717646516721162974940436616764669948660806024233720252467882395222674050618821302135901929366444741883914903063638210748713820330934033902277618438134313307416769594226644318548630011890605628399743452308897405206416836997680993441586756860124111598231482815249475480493207019219251678986880103059088572106493319273609402948352066632049890172500984511028034725908853088320029673461880429176641502386279253033765545111395850037016469090735290811330611163302883533988773648653938903052357856400224478527824317066955806995348446694703796521938230491176713638178538701480321871432739557807577703049720000730593470274530726744140436253854294394380644265798273573080160220302016736122456672849752003822514923656547198956828231592225133245808050518341044209071351072699188480025838965769191070111422007690411993362008978658065791294335916490361488571625686956243301179807192238094521071534883522029434499976631285487775924581384196794891133640365636681845287071730901811313602126544774051078851559972940524357830423191254703188791008616646383916222119055946915356892411060251318430165499659846816111094245725166236164471181150928335280519324282629639658235523898766086173331458983319746675306038718459166145617241121807670076831295042951165504802207162441846205631602171044513014478932429854323599034512003976997494328806222924671150211388343490686509861407609626048921346323691777932315076509538501995904316027993806484025755445716142797400712555938117492650290975210720891407810991780589126632536221833845796956350673667188150332482738880889682043716548090466064710665878151622211195617658712528718496787932684245758208523192925699886445520435184490411788229947923450367601222929744982214060269858378511442927674226219765629395052610689660364954134642861361222155186216910821068940299063101855258552799109800961423502898739182123984913730285546710920015497365227842951684811835444416204588488921417030005121776208394091052162299363424462125196801667327560724031249492747843011954476899602330030429453054426283748432939408561525154653839517508296527614380210153693260304890587275830378279021900991606602855472778764935241765962704682721161533113804934463424862708570819333564231202405860867639054071217241764844083830775538850232490479244925772544735337162581486637457332430832036030210724752013086748703782537655649467020455212994253391067982164626975829443939158223179028780756305042191935594032837364916089534326517335516512499548677068173881402036474028929383672156430600642012721321688751807870004020893828228110923896792538178654370916845705412498829478624936535937847340692329537986440486241385324302697512393758758473464069640954704032948546508269883642972086412683164490934348707682389488487496533765385565431516301675307932226429097458408742580376000464377780631055496692313913484074164083009736519147145714221617045131766108177274623009680374241304330703933644777229687099884543431670206613727076956159192548406277295460875439187058309556191821902023748882588035602509728636044883032939141452982323837879401582624812476293889845757452155948657645744444626133566199681252638732914413682617776731745759124303246705762063914165153340625183916886975339661527215721054965651595017744306545250886799812601437940315296227501700521797389284335485831076968940242405895689796867424278452226829250121266106223030630660734604340501062910657569899021346946876398819382445664933852524900503332032654867509002402426459797920299520086982471032014025543076454581874146755204936628000689867478897178141284483319238622704450807811421225147511852095154578782534741126971190567526831619871581975162015996826066523853201521835107655262928726604470910419377829526339398186578849616054052590152868330747665647299235978260264634884778741203145432363138318274290291861506688060512657428027497045987610751834764382957338372149657542744817725706633854016716483518365747678228206239719204569839422239339143647729159946492603335539465345067615309008842867170839948725203840444079335145970811633179674516806816110067072298339313032286026778814733462071531815881010650880897967352561543877547220206258691707139791448094499234138932052730505833276582591845211893604913160367997552764908317785932971744716751229854989413300059426858555619571372986148135925873090487993161002456053777610382356073341122113002016946685213227545766406141954353642806948331470050640566975184858357199870325271474523167393595928229122482908223294069794313231047491565944534062007254852264721570381038571021563820688165926596006644612694618938924186433189963697139364148404539008868459797530741558083558403182848525016385218649797979264481814906906610684816416332971846850104302784374229239059706828236010561218032007653224538455305181053197419008585029232857799712018549819781388004933434704619211386426650975940277009348899699401615149501108924139610030088908167606281075451341304153386486059729147417367790012785977032447675615061226747782039201325915083949569907931479307033936311487061409230900721996307742852553209962991809421966760705325745155738316152666146740756522031999984140564446823328570687431092191063546255614239689930270883806391420780247840699842700157893732616299203422623786697367095623507976507049210358303480945530888855242961845434057354139286908695936641801543558700872859728048670329223287340967937974436024492382885704160666106625261933802551478143401775326495645238791625169794673587563262159065787839118157258753419153223466940424591100401365134899875254818596876855708536600964562589651558429753141167241081215945828979804940620929228285188365303499974434730927911351700710411127092249660896086942190596200844924496516409397400097737631799519470841898832017415675977600818966125829745518187160052078157096333366641590918792354689630928122215536362427066170721607060692666951027293347240859844615728053431385834971115535839346274127555179428613423106735771006852609742576155186224617718240049531940609122180999034812540504504572508373503694519154730539325920956445011046659957616918225450291355500959844914960843133534511830070225537521758297915097881028863885694811049336224128228074284235771028058709393155561333724580745312717958627142539081331163257068893676845416670099694721793445038262442821073496808397744295831052108100370306099357925496937374878716948132275967704747781874971651023168811140772788763995526421471505555788609169454394030191404567220964158363307604088593968903943294582559510037623527689191825516956360472330981483665624421795866391515056402302466364776522870663155537176132563903708854831661130623712194866720250272386271943926224264940513878694090417212000866730195429863287296969302450132204865167088642950364275921096520405511913671083871540980730384092120081473913740397055961561733404754512259460211346674381981564277286117791854773807666053095202936517550535557023350896774101103704484565860293981061942506848834323105926681797602333339896905644390079355013615912049482292130812514057398528469078053189325938448505351695473146877166828946719037092316745233447234720061831163585462245209956534338744520242321404309345640075684100469233323029101114319268302690623624719543500086524444557811885547404879259912646287519628140523084220053267074650592043394795949205537092915278161358520151605429103074913604133397063282246859018008461282378600096017402278819181263053651753516568654768189435088872259429104035292411223365191230707490391197099276604038397889549761225356775694004217755841548822243837625961613565098022580969657495599188924947805161870636237310588645746213728736756234180469931660090136406432004351301450789362446625143214099359283804418813803342101002625082979355101597691324069753139294014022319391937725812387586589586556600777795391742368163559023087338844738801320748452408608660525740807987554455604515151370325909009209188790509629891022827486256689784304554178760295809989225255577682787710825434515199761360046786771877751795193779797792891348714142917184030329949282520256480323437310427311123014407588712993815603214400560967929788870983292227253170587312539349764013695269152436498323592240392362124843125378211663772064261597874474148467269817024335132027523471995400945555382942474906707328328132440308927706645522752423219316024248515077215861746537844176042206421449068288723415896044929094455503673659103228786480857153806976171531416136201434228970450104077121502352302602243793843741113708422880318054745268896765244578635492927982608311658878564175606216528636055762602488406879756894433218773501117128467525160680304625459504867918177897658614223606663685018084331698367434844674960498675832353992418326779509111935979813273619333666807607877539573829426386743887666861180607157615932137855654412397612461082420312203013532751541067346565660541393462210292627791828754113828128251948094219586745368072131639904907503259071214326488285500030914693367014818648910242457310733865279437512268745804080739276776019222894127032659629142924994106979433913456579624483972281355047409480191052741649899604861452159421269010287630810794404898909956706308423302488696201901761961373076191091555564916264535148631630789514557281022334007325332539483050799870205583509779737375352497696849560836256975978969051581678634780274659810788459723576957504996851446910678479224145573661193413202648401739158410381659497669258264249146019634851074862388558410977978780729150998602277099656255326529040428061261778214976378413772396500867727205949482370009855717309939624047179354826557255050216856378936761159297294453627521044414522882973993342240432154105178569347355974020037292408618580234195439282471918550129004655158099318977403438823360235736447755951756875826729635074904791878802111158752104792383987124031354618919645433081249054052755027929241938185761953369095920421137249338239048214375796588032118310668059089088295893534358712643302888732600134901596423516021686651904419584008649287804648901363815107300410879167446447280391697307948603428192060660949469082945512797282899977079529442531631698692368528115122524191409564587451508760730609926402193881081724173463473481990776338740441320597989129885070932800482025372515487978907721808254290084107828859001638094252864064858375827798633752286026253016462836582518084627557447665364685279443526405197914244283675431478398821046956660351476798789467205676808628295052228540043467801818294715196620917686189077015855280158216954444918056538625827742009746592014398987176333093777375983786929117051539915222913914297756892154562907166354227757211074104258911471510418705034650727796145965861366536886532788818003955977982084825639041628132128950128743497836848028237516033913512261100633460933259021112447354802056231746735537863455208110644056946465631209589777205452418020952721891631057205122549068140063467028080746657609625934964775438965041893743094609355589320083978248857639727877912601182526923165694855737573809057424152785650669427028377042679635329718007161444052289552854081971330235443087067281832162859059648089202899607344864994954225492834721526548800684868844795705192326130250138984739821188991667951896108005705862241465450099004312841226275169017025501494987665071203766096450451922466551019477191713401040320249562375633416412750624369772510368849130185094348280493282156789247756631222754231257176576525177557603817375879913786509044565406721841851058780369768745575882765839071389748573737830324784287870919441255990459515989163105504854645506166155648884768682974960914174919335435941154703674858397267551221230405611779509227807645507106555412738328912766160235841713362845157419503137437773973184424956369683466415392164223926136626009015384196023254707123502486935631362811616069356185225184494691105050574996810456920475690084487085135314863848797411284940398146440302099047197966456841980099345768205720258147883189160517165418661644278967988856775650052023671743821057504405884397512779190751305888377807522486281033366517328893916527425977200659498823953638615644060980732373603889437142885037995666102336070385809566481836773755861128646005326117605521945463761902832651620979760209269108787063306819851095169743992569316760495536152271138319607038445816128554236743600461963224854119804355026691661250774582585994352026034931917022639197188455613824964748624811790601293709274410505642162149767409401870837855620861543972269710352625119575856093686475379857701172036011515946165881397597765398845142263846079394025455427269486390180791108929695448100278241514445076193966356367363614695597851681936368884701947882066470833634732998446563392741392384137075547344040059621231306126002439305013830090103220579442549172202591575029881295747123238485536168196870536918303011932802061216336422674787606231950157337244192231021766461274560836013946073752906804478539536424806715204122103183221876941947870038252883884678446190261010006666728242876830623033451116734217919431015119192866413567176587322061134984386080154404449530756683779019072707036168844931785015270820525628907027015029279981669960408245017361839801212109101252574727026574485811145937810150261605216670043064600608575003827307580340566101049905387552192587631519698979371340615004655782536727805592882103047649679392946405789866113634603604130717689323796623770480118496143684928297134348130916008666336335424650055676662496317704303797524540861869764545087009821676978978509609612220344294762141390209525869082989487052142107694793159006199833750753829831901155716555691332831182294557252322128904156587856778672511761796678730283589336297822398278692461225448225385567040735040477596897578413192393628999617442072177827291561415149373417466081293553588076324996558809816328816828158907046800182737613908917291361085172641180434787318937902695064300593146029175976663869091374800428025652553027895884209756232648484671961271554821460987567976558286866435583288772037004442412595074841147208662210676879238138309536129947172227704528683737399412201410652828491551404085095485548707888695438065503316574756908848151821870471248493172843743949557319361299189273640985998427930571339282498863474863299809562452917366450799002513002983177687967506449404710104798671520599525160745556977629254949765839736867463403404739162520310240204720086780999555556386396102195421461493908729231921493000002194597751787837577683575515070421771614571503033048034223285602297493641869370588952297626048716270399561205471354059722998935623085512027512558949752255311971799138281517016731561290016973662403617711225148606223519888358242916315716527670371151798579729816080297673732313298455968666651760932628565460366408958024719557376921254571747250803459984497961072554538270493374669680742575331590559625511505206969552562295408452353916828824667472417798642680696028079944878164534328704769974869905047617498831243713896130202151677567541032715069948375571106766298860924895467052115494712159374728797476702815119298397982115454516967673784479797352320235115251945737877963018477161808947999995888758081287973805272995188616531786404400626582853165773792351981775380286843882861735979029500134614155475804022178770459163644897916075416713683428017561245688678164182660366932820326593637678736824387752736931417426019039891481406030430531266590394257994496653702859030633158808079941808802476758593887335567690803047771676392073364879193427939303022876038548590620079307639616070444060622327554122407598271852286575339584344526178830454901283118166170498289554920273346572793364274087486298637295838909944187096603186470398445282606439747297904374029597621652915738264083022759606317103787540522899981105378597937284787340863978201528449008136349412406331343568711306329155201398521684053043502176888543895761337643505573605099621305157999927563919265236323486117613442832868520708200038576072640592476378280910326437863873258924562477215835881816525710948221951033879990004754791997141315788416528240070098501951657512346810706125955566448013742514534908032153644416851299080244752079693809000708374238685587909690613947221640715056848504355965183622076185581452890614803280892693970975800920507852036688604356655697476374187966464096113813469239512733292735412880698117757194395393893093683309775883620364801088136441044201332850336766737509684275730262738783532269911329919181664884153782432800125028018584257906959056434261012183889689530344528006697642001793928733042172767891628836249689599032447037639769419660657911697426326523199018873489159664787053709517152748816224203571989788395357224965173691898925369769224581689495569229355102172027863007943943808729205256935432881814954971384726494623752572256745240882135294584435831018974436328295659230462024384561994207069508981662225454595696980876699720221653441347103534679549150787933648448521145529173578407423515738933242721629604991400885723054930456472250067179863450242750358763727803373551335145729050767054179895124611143124850412178493571969468430443246742838541812723437292945927660142628060600563557920030380679035839564916948814291219406716749283878927291187933910932172663637450536949954208338929666827671438962023941409682772850097592010030878622614132905176448267426853228637396751191204711583875480935241537376599556886175069896435853535653235019766173234042054696469914429251918877189396978604192666687170524092918421787385627446344300548191827571599149348552025455738819094922959279103243753881316047566586896110146784082444034003261000275829586562344517562097007159744315067271381673808206413236678138863395482043029845414718633516845191096742444670563835750935675366497767132649908291699185870034468815439339616746826338224707122548506358219923123420445865857251903317305886784145103246112894139093071538353536241225239797160087779256662792939842967018170997328908608013756739254698865273998693071508754349570710968908997991393583749710845300769271267185361294232648782492632567289488148199953127919945370311034211294247573354334705753431566251691824234157581310556360675680427155883801638699156026551578696060436170914541542096507560359508926106442205825608679046040115256371164680783187277266838957281443345366011503327589951594193497029938466608717807080102069712036087882038665170983377814410673987974937224873949486301598425261087042534569064705694385704912286480549717472515225404009973700947210334850548270148280126646880823944292758103075348710551395436524486643764637671576861604704529428615732278723144472689539137723540209678018693255145887992934101140025217079487414977982231668110910323593320625623977742418687938427304003054437241391085816519894006384558919889885107931531446031178783346409339289487408481894828640377991077692739176987948096995240212070637479118610756272958385565583616984836268249977932510507809128277734272202929281568125955148259968460813184867007531887940905094353071460356755352044388758276503422539531431191425341647553015475765338039351900245229393287973819257105127739252836604466216783059967325038136182570042868275031296435616136479492578816408470686148428886401039861891592617529850352017959561313875153485266869730280138934250174923912317868978900331102627125829148428765483863032188955613971891806270493907028341706046513022801758145970175404315987743269843045247418973161017769206831485636680569134002785228590300802299825874198293725466087697455117370216477199697766873350355252941650225525309719162749404804483275835140845532311657880319831974294192084865542196582646644073962080016575631940791794124038685988240461890636514178956592169499478674066761933028770628212139822257904733390684521769373663865812593451788306569224133495913889152008834881578709127591974507497149721113168524762757900382257598750954375816272455894072580320117904917969176568572663510268555562246866087237837493690690226662889012169815479701924307508350871885433573683589704309858023412045728054945589065852619685669818383863462527357708594138793640149449060512173041408905220652776327212032974010654930277588579165786906428982385772012650777690178329429217792622719299909897833262164741289204210132694334628558626201465413200979046309165908202637049342667498695519563641254199590699028753956326005794265439051706352315487310183205413886301591358418748243468430465405208011575984330572137440582034213780325012779901237117490630990299124932231707988786963805595827701655851451117048427438986970752327666323176311142001081628355381580706924002828217741584248211586093874376394433335839728150495554787474776810888236021215284064668925869181855730786899583333956654168240231900309660798768301529394671684056992420403916008439127282131243761205229526664755711274379951896518250475763562325563290219959705643468209279799729807384926093559105591497548203384374980126253225394169301161935263400583997766281651172211161278477412190464427751396277855026948510036727534880393035352965388643984872516752220572206968558336642348617116810240032456318758209808142137907043316161539454478881412707032946197565165535157669937105471690930900751859153171470915026664152673226004129569202426750593606911088498232531617388470941653463077677551582699067245087678721006270437383269579393066815598571000807756674224981441731862352677721853234253272889770034704696272759421072252188712437545709883412110007141035073884424140850726476846969527731583187491226848243296881158032062576725107999823737438723641204913887182579759423102540985426891115450672357901217578452399380061803611691568057024218396217165012767594581790637776620045621711713852571674240177323589939699403320881937954123792816797739168026664222258597403796501788477874595881479004278177636951368728181198460059571683646585495416428051694810271818571959180582313170569905462200014201432956360516585399576383820799870853777968344955439694825927039459171589115904307142367198255868609653040499158743163244163666906996976002685220958521067430532231676688915553656475510859813782119527888541551929837505016258544373350609376419452705669949916625980216685548290446715517558119426305595214280323100163015109350843227729744680057281185794251000891752817376383515682932095693599029109963698835564487415800536401931554097145960477133322340926586924743996603970625896407873702072705987186596850385327368174319237075000465774973922600676095850975144553921556623628623944876270670030135862399405518209550227764907243920979207200902755660710987537093919612874160886308910396251019153498680209774544387490723161447066349877642833238587700517811987305834687695129873896629463694396859416795452497232633950435889586462434312450016500440696231368966194260585011138648745570603921229919211431773290874432203223550691589249263651990776271838976994761535439493668155332282552027820735168082290351469192999844764355481155209035173157015028727967077947842657197205783931311883564776654605082458032162978211453996948276230553274759915282110125908672554296696163130699233392742332858923054535827569960592801009472784385828484276112665153535133445301519872012363866977139188631463310702623234916053377579251051511789619899905792240645012324082405918182394064668773235577027954096082942167250091036842157555888141509443666812837820854441289226222256793907783111033484816888656401757919473120907421611574610716331348656724633282797918458712818488208707700421155609762997563731938891474818848206153715482960657687081091147938808658186095065684989819269058158514499941430120155079574624683516136323390563270035608377805630666335106630881098041951230617468097838466574801899641052747763457898333710464726159725088794072124203933221235330514161573520854782584573410313689888414562329383458514118055453121506318692953476969827621904573231451558632914003616938481185156659003515520613004570637920146215873702605951325038099324468715254273556451710577876312815037588703273477964674898874149229828752251624402315253491409257362546636948678889960532602824812941258888019821450197329331924112828687612925594204538571439808403567617543860014035459434975027777495091691785087817691481589960084674589131377121887613458338865013092058793532828217502323629883395379373925212594282195271079634970921788653501181759267156710605475631418287561195780821846555447313208785555401704008049688865466255950409657350161606754904355815862395167547793878663521213094216225556855366427976398398253454507252992501037010963992741746709020648125066266013819838695922459631084668601292892747780308213272473071130891308283452454369178834382066240296488977537591379796233408936012124306994458049999387263943701109590687996931702608597723896413843596373991860427090185844062058234460757532868081780946758367435946559378982624487660129923410416445319994881552113380469128626514657015608882934712787442096541039016210147547495722784746536358310570401690578684756617552628179649774195549449636807046052515245231199297916458149217431065985939458948083754162857525925994865444498457326257432339392440360051479835794140050432238614235359102093227918394425040040786717328883427435609876470631784812734434544988209203784779960191764849446302432774773688920900757757098269759109822605479814340979397944198514362276674521923868575640016030449938930735205412603218873557765281473483242496453416718560656484638973783806947308585240671686329385510554536128129669142078231710318706640214332693136468690663366501941631805601170590305928825653012776577813215639602506089193402687560275602305384798866494977838787790451306920482174323432003415444904344648193269451180321458077133418617962083429221775834001086799856614713943552031818555844372045449776505374834831968431790682410515789280407414026367084175743725923979312196846791008091703578788679787639036286989769385256180048445771441543756904178506733272304500678126783061077410007028342810061228565237071195603748913759141056122503581902341934599146544795017652383774535297923416298674289930792411402051561874256062907883614522435360410755470850842789599453887734056785713288485682321099204487129643705061317545213127066497668281495981953769751777785215765502641806148203053365697983098611992574666890766510411673132689298216781605192015081289744641680444646435607388810505492883880826716190272243538254017269582168240198393534124518696195344741427286391676932212625599352868694973878103446659267439890361987135910525253008270529876108568268387475305454628055822575878935053036317155765391069120992485879939963385535739010440215091286882991884711193399104181494483315917069293777911270152822322392880679531980121819932762896921558610108514059890251986441772334386391988002828903845979932695005047477765152668781290656166985069550335684414822261571514117029918318339484052699589143168610420879541089442010406768419005820742959863200959264666348246130370353370627461519175408881722717498668164512325526320409797863872359071962223605524158807607579060224499678023076495319071435944186241496400472476560724391339388878277844135531180946268362055717909170153392645479601406642932197839136804511071651585086073046772549795725847033459437662228890901415066434534604359698741962305381010308747354079518587761441744075419584858779247072114242753036542249877700715187911415838330310601567625103515862481358779806900315307038795701392216490744328045364010651918687154442151526465886370942769295679227413411727389784883944448289990213493079081152456941769682174199533752069898502966532156509265231354692053347547278142052466386000045499979081936919185341851504223600686910228554028146515059478869918620596765504744120446914684165849759153518749757088881486759415561837307437757644631838803309260799700422420286810858894759079334623754899406535317526706693269828917241018444108982743461275973980702546043733300916764681960929301476174200509113330604198205078640258239129893178340802587160042488483462000136986503073084039655312133753810752149351574776262351614180158738220346181587938612049229354721739792925298434394253373200751169244849998338923171931974370423936615774219978144413209739238882617703617789763921094808430826575103343692884166170108372800854311392431081133595692612770960348762031991522097516929366692679560916691484685470521844929772091837538659835915065213647819450717608773515417911194620226120354791660249649720245699051931295081175085490463697345070066033871638663511565177657911221699195521039711905181807501691104264579438794463398727093101325382668052513436023966138350835627067076281635110655062328025596600846349609028614785529187932219910976513529368371625047255846155708971837678337762135639272675573817007786011573972511712522534570421093517416878363140480782672657419680001484901576131441134774299327089251948513212543525922980413696369885568281507162842568414806509523325645759081547250043775754487418919740718521351068386743009435726785179902040458256970925397904858405239007705390369815137188647907687380879370979436360532365122273807644779698929346327439375524169697102183198069161238579679514275544825410803597536828990849232538760427399352249741721216222020518840604353229074256943409830241531033442816557343841253221027623078203214109573869229257112132867171946404541260790129608014882041718979068783139152837701571656090492694922066336620149274126766748019755988758958445331375214847138895962434654439688776053258031069773349027394297103219879223107793055607308605364233336121306773939102674329816228474372528024924002619557317222902113032846483690610336324980918919670321393150514035580009361808408469376329823282862914184522706564294755363589791841584446103187545330795820309341282245596018879554487212328049728222384368085686029717993876737837354195822668685394660141942124407061220571069025054697774275017775930522821117968711432499275607629873409632140414753692671193002372863028254246381690726766129413914742975066807828626679331369949651891109046158692113075985090372362694034938541548029199457249552342662909702488676910050962033540089204433022701039478708458290134178480595396345605962247242235547067332106107797192207980397770077494626116444263215678996920320788158554558798931609344094087501372268536701507817735216423179461510265728672625693945527588294695039968900472050857495907090664318977932290406878996576152180956300857018372254977036012020933822178198002388836570135989632587361688771481839640746595707778828748687672843395465976772527281286885420882066086393257695124676212338378525308630305192575019469210600808359167210472094221389716589957660702895722501944989164835057740683469616683807097656185866169507930212802503927599322811729660781189235176550658663148694533122822225859183310122805041733881402559435207519459257455662182667861880677967885103399952514117736685463664622090949176616994641547433033231982009479322125586073201724870365394460680920744091684325273709357507821254316820740346350875834978363740365981567310994279654744090744824119410823394936024631584784332884977388816974029612965003250438557521666890610417790631269856253868950230183153280182970513153395220201924666161417161705442643487669879996617383608306190787752045063695552488208310271682570037523705861637219798526110611869034642297290756484061498070548530080330660772962575673558507318493130627097237802314515768865382513038949467752771685147003920477334799389620165624476603503417064917739217484707636990739389758799865450397776323212928554007447225162002239919200875726324759882596776937894937305709469167508320083121979374294273250214823090861248573991223340720731627828609433409789860075617824671136376596195512371847450263590582573607548556058738187153012797413659735167146116817493906995394515701273188425844402092934044236256463331829450343011322390979867820662372719434031820695581755044095456786835371363571519163528549694520932622930410998360485694776442565474278821950222159315842314782076192054443521478358305286772237191793977124613877778364243071098894551780112843176457449328496943978845577753665447270176897888235605973043713106588943724035442051222518558951201793750094109820491945861549940145350735975198540411096437940968607868968808682062452904458650712893749033808996988921449591099555279772254642337672266033295912976708763152276293293195768824268519719587989015725899552117864717766530651740596682222194171572624800989641454494111337930307426413964879384651030297495849721461163997917417569833734108875890671966310907618813993412772322987546572821567097130009243401194340529241576718741219582109911252189744502986114917792488243876539034385132546912868273714397705329145608268728464062789265211857820802795331329468597043471666573597553285399987948371797655411005502277223825877406600766891840713093116822093905627644933747676771200870399686025568263122564932254428174707338025245233206892123408145618585483864808658238129838856108575161197550486504837573203908086683575388212326122968824426619902882335773707307903289556594219532325386903365190984909438077729717612996375398895636798223830550877417224934731722316821531415204530863711944528052745239697380913999961443325749438711240075286324777735936744220951656628641272640623874533992737519756882898204653953139164264956791552671538576382884831224870116113603882907020904812242251713695886218062331189525194263944848971470039106841511005733101826921743458331265506590227044139418390640697600837942368717923407899489963087867568666437465237934819045657304134417034113292411726553916111098376518141619239918422726457223178328022986260007968796636520725807819141810218240504085491806317380479338217253391829933983404645117219064148187147691533567168023353410550501798582349089297078048319193108901092672862719356184794001046272755520803820943620572763680293479313924282965952077625920195454459492576182329027911435516213050785566347228944440317006958157074163061109133441516227650453599892065922558961323782625507320127804454443118470996062999953511066775306492975956620794140732681391022721222957847721296549859857980086363912345915250525069629682906987822093805761036434619357229419461335732535437612754510511926364696787587753878875096386356476960700223732701705967363885508433601829702054001233844346435238629945624690945639868732602485486899413727037843328369532942863412342847488897276169643235544241381569770731320875259150442245740025994023987238433608974207721159690154151555287193508183661185831632708953752916804547126830931440472877290182957618029907009993436236762674738524173909744365919559926490093209835572486202938313505857115100120915859253720121441776831657638660472773381516980973770483151573901800629822743715417360356693304007680004280848320155679300100953719285343729998634337757246512132315139814079742231894921737719277806580609720491256681002955889115936091520413373312590223521183944844749376752704243065714437706565438416830634987984186744200454907985729610451318625990589959470281366718068585811234833069152583221888807654979678576947296440962907369140927805126613563054177814231628846798791747774627721855736014203283280785965075009864463879641827512236925167017732930795428121464912974353666564118637622699073412621687832030783614839759369548644221727320931020059439548071708990546291171615129011861373403489745330980599662036486540716663129302533810680827157673619847942391563599022002786633821230084850835078122421979069759044601884802941652172034988913900815902391717907457720037970869470335689296886371481942594318822160048895239264858141747528077187174600395446345987503404146544046569934790528838363707489606683697077200104732944822178840431238805268106466606534007011746010084551684277869234434514126335752056980414253594067798603737691286077555415353997423979643259240422774638793188424166564180152364550451353701423358755532802926731566869880208317976851326919140974967192049133336354765740147669327565554713392214745894324547761913004853433897271116436382750942792677920214588831281943421806706659099528834146400851447268017884456660888351055916309471304839859804303083192864397803786241995969052963810412486245845577649522685625473055875532447360711576585437869551179754480019336851363507860167857394954014380438669062312036506717591928593838818197823236537249900814493835747109363257886544462187862124852081492523130614982514798033227818346563847757506011688676763331252517806973647973301276425506097274784306790838740746086038887298860148154749181037044769176957705671696010916032308163720316148244163842130218506970919397884751783884438771011051914336535400026227980811146587618554940509970386728400623382828860285171190916401913002114996053273922183321658461083319391575942050479790042714442843682073572953762762242289129075247246271726133986399188901281201375873588843389602149949028732607081914827014808292878129494231786940002138995527951715531847730534869909263474185797915874537676597856015053134218790832548991294435497314194457238273447799769842398686549138272472229135267133083471821075392012026643198676737611807208836238129186971101041578610297388247524848291985208551371278930751953508669643942759451578676696925324976106588490869582892781114488574639936733049783342901624036855658001469139922794693693776297597603646193354501918738658129474162308329218934807671655047045222875619793112853180281467265919685972681755831064714068028044505456035992081179997225324508984914661261314311919755303198344599488373609872953533371886373284622314082890589536270591701911572397024670702175044640680451432412561450599197514779363595370457758799012045117280525351525419131083531360286314493518511521605275640528535823590627765943968820476549358840242406004887056799720058179450131552548980418709969112631029520813445661348910258692427176072109928749209367881451173290758065475954105339970139844350334337946135818743194928273328609496228636524010672932267786158429213207138050504362754910546107269086259770937481900914705838878166082693310137396015673596757892252589307420180758217587754733931824588749793904338139995302406004699229999657847242996985680711593339192971986721062972167950134806166259210586987255921792815853969687566238559754982073370259177336031067224233093551710489220992107920655539991379821808802946263930772142113442565151224610855433444561700315960378885009546257622560488153914937462795536805523075745779761415317056231923799746426255345895120306472719332358242051361300138731425344693790183330938900064540600344829585487587224647975569353775064725616969327197751312084964849900354867577841183493531166334214301243933974051970749583755211257087130061611886046275281715271361351663432554368129874148272703146230022770123509477282497890669473203842795255327127094992014254609558987787840644460373522762459116227072901789107701034015027984758310432371831856334148157434878307889770576625988355699121647166046779609256857085450843872256548228857645181436437101406847031279638562969515250493944852067537117691851437501713156509914837949752269998260315013556241775332883078120687016287268137610726277902201319264256550497787221270047293223733681707694664873477756273025302701965765986985990910636512218526046337051029622203208804200044030009628342598967176086271404633786728692127001625725341314518664491886434484642871436042383370707511720360309490085263928786303423254003606745861025630045678454120153230731075101017621074344892081042301769971414136027508964828571707107259575755992502258581786469356866705525228224025569080606659619999022248992232151830596081959977729793862411496720365234011465217742877479930374494777461852756809381552976672789806402319635796987396820055600465938735674984287051938402116054837372077810591598624253542267386898391975199943961366072548898763961855207313667196760078717556491606398783890718302430184051571992402113011155358161556805928033127579973854793157932930452132941529876965085828753063709302059552905808138956865919517065332881951168171059625475492089163746613104534315833252678695281755121108650630996969413892185138734682478849064216097891085792023268264928609955587875794501391997105887363910545643653917451999248792379282243812966897207575901274063509892266202524484050189790007792758789629993480924402946239767065111547488377827797572145564843501200430634457139772953724026542427714421779033885719496367646765550332605086803833451065019877046688800688558255479134178957532366550190263608023586318265318227052785244879099846379182154806131437199617653876866838291140433531036109472771092880421771633045584439952567773297641839979443709831534303874428941110969796192155567835765338537009712148221782100082808904969486607962248632814829735551405368035470525779102633016065868916734204123306990153360690891472004333298924102114720448629761594102361971867247194835085193192643423572319828020595300281498891694993455859931431649462240047470503404545515582955500819130144013556994318936620527622521871221692297569008341711700122874742209727686957513648028842300321257894807484733030652927184567605778921445454410462030182099377370451644644241168850713401586771761362630780782692886717602554480430472930950700657005876082064437981938139573124646241488631982594407210228193206176512331667086324923282216472696211355763911780687488733803180420205756101824962755528095570291445865891737848140390282954762935422161599013912493478237162860307701781469079808289215323972785038278025374082732877113730764749912272466481958308440677138514426139569174952132176109582208820204584827267101894449954137163729329251599238411678178652742477044051228822526988884855509293521460156327740162522495303433894593172233060432072214373750636241661405487776827836219887187872053522863685427753832018662366721962730620154033414427538346727247173647623803197598959516025071580781007786747603134500570303215382274156812083321692265463032800683712054986412007660993156654389110570982064760747766253996980216314481987288164314948974825510253028259384773371931023234064472335050325425374695886285174931892422872577696781850451875917084174072875172682253003463710913456399987294617643153818958757252544985329454867407257005803586472792006392644010281875606879130142140538590424872580710613495875420327135094515490984147960626962958783989307492320447653218258509714977880427853247687589689769105951523385542434984553571433619726283809639881792172413932127508580302239502120323586284600354252337812400751538014667961361399729680835968167276782742448680706931591478109378823262796982997653217871118682226075152144041341425608239286573859267484706886504811820756204538950937379398506770217803615778354025941839438748213229230292300160533350135076563271190148263736459135091192534616547756314276164685318104268629649688894480623447030143751349419680862729953646979729713918628654134199383494368848969941294854781522850317704408956895518458650633853555693223043807996888095876167901484872107984643883167945404518544631788544001947484122507427889680456444479261264796444877796675418921285971971661137576399472296956542690745589218208826882506148194030872004090847666416482847343051979532545387993827336184827582789318588224878856564109518372258949083528262433391718462362043338088246754528915560240263114782274725049805095192500272851786169732208862908391013071762761587346342055657719684816660703881409569697564823269635623025904946254854959112010802098031329410433030752306851493672018931501102981997421406631759895356963565662767447820300578658055865223655610188378115880987842953615672711524422094067693560693165729004232757366379062975493095806372319316037639239991683542620473949937598590022470772423979782542342116193397710889947720089594266348635018369324828477014948642289481679047560213990803489622899734345577972522755082167778541302440904308373584116374793637444730247192422453530410607879468136628113189662545000515560595588438450306701628747524391081605687115449458064357894730203457307980307467123073062994517445907275422002978697614565272355695121840111027195460450279552010400612063468523442803516205570716497204320534879775159179882353847826828424003269248658596926198945033430024387902533580655643027234176536904162227981095838086343981098980093587707642219585102752632803714080538952604666036916861189994969169934214379517805897433474476285090950291266474118978425933519792676054500271164376229714490184179730814842667209866651725823864574796582161464239008246959525796481740034351923437492858542451214792838247681215791971035000668116410570424270389501087567451095515967182923101826944286929598204597617567298021804225477039125498318997295178323480876938938523297434123051381554447018735268270950162701473091295541132380029855838650794137292400347867952758341454076907347450647602178991748018692507850737149700510097834933963424657165903937417946559195208937642656583436135945223938911394451215430774528613543660175815056058619669524353965727467553739219856727837556716533349352215930588349294439490323003402490246704156939638491789374968672652666594510299599162755787428282300542117202009288874323657711617703253525480477402297828007693298315659451773904167403393861486857639115656789259512423680882407670768606745596187595319618239566450199571412014211619100057986689599555342943475442956144509864540506636871777529686969325376701526891854005480249712288105845918646285856942981369351140335919761697224012383105218989555461005747892356016097432724389692584942403885526295030179715806871650537309638715264343602883333911211472826978399721162525240409953087297513663556701472118456520019178054519822104680008231647935574085371749418701284012848988557962333648851982247033579373458635318678396233602704743522638159930490140993061515589005191286102012684286719827474255135645264062523318432243321552688328563613446536580098924367017679459341363545821969274259139180078245035653595599067529593228908309716046796210241873651808381372878017749012846263867871733033232330195979419252381005001208413350874455646049452637779670866801999484780752589367873277554536757154651013883371807075617744890132476729543215453940194293736988993484688735911088153127867734076778019292021144562272887074312048004771050444237444892397104827146155115032860054631840617362713106929572115548580924713299754578622931363903870870160807073923216767105007691989264194770397627550977929366651661644811512001866595756934874972123225985413362955229682749047913047381182966918199437599042989430522610491365739101271006102718682802021823321284014069556162546312530261319676810830906423975261372722880817879160854642395379381589674229780501978746255517371678717553829095378715654750984043059591061272049005287645440577638524157906691894655993340485003976291051571299492993367064520771957715067202976968745866245205748952741397112768911845865679767896524638631282814121313598656192574958662631797137150396830155943816574030867572943963317640763958824348606584325112315216128532188821276572764744371980934856510471169894644469072179881703035877285267471764469333397033815584953332530944218096683295811817318123620456089123671191649006198367173656152025561992038716819185848835675597920613393277845617787076135722307406464487972229095694591697125841949381451210024488378238309292447340444165853551989342026739793187757560609167605084180202281793038612066092352007342925440913081357027428156174774345355437528110732416808708554854385637697780470139487563827424816399560019911353161838363100919922401583031955363056805587186612690370665286898041729583565058565902531025936889457214889442208230844908322185357844094419527871282624231091064030050060789934401905056544766330539090401855892438543775022893655375214736454552370882662390069660187128699525932972434178612961900105986489325590643925622162938415570032865669878583265057308803577842817230317732864011198287568329093541672963108581433511655441289810689139785974347197680019656171360549111461623136318584403948711190433551871409246305027318332629852958095249123577145821117619746074089552523693917740652702649365299377836200102937595250825338836761199698805795688444264228020268431685990568963228788232641901637388882805196052465980695626877507573111030300575586028184096135552191712890386327143084888034327991421155716533072330585813845440251942281292162248725709170173330188528211736203462245506363127926056617571863286618406563671907017148433141663087881459089282942526915176604422002929538748257351290785985467511951771629585095730416422342229432098874900413915923478846549471303932093187544827926917000028286582691393648174139114801341776618331508383782364189457703901823161302217195526482064130272784779446244380506370694200005868264124071562474592487916785161478810213544215650899348722066987202457627064785504558951823888583629562116523366970348858193802135064611234084378264457923711914026209393844799432462789604457229077883477765892658541821100435936171706224848244990209035978928415461973548777061021694329408426525567904715686201659913401137777274556009594228451389147111899450597753971460927092151130837591495923063849760372015995803015103411489040458212470401471047423019827968809544637837151758636839850008353764730242355075081564068233268827694537226492571406654243508415256416928978594699948509711508394126233462931459134568720155866204959956059942010690241472200381508176300239932733559743015088613443220576795443713864946034178331535411075791383035449834776856418485686261947429270678671629782663168725210465089054872752483114572243136046061503497448023391953820812236736392398942077679517698035620110566821593072173853739087292613553097121599438267632745286087026411433413853614870038472176809702608558605044124515762772953751807941307185759115019646867228016282623429048191958601468026730453160450264366145952184762709433327334696537981149693243410732734091708464603027308351739478093967722025851670865582371583631158859871889587822988425166545877341323440305931819734973966181641628281068078914213350667146996916147803916617043682978218640475543672384158140141761433909473820606972077102743837196534526287448940105484824665674712426192358134795495628681230025725313321056428833669540631865143499680425296979455549567354335848992237386721394665128491381801898906342192573801847484225847463303984291869153944698704551305008872804061349566943552524628628945618895350195727258585109828043248115784478143021639028860079027164351603095293987958867995680034166780255330116845068398122826924241977298885204549966070828932796448713010808790995699224215947467053973126752950092173696587882641307001058458003970864911147807282116721961341465162335475782141633118476832365220998794305812622037954380461202387193341321637431587267048867709197555589320424103190323957772062522621377449908052452457147560229732801668763654503255959315893331434863948557509655240449121843417633940786710736510145615658337241051441567067319565532617023070323924124019494013734849127709524496901989751624640615625365220443477132739193666377809373474639394092119713195247926034980873049640343206709247701910310214658487611817832500127983871327249011145142457242046866456254664033776103218331336845585684554008580601838701913002929530844687779772014945027942752572692970843430354499209122797220245898332339430338410550370297817644651171877279573711748552443974004144984675281439705442454556460084728791418066548480404348320975113637490448138826282171210991080521454309566647287773547143458958689701569733517082526413098249467719066968796251589668387011679410147686493579186565400002497846426416752541627682397960139805874716984743241945801790597378863014549775022916292175299069422050829098130350483171112243125040900831308006190660019084518415522106932980653603371484600428645650091504818558719855500868690620774712908230147195995677588762911709596002843298733876073498129087731508963170702213089647050125160010925207608494216255326170747230572737782709765133119153204723872564729118994153340138735995610003229520920256430873393435557338492081969917565065149745878928003264915903325626025582351371273289076087365142949953015278176308776148883026857378076271340104892327436657701543829217024479632297054728313003446975652590099289234489704073731685041150332241875814633923809073318505957077270209482535742783828655675421362583185243418030016853277441670468233897978465587806465902398791910161008918021257905121478581560946306247597539059778512970421585868528765609546118228134199482251356007240136072575851528941701444508034474237439977227983392969881217890304968550596009460034769951451821929316264518946522729255978341548266705448980620395843423646346825633319700439330850695009837967678912564540651397523969452068924695467265653172366400431239802488786488468984116641889706826961703030485496868226016938234347196691680262289913972801686070382642065016274550704405888006708926656448338821974076653774927565409193989429297316832154193182800823767603460275386116556475742904890623629666045659362918359884414647052764112823465815783487824060893769263624177120912036009131002182559132770975929563907269804952189260093156387534504209921114423380020079817365078745854374505145510574117084605790897772340524615480152325760038885722472685154777149329305991782589774766742952834599850970810835285583894180627403649618156490103078707570449534374164663552824580637528636998034948921448515591932654143691028008976960282032469530989831758766371487174875045004494158036703624134110442650481868796292863443579194599196634185004777256013374850129714297730648757948432822612543732188019486353201866136826414817449189864764898912591976327542951550283787066260348664499043386570906827619994078249868078397886010751976750962746903408437429791175980112709436333219873166524337347161565725008648441734460428674032217781000302961409621865096988568120482585850089258850419125731245950288859336618214741726890451257965071526460897541860408041151147041826474612118932529276365346622156297470905818897380694321165262307922212901971086180588858735226583598760017084650788940268082016736242515623745872686443609205603841784860438226424545877755484705208696550964888026414195870169663726946104568709154011766696640952293787423175472277467799567706591158871238774496984822834286862591305770043857614971415348566984849796928586586895841135932130929908630892784249779072711366338692239609171155627238634147709990647684695288419382068642481607633122764324530085813283280802676015901068794701426343236680245270213743356349134389844972800348115645393933221657251412623402157677886311286318011986663669515526016017362960335502243551087172875659796538273901496146059671117442803462912773790987273483457431222878175881253226920810424927907861355692017285749348804690240812144859873896778412925843078115177456706166868582259530128768770093565862891272691638416900664669536490904854831016057957301960718420076890510830765044865388525818663970825927842293111448825626880109302979460912203287618519555815836955541508927080163126851115653790244864720639780409366432038623796999704942273073425033921309389807911569675549634826877126015525727705132744824029081449427779497047289094899917076960340895151481848502151688819133798673937777763268076592622479823338851376220901658337146373050439527442396842292458821655222681583249197888598567347036978163895708539228402745369327807146321034482257443733567228875427933408015540097349419734364240093758204890505727601726732082144938442621253479400516166752640231823621663199299952983796185268345509973466753829017511927301086346074397698075680841753721392769764978980760014620325522224553647330545608359702937151072814387322259078566866459197021817138346894871187324079416198554437109393400239812305910972868351277775684448945866025157071108499991367253079761597078805088460410072155786751515616229328654883175209159175207744525056332299925520661401622640698882965358420148704230721897641601259819115412009434942025753120933684105031909360320796468529435857218335343077237753894182659559895453816764260285931392474593784880305139882810286048036200285976846924784102801570079227217766087206966808922242245059860485536140187909587687018870180919652971288722876591146107464508323292557801644684533137365775928104316500302591658195616104534719536301252205527455910512577871944999354692275307466575067227818324695311951682842467236209294666121662619158852870927095026632331712514813465598758459241104194883174612136794689313789921144357319652724047146012464218209035790110279379411208443946457473008056839434171432994490541952947697977537443632312928141378730206543427415646779499022145042471659473230998761233754869183994906292420232756649695413730260647056403708892911339987883774459943876854882418657169035767908983416494084822189926452967764604015142539088460017068077347039006008050349732359596615274451019659518012500913552750870407583076096956999651079267234041980285448813682150371916390798723353725375042917892324484938184505446386661891228244583018768911418285912591347555310404519840428886601405887240129973245861345166674163331847050443988513550400002244690333323537333803640809192285839297047491652549060641495951733046698683556199900635395635418916704796152723559930889514777498658227842727272833632279315864754024904660307783156657775891485459536828816726982686337739367517984243272668819991886826177256139622939854276188938832113122374262467754835520249302857009521692570168034861624005488667200651376321650360888937724789106509413749738703175498443084271921758077153692057747366467496508678948215094340428674295268117688321742856492545858136496960067038440420895678100897663993404970016526164831705357845197878582192466637946314869839321209242433405416538452491766011164193766706933017164554423854495633827610243955990065130595509809935605800772793799669302610691645332726485562368181418833289301251772247291693022523150451978952364105734010986619027884790834548980193534080121401971939113037232378778993227079291574579401767896939218018535280417875646899798419723417757903226687890853323426253396752631706118878250118619316795217709880445049663797598043045206826431469669255426015688505422058835295446945083137564740694533037568397056298030164735988548970579454415023253715430381244989280420672935918905296744583941952663251497544559359538601296720267263933885784642438769796226091716641454061091194679927847136939613930116120442682986248385190111927434962596995198184938103986576853358903103105700562645504421982170863106407407755145573675774047535969172052508481735622317426490674428662823759130205153782260050933034562071445272073726698704163405101024221482352166064233979657089871024508036146558039737024085024298313258837650241156389711294817842797491303325772357689817153794265119811598097633240960317468043766365560429801182077287297326816654307950254304055477570661894876574171337781214753533703367652004836456807818101643328604317225899129080657549559621225711152366622836497102134795936324848189879821925734920859941797891300877211525486239703035180941508164842921239324273426537397170537608113272105501135311141663274358998036816856925743310303658308378657213130320308457736623264539233951117799405302764214554415266051157338939259913794822473987450361909948859607458668382544331119285866217806660921808539964794094441105083913782705435996512508013888200992463506356071084575266631087040595330659618199123136787491506710883029173845317257222243789925522300682411296704904490472477704886026384357874910616633603655772850610200312375317791041191524287831738104201243971341804538286687230340729115904003801575401630355444987614847935058333189438007469709338298044150019884230139459174221110364378858244124099023479647210932053957553596756411241514601864099600621891910628961623469244328018542319242683804065120585855520195284765228434187853637610696500584174864838045621993732032002276711948788853968597364791256321642430806644931164072308353257356823834363388449547832510345715921901210188621322625749590500469778991147976690849643586793443325179737190983678547484783597705357799419527828531304187651615216380317664718408942869350920128307441207198101139876754034329925814335255475415237998271703118108366658339817553737620202852328300662666815434893073746909720992079096141655538855972827374440858210772041148180870037526489284267975478092546680921341627931627106159370249535333857247184723639528392646628327344847187213758555595882208000164181145641875123779209572457104366450680112840880142797318056570546613623823877567117397039347402777295779474156328820510904484579674561196222305320368158445293064068854334272562970722658878475239849740836007169909415915688875570537811109778082183962835523203051047752172327914746101636575017986595834181282713425751611082114930365737598490657560703282803782602896474986986470188127310704193225057557983860218249581331635507857675996340127183120519304702830580792279174595565215967501538547934193523311305098946871040145785375584754980900427000747644275737765962603943800250455870008020574388054610060737501253234648192295256746706309902748088918634794245014316924813709257814877654682962697606781614575883353011593006026976958726760680118084816399823314556589144563560909496193260653188797787463335984045430305412905997204176620661564218713295109792350751572700280363122965488851662261351728472480882729900195740950760463440353555018253753095827107042943796071555445208903817285363961938955266656039588032315006000179810888209757839834947698158360907751206369263515901792500991927900800772550778934759155717645872492981696653960241823674831285829857853073217068516608734490183083356746366797073481866925806352926014459443394137024534685933595736180807098653148733845649763410798720509754725488514070447219327290909726725783778568830772079136805236479981214035981037794193160338866594034099207953394256986741329677039672847362717337188300379336482880384748548674487507411921439283999734791271577318870114439213859274088408890990189811081441251630134709927578802598366175839604514205025775896607001586480621016613422472945941947201176463630379559689236205006125294760763966366869707740075906884389714693506790973357375428383796004256554760401268954754323742340055344217783647607535106897301324179258599930026854559137883511919130998454251634142229628982661860350929718362193513382483821866086904136416742098451576049446662683720269672900289640124441831577529547300446491338435012645665290665230838939839695480004472425182354890260965211687906491610031631623292941378166209877520606583816952005560283019479863958170768803250417619861309509555777066752430358805132029883197189491380260765847738312903706299312950890511579954368069544942060830480555806746310495969339409120879199287315142482858472714493786194274358990567455532136025372220956294927192262307235027278315639460870107979884731066107141306226097760195113355923264045836267696480911811199392034131137919564685605672822939934619698176952569958039664316695060912707886050957594011028282776258074605459333879805253079635066915159284156385513972437418634708297141686847050040184319398519671199796072388766606362302532819986932403496322935590240727862396789317259848522086396210017814895829226143012836413583343809938994212647915844353786655135886934383991346971282661434778961941786531766256912730230323700145628727057090090136558118441814943940938833898928194111213042304931821218014855041491978419059976741149578280683639473242888826268386009121088670992322193540516971092868837496201464817788101577101961064571887058653844370020989089186680369077144902491834434575400643750609297553440052169593075651435712601769161965322513910431640561591385820403627932133616693981256437905928220380706957136970684867065558606959131726009333876445897949105223263952604086273918149492608551703262472270523146790494420974731630142496182094603192606283948719052168978860433192188754117243261149328979281093283564539659878840936477551489334800822918121610508584735880881493649580272435214148565623251491766756998309029681941997688708665119050623109712000286391122291313428466019758743814526002658071573321147224352498567562496068949030625318294645142225146727326018714637394312252407491424605616064754127139896906705865117062302436968238340685354705485426795449535934639323267453841129878038614640520814867092557499092385615414576609167382801798119531635931315276407084820436049240694794781977403909492599933632718258259967559921079169203676461200811098643646673297750327594943830608093670904468066306570680299270817374881475027242747115274378513922811713018373870208305937723621685268036841324472723238736448068979814432143084590927271131797786768077074037587313659633408079205906436927940542541195437923334413799894541654491618125757031306937204174675101001620489419886108656146779833126185218878513373995326211502089321318602160163750032407945930886645556123606302747213913017719857356076392590682592905067748993170444711290570706276273164547861053820961933262966330914708012914931295643371007300710666735266836462905277346767323371563449453296832927909037534815921549750863693839333060480152814358487786003467820950497404684916816804279103264688851009609947651643182052704018243169199167538150807200625305650927778855727555309111666916964087746457146951789137000543090806748280115988996156133163480268046317514944894510904529324852003981694344379001647291704715411208874783422139539774358711551989469385773388803642457227304627483142166464145858928208804297370817587322332180472909773276457398439595694508076111957810297690766679750913063507252855077305895755997432113026581813259079109129383175927271277236991945334403940273824238647852854522976322783087530885308918626439845069548634307718352729382659374307783821357587776291963297721681294297498352507051490276488336098778995028012166182145839702665903338965207345237388968072669353412349070160338855249581295637403320407863648776094926194092938495165452975578272904884747221290657069905123874759439885366911950324838397756849930961286928499935101411796461992398033684834356456966495181689086370691939511931119446117336613333229204462278929100954299907906353923541866315530632739790482744391794911426692973773235510388495233142595651831550747724818374606691682821640875252543236056047259979293645619404113904881344052118904550190338647192725415014455290283875073593835747963228900321055549904131839000138042005076330499943207898070371275791624696411240380510587096453552816496368475749477470767660002632394675691520160378553583986661744245111152091043718848463904819137244592229731107804473613609447771615769729668356799417652088060807095342166107041351126893696317953958668198384201546072930810667210628831583230011321278721705330133501065676095082944899790131793657135580102800684305544806550575000239203072133803797801504438282978984184862565294820482649624053345037948520592484871455945991151908942665525601984992165541986581388995803330896933758863327651104188925876463761301563116107053666496464654529457818153662279033455507793622835257031375193954861995362733579411013188012199908034540656955055087179073948651165152590269152555737767933419298468913781231431903937029888586502418559472644884913356787397764281348872634586850181435172371145496808339529541002664973135124616091578681975092446773167083728788484207003376358005528601635087590440281133592019584387649569705903061419715535298072738056178698270779575818011697514154276284902527188624814690832039428980953608686858255213967185169452252095604842190950270467706628330425935433984843182241720944752739241990636912453841667745449629546722875374511569430370373856836867954876329715816330582906033114872251347873049286191662134785814100562358549044533222731753141879895330222068506215534568717036386647240546237303106564651958040107710174983157168283011286806733536958405388607121882963643073661258511948578452931144508826355195521870641521969109147083518103300876504719264181939501035432326314078269831307067796848222692522974477978628607744368239616249781129429249033118986304649300422626768023398937730938140024070860749997623048353170995883746705355833884687128672632576335171904511196032172497928070325422469690780151150540782449535676873300731817540983999266611583404679134303773584108493221187814083636137660014629242283468285654138691921747775273881153829329486764115956083514500534430765469866516370961712290016588752881147128692351570765721495318142210917871548548265784105119879313612571329710964386168197093150490703977600856427503741130187875754650625635676420081008835702096890634099845878396003627543871628568600176628796863070970332910473971443457502100959836327580098696190406811179793629521060137431871532714381536073393521236174694220921670830264517520281787815444602983214124418034392342497117661197146155513848006797339580243182839811274990810406499867813521562593821517002094359577766613994680543147405313216330910822890359033282455800416279252009555488295117856045636921856857542274308846855639116814448272324881138316772856890103371844738158503315933123350848308154155360000895825055542213251582366093447472161677461735531528834562831889835261580976764627253799331743278619489932593266918199333329622405433220608835923408573850923097326735183260311958876397301546119014333223493692980938583509105029184404264770417014462123885894864976844304721990382849902728266639790298252317612400710994474124048964860191055795324021069227042367722586781938863611097174262062577840580669919624515955420637309588239559234555133850943167806775975281536395358084280925926684867251058693619642238442825719856799275129195965463158177014130121607173807488779625945802048155487660300856967623128157435457512525086848677228008227900989501059686254429841481415347054709624168749450336559112929377615962812011807611927424779270158524738645154202290163481090219761175295777886680501212025605356934469853766232291171587582763272192726534553646223253694725746227149540997200238621114765502368240030926932731608462529855882274059436843535981245494152036062215699254580193344180444443053975249513072692333845983116929158324128438570971823140916444345051413426079397450335644258666451632033934341008678317187079559459304216430068743098468093801723276756549862503235487689476252733135082989784882548614658965934062792912468404698944176989320107029120883493545788835191846443916362847927462783407412971146352045220873212692596824487960898842418328606416149872940807547744943726528097369983605323444895840766456062977907031961730994107919063026048100242914065789039461918137551353591401751142864016879242240624342978919987638946725281895138758027744541730851875606888197948867863215069930515515613119001934347170474600014637866428267546162648439152773280893310134359959189140367949753953607024975879059740612190248346769249605216335893234500405438529425314799489963048346978316182802386794095683492988627348132924509661764781820680411037346707723375882952580714864841894255378125784186345407119195012183149485152772968250275527993893653264810237468315651621326305627514221268224595702735327866604809439040288840298044141926478356972053640536913850923397764943712778233110074034439354517760993780488139319508436403543083071533160699848895344453465693923097781981468231498499593172302400445390426892879473079246336486420977175396420232142235078029421609231688208894532230674090294538313861984857295572665777992369708529645616125057374098465082530862271598025389371957643880980803491226537487268990691843779024267558044670379551593695547483440721058504566128147582872883081496567054108408152937377064235474563632356032210547068239046494442901157356350294682971198912375749339647802073013092210847184256261983671177858120980390015403245061405058695155533453935659311278671198645371162787447898904753135110462777108197914697006662268920236928847916732374420328765794891125013625632770887000379278817915932198477355544698891575757244696522505679363988483203306970106713722311184362331426838480626188320563408303053314202019126327002401642490318366197383819599146089961858740548041797602779678837763744976731572707734636586904418626460806252060794396509831858145571730696353876769908892682257118895713361447778668910225068171816502161378770355423383279401120797370362198913960281964491264867270066070251257901991661220674976590061880346613987986547091169095846615601348686218666962861773016603050707643593124416731862320855511339032229280268479033097000312008576146858599565131976929064667561936556587926073346723619375731050136058929815794082979149028637815201085157697323588518634815109915564187159196813592706639967008738385176900204365762421244685096917243000856824637176411778581703610063372833742714868040294719531696164729688086282712205031537284923422178247092290364871848945765062249007067683514703518028030721196292009755805357305291081439368460373454335808736956153275184336074142988082778748206387216923873380201126927789703599902776307052691245639596134283809189637539586279661975947811930196765390319218348400672885214147109117941911887754756948552265785491254389029236709937760404369872430782581326786666351681581309160850016838747898068065533809750008655321663458714489012983120380161794292830551193767544482458597005549059564656941688514411830257316009706642748660248527444487393389282049827933575492000375257606118711302334769122894198770466736553175928173194642363114240721958330409085425387823150422703661978677016247977975376896190402100506908746523892629495217240417867686447797390642613519473988851970277716680883079156070886891282931739559471643676149319968047831810540565887057921342417606623151775586081701786819717550287511809052374862626999228083668015913237645973382956622897931941047699748129325400592867995593492643332925180970056334967093423879217574541740256863664797461215898108566078467406565296772551112640109721483979388966465434681212746677383419331446960478716720572000102017475510485773599196310859548037052122749036691222973546737895688590673971631987783844311050835466156605008794708793840163606659947425032438187729487583483082395237281280936328499430525945096573652160621957149901206873052478298239401535513473027511657689931718836843815655634064426684699838496377302431303952616262899044110990103019319053215931668282975102451608089001956949159728140417865363024416563912580256209873090955474785899661607080504300120093848844145926705259214093547187241016480840120431891784144201473945326366065533120406973719888737166922386728927691888798338881261903353544656220383041619006829387629495005491241640661532734248794520413953214964354570504010977052397781130337622059459386997593065438226692699173706353882621129304034241679430098610625228882170973880191481989430758348467089063780847632031781465929595508922974295917244108759253170737662522499132635865650173793770455976420879700776845292422328986333969331808197357915021331905401209653520443478284164555581440001158132773594281034346886881098671177067682528215058875277149448377104235146073594762508174062519761083926401941937694191828077395535922369214919516889636607325122127938510526269083199217898355122284323189609726817180864016049226073200010776067825259283393574956296390857811798984297119550370789912066725112111845444997865553000051787992835979899397147874998279200676479181445818041729190765422413975328775038532074152950975942247573417982377114274372549095257729957115870311293883229758940298893635619765874195728782517959184721838168415711334724850804689090630938208241212120842529024529322505311040692791497534105996983462766869899778347793986848299654930589221956155868456005146844702136094353444858078932666175117157459856063002741601717004196879946015537562556501395161615801194620838920705479129268768692249625317185494432692049776161212073937541626317111769754844223643975485657870067408531160593703520361968841195732525143649204623454111933728154718680221287689891036830325433624407840600222310763267777779742405758869319969252685007766683631550841234048608207728240128305235721768586617352587369649955237716815143656983150512878673952207852809186393481552388860072524087534488752648332769885659438912702004708988310708667637517059988082053129723465529993941216700990044261657722187582060551731686175545175295157429771397786694123175186441692803432538213311119175991901512484019570147369211295361963096548837420875124847212256321266967607104917224071258099092980882472015000429410814893729700629384008042122480369445232991487949942997948125076882740252280269755111236102444607970249969738131399506699159037751551883747964236990001780013920979005463847525431482522224853565591965601307344775774249958410408896709886204383521697238153643620204535055016972729174549994900748779548022954500476082220084522877065005967060307318382400466834401832768703127535299354119401275951270036288863646230943468639841873163657271962436911311943021483151213538154283052113003976633599365932823448606683748698951263229738298102430462825656800600246867151731347497871598801313203205292469317385870232527515814637398046103637190875695075215045056803811040641749977958137115221022903799929341299850785596701520235854895452464717296407889888520288700864361307542457538884280135878680979915170523791813524012155520016411856349093428863428810948357761087808347894937818347736484519172300969861577711680035228127838236230052699629964411067468932455894008676300018861299565203177783871009779067896587131819505683878002373805062537021570053489905522042638881531084577673377904119445985882074516113507506561047022860326781531656299978881596442738038588011662514365399738147000420475780716054121553773448766445915328818138507300401640112506589108104523809085556584983524864314373174437695229156517177023185300839216172809709696995107830746726133685798825846543142795829881015574612658888896721581337576629752389536889287479667909207894932505331890262535050514511153144980627518348229475991818364642603812393844717532017766453369599197190071130233135821963626491751050463503810494902908465799267321912735119835773142874537800092956058601822964406935720562682821135185413975393949999119809927563109079360961965003047276272178951394829016334152443780916906833006027844392858167422412650036535582153776431014123280382891477516881494210421440491353917737764562258865624275327875189448573114339321656039582709268125394621387497014193431465328364850454869418766009985545312885761290677079262631522124840926176580860582338941049938352235832881231932075146868745161382280501358712388158591339480794874820927748625686416342763344004361529329346948064570160419430109264974889091205922323579414240821892572503275628263344904763504241261195268433517846428469057378095885698805769852273933790055314566031231709551762265788811467498908813860010305880323031996971982600946253938551455883703697206645971083345615537573939962317770843649116966297007730466201646597189756943979439645914458567712056970386484335193700539703179478574845332372423420138925338659873501945096771121699205296404496706808914794920708087161779114334643367496400103958563861405726297490070297788202538790689052760232231477610186723865114732927927532574953889589997359066788079957984316252539762228501325900209805306284126273411228784836009504863696207275795827604399290383441182871658762255037890993879684343388164977822085094993453326290286610340552524656629542936595481881574828850674207963512013898246859413109549258892895660591573748675539369832259371821124783238475957197087915496636702552078539287421401463856028762741583468463936823459608862990022095378043516786356292629975170119616654251807550052089077894925973490619637557412778586869374109382901739799923846793074288053713535189173929873856518139629586850294587247848801854508820889650622629888353253649448480726883422848435326308227183890950125646400793869750146947165570403192754856126405943340913136030304224401751754632591677242203737847169374113596283675361935307176433891755843626415644254908755322139967986250497227110353337405249067324882218837485163510557895224218198445099458005303430585341430199511182668528857439790975632059498498874442177517809022169138557260467265758043934711777999325394310688045138619798257048119747058983838684720923592102595862044220059262748569597257902635853201085693074229800591318711378895968292358845125975812601428529132227277070457953962440099287692789337360511629124148192213212784849215812554475003459508755291173145702332859382602467731742427931086432643340663951098191628441863126146704930283456341867894294235872997288122674475058806453378563760332096334185742740196014474630304403960327323653250196785080250913342315779490415474159073193119862536655915928818868653022435339348494486421166830655148827938431427398530037702189878198305031599577945427305605764649707086547877560597240597447290776831587572078393002529918381073516846078757185005606071798826239999602821028703965373578871410246802384253228395428159638407065310841352894368159993026779034785644388326237476833481082054300740497753060830764523377581607971652115787017501488367595964946972425123419045479001386227782860809139366638317707270585058221426772407960083103698301598287678986182396749515884422494900564706589685770627119209813234240429403775361192624304348036966597123221587435256565858289064638233857294601143663429078852236253395536404978746680891561645047693212736597131285259277071642453066101604127695420517053835840400936627468695585829226814018304614374919175357188728277223241314223135096002096551182250863374484079663959593136628148826434508948951559670348912989348185767229951258795061392558582534906604980668371697750831908017362653308873035710486433857971694602947931796413485144843688522851471340006131632525942912710377312094463204522188976701242514822040473006877533851923974712774329324973814935051771611860284851500418117627621296176165798445054647543455615633271588840812160063785515619319532283644323572248098974495813709796796674540725234204417767681029304503589034777078178325666796848718050184453948908644118551053028716433812673180052530755611580541117788061589272515218381392946295059483595521838838485272914322965905701531500291537851701038315942084505889981619072989109136970304068518224744548145559517574965342712440554000490603430846938442965621377890448697004988474258030935855621346710687610393135741837623544084244548470014423011950937174429839022661598582721743710603510259296728836694852932429936365760131304898637689961448117946543823638134175962341766553790787008897933418916998877961187887618092680338895220385351580405618892902453694950569414113608837446416283571831812647798318483784850105009287286249905084472222917385643048673319352262230324920178889659463908474585778556249549914597906129127003971597841048637663552157838076844923210919546152942258247341649644268723107126998553881147235063242686222071169859572155099655901041169635094287372497452237047969856703933189755224653998049650983712725401440179532746099399153627804921014548285954774978709238500488226517773449536591512421141167884228055649312606787293068914750922733995691792188651731510710858035678901511410885649246644149520428118955033822565421506434762554454481220662500945471635458927275175385069780915461079262407515139247469669630581974542872896093820402262792430433470329322763551369481243798616282310455909336211304717187623670819737357874289686111727512637595411598863613846031622143656128884442113673492647674128126282354157474823206808028194125244901768689223176493536887354099719354907151077141407263431169822867525309382426243350557625254621147706600347149571243091495442600557131680456576231340153447189664421450316997311826733539780401875708123154193826327731973897429311110091655393508654110039431015037844773577750066401350711025629854111388628861125538005703542942571322843839940873014064822359152513123538085477030510913712044747095451192813786531837164144716376696221761184742907165367313275823278747741190039357479861801873635469096610838409363784503875473238029645969516982133855287285984359894482229844800831315585582568908958357296013442833565094133505619051832610842774965372476417807165836530002230170731723906988544432462038265483727032977824295051943367858308741936772404336570321238096991190482108807653766522335080576537954081235995048714360385433734169042799930481954309577405134707384247411268421210966094620159312983022549787654766078013327807416195745050441187693064802613979332433110832341194392097657997065675607818926334320754267192641282624119007108426058465303745224597021864306499258597952295209155993250164613723840540279434639194057816691607901496855961642313248603362950487611584213750625799165978585903094659504264739853507740310310845395382448182941358067300045549644619042205036123412649133464708465821280330148147951745717830862151812619192878990152819900166899733605547980882846879727720593097255990558171392310050884789115873162010232410177496479309659179654580672758518489652141716651853005977416821120428491493588060609146912009643962396520278585670359543940370166031407427656644469444764680822390365826606067959626873370325653991098275548281778062645271700472063860222325659003435292427081379950483939736905878363136321938492525315780780896487149830803406485528990841493052609251005591623022050647583873194150694915345780266558299374588133281658634510919558900070247532146371097623177836224374474529697908644942633416601576342779904816879206601371554289567216684324299877846919780138074865316600346090840131238336129998669725470733939867220027101848891107337243141713293157487904016100322649664905812514837471494046020504398746341073342816785250698096207603248734829593967532839674921943985361728158951438174827853934342658531948296359402163870142650750582762218734335894682781944048820323375675643597313918114029385317951463504471908973785347115417468583768505573676937813305250719595816379780862096068319263178425745876046773601081720140296783846847729205635008511478782067433265443985478142890658213236660216450436372442318812253670339325605138432695161161991360181942262316311524512318738562351674851646458840203672449016021603536837603152310756540645829840065314188840078869296956581732822951006125926631852576471218485951536543367258967543807906759536944360017710706081180687776405352071408336272328369378078401853090946505230279062422603311001654662549990514194579715708134347877671946823552155833780215256342212696879254061460782281526706486771590586406846424485681897740294279278035614475490081249815264751086319387682081119459473239306842489461505943587175420880743000433982992667732918477976009384460867283842645008719323440159979871904431840625854160074068270309805149062458764372175694416804346096992601799985861661337078198804515767251759406889686136553503047608346763332442455574890925846757834177204880650021421416632588248157556605895698343660284510570662559605427360408289497025181307247338357998925581510280228497931789721868427605350669714045167049250423416072898535352915111528240918186198044857380234631185865938554651703519911631618486336877776521979545152686956592449080655676798512193465716816369311191869454210886440127754592628102948197437306616057658836955573952836215450983817931304946837982497371939599088186468884180479300849889161183016515149942457614838775722039273536077227759114824174665346353252667760154714123953967768347016957935740782372787442457685681461430616123177504964781625091277339740554474438365787902479885195344203392910466240745648558941494451324522908099446347008359798321074173743065424658265041234095508076099720869245415142234853524083652112829903907618566513222843658025042079526863833425146873424780216906745673078228952592631527561831469060047737964860284622695637104661299464812003877378918246486422665084059791905811791706936760152336210615246251914251484410221493500911788704924548981111632431085649806040249745867849794849214234130984018387688451449335052849019361157888598778205744062958521609462957874277256247635800203950476635927786112657221719806188699129251439918839646011528160946359173396047355786853004002080040388727350624692573504928448060922569164072663627541173807900782360200074858607658958092594215563872538571784644735793036764905384891751810821121682744389686185006196522279961342489388168189625760661090812465939619925315483042932315431206993912360413483735156011752038382514461482558646639725732474012259049800082704756972109800926578141141699834020982700049462102078015829522458993792806179320689910198583657320212651058551407959514580539809699517416493754236249424814867537109904447169575213085410757881828911018650371231735329034822069458647301562636657197506463812227893391102051242480992851790004157316810502877712241299030269927232934384416994215617093601957314955546544514432746436147242937000635162904626071695075477650631252523664581446338609197500818396971512608844642430281316960570515007119388427423080023167113113262919699940824978528686128644986017719750911135761821921195536223750897615688270555257045947856593481938772556351315049401715932369430895069229983964117648799581491150456011820304304245700902203789748339057933752394786024397578275790324204756795593692675755233432474801037036247631646363723256761123964895114683085346357985751072879934643437520326050258749922933133995887896491295039612645867446971261975990897938301473760368035362595331405762558456061274445625845975694371144365580108440204844925578102595011079560035736285726984178934333749148867758308171685661594431215499923034921348394403822915960571454440375386719371171267137912240721566633002972487227639132579810406620517639873549121126936686707462926937335942817555088713645321468908048028952158987803862428882540869867639940823899800360050961037755925467655282761319580005155761103269352892513286268247199811338799152026669087266013299898139949919138434593378617505531205029729365505361195631917283268008609832827179747316012970348053498436252704718925532678737690390028759935997574382745120394694227052512411581335407865878072568957351491054698981311135279077172643520145260285510888813339642312164099161927503165651139496756909364515630442542280996713809299726869373594845637179489354288481398198636555948024879880199051020837627284679236132478466186773258494236620928325103650708514796982420592295978605460500922630480442654209261082263810844433573051994130037416637145050570921957967962426180618914445379244709531964885171655367858030045596807374410239471496077825989652024698785116338410225536482625570878041871118314408090447689337556660562068937899296892373551375192443425470252040564929149238699872991655391738300841241010977938925514839347514931701060145796427489661213798061755867425377563196227644898160351247618474791210801052742128606655892520196895167512949597249225717166087167176959453371454106861232864924406849643856538185799511340707876090204410269818462702853131333907053462423136369148226958975628677827951185484312779456970842730045163656266001595054706512546762026596942296576663553183245405383721492890502794287589668761699697592408059272554533169526183935535625947351557714209613428284283121274026905484203620067928245463014969886645711464577320606493966716223543582297746514029609015128915916783953154973368497405389430178036191402551710249788365879166619799374041763538680672435279194744522623385734136694060622369329332044501463982780901636530985635477167954677459666938373557310723453704554228696873930022806054272899842381792844231993822300629598816393957144215050861108965213796807983346301065603450884719853595982531158202496563997206597260548476225429007349960171999531081400206012991991688752698922506044450979622586012566565194237721224898853082729207795927430756791626766591196040413906578704259538975137029758909370914849632163847223544425240184833734904389482723254544318531699965380505231547099854949588641209306720431122048619254868725540932960854834390261333912346364041125845819938454135028068296452959289634482068689798509313682466949726616844234146526654722907342737216620125041879684639298627009413330125329899897544778833011813617145209671105716656717615187440808428465501591354254147720102845007611666334633180865141586033419040237828259701405774673083787707918780238994376288429229310109191166046846453561696816714463639819359737872586645191923558259422848952072363269623604367705985871790368379552521465857746305036954324554287526724012016612292790935445009194160345567593200485674566513051024842741705526983108275086043502707120740258158626011578743327096822972856981824196232106002696238472199815566433970395384965550122877529647822273303653096931474405466309080600250375895437588502973191634970270946726371300184990437064483139958548506307439431481900833792289832420838886915278001648555030538957292699265093817479082131973174156319069970384375385779525009587145688811556120855229383367657976088547149331089332021720014919219069127127078874589730405807690139697563636061158647333798796416720981351464976337364909631799379113413795640755415555998724832628591316797435491191472951018802616641468899256518318388567058905790980876698196097139364223452282972438941290741260752219929688649442015955681635745393029044964497333265419074583760372794753686194480504720501051225928496769028979545552071832497048066054610539069497323453609474092683307923422509769899968862732077238694639775441700787532189397429148917423821306045364582812542770034435371154492247874828286813013801292898446707143991111248951531411723982852211537374179716930091732339657360780542936620958571327466725946042998303504819743305277190509975579932861201323958771172432762042005177609400577313541221030465096013391712025051932202525263850970127546725805076533816760417656327875701488942478838094997360942177680241295046047830191055638003555969683567277710826031679869029407894200164171253788296140826873402481832184443452959085434945257659978763527721009568304675994215953714983866261448491666984808257513466789019919214821550804262955918703582968764319368780267341543783960447271420885919728876259516177545886998228021598159142461514330631584421845400152963993936525468908451835158443411307452913497086734228039294356165920254591374762689107308157904699500258761585162612246559602677051390179124798474623326238099005284495259713442585878067497729779811891163298841351863022558072523253522941394026479504762702493485693460155395109747209895455651755967253098597482287635790827253683898765024446439201190523747430501347939055314702102868854795533703593282782480806860706679868234158601536303601626332835598545168334245276591667423495810444189280717584010625205033668174637197912463981223048094169073551457576380125610496934351580284966528387348665553802554793266288826125087703669517671007887373457379237351055726457072118057809620913418157734452750743580714208457579665937852147793679015125948359789636821389496565793764064937611890427364900690275879939932609841122549741149876781006147505793231180240056238102481463657045621898869406796380606524114372039252943400482030882720153022888128461993812289996740667721706905053418851134913404830569799959502886110213980209678387434744629019694605680126765163711479511076142304767682466278653362185614388083308780492201249803375320895966653774961822563642489392103710880552747704297505672015279519475252313744416143062382590490315390106698832781441547572186535575697914471509908621570251178895642276873359668316079719037542230466012701681589851870718390218934363204902187729978463754317280995938800143659503877975122091669930654307432371713334809117510343640647320704035794220613282572424110108217416451153539974603425844898487767279132196700878601657068858009425730422434609469269630960960576180394450659832323044287271807265028370099749397884033144533351600798535855586924766290346587808530628415346846145117198332392615082741976043939343446188664829454421475404137563900183313229810728199711567505299355383321665444173826859602953379548105584220970101604433823289466273357651377007446798458731663002182547558703265984486724579178895418216255683277323987782571266781858034395067189368961644779597257847892688738133442776535632731813794134954557604074043936051135001720690015692616538644923322349279102693243564850589969847019842651835210161745836540063392674386561172074155938675242354633474928255540340429061752866156341906819991247948745343925516497606655031790388584986729538056176273313189417163306731181244938888553441024475801424737317497566796125837768175064976421405306884120747995249377421232559755119182183425997475840855544611246896557533603516630372481177965994569437789743395973793765030814380733299695548486062360652593687588151968070426484673913724803872755489594550014862868994585384785228407047396667441281320574352058011548008886037493549342045052255610971139224998178250877317799136008155536087639396708807135827130334415675141912761270664771708973052134093776856760001664877632528030108508142586254859471530720958641613417186213034010725247670335551167960653567482792418402664075794899119175601409678963080376567615057145755405766292324214324299459311465522604826270722833328261043159183902217203874913097437351574604835468227778575338214010889262319901033778179292897875114099902046774569819307737891612821394204685134750063000448515573486400670185787021396866736200147469557771613421406574880238689183396864222719465261995289714385558817096543612844552078394334450206388455671394750165192282487217214775089615571719354645139049936005941231489773697162961893206664211383341194020566081278759654409346773147328520132399119338276560274775318612799855519496786239306265043763917815136939349374250865567705807650045716636886396498589399758807852372143291859422099985268328710613103260999315911506844568549359862761619738667751290270710103169318178640412990765967771952933433797349496962470609961499029681050537064885655060747371571319360031002264734252120061862261392803425740416721902759217532898937395392305910171298221307274329703400406777687070923616276166494830176391612505683858245182097050967995947663386615506970273396975159500351187980269126033359932273141452779416356254986441327450025709686449010604156080725406568287239633034206135784070471887969993795214359937842831917083209472607789808546628451338165711737216631816226429359597502642458277326771598953069869915096000722649182109314937906399314589631342511920140488702089677628687449361053009633463286563511545495078189466211905685973674290956889185114144984438301197137328318332131720968449702953630897796511515548335748557438597181160753829608834385512935555227288093174676749439329639722294856468903158629321396687532780573802059006328818477855579415169925117317050343513248572022659198788089557805051460608872328203972640942029932138233334768118274203070632362724102595936191966643522365768094688999885998572529077714667916894183231661733187680179331761711380971860453430934165405681447457799113712704787462106817049150346906597243989241469519238679254604446820427125627924786461450568266016640914776302084108598200545890110513474686318745721141180023552590243673200992968435845336433473401805031664661455988115885929503597687120253763939662941492704697906734445721026531494607711775015363122322903843095740472194401325016060342808371388209843932780739800659396322762564199327864581410633588059137020312591441281609011638563031809947840349638742065817767121750167726905797070800202789475352296768656651417118689564742780736308438482431737889739491100906510127924994872931472995461449928873806863148209947222382302565518734309166262589785786766389113000099893390890870648436235896330730077189459152257937959759267251078507863747587002008534088703760094681621315273235252538824800009549672930331429941213809923130596310419065558154378933349901611350376562324515069584650543438392235362126091133495022995761807409336431688844876357765776771653153172942159629066017684085007142322668650801229885465914731445266370214917527090638771337291586954941264755998163612583034972759518063485361910678141517509859776708614308782800749385944185589918611783485637418348410661151526896853996884362882478046414633655996956436566174435518214981002575154971812495469321964287825383962473272159155099695208455485351372434977347312364905479632568195994159781288660681413272491509993414965591888947606596685560318895918736084326713512414140355129661142099975059190496249880685792339579857663470418961112026662498472076748110079604046984861858648073160611906151253342936367207436929853450293114673480188950023324144864591203035527926712682159350488055446625900830368424946168406608997839316740609940817614908035282869114477368376175962322624041596942720076629215506043351387261126392345913718358686690078859963678377286031673176165155830614027809636155924522163070975375081241569054770487454292914441026704362076229002975355319188114690531281754652160619747994970723470055298998444047903361693662502810203006428605581808099613291494073920488750505452026505412722994700621834917852974039402452576581081349634323175606966986973747779558504650668738307611615814372428906448835136793383934970707609635744350578429153471926982234135667067759290289143403601619297801044048019827037156217074797453344488594822239607193853561021743709622662665937337274782947831842853385119272529810749674377894106757875883827368705058508565852243961521174372700895236641477812628861833776176564851269351987705478758129348672384007062375443896627222589183032097805590402035736272519920342947415640691886088795334975850734798772446943653454400290620688197915804983838760485428332182889011609384262127492944657596874190807226419979745716670294533531868886516211531267499334648883283426201795635085543541604765692276509252221595838294172724967563426971283557709204762718144042629198078730808377695364768857782317638201682906366179964575493235735725461470984927536737452877280191810620096600732154912091573366240665028211721507037877573622750110021215605658360319660333386512273818388961155472094285214143033244397568837796510238523580783697931888920742914184245017111223000279371555549723015848494965117572335337832936658506902418836497246543484165876630244367279118832187527706997332946473109495365353312362905578860823541348230287182945816272298387951989163302796083213363516615998788411185493180451595464063842746745466466158116797826887906618337621970319747341407279014608062266033961234881256338778165877437159389073612020778953344686539853352940639348749976891721596544864095559879173079828317484909557123995658865526515616452309452760612403705654159558140946894148564543773301998435504618848910184633179637080709559468859228353924771109985430531795762852397246956853927795264815069141094286536366618879428279769475105977635616993893640315398119039659607554174772505739154700882160280220509095636839183432164429465685910551642901538509941460390847123075921417528149661255629749420560078759219874182168176694420610229098485650107033592091359556303910791188511609744006837736774903469205661720620226316398889802872600350542976345548774782712885169099468139574090790657868383840544197955830533111589540169956209498812361363684893857083886245325430292100547942802183999499354575117993028464096148628245296042134365820414913681393807578293963957237224768014854211397693825167286857834345053008289936750430168699615426379778869254792349820244531609369400357158189438478243560604568864692785637240632499643221855340090606558262428601775181039317628697339013616157609109949195951821342036947708820519992352152170016921706639780185974080381282452197987027359230784795216419022230774142169801903179728396927042806220507442718958671043101801905196227808519442723199199340689774533346202495071727086291306192176651004591270841006102528319192094172398430727501636710164574872882436527067945638271997316704772739708715520269488390638944819777462129638875856018976389003069930993125693068944330150168968093050698182967575515453370567275142607440610038576281846851210621825990343812919161204146498405769678676294693208568976555726480073934611025193906484963792723948480988476323052033046715546981693187673691381018413813767055076394142962622023576211541188629615593668243580133741541514366470850989128975134896829058606076398408445970526112669764342509184919088746796816512810317852452111279389594593201379243479122636310643065942782557576929111332809533639591686757129938125291799251999825287088896157668632148654650453829998996969436697572199183120152674945844486128265315942853320646226506691197598044540300175348359625956638563391564002236691237420831327693551337209578597323432654285146010282585861651576999328982914965259442089972858944461427118316011628710057874102586484251803752779961141034775623558036420000996271093045157182705184323199134688910517156068783262916944980884148200643472757471478220715291480006075581406119394635499153440996753263336889708751288007872560634928665450860273165185979607945260669931094731005820813215618306484218758316939622907199846871532933857195633853228798975403210671113726302682559766663709045729809206998473751715987619917323261588947257271509576149528942008556778320505993975718735697281839886320714169248437070258983284244043949410920546712083672481982959673434089745696131592587146567761947775521615872428241175445301539236379261441701729475116454308018592365492067603636739323669832772493460784963509944884682688549016112848482727038428343755033009825585258631374339769226545191007915523898330186376003071481839100540176457648715063357263674132723670105077102694596475628286765467395061689703257030949975094393170845504338677575368916976206587788378744190603977623634192529737904685920525744397442291708790478184438774692746109045056881804455970466781787828450000276243588832255438610320232442964303733719149343381345165697919307900158873381257441935387071309672668847130988074815795130501005301543746060535839002451172988089078066897209920703053468262209050997575302992857028780888887463773760916892700822391516255981127347099198523975538033909167529074357288527266691989551675920913189348995980985664889855445628483566288641827578828439637847280999396297578731518655695999678621723894130892451397270364522322243395892211327684536646885878818914074731747717853023208521969704475757098827768695004010874908448136975840838676289611544335969880454165544224135376890539495103173820273377350037403250368480508546650783265819839495317315657274102510939818260251739591438826659827214418464063282983107789188784767614048751002980422097047786691807488647030350814064422554188079884703732233240653684881937084110591065599386766876364319902016270234262909268095023492613933410934959424642212053961491051976676824874004645460240413956190719606409841681725275723325886838987733412793323513505897212503700036379906263842788729300296525624706465278097974136721686908233488944819630607499905420861706978156099295500451003921206237554658090453755096797977289769011508172855471818208323701351781172548420528801448012777736549813990082122721118350352778894549988499484335292803347921336890072865873464934051425426341074406472240721154013171560668547321256128484189913737108797234527776936553066978515494286463052413877623093867731125419390351186554814556274692454537044180693665455961797560155047582112658133674097339081387120441469895644130627543106591186724699125302007227036041703829510680598159179121438994391036753366342468585533486509358433769938937744106475255333585034841545695618373826677006632917071485933433013918006016856097234505019150246772385513230521199367047384793606795830315147120031294429347420170627279486582258925353088086861803162141796433739217182139443376992011249344130475334448342081538988268343204542344393174208016471298600586271232683507026235875503569739341700043801884799992717182667978889485036740712228551377043417960021668541902189196539960381548960538959412995905805800143169396141769967050833813738093479854821158822830205041775186134825642203597883142846356820255854556938222439821195647980175731132616962565987613082002510983419580992701876861579717546017968548211416795776391291429785578108968643927664161048688541687650063433246680907901205533767077224192480678534840989052634189444787208104529034758519112549133951409412500449930882983674089276333738429920910517837881655264680233663418381790039641104490456001379978487770645341987170387963516228044766230497613497181536172861299023980496194098772090117306842665882527765575199210894353927884816804177008347996315596332905821533284279709168060567840780402954552779597292220267127499957411251708674864445592028064213976032356136904806809434824150096336013245513312121737625330827164433463947723098697989786706071521301244450271841815175098100876355112422033705060709488495713574931975176103032784988441473938448068779878845474178501244897311526971529272978092567785190801014262552434335924239647705293847088416568212332653286683162510749102603672710143410763735670453447809292064967430741010502126516942090797915815583338604056814482589671247256046036163395500848348690124378762647165755107862774017473725593769493964692669231783985058308001687066982786165157095579046739574848644691461253017081794693057177919826790206273597710520614845127639659401820967196672801269819056944972547607295646080888053155277343759718006303120249807225952286816057129865109111098060823113691960176054010619979509141635780792166689690724299327994688747324749364667647414563128616951706770923227144014069039972763810069567946073753708098335730617952647697026874155714387605869642335805238389747608398720302255602683203901757858063447529017073761931420746812614564688288877859450496787901455078249053047160212385550098104299727173941843901560091370554312083474197011195473330403278585615756938816400224027445486310412289256305271139172383248755471758956304497762925811151626317844027888050014483300184564694527005126223498009708650687843035348749759804409760811999634292883310989481652396276122622803906093474727413147868084054219208624959162919347519698188360484650945446598870673268377594207979666577141041604037444032849965059180127818550207882951014488171933370447370378123833143404160648017782133627654816854881908449384999762567560831307166077781005583994649474647635402894789448148364112518938432183608847648446015428018895706658387048735043558623510107288159395294079173352302651722052919315417175833247186056994371012686789805251451889696565045213826730060467009270406084759250896468291928059854865440082389228542795626452229199323088280790585002645254560159634708856067825558745744076794699780301187832943025769431322633963266392675911262591686301422787274495126520853656968653731318670934122809739951119415751581041250106008068908684151318959956846436046076287766733782952754534550969914551745259018837235970565790395859931225002712577630256575571189835681207959346459312299955459696355715425888596369328924133890029063332229048662534992097413688570607712453968683232599036081159241535595884939392493784846242949226531249451032046870166651966260704774301879456409519693848378175618929110606261878259173631568800656261674676387387218462355519569911750381374138993153865110592401896268469715170837141705334482091429053695921814481901211777361630678940305153018832718124001161578125182738274949370596506329191586521907429755118638822045578447096495438657737630702395060104369715559300077695940210129545195018127967937145265904067618069216706568543715381939394484861698013184196021019472993702953126458244872305412757342764193922057829642340959714886828214238924675693494105568629395339613897544830260487436256022425663182483744117146473809963208419982618086398322204755971852835910438595432243090340808140856393326429596425824108776525324802745545602610657060733334264100438107451929300441012239508181163436740060893855405877444929039765029573720385970963793497544512688896248243303918177960636180279401719709076651532907094097781353360639184258895044990565737691490187657975536214794698963994949740051621997791814317675507685657972738423292909162823679869556674582941755659860010775451179480004318941403605383619245989543238186394195051085244526134178573522387958171029824565990607224350828891081006550991364321955742332113255936558347034578009039423074578673276862160856815190687062445606161390671603321042554790113782031150546624003566004446589394560864904339843093774673514267136209623660635052857426746471783243639158580850762683173924154053024578809430147801791211166100903037470108045071126322551831944388115325542179734002510818770460868495332187211401410773631702880463068022450029282858877531029676985424501808573057873870100601716406774273927157025037813023584918017138844156262148838026828158027471273082050586677623649197197598128056947173880108489536992580131309526563860107507058481258806500382041920145529416559005967068474937593514880310700371993798629953641495096613520183026699683757373900856154698819281119685784706545646115124655086761790625378436671144796869388123906179239587338102696825600008734828812505493079399810189936526336178747208503316465725260596184946398889701202693911865160895350703743414480823096375903256888453386833835001108720964503954057403977215755927747597691821286330276182859031283724811006339967679115039857930281506668250968565001550729606719887696084478305202014431115364480447325519769654614320427414202764567264079016280379277243673941588247471137496438746613643058124870020041430602219538877912570213980679433706062009179972014913763945108704016507301293661613910570367696745132025452030170018410477407686324748216123047047274547297402788719455784298460236847392324899983765780199687399552306939092664617503429701191243162285880992163338951633812443220845585789692164292754133165685799271094389241103915130409397037954626134028505337616454196727102946706789809257979922170347738852286194161096428075529910117417667734125118264113608760494395221782076558901970934708516449823314430138192516232411474504240022860043851806089233480220627173274544608161247173639980918639647843027172549294707672874746963192698499008181104251863710041684710770422296860015430785043280451511875838204610997226702712813446335786692152571128098587349077226021056824902284268661937567524696758095797760761082981330362173802161850872362242879030367532284244734886176979376272820916494226891476288340313240483938921068972667541942989430194901982105851203578625079102460948562158071214592057927356794583582101954037911461713028071552449972269948501464424468235454522786099398924686455329591997373928791142699231574099247761689133470736412403789480325282822480321668067651635293508525693478046056442389970784447961163836481096241748553710667913327630161850681656733260486379660664362726018004748119031995314804193977252676342943372281368632197575317550267965039100154858589109969265979024772234827708001022590851337764601863965543958822364525809322895171143162383769724209556032474845800735080099955462188757247109953657115677618776926256899697194919402924418723963129638459488600568707827544663058421423387881396245439546902838770536916003129272485055073086533396825839642523473226393506770209784784347309194753545306137637302972027147908860209785519859783055202191678144961781840321992952500343187614353737703359082184128996069299390590814066975664160387182752336507990085368038530256650285608309871785474999599914658349035242966753045195169290169848141216877384519230920064219214350281920676273081952001381879576571009697505111444757966585709210273970804628261815404116981424696405915989045911727331539629033773790556676960614223958170624840123338741680515896871964027530360137732335696545453961900568802954686011332062097572695201750245879768194498765094922210858508578995121685128715429287057104648451760322987721402163343525383585224256384904665764914721390860692778881163469018216159160907951250924239242538896132138542854687962128968402643496634864502186351035477595330777051540339654237012651202223881866034505013053905407164822946820835006826718307387877644097730415964277583329825431562985608781133972510434446358813828736532368331923920565664812711367580134997768663243776248573648814010451283557687689060111919316037654901188507000597295854885167402322224882923405275368090556091249404484464321792091685314063985852321941795690522894811260530355451106028541464891908961258498989271849903500822329713765057280812489097312100800614797449113525431260357398452567904150214412521537866092298958411129565970769669862344169045640393388105786817778556929218382037073509332655480939413101396077471927719712215489368010491503511284127726893707451458516373377205901838735546170381584733039109155626348268542711456807329928171448325106948967592258781039895836068545094532748766089173855169314549164538788564144972839936608450356785390678783548671970565956623580401509553165029533621742484091952776488115614779477951457835653286907456830566186034487059447909547899471298602229347148969360107829393123841211827366687210847280220705687267687607248765433459763284945265031256036472065719766979328410154248010205642706741908000876600110517081270091915579866866555515472039076920207078927579494050141028359372618683827866431706346461154467943095018706720802023843641387239028046076158387547552033017488516647950505177833015477408703036774056454245618468104476506106711479097073524046815482425198161571409799009492837788250894577456494840941649915580274428604865850930822563553806481619282583351129067286807516658496540724895429892000198290189582534257037870625581061610832204030297393006591866023533668593062737047208980636391097860265036402930960317114314868312107466734656366531041966977855567542391551447712518948385902823588257831244747380245257518703071353895123805281713854771801894611971095525434449742635525756943728716723473604745656584501089112283233736357091886731898572076123331270589529457866097662334295810088885089128816094306584637211053417733934467344403867836323736365430156071621157901652444534895205500547942951334802217585128519732333530520404827263936421382039970184356073831040746085872853133051360421294537286150840011239274855304543634537914053713664243986607285904551931809597869233662719223769821415491975620332577581743115915810296976817716048296054702640218530747298422164734840243014534869971360057256636112771476580031490468321341284400465454974427108720572930601200060219452569453728601825795583157849283589120076657713917996990874540313525556647031091759266152853962213378114108975675248678677172294804102057175181357250018137135166139161616006542949660303131345031570991320528009457572814239473637574458731983746583073959526136473589122382436218411343682033682221270496495030415462866281087560366158730912251527088804161059208366408175132832043988468107221295460717574139602632259362273477381859954814850075520223190390662607839565931770150322851320454582709445199262234203205819855813590907711994093718962933013993640688420422109465305357155282052957648392618055491230585326644491846321500966206102195153442059427556989717954262749224340178895976292911338614736218521490366199465850416819154336936423462601433337432379847506795666019975863591439661246319144216995046548962779812365277848430760885445107075229167311651234243371769516559038145169558428622118044590870368419361996555902134741695726248355341791393348242020012557906712927431808666024727976396512431316341540695999101703923965779795227019527837465841729248386155047707394151122363257990337631271657293297528104321198527044435557381526797004902085543413522290331911167093110264769781790252876093516892633687714669288407177982435389021885201667289184693077931722653754040663990433254398497852766522741877234435329421680426513531201948257296744140462606658297022033179041140498597428689398303796346623961500773357348180414051760216922283980528043504410019355050040335676063465181073382885745849833918815882814236346743930554099158024104031874359081873661538915168530260927980330913996535368144798450680984721521218427530387989617969039784459115514707251925525201114025587530875942150332535520106359184347346991527384705199333752119389624194505581964294717105679127662421935576916560813243450002641713715665957155887570878055986754676060806305304439308562306012971929426851569380895797291669087836564422024959842770211961895047649089525180211688966285898757612917850531443619334337934087415957762551746658387160638358658353822849270861528056725775571886002271660258786423768979368662669416291518268094505007647429588652071953893958025881488163034266253068771742635052086538753079558100748099812262002735869887417221589948458853375451185071313372762908612710795319734971334774196730217232005010011444533999199270819095545640296066373828386155748081710242577784335377409714732501223603548848718522089208507351603266954166525530777069079492332176100532591145238650613196838471398029958006325054160779736270066386643615431100668961309685180896125022247749672110082870058965213446181162168238440805906897604775591427858050306799032317392148457900014554270096542056061695225795370117452026665634385762558989421786685645624113169560197137922838301429391276484132432198556449778979607173091888072333130295362786690021083786691925025711543445292063752604786218702904570583324268101711208480209311329997541041525706610017090202205895730355650606340261089293383527245655246260679392106641441041858163899123739276202824331964405377171355919896042933839706556071449119869430467043420881126433719339439302414077099399464698034837710873616066974593282635143147051380105377748653688429349349413373797830830208037894907764713670400043396606455010292335144196153815808159539699435341196843880435275262105168576958461364608904011573932930884824124571921747476411205820885783048785120856268412693548097363676043825813949916621065714534787357852733560921459925380014118585357268600380675969529765299932261512323394850581340462546086791543485897036204785478318319494443879666091686622506485628891708526732459564596254427042118320387025465545135825347127518627206330272974508270210285285917877472446190007341117036502959457140482979822572452907074353572404548648986301664954655471364078515169582395278839577032099659258294416549887454565709917273058509285615708087810140861757873928825804393885121590627092972313016127695432213196947701988123713471491538799133115847665429446899328269574223987126108629356235713059185828925273919756851248318264997609702712794002195345655438138104933915953689544094292243653905036784051034020776085084397649569013885090123565199356007609950783110771693358673423001129355018471530555577511191366075392181606134487627653473548093136612523481620457020392205100805602078182433768249710618931125123960537645382319163481050123098594934881483610323585032025219657638947887051731339999171391251741087921862686823167683462834098781344210282880464815252855306951128892371286499952692458776650940621410300386983379378774841125115263974802446793908601914988297237448830892965301425986495618757370935705985035999553481365151351528188300047183395636415336202927451225643293223620868137090944233525041260823395843541433951611549555843958404248486695526453775592113150260163160601033659053982682300595670332917150646954673003938911834774586164739771188292133670861062951576144193998224088592470872495101002560394289384756637975998498337360346653456137030746236829746076596764681086395192897809833797529797283680115579944954895349368751174306588676223561218009872456788594390967985480554814672391773371073993513801499391525680974634431339304774385182521405259686547587840834067988130875769932713526217888786152501687728165967887566688247871483453065518675154394506859605978521413542240123653599760419625745099149834734713799837469748375137739658127234235907533327309064891092301615392922746643704248312873666438576234915074988086163563143043046879563022173667471996037246352286481137120912445689089910243215573349889222159673640458531341919085727762012740285992040995532772037056580952026089035566352760246645451498597392964561024004884938250239178699570628041970146909963708085054122131349806890082859852011599134972714106764827555549684728269986908368633852455922483286094772312525120031880568526353031892922380513437796951864859411200148910663781538274750637577413366683932953223653572158414271750213980584909776576392265990969786797642711147004932206765968352892347385557016979822392750697325357865549707024994438437419828134719584454026912226443108389080705734897838708052249241451165426532668297399825565998259430773665879597367940118737928675199160806803314498383092235541781448924174157520267087038759051364620740590319178253175356300203160741801678273472635118445892876283333799459371366614993122515156141872521311646471651089641592414026467627172887668228959488419690728005743374993657112489946334084530875831063999447110802586326492011657731426149472099821731662584251827082643029069725213895541320234564333516396074755948936512911317529695430701910567360166533531826078897944673827562981967084600825812098707672287725527628533682700481978649369639966724811125595411715913786807202099813703772040540654895845341067537294582627929222417396923401702094264544200446547453808957796829086459823319096314526752708935598458629723106083710288829419015483873164667783916170101874575902054802022903483915594438627415475852713163443576314225279561340985686657091117553165773652273774363684338443658089897852228816990992727928581694827634013709107681227613033722043333995611122054406117244922252583928446373051211182418399579127674609795444096655338610334474848782971551197615168296452002344754200395393006296524691135291638237141049409162166175212551971563253091259481628389687345615272837258241628876499147072622192594203737227653091273180316860258028150892743617042196908402182925186055030643094550058491979888411662061586475184599502526587932698143028336923186646506930294259834809776075246030281380603877085955418620512357970563808483209200841169201332356774367208723216821231828058607682068500239821805838094693509671619448923650643054609127255529662630655411359386023506133094022110283375434693209417601358586117944905559413886780298505290098144745531689123478366616800105840470174986879890177717170375133199739656587904588959140208791473939792445862267820715373212546271842626174687715232466512303123451317337307530439698733376776237556022227893314571749695376246092216516202593652959634993463681750850203333510032853843002258810239276885548255900563531047638602522439874026301472225250561215880652523093798589961276582320406452762262644040352910950472375959782627782664271281691449179395180236190122097805695798520428269034840024932080543810513711299761792449395414119355167608036794076423658401812215151271195498618611086275529572655473136431171838731557845043151720619353157180478224610121831068516719560235732751123054521752953703346979913955012988931692790445642947751338722227280925014578706577101809661704643808818718659005920434587401676378837254762779371840963250954892051467753802585740303037137831027591418963888423395220740440396555525542388595224644710908653690026274220967117534082409015710716107644137298649036416174560317077843108451760229499629273945630077508100683452253448705452515849037911052803245038695835064772649011584496312976606637389013966363291593256795005797797336157250242345637907121085297898947072338459519731441770847426172013247152622176703199299947588943189539355785209272498982784273955837567854769938099443945140752077909387182317494598496080538394616347612724383360043319742976336193172259156838054085100355028235198259634564205764814115326501455044069166267719244680440443848008970226650976999256864227391103179348306558173720677919554198802323520002864569397578015656756690804542221969972870886651018804090186942415018903086901600063316285999477832521739329943514018615285901662576846933467104850619891973582320055549914169319087092083108258001101777326686885096722151552192495874521297752408343224299507258587973415026061048540395506172924916151417250052182169193741491741673994082937537490864770564493681309380948730279399147969832319038788631934520233751174656688503487572592179075988021097648524887160829218895769423906896730495845064930105281798679859542444465880912423772847887404834434122693237694568875813029762286112388736781712905247348355187619395867318094120252066865240120515405199593710513958886634142726226248141994689724279324022757899084893839436100999611207262258166499800408112666363991130034469774827385431756258688138682195837042995858833777199339156608906523039872169049413044233499634404071269117761862403736329714874231201455303808957375519546033356080371668710098607465264162945809410204480006756265732855738461313087367312489552618826662275815164806788844594926083564542926291424204015960095474864785336130994453491313972803869757607210865515575851565180659746812852229924826270509724408965501347416559514910215401264768545103895267891287872827609140510895788496798572415132598729763240927511807823550087315495775264958657027349044395579931946012350164163530280246935025917058645756986205525378144941433996988212319606153049211282267745978446492566865465312123748200589673549410033373891423395085756375618205420291432315245037958887518497552873533851796999186805937483402975089478131178954033834549114307545905860260006050822542715585869108041632038991043294375297616104965130638914285804471677007324253234836746945599084827558987349448968563646858655608144750474211185415875151927462299589537015829615893542226390965036518636480503869321530085076801963955342886540732348275128876298461941183403607508363708006715892908067979012486231703315907852510725415218689013704359955813419945134211619563957593763462694494249180491014275106871373830674643458502770306309330846916655381924941698848751919500817901838736327969316006007855208287882875627479931320227665177172774203622578789006826788876822072967923210990293604455876909178295198602974195463126878979140696986345576760086820377307604182228013815997698283016757799571234105160572700655620324541565077700442589163196450628968694045329372629744598410021837311295716020774114584295532584500142992528318257681922457178290502064097197296541873373148550109036715194019415297494592352085009307621485593127098629374946060381440993534221253912913288071577623289078815097703045349406541115349229713213295355760090801258499770712105825364703385800922852803976612934292848511779539227993881445745903725231383312809661242111512105056121141604127132574359559603738911851598992547427908472447166886996071189976424594815246703381207502334943044111593415254610345448486381248981613951354923221214525397570513835869306493002678453229896459530742422280040903135937491802405390422994738067887717835850581744601512526265757951793125578644531599467583089112449967674192931445616415915950263446261309293950122384738963400236579093789480991994701414397943688474442780123347270670910085572457488792744932617263068879186666875288729396664769616265278090856388156211918321098644996299169832838473034868790259698635981093059978620492457461472012368307971899746447064528173523434572012122672776906241744640932783887905059125890524691062808444788282204529201693934869451124710249932704856768471961813055516548414949782272324218501681416967095120833670270865014308111642996657574690247845786614956195945347385277248316564692454625594039658199484113174963869279515881722005729662998875358069272703829934562305118038535164376683847578199395263916351061895745259608239626741063694733540571331022258112333275686169687340642431523818627541117466805380725568895447238332750176298559834404514254181859057050923493459472666696730509467094280159981132347412363512902582043358978729612301154606559620800312846300968835714980525585844884282986408588013044066746686525724814142098100534673713603512888976944293249126836297348958820278442424932299351740206788531601720877392226568373963787271688573501274259398833559982293097972030761532445621418053847561296721056266678018253449095480024316754706125459455767320900316920346767105778962488051431600246126934552381661681578705863936085598965864977050640787092647819553560369274955153011453231990324146460457498654120620965616870723794676698163873807466994626535455660879564366245717674557716179333327511518537634148669288105933282226038289763358504164905896380859538194690509277295139946469428357009815265194147801862346584995679618360743623999705163412025966479187075870567541589177970561962105372168813288584685932350522324982941394622536880309002662608384705996656981659233049022330671516580713368723060803247392210293606738085981871317167366174211832639121423075390603096024143404090169316422814912396392541880272131451751118292408114978664663231590432825370702858270153611956246445692217181765202307416937837967320015088191305679711287844849107146855134548274615975820197992528168842210131722071519449674151856841751355256900740220599523821010758173903876588245534398548488171547216955009124405877617966836935749579635052865877693403888324804514627500678886556289605622388807082194631236958969983196961947073373519138627064942467470931485892756139886951633170761727141463463117447895195111874761122834747795128497549131336164996865820019927193164330777792474254622532030031324583878441309410211169693980826617134137953663428883035141396796472761738716123870187417806829667314143618308746344600266501990357982119471413287500105959203781094844152611608035751092793112334087674384717941401741612347435522212989085013515971208344458000793753157318053015898303344765632208914987111000595861707762560555059787884722937875412179016413665063122846595470918245660381704822411337412428235957935457146464757490116173723442340337379000193394310224861002449136754064719119643551738521618702433155414319230865114370761132915167652375740785427137749678442256819619647219250821041406685837406532362698815700992741775813563670975188219819407427854710568330000833132646992475254943194099457898201010326995685179209076100901388276158994872710770321801930351914376605201803803800526960531686568371341359928344067316287721752653172397488870400473152540987913512434967167623986931044400919679256412467774717685546660193104325722932739090750386278020103862424408288669666980113203204978874209967370009990418430833322059937134105914226806077622897040618489215212058590262229137756818658445605498291843639100460556940377621261311087701183248790727171469874441387648140271525729149590479429607486721691643856683839899390435555689477932066187969969297211439408350634155544579002504430727901528301587244708551315439376258653084889349864145967249844967825658919993620264594345827117029969863022274688593543489417951952316248820467635556354370573385999363470657027939769112148417755288805085591935965430897553493708883870398642594102320524670295320288355469697434625455499733572511721249694337332431894666676204386815100260122882640123250415646408357976752626351152805335736709136971780053843129293319645988412295033738331038880958235330246782217074753583139514509961938272306271792652933879633603833201847454879974252210074657933623997276001538577879281722689726307449334329692390150826825867027422884151621340017864819778690844297251733940363056880388019469431355711150243887617618951796680104840848943578958097508623694195176098758746023841551405500523823383685131700960259246071269643994409530218090522174150968808974959543253276445508571406492218643683457739227001138884571366214482454832949186019870168911551447670148029847066135984041330134208824176514692980887957829925749558246321805471201399404400103023557525254024625494587798955496986596520935281742854254668093210812500207768594757404702235676959529813278793123178785494487862019921111802199150126990521227436472052580316881930595458883244037292309608542115644113610806591482618142898090320366817913693058003830001272387821525829019549599496223151321626694271084633170297377464409000365817515065122714577867999225752621102445727310441651252273090952521546942930710339121179168825682282833788002394800338541812470571228575470545711920004331844068446955917550480634197746540557428907922641496429117127157252734653804176344799431019781248270595174921450950179974551866414715472897197682239313760398094461913240911555800794087666384813727897965133770387299269317171942234393838526465989856332492376287361967754026900814816236123079837944108812754876446548373231751345012700958853149471333156152019615813621979960646051095903472439334017521217712411092147367891906603996997207379083270722197018049645073470749144298630876860353293388509350979789268495316445311894355916487615044968823263430517479770024764228369383792189392321191136775981080086990908061208093726163636592016195856932889967357254042388732511199470874019537269951564173239213197235933820776788800932820766418212139015859003087172588579302298717124845897249969894472387629871956488056957928507450792586160182258957987243651231399727983161003140517230702529579116390851885663940304082787547090824982564160329358862020637247691393445312857137316292957764976561886026566567207040522060482352175522536144502161923810021206124654174136231896905665984874912539424097102834023039761068642218075666471296262301521079311968491854740074107615375539986465308398864420072978251181716488804352624193287587543962706548513191690591760924965735193045599333618584987776585159049925066779455218566380045887976779287588495582310062206876004360161668658624170733481423382876332821178880392101654587245384425871577293978540008203264153454936411461264058204703027553759966494280454881694166186776229852132774651186015018210216411633714961882961899248715233855170519421916425288521566029105569617134496873632152767385859351440362546836628184713955846638527866181267210672768594919091338696330716835726680118327532478134173073126603362175172387771788384493098219121503837117984307940468253369804389783400633924774567254451641482178902860953600612150085297838921927173730966085611457651124797414488206030238470615612059219015286229622561554035803700949093370906164833306002943669879680117183105318556593776830327517028000550721491760105852411832479455621289969401299725948983169224964095504607082656327276601344314252459003820618348867378458878250275397189208141565659931983809339327172082817807921626110574144923249049630987422970767796476201009582694084351158708232998983610711284246574123884295073078817067203442528788991925202347396439880733859182581339020440742012760620805007799811970885790081502212865253607283674903853825846658773940495200504393211271924464974819483795883139430957581304107116449837378654149587097005883982681648262002521377589272442741381105390424037845716762749283272801808919144318701126762832619028908635837894837171621670913315536027973553647559508521201524953757307753706704808833657191106321269440554262944206401322512726044112469561375284915198154584508455857918697287611723810021519768392243044359743039448829226512186294718682605681694904550241602124648737515210330965300258919430229967958557056030529706690032427844384322043409789323673170707091851535876492389940071672492061894575174161888373008553549066056629967995069018085803355819866930565448680268093330728162656706116230644319258119024471033082279637041566693470292357135334355040906100340251997368937188030525820877623639770317588747914968319456032219098680825103855501533341139905187005567653166216903323528045084652371113565573602914665235372453355545874575458389073640739305279347114723811999409652133883904609326041910005721725459631823699421648936035147709856561013387787297267979953710123263056785823266076390047091438709198027275473619515900865258168999448719545552313986297766551505705979434102536888408300512533409508202185726660686335090861108868186848071721440101419770668470817599076559717834824560816051705787814206873373605614114372908151407517709825125491204739460176418512526206169933082685184864138468651906714185833668024922788619941043472753663456031650220808528870446246331254768248387955426875425168383578782028466430533742655294533606457802078195394355181760460658743739489081166523438307817089148376853762948346536084489914519423894521634216400889596920061027651116697548515298992285800752123305782303672481636135128870814452394203208557080543877342415471618862158388571492995057367079294077562539636282787270578378921804518048107529221712355449349849867899342471205657233647393915804289803826108544698673737908377886997496526478168604560722351048562857657281334443206759727701850586178368920238572681321389967725438928068803463714111195945657350011342036298056343219631081191787357291040538055918063151616397776867987806757088285511983941644715577040002109993382474972662843704083389409078461770397020089332470911608274936520388572006578003185655909142434859667961655863528650430661305914866752809893531268659172439650813033344173151371601055337427921180475888452060198427729687621976940724941051845648247050782965868950141186361949387298065718513065783139922379299431668093919252829279710249487931816298309292643074416765452780507813932876964501017285643635935879109059859908728855990501904335967235187976301586967257990139157926384382822678734299584073905742831314839231520824458289785834485034957041524450233798576465372899826938571691851567821359090522780773835840408664595969878715672733704304016365047759264039523449110458954191351053424970544268595177373276401356582933538504900644135213063870238539214818759466138411341092148669321812069863692964560491975381307070674379015717294155614700082922788751945648268390805904547088794564972689795717529801370107117646863982553656051672953104665423697342110187823784931959195789919046737653353251919293024558475934692683779206922457083849702013509317271976772522387473239899067497869052972901214384895105482488223876258400976400769880626044288012273580673263674990992351733370472968361453044323449020218648488021269235518221774355132438915730305699591893236844382854299838020892356039115062048291387567325236022407934683823578489957788630101851353446088525892179588858481618628411133182421909082319484690553592015608936825361213800677309906422787143762663227852750421138128046146126012823487568523463823671442984193355858638361387886504317552590462526869550808529542166828783059437131967049778265298686936785753235045869782484627093587292563465251297269272184370223326806433304319715051659458706053765010871959120394230114500513438077766842751086839435667971348136943249012962534652669927696066598329466934848239349960335474212869918519103925321472573873571394054480241932071480307837088768407340130888746247939209108828249204552782951942978401254171210793303122090791106756730517709347460472862462068725750117228551808212556066257795699743588089745413355822516540721126285981963903936884054409671103976112688854664321571590182148280962188771104743960599691302631176267046970924298153744609171697963759911057301570945137530392545201890733188773071905836709956985421454443795798812626276526841736706367235144110341206412067933618746665559247774182215305961006220498418353127031246000733444416048187202512314975522621210665029202140955374138758191968902706688458469902478687297199748860008257621890211857348595491032818452289137579135104544330460989445573051267542431816024919652863629488607503210858224674609817608799190996695334844215150682836517449690138199469164045549716854644627968639333264062926297455960545267990067198465709219066728285035569262438315427849787832160139830199897186056751463277718040474179364469189102013242533546313799930335721452807732573747025714678776828860008900296696541496461725397883366803189910984794645508325080346441197726010491393587447151314524051526901648553651281166169623888919572754884009533246878501127325007370363635247847908316234870132521559596549749040606930113611284001617527338767676671592670211431262855252115170739553392445709856937101841741261808247865791158157591495877373156122682950077009289644058598221748080121893301417698001718272297654292180694010072374270142026331402765869562807116916612622187943553294266402867983337199430549098255904405171771014086902452779721955232847597943330370171935634289404730467613702205089518446563583278888048887131807339086876664981258780772192371334234441279202714021769836422579205697603929771114691804403222794503797224150432024437221606263789822278939470664311288193497013484867140641970089621255016828414096977768459899129873704021214604592052482197936454094035419243474971337344908204423191029773586193906996207771805705736713337769381794067135412074947759185387795515393694088204350833385159533008006983351080620174740114709529649654943744175785024186416462991457423040750038823348509274106371479218919059340305509979127882751722987784569800227444684034964058307385171204235825561117609922807089002558631988913138442644476037459610244993187996160637875457406594712468119435707012725046979019322000849579961599152920345983092137096709300992992971071276095319372002848241842324655709548433338111593078809499476435116987747460893211005577760336473504371793436676225891273618411033254938038684651022811661947642852582989955437839653245538449047208345096699272651277939985854811905061084205270201912655849917552185180552459446760163324238269547821060915248112986468331854973191914216107029373744457818152344469482802355846445517631534425123755681272017056154422965590200417798704361928156594652491038539838372774791390060531772391299484960883879409228505075579681804186867211358245424022575176682877973225975748543964446629359408235925893483856861054922137689862591661483082666631496049165378412365183434883195648441789014767937689638446856964723321532215546398073839202334320576823047610930796855371974852059921667454729920541163053000688775711162628139986291192243810329145669194633737011380627949469987713368325340261239207784030797375612193302285704412261476371448686392325794544297696139621368888994899593761012201212750617559217779870639343398224291555050051948378533618053964512356832708269245288457077107652717724541593152915008994166085923133229336144301754803088078931133309617089899554041090614666997301224719675535858647624100996214836802447860050936767848083040175259753788102725662295318128742838756178193014960157094944009144713501245834346427538729535217745180578995994764854417346710413221330880474379737171799943539870387087753534826902601928531510259614065616951472446902591500173823987474258200229388530524925222227460331373795866465011759804399211274592592641210856827310269588197332827321589144158042215811295152931623193136006958093100558548103351005449783905369852677013707476783793732291495762424349450282987863564833174955528683984030160409606679972211326328686052524409913737785581736006143424302645226016939332520701364654321913033064628763838246186027443973643948347590718594059231775247242745583443465500919281829247148896174291413754107252355949656722645500619395533796233549415208796496378197642991113914780759124626349154777905904114217684405889305507677044553310371993449310880084983479437339956448286729108403755231948024033246038572812121315652562882610910386547278780356514886381462721199125785165677532673328850836854073826543491940001355963436094390688439810407702793856272034557625517512848251633176752824917968674455333663302828985925725383583086097085642830831890874867633334186468781041548822387314863815590121920074272259505859853728430032021754917946531182626903015977782588466096479081052933743729718133940056535790285953566042711143260647461718689520079637147966995155162175377305081458949967180363179449481784086791857184225153782977045217134089384191829166121240464960267048695296107931414589097271364972086223813543421480202643015901858838285839897854938176537368045600792443608560440703590071015289659113416522892902825000183076851319036905142303606227756779552110461230265305169797193564576359322587909080834396026403320333849636457278826004477676584230371250784850712339772762686954315771132510938986628553568885824474308913017875245954251897547873829596870519742870343626428300933992115625467468613143551927067246936619044876749090324557933695396412481977553527003215048190243816547084221601672375036612819457657320387018858574000804276410277305896844637479228784679881381703642132654139741923352612517755601559189811990758191219223504247802375893506841767416824152152570488796569804399711846476546012731476226817987483353278194323645380784134485442129903455563956050656224895484579532968213978368953288403187704565503459801774519568582492958735675664494216027065212581011712701058097816974398003951503001819618230810075114113215566268920852015926332300154927288848265873187370044527169991465077637302568944207268619741914441484960967192582197172251373233502825764179816841369821963946961674237231522755023653725266847425522367905629196007107663912184063877972778931496154386858132898192024929326027268172227702103017569663620331406418827089667623065242660872470624512507160157067853912535676357577225269704323941660519131356010296859927066420034067458924943281419890999049873549781590885399374373603139207994705926780867384985818782291009992039321793165468465833466660884180882981121095327511343269513400429070193866236398989398583990106784074100623331168792610503152807575335589015939560517468889077868628013882483097038324340988964988842287902114943870345073699330809979323758489848957496423385920039081472209040745631205134531274560111211434985371651760667169734055768820173731543895585552641181627489869618797707332291656565548725307283076779817776477191353268778303292768542227079152389963776024713107802164211254579612803069081771932652771063596188802496911795878127843779194362863998507179399490828521951153171217274562775060982869518943821552206068633540575956837741648075307466217945603876895472682444973103193061806625413179474619649227469120952857780967415532745028120161222493521484349958246049369555442031821360941217560335946887739428342253659769240908655925249944705332880018187564341934655296813530809403539162742562316464641126000713756646808188238726614007817069918257363960150300771869566553545194322337693721838295493863978280431720478890823595177318651419678665255934230277796670298418022445273311862791842351014470044710311544720634050311315847116737443979067930209725041340001516683346447680256646271259107950279959239067361683818554203329092744622829005664692948261188480714818131616642955294759500091708242092339727038970041151458375844474618229527263732881070774930321009164355995153229333644741116802953387278926645963225674095407093767315108098175800179829421313195364772865575904078844888785596948758888434333635993786836142993245900145730823348542150707451034936526067160609019090665698243376505397337844090206772258812776829702868029054976350928199524678519002843910640039443168257808750994728030004180844138462179855472670138431805172246102203786681291774024890207195604347278848507088054015941828266087887006359246513218797806588712036838370228093376344751201594877298366891713190931423757359595362449191056395961602081745397782830826572952820325725048136897666323647368238562749026979449517192549909530431309966878396295444945224367434200221916549616553358468007424471381444678314973134208477702809630458921773517941794851551057188662485010836601346280949160634259812634433996717455655879208388463742644892101445591467990819862702641366783157026035025409021415750910410538435862013280040314156189481455197886653593250849000815362271027207460175769551160543267963987868115992799057355455323803674804228238899503662045755170036886855826334214389203788649078003168250628925015502081131260329062696531028209187971811788743626870834827643764267470383569942564410062356635377506336049140411164571588978167839437208581789089247353896571973181940344836113439397152117955875976025337418198955857047771170131897966054531525622180554065187545112920289735752760062303409436339518663645701618899718713334893430029215460803617182025133571976138323435691952296208612129134439495185938547109690782914917821823919345013278372128509878291663077359624955341144537927441975270436264489118085769279325534571241585631315839871110327126440860122611406552347661104983418625893888152065769252790559448519957160754431102756187921576706712633885485648202782750860953007349186112503154838116418058407676019728848950669820192272083862009829433964294456162955556844524553615974551878542686831361033367827762942534482435887556078388055318964353287786528057297307435818148514968019402498133766453559239221928251128516092871381355812156279537973786931616501150073087904407623920389607807630204559060288089927804246438673069696958530808909387494014351788843089389086389019373004029273495471970152438628207562658996179394124948670199200688186846052697926053230847654320879273250193436662831045277772056848885163771782508957205453836101136763885060198685683576478577696511058295809315708168169204427925697422822448125168736478871219692157273499107777546132307921601319206788843639927131800410990337097965423909088217289783099703613336382297488117323886179716050514445174090436105662970626750045976413160437771546401193157940645984783483172830998636400582269827524971782220724101951082635927294554141144604323582906146961136534693587998572447568832059475263999735997281984189158424308628418974920679807095519616702005846775653739759791496107799528354481745741382554288847305997578791579043430312877688557890624760387439624751761284287051535201475917528899070167230962785731777370504575988225729108458617895213581803984224453032359033462883796369731227137813903943451238747940189700534128359042143250195835754114346012965123339525065667255445162951263849969825280296477792358501545151846359841984188273218486021216772959444848787884897673554496587247739932751402911866060011975783750105080652595066431209234092901894860003497494806506840775302980079814034232462983349701603514075566978011996559531077511896682188275473688388096282565245668252200754518054931991978751491372782257119016849810043842609105601894818492691753154940568760907930257654976167727699485477375059947685425506219147998080811624481442161310974334887216867954372106838844482022298639847091476216906858354546217163907831733740078875098417363086326396236864196873562383099978431868861371799323654204579513317299215504070382537901777705153251175207668583762194506764493472637597516400777954835846228654088630037774157471580622696014211339348882423069080429991757979915473743801262968213158291266038774073806549438998219264260451377266493359081821504265160602328915759351092504173890753813951531724096275505258797006969087760988707233001122538354282028006348154678461404575263592982334285310518474527853665405562025924005642849145892167349294221400668637525161239342542449870051516180971519244160121257069280207200435054140760523616691316987908608783733226053569097753210792656464336119538805714335732237199663535826779679380481071580040544961422434147592090221913804486693210449853076458140545642910974886095617977706210420340365495019988596130435190449655249965514069876325604899153930956547705427900615263696155177172729216283014119576239356948966099405371967019759686998103881920474084230698794147186409095608033674726305046102041128648114512724496833796600297317225981786833519582984483404939905818140053705741212987570472318467966067199828702406334799473747701038493793696343860224985834917041694020611886250109960081321217994524522064987897177649557341423526422109908348399822872056198486944363610789124950140849643448546374251157917544223775819705757827377865197470493985828331302276142660240578285947712445854597613105599643966621877430714616157568032602961283141090787347139024743827671250340517635308155574180395566603293031424124830095124424285336022702702402412496842344587928977400256207375046616858279297426593425960727409121796397611559119706244287349586370329582926461860778061225834686478765538640175371369372375705434350337982939309410961886805126685000801140948444219855274219142561320058022401302074738851410707054353002680101773472851047624780868113386773732488722292327938986008760090201361961244595320064603263121883522670387433990815499552896388427960255437584774799075405757291322112922164891708405315863978177397881564152156781309377267467155680660387336483624684464761684835282526425546741572206359381788326419979388604466545161057427614798622110249845372312156423088652197451909743213095339048213439293269752525210157431801019592541325879581090278027719154977004705996854550020263007235377717197009227873226261591937126007325039612224310570101798723291131200927238153446201127219279832813798439797390009531438329345032613145357671561665266551356795318540729903770630593534562418390614139950624982416269070834442585320367866973227980328859940468151801827639991355170253847367753509043982370300799230070849005081789930106223702665196043696159474387603844794883628186107385591624435304138128033030526949784482113831277385067479736227952107847356883898300689586201997406561042632870613899668874849224327128217934141529828178956536313971596762227421701079246364355267998340885190254047672755757740014309246647749401526195847991346995996061592579213977549820976008540828937696235852412968791277515839445237476903628885745470413531769158868890632388232710893795612027703346867141909677663874827464819782006826393225828156796873222673595027624639910515817296618211700837540047249094625093614987587682144415526108840717527935184928230223430535864245491246341194989072011035162906094874500160028160573095609789103241870183534223586003762538794581976109404366043778878360325738735711106404768176549931709050935064919664969033873164392133550244925256668124077824505506132760798709287798984818602092174211516947010894714706356419175997509681600681208930795707622452740736315399886668598152002019365638700133598378410513544208887108552102849784388416539217274647855459843856299837604198328751162981304679369726227828917599207994148011579410383232043665895982102372097425258827689196199767736526596536296459779033720270064722947182707434695146436816182970498442645825913317910149518678414401681691576654038098217311930065371357366735834298982615827780594046460664173791809972820307834601492807007104412891874750975246891980645991583571364900510776281777549724925166017560826732714100637125239208760039717338211804858939539257501305750323489495966725304567408197009292016077293631868696580506638773419771291710017059644318231309134465309749759245904447482959039941550180879087033507110501358825447865506207520046162106140500017361073574758603849105575296424868976949062611653735178508502936527353918853359036354304446522687393985712629888822961856371150832330965088458140451575598848763131774464888529144324018396444761002873304361536932693199787013395945497468676853433840852872446928342055048093658692440310700578025085586360375741999882963087656634268380306961063061128351505167800843626870938956352410781003843869912650283115559894421532977227497043469420471601938128233065074372179576324391672583731530092109364212424819979264715036202368907954474040417930752315201324730951956470701762012553934289276883741004524203137860366874584245643759367332364297662805491798599641021478981130882191078542547499184362944995142290666649496227095584493488188253694793714341838920449300250339641556955831182311344584387522337254285251756913066255485516225014266784720206465172639979774241948019334873865306611259097971878506558187183987856985993081108929214475614050444654590617833159162760672433107071615851520570576777173348326155600455514890341374992320802966878545037766135752512613465863224658715089986413621958605294051234282369877465300152427247001697693670239526262299803923984247787019544003269256619779811170236897161596842530661557596292051798755399881268356222921383548663497451373652805463521819393225819602989710701474437554933638715117119418298830101268876051333247574168455321293600775449789127453513098844406494273337449484333205581270781891605629111776197708223350857955611988240601210404867564184238957607249487471982100975110244929853562268493989934733857508945972932646094380363204394321246911104078546330922146381041701804259527340563206334692283873148266168425610530195209388842873071073078084627947984609316914690418802003440656445768317358616595030007932484661962832303584045135931713914763127360004042909842838824710103862565599160983475186621736191685080415350843089001993384898807493037725554540120249976156615806131602911269334497379977226378078646646360331747698161810043163380627373304318938497275636642135235982467595438531709747055286649223269476702006038778678835032927343231881287128847324370636964619967460855390911506504431275017978713736383077665086861750729292232875873149856802105604777978400569489607059335265772700838031709909442079346859512230071789251987917074196302312607650450042934773920042683815364790656646586124708699469569152585948682230126747297738093744806333095273338971677629796813285533696418821806380061696311285247108106620666210266212579477688303799340905354859929050926693047651796106492070751572285383656659349497694166191967085334837146629202894395953148545136184908598311962554999992279672568989114860247265497597511476775331977307703388466773304574227296872958330878951551999641414047928023906019166024536825305751080444467350817470396051936121863518810896950841892520519665754134092469676634000730291054786821478629487432655439649676974131140113812297153864772300126748527765164352203189559179366881694481248584444622791010677705563178949446078434353756972296055910371249753110124712395445845630916058786230013075880871833688221844292394932777915489501500798397593602477156573358035985231098714240585704752093326874487321851728445558557112620490046436832348331999342541825385618303418505118196080918373957329119165465524516057450515839150674373397131377918717806216064859917824617258854175965439159096304635771489883702092853022944774817445809394127741007592336710124090999656274628756481453486252021803323554260554466049630851886746954313879635010706238748661924372249078284408872439113157912534301133162329021302371923325786970682307808456593089824022269221208173701971835728856253537204531386351328510279090346654238759238942534203843928660955807733352211256481284101535048912562757802004423350437017885499989127362924088597823506041470736904027004089873659212756843514261350794011749728849955414188733077190202014663563112586665191593553428547729919554111575272952723437764433016886860509164538046907348090499381998599329657335489071796329741285879762704663569808328939049522999079283288044642376250493326415322262410739513415043638870389040628038590345638883835595430740895564393301907843068165555887892748584558184880233711225886913685208340152254106822081249281175245360788432374696000666687710371208403674943683380679925567040144031519448522324186253433449534277007292514753334154749667591103075458459424142686902205425735477429052563215231136620053520198514669823846019537259640730492595425644395467206773031257503495614319262865450725452859412080438328296612843317859348715823057126249147237017630224677055609921762635800909467161770186700210498261441771684633410498596235000515686155887262493405730092610187596816272708846522588904019600013620423126003745840368374066345986969806827392163353661625026960079853322316083622890456108256215831182065442411658419721662624586098649979339421961806420489067231293875710991995468263187719189323996711348653416322011875626281136959313844971621105064898692991599810275596307009890407560659448851707875753733887372146935821969011025988315476620830956200989731620273697255013921125983178587279943210251370052393747686139722568190098019474893526357979147028853851516928997411882904909337791650319720061133363478610761120086562121047919533291507968438701565045744100763922385166311169318908409293479797400658763609220609943869476415757101334588687945266143676863471228606436736128301348136715185248214991059521836991464455250500582224340658927607420358599948566294023701888952896415973548422973465957763250416355694513189305504761099454292883866092766157518406255934805494138842329986694961572209882627027872685932836873780224011340200031368173295732454341058349258093461573463793605194508142501479274689188013595936862866210753233174946397185738845731514835079402023736481232070091625917778219208279271039799634248535856782573249500267663813959609144776281380528518457606372076707190175443377780778384219972406985584661736765533208088602981379327138895349345894272913600931867585738568177245102177523614355431910112683296228418884859630757976950037691860158105796471566969147037557307151508613022659181418793309625209334761604957783109732753322723660006657404492309594159193477710920553652008240353492036840659689221953624847640684671875180576929093443906328591042246669265241955186589613324229534398783891867112295837393352361870944759681686673750351652754487233780698086875205978381087500886267579360216561337584748552469523509078860994762023601461775362770211155639560838713847167589860010492797194694303601668429332729017574137249424828312360528540169389276154726437223354119224515676966131447121289200203307060577631699970848853318955979882038365379598476174994264732170879253352423933635358095699953296027431881549438168904291006691070911513615599218623748791372364382579519397629542936489824047509175785535809243358503344959098406428199127612921201580330844541920087658332790364509528420219491005148967156992760519182217605265660594594658402185120714734485694696476869477060266059946850085117749506525275240741417177607710224409090682833432195763274855123252399687626713184672217684748907747865376316349018988903088285330838585006503179914373453253263255223616791237963769819304828670353727084277523470485163929579808555603496333441274386747137682559062549577682802343018320349384163833630069153034241530681631862978869073648371688059190316700925387385439729209681545758922873662830153179282818104092519941604845725733953583220906451421359510667990459018076008491759975143572026873686577820657519085740978741950679746606520220972060059013493784578197398681746208975106090333895844811010214489532323369841787345438961821342795172592710811961768381831934377054647229487224559955093828224496210055075337101860671539559163896913591936199200173945430222323515802798511769570437046655612052475484225076266230099813765138545061392549515540695837289105045208957529197536156773637987535839646091637809651692503408991858622242521979052355468516101124387769941979832250428637181502367056781258659657905582150077412359353966787900335145967785646977393681691635198854607331602583673453494219902083129496736886894919167180506510758454561466633491724513703257109759562039122717747195211725314219918726531864521789512549220014994772332466046051658479063914257721800678854679267319021541909399297846080040036994889898762086285041133406535881220839806343161131815632650379193829367582225071248059358078412220896729153427155435830395358807124085222444223080630778908249452965238529198839869065626502328147152667439990707818718731624034435507345578536206034854328586411016347552819387992085196923420819698069213062462716847728259938294345700618980212488974443477010131028459528188056410129297593986682045061654164818136732468232303402353965323650453084805283729063930078272695050632494582204205542878447058238037342769845080831195064995286816550731359329076323893221761914710192592488148493854501684635676712836408371956052703311297856316849166602947314514139327911744717968039815349681241739956943368169223261105043514731826283148991477224636106294269998656624864959641413318195935092845199265208500827524117004675564852006169394151158423554540327400112858457386986863924385601838923971636415106595856060669345011530485014495975014234977008067905543945912467078277809416479096646390364467676410540535600819614803229581563508621570250263833250354439156046959850995394796145706440998457619576552629577878403926582623690813075606149822401553847721537492924815509898203003910594673178826636060019603469615499087848224211433452198345896561888743772873979902885894904268629751839114619348313796981137853298064339583896303331124122397806214617391957787257960297541803190750151397102645826767084499823900163126566201076093307777426248259555469948234466388735875837251233826994217307740838788417904568561316485906939846953474595507379152985637865349545871834005534641488000882731532682398198685613070027590717494454677370693253586438135019978090662475940276308772095164407155401364661938607358697201046941924699328155577139958294194423872997884902077476583981601829049547656036045555184030768907178143799041826466662599720374384571728201723568952365891556133916592949421352189072320101149284460445475013338714536442795510082932923155541125097808039049360573515284754802756661429414249214736993481919721181780635278367120340645769737462871409121367510914476225115251136416969744910841130178284485850417239679071428590595918422766811611625666390433689279872376586574493425830245749320928989238308314987038587727111590554283589677995408812396028694336305810670496154842296711647261651189298865717477789309584744909316112871248555269315046408442715354677511627973910266906810535362045085393318134699175975238007937634766333228157297109904476715917154554364373334963120956343172462705942824034247052325323093534664182630775605308615135113604390081104580262261613226894304982024415223024603867414738484270454431108720953657949844246625210783876578014867620676356517358545645968609959169569855928823967476518320412735754096042740729763609228926409984616942545304708120116055932597164226202565403923107095638283193723662941249009455631004673880711293150467689453423415326423109603374475592202209233687407249799525553932227068071691227709337792914446320275043714358309997507140260054609013434635329413075462534152931309958958504634199757650222481778950887827898051337099300882330965793699966651629664791430704115474007042687022243590913994907524244989611629110220299580869701392791929159240088207863177324858007283321751161287310068291896876163507313284111895903534819125747783035349930365545023954631316313079698377460948276202992667636704398778279597378572502035175069537535787312674631113638273824238250849280236693230621042233404879128411492465103611878598799359031820771398916376344891459099393276446365693686616746515201811795892563750363868159991909706644812759915849653956104725646621446360181959340280608336563797548759803729481188497586479388204909511739777768908513234860056526773811077580025261394952601087240976945291053679797675293733701730974213031894467077302476662194783549675523440503998249848444552596700031078467354551218424020623545037836567304605640148687044255155402861438442787298859494199179036978855992855149425114820947675159572754796396974196719592008880254581185656008026842343194479666767421711709613530821545386270520202001795342235249295761240809124912298203177529397141107409728851959570610276040646548036790035026137080086207539016845042196246717999506838623126232739601987038287090848475175870687478991240890683327521559181141248163770805459740713164396153477041576639984273596070631819038327459799690210680808375131883782804051335742104620966770653367231025177730039123340364568802124503574528429240201404326617390756936165039570716367947254850373762222157001595597182211234494728920395639396674353435735327650995238420316019986182443802713141331353787571200403399799352405902475130349440799539325325758975930058403292516367087215912439429993128883587675607315115248620586981048863333542202969700280331753030216812877158924784038715618047129335224797464017357411427784846218983184919643719911895770996571413633255488687036622423518196744749018118653710277025689501014813658719064390362747865549422422994406099811763321291653799236130844233560725311296438848308602284330377837420610584797371534277936882943427775145458283495287458036177570706467655467839030018107255026070993199115500578490837251185058158263415295025817317631130297143612564129704300576143219967092277016389058076297451569771904237810403387327796187407830588230188088375362344037679031683527917173399534241701560753950071898599492131900291137451015083818121474663249091668451739024373363583424433282300189654903912000489844722617582384649666669684295183446371592464132929665104979559781713944870738777885122661827820672947190451162813415000681561513151030515691754644191753078258715902090648069048842961780828026822698111454069357310296550039897374809999107932391988624478766431169824296755260643861836365170199700737996018362722495601722748931155415208523138441128435115052782264777564176370605396255674790339140076725545858120824796982790079309911689749923614766034656748827876694758527088645169742671567681143326578916541906338545528482472131044444224776078384122813324910986067272188961953899739826946777805509326684202272167848021547610182695718962318038038696320812108398830741994690816214540488024502176681984873295484592034349867432637435762926674847195983829416643764660942045002762827928466106454821316288163218180571567214890553622563096211335905618337406788871796271081504736751045559322577361228215816571523734904041288623477479549816975296034700090038011237791949548324111248018769893461641641840104620280139136911005523365214554602427735294263546659895180151310490298483923589450706603492347978100646592481558938400967932001847003974948693207770678742640405838121397048020502767120511994323486836965085206657854605936309621893442675362924163888599208081084820654139671707429052154846209991933607361853307244325775103007208561661312570286326296300109915911841275607130852237053185748887911430999284757340891075540444235734028900044232728856745486483769461340520012097581946402536480318217613692799599483619496423657135938503815361025888812048487552955191402136085785284686493720270712036308246310737496818833852360543348689423743521482117788863260655551193282355251185451359580810898662818301770224608985804261036823143276292091252712017386870367525213433841459919742407148442401491833823958901760278712889442328590908170818402250189536634042497160375876502224301817238612392330501150387031975508556785028712280959949298333828573043734274456055894529005965309568664402557340747671894436499156358733863972243939796222544675215335612497632525652090401479541023107074361608714006422496951393786345005768432157471621496206067456689126018324814791969448419713376201961994096209581783564070432421926201382631920917350987555879637388303485688416728560406398137137816865575932305363593374544158168468075560067168058081138712408865644155565131311561107716533026987059594328966532023496438312160536908158680789185672101964532002573940737875594663745719710966816435146867013850506667033837814114879634688619957492094468364824678901688707423592023054594707729311132048036049582218038081781227944528311937101683237941130390683130798567313544516850932922922194167391516936131651477857447388922881403061795623359541628765318403932069400664996030067848302218803213104427203612489520327026193002621120401177599554974006731419555796585048774668335285557760421720202730767555923574947459515164180075077818077626481354169500254056544608540247900604693264108301149012481802873743560936336615179648109789697881755714472275605927803029896975602002041840987094134047441067467897276821117300712037159182083345156806171808278529897342920338270110983261253052937909884973384943549651288651234382017066909205007152668372428737912345636219832312692347059870455565571008672567423133705091690393091301615762052497503827748984135967514988523467865917881507589976777416569117531677630329831698259121120220036920278575127482904836304884922824391880289732830571999460970069396063093145356424511107746892227304698402336725665426127826982963749924023234933715666109811879249940070309228611563456106888882656776382193666971574906603978515884313556725013650936977268737564263773699087211874239277593617536905250471764845923480125534645763068343200767115589029272465524416629736130115604141533409335314972405705226803238391099203400646752500877002637935363282351664512352177249815138397976412403524536280159975378053172587608299852057257958134011380007733332480821673072545258735975850082048107630764146283760281413893748940868714644776145203077167517159868367031524732776343441803212356532952956485454955471901704016591846125287501614285796773493117223025347397382271556951229170912843039973011572812599449179926522002273902642789495484253183429326287064386645688148445339017543728566600727561040380381460195346734519171362902921728816725368009468848954155922806614859765098246810018005145026320101958005637412877187847348702911223089212715481352026198930409079232619503366959502352277068924421241287857564465206329212922444410381036309418491318602235439625902937701905484874398598195165033679395585848665856304154997562067630153327959528795759197045952501230025678628557548943070259767992245397097994949981564944100125873345888957386618878417027426640727823298668385296146389237325372301380460353662455349172240424406204156619967791422670115228353655288740428303879939171913367458926278045019637901094310765166181812654270266426987273456914135897017966891154459338380561881304327130133219174829981876909277937396677106228871673449002206385689609140805468864924647936222059662281975448966337076154594760993520094857910946398053970523837818163549752201957403598665745424367507204981062783420050175319061131010402909832507194465204653410831986561946167002015121590993074588617341723720667756872807956216241764130701951191767096658043668473298460331651191216453213361202733325197187397547289751778622331846606118711789882617228064259175253832421359500649616904319070090447605976188285209467323423197261353847380120899619241647829696050559354213502881873154916971120037058823753653293402762641952104281237792793094539214106835555115031937339611258873835955270102055494072660805201706648344049892498405448853084243918412867583899529650832650955257906735516371534723181987064773221280466453285616486419928580510082914978827344629770274552771497525991349923745119853544179229123366919333098176595069432853629772766035908312556607436135760457083979518554795353886434329626367660860534449677250327538896086110695876514909616520178751924014689859415638536714433226255362479424888673306028675071048277118673162260759218171472326569054680757405629246191724159054023069293644802543693755811769158120252359851403456668440092057751871403525472314464447335927210382038964742727647283481386956775596373806483537420602349964945945521987738518129578214201589154671062576797727795097149084600075073685714751616642435534615954713345904586591805195399025259747984856270803983531657233922579616107121946176028776809533523639064365801752858080731224898832917235499959849156419247735952255850029970903152948069524684839661688914145422441712577199201851447458248749524300824701362092627860221256977318006886662769038349469539193514575731231164073688683906893617589026770086093730207749005988963681837371884049868049868829019218490993894842628088337236580892866198936374300712358102553832149774885252062574212177581169244225820021171549552750873153805367644444780107247049680043422435411715265565904211870738124404118058109824528851244457474432791761631100151418489886959736896971189216244439154329919949790634287372386922811974351439448282243577695807069755333269456152954124250565482075045577724248954635147429051981482727306756773229635253994747155882207161548028741197511548980165217985849533268448006540110471920548173301129389675282378488447975337533586768941524958823418338211167859511523968749162451601816822695941180707456421837478711993413932273689882511349915893314255758596312077958761963689838181368153844120967881493777131960716590608101995992545214589504484635901369993629385970060491367351480350396111960262698795272431009722298208972129153311211036297256757659314589368104330470291541680885800704202567869996249100464260986911811921333646487050664889164120161380130328161392096192368011406210062728232645831269125840137261265111145280048158533432194251866304109593393479923656753924112762750297930513061025252367203836599568051786158688760846002663270754055606028727374178860359058246247794867967424200802943655707618898232086268423343306980822845451521058603496938128252551463223078074021283079850166850738574473160912985146687854546269274098715554832079405946264400171939981880891660120942010904778967197169321839726943498829217097532316277708886232045295522361208735305273886129894396303379359451998609058527041262910566633962508623894243203753035786692605909308044600973968310247763238112135300906353318499036372795687662462502691870513647284204129447038090280517187913652205504392915669791434964322671765158106784141689622342509108802158642704541557167301669055906133916868434017461952532242123300780036386336867040657990370523461493485437397722780048429888916265386607761022851832855967355739737210783802133308374958237357277019330223562086715254334929171188943805546217284312794289688966022633317325758939622574113502410391377950216021216016355605667945408596889232022287683762567889941943783615400417938794272451393242932911921667254462465560629642370725043990053081634953811296762962410672333102208940521611255900917376589118699165410836453942709780780216164356191655194213515890762462980861387663563631521169196016015625927275678079721152389647773848329393974162069276532154742612009485012143150536038399845836444761284621961198686727981708559641323266132134876358643068803013594723777462403757909458184783445653569683053967704063748763933855499553418801530492512889058812719969523515245639817916918548541766493086923734960519586085001990748646213489656839296173513964598696432160855110571327739450518836200583245958837196126748778131934337838039273331022264530127392484993183690808941321092317845232815393438691558276746396695942205458131551247405516557429663865014535090083670653887990001325073726090222863418323081934474562185760559300130940476277036702181883041057957426462107980993273110368248566750940108851957041268071828375468338783701682456282400732757676599884412181125267924582657609507908749364643704217692786222408844711806308538699604900794878672401432540961035618176314217394368493673622089644377882694776513423307054413177350637662521108082524124870010743318192307256179788302982247449518129219472501119909765649777791101456230303613804387046134308882563997420169122845311711985463286073532867471320597329046794639261435260724669058474295445552141357915402650864725124611649147579758464376859968663492665718331671863935762083689640802733759253759058559460931106819388295476569728650265193212039768781146091559010563447462151797519375360951377780191633708385151750740019406856764510058661694315283006976809641811272319843902628675432538717496367865617200137822329726439965477430773048559921966483393613297697370771123963706871117882827609167208372235687572187223470917289459404025731291619306318001831125731930358488149472220757161144358035154704816193529910786790702142449890389410285437181604875658233486552607963514196809760975899136323066182732426404054334649416557138722496086785088373995611798305254239956857107446047564374354835315231515602368670951022303993500750606003685761939751309668285419408004631442589950741683906360758912250693076218754618420394378263356851488382310451261547193257330802502790383079408513071383020294622111422553764659863348947090036333805393165546507529482668037532768330676570412255009939999736074103939574478374944729188936064476877361749176249661911028372569430228458130941622453054138088106860257965576768884016917040672752355136936384276717539050294737561854665492328115405955963877660438135778465488842195743137855285493176117068455192786019285975559750386355630871306586717762856211285584059290854644172041818425797649906678443215913121838603705322283811551289677106266053887237553504868454151010680763171513085350784252756145595175590395589885214530191775546834761158589299599753115538670690768668441451190470388043012928848083489393731490079399819782764914422908973243185077938165019791504372902385225468015192084532892799495977949953369768213792956757340428522311153762232572056431932993983139113214692094101680916864120198370144168685911728801389721924770306870730735525039951182572661909089802996323642423595561630033789960929805182791448906692003298897680909921879643408068993876526698178123671485601237672433809504632871201005399431417674258125983797824602824588573334995521581519223428101405741823244481824771800811021293718117377601041319421596647383184505571563263482798208767126970294758013680686660443563990534872270432351045017556332892327094265867611819528983722029477315668545153114243851008119745727431841826649770347893972634958708291499670989609259153645046911527948222690896133933020737028081689432431567302204603487213120289281307983115416808780023504210737084318066401673558148127123057618748484684973404717838985063688386804007900644651552443781508559036237336956239358883134166036411726962583926763950526952390829097769646937079209766920734871043222083209204692406573875057967935176824858841851514943834824712378300133783149409879749882267704290476135962664898019540012441169761514149074749513502486733557246940674105719615835434438962662651381768230181601692401018277455001565317031329388925099067902676339104800749648146266690847950415880137387540516060565083153706522119108920662889254932518702655575214884751956774181188240776843029429415820874588493582843385762787664030541351942358029901984749378920278746701828834190528838320566463782726446349410168611696957360248070730538233648758787929449022749704309292837638927784967532142249541935337735533800140969378047176531229400770255280776602915999112107451107047452862246857842390449669810178831765914610548322056091116136898020222179791620463034106386033422325861543522464752922363725507913303474310729059414209002180722153483951532378166894063412092426774868342042581909127495244651240465690792292686387795925714051113853304723778306448881628882670764773691425026837332468415461702704686644968654872278721115265671550048679854453525597144805065613330016539359071132821815857041902869250634775262653941751975735720940638830142123360660728076068192456062694516444472943060199636883957799501055823275897666016002160106864214522940721621671510797840104381188588763844184267309030813293390195108518585924150436369747975870263717284578506102731913952382123874042511913774267674689371709406506723368674532706238686974112383836419206733494813368143353472149803199963415694010164507295819919080090129396973505116313254505424194376454859216949774028779410756154675230676998524965176617758356807251641678145663766190402160649997444782715941288594532114359050726412589162049132452717293562850709348754022575848791338334106544185233311422754272781287052125303437516792228541879184908851424471590577554171620633204786358625136754781866479202388884772208670048672229391648448287068562870442378952348396589493087377944577148828986807034369105221396316819022907916533149001660051305974779903331226211945690391780969317270182708693384229144507172253025775081477481388059125598199848824723308168205976923208132342774159493518244282921069276650442514915942574227286551575612025385001999234327927596108511463596844703329294208781238984950966948003186812242059618931893949941089557597095913557982361100913116280044556872595991964256170990163347853112834883806398161018129428886585700299480241804309929759887057945226793599515364469358552315691025110125137547663994759095042950795013070305057206589215551171352207063537047285852576483390862267442905971293288782723752355602163824968208550605025203669014567328146359777850422963229171573910755216911372548733555666606665325816728797779937266094034304673205078579593437053076317835513947899812290676401418051697637513907256838094735951212792580222984894237514378226816554668380546738539494097269483890654780558017319766542262182912382963928981170500932097950292160068793483135848543674050505694886848104518890806808257803000805710781120432064805129907289385952171844316727404357862293608722430360280803282561283370282648331836516798823876177905904963166752355482425758907043771343302843962082436347280196459723278590311870627405096998192294070163105360973090078416002314536460152175361503833710290991323618686488580647526258727090356504801470290964677414242788298057103005276882117483938735956134859990477639793951148983203837860370704136405559301661047874159324928829374392301189681099564820254377011043895047821800034851092287654997624404688307347971634381921055682847477061711279932781509572991792804375998548058953772075884266812361072012868408691542574994815269607057600132920958885795724967889312026509061872023364294804765414827246014500874698593431796016260083707468910261514094989641136905690357315332830102579692303338672820962776891563606673759794679394961028406904202716305086551075490437542834983219456922859766257668060358297143288971114111418678660825030592232601983234356702179055887875009922711700871092550897857202811808235550685811669074681091891902428765911254029333825056919678917240881551766678339904344061580481721116805279379308025844200939645467286977680810823554467137197253902778293265878822765247098927051055441827260185144583864960714764587074572958612121670469260729906589554932344737321055463563434285981995107170858715456018390266448886686759219259701919908211937725521357275521659483399912907918162100338538526977877517236887619144421292881466488928458364125079140246111092265143300232583433326769794935423857392452032352009187702174478794596017712961871362973478955480284113660086713496352254954614528534638472217962676096090076316700312109485319689472830962162150260623440840229834261457636783406096114062199099279080066059208500826233147300330341246856602842901762139899378056446577684135817867017811971074492590898518071054909946508307304753021288826359530374089514543739548087773846464160015508339950087122737874884672272748021012388050409310627289832331725701729644910248246869901270241041610874345920003688522149894780698275303796076549087179860831139725993417890594368320785592192649224438953948519421642964490239151186906862578669009427445338605420827746796689357022440487085529210415459990061360688257997939624798322805615232938284924563899723876799452443263948981070300039728565290351534871441250236323976165126085699990082566588001529759138860424911552793063939405590539120744076870723230046438861953507092078794373162519918676352093595016230159644657111524836738127071601630215748174134718290167956189693605138667268889932978056940058268621203453330953406201172398731229231839809812756126898379967930831750885026341341122720129676284812625604199011387449949319204734256702517197257129315566682050118240652435865632993820710575681953246142170930974459929961073224080518556660704550632759599276242460065718460236835349929664216074404383342082697710717940499059268713997793253754908684515267352979514267861590024392439450401703794901529588350139305474414181925334057282053551300639453558947294060607697956425492085903064619120090323680188769399674328506174497199014322014461789401787413293888074515622903746584181891515673561151952612435255424876582001872547405870237051643245399695514575799449964191355694950748150678139673915627744356011705672189293767429162743032050547312965895593896049226518947328167881560418101336249218239403002218590243870203028394845726782909711553279909813132365956364531272644588424173627435260077158621064622990039278061744017591261891105155374955225734421883740784463847403198658026708553284566337293683782197144205843248535926632374507014446530138952960423521275768879675762908634163615414347189267818090985659523436615566538234779055327209230129949029795828130473916431083311102592354499502591825605799301613207971736395740402842571763238381703582719840545383195059327658733707927566227150499415124808807051609622453116005519218303994751209066437273169118994724901193146535297892682069061717335167892873541548025722858909661308386390452258220249953177750596403519133565123027186805907093968079861428283627245492882468305008881610423970411438983807904264595084956262573686353487460258380972517459327850313146812480941589000517128230168779540248746229545873007255004099825470654614811185005840503887776864451588334778381134108012663773230787249498240995463096672181676886228519853530920231916673703540601524167556729671099131797616337459731128481003959067154921614287770167774415641182731826377602318805584099590020740339307717964915361008135372030212078192459954284955767366107612633557535477631068629015949175819142672489060386861857711547236435977030532022242824951724523356950535169687106601050954213050426700294106914888626287583003880902118511521716806050454814673599853414908159254911019345431314964657219181008217579800649740482903109560161323331755877525144930552129007319476152888280096941696924291634418855374044169761535949028796611594149254625417555030468940438177406221866882658494278534082555566129699353127134537728560167268820303111630404147421685675977223149101267779551423833269851019590661726792915949872259579069072492688062282307157170529101295072402074736752280300922528146136696283402872815076823839620160149844328379581613179810113387419971702632729216225410021488830521233915296280010245416177942506990481453380743617512179993970333224331724789306429814360637908765915077228154590247625370255747627447589300792728597221950906684079552283087043368421484981582634285275806609600726700288960047707597658542877051545100444916426814512489101577124355672198317757818770594257557539085458626374374767763424660016270152564093589488193309943244518504596718046618262166164828780143984381648119602359812645679117556357084065832285492195910194487578442321371695785252112763388876524583474728567602279536274904894755085633546792137404707183101531825332555051625313204002379059232075237107767457975729198198722565036282941231630348098116669919491875637378758183888622638346935975948584281739883768443017678985815992382949553984599819035369189601792160328862130645322837122807947454844627350935028890163231522378299192167074243419054966893440970011593414553679680033080783136546081199241025550787168479985507504307676275137273487808889707231992890925459767811426829263209004264340510601753782734425740390458377248521204441840076231676780839551453614770279380531481834260186086437115910253760106715492956870809759177285790113217206273228744475271208597617663811810593341681247684792184317351945942584558093582484311713684670075126657234240361341788791997811107660361679576280960468930829301933513262629971399587308856934076040781906402857231103632059120519465030416719398129981169152338548144232561019794674704796905350347741743968633862805389497462296782562064285161060405587533632153250003690658077478709262284523445973121538591118994116999454721642326903514987704736573438546963541538364130906537359443869715457890246001084485558746298072347648918299383271497425115476487792898052179186358717078755478549990147765160784495156407927378092906738110964421522942075383339025037973760895808072208983911196160902057420452281098269242035970278286274578451045901086850667229112543855898825551206452767083409803000875214698223485532112177367006568747867978728387096137759778966374152919381159862394910517140372772279832935190169349288602802555457546672155284435134407741008582367231288787905960995975983892865344379641625673091189067523376071635951536050758077437865678022654604856787543810509416724894380503822759491195513805555306598666104255354389736319763712437824359180117610703785973449047014761983823864186897143191441409126277183646487124939545608518024176989784792150347338248780747473303542170146420493424322177940612370822498735473412586240550648515354608574915923656156711166015996557319741787090974747477621851591951545866740463020239597105763479596146914700959999872707741665383178387036253698867069596021355422079720907201345977058557263046111414736800730345428094989159855921995561339795406878431539351313623958779160664755488655205607822911740504090703287915674809517261048031569013441423872824916245466052214439770387038575879030145050569812488091595373016117908683600819524808738277799132005971474086356203567607046207111067748889653447477524676186405935526109744966912830314678086418819414883718142219200200432729636578668335963055035039786006673189306137597321442423565241098975762639453589538137607709395193312821096290917594042248438265309588723242362185811976561758371166214194948266031067811210806591682827688946622430953337016447273104111602026217991020710156099103960400675927270073983930843112479368585479479549677969055885401252212376180779133691038111275646060750587939204787482449275131352510610677236892238860637076970934506209400340542106808406747896549086907958594657477877183646954170513807886139366543317115781958788798410300528994633642112039095681576036550255299125977878531458223401899847838450992740001534347620213952263291232557889835978806264694730135987019951654202295314520215345268894228821659533518518194482349781053121151485062486783772439967980657024396623092803780966662244925253683895068021917163308180183165734573284267297297598194978317536493208640326468496845931621925497423341302768960386930910867658383985210017156616069222790267840344830899771130616114488106119699438479640100365771291910886095412210791928449760384647344466034183586915997386603706538746833964190440781126704864089367899656492680513724737714095812221467213398883362097270548510144623697065035534455733254407954222398357206545859748643518876110184204344604501068107806253335599430324211459060357634446430545751947264349539154833472484142755865020752600551428823385825477663291260925983630320536487228506169187823865721215028317163384060177656456614510066317910352140611795608821075046063185278955113860914405964732931663231237157724903975313629966135477284401037788561676775342160619343904424055619374465162486905143018893753693696969324018318938293141330290171206750759350767045148626696630952838716083470111252793260274480873668580124215748383601255276991463680566308392566875333344560701737697037960532200791374127475061667128046545560993186499294472112849886101118177116157560562517398819307661574774853964677922735729570030217017126354699528381757623206172156548247145732669455911230217340562792479424235107296043314790687994933029811940125628419856091436583868938647975955808823380929282120832387347939974639407058390602757325531420008049233600169803402207070022765681362886931019387313969959455362847951658980960244981939520787760396888452173683794467098154337753419956368082555116300994994363834029175899076464549953560696048540519095819590518450963314263285347351889743653149276398394161429334421034721052990124660706243357837978861750382463282827605346644661885893595473029745763319357207253155254441481467416582702402246649963718893945031324820023373099666443419896756583543514638877237015120899183327161394014384905579338717567550836600306844797534458766445407507034867507481874395843260855829752362521453388969717285126062762632749006063752597723919482871675044533906809717940743974716561994181153287020474906674535336041538697391419771495836070562140372513163016009259902549933912230656719729832493201099212666446430930109414783335296530196164640678783675421174875660822496799103038303591021746734903099785211768166319721582853508489186970640975927300472985542128870196125105821950397325254644641533536755727428917181092993334887813524273622849940431837784675900976652877745850964859478855076763240792265955127558888569179465756311928634930917955898756895737782711904422926162320071812598915709758290214504356506806481278072311170659390410883348377157166714836582986972581426747133447069466477337722702108457761497963762626606488510592433543030276947639604618502955808779428420068336643367105902305628091042201093181712230065867160461326400038388668027617541149958323226205100380647655995746362840633046140075276515685734357719224453746821340794384839388163366553880050201192416563577426747616245684131519817132877642302924968940129191444083572095027388286292654691845734792363919929446114452248484534999682257829619650699191352283289326036159073621220438788362236457505324912644859266264741494425556002206160419953941787149425081750399238740498971920779593648854821891233910982674590911731177389071169311085642166664845289655220134136242157813833599691021880063432803436357198814625247683111006899019261913344677029354682922797768495998479097339645352481037569452046733119948723886669198720528605867629794346952372992858379041296807366493940227270413608909637867422507279467052891479722678987485659285783462981381494510359426593891452667229086782113231439058232009439328967137869896115623925471461622872723640711733486531174944814436060856913945512389156001910511317727606925114523043735664667077883828675375122708469029035403806065979805146693979244353334240852795686272152560786810816027403851300181981799086722376355258894510293302624390966979183260217483284782687932979767926938577148101350963741942237242082362006029784937924768737047919583962911782911650110068842034153034140883640625001892572193408957757601751328095622625019177937375770081062549733696820616895500030330756470479889315610468818057527117843751289086323408027979641762742093844134707753993626756815706632487498878354757568202624301483900248920594899819002760751544453631715247380048833972628089898907472247364715805017735278371007277983206670799559641873902235470902601577950384455737718747240128136414689605262543078543335040374853871436472903449494763665543671356623581464918312145291456364510453019976569220640166995355614394570106792533024948994370318215115270326031955836968293992443056278692050095810776726404118225201279870945894469759060541195625734678835064852709845639491072645658533185596751969487852493823683733892046163665468371207400700076169517951113220812185081444023994478225008918783320264502440497846839135674438812595614082148493042489693321753671723893373577378554928261112809369326478039203978411260538791224960422225304978214073716755855684412723634541836869214365377994931926478082484451932052834225255589215736920266971126087213062430996239035507340667011653285554062584120691021420010727369449030617676991976168850679371653231451977988859358968866105474138983868785893844358419446118410126237987458279982536968924742880959098282708152660950853011737673860409964035903381739182609068225897724678688085884819016112347209175730760550032179304483258047133715140889854193902321178112369576153100307435279333765354163334951425333965883815746110318275929267086204655399132622669267074787487397898345409100667832778340038334131508018872558564539665574026446933987674673960407101525455350488671081010584222041379195512428756835060590124126929549290397966042842052858406001544829010374577912048405392425304119246207677340698065668935758386209912035034882464971954027639590670691806986562998168931028956454693600320821888108118955423476859035040887429355473905000317672715141275030186412125887477421616526068458236746232362616807725070440088088967512738434936687255103037470700587345526511549020648331788440733160608092891061359476468994858653051603204622879416174399903598764175250527394368250652787137322853983572360087817006911617705719898949205208034110318643857721425431616132340729822294409406537947809865231788765070604570769289617176847678806369093264530178665602743573361382669150886499748640548456492330132814236813680341634390701084833561662846548172671322985977975725338471147782637909472296073139580733228937737604575856099344732820185566884888582427054224521499884008609931123114988001425468590000312178617538904341268177057669695910293045507197182830601989583134296830203984163449762166664182545592109056434585022130165176357630099687067936289120018306463178639199017029797208743432798994892104672360756626134769272193963194268095835872784906060346247474528038022347779632169873700567050631596609460050286939534789112203394104814987087636588470699793509466444954937465678106094573040372860191136049089932566760131580917771699024718745849986578601105221186379783362433143064462306825765197211748728973704614450642979236569936211736895997172218048768094537968429819689463825524364627491548305207708311054363732643805913297176825934224489346858438097539081010936248177884192076648269591648193819661562774555273578562869063137767492961059035674213749286360028091284828727397723295736685958286804070035383307810524500402326120469053181070124337087150415264576317551986849007050457538987558379808378912690351487937209987416950308818654388694341875116601989471596894903771397664479227258228050141586669704276002096040694311722678311247148487979012424901458899006562288674211137489333136498473023045091351725805263473125738483793436397871868355335615342196722620302585712262601082037613297261764453808601048337170764550702992684621627491549163273523955238151262926899074551204517786357226369155941026474680769645423177102408629850726987069925741474341633881360181761947283470693788186850865616715892940540728288494166193649595658436291959121531708006621147234154262725952982716016079343389519158537123372277619755001150511618927167924955428587171743521468652466565904390709576805906437274279441876069840266284753442369520482145418543628916175752767997842078416535107822384617716195327510434347278927158313795886439370350070886695741250610562011597826981093071343743662269879430914743656939032538436816833934432732913018492709805945274115623452031680433605938851400327074992253221495244325229938074246365588411523688322019700191371221261409561349954964236152981044284297933187687815167381177405541987189273112658897945806674269610066774680045035746441312459167171182761140033458353827803769299256485801627696192341733589220033485670177944002254327573146099295745209132279664876893665670680773320395742664094819080222113162609403998195131062126734595053218592163458789383964760532293863178816183126766684681394815184090138937811959985739588006620321798142623363144917939276718355701985126987872173632511490266351640659258524675274355716267763320254897661460248209307747239451732017435487797207655753210415696788871241838109729375024628285503399788155813711191515856608506088112664878728963274449103439289705345113576099447790189662168706055242110552224128525624610673251110857855722198928919246900987313390209588485706101543977684487993495558283388344117152630503505733750670095762622428133713854875663092449109425240202444953187614273861275462970470267345311202279521109959155053284322824991963128324446876943376450408584193806091084855972104498344081085451518209182125156535527994733732433303500633250177342860168945947339807750705240821646919134580523521142279998070590124010304015589596897418916463073011308989308936569655948996019239859714417289722184914715202157296620459575620645868747683343453666630261172999478826629091676719661395108246930957430522336315075048505781930515708891453932137026838988880925455944663151704931396364979952339784930360606207938496279054813075754796442556023725534745338240106020260418937781577940000862550543805301808864047386135674854899831127327597289456216193582621890760271320756221302994036709732112402655267752269173472800245751783460471430944674180807215489730281917071778202334719024246139543676940710109480329599268890750929465652036491891667594529694955268790332341911190087262734454661870963782484240420745453758689183093474991123273190434766247179311272108190355854710825477576177463379628554738175892294568919820394049969637417815913739601333581627682406161435645047258006323847826800003932525235028161402462029779365838292894642427080196379772715527266466426035243424298430425729288761720049969813021857954071240764701053084149061742720952793785743755928626420538238460209980560900474581694643056287333653769560956605596934330974956222304606795540301297787535054190267552570137317557153490163541964216489574260261892405221786741822243728316614740658898097124269075427057602163382709615831317839912955257077504744235098965737087057129298614871048974333478332638123181337019755978459161674101609131714601054897808600997168976844095229666144917124427576797979190095453817092023889663027248046667790656794693299211679644999411032194571396823477050919179860663629081655215975326600774496235117613187166777453105813113904954649888294285296306315014654337543066975521545025853544617694049876336954983968038044810231356018654492042269645122693776091482793185111873339064469640320700978156974581829370178951548296821633816323646113806729320538560235933160000750380833808207529480642956758255293086172067919446519714547780898008704811915071594215933807753101049679105919695965382908712402173880641471857725703939704345438046228949073071398038551834306976739075440830190167731233664267398854564104658454702281778029892880097479545249233134065610597653513225614933131144141484353863635209308477670368943678401219700303488831916493511079471532485328143153731746585764248432726518762326704634633261903945973527664327536921021222638650473479278681742221372830179228972743455260502695372912725304281765230375735543056530598079536517885537234154210046862613503072467193555086558784177640829250732308110930845280802027663437451935566363136948852086136460807984198851453387309116649233016901633283139315590885359708726531461691004716897834743302111462626948716693495881799044553800457893973192031496672496298881066772198859144342482142985597072467332917026051478546129579827845682385398422581250045647609497047725697044860248116134548323171404786892063707248701374640528223751717005548008867192023235964425680877399222974919848760935776149339675554043114231740664275320616285925353310752057974889423242589306231990072391157720132146398839586897857546536119563296786209157146734810554775357979854805059120922908669422542383356044470296722363955142213332796450901157418206388932044635155899384858195972153365531892171752275492960319331506242853405154857807470360740229432655805150880702226309285353812241115357072598650432404309178501707305964774255207263263939719793633614202720466432271715113251524035622398322715802266929273495960405941280273938069224219092573910764117046279481949699608478155166872064202025921052452776227322989288257678179864181182386841053943902781431332946660373415948567468611257992946029533081346716913694161008091725164430381827673778099259798812425981523358105673929055895000996433507149467153467497831958609396997034960384854124279526447955687913460275073653634750186890650204760168133865469526942734795512545407620434906399548690199735231422716404772103171816317856210042134364338201818975086012965571673354096405410544087400131176634950112247367107138345649983993777812549570547515754297033263797857422087455841049355740109502408061611351319516292861406868034824804026623775583985289323713492863441659589820586656149693364506484249344230539969558896624091796193920122443621739775693855083586327278603417227217057767029759041971048512179629086519483209540154993214517106662060994944775189365178409852586181884559633882969789891161610703142744271207137195611136649311444450017599194490732696914048150701269753649642871662295285269371313863550604564238399050172552483709333574293992648955611806622361501607134783751173720184037245088689034600764125810144872078058146062642205030709503108045888482627039949058694643914565485196526276526662286999953888148043792579125940373593085183217001534661658764747532168015719476769866434494779405764846469261622789045235521380010510997166296740180238392003984399503467778364153921167639181929988252329938809030840900215624179003378103866811028305126032011755551738010104920220848648354177236115353557574903040708542510653918726916913634012518374967378290218424785243631454806816248503116040468277235941238196340083665114825989651880857838853345933172254912589071141718195885855198190824096734409711134617390380553515429834852611082258517878610788386573479293889535086220508137569284686439079423006819454438712139500162653619459057091620635744178679010676245929082864636128773282318932963567624465186752951227442320404987870218096548211087436116713284575255518727973297216372275919785452754268935645985086802980348462508063172725270056531976248701649400695956170456872678786054743726669882715478208075377718799134333418663707739113134699357780194086031249698924826545835712713965053312058344121300757953046694770210226912919074583795654533690516407188771145851405290343832452622942334920619073135129818018320360421144599005915761424499048999722505496116369491152874010808501545021326489481603316092088306773462861778855641315291211667805663498398627299704241080108821098584131928846499584496257232382503698677080117291409493200908254707847327452154140517985430343145231059456079520966642769070304743049325995294784602491737121135594104611689847193605995862572524131359440637158253096454986980492245474236559308682293527883151794914694661845403395420762450913672385089357814750975943622786711929165916431214974687858356661530284748832655929786288249296355020402486806795222684319412321446934312609419236789024588534730474448893515993222191970783274664470599045836813669564914160069250942384451506264335642444540018620588530841081426634129400298941186656375748312520039219112714840934578372397940025596086948418247453618229927059816554665104167416430627469062525752317366349380568335445996316156799943091244236363092135174869428326736929718044837404182820552718863507124148735436950232049787135833745801906768020941537403996025297873972759037513670513226059701788635929152504316840762508328111508743983715162104279653815405513063394199349156045981759286671975453413922658232656174808281203067646714307456378632563060018952259363499028298591133461558721305468443816490437586531416044376951552563756959150458237995806339384611039370417965456672183365735589504951380584910105604738646590200672374806859013067103459724116426448791638267615203347051897665524194384793723819813033942154281401892587197889845532301331251732253932979593772659641472842227120775313565371349160358813861676282989554236725982142981366559486528665830192200662437784070907486964709221642424921019928650693643385176239179323141342084319410272014477357851619020893638796398585723733977908753191510528754105836628151170728507190311055910735790528748337503131324122220655272576045252050839902462305553217241175804303745275329083940648299700047514688474414861420876079841033489116262294929005484977917664218507836258522258929972704572548036402754314870867161458692488883948242774002305815493257617715626472135449556638113149623451211306808175340265453391937667827609977869217507002162717549036005715497371493480531454886009702392819888034701706035464784229402752879066657897816163935045903523993312267143390564569041487747020241790472253427383311845738255014190482065132612079507629130768095817925066820305058305252857952618136136004785684517033479952886944229828687046744803689640200713091645751309265662575490390774271787533797462467283725639509889062276892274372367971585823903461570974334493193353052818441500456821533450038117343018029160124541499364707942734010092938887986469336390196406646356755670639302387296492018770550047446603740839270371690994603994529179876726497431684162675107098174925417381753075156931869288870920734954881011938369478144823893273162049443047113062172606547729728002519103934296924351003978124431470048035751663637660420840659796155492362624352990585751632626004014363807014058047560649717874250116904669168090651180082206315990314206889703883753186708205964051779592455047468497709969066004199702796150087242258432360667615015048517613405808307612961149351351887972855304056703325672619844400516060318215152606771208313105343968457841369185191912860623838900381241376978462414430964988641010139574582606843095827213022402269833692806011468160939443468973550704696956628352532650829477783303777034444125088928148853593909400344820850955177843155449009138531998891106678006879109272739473238469830198329409575272465223851648313535827034214358219047227867350252159775763866072697725588086957750334185073309702523176895366319514843599054491861639137888704544711439750443233515808206863403320649440023474203105750747802006182491611215253113666098614365169271176437736902174495528726642949707018569916155028203297974880493128662385238694256074414309968856922793077966156650354856810614937978091717660008958656494162664166963740267843428892953152310037189350141809521991395756127660399544783481480014911847346736070012697486206751476929688545652768719635387564529464880865996660305401510198261651653414155854633698793014731107796070846999813956837619957881689265491782686177764209432759222404517157240919421532059566264277433286241255675081274620470485479292125005424337199562961272644335067546512002113458708771047281687920213692107845037695905634031698693077914483678830609536968315742031257452451945956195982116373981318449555346066894058105677525605487023054041823879381695629528781696753615280031196470114627803569499838011222468625595714199390388893388976878557607211926215752234158802044415035836169362956739831028608450395353805169627670794728484513846727874254612650882482807329947167993531708508708213902232326838530038572253268915696901134210693081608080647785604103302290775605473718337125722115133519811615693489382023689663867532928701911551656000890450793583785917030588431314503088619149239273234821449236744469291691187486779359293540881842742971612668875933855328420868200331656742637579954017511522969482860214931943851090646134592959084847327300893636232008800846457387257881971068728718229231251311350882132442544324917295097732604825042145706310447130534638060275807148589560046196586693645153275047296384556482917282275464791745033615085797549518208566197251305529630355291513286805650928821198878473467671262273690008979461047806189919737617988252981048899365615128392999295981300110089237485612093502947827167364596467591450441357988755774177957314503688041189451802493761692594868882473504468638382803777387587963656226871330083615322767786199111615311514835452563156563842108883186043894391517177947454561105576341732475461368117379728857762520210081614300153249437850575779974152059452509367130622021858643766093347304743072077567312234865002873366883964179792905675409560552519642355044106936676283437036142292554729393008110980810161668996762899167803677464565160485279824152307994761912421763196019888414183930154714459740507686676779738627996056923732326168971364948650727740832234681030847176994181232766599269057859916525873654169080944935967901955448380270242659724651646674084802750717577558475286351722904922848179639019102299446069107967855750973348534503758834971946990109887838179417765931528552035801286778418055036927828119964546196300566893830850102450638061599008544032216110829438772136469061594158091175926422353309467823416393659580227291729335471687231885874179242130341447404123884190897170014333507821904908255545471073672553178186169724406128937748469329543791811281134142425434858215597316975617102239010476147694868502847450453129023737353749090809731070534542972264643239578296319841640655144238348683353570249368985691855943916216047106746748408700665948829691745799150750717680302259217077356287377236704001758973416783194467114594351885533563405826035309521520758169470743324381446205150967575570668707332652369822275977114688445485564722315082082957875065826500428127404103707612602601435813914119899316034554345979797133900531155537449568255217502356022632054609957115763696777720634437151896889385101757627467680698018027617366990138229088161792516310082370357995439332771846396269641425829193796466454777991319948789883279298870644323462251561238589763519905935496695958241264022021641909420273854845615726385706694092877845680193292197598813888535703867266167287545038545340235436704585617373669316415639407024751809901313390252550547931291059648747452121049376274850101750522736856527918718222699744455125601392140101171790244766539103525655522817457801528313371638563089217339762755845091265601393030017511564317055709724168988377939119034247905683280884399279517028079193700995249297111521416282567786854510261637390842321166526404074899689632167493310137391580735927548593106009603097918339059906239026290671878167798027447967759983122065429802041343213185406393296319148223508987993435279075931110377071187605112882555671954573826320066943322844654520911057538759324260821682534832954285901506184607120510588194713477621956159648435985355357724171475546340200995157681315498027308535148485192008907869000701387835005487472287105468216165254242089099575074784868302136527529002628206316273226841317818206157228821595827117009463487095762644790867271569205029751696656351510202811455718768638101022553149460052547229870450861670320141042698260936932675438491085024278638335765314297044527517628431031288157979616481773835835676158441714333934662124610818976416575512160295299554575854033393492180349182353471823296976137327385870096868372362606606555370754159960676603434311900844712925607666225154734949446589201399610889074889945375486394669762537485550803782200887977194812854365132953118639728525625107484603418827406724487081528036479372130329125286928388955241038838239143047723171400895021207003717234820454480207745679813583825879202582260979611458775508467205944801367256134464219735522888965690506690978604261485156316307837844613529256300926146286772033288111807904817818832196245318297660588990155670181795412908551672956824714066472163404684750481056499776615477059738282537690086879838544546973913891463468924835180355355812173503460792745676291098106743506530696407718717017820259785240666223838180876143293624662366782254335520915134717299542685606872618839151133047204984266725819233235096879725491686884274207870262413291054411190394777420179305958752048941501691849687283405634789274100599724032392000013354941330885166682122154453946584449265189082216355375989974250090322201756321607642861774625765934876849192975243826661240920696084491018680824627898352449252445414031094162359610394243571080444347474550804237133730662266973714097880169620577698078111025271631481882537947356973775535765448840273489563759075560989745541693270983660849341823601570028337805572322983712720176764105127261840921987236266844317084384317364853803446299149282784244905513339995552734313549657102182514074520103376021200459022839749590146191584532837571649661377139616556650608873604249095207188880145764169164393396254485372704631265577757166841701772705189189326734859402527412304808198843940319644577553051567967245313843461171304522084208299144407931823451650704398872169515989611977261084223280718357066177894403091714536697058117857651910064087403192317222895783898659465893956325328069626160586926026128756655177728656526988952029280212617847914655864234334724780807006261440440228998392311783416636270191730329930108511442250576845321420944929765976193067660915285772022117965141145517296276545767287319988270065420560569168032099367558642884088380271729505230198721222459337767133594516979811287242167627710670865030240961941452790935089790205734239784253792905367568293728935378949997220950167627992734547455857518573935571216836317988798671422498750772514646894109381391509386078554728057215213248769913926484406974611483216166771359782722378652612583403213348390747207124066453353999742292071987972185203204397508677285962219531346651835922702285037293113220202923073486274912392410042635214859958315054101132565176036260083401238876779757191898090329839155987425647082205677436172288318718678700311495237039292441324928071223939173298666584240916038901554788175980158770523243446900005217286509570875532904429667614413958117619213756759642247055188781640584217820281360348236089375991189933407643604041778150991651999539059293291546475969102961226868060861327818949695633068015470219496461666166064119303020788527639661046265824047163803411564504384586188694825186512914474465298519769882741087855724078555944140939565800992821121577339592245360857753232765587619429687591380057405006126304679317058652962770367903353599648783226258462625622800424404406025010651367495677836148384003540734150084722561131435059193693117958823392537159573794817454954171804952403053665824737001602524652514326343093997820630779449230944771283517707767052527354746078658183601383484123303561995747789928465609944699497266203048699455909816927257153014553896859275351577353476313333816709206883748351333843621021479399891452249605569509406694112537814419207193281889695174123884440861675288886551137107586362807202559199608991259258274625133060445215486101614665554142200046431049747593849215226874023288381186069672876594344513389718527416737669182768058887381561949111401310118590177177835044655727747830767418527888359123999973326810393511829258606951631191838901365790437765212616197863562928871679821815980085188241023419346137269137053986544864756422541376448312665435974428846469775675904478761865602056317025346901712146342561787373372942300134993158128039238375398347668414808735580074582061765644836862083800915167875403751943766592168750609648640720129141804958923363752977233683111429612803863659333715318378232868927848029951655651395775557720645074595763926504180893896956671947957186097487163368606528238809015491155309587454150725623254656634818714068980780949519068033612358055526165917058880990162157304292993417964896777968346496937494408398235301490248808707558813723356123666343596071023332715576744021308553244421821084352161581155934572473333919176545403456237308701259097474408078653436161905862823740366157811796856929804963546524365680381016369138951547198767085548484030924251338785601878888801346551188137791323075408328968257611643440542735377817700726179926192239686421844263534716886436652713249138908367191175121566607871134465994382715937821059814389265640972879886804913848162108928800468277578686542774028776408305729741347869962171034640187895368276090183387547042368700545984578265393650293307228974668058714119514067012257381522217527178965675337730824944649991663866635788569947110552089810698442106502295964955714309408155228037848552258217232534213941385513346355825930729056680039502784128049525837752174466676504292938292538507317690901979494426830966133725589171416762253442441372406731671372963977584437345754645842912259738914914406225412444374755185371893592099761250436904695152076709209846312192892970608991316250523231141477063242103893874261681230993127617171778056336046494626864978443111349125773101527810654007735194987164402052602532364288643753105286181427843701373993879601317330191016612667666047348932192419938383054685338862917549332590544622937557548147378213936616779120396977762151898329553932490866874610983819201944445803210854568431976883760026055996308162555128913339436632787715943342015679728256995134958008024008205503524940946648019367594614271650256890395171652957850933974095586259877112255240205065391838568383640263151397660889678810040579909891195574794173507723233793600545231130886474598131130883977459479370230745875373113218139056010751723846623104940889345294724004340629895004282697912873463106969036947645460437741704199421489509053956839928696873829632471337582349520320292089209235204045235105966682418123961700451545594803641707668395274755789403948191813770903857810112255192632820392185536183384006517492018412916303053687184749634717734061415032521594856962662801290662813165691762077560819643294719321376726830833398669890409018651332243727113979828296496385466818045070255182237568965517972540192791114223426718617103112301161085520337248279985708871075355966200880820733648332140420827738761725789831518827506536907773484894728915064282750137224993980061196018121376673055421636741405955819995247256512588786867224997610500091800515590596005034079892076753813189660334486135538805551198268934477094952214051628116202073912903300049010714546213417323679735742503791306738260982503566050303524110564766243047826153338678416869391004277980444346205010951399593709759654299059473615749802096539664542294770887689341855432346216939888305427088254195868579813999822272507329434087297342323442159222875336456499380382839630691268059600953020695673081817839772731806963881782820336883372867828319951821621080854929811730683772504802973079180065889066394205901574412867570892145413299568482937774806295576813413759549727925094774218777876999493039336125970019880664655386354598095874463063165680859776836660014731875323775958141027901371986136172643978955157281251269548773762253305275980550343394754867764492813394837872389302356454930542587654371176015245976812577093949289381244112530946141153295655590637041483067265232769300508692180783175321212937114074682282220185306911058785177061104115591376832721032499695241551183532074883809069268529533882308747994636317564690740546005184152590709293812198687260116106420137311101962869772444327391737515681638912472111233680740230684363485398679543637955006085598779960615381694756520904584016635063878188004308012548169284066639823538094131579517381116256903192752458840117718068501456133925430081150196569511974422408959339518658679019669676078022354221516835429449011589741028295688381220648784898353452452627702401335928028024563201164957225587596319070244028286057389933049467204168073801250773059975400706791710674152353368884794823526847478676800756030963747170630011278183268546522161605684589896176664423395088630357004751559906461394390181015611430547049893961413159063272920445035758765768026293342783429877222215585489252581856094213324347711202350373265049775324339821499536576707264396083125502614716478102891318954887206329441133732144627062503062212954581183281927447357157381240737308657322754598770794893789612026191216757179039276584463271939934792683169860545420252138484586060814502503984896003561289447618377564082981628469051194039070301216861488210257240852695251338489214701498156594957975271013390056422033961184046635664463704350734089564361606354837968880465217762210342739836513924152602451024207106816857316381374733137215252998410803993873109635633458886300753186084069973582238356891392685200169201669538142528252497880831593385020200845386542454973231926621916948582689260162587023799155695212215530293108001030749431663430999655277755837594389602506945368469813519327255721794016262527030023550516105609544538278975004386242468620334500295549910977569614489372880234433179651653812756949782021238545092037815598350414436483091874101332341978007857903379549084598441094202201188866562893393426966386965984245153452157843869870244866449031557395393335160492752957177125733478044474516963704125742299696157724257605552170471845394931683060601306118155046578689725223213505105811370642040895867347255071404550219307011361874998404293367340878236694701809430237314341394857213692077857115630963443663540635187019398835597033745823193109792066579281262689835791814328517909735239339870770103523855378201347250676158107299582828605865050766015436000465171518304774914814481594751607043748704287067075924642055085158878357508045319951685709556173484728357575391736204011828557785927744335879472958143756557831001341206717243282579435765808456414437986536589526573086634606432236789070010326642453096296413776428668257575608036134718835673096429846254297064137285324766642542576728755315264328087120104154940646426045990996929133106423604282858385775108616566598508204367320929821456239421372650251212231570221758171285181167191190426059869606905095195383498317528543359610293695882880445438972782736421559999080501122649285462621017577044861256202769944070377104773243602752600021550111015228719513177808325918903290397784818068595061251654713339712519733989567596465376986838097692252697865010408161198012302434121395268626583799843602539865652105372716279105245800449937235734853739430990070220022146048544086255301109469369251128120661173260899922972848623364142641525337740010050146947755807925483021718096758745023363135738120691266781939222773774859282505652215765201543187991955191563650276189998005373072472707175748534085784740812689434609783977350874039371825106767075843586618218528625872106666865846296909072996503733899825788359057496171743670508449585395934202610772968766072561860123825540156582747161537662505376932000167387551072632438863754311113271808145010019534010973633833622867753693888392525653729278232699967096973597061026940428791371482456872313731532582398518551259961841311349716619491288958773902711482890842800696821404858294710417563781115079851981980089993480255387510730473517562014755144333171906314985352403731097548467937145783158280127310717650763890599724708824834602607203892492104011844601380545079868049176761351318947081394343161703696910221047188533363212624034984837627314661584878742526189843860444424164344103565960646580248500513512103090508711540714042921022504083685515843435571341815774172133119956646317501177236161870992199573873115989383039132358571525893048153391642039691229232556529840102403832124245960150089690103959758923571506293640385509906608941234867866633836579013047258595743215420927352134658828702773844896977206373481705416342488177219783243355594708700147481620726753837751085677080411344874861400340413980850153296178120934001336935713385597287816714417205715366048097284589995399032353635088107240287934317052450008383203658877897625716132128149494649962673523783198297203913456947997538111915294157740354208837026582467780812913042834883076245135721323889332614192566306386377009381197619597099133595985566800661966539656654928949574858829468191778609018639389036587354806380872399419051255462669204075748869880384867780418971258820143064765410975331736402996009853076132718051606292893292921065731075557577951506959174251323880416783106037924654455210351754099577908315004836720203631987897633157486695120849838834073034589902698568148520540064172528042798582169672360683760668975573299531741129453785417971466230209525374560982778410019448601793047665516020357856739420980682192671681562480746172401122566916647187864807408446786549321284151322562544587339122512797867173670549263492359413071363798000703177363139864877103491366715818459688622716215374919114155226561828230751598229946648900387567292176070613322230426920633447030711345077680521824465525084581018348812135733618646006915992629388620896345273940480860818535746066034784219946422051553510332388907145723846874405929864824253188401313334459964985449980613860662153083031359593155523265805728230086723380590924587897121508873462729543859202750114750526672180476832665654015740196847800585820759162514624580001383093778053201670711372021935262973085000693997127547303765915594846687253812228892416201859968396458576994166520836612196325036348786289456380891701024855195494482637901858938430111813213879727160921510378229109488543840742714324816983971447714574991703494730550523193206515228041712665030195422357056217071880739236613695366318617748350269997532699234455880015729157373707513195700522929709674112562337106686060663875271074115378387281125892957298353340370193951441032472224635830827423041016074743406886645534307715472572066292003006070302279556175745530107930237436215269223988900001550775484061362761571329236510970755101716363233004755533844107928260333516909570517049833472077915009955390614688019658915494677574991085418883757670683124654157933466921191698359476134430310639511616759631043013792594617620100024849870863000637428010385670435551099747634281652116369733782660792987724718774904039166808083936111928254878405454439986500261620977691109993834717137847181347228306191703979028451211294485563397272485948959341677422357598414302070317680209081371736017789061916562447448007374341309311186044129737836787643595422210158031542621916253361197000974572209422932562952669375695100174539840328627994703042815375216871533651604011077074230402415191933884665816476600868091697825214796194528261188914966733951712637225253547520505494185474499897959361889438364455701331054508693304023633041644709110401971479866527605697639907776488535273143460951340673204828901691594431201970317395236454184817331479552369850890667352107479331531386798454071886740478487178625248986472812372103608762000960000235519504805347613490607314884143232958197597646511398873487892439253881654666360371038100100936674143519187561806058629926898239407863414990006903644393331451471643719008853480155912357546705931383175689190678596682845910696223904539677367319403228176051925617154339086114095739404632670502552150275367728173306126483810726459881203474142129529617489643538768242303195293481569478840444859744046314130902867654778351459663585520693407601687533863054087255097674185570297905062063628666122121955781251871346703322311256816761772522591905992595385919802230416801102276403748612640073007933505798369605669316610143898069005006221173931058093186074206197698919058105584299350087962506664766954395854545330383090413536683989632968024481610703310609368386396784038708857524482074346501397474573529680081232407545086409903706788664032686855411741839299550647303076982180599157877443064991387033927670179474692873042770914607440105409976515638766849696269217360431064924249167256714647050096912079005303366718588192567637000636159315951402281510173769061672445648670412391454513986563774739449890175522777262653043181081069987132143094528699339225656634097534901418074148910804935171322309017319241438122344518795289373978132410461994070168979839605694974822603611457637551744796434893372140390764494350690305730126329712024460905975401898219285894946589736243841268631072851031254009586960709964946609516931563441272848960842789370960099742526633887966576763365949228311438847295158754700994165528288823581501917567837273365577054856699556827236847415838134825842789602722443144054308360196073862170290611593592491813657246622572657793948812454236977806633009107268501968723139049829940889548820301710998124176950107742713179875888216592823233811071268606171037175371559957084861917635365062819053213460520448216710771451791742496540799768703039618367750274203111935606215535512590045770634106872712205125126631380206054511156893160940904171783653886788897653267612019111771949394467223457280233326815895179925921414682455529405257700073639936502444717697374946370998345693253374945479233480414068470827509178998395456175705540208825805371367705289099691552061711586123798759674963383115718967603268428464895044159411897396363878229267657953841960228043550754220176000661694843212136499312810719390919078269455208011476651782396950596771178503864842044101214307258638916773651504848873667317927597914651741391462239599560463964536113872528905357011054621085291653844563900256067694348818553550140258993317858459613665068528699639516624477443187688024541349192630322739396381022860755340389264948993529289188165635069347824146633117919627279947068226841764240232885394071565618235649060884016661194925557203237303241620649269168476941795897705518579407040288627399428247446466495449807183109171734792167808352193985358490784832322657544022579063876981263701519669466911789728199861613050156436816934848811233650397392890852550437981083343775336052718316496269698233924338545898319087491483654188094458210992789343786102099645939054316116713446472033791459785350942089760130961857685207072197225911767697135539563710941963895544290423931222350065591846752820957158662024210398886582307177121191161308959205267600316795928615970811986357167270093158713367920843881106848139314882665627386669803932044622461999498947850981368118677817331725915511814310625707367987553092775572944118924208937749345347752603206663805441595642882762794799787384498003979575961529689963593587326768179539026641813265699766214342102394929892726541876223443540398645867059538060365857383973382619713358930135014396413620838774463699114504294239036113181072465377619106801447886292693329406390483747127421376398490037918537910436471238075558888944148857002282866450564188801734216594046155070176589370477100374069227772722016909534748258798958087541676193050671524426717564513765088169261183997481099455543029683863604298446875472314786875206732193054097227280494755586691731629665132298685885041122353695598732120987653945023562140908261782024030563585662829081425001410184032787954017452023822032678985973921160194475545298119579833635534196107873513997762609832289674265300299604596619617040745748375451729006450675347658876378596595153918353446432022445032742254759830515980660894112336871026759024865232445771837968861801656476695454020675974627607474374401824095380022673824133726405331716262702691734091143670221132804557817100010965695507746969340160684519208263705022992757885585265253963224243835740705741217332573701140461854528969804527163834262628263371646400714990889621372903698758019611521267269242446444845088686531404838252383414788580137788822691758261145995915280933302920295912747110847944882541999414447001448715639720066647770115552872548418016910339872232239546511466310440275603799066695424045762960889980106595703986636886009611821648326692953230769393600907858605654737321146693497531870777058216650799794986707688196183469253633090966840139295520809518314613978051409836589061090816872574915333084142787592408394425476814565175722055088856936744250862976176899288135481877570966592590804862393319916047192174792840127864235703461278216499521034605724249481993091743533329847976633407952698882312844652773738069506152070383814773260558394596224390774930542387822523639388816428094442582267978175805959660741233987388647779411521184163681947929728922515287708909182612042909528144349857044265147766057148814874055374181902557842551351183313835500256560991133436259863146799460302288222288874466680852479299566233334364354145377533786949072124125102365129320950502926980308115252643574868069321114591528300961872786928905109220598014200382308391682618792511060468303130495470350948391044364938413700735312533445159691257257050001328258990073636817727176682456242348088528005670727448417790057059646494768451558577512079028925804372052593383176480076125527245849739075167838826794800826144412749417174277297431161897450744750794201924462219989200813486962468713715860364236504092823823343847527875529991435019847305444092504552468578167664800487274678828690289400351651959849193285242443674667066361209603036950228953653564785479103910362761286832438739148657828208218048865324513142126380761717344530570035184017241766216635700828784555843912752660354614599531354353062685435015799100636755217526893210307167510751826781122862944962180484807918855977510792712507750639224607127341433535177641720735785108316925763258454152672301076168346822283903382793020158407659372830617808335112777425562259111823510290731795458100377366567346861523940041321206021587119573489239911649569069522430334635376872000052117363410418733591555904113113337049845415115227022727971405232929693984051594046746345627854675053505432412759414839465184082377872190424818347326017350894953540807316849227818341048949786322383009192759454110084711563326857812296257799915602871797902540359463581502730356984098049156437179525313895294035800399158909198827656019562513908807589209687507317563030543970065327062435617197693883007943081438872079900300829178340693486080786112142699141955557636835456788328568670619279563123820825954617885493109669937666664844770410959112475264621661159985776243245901055250432199071805731773868116927890701013473154114780204683739058046296500624725197437123780348766058005316950407541560884531068280809402887327764702319801468764530339436443601604736354520373583415964335699783206477007434488422238097126709957094764569739946316887575220601564740579583996144313950266137661216813508423698503507645375960129412137708507592140838530196508132352860493534836257624483593177691833166881676508648515979598008061915915718879673332599999433639536571065196156167607889065315835490846132870022479920213739702697524974825275711253236302437015929118048089926887130436915015448652402116923829730599083559917709397544132509812768309465174199178671113242459787593512163657602214315605820787943132294018894474371373482292307096664618264220188267396358115823386812668207961912675718308133375841238539982523216680514643463628603978885502764500686103890555911264360317845053792362282807278511019162912097795837264997962215871183473459717129584447341468071111635203304201802985881095831757410001863025045290941688886649173706906477321224179513990522271594306577384370163043142927080654826006047691534934975986112026649684321468203502601833537824704326248076768366749385713415429273224915514761825263576369170340895658691061593124350435772266599990149110487923080569278502351113445303097872585110338433874842080171491263444706195621695624559788378124008214345713090923226282391475301995367231663965103548743784248597185147893906239624538762831878751116315424359922511423592515490113668889027723712639305034671865690178059382167265506942839141093514938146371771061078369199759679319209500116553316262099381320798937622186453819818303638509220035511281941476503357102259066347386376340003627139770727240444606291857156538407302560325978444400214504925609231182987714157050331388570750774559168578327041713803237567239336694751983959528100986642455027919523882193826518695893018320807668272592656146233017219272790156000607685437392151249118935758562497800136246550665504747054921600056678882697713429652172431530505529363525010570080339998852646127754215259831543551333985325390946804307665078091106650960257686497233788095838488590010454122685964757343492017050114193810586673320891426218600542350875358200059793076786567870607400977741712403680614191058215429191654766134122255686173220592601280204470184434930585467796475000375307151518414943875090659570190880262077367416263339654813774746682311683538463744031838833535056738203215422760140096032932006885253661796068932280971551170128419445797961768740690258268115755623053173585237268707470349483168413710048304881708192929882894059280286122676834408068953146174947137387079222483113183665304891401753964489403921374267490521043092586136257870189998372685448936204320079808862401852303081092526065701129002049871721792288876182014217956576538257041253237308872639075012370722263543002716360119053594447821653946858603939997918504565729093359373045597772976335007423825180275516079813458066175329136469220730507748302203153141314853324457496584808600797575921689783087754275079348211716819978338275111607814515835983075795067844675957085265763974314837575906621817897123927660041889542105327415041199864860885274792117746311860875563509654139379068408387339631806959621534077392662664535473550832540441499124739042352098527164024026767199658861765717686801628362531536108795178261932237469881357058578687109056735026877475520470501820841588402262027332135204925426869799580091065836884825590206342840696854042565755259117107004018379222944468114835577814068855241670987173829673723165541544530376805744720908624434242391931517523007749727342607785793028165336531716386200825701595307258190285808322017921323698071275369680760521712429456585445287814520950614624496628442990807348932788791662426322192195340816921653074086123236233478327868503956362817125745533569414020423583835007351203866913259930602800895444586170896416224776945261956702786855955866351864511126782159100785133406215985554703379753243005493814410494426604062775288853363905067136456677166375279401514933772364331449162136818422300202248249189059426635194875382721204955581742323317016872143604622405168625290089204661837157430809458516706787627691980287203124843066311323958159783103194695993571762199098561900980594829350031128825595560787162850271250960755407872977255746985420524653775562133317160847997681653166939674957924228214910627859290885824284426682477600958266723966811860244455636760577387619914550895808351424401094249393861605099534196813234773285648067899728952413697754762943464690363265566430980691367833615741163755847003463144753171525030073776799714398232667075505957571286721564829381575834514837611075195599138832311105517110913951545761706728297239823345250490920655551065038892567971358295555630954192385848523678474706688755462596656933301889429095698927126532256278680022345414771290654776542410434799490370711169615054875718364627397872807637522292224882345419998038220607122128200304181103084346351081079326634632878633934008694650877983276957913423431399216761780746003064115300109481379757106398584929056664459275890993204163198762863648548550873731658748809580498666678605783179643260379320283746741388490832076568337766943651143361351836609630823147333223493377373863421571128569804343114503881723100651536442514409931922750572339957739384495277295565024347607558488600159523281838825250885607912110548569750259864419250690299814964800393481110328415098467911897898220846239433647541496835979732425466156246341939210471818383247887042678310087656331167167768843077164596869202028015487442930468616521097289661787304385697923056166286322407789136836552806031540284609650478331153770269572910049764107007194534985190060833125599930238016150652642008692799439061230526064418253297951572860917087775560100461587606260741655408522526467576752048491352804161622421486183458914041960941257562095231322771672508863728420993850189781598337973720090682415506984128221730909465776525595920902215033540814795147804635248465814742217899764950512283891253951228459188602778874975273513238353798638486377939698607569878881408503157433923324283706646747748331731327054572518875549296024827798488601749751666139532809557131832858454330095203203538553077498009220296081640297469166852656419514843752271102133977180736327607478606889260570452182517923806437782387962098089882253119780715934256833319273605618912156935466076670003769411634270662662097298108526147479092265771033868959537797906783172509430186265298276488059254835778873817754112492869787672137811955130626231125953306092953225321852021397739246344781028220870806199906143760682637543959742506231798385428275606262051507476186429491865942437328573466807624928970368711654340766380079221206512029632297490284244374340960968093121829477166053963033356898261976075587074958309800198518952684570176491203880655921984311741566590466775345661281851912050846361418005685737876312463990828993260652690927886863627984456389551018892693025768415630920981632103459504501270125714011912591032028662252536419896220467587455582310172914136084828877864925800632517610678025614853778107576143943284817157618970995753398799646191112376570837883688131389471376517439405112388036752461413849496441722308989657409605134112430408953338870648157534034067276168082570512957872764734836694473928807334225481191592912635302808309766145765075874792477125948558531572316121977708570918918145369164100641407212118825087233392731757389221004639210098115142321716572885608140592288024884486992536392356099668881392301970778620682470710964372145024571796950153911486851362960857511618573191274933483426363046223375601843279350357976468181161257270880783715113304992587428420505393944264128176227531357682036060018205802293462312988251334479537874443647721092047574118328413577139424764131834612333637442857168740251632481281140788804227233318507253654611905963432888267016634469920713273474750047824611118169818264507914283265435955552850362554380793633810008387806400925056028776995497798124257637254480642973423060948126132363958970838884694467813376416167101947646054847254979214043877977825488620710056701367897828110490362156918532498897793767927755709800566135181873286489300462310130533819965115296235056570323289312334149094466917931542911383345914586109296369054783493019319600415914325076914093287893007010124057671709623852206125626679029876301644254061880333738697978148128244750382602720387908836718237494701144517922187821417007804643359929909994087267019254946192045718859923481592184590897975624718681610460108262763067656642067075294190441160673683127155275561219029066695053394471429874803613095649596677045466793200052355111951407499149866394851384789517094952041950569051913403386758527229619354578454793037187366748458523710244971298793391441822328517093601683217831451191279549069904068082559796679889420435422241082325330290092258704736027990137487592359139169283297885768398589191496689802039279379848082474927524682413302392102273710951247871869042204751596055968791079301778246969418519887066284930871880010575677998113193049004345230328901808202840546376599553375979347209021542801359918813797425698958230681589579424591397110948488506809462931433272446014570530344634587609098236892179935748899926498539316006257177429707977663574175682271979151035779576704703019940928063258794262288855991835137523237350077309696690012470456974198924280851581653848172419518881036799705801722672561159773958897271845003966211552072347524032461166356977406152611407301319120473213780498137719253723110031196614660999731969025850537118261319208404021046613142438394927622574171777011272004599440444593776780191764031689425253483573991917066314048840088321234410089240275864509844509907227358266983937805480821805952357645679901831730830559430048817954329063315997470928332233311559154653582580077212229091366228827790879682237328374551264731924169824144599518946652543249025742405813780812185180227940542482904496004820158908339581999536786064936372805279710819372182293891543407119735501262401679420799155853442299893389641465312736668562640346891721862644087108643200766549227249921261059025434649273338506763085107759902442460971591647364761409633977558816274072623397802176539520109427199833310572702333590064955785948275743290818688010144646439844262724184517045297021131249991605069922704415937205884986677668638085468377866768076052865091066873571684101350155401532442790535032176472128127729156944140726466795059814651610828767572271360413472570561544256555803489914603982292975082843536222556498336674176072774978761851616324443175435738434732672291106466784474969762543818204608700988203071779485899716488045144921326171376233018009087222276619794494849318604581993490731798872480093811561183775080399909108596499875382589287109778901099587252807504213559758048668997822910490114978618621956527186675003955470638637953771798506000801285772459715505294780698971664406321654101414716894066868269743796934553493402528436527946851177194483824481547251787696754929210907842475438146728282470754972403115559363995527528152889350310864173690648490896433176792727466130870308334594113291067943773965089326210436804936416096395599754290366943831020900587264845957118923120628605639077357000912632829240621814492699092011461987516903048857032961588683625669696177098755304214932841956959284511792447757582182212230040687250181618207383949558171826698438703150019909239838295563101057366814556397630691926001974079268276491217102638033873081998848286691981160095436991609604420476147813702854316414645365362005567825058894529087269521193233746803218025670367641193040320335417636470015405439912480784637743979343543029162726961937801985936450379192353349083094832830243213855213521117689131710262664586401535229766282428244083238876584836447088283764306484117404130366260653556101003238139064352012397435039920680326172380666220027515981167937433730342634179012302537749252857383500475145177725502698951397464174291074920513534450786119089676183035225288347243488919410366507389181901070893668565832230296635525984523690883392388407256075104330952435136096635843004657919272107177992776614311060848029057983026721641638407058262475017508829735481534542696402645791849681514988895836757923719476574191783497364124201980819585318137659329376339623239099766056925291201371163287313732907388649712211623959389894716389638737880498341965657283931451566048236592479780431692614074181760511065277801356677492448055790202650279134386275453667646305289968764428013034589110151030974724191981063072024799437737469419244710760530345883924492753566845623280919848366412871229926508459170575271661917186574228875943592479386768886808095120054235804933614314920137379384478300223284047828929573992749075658595393236038768389800902975143763889813261678517219657695778067500368352839100841281614025567877918791798805845336919304866532615103075732939464423869619216842256210758620113356361112499472600822316863747006912676613023654274681203425249244634231427020490762549736276682526249389885878984122957576074857917690601449710844423742381593553508507851092243895321709770186628051317184877198672829278300501176694435380197277845823918240655648402202253242495279757126011000920648485156844466807870138526372660622587951653591621386581457896456492757188448180887822243310359815451304285605976539023236333999807302841257608073524126621091967159743134839508697381799465576534147981272083182816764443847195071976972585624735408007141670023460761137548217479131718613936881997758789606377388999560518996234576227140366541769262917585170870079841603149039025423957761333339777114280880298165421502872641545872558270956940830240972092575488452985384908782818449871610876135083053524955428774477540464832732774166022100284223171687411972025156652438575639192782360679535436204825084594226514361156040637696968657242784605608625663698911521383846223383779037774233118479039984780578933755218815969696502232906023442072669940822240132692279703124314569044555038887683062347033847457263803293024636092325733296179492073268147312726033805526316768852445463283846105006402709754477230034087562646494133340334336673652728006849904406582077948599176491268427600411279920561189135822699878544776570779683544643841708728883366509447602979265364844503504919735196869933596551035510494429892160319799342004499171303018921221868217660497191424872191631235101580242495743266628647869508774494504959238223324335706320159410750663249947486997105172955581413715759541565962462444045232930110890003422285186227875075920560582144330550796318479826732597056357229463760920812175364438555922042470317036581966078867288346369605172107595253705021300991432847682735302394962335813297480751008144069002652756833737522844974430953295508083743066273035593420573564521874917067136940311688333534515743997628321128382892002240504697845024636921393685530259243642209740260996583438017420567759175864648172770835074128518753356401506214010203609223931753108091619444195369165745114287390776388268196405275238733405159382639115932859417932847908301930071327409919091501687174843174270389668578943043379631397334899631840280849737678346432894033061110323252173050825480334917309439632233794040963875239100702438818898662046015494289562778946717863602829616182610582298149863766359947242609150418394517595720412956549275352705671540950480528945620333534645198050882777348263815216003137475344767809400980740277723924413414207924920294678149201159250971891348763141482390854476846578506869179850925049792424478655495539578361551118060536523776415494512819718759999658118244964451598371778328633879551466636434773691529740688014578611016552163061319048554781092330237645857181362384910588540742663592636751674641052749729601101438615470041776092901157908827822397908962182153037998839763430748497635299280491530552976810979222737463813555521993431010931387315560111567846510188929578763400472643606147140407468286147384119024314987478305579566886661407206695483133545968515718394010942612794587725377616066509718131934582715396416496251856228562453497550402597744163667931005351518369382647218824053538861522004573096485195731770304046370827617122047686528911621615083699797435060650049777823226901252318815292928895039799139303833034562932324719822912369288124179255767292339603022166426770878724726440555765661376239752801997105673658253945060676268126990237552686147325313123644377996916475426313673580175036662269945994326821532104772886977094289805477559552603062990529626176023800330365235930828985071310729660311018839138872448749061199578917934375970446922467268027061371291307700108903558198955535016017586745827689501395978379321411517978385312476302630783650043636050847126037765708729203086926884490490507872475743228624126847733328439940452583132760157965370794303582755148800062650007403317424714758831319355885600935915772458845504910428988878140988831855500353758276533087731166714476499487569601089962903321777652165892337651618357529592510580228565627824042312193608757116650497837922190115214408813761367530769022376433003272855039611868399508498519444580824810134809008904715085510855843063976242355287925440767221719926136648563670053773840859711172415137763093230620079421865319992390719520552930288872159082494071563707590712648594571532910790039414247841589200367951117312542160756605303246760768300618367283949198634771978317429229332858543858981813460629265443548425607378493497916825775652366732699120852617105628542078235380861503583060461687744302123912998585862228072620546171603357091660113176550119487893226090728288290780111604801265833652873560111446061773130513859488673096781549400799690948574108008222154555299972990688512793217230422187422990706866112954061746848250204256594647870746098609287275784109087103707880171382168894987550919144288912511325732909010940169683459775791813309275388480724544678354495590773435997351924919741733740126693860762058244862539131546298593777091245243656886417643482346907698361104784630734558912453327111666688126921092749340872394587995232752307852296526284250028222490018317633464043839733313463635957097911656292619446403287912744546529300687807379568138799367487810040800029356858162701688739770054701566994728201684933308913968479829259895537905350054842652393250477053820057407295594563723022156777289797442170466128007142568633533021897420672926412079921197421138542298840445816974988814895795855710405714242713647293253571449308193690887275405478316662441354156801250055718486282363820877761842833853381599497144402451675047458125351654889940076563574659166603143998368973084200205370226749142034655261228933478077404703928888938191974889269281061898495949424591354814576452641679170778020304824885088834646325588677730642834489001409612138324527797848977549511588628150329496426950681321681666402288654631682391811455720235039327963488730189053820503585920940777373978705974154803317235830746469316132346050205468100889219685319183259344830338363946442978922646117707197056457089728118147432626240904572204230812026484670280734735744581226728006075808816734647171369910704679885591315049554564445883206478042975457870445501486651290991076033180026955615075815037866631772805900551551615191349167602116957246466731876580187308199284621777789527862133856967497843016757926422151296823114526080679734177643839312352840649783921941290591169880203209849380647855807633215478345269739151779748377479275587250410830612358831168355979972158046766367975785052295300290562997621501415826604508988859073237604198507272289367522013530492626593038041760153003796146171492498310782221163688349550936817485350306829767948355292973575774682133509551273544307934447513288168424418090486833683661231437170269732840088548691804299394930916916173094164034938110656556369323616272441217304069952707545708749916783133802527955318957247503921387309064624907135492024075269049446171740017286149907522960260158892309674289407358317603112376191536296337328509444868753842926739543593481528804467763544387382082994027808712763964047689969517502214763274212436518483872600257605017821236936157606412248504505794120397237879212279830111575984358083930406661874742026081298871005454299414095528483799388429560116106210668939322300925430517302776741025437591420772837411801835918982579601105136943341239426252147718025084874245363693418970531216231113643857111304945908292774402618131072745119105123547850389898563601044677215582519093578438964996886350215085522281698288041027726779073147428141930459860777091466407578513263728106640387033034944693530585056795164077354494494695036120317981072163935038291943409642980903197446637459332140776751462073311157532121615663483792180201125012698937175944625950625820138173709322448192414709803368844951385646140097913520526662455835136521801419895621604021887110911815279080573458591751751970346002328266485616237309653036483750178241881527315686594426115614352669171842274553398819148689254330627469319560014801339674789461028218744156939342572538322529579003222700479904498254483299945432616031651021276494788060390413818678001047353590032356401009251237932780466675176624166292007035543255589467737637315448094483695982523113667393409993755876687965863326109453113830040138581538862411671517385904635657254108400356062994992400291299193311089286656202946622062033861379932076915274884492783989193660961689067140306735148121802456533407545230793278243586438193466392067471552350266769114625613234327046963539734463689349849246981486963342264627337489362146128001256858852189626001238074238630997276875018944271321845255390101582870129376968860360928640990730858336563014352524591302767337032292766795063765019551705134949400779998986312607260535709932265199275726189895651147415559734425829485406866831253441703853044364663416026953864858627021512099612975029016024992953448150092276115070391958496088522537568820617367884386711042367592189682969480078358252993859441417032733321874695802840449763705374481779581904155119722164765373859292324965228960975415955198408351374159192253148888011691662229252306912753182065987927374677666635240301098368504362105343858303057092339050205872291565184388568650607357329349899897894156143350602239421798400026547531316586483602795506814533355968648031152397717082529263689655312442114329978574589446756017048030841443080775149867495419940513494443646862601572677362838691169961541550418982234319812732196104160553381855248767912842994414435020195072121796388416566028859880554364802798108903788633072899362961515736975302926939003141413534888107746117411676145856042617101830684371413279916909518043357567638816783394023917377283371962523553783022139708997808768016717906956388504655944266555429645761658801794451527857053453616714061457158883155409408236581531903609131440005591795317100375992986976966898327228711466778214291285596363252315614177817722977134918989463271599947133802420655202317706186260812817701099003105666373310462199183815836362687126626049684124292878303006152163317191947053191541549359540640145663964900531222803640441046271026086145236965822645855917826285804063163040961990273621938686181731081771267547102698144317827910368201694965339790679789791136896637517314839213149837812642330576773022400576800247269704945408872051041918036416877263727169800782145204924194472673725386729022714940880751912982192603771671462204444162245150765736690238373050215292492107914579008017366639867556956127755878366290601272034605324055859876436983528558248197940967081954398978198120902515869491812998346438317215497585310892701045241045285249125580287357358410274510770673738467329378517444122178438575053701434458012863612356891484937756666401801826964617093949969097608311716730187454553187203830009802073087337112320423602865199391776789732189344353861063168401009615547853061296489134713576898534722641285774269851088499811455770412276367473316212338692343058529162596801220367677088146089979960628737576245853480129682913577611613628705576020352273288954216619077317708382204021084240703822317396105866162967065425559448812323091954063822493853349537933567654980669854320486676475725430487905371317380986667340483635369658242227493405482025028821946487288243960893271728350534529141245938131713458386705998193195571349261361295668193919241844311403138966166729631295682517654601377269506613142999815590090079572197346392691434843315059840048824790811097695223870759612087228340965812507486464763171972855081447805665915353941703954564038600582880611331997402217286421777430225330090912381259276904958124239990573108539249337643999576756566407859181317878581134344176673341017538832735448822751090020352592663498849708677780034225433442695553510605516487701119348883097684030375630404122041352536918937667131293360862522640194817502034477403384919381761630705583064346604431303331907218335208124519541478935812969778711412569942079882977705592798414343024779398962884906571467492554075581627185573955100925058595119522817051459300327961283377409209481990665351269923921273674623730261003969230434942368562792775238307323364218685652024011943916709021377410756071042980222023561248244007088996324888112106218105616521040644019904288591513218459300132527473185071491047897993965660036610753095381039748809348810611446916177743162106099434163607304709146721053486661053774873705554085678601260192099694956800222637910664594168855828784771115614444173120882344427402036334153254368324744592876202013249855054045696957338022886577110798004845445411691468692371811484007929700203427838527528167298713737057728068222574328557669034878448356583310564453230091652135227726586122705834009219941996885162995190189034102700196730466615928259178727779421563044527414979093486739449536818293049303350817533639771585794718702804964015214195837713848423107295320017826527762345751654983629700810769755770538321830456909638556225042232422430069543668929944339448953030884591793129557511627178252476692350423313301742908882259118668730907305344144656502878390027747017651206696569355332161944819262642182503400749092894621802982931597972113907891500912744259761339673640037265670092581177415390347831435008615408250751581405145493854920661019975745568112107768843497921543630391153191585566481986102502256420129400516297196237692954156751844016458480018666432998121728787590897058382910107397014151842889278147450059058069878537505367201774056378950492980939528283391523031428311520403478465775960600487957574887531623488897891724758593408177730355261923583323603287195246518170772227693103119065887454713548360384075135555985683885564920383642166399548851959462216923681891823634585863791034069705580836764057900732198236999405114900828954779333369150434761392076851986029582112926721324137637827576947901420338973041844333633454497367200888413485840816073313137639178500786884982252638951523608441688272017187959521850012153551309627193832734595048890357516918274604825246142235405627806141955555909634739754725490108403651474077119129286665590610639964535733120876968463236512483146810320901799776751966808439760176932498081453506175758582600583503797466209136543641430280655719748716238077393951746672782288390401550195572313049294732191873769508847770520481616160245580169424374327404836119047896186422579635820355610954267822805914240878625044243635085560104282223738133184395325113643262750138915221329311557252896912716149183716602007254582679951473602749281463765266143179939283470730035080626643995838600699049912722306366849708963416748624407234113514141661891763526877370513139472224271938060932656258629458944373118838853271720950998856665660194271082466724616882062744663532640038668564063604086878378721849815817239406839799143760728570064898004595345089960932125966967059975187634078607326505334288467529688408237018061829987866911822011654542380597005071935530344765335780438700809589376298028419363483024681577685181294649998051336794019799947002078980254728337921585616271346464456227260178758354062206640418768632584624356407955477035729696420729228367870098154283141248843058181609179231853652618998249646537790048638629130148583056427193682525211787654601679471494788209352836941422822763518910349864954866272475550638287916409559033217232133934327798751628811954238421414460519506770612405030189320912534986745686623762343408654860812128739152103885593206155644587703273036073950190487473235257209069413555295397395517331225837450367891907528727879486800316884003522574526192408638565717214801716447147879887882742935536711075862783769711456360508964936900770789531094597395835231104164811484696180151782112816754875504944330968593603945612685777398821587384012901782304227168668107798792019857530614946720917583625197729100301221889707168818181623042265596704603711125146180410308094018508530580288555029839657845392503534222783974210327408989637396515239270465218716271617759005653299743980374146070372169532981110350508967960783326951650656406019092425097874605128546124584236626740729919293681880960927182960244411555002554579716069265785783203050338013096689941937246464423395738096715838628521233139018842656190001360997862102063772252844036763235816882581345741475794557122837446756879051577037457746269422413569898878702965456320678744288186125534259164841459888653313573197911055108100207163656341572718099912680890886319898672482396121240955198757427632542474349763321217499214833786598183779071322648132049332587052139163770763183302244244559743385989695581494901303228041776171378250466502360295819614401439260177881038760609336076963797768489164194797812748774914226836363406061337078567621958207457218525288070241242957322338915065348819796309845375344973938119791442770964421992344676180345176445611478156155190994925612006216422702913878145132317719535408980177187733496683047690770150840308246742889460005634191847684116074017704590782540752074552605781328860588891518595886645867474251911148364636804639191786834245014388269798327367596811803106286458547755465622462746420376175802171390211899597209415103393648782150168106947042529568103602789187010789185683768114120269370020328039895619615857646735811966344107370247596894212613381500739503289521653857682059285533398622514879939832330737478297647800480160351056085677846401230265671055558018701086118642235152380783592649081918813644610467737482208811681038576571862991222370946441246319514129758194447532472872324287751443691139176456301709352550410696201970649639216851976200488823782959344610000999089223340509341952425072339619684932906574622697400134345934188220476040178668740410441884292497197519420228778400620124181801629305654432713536080522609336314304388714089191924291518094140369672776858850921596343229413162898550115791318634019470106889953333651087064783188019793091063093898655238276259450239158249318974326633284223196962398763609522802481555494869309257610957116523458003712347615534668617328385821910511593654150186616334035069776964028186895868512184126487715641249435892497676067927400487819919425388746566664479079614618149548609954312149976023881565915285901936222519320126140937994525239612593262513243161269194252893106705075215091293521315801307396469580210888122568127717349839302944019170841384979219212547034576229386926381921258019741684216942773363291119847675631547651694860147847717699474247573835904121929343680599344172520804712141907341457027848418113019696120819974738610665628223338874216149373486988123589873501544114546924461395155151701262651688904593178939777154994056633701103194138645376757339153077664343422495951179431708158418784089971957015928140800315260053338896312090169108848295778486655528462937611797778630986927983935786553101315336721868285329496905498325950090292151141298196934533541277825314819681337927713126389281429212985082486120019818473612014727161125264541973801487682532165996826447402111087649789700788390219340750498068008304148511567952279553644726899384463134781364280985110736883762807810167190329543101511231566222371986031568861575488065330752404956649349342070749392079050339435526544231213950486279221618794313069126320601610746866064278766797285155305729427422218853540908629595099376874981157759324411104472947723826671249280739612984805647488391224406930148987862506209191715140370051473468031797285777652155381223655351085997313838624069517088501470276987499276777247516441016940854567750023846191097341683221581198571406957279348374475343862629891203108058287137439545881906987513680013277782635486345053636830516311945203764881324879694614582306299827385487514198433797786078463038308836451539415513518721301874418309198957268940258858538596022650056136067017164629479525089073151640648244793329269870346652847050360434931495417683775074441862403404133094229970474368782403072563173134277190237146756855747645438291954789506104501135249595495930396112953814356654420027032109058796214354609438673627898912387961756687674197532542743655360956279640112466286774635685469162155643361498166619646058983691914150911284322507712761825018052895984429351726520262860363244418698387712311245187825547897753054538796941587663253751066478427962690598442755610483029643415833004087485893778917393653296441366990349107877698817996311159070152180942024576028748952062347205063955994431529140578430672428049477701756244132555114362765748370516201322882355295814993616592434384393707707846633224618846624387911677200944862153855990513529564596730011315773441145284719363839286247901995809369456579753536609660156936800491023056914104311075853966914409347094072456341756351584236103673939282851716309836161664637357949133697694658992904353839709716997518837206863066502724651640409615372881047137082334182743225304025011950293914401814468137667053692402763742340769044062727860715910714408278757452319546975224481531499388738711740287023783211249005412614885400450387214478362416414968907955893033964278642452275463277854294306758650820715405254264074497127477585103416397043814203701104486547805279823621639546044842292315991269364506892620976891849273269075449115305565894176814694489729116387386836711426783724683504813937537674074293815555045762477099326330820506551986675987504901161212077375052867720419484695472435311960225317961902001381435672720667366053418914147729222142468612634669250106787972147535479664665337374563447157174616415415244852447359833939621560297785835769334696363765714911392340256214189457743058539963668438823219006396040377385411420371751567114775820319865299112357863473710138925463403376306348284403058072739118657596167995849216474365990246175484638484582888365802528878357663996695785335258899951581935237654198153367149461013129297216223525190385346180844668878977702452414086330115132564104830836874866782676369001241917108603467012919241058294074707821414872780137548222559140918010090796863445684428930525520182751726369893978082713540665296261412799610961141374094487399955414298097233271829229917974475250274298834115216237727988983398184346691766688758328913466598839292551219758467931770130079295836863996494423914730670277285787256647923933219852194638037674195814786236778480112457777655985334980941112361395099210049605902758843076837140520988245304504636544621709795692615772483532052181969388168554488459363792784374224071440966653798507459902753662404990153893348619988658578914847339352344761710807685304076075749143257037151019427721719343601809843038015530531392450252706230428768045252636025398223208323629128161303094433645257228317315833250173887266632621263338902984628417285862088853364532455261096915417291355981767144224133309658838889285974457194571221043662325572522816406697319406030445484201903217717709887504328149816081740631732922258103549709040382846959320232957377153012639791068929334189047844411736004761278787256172530324043939968658583853392380712726602256965478460722534554643978023678927652323926164572665905025859077552917337528366269488231455381926271207326955833660671857117686356758684924139581367505550013301705054948381712602638611196834391356595557555473915357553671798208215518655076276068783394163307095874713794103504466453873892621654859452042250351402794436414427949891229625234568717984421603229302843283737484402128673771604346893251464497546939691946895932723373619813520341789225209278531473197438310273653279411695371602633990405050475055741029437787595732256635326692450917153218060655929301235902308934118296889078096881205257076913978923788053897922097231421680150163316413475074681538072537057137003486753997922168399326603443462958907098784413753386154042143330612427138726623477619959023938188971847020427564972621249891314983878825338924267225999870324950349343891926911065063037371373256067214683466334668150024978811397106321936521878229218246105464760365766213962451972871586700342561478530783648002131462419966592016691402482184511903866813820800345762289902955221058232207608389264303230320030594295679599021803839183191253883309345634831214907514333841204457314291240559318515090759219900647876183688597999755384240501256641597301943095599992359148749593552571765035357424114285918643302427889381080091737146541472037914118285346640128764204578008677138014852591652211033702684705907503925644178033014309944466052558730273448947806182869617478205265243559326300217719121399175033800157587910428955526728904559814244338784983852198004482012133504525934345670755098767655378092245407759829185370370737019837667062650487182683812017282556254331015703858050484538591119636367098556645783093523010318978013050638530937243584421623157054513123430337977668286061229861210892468549396101952024280180356741339567955813512349949201395965952502462411322329006738649421231222074349639541707912656273940410860254812235002966505436140466943202498922247554030867610309581008663918728354979510312082470575129805302916209926427624631176947950136704687141991406931972816034477793365526589273232409424281814103720246355368287425327107750173842381011324721552692513740571425817301597986047527594988964618054096730867211781940447129083783744572640492145668217112524260346650345519534239624208359667969265047214445805947968572851905613076754180424886026347255682131046238987475380732736366452277446637290150212715826125944253674986701218253073249365724424280260353794146972092020163775319089238072692742040198828824273252762047702427362414717028634687076619179413377432845140859993837145553412125009171688163532135711134348314443602197647502912629012757278494131936425800762333671921267327288252846392256211213101800334546048810862546298038406504657582304703670651503424545433006655755630474306946576583249996737058034336885837242304435706400907131899145510048526960675782609185352845607118368526221824595252454894007955117016833476911642951387213403449273093339542459921892395030124112638538950406010490642644003663126558966178973954714587911546002025991924298993281218053087556060434176722321121427940896135958340262065175065878048501529986715819030951395157450857860662810771153565268504945219230225189960456351631933664329700162054234855434228161305970711190847701381633978515575276233384422693540280593813052445228886115959229678564988110875201688183654051790347734850036297386455248637568793896905518292314754067572248268616335873664311942216332888712988839438509949628002769141649746793456479149080419577954529984739644626703010328153631654936935592889271307030755962112917187849944230943443657337142607392421091831075439980303775001509793252644106679481592727261854542830827791676092560905756895541622858938277139884797896124968495748388940116023431963547160603477914392938383406892054663282835019406356903106233760271651917309596413006946632638446504866406170384957189070765229881091555398305740162044755127603770195346330881435610819614283618409062359781212953773686727863952162307082313003340855368120722640493276775166167066517528801929701172897213834681987228623729018782591162084882693722788891020474740118425470368521708770063012112655265531843044660077810713160304389794429701833976549970088096182930921098491354863424109704998386969059168510649063982945229824655808397999662684888596029505288237823817881637007244602994595665521345862452714196769875644567222207783940530171642164395014826686524094702091609399213652486544853745610850526926269570399757215047506741172590174028446338363076442492459799898582836521444274394677478511941683179786164581609788260268612857785016350234864465375941886556252724675335473156747244721896015249738133148289693009776669585879194243726324288497974694960802118105664664777951420529201092698063270499232308702849177214065422872137738423141591836054947007682559683137238768775905378415616606367466791469259185782664135782791348248705850315905948917108903195773437752505980236239910692167585512180544653570368671139922329593662269873166670594456663693920993158623491662296413017004240470163572657469215503905929556420872018506297195923107217519086580631490466832147394272946091470622645360541079125842027124047276670694670008001235351837624290422651661209986817419684711665518412861755344136644569330941824860637268508799379070256752908107440710119587024261656873786029921989130890281175453618536155458399620118868302091633336627420231074042757407545030517562568961096673655252698998213167588773966886386725619864093700320597672214255225656843528226162642351274814121257430374341105970024390847319577208622559169705770891068219351784537327871520173837352799298709661068751108971382471034080780895829530170444268944765718596849599593575048721412880187050167432366863938008955853893211403780280042460783094563071415029355247207518298730352894699957877151092109210465483059458003081050553514873692291137652673366773937885370520751369415276375094636553318845150474194584495691630086446466096268087539325540644716367613316363457221556445866731736785132336091673458811344611116711957746747935214922515854243812912535692293176633673815390841264947183802035317087604788365331875208057206386458668389994695352210638111786520272693953804236931596883273439821776222761986242660710108312841856425985125682786467696956910464860890858336246712049756063158378833826579242665149086237273762740417207296672726701685041127633741875692178752687798913165787885182448388462734855142957549970490334405074257888615862492123247311591671628735073451504495684546442426156001726749322261813583724847182170169721867893071896597666541105966054207435950391215048292538417908616260788847685996711260939585635944981614986928844609652189355475078237682165511740890857151947760555251445687138818595624856755482822936820888092500347663847484931831013365390034016768983148157783942869869564118683720657486104719132184515529592514567570270750312376684880771515454180398357928594822018392878686694994102862523356906868246150756013519511228807989646237009874520265104051210052569513127022182982792991056129968220769728135295664828665729979580355590745421558387286322913367634579867637918600128863932574008929157601635169723673890603543349599314992276860298795964588926563057192629109411871373442296844439596865513685260282700720118223402002802246042331858978009687832520449749302976546311805951007665699472995526385505417235563179636905181486950747698116717420341400796033742403794505141048431086617534030183173731641168484241998999514451068574165409713816909437838670091441607547095920058053056275052411395940527888661376237782558508707356402354326810718585074446996816310472671534123161990046031962382464297094948726517193020738083254733123629491174172091793004128356389571403189559542208497072845178853396455579926707123647512830551734313716345019318399663819476022548057134904198940022587601974396812085848376853503033138930045740954236369224733933470731839092323346697352804760464917914658969821597380857341552535081198141178323982964694735235724226588641705461703109431452256433678740014429341400953182455187205515266736737747554023485188365344834310643771541821556482234387913760887992516854315114734075987751382442637170938663532331211709078985109141240040384746492899194831451237345242550578603964850899468977321617041475978324160109818272427327366473446692918474201858172128861585789754228484991153512272049163949896663915116802694822109976313402393235330794996708195454228034381397258684816919444403240812720399445741778492846038450981760503191782920691569500373788539144002240518723205899010148200045862492766608786475171510019676251391172877860534965056886353439225370938542759318735688924594868432606673290388844870795914514818984039493396116237039357108164114391079940732556319629684611438495625859032172754676838788215880157124101503457083864337619268043794707336947486868563591144903131944856651974526585623438707393550236192918451666256740350671729655210505934959343802405766734557949161813487396838658319401017150053400308016829208675258264377153058561422282381750482246256341116895470245191256836235054708472684649719297348892689366946970247680889550667232089609478562722465696700525406933300289548906671759454660206200913206959257180677042295430301131381089011903749128004383372758219317571375427037994437043831290905864469626359253516540464718247448854558445971153656181146862378507092745278573901727437065063951069898697133699656552450738823622711141050859584034250509539161463868131526599171010839283732295343700865680672056721054677965626194532758785794012928489867774948194949628955690662981449167483493655742833442545429781408380396218889433660474495989601904894659737747198209700606973230886380763803995133596271309991212309286232918502064624789473648242376631402547270978789385362662315423031979181662447782749855464792381088286035201571576263508801941637320230871956575160325484411432467573901161749852932193144702892587941543481293769871613993083170948985372708226450470149120828578560730196408125614237761458083371958606426491089610604343876325277938930777766044441486925154960393521215748135379209176110124001879637039032855743168774647600280678688040347498290457716997277297124097319259619114689997727644680828950242254617756729436481753096542375507491076802862101051798213973003262275300247810492381296727471037254663673381693119198985898456135683744220421436259111395517361740505645179129991511562903522168296069022939508191360094330458169687179693024074318223156517764674267358594033820811363663898309014262248374804725277181109738666861287956574691084526133026531720583809551173475088646917065604470173571036120948414800696170442932083027099038016153177895697376545912478177015138951796038269511075369619276081868200758336382659257077120590414231410851865686280707552340062769100089586875292949457485796266235429306635900064861314694722280111450866593730849343746123962978736196901734829350638875530725368015014019006071020329426252733386636853900309678330271491923094097454483877238101182712365587613886406685462949453542726302466686538702111869501944458842036986793788140370245954212722442611741342584187776455763591589763414876324486175629475960091073795542072492820738230528414416971488928276977602982776594690032165652592745809646229528358827863554186418852799035925115555656370474266625371108103033965028140283138638687631433606987996358881151390497409588361383851494579478453589870107082126033972266504007498271279951222359793826685615737444886462980811773507904476558662009211669818741460467362638855010722399073838448701993698552894784258183454425536475813514667895810786213117672433464065485596987893434020607406446453936036032359573800278670993655323833406614319889071943054154150002309078839928437173272046941567970368084928556058805426007048290668803952150122661588898572548644327724024824597707405950226275721437614769272979889396019670511077751422664120726671313954586752221012194339646490557270195954324853130609291841620894686258708193442566896589694100813556252327650253783245829336569941321712902304019820437688618550702006363383416773370039266195667108382701206495302941412374660865199120561853847858951810046622718445112685675420993358118756886426581513999726989798419472729063691545334288590492239615457489104531145834095612615671290508673347788046528912444657311689499046273027188984688469354987216186044030594370708461753054346034327355377099150630804791527215089896784846284024147192316440740909086072311353421990344090082035929179417853134620813807591733927953712496689518407712926560581541624520939422035143981158310786162747363475521862282768116772840476690217121969202717761050831496717490676394256176446863798343952179156960374205965527132509090240144466909343987489517052908016234572871313914635229235356483181826876744665850249900804328074471323843621420723682551142971496907983965621717184254919870974082040712539128558490539494461522243926322732166413623872417495880233373214659020926734324290934028198027201744900489568797272654871753774871481164762223823970647234630200677839631371139385601356997603819006503274782209608477516732000504756602053850719093375179802665962287917054661291153644997296520979519191927975695288354467327513899288243312439352817148415696478704423347983015426624195390840373023128234858636896549834571489634530614139294881261047851667806330798801130354796608801661365486943368706217450379543873797275901554976361232064002000727114723529170851769272961598593412435178334019537609117353044400841596096771172072477048794956895124847979247208120070872050736463767211109535773095322898956190315215489157056241598206848812552401849998097124307968867991309705526481778369655612435607262611929539308003449050970854624874933418392831523152544885730502976008606703272572639372719600285105971644017432421952071398728708374509113859100201444834196433834354862498020075889085227627092803920445511787792325773508461141023924895247617440799004684904677475841518906698014485610673845364134826900619278280970907162778931663172102892737702924375193929771959918979531157790743749757418801273122195617405653931200795954769948675307149271074497560381402351369120292182781660755247974526326463612407668273866195886301625829011054649520276275614408170091662894072179892767418490065391721306548510614695961946836841242142165310731543810242438069823741749424810401913105434406356253031586838457856305813129421130176786984854749693701729210110955192963098182927966861507601734063509492162588621897420614399863008889256969648858480980009676473163975105087695122089301266438193633704593465830604402465216788174910313944957110067590152367326415518543765274888077400284591257310024748403306838512735384119147712000827502679934648131927142458493350282042964362087690767753479305118037799334494185888774024006042757014907964264463803751661492540549463652515153983670373793835386026316094600098034575747988302725824959647775902626070333918149123500909131376902724891347241593517821958756485943294093022739493449722102542420537530516055411803348478731273477827867374187150273895428340713843406356830235200261816981441319398855815310082746305399474854642331790993137728347542576383055432700059673416570224273611237892347865713989170449960011238146209053899786338802119909658857429823542954277638367864600884363092008609183313915396545768367935803304666922021570353477979075483269433075852272976115416203898858566899963066438778508779423698827989724086620416796614500523946597690243103635528088394799446321177598087589838054582745995062369370185492617424561845890158169009969303996079657156667884963525658678930582734440544663674909331914669336827991725926869759786158836642188028624855627086274625513702016216288595322431397943678974748828893984819365151459247478216122523635502349981139884991520965767547114459436573616579514539724369923752979341212794941907723024215270740686142054889729892403582120614510503948652763360251594911242657603383821547149081664734419380955287505167240767446092769053982786538351368341602603092274593247982245924247965962080075713059167520798035942092240392442088776638057138107055709958350014961047573432989362982467042647641978927729539750280796387710384251729492683676038014784302770356852549127588150024559170971812492009292804672391168901199456344373511557973845932874918592424707410967890691006708534047494562718838325849437183756570014040910920646983394935032075650426679595898810082285591260634078677687093182342430205993704070872494705609394436038706193851418991197017862963775707331630186668395580330497496255370399575059500329323559214081474282489475735795297318999504902732611221255339842346917220671655221559218725738098679107070784742817998139777891460049160416630970307316142346904075506442274293408563348631108014998626483899463248617423010481277853514248240642497814805221899871664418758023024851806670463905384622126619414013948845547140714797968561888993659618258673456779871972635970158332261811113399707606673507407710579226770638657459607117195411241003450284443531672212685179892115762829710177041918321930677582942204985190391657160879906154498624937157230255923283163192532166085734382457873270573511844516147245827122311784131566360296812232373125678000836074457807041200256629499198269955401785655705086593642497604507885222518958621169900621383007116132723381463409202637652014284433316198645442823858853083492799844363130427413513752438910598257543230965378298858293855442681271817931131601164308614548432857060892747740636336809925930709233090879787958771001176224064567655042731337706359896601920326289672047027196283967949694684457588908081756675312658386163743899409358829978108425483953214734740575484380417305987779885548183080776488536733020454661526236616566931171913689046790949904190689265392991088339124089262376850087836644180660801908340459393401041421550412179620586002327208610607997825515148789063490827424168263594938575247157542959941464111598512674678546918854543405398858728184638017595434009577220006825809234600224626812266771908361466420290814338820453451031260836752936107489610462893622643321266207775286248401613316183306171241259335853175795601584900775774942322440266558862771790452648710036324026182438131085798436209286735644022396357406991962612691116799088313586793589676579600684138737142617489696594387834932535221171749838377309975702048413369385420935327444315454739230942033965698786201937770331498091056794541839807753693435038052788940623313573804535211663978982154268116074768327772779110499902368648881618427620808635289202661554152929216950237805361580692908380216867508252442455150410462909660801371911957638011474323142653942630739053801572010339052335148580389176489388208539708930462655477476416993794490243315045350818143089912691734766045587138751627292225946915929612842370895183405157136197436644619615342885846617159167428496608393141131606281530807425088062363448208944685965729460875722974544376307568537413642691875186985720056083158661938587820123811020204467230568566901150568391415855779298392318458803079219027328610409175283092913665494906418894134550596539103915818025558409654567384412476046121179366391787597170310290408417085478591727641072259642165294467738494017367940837552190191369417751542716706056284574994150189854642978118678684003415471036933876646815210811543342691167809306218276834165851238920903082467189116840654020635135726246475499868506308341883588094360617852643810233755577169990844627218554583113383835306144226555718153578228469224504618697903351512382523213650554374812150813760356688833291163480251294341053407068779527422587406960194376629372078574172902900951585057115219803838470286996189594356198741706343080899879167094707659293571473110063996646278456537117938626431866140437621838801565954825012011266460483885567239289619070460836924721286396173430043359697201171360484603281831380309590767279679706324532905372180491004045533651615541175323112131810554299604907482279299587033532833253000973328360011481735302653375290773116069584890790317311619889303431321385461703961944303672537348681348428411382279977395491607745734489793092796559472661358420310631974573502983989247404898957891958624885264074503006504998877104382654487810457188127281026814623835491452437310805537102947897866828927449651492347580065292973292049470571437887006383444459609913517407698396164100241969410233394428260705249235071344644846187693171826158275720765580301492741285477777879022945690653126998486709051307228459656043488587446421295926434782285205208965519630751621456455239189257455153676795878606601029642701820152184356239186069483216279149133374042651546205304308090980058904781784742742179358211400180583382364476492981833041943939095535175155905109200860437637037560894763930978504873382516048342107391941910497154771963441799786172585998146888174162108123162723203783538814600834208523193870340800550784983028112551679111847560350511651747936342370173272469152150576043218247765537232241991404447206605884440694885946306432987857368306738177365475119068915368748517187210930395757881524188672044257834505864479591802240009685916598015066111688315459923965864129394011183283247255086012922451747228556081626399892616356351740218363517769414646141897328812756898990502204320574649130431339818265822307940438129217035789595261947830242102688460052618548210273172491525821638407679393568848519048853567117638723467805125098418969782212175089431940305466516840211056807515846566851983604278180068014068933737448717698729767241069277919731392248108070548085827973808715877125297862985761354367794393573383381294699674875037369031369152537634925985504669605704979839067713481402270932584877666603174418732886782804811561531014426927931029985236703489024677282525607526313717673452087521085196669412615246819938949638490254442713656257910742579108373121875062939695785403601115435450532313731271164547051069866565095697970730226562173630829464240271137889668175855648303290812812186441655327777162116166150147980703104141167035654589573418605150093092757947394532771305495632875360084941203193170123535800828861870476324884931005542980130854623029913012484109440367940295445614806350267994284931319451013675747494154658250639314059237081491627920076024981378274923493442228890493547935185925758477929201966796331305684893652200327540421707175093309635580981627779842562927553917224636195342268134957497337001149047522200687802605615265283077586418252968728763073089157330105540410401597882858187158505512467445816737733637169954020999984333517132759813904674749029206936629577553014559121908524494092870922032373747264472797918915970881859798672887326593500788730624906593417702884582101965478697721727338782704186285999805500139649428088242639529964852090527991095942629301588090826201317809915549420958423750667230430306132064312606076544595056923243524677985316456929130201727254793110003565447255321225786801500985120475373631907562904857911083196594463284766109039163433241608151005899862044635043355953700551888644561367258870562458249774008919756779233504325546283018133935039327191462066623873759219013604309595321641292569888230014370090701778501464597523187485532972003367343105386092993105555887868314710762296989045468144771246278108371258423346694450988441531429599380835482015756740318212620990443774410739663709858763549327899086846016131305325039128991714809936568185714007407201345143862490132157312586568357939974419700450708580589219876390531323354637578242286748770743468389098095012817222219596255962533983171835941103555109546511845847311027471751051120405809132312260932129085962922236812290917881071115368550764962413518220550633554258716215353925519472621893924935710244692833311726987646225689201208760144507487243048613868731062580560430400359054005057101030300310821420553456671189874210902965629191378091656992122260292370923774065599403959384291570859236284874861706270608314719751353184534758021759696907884149139077355352543907135098207586371218057858489018972208258221981884618403763090008021271594442846220445821132525036433844313408114576742192174328665905784780994065116630718927597565526458553944238505720325906785271748921180828341825041241448600661465992372820595188566239394285868784068411458710125731060527967504757424121686932284582267648680871904582181632514915944854214078808044136934140431500482429348740109002271643943827297594903363576481447954902913661266711882919376955749205315950544920679905537994782791237740327435976548770536019760963459786039367541947650689663767155743635509413289103152678331818088244643012001079132821322432125807015497499364448083905915928829069995309760479019239073150826837520413284840021624941518637266929561226518617959071073451134352404534222263726812962251185968349195183087992321660115271658195296704843172129545389094803022061605205737171294417497165806045878671122629290606749731084003454863049391016787786152431334086436835755667932217298534378335500453997373397622815422007353725272472240807210927852425673484832548327423539922400101985626879675877745679925773041466219505235688098165101717213448073339412216628454953303058346987467315569261041373443825368334615788926739435031885121428420027992658997362457849535596614288151127826327953305736189146243875993481479992250243106502024683431119591249982512154462552152817963443315010213118773276337991912386955040214272657341035199760314890790727277107879309332132592905437407597075561071144503725551718627009615288624548051524534538891058089654534105225962624503384141378056407132403241279495099594393610091642089042836076943184934966325434541771500850227176844978487513063655392729804546885851217846858713119761508613910458286659647782736256580725490339069682934250556556323026321238968786042830202605214464973246275207538603816825642120526664177512100959957632943272442814415054097130542407593856548108793411593014698172445971152162174632395627290746233704704907604637716444681299811932764657794721558016649933496496106446469847191429578095222647255061229986971578553323147538680758474344034379232849721391806671003257827606583361868401871469761103770961944704702335448447943379915746708672964575894045781993586389562062316155359958825767840237805974019862569616605451422904359878372932927114676795182561889119857498191047283352084395385534149500707829004926782520984312100029421521655994363394023326506603196562962050528656866230692425101396164490085971329196932919045873030592788203101730954050864365419788309562290546936197817876445306716501366132192912728786332539319486941761669944853841649373370558669611928607702824799235555515274864238660199812891584291330814503161099062778923049314107426532167365135573386486907792571939537409593598812135712462385915359579814048723575934165259787641652134435803595387253556519357425931690437907888018149306870568337728990733725034854201997310551902509406214339433050590991784670871154106348567511147762835159789565770798842853445455975598757792666699872244313537995686813714810115606678240660125608058948833791091656476600930072922222612988358660030326225032328937809921056079950918328282016029629323929764789529524155689712162536403822539387623752041498599450787938558135330290720466693007311065774529925159637627148856549032903366968994203485463264631384994881005357567018838283280932009219245390368713771429737639576932664739188665626547757434869309097041517384109007992860210774321203701005858740977081450629358912797989104517104984554837674978448979022444123943136177161938718341775121418126520124444288627193930424748653913208904437847312188745607829960536551646895726609650560198692091154936724851335517049802268945412262831538765034368821533373455027096618048104203924480385830878173723959717123253700293262292903808540393727399009306807102727577247285721301338601051495241959825150454944082610604900368483529161958110972555808883931893006859560312163186233558694019923270807439393285064628961974709498864904925058793643315989998602043560952854852383492629139423747854008441606484399120969092086569050057686792473090054956717162503850121399510942968098640320713268727139774566530695989502138850497616163146361458892558770955927153907839356851261351498152880625220783596246723169199312966185127254046419145876219506406474765094553276554142741330733523926777897071252916186728623143575363571778381478013899604075381656948006151519445428724607095807082071270546056218711836520998012012937216033967250568382393058774009619169749268841841578378184162143742383209663034912155334634429600300020999044425672639984231619667933371989856021979298576742505059229783614520752939625466788513623536094181846425314389405235171316091975751147692333200843305199331666617415454553724348779875709067141942248014370891325792583822234125517395238123242692788820119375726011182121124447214432732555258622302424663127401808544294609586735703513039763127105826288909668406959667964154141744462732834624922090663573156164519730051886625984259699530794396612550467826082471362437077389568962796939209864123123556776085435473660407548581453966632599040448226414230653926219504597852395962837454740392486083814988876512553361670986451322867455261860867390323696319652941646249995086995570598403873448211665703265956670049093373342414478254763956897672806671077798429643303888660483470118289867474547642096221723133046679161121088216847051800057849655744423567249021389414983442037496069577099653057058983584445568348070817484496694713158849772742996268764284518330903067371228068917898912470231261061516642387345866835212754370975702036309524535150077874693900433384538397031576102548390917084872383999062698662452177031842006956856061369749207714951482199620199762468896926957026275086132600722164630413359963936217070658012273678466861675691087108075298314324959754309312095197741660682759639925055910900898885066531620537194099540719006433402081790772547812389524733475391990707881344348754627656714940000200839296211991633210399970346661592812381811815846563816726654073597354313276536882566075650793135407743871000340973786076848689448551893870105811692446984251964607764566005586127604218746870916937745259731605849326042644788391311991483823500598714877107561228015313816919132594454539347868937803156426950552904579377081212337740894103635050618437846003012189914079476724574032707793464581279385692455031822436462289563289852868073601292053699308439218616925322592552656550958350136174732417737248430131827056106956024527612450591204715064491508237526626327237553291137097665085502065496670799289208885859484355366963319809465836769098061844799362810929459747359969938372874297880733599005841772652944391265403176844513181846556657083564279174211663670830568250973544942237416384820198103980218727241565332642525474982801208453330967184161728673638157537020575752476965007854549867824032229246067272800469148233715969534428642752059821167482879627320448052592641095701735378938353217704079774623208723165822448146953276554637471315197233093337422287408034947170708230982275227958831773409313446858620817220432978991612718927635033284608609243881804950963543248918199376997567581044873323111426647706615294965632394186778999184235492116262164515128698064879910257334249759652324371079519613523348449029810731874953086929261895485168595493540794216156179385665935220212108337046100153487253191182445780221321207826381050497973187867031753819989113714073975786817787550479494660154770896195026212105559011966709456701891826034337503368931385186633162452655593516148182154004467828375906820502302156421295126142916670043369923220785149476990232983738329660109316101300368890520621680436999628663042247667899986530330155796666172891799611422037795008021975367641228748366152963522037561527862005445708673518979413156455199350580620762092943934726624488337634209413693338173209726903738258908131861606305527237947039256135809276526362869478559235316697093166116868323322688451060764956538177570516581251469383430059554423042546445065233953258560244331895327142883231821531594979924484984437153040452894683804157179645188910176952629298734149814533576305197200289285073183396506232918721621853863021952752429572876308825455287098206377358486205495167500693622193942966213443243074150119337500299369242312730548305912893845239618078089259628760096047613669583214986098594955638927480089759586450260411204182233870037560074491228706687056760711383152575060786657113114481379871742697576463439867208096847791107475556150737075672810283787295211775646545798758186906680189107494252944225383922807875098996322075596104644816050854052852301075530789253401337208739026202957189253125757584779624237386894278981609928019261326773810332169098107782375572233294631130336311679968973128971270328100054872870645415294490796632201901141823574643751019720837040146048178302042036257792182081938429995966842899683133217885859922078073232171570867386275178079401259161130624421358170051100622786042917963365054971497271110149382421025704324370433462751951869640213736482974264211385374742192097498416195255551785404538228367138393657136923306753392921457702934247321960052806097895941827403394745192012163530502343031554231967413552768137975642461298173527230642264167643138049576758581703737813907160136710133760682356536317103696911198727738415918685285121701432710508433913307289638051985143131856070641746644341290982308692066082039935159754494261828714218978568952304995345225351758073883761592420446316452624104242614181708577079103985968686696067181702292697236417410297048606242174755853560741185542390658814943697751887192301993656835799961688815713171058215813120038657518640193979192289882396317087393612435411208695460896685595692603070111852846164024863782806300104384848647559963722606671451724193308638731101003915522864830002436865999886651038746525382763130116831389173310964161731397131985457362046203995907601557826614707160932389156471731189556288038601501258799974517045786590982842983952457454729300536001120650899380671872233372098721717309650380849744786207488769679343846993324905644290210639697279419207816562783853286796843166566409168310968196848724681221355337090514815893286327534146305364063198055771603339794117642843149628461578144845508479622259390654076999308182170419356900342471535913830180205275400514003523885508115498702830718895545990423733962152194450743316159102839728777117225095050588445090999669614392853092881424498802619832795066325293309920013153505381516112759593824589502453406292739948534507996148512607088354070590133585478539139657152218895987435408610873297922014307007934315017020960973273051191214009667413636197939987449671842603307636807827382817041399155793275732234588227288265778900169217305224603615329604205567875565078964731675105592556693505603263875648268056289809588017860238936140108866241769661050468647552977400769022351270218428135137274252251288983091103277035589658626984047759154912018771308052339271043045449628170816195943615747989756205514893159415727887713686783874860032776073598356111941989181331150973829156958966932352078628646254844418171912492264791309272862499027460632088608786063075511873646819138499535980505171732850390958956114454542352302030535706082505078056633186645481188969106203655645418673672599313586542060265822577336059413352961639981473707698662728823460043959430105773799279528118658367834524734242626064352910802855800650002302920179121614044659962428348931078299474497146281472742190835013394680650354796789765952534791886184371871752489234933052427556337996479178079700247446489583477794716788230678487299078073289324190398847976627956701725259383259207867000835422700013177210742132012171873359456932764268052992757138125916221996512922019074638040982836628122052925945737813100129403951507578415163004251143726519859031607033184487642829566041679569108820306828673622432583816949763805079187251142934718867735330870160705463859570925711503967189958006128460615776928667216061669092647376073403103593087970425541045965861155522454524387864145850681129904505918420003367367485830447671540170411945675103740882604724790868409503005839796406986473509066213075962912205672635486816367285894703724487937035790241601698100279531820849534564289669500012684751938477421811102029406834837563424696094133734078733116957013425047916336321331739866727803172514920777215222786310606325143507065695057909067280316331758660566928245756878156095972123345814345743935045955693684728677308296126680261850492684074519723682205798332010607117458580917182663831738767163504561515315772030369340646161358949041384048924207532433802666958439763661959980993710691470193495081547824258580816544603537142684533068497032169849579334580615979415165364926628211828876595171426127322249872672156075409126423031772577644141141933378557436355838448630561144291613799451418303109608750745136101556985472195290105448171239952749095792405549759500368147767022944510845961027625436786284205741135289776826234727870482268084544021378950563926400091568280889856447421102838028895950171281404468122238410844188179039809946869506514524998835116969850451844727034179488425569743626716115962249964670471136048166534812019559407927950174059746612537882995459969354953274899968462872089777549249899472192613459987606413524094590944896775481003381739206470530825321152758559318572750961109742182074710840977136707433858440332652232635468325740316061266317438902606780049949756903754354801540368794728322676376618524631099548487568545489005600224499133156311846242904680255666885822725307554063852674637530908043738773331069518035536311746311215382977937011992562352668712179454826264131983478296773277019173677265519401635829030314680869756780161684146104307535014701080862256589256150147895070219452618124910953268470749817172122390849421637993911501763067995076632375943988763514493828814376956945331046844635552623704580426610226490860026105308123158932857446731346932974899142998786357013685445269376058490132631386138469997024397603524369012094038889782371236477640640490506442226345001220573736248254101673661704333559798004733163170565224616842839910412075495433394425441752344796110494542050003919067052726080581590908096820233471381100104726576205019467685536593510477462741770596948386036140086930590891653785020482619004135738342378983484847970231966831796461511313082852024837926338975970726675800740746008152760948119968982091146501984997558853541037078641995851791402537648195462412663376973355336705181917620420813852429274152057315367305920714801683771486223860220417395456056185528405298036636950953259566408792209626050734613192045802197867566693582353543596042640954507819189567095995327570018956434235082641619500700926193799372828266123270299598110548140989468296632536370174961031278459237448142839399597094238854075891684136659498871073405487949817496607893834726768678596842059480998645089077159698106805852018651837725197473011205032352313244621662183732468274964599084493763945449835609589514685674002066271288568413289066941403294952776040882316321142654219495096366030085550534244720162130089840918132080756662656364785687703664201508514854286218623400394195438081112533082189569753954814919963025407668768054787381853316324537629629741539077475576651179502951662283321287249434666555288747278763247939878133258207707831800686248284355882800774142411107730713394447201263892966077396105590478947985939165493368008183774182328539280357471914153611416868370015615069919947523088857534023833553758990671666860400324861418013543977631637319970512479444823836256643152798935332399153989966420994346275676224380070023337951638937907857522527320086450387623219012491374838237814489011048629403747368311731950813996719303107847815519660795696230041578892053436705193313418258495442296115611769599535423446227223163653934574437397125752512930564400271935807004745632051897284150402547577931940780274316525772461623101709459622143666232962598844116504614467511572643077329363970270508380210537231070980635758666849463998175317141437549828792652973111834043743419312701843115301305184028731717782112319884236614318729502931918727999274572820604787931943333631365541539956997438488608865294117595359469969546526101811943882610813480742408743524742140880401402934358863928378281710788592091265562477741456627546559418666150284378785041967734022355348692668226180083705988561834668766074574843339027551479815112584225464747654922987109788254847561158026147639054917797380472647218522510622488196580530942729827241435310446026447925446051534514729034955463805200924140001644486629218750141769069717733364300442425256522440124494871697784756852990268726042766750549263523526385054275245548647422664523600101164348516591962945358319707625989404595554220195180836945696655687889754946801103046203727824106161244832261812371193324932315856988281263365964497214817090441420609581810414050707447065244295511692439549293888910532150560052129324818842730574545093961670501039476899462933441864186538778144331077976447625016373206881369409340886447267849124515203374738134973649526217953443899414974285822338499189652712950091231060027263616983021047310220119217771480893759635554617072204383325843610525329667268388850443778674940460086734306154586765307641290325352925902250281448606536606103105915322686149031539226343918870749906551208828569002566144910668237550114811767082741729505345447470518805073779671579014442941655396152218905623058302965134080351032275448724001714335466410593337356876257489106368929153787228156492620828194604501024898536578856589158423735945030516875009738647867636638154286049916119804759494204123550739075531174571678692044722655670838443249123618450056857228604055296443781500833345020000098777508942778124939235337066016066825339347175698295913679380997014280429157490329415802610564905838347093951428648407211325788904621648565171666755833112872028151406119048942543320190269541447647863171802040227387302429746222701304372714045888958989541494662631092652931852150474702513186540415429194644775965827621975105401251697354521705283849849893867126458374195979797781382964146091302269215143287333615195436063650599518428699387819895321914688703245668935530469007922839279150922553904365968554252476425494376685924748166039693453332922287032109950451317720044183794855110327670207854612445838942193498286541675310086765105119759539596496096913687016464284683739666953190654449627958416778788256357381064222234744253395701087327336433392285289313284578340659830040335416662101367177759096600337524888564788895470947705572587580821447116408336701571351236430669339361659437938754317334005374008104924149007203388193164471471834633791857623147845651859827688995437482094738463196963854969158473624127301971843258628758921200841440075406129069932211479257328615316794383791296468299928372196373298712800885478236707254834402299725697650968815274034818515002444538111198210259332422384043554670054805537363933554991313386638319158036969198785986157812379115441324719533947791073554132930310037278194217528725252222493155728674537430860797456953323606002453408784816908329455781545461918469290740708907077627712371422246901202300617282159513353302509025172266103855843136385107150902267880526737724565453993935653116110000597145927177735441007997557538610828124842040045881853095879253298545039996429470157979088532519743764867177422997595147159490072794700754796788149898141549853284174969237000507914765753314554057743251055536814169310292748286783073768781100000889937985089622089703572824736780248196867713256346094593168956233365725830858959201322833923653147834320818778791628629064813354842989849750494374332223261425316149562877666639112120582971597992922038682424681128796829072088913690315178890960515398522529077218803548636140450198985760485063806202900499377146982673913579019799786971637341069245775003690202775479302597906911961252079078576491904237581036764770917781917401851057395013518728511720524209685002581532763275486357322109795979250085995070383337082194785837739109555730906944412281088163703739856710321853563099324764214337281999832430606624927326751332633966011347852640283482072373228163155088722256156287897115097800350168804580040469888623784708856153116910613510798675809961036888095271504472089892816832790368459475732332790445323137372259801922241905024782073916241264399208952713606687205064291849541513938591903013278721873377534214980024564906205654660321049234942882379472223450937263527897546335723194142806577560166369151730914184728123668225734723038876755346171966655427606852964337884416455950182448991995905163725164370030245763765452948774990643860299594975994353433365911869469890939532269477879009565722525108950827758190385074573678227169338330037552214630658680862441461463422803003346207108815361643352149182316521769583443388632722382926184617833019895917087165964235596452730646623192114538993062175008325825771430664786286154993270783855403681109841702002658878736946482383823217693015078820841908798307945111697855607941500870520947517611754268619471507524650634734931188103371116593085045844466399377636712920963243452339941762806580594251355510235458118478615314750095107209573337003646946207987918095696854072326085173922642236901368573571991908892270038994885895282787372520079923610903844277518346254435007961529568311511824472304287123602974839319332812411333807535224800027365561109885172022421283514335758726654063072649644244849608064008523580035734852459150594770184570723052195136308951929461823262447634388583784713940751763856265953298463697373752963251259533611539322399227857203020200783405292278813231978663872292506163569293935634355446897162401969113803762783598678174773350562592000162356670380274884496221198360060499597935154758806956962216239424175145021659877415519301898453233439105812448167246845355324387280920025321310870273159481140171258975738865020351391488474993896031573908407933170395026025889640988206202875151763084371446350890770979128087783480108525288658864241110108785156858196854231310362287718415273781603509358181828031711216573189359137498323988120334450764464523884593990122153732935500859543141755611684838953864395413237597442186938582195205824765194959753632767755699486405419093636001052374250956372611525031679410243220456012604110947691396761505386777083486355311198875961270158542550124175501926791376671038872050736424865880896432188244129751737396352311635626462737961144624796109260599547302851131174305315403858237843663406078747483239311825864220919412039092558305757752798617908508901538695178707852807474412621654481945780783648710993179129916951366339143080906949329592416909704147368374940034607733682549407855932967851394462439790501243746728290459993948313766926927488705528477948579174107023933853720798260153276574125049011502052073493714554879772293308279388834595460767034663927462921319978105484850279185635765204804260194894851547980727032932976214485917750742139921921604717223586956635276558636548801488773740356660366816770883893737633473391615100112701697834397288568990850913686192462054108160353725936440492837563332777487981268927941904911908959506372410224547833952374705367195196948812949381272492423797118769723390490955587403247484262974035170825991204611089412748342736543740285586233160408679825860031863686849873717271425118252673509414016055157083193553021277293676381902863716389429457184802723831227898550835044356423675018374720157306864936602127489715408158631846724611393915861254051704813744088157935126210557718343484499117764093093592383242530328194004003316864046723480390424668695166006822607797874370273865693237505839664423920470674936335286217683923737660190735691444950455770324832019473760783402101856259259888589183583458747091614956192208329827396239166744550809138183392613327828899014491699718274910998308856729616807314940616317659911821629810255039058971935991675911024235293590913312486280351813141597483005210975333347202661198664332684805775916116317834838237444185737306899430278692499397097837691445998939453283081943468348104876475932493144963672978860866440503174099675505434263450919139866199696502191650096945492336268542262792487505245836526572655200112136474131470181144614204435263738578281486564155191149199085998675736979432045312504498807219923791694325577701026466161492498505906628181695072192651585508566617529638022663252412356891874198109841092822198128860501230222660979279884654114875381827309378186902009848340049476540888400836164713785787246445903820002805175185362108121506288032655899787624353771390943656070459124061769968691777172874486108073609450631343650368311199994780687558823339613206337578700346496117560892438883624860417171078846543570779319210254177402117058900770366170704380693618680054006807468928048334935653083913535856718751941895781479418100314192429818876258505009637339901043199783824457272083797493534490166703001006500369187479205390993752102687150117785468143310865440866901584422961309032231206490055894847393652131956749601584742636715197220492464437480774097059627759867688881468960879842540155558609125913354952869688875634937541171789443021933369650702835423060871167439842472742403809243382107836028608044232145022045256391709523302645696998477908604039695460591623899040584925136495611245094936214523774129484356811822626192200609277927985786063800274060916047415238091363653774636400280892769746815097675320745784998624555434208536490620976979788770378979074682082550179835644723353590283823649513985321374897767869344526373407596421874287821878949555763294418514108120079731265031593516007404206610112432254973027803419939475581069218802482005982301853461726972621704886405206382206315078527515448007626311144136438203161485770137122593181774635858125686988710708044985691436680266802201599012903493420263998561673481429468068146246075283599191909416233198738627188726525775248539395779882411625788313488487046879370123380107278797309401753152756106771126726157210718780865563448767959327832296455700403606725250783399349488695917888415327628646928420917104606501199946578049386617734045474450548155541989140849006484014498624078282026329593610640313579727844547247280445757199151542264851779135205285618326765208799615011441817543352076058731617879062506524836355195946839144480537805728779139767403204828046048551505301150396810913629724992108745657500545067748208035899342351009575837843555804803109868663215182526593639903765942319135542168131752161067668103359521791830522602004409466419487245386092645970196188756700260717348626527321921742982070802336708819694481837694556402972286235719641106685356074358639993185771102218728341115605359024030037251204656508754447191083387785727778006769242743561482747546714305543383030499808185776852677415477698915094874488906247240371809134069849121054389321905401651382479327358641996849527643104482932279632850661649038671362103874074857111777253379992202042207098948144921921696620413817262951206747934156002357477038745385889208928383559591747153825045959452990509451119789507229607814378927376675039862534818183795769834618448421767432758553232050945912147570917515356445749209984879969063631970832585665787325475036348258511756411080991277520645559166159569747755433275248508788595777082694957604112361822669861849931917174260343483295584544395560474621441132212246673399727316581518941077484464687305069778282610871555734932549037258673388749186038159664559488213823700735840911102851496942027797081470566539518413187599404383919250888347023239559675944072391407640987230885827481146300662598933088568925852617220080874415193721280442040777218790049858500576764258439445939417488666534246114295754041296735062051405784094720682915260057469746732798918769871187882723660760730279635184520686831451206860196845189440619653265504813919750556924078628032632057661807442495126000670848029980319190670564377245259502384182680133317056747781664306938826488047533572500862515134774832885105654346520264882990549142334225945329714127801860523331705910802794430004739876264067645697186244532669314069015568697163508466908988523899747114414593338544095418386312871153532315451620118170629619769750168459725295133737454514227564195022814833518717214158319007680158990638567564006123610770114494214777331019084206420347979540103892778044563186839600480020988640068454647211050551340576749429830786657755460849516498987189249359465764158502711489070035916606191693180858101057276378436266263384838100393023255818933389688027119417380760599551701430343641283986056414160558022188093613977771643907758993064931514095084173913858057638433679706378972554674465000811859272337377829951091536519010724067475181061765029936063017292099055472399930343931822158706501193625014131261857018091711501277978131679043814687096639070777306956196838486393907134404657891967786089760764179272625889234990279023126614617316495603787471649642484699478043647405679822790611291274312291703171728324366783544617613603967918559764031653022580974645906439550340296421561910939038123215138117653415588095671919122202744099262977310298528342073805751797464562281529974039601886652666101043540744567506395945551154962609687382746105215861810926831168435685776448769865464967870457660374649072482429669485245090697840858395579440433900444417677815368265674416510888325184691860313389044887284609242389249301403164684934062484488962328216913433959251503677820790982336590630887575414203939432254845226771464678236803031352221233387387917637074893863447830261375405273028017897249101210448186294490291164051702552846643312332987069825958895711644170704436327307706073633991774637006287983474265257843474391854798787157668248986918169744545451969304102856934776945839155176916808715773048487293795526861024096915352853039387507702704457910995995239607184633610458931087761996442761671716899693714870009885310960215029741497462757019486369682666925466821812289473736427117786526144534531876897465538596504212152017442518575882646752926748347801852340102117414569059182342802941331555432884619556539620530726878869378245391650645812410417443660071835457609725870939153853578885061395897240113692223378820660375152688328336331157170758363347931521265321156755806607663557641212986281396250336286760752343098267818447622170340479110347958790961921996196207661619102249738062909255302085483224820848039098817851942475261835837376096388599368731178273590997657650175467749287613855283273661219019433728771813240409885284783681610457160167854013623561390125798666970865429434051434581289908250595081830967921288980275108280970370676113246693199251005554858622945034855830069202104006134306011491495386615319835739428148430132169614415564189305576913087751815137905131435598818090998740197019860573863791131074404619536361299500673573948195680644509543639143015833138645485550140114111735918130960197761069243115390834734429766973201837015177890642248295203994134374345624506019475313133385200745496770585571255169348956277548232284143862424220481049898200643494846940719833807267218297986321382660621207966976678942473039349029505675541175906931228750341067896648076938487104343388344761118780254273345022824368278793092622491381836528997769800247301980107835609562683617869991324107913994742200534859947055102604170130911045301374909222441786243269602822235732250568981439009940919628792803498871927333622694396534109698561497814755746341347022810026815702819909361813818483241780942967076940491357126848104775658838250643253899038453582010748740946485412833111940946675258305886623803408334757778163415939804803580172663392504889503331308009073778704175764907235339467363594909480911462577103825625535763579883495635347336763158865202352594387106608111762066665246968897112257971900346508421556164976104674128116839154827405415764274760752714713840542284377393972106630479191302843076447271813424076687900296031924900574496491684006454832034775658443937562695491174806183197192844113661971909694118526003905122925595274591181386742564958661596774449612622813560321328139469641396982878771819153744788073882159193177574227984620162073585834567207503078218675244653811725738038285192776474938566459830598272608998029504393769853986616677510636746045707028787797168027958050232564241103492687640622092245312992756540195152248522038104049418937888089565014904394996953644943489979004442594875056609545716862825563406158597081145516119672359078770065067456291735971892781583635206009866730782595305193638515028981139624032858176848641201934813459422331356320549327203564528500970007993441322262770224299129674048951130725028178230089863518289418469016290751812434757462701392759417734203125618385442039932528915368803403444111531022552273839219654120073066940581605684220115487341979659344704965379521773549211904939052510197481312650694824275926873213466745911336656415574963329120059289829996667405806841384399432782845170703157487877570834995453491429185300263256793013572451645312705985971630026055025116948440450584032710718031017352171776086603379738784922232122404009268927485472450625303543250831382895952441356772970658641171047573041484962998718840048524986766068158195409035402044644310609246487449120721013297286063310180788123115494311066904048040464917300833488119063578245122388259797155335985316953482813063554999433232961394252019750510736702851078380133104317658713504233127874183932488376374863719759578744444602282713899733057026319948274689512838156319818072092659561910383786630321266356286582625446246159195926731227349410192540178739341373651263708548618188145757224953556195982734074765197067915122241602551892170886382767537336668071132832157869703057929865036244640303041648692275258196777831263342705792324671472455339004864130555361641757112993959919416482292497638998529112332630222778886364587907764631829923165079822078225185091012891184261198448859113865191453619350802068863705692272986236790808216652550487443512697429718594392239696821422412958880598506340248888338873308858504978077070176283506069266422893511700727498081095656118906625319325292353600118589958833472419045618377500005283456720305932249982231332139065669906143215158799955767585036724214955839885005091051951210168500328994495843096987318784441202250196150512752627914419896785541837900441825043614324946055889295291129610907803303474839499707026056645065778960211138745515036583232419981070393493102253723221330688714848853463509287541808666358381582465919085121764810234372789818980523107153795143512666697704787447451479358398328618985700517279635826660386877108032291900457409962905327150762738969204729583365847072923208179258780237181993039528184313645771608117197751352964904316440839571828954914364145813108559365013316214223321707333873663557067343530773766739611316719991038860865771995904799705083690057973659978654544378484291274541791971175198040986859723973596404761076701813416301499602819623546944811478971755860689706611019066204904258055556387480250161984592477870447257974937721664440938761548128865797693342315854126283147946986265034796086265938232800772389895137348373493097980942830183687544831642973074228907873944203435206731067508982570459231063584845128002365217529555779214340125558768919988825680110649408501949405117646401293859682553235047494048300412020002598100244711429176500962575903043833038824959256573125460756690734473121626964146256765178147635937017303544059752213119281535072628454688431579780672964401865047845887970550415594993896985429349256307359302400652252327964039500910976287186510977474302250052454472357486944233347494869222255416870618457774804898403065242093481716961253103109929216461221612466200845688020848131956139204942669314152692388558184103484838285391520009503727808721884628925592694037945635666809392153066129927375734944680913302281017499712813256175807441331490296785608018629833716139377219323657478093382011088873147050211699398606834712973653591728341009713743685649829842732583211982346290881459608525906818923328845281872714764478188556826390740145462742394742949476781009524054751444808295583409314987730578109521262524208792168815015785031696759416535482821246402755781546732908622745546421341146036366446504538676049315690053185979962595084317654737315136260797343404949629172432239750726591154950375270252928646778581050977570179834640559846093363460748152028899301750041620097809780451825924187701526592822969645180953649199583558402247089422336503661214934450020401388090369527549371796458362363117917903071371684060969448667684809523626665032418038162952127356625685685555593365469088894050621868878841124494689158416002316387417079435503863003651963426643659546212251517621916321370478066911551316909958844950054715027830261234364022624482485395006603829053693467222904073724501557683201903216255471835428423234498676264935923598258310745956401788954371600387629400055057657552509624829714505789461040203975274711797711725050983984458710876452626878674983941104328835372021349380600463734234181113844754227666781011695403358962840849528972144301089547193802083151016241575637108684739569319956691103261822641141091675628742562124890082704873284212012429966285824907322733839047833693426844266498001664715123681781967635708475028084750007051534024091241755038603649823175500908750414074977260809934214305456890149679980090252060364502781676638279774369783132119447485431874061252919936884490180455821776937537004416552518978540444925635276503517329745921255070285740117059457700454495203994579595918738299775512512023671305574208848330615769024345314650786398459122344008875537864551744641932479645503567285742219064876078320897993230313168064596917353637743095396168859289447123438809041234382923824520319360117856641103079363324801680513483681939746504794458659726022532481255560498951709830301360480930566508517802693638118244090269007777425853792615431655808742951124502744183796553737151740451386435923151540550267204735295831902781380571908095662910798188571759352145286172652913065103155615224267706292539251488270374442813245632925914577480759014474494525200373646984950521147090294102172671715570749113258542289633434202535828129923595391632615407965121340679408206900021022224283481008267640822598284805885299608206148088337390760928031920299501730257857202137271900123711675446598614000512592156110897179223864133981242687512376309736155715446208245198820488272385688843818992718812490251150752177453376547271495589117880878389176021558580641982862931677639160169250655423294754181195519299776045144520265435979245880054451750208623483906874312356101110077793977883763999976513933909755753534626388546278695478827862920357030439796199402843781996112924862287557712153484359455454548623970444749398175760903914115335723011053599111834519251022757439561501251396672538347316255620625500276278946583070987170822369002194706129910973280625180953027442625187547906701964626821948070640668168656312612025091581306272698938692422057104958593691836228479777720806221700448189663895777547029025718056104220753014023327433765135054436910042800151840747542336725695080958160561459858195959482577448004012098875737257925051027450128129728882327689883215918028448652484056532587907280683005826738850072131583579187324110858225184877532151437613656008450607556288483934356954523600605557649130703140213509886933795988789397337735993553012422433602000787907440780155684922378350386313173720677946855509936829979794593424056733597084320542466864880895460654030288306298629297250043720248215629128233765022069665710417094689726053366838736866237615500994661432767896669001307278504389001314523147170335898836170094590052652216506993729744059049172710367408427175508981143086387463284943526098015791774761737676951611032834256964478116497224079897266591141113337153782677601019935842627276621075791962357098188627811395599439598478462145093425458370265131429970746890567987587784283933498077915430412554336428657383607863841460904897437708529713359367145191292433697855018421659466923333670469179807819118043358472406006952900474366968670127425486116705522020712552950358865921879589087979131535744135185523243379968422858494216630334968609339368775985360279212275744548057099390695132979298514408260436533118546991089685060709875357901972394062080344365382255577426451360956329030835912155291072311320380778173975260794656988369702938049686563888073975303925889070339754492255461877429368693500777947589551121901712283767169596859081058938915850135122574218898882513906789069330541116396173537615344255349019066056722529422226686627731146305158945335547676673856556782598346330038109046947633243660052327884808768070434949576071771200487292402428217919872012907610484270321998476934893511994863432750994829159433007029496661703499887015212335884586368396316767203847071129467452778754513816254106635597561970659079180489904928989084938763239994801819655908773762310007722608253182688523639525437902781411934049989992812160670099336709580496886966506031480396658239632460070738636691376547326016194359900428775828578537344496488487016967227603279286196676381746815407665235027256538891405472751887544543287190558116982870556788324840239577573285170347825556972996155353018812158586841664172070208932330523036903171185619503109211298129076954794488086590824166236668853028451958486258050633289133443477261830570044954086866719425518133149022900146289311259114015075484354676470668728965625056766945772516391170908088061648743733301462569767645640046558617151676100622319235046038968622427216870764545329575757112328798610973201920121384751240019603571478632673325738039230580428313581612255895268572434735783025587395254077693978807769558937519063536051166633248491965978662108068396684128411900245595574620628520692068669319197152887535008105310341155921550042581021063712438055384011903820090995144556429261391826900724573236027687514353285694848592484156917469194604928222779963551966171375194043407970953398130280895829753907090761945871842553758166391750176100135724126741464002336765051510544021666199712372624866648080979842252657584947031864476382250539078802692147401353937783134220151526717245089452131276786979945201141767422490297601703736281419941363857004566285245380958781589912148670656333539224252617143746696638009257145336236294372937168453261382099543110835209893505050597904735628248433465049654827788596113632609232444227519698287552963671450570458598411316475670612645143024578470353934118845605871019303664392642408249030605489553345794124920645243161261437540530143190802084419715145599424297084908867555444621804307999847205191710468533649280138606806164221666230604537272323737629292884310720458851383807573913302011658748564519844317224019713450032971300827007448192513536031040797607271778934251743375082690578612162111370407649359300344790231324245040326447734749374583172638413604386621690858790655579914625058635029023791908176097969892324603318844630564086511481773058856312501209134924078659176699636696290005972383808624058809821468477357098718143388408014070025034184824672147373397401607649729103320793811426611359072179105216588696368049434474025008811898283696371477429656206790578216493925780463655025254220378004541923554820875905217440149953339759571824985857596370869734531603960548662887130069951681364690351088341366726696385228902128505776556383297899221169312287772691614952473681728600731974560288586797120952479745023243859522489977581920598568441002587224016339950335904220357226836842715919183370553907194060955371402070881543251984722717507921618342907739797551844387154973220944668724599125706829985041149458063316160031110959272928160581459002188584324803604946132637533104743957512679006359529959020570844884993437618366944051755291669752658120798891890160088863634845946156740862196446031824593882076497803166916327627980341871742040502562406415087963602816773672553731874139606707950390286948124968668374913601602585354001049568863427472987952358022057116196828710211010449589493526012515752752922571450394823459683162386860192396176025181539871071853080499764087826167033177572522851855618970015928677883929346226091553113499173911546122549976533102885142613196603664536589242096247183022315277579963965518812988883041934349882242374096019033520086313231670966910028726656971063058364567955132743283455753940643245513364223440752911641986852614307248360873961647371485958576843800829929423364663582148905391531998012389050842068748003103221132635813201730406958339933194017320538315675479625272323233077876921328951243793102515350296820806216154249213461396428012173820752641582984192616970828291670100092618587852267353753114357739784335066101721766945348790738156137822375142527277732598345834221825432059964368197524890301677659579273138430828668490040943790001951484581127018541854379711900075954030014415201600925411331065264107991570755723251793591070770387450965489412109396131844874826633585496772980609236963831179633216104931392886846457753021556757930949201101486977133358488566083067155646068265384975198587072682572288709680304704993147612577349215999372495550959421353193669488605871917702662013812201635445861849220167333481290302497251129962131939352542057032330447868099082468893231268129617414728035355549977029494529229990425045896983213988410753423708018654723909003738334019176980696000692560381146503724736651577142505362508275884579446459541851865429375464692717864759790597049676470568641619205778350124713405745517752720072486097280685030685771153872707552863595528210151102860584097632346494921955213639224527383583560238725675625695022380935812680258237246305410592493592278192939746613423806721871287330593839268293517018009345140353203574368690627864401886215684894270075262129625764511725892608459959796990985936931658125919393510139078790886658610269179602649232176275395575278945049920943195224163661772781842822955620809366153530579177997074743815617037582854811540994946761660956429224553780928664899887822482149706327665549125116323327524409651280121625602543624753173342064154040422952049322114433719713121995168857095645000293934976640837313118427359567385728617622364633114675714603403864889816230511947425938147707977849585016688253310031004808981863630239523082871676863853805159776413875748806569947702769291678425638984293238992146471626256229941207723848922895032727652303528377678159567162753966892232413561723300956073684457022847441290415251903451190170914957824113203284277375945792333475385645266635041188959177246022190601030987885755610003785515281614626762963422919794807840034134695993446062412599129863312844146333829661086975482190899461062970738855951164584360518489747770986375552220404359248940406674707639373114644532084526217232956734461481075031831309360180935630402219476620137911403983026963912329842584284186601910332377253822725276986198490070196949657300950075540587274393424428681410722675704558701040662530949229499928752734843211020053255727437846994401758035892795054197071260807723516809725477200142308271718131916264221301204529696416462543281707442063705404804655794467511794898394630546457583372023539274627308912696500737041206819394542699929847218451152159296403033636448040406870470391645987206931594609759449692170472572526969254691297119259555026119902590859893659071116997952829110024097572772007710252123534576083684998642325774024545074199452623683186767990274835137367403177196585288536897450192192343955376369822594643065535449328512222352616771460255577943255079641816790959891373092858217761173558376395915989991906372618804328239080126917409296127905978596323895729661092589256128762430882158415013586451885001344035787333525451254139041426348222041922703839531270773629629427870503880860922323713392633730865362388016898637762169581289331034478364160948600754354126029449837196475479646658994665314388287364396602157348656907171648469315173619098360637260415798982676644510794367208737050992260426327335952775710605798940072106371843489623356037583104286190830626656699418024519502103948573498723233138346374386864549489654210358815690318408779963199230279686396174502140425839938620506323425208235122249418213339285229878307432595489729660567235827370322261394586543863526232274568824271606535431582229392581643301802618691581679551504025504729997062686760716542371652878395570535777806824063330248098895039346995268050812690190978214924044644684082132611786459230922305020915338393388184028093592119869851803957356660246840252373432585451120788514737786913986313821945078926413363702106401458374988771159484149938893335973161580435499619976635903395074748725904437895725232071643769506595117529026522933408978999594736360867852032368602224604356586134003149786386358923297104409920535155912609973981356670307824346057695299738611656333189898002574284892126428601810787986746844881339808719049950817993620929491766696961574620378795705801250670628274538412299746178423713223295029115172590016897441187341004095794975099742143144921067969174359375526890252057006131579355028741625933923149538318053247577193036303302660637592432974407931854547494217144026078264582244721759758125124561758885745942134094990360172067373300248536946380273333617958708183736795216949021889209923729102698749490399968012171580796477350120802281623165475426767476785771008018123122408001241887931374536371319725410370947215068891601009695629459427514462467807073187306308799853092353262664532495397013878934766537054326403807192535720736553300630291275916096501696539504842926034967444839246878774177544060107110882740707561171082191774406180199007277472281107737379628698032525711153035424336671721366224824002962088088656394783569613281061400162347115068306256531052444991366959728497295614214446196875092988358959931177704917929306395650110078145701379456957290171936297370931540260206550148796797935011984674782941567083809038758481488572772604998989807632140573584139619569726204262921998007815036529619437097720734690821301308655892544141332971660836851000511501780989607783101950089718259003802804896033837525159703582559116076337137344662528582575449111892366765191943578088449606802380633512856120278910682838951703492664399196654956088190793164083526094787542430583647964508460506811925598760529046660777281344181158543882429173320194038386423919930934818217389842062237127850326444732642887076859436974922163935853595175661098533685101279448488271851975583421821383188033187240559174674517875321818083652427194667591534642808784101359589373682139845258747433674987331886907499734080127761079539990101414268036705758862823049261786868734094024789527360633803555712919438410214302669101146711137953028987385476547704478350232941879369838963378414226611655223521045998234034151964067517801173570743914112471575997517321134785135902785244341371915934188010172375056204519861640808154947148476921380711327087862712079988843129721695576824615382765642725800035620413894923534715312611662955229180111988655883817840125982957744434233337698582045528206934945380767175790576587537411238718392500197848833069797420635181617161965899501309928427119929212783157965323914065238668120107471749263990207833337051049488650516836934459568497353296033274604740030849655799268378290328285697023478653792022227579818348050609703678850951833051921146778620318145647002137268747776084162749911431993442717088459262595720543982638732538116570066030030321315906453729456123299383012539534323992697366328916430245870655945514608181204252765324046645070362292967296129800537914380164785560030972691032747945908339568294087470991641489133952481380611875583995291008442561176132648688487041531807918488791461194764903420449487525289703282295779249714012456115077436121915344841659774694120635210902261500618377082798257129535244191965317645569999410065820235134196988154445500913809571869205898593273406826291092648403506462555235106853805246092474945948864426689487518468895649540888322106695179336246717139180010185202504314053896638990932595082116741339467251232144939911867755567185932865586111449081452531069882110162722043557617789292314655784510535343142144947047978658390877080257165347320104371897784148251347293127034234090643565398302435938241204883262630864713325298851626018200461628692373734218652661308079185199970635600149842145474467911361997576780274239163517417659763715553894550397208382987952502313781817091730461275167375108621110678294011973321228525342838732526259054387019917275293250795568229094837206225516517601113068553689648985117357651907566690236556004384903269043848820572958620943255475176029215385864125272530557598864415964311103330355176109691190601377861466321916186634743978817969070576162830120567532344883566476717933644696959372569756204257601010792880556070029686699126155494767528806503364268488585437649243117986541063334927471827684288421816161184659829003206497328466154145979335950526113965550870216118304894826423793388927944748846829915191062597143797209503945688196868055092650752006040124463592554015340293671390536786622579703562883991331214817703690561258525843650601684291990579403334664240086688547462979682036154212655453700905741314602883981659841141859761747386770395833053444031794305341041500449066354518753724116106431888445074024595251389357646671010522227267568630747717291898383298809071025998493211620836364582095459363026415154319377374534205767665004640343661603210353144149212554080855890577187874615134374674523962483949077028994729243347094754987971785561383410287909841771062530666156694186914164632652174579971504466945514839890920092136368287053232337349380222258239216415737346902340554296764484075076008837725303617211689871790643151668538651328701505937035339568576028822282565990345802079575742947906490528554338142186878706812346355030875615614905363968605256503804584412175043509522104791116100829562855845600546552414577878944492697602160583967824864212989743229401627616882041324583795946153989487589318311927552582836647602246532911854867633432275036656616071127399484710380205860010519533247487456953609375549738021253918184063414446713373928623209013818131138054864095703245229520401012764217378343507630036431689915226343763082726611463883222715913397361386945936857458178220152966965890033927238604415473085666962945483468798066390505873848750860338074370438202621670197795852498720489421695151663705817296348310773050411298719688652955171236511794936929053573924623629437548508500958812985321326920892361682293215957826442865027488845141468003646256739336986665710086788514980652770214066806843304833771155470971082149583120724491413047252899294498285376188237064885112445183145728675753825451654581105659123140696965947566630862503401250943618425906299235516008602898714546864717182502238985075934185328836862204362742128824517477789552722524711743788769682663508447946955379240441732412495573553072931167732356460569450063732773850906026008798910726503990568957040904029167617771356656849588234111906504828110765040278290434806537856450516701890057019789195021388085899935185134459501592883915711577177890062549271565548397717294639274527891542769396333167720173309710814186977971754448850569443423822757585172460410183091555208574292218131680761175025816656198200605049971951229194740203126084061929576887082889208797048018239491309083201772401933844887612369063127569416013623707239433291343941060622767685541949440333259881978271776917443579828336327341443032740560418984872927858545951917559597418877616751424760394346329163366434312385947541031102764234728222587622282037544404506827380337648207092186743282446653120727109304972850678380001490603832889224269385602779123994891474470154528908648227546264318453625029383531379964281721976037949309761778525130665116172858614177732222000572903897307392132020884523393144725930338661327547780973950501361066569739141854076966215963269753647612361022319256149370514070859326632877776842383115592596739268222285212480955966177133083876185524452077620632025000023428197593776883083339981915743939613876239686074018591057126056528348728502443352572164504851147371590561783661134709443753107711963146836688736459724761340084936915829704367801356451738874817619878495770866597220107094076137293304630856285998850318779153992604817802223791732479074466246134343121015518255237911977236356514159934801305476965445432231201089127552969764108067323843876897326836044608118161750086798902133339011519660887149372454892110465539927176579235514188986671606974040071030660389390062446928260690990158529838413571647805525331795322751166347322059896364781789853629603466409787979054733525302518972577121542145667171750035153900502862691193937125761743516214591936721725414668860966326105448100544892048149663530294318967865683501412481166027273589929426067497656091652763029677922037189086243188558728989430858881889930212781547800127589949215730269327549194359968635598255805002518753027610206420116270558942346943252215133482076723468787145021788606500703664283332006171129586658983617952858494479144736528792369526704422589129634712148367548276056792254391845277623805728910769376071561654308996576993754517923460453803359802698319956785896984323519900346718911601937150998143337619992999278288379523506595964112856255055178896156242707497801593815730422566967565674451387965679277107398663414697093659711512740768472402258556323214521137639328064240173447285554175470080553146975642160178099930086371174179509978533023474395247110628918520001636491423505120565546601335197316406557106269372697175129548138895783413760431289032603814981220221482578065576071309733207943067742356857501348536492535594293564888695887087444580752059056535724161554415892317374947973772038701566026674245118041616691443944015379856599181992135803765504334335867059265807723720566715545386583087596746475066012974397835636404720752889820341460926291311672155114101052942472154824457235006332677701189808855370753959472087054946300616247456297285109927612876689374467187389423631237842644290677466209784677175051336079328170106103203736359667346902779734751571451387413759191504987538856879517283720192943769857422840382470207191450836322403856067587010307674559998846016306471574732078945141140976082461290917038539481596680208359567105942220616940198705940150882472224773661444855739349522366717035799063749193283948527832618890876865290375519026676400083177276463006023335592981456797319608185078531968808521461450494716260819422420351434535411311395955942969347055061036650007711286183428194859318168851125906912251492801056181084405545080268072842124137408481943806778931133816312977409100496115362037897087506223952921290500820833014917453602841945341807403613765652306959594820744437947082063498540836378609777154782862223245395240697465479789892125795692922119046677350402751829208641707615772646021997158772312367303268407355404221181489901587257545654796084133264453809128612773027112175725345058174394898237908442712824754478175933654227403696833948655834620724166861619887929167341247922429544143717030843142179317585207467440674137580266546574723181316879008762842511626276230546998171385619574845768295929626217781972821030451624494579251453378836285204090185925820370210949388602120291322670673518993090037193422439014611755000041185817878284998600247527594376810037063720079779774281182164571647042307224591550098005193866117823712598783562886805711782490326207626765541919147236463641177292900692979745905375267798129105937894885300972790452515271398966858614533804410249321838726730753176860156425319628934987035646906410028030266407505805907148093370863727960425957844822486927987427796444668223578020544841820724223822878430241727975986481068199711851188892630166534901779365743901547208087015682124139354398899041067467618694603425796963201909419939524945836168431875708327898368327501954833860400993763366922503192683502581208255634225777973767521634118118458286594161227397312269280807175698200745356984633927970261634718482169402132664404057920130092434702340094108005041346494741950062140778622139489727277644838361974754602007423726987432440481189519271021435077862586641522040397940460712045775084896792094320119930318450635201237645164854665646535114463578845829612641822685043116053251788194411711511854047072919021437007029946341534081506113598642329202726344574103713929991200525531552637981513813503652896259439102021232019396788433744275612832405964942910754368487770721008018680485527843065037964943159569249780138060646317492573644400419984486052482774442032713268613993759654996712000842847517389860737364796253656058372705480542513016298005966435375741660800745497464912734796065071881666909724073504706373705127025801033330007730863293948896757047355856572333194193707846203303805831896031910985532810129727659839347554404078402099812483299846359208334971279454258331500149897317755311936241956807971963879475997033678995900411908218687306001933392527721873375658100530077085965329852792517200344235398827262428433609117305558664200218925766364425413722524104452630671765043365406228448718725612287935998755518494423181767821079495979037712838436930920622811306174579105216324080660809635006588913521919716877615528832771872200630873018112505130636691295719628527811913578029757125823327542523406744110373586742216370900516076958032815934014003478753088475114765534890798855025148794934879835825487923304605373449787297814857667220642940511121226309753964560647215889317536455394969368197784974133259244645600972037765030642325492722455251652662334948209642264882941265814287273422689124225116944666031927597269514790728001364904992035399349554144403018462568484279719473381832149375840217670781821468861230174823341771237739449771225140382729053470491799142944473276433833958348741724769749493533909046865576497083916970003778779197701432259563737558679065262090440937107145312817777850310517083992648515824516867276020991575122309193942726220339051200101535636274343947457134264614159930623126315691124843158104008624833927220805317745139360775447565671795261417619259307250383185181022392140188645846999402739110517595985251281025834027563164687169922454209063626330994547031503754740302994122885422678051379175481821133173761583684633043623640930970286006640521936525658703979006987116644338404564484646187324757770342756792647462330932440678831720635422280695934904745053340377476559315625007753346425765983550262764627610736810930257751426331471549497587484114960318810312866171466262379782768971376481142246443276092784002043332976099332914383703511331302845036943860701766546368757315976206885594211950649121752674139146160304738833581682369053574959530199898512039722958428376783520053578597428858334167416404267290030901353322018792180686076326815164255384073640223473978513396807815474394247533726786215637212714872970978929145119164585929526691745400033439636276667380826362949188798703383772645685946064267090357053012254454183082552419603963929329819770203312325754796552011244319618793341506348440573479908351460863441591747765393850778649031577889463437723714238824411788325409733087371780825223393497117892109320796214944172081623646394768932585712382490071820837760441145036810459893722275765083100192103632084746337261936033284625026783661399462133160527818834304745287847358490873936393026935109730825597912633221659368270016032079605360490821842743166009308627388821737528579807375645819815628870431389926230418619159602124827926236806960626391976596626877778319233426296219331274801161841720372272371240289966561391317989302997026256505824520934035140536081961603392584954775205438423076349708169522581333671111699843061555430182038165040887848694577392313729344003440566937694537461249417429108896659669522173665730172786919197519125769907634281653700559425191142636386498029837520154704032065209981124247855259006029864591511137927871750067870871325709619514773379824818114469504860264116445972815655902317078835401319706454629400421077682164839379806349565398793203800796053436255201458129800740270595264028210162242695085874099556982631760476417650662615496351105326773579271035854329386929580021331212117337488245281772067530913237460734039691854759297823933959080142779929004981479969398396904262856870475422281426875597866567221541942390315920191120932240614731506898556075499424477192843170192082488196744711378700537517566261084467275754214026427903605846259592046409718756650613642534685800997426102353174911602180760809070485999318490796105777584336006387712661924059423975587842058276074815398799856017842496546973289934808882839648614025216790281532042781255053441557584383624744485714919719239827102864000450738114287440442795582021325743846636544337920595932201151210900623430710430451612612698801719284718962321162046373252579686820007366370391064598007830782588800445601359616855230552021099877380031815794808383929789091091196983679697914097475470002073761904764773375671573744324925252934997206930033573094136385987716463620343528067035637493842711044227933017220837238018847854350149572748104280536985843364789609955798992481964517181489617073227827543810780909051750162040860770615683601129208237053612641434222080714058260543115780720800458850336899567566370185022674303535547185734188876282697623024110860910713185630583845355454450470840512881230154947684956931152657990056158814398840481849068556746410991813529779129523520005510658466033652175296686415159327572200671419191451174075627303896477147990797532902218649337066209214799072434577657695101411480320000541161137858065216224978609678182936484519164725426873526668363036722772832268975935665788526769764475506078049183376056747510230017128358097225020066244559349211206314244292953765112816013993998180091045683432323498257908297737607933969238167904503633557599826698615302912134450360595483322400582785200673619720777520071912551706370813066132632586360038843656846517428265017039964739652511481588431621822759360769246854603635316783456154465362135205154267370189162877786948117552806922082550326662778993367808605281352982443851715097392645476132182865885483414578350015607337690175772260974612683221165974761689036155634645431769015049037288298806686336802233593561185945154992265379006011527313729503455922709606969626791456605173304006946518332704487144228019263615275568213654542625351659245863979833419559316366557634305902409844282425604857941962593148632504426501011843769883388854062027236786457637945628481553431853913246222569201090231323773716219066721031126310589745020554574768693762992832392739153050125182402264288632058017364625320398290263989826781070518753903919750178336178579615345098515775465280845140442948209664759943497672798027650390289491662584242115483927640183466837698742858051090746153141323844162455561744055028505741083479243984561922047000552024989628324355220415511712526441659669195299774867056350357945187143680286620287833993188870648469183151232731835062406419649512326997872547908672665849853985433712375021595056078517683761981674154421573567215259024125612718827437380223486651657551468443853102358619718108743532291814958014227880065868494892728925862443371704860129150898033569865510074418456020548416684459832990466430352109770693779552172903760088779065013789478420958112546437975175028834758570465590508216071257330107013114768216330154088127958418505810012073791230601002451833662300507358394495540323250295488424297961341500254642572451932615280355090185884593603499930942501363112329859327999989340229563988054832003185646333309573764907743513280364324175116421180729847453480647613092497344798678123698634928262821128134029057957271568803264142129169106308577472604048384691552471817212210379059853453388962612959148231987240476756620787903036686483365576580350056776007563184844416977294017509949541762004608458495281208379670645098448305263079176776864105574283202288639398064874205427597926099067184826320474197160663412095846373065905246860324639637353854404258513784387174000391459623677874091042503846472955742640706150546169742379318694382343158731665502878145902084326277483552379306782353568022310612690729040665299216227006901089058671679930069344064861305259531899476286385405154709458917191233556520213971025498849609366956913398286179770722940487308093560798747294503570721945993124822095499399678558228349148845478356683291331107047099876572726188087637385319452596687292404944951054076240882737142599459747806540349055487491085066736656820570957229387926850577073352341083746351653077930186390818462524941663610669968953766648762388725458013492929302473186410055126860437209614671419747673327473140459842589557108565326208099702276746964446259134606830090861178277656938765439031608529376599774664091104226971812152499058121982627577926171356954610321358230219578883129924017139881415577949589120104887064102177984970905319481744894141323085481718524268171962231788377361288909679840677418609588951330156341306602263906664751535675666675707985632596447965011138569714628116462107581475090502640974302507563196287533672985962051455345412212708147243833173932886589341469279067477088782713200037456820022423525781217499649706700824081348539421193526255371544301461990051876547471173442540694076563881381282409017481765553937443465175282923268440727834049906366491054861798814346106136825877757405044037335400065951425586878710702714445132673908630213499030305094830054751249022111926284665893438315576030562950792189627853857948564828869219158365096735931990554800371017110316119422141755225092473489854195236307295995794899132320291461410518525755362578951104050460722962545117004427801337350944797284856493132583920962310937653170208676459076688858253490178607070101544039768525540829485486383805501053264418125242631379927612349806978687803178337847083818259062618882679847316150779840785892379816263862145151145371865376617468405157858133902379914481937391873914683360817280476015430310319519597751783783045795692575960780411962935352095521547804666271133788226154017976915557796258218437996783342193129067259087551130782897475211212819138256684379135387453277543598909788852806443824445713472676225542759767979394022946980289490889283564313958819928717123430192233420839224005088511967749005911592683065602746437022554571138814023093597843511383728495992499161736621998037073641587908835095278809024935067067839088327884739946037758527084960975728194401451937770682598973641967452074646463301250915064650725422671208611810026381528179618614049534329257624519382753255748466463619161074437654070149739043062197141253934110317463840554869763114885587839783453015378008061358214799051119670875483839110079071057415664400704325175069067280150868076084852185504507655152128547520844069042145200320961246352108978503438113570881483497879740500527922232650308288703132017306120836232602831810960428247211228726035437935461977114129521761464002270416570756493355925629468476725297934189084758251342518165543803711662632013539473244532269090524823818771145021685135001163616046423381205875481212935104981413759193048128207783702346001864783462036152102800121689061942432561859456348086012656632611993933776312469595393548680414419663773829034987060713707895361289313306176242227556143540453592559145199280116482664169452362085732437399762700091063523614872072042080718612301979537076147848410184822165312205975046510050148144098801974394796111315628570955503540757608738687306587646893275153778830282831230154854322533810610670724649845827589718432366602195082844189850862246833456440110868726817096266577408708428778901446904008282048417409719306203486172536555276742135846687245941166754719275272484986790824777185501404317661337336929721366876362595972468296254730055095314773482779310945671223520527119054264540615032092702646376717245965885162054617108962914315724825182378460404848929623352385515844092983826490973530455192551205340537429734879152738081947045023790965133755761777361883946271222426111193984514741472187449258773902985458681112647095121516936012922116188751740136700622858338261559368040811229449313071971799784082010258975051820345441871510885237135901556118307741130019749906646221169180000683875928503047266677193108421715287763891516338993578766047375205321579872626579479204503974408300144720072778285192661545652855111409188327944573610811948542785738164775523905835707656819873543738586755740013718235900877653079139072887786229029920110391389441997812654760295275250684517978401889387682996544233209469512512725837818637671830444215609186176014021047766229199431778835433229112136121519954118130930728300705135716760830511428609233945418131361318147720617854181289137654611973149566622523955093022584457211332082515562100097096627790799617150693368369865386949535590293866671745246094447880335649786187860681315873953155765425934824129321673446123842729497487293430650368197596554359830458997214196269387540212590243492529913775829363270941773527732246417626585758434771299478802949015990646563255489530937601047681787730387166233381362391873552111615456135366051017047315561876518864912532690572540580443212427084816340524074606563957208913754720498057207121741964283326578370166858332985041806780834704219787986767964290512068066681604276498898785793301075690578398188955569402832814173833279468299095613744875275730427995346025615558004817556358381894664657325087374158409911020123955282605947769765134988057463733427146395477987268820815523512121522670319557775938951286857117342760584371599386773150508248589056210411781890386740275429836830039017350394392186538184802118422245618280554276689494134707399306036617674714888829804341111942328238838682279097288940583750356228051092944257007518400464141697387598943225609056022352195971576570897649209742703328990111008066727502615201114831164706196313383830092565135304422761057699275114901068801899155954015223283369401155479425241555006189866932722906411665327049361213353412416264830454923443989099321122326053836270928779981322640723619851180705455950319073758729669271234935907378081209823822231125384144026240984518073681820423435948118739341509804430764410356835585599939783797389805653354137035288280313313333428060686930566518168163227043183946247536136421025667609710593762272781205175782179702909747617890181316106000160144202164068554366885025258019138049468869680485287867061000190381299702505261683870555657563971573315826321980054957270721471677335232843795622540813229629056137253679704064544689911920934191999762025682839174598578155198779449857389714449883179868990186067617975541099784459676970386408148773795888153968009902732347781846235298610738391136581899049827971688922908388844777824323881181011810530483202397831540621945319001416647323272359656847085099818795363560271552200783265670705260026734263745963574496862402113489338281213200025012520955187062017094052730455709443869537499232787269817817291642186912461390016345789947425202370495726133860076400528360688447833637924589106057551969830577780320121058914486049305715248078935728460160907591158173305958694302633242845962631426880061785488883090924156919203368630949255963378956553535353257751032422216367608802597645331820381208826120042564612320187884064972915836211680730164760342312661996340912962021131413781570887479087001406782035590430096176879179826173952647447246652009792918551424273047395922100432047980189413400425116971151409357890907828560293860151087504594179653430855587877023628750506803270222772109059121162048980915574538815271369094679153260283231132508500113292033687278167692406755238569252606627093945585544204452948255983795134811156068676926734186653676726409296915661613804358980342225773470545369554751661055520141189955494625773264306591625471785269515770184776474226235570399386628265722357986809835873703787092814469198384687941529543496769750081379360671745135786657954546826892744603246043936615171352970703441885764287628825711975086651884395334409365698477179410807688276820715747898165841016939909942004769468340533945023606055034206338654108786914310107464537300485655222688871891399312646876112132325282930605513818915216127223789277264291062406535867539906206359258806348168219918852649652581312327540983189419685878084008525012640137813074779946713236248570780676556315294995773510311254555401124524724348997348858244054030930381404080302218604014677466250699073338799950832653894910324506404062655580959058792265638930414700191430083375057128177470756264401714667442157064508295360503472489024829563615020704363427030514157969506723917607615867329343189061794704529944489573279135675769370267172280914185339988231223135606008319216388074083701276991454086293888337367330697302231076350264095660489433370855513909971121301280831653025712411654813326820021588223855035749686867628294942270935730197712010485667130119353087736155526946126008051751425038746851805082437577046437150169922264105859626465478732142490632932471280690748299058399062614421895838884625244516416317823100057584121050930017139085305141824225504543690424273919681333908391989686265468599324938612805382518995351284056825603996263861917559910922374026159031662004284214220214052440113224921901109749015126387395427602707721232825727108321053119666373994118518455571699510778909537884507194090455886143656597619222024540310167663575712799578256482985694109503464141761252793402896234229069758158793048922847537608913021632154342860852455354824926430321663641896650426160433557678317911449677578054761566821517137373225414160004540243580373922144628176161664170412177313943016814453836770980270649543984792740405100110051637655667025669773437774747401428588603326050325254180759227534664587549583624708411819823415371002242311866571974189778328814544426500408670864931975232705684948152608199513342247744453632258416690900085024429839955928988654151455198206895386161233371068874663548624512361856105412238727358927817330018013727142948682143509388175101104136066965041358592558072054115560229445771186596710850357723429507021753783826935204688887040861099922638265964151253657506611893624267021000852386670379002167773327734212191815775411637126338522330145368358085177728532067445611500741861007378419497654056893975186725110953972684773726462176858044909885869805454308315518605701924698502204756213388203071870378904549788951929700889034380677294569087775774686593992119755900818687700440958606974941481976095136882271683079093317721901451299789474084968330828010700617544064020086877790029891358918051739917064155877322607002243760077824969123447357799819249533105029366624587755182029784991405822135928612460216820108572569776982582295813753638787374553866453383315708675830747316037380312899345415310414421552074731778281154203980282802476987189023208069302331794092342000288706874648948591335588889598832417935928247341973250809031207255144152879879265732805168824778964078379206691329475653917346955394102295295905773251415421634435520776948760951922137595358218704272201295919202901567013963951256500839566551471692810831061449537587346582943558153795243778526275475355927484625150853393484581180542871747987220420078211389619274216423616198972052238628738525199437627004662447591241347140861042521561951413186546880215267993648306406051921559061114629164442245865732782828549603808902195783645741593175513702214157768664819087917374839970515325130834398266083550649427041060715117857339665870391940634310332666771646699912269233033301472202678164558158635173054886078832044431114379131372940423092799038286487353320482996957364200743377598141194047471569538742913908703460251382448261036378569959292854251766541234033536085695027204898193025831908038709338869737763788586984336123427639409686064258449259290719896668164388001146639236774668335588036532599649375772271245995415129205547381063376970929823970166017611399620660004135526151148664625679441925054247349157037805016534480837449477938339933346448415594896886519393717415892595456415196283141647419511779777881026267097860296317248513521667307359664442006659620250906790234631017432466919934887990687521379568336942199397038787715917337748284759296849199289712656314709380156230555781411997562497126354710465603169204584185689940720870470770333499936315975917589330715213538810488922844684197573278025107346036249029824044588584020413239315189152247627391661894733145766360754761309288289056835225890534040946273496413774925551444626219729284936109688372824114181363752820674736710571300743362665384985518339428508351471271558505194626650975426131674209766109621651671338003878824941974904612777002386702234760716467545750021578376044920031870412278423249554670933534191147479629565063090287029277468986698776941620947770999441336231719767788260537552436934902985745659787359812501438401709771252127633151198553972797578353616012395808669013237584029343439172429581659746617733106424313441210586725742700027031371580568763606646358948475009088668873346333888917020041108679097174608663079669764179127748560148030212363136113204917824912998286163955771921592503020285898587205342537933700082840178276264813602939289762442750143949684255636884466994750544907233746078871509627663735243023514248741126354853833861964889578396238070969679645964532686504877891932266092752924527329068978699724765099091078704289649703357341311487264528523030031780429876445200206956308700407010989705047484713697834859624167857342824271767608565777111938720148904997491179073703003273962230112368461086553844499591411795041649985597805960819926175959520238978904964831340669925289956408856032086865435822358762687793415277452700729220884071440292560037828075472587007235662365078102248682454693795226929129492720729004864533692455292775983803935335669131212023174764102795372344254264514897885750112363168741799919705681921089195489000691912954684705046888852640635464578424607719633925142032621342324019959059573412911288370225237506779594661767085824619765438947241030895507979626039379623126862331838449686727490885976120970457136388090191936878681723377474880381660467430899939636969314949709173316580181277822800488330414916032566391311686967715480797597465993076583933281475885226112386910355569003782362242136645552865577607487329333325847204426585121295321873991730711907914195652743027121389688595468121063377464022854796773540099309051345954175429131628962084756267479594353399105775807498309469639719331977894080473908539875235702812951605752483975748125176005744077847149740952546009733901273645012333535841351624726014791929679302084945547488094674850782473555824066605313717852917875510671784950825783893121767631773805799616937182445235587256077123834781427221328657435587537962233441689571216494103471555533897582814679369084807384988211441496004753988476711967026594249473214342385623697271708121285842779359209084610074549565069078462785190622261186536563964734777667353678528735761301077455675672562575192560369057621368083739670454662099695085947324164523348766634473003422277868566924283807555602254226380088361887687677457054480566050550947841947184027709226522153250773124271664450594448046073989660916796146728852992534796532461134642690663151727993298939213541979471712306995241775500662369185790774414416051916822152415477742840390844234405623153552308000245010985264353236957444662557842426833033386653960672288348322092684737853529001707322849369012023409010258975326215833730744540913965177047796827604531504106758410618053659871145377752173466684007558817342587018382378977050463012292518105975637712636364844398721405058099550858943290894486551871550580189212179874216342463153068787550535467855025546115437185884011138764244645623720506285939269355971916631739291103426574320189897421499360609350874968945661470150219679771049681306004625074541503592672465574631297841738314571903156318558773356338637377802887804546422320758936506287792619338308918756104810244980883969714569173303737738117661922587997074197077093595557146412905244212743659865206628875079119260849207081290378958636902377033864993099869359539856192231839639526626160707570313407190623340530394680054760955054534563533488531534418901805197599437805216606084951850005600453065471593061967756804951315135620860103978720664781890828395829209858268001140954577723791509652681411522391076002232480614955892238653965201485031276493545256298417442331479747653308043517847048444649382819646323744319211495126974596250478581032139134261148904862841897504799824271168360891538582217849645474285508383826541821580689308966776701353118009071915868883865099936104750790214721161313288031492582296181577720821979425311755199408329704579079490217837264200130711593355606620598078710364796980635486386112713781867898702904829207546740137002143230545229197377789662031574331411333513769624691863970734037372840314790654652632207851022656691438560676386305537911832567085618431559948878031822136756849965275478883438967638015084994306615476209154350685315909839450547626601644902153472150067420388049235394657996986275394188269050552414876581832469256499957150832833836683029138844708402968296005884642837895223323218640249223468946186134236897903918921739069070741041288904671727214151450604216861892662280194782351333412434135856106890197643115112477258886583932280848367674307979397181524403203561420718202435111632793461829335909813078590250088475670955380939028337913169138337227974317483324877590500098007761861484709565452628356671718222389719741701122754802018611893853914482239657545296006781463030544428743564469621458280062214481210358118195261889445945778227507698835471566007213505881656540009147319485839978969238804411823060595057675610799552959124157957345232168798344210254412598123594107956551145464306102629569439376489931453974895765654917797740227807292384014533257347828921458203523161544211910486909990716448162975790864144009012377896475699051203832149962277482890784098597227503094145584239088663031945936374856147667561516112107181134428128517069734358872665160237969438781142015509958392567391846757433798937179103274232251651203823709923486664800188103581732516893983760722224916925800516436629674139832751593925181349307527210318968357530473735408682535240091589631607703004429077295786953439374325131151838311244997476817318784111854586645455150820898571286732285196698057771528033913906948905696170656040856428322312290487711445747390555951510954829024846612903923453106771381935664303832021918901470544327489316296533037411400664183353817423694502765854546956461128126359455047814411398098360236621769280318676284777796081125408963536237609563607516893128147865301529657888966761997695619300657815743081360659876614660069928999991129452496970441882680010484595844095291175146923862687975949150398597471204405688753432770133878230082873866244384434746870372054088046014634374859718132877096034500086573084327418709122101801489250113644916579834541497876385412098080942431512255674333228368421866751325255476613330641412556375119860714635538708091568784089443528870440074352086551370957600977531379195605278017740490417322720147170405764586264067561007272639187807852343493955916940065288737151892170984836786461612266578397184115634948828079590981895317451412721453867644641422344676302817878372340797133344907766154500708026418007366341662869505476824429473691656876951307370156244031790656789256622785955764359594987693980816296657652253609426934160038484187276304874128094260772279277345616430673423111342760767588068286637543780048244310249254614618828219216403440663782885648822752149796539283459439124990159623163221629747634677310541629039027367141727729986848022853030518437008316675924969583124211177065775864742320596416486368991179656703102202118034480741614481862494751550346351428254362036546837604407189084059644736965116317273789555031207924288724500674455026657981764778641836831749076479152828279377668560299744564174326503371678054750614634559612980291349672144380766724166357242143181185698964273537955322886091220000406176909738716278405797572459370820708437559076789546999454131538306473710221940401412330601511639775562906502698455605667751202065938509338548680301557455957239778392520151266468467505180392705736900117563255175894358624699883493478803375530076190359826278949679948615947870937867542540807175287884585027336193423587672814719986313918283113900946090842673000807971181842144438255476580646739742113093049000545247332723714642542995560124291762554678603414887925218985471281718858529268166111414828876273132956244667481009499183063173191344861648426164461199735136701280572958009580774709192829895918655661664950212182482113347912298614781602786433438700360326856606084331533515282837762716583202912168532212765749744388135937783370272662422112170173457110914168583058771395473291651318060648540206382628074045996929101038573655271592332565355469093654437821230154090083705383470749884921935662539669466059371022935826438402595078635273709892339274044515346838005393732235387067208057164661614138848665786475419805932010170103009206369648581372741613134760545932214066267023371587520944247380743216114516095490539184566806942903425277098507520677536532130554761648484088846832254423389594449673880087099673326915842885594838886860507909977916366104128541229846149088530443413804333785720965569804177290820689185044036287336221742788450402773572262291435335156057859703188781789460273715657007244870287333716300923116617553752108561993545429612441768937046395196260633639656308590390976369555817149967370583757844403001801483004507446942575333571848359400400264722658151729059506306085074152362890757278576035739199890208285614821750114607120540593034451561133844407610886674843618247782931523787478630938033511313579245602634215886210245688100290515512962674857007793081052893328936035099729914233904194097855353191115560154537713221773682684251927842900609744986632382823187093258081901861689471357093427427486824594240305465691474879079438676613629197976197218376346521051993248413999006800181977649243362508955319547746976276627971616441126097587534722318457328883135727184616841963977797938690603991994881558052085528970714100673252147742187235342005425233435376618259385202438983316885995125963215806897091620660366147051637955403524777392996949821577218174906100766145144697362595777848831241116588852001318019112450824973578711991414066192042232137975632177545600474152500603621115632033898430473556516005897505302098463731207329569819612392888835309568531131442243488363230698275399589911124176454227715846876888308230923369952984171029668270726097267172963689079302861155000437199790385407362397521772397244441022990952370736108364892334051037295717587735603491256944014086339241219807040124441160929875396563086043672927632148791050737129309406258024680034779178813969071651163437005666709762169631725946724325610298425153631731710225326220915902262793771690050763536708664072280131341397627703522476954344405004024171270716200499878985498451351439011311539545106280283256340392235925980885712619337280576524069733549207550807618481421055685928879979106865292480917068399035211840919842655459973899843091294505055891311049138820155193575047685682664327938957356984385334810523390736557530593671635470726771677638236647995757720234883381199230734695353403084924450415760248202291513112467911274535607626529179680196419827656235774718369416955068678233909319238946007538143793723828254665052392332354980556578396681698659242818931690228586961526742261675643205409290403159048187015884216783209327480701942315810947451077771749170580922315735366463263787668451112628363985019424604209199650386410729238163823864586892577219039115130930359963764522691212229499099039538618260005012597911107719973910065981590523096499924437995380693343475628372937879336808546518220773635764977929778888108374383777517915508942079395988928534246539240474898404754353248532633589013944969199740126969642239519354307469478736142641058833633703997737774094295679901841317394608203663260981187292961445332394866841941560633508644192125571117454164327647607360686349651614266036490272921451547743535808709855722521914145687308296163546613023833299289039630923632565575013841399463977961759852934415338788957078392424785552741631512729700460569967430706727699809720463855094717581595253512166650833108411799342308414282494198056932071898663399867013323289289900946481120658297228276247229194351003546389055834304057739629372400483348868485718923447063480575457761525868805969855103884387722872097315360674748035234319016123335595816551198660492238117097738288698192886129587288917902187901837716900439564245861764404668675938069323202292455840491665273045655908634728911977606476232105834772607012558624405996664076605917375514709873557769026052271730903407162981820852772566634623832518797444575988525109892856302659895503246750949456077628508070453194345593753257387417655762946532746701833876241831416287557027093189527885969769157834194582646035374733085065607678992648962703424291133350870094877643911172956101093793284018077213475862484078318159139574313788516731451904544375371490576781106010855093361135185659876510393819199855141133920520687469633576865381700464495940732996086412300130794110102122142847688066845477979980448347745660223310673884365536922207785287300902469004190225441030515064790984712374335751636151031364335461902931538559372821389734381562031713706723217780276932000630983087221091234432654094069040297552537196585597580885928606166733141205614063410317936755746502273654913107882135722595910347648451227226446431987304123225816361787272610406540496103740533558536484288794584153737285578229518831010502460492811792415847573965849909794407343687019261084751595309540579023052545959149730680023060581897586831412908555835784471931061700432995448069694786914500665403301145031961527995185405436901848755526191226716234902977411191224799690634111699874682935623416772894181957810689191027090344926440481743978524577939973649835073231792560368863673679714820620643204863942511258751415866444044425925069562544736050122531773352275918551517460086977129479145790623681974610594738778743071321911887829567251445384174531310650197735008841341007606829686887581949062806866582685390598766881378730114914067079413128443643816442531056837607698815755693129589800694079217473203592602022298832315732639139590778361205042811827277433153658610222971655778719530320647076967560314846172982069468882263376984735621726996810029398112524160382459360498043887064531374583513470118185977777854748208898289409355301493074211060181213301852869740543547383638021898375072665295036307210588146771485191643484548058643908153685617448457164558541799991739342746852241677970969781214125566810451600817492656396092379976810777467679391569838082472895310308133795366838760113175729252792780390647076064803512132618558316800018504891351846484125126776015702205901106588036848321877440348258229651527530759101909591032165102991686548859421510767619424521761856114265660630560301273353004045445607392889694446727761267253023310164147710573240622379938076856003693806127885052783851843826262663753488957840969712754723823705748150732751681151224185459871638690040101602855277434852245503767651305761252899801306475073450185198249071948479669052142689392468912737546583129716178753388820525225450534556831899580990294763824829048014932808239038568572499157564450410345327594663387019555619080014440843438910357257915008210651888591350079646443568424466344415996325181846308284745836293028704380332555066935138772965297130631913500102575948353364812504972525281634752032741879892846883927966161552079918345028729773493870438596630414712997768904313857882908387384390574277824946946530275955184972240722070561063004110686261569160191269193140104976098829039092815142643124350630586435060857684098600476884332412862788991481992899378462522114019135329451438481641463433397129078134686218058295778676079441443296697491490341460469835210594485386511269153098851955064646767710939265222263174589521985266734239133664638778806132750517042069023410348021483149929059647244230019373759229969975311734927840781604595748798050659745163493757976314829682205292061490275351640418256303211630097987768815294152081693531783924109494805504437367234553833779320656116802487096849296144421444875676536632445381695271021569134739395801853908811119899371718933614436747811519363720268190193566183562402227527630224953642594512737002941120802232285287608738293930403331013643562798071387887329616786050786904483192163376156957217857032075465683546437274803043262114083316106423883310973414436522909496137439296399320874272816806506084168184454183718241548096626652685039452316421008479082090857958105401384370918840653762712982326782318383619823081077272736377321348333769433640555837061606274848553749753291105669685204116840816533309218175965919093638621717434772504335610692175920247616416341363570603378963135317960570021506750513663430381524022428230611537402580831380093111625375157480078310420911434988603543037966972476343987780264968648072852909743672520862295367703077291106202660993055503010624103797781684705827876154121191625198308696604524004511165536286367033788795322020486206473605237578354993506138774693595029997991782566269509920794461631078566809428688670177738377173374565053509010495053238888222610211299217124710593523723520356865028795463813103503423036737402190889077838230858100958023455517594928483844884606294232764017587973781882555552306761261862215854755333250599467563598349178854110345049757788959663555093958891571574682266340304304131071609046020421832234795073780722491784514543988777630248944349616318278529496429300151070503664218245368133544271689006649789644277948843847274146251783469822356028991186327344228912573854460821327800793278520101394260079224964531306397519637885907245038329470448598927448910898275903353841620934133666035819244389825560284886600330681612689093848242762457748119876510231873625213995587305608571980561054626405167915508908530320676088110995034895000240420598273767973253974051606742473454139801287253423809037415078246632444046923492527462824757736397881984032944325522362867011504623074581181081590811754012904803458122157332495575080974021152697173067899320208548209775504911417353465699156576383364770333790497543378768422847489655721413219818994126530810503202440053900592189191682418408912001153216585392082925302294303118102621755573138237740335222334024443405282335937970395727535434035407049130698454858143505613961083902829362842195822104965322011411988570360420656889183553520037209963789224795277962316219783040478065428500172256896915727335709641476161326163021097477460639729058829687427795387248570553453995749202402572670934683964961694145752646222845410957109879725997663667766434703753506583457507214558864925850747253044078596979142828081129222917115167456213370915285703641464106122132651241638554585779466294457235461097347987291207021147779886646120339487455486364352303647056939229104260083624890202390391676715582380696183512841065159147543035575860477548549427933563415025695501884897861910168580467273863463174600654098198806959323379913180447526167491311916730922475112900863209555350600840508162679522958008873001283611501491233605730072842815018789416479327123913705254090219612458478242546306190256850242795733108739169742389169405440240349241055156570019184445972972738092760611760737350107831224649116816898466943524726039854598539311412530343515385043165473818208887704854861672728157257224800953572622497017983206607845666103168807776412809654258359099677180166838713196252323524272685858170984670013192617142959742981645948093469548664847311783176138281055904355854661713350291774770850661641106022583170395688794001021761493818079314981406126708846584113568988650527974851388211260525526782278534336868923646880306484114068342018355940105371546558289140636720669841250321886505021382108859657069479864251184891487251487499876989580895929591757512947001064804479790338744634230672273291719366339262433065148311427126533258825030201489125641909100782666659402743159043441182185136854666797595735224281866547487777246628753037806703424419359034566189352078674291399396553758016408650774412409274698990061268955270739776504881904336930510567924894259511921891349769891880858987888744656945860550077821059155437121752413867582648917079029521942622276916898033232201111944153458894730162563415417237342961417518510404510465004231133787852824084089006822331919478210162790323830184893213376861628089968678563999631501037186195866226014044767994560781007296589486659601972983588523566603069496706521556555301871441921454634721083585514654666187630230938380472847479177976074802596323546698121996424342231889527225085884465060301987794454896557266705446720131878670388189945457943528716559417581448099927273369648634095694348132127787257547146090434072748173397666386007635532399095628167725852804582798873058509458761169216123813470958899981188075657674112829678296756753842705753150092246275022221367978732208206759187518511897862640191272369010589495555266813214506158695286309834852370700674312677921264404618945389070017013877501901291686384741442171437805814092301387272294877561121021767794893990059963493130175249417509704617540424343823630833601140501613770214263789555529127661339685564799278963708194249809589434978838176067630712876185444557749310350743865262390332904394625294454980539386508975003690098427240071423762509764710805370086969411133485733459240515892727809603969852272267976503258768661449124907768938713814602202652415429936311600158901286857094896137444404928642878651838495810226720112701833054611413872596312146285660747568646429016875191071586339839123421827510575319431670149122681525709883657061339514443606956432825082966668179922208635754404311178040136648571906627215113102941180223184176037879047830083281019998184763862944189481250538424441663325856457226028703403657364948708484669281095899640292332194855375647321786983107858708526541220336292193230219272901586514098708415097186055887302573780023234848593693252635468458820667809916755751748586868932474337034253833688069019802691029747249393130602546142057616566767450927170937445189363264123697358440747650974311840260666674510811762694357835101760262501596262180137556350746395401314507024427069790250993604604573307672512288293262403033436389206855825188798903016758425103256304970791403453190897215426189493259154251854001941109770199402512567079074187296773759804536665141222677658934821673313904035613712569968676989505127935287006034586170786266622170371769312738284905217296945614527464535495781288382093834927338177893822184761603026907893135906972312177744460447656721412566680396700866446187605336698953373488319925848620338064296742264405788595010265069557576755883888119249243715109273344287080507966656319752860757482315695485412626979605306890706522181848960181387278933942504238468390376816168926299873992927851830347810692495456419367365119870179351334268978579949924170215947154630944565947792203026960199717643332256199378921214524692036175903570893135905047206731439788218586409112409970015918389011199627047001912365144077229191348684459406110041218463747276053104930190469656144357845243414183876837700552906899085646550097781582772534941669582172729041886835411013543081873146918835447736329897798335788488942324259119816464255498643813776129907726493838539087872473966089006527657985276457405935716982302550116915958784884496610622567439763719490478296708939152239662564045146845719211574576413349116462067681249133457829782053837327979326764510042678691188221632586121230809497047957341656335670654075907086971596829250072359658114468820467698041424683752271197124969480538681793900519152292583783997453033650199235710239214977069386814760671852144140865100991107560198248846259060907339926163368489000000363780003371661399327484988465882344158395256420814100238643739746798923763911472363102736155429331296528311379762454934591867756995254829345684266246533102271574224074374258460097895507818292552609361343700951192410257082069655249964650454499188486574352105430392427401576028359816987361144884775384775224257346223219504762824586901722979200886516215801401323043856344303371248726937753052649224237884483022381076967271094469320577095672066911160456431588705493090374447026371662952433437985135537489793489865079246435730343099997856457568044762784802845317770285130947457518076919839722608844308618171505534540772086160382185306736288667070073646591449332640797339669893027976398295698138261871334949505075368486146620972325612098748592631334906999076998755327239283814811888116597415593166279750049133095207534264759187178168433599441039441830412456730466461856915484463560783288343792205615090465868122757189485453609628824605636112843760700187664252451979986819376731516913420719632922647804854952786875779663052047425391721205439201733870023550145354844254785706208305964002686292845399021500817766333479869971142076001587073263014321238071996916514464957302693022018752072678809958125657911331302878813076165785912653152227401608538131825123666918821311054316783482075422171604964250090875302453913803754553316877333017743980283210701890728714017067828708798391166247785771946939752959427228059899102557352923814358080262133034900430382857995087003916143236638545969628469296722765826241883890615400864037339199806753385957231773873220372809749683923221351186547940961756335634074319124002629067382419611930324445569042275834225043748353730927671428947984276679897800958137178508937531395127562012716731083355552308391064907687781714477116720497950578870129500357868378364277776519792455202123795064266808403619254993553334582846097538976487006533020159988392550482276930510010936845484040703960021936483456058563908169527639679162846099419389195992118899745208560701118499681588524783080617816790799284205608602870814962317240364157158105334310915783855234844622303744807868231739511909819839046915324671015708738509913473329878237051074606389296944595517430404673835035015510464062123645759254861471420512439668092364374055734502558543981100238817168425625945404900729682847410911325052445439976906016216175761937090752397739334465786206002411957982802315206043431567746323162567126604987167723208502235620506832291493288128831806826907864670367574709681952384204641523958199527121543049941978804161937283949144686265293330849827589595544089925966302891581243915540430739813863928120755538204229407165739713156278209760207104367306144188691769847570814819758956993788478697778911371912108319897391516686025937191592992630753721342656058030706994212465214224669581969787731385491953075306101751170077891978839241200589600628700236214578229480609149199802461632197806329166553790532955483423674742941507833096165377856748863333819143656954031894564109973098407780683653568120289134632301876849136832152956419992555275713459870710421604803880668100373310115856700045646163436873849150748232580502039987560087390851938188943496478572064576703639934994979689569406590817724896242968077298321639666089978593054386891909998300654489202094448140224444942657242273206316944565073771884530471296817081813550328311878902272853815807247357519823805428593536819445749586451879034748895521212473681486043027015692974951439197966769189020112106389615960060113041231824493831606174340084990137643094428088937458820351567087802677580220482788424003612138858329736272994360627214415274955942656565368872566719230795991493557970904479284673807683763214248033359354157503694850999679193925022036820974893110880956657863555154662192004179701179396380583258588374188027513563322594821336948881765664067963333306488215345650539022033150751576775883357014790657827425822245504136995991206924257303843771437974307122744006316339097541898705897915022999788958331062421918909596176441096056719210865655253754530807499770423092054405865103114987711264161370426043821068525596404960023761370159641376379621335664189887596137394611095700451349644528463658167678194047252050483461997010976606163420788732370836942786960263654083274737842042402295509586009885490388166992786755567442730840751424748668197410098148442901925275443448545286723752929599182854677599308027335695356649812232845861103864366487353413341717056892144438779446778871028903783910588816120661508159554508130817507847876487096650392801627721387648100499146840258772154941983753860662088198694036495628968462060538125381348444515153590429580412162492544893309749939467908129007114526882445886724641424970113357085859496014573440918485778329833974367591797366582018572422148645591813236325917162115581102398409262296542319954616198924294829966394927168540765783536070733018186862475734712543518155170995479652600923952478075014683331408226765155781321167724523021178918717637086011405305515311513643547744381445919481717313703847428004858519268966857930863306819314339592908621197598836745379480574888589690031709786852883240204655629897330162999513990609541174772623448719909786617167467929749787632278845681633595822353399328186838359763333936517639280920261402909855367754589251808950270787695171749704313246165923986052381105169069950963380555940116727201919729246290392519467343999668899722609601295461679260067753251155287603005659648191102013109619375809290600435976226976530599865378842295494697761013272574885139730199934468733356490893992954270082340853202081550770623642865557938319458364657090804961985685202229795211886304344063054686918685044586034258005156564046378893338926317756774621011762796670849744587834674495107478423320730392431976578956393005327893421455630119790286164363939016251101969708719960003923243757298460803900480093334890868695382989308863764487022178390429432649361981050479256171803151071039846130996901556853456738113955144988825743921466451999743611657257748014968323290135066901745643179508510936151981260697202658018304358415830993848084567975506754903725627546397877836646252345922854312441281939598819323879494264556500277857173549592232039532653174351614775980518726919587710599368385408556921414715401697824394983902523841029496558717944137040705758577147952784315663970310699734415383256972878903532556915129261893395286783405830459792513026666591487488478590013180666011590570393004812401258504324331791166753630164610180629411883605224853454140435703811906565880463886873222748413275425322474999732068650453026737521625818508463533834411681211475151453702688926454576553897239709029627566243594728817924147436231986141312443213652654977123442702920418726627294764638418150864028102241063487589746338622799664742616431366642638285174080897427586137011450534808868977692642950536168192205003491830970436360293798882577103331832952508720271291829315884913601561330086390070911623875734185642117558229297585950353329715684445725984573384893662494352399596028490001706717005609778839169645404918238392022533997065706537638996851359468064095627146380971467849603140783873059001277603966841233948522851907861206484085391923871986395933678024270436149322121165812394322001839649764634477117616106261344544049136038814019295561925224719247715355513582416811023407610182906725797396449118623191340937864916047497527442594319278141638398504842817579737267281392326601940991916530853002853753980988919142949179826263339831492287487334434528183093662145555178864819063802423323181420034793663084928587248331142427620861578306500867953567370016827434684048594068972147202997172217941840463392672626141981370157247567425426078961506513278889012590788270769188170304433511958123100147447627864275441894182257962779567121077801479185154719417863827157172223230168263461382995369994618799614173322032111035940060841289932637715964911298945709669658885178084055631810846386054268999417399220797628866914381480006294708516054591098167787067908430811047146800326604637141733633262487221137575663210831791242413071701987281551850680942041723986904409436254600124892864931085979898455268019299719325750601084254402266077716688679055173953090843574075681044722898302265478971926845677500714598312781406284670886837143900059498489861313292108508616836390703398429222767585688487540350030203463815085211071046642883285733106062993493394752825844475360715906577548269028363565836892602552435383641023329560174232500001557370678011072575370956755253213511784814315057660653721487561026319146871352790135221814495602805096762144719318362556441457356305798888042845358026318630618147187710826242732683578328464739013644049539376367371666314474946592719471767661366955925121773211205669907986013766721035115140760487911952995799901678745991499230125220872180963003656855244434539887237939009893165158597686698304129720208787467055084570942160414486318227482811655622010355857062148326152465790150712508805084611256931082456286138066670365121893996161826899037263155405866020015089215171952791809312698983260099506078604453546867075243559246406965497720607501215617334894797206458131502020266068049700564212695309778842480532739155228687510069939315089045217161403101583865644757421377428117469591071804578925545231400964335813599602697960176166898710459500486244603248206392188685590833231324828192875736398304039682965018717125236991124538408932385750534327441661222309628962077926796206048957263847198218704535537918564359668547680279769616320335618684249346787980766494553033637931255661695678686117127928168104037623268582147564357900511702313019510447481786914418255386368214817077891520095198938753094401886226167331401749662158636471267149119766825318772113834377861052026913119879420329885388361842657614047323278757334612364503572855112178911916797481065912266865846634848255291325038727361131042768824618584385576622614247783899238610926959689345778526333299523174154794287892444473911910169313975063560708393324160943550396192964963231971492175405701464074966479376586132917015286961113434116398056859008630323057507565881864175065120509977735752936615922911173449954863992945010020602515984169389590066209344662011254164917273922466226885466055449311782495672154708817287039771584673248323880047321991761689889199442260843746393582243306464819356070853923378315173738575075148634982409706553589974788355245937179298146692401785773076272549273074911305359163861028701032859216963191585628580507283684994804602981244641995622761442450791364611202294338635997398651680696402762629956539718608876503254553353671771785440463554288588997559310221825065165833959808810280860519764350700324382568381049594639143239595418828559202840010573238229649906782697686018957366517307184560907153937184350335387265107063355730766582501767597986581622717520267816289145304586852678652717089404016517629040710610840952154929084693670942008163681871030770757401219097603718353132135850495790498643244981845160813551375595464609479934131911631244584572342068381409111353314620693652114907672924233979064168386707621677859928482760873708001871814600587547503912194118428302277090885212061887374754856125963631131551490446122473592412184564547344602723259876085513057391900429866281898132237415927136719355007735992925729781675291039647041240844973104314937923557392388840063529831956689931972463479001819239032448514021398621886763021577169104839737520205243286115915480524132296023328105990451100656417351158137021848783585650462634810848614973879195581104423737953451139171596828342983988272685340368889385188501288598507323066104456788990513955719830098055260556807182800026542909133803585066122166309272168233610167955416676431891743645102487784428169739823329455108664758819862912502998148226140251784683493064556630925009830690135573643020712846589997338033113242225422251032972229292508039541861146613888270017628424070727462686935273769386109685820506422172542440764011035388346574353795274360641539688090564973465589491332913748332022326800393892948184251099414452792852071245079597090841347440772412265855485644087608822003851653985487820929382132630292753304366123391252479735834536542124470603744266561382520005257703753947297292284524249953147594662659752083167289248393211748269379582379873725937101651176606756630437111549360887335844717171659648476238235177707103428068651329388044455550087716471381038701278401252449696228840589023515264915982184996344086101523308187939550147660843308876887331330728975338926649269492114064862218354241877899021494899087268642587383319184188651623162178585765747026188314478677955167828211225871958484099363153278264191598638180367951512117713310593509458873668924367249946023266762153749833290181021611648989712051006793058909956828436995275836702557646529140967214992032237003799225192701058225814877901722151187151361630651879637875912780726407342856690044079074454117017876484158944218387115337869316879133421654268712542595989492295323598892291638212374887782411075972544534932705203537183458271005265815529916841480659559124935956532424827923294841721356664224932023422311125166440058400030595468182146415111141145105228711127226632948491214311214961972167591053132073675451558310060742576990531356654806875595120590396609469344571294545684816994100364728797765021010863743506976718555644094271950092946395656940544571569177107067614943631942250742667089669026235285045174135556146334718332604910481838925340320942867116251258067184275073302187394157176395284584744561373460281664622230523224027383183961601738301651180793915684080736976338078594167324161200255136961482625743282451400127092403351296338862082297381323287573687530532769300522211732201266600103569649640977717492472647240723741987782243401156941605809392387056671769579947809459020836370975634798028021342504889344748327269375761220529660739285521139369802949250004351283154456812225573788633593859871294371165139348451038377314161898792843812203277736565767609159723405220502518545678468889709129006269313844778087606821587261274959672009024756207079642081307213178180189587846266974701477282325447723572602028215799984819486093740362838648165911214375631405473145602160428450875359538033700817048225128155646305133140895330936417261968414108548276707794851288988102679379958821723666976716569959594829478336568627118216970548844749835479786502483955876878224742996714211597560085986620689413775128456165480133674494010297089936785075904771154928601936133357806651108135486174462810007900370308982512865625007164287769743580630628029650479757735652606099756748563839109496347618298001386140428729925038106346209792097173987653078039900368252696672383781372666789354808273949327008587160891987990070694933849765359823083274715129537871368238518518202645627366166989034857685546007895690180192463034526050583395352109362846356710301224105179778004981867182594650209457668502428051784211730847991966344943217602258803431561464657200980542714960503818169160755325824055716964315217794339786677529578664910026625876058623495515799388189776877033888066658049925355564828199656090200018063004890399097650550808821944437199488699577511176562545421847292218753124830193420284022177538225789679645853479501767690148877523224626892536316184787324345130405848439992572285271892702043222255145086577105282137718440133540640847517342818518138823298757968918723454336245885667194073083326328677410170936822182676574543211311954742633646040077452383099229657229829497346588633562121629913857490526740674267744596234247066965212327740802708748069313794332738033417079502869653095302390161645191294993105787137329764723885473076688449780942420141894886238734639112835136116302551824707699256184532357203454556142396494554469570102361150467009881887028876241167704369054731918997312985179734789470761593565512097992539391949055096145333861322247649029877014847550263550876854172221952998592503513661568606077134083492838089934338135119381644662032602939563551096595358651574091892039701305159705043174778837655981232128839569484173516207622963702812434767398455243556136117136173979445989840373889801108998847822154384992141275637029169967242252446768588223747752738182361378361892876357950327441147835769482169440025674207270183877174467685018561834613136611426071542980540796728938304730054083653021610147199496864045279955205740264266527903316829421193516239194185446983395625148981623894754659233535189553257056531012762108354475475004758898296595210180555801958977292278729075339289413648856363631584763795500783101289774498124542510478561527023153558080973286130820677099325747759384394892868339195154236955117369854052104634118275610461524841316534290469481902919696186701190861501195443501315796692759856988151136674068172514711040769292972343589924415135551773615592070801686432743522154419914002788269156375407038226804093094769500458211323225945143606798449026712859631058512496700036909113111202330228909426459520483560955703994448011273683252469272565563256714776512521655163028009651358812125021792405019142845734494963060039618090710144593149600719335470061578534920013651621888485529633222356802614950124520849095117470134256905171173655540678213928648883719247729439526157056027359980448503892458525612433893729383250178728710714587298737264645653380638950665568636584959548267432153462122652027995335728010941650208636728360726949135052169001707759458067918650016200111576749162325434897309419369335522884443940850862734614807353193036435958740118505222504947193557342775648754586064497543977103586904102096365503553707174891385142307839008271351317255105136846184685489474695851932295974646870053848472661383202302752781075846325485097231785595571131280562669486918248384432909829852527161894808193595014716713937472316691303928476320773423176666895988469803388574457349559362794196864707955423038930528798921330999469370757874015133397230816576974758179478759942024846673889244239904061648990347026402992919495365476937699626068208760787465184647784005228251961333423361561933221170654415981008997172765534035426668389621231495073199763941478900636745801380346796890998686361725446755189874981175172817499764346482708148027873201059644436404645340931585217833522654986865876021444017750039210408542222787094723942915002387628889526870272841250512454180555697154605784105716518191758670288130727251293010502900318418618285519782728466370043293165000595062888611004275285056282525510559038361852572451975367531953388925281307162313554132871263621539175859101945330148890260870941633912094954054382562622104538303637022493573126636588818688629012168102932302314002790353430072116574940746329330010322699854247609433371662529862440527406188710427927324814220905286880081514751667030931809680437697376679797781494537695614990059852792491173586752846470991106976523304519964622676348191138242411290919212936307770192248484956729641621892427690006410239227516791267484531213376871290609635154662522215477233086858818993674194914391754400518561109647346738897743599272970559443431442523766144300861319404920144350683637211470608834018202014050485333085044903894846321389040608613371341173811695033681028185541075017556276175864800398683664231348949985571485285431000395585655333384248055707329760273323400918031377550337751529645740356256116023829800964954907250443456336249773396320392165681455314688319266959091216711019937896229864969605335987098565139442216996335763234913380971497816471517984166206390683266786068796009144345146018132199276054546636613103961302314336652841371701719844778547474075277527391320955843249082709449983806138085627716575989128136997502518283703312605261196176728857095914284350992607990121254684773356991286251148087076793523668782513976306962095165014823031156091120019365507707141681017353634429983072747352732096369452449154817629992383847443076019708425272066767964037747081221080506131305575267454734017433947701657339535298162337697700528041339149528458361659015648050306562615347061450651571773261436423363981143394050451314014556513072032543542506256506397812195166625765233800426506696000747798172526170379944372555616510540829917219588054357722538134137575379595285055191182811673476175754184504356362056152349885786260828306494551884625564065157074858974823858833771165600127676383926458229305487481747606224908709684209464700955578521706046282761626968353743950143763709184342886039811922150903119201656148310547227559914207925564278455287759953098060573863537719645396244598515741144316564997916829971382235264186000238317417984593315247284399849228692507484974757125237468493498590593630057720549416936087675506538235123609166563057222993715571249124884528865249312769955761986260433697585257827935027778641750512141744344682649280469793383942994072115032118671815002936078680412477830349949354122646490993530559513226144336219291857512147199658685824430255929553813944565439536197443763466735494951625103084326963233945004684570520436100636897021990103051581901286825557686030035868551014460858783514836116388711867002370332746999394781416908596608135611198916574438765466384059789503271101440224771250634280004312528032955466325272443883248195894184086652213754135155720791050589112104112448600206189394653164268748539920315646138860078254471491846366910893398546842756163373979468019548958738421102952386310452196993798228033853620808112042314844676097164524056143247111848071746903290188166974679046759582959264897104878661876355163956204420449437600460638506086239295189211826265137204242392882366992926420640727202321825960639857921286710919116038650890826029551938115886619135290944677354558898871952483393857627339678624373640758950128159108145128648517516922802081110084745497834710643815145715328925578350093491071042603747016084471031475594371179127815112711071464784575156055125849483699869123877778291310345970314635205244070711755771175724717261229091106058932687345239087575205053111905105910943934806139347418259393889113573605569973638109697181291145275666097620674744492112013901313645110879906345606599188549767029172012528289619172257119404075479369626495192775057845723068824328468793813060396541845129396634862285826826442509154221191023013939152572644479876887799625208668895092823412907511998997017132449934160622976739858817442204620662155691982441146728718566201479489571406013149879753865321083483617863510496660394769598272170403625687785238595582006221210452309656056150208613396189019399020235608185262769613106057682877138174059333261248420040052650124072387915004493986663950755395095194508332635475826666467440440254522771699382545727831180543294322929114778989656289358726179434837616494899931578499116530413115361330006094317201883476047366444779086369129114266326237104971014549374690416103395021602251148775001727823830647906668556192795321922541228653576438672199905766046505399276087271872276863655475074390463355619930687431812703139794653903798873811759431189622673111726150062083522675617148341813171568428043865737635120702947984751906441722071654091940140503170652605693950998864970165760722317390503945820983981374878794995974019099373091258203261491332056386509301131954463921611054922778928321698696418724477416606875353299043381425956185652437710895286355940627122144759539611194777867897589512434198039453943680826064705363896804363882332580944742293847187725427525983274013415108561202847003795059608148723606833379733285947616359153319994621139124133129949319463989629312251869286298238696502505149831770323141298903501434766714685991368699529846296843549138898364173746982708635424167842758693797710006781983455392722601659667028415819936388116984436510037527184514305470978735159769136682407042398698142757349205084840376125686564248107695818118919754856105567488862756431239146218045862662643512512485162909213020644069151748809086240956299173300201947063672198068238328049470885889752196527775016446177117782766760471557742686404352782667070196538937123275047363040217319423635916118970833490522453545524167066170642086962998142829006146042418609669590017771741848401047422123630523316401124405870390169203950628665604516933289012269391701432140194037016259877230801495477704570005017319882969599688761771663073957303092503484372626566878365087181166026252189068454320099078520573431103589823768107364114927934383956718749094947866618174161950003963866441131886225094325230892629071105670556920606102177056881951264389983706493597497669825651541424691292466648660928562771355689899880527368357952379771891546911034938147237342465575398033108155166851290364444542328735902836400198856005542236333828338104156772705863142409329762350461874912585860373556855948769740999655001329821450395633344641833030094596197749625455505004491118760758309885565981278221609641927260679205549650318568350473074154271691411154900533505589212989788608327169318300713528773129855361262404145379256755757565870742815970038134603507023719393741807901336357054094307339913765947894169558105482941446488212270337496411325685882883697613903197559063057878457282305863182462247390313090183046330098869294330703785267534229024299785383581283286831427441597398597951366959097500035317501046495114027854117979552071384636472306803745436146769810954417367804073191775831046688281267407773014154270449343019384126032916321753236386646570866111835301636297981734213030727160354638600121198194558634240510296351861704496943410108065242651915687946719974719689862198841054271233961102177938621567080157529848937687110573585649124764222846189210566028012099990370938378596010042517586268300733905257555377371722782479593992153686131704654184821286446362647656805339748691095790882564974087840560373835955272879650933375279284687018072069006439862618657273371858086439287426470700281719535674463023572131211445063269398256114853361298723770287899756919856568894999447347283904199570515384839801091911169002979464025189796050313827237858595483580634411800848763050418313936690756675513251836781072753549326023469086071662283675005887433296538858636201980326691236523641691248542106893701630877965921803134171944801846286128270799055443346406154320152047944315402983587801625097108417203759581450007082758167012704395090856949003902449950812393392136224783069032924242567572720499624404781451920742167403078224456729654762809909032516043396851858360232987872627131417642882926586446067519309741049415292184515916149211681064592479463576142831203342140829511404223924045295771406040290341112215292863042836867373342390739701828392252561951038617045935850379348627183427679892280633737014941186457032831549119233054637067332970028133239698427586767011162975725073192063004563130401138267095924060822882195474157128834678260369780899325342666477286647755696587304403806866605128662952012787496177438730468205375675889745935714588332437570549087391239833386004593649462790195771182420713680754958333031896301771827572165392596229527527875091647946648550040152468795765254881549667201916408012280542990570356801859580249455039910890225943567024493000415656724586600482101542248074861201673024105180829824864970244832805326471191532240187194443041672894706059673452937120426011327886600393987196622412929891964597668725118865817975344810988104312911581516285348310391086384927111682655303065904722302593137944287757877884188223913613917565035787262047588241407407502220944500202195245966232410120045567323281413257909250483422869066412005513572915332845883021260690249089817054014970731930504779968273849362137078436755611864962811171186062898410272812357918427522403255102828103845279648326526021550490454413761280163367498283387832886627575614933837001657079736295659814588705679005863911045539735892720479934632514173411105907901609226219601955462608337836684295791108097916264505369285187887756777300392533831072153047029846903544673432942873383520545942020333991180964486047234608678953636725851865776831200003594108866901639898268324324632862950478699664764827094261826396028527879815970214643136872974911754756112770962700945337280934765207381790643157072926397996126291176647132428603467054380466820873427967627701241763007954063815648121775948530999039739179484765992101706081632703730325400051007955143512747512708858988707924947640456277143692281465103592570152135596611060234678594170452495536816686783882171054020137423049415523972541743993931063723175641321879374982543220384031309230068954540167089917807105283486812602495995085710655484513674703620886199994990767741898232550621166638782284605977266939996194508037806972555172803606471815718393590057778658296236349573343449159608719269197943337639259449381348399908905951152623794036773289527549365721933756389955801416780713824784537206999640398976393906521096479073728324238558819555199918585653326125708326108823969319735796593652856364999454026787840332089043661696877797612881747302752242162273382773864906516354518720142101712454859537236974426945938734946457757865891518174609441067543217953370165889660740780161758884283098509231872507453697561384591498438259388243511020165767275663059446297459510646086993255656323829344619496980621825501214122724074784314012054932643826984956753556467791313475043271644601526553262162374587395771514881674489162602264489384466553818564987801670021222458778217699522423360534660880104459213705938795025619251472826546400467205166358987281135437263707266697787569495793815469138527527889432599440130355001097130495211622690783700821186932292519310464203477040443243817814295224575859032422342589847511898189334361319313863819836126574150426390654451874939981788023593971462320546462057179321934728698817175091370594432479267516180274931992903188064978929725732185113716176609671204002063793721073172960205741754074459181500349940767336539055745301785115561001311794154680954808994454559860884272535578856989504775582011214642032398479552811605754309283759569582292483616063372147434001974259229869399901302586345505060546346725163745368021825588979851085634551796973509779313460154260847221014307309939326419093231840640792448169410032886456032736228988993418401455391795924289449371493065492524350167666538457388979774010195831954615134364349068665414047073525542803243542964736497904429303983550279199095770101804983400082936751649287467304224950189029148362689674507331862949357742626584716473238784719820295000528102094921121215096012064224336763424011891179484850248479568477473629676633632941171712728136666995156079714323818233507022421199729405478276506301451729513293238207970182438667704745537459781300723775237523269397298457239367077905619937614177101996507229629120922165573073917425124788260360446916887112410827647993826303065965517173406386750250670032544328021441584211077404470667516701622322598291014309994131706861473214765395782734404540312850890105388967291319606237890190582048649268058657706245413602873951284281080872006759247581491436223657042624756822526567392075527569639479391320225231510603529258628179070078948163384588841059494616097945787537045680868836559041508210408512719736774450965070476088941816712639321849264290152688016751716639464703828072752723641185639837073420088998509622472154477962067136224084930382333498839531833187476314935465836790866414421456954016933467046649982473020662943522692872690850664605470837746660595005433740670296242953012706137862332146262991832398948113268721415488648861046842935950356546193076328328747422554315952388100114533915080783856599510624217656606107323802715572443830666821945502484725785107321043796127581544379075501725923313017175279829851798116037603146212927567615300988750943618342663005325713859455690147865300668298611630219388782323574641280215674882005004663974981915268417940860607049740050712853051089271248441699559039341398313021242933271114845494495370607350995361294015185074809192615882268688166753160838002979538432527381617370990718635082820305613483795302196400265135713359297808907305027975352969475608406056863523847168861675765849973698338844720010734133247623978958512652401001880884047556169103915777750251083406391315627130601800272280024449217487895952158413119598030298984111262341256063710911783194499315008141486657987149157022723430904137655413697041402184109958707284674664736811132258088301214773669334291080533324155796058249463890413770522944892164496442460905489609367396954696986099101825661727468693702976846929249437168443472854025718072078761632041481767735944790334916505704685526034441157352108285439469391756666131406770752443984049595772562537770287130457685488617681941728556779998175512890075352912148139489925792486497228435815221819722633234406433144797547971852652158964567704066118583370030595047935906645205724195975426042619059775559099954957363275403710837653046311033956156166410837307055113118427739670458240456868756067148032316722398747571777521704183721823505732327018335463712988681338978611990219854790177989203847625595740346472000784614822357804396771390781726873064442613437162903355510422936436861448524074091219458388224121676888076963959695520605328425119549405515382684832840167303138479037721110537680755364675457937650964119667725324773200744134147488915225081306576247270752084550791548271106099653883531007607717962621452343415175896762465558319239147027580087719985896061885439197314397918119754060415908232961581805024524462704028018870707894453860287676938671514981544122200445136868708137517715326843391114718077098247143805729996997174441531400164980214899084780737378947642854663088263917722727478384475418880952831466710399857570464434576426166745230389174430574147369863835593606588925138639752376205977948711755099055181693068353608840143125868243641662194140995154911070234277773315009166887948529937492673931964670215286360284349774932116844035660881063320899859593430662410590270283011789974005451549698855340571650800334778682534113936704461265427968254471456291037826440011330356637119659615804302318079747542840913065560935267672362730256025591098692699689422693336495164105918573981000701607928221798637894828768073708365039919337716929828299398185787849113655598126421488493878049750678801968133676801813010369192961669756035101627794411606529982024016961761194544159446446011610245031578504221580943928049103976844318680605217863473696588271713574179810894461333102449589238591065699323406425506123401483830249695350546317279910675667603947227107607588588460059168732088689469364490953399397468057763840359256045404196671380297171859078946146007176678720625898021102861968596520297425148034928246441792011681762699409444480463045265160196251461238525415072955962760277793202892151404368649261729606678849986674730756570940324370405552520480653291796983205291672160037255897982629239462209556174126478258755757580891080476373473370390415856353686887728409783536378540163007283421402493613277664664012651109062586519729028602802026383475227980208499744393772557815788311802927849267328421634273255403639750053323819809319055941438692348331815009733766152044191585615774629855932768242261191594379556753858982606116524143264901259687928519361253758473899165705123814725533022650823294925524613790607380576746629354333094779255108551777851806520428983969940045871977512732961789187074598688802922821617132535075929809382792616051732217830083738888436709259114366829068599538675813488475763239440738627660476454228102049564417379973571987913615556515347221526762090605900039752674648537328037763157316606510360513987825332321609033079290165858325580437571544368946279435813696982199564804193237415389695274108896115301789435090550216340041346619826982527913017734186935763884304317700638195973980347840769236856715492873698262029008832318403607398702288333518243402514979638257654138189426125134855090078758150130968909041776047100899008930178201564594659760215377058414191215232605650042173906520077376040252916125229445511450950738445412457850399930373156108321086193390958122852058335989404877644333706943811410644009715944935174244856051227423680267158662361585219624264833034060158922723004258532107063371074185797004785055154316039694224772215906300639285924505931078755801093532744246226061502780222558728574809385493128863610726033847324933533892268381623062870919490381566751612644863299390335464904917474523565333453374940438346529235369124392367951788547360045879580442239966703862191352538679860534531480300746548001119005373839104038051097250276172712362845591737138802884601779209253740160334591499293939382082143659735947517252758508788251453626846644664856582340617047733417345283193132756829786169771396517684850793919315737746006085249170857417135701346841728135966601798588244364019765524203747944442256729186471874425790937771871782701206002732153145335217733043199135580615762731992285242949601207639639964266919618586435190031945186406341135532157980879334969972011005295041319378457318912635209002814945874445777080563084869435893387216753503351181522650627754677690270151988625527954320946621029971861723075938172106643397430462701037250962194636603317725199520566656239689483445894016555029642439223514649508272114560772477548465595041666386203369456828965089946140438914301592135352000808272518133054151073664843372164776915345453506558835012936367077909750428803488135383997914014559928300932886074543792893463108222577539758644698655342954622727416073133798856305188851165062488858845348884657499896632067014597449725242306885081705850205595636952123637569737474444098266234485705402372438878813401964228393474899406018062460148292128033560025118571462247037979951395861717206951854407725933019454755379609861150994802916998158652595672486855125247936445227874182919102757401053013635902768153043710048728223992671299783010128267544638123107104275528059130016107654758201508407254052360702848273736978613242370528654638278328749281682291139421294777901661470350750072401023001976145347811940548931219402192427807159352452267649534855323048875247460886925287119370764400984165411693234281064609465827596405023958422020550971666088497882672929711124116221622427392462170623611519459751099488592473363832427081822275918565844923307274504223430336327326297954989060216744323385182134622514114996188980276722916055342689277357609942473444468995977600881602684566045152014798606398957814895510520002231464040749916634969850115409339887190280788772464169944178499525968252570686684940092586419665732310274411056502418786938653132239309706861899373946168243805298223918424696959413165453719487179821566963199376971428821946158931308359799804302118218383520781313174738670395103873041561814846139525500240349252721675397917933526264735596512336655179623245161708130889619672774300629484597092280645698129002207490623597150713648686691955247174400316856176655967013031044262619041349590128349460250555765391181258734242026554273054279087731314952196661394433563719076911216188978390123555310477073114701440105692717981201184969367728425484216044448746587178020344401609486949733586983145119847300176091213598351744598209606512971050051927179816898076134459689132182705634790363290400401558323917174327522217013224005138895005109228453050173730063320184689016132394311316596089692534624366029762894190916115823453951823117433077606192960976109255603481473187994054791429148376696589645293229851358215939861701794046312052499766592773548739788846739362829315728805933808345969621657884029244646429177861567606943076060354648366559928032639273694784472096899637748756021596326497609886397228565604662908559112628147802344405428289394194780700153983131021943312884481275132981875608442274469990570802216626744825241274269597124798966120734142028042404189380967678864951944311404598929548672028779462120258609987556317177631104151889953827987859257611725571279468192127866407239016527638259713560518101694580610695114977676157223829061524789892865779203484015119473279273934101983243164414946332204817864451016371896006706537800327494002973963444162089113671934956793688761453929047456978275109705722487571622087760074949040216208004371253300934407220342359910554352010067758980663775926332120618639141743105932802768815900784342812641065982023488416151243233799498026134766098504447774944655745552043647205538603675306960588703288829993523584539609730076785907676610876639883238251864643765369685994567114428100356510671025593300750291812070159773578430185049611543629923286014437859651339601494310772482863081562838266840092810291806664204208710911685204370484390307369163110654676487478875484959399325442092670364028952434736151307762891272863981637954077921897836765248598422767424768777568618409893709721599879165738438486821480920276187839565160729952501687990016265872239403340095321389669470330957667735267506406187856450207934984339819697409364137491090878221962354954541877722378988449168951512479069013336079626712125928490692371016125119001834711820792836443533901255905142725152173842129391762435853009826528064643663057691537704511728255412479919964863861458393478143931472867515583575275462223425786369045696623646785721595882307879257859466300461911642803045903141438855866527772383838307984219549667534817569393697802355547145078881752730706423336007362567704812028813479133988637880656699799781077757737494201142584048710990657754968973829536779063557538593200260111999156962252895528478102769166967562125082816943977574309758124581660631269024812534535903654351031431141930633737609943692357566970198542066333113626228170619066919258121029812075198053695976902012535589257905174158510766798486976456965163909649352565931030945945670065984333807469388684239199502346212865899090806528938978902927555794735098872180727374317782233466243310860920263071094621376697152815197429832287586074776593645967546525639657413258580411106206794227618028614841430133701377125148877019556685330712387291250402782474109011811575027262693883181819935768277798118489484124380850772852022989137101372006966190886877683836689329974236862985547470060816654882431556419781084175496004148057826594711448250253472383110859262608309617133068335191849100489949329621807147211789388856439127901569853567989670188310152883192418587878154616102615981935748632765579769746887892765075869854407517190915317537178914013720547915368655341525653859294919518129656806956182173698229357035570070322298866569942495198731436402999826088692420110933754454943673561237326661335327770417316972420615767379225302664263076318182089386483319367769775613234830144932208365901859104606791298847840542886746911927765216480528209242244718355117444244500042026675574781863828810136356552560880643766006580559815802886010598714479100819211447093100351119597824594467589155145473081473276982216972820184851652398507845567917223707753817905244219346268066748139166503667431486488236770572314738376366383644532980576779231049940647980208941933800695242982903871856130188065804177109531384154774594999885059813804009488348376689927232166131380196214940096767144081829914078087713932010386533455634815411004439481792881126259961157997220040497969097381180726122952667558522010533055537043618818414249151742869238261279322279264974853476029771752398478452305628611758480897023928646657973402660879509798800765718561903123090487148576537789897902470522827857980849339385453640837465107261376795360735619362543459303449992725808107633706338268420691816908951237955954207075495630748496220640213427183039956329139208586272492260731270652001592385088695726964073778673980430365295358032126078831641842511736402358997724487478440459350484221254524936867320187802575181685082372219097307259283495590499012459074373832447170688508694278756582343411549546533296607622859086687556230395898951032664518666133117514554972166566324782899029995515493109928863685240231261412386171140274079529663786112397360971987945483433573427874245472445816243459427902549662437383067509191327565612833679528620097478098652462313018785215012307588920616220519433395648721685815747649289624203483696004429133140168992210022930775374279265456462075733546729722453233041295932537211751816585547344449908990108987744044747035319057807752533211308988648984735539776217448498782762781070075080235684132671685198359765709089441658998861453971017365607397974416958632929784319496899537468322195053967399936699370307007989636032820960859173712966824403352362527945518420301244623957334660511811298362760070099986489230805703635654730356287496458234384572952466127369367283822621174105362852460678408562637966086170021932261526991859331051033041054203902737561646107839172026784773503992233145281516563803730095857816486282605165912411307817995908805419212109863933462211425658859121421789363623934667860767683474966140358763381707336893480692372923350840567601553749878178104586985139738951272933423932859167635784033446517856153846385365781180311555807359456241130591010490543578236793783404874471549030556238367514800450365840334754345639470769744378565545164701201418458125270705202267540054277169325724963517966995271358857236568223446438330072457177785871795781372834028546687843491258625979885674408937944378851736892688825888444705521036122960666038777142805836570544599221804147514157067561302186124526403270264162403925988852940998349698529281782435509477643427700310689784769111388172429703177145319607509083667061341145091996865017372294135519321469639400596750685423231049351542163467672515534546651890356844465830072822726361164532610443896850889638917587468561307607505137591439145613195742149224004448885304531346876137658951470018278037768018570840578816711397909678572130810506424433176498310654225078310668452524855094259342653929393096768003087576898021455656088128783035111300108690119580139217907335036652643745449370197513696667098401768782136055701118019548930053049184409438415406209693878104829721266741745621493294078641101833771635450170491362095760770262838762675742933233942924391237318040912237793782250456366261927919569612428054089519378268558248100361256324478315502659923861563598202462205959910792879425867685431042294447572412756381599830986505585915870562846496542542609645178729550472702822670116547264864622048023768791830500500891119990333535323368140395167292102402098798793535135611058634566779751996016205967658467378021475156392549484144047320030613541308460586077040365268308879842241948401547275575064723126096696447907770322025329153973973726953550927068393509265670922028344847119415664067377605218965117420732920634624525099205028887825088508867173798507615519439007059901190799325197622593618120244156849536825917815670882849472617171982496624049588265668024223332717555574511331919319270301727951849128662127047189987668413548974129047327360585000263170428589104618588708572749560223546440715021918930216993142049716183040747520659814288137037449960305440212032993296101143387882573888557356488019188660474665129426560157818823382317587306503106106517855849144528064349819413246997077713756228848544059253533609627468079418612233344652727094053270149710565467412075168759937479480293911159924838563101192892462641650380014620650995589723810125340494627949574794143180037109675711317155412414251809438688994207318930872768855215778154801247636472923171162400876266759804426908339534783352389753866820053330685387564251231699098594745150248900057115579579551542948739898090627346077851824629613126259441066217083488450466074191631210244492607846141570724395779057426287630303432403597436176694323612680511489550868461172883611936250883325547232453487521664518074868721152246623936157417009512203175294956762739124534009565468002918320335451300102383177256456906389630596722523427470891075399536666962742263966716020722413378821448479644452823099559869301639938075100921106431686158850613790082451962095750127209912327149604947171623901121324993239790579583518689025994128737358884553750643727687965127800024359421318933435820541494935541918227188996208103749920425251619363904228437927416579553796244788844098016798997788740721084301210760581691319101976877629910412381307854529953592880132583636185560941560237662508521162920036843296469213582088857851067266012907176117506938009318342883989791302128345449152378460457962655992791580865580874166548674432880087630853252581378267888709124490252145917424868251548442297039386189003142431097961920908773503459916329562891371451793771193301506724993339832386015680370008571589245304741566327092791559922905383574559107144514132732930486365443228532395176202300391820505260066644266447819466369067859790401121601056260125053982172075176683864751936458419318917382283706006165387316635178538649307147959734018042018107517102564869887236210376219338544212488645053552254784451305793160666344651795804520867629205902720732762402490303032547675387885544755959973540908483308767567145316499564285508962797133358199583609822914062734314003209243179363091641203551192082792741939800674889416882937382398662713838931065702253808162247486532320375343385653538346057935094919707436930066553151149225446000999036865122107537662656435383941477883256288621820669958999843937510842492982602422361562570613851464588064995707099880351663337091626656319307063049650143375117763273945540562415673359566439077853132721017278467509120411160599745541362157622679330820636553898080163240750136633594192456979379636643516520990421844901496648459468894964372260793782934898985588120620257771863222407686125603472508935131831717122041380346343275671862050164444962503617376140377705123892850953355217994745976898162619312644343132621112876694487486943864836742515483278216988113106005425819724138523571964224947304152635446881959911438029145590148921275087849891728686886942846593700073413819193525269235981540375982904412056008868697160192323373962229622352738071285136938694250788109986966615806903352726555531362595881712713939539655504554612885019544916292759961893466606201378459090906198548499979482616256316830916952167738697034642350476642599957067911979042855797233920460052673271441821015380349234405988156082591366789966322359872215644923402612665928258562018866333297331203938428927173579687309322824301168046275947636064715414973354081193659596374683294975805637348866304466808617306741274915230284347622200879734202567756983543209470745213883777733414159462166416393279831798885146523423108558533218401797903562252954089709666341782034110408105904849177439022357267564785115926931205900990566317445867578574771810370716530495301353032605298928191712150433653608498007025093898945714591104321779530125283978769680156063880853031830177785114485467965754554768933793137093898894088530815290889699842495484573086106062476562151864718615498198616128754601488905109559859864700673511232454396633590097977211257799828217765102294791900470167585134732890821592270157851274722775630367976240028616964362925910903805395677220995241476747408103111396076917311959017040741182703320500758298156221658331895768466900895237300651493610279766697639196469326263914668733178877528569961813326244286215543383571889986362576434407564531644446938335034535252060553658672587722785177929113358941421114006137735772166026904674642256255478718949057378603151296590609621966352275165501729057548556610359802546702889602382686037952061904285609335401580123171737634078544839381095938594711473942885199549773259958128894097532548598794209557234925036156375151661683847546715893172772154029899035655431838172886263702174204594075354648373780273430413175811338861359291836204494495885644930917179313816138653988078040054244440312372573735274484953137206259824438744620564880701007867051396612831622988429066002112651813836223989388839807862151358240151225605525374655151820277170923527607887614001593623650229128150558762475452377821039831167620849647112507649336889858049388527002545726344570876082239904782516299085670217988112372318268468607305508487276571012735154822938576991596636597662929630407401480700811592461449868346357989654734820669139674619418765429913886725436003361948299572170728784198068152201636522333391320153658558947713666046692090867744309980032319727970015266848431670919561497839727981691918563099036097509675743234088190413614758434068729684847955066563099882274195081839361957622043569205045744523316375896896501765426612279401317799740138029032286390859014319905939308718038333681317734948943178917665828430162889880475924681862769660490600609738387960585751252006510870328537740338350451980852361401494559002572624872830813205152065730115470535386856389533240105068698655606953793061962355785421502131612142364546221349602359304904885447356797959690191510411338059734719274015455915045337325318214105114013753043412928121500710070806636658548755537162994653083738849443995596235168671678880496575838405738115646538065873946869941066378968303928974671453590303634153743974886783342323368052060236228056962057536938269730603723434481179057398824803863192275431752654263291388557606163100164124643109598331950293536699429261503804970134119679765476925907225259828029019834505803066349564650234244513697482628655492774414475633060827689386215123739045067501770051091349099846170866600996003587415863513163214502026914399763053296831855542954029856219918589237509095590182485401007439966659291621996362001558761380268213172121181281130964200331909495590399825575925294546685230750488639660580351414699410228530820527802885055183951919515661720064635277745473515938363504201659224199617868877139502095556653425349438248768324652239149236852258288207042838508456628131170142849501298702786798995400442588085197906628351249102471671143213643979684251530853463336774338031129584132557100411694543476339852790888301705737325921076826389963265251737985416249094733996012918338936229094726813041129482309998020338097327679626961545828975627882377024815408564364705581862397324447801863041197917798711333331675973388428544916391725653222118739020898508168331240795186507018397852759441937432863810412848413865613049349715792879026408209762695975519468756199955007357781574126565734695628829943932499196220531203249974353830478121640374270956793656054109684315222282676110012518035874939762268384625606435412984400707200071953652738100868031358826577855041631369021160282612672785201335104485961454641408091562219863334095407072554799682836586642509618828698070980586251512548881515046871110090190856479682406120640385365007164358969829328638288401029673842370654144433079598100107128114423279583358929001347932807702755093491781424150301009743906671332601206406488793994909264690931540256897188417939418252917177922135041744123721261221282474926405749166019843354897654469505942023575755808875555371041477268332956466443709572589406099711112566389616010654131490082080798586540970120959533412365125020868063793714971204050675215853360957267004258183657930827469606230054514787567756262515510801451203601582712109487404688434594713319958034707630871358935511439939651199702764309983666940688279936323384805907759883937302451037049984121289913988037040552399572615554539491487105418780963405978839110344933844721348244618324198609248577459342319314414427246878969772656089688582534812000104395882122300154440743659268643095186945972555758011315746146525197520695545791379384738743781906661472626754524540883643135850789493684485815295126664786595437732266827991582141121652680783496032404000615900709056647437149098511149141870454787766213360288648431033160672653019942476917921754055187547603348406732281174134727773649261281598237145973373979000106381625652686944199903398411678477995876399048296447438528914042615884709160741302270656878740345374999537471810057625814177870563473670333895525952319799658131816055918876546196721642328629145840342101217771506724860867389199825933403465841493872515469540392323656244318416241580297360310262555244272863309512658334405025847883104909518412920692290023632476289515443291172509046457716959590405210936782478195692408499467672286562128399544827512837009409857010632165930095002741578530849676717796461266019277729107479563563359064770546938057789692379565799156023256380898996276168632775951399093500756397965693619905762217833940986170666218195693880822327938249856211543011319702986290531025648999927476125443735570378173048146789072568486436751189438597201056130510637032586014305305374219533305007816421944039037856361498861979485407881877625498789633007709860715870399223477090397578710626803941169835483057163090283878751982206220591672316639379967105401852055582518592963090469977347783152606559912589864411837059413464816138640720549652333996051201231500102509988270354712829418936067412399507886933576582902247152492957860887491698707495721231248650659131355078529117054590255042707091436323197657795861424307253635812565998819965288419602565486928702797411714202867835033178507566854984443659799997351251575912104866335360593801298496352648258465089378106226909812694885174521325826850481803877747637367527953313001709399820417978693458639819069787733640578123196134408183241617661298415453985345074306735867062081429781654191897387943694244366233585175187421973594678293866204195639273827871178339933965564062243971325731113607985778734949865597827255247930014694873543689027136246209671102997283406594963691314896895449826428729709372362881145221864013617759786396064716659775290514089054593205873408854168036504003871626022654349267887626290706510758850336032405492110151660449325827719487805296664208288206718992072444332087754437369824185273935882847367784494875535086641917440462393018243732949847256484795491991091817794518711356093328277373743012670278147775458043242200136422996335125511892507200118536103032476195634380501845844957260388745108118073453344819177396726966049864411677539563997891939369287918743405893407939721801623881579231308446708367628997626223541767530946935714689174395677084282777601172703152860770901498413045625628101258156608925583071102639410545311683682006664172776810777401668012729157397478421943169018021356584602992378875325541789174192069345908287830724345157934506908030144049081790205249741699760904758868533011811488420968959062556042752496449711562437979458391118731044747057836427034078523361454525059116360207046215638496070011788105564866062040216526826241577064713529159737000822690510416852189457435483871456134379351127122001216075042768440076171210287060413019928021417125904619140568048640581526585094380798337880978984743942914826449815976390393553462568872286339805056279416873728620552309823155958492708372030495814916378331077825846012723158792457293329295952816950710050038952574227035431806094444885047310712695695220413574360912468280010562074946187636408813891706574920861419842853529784855808705929210772611219706281778461030906060904182711745208893752184498045434999335978984991141980544317066983514230335756277992686259442172988695213108409271598539143730360640667053246974643574943675113781759284100741167280756385072070402022560344954996065443328445338303321846263462295332696145977039449083152527549681060590421698349851810475907481778081647340861516599149488256209780993782774210865803979706213084422880626832692694159062371265468177341103561646562234608027890966905188244694359124821830446026031598305581669303322649272175503646431359793654861692457656739885308014782613861731314745076002960518980984397282976674761506324495140476098045821901952613396967647696988307660321564233545080474288626811169802375927037116507163270430873766541982655467911490782273031804120766473231310760199523372760075398866689971005352281337140938970621166743418973165589981148300144804834898796113506648731425373298267264709099159271338550005890578105943025864442209696538192833438150890124958330047282504271707308086817788858389514349229659762756147852939245639636203663196337799129338209132927516333633778045463154070811956384705217734879939125011747488763845289312650365594067592156084431211635718336017209940473918152811504324001802436381893970721286488067931731612525244444992992722300734860623310707466924950044485176858473653170476732024658447603549936960630091592350888772047338242748444797451957572182255360954587451991913608568838890744936042494542651977538555841038443446875535008189392350943184954646558707056519022781542280759660945420331500655016285927441766704967914386010922162129716582735622931891143294232534432863738295951954446505028655407820016351355271823212598254533521390112968634973189840263283851770875409258381051970054261205125039054218871282623252107861920174611747491532002969450230982894924650911539624693481809757436111207242113583306871898014210357768220887824852198842809191654813591702631108790249696490152899017452331024576067836287397439231705530327990363976477781905538035967637678829959758975213958689870072879352032457710395065983952078291741613867376661127635462694102659183072315933366185930181678484385816954860356993157003489924434083615661785114744170682414214272755346065253257232547995519529494125271433281774856546180890895271615345226075481667042555175044661982309256049962214769941745249462068748953657385414089257020039018982878219734397427601788948396310848457395569657382213393883833792796085873550802489626964756561782424957212753074172823259372427273433533825912582209081647123164741320376317779495417202001758463792389921111091022343054225376639943532510012873739030695054399965660649761699016857247612622471477618856290987438448658234299756981283424587005791097850790850997718760286058042146141386216721859997228518274034165531988913799091078818902138596354429042778227977612453726199216476292113268878486119081398359241825521481715866430872731380135291128567773720667698469120274830198088810542307552816464844371395687757870327918492422328079665165474498503451853126783697158377591227009924801966712724801963651393072523433910194040558283117439331419367573643191898090152800655976540289918431699405106991914595497458973203875318490232301534207443874356302395417019694283958648160287598621825126502426678271365231000461369161836399026357514643813556946103994265764440606909906747330106979007551669543559865908529708266181698412665826979307330474637624486719575269631193532252784074109867591452856594366818080073479368981458515779976724358208066348224055594282827946627155963655506316727081366513642629233088339924077596075659289410966449278377964511787011117264838091569012896871485834362733231435934006982010267845132927306395726775452392889708219746136551410318256334924302936005641392127689513531276877930096382596037982445331811366660993420265860845866039806193227437433091458516293614647244770445017558985103231362487819776057647627689827984832525754386508315703018737890777165902453107354093928923859220003109613236091408807622357995691262444624235920004357469973243063376382087609758102009224482417012691771339235567297528921389633413625856350832867033292947633070894428581126615032691398173473360071781433276082014872775427462180578743442677389335364254336625827401674883761702325129501081709087353527255887641542047847255638914364993918308230244942187291736977475647034515475242682117647721229423237893262003288262981295252934467982330746143642641679901589311032953539593373448965944697986598200653509878422043859717229743087688327136181794626562665816214548040239424775175050736493957410322238715420006450469690276357765343803571331900505918324857147063906813680928143518208628709184679192498717283288610057362711902961990711292610904429656019743933343538892817370746327802644793722456073026739310563859727063231974907159264942591833744612344063443984178200937823672004996361665143649364363734266794647674118446918943581788063081221827483231784076164985787461690203289741937344906005986970415707919190784188188487491885103188942882045190608725132049005456400704078924343097265056000823700396582491548986043975325745985104224034274936785552047794896503944241807340372534360890744963522270226526378037785143897979128395225710128443946049537166168466278064826210758521595335022602215995855209449066063302105568976043538415839517730094782397282862185465901374008439332288802524836259124388964728361983738396213985311156348762330547822977251557561677707809492457724716604385938871968540237047511887207866324690958288988336087131950272477375590505534896195827061191945601978231462576962049341532744347447301833682178131819441761452826004873416227674665603149768297094218629809059208766678240048531518188322500648807351084998293213111962321909728572395794804708869602395919855129576654618873889880600720934828065900551680796873795596377151765485950329474078491534696421648635389928955989014367921411188185299784451625690461560864077345164476910276724847114041171423445542341539948425789132305857067259558574083599518164641645655082099447373270145094598832179695806602799042263862209475749976805026687048201595705140695607212075149379684903517969699610827890511625066856009645487269872627712065925453447238969975804561657023334837118141500197619359115921692911479893118440447620984487143659886354075455149380813031252999137750466859944303559950914320737275645990877978353223378273503099659338723184625151737713221327660186802260676668901588028752045933936509304279503785935305018328078903217461731443764690021467899921434615593780923371191950799273422986097523835004581868256563121714128148396937403678374647776764297932337175224408006592698741162129623660527007623861307981577988102328937996199708407990018152621342974784971127333684311576260153448223578313736334935790482497350255118191595563666652778886467113226030852865182947636275474739551028538381154332401707097145185289220325897106451364011479012124522997216649145853931121122537522481017159947413803025720284280905322972518903989672324120253106065239745332400940264755074394457576636644187081405556122401925822479610166134969688935126151518254123042741611013269240507614267529733395365563142207082678235469345433604575815471352385916709327354127727672671910982252650015286101200243692518453958975944424127298958263105194372608731628622454969479114698099494936766539004367605974394202808752376205585728098119792847965604682576705975020372529859134464666525430928806554624339660783591731843887786927400902536402231207467817214923276297072015509457632565342767997357708731872415319162683754397965235153413953764165075885569430072268219159846784048654848071754377224905935682976543332744907650725350302875856790086650052803743025802787875927791402268625119380551445289562611134062780656373072306235438555709184264442018208184934448172262534679602007888891951765077137849953125809396805254451491744714669439531419076348613123631037530431957109265189447546923922925093546596270413592200989959007833850099772194663897018021784617134780224647975802687069125901952045899245757838474668926572168420721447328336918931757379049596802740009241264112538443834215401391208593925934657384302485243567408388228046539850243623895672492647864581324005784528776884669834029882445633006570764939053166082209647970244081359929984126218178268319512610020322594652867920327754262100839970162790543199507152527571287591649698523505933184131536537808369130626522986472508246380775416635767053163120669906306308982040877869998904223636309345391278598121318520639611263235411306903188682354717718195080318447374632315440960999648352214277574059746826549690557404327054175028921238644992631187583382101234668443917724233840069219644088636332197692814224824347067893621522533734766170700614303183715723353000819650500173615035962270416508206716586391435807689208463610050130751773197911229619772875327070588425848781987795655643768266451940308033306810546628977428217347062207206299493817421037255370164788770744762435009299978775186683933506794339932674059828795290287832407335687347598482548598647413379681538240782770002884911233948694937592829836162639594806261635770526701895419245468065497713063209527597386529021844255468031561410772180127005164724336711147569593012943673197380662915693505902950884690859491437163328503468361466765166187453740547047695597253896627430093487827432824977532863557824485417451612239437298071734575322329936565879910562221435360770732492156648905571020852000420447231271497379986026970044220536485986565604070056804053202008740727697238683212488290432111659361289054537456872890427268745853039195975149139772755078657683676163496002565009256192341867474516533445922489708581533460550154338039737483285888184772252257739781431553841107791675697365853698671697824734395365240400507231333266565471141682184268048862146055542001724994570944552232461440380221128642311010287553534882799986179635072053426394460726740451912327320580545993017533424937393700840249828095044117549823739941229997976964534356028286796307907020966138987226541784004829563560895123399605739462494670095820916523209613658674512532178997476984419623089092665587326317391906321165350592691310142646601426042470430416054008964160952000337722394353583879581368721865413919347752532604911071597536894964850061309660331348277548350332747765687237841202455703141297159728604141168700642594432117625777150931019385048101384852011387622851907575035029908798287922621717512182182554158600483261334912407030597077295580782980234805054644703664080012822742980491089904756284792298875188495426373345141788412691027789414611735939561793294382380278668011548148121302965206131078888664460201253561988174627016185265531150335394434151193526205000197453810698305979141259785341604240381594174900955324877985217973470006937218122120680244887647860583268944388901724248767063562466639288169952920802328024051456059154111571770678182552158076608809495975454370587772887340570503800760911955083820164832719284910983835524703975311307343653753483524335266391465230379834233154440459004548767956986232530388472197619762233157414450818059359214459670856894521806062284756572640119934323292742329379933262045167501096181847413394023450166001481553177889105915511660787320176907817315146095771645428538698356152195656451633310673499288848958421468903584000455143735174240957478190958604955830748395917714720391495969413572749365502875005672627318653733111938979982767529441200116800674208202975325565945752308602328775264642403364954787006217360707557301550606474193438399248684174684480997397116413564596490268885512575130495465243868215263070326909660560054012396204428506274331414887032895097084524815649565065595528437197852593191114467724800798996541123081790761814673744618456380796428397190419220920356388134521415634071487604476818017588267464441456722906595036853645792640744256276641110116647305348470641865633950526063066127110852795514591875715075010258105262786086768366896599335830598687537474159432476667378799429774473899824801751176227719810021862197561155666343169989735143057498866274486085590800165680040386631415080129778134297529875148874302175579207056273691968538223690803467298180078854567683354627977535629693653047345453947164156633379181945578630598795504716236630378177170544929184318306392265511120026130215618325485824646216111238176385901350593942703370592328304159237999030938701654062671559048727817945608753819132717752177485837142909751411110061722797824277439092174481540115378046721345603929830425808368005007725385061132946903432741230153352070484291578217177440965897340943638631603429293560296613408795141297458159241221036637901061430733712338322251603906740528940646084867024742358321341804763572560453444880916755742417507443323701924048578413967113732311030502107599933223668035523812230206596361066630763770588421494381059404852027181742009623442456387709157082500180702050718776960345754315463044865551456171646823032993536166715440285614844316398620311910161382189564695840878788090214174010543440807435207513940936640772603686313447333332013700038988424236048172961020462809328530397472431154752083446705705914273254306135177376153321798887267529459322128766441554928161230052791581318597540978622960365373374658475806841308791442115247176663703459163998238103160436377311138107892360569859511507941882845909079625958563243969798385835209509961749628028115399874763227390770200213862270290768053098338086916337287736221422185479303231394130192177253815675357924798035571087285295957238959140974642315680258822499887731719924902807454115337867358404270545291902655105772821440204744066779796204228509680611113849318944600769519827639818181770005526553407032909234969759413968043031062959217741143379727235458851204791506368608149661648750822462640941732200479802801269342613492900570005769351486721518809700663358372982883273322329867716401554242598051869123365086780965176949797598655286811421637629238890837583353370384908407863224088905952508014359455492351093105036818177762965375207561275018331386694125901403375992966650209047863665437376034035710816238490691786761655818557332725518736130210362507948218136849970227733310063343595529773159659415741754076011331981469702242849025446466050912661652272718274966062425959373118270257237881824958905969204873625906447609281947095678209205030819669080397794511125347754020740726243640924650315949239776556754227063288821344771167537498707224683092608108522960783339002099892763073404122796800364094222703363686862910091441843795149638385027623393384844731910174780221725477409725963385622981851488009758215629969159696936611281084850649662202242627923929888209381418762023999463605805523978449376827839731408562694032904265047113884101551805555927993608412581837237810164954854698408798889547320044650520658588036639053970218664850431243528823410027507345629617962074366121145282181135009860873491887256923532236285567918693321220418370884688013076585359776669043851116653667844789283916801879621852728117891554078234870521951446138719581870549885430908008646827556153256580464012046606811767242480142673008873757477961690311791826505208695337835146238153855479976918176633242515811388345421626035140197362461184812197499301863207071314160958160867178523240209168106436281230610598759586203748879476866289627333839706907747126554408441773761483142134747265003781165166292548382400794532840122831107342657797890824648840817755058611239659482094924478526085449056740277948025680166555499573293859889840556031721335344271396067856645990288331695825086513806964265209356857514892715343249266517187677290273963308355122160773361211715718600639159716904908379053600442484343202170266757250000594047725247405016746985656532522818865167697608611354050584194868612665180676853613373997110401508148178835346756072594615730637535913416613077665552925237274494463981725856002651641841586818248825861050013317851125511318701357145464580786614909707735427417333676044812895337632711087994783587475796866338616062923809986145352640784863730316164540177297527421216676986212024595818643738291650844881831628150444056380088489239691527987626320745701575827760859837248553540698315556768194585894218723659805577166176818387747777241892329396750892562535059578835802494549706324559184060148662095556576534915185400128415013480259697838464688539360796404684064445605795964356174436408701387541573085867794006581489203314833498997898199500383372383794201971136484843980644959301386881860435264981046548364688736003410249513738939984766596973617367783460929389318077610424187723792129981228898134919147910664767755487313995968325909126609506253847026447248988978360440519110108677850071607425338674751130765375630342909945477442202024741225863479199086285183338229458441123581101174241971333164785843693684105769380976418738320425179277210597142108283416924977440715182340904730303812981597268527590210385593312833418757255175074532820206506274176573633131363939586121961178505019953879559724120317430246349804269177154130830483639182760049520889206691640140183425808494196418140336632240430087281460597385078522610035589286972357422855389444252946312466478275820701082554771350468071995808236673542281840982620480236724963928773109036380929065487532149243769026713604457868544330777358969921947008860475978314552214019397812639942388146500983648514843166907201355904838160307239072377783656842018351791778622455713700300352969169280775725456977106566755061543471345817451450786362819626050380860433025324627269283794495384280770789927574553540156759435038212993540921622340532343867189381057648737509940240792869630529838166392179137939960446767481363563080808032893666679898496021381697412275280505728359766701799466539282630593770490257225217350549533044593240948789980711092348493219791281468451659761364707784690440804080150488039919775596777957863984437699201882437892539013775571360620132179727844672132402771704820838324903971403203617189005200855853068158090956605564563712403290141559601329814003746009568825010305484668526735998092634815860226260326941893605443255778986993762369968901761351885925253484386378045112327628755793753305263816608266841749398464976205942448302023923391444342266328323343183368843771014538495442610755325356096715271061620213519566893396222726728648427564689575354948112143121230360486426286887705652063352726020705967724879456434916158378166057126264440539101382645713499943993660051565947413519097545782348636887576984077805643158768420316995081941703573564438689883145820417604413983697343044743449938231435863481903905320139491479269246760647844551639742327476787014735276455878247055673597959694977532225470490739665471124459794820344084083206343269262582129369425802745415369974046089102995901845051000513234417287542455072217176762881716764209960189145513169790268885705212904551759874812483645295443977882759350976886653704338846790467534156024207112218041237939306750385960112019527789642396522704962492373593348429486798229878403161995079569044915113221818592143734083167132281024154246208728217770744530143007391650061886997308324318082403856179061417223170100953639740961423803602971734021992993493967909028140163246553709360870148108729173501386783294351024160049559342201375885723042776380165052882395412794057551825257573220775543262443212990188846338427363298278451054321261322446675109402369337377124815853088188204236097319974904510318174007424786953052689273366583927544798187663427839716522886780734174221236996530616188827651853245726099092146475841264183491512077380252969567763855940794238332839669783547074257789320467190840337397105816691156150351402199059899927770542548916355130557287736495604471517565655024586675482739119697448584811161919475426218155952372477207157669719191764446623297227488454420569863922400668064884214813752716152575088714048465276700162295457489689013499992020093078322245164377127701310964430869920373234880380019498006868573149778297353139064805007464131263618077816483501469363902516156557172051848675885460087122266100934793485656022009583883186472787595053016982033746761251643417789037199188026522208394395504949282652872006249409054494083697506399119950304784973430382314172778709151773794605196591819925947214581693445017225134800101406241821562055871613844543330329446964878508080382189656668541901515219132606902875565220430962455494973524036076554642206567507786892247278902222297858838323425089227763530695388101428460108095728132473203879001806032667820302526932141047777007753655724836874869095126095490641806324656631747042832176551473018279954409552262565501606941772147039287368495844681625732274304077106283430449646016366514152829166849777401424401027211910811961142280316397353330602297972837904971996905876746886842243642634877056286852906073903418958933682675654234062784030973241660402272923303392418031636885450134245187083249327980249764702958174417614640728355541732727396398417310177211929539547748698914698975054971913522138746217931059526682252178644975121356176441601597855127813556638561055603153319755792266053867096957322496494862533153915411279520309088746902804406160006656268447581528500275360431059235228007691929705693881685268842601058543381015809070390333609896886577177477975034481809314125500998304661828638586534714324739339114758694653611744885809324810164273519895034502573901218759703846063355098507106523412202260764653643641712438239589352942819646863806202410690769023713832326429624598596134938103609753192910930773287763089947883188219009296998327106217917920552921572680231419797803764983892658257471286769352019271216308887121764739730422170732509699322768784098581813129044643444026400148259102072430300470207615218753198792621925890489101432881572936637562624015460131082962671975524061808501730817254793325077545673345494164952456719290469540340532394900229591134343017516972528708414945528179328197711884028571295270646685427894320105848551392766690934802562141286521771677161277737558812507089915102117266780305659188194015469529699377732679288727490147252193611453369707610682933082160571180741656780594667024415589195664405628270904889461398845916606667582428478522610922402156761615261398368231613310048862756577788611222539862082842155972576307789709792815226624735711526323214604816788367715609426616621811361159762936193806533118707792586361240388314872653834172666044802713239444188640606690087075201003564104919544263808225360546374588223073021757587996794293934401422829838212679098654919800099827171409828122856097616124244706450989147884868357408397361430523578738289052678744636913044845763800880331553530436001434309177089892060794033059716080471679117929766815642903803632481553434642135117047552705222294929701204382222676972139507260516923315065228559357694735997717609514636051798572944712347322890682709721555076400481081168584552770938260027647851928932381594829532871739779295394820088993359607190642850027539976004046613416415942992185205447829807264908561585739642141226539119933915167519878216446478395511520538230657538603563736481825838627351243059170400998903265366303472583383936080978230540367279150244474797571220636278828911983311263863956156312952854060794030999430224069281708809533782272205084589142648241494790632029698123801852940831442771595348877803525622917312175354571794414836486539057016721960622832242573018397768145153609262102260969956915234916312907816695592237352664874278345701275817861903361470394215034144489446768310600905419478212295554336740511119157398985372250945855159980186904634084925677179758074155101184947860130243718717957372447539095437230040852236377468726182948560625293009514514946164499619203692068359375367854290729140552492844634321384809422630978913665310170409198546769422376079719794375113412629390120985334828794834884177280352506168233939213987684169183733221882608676950719680774620771243211345284385657778686691754873541665336354884589015023892828563578202375748643575926086416576661117691201486116434719581380483545136805224798873234774988889678864332620151214599379955162858001305579916523120302126584111128498945404764459266248016154132075724040587334246486250437917527761835720221842507934913430279093702186034801763551803082376765400314897368521610890443219970308120597321530648034711308379244608178876619560837776305737993481759764516634899856943314092000893831895571114720801830273616493031105515599743489843918653573513071350013389786511382187727127376537675535435700826329462383868671404331605981553852928847537104007401057990521116216034975847286345060956339350793452720450071253407706140896389372076758515722449659917343619871677564363385727529644558782060884755293220065532455398482927147761043700731556933691216437776997165582699586095821955832025780868352300657295218189838566736871221448991303473623629260057082607416266796633472976607631806357359299645885516885703408981720683760983410613144315502861040139223995169985335361945032006387415699287989162140854652242808709758854690425838518476056714580082420121203609413210130283836791932309506924080685541786837291229689412947646421317557694446684368146737872787394257067387768600077095761292286477333249261038592798329028868620406763978156554498093170495204591538267341901891622329144673494098705529164897551177182325578468340466148627835104047890857933934000350026682896258033615056874770670472371952226791272153454365882463707181651889812533708688922902773700989514941627071039448243104529411420498390469460140192557557414416763583305563644172859951012841923483724519250839973506796348863180463771423060684407476872178451923307396927096464898749010727126215434588246999244343830559276713492276781510820574009337900407172172600019553575757317102202436919247319286157628900824552102305059120852142524578771435889790765944589020531653880078505818117954084950307559228033751569870719145839608313695655584807939798070339534366691024715484661256439927988823808882605042708856968570321410860063549672969716093864332388451396017807748898253221089222013944973005456031493886435842987800813312215515191152593900804756445614547554241185731229477095497461735550301579935568433847063844735974589510642526517553588495287472465600380133559636440154777797764481232254736385813903626186191248385290022145676170684629699997005934183649664926689429971552457751875980652248899564902675815913379644233656144387401154353477369664828561360537481858476429879245826569749836203560495315574961360807804364843788758150460758158116948998913464552357363781775192954488464392260122613029918131503386992978274254842288495525548920425302174206304622129021663040966346882665749154082349841029130986349437966315705306455812826456902709139544815400846428772654602793038632788066579145758410132093236133987676931056344570868160987077177019956045828337682262850303814575878878451433341122581026381003147403214583715436993432750404720757209854684370324566123981619351144701517589485538300859158935066186688643224984200001902262356032290509561468444534296943195744218482354480502251535728332855398416407356004386361324678086864779922830421362000280582467568699565586008106790332623913715592297318040968619519927756006618066865513089220493633243650126892393115778941003234162980085471114753016389456469826716946376067745137684382086934771883751962019868684574706757701716908069343850679213380157747988072019468237685604687184429202905786845394898660273854778904873515007339907099917196191110631117799052765208010293257413050063703627277759150331384224338598708605047533546173401927323369118247719903231251901307711459410959217148332656050969722258131536005819017368289288664814044990537495937421478032247908292878405957607510439981256845909104627141340827880389722208092215097455797064902319346942387741559742272529335228355246638292752934112207031813020689617968289696049691489333129120701221240628646357053531792059863515100070193696177791308022390285139761445314867610778190094736885909393255286231336055893611096715202219630518077554359904509454382811812412503060387649029418589737090336356261821923633139767654887293992107428695944029941139957481315868626796706500039083847484973400695289406431556017628580082988768888804778253688672422540205116391934031080470892411245324192377808492803242527071475330012460543114181626119127806175323755028926307520620338644786131106542666996998890603681245805528550258294326076052754093791372323327878420740629552926033273190999127835822048892184096966108208298534331965975872252614200632477904239924935804734172037657801184167317226769508899751237800267618163049054316479296771767932512337834211362150569680768595819064939004097779985698676875227903342723488639026987650283118613251714947991797337042370944355906079773558394790138082834611824803643755616116628769340190889817687628180278407374486946652492716687278715696351363378925162396375845933693798857506991086478210603324892599707155004145350126418358838702538401039424160293143349823071810857492874424819512757842750928494045378923508336640923049636730403291515115092952536338065292272541228199542964395646736752096289088448925958137587221109680020430398668056553711638869370920340304195596479637402600671713283595626108677947822481911657790914544335866216022268761575427096985255078557301128194980549704779461510372737346233240380075711213533420423176420947654912671055718345812643642674654026037253976116568181768967867807675491168488824872266514163427766853183595193315226964111908858980356293216916822893316961574472324805162238012935369849348158755926543948327094629665750709929656016988792102106181043353789305616235221461123488283867762397036154633436739220648473959903435183260114771064828639499602520962195010277915185765832781473885545665596754708415706833935945227754743961746851123916425847960223189179099403906324730184451059644578073773797286761813344280842473374966798614808279300551889782086712547544512690341817333723498388532859758964349591169035942052910597307240030852231397321071641404750094378880833476407098919740281602071773794829286853253178503928742086093804337830626145461479847805686796315204865447807665584238278353596078301424272842616978918236969430158867722751935163526292299634405618560257783086260957378781669476931791410133824153435589275285089054357480086293651441733174763139878326726171970399841885286533505680144556248981744744339357565919255243602634285009287470918774224116101707759990691908255041867718587061233280157112378013535919073286733685961227300648162105034110387474910543429335522426487578475945500806425434952638569113844556394518340941496517840872540535666225697434098495428244178774826967856587968688168308700684827536095366008734114397482855400868722662144252269132620022403629478473118019373869635395463552840462400707978431611605556215824809185575564794934262748027095121504629034747558668878617646211832661848224930906461401291190637251093718217691452231448590902877628645043289343221927406322310682637916761540914246409252336365402376075322565206962176664643918181806882107912282351482200666629367215075472819882922101888953156409916881839519540439093859108396115289421608123632867701368654740935582189666344445671084505707719130524785934476585244801935854547236258801197718875512597642616076871319176902134560682110243931308556121846656733409066001411931112391224256477216372448395014162614873920679484735339574184838127503694142981181745980577831575727356642503146088968396131447432801866984825237717625576238171208624521622885057671163255722370249720806785640474858928433361817257263256567359875575485128938790097932168357634127001276441543054687727404722074705629802426239513013069894671273924849547004835168663599799377802391418401813186615429363946450954357608273413607884589539330143660569540716034928513504923464831308752862267848649555747079844173408843107230199468935384376011059261859349014585269889042006461439054100953245098934894997105105847760709671920737379345063485637911709943104517478317467386618964397684436991244337061740077841165802176951551024819525471716366440441627824330483219502010999902300658394058481818331105444755058099046565174061897061809251550859543236706736152391235079801409949867884928653180827718033249384464596437011758277610271375049265802021216940739919169032028111250538246306457626715906224785066399717500456718662895710382568726261246551429086815051626875809341491975971064860217540118126955806167468500621128599090533882432635005215245699252699331438932681143076207022511309892327529024305005038648092114638272079116442562953809794144701765977162030161735171608718434937781941211280890680774642110768617897014416360881709504832320498025022137429583551117886869894320479601291949228650544686736770333994027990830248520839300811159346018880678135445624180257945654292200530302922090589520798600697969728147626820022074936814055024909556981347767748590690369498505254502117578829562208693934015364887248082274435685210497602734263539004022782868666569527943823413333085939168504557538561670898979123320698430409394136732457836944764347756483416063729016684646769632983469114608318655824219589185365023766469656199932547078238119873093220774639314476596470898053382968301476450539913418278288536302051987148541681226328322051986950023123275225062164960574107966607141006810024024266442749719597420577439386019899403354999665332834487212379757468265743104339586661580855893965788457565147869495088413923930112448275792573365216390151217542047521549271343513668574305699040564069762802118900579833486429222099064254714880950596578735319511445870094614370961143620387422195973620551250569229222239979453245596600463550155177714591016882065560651990234146422699117347727349575647892518587761434378929360671448688822173900367191554882271028411179331526770348835990408984958371046990341174051906148598681001412362807722622170698947312356563222672746293984347176709608260022074670901726689970463696173982513828469524759813008025105200193016160261656822441647410640765338842579524602856049736331539902523684886591412096303467715154298808606083267495716828011756671495193657514326826574364702214675048235766590777218007105618804351735094746209955196302562364833297080408716092380688870124291350244383982689412156931819149930914140134943125258703287222206690338361473156572263336017903486441965080443096676558142712750858763281306364169954008949079316202598727925098696593777660238721720679757142163254365227607148408421838370895796858182646634423741126050991752269706962441816552648715303641138169469689799397099968749428995076721103148201757078223967156270038515959330453891332761910228929801238608504239583449302890738439268195477706508175067127954481854174608906490540593742283197055153991545780472025959877482696572393318722995121971363504597548187325864814277396566262006693309417293563657329714688788933850449849763624168283448456408621929361794840848970869724665111532960606570062740217837483030103539437920622075602521255067049676439221079152126009872318171018853027352306191907554050914189599604978192762346960398816642601555850264347260817536075928557954131251892383411981663549026825549820456028161294780026012273587956176774312222951207628014402364254877389899608458989014028899296930868369239719746809638142214352793006923678109569586786890883266882606134138146876629046454716288154964783456663030026248808335004083371213866251576169530568666244027007487735104707495025093716282325026096013563058480451507278014365764840670509989180608854900778924358203339585983979424019707844941803164352515750144988027572378398973066878437590417007248360513121239846189406644177857453504709228783798556604840500340388763790205849490132015232584537907154634702267267625598534745227040144896157433581853015758265719784514316796545934323118842570683328137259060800511354768898641984018242133302416289352933726342831371836740102109825720345924733163886739196268052910428129024646080184596229170121397204297291415348183565252067873977614198635478569827000030632098233567494232767850317912359529138184906195248508733609227493744682006199474640248144803222913421110865214341897760917073245709301439890826461765468456337326546548255409660440732532912872827592279461070016501800669668504237434250813756566074007636997687189185609323834873740467555059658439641239359155754115410917091732933144251728290805342658676744308986933447469801526985747570805677463073591835246098804144090481904937537785106668055966402341542609867784115880283289718070238980981902685937775659476752645275469995219651963959982429976721035191666002523142430051785747041265182382868436914307444750219209413766007746254548867624853435005552388755297814750432514765337268921127534854934554711932252898343850991286402495725727110728983044374416599816465291006462807884737620521663500707774903942526716531289100247638014585789732839489208680705941412224681580823659280775805554455926492199679154751621267427344421698980798228122419934132683605139273892626381013733186082586977183524843110256819150293918425847255861621369856579794698706834040587557945036947470616400908531260695717715953038788614688145921848720880894969807401352850538294289001982202446746944524350957970832210666477146518393915794724057511607638321825533332391017920089920508860773476917547663039554111626434576104439203623184851529672332534066717370233052568669626270608598018898111707235014130958058769193650126066493493770281393655788313430339374151792500116866025803295557414741606711506043368825107967779860966991886918486590182850787867838820560148094653407281344762462815233219090745356887395349885466529337955447698859184556728733468995339219314646433270846762348831484942982159148843081913233635538968852647567697600863096040427890335520333354595018014321174166256387610868191008607765540989851957473784361864285901565890791210466576706332241819374391043370780811588269828795548092200891619138519512419559875562213886885945379162127094260341784228305287093612058599306404018954402728481409220080982279725446703432779637810929303594983881644764104058810006455940922276774684395200205881220993322144312513661513966135935798393338367433755999972878255490272965852074257633119427358623559869921912463186124292716697633261510078993137901501127353190523512837984729643288677505249552605244894499325220761982342406508549056291110155005963846154021187456055605514993313736358549296520252467080888732765114331307328139266959430096989701102382681506154004450363225204444683446615841777388406921595818542751561691316594668901836278299581367229380081391646749055540801685713418802208348189735828531611856606876976767304297420882342436266438769502999600387195278157863888485240310888917713213578253085881577940299756781986686548854438132222310069009122355145109667391113748807335057727620521523631038122107416884630549876302485839474996572445872487899269684676288979966246839095961732768161542923380380613730343403267812692719977084415139081476371781168124776709587266563126949266137574169121241743185198158222269709159221516987924318097410538269944063039319970075301855040698628005212426593465081595158481706433919172226836480979722583273851639399498802634371081666930246794794129400511822258551103447947011651669128239070958054790778348983512574296819401313232025773100203130237457045913026749204101904226122316621164132188929966405470117389116312171616627447099790530165375293067423799184334629673634704358324465986983672436853637802601255753828298719556150526259942396055891897651876260613178877648298371079876646511042053188004294809444952159263407505520687738401802314522384230363994051197710081180274294945275412992001833110142503172023348585730576625804257564550699090344626164526892744804063671444101262074556960103595165493271018714707893259041016318573929553083367733667493482445892789787322665829878957337538135581150931766898744977934903604960508498602789733048974256676196735382201954791696543282608116047565421228216887196008318176680929213842206388362778254595120093040012794191549505153081537892443047004811129610506635594366821961073424654515937804868735614686469685462900187467594597277566870614407083093366795201371444391740964318535448809061747654908446354166665090902234896836602720509847066450090971716441581729286936883683242017229211045579365484268390872549374618165385027829800795951486784558199945029793086511868079330234631052522880442203162855998397773515970311299803765035668859109073731222094058169567016465695543695416555470280551558254082482607712556141255670749357099755922204457431706198993122597615084146158202235781854519948519323800639802170356803024150382820966910634900559991136830725123084152622953927839038160804016494843124438117128278412918014311460871570113274334882999990711184755126261492902759325440047355458869212207827868071874291592655249968493677857445908684016284286142658274969790579438792128389857121443156854822935023509285235456996789974649826693380599950383273741036599044892793021572240858994459174327986013761366938589132534247385735976692919507182371469505571946545692507526318998224549868627552173634415819470372886192966975714588689328597223958111465838288703771390840005061596251837728740664745338752318362014806457335202588941879978265269901934248623005098943484997288018247552777931621588161448913886572506601030297467148538045090085478560286523601461365971638066531930866179274101314664779675132756118342379282493373557454325594845568112162810221442096773313655694118743624384430568330527691989068270650836795828769427185547127170537477449512146619397909611698826964847024754224895154822673205405704074068263825447909757518159372325386454398040352059568301547744720021934186838654112896443248979477693631634934828480651052948580750189424461409364806279291155525683543997325035524732952328017869590600899670582124300132005219856394597121277014629552001345931059676947850950454186969584490099278834673674681730406827669213267927996507513890398596638645098921413373410722031881979124623295269765987664596921645142817662793879888659887548992856736160192105274276786849658785163668163123944302630200522871768528398137395120490531410990823874273729167676976268120996692979051253431029797164594203571998167906678070608144106872560838237322558566747175171072964882065444843972331761252768406333406888087939617705046644186545700749151773694326678494495235032597600276670040894644837460142086864548158145025784127678837474888312762923597488438893482879033901157572790272545395097715183050677820042301116537228229160067687619417347816781672518706751773464681037070308078248311947357008903690125090117911224726085012596344311101213252794394972480366405439495733747775593873790799249446933027036497633996808656755306556214965167848004298211887540196076034007012409931650662606506078930147510707996589383940207077387964573258926327885964954831978479236664313164017790358136188049513533319675759958689364508363803877460183441833171039149232131017299090709339343488036069321116743793335540712072261470894140786960790527558788500517900248964797595196165301611362734316657964956102421818606278441560988350171263371618711951801241685009350123888187502618460802379342126585397270942742846970025967562503950477729396067518161415623579180710708193053156651437941217100078523794836453840576225647712301733726164630785888537263370216842376134529823354216126532104137113540856225857081473899632147126833780303454771685130221397622032180079075431554790319945003291663564827847656213903372858975300255622871521826491388029955524241051314267945982654211792166546857124905411901084277819752084650871097197361325342327034012216484436323375603219259704503486052704037632696466147772600231403305805770407653544593576882035510031100945066465793857280131256979728094345259049291024637728712985086378384688624008048261769656070891032894658479326144676568454941062001442089198277025911983075441665788969525806831521722003711187902644270376678303641760866628937905897873272401856688731763674748400678337143681174459423155962767093902188368463184799020531320278792140929101834147465180053812674513439237202220480597412213243538334173912864524371720557263594889094779328112115004420047043352176436795994866978758688522442431821011683107595677429029739649400499886621828598725803878288839745470489447068230951531827362660482255142562517704745799776846057878578559309364963102138145704114210358480777797591765569710116693307464362201879520447448092173274596951376919232933534257712508751575347160616133484970692286974482582812191218066382982310598394063259610004007536053156252223234729663465681494687454385801284131921941711009916701621297085308430347892070217186078587418957670036498996853477654489000425602497448949640524630029572610590432130673363083848385161468451804368367808112771221239307586666258174398332239720979070688258591566739762540724210084165835009406030689242911283492724297264986619681317602087711775078285931664189715195594747457444467688960379153225681225323100361168132630911474127001476765163917477931099254694355460792851717991668895323086128117113392504900023656568043882577647147526186330140285619811179501247193705790883106890812583193835083673401923606590378261960109778727856110857535342786269975419390147566144819715241005148229780635038290647826525378447732815211695909533508301324598013972304604832248769276623120968344597541088947214660979293124093254180891251203901915331561822549464718959464351863813243953328950518123061585393254570516663871059323012066263219199102382251451232105618193455826943729945107966073229254868086697763082109474616067638847218023883420718093079125096760257968581979457814519395893290186264331184708801843723037660399766073526228300614023497118894649289555508852227396443860429618582887123630198671562693577016130886357307289074500058443392299617459763196667124016044177195034647673253252216920001700124502311323763190799914639303630307051704731360335688087452275866633021398583317490819002933177311269135179474655624917765179903005567108417832895559856756992038348313125863021766530211836714491915098886470682873283541723208990639591872400476670928516903248462984457101522001268162211665922064339135426943797204533647978649152180873665938295220805054382236144948890730604388588397419517974201378391658828865281347581683955145112376236409988197839654760676507079663675292699822912629968183723489347067665754557345733001023196526487256958445920462837212025681543543904792577749656502073268510130311111027788677600727872728847015340671135777814059166514944802185849414017827977538579010033819149882474985986687729570680217528172159475199714949298459398045319941015866739442079414577694094914325571684136891590524590641622097444211505425064790112855080337945093777064310229000463167419737109199035588195285409556935198925893902126642020333696393761923482065746882836500773424782753392386246168293653661821698421340746360558601869571069936472143904200894522987789033664985456386378016438120778207480610678736650112483338940267174896167556308738112149179012452372658604044137106007343698712942524924524992919793679421762718999559289644676741147492672596882206566433940977435857681109566554790339720464856011669130453998897064823430846706718704023542189433205785678230660289172236192864308855480861031008815360653605249980081240586223216534355111323329786597404921836618988046359968415128530540338459086090429799688962312114681854195376916814886820112815372056296593758284502285621873934502384203501198994719069720905967929434114926859697995382005151354894787189669252387557910344981226016444392725639347726608524203684664963451674717240598814975609848650994921905983796495012408798970168601639318069893003241943773145150230038331719904302946181486026457288866527824407071093127525147924662154015873482245276551102071836249356203142689532172593803672280003465356887292611996376219623983510205720551566231273720192040543882118563907585157660359177894991677373680859410883636352478815214722997489547207518380392522911920135939603740731470918173195477944366154062510910793366163212410091457299002938141537159546555737009378901132702560577383282386758353656575556489039897295073380960293530117647901552025360438502619867979168258870355160672758233597389289128865347064432205074386184561361612384717841777904221335208292277076510352983169032298550977444790940143287062413419773641104206624915001376345218447723079845522191887634580547797715538915752111782699946595599271021936294305147700530529276304280546630151642370222500243714491995056349635837164646753734564435140113457145629401985691859090908908035152522938382651648799673651289623945736564715290275470457152849146802408681313542205392603045428246176393005142667420247325912662362151463848774229401382923875067096137651556656698216372693080447335077930038092363673260290714232410297780221207625873988107347557404826568223831406213125514934330542798555750181288079070976110819223552166839558820908001627108653407497108630544220283319024035272381365609716560808742795525018094930024527627373520344358071970378383321671947281156302942278787654962117201522265843165380829950589631821118691924601156824471344446391057088984129792946973345150161507214107497634215486036619218245366181044911530208684307220436581957762936983178271778949649361883320925232432160352896842988560627992379025108061095187886016464992362107578933817877735329827922960726619342347975605083150564909128441532553988484810040222456127151576115410519728811012453800810709639376817758070831645648240461810857376704579949524092163490520336821142767001329843483171865086352279044243325028513457921025955161979154117488184143349105845824739741653088696142564456421379208824381301814345143278414668354590713187813837063281999856956960705224657971641482812614026464253816563656150146596914235487588926839291770938438881430369871186135897324173157633946336800000719748498076844125467769819748014903655953511820433031076902188741267057161202754829122788329816320007977772866362379177295569861102338833869649603131767361464371605582778595212825792357501941288730945810296195560660083442385712021798037222487056181066060497461761372862670832931732477050778493226076870737375459208246338763906347911216171566220215947376786246468699115287355345543312629044771079700021753549209876031845085291714250168193709523329008350639969755070568061833465034669610043610116289215818156059727636738713575055001215429700602872738320288046936022104813798887213108096104845800886953612356622772281623257808541531369704338279776098342685550063806663283789551005569340483223129700569559033663450209128684722509771879075559760317662935868641777673383633880495501219387995745398154987906178845086467530801929021198278172753608201690632195963949869051048546388762154704623410690331715718302335365645350991334936268627089137451748900966759258785423956283706404248970404914000398210600374217763331826428939538539902242121434007674516389668224192613372021769214367475543649663013169841448326830335217184691626438637551882068026770780592415146339160992417307723433913461981860184047906716221767409410741484250384336523053093408604876451017523938770017806850886967074912589511221539419510857210871285425795731794535084009559889410354888319088054313963533532349375967931702982901834611137310918618766918266000256976844733594711828115522543703199615183788533277689660262531066141508000054434909064887841958564854448705763234809696760800974129921278761277720874027204712529179863587895156912158910703074953930335332905324941684472943874670908429884494516089915376412940856546205391879389970429106103410676471018454381882422572058777464113364034162525741774051694176598527539379491432517543206588342575245742535618479427745059670226431269978055482563217190724335798156726967418340940929290253485617056739793663339426385644887083121581407589517329065198390568287076493529979255374540255822944774564858438504221336517687686655225134930225412207043334659417209125062760507798411377312960715433406275646218508947284437380534188929825592573798556372580247265237947533113182100557339499067994660658791355179525849452258540140741462740540430602285148035356278592333932135916518710059222468412697249153566311800353874932633001394705898717386986524341889640193964405568554859775469835541114621429552359250728366207351469963200526414675246763962173719104763729824616886753784947178788307832289334604124354716101518533816922639343873910337773398534168358765290298765181967912490224897585621735729240988682225870292685777187477754435949891831140090387171283393030753361395361635161478368807319954220867157781623425827159878305964088243220226213488822324181182007009665377265328390611244590111554563903796988906778396941628610335817509976541617591915132660051348334975323006910007351037925469584659996449417120304348539089119985981445777360824222663537596649034388857856369608743198644406662611483753178712176132967057365744399974346672039954281562500374435491988727728125872598290636266388624503778842455771722933638215626239360908662339728775574186591829235569460072114629000336804930690946701706210229950580933764426937547673565370099899109678082862869275411074794844664505333754771947305701482505460799263586570357384571922672825863421737092830171877225115523692764511633762113919498579991816821471090817452319820636667409159017791417732654766375418961115456848458534806217292012190559729022458968430201986720012193077861624715671018893668463361114004591377315187571092494056025358012055243538527418497291524290359019906732811970935379387471050792943492590587256051389501032952304717084609615446047068286974182475124693676760415118101691589921748602716050814102502072787512619225110552746282290751330798691999611450655176543590675042406070379631428655323839065232323750863242215706518580688400303709431740305188989889952629784092727829238071787544699820719907552907843058572192951120398691808780711074324059000895741819159351540057314825642193129491021456499210104732929542291723453835276062534581079415438160267324828859643136981452387407578859253672263794089420056101111121517168970700062178244402768610096618896090991573392006851877386366792677441062466619656665787322605920584058625801464358514920235050558595933760392934442081949116798991074757043908310217900804658861032337422501921308060915851705655980619108672477869671689512259572859324237495839216185813485488708811665694695268756632851663580695978270658866506464005636261363075192340749649520678551644940370307980828439549308081124058086169200950121871885780518840943765673306975832464960970025936228683301271824011028782485828588450606806053751394785033480700391620774576678666428064792450143706402800443060341690745566865612345334495909642125104986168703240495435772685963814624970651131676425320490437153495984924829174873014070852698710671235323535320338655901099735172823500902696714585977116616771931426532880569963466041587500712834165334350341672078230308327987006567060230080883790528795298464978401281526288894395818420914147051419560595411104733300112268127009812524369175063830089929212580844466119846391160512373885925300912169950333120295914926986713825681202464045334633044628219756495231956940155306652523012771124632192478814839975120714277775890907567877191485726813333444390336757939979020652869673732525919784880969568278589106686813538778402285682992622895796448216206227143696218649935370811773297819069745746100182482231367273308661969119989972868148863638202715042647857138668401390005194854021943448335497980009955429373239783788700861841161012302249352194578186685256144568991087519458265507699604118171944142025067325368276883978344702411886070943861539600058737415028748432419399943746684161442307047677194433971940111330861782233949215005630189148970160256079131926050152074672944296415611409454618862754765779541470895583118669887321984312385631025304439225114098139352889213626521107128549689809857899118833246768967114639494875889729824185870251145984243763574058719781918931793614091357043452812561067194298733818467986143006546330334889229345642096980066905198151155384041524573151242178348633781445761197322636349213128464234732980561366624901559662226076677227424877651438304254991503834533444060846187550596128214502840183157101990364367857164190374757849369612259526680413728423431400750002928667176389829120139474954092259106966218413436013124941819902723106168999384649343239141885449518233792003131689812099108964605094844428610006209276298682151146355354820522182340568224897853324985832377856984511611801212841815734961806137558361208013756586895883249063696464842403539464911966448250997645672435371898944284256835785198195027390697371616488408575652269797664020926954409534475608236475919556617631949611344309392432090596390710425994745918849937765238136639903930139904808165120973666690296868800258865334552766223641580786218892184171528063258999808736804035861422641077069456658114378573133819489073981282620745119201658921257535376334648971407553306241076310629370345991385481795394384220739594959521209930650331204778817823479322834079322204676905691826277047738724696847249479771358692163074674935884913389751320245611218870339990056721395795783389431864248061782670010898599951530622506627568746286349614623305563976633958573843727439018193780088222981935053431136343299465309477109940308468368824340688853599935348971539386143956582275499292737789611779661097440939467449956150077870422987322955832148877401047953322707441151550132495287616829563601760976676629290271367979025130243360007832448693336107572883997160072207399011559247417770225451843270165436313742196618007856322882469701984520501993984894989717328004716196317936350100823400793799395430368288729010498146388955759946440157774889145121243051635813827794278087224835533783212593624011016479221257021617317669187648439568149960609051693834044422496071232380281927240974055225966878130609962075137253195916650421311985112588205155835843928308434904726105919039162112691873443179178653758906783046844254694758012599897397747725515171430451417341855733893217473590996110300651132102910908756705071939904939974311665962623054659054343609951017304324104786506230279272174620303685681628113607623435230662105416246675084652742770901299565286513963021121713380689859199115363973578952194240658388711855993010409905298689595951893960748615108923701964387012069147981045879400655761652935582867749725032289318020057058997688656596468279835654452822615633949145730210004358116917212128774855299412374783707880976337153197450498499908596113579136600964117610926749225909085008593455749596187411731374470159254118575289003816064803565744659736872268380650664632859526823744514884004907372221303066793322840380955488554447055259961461231733321906590549157049487738384045696703196162224327498731194745542678537296962087431745997069479551141921070335987336565338276322548658395363730565134775697913964147107221348830267406070264134244883791036734827531879314962735839441121173662715403683306519081300516787528398982125267318079618581721268434155453543685928890419828774016540990178786591710076470504246842735135236596137954172603373266336262478878477904290255031031863641754719123463050081183727277470238777599263075235660103962661883223901712958430619175285138893166900380952094569948494191726354310147410656849797287318220300354029347131241888863104248892997627424310019857328171886018332664846625116782690388237284877432130564728870762846495921429526926877948335840532386943278937541668598740281142504432350537319589916109216215062825683922161316682761773599564185099472632787066980192463383421530800105259588159740511993098592510647161720893128918129088551948554177878602151267229222794370601117857874870008113789830337878782397918025983887749644255628296470621196181482892116020524924277416782601159489216339541426684993069842178604568331687641652800179237863142154849636102903662680811526918724906382127165119758826661471021653769776468930172500699744824814297916123802206526663279400898848588928191977099280623144673000672989852044120296069604900567366931059350386799729427912404430565118103861869074576378274896132294396420936356619575347088648515997824591492671256927223095968104278737582524892680210044660210887486821226639667371300899983444240328852270509291232534147390533030935310191683422534857982043911515194492226387807866380909360072245149055851322877457129839597336882796096653222025595667019124622683135114525740615803630879875870191427183998249813500082057191343542711805046799384307755672982088610875482423827050323953317333978602668784251748574179184957769707111087452001342394648493480947374309919151271190343057807573680871807776245519303464117081452029414300985626969102822920572709320082805283385870680537528299396248200435980893420947790024273841639840810316237135508609049273833287658812413397958345638788132983168576210029737730373133571892765910980817130029434901216199603601884345890460610579846593282979837970907239476199044645577332991580277849272126908392476615585869962873484598310543905731279782147156196632951250166193690775151247039727105038232899403259823914516148749687289586337278673208758173264513547498754049225610408883165242089595109965234961099862915716158388153102194358014377994938432367155837958103830042626492976065702835094739112970138838249311467102369878866329761942701849999432939099273455155194545723518556169444001707805118195700235450433371352169858459946114415933867406750217750379806823304289156660464868489876866240484017544800380494203664185740741045362992732609706585423531201889125896867742120977378639440477805033924266875513137231639972004107133191684639765269154023862768978889830333502371308224706260513780929157388243350831270467398532182132506009048068193808530467484489188995161845571988222619910014468296442924887028420674421229211234884901566765968732591102804359668522028679257225565624840820548942567309153315510359663075076173439066717168523063766400764662534452724710974987328322004904968276337121289520150800629131639762823130328133806707388706809671018700231855774418493611257275252181417166249893142171316514009695334723132380817121050251975263123418349090440839350313073035215182982205558679521772475404126218302001442631221597517463596933298228510503358995945710654982765725965277538805305231701443139064820549551481588143104546568142701441189120859228209451342502597252615216900041691401796805438628252071530644876909437318813150163824809501771114907788137305282771071709677870792139233760123018198508998021207054594924860582314726295026452559471911628723603809519669510017457731281733317681725380270057989463601399257063393496133936448174136792528356673683752210019098827946256954377847147538159467500861948180489010450242273745159207308273597733915187239357734493436584430770520757964460883148861318260016766885427964694097769942898555093432542414292972713819817547625417377213675795974719002216150296688236464421259636673587160202379584140134937692649913569650465752439187343625246219175656187138372005835945002346298151049891027226278680598855887020804409005852402251245742027580255906889632477997742436285876816334861214236247755275944644803362947508443636988552101327172389948120182488534061544973437151876456768311808721243994533951214667811829494108275663754677691709061982880880589286889263927415649507314583224714431120145346173832883800734695311328385485221936382023803101572495625723222442456160244954259400328820063301128701220614481337587735744143393842829567633838942503154286567959080603350097127562762375170539971635186834005378878026331027395687010623771849232404694356809419412965124608751807370684326024909971271508086346949662352830222772275128085995495683750833711329894789377769952100832812010646307339604949693892475291631759510347035411519421878435518448107242765321578103472219532012453649845994188553141654059647509457638832975378205166507044205751143831871073183236887299859848543898904486825060852156840553749516881594688431206965858420647657156214652215558875354832749071275649902805855070216613677081199491639018976138746517949566384842190256697464638623249073193652786707253457203261354966248049102396892417862994816932858332571101051721536755426121466347251518916082866248647032742574592556735211534989890362119678159780665901544883768004260963991319303990670459376559648419056211369656901226405395898206155894541198837977911133468670157773061061269126636877366210447576452489540087876715395563195023606311452851238566254527092692574516336788826269444547872596479064383217775193608351728777059770082847213524529655027146971610801327617722981925772334329606177836390421346165828261781043190348708881262892461019709337657112995917483487776268676351970001908360660402298699992319890563408886037067587995640924884430553802772444970029320698007005050345021679718976407894486383144423413657336127828940391920891181168372255022901303965223077825382715973848469933174468073548052189168269778264887350374934293227227865713599502535979203167858079234793209963805998337652643319408095325464283763214483818580181391399377941158279469096312138172454133385456530296290612851926301460436656945574129571829152642486811549735720185837087661244944124353744618367060213077884432940643053736478849185909005836577849991682000034897314535723719323632485020573430633095235339609298605246864672897401277996842061032640169400039727368604930466093438970421904145967332109509329679557124386062434854936736158521859220920790551001451725090009111823575884472143000842353964599602146181529162239026516460761496993751785051680480971123876747968143048846416002426288053085313895605842760737108666030674910017495936516233326949898378066655234690621631239008948952700168629606605971477054107343714857869493126736674145910921218770282685297669522614409141685360229512893775236699391853569025981277046347707659004791373150340526729732543125312283220904369915109376920744647231590950908607499491805551278712672075169460807358553935429548011059191215938114156052094760445471768777355706150025422803125128340690646917402967031241195928998927585079528034411589296780780063619596934192300062837432204953593769049990683569182064174933269018315049244747594805514219938233209108614012061503283201459728353701648042349371435319234929553983936284203675040402270316126812610586049998572313685297648074338131592249944103749796414112927327962065479611629327149608120697046648451872543338429221919056948426693355334363409149277603673008005855399018476313145292629856931706938232499409416832905504271669691906356747957934754306008248719397340905734273476002720071430891376715925750708306644984893928286349612129430290916978746218643615970801304328962323423463499978696887938828320182260284476282598255977926248450424353739864752991226535478447796569928230985550905392690823025018272977277415987712258986105675295278260971041515696830387882375653985290161431052614421867764659324708925207815075032878019515989101687721769991868313954964098812202450150228583314582936882978571529345286904803704671809615451579526091614566494446143445032666583187136165240508052254795352508898897466916497454832552243305539449376294738976088028502933211012827557544249487377974736619957927189831127289145261862953767097085501699142006965986753761362957219542541529992583603868496127507656381962570948954835793547255014941096305164073324382648730017469397025634424424040338110028430240061660723447925777914086544958179004588316140683671513065669065261113897938270134261986186266794033197215674137092434077989335040280477582057706681999157603506786403085118459511804163969645103754731365894466037000679950381149680444160777467181727728436249851012839977428576258060414895818183805706658442190110846234680515991383506957312076684697026572619021743309430184450211231561628579223960073134881646666010400327302636399339532261822806081209753578569036106747956698983191193646338469917472733193613744719831807440538067070688323685913297999454219853164995094524365999057934468247498629999590774017000583329368468700576643771725487220080381946118636356994171663482357317392428003147072762221063640672858897794514651221744472697087595577382207148034093171800170750687538739493515757761905076522646948837249002713764539451102607278692192254730564425978119166255479168803541630098630390346327523081708835313397970022524324671585673381402868418888551286161626574908414070290939656203886591295677940256356027049541769304103390101815154441561970908863728961561536761559528778335289314566549537068790031468973232048603630463486053787982931110020978127629453718494057694577425562429702976389876593374685612673108857631099491856325521161019175528154468702609173131143261501165791620190897242938218745635771529943707403511784172552003900757876322895882591396162323582521816269939982306947404154696540557350778070023814612486629825029986519027831901800583157845710370702477439642996697172808973196430158573265690088255494688964669367607940069180241790855207401876042607429722646698063835567775236939661934759939542849560477828843911956886451543215411515928943261394760080343789458014759749838417464566689048437319877958195430055752070721968011166107090473730914624763563220851377072003068013956003814907622606952613390223438146529199373726665330076167077349824089200221326921546683295939191892340210034728129260627408474846903684541333020052832817591336581327849150154046963417932757656145330216058082263678514907109417085377168112564388224917563511145507215452865030710129953787617703878003122949353770334637633611170348247143532324670928728091770543029647797710919413655154484002333210951567940374046475727683810705894328033020765775844260544461675067765127042535296444460500840724997803546079397763512706960872209651075114165959056878057379111964416546790236284120819935219918765310260663230890365535894818992284165572399531592684055541358724084661210662695608784327164747064385866545170976178908679610104566163502157739499353044577682480360764503178565891636147476246801932420624891561681398755288249899760644019859671305342723120697337340022985238025552311981173995309295634691795397559576884386191016548035483040869349782250468574266730150458231918764098531368484019770258688282032836003907498758252635553252866538820916056653131924342209287032972981979486508828276856946915271296738030114129072982422388274106254547813874493302695280958694919950818439215837624553545667967482300179244251740142273526752033216727158944823698852888614102067077605104644572196062748025915238101038147037353241717416977745150864798223526950646302730204288939156216278926191713681361707402300115936462249950847236782571722388542149394646739138671792253606095463413392675930136693719785389784554345664739105915213853332875849028944760410693074956615571915541262355368868371622763309243565276933937635768335317576096767760750040702429136308868132981253228755123846347709359987013671422476887900846641831421186743394214844375102991181361530986259238691469359176038651773565073211636178551088432448797895437190824629360077890302512898682508542343683012842208771691818164295332343638145969168099160382267779994301417892038954915218663507364714967470924165193780014093075422456599523177399471398332011317863443496486425429914070471139199146629619022522565664103930617358721459049767744962796850664209268074293354235760699176499636348713156626037654381909515820498389721117688468181084065446203808930808362338725653689314609049053768057739257572616783427250949874001990265806733772743531795525416141997427017551761922939481150483091709603441246914851143920136198454118063342312819408406919018017859424454011683942934349157313542101400330262690169913886423100062590209876838635601055795864325566042573683351706345200600848939960216076568789221242307730747848038137302833919867369720175288142428711853872753610448889317775560510682376577340098080637838633190238108351394757058024069250810450412398061871206896942089780316454545181775835379534489415968717684666151545081426355197572173702150252299660486324926566655020796732906280248977675977332666914635861743558306828219066819874311771428669069549743559631634380431699133631540649533213599894026021231605599957848557600129078555564437209250336220156511985738249970352852471889553984168666141247393917515944773428537492019283205183853589754861000313308427080123969000487220401886552572465755973359340199790495471260318181206585255440812879623685737274897961467934396761796517838565738844414539108834743437985011860494532865139011909391579132152007310227056484667796484973692705665604736325733543645463194063445936748321423699840614149659504658436606327209300759123792694015339240364919258516573358636677101007425882189892286056228592440383166006722353220558508920685402139501312714605827529642895959078565156274525221633505717860627779774133460553411016878679589971576518553853325141716443933532056818577382611600655767526836257246425926320227238371059713092076246937694235049206356222231671563240318344926940678792461939181605393076971065008863753863461597153502978111140169505466973432923334764429259320079459345462464976242580190526299840371318597029010736861694913513554384799270191774042845412345121121549920729055816538776229540602513042653622866294718759091920794404514380511194865186259879115527430325426723546269212471906414923467993131805444409975439179694689058930859541912742427692733455256475462901535667793208814435141848138049860979954041903560243898045214417769838533975683147662959536878060171271928119996034818331012354832211790584532124441781044327855239040766127694001895343978649958373770171064959899021110711480026223591418459934435114405470355798297955908515438933269189145930089344433379005281148975828692090340073540563782593841793168004227053027916722481012779178713985595152207670645025175380243670853929703784021661843491742907383415778107414201135281673088509092055914783541282539273441943942110133171206903452528660411613642944513779991325321056436216914516367510466213760781309456230833124891538525952739752063823613372720583182134207049270678755222037137931750894542380368644847534739555332971896152971531818697746175311178881892035111609708708109118156144696319921859630623120474644969643132083293661130402228346154397809127499136670143323724786922529351165031265201927604165404632500822111133538006541832747025511332996810316397488647689612548853164712418956643853083401487771281302851259867205199190773475186560077965356118540090541101801307084530365141958856570213501710854998280590931438501661106761074900306387112701769849363925748521998460082880567696878438077332332562528052636177035801057513793772740043241836054597703750581264125293221311798571952853509275700106621578707062715720506779964809805551594164782461890702271135604319970064388457610312951366792525977423313225848846302088669769386681144130477954797282962373692549666504914816011648991628335751919224828504420034269884216538362188727317394008436529668491874097813852538903151842097008925815733144288829353972739681915045460676223489625835085190389011357885368583278874823831379827428297602912185833067446001449904608946709701500067846145627798128079465774315750828057933863656980282124509394793701586807933638384204491532381014998242351515880104524308346433901622953994011850541489250314424519694814131712668067801311267475397815909097898072310988135109537650626384672751737224316050060944942994687392713898006360213151005354063364531550093232909961243219895182130492210386209947628259225807048370654933737477303303348695686241676081516814102064192536170223945564714915494040443789807906406306069183599667110200198136827805741404427002085790362075214687162141642424823667847480080229768442087844641438560489451542890513015444918147958269256344899417505251041399694258257833231450187057177626278170344987841728958091305393906117883011138281562655492990147165414450436641781715124697946117370456562271828495417324004191707295989430651799589796319340735745751610414979620109893242872310961354148182259753843240804869051265488685688753641630872901285469902593424689354982083797897447761643397742889258928910979616969173142538956446978245360630667566369863912137236080039120242261736543890654555366922244251076206124188769983125628123752307968321439980595790251376853724721365841992066139312037519318261456747135632389687777293412294679913397065897869604197034983470662814199376429150356624774671540673340481946547509837630211470177046708069937109491695960488122768997550009849100345230842130687096882031692259806682503769001661736367248348412747120562731083952941794037681728268021705777219937491563657063033555910284247742350653131803641808783904829805223461763699242797632386140434395840290849440435372266131271030791709453556023171880368134388571961709285045762549300166465465222459400117055253021691427490088234384470964782637490923748486186272634393116187104411344740265163933775411044831428344370046107379897587895452726600330787415616967434025995977618630446435833768406327754348495507906079355014786527129456688623958694222602189851540618395811508829688137187945348781014743668098323597145019770728632487913621395815372408217388499193477342182506438113775142424981363508938996939802168771085374935725497689391270459427094989924290557497576389878197290001090384905988910540003521716048459602690240225723178281467795165703935820986153744111464280950621448922750541134958694935045601054579493448444308731017526079319174537071159772559647243804523241626137976002659532745140489115468337493157850012035923065730731656028708211679298614145218669469983258122509425854208828085303244383617556502156148591301731208067477002137349842837568060296698784750216663431819926956934461023779744282722037578589208637242481757318375668023830972055363725113875039762595829511846450381398063618553126470298799117748423997881627847046700415939256311867978621399840514965581855683089238073959068039123422314125945631676783488942058161737811108154788411420767830060701011448089872466941579878699664648304210518204374601054534040122607899220788957568505255886598526645346033375781149635705533234062418407391196396454249310889309892125393817872728897424076541882388563852485016850620251389623966705443698364989975644644196554913063946446201346955293960082194255310762673064069558469006582625863679247643273110855412687985633074486198847701566269438349967090498774083125713277906354636948285349076105349769490918178159267369977307615352644446607483686944199200261182962200039053051090832252157849843616991673125895261545080567581457127158957061109661940239029206045655095110473461173987014081819495436359124899034761380612487418361352108721944353456883505046756120915882102831552935241339604862634519942823853651561847687340269265313868485898799167407483337836465157040695848167867263206481496226921819139205523092229116769422225997617809965652643985848627615829809984621969394543897274345022338845349450281585503540076131747479337560756015170036455526086210610044026764943246349861465507888836493606739561856120677132454288665042186910532282364632711784078147991790934898988690313794538684949475502991788859387149552242335846616939510659794786927829373187584255689333294832290868769660799951656365827744723379128707637086683307972480704393262255807800696504423983823476233961750347415823477126602030995675867758619490682173179191233750932806683570659578981266336184496265476095453655046083692484374331443488712392122847121819934305133559374374673516002984567717454512949206190339726067396847601014265106042665555261801880919944106841543942204999115264688289106293934700764477643977870658886321739737878581335350768746988578711234614492842284194321164728211567840426835449578795103593601447610341669408892514854992265657121227509934219300165633360361384475382479613984431553564396036357667779804668181460308697852680894340300923486623746825015603632667209100870154708941632449897879457224642474997698560526211108083051379308972612580091999554405703939471496643516665549491488320837677897172243798807514810689862204863057398868796067383974274390387718172174583439996924494279949470597325679661993655856173569673692411261385660757425579930584064594969305001967929893292546107068475003483274930748879461580497270257989566306551203933459849251461102577306492317862888720287695768790061354806841600158155807915920161277683978744852239428978194348182856760730745044126881641860354498885969252924233959295736698877615653655595042012292605440666006782887604032578557375416282732126309593442089459851936710275361047709511850469261519359257399602265299751270719422887124340116504219002235099325399773476308473946174692515446327760349133570231602828404380722233428620651076565754388899755589390765528301756011758718358329018818659568877244991648905842292635935287676804347914583555541284004171470639128628817899495172151346232123618560023102927322175942966166447714000913618180108879537483935063105064314360058501423411348166863253395724918981551197570929029368212447614528349310937694126941995190839895942783906827254536951856647714969905140423544061713361999948873278073494100023887494427119432576748507745077084897862109524212133792123507842943120809929609091346733453039257843951865389182511781089246095907556444403702405994939503611603321421530759863209199028110826871287418200349008224206409773956019617229870623108308500265694334495793845089038854841644185556712210063824635293763397891957490743294408020751450592593348898086231850759456990892114851446053600891282800918990923074691330650558515499160581009945861848771377711022000482052375445827490265623302763276656506617912800811497088538137828859763700299438501166505624993810431644777567707555865145230595469082706758432664728794881550499961043484118977817288116148782702791184431082554174056186458145406019622686600863348358470734594650380462401121389228884546509747675421777793666372475111105652917305517904740297869145389049910978906697167352873670574337359559478665921898391324637662863540762550989035368625020673145957323262582973585273397591423789785703555756970320832290941682789175217103282071909144734790507671624416388483516750294652435024651316256960291608403953536820747508117347094301843564274833994528321370403439353719657474421675897450490008647528467310222679524795514793283437356478271110138570898946694483261798180894908862890195258899930454829288614045043929330632492743687055627942136244988029863086382089757775520818579767070943587948939079908863032041548205283323458634944949126063489424504910827623921630876474147945361930230515694860402159997974809608821839951978639239795419846613186543169461602614366797727502188727512374043953085969162662961537404420707515094807718535698367902194441946810588062106618732205005820137344513687899901095149948063548457996956848650505377804579365467403505189854320850292439005470392480100577643224758921700156226773866795488175328778324119131359489105641736216773844261451460370433126463974870138157312242246231192442945687570555036424437468552643513778629008862786944493539338212603448338282591797308223481204077909890135075525829435913921463418430115867013611304421939291139641605605671948874883081607466594619610980760102893772920090132791674958929389598363044989042235942188859291683390171815518097583934594461844933200841291104291060615662544655494261148598775227925105589781096047753659501808001107899306037175224115115013488297233645644012467774375895489009523277781860577445922274979904159032920842101761239746100808785627136599303636502734274482398840250992220569035018738883969459320063552103192079292525488634720615125624604012416550753384300667319822676824073495891071385317764711623659343689807228929438075444194973728349877671473182696916393044338610487056080212672449771957386589167070069929116742052377124145169777749093622093988887578751281098943045108628600946027709346766777109501613333125919250331936969602416379098676889908890714785943091337268021141099456737058803279341232220037047765526508324080554915975550975798545273569760491584472048297289706820145538427419991769382948871905963625758084421707994808629855694503452771881944760750377709238761511998289341010152758850427630768003815306738000873939731498247807483080408839535844202687278394974558638153885920098039203830733174508163268846242417554396149151980266895049854871942576527262351871671878671355635288762986033940804765017184652055854951781245965787501746602066530024837917759088551976010213945835776339951530221352966068348223986624452341331353246137843269248590639531647962284654909194849856288329334133780634018920319448344936972951891380899695973294602103279998905286043381692171087790899574917796736537353543329562996126525187128354096929037771613514640396884234537993665528944552337782120453393744388846088764008877903334793924287275413204001441418311945897639483540073739726055167644397742700127088469651718244481202185434520149123619134745537471308376947282902385280992387784137105746599561131186589085403232379501692155066399670014269491228752237810991784746330056169912665234994326901775063096615525151706792474096139489303454820544873379968850129530633491465581347959767243111846729953873433163910242906271303102997518255393845615814293804447230683581712317181926836062252666836177671582971079152682242436317351575714549768733377453917551529983092985267987034988403400337603208323259472925450399407056673925266489729688913307279468662767773061316808588034161053714177533804469227807757268246969613965465369728368635611310448708175051266445743448403599378346665684361091003981402211872869527119775154859830510723264973231407134414214233239658970397206310741726252133303776860806366160019192323892931066965656223382793422833310403202310195667265140572391353428679314245544762717643893613186121948229594006515642490400376601849011097113217749254990170454251247139239290807497995989232946589313291452260723190839098555921578095621812775966981635283244859603518768390852978506067350942410257965587591163952043968276687628264510427079048707959943434246680006959645528610822001648684755796283215409573328349576390772221646117653957673676263908380352038884656290437718092154282230382155466858477823814134152418389106430667253071645064701328306992834271583763456120281160155789901419454074583987150968965755395642369317279296288062705027945949881750847228105794876547333852626693384341847741371746078136537313555465620870722797594738551597210010146158729048275457264901134321647191356161939430222635407652732028756158658145153879945201197983333747748318185073803993044496476327953526253701175551634974003795888641746937570945177777129193038159895257390232757008577398010048965637978179807591273308938600607827338801112816533122822348963256300059464365230572664934697376849546687681934278736109091516889900280331633623540537952037990591534876487846551104973774898550533580823675038928209228111870673914113374494299092734292932058119689945798482286818691307719127411587577712293839738001504951840716712901860459408635974951686281854869697880182440016904863246056870698217954938093766092582733986794148069654634708362881453667007590537797582669838710322749296341921622270437575015955957512103213830700822246169262854893295232132272141752359484386734316486655058743697760574980310354994823691188647620183546467475035520966839392942428278596821797002683161832898344484956382436433767242318948614539429180870113443624284565925805995504292435935100808643835054702273718971191224943767027973954031462228602308216004883871015098557155536679989222062462402743822198185146527160084075908103184257036913739599053398208144747442096353421912754906578281184106395066757690427491781232059791516088809304387134854426945191997563511344902775426837349530500820068387239304652281647532249865848524250087040899370091962067500468303859236026146444143727001452958423295341702902817867706344451520805652122856215641084130953502182219159193067253594510135476887420335747839138468894222881865947154877770208980541467687493911739221183631496686133510857151363783031112236422056330169403191214214825393223066692349647586811730301449525934256735581832230045258714038871301674712018982128222486131033057045919795822069813822877415958385976759685181638897924867938694373776618246615399070321148853710397325976644348268603359471668997335126350640101451954719213311345894282181607498034358842529604500330781469550145779203313048943408702251711993862053412536512156719367972339187197505394492743462780773086723032544290378699631028388223837072341090888356278130560715260340031130978411690860013262205760087690539113461910211250532515858831345014784283752671921932968218870645339059576865090610797021712256067727298942407008407470473236614581212362798205876819111487001256058525044243722309940208750677510934992348815278565109477585104384209884185625693238608845514723512743826645120315194584061270093863886338298402201613234986006351048252088908468194538484941352269178856928969733906918559264362429745733186034940520283424553976745447686492857735316098523023665339625029221918841049732847297687541521851230527739649343810025947482994169256213165909806841861740607771471828055358086033395597081621413336183034792770129240083745281463658471164854181474973875842133664568171563069466643295821636268213759200734263724858700647390539672686536626698589144006069351777649952853252693179984733721083785734890535555555492494694072868523648457618469230531170884701211977144719983093503227713697146798032571146820966565101540965473085135862935428060317171445337021536329583471657825368853911355096272499208436745245239344645174812156830505382362372387511334094582816287592013371561980019127670877966617148935473611421847454169111820415513442984715725727090245260172761153820829652799518966313913553898020531177645992021394093168705043134421090363640032641845347850329327652441874750153703866838018296175037312217208431051430392001641024747341300772258745423916047655355939653205479276077180436955548171968973152077393991554196886245475666819512892094247158987678349182581475712217808440773669991624974555230512280308219221598259988155904633853329172260820136094846632011039236899206322043854763689499742180175204298878784925576000016705337273467387038299190526686366838290693135687200198291562915758542187454943933964460153289635309302516810759225392899181461995957480426463642018288446700216842330962215024873500016629025098245452640687512737936410973787456967508196069468945169559271714799540296152236102445095618097048731458337135021737144603124841512571800457231104855702357483512953597238078250943204003484664452471406777294352648357522506232298742152121152632958163720631548314852933188801931854350024994313347175042222098160068344613374535000167122482809024467754637294630424405020819466782807350477775087908469512191693414128108233377561633829682938051190509334635947221234518126860741277409648679012779591610196926325093891341757161451160063032881232692000757181105403132534076047497315131448378419994619339307747924008345653468831995125563739514091340356987976272175267955284733038632487116406083191393061681618698534387124993164279466727607785468011781073282344352333797284664618659503398754959985409109956585370647101705935488854271338413019948991726544914041687329290665175377498763011864006828144266910403548960904883263527696880642277759366074331328208353916212187059033928554822002614732435716370776599095382412784728096210158052373070351138794153347162414032634844335083952697922334301782836862752899489124327370481429559175818590489657270075989677831602765376274014460719588110457623183005287002556797383826158723709602291534925537498595763055971391445712977089600400592131580105051977852550086896844729246209040229116519930933684001692208251820003849501034974368152671523525267169601403812128746851596741644848419110153767836243017900247836502913228850224266901767217414286518418012368865959696533046445467920723341227625606538210756073447222297095764966743641421434740650964533167830521838547948603658991266652985823105050053427850463463849916945900372923767411549646655260981345636843360515118212585837009786459727866868233746833943649763322512620238602267036267624696578167648514860101290429898138932002778698469656029691517441889147410970863386414901651917056990254130600790980893268964702786702895826592295958257245598107314234078140334178990841072178079480750761098266743077577744570295221892978909008920566329388685458163822910024562941799921147420905020870428475636607038280052989505061539373913789411136861065726901354822430224005457641990362793409951724106920992214641566552057914493989146470272343594386125749726967461231174586277906380452756759041434417721588324037586874062806960572649217649080163204060195384765281797678960204869323706977777975579309477086637148070888707618556447790648816379822223121086401746384124825308019633332080507136574201557245037299425458263125550232733342780058489768392795603940322964019199881634100750301770556027787822616129430808814841734768089046493135034328175472586015524464178798091210311345373205813724006977296049488688423648559473841674705895945936078136351986685515883378472084804408995862376935719375130027766986388833014511005739941710011737754330293357110320739699977029679461868355284830483364368589468887315345625720140788265201076926060778834585578121130367368057474442636011410613376879412132266769060806509256755032932878426381224966104946535270382861604390026010118142224083389240572901309374748515743696728484422643563047334998140870029698043727843186710547918669384338651273585800565045529170017229350827652498734243377478221522442091450846248686181879040139902874025578551324308854212719407976348738578759026401212256352990368546575040796186262480636632971847574274542696317710142199347988956850857671859617351787670307723923936108713766156573274801969190072774525319072987156298618891409476079916541904742258054759507599310243059125460361407110696940712887437165256779692870873045608663598393056796966968875245804996794850760868178809256640078945476476677900828817417264598656121317559913785629231627338375113217461763272673764904970357180259454630544332104279086081617795956895451365475357714590742059367605730318204708992687765130995058532621991265651645135494166644281911606538791950498480693573591083557869144452223782468019757833677237716895348158324761792589587275426725659621901908176109487216830456365792203462236743343875901669386085689626538047882847460970182439936339929571357690816334383715695715989578447155376025685512204130784875499347086450468863255435736274401958918995702713353767540143359833102904157740467726408659064016595729030315230842121863968847799706808511231570651490757371628602504515848061072934293941301416507829129294076755849574839487958482886299297284145428839532949088305847668407346699556276913894985509989563795491311241977265257236367570490912294999830627731625244280952516484914526856258496740853771919594019298333055988126399605193164352228971025085406222007464775124686658677945921163138767611461845884785615268938168250224798369141164229235589287257863529918436728856317674191781604591959317030387481170987641596409767904948116425282361384546275579174431151997053663692962448397432421983330355935202922125123953193152575557131194198758489828945079089351330482685934557367554821598280694306356584203519158321278593073929970503833763515222148770836238771648055362257994002720254847039723158416645975008756351426794947209340536708843493831937239592671058109552186095592141183677118555130064473077144925231953980068852144444987972068984922460313697628776912155782807481573125147889259290125674567916685636557913251970952522166542676208420221053118311443670030704964032950115510751775912128438092665118444944466567302956133564915434754202714642208931560401345122766991917785011710250121870969747976224415334343732848311094355616020921835962649729188045579046669976943650756324670982203153493386814725334330333102071366826837788292308239758030652109182055122960565074244196141483240098968211043245557221205060895758499996808379964693740297302642054787530558990651459440116541007563357832436963118564977137888262585968335558978948644435904132893764128338542917644520423004133835503248333822206674304018809662643501660145162789822419486056794705671557547209930138508747515508858120448320610010860023077651826043398191166356899430303714610554109750874613421592290292037652975424915902107388190358574926185397450837427487819714574958309429221040062558748930471377546970561952437973073993106637380300082531746663237728379789177013011195072429540259865687831265448589809496546468595522747240160752440419350816760954845677076144826105018692467814177385040820874828908446567428115573445838291078692052909081398301430195541924066184706184489020607596457553083884219029218985521972198756460396866948007513892958699323168064767339859907301337688812482877836336216797988185067241486497458170467007833959272079901351675482113471550604167562902765724934896578434433201277730676142355537798490786678042547336448354462193779561199463965542495698436943487618507531133430791413005022753843491184609486019612847184670158080584429416655746045578745122858567009406675736410596314981787403759098338719589798327407010176800233948909627182385423913654806783455569038607476801096473317515911993965913838575247609832740441393098705765289210351164161028970676664415252110994423040916047206065929029597400282465633296419417528190833455027058189553062474653320621670098934047742763339301181509568896620252610128583433292385177440762264508264024051530983848284899169156487935808419655163697778398306915824735567856866795534411281117901593571885667943713915680001152508426356752919339286182835500986425170193931789210643259265495590381726423339767537956904280888573412509315771945970721342201343577665114342026094064783475909400588045098254952924145352951458767947082684238961845170623055223996916426443196139234645059653757101287140229466175022905703579045086131030235565837458017748192078405408624695482662262093363035773305622398262438539300009869443860765651778722292732443202169052529350351664598361642136105493512619472447278523596246155499167470153192794148340282290870378944876769896791532152792299338961586281509133788792042365318395195073190503578441395083820104202085095722869784533836097171767721806780397762202028720754715872403222323816433337551487195515451884161440047598069996676635112497627448457430557055866886166778199022205557261127785027969828265870822602908211214694484858225880913256347050302985934994690187483280937434660533509599459849096095662852391584416984843090890301889366177667808828200674759942066404437922479789599554914878130810274799414517127510634881003848236597328387794952396287133029281245931986868616473867458923750533756141142105521942301458121828782056005129539596076356415315680797416037944286392505393903360970496087158594307507465280692576929718025446773748433926486543588061301899410071007621155224320299332796069059056988466156677371269452677483564806930644276060884239790770837030669230302739136984080038584762865476033901620468763110117020884763595816959244475023876155454263457011538459835628761192670925552006540538091939742904844314660102867509517913188701571888186650335432646813164429364010162481742603958760162595347069358739924429295699616260470594882225044253443727085963892158463949830158709874327166601694725900757599705028337012368673243857746850362094883419144310236347126144666797254748714913042773290271127136256903719177814707029919212357395103249630033146457329524258036100119539839320205458548489764437638403775583793609611334427163668131575117229702117573737795302799276555383241539744746978950986843125656320669237500593910684050648401305454916055695735607283413967312428829513692493392672719826768900049101561810911857371597751409668073358395847359697872287940443722256589300632377214481991460688734761210352771081506132715939059910261416296128113834936222168250135864709889995305695931474643289808073682775570207031676891183035615897894845898881666822198018649359122725381130293882157010692322079369319473059155589164593002177929490426220241839744175326959447416353310637124762675173040898297484710807747526400421631689386514023122788437826345875581291229294901733108362566076567987157975403653784825107585175392076117190792145806476946094103064719200446803003789931209701703799346594640457142872699215584577105656166976179643212625680505673840875772700821367666950428960891108741227086377539379061757144442950595435472536355972595860512852019603502549405086867694522099362291057564459099184833383992007593382899483276698212365011680643219452590588835503061933488925655032855231503772721897830786847926377612869908053796839526979552706699205067552818215052512269558069480163805962984923509754601765396326042447180911330238838694311864457485783582116098547764506815291822534295969515575892255035999482352409909712617943971180187455785803791089150009897861313455091408972263674083109117992985531651436918419348125311732255181664336696362016239267783011030578324647704939916341326600200189239262634833561494653952332308685103368133327248977238460997815169231558866869102134583149165141784762561940432720642445021824976621597207305970651106540620713206270193264980718075649054064995909159925353443239036738348208500922925800349473285139848468296838467800572404037517366449760893216204107570199101403868420116122941140570383398649718253959699189769242254937152992391694762364881690193110878512304643388349943336033490448144230907693401340952859732888861075228668757855748762492128910919839788901820120794406273818217853063529177325910866694606755820287704075478016283030994613785949156251724024835168721155983597037208782420487358121555692876125540640431453697330483780640931144625852584611460401350726922745070790637885759579708435778022383870567970273783336766927252004843435354549423768871963532317277487528453136765066843625245948249154944317100173246570539880069838289385948969809237530117765097425706423679168845176818137466532858447181447590985571791649494041682800354277477410648362404045824285767701752807493092278830262163081929400225316707338841579104653228045609319121271904787251344339606061073042482319343918965374963211972252860347234049791580109408792687878128723076262081769406310023952653458173649623714063940166535245592773902870963116135351506193119955549334054234317921422921433966255751254330948362272361636541270640395818043994693637876518485267367180372464970504279384172843124688381859020713877789227681740124642598402621606044376679197603643748045008452445450955696130616836747689710477324144152231070495230305550304158845013902138664734783857002114347241092044238551559494305023938483996027181885205797404165946467380192739350561118621857238427886397564791646756733801071517774822055323480693584828886176814575088568079507670744809441969857559375472970589533643230776482607111805381048696330017688803831782991744335571748636633098756668759056074503044339368119591148742542893356958892584897554837626016295976760381429559728116933510162903267845354959502733044949233801902713675135623438217704272685810512827681813440672077885616138250325797212277650606305130647051391776222799663236090098298878021681777795070168447997053665263783034379411913899746170606696299185799569901554950567808215975747337169123143608497370654358456568026632907439758167166549675530178193764992155347019032852345602673286771022423517672392873343853512640760577870475792598538156856832948511338950974519563831438501873628709432585957162909406266735174350828772426800954872645102550731563263558573072882674676714457832301416136902796213411548746385038792993493927842714172396385867099782390773714231260070511711822030824897053469226848190597615472812721002036003710784755168415845079690930273271167402634993639882364329782659314941686844098670752224444248509299042881068775929050749748733957718384364904737741669573190193661715020703130753581481706375040097858611871138848615758223658741160230855622332097125768857025615050080147661905441211800756560116407489396727718401439256031485540865495001475781223171363108748463435222979731002361184756874796591501524871926997854850565576776653761401763628450212222407364535266366208048839376120297969794923339315326011729063842880637350658804204767620248085040601796286141597969424093445356743630044146405031818371126252602519007467972596917262596672311645444986229720216625949934483848499979092611611934586249226078778950372175269378859030164600282725569908451013728160442651643566763859774860684148297355571864924380608067453384304220273840511373351798228694434103425990643885658297635901964490138383517934166078800570248420179747037298889753708802736137895517028656282461557109232868543315380653642337384187856689167823804022246437541387014036629415211584925491400302695639514713548136108386489550584031386462852692509138026338005518311373600396648810546232007234766355575762030252071948546007994243326131477204731502885840793783278565567404719296186916927051311687922880093153006381398422221129364904502802093663031328928699046806145303250832159125509924862361101352484584018592939934254847216798343257551337005108593306392161952140732430606579896494361606053161259124738375323845357920506010604534400263166370458853317505385249683504913102747901510964656360880852613367890144239421765671878118052062650590046250702452443696323335481905354081990817847595501262844660697432599883307916255724542515065244335733571336610579504028882514977647943793421141295185860010099924168663987931447490022409379099573083238121204029380417155123411644398277954276722131335909517560107500323168793603578677414542424658045056910588817154826209032355774536436390117718861252736011793916687647748068833002163071490638950826864374964236044365581639103772868979557632359151367527435991355022684519598447175527220664012832139945669858459064329999842184224302645553007702490643100313339483163046459074255958222336734397782496587990642527786946843920975191797860650915122247050119617825853493178722957028366818483811513968452979363550340018615982635764743364053114989140804801829031349246568900493290911024952450619870969654066063330299832981262948577000988829065032689059965206031092251462981515378106962493318063719012043446701974997269373360946637302333953649270040630571530512560204121393629125361854605113730280434000122375185803624574392575325105839565516668969295141110608315891603441450311509180823370583668098779409127052930126342603316554371432302561695071704512309602256532189669302328983610876188879109467472666029289451945813616361733576939033350347012948214812867277388883296312067094042768761251208254480485210691586075837747684452899419668717564204527545917060944916567922941799157560146323543305959240046759048848066009105469051792763818471377444985431854374441609955524347868470057531494789495541085798756734711186908637011119654843098989423840017162395695979664527562475564298567432173420253741613037708338262822759629658553496416654811664065284853806532406899516043521151785260964777781214801115249838119171595753016721818562618030907219921599237186188114150738142251143448383561839760665025238895572275088517907713400317905445448063502028223099033879545761428315214430426143399084988309875556559814693705156896332291701473339676655971257881019317590663689050052550163811437058612199070204224298900812624185637374287154221659983047997139473822598145559041124875014137092983221508089975389019328845873613028103423240126377837276284284876531888400501271042262386986510713316739948400380030693187796751991772910245260236122723848385440221267252992771485355688909507452284772040564343618996914654158288797257611302540070049875215216163814553019562980546080328374561351628952707652475321024324063697593045359452172519057566346767038954017597804781877827621855837703123352146847140984010047116731446381421027800787342339159029044420287624634810162538073036365510252644197594903666850624762865386255968920297128421148373644591861396985877813324002647826956554736202600420033602344653891566442174470956757670768795186627766349319889761722155960830874084425447969416880535087144822821084712929771748350746625480659656199448863377442117105606953095025919624714187866674096561634231056732365974153455694186973275497877993916867667770642578401902478795110031015117816789591171106260224525344538752537829814376803353377646253046364369065501230293559924449106117652325011231579893878402360032067742526976767398075222145497377224570120362000065954518223032756008418386929098982660152146929420605391230562830364052401886513743546430829402578244197446252276437451108952564595820281285170522535664590788482462497950908615894116883326379536495226431031797872129700917558695649305510869168889139460696741926390312910017083876706271495816922767983042177655436083479225804120304091191399298974836287961902358295348286684458586494055970129344974137654117709712571173524371812411334027987589948658777874926460460474778225443426293006616285667927084415842474580673021104941858140407281598012606091066279643334843481851884357071392559460903880522181682535159085168275045184152988346875779278259307062755282473525362415674972394571710018547893623703503978272885266800080005440243296714624615222373847609152431767230087762047914975477828303806293685164751093867762778746316825214424922766118091147986489351208730899437876161729040312286734641907107474566152569081925378395303873923309896860253099707683174166842380035078486959896169415224105708340279496668889744872846290929565711074941234438171933826633379512249014425029997219275106268741239090133007293068418364459941553073867534323313680063176134841510326742985486516178932173439447201315360328126786946958053789352963105829283869484839608360675319246280241249507673491613242185423587249444321120898810221056285738577079271487123935808991374429667537860331764909073033028165021072441180218699013107896581057857382844878836293098043607648497629323610004236185078969072587170554623963930928314141003765800345780540365698515366197641089943197570213195994590020431179565000430797365035112495030256934259137211195651727929048864943805720105302778078835055968318765028657733836618993784021806684649439755398945042697555990450773502868323943395080117963130272403994022903249528102427157242240033017989273267687953665949870908002873224182963889032899061750938440203489369543481857476065032093852696724368966048666268164184369500321798099288805104727027841469893259493747042054566981390632442179873438250164727641004550888426711083658017005833611329568765752378802476300829605717622789612758251468654947631850842470249579445628477044233128551486958971023078807813587135687472549630522793862875654857959644062694838689765304345514993895760122874307331654864673845018151383382256607927853163957809065033113324736361252396902161486244659715213864418935116645872615516709617686669525770052903050708578283209823288524373702939807928420524987951472513778079964844045145196005528802476037459441289284138285474711452164970857540703809532791263085123923798807834634435452943868447094417202968155671993675677374857917363069435624912354904671731076668351233338373057041311337227335532488242912095269358109279246148773725004844160864300601109124035004759972344903075070695628562340587774127975678190266616673608709386031032917134995946526164988714041475969300828174017248542296241016879689921309757374965682999069841596458597720915539948471419913955930295276594383333943067204401482730580807494614591621715638728712063184191749705415086528821185397154320881283420005996436513283974702224942495521489970129579080024559281830734761740743242813863792473050587640220145728265742714554676196034516805342302391764256401265602119906317390624112407485742561405191500043096884703766121024045133248026006093793986681325588527936677174532768023172372938070548175786321801302680435725945497490767894616357634242388454624727133987812160313920596837716726779992849236633370026841937401235146461147189509468831489846321832974600475896716190339284054447963556336784835215246784402182426717576430508689653967818093858587029547534417158482542075643117573210918331851569083593291305725059538969962694378193541974015950721107565793255987191766593878890335768933497079095279709452606007780364907361466668548639216835544648393952677644654754836113611210177695619328469524255119122478653740839384976477260489067524580958411257887096063503457374248039770582045705374481970949874163871511323249595511851700752537696438104699448352519530204501198911661380304871476331846992256212118138205207728583180383968564526203537535790091807736204426306792363239453324909940504120053823578339135693247181057770534334232057292363816906177480259061212619409994128332919428352080990079321643073823358824115750434381230075518197455032833520387362691710541244900873768366543196248077234704190007526513716772237857317710661025958628988830446215689950386818308086578498618481646088403603743013185911006536987380362935852679432455008624510399305672232008127946518907842442581112523021319120918101663037451724226716072704470877104056246174212347978825095602048164305403838435109357361004205591139806981673796748691234822687319074490328125193878726042927138027015143134581008052674749638020561007533969469700531362993862963577405709089660021646532064193062712287216304160836319272967590246145564515463865471406631902995436393551623623416938774933470107329688268151864498775971023654506331382491474894545910432810236845420063548672743103376051366306998455136708632854480898705023732533763373617181900070833613074948616009862667524151199176999047733737887839763167196061564341514886967913704547004677865095740540183197200356766542378849401835380566998005854875753120824331526037149179039518701056500183864094755227115828267101427899880126043482680596325769292752729463916696324641481318107033046407416262264756705758076146098516154976787802994790875759752400196962005406328072546875037862520437047305819358530302537480579798210797764751679766397529185771337375118593312395391802404285380199402756027222617700796796461973098323892673644097106142763011777996833702405163289760240354071794466016539520607311154539430838504361664106127670361908918620671930624517302003052045938735204880000097900074062718618537931920316442866159578736661464783993749817936744032372702751933612958998279333965450425096842774867818038441584904581410966031447179592704456803529080332092865187962983051843687728911852958904624511338241995376589473429617829027116014517190043844506152794798157569391421296025503528356792320009895792982062281878624359204188120540986191951969899249769333825588878653119488812639958813073842703198966015526203200813827120906923175149419363244432138811240689178494548322868889405636032113767324898148944550532784595260649040867782936525485082345345601504653610915574595307875462691046892160468378379809562287296775740635839047167542967505480654682739539915804771210287071491927977484633692364324470122403839124193028098110436038741483837435916602521393092299915520456026423297748866392330688659562449065790448953559815222292167610758633590554632803422688445371107948459996084325601987690840792732669594320798820976498705853840196878446004661897233806365846966403207836068623448135788553491035185553728677379022640003965597306824992446797137750212843532804560464694921539675800970241223090812624799574772287260641079041735264079117497716660590038093368167528825576571430964531792506885467706343655510287671406428233462637096805273040952714582015318245313724421178972508953713599858414757336182380776402133290824360622265145429083676545922208096331819322465251016012152879130610405340631268641746193139968666137906236182869752452657787390266447071221591556548378500882245843364012421086595379113576096161626659233896250492945872956337329803529186853333087135725204830570588935071900429889162097632430909926763033144324160606072014739786716964092125811327962299641179435426389073884144414161546269450313029182160883911286041657417196968094211204026545866506074900689569206227191107564430545261759906010170501880515095114990582376015382317253635237368680725699757798998833107985438596399528615471115182926332888989789739826331407764947910952189327889128370687015089630249765606888339575111631559911146952458805333389700723796358255258135430295163533908874643592854106685823420844275878059450222607541889482724999546218976059293259525235545119711371867722800747821235957361897811066397408419522683697537002172624918290364753991547156763715027613383104636294492572788145061925797577887386289011898864888371166043855031688578089317667771641281796300279199575817635600556796526120760090804539039656490617406079081410861834980434814964800880018697688040286409573753848575090158956063389353229681301829157375823709994144207938433539550163983964685077443633490691470959494736277076440123829568431290657747660958708313792087806642608199638238533279897394305832574680414208902113010303131221512412697843902846066366171686416559803851440617870442267737277222358418277277964823050794872926782478186896990322099666588242658777306392714535939983531247224230030439711589316818865838235481276327453136846064441660516221565520352070643751195550301293936646882680442072060995574316431128367202652032384872499788192265746704763559735410907357579157890319760527176438394750062462746175872728217255983640098235307377059495697917990045277314305504412010490387448862127689751482205959447138751788366373655806650685229920504580772115556149385819411033965158678179946363638294682322499775681625266029019943728918253910299618686879126126910378961337684148143126188389663449643816808014943352426047332612739510575756487289787411872606963913234509724779583257420317454979983090995627794781797544401792658408571029087357409507214170707084637529266243001955767313112653626802720258168003442922210061259174531985738224479944599690069772579087121196782078278189159167969180436920191950968300676501398990970926725163165126952460585956296152967336784349134061773002404754242818636955502080707923970295201022807566916944596977405568580008457903239201507347163561909694526978988799101443335934824983425012003823143602789654842891282724708730997074500715692089985795229098121549614212710985095356643108630669584005444720503621176317830550289740894198878814155133299686157721396955811827797403499222953706358928182568295878817949741450755708119843311428884946228639187671892731697315960431544275137888349831098263521489349201590234595516948354698367326156520842782248625780740361694311567379909695816085059564999320477664543216597329022969143402137466830237668482718028058647803893175216948901100366744167194107906695195127613123104795460954397159414436780316396367265618682962787460599350261290836932409042184609330925771758706333965304608142221322768562193051178119393508139550514300718875832022317922179931942909410789777280462376614288822226651882086843934526939613351823088119702869391503523411871577581631298283245593321238598328173318673316493105956305229630501741243030062379427284206060029886826293964052459578456882870726634536798432039166690447099263693657400719940263325871678750437698945918032317104670987674713051658733821229345620360642460484876380084221111369748073414238451517288642456565887075344457791827171896017530275129543374608142979115156675734794009817755922864385370145474402938176344249345745403547235243175559430539857330256396160682524192661241124852053312020261685471642464585621721715650409628638663811073584598396955440329621419785632587932709154990442933417848404719180156333809263975650970621641442020992401470045965939869981369117641429565096641090424848869262613419474278016302911621730002194174599875137192077309026808021169330459220143251703571081240656844643960510540326016241303162934290225185734823927961573519323568947211536178270155826021373382158133136090689608024190593021030445547679554067525997675884752499950118494550475398913328483827035470044139654673036219503961928423796016813338649067488559198339154039181797012217669088340977971584257852159584568540402154939299404414637730813080093030155289929139534177665987485305860719120479139785071883269318034762005051795515187687669414396169014174971804286210258545317936890649180150013769214778493022723527570279784026649866280823341380193813601891095955759713545524774531939062758839008337434558590198828327555735914276666299813710966484442798265397906489992736384673354159163662876315043688469897187771768447847596549660436126179553361672608733014343110232226708073634320830426079017977555657363149404765617989325039396671087011983529092408871949517194703923278630980825609253907861738502552013180375218349861355174463786817725400116588561175329743922493815836054589645900921209576512216342614102913767712312368359892050015402659704800539018167227801090704053013393766600068911553563915078519251257005096345144485624863144019465591756141084693729860721313219908091017409822109885091901601177196741952207402732397296789585400602345598321779674137846765903035914407577988450251304712088094527634923110930818440989187364914041133384789456615230122744746691956211265565270987494076437438971997124422205132552199225300733070990618361618232994011925926916767693890073230109117366348041476777352233632726705161269998719721729215886206814042255451133690221169197530604425053036458668674199701074946056740190044041490318992259572301310155031001178717444942480379720528030877718658599057348187863642498856470838434513279872401155873766076631662780163575440107086460260322530983524422949517570558917570838673639947537309992734926999349738222960899000846671772251139884274060746359506728274755991302803760336946614589913215801363626350080055174013780756103212707251461419647289929816870320899592315729944395937986122625504691677325085416120888261987341928969030289908385919194034564513572892959082826443845645531410557475942332135475044023449294791399975003509420161998195836801734952928764822002994082959079801811546189778724404361774468747501232377217564922454816362096133602992671389669246545975219964312290767835934299776992286942713119976520634149720817695962874979789774072962159463014328270371962077468996302764550222973666645366515278887181930146661657501747718506911560370865817392358476133215661661224967921858189173049818303324906231154219032266932795590264777185221482041954639739008185237960139118520495676885685701434062289083620518086411583840906820626513169742291024511640708618420519014698135441414035191164714696204479363335043461782953549986063355045315482235868822126242865094834508319070335310512939561279898115117614755229745409819571891281307387551237019265242043713628739480906226165745863336105706022609314460106700100599579798941730054987829555294329811934811897212697785186769867317910420732755016666616816287552207037326193629429779727271348656801748015669503369301459031741411039077457072599936417471047947070270218569119136327092951452803134150431819960505373463579986669486031606418746579940192481929667536561855661983505110990714886674426837711035525290263984954161691452902000846843574826556706993276540958189585038019589230465789494550782095616397306828277107288306482647294964807024450250162320182869610397808712993060779918765998476687303225850432117095606432865308390087318398324374843212183686818756116821214389598216824543991395642617804587043934640018041935933131869982601440605119466771570429154725778612884477214999893083457146872424656403381975193768685294344815980190644800334482758049154718115849023344132078492028123999852516039527980744945142971356363761692324165107107844096795258852305541086159943862754131661408432208446625531888264413237785862945644948543154693532133568324629269203865164864521476988073384885962514433649598506484628421411463033252443706160306872148717811717678245501508781533932390122873277542473436271947022585816049904918027801089721016125266162444657692660479279337795170812779091004835207460144634823206423146964098673346956143470433674662725973274122457791669269081608605622846741065270372016759315831667693536653901592122457571264567529685149261648350489958896412601577826543814289751354180564714237899205564659297220850073710188426652819104247564530744335108011632684397882246886575440543236240542656083664144724743543644241912549309487857950751874273452546799333804729424906378160304123149104528654053258204371419718092579469687460160085099903848405466856142318251865189611814783347847204469494521588330637956169886617167568435835225931701785329419428204898529673438252082327309658572730031265289023005674566364773543882629251110216460231872476000609133468152309104360132726768204846261704400931568301048461268371479599247430547556167415264637602229945595707815583549601744900782017143727269209341899332221761277845595394202937053447894818724379101620431161238178357100098506641789687902974386176739616382928303491727584439798797899907765609550337950322059423238754064643142092496193444322674480697931037525015437778860595326069548595329621023795166087367864251889320312582537735792255967258508365296578748980142985194570584968844851583006727359922269467287719029052814962105424589226360352027428694557183714493672175668774565485739366019001538670573826166984347384939360935407660590589382011558847446427029426428676303205052836965587348614113460533691833940375253232986424217596875645192655141297683899737262171474212444183045477529852278981308855539059347006146814926711209912456894866476336411290051408773018537893776214629269356145722166203236576814041329692972492323468102471145029479745543055927655715350930259564885132796517600031968609107927330863520294228662308918019305113465032315409897812028362842608700678522682554264658628566957567543985547580152411865389058491343966311862109126701792711546284891981106699577438680957411532096568460437943212761117339664088108470191320219345923172125903725763348172369039617341623818387999422963032681616125696715359993595371325615970998787488191443704894568619589166667619848643062925104469543763654470098405379154354966329630791413827515209127146526106729096643295609621688890902496608360140359827464034032424687300667922613453222323472763488360224512542250317401501919732576070216357252103590027568468009020956609136308837233034688991476729483916929100701057756605639660639472567168614442285036158280598451726656754450787509684403321886992983453774415742446099721992026706231405073236590582667811809412275977169991905828328268026550612157556119798440993581495064321258102454640566940066265373110844712515131694972182603337089816146784707361662804978916325195403812789025901072240343905579767905554659887795484724046347528990577491420038784810481754706420351755663391602751038697320118970692235186152063073865275765956271659407881432786394704445827332030299798547833993204888780963331296255681250155784794377129368557215406519366202750490568896622952752013675133225467202765870573007465444518787912692898783917910679906146748550516325751518144477544380623056283343507055315407000402964372249120579839634833503000896276842979867352147875466749097895166193176930087911828003694198328292401996187805022320101350153481892575062763539419174586404424538327510084421003115323711441521937246793222187942346112567552104848762047120540575565362372449233959573440336607945069781102581446095856323465812351344200731828566701647793860216013450954441070236984678388330372503303160509027587571957503638615010302454771836039494746116023122525119422143968351193403787149330044687946738088307873689676808531197780560610513983812754627712287029030080933305032979062138856264046859333264049692888892321244255148548752253967531445313039535408466119018093907394059834105987085641093866639100722471488613604694038328952664294335580262950064670587684504471791958501009013364001687709287905364073788527407365315229022381763418726910903543276468865786496936499808126218741477857898733400265320016366584651259161497797234230094726628906288920372855551167599827942551325586188084186678033224282626693311641451161085024622512493232898087299055899211495265598752018772140012543383345570534642818360249519859067751363434980853027806443449335435419824640120901054004232722836525904689305063902685667837928138794078152877771258771972482184000865249037616109818928130701214792555002236022523028621982148608289817534497765214250710434334172225580547905826395470412820014592763873402109595432235266973571058393318780632339434208885761119551742253820441197383457446105142310683452940982426433029632485251052668696909183322375259679615771180829658517640973476934596869350570598323316702923443145051249748441154154307786836434355508584709490418199890059744277652242611556928079879261980305102635495377460435540402448812940876240919054039254369935141984689266835265181053064333671347619140416776033254566374235962182560346900479830350145554589527637827399490802830250434090848020276037186954841990736161800703675857713822563549864112817486772045768601698430021413471181566456675070120092179224696742800762242825282892005148446678388862172268327184298917579501658667782268403300784067611818273254966704165005713377362087940727153456453462863249496373268578373918854434898211926051088050108822842280637093497366349955847428967189072541964078088838463528181752315635878930964223719894969398477483687878086045011364944058358832159706508340118945737996150577401049836045250001146491926140336185421442985878025606977460769302618857672183748694985716028626236931489146296885983089673270188701103183252825176404364118883156715099185263766361578401100634268886126550176105903288164973694469980566681027186296978117370312267942397445579813354878123393633288648534657088189953069529990225993075410329105016175973897310550390264356614653074724882750315815593903239799576071447049999260412357982766945289624475467257698467297410900694939244015184969705510197929405002643781600207680130830778332520480969082821025236087749891924719866336976937963310837155115122998438250816774805613294999081310726191503070841217719009987135681044968628765934484912524117447858800396646347117415336055817665637597298063854934231767254146227788580050305651290383328774353601163994743984559290032451889051837283851219360502222739565186401105107947679274511387856407931758480053899969268346155464097222746580297033788830555939899499379937003071455957943216391489336329502347292085374514536204809718488157512304219577233334759305614918476238729438259835034414976200977020217360021059967202893266263930057787574212009161684576184133625657007275321810735716572389883307876157531517347705134160924644228006453031931825789794316455644671271174082695627683075871128342460386441262318985101816203071228512147136265283304658246523363263129801565039874308636235883525480914973965342216453989632431052122801957152869738925370243410065164681189864573118876993704504712663299000203073228846450984108768601817567666144105048425405639292407017494339815544955247486490305464837801609138235882080214113406041787359293993205438084249351526080675996830476953692401267388498248212149688049270479933872822162105228360235804738425846894802270407323462409937471390071261891535982693079789474414290713354769508410318625226593497084530103911074722792788343171753766104676643112130075794851887772264363248626736027496876872877566050325015748678165970908282225777424860890981804903888741631632815091944044520553062729320738255321641998177838779502339960213077976587841902363086717207078125683356862774501759737797009116711013787084848616830464791351393861351826190562617384436147017954709685126494394838528784720566848974506478065222293287286863444824557651373964368975136223014857267812420605067561207651196586961253423470128940751770451744746657288917769584032705264776607556773299615795776545044519482543787756498776861989500692600752593493359040294755041531466927001320872518369919276027364836131942043808827729934249477201668102198006969679873035242457820921025153352140203908989908166116631233139561199139698632840438423188470622122657094216902744290362139441419217358900550230526967706989882448806859176045146408961610370214276521614431031744858521933382618337664841593795747616340557673582702171070138513429346344543455275079177305586936925835425675931437326070672184120179074940632889458798716895993925626556509920191782463343972305599870240872092702858738545251606263612340216492325457406713676514197982779786406502329384774224611556141119095242450974579842006306361316432583960733205962201646288121430600814282329700590202368852384995419255137410759731401461891449857272516251221439669978569013370839571173628526530242962393320171020511847295474760541117915752238513722518213033501482567798306049524648206146476834171689322313416712016582584857586096145393180245070260619602726766291149132556495242231081534360584849015977576222095706769492760565613998391462740517735795862880567091765307369676695472444256452202196726823865639368687090690529868961430115753852243545766186236630808863315304871816519797756988302911264550420865923059307120180578492845947650727944042558689117869734519133089618518607387327822437965553476015315350716968809003931637107398147002605326541082441263317550225210408625254878663313809041431054715695983022704464164754992657231086515736324025671412437428676716660712072802205394423242981218612947780918515152954499112923742812819407339887850533141256301451181298059981634532830953352272733595413800574857970374967294381683448177202546843550007655918632959277576021565561272446016583392160393137954827268166633863362895174850256689076935897388645099626712656896163928677637261028351629817813644609279786105632181932182212481378172730223190253719082645169009545193420760852292657420687461135462070759074933605189731162788998110113272442314729861049806613768371097578457377663396066093814563676038594130162273104019274330621146639519266246367190280645798612043700390367596904237416547817423059525046380101583390043420787546780817463325240924214531164450787418868440382184470288765968946802291265853858721441581524348095794680874469120641964437779067995103308139523917163212139255554043903836687057341004747249344190791175299124816001502080091758595165400668297882165658827487460384156076615117344237247565118342098150476539596270219100518209881553436951129247112209984409632380451476582077653292814466541303133709473007772467297404985214515161751293891145483766151997382842631065191341981734990828011786130671234408028583074680436947590854256254718549243642929275653242778432990821852985162794357244061726817599736261592020381918489916157048271805746115621780887339835986407018935056407533416700307289502416273381546213415879772109541967783089611766246349039297936991838058038740034067026020803735548020679612294179046434958089801461670694905053333785633603164928844455930955282866003048726315184189820378537617761977238343444276649708857265113390357152403912711309764894496120803629029879374918733592751080598317215315157685444600669905349602836006429540893968443658069404141361808396076332549303148907707424041100419338092127795485339441272816865145273346401056015302981402441620200382119918215103611327388266306239835774736568910021938574868050205998021387336081908612282364745528465999837904121551511482303516245185590289330862336265260422555085280476556913357596262518048133745677273111724225150793895453903545287333089807562312295622985146153906177457092723938925531088735719837769691514268579185369861470308469045803344051881630658550385134249787480064471439511903790235336816929466672822998020823435347593129703400060511872091178801755744412501612251659477117787577598779516701784291973932279512138416781812553949377609203937486515551870027573871729605937710493584392384883498598664089641794640987911514419168730211356434260203213622945307490868349741227808804380968678604789321298436822086894320085610333705984466097350960037217889222974769255887188686641334738429780487473797512192661158221975040871475996651087793182561996051703009189723004592183158376086604531846386797506710698537446996749049042959326201051472133264810168323784682065478626893113637266215343849656205089597616400391321678739710049889513461895530556899243814418371597218188917244954522950078898501933442653174793660865087146869623415349040629242936182273488839279222382388377833862787514148573840695989595085292221319673621394205377660967363498128225834547897130668769953628717894248034481395748832000479938517015059697953411422110471154842011956595030830571555044612801315772918766953485195038487330254020936182997055931478937612502810396897192967091060063461161910187680321019325247751329925890488538721150691167460773200206327802549550692306534527539465344263585078704395641346702040599806236492108367591677984349896506388548351614187579253103025270406528674381234304932299132640285148662056638470731903399728559921587372884720946649872406726734848577776190872567675100390370275695712365877480539016132948859505888913873078878813198168398715655765583072459811021314400649289277074819680899721270094760574477646526263617572804855477221871173005095126938631416641900596623651773298174382664470032480850030277893905290726382823049597808819675893498865319077606061060952151370850372907101557973282631661001995585735002933974122442280975017108175462488200971427510066344060929861243706004380719451218582738395014029818757734736481361588643417643464763231796438240259279102779221079007758596064527655234569628315866073946319351260396397156160250751866246588584190752258484744395677297639327906262711918762006281121871118322840292931926316062407079032957812846571944232943155238789395951438146170753163071961341491637635051611640605415405487992064043722626816419011397873817765667070408436678381824978349225945950498112031089157328827015091677695660876728992993415196076876587756921995658884891560011227232645992112601720681217170462705119576158508599888981678947387678691109684664315982340499757292992783073430988456913197496714952054050878431256789800085742292713179110158434349820007376915840751823910285902534917315297438205405899881122457597501012532978542295130601635847530382395428446340320368597752844626661085419737564326223291273076377406613515069944309272312009475437059431110705393142545511995642669843710916510080064438819359628280218067808224259990177118640160376046346719876553831231698945637775632399755747557627328881804557923484396116626909702127121949546659100418899346219688643000056716206802612541826856449324772610297237645089464544799670185311935568183315409146648741032487525267469543633038788413707848779045925219560600918469575783637699710785892155465926325070858348996966624210426297611891348651702945723287075613988556499076471187085230932005090513599796573069951862249283412433004201785460301034407620344075832297501747174072958767133604260109888352597413621746041854784140928042627816563411079077944780172720957403749360339382437141681612219778952310213796950488880807541086175865134943831425179111359515053587711874797765128590031172705949162733253708121879023620056944073721065960608491420303899102131800010474537507338967980812137761226301879980788741041987939340856756632738016502733980100736505167735927153095267471698143003426807886854438665699229416527214385185625352528167141279176715176533679045010126070049325899300713492509254316929871502798274002730826438802522178365599077115110335253669098907594364731129842465672396971323704263983187370838459862891366219063651610590001612587445377601342953591608503619421632248495499209398170370756482932182991137077853838141162421186456798974984933559120955318161198493946969516406246288135884194509564975504828044955210379045754147792509502942730669691232965996787291176740563127711436005171824852404409228159583478630736222937218051173920554905136411887801169842123274046905079701780144207902580951858118066004300973912154025910453928702254199841265155283797185035917340880369935529046119809412384613689825923644721123903415591350560207990361971168708725656619778387997710075692905315721609947495010726752038025845524560095849306700739344754984585063186836092649389456757361926436083771266935398587741444023981094924767078922994976659575959513115023550538694629020827413336756398305250675745297890345645719782731015791222751412971666996280125556976460048783979608524827775694939573166095447254735954043628392850822616464840548781964256270592835226089111294778177557747981313477809930813745288959768762394222355763685786180261697046522055431223244497850235201290793681908021418644470613504347991880623479881507803260722810617529325417567719969527974379621386543879786541378318478031121012104286845493924068782032461977409902699281207650564432661801154764500546885932044313233515784172347795090375117311542301833668219830493026913636510936463159646872432787587603407731336163216939983140203412735577988666784439217385995443551266329635423905449665383168972115278126633994892173421776865401146778239971555307595266572781272741094499763011520312748957400422488018808453125014416530364890691102148976115860732562730160697028498277638619557275126176044059525545693671901566363756004249859924530048755452952274331117244532355724988873154012541700072973591082370570353573118083013083679408477266908397956471861882666694981902192871701255055411703256775737255180689036406178261590230465050088970924846060387170858980947341976463775119569843476138628573190049916750611933318088296998999918299393810090815016233785280617269169851999281792041492372878202685004358513944397947599925307889063937540070909460991980674688741538020123361128238611868795243541065009637581626664511790836880607350139432561951755460987242510788842498803954708324483566514845646434544326768076993363069474858843627118768238379957573925811628628708706790920835367593461131040852064107320327181779973165411957777908440621160648711620479139821976099045329936802248283343449032968996859310657871233312635723116580418537197191040491128150780540354854500897643049409351976728205854205678470696454791782691899851073307901798720163719567204630640622364113338853339406236423194256492921445777631533004273612663902752227173660507601271864006955947055686770111134422283230481705452852004572870918830023111478317452835500187651288602296384937066879046085224230104750544443689557671704009961327522513286605279244959128108255547841655122543353472165317973144676725857155649356818939288864555037065444868755604038597678393226746258124793480280458003350066257346591972641836082049504201017774557978572265014690154359025601625839410916182290670724722737928688628827007499698431847129276497617700317658106531900340851188234073416700688374896125589397531677568328708589566229730456905592185391247688432260392926723356649249497519690716144334783469262505598161279650824063709607725165823990658721139293681579490928778050636226824495805124167221559561848556762926196781334454923035395436120215906598912424346451991674339056873667279904084473304571760832603815531577726146757957299099366989182151909535093319821249696471916910221022144876918293396589000095643927995958223199429533342250537302968265855198534341145469700039284504311584840451665601077018754965560943007725097674247347962512549796084446762811345067910083753879087578405751717418499352738228654193591307678647781545641016068638507040252552627301167487957029089518909449327199140462309253117173910765933283520643417699753931753847270254127762664937829412612253857659685760155015562348098499893197116955104067209286739537720594249967785932429764663294864646328105878688397483074647714153159835015507711402369758406757062198974651800266063700489318448559363545871333849885701708294779797731450118174387882425638217755126604066155249176570909233749055669970251777184404575488071131156193995650625725986044322139949181238989682089674666681193282285373444455685813797596743084499582418386787927548602812705663906069337563404452535444119136197858797744659207689242376281041708093571138821502593444170681055442742324145205261363963281596080429878854844609034395800864225469853966572016440797445625953721116810434223136706379289472211827987752654757436461636396749233614837641547745077577471326052914256186784393945973911558942454892684822560416535229736950348574800491815529825374195172898915930757564909647330520999894079332204218546108972921492354735520330977220927664966437936461519670628579080839628920834576537500436358565967222470924338970262209150869091826473387221469307954806203183492260115125581092846562428728711720280841717356276798690636725256839342332194365512030885001635846846218420371236902935007995150972493434647273033837539308409416909726765176908398741500845688050027809922358206881823243697698404955586227866327468045990876582149005108518674834459094542629652488962237939270922470608898212784475896615859084797778152618343541486424699429269136881059035813552247891339784885406558890216860404172871791809980160192302081839061209186798290137080225758955569390178839097905872886287212767912613961289205049660285125325926787858318080491107921842430058233615799237611573840749085992504257859573710112691294057431459983725908472985848048073093588606580444702122916478755304041746183458515493506153406878023154215531351398426334410695411338674441324659207204309375987166738554872637942706449704733398368520513939341580812719848398672515555471961716974586160742440685924979188459093791334986219909741848591829824389220319265100895702750436404578294041529667194494576456054672152201677932114336462156478452246906288463592857856441035979528781152491056238212084155986259624680174357814659485203992052365472020514794833259252407736897852655026181573701385524952824475451311797526232471065081458307320670014138042392391568134454732446911929405071188491448395448710638723445201335044886304759269522166073007079261761037632155880862102310367653732545877710109808427392788151446257409546309506781986756665097577108940124511716679113623262910058553653176459487542794437103280307535106779342052650463840219142641060764224930915038967827810827507293592007090359137342907348543930837752244045490652301218191135266073224703407789995901115017770620151153147750259311519978568966200169937176904003692099470803617329491782336915601069532348975630688594003710543959533800471083340035465411525660711490342252604509133322368262763980038911272758989906238559070683661301975265945190598193983436973857976200496431307976066982986093233101582479012881919785848781715732689005920314446471905141823745604574126773198477496609313841262607995311510983577907984049481569125264625875685801868134002184131119744351311526591452464655698319430664292933752097780634379943140810444909205662346798190364315923106320412683979590294009219437725260969535113591606475973457509461285810523932258869177316743929937261296545468025202129265152537024158899929213552672608824906965250139854605040015651793268265544623029735195228206428822623584251539179663155111096950337792519073256865589891993719309571854426167409524538326664388738392462057220096296341830078530764650725917650231914767998720698695708333961750245999115893933800103795293089346193778318844500734576656928738676903232595433834625031650228441532585850155836181917084263700318486663809252611627509626074635130383595687101540003574610895582014183171815800141671738841986117168101373652927205130136395118463060170522054987615933507589039544617612525998471143898402614241977600383086075960081317117321691507906515514589273731445300974023642666527854430841304197421298441637311277506762786732041255748995043160811644634006329405606242948880747784176004113703935802480946502123387775804786390635113431988218653233852094802780474938437257927771508110329875283022743577564267718571015083777541066368900358690938285746563407357079580370489317544618928085292206102846151218055712672630092823027484816399558885935898292933357825618974315187934863175472720665171839041200795604663351190328278898454623432713116940120398169747562729209377751708245992678255906826883076131189941669842625360712226984947127836897539629564550407689747535967519580212200468758362241790478809996402079261786559554804681880222275514660065168906018979538995595971022531362726064703003542075818671085454259054274503912742487323379302906470829411026849923396520812925833017350243026061911177940890422130979447653423831586113130430708700422353299832150767457466571983121263536092296335828668981001945174025188522896561139072019967347256045789534966721042783357368324779217444705900062755772634433923777190742630144252036786425171017631480213687603291370046339327653583349815696880222286988443931634858448808726373521023354523830768287772165789574913775931176823539885504965190346163603606286034120800107463635383295418444889652962397978800845605450547941065451081544308142266596941469638689966243426015688337397083251190557471662396882802095933514906108552150200707150903524987251644178262958215052267932696489925524362238835617160885362305395539233207681850873851489212995342110843146521472522873748499029674154898309376041353168108944690228279478248531589053590978163294993839873609783303174942554110131395571954130435428913551774597874888681195837650190808475645673846239274548594556293579027301843872205411411946460544696524988503892294285101145051311023509897426129649194884774613318736900090637861815072242306534595917007460191376091208305933421009629357979148982358101286008557250565174821666825655344011923113435625337300515605398178338239254082814441673446423184083097711555843675509740138376482667628772726012985237132410484350415914809016550426795942777389003584464708047429613921764901277248027398081492763478159835455329000211481552402357990917706431378405367008773413303543434015403750266916970351051952314421993629151518957775469115307099599800707231000031785773264854885896844332713463423293884790561229686527881936841244582836738098871203104385236226004699932908595533702412492496349411479405429082316820279161370979008493865381349793828283126576346196183405814032046585838659893290866870675002996669951180563195256818873079151542188256775643977332123196409411982763567619763102881866418607772994799597050649154745803057193426730226364050753674054704467229818163662016773987962478321424412266154485768185065534446438235981806253504668875202763895444592730369592160325238552013381374726220506710495200127384395001167016010588368839024477173681099575349433514017817856554869430154520881616780791017074130454148081981236971187905377236148880642440076264518850989183185719480375815941155358917668369601727595716450300737978682786455190609577704351320745353830327434538156837766553912668339623822144849268019546658709539574150835195261081168641074236833768711498679450410855216252984520631103960990147876003858628403686510745416617802944255354266842900197198679262055957122379128299386187438193673047433312889560537251487727203625081391498586813320955987678683727311316826822180882571285603302961603079876904326280128509201788346689945618105988733429071049130277521693941494929558341433943113199801798391496791745236590295020367883327820832039101714495502746908068716168389379164585991511933843661667309894027144331673154832994593205071092607894377690992945803104332038410702748748846709592073259004718090514735119334754075088215794739323335067102786140107140788611503921586067426807275273631278553993008553623540310509139930867026810421249639986570043050151519892982459737747370181296371269775489215394065813720181066892161565336344008626249118343865070964969451511887287737116918101595950835963158174274888365695515117085423024900701516323507418658466450302870139913919429259009975742684559882752654556093879772437471067990436832432816578825249297476712879146526025740005000676304646477599094465873657977801956723505258443579237092661369219776443029886786530861766427995683770122967088469158403634723866685128806634324328120925470886309259992023529932209557636071036698733485796092336663456624437809320630932705688382142975953730379595306208286724199297863735607151715767243008478921671843063618866912596072510064619729484451371766303423144074166560695235922375890588660496222128563441543535623414114113355453363242603406042675367773942212889301410549727688625635589240886609323914340594847960936137393068740309081984029033544189281721449988866974396581352087324273408449085466930046413137420207977709571235918935427167354556900316468730571167965552953201000001574717662026289231218925638287228616633731431668580087795331055847334582572049139752066522948007288244789745875850784660288606216974452093641283725942449292097846569998710161544744459445580196638442091869856210888737380097759813162525856262911063140596587492078943865374705321900436373786121070024199723434545100568892294250740735295820682713467152369572548567758488204435846583517932181370470273416828468491134381488269530858626363161884784345685591892534441396942239516137641322965704503853247103783496654501380410293280957750903671841653497186173087186669902732085334082056797521101174909911254281606502418890763727193570393529568842718756231052511976392337416313914737095180865800473886617836198653761688233524598213168678555881624198466884261092300094806797812132488924342245518319621388544978073229932262488498559456107368702100330075732284775299938448479507184246729598276596345759455634678588847788865858120401724512515246869260389799534414328072884271872185865193355277303545983899197731464549921394806473972278747808586340406139768328742384079250204415917251314146268822019081351308067190755284580194605765194053626990109128754841015687664306058168098399386726718444303880377825729206895042194774897847161644926225526695004717796480205327357716173644377936670922269153906930927423209623981680945153876862132545543000739125370710941243451027077490299386524774698924991397607229222342738457444147846346404319966441473217423679800559690075497129159591848217519244001029227840578209006669500125791829671222017347072865644042079289750678062624149093430913642012517641726954317639980452483634309396145650812915881229396899721123872371131925224234052926760811673773804959272997024905902309977746579533937240962147129056698668319398513658149530952608125882747036161543416037681170053602686275181448767617641564286356077565552580334099998932055367908756127225603823530227584991301215450643399045946234454528686525686105416590438349197308095923869006941594935340279069352000028614863383524164428601096175616325884748023670627987357941901412488340172173180543463648126384159338712407963117464523338872839959381087546980748816072240286533944615556128460935859964134046990881133850219759161038516880472232521177098347772763004556655770108781200128745040157867134034292176726678287923673182972569370887365711957610161017355919141899105782101131140742661739465672152097883195019920952040881615171852786629577852924931709504064030405966282010516851386401110506932283252368866406903601209851542865450715312434123721251095153070828417793260602349223676193720879671600766487657260758414107879256491511221173453231326248047277655943554169772364481624201539939185349750859455538040057464423054980712653918217544535371847124231471557307972456684032777918988671674663363958773763690056550234566693206795536898622762558315788779603410421715029808646780062714248406112761891911751695407880772145447384435950243927939633017256582897261484608257016825296586933035027266637596320489770741408958057920341864362383666244074353164496228737934771976205459819459482732855167527624963170536560921885593078387537942742137335342036572561937349311737254537894140969370425974905466195702492752718258099296081374254657968032186044215492464157554091997174676798099750301078310879889123483142331106581247983605638633480637133081223867012040869824724293150038899486046407191808485568703403476152405406553748379294314411451079325023983753379955868580043303701216239866032581735971045437027751775272723656389943991461325827224273036806256588346609208564039494578701492708785160712089594248555421403108440871446709422399095105644467805040755958756012574973584736119724494850237366805111800504270018386625194009234302313134641151659377503782252256840298244966662473143997014266196116857899857909316212302453454663514415097017082542824781874312480888326270812697119066870257072157100095793659234430927941131121939019141040756411630659168846539997733696511976645357847066927929610703728465310679252596195600584926252435516553718728143257086866943423695508658829754139261071699884919364134626993517950539308137890296464852855643208395431481394314146302000236195747362305318043782626275182920361784292174348927040733502017722851884252310244125309838177496696601816368675624973180874398438681630418010015881135613513484561067192148007444413798304281047483370607557828384712723520265506441423656509447001979211885594678318355166671056323236772749159997643712533300164178781966035988453652536526725195815895846115769740730749069297897865118321012993311701155866918175529048643659362160087855676744223249564729152839829825088895698357188311629706356440570062086138221317305817903638572353547646557520231752085542801588008270054630853678460112923444912911614334958825009427538408168604787811960581120307085177206017767667581746501567791007890782481486550899129980995972336332880046407885819634016526746119312113412158306949971669441964974429275304013764562667445686587623373245809604434884667645953200857417778769382337473657140866428071576946798940770826631191144976390020741598924973077453922232709298748924286693603691265054493342735574726895550901231328845471727597526666268784032253921111710666429157285256163176323178640481710086461742705146333870585668875865535492943349302384703167635555445073919374139152109180598054639529544877857286976120954744768173688121075558416741787242472430347523445799941567408871486771512389755712836881558284170969537624982958695762663251124898215781326967712775376115584547373420436635052795399206198417331845903145812038411118658182316621857319850166117681284477460102208686839913914776305109548733391501902674998341810795565992641008595641468376241841381517552214747475405263998150878876985946827864124635235864366614014653618332187656019624069376274792959483221074132689412703493692425653603487368769334735795025933862768155138214879226862989256592771180295832631644000073169875854646976032995371822004594258860454855673292926906598421889431920412398774404747194717178035649491850283136359471844075164135471276787809891738381772956111591513456681757701007884226908755743489241010546584577154446386163416049520434328811890718232659723972480521817231110872928195192309838092050605940563079332375588738885104061144900970809104888754659427921052010030243946323030284085159347134239394908593455781150891018721540238375579299950531175178232143817458719959557307886010519182579815724110787669804760539216331018894848533416594307932021903560857683344689663378312461679590576237869500826584581667604372129268028136130652140964611331293154275167527344007213069422632837960182189645986068384233086019390064797101864025046886993853852169202768285619656909193235671713965747552767979247100006072617102535889199073500707060503715320745262270726863452752819006885889293628565621564300295688913648846119791626038596558890250908271841118550115503831676197979821278863780418446330846943192504053460488404358343667714154639950581339705773020752914033996454393292047965345823487106063777192202788376419334809517358256020778147691165976482654804162239576311829366391964336570965798137252309765322592138544211488337181802562277731985107280219232094534028280409813748001974463168658356432927125050269078327890450806375622902124601139430173234446327355235013323288672300327884710559878940883589541452712696080585463364259561363940330827560404412301654485032413049518874181416488662335016286851070294605677547627482578851850751543437215019432555768264847028470608038358292114828657216452814316496127860552136356828229334987491158555587489016616880976039047109985087858340964423629394455172052444901486396514105378621194458131146038447948407441046900403875328166169112235076626526010827009989353840118021116227073013602665240746406150682704288027794810254960666170378905228984061672205887175882610984575816575150783369593982377672069025696300598923235736102170312540361989236869437536804810384914153035330398114689061508499476579540025926278336345472821690953736073609331512549445825582940200138697089764395294359485182338824708209422056941429873344058011230775381335055665223603033686813243625479746435087843118607782981897707742145678627842034445089149180848393224456598022476665899651000080216330747522268254162562581521707544363840768379633640573683636934354585391687546961022852328595087942735558252045228962802748730554540121732784678850304004575758857265299247463301592571566160684660196047543881853723272667346488089035363623760127030552644287639343354333779892883232393502126914714048141241002019379638197067730674160525929754956809222914946228214407894068380146250552821628738596068298263985195786184486663358404463287341712041195247467376844567509144528949428897524442122259422818359135376562864067609582821948064530804336300323835459290810527543715685741767316268915155015937615245361020859914550632646135917002898920288927548765650269429003127672282069443776692338388727019332219563923658103187413693793748075305385962741267408052771404144584187605670283755411909337568458668806051223650817004589253556801011850255312516936459315380626264764263744181923537856109293620794884072245637086117133144175026378570949122733041104926851438008412927265102767026172693691221249370395903957092668032688768211432497862281670738476971838689653631244105397418468197501037107094495505502951692086976773441276620382654133984118344506982402345880126695612579091283957396475369873505775417592234629199413828701030470013638193460184508508315338876770451618789744377361894399528181343397794362350761814358343244482228434453500993576689251987558168616865045178923292184312578690601981185194437139571163097397041810323483175535717712392204725398034809445226148740853234270731084129039785202825073381215763390082104813570871195855875900183422834499240807820634823952160815110945579530033704251196769238029944281683567298171264752253070595031068831528013407315630859792160335760376762703173010366530775458399945505148687079991166932574566607777542676820746580167903198229282603633331745363102375281603919715580129187802943873548983831984487935597999321284950725711757989507868122326136466426831135771574061734754904619403525658262170139586488363680289617113107281037300230524200920220456180787788477205692982415675097974473046549533190462997707435474806369611771244209337210250619666139936645202139902034446043631637842240339977450399691503623513839260783551979861192197781212160393618177019364316742782138507841581123160519679113823097688248884509704183601441457959806836933769502526781442135659814275133237507185758159592316665901969770104483738267058473607003910233840543112515724230837320785532255180397799592293126609569160008230820507945395840256838703467358243306068453615086970774779862144664824245626789432386106129223456852492484930441157953996110215889383366266723332196293784878134926352283785552276319544368402276760656371397740827934189103906392914367241081372124921145425412965413853585110413709029803734577897893427571117613604856428732678999415418163620992064836703527446375959193635289519583608128758877566438076121226651464934826214705921753685456351009979572897607831500905583470850166126559025220631084405350629505740703657336178354551438354204149962240508159960375511519244654919368142185104224912949879884691919252483565472546406568753930549471866955523058037364928731796141312910496413677396213928999006529623624078516431403707627461071411367302600013043376924872322548720195469038142779021866602603938023141915025083698295089021091926259794341488363979503725961479680033478709874004136637068574900106703355558491722606207230364820688811389257927162249542892733756921586211352206169590954122031572188116823156615270607938373909870284806175449558520836535571293634928354277689109566795753913051159789382586558426881740265694633871166022944390602199409943139451082579355718928079853987378785999253639871404307399085282923483743802013215842801363677765383404300062843200018627319326754475028141264307631286106751262403702443284364132933929791021448679962516055173746202649830584845920800405013317116715961482639185274815180435385538334060191942896256105408999298005058429968808624641932887459194314709773517924662316752209829913290310436977173410224097979858598558216518406484217631058607313924285210113863035322028205730434764358771158183231048934032221957682040609064007342413089305849978814890402607177442204828857756503761031147042525281745571330821790193910118894220756412753165243838497463751241369757414403650340142464747585566780053577183933138734055006348795131443964766559415732598813316480583716231027382466687807661906241077390226178887326387303335976059689563641146814963341151140775173973846179474837384117320176833313224411979275037643354983418203716262174327586942804524524563984727099615796459943000374713521521817957994861541003920112184451046738109598852211554326057172027517146235340255236510100367361907676762255874200638572418939674853823180700719033319431004170279718797855043285927703210107346440959063020089349055003432975953498544836831911720606365244988422987746691857910861656575332058541036528747384872264612035748802112740211543772099632451091781069851951398108367835739271201491494551522691606148122777420661582958020547157095470515985679461571619283731205900219728498241165015801151453769951063356741188001169841036295805775171528310892748708883300471449211105440684915237492881974547093615537589452269289506222947734494172582209404191437319609330800629299504772130292851291461990110230067934228810527350116217690238953721393083562300459944750162907960112174324108249301821189205765637619234706145171441924803067731143606631635794739075995603785387720538155940761377238113791179683362257354928238682936501797464469267793172200587008608246194336960103028706453242385238840884655495543342040843748299818130202959954846507658547890196030840447628533744121430253332838006249042250626128022069310428202354475610832911370295102137578658641649501720809662293020450538888168256906599589804977446340417403735772631539034850009863269420755348745116089448798778832136774944353902181813560113008515489114882131016995465435094079132858847278907029530323492323190499211445866945222073396387824853898727092724865595580176332512414765280199961336892819851748193779242959823451880467641645306926438581901973254379942841021942982465088508779754945122305932579201418284534859053895334341161642904032572652195592977114319788070742502025410505604896344392115010659923577462452076272404570248928614761713433190836438235811122778376402013768853051283530464421485441637768178005325149540276046084061818979057396136897012139381610498515913407785068017162963070079567541672059892466163915213197360569337272193218713433023787765979064226922414398093343285921889491074580306609631271677578280768148295870854541145171090331069525483929324317519865254086077984843600922260496053618267423335637377811482122615965123564872432653151142476341878952324811682659293954141505149303191806969237977005992962935558546325689304215944181643272120883768850912538276234981336647066817695940464297394851642285822307049158852273888456993061681468317047145379064399920799766545110567966932507632285247362807281009789806020302512161095652398129375605883141248694087763448327113169542481125874844839159027386990628532164246968560852141477743061981742910235387664003459876959367041629705673000613936867697468521470618764852983242141977541694358730411081781167856359841861110579077763196646286724662767762850630572648392674276867630638087411138435148256466144809911630829976496656398294163873318472501678941474455740313553011863568897664737548221555944393156792006174262136221864527957649150179115225311508470501844560780649849125099368128234959796640615540009271220137739608571465650365684752659271843284857731925947345949995190507377555918461200712536644828736581377004794079357455513177390040410490454081288301806624004951267519470903301710923132033678112860300050546703654161461849852884845996854533899051861244728161906674501996031090514771167883801740905820263406469449390336406794210165540782821721894359759426160970166757080542880563017107332777662666762940994455962253511481682998167513620286681053171373006759673006163737889826809919604413846211410398677177439654338495120647177836094697572968135216622634170956892373265517189520669694034458956040550853660696874231342837572982132604711471962591176094666931699463186081935613119141160628366658272245458667295389782150204373693275305586706123487843933680210240144300610359325331876118532687939028790107926354772793698247895767846411481547935255238827119798929795195558181249744195582596703012424408663744739903765848278657389796129949001519608175502138912897354639676439949578784129790505126964045570642332262915011646740444745225257528319098878094339522370532496719417728589033036675970506576769177207384818821769355695200206241128924220306055010418924022962431202824024712837654676688897338847723353202158076390355984859963195575820599645365745140845223227539289140862128593436008511114747920526722922698733109187761061718449668126508950076204422698744544589150152010354727343510768671710108159842446408450828570620590711486573844854281216034835060842837026740130161156822681875209190133801679106990003494410327387739571796058921699734807944104082362742990816730495982394819417079665841766458687930011866399668067892565498464167034564446914466603902919675206882899448504350583712931003481225557838983417543948714675694264341783709961638270745457851198621834270739869123613026645528723709027408493323885390418950031551897195976232558452692493354271051953909239350280837723084039656231851200662526485588791755451221384762379047257391173527861469661671492753747224631361563804002447644086240874564893698748962290297598223571486441341435440266472533493586320339371968266738956150551414969107986808130623133869781638723730523357273613769845921435213780917061330727341459853790871905528646152435746050300767447926834474785895083032596500797077185850499169601901099808212939992727537325142097780542873551665084423585901328223013012984087293543422090737333011644755980544598661966919438630978365366263031202921898305013119649586612863769161724008983173500665778125095132861103493329235695964633294850116196888772839817809047841770490256315072372883603723627472866325244337260855052439444859056555837714783798324932659718512082539318897942145551517604611083037661471734126633240630517224441030484955913474389092541416992802808628158879076499708029308117503358020903552030529039897411493096484730448664246014555911191327649846862241042657716506432887499527702436916771367060679921086282812300155274245991521639294255356748752461336563110527360879204131238909150701589276789144549161600713289922753097737834137887335327371130357180191099795366114359984035699371720347141051338670025094139235437283216635923331284259927079317071676987637796561317230430293485102284542147749028605042864193243431316408963271699392161407050181493489723080955249219161285864613190206821309276026809758142513732748811409834764055278905777129822548350402852641750901730004548950375963625857237890168529128184359696801575375206208988889729354777598850122277382628293085228561742820321761886322338001753375222955652658077509423290634197232136035405446147423261181392226910461513205458650071444113601124201476610723667159467383652213450734876904268982606244094537851986967883351187188617335276977099199815075874773341508698344869174434349646239535167120236798973072999354063310308156638084431853157728842219326100978539741588214693639845501104500046117272754557977608379722013662362775123598890779605458145624986968487916399327358307067874485657221083553412628733820461332983216096326859760034448268109583529138327590832755710429954492808370605562738748701182113604360920087941055046021666632954071826565333327091309715612958459250341156585223446129410014607211659848029764602568806376019097968730902744576674953532616904110907745761880284438667690322754629157933672153302647234051087542094173405731986657744968199565935757749468212449486445937441510617999591441780564853310984309497740341392377159314912149004351770585552127905503704857508847050094468773115347937022653993127782540957078968897389390451041857406227482811493018453317562536928940817603382323209834881602107664272791892684183136519307328528319734308506627686527937886153160384849291560612099136200305108662467406185069331036722623394077866335203007805568787917649637774214455561579471508456358697178622595464648553589477115162939866374155449287543655098044271702050078457622478051981612827150584336996301617151927153761473325402340712255701977149246854563528907188759899786676259438450844373100139370896310759630177402842599209170119865051104983687654375260418509192165041033761992987663063663326065516525574798717199925629473788630719188772125180400945238999442982388397479834144048470343438597297475743957070321792073557015572805936536111412507238113509562369927321675027999872787514528368349661088422203609707631790135543708755253021498274680710068359482760313338816833980728775926376784833638404571245314334239074541321466618308762523477091629119128715834292812808264491671145890102623984201406521860977826105004365526587017342099623898756228652761006638452104633574839567764265860844818481867048074071772875715478068841408484127199282780389372408633232629070809100410215776141046042937235610774526468411659045064016989902970271185622975051987914089489620772782311066871874812866837254823486630540118569613742121732396491703754021154335791378478007725931371848121573750125682606704552743494132986333402961052317229876200382991042882629721756921426550860509901909168456117862761880871733317150110841873062558460382678177295565422402183682056181566540809283003852537058873973008799678053487695285556352054592353533767816728182867977522827280202258938347941577311669127460076233487995415928221888642477767240591924400951162861309746392926945734796262678274202856102391512709050860837151054367743646316024408287035762248399012707434516487725171114888990318244094582611995490811009581463156698596917308541718650864090399934780989188391373659247434544931137956018505168862888336281152574901897047704998700185352478206429347631296706177630320588681785294463459825426075169418402666619119471765772772514636571036605004443707565742785291366491452252426461485587763793347842513254100871799363091506754020623398108457904204847813112187846173169374665001450493966880520910959282847494772492789696128530209831399969787996945356850298105182323708605079543714382247136297333196241819412094997990980404848035698482902884538622620535709954857309576574057615713170349319601477956326987437001244772404742707975682459019788888498270443880337345996593362866859279087556640912742771733992344869076024122851128127144007802578539318674460133614614820735052195208664831779816478134415555649676118186993096846513160678713588530535703569016149752458232032021716082343503757025892536082593217190044196327615057925323600182890097298700444973898708240063606557001376519350716509770073764252884591000278736818273618143666445436560797836677420170062166997479348856793088353351307999622766223928524580534736998965818501413894129188282545552461382289025471958908835188985469403783377059857608101798515524291428736137507173922167744173004534294456939650298104810514039535848094380891656219887121899430715385345030210439484671559663771481348394500516692909580710313269411584271828759150218138527489453353132343246836496867155670129941748878550843805490294046691818271802210822037407743931676333056098987306316072509424779701574230618507151490482205908684052934409555116663092293887996550736508702157264520581706558009961105121370530320636379315087065236963795490655399018525869533853677847189269990494127644081982344239539401393396944925233086494252192033605076080753993197669395283729013437877832509902633571353584107829917874376409739792138025973596836304562684471953342545649040283100839229169786820831915155379148977881746089640731730692459219623844334980597212772014693272509929798683263237283536259450981801800098518955859305825956686812160252601730603912879378694538551486883235900942290298533353921248955072413364278981147186275663923743041768887443752922423735997239400795304274905200869656364559885202039656736544856716228206776238047550684143277192897475089764781898247827709235211355149866744377053493909033742698214634228103207732038597109937157243887843358401004127792824143660567990951431579048630338522417734103563616978807195360783178857404157306311179134430734961005976768883949217288580360729133955333763663556478403579771481835342393706153672900206201599699368811810655348725362223023901111103982310090525411622359319248614988171779372606497475437142259170917679934526958038486885582865391435546399477890300915432666121800841954769299743287752233596647453101491235306574849573022166066232497685718128136285459973626518831206821868277464643208324820289560095667811046763750994610699015181880400416817253208849103979989445822024588553871661611693446180472591175488336245652359835680045180010830821921178715803858569502497277677410899728168631619315503778880897600677042216893849846462795311609215921157725756374666686833636692933997086816082101757018974919272409907958406866517185170776327977368932307770937965286024687126791893713558359157312931124906252326573514156053194840955765287716535076233444690981622435811192361632273308361069683522729182491607756105914707145149489231816226292746188893795164726405340755500418609050265647013334277364941009644265587839912675000824459538484926124100459166034269767156350996108273800168249140858870438614587229610897421025796273271592889490388785304643099562956123572008736228396241999007563341090155942383979686703791760816109350456716011061310088961271006723583547761820739180311182682074426129501329257266376113062810102765321706356795888608658147620201085850365468640321621672175745770393934246717635176140262276100537870707234071025892534048759735289189357049442699744735785637797836878064399888516775469068952410463327591862843452800997786664303389057705367224585812088241855517847797534153290647069076715590972710207790193179132012701501954593101757750103550929638342264261436026311211421559212917058113404464139238059823323799198142722334691776556176423707493969411809107948785401703075332791634683575638616166754588124009817091911776600482031093703486660617216744030160407216514206158943584295393598245382160837245480239765421202316470822328884295752042978842319275989708033164388246456147278476456365818548336268125604877327299751546280138732841409350172606714217230773567930850147502428011692893322115824258760509788708032041251695567994019546290434272374517824337984084161017325122663371431002407232462634819354083786293105385007411728096740795575259555552915129354285451596251866366824415068740041638422812427557798303190712941552881242823901882573921388267488993810005330762263767012901918882889486701117031826634016176279735525539010624240628587174606188930334443267783198511128716290680556312209022297843849441640940065899129192754377056672213402105573504219352961716746640859891479249776741477943062127199043502934943678222556067976766458219232146090583448293542948941118929776046047254598538964667475689843127350907508554681658208598117716835600002327778138148309439478847713119852216656625338526834618213058688482189699266851333478192183337968229999382671288093014989298768667857781451195077185572006810438028567894419378685897797840456557606806842518182849170256579671224123723563472058010155423787629555574972819042286619936410655685706806433229414648926404814934310793990900815696896945169195967518992805955835081160670145565415349889340898628714279182712612229263381618098899852105063474496602191698291601352717024720516387461196844479036535046972539412312779542770086479134189917038869406931744510992063751165668630511681694307517845308874205867344436997152123256802323537573816231907914047321961742249669365695578602354757163139834398769147826894604413120512051912095522842018812662191977111196831270971288902807412582843888304265515392683186539458281264180801399744564684744135840232328221036372919529830162617686712929954088703075232850164638260038546602401530394146339628552587890796233816887932770908854809286857182320875689783471096712659082788432511045135896379985057730258617987588300042317549913672341971606582370218995462498798118770428244435798154597481182221395436437696762838286639379537784161425461877572066073186123815992231391618082767028173268552092459417739418266643803613863531160749046595506572877157461433690733336189265227090918044158267220518261294915123810122546278732122734751931873651104039029614040367322655726186375290672432030345185327623134884480951109794590673021220790592395661150246363866220694299733519693398233623253269704079171992242194503797388662782051547553931273014642452327537327692802583933562616180494847009118969655155595966551041058778303953348974279247409479345196079063673788083000112915370453847124610960345065950851278672977226470824332074143592101236063008702408069896961061305386780292741722527585624446935522376841383055806248909891133724177619553572581789022876349078345590982502677990573548736593215082634453331211984449304362490434966606354253649537081684001615904830102516418249112902605688950440343543140843311904941399327328321713721800285558417892558249019402189417385351207822925806276132462990396080133690409641045791039316272708099881948381200058729410391471181610306668534791661129636024626858438718956641435740558556791419236199786960157359812551748864153010082885205465269199996471995834658691110181610429002236391074377902352734178618581703454757832186284283614876673478753543560366322815542362437337253566715258023500109041433544622142201160508745349958521135672765996603238381072362559643574601726724998644637217311392822331036963793656559089581366509949956202898144657289944760408998210558980153655342206895659433334005332925952130801194693794978035718832513841377952073704173384430396227629247349497038124434084981253450736206016291252664288502942950256946977137671161997708902111428317860185973676766622671720542235429613954990483073645654938034514897650397571624539943601887913214386296962065220254036285062110157387155777653670150376748586670057331487934397220736139372035623293471229446296882583277065472826755516859229413852696064795849368481870211478293856899630818333783631080097876027613820202380922980017120821566527676911827070364479136084613992220744104323037911119457187816441648940689041746691319343744135697009978215665455130431798842813905584364881015868754531793377988289699555099864774068151899573582602874667226419463647857893409558405273233032379453573932986646591386442554504597999163761055124886463504024121924594942903837403920163652861249626820974243682912889778602232266974007878003263349422697097988649624648001053809734623240596925201884024170715576568163494838629334593923591105628536535317277106075282779748969144289019876210376834228241618814880257639942216379321931057758339457697161243549618740858536462898414163968415640731821624988464659924424513408362508538767872620155074139195698230309370924848435296791572158620451588406522326183923935794313792515594466768920620491915539031884551422159671813815563974663029854458770066413666785148835625049599791601723711964082188496494087596186350254328219682106077276949318294382580306164204250376260001387260861821039362188515233060875301248921673215544149686783458591029264913082577270010590535952832898841230677327789201416663809551091303179663056436538496992137810683346163766690463410178803989187276907385146228981747114631694104366332512830075593998109522269605879774037497746807083812985421576343575077840204423952457818098017888999414427812186810736245030561272019017391523820299629939061902571847235997049268932047230917239315511569957999455524631570241404573512403934423978738274307728030420053933126907788820305497248113874464501494085668605759592772308742032317137665884148880526354477009872528620244827606452127147766428424580460302541768113983502177403713453339945829321667231252916620283207291662653728791400941467596753055717034405999023138670006549772949586834576769517271454611065150603985130281802908508698191573817435676734562228961132795513204077668933373350380009554056594631251633802555219916017113575861456368058214709885487280475795384927998775552885142874722977162336886041709256024145372121958025299989539451371093807572384280078712438355930676038389027437707733945716920597456576134796491343151732608998555500769965780328331245862696576244006526508430650152464626127554075893138838126563144731429151464022558372602026598112490433598055720629795340739876874126561296604364918285611266582968588662161159839619103732110895669652866367367322346539295950678213242332588734475890400973273469487816921650695049269095026240442403895368414830624163490886862229574926551377769241579736084207239652663117908953594808170502277545148354218427994152561357471155675328314200381448409299832968403308607597408716392614324123881677532879719904359770991194267363331707552662441190413410305159986238633500718760550817311081246318666544040411712655470354717027594711710027042169286040011255173642373521052070322861825919458262047242315489261782100910652699925515926734854418684302417680643286340720804557293792588009690528011485853350472429952574868101890153558271506266729158830697467732251329557752259584230747278980270507782177944716229036673564455758039372244398001098869268598752777544043786393144161280175537787649076214965488248555568767754461048176042362962842524945703943778452574237686557709127260133145163695657071139618129928344452470034188247522588543697707015121377294121848920657332028439277962991577817613676596852686674113266319678330960836327601088422146758141309308383453764280971726834810896000641263190781958134604150314476453816278391606623630956471250600118083393342672322700994335425445394357563731634696224636575236303964972025816171775688036543756252816541329537786460622993825664364166752191993969024667255240578038251463730580748643657899924168878816596429017065110947115337610039122960505770706905102914236307647151634956056017310933456322838160903169635186032475224084878761097472943510669764778086340267034657235493682928218110454346182050287308403103980769513311580212021597667649331887404192923717014258387890328580764901083801020717503914189544764939621001513428650051257376764467464163437395963972758318430393681773143087837994016048977363590657576089238076919747806628022574479969372659781189911813153970762551356642661954797594049998939675324146298595082649779724427651372579136954115312388766956748879830358234997300880665360030528690560402659781755643356140420942815355744149589395565349657173224417090368375315402355584601204243019777194634486386296298650104890032010513643986752121890510207113902288093101149516610888210813527997232355226144804991158329262738374850654275531636910713707797883295691206039293930395517127160017138091350047334545794866236809336551981168298916554089813663623273547500608689833852725374462174870024885849826101643363320517457013255500953973898792485471117644450932056385240919997293312614482693701851986588658581706578702097565637553807283409935393016885068967271709740365914912662191884595891513765484446508761366719464547644679251665152587642585386433114441276115334023936707278364344188968154999963357821137783231071540476820373963103483537352049424188103375217871611630859123724892539088997491548211020282399863876708461122098073595814137840461916607134564446928542118437315946131567175088492578282008066894707800300935025633704506976054801881312862018626116919179873445137249535850031153792321992717416241240304544657953967179387219778329514701156740837423274133858351745810272749979416971757270155498036736692123042117301888856145657721915365326377780836176149053627452430663292331631490116224796228777691219007358685635788035565655784528354117208108837848505820004687900162059551518206079328441901658655762446396922012576185376331414074737578679848338348102740063377555700021479121985692517211204794303748469016322898966849637442621929674971787741075168183962401712731955965953925575415288577256268041266290933020179041499289540705454270179192919623814255468406593038160032097127983366507851572230994214058531602290889875504345094688589029259584369868057544667367866437261683920293678138717182034612743379893131910189154898399446805933403476628338166915386098908589444401858251023091054556211665267528378067323212598905559562622894446944887141692381026382232539354635576502571929638737758799393580100832040479402388043796615190567413658938582527637597756903748389794057675319406007199027017836939320582069869120317069557552705546851609296498322814381119148381033896067432579642487655514574855423335382556816668915665360189966845136964501627578751680050282692433779440780362934272193017214595568377303751081358386540229921775058125544136059966734352100486801544284675004528250067303647156390982094953258084210574784346914082659147597016238848294476678050200191144817705164625951037821623802783593116479179127272093417841302863277044802231123133172912744370453285832183285021858631992132083442702365509396886905780207189502541953233534152821284322501286519499216160509510686139683630299865385693128592317521935432245285120085653375835041401317334585612506442496248066934267163263217001169235143001446371404622232630279738711440824576754282885363494865021912784935916499418494057613447862090796141279151123565581385610468322553444633345224201314881787699155790201132966815972132595111459579420646378587465780933336768233517520321332090171326772796623557644568629355310639376445131344751242981859057128590723947392782395248394609669073133138138985566395242368956967560638011016117971458498331371152049717181761892995739556815431684178851303731712585517826917363954863044983595266764443164784898281519169917359050807924121098631942577331253656989624587571749724941945684986773224066116400135968408656372225454315338553566042536813085602754253266930947279825228593237003890186776274227723659004831846567991010874007753209527385248305489638909798911586799709210855870688352575705606555135887631490046569035410120107827044137530381044550891826690447980553910465352006837947036370523224960109441659868230996197609640143418505415261542781464299149539683649601351160630573464008547658228311546123226011979579093792307387549963214868380704505137358784716282316656121254114346519675245207155196824031455625796568580039800649742637415182363432348083013798828744005530144722115067043072423257143934134700164970592726444082219620586884802033401461958905335782340349200601636546322644692473025995471672206296274455015812744172560733894386291279407063249101713945187613920795737480004857365759284649377433573314198614524375219396378712550321059314545375604624158177975456773047160842765244848828643823297713664493420802856070753721864290184026910866117336450045107984363253754965977969108298255991286865265779717180988502613783545548951339964258141458937361791489049912066535737800781540362246166773225542457432012672248301639892969040611870225725996086972283888390770911846473974136518871382898967595508149158807671416241800337071894241903468952588788887362763166820083770711069869861211391461649066826828283054660938465748041356844318399152640516108003517507676050743561330301827343330393437758089259933228390106983582685496773127664968696063986623319140071824549924141754051805394637499399066988425912981184899568260298465570239866443558275326432719222032761757586581493250485361499512751917450952311287951819814729409266778115337360796369890020826547776755166180987039697436867760704827054692940796796473356352216477104886410011975825523232723401179020390915564115593410864871804525853343939263351018917660462462082609475367975141882262673697479340926933027946109068245822596230597533461066562970889898885522997773937038829018862999974542996737264156482089179063784362089727760885331023306604904985978474848326188975290285849195201282907231543063461371161954530501381686200717205637911759025639476089791989508217928084054175313905887045513584447389926178474104426094737415287027713659735641516794683972034000025313348578134881471289253833910867209036048899615086283932973040753765515170097157942991073896656822528701644883904290108855007653845573675365628191839671946969160784197892860180563969536936728806600185174306021188468155044911801066550456627016230358202013718204543091723457143931615085107012487215110103519014423687967836036212842690969245848523290761281160440074951067684595267586073509006653770296645203952187696400558406558622486093103166572460740109939588239486973166764362649086066194526675539170872525845865406668633255985798333187826550644213393288972556657064974633186769085592565736601714112093803222606383186148544234536136988452797774321460166409462984302675919559895540553131301959559484818294408851463322417942128526608028168988264462036282465647345853920670159629319498653673274475781446675266811844452804898872531933100104117983145333559107110716065068877640276373391951725635720836762519150096524343349049627267441644385661977308481180382650401242073681131437057365878523022933144477322534734275871269532682066029771768475399076452020950835339737562741988113601898106582015104159644702400562238016871855968745370749973299260589698052675934663507551759105436499201257578973346261360749437771958718890330987559787447460543587743714957633568486179740451676790110012249763662473752888647520273964222435666113668628129897314490364639741774064442752571183101685272650984267325105433600615459315195769146095834036726069494418536801455960333847878138635367779843029702337629837686012869663226363576085258175945922753739208662811594845558535285890503473613265396957735135195116963395469145991172719731137739221898647416851656501425663609220541550410156041230987720838661025985736877333486041061085144346421561556962571240721242107198447278388968162823046340026858632699297468928762705714876864817262747323723990170052006678325827087008166896464527748442894037291798193365271737968857315760384465470280852182029680251844279429921636450226238253785259728615498328441702843006792279336067536504457071791113471793270920320083002365482176439335207547490657340833501638043068675622714426147484107026521899795266901697998759850467070519966728399623772735035852533961623665736703972207952134342083437787561068497804399237878669833579957010952726847831663755944758596363454626386858328453394782000830443750535912240635984468132556983199021388361090826687248756612437504156699032727749368889679217702739246946127633186159172766616256543513215772395567191916298419326927655897787672171771605806410520129889596683756421719174324204585502224742190106759643657787708477947288950831174001388432102927651247745560423675339990402227558020303707293930964261312631783491876188600290736871041246983752646071954175211530527498387710997978644288803473037188646630120279369307823146706248392200061187152925134128820150203088442539063242895409751206354861051698556472190020050617147429916430714127162168621780305854141258868491399250621212610575743152170727556753449276658225664437494681290068231169944714496829628646929545446668581557749917919681119109499505924140688999356904897206222161873946196217271305444740024918599014094928875506241691899492760087519917282539551829633042384697606339677550743397995359955427774387019662337929486756550139450199442211711196496145733330982708808707417086473319694069961370554494734344977680206741611458211186168699331844285532691576436422123077161954902790429173492618600924806780915366724496689620798700180880504796411131574585788558091855294661264390074134934024173629762034684314162311932831025643224755855350869697723751970849869094469541323091823790844275933425069887881673930598822257505921972302905098193860862951604910648030751374507743412912047184849296917550924660887343732012215376205205580124767656906995915302574918878855836039394497203034099680871666116244547418344731959190327175717821052162042120138748780581849149533834929663177431117255431287183374570119469293453195655874409663030805722644367846512223561374753729265779599210908382291201726269924841650075348261063888711428080813958476217330225063229339020662841982885783278202376372052221757441179670489627278847046132233899140851719395807288609922158954133896266580000064804123563603784109941611271377024347611007909585459420539625038005982029070984381097621204859983547931697575676536203554987130003915097751166349773547835683203207818328208510478960864614294875081210387754567113157107233202564531385745425708064330191501181544712624956745770551123008610971530206448641323745532645561875963710023173210434428078892472855925833082678192245239949906492871191894037828155050745338183487251154582388827643297139931834660058625420030793895652312642647821898007446370616519441215839096219785823538809536879098060421480168292569232475592188997764485287034467712382152398241222339478683261111312575782037993184127285176682848833554601403094531120284016882304572881634754589143567801204170356307031408292105152987210468145643168399783045044075712199006381988867104111136825587010965618937099265793841777395015608102825599441290035088267792553008523844027333665027287701792225686313284778877816674992183667539996408658000932385717269319077000909141362403834351047200638059209192222969758273572412418054045902757472406656466503379071825325590050576967718595394583529087159792859508357800264722188651476857564236011820616667704127082067783314793737859942339814699909519730075039822458323815621051702585756807079359220472549159992922114112461763277910783052247183402082537471262434424028781322593666382042965401191550192590986707765814981781862326542654915485102886531279624289919806041524564969687283870990636704749702673167477348088391320033389558413110104642177230295966213444494232559641241635990893673873847468544083621880755253866437402309871961017917312220688636122265973028383679574281964826435971332095296417057600089083833356780698073746902587936237178304397544385702665944307158696789888715343957309388495256376580185723443124687549780976804513208845007227223291348660129840649893443773161045471442987093910783737804385496927878781697326386616611446881643041784654749300232065317557550877170075113245681674223784345571043884037659697295477733163966369312881431880138586532941468075786182679920819443596818109192934335447917595158705113145542668695434397666917338120459765144348175268276129895163565799000210255528378236735508229474342037330412080374253418416996447176753768362602885336882441300805883531636092071439417751704488002356841198580902106465527802262993403272185077202885084502654692986580227041556361006211666013150894283100971298544556946968613079391872816598814798309363681066349237046348773685628558433587358851114149363298730589956062970738146574295373883073527285673158908834287762800368311883934516231477762248794947514727287813250482607689146946118509969177238595396954454387217126538921140217891119851174673706052921157310801191000504137531609645993834759901819439702178298046669495787201953565057604412471634427666195686742445684412251300003350272858720909362448473980885559337766027895711535230122048163389569421751415311597825435326451943048482362071544700606576470057365944515157327765566889980735911737251621254075009227800417912632553441720756789881740581291168852201018409071164478590728438167744647034169814430882231130092936155803664745884312001406387725927564971142121095593363710539077008611339528453156769635730004263011071163097394583238824985852940595022157985795923272385742631828497444956638580224212635890031584402251651173251562230906773927879100268796716580034711112926335956372535905386448750039487524689176412029707825656744765194117209386308894112110079203152989297179681558155354111439957932146662576405587529446132366370509357183202668433356652343870798869464445374200528274614606956132441054584254778548374245932861627962609476854925951837247218743342675564059558034529547574246797278035958780892392100334302998793587131453599253432578136733458747477293601044628925360864601541504220842691084523740147458806103697800793873720248724513076408768185275198205371899431041100064456781607552134444542474059919228270930498620592924054496472512783731080092853891616209633122285523680593191813406654034387041933613658689996002719339482342490217675877252897073022879853764897985134519375081442245196509226084775770359667075694892774205890613178178209646049580679601933560011030508964516743782590227556158823140349416622757199527093685141772256389896709904918973578645083440376846564920272294493885815830310455862235006074026570629419507100124203355343907189351423512544620657848375269069611783295607331378307570506893521422189354174235653589583088711187745555418895507183348661133260015492069755133950988870050041023885849191786337611223168708055222840572967374492201854445721564628677124788921492150038782875663966500852411666011104921919142505283442983293472222478307538507456182391068570400676736803801535506148322636556683775871383103518887977432665654631134588828972445390788279736267821713461822351657496842952739861594334819355290348685279136547125939901468445870923039228276907952778350278651134236153572734405101663803531261186229773251502390814588052711718299648949013359260554076250173710837704379179230280248192780165650431744506531710218811185147933024224704530830730285243243704107445021808367791335336038937198738676642144059815469826742770837499805308282388445267020440761687040152328976707587799361307312160877982834391294242893685253446154870544460097902384646980329127323241654430689344402256218505898433633392361542802828413217864684285444138879216413938307566373717821357017501680832719134598963389498742099506057947145808672397484370809994295832906037624836102710685372095576556146111887622917877463730472007245923765756815281209338095685716967686445683436636231860156310984419110290783236915333269870193359284182413066017820479972822849549975619990693986857533758740215066507672439576210689433294937645623545759546963743168446956544418688976196114075676286064323764081620605896233537729321943753131015240276718778969077112344601925827222279990125652502864932018723027593998260592081053399426268147251267997256312559685780132764362804450071721533513466587613258351556019910003526609315392691157459071902125286286371446441178131991703327342109128048656113471339686044170779328710947419497037889416161957899506098594591507926772410696034942035453259839987199134108252196396406818818843358844055477517169425781612672726120666333511417989503864075119085433204742911114279935222732691302185335919385790356606731988189628616773472347105741389518298915158670273483038471809968962448466842823970902896230464188632830296363556551508898731222024433247571382229195854530945237001482862045920502364717808291530939051053829191703218520810057177610079962515197812703860187070813566082679167548086171570072848132986713315677552744939673087613500643411910316058670743842423250146171540554221100381875343814854260974776764899355080210238701834956592722457082865995454094691773061673179504209933141959287968692678060027035183294842761097467973119278448501079692605370052038643847162359475589886049718220609709843581286083375955781381937668578833285040199021604009368421811876861423710957928229120093828982149520426230549959736384486978433887141377390239950075093890935856242371516105873845615488523172096235150311784285293950969209605064591097941178931669729703855817656428893536742313740980895141668238760918308378595588850156840790131487559833683328222138260941021700424916071967576141326123410852686271344548410449525238975452168125755196769484749442176875795884790041887058134113121798258174762553004333328309821373179020159966948677782037759368031579856183746251416045789234904513715257260621063912132613599117991834510829742611151027240620041770405210431585001865966953162931012308690261229513019525119418087514789794422958713329640531492590234133167474680094388199030463530994593946712454107582719171407982828586132573648041376056916319433663838511410618371570917066744213956393047203622671296506227789713120022675050150649526437500793911601749721859946456231016338487442340697547619452216564217520221681617268180587586881381815039730477137774953728424004311142383899987517042388883856132818978111560955619234203735506091329524214805908673840338712707609399063798807153612143818826232296361895002798563274454967878948385253352219257433379293854088551652159494540642795339606952950288417337629341168602893135308961939616783937134884668026113182837735357127176046576378002861879359698107636556467240855273847150031365659334591347775923906536174642687047674622985648237690900631593143741336666301435480797083981341284855874801373162493978603644728806785678211410288920037089115397102503594934214366182684292581094082126555691249182603535886866842930268990544508911575389868230988354390052204503076185333816073293530816436655791768713066158468516568655130308038610893542801610982126647459967371545614571115456493645094384125471887029473861304555355301455242194699356361962470140579125156880314130443344260482362173632268172785707137742275922089204560964365557113547389586626179191299251763639964690318930080848234188496204235000828761291974494346389540049076541131200762413881357284532318912742005177339677403805014129706383482828681906981585732645056626082335976516990296362653659548835611066483294838579499667874807445115213675656782350220229126332375092621426018474827428909947515070816833285076450665082525894042808761556024446458154357051380461507361055725341633036599175013619733702827381922340956348814782393305833012904559372537479487298515215291337765798250621086693130238572574561741610321077639013020197438106186376493464710367732610993519056550890850248420135382745706859410099054965044265356085163665432825198346345650659358996770130925668020416545191688561740029152822593676958863471824832696265492704878820667247226503319213600182222017064782008335389264839073666600923203263954325686350993978545661458322430833377846587896421878174290823799410634088952116887394318401377736994473701818562576971765586789787408476649089488744906599327792996851509634646028013054756221412919224802676121811884079923738218606580878583539993723523876925226337511807155083237059065434344503209710258431643735204689309983345007391547361901286902942649929742775869994482876832951432486202523624523249101485654046288295020060749305135477519958705785786437549256125692695719606749384562578632353014054671473675599765470836541551327387694951606873314097927686248760898289263589785778401605344199112768718978373879211084505382716705857577368034161187923191958954199664771891057009218723189402819334781770808437209097619898470432143139093866245740053649483351226586672522610551688278417571451051339984604861036147657279195391752335686468160501520063574884663196209787171071903476964486742305121645117650166961567933626891697499483587805090222398332739007606729495825901552036856568067462778763176925437725570803147215249929009845972210462997096113798139285212612251605660485258663149082452188705464264080117490683575830322202114327530455190439082601334889901860151511319573325804464888391457586795950554414382742883302725656780550993387929252805299734434084185628502294202676360844176118759657449544969932623977778014896406928082934894593613390829984083533612461317445935812725910579791535502021075830619784913627721321006862251235118692814465222210166613678365351756322932594228032459986548324540960657291946479112425487124790601377091995553479206970410173867823300206942529802937567887940042582161019586483285778411935196104903484927576211498896286939929025420064738067849717227057626082727819314707127331926673805950186740963181220984273330087462765670696503516620830210543114917775844675869764469476284733483132235231467036688945124171667037093308983897757365360251649331973289215046468702572331255737377400666747439691743282578961118963418235371621883140300283138124888583732157589834704136616113720270301073855517704339084976313707699457301680854783798558695691010484511133782039635761974367242546597251154332829951188057893828792035612461032070458041751156905563695958044269815738709386765692586566477103161707114501757868348059915517716301432862323681590439339299165828217878165162741633563410489808443746565558036189756463969641334128449675650617545572392546226670313217359740641617051447924859493341794319791840147413224074580543691993095237598321140781450472410114505587630651640908149197314292461392894634718582806844189610670726322971120651474923013062534109622475600035000565843887791600784762588729955153281143562365998547681587071258094537049799830949248038859530271811340276158335294628048383032362596825630654227837963963994037343845227406001217793718241183898150528412597673921266123198815252262298826269759450574443685005494633154561932683074588589819514092256777940767831192430700717543991373605575372766903558332291813478534271234215514687298843060982160711754142902036111614718748449594627393503103975606015736783281027135035269370407277070300832410837000757998275955773065039137180686080249694417138022336043399366940942356985403395259342069955582477840510808751233690664482760389913795054372122207983551899279185226340205948559239794677147882482298151942988546270970999536882954867379191159537977083919341997936393349944531806879856882836652015313483437523011368145278105864120269591901542996347176039220438674713056470119438948829079372935123912304142802912734280141019153793613450768266529034464670688830772743739147921684864868453533801824921895553894383288455533417253993301182799067045788302761136149414716888275149500978785241147506158602482890741026718374406960522472054755659417638561751164387409337936212077035551422803475710340091198026557318998761940046199123545465661626380651781265762592145541824978763151238999897736105785998434968072355379035858391638664758148733199423373653267392425671381819331937901466633075647286971967670269305951658154889956003860538235749686627096806695513591886832444582571975418383797261160000654181133945295810020678050032198304793355958041134853009235982222989630207863762033206301515263777061357610509702540546432546318323319358302684702378630291649857975848587499543456186536279977479285002432191978733499840333557098876681360943310511735178893892945439871798365774088254989513856184910891414297407402489328214541271023995834757824614873790176381872202927569070134064107349887136917584525698640772361023915617793325543322432032874089652655396072807203658604862740900049474992801780530541501658613286332162834456761139449723166944941190717045898621012516641102248227615858531626172174446111265037812405044485738936820990718995399776192561363362820449789191672589018855667076276065192040978921184644694909884215347751940532433730693654608795939515044795825934547001784957971210795527944093486515146987054738194304651299425726013109239633368845703313919416904925435745321002072393470731116870298853339667475132332176485228597981778240243688456645372358065766853151639826635920674456882121741673893483919346698969051423703639330823491787636242937559829113376614628791559876600205600353511158015580792896288842901906459026104461844186691094924506905154802389889823505484547447696464855151800883537538456234807955267940510988219995440768854725644204811194511474722700578169233252161389697305981421823886000040532894277698860311450623650859595207675016084621016039249097233753817693556368982288702242945249013277412768395011814196279699820719889353685968497200292569184875977528343591775730493473409852723615052710211967909658318327829286677858369598298102641601014944350466557782920874965467435115021230160315238028932085492656972097937872398135774247220283033739581378608766067462587838844884533168687589828387030779711640188866451406403767967628507794823311005000875137341605527785659034394833797823358762109134625590047559086514967635352579815009477696815366641090862736911348819194231525978412681445552173202950521130056330654999396096542563241898125521266317370759522319773028460723023679029249999431000582426539571041448605355053383204477982983350812748093667307897789951915774508337470255823666394061427684617933390823884261414081974572052373475297963968121492641233692145095878143728283017029609517003458220324645620122064493493216454662163624738390135052750372904033229860866682205325063062473535161956817033468547976578020050103299961124135815137039858720802838655017953004015111056568509026127742901406228390418695756401599979131304489413813333838845140399640024705575321026102916321432151304525866195857149239792783276565902284894248987721192927144081379192322020013709162872711798104102873533112642750569917291176411770419715123933234926545353929143583108764965720157395660265670276256478744804071538092857582490184289570972040971783277503464101586653155623057345394153179113169902131020362903262043211568708700079324432026905874226095368777917654400969579464151132508878135596590881381624384572922115748818427870819883467808385762677047537638476196788433808935287535739250200634737047529603496421827964543233942015696295350360046245560585129039374086925810729973754199854528197749290837289450071576530123901274607325851417702038512449883661039076383871322747169403789842578037400841889389857229102448062116756102618730245986842371892311228125535165667190585485987495795495258114035258486295836899704053525047719961288527265779474581974908156835906829826291487732044825871821409635490027034988617230621942801891977519218480035563329689430658528781257920280472708136480384705480124712614528333302844950473902118527736027564506485062919191262644026896105281384651082168403170161719358275186186794372603777116866435251819076874680978264547325279935607380356022164242965573410927951538337514665592335093286816144879779636927799834929619063455134263036635105596134145388220667253383911779970969585128988176314606267499628434399285610292265436756163654171977068320467065137387932028827659899208482606329879047235718722851586923500636081925924649183467904774350929977664477704692187904532252726867248763909745485679955604732574836415271698747738300082885233972391137219774310508791512572661367262624571519580510146856196547045207969772235529821268765319830396837952533240267025051520614688591906240114592795756646600343306673925138806383138665459976344138229257890398520644802412040786273789728911853305463747470672930133043963784361702561052494923144373392046221281389948008547968040852582325590928535186021561412285626478577481147808739842059086136548982041662103272916735215371079808661689472600639440694523433338443993848961833479134055243697144912732449668173750513776269019921862788783893521592253237164455754676127736758983948055680567248965142940809262404783457140027379888155219940453215010939050081659026706357629714787245143438818654484608812639543342359953614527823303953116468832767768229497271394454516825878794375573624745109764855414531846671713658250115346418148029760698592502825303880057032405143830352978258694719335131716380572753977194899378331908340157702033365346930312963956640931339881244644253200570593410017081303631573004325146153744967698931547202340756337609115159811799739894527146978287740984559606225156379085378913724514241659563316137984136252536220302193463417520961450413541900861272423440850893361769406711718298957569411179912023605307199712573934736483968241709137943056008566043723765174344752461258697808290888668042268051288824175277475804701792355312530452897032571295774112759120083022242355650752413179926400082618985887565768026377761716262470685818276311019669200526778387332954926489983652624382856130547684819073762710459571577457968103682916772904301159989535417267362036064674419063518774752320044253996873183532609650316269767632752828222764368029157285399052547970553091084931744672568900291847387822134950723297227998597538793085583437651622285561557607014223516083660679301329248082656142430265399501069973201511091175600521540259838693139654352282702532326955190340623081757675103186406701060473992106414195997682627681200107880181850625227930852045514124248477728452112468658048717034902796111049155537542680792504857069631522487282886329479113378569602815810087952986353412120302837790288487749031640464006395476096483968599863613099346024093704228725994089896968853641074014286295670895461264692301801548759394066942198575593535962992111287439023434004439156093749395324496592995730241463837612419088559313485254004640406629553238527554283579532027586213153515981752000475391833289633106771207304581251775514380830944942134203694521817148633028199900305272023381262766992255724715918384389327289583000515408093527825585155712378514174830494151816541057050108849173459230775205796984087676300929260471399369635524250108721921567850116170696864425477856959988895625263815050944837970251428611842029230798328698302577786332892350983185640670635795744826315754826244650763818272011300303885071585727591607413528529545653576885726903296546878002089865737790359762400548535797689565270181593265383295911510724796932775188822768509267626922779289791993355120608183405675012538519663911013224615832093353434764890171290103287575270925694901300395695496386220128351115966205155895838924605707894961371768959536481946328218777136427143946640211475313503884783040389129202215180877752881431555628914117248796994734667687568529113665806725411848866583524958866136650382992097596772862390452548024000732187354198007360286307076389049702062522082889738087655596598115947105831595443757241286483294743454685208721312480423868216788017842097104600621265280846921919850815943241741674767238142650517743304617481912967444928392991889540853592885678677455651329316569770886518742178964818343214535364491471935020363898563974720249868659005784221175341567945689679162904582758857607755307794634373077998678481924905442320300978593606692945086485446278730863471454530951805757717725184560285986902737917395995088400286886507750015061689351570696114732409793410168259170923357831632965124718429471534609548191987070672021061824400610838011448998076294767295526302646435924639694033168554598927399127833246455363226609126348671153876515837641367203540972023578626016636063399061792684103917604030491066744694999666418700677927306162386578214347460249767442269710078516077781632165987122329878721623753115192909702613997404761154030228772438019760656778088730135226353487505999124469916645311104731793678485970857517998047903432336111346442077963319042038727556644972975616600513816730416708027500871128310679282070717975612420978902483981858622211888439195008944048222324094848032013449567242139855618631712103651115808952263087199973577744337930961932702869579629909290594328846497293698525649388164369896002886271441825498204141141052850842785509134527521704047934754308559389886064164730755661291128464753109368740514915014633559574520725756987823693294408179828182528808351739638047687421901084105262890012698955649254717270399542652619576747669983444412801651588786590430630699264537423175437757022849184496775760162436921821367550576205281414573175034451900711431800870598248401046574980224535321372693293216852650277179625227267219449866876180793834009436396415776380631769693310958052349832201451360420014075506294746611130354662564888339001373586798965118307446673923718757193847433784148229539691230557617942755241355597699598204495835745711098278216475438764231804584236231766701451910395047132207798434071556793902985095110969194584862291082348549601736596569457932426920331776256515756905049618347028770035426204670474093068911181648779452749847142336221069267847862821023400668039364653562617016312492398382808379005526002920643881235281317876838022555624529002259664886754964016861449713670689317086057021958065722682450433911442309551038099669516036486836856900750925524862280297757726601346122630172834712101247809562991232582928021125198245316361167106593425663206122502040980856743041664168577192629575586738426411335286278650519688175655636061996137760020190079327696394292165346142693384502831029249344372636959507963662825209629308190673152378277008981065989959462695738535431664367360187308600209215355495520878365477528841065780467272139074635778032209520986653414884710081065488682533240815764369397565091086122828669209950524530820307527163700825856718065176422935006181359989019714247782791246327703194086380992817108030513680082350175371712114502465341137639929547889737058930872821314076041479504980760803940057207158642033429747103568872383022544767810780201315266207729341367194795642492801189643137270360519793859231793106171963517656734898021836151824706782348322179328959453497384372189598478775367015233901548332579172031424707299368421185965979803402571533118824604110523505174957264060746873836536533266610022408583035290934800936757349424189869322602992708399884682869605647993808300390482190071905229166460946128799072764736070505913283882145320698116712704541455707834898378779799898558754157888713560517756461630710430872276816165291353197772081428076429169316252738630770961665854788052348875949568091000222885737505936211440158592400637497590449997094696470819024919720059577504713026524036942948294689987054392944069269945034471751321498741330240005429973052922292220450046400193853912631417533830313793904475952216366149918928628157754820097382553207828930529275244834121509470543526775520956978918576532897827790909574669347529338177788648604713371252224423306539040709613457064003387806317981020850918139749568480659913282398620497718849143329876231801137853366359139315293735807327012728968291520743676316610217022449047721658059617199327265500242184520252234270626335414029632047111270801963434941179256137201589208633888637137869314210072846136160999757179497961006258348125205966492959016705269097306045511214802699314603026821431001596013168225338740518581308021037242773472733146482759508398863429196726094780580725326096600934889093809872250678379319145300389427991030620273847824272749010579210913544840633162658983190411365110038321198684158698893853616644341665257377731915910194931527421090572176181989208474729553319051346634039895740842342714158226972731402886672923245747881656182677270014390884768483032491802497343442532499409326689996818538172223184843957658017558271610945366210251275620581778441381384451677707251872114531990041688907747762339582777462767928987875003004548816781951216281801510598196212662488488690263646482699042604492427125177388335264120702882700058277438233857511195090585812629040150705569472344792072589947949653983664906507723603073189481379115449798696689720384954433308198156315670857249110184836354030488302626851166441245046698101607822652261090464017899689388859695410639451855393928540185384118836497745252101611082991433675095930103764041237121414902939890124738914541429482601854276362516379916480067184247066659807072508405324526075575677225539704156020663639149225076057113325349293366315117379233999124171559898686259285908009967300918972122635746762007416762648965876802983816156985564425795397373999519288286845707038419539178590392018526765469703113014553908251516295735377097654078927900868217191513616280495324551677863492566230938741379408739162975407036450862669287016413667944862495412544245818555169496875438716925877395572115315033293014808869947533811110791653074827280593031119306110366357298795017861850560098200629761918858484684464170470496630835925679581031937874027714465059987349557647041938100543046159932987397237940399524368424003777010529918423928097770569166791967454827141211546742960758214598164900084926238772573759034295579951750801527824599560099097071195927796643803887611776341645452807018404118997015597673550211044544141124985444580000861206400579671803924130434090402800811791606203723170388125689072355695100498839084925590770772712600533020177731776597952322388575872344237013307591065952711805803794798017448159277657014268266655366247527573591999834892376547462464171649181570707576701099818796324693269014696151822305010416823712340768122333153751606980603214505822674314275651965536026123330165992826570446441474434647274137061638524186350827422868655924066115961252277665469994482281858878261092109672735552733577202022650283177214970899734712276649844258333987195350068514259106685759028614767437606629154340228948594063519117578059371815014721096817203297704732187367151869791787758854024129444070753761074002945448359012600877451319990941249982048856622679857255973867719155828458563496838958880529023913826639106791130716133008816835621436383166862451281807556122291504262537660685489645869135552040797753018535487349506366789652852620407144611015953285170359850104044079639257072781506452749551370432713074143582224408619760508215969980518972039296820983983401835748708478576620986189072284627790369292399450074558682304066586464542228504515396709382290163873289207210814164178061874958688580042569533040094685725537307054554401553017157563185950589960294297250661168493377283023417431991054206436236520263255811565131707468463748312545858549976815144342528295710701943190707803655292302937564468614316923532784724188453857788341715967114248713386161081432232499561123765043697490698308279123440620422232989489169078560249894763500261045981377420061247724442365199370381912274705179197756427718563164048873684204356259006593342978995094770890959185199789820878311789390917057461661898883246960829452937509867023992143382489089824329916491335109035907922874236009749161832155419706299815698633602255576137382879215180640663487844644860310417816086786660486729485695364346901297346973240821157906863946021859080821951483211439226719395110722448830007779432594839406642141475833276639373473569688354911629464479367572686696681057753312789792539629644829169485903270401129102286174995205147970683166801095084595179915930686902187207864852033320833235302401104304424608768386358796259012601028020738530213654175535535350284714925910601168848328136749533124209120679980033787771728986600093886892292854666103181087837221358268029532835267851345911194286864810021043060896441721501384837154398216272148854731057971333514794681363777230554128295433076803508709908235843751366435680808065342835677007486607570237428568396184482975951844159676631382131888679130708295333925777193368089291240983583771140191409954907739129780661455054012853354064238947545005811753117200875504318049178649096651982933681757114203541506544382649414002163571937313158440876992440378218964880833390342193886131524958941417554574461128631976328753742935678979312471834762803973301828650674384372646115051258472012863476292257925055350321879403616352966038676121739212672171772884399701359200204537456848053581400412044424609557548437603765551531441736974788909643677160541613702314717903108581515064902652380090773262695367252139006440935828488498001375006172472346795015027174393088253495260081813972282847967309438681347462060887401029312150239816706321502780548930689759842930510989884909446898757493213496075534205932910652052193797827884488162415335203742940430942311990992823968346342389796679749591730000537335307398743260843572551701877932024801015739570607691211807551238452959029092131993829475244062111906278279667215745575447413428451076609497971030102487985325963995130272498331503986215105031945160323470379322355658386283100196998678552520566042409285060421495750991398727336324696961902160606971317589760234097938396212226698082331767388721842104284559236592411054237428462203588509307991452807481038865354251232802481864932748642247812258926640713927889776607054181737885331518260477582596630754873687024440654336756750946505211700377340438138813621718571927538175686807148787428612025354269402313174697220167219178928087138216980431102851009864278208047129347802620561647273401425005242112609499129482591517978833197618034690637382382301599237931477139454990518901649902992548454460654627469401786059953481493635223965674325347482031402762869487165492563800630420288131482679599221617958091764878861449821274663387251448015550769482182899718095019212369427341662258666113478230335076906319549385289979696744256416572277621564891577649318425882164978744200974066565218844458301408448882629347876156401230604441006673037153238592148157961608002172126319659023179233373240715452275530833642882824308078225902492588416415997833482079837459986128749158068416825459102600079799439321779863709433164093668140920984634087558495652542790343955548465464083912484462133921657779900335122220707579087747914001058479328009992179286464797138557089241883758407918077783894382535209993290489274840571762251885448018989001762055330401858472271073079779962795567369307603916844370272100497708473595994096424586973814687275300287399276449958490282803213492195206645037700495480749591989883291387991396237598605763393490622525518832005096627790758536162686578401088903975951336067088482261914075083920064051347699776934977070862853408471515010345670299044506512736995381361882378977390521840357657629812692226013169619927689666674965319447984053498454302223511011402804694611913256108124693361106612285994679296168448276867660146011577372459323437506041057613042819581535215751470012870736501401604378914588973840390147663858434304505231004565836510395333580426605205886748024587149192451040604428006510525529995006474803315650673735774403066739504223060476766703692703283190846604774325335373500346925865101711476181479909549563710221250088479402279589033507177254647445433476802389080643005791571867322517995622534155957104290067905053248168714882214448125893783415852285995689800325151366501830033668215614498048838670977774386342444250819375766845650074146575187754869456364401614669337581085321767515304892906869068312495127452030591734028113964237342977113131809379342062331748376627041739985617937428093163762217354125159203624872392510648628452903591470508494278187908497092358090029116968076437085446758399606657523538400922506584890654640767058663115707025229911602660129034013777356467566976927991399137278050091567150758319582653910636748926878005284867961526189050915303664363497579411771491069842600494681866999583446650364028912062912004798908249917765845759536571983651609075317433658835897212698999308655655181920791370394304226495303075224004493910530287292477717907126672850162382242694925708238663043852038113167300902967360876831021025128266531382972723457476035610250258404305081501991473363098626997215560263947807854484288016497489489478457576953426221100593335840562040468509596256031638705785708400435419972353988148976354367584055151111891504379207897757859031991883244996865096165144664168332279832032744571185982026617188691162669430839736331360222264619504662255278266957176858411872395925758118568389479054881413569202967514463360933758400344956658563371510110818878569951045113517870317348606095801847211415835092037933704420652941544717706989956555789257207984552943798123360694338217398145278758871174231956191988028486084329848170585648354130825658866670829077164542385724401551412479079849258971803138522813928066168075251572406068151432650070921757918776970301263566579579540200001420764779370061206207485890895678425787086892078244667500077575144790770033531011570428921183313003632911601579036792519959657172307626528537845861096078213913511198618181462148071545485961726561120125101251080988201281805802528007548307615604689472459256296826424945728961898712396376865074337369374236747965124747871404552979386481080185777365373592955588362290014391265459267495212932094971715830993353918866115313205405669025187977665926840749519657019140178974909981769364587951286409377419227670211112433172235796965503704820163126690744901837940161678725501883322549811201006289798872520032637295537599967786456369564502291313096986869714353639764082856169554660256390800668264757372736360920744884586402002615461257307236746564331102508668157115297644220316900101676876039658531775891983074684003000954387685677867965232916071727304024475146404228103556148600031825976137719945448359320164952766599321854122456276321665243550103269513608813513423450258595217556659891888933072725911172954188253231411972402077897338327318884138236432587197733277854613632273458070930984583400576910004164773019092664801708928866870569850885375291561600775852336042696508648638329573046407078269331595741687091976793970405338275301273155376936751831070649500119926250515349108965506476444770397784988912634907514782984388742062783818264269744172379195168892510643892750286097279358421244101465761547445962312863734630396296027463054353461504774685316592662454869612122804765606062545328540148958879352722969343722305082425525064080479681486888029235474378023241267411420729469445381752941084233964275208819268027276439419607332345128372312291863748473503308480630030595906020590240847833501710759082829514380562243011300230004156109267637393788426623992923975537560997306998931985643253454798944157798496073224204682837599094881371238525581269668292936139375816305193139653767829762405140350621882465940069618520958310622089168248956658872272804412691253369860234326218088462687072486224902916269727619320298778988112470543439153995845071030006646581118183154203774615973423584469011166060775103687504088323909564598113456751152673999690836168507656208853897360856964327952128457326438930025995006190556618567283217015075958649394040451217559394231249800528583496513738791927935354130754055960291724123367883211153402998442498973010422272016235724228961076368723776165373152613500700522251672791504310023566472388167975293812444988877856750955700946446056753591690308774832062526790298496106759274533264392321206348561828617372363000544630215981064385513467806183466541810395833476011272299395898858639049324055023033842886146858991736415644590708835494986273408490687577565980926482438713977701215379457243379276573270441208409591551802815884555098911316264640905189291634151885724367197868523749798073361375450148206756616369808319246052044478240864814993013363125445754247848296056060801757355513379697482694954198583602769590247210108671195694345719209542453713794325863654092294334586249835800523169162619776960222227780360651046971126499907255594365679429258542359767155747137023059527002282739635359415200812660675346579118341326167560794427420033866273124081339307042749700013620418464355860032827939096526329359041612504659818735301629376089546123289956556878071935230061063934962522237550476531562501270212796766499069320682314640837590399088687518136930966869159442920768793835478297805680831181235060094252296156575783771483288846313632445734518751035399678500172177809783448677000469351106064381463844544322306414114279731485902797756403909234660685383354602638353673353569491061578701108586161686226233299065952431984905052623764093266675750452355450187398697909537118101787504680781959997378183118218544329361969775091023764607052366589749373185840804063421939879237659771479933916980781220697124114794251165788468908932871579247480636016163199711651464197685159030343870747605702267031196531474795844847584496859153053521266615471469230991377237525173343640482742050929668731190371288402188172369583540824382494256534505154581413764919997305605335641569120359335846810746605050836198843493770960468446777961903702862392998648565767512525888161779419789330908160606140022988131632897941961735208770800271369866578284327034546665881554565958466175369211732267733856363455542511030393922452909108193589467528369285084195639839193928660308990360380660432474912785881045381736847258629775720228446526034021493863474287492981913435268281337718048197186096854486689005877789212910873084389346056822200200080298895916385678937712768291722769812495086143648171299538533588218704176884474826342171710188656674562166993711400363054254183614645828406088142731916452428301369776722916997658480043564351640398038033950420771657721377985288760903604579513304002688068163949012556994039375627329943642447216721513990735305176542200328505738907525460496244889496005808996090429361857571492418660402230241479555713445338518906343294650799573310607712067620459936218892806278516684269952132823350277772060334188476050723569981114554398055788165213397571580273427996268179095598143582383863578210682278319698994967619871930792759468434665919694989189758218736139982946078647292926663505352040827246090304420913632312459842173521790917592892314584382308172269043092692567842786802454040708703558718197891993285725262489076757953369807164677277611349257455671197701906746695758189418137972441449520477965043456080398949602534112150053090336250182288075463405047844136671009931241692147046728351911493424574722511314618155745697772623917671212672499804126238746706352251269518045165698192310066638139310083193793063178580700506269488981803955208309301849540881098335447066307063510349433349006920152980778251633243733603016685659623822899755591715038708602035424502404881480605228259308739163544021696239768034788706977353171002189755547201074603463784198615749749330641413704264225552400849475422527426819804276681461560702153830057660107722938068398527788547404928236321367980068749097952198348882360528223955134526685364999556929298311294525067529076728347118772473950960781053214491440616836523499188076063076308895189128924566956725167183114915454969311157820913949028472229621622044582821360244547597325856885383105611269086508324676322899809585512156244364775647577272398336677774219685967920908297498047849077093560338513948951810897322762631568287296917704780719146475331260563164198202449395195622847847955955792076274756577552713200849520896310007276824660228673360651069621637920106367771720255068648458487486710198432309314683092083200959382848853986833526749734999888409175252848577885004414845629304726896392894744984524951890512413552675266043300577982773965466377723968674331920504366534213295129193371241448811173688690506447915912732427037091695245410418642046011715814409469592216728647025618325956177502368918557323575446287257688239374097963191336578708326370026948081476238825951082123550984283010195479741881481834530697490712522059354663898967093060384740238462600870023450981476975367176110740366556940964661309108615363179991559310676449644614444027756458430120509607205000655264461159411431956500929218818865825259276761335535402691837455452069795834163334297573190816275286413558396267560656452217777429110650060674866123964483074619213252845092266918796223279647935968115217687971794178097669021172230991036744899655364514220943930181646907884087839924997384298046622492064932452288257115375363646775556134731864483733797930192077085918655596011339329411819277625402403570680751284762858378958845030990373929409757172287252200258818734712966166863503357882518074996664102865458196330206519233501914452346611458242894289786551608986473410430077244733327501345214627081317571061087052739641051084952351401805871554800236906363474976215371900807650723956808466791859613504354782833864737296460467458763202704051878073174907555735847893803767055966054903021772023072589456753123906908038758582614230748879934528769822199411057375589290304418370628626725718598193293840977696751952006452317423157369326244124558129241963670838874073102459654926436961961888964303669669620736891237402014419966403906588853125663762517781804749735935568583653112063363167474597058863370280439739883858183945707683487564177740632198741941113873401089557929218987834677376434373173880107904647214963565980207747270481690986782550613952562039558356071494405986478908496367595982540328334315710470612073530797639924135267014172099809257569356881396119227256681354551127569936089656115007114878046111131676751196469639928484723146149031675439870739475825994952352617899460924663183918156495299649626804601757012827713623441501440880937155069879637991906573117729565608037455151747354113325898521162288246871425921892172398862725740146560042458665013960700096326167378822651545339587006369678101529032924068470915679929712080278042631137538905452964486270368854084319021682960861282715746751108636482484828839888005672645235385729214931731140800702679282437517814172296594644273444178105096898404927713962091838968677760228429131090151132093583389017945151300792632979169966526886829958357414554823964803936015813061481675116896589880042683170436694996902981464761895709831583707359384955746293157726147045057655075871832520267213871154159588810180125852167574626866951307027557832045115401797114344943461444967430961845738613576481605846609578246664325659258704630906077667723245930374889810332558982568300697103123583189476621279392650167789926083586642509982150608996079377325391177663747715346967560567925594735057795449129114189076428084591541091469682826551112127617092318533647971999941867757743225733616704765753018054272828429238140309826907822867500676398797690785756910613312597793293526889809139370015340687426471635466083964669626669273540991349777722955724293017131987100882795447166381315426870241464857291092909850194787174732680783234194206859828451565758730450730839880552190596132264951690156353628598070146414602247296702627850412605832804082505894129781611695066881027339799850218539513903541876229115357882059883108883032352855529777012957526364960139438004641239479645886726596208258185402169043221370200730077167047774646279487339411070765282015512602762843454353903037571965586147101189020861122202106560818842662154936087757393807756666379459677780517124284766249247659972539566838029701047889008747639661104458485378778585595359682139241734624798771165217435003352209554660826628790791263530956905686328020346065424005195367291859891977444670814076855807312030430702653081542663412690927265248917708573747813572748180647842825442698722911983571759241235578704936140819207810646793084581493448858369656018634448569731781985819453650899371697716211272898789542171014231496378474103569791238880109768080968057513998379509176119868352447428744606683278548356405362257212736271276409744545378533527271182999822326185342244506983480498511720094845747894094731925687590603446190605780329755531021807116796564481775251952640313331136996111794542500592472498261499634381571854497460885505269706902668181308812232682856063522526310659880645715413287228106122497534915046951794864133482524473655237250279412407624367232045447207130550756754884305826422665714970154449098044009849539560212677066309331055216538271577243491388926460677789213932244194506075000646006066984958016825879189864070761471847427018973038175867978852687250466413646373364149623887841618760770936305219908335382385017891333305134774692546601036920066062119172151624537400668491004358660645373956846844056506547065371862937463179565456335115829072812439383400754639850927727834718622547127573210864306835151483998451862737816764814289292137470515996614256275550902746947704284526607012442503334713240571466506067137996695126624035788257026299816998880111080590564620166270403709212519050852204161614139124692095731648424883810691024623805586837464988316829806834964192340309572746932692454943175059021459788111054607249478882540703610771892775182806074319301347102218961790775329004967690094789152159817268995804741541428959134477955899367794138482454824440391520141857908963983822457918586562607773986091189858676040298125607443079742509423174557395457687786323447924265304178229240344598696570719001200930721213560569862647168534250937592228258987885792245422546255135133971812250932582112886418195206008203284591929370505140210820850532086392382668229619349882360878158528411711358737873575440572358002684903089880043652443874071904097810280863375186889256572689231659244784484764501753286844060077378817179128072887138045790640425504350382131287186704791977096943455963202151537815125855067129876263892411297893702206660918854293146360137724580475238572586192299372882799716446837333942338291731620838972461189977942924378939724412152445559172230180713523536078454218178088599687844752991291586491440442228196902391990903465720692312161624078062528984417162318211187150052687957183740166625847781007868940050801875096233687776338968047126442472826242725171004372689735255123228152331581759354106751194344935473561147907070675538405021542811247196650520720983000121798501503940528669927725681262990371611983764769203466695600495497804436890363383475746780177597807458946796454383425561861270670639286251798537211375989667782199760603011071237476304877849195823818266516314031279322740587168223030706104744547181510832678328785684700414148141099583717785346930612601812653010400304484095671471136992791926104187218971672700511123536803511538652342882816083394886744177745855072236538351724342596061145942291720266443655571074436732903923112867695904065800456051258772336909661066887885972988941485638333516208867973471617397013534944815591453423663600179781131453874271532526352954602938806212205259189300238533899941714687932661322899330749462161236640284561929303191050812060494436307466847916822057349786626814694480840114026933109751875273688005143675616881945717429613239628314087653894335633729799919290603409680732396928142121701912486266601006890176889851911721317430508851997591984034062514417247575760878195688482562852032093037220555396818459314515520733438366858491483805669561455044617369687978630423159288422581847097650345670566419116291304700573083171724956148129274149804627366655132017486156036982261800014342825699089830827059464000326968263521544969399601584436860836108227252457484689805373583419743754584650457943050361271379479429883255110234271412786032042770102706529148626209127648100853693886012850257619930989580194752764164740981074977033722785613438645704501955943392042747668538260245271470428903626201262156223440472946955960476478987456058556082339111344941394809239745637267978919284880088186140407822537339849234457627094389807419561511991454118358509720579197783571733854142583579251650700284523333482347496064052188084339849552720262793840708499644666263828982553603454969946604061110757013568492532203438919849921160858276256266811865383948670296357826772022749676725794277298479262437874123321040819710632438915463424063137149274085601660099138854901598201389703336258341959028292416036614421178819363824809263239634836702230654859171518905373876853082025865861523440552845562715954686518657134713628101851240076777183685513397365017792905939622483169524205331284646361680740861246212189411260356093048916284066043033352123167746233217900171566160207012855468110504609792587902729223328806965286130573628615483987910210220777608153708373899256322593573944786276308056838265675596837971132522885809554268684149108730121934280833505857953715897882871258389931442019752170935003787873426857000688295104084975585366414806203740705483309947905582654717415593487905993825363321477254417988859215880627590104958848258506557011584893338009250615595542121559798071021253548771503446544557776104315092397105887247906198945522406602894176675886725561746737945923912700712031448080516434041331876490581044721694272947156419048378373313189787190262652094742231079350685691191091083182561902541409844131023825716427828942700449504992597634418612245077577621644845001050186074528849240647880768348869135856279759621941469746384452250551832350571746190193618085869890792194084484863119724225063376325022836058462499577668472625107705850487454967172825020002177566368746318712341356107821246610976607844176109688380191613792425832477923896689674514484132308035155873849206276432279886648023490712748197267684113452611414194572881892605191388610963236603316245372399277012240086515222202836360921912577960029769526114991314275976393344477421778653980595930109157713102542565988427797803809459416453770645132421233011193971762879522872667879977813916977367197721703542552960656527030259792286964624980483218301134911998011187624599755926616677603978103678422124404864090231260741637719677332220869071684932713513891847863721652528087661516892991595137036324604503556406605024811650165400758216636508231171736122316148926205276967453418629102227270954177922271815651933620738970910985204290877884427253566826911304657114013549297193198730628935113178244144905171257976042079197264473453101070312481358712274059540934485567162985104326893679737704909591244861163458813401518170932453529765984577362559767377633698637913711346446596867173383258355889810370613534672485195391618391116467304042623270831728647541370220507167812290361072375166608182102652426963218130201846678601168341203034433221193987636367564011448882967456202729337255198224165053418970095171919862342508378197674670250605723111406409365397295466541438183843670557712648802646428725844455667159825203145251789530664752732678617008550252799338583873698227227736871171940708971946138006624600946479115918004530578117933406007915292259771319868612762540101999663263217992812726394009043417714590262979979321061069598767189611604772909685917908982544712419318018657652569232295775654507184143191563888964449933353115864097756285188012507569222711351148549401528968151870000311875512410739551429876425937744924728491458517867047962725272963618415444211392648457070601043276815291381637594147320684852406772636077912755249539161439608328509703018417630371920452907994603125057829246196224500097983423679857292305236621803702246353302792332174824893319448280872713000688680536032882035622761251666885163380203018857378432064622066489591379659721568116993306308482060844553667352831395957354357081819549490492483013785412614714988114441086169989700254247265677575785451196263415426837691105786812340938657418748069238116699781635971171004424596846018823362377959329487710501216360372901240500701084911692604248453112322243737665431134235754427000930407994532812047296800352412994914517144553190412163725018856345858825871843991105841812682740421699305075201580295448170262453557499322311772709007961788459624144261669319460339979438277311332714955984528511277533048544408674795073493495645182055358095389151396480751014285471307255719751188872280253414623988499111905205365563928229423522994258002494830488856600664266572217917693333359301736652141139319135435720339036559379875363314846178231999144840363332751381540051973193701357652255986483617124343478990691878549803410228447046497042335102782788648371153520534666076852021120597123236429433342109312059785925022451915086532846807394552776563948786777704109583164113719889264730078662349711544594373431594748097578552864924026319914278218616916544306629138220453497339380532468437766332199384966397610076136805958578231742171861887583713818141401806975421744198623022719505234600735793608655874935844299298807707043057698093006744434434032684317414496293353915628994849490229729228082795272228650532377319934503570370980552556593257375452782186613384314555746747093011936816244647801557716197851025946755192348570483371828756171910959435026119689336830176743800556247210374556872446922911544373942258372541380600595561299697591249217220778074298808055705028947207287243164510931236664599348055959293228121150037921509240671294328029910491212616417496199259870690953387764029903262020713178770209469672701360503575543315556701897071846821396775109300917851307278516457466979052560857029906641874423335218818311011608669253676811275779099866686047528468240273887248414551038945741323207329699352790888149511882202706869244504123203002764185396339712226322958123703238865592370687385545671440687153981036259496315693210004599947168946966605072528131361418185669672030157341328421141978726290110538446170063378367772642786353487987680454243592418110273484378291681604265741042134187100544978664112255239117821023519402810357600320965004607049005470869702962789728801612397885326304778910934800735519394624657197020657860529056381339690796690719043619142762838877440059574156007132030351420408699081349065015960359018380596076636814396864874410052386448184130786559479887008040991777046095335139176215620207504166427306844576515979737053075548157933842625369634440197742520698997539434211019089803631232449963681738167892283626451961328143793098150204208263314601973622433279253251808662556901043233420935571450522914124981755544475053151014514830076033862130863810612663271028028915404875305333217061143370491788584992868216211221821462108463259361394049232597781112491884291666684386996904355141348911407788301058953240686569455108263122499756998014344548256976775398283988643677529115705419024949229012678183663326898614718318737186701094941214835121358127845788851352634095709706487075884566078893871594094444753545336434748153840249340807561881670419890149891294609002191817389545986678550087547227987339839824554753090761609794020961989488293056653269898143527972231205790893424136085222910837668515076674079615911499122042588363435987450030047655413532481271667775167566482876848902888022996117676304997550873285171461128947387038655613604232817721519848767010879056965896637572095480830497347290056599789749179721703489578995455407981366631793837712020082805821858397748308470180125850211130963802336139687242172482462080149689819255133170028741715834849432638849920603638457012427576689284786982503103996985730659848840947735055456026529141149210614484315920894898309324125589380134757894715833030233049929572117132433139089309659090032709909311924030361832058748027606525940327372392239373903111062470038077556922942950862439819863266052512995618911065292802945195728442059668014368454703688329298071092160412957556712839921086529662932538498921601038008599837554050526721280654733216044014723538241158498779975924977265113958691465756255380620865503478781602804033376321402679041001319613364100461481666164217822220498004389109802362716708568278392992152316086327451189857787809012063830952487401201904951825415538359427744311735183226154813816913458788037518220248736032989603451188266147547681107631992537171891093198308549491513210960384757359440568904594843123145822284287108919337689470294698585521258199309797824665918485036380070704108141056818611190504430903391142827499729243479310564109575921853613453864826106207968584231689474013524263587154663866263735177832765839779071753510841038084859477523575553018930241195800518554502922372993529353692827964575885665033883062963805864563795242773377910091870848744235309603415540087362664936975303939059066709998305586001327340365625246531790472226569716055579152995081447178946215311649287194958407871087923428540189696501096159155045823444839192851979554786280462993478605883824326404177739300118708309300421784868382822316451367275566361967907960054562194307842187708648564481695250626016626806790513470827978499074976589013405650042555341102920605785997209614428960594147009565968836257658794163291434025854340602034991783339842696058382634535967646089904928751942963957803519837874402215028276693790811817020427875694491383748391627485498349094694003201456608674705681504330738968385571781614470906706222420500872986042818086527571769888834314950299293497162088805290514279552045362687615879529362579952979214097670501150231705544277998441822217212977259107692458598553949993763109754143071062246961480961983690471939484401524542556775537729620053505340156106910510361029546886644466764877707685899284925962300283316452863557567281415519265170275492501555731881060656933992474273371859524138497636905605665233194418238544653998521198335791636109528778415537054693632230994024089135723092617543397442378099636888448972790474160708425920078658162648522288824166149594752810884451484627268615746651528820875032925107693426225143899113108354958065730944553239651143423239308157800716414659635631256642859849555753982760086622016154589261766953385335338951558215666764379941629331205943723429960199298657123417212677969879138244902785355069555660409541062698498694682614621038878012946280524739583308335820000972652160170951067652953243907305016045617350498178581854574280536016452846802373613975999620368421615173127630963396721178640952713553439976396946910978478584649985804638983625426998008140337094444071735303448043461472360435355091960796550081415907173067527978288884659640219812694173952863669771499246282124111717235539376275160766392130870005607970943702308311623521433025671536204559521549049443456211978802319197426872055938989202782740651379172970490796201775526818348565555174012140905803121691387489738245454613191320773775647194101723832217662105151552463331720753902425520975615188152959559962573303290686420680610715258263401067204491365202327108231180418743341154794804784554227738790114735507426854120153081792340110709012600279028233704450200369664856824549114818969149774539967730437419291743129917164478436122824700805138234851576718593070877653535644534428339675550246682920560791063644661217595379029958594606589663472271041299674849878468589485992848047196793518631512559662005587730096617101163808796148026768405506257381399316149466811891418669349198900434622129150455034195839929710276843500897920184119033285556061817471915461082586788125031962272169072213533098108486393013175987787704316876630209904607736811825498099829275696367865472985463593313392786249336769136798946633836425109358717146611117967465079840483689291475099793027027084626910718657985540586991095648819296317253500521742142022004553431757655964952230204965804734949027645881830112346581963873642750266784380645352444943638714386281333115331013422141529728589208808354703361263921143769818728894323063283288595379267450788449262186101995855006222762494356108121721655225776215135686941362432351574454562302058132878754015804820967332379406066255952148224687628596634000900088288737662616791743147315964467779279033397662583500728908825836107689889200958992885016896526130485508557606088410950455688956057588044754308096229626618636728000250881108034543456519940742066106760060216749501340769920780816506619129050127455057791435997397760113168104074342316266678946900353035629789314344249887833492408704437382248266652802009082617116760204574818175151905312628256746957706281679929724311351504951129730445414818205335455486213301032550745327925497978796480976732263251278629031978122500678438815885087891528286979862894723672030554074975060829618359247245494648930197955161442506854009776158391241162337348348074306253158095521213172875225920945112835389607689936167250530195859943866396054530903151231443230190197700054829762287339627502417486089197434893738542840587672900123880944212063768153311160092364375775403870141441834955557758544869764569379137479603782839326127384558925966966814489776427142854047544194098289443520642314217623979780915049834158581605968468789538651849040953259981976378450814528177723584370214246242976349936751514184748603510151844189274872899335506029437583333255530627663536221461844069513902593028278971708307144880472005577602067539581601707899190175240222156562967818469039241943313668513835719440029036744142726782257524187487009861832276555395356828638257015318989071519047493076390001809311875359198698936207770073309240051078244502995426409140227987979147317623477417747700532363639692430036473742759547112101311621139668107165133497511845660021882087696971798138780165498956155818095938976623802153126516742682338214320315946457273884319238137984789216886360273444708353034175326160169032160203447018289275102540568972779586014398914912469902918854912986541497249359839689102461080951081204653252585457942209018028745728741137958601290404348118437498703199985136119030628827566745701137186820476691428712172882650638281982243124622171750672149221304235291900238291388954658796557404797358793681210549498389706823002756611722658851938290719030091841668888698208547874926717871563606555273105465192455367890241151201299668379609007524179166128640153241087366829154746301731490353463472828252734369242878517630509591940972080957312083867317442691191804028344117201501208913056448702737898395810952671901182638325267210025558263666141918765003627846457032481048826308044535258221998119048763655074640672070263412805381703496026796776309884590257805546695019282374461174033949526852219867762463527578719568885288466957835927574535816189939724640734496806345763212519985172094860194764875632775290837769359821792137127826497976769612005469345521449659207172699840775398106336185670900909584698967503805678506944324981788009910251335524799552448050286489732703467641867058103653806035684278082228380620208108753930804187576207221064497136241184893711823480109481884277693331635052316804725604185348120187629271647470245000453499350475858603868448619419091365369049132392263792792841428535268340081900415539095212159927890902048536609071756702166066850553356571819052520693799355816413008663831564733433948764429294036181228018081486318952936016533930461799884415428178351881082620782366036636679423818993134931094159902315497634228833215284833775569599646973059561246214511349780502890143603079038646786370370439903051251311069799071598415054402758326804143862085602337352572191083415284459057013144219161309007582314939707027732426181951982166557116524282978192071490308715713341637823543037161398248532909123999867990189093005216924525368227963546487137444529375925016481863870738252227820788325782987169619823696696843185718256632563750361133409662151951243308738237235879305682692350438918858437266211143545205430481569461045155815532230489051713998869910623470543422451694206474843279541003358147683608440190183538196457976282096060265073160459872906724804986668164422487101864167235123959056522595232382225294302282982228709254089031620019611653573344763302925962132515111122931190973115050980319834440230166062868175785096410530328330474819529506476879160878210299037308656989689789866257571297236108360939781027556182180820738311490835847466056107077112714557983069714582951150674422264140126023862259615358257401156875229934107398110835312673083298758082179022476387107053776176284448901530359615072564737910330323558337288189731811587240903573995828390340697125570412439202357993405728895605971445840843280818510707348090181787599432678761627259937090939850878944429930720413236886778890689141684954732400665314451223850105555003640867667460240553543713601740567267465141371596049237500668692306364080067185682291077919168551376921066214565966274031182410857739314171650037689058360013857417240492907159488785217699026530122370055196027485509496181609360783686865934741359427877156013929353283534539923836338006326175758452970170112552829739649390852169560840792701970736362119565084393074218797755298003432652574403961761896054236375665243314721474784485813115052191027424532330452827000697989053929626139136047824798150155371872078176134212250021042525360142363620553637034759872773969039675982935668673504847325135412508101457920420240134242822050214996300854561451337395484681114027749358015380218349659540132758383198809208538223382829643188983183938511499517120516680237665483896918475642377629483815321519618215534915344983208145261698886425678241780845178933787739657646761773120489394895670648045065440827574382361111794250115499171855899130848391037768562458588036129226966816560928981205734851907302472631203467058592030437092845327934416006082499570318317858971168176254259742963426458560350254828508025404321560580375514655576690170476824822140511290733675768228471645821935243063089920773263453476110825901502393105569537537363145375130507040558601760284840655209955445019573863801139310823823800228764641453741474668335268286875573670240855611737936693279705356134577237067619530366850608043881929503403429227877551004876730478437540132233039371385037367372566768494055516322189691862911975907462560098265547341348602270198944299348446643243332610305950223485340237779037278007355209737390682674560761799062988749074471728774456903722581891296298792542574996398533030573530654956391020312495979763215190020754469985089796850861738189946472000492744127290725711928642056479907824277929046821407896438258964072330724172797339796712523424948454294860779127580760748452587432808507761254522540533613202101134345784640871032226942624302891458471932956987218808117484532911313760571568450033676896186666042106997830310107071689126991195471284737932431879107112848032656182616088289773381742316225991056958855478491331767819457014809923134534389908203495367445893368185934205483839427838000437069124432967618696533729579081539421082626621228545037730355174544164941303230748635110529333374542059285015379737209890978499094645501178792932579359286511754496886834288556711819695131823649174044270982488933325932179220510148952298632866449509876555085665171478192049435002469140138582234205061010213956753345760547539077880169188643462111543704268654791218748198571837882318011464389549631878637484050715401687781255908795601411779407480213093127590453239096157069713225985304428272701291626565412864833384503263808574173106011828790235483352787228295457361399347915796363893144122942644132578917744796250878299094325455344021982198587139394929585379474324436452976601991924373505614771110584525679453376378363806871483878081333200148059920407811054127356841633170315642278844681779183562702395834806083580630714979735434895479229273579652377291743544878704049507333051804815070720051560964623742512715389882714694523154168690794712992439373442813654249424352443208394845279920511577329077587808992876915339537857934451331327603618385881793265614954128208525388045177625750111230785877321955240231938016415003112668325203014765643241245373952981222976740020179334742715400842790249290754342075970273218134947727041418179236115508510620600661710352271056696622848703018533597213111509654368879050941589112577623462106250999044719861584430699228912488675548532364273240325507464421036354595867683119486436601511006676329715957174203361691093721918159206144559580124215521125918819387118430651736661932839986873226482282917457344678784070572013591778646129834133561124149903831499919361426054123135888936906620737621138539172457987880563531986357443323565580401326948730797335884773016572542699627734299871956811268023760571095198025819378658723297682157632287665413850164890536219184564726727116122511103128138114399032022994522252395086432310525666578593890047702753030994920907626397208235582396576580716504126039195050787696929376419713758285200069953659991379885219229210205232443978728989856494335690295345632789667122100583886083975451298224462066525696696183926939603516457410493453868902854582081649813985828960662467222219467823713881022299836207561563355616044714787242702962904496512487335646597932978396128463044922110625914877758979278769113293567631622031427840353228128710785135256866213588132478308945298468115524111995864429579522645982168669270098722176076298877896177422630506988541618118927255819609958905458867634945450631256438927104904026383638525973263698605381404297084986153062226781320602629981434382773175783386823804931305527048304750462786760812369516751091400880330343906303887677678699305585755585014561299623203998514622148985374815280756190737748976583308061136001546879639553571651157474076202742900408160061766648345789001435993191079482276203002479464868215418644722275986492386565826071451025976822849029343335260033544806124101893903888108216147762993889725281886058049760294000919044843058108374277243396264080957546586583995820751053369095018525934396457203280365416807977666428979644117248800035579389333995869305896771153395370148118919199048330351733896020162972696695240510223467783191010962678710964486840455990527391600698710830034951219424808680877576174820040513922608451858146346889934445203761356747288729558410966240606929409283804767999773429410563695732152848335482588324568185079398274748121374525481659825622691863798675807154620455086164053739658071202598801647280476225218101133272781560177121546842955761532108655245209805856263785441118328939321570229456224249556340317771311319690577161430068650056298897309217003317887080922850144166601035552657455317194730374281857864746649884278354038279783676576365927888894726009776371870115990088841837914472236092116119323439154997043451918038092968819932197199210841161395505472940628038319503124847263797509393990008609161135118106233106396318419192267862375763897762179571764897448554680405042765087450635225170054505866706742978750854155918461863464242268786694027324808323196276653987044720147278540675897424763298472821503580494329250541300046545214400150726965545567904609893414777718258231987326066763868295002145943287037355141034351173404048753541185380480021837824187879707746940708300915206803513835368505238646963033733677533548575240991652272087127850074196991740856241302902781328288634280536773415755924006114995465398740085797583841774855304042669605862880501890898408120073911186725283652967053876832625095104514121025225499462460821861086099911336423184215850335315561873899232733947109273539357315776376223388074748555829465546425093331717175685132635449510195043078628212671370272594274467192169454392514100830822295689049800987623385795535945499290523162884481702544656478076174064652674148383452569778830003855875840026401535674223686905200108959343739159452819456922394789349152108311568533066442358816995304638995214618483232054667852861939631038604520972939450196361545362121718059927580753277589939074309782243039110737802500486044449800546731180796388889579483279149441210013283265717740729511917579385298919838520730503152901505361751657804620953117333345474091487733107089280411317773098608314801742337530210734780025077688688118506357634350572799342000991927223696016892398494389385253581272935604399775092015028913956032907840309290956440393238967420642747390257921367333633371588033221656169466618761576442293096371675667328718484704914365497470665497557394235681568921031256714678227103467658986813023442514056432913008467513491587287027132921640594132872001850569195064468350953304549244466136604948317625022122622612520036955792063835412570314610432692573304187382263689468621214125539394599248657087725626853398106604032678874933197534926174370688693252073135846892919106504062057900498705207128513750967732440127918386679705955863288014070986408587653612658455147659078069630591286851227856136605243364736862208160309356588531898167105049104972465153595150912964044562655394056072069802086306247254115109599762446333991772069820858028681493903251413779011284345658186471161039483918523532881742022172644590894754657826423636688642832001514096191647867602837795790460503259938977923685355591000485596823954108724199487554415558517142221521332314065605750199324270990147024525032537105683180079362425985489435483307916147620856845137718224110830574905205922292436109656880874727020204822551360189151044649618779103554866371028881012058426680670732860246000054536855338819753351542034130318419246997684330885899260360311727734916482998097305328764268747478554806073203777248824255355543729875964762897355098365270448910195107045615380174629130385081559946982739863019334232441291979104911444187433728624493530043428902420421030025179611388937078379920198571735288384243534629856919740888663479237023676324634440005154034014820022289527578045073273847045028150654234226696899230407210616845807624185737776740630151996924842175491673042191362387503855301705705138944850200219339725321496830856466228930347695115208633450942833035911465089665990949272849586140495266985754968425525131976854666918562257891039382352651406135794219937164138051870226146972757549636306929055050086755694563003152609219775093775665362318627379144446516321514997058331002340623442062380549568577716566446786693078946606304212561379764969114742120760596898445388055457768277806691904005529015944794169722267877755470563762394591190134546477262913602073375129797864483371861165508994178392337077286380651770453760333433793253367557893599806866876511043172580175159725344450934425438244566595390861469777864984345628124183423857170388068039027432361879214430960308380575611041617627077376080047745224495725337068512906665678062090824140045729660838324261006476187303638027525971621326693504013223344395272678867217207966320561205741836136517681644956638277182973273927074378539445224752084172289330157259373085550575495133698395012182245177362671036983637924073909899841172753629454137691894861136166295579258982072258668806742793488878901589881194576592239926460005128463375875433109398290467474594278294847666832739843783814455969018888779985096858042119819991651883614834654947935625330058748712844601262146416462588062574822296112031015023846848093779361600089491688439420572178216451280344192154304822568013526052476906209820763443172728061280448380781411937667055384605648712708236439956708131337207336167222682485992783815638520966982770099503941367088623548250190694772167056800470631550374890805917933644240933022655081277237350353272798860452120241003539910923499188454398505529177857816887067012330274410528908975437955050074827159832668402903027367380332419755871756902792209392745685918432110039699890617381301108657061209266511135352420118562859233762832842682166642489638580543066965131700825353431588591770413352052172430329250717292358257932046772154343267033938155250932975275083639945627703637046416479888033181869822029626932081291850528557302078299575113408799011460604227198821064438070308406822278901156452994923654851805644558024121143708817564829396859079981407956491887436489686116323715263898015023063971117374871452631365244060483430989454430803389934654911816861017772066833125862271402640391995442929966877650853987150223674594977259164640550527942236586653427524582440021478886709898266311937539994588215240392223370362479370827332029494780341762095062067171494332937354058009299662075868628764549788581754981246698105319530074687897007084693277712170317907730326363761822566328733509852311772616467890248471361495038573783308608003509865658751601939805611697620750468754969010419390896167536350418086778679016168584517637250442155877835020521202263640026240786688820962970706604256366812050046934947918099933515554497872189190160240678610657597904551476230322077326568604331839806794843456774391910318976119393659392501133621574430619976798638001306196758837871832157724397644359610589299016495298591861563631521907112518813454416860087443936149792566141817953333324535111151173497291754475138403251010973933248593242807372494213094518294142679918432336939717035109878328208329903593861861343287805003789713990702167158974500287865013399965208086081670349203483017279212411294259596421109985635458677837272469791919605189732016245561270593976986065069026515160182583043024352194901554913026410588807485443039400975524432896927411108806740648059165517256927098790334347764204726470775392423313065625623578285222552818584146570280188831019665727733431856011811972834978314106675887988469678736767018845201912123222065252824928465411793244401533020235725673878090862524688198684958947988911588018843500562873427924472010102747397285767838168790303489481194387824467332713465656944428903824249309245829438798711104363150762349301784559741719463271059175299455260772786498845682954074020061402443662650988070690609061687946629757859414160077678981088061892619758472962361629065096816501723130337370568605874810258448108161293491639684224770466477194869161906705368680751428075318697154668895069928913634120537594154632633119588303760292406827813432603166449914496566730543125209740667439504530839123265034075810251298389432267016804263528881805528112064383661200149192675618431718744136573809387703208777578069843833795871145457730504858628012936048433011301282868638689150292444959449310282952650891438400132848100073085207022737320457243065407216121639675112368947761929988996654459984228035979849154868038342403294674914247801342938832688080409774631213073824201433855031497688722763348540330398849668301380381533112142264530319538368657282178612671348076091770016802873102368960320739262357784987406571840808648268739703857490477405859656431983198354340481688444441301166750936711322991390576959484565269492079771226395090244754129624663948414263156940574642413569230571793858433933380365547183397515560542661091824876363418967191503806946739635702901235137056667994617440898994949007114970731764142831770795096956892145075803916454793825168598911227593519621968841310224069288786126566268131069023969311943663309959386727368664111318313000519792716680296952646895183357219833134488672843037019618663923748508298810926289237301588903247258616169126080695710104360201701752060488050780006739600550235252235239303677210866090036271563434379212534084316310853736114161168944234875873848762704110462490065728113575599865125407218398166220159161620405294162454705134827048681371770132947534560027179668669309265147024104256737725952560039383806638914278249522647646020119319369495406180049861197787991596907645181707896029437641840906113903315735299901585342571535510811796204512795781307809830361487355669780260521350384563078721226227829415425629430013045387354083039141016919818869006379161313928802327060317601282196620093370738566947079761018582612502772720339327276244784753556952937181887473459338943482640244852364787184261479605438700333200385173001610304727361082930476505515429930375518244639264892219669729534554901537256817327793099860495808228352600670905254133214435168553140536690606202425989919505129599024550484675870877751156452353896763044376968544629887281041407933923258517347743194812781638540860797795100113766342932236929391870237783299065549955695878291697732521239220193527173593648397461071300001898989817144896994403459684978366603024695022438898833031148930122336457147563090763416088132870893203888134692024386084056633985011373111862272311850458801570515600494328757732565643573172425898531909824286810795455650947419513099132438838214177657084730907106952415193403709972172949141169026977405278109072166048573569546330419694775691306270602518984707046291713025611218164550747910354159184005997630920270615951638468588663535056260700437805519018712520696385170911330459278996468604193919411236195506981314047554781092126430480358847747775430067482944029686796525668151263595630367033448499119808937101111329021834463361460304504723641279105086311110319282970259442265336104183460847153450646317048181602036141159051676680187228995359203476774832658305939656879362565746331351376866534108237719107210921430088516139197975334184601412438365045860601359414769936596420002379986242178343286190773669341926368700221900988770313959038138329673161473340682133105601221765625793657365771969487771795479482343615028150005577774040777948543469072979820867548949286393012365665032160411130773243546781032379360175704221567281628378702994304367863456818988284250302285327056356119084166805225871293801341734985262177369756011844644650974307323475679722352659128094675045945371140843106994143433125902532046112398873055156049794275883580552770187986838411947082501092793790475498664958177095095941075971670937764588001808067374836539307869968920092128092180575137267117228494780130555322003482441954099081012300922766914579592436404935989599737293095383582656250298560783775396606996528818198059852981950945845870159224598105407128398075032752266419632948710515258640752991370084873436172251663206392944201674922851726371466934047711246251719924275054092721917396885831560008652704115003551921017213861080275711832631460916922918602591224679704694818405392605732870787183808240602665047645654552311310420464734213618735330854035854189831973369777270295459318362329833339939701824460031110777083817879479766988480733241211839559255577839211214543987167324859329543785700706194939394436605129817223065626538397185709306063428191525059279417676067783283600919820770655626436770839430519988244101470031168709560977385592664592340477064333371871483780304087042534543894158085432666283875215618940941709452055085505832885488373977413619363372742108191874742932883134784415472998561416902150438926325818990147695885221697082672073757853755069479836361967338009301330219773612460520907938165213038782416879610774847639225352014253669939946739690728272434695253318801959749593697783381149910306267984440585213472350215447720258210527251948606224067355930654213753810298939898847466454620712708414673390019866399875199658575871276568055873676925072746081104739219039713180815981754597491829989490932813675845995147847243671346467448698561209162617291655130129910933932931520450831984312571212567802746565555085743766383507081944982199158426727540909164724614815708221927219702256261750835650125125478230157111623627127213295005691857173409337295186191952099377759428049491107603234048924385613587220181013724944992284438619096205002555242192808767592665670336726879476984591401288584079306623606149545076492138139685563058587367949744678707258217886714580983823217287357491022294315637770412520275877462170494568514965833503565143190718301895571605080001255974380488039084586116100645548048382728358520118532906651493790914715185957699899080341798028226706921757739259844877063269711000227614601784788792321922342638484913403181967418335410541268579991895340163397696023581103979174039880105477917307106165953839704667078177241858945435546669321318216897186159487864814637976170013275654288650695634209354828660398706810038601250404860026033715356371901852863852798741172808482249555828489259846547104213391812093403073931849853018425013089865995357646425438027471074007285564280525775129786709285717520763334441335911410023731309202749933326772696405364884174566149393083875807502441463788126057928112154655512001425974976137609289825412846668927486138152278514231676599898422357823152799508380596382943078520575543816552322434285602175925842588761967535567880312767469201951895229331241665015961256946907679203705472001051143833945628828846845537075763836999293466044129830501859578540423613858093485704515623507957294688670952759396251822085579924163861029937141809207831043576103056036181002307396317048683370205297750660483291491149529564277832324355649063857182983406208853471662069888408218281764196777229811066052335326048652273803851665222680999503732941038922136545390891754160134542430112790138215870297816295538956502513464532685987583672302474358154029223516242923012038775035458263294480463236756492184734869330958277334875117994540098054798858039685509640553606213243649420609625508097467813644257323239843103744635630906067735231532489559766416852973172984275721117932123843012953885944944357451963290336880542171957252933853719829113057036178710637417638708065661231120479704452545288243589201040373016226263580611695181079649845609128559649750954920118434037874918392157610513282829480389107583166304590885094535441802751506474874982230310871061272479604164388842741941758870096709895272612959236578038380040373811670916334822376023443614981243916790255330127391580715434288810408824128640258752837876293167580064042739632511506529954904620374230390908281036710635487830618714280500553284683358120238387847929786051582390648924087745478526114939982986538813943068882797852598098451305043792698561749669413273120792580134184705925048062895980323643915611611900650170860381424599984179975361306567214411258410346004715567955057092744241166475579573617837302005790973194577098893826875214249260655157935130312421915350668022542957879977008165444057135335089429902175884513053318594956845164850280644905688182299264017719306498367009950712242546878332451608585892794171568941269943794588289354180823315441454575742401122073737364415190789193028030902397025355789368269099991129063366652316527718093317799357427970895850237246756093657389059379508531954113910900876388893919943030132595109274362948615709549171063642972604745211759772131752702146853905154548294739487220305247421634067441318608545106850898062885010640171813018053650204418615883656484128673438469891531985497514010701088536567967617257767397609155749137904229062706277279903549763274500128762149733430744091938926174119921816750283891035282655510583652618151047794993119471980585782534836030003483674047108512667473327851742939507624493145887412030665559950962314403726377176691283888361135860597243333951192276212782562857043654426254702466502722890334824232418749402399759789304358163391412404890641002071754298957390852658820127455749020234859300316213645166790115561369603305980473487879786614493239057802091382134857310535783745726237939826756215423117857316255126068311543304455658640926072195615077173136925339882738193582587529909337158290649863599088975555964568949117547432316609335356291000386973044936882744708892406001174112528827282043357889033944559482657964929011756359532616239195510635357885644378714724581347169402357742569068056754978563936580667491646416265895457576255425070597674299319063583605066752555936007575863323496253735466103806799577326056135745192905711479710708575865318177635725779500693069590596280882653118905698769682133448871598181867178971217446804158203294629909868121439440333953851815327386269871367679881623978708417812454804528036355550417028695423399497593834367306013433459154836260140077603205224812456719468315367994603257543066081310031216775828174655533880869207597657557466709835533946364373290464530808467813052198508465406420051691159219059392167395125449609475712737325220695894601710482298756947009236950026801342319659520366033538028777594874410464720677656064167955142940242276427110882708585256796000163329155162980284326883835310431282756503498384956224412362905393161125676307321651997946736478550468203587495177721990841049033134100746519244354646790546448678491737275846631792902967988204520881855497511232337380616949295333476072366018002712915479196598719892561873688373621531799641892401136270635274200548182244474154475939843008412613714182414266916311999749054026453616966654655102565605023052657179349499888628035924464969652464640451759201834870789036336732816395866278313358662666165976479340509381098756633894118504711188792083449167601133207646613989630753160573997300222682946955270867818552048928311103015912654588320525257433180035832344197737025345721564007009325832263492900890836918169516405889966348257408838476190139791743215947354224842648439811407629745958540547819452484220539947185090759493621565731466380265232847589053762474034442516926351904708227693006653468480790986300118932412903132710849970363893622699575245132663715418695972575444615443764612609418684945001687402412611574813578560654936813225666602107515552064673163541244700596483911173795873569624216652932534987369959082270085331452953997454267697871881741631496587823421415276122823529777495647450366366834839754005542837977982435772658246360163573070892245689860489595460287104936411952111544351697891846951115823431428905713782709798468190786164546223626824077691898899736077640290432167213106328942845705471082861503069333578325978630422196156783072308162254936845606989709646836677533708653818720661394375859788264425586096411339539918225129345014661037100555074469596094369633639456051449966563939974100446219746159996328352964257343720733805794592453746601446194302368937925229770724198499198177508080063271738124560324722718566843269026760828185550338307975526743341387756976741461093351586727015118497441479315863358621930470722349269370472265002191155928303222701417833647288382672738923339861850008989661888351088281546084124635632958017488218423296718267104901565114214632195279432594055361389128341632363298154848521891224954210250742120822956048430697727191936566980999456783002138980452644716087226483483624615633584462777002317944975644313597119447656245537380779932335667051673209511616537449909598488650566690730618921188732710921737676521828306396179817389755653333076174899003665044952485785049936285459277107040655046327206938986225372013847148823867374548559391865239714296588964935070461661687404481570665952712296002377758133987401521697063497981512784585495996873843537400035084512184660549525036464882045914024156881807822209454707190274200947045102626590516747440853629580752872338415390337614038600745074024475070902836888834477435370693494059317075601044249528864446912952144024893701088529767004975338899698810339372990722170594296433827198341400242442109651100682854175110232735946329150070129941225348178101139726152313248808162843866407613995520298245743967138128422765773198132953807324968656473686248241395818183749331015354619323947814619425335117043990693021333776026366009953902030923745159159355628808746546695054780097148127790719031783412558020965118852650485445845618367528599650992560555805958883568326501622386146742567009798569314796394787958209330607588173484130069220691005261397770725678089066147905893525134809755621352677663528985939714162194756898753117829929877623093227497977984708445672907660047831434989231128771557005392830009759673444782742009535177419985523626630538840278857689511106244752345383873341225912968221625483005577147205803975522000922880467086416052546593394607753080709668835633203134527040225999137370533970377886279855398901245502182968207811839570648412990034272513398672911295096512534823114647482179586555574362853192701504471586484122577362596589119434575070395782814269235591623386058856087075376313658890140674462677071270376869866958293444774088950513666023776203770292398730370238360657143121005200846781637772916410754120293820611250347704481465218792828256323451787875621461083605708996600247993726670447425065013626877874288122565811740648399426448685853108649300686349804123419107220328347884669558154530297287090246974083473292164241826190941137715314815363231328521553124826945970223603646645288190101905880462969921756114748362582543495727730856897718270804590520963900006483848731584232433239415881321398931909334551951268023041136598041073724992885950033656972518248959471945273150141248982152936166933270438759231583096361162142883459696449516835275049675284648198246357837452166455660420102667742371488246763307797724727377083197677828600487326158660011266937861950778521988818437178893690616922802396295568188879758650874919666749341284537722134703275762101676348321547075449163153251339989041990933990334412334033569575526634608078500626257189994280331611423938736568357063929848526362523317881449838520061032675542461584180420173963535852486913266957388136760476830373945336451250408232369914123327392330031191529267832328155927336426981616563644738824430350990562387111697267623469350267831112415477549813912712844023850102077758985103800853518687128896079529452294924813825376665839988355127712765645083099199111134544098119647540388798365653013076394988297545503732455369076917085385955642760671690689999206785825946839793829249907235640167909341537497740125595932479999904457399295669419611686985108158369996891171792992730107510227064171928743376480890374129737449171288955246561307236070026595590887874318344026289078775831161970814184138555225648349845773306833630872312779158289939626682572116128501178705134309976133938915985713030697568443156915427706854861897000999978254651132031783327175065093081288988716265638520031099953452338912320552468826095810532935790256112581877215369226699833705996527080316923615599113699035949451653371995614043758528062230322957251651988009581231439225233955553388999017973855785290823612361918692299167356657082239647940150389777578348405879182372516088383815086701859639451884008241359169002353621200517470691567100958078158040597220142895304906085629304168780989600410114067184424764755884652094993161895835374772329712904765533186026974291578843531822737456224591834715380581963089179816845647124630625939302228576150430371825950335487392714150425725825426465352908294398177363039222136306541239173662530230607100078832803629712915394822046393692893141973773314133127951800849409735649144059199761458227946594157295888160572069203332753518562780030850890259669124759776966032062267180445258885104198618983712036299057798741828083659295109009932005542805336149493102004148864082770879818709182238010087054140945997961850938448409196252475533370100613793059734676769574952246585670885796348823283977414331012202690781313526057804143474372479570328668654599305285222210766471715908340980703909715144466032532210162607385799256992195596482662966210995598896995307020742821864120307650768099000332073060869259046903200072173558716707963473992678488283108352517390647877387275821623294299627148615437882484282185166705692907327712692480355289656729807424539835112006703012269719911926051330084258455945154244934165026809857229085809830483992533610067687435321094515931391684704177947446581000441695120056020626611812831489189792166378039071310499853958327412062137706323229826823097593962352484298614362226045923937353498536050297467952420371462684389226959950154909361710279195168719250751142808883786698506843846835355790461186266029173462164027120809890778601176166619997525307599580931333493935708662875134682669060145622132375056854682989576387343688684203052907920057924587935411697023009860188066636031171717480283511210381601512962635269735368581310086441004222731673543756551382384482333172850538746881977317396396450414152829628017437557351603052865235172670562275209417155034460815715996712267873757362784533387223010977805705899298638115120652466363230945771773015047521166070957771900617779683442605715314722648603956090219071004889560061535692280706127279892903355453801865632447414908142718119856700095959983825121209076663711738732810542812857841548728638148969421610889760724858176542363089022828600102462891280302994378374059494206836487075501333804989987702662604895039171130040446307497921934390976772263681027818635167048113676649143054649789617769125877361378705414763677080944304251509132890864886361390902172866224748462954843799247325738384952994965809839505932708734027437855591380158865839136273984243171447536993664811170445929785798891996783763963199983409994476569981682188832266615278405472288871579022754502447242395463509384046648173494874388608007585458131230686125834679477199643569132413785653389192257149018726244844089962580418733393646687608697941228880542320612893689412265374870501709437589990959233578890721309841814315975457984075867273508340829774373494169217906392202615174550989289034295992972603881012570962100933152180270010135215906182157184953828233557655022647455908189322859786622202099100740424631919126643315282198982175805653471010348979320876942042888242005468068798295874786183525763372044746265593130635859028905793256688693419987414324133924667682275410191576765284642482080927218360121999732464319103816751805844893853700166096806944121413966485128471065016581254785133593599903116803010453502239847143372194108476726965464925489652876565725306590758346583884971734743584146055458917941501382755999386332734553675523722583123733174711100536056260284795805236752405015280016903541349215334085002409113412534750699064423886501641295434378744673938167781373746961084091893356012181374156695269190953368853846914172559111461778845983270220649944990325839631150728241383018525176811379761872806195864339795285459083073460522868733198109915663743177670939033214367731904402844457089033166147409634997497314904588644568416829663779032657209430912970774197695646488397801905023181518321450704745592975775105465584519937915994001446097002903086621374371903972429853872383663590566570493150218594268312143663557346815090000559665442298875177902385199156488354453120648235984274545177643359605326185223850266774592000465891056841838504958620804760581005202406575692516141469496812703034328650088288434089704883599135553929283281307643606748073599356032802616952200087921327533030125251259719433134783099540332132239552741143684856529384713803197179487127523018400918032599130942693007147729709532519746431458576732863712617153493204244564504306895425358263995574576845450585485486808776348352417239926678494523308935894532222386791173043142281875843370537716803874045521975367738433644070016304553115001155465596497430962586106523637321696865329433549877875711172174547175336850091562816473537295206795777602727608915362180057514720262012731404814388159738622289765922811616012510328765469100923017924734895007580221662010957342548768813681083823973484688694804909343381418367721321526501023281253415277387576314615189508897975686288881338063157437841820321920826596513761016751051145329216565868272446235698599169802772625107284519380083517756664136288996669070624560810733825260253122252695680125565358596280130707692533245808484774785040091031864126259628530399686680212470663922089667179461946961412563894878389633586279140911503413771167954289096281177503056654179874655375528271715441092163705754818631584682580445691825056140491255944370132611091452376594790552409424424470905869535397832826307149077949563457594520925379071469401007021785488421525044211033021176658697060914336367925226258122746859491365662059654827263807372073704664210247731161958937779105198418045289701523824486588213150356067531700483531410027734641683732844515914273136641973375714149393739703193875857453724543514476464083556094791671538127975330416387525964789310463928389568583277443207205949012263474162132358019762307004984616341494247189865881178465881457595518609660208434438600019236088768411706295103013491467425741295187374089202928111721210228559948925299380969931419686300313621025245517104000994577737670833554410955621172636712166973841185543173099323701179484025079918591840979272003245436122615169037485345300834229337949746294463668893442789916643192844720072050332254841206625915962278045178096431895036564259922703173975672369223900401287194295647813171178021954747392660525622441775178128017142624093920049956042859037612311262211528876180231098930018068424912949603637190189593461938964608896351775146147282533728823661340656366471960309431696874056833058133239867593072708327754787416437815337444251152060433899099180648367857772325094147943200888155380610347642542977301438623802350169533462757462311581847772949283564661239573379962137916600434968471295266109174152973160465965774255363331048583034484926142645945870752589637047008856992699953891505829837279563940466321795164853069610786720150695274488170462186575950048244190754070096732734052989785140021654485533281987753989069333114342015051769282484875906003150502915879770274286405839776215643209568103791862956085398045455535358105789976553770901326825305348699715487046832617624452292706822091448614871766811242775216863599137020705849099353275599890163618642371600911934685782872158653926275830134571919018195461379756751526487508712544450030297020360851149571261236587511954149886113139046388827218890900803642259796603752546166512382736712917088999082028543366567185794516381189032068424225510898047193753433753595857100253633028419247970770084470264303780130841289832464932543338620450548540651942898732330795045518170207684755535102162802837162803063514318232964403136478070522146757045121301486486536046246896008205866412758109088548677909156321188447929249305861257610108765883479032613647042359509945060740987759260790079723909924560432582365620989130068049190588504688849652878151662229256437324239533087926485556166662282479701156813871466208391939628745523483276404299282901299370477429190981883454782189347209426800859747976576093203096779069349484753606384141816788227129663370043411038197667169957207919381052250498847157789709300847638185811233719408255232227240420279106116032564910726873955384717743349060698786545171184179865015852400193264797597061896881071556556996161275137562495814774572446278826391997180954107347080452761996628050995344225429138669519538072866982387547420967576516466563090876870981567871679705873696545456443728041953473195963072366036444851100148468818276210854161361531581050190764093469598414973517337675202782729835581938344522801425817682634320196285701892812403762756764137615267763319475868622435048925477377050621129932120979362725929251226654839482260759993834688744887745382465776854114313660822017916010644270158954905689117847889691196246484642961086222780521806475640253211761832830430572851457953759787716009469903920578764957056674519295412820420154864311040766953148261658893604583450116481996248597049747643687922833077039081601893893457849540881821482712332766824830314327608925469659361246195829226090984807113610026083242762888127775230342318457036767186463360587579594571757504479013767622871120730917575343279496016725305025313945176562223333738134322482811712029073401828630890803001768805308661755445019749828032148493515866993011178143347663810399529034028886298025023905198814530616844493214366785648606714915632724986096403725048165718445111308023231730439921952953172235562749908011994420894739427150339011046873947077365637315918911170739728335809252413983986532668823030426487214531514792582815866069326909387802484381287583247022276091060478618746154771622116360979191429725845233125723620703101867728140451896766222283727122717183723492776802136692673605026261239850574789116212696167129501645332039257781362658285685398499282413383217830361972426332331010811484424758269655838196803745617117906015874887631281285485968412795559177592892088321203608129177793691872799014182328783027608842541139366418367537807712040848558943004902651078021671908475440839045951654901066470709865961669840724902942084341421047180680290790717821505920019998596150944214162593032406575747462955677661948782938706749213575343948422794228098520343244363214364036933050366389927909037413190490405530702158956299459121810125983544751318378553620507800963004500187352359970022122597736355913262910253245178124550619225165324937356701020221348428768554694150219771558457536271038331938627433266936637015758855178856409360225576348080929934840965108875647729802605825593573710267918730858833433046521919865796940355477656710639100980383457777097185771038212540469171023749927274770078001297830808231645368774289108234749136920591559126324437923139963484688312812559766428180668780132663131843356450864222034025215956183612483068084049207422005115343371662911306819461899653476205928980324949868476988131918897258897901272132034406768839911977607658104085644313740449984645560582263578531012215097215175846033142801047097768908759677201903289855788717024872105026993416268974807249215106572740725759233539482985274036572127845849978205971509000351651587665945618233095665844938930630165268777972581617890702067956619031947378851063589616930412651633384636387380933821530202203175541833811901580432907833583047919812614325747003804379036579329232501436553734245551832359994642451422618275699609139429141576781226856459270650363451571630412383768741483634116866847666786462127437222565617852836224907276090131211283644808170103660814925218272095968152103662300975914387946968495005207427141315937974407971781943702487475715462573856117109084493872049176289461038196890563854716082654015288150594957878495154863625416937543710814908991857737721939329336539670503773091376003766481281304180630533547682357400999070928551968829510853265543199308114659009073525128007422081076821089071960541015508266473899953701053658558172184172346464930179188429681225391162880518543009907518879114065922700968212103045803675368996907909247391202924200045140473401537329391262502209212054511183922945510886635664714403091737733938283455026422320344901452710043933747522587913841085646956308550735769971558225258470508713862447849985617777219190437141943141399448667826588972748763707370571008853410008666866554765787800385867460114298239366178718120540290621103706391551190537083263551217289323129393087174768275741100352106137147169507228672790549896529218638239777405752854415571286632883512059801331115404591447786572028393060873981273084419342323870695017640101121820410170923613228880810844033412433131993469261433301137748595969771605127376922673491959457571809666781164727138517246245700221996592127808395145665018554477947392461633818487753954321013299596184916239366572047981547305649862042034084229474970006598515729573673619127068872130790405541878998808835486698204043880762089725555792681407221202973661728290893763057418383018291791235134259662679951290318158477289990609258716071802885096827543541838449982583829823760374101274654480792164874504742519505073903731745553116330333709269275047491996434237683598207241959852846772652358358496516804595109013528416995982504186308045860841246384922619837823003971615316767777353927561803471681485982935253161909078298811872920048765452473725590981007010236435288318509932702298526452865276225184229454344596667432416233456712535682176357627638142535532994348605809274195275122535315824578218130645651291149445606476044453324873078619637914316310637942426779558759900402667115274194199973718768529969386246071652707223176006698300875315399074849543228883510623532438496720135358031149550180434757180074096608272796315287838631494540414680775663116149323623983118925120622632879003524383034174045816166880051764283404409796694412095495269216179606031950147156315152928734448627397960052866086296397069454354706569427599354518519102334037387521348252709846799794423064978360322834808450474921668518944370551303784410837090455292523478198162300637240965394951023980223290969450338020038400255873879049362107895032614973268327220570354520553396967880839635777713383511044885357901350941014747099237543248961476606581352886647341037905496016752177225666174419136436305471511135706828128520050622942547738204492766654477222520044305735104554797774216617724394564163731322066841601415021829100173921069075964189977567151997930713975529434905279745417874774244586741672651196582933487218288029912079832126362328602612553138438083256173872322315787988245979758714332015370853839828003672119452370881261428400314643118329958812805077915456442307513641189292901175191926869431369833074959547349564460014727651657106474216353873107629555052762432432852477582539794163269056821684322418404838344266269792210310129270330536776175812615178385512624961904218709116878149266736655346675654556265477762259450550067119503000734162291816389136023125727309290338432189038398562761560768884115223890020881284501708187674935665591339730007749491392262218661541723073505450030335874172338481018291608232806828813894062596705022745479946008249224665351132093065813114415111527087459116193900254793791986171541229737041966758943463063624726964239659190489264339498607319248097119600504447366218258350672724661150650468667028755389659048573712524234402677072690096162533581290804747332914913591374913968373056517505374773188236437232160714789082297716439758338055953313562487816353305933296868218937533513852857061521572511447655150558834064677877716206936505832148233829923300200751089885078581673670795004085628536346847327080576989371148008886568220759562249324055435407389775614558801741769920989453412573640732929851167246620113009338245627018121185455138910122886370255143140606616938872451101102197543456103495433156414256039768167994291949143650686839365749092936685952106937734673955766768278322637957986927580844923535286240834829422556963521900146278508099556766557465915449167694399491415167673676917428184089096381093441791705656310016001693254120621051174630998195979860811350495611328573467095939483402535417837075427025529859745882089922337547899599028488466854746017392854554891009419119340873546556510567820087216876247642172736120990066749439701785157407427027571875479513208341279924192814545643841172059731652191088280333380332862355013063990886232710723682415128499574268756675487512757525338784135972945716430548079172992224120023525497542216384998901325287779908605032231300701695693089839164635926329381977201179961029950673232644085059942692817375334808407985954105248144033785090739928013720325076254336243794646786863162202856580901815529026776033276197574278209567958585091262183321540107895781358995515978285205066110928778581022606941431641703593246565852823696872171104361912292493748851116833065792792926756748418816550386816148830026755287731249233219246905483949414569496626013781753422206058659564240917321506806862759013220415255476933518437842554902872970579285121670375685502732054805985720831945802487010281702273820517713363044946589255934717074221280674827626402831365681843106078193214425892611412130257628174771537745408416155460986126002982806218614730212797032242666515465803504725567532050784238540512633734391173108987933746635208569433679466915036905163057980969041501337269798194294791508955933195239807022388715277947479084428747690160265653984661196210503727712617260544703302750010438809126823173837293694756797424900284206556829704006152459047495131221342042145187353866192184172626277133680207995009420909312842835167236599745205764826259493252128643273995107775331293144374236481288297867652233602503876856647305379683637145358791955928694139401599783443021833875808612348381448391916176568593836385729812847643015473636270779634979711252591178153191784660078161671189473685091342677329748644326537374260813366320823996813119061458064090775929378919833895813715831489188798454244265392014597499122539003571661538189813936730400079086970497260114072291960653749672252844959472171350692458471252880818055965789678114151847801815499958475335861324794387737931488593012122265393522424746172468080302472482074385851741829270446430280023162823198361362311614508899991836738830047566085855729944753566402671943838524156842531457160306492620609717084468568150428218311541848093748788554097482423764593128526215392335995682388736095909163612112991996941774454338281672058113316306339554338967982598204923423603817882645981482638469319840724419988499675820185804576159332981741313076327920329838691790656794957503747236249753087570747589304197582366034028872732856594740533358427957204684524139779697904740083149708774071500966515153951827429243231353725665683941536586823146804311222716093984572834436256958093064367915534913145886837256467893969490787660522849938706852229475203076886865948967122375464649709159460217880449794633654593779225579184805244503695720141240957494549903654157166418354260472258077100065612663681040019486631125312846923047675280770621132933361138399692292247969950863908640801834056618828649300931515648626559661406510798046980662631166052806651776531223623107610182084969031439368017474774821201637129431942832098401514494784593386111726921045370729415737129970820763598096090905682904842129713133131131279305171475591774586451859567560542141540585347369948114376880400232698072518015850123495548127310261029982316830725681473497722142895682397593944652564998501768463258593283891029024025777994485328573975500184612796885343148426119370488686634027475545384664015431916319798948975420860196523108735734744981520330125114575342914167093177640110630946021415062889220663848861662324458758308779288913365066403030973156895924377027668876526388156514829646807194748775163053705613850077543812861303231842999929642212955857832748569548923788809814033989714485058075569661233545396077798395083863290091914035906748808749857201138108685510393598353925391411053908648995250435928011717684055899533512027409078134932818030845953112078579451386493792763096390904721066942815824495546555511363798268189779245534425747417720144404007229919754489262361611435074750696265634165577190011445343620916337418149450185330237116202430169786900100411402121108411969320332926156709542835936804662983788115185595771368317116792097907237768911387842497800967206190686782232331198256119807015152462749031694869797109992996878011897945259815123821696252508367718272221542622690232430305730467336254563527882529541029198589925200767345638456644158972133650874997760713427309597881922294861492891815732834293488292289671473801751078142466563908298174793220087574111696611858089122548268502781087777607697914359494967754378476897229482942076681509078302692891695791241272561581976978890377123866613115853974925881261589856452298825772602731642200704399821363187654594502633068919045351228517417173467417950898911703660357902234965547730284644111703535674554128232979644816609489846098871044007090187150640586069343284384972730564968296267404049940033451318258389172118237519859518129682391805548520676693485800986998958976061789078766733295162415166471878617205305409517555179863038253618841561597939720039076295884102546617702970718585605145776449107542758764245146951066922684423418249266654415137600153322350557370718294729112392055242741479559977350106465851695261751905166531071887254523678331223854039875714182716099526212201143131955698104401735606095117263647214083242033107070216394185062260869718999908054160645527242487658012699370353806202566072491877455522738471611716996099161328357518267243347333118306722325249219176800979420554957444165603042483503268407809657666682719426650080165949373253128092204869989667787926339524763876081229849313218500811890285295465975260989878559185951421688279311107541024571562003808112430951711244549498107658524091256160459586416316341434812232125936268187660034041341463379641086298439916340307014679225320806740631877600811637180470194693790518034731403527522884602054026710914085637607581721498333559776851899488117927019552771440844938021257098285181821894459793741663384324176773601574885761639381891722314578963154153767840809860180601012533809193629349699043706245782237588097921461550454548221464002419209567097343222804494718890753125458382606192070585954456474336938693515626817757474769518470849865749203831932886014141546782210782816303516390236185280159200569124283336535072195786148106597505430195093296794431373088332173354404089493226214262485124988562184167559885831914666900923347454175370467296321578853616577741848426260853779460927052789324924610137152951420913381961586252490652554125020155368559659059528561285175164643988745060385299183482057341111962844479449499460211578136883025134033159722816323412831081189131931445701527365806099703153346390157605735116170832323557517590711094900962344658832925917158346735265888032770551134268026703795038339279153994723772272609993735670736915695047493039742539419214620465561968933390265349807849105099285986912918495296312436635438246447769703244700856806829175333796715370546543627228330673389872890285194158726894825555880651613494749430153464588097928050889643149489912097084480221223101402649795344382967088904668652225266077688249088783732728533542040710605872482613703712719236687818552129259848770782410558267066963336426928152363168787244729676806336411926356881825791967629948359006591669969183872761395687447490141218938672696538843981133032751077808730277683733226959497995038117445589742335573174805944074579244558822604703511769180676995991861980717303925634213168512598747447009206861183696980518804919501524784513426097828011119772690586180715478619584460888775425461362703301446284199463918207943636968107040426487738220114154449940016312825694981990741674212817522191032718237912782147399951124890099332861136010708234079705711965545943266408466025645860236854682340565212020730341694605970933468030868045736994660266878508268753111303570915576099303930888941205130093503691958436135905953041564451403069406885438725447580751363937541650044850223554222612340036925443444146524618941713464862477931046108028224386418404469169172139245258102458185368232635217570708751584065585117858857684925331982070674639592463348966697374256064491752885182590123358819721097491767280721818540294483156164686984149135635672970076166536111768058588266344340338674530157273209364982887345340948166050909227359321160154909254476315520663235060303983834189488220223884020455626044762366780296605468527120212575208142598212282391536084639809405927314670498464786732912414217257104230936717818383869456710853753183843214850566696510674632742536276008663122177497482795159843420114553891377107524472209951909644281588764585725265713053250425711136847121815437723717277338967830641322231435980829698691443436275733816406348527050668458351574198659504740380810848592792085403239679313031907695398337401977407311938331528945611184652610946296486536313503947915394063387227810825326754201565043632275570659559846642963945470403840875111273574357385020751004942861546029972918862989702950088748452016609347247388146720200769094539393449610523934203114428345275632941105510094214538533928729923998543092634344826845315476959653131997321886219130969435137119344748674051160636240847552777405767079224631993251354957432206556774703867154145556883801309336013852181972619179921822516567173572985154869404814000629777328166388652624723114949048370603980845149154802229103531743272419764904502841720493581330804239833800056292101612227352516008582497465026451728557870285442662984479970955141117270219488290962235047997568874636605731020768215797657299072433947198503296006699089265927361285260273143653262952710828423561351108565986935153136908378568980325987394496245808141313205745018974125548546320042000183744972443601737572283647236512842399999229941914880450506334507233864387549547280151585171160632779449510590509760243923088232577895347015242794660108485134695089921429628626353743593641954821193513899734617647125491157165876064315274245377493122699964366457194609544993742727529975930517890591239683079363677165735021897298092770294708171895565679144904238769181470190420992763503452781795669974120903784747104115313647073953546481943692840829843748804787181645928778540754752566498130589559947719001121348798939122360462020436257974832972406997458522656114724947926995824464580113220219292804977623233797230661677197361031590432536993240468642253547856694375061850829730406505163679727508085895945657618462567362693365264664273359701960704850643403056991633671775471055505483901821162143112234244625356738415689333859298497632649393285303488242079993706363802886265421930730430042985681517135666111141040858981913023557621195511218093745422750667134049538817965737434753060446759304964813091902235259806956035528119885929152932226152504461700669763716350559852485840828076597426015520755729384649405456070064115044619463462328063503482356873682291774582091957165590211626599299787172327622672582929913563686836387502828631140082032748786788265290797541534753464167678430426428521936341893706084767131529911121792009914256559826787027079823551515465585011684079529942622798026728992932843114603130769739420587372553903053030604823914776233718500534695927278228190668724075413492249377004921579930355282687370407487900720750431246921299102709978397244053951474371735336537700463427799335614938701874112431056885163937566862888190285051582062293813389692349068404819084859337330478916246073328860547866286221184373120097920283945958770158611498970497388243975815322243418594586524556564181598080861736456446027901703780756486265055096119922580810045412581032595289769876902054076628154474013874907690920747290322425274890918739652860967069442921898939516501190891599231877414886266669111614038466449797122302688532185326248012386407167034887116110297259041312209037674648353331159416130770526977840021764427461364525169845660420601214707112855877706707680118719907644466834622301543581505004674500761608299427070148909198803571476732009647823048579560967486451329781779946863423507749561026975872668966929910115063082973798707516046125616122254543344977081549802464156502888445388459319356357180172178330677183020498645314593734182229147381418594486448486984770647063284566617323398304841219676569022106984105535513731219186676775913539478371439081603986162925605592530501603264802743928656097317407079885585057911880922808957661947649238123607717079101905571454863928828182110646312923055417630351718067956860305024198384499213523004346783818258206563846944749828913265020424939970927179611109993759775514646852284420402307260781339935022730594574075397579463369948336274446057413925769330459112113772022172238668517046556999901742133290357907112640295410469899962794718198194047602480635821194141236191880579689117848310151554190285112231021788083648000050490575939591107435412187530656934155897044310453646219107757751927759791883649169415305489162121605701004669788933345484487485750074002424223208500763942560583864087493495711541299164423326816161294910751530806886710745696605798544041708217900534491878458286613360188044616020716487771110285799108458321483724813393297694392807819931782615608602854362193848398486452111792193573489265473138190378197219381590591275492243222600100454782152011395162050605405086828252201442403683163349356466150049046760874778914374985094515210054933979292459273451282765345565442342162690496682194021600810817106135022961457115829581753634292597634373405074332743624184259144364741856681082496658887744080159668936943544532897869235949661349342397459189742474025105858084752936374085174486153020954434376987036598102581485917990302016010440219924205475727615124117473982753281174608456412160537388749306333678178363766990039475495254363148323612703444599343777580096995176024094462759106898970965423475001864932464043522201656883811119016565322036748946987338876478520797642744293652924418704322454582561072448274121096704539091822173468514209889877172829713921983955309237887581389797874311330313600646393130247698672268583165625714680619941665663516048119558162868808885719192748819350696582833674186389630126262559671850700677004631667186053160126034541613413949936676985474581656253167227595685198996248899825338997825319180500702890164680318500216833255265342163602600306938670900918226028330495529687246488558919562703561290619472642226129632294432699287667195636986674399077262435826860328625296902628668129674133715925018349437041633835899646324913232819452726396730527571082260068639410664182939490215482399817587566651005209511008075376211883390989117793931188039725714687514122354706094870308906176087151435702101745238068018982049060354030178645879753018809648265441827085032810739289859383889492139995468575237880755542383405738270496001292109820817446525255485966384506583045652060760427848458095943165052264568930024687964301785108791647693773665654790441089189416521060816566375683130965066496445144967034470998168071847145907700356435235325958543734182924760682897351875595980501540336603705784075603161462545833445015348989889375696373966687301574806283726029352825452618142180312375036653122303055469779526709626747787686842973067805775068750473964778146042543853993037716972564349797855655776451043584005058964379785944013781200334089224777231931169790078095786508049135618249948842053709390786731488320072340195950601838232023991134700373879557549898278918268001994722902911500860344321812235053995458126201083624976932691364684089064597005778794457547191576222761086880936873258699289873482445351772027137707124757822769998159740968467253491562625749310990840209055425285376392184832390077565359388146024831003541059950097574798039622526403688931405775863298402137790423180937386436474311532218468122487680501986608049324178497486358952258181483525388041139271104096580225037239151865194374019209146656115358079154022232010201208056806555941634465924952878296159451918762094845981637091778884636542656771324785925512623663927264745223953052137066835159341057029155403106377647413878977101311072554776955517581590256784477303771881679515432069494122457489401670700869846405865597314397396403882587073091210945704061468693496466819727140788469853432512202511900582692638463470633693303691510598181870606668442898520711034447845461402686928578193225630921141983963828062501098696220986134995214478211309263901493040292196123811078096246463813751601995787265296000436436315018375626642432639111660048176914407547215607226784793395890806343048307523923314842844383333771250779467320080621245636309244290360939476267027453497547495949156189592889022034648657108258776432510866837258759219519087210742022939914094062687072647632701795311559338953240716333323456826244072699036266504446368712734631451493177758467813560982279232188897082515561123288280601341025262328097284313364277569810208315017591067711494340160867862959147234809581245433348463909786709570500961837500156506865042583975522841472474300204591976425707053609355929168659760423853196851020737483247316685149306554141312475234593409230252185108937481777038063811810414879655292185299934053937362464137605746232677722042592678751271507666679088865436952223775531055194556498757571590044745009992630300513834517748664789100568976818157294942747188048652820336303987946811126789109019872892760040782895653272647724756675565339564451287900750224998817686403723285980448204181903181061506317727080210494570387710143951546485614397510343493233911935632820474003877254985651671570822466265383462426726414991225874956932292967162578038481453580048118323687922633783455433622666402525627549500760841254673616901030553646037624389360836920996590418343915858856096797198435657907266882278202771939244680881211832381699103417973607044339634299813843288713903638198355629789419221430674669206370599302516574486718132581532853925939740183102624298181510824140810611675769700810291049764653183324463180887548038866171954130564584266837626395879024703693321787926725413045990603109413887168673960870751366082127465211760229465084095493951306505369937916387486358977829143646166142735373505475201168816752797485990379705891672574543904203471174306032620178460605089528723483553642304702241801382651037415391527144205693939982885886328250020082447124729611595277709890740249282451152880835796829181657590669099154018282895460983308714661306434140250393928150652375295663534349132977742955678609440787752564529415099723511795397717407944000981876160814517853655931356317081936953097012827479479535077262078732760525178227273171391712230418029033905609454396891350965122071356111376977001381051928857328187160327792289830861625872027685758800935349254243503122846460157336498194102219569144013387722872046028502711023003594984896347361978977436619348137531498841832946876722696233488484406961409920094111433744051230320170648465153335501230248887563616775297066306295623951243764084001273493886435911396501324504803803783017270248301336451763136879836656768762696786307147996029156168726691362996450740393489859995322418085036097566635209264644335571446726884144325440538023768928588482561598799302721657151461170710764410648428316837641478450344862981215507019757166114346104073641725617996098257412999083617608852171020163415567857891773020030175631410751432559136773921075472051533717132093667932605166743876923428047606781534519683743902026189102288749219833064757670524218061199319396069180537259096457711850786647242632986672998802820026180912252566504183581070049628665354367911732339587355982747616102782637850762439774368981538135734051758706116393268883880427572223642956874984368460703641379052108829420931617759150433529166118265296549028043583755204358221317201266836390968822818249916310956813340846565615246013800539271539410024729755528498891379476629536382494694715287113694582407158457203785674704835939340712755582334612706776771585039775725062214625439622045308334974298930824994884788525831706995672137113006789389612259582646292763103617909958910749078400360285651072655933469868901240888008387436410778353739616456883234516329755422328573131791237190793958193612662591689757846665599972370735285100839853374761750031150716162385682430899438522288771453220323728637771743123304961270091476732997386897103885026301432990751614814269740951151532887840982315930690669080056035664598630464285583256380960781275615888044072549782193703247209997628584499167855219595463607090694456510747332862094088455917041609002339081826204388815500395820289955050494736548130572742707810855772517571375472784362837913070798033116342446283177876251298667092311748918113604999909324389227862490441142186145337794701290634153620884365451648729088269544663915636388534025082301284813262333144822143198505150503707806827751251271576537677749187282640454886910015480457222744655653481358538139936157899776714368731747060071670137761190272291779125519239423040238656240356089141889632854289472953335681887502810508559800314444592264621722886133985344575659145771589204938156101039491255204666513372989532334393983728667392499396947696030971112865357315160038121791840148747543750644557520560509092284843851947666783342184160767431052523511992174064559613652578813330972015287463012793151518062406095033046679405726399219322128537140021979013915594537946593766852200008740145478222882034727833202572691199663120062388363620264780781470401260198284581560110734234452513126516648517228040584551698555565195636343808109349540263423806689789173842175169159579199160780453728294867057596455722958021093400255548307554469512149043809383460104078464484365570527227748168661400079796200308613140520017059640533799279000327809076769279105143218608871905652912747482497579729394614617029198554707675757257907492985648378578335777938005497666045884096234257184985572378626080073195100609032803987043955153759686462930085589991626818432559669488738753712654292706114797602425073921012391727025730861567593242978192257001231560287380455316972518652931697715483799726750450488320578394627378456130315425527593660779549583178318130729350518870051404550860868797024324894396205137746301887240464496459150586952534674420176167333941075184187755293054668048405872904593968076277787648546024131135499546350350059833488556442141082536756902756985252015071699077961131727801651480570641475353091240663984216213707531119211344665627545621352929777250975388279733617975454631764315507660808798337331409194249559514561460691395000036283138527373573700283693537572554929817781273034561106399480107709163563706283606500331049199923420002817825029039389878223518208215417955751439450947393954601981619558093289493918141969570213845557421787466082222653937584714262930725856137483888152772434124105006910562936847402055751394888630860316651842919109032499775089419263590817605908782409781811599791832842231213047192233326397117956719161129557672636701278832196001760996632432640258453138501805800250808956495990889928897638777609464445862462350116457405917590268694369281893336173556800528845776675265264495400276275437456208395216967385259443309872824505826411337929142087357128442044877708054462385426456450799850079519757849566339336118738948331738006956871662071240769432228595344009253781452555098029697009452498102392932161940870976029381415312715675420234958474915170583453527817002022851408795800817809032870923526150365616451281730698535102716432780165464029940192630607360406891288720554862816344703136192349839852661031129226724183816434978670080415324474463199036742569681853432759914664541273815914038967517446277321414899795762225829859225502505188285723850281556459906804867153972348081121446002800476836969320210003128843283377885092247955101182898087526329907551150665061143342236249184719303952012088249486918377873040677124345205467525932553971607316458799871706418411030007104423360300330067443531870705670962773967946334521348938691119352742892084554077397399097376568380653553613906769156055378257999481202857007170586787139923443430156974277969436438956732255922907335136782099576879576645027158322764535888598087355858820332723587670850986035541801757718354022111555003317954945570123811978803782297258578515105217957784713090656772839153901682740841816170283332497789169721681449111881900241558862034187068575863754945858820643411720653934471969671343563107903648394977742166817319494513551817509901064778017945426402933538379203488411777468907398388589566396161673037951359161221383188116794769608597387518305767391900743704836028837277499423934861576068489906787603205737036556769627926980321740804567984367589830867184933530469381576870466815506583267583003868084771172242171693974859641625264757939178077209834140566286703418154528518111932960964584253300780511931915487763571490001550516508065534023793054064622708250786786863257173571356650269496445454046334445965004813419263219816743033577779055761879192561750866211729893562915513447817337262782258907922999833556748101508142150969256573328447225164458791909521303536653964136548866888666459143161101240645330405648925867373504643966044979600190069103504355533786340206992726021213971789162474535396223708101186176957920875196253383219237723001676682109350198734276298163541508757473732536520501804017972016238478331131225250131476583396383600246423412279410565364333424412922434000405600212309730516515557058857354500987941531056023090488601106405559478520216840078596915717543788586121211584807857069978761538786686407225551239393514234395981690567534847495267763287082656390485771310602551181520547661547063347778903388217098035184868565855319976443140695856756082635083108287900576934811458052866410108832973417120414733573730201529219770953219828690299457376948503873551801685323765471917934949385231186416984073178472644005543641712897638745181835621321583221303738004133310286095703990736578892553158607441883151766990991916191738471313476063938422018467791379725220214650338712272601482863148558148110204450464573193732187886842134815960285341424758678272182732947571665003658755111466660328963120366749834263395636374693691220115796449558353067664394512837459273206688192540570198162260952851197813731802199229895653300949705353065761365991670631572740054249741562721757899975093411246175512864060380832950555793722370341326787405262217255855857350531085768273420170904083794262399934011302592619859860082749281890947005307662336429904783489182599972974090708619144275251084897191026586080001433968453283637241834835572754506579413095502363060593911560801205601471630300919386739538073942895977196698395390204704398782949431845507916521042535560988948474864828790559836337420983568194270424890609232348470552892725734644057841829275259370366221474370705668184319470857444953802967419329198377651681691659277440753629097332746390724116796973353709547353345380404855832840952353257373289223465362944537544271798594755424064979743409764157959996369741215758240862403231223105454818786274039775525294241063018550074435851918952722935833127287173418054689738553170697630323453774413315886021752513325898801150825897102681880989778932133719517991590916859623989882150445000283774246466344404419400012350159462859293765248967888854389460266740209574691477540753986192700981015631560650342696909422496447179675231901649472623128984908525458686215088876637417011140215959525757037474195622941024565959223714231770265890916814514945703681433813116708066608257584110774272135324301100681303365111409141872739421572932254581961056532714637969684364231724714550325293784082427567245149140757440007635919943262034201187674698951557143005864722202254593506872645974951959963736932946382607092708199192706808146480881020662462213789301382949685506050051029812464632512468741503612688263197690465156499881969107528493946005514115738814129088340097488916710618316457350883992921829478940046144087772211982222117950544683726610291684147109739785779375068670547931902384976600802187149126869179156388225213237866206249035130220563402197139624542480789614390714252398554717212721446171670694420406823682216098074162466689497395604077674208402151487537789150052494693208500830602629100419153353353117760915216786247112088567479949002994125870889773859066181941500839147469696469534280912695049401971947060765649490208183499535633539231847020490321763205831890084513513294469917910338562075319333273470591612668113687105042921060370175590094252009169849198175213764048067646737486711676674291599572104412745873505487746127156745041032180125466038463247900282361989800231998800324483654632186165109136861969028614341296452326078790347335014964985885254528951093168849272350469687647520891457138112490557311505881711035446524462162958620422645141282828066649505732734050703586310892754711035567129239649955717472602190969831313711016313787921368220954933677027280680170927489651107384734273206097839598804121239720309480714111636513143459200067142438168575711889518885872995539255909507585367720903143320207540033103414949037098102557380036258946151560579153253585944657840527151795619496066156258093393845435805783761658121552411272826883492312162551936822953546404658783207137384285980534666758281090823695927744610739315520492348480572913717285478768837505946456229051076149758319526657374211142615086879373875957587177260379774549383992740144354635413538060280425232957463235849026984971954502809782029864800886774849506127762614817325031561206986382748785802522300489088373654448471895407799966480249269944835070856238587559146210820121977471522006755354800648214195679192114437158112969328299767437742440112061614507162156269240932336372679977893305683293453516031957574297540388182427477014253235807673848821453791118192781978418827179356780576232818842546800504850107250600690499496678825793628492117609588872074142787810332648578917746539692082392374410416041267293165889024079381218234726353843158586953044769776627441893189766547385928004926428636076095556491540249013833620698834770955751179158311200144969483356304602484432073354011725085859579691975579967868458448707939462038524916287647255720665688928916610200351903622982932711642938943327593073213325682090976449837136743409482457513868053364420147770996599832149052389464790150038141185188459748891799097913631600458130072806316885302477747952390824650974443415047392393688354652169426510194199233063510877896681038858241665342269159371270084270170579434925493179108106331254570940438833699792143228799214625498657035391221667185462325276663137909693716676970985553538496196717686913042811367183220900464632265654399499312597469194795117217322179293663764435986486396212085199923533449108920999708691702925677253383330063715195991487911304979853197022413400928918914375967010943013797770065122939784585194436509854259902094195903512336142988296985598082319549974300798561991613866137094696616248641334007059842916706803216106397949331538857477270242502301200832066668214999681421275123324267133517908034745111761145757089123291603905545901503195386175393282272423999139396611804688931522707466719705565286570260160202504891176446010729016608583058725839702180804168950716254320797365230920104941646374446727393676405680708083553561344704649635039738683650133200948456183235524519390743407932997435932703233927258959387617813093867333369162959097122017970318299225353114131060595958617226036280891318246505704491603256583343745217042974930319193929706484958083475222347451099532577747083521484903644330981132622213331587420480027614949915620287762821280999639083173212104528799916344063921348417068126319228353948926370501027219103148433651184062624356445280095277429256774725993139543092875282389442597841588647172455053954525778233383400275414231435107499632177371040190704855891109483138460124084232262107809834021975287588700269842822252935208248140619433392437557439026795109335595384753561844679340243958459796944390374332257711605452723109074410025629204521938573631056210956633374326448913916290407416053251125650008807854853404915177981066920798192134664651744932089795109189935182588801220872649737783981476765858528008252024559157039296299132785776957640289543739984227670631779744571559864601719916521687037504533428544589647771537935552118953037890593800556108665918698565011627030329837281746766124082994198051573433855988170640209963189022760084822329838141649574048759589460940921247099568954503820133881981004048291722840489063227393277855339508621204505890946831527849135856091330393281224889654393535349296044397662293918911414088615065625931728270731847425533287690649675267513596018796404439162159487481423976091214032021567355088206423639301875900888555315820375056784696993453059759081634048026316622550652850112896002026192467690067567376341777441561102084163436617076858920327810828260732377925343656320610049306669518336236905457967882817414360865579794675773954405508946232645454933552085707034171852347990693244965764219287079916259087596734551731536225366037936870320260466345886142288049237470618499479677056529759387447571654735528329600729257145180902660398803556707095811921454604572017833543254868107547870370438304158039386356649254732568499089547855124100620046948252541538174692700069310566977880028365816897905781817825152018504863365111923479081586010379005081560827994289785941867733474019628696976039210799364198024697154978783412126141605521668803757100016230423602131540782098949864363181555336612508383140461224325252175593292202647591058459381207914687050937751926639993457017412163770560148740340803624554325405957922319853200311191558502206047005289170119588234293901566124028392268312998198220192874077091296452043889858261103181175605260728469986452189719052526156382947920499399373246990291939577563725227828740261189586835954522927090366879999081303307585955852850793044119858839796827570147189425161547597303476285497665117286857409029941914826911138506385208916446224541279479404982086358150749542790176163429251665527162972679082077599512128883337190340970874451213252005804068492233755499803339320845786701157859773698547208400655041861253905913706557351116638105994110772978699155825170603414579777331496070814291667148133997661263788009997022836908655407221749074267470722207919401187783795575957281835039264761508107805621922806728790584273082764301946676394320676290681724806124110297182176641961694789596785602834077506504334230105335207804801519447969324228917730873636125700341599416870464517261397617936021534728229620281443395555139239476142708812985541799251500642111519565165847569693186178150131630848901607823988628918287701876164100207873926307872991654876106232071877914813288946287816575963298109220001424852463821166621454770371076400515431441920306868252479360112201907489604070622489273203786037434281724066987685412956914783647737886044011443424941422739625938586761929446598950080388272432853514622666066063616799002936229279912915550132321452548744179241522479435795450663699142683416553661920612399417604114327490493490768704181391299713745369139262035545578731768663532226017401773451322618431512841767487409472741637814312202615523946558066914884698526617792006828827843094308792706043160150195176852678524418348050144975763099872781874920575545607990254891627517443432854581950885069215484081076137989641271563890095221119392014218217396007408079696169192449715025259923788400525417981576116547052169931663218051622973892703216984756288393244133002794365696398411112410316372626176227620324116854523077535631771992930598440337379202014150866795051510877800562356753915780717992365982598112906228272198839712160810437292866339360325485636161559731461998698477446291023919374867298367261524541256434843966063301382330184158861392859609351693950228810136948165254183957052842488484481798800132893848640800087130381540325534551608742335363923574402598298008388306667382401315362326909022149132976823939095196794687338586643143671244102628416722104422527735295688618956753678698414754049234278283509107898894302071661963984419309567149728162974176863494768843837945933444781267201960077704157498072959091787134539849425323980122947975865893542154608255238278269647173595765340920073330333110053966045144067323807553856313334787770769463491545432012445712805230196755430880019235516167078394874611194678725019016976030338159030039956266147770209702560059509801903663583672544229066343408526671232009379873558574988722538059361280508348417999324447104455681176038454192991422719849430758410859746613448327187768847516764436051657490751452027586629068051594005083955968255229717079920118988275335751979904384698832993887002731912101543988978602870105725805310570246605951008765086052546885739996579942707046274738005377996289548806059025856127474685263883246120757290623367612634529778333314889651185514605032141444255699651530654432060420111880002896449464141896989460478983518885065531172914901978257809993436745269273358440623087439505203256399594965934342017286777445728892626803323843140748983825789200836428581407326372080455060182678954915890721288730165020042921972974169892892471856137874930891927469672512032626796572144170160524462413933546747835022399686575013124406512459182100325264264434162501564584357456936060607094240332842635232322882671175194730768144972652096183662657154122291104267119335833276778667020551541733324793538317745901896419709218336937555793677293895000036713825997008005197302526330025217676674460216945015867435361125831994063279845911094668975965093402732589784707350300346416011792090113647724317147418340275339898860169633347807073627469192390380087016308471348800885647960396094725843065379676365413585651970753776864842927256307798180283222608777486163616160235128072305614233839441377136278688348003121916856765889854168851894157853326405619053621053521790042634155232923035894593082603680199722649209707897862173493965375907238403848143730521590729249300433119200080656227041234032093537785183652288845771332674726650602217546759026178138219830465647342118800683422311093172069670899272805856192126398689328449334257630975080935322059088276058157728924546863471075425394148313372236420088500049421084983557763479913557256048906562239601483925754690605068842228436584360561628693184059571005540776432224324332472711664571026141069691190520524347766150857659113367857481209914369563894515074462837358521678613981856011761511616961598462134356523883008084184439406861999339649249305592634679120874694804923462482390718087781702530042166226792630207036924272334426433077204727579255016055263753309127138205356965876817074303211057768286164630469424081844119317732278288467603807764768747463255988435122057027198546281945308770922412163699072241454333135634813728374205289180202183913103508606271223247776671615353621333931930392276154132500103531328408348097362177301677828293637582616418475951175708002288249081568427679106984618304462794411091280582866207472434768487521468777063783201354053536108527455612937642463251576187979198438098855439670835531541369959259356294663264193035698487247742258095428352539382292352527682049099821591945828070310682872909629609063356798012281309571150970454351902357534345020233495428555103410104564157153486179697500740591909940091356917830904645446685416840011396794177646680922011984492320845998560869765704210918147563197650955248611037916829639529444437935414849349573952821763854770089712400021158738474018990457471058224042906922548518689636815135851709955153276958597977649796910701777208897074846858796438879024379357499072627184708380065122961307849809544611916497245559901030812568894917813628185823480579955114638478689851252701492990601360694172362407254062241360563317305359486916928072845047888682909726145193715443967284645279971216055885636125123216817871047770332172088658020376061378047355146201512334072703853514384437221405274581192029909872967836554009652245523714268396423945684692180542176393751989950203275022469486533369798833873255601860380148163599142911048424227971524200628204988718907549827219067190319817542028556461218668894026658875718022505544099049425362922103371580918489205799070202212908606921632134493684378314903811214295011494057271380911745142563197913469266144905125867135863178807805112386835736434670644529932103346108487219076787042469797300420268334972987422788217693835694605131691876093400453500418508274053774736623988344507375145367327048486382270919054318442161484605968748770473211375412147480336984960706940434141946912600252131466701077229382884948390106995781840629050565243473951648110475023863253072727932695691401816699517798645382432510642045002871092948868795161108426227278476637227585743638773068437106164794520792572438177146604540395517961868525065943265567453639992857151133864434380321828543043360432465381295802672653061464695365515114332600052747225311101916409135725507474030261834301706283816711452715353566908625957917852868521338394647891770855275520759668622342422329845380919461637598075745637124119093865311823617049389290998453213923069855480256798722521846433503206036230219080952613458331169405946530058685027307454075331158118513060244890402166093997803392967999561384856983169796618601506431001925512858796351780305190952803026849793934811986629199287727762833684412657109020926552061382291745881330428765994304828401006894100839311974381691967072279692904124505100805238941341849559279332913123697239691126956656196352228892352534355103160520999164702088751286446899268565670321908257360173186050480401081034198778435713995149884419138003829022107592535431346174485788303584296105374430323225215959084091918215382856062122171072398499499037946586966808589471940598248533111144617449730322745335071283270200101630303167019930357657641630275629758353973658433117560756887199182328383595822101283656460816476045610259863889684375593833392239295724323720307637891648768255468900659501706665596986343644993252502725279391141796815112573800565398058571413683270967569361343356236172441960807446455639386914278694024512583129813141049613173463243008873191069618603551385198971388682288614629578574012261138240914065319037386580715818587248917645821532845981608626745026575420363978483193762126935190613397923010964894760224117468305776704470335883485972933824986374126691071222931279851874086324379850449218115875081372639880291977727890906559397984483120838441579921364191681210509025131463588561973255899013758760399076705311922729764680200386454296112020725904070250568090319607435327037372822810808788608816335145304885771724010232148804809351522212987301031802930695488352242450342263325478441912563584246128921994788619024769473201762425724308832972231934813162225827901371055999399825756322525469702270357234639082669454276521712792988269333317304664732901363623217925228591806453174300205283077175803771802869755169855587675493442522816856436535353357849323222253425867778126553154358111343055696848091581608129674512351832959372032587101584964539829555903247525406237462678011857322132759195280836878830138936129855699827469158017564631862017438505455013161041139282459810998275106322328125203638857053375715138506658155157920929021475886513682266968691588321367173884100209387232486851869728751586065871200529989645499250044667292842117392847255738624152726200533251503387595631221554798572412664171632440182152700957844764566904010187437013133004094909916526815108304594302587619250149877698444265983227414221424706488637259272185940180898771868469740178508019129074785683626440185247148661699289901013040406641767258209803736599267652493826414743767322378098467950786819009765585229332592348115477954131990582609203330569623752678781623438611861311447399212109870528072237671847164994251291714165365049600249707073563408551989496949793062803577629531236313154089656568802053598899179024801663849555243579492546908333640452715085171550176590946325184131543183983961747623322882324153976061469571206738428138597743009214027856602878106591926445507217634026085389861212061770103964858101645111663168078319274804707257803191641394377892600318855232724415692505343414530419665438139290321318764795255227367050049724598013674211034247990602645191409393649054378263097746364236066593174986692840147069728793764198908970229795151130894477113610035041465303009942304574253984135337865049276365512353060381406974737997980331019519674852972589366714961519610546391081972857159114727900424825397494583815338787400845272418551927735731085219752355709971851181738977917534490988602614404553496379062850224393097635722477748780046208171819208210894678450223827760321533926619699169616497479896794163649045268567390961066204558232475909213831606045746455152633261989544862615565118909507960121140061827123201484190551675754467572408089779948668757768415129225500998291271430614311510372605667419906513202957387279365267356835404495385544748547642604746358343557450305785694343738203650151677096093870173676834440926802945322937358058332559838397263159997187249359208415947443304616676743041091855708704639176701760202655955071726830539950087395463323275600864838993341205420016009146580575821834146879291672210297040605998307657911930635249136046331600805867392452206758367099054661224673181369213334711921528728938122639743866718486662083073003019824338745241027953296499521352628285668684307010832594538369644830807498051781171852686966446610695198535463542003931337831490846707182353707461365100131681301919716362118959411147306448910650148439222097051235245473264830431051202098402501857648022275333448958657075606796197454675249537996599836361941783920562720799642358727358018490661948678897056970822107387432331617214133767622511324842603944116496185517691271996210062714997560728392720939443670177656887638318069906918302272854496070383962290493353947943414347034389801295659360832154582965179238947930651025084265576461524400670593101988129724084886069274552259006384492684068091322061016454492515556482560210434242329788262373223944458482236774582736194848630634602787205836406174145395473877431470222578648403599424131011011671409254236658937867949556344291025222850183047878880754931110122185880278238692033943807021630291616929876034769498438321044785552432769028765686597789815094351379974522899064853056383550615936052956029087379001423027843695693222911294084650316418114269435033678754947312698127957813855331668256821532795891382244696576681234438128611039329150971914637026617205821720216278124830489070262251254232929648820898037082561963661523482939042081208194930993934221384033447340190094222185281549827802318398757437370941816717817119646910039534924597816188862609691912864812412848993222000712917510117501989039401644324584999455975229711070508089646011764210346786399006877573965738871738151092226005504848429912747072931691136319388976804172085956716168759311324437750406969368342772527468681207183435841918374974555329163546619878565123329494338053547866610987333870239011024260905151143735982873825783614370235922443344953422234344658610059877359064966494173866128906264982330875928213002109254775241231802724319742638571458139918715672449033095527289506928050075009393132192414709978359557232493319882044890796046520467158734789758968450114219038442557081856359152948852621666533508887421485939905643128935861703339584448886271990406575704216499366414486139703013122357204904936745422494197078395385488615939069846094347829313358527357418651554368891946547152137303498005720667278445500363198250789329160998886212635788390826669071516246159649593922853502583403165619339406063232154954901593047207762136366755029412780514147832179975933723339680419436598133353568229219899566908741312156656897621733138813028739015569774671466673967156021123479178661525208100930050505234827060881440682027471287970350611061206957967932070089764877789478921296845510724405563067857950453539007800075320181552005478399738937224510972476032751048974411392828219447715051591483722308125229438430536950441981113611624788797196055641670227780957680249113367861024859988841476281540602325777330828892645344091207828132303812560317147431347904611038777636492121762330378685645358501330577149287093297171063982986754488063032681214322517634541862920342729479319924174164949501612956617267419802463841976825032418998335056402597435019053781206433424965383426013086796585859370810972307453289131908958733257265715355046759002698582660750576785282647965083516918051675765004964553824065624476017872483696084819194625685130326385081986728488705840658174196933490814380466918221442781890798114930596033213190561769977661663963117450955761244158830703406907164555624024462227730303574454897003735019474098081737375792003475447374056486723238635847742290984938493668781873193924697017665501487280291861870135416325745935611847226168900724630640101287365844122576123754312038719776475616601453298352180743537535060266224437479683074651463441625971152759513740601492191436375335447233788516555584640450224742720635114492855856302056853078034316248965620467192964531615299045992247198533358720987519717526069776566183394963459553327896596583880704119197797733474518914763443498192025047081173241345048362656799030979135315315763406901016624608531277479750666104309902209876903697854494893676698805459953588275324688276397176187754940381035627996098103698185022625554003670176472587940919989581802782603217913203123744583838534463688581011517315927820787401357671355945453407762460261940577380235073363581888517430781585477491011700078356645750482881168278548984714546748865937596726482600855826179213624588649955433801403472440149609668136853556892600543917868997744139174698328390629448222208404959673328232025413105165176930547628492349139510520149852114632511274095268638943015054012183748685162621797342838268342932776805125104243955969642056437203637076013563537803971766964233451843408930017620827768602982407506430749507853005315171054494625731149334748366808960219903255463798128387223187179673708104623161524349195830233215235894445307587097180978206241556812086795333585657475301663751788646225172051982692847374337234038984507932730361687202962377800191010607536419482481168818459037077960046949622815216419928297311447872180199407218917026997013481321338451011480145109032264038833820092330256332172085334893386063108227993918344778882093013686411513840529126749426329304804000670404494293317177454486963444263736399080057612368485960450218832348209854186790660784128146013475696483672963541114365441070556694828175620976106132033494231358250044162314797841280548252146521632509353294363648097009230887064477456595802315669058918463346388051465752176140039040506953726298782598376812323024574270912494623928611852020181032548463485702541140948808741500797868794893031132524978086017273119368937975745756724024256923954313193522033362636238618520586477770977521127434115772881819946079844942270653642898735030276848751446770596656923828984772619463224031488137686466211613180996215538435681426133306216049162220111278790318437230670900420204993465692057887437222764577140020419811461563469907372275427575590604093346939291496434869514820240314456085708655680544852020920272730021402565853563502085047890688982009847791819160958711898074330451765437706597056292353607541114798169303802275653117924503271314552999570708166874834380757926333332361297650178031094817606172769265476565077002135134170652489798188342342650768143195687350583451849303672557925675714163556058090011220215403487739220627895469652031180244355378482004588805202004338808393596380622950488939619409680452974537806163582076700646863662342652124266804566018375616969887989001848822375376964767024615215039993655936227877404964728508666646073071409171890263409295726347082265972908607415461460777111403048752490168100052384072758029020780222152182578501414620799676230189919051651834731983091719440323850792237560251393220758677974292830125149164321251043732057515028986530014724097033163418420589998509946309966727875287191035652898868165697422984769388632054456977016219683162028487531163095451170448380348994225845659370279923757457376327088400322956730737645612079755472413714251740228136960093602183933732667106933135834091336228860014427735888270366485453328060271840790487481939971938754664798739649355791283626713747106631547665333289305824214669587418215702989385112692565810469665058116242135851777964778321942449808366117973652146134716576257485154414500766478634872734644737003731671138958108013801181361897700227159289763413239176721686978106013216786571604033400506233583692752426324874262588126474363696995243743378342329529860580284202508306189721616965919389739184970713355502312139329239291717412774575737104272191182738509803673345603582581346840453718196904473954962244406108016385589933329603169895832724104156661108747117361580694177573792002812953566643373987668236389005616397905493762374585924495077709140502735231015972439536325044614333034946073108218410860475642281060890715951362871062285474925679247112510660477592578949567070417976883715912111251118582200038758419225953285407271194355596823510471488254750235341429560305644090706631959101648238685457472952569228865607298200164195324277005082750365076195186968345767080013186087339441719585522330384267679765975195590117247842899277502861213951308812519179755359372153273442831398012627103254293172675508942190076686608471184025423805180303259980731757205490946999877696987278880640481659004017424058805264019983375547695017779262304312255679940664531522672156936704445840071712184635534461865713403082477217276217290637715236983362536885665766604750343470004630568974829168817203926886067169668661821021547154176896020444718353005018938541116359844101934573564425428322012221933992423676540495339490979238559023777527054086350902508735066795240569300409393815853591690651243553593455562127733305567404431219757287159503307016984457334530154129164138949981848872576868164317730952936136298077178775740662106448284434120902239362858494869898056727459580788217404043598079940228452231438493609608172130290014709631334016788092551278256909891186523679192264174648964738425028551875792355471001555046090916056166283510485666881216214519175644306248484555644856749211975175506445810893280900596227460884513578149608814566327248687885123115028849415511271306241135426238130664071067365493241422145876249189702652435484020018448205975232534604210836836661872653033709951230988370276245319505703243295776758591112379562454937248630246450114844375297192348730408396052344167633712659999336290060251511922671809313704692663180486380627066105780247506156753683820600957864439857030234400278277263075678164624777003268656161511958148765375198456399335001011873977739847589915246324970082010052539098199543828624097678700865583066357502524016046145847323215276484623858067875306524248832225258342906044382276249170645653943820040854902951842961824214470086792236737698272736557600673578105514484144077307505444276870737694938325617404135319844655006399795494814290195662299003927645750428911220545289676107183039497540542789297342580283729021495815471467744124308072298521957420559427436188097101162239923143234843175191875318619603050744410734584417396762014943202895784360640789988256921508943061500190821698740689038721958287289374878677153842988358984931327625648814522208634516559670036073575800720361696408712449430118305954560940261228715635814888930389103388268118258775154031269604842036350317588349139527582111855024748046395891185546874786456268509074202735138332296725205168936208357790875373896714323959198592419985704602851706961194636151647488914321871648545292911686208227967279115863399944834690187149676538206495815281092046840624106388169490275251570788548224364830790707042546702675219339680595943333411793376787733544026497691224419634382246675109335090938122740130119729715481283991149907359239317256580204079747864091638205931924341538982860897434576368915200586830876045526601764912126949932249825134087664012222134519122378576265267338979980815581189451003635859416005381421780616958425818485369106507556704952541177222285962720579413474528960268271287976610876706173741066612589840431716044786777776126332125249309742106259185589158250865740802618917183963992516300533946070206162638323033729121221338274647047226795744855775069898842237880673081737173005489066650685721447009787490788765028008594029104496232919044117868057487942069286940616137016317456648086681919763410407692794602238723225652467208245663558188543949166387354307699717013111949249618505839199738954574421277444100657397500447961051307683493529195132965711977307281805520081537207659838469308050434041609495106510339149838577639594182401824956030662758656279159948308084596813757698705151168659576063902801216897898663721101674176744951195716696764821386207030869768978648235135329360953006043565908950623974632396524941824127020025559665661798624741364322796913970634421276220273459784404106792122952195949066939932649461625811934459921322708176611133014773746062949674279158873510024431523916232457918703725696212279262800369350432431495592517371005796668166348106202244016104556930526472609215432599089108959856979884090546504082180663276226787050328656601215791135213405572829622476076309977476871596952417739928797222973641175684028436775426837085331849706351452548126972566662668721133963666231156467805527115702458025056548404506955545864078158602508601455451940265228380865860872670832124892487776810199664974584962864075956135448315507024303098221626437256318542450414683621107329765056567884334856594440415891707964294939446453550652017667983520955430649602697597075467333421865535023335826488929468354429312191333743702120693739326332685084381366525833150867785332948537465315865135534142993592604375672893631330496714399272767721576122082417701607451846146553756020616877658206372360526385119828283136358777747568236655890426902794156327817107577232482028325755104754188656716306596748335747880360864651236228750569481427717697994686549137171556281489387686180175405101699283323610231404244874532282898398868039054991854659460147530898844935898428292455190997105228429034752851209191907160474575884139677425680679326427541065576965803496342425478158651269211026199635953976885372592214150748797094409317531809816700718092667061056922584616278181303276210569006387537955623728366691986290529205607593592206275412286475988559874745326313673168901376934009379853050765279845749142995510239150922958472699363709871282275421224908992672996607770089264483024720322694835721288031690037945239652027093746765329950384102251381331822671716901803112433412630015189281514499794787077019620417171940694781204504916949436164508444609971886943912934185963321060967730625381832264440450181060175475313961307079362601500877277158337310560004123966353391243847267890765685067604200950707320089535812408473336602824362154847548306189929943596668030676590795298582089168974297769008186372613543499744978420347701286731783479352609334864714830970989714025536184885267588195899275779193875739141180535234387008672774649775265212568290782760434733681889554147123909816651298119726582277988335205074648595787146816645721628472759407405639693753634540769903868217287942209505169882288990340267902358198296972044803000433782493305907205208091026503033965835091418061766355594055942583956460027726250252171838854032405558051271828931187519313503794915480542105724714712549951731570687333198731182087902066590105649916334893489613391843286584437465912319289785414223105883964995222824560610770729718586514518352599009909214476800488765851575801937343168063461039550028852155003649346203404068232719170065085482157337674472155057744849620825740938316278534832407149669693161408027824081913424353182332359878679271635300282846355775360318465381265643990884110464482551732385750883388471972576381838703251785992741419789919021699750117273543237912667622436298722245871678145686050004267025393549482139646793079320619201296175767680231706222913584272692529068746371563422102641790398939685989305691691599227954612762005577983326511336815305707882125995144975718058947852143942830577123265441175796500582123752437497295475547724113820703269224566180588387220223609320784134260838093983800363572190055672000872903524747211976708788150595132042521920200225436034100195954616984524716712870272345853508541285007968827862586949901249083800685632252038863011682211195591147320987646274947832474405476356325646498788284692527246976707506460357074596884787128980835018347611617710902849257907732099187531379076357397465649071458711192548282594048669465986121209794157159959285042327956680612213033022045486556439467271655856141551562976709590381041747046052635223010067326851194321894460861279600753312033251457665113953073851406842337307952147232850742373991885520420151731300834377574377993051583626936148514965192483270621500942095546030883949793093791903098399765099964733087956631724938519446324501622212498639465258062713591237470901383454526426335949087493388177464349332361597994276079001576308614412176336791187788921404825523665542939040124626281177865326912361042073942486722539212639970381496205497649516308089781500883652655248901385434436034070733665186431877833797199006454446865150714273881742135662519230108530607033535757652325478132973424460573085879046362949742844533540135797576231695713200672613589372865969821652405532282873760211073247562416716211001852294995469356501902757766671313583847675728577171681301684956733950899501934353585956533410596143373925874873864473244804265920238876893408723403327496159142624238310745145798215871208040132858029147500491116770688679196379671268538853111088760193816314188500475732149590144988430668634963516134333941000485622295741119102896976692229476238415143492655720835280100622529369591642332904687071758383391132468197045718953237511491827638469890771543075576228774798587547646696001090727764631909764807027221342284344181949931025357978925915716855561037528457221994918011841256891843720765095695737755094844884512209589597325696769831976153769979714964299517581346321949046735560676870230660591680200099734316646327641845100338439941004182165127827925937165683997498562997915026652480998963417698045789412344939794145414469382972116156134347389592172103677603568243064424726635561893089608298055024260333382852681783604933141749315687810199908758181472130741571167852224988696199068263217250113374780257183497050577319399199035503089039090376206325529355399066082217301453755835996057409728953997418886290727190170913384529399044282350838529877522311884823186719483018233804779878903843395318511173546917032036532676462606078923070165950851454880854744457983027315486547425397178943134472004121437729726156381629687354291813822387728953613811955193979316944123883487213084048392255821599317157999543752903687107367162487683372203802237298331116318355002542375301322058664323415034860297245159705850490092630076859685630655696159242036166757971199828886396632455121874990834816757735403584469030840875966238098751150068454437691035574397072445348038240963008695035689341568405249520721632196317079874296517962914004458504941026266193528533225020455175275467345841141578194081430610902028308275879973145176397871930920635193003020352787053490260049333887290746688009993443555952861986697772409371139104272748378593556342121913059312776459453177617674148946413321208889461383436164894479734345915917367609288140259365490750760266020382023030557973163456376191426240630190959469521205180106030877792118612415918044546706720913742992077918946403493048359546007526413462314336607562202278175254299867018933759073707163990906442046963637138834687943272300276844197774683543865688678057183157499222754987530640972527812570261905477021260487136758329811025449685865066520134055643850739882792986286866981245806978007910857904486802984263496403242592861417825170241172141266180883202732976686485109676719011083002779931193508595121308290918770031425279795319026685221481789045488919202416445356957506213555724213174183246852478510066935319978960889030558570066834184645092610944380596764685694848932336649661492449905795640937507910380364072952916356768262894362849505002390789481804704977157845111421652916777553684125456810691216460166969450324860886141292790337601370763151603893693810775625695793853652241846547600467750961205923462911636037001757617685881462920505612607944230792982912647311748900568611271421205838367821113501501204001686925475850526008813092444078336667857493195790910691564894314563470498312343677510742443043513619471944561639867283488540535771595518248037167593506504297245599506582568138542282405150796746004984322142616658946518840055714738986398459136756089316588710600945757878515976779959177732200072041764062769762057092756384758330245993569718414490682109018301088316676078540961520385019480188413952309276104326091024959285384332000116421314851195116178406381291837559868642644153863603989297597059126031600042330850597768083606084823595852629224394971041857721140735235934422516293291397569594977659640716065352118059857891359407793453899934585602192792677740868098948240681911874655930103554839957660315711918043256198169794379167180660911137565190898085704201389282152442374073456235105496432657080853120651456088743905731590263309356371550204531915607435831675130035327354233565272144040557054609257159134351931039410696610077553557401127743008261321284800277214982446803287214578359538786881046999908265451884321815971481374526531353727748104856898595022008142337219196101841361483743312495757904833192689624962964498184315884639557825741515029558703334817334436997126249824407932324467637575032297930028405513736819560268998249104125031107827721741137918093287255311060294464878873693049802547567852518928612208173507223349541690420354335609964450784572276245820474390332968798133397080516536932527524405647652414605432011240829763030087190795313636443550048789977040105523645701455121066158516382892202233563207124989182072213910215171759642892680328566555261502093730215799973939394978263395781623435500886295292608231941006638804174776050633432553432714145284509201983667138971644633265076648328234778592021648299245506011802246126066858322746837936616796968373976376283449279490986278459670717677370222534044337958439401653770430158381743667821610427548777390307068494934551267179696677881360757241162135351275087724434291771034864315479541455760153335341742786650621133808505172016632342530805521293722117667148262770942669947361599366886574427615920422902326117261497891190807054661883230118481381196553713651594485624139488176069777697393823928474544829039937435851191794808515529936046067873833543619457504376939447010961390585056191005139916963504564229570866370340139252560407763385110322089042400835851065660014951447751891871403665105158605689490729771386528613671709916902587037109418977289968553081200451968535567131383672153647002026880277725283002500253838452103329489650290897358391714489668554078271129304922205142819219018294390266897117139000857432177826567864007210936049421098711292406990898040590956996692049125306578865167022255807310961561783755969134652402027474769083218990932367765737011288378160684951645050367477608319240313113361617421922390463975791313645339207078728335503920108991367242792603415506502174432513454743096942257472761793173935869190127119310886669987501317897346985592755111762761253316289500891576795320553797527011060761438338110080911804709768702736001812239043688451500114441612713812753872879866207990637707443926691741630057043507134131529811048952699318935047675710129990649091993830863130763106490414792233972278447231916355128601361338887840087291208812367605048340281371535417229665126054236544682908630373113137747557038856720227321603389939928148835500038493571145750287770802085858683812183933876059616943327399295517206195314001098103947597128196947914376482667921666046342221259362338857924683644183812289692437576049627332942758295971369245741490719456825787740005975792790355696382200033003200358964900330170178183418332523783046605925735732442435177603756097880717228226000209800690799228885317814951319096573842859869160218394136288164904245386764209499332081802701482341710082462593191434482198705175156215893056558909469918292269691131470836459233004775851902156261859616638942006628429933347924293216118134577729257540714730201403181754335292536162174022756102675531318427351860065905666943055190946819933634303047214991691202979252202871101952398756539394663912016663793884635231833740971852854046371112292509883825459058294764581562665648410843467006829491758527218302916576694698104112895112489479083641523987393477217214697748929758661680291106252248122773654937892439212203709475543068172867442310379343960761999104903877852035648536468692426598163725180498524302924743495333528935152404763882294023703141824420269267318385787155460975870825016375818307291800049019464809758818813096336658067177502920369374450256240790881305052745305711677910994827597661011147718138138935627276402217126843443871058439588814503910604956473287331492597617352464397172045489750423893626243858089168725302767714952691535507875364973478479580564552031344027757133903121285301284026335953717304857144215096949240130019945745593009507802893601952140874144367927357642051626890818029751960612553769519488038066468775999881307303576471842136821014119450195775322414150705468345946022314039552616983845520845792591419662564502266487871164409632436757525083162631692087030725074873274426345789657255995812047252493660342544439282234680395115108936026458808441856947034969118194812228822206003723580203363051272956910605233963826965015265275293339115025673516349914774586296696489779385035234583701537822218921561830575971003260300743179872060549737314564709902007858072714484062114590733158241326403005002909303409612412473868507653970459629726723550151593007688836625597047758539184217681006908861560089615355413380922074554782369693608078011984637847275698443476255942673105010202099887772774626463365638417912915703379581102684435232439976059982018006594180884764770382199849210963081764498599586547547523905592114278161106802686427467893982919409607669232023217605031654310733754043225534624008419380179563382670720230357859576378717288772858106176352325176077810732256538397763727604305973431446673013496351856687782157818138841378675929760107066149875803101276184593320527843329826181986668417640414497532756982850634161649489377590826950857684809659785619458215351969615428890823714766228941325271247484287135547269985333091904061928953235355352336440102794766593291465657738782477412659994489304713411712324414945955893041285506666189231655271651441522263787764684945691634875341657888929337641608166854188453513392185018032732084864639860278321759405891928168848089721193017907852871709827932570357454740025984297821598450022786976796411951241212374943363005114310156663279091253961843427623282917750497371048158381759966664584416736210085724114251557028745474038514871822745711134123179949350810975701169528830544880420232385798843076276744981631231317056273448712357504429215104637836183490420676829922573169603469508407576191009291930224918033439585836540811205332675960360254790509210984246233032892230488842684997867574508210601320803810406581634087941631066602926677417219534627872368538667476288677706597917147357839351927132640954626556316424562270520567619282933463921259798406677575515859606431489963493187145840835544167975296204415299116370818745516289763223493121540480190416736566190560945160541015548806971399520733764783799128856662446070978190752510007684161116704727527199574058427954355334044307225515324154626514188357466127519671973822408772795530692016726613313467086617001433154247768320472671333914927899477820479387616261746493046352821609014641519385964217656397831091101750251710088632884097809981698389787381418804845762368726374320115753920130543316195231355482825045877674854138179370289926482487340986635534314403156678196667514678970008152024144801082392610821378046342170054678013445010915058631033516165836496337709773192983602338255541700320448487677578143161526539459273089421871163081044652299929298633864813377243525069042631889654550728073829625314891958682067571875889147294870586494466537398578524811764316662841642786920588117614788481791378087538825039010920493714285409577187791924479308148033655655946670287367156072266908443745400437775774875365586364671348817001835552902490502145164616442144476210474395064677770207775277543753775691154438040498547143219746890601383583423574655506469413045359149508194557416617043247924594860569563283239733210530165550189536385282922921354840382069023605136639383589673473313469977550681686022175570478051241512668142778821745044674731241081096943057463769279793077539377318412841598534985752802650369483411891773260421721422859613339102135501907813966674045740253088631164723728958549283467115426016387162946136639578194985052866631504047433496869978409629008218865316407823899366562520231426316567589264239123782381788334366204940773017633757974131983511768082372395719505652925100805493495410362590105383546709630546942305584010102626394091095656867237818804221734526595212229903021454485963739712514803740063250090312267114821186079113726066548854474579432264883450991122422607682983497871488710412569332807796043334905102244925791058272249320736588277958883777589058514821365121164772121385643835283180791105348222172111275381411635692535680547921189761054115917235125772208698183042421126500418398536738078627140774787444894827916809171227423369544447944330469962794713201978210106086059276747965871048297216915439374666965225651986937834659543622824307372754232335571240396857907308772182938298868426079604836040553107544608651327765132790011980301111907577480480612683341565461874351930868273092658666867660212685346164759067189837940245204275650655924173244920575277877138714008208978079668474748384926461813510820601464405199687070551856495733681061653718944378608486615320241335293023001817265053980722813520928540290937671320206070853075189162756101389519544937153400138197704504244819482313345716369583471682683326728723073878413205698082439751977736207962704112335822012314736173085101481087222679257283595832299662063699109612504604999326680610517955394603119950089624550846767345993276677997080108225917544328811328436911618777112525704327865941839818308915403523970281666218820790335611107036751828835023662950435750212795592388444096121701350534477808019824954429640806286577497561428218356138431749397625307872301146772005386663026448834692677937636735761162767511813086142898105487375409707661188684403720004591023018075641554658161664890412006228614130832984408747726485400819747036699859293777356309449579743719213908033540689696676240517804879209488631494071503014586336998153307614818626971417471151410227489594719498548785640614478563115288269045400275644424782310561081735546616231886195364881129583012849523111528413884866557551472958794864626362018450360752277297619152121530088682544916957021259351578375934145438650961780204012596664805888642189655219297351341679333681231815764217500634322036809864598321636584796880188319735697776727735224444846322501238820779467385749914690110744369662086468200346609019493149429268941506398646415848774163469332552228247852711018835627551320099373327501200984002307936953763449740466557220019460104493391488232804742936716963517035109343038157357372844297451764301650824738189927125466103191682774336684390602026269077306953008184169957425527630864622310610262557466248812640453704440632301999210225913435246552771465603430389086058059303233676117244311249634917056995862376352001831812767367490687407185157164426320583927400721287339479664718129638524360789674079082913200384428331790868162559588727326439089309793950531158722160756184853595095900719499743398417216003311907285453901521893461397534151766513216274993271151679898026831414813910772726323065669629498090070643594530891307238971864530497133964071097293439040037978093789844059130421642995723341958584714413349695546131169903557766636920538609979451689907354808244375306790000508517239209577399198295271507917637882717542356380023744841229850331912023882946905212128195130162910792490234235814520997101001447949783848290968473518463992142835976638030999370910718417862891394146719862969797482206626441519287114654581187169924882752506351465143432879373788701059869997592940815942502643433621206216406239986445944747371110850860624055604331646306218785152033641166171676009022612021100529940978853337448576794562294817537016088300024997365875665691314454276675472143442993308968385763380198500688679949681326878467593685169466297047775424488078821959604233249522885563573053520865135280729741160168488184600066551369702125729291989168182921918588369990153343978391357764139731991562232522062231589350544915340670105848776461697409259354147516325422337478253982802020640351798224285022816741811937470174945023944283480995886706864141141277035080957287548265048942879938096214328025676615576031582715582671447350671170295895990765630357058681823968984440436973203328988736370059392468288967417095876652681191419489948397177745498190214579542684358306904308121917712686805604191401887501250561476026092966172850373120619311748219870546998139939469837438893860058533705195071180966974026901181339630612558998711435813545652161123972309140838828518149130174418482104931375124832542447612576879165300661109882543849009300001149606015723615337076403224725739820637550556514335833393617316554217728496414607405071692540771220283051987526998601501617645804823564833028911834089522279548156763452222314355439306211883789982454473871051283958753941124751927700483806528935723054602251222383251406050800814215721497716036750204527436271133514876870865445912801154266651262913201632705000002434547038199734716846717517967870300920152078503661603019934383743210841114351463681907563958935926889668411349174633062303861694161584161192616224076638425256799544665069273263869554998650658505288459969244718216884081047955508269427752360356344808062225774130521855270998282534390763390142659856170078846966051048994953799518786426264093022166603491525694846040133847103596670681819656401696955108456991468091726473855521275107259807388161554251705022696475041843726999081426463195221586176699763659619957693047427554901262517356965305278346030584409587444614284926582954040801497390501537488141621010355809600737408996406902393914784447564590581570086654339250514114012271456430977952807678553645543932659305384791668865902478535127748518856044695132769752258880641784336682607276198870452405817984877763923723505970873208304805804038224122390134782814158654659810265342749799215275193031476762592130843638884299350771583669098887347107528980764660484602708053477327985635550074352531790891179565789361055655041848695710474606634456398211450689001255434993202737392434644656112917966604041466875408710607452104601845098246729848103591640093515139732413297093559009670421976585855664588592363210545385534693385782670924634871341355077121696739667755440895835551807933899732950468509977317460762980316582106838916130278779835752955275500602429531916734683394988023380219735579307907559904005286936342004895455539527236774006642514551624071113283047437458300593120699991853058013296602032154765426209879216047047209517210295115456374697793801246700545657104577074525443966010756559516863262772312305640447803257249399482148859981842357997068848230347911303250384355794992286100401143930405839777459546779433640570291204836379540431062682775551938001349304283056843440719563750391690202029142432764157998887110416771500194275288614858340864341857603782006421551111958367687917251396329801007765955465502136040918583185983383964461928649649160388292287470548706587232737286490482493010907668159107811797587078783599526406286206536301214191405685056135060437964585459971644884063501090044994775123585729461743371536034681388397651561438239078232829089424300334180674549202210852732535118120386056857136406804866336451717553579289408077919203136219540189367920976016896516869284150336664072834322712656792513055433571705166102377593496365821870103571560810397550932800524845163297533644716420323288517510311345927253859919003692223863349498887678983873964438542512268960873409407564470290568815102667126859817121305863032372635558599336792070384701759273265703381823648629348285737091155338953871058251435005387917449147859889115374612208027389927284279588962767645151181988519747862355925999750412162436840464138107796861107325244795576654109794809239611288310947366917378651518078498437145474502350313082965462130838217654446282485817522836342314506773242240209416624041810895787659181196970783395993484817677946911104978729051213693306588733351341638983833714336942982213298959606819843798103285510574193772614235321244726229491727527141510615105114838890748592045782711288991933564262584312418884606821047047080792691857344845030532599278242429575897002932808259605402588738656786218439300328904875970632713218928567626735120624254481458388830054920682542034900524215092994839508272215671943022343409255812932104764814114435622659203360980731203552256829745784792198426439349218861976187474218805084706604784632815048724948485103352999911858483084212342236905989324458591291947012584529973674097734668612630521165856034569895127176527074685997699840136331153375106093445780421574436701571840174046295408926241783766567687559503514560089482325573243420559408285686834124708209587720738368531481882823624065203905084932148720252191663441050430135873327184924773400234162067372346058167573142433486458538086945792985382671950267246222697569685940367471580872505342904788862503963779581860952077736015731237302572313712865750811717131418252310128119966454169021352097904653136587832482391427764721959701093351839827636438202583183694612944260213961701345002178681441814934103437853879443243035996416243067089792531310504721197597450147385638769229508726389236162443714392756313449120777371470561707620709372176843887101437817593487612865999033641325849821402396511804629675177251898904818723479946407510997252148300811373966567970767757707557714347849805446431853300641122613410346585734022272877496224189475844825394302861322440989652560658084132081598541216606605337531261646635694870825541823114428312482999345299713527182296790832045680919827788358172734501600815003836738013592756862905041741039813740542708361135417928961392004007734212600183231688234709815659283269980007048080740642894709452286790002341776989640721268930206730932742938272805192511520132161433224355776095838220615517733505969860990920689631130338767399180617276400376754557748278425018779116153761900880252372770122602503965273919125068527678016316390256736414908120175294153465521197275285809547229199470755670828462994696813511656740681070121095719142994823340002106020764289517913098212607917211433472852598090260158697297468734225516413021939276161999051268574900148812980255238827068833901300562592686953893406666107968473426555363190787182073698031033917877887264312829824856340549582072721229311732274398495199452737006332972251965590311934047916815453185307914714626979131607682449421389008618820661245789953140891305697623622981054221377174972285933393440651260563417000060290529184308525430863716238801487161692807293065360966264077758413339889344015909746654394568044672029383952485498269232236038405880076982230618056950358072384638177829460798672767327764791326447886557242925972270354545500234885549599444424889367646373713035637578481228099973348127929072489677619607777054166375908569902514323687840051899437046980854099363318170502919412313606732032982119212894934721143150499150310231917869361649866552651218973259514175553503134918896917951316786313897175017103112733984748122949446575452532060665943259665411010383479677952329357991627433644773997110970598562720439615531742370223383822902290859288983949035568858295555353350457443212760904580754015897290127177308474205687873968431009362742773600052962294243079328395465086838538272632861397537611669420984633245298997679880303521659269124093663156436271267213993424248655124270848609031580644026682544752650115139802569091709924386170704325872071599045069691714542104686426116573392679665382198487292879519359991544200286082857484592818235577462583174619168698502027507913636032627407803985610374255722628854135388398706626399347641527020951138950511723407754752105206400769581594454375814530218150442629491658795094481648097731734166728128493377582919779525312381730787672623738092579849343492720541256836719148563465911321224164001656083152186827806813760160562500374992824758579533081611092572551379854730127640841899435599639258628224940821816943878750606838093032209026009554280152920289384001509327269392187999618580322355785645674907925513177059965130012752192791548020543338950131513126343067522528052305042188273593264530924864625820121994975340918441395200176778639287894967033360133201030117087814414536637417715926802243441128732444427211820573567170598241605207482595456305752352691939115896301675133308585619821867103178362540847050170141272008631762033591781098014729511441269201618558096113942990564915770524939148747899472613184830398038766605063130495130746550989941633939170225755726333814452536032364593247313813292215222983454613354923675449370221125401872560261314998922288436128296176428039725394419673045183158484400389391888848292552669851189102797132377774151875196122479569344638904980842203683403265574506451921439507843836906386050412595626149644334368794947504560940553085475558127641555794013771338690028770354958952016663165279763891053079037236818959043263672019512552562314314141948650523027379973358205986243209239841656418438198835227676010712502561474475953256319925374306031617145545629165359086101338092517271721313880953213943916696366884751734911277556125624426349047744040003481243220942208501134601932776887850227162377916696381086054910352475248539362382724618432545244018121319165474585764457355343509541933355082302758349206764616423937354209825888783448582168844769919268277631098033482649652065910535091778110334407025493919780791204399121831562176907602855499332288638149567700867204954720070894814888204831605970741231628645270621440011744283219672671220875947786114866998265513345128620190979029333801986515972805317219171959909346405754314092682646233014811555482249940782316469074213683822056256123138735129831899304899224412945868699857242744347809351330356485673622454040276590167259693015745287778669605828220856134822746662730032524190867381917057564923514313511137645543419788114945722724392484928872890003676633501342171354659666999429783984201753330220404075882430464016530526257219031439460155337219640380315930599651070296144384225656691803240158496176076996191335532813921547830528558947798759579090241113174466360104136182274068129370087122300690232974127401801492417981711699228077229955024410577285184240362538761045458507569930383308125905069776492223209984747887775275458817709625001691371082763405008310802792219288165516494282028319973921868016002106347437661508672107189722550480268661272495829025749159685545882692207605106647813273727912524411990041307134307023864550099092773135778518823998786646972470065204329986763015961153484269484471279701290319904584426281684914943603280688634248561766383261210428170752499043112429106051488525825835376076317153338398517265819651743098581580657515190895344586330954269920909134349924122906167102284456976999610127953724918020098713122843626944035284271340426515544381510382233502848039720714816142000590324058678815278860708489167996983079132275436505056070050775848529385031301354214388853422465499774244196588113792720050060043846852617966943947036976705072480113022623434896258561915473942570474990377351340807240747816468085186455353275060478988834860959950974818050995037707189764286039394843539262800822878985251402887764978238838898500892294028138815420509791447797747020686814694695575929491915619808588430868054525855523408629407908559557304203668563984904457943224447889404099139106196924345402826783833757966368914634914824318965509764344199272482325954041483255482672664826389430377821999507093111959248945338428548951789117432343550404347405546709234511619953328993890120876126184242697654652574178828665327198808954164448455655404942455724871735674614791650950803111414080670513127324961998206992596679222793207368086362788543391505665644454643586331998021457461477793132961528436179165696127417926758171864158220161015484346766893748889931957650496170344615991819013002414620425763198981949932659564397974490847468562822578207909592480125691265612401536620568665729243165897058036917253163392240407800807972196572867683292232065947667290738178863775481979112154145316212549393851717422611544511375597866133477062256153946807433051477799739574324506226205364282221528723476935635694419871409509013817092243833376980764439465780027130276299652282126700458057795283037256938711874094446002888304139034486594360076192244980240093762681747830431614816488062475624573936552039889498239400199989592956926215529421368441273382873327955025161842006645396681692640668488453274733934705613656264161455966292175600042300510000536131288082363528595921548797456014956489241502767260993659165910280815947352006858568249789887212522359303077359498384525227328643656659993220200622962232448054768463066384971494315793448786085187853517953909310278557213089916380462273326870974177303022467488747435933876355651847657208300772538574449277756006107400830229266858157111381317456995138533399288634264497508329286697898373120696012567411014022718141045786871823149800412820849929852941104395000945075014039074246487155965237252312921679341645558367524621689428671370449711450069593956602226089465204423366900794033552137927857676041675428474375952927759546906752309938301799490557664392699780907486541659210697674376888617754263514792008881659157916546664608782498588268190249652547046172468297461005603936685748750759535012411374035020041982606512642236776688172764563728004863078229545761350880954711319245828722560073503173405818596059974752303838342438063502347825474459795072510262936652104598498584863320877079961632010195386637534805018956605113592084833491593181813385944898450870554693994042192867526188097484242554942733300274522144085368145424218694810708426683145802296321857912689289483705795078931344255040644508505189547802201674696217925439852564207148992967013004546469322120255870358070143732424285957591531325303864892148837482578702396483762115461028628482330804722614092112745111664236325960313232566198116456251869697651754858226503962923825034129989871680737563607390209742375754870098037151740981957735975188505534993423589444802112236945417890544174275186826210644349595498777894142072252609884062416444659995874391792799835138884412313311241291611924235715162860553028954870524087813736712889920410655134782641915935932243288882793566395112427709884343055175787325396294255695079094503207958095660457861916988668727769328918284208161827994989783436657958323199243325721379548153048703798329844904516022369167056720194250480776449213994546110071824908452474687491731574235563042573961569462393498640317278069581001295981084533659521583014531365174466612565388320803883385640588103938285683100117230123612317248149941986346668399054520471572510517021764974511657214203499345223768354502959244588180206297037118594139387301150816149443052022474406925112771576387309333215373474749161988769415351506396696266275285763001804536760623597951727351292552657468061664757413905951404702476044580587469806722827726486362567680729114783007128327527402435487348071635601140158800866845908251146817512461169393463046749586810449050882967468748086193917001657897683479039411343817309727776675397604782834542070611021162823962910508226427402620894317381349306454278700791309524496256167793808616699594671378166406199574707860825110538814218129730325620774680105820085324891202522800161793900674840464586040612372750779295249377117814486219437193066619342370122881385757246849294041385370488753465177382528075066024041470756875159405168398966596978953658574643790396201614226782262976210738224038599248590242145298966916224202593244407101732481424516745389270650025595822130448522855439898960289523728736318650412466949134088441082009602594234412564029024131728887912354050053825230402659487302464659278397445274094303473684183521827960673456991464129155368536365532652705449300089497963710729620873481310298831411854605199087368802162075966647663750853579505600988599055476383892314756808278502842569780452002652823719934096780946656111079532081899555650302635632913360616633752816211477130035698815372458132076308211286485105878024039696630289511665781316649125307114622398147942921123615082988271253688840052377598924521175026514049706446592257843428117461550439307602477805659681772444041682716528251274434739952288636419966007191616764014899991175496874689453650091136349372999812134351700933290603971173449904586908087488095405748770107974390175182530096372531973489462448961126574494640914807927963259779037660626822921728989367722249744786378134331556724046299520213219398515913900984715102319346474497209080850053289357043179131408762603742192210651573570651358723529724858512016103152357990982731749762455093582558575894271627087226328856009225082372518716628047908547330939546376482504620717703140724314568552939708727225629302407923280010214115567227129509811682941950688500921846578033425188494299094549725512492563788395997550730292125482181620857497732491006901036065046008251685952268916772952737986138638255920510198364646994469761263665110810917726656031951076409713330994222244143157847743209196275750492523298525718413795724580238500276455738054044497922804886642795159113895008622459546890986691671723007360349769547401710260815907291906520006512293328679621849668110300146031146203595581742060011200699321936346995756869248878865106279278029837646133002449355705611091788902481951501399767884477672764051831091698794596441474906111361102313912606214351966054906061507483614044082621197539319674441237063376963869927101475261975445917169608201616824157575816211472292084882047168246695023985724524250323961575813013017694737195060026017331173570164418129318933275143351976082113106298268026497608423027292524644856247850144028561238787587256612114553287406427514610222284815146509079775157810934016241836812923517205908301132584015094668620941947991176732937709257083822492147071586284482958277897729434058150022948325659316468768044568451852596753895512237699093756574046873988456393848210628145389442233923553705209870953179547568555513359555875758164790266895608427431946191562381967707110648652053431288088337770011232047021828161004375539684177229387926379074332916711392346316631598092675403126147661154447570618506184893425478996708114934839948147823590025053002881029483313251407283376464622317978628684019907818673739985031219811569056676445931962695368568287615561686710709741472552922373115967792645580642618335866580032460664031150805663043268805423782526063443348913193021186530272995726730050484958440982998918085214515527595063200718226486668679658925128552151366381414722639999243752357072001215771601451770382434938915195398655610333483538592346838398987949282850959522827618676611727089123633930067009552597693641185634177190725735878016149125559771880370528690699219583212260113529577988503262212731523107979683814708792243482000434337888171944915386839905325345857065062637085164029964004801644321612125083059919095822520937340126656149263644802769679464520211034201355594743601268928312190340443943881882704384551570208113072228361585261208541772439270203675929594006419338178043690842711297963720798846474299157121075285135861728048634549075974477133252155011518115847383070520764023452494358990847975040233286044674212432695299095349489064618786144204881545589053100786968571859849173938593382182606658876272029731153001951968298891203726317062492134389819672268142267531741377191173207715696495924135069160425982684202434329399229607247094318346104316995216812664652520344370452958250692489548601949069318561107381244035569819536803342097015133196286932382346859091976260195882814376196701822506219689706822784746580684988229388320473186230415180404913032325398448661851110822824514759518130045934198262348337776757842672339373308064240742643376491331778133242622247853875461591829854834349464336311237221804057837995836528620022760419708858323936612240096772917320599302070815927441044214856152238907659852959151970672035220199977569985109936131330599484615990019210351500865810822654787883694792241082097654499467039635484771522623255050040132788251185282501865408207936904512854022067130929774403383272959466582789044955856169108038854718450909246890949780449558756671568923542295991912226741499627021289949413621116644200253739333002796644706177121520418573187250338851461139474529603121729077614497317056100387534927659845853887667688603007267775800534024875176044598407242745697574243744299294660446098669139358925834305794738376156560720802241055640285443608147642445974385054950111968718151860050466987553493198526817867984548946357897196053128972216919039527735716191035118000640900153989736812732679354224916672059546153961415213033952716477180960474409608138448692816454398964626060047347058947265016681045839386634787667636028893935132738931649893599603466162287841521589644377299545871642746122682597189284116011312807337427730164089630399447613786272402580594389733693346789674689921533933458559225371870050977886440544712066703465130529078624486006554427086095643438369374777414594674146790847676021976253661800883774610734413724972126183330539920408224223987192715139181797411833441621744875395005573977484067081578013162288096502473265719200417488055477929325710368527433195475817021263681924332994830302684179468782842285905845494841163728478201745382939570696918933235733437992729181983219449217533862430002499281448711812703167551804770161489712612572159780851840482241117208106245044941115157730767760150549757407963603517244227276605694063180568910359442248335350042366227499407247495185673375691839275017154207947388798162541384929462812932648474462599841498080920748358343761565216449676294815404043971896737984935688041225687862612622982504622817428094111969231301590343788100195609678622920801087165708491616373887731845331079869898285231403490213161286413764832464533065177786941759276599721357109902298468501084255301406648176800827843377752487184531111299818632198658991459755257267405824956416800653456073195415578860484830416832695123396192087021790954593692325496420126028417609146194174185181325276950220460278828835873505376922714112284612935861720061298644143822812930889991165571624704105490172896387585205397289776982412766646702658386577332595601104657569284784975922023969683751784607634666328358246478061166773701062764622629444097387134517312056475015016865379640257596997781326674609308391159121854916755496763821300611064249128148523257149273764690990774630138005937274157664192539169112219187283594545720207412955619192253126870877703401259220792465648811726364974924290945689278453150332191054447973823213101990125621755386389013473569363760377925272511362403161511485493332805342708622698860883622446869867953033180897905943927998908471103894584656018217575252866587295485047754817271086839427879640490176127424043212256099320926828332437993201450007203730694302132782337554206812552377909678888016965739237923802311869485843661193266590623975197482236530846628055988068698787329898817243513116779417544188016018230580322206234344224842317123626605927568012137951287378081176788989314887535482420745467932781576700848331219729480959000734289347107977389360497899565772179530888903897730642490047819190506592960540402515100948181908212738579910682233399267849883641034575926635230841872523449694630569012087277410520241357938424532907009003320847036544516932682486369009064489355114818290567874540244223712255175134240827358051051460225883717850820361337793737721436232088453688329319244312874232458526627244192290781264819734513535953290762408176020493336781104278263807819870547275446107498430150460562902884589497261112749848375131169518550061955761429628104163367340616724752308813539201828444719971052457054056887551022832441302766975898287273090101529010036812416863866671629540838672316598717970688249050240358062157431974144627144175388142280080185373796955942127204763358385087786206883827910626319129292562197816565219056462421461654427290142745053268533902943506153506998039439342536580326271477254424692655883652709845186208111459064481395289578180258300347118703872203066193191653437710706600378524410209603346899863154073034697839760312900988878198712320206137475754583486612887225416843514362585237317913374790042572320702236012988027225907189271445113204721827106001019622532365987986950335660553293413341436743858648930617189109706297567791828154510769189776204248209018930805672134539707979215998903207948749590015530946959260349587419296826654592019047264668871627865976503086360135583848754710634953552729109658108230325955317447832490952397130954595353567402533967167273762281070338575362628901377916940381315878763105132338508189454681770410752948891122559063036708736294672602820897727543009579461227099951654102574279411788055932977757199661296322676040705785534293022586151766144470007026403603625541480911201093854895373287827994302297334360667798924974192443302744055843106703721256904014646714292538761700292348128201725723307325075102666165035794488815383586265536240431680334508975524341205249113362464568283146030181484741109860313006633509042343219786382697259140926383817095816586684175027755161382576959961416542897681127679973767235472592085704422059633460376981392556876428439428798140246905958367236084003068316031421799606659200206473719905759858975399647613496723497902327184154227521495748024445107622339181290063722900553122322181375372691208296418630436610347487335321204108704275552326587955640629966812876272812695723952597858697050452166613225205777281930739690334796017631912903875503958646541781471114142019687435990446234417641433002071999408180687301890060723341141243137656851731098143082608253027320834922909205827054154657799968348657552122138650219089256760744350164821734624034928545812462789820490495853287878834385468863532217020561652532432697527018172483415893133233105502103800136833471355496116740593052146825504778118034272386343267121650065404555347179843464263443150432095979701859829342000704884808498683113111516420236386508873798315166300363712922184742803316258667613201534339862319796152088347812820895904897203472143025899719815166352237034869482650426729303698996791448612424488757425848751284067199343766737032660749482782775958862791124497784937939899605863869609650992155994931127320353516750084751649050700200768832806776790594731246326468235637765916183136004187899476604703495391008728460379636195892289888947078806158668027886807354267636046118693023258705584449697649681375471016474892286143557880592197236827417615461159308281463922288687940157206241515604402859410794718373220234007580440271385491387850515931617393435477743005106309266221212124045694687348969447630004477206600371631979407430542281457025429083673406367729591387717659307010364866032682803839487820038904499115428564530875483804608699991907539587354005613329681298463442638518749550441545303109425595297773415625988467503039846349762585641952014927324852408925168522724302739695888579764622048739884589606083017998131178402171521191558636010929255526586175627904173084843364862251386664223748288248553688154480745668957110317698221072382718473386240063761108295856804741685462915827319604444585124918884870357813211216117075644425401510322426549821110439086904242275204892333893773182784286978105345696397965148226128359609693295804233937863691210948956674805911567206617901052023087590126350389955637760706320781740120024551257949448374824979019181211194466784244945909778201018844513595780525383777600663125909435993936467309491997871344249200501325609591894494654581828424890584433009195624244290552986190078135620789152544679185699133705068807598265983094099689704065195194766577482544465445913218527005166955674483581481178003782348988216641039868787812156575099480829484557536912428352538855711969729962523271994249249561182666667820759802049769580635270770281946769648196603582308188933747035807071551066423883575227676306208305924025206987878726217823125065750458585331431767114996730671362974130972427143827119455304094083779716945918852392029636180562969666903038910852064065310484882034828045113572338207671448354951090943801579737072260901612429387611620465290021969521530024124664378575851181475757302499379643305929012232513237489906605058680463837111767973394668574117960300267568755041030952528771750369659244004296235715040605480963359072755418244353043618338403767107999980704052614496848449599002507752845594106099639154401183383103077708100986710893526706331890168790147964312245458984639961947497139628887264657840867131716129552438807013859711765134656987673808389118876363017482059042548866889006571768682114446715352771470905598740050716958175994618852960312639444694702164476408315483031437524571289702484206483920864894825412102186553091522452647807235602395244722599838187431996218379728335525827321483004555281818848464821092763571830206048352727774238569534781755663178451594418387142907061937801265931495522349243600077145215687391501688621876500535629294419657030756650320477455417427699837433435365654761663755128960550842850626063415184846890000725599054975929181267475098229462247735113822830982908636709002673955924399214163960435470027207557230728374305086983067491222470597857553691470136173351245408714574496566993186960235245322068616808783685460538408307268926078351217182900698786307488342745873736569766762808557366119704678380529034339972508367876270944170696700269337546692117738289333134286784073813037191779107269812867228121662383711574407057745171994051991435651482725491684253109448737308030124400333192306716985690206614780609417205776900684914637560911928156343102227154156800352634029544847212250751107946120479754313020579057721090886634829848151908784596278706006994543671362808648411535023527822669887510723877066984093516820390420773510825073743999945570489014376399584358673383990951052855774642513999074049537764347904379056363293972964722691940238283594192006491146657581408637100028680988625382770001290487704560263807351531371297314214548134318936442245197028051736939671672885433038637317439786008878987461010751683082025706723459616101649848823029570121539176853773588485231420877509171740227462068417149553756616836288406394637678956230644055775068684496638137596279161578416610920230475888918675291720643291423217194501147998448971634235159077050921535552792162101454717380345079084130474232622573923746600428791479520037653120346409227086277851392439107312111767802514106952403902016098120392738267830415832808360814304317672229155020319155498978517157388916269640095616531326822902483494551099677146096096442900256043458060822266645070597923054005716349826606328344645938245926288075504778996716570527608440896200260573889852428679706159988456471989325603313960145821261437086215202436753739940695731132045641890929528841479225827049281176486562253699103752882299566097468764313347940707362355806678524281313318792281131187156438332467634201259375446195332040185498918812248276401759846331543868788597839147893335669075843449816892510919734144292773971926708051406135316983950034560154460839553301495942343063140864086521976242533364796970001354174573660632206823560181017642848876001912913967133084267199929961320040426890937128289133782169129350365931093394018061293145071439370959261390086691931410033854332704852210528114514727089456635391159751068880937367925987929902394989975495775567178877186247427276976739892226463201621293614251013855265090184896031172808082513451675664945591452133330607068365189251646005232421627288690907147339518025261150986703336301289403512523796894190411251576475172269004707423963960672608784571995567692087222634860054037958156386531586166025090429837083673961060946999420933139235891190460848440622291056536398756603950766811050435186139115661309996421958467048063185765106867997341409618354609627504723805644648571135686074095430331938649544824535918337286077162537098759150395194739231460053095061236670137487803312639472703508934838000583529184616211546049750629302415004552558428735698854268547866013313840098499951817953763692423031965634250216538903052452804902855524570112008432324224045055427834763628220445164322944412654881772889155346498695734215505525869969706021331365807870943213639897688242621390078148398710463097589813793625044354818685989481811464119761918054023683039649993164168678500031613742847008996473371415303529697061465865190812861706300541689158924283340795653761234442584454505558630824473140800696443184840453070589350313397844634796088214532087345914111037016561629883457675311826837087853799843350627694510210670120996249908620035529836686721949396590912334526283604611246683883919559281904344096671063186733142306142021724098818838889927699207581401537323244299886659084492436881263363086864274494295558917773631800095764568907280159498806845884142327772618586027189749003093170229536555052292945701214548050771573637832990312486339690871097443905797128835779022988922449959668704431728144533027015288802964987671756536161980608433781092455322665715740796054556992790441699653800849487744898506667075838285865640920064595468499230202503720600313124916406750591923461040413441933328689774071968931936495065586475656757241906349985112243272975196207696063161399774547243519245333394636514815461562452180785545480076456137899031025200455022083772064777667201756230578716862031629038416133733052354622677197120434878040289434640412313827765647798563152267288930348886347267965545231096336762424977266575029119504551905448769306938300159569130684069992130393713269102091914543332394566770545408057239608900876556255927420358450465376980104522275399487369289037910027528242578907387022778517315996708158945456768211091849246518703274106623098355736396499876903547012349612702355300532594701749879962247846555858014530995936292461998301815503466675093052873965825368022703876180415703997943329164386193858084620704063628744716188255201346288320658011842552179919033344629428298021448443753084891786413649291028765941032461073419562361881998369846685572362030661430355274542058095460894368022258497659716475759307952833291213784077210658705120052173203195430300511737562109971431302781360830684119907194632179302960103926044073139562613077322949622303477253965740447129419033636799551115852862264061306901282812432051580712217699060170050997682004441988651342865537638968830023339692669450831972430789444107829151804808700009919315268414287077578436937863073145068343448357163871215237600241755302368347442545389921854352199999457733353056659790358303357986262839360352162368848800173900495774604426430207347903927731250061683421495434918825142781704680302886227360067310445445079440164881033558927236488030180758497169086369069251551656087791023793307270340802519825540584205477184491537673351561992389072316626121580689671612772215296236324874400180594253544549241578762462458351829631968756565944448642504483351551876977552251510536182855910449406918386855500366817779275264604672182206183299006914251063169421950239119317113480402518553931088214406757769899512668758011883890542387998223571421795482314687601616609497971778601071397337340802806728942736124004176440497811679909985473124056536578279164781076207589910579842568399241645524687484416073427171056628468989255362146781862444780596209850635130699183198589420594145697236212130403244759732438074507470736276847560850466277958644907192820720207042798129578136962081454489574425235217515372655248164010153145190043596037305666759429945501512149196924168099342736810079490016865638147702071699129555469189207587983861646328015816501024881168784060727370701682018395346682197040774017649791117371216429629821494545478978441172592144688320694361911360976766534271047561134737556144088033702493423005656872939482938555456869995792666416365963907445488200388555060143147033309174546663066405144848506786903346282559244743920082178167198317341999536840139732860675145476298202031138279014431455874523708912977182211994854654588859158767324528132547073103120432881308430513874960899277371264306620886095670320839478750453393186337953962023644238998744936359382991994103552499322308605905232193776561096957631630527187346787582141915386149996456265187979813363590518210946246227973396782922850350679611384109453564568372890706286103004947152967268489806834608131727484183399631799567375199479800531831502658171109286363121431704662197441393027591923954682483460255324248753000550256688655672135766437148190034614126172839583870364542865239211054641904220171236227513385584050460424156494739646975595116976375040881086878797150513574122960681528757882801307574497020924245922305935395573287492833466689516672354935688341992435737396193091593382679927077072151459821737887508818516847643998265371198426421216165378768299248464328108252971102749622591418556104135943371611980096453845150816427926428241851745898701798023009293175735032467105466497638936342252110033531709454650568959315564976945634662023537646962852564632686554820333882648481181676875230837428354410392694291061129246547559282594473274191350878433268555006760387939648104289697187697613016414864838575230135757644517797424129640020588150256091709112372475607967520869249195631263353972920137497767208196125681035540799414694471280198078311329773058172663247552159722623836493688296059530332109250643830376383399516280219824006475468067775273018857905736410267467522779495795107590459622106098735120322685003044523653796965009452163350988837713672778162638589254195189102603146744060696791338574321815926673425791707301712907853942373751330713410954749723517818362262455822953515326351154837127863195068236489932866672363176632980554799985018008520164969643791485974421206652319121802610382709630786796453865418947186631602195555859213193641209245392574373238351947946109807138873886012009829967875537995388694750221301643124852888422773684236465942308088107753487807794824372270911153562381024177795345279008623295678231101296009282262403001723197213763136636596389858924752409224941418612779442978066013910763536242971328296804711036773728617193014157121996025548511404735891999976376532395294839167844410120929873015351625958775442492279418507138396747080433308693271739802482549507739112686530093928313886420487853402332929199755141271897926840067293679972482039434027905102726106842815157141685443739223491890687960406906503447557494398325124403748272753364556506079258600594097747698226182995040227687384923255383125404471508945661578316666041304052837341205468584707370734190546392505256693252936178812160190733514176237041472260496965766207896735387496086876539575741995495976043373774410727970978239174261603364948671181861540629926392050091177296424061247399880993127027034354959452070943255095406605581252442627171709903259075883346006645666494779185541711326686484541551757666346355065848577204924906347966882908536042660584847296179787965749059386682475889302229061773625488029775613689403095666372890146694239977804996218855147114868853385086939262829395430160878252439332824371571994938611323620108654265038486495961116465133310845061064304445284774709682643296181174327743218092224056076053807500755727311220959393987301601326206657500400086160762215954256985111628058715767768798312729291911549673486887775811102064330008101246153227348086737396959461679216074244524850097892680349296312904437097739840728892702702453349234275844882116121196788027173237460470724542254966461556014628831710017288377713937504491400221082144947942657673936454602011322178982233331896471743066423189895580588432259652685061173610745931500368340961263807231824888645584359501383825348546515823312719799044408393105950244240166271990187599249411761095765821513902352855253281151648950325244597146113076313112657839433124188112732841260452086540684214099088848542709888902339235101653460393473379290693449165392887537226528782242977759533059635016533905150413958750288258121264248066859926055773357493764868798258518545600873907047978744470466625852128001666550246903001076188484537663451951720110446182949838019208194574404010415965663578342956633438366192371643903907025735225237354241545255815679454236880271336660234248766342436427159962459416983332896817454603833710271861950070889512678447459161493057732935050244020816348434698657940611096163766810022445709716070802540115223619568826369601917257229868616637718949245324197324088483508425565269883072773334388786555354491755345900314117906730415520223628521161006620258254666862340038528866875075632721511929418538776070599347994678839264533660495946651256753618336456323189692028854645808810120713312999192533757361593277488035096752215151107955554705115165901520320048939053631529882975646567849884546500603213414743165154413939858679419803168745609352001208310171659104810069942650272471320487282933222099838105507991644059715313568973832672370607775341026568978977875850884190109549807589610220173484262188575653274667308123316082399924131834163210422829671136628122816663660671874944393314768392293292995290110577567947762060829609631479124184106297822574037433380650316073609717795400400766768577243710915520247149887741457399614860378573300578220445716347304874026153088683321567794470574601375851939114987986657726939049560017906255533013693768406066900507871766155173927403923138186927760996948382410413671091279620205993606762926385995963548785633229052345538057133516941387838653254452034391160674546770826882996030208794316911147836091884206477859347101658366399577056474506066602879266364051408632252464337637856191430139188422310822714138781690028697119305944345492592061991470781013256315909505290821408953881453073258399954299806139206167475057393093070249308887604090948430220326241012770824170882753891564828352224869084670709638145755189059831323647779675786914421662318099320351120825486777826172501725304706882808089069028881953494102457503239627815245140524333332371527116504350327987132751141057479750275097013780924469291854865514830970477130504267958922751899518102673905823404660573857303115546634957891140099801402973993824463253134524923974755220350166493028236720565930441844260870805712300252185687233681895352633130368356317942705519227630391497296043864907926590082657929628974224425786061446199279275719448652685248990730379787188547467957840118648274455719234565862676617975171043316233362907534268229708044089632320360864450734863548993120029214729272638072315271477302903777848788671952196175334921009593427615974244449239846673847267318973554657328489959344975823312487090384230726979078248112071218069341976393595519929832164126202563796098174130681879818603803415885976494663107888021007246988130086875996676693185000674837116397796696611620203254024701263174291647073001368633345128339949997230609906006644803723350753984258178992994569291398652198801071907449767350305271720705802920494213204399161773497682158131439451709936685131102185491934339055090761322415150325887479169562509723990748523719296288032694714994486868954327795257767786502685955353744296299176123502418481705310443618624166060865031618284124957550818598718591493246842592643925434042117879764478343961907688253185894227868888578235841483752077626825936963597470622089372305013087214948461408914047862769176233003720222125317115611622763377145817462067867364025637762954054367647982837072195068706432740071765666205421966826342046484871072378836113558076500713984898905751998622474502692495068607342637836755289351022706987953470709348466957440841879037422111625687245077943225056537513645340742186551861326964764069153874255437788261461361450250454097217422608317823057829426905996315714719466042322336483011673680029038375939054654990566823160299411644339247562694592046178890304930016386552016370229718264657894656948494748991431510750942533977086028878827502406750048964648805879893329015703239810254588630997382894935942324419010980873688948263619835691241690093702083050283492172531122852368185964979536268965579121124531997479313060150292541893422255317332054589968097551203634157444342031256250630376935488510623807126123565722729497520701701325517096764617436938182255503147891732028201982670733908649993762035449362240012204854161552011835255736291483245864241019509663022436906708574324806929256088826148661701463597286856712148096534052414618818176816823036108194969569299663972338060730550686404261706918321831614306834535915648302560591201740814505345881912284862324695772658143407717416766958212467198381294730493801062589986019244107964601737026538668349840790526087876837590818744369758357286509313978166387582291781473319503699037634567245239284145251711029055426011127880463732336391468158411271146119080810190623445175276992929443182214169603526369349620593922034237067606857580089612516287666612715951223701302543141386694328460720795493133559132893049030995041091248570688704150109076520502821972707619207877391478207052105635295614009170718916976764580151762656771898201045672012454555641513693774453224193075935538558896963670969421987361080952428785795225944701464416272473149762512763227066122840012115767723049338154885690559865446111292673937139167054350380958869325145094542113508578916004682333593836589020124729229277904864384845366005121936286808890405220183155273883518274958322502137157839172120430160729958113913339779828568517327943519102750861111583836046638086006625172231123045550399934356033092390784337617063006716078690195455094442378128529493610533218762607408367878399279162536512793857678248609841688784613586729175878342880614805724455332399208023361852951671280239326758504213572366385332316644473676891928761085162069273873533730425545369262358795837538504945778046414977197462263864160704720498788501682479189750807728030441669121115757311203598688858578456472537795723117813204358503108410339999521261529645193616855748584910539423281716423572428694402477530874085225329586049715388009098267201650721395197697610024954601250255185345051348561483122120670431966954270107552417248310275827467139186605168089107693807734018826558979252126462561942144408767340345708243019442871607744936786849113760099198821937119193944342727246161134573963673387191521688913984979346372150125117137393102346501975666875034311716372455037880589125192203814914582314037125924666011730518784987446872337854219557668524697950143406630185807174389018707855043758326347610894047378259323648315647320744574328061174494784137101471264484847721789108327280388768655980596490891670650399395763035241736755931124362159257957184080513826414043577400001244153258948448130698264352764799504810572136363083570800088183178798134575192910760141719125307330454669408293935442207815413715254078873848872767364213376655372555355225125669243364298650997781944772114568358803527237658533223801869532073834177916416345672616244201376194884087118767712676875034740663225399820881990841556486016228569272794212983736545341351357131113598125550234271941159055329100732224086104232900592245464039211826481928382810750536797388553144506991518365650296909535686063594591529076191594148707900716617756375076045145142005144254795071436580481537902922265149590811427532663544866228694334325823121095245487717339871643758567376211594636423100037485708842239407706930602167041432259520199926923590453338368618461930669462225190245309022914949871089314348445623321789880918370123196191798768600899779334198572157742086336106417935639077670035435473892935723963204283206814640635219415366295814402197963436794495154681651197985766900054101823833685063200654716620142434636423369430668438862450942056881620525051863668845739222083503355620355630485602852234009121883301752065524805811962485752019898859324298292795759999359368663677151419002267995635826242194499058527624378464617492582421649214064399116888343114225343367348785156764072393991375429196651045451153404518811564811474270070903071881095836455235511495873543583373509644259983930870050596572290913667351990881825607618288623070912890314036030278863934692797543146838275624762414091002875863658642126448536309415966601534151021168435085151821646999898404318296150147345507483918930951278201288850189352597249703955291013570988286844342483417418857436277095485335659512340966935183908000717941313814580318494037346203291657604442249682341568262528221920366228140822381847609937806576914934844129208885379450082609244906173488849502285451098955801582609259511072891080524846645692463610851153722004059813599442632071613766093472844273624289273136211885759881594530454285211034157561819174891636277096914838690307511601469341264848779319413244777789155175472845458406066355274287939077508224119894635315558422380570193274723871287093552178344890890603576508384662350205933991461183459221039285265324052306685245664650254000866077758409775596397401917720247096275463481590345472653415039040305713747143586545742969911429659652610954320793560392834004186360714812868920092223589304111489572728257763443106567024878148620446985951779559018412626779211844651149844099253796749202169970802339058621768149815540294634180615851443695064712942814989573090770870311276910184523118699269348247140363013469057472981541911614829436125488527559345477978458932623887193946073888931385117738850806073407874946653382267113410837943256963375269224523286187999686522287104995051935310026660848837386773702035538489035243916659151244506794685937130540974732778951130002763753003789078633334171637256304825497475556178022471961540113960487791796673224373071781559791449466774421662181557939467473852142149925101871252994120469618819822446363237619602863666995583362551428985007442355813100096490768614703560351786466793971950615165346270567364767760702421949080451451243425692712289715439092505519410274348217078691678556177150143634821204911610625856372740945108566301040453533699960998386598633046180421973452735369461733052957695009258840731026684800611830605713917744182671648606323149617828313168205858239173616488378223864090597099329846746454775165652436427049718821659661206120356620273235499074859904367545314929650024337648138719020067333762146325931987452280527035156647601155610748972485073776133428476327373199890056310787564777899956655078249750372023854611572843477030422646227731389747682369351113535269980308640673982952502359792467423664716887926365803813210881552661791076702968868104926927841611006134509631980746890344893483008061101159563390296857505407662571356468467826774163291824178529644509463216367221882825630232721020287959136588256927947467559425653529665650533865584430754277806437858572693739910028960213312472721094529397117359160550739625436049877003617204330929264947241874778432751321100218735570268073148216035169466485664701181204343807176789248236887082621855257229649473863043194966197008604823926322305441520195085712903489393451966589480215589680377904321448647826134528173693111233138574790264364403961369914423945142157971369726554294183837890717149828516533286143533687118872272372022982218669331066608621621047390784898781480258394891592255356886974777912637172086618213942641925779236290855213198078213034000053106100958244012476193833223968796318476456819415853935937851648309475012046487881587707464573341500801242671011099205218054801056279315547021653836358251790854807361559107498701321333548673230234908185061279439307771269998996865678173936864193509382293887978729725080869334777671691361532416677271215902662596337638529499253446660974299639172760472921153895903155696104093907162520027852342462115003096009127317166930778294951402673454048264161210547084718753649113230582746669540993132965771889935867405086734596158509963939139340053742616966511331070368813055820424276942882082113104402335969298692666287045883814658565524297876199743390591598335051588410281086139595506265480215331207521316891783914811065495628385520478907603903742450232245941438700510936922318717154483506558662048436634338468066749932152750125594274918311224929164988623812046167768658921014382458942148810327249343534058835482069373268320104255484609079663660601057693184722075204093665438589363973624596338214308741828285605948083571136876158723169149865435815871897155619953342217817696916622400067199245343688674779096333042026290139867564995264963470576224102307793939344534009719972597821485867564607525669601408741944613889764804998861123458809021078199066222246400735675358064702345857473376035894013719807766450699532469327275809570135605101942837589004660387324418469302495534679861427279838643330518531528256939446220010449334802518482816182031973541829891989444670483109774091142982271805171466217608617780475977992728529701907116573547807293764211986622641794251466759270286294576761573033246858669146028640658183043562004123662114608750611863705079208570928618849959024521046509888069957053140541627067082356830516936748561303601412364028589248250190591537261989242917333602518603586564385450622408419368569173750559102997123881040783530328857318887426182350272138144836063838643936899708019611217146494493229148187772354144609911557684444702725470586221093907703760419565691965179889627424567584450441040203477578390769278170849570171054886098876953970579644754733229581247254025640794757194352820640951632808235376346879338284288124680026272964357725400607906894758660787002383179192112397410824319901025074531187115064702189177885454718504838993564780978511555208707368876706871502315403327135996886210400522475243317727830512075403487404138878969464515334019731805255786375220252635479218032169365337512447272031634505952885173738836736454481511797770937443785240611319225487553596348932147585887811704487623723043290582444036965412464581616500420169281730950776537799666937439378687968704080340160377003771640528154346907191579871196524773958340957922137182131455543225250726083341896085680464403114766090127922978206558483468560406299937263098182909911005980075650974457542536274499166234691525253380288305002259605860345969068340534973888263282001727741336561064121967378859130775209105564530266883747628656260354937335318887275592644383774504736560547530628253711726634976690142785894014194367110125674507616508825327130377058065087960930269682088046030977731798004565769590267746202634622332483638333844240140431537855766348303518173807505979663621932189179715964094545854006092807326627876407370250418176595617785621603076848887150439142154424797742487943646100841434548702575480314644173050366931995846345918995516484422833300514740958627776624532399823437019878869464510961494275878763526531234524954800571716490759954244962822814555261081607762437865863834435290743252627365000287468772095465850861075300915474212425311628956999242869936777816713189458859979499252327882266445809210443098531684521506765759086102298634722757771652549352568182788150142636415962679909001256810643085166889615630620836368220351909813530553607290509879246406343471349798522026813092832211172743711524583983358935185456032125087190143182899689577078063778673266167817829435636292457254179803385235883164353498746195049342397147082823933079242046137483788244602156716494678664826360121922602864132911315019781424952080788768241316332529823650929253740224412100986449420727260896969070821915437805350719597460921494442274666384234673567063911855678800603208942825012071336411228291486790783011380307876932141404718820189213377032341109958944445297426163426929578427334691738924331797629072836654372733620997589063418593812777064978795258774812221273832701795071031330590629717125568642547540555661320667429058590162894409192851938514389097377662642481821665589704668528315766235113685113486763010590630130795536180478620218525232827857938603008474687508365925096613937711870224817960363764774722466389005197962340935821809616554461652671379306305585691343595768886464755287865981047378791914178385213804731076454812218869927217630477288585890521204156838849503505194948992549804235409498336870247204971432190703609641363305794531212507485315386264510896650638068036183870294852362673426329900865225309267873351376246966992720585139767877877337761039256398212948260299891707062815417473129756312638545903275958339852256669810177007002147444185589058186971557499862161298927435435177058391011488706317791889620648018822774352977501944600866007689309758577192756430182852585180479216660291851045603891769640428363486252201196457679890723237566775135270341729561382852364910484489797019094679443639386816712230042348259945779047589898972069973323330585411094483979000140643228011075754137124129867271365168424280221027052961652764520452739845866328928180569096500298734469485904518402294242490422089723894352082891062585516467117213298960350079104148884360279831337065293715187156638803568421248871403825842806042794387944114910827604157171084772822214780952239725312271349756294768371764464431561699842186222852002516898073192957580944038288223033434912983732600785433679252742719576093030625715954388084643190702895281948801605468467344581644965240471039971106916342863182226242572490415385601953023018989504195592159298320823290641062472559718765806663744736349803538074786927282535467914569008984473899199318364146746856210591466372294275467966936660209199409989547556172502339765513613621436493255800110749776315566522941683487157290388275925324188487121954943844059110443859168040811778410724368284522294792506648695299222913823204944364156282341392236924437932335778545788418517178106190575568089734314025454453845753207812133906750894916777572942480767998995527523621971523407465997596945449688051263166212051669938665278404476028071727023938143924742276707046988415126388350439400815378018786721841098826375686472230299641166584684947390328145722332208875909192423935869290932694260915830653542589111299382772741241350168625750805684743916233802895586341218690960346838729627542644682288623904203902707156306514489283392179710052827773065412982645816426221647615764672916407751533233785797524677047339858505863390234559989682911265912653590022453608555072700358862704093556235439288758809087206793077625145627320993637958595721725391784731873103809281374109892410675921086116831665425507890626791251605990064212877243614119323055126480104997863614635657247184286721056944908184090207723980602021145831250842887446693600981377345987888760943779158891024869240071146039525024462428579767354667705636796268584259682050109916420140871903546174129724174966419738435984390782567235039237012983088102051853862368075480226579951846771128884141922369535618286587155348363015021662027909053626639512577927574676922080906677463135903923298508828709653241258116739648094094496414833183645719929915415655890218683892582874047652747504610624436200786131022250845110718614893279764990741555552841754979605164785136636009713470824617011622322072962053295361723158489535755752158936977800512381791009901941215310278873863674290711857665464754190543743075984079124037333805905758094791725783991265735005551355605364523244038015150811311811425142072967977443513045061316802519792021040739498759794378110783079143313399662282082595733477960316978246900104487365117812331545772872612754647772391285526010923298419418639497703403553934841868491700964066951706520376973318423362356006771800646830593752663574193686230649636236843388119894522575662555127522697922766786108547933720598688685594564794542362162463084060107140174251242822582464420964392387073446890034455944416757968777380334526524549370428718271769272188813800454487263811974690584973881090136020597830182920170208658948405888561645998643466100487991202020432801626073502841494152642334706976866002701105997484595560577994103720346587363714028608681512354876542737353332378088333893411718884852902201389857783432886848205080033437682766422947326214356066956952566681589074719830575129563431225100826554240316600596417323561208752717614491141733025374954709671733037651462254603054343668221907815567664814512827390270948216537861011347550693743516320870949101462091919941150056441648629564216568484459856360153151663085582008387951403526665497563690262748909563302337032524178812752474341004516299478511328029192399439548066089456668822042288222813375746362010490652640482359603500066153204097736678718396561802683516940207626199290885045082247141438985836756364070559581189671781411354671332516357109508776755159681265599989958768391897364426464702943218319771749744332180391622343952480889553157545675965170284999681321100188118287412240303776405444115944930147695919435555712418422566505111234003710199629328268169199648799549306392313426312493927040926748712900370440756619084447972602806229146053143640024799398351640631439939559910482284269872326256878218425881663223796995418470859475789269747222000455367203795925371992664986774136686447183249448706919698134719485527986681793434940449983438011397143725528288093346443019313933770198898740577137874806307111642541479047402329309289152555029757567485018854139896179304554019655593476585208337001749390277480691607313431561393831917617182036545949325636473622549529946556871797859869188787572663884555590023320387601459322906382040240883911639484704020395749529413935135086358875299154499968555013682767079814439703262836197692252596422330840974726132989233668405006199176336723052859787955885995250474829113301072811954603052953446624114740656341837761758594383384687100328970636463900950005461757742642048550558597205279063445238003399185857248980280260119891208312492230221578764600792929977409477392336841926476098591580027428155034795451598845618091751097585083537382822864735710671252571132230478210050241937090444999423373699412263462871194408748658555572147777069545813973000778826192339749957880578032762841076604722693952106666768520789984691545099785330023213804078032690548325749851962974402734523768486264841085888872682435310369930074228147871182955688234388077486656179081297036447828221442168956557066592757045046542790968829430069887958738674099790731258675721000369744952667845696645576905011620585898972737489927980567875743959399811531625323272193337783411040331304140051450195603493011724450150763429879276393509195632934090899353846959189637703023512423814986783131868887605065323469627103572306164442265137818417141132442619502473971009053018000527969199834305512512036716960137891517445526358762030960834023071178131981642896691451568787972990425626259699524453375433432027510209198278720170555551702210429956782217976552629316065085526918211864197684017079327845272881361363194935121390179032488043497777612441658828613744460984273686174720130272024816602889145890879935334936120955611477066665394413941511532637352817515545855575346432676658035559625565436912134718249535265282559675756510688241205770800655112649138924297740827975221122760006903142609183935921960346541371898663048899064627235916793528680859121656864921704574891626325366689036361677858304732298393726893477953356292162760993176469942185784136020196625209046858677220079173468435484629885853308681470054491635005610941917344207028057081851634137539455282244533458597504566831469767197422183675339480585518133742501364502567652238322358796972395528220060603163526736307593238063545292117529214452300711000770869519823395597764905004328564580634270274517097308772468815165664978504797293335265775450337482067810569729042345015337131943522997961997042395453093105211061304401433309486421022000008601964232898738181015736916849357453191261589684277430401847571692674205973410273630488196154512522889444196510930516858902813764615181236899812074221419708356945862924505496740683245877135253279896166526995504694471596519438190224564264826804506566993122673371632028347380705034609513587668076987983215058344645118140847337098753121124252659702960569618859886189052058096318197643634117852090920306830028943658748918988345302328503608877998347483322822462527884791295648301972288961923493846382740367309200381619866491452299859138239783767928886765092809522841619255496308514649802276026261314557068477845991293794701526703039889797541184291705657275392337879354237363653875628406550659834209655595155139059363484040509483300890754691620093242854289944404264050101793992110486507571086204275749095636746662513390714261656115833389466776349324751705635830576453457646423538687170983491314456748753535231458153693342833523072242081003139874776709966496404292139674230544669904270019162018961535479029258743772735722225039686039635116780608073627619882990555972360632816164077081063495449093166642031894708287021347078419947982209232448547809710631476828606030948812325283121424066426575823570931143359464145775037755048870961621604454229478546137152615306321656533988425886792709713692189211845650817276247551765158454795460724054707349542683596819217586616447951222654769533452866045003999042364749708628591442957403150352023877859286192789682444229419936398507977084629612738183479293617057495848732299631047521502350584399728196252791411858792560320011041211995581656066021302906481860550067398399385347639696928351391935170171153613511750502770198394473439046725173824101779856863952490686642337107638567017492363961009559070952689757516580457943251174646168273312589152262862745808187281706035394678916414501267053469448414724606875078735604577697446971936767101313517664633672451390565267383044347318046464279302720725419611564350880463116554578096569758167708818627924378161827072270468635356848390056680565082312480803703528184130869635026311062359121017186823489217758294704633472667644726550022099705496038219517321164202308285138603551811963877370233455558912839250408719593992688105764564113261757207321904808444634686260340706608521045912725838655805505796090833585178592408261169967843371350721411596769370626745012271515361563853204199347363829347194034019249157751098840810799299015617898288701323386161132367240145660857278302052339810672626068219939573468239147805883683777961267898454992550547105750526505900410405500800730548691645701410780470749671075932904815883245000840523610942165535526413581841693044879815889980158780309691626030220798212212100938433633615344189549301314335487824081918060231782871604106251363792508236435161753024784123637056232224008395247186162324573519841351420329327726204684510500308302992486139475069910648566790195176355829187312948694638186416709349274224789548955096687079523898475843408644616321751428354354859885158553201156116588179793382018814732967493595765857640916819569735356720097913410960916209184503172274842996912019006924462517229226358347182649181733387680491196761885445890694436635175051974526978789313953644702325922991194965302456169927992028698963924274151721444956609609201843395047168533425000396412987882470704439197240035692780567721205297961465034047492698992514072173801926140137084673690823138237548281129531222058341900700533753765445410250268650402716552005168756206568954892998208389454188909864414325415575708673462812262353437841115953679103766019656335017044612876230420711523702029286664262269533043419317632080412413885890228139030863393914792170950927153720410465580599030134738473420020713606737382845405367335409992183541448892646588241514214320581036089815814479267303325094664290420347722936048266485755192755733332979401536808453135679178159259698277950553010857772491559496671554602437006795237769420031998958296841362696434071895646558107610352391572349222290415146586163896974313308637748487788278106403611187042297003757416526975331323529730551226071448497530431492936065454921706104094739948104613950382551149465108716797329274101591817311404747283854483222081051081469427733865336528119260692754171495438446531194514843759816518047631154534968634455343781103370241954734801312352831194880910276185052531572671803621348844001190375283263881818283069837059529831619811063509083526976110663080324023266224146463061326075768876540791409991307679161692491736450568943819993859976364181103456952605109399995117547598159955843684484256610371073325109273017920174767347862893370825757762976702834767084077239616439091689504852359506411852038602733549123548214014191261915368427524406382760688306289322041209463568039161145184614331803399792008656732593184346880483444208397238333940761098542629441126804745107470412661375151708500889352722104906230011269216702625024135096028362715406199726213092782790949927641290994790126740465158263831385146142153515427556127972162063238531529682457141906816996448691073059392462504703046210187435407937821407966779237512443855960113652871999043589429619608028151511434506560939451874871764627606472215485727618356519790807593275447810984854809977012180188509300012347463427894930747769395191758998621257454676786269463528311056892119430754136771906401720017262909445604993379760681302270697962631884314558277894572749923050088301806490907715728240023201606984377967052310063913308465630045078587929051382687952958821922341404050593828425507321423788908377424859788791733518847069740087173639983639578914514205677379601515935541364217139261625573826507357809232515674552781725980264129957038270747619011203160248088239516311177795715667883763667390446467857227537999195783593620798551357606712537632433233731255480374103678729746029528311250632308890222594472627560366377159371636297174193218883463290992827864613171886854903794357445603972454271394411731762676063701079142272429240903376281447440293540482614856701260807772051457930607548364828045264617529795975004134725820344670591272961486643085670918061812836710278816939024442308192962588309990339337690168552930769983330365861729891149178024565096211399274293338583578091037627377615121274467474691784812943704139366411835900807121281608022660220730298194264514157155725090680259941067889189546210216573234962045865756360895259910455555978022619504865484878971840786679597508583544374131074019784886820433071060577299187670138092897563786145969643508978733429752502060633672686613645808559055292083446727911226918933023756252562290189952921519569026462219289067507177354390738620738594503094837545815263734404915185578237855399273601781899385595152829921954580663541338339784342157307309201954002637941847624541178734255545299125085756754401575518906996398012451640608642198049013410373322218492565990993961282862391804710511686465132494383060880350182695503110598557895997624736686820671819542078330192530938640245345294882013034708316405151433269089862733423372990013967180199769827527732006206593802881553324236400312475515484269998136357268405699969934088143700216608023551523900362739219889107220796783239329543927779402982853254639925175104277882335092417345187563442444929798769187518282226186678694654596326977663995377637396368801881148296248630458702387624429717882802477051896078899187966750342788759872755193639570810562347659965416652297528097613215962808356030896524050403394281274858570371720987309296667152202233926278639413921384326662739107533162826509438276246723071411929884639100419380206135910611848849355290971230819266831364470074865933293580686286967061266371964127989617609419093591288789034716121383138412166257366051256656346666391562413465382067670543449213333238910809014560141460696892431501377299880929076611068738247296206322389616606922740932596929750387753932207155059066128624132523537911451346337483418820676564462892024481853040554049221959379140420335602868047027269987618255712316439770451959308039617017335908516737751897737896715258447005376365565540710483433985116257525008374327258141455474612101283458667864471063352815683756408857145554954971643778194821774462226504277518823323744689817945669760106120512271106831683842799105434698669596467147737516141769396785933913581851668103014211857234042648504733603473785772020114235074559072729216317271067434287609935880350826670601294063853259452749550981472293385335782060784709445379591605772697147533900068833567455369037199327135016917293477979296804470128398333816784610442887999093267780441806812952363144753395249766864958823319378155667596161455277949875143534973019393957266114469303246806123357203346112832667412038628759071536623068715906430783952508265110279016509905349175580133609983841193294328648688505815296859104238315088449773758044184129220022072625878738394426004845363756006010940558487144591010662590704535278349659958301835922314245666547880607183160903246394580310854587424069186844664989381962019864287851951660761154550747202053791792294052315993814049051777064848176102319618835464619755100363005124933747010861135490415439033165897445164405061364664845504673463545872833110858408314010699411523254478563785344290716301556373379485172296701588300457759868139788815807163723232859902862279846679886512799205356962703830155082835996984912525676810579393641911813070595774034719195521893767437341959054136258486962766287187159552326648859577643422002346021427933392425646755319454524763048478936828759853677198188490998724067315212343393399336643120046788311829097953977886760266287434649682338663714069820593388036331760106260948240641362334297775101414319534578307246040142568681585490199089433131575060022683391241830379164527193884412018030416968290254016776805745821620066866393770666022178904271441790908030813731573508119916968851911464071950652806823727814899433822240550799341534890478472373509681845667314199817277382244102746178304029263371921990181413705090965330959747399681714138418804801785211554325608380388374925558562366327967788528281446873087527582066486274844727844615773343465594189431737991192476218613455678018769842904642858876112351338580120426876161670417369082293377071104622888893873667277288219624090006585627079440733132559229339471712942535759226400935314649871617679587506157795381596090351930693300700028634066413514520904325202946492948997205575496529085490097887404329344524817520798180898333584516453876249278700820008188076082186235407571527126408507188954883950701995265690776869761160209122824338137888401694873824833631900384796101118628783774087294075087257958622838619625760827837923317111178553701786022960885641970654894695785336682961413476339719637535233237110022571537523852292178131499907185971084187223900778734772031700387139268744913845881661681007261798964707545180102526010505528568242521628410038136284928198443665688870504156431555730446872876534395026038159793675745757245341191521356678268337110258556079752653276573652085714777950547929116413531150996020267233881308402548437909148464663621043477761840448979184668523282868031293277625687115765366383061288889009198500612976919519921581780378152758659134874035084469696401201258144860734900726123967580287075236234838838521660427191495291890407445803855772243794734550602928925013294519178741928426429256250563303579134236636656922579950593295263695897633358066261075757765933244240951293610339186326446874334603951541730575691932733357913801093443381706144905928906227932190901810905698224162056896529254947292676713339204451994054452910015666402878563085507741040581799414600502815358911902923386936785255496651391515224116130158073714121380102487892479245729138277910842648031305947253972739701003949549752655411996443543323303080818501944347828522544475535154056453664342674490055748341068263073281539608981157633600123672278885284268783366662536168793838407594258280520405283570529660662840902504592857256441929393915078050134446796318358164488405029031602327854480801199206335720841663791542370105406473842908921380405638110272213580268490859149948622707672857520131753446827264191434490853011480314233418041356824250176563785373810681277099715510340289163400669372564667027532687689812955922323824738535479143414720370049040905684248176114658620670926193487004358746956270219922529641825355482554498691813176942837978236549289549057340093162439266365556599931946296224820015959492995364164884788457170736032647302709715530110222018853585552221353194365545619204274945113059870659101380411713547067729868931971482720614043493886637254562604899528077166025730574366351796198566502116051482863143499302455797459332755038327623816282588135199727122520743539120203573558058624211592056525281527187068876762471000806512836838828028235230282928871617298529990943613466915229297536265376924794742594060462708048897379791521563971938920969976461336305141563476851827084559779324262661592682592016465335851383631613968494747106944439399832269144655643732953213211949936574325217806128408434897977652656217364823739054355227783874858434432858116897123533120991798905859086277450638548714241466688507022430866849650163685186973047451557815659293324531654292317460161826596071540077199401706367274984434827116354493555333953330579872610241614925284916433239931260079513494768355616396775448293372516940717930736635690431315245328154692620286072846985674977240364328135218589950255176439543240299660305662748167804989370835761291042346657102080498517644306271174598385348191244034442447582572738022282639843264596627702611945148757116850630143921750031191079525772872996059873555762890419952257096785713186282399889209200841610624479412472640594180172353702977932945790194244399341540012581310893816690987642181484153256908937779181001313774689495678226083599747035654818008034127300864240752541938407346204200837834818204902654538887751936216670897828554253867823592493610473746692413950201077632207189379437315468255560251847595925287633324631119523884722063481049854456274035452423494491637298257415334753575735102984200785405771349882519172324595492999202162629097862954808144663868681283850296326563836665348654075826550764524813371888549314937597049187591760734338884676766646594484342928096454784513378894422595643256166864314431321370781605328649414745678917244719843840416342954768435104463627121848139707856433503524015438202150074662783954634319511515924189063236317244873681602530643321434385243096917287964863403642552128356628674830887039820606598789838155260557228764367073924127406183749512966324665931817297084969111007640319233440212571948432620080761145315284353360108479486255631628208565306976206824213472866432707184570026204785788984716753642045949809389638451894592496113504860239388105998691078133020233884887189389443375125862296464605778750966774958772954421796601204963431931009090527154714098728852270533115261717001886947452830620139972045903233810810842944967101947703909031410961617302323226719446237857698950581405249109815189570672189625356595708849340971477569735156197134075928559001445169274612854605095678629163684024848221005095933404358775823127914591022333441977242137409369227789702952012170921414217329647342472640503527800799848912575703156448284819361788580630126837622334428817518073123209281688218868471077468388620383339972636114757645269419352427112338025214165999363420323679655266736214083655928547649098951142275573091509588112466259495509411152138827129862244172721998519717813945406635142191203852731063854296197395449298272222443373750480602051240983118061960494386212469279381532111081285507401049569568888555885537124128846364003546809648657841878559389153056915751989564621448182055963453709536850804519732488326421549081124037433360562891137235758992391682499119627953762799536476504311280184018754357440563678134158399416013405613031321008505155478456599438295559964867544704884556682663195021168700507245418455106689272019705286170176288391092431660342589514626116688768244163077424192012251330344613220793323161654217737094381648992458922495691758455844308752287159272154739629383225934206570201605218500888214244884628231335813351683412379088054415807917246264311282604559402673732765101149268026991168100745030332005051171799099646940353367356640916595645554337821018859109454221733120441836370810628680905856113647653745011480838138025603703216091653525450171308734155564668645609733797880046060823595059658459817144213709183859350655146610508254550491021181587146307826024380331661073539378859888897547501648295019572570538562907089432252002087984049191183660805850490854365622056656098200529284509171581410457006399770506524385949172509579593157958341711501592426496654868999081771492171480774304891005508068521740046410553524133230275651981856754924636261314295098834996667019393069069165976086974235249733096088452183549638202487182629312980020009315717458457696614315493005033967381782671251152683361049251382281987354372737250795606889884528162785246107329313703784994348519512841112495048474347860776376525458149281658639957923851721603399668844277926422058403877791884155242403756642491159354784018083897363758236020578688655765011162772407552143345410728082093220955311843132252225269533906771784109285681824385200918414714722610247422243016239354999479363388149469891447634108364304004155029235651255127518558241939308024652976280074477005786919329156679975287952553140314326262247620881744271738420606200440725642161718047450818591626050200949568104864151153000642060168258816124851180090315249339995060151138522383118804502721426951399865881106229034121760046002108517704725672267562986609065920661503558234304142071156524520493335393812598446247269718484371002198107976233370623481507236279234093704259915184761838304283754382590851409795925481834433050762958245230393669264927097808357898517473602329699978501817728649523926161561226411042033381129757134061944949686370688281214866163493214441761273688435538038088922592415803396399687044171195435520973130086290996636199007564188974551908154791383907928979272026632817511782350705278321873045867313265546651758247498789182154700738677984041723961200123214454201196271126962106444630421054931223245676912233692992521676093707481502697253178256792245837716992702648874624379547842490368769327192774332523362766359126012397855600449068081834322297876816343586909914658955924999634512556146488716303165943451182503904431832028267426676271851751461988326186189499781784213359621522794467053663874793915709845676734661004025042707130151526248252834416108144107021764986725666553876997851596743165417537483426392915933739517695895626452225229434046088661253626946018969362663066434104139151418686025549184067543336939701847948630218203285884882899213057725333606061686022616943679548356228594001500313871487411022027100179901173539697850051667108407125093609370449400561179515198263062095223636686942696932141084710659276369311946110766631410150425997325313122436531527500900011209638406064998133529350593614519973156571233901551998760789976674529759306286550974471663033180285694462926205031275099416551385623139857313485519650127446490633401713228748846048269928067111280974203503965778002602588427375331886004174079369837255728309229322069279297433374409190492291060398046442190245259648870899823874791786046845166156816451288602338908443521828318241750201200884519066839963520010265833675964492473232173012077971294857556081472031489413397500385336554750187082610539314277306045001325450588793361482005280429540726544055590079140122750003905440943051642537070000933455790355549575328319675098827415503679125150518786367499051272655809540810309574748278752979891826536930645829272729662374596732097817199639096038568599047164925053214446874584762706828957640124894982452862221152383753514950440362663928403184139623175777941400214711411274028467640174211180793844437730417392606581062710835624052858584840225434662462552767111511722696757087840271565556504466500281878109650078873979393534739879175938294272762962811822617332784201072313329925466902564975215817055392907014131046179015492470218313840411416363777953299338227016678965031346593713408217170311410553054421569817625259170577173103497227572296236006716217599603981035597503433427378162466462786584873644431304092563741774224544428440300958244811498724728135653179827763001954103854020708126016782288948484703293357363517630524863081098464589781719425619225557316655801341450951449003116314562284032098904427351032663931086842082642202441089872931193034897115353671734665496813855918718056221571037717564974442456596951361822218563951714127814773415392514166403046320711648596982436315396876220515313504985419900287498466793470845543024989993257184139168625111281891704823603407122396447962742893890747581606217034678148617823827254073495223865413686006004517782330913678473773016639797192201538553035554065943937939994425420464048826170541893384078184397533284471311394643768777417542537938950165403492261422283711237292398600035502602662353484701674007969951454413620394707415072762474418337363656818354853686989525531621757011087244756622075655344376704382060709477340554024722619426909875451014752019322380020832057093397615227447152795558011886078788502985294859672498005964300751198963121981055262596887512565051480335684114557609290445537588085249226513476684086870411573305510030701195270902361017608522684282225794911519344078813938929626600037401636513843689270412903022544030802551506243140550385343119478050708712813661062085726339932629697463496232774895193063896860155363377466289786010338848620129056001212399422820167527625012482093465193234059674738256824576118338869830272906364824347142569327392739573286119704715795200884009894227176627137105387976676706277903362416477961468594101438882901720867442350094776299366796669531525995153322904985642124089893426340798555748090288984143713896766566903242628828312493716626485958118187065349962792140073650170891142399674939615661779603741857789445299853833185076845225101832444917863681379663670180064281376512834959732350559423028871508175339400553469250010998227212646752154490257180727529559373929683303127453830446420642416861736172069715057759204416664988935342628758834688565532504049418390719214869804532433243432107857339453059246561727567416967013116595947952410503814620883009963081781569618542527248815286829745353681759866921689418627582491755857266697846964217817505229349172119948033220359008993867957412503624793843355969925738653194171303685085429463059873105201681154525741441646149227431325952479485965755894491525834979109640610541961988283134304979980673590691154379379166484556279291485275509242567026688643828513808241683621931338350237978919660288165333205101698599880051437208661670589905838061917666309289298344577497681356936741163765635305917517742569709365650403833438609754297460230384958880743017804101029355290966277398852142268007519949584395951884175517809087074254965231614540000446921113141953690700741939377091130301898193447443768708879865206075318281685328266105499346847045580500355206185680988952800346639463322951460565845886590538119234090337476551989030914434726771904373586391812351801285881157095037182538690626959445636465348491849558746522641847634673874251546424233167885552706174085724056052191032893923901716340549019470456170437514955246683546023573552160103038067482687374124269951583423386239643894314436252257056191671376067314448556982624892827987520786699253908502202597231338240621673824560136356147940086569673893244209557436056120986895171170854143525025275936670167389847878008790193891966594680278301098299637568725214474621357702161186437789798701467100437545851127713008384980973259133289095370291702701481556635441471861107971058558746346199969935769436077460541251863252146618737225456509788738493871137066150709082301383962126601495714406251195360806730569046836172891561501275918839156952090054053380698436571274702677327004191723097485633093655896172582214668192238675859708734755668994272654287266776655535032986504870716629599131135757940442364612368076728254067390111794609880894191628704260085581116637077813265278846574761582861900437637737496190858146544864654932509273122509984510752977980682220511771388780877864277940452694939415323411635683747899440727123727223432501892073513202274815236267606438093940785169656943800658370649244904864909357065599079967209060909438452001889554725995833034819611746925930776935362071690078616892219350140675075249239667930644704968402376662760601532979568811146016201537765927317243047306874039172712900678519896224584458381205497635898569407726793153511767493879446440150277820550248968738539604822075775900612877467916571396634179672523496924250936152730701175983162559647463976327954069999489138730483804216028805492181519922416040247738465162966931644246705686377562945106466707786676838383081754269112119072769259496064730302146634825763671827167948501962975896817630525620879696938828625457331654869830468594684264621283015905231304163133225764910628055339924353172055333952790427618441395413701040308553901379072637213510387979214321111637790261185933141624349088175710563667104840786061483802532370678015569797582472638381878675121118463324697273650037300084411519105478143543735908540453500772391659832295211613490541592182660657140318795792317303765843184234150367463582209901595010816846737153704591318082988135245361090982882138739579335006268343744195942051096685684582308522922248745246117193207956207039815650455116498297236638854788882982421028194806865875615821632526961739985257260045560367952151404346181403753584642744592154806069814592883326386567011843103010257572784591398939051417426179833641934720975136173355856226855055589645783409960080377663321647687348344625438466289407050927827979301971805414476609256648945817944474930576143310347268507871293252609643830031726488557108956265851781796080962098515103800624372086512539806350824809738370537065932859029807602005980497030559133506392617953283452726070146078667682797806041699117777832925823346681523500557591625604269179597639025819624590394728252974249473973181361954680928846308403579667356976686249016253819686921301244537263165559669323608072751666583669492126968275312176799117220766406348374064083368985980483690694885925025251837219094989519210039269152926576394202801223502849648865733332946285634521558589686903717022431569480469228066541206296439760372767459887441200412697545445422717095292811459948989752327239240052435445012657113014968505899568006782253166401925208237018646476195317031004362667020791425178116663499831266919555654917205658395754813158773381024320723878853162882281848259056062390513992056038502350741119213571886252753680192435718002327550164694272725860889558926611665774206085442706548795080496694188823984025903029338314654516067699456435830774182330072250293741384064657923426257519698946662537218165812098511893283261874447947532693013979934378791306333138267324343669652825087447459790151927476177595742752835258934435953037925665937569804766951730128896703127069561887266845152245683361207859297933763392126588078950483458632684159178752336682153344865992585582952754206271021563567170484643303005749901469970554659248439256459289223973630535090576097947028765123928961846722024146045307499112445885168102693664866260878894607932258415250093846424234420956325041974260588035112576265047195623518482450671401666460072949628166263853226998192431610940914788558746097064687264122970745303147829287906809710020817627345109846208326811719636402659768728899493034855081311040031665553962165673461313901595608286379195688232490081691634225512954754139808042052468974576861410577972497941222127261553148428531929106911332849076536415545731499974596511907127575376074757099517178159593392975536177981084939679112616454876106261652054113847220532214852316974150369757452274251447412270497008347574365784642561891992037505234345732721136305292278953140234154915685261697674079837045120076652018841681342355579732735273421480145340580471169179557294527572481730019123320561163991686444713318760134582857591283109174210716220673569223499539684732638055477663938021912272333397775099685666468076129370869870204083671048007553903412436483785254888191110199319931961397541807450394744523304230191337115739660082391957137249966385306003446708503245088766977460586923116364390556974293037789753746533183240075790287624994735461697132719059006958199033700304781627235925120528309943696247045354186187642222288365608044274712285846936816766253282546288833490922625569526409905788821532203882424562606666556574592915582737232787485520840413637023800149993692963947168623798521050405900833995743282695823239787689151285217982329261565094147037349508216707949118567586666414766385418114537045764522978190197998880968822880332242310594226058168179544935488185765258618768626827059714190363296909927398238098303161856601380323535228308813093894024722867647685653281340414218820130559306495020832257597513061242570046640936391114869544920494717222939320284252074958751409057769733254068009349179794881253225581415513806806498953373331782182048184459646026001022554748527525482073803081493869832682662736401077287499962444380200588260553073458264576868314950237297683307661870761504005465794358103512660371681798383000118550902808888187819152681490155381321565333942416724660202946995269606560421181356417583505151826564354862373636361059822319540072474020817330083122642574181480149416825316867733690567441265094115085339973056692168938372528625206797800057358607912840468499759495816794274176054274103375576881550021981280779544391693180325906265496758644338142016831432311585577149840166279025607357475011131469099532398206271141796150905584794426995450509659974345380631485990472132816796074294672172673954639449077928764095107606927803863429253893127335268081320500435853950593091784269544105424287766245832134708469953517125515379637059654088444171753968237727846419555350444667971817707201259616995288153723860071138292865396041270095209007021233653754652320669789276656314909832090871952781962679095687321430993091947005691148680631950613814671292988820292306151467301254066078073508307923847739730731219130489035213550991971230731135879119193476157984348968420104835123183180513880836429694011428066720837791457260556339854769259013143980022342238947803592762730769964888858392992952384616531584821714771579945403225846824134334753557049247220350043953256814748434682692499494579852317285872874179564573250252560025396035605899965309643770437721850880358601580490569081440496379182622247258534265405174343333955841718660574399495108053206557475882045631943699386612255978121658736691149455524314254893259980475779615992674551843118555160879513151845696258995298252111197792366934332039132638041312185758614144299190044859449671980485044817545038027864699738984073808089173911564776389651577290620852288302184820283008486335903935314269051369223083331441968284758671064308436988150828235815591527150306448271878458832418907234443521075480712133881333015791274619323753746823710353359251117720275875250482752854456251732121192609930561215656523429611844443414767665739688439964929334424869148440998012024815613527878841257230926043572375620686653830089254964707462509456232269156771150502328208118588467352738485045681275702717968449819342787199908288045772694193459666019707380430746980646128037893424045060561014103252904009532515642384096595438693580854248640180216780284925395471750451971498622430066453201586161749794578274856844833533747317054769497355117727406022688590847657966740961152770153918774747797637717921962533456105024387769651764445951172818837545620416651600359417871677587816428645494701442462974435949284050667495822604236785811607080827638286366822378367278690190043632887100630593177796944319133463256007940655619613816538080688551495148822951794927010018035574682187549202370535171674782809704700538289493323847883738849257929983994669259751606786337459139118449805791452240032966097872194417076297722840914256639223082014355563966025962143792241033567092456526623677049868661270255090616335402023614813849877585830328209736092849818351416920661623332476183407401918771638038041553128459552882871876363926925203972944665516188125059567876522589057057705696068533993892614789096487068456166004327849416502398293644359715855153155160638580709581526103873032497265758171160109046329273068061320200403566415452945876527866674252283002930196066439464826096245382396372453507512696761172099177882922022664574900686375873369918962625623818621364624356310069743386638022469011097075252639901946869384589399555200947088761066884011469057330126388484700782450479842490376846951216546689783261603414195245823830131717809056239470017356554254868434231295060712423434028543929129687576703079066398790606236008183399489020410468196261299972051023676619533101632612560220059217376587713358417424562682688876956416117613119318345778996740588195908914104383198256011574163534222735252679158188948282464556703472172173785369151034947392744632658918450426482438434760565960830181509902007797814311987981805267979568609226498306056374754044627539342128810012689268297091666942418021949488589813289220199765000271619437276372598661772192971421044894867713247801192105939507226871449989140977610867366800835051456998932234836175744600931472437287126346010919013751607055132856792202279835824025620271075955058507011086569835018673533637172988373909222609964668058944344671095027716998650872261532981588415003818891515049736547533254401327200073613078004407636044087701480360720203282231472981324751627455257061660268574851955329793426035994554593585399814885085516486245597292890781646976084573437263598694244983980801855269586423252318118437794561633802649982936197116631333719526796071824512630102344202681267228218011123420960963689615155136661988563089929223299844070706696182816015373764401185474093390439567145264751575036227403002849712330761749859290010087623680983342287895972040517214747586150234135414894042015731719865988572374295692848374427729735996551442652736772690633726174110484314301597079831967623518202126238774293750776427820606917742145996257718772768373670533504087806482890629716297715031218355528649199864467086043967934516241928999522568218903950422678112457482902187420973331612214012371920146406773765581269692637076769814736009654061494094232701413173401060548973361733301916456387563228934012698020063188924601539632900739072207501045211693837774644069186288590216303024273629202433975327301105004907297081765701821247172379891961893300946523646731626787024283812713566547708113872443683351919298929419117928206376456398721252518147797682066834402766583624755151269633557018419084881025075937733515593710347877734002733074148457898056419030529373135898751239451575964689475394222994090666818119745791048822584711534723252643840429391025315574088753633853695717214514861928675534756721259802407613705581752354910248129979423466100632327047575024354218515666971976768524781447601430497326581499581034395390546630101312472710527079845469843170854086374496121102571011826646251599573280243167554353968993042467861147695436496150958927107053342057886889611645865504532877436623341296872674933534795793358495712545463450675581698950146176641406147178752478329322918236096852889705010338523784391256782430807980350415469311395837091938614194010280862213472213827647794713482265750726385799672311474363289310117449881770863376268684953170458802844368151622416991299229207639322608418240087550831920894489761311304942742890149832370061699766505885464040097188743843807888606007960390601310065815947857014456345156579889260394806591364279357863357541771754645824377454574827450997355637797893069654616306579352764107849663617990242743962205281163781469967858498680042440642524015318561650228230771707548154188966929000000456379818481428937867529233593900764758052101937627632420087569615718925724776664650344429018804458189957408415559013289555024521007810394885327671949292500334021198192186157806039937018034094434053608068552821738725007308136122952180188034349668160292122243320037001630723760671866764523197676656508619879203611624693204498099614670732699087836963968003488240741894403167517554126088703707615245835394727120774936016640798787237289049668881059848906591635562326247187823717452874470521916768126579521777945528735998349149941815311829431886343044962074746312269973034737769782283282513496908064338533771468935876998060429074560458519260194244614462156786533763128644308536024669943784268666090517282174023051864121758067324448493476218652760434977930746773255880600224104199067751397057211393842230408362935404850217745881419900329761454487002445087438483415886856944306313867525992290633845860732886232935370240845265852462812756816427090016814648669732640758502582671288528210352144485995169314915880297740983487156670249068045615792680552701487034651251617200543177810409391368658003055244623667140738048872883770102650836154724263246639359450802101727545124758605443898378418686774754826294209196496899075837364883875705486721834088366202289314642214589028543141205013080576419968523631765145467794058822313559324418796973156283951944238939809178777940243481671661335391781521946415333818513905814014705384792048373644289618557784894284671330279380077483366689555187043088637123126422874314503242817481951831035755139348310752756081598372492907407481996002200612081210306501295125444356097605260894335054592817390633917636671432415320734310528986820915037972110785435307184500181389457688258214134559450904100624375590099011961826337575938094771468479673245516329243341322256290815212499430851498971684507439478765976978290351914079510956840540954827611330312344725284457462230925108581100645515097046181985221764820750199171233558310587328239875711983576563369286940506150646360259303584982965510047049167569354004639544512235390110147000947961635228561707502706763501415708384859314357279885281101857755847361889673947764058094726577793354446174046775795713468482346224249701176880726225768586319986462402886769671961920201381222660194494897533922526705224537132254655801689720356219574162993899548554796908569072408377993962147849592697462547968478936167418099736709336910950949679621063924384906296140642969054413011978194587405383202561612846380880943162930962360666717458369860824307650283962848078387143181690166432097430506944687455298770896754109514466520849959849746877460538139143854939561847781436356377743614925772497588012597489368651967243406303301053608806610319237164267696557212374272626916464625786807027216316749454752344690166843252039061521552982093892044699242764811181600536476646917125764518355561748764236107968308909298406749406342855184502798723091826701363384626844827614668630222296278015811812559690781770714767624328921538427741835489593165714253239024051581053567591653302218273819854377912455099482787032160732942188630669972833280315319169056705146680412091501175497399098816528207993014912441255492544934675524479018489147664162724824293463088980440252204827155733487052985997669048139173530920215603367342664125420212380183988640885321224788815123184034241366037196184955981995774544101795146107857747048639874418244146003416341658942383038974746296839019123455082815080774571028820147755212202684815086551500276921085441159428126774820633215098512772734239471514240236566590348592004858062186575389886955503444730445389111502919168099687961596705732320430917846517741884246405804889801815115161776930048023506578159095665883218328825586542774635428645497080541650497787404775990145049459157862898370315668104930066769320729003088022699012902277236854601034867218064153842251450513208269911430158276575541880566181916966054535245624892194797003651678169891785253007460974601744027141429320181765923615416512912241704588407340553197183637853016179984328249807657867825742848376188376990354396780380972824116234338315601672905581799698505949577407592664663007953664654199162698324048552222652956267947791396554128480106192682054714342293609192437819594681126639196645556266985071530263634824841703668123274816368809871288050036208956852251666708716500433593880101055380284126881732602154313651741931092703288591065570715256572811469219749818656486479268916435518036248496221651293164189038167511112470727500410466483600453195571845578433919751639152958105997924948963673383428905214585142368841089144606086031487814989458792981786951205629391358642962134397953764453836984164457684835984220411393713852743894498151745148673554317242278885521524975302567268358727687709058440082214073776549774300017875706642684589398854509258122623167111601467322915752162949942185158217295689279893555731358943367185893385845518823432780784982379126457829581795230342180519012283022938884616436314498177201731862122413799755218187522155118168086925685773467249148947816881067672189126055747836214460351404969770459919869251322096386015525077405300102538961523286593143024321928069500260423205169299955103654682008927182284187206530391140158852689812414481252741311805763484425028714967097796172627337317676866057352048546811940597639505182323349310490769671490144612698711850865767364388055860813385293750240874903234940131129462139599378578974009275408755788723291283671672961766568039398835861172101941746650099932401282834161740829863557282627028802069548228856773765662817707093575351705946463688213503571567543918958148289068522433292703265142643202738924578070263814643968406527621820732929178151140232544027781150041706293918699418823850110414214580107374528925721326318974542889864678844941913314556130293399643841826892277194710437723372768692697031428155910211194435145870847991463663778383873991535414138329393967032889115528112479665400157769560168683190234473682933163259874925383812450250859703332324097444482092000851092306409870744046767957317913626050635855130388784998663391998456422362652392158377339789389997482778824864927038285068031069030477215668115257724226570656389238198858485507958724899919276819223870715327478393762138611261066718590104652305486479025993817381895656018231732592135514524492462776554040987218449050517815174855426239739733311227426688864369257478400385301551498028429719267228067797053937560506591573988088494115450514944017069195814162192800925916957902002504628711642390757680798847500028743425028698269148007307715371910124876077889319306766948658878037989457646138464662201907127007947771786490682779856892685142929381380699682014351530097457613094423644181068026121640857047309231079042203080858280056251494081496065834239343471619402208981423545826300789923025893190540333371928461840973127524475726693326584444547999120954494250001411016768602363593308085569520668194653841909106852616201607481809055168812857077273757066957264392890809193046128800047154804649350285239297456593549793916362131647842311740632620292474400910283856058523825781783363750554905120521915908687057027773811118492520948306443900397222245052958611752530829242886072969645920869788871304294587703730486497929898759611482255133643206488704218023625422970179782535043841854956996896604539561863655988246105071129163162728382792273804615873353422030602835840448929256840766528176396361621499929956009871918514057829890897677642316307781869521763807491003758938789218294245922708551775432187687715122954178256813457523229996617517019142059205757690001837174653904981864646747637740311346553394879939655363763004182824560197177771688135279904577911207559234786939361608076305290721431929153182691555895655632872001732128868588521557985386646038598875226207313970481038624236606532921460147453844840459532737352880725348746251296913861044336214910583694789702893485374441721949367753224667234118393634584684895636408935911111760730190459961167726935255481717836188580305832724442983584828673240157177984889051454295100472944805058376897513096625133083193307881304923645488222287846369717621023758339152705320720242593368352812643146202009313608194628311010971176049811916097126020243705952948053271664381791945214925616408776113283365256467333375214084022815039140138985058041803727404342368735227683437190043779561079990549217477295782403784143086512013083658886573703705802435528447468886045714905009180879644668293076244914417141711712555974289564100667822201912178701031989884924044965313707772445735338357111794783630538113369442799775227964071116528942701543830548772183417502259823081876613768218059347272943557414247327442739064875267639220972230414404730354599834336783844373243910735878858731156925739186207242025736725908298775698106411552010843574565127617494321003437734852303590602748112793216997252831644719786064701862404293788696404921910036747406052597522174971717130601951065435137341744420621467411170843777978355865605337787388304525464367484160247033455406521763113409182107846368962584966782902455738203910257768891791697749449179554121443007916487688026887774069426007662595200045144398660738651281491542631534178823098407102981154222984043851583010943572452203176477157458866193142900374425186311740699638811261469138897520369276343652571229125088058363206259329679575095070641057525504692799038447220485309627960088495640903035332780276814739499305650824351920133812443588355847781971675880672942002011400949165262454283845077905513487411754010452038778615974403286324676869600495006585905025504206563298596924142516309911026145731098758134769711103327767063074298848000983858280228809523798375444642338289139269759413836805688413123569235546598707602892151709714068616877451109651356193972278012635311225253763513259832437642041359625774480804247058121072081188920598828350327295838887843777180419726195934133088232145301683135510896259376900118052433894705438961688852122903213758320454929921769816042195978409567626513437258173191165120437080174624498736936669486551862731349228137032669303224818713300256435664001386257340978451366484041083936144771171498172582436692119365893472740143295410200327291636429700548971700842594684143124432983969744917155998270069869317873334859344477550124526264198154571018548903904652299364713522267107036108902509835300780164102545270231085121864504011540369195177067429181072312082127869717163397934751516744673450956581634009814854426222605366796443121613879365142324980060726453164240694685855153021080541085611220033728235564888025677477909049422156278145852038139272490547460035893750306013299322267188685400818993779620043101133789069227005074476511810897687024283691263590413308207358757648629327058359117260058307871263145667420423835340297885977561356044634030021633853883301593214262918030310998763783345950373536888414615303286874521379582679671565922163631670706052568509999020996098363946129629222672745530367921854015110908031175032616988439438103637649065521963288178509280485493507121858457793181300989028141109515432532942500481068304873802129884910297187333606698600605029875524167703821376349815186247164718991142630145482010422783367858877685868950433559423258453686158711876033729086860779197709171123488693088362019332031447272150140322343211976299337725905757760397884187112480391008360049839258665242730316174810246276380760996584459100781650358687650662664351545582137206296088599388662345222207297375637806207078691537809892683776668945744731813361043632792885478774616751192707731532246035086923209521184071408551217810049054921000647048204134545601824309126613006563863174201802928470241043125173229128129990729425976338980385540774815347825374212012583533611953057597979112207213188429491258524574747117696853476227272043551931301570475415196156899268109409160381113633021949738340102755849278731134942701321742056136207236078617320154552901277981454670534908859660333484766747402775423837908009935562329926100823778890657537218531492273902309835113987623907174087128247200746225004740061892085246170726070080702103310371995628017762508773333780251593154253304061149811270303570129533028845299564955989120813182404505706657430361460052165726313935024831402397856003095551785066531379178377403547060835078668175307633245785141494662886708877435834508554703565186764732017739026418414990737440721771560559753647142127956968325817631206934753507289864934608858432885437643866521130337878358904831890900152754881378652245763388782297786433540603389340993703785850221715378827767216820208750126809551132568159596080029106126004563530377492564250348051377836950581252143373724512082392793846318367134966629985694259695540502968375709455568846211363421707046489897344290951262879093093081472922006900610175651949076302476150918010979936487612617986225402298528732225536005340814987007146402287501131699399421407475560360642799448570589632552851373026675561830391858067603492573107691741536365290192278684143687961560959115114939215579509805555603787332336840669360244783600417712714706134051219160001441500004445949041356290312910985613415062531282759367971197306705916354973862813465407517911873414063497951175213523578243728521349371137213992698837863261584877150318391182461287135780463638979895164704235469666662061001691463802755500271686909207892187976250993762167694291025887089440528927028138165963612092068843074173304105400742176844917438569119992642090045420836023352299135803801699281589383385270644288846605903294847210459906909832992060931597158011906277752040868390285762175189577749139947153343946016594499256430923220295645560095886526570181029949961309150476573548280244646874564908577918604107009000654248818889574935540675636717503757277976731673776927778743114976918697210200982735932337811274906068941809085829783891873736397853481564911331270367959788708894124066057662932173535533600343970395207732972479667030299895944421683700489240036740130355563657503589051500295000981815557470083566517061067409336150565908616011829959708958423491408067497899708924043153773445913965691544057464148010599358560559114614570686138740043610237155614179228700689533591246820542302917900902084147406866702168582534311907005161681887108789172698009943919918925403947854526140030991841177344323447733232582572730208372590247308248288109785348432069482893754739955875932693349362820595343320364493503854984336082580475275178273574830071921492587039423424441458355957897567272583287787219923630920388323692232539818275753661319552012922169143157194830837752161134677906037262248884103940060133320722486039340789568026510292087267914272866475047221944596630767539750989853929874987984837688717700338767635746225556561700626166453384591025436098617780811981637597883497079598134025724884688687187184610535868093319633268749493074718810073661754896347587673961635716566165750930486145238975472557559685864793204492619306732043161176667092894125252103157244026493203077548114349872165460164874898424606617669295873052743549430646282560302678953447561591534092863802577305004257582310457314951538924057184429062889162242918599081995207601772762139729448266462984214925355839208729574174281407170195108791601817378421766151389537719297506215893481296946620231695725362090785094586919023724247883031739085702489250115476847320556683374376849646260911948964842306975903890606352802412422725528673917328919434380485678362511660927012573904104939183900908763754834689137723619168365501700029994278584974534969013347543347072865506686810794979257247166682228779113996489591250607906406565753460799978970110762598819969826393981643929560250780490742961772054590565976270662741932415105736168560115124978837892124505642768189204036838390972902466236041844176737695061207852629907438746561745809878823096264193955113670480468358697496223074836531245926791037554294436217518459663238356555649075278536640513087836008047007767065345480899228623491133304012210118255383194228861770366645192743771202412088760889959272596710052641627597464557423194200545534564458485278204661963728698022199160119789685774918297811141819368831258989992008285527480974100582629412724008336007812553464675716536785021668600019011284675393007822344795960988911716321088545964228773929912464670965391891416242182032913288242638393147363896790376725213607410512949132514921553522296015214992973825075493169575178255718807722043490601885255532723276956372761277297339468066640042070064265160794265443640993778635845089843452002446155891086829456125838567003898676606360912653253266709153578375777530370057755568093641078192300983332598072015190349720226877114510706881938354407039782106416648931256225001402781070666373409742305174722270772456033763500223530018216782913431282447186927919654728286182844309986433916843666173801723597179096828517988140740072688639918249815872242645525905098187472216466972274345680485683355682738478602231229667169436154830348309789453821250778284001845517149624213276272109705214525409537281099444904185568037527102818425821957588444407506542250719841773202513143288183892786374142054310701252238818751521352217494669679958628641950550148240945969332189189882702239315965400344230472713377374000177468192404160268349214304804865450291460051035331414639592553868909888721610147247473210350108185735936153699373200426765846364938045798295334621823325068599650125994394248380346052919649692105695463689748709089799301064780645895499167259205027066585815555284838269715219294919926524208108521111589098689745623489912392922600861424616516481708291098916879381470161503155273477025729012124840601908605063491564583570417100320852554988520152941817736127879186145837335620111392661491204861188147913884228762978515904721044554287133761567167603832186178839488077089037875574605732328200387180693538742916814813132938522850665120475661948127404097524516126025064965179038129263958513982197721562658184825171267650310748953441176939504323857825446097596464579243391181062456628067716624356918823653879303344772157338686799162308815095891942173003377244115704032759651130264696815236064740603007009959390528390612625683507796975651423475382341412984276710037260970778383511316006452804875582411825758274708728865027172440624394550428221300432524887736476832811335894890613310290116210503576798279794717548965194089252170488119287137202016080232604312777018404274627148169231047755385486085302494122811560743329125726661356534115508285113052470728361141156886985667765918415560226329213671999241513816564766594812440527622316642987023972560269779671277631475198739792356403979029299988142689735908299282514743410078369503985881803146273477010811560003445275979580202088972143533514592647683681163634551126477293478685279807874103330162032610655242626206499030458013021689284250738888675952068286480759391841291731487292531848395803498538762001317036340568161710157559252737096082040479637038063506268571175071718323528878805895813394473116524142803244598082672718344353651322062913726026110117506111693716260858358389182439857437644901655166284496072335573505886242884125751541206905934386875183057148898009235568533981024841345149174459643391415713222990715627205929098040279497329050768738918791046951611685784636200327217394260926847603507238174815626107676928038707419398896554185133503191449279512612291517426977629799036739228976488095750410351038773032578227663881111015017353655702968811279703455732119068990618205864065082249504288111497827250989378923642039996297403475659867007920399880007193160207211704300282579447127374441971820139135875104561145320999356574096571844890269335572214411936473682775851638112087257315330928923277996383802180713044216913076130712343372757379527231865863493039566040113777722507597961393764881757317702232500219853020828301733251902446201458965302509869192514143469446874822447721997103975907488962826405152545283881953124666162107020649276895347937896735469588537835798012658644551858667964327060926929458135361521593095617506793136953274081898103401725285853978065700711773714982212523064373260547301384606459723569023332553743559839854672673575936185620888796823767930271793849338944564391577343945384747277912756572619892331230065659540967150515229713410561545634624535459853281375567587830660673805132468209272854060607138090909028574000614804014254584654866567089313186374382721648428101752120575329823668447493029296850621387744904155138013847509385951511714097466840348145219316003549495854139378669681313295551695843193006738132075942490386420109295331811676130107988410172524573896204518266773631616948854800136723458542111785513506543495023607614740117249758099108671094650864496803794006426237262560172746080426073157056989922651973165429476210885236587531113863547657109637759627500222526161302122046804271731716519607115798856056180228176792550039202146374332663923058182370734470150083054857214105238968482488069126004904544855783682913564692148830241947126498483915927597218491373585066988720359543979763715519415724083127482334035512751679236815634061971420434701122879885378433628299662054394834233968128627332051062805471804204835775540102267279783474276873196616990288352599097508549213543540936694905506349253245508908912021868762148572884822190049146021180538456486398798994211012334487766623460689251964769466865534293403175649316446357716100505090327452635657558617536313365115402339866176007117389771743925666788457441849422461210922951744094258729388619252749317618947362787860249060551231291917161795988856411510980441807357220313639101696621064412003266097781010254096356819495683791477094645666529435200130804458053273867587441628264051172774378049396583350188812490877863792685599847682814302874991351614478303195308939809781466547019663878234133556704580913739388441336840620407683228691299841250067420437647149958408650371465964746560124192196224183124758328706719467964716402256686537262515608190037305715359416536844162183134883024093052182168398572989995931650764441253299855433101785976531208414594454774560129248758717145811212677734187419163859237632345765063288785321034603088467119904846895266059817822087482421673833266260362218851943440610889967719385747387771313985279702543974988810996853269927621630971780372793977968995651072571095843731808702259880001178294304607985794118891304985889402553624540346131343784860072194028147034778611537167738225667076382039278449480932475189485394511653407788326501796202372388907604971380785601254732332325615542709510689651503905795159830340283467746647674853810195271048489972973831642003662708764551971335147842244304989626597280096334056466515329554782603969043484447251240802961217703816528682015971477803218244557038086633324093677226569562160858174535821456468403995839758523180456531727057899849503043689957769705950329661790698312648401994320088691736036448634439099289774230413668853067373494567273042625063443930879510543653535431995682852106857037812627322673411412456334840119536402362095967572530421298593689805887376665519669252677728631745122036517446174615672783146185732614620428073453154764717339772771265536792676690989127850495588468585034939800733262340077615411426461287868414838092403947869815289640283517454843595945064009092002078811301462617789798720146233100669069782787169783018015304041377662933325427612513821105594865505350989040899640646190603695137442464390576187434229665991457081704743114313137742649898301488878242901927617964549854021506639222835199396048158890139166934853403572022908511265792984641306157521025562029777916888532063345350831916728206545491964598465463623362274452189028228532233543759550049921841043887299066806387141205127932050429013815835275490603842888905285136392961482336756530720325867754136920639451468351024380977567374102756060594152389326140454583887677688829239953532595929486572218474315205195715915412737065845563512200929223778030926450360001604954081149422652215748650634145236268827049106297493632622027935201722460899540145857852916315261279783942444800263786923809432423702161958475721192242091455618488358407766104696091528109716724838059575723154655733050691638207969417350221984609175215929311717934756287924267572771827240571717492891709399562606035800761836589880585643334198272197333796524128936932880277759463262498555174087444202087788495850466301535438049073905550941176476654275095336634234904618821145031153120259031180225869974272859054093073747038652693463219879173655640228029205479079306462258402817523167319582884303758887879951945056659119462452233772763987037800282205274836818479446820765691683719870684344653208072933459328116407650463446331755622799930039707823969399924646471470889690046342364695354054977182001185536955517319257372941173392418287323219899617184150808014442729129180564259707111866866202834584586171013816997908671537603964057166128307477189237329431147843267322436328264433558894893507861906981098018723321030825956730652126472024081145497930866130611909191046345413536296500250008890873101716746760834844529255129843914063331355105880661752059446851736830155093372961775270714513052687924032630223356728726602675548607084938504191394632496540815516556822217044728789869571041045296347099923491767771243407558646212407347614036999750293806684927301131097288756726059197895316581917401343850636604618214948372301283929557418258146539819370892840005094580177974767014109041749131083575599954882987545769213685652221866011752768683940398471274080915569771905788927684018056998165890697043904229176315494417657099725997331419482097086945521681901165936501509384045966483820130856566564208065252018540480950284930294713504062541991528896578624532623732851671042955604865147310011818966207826682141167743026251792280656778563087031016798053639317998754755176395226668958828140443938637768195991226752506529225320125169835992680094240754911584272432476176640277738525073278018394301352808524835834898485037189079791159083387771473985652462721377476672600822316409076759353026357944246198734947415385396835747201323633678231446917374957689374358864220738164069460039915208553923236495363923303783863752399366574711147619131611779129278022701874197489208146263748988071735974768324099813797253917161004720743716487401047277985076558895378707185230762135173821244549421135315425250196070192717010668935537068743712101906983215295471544892096508994695670443065779020167399020551603034827379279552233659605276715396448046262872564946618240599216430503707436791708480459237624036667569329389171197317447907723341878637813113596916333240385657619791101642609575781191010125339468113289324379417979951143341789526707719154687686064074775825622200105032549492410178819948556748676448862999439296680721342798467640408269931470299257986446358913506062683943753389391086638250183929215698760983723129953882467348824879763087424097571618403380888682468788546437622581850944958606485861484386258955375422964690985447484752451849369002401165182763716296330421307279102956018238128210803028297438973090484393712756070220635401144877357214876847170633524880738696248744946194255672345128911755395805989561734126203061783023331483049826382996837636456823978591799856103584113648513253285589631864713070555550903547793842123066593400797926729122164306007307110048082069662842895232369957733609152881564189762142929364851906207547692318267507823637623977254727421719592812670969299223320509897737305517330590289334761913141887425471745032430346327972583539645182333917190771740601102023730187974392016313122032738132999504179289484204559426734284160548351314680836639775160607863748774205781971473550367672373731925078374630903351725913261235717553854017860832413111337786021338587111509375102107744303751842132820797942995506184756773199234159146193559863016611185275927418583977949332539958460846291471832084518887804407676499697804780619434492709749418252934807162958015921604987875400520406593550708381990413483366565901625859865508968288201351805336735017133615473042043799160683097805329701184376764504285012525638377176717111935132808341674716601035770685948811533285381928286075399006161242021588266898544544437059295029320492758594370491100797205463520453868329195259604027955149077159252503557764073262194525764692126286182598072218378197064945750307571653541561864672470364257431641172843701605908692956320650013498131424496197814256795884019263498436161444414010505073323128373638162324838612753196162291044792358801501438402168310722145875624285532340151741892320420389221116746342545863820655068274478306660544605116463626860930655967997217785514983330459614321228143728227682918839131173347369071682451386318821917561741055317873712613699658867752880090269411428659443843920671502403237423157990071127641526605289936511092360224182628385275541154221143176340600558406556279243376019475411809764598358933288184353876837054478434964655985530284852639265367739793131187933270610155113543746663307985480487860021914630662932389778784547732141412140546201907971060264444354417346500968426588882368592806229123057268671486157126797866848365739746453342484694372936007014738296319083996737781740151269645267025428863438882025569196059961461215716487276704184219068973631616570539380926688579909199452817475703696109167747261349768229934231066982413187213512417219272492999229701637477343662923433514165707293779549181937675243609946759057526501877344730793090863494399429121913283447144831823492413205121320763038400412425437780031630359106366574853511613350500060295144692545466736872551367533878673237127261206494015402525697239089197836758708329996774509823019847781013832714084025828324087292482068280257585632285388877413092082902788016034811181622415537201754014102103673466463865777988169934443217404365811454202055776645596210836168127505634466558401046378229379793226174895490950879396810955398958221563173860128959541141763491496461751083135780078508113895241700214361764391652850599622799368828707417384386166508826139649668935183217656508147389866972456686613680719494343380467417996761792172251384713993953835725682822145078602282393885324276803471606190618847430050342508958939579862167758931526115296478077178169055985843700189711510173096977075750830929202094404433993592234201727366624006232403138565388292112346036214740373089993653843553058309456762397713843219617561050713887165264026518861807654558745715891291195580009222426318204958392791271712186892201757287721602808837135289866031935703615000379384375068166407290429449872662551367244575513659786711330700431541697377421665314855668322234503739515359402548482283934770659056163584126662004541469323856795023272061533532891286550706309420201745947508118510120301264049021669583549776556050154390439740313542944043927729781703577620766759618100961563010227931100188277125855958468797053854482100953825007917740993116120086378163519008359814065859824263953945888274909178180390192746622217683173121632798961626208880731702498798660175492084568295242645852289707640395542514796005505038572451364692679306488610409778308189701128262693228852355395484366791594196950861881264336382707309098549076673360973022534582956922076849432192802505157586692424937129450554673954882148044271403928285482884567546617884764310310023183066775160912722954910284731181876659206296508319226290506596285505798299485893260635140423368379522279066506215444714163239848408989016301285293105580008957000784754826633103549790849091461796293462077687129224393959629126934124491789633875157378641252969216182672064872161639719825297609203413812420697452970342760527338864449739805119117935171497525302042962707116671708320198187488610698989354764910385817404480115663442352139994385167140214145942188865293110173583332625009992151241017198320922966464221119332434348099948061661708795223141596114220131460580389525320113151096886290217796231726046446283540447074214092078557987835370111051145198057209810777667305507443792730416430511538542189338648178897566929076121592584860251348651251819085619737386838838912575334775778689365165497841933856208411649371971686373227590284367744803143335920089141096551977289459723060560398685091418833715417655826114329222875440201244071209600687804519275469446729078260370697467982099741284384105088534685512414417450050237734656380777694896358004529665929898986400994296185449865800552985839977079426020770278900708476736175676159094068320193543058951563149207263373670109822186795385915847194025980779594735130674139123652499548625379333236316656510199056275703783603326071762258081013433249226364597481157641819141105137899513658033601992096837525860023466807827388985377814989812238537668735566748478997650345473936444752628035728838186463859750052034733695333909150427988405516994863103715940262045447984060310778387749669147020694679440250880567162705896284705433126633438874541281062642822590489170388352597734651242142964321729855462982520960275640187329094555140098461426588906744965197993159309239589822094094090034029702851721505286057512468646065788896409124626077905684981255421954338603765151059186799342810744067912113206722304602542918176910538235512560568187050546868304380156769840476086685991253778285698258230824634457574185824418315079996961800862243380931091349412597203833615938983145160982396283768230700102723820139790022249875551735589211692687910437912713805217777478611231883629107078793845467170601545092366178764204408925650899566293203162228165423950589976062868037159528416428540953332078667443270052737173693139514528846029525544770260633195969342089917201268544887209380309625531142003375478705861589873622731223610568260134472214323130091808378647525458237208845915295078312824990890325702149139590805637777714387806979416282671033168654665892115902037988423694563103355854873086761601508922115289752205264309698651827767348939094424209890873493137973462192630630983311277576846392846769827031786082882040344173696168241588339676894641656974762369086542090687547650599925369047084360893008740447120757599092729477262898629309767525903571028441506353248269453627298367354290623022218959008668295939173380935371473544427429320072075821060519090747230465051894807265269123383065078429248625247647085396422663852112630452304625683484930646675595202332943375581889613759674222055524970690711426556670199605290338948031790851676522281960629822076636769115264166189295647736092254435547695679592540136544338570539509085375000440402789978385501851792513335310272793900344805503595473815231559500240438619331240330139034484542974687747964987985363319763188876162892260951061849374556306419779962019632036963617354684010187287321624969098603464920705891774536815991103772947517159127312175474538774918771715312300033394215985079365125824891930874026475562526788997046287765312659358310540819749692913812524050578456896226307988871096673922353690910973003097606367254516129931905578192183553985838134549851770810727766009775865711154060213782627882279114989133443306723697192807732110111981205296254053081006537433009661351598770202700129928162823626289409797788479813641769105564857572742188733765172430114453432983277224746309194486466273590924444863325365062497819454720900373651768442840957885645217380561548196867616941983531191830640270301854722387815783730029912630590414705823491640111630340944620374400277515559499342339117769833297540705588831425516955983791010690376248435128798908730614020361328095026995779067712526805964049165037314611030031780244098889236280723263087010268968564401955847149248038910053189206053570935992723301662086734434222563006923735644273666439375664920808589089175817226284800244928493596140010663126372161851734669950298728549179339264426734243600007475462672022729201000509770659911943748050798026077799589994308613527734873552838224089524193152068635572283514721424049216779272684208053109669564376473466153806967497373536903523502615700353298600056846856015026686969414100626405751729825710243667889566123469648256996944277504471075814730497548003471995819745376638255699211355909762855652731440646585911729615101810264174244717701431927440898157759608643113266093728135680659487630825558437938264942263388261634180945822352150031079350542058590424336242184764452931823677362267707115304071681923027087070519375696590735786063485007056858839751478003651711710607802345842792357028822881373453181371310999739195390052541992297801311618843245666900452885974519005084204790541006080113057303017880666035832911519880767553081846026501277923977522778527330940971564352035092502171231927267997785207197706874974816120071910188815038804851311732758730022135368333422910966874144798488578661617127468094101931270183811405237802000799018693948960908105623123303526723445901144775523481350206654060967470653274590109916074732044982138202830244908398605011951658656901060769629379078772294573492899084606396475927749317353346000296833829437561362725954099935208641106066170226785849570183414042436509552672426628585203774102564979876975672743749275765012979712927875627410444107975213721819384155730021830984687906727845892118589936207745176938546978270043249888625238075803028670836019424079894309885076039678168274376922962803419978201126143695983768332176777068352250816800970486738215397931131466168207462015223984763864639110511501198454142397151680268389017118033655575999691720049576349908998780774599937727985239795649320934782224456301546529172117057760645077793787970408320276762113374457148452093669486909704956294886875614585340714139066607973858423095133881002141734156522235414372888142939371060390276469543901160989582023814041911624672765767624883743406505309806609431107137720405187606573708590056324554807397619254695249562252852403092946464403591694589685477894020789097527956286149833209739443665307010042553150311062241550989576426958709764371066673676835304625666346176789143884505405458165043873324790452071733881339482856794132590678261849921982016480594071006813484171273575624040888654904159143809935937874198421856936477402285248158857741949361124563226235952084757458697375494103177725513035151632505048520113718126855536354677756271339695808283707219644756764173815804259628719638446398984378251014855689129123986065324322160252073190124107793764080408998678894528650429348172796156682324781529584380271033098386548007390134716880519555151523236581457925666586369771731499478889947224927929282936355343379972782709035913249707643096965973245751439650573181909005714188783147427473433724511161741301370982558758604849634485043783982086457055134685169061594242411920136171045090775229674540220060337199914004937121558660865176439403579223821061040406245034989537189190936102215226168993336329403266759744939424452210051716457433721364355937995908041254917027926990372006501946185570553747036219808015980964021245193260786497458367242141883192082972701830100935137444566942200703469550826203536107386715366475182871358589859557523579254924276346330962630770925074989660909561427911321081883273619407367698531483359896558502427684254314433567892109971061453558513842522610825990394596739440302583248082335967885294858732417633639132343494528276992526004415514900629703021042905756123396572886781977458069222589965850911188607525521087022929664488157238679792558152932664568409764517815980668167966843575714668432321325788668746890710796504225832960220042057377367072412716223554221934047640768012794336574686682005449749609931141542559077610730340402810840759781100515361178153070782750242714116146419365784186027415304353566831811640954983308458129065091470990798411965304490343450062968410678632268917034838140488329382332842318123099635181438264608521535423014990236085558777591235177008748723942556343380576105425560496346018143240194393570047315316843625201386116083033136165098118868436378707489880203513807840844142834360480849347215783703923814067229181625186861015380488470443455332772452888252322562631436832485411002746099817825394482374759224396123005377502762316382087783183822945556331474518274537726965953577894678405397332428803831566377668064201687600583592251381941336100796975652920080597746232965668310157079204133169154250406374443988683800909567291665336633083960799626758065638304486064099172993658741144100726060660179129953826080315554047201666802844149672772971476941013219117544832131688334463653668841063391557895034836383874682479166464318296974134381161449000490635098798116241221459284896899925051433299233252710942761731821060894172777392205882540752604052414500242646519080378720983499335833978818237056115891571933627834316273774359129492097103887495667838373665858985455841926090704280647579231159160994403514045743298988446663580063193040883390725158314464472692832908461573030541108227730406493935999123675546867104344236701244030933829153428038024826272513016720041381263629643511472785181975386195424516141967637913553485748745425258538664238353895350185772638176921655671988003176617848997273597326269215111321051136007062262911726571257576900028108505622624252745509370734445024509328860650121267114757456282093131823812006520818125137148069852418032422749100980242642216728635559215760935935780128318220324112669633143214425374722546255451913959012290591062232215506381536293119466217503057949179895498799660339160577386298445633853058947598864010221442828340479125232759558935947697028289284963355225294756595192998405597067537605297493941567840545054767820569440331178268207876908347630542550769217749398879918518755978395131470705944446859424407362567720763508229581494710387343777578052016083929812909420044713694307851985699682270099317774992035874711537269713143286249848994049510368624523862302416613651577244098590795393148013615841767246852179538586346626312510245456582729278680030212445339514481552362373100146462154624396307609115893730569820535647763821871670702589555126953427774164223038672044698662743951137823789128424380012002545649798385795012856753819751205482429807985279150233929910619639737632927921298456941023887827636158415214438890087985763951177975072454125179278365274555674207930098805556725279306574032242708891952886136344151775772497279930718128174715264942577300926973622878643395882016806923554470360703571679426486867005169151004380246657948650196016876059424829442419035096760136093731349175441768244090277720095588627930896991107816781390656310122303009499547530967335077266205936686296743945420619465413174826418873305929975452760334948139913041931932871500426395117012556601129863221447222483835680263678172375878294913231552024334024067109127622302922739533409169668097457192450213720969074000711291882209285869197910093485686766343961271069956489991190061165193126791638789685279560397758763451785247237572646389785760993558305436497165384685755047270802782657513087447240869291027865163065006385105428235672007989296026694842127991915779325544902041368381141012888390501711759334798517905474867680689474750001205257099037025759310126188636187657312725622315083415220076355796479541354529120961782494694017263836970967413298708999763973812930219623553436202387743452673197649905700838517615797081352163478150161350136373388126584047371442348217968052690632130011461056701060504815644526969262347602234774926166366395550477627541078046714615352381514386503535495554865423272087982152668887178559918021027343048702754075302996046927286504900416810743286390918481375932600303602325896879515113332785144020771886432754075039429374189073644983013209629698001231079486235599608010286338552204953690144732549255990208853654728163109691573267142871431086497569218618803591640532780838731921588634603325944533997959434768167835235190681585119924993669032458270691321316448227906461362398037825173925327474767503627798582382987629321063785095058086361080206853479689327230066054230329348579327521876895498102438564561813405359728225816242709866984723688911936672681692308626672600800939070380516347861663942051493119101008203590659083467487857340162438300300998702739925028931063229476121813733287701007811972413693115974397954462519541738540622529562638209628427220054614806330999509060569417740520652233066511330094727606083254881928711192351365825460362839033739328261087378857231323257534598248478954847440717191509201195302834266122119865019915864775737075092401426452397070738998821701670926979041584374285464207631632440717882615250114928013126526138309997091817372396019092909081010904664835180122209555285210266073742841737813829678094897766033783874172480182116254855803055515564603608305680731191876474487609344152699701314838466823486050098979219991617809914959215682813015975763047906640766912377620894029581455087312394712373012093366968688002667859084012156660943782045616931954679548159014162205028296699418683128585024302900003318980619414571026808189799238805603736158385359002635775060689044024048381973666526330200459920990532985481395781352926653521667452526212602704116791484585931562697788936477416212615844686189757298070355473814411899391021603281646021476254275237868295493942434889549544376686015455684585455069142598926855394938614463097457251400273175059872939405419623051487270088221255575131448451284639772570058314262834577793397365391214495447996715532339322187165201199468810130534786838533433323723389266748008407964780739804928420400991569071812680111727465098864089818606720014635921247012148577699307188793894578863631654985607824367392076407502428973305527359083326975732590030244922570492592006267206244602380967270021582441990464315377301480071589539369727532383901438888652448130494583185117444661219286381360970753891161251965482543699716480722868972249031023458486225707620416197881672203387941170494007537730803438735661537626067208781903435684783868080138827695527922524859473669531187440183046096067675218921065231675964322176311924568851146629756645871623365701856516977402865884524599188127884246734075209088156112411733967125637680195780544335371130476197038843531556574079730745769198679235034152366338086285194048787742752029625972671750388604748070007640152206568372781980600987618160377628475386117427328005809743874484418865651493901028218158107081031813673310702654600853860841694502824532397259065206520561050911717076352973562426185839512162110014594994612889409378290128831201171639340993316456702306948419666830884362998552680352912195886714359927921318173174843015048320439750306234659168330211302218549894348727999385313431623290049190699457778825549212968321863140063021585538674347424634568647071663824913956001508649697372387549425339433423059057341108901397558817870553636327463880183642505472300633816313798644116122815949004325122936084737666942309694028592631186419812356662584561184472334430880593271395458950886000644014676263344506802855450926218083239640742621308824797374464194084104458687563909079827228528954778267325832712094235128931470056063544154585810117487746559836429420158566468239329874663777891177801819626730748494701367462164147399106045254295660340520271706936393464631931686880473465425305943861327255811340556698825228612982337555753438090838768277374365923765197976515298536053339606614740350798976387163654288719414426070176227178273449227813461665914923093854294021187622192133053207963982033136773779396211011711935783749602852260343924013904685283400855970931358533716526125307210436295149611704213543294923245221324811095864664252161316398555254362390835536720869120088820234107947557285551109607981249496679321505717678876530872943947325093854885593431000975308525549176380944008625769605616329339208509656780090612303939148026966513633150246617434353745048766239989106727641597946978054545071822433223669628118303407749174594912282949911533626598688744651319401600864989579706950171763146018000881500322956474601507423144534429914588215377699171230486079482871022074026782515317910320541732308038908290694483445486444480687121661479342872917170505947973383132595270409519433208297024494116615073563783160379817300913784008843874494662558025923392483121733810934398239498966463654086690170349277529452933770680164014456823685937230405872927170467903804377878530599458180284943905339542790545482138133338777848698169505206152450231516279671464558735338034531877365718041068203825098481220822591085794392522599347171687774812140936708066188212760744634587342028956960525834934829517831367142590658927934104827841274813175882925872526795292248614838746861822197814204183242298818700341186374664423235291979880215103743526223562489252425602765139562961895217614298290195367033737124020353150137115732879081564184996769614568324347825597455268103355514634085094663464148271304530435115416131005572630562883670072255241789660001909666618678209803459193987755491415926366146488766380330763332475380109003283026109976685833242456466085462916030929903308199196179040811570777073074530003027493690514575495690528454934047312807317083199384167293445388649014191686943749414969683889677382431778966273130158906777527374262233576810153147999867509141603412053519351123554908957514883348488817256710086172527601460934411342618680398190163031684276164774180848636768248471574542829128812755907899993003202658054447362612161909409700056795509660796413252627423158759673798908153155053252771933546458018575315034618108325978118619529678604554946936334042481041729475657443041637179853809649727153653280316900001416302335038231506297537926057217213568558552194809071511591988524984630493967982779030624173931401882564970515064343428750156597596681667919442670369069395071411313223633792958056616703348988550028521883493867437294830370152722923014488175266021137510509334798336604050422336881557106955745259864095084071900897559448799927641083426323925548522538042110969652835405020318824170279256339298891375747874597815445103044235036435568822658003191097847042364648826337187879552374326291158905045026604166679879854016726289576146155901963171528701787489540374371222344466065078709701700485419708643936629127372228286389754625334044681953618955438901537421604103290658037025732822038332474830357447581119546804158840300528610247188619078847407051844692686122867898588434477511056493579312695977135354000104627783189056443509777300541892710167420394507058586335733977025453215611073376090852076754834189090820497174755517966634774117197169298886249289433547135781980248194008519851529922044054387257410782580047793542554585352153440025927211788174906333698851196742315082005494060785882271652609475776691214935859704013234807305243694583810700783577646184458352931546129793281944447904491421752307880388077697801071176775500333133477923478702390002293548059886952176625646625341051858238416769851844804060199228421318782907840715098615596145681049768430976021364623389292119147168482408275866052713796780151428568254454729455013579931872744233224437540867448732319242863158123979816642813194022563666500084047405124767655603927259869639433522002169522734906640614423127593370696339185902415069761732396493665305700272430694702359641820509573341636005445782652513246361725918752839130804250662452604454516280538678353551194347315504527139620774300111110482722805318259990013935620577365571769339861812430237486527790800947415814144565153536950446267174892380029668008756191300101572980459767662886338326848306169643843429162562233090826319614961681366167679582608691270879423306357916358785514253114279047652606031482590831594743330023089484528178530973526044314114163508525905046092077015779833303790162403045050239945837697186893667616115354800137269393805814189297180024987739383401607674950077136416322412526755785130291970736332739764108957464652965028222368056755296708151415859468493773778885863922968499436332743577089142664883676987917225908339091001589247732553844453923193071160454498026021463901649644492958275219456335116254144790871548300818647254074975569832643087410529380080830065500869747345273305509495855343361623792020952437437150838497179658459458336802915975326488558604651886660719346001892713670512306397255058025815491094048428664536194896334157733625358627310934411115925247596671118676928459283802214340970842514205349659018416299145659552351394430781888867816377242011841781961993979643092838743053578801931771830417378621722706156739798584787101604106654893704618088568258932463529858561851083897671220468275237777179691179017201692548797551770369888053701633968828993120868178043254914168466048399802660562495422750366061575668004560572995647535352417636992757319074008194560646014445252315702246981077268211013152505071911058569191254806117463618460230191074454686403264777006970597192159933526645689897876324787889379554741673643875016668592759548882596716703421139831561245725075594940982925535502598560647925973732850620975270907888647993685603245753577092259690213519419389283742620525792420276877610779453556922134039683231101779065859690518877426864238073266454004509968159978558330031018391719350673750045749617884846238759146733394681003660512754824621437442170207097017652420445563281573615794046716668022665974099604278185377627907036843326148665379457293088262891988275164195404393344253659313067723736072720004874283990307120372142990661807889278585367607616739665987253287286587388759420976111764635775212920998241667981396829374776962189088514589234881227362865385541544159683274070102329951774089823885510190174961638322778728274132407180157215201139416697295176266872725736914779112912745902250947260642301042478459046189343254211566618833991733501033236056185941264408056359255828898141835969551616768511885839092889464025308119696760760898410535976959518833737414232003555149766041300100826660423979323136874471957188549078491751712549222478466776551116045513297282405841067266709308867670233699525119018983941010084872696405450186328586674162712711075454879500717411912404540705571880321611420971408395617555197694416709150443549533949896242955100967755373298139069351241331299525715819928118825362120733803799298485946262419169960352775699742511872160224444702524495538848781675414961680451659886081326715685217889933105249989643408397409432688021303149644843154472112162500300176936055937383050702345058372375521643799853467243181558732161445096346736375461663349015910068441331178029702083179426868413782280428635150888966275578551269374451079685345373152103380833985078475147414465052383057234729696633738587339318399995007302714931594941721841428230310568833810828890084823405669515581827378771837937104977657724291609713870815605215536373954730626042488941500388315391085898360415419192315562055622768511957179290547291374401741726779689615303914734422050151897997370278448586798050137653023333439638414739833986558815138893485164524186722339697963882726824642946018742485397387930894378711346455691963065199620851816370453339239402479529159935470906439572611202901901901010169120966587983792836251013742641698966584625252905427227699636432901514671248162879818021403036426768388366752714983030184759490043876060483788745058283008444099226059629070018662335795225648974434681564078905655576372124987648434796371689036670158105859524760968124956893544070968383706818402514814304436056851826337243731807430819356579943850439526441324937256811647533827231904449105399622817719806491238813564924640717520394396455331179512468378583506660022125771520438454885708719454492859862797520288993596146845085166086770935370142316761929696970590354612329218729320639496626233669984775019547840810468499871671221960504293572987336528156549431941825141881687116904431652003760792462643970885057685059953685351358066513982257567666576881895814284666408858334792292199954154283822434310847004407779666148005210597813645895529361706397696938404030609165920804192876329893313131120435084864845872305873305105207022569111476244390307404911357589780583289313547032718624501097953880603029141755401922229885990621369299928192650360000732550897485712377245656168201235018778755684237015860959878882676544887339024390045351038674628308132518676730903768803697858705895993047577549665122065286049615946103051893281641477619256363034431545671771287653875228382262436922154571884428102129432918709690037925544239583849869587547383344386522072422523104787466449608578981481976822216416309259246715712652056752948447792752440058231900085372212514179064166897647867525653903194926638171815526767698147082427319224182104875830744863849328209948545840851791116623159285889159081814343726199378918110584995898501006023690884171281320409546703188179952520895104874080049590710609935590610659923765299884013518450987251525608076226682078695171982801473833844905155854689192651981840607335292801646042243997137355992384263196267616237778096709513163001593990426526306867116093677946160738326802455731334933386124011719981239635712219907174438490530417488101255028689685985516463489879658482864229037221781365341617209303223911742173830924169478299934000647125870765992272246836902832588624669890166968828059009664032513442684754747466775517773797998126952466571975166788326067149163088406643441011191274831497506785173453319939158835626733307143757353415825922446673282792714443997450051874119196820136080540983250499246757112263533342561392406797929400789022099728389583817484864844232027577111623101446795069569924167009395239291844025400750924746059406391405080662430012694289786319912443884716441956956110135725252369400346274759631397038904519229216147497357312364284905435264459271104455763227729730048558622836845917787344883148143154897752542767528727586135990180718788173376508656885531808281006741132831716728969828432323268519556439249412869787264403079073657605961387674638808235592997375988198266123054655142966974932926600254406245981417022079650568644180800957041883355622946000240753005344584523711237846300839881459113542700660265672534685559797080996943754266279697903784200598761858341638566904350163850506059602642085491490325197452725714869304483890272118221524973225967932305599058449422689472995445500690652020667493184662965623750755481816145643768061636976525521515335656465519580110067629490606312548790002675776591511168089036584440843508841006690851775586890200344621802139713463327604780996270714833991260367617709327711982422739906478977112886447492004407040479473352032290955271232852599234223312196931888537163895738436053070991552182409238864833904962844791884091712613107490935773749184470398843480720816562082395330887571110894725743051469672590528992524213788386819784676681246831350513851912462080504960495578287274190460253420581809630300845787475231028154850785582879389564634562298599460815618685127562259595633421186467966952319830626650623891167135825570772975608104638782066639144716572626914688433129056470044681716929518186189311533590573827178737876421287241988002177367841595085344716179935463250435230951823033045965094965073283325350788576182766482879193958976166395513698000607560272926059441710204704848380244745374291138631574091626106455579942845612076285682240873387971364066745112198490642891433443888486208428339732314294642766354465028189203724363067117711949202243155511536722388599318613498095949145563931563146903865797992764467843982985383627376723743075960657102163298414726015400039386320998212060049830338809084620481108261016273603629605328648625203208729754098708620861892565572147105541330327440563956656509085683406821944532653094401093607808472997275747291865970405102334566088994938401541947603802691422493247679508046324541135964740132039082619392917062844520632801931076249059887247765569439567267219932659032622085680970435015878941059684569884853887530540853689167235372882731403992119849760436025354296454533300706260661171675408930242353239711919836262150818923724178885740219239209841741301303370330226519270877057036154419592912115439283712811129209096599730311456039417955809392124792269348481283635845019137102741314619375262872382080434026402115549379199903085083264221195870238304588910878669931560365755370545122813338401485588720269987717226517009571271187023727273037595216885600405675998702446371886846004221795270286870394705646453740097123443441730333328087520317810902233400682257025202004292851986282377414863702602071832463410555886173413239800200753367529420016149386318016338004170774764393202886590455746526964440841121488198369288303397838522660370640008022800563383370745835022464825589172557037546698545157026082306553879164243387938946467138112748069418411218197135552171343331530996020301470454747402690541558032607958003107872517534379698453950420137559790461629634314732877861333178480618896574579415683739540703293812088004412022370048400690956043765547400575141942767732796011041855118657863955499806697194433506893810826929424261449171897778094488013865926109059016798169086793029373305711822152683315535483197554971012296775671266646165018424322596823556052373385561771905713189902071378833020601594989442662062962337753778248172809767412256568986541990332815124337430023848211176779713817453798132974548662483969748977391765933467690306894095081826552695804285550934071078409750556027016491373027421552791508236484035064245151010090621708454993254583639206373099859153781803474628468067602686710320850895950425443813166104690494273874025972137889406774113284961189055938422082206863294129717192503943934008040009216512654360869568224641162628725865187197768541445890155828126341067020547341177756749594246781785203905618752159573115496930126094734261724293896332698582768652665946240745032520795147781829867828727443465346178175031701803237457820394391705026260675131794011714500378632592060409081925034859504295900475915126827416474730866641935368786187101169724511772801735585745442128115129567801570347161025654323324816628571875022697393479305956658371537381877327012572045568066894525405394946392939876135233411253832198550100343020976841894919061322080873126074597086454385647760029550151696973457738671158697945231907744162515696503075373343580898775627856385609016862680256264954367476986096348364545192791048700601252501277768290258543736647974329216908809821544060539741056346904423716032181517072466156062393860749178269679617553745543160450075325578832144351683169141690762100453883852401111132835981736275370433631622358398634242647418185251812000095771399950125881468023177053486615561107846313582517620569080575093959119240806928877557991930561604161630699392498861388695267984489527711144899641633512054782268188758916292714531704610347635035567118523518951589030395447147331919157147943326466904588684663403388355248770547656502207312148770872479327711178488176936117246677571358329636309005149608175978539781698197130966550103845284628031442276077078632804596854848605947152492946942839963402020596647987124639672090454452348080092090823039706635548422871173248243167461395548881337872488969721227684164345887042204395059360755811149266164956795189736282464826092931286725952639721665464108571511334253999722252517255961470583561844832969373917049111491271364350075004476042088530733783361472496876272314003174812553187672102223429032271988975802289134760820817559448315825916885906234391028223245625132131908172708797546605610331926379306161210131389208687056805552821550269819363992710739443902540717473606897762288913112998069833310551379561494231379035109605381707009940790582429441128670373149449623534886503163229393794745801814759538811284931037277497028757423489237042369599925304633302673171499642146583017994407647145305496397445192039528548708697483693461749354601038907504715773658898167742083074006969769179630467981594273229607189946063462646005228612068487108172375639783685650899282783150186183262793968168371577837993254690411770229310365878009365374913063282704623355241246595919415075447833594643234058582902852573189735123738959713852522489973024684412164929387479569240399501549338878670095579493272181666755894764282041005778653175529073032225606133321166959393354286478443692480457832668545692553492781383614275478063700757075705490491744344165102742071940892470660443023768376996487950376280758399423943486823523649591176630555356957414642542946817398013858126533758886793308792080497686216073286336309531745345544250744670464770927958487158933333250971431376197897922322382177508690755225674023326762095704714515808967068525016970064900111833253334263721267813904819998369280628765332601778470450932160777311464884281720412400331651502827693888838018872545954931000238420209366498671180217327899036142338802818340161895110573470142637038870911623730916141836847431197871597147697956486447950553764821794687443599163948464681842064934769383210500008936147063441123470134194422691400836669338307018142792228385509979671538595359364155494608376593625664464911708234624626287365833533482671453873688313505950227943118952149855215324978705133052020454515829415740168098791021552138032887679492815470481807041184233355661918448604109533061446559311440128613888462077330928531050840417637370227895261864128278841460915859035452685593163113522054248644056886376351291113163519429358965711378050815448191414075818869238733793503029222324489328083761374153806718401842450791454619191344013998805472317455201473019576672074720892775131411083577268690285002601154440345763023965159857363700482249782516457005390881852025219889186244299864565472526015319960274179393681353075357594467896894699486084366901896362945671219066658367627396852787267375494902015587496695406132525478661816511016871260897318774108048100305399646994003246767379716530945627821968195038944246755174915150094863886018473565072185740396089926906583439384103117196247734385628199096431730962910423231501947481282036659886702310826676427087909961738405097472078500465298154386101048552001069611305621898519681568996571603191625155068851099117079541252297176889869337997557686990645776606283306892706403746184367991693710378673180819987655299548186651409922309834451565745668728193327080603664957104771396162350979475497802846356029949640597334799201067452800105318233917990748109123112907268898285358524383782231729249197203744143609581299847455194024696590935135590435670221445027165057629749032050744448459486209276965481385690051333174567281239956007490715153528807575075900391780183249933070496531584115598363804807919867205844390406775111987909610557781203653642564115094059889285609532773976308544490870683405758483896966566774191373835608803564857526658690833407882422662215726907876580836854507371431931881373506037704233541508432171682445031296851569552788487121012278376741993479413167637580324533106925254214268755710891344639346037582600149738284209612735266171163753543376816134286371328909357852541371032542421780026015140524439253141507187405243238067380434917519300258480601756878107539009804870194774218641672351080461376305564035259643267163862757598622102018262973896046065958825809828903103872905929302079844662576989833409170443127400324277786275252189124919819728316290717853083216594301290457924716659532708169762159209013259486404462997266309971748430742027713277575602645736914334925965114819458174352843344306462661917068200675942641542527283491548674261334747148646346331593747445900035732505409573929255938219646354078150426090076746557603645525688486508380127794996085297665311247213911206953676420465947095983455623178567112437243211989473338453099698175311958394973531997015983439987537987247543761737331147613699157346211086386281024738141468228546596569502489156903151414081958443951691388466290029676170128654120528786130672907112361594188917135297142437526549718815696095288262368807276061192405294882211725105019630949532093299701065474283003688512864053922409364155059705262257404951674738038503257948646159917703677267529129833078196932299077129448508783962059234113790228349200552424901588443087107619800722104910593651872031644555169697103811876793721450404903004631232434764306372488253849452102781386983928626134904312527075079942621184960086739423318021250543141372482045432423725354936799490418762058998701681353880965053590580902928092016932920565657766550724415782949456726046645689834477950458358596903644758038179795199638819636470573182733359390356614158457684345420379886626768634237890147542941862735534696301458569904657249257978397146288076637946362679750922428410707228765464595907800486110685962149194980934919112655112152288265819652910573270986433140896111764807027060984270518153346312357892766997235384397409288548152387732017050024665962574461256942843319635735674657354872951720273440493977523854773596635369230771746096188303880893601930569044394623173037828382105110813003973003791302938252543042383075428683393112178266640109667343497627821789039587139108757847048805599896272000681831016083384396056948683146262243361052196906808455429119918637738908760572006185360227407167278342425723282377039089153975868967520272674181375592081690976509990690153521962084118685155991796697568003259220725143828630735524218122004529865578702017176468248336312135688106469428322551083231147569030716262956312138538508527944680329550193620348482474554620454472815256548836886934949825011404099391878312131945251282164132437751157698450485331579911441968896156068740146507510804245690123789465469989920843104284315573297017111879343779602882842590417385466258318822487576307708739581753605977338842792585632200492581246656024444036522186221467996605082742376735835126222895807543247012960582661950447715096875346324445706772083449953496324306199604515814673798273052604953466303568603060864293043185431168227731246221822314375546423934189092801486176837981323613531032175804787355816392298757521346063038764488615198571192421493497215740885222336441792505851657746251552755757289939683238293448152551518021190802229720764643314947742793053987896080675984169240759349408884234405970434227904696038313833114419361380856620571580431605979004580006292476651896386009582392471806167370998460184289505692173331512070922101136639716253964705383451333584185750204978137563817528668430272366005122423534829500492804094163860004198393076902590863241033498801756770085247756906104690534889164413207943282915185909392069796026456627260147828534333453116832490927374272002813608709603619820589022383273866579989631144679625063444858721156047292465486921346085592684666950539955679670877035209652738968876160995567570858869646325984864108033973533021958586368924590975076875210931560978891655671597978536040887048567784820792225931901678708816286793041822370773400512954368640209059972945336084676116942777226668763304668442424868765112237790839678134037795577635363018385471662338691946469943958177615918065989084286347562048574623279620556648035234888603799053267976771371511943037466923921124133304422017637202101147570631797455154561383216664885818245953329292752157239889872010417174825015498315510715218025669057147254459806828574662366664029084045853923928670677342087886547257814608342830193741043396150419662120448832433849951054429100214396563066860713061321955214583349570560618892218555116572473230834698755273963745665040097032560315110520670922469983588120321061472150231993634657945234724264078943469455128090704177531441472968469636921647189649752244038756948204919740217216279556483472811013978666322492771455174660391419054675096573506479117128232320315076416963456705288459182142763004396272930446819878155279403289550542885170940281048523481034230875969246963658007316984462217797510825602179185828245954368728448561661440734863270369463627234329230307633052748370253937476814584153801739453335104904763370050859171363879310786675115387264932555484240198954267491094119904484186538657635286426433423217551815672284487753708740669724630721052244489467063660157878583888077609664258440512889094221204633508095771103950002591294871223778145882895230343332978869972529491576295059226021991314892087311987610648172129518942170520022904350986187766116458678829391168441397499450800573842492300350907253459100299889881018710305350624061329853092604319750262355974074071512829768849843178121226029702806110362489513289766718561102205049242463532817319704405501178210516335229373539125360939106048086364786042074071120398472852864497035783042292613644359359038832576770055694313595841329942797048434052347383016581459005313283208275972691306002977153186529055067422263033882186243050670097617111478815651933052905137280673175458800151267990486696209354849742802596894712237619986147272438206381226269260182817275395869219537818460121252949156521655527539166728001347115795598952214434833096282181301615180675296957157480851632133883526860259731558305700688960786696896786633138551770238591215063305554115687222997526453582852326864345182677421879243068259485822756383238751079645635329257261034246727513008813718997489700779227070562596967746929097624178293242242279648456086870445369664701021268607791227289872514066864692704954877389459226510696585041992747498532042456924447432671623897212940423210472015208209067427042744140615542857036149703164508058203648655929677723791042588407524615009548117945789385015616363465258740474936032921064085081779002227900757649754090919677028103036500187830384557078225931279233821058727207674338468963736677829471689161649641716438962474014377263929954388077693478109574664629338390817135492914569298063287055609578843466104563499916910965258500783438605587703670169023799649399877406887185318369754073526242408211488127051981448728904601589903173477096393568619204667252555881292180955078923439118695655912024016924870817786947679777932066383087343637624507883993862704086791843243727134056303225523989458845934337823325566398235581724972606619210467651462006923549037621181791457757141045787019698872133801298927550705102109432948857850147415739999682180954463508149687090353183800811664010533593820940724952012777163236342417994940066947777170875944674520029510853072416421711848179806474057857636490568888224124239174371535052084718749129544250362054525540219944004973577828305928215112485967757304657317868624069503755944275626700493160681635518488375213131406690370768801491210545841530371430838171406689479425339294147234866927108858692806682366885161365587391837553321848661961587027908800214953000936899964389663653028450067173947308274043033915927596339086270881812095914776894655424979945765013531062295770661759014748400301054559327645637331342664228248714310588091186423326533260850680345248648852861836313116248057796823837237288092037322354886236529505877172160134002000368251909009771485399220442782388915107653527953761377960988765256029679318324255064863421845554578281274181901889368685595894891314436543614377802774931908994717796462477295069580785598899688319773734430465410561109231222942904980329392159726161987336977055417058837622658372278318640480465039347953621334959164154258367111221476524974010946413054757992746711270318949669734351736468602582643798953240792814266958326705873566073163719661076274913989689733153188577920218662454912223722101242792128727844897853837064807051838788568740304286950585210661215337857788468766404276576896081612388099658000303791678188541762029024446828109127847730013763198958683525591431661712054931930970743412245720334467456209719939212604308306733565685896382680012947606120873614360613188629821607932124370847541076171130679998825087943037583777402591453072718474963144835211481397020721626039497407652903246582045778124002773879441379112605109656695202958649356525305376524527160973216503718581137752494719987502619906222946530186760660841789782845756114327417155528911872385817722501214437309094542942410118073947375736070046546877161202138460160211268363980445386733089752135994868916581884846345951705485974057532231856935548062242219509190344765452767667536251591229145891169658975791805773151731328987969286366626026757867937368764728875896822077635751448792443899960966174524345192427062085742475275597517594307453853655582880123912382436921912118133929228955794128519194645395611187277556344074666385814146897123469066531883633970357768456477251891340405921102380419574893067869205424429787627110762221668884852176509052849420609266729947619178718805740247096759053758735325346644437984533917085955589756664278502697646070329216645677122890617840233482649125374548019117966243449717119819266504783914734856671423781595747872056779621345298144306686066421886832114957797868333958813200427363530652797688188535891806130847402162991805098729061798609447055009497230630493445160493836770247065193854388527321349471006216585261252074706657212332845176051641513025660412349685920070822141733197036366056012469391487087223204264689251466124831895568250204668277588311037746985197939258200958142747563812625930930866393853460096939070974410793744478777188694225500822572723488630989038950610181989468507458664705184371675177110988134963656377827477580163998242156788696786484231045342126795811462309604590937930792684229335378570347893744459498024572339749272037912504861457567497196341549462289398115497897906026981565668121703808764169749860855418167318369099669086907763555496225030238281717013318697909360147137924284422201505984196786659998736504625895136685309997074690308974217629106557810258945955247928788378643506639212565819826017934510310918971381984677820243206859822729826922628252073348314728122672744493728015518348598257864147862758281778421046744322283488560007963775759129479166137212683133344618950748337491716832933173125567029063170999357777525916411194675070553706769201803432308930124012723245045410261679815921656123895586683319495043569702824547116091929886829870132473198440018824744015069494677993371280114103721675858355810188132067063641103235907246054637357895079938683297622088064683887063027879475742653961949596418880619706470281298179670841798738795429321682701045502963714079910323299529537435835096531074391867191312521799959788566293892734715215956485175635046163113885777162951498639655647552414316816335074287422170757190441777938941702410843815752688041172503516706370883658447082661363555100305543233604997200816808566705398609527176935100881529413043937948354449110483944031480970351038115656055969410316337737704861331821779817643399884801905963563255322858889414372073501532226514809176641194795596892338876844916047169239713590522009655978868101059365213608468282643387569314528603052838048556356938101080860947507079691177849177216058883711178709597456281413615691211662581437673384030434208295731991141070331121388973210577139471119979291878598272509784993345104731540191192992345936084575824683473878313515008512435682688435045009765328329024062991691378421518741039004504776205891502013129112876129047980899305725728337203218590796613382611840575223433622601205371891254492889052308235922498624041837982225546836779331738329400964414241359804461485816886221966199829786558596981940615181711398915703670771325370357508970566866936632674396098602235578840138083150280942559574988052447648516936153649156372691424183001282886824727618145671144192326736739255886768199409494998374913928736179762632326706086363492897702631006255335289867188394238908632251212090736005870060139853966247977063426665601992319225569595807099108296046557055838132654841947463104390820263971487919349837830614951428595558948526939957713790962248963691877386706560816051137892669179803015589844803159539002622033194077329086100141657854494713462102673051482495011337530344678069414997095579186454083330398603188884265933614757659175166238758992458905809533623449600016848430163762184781693545608224119778880649086285212216906575371586711552998601721774038988049238411012425416290855592590285581773746618191050835170289637442028365935432825764449414612314265399263678480679411985046101014782412046960765940029175509358106237650231811373391051803350656206420546274851458687808717208408245158082310168975089756122497335212725267625904397835507683859021369050814201954442940701505630443432051821431961118221567385950619631075989093055994809213081431655990530162012306074901712861567980198278624832358425135429517269446841675320776697142490334501942781110880785276038515284071401279140846718203562141186381049959695353879860591898925978385868826779361698585874057347025363803287919530069657463994404147770981831810462587505916763748833466182596012097043398533008298537617938166355510221658923506100095252150407111848484522901035210644361736103723909364030253330300182164033755157742461411820255598359053412244848095950182129812088609633172372249597022374022062441686947434241821699652241402901290439858369375081579653421225718663213567995601243123655060958437897775832080078792378847590500082151111217940489392714778462742681769766833875982228850923773206175350167173539951301771160996860027616439563241605206742494145411977601431509044242111734805222271893060056050393079243638995039047251495285359567431748664515829874511043721964959841649537260268465234878657969805197508973553719387901921503812436098819097025509372383807829694541019185550190622063996721287238731996973571325476184239118031308148484135571609432178960321529978784374290654603187188455530639312493077868636096733341789464115543430035590150800850384531414562757793153172195569259615340929161902305437526127662884308488331222543739990649220431275658320853253826688417804696686541700103099976959486501713200476404260361626924584135187783462472829910875157981187390695083401339723056941765705844511412362298672882675688615638913574200353931738939213537812521806924358634197125248901760945416160306308744125797082781851843276179496116924659176878586936207745510918681738549810868605593534679949170401757968455488750532464299689366354337964205744759422414316468946927115472946446390737992165794992370057332671588752949942566938812772785888257056605791291611074001342755025049092010423309673734873412022518359736777470364814951858950824136669069980424733308502206231211086566725311989751526582554994150983213870751576539542207898338014681572361959345881103200923076128496737329629898767132631080736724608968634919614094738863718738271610683056051685182306596860925741423786950135170841602781086316736275355468307209535313736415161444080028405767432651905778697418699470513982884977472956256648417610722354778490876706274138961284780771480576922085838060430471301889552033184850931027838480371420575310963065737416465960300942460741205135398967930466658486367556040186194703448210597836452188608786012125642074352893385215907878942978291872412327560184348014249445647032702371081154210555059616372004640145653444110753807476652623234141184274763403362431857317941216827173037859098577538316468117621641657836003156545849208412373357901972622381075723562501067096183622246507829538229468107020103922008803194104371810350978742440469410555398060178381688522750631137419434143017347804255669903503345005927189262492091059090435714443903274808096726181429781578877590551572763735968945026988948565983411569012917267406921376063866420558339738603184852476178517952199343564836959607813484700089952321207154812648630676605784854309100639799289385644325374549804104802033930298886490678587283774374154433571732187334715978176416360736154426472532481189649215580275944754135520876616277535432722617510609262495740228142441495679063308517647535435115088239037895335526139613842868921297588512065280615164972988241661884693598553979391494682383631362631943336480932260283961894562344310491026209250625504468751533525430274280034804396547259902939647303048082445572090448272834992414984333353158607200777469918582432284616333341734066317062665666808527291562855336472164067688443666690277325990616782502167393009056188842942220535179835413452177117289548781035976826591647974890919556637929366723138588378518251079317409587881201602647229839622747976520484268121698425760030460661377918401861311848495027660221222284337384606453037606325745718754680408889384613172790514708113488044402103571550124518498343580661236677581103038888686465794705128467576167085888076335989300605835085993061044955084190921117627875804756753044114246855587516605781134182375497012428051738327649568737179544433173279170427637943816972723318202970965010737217311778602129808982869162017593521166395303515168183878145409440471268682302031477410751425464863566017313374508679643620124318066025660359351135627567794120693626816438830536641799236619960565506987435674343531847659970478723775351865290841783868039977660134233434001862495443346156814938707929237496818501552328077110575843832471897377642870343704317142043610129053388049451892366872133237010677483442756896623363228796186773871244261095526428873135359905304108469405261801991642051627731270558323289306382291726945154354420530350556117330723527234206052008689922966795612503258582242505931112647197431752943743627421551466554661043803949248228188660289625975676132564351642397378323035597557121892481870524816923461712687375004995682890645423804215013910047547865598536464096833856437589945876113890492142293595545107358132146214491773426961566351103577983469541495462632561471543913650093294000997388896617899371318894794556197735226218840721614965528074919840837154798102886352201306887866018469937059346211211909074744198015812048569416844630070631409315761869762895260795621832310700976134776774975657080255238152036337737259134418945943253937555135644921338678459285416969729634246103716645245824982102774431878457377784056832107650069108051978815286729549834539841201405490876741801756139202091535790467114373921415058545044257423013265409387284483430870955319127780647494890699097978729683235101897428900623053638622497525604035949692557091018237093057308114338500876262070395365936611333149405546966049775086343377994508206611116300958420023801544378497245163621362981797917676105589283632526693605538553043981522479943822731177839907015090229709621935227332838178684222235035575934133519720311694411100407870660669986645962560129887436903865104426323101769115709496467362082873256845114688399141602019361471541190548825078043821972604802580976156697101343625054929720887079500479300643665690764972416293946054373530283133731045491596779560042736779991914575755619710063149966502727931663627877364499975410680647333617453868587375970658444824269370591639084460138664410306468464644268853582126089912454452817564210105179400280279706542097781672898050403563419945114557846747089043031224892468398582509287828909793405701570540440944761685873014514458000881003234752497334197711559526470805757150473176195121668013956658213113919941747860928343376123738113634992296390306087591305726302052917209030515905304939102521123966004936786336812934303340017542859381872960330764126409320762701644285577577912048421921050388741581524144348991093962350204698530764346216413855058724168465766163503804994101553315556244157787139031910596333616374146319440535849214316769344741499694670302068579346889489225498742716917111578307240558258063486172296747771101912445542625157322323643758588832078616623436745963269871783711512245270850212172864510124489688504474776095679247131477691219827359569826026304902174989583842200737007681818340633453363347610998715262112668309863149377169289100323608410609613277436146674784505010071233591157781536539048799101779670582378864632370299848506861974204379042842924111964275119194444061519795817158071823924715132367105316223181096213901736684470346894503663732333695762246574708678916078555317695064717930309537679220208318927064988697181339459806542374434741799010531715920983107653192354585380583803916586476385704451156729675874693657972530277580462297664921064305394124503809611941080931531520603632258517087277199490507351958070844588969220657273441995886895954110014986769829505565133070823551005492062394756510599433167639109553298386390446322401614875394341669073526360863381994275128605529533345774740796298013035926790387578579379616300492600843283198383987746212981202402515672404660679346435962458205727768479606374667174711541248903663033275583137403974230563241337055185850603433631139509397235885142297914417739504539815846718117252317104920010979706396683860582265804245701009903099190875667474334064292673524270955507839091253543146209100794628124417510296363378510058217815706593069661452179772635462996743202007918434555624548463409277395098077623447622642864543576581661472351279025147268904993653463232957613317054400696368920159035250535399944198032627667325877577085149605285110311475725922611168481497395383065899589901455334974010680081808586709706192084941177196118186250368331104189770448930436966550607525885046243047579977508274074936949321385361996396940809608928450419797812680792337750898526388632404395605462359162237189717020022303524815869539105302103125665133688234435538583542392480710219512196824526451319332487004214060185701408624211048498544480685932825337708461191983780072151485141497488121370443681866037383020789068391456945980810683645413197862756188138676501864575165052958464522042129328138902627872035277671628098529028191326458293981133171822742322758663860828574207317608278742389506302260650340294333577500835886025922153506780189575682661132755569970154501512711932482781555692891403878247715020598431003768686157578194902205072327775206493741580540586547423463223999430783891770634337525450572354423279266544233366793552797737415781229622238700928093217254783041175856320205300527320718876688318279222061159643054160695945823809199009093298033839484361553363647378137566889392406275314808491814838474018523932112680135452013433863323710977715821055609186599573981560972413992981164740817849973245882559926798078761742953462067630809783078169397370467218693403510946872545816879405315081876266356978238747628785255201767640417473968797347295271377862901054580406173777048409640905082167927979084089929816798536199119065203215525735719982280762195466426056361774605181219886530792148280639653498777324933954526696547204195128955631888897326409834761233316277086963627783917000430022093542689528555482972051080773505980846924556255541982974831718235730942212399239463880188197951727631074302566975475576924261780878436519917062990501858578596074950150463505512055949686848615563373559429202746659156521077744735543525140366113533640750352729683752157131936525373843196448333120555154051723095029933120881206458339469391681786902622730053527692755343983361890589578898120566264938916485312686779388651011625179822459364161217989605730527686825654561642112225494942009666842915647812272983379271858934283257647649571699165614569730837337739161997806370634526536542358769542452211739623775922095450947285819518804412490670134219744351469909662722377361159785082855816628517120729094859464388475851219427925815865646198621582359258098180432709304639429944185369750624494598767008469339195983945198118558151113107985889844170144359412337547140982399726545122379536828859985644436533873588999043166538965231137444225932840294080051550380698549647644710557695252906824875325675796747945669639912871387141189482272668278134295351009116464091672777599011257322844760084843674422923737032366563171680016692748461944778860737376968440857826171703890543321659898637211394585889563863614601807009849603787855654108051328775173251603543943965766233753924294587200572952202399647678313410626068471781446980271929312213323614673466863643270361099617145889211843419474773770679707882578312919669262304570065375106972621833830386754057595347465704660301408345556101170328392966420516158330779228232105612867265727944252382330283124104449394111024503035728818571187908401187576584314344682907950146570365985829148551780682430105780706746043526197514454700905626954030517035578447370567805764285208541294891740796674797271112963162888403900312228158947129131826856666359288861983984919196393352802116851201106488860909417306481664406188446915578869194525616245544165764705131074063344023594195675914018515508468349563343765067036468935104482899413784594544695548356637907861316416583441153918610986303392460809671449704298480548743180046807028012664525685176349716562036732513727523136752043676772460437407754251399492283209348060968658514257096350473050621635202017411471976915372584648151525671897361725481619526381530128011632949812659834094951814922789187103487725796811276970205459462773391388133431026778450573907223379248576649306241486021749224911204277416814478200518533585513063796540307622837901711429818311330133104787802328190801362486444234575316738123581196093512679222145038171005885069699172365993386025055510754203664811550528248409344820490637798870883056428695430445465618789211317346743191312064341010668242238911571756441400783538947012006847338202590611147455565208704868285324141939407474293650871641720713682943556786631138621775439755831317730238689194318236097098037428578202543972462867953646901890583205818301609878082778211521478208595368575145862981855101846560080329862142081725389488459145038874622350919127153986740525881443451122201509067067020073156582258376159675241427464372894957303710365947754935837484139269042894578238004175162141692547749675860620770654403905493090367531985241022215903802809663707087700720669687573586915818029760475531681001087448952429072868676361549276942859361739133233731462861850446248926114731368472359111191581894337294414833224572022669060392612970262180804564564088489549692119327020175210311989766036915138067084539152352952951070379363588277686116102268283969861995201790054562831159912206034300774731336008895799540580465036030999638487471111754230812191410081958969239894430697098257873975214488268320027051082097476999434162133453592001337639612226651761600378730999415074055631562767092187141261665086881998702068937834952920506469297081939982629041092519136580748322555275729056456171055843250376151984292547695735162190230804749161259800511783055436815246785116727013070466724556388592388594506327225354260533595968458101151792617581847199898803585638076241857674100181511662130775953153187653775741149307078614245608036486691829584885703700532681888709013437729068169378019734067374449481579490252264177998820891348445959246975189983208385784751445932685469518219441366613400042255547761221687010964791546103420032733305691143803267658293472730419224988973284566235048480285360010027700870803084785389263356152661414846988902543970024476211166631006163499577731371989185481185641729743970173129945022933103990485347167283158938497137048323483308101240993276905589343802887040704284422926913883413255374168048998844353254348365977472692347142187741035541547806059604001833310940282992034408587833470065689085378181335969038652753812557955212660419073924058169737918599681316918122783349002440343978479393655363396953796894896048766805888202392745926033737362646752373341905436370117994448996443171715661858731261567589221854523656346041218970514594853963326486960537595970658266145815690158165504736308666740247714663989466870453177882270914729692979819228628851827028634008621706796704905503621273774592883659223265358220307995575732628785835404621946621409760623304945083411599275122177532635985966423929197855440789453268329667130667581868101958880078051055648275534520862493894704923418241193238356420240757644140975061223168880290485762719167119916074848911123736187533241873832299130790565496469035603745585726638905630132550382281652434026692904792622943118030600542010137116639231824386256933458357254340204480293549487888134890489020836864129017578720399687580243177986876741196089184631218536515963413774692981685100389105267222666383631847176530178411141114596170562671508863009092154118834836292963369555129683520923514840744962814898083047437575845787283085373700529473605535784241545636396729235204309386788447466671058163077357331283253547438096722504799332949423830411451098244485026303907165757869681976975362526364724292058986576444389079029811988174159272374172881475757803493351910881067222662485756323404237194830290731347747478884782204353995809323401684781220650244151741170846164721226097003304733573003981599620603240570057362014706605469294484027157808505571555272239885715454970121834032279305983910034176855752784145147077947526300668057928801300547480802828670092228229513799445552575717996666919725134161725280826740466671698897560247999781214647777592391657869967457534340477182129843414754734745375403052267606248957322894055108514119567579708352409387654824659715487015927618971454307214900116014646790187036318894822147363633952353277957419870867682679000826068823425983552537546082042826954956997476809087495776982738447989621129661376772855797421339915633875868104529000903576407220029687541800047599700866882333200077278507123630227201130236509216033666394267125161347958892412358067256297531712933055906994304120779037924878968972532335235981819114825078692535088209744899688987385019285176217943460295587228124473238092554882836152370099238464741279846213932776983452938242017150942151445906602717631796541296504830249409581889676961427455641576994717092514268703936548264629833925241290584137582170811135897372857166240035354325527317448435860680241206886438540134116159189080256331202999837309674274243883021982948671244476216876773302031899135614641290304695934737458361204157885958149581548500796696445860279232625688685898551961365987636663431547120276810116688193025725234701649872158218810935820525686799469762584885630141339029900128322112034616560619153494110399665064002592904610624520493713137918141436320017258191974589778197276166105896119804855183962252211786386492510145909338495722201308300429235714259618242395862429546206845358555731732923896897533598950737177149357764546964331299121946554846607672000408713723407973184968879187984930538837989975968938613700260848753595114659270722531442298835578763133393178554584152359073372219814160303101656039928637196570242123868489124692863916297455720008316388226772955115189880928047717992554988258998397858991296180164586043468008757408850728727857565856376166336212241198379738765590762514060998543871966220710957688088169828055973694128761291438299151589330892710671702014476079313875949394865875917604589533961999873173728113429363297585097742358994563060791334280087880707285359530172612707282936056196044511240394597836434516404924348213823449144973204475121825536847883660401008861432640636940065676628554636226767233170293520176248685707825518291491868006032054097993659873651115548501443646068015118112593074850856200206221356384828756553590216958435897255690960046495557734000927153686618369917239003305056628768927821806410608140521771437822111630261404827001576502037969097837822356087611746471145498190696256149812200966325738080851825226822185122239514952571389052568188549027199230150185717067395916055399111956551791597464256270914357052431767620121610982545076455473660224502396355893290210586141559554646382949701914863652116473940527512594545033035727168978784001431425264640832966526820953406952701304022666113793712154519950822284747617741670008623147457557218088671309435778283993864445756968799875909389377305479264626842721947255124531306850200112518094300443268942846316685252547813940332206402092644479074755459974956052749917611368712677799696624412267042838544967003931656642061848280102916462228893469542831123645125015452575735123201267513971371539681023112216777808595125771740568952991323683731741647329877548335022127153634533367264623958285984474280686608249719206375000614155901711194239623762112046457143353396127626063499379131553628179309313321432574231867208666586809684038013445114395270486093701527849154696666463679805888620795520321508465639645607604458575461256796412589386419462425223902716834493784797739391381615328023019086121127834373209340313685793955854878255071621479074764868547686887810207921475633369117978394504009535856486087348768469461190949457723693753552926159220440454508542253824380075017071067888945413251755839332789818687113077752095535320495852900006524638875491138557417257888341168979038823376311542572457826828152332706973493943047056361933840310466143703175896072654900610430656013040569427618361006275941177169252048453716984337741837747560235366487811020148055521378158627518868826187919482237754689590108282289642994198587899350140167071310079553444516499679420336789876231589513362252394021428542418371922060960828656245049373910641999622804176881395613600301387831317760544800816049248499886040243783221060865117896837034711115970827534565802880133575203063604041801305142425056830926761036350776820831119137261713994389942870648366098767878070163694446248783976238729752671689358292650877562325405510959344549647067250695869038436308148074043631976681816285310579249264168419297602457732114155071772595871948682386921775052231322976316427815168246361701067832550598930178539456936500242760680374947955951844561852905704541448786837056685467997678246316372819184062131305581795607543169057139838543202143122935094323053157028065969585747744509482043531982956747409508835431697400172956082846362373405078049687482617107344396869592467190871372513457789165711804705969577410310296505454945785647059944050918446851020901335723352067360136362487237011239573867170074717437229054123800390488586468352730841330383092388019048420518911285562013501435873114512556763344054048258449749796018333535189855025312383065536347102233920440105672234473067172623452138261254415417796202892434904945545856727915563760878601158748174206578326554758278551507504207549322532579201959795966939197179251162144016213126799196532484982105751981371173489315989733123328131159413672839059962286136578879779380881047879102101623707265991340986711715818401916339692837043146550038127133698629542636701200871575794682623510896134143943830474186512637597253585408779840375830722138000215075210901581702614714005176700031300400300355814824522558375526638227993498123737881170516917145680037108254117152408365403219822285578747778969587590951932837690690072610524617299254917586949807312572427283000760486081990419659137233117792523514863853593152238165024654044250028190500137438936329212974742574188753267273450070510291895660989999105597528218545489338630784631583643406939147134513990067503394956721834513896376201182813817781719361205395905707898335491505987308330516540367120162843736155213743197287877749268543178310380352071322262767973838122334900580524573599851244811866570434682451801541954294215385120179379444192804790758042876900288140194462687284427911111032853071651184735650883631389841789608466217970285571450195733707923931687955757770297824982412247381375149347432122997429331934646134610542756478333556901374043505896298729164410644274351907504079701367612821356314205062354578853357020742320714108057925765137559145724993287070347223377401597774614760938189253790251853445238290759605097564555105238396998584893147517960824073768032363998478083073657943594415322633026983041126163973187878969265375296853025138679031079497026634992744691152394482389304052949072715234641890020712673194754641753342075196187973226584776307273918790895397213476857313473239152002385623777028668590282721258179317288046090612547429628452923092862350601154284891978205334349538449710427550939611281871475320897465980570201334967111770133965656129167793437789605814869462410553362806324353297766498048751642402557345855478433345856660557482218608095785890490148364814045714745140339758501656979541304207469554468588979922917455609286370561156919313573495783402767740414632336624473503479784096021168304512121518090559596923931948768781297189653652973096587991233443038590389985843676867617879108367777889226893349690779143957856808755302088087040365684703125842220267561023071352838542970814264713095040759680030037289840788756824610775411759157827182395250962048514830723472930118249151879206112322852919356037817386362595476350648514954428072391562568395450462418376801197359996861312471044757655271475813135794498018521963821336155674378601740409303610354891497340331888334178171059783569109496334534009568431777804568205766403395362489954756871112622425746416419677330376855275123548553064128451948126267884296357974525054185111466211246465934632871933446151367261531838203401498651177076086677254524368972785552481252968726417004426407787635869633388739562409025187512849976643788863084955976215813702552499904933319043559890380455631073615481574025553280063376226344554370491461683423981135984645087827501888764451819530461920700969311998013109004247687108063727798310653773955932382080397083835535689830739165724861872095406836028294478393788533758400882758681774285228643783829683807546474436042479315036101139271203922095021256803298669822702219042523151111212891580808998717403726534456000433886757834067136326427927842257977650345097230106668286636516507954505607926871384651678021281761937247424962055116310287268067075749753568698812730956479647161332256607118926086236593319950747253899369315634108199072685765943371909753065501382976740087459086121194418621065551029918860612057365108761526838877899009330698750252495666791428994349093366899770005191125923356699258690173223918513294695276244091443453464459879416068735830939148077232420100122322870275050130683330413359379418544817297080856412074983154339496337583080932783649616682681285978711732551739588574264297854738853517448538609860612720168218256623145887247164408113158475195314233007364374083353163653233695952740391893068347140349721197079404300274382061214941545787911068239408279006644056472328756049152670531458944216979824001233719205590808893415987072185226623545772846525515533917890437659330522539761488134657789032873795763903883733450721756100355717542540041086878956360417549063605014229888724221668715987395934735053397631577854137203571746127167348225886302982478036574021316886101112136562269168476581963990415426786238941699060262277446165709815083839055351813821948685184307695071389223778391448774946246461994563566468525245310672247312279720405778484631803926365532561342431836816035010976586159178537590649079992423185575566534091827893440193033827996348898287544892359284894545307006905267097442575559716706811303280429039360847487946177218597488815280216564310423584819542631468035923036414877008138319240077617883667956553108437614215691609518803220409238695219567295295559480651284712650258840701504022863850725609302027158401432294104099905675213924613274846964968950219159985913280417256859666958899749691518027331919562220126385299428558872827064467846810495532728625464647438375587803945895014804105829870602659772213996983472600747117775876132169492874510903855990590315094581150938472538654923376150454367780848044653837294092611140692945095134402088690129947888098159656503477202753402920361893379087986985867664616628614825377434450965096367416910445110022733935598757864858771958121889143815777478329273235734631971977518723954093047355738228217724587478212690009463153676673037395750763381572819270859614345569267756012229826816280493295629889937955796370066401924797085862254233258610007273531032787817924539346989483752678494609689278462942065323694919517027334636624497415234801512811459667674370554107313527548336576688466868081549346604097266336658727680394500344156938058421837521518449958523541877225309233344730082594746612994543841773573123664427375363312582594145641742154235259699814850896198236611861354265528786824168132058995422732395569494374080815804686882617642919351418745100440789945568191124079988237358390305800462372383249342124001925353627717734318561773441265246420687908814164645366744753952534273657388000832197670509859280708745585752128803282502500438222923377109385044839887453568953608618501166166912567409078103977639738055423906224099912730681253845231875267701961312276611726611309528077018234586113716543831207647687964533821212014772716004629735853613583717436669406632614721370768244616317718271678792386271571655038585296250437495750077411593669909487385642272310605357824335048052106181889614364036241941322986497424729065798007244391523899819601062533641903983903694831487018660183741775065362539825358385052201070242763688419451656777353397264836841525645588190402921657626655295085815261173007885381687656232818207874151683018803013204118288894457649027324241886174045589456183893548288996180171880883132084844982756456354910886640364882887252774379873103944529676079010855985845739103327437989063243836780380493161176749698626362791415896355086492920818105947543512271955591602098071785900219607029116302729357744886283039366003068136930445508317756997090904972342489068818293472976298509090370073040650488949074293776263487799755140030266044412748742614397084608256778335452773174011532748538070381043443621502980038886984054749573304584077563305040878997481010599832613452023614001540622472439013715439785141589518819578878075114414801339025291366387822490817467205828788003080274649000518531177467189054918232505567547050982599816925817207005311744918948647950934447097187133389630621265362096179870755224694050359524698937027195165081262930127343827306375257050802877440166181542419454421750548891691133701951590261291061957499427047739176390285602390645159022093435829023521163325555832797489708863634813456873975945135179724327914666110097092460251178308457467139148849822996786898332385131545625555120494933408734766930740583375249440967752287645081487573312104372232568100467459066896452522090588571910257557543026221976167970265652596934409889434687020771692321449715764086999610093659795914714459945881384315805043960571330184213033704009442448402430917875048869580339001514391334597000011913414975612453070745504323649325379790162744719705101746154704538744398099495396324580028169166926947161213725877393307890375489533287216591216414823157523323940361425932457521301292024164185244478824425450728496233624246677490283267930489440428700457119708255691609956225140646959850858234608980513726428824556266352728759961094458540876850395088171966238307584492704520930025434999820539089159196124798389341858944912624928706757658923473193432361393963067260223057895495520375643186512819291847919031677280821329095979673291850856069472857340673981127792769671398208940641967135327246751227631778429704184598506223793695429729158495587658957860266379245225913832137411325576602914830769774071391848989384373262517495966567228691378674551523109833082774979882446920849866543616482132412625932523183854538930825396916912711310604748970368497892293335145117890835296779830411223080271680121121943844646936837235744785737062408662044808839047060226177392062415329682710743315073931541266668826346832713036007427353139772482555153155959728703048122720534044056792876717615590876107535495623183552361492927901763984878843277983481545734828080593773396687154200445554668565507445950629360616550035062901681723137873366794678842965440043421030152783038146789391922883962663625832451338922167075143992390479649552894081922072423372557295723408618346145539459273433416252920176415967187610219974946673332145021552781941572566101353123618802276734546880155202836801116196215280432548465156895024336687556009653389371174535177082578029755344824850939346240187790941434043690857335454175860034537321151522314205956788928043441971594485903920349412770503849612208597271311991892582004460831847186373381804510218692320752302236301852149776399948247479912753120005303279402212199355257989729189493811125002023207468855083656327148327100536989708658810503880847665398726390960017182759211878858968222968424525598325280432193840504832008938931389404150916814509782239721984897224657442443452862682866019264095576901894873894102215104506527020989112434312505582154427898055741162884042525145955044922397655033445381405723178298649869846389329074174360521053328029588947988046655227276506838923258114138707206674982119077361144864983428681998230597365411527054661598509519514045249494862977204135281158255577989562681621004045988625389786927259404230969709118047717554472880805832105827661102055540093451349988675463660223454463374762631930834475458292893707223589877446987051073314821948495938365243256289053305196069142634083785006333218256500086325281808187785159849895007280995502769817130701913577974615622825788405574296043734937330315724558308298440741931962149269324284334496712232926941018939811701115904394651368098733965669886265462437908879303995077608739761086987884765127172212058325585321447698485678224396260719658761475699066746467815594835835400697098554777410765215811612481927302223683691316868735455748635699429793698110325218830426397914696826579871505027844244782507149001548438457834083621405800692682203619833090847940709502626660357472994554399801814805824091344349909497153217001809740463461319413690524348770319618069462192251250198018389757132992974929709255468305856391354980431601064327506370296978031429531575381190254936020850698120333875545995188775870420850018246702668036112055695094557982860798922833841574692915985842965189408302135258183192498857931673876915987762210925361767454907476344825141178512904114984463219615276206023957361837562839669891917654801640540135060149683349441838701553247403317791163699817865789853596364023309037762552603435429399009369291385989527327628242121133511043055745409560182413270059876808062205038877418182577912961814628742791009100357677242886911413622658876228234575031834866735793771980743140420172897713648410344931904827629028623012402521724948276438071047723988471609153650577125983935010606290776536501817092441805996297124960955920446616878470804992649610087455872002475422556680658233945936223598343651013956884987247011113916179125001285640070045152010395624983385077407364562716327111639778641069998468014646720792526249247019281224791384652984664144798557255689687023861649049113666600305898172249626766265621999653622911857226351865779342817844229957904740197130541755164329121063320111575315753070903491544675133396737131687550170551050884407769875619482979350300104039657420749169584499435802878763474239366287884682907493782083408171392300275928854385146339082465286966406032736965106808178374073098969100541911637528987661857575093360754029815189357762015951739864151793472718697310478907997307030219827185771375641415121260059625139369037429743087632926100988805006193177382289572656001329897342868415103328089091796931387235546200757094298066504345216884440132766746715501554428088458055439234111040680382706365738015263109898908245135290092720168821609833466863388004055418384594698851090519391351444529220334415506352377885478873409257070571656084635854476269904204951755484644010903215698378804021923849474623994112613520372454156684773564104496650100928482019480937108073520274159315950532188446076507591164009507210726835572476575029494690252375751364174353430530492121783922395907026856169953050668314939880771387561223410983417045231208955910077132818539314678200666455182847480183668298760510739859219052792586980975452802261478047372072932179549000838694721961818027514972282903971579851493081458532418113781835684523013931546254619711690496782398942850837831447118331855275519395124555538629973953208802962667727524617665841013351264897779166375522215686743126677292373650241384851394856374920108391461559760987638119625625431998159818353357653370766786691864896982041867306092666983131801178520587708230422554749228190372004452659405228104973085978949765641976344278350479199629806207371306170238389230965044722496405647486997728747756071130373604831733102839297341777679385691334992165429102594502903443540842414722599342671917732900093874488762058538635360728053117228685181837946638302976171438601580105767883257528345525539827908675494344106274359907012113762040543579682362566058014353914854873384840021686608242824243013086056342698436980749309622136813356500142167668139657248336903542740226148075030649592549563095430949283439128340797128003435495282656821047616573521451603983374407001460771856946611019226936978361194902217949746542466261624163717164815877379793023356023885282194072860561254578311882614375862404958801187462858393349135179543789831053061233082235888578568759990397804899472823889787024188984678813013347743287835045183834556342138329145187432563954440930819992626011457158625681347387449359379786294783589259723517928377385318866627387644912308609860278085708248224928566618653675545875423442096995739280230137449498684058863850340226638655348602052572732619260390606420221072053654209675049515722559348102635531325172498561201653868025751058013891731599170381098857483972096763289947412953600666440563515398043110998857906239589843165328410143865094627034908356558277414433904017218898949708671631434850744113894453454364526949443593590373060520995262405297574727266936738777219283652851241930136322403102960784247048742422141694785462458645082491092165072794394549640278732052403867308447807574211680702473253670320244660282351947288156878327751144860867766733852961016963434072371157796127419041651384110301879966473520960195594888568474919501031342539602235502536459209801664634724923107812311581022627169761508119363477266294797003895452300966880202641774309836472266416589335070551729912428204995323309140771075443026809817606039607798347912307722605228258944791957426310765429125243141205242145446282759157262684807936575361180583748498836998208890786077936976117577003240302088942340950021764419040153312112436607727598036876325974189125062572242061741907778842118629766034874386241565265265568406582060338841453340318279576853887597206746551015188551627612381560296387288543827072925354065145123603964466680868008483226924814144929123731126519627275726673642241685584079257755203279291843175296282120512492974524559866158525976614759561703168881327902486066763383548132871164839090049850714031588459615370660040227605163802827293375957227662071524351213089222787864031547029370535698823250671833335501775744786587648840493890372759208265281144633908214290726799697179745077457409357328632049070038631315410111210799140763986903323881274927538281625550841204658803217678458912272186779787226319624503589184397797662753183252742075722939175076738811080598826689606287699308727958967553184292382570804293908650842659672333765692698148516761968656452512962250783332793085892062001807454197273540850848373033320222857390156033174274988479425858718741944762032436312384204809836243213092411623412849362471119564601748105749874852987551011664606088147894466295712010237115102595051233122597628149905836353954379823070151520013383969496054639268141140516463862803321432378519073844550968608681125716743121197510779226607915802464630597254088713728910912195555899417271488063713596335637881408071408834623030911077091899929082839209358918441975776218684833983652771885434012361858886321809016359504297668280491845350935639984529519429857360456101638951279106592852968080236332257634107240342046878538036143426492468670679824080526255330746648926028785758586536673899142618609633006127607740074510000133826521470119962168245313760089815623562300564514361737804599763681694683201947802846535248828599187022554912469075852695247591140730732027121716954295936765892257164471071617763920085430666638967203487492600584216312838052665669264224220818181845340483105447659311114039521318136728123045069915433650000099573385987220163226726523071231774309597926203234276740696326944124762035593978241513020393427030198059216592882105966834425400762720476585027449139585464496576959411390428707776629881437242205030276240941260641712392854595824173114625104246777222701684333189314543003573097106743617281932330090658091708994777475798692561049931439409999249434184144411152317833671772127385510813797960062619386471838359258772846178620173641971236627051571891533518945465926342416244803402879447657606944228722811868091848755685749535873321752278740858114169273931114717405155451141486806780302934292859330587857517088888944768227326003781402167323555820337847159838522640220150267153752498467445326399872883229186571848684647958508528614917813921952191083846439031293011166526549328579714744309823701625959695334362907112138826028285444956339838638570069166113680686143033652804899859136875057300662558766941974018198809633195862880098710492214248827987687324440954716960537397549661269331018584611424161718168751748364795965458788031749521126950229908046637448573742941187092493367629086024429135461728205810406340779447105906356082690340836322639050807637857184753180413382044269113264457646529386446294750901437330646415669247717304718176380022415982807799106333676399410071648818480393394354080484040364694057245751422894173154573923811582983170993804647100857172469607241380669198290868236460158970942058699333494631723380962929840530475557624306223598813651692898155460599143889693746726963457990151330829616646762180934351308451545626643894282654315149047175837516655460884385832652184149068636311591043280952612565171366714494163869746236931263204196944511320402644911512713996888157713561965441057856250312781094891067140741691031617878607486515970779611395077336298464675346332848832650146942701472976731320630342784951010551394692016902285154443030932019699251539423013666229542682755243541516621225062514800970722222145353588686759694675823418131054941248748980652790991635943654743568914011538282182854387364405169480490135003249614342436743835887007629075385991609650803095045820312564626082104004732592319902080017126886698468569439997144583565230828533590923753993108426421627427131892201085498375530567913940873417608665469474223032317741881450183061994432435667420519318569653054210123670722391542531215658124338680078569036093258363604657398678039692850673215946067360927022067522660325236725666171162827607690827306155420140134668430617852951435999147023703985727243195442199021902077385530277203867628244303898186858442614151849922818117274672867799216991127797174069067810761602074416551163711373981348527728980977702495527504680567711253712111713778134008486305834281668613349198350526447038100720673828014252746209068517813918903211680663959674464213134730339499495313614225889708866480463247121645550613568976658424767957696657048132284166367853094119598138043037013930604494774931418303081427903727370848617016034220908529374623084210828526806534186950907956217372258720209309659541609020616217152625449226184824952011453834823305257176711560770182736171856999332899351950564855427918187453569195479144665565032110988677253850048748941371408693819041467629450386773689406517459699724885550443739049940110436406108663195282743847570312662327325167472530362335692680528652188369576442300334582761185337377502344933576022457867381690080504387936631525869648830044856839617388171747100100904195546949136716598092005062193104328862533596901138108432802504327420663474775379352649022793389733763270479628499611404999791921276451228777309960364857485921445214705053812529348986900151062973868497865886706103530411376589779368264041267872767300758517183736164616040083539353643325576139731742513314548556988594823513120886377154301181148438936940548680694633500453385237091168493866067347154239304495937851949744071519421563622727311408797063204929509165304638367086600218025476447240409369683696342241986406796083149944166214190478200064057345208155626828709679779433577063352877025772607517342427835692095983502989521555537917881659172168585213542079695210658436447837056329478287811832084344780806781185014763652194291265979460501817878914019799852610188069182714704306167341042831177572452623307494195898979507150671095517321507922656021345078685150438500526903336103048812907664476790155298506301639034753640344286823766353888900417326469792653491173172599320109880367308777679810905501852097716993587021150484488044417781647222527017896543626312304735955092587377965010101539360446809270237404665167371020315139751000991937674174511287118185838061855626460412920359201596416355091888910388096472554221124375287556953315756223984969283128993513286357871622123967441180300950719300301703934187402429775254040959092635495884966040472323804350417778487285560587250905705534240558415655650406702550447311921308334436164450523977564742844080905083966224438392034093055308723433647586606576460655974732756964821549682307404334713763485472248220028636369576805808054831328925222840978723813236012597718023171154836268550515633849408074467932879320446039153942136226705864073655428154723910034622143184400241479813945696789004395807474328422248792181325532197698836689920179474542597380152542738126312204415564721355495934951386328172272806708002361079884032352946691342073603328490830473465348489503688319127240537774472031046832173262165213318689764644253895822902788700658708638510224554665150894941632012540254725397408469386192795504258394863435352173801725358456569582551700750155728982785543495380091623072701293346250362631846243116326874887122988983245826357766124205473679483549676547235540614833831297746809411005789277719939362113551236998918602313000114047011227503541483061547800508734662801340314913933954852009901022634792632872442515786618866406399109646832699771635462656132105240612520572681100282570156616692322931531191182342023769353662646157354863897061205654846703052658906681843101621188196892579443467886523597282360105058677845831447830121458430844302984407504363611932341559831256715974768585845936030447342837144660336634820148204837361260476628822414172779212908229016870928147486059094339930416175044034456486942612477285299219332200207970245743865198956043667885641306808526134602748989083626390761200789007732982221871325338724788794084974636019077845367478073635776708771584291185730023441372719806675566266045963122956645532792842883241139642396411242823879289224415400689157978736736316651725315447648381686770412087889758400954443879234974559127364134736735545996608346801434204177008809710083609292713396409458197593476704880071935983412987469020802989243317109818069632471379851936822549588025010228122496045248261665364580839399469961005673581427163560110671322309573013154368555749157908788343908637104868625280812643187652929244690810670900541812995972920607211071344314197315958615750174026698444321987753633846492292987418454017605714615561952552603949789584778351986383438239439657151360674429985528824976289209517441949067690205366740842987682106077487614330944046244256513446281417141436569419273830689423515781738647473070537205404126363487350085046913345147416627630838468540970097678446052214344993854301140382264742618894801222861745916724964168130512838392255750226047785355702006949651377190646277608563378267158680639752443333020941365442199438532345282839369413368314986677487046746977275862256267022647778285180655526013534194020851749570405647314343232467502064494966379142936419566795047780987410416888154744735976984147682869243841787559569815626692088857389673275681000940754750996375964595961571529123396308603406848123229993489434051913768174643886401492576752119018626219835759976897679109998766369797798250014332331602082969062107213645597602867657333598897618066419936208791021816650568705011640864857698480042679443837433167821474109016348475033365889314915738316695337552118403963953480868969691632070043345833023037968460956842435475292869940961034050449400466627023734777529893222354109772748810383425589053646639252539276892192488411941261845900762868513026550332241383581686991153552543300778469336934098341672551502593876043987850902188450402818685491463929751561760309486201025547827458855826504734216029257881506611436413802848919519724383963149767533573812052531232839990859622629268285018465688506928359736111465595802933283758856407136947041552081566259895488263311605650474237077701203050271913700606483640859864325585577861237483418385600488696298632333037802835057218927717833114147303849243640865298208192628021897575140675033108105157559505051211741048917381733939413240264709149810043021959863980999647854240401931215048674558219544846827361580417258518032170839043838816525545703923391656804049405282500048512809407665723744090771604205664061971401614230191876477222822713260723530394837003771761855934615250735251205625697532911295234446588941779355112485281877695054612804415479761700530058746085753313131326491952829711283764283460602600942827702589712896433253005149462536094745682479138425918193423693605353676761166491587967138707414351062064335836492895069815220410581497888608674889527823792462613788553222035408943511117413745399298713013038134347442598041333358930846024199216490103593744871423568952902382894023612807406040618331642074529048236844255783907878818353220443939037989878236529838292217804733167004442227316268774092938028831977822017088125317827713614593772461066060448349906942898829093812988123533854542111335538565162658429463735646792794640405996059531453921212874237212961432141225251749598441292727797906133059026856522280952007599328383098787133691365170897478990381379150013790808040066415784296613447872788993609693932188871025475066651074645029438592821108272437314848487683466302850146734772360834490124237986069492854481400301112739255448993075064318002315759165255914902189546861046171420422434861221718664559348884345435194172809928262632180114956789773794346379301720577658957091934961518337943217825268475260527689210428526433077873104142851591405559086950050069734491493799011680309139062728690233177441744479218495292342474837217765748485594447646101142954492841828296372985566858446233771738872104704882195329951730426163381225988838085494885664011718604312348743726416935962006210050830220699829229984748439814902799459241682753757824718379825391606344798090238508138439791170435953940372025621761669098264338746979048898765550671903196917066145910352215617764564585554563622911241257420389095459227081880713926676688238880587181083402233693486111602527915588852489921551171559415864250265300192682340226141406472552162874667056933430387077109585479971105010772911309303760778612216036515672485256136877659792913608002448764429639745166748433244130780409271309731426996899841153421151215891093778697391582503561696477698058027854330033996578278355914073370237497230461965176526346506850143082153924567043829806671629785402815666133962223676546160774653177776572961110559786877565186736553593352053336384836446570791706492009154674992637149256956879494164187121170155273191071552710407406637522651085286728182817616922177199574853583926445227098744166040657612004715237244747349677170674725676255082762468859926625758722875956448064340734829867614897329095234643308770094088320595080690182197964776599497547533157335548767449065259622407902199497735333647632456318620089333301141216952074198701234135694383025504288371413152673603650673396336593611027933454031572828119050617981116158207047539224704081424040884887496452347442547571080299829277432546216199811128654426227016462666666566045663670483205033808177844990914696498484357902236460801919508748529034190667336925428476533769580102561579290784509190156351426993358024080830218879631425489248571755049172528722235864817858791817202778457564129332065364962505569770320355982607696645720047534444859626417084620546601690943290800101405263227680343416923894149882878036379792674770651333997639884438050214567875767369745665651687753662935547719725457685433034432852596317515849501141414294934337420965977903745982215014106552097772165624918866886019783575108270976898551928172982040438712559883095649143240601843812439503910109144269810837653873578526844640824474479652452947162198937183972128001910228862233546404425979725311770940286537721296144348699928835496818427003609873685502993606839942642191190149460034335909135982678183260424420933490450514862428421087575432294874748622889174143331722847443365586259163643810635072046738881008503971650242710466286846897475644706617825877002067405776415235770815106776525738854672178190926434291997674773971982801017092653436114491841018549978370280298270037949123293669662369943256191038886766868988815078265892286962368659852719192275913172338855885338568516655686466861899695905249565436611063913355963048984808047606132021000791748333883503178845733462726728180389268159819435037509487256537142278240566564654517767872584641902940174895808757585291696689557403741067581267397208257674278836467506041222925940563163291110114590145642694825787442598060190021991869625676884342850463775394177463331334809794250052848823339266753643272563758613182889535614710108536218245263693046912911100730845233170480207614015721634840534198681710422159274854053244685737892869477249113467511329568074895815962869272041348726746518875791422098968556871854864734765477126793114513833878269518456715563657764080080199650322155468852949573613941990993285548024794833453423109941529598719058156184465924957083916820793549712196632804629732345950573071600221892353165694278244391771260282724293011243084128909379860781904322131939519119034675464562510240956190270501711765321749509000085923730422028854792017873162395781892623487166190480645946711109698912419437426629767352350387140933673653923697050143030337568010034893176972696408667208008591644015709819361630048647445954967117736544062880707988306857399564284180460331264174452602909406821270161294922169776665444221970267059965188216493581039741091904289259615375130525130722105722611353803429127989201105072225315945075541297309326506111168522139988606212089024630630677072189042766128574988630546712961099420956627222065342971978069912517463724882084076337904069986479664619342178881154943709186196046201028025627276894287048792066821190863829764218357039865466552691471653473629447163547257572032758873135943725287579647846211996942994642320033123310412438812822194556751607346430573128053133159063404183791686318995625939953572563506905676687114828603862696848935045581891602511609096518812463539163426944008892435048370125536046161626632438969915811580391005541848715430484599548334855595097869231330251979272557797771713646442981879782486486519383560154141105057138110579680531963961468104295694558403507463193051514460207810669154659796972124908123537888303394577786118548344899577727824075920408403680833633282308672411597477715928949048868565965576338083223602555560693933137782982045813506949888895977375911049881616165782786430702238831800689693093535060594083367416539824766115608997146306148306543445615967324303566610394005163981276586080414632959581383087163394487356277425843066731711131249114477672305937152462772632225431846772254274353151540573514833875797028334200964813094935832518644288178065483863175171179115178598741039299222186718715771003339346664369868695200339244154500005432468530432947750088396489748778207557720787442495032497168009783706706240438575329548018509374738086917768700220493704802316346017859698794954253252123133665669588134897491039202951042952249264289369568423905693117298540557583707160090536606881863784198383233020470840388159550630560754151090351930894249149550651383549996012573282617643689710888169556668829828582435795598873021983729309312867726639098173240369522835414323580651156557671091005508408740784595317201256563187141370882052695420986384865172780649281050051070305733126960977606959276396522344835444084308161127558386514158631023936628971563176435658755922512204521500559649961057373263212785670203554062497320572826730212314694586784361796468965656711868472797719974031258038434893990975139484824161374871436186233435231555387348830433781094059804833404287441033113741288496715791199601083297575539313990694544173123462047636126511296278344816214603940688837088696160161616963241087344920544608071053919336243059690261873002605163459792747286293457790081632465854579539416978915756173992957893687239280388841349127781986440289740013746712754598172654272236572360126746587819628471506189827071225677038544327690907079255173711146504349734988495452625306022379351176029188166154297195180719265069800490265863962162671173328798466983962024445575171934553403919158320594400067385431660046743294621675267755903907723365077368312294776348117848124585521787436732957845918333301323395957846917014383111656093899362998998158261348498167067893458099884178229262288415523903591151044057407044803381883645035685310316849497721138897843156718139023033611859232935829256018288953260996955685753609039132048363257016124101241516011273357588963921410231071870648519807691463921964748581885503812885580356397219451492399242311991177062900840960877731972823872430496653905575277422296933567812008587949695333806354156587833019131401837339516970986304497236395584786861788975600727057405391438033721465546426698636449350061565811998502042895828718026720878891349931449183335649080286132944628104966131641839806046701234523252101183875161024210341083868160099436219717110087516566511978567863572742723605135115668196481101079139999998379631801679174583608329129347657084062711503599308731634646596979371710263165280308723555445801676810791834620609762353035704654075125470785849648893298151208624895054429296541325303897139135387911915937067922134101417792636025123864525009331998603948872006194211441818654163597410435636148884461161055530325849515083762483119523882333476348281181904809637050689766971877279566904269012788486646160577009036458104685917148085624047613628871588852906872161098808156555569232316385586576549812703866852602847157630813481614078565374750514157402942907671749840424371005336246111672458558623500106023208356044374027789504729235137025521338871116316609561620279738573149206701989147647079789541981948473494254161612158832402465631210241043967660386787156484749164536278643691684393467005521430292534396598623922147403276827788554777708691708535613058352385331819453433234751395419433464680606195600617754974008259868775416403842371360167488307587852701739994479549079721423833683519760766280934618246831691372023014617226234999555406009681480855372221780895042633549627448111398077135156692162526715996946830335675006459692292418990332068890417469892013381912472770319247290067575191254964635554759930535201723519158334845043835871927151385133678799924008292134021535616402498281954978575147124870092313934927910764271711049977696638313779355974915110870561241938871709029495539292304393637537547038087817653772353352383143591801551942516309469050681811724046994416657581576645850203978228933076177878735631142598117618108817754350187130820859585590671222429442071590432892033458342744457305554100116573348318783234885910326653297054644913181694131159770331946282328915957380897394877502338357768934482273481546488631360327890401606202829288909916771799488575759515702852572919735423917149268454648478768481202988527178190776233491407595483761773221549148945242224576569848414453068133992775777820658986515217348246908874430088354461366767477632693648345631014312677647795050015475123754132230426193046142670144159256170176489229509853585863496095496157691809972471366535151117126975468125625213377662607661646683243127899547515805070628572137682391262373638255975499316102640389339339093298535264012208911704401490298672876885937873651576873350134399027170843103890818787556463924891637655706335071738432115963073194985638017802398207692250712008206434419369199952022832527068021769146185894408914917029315490001864133911909518652612188549543897107611048429165943139844739734628786250418681025919785972138432790572622947374008834302361137530943543728888364941785806830132387768243651352379676872949881170931799324057116374956864547355571218698641611639008271135602316078604197763079548823323361186998354473703430717567690037327084327382819005429441956707201548921656954352683475870100030062503981106524673756713567064009350236575676514535113686524246893279749790716860649426832449570743581043478811706733979899431721766748395311538446846652747799238826058886557993154539923176521431175617752288097080931673764050686672176508221540699379661458450659623730537543152053164541542215761268409114433886604960841920292938803828895482479071684540209780143567321807099461523185604281749936625062723331431169710531200407820552458899918768937219585675494030651895012312108792026973115110166678859524664242442977733779898635809262942111428770042014613543710184146494339369356718108347480094368818378577954129543425497772463787926786369414379114489865969085783275732665154167533925653320615198058017613374155930218348813599649385622773875092239218911870734663588516799843690130686856209499736945755271842780752925397505591871708221732268096545420268088910852125283587098323559136176917846773720375565455377212919500750268355600565461763543549823800330504226541280493732633144960157719432325514256359375718982416277507851393028916009800528128638056537821846045253858931570197295968394715873202846890820032052542610999039358260842739477930764889452890514865048429146890638621319525503869155736477770327152116366891186956307274184119628430478950063773733741318763491873261613201389091014550454179422264695961072803202041071121843949555519771646103822000108397729728378026400969892413104165303782187696667689563102831740037544057273722594133968543720410401091952324698909502024428222382208948551956957273469661296586216216513842335844089738282666991376552888344789175154800733653540120252998836390652995191723926780214130331837188074188305217029771454032927369838193936367021029655548982111351600450542834885883058003388320591700612655214153166841454140143274686213866295003086020339473824664329403774808463977767321025522693145613949498830455564329484417786257924348254707475592345291172672014957123838254902472096975604713586507378232720346926194016790134453109651839268545669099116553255466880956704126334664138956809907423108486624412220202111476738139751839086496250923637801861099268974331253696570069188137275470903717881447883060796694726390193709545280942894392256749920774000190690211023287193899813387322930964248808586212670873175121243643995706834239022732562846624131878801892729744274908768449357786027529247968818445346347049929425835616980333302162946271980690789858058789391146943019115587983231266307262576445092371244590238913094047514843532910468339662726024144317836389814413086305373439878943303470611345707499026613315314970165790981265205752761350328413773110800133389416246661999937855248319834870685638107071858386317409704517279486128368097007250829843769861294286762899327044980298102630823360408405950179785890095708889427936169809547970296244492848209565779191562879274855298756047180577206110829683181232850460712016267555488669899860214798316818748714963002877758545788435759663034941572792969827539349317911605669681377394256638686143021552814509764279049869186750849564778626282414065435604838208228221070809586888415296246725330508150754000295477588060014204676048742501421323297171447036243879257084369222262590971523056529393841219176979572077011058907970572396403818518584855675541850233921748783224920409061800133056114435993170644073743015567117326180473463490862581427199508858539054655288071308670764684280726884598721663188176730807485108942611994717540302285744309623200967386438086929530181527085844641073505036028661858811993465570339730210371220740418703526126395624195577882187669288443790676807436356862724321098353662160695287706922651563973797678841627342116556797901908712614300227935362785141410458396565274018878334500495110398162785536578406184195703747258247954186974833722329848670071180159818608380523919641591177426766781935601801254986775960343470570887772447417237041732699769887704442155406290390746558558141770033014727809740801581494126832307194411593228696711171481006337179948011133707899126514757622543148787374826101457625603320074345672260803941465780889617027992987545794099938353156029055188462330478033928777004584614870591433996410986446172291096804171962369032423658986872569389950174657466451925238914278862498100294936200671601509148653467582482347468736891294046931023099295687749485257853691368995118574623365501823800292118520848853001635632129621208484738637109593938191314776068474339941577088497810799610091436356069214279407119510327697323208233142484224847283955555099789460764222927472550246535239562364107045124883852622177639353623511001425071330727573165257431725287042987988121085310529777827344881159974550549807396192606993843405720885318796227670283285048670329161809819747046163673193964013220527057112823269682267707062650599061452763027294031665882274884507110048829740823477790967627117628670938468217369760616027407919030939100819554417010015023649052944043789073193731932819055994680469924512632903900819964770053053230055521516132624440021321006998175226002043677197077883734177334442469672038047151204297599029063818866987632335081552059422150732510322440952477873886457989222928705902772984946464683849546217398229375124198166410775688384624570145547041627173660575052879970631300016558566450787428917468255171036171783514119994710119108548839634727683261694223409845691762949545275901455031864000217725684494912633660914496343818692021735355861359921462667668027699853425286063360830235625089246963862904298113729303429660525279667523829687762248882164001756905212236385273577743416185018004756112547725329595715702915451574374213449978888770550583868372082600399918925279554833978671975669153594551502524671306483480812970092567384587220876839147665180953601341300368201830128251981275164553226029529530960026409596210198154884810824712996577219567070847854693914345102041112502823636778998179176995187139011276297381082439599580911798431187289173835681912527957438480797533913206765270815139100328152503563742258097980442044085895726737153633445020957147439605382397519190470963559455951568009728703732346130552075132055145244957570258238558289876183123927780394018127014339752191177289704120550256798405007991696666471326245346008879370976872725469058640701205638574601991730923157250634917826069966709986547194769702694361984946547618248961130819008283951281674228726655403665224773254356002628581261779352004405069616189465536143599728510005408599699555802393654034427570552263005872559820536998609227509696674959571349250222137429315114223195572952926013131984714460415381128086893001567501189789848079258125358300194402713975465821065586512741739182019547060535895100237120769013252289137884958719644602813473191268074105535751551605129963746052140876310480910006980585655263299022329601670863632100134028622053891840487420556874285140790231203741036064091260978967796580972346188933339562781670857358736321145113664792543737434023881683593624184785751689463393564436186316628666091515989132208646049656333586630273880475838662307130929492808304531193371187466439194296411033162221549990982612601093587920739842328143062779118131964480034091004653983128316156238390838659833557244046033975654666767138802301648877418390652558534963453433975428184855127112566325760308809183546439574758390262629450425693642838081574080598009444043363304870153882768938757305048893144405292235934981630426098191233637365626936673843954030401562780258775627458497007073692738596895188031813375172529444791608312623930749363515567516886588060670991569455697456505308386918166463621554703309075888537640893798201353065964749311591544348393607665111180153213325565230488262496357922872978842077437366008258734977560158892705046115186966404285382076008973305452741135076297653875469271437907855610606255535731708627020338498097325320693445477069993018159525359696355324928509981878781850796997349916500935461900840548865039898298379051947932701506100555803570314650304292347300443292544926912181147065452216789026077388705039615859774707044178737923717337775050237906674902544707070922163963717986644750915922316651273278802203443550699607966091806130327820350104815662895172138613456985990471157025481168733942155915783254285915878523713293540028942589397955656169060560060377086333717568910836999615848461824930566019600554104151068585183643481965948871774434003775349301719900347968885468399420457190959615512018969330711211301521887904584034948726914149969066022266149887380847463947909944509699316961508504018942362118827966339392939129809750524930907501361737585913125084522674348997378585612967066721744148584237482182484927953003030400590221155930114676651471034030764303574112362917422566569236583468011230946212348219304822680011209778041898381826499868024635652522365001481810452711900520972815357186514561217426270918048832572565908203399042038336428712253695237402315046869489417137546277979998971806127601095555294457535538745131701404425417401775641214973466580783062245603878305030380273704104973225338041750989849384723402451712780335663093500596727451962124240507298370778577723309517782533208379307670538928142003816480204899200585412933793192193562659566603973112086451006391004067755252887890058007152252416285212516587663275880016033636281081006635760127119895785355337578451388895611649100322085948022515349539645772740200010313796176089628130510665852672336331516757533237532790323769180350658786987175367841669873936794156895466338440714452926891080190004761051985420229600327389230596815054809070206561977155637798669634480794150046556256830953389593596798320699116449370504657529703221964856415119065673379106590782845829424002099808856232560578028873094411873022599297481865836973509505390512977792447955741465471703928176841004753927445411453928159681342252250005455329185904680026900864191795873147387199853180505566410125103828095408115568351221108950853208012661721642101282496356688884316462193484464636527995127535775076609758986095822450371513129780132854317530583597363410909702916759332843204613539777675644530062153269570143012189153405943805092979021216467832213576597112098497333198932704777017914101436990233932074916588323270937026694281481214905155583761643214484531357502621923609544269571817953454488193563932213530669517424128969008766592607239246299115606423345685080605095768167508847137089943355354068863139899814449737721378172706767808347981016576490986538603521005941696425279343148894689670147179061139949731483849715862282477212457853589667931166589314845759578591098506792393735732601087732006796022561025243329029373359995231513301873385950646526620618086264339187287435141349900680269763190976352769673327624276246535301880963522795357742641553977475769819236333725044740100979343190833119134549838406314957912336934371556376985233968240507199179288247246038290380554169349664136428335578070007688198159797708675670226364304223830453448803847232256453388718837092432051433438194374405630519913740060074207543623723592114050523354838404481634663758477345760513233473762527715764211459501168721317626004467104135331868960594696765529514588521369728749740878004134473706595493486994204193180037051004521012817097083673670408041810800576634525338336011190985430153176361448934710991898615817815662316670756287367527816999722907678353114394967818688580331144649691466654898500954897656085507870684835375454489888191006833501347949736592656134907237206888378804979929370694180868545638487887480283622885194843893651030011140315872018989532020510924158224223509230753571615327849831437116796577985445163424971845006316214144292638805913871182096816316910789408398317699435648521204533853484621957876626083157777808448060245597419783892030098643465309399030499921349695157869183712666332488741178287982007765623088652769363345500503265754034331212723925483677247868612063658205909487705136068330433081986034851357416908058171658202344494249053379646538658221449306514197026517942475134590664239920383263208725948438949492974692316026802880432208922197383997093148327368545580655527874079377231547293579390230329302750579037893865678953791364030085078414838145600525435331175964588981773876710398419314683204979945332970211880004552764561087049578431726879127713990112564084592021155342232362948337667453007538190869931088314787153968685101806383011747682915064993093906155160333580548482101725950165132275902007720730135318062529964301001146247814666052043461160144956780428293738055471415838960840616946467513789343197683624201097268493036867307551903238146368477116259663388056810384925785461548770334860549972536183319238057958969844314107839658078212835950077085420465168446322181360408802302022913129943507251994911083897688857157582401516433344436341945160612553570252645829928170067888291301731802600925378325132164173523899487629692037496059439084032152977177387685967878277272051885822393785603589498350425711302102658575587614644225203540796445626663819125087399356162862819504152207251575155701459921360272301404761041034043418361090764733769201194095376701149628577344239413426216491406894564941463749191411894978531368752755533039777473330349000362482246213790048479942986245447118452018666389676924281666809307279814643102784601657633871634070024186905869303723384088206837563586146631895195253595710877634244095430169286345226524624581374600115915491428631551938821438060983560492736367108375857522881823242872583105769462784363817934422804270313569628870585960150759902708947529626357770146833260024980304609811313785871703322934305932034352173525588591318798461917413332778966498667720511214575484521816864977799461475114487645808169391200588325313255320636579282901644710658565161828353142778480620598211930582576473442339125067956252105383065917349870264648220375582644345652693528119285943071373555224627978550793935186025578563737205209170470942997732112807862111036972444956763386560376974318806339647979848753172090512369938144037713179132147352388220525911819967226930288064176509623401686347541262794892901964131270448151637002062987860934127396450300401544422871148104612704860838592710641046134571066568045564807964401680372568422421770207139214179510929519357005394781099469016002192120804783153340824965472776848450632512126840572244913012259839026169819838953271348941761393017710864641336586385957721400429546397941559307850939822329951949907316415579853248366361193728695892999791046904961675601073009698293108102467716235492843983909937718136594093630160246854275123115005508841557321801985190323550750844841965845411958764828469704829924886844608565343010386056563742694162541913223048736744741274395777097501793525184332160372806889520464474519624278503842155598761200358127510697090095328322366354827703697630328861503993950013689641873050667698059121397855427493605866101422527294426908174127431774156002718323824879663677427049024784580283284291813017659689396794811558439033833791139707192982079798901097471393407086640065612892292981422412364529376641065867464824158652960767257946219958640594815099518011616792262812534322980126287695813834217526362414065067212878248619138322631230728395085393663871562048280179894277371930375282515553181281170873873715851620796932898015669121418302193450229416298469939052680482438999896373984042156223118698785392721379646443290066102358498034426692125055885476519374019649124709943952023347074833753428398776634196049463742309430658344194637795892409913571991535626827835841522220742422357361437843142559720004180849795161733976135553591860677006575509669978973859119592133820927475052685988832905899558169071230107522058935142886212062123953900916852108396842053339459287572904989238507127719977948376652860054514199661512898631557229176585912765016888621908172949481395035160968276057370694496075470324484208634584693099307143742409133509931637794410707693641316584759966810228489930167702118919843769342976252225385842808814243075749007844716767586634755874249956159206273561326364568844486973776043884165633426045092480154441313471407544849934064527184986517383647581248854156314271530236008936560943228299407681088131889542315157507650081201663441540834891046512338347185681960039580514662331334304180563310154636784650531415564453683140697669177281333604377521575208748216105508748617842317807508920322669647216794359815398190389325831786279803109450264420284015746451992254220890211324594434261603670197757357469315017163165611697261423519037024777963749249411328479545028521241433874063631183040445529156578333344571841911981327186357870769824784964339063566607342117745773748548033444430975891584973322026211670866386662027735367466832693692228050824991394512682197412154033241154172302229068737526819083476766518720274329581845836722812849359982673536023057784213221910140587826374568793064632214253196177818183360081228709602156589085613125024391040098662231622607603526116455180053269583669509797318995925960883180514683987705226696916972761318799564781066438987861774572180839374358932228822865326625078279732135298770489656108789441908762665177619490632229567739626151302718428951211968269151593604585760855500611923694353633127708281921450272448454885875503743987696166712627915081540428719165974418647535447833369515154922038572146264953855823640189042427681957654084328968844388698765302453197475925251174808111843926269382131641895978132579035036756338660169239755243081561559247079442929735723718553740603417596927037795063846341877702361404122458728404219531717846031050896055680066298536478486826686444312319854561132475703786919285815615956504858242185766658881457057927771724786323197729725932631893248088066880926203781786911490290035559600525558609638857789790820077287301665413753069208673849471703866415713969410611536773646800909129753021976275999962472421184127712497807863170534523650108944035251237871339196688344091328189062727484426194043304966033883330745954369799513388735542501673338978953309714642787089830741349436388868566997837494320751659765109725590915837839750644136751369179996340425682569559118836198012920693319484062375682896464583824540850797949077512351641778849323913982964850039503508911893962945780532782206150484215685347829684975332971656712387304521680952235024685940985060257620523420940105866493476205649865472115426519789923710121746190979904137470941752879487658498935340074087888925992198421584729258667165877682272503377138192114652535571776345425236205736814391372021125894328435928888223017250336404974797402936033574779522165164468864338738130193917515515380140312099280367039556411498551391895955520529871290470853574327503692765199513572623950976244880198510342228577567580497886390212189630878879203387442132891642365956897898621356841362754890367886893191960943621489846493568574713508129418896427639538920258598845029933735019439207817852455426634863232514884673376947786432338052260608885130886109450813328813523320098214810084526627444403360816457049984674554899498668534074571742317362033397990570019696236465882652239738852582129485110498934062018222479530338671655183926449972793021457537015788064031596848727539835230231792675789952543197544074895745295506775822139465023468079037592467904999220542731305015516229956340790468110710399259781144363935891220746726631500181482929772745343355229181259701616105384712475933403254223202897837476121519346993171534094629460950682879562257666339509477812096836478212044255850035683241868714972605798340941456837985524851404147351945106451149231481985980315410535635351111706362972255430100690044104294544788963817594814863789285536190670790741058670276625852289142819399047851495905682929240196062826090745863541682623747196751868927637947436611558485501695828582152011263024287967991913905896954098696092422247607714570656681024253814837837070905964121254253267372825235469601094774532411147545259812280622566219179676107522278432198339491845933677984190020771675570902976213348438738856770191374406098685882574003407335819057867499014571687594681659082359554467848971187416972185884881397213621889027078553220987684089874616805809145547246147622716531683193571014394210296254769619562905200477928153482289216382907055372273499762148868550761276635296924658110971562028162456237325384147678439402848195679033065485074538912895601796822493196128342985920913675437190222345207754970593239711603129462022914689740934372964805601030178180061327076451492003694695985431543115081667716266779538852710416261459844406412778167592604225265375036261210356447450360820234638619455998818366013158790000583504265983579003215374478375972831220476669827592073166727789712639604290235339916579502397514825087399949496711158230042186812226666211768698989052816280261945503068687910783427750506782604111819758497732643380424822175808740146016541987050989111093243623066595110955127720952819584523010392459240101556188097016146452478967736779631651122571903140182190204624353883830310557610789397218554488885306791581395452946549129663043911681113202158407109377363777593002361360217818378674198516726558518648446418851371461110320497997380869843909938579063282387365249829473346792199223954688427765890805877298323504721739575971342104807546673336399576257641328718869568577606283634978670490336673132036452500699318009913588473078134512481179471228168924118081805707244839236160797727571975504482836460488210789873837737350751889610116928649716519429688433133541660584889820209059501215220249136068321080994168119990390322503202292520133838984239593179464100277030074431309128086817432939962492789617177479383276393772877785166209884828007780024791841215598981544091983897543383320071372471716330584681342741636553257267316077401094942913343407659685389084571858635978351188727823721331366930413991104422776624042465120397799294812313318912271476160208600191845634069163254031116065655323519230903876728968113789955093205475837000395238312028100355703960050523939434422308653313629138000353307958924575697202345673329772780962932756156515073513565099554750143660692801396715331812469210546419719454389142530990803046649564168762192995167507890149595014629951055722319908251053301624903777249548807202747236153425922068134962284713692106019751389937802444008723006948039118511416778288267462601457758907980513209419487277671334520996775618722576989771688084311127082841651485531225936169258305491033519884268305575178640455726987428523436377225519734987815574493390821780894874598734585437385874628829702981220006984623984664274985573254883359887807008592659865836904226372525487016298264417029947630700052046730951487693543633736347667233638645456174373612926545102559168337542439860200480933540199502515319137254142625540757066964688346334574135290725543796478900204233467023291663933388629941552747948024513391438476566084067500093717451061332768125951238466848817623610361886162797956473202393074570494123987003601130670890294313907284596780053688553446167365059891876319149621438731142565217459987834657896542130416593160214017841418455526367850548041674538724300856680441499711856969989622165155485044624760121819581613933319227296934867238700687216809662443065793147893332644723278601460664225674806216150470756857230360546246097964671407975393327227126396278471886459619589089733881188478015800995958770663636827041803168274577914363105125858625686313028231725564325559087728569453054243849197518677289173227024856306749320392866459996251917315536315753122523937945468489506258452970557452957663768409815218786866082754459393517445031271643926585291723943784958609957234270219093117327749228658712801214749520889720193170876879765004782143572826208099984319648061162163059363546949475912410200747784516579369421443669676326169282299796848567118853347554121917357571802625949528090464345249743941870666761689436236057709700108297632086937841937648790470545263103793811312038164873641854751111669690435214791403816564094149710602559318224898307874969944196105118711487739703122186983980563286649936058422136239332737416658846582978234999079915923969848687693117854838733798086702988243658894616963463463740778855063777442932660742374765636571651102642586297631860197525419295654320791971199543341725435020471125893535691073745599691825828747428371415517769175920223386127207159561448710728532303343679578000580805876500935330519103643667433900074253263107185820401844710293947866745621045762864852125158329859082194632236782451417097065398040649160036526781318914046140877451565959136627099689799820975728308770947811566945161787838619563583783464134127864975121583625216769170371720133215487933387614285205312998211334606938565685829573068857749640375848841990988152331048577782854402428574672272745874076996815211033364537994476373334359148328731622331982803332172893482487998485993100765178522524130319430298083012340443127166112906866377226626622734428501173282889265704943978727096377300496867148258284206647457955776056541433177467250269871203833660636732289443536391756107669146949958572644630889690562582853008358162288550872709406606171352548522037577101599042822279855201739498039694329807368254272385780406510376159700655501945458788526701832488980477505193922869084200267598433426553261318329473591327239951374838596635463837980852890437697558208412509883646451352003298629330568594836925955745184595516614543582710262421878891408615242761353122214939460884385936772756321644987725555880661038615911624482684483806101400385422639413774740952719090440432550459121731903228946727419972545488976895325426018651161260798132335138774780217869508267729358188630280770616893941689365636498005764480497305752678248096062544623272563278875895943156056564936139372069664075832433567068294387010831972828883861370533921517716426094135245602673752924416670028996551983459893146818180656610243431457033198584419416923555627692815109285170009797997787153511676776631884671026446299048311119658846258781267926711570908919283521563442760223446366342768964951731037358859723396271838501861221656451835943353565661959383721439191525659119515295618687823050570556232468019845355565470249178373684232928587598085040086148122207328860260438043195567380545216459821804914632981099460043888012821691540357562995250841775357784345227136199472743869560537642603473431583460338517565644769644794036571557773431343309782481903440471094305952795562008362783924722269261059501773109141042755435918181801526431214379218155610515760760579078267992491983289544246931736483888900492549738279985505353316935459177742492105851690566418833211464316077214770627286105825161771854601693734309969167320667357395218276845651982881413575874399429103232174137810380403311168782269509995372447193281398195587973892121228495292405730870180896878645826141578807284858638210257090361764419727929053942492623840507783748763149626366235849825164800015536630678323808910988071161214393984820548129962543550718015889392071837875275700049463730422651201485706786611797756491582271435062511388321395692772157442572357384567612310051659053974644330582218087342676306390725739022526197119008257057179618035975576021166583359398501903134510943189326901274630048287293975147936042802675524785746988488504948026990261829849526257519467124861318223421809700235211948950079183194883379487250152687337113208023375757719373416162566123207668055087110507424849388678662628464077056813561942236797567918594371783946264632315790406156942818143935513555165794409691172715763457430565398921120608326031387511495856736882934444269443259379373465677145193324395484785917556100729779329295856643210844172184198451170099658185691369499660583990526884070148385011138626768001829785670892284100479458953107649685004579910335326738671616602037756337616430087009899240684110128943772280151530220978511358343601534719790197301594607752724582834536907479122095939332524247572430009288253989583435283676986148170400861430200742580553429102164606405961957866490857945455672122807672740063839761059514779704347904550969245193885207979700644198016222899264349191051612411690980672651846640420062067023163242180696751967638788490942729591247534761771467726636203746544143042553992722849528349802471876698734671502177057311363522473062838217796278948269319339867908592215031169821303895012806036988831678068121907458506217123316659181213349091665129131171086464888465692747622091897476581945514370587393384036675698726056411688268098323999986031960004036165964889980462078869863683435998823059241624220490943394080050329883086565912145994252280301831529911306697072943565104818737447494215801950242654195296458796680263703639501593292667719040008120124222996562780676748244490838636571136088662993653497484743162955065772494954889545544303919081591821117636847162922038381650307080954527301535046213562095129937842218302331501935941966099327838363199653781141103526540972952343590155078876352468685620245693334216625240809286589348384184899015931985281098712249858055509423472577969703867438819739673864873808652561758988911781565545951772496592124839603480311201380978436149565932147017067418141589307335623196285726007409964992469132678641265599180003947171726680500255513736006441503573979988102478937052045232327144912033335334862464707257576663066030340027656727330013935854830343251125781068451693205204841902733182859486149665702745140688618340827313446398515909690534028244485266184520004680885310582562581057612909597890760574873958530292181348320961883191939406743204943961977915618758278036756226440429088130887874361564499265568172543240633730272872889514511738661333626518217394806641516854751006059694974668808692938366179217449077518522377009696316585584846162395894476252013745691773893955301521479228208486356875022554373157215611766679192716612261638562765533452373823462420042263892164406376132189364570042268026030397999345742029718887044448881069954057617980540693451693558027382400464580103220530060246855136433805299147761862943144820138366776889222005443038700134069701298432857319683546778740737011568447231703339000988810055576984561313359328532298888377768622445185141195131001521826919262268231633506856170263874222988128825820088217319171467780205284284626772950870042072226554147518072775106637057277371103444370793663699010109630589767079554808532564393004751871672561961936744951159448077302468119314307664146246848433918265573794599098796985909927514530884941994963073832481597421409842338306491263389665982085901374202798984018026671869626240210118593987029117922722716489386825688041742759759185431676791283375305111897565813308263802134859276347600004298567929148327159082782301958654463245506971238368854949944477457082991532190272345262628656666418069532694057834739806145637200961339726611627370439833946011634926561370499877270764433221855604225624657734993515787997412214390670766174536478142800764171083534571640166265209454143860419927063298279033533482579716020503412338920819982755620443779424716490747054993849978340288820986160103614733662110235506843008049167254482215537968568923733232213642735789397148392125674623853444079434008591083807507798714956269233134701287213395115001722101420571681600915997359811587641250251554043436419449058401736235576809733466002891255489830316330308533913514253347782722069546705538512397763012613998197390301651521961562068652860261283542887192505814821653739364952485733963691266225747199792827297414754104057707754616039014546254921640722917618476808059116374530120609968333198355738586481437795489003635590607966059183056303115182858569740263742831359370979994638158495340851909399628031808607342551139983368025395924465328141253430917926641877567346540231209026048264324967423470834730000524062399834477523557042223237476440669175278609970280038009546210380946448440803309157152576154176782247245283685395396034730940610429756726579174783811025663765463318121165503284258786332631381929703299067902990539862193479973307735036806472458069261786116153965936642451169309348807561498736088795775891937042471038120727380615857791033878588431632037649049764863817941001588917920666460651081865747004517995914689325919910850247957370909719974508676532824115296652355154729669037211590678323645896721564752018258901928574655308209821174133752939921456185017952460216166791024591153105094259082419773961960329042510539107873565491144194100439931895503992553414924305394880760100041021653346226694632406055899883516094559116680172005963085520891171070795192618416613867451241881725648907081729885767413077208844655402368620388666157585245462755925471776184566042865220815657206467963472059135351294706958009224578686337552907256608916281390456579297391544010833991319940769514876520545689447790872296798754308859427786707544124339026518684732163606251344736296193969650560750582636000285470928605465799613464572980632754962909744174217557592778468397685479114482877787960330511905106427662446344469064202314165421811721124131490401459087441494155805008012961711956799111209060323274080973580340100332559018500304120064218821670004580757631109428696225734355028709601565876732266060745365084931507008307293295311459254230793673646769242109118005614511416405894211352336304909545769865184100435793522901031772504945380634601347274383917776124834724568025070049093211997563148377571805388763445133067704901985442113645262337405677963384392708040782923446989431860986699591615326238322072726290426379442392412919883026419104520173520970820055992802925397149455092231373483713737961610798772480499227853463239994931357400192175071332332612500910211974775225151200804004018724478840916351521145800187139444866707396423575315999280025218178834645160606932957734600824149116483763099022003198938494617271831932477924464283326108966229964291850500254460603185689740165931000253695423089724012590512631754065233034761833174335111974102363367448850187434901906950630409892990473820526973317898783644001010507467130879830684228184293088144268191946039190196951510965185343947230285365024588002119612100463475911501929129782496745369083031886945796624364093602887271057001912139488410373569415270162249637852425902018815585855732424055310105254457492293879087970211464162194891219295646154481358245206542013126000593312302928768818051839224350748308236789638640923757724538090696091614373423258623866689924249370592802163903386174984457306827849253366635773958221505126261781741587277917428681329121569380370130485448194863203787844182665256390673876411810223563268555456485112167192055530628839164291193408599411789443533576781817626811620310241979416308072939523393714163282236689619132224236851772698492218176055554404026390220521246827196129437960725834195312116827950158418850142897334757486024611592296856468170073063873671801596181877434132109006444335367225705461834546578041852521835553270271373569269224158060925048924861714401777228266956151604188337081247196046700961151605608153667242698839828145134998316114002698854353263374811314047857273659783856444987562065695603349230445042990838412883103565559553424832997754856064243644210437963293024647029329842026286034161285587181107659189363463620880926514249275021898031071939847912451304391820437759407725128451028665743157635924759480787365703665737736567575211834783022528413834582764357834311479670684529063311498923161266616775943457988636512453254039138501478791141646366782837164810083878752563522635674781531110193721259778012333580658065540996092322659995324112714656256997050244895376978171802018804777796007392243758399776443296722345951114229582335619662078225674513884854119432339265305538670380475530157773513219144509337948797080652899096819793608419883868347377187842618070655556544273154645995948305255380688270591211978388526341777453478582364670089997749636062647421067527789516373246824722803821028247463824575867521521472003433392323596540745622423951146679663621776816429791249949553901234113575586315264540385168423927721734240926284781155128131193429907401590577426956540473048823244904881977980303618339363353529085913471056109179172314451530018406657451549914222968615486335334031391660777798423811511888241021753243614019647620014771876871928349134134432788060135265220845990244974804553750775257417113720792304058426111572485454183867899560308752399645914558449986031495210550505879003938302144108553881749442129647838520382878115285801476994837907635350140283951496686086726930788986407663927083936683168321297154823240589993717794493921256326316366243504092939368843003526166690027508325025626166940834523845025279379005625630465782711711034367865929885414887624083080198267576555531061668168693174647509793866275942933895162821838444594991259424347448104513397572157622342761561974203025052159611339518630050358983166609623754049355419622710364617480448781116619925895061171948056591321607533792795447517179988211531493529629302325893404729460643733827552882761803626791266286880995985837149833035652693504092497661020932725542108766558422464841781812353049520912237211730331895186060476542642799489598000116194662160764381015220420329286885828104078491355190015530833269310981776566337669469491665604126382183589617443646047063711883975283133611407301841942038670313024164417120047844779744551182692925927956251393954362504124878292421498124152463544404177546156786344664134459047866782670916991713301487919649531467101507547240053604268763018720291510699980960161298525339731311135123361721732231255833220056824379952520886129397753612153320143422448401153692695096334117160148398439254422387921182365821447390218052259519162419367848296697976131798111767215322054409969016055208726522766568103114464164772833900432528398465431263234446826344074630278736741729376807764022314086790347670726854524005479759073925234565736277770770390318584669615423621206650230993865986038131274463140887554765268762916765545171313337666872173078126376342530476117002434424502991368590680629659463543674959782254179388098325760771105782799319147049299345290098430222991457600986383152072425148310059263659453041168856060196441568015214963537623978255053313927260536493274891105065501105623670829833704036343478488060414422200593412611530600911576330718149847259748222279979475853195336055898349593562591360267377631797171550201756599931025966971873304512142337473890095356636348878257905301335809533004278530258518341044277121275608648720791664448957591735485554668003437784311298226521359018414301827340425872014023988500488843114611674768295178298146285067343093947131624235825279108302400045506307704138237738511591566841457163815838838925596975394726827624282263217914309317255952421413358540623357153385136888622386539101013131824652043057430453551835866000049679888504399323607214539999877565508576514714506964062471530876796343212381700277041926614692638808525725658783837591569328964182705003880107896303182011103781966143912964499302021320806469340436402373790766244932838651290416467383983102295984743785627788310413779320113101748129315919050435740606565316219848492136436669357019678535713201233922005349850125050685771725660068874954918467430051053958919148526476139981963425008612640549499114197436696961601172956056819133765657129957441665241040238258600376353839562974051835097631913316429585668907801025920415706537466381348207946696467000800358535653607746760595606064552504541486972690743049968872936619526209898235275916708983564909907046465604845235769086786466970324885761775368327971920556285405147567650187511031559339332711552229540751612293587444769522746827845029920733890527158424078096254306947414667991870380293628968299426757726020004054210969515936226348885201241354106791319334480894955469241346736153027121641476712506795385308350614086801754724890810071336218096240593208960706041923706335119133086969829669036716571240823309099945752252900683707334013798883020429085368563652512163112510780093346126998667459648107616683887758785334231043941271965995103358986752534840086113450827450666490910315175888983563224085217392503445815270842626317908064672530464608755549820787817692521530820781496081110553587747563992626125305666158259913998819909534894762080775785411923311076472099718867527283029278489871340337827186899534439422361410759483098109609943827433082680377822481550250870412406661184782242233149523978233000590867436820739976869277673894440623711317005132780028912302131505458718632168363062069229737499215180948723266427447747785176542155403337521085061828173246625783883809827654306629344203674778222560862560838412168016696089696528100154909142319147281579873881667221142636598083914432502206440535858415507445703134182857699653174150061820204932549860378754037261158055021650841744109124788167710923573876732205826598732154893598682788316753966755687832906308917689922595921368160785672740732029863571220107210769998385502092136229179361566886239186200061420475215516749113348934323575472859588924146639912676673247156750440664154404750151469148639436047919381109843243898683235700701434014647896398906686474296890160909772341126801520794119963447392599786089038389623300397937679590815168410332880708428076944143610940583368878099932066197104376174033388938585661339608575280327933840677784522189058259988148463152657559603225951768602164482457948398169217161104110018744734007948314443990936148308072914310638243212056310114105046301233207237777927352748520029067120787177595356115125880920212491238731125193068239362633731565791963640641334494122541023965377992912519963762101403991146262709254769325388871832833208363762605995548456560003259280900558498544407082390173406309175885314823524585349280252767995352605789847972614184607415837669764986689184757211450483526389260823436549761963224911264859876401114183613244734700966313896442848425886000778521552828848676963998529485160698219355226851995390472585956667569814342047021461494882373480155038019400889324867234955524263008296340953219062220381435340259917730453790927441297454334977452062927649050506579660706746151779540587416634066437054021657108580185588149543247647801541233137862602650318992520060270021472320890936103317915354011916174541562928423775490158741328687801579249195531884731404606663611633442457378902732730645409670208342807235621582969126181840768986209693919598136322666291411037132787903952034720916690737717324842698836208450232481805919868409000740954759107671856591676470724812906560505049333871585244533163071830450298535692148490080071873206706999153769049377915752861459548705068587498676851082397590569902387808160020785827824996249407626420284862894524982002740782831170577134827199628078876418941286773192151348622432094674613928778870041390520223279165544450845823803486000163681224624614530837174877549321488497703245055795807282581248142366058992359892460286232003870715370327367769075781269211568002675341792266537951782305361005808856409526225612450778842358473517978368311605336876057378258004074054533993154805797236469804026353149202768034646569659494786493358050619462319980412807561675392815622136008840700559481329683307570176575708211383415048711724559519572262243429696631693390825725547157056115360946263507825472089627300027309608177964278448402185832262948614465867534492543412486374054060685019524874706381615788186850618963340366248027103840811061103885373043295803653390572503755423893291273482847161770326508145877589599033689558187896796003115462098806950280461824497703103847627181527688213755667427714701841738813745486385723083062940469133405927241162947393982733056291801144845393463277421066258142294218582285956056499337166628983177503398269421253689982161392305154053865955105196992730280199465810540214174730411384867849006382147312956992769706887660384639255503597673591838142575024294846009567436033323548819106609701767880835209324343866717584533751182673110996650968847919426620448290851610592487547182408140216713875175108402623165909040216525060058862775314490311821282649744135610523093487645079532388265755298047555568374898072514454482383343162226893705991020972967383714749409484129617461892866233661063242570411999152881387167251510855652763974867525078788256358668265256311896784828609344284462359786276069513548108131120094368441122278273967550153025449187722619109321163687029558298099617156078870999203347794304476954682347773671702760641843621116388057932961675976309314383986649656558992793294741507577753687358557912483597645636213562527938482212324742565925329335785767147881202806785022299965845496475577840620794674412537454863664369483296383553778505690967160811146475481997858871171692923530463313147208683429021773653212850472978810018764008279119733880576912053712365837593412425635345508495347017219094522216157327583241990976881860214457992034841700571396954022263162619352790812543847503257423624837697551912721259714404104014356509997803644767918598808330321061100288494794066807123655173643239331647178931693563296055430480943782340483561369962836718912160139824034929026096363844418040546206830277539435001265113443919064486787969781324297771786244430795604015824813651496388210256922139518002784406247143533980510040225339858781028650369849472044306222337608877869699196039977239324213472544121229019463696247631512170794752501112378429528065172968689302309856740689752164419397783418817650648528946816669586935205994312819347913680216353871566724974217411234956942354672678781289296121930606530998718027535140247259156166140288820091406921155268868600494407371516376446407625966458616470386354482299450272433506036487721812878150835824028427911406319880366211515088013326468638692617831038835174245209940089509614665157483474694630905510291770482192709217917101381982630164057894455967004373788672027854363663813112571389787474285049002922686254475561893977169556705439715999204066217335806150916376388945314379950379108274429014472540024373816617730917795519319111801578218958699575292280807577569679085804989152894358803470690251662259973788697555293795202111306725412726234847633706719147559707113655280195525312624925578393488092401996551758216956613638743192459733250663182623072682510184901036125650522150733689598150236642885512509077786035948231622683686675020435288227003045689407945635915300721971496266857762648238152716004911488624354434542781311605357303202911656886181950043754006666961776037714834617788687183958877756750904931443839314332095883910437821756963571619874693118471481212455267318984588676188916095305296280390727356312797692195934579953903376739142985376673611572468849730564590256501683102907483362284877843410694995483040722154354314318389775581303789914733669213381021599092851260202644240885780550113049912567830295522856458165156442289895750173661045564499315355623240385235403009836101142883625595157819998695038657189624529430819621914622247521063944435044334838326765496158457251000270024117075911451653771560814506569657197182831081928263275079073717433878470057161752672200540492260424207221494233456989118025571482603418090215723096220229501229091628816180134091157562829380118287845400567069475507600539355067860789462978266737531033477012776059559316854929282085479677284141824185296072070366760986000141189406315066636938370538042647386449495621210115433125488964938893192661897282516348269563799982099532333369517392532724753758801667545813303902478596519963983734213132053645349096409228598737578654192628074002046589553255985366119556310428194656460780905754197310986393819493231799054303654256119141934961300000342805789565195439082716684808431949240092392843320751377888887890750208532190460796310201737758194241525349927909078027922056375618013059745853995900986586865533947625031939753851441096901800339128334326235071789485358412556014258233545015148203203917873445539853743365742297486764825276767379064003522648891696247509584137603888087118079885580196477860647248514113878161779105482954027116432874708797541865383739828154287759707427216303365834440641163662715899478933915607315554437292199175267507002867573582452483091551740961145938033703201334761778607915178114806726862758873316087062337904804693977355302124318892697419642506686196117389816082660888055302946427083939736688330030691250515477552367086080937839497154813469296925998090059163081639214259881832078950625388566228417365286557246868339819829567883499365021443690107209541015434879590206028529165588700822993178272555263795028062789466726579191870949135429572738614156677242446968555539710741668109821181021405668466357601772948296749741803178819225149898284796197376708149211826456046550767362951959094034466383747184605157231123381117733454824324757955391897040413115328366051746690815226827697191900502016136269762655149526413298169109258633263641465229456577250561612212734415517455361339188952892259973147381773038331079729626948175912065225568541375601234980436172929088532247925016249393217056886391732616621526141636723042612425237174978085349124023112355231456321720095120812924194389699757367640425437450687615973833766857096764300389373996091273875596930566477573316011935488523694520262419524467419625882867102637945498544677571215491453958652849020620588153263229790652723836028740321380989364246912623279905784693575647265988819627382962916591873027371073798671488304492055522745627456326715089908269774014718124704416008367008143355467214588764206614527045819298458959686318737217289566828923942740428478370305941077370677548665498087144344749902173027711774467217043206373985392199286112322737372690567006580075529080856499381598135066148406270889721112081904743688904143405108725969511762331409111718548469623912590560918468280012659428753538186081005489068185364075289171692429501575340347072165346830844752276205583369327231938627981161598886013204151862216274042980519731203801229986510878400519814683780750264684763700562666852965637019020006817422358668094678880492293952604107145287237111636964853308948145533347825288110245076254547166710183274754597308558195139083909772616402979605063377674804421721305824445738486512374577359639364371397886405095099835036551886003466556887863590764187348085777663582591211192815058967580308440924861314973288244139437075700302527870803091294441965075568957002491174546060486677028153094466667833211104296182859968878751790556830253359370520385673354407949633536633996231010555033957231162603621494309181016189823690296667003362888330343534510811386873804556846019167522086254798880561588249459432590303951702035358525290464919780613103605404258909309681665469889443177776989854135270254031798236113959721627189685065468352617474290307675882595203750729007668225598417063642491631636990908823198300869254490738966322315250972977340889434109590555367352221073916308031714313635288025717175944917572089998059133961780197119359454604304421846706958826096440359095450717116612179563132975514007740738328169339074708833738156822747587079287346758238660967360684398159387914651560705155096247036503918400138398901919968935889398582963150621798130793694256041026962910262616131569690497140180697542813630802711387413262148527466635327820891864398200598779495510160381232203564987824681676560749894851997800213709080067549902608474915022400272145868493415345840108837858344536708390365764287104041743122654632694950127248185619428424345675773379313993883154978486512768608522476081458726998955917138157257252500857724140001950648325001139106731752946407761088602293708298922864653365434616722685848982228429100374992665824995944147743806280299331730817436415441907206072826218098924718405134367031489704290919945986536894968292763869599641065678161669480922140577380126602669490479385893332394617354060279239297368514135958700010437629500338582968736284584160815417498246539823137347013724079863965218066146427151394020816993664937122226543201275391422166818664984457473403780733694049584763422693726641000475093845467480619153192138371631976263444075576564089591611401950162554462838128636258738832257239324047510363927026344677268036256137056248244111192342088217133657955904248272277150300801130001845250212989349290203462248982111748089158497711843549062653844852826567141742039806771164467163943049919357476194838741932060879283110542653545919061914482338903883295262116257620607283104083474949873963588422468976481961588080708572609815966221725841859055021044849996320635192423524043351395870577183890867418002792944682737547169872239432473645204333528850168318425219881343986098275980882862045445534293320417161332632518073998692118290510002528120539154075499894498231252565732563810594887386434756730397848920659876769644039958519042635920320866925109894198053889855092721631150405718027143214579437322717786223919126876085395613217984207615785411422972374144770002716771715876561214493284170142236453029222404560771034372777592057107455648525021423771516140695341800164717003381895551086514822191450652972807099970048111253516322194559972207996457635240322693235843124585425451242370477478046483288846827776946452367413653715133745237800199063512755072301323531502399804250703267669829042237779765906853339360976712333968612047125590912814452143684546902814715741332586025294863399254976201795415803811834580417998012972491644056502441935010731263319345397443594864198508554429348904129637200442440896152190670760110930102588130871199128507135778009565036064207444696082138978644362045681305368504300989709038933702442282609005508339682228519593565102963118330023439726304586596910670990099331674744288457948884469787853241153835416985058165837309032193911988490323791417794406249466778903589354046011977856744181600735063281053561019834055369776099230698003103481024567522363736567159800193080295103719055869990161191397092058291110135710105716903799135712398509418932193047077410774582526707527987736579152928539950382907136873506143665066217638462955492313023575767822767177771407068525998098933341450454775119322745479898725326075994970733605696966543756597627390108297298470380621977375477082415797225021560629348915846399557806747717977969569465099371270819097286741359621896789581315680250768684356208247295640123193317120967952939446762962415688756655731705268291457310847878354113287741281266731080073527765939887489527529028174509795032714843541246037364750747846007944384504554780980557340854505650895953755027189694565746399977251215130809679279849753512580188331827988941209414918305935394404737008964736627753127300897323151645370843333966931975973087171478262059169191015661328187218552632085589143787119226541062236594039433266696108697740661570268509484627116992364447082170670336147005536834547350920639335182294512096829783194860310977664325746089392759267797248720786378326425584571736961322346939296761016902111293271794109727110370211187850197216968641119426351590864966987889128264267777154481177414879868370262342690397941487016428039863061757228466870685915847780139112771835407866910988610799854384227021831933007463712741000989813229270358093612703924769809768005814601835193005921504245787270913545639723089337728601130599823934980317885712675042370098627168772149877076945086607969697213198728302211762513267040622127430912110951837626760138720052234333258911588620158298553386264626101276360402164351107186896994984821120051516708726692510048084401607665900506864590794986122641927609638291829788546827275379628374713708637916102096356955756518767457291056411993094441267335192919290074865183391796533459391997062698186164181731174028683944651713401765967520641223038770092560863601154417100904658344778705518699026422782217338395731880903298438815016899060718805465374739661640639901471529743042842994799800902764115961627808173809013336500807915937002982691222194607430851339906879166845235982742518031729245991749759695194012213640816313838631720955841535748834075443197791686587920070355743341565442308373410332092790246130053109065673898592392792976401293887975079392771825124269295146918667014272140648016468771868430232012693590763200427234328952244911103116304051870618566723694189321199433591401036686383547623656876814084190609411289089563010953315580003922259338449370374536779386808042118556383487129908557040086552274404618116359390510343029028347595931099709897501917208848587417966048839430035358649015960017004007917841058894783040729935758150362340809391742890430025896941665584170634754000948945192009863601087333037694069385509943955919576434162070099070652794266060013348144768900844716773390918943473991527131292475056905137998888834428098211847920306928258807111029301474156965442367645182114132484661804063371666185054003221361257580583383611212499784286109341723402590127192937732156582059825655034214813271745002237360203501808317225090918458100852110089964177015112997289363983545829460697974670949722534704405049894600800668853040231067401719309115282949315705629117039312075977678755787317927246512138520973209229221453727081970126265734836269510614877804023350188529248496688881908416906912672734888085824163400815722939117165862364811950590478593226957481438462916117126021494576419234418486874989305073586848077651135620734245075765855781896987103837056406827825787288679129987787965379559143989311521532030563659582748867007955860964368476927059724686684918000706506374890739901058584391100690411206511231332921165714911790283875146239236567618456795291216994276405872088019995041482706812322644835378838861241014567623150885069192792067524016274323813848320618327565306261245146446371090448754181061860132680433719373760747676261546532896979088972404056157515634202952712971912449149194523720937685127432537016567031037030430586029991235841735206955012614965271177658244136862837934142774871265919770648202951978804163918906842362012428989089686628041492505357821074188867004547298157190943381968962197786508408240759214349273427369539590122839013466398168632395113281320049838513440730245548248619621296402958315805619135702385198581251577407925596355000077668413195949555222879175254379063651787999637888449901576586768026549090525974088160500146265595504975552016050372288157387431125189327643965458026462757475181614983545848435074553198947124623437578436836947270554576462845092782536856998920996966622067327813310676867595627253195478334607535717553713063033095592602435627907477055044802133454306021800025414420204217880009000305331661016472817014030866519140946145687009659136765078884112930845330830755295636779099428252895437355118072370855821505808627636324495452617696047891945046675771785631476137682312031555330778003885493623687397312708167483045318706475295424505291957423656243973012261447544420978118850490203978454273834958317569685788183744940471036587727069288982134554416724071148839440730885558089926076140728459549727409495396948545925317006451424360628496992781354603513358596981147267046094135345185372474548210952405063489189509160866895042496999184770180920611109272430572359973365576128052199317837691483556744228850224421107133218719735002777196972629478837123808001599699163218187449444088890412117972662003364395964374012030248796509848590371824473990610809522809874821003759090006647232855091268898004249500906861185885935680838026551738678024622004735874609637093796458932942262688096459151354329463005145931546946809974329983877645662177621884259646488597486279596755863690203045764437593018501617492101617970863498821536625495722377200333880945135731557459411541013677379466274976671874970811708279332452802939855055996523455603467370978359417920485212048400220745111342874695525953819204037996708120067052510827583619850539431506969320280682654466362645914168944271740000741062612063700716195388576110378476251527930157545296775060628989446616678991248930278208130437427643627245870801097537911719002105287636538581148832457451841341662999841760125349451151623431230194498957085701963564619555853338482464499826447485999059894263065345160694516024164394047395460600153995438751894531960744973638651014777546972280495134148500776616112678238745509409560917326186577272265880924678328285562271383169106796190318417499210784767565159468515429365360194216902966025711865323146064896259319741815280396710012186550475203266428681986656717883260631669576255770905000851113957836534200798152243829352047847936803922984239193142666078428091799301308551544020966667813229395058152709954331370371021042976576036164368682841809038095106059448917180428590773518579213095181949365417951840574567092984677595971877875630350966197568148890880444806519005929766687175648791167379753228375057586087535609620313462141535780162999781719383775294917783510609344953756738827964241717395856027208477090271043116334615182126966814676534293274246543691681221701545138265657556612850321312660348915411415012032722364920774072891262292580120654659143222925252606175475038299367413317956449684229657339807146972411971938897443345356728367430651467261526163801804487461298798213438914276534405158002772984432245286107644799111743970825218788163971168240342587848135940196961399042224023477842491003397931579810890480037213950310408910839621944079140250966215915770329163457232370690388719135340464711766768215435737909148386411205283640087277415593873285516430967846707300351866584585590253051141498440346807699735829037163409130139101073035903001336138257300756842560083757962759343347140983084106801672280353571717934186904240295466190528985511356316379579554364764137953565630154771915581796479375813424753253921356722478114504283455199177688674419171748168676983792436418191959404110768266114223291105416392793502736026905631898811196103136334920823789430861014796153187314669260879233708234326775419103089643004035277645104734373516608050907354710071866866665037441077090204500574976974662203558626366592312188409796497534777771931863179211060611244611836672704490340372918509668580458324578482655028071112690884617334557127904259697839549661921399174985162053446471750167634578308917744124036967066496211851310895235269695962929777516932431733058876586451069599818931213960057259526304485246171796682352289568367436548428405036096222830043144632056603604245812592389438076878299802512437166484593694539550249931172782095182508594710711530799319073713298955750659194930368355765702321284385447109813111806113897973665476652839848444186914243327808473933819715574214523230310244399471848986453428160734698141316580956420412400442525116209055240691188468078820020350327555686249381456443176022482835009015727301418549009580861230778479798823758857161138950191152544324148693775173683209460746572600912473903686578390684400722187976553689214735474275784382709053970963014496221044637867514455018122624622141564257045237551480269135652596072772248343925839145095243371906338561665782276349569975292999828143635730842344383554730793427905322931999540617210494620758512344651553346336173469135017134163138098539834709537773574937565028826198245947152829938060812898776943532165988001697205418059458293351937363768170268447664671773327079697724075484405322402267449615509818459105739005541434652253944587485902167997855685429386485576876767349046445786788996915584321689840505290055194443808500001206707351034676091374240545964337871654735420279615308814468547069267096805356547547662144167091601410589752727894206627415436023056585290086875125710717912904966429854194780193928730051504395555404385820356502281169573112695167275087716335023462019529806348474335028982048543408757537321214176424846493871941294362155697649354067735600456515589444132712845641849910503367451300649488430800116646379094832512321044584991866748630319655078184944702661337918376044876435514390043716318181953243253700692043295616042886115104350191269277878245110933846372313858435587531163105977939764400614400099340994474935255225578142877067313481452083803033152215713377495390061629234676635053588354888915639606646375516323885481797671647155207454604393870302103981631429415229482707175603577494564654758002497050435144268438661005711622106250039814444750929424022390830901878802882894917985091684802832767070139413421972368371810388684014860440618122997905766858712477113451340477835008225425473135363165276760639694659863799507772909841399963443168676183950419328708319286216206918094117702096275671088070017877142044897776491986212484169236499758327090477949078307445728915588311092304111182034564003903730390321470165674979769649537997052833818581917512073055184311824722700234213175042411487284049159698771843012913518051901770636209447778822304715283931244327437874456853601579411210192235019996676677576050722782064638454357124308898101393538369288951371880831302591016807003267032580074077960462370118042962151209575523552680145944700615999615732125846854897908498058949368933325257775044506023051105269635491085493842868939800740359352742316832207356977576168102553656180459410606478661790488122246478312031404454646926246633125453199669568273277581765124503571298830930907409522621016680755885945721321018462485616423892719471752250338383006679446003296857907480575543891512608188140612599973333590804223000088891443703445652567288259759274131691830744591506832115849753239256652686233045040605387055891578626356049199667768729309058974530585960364543432901998723479147878832120520385467563667328705682802169904875400189947842738993791806962347040939743139387609767018241654486005821361098851734591605203172589162095132490748822952887758714689623115790917836884771328468696156723985767654601960455420010504545790326809003575307539455598992653550700933203198429214179496128275478390030098995900428311428771779305177213035160846965899933864220758217953291008304794278531901831382565693679327730228063937953841608162289322808664961392764302812094049660791540430037398163129447810276820758229778819172861296282478359609949257800533082770344474745406729659141177285062544362116495317210531974718406804618823259975711472560672176326376849998044012796622620192931855080061764785903730091622890239433845385106499790043490218615097298766252619429943161695474653688439308126197149097098394882628480240305912705117894708891139892122952876196015253155338950659181216162691599326365133877612855360830534475701111971524506780698003312006832282234179341688450658017423152147436944615250785097075359522867398295651480303245242441244840879642058710764618462509978783586634109997648276451433387225595282474073595257097722934564261559303258893749257951544068927051135922670356933374999996779662849769499333015613238844339434749998163509278240103243437128547674549608486465623444292557736911645459672951135959411693282476841186907573356274552073054493251279436065713012508852702286022341142471927992790974971304415033192534560005325284489562092043521237295008686959111939316318483348826320894449884183127421158947169580051120641440433182677290060858536637120710084950757270694814248151051513314035259523526348838846044092877347405693141233714339865662078056247725927617147934874505396974946232030549675809299118501307091180778530729688194052085629460244639138967398208673898664716702383154458720669985789081341976101280488078759000204953679859662137639853658232091146272892613990111999756408953505321039049830022018883776681274875828139367643392644290621138240978333499179063265995777337801048829486561041919075027772892104034805045902416631128180668820020378989351960058752970237413583215472345167219450445608669970826322774073537003477995888023433485941100441233736447642102464363750881563295402465551320012430340193776337193285665139258763922519588868349361408174707713952901760556134282212239984407321298675899249961240046215232682814197582777696908659375510822796788871148003848202631357474813776599390479638504350591577544235973815588664074807152412662196419460436397908522323573159237602271059600678219920324001366210455172736880294671613573770660995113177760024088320553301503685664850331299878671018373949533156974432266753977467979959287453569523859156193483883110358291795290741063847475927066083600724893159329448425057369868011534108922495501910840024938255897755349067028587996000354262998207256246715113450210165372885776976978919589676925418853350838955556121630685763568485257109378371467644160241901132676161458801965451760255866968870708221445842327466359326766539510543705420949335118877463805596909425779914053829930397257042826311167953717462226224194962618254861605608499523356995350303592359122447047217258607989112676477078589552602527172967064461988995215834781377163173506854749627073600216617990049833838410955073956161982321628064740986674520833966523078022506328310287495937039159972924070856754291465599516731243341407230910237002201632297378553859187363900869048421829416164757059914908987672151694241701240883447602602738380860526528987562190436567659827010282469068707563165695924049477331328936651549847106908604243129503548283066786105449327281119965389795862404462460554757412971234798237154040064508651194224171966369921171146189309095755270400930746861311819512186199270300301173173466241159978278316475464361443284270964995901408645647552398487829539504334564369859912264412210646532596470392933213257411032002892210213190818606453517673093128255977402299923240784819386004170433986394570649347778786873696574602816930486980108915228177346197654379715317048748702235475729066686950899447925095786991449385685018897382286185563999870441569931520763971815546740191196359390006507774672367958643449382312379116487090834094661658897974719305807638574459947730611773607661171082711501272818939359891645878017855061660813403043734541582969200556032598570019414839143816428297586994677973396990685421488974374629319944524560030496291119320699305662536640808092075052225456674665135213184330675004620064225326252515197054639647685691248153050744146115765733420805815572545393975258256559063495427400844358117898467502494474204804849765169510135147097289496509533810897693541733097369931297526273019741820475333060122625493648071934210700700126860453689420451660001434046933884237963958262890976805630535211598139736771411074139714602122858425619735266587683556653554202076416201185192675579924200137717766367810022595450701322439138285995214054817276806392130931253621740429898518170557116825895620995135320742752738526338578757426049685265516603608249269621886992141364269093900141478111472524471440185157756339440618220529923198041726888816039796746103158864212897522311589483260911560011232063976114283177839091929843975244925036539238657855038865027993942717181809968353969505190091085399094411776579335908149421401666804331680770868007183767195373433241932276688789319882186011836702984557567405734198550387824811724960923210478119887760085218120212182448964709478323859625937316607349195081943387569312508219966910119529744076404552212469203330954848548019386565867913185148845146808986079504291659479914064709106043665190244371507837736838136765773656552305239945868683443589487984009350957346132534465452915126347712505544359654995984957186416294492586519236931629693497782230094248473250192480298790143088071940313080708629697275293564191390331674386369931865929889110347776837686353227064491455973835653954965676161374447530083125920051644371924589612671271476860075340950373649524438614393526881256221258845830346340287803688033287168806096843912254104647723285618399220930602390915246028591033374902970149286467327513804660276408181656900231458885125570083697057602352871441248743358817528650670858207736633680695593668813380262590179545585035503912211383210175125415950751332799141113594340200224846676489969996325770743673400766668270497649175249808484439360148246009233437947473976501283913483205620286112684193441355908096478652417544538909824603776445300868973643692546196368036245993829132632188771612904135684142210112479998031402880334770986217561820580681326784328742812719599724197243253993227612824833161681035062577954907658762291408267889007904674269639847679601545300819052106940946150692430187197755315039619390896992973474238681915201114867116921993083917410578791778218932843306633991976969954006620812779332420586507131547277419491182999107314204830834844909386872146977308165972628247921032845167833691964863852747887493918456328265820263905118137344244365471720666374394799333624077845177036015149406145420885042369880969061074317679846729796496569207254235028454721964030236845970944918967878460669856157195244954066421402382549224378978586086292395635767011816081707222403356611580882080146072868698500378209781242497621239803288239688427939335224305226245996198525169179214192535487754948779748000576331958133147988352031541576551517050493253926523234987035994942967467013881665281392882462654584729183894446534601249996703728877246431724099066397417761166820997207563404457765713959231536752730443478252126725853394867597912567992525587026651791129404811450060716918078386856495748646883060794034926736735370856401170775515788456517685871211802831959587710886451045769297101050882361990235967816215632126534580457722563698559744118816539232416672953475873378669820479928773333544502175414453607992815006013279065577480699015084714856355548978405057966323017680615785138849843683720176265312644962780839876046597162460490744043231471880915189101638088881279412568078402300985145058528125521858474406168701744255740548231296773690887849898508558443300990263505529767172508280221604074448082916141215674467579195920713901681312513261652984651947482081451804327502050623566773916178426450174239082635688869182528078331496034994166844857587363465196784123141339348659924653668431391810699327132694021767600569603825595915076530770481250215657004791580582120056180593991512198671586247616060351731956782092952501860644601293565329233347810549541018763921595629142942504497778577259440922771771242675297809834241159550024885474190574081847985706147652147954909535820508958734175191781793379941158623453169560379465111968608794102739469641566101534142841850799950712842972186110526010909644782540304859932463578788384393127053124186648415980007977645777939850628622845210113291986164866751817264707619973819531473926559452371687590783027244838570115914738564142675543932662267701713952878057914554502629650833971375348391942276952577873252046399772752158239181331476207284780763375366951283476144644524659717930069253369975125292270442109920380222838952656217805428110994517245102289732337896833558427150385724900805645937215489134052296289243043174326413353889987168021280620371708606126359680549095528845053847570647294189529613206856666411767687553606345793078111702875278993015344694380487052247780737040124456745984517830042054972540839028179112410758385546456371711951658204824030495171209008543991639872109514067521053479432415536623548942330272526367185588608737997015614279914031467572571983568802600443411669514171872146913104864148918673718802365721348728423264963019974557946030870259834200762228195785268415065414964568984124466359837475227044304639948283300263104526449150759291482147202200334626340156001598727435561686987837461192433924822560396184379479721060183494489748695576365002541903678972914271854313487706839940854378429349373596195071417768292423589381530002451987716490553824058370525017939929262913305193349389148876603318709519995230591257899472171077265827595158336863712627420166169448471153211272481121458144331855102323425789707589060132978981969665455218633966477507971958524522000818071490013432168115982479475124399331651278819018574998002015846530381125913632572079030718232733904391376949603074728550689971751131257948208411590204443588881700771393189523962222963733633867325427356856946463107496341196998307097120823264513432686053604403287550977243259052974788934998339812400172717563894927158791304237187609856641306838249509351412993815555669249931483475909833049555057400524683691397237147273701523985560778242453041526292224788246428961248366040608369156169185204265777205809370091643202617738385338763730535150435838512835466986177827571559150167619632460449500698341657070379351060121327367387933436132571884291160374637780795005065164775703740519765748432133746618576594799492668275057052450240673086965204579560482892378159522777111660752206626249607877870558320979878501700253395362429966834185158057971299206235001159013820217795892652444865328497180084103039848090625144530103551868941371612436169268670786008629710406531914439963252582155906977464213088050477943512489112443235143853692085313713874578219005942521491903917450673170873408638508367822924347442415808355036049435353625921916716535806209773124033609779490410871200534884019154979930168369324819196964340617314625139923109131312914250783522748807333976017634447122593767409862027888534499228353495194438303474385365397114975394881485424060229778376181246229361010275173754982885380830059288874030585080043561854905585752510978324201120220937949153899571626288775451351573299321673844054939079914635186971676729507902115009560913327894672717005788038370644362394288638287093318920209523307960932419555726585852257580751191723365407548518410469432784448432398705557570854965199995765644694687313427225606087786894775784635246118968431513397911738253998004001517432077342160966462523041045808301739256483320288813410886051381393092317330259649399017020690959012537619700977816433349933818997245362883721110193438120598759590082458008797500372432354715528465014593977153276272514793789779356206799873205056962877302829139296059179782802711106566201619188548442046791071512966603571626783231034828373936546938678828113282418239894114148705676206721934663084807569494019144699910502089359077423780819866727346621240225047122047683158778122408704247818267482209426490917947611680559067533478834063504118170646201742975331946944520825583017842761039043063347009363402421697229247620281553611396799321235396139181589783246359186119248341879644954839966557162083687655673035396347617605466567331289148849838943019097367272935564425793379409709926153050831411893384054874978603802275476071413316669499094043004756847909995196058745229343788926192821174552594962177403295132973687104547619639636126901636956888215747817562405769641826951809998113566832025021941932316698752923237131249949566183405191876205542368634395349363472158086290807754229158683389294385689682391830783991050447901832435103803029085058516900028070835424989392854307271190686864124142366437580381498458592692772028174872789906828079945813366591615698573471986588489595378945249798642106041151987666898716340367620825991538174999972132606500129550879864574715531034132029055650731748416465795497681064715281974239396379668961879126135986950516958795199947616362535182136044232911485703590694189984143603284167066241839618544987710442427705922569762985363572136861049193398332219580088039107339924973321342665867471348124688486057081751104693799679974550074646083689362056832770602840336623667524423561300721111329779155585534419537939370004277561658960938223176256979679788000518563009701555075741806920637824313701509461311867390856378000110784945604035464851823119459885139799035649488066491644199145908122193516973017559693970688875302011864113159691047197578210244935973829466103741609124718380669089206891429296678349944592855970336519954927126713813513767179143349379667980215850310547606025016447703228603741659002914598199512329909601223269470652731330990003991724156654965999046019792970104935060876123539890872419534998176637256227873329595579084570468963673220489138384072138443566029675849210805650321877094161928210118493054216592774618259063814579804763734754040278943038128101925563557017874728395232780272716409399089543249035895198605959031482814809250453535112042347757057694974193420494120111955268783192097389704595609174878073785494192707064470944843143250915806794974952286384521913308742119811234946706171271492032974983907926906281992759184497615852720017130942360718040360513592230896820822490836758101950109658298748219834044749546059730872812581890334395720293235350039833075787898613715311505201221856547998664266186291892322448914745384599249037405338011263139975871930217888903725475735615699638703792659205372148829451097863215798624470699865556991445622266122410405772318775488421180516418284308237361060956505923612008699774024853507218117455682276390857594441525137013820803519605430126781352842907929594698850665947222224680232067506825555602318693461905471092867854691665208153819109264722230204374028062725685539095948438450635534843929899854241513114532125831712526855723036551320786960538770514620550993800971022849574406888849541206618202326863258529735376706767458185921919154386725871147552488626192150052871807398580735449179954739472031789719056719996732705259680853379906276147452549944252866619930954346310722152252221399516593600945792192856951892052210831428453943186285499493641452161285320991186004020145114500047318644970747452328630176941299812500957668402814349868359992113517407274174854174855166507846034628138070814004462962061426359080970815312462126092427649630292047385523256435187578639887454517452361519611117828330602853577968212155830973946297517710850510947814906330563275396943966314863540515629318212803587217777368065622978190498269569109244096670882558546130492237885344147926599653321801729563140240095784592998251431098011890707889846564145620884636275236115798854417403607935868302442908966352738431932472912104816474879700629302852071254648223702813533163042104402955735748725663243697558915309025630694119226249164593521397575579275816767692162391300279611412548177535069616473479564996913077853944159803250466863841287233693549481067420416931026437110730764175811041978768602534206491116908736397451131347892434814208571921461366891677882088289476711406818037515844223313584357379701043909509238784456576198142739458917214255976399140842085987119992277736586407401190834732866689205895534362689117131507760529466451350828049459242373251427065162816759082798242772826684666575263147590987882153710992751098318693643035704875706147663930654913312784879270964703022463269537873345921207395509894207125712083169348844419667571010979805470671438332713740673847603485305705850470640648205565731266878027228039644144353914877214450708035632767866322277957026556458864527968392009571043174656732865011408747364841307864352065300060905213845379515559561507846960997574827645618909406140108389877985635781064039605581267433378576607031421738129122846454453061758790339343710506968117546627976728881172619666381958049555261128749419201125244353517164332432801299427023762967977335895109773056328465848429792654109799819267054840325430970105325026268633943080982799861423629637067565012254959721633767301110300204971854177209516298463401777639722613089977406127331437644361643828338574058687311268502034833361480832633751904477196963578423335999934768212428476115193788579399863176120116228392170137396098860118421721617048655999437763106677581226266967582487512783219711483088198064313903222198986417116946681507856621333375556425887686460393659037098625666833120924025889993327673072744783989700880250462552914840582824844282946856827584935628335057923791094665071677977772369289801201047213349475702333689219803771111441468651476043184143775654668019968725722884670693916637786941004342429935684063336751592795498321452451177837036744442652496959090826656609614805045215200440671630756764183468790715616621011578734725834437085202174647722101844222805881108540988024224764169929535884000500474933859850154311285465855957699839250655040747650466913531133346346749824275337559839820644151748793599756521323291682704955519610330165140745268106680638665924924482362450893279040430668425603484310499305434609905647307739325567424051417971468231960206116818247360367768021741919274489773205462893382369144629698074167858572615910010931436096503349381463562897240533070769044613098929484699320167959946660112888713481738283404719471127000320778676746788605770073357020842846625581963417467630534373050067516519300507618794911999920514839757178805792532605089306162088552190466983322963305806412982399136561882149089841666982689964544955292269359848080149857885474601945365967497675757221027561856580007157613172747963428681270151878597184738256696414018094500190316681420057954856164228120121383782261845671372380146577921174842060458688262837630693387416368049360086365484567625107407245525931280532298405686558016081788447155162278499863798517108864530925076405826013357014539153998783663437869871491087206424849196456263393445828785292454789723663242699295242680711640711723855818395479921059359988716602386100644886902954986270713748459248991374346017825543736293451115400577140194702381759832959934607140429487626117800458945278184823263502200900238771714411166445458295612923567337970413722052346043143357322486444824809810114506655239871347338464055271777860475642366727615014495640829995275187691464985837980479333832454188602236252426248812268557472958317603712305246498485501972356128550893300638688429885704722655089808786792188024376941625983401883043904556167922448459435659459314923923137051782775492682319385457200904352107788590467383252376034202560343999364503753275295430719321379571393659687332009120566930443053985096201304444405236515748368499403005079303250149718836697827245808655529308764733608549341523866256543927764081277634694372827219325900097895566023984356056106926137471449716019498793725068016744060689793057949664323578609533206417635227058932610060943992938009901016513581168145891626720873313382389641326006391558612387666455980135173909071357392706992349043386796234326571654905395645726126475123691205342867159470626475788059921543586648410131737961166163456226113779813111032771986166161514675622390063387434291462752896229215237770425575116620711946995314969857547582538326312186055282949487013569997561034037796287403905470799347049685457050253178587483009140852365529418861106656863536274300765178913049270217431130878708240979492152146158961683511901033384493420572984836542489416635147904984730042851930248356664012247950304356226310887889263866766116751794284099063444285794398511090451171307987273196159432438776329180003336782594928513365241909808882382798533867918908149527157565326140605046459250856309079241525283953434462260155672309356087912997428100079648250060291030289343866282193144861367403338177789084991807321086424596865544117606981065238822342700320403934537169954009785723625012861604942907752314936148085173444286057967504241606037536968299431265583975146578544809624248929177658169530594873708547907253190261068575203144816733091428456794755572312139578450701590423760834667935438467152653656536284764998007966073502247256700827391475689727893454970692055611776870355631134295349495686837109183164684941378549975113638766037721302379169764194899993478405159032205895575363546198612381694778494598484545954589870560990209918568872043410920300421582603883814084361700301651651604741820896392279452677385107407721328765988740866646615680710971229217497958219331457329073723840978806709184277974135920806609931229908643233507994480300859272273614242217272307536157747129526739999977832092822014822376770055124661520340753286345671765462995781493015274173397419160964426502928173473524185183699552653634055570044457340314493577396023598599486413798257877299178325876505719543050175381426892007792289758506419133490044161906734456584084820363271780154582837533719299638512300753599408864116527679434975902116341116268105252145334908919780434448322448204580333440249506543142826472841470453674527808806127098521947935467687767980509461192100877627025828034436294158529678177921436413851733999762417673936874795791876539684379035233322449682659212384965546495305625750355586407932907186231126091508198276864685530537553300553475665828554131047889472638070187287082035845537628007760968966723630965325684315616712036830588643920005158650166858492788327240458496758741767453606974665156332405619482061171296136499271318183810487945284572078085687052222078131847984257233447372207672341955433640073977260199183115919135912872283251492842761326538955562659025501534904475594209107078934836369046157861644570175824633859204868860300104751337551529723906563292421549013817970661586241398385843954462109841586017249506427180234619183807397351777322819088723933611469112959125403949259896930731645686658483319879958789218433056605685763916080559975575913265637485800292348744278480049549920578039930388354786188816391547817829536032144007641744333001873415827677548501887709360800214828924022950319059936976634824653979421709080179138832450802807413920260849586734835974335986519171486585205174965959458410195756441042201157204191711372183362567195634910794076941915309749892207971942590279323795692536966591927143759476142138334600379392012023670324608423932507743677518384027857155234363495557407954875272949965011578107078034888874483749979570558017119304445095542080515161152319062380513275119053738606632604387500393832659478666740625591631491525357435053316227155196779623614065826824160855889563860328969047738031676464832180514564255055678494291417706655186594848226537105033608820008287490517579551297768167132708031189531853359196709477597803730982920738380566383462717601584016671009699387449665706710040183858277453991528706903583836473901815595994957667979442139312872760419260914200138077213200393292954815501232596247305475572739787440781924852596671550335437969857654286353794311374372020867761224827715445516622117913278854836551506361353606753639120645177495784864362114175572411666218533560979016495351954817242082930463633035083939718758919669843350463086311859932159775974843783329785440401415628848020123598217974069376207898193549665903573812498441228954915084894732447638218010690727820657717353173348749445874547000069865677694868198953409692343169152119626671316533573365656575937717621315431334174231182865534507754905022763373776253856864229389730654296150207297191641256615537412775331632001710952451809681657349274987671824789313705725262326113572754951221921980768211166501725316014115601415025042123314752823090779120527425094205130345353265264833028464942420577150991535932872158115686879974260935976326192509701440115886752805130558302233947202802513822693570003483740005973839565461492420676598947537881822806284433914635232573358586428734728960045178401044837625612537611880100680300339985175619030520637319946636734379395734536077844794931258281567515483501533686371241179084597968180183410469029672768108745852796262545834580219236165712834147767947155332233182338191177256216233099470639092566986186943817029363938254603920047952720133021273532002597686978174589900448559024438306840623323722592732241808782975182187005218013490874704846015024605545016887395592697214372174345040132965296706402492131598101767299278879151076551781761567626872030035610086149106966707669431193402522008948318988737531678265961129658314401934375228984270776849584074498398297563672931066129756791982855291084555969746803988614707840831890293084129382548137013247912238178572298996109325479110516833077554534092854992665198221865412191664571651681682142337245189560933177338076238602197392904390101150102171319590151892033440233060323070667053263871898481177926347497423093488930294295140420593744565338563226210323038088347061191725463825719408677359056046877142762592197464917567733976574791194546819833106238902660816861236380596141816652473809237883210200191477563076586574424202712044351399938538500834926622886253874064398154046729166314182047970835649593403950435707997749506081649561053415194447872052377940029518356758678223511669931012138245787024679232279138303165676813742816469575478803266765001983181519007908522293314209491711094852280642608265623731367931241716574847514902499696864949596278031404838448621020519096893653501464620341321323379277806113397123574670905884106901805484485991875555873889048004288418945676736274892883489334401982554890350434073736159516419347379169781966545383551256205438293393356620039401546631188326900849925437775529717593836754802779957053369648965283269793116548818292972468590974772876083871409109321577659017572170893397398318060513033191713609939051893893362860447811324239516645282233751477770636189160622829339267187696773803038026035703200982230793732689028529008069961902204445198243747801892099705648844072461423031468784545305859275593363797419739627354449469704331755303933275485971137291153592026297397257859679386841942890798250052600211812047385925092715549809654123930754838212399979200201945806592035391390300384086923434317283177201498530891646967649965532540718445067952190354647780496616952128273258426807362553501694199268050594872967176705700723888164571165352901605528655561796644157838160473923092419038899945550992863134120492328080472702106541932490588528838015582637836302032344691233508825704886844712169966249266742557872623298923523755027668425275107799732591181707875587282152352152555052693578071490382684251176942340929422020646752052311403739085524265206376246801581082598133257865791577558841110461305576575367680971903720508537794486964043871227920353832455223071035224497752732948285953693147028141807113291696223798792747380489551123781635983861042012325712352208512623311989113144650027110830630552668681120388023884744714315643072162291304485530081838636229366314332095856798327967855337994604282028026223416933437445437281194546008876677842784825776489304962437207516680364615302576868712463958950836314406737076422510089314409502222646378708256373894766688333404662323112891739106296896437433435881141128699379886863626954189021427822847339594882503814056541586879566044051602001982451463457866813793256184126895393387891020437697311003765779214114991532157740147894692570714058485818697386567956618930050164534114304324718012244529204588246552732863807962945665494934362594846825155808687624040781978456293619561466953098496425053735351115932073956855139940051133703636824494910120619558573040946284422356530885089318073715424492664367668449716253959233700656669595873191724694741567699128653744381826783937890476850932485481058574928187998670508531160480529979770368092693913335962963302800305150285891305173461944156301181605382493512225536363418802839743829844883156217284103592777742338451214786140167530058731486545534729718663103150217282676606487651580580638448390765328135698130444168012656384050274147071240331656964366480881023657854803309359064241625584179368385948494916522316987164518313899623247121779802141324566069670476842785110921254969641713898577370838721257562165073548952837917150223050168456196600150617443918686684835994192595691172517583224658388459160666403384771993325073081796929501171426261666457841336231247818816843587496232925132467284444983751849438881707518538910115439284232648321682976913338360293744664080492975091076418258054104903484247378644413980396314117578278811862787028905268368648937020387615728597753992195861722755342917328265540341915517727801613847079405089941006834720343640968471168823128199058429662689286773034611221958416836199486472952212319065332572443385412717402659058769005897133356705900289583333362554811298655688369350059781468347838879167800814598832179713441864569757832180832764175599929463547840761097447908710180088779980688328275334013102051180998259315247776061591428670335142641935862089894938647777684540144494948288805580716689633047008666603793063430225669400549982882943856968974001727285226276690328576443515930281072175073073420921023667810624809261266795885444314007710641736739030943802639111670342193615760383702531159047995581419947075077674734703434833780504885587658160934452972920224102150638157453682546670364158692460186280666731061937224547164252911325484045853621500779895746242517419844127985549866156780597808448170113422958100817753823659962336164177099745146796055550772426911351552705336208110573691764907234032695926473038647021678169980981034248804640114967940528917004351331920723390244311291275613291157827215541190530600653734459453848508903627749880990654996016499346196909116224194697563050850882412041969684697874830082687613998983262910089598199493765283601551967543548650957750985235553269585387695042564088463518605621315245923737074246044342349509019244061711268860880787670848656965720877357273360578977621649971513210822590785420137505685110356429410262631722273490043689763986605255644992518371992541782767995202945639889189154005817316620403085616062876521580395404027265163004434677828392398657739968671155542151311875616304337109404970963391891497005219717283079973073031271970581487443849294324162329709065041723558754335790969439930346508090971612864150746574345953269831341782642166699023647055316857052714741481595446476977268927320712325343491619776947476122656353314768899749625887020336793320248290166527906409822079342541986762366825402641410089876279187904088183368878941882951107578136988781889385134575014449004796550584521486442376044415655644395037867885732805615074012173576334099521342529988046859501947674276366454320643753379148763762065045333751269473327032927912896471229134306252866009463323052306732425258823407404060124716886603888730854192027647005066657269061187471516417752233233052982034419626570820819408073516613983035134330881671697040888847009312285413228520094914140785503336983915735316788312529451734880355880517275635682941289242760516582880576038400418239379068348250894131705233946186398425559530758573222273774414409580316386348383981267133652121438325449861188935287272847314162460154358834135804360943300258734776305874915961133936005388959148987176570748501879340064904806388528032708159567447557392896588518151704565894567194237077729310751882337586950364734794543818816445727364753615441366533054200119128572825132897715270572967650456908197541847363913327913438997072949983702119323743685933896788596809184818952741772664488656173199432711288192655762637216128775876294956739662562855543061725486813090814113200933874108692127411844682123750390171806459281035104382727424452458050040016537172525623340123649619978418057403202194311617925904334390612298135548956830657039687629425080729206749826132526046708226067956560903692549330879163979392139373514083705878067186681849635264781573622890994680334968263479663873014115921508122368312346687747699722006697338210109004236847571989995123734800024484142316836435414478240144717453704023934100917534109369528256720806558974752826189788595153045368573392222633636754387411862712541189595968643678280925381120192104281415503602629857800079135218207580935851642239282160102180350046784330369362520462374190209703454341412251139660389538359983304829157905131073847682198995315888887384126636695250799321497255200143620532455260938891896411540007509205389485776783568553150107218281836460185887444390630370191015445731612239820748535104928872857340515704801814786718802482004644189367424682896158417563203162603245412257236487945841887391801993299760663916440179950126146614755313912361683045305555806400614023634804385684714799908294204737277285703767678153589833736201397911552777878669779809834258800035397459699542578381978807941164661971951892344787284521599012019148467353212149198689325121153603350446449249039355309619243306191594265726558905707154435162559915955725867187825140929852141410579961094081563510601916360211912267705725022570989118960781304089587056371033625285730953989160688883397138043633397695234195643761075388962723185760602887184685945709315197181362629660236325061985129893257459574060387441176517516164006830600863248234744946091415772756527596097576582322242941094895728377025978533863714701217752765553535056771349083353681247572050257827839331925545343346336896751428111170720096002078687531738350492998588221078736515817098454708600334855179528802737362368467282550874037227216911867851570086175702476190946416031638549099086103974083669634891927939192565304392303315303974413035011009017595331385200313582605591350784942205738686732930918320482813548438897142257282224581795435963235075934119114356223404709260706428915201909541161032518627710471931984244914823862997219735791783425855858125389700969454726151185816700834975598968607517538477224759716438458735636084767520462675921630127603793105420797532554618034375372687440930752870403748307775070702861622305764020356031315218325773895974141691157732185318354320335173624367665314608292489098759512795734179493600072154243641931111681829470969086700994323624292749798785572411806529389653003042828358359652295501879228033448630865456057715988845004779468774134152923192168423135766487474399224228868233500781489848066806792993091577348066550376468228322142222055293394589006004203534778599573978915510492213933285824747705330750461685716362331382944685277931877678858662173438056365881949761683089341167238364333474663945771716676004309851688323134446601959671815348550010869690995014331869251226486988610647210250866257772457164297756097486990407820593995237399166419860050415719918459337816484809452036774370477159402936139209451859070190931985709534220835426442589799834183380783191733693645561811372444866952422068581379794809662630466595687435239811164167846331129080148206707476548121855521392670331389135598824256497441007427083514258047129687464338409126223819640901844805587285444297454772582177618086123452793291688483880123501379562756242074879120763154560036876599022053800039285234220335577222422747644859077379683199740873927845142628967629284535959500430789455612790558160715793473916503566619267437789464702730877335466149107603190287903322934834060001327486028883674887252884302130580023270864182637235742463840802077861701580910090713760045028441559999854019068540011027236074775924253397172590087084925356534141098609917300835071461895452174408370285399243556223390373632995492671095344164355715505050165023163564979586189257582714407394203921826199370545878508622144879304959463563900067170296718254314954220839993508483563371390183359921539736887742247735723961051516242430813775011944142503638835310407491048446775261890278655238084181657335386465979640377872706901168910473786107039331315889186388002303815756854731164729924076325922838518163956574447027908717778168684241845493343855718131903596603308821876051212447448211867310977146032813782772118737136180808975972805716095238672186567493219570771979099480509414014764413390847113912441324806594503452180921074448140161799091590755312168164552921988444297432039151825037232065281190613731996371653538771597760748260378965267572814689558402027073404762981549611361179854539138244120612300633599460850058903801930294779961212646234167723966124865916603717563489946640409269741095631914284104836983868823061845436427235318519891394441456079759984729902702132485781475989852110776243435979592544761006094320390801196978617634376139767049536963511162680665457572038323834828875825134227503688417441865966880746044758310325145097533619999050582257004561642845406064542991372143956160193784530875953874441093109214775882164948899746959226625733662124156118316296952559564380022990698982798222513101362692440513082080351112304069993739632332670689250578149802463474801665680041944008292424744291957838922654232010802605480495033199761929035798072041827303761101598494775300077929446531703016360315012630688366354175370796714948579253459767013060425089158977449075242660200864090753370178964712955382403416672143224195163129478149076451837243940243526584825327586594252146185757530264660711236911505506083191749260754318307618539702003946441311771543046151360184966556976351179716683232772000453057659290500195866252898704721428687800248131486160593839750929066238554276198325123546332312241566529282928937361927669712002986167187197096492278629952555275577070442073670373942873049927666564581831885839988753914822347553562206561037787179131813541176777873464362644835079918419214906564967495009670436812368870809336792328219967675898208755557552957165548771683748087095929498669722196015635868049972706047768657044580350660395006937312333410828456699729886113710614313887330533664011761762405836030696111826509480061389423891311607882704848050479132130479849715166051775418625604762555104639463901739320265845453954184362638987228259826477747976734864549668939723777981812124026411137067536438162453596055602999253885201916142244710656712447336924514982348906047697565730945639000446115053750403797383390255412201929097507114741988511947793396439560474708830302277673977210302409234015490508749415907998515319262453968574438743900626047534878084007066121560636302529353307213722423502829345178748413409695501945259283579349480280929200061131826731223067749999214780254978391308571988650473838290001381076837618952311062803679361025307757377546566425748395845364379221167737744240634738090557450139430763236811533469506959008005543766967181586258759972740505511968904616331381533259531763274223412933401641420018900690405339669852228664314241462825661943260227981138985179943751841164759438359304489983213041978435040056450099993382529567904062763197066050108017860267281700874996637823176832440171483225095953496578889298828688103278942439551689260719047675868000600162811528259790159284097101978596895487755754135596310246688841870233809569369080163934695868208441175662535389145162036500212748844893633593365435176588727424278344716030621923225196141068910756583937465735271334994258323723930347191791117237318905959222874380406147567976576613944258941913610578610663956801349814709637667179366322542042670526908220481354741599469489853850654341192699336174452971182605327049438462179766272366443662866088285307113746289119447281395270455604816381457099715186438544810757145914882901678851059237785592121646414519444650145585587725661859056184708825732724739617065166786271577592941382828449123334797905117709120321200498068420558700876070729651644928870924825961604005475712680154649759905053269662627201356172622752778769943827220403629935363187709056102138691612951753458262873531043887633358362697540527360822711818809479600080605478309729654673936534339191199964402864466457739380188080509517143835765351341339834237175162944215842168060134076993743154837312165488311788196261197375012700994662519373402007140085272102395670479357476979543882418061862929497561708903792484777396712050739701092442760814321745301334817996206376934215897768891041971015698235306309328857821605003851524727369333857888999952376853056111227350985175332013514834870864555647437267255995836114238417514340612305367379437804011478843240555466181757984110085420817462683401484874112064083876736555561857073992347602871238216737808075701152151141442367484770522193607778712702258923787631448970937678826787066705085705746176720680365636025003349753032869278004084245097302593069674272639657935747797273623447429917201482939006092904852378848694411524084320668050030620476535953318596130118314657423533771536026176234541500439913766623168889359685321474149674033486394264427521411040331030414551284079012609240796782024222089705674960589010525231567939017975365081641921269702093392090397174957374869991424952322607542959346870836421627613246274274693703782857611514173896518169113397576718827411315639252564722833605627688761783981107676834855488892963843123368181379806128455820753033848414666520595733924686169177979881495058656423796506649095454847792376812830762738015824038298264049553229368491815854601397066530369329891640320047006010159763914691290595421264349124558189147721250188591028055075079501897842621165096575521906014210929905919323071006909122359239501417133488625294471803570388949720385062659555211263806671739231878628257379808956638883338797091892880739480781569096076527332994184786035702179447196341478745860677053380557836962007070323143290534058750253202626081345126448776189719269119857490576359846861790142699632400050542334622686380621940464939478198560617007153586086500628382800343990612407724180271908911733905776154447424474068757184428926404118494331580981095726817296827721043850757536176521093757751624032952233487499907309846579485253963189481433745588604566069245243328578657451746071997795453742360608701906483834129415935235453170983425355037909680497361970617862431563299214341286522614316766627303759736871761233642583462835868799643690758164067619927875599065501526132726339100338632695247356212021535276304108185814179207328253463107086764687715249229240958256112605578164130611558000524593706661461348791800297157774607230507468768375473527341263423222502172898238193569046004640078974913195564987290362993871020574862059116083887234733329620311445633328007978333755218366527665749019910412923874733128757412239654791984200306818767557211346617221640685182733861285963160760764411865063162342749765086574196572027558263640200770343943135740456968086004510353105890689834407130374428911651714748104880340971576305339704593840910971927399472955713939682003579006471915413388178881522665530584766565195684382297169245153426358710714522082376223394431459911763817981729441345840493658916153053680148875798698692883973958474749302431989475186255997552291855257936600437898715522834481410264053966226987141596500591646399173999661766439459320829691534477981457487429087519920031981841857377370867079474074647181967071858106155259093508421765291559482136536712210458499046445811312850654341501367884223878627236486285488121437760866112923818038397972150238348793847071617693717355530277818926219173378216008477712637133653306004398293394018927824282880764992333599495965623119593386033556404199718015789927855028452991312042817309095503623682312182934556039499155113669256450312027347700540426687050670875222892734913089849673047664622552802048470454177057214252139618066317008094854755875592639805849759588556122357979884459095920086182619228095846585454065172485587818838890138193129180864806284101819049011116440644554583324917740844877489768382323998258746035246799962520979723273004854636549628896791638229577844640371403992343081693455259365752736180151714905910478361281314929767270299017160875892638359778533208571239585652374058201688577935408955811948191865401874995232503256128300722620459027104617894478381877247584400126207409204180316407855749490679686296341106458155561986250220405537362599421996014694974314013388808253737745396573364088526022422641781540340262930871301670871996931448046262258763279510597367947241662118147330066798220361471968489422160970774465660337275159892598576980566344677721204576465564026177784955396708191395169008169260061174880701870544477624692434137104262826413625017536278166563658592100761572893842280642472794531198592600418886469461728192944563554035130376146778560325233158357124329751316368746490460979791716985072498005813724344985087343513509473863039296632014888760467406915215517799830069858408102945938613585095730404470780543734901880253790493141247251573648902811689487420234837047918110131268047567139047843756110526621676914078695161334674963036827160772468405756664615254270743183110994804004987483033390304393353371617545634757839117846524172373343524080951530821731071242450933464713495083802632529149491262204972747022225976489926290809597908777478993044152039862179092846912557887449258022907000141792557395018576979626361798948051518662720974328960373567441856931708245966612158060526906954877240003760349582532238859671377465497501860897784562667234082342420606162875603302495055972701489246988386342954988419362793451365157711812808382165117335305285248684036528896501712846415828140176945681976831689359931791858669530556445636857857654970811315933225824934995235209102860080187222243972612258006286759362287350326677011079934469848542178452584703787656180863184396671272152120032496703464612005609411799663332815932896716747948625421292008064065776664838580012456137069596097698261242183757699045333268631008336519663061855982193769961292365062365132998209423895242067467625576228074333491788085383748233951069791199509001975076014176236027508964889603467544615726471734823898855503116915244326726348052783212038746517065001397533861616319568058070844078457927090817022702630633216491285424929294218370453823758361970512940335675003278724458214242665921112394100278398188903623353119798389285378337488716365146167136889836399778231489235933390835102048925246492973984386100520749830842466044199202123599588310396810116567408220148310556299855222174546054468965815619795801981599554614154894651864463232466038546985673131551858253049374860146429371094156617337037083101383182432442552919549667567298990469688446903917527283413720739709109464691375313525979303464903060171301741470706362525201129271799706257511091981292863815579846122303356565636714665440716895411340067922884096912193488392928012892525047078058413093491690941122997185732484167791199086819264918557823757449182079369639294527189686317179020560537085456566302351781138005687596706377585624040468077218032489342297676629990156421641638589677287807350385003119713287947495792357244615185114027408855365023918809187345993522416295482609381777585728758226655534308051206525541329835796449382813192781657092098610918124780223617310951167806584116561141848019186541167394584605948772108860163661226416139986199009164287035425071859474872070810343331624233887117756765881241597192343178965648601328283832961701664612944454860649305579926868346842210066227393318069649830930071801774968080444834026657048806984947260187113322768585954273202529882163253808888883375960845686509998713893468053027808071453427779114958551086231755824647104047935182472199725723186902222567295916779794993292218019559252450421051065217117796719194452561397615534533457961863266829316673632413041876460181998787824739444550364217549541362054849031868042408486541637631097872430688209417197466066446680715266974105533965183414343776024366312381491605768761680667652275866360670382679874224907350756455553898460769920456369422697461214549637467869637126744468420824052885451820265689521734178459768942949585420971373409720171848249653604216563077748260239639485932014670600382747913770941959653086525146724502926126773509029337243924389114859022815575233074661532787123348772785622082601691451684125610028686119366257612317512793336635065067977718974412006535224211292344998486246175088875229445369149140833569407488935340547718100866681121330064019958534793238567114690824193314163662390081474937025863557346465465083581541537701462109816784090428351017362458130423349424149867261181110743661573993225487355627616777507355709034304678687561117664774939769789443334544582916781332892931872629041827443112752707741035683140050729003209793313771192580813518884387036788334259665232263624491213105047184841862712220113003058224562201772906514609673239571232436316813885258612890507395531582159442329390953933934382821425511031495630055155066218089587064650421996097362956931722377436189780513390944643499636149609450029566448016556736026497261705131052825544529408359502041292812935772072854275080283660347509493136426175871311509482176720359952227798010646400861158344467305579458177206734686545810500348005299301678339289690797134990896325804745058778844215342421787606357752412942514584574860650502549939617914173342305813823661029206709769549741389964660720404065155327317724237994268071653546597989785739375265533053831474979051532505841507530880514909137252311076274647895515242671534723724728499596351635487683024082097519114567039983467235473317375217996727407323282430364220112393309146826659152905282540612313232166742118761616237796567250275067550674925245121746560708325003728135143939493397237234505810135569048429625906733773666351250224534906770427970759284897592273090216624961482890280289101104010976759952587243761414782866451877515558492903299941176743231757877300970934355055403298908192107564263965702825162495803610240021189071066216759283164255723103951177199297646987179826042617459887190571000800633294227628313024180250809266939178855346834734476301906873191690713526511915660043523647632428252309394578694466755808133492480697948265865158773194872636952763467634458171148845785092655067796594658506720512972832488626180886461159185309930804310970423238050251485023994992281149761489161718864630570496754289279265186231858050914367347271059071818019053491642820489807069811628715481697943436441378439147713801757420845430110870196570514607812551045716668438092116226160576252089322510050255948789277773977893691938108647366674064149725693713913820528150531596909093650648864474062050993207790004851504130473606142453998303018781136162583232331176348170854434601439229743484143452407674241482865050871970072593947165539470556959064495955502492704234261083805575226347060129170302726899741816179586021713740941126094018794759722160699621139632620875303420692860510576199982999048472286065402150048237823388629410742941554521835989417230171721368269364964587554017682943759702060878612442418442560575922885340556488008626085417017930987351943843798501450418332472356767092494052649832110432584846175658707943429145983108920781771117013871759137753221217948165123896282113069978375778093783205093434226107112205622446436338159628077950210813357574656134676379372892222018601160597043988976120450446166954032844567084064969827555832307266245144789929813724086885746046159823300314828336775277049956026183509465488425534133329268655789459394133673482171199701072825094341642187681980644240131052778500091152702199282253122705683400160901263053706871710557962412382519199772440334603663327165133515279257861361522105583151362404971336866846652966092937273795057307076298545534440342727664894124329019675829480811445621875809379704327516461768963460101272437048210179590163311109756675675886123398520935110146989233893431756366609879823108552826410621165288965041466896077790238398673146167064477114223728020837132983498869996866332041638634981018635862217398133240144000251273986971855995910088363460963412003101938769197062716773350587937532216001384960026227495205777655085493419102856230966420024634712895592297825211421520316584487609259494948700328414572742961936076671830455378041564881460145142729333780149310636532505425104013102962186926844384917621288333020819785077168190143238693119104786722460344778786378713417650389973886281781326408106223748508874283307511491694740541116591978885577989498575718747680310167967183510424522269168688164515793202193797116508081227009359366755570036466433418038038650024963293563888667070760369059301822840238597288682422254783852604465211538072634293090972780872205232232010740086805765240629624892518203457048030316032888588837755156652582296830963927053945033420854035769214557870169635669995129087638268291843121429103939972989492640892421702885970629578700315673910696942629495993668481459090977587823565077509654107422780508569881805874346114796149870568747420060308062785309400560823095399349389414027835220680550557423302594013144030916072763744872435031446455052334839716843880752299679692163219278296116897094895255023486174911131674143068170271891564126232399670208139255413884177018037745214393598727261931959202484401758176958948675194621394901047945637991236400325195200281112809886050775472669892132712056131919235581149622142077065523635795240757156483622679091749970327356545676085525042876689332528369617232066501199814036425126155309639828951029915460988564271303932367016821746151920704624057242091228198469587717275792001085380602446216878168849207841193739826560037801246299125072343789085688717113622491744588618018629859882288721057326758111506457114273435469394451972866973437750531023550469565372313744255390493587443591864876274313344922268416328913255879128920411100231647176189854355597833055578310971427784044409336450437600068639107557523169781857559812860208209605860419233671698116264141974140242969289920928298587393233834198446678124657825229242357881581096015021008068924421873940410145008066949132121610759357112879372853105631768536396803218298576668432092815769239707490531806558948231645150171599715269243913887356238282169182751567541218329716576995591752540793070143574355186306926490372993652079793804971113203147959371114431863432153597955349998802460218450430126643643636619185078527996946680922868787399201355997577484483316411946529106818470376560491535849984177597314986404770054066670236645918415975730608733899082558375832579599937838098183667454605574302633927806180379335795189048790740782851853139124365809524896082951005696386704666947784954249618077909698783114184194871302922922440154363738212467971996823618203948103287197362234772007467848349962805812220340594881926176628599567600438478983692161807948672125482842877028460506383127266798397036577475021536303462802927294286960331251778775102655129761740246031887665588908322536479161350383240143963096572820118886332280962125443567279606943106980443241169003087154509346432175206700239234193522908841472956529855521203569037707494781099580665049703022536864775590124141112353680529093146996378837969339187470038394905681295546475401218899389521573333707389639877312183959371862150714897556014718568991544113934995900046578433040934352996135844499815811798155715131452149778922651885847748336742007072383073415314463939849800865331005427393987482755484508399443325582946402519139374455214198572569120059008730623162772764708867559379904981773844231125206594469660117560759354732579388850495694266220841049321148774513428079158765451253859581545245120383393162965973431801299458999710140217460001538883518476294436905003021067289882265598058878298506652654652893531764011163517344816283740952935155767016492049163881731718883476689646535670800266800986579969159476810348425057488872952375014346225577323633058298391576186383874989717140021276559933300155650553372372792393289008317919630247306715750714842110098073905937863422781455182941825376914441531992505786863778061172491730643321257739185964875344076035034295936359030390810255650383288177155247466887951054672429388410077424057568572891926280768295297126978199357138295957872294213966545268130787250620248319465924227060167219792454486859555645409021898057075281269672044093738040788888961553010844272666317015583981785697176731767296668432461916128067502672590883073465904414171083379030041339918369798739327799279273568282775673903059277742428468849292846576160164416748332322713140730817014092609258341454550444432937659274713399046182638951478425948191509406464478429331662854919617905490411658752283787603486103646220815616087039740600983767251721514993458813383995551784776813465967340728652410911666881440070501130501353234754694915166780461037400358393092196705365832193366009766577895611385148126306523697550342688100429698912717031978732023532460658461876272879254810923699295199173012160790250590894594260327440223165916497907463285409856718378087307612398842531115625852378925602255701602769817538616056652980621691104967447516857016049540014782902995101695289076522605757716267888973926314607454341173062458253182209976531214610145454258038543694486570929812324741774730800711776686406041498150380836284976766048153804014402638184550743846059668048864559593444841192950845290037936584406339985155592355438683334465916825912624841667138743676840909319227378758833259613553039760774562595922284452534392752245428055405359967277691148429367076550159649648035403646182502758086107208190992241979528246083885829083859189787914245934865009545038706096161031835510043665461789332601210461119771972785426152516381008758069806128457561344113596205132026363917885965917773854626278235587186815298171559149283545853130321731200426712952897083315657046224818323526883629424624936541380827671956901377689713059636777481365875343771499792196801596400417067769189513442890917892618115705023891875154961022328314100323888010429770857922392584427671160811106177847710747159522733689669161476568027057315673927236226517747602174067443071802505811131492565384908917478685972034871482151282892855429661534382491244459108385724682672651704938584625565674018257115509544155445515102739134869438046080027951497458301099764680104160143009700623147818415906840260255493458696164761853559430728859863282983834453419085646102821736611113378271203034226888510055834975611057362085168612192075493788137940193703611000249917096573266170489060059739360024753886837818517027866568092800504525237464886235267406265532162840171891701635017624836391894564866955650151953593652444661291972252478402260149487259094435674486824303301671702988287334324428431075949313634626217207370165937158103265764793478953883031485928080924729248580729500770966403640949135974405299781036367170737856678125145197223256888746001682364631580714495745907160953201783684257835830884053801519179438378691695565934090593489534089714983946704494224501350062845930819908958257289225576191603392545310072837008090976954902925857912822733404102942356015917628920957073863217427034298310417157153188015140917136025584375866247027401628162303316013676762354768239299594625657043550649369330237415810184450985356360413941893675946419997726532879123786006594993079472391953480090604338090413983436334039481781561118984909042926078667010023052395729806236211119973196285479554216300713247101119370229468518159214037252464071468607031555083175276353557490192021456373586154044004536760295185667144490958836556034887034624511559105739987971700006527946089254414281656932003919939689527947079249054699668146557439414596896585620042119386916076412103757977079236663497191296596658094587608043137956344811594493765246544074397296477044833015137928590272900059048418301990012372996672482857615226850457926117591821978572766167724841114817821428051597408474633749581373460747604704548200137861266913138272443092667025586095173951980755687047685557527387534994398253623474880000991690785089129491878106702333838421297524151049266299190492366213008190350366751518683391553510747944048851110464172847381137800566001222593798967882996803220520317572932933161155034182366063768765958465673904620077188778099579102338108143149272303186125548835040417211127548990881698032188839734714408437753242132536962789027747935385915645763755750397319778876279919065538564055027364561909285167215738526732255434284303288326189116318819912797237649012517060828282913277832881811308281660745214243663731905767412406939339561265748885388234056622778393269215275974906268445323865981937979953610779383640094984846496437177173128776822831049052030067279677642099724256077026694837028144346755707673625699634330396513680253182648827724073733633270634528416790191904109919100892783909988247531286334292237437562900647977499581127678090893466964777436693358346996692882400009512938774795485069847712215897432156629007468201667615200617186222338512194289656909086881360190104026521918925297312094743965981728834128311506402214413974643827247921992987751299192269103224145443642112637998040746643804066621653835875863099188862666033710691629055999152945038408566294270018942039558339773807483646539478218022044655602900308940508581260971154744260207829090187603855067083693170079089582828465769150917470315061996450042865372904628603060950168255006769828371654035748349894380714525607514011858744771468342199726253894427033693300339564095757599812040239081187144500791829587535665477356274586381581872383181060782773367519071592811186655223318838521715420235377874233697487561858561260730119290200116861747960865811040888631807399636940457625908930570516573154741173539494218617570823973074563199301797532640724906945390669538694851299237812088138450548237560156255386112543380217583720611302410837516368252719085378131896745365737200250961292023608330284680331042753616689854278112547592067916177041534755776421404046378463815659876146459833937604806536627924512970100758555443723393897375771691259768380857823334040476682575143276394921333251284463674440112472593865809188812314280145049388699347687385692437162666980940194728000880352064865087419272199397476909904462382689772710981076447020437020125981814177025299235063591042808617534821526602654456959045542105235956582378563338572111790783652728751340913333959287485108055944087444431509834406048792981758600088957289350301062659029815203804211216704238038176324188479894368016672359045690234965036110089842784883653197807032242071874062985702086132362737813047444165511673946922709916806116714248190976438628570195737092145554397001944291508469016907346617035949973421392591774158896695515177062284009515062644841589722937398098069942982109455940582932680881622226333751658127729940735619479629401770292816118857952260649893169577291896584579098992064587543668491251070181828102068545933138637638137965466206884740035825675122087097796445394257371680010687695974783811941075968746529123284924518648186399856828696468528504055217926388514985439909063494479753133864325783920044022771778444860357882609955902868781150043858926315607574841833862175500986910161112614124581700789852125240089570983001644295101847785188594524045447694995268092222579593715139254730055617379615859134031895806456477383643410715115365824160960627673498478687320218630660214197931369619236704125629531485010744965714451880710378157880743540336687449896214349652588447623926182954463013520140053375815775869179500450480319113929517084757603367240338211198700465404919832036442857656596576384700043930616369337356916793396345774416138771524231409799550522167719250328103405181863916034427408202754442657959953428195539385699331172527928162015449310080261287648935597775882109894914267908989327397248831431492013297373000832989551996671542116557525600358584942840223741351960328773505215258755854844519144946545195953270668370564108390907988558072520222260219927866104875610274530146306608043811123472678742760421990400273764876474080713838965551346313591936458923361450746148149888372706560430990706678809557698319695434831412944056092966980435385886195264259705262139484405784320977022654230033770843173579682820690013548808545653657992062104630094501804600785437413366452409609646359150710057453141877508173326892339635826634244393846883577197828019380214735844755197413910795904786168545185123416501823317147283128615203020353672742241953167591848398823718716019507869938379362445178667131196848173983869534246187654921905821860551690869590849317485688104784145971601611209014193488614880095033012782681533653444477390459847833719869684271638971645110023653512608801652635331497404975639821081014146739860260831971789723422209702884006389523293318948583587863872490290412527893605837744664335633432902535724373132076577994777878101195531415596173945798161019730908618785293015411685840550398151246368507372302283333574575349014086412399607815417350457173153375330110291604255016033250039615483834021570572203723773135209521540324514150686776391236956932990801299006199581974363613966606727049880757430375379888811195172086670805490568196167473616102346008984506983021479887969780546017279684687968931588666933951499642934967204874071869605831096393110330841657332066021206558163309870534730117474791956682618002504184583939399891390176261779587958448185810104890271167473715084296385590379394240713386074422356564632535280954652958874150959311531345536095693581939132861212340197561886951424654779324937934276687165756216133574630927544872107505465114641082414791979184218463830272673493005688732690175868196361021764722194805144004521402882111381464935858171595313684219590331593286578940990776659305211956235033042004751893129507887773552739028270903104417015173170313858942165732767079941259973169784671859913512072728226963566558356987025072559019050954786914872761091777259721771539609494948720445792578237444830343176460561217706414943619154858745895431435377158463281128133268328910916270387222602903660343439033592779192821113660804996510677771315619639248112137337847616537614295031195872439022677614325025124076852175689152996995000490762998557111146754002541928797616734933920766745220844021910501814615115509237620032294553127086833174555309962682237367764320889464159844201254758150040125393815235874491729592774551936946233146203796273902258980889425919204806374645310048537346103452949498904519518102511269924304886406639956335351385949533596142906824131445534178392932432835628290120137661132809062550950137769319539559154006887558013128039211285931634398814213028430675127993812228106835848816837532521995243973376440045552983162063267561287628800081415447999394991355413599930669799376187351314917528555797610528249334083113578969132785992531590223971087909730164950153580464392006814475539568482364884565321668512642749803781636554805081190719262653905912187312142284933741197292795994404602384542733784624671369275437072455679856862256325091781385719727356581693084345090662577196512778830568585617839669447833038928455094762540908057571888570653396778816549101430072489798230572284025048130365497934434541659630939789442099804331289909153368582091165965067441069101428961651198827694929007699248844754433473072616310703674860271361855335555039363860018332453367173141969097756500545975741258594937729699564336578491470333923589046268419394661851137718719489782578624074440659700943468356923663396451335102508515100519832405926260624712434595434603888843206103314373198762699919629021825120494032882568335594434817202481105534053685416077964499759346403527979392092406959564241675380745892760118761558591183238817490630000643603924581544747660356328431909276655251818486451567695048424033896368220886098345602741424225852455818990571456857884759416065905544041312241511317067002810714452452376377942822127478033147806426829498469030001813996834489924302642236027143798149345356183212919095208412344999013475143562529592656932873509096095411854990083309922903429942451249195003704576158275436657132426251962787610707330450305758215289950979549490252006521874906260225346822479156885303561932307977416511996870697817527746296083208547843513363922701082540250861521574743673168751312111957355701540312202193679079744704134952329447149310898241229441260815555164743049285077910427010151615955622035287451856387312122009998830324081849888749948089064006984670453927115897420518273124439798633883133232325710247097567215389345118525873729123808584075735184821786404445615672289784015702871699476941989548676999752963973911887253294968488265434535216801314673685090607343672489456982219063805790751286379559218580605645270329560070931255314044095209805391942226237684120544040009406410163536821958577147631998697978255611462666136957081072219880135169861230231047729294675556356529600376675524630158837507879635872010757923639987643281296486871621153060379158478956980717997331046485550674750809311762884235003955844345769116572268232013608196971672878709329504460075283650279609294682478439895744924921138256206091774152029172292033037484010944234654489223184587772513141714367543592861319016670002899061283972786052843036587575625269980752915466504737039939412040613219450185388988074943107621133896589168688969257890173207367555587413350664100268496753468270278081064846463702879786114795489654911710221787172717598528695196322121806671566453536625965120563876577722679586409892931582789764995373435437938570553126225726290558783979006149579337093075365407498359772707629919735298499266253710452238315462144343224111467206128450353426777999528235596568199116139606638711436180447027693616613634963761355378150800631488551600212300882905677541205628588997483114901760168420030729915004779516009557613047261322828833658607389228934663626019863425624204876483705494800575085828303898729861460095844239387823429010508429664899144145235504516122537504627311017075552468466354257068724666930360406269177650260713036256569838187169970329968666508733840535845477745258658577269277896046462458286757328927468866917195279442107777472278559195892252016069052057423319346609219516058529970752461323625757406825853800015631786409302065681233962390800658756485419105226326491646009613103718893264166434759305458557240443060516199341668979508519639241768924575327047776931650869821136168540203780428479217270782540967616670294529880504759812731694272819765928235229541615084176260855905017578610829117773544367796421551335577293549473517617552709291501662095695217262205905317392883265067482325518117610090963014199594705134020458822105822096581468023399325046400974258373480080141929690063472934769487147628348700620801951518032206418756574745111936546966528758289221467041117266400000186060586901590864379720689896068320641511973970240024126168084106753278279439275975624696966593141203819645783108973858610671993257404996966855146950988291303115720207232245116026354843413966981817050296268964699490144748300479917679006758726315242801213979869016801450910121105357575795263963846834526707846273664974499243825733364019076809108930974397451728871125328912731405865700223170863569015987706918844411298595464389925925090810747842362829510341910385826908001996974143420519391976507933442576184650279961440754665495524096994480564804653057831682713193519836757101262752899659014264246480557715282239179730337793651319728208873899740294386835890601571420966899771567289109496259210668029292508812134752848737553176334231616317221458801216818795859468915331075283398863363690815140090337237860625085253504198285588183522361896524828254598501035194190955356277097380429561781244907682533865820735453380378765956022104731991780085421220081083501779276905018063358004370154154107361077989188529634619210591018686693535223147020809615764225135455250926845361360419967268292361534384711948864632066867215614468953206954545130130712299312719422404804491398308877245588260795437968830818603049286500074311152003119222724060440575470764734634457351813809708196901770081276054097715734879907731579174671876778322041429398143417201648851035461957968892745092498038462355727687200830547551971791809924141225629777058075113809937966234201044869532738189867373894338547185247781742660350371280573988935361578744674210073962760319865909734874767879654376398859134690218268400208981143956968855014242607638448557189379421125782531909798387654080227424803575089979528012105650102103045422290775208915205710026859612760363929760836305123716317037316163556148923313667467063781397598270160539055261609468761712653496203444277236821388960415050638439403753573470381156778389932337393755958949970512885290259044461158954291699942905184769860757823999288958780556104956819800241286431893021479452350487549501792627937140689122390509588259102579469681025788238654083058690812771322053233122150783199668989340749117161730988785451785865184625115372701580596754294053588112847760369145692613610249556734577090680405476937452294698635803958038028485231675632216511120306248507184105681806949421541979870927159241307376940169351846215315167456161131508282546393728414311560590889526276156749595763737727602528349514185050719489434440562319877361304330233752344018489177213442661744550700622706394212811921228587379085887640508662413970938474838874367704315642500329492120381500991709023452175415847782033190251314334992959398393172792455781479612544642272224527590040934714663925939874198712868619480868862309116075557077876810187393715943432855380565342150719607741629333200995726261302791493043220754756661521705353349996413572670578108048155991044604582160196630328040700862652165137649499027678432372738239385204600446424833215088145299075175272032222173412487359460125298532820263338731515269218220987690558761801093502052384357984852121910327292629576729058697637874965510002172447048988856049043907427032891917106366787143772750216622728179918386841269009667332253563877234560497616398916450646433528861313052140434976528684371294090411363660821063051912841664420835648644355328438469499453154858416798101757320800812025091335862000181884235697312513732646894139000539390911643712274967984212132135210271464141793202895216611897038995443630665512218700821242245898118916484830393544570591866725263594339711266027346387710185060347705193775884664814484754520132667777036590805580545964980775684803864967681765947627934266028796076077788928384766935442383320832281356400122595189246461123110895813743209280980115565309767846424560994802865351797815044570820401673468681219445960992668152229581408087328691743736412277627494207872738359454822272313953360847337962184357152820039918796817368369982798364480115560592393603312728802416880998969927901219305743775625339995558215488017563998757077748725262611234977272694048699429191936165773236157295932515814875093658872463886811875550664339314215310634049735924369528075961528444105000617572067879792414942273214713284190422205508416644133625748312251247493971318001699023491676064155954639007215859132519307376640099894557261364374255487124634500353426302834356685632807630190632970717351746783708975438860254149892398020828727832762861998294722042232605455070830454479183995677947755864511784687677729554887711986743287452011064820433135728920457812137470417704090361051715999618762856700304923999322939442497028182160790538531156546847915926299990664312537620723055102404067157805076948084170856795585654156017819021803970615498144962786568922134676581646368772616737284370959345955967027410855807079747372612633734633379935433654912322414315801722221111807902215436647891220301160413344108581654097087178703070111325688995359544001881405050089135884032838588920357106401216773766324712800818433125259601909852580231847576593521120740559057482372976997401283195242915380617087745990320671551211013760910830477343402387433925791331437849732042707505005428667923542381149309541007723306100596839168546240224155556856966827185985314677417696273740783728195303535907569029173646994622844685050366402709775105122677271595816684285029922309008865843034233891908610290822965864099979207631650116304987247999499550125912160925301451367505019152112882642001526824224969521175105097945492623242128145262906693900113404485228818564874414955126530362973925591335961934834221857033471336418409440778833560890880060180660633723702369362717229717901137325357016257885938500437141771323391168131885931643933809841742662899209332684203507273466325617074783140689964089094126256134431766141568009226152284282271267772835888087816226605537335800786913405666749790403911722757913920079565237306033651312295843773838451941896136707215433031271526925528292026254487613240175094369352629157954351451522488139026733135305671564296724742247103496386172416689795394034689082991959631893624937710543348304937086338124697174261436747314951792173834685603572532338194960308683043143386606409682318067345028161963208693421829135059476585504435122449679059908438665118329541609275499119427451347287058215974065546482048696438614658920248139674586048247461216382681036881826695704200755641432017707323312309571434147111273806232617739337403670783462433108351834199498250114135146184489528741323095496572784454097421541258625397302930923217832761626510608141259835551254815953683829244574806114660227370490817865416779528350414047421118629854890410046100963552278859969939739558949561456871373773855744043449858461053674671484120221486209409039331838791015348949002482828041562445182532437157749755482606543959505303279620483088735322414909669122200807950345245994920671797406273812250055834288559439192364074534749445471074024948631879214302595986451421915579600326905352487267520145874948464750704177137443730451678381672667767779462609322366730860477249099893088454505555892087169005935058190307135984141370724690990124657955589162728869461670141842940702086856760215710049964589472842618790510413696566548699961956224654631307142367327808485493524302144400032665159577690405182938675909296123141789741878147911505968349580183895745277588903828788433899698753228387695955991860007032438907601198178758824632302748848019610530285535355596090648414912818399327701927190521012110010472551771774872333475663095810935911172086976819221831028232236482329615441162752449096050684046433787596272360449305396253210086351447582345677946549507656021329082766040868081257372749445360547218461890317179629393009676185462420428505081287245023102199345990351072713534258035948687681525121876782369679411082281640197201690048322841949623467745134005616932189680270540879424357562047651764659053414552056920769934663508314857457508055445479779331988920983875331727218700670918020141234977092290951942400410350038970352180627430810098657475433545681304144361362841049860410269646974987075579483794621094283569402288700282842192954830813241690888190689773200129922244569631053700473540280577871928454618696462454040564858511774917658124845459738205534630879340169002580162694038837027406048664435468448653137104759608155730177802423564410198310655380966209474886185688642111015282876610981603971296570121172563400143425628454546211792272074507290536973384914443443198495647447058678108256890654626354781832694797885839891917675333189233621786207732889826363305796394743193028818904925044544859215752914796239110685243908474416843225509727276738972622335528038668522564291211840777993553271926250651645659084371392641474002702623992830031270957456411423840753289885105620666305152453697648577358457796469974398146975508365452204638271008801758143683591845696821892227721368555594219670261415075072942152189796641217072277385409946914654436224715868867960449157890850073343168857342162095397612813593731264029901270707029713295336959482467457991713434982206850337643155354971769628954477865675041752912713358023113136767927093639023310221975874062526964450490576397885564392726061327204488423071714359097176093884264749745134669337954085403487138479764126585026223629994219128230625976030603419787251673047070069324941653141445295543253544577641679773361448706617298742290014056421458412036805645037097961703628798207952204899958488161868718862921482625011917991268701682303891621718774573692747654161685763474710722125812433321763997014109246060979693534048375059629140428997374992320667391242942016715127732258745383851536822609474852194200326981187797156900956836927365415490844572070073847309440372839965060893625660990695808575743699429368588660144122371884533281499317768010255163448740643563914972573540647193776220680864499076814045065167495867676322264726430301528480885910568072801061129427867110084244080146141957189098647521532368657247462814742746108829515538646904074088703384971489997326794681391272174704960619432166458085103115386438874924443137215266112449193762957513260649930771566384006288397808907708768495028260631627695974833616486110537891924116151074745745767585964300368883203534617968142971878154024687269906935912497556048015363380305394542669013145396535237965073666211785259362879243851024126117387767311736384947718900203091078953811222898746353169472602513117587755271572389431480296330132333030880526196066317720664563703375315429347179074099106268119139166183121173850825971791325481430254589844689359070567457853420271540988128393151638211319158534124694418682932959481910359673593839665091095219851259915284354296972614243057589280388148533446547179100890083673029766802136945155138846760531703141355745402351232528449080181467536890491471478967662217748831153138353036135856251661168554659133636647067934183979466194519540002773651587616121840154723215790265741387278234458503148556868893537075280250071967129631166282401592693472755015516808227202888009475321611222119463775429505229308168668885561238853281935923777304538758988950886637371156084828825085081918745934288276355614860895931266073436498327332679034630258159706582189163927332475060774798928463582516407990248203189487811068482771256743642916076978384064618170507571902432412331675262547500546853914080734505662057018829543149178264286375515390696915480598976282622890682192688150632736414235062774369720417528661940777997534786520572318255254371433843634597392045312644112479321480109765629578773509704356107987958127685155758602002122706408946405220685687905138605351364879065248547946733701075112357331810717143172334012725520397985989851534023032799424874036092708208444594215596583271039852929728302224017003788211305266211915925785969997721555131839056532683131998478658057673307022260131442958412552707606855900518557222140682469563511392264385468429273095654351800012294121207400507721272679667604511766996650659745505415737762360984993548284405544419156708835891746210245259794474793139064228337505481881340522925047721761373872930846098635812642975268106205608270811890765731442129062828343788287753102275726885608207393956067297629221981517909567850546016024969817917398593468196077900325125051504843294274300673446264417846049772540987777857208233908086432294949165711249772782532537216150565739057064002720605963155792078582057059186450146629052135560251493045525939312495941112151950252831639685155909529221388588813262469239899948594888702295360421063856170038802449851375733622789279707087098170867026984307323732837881124210863866129696466613690534369369345259725225733721686354810151981076017295038166834285803017592520895604799775183929038665263720163677618681038543375420203451824124237850103541452218333791101386338256620124795901929095254118909343246284432806584195784591374561714175355433511599738139121203353400333828272316512606552244796480977261922537048131285621744855403458708441618030415490855823725151144995521347806619819757189588664835689622377502799650493777980431297951470277426998404470316812656829188141739414685918435500570923874139518707538504328860185430964743915229069788598260183097425441617964520152083695820274086806032154701362286401955422751272114451362928547880408564752055289801575149795121734494461513702195733847155021387917907097437366557264821573448993360025336243550213310258552942615338927069327741093929090918240513232509199719052086234966874429048837952244763319946655947433515600757758790804198897441181560405494876693767451455779188851256614220625611533772197695211234703344257584437097625856988120429388854451687227851349919549981993444494455777833401290048432274621203184440854564039677271720408759726101294686839015548722981330626475714866173279168990925349839458935117896063559196402515359334655241517324529504879714965401780968538395485469332931403476383847179667916571110007297006752267323682561854060523319016062974097573546979151564229992270859564837302684803329331188044837694232924488312674432623853166356728113411146129640942959305150337946277821041871821493052215261204492399195273634340810121704882336322851351989228985910881831595680720856301563617043996715323729577462985422104442042631848000644548892895839191937487154069925841750248859788447200702769062664368722645858589293515148211586563790027262624644141279810259137745091563619285286074868434830760169380693370620350263652811662209280654304573781061021791444345296792662094770543556932368016451157742982879705195842207623393961823359324458401456716776317032040365127361376975846998001251118691929820065962065249920128214453344250095539763354099241618571521484767840264494746788915142591391527662967852160455692016816208226829856467756439461512874070270069836179631513650603646355084237160584911373816381317367675466695644777145213859329028551099457129737906759711618598218870672163298959830555935845508229892035249754410589042265043465386991803862578042561314588970664836159292504987271932470301394911798683686606167955314899367645419425073445214805438043171074231766344540626023588895825679811557245190127305977780905238187760516332263659064269122169394590830009537477856846870617798269607694996991842971292471547858302445668096043108769999850878187599502808160394129469924252382772089902493690819867833843394341415049804169491834872767335351686840649839697355411507631118701382411317658450590007867557955881448616008831233570592756662847491114487775032154086643865796480743415721758838225915750890530175941392626948451944692216422166958769065940943924176750106967498375824530630197344258553227367591042805847521455946684197969212535305956778312631847097707847036707833041753525300117271425419423466384691136062739298201368136332881800813303770921172507700060944636657745861843699278409722601131402662705425853800895034701579435614412743351666110863096686630501707728525989556277451973305077844989705227981067688357908495492276254338746261712678416450806485203236031931222717406894334710252104378381411807693389356860920106109538837451167643492669961655008174580869553971381593763303162236356924670645059701165513524372299473682281675785274268941785698134680909637250170219109220242159399533610806284021584122217726389604679170871965197415783116520567020787505320879813303646762033088556571328453923703699631791196372018372064079832864954014374610884667910131032063788106111467226552004000068464032510961995112417797151771233279916661478670260697503824167882007929749394104627709344653377022873390648161472193516352371268858866458523479172822234510008773582579293954849311486582548281773406647673581154732427054776519575840083534813385618283554162822468273456503285479778840179911592733654161297292636790630189946618309484558738407097461531160597325861738135137488295660739347489290202671878562381211385906187957680211396992639464174977254437749166432614188084718674040004790169304536888983664613252189209222596461073215706313286303934707737909100668108029704127156692825920380305155063951324455185157587726343896895656230174023839400654514126041921413270536083879241779643010019633258722811017820550959978482916119513296150493430877282542526961890058991188392688967885589057483489149884690990305226163082648807142386560538896450978715034298740704167287303885790631007124406600736819850959750004016373201892473327211689895385453206783808787306206194326348822501895895298600466825217838784960504057836401615313297844161865019978964425117383089296437832753181606515714219639293713225050957071669526406396748227145742110735758457551585948247739259370593000385359414697096362569573369060326447471315036627725584504955361591448234867141809182100862725476348383205393071251527203158291773916628583576021738857406383078981520873729180157281449414423959388533290587205677063854533134662511651377644884194350966265994230347307803580587349150236597894530235807832680951108245312449838007909442250486520750929109070288034617108080640820131877629601196218985171302481689965548067987191147018678442270343825923636118837614223473147510082521492000269666273205310941231501789837588030774034689270940398787972102972090027069937466826862931871719997997424840786508484075717988427016799454819726348635087180303163550094248465188852462810720361822081913641461289441993912562031424072034564837148430889509696925621113320131999121241481896875701474389905784195030152969477397592372942336176061776959021540834070728067985361357709293166772034863475696417137604121754166860978459202940729093335141662846746473975918454122712577435037803175156730131566927419440843840737975353141656295681757459722341782604036771634206748387595040570762340415802020684161065808347429012170368873859576996145308795040643142937606589438313232259756470923861597500346177928000221370751519337311632094401975589983122010325475816006863551070534894279615421843058955597867940190461920534987283337160241448535817635036143782700149556905611840828513473642503749219237580211216884948823022011025436543764156244940875660573360801578461366747421315611899480439468362749565323410161785105673117929979822031697672929929828620099535201581017243279303895972287109229567966904350191037621487613241765860575026766227217773277709683125364876565890060872395978481869123408034144022857779375912385608288005585186134613830535027123685556515785051936909671645371252892975127415487725161781962826551111367419743775601953674233174090111119438453190536179180986398173201560238260718211521146343321484763517385252654500326808473099799982856807172935040586781246678722092797747596330722103355340137392651204115752529977026845756448518336776631045667364575784211329217824230617098295153953446942526344747909896626839108217401810282606119191423225356296366031791273855225011925606729946436574829257689380733000868056855099508451345289827066997476798453897514031824177733090207595385139896260935459233668549199886066964022351730715818227392325286521384393462094783010344596194257896897177929503106075650192475333509114880209824889680016366995837391295138194395597808295885085994584154136132739153048699751520418699896836035507002648625704118288429645117924848227001183350457220865996727429554185385159479763512317298948453994524189806279192287766021092949752633970381104036066374842842543118090265245977700107099302202967685009620669300543817355635110793349851414885258807694793243704219174449938707711320512809877421484105994155641499578184198947360397117241112750265831644127990579431666991126382171904340498616994893313189567830387405762393244358554309452902494926937343742987714152952259092397527960586773420013607113211110844384791721715343415103018966566623678714693467128070556606163256543215877539989455313867917636654782693871022433290525953978975463263903261562829457553171924019369310714836223110524118360045207687600461493238498425210267174247540191486557402417964096459863789614499061555272305010111646076794316268577347238878684826571729046645143759559573591953234434085820089690446647429154422943263634109680960891207496474220416970747391277124566856933290013477927854266629840792494435236778378646392996509595263688754041425893404926824798461136879711232823950417509892493419014456880645006122964809726810051456142155258437494511724998811624926732229802825562308686260542353503874189204954433833425714135088348044708626545682741706553165689987512321020837258129651837475907326327894773441307735813382993816049217051910584447174052670058278710055841002615235727828173585945511076691837257899651150450198152048718605336294889664073400992289856731680359921883384846577525849686788518358931663146956240805010696431544808415377106848021698039178889977070496652620401993069459331539042021352770625306500141880549141236502797706450908420822808995775180878776075463590214879327475787586360348923420741233471996220983246017698453787954853530176186182637072227777297301939887671307432182544008518342304546715586258937159460354857896777194461637570475714314029112109852623720245612438294116518580498442037932387378188378150679489928226607461218219826275908435619505488769016685500663147546956329130032518270346941551295625271762638146688118529693287767444901431707475374800247033465713989094794385989193062532297160646519499990206506922624886611759880581296184185474310256397274731518792242341631902510937742928200648690127489305679387634144208418184323024268449529350111287895807203307041985101855647949261645606782205950134618234146417228735690998863198676777117140066668341451042670586879104281332224059207963115936825012187769809817653395509361962996225097263786345110326705578714640326734809979587943019597557829647180271668387006008800173409148411975755517530468202123325310347357610259558020416542563206602146961621940918258773159670312308434102007319566974549785087030274865843438256305118452469476571726443709559265524582976677582115399770019934683751597596011695850572068341512768571388206963730382155362331694666998276719263012099914501591586180103408357015346371786893795982456977530603891518685501389015711030514571416944064084814066085839330712165919603738173774838288116410764158649165122926388485888909861971502227599048482451184707157821327590628775267842218388714141311208862914819649991781040381185702196702194266868020175703467319773661006810655035199852096928604840594483459004844254539425192072690018862408467524196590378557779475240991196300503355364226220633363687718042992696265047509589961168498207303515308735857860193564211617309706058026892303887636181739503986347525000113405600993332887207192665336264812829226477908112915360226380994096109928202978438404204958198325347306063243446938994520704774893625717330872245093157279461854035187023596730502872263448344338462460758817188844555993511837215732678904848475067285470672165556412645578952682268879024709475967187313038299337354340178745200412010126006365286605631571466080056750082403806402968277488471280750864107275032525289383665756599723060735349426823295454188833422402951876496261565611293335478186534344809409303459268115118674228829955013791502327477017052953829607137270789285550874292266776455024510292742490273478736067105358626043125915078762864629877833281841925701492513190466913158852903672202348017489403963255212188137341468789232112570774572209815437504018247906694690968035094631472406179685551223863570988080536885898038815459848018528604354959082810087565163798930641423830143579426870353964294658163984641582773985325608152969835754013121258575625757128194866284888832627633451788317932235178485097204799164328516178638701464055343150373385583697749327860374628619288039419052674623361256218885546316321097875451150902311527612057810343864949437788915265082598564173338293709685239869749696716675308259562943823439263111675433772128554768281336212004854824836991606837085206469855029584999877313047029061491294832500962158082879813314375330646688115051196379618664841827861367637643881239681106401568202985272794862297685278207057891221913928937569624261363263890723422549022400278538721343191116162717407055191903185633949147439389698707613971591100386038458148937774489520395372625537578055709527505621667864037250581063744584792293186610169459263156050955819196274705786242058483149480773558407318800941815894053217697326344182581309111867039838624313813605521604806731838723260757432329861411173993898042068555304081755648344088666902710501967550412845360061279073312960388132376451666856766741319873407861311996940351125377432691212111890314012452757384606456710576291269163541233783493204763538530329048268722517769175376352577020176358425558783531167762021742296921885798864640966729868884739303239750107706610421895316301166434888040802932049358967922471130033701825602902393882620314428190551368181125110655919596872460877744662788108777247206552630679761795975125211676104040363968860787637694663006175919010760888754442618926582339701473885415340714484368250895794642173032472973154434996883954011358710249066608729323228099677412473827248348137881682125673289733201263142023544567543871954853123063901796291165627422195522516452460831968229912913472990516719494037167469078501716025602502492495951827410589997318219487881556019225730477915297594689560332417451694264562485950060321348808642201907144897226995423326462558296667370242773960572536220986613579643948647009060235107789111899273310019704467184723902584107700537822212467666070887397467752836156090667156893891904761988593513822014883301627183841056460263336623213300023340742633915095647097366479628716695601672522805140134243477850728160312617216647033285414581986368600797705130689663214309672588015853153553348999408606975225839956453351247550761529084407447248901935254535033309154695431360204012959571696711010945299790866250616786639187229066335471147022503804736916792112642166751566774684618173370210844235498101136251217939615908546974424884857617590691274038730568971054912539996653398615538316196089065174982524133028003243123344981269406462265884003457577588421903788145155863106372432725960979517949058131680358641182713469100060052614597548625066552225455306833361101827493559511759460729476892389649816669581112750929863469491329067676919208009327455752261989925672479863357440330991334404601957667916206725999472787211404841944108767725635582604044374299980253144850608889851869527563286056366334714579342768406920232247169137778444904567190378841120549037668150453819069842968072977334595440600844919754215268315504437987739554545002947224558064129135667407919802234381834526238754158068876046447085264961789552742998638342800162828268025379990644336147057253212135263828213748379360516902378911262059845717610131270885021358127684248207005345030330185401070417040206551583739914397904927160551920666217000163430512765781354197470070106447867754102126488150762688013471178569136636808233694266654819710576953283339567075823068714689708376112721391159114629451922131293431498098205150268058539486148583777135706744847326959121369772282284770225192249202004147761945068141362398650093848534054568268638666401982529303865468214454519304176855157287052380711685184016670518957788368440005299325071591063331143987455450644205416808732530416717022531204116476392682248010581360795352099309257015966300079376155953924461191952256798935410783513970898687895152307164440158096294393590428399063256165125840259758063437859694893153452638324891049778917564063499241121585734876272590903962106343901874405489147556574480779193350124926300007471261486203828244045974912925679296887606729471937978727413645248190990287933499124719540299852212602831882985319468723437871285132385959037974218718482960468551833234394561376985710313185108603295423631037022793595460605133327330524069406281745845636518631653414328413127153052239912340794985800899616204774701112419751955339053178950383788615401315370395949283060159276961025667930810418875442409111921600034190141846604686269064374096819558755452816928695542366741990640573019400921802757332369142403301577133471131558137915506557020255393945537505666459393884910142809940394857938122592281719772424260122038952356665842589823090342781257427511650244549761242465853046783840154158154555168559070555931587170376938867882475096117201666849302878277464309807684378435482260664707194198631619135238373367386032518766620510043705132610907352016602752747716314221948004908624346413143071846744282388889839753144426369800199711329151525120540782490378925336210253415091568248385312228693672527539197227794551809695521380704366629217869905670297459593276049660292895018947118893351257966272616646700853539952163038202245905552801432073925623372626221596871912440564771122127353468046988220466295114773134630737997293223743160294375419098781452383243857214253373759215026619235111396393230599461163177307226511502243937578896672473784304236301251938115264797428418810010865343262601295302357554185638883989148076967675183175319719754029043176569778313818020015352142835109466500856219705112368718381309583060183428657910876392744211562776348976061525543141562164108402908667177268336764437518921195926029270526801129870001716920425350142492430056043176649394859073418279525062185338486812854976161979514434982345371788658933933318554561278777185161329325244290435590428114618161414667057610640400968967068754601515802552644947396180735977042274327477760679282168539924639977848996514809666240974860949742573664762148781014152745172477631301064305671124477534456509253238370073972682612245284474332701670110272326605483665141530973151608046071947660389927257000999984374056012111759946010023378799584091866642806834943843939992591433644373041167892399194237933027663001289799474537357829896810904828683280461151492585544755630128872652787485100976511241049456101383339502205623152478955023787600611689541473773688705511327148593000241352860067967461167451170114199168164608353657323583437162640336310926628787217886929750400109255032191007921797460434261051405940053102340614803568276439842975159807433267405368911228706450831510551244399825800259613251787235280137889859404611701966663275560768557594071925869379160016721473794510753038433868763731715807521867637462030968690601796750568427632254300335361415651629398969610991325815320370336500005939631375571728475641082666443107725178303704458990857354570422482954347236927840291094580515743388442525639566828156943523028173960511078431541348963759086451934257057396032177073449248788583864377697182659822415600131757259471491577915752989734497762488205737341925364373252523975542512993970377592661236516911453445347292591449094512523184425030278076679613840535243607042884904753249126075543543416125697273400027852722217681844830511216525881363458741761920546984022962506908197354789031826294552034120646731301831505446844540110468783128963291656962495793740462020525217809036015294233946294855028693949244118945134274450941173497613927715897701443145422753979906398487601367935811267352617458627837631371288134337737878617872723075164293191889475839255156290383562148092301983194418279308942773039207885854199430771874619898603683670604831015005130857301234473609561469508667059065790180189660290299121778072754377949674567475072451665146086195731754857069811780880651479192438334268352926056119947291209882095868929792249625538128249388544175440710024935752593073940922959566881969529128057398468548946485505672970732909394700865504859381053014558792820414878774478170149565492033386186572072905011099996059813363222619104478125918032344721657556706238117091864617417210153604409633110163230169870427535346021415617693332390988974336751615069839344891674252426281844358527272313801738729502810499106672236571618337026641829738301005924916681034323707444450574976062516748936163673554772616028561332295196824811845246524129543093980093865097464995159073809641187011379956400540335336011266337371422979094378881991051450609732682297088819177181778234265568977534169642880571320751139147814717646724239561268255114857897005684731206747608663366190994758084169125403107005329558722137916752991996807259652504067987422669938552415915791896937751882956079942296308937382895851866160795071361239797773369138537895983137488335632341028795102715562462033231447479502702215660424692597152487925083697760494310015702245699231091157674322799287196426933187639562753055349692759681282088681444569865437777554323021638600692802880518222947411066315296767979482294529582146947685393949419787919373997555899315345760245168367326596880104164195546083643731087180250470501908308621802079043074030049903749548188058171779036677945299333591578938863648954627487327826016252670292028435695614204214336477148090192258525764654774358726267892384428852638719697365738633997726957909052888591543975620314365177586322809920461413518045007503356239141218233825031356083565672547287680722740649642222177302843335728881459360102616086260129240668836009698776632141328716355146994575150768176207139947045407798667467105108621510259068935923414640948372312286409564551932309365182910240675494941464920481895199082723935212291643734000006449971882251863769595747972986347480779594412570756147849226896630762055245670181878047140045434712089189649980351772259940138585655198188778957356491293041535264219852317973778876591755531960091230864746000304202408472108251525074368965567463573621959671671073025497918402549453678095786958488103556591271674308751901069752562300407498209115360032831485998674735010772272018499892374598376880586346815379959480681921541550514592917277619946401904487729121822546507184484980926125059496118805407668930372362327292844123437392622881713289486344722864873321896706544819186864395253141406076447762117028485890961202310465333528210614660652010652755575817979223979189968405047001527310711801126160900277368288220450858925829839115556461384608351904842944277133630909477723728070863925614743021432526638054841906676226464000209185686553169598966389305675342902991795716722602343342755580976761631171032816535617944260430241225831403408748497514078631670473001062151832394556793046108911638336630146193036043626968958028986180157189174723662306894141852128352725151057204381424374277754729647964896328283697013189895269961990232669286301032962300409946651903689457250126216741541195536205822333564252540679271346743395646803081926592303792963379000548417640077961330518400889884167550831809227742960748640071389564084377457768523017024225188049473293110360692486743840794176037180199265879898763660024064869684648773485541506890816930317933153508175758626276285344378336169603859990090230290003339302529132114510289792319202537966181844610463551553526004799683807020851074614436479689376739521365799314182635416847122518520920024535924147540892852676843666594150267569860928705395091580546260778548440749002716447315527695866277825147844650203492902036723543739140810683728157104916443810515629878197674866137940635124060227278441546805211192023638101809409533510005736026994657469637122548246601844557450730793093093747369419735697757288405400710033231481369494253115958959402797578933099338659113789690814210956170809579465009458610713978474042186712586272087625190216727898371104224709060847791816755318538310165885176778685882855761394563579468137551126811453972411517304469693148866210587905345830630744127795597653242746732090719127131023579412966258471063219875531671757920649846920430438421477544994437811238839915979613978772911875149440049284050241967250164567917563992195704577313632346430389247897603920190581452469058728167119577753115732800920111019876289045599771987276393036233478037289257459189779659572258790570430908512360780622681671933709387719152469780324193558758157264071161551141216173816346610045203617747678799714200259137341869600299272138570519862446848744488958806888146374895273120191219630147234019072803784174332056417637218927789159886626395786185702094433970370385959927063163329603662165982336902064435677151455158949943033106797040091718210976352317299232416168589848513441735767803152258275254697676384000170244516149158457861869347684014858363915235989233896720530876405341687862758898735974338671742555854877108958488336780793422743578633653067185310408818500239183054023470965442288652723845794735273165002013338099287564667516242518999370095636069958230431789640953566951748081240597578167534833065381386312212061732525060238543578996318998044653949011379347352942281183890657361308555287388892562872362441108372533977618537359518604419060131791588013445657162973032315409425129659319808678482676443512223388798651118862807008589223736570771056690103607689077546316890576588268933062698229680547305778954995784154027161903501311386149200878067003195122912933107506585752233388442574962154829304315136882253426944985300789775501527369791101817377189146916811917693675526158660801733534024882230669603911917804216627777864454518133929176545311345561183349535688275193630653159622643827084863358220464743933043278739450750500725544755064486443555441449433934568773505265795325977677967409305392006904872084450581766092671204868636423245018356429560349114673611734233724115408230226097544735762089910599040409521466211690842673483299949925902497342594833276466261473833325221322595778671417558890963781994184718738731453760444748825901056476261975846186139400542739246920996088101718188248496801580833131639130111070391011642127190480138979513686350794739701016082606450107241788664185655993524513064308220320211832941109289502248301924392930704279839421547432574251360782979904612375480803501226162394751096644959150389329620298862442992765576800861497156324748571571387843231899460608278311103426024915513811232051130856657782768786995766847616858743624066313351220493089175845364696077132784825299886519274689004172927111673162806747545305725270536226587607242152580703549273541591138719554062045602459164659732014651784593529858269256358917116143394930049073383570818517823276591126626308609952061303038556312014641211238953818917230976987363576233741104291905683018421110545244808687461171564325426482886833401635699391953850241281729303009160270204902772765211980391436975727872300074222255336235896462907423946188515786437508039111857776100163608674092983091149480628949833527715254255257895155187564688744940890522466464495840133583220683431895845005822711977854557017636752360673204132614572808381952410290472885765514718740702294484360042563122401759896507223700693470355435264834331856680976901234333556158342904739540610517719716495123753791115069428090595811971219420809867773688845509403215413047360729392462443877866401456485084754220105987307737554133281473484331922091114804494402995495747950636082829681276882273841555385231576542235380839116105522881504130279974485807146309346766234616897129152967687278810620215840866899079134382408105922906727364170683436696774224603176764146794575699649936456720692293222012081218002687480495729950730082563020192726729786210688898298117554968345188730971890488318854143222497684735900203764130516482489970648179369914779897944272600553297751193641738466391117037845618888589228920942381774694099738554098195242253544157882297183152485386083123404232335251235175842651107606458279743672033308402225125630693656740750096088662351969015092116179801230969535824860801371788004060544644370019232538501429802335911433805165990997525872945828268864418551276410378729348348053764410219558786038697460577980106702415411477341933739086077819549382216730376249479826083784838814782844169426274747912617768907185714846195104480131268071264188608179363391014748365773357411511475273453501748549036869204083535839377049132318022971289315787658848720023865546152609363599291296187511956636242021132968836145749243857698462393492102584311098318666947463953483426538164578362448922817452133939470003265704091000046112660914514730748590439238140297077478131150513760308981843955706213177350155463832158899736880165020719151284452631010875230148191404108164439531904156324012581053221444937939275753190181632484901445773263330667650199529758543793810960480737842972916980080771017375355900388184725238712019541885955273948750810666245910186271813554367454399318151074258553252565138880895861023277647677062057429408624555883405750364083976925877435748390308210956692468846910914330632654743133337945246787318964248608868753305255190459591735253934388401879298343272963446853290366480430491318162454071994993647910972704687340135930248191465336156896053012987734803540731878047100261139004964411131200784886631572228382847718685724667194152504099459257148886435857665523547288654449865063475798920365729824965312120231855281343216735551406097173565766002890783767363332519997623091713182911331344651393162917798674754898998159474793977010633642103951838445713219476161146018334093080037184114315581310573099724149017151898196648215186654993881964151634147491462316895182919846118136458627501199838602336769820573403098697650207686380514716019821313736528864249647757933531079040652096713245005174978567683965461468172050162086769595606023774022639013606271679319628952470606477063676980583481922969498441961909367861262014277901994856119786369614102511065941859901638850367605939674274310490148368599515460942388464546518181759933536004588603379120848083597888924108114700278115517750627969048850750271914341016478557461681541895992919169045073164634648586521311116783458988026286138563899022855304248280798397131290503618528738965999087875940451826974506277916552137133286725114283633350285196321935251679994633670336338491398861236694538305178856896520437514271147307711929604316371469360341779195741924504942320215311783215189403872074170223492917663691225487077877848148795512777017228536514498795006140103399085552245073710243202483689822727336527723052142198329045759267707348689330058417455759557393118511070265548970448100529818648293230447283969183925294255162306505893382349113377678219981433234836101634801731519881399838958262983225897297339884955641934731507535129342608663945635576402256614004544409461242272817400393286951345928515839786476510586977109426622309833812003384270911986568632120882759776533122697966632597178552161372869991958917900698299409192244813300477756455479911654472010286987064934710482170283862049685333585189661122837584157035498088288370947136689899486908974829503550256511522932886683021045706432236517340834839630446537437342341046556099309882308811690329415932701813327932112148675785994534487997319354036411038533258661487594398994980429741201063789445713724189581568144261057250317940452990947102436175328937385570548300871806372875311664629324332572074094386564938022204831366041155004084046093811678839037704193037066400943687584685053151837044335030658278491849123024517903732124174031832454792639162555199417208950048247677601521737532620715624014129147172760172540790192054812134965371833399302355813253181205369351319514605529240784024583808397863235102829674597980149222190702489374482370721183641232823413524092049430956178844075342714858569856572564416717204004637804128423021000268774550110538337675033771878870346737668131929926592248718976580529508945740880380057239959700031318506430465366415962643959520583379899827297109217212254615765954104608796183418446408504665089375441226411389162388108164020838684744681451878744947416307190792702455327908708370860814242858040037965525496426609820607830592013547625374965314813013901660262502028985506324617310238091936028434142026567216932854367497334415056925799525731890668593040176525584671468329149150363864393852427614655631316895754955457733372209130115372278625941499932604140080833738640619583002200895073853473268371679451874816001973927613577608805212602264509238836692329726735170347723127742923682989869812421282252287715890647739217821088939535750526893117348263634683624038064655422140936245497155334562004154880152944425950388764534101984169030331274999982513508180829380334595384991010298751724723285006767288593565576576603154627126840854094247598012896063044365840647801440400090469498311326715843524274031412586715894708482393168589112611678064544720435537889696611375190281238201940953794422463046425597949562459931963100115536681601678897384251828733022963684392222049795961951919594301715010533719836080351081630728194953796867589410114106117457998797861074949770269354250863782657794610375566611413615771334718522973522051893174855719217342695812290418575094700699566514299357531411099526204789213482397818342396393861933347355551062885449130522993947999099001017261848102329163513093043854644083436972700171652046780312725553865567273731623606943286999529112698445039945462662338344570862005468422682850974221374880407032983554295158079809230911728665674633814233140966631225220409463640367747799346342107370076556283653880258102381389496701687990482685358307139574987160969230018513268471264280548411647883913486353005994556812156023611279188523905523480101825985515476693487300489056574805390571336882188319745583257480556180772100200688894406588204904843033677950269148222196374329256683024523869551617449169592877091963683196633952278007317556427612421742639737759574434705225966814635291514414683193488262014939564205498139799409824245684771144117070410053564765188814384978167470925290433328813160571137817880095664181284202911576498938764881749011657204577564381617378673909039885278997374720236812584432050704824218084972056354945794443679997177170304934332346572700774558272410421134106442845711935012993415992499558200366927629208381920593239435271555254871635458546544441206988647804921048004129518798911875694247758708637602738980426197910417768758623285916134353089342778055298993354805175487823244488043476170188791190105206497166366301072133691635497780185073830873741888746865925366017927210114602104064644702292144566591252701135945019437604747690452353568251426983290749055538068531791579544257382503270731048132393875918173416393562073837231308515020488119966730186964572818718798383968974694611117601982817751901148653969655042849426402383225912399863328309681466909690538782331223374964270659122814037841708112285437744031670575814015692779872691286479672487846279442341232392654899465568419055370324114565989671419777181714832362804167507086817401724646854810067409426444625147986644171437463461992578646817460971682174906778548508133588031467367941309038935343207911771336020989014319408027508682287494810095872867152810268858999147231689995716367727739267226683438711512482267686105817658831054622721579427136575295677387432747065073872736698652312469914359691748328925556969257805495769962510765225139211077328502510163968932890469073485650727449522493958753675609039750068858121604946727628948735843114411576020612987045134038095947170606198963164069278121195472493830802252581288734393848297921970696082090493454180803515365727310059436968016003135563350564567546564264115892829514020152975707422583123921799239282586403245186264516910106095516453269401464228674331966751053099485701720701969747819386344211185107045208708883610020084021562360870258213882244051246947065038226220342393612558065242470141777141720948148377804471620073125950676990069859998350523250951040727561132585332564351917989013751993844115610852319624030975290711801913986586386630662380400909382117881226688108910838388410297939039219599023700924754104841944407821079466446853417186883945297136477908745390221659812034421012165980091553842518571437829838735926394523846128899588544313869936967928218731841600436604337727000502815030414799939060295078003281350332400074968538597561633214458113203597839089155461220588544669440442224490585225860638451411837722992509014536211545449531492623281124560494297551861307408826600536754499714833836633014698715984201088316254046641111557242611412057828003900215251642878980197587593466542097155256123875268751857985182826930613488092594997270863322883139708201616213633663155312650649557271049957036252965048178541685967717306993885492908558063443020787040933896016893357061581273620602831155137684867681229340651469878472503061519458757772110838278213842925571218304970796283326430509255608578288027789917171024312045097680499708582495996067152022736546965037657508622924917728711367407760180053712912696443595506075736959910784419336389498858078081740581577982466658615887622899684154212074447632919818452870153764800398074797581918783072301931315685846689759246262276069346718916000341308684363850024759484685447413868122904134516754990743498480692238884362830603110235576527220628870579047661680521725623110963420684591808309754328832800906995655790495811567888946611474858199227354756081277970864251103455523933839126502672045289573718656516574651649550601201165312996128365599575506562299213516628780062323467469775210118753393482148587463619089867624439847982154745321908124803703702509403390711142354278045550783741474070063205772979624398125904468095698769292677207076325001059365447837815811529223499438638488283579258900874851225961845128394129635135011568899402078423645774407401336551307925738881299051509629330138078825423554950058926866856380322817131842612083609672571415815507967341007564589797651767493803228025176745222222736069337507993342410781839127350211873408620525296855049649732654980736018762098242417451522419938808829008658765022423987735818709919198316318584165399667105163851558399974074501070711667026205508947058722090068360231945772789571290929580872560183626618274973893999542810180476204493508708211048953577620234773181428779489794100835694348336522250217690992708751231542252867569636100162684993916169833384063034084358758602370088779483725014128001808744610398959313318445551008613321207004044036144802769550395678834867575359731005759104348491554884424967099574420939909591660847526048385192700917959901525018920678248999116794415427004513770164158356833293577962592598373828062723902847969169839875893278464141959126758837507113913796553531579791193486302319313322389387151524243146212968636286502147607977910987171235670640246139500500314693637320664156696107508165412725018170616324535645579807153738428492161323528009004652498140501128108449492424863365095765579753244047833725917345379255714307402082607824671916652549905923369345467868464552665800525942069935541604664646767399766978734606096169410279255729675892457003259105933469514971314557833584999902496965611398722767649166445917078319069098266530188483960573087151900000537707728131204233293305598926239981789852416818154182195706678436891728741200224913896046933259310334652228164631018024226759130888040478283040324611876961307419914328426207597481464341943635352912828896488538830955500766102661274630923354571967822871086779605632214957423194136930048837684397312027631107439985039790835384640225240817294188107878507367146229973930105252378266932254718221802338102097074757294775314475850024796843622797310056513568259925241558686682842528830168983181621785305597195327760141978327860787956211816521334978840442017456533985305251736555465164494046451039588498752715948338717037067197705828874474686416123242662792412086709443576026543414824491398184207008087782824709704318362446510910542067803122545047965497944986318074716241637965795090377096741382843709890502561064202394848431447489536654245687536377499466635074342883069057455390925627984062028275307346541510598894907662617796240113191775379301316080444626008768442948757277491295434033865127241936055598266749763564725677944196838801242875834915239572341740849869838615946725081816257588275611104462288810059453466996220753461450373556123804235731753679482180152686016050000557905446879675944870246290172632137372286074729240567083610532533978232975414705976691590994161697794196833066543328897683378943994143973728925439821275213997963327533060847333000315573269697375840439125868436876703483782195985348153451547126916134524383522018068906214903735264294326362748139097004867895200034773879611091374378876710150907508143687308401997161998644788225147925389456507652353186568065897084087050744132046592534635291062518537106142818154044925740345925402710141918380126189418550905696439260139721614635058600315414424798897985871112804182479822873751453967495575937474297174523482694810704298574112221892372767021509940923880316940986986030380466007593242439032959947015024199494146715902135153229918600317731099756547341138787466808122203624119357104266672452315832599631515753357035024103907467949257182672958431697052387443975664648499480596435608507438817827391985865989189640936932986151560972533803751854675005463149281734534112863475248714937894839263790247996258312350504939893237544016596652248318090141057083746113878651044557990777942987806056809531374992738368887480691770372429780803035580925087312129203813656308747833167218814914941024211946200228424604963025430927341605626905039274863641231656727748871769821348122507757036554356205908773673553827585476193624401371804398886855486349120542826162720789809801572528552023726848044833653295075945536774323902685099185341874358168183658579316610689090811768905541620851061375538441760176146287339563081949996538078763660428680803609901122547121662120905772302267707703944593718152370979362390645909879944818414186070178565900172836769993870951126959047417509221475216062831198411965039287209509741682891837396612426669535220455628690519391902454742026697265875602325074203524269442874336753426036328488438761022262114868400493159397478121006417913031730880957656386544679091429529557671833876311288355162536784851741388193782693205497949588305590691395394960792932025303141065345160726350790496924347400728451170148586964386162245457656737968529395479297968992820074558495323014270830453539194250983201238399719165679909016112867517669245444101051959334136511710079246784975033856056608684959979017911292832700764668208870017741673342372382304282348879043715107387908147250364787475702089971841136738233726476382563111734005332771210386783476897176109657083983888949790259233429308328274585176794832411328777771198559835461484856289469880462405353895872000579967963468891043732300140649602626841263615039568504032191918525040904203282657257803692185128025697426735226861457589476834776721630899282281158346827623041270603962843300277411901255356310887554369458311692140832587449296813926324551958647593058815579936771578247182912783064994720634140367763645928175516277255803419733179150406435840247550377628721821924597826320622591769521969090931613803063569715318472511855821349504789323743858493896297238347239023705086799032992740184157715780448954470692718411795216842497335454111510400311157407713606127760299448409506036129711381170145697243559374843600808158343335511350435718413440828800845439438313889945441277387655400620194386591977938507940386395622410206254357546881666508392893189405815563327392212075247530180693152812869507315764274532643222333878527793140361062354097121491538391552852730988569563462289902987899800328646287939183958776962171629476277048192113232603389872957063363617250446946197584081977884546466617190177244100079810665847466451579677617968416007626492452405328640535581311622388843838396266309843417209298703966041961420797060074712505882765908067687513493990494115815779923084209503232545128282655894292870941705221545434496823162663486564925043217525488422466707306516469733593058862806627107257325646146170467427432172856114780412980730856723545858004416279846177377600625426188784275328575583227665309934205084936604180482109635206404510079910184545186966749426920700680218027234203818598250309400443693117094895972252556763973072183400851004786790807662790148882519624590703057104075901788860342501753800878216668820296791134168791634222729706764574675994449414792230055807089066599287944870068335396247328000391905219857128512529410480367402648686141464581392901822324872573768275617503720426797033209508591933024830698316743388093848017204782048469992983114013440862301020656780866547480170733210765828608497599615398526459860944112115452950663238705997906624630415514538435850178527904144259752736858923368437162030378452997764395402603594500743260686616216923862158541933358251725289468694275573658346814893564828198679171140828193730080662467459176757900613964156160286912510318748319987306582403746389700847206425767960616907525657592436707219376220844026448878435551028738757525258950378221909632194437148671866690438280948597333522873102702694249871408770829665935491533973924702509885583167040141950147845903481454567992041832784182350922876165845401300344741252213412271158842771459082189723731435373410690675492708396341511198259183849086278757150876293175805484965141338897189120086054671045262823486465818459032487110404940167079048012900143857452164764597788712531323032787172055027971900845479632467741203663190107394570758869920852461271108812739491996765825727203416817957892885663058719958834262528748935192319150400922242198570870307540720753547126739333111226738141163770449568050730646377565525811510600410781148373020607809071604955451550893000630406279985222933306184519928463967458325332903270311319189641698338230704115879992342559983573744739559401638220443048426589696815672835505313978746953052834393088166123332871774536848447255269133435473101435426241376680739292235696417038732988444912627920238796028597137428869600890017397986385465003204842630996503572789185619670108376315311686445332431972580284140221912729294818083760786571134449439228673690163136142178164269530509290121714473530661639081851193096808251788764373303265169252387051182407791882593003772338579337245413301301373402868356542309360513651701123636652798685657855068882161599048631557289118177904808620696558553666910419546477576451020472044904528601327426991518833971624801215873318748722816504291108434343909071514269224121495043949795290668053978284676502304000218363652460693502638995978259518509661626287270754312261367348000360664863965768577738254194571804700975501396140477313852902258238653989359684904879290598244787930460412730385009874250308361069753342867934485370215739699508449176705468554752540655555518197822483967273871496534167745618654819084811822435369170165592713997264811251248699935610955518436236422916777137193203197297567246079482773012238970894601267088230619631734800280424551389494667138624035495215512220048307062290010048716316683057105472836274777544638302052941533358718156631554823214552334681610651673404886709067538308521010716404907816965406367917196218161998469609467908410989497859384687321274021393723722221811108310265147588118234889477411448999118210776522737922539767246475087138619641321206934754857915089761732109459923543401898968470408239468515192565452948318923002725772961278441258438296409289398226579927496551102070452105485494993087544174491969297877315128652787768177068595211343665126910247653256525831192971475141760553142160882734699639029402743693338563045520311589166710096674767753130580256764815218009499144593754133032428831771275336026969868657141017359628386897113180556951899063885818324140872048801947804823570340323651555841367209408011522886265128505947666739197705122486832704450832622663007960924928913815443427892397436485064624414815906789212828217961199009564305356080549006336747661823021212510342804817940855737937607320466597659995742729719163798875049569572014691996896099996053718862601956512598568482943646278240026655602612385083186339080883520791788861871777477139675256148045082525492637697853613202824450648162997495542255702289553970797212750963708493811980039012103699630867251323877644900520536127638384395234410612859994641791760996195484935033884411187405768006826872412781743419491733878885258122981627446187432261001726073865014132417856827052888244776060857330039959248156616291617852275383033969638672513957191338275704703015958008878208806518181885976620934315120869373581920347152356180170408251819745395640717264410279540848188400896647142188933511559393637099966393942880444802317487552865940602349949750464938992351935806949958991727599030539402985869850037065278279319441168861398780650543728664656810662720213735858386278164273255320175116400651759323455079377854726065941861401442640879012426850755869496483299930382989436791204452608289024484260947130576525672569113409253704275211942998449650349536983547040456478332876051043924727508202257063352140166663654278643498243940494571290081730905583151489566231321761053933955334362634852257720573336172322423456614464520697410853511403008292050413731768220996617952626777107899339335131914288735993737703215338721236231572901852346817497256188009708954850262828943103103707943210732703447318519555534667290740864287552279776212064799180339156178004246254587867994997091694552762624040434988477924902445705862762543943301180021044598009516203506630852541926793540922949097295434905471050498513323463585911731783970092885450952375483103790870187694654867098624642821717730657647585309937738346735043828540901846193259361764235447139938033733487653227336705758789503688946749488980593172865213349890233254212896252842480338808162982344305490710387007608395852725005534932552041078717092951332514682116802365594749337145295832307016245501266357458252981895217820397339764768036924982662358395669615771672381333866038926266455314645542578954366246464944431225736848017988545190344887957325728371479623253222393146871639523480019898435023366885634019434236783083584694462247987585368270282829526873252198972452206401483201538087959920557166731924855636250149767699129064669158594809096531766236917869857927562171417158933573918166991239953460465395555631451316131152950316037147486035018435724109039787507337945022070775461514474881552657276237912970958052580801569914085033531544835148312559417987533931363085287664000327109088678872901657985954943684675268343415847339814584426882799787496002829420885480134130651590333177296354727072435906440437725800409080876702633900375302492066326724152234176551406319042709027126814178745404171799601069874535917225754143438550003659575695670828560412684478021384855518480439966461753607708041025252677080155625449688651262764431827159031362740414323466933856866820539870070972235576334651194762321506561890530579621202993468296056149377850809179072817510340284425150558540484916864322057392759244888755642037991498810011287531272987516829381350178073066851072379170245023301177087238027011286176947113962287430664458645182774935119736943524986881407990317441095954575921236889724826692162775202242518305862767686884762915307245942198275592259248933388866905388202928979092030461335709865289821068383041411035691627265956960028927982178020530267836552802686318541978375809049455027557939048445447552193276885645018865984910586905782917909242927209503107200354931760244761444489824718706421477253679663863657939144815057364582762781438576574806746006694082883037240358257605396938023449878674121977927646416449386438670528253911828895228438381911342025497983232872914023347296543433232419775472134950543803190631832942878114867084825216944390361859593998379223903277384973535751654702673587211814570896014215832577671720005908140046395995587467144093030229212695501758067694269946066750129597472434229662885362843169549485258895599264914082434646848885350979275153269135980399084860853630367772788612945875033069775126923226626715653659136252911723301673110393416135912909387912598950169478434066502964850833685015080527119542046238610613874841671544286666930772376560014730222734092007414791814448629843476086544189551783999656882206053975258250390062330221933206681626105891281107303823434744133814816050738098522896740933973319026623974350042818788277757401074156548117566524893580641754085429660871398042052111845803753914996033551442594854060644527019371840328006501457920982399109964236049016537220238215495213298553469920712220725883240870103865430861815421099542147026984278217600077431393761593814801639083939537182552385073928895787794200054683388136501474489434565294995075602741319326498140316398479550270511317936656585203226137880526316365743140198406342163031923179943641571442064126959186226885921653671348593874058872675419114041965625084909041949743115307968238706774830151384957348548965214087808692664620103803779585002356161016838015964403767425617084031419054642770213045499207522424925257860011294667897439342951844627544960797488912694056191441085004690503733072524651925448470461612124635696406073585337514588597475482211973660723535650909843445836299932256133962633214850196370262884740991941818828666271842794447289600712565868738167203436568235039777334364135068432736313023189167569820163366675631179810236398841646745340792054718839867889941574343351087017720502465156433158625521241455545061997644493017096417498040606291369362959361715653009557801521416864493386755726542189801959208417088928081500435651664814068911399920905451014962036064031296226224310668505042008341900780241042180160211657498067859719803908774052253736681804035288140225956207131776967908541193753350865867292528567037158218360072046479968337069255342595131118420907758982265810968274746347717806545376114324475342166580587944100867844066269317948965110113188153192550228916023659423685218018704952819246257911547351491382530346333984286959589320683393150679762542861666275285280841635901792724014835600446461854001267189489531115422383986545199587246726123608276306668667033535231819658128008884279062075836592993902757103363185746171394723830289645162005061790016857092073685261268705708780223924974374126457061612407166789824091010506687045612181743699389762798959836317704039361792199518215234687769628026564305694243714428944735892779844020668975009342586677202275246269190242331849928759041320301978673164042812614631039595316379933061996798226568682688286118698022727935407988345064958558448502763342333686746732603960889972602046805140432719366904542387117174002365160608951729291618442980602339543041901704283011677927736583382917084202385588797288372975349497386125047951125543073900183309456140809802661536634824647190017559253253318289441195063639945023148121222284833451264676609769190593752512063259675619770908959283163789406862991440898495565558770159639269052010356506276496278983697926622348515704584185371720423734933394998199345334147187826748111394998694326851717214873672587708462236130469526467367651957243448356224500077832845979113842359418500865966422746422068060940233389955249481119691922523776445100208312137712978807906807289691598631064722398673189763848788749222079892965706405650933886465299330516506408686960731804393680805373466829428100257044596671153440178051564797058776739419009096056409474580349832841824582235530918736671074151925821712054004866849110413634215178178347759672617849687398094188519022503734079276796439912563715346370682525380945275867157336244599031408924348244324485802876736084474490520785082716353465519065399902775726852959758652722460642645269903935270160657202502358310763148277349224613240845875342895924086661564068918314873112266505254798771208877384063372980482878967661345775802574120517452864545612897949670773301994861819459218988493975822220575660672521801630595931989114953766556661864168466257451365014618479278502607802531517005147101479172633248764560633538575413286308771855654437190269043983847583409416072943562704627362293960053417652852661263363527845258273693506965763321263360351188543603465495442774512394261290084858085187577396319456010152629942025355507961768823858767579161756989722116934024742369137286708945003039284809799077022594805279746126945516801763275775958428992709029097643694195261366881093579599356585517623138385127854657844629832494080639105691498477819551308352903590083348304349557849363440393985578240180496494103660634713516530271505983216917128499272804461502752444888426620044384097696669795567700746676557960203383533534876526265724238026164238981600297147485728013001128293261664140582946115262186860360466696702401620974904652544838509452303986384788977070392389301909420478151088832138612820455672689467231386709010709076499398005535155598466087639784897470145792556412187671959108280288785416209246949365893994192847769422155497984938898153622996552521664108402566288929170790547917616986624652269572405950796678094242779903667264483791711136754621070652901554992426078235781861590656678725971087268989287953115017724642375488002557299304141229475617825834323623722779362004041233064452514944876032123838363525092748593575198079345292447091084013223242327580051549255616373562530305405955910633727219103894835632744813016427624069662300504572860205799399154593082664542482732607533395527232559043769861564200814321641916106743006429792430062640637029246341604658707700366541519996675387418142991128851283702853392377082500099422162197223565464894696899449748669889272824143051648806350992971074336157938408875181937719298293290057113364849914698388527683827305815169920557692444787065456268422718764051837890582221295941158964250434597271901424562186342973392496653657537997252645152727657349535961058420451360050225592862725445143684959839863623304631324651131648045710251762849247416996337064429345928140538021899165374484114610472171872243022099659875492805276755445444858057216954889932145287499394615167730264875842819378505896674631022931213787965845120659799590041486892802313332545260511751778353747852148723742212524569768432480394715703669583667425377361436559757840246092782939727052108314964636516299674490373859102336050156918584358755367120872056287720935735114637860094416245511529926621657166110083767271377334154755709593242855213115889296015281046085307267197487561744530198105117418635332224115576606020725879914591799581472638614837253734383996725000336946984109272917696083671420570733094543161241298464240544169332743224598415635643906457991218994344604740871025222947086113235145693039417702250287747916342736405281931667476205795795844900154759969780949470808450408414221788961011246781448185339425112715048373475199340780827198596090594044828044417736240806788191646439635399642126560847133904693010888703468063765519819215083540966951122779296044398743125362092220672416389788974624678462643459379889683279594155065266579193364802097155311064734286091010706578559228995741360269106073556057492732016749089520448628096157783637983050440230193539900407119242644951464449553635059567510815295109905751488072854153670245428026274958752365606352281441617057316492812995770375898340157575394710207577880698621357262278774022438111524983911193734307369396415320071608721396491427894106904261978828093969368097736258006214785992536337257305311155540395809942685345259341491270645131281722533846278413024788195652901869736009791867865115520020563805286496233168919405604143544117310664862032417540382703487327008562906694129739331331519681001799701549937762682268126767577262949189903784302038963628670068665785464347199046513868782922959678295476724365826560594235172145296727066889504617073405483042725783625544821507837732381489701452322850439473533118325065340579773968374126367064950528692657456633178002353103090811777457845433815155277178466244608269383392686362708955318431311306427831923469831669512536691551151126297590852934210619781866181233519325635395729346359011323826428809199564336571099014573841615432998210022980659947415196962606152257571987167975567156257699672633769098993990957365761497686323323254478504959056598748091673228586327431140274026867989544314261813540744139491974901076754311840663500286758829592981560934051849266984267776091753873343253620273147373476379290465483892240768012464569438775232678784346189803594112698516547726350169957237868440357976019188014393626180822802532348199000939990541274107506639418003771167382043318524026184801979810134504738540932147240870835919000058956747531972863759963310852345455924446868057918327191715249808246304617449015964010647452458217151823961639481806912695320748871623312038277109143514962495370766627635406177932753849677255889416104460447201515336668886750033841212223190630623876451732007975991199106791130261764557062276741105532483155274025755720531304326182125479571330853452717554935837926330402259445271958448859394162986688422824828776321784356986270313192039321596128281549403408064859861937144175357749252603782064822092300377612104939318670070170554582386374768774584550798732961370786407815623451805985673446546463683453491091736089354726806279987250943182198768929379547300669101286455987699410990110331387589339473052309818487938095012491536203823619391314821796554562159569506289957898955789151591507190115043695146211932020223727857764950083980831085251005537962379395506864181438700218787769260798406276960918390062465080986516945041110590447193033752131566321843799311562030764885892520233673748715950082872070914411544008841448050078569875416803224297483288237995366272501680255883649084575975733818414320582970356103315618131945459272654114907862727317995806245052145530317776413980444758698838045846731442689837434497317901444459263377181719709230219208347390476597896754842304126890541699267342443863260661508782920285298361024678910671390232534654299262891907291869953619729747520749459506761199541146188820446965810512347887651715827875115863787894987752247353448637570241562751700442884614317409900747977032572052972511581245232700347111617376422648310738013812347890189930212194657538906533585733163243356981768500391458182844172558818737774341777103698716999114514103256285841234921975279963588044497855390305037899842480534499385302813609562730528519791666570423200341007161419696743002746912036913563003567152021089787392408740749261336384445352927007907588894501895800022213418777357016125101459375964999606538435297270525898391378538992061438103122413169236441619027312181777735842314447284411723779612381200374697847031817898965810006580906208631717747741128286547731683976770847279808986832578687429684346499382761373756642155225989484482490493782024602749561182950832534496662845065121252229021313190106146399009556992963870505616196067616242629886943209015431387138853702639986329669050886461129607955036392766718329493421142549680194301420303950716547534416810212472682276504857066679541142657719885025635514400441955617788547988692538410868030084910376113860070639024611111481654232658775457975870173596612744534781677198104488739712569015027739617489486645060512459804358965130242316894368805480945828967272818240604591690289229610793804837845987392755017395187723919654968172784929037456291363286306462291130789171709943213860377858333126504838368343270571252721821519829937609003527451399881860122256457432681365856826428650339407173637325484892786789754987700325423127309106646469201201455731234597324366761787034301578942670787300364766619961973484630895391539431877114239115138078082090343217756169087818527289662762997579461415610356127759123051258838834878724016316285981379464226213531489178216275495992652216722175446717997279335537073544674587111308522451659360326169395121433998928234575352796368704931733377656009907864944421120433827277801568327403099965473486493014789335792343401716564718335818980247246220539530949545453958212008778900013084545765867139256697088911106660961132013919838632172688642599113679039371057304615045265915364717495337705198379541278693873434572318317397263463795483374688396414055412599866957905061459949427051247082405552772648618414533791952354090726849254081552974423801834235756746178923743772168715716576879025929032988594411496500340972587331028880856695661182819692093821315009160913994624480141652443401147937175515163141062243661798103783789013471929340976728690811195521864201773231602473822180539282894661408539346015824556420730055092540074505977023644434926645749588412152369489306393573467822139858788963220766238215717197562319839161369553486430771693887181376183754766127594189134187145588676786105745926812905291715110794642166980550190190571346514260200230607385348813194147268214614390657110710167963220075653169599854949576874510583049534870561105987764187032936583551752190496148467601372912082453396642549422530396273798204359805066305772633506543546242357434362314156438836762197091610389561945050776386362215516687222846958601688916101428109560944429598689082873883097110868058931865121177401752501882395428302516396298883278830642709120675865980121799088073902487582908805348177062402121464372749298765711767412715993002936970768636249046374315036414362284584880542935263648391842052341133464970633310085062277652609518497545631500309581891197460648646726013885814832136063975225267492788778106272304440932989293778175907048792228290720597749796967941856685215521447053926505378664797279930505870360478573241978842170253330213044326992945651177814892753919253324163835949818030773785797755839522704559746592448840073883627700897514930974702463164764240434430233790948936234382363572599051077776008636022272783789573155976046258564220917371095848711810120374661704597534175545319594923415041340897543336644266471454619313703294579684374838629078699915165008169191863672910122031742382830124422154300623497285939155422787391593595252689926747739532048034323603758796251017701960497930674442905350477587369895010574142907466722537848578313423933867157762172406785046420942871757292918983001869677303070211308358772466475471637203719885412508095452960304569323089858779066870028475847015174952547050528534215248565762673265489442174067484204530131523304659555488327994659199401159719538805750497230871204686415376276380709664359563845120786113891618354177620779731714195033138538480293588132264057308813362733996140478265724299048042417292417260072330803192305464959216148916382856431928113774865492995632946111885701899282705520763518292195402655873486703851014251987049247473317765744360478862313587249298644364077399694259143264747166576819454654748167822613137661223716327446306458994485849108876423331149301810569697045558525312066069948275186719291891065930475620877644965095764590716048530018926272164724701594535492443038391419198721280890116891118450226923324891822282718540674932160789606531378985564217003301296039453648038107479474671973092755175876469420468635859567436567163858472216357537356213520156572190791079936979529667888511588781074412039236960853877156615612985884915633078427899366316291134180849474033475801690598783850737139623279763487661965107551267556158075230437871797344178792818160146189608740697968233403812435451342219748410180678716827922015071406549404444766250580538225775631146452500045260470930311689647657984773367033195331816076707189340997052655876417481766706219251694998734123330732182497670043530792881450410137276939580614961865384335503072069785546645932219426699239468499222525126468850283825191761611592444802766235532563661784554210139028779576684496886009733610037131792120670810680177811895238077244454553186632560384768132196100809346306551071109220976009072813088084041391575714471920312519090172466474247074798816801347987601709355908265330001670692236491574416414450464203846617113300031992510676331081737823304630839543290410139163590056375004497801182032305068050102718599521905346230070474944301723093481668757223338266498698752769070136179898728340809613341507517775721713869768735958389633280372749683800345608884371498145586656855781709161049287338158717499918928965640817563409313356986096345942172398878173170579784307284542625925693142084737629917475156576633264295481072256318780091733279674794458087421383120789015696292098248236459575358077147091992561928903687566737504682621561404317215354586148203557871004403960308012675540109756905579206316812378349944469454640329061292926353007715311493994553343080333460244456055574401694447854225809047494938451740886105931900693280392871322186788269799641552601521299807099218957863039138632614350311955633411226594024876706214895821950363046180539059071177787768648139127481577298809735434636485992778282177616046361463694273374888489629235926714962137870823511333202560653375708441127886047699974797782471929480343856810475242135044006306829098562224671868333585756324393555743236648328786383653487486489475467931918264382898478990424076396448013879367127351509203822889163616180305519486126695854809087623235708691395461621738725932890809975696723687375112197729469679540283005624025010142622290818236577371243472910493029389746438610871000747666797939321051054210074538063124429450732624559270908948136186323833988777532419802708666653945183744966229728710061175066108463897741827773519184023797978912616464869590416684668591500445785753750204276193637113074245149639379897152966542301705418363415469843988682176823846838731588930119732988535607762245547555616105296482983297219976907890841639593866833796646994559026278200524057014705131788984577942182307073968116423000594050084202495112402455673582278889355307660926008857077768036367447814508005738184641586977077410096909014958575450238180192131471042003816488253260270220932762583098165003820839349518038842642293615510674992378464311807101807951831031697048071187156401358773313302078182035067792296105874755636136802709650387291557006524094255673434611865170738459887662716113429467257116339127661133203230987533092264516018247866515509524439332382038691174561842542600179636611325315721627460076058317423160871082342766533597456112052844447298535677521458243368916264273505922140829993885257102996031469635449611975835875772390627778777277966190101744354702549851763194798834069267093403249633395346441493344411179799030040703141779235425850002647242436949985691425862056331472116338993412688327861619041320896771284568144544511892448102027371018026270988734119074394677574466138875950418293023289616185543850751030437499062387967020598408545449387216249456880688691126193427713885803582378109514437064922237526965586502779799861454170336632831229384784828213727838401100524317769821675404982039413704568305657787235662934364267217237549280173157033279437836967230151040780003032694163244222445847343871478443733525970171544498180893006379719807321040307878515790883416794695142511965095186754293098084375907490305292681024724137812613687338343135840012693931372676044525994136809008783653132500628042152958247849824841734056567151105808786743960301012700846646901857165861395804241620187541225120205437342066368731579700349325090474262924206263024060787055457331952471538886844839372450029768954927100818867363058092660210738633005861230371111535769605453514772581452203312719826445865146045525915919703003538246976875159403928799516295152288680105159047314218387836365285666646488342004994086476237789630587498726203394859238069969993303781040718667942359985316359352541975356676127122513548732448548189149919840171930136471647091640679395474809652515337585447035711373987168629710056536887008648972285510693693359122545649332355815149434087080082620550866752090845901725569957548502588136186553654185411315216746415128325468543852596277254088026423623762862684255260244886712341133642351628148526504278500987344869460681536227846704464120915924311470853121415062271459281396125310990732864046587703796451647378483015219743858540369242767129441940353604221274683849563010497797634552291746766937026431747524122413023500129937014645683176774947126022200581505328567185155419512609505157188204391915046233722837150262484961870200628808008694978401904872388190288910036019993301815621919093619856048690962475613761258141808080340751914138523648727446873216230075237733750293246257241020219869185464216133280936438036468921005407948154396760631404742618371686328319820569660483368875073119374361762313775946747923326464052926642864692476824791293876431597657706025393317127069317187353216506302589471373865238861752275138992632285027476600151204522608372379471964109379347040889981129374189985911091072494147353403065842832967637860970292133032403932671456355031318359853982030032893842553945798801345295927853120089873297866969210920103054648365400266266307439632310320632606778528683609705511655177980161182504198942533803914815813126294189896910149171792849166944487230570936924821086447023147747169698671743370620137901671921139673313990578545191223993441999100743725643083538810814352518462210092452882707287749630780357483873485840701653038174831991545958543196609099181376921266722391771710785146914363877611233733060628544676862282042232290914566868439766024078748821334615673608703478077809523632664844619906497319858308198239490895684350996948989681971421476870483892015768503454622755006040571298318835373567350402793520665423380259880736725991683241968578670239638013194770860843163555284998387735759081715371002543039755991499582203842669758813970785260082478872301024563988169618657290488429810254241014882763544633534091107616755159885479024792681929227397724189178048932520944672447197504662349076591873164406567895940752732938401145968862914706678177130310807366602660475375571663874254849598270007617631841167911688607969832341162144104158936230732340897391610477852670284376172055640215006692478818458167021064666370164669553075009693388193786431565562948067634205125362974913326784800306872187627255452751577803790279612795468144523865619308251446877059019472097537232431762676578239903599770444950372398527167811640936913740635118133850501544767736008303352911211490286926946499671582940210882229416382174677863889670498335469407312817470843785029795319332796809680631523551708734151657866142425674742447334515451106706510954817038516173802465159874455373806361887848961853848427044393254441993908769054804711139934333659596170404606821998980253533638169834928616674174599778999164441487470931581327309951953925937063858645876675430866517991750089451753708612071458635302798769462382894109479575332518217270835095646709889822222765451690379557580005726751253631189171633967198136057661977548911074408897034152710140025523852987884305352303640621034350601259839201037541090909501350850310399931238412019619479585979740581105469457565364109030348996504974150527997403850891490334166462567141491547399553601898485961428003229722131189675800900843872124833865753994742468230071481040871536864786167620673785829513971285744589779929436178922427246392569656555125663889803561232567231123292962101384027587415053281410133875028669181212246412004517416080579686421513815401640850055741742515436849571457840171706764803464945441189351137212463480942549163421242272047250247037519728450624930907948820226976333819217446148075604260176625959136856978423851291485074230642025221874651199167722217295796152921698728673913947827479883739661654152616336078868251679212773521302962600169913375353718396815931011380682302081886444697573766693030171432228792753034895070960060302089286904275903750908058188796870681182686277337323542095613640228106416462012638625827021951834366789343706049972706545383327913317541539437624449893108990339265162098639679558588539419401327281306985522670179883698468482401580831865438278502656929446321176361516419203730065748407307521740271045097780271497739061359141525977310269952112243785623793138194730512540245319620134723692090661061915595536496108209769012467139578239625227672923335964345445581447292041505687907942057821173093890011598438868847249058881457833315585977101216657542689163935727733921435603187822162630093806510760131777508208906006554538177077683659576046947640179529973906436054508606087322707778049937151978506550391974362706835634738630495121843309236594964733380987292045275708224843973889192821181403264959947529517392781770730624870391662260566681210119160125872945823540942002108595516108285311940921120112269338007067087703772433819786226341487793770643645079608026931171752518628786414427293183510414765567555755913464505942427509734123573536366514395680241063774124705615268334157795818989037786302163429797952017634622127389371494331650640661507018391686380961682569804366392551831307703651205517440287444852178782781587204428397491124059049873697276028379992345327386410603116355644607786763855275049898963717875541560354698223218375226653029679754663839997777287058586447879866183670600635063806929414306515759189698147257209247518386468190863575647787405426685077673353402398219934809565555226569453718180642968686932132720191763944168192515534234934286599299849433689663756770521027207935423285127441214838639295225756474420410295711362495648383997211176403843254695897952645337493840531165022222920299192459378791037857893179877189161825392502447656419866426987692211987229619754507843188170405572828748712723122053572863303507152721506562741286316058526652875031489525969254910118038469579835871131304148649587301520791477711043248498053058944556340282710138572512248250654999381015115411848465092904480054231745535774929860081470700987477714192307526602523590553627408850052027437963923278806762240795981871521080025784473309314875294066458072784127678209355148767031074874794666714877791668174862303052434960095690681503769100842708528871053051260480910681765761779871618176807161577547568443726549081798334917138361579554855684847748694523779520135023842896878751174801286108020570409172267594985284056696351332509193891852335726689391795497472337992977413471499753387366165723946742712117566615689807541268206085690998362605713981790813220939858196341539480570258686518441987825127644091620035708482646487573253186610950278425467833338312868438316086705861837787768476629637688127838661812867078835835677939043557049928420199869836453217222117750385493871009876595727394056389117501571179154980312196468521234115558662538248031371402365138401322270604984590529432363678453788245190538338649066372675896110445532170084646534552164794786514040898748439747851243244325322965918508091320852237351424275619474502690935780225079418231937082911883316036294433840721948206229100913004404738176147348795980586598716189276390516349364314555216597057933991611614795258822853619472670850081363494474776864051561044536339655942705717165035809094916549013600817815773523914174745497326062676504784831897159371923950620385038459602843580991414547339295506089373078717292238298803326389361411182420989766009117216250957859665460939482566546478730519324742391323402435440669696050479031967879580760071202836856678704487509479951861366392616661551081491736977491282737664845985148287562736885849199712703143660621745309414133228026815791445717041797093518467960621421672790636320433909527968788883321145080262180233868544962850352276356530432431456252457028580876598187946951637165454847036373486298954187267830334112510501471699543083875956862565076570910031132689859409550075200076755964274497468186490634664845624538042450171586396383261464894723518188412126506718077318910261083793933124869709295729142230139656724528893574881677395199013190079742159318175661990013098665610774337806967438934527834170527694371093230823978254701129032432226680444265477716402597817918989446679988869946883958451192037567462974910117427022206571601028534987837330584831569143445925551729674536607190678757930578123467840280132607533033236832163008134833995209509543764806805216861336333030065583106782462121369376994828351718830871330506825376280620285778854722594481828831042926381157811741425390660002547332304033092927819890729754821974132542764534302839782297025019349367139804016903021631414092832831289648447681631239964257475618022192669539186763994091269657254125160024732476147185570868429177519202389895521836721678541873622884340504071352938530456024071783542344732479483670749807589098777345984286592655761605462020382473603304556495125737209137191851382517122373030054468614846814338933512846311383166754435380626776583044690964583052899406328058457847782366295947167957070631481820166781353520778679360906527732137889312991642205907078868529701150624100709225085144018574819777527112459754938597476756115865343242536309057522291411178346844204414900365722737751277697854111275322994044677255130781374338147221097836835204178689974115601413434125035136835460614065264717436615727618166541956304015653017846801596840807184214835126335855356688016674015171134001235808106824249735854943530434378196031079398512516534100012365843060535688230178027620894947215712373746623756230889694893836220759850794153565787219229269364988644512621353190269920123397441733981811120762372311847091095812221598233312292003430411418979395386267945762542548387594390749786556216366685960134666686128829703389874038982723046603703351161490687367984741073804900416142403030488331682856574138816596403208705267656286678583065078228964725000498938172416343884702404184146537447609070444216257701908151862442846324913056243667501370643499461363542163523235883559628729767531636309369034122944819191912955269701883055099269561845772519096853956651381019835881287630044815700176628786470324173800267208232777822702115436631444839514944993699839534778813527371042862872027802333404858776462455353058713754381791409495639683704100849188145145373938969260475494881740623962624181713334947036695404670291348654342146825359920816277706094825367852556324793617021981016539332182165547087686770152330669426192763258014564011757359529079175661205772684715790676647285200373204944283716606150128939062211985741163590074793018426383351961090597231689929929839535128440013995257917471049162451728851717693164912912763769206968954024874545576694163226908935988530643015471959251235331041559162711082243590489921077580554499630455993111906042456576719762135719162250822627100264791312823176296990361897381867251953013453285573701668584336721074713153954586831382948961654621741431141183255134125578275924068525381484253735880431174134020482078323865987969622509101036350585829945101538684631272413217321091089541297438509658442607408325412166774335383717558532457785108686580532880955520508027170059096059447320761611540038785077126385441169658918969913525934543051003099702336243449261270205068585529008098693127756630742869391580775097477319810411936342968140589009213328955463516360604239673189228096300164687052989793609896265169823641232777680078671320234451490241593290738568505931317198512982773758171480087988252461303299306968993566520182862336873392790990892683860249426508892300310945424568749116127965698234579057509441979755988809552206324110216758565886633907958662323651930568116549484740952739718612850904778970602618551312426845627190958641105581779982796590026936265161212669950064357637903956105747865704805881211156534761607066371860357955105866006463869334521042839416197345648014804444629547098596157941362751475752230584683245259818465219900278074522274684957205412323097892310479594108442553662306137430583670828274506883295899427933249438820921943897117748854515237612592988312122698813640057814168790527434669971636224837479498924151777737503104268380174704884160910524699623740768853346716612444278770013027330962089195735602401411536588781475474086431630224677111616844317386877978852774619852625894397464114273667382706207005708999767866431214821812209835835733500597538544644815506706742467201396336824766927521733552860294984417342050860011102652649607734604790864128966455271782511304530751687589097730050692946873793920199797567061806074609706989351162959529776515476950080355356013697040295515518781412383645447282397844466557582275891577304952491450554393752867497217861299991986471219595342071531642466890465016842508593428518317141423563113057451493729720919902967906262340713572050375486449271645993254270923144201392671851358302891915880155091733692592352231782377999486411653771577521778592954358378847046301813411791545414132679366793984185193414891775581532720438465718617551727438670959901076938683508184726578533468082349101205535038305940050326285870163448132250374738759552534208494503442465863965875680653276910819193468032863294224169082755885457564707557709010809164984148557124218314590699036881584842495856857377235114790476943538000053274345970115690396758393727692002265582655493375791863009592920801371944010020555008249247427582336669451472195654945741648843515393493792179625372062212011355286956373200254599908857586502532981169017599379061021449715216607104175396958043781675169021811374064754348282346498431753668426540862885708625811105723957039650507433320223540193914018729250580406077727781252288558901415812404474288356198076752572118275640053006973590384974967808539444811038078303943522885538330029734882150520159399572189342623751526822784428090279774103645119468387431113400181398094776271179067149588691308149377844979871632699825490688725671093593159676716301679516632067526083468164520936143823757687506752720022446409718929672646247592349625230342867918083894137205108155284209718990368859156132993503003914224872755016818643977281849977013019306026780038932143196865397541750440535691210409447383430379803590658584865064698635120174203912767614820611757766302960277744180693297430766131140188137043469238941466312441666861374571533448274291402803679900434740434063442528824892335313128426069798939086340116173561458047944777563864897188770848040129307358104153968616056201730478617021285983130037689602950680046517261714203274960869569353987404549528148738419592483303191932691959572564312912515615173543537807472591475829991208987283122298122030867995713461762299500495011187475628570637078621863197118408970757092740900787788596746913994090268560346403758319273313974273167945661364075329263387225806817324600921472521271586710363497216012510521556499293763868983664905430608378631712700886733455695827322217097160174323423217586774964190659919509774678419700913565653134084039628046354608430106782063422908470061019155547085103280480530297590256176507000121238986193957903181756553218883453395520354179940066326521341498319431494464644884063179933327380583303171772503389468575455222194951622511582847916014197690040930823547840358524895563266972421323460785052785858639685838407088452706838066349809960411443269551357930826854032910775001903590358696251042406952580518979263453145332322067368287853434166666048136108207762005579987991621155963809110632324370382247848020912056189538935953507517625606941619878341239509848379252247720245158266771002487606542163251278445327320346846600822196475482122869182303778366658746953761893337523241339061909609693478034964643367277557285918454517117866501942009827947643412462527135567311744100905311160125574007229947299860113397022521816563472335827405602793201002705963979027484300403192847097616921030788198702135163574912782531545773798120520459399977168726198321163724530333770473153144497781639552425390387870018470364284998634858357306974595419467567735580785250247230243033097104282218089166050396677178602185775524617505652527407525966074512880055344485270464629480477705546478327067045766887688699007302431182225188462166370640880893074357762756165150166689681850210463752404622343663065150333286200252896992579637793097945437985964397652833496074404961330371398799022576521385344802010261594591987157014403265434034038126561112720148373375329002867837784188058334380022561209643403988411248667252395481822465631352530282472566964728833776157291375586520964032305786234517153024011363915193071108396722042090928612042883048139351067308962628312038504650462679845065727071031545133952527928151408159035225512432156449310978637575790691906747701471140168254585880140427030168310569005371097877620111807006807423798088272461780966345504979720202550319834010683697306594232962623913171026376933244300342651820634508630097194871657408081134854134300085415543445165970787321166746029729849822843334519729851382428599847882666991205437528473959052732797671888587488559102551130805903069913943280677698563538112669646247705246394748857006838298900522756454051064262555377861237212033689560926430143336601417866912836373586834095233710956737076535142176442047766124526502468385686110775603521238524329447860266192650548172572878462951356772394135804397439059373940041934097420370123283896066064532614482051982466763015544549610258259375154798601568232096458876107523602872172321301386956541283568676543599352725330839419400347217647556234087427222952073596666505423737905266769736702480483554021444238686591216937171655588217092748038017454169466505741650980853430998060604773894348555031350193723664094764697840501795856053502307885662043443427633457699644087397218830989756968766304550439123606278376532828417794623924928877601595321905417699543785084028475394181847216813644603260782381120728431581716646677064022299380538905635531966872471525809431500287846683567115361218804131845116291997957357830773217158719296085414492985531068184595054138303549220142929361955420455587504917205394535217162917229833642080398241784423549112294055354179750857202820756978527034898998246703544614440894187667812492692435434474208478601287329315820553965863312770986362898303377063563849563834664354000367586336755861786823219065963880683105779669609162710608171998290355377468914131503849683497692537169958822955025667091399876602131863665330789910756339521069829445365640582526819484273512636610610464976085781422975768327395470064376269167676426821150886724056973529478924576150722008909614488294494408211776499531130406113572047556239158919966889314897327303380687075887736591721152356378538402649674174517168295459665976985027785057703719424786338094064322309447753065600765615099970391325650611114992903617051976697166420693359170386777813701575993476586090364411747958464446271655150383817813109907304953327232813061044273623456048585183565208796952815958520107414735830024581750744349216121757558797039353072848859285047207677828096639790725363174720695011730150071538063496831828828923243306332921394624090761195643840120474225230625511387471543840142228352844826755795511675017467331750562725938425510671128873288062180349697842718892737834338510081425000434250796901825538063576541369753268275965690492043328048081930924614444715508954877640764990958955347376269816721658058013986458320328658574918695678431591900106985321065947144021454564653552662301688043542203980266758291310881414505789873448219142994687385592356854874789485637607185707291675005745999675358272544831876121111159907329178646204005801823486459826612747154492635753044067539136003434209140660898787871069280499014591415812386150435912177781701379047845293923646215378119933850159359456498593203874812702787840771743730216747163659009334657297396095454978442688130941364465871038974987406606149950685633012687730919043886209312197982318261641651469946496672354901690870818696412397990130690814771868032820944354583952197741134411219584833134002761144253954423919032876814039441361893459889615822275853204328195847968118199349538669773421165117605223783431313208373343076569124261256452890671640818319876039299463329551023550247240652913553330592773765265180938931988314537038933481386492937301159618549839658668731748118561432269576240759047437093655601015506590084179922846386655450231308065071789284288742805088826485448601876443755999494195143934606380698290396247883453569945214744333087096017594400996051500212516276547189166215174793044311942786594264438654919125688307415177670476303488352809984269095101260892323639244662153487786855865399897658354000253886229269614154034525597463068516132454390774933409532752639153716084530207004926760895013449913208762737017466319562175420036138684976000327162795196252654091081046576347611447843938111055080957548393211122591581293206193192442997285528820922567228167554915684278291216433924162097124728103157579285557660229154203179232705665757818513783343691077923409647889202668762372329976776241032389441115781519388534676353187833138408910111756887753644087909504845247376791214116194942875071521638318357144474801327770369137355721167383681065506905807587335949435296551594228618076824675736397393749172522398570445146277530651971643525010654990536864976524986223152343641676228839810476250395071945182326002163145920393032581980259594511021325588894133197241659206747301013146328533433550650176214475287181702387555704529204689734437868104580131592941619744316792440003653609981453567747661986168159067762326428481289540994898598365845453781158079402331314288354024592926777352169392352317995501395563120760248571408051716554116311662151711511702582620961012107729819157423170292707324076897552600228611266179672819029393545690761316213140594117441048635267347291502278846730436200293714087251535208895059896970104871934660514173737892307066511105143919770848460605836452800750466881650770402711977701944660932453547146904250196876983341297560425533465096567910526111009129179890797454947659175167265760099583318555223972578314526002666747161763851647896026144947074902037657240327216766311234678937628803064937691187298600105733956638122576601174439537677018018883036644598665213294510132345847347562219122465817784037811511972323697308172336217471301533675415816926679006494062081076154824226379323670257245668458970349385086281628595869993974465699471270511877451228754067676209661255702283855342228958760185892003741022589616074019027889560327004029615545937734236897373315726924463956612286808635875025541640510603493007218096401881626645192525047669696653176724732893948205834115414305716257837762059090024019076819720841668229274895931070435597470339572404029150946260798253423094347899034878353562333799151761578967209529094671811056205570487607492624406968610792192361369260956172672341298978398233941201992471494061059115232141294225329340236845732670831599465875098790897324039258644115541048073603657109039956797642979956940385232964725735321715454318116594463093533926521224967823089003012737506669320159289031866228308834057650417358142334205054891646023176090628647293611066721819154837431519173834248333281243075409615685559134198562554754094630679342471199995717574522952623754534611077593247814994493630601333512903745549127707439801525282008028030889542909458447114011353486530715740313034536658968878777772314861091578771798178173332018742264173944615290254936950542063572667350306479459097743833245726317668431281221084116250331102533100586958962483821585886213935914953683015561975066763629953112527018327844549880180056842679526414968919111642785136533816393161114701525476204836565475812605216163769506798801217822720053579171252157957359513690211674927825696373431843934821849419564879598656017187652700921258473758366730972943357923387667503170216708880005450009899720605764825208759561949102090825412718519286927112466711938153034943223659280033365001285531482715711711875772762188581158541163753712952852707776223570200326453328702304446479802694309462915958669935323769415546232112422495057982098460447663751711744431681927690289199202931070688690066512324359713834562055612611746304116839479040452318363589772697498326628765175086802878353158394704738427618878099966733300030690323384977225521938509010745315502873683408330347631518410991548158545324228922300979613330408545282921191483574549037254517949790016196879736150605631281280202525661458159848984527957055378302267726106183336824700191320228367131094468581423881653073689658129092638192983467641647240122716029481114304116403201282834120068394783787948962874102538730492675152228127811187121932094522791645666496377068370001062853251172586106168161063740453215245928931539283306153932573801581265063193671450506673965181387111046638382464402447266405482128630556237403198106587437682580468216672527916225403237709760231556290827104955460453936663831579378720086894243229811522223472582272286851277764015358493646736866732808705025103033061997592103030491333101952692650387496379130846823565006677758423193896460494664477721816473157775729842945800442050466536835653386096259333610249716255478529465071576526265790566907606515818987752845195418698327315447709302851442311844290124157291859315393513768835963576369597735907267694742822270592572855073286094749903849482448471609232223660658305363075825663928795193264808580498792654361431247668371135756228278938570762818900576086797767197490905436685786194863418151111686111730000517179462578227631923115728439484115903563018225427125341397520418650660525829785706269502878207587918176818824585445743109437628980730102170411479160806981850528028280657319551875094671280845479320816543327835423989277476944031265392156972677339782518143044683548594668396259192875213519698567770649535948127016769579346487433254351825219590890708493825906522109579587388818825640958441476777671488081903986757987210422690062083764355195866355138071910503968125014498996674930730707399060186819805170183059946946302314528073522427955453159056367446035453974360713856860909108908443307365314653093834106451923750639358875548547553611455066641220921876601811952470363934361773704337700472984638292632126101851590756649618929730783695166575970710589924557454183942965955402284447417119157737942664151811056486211874128143364402185167169443749161741163952719041350769704304243925829968386770447127252207716532579160437311263703802507325565517831068736661587037753085689145042028931773124013633115882642474436299550528819909817502192195835072271397079795099333947619603896416343559630068331409129869682276044769500951764606331544021356359453789660899299661078016787705520068570945338421554333459962160960731152486621397885230410983879670382663304102507272349804984753419367412522478786557306841306116304752067262810826657267575370605017630602241869753954423967829654979528388268767894536079484379455932914860425217233929635662577601487913697808220142878563899188074862785858281626142968825967049910332554810588746625611723103744484440748204693035218997129464524396432014947708925967520161254173785361095401770716885082570491941490760100009917155535858793309610360796074711082181807561707001377462294400647358151331787102419534735931463457088593718790559418755220307394906717652771981625762885152802148128144863515021368039270273399614632507405985761715358126733429605958710755947378985445990579283330567206527519663249344272984444445339301118150892381454551302557981890597068072892776241695944238470766849619515264521054564561764667372905007224346528218587097638531758825852240020226754587666420310161644321559916210929841279680902559210233748534618691922373046812867642800138805537586116993175990189149113623254225196506665308351456687534706633250024302932218268354499240954915017440675096324151297685771829688005601542043373470619618070740855378416644178843948732632313122055489434069352561169791028761780664649727881480468366457613756598215559668615391059074395271824559790251072673071651464574598907436868243792043220157985913923019144932993749164502011343067136913473498573985247539128961847322798363540376426304182198311165718675822478239217939327756356705818846362962062819231944178844213091952901640721733163112847671308789288299158453305075211993819052480366192403436355203630316844050086904741546090596494705956752800241344123380088731777400779236629817779208653931722923714149806881173714408937315203353876031419698673314698740180969060389473266120618719874818884944194133281620162923947734546948940163136687025729809647696227330099972788895341983331696370858787131859577454482145953537340840811834806761043850367461644604784988356998582571187279253441998796961897159263110226418187664605257039023043801388415631282298899984327883679116287344848501541018038227412020424437588085075366043968532622396629230959454941611113952621829599918189889258827953632789874131363844746238271813836067726619582740724458362659497395491071884744121000571966142108117704372762732477877156798366304510702107277538543525373680004149929831344042654373668973233566991653738195011956022670452218812992541262458709985380165184748015462767459857435754963484129437506012051826754170311707013580660603237317816414259767495988586293670747595095916177482615639164932072756242334035711693118816002838671030302976652030610175110391321805994101520096033223842685833850921256336576651053831712720970391006868963274671161187603889510055271086659936048191663726296314517156330249599603653913422578395417586173894606461489983857157723532758623213102594964540254360031255827572196396577440071544854130029530196301742748405307810304848025114257760354380390736094949399610140518584785493956741522970111697598554708147243376871879893092679759553148870485673663771596644360688528756615938168231403433529686016480314631564996580265063197421564426248395646477673116059202079421787493855680006594236066857963420859977107567486274641297158932895072832321759595650831038317616251770703403504033543762864194801186323097747095611734330621436823276168634434605212002792345783492449938586938362120188528144658129039349952933839065933164255717422894660001076808669765688396363257689863256210499965239712571688554114595297440000242597336792783396498452055666888689744447627295477255092475164010633594275627539995492575314546010832380573856326187660145722808422895451295421333454597042893837617501016798965558788462018870614673746324859368896771997923096801221830621628950076369720512623642331489498528409776183166448923052875208068747732412445285815704595300774303727414055914499452567864272319722882402616247773730758551674016786653181627588174970813371779504847552553556540386984483156019989844824155443356301471673631083328853009925544923815674791528109132741190122551256666073159233361249824244587025270309211549912209927751093820612065064458275778071392474152579081529391444936174212658883366890577848457645026054229403110877385829411945990301970874253572691799518960207923440228525135887736487852578627785153695931324365317122586819275174419755402260632331452398519349140643392796150880448962485166117367762930732218771992106409977612466376685213167687259604835380440202545411043506112096488859128299282763481229533958579807505847886285146234709037715834147259062686662522656203238296520815192498955133002135197256112904396482481572235470739370617593004009051954971883447199185723787830320327278121595736628483661006541681190074517527371941080701773186694739861359439315283073392830538237327243944032258571130666474552762393488724308150929222998964888455634841253784711352496952197697835665582118233082261378958670491569793793435642120194057602137258990884938085962177279004780410488842346184026984421831266590162524018727794539714563730806878739018125609554334180628567884079562790413404473436031611595169429075934947013076137085572690784690877817659255706417242916407201710656406803901517353705768472848007074998571066340999627002783271580940336869261928655550266017793038214656373280125116040051757782861160593124196290703151106900237708948452357444235741224217111181488326573174827173485155202221860069891331226705619670759099852364969890212430918084299712274344417958361694099323362521963390193599973129349776822377660933778511587005049618095151326045020041922159071831136251544219050224207192065394675990735467022322124032614361071292460458396533459755014976688294531494000646890058476613544047725723843822905839082565374344685415935634965713147961332236144977655029704819209140783091401032501571229737579107501332359164786421498804424214841005668571095734013122259247870166369886348423788419790254090072414853500466340391104342166285303975897473094602526694291831282959505093390708516470735032497570959790103647595600061412445660801986723164888771011542518358382403452507814819599866414936064313727998927656961663129393056832165407387908359459029975262512492691374230419555657030302515748742064588412297034907916526828807326820057843970685885787355140805817634249974177896564629466102536871689663969084800844738921919522391262648404720178194578053340477719865434814416823962736509439507305845890570712392783850500739452883840422639217298260569642797306095036464415131360934772013603475127257758045610574554738208768164118231511267369310181580607607446628818182013541320435960499305927482527660908926335149528440178466398922517770967682971816964718282680445386673686827767702259912239788544052340611280522725329909450928667331681767493809508178723026062324766662973695747786545156050405291785113085719570668485037627460530891614178299533688264822904378437477483329731085545173087444899917432174264149497751955154562158762290671792416160146870873065239507276938822568357422992138527264655161239816045258125609077352202743359734099826794271902164966181585787211970560253567326591107460235706173692679526034236746429039236622223816220195866501497685950546124550357667276320452733019890616319852071926995067866085312818863725966860992546742886223894768014771415649814293899236856701749153315170338385220882154119963575623751951917099445721907273471161052288911749320976907478948292820693330079770858269569048814051919090058756870939231145427536992061169876311915624589948757598442444357730504676768094568284589450745149747145574053149656198568858815489960966744621721393211717771627749876526713477513688015446131847091336201286435006964510955403499107151009359577442407484520645875175520084020580511233198898422766187473115989951798496827616029379138581058651547425141954708615942625660135420343861143970876215542423035347928916826128622073408348097024114672218305708389306911055998719791811889801527502073255826575642696871649910668916178723707501418806796616402831157847643592647259981116677643229761592535885465697854387284943900917600347811269276670689789921901422156015959373742988041256346831897209835850664220436497091395001578184565644371810146513320721866717657903175277996261953845981919572760255426070045924034892082447797775411177651296281942268737211136723719675239211178579606779628018076975837515291951504999661308267722908141528653802813497427078592532948217526199270464348522794546173467812416604020777221516115670474617057178980786511336153515516785056397784229692066821929268918544584493877287334299009775121421832201769835996545241414592722981667876059789888289043326563130832460578813527540530160823443090468083928271412525708312918047340044877962578743691962278830279341286318135267874057226282103927260361312672761097001268911786754228730758016833436932986410122482000427207108009559101780673817448798752776093291696418740962412849312693526411794895950360114778276375412254488037589630510870874525609342501612761293901798718685789850267642250346499544374535882337907001773383856222558014200730249845861502312090603808950489348529845517919332722886517223117005181090763400924494964672063824992018276594891714268141681282189660723983434279460830735992613824210613291369071377005557104903990091210155287835692586425220891432045598096931082863823976290604164728379159146808268287050959582484604637437269136041998569885798666541859794706440846509381383988296688862906527720113843183542488045214161135899764644156953025225220943167307947594783075319205956356946014562210229552217752077196690101581912366733999970764433406139423456173997339641210644581343361865936304309179602757533641535669224437842090524549749568440191573867287920322019893775362117878230987893976169094876757470307903192006006421222380110988433609575445805587523939525262714146149233117475467430105250730177424085679917875615808066277023391641311593393798414822974122424807783604565863482450924619739580410101344695758469438708879766063607956956023101763900653666605904615372488126722876899605770894294823846190073661979487019015985803359073870147882897289885101746669848398230820043516119963319341767849586752270390127376799963351635156236776412745990739662300762909942603955633544667745951997960209866510967964199710436329849720389571872463823629954138037734474525294947494435171079563698481269610024848381723765843422428036333772005397440364191567448177801752731152658781265855220199853816714315445366233210326443150073540032595957782708671770892771715025546199167854264400219658845593390960619736204523635886465261094205664953714383868471863913259563042381961647290836100849799901719867021012870885999582648654783844752984854165485081989034002403943402956166443390477618651214072112950514771176615439194866772902689685277072219262901217306094605951820528078772034831593170196394129293036966087500883925135412860754058601499278822245950693308653044410191532646150111181662109436848400658060927837150009905461718819251497778043624626790706271913592067208118672666580945698295656073980421649052077724529540589838922069871570456703319137180895055810616647389966921857403235359427684267416470721821547056059731451779178391665061971447655929066471426008091578955943547335097369727742032250386605566420767092669143243397947645563129919185251282781751362298090652884030638616270416267534837091465258840983299444020251280148370266896868623742480516638552849014934354597547867401593693381014392787787198495175037647599167790796530489280078147455885256701160531282262235501049609528666112922058595547945241111087531947468549186475466579502111006359837121977058279583427182482225914050022013239125449205359226080848540969406409940894203875077093041321492825052253734686214823504246811618888798813684056738486946893549845153144623163676587776899648700238835200492275292726222597053133567979054819625521035161075010890655919109992405563321813779555321489770555041453588770175610680510524154888951423223779714590057240030100361113382325845215517160714505995030924707173149146809263426066342647515123355523294140383144121982450416043054574315416873912773444808303568447616592792433687586595947879710994004244268554324194616341628965422325009054049016550319305494884526367526709478189192659933081817436867780142166337760830228963107697896931666345835196085897785860265278485985629831195219572590723376346962664597642426824071472968958094834320920742216860833173780732971949871298805052306620665897857089303251184379566229582642650787634089231413212890011347956169103909884538246060731833845620201542349638809361436202341121774089840092484724550529457786112499518377075854521922400206041624087041230949735468998331774958173775723866631332041776047731867778418978358918527304402377013177262740344425729447375075571861585949445524891372768013316067239109713417558593221704184029360887101756425276344835965616972890875432620624554395797279859343918109096125681796508371353626449765186367985533967549480631606732310652932984192776018324990195866063742478019981412656560846867365823518748139513197221409961586270102971595627407859923481944517091350324284904352669374737459677853548345135533764569398729286519097036700658087638320867749651111099930250508675077304142008364814641421153944188983070620505024991971611723609888614370275065951977727116171270720378364730051221693256044110772767426475021744720704454655821268571254257742626681189949265426583309580243668482312851100596204861067414969364099632689523310538102935906480127480806383500912504631160131341659443335814060081534045471655836133489803424367701076059514422111821303030427855491712645898304983557214232639970530006810408784858190208235454352346493798613673513004748406775240161809841776157554862376673922480575039668034727992453055786845567885948423398981010925217583917306740924743052479168630893642505911799903574249474798244834680946967308998858431975588253753590457791220856671828009805799227282053913465864873994709753887089117152588749844925692321106043820373081542108077621851080031305069576678215245301412198703842555611010771904469599884663556278155110584189069477427288103741126642123755341314608177717766212522061193158932951839535142826548386912367903269338510260546423527060378991105387265412307860055772645483601769833789527787816867834593371962760415853668814600328316391116436042963645026526185128127410043390372659056361289572412568981070286032906636511972888562367587845158560610084196652383506616597513126534200969507842255754087050684434372737088290619007438180777147202387866860250575699854332575868811057382585613553211651159155445733489877089889759837886123224963184323397989517243783950013052759136140888482220649453673371577004741026341174577577320907350134226247082694201049332290730821788449393927210141002594932403923399218112902020126109266791133647710129872938969911513754862210019202335533481120983812782729206710420200478294533181977525512094813311179627315141463452499550714000627978858017899401640770061712489109419670777002517630196023851271191042682147227701719606673779624775392999459907593962185487453174168295799816556417666321700716614301210902354755056475613465351489378145681317776902972227506201863045115059606029531367885363891329612644292083234328607485893221124560111986573414587990347572666642860348719717182287764331183490855315342740308425206474485016957267627395096227775371141634133685874866333544753925027255425498269068491606336800569178424187212203552957279417282560412173318391705060790682465334262562298036002075065916381645392804956923227188569957090526260515513670833694789223377414596417050887582111380205331108394386081731543426102860958349251529753866112295767379986091395806241770362838430126084265550091850829234284808609283613369453945546380375724818707207312648712082125857667905491114572917309428320340765748714287327788292438205469698282781849408806905080958014192135635284268528279739043689734270064676087840613289885711678759514805198132031483938906982319908275434746434190808064724915747201018743347683537973857603285923701247085124566648738271124430355696829750416193718835977744965292497326124415285386984372840693123207792169253701303633291040484239725839818335562884864083590424544965998223125545672510076644968364590141323684397605377373953095117342935961326985849176026413501068697193825966400395765828118289694959037480773722950505746070080599821898493116795062905914562337467811710209083046608580004604936203274977745996897290278111976737020504559561194746712489685862991151390682743987586288747957952771498850033845448895441756004093237508291864502696256426131275916726098462986569459968720646745152711675188280945447815399330684895228849237974857047753891124316503505210323794061412604992017144837816377215118133254306460636768408444032918216532576492438783293565878591015195076722176144670618414529405846534378628018360327933097981657256465665670935174213268121367651823158760193209535596667332346331791186909866941800357318486459779353869474003467106593587490267089536693886358116798784740900663395139342815312713225464441331349075115349899739207015442826572739914323442764460919481806076257948330376661838608986340430738598991231451646397562494300897757068585587198639928471058927623109311636611183330805445378262768352884317356104014730061013522903598978237031351537203179839725984009584616295779998994869531208675899577242672113453940987122932212854279378323153578069413347972564430773984254557725735793913590918451221194836049882795138504672663308562634260535592482927958614040501588712265274357592948954928793440695317918152868995063235926313372715736844064983858310837733832155535297446667813449291376920798882694406894737686915009061933843167251329458073197242282820841397115171401493618503012406165130020300783311529952656435744175407210660972178142797765039600047579346947269560431231991072415386049606534874887102069395191451473221309731915421883930751833552692841829399178926407031826573756541432153472963509311875586815448713814151108271544767723938291542717346114520771875954227486049520145485057958730503835158592997770469152775233963812703678043002335801053270738335707557405711115914804326500823546943274666880571810956587077566118039770405446036453332849537550782454379161647793057983439151620520350325976863527996393569673259568680261568238234318217119607976279631354842272319417820033770123004422005330017464932554805940551589264380376714138405499940772320154809228592722255669364042860400815786289530781768593439746564709777838998509871433807066642905984296774602298658082466796486484957576488557774794975321036298629219738274279683840554233737747122577939134484003474724579210961964464918991211542277682784107106315081054750423992412969232806638416281847057340592217896164412805794273201243283973027388562492766035344432637360286288444493267312247918961099950187918423950368806823153673855873539959614922113170338717788858328153132058352651931174228973280955096380486246545162739022799008831307404380693246868816239633666906145955252515616225269778264521592068556458586287122368017058405094735748703541823261255282799378687947496876111297342247183650222776087013980707693945202412805791225643600569748996909888895432890783963064428652059370212026280908383598557230701178783539962497444141814918358579890297704380814768051126805963784818325400724588918387297190308898157972466691243972108926340639962165830567497267640490992583578536997884017915750723717278892384540218038049971245033948228737728827060054308964815500506125915378861633771151690001438812248993867319120151705329541146641672160222249751993896112522637630744192888591883339854678749724314382196463492763230324131659184147501045758856870055541025788477953736437757683075804115144951385731911924678761591256787542374093290204339663403951287036005119288500528309173041772527917310113966421794449175550413619990281531680837219037266500515799214660504439630362783131626396907308186434241153965062078374950977732545446537556969734528659762632647939692427819883802681316215005869201553206795919838564106885551997429871403760887654042439269176377677428414005880003466272945452957863772541414106434335192726785216645805868965938400171891388757904900441532454230013516536964819476211179156936072084334415039961249200315742366998452482528596622929134596641453182720024349730656163953327193858539245423248081343618615754728314877741630521570750492795840377327210601462666825957610871507788542471208688636628009606992984380196205723841317726975152773208873186813609354344033373005192612982407787105073670769722727720752010685170642526254807638208682656655694602834958429250036045412416949959407096673209394315331646793442899631813979802980862657059823910284970442313062890245739584802729979434165613500178568963987050403051175713843659853341741826129504838066831566456440121060098389401612633128551155098146916267289182681190122726734426757846838051749449408413147213164860904032312330019104881310899128577664731958030259429024489526663892757374003166597036642853897798593193724108531764628547762949620323156456882212152942050723593471137934806741265040487819984718462701322245190689347989288563096919946206377126268978914359048116379848395882750544745451725754999115184399453357469475982826096525596072224280803378395065203767291013306626462035011078470950936275352872874740453691550162580063134508898875527748975759543330845520275151574636767324278939161594553895117267887943528424624647049023585428917489079032927472806144049872676127430224716797619334597824805075415615714184706657731615902401733098305222976490048797016505791021262423957448198267929567941215511774911814931830808752859748369952807541911108749398237494649521038693244660328162431015565195954911622158982603223048199282172359793567692655800086507708584993978385764153202962985061702228231193707780071513682909412307666905184697682287044316363892773886625914557565576254931196763272504443134842337500406503557635315191444251611908600445658240211469020591132860332541451643422472382383007054610020730179725258825989285785321740512995233982012338679765527307611091341384689167255212473730115638711556640482275118744365676857573250724575620825411043736177457716528650223824623997401965356426554129222483980047197833563698971538392295719520512910462124405798699869649290941218091443011874495778576570828018602862643479226972142773663464408906277569644480147684930975361192275675205094080065204871231282643111596536472318047764899947489673838214076100935993132425483869492140013127575928974529359411190531918270104506824738714374105208101424375854726922772869085966116098070359207369059721616672160777106022975961357621430552030327748732940320770635327121207201313582041542027955467891124051652446540174162672135545530232522060592042855898152073757375121482786046980728471406930793231311780772842147710910344810466654519277135254167079597720775230892709285462487721534230615822936839847819238474716896355386920697441873344167306392496094992618640248338260026042206718246674472123381947374422398785951237271801757220750279746463238168524548428782622945640980417111151714958261414016917720996534042903012264117902551292971557009026345108577487896738647913586854270059714196221734974392949852707076872471878179092599656341381748287575045573639058349231715692116487137172201021797631494293743694931957579850288754089924894255417901998261704739304846035678022168942673603488592105725461711802016076085021428383272789360190437606859355885032912263097837355184713025351507782854655519477265973600782407924352717719389734284093282965473248312322030399648814035820377567273759101023851202836458095511071132266956851867393408271989163127042643088791400484655828556108156891067363556253812286541461837973572935825716938602805378431601486782505826634037698970244888527597325463191877990495172765597790653451937246781657293963872148412647340065352819972774238374289444590866682816655933401883680424374891180072406150422378288352426203890509048389697125001880601118960084226839176726088851591594588698665366144955733056564455832811338843353344642099836663891947836950094693641255007834810547836404857673937789081163424378484536840545707381490871662843087023239997059498911469074189291250860189749367630095855676178794361383285688858134185454560447230358393755006477196006231481153740082644682920532635520948474386541154303680520132135110031686993391120871540447957596433835477264317363894798282971254649343014305207153041043858669667294634615972524314971214599231218876262858595842853316930487080983019629930061659335432927897447764706564391957221981726694582858635934216624546092302355871249081761181031994676725331508832469069960368976937454434547964298839553653786551299562642264239680534195922390075331427963524374458539457267062396983638784843610244060358243120224242050622138340323743292926202976441336371438951233283197439751929596850084398985749097567804912776192770282984767251605730944097934683237795876724472972594109325257456437183731844703695189994224917026174959008646811502054177923876645328133032632168699767091774839903819716476511052042217884637917649163711466635640810158355221948826673963001319136724038794646780309216241143878672153888761245013679713831167672786899910852506894330214660622028884465366419943978133963292756277433970525495938171761109537912383218982566549526963575369394176146059125077676254203886856449119273457477350046246785704640446170596854106009319132244686311174880104380053905782846111591894781977587520780979190620655631418293815778993598192075826389506011076178147199835624621792133286474932276779198845828898261464446003025348688237962386082197449474453768074549596810363358077640635474447511168336612648823428798356982683453820925197274867772326815077798426349545086027050682617876505451257519677272418732677534726433235384885652383385525347924815033941451011699766970594618085197961256395498139066825096975168475336227088038509863350719980515136073664387464713235168258473338031459274927465518849037345714040538591129774512732292322521681004199062315651316052803092852281903254208299497907502838342477525177736292340494978493074272828589262657564894773207564974956444781286925504390082794315990475221290151014631804873867820696330390612284192129612185281859434463722373634802697107881595853244083021587086498694213608205902614993458121979061601175570897079815535147214516249161033176208518257842441861021471981274663697275977536600402579826801630380748661037384388128762823926000074229909771667002160040794300896448723148248426438573322510670692023572186496642575517566506167619414411971421221519485100652784174812524336713031910313130467778585259759911872012128441444468209422019891358575473465877118105919480825546812429465818711482589619956273665675946330767272779957731163117255324764546434318587932937937258399505785702760412333038638594482606374862150238427274220255280772588752190213359669545115621333252594726194949250847237975471132036580193576919635625772943207969049343986296686013853911495473039934697861129898899097601840455759033261973969676209040193754350848116749222621207412817655296456076340774244906320073038898860576979294623242271661683550823306697141685301678696268282100098460999527819559522292517703563074788155083159338464013807266668068544055547442930414502880949099300402084752291847382513211695236407449258884578978947348544463248417067233110314458977020852726381832710999666024495699821521090139815991868926657880541942351337171172747967051445443873254999113797357560892251608499275007354119196338751683283310030452455909356887597523407595829834101256557097764252017807268029404477183361103885972572985542775518105415892462447924621920407937195575668278905625333260670328757007398563012139869576434829651346272728782986234082233395243103011479859593758687506675084075394177039560793224729660892264799881294581515322711622984992388514722393161675707640865656337121058470051125346641158136170971600250983295556581767621925293601373906281562968399303411587738316442822542613438659243285628960187302910501263874012835247467302736474755948878492954047390989261753146592229292449348192874102018597324128937631146787490762250638566245107970361995140826437633504118801233215489252059689773075723948467680136067748329591956831545758073026397455507176299635332859608320141066491395563077844186081852390072589359524016564934217026016332827788628009294991891735503380952198999476170141782162866170094380680851905762703993610827212701457308700413279461612778744330082778877996986044052009599447482487955647620090996905973100559916438570442239965478110429986074399391729340345865411462845731226035011422622364221667262149707943845516945871857345460076292184684813339027079021585998934854258259238765444808128861144961248301637957513335584763824519918769955332603480273602778312637920019462052273698239818511658683924496777893229072734201070103431344284621664839262164897715899612294439792140470186464454501187694868444078497841081767899363023232677986705119368333928207236519640645407246439341995037249223994390192141772724641864431143886678809660315010627800148964357079680262151072760603330424802214001680806549157518865105038087906451452271153802231326036575635857607486475724476388753554003746473407918686151347601686230503796318513418759137376485150721853947374045396893102923777873667990271964408581688315144625869285573744561071268292454217543638660482399151144440699217764719694573280468509596846811391797612046760087266368430845790051320993202704427619206597276242129229855311047826242160398396361026498120522986456808345208789379592048980997245232661818029192909808462372700732630111798611252320124182603460206282692119747380774485814713064146136635488591264722184056745988663933487840007818374237146300258722652307584238843862760540134634185465781993259546354940001729720461362579161560330178101930312453060282136212495742160434642661842177853773156707811182999501059919667473985117539957738214189563333126976845233730820184554581722705271915565840350537010257308217609322989728301737535568445080058202367308959770708553734670981296377653593581997646642721515589024211200038370531746710046395056874394785170987131785578216941685048767952356009922401743083898849544296988213810441004797284694646003389042080438725501974258287124765910100440582032214859454953776741027021942519032118360495349927907160625514496372573639514866929715069857254474572978904415804509156969465789747027783877698517828241885439555169091548697297118903755505522063443210944185818511449841081871291388379416438772725930080680951595295458978167874796341650921319175619044401466883886385105367389738476136591847982414074056125154080905257074938445938022553175258581210402588298360815379457923261733174474753218918182371510398322485972387046130623808197814848335257947980848698067355592462418891202110704777005812828946852926058563984212195398956688850733721844600049739684705506922764491431062718077666808451573656634326433957891863412461762556876641609652647798788279844417052033632633682434267004501308344598980493602725918067634649213265873110826094293472683189401610353928259409136013031238719731395238986257622453877868625310482760982801064814628615644539379565649050157359819910520152844163598446978566526548692333889200149538011124844080360373535180770954157857781804897250751227349132868150762647142247500250073477404001089060264298080545823290811998190812547662607185685808332083607642242154434302932562070596785639224996031747465564100731703477455369379153486892322018965193892079067836032850977491303567507800861454291927245768250568643133401625667830490640986516590016247333396520084059409672785195342823172404696753819164854485766378680537296499953708004600181273727476272224086621901223774999046944565238184749613149548994037372929937127809298870347505321760621175304906641981602424910504611881113178089564001351771379945655013118061497088677126847065071208454735776136877342290887365588985854372840533546189609766347989986844432921210243452324062456365231082761996138663368584774276583024971430706325614172515065164804094849471363787844498662276648331107055958301637884273988891159281322987061393960335323922073591266857472249590331363887917493844593294854648529782206725028004558890161923625322032600365397789956880298888102205001412392030567427001277376706936145889880515893946815292282719415348504467997507029828656691630601771224051343672415685661379085171378245909573929785657817653322193332399044488658977680260345109784583372149587346066466280554390996436390101148621689133855569202278095826964088190096609279974036080175921498571211879654131981017531167476748248936857876158938091076334315762707476591250362446621159533479944957630063422237964490204200488107022582356728657809301118034654370881532646007877624268768263952128301361843858468095372973555449997231023066964423256703051446522588694886060622306788180477177448252574800244052348277642532418860978351230282806793667537243068942743778525778018746248480902783419581717910297720212240379412745972870950396328978502927910698824750745073737786455199182510840881015065502452495957850847249168552080055199418023513369071149171292221577909416879100862626638461794123584301965575099599849940881773485358726551663729907814199155729774203721918799045022107903406287680581739079990721642699397735320883030814482581270507042038841619199155623815081250101592006389608427543903513096201743970645217439992020775251508861883202088353761430766106981483417543355967457616014360976159700158591176617789844862094193770082087189784826093652149001287827634641638099261449860315256165062225410003383136517938126425426119195825609222059700682927386910601297372258492470769032136203666591149520085299359980763158051651806310044692583016007964194926219473219926398012821917366372813088602260358024441564184742266651997363457007764223386463091053547632082926933192678313864728835743986894206867089997754984264672209025851434845453346698456709157971671416854924629707763073622546584729457051673962314992579137281024084161470738550339512796930673790299995797903524388083561650611432041278432612337669418277534489077089836753887110364350029908547896576718986542372657533158734492618151290317448171739578508790922207175512985985322803117328617345383025120362688456563808538221738107874318782430563585149538321457636004751686102583972447444258868529332968247185184417720632284232966445628329674241427915246273989239712458852019438465302973442752075525172653221550345882234246048950170986765760216238780292257405851412876424854532461074689601546466101432686587542030383589488794747502024427090934902017821425318700982363242030105883862701813121415922264120982657986283482809803132355091921071988593840182466829255641741284336815196874818259207050506238149257834884666819197742132347366295447484916914697181857129972220449116786278488916665606919773270786663937174148905084019526351138871997447764376662210649302999720735586164395008249026656908092670793935666618443841966266671571021677876712683852881928053863242343549535399355550881282017648240418398751540093111536387003485485552256622805313293643778592784199700812981730179631414044449158472309051010935624580968850722108088693330099942606034024966001227180217323030797954464617726600695469797732333720610099316903117077028826790469876697696021690502520146640409997313826117295657809682677819942021542360666885876162558125277498168134861350963720882689246618564140408656872620056418028343297041052298773619075872160512426743090909460084504494733864626518099468003782010586920309628827024093270213289343955532732627941627154146960144861896271657763981681901864314362364955133769774477465067905532264715742350494140065862557179757907024487185339081823756373348036095309551803391570127694027928478849972916453116333277927245310942515713205544934178837599912661633551674975830542210704648833187709564256475179414114927194290916064376125696332052028461631301346020006514860498526550616414199191167574294501765502860559144123176217125870067293866922871895382905886123353777832064273766943701754868638969567092646950748173051574218605376896875196952505428638282756077514065937365438478669900844287626806496558336898147271148120997839498331443855819575534329627765465554247219161558340190754176244379782640427343920063265851485333939729425575063089760559454418384866451625354266772220563207185234279325085003028170426230252573600926947746932225865391699312166068548662141068454724256940933284208615402744987420337165666524042930887503229036007585506326436095682209931667184762394331646882117509083926483253079573550718330045826339049566650701446029516337755575716934880202846105435408723533818417068160720499326798341813915922078149682694747068522872292891799260709640635459015737169613069623051869772480336177387848883379491196700666654151304911480477370312051652836036068102252985290163330911659494158462207980657944576166227821022324794153225442956338175283523110556007173028068066432757249359715411665107607232083190306026332763662847901160871240445908560568789837214639016735753213710338966531267862878227371169326688950052405440717281349847409795770593008514649634837687738517060660153033347747816831324690819571471107981260646470709952827609488183583900549924516920351845901521030345773149032905413797751140689698077774635478210654863823814461161663152730921963676117253817113095541230468718294045673493264094793931848425972279547623939559008084323110477879348881464285109911109440639849891058708395764314801701625817779007327813703219323457890364412546652665228460440696718457642341013307040149648331336206204431616506334093797084919082583630492219176584087077606324890967296160674471292663099236781164442505265781910929898467209882730873488954470587201594456732808118833978202450703938719605933390268394109318504091547691683844773422536477760370755903733624797763941581049003757222945964564995879721810094806485266997556471377632523972088830052968559046932837319846392223692434533143890775974973510477205114049876007700509254163376863443213040772928790860121584077235317620645783227349627172088726632722245754976997094208552392565143930716361915086674326229106631784813025616767934318453747492082409473316953571349111353068301544307078775502338495220784141337036173128197453237844089520572570151557182422460835241399924682674386189666748578567454019882631689994349046798388098508663269607851830507866737187891421353634616971833223517001872083478412633811142454176448774791102842769996619991832095241108577150085934572882435846262341563127345442987114521583386688175823782516997247441018713201392094826075590990168003139187469378899915133417423900866787692020924094704177005157257679908952166101770592592929998657540537923007094119401149607700963509828292005478017186249910993573840340895750050560902843202836381518033347763154839196245660535172107386495652773264023934935653872163033019905627734281026324135500867053209742952230432111431790766287111080648252379315743516953517220488658489282415199386723061449049148497866679629663732937060389544410533395849105054506112513850963523790362780674136745215172885230373795687385788971413411827618111185160634680088211626170366723943842138831160968558353220231047153617570949973861376067124127846910092679778351899408034356042598794096169706193389573427074417722343051200066463350861054421678431075537925785903687579681987187033027648800944996352747108381017727049944312486012681096317146300561461662586755709882582447286102925454626028191165054118955562165746981567621992505562254045264361889646285837639744573789486927716460326598892603961156814997325074734166929931385391162714099436900496069035542179482372568804712313982764674088747242582776728491496745186231957573034311851040768147473040910685317918787237439835876397733147272321612579896813609023831938197585928018682318443357970312917631838327288056188125373207034764868407433701600527512535091630927388899619954308854381768812369066029689309726937139659948732553774353059653554721556615887886263235761572774142182156647127352202389236729937440516464875274273495201600845060897418092333597178274096466265708900369866048470884762733190654122903131584319808478600395027481837900799111818448674834391194102386638025495091060891890492480080070215602635399836250042008274878300826289146106810463028076892083519900510622482487655754588247902924751949960620643111586234648466274631187224401690143476153313128756829157559220056181605290223269038312689777779329759285156853597002493546873497533880461212153687904768924949654376508616298733971621302636860565517276267445336722860502092777462113544268209658349872370261070531659031528642689804356314968476136268111090842539842633933907798266065013781575298679129002416450411874064171231217351788518712174843659733061312179480078913508816546844206360209317916702182702230070606519508764968385620344207725560966336660378111551932769867158387236890826386079362886815527406861664963194276319085484165990487792388092399529947643720916603292583717582426406518990420744835448033454561024981124772550033606077218065891200353451146564190493918020358891698626469555023897671758546851710156981238576302334878171705710745452051536749353535450917246167349715927066592710753429928311792792554244851804344587665744128129505697921218155602431690812739092215103319268670133575664290405723083338472699301876840632289378595401555342434217197412255657094096439438853470106442852785030712052542537613801586892116180251825886895753798277908932656194691102801490361695642307787837970703798305594695581243916460168070167932915597787223674996918745737524365007256525322909240357885239987239143841218796618523974007084258607762243519053915057816729104222569492029735052456311523255372106015663251161971395150891638746808790732762034888381063945072580461278148760195185129817323189137933837175580235817573179455196695184324598366631467346927081680289348566961613651908524446980866994463524217039245086393497531861048496708858524940840198396425880543507724286108085519390488958268069597292154850914593656016062958248361809386617195452223985914212907890661643920364669058135639180780448532837006580343668764226873766854478331040854050571610708460516242071313015046098792887032830283629117355947064187443673069331099162128668008335967298098615299399533869221892649716800912410324713774158079225847919595281889513738166319242261699423254702877946019748187753054695369172069035131169080935761563134701960034860166264114797918580405472397138018748062153714568489459600034488234089528027985042374071814448362517602230106178793047311716534370658693112619294775699052841407109768744136281358174145180220022392602395774783894362822886964953105477249765848451920313135904543849678528040695661698818354406678090063711440037534673647871930485126653805679515610983489769566939981535469272461821437449208897930863897939644684608016516513698688039639189828833253861622941380952405046458121389873916700720182869378812792129617464917922941582215759455484012978522231472894993728773867250921317659332030559929390133484302270728549442299712095573767952207764620212625662679592824856793720678687686741730167168884751861137734960737098804787455177337459899373952874321932499464213642120290461491335372382317037507356742552069216425908523583910265342469519165636431832525086904055303867502772077566408527859028678073395659188647164092413875325864035745418368865619779277461474633332047539301805419700118799652742942807414810706809435382375437844795648666210353849030800500234088977854287593606711499645720083544033499010369907985838114775087145074050357643678865859022670931857463907763316840474666316680519696161814367739263671593998702143103554021554517733627080543545671361568752539210285941950481844675788054143179546017924260814432661019115408477012818507139108039577206337285835669806925300961357902074005674905325816935219544549091608230686683017198510880154738447178184264412965859424807015053479627906158182542542385227231630100300813332832375929878376636517168083318232268012911826271451913865222728494346542268467826450149881270358475643529746188274220584396107935673214353946559317048877791835715267237777492151020944147499283650009074291827887250553511143014869627856381350575381389595567974353259852323112195484000483220628977780715868104040734760924728553965756448559882203840187626884440063750465811201102880591386402636957387814324122949210219536771272437939981115019275499749542469133152699522926055916948985706599961134117280698198775531838445482909879739930942440480518563469345812107880410389556114047087409561085184867258778304210692643543416064421845544281150005260621751900239855646981562933458864458957213151652038885081896469039163097618692589965480416168645887811361590556004408992770785060046746209172595973729897667925103063371327312900396980797750942643495291601435554186692638657059053470310185857663946237833616380049594036869154582153838160124077627300936568487595274045983908931049139224403154263189212211264292957466492566295892428456300347442207667049994436857835678060934730155985310143179055430712543120568726830445955562555226477761503065341516077341016783019336838292191795490471833293192077247376275968322695011991661205841397092901259816221143479302890990646770715438105474192333583253545902579460350028225654642432147884459390586602571321545406745966759380341406066665780824509222984764643846706706293128479550148247040406815444278958825611403099371821052048989042189670830787603393586524408557389583639602421430769402600862877557207192424719241682926049867437741271135808369970244521719524483146253617365009384168732600225485174250317436579083214308269588561239211272109325076642097190873749136249386774435624249259630877510340741806030483077351599776468224353698053670186204840048035591055632296170306369454850351479712570416530847782696040410035345954664190662965320831133485551659155719532291442727958821540714906744140052494004544377972913097854050339079998247998188410710902115471947927465438411718948544860777018507049705890704071889608847987040045574971776806603459831209794082039700169769190266511116100455403121403887412698728327845015299018178437135422204569367533435424475191049786919565962601351101307926565702797972375029452922595615619306174036396652181179828052889746670526042820416525018959537095691214188001854894505377959657324279045808738427268857379956596056171324764898197737784734277185083304010593162958208056505486082438678513991559207580407820448817728725264883690393655527481848065851655204729355829830516095035249209819679654403335092647156498940301032849174725576266576376426581628329606284707708822846329098287072089606919888639860954880395940989394113820778874541335202676958494401523398375699673038600829946682629643456751636115961664973643107205451281831765613185881726826583230961469588745107552230000511729189168985312064206722423770673621071582572419131450804567846519538829606178707202245800358819474631156295356052173405344203160093250160565172879357904623629681965126960361960484321738238702734185499807162428789303364681915381674353122646347614543571267753015752938911738795544665997881407761889866562903059207096296120084971783482549115636581444524549388856861828941325970522432574225621770131525821922519457754483550567046060615205367082713861215348371305642048974958927286188376315781219822034391793532683207852916158802068660943606717184248214483015979887509256824069117002097006323145816758456558139159044131198897456900093063755966611064899136815091557404413849603876663299294282376387402552279371304022659641450652358822720632666241925880906350818814680439565981600152726008771298418323644232143431815991433735972916398978190972303126902977450897174306602933593974693389340745521818752238134892117410253923153056872510627010177165034763081386887522947420366966678198487059222577980654209800128083253491382720077083716263988100802295072001253489612689233628929236838380042625921874349207111990603056626194722626580991797450877524154487640561212651044785651246150246446131909185883337071171656893300039271673375196010805702523393635530268357526644852787360241253159930652672206641899160934454155275785869595960829747152116972227726775328557139277043248497694890127354232223598050167808754307623902447716665563343731510155161175416640855774050861214895783844859220258381748679003466103110466813137561494229621235565148651319147318892526572412157309043877562928895567064291077677746818073905939793826748229614164759526269777380532257181731311224767833544555376303953354963942837630503217805342862736856783987739727309923387209940323061579435083462074291120803300957313558625910071127218744516618830048060114967639997851018016345525349891337234902249899676593271570523686625564574827955346874535710509547339261670921498736840719578247847269747270986799986629609402335843704478821210394814974917428368023930607060328555165175991334965183489554856805324373377591305786802196010844436330511121768469107077934899222524250988408991252401518543986208962488498521254409524559361913098682915186484571764812988965731959823178321113882552371020104215313782047453355635299065747484859063610722243706212619764831110321548125487006617899615369955913340621826087271482628876342868439065833047711151559310771191021899511793573756536098800718628397642564616389782651949773536434288453727138158079077877160857598652460362711434689641986936001221544211087951758366258246653855192555610236431335200095553617853581218553308281018568391446867012980846930984992794538845987214696222103368282531869299429398361808150270014594020845916747693035764200379451013998769323553281864721375342281599171947229888271891858284133680222619048633299285174847269026093850080887040403490269695192432151114514063307536965549121103720887727823476254700257360673485682289194408262642734587766671419467858837814844324762716861687937579843780065891669701296918936687241236182915464897981168253400226420883910576194702736553748529291021192556810243378671341171442472325782649382647935443101174601984166038608383778265180633401535820666901515894194564533798199448460732609506960618698350410608229658309630056080906375564338906289445500284784763671017523354426327370760930802534748692198609686370090434572811724444638107733316428426478595739345378726100127460673602798473628958104755313279822952791083564854703045320443678766843536837150389462289254998924803719012482224948810134728072301148627907348239513365223480948631490039893600938679055926169882560947599131700618229353472295613412681181628563367230682500772504350698027919305373831505393004600357122750635256976047391580231863307324370051392265805248957994794956124652609609690212447047049288956128886922792399635125250249580546125873901935269042505049909101446790649899964373425904664926151124145530005895202174759605295416751693162506906796055996355470125458421156716420041799543240044820150281106455309698216768640852899679162108578760244979913418438468938209085755368775885768577370617366552666691796902420402938972897343301821392074521404400071000684503132315895470155336084500946837281383172188676812646786311457195645626227726280750310902018948927094609719269593065942637028426275976678108761204990669961858553853606047136147266686889164075994612195362257437207824648010886706235813831729401449508285167549960663023776970565715364516946932678340213392005228459640782991087008142610677416374511551215759968133606201668112995624591772948099242248047758760368539291339502980983317172175729523334300855012151460182502959769582349179954044553476021091750146805102903004736671302673583733410502185036439382911125943527763737826333986195951475100893225292807636106261224951840137830770238074033848345409010539948210696896503795832966895950754697900888125391760004661669951764803032257647340336762606342803589988072399409599585172556642954400723750040362661722204383879151753181486095884009058540120054257900590969797139480182175819529307986160804599762137019886418776264765772343084621642474338056039582269421937538674184589775823478235625384835374810832180441108099384813098742417478893027994602770118331337702699617467623714967637715742394773014904162610421909841988672625096861957244810253060741532635652039539173587832205369608054201937819158026947320616151434206439000971806943508582182975559231009950182585418019240199482380266230729308703697443840452375014941231040674824943209003491024201736542190066232405448211165271712100872992491871215155732025968193592345053760169873315828654971557512796578438372370386174066259814939952338426787108450615092167092686332829100167501401345986438306958392144202559337111492639901641422524399547686660985446107138456428620774328646023147818744136505317681786671658361256550154930471031122718415053254438395455272839007356039872036931656907187456250149221108765565084123724274975132764709903307825516543230559558543074079561614635533039788024384916685525229782601908357536659288131372987403740686242056800775596210057168939914611267728295054919211076316257095817902202446960560435259275197915212971693320712072460843620320294316182266581522208490126798742183671349669305499075099006111978413096289349678651992267837277116102265936317964783225403732763384513996162612081918150222525894339239176424899067872794778411445193219079415357839545581130389444892645418588128542749520507484875962251229223037913719224036744022164627128395140356781667201298868645079293680807404655668479693295305160549410046810592344573300791307518646368830431918537818078861275441382036676541382049758188085612186031561517236027446059425154268222506384891168698810619252035015630128163031695963957536448583343242379955364125184418533785319343926121321607337455046697162608627021580743891028918313623192098162868274480565818336217848278294028311401940157133729688088615637141208110693093693499164633961375871097424854172678708359590037368637913953321414722817999598821570128619751670320559132193449375709466385585534597391753232212342542237384795643448370516114644804960668883406551184207093480349061084434551129267878317537916863182813869622070288647572859620361876617234338294425855438483631751266404130134253750146974634779086086663772813966260410856205473430054484337795536136025579407554364772316264493364538339831416387829188846584254008789794979314300478668534506369090801022196261384217605785734092330984527972780466959554879027806457492032746889279425223608343554283235916338940960339088715887954382343219827340951252673230242386343321818125241919715795067088270191872753660584654395408628922752390094313688095605712147803151307457863482704658586352405893607232784342663759180421851775779989406810973976888300017065399381558312639627087733685088242944057052538165633136415154973937998729098575971838557659662673568590523168185673640479709740831796196922433291396836175648388379197026474383363366693878380326512618082777114875746111194716216139297227432045014567176856193248452338368262410360462941584516121959205128514134678180430784930765837744171452773619996273025772052976438453723854314651346239194887859135482438138852233068092444680061542700222054094723126909230674016334356734886816309784888489535180146986369010268040848155192081793460264470878141263426202955615389064215628002812395659775261436372183022344362902790230627428063563038720428799822611716555882382587227872607858204468483064684080919393655258296681049476055355164127687184822565166972845469071095692919657839282734492056039687731403728130847692610074448394525509841348711548474472840592004351785273613664961071121635163132421384881694597718593488988726806274854704610648979869659380104092367461789318033818067664284447888489477364261687967970364977419901291820937109960009254804132538468703514755394449381393487474358264642054806560086495389551558396751279433194548942489041005746423953906020184541434642526841673535083172072518624248191486699785136317428110896926845364890258429139325399217241890683091801360527820691972009173257325107195972406730453737370063148511887703528718203747002699120867606741985672220418761447307489019375307331033119676986322690193944001055058848512880473263413179888891019018715263367501647809829191873922745127841125829289454689001813694449163889628939881340389353387617801862302232783807060705182980993539216697907315034057092069614659317091225199487955144599885117589912661588589886697839253062892072518179844877139604279863331241918316230906531263914333866707855789368178797433175002602122048651517481827026976678728730967107691214876740224232757924555663190098437645927875901423926347476742988725469035361324188540151365936353859891147681913259802269982914771622938919411535368737461031131811003575979436013066398236327392304227959671981395724412142130173790273057693216867280626946831881129234755784645342503302973113914139331475832924186749614413602234958559154207181804899283194600540066473844683608638016460024895796405685710522222580814461029825395771304682036369007351228034180984521288209003046277167273978271874421585963850595038891080270532791560085012170634928412502569332735364035381652614353180625882577986199803541333420255072948981522394629450124838066223305521685133204688586508638386189438134636396114322704382630251368524419898898878367643735208985745528720506961951118901987822854225761696632082964385524892519458739146891043313675670039860990519955669870337355454218007372757072609086950860269159347812686759460430059775092079954212188463028618801828503997600850410708193070294723538438688042889063835836589407207130659047022238497536459002975066018252532489196052649813403567914418931727148226804550218551115702098166149239735992919507242653286650317349062570671591539542934868221875162552835831394477051291808969825591401650924652904851857782628662907306326915244793567281316476222652413576076070468774166073705682504646771634024618869866037260869183584959741950951632997801145986898343683419257390778274427534161624912202132602212665927462187103416597398946940860430690938023381760665508672542473310815807657670203567317318903650401698050018814762635080674783216044579566489697674245980998497504461541555081738488428573204287197239542226907080582266701019732905420337168954717555243710192437017240278997805674634316157066783896982131910432993357466405906129655660925710905862981054379147224006665181430033598506001951373543808854240274973314808408000774469163105985173838276066236906657901789859243420416060308951867146630431689746957523477157650750193929220656394191557858567090537950141168858392536965053740844855702049377476377302548247291365562821160951538533689776116929891417394066656631841880633445844459454537052460289239692400634803720843207403380647319206083026464424653304037256126417107725770288383892776066147823676443422930746098229751970005438113627895857782690147253846227558431276341646580563978626371728682624087518353180909743722474669152432741853330765803285192871450258608732973827766862055843490406973463669389738270086368211137129950645973014126374361435459795699384241595841501018972325267758944304748503888950293314148152841026033816442952231361475279490533918855991151248746644725393533062787714810452435375030968310766773087268770850424042854466397211103733039580948470806473297906296457545164106074462118011662305996923412506449063178139094392491170278606845641211391237513250675625324316774379434670462497077113399138585519332213130437707358194534150591466251001307831842004245044577933631445423503210201500290444386563248245451200172365930921170442912982819832053853228846726608824130891598351550044962531516271129593197083873633421201547650143152615264996488496021349012902853332807376330766243305822129528944740336602133999893241351240763070462995610855202057008154907247196830333372521309949434390375749346387775839412432357365947769248421781355970803285425661611016395018111366987067934397104623028071312406628289689402442326161726039907393670012578984619725740141595315990486935965868713972317625145368091292085438785832809233934915378356093492351472259180225663713383597301232577555902474210424118185646756266374586645963221530074514616482576725501440822767244091018046784297246362467810037586546274882433409784987154006004437812701203642891736459787150217538343525119033384872784264231048909660349211118203235828518817368337635340885282809262027499553910349900526264755616663717597673654571852632559200602609714939737953965211055396097575155623219672204521768135453914641780069591969548905726192651122355405485011108695796998121475331310980040307356818190712337918073328444891656575441202337742383472636298697996648626975181041706783717055367901171997064081167420792772196543695894673923060850974176838653890700661980185796791282847419375101828567016917477567109250662894527935488472906757434630832895792111596270335336840359579064045200866345185234166446027577547436166724697176823669296084633481438052386455439564722069478762928005636939637109828340224465463455861377599663939593690221673212403245313591440232178559859411946389336870354062427716998118903943695873619552820310397439996138820451794396587529179019885369189539291484603721755981162036875368072953401962566511786238216628637218458926977582961782104089031267634731307405427171612335694105663524833611756941815050521776950200980909169255900267120511672788978244787020766695979901821077711623984809419950552837377907782117022189648617652173534166338513923743080741389465890128260642758446534177387089865176982266414267009795595276914380963606295090286116743583322709995403351758285063769135448114037880354598741585146601195645504473375120841622235677241303941510824947915569198778273594025954238474205021722035548469364381436377153086809991958280867560487523947622992496888870241231667741231050315849299134340958423104538635780146209950442816327432447275199819582438142837064750170301426526728100160545644513977194153056482818657112339188594697325208994928730540041756775384152407054745319089857886171029041452009089648620346338559834505960502063227363324416391293679876016202865512517606892254752052498138404446433087854489648269519300299893404191636895446283561736397971619998149399791564536694356867739525326550744022931931394426752642632385879039213465257162187310898609925574494581253928998839637676662707286282207968918708259820654109509147204891112687254869271075180243470382043721180782626882533600492075397482765539729209139061669887158133692225880215164388041364093688541209338587467316478962542659260070935417507870262846965531915800558764631148582719284520903238279325434180678347854433893139231464635252453483670033962702056161250837976173973365117405612791127226839498910517118185408380539825247661511519391610863927125224246702792474348979520913739090136037512377324182912229207865732263689498876670471630010775507608297825399877676363580841202860100640673777573323205491279633142223151298805099834682918689384382001404702560980704133151375349443351560686745208660990556688986549683082044276309938834191199253280870202926333938473533169485416250097876849257791238380385271977168551277815609463819574343564379927917439508203339639872499994107179557222913764698304526019544197367918799548740956436349630972831884533412744284796139534484657887580898237347477780540893961043243987031096784655151201910082919947892979855587265857194296687043907579558386958883232505857976059776313973274302227315862424066064905824577913644801674665496704348865041799760851833709326030479031581241591493660153506891465688064042967186988143571233415349891465941677483740171150770945190099084300604239387499253015826492276967633907541951713568298322792423811448015806555808162225186202287588642033612504390448170305701680025269022495793835013426916553872084213604220440116237604738298274184384591026435525106984207447168269503582505742035919901868836259059328999714224877909453346107338912743810659488443678554225269307168543022526504401925851539670023870242292681857258628309701704628090208952184915508732286591469080350080729055928769499355969278938839700991317627328916508715255698728091982598275528216806402916884189000281532979836819609196487054904147337145314031790135410327879368422010391765653474902410379858864689126683660159202424514574207351753553683068912672105350887577777894085739653850263555039869932298658108880220696441018440466149536280482496868869365243432926835046488331620473930662438028339408728686516709411905831674620859914678506758567255190198137246447607982853739166924844863534479679873843392101248100156878964013260558915068503786036439015754591007832610532974146775855002376116996797706977370382427055789205244518264809747742394179567704773436443208440407050893180684676510280771142471786484314137675320113228039175014235887767054799573057143515914428339059483785718642116281760160521319980252821547743650879217543552831435593438785388733644788506443170750657777204273046124712738998228119705024598853637862860584478585420676031212977836858133336674986278344678572376526594089535191872478899315977052481106354817048064064863857132084577542253965556265300959788324563275411222375625747636456940356161734058172806112267416823323517873974014393919600002277265854073938522763904651577359792623823791518103267430546348601683403975133151571216284491333159872941264796438016645119611660330390590173623756454244564559998312472468078069509245517820948610487552228908446091428498520350310044310717600682502761845158986962542830051373813495768091102638143199796273467147869431956869477760926840094149832889359130786737366597148781062113684915326263430121257824507699404059715271211637286476507561008409974967815134116037368100258775431067543279314027370370674110545009689586424100822580679464915118849932480120866694854352764366230939683696360854021507903362606220518250884623561299963441569383751801020416660057532492725663265630403125211612725616666209390308706476215447259055152434019671604201744116946079462851158639524963678232731593997792265582270241301336317682673062594150049601066252586803415953692189415186244909306983870419315006531638845559627165618978314675235414322223629372951829670668827974117214408421515681328602118191139651939709032725563871733212758772340446412476685860661735920482462869826291754644880538961105192008577814535717261421478941611617906910857791095539172431227831164217249012634552274689897012923081772465890746400541685074868049862179650578303310728409224632633502988758249234361461211448162321641669554663385821752136392060924300706550677445434934647022209606277635561595063602267069663932491884532163312597706441870785763349232342427399232900553197008450877869542434129897859297236901271005631485141723965685794929783955176785842149228790974296112802640212006586729224475628893480311858937775472370260551468068096638741473727944875267895155486775713883410874288615165456391518009182660198845732335405805668401359642859366073241484804511587904081479268403674178234620965852591376958230419031174433280196295174521304556776898341309318118146576941996560125610474216935157196004994626300279941646058762584741965262046588487975839325828955875272725662741056014652365804855224646870041290767795066715003452057489501359441263152986700869068456296147700471294012684673271590965239830393821481290408467586736383720146768371774826935838386722523753112577763204534427418147136894536557232568995547752380898468768014626580704965944428898905933994712065283261522149275451418758143299573115454098542573934107307445703758818480750342334664606129006344190521706529505647350314030646896445105270266195087698159236625002713281590001491723009328528648733598841545635952791725073442703096302111809948982442865444367061488265834044967420131893581908920705738807514971480959799589834182278989515833242904922682584248029386093359353340763391731636142398665369876533842501218407893527837202956598096040720670262388238862168505688782408311843139755603296401496244184622331994435115527266831440439026562437840348079793127881711895838257101403218231958450137489700412997485730431484272794840983603000527722923876292250576617661462806852491391389116783570986976132169342367171107061407167673712540582874227790606529894796038989759650300133827309385385906627508407541489995624288034245415148431896399164415304554081490812531676422355975369965171420352410460203597864378994817361078987543557421803806344128255456286367659013526620912237509593443401935750877917916092849942999533428889987411552096103695713916125732128479494292646978939097613793596340497940236083094160181250461422750323907709968655504972276681795593092346744237930412999107097682629941718853659840525552997868385475175292051317606175441161260756692882277072905114393875031144559999084098392542696353163896718945146944378093953315625724867184389073481677522970443702003884018149318068525016914850322870816503529005321994594688009499847287311554293216712149707440280762556186574437816035555453906049089656825797056423810055488520142823542804140281046116899833816628508718595362716020954624755653755086822010236533681474818277926563375458685562903235899443994783470257769856316604876348513913154681660641256230671685400101903337641859517922694715091270072226048186466932017239928611159760367800858228789351921178919577505488670036027261130135802148117344880139003828192635744453653647496569266732640808039050860303043012278882977532637930370878746721921773806557159393084193064013261867955742502743711066399206148858913605631902360629961553262467704175132456413790548890838595662934592477117997339019474229954048212546073840104493229016983857872817481948505634348575546966130943602441831857643374494307004854883304260792344418535274328232479508437684358302537073024245800190024935954550961364828966161047394389809907357913549073652570510756389107311517873328768657309458466409252057529690143450576792977974536175703048997514029079262683045628210004436918823676688063460114407379240217325947863780933919650203728866760301838867754591434876999554466477171899106854823135236876671459766649298271389780903415203952819487133833169321593197425432936298451126557793802375697787399484727024610599202927461125518354775177285408326744546521446306938034715563393957533657036880934381964258277040680365442902432165401667869648667299391055164090473550836943174169586933890760904916642847025182543424769150187298092369635566393741257230383303797447023187461853435792910147069679930015996957273914859111498135174234900140779256972783906391989808060539953961064663597044871944480539522746549895359844829942016621532354104482285357248101914550791363715210097793049356212876632997158605842078398285628076872933672442936432468134518244250199682590729335818920762791962679279876286410714340611622384041673205804337035678778833128347012160393003367268307745566577701583379016841807195371100509788089770158201998076004336632074721911323119692786883224480196301568443111526379774036046827453157347567933578462057146738274060416152966117242739064305227203751587011176148984536887694488870864885222926496458340079889389069140358572262041821936135654552857255078170169017118481827506550253581941044447971939430973840723614740265079980724599150559129965238241168028658350886618314702108330346953648265373538690380340266796551858954652700628285867204288255973095133883357939906364771724038813639416895928769401644149207731706029625994760942464887547585049169473587561591167690243992767566525612642678883362509850677129083889810544365275393090664510990696381481496194006053762482453153344961550513436078286218832312692199042006145916519350799106646325354636633921958344941347356824170259545344078776391192490167728355284228972415435059358577826574768593013498609637995121338922761083361404207009916826615692014649880539613265087225343483428743013375373284674893265704859708251482417197177150034100512343377293648799541656872619768592603104416651131973652771123991363356394908773826422647852302737207712075018210613855048362344274844846146668820312427592290192734432201171315127575464792072921492212687069512554036653280318331709740527445820350889103752263102919813128854211031297802532690124424324691951312860462192889991696503634647866627984224568693861146870672265914488548493362902917531818229877223664892042847113048508694381098967728792308347895440575635903483856324366164449636981147569641423944470650887048568271072989318295899141584338313143666338621068750250174214198464289652096282667789294132322845611841785191880756285711566374561029910475072237247739118642716692292380526366329706052766434764140923036552993723143369888911380774065988170215646798191743108285318155550257392371299553556424445067935890837527292630525835402011048712163690052101406102419210828017612384237142750364103866867476105809864171544560846090194172230275650594746568946570878715532044997910671118156707827030033246438181296798170200856244150650465047974653257021633010550627867068783867070385785576564328154470666808019438086479012682428234073071754804012707414929350245502513146855789959010811537223983830242011438620307658812542498662284786780511438336171593274782188884876803969229411787434009527911991950014031291611275357195789073003943782953560122967632642643500080958192957788321513829429170999085751684398144817704296646803600249033855351021332887128782746438018726135069949312272099210180015250390620481892721590876903304123823117442587552609352017126615501681114071640755558694424835961141554576729063931063321289562300471617657801133880459574112268688771731950075390245894730803366746152372450722253635671892301436477987598762417194034519885054957937049264810897025448925695319228378405218414504735830523891131550474217372095370312539362099202723645353247684383941629534688479354697437553450488946273678525587248704520685511230208706428173002089553505211853152449312893883264627695573902431259818518914638179581911684073897159645011248195952289220726224804080418462815429421171387955612528769019693985753257255392641070797222907236240544457938917863725314308614008555022982930200019878853781453299937893325453635282642822859188040050097024474627272689935629321111387522055867430997495583327319461452987117324787836772941410648646162590756298616930636508377902812071327012304281325761432041698011856773431628789605389144576345494337855450770887877618529803285061323909021932144474470542409181246478899247922015139569956753747230650214750008578009018625579097775414974658696494141904194190686111323629057855726875454829910371896425331164011990416607988788489835307043377235302403045842815445450108767387648231324218365910600812520610007340261545621157212628448463734921235530956693958158459573365660006879144431910861857979858665921160330378047826748806929759958313652161667687155970695826019801361567135305100426549275409553482971323040308979919050705177099078943703287342164430637279284404899969650410422284469918802364104870595026699365804767872659444149665839614815843597850858075487412425438262858465938958954158818642571980559538600153972010662413591928167614977283920076414351949973121862516774622499099506189071974082048449382037678152666867389813166416334515667765370993073949784657132591375478534093708885453565747543475135830183566467167346817242382803822021938758426547785842516239618142325700207540393727865590571069923272010798537749825514359741321425975299601404385365064457483093989641959016750654712021223227822793223255948786832032532979311873757586494758347355167167673345334112760929432913810040853741769810460559955738092544133941649019905266741706406775696842954689256147763963513948985639981733760051926796201313626187602130869262132349870031872748818912378032666824681304653683235604976277334814544114414125724871901309283262964512411935832812306234048342888211363780573784350072703765652809344478951136146052858422685075691822602676183410614004449642834417294876022513302999909676578092408530868359572889163089626314069659750066598229423713052214036846384281522137158743814363557174882725726564749977714778260830609429613680219148674141713374769960435990230849342365998248459750690373594141146255764378628797377395588914397863155626482044433181174451669276165825742621184484270067775202086358466809043275251292741390979327357971902242975318798661143218828173632852965891180066584293638429491487279843032338821217759262769298854201600897695607916183884327535249864795659683725958092189788981781268984714716511099445752760640650921241623041963311208282758051051434408377315261742463373803009597464645636104644811190873982090250087199748069333087630543923189925046357208584498928595369493562591495969082200102925781506920298715261749909875501459818397817396372165854203502862131306832144817770151199716405902884843074851935060845575089368687544674809634761141189652733386223188674429035850973956159807567728445196112491496841818072573440301759167791499840604266029612300349979964249126842576729703458243316842627345933548889678566092653163874917493892154656496368959701715645469280610999212502663126320848670779797899483876115537266255465879689588658224620704701850808476943421077923757020621798632829324823287645902154974032641267060444211683884531236330179744073352436572742460867622036599771088481507400725801982466692579168614689280988296104386758030230964945429061239654989127785651532206952302721858913835017376957051753047967047941593350683650453546971905831469139728598640171244707190931715429066356370875295575833245678290312878741583762342475651508320800156722080685934399139131874382805934826378284362592412277529914541749859600259119718602626866945440918333591851131947019941381935445959797615563881893840150734475621229806640029004488319495589860959861627713043070936748420567258750377172183697389996188068700427299791982008659447148601511631501255890220262570317161211196945795998568959786830229395990042742438261181838147546939514047396530421692185874788937629471768649047914828847984069171995506574255989733316510525097231647976371990728249183703357044731769873549425473140905636752121040792566031621336717625023544558685061064128431817629096919160765522912035661039673453326997821376002784859911517841232360190528641364492839241421248683902459110281102632227907277128944138284414152325966774790094719037262673129472775547190434429013481562211777369110968134037488815044070069762905252247361367234538251812069500064232198852581827111479047426053883636675069952033218443371006530598282809715871365955760609350459736436230520497962295923836307454679801655680295003836994386330004574366887869459546560872115875061858643140241611502353305177402172718116156735303851537258866550281327781079290759203597619187739710818979772274361321510779589206455611897717678532205287502908591522622151339694692833659721822700069034001724379681767205888878128431620137273912718045296412054591258234158280963271657577984139209685714392846802173406527653801445770304364431905489067325566492394628147030981217526958454108018544691331833407517567130188914820209269110665958426138375748501948323370327972033914241576227962678316277910560005516054493100338933206998825720240984588991788228665895811185917059931657357831507699449560950790593471839911384149126131605481222057605277133297840333624334938012381190452992303484813601966657810886569082479533567812382536091253691357219491885747165307451429860712734787781255439388923618384047731691115443952340195744397145969225774399901533485147369538367079525869645648380839913552217415908454920507114915388782536989643988418568863277731032283519170578521847254178167859914968511431620500253942765897418907958678968252045927744729998262723495298647181493265376121459144041274210058263718055431951284682774436601076026018973614114408260599045908306901915115940435756936319461527697582669116210416764214652813603601856280042873437624904336846839762814704834230360443592826260361851248376085377146644944179277821609748269436281850035486285423422522061822348369377211493745733417218716707487920387772890655631817115940900804239935023380274227156071134055984547612625146573449583818783877457550146423172408143239332011811142182287146802869650956214428746294226870129860623477233753537913240564267075781493433970385218725977983741400371340433744803750594313997165354347205983903833333701257656136780826163628922483967372401139099510377148448535496923114574481963747004874653392849262387603635799556142166228487140731532683375813428596431235070978092937200276535892821786749712854606043146216055075114785050189834654149008979026573599588402604655222264248381892960181669294191942607589693588208239741482666156913337505153595008518924487488813944678961385985429651335269298562655619289022980599889037549563386277309523676219275740732191936975815211622977654904358045638309478109853445107234517483067331211950401296377812887116414909878240650815220853806410887211781739227089364945484090312666636963622786426413136847428583350393058182469774686209829249929431463858286103567505205719872509757130690053029532478484083380308113319763125703194267760773218530168447975484139466371666059224281976250907714538024891397750946322444083035414399306366218348602126983030115823801713527504579683380547239905143892517917470681068073525345298978191955166671797100000152621813441845194730849057834046306525401945723073342817147643532948853750248673352609256539255559127519688335768612397004243188397706217539045056678456185892052600713281597155401073789646359628575519262781931727713176395324163566634711361114478449551631258597953763884089169167646935375468939601984151450582974205454183566601589687499851171673138098743494679064345924939136313846114694970267560696997192577059412966026500938774000738960181173561484001357490132177499659521928470905221284475177868021872723826086736712410423029687309679397461144095730730756728271941954621058623013747911781921629092184896295849917774726153223992116815208574047790806897552821583892007942226801737471108362608647370933873891383114097131789265627648831885438918110606571187299569321206583899841740106826694921396913154030450839030317163041316406811135581170045220346739294250308740216756113296529341411791999243624936767868301279450570222455327109498527275469659007455531764445207028577650544384037828260890217210691568701199514014137115813061141478840732796774265740860134631549543788279671237918002615329211913985849248944667850811018775108458529675017858696544482252653752048946488431440186704431979440453889789569223064755305317866381671855764749247764691766927773845816212669078524651155432786835228564380440879371210187788501921872754922664417487394542154478225754565287631739650854026471570824938259233128802639040720014410953767044003732362050241276237336236534101126447973887563324628647162468192852327504465407416888552183249860943313139831852775922790762137909534386393292432853622860966037634988212694478878915465205010050463594214841801905698890804380529630180455337296874648690458671515403690163182271143208402178773949691329975610497437088921921454626375955385070807155572353803594720079020554012005434357515370739694173790339586278719873107751826994117950316231398461669693067105451311437393633980800218445032405850965273488470744698531968507103215292150209807420391309146420231350416212999147357530870706144107671284701207800933358886795861987657834661895465346352192428466600060459191527429855402943647053085615596844257173420509837144752010998048872399162872223101999300300034738797841510506500811098610563734143611239947833120010439442783629452077251074177004521339062425261977710602071199164395215541857607177744439362952097058465422515219985667413561699304018565629003801493235935901166829601616776760762073372093040861832801225136975388633697360561720733262316192985006838964959943074305134002456917571067572015000934480320770355975632602823508168698863308957198033261413454465011040830111711796856095465301159922037771792329409075413617567689365019940028031682384315781663607998694525668228818994326563175965603209417591811756216825362723784532743356034681945264668371564610595618587405483142246769551815531990122461257724023481811416554557940017790953722223795665694747811729253750261653882925237167386781862067642272963440071767276725964507287145268888341722457849150732326489444983462735451246260644429062575469324382617344323801061546917639749739399331026935367992955883881864625508869174968505081971445486645219248483824411046451480277926386486252711416795774473016771014669583163106362191884515950449480385869455186107490076400781513733993563735908533904808885331155335818217451310684496213287982631776218572232200026824480392444451617564267113566104424461743729412893788528683806836937404622021748177952286173926277351877965175720720917038161814644654194054054837741762493110621566793454196454843874109257304773373476515867752172468218287451116593809344214852464355451313729575742060449164284825018548879476070698522404101010928100738829245421918897315484319221965554498095072779000257230506847923590916773968761247361250177590770944202579481730852422141576172722005109974291490141227919364380118678033453073525746785117478811178003787970524780698660268397065317696295110104949752999106271597838824918730958310003695011813857335824735044765971210237377787947636785088667499046257556348424294687814463728596971465920923608314692619033173263223108002978626873617968322226711210385312444140274008952833108089363505925262159262190197755942345921651497658874114903637952274858043860525008963019885298319925378191608828256246622799282079165035172467048467852504559893745704138161866277422031223472937071129808768589983158401993681732032435789020048289896838071648193017607593835252422226823618924274875132659814923783328377807746734449781787039919852729163638078608235618425694340794964058218924026495937180447852641074119236344588783757302274484059866913839714378822721552735955230798307521840867187471744732251165882849443335091565470425935250839778102491239769148889497246880906442288896626254182659185183258620794573574018121474809315622602022633639582091765889593460703069936470212780627705433227304785994031161069186427491417478196445107012270039772747934003109142329239049143666002117703626338360365805131066753775161680071929447065202885414840794640697001698189503573736646635585879282471606567968565882227676924249856546856783844631382116130753450622790200717097636467697120729584625705746068550259735394889085990500547794619265490568204290066538609831557134021426375168540092700147965437260591389548338854024103182030040214811731970947149225721028991284562349264629357411818803686965518472725103049415976920836922729869771961942108108110847960905533038584571566365431652403029828978215087697451446914334276778200845521655063950756218409804836294786176580298595709643008107971932040623418127743956211124302619348414431351651716803398533581541111929961177154046836823414795562096540733022900758110053405413284722889525989177932943648766150878697082372928092622107698057639640433284031335860848960156345226285815472682468687708819409994412696610862086389978432467886895504573979801183345732732517222456275366559853246049545402460457251066555827947438358432314749933496179517367157582798531323461336254845537053997911362316585106083754600480314984167224091414606375333907925820947946424082632369043508664481708933297596188328896664940849303726888969841754291966619804497305092413445580065129168267488555985131158490554529926600558786370682251244214304960215312597753530636670963845452644337743925796410800936903982679713443156870156288208630910090213797278387507955623767772039836035655494320325908945750299631852180481907954245528993797329266040145531533987716684217304118982188708828214618004675764687768671628727018839155781808545173389437666578468477249019086838339680475188488713718512943241772338375804820882073046789479288287043324628935162894285859128255317819861640941538415428161749507502603152761420256609130772892729410475858283020942438368913567537472881871159712013615831906374533237083130002267486105901674841597240716681431669293542608519203580119722697022561832411044738893426362317405088026676593995685162657964738588145402517880125793230238949939735193349010490446785966754975434884373298221817056488902973866666917936006510911725539630176663308384172313096295010958606486326236348103114582241460909382468936261434940815507493743484042481525081236850345983042923948217038820346816404024534668606208519806390711036422723504455143542099460092153418931601231303650374645912401884741283198856215925942305726992147177753714636616285147118785388399367814643767519050181229747686556876144469455032389516465212120163718649126193805676336026390497714784989250837354730745185070598240312011346039760896143968298633193013304096820572730351921793961369436594038115128222675453134164429326721555771180988042639581483233231266877319889266200757724642931734510314680600559235829979889261432062382545055730917116545925846340219480634674544980913468799439440142229852920405862416488068830403812808900612369935115094304835137994538191802068440528869990375822671004183845401628566498609354913266787198581535120327727262120954747592087180415156806995779806721809276751341290819199089056951939856435615972655727001024441068161751444282789596059313782476943152801331639968945811427285951960803667826562354022886005393894530501285688145551751263709274113116769716938922872115221437586116811907809199889879274191439600719901605619213969369192423377604073740211460897957458781386332680693144065234483658741643860887969885239966543075190187008574952594327498652543489182630623319107771216641238528427766717844763498886747143019252625906770026990536457591576635157750048631431372498315998066949800291244010584261631190559769768459102029488041656113079546844615469815593960389563441905464619654134535396398431132482235007854712121541254434632446467334035382823162408039963044735958207281576806596574898939091774997658720801567901833005803412679903978880940501085906612554033706346046531377982855540885719397357570486188938081286706324815606679669988983280080155215474687406225539415240012022618765440565355462280923772204117369223583293454013841827785838195162913308426526981788527826956360498465352520703423869609852921787040138724460102237639151709524947374708424649471062378468852346009081060721905019793636641649230608053442129903444850939782516226917415395153737810138519037946291615649568302424694353385103685960492147986300947343167619211053547856856871342469098401186722476973649943925114717514382437475803586482042388497057629544843773887192098736614152731660651217020037949932027644828386828985012330706165760782238395359208629548767435933876067356357637631634442653128319462403379196777802650880969259751742116298177659701673737426093355768328990912504005303159906438752387996825396818634675914209383579779169793937881768981232417112984390617322965260279492852001274527976979235554259158439986828657717963148762630344052943589123444087062700471572715486768420474769220266603756002393005635278582538745499851606665076607214351049902265744196073769851271108655732424793705902700985615312537702603424868351340773128404472769338670557515987333605984920599737881266508177415134120429582543952049261850545503587257766756322349370982648261961897594478974214462465686535802359146718136532623467463433573114437151257875579100885569845759153963264326760609681298435132926034968496864939262357497156017891351856276736024557822206216835470389543138475928305327252168475721981110984633594490973175736345546457875268852724552068560241563625780254722255702806312887687926747796437855826191968579815017487376199317057506603056033225046443180794546732962031646425613984456975393964632798912072452528706735931459826508972901949432359033691852778954954360001767575233993092550027730295041717667900094391510889068676116862525600701696719380066944591469333659791045837062414828753554397003375074641822322645795359186435738641921508738084703239667155598514057938755758435759611109841095834571554222393956469344535440562103265343693442837570269884323303020513108736318001666215699231678584629612657943987697530712543754866940759604363695278682559987308732631520690527147476260727127462504404688243247623172143791934473881043477336505724991232374483454459530524472137609441533330611096840588909439680888666523609088155543650739053888216818215839848960653061946740951619607572419120194234029610527890325669597349438768740903831114716203386771236274205073696128470841647097981350956496662269324527112124256008150439350819270623589333572576979983423268122870079485056000931873371305868032568218529938008515344943122657038805654043841609211254096340863492595014149689880917671424264633688242778226230690697557007155251209189947410160335120409055064630734439170192423676829806318566893661093045698450526703341273599820818070964463208054849479165314331570320832525836771346407844446419756785587157568556416586727318856268087214121234099547738961339028871002325110379883083528555385436716105105210059957645871315670949019980102149677330222673673802452835881667143843729733524432390334799367614652227889675917630163048085113419147122636855939181247590539403555513695270020717719590629991127897978306842683799178789824013381305042546861353676421361860213495285336255116045042992276557984886467078000381056027779058432776536825037215944406079210225031314520087242591364796007602175826578197104465943398900824969003776037562877946357614965483166991244333425575838658316520217222579439620646532815306757799068187193911079034316935588425169079482277668965740718906562238358119588064235060131059963269971828884765915700485309228060005897675259875239832498175708945381253060292998324594358735963331148133532417381043352209388561640965996661579106591766628659181475511973271151142229645434533194443358333790727131472365120166751176444484086027028089152149242021887243293224119761767875386287389703517302054246014116145767627960128743792633928487442475885888130779038489460322435680267970783138887986010736597483592935504138767377204461170057945064277369073084786688028606992738534847496215695798456224906151655805411584742912908916823035064624996052600958280957392949240186151543485916049501143210174487411708535382025120135789266528525198258840256939462321007243859289581231375927922991225458728166089373836715596629891750796465442150021861138529449193281977948493826606765888200761028191665620145595307133072660056223895496572882374224962338512235120115697637209876915425089270482900559754625160568555262159174797905355773967431698380493216086425369704783561411742485375281044147576702044215017116970127845680655306183082126499442038673585359207621150350780546343912118907652167788689461390171409762851138169426582223088209944006874710399784926539164640610620222220136489203918783719800719378627007887417480767027297470207329988320998293411406134854323266268669191686617821375853671166121945549093815039639611608557942115586244830827850195141018177311859652977095435667963485300605129337159257774311312641001215610415535858611914441193589523982065809143622013151835406589052367628688279834725018611382782514352827684544080615969704607793215208683423148007778967916862553510628321903653159224524765745623579976582226361627962130288962806605336206844645842985301476766650860282780160597502500790563072297340271341812875783555498693141368105309591653134555441761489314225962083535015622234588469838437254740286660766114095028586333540021132755552168989602445331545686516462314150420289928935795047362087388695176479205919778948766215067719894704143264864495265100005099280251255567382442747059201635348281684793406347876344516167589545228439311740063434822554117111343018928327616021832893103216245936552399433811687958706582853702220822246097801435431383871811307337235504964517012756872827134863183132074640278846077307334255940531103595648887142735669246544705521687486161130763233938379533815615764444271493319350668007418540494299601112762652336604969075466868253975617436905162188815697138008469057996804892159171815390630871625165881437156331463073564864611185026412140096041847557301958592989880995736312314726342707489346108046081587571769229142591468945044890051769514337865847750308148772241804543974953188540945263583506202657615328388613301445017667544589752416998627015874260086369367934352965960170812577727443499237718064327353471659559593382082022277013947056186226210811908938856684389990046395059190788526585110140689553536755786765460645518818900780720605589880420960902406965507639802569234317842897363776667769693784160797428726401634262665639220725066895946017905665223402813532180243632114205697236329302384483958836667728257027681178971965482277815232754912692875714014668561385151957184980812812166350906133710600631900867202562641894250368063528804913778750900574495004438606987319732251719955932101284079205326443375721620719341260693253697350689026959641298389533624412912797115435143577145750206751914566274254948576015544694765529747930196552061054220731521452902052476516037978584065664288963181019958034643642815767459683110008105558626557808435517714540314600256226553271620538963625482888000755103173370854646519964053944279639216731776416044906411499693144363272633184053972239659719239545231882361522534783772151013420038501711159769480901063319522972292575383015287768122186314572794635170287620228051430862638609283870941773145653750243926954784372726694802930232197237555751631264347293766408696933659759918338151256941594838705546793986887638264903344608646922304207958150342349054810494632465743284681570872088388390126542222983485714623929679606049596287966851196626757560236277135960540532120660183913920676849535595319780584689398570284610898391532704475499151524879746418221257051526087753894220574193856151677733863014197524183516098769213794334063634513397395700310498616003172273638795759976411831329753444993961898263336970137839200693196327435179321777977274600653922716969362893643479482627667655640728978645048458192289839180300163912619518374531801591323263859082881906945211870731402331073703852611781421173529610679747483944758169529757796162907147079155751054018982334227470064394708288726020389556126182219965042431699428631383786938291913856332275788820781503799976208263769772678814675084186680019411499209892624137741435867088310009896111830698607145230713314929847713943861529225860279235452164190044154528577235881077599263234779240241285788468448162581934332023164731390456014112551151437791082947994993005726854771938891963321915455075782023735816462154450487699912335158697455805279255408583443673765792530113218926963394422405019055498707381312866278468074317943578113674996545854404032674425718395410374654964928223056309045968119033488373920857325023189761170714950879068987901738991453890473161145823741081569592919638126588559494281364705243754525428039517319313025507912056957421855690793402063413542965771980840809015837050647044296821159352657866319004329031384192174928341150596451787130717613266481932401692445332223224632571717058889570855109351520751288315970070553430320891483664315810086208798366912651482927859024111828601725948773124284233641251714972168110062673215638594300898072097948981521124440580703213360407141384102604988687101681969481638846260880186872001401938110720326698080584542096958360931637724545586875258864475567265047605142607002875951411221977562616992420929798227587579394959073444553207476377911682970065891858442715349055053460216442530263401407030167939994245424645315214853990570311411686334641173887883583855249983030342620324008153250264276629139871505343508804114406579233002760406123127656017082328902439361214618613095619212510900784259923565497951143638688691190822686353249201070421743967223347721239549854880563918405931910212938935104726290925244595689439905267552771503716653660364270949335478497308889492749980752765492021070021201101499749817696435802733942815731865993042630869127127440244726164536306065688632523326534940556504314357548443464066821576590712773472886149649631397885775197274442650194035544538432171341294329480080172845818645219783701695620343153987478250764067302184806127764397870549857430399629396146116379978423759295765522909108148780970054289179108936777598035017815257178888461311120319241860739495191979225536239447922831749751473493570647597644645389687769386497440209941486477282415460017519967854079990158440642279018901039340609801346374958201800531962771605176108954629657307791153086423755205886532096686189821809051692330681656850103963640685639088454242135836384196371739757253743096903839914721876258550487342849982162503295724817872237711011358083458422403225155182010784193433942822343954969752799193685196196521222738274519865048863104837299457023057571493240287366490962135832545030176269712287858473703731655697554177692401763400249050810095326458774152817577318117348358589435765160475883390198210486335186097354217717884903566015632635095794271318945879926950077351554026629803389066983462163929591793301718205249960492051934855767475197488865411979908471239935360414861719898122031198163939097017109407343407140747618430134809269729924407646731569452039382611986659588831803907202284217669824924107075535096530518881791714007457947232335002364019757184513527348022548769081767157222388852866046085536227410657539152571938475446329125059455328281454427283182669430922988664411546282500131958596972700370368895977865464600372287406179191174509440041328878104792991497117063192468274494282971730043525212994193705124847213434332372823308493062034129946612651868085920681924453494413142156888357361039181343926476232318143500041717437749317777208787420417004839355280236744458757817610658655546676193133025527863793076745753269688213246873280353712737821082297356047817748542213072184196653928663689635972547071374758698392716288402554517369854080561831462009072186161612448479034361703825615730783323482879332585331443479842745789156763496953906522758676051701654764231389465668112634812437921507995007465061414802544799594655801163106029797859054739042859037809418317280304542257708170083284846424998239523971172179281604240972896854828210890930923356194511901654074435509360997734438805201512708877378861262549727998054720186540783228190920450311042884951008195922762230422063925063759887382590612499553781632661028755414782292750126329344055693408086030357967569289976406928006982157863450057206045158361151232674000251502091487403107627757287401017883297350921074076229677359478482507661426350918203322063921734067991447975149435881731065238586177942592265673194966668934916974350804445491219064950497461290187812556546870532191800497828057984557611073984955208437284259175414845843925674101763977288990822428573325542331416629594964040931932149555290563397301234281048573150228710022899227914177424340557619760716250280279955497002250663927584951565359593630056547861990674429569641017547430604462796951809656744334780441506514229464598424677513781910632251515346369671268534062128383672556416481144157624814775828152553088187108290713876299830007776641998751052692726641506322916305673226760493583303186872457535619994957370928187499128746661268061046085194961682884194603223760217617204434370031418572078236191657386098443136959796792959642611611419961915196414646027906597581289260378810511690714501707580859046558151305870591295763922061508552454980129114548444471657153452453290250748347158170197913314018845114850900680522324075411201397903689230886183732274267818631666494040262650686589291939446126756848750679095934064744428003872259498792145176874414404505598165952134000469234617344079057110412744656586726773774977348451537809838509175848166275134598590164462518802915517995485409934312042258647916649362013598735588720738673767742572558983404319469984668200232885959999190107944205058369237411141719728050776847912613409589932249645850893667011217574958948439318002591096153319452922619799395903694267535871997993588807897656775129771358110827279922212025519472267649303788069257343869214716390899165317539381502038578943437035715280009685985039565371084858816102972236625408479660981154946523297792767898479686540287522306234140342135090673603422111275943913274285389686489810179055173365042776350672719480991416564955137287336065869147988312954783321906339880353469363879568068771762057480036297266128957052173177812405596692879287687877973749999446279457916269568478527967819780320503421955159211983379300668831621004375179641026891143479305466280335447211256355980683699801816655478137579025749444875012637374292801871214995258120563524359929150880881524091149806154907895355472101188882110389939168044404533878767671927461947150323316566005985686400970538154735473923363160275460323744045027146121758445798063494431382015486515837643661586684935872245801318735459026167932939353102091867128227141591270171358628126737276097993157849047530383289949461984374235398777507120314139195093073971001289508010686679692614157949653287207903334745724036955907269762028873300358025476952535062899797824369444118460229935344078993813189245859865726940442191025155084813827715313069290037655037637984439096639927887734794569716402143616410043976219313798458652773011368929707835500917649931013295747623640029497640900978985330275847825642180472837189512307185981524643659627721245370891731941326688579691131766974099897002910674862216780776103322393708077596607934467687458745574109738310227115582132047669759482606959694338900708715813885078845491036719892908931300954233643647157572197653737150848142273374297005538996304469301067098538814363244236511988588608805107980084251201661499627438863444727747344459340874229782378947330725588899923422070891294562106714464323469698354117409735176862801588120295656302947981606642727574084113158338674946161257868832367343478286623534813273614249888639503751009532673286966129915455206378029479959655546150583834368415780917817838235300143219864629555427732891006768182737671766091294493945177548085706668241585163334011983816257841259605947509276027527546393283625206641098043760957381637420019401631904072360744822798869280009767243212432735395989648685605110564578978184314445543768381017934774488135483694672928597764585195090987766041789816697707011042990197572506983119826177576955935198503614825003913149235306083787850894523325899086793265088981796129406600785568326853675518208949157378579752362001770678764980265839030054338975877097275192528307421380403893918155498872633662237426640953883096416898561247083882381905205541138407490948817395953941072315787910351512837623215305735470714111318073455697514327269625226550048438750693346028464332385467811254334050276158260916774414609456131814939230757228088378511889161085730166230664029247919675957148583787638747979011932372689704123307295750531789782726118765936524632836762711838868722778807679950621677913772998973326199951753312611760388927893477689000894038286080344992674406057350351109773804664889933249523114311274658150246058315046172911285009410938484840481160090153356925497458851677971265806486505015952697040231005949403168148593578976902976556849816523318093706866994664581293420338489202754621909127210313502402865502823932351600128971261404664227525123445438440186181255246086556251738057172042378199023309299129281824728843787122973782156537179192755898812142713141412818121231271542734506220087164160728419125036968250061477757622459025962611538358397178691088546256333463757460752471572959418392209723459736442488569925689239102773666779356203991759313395573293253101668978087323150465806763267880921765068142832413269368184006696692709826890349870440718913468090233375457001343737802529769588781033102920020758640455446985465174239571270212440256800727398847069118294861114031491077733775044233465243724753668787045549745512671326500784550399017412185433314848030826312573472059462837454399860943911829159898889149842198315032374928186549721898498318929978506457044666808144459195597474352407010568175900987195522040859118933013914513217229204154966556045317810130311912119826798266977124436714694206262206527129222597903627029569198354378706141357678746060712617120921407921604170164736394206540954406396651376921314440123325266259535179510291634999162179706880886722977984117770645257110937652575442755214974386108659819576172325867590655098170181737552694385037334731834823593117136998548118017369883121357147213056606940621039351416873794293577682106047789346733761519077375576713267120723923119208578092496306691947204689557623024590415049899629300169414560908436207687467695582742694794972867687152120550013687559713625309564259082042641659313753109198390760308332172809739345130922763660697031264350188587106044567114920772907141890860453604738489275334792540209980460759990731735877189863272460251973631965194646446194160076236178533733752159281809102377759907257556669714336330764316697688900782671964945986213592767524733388690516140210579781472306462105903519178123059169179728216956877278771527132706379786383240625455831661893762075990259578224483334298708628450645404982113017258490869845304142106636003290347830665144489041243350857123883905421019656307744990980993254185944506044218918860899683462669181509809278199272223299356129887816375117078057309670413932925533188590473217240416732879303891753580924791129183899135841345946776827615510509618883085216425023487933531732050259031195728050379300855011380370466860908794143577492113188664100956047316200901793220250994413180478224534590590954779095801605620267735723395934375374691693589564590809454103451428424968599296012360447576450937462615842664674025437381842789542097763634787216893376745640467235166699748181563897939419635695081536814046279276190555350269686637283654290385097459771426767487651963988884291105884257352317311237167225838100313044789724056111900976362273828887338884378067798834252324326780107498150170173306864883523124344437195358926177492472297462367977133856670398084412618075859775707344503022780674274729249822791089763432974086176539216093214061122070261186453355204125572053636902762686409256932926581490273823866915286621542916867168537492672557867214373352852550255683923166730756255753618000628729182439261304952601125550482045017684376941900118592626060237034555275699383275434817465906520899302941064202818264734180617609562300822233089594084022756051792242623571456995860711445949113529863103315470709086432801091070830035624102680387142459909615199471183278308527563182123356182674157045835556607933685116485941981244261636421691848563412770747919285469718549648913286299713475894978300694522743237920408443655396609512481389578112333536189662585560299926877133206990774442575000995613153668227610420352467470445353019786305203013734501037903805159618763151601695856024981661691062047081984678356940273908106989963315939047562563589294199427419737393791535695439752669941384536016960493343830385645408715986150319399875853719366609496676708852721843923454715573896077231966576556341412896542513548794229344776183600516354947193082969502706604898386900495085024669166240811951819884544296571974948067553459122945184609185101202027347522210269008187956264619148149302241128600006307033277263730449650892658072652235350160910270005356247163008439082323511743425262989562770093838294556410731639888012529528203991832273098786417606346053274770944770568882702376523665948825968461680830632325640656093608183986848341637968853917754330522627887161502848212194918541977582484776338261975148460409557838703024991249055183034123548563015815201565751821487801775374953623305285289702778896891654559964454008867999801609971521086342384628568362738924382664350038104696095921610093700667832897031905207968557050876079665545749860026603778013466178058811755133380772743251520673363538612715848423243197707463161257975647319426917938651289832901705178262152090240245344985628387685123127555836103802587572151508478022789561419129120359284048385693657243698641595204691741981385415294248626712680496041747091117988234149464839062348257487088780048938919032924318602424516342368975077282666431806955833257808717783890361419755880871215734603580770645066802821604731715161996909080860549024233553012801513170027942219053809697442090154625034323692648916208519688254440952047525346609524575723090305982326031398058670334288497131318865876425916001637247705005113274892799698185016476973908983644612210002495227919165306811878740927433771217565669333866811953763798844234583281906751768346108698658507983076748943369317204252339996069182678794366986094056247125107221625605417646741403907264943060143026203961141031533265965246879938849259460746831847756056047072699236630088345437145206191041660300442409486250697605283016464732812705285687942195847708629091816013448551777983275759085702338256089628526199268570684195793187862577225758977271863114081980638617464978233922125065064993863959797929572394077028658250699943659706098552566452246568155000368270037384062666431633615384065261646327817086558937851627666127300255879317070626319560240785960813720281529673441868553706505113714721172575628623626291548496065502071432318210018528999583576699170532013074272418968677253799563839699219088042852710628277014797374900639338235402723208418969071434248770648218444520871499247869680442441862928618474458099814915737383478742229443979828133290862479866822533633517122929288062985232150768495600394837039379784154189082763868868943657552395361622263808217414668648729404184669558095111350542677352555493172890575787281146550448453430953086751426677884505632005716600056644756190749557191520485273120605777164475619492006296912419024747198795577680828481217819161187700276473179261722457706472179947599806191100495151588861646420399141516872369449463402693483217585690411780446946015648763098174674154592194390907952937598549997636826066450833744962364767506594896693293249639219573417742819165906444418691255111352244467595773079576746864513099099783598807655296080648863226096950888035468716763816374771114413054115128208521322312908222972706263489030037575164779058555815793961570696938129417544803511015770106954617785038070470177854283503190086587089377826400729999655513723694943625373037863686477023891178238371202105349254059816915818634133761882093823986490033508755177367060364421122543705987459024781553932057188051628744992444208372363482776704211385379395960895681765691228230231208079681710596937852629561016754966788174099499749867157595168256569025375089698221027005739848082105129081001893482990297823393620701824502206731064746672260895519562942918412316425155143979753562255474709540106354212113469030348306607855445852177451181425895359475741764945355314528757088614806581821496605967024304303950936245237095716773245017237987640901369692911847518386056825139113072608167888355123343114539198534545002196201922338291246324813127358489664237752764139106988287307150492692334973364780117181481156166400596215244406989284335060241931771545675078615139259848917983185684229723104326497280753069075403818582260447805001371309077647295380290212240799422263572951925361151381217581477509714659891089132698121953233737550848363182044620923980565863494650186593538805427206758310103226130860000058294148505768160577495424314480563144339166218519435837378496320919343879143236297579872619294955240483965136667058547334518904120109203963211461906260291875663692584146284951592675192891530509091795718720189660963483761064961679793447115184203299917945168279340113457636141968334054402116827097811969477294259698886466436353641559384804967176747841853492408377532687705457965401567418447511373403014011399943656926112558345931885884688263640441888997649963502688610571951449767787340056767982894079274071272634007877852286804433704902113979035346990882622685588536330331966924217438121678248975924140498188470947227621936163245586665015079690376288746885989244774085545773339078131627270138486657460717837051437861445838599548113567670606642756943284615814435155523186929987617969149877809831397815701132210988174249560835216168817896158693806535086704582195253394672646439635580185962650837738956994611022571548687807976758178055021004766986118460286138309855645784628450805005375744291783581246089566099154484821473259768963801285282992490379511408180805393928948915854325522367002942395528655222365946082627326889774158760016438290777704368651655634042260210267094906464045864226322502097343364960400438951171028031744986504543421526276667378039151555916252505490159455139773464387280229539345444227864226709357930989904331473539851579092219402625883506031912645027064248536770835761137332481546857228503390839277291551523366398238626335751877868210642492839739496964470276602611116332394498387248647453568042728768342032449311579327302929368419148884796054484539044377188691287725407085270299514119040442999360023893985953259572173996749908222131720644150985515843031488953989238385952338070257606511937959756286734061752669707439019083007057464358163078445328650158412525649120067842562738901256416707410799842536882024948320097341129852982042849687698191955514887092259679808669075593081859838487630179349489572139234030857337716493138833806090684391393071687488559896164245249718586438765825888437849937676161313845824108918619682413366758869360184439680285893866546148041818255948985562968092048734592185638499510902006461713890424694002879138890844007729685334226848971012607921329275102203241228727779669650333977875133713717187970162089415796502677275082518006543881813822025220682794205818526481954470504909116793588068067549157467205758526467151430536844217889975663868482907004126506702394660985519375191232015650004472042464014380714345797308650921399843325826122696366115580692086508126443391147383499262613980465776921082546439953697312357214661312910304766776871657743610831944138520828476215983846209596735718542318399651928659780772689270264843655028355633922400034329852092977375094854560883587728408491736741238568260749584633634177620728555787506186398812952374977310608537583920000704435936176526513130822869588859353627699694726314552148877611270935639863818067974119501767787073795129916731705217321860834671890422305529812033913460857983615259574935568059586703131638677812736788298213839693848028977238761478861030616572002725165240086508408580041508282638700075545925453697785094386204346490509593616296850790884444107145986348743309990808169999113871841612985305381563362792611350991151161248318960433824829818213109568181912210371616541715952199833795946017935345375535156507754565371369131109455551062050986921462495204035896800079158754026766582895964604261700202991042052744208246617275638359331056202633360910236154280724448997272238275712885403357626939377501314160687057745112142488744936150418918202268851611219965754954319238566964154926975678046990356161676102179568687891296378886827919062975655189027518120874356998421657510096609540703393090250163777807357387337120695829602803774209294805315571445626072208175474695148773591665593123396310613579757625553540047406910972877790929245714378026286760555216086497346811197726051624940916150834293211916643799637647480267185993442220750919010367809288250101458491112106413503978187501941049884667903602441194009293449491846658311494659812731697901410998876097374093122890126093580158164164462499071438853336908710288099748727492357930024407542923316769897050715851356482286210510600815884643239565721337671430672381878260028355694470002971952076054349687583080941577515497632819802184823642729357120392808366477289131733863505206576713938930528687047777985876714512783919152408763510034504989411874565807521451152483587108505290282766285929222760682100694447030026345110443926553852450044335642040609489484968532551845318574106083263161997645789689957176703084862183143804520072220191606935476344323903162602664284751861414012030067966594656838815626916513295021197784230871160112548658382064774836185156847821934833842503161540423194637888742769041660380310329657802654921538097408174900414481699692978210266421039462326342707876149810217932690620128847111442705531042752026927739682321269623076046304243614246802732228339478158921919559699736816315734226136654499960743633369249185434777494386618180995457982442933653640069501689495699345150708828642385764768390584033070359744625427989962957385782622943487033612719433166374390776328948325002061313447135161954766126692049228173762321679176071055073856916381406518123532431373602843570175816883186448387748532363300040356581086193743177610204508798789361567744488926673762898177051459227213510835960330641941654590462274520448023121725396651045680534437710042437032757501254868489267652569872471655727777676889157387616805379392534793594525068319866076081201035042503599466604060592426787654894935726404466341316626701507722081698180874333668837798979136291764903067632461912330962973609939313686771114557558648004509467146807649169688186103898094676732871767591821453699707320360918042873115847641907582915992283829283167939237060996076279954916502897675441271067481634393758959254103448991347652770775539167361559005068146073349630521963488138277252530541586079726181654281485738898068526667771890770170899146553380056448699810881651701145118330026662703464656412947819999458860183795873952073987042649671562650791460261939485014401349920164770468905705487022624905679897092717591645192829134536404933686586124090015769880823451907409159560439151730151672706623510765716796466241839776260941605736154968012140003848318412086209876961074338015574181641685217554872681146563541999648083518670511517324015509219694548021817713832447123540756746741029893046958450084713229921644762348595772125925938401379069159219510969942554909211463398774589667622031045017542528333596330192852858848239439832296314098298275891816552636626923690646760214381109088401483921386235443879426045480464096422977101534166056171266212867707306885771715301679093063472849750351989143377116396849071873808051898926344715118419286110752930215322114824236260992655367283273468857646704026505308184711612109274242925998468364985615341093844436786474351804939249773933803493455527897354769190772491623313732976931962966675909181262221124062440399669561526352436420751385385485655148794084008649225292943969784952733683849832454863472339678250392524796020506957276166027494677794444365974085314605371265434444606803688686270290958847076011532979198691791979081805942002424952192973209924469597927141397766199584111867065884694312921427189089057286454749666434977565387798022898011990337594591444663003110193115884805365784421228740322271611651375651170818551145557433945752229072562673820547435677480590392493742850373487488533014249417998219922972133610573423293264868405866611045877006948859452207780128184554012201774809553854607618815655803287617265390941842814332691886153341112856834741569377277807295865898917632219347746389345906987910469139538064787042230775507386863519901994025000648955763874537221802724232371118748975019590247384046811850663408584883165405116433710157694395382821601335822771166992341479292603778651645450108430363859532470485527916067191420314412887117621048105371498503903269593119579517771121355216706456702876582301841685287701726836029487166830696850305082197391138763498329919883092199301026418621930157687089069864459775909466220863869871897636885011058501081523381051061319087365201248530792257103260112257503967488841747522084225889206042493035755924551714084478810921101686212759131727004541987615805989015608801398251687605703336064421246178524983047773226634745676882864371946005684109857499105215367915946107837232301650501314515267870363011705947658660112526146623586384769923796675461969175757922546309689249170938461666765846619365092710359940511071960204793964331118195591956463367103476756427412905604153346797062335942962337821514693038249597668393887024132725365849904800138199079730652626785970254309642891341882996804905859474886546247343620931925527263901218969911540406369475225184578680464261248797072292855592770184458624288802601825714225020664685786344154718745541191862054412707942579770946476623613175984630948339871691797052229801852689951135085544409393831740149236071280214889374424408110451334490012626004705096169952830966794141703997967648770532260316057899730439047433668531411165382424273100393482474544895720932201165203233932993969253485663293352673331933070835210772419952629340589338528359240931803957291116238101947699662201684060305437463029183540405955268770168318019587187741959596098347942203692389526408181504957300278738771443709370336230416239400954437092073251168736129160714224548207988759656221720691930165718128411992067283818424043521999697051734152364388933419145351538743599373787453219886217454606495205245625379156978557878822695558155825298885168665965563212267599059205020980131582084962271956513891216842169830285357477217694056966146778507186943511015560560160073419284788757785169195752463853098303164700728170366357768534118495445914509218750887883826941478519608254790233434193165764463114438392159333024352502195387002631652733964992816332694061211812739162938163571454303813745832441366821913306809390404195729380801592139141569098269613131182775087140845051831452192748565443159675948238576221061634076506898992282552479957606167520371275445292093583849679449341964679229615596134887948685338905276906602416994658639069796261366346461472889105540411001380581037910744582200452308260614190945382723645440667488555606216072849707798644752487435727076881865599481798148050787701419759804332118344601268849999286922141978341447999350862335555894325992093820704780172819214804743258407461261500160332298870392982072304680268950923172728359332939070310200498337713051234399376609410296864159905024392214483535944557618772521357389930607066123551977509604826682396922494710524027248063127093171845296671035334970528681473294697261298917013494488792520753886559325329784200531511954889169718748348274128825202395513104064677080405808810238597525179748608377522405151590348053273895410960618282084896313862112603981803087021209788639036885019105515111617429253200584186727277263443436400356222486071587754324255338831527248499429878674681354285958864920270576936373002929514940137735045611642138897361763706189736150093886558904104936949748765841834758208100954922816572007624632149576618405362579966306960858445920567331976750980846554967718096585678315694383745958886979014170073756636967790348260700497597492402411656194052347899132323602130461935271223353328217512976570982641954071692256520983566302322890769807118364978937100779341255336408631513208571614680185325023171033421581893249837657727344277202143713633397505469178318404789614713980998785632493355832921283856194759525646964405411685801646380357365188274502925469698489420831736273681291304777116872364774682635230880560004683970910079505479493961858121861065287917247986247584966500716565549216172282095658449973004555639640239674989799246066270915919612836045606840106343768458012428660465332992020843324789881074023855744857055452295457782578079590624734895711758489391076381354331152774722841709887985263320748269125615984970537971727252974656361524622696390480463934838979605592819220150216924383763514999210841966627690435484201187841289010072788090296086938905624917328619553336660674468292105118415763714960782977978798359382611062872891216591704998372676579568108483727871323640809149189916969858604772272370997901173565093681077251872676400310069578903649996476690892438681495684624678767865342332968103972809584554466398903279262154102970350762333296604134580223440579327970300729756761532548006482604183105071895063405515917067369435264316366275374239218135661522924563917441553957401510714969505117411295035299798509955750716984170787665120426181564866706786025041272170526863583158300395095109025120322905551537033559319764992137741101406230568518639023874266050195084619749486002188332649150761242107614660039436875815836370036351585776470372843840942383197456955503484628011556830393916695330026835981625960809664719951005682688642778287543483408179864319598676272695743105082313931734268825746627874504862323615445210812388378178341457087012380218845997603973079239636732525422653694056644633774489101841494346269609129449433858826542060732870478442538579990789932589512154104433623598609539602517441726981362765799602817549949739550755829272464153044009654252270673648447704938920042376409825038040502447228037157598325922779128209815760817873899003242832057731523599981939225006228336241081919999610582306545385184688151673535567502815966084923059385713846917567015727427834383866111721784435151120999702513722676365355270756549719665558940697806019512914604629208222200435584563585939497050473002783935356551842441244712242278416208816051347939839814650805219531184889893188288843269396160073669557161029556308040305150826233780968012032250658856079586054284054672862924676510086135530044717702747776895175458549162371861960721393552904502961822894956965305478222046227718127323262669640994239394289423389239157938344692999177964154096435156845314474086875814646425991449867216226351810563503851782951245219357640713349772121585034127619541180656258742900710392035335676129818659287100875258549353032994096835663166017729211204740929926601730961482244627409957459369341743727317084598185568959783688173388386312171329903288662399118934204253487604352867916581532906157146431235678128247990469353479923707545467295952856676138860076325694778468758386007321550157002827685133323641346291850067601606889493613368875262766376165909905181898256081539718256797178326410921387549565764951479850357562477756762460129961275010443391906344259476725999891441616820763793199488199755035887806919687292146828528874718909210781896257912710675952567024035186096636149680883910714307575221704573073004459224555759095961340011652818640338672370828851035455585704878764193716458271129472773023430290789166717472959669715341971891436960904366635668565891422857473131595597585897074387937523846306494611934761824907004700151250665621808536886585402228908723111004122852675629607594030575238232990135744660390374705916891980364122274703878595089048277981610577712303373067791651657981698365677993093613218825955312126659730592415336740544592546741768456751372741581559667185941269853191413947990393296448376668119333718409911275529439214203096243795255451669596839939488232239731056109432768269480241473699835579688396293398763100613034254027306127357681895112174457368264039664537255150404524621655689694142951315752435896536284563432790103953495729944442956275761157308221377624465829055763110735220673407272996186488910361175901947956688951506249213566157354515700147637250648494149209506841204491701393655908996458463147889771534065122095371778729472275668646107401202939599056393219265506969783369846501009408352563074079555486472606222212503228753387543316290343040782353900849123251053559391358888173807978491236648394053659464917114435496867473900379143090557234356899504946989021045810353674186053708545196898450140001057575885086661837733366418932811187825680235194794864218631219503435941470167597822825406094117515064190588321016376998435551943565893533673426458342663738130169797382393695234308688875939113241474209316245322431037627691530261163686154008726525045255929117286438169527157719151490220642778694990076600510229625196976410094574862760518834673023510368742611931156431319508105055028734664837288717891778492256470571342164872979001573345583250533316038635282497030887238445333522581527903825926387000194158250247764354548352308639181216941690833996600989112246459675796751337429539172233500359587090440079893201111978763506547869926276376763548959732451663823993584542924765886169095359367922552489256692905337377863247991791802209373105140493012481626847911153495968356436961291379868681270098233401814896734248998505187602893317208530747311641632370676113618393953289837690009151735590870074624458582068798978031062322035029766787684147480211844338264574624934458209070984212649158373459944249278002415314630811381258738281982204637836000687088823876728997764448148597827601994756771633203280193917047288418033308697391580177661596440965619158912478327013245608246076199762672472790640425514456081598902906097114975930612065863958740627217456983664901867301338438263999936061752704028389225240089592875777809884275429968645225673142262607851493491575220646766824336417568169154094000568914897098903555532814669954530819501372362000762146308388995681535609036808594968671165376187444329824303115169185241350013996288455305880334951728325983319603594200995285170963829894780631974988997725334386349671300467393737667800267622876905176853915264324283739357822593310559766262614170326771563729415121214814661243597736414836884215461694201131322067351847589318232081634191545820440171749789011555154831173314222202256214019318464591189550398863408556817652006370378520519851253110206082291510108393417488034194808270566346693677745414927575379686739496481806011349356840018492073298084456664345401444596011090751987963634004619800953159583954446731801859376030541911394632811719446116457430176393559548689506575316707663252500551549164769610504874712853859237943353110321973027513301267663251588270327557202284236098563452340883395147418713336128001482823189982323786665469645733092102984488896784459244504198673514748490987362019205337083069443069764715932816939411980180269605299981787399975125812447270393103027881263333339805053374035870248850782138016221106382728011633885002827719999484464298843155388529903148054468841829850713884247274379409533738981423302254015948021388430419181876080673832636810532552395218728648899351348936648112206469355495778573410571155913191879603763016833762366030335272874883683207498746009957766971136943888997816145682732030351362041339583402612889494682546304639360932588794029741551716957193855729281603306209190349444791007703416712608760042778060614781869394958659293129342329724792780404701698435908659659594353024815909439118787527924418110557796453147258646671043384637753278517910062304124093120875072192174404026284280229526707088455131928031902704406747615082797490086580078894771917701754008368059341753049469631312775354402968487666344134632177493677764665949523427655475536092325987503569417210289981699979737719937858125666918816792444829886027646483099581811656538628091979893017404185016621855557311427212014149533312355154933998069095604641857708129910219892008634132254852460609765265850160929838796139680109379634767091871192831820029175761434257724115320747406204902727967419760029087973415264229147762686212603260809100424385339836463637698580225730885739126565602845901331371401350644323904427048673249570347620998068083382368183084310128270929157875680242169016036218571755713377331467015398203472143884988730378291732815516603653342468676448250576657708224326997312572572416164782515144689848734341673213914278214752184916797702043015103658559780279792883336833494770000302717610566419316017460148211058734834606791583425936830117872157938833046587945639240778454065383519933386745714532275384561004054303044280135214263571867169377031001992534812903505046071486683500011556457950675630671415889865589446514930926501319489964169403368857147669840814246874630610362783824314372345246080166431794397864261371830969531041291111021775149252555740773005177877335471765192027905598280855795982440372261408337404696158462488771437065317257210669829834269626283990806073284271696941253577892000720326085982889271461133020458032536476059871721037000811699001466804393206654242913740126364551560381177321774853447401119136855128135286430113820677303442941762740787231213139279567791423818837016438235994750688876549694291777887621469757272139366559393349354906274776735680282734958838520461680361072266566665305144372338926513821499079938736924854598051105491682375913092317382753577539693855178744039973476021404176100304356318766833309887668072359444353495243257659099765975306213319843341275811546202819587964523295096006945082029624203074415977658238755105264277195378717329597865565614440070251642417637515470174953754175749596002895127721080966461256411008468706856982485641958290916717587549829310218313230251374718087103430657149251570137433414263110904035753859315906668944364425744748915973240043747479892008686450372646754317461396664871068617241926108302846195593430026790451770845677122166292586452005207297679556739149535105272832028251391365609611582582848346197192843601560584063334199106037226416622771649879136150977953648733922100673549352343026632795523523115613953622434435992285006175165380583686147049077273169654377850620235178454433274425631182159642906308634775784301440588860160714075501428264894112550414244560372168501783495250270989443805601838728475902943622405386778714246680419725989062753591365679134267229819807778602227905110726746253009543524174631931387830327663854834428426036307588649024925192571224204435195479951176435192817328703779109306113660466720010426311799412654170000832641494119184909184357451615524953802968414446502703743909833344795483952212206499192190168036912115105652726309869042453516848893959417522667131663693040320303159217914858895548973476573332173113481650581151637001357058275437297466750747002117928295700547565508268624494683227088899656402844834586753218884766538560135474045555107537548234663873469491196047149066168213129503026750518731750342410464733371567146834972745021699061308398917376673576916901517643936661336499248282993049703418075201018441819497419761540879683451301226183198046104668390846978545204454003097301627506091173766081537535081054029235224085692789075199499063257981346786296225223170470656758801171247215836486950356761526445219066474660107608152396015057578599157166362046208937961067826904254773110635812988413649124031852027981611758980863735832981326894030565202097156489775540600571792500374085618333059101717561715542544257392913740427976958120503468020665658099940627594513334956873547578093043702773531130016033288057435145034619016927978008810507376679349857880756331870468405277799489792287843657637967028012009594884186837246665905233042696033215590398339897119996241147835468886358502779703526287073633687983027059996632991699715177287093989325517276732305979866168481250516598923877107035347213823774388765056474438179801500612803152520743224092936474067669755066413704894973236376685514876473490520943885755710081092285130855866889038956528048561806514415478866800545528850142059399957730280909936746957064570762667460763564722751506850772759403455909607595307056827089301412314577621597981333669773512016973683536652935176988914684896882555597004542391571489407677055990395934099604772275086877763596048377831213436547684949200463275887213683882080723237377156376585193711628078973112535519879128356417363106275535762110343186853376237288025787895825206040099315932321473295241493846775399533073500517865821808515228667242628959073793985145522128985855359166474333814613492027195441159042206770098668401200980197977368451198727281026922937651609221954897597175962369503120514121971460591316353059696905945235566281346284218563622233058552580600847053986418713477248112123500158985597851613637407037857837285757165540892784267604099969200906402946642588681862895551507105925891343759618258833851919545346075168803715084914536203460373348455310916034397699910394924262948853051102055174499109897450888248952847474358256890670118502737948904168144939744314642911845193975338752287487389619004194429057853164717716643305713931905670201314256647520558797339514371985752351263057361031934211084959133190895518604350592317400551027812782043859691490005827253262556232612053113050974808790057195679107302083241231119692691464292023330996609172537197073454778409021486670418039734215855911563667622325896444056174520014572036053689353680138036800234363246074256461620759035922131755699323580049075209204739394396653099559637037119720127357475704297222078747400395244108704366920738136233477941257786638118551098884334757167419154769076647676305626571734314028526629811081311662408150027485279603633471774292118094792191580191089199023319437233414201685334304958548243894975037406582228597125101364509402968804012682975072674841148047933340330236855257934781492902896256917141612333634202382586057050333239430750332649431939865442440444821409275627893980000679813482389659881069018493813220879094050908269310699731012486209379603374017126812608850731359803852306590581212072179961944045191419397662610002825968296975481077765843729514049525996703582933101154665735664854563291699782285076321218734420765292989673656189213953461010915715604976247149049455130240949720240685396542141573963560994446906272432433730970484177036997533222639136068216702153286190943417491308058833691747199138829252174923398777676100697287553338576075737708864004544145433090525507514409473692311529562712593518960890273790288100511711057660425562964841377545340548807094414471261998890636761461711044451336954251751506430365739200657010268079698951960415411360261632334705653877994183959360435765917129533970428245864781288253429911228534706095959277518402217686152047919372548262490885350395307414506399007342677987042683743263586052805133390676454149105563489497172343784427396616495373258529755879727490473277109229049713973828592055871305806048073683089368807935378418495612309691046068064618911190486201478281510236796146977541845970615144476227333364857539113631821787572752233602368163727482617451404644219332198439843745260115419023979738387398429513849519053259385875750348372411351088378926283874362167684408999036062203011660386938495272034275769778276051129958572589696687968048813425870168309047755124449265643217891340399427004284081128362373284713606029857673557859034197772094144056079962817534196670435845792094406896136996250021923074044408548620237661741999043497293749281177414301885424633955016033919560262032728211448930066114583189158514962464352532871576860899480945763486743155253659622211517309128287049537743714495506618750952558245594114903161370628833375806211940349367498714945613865426764355347075627825364382273291892861429626085102587064293756215453235301050255374479701470192030242167216764509776767228858552888516635659258769629398184128551004017239565051145464163577806146712046377760570534422225821940244718642834798469132419903089725712625702645603848171996195443736775172275921675715480231812910217951423263791446943040755506199907321673545169398536312112564509573669881829621136109127814468211529925666730694103667054204115624892635273073815382121955366626826821210757721432083019144119390019358554480371609151706904289116901288717118730807260421859398864639324966847888047989712714157248215336204420968424804710596281252589714933230676647192016543311943795423389872038845103967163357060592007551065504402388322299442506293750168419300703953798983942580360774577983564386582986545859379065148184141434692108748945658561712183946671271435442939696626669940528953091913468135502715687604366699784636635404268402327891546548721573758224887189099149516692657659491179983734643528760143705845997244382536598634981492774880775362299953604245337892900515720773315688956413759341199866726002604320326825568577917664990656525834325918541360603054558318033685661016852690423857215489764648390705112533055668291391265082337958680616196536856078560171394802483255033540685830920199607441748467607208364920365554795232484135976422428518115835383903194874452483885869524399622890822961392945734578966867467518938540049151273355359686850259418574322769258800268105697978466038287509547924316303785364873673201223041541955502761013309599355454677230039432153515565120743387323651021306594707522991525441068843423493387914773395280479113157049917050112331716324039257350815935962475463438070708535003629056407088781546296803582354307931974315402213373780032453838537563064915112456810485068958357734597427289508231107725242251049872860025372703948017690245012279797529466270979764889534968654207942101064546225911834676417183798802106405474487276057414413281802521168532074881550222846408282353462262413602850252684952712471101965236144834911422789772607400845235193271289925735349261086401681392189914497935423869076958701743190431367382057374321866128666141016322028960173228081776218929781337241164809656656438353171513958844765970450354220644650335596669061603217395822065354122372556246255477297055633797630918856278249971093583092935413926952252181150192705943506451330384732732150476270606383894444167578505001452686210227217749952701236977193170083754456349635507348470615024285665244526168284318334268704733783208399797987831317578754917400030619028835417606261792097022678831810813801913931080947446767623825288495348724083481280607317561002021983952770561757490763221709950781158425196247045396671823687541309277575947944418328856133494933050965075186300793032638325316068581850039049348135152069751964965618207370083656581421533109088715397041017456892494548544870854230029315951795766611193143990160515359647249513006336353120895947031300126913541924622463831210134098640178503185557547064548018067612017597269227591466795389895439291776977826390702181059181565856504677813694941607366872956102029015713884232658848469325675177935989371240733290991726683732754328128875315581120535203533211613631950886599723993844497713675094158980921516656302292600810520023234105340941361052509905379891048777740504963889821412535152362474003214982649826543761279858673032266549927896957830681730915357400302583068118781072900921725462198688674361253282476816154187584813649133999929464109771962750171703066626206263717507609677814466614498827687147855258714916477475912905568512603139363669384740059195944505820657320403949906362606572855794583472804182725945173448109669252600218880131213645756850767907858911025929566438962573766638329783053103955312529453240398661413136064920146106857554309140851983455395238349228984449940428379072356464225227130160743636684216229013503846092244554062702126579672949393815397550833826496570548123623206074295232433023451114259012805478884987122952032409875265991132400161866693612105112234873457912426764887292485465640036233814174465089239236678525142659340855414415747689229535639982935128481416234418388963025570867269405460702763835518426850396145268364668018396752876779967765283734013466369932672918483448959305867315218721243872280192148950464595121394513777498726411024702412941828157536103503728682647526190983976509482801563480193622469700358754552170180250268568366869015280408849513798297792625575038662703401149859988444057395881154519200804253407727636291114176460564754123158662209850068212685949575598629239992626321870929012817962233195746205709172593724522841056470676398658684070098973640481181691893607118239203282833174610623988275073568697912113107388846901703834712573065144947783645222023325606524063211994090417543630288205075970368685957076158514878355572025978706528499359997114041098801664341672059342861306070425716014609644758377126343617707730055790365397275680134602236548447866931210440002464010701809849610051391615792419737579410266344962748885868918450566436522862776443071659761708673287931481152082922446982717094911186637485023535210591202201569402938821973436139949613834206812019079011617301475833860493698961673215863771501750375393348317702284047092649669898591005566507716855977325777528111247827847712251772003989633822134037054975040556132208014172419148599045612554974452191529467383906367029458061474737896624395299985697859409584958002936986410951385906643365415636748840796222783295612067656028564803110022857423570055833153228650900463834339736810013031962015870429436898636117825601610794359065972858804311374075652429813088904467065005876854341163937277505140902174322179724778330977935625306125195159367187863843030104793682668286515442429383980813897285683943814477289283008990187256453548375064724447571495933215693353637110433356061548714396111648732464166884182689258921364800275507989928332777688152772948983270051489382809159213941377587687022893098435997527259984327563502051312519205369475177683641177270922808860196016658510795191745408351676678905515874365258023196798741511354820691226804804834829891423692666138979150542072847083131220369322043105576790682991739511141187628524682373294824792364071281847246864562379206519314857276095990450190243220941199542642806788611494862478492997817590141417480059512536852918401393764548198309309216487247337512162897516391592783796211918620144632647323156398692910688548054399925559802615344026620449512353959585433700778981699026786700990584702363663564841239269712191688280878567332909693012114475381482782148323836289678204668517845223015797432140248336868637532275639147734484064051232527217866908507263369190018754326611584176458762097212706859188160966320272949227532122591556397905780613844831833834349180890991798053775077905691770521777214147737690699516548214328069726764190662564403685174664590203381227401188192342572504105717642720039777794746115745575896407085301629064026704595554831949330264900490138911429712322596403972687295416493412816552398140241270412833465246170116762292227220069769219635940550433629499621720939774514527758264510603939100273874849199685823155802026144538877035904814327622161640228019361506523305333025074863688815119394269441717284410831075344495434624826465813889496761306160589437627561568319670016304276177399041787615600700094942217180765974024348849521735546959909787006238886092110232554967925095497660281371802308239923986956972712479568395829561431860053928548888981273917600482764910518361356494925322041330527386070839020355941544493395644501517687211115255454136314082764797709595304464783314457540984409316259699101975561402659651408699871196740590348751476408279759756279472100239026628964653906873367653230047728613509962588920321654750406396588138153561847413685160737707368265041034133166109240879366234315469871897659330771511038185979365812811020144590052299059484754051420253141670228455688804886775793081917135795107326227214201300246261405170754076194735721308060596354646642188177041019346985750656086418646410032599274757812398103621720376063861010314332177287845457931537324797930780897650081955907859290904264225720328545942191261445650818533336118956775303807964035075590831173926628041062398872573956507725447618758578117423965946314859090962697525020251816820910956101870254858766022929278346729222880927082995710857673393751846908925808411055453047541497814514721873386072364488669920000692209294132100633891899192537871836233078781715456986302963950182550577407171138648154033804261189052279658416041418144205194507111993554358611373228557449938602478268247328792251971998154380388035958400105375313823188212471239123380439913635153776936284064296415528028256793414058519074326802208170098041275070543660291662865854220016175496358701464258908102777597658642215090231182996845683352295552735369613465063786054465686622132601316336236144763812465596612159181742240448460713735879467402284601641621765099199055504723567848475281368803568000158296862637119776100513270354354035073811417777190773989964933150908147061697167372317201014664847799772440916374048059736858194854754718276713562079779752490127076845443771219314133926647437371625406039062039398810833576748175569753355654719440644648464310378252114045247903613592444400315732782391120666205779944656843388761160788034238144704353868111343009871206191495312960563155814422792941595651174188127959556098706353927501001229175606154686501661846117244008835009086798364271533153710164109985959717242483838332174873637031956016841119052200183832314008708070909977633698203949885358090350495621174468767464729534614953958323310931712701025680052633916237080131804220709706323736804768464306937687650285490716341779430884008178877925342558523172209211948866781281376295091465168444659047526225042741737585939562613170316834586294179931143963574838962432099427500110139948147839551644758541927363542770153329820498559035403036274073667864783186976068274098456706435643896627450997472145181201025021264920609350835980238155298184522279747727342357611897920461221953658049863352635313570963207834812897538330455721427706876168348865397544669332833817904022374257690451577023661310570234739852489873354720155583292559986857433421649485106599955664294489360374184475996937420513873611593458558238301600648203726199366871945722318767106456773714004820059023485017391297398626607417267068085853410391557091707534833596885269861715824275718008881494757146688262235664451808260115101651406780109180112305590969099684214110450543131123474764320453384250083197083895890288013387202976583148844411012494015625927537773535768752950805147790857435557680889610646992636230608000524223860398335885161846081786033053716956041691891177885634278217926906500410245240075764762820371181366008559168427991340172256337786589617240475351640895376034656790713253698330472815019694607501314696167164256597045708218292703244412523082842074977978169090257522978919233749786518569027923190605660295892860843766217349660716377664106428044578167302453562524965778877825699735350849599447645433239229969628128519039712598157994532506333258614446570553942840738501010914282379308138166342932423659240201580030447914059610111709919153930899329355819286176822837808483223535951900761472860624256859550660951975060640529362038115907559760834555093572111618172186008637471715882679845062565005571239204462223647350818651262555219722232516316783816115545475842437652670459140583528870202357701749951808089305477369460826008216567357889601311027019921336262057718067310508059575813415874261726141313134666928635275971163568430765568487899461569025877444843116691896464959357981223206512892418422523603128015479816934759308855156091271399968306080865969749206318985312427216195216369585327453291334928574821173200870328297433688509803486821385186672569157256402307868543477067400272601340994595247114442503059822135454358782554852933347656174846591813615283001557595710466958029252976660487601737274511286932302133118732844048187692730581428952632373047896655998142688175473129151478101335198386862506032083462743503402612741594332066843194307382672169141662185593963933611038748923382688775814496254953400664409814048113751400320500126201510582838175247686658270027078217559381482451353324409577275027487467575119002142980388358115374524873498717164387203741623127671120517681453031777530312921896517898194191321330148387616649713305390515410502290873083070409839352613688047080302595843754113329740262883185816622659170296841835793150254154868087396033187708625655001112377153545913200023947838531341077311629475980190730804692359803817840396912942766138960547001761400938231672069433149884275051670230250812169645730811502912972266376959712835425814392274714536496576311683475338655672667101283464153881367930129540285648810199656646610520540815871323541181844002694010197659476541019916870951211828326104396804049064020660311331416043153617544911081131257317482951335669605840773445928745750256687614203298174315442931930775297087933631528732673374778652238591846289334680012595358094496848713506024085747104586038289807766044100651985173694685921676257357645109197900210119962282619295264506321823036985073953989871507526445308558947928049484127965914765447923017426315327986018916956446018552026156273855893842733999212339661437185321141433421927772059822744908305312732169466564509928563671676100954051887619195186357818096187581715443982046287890210728921652592268701199564431257359137649189032092070241316342974071135365951157045860656977043032876733792771161143747967750824383360653696462349731876375636622883060388602703353837657332985521255209570329102682944501582755420412714638022177541154297754674939511661822253607315186930123720096492903030364480484524138687423096650681550870632726178952629696416168641952128510753029518214295004020709789675716577785536053232388450977726076189019143579673700420125921791073448618123238677965349475656568687726299611047995444753616013961708299032183472786400773698268375779944748340780332578096250699240213091471766771510024908131497912427987921768932314670602194586257542413306391113315743735247560192690358315583635957000093491173490367877055812017354326944420287392108522696811378932737613697636452794340441794383596599918075620504569224557928859149706870168006080837066655962172488686610133603855842587997226427442834875261749990666777453207403381579130195711289876497013033098553710340933411416646730007716483712117325609866977646255857331926540708727599745770735402542653183580279367721351161404295531558349372495904727644774774177950474138739723491864081904289507169829661077116592704949238757852790314435769100567821190179417404307283385929344924951290534486412100216793690189615158341826031485354360487105229099540828360773946142218427505650467258986039778262728421996340447600925781471056491348159215737343471760358617858446720391268668730722270573441776070651167180595182016101435742597682708822814591180061103098438982035442905569190566864972237464462803853660377286022964227727913659830788025286691800262254324283986122160219519106711378569205497083611749204549831695537845940736441358346172238006505110609613724612067733284718461498552217208120741078181679372051477479514921060690591653830084774649272895866305746798052157496644086537239387667274193232834058058895402601767030173205095107160468823706023590293855446210744991338113351644984720822430698680711512122804547629742612462555933033334053947495924185551981671193162256431677989769822236272512583305682417077396659125164763868133088223203629199840791122341913909184395652237137791802227459696001080991186400239333986026335287961244554469797511331170429823631948615960380691189515016038995996517232515142311555767081775365342026214148055155866049203260935636063686010020436775122997089489020174867639056902752087315881709947633115197535450701837312263016683913666157104029799614247963346026502535230054009885571859164959267574267159566596155703067044302091720761508966113069826665187565295578775459535994496941763962757756529645954112935604546031810398937461626685449134695518470816612696430908756936708737561100191583465742863784807213133113440336013090504177799136045633397866320063692201123350328159481116421247793730812995668544079795741298461012136604487749291104937416887458601358616016591965073430882278017824549005443168307178265516226344926767447684571614693142079661089270186386141634388794830277743334663400974206208851903754172781867968583154776539111961592377329459902042956349588318718655760271001052661295373524789861724983964251528560528696155455633270856689487686350440065317772577931479076225529485822627102554260088870545195993248604458152574450892148892475633493508903131730061937342527380938229064626786271308997805229777537866661084298396533982659053953207972863250534879781156657053681942132403788841973888712911439701647241035701832460976925500141734831820762783574549767917891128891297988243837778079630417037046612865673094640165511726156460241166234899513518789599188399267738731088091075995904245991006724879329646892682482681365242223246404610972812082156323318126866332437205468701304563438822787832261065017011197427711783125144942402639391668645811011073772639523254467208624901255005187763070804435836372995306859318295723587418971719303552086390564164681794980051764353938605940566893056236886839882084926920919819477709283381638135336094402766685991673834843472380701753307820895045782360734421672837106054685840478975250140044814413048199622321440634875706198057313540020206164380868070636467563579855987389927504904747392441701169948511512299736061857921704690868211128240331607579813396548591919484423962835840865181986162059990626986186101020085581034165785095709626038747269559595186145574059989507359113802055030453147832326733713573391692890313695472148694303553886655027791805585635398304889691262932006759248051460956048817585109140161781854395813509722074452319154900704845768038079644150705592442130643140288992999716304399152239222170771319834991860474394668332578619199375324386465257490374836083180523444735703364550997041150757801245380510009040660322930274453087586131399737611806533159614925520695717044752055748322697493757374047126269862775418749614648917039847835312121653936670175584256351171629944519047151089465917398681350031240426008795971804603413751001153525913757593966396381097469722285185192431924768533968398118941503824453583539602928916170321248478989203526625786741263934340439283052282753988428844995647767004197130850207975508505601270298701958283974320765152407422347801937041995372781539615613283360785697786536390212023554802855910263034746617612441370834604610294895341064138289028613383803303147385771857753391529884914292159442668539444714677419461243088760961017882726841266319135267210789152090549790487595857645228294439273353128807443841533391194693692967247473622826208664728362767975859213918974380064683650286208468586639862497378653962928208346237696621857232184619018300478928291112972270484157618066533749883301698740965444653594239890755239512963995896178780189846794286476322388088184517302593624065332661520738916104644313939072274377042622279252479912687795662745073468204728522885609085233060325765253019742027004229534182676469106408729201036456490472958192706820851571967090742058894068077571284539862347254957155358494362381800630453426985908472421196587580087206262041454363251624311129217462263012182461503987920355931585981554109012208705733675007563064932556930147690173480496695802462755269623189852972588977754229700953082288180305351055981664839164287760152888292008250099517212578845304775674396383826054404701110498945314533499700747872856059794610311908307359909719404657808663513950166297275420508208630577189220549694306549338998399396941266046220692715225972503031897742618035508118375226547337972598397369417314940569367981014691119233447034329386041354274145537844470062343466514258456097373637403763829280915696740468349321463862766176178357324834863993565465344122233376913195750401931965543996137579011420049601404169627065154406728645261361200391587185523437686059813764276840934188061958932516735743705519754637351250161842678885575079321237818009501358660611394197344141811443594664993222020191821543045058146312295959297442378884688202178049232360696894286418069917599989846910896091799981851744478543949159553375122251648239829569118656447651340925337176572730711086090129975329627927482816734372497981982008629427936189109996342678903116849226084916848700040960733066121919866516324612159909522077578674618687331379127296616647650509857403668301152690868261375809405424213163044041378244940331817555963023384180238791896243022434174652717390895536765337994444764764962807183093151609196495505176655213341388980334086995964358946403010528862137736523192128252217692938480926725471752822835707428612258082393406028403413941443688904369938847796599104639417605565686362349082241286885418224925258215309363922237973845037982773435338278768056740765417753375696154408101398518306345350914474174383879813068603240998587280928095386962292297294944227605514282224144211727964496264315897039495392793773633130377458569528370706098483881920146078530513373145707932499434746945661488195182038819425192390073246563183364404863434406496113152715050086827701078294498553174168288943881877510160055571729842710737955309518467435231221774657333369081796424265131215831218870891223672335830083486920551530903142614500967606760933612055380950974581736586402582088033326587793355887348744334345792710892029952638720108952934442512085025431835057632366616917291944529261770027078596247261593969611839991274991653754910831612701759783241067777671097078350135213479504492966125461285252971471080449980592499470111680975652415525352047796705753673639610284420730829026135150463895264744633628623429783598400519347555040223091841271566650236063737845153301163184232286828221327558259965412646482627623318277860777413480521048591376362411009947142240527571577096233367679436228838438827722720209061463427748512475579450973972481277406928281210376140326083869625043806782495560183554880006308297060658740066692207711514517501490206001290043859406833694956413680497053346815169651731734940894297025608040946707040969509801142279825023061104460072981103771533377201756544195746445492294208251419926242625112644143754318183220525636167798101846255192079265398200510106276002716793650300626617693960023139483027071630384747019389057564414478839798213499112991119632197298904319953085958299706377815489305799167132256807204612316356538186764432025270847414741560139227671426511741408529960699545963023794303986015999976007069923505581834106066354171960999878543515929810048019071982637438982201590154163434554569237871513501509529327075291277938695855936476081323409032109919473294419835810401148529939334334331648565347246906287604850629253024315697585889993787974465059366706633771843456988554263274963242700864201577714783242635810083678444009891205218044788683379457914079898842160471711775209760138101456849820774651902555496998855411339782207172114536640799796966720754955508284807936999553432284859869777557574532644409622314547495985936158890380143218721452595435531204953884264352934168210369844430783448210228601882178076089622667122005953784395580779485260221395770934243255214124691980493511791187622335266607495066862007911139467156955879151599303610482629481862225733016639513162238426331948485118464098696002666653453719995214643060257513476516270899581925109267339386041299854806136869252582073118694629712141349008965896065748775964477180438809264270711953332542822002645844566414412635787171402983230353821661985803256495429219524021365020945226450020268348761737079108466744816073941873913859396552796450177821201149275297378716000858828425445287619183983803693114973033844002122529870062175414386057461120577520590856507232921354681508574668555944951503255974969091524647372217621992827473171077999914629515367881960000471016621046092421583006982223315019732674458209363357726770972519318320888021611597993237678724915985659523367835711584795865494867162891057570806856700700031800490421813935271812141134431735630229748640202488433518080149156241602669397959899760586089694699989057944833451715513126263288720404699830637901240745875637777253505352699035105288600512088894496918930100239687118252461134364674397236711534115368810250704389163086737138806466594794447712538119363142818783671809580790762780240673356886990725642771169398468762876654915013244130797189960055542098469578809670929423599005545343868177540596147570629507149089233943593614332136842493747866766336636294650420937465262820244585425313855627365037013606919219472053923724232762837562101012619049260722282836025667550471779120986125009500358996201374768763741760942750920847185534935604711560209376357846728240063199229749679551727723753997526668874804790000973433457787366594218918434666751963464113445586468684641374918128522462435273590299086219173080612480333806063965321894242007222453287487971882385307158066276726887300428501153690513022788174357572969817378522429366849222386646889073655348267139229922002128318387654404076585507571020524708777422697194742039764912283109113027957883343439901182271335625286257329857318392200013566393323942862168297248413934665198267523636034800130924295947752017388238527954225496160758179868790948470922214512117561065723163519489816963297129551962688307653059949449126845071152309398891858077690006356754857014688834316935665606364596142809119022223186279468099154411507434297170957254688253613655014453926648824550989907340874248303321730101435370794651284381966575310109386591244283569427228482955065842125141111021055976514490957608359298743863139315851934723268793414488381439507031224844542354296599432017339786797673012040592159101696409178536080368373140134867410312056414877153632963998151481656254586414925494451809788923718575248163760032609786318676252677148216700498495353417979185577211361594403502738270799277945148763104209800397712096521249466363048521947976349394446276293633198068247708813593289763185069350407838751652504226151757955164372088808785084672895467996350070559543844386468799020178928555164235952422884996086292864913255180293027048630398288078372120969731623576697089194500091950145580037140454886409575498356444194024231544727652412308535424383868262033044503796812297575233563858700834041413336945113030040672646061124612449450292161674479756018816164479296223076169667624722481898342909153637582329749366842927911105817293209938129704843205019538291494547518134635165198849860293921877560650512584535628001109877210880461402240670500257507164672841535874556073284053828121385265304800681529704329867835611259543624519419333576105698819273582208247743772250922501233060493786204375178805459278476615848438540887800298195389520944003610846999990916238262871655175443589113170050497386408197654310213758404865196593587636973411729057245919474029985002932242086746834443195009837426473120276134176433535113692695573397396869079380443771165444835495559284724785937502860143956361154737031762939611132377411935939612929037548418022428079486160145173409392554208435365298063577919410799947676015190752581120582657838818184982446329554822828639647625001014553339040831015540432601111400084672654588274941551310999840694681757194680488286379716348403190435872344495581406930804686831381416724057031221343779666213717717960500509968181999630009472041593703498058638326069014265250567236262702858880739655197770625626815866870156235556838410640497808962622358913385617497940509071106171042198535594278003627859615015099447140210729846193279429965202802598724385190568054433304892296569087638551731008335833851760136152767292360414202383267836802255770451155261098116744369305250699530682434685846443699459530731294766693519388667360966156860579539276554725240619550334987253084291873442487019327620295856340854621862598271594815819664268391754613317820571231927348069137422265731163574929734539989943231517639971690277683843358755112337830849465697085737860197679604481273690296651947308443037421364873248505563288769974996793771374121029996723953237492193258213368099176453063661774111060551222448345811160528425050340255883728561531503525545746454735027107588729079707404232407928678171882109760851400900182319941189134506003757725001933844536089165302253552050784627938147913784551918761062041597727568798098740560882343532705287954217964471135785477231974715480214854802341640482244702056384030658608716222656142046488596866381672643900798210760764595004786218558394673968951847661848895045833941409301634691439745384310968660256294967000246999758346998722772460683722852579838761864282941023445706692699180307533216748384372298186890003627967288582662238056832967425416206158057581736830197046261636405422921031418341023089102055239836728976845682367309748188864430139129847581810875581947050507731683410188361008425473436609390001410109583321549414120252995390514293835790339270465822801139922036812352408047798515474910292263811755941046730932736522761584784816944373422525722947859667735555187234377938549786277759751295081947184075058635253082898415101177229371929741992864523842293739156147959430936663864141875189895879434153652014158230401029534360085712011827571988245070317204118260064487841894930340992176006631646646601784005762031084848682542442834735601039885705062003960106014579847384236907982020639641213311456698001235615034457493778709088936348416633193990037723323300832021094549747880015011384933183584595063073153062296130869165194795877048353060963699846814368158923750144867448342343890410568527164796532675079846087996308439515380458357760002786242489572502670340561274773517782508814684832977659053578950057707240341022339617731257147929590615690901646462690673527361251249461875530804459845073152768908998233407007433711847120995380782628917641310363869562870606235275087708088286481816626287284537420927796824792018020252984663125718182473358109942876591329538069506446372348274747910738844999367452772521949406522403803888200329300562722409340331853367666732450052336204835216577197828259033225178853029019362868337631198948756951048240128625011719260571006096555436805348616723846534188282698490472317322776959136595720087482552351715157648601599085263822425390133928972452894704441591852089249453212207131913197757171048845259686471705066963229561443774773511670177985059947154144136694705240154642655309047737115129880690524474233351773389826205195785476296241674081028154696837239012729792653758808462385667582617251839989594181028616307561662243584758607798295207699462397420035562295487773969575045937440643554556145431849415551029853208996983171093823069149754206400481703095332292803354880866055840858119342885081557699764267810743785211360149027063711085797405943811807019880289357646695265374615033018053712254469689059218318921324234690022195793475195999593803868114741545701892051384419321258080481066758746738966981227888174661889158701736005211738449129238089625658483580221245264917535559579466702421743454164656579710580769210511536445860648536325336126280038005640355857159471509766775231679618087341156295245011920453911559881426056956707948327750763747098804765230125547245997032161595271134819937486643027662440969360629672014198241507577522333135798168983290729219354908607463866179457600543334800065108850198585192361160155712466371112405519799727419511595986958441356927915828932489180509816960249342157200348477687151323175033484426474367878228537948950981850483883627315872204186652092415525544067936920590033717099597633516864433174482970539865722712699948697073357481599306055848953559580893423554168385418831786756310044085373511229257752276293713407567603825200430704650936479294848816484404898024521561628091426032657174716626680674364548522580505749715298800002978774748057732321012137932429980058448953008790447299071426815566639068195498113356606842172836495267196942725187412210296456199978992851006162506222768738134431226857247813292192178884793680510882345278421891000702296869661871072116337000684903704850127081429429874569293202499165895835390598628512267682565164794647931499044704784215992580809666384446096653450770725685072224169920869241072114327090505115120802668421021019983600685682972051747978077847869295444958570534867921572751074988070807392242997170015259811408105682582742490887629181431971751224304911733395049247874465344997204145983211511043537171267383987429365213219323126100538954255313502399831082130251510449679127840958086195701457528172715217624592876736646576419836371851664029434998834704812693556610909389493661166134655772369848146360365600137803434466121592534468016623693515458836298596051188508619243083551383921366439814917089843244414351806195275577799304510176520331943381048164444713458847233498874401105374272691496080055831488341860262118208296387295159134112816368578773940236044998792401210616302439154893268786469397312079776477100824308166271045844775435311180209725680336392477078784531562457772389838142627719697203145072804562775525700378318385792267429227061454910894750691634164336130121571491837159875114351647037573183657143418911342524690995148094776693000937085396151312593372169632005363258105672730953037355810532611424292491246630772264209789056896869797038823057550137378900110580719868458430196073758895489906580728864576847851917247470082560274711658340577564059402572213306766437816411731871561602914746598327917715877271289723923656278118295011605767686548559544174956708593199805759896463207792022644012142818030837026581013034093682306596932891072256131119689446759154213386791803111509178842027508482468015664780937398509321566566074499326096783034588791114146403736002724954110342164429379077471027525130250304064889380482438031992665914192464502212203683927196530319518021595720495282690643209902758816882567131293359340320123153190060766275437659892577714129397097119762643951613145063925048656731403390459053579544066142430753594559363172607565105113573488633291176705225249948977400566276374182562413213575518589303210179868753096215259813208074431550799486220062555038316558074775562731377949339365205476276295390103351242266718380347712331240707827615878818795819176757157361119029228829725652617852801219601313567613951311351800724353341115616861494959462640429609207576395940475870912970649787175850177347126057530438341970014247638083667658397374973973239002075596843581918026818917206782020456594620817566162403163907590880452349126475164590669992693124795377081899239154071586985722271135649177848387154469269613607009214461606331052686041933669687711314954414805688158212061164745644357327997877471574240066176249810537450720245627305174896370626329627708670858412685067489342839869635387091352970548807283190010185575005365293492576285698323731102761988978340770076664021209977449525397585088333938320706628136267545289670438500211631838454994426661541095830172972868645356048091344468282651175677834103534045094643346191583489882575937000220609388680111566752330391744924637688362283492947876780922237455753927082882920309339493470171993076871794450115367678336989079200530694424040650148634432020972426190339889624322715629618735274977315100568852078303764801847613969202110999856924413291655792960174851887186016950809091978067833992772035336180777234761263432046065774660164948623224466677825630713031680049922420526663287422157877892410363777203611570244036265230094962081725708008158067128495058877082742734985316660357794050073470447564466095934541479964743136473318797005451289554500377091644940371913029919440307706771450894829440762259952409917891543081181925079202367244494598308431093055111202096462429892821385157521822235829750626095725176207258137514976208582464436770870546314987879133426513456503928585298244111162567124549543349678908458844318199580013288729917111115250879583049667247344721052229746872493684079182227330988837328071365255385219041679249430388891967245040647275814455612103705787835881942387728121521774408512439999715535517629567498162961402497865716326074074515625344138598220784282370892532103481694518023563544309196556108468400789526347544536568914050111343987990461081089238584165263057271896155442360570756368988538657352717060669690272134980535670189156549762020826972083606866096981594939019998591489992286745094392788241759307240648907549113318946824843270683558995940711371842076725468897169778226385964078823418395570156095097584094640631757483714789791986135217181061646767140160686489404455873591470646980757260207424768512307973707443917311481798477664926610358117083702523514396549808169826469455045270731048940363330514101447308632746611541394805353251842038394545391956833825994080560792681042584735409655459699493098238259764928407294170576899263536723209091527609517402888048061091115128272238881568734489564423049717926790569659691142846665392533149013527799454860463185210036279878489818579973841616624530643995282738051034066902879912131105945511013962989302823450750890147330317514970420938126907007722867408220181194307718393040186139599509226299216126690650754201990451702955093423213665586362507030696482393276512196377010715249730837692026556807353252614096423657408603888758379421597899500889496134430284415566651347385540711020020293363740573722535503342109748491349900214946482421300259201582551151000860514884364686061353079072376944290476248016544148812037957926182913913486832294307565701490866908106323826805376772122397846018844435147779084735339160592658147655551994246042916768275103211554218135945397452655317137730753956330421994513407153309135809217182257327311226241131265073483798762022446719572162488272264463663270563181788744840404847532806977577818015483825042204643995117110993679979433309579872562096934244231983878749089996621887114792613562562343726708471521112296782547418472905158981069449879919426718286365836013464729176732593608461209730052372441056578385317321042771852659427815022571588901380418222249027811763399815032690675239849016279901647272118869609801047599558726832672011281427523899340210263784525385823325038495324024234619070695092950889158945806192431865620938001961564908884756450230118991671820993080564002971782898775255720352383051745366276445675543608823160659004810104597881939780995464150832507458530559777085961914818813934784631084964932552442081320696927690954000439793392195136604659715238583946989649679231356204630422901524405567287731382149018417022522506873321872000386316480706167658194775046312897809636668825893345876587729420428075059900859409578401076859944006182942772204796638584850017869225163107757773084244971063309657154626457117562239830275826604453151772543822517650600886809069030632908761565194277851059020391127996227426543438348673863636945612406346161349466789683194369789609089337633778673286135382217975792466917240612986644991439484906705952863683835541108739826263651531209078589382911382478671873234320519603361144316667892845079586809820735086046058461685443567434296126844934291831515454468342422476103835306251821545496215531700063988189380388304904371131429141114668955056932199759532013648081600608084652586940078683431748528663285955373488447299125339100208206613017541812306672165574144094623650467439724670403095644077729852624439069664024980045299402647901982781692798337650539046453082881349740904189106784069742864883077362333411253565693569380142522189390814030544732149028838074275512103050315459505440131641282544304009912177124908331183847068671660879951709555112520167433450081436230673924716844972983444931879208903747257217554384844058343034504940723487109919202491885170082480842507692104475225869508763317311303117910196937636459634025660697404253497784513953522252425773548333338607318033117804256902006709754387668089321198118926552004147393933739023492237779639762642240384796016999204578261855621462405959831474658721629522149364775454813488274252185129491013173151453446841520962773521286261091204407483229962401917032523956118127187709311066740799917690684910085470087827790453228343484916805931464921283548244319907237391003248768371109607733162512224470670517599514168033235788775211794998551170629873460106297831514930504518686200192709522055735319187846271613567005669927910520125616388962706618987135498407416722695624332638429130901377818364111290086240321424967607546120471772932146545204612135527003152481335378949854261985607766703447317210120177462426718131254965400652615063907015186056310698908569394438804577188784311363975367288515094745793896130435755667482709125055553952445176726750772894872071671880408594815013361060865973008362206087669531875936993152611727159075510021363783470682818094430800796071395082811961707479614372209218808415905475784107367634342989323602911588885456904893973352644296228051226071671984104295783569254674687461688232196016685281208897734489430522321849634608246331807642936393926286675281523335755636739174610764001782006506999311683673888662208817215776969544310541619089543219386335116265763516228311735334588743479397760384187877012351879192950595668964443776109185711551627120484317854612108049393381703564535009484511853063762507837357598144124761547837056309491930981997030627020630190339603368071458246316440780165760138905867727188832726637904917575931305447128800988457084479045830739978557528095439050848645218849486604958139355590227889575298439318069156072307425243090287740176067155347507073958047769003196667044021071327574298610578796540660458893532704859234902099405144146028109637042187994381821871455611335516359012687055088789417228489918776471699674751559826003830044562426288797751626921885013505839009086782176639901022122435676240257253788197800890873144407165554900435177008250022260639295249583120495477039094551139139653784566260366165749795198592860281476580525257727223165914075987169711334478240665356258118964958799166102180842497071982334194296175699216761058850332186397435369201582490365840178128407273431076862634710681564908566081647960673949776395713793575640501262126669234209828393683746809241328628375915210144280187460679732437846000461158605781559466112808201337716747808572341383574661937895105337673934509162703017095619277469499038356153131641210837001233330311165739202612079616660976574203151431934254996397998411859232667352477692163301091620605544666372826494705801344578606341044118370464352789324597195892893419810907283672792889670971549911738536522640729646272998259211837296653802831064180279391833970538565299228708981351678158533077679425163579352555859787174329170524797730724658009033862598303272233329155203641683922858375012758378781614754175023212759611180543127638895753800228232054554039438741011879735348149043601524252893060299877756246206093073039428594128113932023385554406911685752786032510073155639231886640500588981296087052062301779336149226326244503338330166374100637987976241103687203423662508118191134822414583662192218390553820288310951744552206989052755254247842263215159324871887149059032366954049168605317868602176351366751988563563832896577186859513674713702185095631046699040809804399672452327621166153155511929276091003628943461301807223740171994536563561615232363649530461043897127352196139997863370668482202330605739815437796669347447883195357111980697369068469210920281171470629243804321338838478190266803944026636203796528192227841192086349360965870586346013801762828877726491941079655608237889495428887425366388678851844101304220279082613661829666847399519460621176789051057080503419413964814978043771926603751425907147500440404364608047852999040917542138134345510393929511000666696723604703549741061452341890985437281061154724380239208279719350434125938983259624912613827455851662792642681297548459355569745050706713156741599197058080829659897579301279779626243665827581946851763468363325651212150606055791245628571076213544468297444490143243370948398519084806665486764741381349947583635470621519488529354505913777368851534794077033129324051012329113378895461948763610046636686575929881219105984223896913736402924756441682106043936211566035864261605084953905883330557283510115264343121468840910407701912523002242558651292969062405219522892571851918916966029809566022761337791748496627475569893669252567678599517973962777472135971283533621086375357722533584432361291394471705930609024925628749256965028970439448741779012354308343392717318495537120597149573460911403003624218899942221841553802120740244889420736808054696940292557879583548542855888405077870397562595383221525232062768923849525605132999427025230626669577737913733144306311578986244015376683106450976506570207553196008813119331912448945743300310242376109479920106285145053378310726552964971808010331513368724689496767628305043943893644938337798921353601667173558337058494132226710175478910662223163263365253683901662734428931365448912269419785697704333617699634429862266191647799279565865487646359956208534499523552690280163364263915042569555144789341934652957543735285850816156914603547391244338772154653067652130332525518887502640803703282928588950719260277490072409332213401616173957166642712349635786630907005440747085033833275764636768209279871606397801105256013646951301932119065390496901744062041221434694107298722777272787279021561843055898176417425228659291772701743208160111878427450576995769634082124367980365995044434377773316917332803540977442911700483610709794434578602632618576288663786847748883626718654153521634349836888251966959755581895260448994747943163800900374359701386708753379410452530960206475437039983445159793818696565016965555172295107180182787921847187701620581973453572275325491149238329414988721134285583683811785060857323119048401179812398578937520545736235525161606011228865203866965584461882267967999718044249001902528164132972019835997733403375544710977049543999255661029893409816964917926509589738041222948180869317297425637486416433980260305087148803450019046670862375320917125687581417816052879500957356862848518054963402947439742246465271972860653080928551517006020372461996423444901537389045745202261312646342774068635169091373813059775259339242616821909588510547395049441709132149900494953207042082300366690576449800566614447704399246497107552531167681715202567933090777228699385089852236160698292444299631000804327238355932707426772983946806788497278388139545641699469848745047408117643955051671961949659320859872409840747096476730630198850386410181193052496397993856870437179139459520228186249950181300590179191644717384917932266072944400182315005919398026163556059487527657928177747999099018308911656028022717119188079674828474087886588047362035107040002913555537269275666489919874457554524213556438924008736472257090715027481588630505953894210921679670495178980022810832629226637359487568050876503623415642436470883070440791811961384937490551961561601800281839980403954533553484897568222017094577150267003678333825900966909891817551843914697091488536978920423230429341496249165497506221512208197772831189386236441117700862548028076034166985933360438461010322036183514693198067204807605167929748246524244791330509539592054047666924585641532531773305216018081632237623956455389456661021491928253371402095891463589716181632060113574513303724018282808337774798124080667741975463816152657663409219867609466462429411682464286891650991321587934878915329381676210234480842562170723758039670561245750638428939260471543187064115186257208520317036878445052004316426902359724273804508189377453143546609066166375032630272589190431254250794262762874009724025885495851207098103439033972825492735982519330553781389348294030681089983600843276058219642689518531526636338550583644526583138817226073582041137146899435813835126655423016508524236800377697757338018665352216774921077325629263785106405280910066130546348417150073366909525011956425502674632813788818760107364645117174586462020174880552073414551317707387211049010900097321887145643394433071983638648333923626932438583398786965884720859251790722462937380545761122486099974576606902015949297618633816167723718111038506316645843599239844290973342141278595379346721004790982580315337740026848209810873491205507849284600225473287161593550275869469992035592387187422178177862975081674998673498687019144470135029225878674443515918441200095599414798201467244341361340367831264144605482001203525206666082536174324180264544810101023835628354265484303989127225964520976807971145411520499848720274539794312709829907977748014367668129136027869721244858134420560961775311523693118940979384879455021023375063226499653511782254055029046499079800885264378588255505703832561765099800736357147160717529448572397337085902250741972243500150465668752685306420922811580235976952141027795395637382812077607880711692778264504606587021663923692152391446763193846506150305576187675098483071413396736055368403450177347142796165127312528547883347683857955103222141367003382509966048484201681677038287327823285542920770927749868037208956603013994214748491115233636990264568288685918258109217050134556762538453636500655600759741816635139506850573564389191503696701266816689532121371013004466686667551000414004488586611243692869262854263113890181038367953614165733156262250864511900795003861037010387467351655245683323135628169442054840712055147281530706767179085659402807606294682129561132670945055262038194018566770873712390614798664548012809621850192768863457469662681802727904168025914748646371762391984707719576601534761331209249657115331239545490301950230156681066598748182160229422449319965559691388309352754395599120044499266250049348080980356583363217552732891443181402216495567375574460740232198076108571108084477101804390419066471021666180228237179572195802044072389415142605910721019642352562561759204203086934240274291395537458904400466730141416777264602271495553601770289083441804220014383479046275121021233746776719255749536621902016612381401472558497370136695223973434482063797461330599379517498442999159072254436368499140011063394782939866645729953170139300444539057339175017047405112903657088110190053294592546722374633478481149374093785385093268734738153522663734183184329658276833498082734615404696425970125149274572274109379920623541492105977933239508634998817150564752749999926601034401098298537960930991569900899110414860655031269725662352155412243046237786744615378324830841870269729917553469628563268268176089654596782392497767750152257498935977047229879478093362225772294061773404599470788576433646551295659404610900095617142337459961267371611012517700556053353771295914653801235340396457760560136086562748337845459365236127330841546983505363440781477283899095310923375315090518724199768348071824213449602579198258483916026178631694648121410551394503988839276067443028583176299985301479299493325014934476319544128062188254444051478875872416467304521466159857630080452871610206068175696625595721734009540567938709382730670763416941233226496302109320747939118827519585783653047560122951627551832522155543468871676392797998770494079390563362724279027017507729708668989207111315307002798299044994896144933249908990728670648994299150643079546495143947654743897584011508724272910898359499818308420263943255570744721080275516249731326102308507958364630199714662291483515027755958038474985686927116518926960559823239443621256395018886858945473825376298100235221119017838395345900799147598003976824388717986329941131386618002648564400290641655483693010702427769506535682852709285591651753181929391479183249698004495323764751496215116877858057716283437210336532194468980902375311599419515888910647920918562939595303529653035915189708599636691606585156493180023129267572599910766046078519546009431054086722950854457082480084701171462474238128704416825385727500009735107869738599507881495467189717277081002288484871007670119267973063161464923573590807038333676850466961914245359202227471932175842135403654622122258612149277478617513055157072311162491240423351906104900957657187060765876559647179680185693569024704203118181563016084821647381072660693425415930150932697772492971500010119681705218355459430427779699801110371677546255533455998082061962194383709686958326197522890981638813639324145084419738963488848569277909491908666681509878773385339271311327706641267221090607966321561734693751267748362529130757949580525732575434374546646689762511238365009749299425789709432444728929667531537993929210375935672368807734400764787135542391825800703105159338790048162827249585137872305124897354514153715144594402966264568123797407279607706484755570087890235438006426826394686609028024404813269715356054763364280103149918917922473172535295796290234460787470406469404605461123611990654035215618268708433099580734867494983403001599893503586423005167740466341715491727504381896488916646798210917073028331541915255314511362988916037559723575485942878500022494297679144895736537440839016163064600349444763199998201400609960465825556739303302849196776044907003694423738237139127948639724345186030539211892676792032073560890673121322116399878476255790532182772476147256493845228204950768879783502623153336182399276100996856912066230698289855501261752432488453617053396801548565193797008580954463325632167834787204764586965071620107166912061583974982012949010659634271929746012022501833899171837407560319153078702077275489888995441154827638302198196441565103284287970149928447709745661942557984854203242420972435587749911473692728757886821004826437340377843808202964258738477981520043236119831079957643719729947588876915894113802778751957560032031857252910986030100948174678294060449320296245086651468951533413117365850005296256118706820578173831233741998604929114396797715616276951319718962753879646261898949530676206421790193537805419581278801615767646051458243579894142432280853933268117202385658139900281490978209843516620484204161622608794454054517562585573255092011842818717445405823412071845245942989076661771633394959362608189007977956754457096868965463547845381799981991670018612133369188750630779593628861816293437324583629577027303037887102554937457273168649727026742162195389803718549961036244555188513319168047230736917964919918040643245979013228613952349994367632505344049637523285002796232570004888060210565813227869207522440343183753564093444443547942684381006274209862012681531613093744295363624105668900077592784911096200037499953778967538847741654191416731032752179114675137981719628534135591075198904247140699022947594789700673585952480924882545039545195497142822151395306269716754624573479637431352246274439675349583764944692392585035446437065587255333775595179389687886548327938156746695784841760298456112920357001404167352192586801810412765625354983684986720445462012167377629710421677204462847046409629057690066492041426414035670404858846867638947299229816997183138906485675375992506873496256308614393472259903888977895086741908776548175613324379923361062086218014138763715954388706889052955435554872935089872817870464137972940717530224790719789139500433959526429536779836072604023340900239697927924213911783075725276898673086970978857629707850431211651493431148997052250575805558570408872845827893430391046872020161024642182694534595471169474145038126569522933693629555773713327103035005825225603631741826609724049449504241275265976094632099236730723466656638031411405924199312537139558717046621980374432641415596782261631380969670421631784955830015260270982940191768866206705578048994917552565528698033561090255936382400975324229914465961129295758941570199190860336654444890344518528844940639991542295854118725141721133897724651461358966407088667681562412869590148045093756247567343493750337418081750815568696559765275848140672247230857759972367008488905180166238267075440225678281328823345688829551841474146763406150952782050889147490127460366064293493625035036967644638152230063962939164817400190774496277134706175926987930619953680706048087793972371129548998229304499803574247349578208232166449267274499766914844229730307696030902108868980353726765467296584306761828314791761761455461510961787637758339172411954462869313911728016458227354205770602665220228222439305437398659984573734410332452206288674266100014706654414102050967617213169577509489067419683593285390192484036700706539161367634698577922444549620365037424703968951887583590707544045517032443526277701837430743565877128884124417648357138701820725350772264443507905988344752715948901356123504407921177118134234937170132191638506841816982457526196972511175569853355641068763969069895592861095577596393143466246784522997316562606200782762254612971668407096701122957648209989510575629610593798429486764883080617465361616790296550522175731332771379529005997226462691662269304745915645481366807774887620252306421895349366554541187591493627638453938463287080803285897083009848378187254935614347588195053413971923317845501739122352471070420764218660378448829390336235979390694939926816835271812698472184106130261710843367115514446553800492119085296290798917366112761462047356597770723305460433437791521689208883646339086506281284632235076193567225073841366440427045611983013674670401059265497133936176582468745413156671784882483194774142207712674906130993654068132496399281224108720467738168392247248222646833657671187096708708979072930231679827146200483251705183176785669222028341749992319273136092544616123408291976661302567828168735168267153173382335311141174392348818010915533031578088415818906220302001196118968454424805301559465011619043080549057977035764794065625567052232041148204118075724786241571301983810670235692319863832844670203684214785139558827948066593283216441959263572776199534533373105624123535045724956077492691053995970360550429413186508569913125123674788714381537336827799205340337321380730037054291773912073921782718391921468052389204568922297286099161695409725904613646267741797672762507964995392824616463326238465632984719350287874539980191614161971523458539843614758900457418845652278460599560680989468317514615630707705676416087518939634326125432571800738650545469696811677825744307178716517926905492526426816127141868496343981771688390651339420558218218384177779395521436303633098391672762671246433889029933375696807778007845470821685305994806417938886078843877360122812751968573081711789873641448918724906621049680112239693093950324677087467310493470189964857819765701526350923708462091684664931979822894547815105321054943071779397690184772535774579782299183706419674135242308795438781954954837119624799698643004737342699050264984258568714694591002494427456322945190446654542602162116672317023659655901610744142674555637130839020117446761079146933615173783737950653807846079323649952353276250170375523337395321122804651502313595934600440424465829814446888425613660072420716826099085678288232806241366690311006214412675374606038499256345850491692617135082404259168197679364110204107079848864649700857548202782526267775800790222593470488955177164989628576774636413011479176682580446959118759053458060441990463365929749635933328143805805564401004874443632321526467057212078732868575450577846488416736337311419108806479278817852131680036633119285457855115036552910678689178511275625107500172334463978985017285647309349809575526782864761285552421890560535701831060556360773103587796349090701118601284890892136135872410304775034705884380552543697878212541743580742270494072998700442431788378037412562642793692333341528404524442627395526419004651439848677616474863998461532681851905974078784117169250802518834540792492658974595220523836613836594514872485804548279179481419256976387977015825378969536642438366289208562399410042278807472605584934860440728176414008746138182472952009161027503304968828330145265338465176455960052357591220361255387311675498775038412783954460258901135203335306598100622473197750195292364720858834443325998184756333043368269959044664175346801990171887068865667802007121971360519239121842730617325297910122504024953527850022368609596516071043011545363472027726840537780431213612779673355207051728468816913425738871539422246879447848385334936068277309370249948378884794231740372940492085899734718023009672275954034204658896289162168325532957809059256487496165181942790153934869281163830745718349877340008166520546908398922108202294696454907115197405826943990437351531230828037380307898166887304551075176530950388408418898304000323502262137732983158341630170942605998071783011911201931953282575279918790840875413122774223792514531503868044471981015096341976189569746809733911218182878651733614429346840955349016835646337240610611911837384160913069483812437625479147762941911420930048880400068641519907525828737067729452586808103460389908325829117405468210575196328260681522785498943730562676695150792593320266954530102364306208782638370137907205561239123256486851438546815860660072051014188874220556040733014948996534591075741857928119944052023307983471346880720305913794875483591045652492114722968796420387020183300863036973348586843209765871856914995701502366495048330503183798664177398041572763570779525693965312263960606538034777085812672499567732629609323727067781568456142181999141305583138961861362782861932894975633652728258680856228309639943764250431761804140567839584603162704171406371107864423665890275243383014632826204712423245850849884382492666747073917783139254058960154801713227057342143818812482228358436463396109130960213217921234087476458685109381533926662429267301390485444806960361097914521716443761676572558204786561868453789596055291033944540628399349999253786225565828323343996870646187186127414978229765988546657239840805960788721462584118762817014645747909971861528627181109635858677313524713821099807637501594971089753946223167713837502183849762933197114906865218492653764024158787399135391639931730255697579166986008933714749284526198884561741269039218492277862105787510844044628413865826351940735845084016871609795588323788633953815877294832489620930598152154301552349821358120999560845482002246999412527508983203924164727733808347792364131377197803462433892094916475266083659532274610405034736522215995925659291660653708654535019047085753462098306575165825725745695032105646478404388680703644853053408352666180713989652006181251995938357702724274805958781564879783317979708250129819065678936941568144750304256943524710780398006610622222912676263134394219672456362258030727852332317343752031651314653617624415591357352692371085990956633655473955048143718086530998771515957188873249418807748043450888443211722148037449285314514034175574509465957814052584766088280322093131199373452141504694728583214826936743163182444891134926181486859964758931602917572475482146665029622822216351621875374251394150490651540793315803694752548091182343869761317310591614306726773604663737933282341284229436744827323985635685612955886531898211743471893432396925455695895775835042884462802418108252830815319110579292859612287145668967263129342497542074987973670878737276733183669777024919800448656645558011443429767630737715409403514133928361740378671315532702600711708859762939547425748778659804707485522450411842204430266264703714566582650389769565536915823650999451963116056793906161559254143810522828213662223266972639002033930999027054657032710258846910661371507541323419383532513430302358794176739946968500606937846383511669478406293726663504131807813086189504249932243975985633404808504377636345801383137715075496557305243447811716363875355548082893194033438374978794277300510595979454272419856434999443413943984249348455808612633709964040497455547649474708891015984422435589330518072887847495657773078502881965154642691519371306089235384238728416227771896650082554508722994136379556181419718858371960657416235865887725200394606479004938180560394849369506088737078567086838990740264593922939388653315759061849351062901596063099427027815879338534866731718659624403743479638435217204747338144199230401536551221276757000935995022975982772457366179148841025260607527582017825081861967356304246560297839178181448876815008467580258656634258971096318596307176793665970543908356677519362552297200358609650805807158587890280906127319806450886346983580057097943450448874774824085146664482605622849371312853591996714713168553709640502992709402111207265828287858514003757789052961377391165667732969611273154919880222987371823849322333318441539649705031717086628027939098494217966120509149436191180215184967557762939752041667452246598896904042185545074635582916226759453920935806950296441504626140320230286827691528466610471636487608808471686189068406226049757499629659957840936842284635215517601429898289585533424887205333709048477983160579479720494232075222877297812481294715920563493263476465855680980554852066339205533842714322757593825349845316422242350571944768469098753275166118106121531599597294343746842935139486975756740358112184732615248010000737969377676488501808615694433990664834743937880261821303936689663885532011571316880965879789856657770413470174855354823946524969604400860524628266851198511094281852496465068361458135526885784365948563261355872301876573051731222172339439288127199081936056422770792770464665534923509368761058573808615403851576590743305584657564052712002274029787636651123519917593084057715452033132086291004719977275565256452444900691931090932405483461800267150508725427171902277120034191736596018292287683175569810777384556256462009796984719172544512206332030490103974964472334848557154816057782942842781018432818903484134366417492175307096647340948054853279540019833309776592854288434169645722248734900028405886731038616820017044601539515274991289911307888739682087554538489095460956614232501246993270964172103373548390837168395616356106704248372157773330754422469050696704171237004124480372528729451837242224187070864494803660795336276810481312470916601557745551080265179698345853139170578418958555984604454840381461278183377468834790090681846091326072021490463409850810811837556580050485465029672390084415820561884135258376456063162567895626634182052881521429780816386934237954494178312673516011819497803250989032158450312396924005834201252757514849425989272741107489735478246759935950677065048144799443212988336065133236238260990393100453952276896539165139691667655943939980413048505327458714492038918325102474672854188187241560736372358498974558463753701315162815936764888133752701029409009057372274510663003155216462716722313601308755044415000843623347901618983417012087865533574884922890317529211484417674142900691765597874737198897412587329878683952884693580010250760340634695784992925483307472972282771631287315448106392666628080056975519658590701439406851593304674702247513829308881344360912317096683660810719234613720477930902148011027205815344517387456545318366428905557309280750140197064545954819963404222828489732593111427972609497065437985117577588699390683810978810167776340965856345739018135898440831993887499420469039015527768234532082564154243241063495761977316197656544875440848651774383967912977103229149041520522065260860423289718917444698312327406470008671874321235770911139809776215009614032752782884489143880102947006302095489573967989609108225969624956638232842912038661392933195101178839821795911899863031581112589931208211383431208162182837878656943473204182513817264218122999885837842365095785811735026294143756213796260208436844458994551904138897602270964337172160229180124428253976801241896182946254503001732060389289057794122189655734410999792711420588600502838159377770962118221207012967151308031901343055916998447775827278262993762829269281134385660066443996746558469226029705535949038750265212444714426345391778849659374026495002313160928956203767154203395282302500660957955761271052789204048792865765228697506597657652453283645742802148826263270599430926062062117176593004353149396799278872129418553242754131675139792255667569226160816220744579484804397142478535165644632588365639050419945420744448387080326580192571295837176826750771094732569048272943291165431630447024055367444613719156283099920104537459423692746391915406841477450668166319706090679368159948755666454205437983227315393927693917622870005279139043181440346954422442637707950287721526669374554293532767213218126333618725507929731347495780652512215633100195083555441943123129189791520339833008698004889106482126293945339670855531046593147645846762697674217988706597650810901638640662974350103807188359395473491899523952413488800235839240493547241235475408253687068480228185292841571346152652822761128492889733418792673143627492619723887717747782231554900940531968609245446281087565037197217446798399719542697217474310918925324638562495577483869007214375869212601318763596170883811811613751415461998157580530162731741391442667814102010691614128402799941045998664682350195620133751173694658547367627026190870503260287755513118448698731664920647033441660092233526379322052046636452946415614573197225125190802073739108578516001048462135053543563900641456698269757091945068006731730078974108537442256376602897526144979728658295048948879684892747109428338777876783622162309475494642446359575499928156485289635649075067379382161554387728712735074392252919888820926258600846095113381611362022184572666701000584564650121892568326423098850753046554086382921631344251979644700325384550301308338289037791139021711509727668256985957531533129762753694672230174157154567674200877142008608921468677420079132577598374741081881399684078904193015045021814792721308423717071246184134334316244760099425960241027568898141139046688357552381711957509952629142980029901122298709422132666430006217179615782627819205953167872404128498212425386482779805404740222714002620012649472002353660888440178364528459146141068305246126958096958967137897180255467452507426963025013701419218385563025966390463702009907872131136610461886430072246076322745969468201344090074214964586008780033769509871034754743715200946566687500511886268112177848613073666471687475995254953641311544983240389123214755567473113296571753234023892086277051411825926517388397523798417667138459014566353460627916040824109266525374597406229651355625969490039809284675623654263303547622276140476116373313841896776347832168908489388398179986504052821267280808777397233772007930877625177108036504586756807385892999223300143758408441667895588727436004787254935085097015977852255757852192436395349213419463150846507294885399426827895604827552133865206146847771570682096886118431361281494366621597128950401019981081846839817385169454841518449305732768144113714156975762965768526815076300653146168843381319184047061377467485359353545194670142976485512183974314859366791396161693523260613754937242917911004776053748334080124794353418146949958098058714397353179013760808667902580047971766035513469405746493156703003680690848792451508896919228853170636322489600728720926801379603906957048984376995766866189229251320620270190335497002887580853324326514760894135453406493156229703074759707502434177340904898898393162306262764728403691632036832686854210431695735161667593877286365217633621678061322283012769198843695525520265774194496367737636633228065444459183873801935605340280947341041511392773592398827278827815802555639733180926902277208621303109910819412019661812084945968635297639359798182885399090471488838349511236093174150603826213460556590761214188322289764897781475042535389938615882915068195822825849242416795443154665410075148775188274395622257008557758046497511565894934964194741321181116676919290893052610221667773190739646618631956919208814243542706990182237471422678953701301792957399916063313661302882058767853470071034892250286027139533811222922559113263744558298454504723448212327320342441059633307126322263103635500383566779123143253572971387015131284258092057213223596994614696423351957974443583719339280882319597244889642414714392739702206517049284335475824149285403313414081237328206967695596124666066162586530842354984471492321902691759583899091565779968264358441072301669010378308556687722882120345794534184455626322353898956107218006538332410837139918979646973936981879227412675003383147809524128001594491664340818587900150417445958143253386319593163231767923829892076649490632654886135284922982911360911440335303456434962206873419683460232541055525375086608766719559905560052402571603023919133347847056713650314471381336439963651070438949469370593225612441956863798137535951597919472245276452974716604712744756274058300200326148715074550273928993032082591980010467299878166478584312920562382711012881260281065491111160949083337502849870479856513712267107119117202171706208896302059631997984181732732780157868918125949146252676891767174228766119072344904664187536885508707938805955509233405548850260528672017612500183417709230499572935267690399681471244119784522408775252079191300536141031846100209211465426802296142385335481089394773229920463941404760664348874481283845433482502809608342656430394310349587008248854742711718111608083220672594068199082978360382118074533535705841733188366696696383824914360942216485593170071618888019213008664208844807887276279517939009273307991297738556839741200336815025252904482587568138357742996824523728552103549115220439765961398209241982115525932348183444243489571272443011908045304308476837118235467001793014631533894412445002607734296484750625484394021449066000105970807967788111679999045664017904974616961057687199844081287393502862500866158114028945946629467619568025024251671832058193168134716978885803829791076556324047361240893037666853492678367193534317829553658302157897568669047259413739734833391523352219423287583620449007553645662776907809652685764237809217197246059275849437460282961726065848851207996377869250888399316744233541079964645134167226474656733038902842237840167072271909356536973716127998115335271920494126834019327813316472700677195488693284747789971241871069510499517762889604137564371596898478608412401465238430435111386460020919292635187145667264602458546634797661864947890263394223770093723127708503144605183199426385105513627344340553460566980648491703373596377056810704305199575403295131249649490842640920623469828426583122870531556751545189848123716727605507829804767087967791423113360669557344832877691626011149839266535943812381266038848920251720822530648862348456117145148851668122414557044511065125740881678055528596516422867033445485150543551404192739510738510572871881643298758346307072948414564139462294084385367813388612526030551475600718337689902939977861571378952318655646792241709803814321325356501621493273782189649472246583879621006893850648756915501838781418375630167218109106131183900706998444352734683948882380019140461114929450981011172424586705315792096712829224552664230570373734065303370535370490646699137387754588522067383012120092873112353971603926225759247790072020475036494936518665676614903466294039871377181107481949712019494262937539506806581458333391186147297604963569425015072188275727552482429629075767028055530816608987060066021311022098955520055911222369070220520100633752620871833023225233097112391789582765743749804537902099226980204611788238987557636930089991615800020396099507841668642654099230601075884720838140154064322302225054418310434270381914350114885500154774081035621449643669855431341892746452886114800496027097855524273917025835723454758894433337157594141346529122266048535744890300858823495807111360969822143285911793365322645465742332762763133200326433560740239484461085465279581567228289080932954880142555942135196185252750733536775554647082117544561750933978905000563783058498046421611813557512450611328975276118280997400390684448579926696821329276279252071252253505308384845204468051825170150831078015585830647797556021486010065411747180544263246093619092424423712970561000817093149071002393939470970511164438226449121465680332987500389081899754480469218490164720783128329998423440650040806711097931038140512760822621630157133540775420659823065531860923894250031356771142482081978264642257522939844952629394661306463883834322068366347943090745781781782620735129398985524343565428504088916708916614122334789875141378612491024832358069204720308916022946716858617527158847690319861204124475228675951244003258433109667298105025066424360159703489573903956546668015823492250259577697148157030392138426191844935775523185369380567726607948930994824060159796157143552689368044012139017477214798199992606373986441320942181754505116937129322711359131240686906093855611101007142168557962425946712074982713638638250972340727931581063273733697136482544286225013690567302110468891179431094083936178694074526235312551305878347457533226516116847122624816705936081284504282986253378542133111416142366475996351453527956158929669953603336486487144872534824929861252293540648337978765330091554236989600445619222515807996356517366175165450601840664184496134396415599879474879557297673362258156856348911208560210350881887886784662933602714130812997001236247657198123193125631965980758307654238870166090507189921368374994431231721646822004885422844521016035609767949213663128967915273585261755923422510331708681856581419207153588313930965307235855486235259418479852456937782184881134445297040696268183647729076979300926420361257889523336396975282545273694087317990722831409899357093838844436931353352293604735012319760578551608257218154099848091836377782363229009791927822269456676325558459859124880892670382859795624933119783917760443892226051358574469524234465121199049614027371658536033856648114264463522541682521212704709227126775718821065532150594539492857601384622968110910206091815840101087314724519178743014993459166977256077805602378752131981220975332319080901791879570461317561930983573319665289536449247432181353442515255604101449947935868700121409287339549652472036529846134568728551606244005871895141527043789624286696881900697759184536054996252421671607020252466424805707789578368350928942659782556164981955490562378531329153022598361000267940103983504486020651488191953891826986694213489985222432271895776419401736241057965708329064304644787557709333056953015661284358746960194855522741471847057241088162491333728927033181114259361911568229349884097278405690357137183901022713991156821456829146106658646019763170394648105042031612299413791361175705556599476348630137919582012255504389675879668885440675389669103577108884228700614207401195022291947019124593529207764969036675256420589159612007291843137102625650235039061398059311469553017811463834229283966771934115596181587045579091634298751208609734895543267541588362618538081699015033187929213015464349567386522620390505286568524271215820608559327150177082615118427353951396065721190253947503339737422009251460723763178093993951497406178439589520370839489164805405772901452502651546437637463543301017058027243158256466156091549720153769405620469389923967937242186685331509094483922475640729926411905005009432293862116767046091994179048055626244656527217625497361406363720267327762967571457896802318379169751896602817790224070831904812920086866312498724781863028076854005777866836565441169682736189839839258365170069630431006065314295388454197970592970343223581362773630650190942839902125744716054622611890641848086853936364232398375141329130431210650271098635833834654650424761044234751148297201774201931115924796920710361761453372076985552762524102403336275871540671954879385884613979487301840709085365292333491167128402018121459740962179648485368455393367000881957852683195700988689064552644159604073394779346143026961788448930287353075919169927187681388123626568712986251624136491411537007509664829522760320859861699791718169829768122864791524803262061918687410190210921349645557328775509181627168296790893522982571863833471119921723880301049629451111332915920084017520140382183448740263179703790594277138102032383698135381971712812394821547723780117077274751108383418246725538702176135930756168892079465704545177334619053245345787696603408344607195390436270347886182534857205072739503264159627263537918203293030899923137792167967575441405170422262002940564973694693269821075751631173555978744065998288926941074189497138316066276863804489567043436087465819891941705352016476582566568254813435778708200913448271640750819533626988610885362354589378059587559608864423044468123445895936376795300630264201846341378839480045733125303107886364027042099158592783643893633505064744067515118524337082666801355335893127370813200834921348511822391099574673671102837816609330380542620034714414931853671681143358692708979067475813571615038438606885101009410944251679732962507466069275541162841568071394098651764116522232004906479104415827259495488302177612258025713029430249299343814888797814838537617707456136945314563748163224784052043517592751342231336295395330277862311006678648478377749173888875056410226634932201377967646204586495367304458710389056594882844108248654036750268098812826163465368449277927404320767745599583043264959924156307446925109356081624124290701258616023886918176645852162344997012759004034122756757277676556679235102457052320734789404629559460103160797590826549266516016639523757507065091854986602286602887583071220222453439199194056682316244493484328673695241155904639644037980204435732843302378474745164074684702720267394055352249872474030836338909392545122219337222209849854846901130777991650450297896190528636854723901384850380193503858216073982811035465829365784572693304627025282761932150276279466380359408422704922543471784253243739499637208365388030178313115626540160206401723288738626540628061743321703021936837411471962129557978089978031196781701720367206816030288044028119910728285516767898415398850837938138372018575863679207444232602726967382099659079171994039703084523307630252907973312153589316950148375319417938873306708131452992968104182340889386578858351650873736014268723307253540527931728002783656117607710534717673416742717959351204171972686472307022485108606020706178362577722471304241806194723546378702086502395494398717276192356656966724443613078894057074018342841632200945250210344108364034452620105066248509253667865481087356513031398865206105991680809156755819137717529529873050670616821695271965528850963229918488157058861730407215675070344844884138573496461041091011730475959177308675300199331621881139864431286755647439472455689292454981318198150873507920152275243969696015956220527880264589708562375480406289398419469356789395790629861655232101820267385790564042744044107591621548982094231439570365615403691623787593047986260249301334701257339776928206146433104964473438664577940701840974078989401682366645144852712274981236419538000470299136789973696480123597281223556773874811385411849904538639561985117311075134689932474927664699933468180110353397067771937609479635609170945638385508554240988004690888304381844746193433743568495680531753500134525383422373943097769615702991880549521630107629254404928668081880923436627347731861211226806058715673108363314045902425386149194148636294642621193794739187469977213050746621496567865187393655644808376566911818717569545430469019253249336243410661807329159147669128207554121371827753314875591245667942038321859518007976223037018148452981568836482406436765216479108288944810045465271723672027767266117693356685840817875109400491213283761226156606286389502080723451357471611480467098190604925499527020398523808642464608611680308078965764968591741242100094764994170587281891964524319088377136939980239065108380124005029432140121375170533580689627056816722624178140448693752538346603649538093120572735599883816431071753267047995305907354882758418834309515308180596708626973089883374114266456066486190980160333924067903543830566298308166354070128727976172286901296893178386034638965033713209195955002652267012988780012736220379437227886834740776864262313730560532524003035407475898270557765631307309480037275866080286504666782621987324620348660124318354632023602919906252446145723879108726530080320370487139415942470212440357509052571619898804307204581768267390418426439259348407593069503110622232020604776754294350161284049862267386353877075747592234865709118084802907836656163685953407369347453474609124339026068726079287185503176392273337682602361996464988702075410928241473312486205180194992874837527888771991204587551243482739385885793413369280131522848080595418682023644339636217067535146127471641062559031863307506896753861924373685661510786426748081046991264730307467265189200869202719804692995837540836295520071056892739743351689543374769438664118917602523232526886183850526009390091545535991401921284307653432984094850662387833301291323782901451955351137539820900942084982541555176725215579155209769917603712250758148440678530818388158169283163930060914343307929319305346728688610053815044536734338658477548111575648740723417190736732144096523471618670324721550680661040194709945399422204516583326503517306791027384638443924134601163198004943782312395484223651643021494702592964969216249487178471453507144198692062047629227496305857089905649197037817354963161666908701275329051154540964487298176537945263215747730121151949547562286614546217094497484837446890414257488599992858413947537616457825099191314699918504666185405970666141451692332392638697921754198812407273324178385014309588441446797597522436772645146475062751159123018188480775643495526347337083683475811573308887499337237686435941909189460556287244136851273516251206397540745641898599969095594155283106458919882763346310151844791410885820475307791185930835708621770980919048279010463083985660806892947181074941838803591356664008858262645286518038684420686093653303881618302793359402027427687236758510675944041635193716782236526404842012681233136310200526167217465703057045920328058009926480568440435664494984977469260440621028472508900595801758102972743996658482079953290603528155768335477960029126206626762326531876236235784331806140141681671892463353542938001189641450374868247858276410659871326046702368718879238616389852702234485187968020225474245920298213909662891190036601915197557706470249582036817650460278348983185535083446471850595660349321134453340815748581069025341582104980292659333531010238638266507004350394818216555590008658511531408287438174427359455247043853105795611297273929080628043272090854732438640538551244574970626033809566087102562457365551559371574569795839235091581337108649881559807865860348463751586733906005282022684640723774086389859570745074757727069897359761338400932974618571888547655356054409375696498433413690489351039060298682212311040380165357425959088204207191206690629484090363033916401491178327868937520686282725442985576804046479234437996858690113192363623048939186407655439824664657327751970782176009980476724802412978151218373909068186537689546027863741501942071816844865674366620109583482729141659630487293825520277526141175023780877545018560143417321426853461736416300161296374024443249899708340818459379427474073331571472780538754802427379993887302630544039839849862630657996144802365339441062427501547975902421955862155832702543402687700794526507815149176386952843892407756406054962559720239941729102722797333450016322786514616566874283054976490340068167580460344397092909225448507925705541803346856276825915331195259704169747966200519597246652312777311327032766811072216412112764492634973114017532814363638366955613006650537903482331510411900074946350777566227031522840475981499177764893615828450872388509889324711960301530556640442963665441915845802021171422397674181698145010278645178950464114777463518856713224814036830508732630438341189985486875416502070858851595861518069519775933812805406535106401161415167405705904087700749055150384098694487483181726015915561164560544770933808907561097566671559477674458526157660095963735794098334216397392472795027691919757728590289016817949372314302228599863503975000606050814738969403465596421166852464433044661451311275202986278834195633049363806731514353165447107151727475375807272602052997112188298568916402302173211611050294225430105240854683645263221667709849036679273648062199204723302879198250021375469507648726684947829315412107370270476369576147389638508577950302575212866910311082251145501564960495297108505797999861011694980272034600377696049983311441779703122499777119619200817350676916174633895543379366753793204350407418363213506567459890791584541900465487973429262780962549556732615699956253051786748474871678906497405198004673484805258153557139664619476612659038977620657643854595880306643549373008573339098366065168738091262161239137501666917998069987097319646185865455810316015349899189055064962303013248631554350772718707958352638430609365499650606135959193994294730591391638687039865556094017667397505922667400209084363111879969429965610429801321881463112554104528621436225616429659021998097261521970866110943379372769424586153816773431693261172063591220852654884074702677432783414816184661380924876827277456165385908105259218106806570267782704934366746120907200458836651004860632579435806428652995338749726864003330383020692867841546909801699802471026034694569358044555900978514428574879070211903528235453509619736388296723147914764842662923237248859904045240905303474213114667947278330669491330026851377085665832602716578932190687952751604440858642497177055269913476470390517725808778024260306698840964529244219340307710266111252136729619948084957114762302771598239419305285731304170069428780734112252869588306037726639835943955418567271124836406311928720479339006675264607600568368699929661801379318652065714960938179752278316870636449638823994516024560760807982130718391148561005292801036080685178900258375967568804721404301467200438727592618061583729787205674083406929882782818173501251836603455791074239405155565847713077563751625982271455876729125400872643319005851584939278700558324335958365498926200965302524322369051873031594481216641292229962082431803656265985598173542928826840148652145338838949107667297616560658175908487100554122422710075743937093275174928249831162759211840596851419487176880532117676636993732291363133441549501704541329753231094016995000760494408035948036763714192173747733685561269385681401569218019714669024139703129621967808206138576848656237920053542441933543529255066098686223604934166292568954436949097283542966709535714718624130522173803713660297104574588155412277356382569114295996185372085811284327401095414531649346572459564468235882674759633143716621982347828585686891389907072123798777226778250612767272022638001637058200256494061300846340910751124824439980267564532890385926067030352431608113749424475281255423731878275481462863599737030526974769228408034427095377509568181575606010684971683108006310181777800955827818196267135209881146402285915442905304357697666172717267764059544091539613475074155911120281136549799998646724675337459350414198567913138102060089929248063216405379579301352169738229712417695610915639610617646990937171194730963351461356869500985813622890479034909900251836590598928326950357820755711336902725568360079389354075813571718943565109725266720045883513068112497836100078461349690428225214583188625187662815850005243552492978666879592651249602793384270275152488410985998639424601226348219816804752815231776444533748946774233935993142672899448952786866992545458321976261169905144045080862997451266578704260586288828507336258603382459713323383126064965135868726399486150796344899344929985436015972694347211609354680334408929541223280006763828629586095454996246167367595535134753130120557592009916808159926755129126583721923198944949838237021035256652138279015905228586863817525467421284144985112962267441659692547125319791439577366475649368060864840600137345694996259720982586108529418472703183028719423575170478356613538927641713128742917130424464934624430214303199189121488366245935516723340276932873182741052527556215661826033168833776178212334096005079483138253563046357489467311642657608417204315018057724689964949807145386525570807160588761781719318184318016271470783388615188910943046097605202856161933802327744535566715066429021880948373489564547379337135186772023587576749817827036034221645728654863300656923732533440324560748899467294221869440490088113210380685944230140187062199183093466286724188273525516287637738409547997478122093329195885009382083452604257468998018857522869790892715299479586842210199532798072045135791598486606066191673883528789299197128985755064811544584671690314451917540993155121411255688482977294044273005615870677950969473414364422875441817591386912410781481918328349266287500605570179062706164935273390900043195063112206313749124770040578458695285554873090330141372944530934384119772413366522138704785846285149685210580164548257091986868275392243427333390547003729567336812877772284133257394220634717833723991274253785101784991435152773542742043917653023399621552433989918465003814916053360062102145353741471818894536378794213846436017501183465861010486296753528747497573365264686286209266920094134255342125771187732867524753017367555608022473182155221772951701266191326535349895902774764246756099610234745421896199619480930450400134456999164365917950913992948957834805051912638231031109536600789878759061748923762852166348153518820824791586990174839837333228672475810204593477746471937304234712043249584977549356211175584290242526474427289991239558803704318599889066113728204922979745245829897104791749716866249303233154361795284619241373373665739545308120188401590925659163043646262685936293077308409262374310330177818407116653458715020288342003695952452851982321944345369536581315241858986657911268658087882430082251977896917460360839963685907773881362664755316285745686545016508532485711789339947105025930612901851113693063056209055514730873183631476529997635415585495054704290747927944026131006325287055322387477205478424550984259364138710795256066131982327806441573975766883012304351897432717810425973947522704233849886142366668814022173917309577089183010104419886389234951951055018838375369753106592950261482692494068339539718183844847293641220944937640023028344149601738514952930584413343597247261420394416129040259659677542646032770692943581272064822143419957537127794239001097511956292933226820237371955620204158446890205876836307281759387151510656592198977090019850077397962618118643848878799639816227927560419471045756861790186239605428403023010499851678059359564507859227314426055423803453246086763216591798768511100980346451689129980597641413866425111514956421753402295999267608577164283425489092354434220730979527354509102981599181428219708155707466718202703236115185816230372322722384921583169464965792006742332716930558322577897513590297081935358118823991118605930630166561911298269157814333338615231529312566574326470387184520223191281802255697893393091426145762606064044086776344508524267527713342120283594173926857914770460136522766560834136179946413451648317205772418420218487442254659071686033024779111344479694678612116109704182910327895002433772241238103097483968425291560503347821696148492358203155383447825294370227990513899562082875260627587563873536493446585915362607517616277290699468686811318973878442332504921903655560980331993249020033572525983490946507031061281074393314771025783547425652481878959837882936772517415586506046566210149705833095415596328674760558832471459503850526762591583352735226281640554413451583256654816711985646486330084583023448137962900097225441442090383007962948511178232443339587034820617072525249467669021249287269784004097646674004997585509027056313034098686833155244552782527704929254345559276764818981133524657502946469158756496002465696314239582182825374038433055318750243765275159185633809341696479375766354674954120458046525833008821361677807812082170480663790030231779132305713971542636348568459468658838678137128321566521446863204184778798464415689609051322260795154142922077191127276804200649600131493238203407036157057832134648219002016133182529586554177797868996241618545918652424273760321072299734716865205052478173108756808525804885256860878811301350508691775003605014525817668362395349230004352082840020310764846940863080228971273870431574529557725915372194510575767134587758941721033547065163244166362442924661834682973283481937718013671347070435964764508312862911453803289892615977369321774878161601949655172366880548348550437346997357809974449981524393643175775279812620854693609092748402331709948394252245836094006681981601102675941527621117169334156302795061076252952093014555447033020025843232163711921534739669762048064971088994209202953597239341765921081295687589791950177621001018968653064224143795873158416143385357855663214521409138216824596674024493855205229178146921175777225338094378443725648645408723202109072511696184281898136497948856256829740052158911320647981107478229877731429183357605836741372967285466515036694880461222033842519463898469817361375558328881083654912805329759114356021813093925796424644623600630924222054949592935384409211871947360249564287674868315920596893946841180078523483151717692113265590922193863061836574629003696474112640342860529446955328329657668774468496000205401137797388060839331782012898249766570551741720040284165336504515066079676554797917073481860555888148567559998260062306777913109136199186722836982217482598743960303637098150725070403162821206821396064281130970639612903542842478632990699520616901073021849300664346979485846689855632325777288155462696086953794400726376330691238000365332696242558830230320184621501599993817116989187845812009608495094333559190430024041243237280290441132022175759930582197496199739556660150850730063794535362162203450553395373177721246314139536112691798724926311451851397399473795579090064012770678028233894638445807725394613432204049526971984527198359502453234271273607253404335451467624620048579132880937634735240291509544878993275464446142532037543021588889769509056061231058041036610654993309147601882754133905782484546518466408634943190155549413544556071935489789143260774693977141532421713969021549189496136315698371839574612584309929349819049743165053044263082849439459981689798369861835972448412676862358063182611922001276755160510385688451484109727528156852669503341653900241537947073900989335399220859593396571378363815995988165547843515609194062928558858475855209433241397806267317357467293278469266869674451187471949418209629088317800519891380298261838742847937970301070459696537925167750450277888205503819023045594544743320497258810571164130261865333761176322791292752047169039261315743482018580325297835032479781712850676426134039086370962782274745996166805215224847104534806352115690251331577857952374405107978341313168895287032199979798438512240164468601678426917856804597514199819895706568143368179147897878535498918829888454372366404230261752656580586118802679906948032848854983882788057538802175437606198554555388185340432705868263396364003752850053755377953901269176274933314244414409779127669157927206474326242459762806980344727502160822713595816985938898474479265281038649645313616451204820721792250474887328327501265003859836957817662979881371280713090123774698938637311055857627333450419869308685497085197982658716736591287224328942716368227356201624441263525825217255671662125563462055893742709761729860621365639434936725515291433244061953602958838089712060693586123983565691422237556830590986416505368924318610305930664584130147084709648427764317447676475347231332302104251225914469925132804050093710523915642696612435689518998219493205684877516320400996741649950725420141485489627946945102711669428053555467321841231695366928349916829258924094750890951642547093750200226002975419657856011813631649982457438804157976209066335489159337102109245582952993688051492526366315519018626290719501038407321383779407653526903052215240616822184483459192526911152464027609645754085951454734756164873400019587708703168511470788048029952529173626866420062033545345037224058221767172167362429344218586847424917494399548753598076164201414708654350915391479923275676444824159632810380605770298141216274945971359838356359585789099363706220249146609981243370497090785169290359854914287063719422349959439429289541240229087180248018484276036070178272966216653267501767847107812752138819766786055827912515586569238291578275073968560764980422384553214246117169178782188439866954203697979651033767870776139983167906286555052097166402562710060493530551031705923900307087884525774536530790361797672198050366856929856438422780631339215046647504235614625759579102742667674183071067430988804659382762835703461677275109610167405229530854826240683563847418284207655461363227334164671777646759251081618846369467191055994163566075503740547254627690561213025376029503571161748933143573562455285307048791818997392624650536743559473740022250986513024913556269760671779550182109562043632937313286136182249167574798880847745065017364378963410806519646442496164442784968796633558842551537999455158722434500703761293440784892832566764939147595485739630516588631894293945763929603096477193634243096579741141840434865998121896825189712133790996522188111130634482213643483704767172320257931543626855696537984439930950823988113654477150998151998911473702402666318025672374750858668625468563715479729020740551760432055400593462851458127941456039835379626138231219096852649959344970971331354084551574769059455248944126986434076468206403796290092623836926635111173512847451129542980562842109065249293886922486322723549491156025528426150514794460152978781002793486569542131342622080621745003056655450009898091184925338469388994556603369711839492127787059075797917447410728563978310469931119983015284069574954012931546190521869669468072310341477149663755626414003457678376253708097070341231104089292171223489543169423175086312057798513864156081831255670799420286238735963915248350898296655705890510275938817726814182694581933903928235725269478167911163544124174729948711278967152228681916244840595979603027856502763223393190423403614406898143584418107139897022411545191230246451995424162132649302941479658235963788455456702766952407674207477910745372117244906237308606133903698552661219823110862798719294606750542392432041564844623515583827048029829274838321251508710297628086508685405914291261510757497737975211581573367373174569898546691895403552027699743493711901488644780617498566077402914423167562037653513131690152905655733043020306777394725411936284099739082986304468841843597538972098028532374949525849307769585508893326124516696753924561030279666289996557345017065918507021134700986268785028978038678277103684167187638211282991439234329195515305513121227357950239460494171190755157309743409383781021266710757081399339030544212082290648948624095186191753285848564163713518141061080205388881879798084063221123377032217988330335765458066648950680815174528424742992345163472869643267698525135109617603250046520421315745235084686346046817698869902862317355897954779084021479444227474132522379330848490264829691926274538707952706345463566507803382687431032374453465099556335241486552754299752109674137452415471607465243108678813857033602329339664336357689063486163198717778991328356119631658333724768119987632830606620599012491021414465658019116110797066252989700766483772747710465893677380429986194880521184083450774605906394197259397514258610091747624941904719106633233027692153665927750822139893444192190717684898458176390552403123549144766284245325591843561650038375906054348496266310437105311362881583650108629203730569668649044147031421497594272204330718992752964387579491842629575207617448012632829070986405396981407583678338603969111530767698524874797153288801139985104432372873465117254662736071325350565359838309892874657378527652560448815487839372935996188130174229498637335683002101351067492170915484502235384696839769246843754408894574447964513081700951032165627725694026409717904241510096890280135407788681061819530804029222861914034777496870048217156084544820416451290266425703343445533808103224441184981238605516749048927429878931282758843183211046500193652594109882019842819651726443417632180156418763955332999427994843967415814245976493271355366697926134420741671349657057290937284781998452013387516789208862490123348409843794453611982630307735821794214773648339944722592867237215758286857467570329741046217102233414802438605204903122940471698281253725078590542469047500500092428645125721695449844898047868670549140413162207037903955274559246509657810398605196600285192070338463946445190909101565291210851289683219157194654523655880072390720755416704232577522618228649644367080661455207505793746117164474179095040338788437792862739565032064541278757820121208868329461426394397652534772779609019107824545143833224444346862904189426198183968776757914423345831407409535958808012515158694795552438160278046602811979074249400458471966066518617256150050252979108748134133041823016011202069141555504861475042241171263070702988481057777400789137933818954690585288836727068915997876284551045114536399910860000446377296705402191669592569108650014226987823333583162297006990047902076782005833391258928896611903845592444567094313916097246478447244581218377718756374216017060566923259794310536565684267583658226841220020988630960704082156249236361430151904175693168029137922455371446848983243306676498471702289607501688291969415657218529578734426636475932141492287652588198129642039660684717052619008584099950634800441077682378709436734373179983502699071161840378797289603599852192948840489820143041732138128675553400079347312078734916366163467174707483661010816323979346227949077424683172516984114430044450564877452522353892748699672694475159447133467739788549395034903249270448049976429195218848864561966551806033922526792251762257311023361911643406799504155290974532170461648106989515346723207732793630852864452576549005335547431726168198733896140729595167965076218929292515051781053122042291298906142015613050127252821819821028951862542822278580073329490146865118905767816771338635651189711036071378849594123655085798808884296856753774746107931304215762376614018652127170634546639660546036119858401219825249568500008567819022561208373497777651540775391459794081086231040474610428896354251590467885956209157406190040805281325168911159455330204374864835371611360446118173103410361626885188331880987113441706612970537415341602706365226202340260783149256112803118078037473866531038955309910147510698858168749418670383662581278368923942488084560876272735050684167453482913460096207690674168717615798076830731886939889556873960225640916333788025402974255785935220851800082979158548018619341423894347598557953453176673333187461370203089253554089286344065206527348223804045767713774333638420836981761627116601264934627620299558677551674410258841801350300261035834038527719156997261620103000679194739367354923138003688547582074639728487756084285332036778340782188972252823867297288887403133475658520911147089091967271519335866502928130506176647214620252644490673381162118202659689434707756966900121759406336553626211012285637915119667781738746644039541356231127078798073845708590779487705187133640958376605737327733341107488969910456890430156186453098427671041765419954266013762991313357678123325333847625066667612756583309215768128921982264628837610140733690311150219477632567341934709712673900644353847762625564802224926140703093156972620367411383428759830585353860569535052813622187402436648171547577370141648522375997156901618072292245861963421906709211816993286113538284910360864537139439364012463947618957854580142575996918564076507753063775594335111986546982415068617849537107017287138673679259353336817128003179033119632676923956495509543096182368329568510869714850386028458336974090380449713946904938781043020989007571025315235981684872490599029799034461909732842314009410645986508001265806970049962179789759156468009471519788033866678292635467982326532287328083297895610499293823051545066902705917932759084019926614851301123403499787431086816341440240408333073098114168968238038506052716699002997359446228925789833736196731400979965465736082940228053158317054458877388297653201510703207067603661992845454116526705853433706439922094587142986298230704894399116055147503149958204864894100936447580332162385152554332244835408962659830810540683262534426416340723846392018477565080537972263034379937038612749224270072395885871842671513558073453858927100050052138841115338934673554958533973812537636249463985395116765688335367868865949930885708834872062823929894999388247132393072064496492551667800338929051642166115927243616001652785074017374871326139426874966151651844572032817709407888050269367514745220037920279820916065473740162813153329174161589520745654528376266055436744130773852260759656603304765360149783768585242887606114802840316727086830130477879411783550356011824490918829717982949041262862442814927571314724107347417394300154249503879917313672906757795192952387209914552873296285008347000351171322646739628602101733243699497808245578270356943115564874770533248566821363008997573285586945926017662587357855863652320018294810759338812596910429946392862964616911800143479752474487526256639066053537368591888127867084716504585250369891488305223949558216466184579783813948194256507256359843411013029331980740237528759065043982517072839147137229580431710180129053214746146171354146963713044780509277272133717934214181508639483077435996806569327068200935769768059402341248884451982040732917558225019591064045050766999120828360746599641922256060118003293978021149440656605274685855228444439585853906132089090898297563391333159301497770327100545165306750754161752661475227213199538083470649110199002828060988039054144499458186808350332182274583687678851108642080820958671584550234856127524328769813802284811468261552384937441951050476125413153810433734823671852225285430943707682213158682997693908210690987782079220009500930584645388333976073863077701521440973352625117424038658781428321825411532714005695552033481974254794030578607519354419637970378960313059257424587802266554984002242926218337594497452691175172338397850841198600982869504887814323089318922916375841533954057898190270980597034717878223927073271153954456179692468694054359490437637636611918091312005450502128450331570015981997423645541840432100431287293499506770603259882363316732233678852799266828942884891481890844407085719245591057389100556944844884310174249305593927214018286682458219217870479327212335632720217168140290257417566209827111923456565185863375259001830033850707148605566797883890856878953754492701205538013705051323249777520044261826128563514543067533137035705632545765715632146113925405200679997989209484882740036415002312598903050220812443045802214813253841363576023323680455796124402964361208169957573551377999511496251621064615674143176244516050636542319386353260719352251896239687685917489567121761832997412461446026462750909276527189590197322595441534180427252117141544229647490587635302039896514420712298895808398974522947113217751893812149652492824027403505141967666467305873806916298292974688519127223890356752092505463930569275875929672407969265272439104528391574359169014285637990648793142948183970639559782441360546682039502109455894478936325153217334171403841255477403811476447812681322611702881677143404105375708845742249770460105803937878662654767829716472306448562642286960601783748988022160727202771441935739441648539254961153640817846400309251750757979775191913016756686090933265392877172016840783295715757783108848351067234114956527556570463382994136879794046388257767573525355619923295496738607490069426747662001967563302622260934188727127777030832423650419443789699466405711873338318144185557477994828412507581403578273500384439150067192310446510344454250340537861781194866019164146142404477999150584645937972367550983209533488341489086716425184610503369039255777502955362458200265230100710060927935748639696998949595508110803360093979469324419328769340386096219084539443815823907568568579847283015620933055045515701078667722571607964796442910685287064822067237841357282982981692648477601256593688658559140877962822028383518628338138432605692523645756773547094544160067258165126268446083862337196437694757760298369264075810408117232234990238292938955239150001949526722524815563369176687349204393080555570689184035388193932297009492025742672538329924119979141405537601192142916556599621782582508920534598663761480787794083989041093640129093406633767117004833036295505389312065374016920983875399897159919120242597095531995567541673244702284790463951222430761482080919649835701211415153506029713270006707608649937574398589632269543514305740956392244302054996906425028512997418175651611859323592472573990778947747077758289240914251413207268809213610042212321693276189219064705774959308013898747481262733967750036273668016177920910340432281878044360537035813641706060408081195485704054567054339422674274718892833919267862686214486392816111660517714330730874123552845161451422861071323393347217181690000235026749114137417497957482999621429166721376704037170544474794877017594918003252523160940089710612882934780100048770421253968755832430712051602871081339651281816858964373279882647829644493979464141457358828679736263277428688231831815771730088049613258184510576103836664573992075859649723106996119294208882759655543693770438977054158759390580955172405987589233430185000940797319414756472020494553724184999170041027318801310083925676263739671909032143876406641221056792263796419170333993449044531089493130477172888324406581628368386872578324827278683333883333522426072872593438035093082242656072307196886795730584173102917527953256862429465768126112180533271526591457559875051805807712454616797218965871231350820983398243926387540549151214404684746985086897767449186914726672779981207077627316522153097920277649587120864436279188601648467176098450217993216113753171977093934131083128990280367859207990394418149165894201507307839034707721599557056142689299735271310487353705281597284370092219433459786070866333899875970678326478362514416464871268119939928853019998922223631189660904338796194834977673594776802214439550738889518773022969119933115775403939543992784879067641431791657314700981146149617241464058704104206365459349848101690479040183467576566625931250394096321248445319503406776813606835831961204341099443518327222561495572138125529596343674923940627894512147128197751455610436162254453130901460339882144175795798390447991172002229756128363640919856762527611668299809692369650223667112319122350277692364657103862514386025337159150686115059768188696843226019641004896244634693328600984308396576464011187512560186444725072358333098661278460378505566225477425455280950115405263095705326280598391000499371746114680554866890738003364183379171865248267975172497449787447260182103275253912839265740644709104877519368870693867197087991949842046515033700874378495969441952207646793849382502333632127532814996486067410852025559820104729629354021781787743834650042317541514082496749525540883952986725720036853373779245898954860117415787878552417568015496284421118940019001582340220498296998189146940705419494293105678399013433517692631323275325015968736181253966953145647558012217429256054787518825793223121944123560391222285357175916176632441642040784366702181973673142549283411483358164820970966434494817063026446383203127222998464549871916250930892076060537754829042133942909471530646421009342564149149689267164131209315191998981247671404098441388746571378312647358300866641602440547424743802865290569584095462011006367280171023476234871863563260211219901443906697911841097811473120993319875769974887228527101113852026897114929366410462561976718125018787900889555308595683751954536932659043684745321602995864108354227204501809012635191205214246202755237031381025328496144884608444239328230305900723845933400469326224487511710545283093394317790663362766959173891435435216442249436347238891653772741209944517490475615418651089709933743292951763126066874199906836787149347841591328282252157657212471373460332629233001751514932625532238043618460027297429268409739991680297282671129615075730028097911732368605636251412705596088630777521266184315893980501515687584015808206767208113617854119495200192360126250764964730478592876017903187312629789714072318186602623947286589304447783186009673914698405343669920984327086767215413018778162184816102050506036349114401226196463943744206154368815895740820982075690320326987974173816458964081310879786856195544511391028753350214263360352816033538111737038224789185449075528485755102956236276153677942475533103732403592695775103552602809271356823732715214912676966724721401104814551424411680155052907984210302094144480784258618472925018407712036662762061352068091534529989132713399262207156554412759662475467476377009301817652595113451275062051457345559860859277134664310824012854240576868452452505509554728777974587799575082948947234378156348292898984305288010908956861192379413344722807471081396117858005692885770606787234618064429794734040669197886241549051841241193158879097687501520990894311913317149040963631019054631119620751329772092719068103558444006328794889998638844424782997809773243721380763079625876467918319682278445151523399400109254068201324961828839815050709193273961545116436155181628954474895681645779134276458180646179806567376766329785295234908331660299816171227105352452979415939585884635376395620608658294358967195478623802301708017196345572595276890730429241544280023563766786886336889290601768587679617120121613108001606667033953436715683389977888949223630761955812809001021653688994883104262512094439664059827441565592271834307180598996116624673346625103854200319250859087692626112172022232885574631456134194642252038402959010644661005946622652542890959155557976100943540413397958752732799793969196994895446565483787324537854496774380099987742885556559811177838888434568211785999484663292323848777446973407329180830774855089993001693855987440195793906504077148933441475505509074440451853082796491820612704265351270793711971419429230956997724714112429718672793754711447419809014238852187589682127190226219064671433681914141083952871991070769678533288596490920606389498948552537997687460942484487251798413390203196975794588576373412602516189777036639639994239810140674520529880448000686505859122488329901881428696197281191494274301039318686365167455870272704796523095174445546419333699385433775056483661485730011846126951631068546028939158401949071672029393933073956895407367232077420555068554196448107472337270531913941251999878596410063374466447291091830026224207071378020613307859978776136761724092884307297623411143284213707375663496339788846260697307308421200965681777488616086681960432492116015251354090804525705895510427004366015382330249880642964920062771025262732716928412905860023787952801734817044513343386127107697196162014299567489202264050591485226668660818099646520342970360229004444243535878285285746178874030326895185001413299197737652449347336421979225778690707844119510500702715178872811794674362483133071072995994838712715188451415914658173404511820073095741273111725530589956509948460913030122852206922627428296088429381665757840427624409981306451331792223840894374845666945266810142072847075385186282347909757186088629622208926967461317229857093873848769104697042894176160335289358437664603822709750028537336094678517099770077754394518717902347822117083819452095251146300545412905823603922507389570370634973260352955170881305305017094925303075257717549531339918721168948268951977713517833613961971924352536356806231553499205674447350002950856700743723986011831801228218413128871447051744926657205903671433885948965274912706324836121570935144317128980011302357074838318110440663476418502308599912899302941556936447000776637693113185077880521914652285299339217672361437756912898286614217427337715893424037974146912685165589551235314366587326491241245319272180288670745336301612772610330128254402950300106067726267678116140720002806244698544168796368267191830923261091257127064978686704502505239368035029568877648677193673469703650603311218950805568844741929063648078428720895657860376919878296798535286734777620327141229033366470511485082592666692000716658967239720298581263832927769405140430026310588830061861164463977957340378205728963363225154712538215225573243974987124293502904894257270275311147750345316804729756002117773719938990498074247936369046832325074262466724918938368175154925102263752945242000488857802046288926427164895537733534514012590293463952747597198194465816465745055030553524495815829960354563122199619085760055775937465780643450378878437622697465707729037108610337532399223859339584179420901388989152320851540447440824195604484067192614029742606625137152353422941978957821899458774878637578924080061790971490874309035920431954814438124911687253051866297615359942240580315679824105138504696893010963126153530987189514724432953447965691519063749793771678322802035543315629063955858497326884821225576775871445861753272216351537560815285720979516966494281782120158346986527462204374353358565458139971844279717258161089611217847794810904789566534426504828721984046639981740436669964989569341333279344775811202166249598913475905711308884337293872527742524425728408549783037481036840638380999387503132024596591793675582293253892245060779581491362632815378703572448686990960504598315858416255033624976286460261968985904656234937059390555122178885383973017422018606775539981343018659819464270475134916006021874923668312927810633086835342826834023186727531323506537674346523021918745809385629497064698414067621032983389202910666293377245258789196990859233903004127089995448703860734882110497853387671102965495055246437384076379205675416698143857092511180052874392379848028211216099813034443840266740538624051099511213823311481631844442444794185271304387571915393595239216309156461365562337263314456017855815206375798420185606761812735617880549059705399025723724045779982382536314239019800848224535279370866637998734389618935981245453084927324339253351872497225617749469302765592238623622438401511772149860454432763120573743031464712726746074520657501555498895693632923331436688514890782359837605310524057293568931973207458478347097168039711960363161182610191335234745379162698495426252247756143378157486454672204579096647099024158805959538219609534995828033796264435096604314959709954571823419077600480070999817907525153014769933659585383786616163216365360756001959514034643301370485229191195460551278371004595030736805355939443679131561568065317603824878831284375592129943411340634155030471956651465962170579696983181301233670300819705271129237520162590640920481555013634286697974657657876550955056600194873280421965457528547339056448881805242992410496472312234706932913717942333507220433399915205615368007962810367016424332688800261261681821283935197662430598871534377950386425620235436931709995709874921175653008946507084129311751293566843630452326644306587985420814049038169902434865915274302562240470171139148679380532633733793211851345529217428360742630656279994547165295137538724226820040649493773201155801487771878367960078520455178225683847220256874511237994124571566968036102224897289171338081904686136248083264071145711581281458700598610365323728455525295849997680332620833651335643682111635808315176966775205267891469091563319522183484160739412698671566321447778778914924703807859375245834373047621242750337295073614735378862641848361989542183231913084916248114781803139626229980079090106615545042459013974448213598308607759112950212728067811626110806509477649788752184230983321070117608022033328047407613012021288536936750312557648105917016205893056907665407089800226487041183958844137292127095460262253557857925156033931817907596613324030354873373226729362960759356627701717124463089472778452395484591883148381761132227044989829579061210146202913131592731078318296645431628554959535212162781320418747887356724854485002384256714732446542475917109986643080403775037902604047418611707950059658909140894791748275290438838313679584977149184920458457931232830148787357116057110095289339406258712924571079020964230319383627437452327080712493076693903644476737116261384446216064351069243909077091782231035930481651688051721014909386764134625309291869779099773244734764355745884550546734827565973660901544578286131649863513636828052821197845571374717178490928231673046600219527325798030593606158757091418058556909490278462206754039261517002365016049779858133235847000252631007319368792793626057139227995434337478323046847929009858890589756134811564895842973207426003439666862261701833494832323099756033339833005208563294639274501369682158570480345905700172852121082612809873970524936999800090966307691045851822614838174211613708676679090029990858116808487863756948925121249140910420476439737449383124721201945183979927621426403485891181624621926223887666447845766114333690142157265824601785421915269570022419339444382501731768157370510843672150931784141995644109655614288780745017341931287145810976964228587954142722457659350991943286582020346211758953854691316086386671277494263160317791848672758417800303889219200696120167415131718002909701694635574250374060162370779377718788330117074784166613357086060489183102610275425475826327915155441120195245034167345394427450892597309969952862773948672444400239978506486781527760056040614815127782686900047529660878972516713544242606302124702607565358265831467590013798843463803113656927804435096702575322143942065585548168384053863273120237306464403854938289617491535680798093827719620958074650050253659140874398635715913046197059220843302339317951159509041685828962358110299300668013580047884239559930271108296102708179478423333290725942066491874650679399335911452876066106730715163357997360779065438839955576587181472717238720498592804330505951793659690765710353445119374803047096704412435681246011168088134324149463155750362565645877561720935790597282651339637193242765180712027788566364737876825162581558844876651171160483115029585645134422630748150476637476314341070864431071563108067751323907978571491062327194575958257586863798740202397341484278525957420842197435651217855359011083361133261135194894014840681205098776675341023454148935695204716895858751259336203923300425409084284814245804372706400309999955552459737356705205087561738053421637493974328563754361828406312638600203110261042159272759440658866190450841361408134186702376973089529010127793086985276138877284871675534460841216014352379529888539624658007563992308357465078190874457705147097087002546439558642644010723992572333270736268333058526958444740457851671232391558288214255086166956471901063426789679865851275063006843373829424669529255228509027230715555319492259558097030530993550283225823879270852897450434274774719523343590178822522370904936131870970859825147499677957401981756290471468078762030140000515521764959227409007342366458280529747613480979713823033785871444397270793382476253762145145860468282153820255856260668164717371437396184727553417331642713493453827613288592159987623313005204200434885977760912108580439558255311536193269329196945611875258703214250836489421441300497135035641208778896241719569745650681582648152148703808062776093290677048488056133862246161263980252942621478313066086804714374002302169279204229274904017784227124197976757672928431307256727003005748393374626875507839752610656271257861470366372649458119488795320412023732765847028785281386727408765286424669574301041052740479913281758542007946548095636351002741813964446549622616410910812353802149903836846031141745837106396378616742309752800582310959019797180563156245026923200822562021889712751463583863307805754862065101030226180188844904357207711749888245401710971359399327851371694397019761903827162305786142336682897918326760523506898741535571150177039435666923921345370808961677618942329467426261813080739753171851287801602549580289681981753541686804168882861056703450969524298417455526622695608597883207845008082371820789363835930282869137147792484926582865842494416718696275563221901271316723598101637558395991085586587373210899265411695033851366418774714739979992690327592752936317726500491020885850844539933230101237428191932690942302013174329049796275489660159286224552436597850706982304701899648903559380983550536432092333651673819679713160850017507980898034512933502975442256737519616493150628473302174201185650453252275288190043145105135025596675091969371937393475221727651341722304785671677907936361682037268848444903313521401589356640797242125172576266815615450642340798287191568080796164565233856026698204646414604651239340665036870071984200114016448271201573265727570179613881691066473850452580904421087317863857307656933879972242360531697699046634625849948089342718234965050915940978309856927432005145532396104939207173589786708776447531967508569988995472939159914747799030790625572822214055876445358368634399250623737296626703916461062565754231233454978261167896336601308732055338848970834767981029760549114413534145007065803231198370715918691844430008990642030941035703425244076973602419654713454455173152333186860404024630335393389708242157907533355029908377836042649831396173478782777757744347665856639605945610841637099741145382286268504690988847441942581545500180612113490798550545258300017827921765783211840774530575679345281875486939832592580062098359608930298229962248532771328447610337183385316359399134025391616408350129806767127352085022615644380457289717787577938330137628570133403886711353364741141810213321625432600503537891079769970512803107503392333577751913803978069261238269504686927111058649356207502732595030666607519449619307636185087290092141617805625042477783987940089227443293524456411610111907257249917769591877792229967711929965604006190053106568389151977222606173004823423603989071724374494555838269450836978569223282982725400668150369691465571566662388949906548827948654158872637501383834015043018857413831104569807732998981145270993727463072611283064625934137316814435909834347207630718344425446524283407904133449146935153157892224305017745835276634696755474244267023396444831905344538328200167774287485850156089547908586562271349071864245844516197900360497736745202068176318843718013474592286893174916947808247353486244629983507631356070585076644822639574433481781362583480014739030904030595324807221504272730515542979418975435463745188685854435802323021830865307054010076996997647936124959648172211382439054485947047483301885661797432313271457107611367565454539582655447598960604787644987700056596840428574599531619254148224598430300211697478683676618221002741244500213155980206426680746155256119271055592136281718147213986037282763220099186779686686224301078726360477985791374697616560005788179325203817778745770753374165529856390917335273841222531322111273988176618558478096532897033435146465427852527263328871754713617890690927315488479374574697555474406047806262108363067555764974639142690902883931541045437759151620929289358345886278903193735325629776161277818796263882959960897073959481058696780493839634520550442686195722637211077346856153484973301939006419468196938671299282032072750019264446004631094158204804265322433939341274119594047641831897545374088727888396342945466570254449422351079562988753935686299475418262786883389107709049574707891292275477143820739600819266634037936127873687892452759712785499187648609947901053575863302815785170193292701406183338106231689975161418387049925053921803520672230391190062239141073317576542148042391216208393158715118294957807493706296555617821703667891316706843464294234201349243075345549575302235650409091047640207989420507228736798291115556105831274304885610140585313333362782040909571105900223569881862439548025145705349971026186881949954667955343949190354592045815889563244671215739692545760591685799021797673036126508797882650132415012563102966675421427875590236974443174986949450970877454364910541473390633567167898145684354753250029122813972485481044464015179052156566320592171138844717939059959577712309116949518167834537781098342291891284767013896900061186140145422931769419766279686271386673629171529384781231146781686662163327616998701860278223372510330899791476978831254542649633616257270721330698263113668880568022638423152531466367828589453674692250949979687374833063727839040405435799519552503425718678773526894918350676977764098813007672906525713667674136692714863249034200440199525437384399149225135074390436629406680436366761210236939074504471167605817092641521393178718947157051349007745126357041475523190499791863179384829303040232686558517545824985463601000046880789625067580292129090644148013329878919533667000562401430378530503818901905124116114261600219212594940980407902563979751322850791703724023963244097677269597092495844845694929550207397631198470296499943875889730907215459700905112354896898846350245720312014704975937906063931571892394529955194105551124366376428807498396147172268315471281469460350165589757885551367360055110387779120060110224245779544343259512508080191161596059730921898056423004947824629881382250724878394080826654372472949463236976631352773073925761788635334074713948257269396482082896967426277767116205254471131308932394931634156106226423929343614809244257422055142560349453413381845066610015164784645708492060978167237574041068470512173601805714936570701324587614394608197882955767605834346271684110656506477095195362215932828503919729563166345865074625420601219415336537395926521297758385854855503745539366330046428704407033377647327966790437437725499476367738441123482468176828838832877371899515429169518814346802775586294865986711471078963751049324131187389195546937781813160806993110066251960935972751342017610096981640297606187618764345810439393700326723122981016387081946744625870221473491238558617629074405402680724449791387791337654232841309716187139815834154793031499390381042160766931897809843362517733054597535180229335715822061039586855261190805691592402837842695340438857012752694265441284572371805558965846032016251763434811312642132817313038065547031900664709395916123954468179869683248104764230673337212361623469509229342840580231584326545570643585013840563257381270394557074005268265139774032460029213160583517383900285982234081853702009299725450950539333630159371986364299273505540017100620464236736573825695948807945929212792929104604995453750755314738526906941870743175614006236556844885762722169262014663564848741641084076223632976599088081963488330353770835436982913101680732492466141304851816509924330313005392152159593141220917367999651104785917839126159322888547923101149526772593753164552190031304901566758007687096909405466441071664866169134989456655570688622460182871705170478357138156446819219884490544530824252231138167340811565485923140998787885728201399850489813823021106321816538973824728025804674969071198202618065028402587195848779729714982415134467765931766111906116824508087559253276336749593189753112548849723243789621748045617512316399268686767585329649200898479737034938940367458781608549629161101509387484817341948148644724982782249251842067309572162067900401022133383117936907124723073849343871674475748945797675021099571331518825469923886475540895754620217579695577264433936135512167023567079266286007477759559562851492499345608282268620096468052772367112343915028082398906182509091232323128437792873621236362958720623696691999439507890816450232221997069135849110363904994557354525264662495651849786410884135791009474799446641937882516807329630119901953774717938570158813499638449690418872301525437849897064176869348436621380173509616784646434394978386790174711856983953311324117155329551685780439427490701624281511641783998310876498583747276200971614373655885113794534542575925752549427563654410278116461078969188496055364568523818223141537528302837279445677638344529379428273603202510783095215282897478952279592816021977444615634586475823244943486480712011986636475171262704997621950384146631810253010050741377529214191267407332932065568173924651043965068964325946725422746561414388399941859574622084473136024149956721186432999017161411403135618980907079807079660485831355664455785212633497768901248779122261544731169735551182556880724298479083925270967595761710651510973220154998136401819309528331864825311826904265305413314107090953533769746845198729959096012550144619757663795284367954163583550286058419288730194080105794758981940231012174581498185851033215747753359554646289593771690731869245179833064918340539439648294473278647625872832221784288371880464937934971644558718660886631934872032315515623914892773733527861377458014320236959122397659112402072182561770984141780887935589260712713857230891422568846710965967021178809435360721013022080015932172245502582508976869928956485454231792347425724345158907071545327013273654224455412926010535461706017909872835892826461715810001892824546980656749926614951839897236854642941945375375373938989457568448559142422430646039659031023845777611890683938387680709856134089620338018411263790998121347316155846621152915103574834635180108886715540243909056705682837621482430536755267895825316540832871904932758745053929543675512276382116224541717854396847506371392009825401734644811056366963900099721554601465192650415425502884851815310458330736835491221119761155423146187049639177700812238710638490322237749235967422989275996393157760669574187179560588325211559567675294827937214400010542091875084548895807479181068580748678647297330058749135839413095107026663030165682721113189328055606768923869696545735262876556661419614423790193937154087270812336779356302148792836527931947844110318295642146700494703055438499190288850554810348572084280653140095869486104098782003029234927560911531298797614233199387437215673003853102440342925538199978135261198644926116709164631031897205603342336236259474467872861010019939145958768572750064333689123328334617981540745722267145205020132865807049082784099358586681650512939796159773893493225138018102280419875782186098740380395366377597389730872445570568938977301115282315417325000505303597804496046089287426437255729304947410602446631442294173140605357083041233216524962753764265340366984039841300806283686823267833055006282021019455894365250629395740869217595174335447310061260827432013207320584693963125717554027635761719087092812336921980779253502664216357142965582753129947187375798347626083593817692843245802788930040086371199487031136652877544297986579376603464329000010270281046426222124665226017204213333212840433039812493591640261242054312436656488153928440108221795419599882319899969082519239108283583828253958958441740142129413470533232104249984075250561702024982240852361889704361470392906466162083319591734390849589098320368784242661646418531434617890316250211560365328823684814035092906815402925491478941603538378370721536515994549323675826227178688539643949918722043718754342290943719993542128535793915596194744451037490171799242883172822941537320837597895132894089490540729049540654672477406843622497866235497983821271975680690084838762613195174546580465036878524284507820154847185485998020960189316874886819347584212998279852399151297582608098573967346214215801926182928305246373032315818364585088572919663761726093102417531401721040145621026241250284650558224150045472822048947210109810497845121307952490558389058445554836426066291015261528685265003611552769907673012720328627850067397322622518482573395120505382844340008371134794001678445633899386057242526061433231297652944693061223894102264759739034055538157219662109823146471606674791005820681192228234766542874557980068968284499648593020540909365035789461449191424992904092205103891925602319430018994316476421064743577527643549232494557007072177309670052998236123957999356512770972107800624766992619864929643235095976633661134609228700489847525904795571577108560046047506598729541909541192543566238895190331080740145249049137116711209629105263414932429473263659212909742756431990283244830855691524737596810529278776279455868321544044369747535715358384945692942644400395546541564911360827382841910970138293654331545966957287145367445118809003841362952234865517103620535908419120623794222919696135215678275196682775527683532984391940504117852518569334345453381296181184752570947259930233210066944769096712352799793959146291718652528383904670427381851314616501325881510655535817682182101540464651894650912381737463988085210754145402370659806523755354304339568541990887316851136479685101851962096621320387679059314365286161335748167424670680462801039781854804787212063064540094497102198606680635277704597949761656614033845401471681960771379839432851077344263413175510033766605164599821616524479664042051437490185809450328793763978796367795952675426257462156153541045596862826559087083953346451903229799175227159922070382322687608364615400016190833854607871758824593270093864417421673636806011719290797856399787421322732819098165539359465639114303263020827905491611548448326176809776878853031266902730658202773399637026880712536796489679021416468338918397667532570364381857699067468607236014778605663510899259234799059588340198231377332891846656512355085791510358613496176713101208474087568313461201727954342341894589104020488670489064757864154637728441854554726177756042631448350577913852203487017481342705941448664791012481095468158299919238711165003850797499294537831008697240618291450726914475771770770202529834145410789056678938518386490157993754557464751149050571728324779566915432235395602053154129374148248705773299206599140364723760219950929367428428111968294621323941768073471284422941948745711470742776471499867395539878839319416643570319873057363693428709819227342730132295051032450487508363693160372621872378136437536752068304184077739524860920835818635757284036572600409558153335090824298720148599983465680561552150137449157385263903970289667690607103520654023546851899991118937007576511632337222686074932200952092705691023421079607451594994398089457991043321266916557475134660021694788903297155881766070708381088227993873547687230156389348408336279393494217789999316075408420694783911364516639713865086830115611611699020348203014090964675806141007301391348557322030525562916357979639882754209868206599276751245971767702236084720597815061165785869120582209602184916586950950245402694190293529645840651965568888899039609207135128539120025006231756323353558760289941613465384181208363070777563935971042845456641394383075992369730413138563238105811666371495426215456261983933756827189724361814852728905172705590541213873381206612455204557334213901454666831953616981312660220693569398022614243354054991805907392518514915450965129902629577235218538004169532125919182989099093560302586516727699775497390467198348452656362503256005791052096091517945156800208067137546619784974820296519052484988350180382751118535350997267073306215740846825659630275322304344709286787531043116563335795339199407772814410545627635963980670830823461186775684264026713128610639243599331459231439552305493840908343939403443785085236725000171228521453712786934603563088811688735112447369594862561191400998581089099826222167418752562659193312367101830000096335768882244944262746394383016310309989332049056314109205474585296039834593755836507330172236462827930635209992199580196350200986340965969180800187996671840147715846932482901087183468516494103218821083607846865465647690723416398572779219592068491710568296889891195085440015237385605000192327004742341898243366408147801652924599091144680239518900391424483322166257143996260106011321601948032227102227101568120043783571657778024328968216454762322204883959617901831373023048400919364621242243556554503477393130269557284789572505533653528667489972750702612447958911509746573659423962890501403457850199769317642564850841477062676225228422241057089733979424226446012182956282679467644449181062081264335720917917710629343326804454038729164557047432717182527578352698038848778422594338686550510821539288876054804846354953719176588304686148712467646243548394994153080125684693932080634688986749973083784111786437301217105258394304657275558400544779386803658567533455379011887530788134628676244148396328465401197807354262347418884952829140369540473626118823951421413229739372848858590216270688999469484494265386432924227770472411963862970373680178536205686419174638765930489150922508031975744960650175405529066276767423542878232382133869392319370777620496435997249810276864258507655188373365291805445593013487068381023664735266332958470533973694003208439688564723535063956640364018004129969371940527860316846299642444148981300772641696345724564375859240913985714435242419520058358457264136266213869303025058400450834926139333611592120034677159564687896947710562468867178422277992834574780937508960605911613591267629990102904967164819428720700070478812273436972063350039713717008576840381290633905844126400322575992966988159629616701621160890812171004006162362623771231491727346144298400569103534318109667259949154130088298283299038591109328981620760708294586557427238202633028998070192710243763881515429053165156395895639372598336440262762427778915756098158049958862119683762169062859533516156252307214661771238967992294838620047737110489504379626207256206271522096751602626826922489180006255623934084880838511449138281902040428025212727906084804649901927833807216833232320794187683266523981635674470779273503944815192336122093635465696989883022090824003762255799662847273197011972130820323677449106421698018522746423619597036064276791742093673560820819075920297886422897329331701103484963002736223094618955488676185372502199641640072432301985469939372556795906083193319962282070589134649387696473433227228756631540112131975736103757408826510473184912899367554104931493505991459792483018276539249124170053033176801652060921158208578324388217093022620566127332284921231013745795716635856557076694040679211382847687458607695092889307064108962217079812683830795115042149572670293661580970615586500112219172613848272719233041261269093925236907685553141572915072595562490081293368252080782480110177048662249652511467392782673635098674745534917727386269806198739795943715529793004930111662438437027220811269949928185277174219644163851724871832863611024857378447144451450202488967385016839687625188019970805502963632907795136294837557072521923372112716543489813164558246474097636516804960982565531012665558011061504974349652003535467632015675770508211724646684246905827206962563605086363905556154492701542747196304826284233474175195075785334369436193917391696590223913382047802725759184847575465657866069986373265293449957275539319500703542645095665738884116773804386465154895481679952229242357484127356107635499874710509147977905383543271421522759155401082714228312874562278950063913840142928083379548509293285838079616379598595291764126471549615238666068882676785017453996732773730729172950939701141720863867364530510278128915567923084616281286310421667816543369687314417328254656132461741621678565775725584921185769810188116566187043399062624850891523330381585883477377042241573972182357763876142784225878764710237303049095289306378669909502251440145738178854817321689322320596822135840585465783447261666918331163788560860005278815895671794930495168042424084283091164296492911491451071745182249703888554708118186878106875985655105684452697056673229750379097959573788970067003905103676613262515041528488554493719254058108442102241544757946650462171704204931037905964510512750788484055509375133730794656821518736029261778031174764239720537999108215400226219227738497341008830089094822267574719116916311549870370598176688862213872232167509241105998836919450251924159186558514755015715450606035321128427726208791341419845814902863059169820065948001017537034186373126982698603594169358530862961302196930388135331269589656531441299873612182476081964254285968580327111518830070605326758379095457408487270784525803373515086946436512650693055858699409044201740437680096372559807406177618577723971285658635898887055418677596568170853823693102265553535958072760188971697365560635108009133137474223612807615128934917813607808502569490439818092129457173158137795457098909293478271269812386932376074365846392425956472578162171979881925673279703204024915124695032383756283506887522684848197133610587919321249088949466149057903678870710496677546916613251643231676627835483291246725007341466006313482916759852197170162308358611541962482434856313332439191622157772010225715193932224401103543533263344571067214791808900712769377672749419941034641112259381056065668406579139863557615207905887434883201494881213679975690401712428268850526807979937789863069295001907669323297511286375263779479957107069993329806899969306041498732018046350970151691186925165422033204625544634160936260208427870574902933994655279909626624686183416308810239402949211687343393905956469991279100261732298274227951731365408604662347861591072630188866182489784852522674662226551699203228659145003903320688991451294275538809027239286541770572619908933789938009662736222025597913577855091261150954231286965509935206176483335386338854538801950062622996337122086616197440060098301306113312931638466044248175262142407300684630141344368701179632780012991110331478876441354107936602682083067675692743646447001327361429028135711300200694850660462458902703917221168197555180469765454884143191960833414415882649617560017924949441166881537484092120011714739031671921405709184988693748581687430922998282027254230119432518658588371627338855281456814456740455540139930368937956928195281822797130411943743160724373759013413780256000205580808814180239820845102660363031732048433296176651582090934860946090949166356716024234211756243743510003797122652526343704810527853284203735740844949083492550934784085301482989435206276341649295977155142695241038721526643026897444161340296205933872604030612368468623393381246947868991304904553209201093546104332884404117696234395474174220216239472010096470026601965727535429537355680405551983190307898195276295041623009551961204671253572675057634195184933146390640414258296526194940730338690034295634908296158738680490339792781594388761532423669760573373530903761306644966046419197247469263467350868975269329970088889189514843315647358904410932395236717716992469273399923629526168554485449357632124856074349947823980170563628767986606062288689458767665879204410271961582677949360488947612690010992904516706701163773678137927489084443859443814958319852049961008930234583651623254126962599902349361853411108208558546236006360027596615426786941899381989197281918147326710087716004851202710968371985199351576534853040306538755951911960294516679239628227783984166501378852128706216099358152343934977131069531272021184231084092483868138201147576026598010739956352504040287321489286589066170277617692009907171506018187248565557965517552135572127088486210005418561007401929284000986377869615523748573501175037465845759561658259079637502748452818532719686066145187151568604209800297729104286526257328417338105182368247865541089257931075739931554507564965244567221213293775428929632466769150878846506709097820227570547669037754550713550172121450920338711892221342691248710271053500920370549282038364039629295891240810596364717224916829001436529719499472202311201414938615705249462035491552254321892496780394449025082230226603333940979901512994607324786252316575072888980350544170529705609611303023382447575832512149356301302612015562963519126931557659195211587094629311748243673417651353529811374498072347810885717773821582885505283670532413495295531032350763804129302751421455352903056112662345946103914741559667192381972836815450043306843128884589800315539247157940148044364613704919845391812380380191036187375692041064366524173872585445702351240176482111648180082200053831946525096859133098290823985717282103691208092890051891342686349173467353556055699914756542196270049520542701672514090860803383615014436037982204756083344474741958998303093537151002440690567998486350508357469284153103172444286109310591882366449560657430768071866798492515343811045628392786796844826241290847958061303874082953478682787803220645174999283103187096069236673256273575101269196655575485962893415992619937539509349958003049327215425646010290356574102583890150672501447831663287794237352381690721741978348646109616000568480901630798990927329712620823153505550122509129461811154325507331839620338734725378498282842366329829469602434881885423558947578411525704292607191270312997135204481973035424173276474369726985545491823520706065519830864583834713477462232382656131907343071907679939431270287490238231678353057130340296150663129845221592528887014621199723394119279932526122430180652428759388237931154378276859095450281314508261789426592197299021323412476310645647293497983616146381859666220073294842686116362585988416960675538169359275115036017579197977308937087223868255252043038819912362059320910405054345237178413719763980945049911622689886470208572767839846262846313599715609963923425046642411414757768936817888141939709662565365403397524878505023619965380126321676573736086633264761337944158901799314529004703891176298532626675804733910377917235169606271007224017020118739838420380138831688674689958413002829286657070142394366157822866325532989857643412171773026965457475651717305478654640614632770578173258708245029343613178109949271292604717134494776947982726551249450616144229679024008193489687470332348424078325778158666950078047233434687587517089012162928709971229260685324812565984159718295611487190007269111938119343924551179429890508059534828989083722895025228755481169045222721226486702277280671517681668334703975157389185457945335269358219813586651021769765373522219366048784686811696615863014328336840308162059773827555511559554201408111369622595714984537633169552541959623127455521004179549316361343253729680530172096220067137822593690585884444795532848816644895676912619411089268858275902452326137732659849012322163657820970629590022919124386631670646377000602461489897118558935032078304780540432424975409613884278179041701437851477963261877272604183733503460672215342645397547122473747566270650625700157250517567990988779159782699621259252435876236574519381123828595591531724184112899132417689558378269716592269303846163225897405803538549935393643748838968856979242390437901204534865840226882709438324331829901643810460477045681815695314239673075882669990763965585233766230348163667826043859650291886263083370925586366089002186067475877055281558785267099282620964323055098011901416663214236581792850452689849125783061398687999289289383959060062860097483908002956485905831925469655734382671252543881703979508232772014345903623675919261866158657843872960685964479702420948547256867835885320967223830980501529171051014369530290556226177463468635869956258779530668193234842433457426306715754871252570223568789505022068217519513568480946207316235678836337494673459078874519822579278661307914904157858729844790755497449002985087344929401004431602143568834283781893984284391515715302586121784185269864250922261228052008270161949924694247025527595130241019479073718325973762342667560093867707585379522683892373662975534094463777409293423667314747103327530186490915537310983213455023695423050192685897597011515261529174093068195316518834189805691186733630695791929104979632749424179348335604456438962321586654787892561647632563447160116733740837915085795803464031183672647722470193434910392100680518268950370074046792240895802318367725564455173320054863572799133826026561426437174723042597342189627005514198104776377435147657234311823687035150411249286601132688978458886182660669547559318093692902436420762206213941480658708862724626126153680272280659837150286502114102309367243225458751843890009656558619547654027438948075141552255277718569095519859413396617908092542356706057029707565632756241401235047160079165424488411451070857426540310392162206610992026175835405753576532045581941362880496561895488182414706105638777587863193085957433550234286996568775883704961023226010567448019340607421241317394155849467935545181015984066646330245174331836108123113520563919753172302392317244071803967040630475206614984976438677863583874028288282495903845182819737502329025470320086118300437525433309078183541890371751964838061465265410721944428917188511540182398743334898752268889805852336123967144340481872016913274229540582122867696387509970208228229865711707136059388848998310547603113067404938904210369263312252001744003752712971596125497586348153080573252842763718438153775223001649772228782781548612506631778608126909766876344161172700200309948457108698678628882984654433860341220635130934265073683230120377902384021525035545235205965809695130384719745735639830300230426831875972246875088983661371276768528873681141001624727586895598716180044244171573932002142549512821886984055692094161718880917628017027922299241382824132965468369238041374856156754925620068961167923342369279671155357277277849711030514289921933194403654553819140826834699216768339559168599261277393984709660032202950988126020721639004074584005726639293014410006050807369311979696588725319994498866816969230892283992831548172567536634005326935267490426089787974651389440349227103798192708895257740695321376632155974875436232151360298432084974035646793529804594370774976990490553181137965919862779368488576034046885196062794274258664752372436803723025947587579049982041112028337996252610195143953225453998362794101431605622378625541698946334286631314863736742336785203957126456566158609885034899041612146067478709982894098614451168137782413580771451478093304360482568328890749518008334114515968585053479906006116255827942098183558861882283999258582565290093962815785512962508799824984411243046829907416071797768294780293691452542194575665550602433763161094846700084644618813983604580706547523024630162757094367173778366014349364226864356800349599001128337783081962363609202769327239058443258296216054863984623806518231997363765969387313298271644568640449227349695185525048994394756499909968587549538144297864620446403942486867401299956905078549635855418691442965991345169201217058223565679612568312406818562512518123083043267411836334148590494497020867313399603735551934645847060968201705920164062972201404859192988695996148998843517339756550889423349634055255410431562606408957712707601839645985340470397094923954423424600454095213446660966117535642013603954555294356635613625826025207002382711501198052958817152819981088799920513492207884258991005567131603485618639079629225140857679637712302575387489358801459354741450369654130970024043635987027876436215240372700411282948383491171004040137095723860775839345321468904795769652635430894736967451394368991143800673196051358801494870529529923655779321745129651404701849696735715659576417604713358173597246927648969110503920851304127398285727876718064857580993804102907924903998921928110896649009718864155433036974215335813249989498621487629675443676901022319857164264192077721398166995286588599432846382507790730188647621600074161651714276677605474198620287134580254193811228378705008554996380536896947917377760102161478660278538081494117208531355375239134991660272033801026820001121497030046531976936659964341524717120785329385353971052069258258816619383062664404989076896844338140709536388808898027272361186921134750816373544500088004609418080824576813588677191227169564950954510317972227881470980432630770264328147661439351035491264532389043488560261068346471993424084096355773282184185949666841078216041289891886474678525999083224809458015196671628666766238944977998568807745327466825419241789821654634920000621555056025515623459962903578042049263291312500354829975712206462473196446201847254366114192907584119087916599634932480409702533259522423441607272923640201753766620056719941750813449130085506913681522225612883181052214335903512402236581028744081417298782988249952634923690946959783493900082350455134237795555415627170449519427065572995926444637668548284789946160468899771935881227472701619864790378016142250730265522061544997661828793025531152986840413853199248977573908759743647348567220130981058903628202273591622061278270464931793775067274706528281507459491974562140432507440344061952840106521677089862193801615497471641038162648706863035395231567756968407036170090290923960155868020810994089903124833823656607543210460360773443412689426834468234432771669541222737704769649981923694484898847839687338271975832552468335231960485443269764628894111062126723682569545284442410398529195056775610094211273107930045353571334902526594309170943552684589846814894704898344434651919775128447747715961938205608796711182234147198902125213351624649070778327855239659415139896393057777453765623427674164595913636741234261942225607554006148231104970903981293005617628780905682093572647978079714515857011883777387821010669206768028704740410625661552919500996955870861998951506499894877268897246056526078381494289590625884485291179932017220807562882515651700539557480615414258695895336889003958679056857931312806863143338572416709567416937643195962523692259762391030404210496024315339803148412812330622451242321660213450595387351445015265126967151991779980307290685426798037946572718544548244930287439153721984318638177899962323430256841864143976294646800632215364915594131161610570174941481610673021097992958761651297322636500623476173962597208609073756694387919104304612637736791340183544804147114071528038904471776614284040926478083067400080462119297686812212966331376090793035503422094717917646184599571827577714022293109373612484401616324248785302046058270387524287550249965026837371869591046812420631113943057621107790016137807695934105727199207710460068587333854984758094330343586690816876262674083844685278251011257710500226647312738383615756388555126741056504284313202848492220489810573768524689255107397000983050823825879623114660491335387230592801328075456796458345786909397282514278157447307912167177424092296244535667913020135217384778442241592644377401208300417975142550425214481761070500300339497786288588709334409120508411607007826837669649988147919279521902208813874823483885722733463382020448441225171014681275132232852067067650163090992375991019627881768124826954495584547455578410862837006711155616462346083328867414282590667504104642419155602812947317008911237553598581231749381691043687981332852979032296500417059616380462846746930279303700348783565065049325603864137489206437713362927388120348903779641029749278377570395504266070535365811012811808847283048051727102369619306464758112272611205714383221687829376710671011825499554973679147352073287406201336558666731345178296330344889608549261611118239110159564778196522885375145346456837061887061938286752078432815024351120905963831769551766933282002440279865391575706055987444973985326160044826725315658090385118722458644137645938600219588003986988366249836565440942532440710910618945691737044703772284894121557882365565073881202230899350203308145705709953811241250891628070936346238325296753937224833651288352860542982225653092158937828428567169339637084712670868737586516298443335034673350103436528283385098729934167583777913107292980773784157412004281035964176355989344526738957369584557728221408234696045649501166420164003149757740614039993009696394524299302745850372347662570204704190147833849126608946916529086387217543540446336151575974454784266163187756754094174386795053723821106604362716462703019625585490072724328647246117732460691272686738244114704892119369762489564032833485534670738329163834013147257042185582511762213090454902963494221986505837736741310291324044700211409580441444453138262900398869160976521074465420579238507528993398844496642561819578095457720882238436845243276422809738565751921640126885640647030262362898243186874332393446512282655676379418424877046542558238495873732197503670381267749963013394939256668916874455088816721097479719251723963729041446803612413945253710040004261947435350592001806854323518893689956267561916963119131825266159762447464094087636921487190601402116384314481768589901887474395159865065311073147223451901822415977907523019105927564085866549124268802500758014154510356708032569799800561829107365319229765864999974046958180612604265360661876478042781279351229421233691130828328427890825777196968442573445693780419505946523692520958542882656423087430089676404714357217178904896313948610177707272360780670988410009286444631147271590334945646679549106548789496139897558755515237476226198496119022809751810560733173398636060672722595676770161601583673504108484610947846267177624728378127026176647529783104557471492304625611105714156556202248461528887405300548199496670041457613802516401692744795625268503634714447906175211665368832634603784628699824603208276728893875328493520018641288692009594098998877554516663748938859282353307152151354319656212148260524917227106582693362661455176485989341293659501605680908753163419922921117827688510064204390627558640950481168285183761923956276643128040812206172162273690563802841047458692824251419422799147334453900821947104454978066729820481581547661229306859892488549042740643569576682180556303676008118328066448928394538404992761524830411421549004190214389099944944956869386938047229517251351130332302881191987665203444508907585109867481896443029710088172410408032208530652519452004774294902702348037665416231591366706111175466991665779981483256572767542164638836866005432710747677606730756968442443720798011515432942877119439906131942780387378482631313595264445079274698323161703957687672975843113621422004701484434201865843661684538818545538232184777035362971538193591435069347711183834819253986326506239001285510677194313861074391364719688139405508646895973275696068583099434204932966649383740801588921997095671358738354088714450753731086808269460290388114035635101361692069218838849237981170553993623973958171831919329704557528597819842918234339520545119941443607601696905116249139482469976609619521459967640945718939122195828222362920721174669765989550968464404753292282296737309298128649276554599059105781075275292960565423087611611191195544888865236736762782607286290855804137437634403684454317341695272400125213379843629327298274294593659803102170443915478282883986784663508907070930704169148585905024692757117417136419574110632875251045011574946797961576777871554277675455519329053087127528328569301239239100120865344897743774630613985737410750717858139608472653768258913635056517740211596554093559917733009495802381361124590579073723053098898060465711277146953958864916382253590076371429792540964271388530489912729061726747125818862880833914868231159333101557345902232846377489175350219549826990139035067424820815895843241411102166404874875241909804420891977352412412139657382949828784029813501862761621973997948368747787559630275643830824346528861404705024560142280807418391115214366663599950001448751340508478168238273482394791349309156271854238460327425834366779361293896608794725234591211784530638078518012672485776375909860699035851408341815162299854186978772567524603119261031453705771128180607223170586868705976579196260485559992671997316356960416352667994822807392389789093976340315961188257186112888854071607721659214656810562589987393267504105402624056323790499759579065089299671877922062111520296837926893366372118042615110509033664887552191982130260836332187679691978897227729246028183250697114324962760902042411929789072707770541605740178866371687184244670262073184880240512025266118710496943959327013258464513577240899485822208355015532299578079123387233753251523951800274955513516389467733293158584839304735790777957347780800563057033931238459179392653248888058044309847761478010587062702712258936403042680762330701309274053848992946779162605221310764813369655677564086907787759296131599334147776799929537622842849305380424006066993914169994117984649495672877094938808900931973932657820937046075764137013004067155321438007863065100373654259220130375670968446929598038325370100174611171588288623564635952258807141674507074743091237310380426651395399538283312984978469067864281947784019222304714950592164459969610903954941437551577780413639375437774550631357299905562356276214090379785015905209088085971804323348483907873021834042497608569095101965987961801241737441836516226712385016304783398452856090941535007413753539553998421309821678070163518584584127851130149687206146219936044327338472848190251632509558577863883357546542490552111645251753015900132310286589559431832155304201812933332982695062524779713470522326246812599310046197811325044865366860500118396435937284106100162259059928402584083434248218431936949652842199936517245200112193244159968908481705280409526149983311825650298532302308995678995887523235222329374140548373487007451850888740367213001693563698268896925673094393375598126971854352808255037702565998056870501791304144964591834261065532223113767288762588149792910441640295950840957343745880413643927170904769017028088239853082969473855661370406959651313046304754289627591587223030339979559129789206304394310341730946887506932555267126558337685389815032244318575975260643366028438291134162249601658450231292255624850144529198377134852182639246098799171905511998010296301854750723453496846736667090191693425105958830735246893575051476746798301311496147146868168454861772712364129554808656266781126619590318190413845208322693704068083797231499894353038895712866998576915060315966191323681849805926402577879935593548859238546342135758972326170157048359153864839975241252019453284772271637831809718513110340674303688518511174148404357561839707138593784622792720615590103901620931561718960494758527525383536322725821921344653296286878179335096409539823413875381639591365490387125617296928214952586096137270208614843061315516653423088999462158970560520189241281643220961991733394599146670164967260956521786060843191135275128153974019000056942847983880062778972220437623803635573847198109635514384066128559209245632978143839108948849482629877153380594887818456014801215120968732569556488551862241047434285456623309549082055919243601532762647305715407579137141979528494586981864286329619920816948170118290765274439628894498423067001828517104470519532173318230633353544896573594850058087666119224601583155788059003879891736658405625574233809977461471996868057902209855567791601482321283582005185742531352114351649240127419803489317195382797951986135658107951734980892125463493065647181446330292463954737038341655711724762178306382990118788659540966118804465307877809994122782861278316030604384914206038096563466023063022003588761116987360112985045394518069285801054008096648322724547946156125586677076298156393453450442560176117448921982629312440399776928205149204966857742863904845829757457730395207182815659090023484789483402552728516774554903576369184836134618607984817523485660264903079796196768385643396868997100519330301642886314967167436029303520180300154818826478664172267285989888884784718530461929873275553738065693867538877940354280943612220741066200282748663350572628565109317734243310274523591560166120419544966543171970237677574938665480903716981240067156443991777184797113187028706765457078805985542431694372614509327993026926610436468489079125636912958323462064730383478175959766535138761762222175744308709381578598855314789033438881239864563436826044916220023715822143903245564675415425179349937019159127084856980589903583458401626919517708242274620410805256416979560842364005102894235281014083481901515407561206802330462957879175467205570934515751860566529540478231589239989380092641933264389083075482768370149854199072664184878255819206662756783031975088644733659514456675671933477826383082030547173047708137511783498014733274362296357407150742212282163594590555179792034217518562898937244070922206720298494549752672531901229730348500027298624333817809165884671368032492363953863725222605097093298293335804153955186882235245192276135280758067569983597803296734841171096378795112410266931999242060339100743664699366294442950864397120675535752517637245347441266283029881593790548696120233349726829458405516516706708995083631251011223773497605159911363793896525665258281692621759620082248032091939817167917891933749133924742083041737984057810431471746086139573855168368731148216000061234785842214091985118644415121714208773592951331855054607292904787137210461458398819083902853512804364051732680941339890455606913482115318148121665809171147445317245620778188150998966287490519261483380364614240518403604631895370320667719963839490878504783817383488941254193700150587760424036120014656313581868731749669375797614825674938742703890481680061754131000726623591212388531206752860659603835974075281096718588147789750360739574123125340557771218683835878501560945526041287198456096452339224155502031346242296421666864930765198554206307420562957703967126489168487902420848313232882759469455088776857375832063118169991256235528679525182893591282977248763411157535499062675711134318624614429617123366105808140677437166220383494661601153847601083942744610990664240000061832560057297060206388104589585592203989494202329463336015322583368293590801758656647851960866233082490409845549107741047259847518997315070302033650235634206461932461192642135205097206758776629272899131472661640627180976129913898825072902715499584294247142134571314368074252226681571815158657616281511175489930695679885189784097959332879625785608033535754902580118557480430605350497855537683130238679510421779541580636737812861171343399501952273599152517352013313133471893764514384717693955972959200062726616778801952677173615386139407661790864394791493708396157771623686187342447521251465878362235083956159009093278563367324464745031217856117582692235127065141582371546622611591278934818193760089206572659403811372475117780561094999832146208406267708171441746574986460034620635739012321735516147343813542544675489684894260375833940365085083382921119601683935506191966409748332412800413766687328680983896931811204426365417591794518296387866761078452341333799898595509206570314799257667398114493164014930058664542457141269825548847824498278304384648806642604115718537854758781993290804979245480965713151076210443511309219195750931178500637971563545919056471419961905918465653778020667695911585069636557827731991446915366684993039494599332479207764461242110657615606566219810394586141323332531881808321755903196655325718096936052387921150595195837340122385927141281282244923475453225628477074030938356761494742216454522972520673750109874175989864456187664225991235262372070152288333530801280082057865444970763493647038820168865183723144751189353116539602956231484553191311590967554667664470624404765821416733015344182973699035106081279285735678322391718004328433843075903813802934967589831953055551730264093900400841809618498548237649238884664964204236221106095856442148431764123758191362656011251052582413520425399600494722146332969374360313957226612363559073708853070599216969524904466057201211007815766002378259914955761385289837434748037576791325966639119873441136003408767186937661454983747434904328241987140182059904169456899808784972561282419353253384248017349827623209971672963084266962014481592171407669373772724466686455770510689205163445390680981634454282298958868423457808594358578409949365621294290935446607390739550246265080888622336691446200793349096015708997869555791065017568693641110883476756389107367941047237200400237419908108128055252075523580164190245291670363418072075436701936106921333469873245927931264028834398745668747419261623462450469516671345583450113639795647713976067066960761327001335338468369832703244668476964262725654792710802469243222050474972339876384804774217795966696224677046687927776155073814318778229494581920671405684798013387305824156643496542864036988687474157058588428283549870810900729348478071530790313632236144612218069262104189009818540080746467524828418018642147528651657442112559185479049776797708787549337126182537984169362515533173225148965058941350809654544677010753835237443229544261488964635860152081365623626261123519254627020011441088335182660278654280909621357218924917787854712145842951475857307891405567634845892111135601440808871310698587899793822824753405615636623548771855611427576289764590673752579681900432171672688305558929283074020674121240133903809337442983136930662006869732654345131401547216319878199020820401392673881559455440576582616473854745259136407329257148328206368389692482050428106540679351330696737501491624949773485191714821991355341047281585007378012066104005724303314488057075494878794791414844041180127085066839459288134676065120520076177800370521346860672731209654596833270047903563972117264784847357395387141619472579552252606478811364929699591492249252438475709662473586411474416556939541781792649724789126029882259545243519706526207409297629510518102547617319705063752761251548092888034455665773602292073501371559438994377412047022611721330975946634314553913685135201875018358111016805144245830694935190992310297144753804542995521358700936440305971555836877889718508705467965134005213348990736045854389002637833543835611509266163944076518946724196603998937316043810167323684610060995620026735525945460340462750963701527483561965153776271258094487818409066889815843516890681308292247734460916199018828549942715872588167030886925415551761180757342631272124879875598643149450260154122894988278709136484016311426006660490729346390028384598627498081181436091669006041458366621808746162436015709506358536149193658194694588564732217455176849162771658727872452091721966605540509742006697572171110185516304521658545375020643197296729800725124856425965139282149136728075787984057076710806659049851589050693625205220940306352051700709867740095013614353239659032511456708861748455849601659795847000902624660226160203208749053969360090976179322138033332052867672767635733550563901156224508336452145214659457675868422269914143047215815656486354615476372668395572171693373334262967293283923398762413805677484012337411742334366592425580539395382275808537974656482978156344786420635833910522325266195542020395517102070524689627622878266941163901963811114593419578192387558539217639426237181832815266072894684272153002592003467236204412894799285369676378129834322401662705186838350279997391986508704880112516045614312255664483560949843063675978034778831903721935533007676398464874750121593866606112707716385148027868313506729542884660514418674383256910771038962737935092518407279621304521221143747000378654564540178900071791028623833708891158933924586236444876426843978692309106337136663978896183823540907909978384930764364102718502636039108960251764877026369841831103886602840311187883654617501529009774541826928720493181714754019924820986967894447295388015477260340161494080685168308598693715605765642106644770433810499436639252659468534597474982135497447485415986515013239964966991500321290287518098368025280527456088148861910077216546561455554815235907712227759519317227436210150220240604552467841993689460798300663926632032071504575625114998218556717175016897057425128711847465544877393917465292833304760534880826226021527743572293827549746727146468272540578930542403153785422476047066532078187384494758246851136251676999957522771672390499702939602643023614308715580491801425358188091008017677842639223281548782970028717005755084789948166575553019335160375665724795609365584908058621743858051489816922525611789382864017980715282457508821497417330530909257818132434260697723187717827216462318411034327446706342460139578393349826793450339220942336743260671693182083896023129440235941822738149768075389582593332438183462078176079228302782048289304244281231523779847494843778016173908408477895173339066402137410211338638657390969041700533347164218291324151865822305027058742199439888647383396607977550555859494677807083091883969286385918374494973671999883972927846006608694472906393351546546474947050776277978561515571999648063913349704361351000615992351726818024995390778833801932653780335760969581014128263795009839872438908416234893226723332316322627873421738434800904643206571473306100396409662229799332799079787000329123560307255024354244906809999269723987773728826842315189333108379764986912178941804736631335641100953642407724799830438157476914363637720271975448285231357832634378693874629065798079673622595265309304433373853949540072322628459754043621305252000210921306478829671538812466461777017136886490561690983954589766626481550214504220404609501232727274250386665613678082492112722947589403118888596924434507944176182866086288231900513424480703708738579597962941329328987710094561091036312759399468721013502249062837002647766289880960271777916791396787917549531112582348731720089264011813626499988133897921441579090445920427705642187675527883015774536271798152612188752462797028567299616106952388101771563940764773239184951891550475271322994644103802429710433080395852921369979906088039132795800659333767759724591184532990549650075879154470853365568845389663871195494617967715805439292088645673310807182128020634708401303196436683231048969036039997923055384082509574151011337120393926588457111205012814634756116664256394097229121327448623783559197912526208823518254109322642823277821519950440435801032963991031160690597133263780344651706566999468456535304095209047704859944026197334412497092099643084042051844878968769440890781567045612311890951704457939285772661600182558352710391419049521709629268358267005751570346548669179891738418112708165850243363588055337015918009600990534907112831625391455237344648365141111130074990138631338860592533226117732651472082370206109235763085921777136932731487427799621309066948904455578389520942648110635089942471567267765350864759407864668982750986059053552178741895957609641697622541861258932941502416477231849388258206619652205539376445262243644405341196931478329253563969969552839186309332496276313068487940985795795829243293067942969521648788110816996633859322686914156540775359308784004764073680537393946546573107536254256438675843637337145505742090263163348053157381723853583708790292013002431241723060534915564242353723029686185085460451058979536882742559206327866963954444588962010881500277679045173691103630784977826483425667008784687173138370130826941963846151729554112997686660003996480543167966813056051802567445490182294581111230550513806294067316343439003204568651687744792319641493002654623217003413256472201578226797425660735332629481103406082515795261588527863911532323100439089258427465298596834080975734060881262467557362284712621921998086109292671671990957719462137235819037565670670412689056979910492784234168699968278639924534995882665592320906062181951613445198104673589967674264767220004863864059561626220007682713581982766897135467818629894020829119686357000117473048739335452927280703439541499878442706464981721759092770560949620490086948675964379327397271301829742343687144616203295505455309263953395745408388959801576449008876661520799632019320018160498697640272665324200739211213880615843327896421119848304795803735838199594074143215944791375417610548106651373727194621891137595700202298855716646740773833077437360336621502965910833466234188095407661067266051880353759718078941848262113853764600472320227528711363868817429117558054546668159657202857444660647214762157718013486951452043688974252832229799729909674089085987003605735741702978215614814136224868610978225320439160027721681944285773454803107883994202577320514478906786245485034664374417193722401203170899858238910185360252465395709078268437096628829040944300843294918599128382493993399577680631500945453420683171869552138692718844112618005217166355167805601840187263579422077314433892531726816981531988127120062640943289467905369946453411785674937795603553796716108951756594297191517353196746957067339440477520506754633016739230495891799327687229453922450994299815665395842229425618529756752428677423036868855076678669011792682731346966958292915788928776953141260076079446295215125418910053979045259190947737707382534210324728664295505249027045092923338030384277881071202399425871625615229478961517419085057752984714282977420071863715857817121016251262517171184826733689025857879648152459344835591365155847963502279793306612561298498659328500520543425399478176188719379241429307547137353702778946790372449686043240256356515357195871446039416336226352574814900004595049652994185738090864036040410003673004859068444496773639537089686059072671783270950093976744404021978182865525518504464793300540432831297271805115530707749999632179617840952268084837792656609162173923853316214953966958888317322556272443081824599602086173850083929096878708983338090966534063327529256528431962724524453877066299617173122675454584253579945365162580374567688023060358431434633187165172724878498011554591659939855210640967136000226396633953015668235083074287138176985448687037064823718113384653064776904586225962024395367339441490444833737657839349105025500765320068950105782862016373034354730431075029704395743843873188908748836921241575153887616702781626192907606503752310455358260331626832349303462928575264560492893737216529227673620743973016622961993502244689501137056107423853423012231358283915702143985852747751305810754826237914810020092603525523560345389398342890487498987047317080887175970396682035431922837613291739950032246479410940008535612801906027542272137368936314758050817570513417211706185692461417002952168234991131463619481756448341897861398758941712873799551080327401478861356277869409221335057231860122057088096433602614406086767270943915229445795568096908734861109202242159393481759713123768541114338511170531343144565867674928806735405966510423434551908430782382565450246222368308184492169014067269438934167553945030796519533853335420363905502212588087573947938150729645818502685156470491492458619830970014630706394632046086623190939306454411568920361307459570746462642892882669166212038671833525272658102259805602042501602820917283169544713480526214507795962597807046302706299567433408229201696562232450331279782513385894507380242662107580807374666146919083148025765474742681816043254259950599278288004100102090740800601514719384798910076063460853971080601508724048301121839039589092341439432281430558520570719992096123929087376590966598564087196112893749289967247502497826107235741154071144192478834080198692974493803641711418918485984372473847023646847260283796589596888316812425619899808789067634253828458497443179797900758252971720794939613545505639298391334825409752438009100071472894840190410517191668786481308705363986905868648396721747269713766738678210664306848259689848254126673607388106418689558920660764287920912121734407620553977385579051361851347161056026530343657920575283696640957988446696582044880187317236277758170132680133758855176872777951283493452419296067583664430598370847357965626371924895387359017880743548834027260629961964463812536999212006993314306523772638602842902132145760017990050906134624939140629313555734464390049130510408755424856815151609728287024667484944657617385830136155257394333869806672022348115290078673883799758362017882484425648835199588224437070354448745683394069890173628243596130265720898886181130244862767737550609961404060665276257959845799061396213318215674594006106782175284344745435150016992109241879566346092118243193415831437248793141857018508839283402595075217849641286240049339263812757045146073250549537090135883835883848169907905596356106674654701936880862254332336493581029983157883328857372968003703314767475918089815246000079074284236591683508747086105642159759847598206727064195269786417373114274959175286312747615582624700969807357584167831026981121330012360463715584065607396971064896232284688910474922445859853728723469441092739309757893623852309218946162044448517868826529701285256509492913382198021666877575022953784524286885643854066262612478529094461118839041322199687276464063712760504811578510994306179662989473194762675951010701008545898624189754746824421204829204301742901395337870535753554205319042191241574707666610914623453717307769277894899732910614531535023640256388723297879331099009324819647071942253680320153750120455221340963889374455998387567319571876442507487507882296791851113870121679403502365205462014091186479414943993364402971333973084605000274146018838369720028405329749899205385873578286036500410704486096588147370666499356138513029549503589023758842148449638728298751049516936692921273100847908802551531845618290330849180892862372060419805670525296525799613636530784911458479939251297238295276180722064649783710885123544854942175411513354838235088452888690693722758798963474904094553956112109511362117706649661742087577551026451333170871621899545299781533814998455576842969998651729218795844360431715858314425829686944910182902342163564677967742364904503956924257425961421762840467015003559513943115926999641864695644424472079566402938364159476026017755524740094740722617056560864930255788489000903840464158166410436409410987454707211158667355978154388299502412976693582122979957261331966917442925508726953360714596432513952108559173910519879881015512133353027909851797623873330881255355459764957532380735406985019724466151660230796666540824452837222933116210459043128449645125948461712885166227830638277568171555900467230950033638932899349983748872100164432135700481108406714739365865857421161794704778147523258071916874073445775943504905092764855783540107990651509070670566084316368890527484361882459898233205467360475433217449446367109696093819478855880826433055802338148191976196028852826063128457792681056557960053729720744857629046882329860470776722611273712562963022600642224877875623550113048042839179331165645084164349861849663923078455190413942509144550352588367406129525088713516595034897652818606134258986106729025381907892145275198706568129683727420642575333114166399493055656188722334911467365441171739985162516434577490236645943223817549114645427159542216684734737681998456997652474928325672659307876008479610100031303231486251531167028860794739756831064743148113119674722787287130465345423321650592088853756782440741523580451696044720355540419869904617585726716650644461200965488352796350785230106006762545375241877051944614218549509562419148895278060962263635961539269643925934426126526656118894155599493205707316472850707994422191013474853318370582987549145134227242850508305812374806201527923434573856178026909049372680193017738520663389328062973365613861728526637393611397243759501754627083707385945538801164049327872758909300351416345138240386454412321354730157835650387245164069848628482166643567758908896177851018557593185737275454090697828829249725934037806327903099130041511107349159409543359651907645709051982931608831808457448261234446537425098280666408644159614716954929195948699567100206879979002450521089575068213806566117302013207307335761062386497993969414698168579542004150074073465621519706880226772014828582663561645834239820495189555362072101817406867277745537011236393127709610891476850148396248017617201254239555344678057398416833711225343366702802499485153605823808727151995036201072395206353198350638123873275499869253147548682753441882319887904140666449456443877488382838666868773073072156449241249477023918744833432519335313317573218756011486918379777023976388353958022938304918899037101839660026847501638558268806789786062767446327116708990050660799721401225017749093524050226373248449531989942832202243069542786141541633536254388923659249929039852807856239611345995654198039978020440663196059703521970534279084137066014185384040290703049578380856880307613224380657106988457260342294443290450253128267001749480349682198925098094553799668275270503021592917648093812330268460899969660732273232830067168623508998547031401110127550663979470280267207316962457770204469602389497485989092275906270717847265030037061646475438529294654445037738669573437629201102098227829522273502903590600286415987101056024488633612528790059143059090689861853347371739765800067283705427030084138304734771213871162347944713055213353076142806142930301894512921245796373562330102483023079011524555336129381640778574329476917245835224682765220330742910523146684013613328569245969033020953497139517402116131169137255070074802507104067292690019851593486428583896193319849917495232965753619305188187776295938714891710801780792941745715564310984087786402398632645558383078826584850786685546413139727287078454331402557112846248270632456451520673490384063429760054799184582583407535560036475777774232771379560427166464762873369247823857173381229280207747308236063339981851940218227539959810894634176101971786434180750134970537023557146658054993412630353839008190450102537273680134448967220460957692765175377155510176456955638300648373439225064192664678382226350610993933865759103877432836299915049737915963868073930974955630661023130600881855005822091482684615403102171125266394072868571719161747381149787652958312240039187682226375560790097991343006332867495196301940848584345295771764160233526618685440007096200809393514992221230877792659415641166848024291219506501294208014580577226173361326769956209499923937786960269611259858393771153450731590949487097396082360797570262972190615932307512035462930650359468700882724283295817683470124194606297903441164715651407797973036817166608650048646129876002291173443590711875938241356990024126204912228439327398673828036713289345889713146631595110536494737440050288764075135539666878258011717743581545341917790923037902900163321541858285399479281131384129254993475825997559670217203852599753716675146795172664163133122325998284261081587683605461462234519278509901342016075614106881774211904277692575486843683070834085590566914964120121344236710290710006070523141248659502984583977961781148530582133556307856470215484046153954874366799259548773541017329711374728934326392802023226757212071310392994132637388748639227582269148159545493436578389587793382728849161682802755468584756736006781358451108187427626417664622700951824007960393986797764392947624108485364333660526092041223297740065210328539228590706962801796827769481405589028421792333319555351014823255293890516342347051030839989922472937105516913317329988930586850020235083269896978131162732761051666985826024188819594136651857209617190306813263260489814310810546390277427785974575195287668988901159887698036920390659818937953464521830070995557160288691464887417197658953051458665217190491598045356518517880791324982852837899628173036696398387778293459691652690433912704947770169558733446181418533972200299322494971694177074825420618124559002255871526755049355701766900627383737455827851372633392922681802728079927567182955404450044193889445041166597851288916843692395550669540901149567289469493996247041766415881641907888223124171594144807598922531147795431552927101617185976047261068846294767673253383483375755209309075253351266559788312231768980689225509129425843094016764226099678270258712770248171694461021043049047072702812505854264928830158410678791408923481796321251822019830673587563930958240419706208664142608705778444262632252905316166676093105367167756947411651296887090765422730937446362475395532033912522760965442705912059087202340495625897487577018489952698617885508292317803794878766779213697742766156370046252368242822550216472552765704117903932343274523684764180588291850384042288466628526563205096736240015099574283702778297172161904401371732959894089980324416202511319731513356073530735155205464655689109278691477713258449948379010793559103022670435935579351539668172840721137720001586578518773448702879419803888661176512283892836996413748054627520407104252128794402565418787375400799431070196237723475969881749613330141597303612824101356829737809662140525638343065018743419184502154904333361348310054633821628177596814210223889960030577169160928909445859798112769569091285830008163626985037740945981475064262060235599593641455011594615860377522978652287923235138062854408127997112984119445038014140504049907067860931837994413106095219918046870208487543707218885084833192301226581848904347396309818295908379299139488793000437198669018216731068799678876039793930095566611213347783045304252542900504026752102357134138166334262777822634389262716366260938007821545346608069672647466142839841977719281944664104291750986553672814878279823824825275254117826881120005045840172604114023377841528178283123753782838656626198147542264989431072600504042464689981965275748160717159498980759625384800316188660061776147468316498672709728728683773412973909857531753000540348862513202322327706618072570062550165110564719009660722233472098945853918876884086821525685969277318622709779454036446978173119786623403440888187942776878211984268395790349813931227412063434220321520899355963663553446628529863174495370077247717457673727088601158965296251176123476862873592940887360325427368405459885028256786921555641479898983650655414740049596596758805128977489381479004576738677209992682644086642232833232833710452776532534609643710420133885796793058719320525279504186286628838156399462293991626271120293888952620815530736436810061510616631335178421642475009900340860930732551047486161622600233863174899148568028906482097466869354184325276361678196463190119648531474782645698741524014614892056177814745688262055163026542183002267317227533785539650079923949567002665347411530386726865901661094760439677652930962879985148135629230617692170831745421911559766892089160719056547054240178917583973647894617557063089873963504680752563439041909755740404417578395482761240767402024903053638473597556920945588133359945102826533423386009733209834780818603540986646166193692581116717967724418867919112281629983050921558013289583504967137790431414941474461848446003884507710275952581722212046239207956322967316512326890655134067324955849759355742640338784978839795303016237347330495239443007828493945307235566129216039123189099278547332170713080546703414756180944797311448875739920802986330075108442676346383351526042202075624875712346469703571941461626173389554622999334490803495939608623945756721722749191946015294049615839949623227005987068854018963273683844961268950509894795742154093872254917017052433635263138923311949809628562009958634311455454421403024484745976576302383069026433290740113057653631140888366493101679336847894273174454456768110431275093951334416540380948296432210068678847671791590759385765796206687700233456418876474720219796124620691730221114036111831365688128744708465073503219665208312405280604997471633035652986649205456348939892651934820108566030489083139203989551589804524047995535176682036028507717271479145740381369296931494640819682635237263046068583022492283548875941525771988201734425170918006081690784259900642421468947574939918738037192061644452891637076111192528967502598457486515723660921025228361115586177197503814511943214822918004067688063182788471105264382555496479878898422884241372727751632617898929818649079658886307945260304690068805616895793722459007280342619783791793800077345374240578553102207187821117238433412973069776237011955286857749141288912899547223069043722449240748503481642489493541980262457508973979269143425821403375852879644065120383380514961785861621933230860379305239448713408442396200080982070038308013480072412445847230597230769426476106208306010715953289353676432694437860847133321466698115356027319506363328376333922071342033454503540133393209639026786495098053784305968235959530514541139423262538368480988676296210203176525439007396136184015257481750846994969212650288417303728746009366601925194729771706064824871079205212511835546487988574601881602707109005255948200789780348394504519057113303095246401504134140168617862994428867905983948378392084345955661957661134093078487198572701347563334999069351697945016304068452459056548657825577026390769094557962445901071472094104821488114252516816700568316340859060553309072992917717956936909699208721400776860205847106842430389443286546041378409136300583467532027109323261110330135646807164738557659867990012849062921020326610489781849090445987526137680254859719841366086929813501105543686344825019441753855735651514554998637020418770790179617719436809280336335789590679538413737266171189430768471833449515395610775007432266783905408895141388001110858797552905568115198914785867841642891854941951463069811706813936617192742246332405624318051888781431304308351553624483308182052679801550093739724520772660066793047114824241188218283082398301649953001882917875024314027283392073057102321850570405771412891077921746149350727939947469049030236276607072926057942965645222659563902102017571150746544985395049252996649699526496608329723922426409118637997791833902451355109307034166604407362084086875135432425697431036627061531845066820067895496199280133069787326048215282572686814916541001448435194026363183332610153687876147711909713479155327749541086904215069945679270406718936508313131712175317499712530757961634097963145805632955120205911106572408125803610460250510326142802423885154634596288974775815122865622657286238285746510588529729094444261567151175701308024110191368106727950038137491484667025372429087460729045756591576242585797536805349483401800075195489282669802858731977290229645250330284501072162575815906669051125948724226850282767630347672576178790369439336611607921259655801463630930220030822922444181334260496693941134221293007925371399904793028001046863676175487171113270466097739405282167333807052638424065738048122169756072247527877462596894609254312846125348011118879206491772943721243954610885393982022282543358543775556177251095763306128015110140362238129957073155005730259334107945084462402226057354976041054257300442268313909865593136122133865122050244632081531383628473549894071502744622712974944897056167377256746358974082581691182260880559461358479675918828335382013770255260779225196865053504497261312385703987322976329322090380335786562851624623877125645231035792619617190559347839120095741932156689579635950999795234393448120544982023154321030632997341375959003277563646323666528915143269111510461979522680138958677365362160727454131369806515844681349533534057637368707817526501300522719649281199297662720322961919109990437278928440383672698518463687580461365068218583752119037653183896296859436591957444027530924176002363623618642223373752309207361426261440850412013136378676022910772830212211764089957652418221453873752023392404302541579494975882023203530794558701273395366015924377719276457200939985573621260803120120214370301080508292313721421959144016479725173124525777877579930349243778432657562781342776442228678353743613750456677079695559244056946465801051111519124556809798890893982982375343842315537151314723875895790160722068114441358426399366576683715152537191123097509092392518691345704944676560832766176066839025053976986898374294730310758964010721120297752113376700499890938204416964670563800563382393310833800512050051929865657685838689209527518681641889816981272923513973093223910073038528500507261799100655147941640231004196142606425571831465246507490203069012437783540419127644088863283829378756524315702847675049407099112454986297040321224807573875570764477158137528017046370522519833105973600367351342208430057725432051592013171098221544452885828502958623775686208517423428697077201517356535378319661530285890513945133354318091497341360259851753176474012676124295363195230984465643043018094985010160593617276775945878693314059291941085006193080963047653704434186597360716197988262589163374384094406028025869649609435709634201084779884940478220968000615662758228795109691284645031970414979995777793886648642314135272116394418598949898704111887107272244748722319006717556516715718076535541291115355970148702837906814420896762828048852958507884873684784767796819838024354499244948128489440403525520640963956203540301111080107492605388109970061653154748453920439805361709967760670767871635006421185164859892024012975882009833073419065881250720445841194820771878536137501450269466400319454079369797345377353942741748465471161779153696063204325394110472798094776663712051106256485122228898581452332806658296576534962688202421008581993668290907410086476401859041899924749753095044074420141687643009771544923505014008976163320544956697761335039145841046187131016455275476658770124295131134175615490567017770588227692842127797941843839626243008527094939707177856406994059342443446877465416575949724402042746878752657521275815421565993331713197087954754426163529640812550034941117648569263789825130787120681503021936998570870946180091111594387255281278263461807195234358692174719113607677831686836775403115632771437228412734182768766348287783932922788442264491336497551012314532857663199604475641904392878078510660461476125877671626584146510695206202384361151076258560936318296324247710258910231664912767514698325190537073853119154031820375857956274369181657901059632243918978238747510531161688164712196127018702833640921746834973626490808383843996270738757979349715811854676633065863083483582067691960849082848057059858505616101162265233080165208584434599074563541623753324287582846403724853730982069239234755142610378711961929522165289632440704752760684926886178010187498509911967136156843207426388267387440957826082723322140224108194977228415400272285502457943641612087559346827052646472540601985625626265483762653578560227157288740599162800110224779120171417515929066495714536699696398320164885280313844376937800994389305996867101832090426959229983665233560641126810141634316639708371316043010565891216440588055702523914531849062715506455503054393859418211224649970578834293747067349023192393378374150159343989345698779482730449582744023728147903520283155629190184049051488726399580966602987925902101652925499698493032197403907659974280545796232485007062659506826561712976855527077680575760840693477865873415821597159998471875036863977349720405381140075257693283455694639940899584025211186895062149203772144745396205110351513137368993847885891851780607444722297009658635298173251712460603053435870744239760109288763554967011811016490569685049246285690224625615659630438115833442083954229403016665195703612772755939914551558996417980217595215047678209206768265817820383944827759463791060194619002143268770818456135248521402405524971945976747099577788290706470411978815536895214183796317020621862394192093907139096424353323487649502278851071793058317050808913073418238929441270047465601612574735122364901412311377385870365680035457520601281898406803190099601920305866809475854473845492082734863911515407300170231227217840505292731346876462529920536294509568407617813899113110025467909122854491783102424588400525447814133986310532016327070997434645128499797228546340489327925900735767369904479786347197775684637901362267192312947806029198165665151149305778387961195454839142509923646539469579149165829145807417763605417784454243919516288169169072852848500004944075373481646024311059750122026153221083809330809339549772358657092423376968519889460720166948248763754180842669828459127694972857057926573829877491246553518972003287704783550845587884320524353033177827832384942953768487984073706389540984446206293641988055156325329952443830407414608854715712269466439177274138301687691898905150161736572201648250572705696565251751799725491221769742225162617846646126341275447165283648870091412315585375902591066730121839019761243019790548462015884238301310551933058047371019054106585887663633161713044529106283030668718375657840523362414777611393428738434458474206017789589141130452495937058886457920995038209184654152022789103376176409738100528910735805701166394812427313438749373041686302391215405344993997145402564169968799605050379268485631376654248812036787318435786507320194965456644233496862943136677555461189618899501656000809285983716013021469316956313521383371162366187417833842034268224643842798487621779037378975114587118820937891236135149473896009970091507458357544261970347431444676649266315071192246820305757913124341517565557028902292991551346386022585685462605223722959528401133419609350741042875758203661760451871874879590208599056027838369900678057416918956849166885918793244423043095061034859097784873196719836626508475959579584870494883125772056211631320055477965812628223833846034248362166887217478496356201231300596407443780591381510105493338948067729130076586424158850908139848283944252009738152131347768048332550610296162459458044770200548174419122990953021580228178478522763490704441093513816777779258706950698682537800525289946128668192202919235641110298802747476029445527430713294086212855964756948369606522288893909664870569132625325523496955667402966087706186821434431344453387497085580504057035402618654723073121954066456729993742586630184987327261572346451987116060128103584833881063015576988584535277812047180671515894049961328297517478026411085395300196914225712114889732197836205786110588049740262630732248018649506381995337781112609957710887322226971190906034131803133848190184397936366267748116929811650764834647420193587457163419314679932062071016073830326731490066793264725382232756662539196367664613053903784182795426520526378984711009985411319850620959202137806958169966919817079214469524338952239438018159127611762372983442180374582073186772244324908694868459629590638611048470266995443295349878674381010980936834966095430554349808973168243228662325017577679852649821824530605219282087435177122811998260704150012853594396533501144199111590537760983134825070067477329340314914717871821271556079572104542473737097204945807107863576326416172475397624075747222396884020578842766491966228130518087698798088406030543686997647480938608972625284318352047957765171929167260440284031938701003907886864280696922406585630946422188458420127487038362756535698161823727005490099727428093028221667776914925768740314847682722114521126248812984284784929363871740187802351725158307957088996997307475110743062483852460053981655491834712564996134066261294674823072007608744430420670749870311240717548014821014770517364260640281580957659428150006697485519804097067451791767398261104000805648386013791979426739276776416629358162283609757244867476397824496576645642368270275961977151064890824231959293469332709851722648703789826143609335632654162534678560557985176734344056107389239140674342047702142891745874468893990086244505384620212669808655241125730985782186659645915657207332594334361672781105203995728195434414202784629815937076664077833659522148228310525406725472240971817891735265059577512676329674523421837958098067312830992086636062589752546315049305552142554704137399909942770674796173613733529938590729435135237902578202942111989285226091969616812558843014628212786949280347555306233142008705389718993821894474530339114991816636746242886396411138228586022081804808110611612023866360320080904837912487880743609014699516612473484124604256892465063549294230581569448067384342667446954348885712406686552881668589328482530791615401540475609236719942864021616541068322383826822712384373029057476365257023141286168977593344344157934330783280056859878901855828923448766169660479310583136785186034610284042327823915907948668388655011716568895219964262695558078241654087718300661773008360792207405688286060151826738240339655501436925580333029640476928531499719581044568494764823396649125322019480139103522031076516180900599271915481055837650333331511613244297328378682327815375208789366644090545464089830111516791754962723785116433110739314835508473294038347347811356423525656681203082948939463387266032278824841765904381304462287513901215968367715726289437665171324356291804804833934934121916272304982472970953915389183494852148556973566518120235433494601676781761622608439493435071328070400104497047478009354978148934493136657020432565219762045535241482991229572402686952968442715269121523539303274469185015355614991325435046856391813626752884824224391108562282122963771430712925690572845828870242516544252926584664863765181587082212914823444622217755532397674593809549194688062435433275737456677059342288343362924859277506133801730695244450235497009469229410081143689887274001547978862209013606061596584031500200375897441321752671390387637063795280473038232724670653917566680653139789058919742939765006062867280791681963449394814402850088678742883976867110489529601565738565268295104398513004301404309270352243635463355214000960194172994430282511388748594594936977634786323426205343483498583780701627428275480990836695148155979997664613617097960019467602935836972008574824294937823510629418488790101700898361774369341718941677198215322218422954788488404183120911953903858995159052926594120066954479259154270359313903103220618965197027529170190848684875300270557795938211708057629654572007013728671511073948565796123842436528989881909673128705518761813189407767161848413890040325866921741481728148335352451065247508818316901680533790274847176631648122543402080427893048056301527491909400473975935208966491525552911436778599741209704070006185327457777430076625000208640330079825376979536001729321000320846363157763488306989619181548075845010639951075146630021857495820966618513559894651286309789793730864458875125291165869004194644248040420705458670713804405887819823698537181793187244462765009241963875358946957601020535301326340895075452710597329666094201115035015689045464331078039012003725718632065571629806910817289017833104966816902788179466930447709897096731334572165043869261530355301514870077860152009497037309937357710818223756501891213963433180270152045941351687665824945337833117918217814803897385413778126453746572843256393713962433219214169497840050961666481527802379486320674587106846939876012692307418180021715099988104148068691404033486991398664078609134477982850636684275417399184311879672988476743839260069368451974130010396296944220709237505985639654655834526821132429419490703854899321004048633807430733838801802585244276453487860796165821370698610011195418400509027365381901950684431892773432611402607414754556619516941107698711595607466007596291616788509829210446048106343117979701513342955183380978953855875786543172833008898369154388939743138013471312363824241590780106663897067729847108314071197392150879366166093733701371392033071173489515014249552648741716796371071335748174451025401080309237422032987423641242991362400786991544939662567446466469863986851717880830206896596078470620181179357429459294187729821409794010391329090936558138999217495608684500282032461554816698678251234273932110194096841160385808574604262525340614401657434812181737841534318538348071940617476766293692091431930678136842492916811952718676927127583324271672117417346633807708378884305074091524221778244709256650214546744955504793700479717338740410444897995994403067880272663940340982574018738229157393057197819544787577019637316967780541132910352682036049432632727263384295070695339138866254948648611174255676603896772708022897310843790998254762571110148023338238709084785446242432032805893033116608654675842114434432629303618904204436946413620306146615806542177837457523121578096921097756598395758809462860871293962661445815889464020724272561395653034475261013080191936496217178863900359132580173705195510275359063195231383865087532659722649044862444897361870874834060187266640161373854242579388484376958515432053181611415381321746316511739804356885344611149188261468720757490178263252518502797808266996818617804189234254824733826115450869577598661309975834558800768894630061952217175714481467849996898542279285508866485240567580450251360102814755855479506595884131975877266515961158826309937259737715025916697242068210530374838568210994969692873761335220873401412084459349975871682563892677614105852859151374434211806187787694437647433433166526740437396027811828993796628076354135751716069902370365202262041484085709881521471066984678930859512685265189385782049233837986665032898731964914869904927519597215498822482457404781068793139354329592598711283621156164202625112707430878955225372627948289058823581923735553741917125205308850975424010529890860956040585866650635677970442230736427806925507145926919001975573862377778152034155202819804079130190677163172169066618295859451377417476357434773054691051319961998878799297887574834987035831529752253720296095993332975676376605249294840344173991689392502792075448250381999934275915567393312426211068472997479014389295629911804140160144592231237556212436517705692412996374708514446959022258727071633391938207770818582376560365335111956155302207874119199232993287169994665333629693110214950523544840847535966151945408645977814083045681066227439246948627799510111226571048690667739522903104746740448724774157031915028459704569412596597929566940577737148095899890556788050191883360245904191360544601133490239162423082489424541288024462967751395474918671709652221296058436664481475277642692850080607418021322335277565707306631192771931793987522239278145877038438080379919322272015372793161833934443174988711029337976466740025155418116138415043129333399271800428239525563764651927465097767893868992888410074186078829788189705636175693156748526076429664923464910590104289108603581183727500061195876903224580115776561192500458099744537336024376914783148452940422617830428724839632822578955805712967515327251502306129200080899340911417907801274042119758393109639151494384405591106196664564283932520762723480620336649294055727740199134676201870475821899497088011496552133366322823439943132001989937017020568865360281395060025651686034816324026444969637828233042783221690562723165357434514482902806845972805520183291309744828699271691109501498755970538018018388127235264370190138294112723740032584863147609975833221476301481937245212817074236051695866946630087638047794751192321665014757303781897607117942870429704122203660137627107674573562009708546547214473304809905520664875115408982065343997356572534369829053377788621718403850198903361754133804421706347993491128836927215016584551157957382517317907572830930707889741901864252327555762978003542017009954143984570390433932024287815990296045527377221909212219770248459107680489039821701862032693042691176201143362242734157638862243889774691987386843607403510523662109480544429803777324669105539288292921296459367705082781897029086993023995128720095936770104128737672754806875327467426838365725776808159444740225120584611037936931379456304029325706147722522669118444795403681312198217271409104942908521670534745929554319882717577292340789280498760035011459722078998047979525205794738636166537137402068311688447837170315668174373728038326977564219745791812207040973072646375631869898266387990109959048819415468523305163046185975535208324715915713734970380055309866186342425890398235726750245070819547755749081740498334079759991050131441089618226352852759641277294263745241345603774723495011548167107994022060934775070708182670254001420116194574242633531518086599088596416175704854606368602647142562679024417702432480453993996674065429959682916099011898354816475869894198196644248243144023393545413303399982926845451631893400386933890629064335971640155573325871869376008731855621142587580288685073793226026061425620000010081942004265873042567546293912003096200982745183754268879513892339658868348407622314895585946627058339548600960244735192163104236499564745042471854710768142510221529018355580225868360149819767230218970491557825640275561060489602369679376019092267682486021541100805679561734649984334561328274534531622948422040466773745941158786909596317819260866242370137721678810848839180764397900336001734148790687889632009256298209239589299454166085367113400860616990436110813592645088205613283459368942980408349269122260449777648075966820222496734245618532955323625956401426774070086525436995184510452507347412438258351153229968196881366182810742759507064876995090970350867312453239699820467708924261249718966513260982386147408428501117613426137770443319595035786912508071410042532714970590774500510531269752591431320233013815666895328142276963776126108940313902738299552185612354042697364435074831120364903519424224237205671137904651057120594193362821491791023415079484707616336225891792896519528845222410447674754595655379489276961178105029399004145283546165824685144120151489924876864762724861723237583358399106475485257309617418526422259702566223832434611033860924089369336424572599039735818962273271490345923900309540018379758381111053951155019959393358184417440262267041055992481273934062065297098912651897899294459316703839584498560037715556517319883759604042332891538464950140242275085029237895529891031877755462308117758846485046571527457763285641659623223396311309691022110144719414019171012172404228721081610443498655581829798853422182888497930119338650171917211137554937819424086962935790729637731246525115275702603382047947904473699018533069767235481442684066275950398748615818456444504796836664973886526366496156040107988209857095302778003674048162623324072587778410549338226740421531529936693707156969119398482362239055386577072793825737472417949868969061369605447191957271128150991038703542753914894771887472853238452415609499779692425767318017210562798396128163142425547927775258802738340915395911679498330369296991379044726476585132174842201905722257766112399495405216797895768951622532785070104563719616709031022031608236091291667915292047462995208619448570482232908424690134690660406974469203259219557577361613189286659645079576345204936895574904872076884919598679970136044423699133060754015522485254703748672707030172832976049961560802755954656298995639994430310561731563765329391569899208714922335989205673608154261391649506847088912342878557031313779839738629511517896575931446345074941208631752302186423004525664147599623740087669576635251668001945341512357783170059935455185867987969512582493519648290653652190802340326273366851887199505358851353811017977191070414196682345891020271311250228468706523281983424223435309853311084962077355324842322197663626622393561352451566792905516183540879905400054923447778177096197293315706132903693330060151193821387499371522424484603052447226229746061152694380187231692473835182467250573997254086473417847853684998138111748608827520526227908903583540412880364608916680770772657935138286627121826524220117105116938250425249968544650953765114172028188004304741259439386109282961755202219620892007271663998917084998675025133711718835226050194435166175341433164829659668807237522666175889155697656398278166325441493053358160603695957757088878881180114748854546732460473249427746278221249445463715297329702858634710298062889678704065873816930837834075456297966294938422231747501369096555214138661974790274120104374243450474587487111237605535008802896608089964622245236116404860479119233492490519440752959607041998622111490135096616291094395712359976759287492409834804226396134673365230994733565652329499984289123190359700840535381865609757786696510396323338240272355050558008470697983058719084552025679224977598039712710938348758746637252230813145030590930660946930124940885239427164457498424866181168017334331990591343111341977197937446846011163811462121145551237650391456159837490116601194867367562873786101865987328569625162718819060363353826050434996157686562370153579850799062072741724805515676820656065166067149561067305878505587854674582388352036011101910446829097016522974785734275773061485361970712969902134062957747965601247336131413069563872598198354435796618622302877940397729612164574949555482032672046251538901136508522219021573428841755933172602093261510947426385396143309739610047510201747764831827149401524776379975452258106542212903982442699043903494807756558177080376542033030548033760815160709480728604074788153689862726199845474921324897886094100530328960649768191939875515596781234494529885330393836637212830763847637537594146186018395346866010588770907278457240588711389882766521843163014200842136147012033904358485112920000937652345096784045126638515741404694329565487014551007390219001816778925808890810451235594218476148240789262929677149264938398367077908404151587693740260091439302615374032697640106948796156109536904878037141767897412550791715229792612852200746523459942744535580937435378594221455642678940860496241960399935978457845674881607531345325985194883171768577425070477393024541695305602229172993024071022320051935862701588710871163451113714922084965035626740528363032738793994786566721938665259097301628543630852287870367590305916457092355982455031975899603422662696648067467893989911313650737180449517403723048422372436125605192797161619139870566650525497664143001173784356235149224658518627888788671601935608272098389457962066047381890853852247190139363159804369088267053091170035941435640118944301310915662314979970570547412781401658735749882537692016031539695339078402776791371546167707697142356971823374854851034635634787548001930323052679657550016923079528358755222463339808987783263439580474927498036702917456975486550379170356321767801413145731261633855210261070341776354211357773212433003702883930612441046319808934034859807044580919383433919368604345508446641073844220123830826799115973908496050614596597217608877509065623706456501050188067406481762638556726096720645619715515130801094430593913849747201468824815996522190156282932205057202815784742349046809526193698867869369075915586908369258073299408984362054675751839889783291073660866918734621435413689692996302026061272024218295666142587236587992824178257618158375831111582213466954156352291411559568760804326216132519061806214493772304927085215908556906405758496448206546726801314043071705283709739319665000429175566346257717784589579688253825152525432943802071799813702759433658233729143533186228112743274426860269360806668938680360856155756446159237555527348081336063901986194441934917758219370034196344097593664851471398914622460865783205759855743889314126570910902962952413636924531625567473193662041540329663347934435761919665608710531301313434097902212422101573673975548125258662206186068001738411682976273599308850782636060829943255906122204130900154249155092842818476538241445947071720569884681333399578206740582287548652725205545650197510626606389164172030942582719398662415934503698427736753609050013233825369577977618492333036310384267397807648603472904389218288094190012435468657175751687330591409267000414382468710083861136606134046612011714049882328244064376553373814864557943086402927473714330627954043825537329546717681031432074442122492570957717216505152397061630660702130320733507329844179059023579440812922175060556708684843396611323403903813117006936870189603965139642980800821309375343699232332844465419794193972812792144290943854197892503746119430520467840005295799448609543397579771339699450184701688729075560234721172881702055896456413418618055786074803540669780444358358668941668534710615860454632001638925335669187032699109027947666766330687009630411592812462931320469997446040010043295936529167784814265873046357207918300972574813421911580315864015575409037865561727928757737143170524294282429561048469224540826704129125554712902094759298449524373977985631494570982284565251748306606899161314283882676422123761684774382614205289927785411995701215920504553831774254233695220919064912057514258917142807345176272945029758618692938856747200285235160622223691787453524466124865095686771979114256739334627554761446885232582732031515109186975640410171627010619312134519651885193639115009348165329320708215646075016275654532371807302351597384647920005738582029608299508852955166587054680351188430830420912920978910476897376975749056519325071361554384177913431615821020121741197881424622832091663145790548961015335528193341290751705589490925245533137341727252458007166795768908039062635319687762739782034372275938974489935909629899949935331691307037879614537157085927475595576417315095881550118466561285432215256539550074732231275793866432569683962501162379031599648083357085618922179228786706829556492935409528011646386148737323323339359743804315311829258790572098101478278975260956556657879294691221693816287372215554736101083434762250230468102847336654296527817066164215631157474700725256743223705520326547517627896274168437628483721599682657408398747400134924116144999481410770910351591828019506055545867112477266112784325745531819865388478873580172795241008675829337251976330761544339790449753190062023746552066309004042032283171433750629565918792481677765114924305843312458471241306207282360877033619652867473463127122007648589729498819782551733688341751178787901613775243848222527757866225098428269395346717321018773113346606347938932914636878793590335449495592557822068324072604712991505954939656165198738038223247500849075702049344390170028112771790461059645097646927723038523907697235012319136167953747438028666316197714557141860906261449773204999064378534673010763696280805682593490506638687034747822026993343802450752451111899536157883250557679699518438556917456991092885670234049717114679743863982561959292668650745426625757296892621470406054015173059312521125868647970338379666894994105688863330797900266948578162474598155039587007265166334354015789771741931256897888007990392181183765209500764583985695918210936556599365556476249518237603675296715765816917843846944340928865090752346900285382934062901125035853098378661432651392754940043801412924671168603554728185377867506932427583861290362096088178159042093996847481495752681815392204552749399165297160433111933403838491322789079179745762712119341720469191052119999473475488257100053401446931146727375781769408681016182354291628007661809457500050275121663349353599955245739317011081908045076491155535374758022619855682032557478310645954923337466069198414526034871904654268168030358674680218651092662685723688335603384700682749394375923691089778094090756752883896489915122919707617095562344254705292946667850136557860553061033990838730449091003931924847745139658878446783172046609426924776622927042806493998935509920565303266735074419311641557613027886858964948950602316025630328619953464466529741349626987925101456674072061893130963901471465074900505328471163161882329778676036010481605608040967095312758149616429061204726455231947507884516503430903026906131799284374318433577995886493986024009263654763931349468564920596506900589764670216348368829220042806768967853694689457211023099749512189453510086392168476646442267416718232581928344382918022967886901995860489396471815847844445434623386791623455723641115087618337466164969755675299564222019950406401024675087648522820120676880447544745531801749627238241578846562621819895914299997525556379788905221803429798353862563090479904909369038469428137300195901979314851086330334789103991405970364527358522836987868489464674347287392272801353093441173089354359123070952607782891101805648698320228364249629919101234230932547963679375837371848601052583157394663598717015620042400076749335560221606742027420381256464259147528106587020746123134037953185442575598945527520370865165622107770422379443407150009248490071149710758853821314113033902940261813203779799732904345624694392887305944620596921669410065857361823462573719975673695016831698401366726984361195902240964647095302550690096590099859338648165224806423405819995817868060664879907050143474883851851871006029334976763123261097290013513579175520156264717540041647573528131190150271761656161389338101978937364262502842090795804453669000683195845027129053818799419251688878921964288655925561348363261794835724584530071321156205730190589919146961561694254477226756576915024746615089334312600262359741220849679113752038998330803455681064144614036198183603902057016786897126036429590253870857748947166769179993454505381861134573546862873064866732845261581824376138288156739939668759568417437659098608780002211984909941596054702584832987916616118632559832194419512034853808600316760229446128269922128494369789764633583782835813930927283552403372127651312757218234432201444934469551801010180955297808505947896843871851770952460639373464318345343337808232900509457932369944417665284351606881218470584350167575934869509715495393787194442777961648344743038858289107202490741170672230322062904086357707721562715927244668341023870803584816211193671819703440639836668899581321274034361884376635270610807588951759038607415098903782978492672449241803611459569277697318153769046482596974175232334397594946664465113680799146444912885285429407974173384469792046486343755404872454081172944195497382389403388638998022867938628423148198215948477164962612561363838440822826325773434114883806817076510552789727713707279449119347669808608142546288875605850433614245656501993639056195551895114186754070044910865862282665751270220144238049762939384825746794600968621021349617354632558654535440956941866688247415483080214124708351108346288877762745774890362756518572273778061543251555845739448760610789581740270506418256745132023428829679427306882926943966164091799399246051595021958315050771213767717385751824151406828429253624295868154326775520142283160735490698271892250494116100234962244325342211109446031413027927016543980310873123518469425536394209808391887626528800338667887002972658349290888370838500489677532938818840143211399792296122005219584884660754144788561213150111272918700537948310941676340273902846872795353196062793883946694069822521276170326902196694240410997962732106920656038522380301804225209446903086829495839427968981223322450993300477268018275763498027445857551469460231763481952101587432455038328920426856517138342407340679015372794744089715109161109029833506326877119326599889632049053064165926704888613040535490745120367367336036239154499688705788754174886882300819215127834042700569060194087270409615274534116649411309054983015296619438441004836880420716252888039971476996947237903967983333528972481866641488334135846947046670241846582836085256546921406905024984468744134296926853609647482072206743684744657334617308817498463146041596606296842284076692917378653511608908950029432403665391465122824641268993236736493966207633465056027485010797667111849587797140211573229134635740243138958125075678817737044895843924470197173077642205417490713288759419551033279345187718743381982937009078394944619396675102606982209245127658210873727310279553694232827171986596112469819352274207439259874745816728368408142787431785552851397747946674358229185431057510183882753887780969026075282720056769238838033526287149611805306232227625910395919733136601956379531542207935313637635671237735185331936690316129662074742225033056453212521353105852727381025292072329723507433238531602467302351774312022894171767260214261532893072974151251509316450852449952847083725230953306250626162564207870220763553354745979284301248190699023059292379894522480454465256406102281416389745383966941499133957867219575792660023734233966425893334120812040814842322721723805146288492360641908886685510222683674532893643253773605971066460248757486592395261912605690235210697887996992028262683956958933771051674264339116334483032533518833762836266787759988501659554833033498329134050899199260376137192928126724099595746873823355808379915104275380090445097244412103844508762864571576499545607147732986666241919239316508382491381452665225887877680318969795763095844530369550683265126330583835481583531565583138721286881473826041730524857256727738263177512990385514222463462101872626495393998370142846307217626139490070247571571920731015313024080771817371671996923854758196077715275292699725708217026742027022458553494658464823698590357964748718058291182960973410125980581351661103253591152803336428508981773410003998096303240472024251692536555431525383067935882768091143370823698013269402457909332079977943497640424824013903791880136835840429592222913710126864923514671860823183938006423894369394108525523889117876576610045524185654921840851197042920905968367213841634246354798075043200792392970337529680733868127139291643775001430109570852893637940752799859994436970752980377129276846689627549093471467955626368660719606234989260131181140379221467091991666107941455382144260226424298587255495332903520389309211545814106009765787050413445497739328684957113514636160541434130894891190952961665251330026192722489568238456875613426343796702331829399632504919428856760348283267276998014594670641211140464125365091675195694455849614825791564448363032769748757513036235056830710961379739643734155179569512994256049888628056450523471082138823493983664847996260573064663567483210548593449280374287089454810670942827739629005791405753981650837539419535541658760175505073984484993579824920139184689795699918163105407080281400654318407463811240781286283778282450423302623056985326027233494790148712301310068475141786990880967292656945997697569250160704931983735140371786332958051410666869627764171194880914450511104806326178426504026132437328800389289512381594453673905514814965168503082578122233925191773585201249857532429980980774770613393837913939011461802876532294120645777057214678044373323252251163098307728569973012802951789055990707578700743983970603697865231321897008695609699476807504615254133502967228523944035459125840929903629997465019290090586033286907375181327388139453345403696239934846827658111214142678285216663308317701972169577514983599759587113074654207753991245213952419692373385105598639633704162813978887808426820858258115878748382213191391205937288910886028774790552456576309119195942349363963795520857920484607575792137879042761814859498123164730698677287229506555635222564389245759362191387576534809570268552784060282817902490167380379211046643522981758810402097755088989174680488030215303579507105986127826356411503902033907202863165950131899196917561883766097232274856267957914329954602818471156525344733699819218167949378227209417142439616778224722446875466012569083052345868191850068272932203452046190704724991363099032490553711779919846473736101742287697355688640185482215325729581804203653835254390810167199135617802952618780746780006280064932158618561298631613459722695312599123953488339819654530975963507537400002803301379789855294182471009076930016463087205505080835981198567734132821823617905038438121723101253154857788430167732407057537600867926812052176805638815074239212717762776201155769357508704428779610647283535008099770648174416340365752237081215899407955434633568511067673900389095100015216962305297113337311944466369014101418243393585526200550233770359900907342130821162431062261520881784810936886953981200925262794213020722646160434202497097644994293586665801512585674299352610747683312885806753198300121402920766341843433769616034567475406313756090522904527971869038067134958333819541834456386372554053497985724607828861464963526706221634238397753644678663178070175763077693398680563523784668134820518325754247977699874712344887928003191472482232248671059781692724853322758684114782211802908763266103755329075422691000597766131894577279377623201484378909028473784449620194853721362963160651040719469485221162081352731912468115689945085725115549281573035230729465816233214378199519150669474531717105138107412607618792140210067288002598992426727994959603032273269060819559315199146245913397228266189827929557626962202708191664744007630320170581979030866603564059766964641941167988081708829704189310577822261643828193238009902330008377397009886168868963307710514492555819169400844260449197715880902475692011728275584076987800684933467465267064923208897125054427378298326213878724823283010223798397219251563636485213660156257063537468358554116968937263534400043094617167340110559558877412346031998433330087470637219593369821437833762646117947804221261351340748109703203089956572329486460015890798115491253956912473014413334744856772992163653804357089752234923105845820262811703800737857642824215050019547356164554199432449014815438343396396626949096190388906704876774214424180859410689147960614443141630525115137571419587431659295766686593796632589112899015230485917372631252274500847547914572030017498334348654912843304075514212422569381553247082854768237320833482995525338585239073285976118426161428547106887978258426793282029437225670523992067212099340602056511443164576498152611287527431750525657092627446154230232350630300821534210972435824002041392598642827801860143087663729939702680555118762247403690498009319996985981107433072193705950976216543846338550800356883352137982497230540244827969037572590238244574708734685247440736994771984075544267520385687222720017539050934301940781966442913563987685815703919677562312271516026433076959522854993695672354032512802018726457020231743640195987439382652593152638976392205629170493471314450022081133557549603911256465794470085914656173419603990244893156943643263775231095470271925033371049557171772368002377199349926634122499567966696168907694311247144572590754605399122123445003604838132248518160609211545661852683868663649954327147846087972566183477726460975009031620261738302446064077589477273434946487413242812576340154240133825325759661193122052396291250251701688092723793791457708749940764335439321750561033843616994065838117742653406383303338367206602669460986308368453814647480308670248893016805779982697589111818228485883050400278211044373209044750995239941037824366232417681377050560485767495096852572688906708607004748982578305344474876416520691560276735712263689265356457663314912339725640244005278688092981186725975180938394602568823463091044272242686845793003159239967504011413069482633509508908986203658454268931699759767500339232113006401120809588675593120471361486165839164741129428780794739336473360151189513001086743246459080675603942477280650458664789105466289270248930068353863689570205534082042142916577322667693067947967288129605802563468209711736441312875610335152644985174594863492755442053697742561369940045452912851839069207009550517918422708768223295261551992935148341711215899315239381123223634899516742801936465647925520729901603786238397049700717490801362998972983494482512957026993452834325374313224850027410632646223795759952296835276625682726017882575889399520679110063887436276805994552129921141573043643675175187819792191306428891520148627094484971663138159698379732026121333000643266900340511022036831532466348837762450217982000343146104099101979240260701277704369190916919610831143155029587624283230598570897685489558035712263296730611960388552973249800439926579460316623698319135666683284524799868521277786319966404428248898253834129761645741293592804267507405436260383699554537815816440010252448796801355186765191625506613886910943903082617305286201159746783321980493177848069766817946643331101734892895111487812580627860943721468338505590444225825950115485908028487912282729935375185606616186403302451183432984191396538496055444446403924431426276724576601218736491133101086860502602786217126042949779767355982637897622649447685778298033599766064386524776673881881392321509142839573076346236501720885580367998365474324837571436061820706478574526851136969877843829699471812068952720028018598262529274957868295650822227521706817923782277428486478522977101246157248658533365416767424755097399873417796221140190987992795018485230659917778250720077680038610060331752311399177849791532980584869500660053703304437258350325317531734380597435794065729703508450049079885459402590127555239916089599144195979399800336986431633212662905670213239868328787211698117839516925207558222197152519311253102035343170246789607957835857838057537989215964696582466541393199625062640646104694773838464771770424480936270231323508787173844778410433853746985841936882640544635128512306840468392003011275165728314288365641102162942280981366890365561349037975656519790706190151574142137283255806068576005213865744700065771692208900413509142791719228150845826565100173033592635756412171251018047478077750650954386886530000018090637021553343594411290688859826271320111597779427162976605240615105588968050864667040564541895494822798919273856096613785858942782136304572211057689940206199779926402495224733592349886902902244630516190675333200769814436914995334114177780134401222440356520073720618541468955337876007449140350762413142038513801963693383965418901878303372594343219620121329449948492992280572067502568405286288709986752794966707813630857462442940043516243287512596521463045959753145239147993998082341706897889654943650096157569274001495083867449789937456550591476840040700190686573554297932626639391154897897713684732165470375946561472213707237980531648655753777650808627625893451535954143530712326720060427981038354225320561720987854672362785164942681473026748399080273859116904772844306138117702899367059796327746070269439263074999910551975571019231748011015517241521911398139354368579293374717239278327030479254581786354358572092435034742041611037232909867038365968588582668788173099817962485624351470480386104635328073612509084502084910061011048986795643882512135490654038056010541639664009331393381508621207583844972932423426266862245122596359402026351082496167346568798251226811448929193904994465911445844295181993744817456613447549939502347586714852629207778732965311227661351633807364088476796127965057411389859504744899723208794005524022593606526363780480677703355900480132952020504069139816590054904035655668925933891156949385861817216318524605819830411302887772969129639035157401601335320999246340837234561457861922342928130476284627243549774411458495539169665018057721541733692098668419954661184957081692747463368482365060332594508281422336993502091889209816142107090724615545274790526523745757106936339010596127731802200026935414795959282068241501615313169456967491110847616666080737251100976532414690028561729780566140497825991897283477904779160665556571485720196748010804751431172260179080061030782901709662888930281473119898831967846313535064284382575559248651208914135082341632220742542953033372353793368570114838951492777109531787243685979521181540738596602692358647231612479464463906610536500660040879118525189318423216491194582442723946855048320833499362443150786032691990413940431726694909031458172379697364635474849717120119734139193665780762833953123300533757670540648145352347484028170687036483611746080406262020878438752189828392527176407859615547739867985694065383337828885722542104601284434526439985255774491875755720987184581515899312999584478327984877849221823883257755636071046375354262520366850918618303208289634599435497287042093048417507438061537412708094734290267944299717157389207063283381907286928681646796456286205064241585822467733534470184141240966594658450979465566370274024092067160325459478624905151066683864460830294272630845087607397110720504233768406640484581559456159224801829374244010439644844356464768349899977943297656000721835422979170183613779880756378674557854668714968340984071953428048375838005336214982714730797295092711495226769104160021064587831325025848978765207381497660490857795506944981035540579215440755953014579216517495646698268749460773779169644578779663851544957941528333319928467978243366390864300520968811079933212441246845665782877130010625218550425382337599909569513910141366295741310092537835534165749300137274583733424547778907603255099600996116331066876850285994892154436307876704918481869370412209491810814191537966646858787616022446074462511943941082911250882044024161092546998994633911324515040122483831000958924062738170554375576739556120316945901457662015884507179374836820988718852438884183924553660653308742027950666354126932073296317315678645575644153077377700309176369959397584829386221220725792470128741560300560894112649467672511719129214470778218622323887768582573364103200865048930529592343615283516806839771077234495254964002786940509703562814650664978882129272992061961963419691887246387775401772524233647328690041641116471907841239184490215693562450350879473538532821433259774526123370416136876258798883297171860987379291062847605644727475908985046490956386987594388702864653149499527540491355662120210864808847206442572385459191816756605015976615735406049174545350047130191522376393857948563301249236755707229720328739221853515421090292135294597065792476418118766930841221969765567331391392647983959137114413315613875147884146853438090453248643074137337159905337233412213625072003333553439149199639873086530538808839080084275787663039448222141184747367396232794431667313612081902702687499421096496659579748006776959350250321032599691825995577500902358178301166083502608396100743803968885726654758462072392149668928531105116019362426438287843344809924679583162061218510188898517824031124166517196847276134616076315628626156290730931696206191785762749638993505232783664693181207086870498798837567625372319335432734239877950766973701740418646637950377914213888046071639453558626895272215195607179057256263861392675439553321714069061640320225996905515997046614001486226835583903180959509134617292652292056779509225416673485575813721272651999940847046332443766461227920185125065928040568823601810340771582054772413880783480443573660750244462196732505809543232248449429891410475346004009171865606808334704169869389878574641427081175294027796401937823896415384513353073204770938788601897000867360063035384933831025146398456589999194849999289744872828185126137242562833811485215644731831810948369050082192204745331938296437124700746397316937829149505997522451041808783256282853512286694205518911623357337011627819202442975673375936909734346269278443859500414639395627070182861998760671892087305525402285488096805469032553361127006834480079820470559025145670955948735042427282197848386285863692680948241969921235562133990768448212469027575932031209925706896842957959549346091658842823691317469363608726587782038830280328805332716009164255553257911910310907264935128973769015722112019812873887670830188422698051541501906287440883352044134130485730450590498316702279036685006962585099987172695439097996734900877601060793717638988123417617997071581689711850910677344331763468542513935171446949505845830755769921153384417235306010881100155770538038019420066309206858473635614733288362123263603606213280176946978479294077601103694863352375699569594588160751685805425997467902001465511378554691005820352453054440268440556272677365566748641003214596624547414340350550048722256181287672429784099155371538254674904400257869639733631878402552726154186428211737723753741671096481783501109744291962910433755445451528757237553249516942262953721930343243200117021217234953337117518348169941550323913492323455131493352054472601482670991837925853453905041977619388262228840491840104360804657907602342440992251644763330910250962219120900410941823095106403713011505153399054039002714268665147263803650902502222712163516264187121091740812929625022348740368226806753349214868090298467409363300713126771000222423005855179302844944204003498230276229544301622650686203711461789779549255715008109878536245559033505843856681441393320967059098715356859520177795323441209280399780701162756037462373586991223196710131909863983359434088920858925925636270938586047005878950995504549714372423167309686833906998106464446103030286128762895533389800804444300190886882357711268813636307807188363518775048425547965846102721045783429178445798412142617416476905294753418779633732724378301447812962574073438193675247913319384880901214790773279923735887610595200838279565506069320826177215682399385873594834585298349716130871843513581309497305731578631176700335496897452799532482506011064326065812457307857472951776935488504755512756349064929565097389341928769849555977636889352509720468700928098476819291484518721374685085949808286191364971831165580746303093215995563040669509590828711116735525617569472782718729252053555224492981612871852114197755576720825178962085891089191503054412670772670778089280840038223994380169342270482586511209773706655832503174222917029011836920121258246997345439663223386030605530156595991614390958369248709556125075482963434510275738909129085636987505835456381430427313968305876731487174590374651537599247483908590525268205675910502455096720419867210115607386733466319219880618323941209020190249416886461663166067615465872102008872786474260753766269304971545539330335509161658126874287196672007080803760989714488747209081919791097017624599508027186210811479955767130384524430519556365970720605746884246712538126512202561345404204940844364432555392562847603354952970629746410675104039051996621540883202189860909389390512733500201237044308060512620869211319210927658294504086333445978016183546812785192461797008914018354801503996588595767924514224436034619167937472250128051402531817717722974946193622304462347507844491559189620108309636151206049796711282443349027791922384207619696960749563132588889260502053190548342883574379633699326531513691285085258911751739475977229096099951370754323806319098545758593934184930921212264973295661636024876966299720956119044082946424837197735965725417250687796585905454057574407710888470233671730552960685211255531514512430571371509765169938930722167070345545401887432887507756578856542258179833873206471869126229420015603967109097926440716947827684747433197866843180806503844926023074463354360152816776913903390353162592659310744196039898593941925137737323394931933031463252585838012838431830978286007381273777675382086586951612228328328604319686106940395457260067867014976071941777509388851939156713906753744102507149347974181684159664888484749511542810016884145000680331672971273171496395055292571027358068593462278109894610936981638712293303283656002471316038188631477287948761301597874978600056975173894330734707644894986079616189207235836358910609701952602202262604955652924537433480186563854156446071496350202389730884624121510147916765710052704121618357951040474515977226263963769150727500094843645962717166654481620699094633280552966253045076051809482922975063396812069202892309980528640369189632724065304721036774295842955542581163381957698597211928485629079792102608764923887045943743820797210689620458656392557234068632027393472037506469925290775714147229050220958761102429068609712127444801230797678184852741184827435706103251142188242621630600969176017368628915103861557914027319839511167957576948835874235610222222053222921800440078507487587483636347909239282757171127944900327217268629391462070836325067739804310208583836979490990802355173809970937883828408189506958508568743222811643102049082843261633256623155134965376331028488178969381612806976188970624396257164757475938523324064783464584115774831481378420544680370176118262826461999689290508366269420225620134851367682317411647456160719594914162845090676180683039113931196786950290732003255206866671099466069176997831224061550195164316014224004308365368868988078906252706289012067784544771548736857372112854325916244785132593748050636025501762501403038533332431821862839749562094141453932157465311668549198046547716286327149720532288326552177515494422871821671882457426030862684499632760191777897272083240704521125894661189187818770346839418155797882816778595855556248727989736175507136937116943174159980043619294050284857792786193461299063706142712967145129341655026113774857018312360547989234141635845828817396132662759398148034854296763781818779801019672442653152338801312771574967024901014878184546680135321925948777770488920686044260269543636404741389589308014300745495719712664939379560732342931724775454087420490880675226564856135638697134210876366798953011804516966138735767923008669689787020300509355932918333199116947905473917907446176389246192103723633652411885324090523036744078577775931422352056652342574169518988650071614545693599637570552350194422098705662824117160470576549966774952733720330895210722667351914484595874510612310463242271312866176348032167453147218077379934324499434642688999293850966630244233919417790248613677364348558705388959145004778634926550750063648277441770040347181503658327042834032739540778450596166725764429375991555371601248311087295883097227565573725178107758159451488553176007131359991778745913696077765771396637357479063133839279018022942369664574100970539448034531678888814006111401496283780029135952082895475981512220967800269897120482736342502412799215242262241176750279191753930617039629938351496357806993060928288666249621393542239344219972951258259621607770135540324710734418671591326451880872716075768008436320625881310263093274310012772025832002159131500187369796259715629239367098387530309002084179231090576589785437883164794062408928263693855326899249198483739789476627327768524971347629582100195607106475843264985312225404366680679283831879936953098963824787799816139486936956882840901533559042726144571680647952790651079840354225875501031740078779185567492368235792980046213880610295122335495105392557416717308151822894260513519237475282889690362203254590184668754170958733012521912743839406348554907240369555481892025141380419604248245335324377563637948735196910543833653388284679971090626844413290494135170161954772822774395265800282041390372810901792930734171687915887023846461943817407981066478855835953635684720495901442638886997172397309305428542602375385149126413643857332297202358535348275243056714367518082953357481548733445180857744814403874640758187467484476254209156985317951944754118155485134479973038161833775066161087513306323824837709357040674392668698539415041254374213916759768880293237884812036900669833916097441455177005704007082734123008865386998046268427739799827371422521221379210432487029344341365308812630786699865090820427637209019870226608782182072662913176759030886225620889172139288607105555615764615797663107673874750324631604096494117102085211634196171963129908651243891440627676964927850442003267280408347975884721027026614875738642797286866388537325805153827780147702444357682625734238136110686018569205751287147585301833210472689496066244332768182061670684310558115418973900511814910707228865822789784026394186615782744455120780355680487660772370102876430626107076589003231178737576565572590380369093102127619169775057227985874255058649830945238413930337840269319662565351862162540648533131566150413787952849702170099209514738539564816687183570839884747556963519083422541888954034642525884429917079804901932039804328409021170061495689938846315898820699843139267378402672875624588276570543388509177086644380185385592948607586797585894253972277405800763626008218913974275080480817936223473248066035257599163521754271917865376411670357218540544609772352369821834782575378057309842692927709706416175073074456437879423335485513215895201066648792551097139909055061760839586677388300724258044209342168566969062060992685752337637701297592656404511397164753497099806228978351326471469099555016743410759734155535982960618543491772888739329255590285180653432467460597578582558589548907555156515441578050486250472420144923695674823114419573006922224898361876799239154900005085797505553774895365935397680726291434342101103605876961512155638832061735220187141024898409072799044832100208740355953542381590652357580625003630727063365889046593184836617314663038141658975673684482542021683088854483882805342801785285792023395529422232585866336358955405015348840848299350892701349202816745093624977542503142513445609273023338333072152147611851559500229408049725971484473837322079170903541390377180999303645262113443628826730735853600010414264428581261196288675029284552044801571985845767094527427748171760825070970879986488311192244745414068851247616880091215296743371194927875616820523777624376634844172031517505223269863222392916526380893807090852163570965468414006769107575392006167147390686952883217454343786977965970651711745663028384904571367141349356209839230662464368295255969275322120779963125230910364227218679941166443191806067504168009982398915821241766863494019084731158609079274159753743129276220864216262508329066188757348012314224170549931650028301877930396238834108135832365480203363195965061628342694134625806491703038583481893220151274446351499706367219997032116590507348048315048488365737286892515159015427453027953606390382427745493122757718316179692158333723969114313536728829009980125104411685966639164775202068828893923855161242778000305935684400193335159900069299595869061867391018953167289002017101414612720446662009578792826626306271172974713942655661591430586852720858493200768426916426687531150781315089107646379912779013751641982173871974693956932295909722492904404244991512906728484186394946222327048750886539238290350024044590504950225473173050825580223988056948348987341929796063443611897748318502300956623990766044436400419846139869566132520609270080805378689837778319845092199760501615928634249548806054821898784282352602903411055830555131439119784706477473261504855612817779306019061534316212133703466285998230094816019798553399413373463171629286956851284676314194279833268581117735685163347294487565417344104780987827617454145526878051236538757203403375758305339957416158800781832171908629644550452958498651489590260667994264789867007100289186383818316377576255502996300088520038970543276723355011652082446733204166363419008628712538998693518670958579493113505723903543878362411475179880483255446653172888798162217868022939057658343607298232735570123737025190787884360417770995808822903660601023848075427630686822890269798431593156743835107156368067348862788958360071017280700699831904037097892585624240464381776757723549738626393183240096361065035671696783163208027551244365556650095706336247921147448355402584967386686885162080949015467840040324423956907224916926196502876287287631205474802654779540717615049935526789278955437124068427012199048872419973799388033669159184058678901850551198528716158146938699765162123213499203334594465965433381693639039141120549695897750806125346458121166376328019037111538764404114770582222918458623204589530154470912419194628244229072558257302954034404455774823274938256152767178161842653438131005564537745561824624728848695316237306307398864764972132856357978860204905603463144954552768397737034438811775231189139327904046821171492738391132326846297821037468624076715555384925328165741448151089680067092521816224303293209700310809302963827866322175075615495862638621356783990429797844447454811918040260552390318455378677779776344062946167500493293999890265788510675728941525244140945211801722024640696030631022667310449860761259143432484769820248971090287579429095597183975489839278022916349205125101744070443002435149441101802665031428124628889816493108750941728163698280468849644856627360596739231102663829191945459419314733393855507096445725951382552218386695110208538605437096034859192896965863840860841905879692093895897738072003910563477345250328161863107564020418969677812884896840858849886131992375846096109191353689442100021117869060545362690965157714314800844978477547418097195339399203991913861293648525728857546057741260106699842724553059879873380140788859886105126059015397172567273263466360685564573840994773214436774871078286041585326778264526182192208437319057243387472551313575589482279810831921914728946729595217506010903661805152683384447785206478789408681109112167076709449917835734481468052897217735859210536175113620551558274905980548861720322746130443341219756728110059319829315533382513438194670050266225504993110093221583781309955040487688621171780449377151273079667150714209989333778302907036776865347274349424398260951884047196207405992957509746267938048533369554312104544402236994027996176371870352482106096497827594601017582018596070384280527847453487011522025554032875511863176071964153035715828759953434592438152386990311777177422222959411448263742871092347254358585765012053161003152440438718424306535770401220947081407640196152810799364436454847020774189223842732840580906764747840659744089368346072821811088609774829974297926461624869350426816542346895158953536511660808697037284403239237378632461805333957827150731682346113889396375859181767556938895911302894795747812882868583302448514412547734063975462509833688867805154756597293067997024882504596678826624402972827788327866516664234427631126961925239765290840353414235288146850030343999230283867160955479865392037195752125129399034297414447301751144657404050446237190821577034663081774866959552492340348873861184232725843811554980799001262234853984294322164915832846756891353940185769328156180093597488602059182031184491387064501306419014891980766114009462683017547684618014381244434847897105367853887211941196458201850139888208874356889334824131471262081876848200648114176388877987763143111024844578013710032320600633344552440161909781615593367113631175531494159227310901541756349477035119026549717945534748280642151535049045742810087150282696708534339271121751676042323895970136832127104835453926887421452056239122707033845905523981857966620130573709994286244912895444094277090085136285044455124316707564479840742255304456473209427737674339598097145508714920108520903832391791887953431110703009045089025967700334881367560564008077313079554794983794340448031651081566411840654992082312331139001002645093907929843543573239948972755536813736742347021229109046366021660850934369122446540144504939440239391303857010826263128910685340834570744497432757424757419601817983704962379993790651249674708922619700422997021056469079277427902317886926551231593162080935536225832267500219929579105672310745010850387203548247310029616490636016914121568690580944222502215406200104011494302700419313500851658804997895293645075274732598220520858110353882092507923512221720425728631857926788267747353445112375924584830527408039427502886376135345804801807936869725861160217770060707130463299143829594540256666883202053624839583755732093944059611968623253272991981052767618297589112717249107641445456615748527180777888340276779895740911477259112303675933964503673311304650708826972084944651578859481649927859158654563195902838946666634847823227507467382148718114119825726833641678727274785053639004425806058648832921015276015496397438363875853577067476709047605760809821854256610150046775776477058957027513047942778093202001671053756275897983733801343499049185245036072752641638212892875620069577723611727647148676550528603209143784236770388067515250045972780766372204775057431052793230587071561606825601170403186674939155871512442962212083577437457842064304909599258741572795226261750046298641264627387977608977564445728449833681703103559893942872718099267722594257764593828705873310169277012633877224869648116350583207768155700461925141238002604752410036987025034595797285170485970334806043939065014990285003463847846442425711835364288237382485930694496223155190842247209661226753186553245088305834514030732068920348335484889603189538350391383781719742999890176565160263666136959625228072282508390182451625491386310212623814489085059381436864416122926772097854377675948998537834389422715893217012524450104517001992288385880211661324217025102279373008066435939580199951350085595244045122247768657959769133437985481179255430661776647165364357295153678881545377293850302883221993715441563056831079468402906477896325627050977348950393325528662872546505609625773640244095048443955410399651851942130487910177185023655174448231076062385738167053204344896722265581284985198360079781544277282271515645124802936077251320656215784673036272096648327035518026216471745303671468097641013792913721800011403647477475480657544281763189113671569466014603939965022766277808905951957371048477939889197889457883439672700223442927190043323515253253358459017765635756238872710491027664339891365203596915553717903728462386892931682437603194429506329893208080091209834212580980471916218380893904182386103457025352198428868981106107150912751737869181758041640628729275852066562316005176237864128995156663726763044564591995418576987019536177968841291016107294717503701895790441462830170765888844331429053419751498553920469833309596662021055664535630851077962635863497442280472461928113851771939401478556526120154693988985143639885884963115148014439321528469640561937704856909007337342680162333852240451212002738380433839915917783307966727504088573422139925400593959088879590353634063035510324131276649010489993187486241034411660170917540434560775917533216488749156788565984890710481274124826523519992804888797459564884838944598448685144981062713714129048800651144838972333376954969580933114184717310992680819086198732909491212428318419673329162694158310636907915003714827579586352045679426632292650385028923984759411645718232239787925490460610816192153006553718346309466301362458550986024531879803384622211155563557360935331860129791097164003166463099434155666456680489827841929187185267662687413927796316237352211157250169575439702214128087194429602921054856010843734203386532505122039535820445370331132834962805113207861116285341404532681888014410589526595698746054572881804572435531748666030815716934443705134036906271124658112092619495436088211717475870608457542937259781412202538062048275018587427136107436116889001900815789319854592093016835470936163241034353444567776970990565238157004224447923032449366457036079255407223275514691045819836579346164698880611816391516531524829293728607298572263497770190539485074521333147086689524758397351368474836212944415626937755081259002744039731721405844454192471310121469286059119623142217872131480001025651482971210884799180576534812331926508161646960139777107461798665580610734187404084769352637867053625644781033368136983637964473095815633367937893401466944956890943990569988539636056352880688282533734103277870910021392799696720561708982556560238962565569891694651140195492066296934211397448541344301113566764540899304733851719560149731214887900385066496985869635334212601325479324057394196026318279440055419974550317220500313172667720936106910418736052281601822792373383731724288616175274645425254107526296446423241031386706482655782118817718098472704418244558365146571359843747191577689517218286548139635392457883743315656980084245278801420164627763271966756742989118004644349532328344457009140036713682500572127547449287102878043452998838769360031134985006573672936683928890246057279499700814101176910342271898930911950841082028552888462489251349722313971360410109984591731511779660879142429590621001159893472480394458725827116899631524833155356770015029648214245536564736847457545583511087650090991248091047183830813599710410864041543913829774213108700091103474118217551355967834346892394288967773968256810564666448728161332037059069085423190933219078410810638816424471297461866003654968500896796922889382755342993937533779854506060265449364380604013268007669526101507329052354594824989273592564696474132702614063892570361579859624913292457963974806703299134261085714817113672948724142288314142581333805863088515100502525186138377728609544834078436739093906718887391381261221135450387655006572483310486012587148970536511217147852831291962907341214370831559800823728927305348430298815814111356017967924521847085423356022129751081570854265902043421442084657647293706095623092376421178887069610209862310178930613337069925938263469555464389748742491241076841378958024337863952944786893242875729709852671303679496418436851419435713390540157418866434425696400864682168695812276297573474993019468642324133326047413720922887352366582105901519265547000342013391755451446988364320009424905269996522687158641139507451425208448284591968967885507175766210552014710300022929610983202183766071978920578180402450352327247860415365972083231423848923886401840530385772612930525813920718846780398369737998444819446571812081491893149474154758852667168585457103173755253827317309349779574651909458034820454582858874614090037668932364334616581174274020986890084924033440576868251807999724026167956651828799975153172090910532571367983472191415091852767016936915461525424069538790341865084327737209233123658013055592138187465893213099010656012907672151833507214808499313845794978345368375280529736412122126615521433841028688974407110840190332160731792277943797618355332028385624030386211471760626020749467190987790487676964187800782596664403959748061692299430817443386560875291486635636858814157815467164674823862605489153393138825484853327944053706632433987133926534777450783088193903520302934749125135367572137256259107918355760096177406950288369632777237613531652897562059497933011592109197390318476440984652629827882941469252506208344604046385362967867935539572193822653203327837133824061184877973863765427535118007481768642987929460176179862685789199784067228841575845073320472974621546375154456667823007922538306405782140375756581605304751109203960830065155256423475735285947477189494631486333233346856656200829309298747375958491911721559754420785891672525767176038622356572863321337134847590801525112181735954963295213689621185559850656530022660185615071271391203419510490996474447517645049856251978605065562908847680190056548265901104205981057283843043944786333789435924483813320075734332739333558486839826997847881465716885576663236586939205249374225840170436275353654580954585436386749384731926018711110809442728152343084834703917201618834912371431376147363431669805215590826550796657857009392031886318913220191912820757491449877619933033774579893565162855536826272189024271385457835689333797164589010129183600146262227232080699669723544598748131114443540678513380668209205711441207708952521024127956578408337994275689098970271251799421711504443581451030053019078659465159779362536960104553331236495501171847504036327031468796540004836961030406454010836446275976970081019306184220912149384979231968782192526167635622079901248235643092835027957825280804433210135491325688232520483253319834814153720983633201155318959251275196424787995531483175373476824007929981174422818943518406473107946758323822759891638789900319058467730684127612488119296742932096718085484577753021221508691331254671474690129656931618691176202175389747929371025135661376700368694353515390798714251636287142056508827877699771582324839912043668941210712001734978923650110395336407235681555829768265921145232728494185072820566297749325462891162766537979370664819183774530339976395707537694698061556988592741089588521531605621139080623233815565395660727456971059100472219331979694241028324725258460195302921265125902918458183022244549401438410959879118246421112484261006483749010755271269886613620698709664659280051024240803652229675633441412849460136268951892023617687600181566811753704716417814480715707605023710535836942196914062594334197348986708476540781713983074589725298745722620804570289637613091655311158623208705125735068418743129340293643973291041438230742890230325980233002248342825899819105396739077390495042092754548758315861235737467294315768150053816785129705623349270850565341269969728287280650741034547534524557111731615426834277423186001960148451943892290539490086800724391351910760191999654125163717360555825513227353012940659055288987330588933902582876617602533971237633757989192668308277940959090865324786089879186515090014287540404614765281082769359118002751121145873448890130921804657235080617063066136911890237774417213260851515458431144761169297977810358121836034738940120568477571299403879678637606094667449865459188502566440683244975415072689196886786302358260739769038807291627022123944139476797782768159790565132867683797365526075730547212731940972741953219827507443930971411921797840482320211603707876897469724274282265971754834672165173120324610512071008836641284669170786366655407299527250102274357490245349377202860777523533901552091037906252176782146633397674503294842360835794333763585280677845985240575930880198408223192781330342677437024244324406446980168600102747944614884973726879732464724843067888447060516411279486132307960536223399904897765188194628089907259342207913287221373990181604976640252448646214310774316482797608588284921130353791635756949046774035527443044911522062247894733108705582349752482844614356739121264960470727320240761723608966493234303585785279731855380534513945119852736374888126152991303124900672268840566705945007509777263617446439702458397094255564766789176112168550266211986993595308054003045090298649089230054251883823290244048137986234480987664409187851064725229982282278330890856277995815133249720116355502393679622085487251129873161786238020763989332078784185685225249752436260028191312538731366570392859161867069032516247682307253665753331543660874997269141919180369524443082033796111009516492769251783302552308401018653377695230399419187097386779857561504028026567606864586163062736844273840278644307092930249650667934871621735604696552641231309063176752206219311046017618604510914668588181898292815530682186574984732177234345818470221981969375818693551310983852598530345213601857527781405047993895241436694169383984613434111680182623518076192683776503849220158526531390583987275518140714827049570252478400986753771369166455544122545111873441218313461059970792298336870691603976257070274177852590942811796698722327276085205317552195519558802117061506872977425821662685032604025026311436829164792699465853430166040528169656008270510974968306129091440745726529465965093836950905032941903730044662578015700796452312174335212191400000211313522136591098695570239549666494898341718026867884581989124763003585558724405913263516078001588071588236732095540624906065589135141750087868949882415413404800828632759539270936491168594768842895009067775202118401738977380603932716994068155069810394537178963419280147344296267772141966401286002549311308224927770252372095232995023929271041527776088062374736820890859674929573221178760582358114343813148647521912346464799204541154268873664809997049152595029096566043273967082533649692904530653407741423140839042595586997806778612201297374893999445257654476184371093916645961361670512669219406780072013085457445819189141070349009348678850258394306985743638424419070619206920132457862932633897375735570306950812619292962307315678476666451741901270132240639571954572829970448088927775364137630105149473074745530180735742468864651454326626669872058931012623194209192489141369426524366367293602105621428607013588245245254788569123980753772094838239869960211692085859234097122078932792117889571160033051349218897509384195738357545413499119019429296116200423907339141829754460588183847091996325457178014361040669934594680528697739620414453301755447096707692447271688549488025433434657126293381456093682717841674720673075761336561877953839482459200853726294499838819477634231145743914472947547869223159412627495551175723145367954087320910059843583627681501193484368338864744171161543444405575071351666288191030587050051159116348245768214427882770614736236544788958277810552721415572380146938987762775262960252612815979320039715691356511201555888326407909177439799175617153287792240201847926242099112589166104222942173253333381209915360044478273283136224000169840355180974656464432698347009722912403792774067239347317617079743075497691749207768700659121656915093592491994776872601486456335873408202966660344495008731155473893960646449289304157237905803174977246865179350575001767213776301229418378282112609765392347756460668877044492164923330960597258661330387138636632160249682417586925686496519771728439434149649329650118380751152394257175657855420887195747795768030205507706200132587574470210144125830245830788671866117687878419621555289961207039176146332463666227189488208805891488697473587346467312317682579518639139386591152759892224414013196979225257940411808281463263477578098518440309890550331101487321437647561580747494861408278079360586266037517368257943153438276665694791438480102097496308902036527930626637266396227129255660417941751216809521980670746094187204407258314721910882808445561373655120150187584362346144645062085325803695279419180556367882498498877325173725623611260707202338727723337856975374166503967508665638185135619023303239781477794407632600019494631030246817054040579007344812013935145067766420130863867561907610046170334006957136344773438108440840881465977726608221475380137306269914424721955456224884408039535045456831869193157337622123592169514609388508556353216649724101077945274232624199944897050346817714559845727809078046561970139606348229781601570800746983116317746119697226340096926750843982218793882564269826437273059626766419378376587029434203179770780598051298446879069344180981975387914288484863127776204497279258612145848479946466456520025542292811829357575967487949346013556309878536181337245476248485210435776351537426615393756887697170529831151748878881702726674439957761447895910084580754919913498911789349183029361226783718578146211190267629886749220470658161330425587872249795158051716770567912126401556368404626932623313317658814388341199142987449470739965308601920749485687622800804317785243772812912120411091092231927188409843204421913863549863681181751734001476138992501431125394508540407982284924234973177138731998499010388073206183575424752795221059822459539300833952804737452812334543625412084679892244282052965816852862653248262903843238954120909198309844256092352967016198932419015281811349776010499769878212629209924108642335397734412364449471251838031101769947448705374033812384892316434057491936306965443095662981604159222708525163067529022673034890606114504822565220549352325588431764927203452693928433025725000169830590697100055435970820870102394010535429953216668343177448703428186132373030945025187210835642021007653352549611292225003686057364138481251692751874908093133454258576028867834278174642563940972720331061997835661736730396933937753257689805543149394895729005566050163681326875970774114771854648936521163882308694762004173637850240298242621061655088329149082386749475154529122893055862743514507392439909551307152696426604227379663909865168339486586527914404509359676477953615790105654619336729601187183925286743929054038552966715925826617069995465494566737221322711747948262058738914773711779664080879285078116757821426750407665207594280076196292834199575530775018512857084030006812106199960130729298547126977790466634751687363618496758034642816891714316775029943106852895158014164276048958504690856673941550983687411292124849650808831151972902454961855123194493466570957331991731682187156340887335780463708850627851195263235163069873015285156361147915300114297842378609387706196044347442017338263186734759366017573755927067182847422337691965130408129246192245813640214438187567501407499478479984298207126875746726577333409064268013813542060072388975763936674393685073073327484656317276145990241001048167351440568717842969612504053690494032716262161142395370344884854962155986727370831860738961348520881502853958719361837054303814173776781188315853316520413409721057730384950058116870146295835418131963196001266442031986029954678689140497872700594893573285087459299219535647784729958461261898931130878260613216916743532295426940938559350718688186384734346857011937797459290210150324936346764364201270381310581725609065967520443541941966827931201975941076326066688452031316116239865009797788631042974819789599576888676729884717884922712144575544616115540530560046695611875177332688395490021196565585803537617635616090797596259157094290891485850363723583976582986336158998660465922606736959368954398632713788486246132385570469370955810165238428031076542759661343121019243705491545613203519763578427240382225877471178225091982092291577426416976516944037026600007767706419012942202723977186150028754705165678602694908737115954478485120125795709053455043444774479104721517662041270480581762670144348798190405103713478952331669494081564246484296119003702635821812585255258028320329117581720458295330065182032782420341066386503429328616602540707474838114708381878969406803844482142768727027259865781122706699562243914233015044303222612889032440165923451408951562597637179967206179094908495934460640582302077591597105238004566685228648408769348665241078770508221489366147101147976612129249603090492483826475092913234757640088959189132929456319190962517996502093919489764298039285067510545669094543677719247057701290129971411957896342536288929892823142310799400287153355871593106143192516423571728130779822342457011412186076251220678119019037973249718518492491281875368328242449312375800911306689486070224011763482418457807026913194989213554079790955518730430703600707041215237461451032839972355043091384883382762972996823662395959205337224809987051788525699130551407842339469847426082029087709539897061899786804502396175517424881572121488876999081466306034892694528266250973156948209943435251391621508043709988444407870340442508606274750952681046167201604644238170965312991519191010356322775981771672442557339952822525848263808516122400049200277663538226766000773108196921593736939553364839008900737024710836682450188429445166732063288227397908946104715619775264575830226946104786090894060738774752130319351289848339667178168200021862288043988595694942604266155756736038095361850063827153006545007544295106916704602798922163058777865359565843267579069061591656075894784214982825860595903150924632941700722168138612838180416564108827102638017712633980660919430051280807249535730674413113779765240402100475524801698655999380779251285776912071962104888859267191744051803236030835511378200280241441684150371371434568378879167922892073685184082003801027636437890718938173174588672894614627060329531377249762784539788255418307795255522616504637639067059887565902461987421299135242560633099783266025199149265532330315556741603907750295377191577746431736532814468350384614272360144030429639627336284961699467760889806543850024384326834995127044658123080741747307885641041390987202776281019002333359508188544876076112076703011639216630566514259231004197627678164294489442107806339441621873514056708012933985078112756989481701550310997740388788520693307347654539406483473275640830486357725971534322267269221477935013396838662204405379804917624567904809069396419653661378451063814050319288449121643025361454167626754267421603435603014459181921966159659247624830271248958097613031729489568227052685983295990551270030247842016775895811772781405382283306825438508268989728199002940300261877743744457936881398831629828122189652407123952306794543678543454092132909249094273284955713567497133757184953858967053540677164560038577747322201798808178415898120044119400328654835516121889925826910153035480934088292867246044635113032751184815667602960145054149117977335174871808499940884505206620609832316889342147990154633406321010450335238847536953607848651871122179904563872096072600588461416618758045070879275230118457420529664524111646134433345288668235835883511239977982560190922234017805071158431374188958175944684762583485017162641369433163757279612689183023340362845078873439278204120249728158503862747435194939489479415516339034629414149567862209557652451502243193253384430420371442615354383438254259277881924274829719087355552457550011349724209362894389598393010808265088808516429697573797163894570897783266975830126940334885828905798861520644154498663414938282411905728865138723851280293441053190360988014410504875061354582975578696525154728444948253565341984769104029032910971625080453877871409054425264626156758706801465452821316279380506794105192845571235726646618473189613975137125372638760620973060241063301968230327586146238673219919599461191371352803209691787975264801099595869293733199168331457600810272925753837136919692630485614199554231660207023185694769049328668964108988654528176187406924079934412698089580953599944011255415110492482226512864944634989128220681666877101828426654263562281559735089980454234702353918250487360588941467770086102799667038845514789651271782218847336563626050841915992166358335491058041259133878815890893140822444074791747191984024071114123399729230653425294776844621472798110570964226444520224316842640390852395522734947021097456905398368036011172075157560873237109174662315236108169265514215778788274925354296810992232907553522629723405740287926810577212187314533352552319047119692987657770885850794036375189273350096012905398007362517407327767414829655694351247394725388582114290855935717529043841585396757919442849851025771192805399830562272497896503918916812878854950706142180104383549902771963244835977416822129315491188514380891186878721305084472882008440026779742272377629549978964998258917254359579122674674783259597206572630169508777179147074006814096906183646006695666709217452221944277416472200206441946774150920276025011960562596609638647506533163760647158575870001154192303392473780273328161388415616803100976245286143860908227277525727507790126376199251306333424277663565405441095157591459198301828925760942845736267806000575775349705542573826174642030720213858350394812372258395454688534330400115143319395048416527089882494209860103427211654045269240975725020492181562693696619847064885911843299177795954906554225183249601206912502194564216837839581757057356706255385197725498561069117960924887951866622024139855982337365908444151445390272875847732942355143241237259457603924205347076876046872845085956013873758272103568188487192415548184496424128001866491950868853007322171050107638946071932640158921301309903302692823814771312099067376195947248271291928654701839058873984171558263979450362490816240639135221815723653314051107574831119043139922573606484017491749993131530292864125379296951818979576128257391619404733408532610510113003092669253196305623613853697438204968044819984439329296624704265544466987573992710628884825615450677218145050559005448210721685438339885462129050780909022018228842997867213437947261498916244056397014753213759095744195799104627851703833586289827546153529937348433654090771173058847467683987141775970393607421676476302212265504871965055190634083331336139182740697043973731364830465521477007688788525265887553349595343458314175225395868156408207041589009986796793979906182867353426689856017688191896975726854711216091018739504843241627115486471001671252057286272056602963683080988614241432047052277862644866112411008479515021735360571878012215178835289594082980448541046956794820541913255342275919083788375310694181189002526612410364172805038190278263724948417196804316132605324717464842197189934407566302276181405076482035982655601704991038775514095739310834126744807719577200723817815436174260339033583092217856195733814224991940889117812109725960467311945786801391976095539089942426842348536671520878122288091458701746067519167710652221304658558569601711332353691654057243418459097592092291398517693535488500855508345682211579269863113874543504577652608103349409483044440896058321460177197235017890651449259949292402055159984721973605831104041072569446306267978562603239224188138343824427827836615499616451336510388105919065260714738910712446040340698241721850694452625374527122687413723497454447762281389648376684096270110164419525430767630177998369965709944674634385254521611907167623813139588157159876041920439979574648273272753538516308441902229946906595904777569201646700459313066657473029301845269462052717124273990709780736456317041077787148548654011563592938766891772098619727829793408236452675041132324543204056995331028175703394622757241510677525821435578867181755251232538848408893430574276992066945513862397877562160567831194856165241738963896918119986718481323186980296076009769955852892621268947850675880653006999930414129365359376335231414330244597517322630532050457810216520037120521563224597538834182566022742401967481533172330444427111616066140403657192695248449736406161159721918651108083170329281709103299067383032826441695962910617322604622179202332762710914784258547238852390810526038018085694861842024964193482400851206160272593589263484599123368621545378052069398569862087482696102944104548368608385077549457689342659367029971011963224561593575635180797035858030109580263553784387354360706617918998388664597713978703199671366528522933842470003458207638194237122063897776142550106378770801723866743523386968940390878156986095292630982871142688650007318592969461067700934184268842676876793371112516851371133261940301049814948915484390138174345864018818277398508577431972503256366769548533137835801821441236050886016630837449754198322144779500988261508996717620019789908661234966512808614458401148412487258925500336650715863223690136349100155924618044741111650419864914776972874696900395820078537798507512650348272154359065400719106364471704424726684764460411048536167615317168817063532834056929262636812536318748346595522780888387741028897696511774278437348320858215563982913639334471038061966638755699818645092183576769722783493938169798146281775906598599403036119731913628459405492984126050448840855987816996926630281591215666740840649927300960669681931157461000074581081104703267920591410410223304772173145806504325413023999341328523990674468386473488041361953459995352503290573464317778906367673791727539220669201590407627494603496255446954064423531075398810749926305335445679310732157926340669163913419580574249692502717712453237141618023125737901796597725996880042978416691773201864073763256121825030309439222500704715885680090365690394936400678073305622920098219671275929421969566412441274500805795261777980143530000711792506267036424075819863450544568315630325113918759245956375113163409651253785243908196628734928107630704388060962899552821640683002175828290993910933507981021012692451963498127607163696040514058855072104148714294980680381479723165951706113884245972644601965607153678814114821012652982316231899035344132535645202146354291312739963098629686917084558257045103871569085786183353506867284798632333235734262290049699140091065595615375665938824655110320721932385611071302321879797385028314516449995336895528974961247442769027655016778411229221012433643616715848117805220108750663374249867373369303677811565131538041255453562623669799184004701231779874438632501653834458346115322783609198359893235042149122945650334139275548726346684963366050256281034209192587565514491205913018302355591477055037830009952263413987371838496136362706312637047696135505852542464069341122394313673499556090733486393328697173767540735412992942078403412591185941139845295499793540242923287356861941052933136043926856867291694550376808428057553175619535028728054446682644596261416663284159465519753228016856778623757969033510999761694855235477155993765036191325513670992304224424533949479307568097641599092383224240391078465097917620821803048435936002953141062676658015785010443199565733013731808527797335842812829924856527035964326718009306436035703563173635001143280359242211886644055419654919820760363134480158165330833508603268011259684992290026654702976614512997967287987563003259412020303013847386059617042842798390576274629007787697583012266908592711495406600496666918290304057591310858421833000663696940946171181955051773582025074319502426645227788891359030387056475406410655271552184609341233384502014620904433008805074592748476317125231941202797502132627108011325725345748230509753154971941866273020772032391173139158834796678395517637780597533302608113393705098956167918361636088373303749974843658926722742116797840768178966110983905766234140620621719158666695973318510728256408043154946647861229600579433106583734581353852456962315008636066237479538226084633242129935422857594520294150572768724873939366117851579811252966280957442336055976398812022523457303630247185027322667461466588369016605990375927355857277670183003252361926743755767121079977494254574668419892020629895149061321292035524920686748903991227293873179065659239671033160134004287594755416498317670102374267669436130157041049358254838901255812458459535219516522332872685832167633463550290979463994904849747562379031294592249841536163735260639707389442463020274538132499297580357775174374569860257879417933267862650543117287479301864578171091552302938942717486530737211911025085771927477443431018950646863469179850345782852506594369952102520304845250257485946957393085937068271698067696877010277568177451154120174778167869749701060888882533156996759855359039073897016872889535895173380900975897158517636522302253777009083535670290744327944711421927401873593981226695532620864348061034266803604902088928273226425872233933804871385917816713434000037022800163340002667179073364885157724855496608360987636378243227848950428610586748829143848868947818230847199621376646817786796438902153039042712334417113692997249706880483014610911076249805135000535407203233906709923817637671564511543401791100660925031851950263062431562082801534324067307015259351283445812032817231814036475014042811510906571085071750659791575076370560198578090654764367544220903577558856041873814866592530718711655037795189573464175588656939544696520800346198885445188292266034906173601125936351983349317407125854112689225666752352585836916834785197377020230263894760041607980953004659235034066266992673994618807957572915079406542415897254640758505919891498868165702719146037493603386690443438913196483948908659917140142419887224489609746145181818113791635203044671574432137490798941550436503429707077344544326480920385086269144576346743507751055963603000111749627870292969112635088721175860984565824482948756471907069076169030355125986637986179262782793187992121664399366202321055767040074028222902517874579353487648527068146880140280734066394481378537144270220632618418940037092660869869466961266539635482504129388064858964120467170978216609189259933961135604877342560571287201601610363676804044937017240275226776380848640620178325491395923098632863945100408618772009336388129673815711802479661942163515619223223687328494698255461944088763621963800788182377715186685746278917863174220721096979273918507442591912205002850063309865461788200690112770305959603992287433507213587150642154065646994464472192117740685548468272866534476711357058086028898532504113970091786166413975687782022034534596589170491899527400959246724419540609553169111246020060890760400808118864536881077857467642171544357092710664283723749561057804063386796469807409648308126338692083705905879316875225121129404749002176281785465629707881091024386696667049405809930216405689522517403789231229677975035950547760846876317290467647795212563920307880912011287943531791550974632978488919136277698089796853535942971018631075933401883312381309175062530406004689269934591671099545831167052379181082174921211899520895996768586759252756970175331693947223927356661685537113156735448855042175567091799692141731885977897041956867464141928552391159214478343183721550344911594417303022578972233457563330055866996905804535933525365293732650680655300119222792884174342646987923290692330539513056803858010768662260199573753800218911217154535946657568986496863246066334603717437300910262769042140018338606922736650621544595881153005562506601387851546350233927932425078383769368520389197309148829636121419947246894196018304429426055718211715694741074632115677009519745514171012509307728178480850218544208801707203711201196959236871228513188915946638786884631965848002413235855867157151960197017284681254832921284440602587059186010128699748805997523436306455163332115020231331608500309603672630874574811546018380088859673007642519924926763397061345775298024189381013156038372237315228822500559024587777779784742415773607796513850578789690924173846957760803136031862487819707416306457080408611561258800711374366655587060233823968641638790951025766217271212343293520827819478431198670938186137115892687389978315206840565322454299558146880815622978983363086727710830544362920144510677131896192083850378011707840986699198759613754761874449828964736952422163144615303597065846892406926251073755197624839680840729894244983571669250904018981602353812801014824827603338509596119543228662754295379749506593506636404090647211974349168900600271624459434231499253583847984750402783040209893065603533044251030948998629106303785358893493272181347695161373278957401781568959990146202007380070012958553323575589094718128603143406511228874869241608848628511108560860998923126610382240309489270895185393446252265555077604091845149666896848940172463415653087595221648974462787460252530436125746377261011332929799385044615866057970190899765615831214975679453322234626092146713416088761210987644986526970786542509783361061336134084152330695832707081475896080601591524835734456446304324239117620775698900355338301742232253935984016940989824407983906430372531232810153026907160519818887136966100577377454288742193042821263562904822278419744966811514805472049263935769908117940353808705292579409523219484958718328775185006978209796820379891610390432004695241560487183189824909387055272901455178454457965909285053954575717697745811223130740738386652941044054359632401349776981798620373692481185074731585656453060938598227039970861954262978112747419568954937715518639955942413157582138067282772787719402040002829881799803890981264068650304801435402922548426132087003832343338134776012974465968067721984353654572169805861145650551178060595163825276705256497683267973973668518762575652644318255790539271825850919151143710778635458606685267241850458776560008231862543357048947214996042053980401693007753682962579328966682314252063049779747917119707612823961483309071887760251938870047832868890814069551779429431975627994097023890919542787362500606904639581442835363834619281997893602128427586851597333352334566327614956684531454485566073947038281747383451370820752909000475709201083989669271835323794581825356337579938243209693707598432960247910262342578556958968445191936844454471185424021541635414670000456150524869904767661959292011736885691145676802175372049689717934123431841461877333296134336465022032059625990453066752607586528592526018576499897265567470564049333437604193729453073066462531085512046267424017388049159697626393433148744300880908607994998860567322073576187060660787129736774697922944074006932339247842750248913311391634092763698460311715248877500444048655696400169531676525385597506027511448471956342772862135085421194897012955352219005122994855690789104444931585893378280725504549172872610373448646008397330542145121119032895843145377531888345918071221578274971202839989172326629207213099888443350976791912909418851489992200061385249537716768754266772556943556414770272088125326889289822086781888435885893711822975878923344247951573383127497865946171033562095726408227942835787232109028639618845915859421861718503813163107914425037125711469250240127735493026252183581911189796219846429363243253846023867617893305644366663125764090852485814833849835438566869298618762580557794734725231076769029237956652697535176819411149948343324453612799123069462103705333920290081942807027208389307890143212856902464935011701090257515278562871521867442950737995770090630499072570074964398175929752870690523943691668702997036324693300219100894789012034654101095325850426273671014710643481081614015696074721242556112257063705235191862228080827727432500622658498374790041540209006626135369458223316088240347255681406740750687191409691637538045417412011665144206995716422861304315054875426217646964800196249673590227768969241811422794617420760896134073491273415193618380637562221171642175161077290288836728083366739564126753186828189580609925595317148513797312724621848732373921324805296536804903125893799407861145707771473300713577188659655005129445269572251047238973645066343479825460580588356968130391697273457460187643545817680011273675473097166060601168327875931208244686507264655128402931018967469827514572906806198211585797005036132347386201243979035498396814096272277173682743697672008014936227518439106115460717492115557902475041004598601895618126891296332603065646183442586233918762685085732531367213114202015459016191279311099755802894709170206071392749311725346948177062630931170230803892657468676571944793625995013475518074661529881475293873778371913987548239092147106953517609763672805144133431944570211136542719511373586244392312827689606874365493610980390481423092696503314977549098146757761012988689554966977766496860602805073819747725672489656803407954433274696244428608276535514607566384640635075064624506877764503570818665408577576880861281693071213967651305608011628846488171419722751606029132312581887881021028124806555755486923738559564813244816391449081592038037122944358267849416272981934577148781367468608439255516755300418932847695088848929774520343637594073488499147716549767646512836242275836936347869413954822116240489963419645323239652333874442215363913368918830585905798554027901541293650428404408404653385811280680753300833820368902534646185560663312259423340588197237574242846305069342332369122586732983292226175555183911428918783665563417374051831093547067829410046353124270261325519623123632287307317165232513024941660506494051704344081826935559496383231076150575078650197285633612152032524862706997683483581604026090275219498385954066042978300634398995635315248978641062914245767853182225342084519164618441804061804553779880889773191761479041596750917485238860603129865798515957305752547060719387744887981837340893696230944045446711813181950657755050256832847698346130643477968526072882889528267633905539066612319319495207306880344851469434307773356175639847348777468911788920609148454198578529014005483012275157907910742849204235444484976666434098941425022384634003903958113088107710278491389438988391340817676851954077480344961464476471528047883757820223628397924874131051464601242205655939194104667987498552054611232332174434568151252742740572445157908573375983551995310111108577319061673447297500981630391400844701541496809795373290276033984419040290841863698360552453762411290072679681548315704327128852295756273757650199986995462414904819452423987774969926411850316934337212900834829219497754892204848985744073918826969585151023188237051034824657936555879103474010596619016129656170309611014727114761197423466435981039931702201466400502412389329683918187745712483221201641920366550146349503185606936945821438627752984090397164681484762515153419018596862753124621466292398479475829658232772774895789915156117377723559642883402005273594024914745269500071280147634771348055444201074939715459818116541820598342550870829045220466669816209247082278037083517657911884487897421201397334226763703113825618948810125558185077080073500758631527899923980575400199789695134594859816712900459598947416742188830768152626719443774207320255756220800806823737171763031897613374846375017788496281957758986067623503390219513057845008691145140324236434478037142626085769047757580633574608819950504516978115690234736112218252004797481660622629000059601647783433656640605879335193498290636197976514139510608638792175705514049218235376815775573503292073821992414509583197059756557873609466393612685942160114263756557510170640281825058193416201728524476538157228158560999231110171798237431621741958760956547017848149505533888064844536262758013305537489956757730181230555473588807261377775358747258479937542482374621731396564453861342725416331631593486539806162024702325819982228662604729166263136736230368862658116885139400530307852793978549188187511845308223733649698141159574455537044829514403852565252457004613854785944270535969323220357097673932929016960326139010053563841681263029673520980104689140520582155935321339161100259011860008879854077741943766186970573707374863084903033498055736439709600768810771922831205397697056070202766637173259871038890242815715867437738110812773344124677918541168203040773472073714522313254692435958627767374510800056828084674359323952854355379156846358014178073476278468168931036253519049966994105178855389106890857645952338502580887909100571095028855011858224886008797833920891408895288356893600709834305199900700684891295524920923389571267515519643689589949044164154633041701785477591568080222613151461690668844529097614936174113913834183127624997944103645303714879547491668840705225035117199908272246818048759409595664073793677981079486241010023498338358748921289338567428043156098954691105851477759201016146944624187693150609586213736224630825722971274914983221339923594665762231440716193813944539629744520590511832218016243968190400686703351472324892822014080942347389250904535069395807901386556314115260184372148875870357671039381525785640039008169571029006032720405287094834403761176649795511555426298462611318394759381541965861388013508858802615554952619699415313506715670636720426520663596517586685608808282989746778689379240528539508924404804503833252839140413983933272560314862499010323725751881995863803012778125307605219638339807367942269740119047366230821011632916851523629950711900984581352659584276750477525778840998121962662144269275299363986390011547427239355378019239875037464990774415676981714128066406150832790302693276644018879286469128045659607672382373403080443424461115532891925118867994468787159855206435858286046684205274346850823318904334358449639923025871961234539833442920990045464165158126754514229277969693656860229965772752841388118952139609810041487727304098828378114181550735613097308455637709698776183074685216712385016296424757135474622522201431837698652817544157237271856853863631093451741997274831618324606553972651885485370721043874957088110876478923512386709571552217924560890707243090003572671716656220219184166992172409902478687295881922845786837594165752932548097948570644035489693437669868512268189023871089291729763566028896035504745116840130654572816643366692278484320742841684590481679335195889978374381477281045867837934401886292686807520161721507229510699518599359597862020502869492197025942050517427975365086408824732761160139919356332664273932343874845548400255200881490916972404581795336142325132380671974286380322425936315253204202516730996027689306556537550130381055783789362118948560687485896168138835922174771378091435564323412720224850041889337250491217437361806187638837148700415811571182613090495420694526921759141847724165931168621783782567607196659831207054093207451964065936343970928464287522899242084359349407549896480120537932548198646656857531455700416110311517685805380521736053513960787216849742934026896070192134725869706229596833779908126754343736332903582350579149813328144226908423504447636908759280503138301348012161106340253378937952118659575251794381460010720672314041343688894885274790903015721357991224909884276464228681418764741839125038223033353398394020137320778239446072184131500929489458098172474108728821353852281861698677636721447652799815615275714873659365859772996485386402502436451560461698033794650523373289111324426856156487137492013766244627054678216615690309973564304991305473136218390075014797136226132687535451334430486984012895080859886054988343311323487205924685406776328325478801449889597906800722834248114095491074993924308838420065242790140935537808693961291964734790930224369681156328114784037529921248833221981952632588618195142714740159599148006378112591898675287544774655789724283363475129624030494801317222059384560197433632657825624587260283023298913436411461515844946668087980227161938618508776616404210311105859966417419112592601887160265858885644166872748195784757263588385189748549228684908311271051199822160434256426389388506190463657918670463908805330624342956024751169451787086476140887937158805174471548082090762924079953667399816332124888567250446194810107158507897772960663470801759541879476078730766385266795300971624369057511504169221752530601313812822992662884467540951432887241501993438862948045886928837775283414179510946082124145022776111007570142185824232639959283936646021337393505347970052491505291964637639870024238805520296769649273107874031170323914416648705346141952245096105978401837559124314048290762686380011533574077621967827624888024354795469704936295329063282843670657280449477431157915881113356518115509379952239776817191806595051778739630099924286768586586552071467708298070809911428960665344582604637000759069295969037600639179664171212805036290518779977305214137294609950170977155885560342387097852329480549016964329790547072103583857584607573074655766832355013154148581109062363605320992497191767498424950048044082587092485780127910180653701856147902282593508803220100824592522051519037445451578105218803837969576518928133463482651583211711112190092737595936919560010346481287854655253224968854791950851413872648357721242183550049374157937582104147449958043635213522508857176174022816844340190023863605392146997596890165131208100757604200999800557729892559151710040306024330734703856795268762001343349491166578033444595317884046145124611437775797419470031787243393931192078394176533039332207962348692734419334087775559588331034449693089730705164013001186418946033372194121482941583566744108361289620153020362837935911283020104535319806710926942313968919249914782723004029950052169276183142212355998515658846535046222533142593358650751493380040431779536812266994727310656292353932754976206774147184404993041468224417800200000549675221435065236071698040728752611436935519618870969002853438220883854721559394586874039321391935887757972735731032122647463426267810582775510828080301292666583802049133378070048185036390336410282001991410110118379336975491417639641748904983721732226844032720637197702057182672353676098795164792971478432532474195068435356849076595368051783817733633080254652257800801982588865773088464662573268419281898267168782231842655912694908549331845195607949130161239005619578948987181357614218650749161180053098475036764215493137531068691004549213578779121549888345794617508351309309806295014159364621682492823906070639966673597359038492037902803252207489992565968603613898081921472129008582348995429747627090652777317999926910333479397949891251447530898243390864947293643645136356661756942398239803798780231490599699020585222198480063067090989218644412965952831948241279356959862645145889136520611347133609043766257548998739133992274779286084408726495227114903588685193878134986790516354678470717868898004348611510342558147553591873038416527971249360576044217417152844199598885560532227601766584232668300485287641188235575489586766091920161703656932767316772783655699173666352058441405545022475711217334371309489330177255756445698236435914732466167747572188670853616035680696662972349850376141008646723264180176786652888808863837186721951921168564120927516764045284563798674636096604154866372117398896612809649494217499042402630105458036480095648986076152709522331620505416744863324442302122212619241913631046754208069286501736394600207669175801827543683720056130644932811442739565000982533200214557793775530456533872830433946520778708632525661195906152719206749126076137099271943109316554133670092882855384663093566963595377798753419688746425714054166149615425956436686973308262480304326705604691071390151730821971045341853381748938320242935667624095769755277981999958946408961041782688391645351939922066126090097784947347685688226738969505268987420577774786607975620129255893288070620625650176435710714156133817156994757290155711279067593450647608870334910640975002204192168477503690450947647721130198253440873098176154279332756854722153998898456228633021128350093745201689728819984303511331211898459783900709139259238843451453163913809307225161593323103972637994342990835184123840332486559699416702161592529897732412033928002668502525868387200668084204716210605949869749049265878168977986862909402062234971212010105023015190762574193478930292207275698133387163254805862532226306351805452209477571805076476987079066897030014460077040367558809859370168240436138106685338597617818595545775915474914416504383103786846816057916311782253645112791176680596541817669562195618547508248060869564003343324872522329537454481007439461112558784381168948968122824932161784688984900463930086688737869197808443604384047682771404063707546432467700432893017275924757249292222730484294174840359903336824368808505042132940587727362745063282641122509742249691437777409743500697349248511684969345225120900364122910324517369172606793142599660608494625212442129984847497749554689005759085445674347228417228166082917734913548701209454930281318518814843268718865919208312162344550805682440711258077382751503512305794707303910365606876669908916160923349695973125588844597195987913183943553047114416870090084805972813843158576180553153238963705124351895089976767243970618848556586944855730527947635111461706924079265859206023175097807899976287896009347679577030800885628583746007663056105908804417885791714755093571965436000290233635215718842975155736146882211633257487910673967521560999264694000131799733630461271523571145309150722782264940617986602418482973777137861441653975482518981704778033880714813945987167644967490538093307455302567045673680733872714946413620559197672041251667944018100237044404868703111190748090670360313180355185028020281960891416326930118391543365574873482840870802734244873758152913235650857453242507287617277319163289641536551582744102075653848921696018735431116740478310388519390311398377672419983531687223292005135727129110509389927519013549079456706379014720781505812023833776499772025124083102565117148446043634312285247291266018887178261401204438599760946462320665654147936583072489832215167269807217245176299210804150272397893130369846709014378612162650799523695720106160583058918225780264181659295482720104037711213897979436587445913415011295782461405132162678011136908465582020821020377990762512213486643832018351242976960502018376921905546942457174220777568948408057272343425061598392166377001764038023986469420622389884077555914553924490801695622245843520306158759330255073551705238912660716295124541267915644136645560385726836416649013058863704598072415999163203633149816875233751168122845558559020049070900092942304868740225491817243108243223020044118982819190870762095784702317386509914161929676210584007527001462132969369990814768429851960298706111459834664587251765543943158074728170657377968633274794213860300158779735490819583362047562026845769241640258399940920265094797294869666070478773846564313682481728829050841003169290928444949792147318291411893081786648209213444610969104779612697658678356297959994989020024714320353627596565417876570112809601150062811763939748963094735062800615822729151518157606332644751243331464718662998239057806744631908943850222007430891213911154101555736767801737370263824184560721963798483003662333671744134673729377803976452694495924574805763565257740971572365173750448153165222963834902490857532800605879321763426343920985474671171180964287536368808240701970588207562585442884371973907599882069442518450850449777032438114883335796797628000549527494695017792502617622653339386148806566322578492940704392113557397571242984844513838519782662476516491418805064357398858132275625824084767496495977541573948071853126927505712611465550551646062035756598676450260030649854956783999630097088559776322726825989881829467352065606289838036485034830477413461304908722502307227958870866886665890971064381250987839419737362834734219805330342091554805067496684208998846633100730444874064560360520534911735631857272985992608053801398871166257605884655845103783366742766929687546026878200585569403272091694781962795281232437430387597088390070911903168269588011496200750280209908340455366041087151054820887997627713756064328016729837737354751096303158840980916565806294712047407599139726158220127942933468661055566812385100384064017802391704129529598792182778797158990650401206722344701741186135844772218985143034599826150797790162540504525016061174317146201737775250354416722387764342323534328821075956850363433470646114704262924176984175661636175791114263303170079340351865374553248687956433094116526835906129920529768883383592658928495700502934773933666664383022882883486407107958020625052592927951576407077017589145663186784804768442688451322377623603195993921861485679773440459555201981209543679039716889165499467339970647836866437141953094764461954901243287304745901461228969991043722317085528250537411947643338847569044811310400432570019546347447180163651216028200393946926173169268452332118569074196391624721069128307750171082705053340701886071738601856307832092016373655233987532643400641304586843988262812370262535650890752969000881562836083986852933954126461768068576274891585944533345035889613280381151479535719815915932480136416993995811312701583636296481706832156148362910994780218205862746270140506577200242773254117449302673211336391043111495568917148411356446102862908368079810585825179149348841616993811683881660369142809315867398235293633611032088231621076932581174388548990641342226502414361425981244635640426487908407937535722028998074583205832844944406312264924135118999552459443859393556570226813024401626744523270511197770553019493732177001520931933325031528378634620295787480385707832016692664431558253251093810360554318114771814699312230947002122662170556374383500661107930556026731305024953128984514813561757282537286779007779295263361937093238158979592859921211254307244548480761957728415098097628132269721262800849560731839662312528040043120415261342831366051996849895243764476526282049206103554185826923282872650783740543783317152111117106861815907829119494480835159168385678983246919180189172341603229443817220628930582304334735106654069353921646229007049248777750956326267767702245859130210997687232240404365526459166444712063809204726046132448476542038509363642165736489122346718102773230807355926397131360855531626537573134928982524331473032068142334390999645614346729104582881586963675302672719253072825278963885304293797260187331138297365915793116188057700294277161992045497661688757406218061962015786464864975545460149838586790990950127837376646014566799040362609797400156656317817388789371646111950329671730344843848061317499797573358991690282098830712405701562624878916805293406912339342852198488273654294364941322094775551361090223725137068928416298796904758787533908680063599330944096886508438501079464146165115809284247844978662464296478040958177658693825758257830234421306044596782678995005697866456353142781220337921802185521773611102520549936729545955810318879995504391427138424139072356013265818766473347580893934727554400792131779893307458674560100955450481286231287599185768546844307495901269031460220571200532108836297352727675982234980494979489513640817545431839771311905215027255004218631951043790849383321579845498115101741255218822874683692583834294633556763629799810235336301450797273505343163306072805259063205284168760380457363801464678239641147017744291042871100567241547127388116910092331197169974424556159126428582109425680996744408149209257218960522130595280015426957935995440848970204350884675704002468899267580952286757480271307509740299751066880154004979700608470158569141882143856165161018073142020069377942357395336252156883556993159732722272937858211926081780345619298911814223203706387113590770567248044785032683017748471170193057301081608987717946356269465410351584137425718088973641947597753522415664360778555573843492761261033783717682954206685988077850388102524005383478164332312795025366117121820270691427549960197047397702962259514034812660087110342095121293226865132116195175143326559221903309444789454552638422001316366970767290549670888256180862339338848481600355207083768908456998644373670091234514485419517555430614325467981214553056983809434007981779704291861984065383656181032158757549249736382605749250592624794640433828402979519039628440059506197658871519055324908712301502899061034290001240106704409373378281091841508456542983694494232720976171252687401112372076113697660479894568765773963641907126773081570018445389843962553172145900905836970688413202380773155909875798010538526194011451600657545919300573089404495296456337372467362655990294344869864298188844075405570785929169206773089371281151148265424035921831268000725576681527584096541943756459066356428032392079751097123970502853090133580571734510243858416690370859163731241468763076864823492334911806083343511277551895538521739849395293187346260476228236612872235355602531501452704855063846552968492099259754559088508356114178852592250919800439755026581586267397086909354584382457844293080559294401665319509295282642388161471727527729887700360227594009157811676298041865039457258555148098742961079756856272408594750721981069939384201644155526205975462014529657361970254314199585340398967059260389513479547405568174248685673042439488322022771863006938149184230089135514310440681603713000742731072941732704002610986404943194168751413219619248692345157670255163790361893845083454817801338270475761114247527600485311370746720796982852997576360462178331748195744585962687945204610557918530192303995694186376690935512470629169010606900636824119922561795808194659806654288910331384379803587888720307628606592978407803907909681266989626133981118958031861274338855988819999809464271219101176844447939610209003847863542173380707075639004928938204319682616880375546652421808049069007699543268237836385875760548883733125736701828423590743484369845835510326675528405452595697348744411645309144760355020384600343164456214328698526015785392950279031018891205430899184359966711447734660611415205355307459868144986751870192257830759970945850470982528006024811373697828966954718169156791758024497111226536262528249875601569854623000775578683987140883420046543000385182855966536165340308570289370182021805540821597225167908634756734527651798519645714408384652329463034975134029657743252018375986340163710550006646187397208352363092726273451320514834810636468233984617321738913220640776953836958619454026761871644401170283069714975166809055886089232902247718389871653285159355506952751643125624730494795264562578755314332241420748137009821690542784282176580916765393316759399540120700026189364848472391475904964112712518350486904238892884230792774109346369462646391360138929585418694752018599374489661972205989554372682585593266573005503988933386191830329063571970258739966850245773711618644669595759108671121980282832036175553717314493661276385157189767641442291657559753878595640734852070956471464349446580896388802264115415224937668690793611698956912669238583271205352426691163400253008139873915167075272119784242158735172819446113836724365808542864354064795040238654330724574921531283686788441969143654667229429603879139851141937012384636513366223213204695007119667240547723284426497369719186010926384406120153520465670151273581247598956960826968515090788095289092339252160223822683820450494137066745886046776083732182588246607223359185274522404251924212658695443635563915143642469974450237215620854492109849206912104832513135446042497984927463786898091046204779475756319364638028522910043396165575341880802418065737996889376374465200692801817215641830431629001346502158016216815386003584043178014041292819100410637423816359223318701126650928127715727246331669202394226494154886640317820937038740528038902324146555461661672337515259067740314656078728109659903955811871159108719509506327738621849813230674115876019060529776536298859205140451831128354730255108023318388621159547146664965985754029559688417356962480545327168710914720695012795230485209921432723447130826228722933843263411330561001567832787896320266701748650140266334486936604244869499429728364041085416441666092854153003857992904010595040550287239696772436605248857497389367777563931819790260501684559937155369290812539101379102333183349144359733877414863038831608160944676630824341030398700496051468573886293484086217654131933826777175344615882201086679100555892243828567586371687684558205208185713326258278474533660722021957154457685147561500270169959529912906374829839872994316079453292201702173290612550713299139391604035337993698924635947982273917370381089051907938642888008433020454471722300363815209499226930799946386693906261766432719901087776016561854814964455125840772549606771406004817751837282310430626930372322668677233804094687441185273654264496413155713755969296200498254567170011902908384768698938759026374146930743868544039315493538497250988968929818446653935719543257540890013132028250728718341346584868208952850733490130136954921332890410875233244208098010736173119399120780235662217423198470631195871389988088459429692022802949871559652634079428773314481793023920819001169909012714014821415536736083171957087243200529761226351610205309334078784591467571361225261864469056686183192265023844317028742799563583579615862792597425784089062994879820621345450770282600161730202036878783667318126372403338062391070137615454865472633829761748074089948632432291943483743940561694804578788092791413446353560026336266194787094374669131584953539773177867022711665784978251854482087125401523384221827054918911671070178993409882360743385143310423611819996322377270005334043260649131679748374010814913017990016429283673459755073553578654838160439510030735099396689023013714066337050299740872330833637926886403084197143395990879656647275235784429121831789592382851441881583144773612859880335210823686504079701737961249522920362524129549224857617522536324084743854587897908727797141501998410811023827529193700242012580303509651080927826155324073432460663703022419914924110291956656284282961400184102454683980072312733191514021569983957671547481630621083039764212034543812264775491400552557340236880150294184975320054760449390327902920628891433658389042464729396315645253223258167326433654944856495059615253907966317751511395264360960617771163547768860482162733824899569471462743869044950927331587989530224379949181873147673190870503868821134646235343367076558532621263857054300985855323464550118510613608005428374103937746570711713400717787593294863706335689302923599398280598546974993774325417944472983753281438043676412724573800903488114278341642857750851127770224117327153524578703396710260725244882383285670363607999157128114566307148362216839960734251777540506229754534084192415173539791745768904040462373097874549654126132216072182252289207919681181808390505483976014755858089895368654590517455074359645122332042960057834088306084413415245877816841454591917471723614570940943703374216420868155640347027701953978831576964709367813018795268634812736041510931082727762234268270626447262003382379241109409623235986427649356813136826554842856942945974426747834308711972009847947534316298993175188661403453100542120128927819345262735990772238603252974808301687983637306256309686731340651803931071628596054414962822168509492718955617103216776055147315827238079314689357104003738916401128054588083591980646817446700038648974238155785889088835515152837319698004923942546269791412032212869598721552683378832652073402430892289993490317635286459753546063157365879204570586704298796897800903388871325857366887722761314034512790005685692098458839785863367232034102967954343214361731801413156429653596591626972037271399189822511704132572960419342374167828490488742412534659451985194241331294759499587421823379524550460691175791739776897873691749227679199270499397266528104378277374929435130752044812433175407492599533219800393705186523630511806328379277155102048337019927975477545404426653497025514752519404423039092671291026116177867216425431875174394256984693059326025163390488013062674379061724690636664330008199479434019360044858323126387755315387766508635461668932609754523871513574686754217353748677584957752185449431060215706339813750691342358671739029183077454028649614337063964320107340220746085110884829363968456089249898428751220866075602888662899628051419705339319410697639119227007688852843693795728589244301571044865054823609572328841614537964553444353663180775544229779996669234931459489459944682492684687301036153839748909762344822151349669884408198533143314117100321745446191360891329813760117940657343990071855845330891679952642360168793233758459966665540707782874364356482774359068853878199920883561473246584065858688471070913235664273203730158567099346181681601542016487500168273540627055479924301644306311426019744817216903145885276489864116879237565035190352551309487889593492319163793507519239513071259969390128620499652753299124266212099315473983993990911766910451812301371690176815577400861946567582413008543621352246439574695334060362127978469494793250504939838936472662744763842757982445495220419760768740573219500014827435595391328966954236027330472850274915368446998011526210112768315900635872187526901832041922372175108889058081496935110201897360850840445879211773158714557807553926902012989658630148866868919224993518645851951927461882233183451830328703391954322732484962129761308557054008487238806849172257574942800437668822232438818715477611563152837777329510106704845023048848395608416679689509084235611175387389084801101977024563073342448812401370524499078447244318270372803066733327826114733757196322945497112014398313276025161657637542331844463942986123172753077759265942502775413960802989931112590041632902778191691426971257969123243321355869808449804566926793773947754284751209600271380892633935067123878286427252728427494445868113937189128566464475376228722550608497482184641768554526144257884232417773581170273450451642575823819359474600607801896205627813995640672272981704832335256659752814054937993730948963135400192014410453802458404236981434957874002924007906735618736906149392252208969323808399573722339513634237045537603026718950766877860410172067108120616764491993217172806450887666759829893574787239598835068142319010747179956387105216576967525710033795476209698261942435055338977915537136109336295590161117466848280957404828304303210739753745745509268964618057208271590999419927659091810590495694902958169970243776910902195766456908542109755371236513150736517213991225121374354437023285248279499904770024130038840590445344715395008218609142539868511427774814277219801394734850182887998798664443819174141240900344744873537735084172389625311452894742287241777706572859013421198098001087065221829988303919754955036530764940115777813442304900176473619107483107863254727005279079978395516236769841503836967256251962925082626948952627945766581606285107893861313729805653116804077883837916776936426833679791682311847267620701058582123931516555478405719678497468530254844582350067244843591705334875241131946107329155032295038357522346606054861911990932188399526018743648234385403724558686136207644426013473173547359011852018939036284246021480174896683405408557616805459496557703574916216092532644363699075194881741401320422854920331980613875250304123452138073705382127880777992870446194329664200371662347712273210747832935050971411908216298299032631658091598047252116918552061180999490154456713623771411218485832854643424513788004422611284824134669230691497222429525162601991384236120992913480142726884008613795706432647925726342587440177241109547664102652780448623706738858983525327985562497320700589215783831996151294401411492034785769255450762229226739692311380972937398733493380671993281734658492742006851708580293155893971628267981929490449198567125721270151140604377211902619676954732962861662868053296473551240084667888732907101771906303469588698028394246122531549154144267419492481069837246371578502234991729494965031121564370452181455844783139251661438817990065382557224071614186549469632768145550732238294977035700893766332694535227443359299868380609331044650554612430044134356408947414848011675129028297404102841357964084443343023425504846876272069489151895764089877575718083243565791127651464050754820533929716871413096524381646980208364820585651966915718828892946953999659426969383861848112944203200407918995233107728499623501219576346045302484170696566772345159926766794364642172291611720472713825326800487159054250799055196245214471060692993570428052510217041927223893892505260931452358686839513184187143586406364886340535852678158909356763111760277819006737596337462919188582731522720319800355265437313763045538510782492371691434958141778079704503682702976548504677943259697135023108053371198814163792356750668233161968764793160399648157600064189023017312025661105785432186769141289058626591886160459485588860080787360804153387441328850169396671808305527165367177723804238382556983097879777008535993521708467952897375356951775427337855917001560989610608515289686640805633950960717139884745121360600799731500172147433622452125727150863848095207128594163542650186480633190750027546625093408108160625454343756706692378975171223465378926917351969439285488105992429401924692416226269016010937370498595670708976388368705599097294306912528773726608784834639147284107320351290147110219194183221490681605009989429816740177883429482160565678934074268308365284374741299262023964082322873325024733209373906690367872566085283323094805877106060840544296644650265105800181933515903243654046698050576816939427862751372406659214055270001107907818124236019289666586525870593177084701414771584884845085776813087124529409012456198334516537660459983289191623008395804782842478065384499308503060669918392579930749654229941444989810942593707202002323352838289332263665809530819519064851222218612996391246010980693678179284961254670427668002310674612145733669126308080482644949819887751147825180129968800499808273658693275313917856841769507662872205049259958421631081763065483686278123356847751783249016930481582626296027983009483648720556198856818309766084879625119593497009818829916868758672118537819040651264383982049799977346380938405567113804720080782821046082362282911042921190969303968447366330750304628424607433516463523409419942611458524902182081875876600460709986675883891694268282689137157313555259768971452336646027218317887269540713778873683875062717147882501669418373876230240692782013779161786426874532409611945313591839103619436379531507665557343580316473630972621344357993679161098703934119345743720670182493514164390298773352154806941423727354762390368416900547615488041660060335399254019791540709861824777625441929144902816102244512355863903786967559157036084576895544348679822855642053939381263959656964724311920794523110900241581998718117707164612380645468803299985098467695248277420381717885542061511110635577540025654989780391903289445570016041946488117745151133152250255651914563694850404001397329635199745958774542662237555620648773111357475128142516277663187043960822033397456998859548046125271346211293723972641556443799634883563955406651555785980618316555620030270552530342035580920694130598656005832911829963534390540759127957816567120106915915637895033531681889774855934827619283303433806674136946678715272375834886763194615111710698536054063773223286314865708834056080898429289962112070061615107359791787237349349496163692346872006089344509937600208347471129946995244641606664390822326311602426623683902366243868516982550079586969240127055847632056090978500928710210790752252179823304175238028509171670723319938638918330744735177445952848521393604400835370927330606586054734442705610980836121819120243554687667022595028755454022926298549536319776341604151842372259589647214367891599839306138740083972625831651350666231864014087046887514081026416951806437901391585214143350692592299150047039491743390644352420775520345983613667133322317932175475458690438981520232183928095699792106791777431922672722593411924660428288235746688952532889437659006949963476221218624508261423232431533232377596460972282432406784883016339698788403378159211601611835078151897542959846478579211286569934336071560535353583497111086170775334597064270336782994049974414390944910292393331363059348892698316447883674779366329712987879040733638860834569663969380064234695324868716457778429575695424773769823867565825186214293705574169519847748888365307437379363705274504388874520041965826934150627352974321431967719429360502965333250590191703324852904226345063711021231456733869757342052876344027505109742814528835441522278479425512009123985355762543381928048997881079924338877788427556748620007779474705988106674848968640496935979677478577602292759188117224382364299195000673624580476076655071006665153899180966181098176484289409038706663069870639922058237103265618214011618197695133709943719093562200816275144448324788019265800305576205166011863667647027491362689621942628180478919439175431187340396703977562562596219153656676239864452035983476314921442240678955313291344973631530640694071548238896467413204937028603306524115054067174026814722533627391492476495668828416216246903248003042523182522750898434797085730459888782136911761192807065996034630212130427082665429721571993294044369886842541251005992523798384704006648677647041235591932485409423452867827083479334188099473420876596232851782836689003629946592810675240480910414298005598331778209524328228639974146179429691074566076006219717681411373538968465457110235395579940599506765222425138247809276632236723589908156196358754885572791458486937260153936188971645825687771229529569846186895016635244125440591859955021338117079566805655843862792609426550893798775594116112770496767054749419570417366794802431965860569561089556046458826468929066655046472949629481441757624417365136195587896280791781256184698753774728815848692409613126055452840646622190335646359600829247946659700904038309352297560192284246698981293696644004043035606856248061546725723657486840849576763825911474645275751511837641724270146320316351052453832606486804795222435502533862230555037203078887332882828179895148812835666687180328732690503761133137428636425926209665123667746284896315264930021127577393042936989718696268253847011026729531338801356931249817845539665922839427591243816601595159818820609402763204991213125826530123013552324930818951047991249180380937887787852406136134379534655629099162965833553298245298441003971514856260492422362375345378571908184938829844679989325163745822158662568238384832742696288444690490938821203829323559931137950148726030763811649580170815590541152327618088901105499255637520156688864702693388031726512718616755284019182224059972279598315994211897504567969702758833039266861822992683786713681054826696377207070053394090801230407367360856471908006365924690097551258556804435164363641989838429321354134057661627997037725497569329847440051710957672813035252234449085977179461258817711397273356383854083914883482552751837388588315391274493294818477496441523172297897489615781707300484035707040237103261584296783682051626946717454588516917861864206679764000496931205623922613363294882417892006761616353413895664893409135222581882055310701884843397670956251799400171371895065231900110433684560659325439533149658893751361001005083450403871978025946301216814440141478432022560072087856429216867564371722780966146582484415230312660737953525791745147311686013887820212283420423466652419515343643123398917168476664318864957739988958264309599191953678606116085011548443720964974405134824651249522690462527112702332935074975528692864737800872250270526179554479630942771656779820167990662406223813859755343154175848094619277701711970372091728865983847881171133359744623070067897695203832725741501481560837321472039338153129919493138266840806054032640866037716783624071043794329794029754796179474982068478528806855820617031943952176285550687987674855552475177161367446525980366358259679672154402893040953897700461342155404393723760377256541608172488574443206231747478741988005192382616669171387618930508029827293622926024244304894373903412778936770104156248312710702995714260634046857229598770342670198417668695024341917297226862688009403924282698354784727748108722788171606411039823686403664664151904335102341492871548586509881985374847562414453627000443923578521109542897182895980084473645628812368208518037816287034665148474852503020505727445352615418775776086770274480668440314235234881462583775652622612463930716367174378458623480966414269846540951932238407158153488911445121423170508218209074388643639269694267828330353124002746648288895513675353847800912165020347702947266549033080420174427747773427302966117569970341067996393163408154192954172944951199274528952018227023112525694897330656270734467840517784852360253516669778258635719010886395564162914942348368222340198465385578416049031358591756827168005684250178304861839208276589012227670666275484259171857216552038911387699201588774675664273893181106295690409390676077376517501020038350127314146201146556296625133953383455889767636223834567305296610949846940689706030854566773531984280069291369602193132838568177427807428325690746941355059045861214754478862048028960947108386901824256792009003275575665720476671461385811046393755716234513356449713795295001483641750866110970697754910301401364269513622943204971962379399678102787119245002194615011646600496436518945790471613444956653113848981184227758447980303738080860253944561775725746877618515009952835142104291877436948166768570553385819932512617868597692816756992467687029403483566717888809088597429805678071610261502025456801705652555128294505977488379431864653783387271402898304606733861907363733083937148634089019627998552411645378315592246435359042694899731267991906147101605452314602232505272041066048231045451662569501325572656794570017899726848648014770300826166571998418871579019798381842216197055914125503442348176187232124210517509400587835614284401559487658498067018460051028019462934848590378942754237230261053464461731690180999508629989903401021324465466237239082027080111721015559463747831038692081029521273753418045493763753507920020150333525369716074909941915935060559251657497062918082122910804922436927598272447567263286012664710778549088652145092498588091857310218261745978286386312810968472054058743201024953555851123641879376688205779400740148532804796322543644837366853321882712572817432876919209584860915670748661426267032387123210620280126925249947204547193594332102226402965145214441233764628753376307236129631080596827249034246197588505182470035984909428147528563865417259989596184556761343010529348813519757587513300326277957906307032560549407793082141594322405168116038958092421603368207519926403804585764247778510273641922462920427210278162202982362240685436289878013356317556680729905365828708098539280649739995344927409236962230752340726294963427184046952806519636661360682395460427664907294989890732775953658420071667131600601814897038579214163432369086794097361483034985261341218342089407848110855062382392966178950946476193951352014481557438206591143077914708280962235545265904375843821752880792526957304639506997102248093783012394936320604103803390695229664234204159440997947857538477284071057282308388473419305163971356978704817002515905074658783943181437029513545240554988799297637239152695110307148442319209955553586331712596972234811977564357147617572994576408380989526699597349390667560216768332185917909239058656465294827683162265579068331378603600153106429098555450666543536034477761689758068095765781892210981627537147635744699738775807337615561012347533681498085221406002617347393853578127126948347492474049163774906820162417109281094396633365322462351230587000381128556071603577581619755637541147039008958352933376593598244246209184429249836401153857796626661614014701525366431672518987304373871033777269350187287177193670137863306919312026705746589667420588465304037915988080268442246497366319265607308895088698637791794646747143837140746139815031304055178305628465921299318859292888007211134992345295714129907064606875188703818262746103834747509441610382457536496156788740128487619213528910778888390458060889656878181611981332824833187267888655903292169946360221487339834025230229242765184636048873579907919790218507861430883181720043004101296731723359460608132855895830756856307371942211425675422905992721121223394848019711920875596815494240399938007783550094856246508964921366192961335164421239485761934898649092859351238211770686065969366976352704157865356322013600744901104549806034582086878002060324504096930561596313090028652611342645055937718909128036019319291109939694177896110477979258867347926178845011368284077732133762459931502223458333285637559193663440840511850591468730389093756155271953339010900885112567117138944594153893917499081669139345372473834310778061109740490414491861263268319953311768254455400897092819623567369415672393978070391286841983922327652564963329512447292755820890120695936938520920596450013703416498881284154266623851986988184235262332160696250116541350308789109839842963679985454709373349383091005448677386828135310833242941427700321881665195636415308933043454885742583506964882208761924888704565570092598972320442002500993100782151122820302053082401045454338847747915518216458198692981083379131736370219153787851458311284560340944289640008364492922723861709562732965580752419423846607537573799243104166822407376221092165833371923166330120858795282338061386525116910978118757716810282431811909158489892042458114339303093897005359937923927285646707299383097409727398628437895494305036960693216258883667134942948061383576580023725628981654963083609031599486545901636162131594099353741198876579566172996651186788295061589102561760317274782564720354447031568481219769790215199168736066108652527720361148251168653126804531028497126607992728904572056747812236636719383944324946535813293796996318993876314989430040463905129044537641061467558810586028229114155081145418318710593537949747825956437265077310108381435987178898539250703742508399606238287188940847416270796972220568191052099408495549890856641632839445957056736634136700002159058716932490990985797302804464715117248290465965821121986171638910393673392811635472286043115453562265297784407362513603996450406147006641920511827750893039174358275043564241272340584167236971934037939949666961371569303346971758375889267243610616559461487110053108975896177239058626826123193435128251171129583124696750169270350231643289543111349839991294748900430880542727581256708690635554850247018327743370829573120356826984593050075453477433770553048732266665813181499195110246969076852376308405670846609511028627551947937148782764000425245746965850245299021280513678202745259497137537874380448157962988021488925325763339770502800437611430519014809566880142814230639583337400977372704141228093316515466211601770692549928647936295332783026268594984140449399954417051103397474464772217924349986134535562949048059304200984476997695605433305030841910291204162010458219975299105799478608312840517740395541993125226602491848163960817443738385882362863758488287282752878285859043720720409162298582619227791602750266685582889008223151516786621392003660493454388337331525422103183635237688382900389590221430855483685369106759663950913793403418128413434011759032525393682065566016441485004555568896442093731972387860470467873136263258789087154718729210688366069701806163176813038162407040305274435095823754633617125894543253420236816621533747467239468057442442369301779228102863854218219329131245076070488607675238773216357506789818941027116700030195255137679498540685402080252270222846281578355707764331681590396599599071756171887606741618942641476984051319997563806811846578608946382450741918494173575306705569423669453778039746160069834040548986818644336028777607437992330426359427663131329753583473265421047547839988760423768863924425297827985788944139274827705518308956784178739143725582874284742672808001342816489379417969784720822420606744150613169021842986802733619360219211591814760309481735466241687011116483860372441839977858540839118876720769653131396293565166777358288535039687464897894183025266847492198138417054283069847094127220326789079651847847725230787490003686841720845832813845632707326360508589843478744344852958092894063694078239623304587428323606673636959632584610061910864026887834854529987498233112755108909275778219344810131539480072796629040247754804057412906148516930105488766480304357473809649031175621021575274974279089760219240728306979483952194531145976390744534229878616892397317351316650793409650703082289170983242593876862520649353527435578375978966275597527217017936551860552339449571698886585326903198348380679546227260249516023050992176097260123207161219994979111171906078455975383685187936077818632267399403874859009119830985597702667205051567105067892238170562763930228952975329447817668514306308436334913030528248581594004521264582497392689839955620580384072135802204280643549624300385486645165846937714356770720892266665432484351742480884969474348351413030324394825885664458689258785518205382997471884747282163436824191606097399840962490291099034473357003900232297076430518068561195122596800056480895452597923600913666971557047719828106754045707730935659009879925726301178058253533533992215895941787566740007064799339061942043676798500019211254483351893465284191683725520253013881627034919677792878783519890575046726652969489820580831157704531124811892098787641163298431261655489489775961367144997682086661806263158671625393539574076473962257751237973254522833106450542514944991444798376931721906825071322721800015052011943931963511018860757668641701684720054226551318690787538758850910156665928068413405882381179864685848333305396643326629490345072003506886725563656564997165194110439165161662367776619387371486332796731887059102306830881415934556199615326715674858916317288514651514715386134415017448942208503558591969494587167424740610499484329805268697273593064478115392850206164047693439116023591981830152042817750088235421815824590408498365040819024425088415831039834033754490329279238036431149525992304390899974893811740036153665247635289935305052454936205465745818567354647204750646782278206468743923965146567805308696481317467195006542112192446210639541738121187219902146028568191255550328789935212586717026405920328728965692459355533478955634692732469068185639166415050738293535906371825170227217917952505146257113512831673421103494541060521493632215924089242580284960954422094812741447329872700940692203384351417154429387086340157289725624792202101808395949401444813200961448795582944561944024558989062740138702893429888332540542994116869417487387789336498033487321719031203914356246502981907124637068486016548156179363016049851170479981973758049417732609503177167975632737903460143872475434193122960906516700154358212194334655069698968217235755580304460959626670087766138043472380230607381214968462932878054215380585501110183154704709419897976892892984248196619145795544717970126908666383192545970454740730157439900962535080961612833361105171325668158578182718451819818914576814880750511081420349936617307185315777780221773176609654737038663541074046869624503282912344592862375813916962873240360505359709851642817745399226764499006109240007515848750014775541489641213771901406581969665394789427632362439486162585038253049916239314640584691874738561577335596933667828623901540897672538275336007833692732660914155326082078361433397934176510600542964921213524182680416087744046600002214548658891104889491715897090602920138353292019803973448855482243149251146517501424925664058449420970785250848276084233510511977676161893840176326469685046546308217913401274143126747120227637826205002439052674256104681686794832487769114157007586028367327650624943347079189088678711833093654933903117329510686031313717519458564580485579016987215160593082450443296073748332542654395361489146512131373505656320813686086951470706899996951533305286812907072009226564587661579537386868740677800303949852146716824994181922415111296197165878957034660313210846310873621302140144702309832786755792871406522158235131153256432127545276278054249332750551279389878212041385470020760543702913428315775150804629445774364931773521982468756727019710059573365298315597937131549385039942100020268497837687440020650985721100725447368616615949189436125338229348524640357027101100818676954398829076721185370273597836978975988642867001699563038619500913303091828873887477259879844836320652655244352206494548334635418137280058001526904203098211794488150261010685459892258819624797788542461210920512131868661802289304319249806292879617012112127181479878311176325632085879406449271015286724062867565174904130149897192376249036864571501094457365225972072589735080709107255232565041271865173824882534892597031917978666692312089008507315829346473458700850814494195419560749579625081372282602608332511613769672222097949703777252778242947595168089225845538314542843825935462370004267388603716095530888157308497555868698898067866828977704283875738814704783610790896460237680057224985804130854365971493881744903148767319208658165842065215791617032844228340281568354403703860423008164097268130952715813425415703563478047346358377515165013871842237579959175761797393253620989767556952263726027482717347746407453732962535270442901481809990800316583814653917222115149892471616594176531227981908734536551307580428915163121970400457081462997465338597620791225510897586400856273636054681186129712451736227839114266161080452113023049595805287555516080615984128356949523979906258784135089966233667434423962897138073998399747623721040457960809279089888166797190207021256093511707705188066081963387838222265873285703768854085225782027062690960960805819550907855767891456815223021615140778020991484012846741031955412612203638765010789443074053122615577663422138255526799234858998204810544971925738917725904889558124914147142235340236101461601974144601780207718270451851124673993189489869702084951366916083306289204098040634188105729694041409451015519115525237065641893881232320511848156696183454434795254957256844148290436485885359225696927094327793376558024368582855588800266377687844483422216905905938301632758096790348136361493069537640672705403368716799504084570629078979726000229075723801231489873725559741603974657596064241954344694001222668793979830533421727734367808815106091946982907332806668053465641612303068608499127883513484732746970849955441152007037813907654707064932067395802867803559900819371932422799398817067191110188640009505994096551593011562841793512214071309638331733074477370465095812469433984964159161465989019567829008578343309888905588722380708849120733194559354373517546865951251648681621525503743123864454482580924659656933009187429713270519181451424721716037128889190489010357299092858003310210633681809243413022308600435419684981852597221254743870210727141799290976586002033975706483658989760367435656590691491232123487302817169464083637764401805815400540324962465848350223795306514428112450200967945433672391976149957371020043152089318102103701251335333204739010845898634646000944832014019809276514664381662732751280696824986739881841791793111553348109360909976525343906983760958145540629838400000718382144363694976201835257072198970118097738287093887279728163008220931648710548792515737337328245031580522236956141577836148877924051642108123749236196332236893022862077251705750846769606858692894874353096203381138354778534100741732612032757023203026188030694971081519442281785475448252351621333093035527791557065197186627029727957646083182277088470775905768675328612337653994470676144579710015378139726264237403362970142153201760786411079344334062221874987108607168033307476043685373058065543658273080196415875366927768895283040282095995470396722058087603289199027331043001650480589025909815909398852038846316898417868657491517396121151437609929259185428216195025901029980105521782842298310075696435562003680829202041743624052446851302031668905972606245805730711552637350767639703862741421227152818510816677172450120374483036507085940219387955086893546759237757685591612065258777670628387331559628192725337178724775780386773883401550184058116023927625773342588486487151377105705098975753790809718378151348733523208023183375481609890018283323232833667628361730786277583112559303128855383001939470855653275018162333218211879172316105208173726261339043216813854358433713114229621332549532161816483997864315573236044273492254444106178378461055756374776043534766003884120179408883857693645833220535594160544670481018045706100775200907013160686556734645373758951287874829413454135606090240112174473032529248014522598415097465420278176010680055982059012764305879774632871192667379617067872525073913034044459151361914006723896145355991567454683912292596326350918242355425218640650430742725619036833033653067938845996884889727372469327899771538020569334488924335343323079144403084746415132228797182083439399216698246685839972774016898745945971604437618276625474341578603606514059245571033397609051298524965251236467302082820297880410968904805068234440055937524720111092666639609146769347111093068579570911352130300020693308469484284248404271142628716106367118373910985429454035204105937748936998798685125627007594733375903501289393101464402721597770796052430083584443575970313783600645405905788841424520062417543695144596192873377833115593136864776339775366670008387308319911139470532872018466330978301489180494977896525608622189154862297748502322887405173382856821538007264431102799506772067244930767663706449029618791002043860183130385889385546508976540793881313477072463010724888407370483886187028363050323031481964037362100476185027876165204491185825733164064966122008376113352932881222231618411786605265222683340504771583458047861068518358359117057559701990444749074825551149744712007128702710081916587523691920042507852246862998452914590084057431635494546031944191995217620004833769619627895430155386225745848063800418289845487658749838796333678134668735937347190153060568446203416679411788208851460616678960622776176487444663143578353791633271466153301745237606389387239847019143529518460941989210829902805286572065510167152744069976800821940660229561727082994855342842365427618254212273312847936071268966173145407891660543086628055767016390925982977482277809326305745653166945541681047127616331032929822371353175738043865585406355318807978350744030447757314405714130432431558712546422141669075220189035397952577145263033083779141707631439036446810797179960004720763751378245912492692892545109203751889452145233177385652187049035520618098956886577694937254320897334542004740075324469648412454508431478140249115163855894168627491416465577165253909457503051268988362047570701224471241027766229843230263300767955256878272706847886880563185046453288220853503539800136795688283939282064015181011915561686982083872325059350548003540428268745326860108335086276498206990730063811843317585386420641450194205423683456050775313188487147012512562695411390499050353506635847387934506473243257534796949928804201012326275763701463933627820362230667144396001063707786775514169581409919704676946251364576411460165928303665874287792272511070493484171611589443940858599425052648210544155695789265069027074044043332232666598304117583190977532910820538039801666326085462813872582216074703598883260224062436093243102371868385340416838723165241982774107477124478613117414007406359817690272771713975513767448889539601388644138150227091616960928203204822645863244439800053877779088236701059282323527519277244911737675067500712048132102430434841031166042156383541051802531038198198121481369608243502103069465725763331326375415408975453656156578838092349794623916822465845975471394212024933834302085478526058158368442902809067799878121949936678982018635797978392038295174174055179544314104258440071847714496645314645898495618985639210726174332463274749786149394029646388114844269852181293671782202262899964677057173753644476638180920952898556112930863309347106166072575517433717700812142368681655913994916771995919329774604074802297231860449843351652335873236628663550941126410883742377792228360173272631567383894128770319628598999413455392169381613756142972006386867063443483129070466696758677256691591816996672569118307719593408987862531273254185648107160840703412395186397154818235311134556461949749939688057225503867877917554813755771169781592417081361513297568551470523143521155314490325740427719551008582807913748653771821061249017713702263142203759259182909148630026879810592374256519190782550808813473685968017802750975729366188978213309651788922067263688722218455434947278146824412581324409756027038248808252267819011392983537407403357331567744435708206622095861807206385052535874787718355365044900210567531686017390647171922229779487778711434190590925186515154145899688272365545560565224346810902651002630079750051956645796229819076518200881914895283674722533624836881480687438105162744013389371771636324779573960983496380546701817934613912023835984752627219468054159465499819496762446510296503201835416206754294501622218478208765176042984992961815730777309154592319940814859881184224360631721163298703056492232924475597752610101592202203621223711853007501086844833891170071291455339273736717589054318517307129244417894256236440169659763545927157653253875471393750016345523191396629372958238965069645863026656502009688657500954203594070287192639483260871783238414751429851366730910479417063700808406038293611584643964673247438492665710399795718580371008331908134955067460911114095621196050136085780320585513912982831670683571146150122686321638832871891389589454098681236413383963548471679665754374478848843457407356301015484352453178521349154151260330439130493452116187565984148607433912388238240832849988246898427412367121875642869851823559487751914354409139755810415360935563875619885212926236877334694090654520862561269215389135425279708826130819972899540832866488396571613916700651982671558698085825979231706874707812425827383745345076898772489257257678946164605591534688380700008485358929741047390659760671908412649884359746955302025314848956979964854093106765109980774680848439515856957189918850212514120431747880369419927157827544968161822708058187127789865361714374671746169062343946125746505765084629875822892970087498491048936105226484685796771963509851235054080463810353737366087807474069884321028105090567474077504990243104216983218388087613173187723181429053357655577498343288524982232749600275572862509422160516244592604775153980493487943536669636094432664581923580126914488413975561691650841524848901907554243452613858158547740864830154679178518153397990606961804250871756918279729621022472500074114953395071572234670829504762506610627269744201095586635410075565023083811128595420325371344937147078745991454742004401515831059968070363352983111929612913422335804391674467970166688427561803778239216054180584933001806348693068811825063208487603042526259371700049243274695401790519790473367325155545857962696108425410571136596664799397487281928540436021079327320897694584990718875959926002370400025885479526533903785503898982284664693452282571474741646650447847692281774933194854099619409873089703728152448389096737337014597241246597142236779752330500141330484106848965174575892431281992114337663827736937895424636091887363653465888494889080243347251798034571161586812343334970153013898841554974560222608757988544187031621101107242104081972000129136697851621207564663588248292048414798949248832744708469303088112371259975465314780002795450797785812445799954583300073140376550114417945165718222674549582712435071336677575406768866422120342304061601023936639879826683750444079757829378375699053453173110448845814820890575032895192591039724431927989672406665427492739052377201093119682069198643147973449209030977744102620588698236644304744177378923150349320561195245722335796149177526515126315025760140615421984771002319558174958985562046372210170302379907027241063336129093483178326838495517193259473265781818481774287637202970233357689250220494686583374496575150216046438215744074771420111376216554272182386561079446419485771496986147586145704330399060775136855030249256095774641359416531843300760478818251546100392857887543240164051592460116670263159841549309545923596400848641784453083153273666597630997875570389343134606232482420795980900444362289096934580102425943899648148773453482220763313618422394206763654121087334253636580636042544331724181202670236627264759415275680274681800311896800857269591950958651331329022241418856964159715633602425311134040397710879108743294439356744152603161045466357456411090317539042721863080469484347596280788906538730866133620294584349970282767472874197966283717052441918358573095062852178290465984003201467177329599483847869322217734757101563787356315772547658253715563257879360270378740963967845481160462593119296845220536635923103555529426872875412586732056428776508313890193882186663793353703854375605364596516342709549323016715595082243991500588921171914511442428270834193894291331659654504262693521140901484581522099930903877072303044158230463820929589554530227958059989075767578555047894566458844997330291344942708345247640353890523359406623721088362176137069658081278587382356464727197559127960948572033603971796619072989998677535032897169961398285745352118566558028916893874004560803429376648818971906396941922276124508428424650810635727098856477038917155172261237486241291074986919540958365181371186216065672452192805510315652598069886644109328694122369003629920593795558399901573710626393934521125522803581243588734353518281218603061713234508444002006527505576153271159044786599212482782408930973759267377343764056522104572624330687774198092154564335733856123241163379716093713412889757977338129739052109105442043481055431175970965148364860209059208770544068549896497968808244879587792541453881767460534387820264560874241895628029825035921171583619645091394128607168441331666630420162123255255097885471401017459581424455511391461952936796808197463507208861216541014474210638976019582140807066915413782875269672065747221399063308404733372616832568438773201583418358216808991036026012105538123891006041840256732215351193660474037071285141119127737417630825993327307205764124722741607387099504686068890434161997144234447624696863458922654143009402730888604227331361608439250209294112843714599042377755916851868714982178915677008001390334385648968455317101318301275869697452350979808086579785300491791260073398810408189993209046829880014730526401979694949844634987074352490214804225135760911445053882282080329837100517830474364050897683729128533437933514306182641435422651082674894625046289371953085320794251604660835491510223453995733714699677410328299184583397794557008347465645477888372733503280404216519730962305502606215011495717897144479654516442079073885228683027687413025267778507761335712347553766798190400334215502173437576551625201863230803892500047119301685346295275408358297195225857735600325148878268346138453999601023920441897269064972055704617818067738535539171303009451997238407348768704045369731723821784874799324164105698246481871724554162175056969172116532627118914130636683077652684543429815572425401177396317162242841517715084748612647454684656504547805009336781388220287802748467185567956840896527963414456953661881455157685063224546201087735992098116140579070813860680564108871335327124254163896398147658677423578307568719807817922630642813076500104099405251507365517480737777913553360055007672521480720218590352003194564758850322572907159756373530722175889664640589202113274815245437302437077514271015123655840426923885373435052652201097726130831677201625402981791499545927944384260070439201151197894882076390952633306165393920408131903745621117590886809813805869367844175532351172190053933707597483164840318577220793438465524898083051619655275624024531491891527655199389403580488007441920910910766404990528438588643997413109320281415881894779750948725337434160787286886710117716035887686281649365020921126036369004525465660411926616312124956424319962613462829142118253190621789492431125101513246435665906606800298133166637970606180625585287319872646685335908124434151033298391222403333262521422714208697933689402127099380296024667913154044792280557288257276347178180064607617717948796559267196721153381186382783845716462493590016672302001019365883393172237727149860177226124588014035516344853309564300026795835069798580695105400452904707000294853136906179537207908373235210003860861626913499883164544181209971597132390768808090072687455609706273937393957093796174941810362968993050069525207339271232309159193471433854830858882113482980576332216868181854643170860734693143738391189747440830252212916871855365696876136669778682132001173743203240255320140029094842620807057851813039066469160702233390785800427048376309284422294241218724202337669504181786729449129525069579660724145002971512565359942506525912544730778034854072678392936088793908043048482557599332811636509935044084959841878971668188573828211175247519432847355070111315395826978389978994449231018018015344539610689026983515997674678216305096233655523727311828077985139577057777289641623374660396033238791783357723610510512624724677286753968374607917522347631983591960771055048852153293695538556307464827969645875512148901384972780154631428077117419718995204766478772452460066257180506454263996719341812691201379775405388072730738013903530140912345638494195815582828691718930581264076481022803417008278784416269511253258940038805783331964349211371112561535869621916535148178989354013049843279067743371588524592720370999567781851492041522381464920165624532044488054933829715085160451364918232520844934265310656897178381800841839790716842502166138983865939036042464608786577456192724693729414559108917739879253603835071938804635800842826242101568446418386871807591711014690674689418922465747660466900644124993020542603531541618688353528526179079998958814341539885000166302274632626361913384720276688243307100642803350760869198639922982516059509872586307913938050579692044588667481850951334767774619064951117039182066239629916690816421908421894955230461808669808524181395398921713105662308136883095375988057459108160385553601334407202393179861642395817420793969004657218270241767375552386118632585581647206617340725909838027068610338305942978514099558634170607850921051912836041871455609388316967565669585662668321374301135512293503787043884613402120503647863998215982466683319391025981894020615294125897697981334310655799469480434382861987925139873652703335776542338416433131302031723399516617477427581244115207895616546995735435554822726138093568168200772874402875442492619592543661660570186203171429187893056479191045188360829328770760225216723717964334817358384562526778988524950139153750291445793652294225367374107782203363282253781708162620289723951407322781246681647781480273126693690858054069521411680413028409873478918749133210398635550872432690013584757358299971859993409067217225280846118263515151763719102909576944367158931505086249638823094521236483592805940833109596831516764374719478923583111203010830359413287010025917933899148304972291003881084168215874373089010692158649827585072853612541235676107253123038363872307276713237316892632643633341126677805057118233076531110301194007684424763931333384872928620565886700215237828769573298640708407652688228777412902953549146092295554463533075615153351533984789905913779610071011745424207873603117904435855844227514206734994188293231625167377582391237465204973087134209781226005932685717102686867356397808905282062372416563673510277696942884513827628976969982365579887910359254498363543265238743677165111335660279667883843047048194183685573291542420645690174127460814595346033215794983713198382361354050643739843395980869610429848561389787255018725876325127074340026343669432685721382604340094160257350299979925997237484973391430153086510108643184856562154145283316938778015845489251439038277235546682238191695452607803025624197457063308479210280102165553714227753726065539322478452152848296580728477242141361007123548568242476561385762754753709331590135572635987942868496433555788209184139505032761986906608147712435227155660040306815974212123589891193075253524256826847591215450842042431044738637918365608351527534470474555933278352658697142629301057256178056049887032330783823679684223460251975805304402094824431333737773580502848571722806297312212373565210675397665692830401301747354095330878091864322167373919580817194015900446206414777342414164727619289497372870089388985060767364082982761419466731125155565869335638917952844570237704456499225541552665564111727888032506632091287214895022915985029894036516403906197409194616668011024514970768567543815217638242785051727828064125413510227689091223411514595370173520885115973414984106871561332947243255858217200888168996244065740329396968539083939402640405527889284157607417667691906929288320908351808362402640348646339810873423426609110203115102333855875087624079373657161149035866533798789004053446444386328456522314350550541907829566890427890684693402584799724020353916023793966654191197062988194710055834801464998377939264856000777834318663768423694573141292876220368823247087120534885434370446370797895723319240211226923086249891634374070796047274906176321339708913261537898596329024005210264169657100635913876962228949328656884715440560128239047314138669562778218424644909849200854820228368560973914569112068453777137429069862800712871888002118459849947215604576551380048115143095804859524563916810212824627741107761101292889383948524239742391436892893136282685373402402681876815829666704730178020794702260731192701449033467680455319269841706430132565166318011287110497965211098715472440308038375463119568527414081305659827308209852117252084526187901941193406991612043878383168292307214024928081285757163281433140344058170279690590824315026455998993872761518453537637336879670100002585573108690568816961650528376987409251590054678715796181474990837106317997964423563777648482351018869342835208395807714883810513692523279121988442176450131559986805606813436355237748562294250011744985738486518414293190689072835170281766999579892903032464259432314388740472065597264346361385544380232567972936865875223030543338489581897768605646952296588202866705744743146185836193599337484844914323786717617233235650453873292892591644115722932358444472823162156469246768210904290323835622942796760687209785753911661494315855647680955559811429214744872924307237449303305425645464799196940959150089579430312705034254022186967012760434288891039657236783737592429755567962796199856748465492106406398082064203006768029814320327139112279096477625879809301499777486778998977776422853397969899668233327677096619510626171330083808804258922782152810525779657880664830031056058911006246879799285947558383656181720205596706032472397582517502923209813442548585014925729329462366887352643993561391089489075493770119207422613232105995395590946994883981437807564586406038735538117583239778187068343493664039146174169681242968158817353636178810793727837593556632695516094579216933930262590020953402587222247881839953558002332659808883429084796695468496962715256869944827019858963125516220441683995891298361728042515356568415442321739734862758593537699071554911651311896338626232782632596598229168251320021515507017951163651570699687027856121056349114287435472304841362744970905346691694237791042531855958489643849974112640818966634761757186573150349076988868857650602420474246727661677692588941014484549087182356047012121935323798807679151322704354989836327985013838375810277028384509518166545664901391346011674897106286788638797364184088989767137059119563664786834999979939253042386180762040529928790471263363394338436215155751474473869437172849492634580168675732144848243932733300146046490684485791394083731272513059870909736845246942192309261778141634868523559355592932135380532939337251641406078269450822419372753218814674417238680459337488646824477954746411827712960139786046129870429740812428267630500977171356936469044249199631538585452103942296741196153158417724554097036231856654941508665703473686488242309490751746060397442505580847075951938015800351419490097308674350427804100374021876707465786115882919017256413860263376696969485422855713101320279944362342849367663115618895966446564570220573011746641520582799633334963552492871415096057739702709510625489940605085409475214325697402269478113503430618955043127007260810838999087370705205829205550930470658136506849368442041487282180104913297353384663576860078153441748182030097773905889010384127564904985712086656960059709982283978381384136164873734332299415774120769092277286357335558772313608950536046434091529477962134608263430609477489783788130305421925728171063913664856544204631537421084831163826214673276947570749170378067862583030732466110644940887850637247215843982894817202128854921196776329067169781552825457474412067232942107714591414152199855995503311246345018663606559694319890798522279840407207639956872870223729678722823208028398656771592022358778707802605546476061941609640128090746470692666593637122937966059368880532957094746926065897614092984126617688073369248494698943809672487386696654436073862534665634123933869364840394295891603910701633601742112704328361328955047114501202444672806352731659045995692191408074746258024098574206269798768210814668318985296614329692447519102361921955299827619763522718018795158224674652293815847768798412260789920778181035201311301196050782865744923891753296022647614129659713194677580376650037965525884113920144375429047967538904927394820325246814157872856930899446165574056611508549591075679062080066744834254032860563514804183012372123812091004310253567530003930178241899267563402452243184551997735601114941602140436813917459016796373015927761373920928230278369750467142288902512169871960214003692694231882390713649730688055731696898172028692326942546689851104725320702115970412763312759577093589112793977795539422667752290554781776357518984045131461996131594030254540251899350272217916040876247180639856564014944001404724239662824338975519765665476071696530163434336067495759295653816034647350400025654909497172254269858339293092134664252721222448641458180410255622000376649710848322008941784658073813727280094167510540773587028172113146412912623653923032993619553387126976014223388784962881645864070808282067195689061028599515964808551275838941554253614738092889249270428602489843058508607980191707565592595271501121296769518704181605791610146726174727565795790733777867554058040889841103731298745002040500005146089794778459073569765313318502193717676186243730353851973808382554198992444278290792311261076027214803098878627902185651041838922388090362348578114977676232298305782465065785313733051002323260396156078020983965279848667880514517062216882737023777989687073251205313692415892939022341186368934426703379089093647562855232983072806728962349132002251267820181574145729894261510453813992456010799378414756957535865878179933391375766570733142772474664526390800036860862488048647039659031953604763416636402407330508175557514207138632831278211338895188875252265249557741209277661898865698217134933823920591319991793754204899216621378979222686557353919079551547393774018449899102056773743029784297045843088420737716075056822203178795175754762267847681778158005491874378390864123521460178023706890731299139345817666432262794378510703187905156872228712850022187484532731533163521723452734308067313797882988995288645760511363130791105315621218043643890136828657586256678859887430476846547981364626127030345852292836446160780087330475343529730422074108617230565574296898686980861480665004445632463021555413686544013839501851316878253395394049065885860678310968099149003342312816797518816910460121935325524339458898849046872953538627391276121719643120624213504824319355668512098309769978540805749432361580445397442688373873393268437247152854024061588868950343957615786259796088019511878513237524638487246344249082167105096195105442714289343148705693338138502082696963781319767720705011389954060909946252191984699247569612014176179721436855406034488592801076411124826072982098702354614209681779790860892147765154193518378134055005500031133422875963480360733924261716422686963008670739747267531777953198882379632264856343852155625207095276094971391647008098932044508965764877306255359613829128335781255705749765587115071456346564322894669105637872917887322015497797649163842760894658865852901699711788189725322162115559967190242443016988997077732417113385957407193141418840719876400133854655576261056985630667265878993764241996255000932156508782611217758952614169814176067855264176410408787373511979966870175979756219949996819181015936584274334485461438133797319683091498936388181639970269687318153336643857286211799406968917185861534534681098458361798044529990254798891780524853946539742444245506572715756563387776105532865706611720403700537010583594703574501160907595779336742669648063258446572304797695977003030131148174597366677696502483353342136469718272744533722461214908687735892916372263374061601471299493929692789489906202352854669460515171132610217054959379257992463576147233789902133034747222828622076238714670722987983620698059062501780265817449408275443155832365008102563027484499501128845761571879864869513194034426917264665479351297291851923094601680570293063387170158284828192713377867886078757659959052232597160116034722626232197931691746921470766207168385470155011507216937923167532335456909377960760343369016738725616765486899409506028224930752941591425249742228602906256698347207177580355898273282277440326986808614074547028366936182781883860573564130553397599125683645465428786622538867099427472874699025372950682800181689006956157622344653798687295513335983837791901875591901161199842208400754424144349469300436123419735447886896094794065695859783513045114828896399058127117512368041728341033001857558635214049673964972829571490196441223230643558073254759451073951792043594515706752597803948874359284267514605699590149312552786712557073721131759212806607474275526001522100248732781548722409920961692238313244667567888895710349266930623345501559530603290863744408580530886401263226381357113839712885211406231467995112954014259111276169062435600448543652658236046298246240430289303771473049018497206341832393450313864658517353053777676107639729240590026624238320808734509918963196169192299897310120066060629364435162375628037921088202510330541802218306514053047681858855321230792124632671814423522363443730981288040103594403225855456672136062955919189896634536607487792293255813519794943754478797096080787910696868121146307171936028805652691191550642493761740725975695667351610717523252860548813580840230912076823095659470024655384835416310806410186732128854054553604173418827569605527789512985954515869028854701292832824941526776746261961389602624225473201780430358150527730802976194036369511673854467520491740271654332376748631673263899451348548767298161392093732599557286131976984767205377144057234595152077447848817470013913192832213409921950472836965831281562354235520177962897423563729899655717692841354914881962251552849073635821430652527230095731340893774138185164381289075639268192758088353132669982338367064504554007202555779143822415269603925968902597374968562488537044988289298887647775079535904807025237001042000212168198254694546130650405904443969421437282763912482302924887915395131720268281395899240295319227519353616477320155356958150296586703616215790244405037328899289802220164412367016199411855374012098666257212263655045274892348286812981868567890715865336316231587859326525379164679349876845704062498506274779440806064716794210129289326801151998214620876335384556435961207674003517844989847184193952314372064667123306373846036008070330357639914439748480569353565846261130260516960577244762287009863643720901812879145010968074158413882780976161431007206369535894506243205523257866220383073106592554686513834484943805144385790433886700883699259468757813102854004891403179658546388033216050036548758572406468764520581052648049168035627042967938018851735263091580860437411161239352348141419699275931413084612129511626509045715775937532297627340196070972037585777256285885209881643386439245219373131185646825431129763387954995195464772065429361859779261856847167321043731545346725936059115449867642656287661203282083842848848863023190554151793146497121219381813393820223932268150231484261351534794681228796097644119057795476719602977390707559793934703491521116407933402576874677029433977727861101086039933952051208751433531234210417780530291131306105818986038216607330769161127452389763745343645852606598980491593009830865845730789517666399083095809646001019970717199029274514810247702805180328030558780924743025225970459509627741967546478818648662011094821456091724956155064325334236393945651722586676652057724309760802852059323399877183442037846758231515847216919079536117596172189571700265081570121952276961278013123504114002204703090950160214213080761846834841079271239800640060562441022182910455990619077321608105950979905450770389611664600160321995549502449199751038557276095632995301832690485838654129553019803762452401166491330962351261439008407149524450605238212755665765650599574837331236752952353746688685910578976508644029690191407188260170834129013640526119221802779515077274855817016735520684866703466791192463921756423908424082827117462442624986777069041655633189721881456467882459189479752825515877217808272469426632038288186107035101185237380821423746935607018682026383505485573726071826360403361374876686451191456908134538891164218990049770102487309914002051332820499162794174074351145487060008806433964465404678820720968742036649761760902852505717338417131478882155274373654590205675086446697325360724378923783414318132813406409221895547538169241666111324851779555640764946103900033474947489354704405228954535573194780389180176831941256949423547639336869205999159675482322372082137392319217263198079390885561855965495606680150707217436747470017812279583984689376943607772606082688936786643474698548482803794482416456468628346754299069408073083157169091559815363735505164822428824438085086095181847209817419034283302210430635501464875979865881715843646482343894498076504261520105898352460758628014114764221992825151193048656464820774426690092753327294780234049892667410754901277559136542635289950487632442412718092673357777381329589050597386899140673947189224316808689414755792105561529516188002909317338561859941922885546359126577654434447058081401449523301304511419942981574634881311908597234963177095454410453166336090010963214748570221397386179533659268510486098373768491315400452030809320851728750349618780944387561988911204993618629729181222701091795866954911487868494538566880615475166147578317684442911239672825091387710644915422151658203043102158639176981185698038941766455646418788323574461421576297779598990431271727210931164582825586793833754888258176744265120824623956834258320097988664806000036400743686095504773886887652016591738880888725457952444713409860208216315447659839130544652247302081663358240185872596893997747255905769847865066872748628999026615446641086987486523326343557949099818910169976510750106285984786397206298539975920347321709751771600259438150696303265471606041914446505618604223938645346560296418614771974019025780395818455696688572841180113605807572356667229352261517670547943530227800630110431229329433800392416843182823347282561965396356526567322301798407683937037183042332209930178421178434446363931609083011779965560947498641670328498723608883789830866283268671855249930718738897095305495859748804535153069046822434993914810876408776096118236229448953661413618421189915351517926035076046765166717577443966157737274924724300507322076621191144814315623755305097785040851568999336582310897784797380048866131113980349543597812305798549500420984891257166806879545408819805291007411301558874858130826499021998085895228233344427521225593423875624006682755305395485881029704873744370098456105230534254574825148348351426960178320878769224190778788276620693718492440661700766293789721419169210957900085803167464918584797828413444380321466241537498233398273499808722392831802698195557768144131548596994939966976137612239474241574642183887834986156728041664722871564841853591719702229193195127186212927696380209634830848466664374997004142386118154247615348414385645251341923231714275305648756704607455983829416155875860506144826450529009129420382131113074048145934011969585802178010515902164050884674677024592270847532645260321682088382115121644863847703861413905350953776828525547790652026701456641817979776831186036018238984069941617906923710209071104255539498927968312246551564490949980304994169071421018248228207206354341935977484935515370380980707600994093149313408069474392288927279639574733376375870473600552473894174061593003462405426994887683929980641189343173379646058573939641667215856750911119565518773089452362220161343756773951569578644568178923822533022614635408079154848731246511909788925638965000159375048116454761494749679691572174623168538373614064330437222085744743984466026356186946660242758401014545862395125869136068749289581560263381083714780330968540421363237269652290263229720555585200851378969405717978815303780046707884665889930525394930345389280375939161791953380541004858919873155018662673953187919327084929831963915959257915373724731758092461221410794998519554140011367206692631786231485175686169832086222592356291140771674237802546717080979194620263305620609520724068906275148575577535143579509162154139019189205125274782282089891365714030287092065267970347514725111096990126137774523076775300628393279875297632917656643955846187192992986490468449766245351719559874094487598715471997101802890135983552874912713774481778037878962694064404375797618095906644670368885206685060595531545323416904700477944414466949277155413680470512410744752793332739611922415338100109375752598867556244680248943988830661810061878988555741515234317060518300027068123543148641021344542086167305934994745380418842089195550448968311453006458115731616527139918678993900752970134366427400278674902765849996499193757046725744503887682533917636259830285770202066996468583572651567027374392426144057369682152521599884303447021022506450092070004990113725637619100531293151287969113574755909416348760624715786801578939316048632445002112739536438471571651943558199686804922732984512255461947507085549001287850311402812926089383751375173493925752780958098571753977179167190345313651365876108066547057518456439966061326367487780078177363522962570343875235346625524082978602971247651719939049598871621066641004046519759889887852651224612897936967384556108109516999046876193262064592545000582675789149341091008962377487738152630861738695169549576339754331350353242615409064957155872197355734030210117677417488191362716175671053760153481691709850820465194708347998119684114446952381735251124191009383982448026386940101885259873545233715425026108956200598236271368233445157635408933894981173334444352117165255826111438959856453915211682362246917730443795644348235852048371734652277502881236809548785630738700589295757708915683683853802463742532233941888316281350160577940055584564934022691319728147394159116007986399982262341759333913832695478305406979556538411804804002463800204126486402982038459452278002525476897949965044752061203683970686614922161959478475116425214300636671791266765745393273918059965498932312670186750303391936596069592259853586674278493581452358390665955668804123442555006158032501523746571984184220375538485618056371091257943603237506830015401142649801200090244295789306870257300521782366754343715256356675183311107776470965637552497255147466067043755964399469519509033901980632515888535907824445210350344053200648248636893061002380090165079641183298732271503721100345273561903685331723845499641834284919869106459546533381909579908627431013422826093609888688932675663540592251092981016559113279152998973206879303915706775170158757462829601199414713546638333045229209595039704454511738895268680481078445461389837563979859679006927605768937486531424080469558075947464680667008841123526768501056296803073778684814587578765613973251229761645997578958092996663796253359811057743162475829760840399444588411248915562170253504406349573687041093206541749494396877664269459238100468424305028283887476701103095935647879411115265873538397544269586537044564486979585379746176630976889094883484165323440042113606836824738532891547820197415261870065002479350019413712243514619856140147497169952154159793759216958888678806320552218138631578817827792764871821538889184877978671399118740500908836568696137809855011215671661034579254381037790728997729066426959814317675870099242947253284803459426060916930856910296977718548751226998393965136373908391275158319666034097764840844183999754371496032163026550920638355650364181449334056572636334493327721458744700206184973432524993118346240772629441008612457676030479667243799885967929659631643636050068484919920782094759429661949839113642699141205366857187584857622263320980571544948370988688684656727833406335931440238378302802839812168874172176772611321562055141576499498258259180388783568231803834981011195004648062518208137829223341442970298385976204658952047851380692513898140782994942083342992158865604469075657596547635267236925094119738865955489418150192733526451327319233130434243255337529072318928736965754528330327630316745672254480030696221787263032828417690009619894335712998789525522341669552184451749058560531823598147256491557503851217141635571242236864759368538572179686446014477033518486433694119638992580997394540371441733926129926685235312124515474960114305044094939420638284107843981873657553393955820790042451700269907086202264768772987567361555095958569870073599268152668172957602999645019466884574166927747890273023677077206718488587272848829521611884026739661135661666969450145436248753904704371315073417414996820346085984484399960030219665707803127839314786719663504443512670637425941895184716270788093140953332122588906695933684578227155678197498358616525460161427767758257877581315508694035699761435115170897987632905140577748754163663367442474472044843490824404516154802376743595871687675369313727204225753370472570913333994636495619585718565560967100152625462407878388066572297952954352562707248515929827799131968262486660875279638596612751348606867733488727571337925633333323926065743099905185007214360526750277142064832514631722236228610834804213054148014117115629125249282269438010155152923422380602422290404707871798308181974679423649246010311940679055642385661924569955440695447075275647004046224684183927232766009908045446106539537385089746806961698796802820189516150577016798274159990515793044079454030291578472906363278065646994033723069368066674549476125518491153063884909893776998035953081198580312367593241032841231101646540311167644232094538898843014533820026917520870067715409775432770950408441923748943671704474200674540501036826748244955702272656203750828863626803091131780448830851554152018510625151375917890642766408994324002716177212891134694903227988159055435222151911156149925774974015031646402296348514730174017504298942202485717825886414066263612192580715899354130115627956169523874647482109154302703334157524999982623902910968597084305970600437400136921093574497004739898569753700074292231277568955068494608491734505403756280052577940364700097915926482849240182295460982613537005318752892624175475033965075546769310654545205240578897395352258903391459340942359364579322294024475149820494729544571865821244036687549269345473148529340886024237064599944840896984162360701180300181116349188567083891004040991576402297391361145239012920505138017294233015721533682280368847773640095968975169245029193338637351930395703406415636137396195946514612458400760274540655986967328096646881933627541662940194951848502937375968551412299647402625154353207626024670847087117355801463447538402715630028981681207873655595099530259144565498785681287851454521780602852487396402249612661432118784261445678906604229218225342609842622551566835777294772900956383633410691939785461300116671707054252864098497515425431379495944704119425561923501439260502820517182816600870409368984988229600007141528579619506071194867703605710756524143831120525976676839440894915713571796981069406675242397062858792564375725189332439240201705193096471811782049227001798065493769268945441980277390495963896759896097027428309991346082333210180093454655578334096650536096166758819209327590560670978608732533481110077558421743688692503718137817019463821680836296024065530779761233161740744885198069708891603455514487977756437573778303503113128259620182494059313088102610009742500898613378210210251764409737186315671415645573861460473336152685235597267447510662552872376924329791793295543601962146380101204459650386398563089845259872718147641772513884589259560780154093450819322136683906181207949471233993350843067100812887416810367363580939348756567988888207622594207028315257628221886019056098204636103436403783445216834475758278461185007416540983182417167225836578386197295705337830313036940568132896830346435702587485535006390906988384975174993790144376243252328210928545849469856161094477201021903587648656771694578172787003221622220906842491309916445321419565285393682891719291863250452780594511470818263511334284136954564636606409308402326294501640601296321993276013222961581074743817882897763298105442532067494346038158350874850303988569511542867529505090437540997107428943276613770328426203487628366766767022443769067596439295036973341594488033699174760606388410487362417670095910374009694956673280283670552987225720999634441121483024599451664659758490224077403783736650060300006936930134084586994591476475271590418072683775868488039679177904685341424693631810918880234050743171753836179756949489467839549536365656808337879949491144184881993952651993784470629069444362955265729696732202378341820258390444056445586814755341781153390152173826495837204817419596164206110817117781417953598173364815571622367100597782380148591820516504318310806485426580309270942730085708186255391157585826982010455396580256073088303839415991779442633533507166727800916224974296019719078474520985069088075633604271234574426817988423521962347075036153386792968595388676516547566666507753693928090772949764818820964033917476577940071198271851404315505283329260801130493324343353429187442075144730567083950613514669411164255846217651139953220058928045677718124744766962835778173389782520629585407264552162608877565927418571220544993845179550050268487655535933185820683002249563499689632450661707320352031095355573135397226611543992018696586150041124840398449636938679215231614708336025823768885343240663785656403776867857205990367744612054797768670560132000880304623262436156604343519542049886870476014186733613863406614433848215685873131714505975538876519773846148309405744215940658379963099420558729791949092847722421950375238088012868647575489307435876373841396821269056576174295413887880272735897251852290362728641236806744892229063225114862625541040714823401419153140197075137281431208792925977480835052819292380294385130441212680802546925182785815575756467455692618228268835096715027618809598519149146959951398714301159288924625071104695697162892115769160489857735027531172469049937037982241583556314971936036482727093709029591063279263306543175932912319830826058834557100232216414833138801418009731118084050986738499763494537389023776015127456530199742279079240674596835539856873292434909524075976526713250308512160851403870444757778591335783616629108709030242356768636647560218519584179453020764639475187061229185873169522455834466391304885699153348993879278024417255872231165812437334536386505215588071352017221432567780528181660005700414904698852263948059092916767612867024716658237447997600822502956898699766870079292992428446628774060771978180913108327987538279414849925372075761674980364467746672194982161911586594742902332184292269824314775981707962600350320235302249798133235157595128191328096340469384280719518716567406540925612126527202069318033180792777019418959100355254798654635639966358521946903787170876866421908941450282954677852931602949214446225005685106913132377973107703666976674295669273996001004313088793980165587957151789245529858110319335421441475277002759817531139182621531499498362473338221703923828035524833887667887701841610958463292093655458953724590450837673033542718496539295033473864169056594744956295112455991943001476273372588654737440237811101155524132026036541924154787231995602347798871201259032476132564488968983124502241443577028000474635000058311937135044893158763812509668341134119579167085996646838748460552942772673534841492185239775159117738331428895647795186481162820223472622427599925365347597355017221121682574717237933815252992420938855986013037829070884275169189318678852644807031365748753466820858615822496993078934488636898568770504265773835390021112899745061342385332198996063831856451650716685733255800798006146690819022446900974865910578564728633873186258955141813548629818755784616869327416673629117460129056503389161962138096922214849723974821942611857368569560271140534261510923643045090083734060633653809940525594109204320038818283108703663184004346653757237672845014483150314422109419917025066017541080265198838699026421505016054374337511413497336394380531925840846316391657697644471347867281711280290100777818749650571811251647129951847088413454195994328804618634028895151529679084807018062160805397453487230862875348895076364552566511085270733470338661411502377296572293072236109604260043275938135023748216750797359082698459146800777500499493828079397807412306424041958367321986131996693275331185827817360107415936741470485460305738870379708887142760197294040677987003670186104490586029713996852133925895234313878140697513226955183593875710160415924970559942672852466136366277073749988803464537759593806328308942529243863204281316384560349788357839771313599368971775568546510162158868072534196111130288662727856870063603200645186919738127768566472685174774781936583019404418994033270082395152992666460966691159848624623926488065901715092410658588425457280259042899110995201718897258074675761605072195544838424068997610340542677003965025260657731004964738184638270789149302038981645324376183324133860946384274142714973089218528950638704045541137186222209995619048530180153335398122737698149684806583512008723829138547817009219778245580681239227953745203193335245743395049720166935042768238373767666498450420767626436593013367309145682517494243494839765043747196028834253626825872141095512778646263073618380923923093829011859083773773438214552317051170298803633583783384208953750558034226904856594559803889876153134164061035376543791681743920278514533140422947391561380158230057792055279099636552434805352236862677363847468196955277579843334921574759355316739425356725206268814409814895106444665512176626258195751270203427606770685294728986020493659415970566029086358582542817013341978318212476622487332022102775371977134032279450679843758798522871796636250748183266630087948846722297626124348192278174004355679683537590147237268957266849033661179805373266080253902622998307560583116815677211237507775608291920582844054552791090974782726151180361643625917648052518914431806814440833038859430444480082376546352482037362449522408925341652603749911271675950565511615673959433543770775096515807254673933867998469415909974155630031648541686504657614742975744326795179593476685407623416376439522014637020844916941095913615264178221641291227820108125943916106440481180755722357256120528366567854830172697251890963757433382268727715834411086255910086909096411337956836321512527258155799529322546468848000342019689121381817713747169659493019907746057700260139036653978074829408120501102207000552241784245288265132734687823329157344852419539435724699454237650051506320038903609733923512972772897654381610644838119400417533359002864749087145650520614686590839890231984637273122566876807318287354391188116877614901098802922233090203697748848579166866806856582974564360893074386419763667404792503765216051048897486114495721075277370600593951290931878714244334619126386975190411291076308323671783137936551056957126337584661845128849178189221800809969431252954122366085554706601983477764027222791394756180323900701892194091271068107227533200898963509803506730343205691158652852543297623802495532182098127288800719416709933928976591978836952209496908576054290400436337217996543490710050679276440126954485285223622232454241681774922084983394228456178276233749112678571277700320379040749049796473375681064292009587180661216942700197694197219126264358936526576145236900030987382103509313162313905084320652318987910952531731704135511442659911417395459791365215967664833887056724880463147123330389584601406837434923850032647469421871060580795687086818475417829452130119128300578926119834187619673185377938454468986882023191652549480333460611654933741446266499678130921853572530392918962298982457366655898949173083822895992589191677652953135094614758262043347775033690778452293915869778934006601723837207201934652259940853247664608743013643760128306638701592708723360069578808987159904273907461984854483880722948900076267714193046434601648532818284206906543382350570891168971854789655012135441592214183357935137326601632016254798917211419498836639569230395172118919545572044237229281966631180869173298812755895994151031548808897240845013088642453694796556387593948194342160602978704211743059210816539050389582116652910874228657028960583822020391132022709002840749309645874668991103796857614407046581989569062783909095801869623821985905511554905347491026822983123515794091714818739044353822089790122719288772877994040281537552554891405273891311960531064277722515427753016206584352863934906872855554351188521547615111274603115999498354424295808269335477729713365676416163192694230686029772462482156403483608927929100961983873324948299357664672740523370505283680241743055364928230274333287005391551813660371986364745595314906612486368232901407609969194356565295780930454057112751675957955296021918761882674897546151918098427248362817149806466430528568501362771470252405364741462580118159445970619082526214167758621362635014923099339793276235353850806653500453682365532719240045836723628598103193366439988111268423325278098477328763572562053596714097189691144847870987893846845972736920019492146148386348534599206355639243301702771779292159045554091215487105795241055804959678155118373532074803780539312118984090231122003347236466511686389869359466236965362937659617024975783902391701683788795558580086032776857948475788429621055397899986192485213259072516443130362981805916618042310635817997244895046604483301676160441170920211542495833626174093973034406908743968857974553566689707894008399879494184994052945185802401110118381672081528026319977999474933530064610755981941452020351808691831921618079377505417913532086011256927269298076857101562898796155187735859294721589731224648225571866772022749417469970471019748080955767190801097466606260807612801800619267442477816471691518278849744014338224577589046677971397514258969900490497822139661694143459479335375156598085667752809637011669563888622577703173731974025566465372950262188179128774180749379762845704413571395387388872860605284088760819244345308827403009471417841494250675946127572991428848268264183842848282785707077872654928783994817452807838220231916665739792810356688835921216925728607607413599853284665546347074784630731267069801129664708931920310887325819909733448231407193093760035742926039580492463088251753382641002192962470359275265174773535725541819689156247537216997364700078355203622532534406124103923383649242479179568809789293024378849399011484152103807186787020096622354944998809201582682435401858594694023984825464485822100043774881614863663292851479517391744054147842184347835709148622830948590336799801455628197344620280104796856526727503730557753224932409115015059332582012950604871799257086800990350996629512467129372247557062893778748663909163306055272939851111920834589049325161309794204623714598294819413875058102119016903890105185748605024179469797736437231209078003408000319786715576500884849309666011413031110886589674011573444020466036841136997097376284396495163801131007464742219081405309684333905430547686241065246825493836550866292498086483782561833224077364694750222434401006363080081388754354487341514447698002281126255876330649352328346295791747648448797043085864105234401047222523833489737646652839126337965347733545015419411073266350587988456767252305302723033410389254387331643508486021543053425974389316748924292172838001447035295536931567903373149129986406038984766011307318144350471517417159846096410394968382170165858734803809631035702884827088761794359327992415632584461220279822607314524786059027215921882786728289676951154362456872491116036152394206214952017310817416527966913016484113424393613149004839766173644384611364162164997548877348712565135275601061715431304951385173521025350367248595995651755966956022314884276163076379103304470229615825506864776992482852123566805212388634329130024565644825089191915767626400296917103898307382905748765214338071158530252011440349151327890122963038802276399334016186182098002129522424494016067500927722004446430476270866057505840762483648671554309275607163271982177581748055205559828417197377695917421867404419524196913246905411910104716036230357827315370539405113789348364284846151765683418278409849970201587530057448752880406057574451341120526814058281749010730335422096352411774777406137311340233377118350555762834964988041843624007862159593219648214867525299009531002773871728067192633622627943462016125255080532737876695333254106461860670660640009847805491473037706303963747911738092410913192059241252818513199123555823152889354403463881963086371482821188210750777082178083953817222214729526207109671491918405013541767641151309120675468616718051601960145537628780410987734236972032002544042002269662645396109452227652957791735102073499748639047060913922261764667730682929584529722756324548174448388082831393348585314262202970691918726722043879642364581775092824542963608956159307233260854178086054817556565234428226542810831475471183981292683775337694818909804035607486459265512099469883864086757846795950922200406450287284217588579297445695990183589863248814629232352195376595674090574019123835140673123784321540014473045854043040012679750413757877922266734236213755295578383225478116791331344138482520871214878081823680299503523044186946891069454250348697003743977447000550421826546663645727526615787501545040591675348182674671557831190174864596814597131917613926851563700508012127538255647712550992231347215317167361258238156978011253825788849310241166789832999534347092254528457636252174199304144407589402073812815146484861299839509453155003857864218399755541032482100646686716991139143686115175857918565704169990235911696691426612638196523531251972168235637435019215322970251950361059140062009713539181145928487499164485578732468397919561140168211913355020743110163605090285820134210375373534674299044074030037994293515157041279417353853562380476054255866015489432692943997138860581713197056315781634910660861216562785052241272555520970778556853157517367365605759382434692899171372066126008199494870785882492770392798610630883350031051557209947408616535660908296155246568122064414563034196508920436325972803688826819268138538572570809485504221431832309490049281524814978451279718829991494176884034272555146826218762937571542725865739263854562756214629365675683552318196169575611230336773111360057315250760447064748442111828762984093479373277766681008831088586485692658241859179396083486682468388825804955020133493305748257670346044623518077135855456695819956351104458954389355855683246545662701645523161428455531639191164420144716487133394634337327362180377697547723720464985438977277525742457009463047816145123801279934102695337779310104494693931465877280910798345753971605847196952058315080557881325498651074659463945348932493693089955874933609835443138308869130632451926256553997593863297716425086668373801526907060772907637985843554196491495323566613778911496704287787969327237512378852713548783917900392778417717270182588230894764002181433774192166579022446658779789027842536637208798334580017488089690576668821720036219381856844880918179400088057437119518563105192337626391249865694654292672319641306156964976171624639030939981124861175936295472789902697730564894682506220500721538271486660777879499010329339603957515410723335323130931579714452951846522912470240015731695015202290840692405691375331235284054667879686736974459029898981719332678092308845976832588257550333915606617547432901739840233971707753588994704691009818151618674869097435588467777110684428753416085579035357650238113174255276948364280295304599279684513750058345889102944982544080506539474289723527504761748551633427687068151994507450890538260939947231638206978261924792674991010873436076409373637804188039515400722703511531975945810204873965324266533316206637120240066730471255005073122693917707071031944797094365242273293647019648078360957320772593904277249705719539060946101537466242927809382719169536298665062221711930256775085276752458883998884447999138671743726284200798362491668958791147299036587189478864729968909157842482846774339264745964581247388786210805309134989836837161655391286098810550478818747376401338334991902719802496364987015804005167737745339463858196904410992893924051995012307306551868559418335140158933204054279445429639046355075377018175797852424015158419491094248195999610060544997070638219429315972142639802339359820482261820883538170374938793685178055928481971289777966724038491552634832734233888571573335690348395795160033390237301680112195336576722461094235292374174050057064194849669966724097044376372879254589379229482167656326795932429383872620793219270351788190461401374864324115672456667461426494445874069960407754188128091693861349561105488152855076270431334303782475168163163890947401214659791210244717149987707967840615728077864702553809939849267057290779038199622762150328391195434030016930405914386301203855710998926968078496034507019142163181167381981709243297765672203877975872835355116482998808722608630319505189354386132506101176511874894849702494452637410272501878190006171880687819871384784995281285948791308287729138707728743223201187617479314719501217657483302288240249976526562742312737141198192620931271667889829995913931943742410388567316440533455596707120079730854841805486384009922495020805408350100546797696213829915625705296557073181230638436013836319752356483726525595394688233982822318896098026130961045155645409425370510843445600244182008552643368403598976833089007629144682978498683126422030089848432971832924215145467522943400294935403840104837813417995474351566591427575084111188590388998917356660914686090435352006253418852759854335300383855491828014340567251051693816934829669732775084751232096096928065185468686508276034063357113818922381791840046575840621907707684458840925394029086908530176869775001773909382637294569425058990023072980516576772341370215847559288490706855667528861035542056895148219263219092420374316037732993418180270590528540912218251839344411326662050493080467330410549091643925352193178022666224091887877005124355176494169999769223818608095972153475057274893341610158739023144218896241180480947550021379749066182687252883769139456986702393270400479232297007108917899177768628232696031662641881499734127966158773934401244093226260399619376310424942395138174699432102769666931757484076851849532822779526822206735075014192144171269786934727418967072647185016449174834523711089138741865370443662982197480984784494685270279616511007100515533079631244821122355455642779601119306165243616459377509342747341632851095110938187106586790990732711622344188723661844838119115838856319206073883269322341764261496421461829049851173551711852759548743995066855178125942590052977834845703985946000346847475715171339478561879514371149556266812259775738410676901560117487019467262455896343973089803824652025916408713358184460282469566054420178975552389086380797077802269338090523273757430475898023174937267276164446566777401179166226104961494122967048738817686890181643471886067905520326425652172847684363113578927611220930671044497478349097425016468200485418081450679864499350834019990978491148078035742464444377463372153270750572320692634372320545342192195658188736634847258804046653265468912312733630151898302160704444009704402596121920671812391693980120674102047670900183641919943325173417044913116974424967740523246140371677344177419774198665398139488853325863968680774959420450750361352040162086143196353676934034075355902972121673083782920690899284292837786138043656334037108818430500925309080121227253850849809999344023881655318296310411989350920943501072291300950413719746090563564049935294399285484163208231184828622790287974382980417272196156901154080681818054416162454075917051631625835325297539806152870456064659506094179154265679245654338579440182675454721985552954477222874071351410381378916412199508521308484274263184460783739763343175321213775119958700681374445451867956505802064046312605652741944724209544343011664092238670721594484910880909294545180587652143224219249411845899388962363035665865381173894433993479033684075436365497964421687072237698720828536428976173653584175265471891179379992434811261999373819851937748847430498133794579105279705350660245454794659671664272115201767382306664857981443404256203385081035633888403482237328712420319093878993998261129178159741734218384769567199178831169090205208660610920308682554672056738022605387095240295107865097526572129327843029867601824572667584057165991886794145194510589702565771900140266138816682363696165064436646874263977287198470816505340790670963785635539673763876547953694649161152221295027345673338350216100602156108314897173391118038874972353303226012407608711321233286461746720305535106451479100446079919928849236900032839408894683409286270152252768140012475490052137539761680322473426832691748160347800072508362206601360444527771056128054723512096350457336678860390261169440610944699107127793883080949092423067400719943001662484634794173159985322187531017317839141106988931460433894664713545696345910871698300911538696853506385123326491242233521120044648531732418224376613491718473760636816604170111846297171921086632213715046415640020954325119598283704768139945502952485592639420589583062445797674982191442227715039252996326320854679561831166865789387924246195898893611830149727229231530506806176640774817123621209505955924845365967560807186026503368252580856524201182399789627596090064008123102598999245585984542426412073659134798345849202408919586683701286265102931335750537382432972215251917572081241867627069322036918849656038485181034507143738421109880626071354727264406085279631861722374749356767762656040693311863776899369234020558497249960454312738964999845820813989869020207603607543779042029772065115816615022440951973615779762446536535450071029856600398884355221458873142437529476263304684104063232339346846926621443604438660674080048387881655898600974659112018777977823594514111528541238251457501802871603130851964565024785938502429467482134603216729835236670799556374528822804214988109429177670012342034098346700419221401212914373532285688400078881329957044152506482775576579073468275393405320255768028131925869274220898185077632703599740192914228642784685815521130815896020047279414633367708680265893885706957282847737285102788162026613590316552802691385748595138500261493745539151188469563217266733032156599089575607853726060357641202155640523243339308586463136697199845691696219221771775901815459943116672165942403498379667412523324705248508852008862017473130618344153508349710031728734841512222489398256766121854348784881725856828175681641837466874487893469127014777714091459333886790134439495062871332970719955177806130197970122719330070480204123143612087571026095816252763086902633152620741119413171852225038687395905067674989600234730131967895368197997788037800728937412682633925694942178077557307447487483833151876137135288801646715293318227287937023489699942191878182848938629412479761262561056621827070200575746565919837606141698634977873948925205586794559924014822304227602666244484776404966444235910474118287642134640685141632794253026891460422771971184684850934670282923989224081383077378285507321734648632922819390444019003140028465477127074944613211479978895873842842688734636357625308274955914588518708345762374577818643768774158585413062703798334742648875784050430944910163812059508186689406571479315190348365133850888085834604430647032119153718851083435824129687445908894027075067888851585143218136529191138776541224379274524047487501294799681694427738048653634488064042521218691219487674733689560066211828223353272689231703125268628516070580471569136077634057400675602379184819424915323641127348600808239719983686442484084232225500244247445343526362212495546079062024511507166807081566385252993956019355603305612531026990314319046969827589136756517399610858576400380417856112196536664640488852731349448261645134089861829684760492799249721484821233887366415093786324878720953282582849687689946945814385540781911523142881041341778048657525232222929680473952646055848482334645837685688220161778207007461569415168118053984191540526458267839353386921975874804877192567215565428575797848509546975789265309917995061453147239905854904633295216026476737182972592521240131961753998513932193248503294016507162678533703254460416566286805190959962818380034295196255502754586686087149622798307836811559704285048056281921311194407444289644493612876329802363519438488628682008520847176731137719973705179581419411218648472753900402770416609871510806541895119166135753381799967335945237793599292432655066420722844852650369444070739041395571774759431908947354414907887908144172896106793577005458500401468027770456914884190440207550930771981788764987184920106756949756820745065259141266202361576342993178011666895464371149415774540688000857917596128880865148411857467163543131460444470587190803993192738963301744052183610818865474449304555752479459167226014668213911527374702049041576084566781434293615010195551541596198875597714424381885192802000204291261153212889803411315117718004520340384408437868361891106593493400220514139755246327072551335653550054439535194807615825806136399732875421447977366975238347456154799888215769387307596798119136454562800223777072078420525012939849760446780269714533187005542397739793270454725348111799764461452574650901094653561158819345297786607487609139053836514264250255333963321113324484835278943007329464149422884326168158930886636605319331355942187130167941182562208735853205308785256127385367606974483293746280411906773572357486712101579097935862250775950530445832125349637361343032854591804954046697856745066089410758250503115126655407779929282926935617926476610820300493138265048931431281489902407710694923664669128939310847196604163322824730709197040695150140189194887772350740430695888644360589891119512158357880902403250229697087779123981231266876971356360500932879872877594100425243882452248223090990190968585251476189479240787790061090292033289230534131418695207529262528086513912877010437688377708670788333283851637989071816719368986190694945163518834826192867728089633866213049860998053229439882754670366338794517022661619934610639580043057464893472077118978308711374952472837233638023423057761986624865206257249880213398320275333227216125986614888407522686864236473346253419188080375659418542787295748651140716482056832488898684099764242625335188171027065502055425615621116895907962712165292399395944117942914063803119683444035478788214584682794966939002454312834210243950204723993688246029206967741488546862802940932258747381405579196395633864855079132257344084613492746512994969078646563516553707177840910433703424958503193661219723463493349827447385950498664893668308383826604712248991015270382479389220903984232184375642612587263016755831094557509108178299812053094316384330377133095130464758559589398585711224572117826269716217327993392220427760216761465395193389571807119644845574648092852233329602123732355459539050071396120500562333335819873435727964537829989517212086863174352957210040152784821793784255364074041373592681045861766285243710738204823854151836381116682553520991785962831870907929471101068677475171912060829656031656950459133538709952540292709188665634474367675442464925838486557018284283370425938663973357252473333864166550755599336692948035442038543514441214726658307864074061871734997709065130065476034414266953216250862749301993273867921367225489843769556389180090477032733269866166692995276089240985791248770620139460615231528935223111430736285860277562249296717328837089811872720520417854184937381854057373848392091190550813734518292412106219560517046254124840691737547110254118439215338014536850668006436492797747163658274183135552796786256304461377081223054532174426339242445465100190834745702393811540511931222503505140257892094078618374111396000431367532952512795089006232960306458492850434123835143403537575229967715162557091342701125472817839391852838348498126970158624120397959859284234391027376286921223415693933022799948217964906952762671386616333754235674594657797641843240098601831516645944517375350715488709506304018330777228514644388101263172320979149624172329877564766823605712899064242733673812907094060238862557216562417030399006556086181043505610045532569164414642672484296546283495518754427276869591892134814534092053371545951249011801186082433757882771991939440177901158203628703383441592374156452362089670648949924125859495892579058772283739881808502602311734938819952868783756893993232837208224587544051887064217105071021228869561426032626643371453521886549861473106755315904613914723852028444734935753708764319718552649427841254891834569841307498568277614150593994562910610003113103072010747755711439142791858229293960737334939008997453643821228530784589637824150099881111291178829800482449983997734162872894593752313190670121208538550291889387855735669518692180754435710271118206603847847341136095130678937904836693381256931401939488743386964825029720269880918230444549993265019773643093599858873390834062566049864990365469128226614724621067098944737234500726685309260187083928096367816727361958448224692897367180278671849542564625803247874040757230597771537867539250833080898905393513372636793967034927098993216671256778939217773246219216605047533921979377422110709067268627629823714775100015256387205782944040128959722947894009602824739405341602213629177945087869403509943669937651364025561057701294435621363718436416726631352836495939729959615558017528079675864645758516815200859814311026916528963657105220737594696468057922208379600417526319329178004751816127433000603393969923448854137751035050532972803335816561615930310957961403513037991228641007788171522437617986034304725103039383766236920028950346469181708797925248603899519055022767948292933980107819368630662654200433194415215085286842118501609361673780591560018814337893307244454943130546465060720449146984233911517223517320332795102642866554360241872057074315573557093201235940939175492375622047011679299990631236813477620287329086560015555784582782321684035360159861816951309749190194802182983003005728206291949403497927997880351020619954261705844658613871493610746773629166910772989962730967863622997007592294303238510947515705357375333091305735389935357399542974537494707398295761910414943874710487141436379633649471855594442087883242062871770831518475981883682429871825645855439725893541248803852787169349181960734864430864897621089498024741018205024835627955260949023390318818508815656922947680685334742075961357766684945168066245108644083049331566284545893267823446527401967921906404869733107748071135727406916468616960097926909863535967494840683920383422244915381575233333551578102383661382233177956237472481665642942364354908742389485540235916142031557218111566757223409947311848864484522778212547127264454583973391825400251036053985574694089000510129045402865259314689539347962357138793593638171353391055406970901140652814006224303272922089669388525580195616419762617591549573456469126747295834324971155943278978517833262593901850372556000904341995963659427205088165007325291854667850991004146801357972007181689089933663991617991971751800844930897572346626336308276618602037110177064367421649666034322765888337633275409545215024257534536192319411523238680919207302263128819758666226817705998226667941113199805383339552150906502963596282276104930256906580247162127675585387176234935862514426266582045919853002553928230439172030175307982769093069639025923809148494356830591172914096773635530479137612186259381351286915844627915730856779500658146922226663098640844020263665033418637071434878902533443260976741299032252532107251515715206849906218884499872101298046944338068204525206599363234944129353607573406717390381266980750409204081029014432348456759818053153312533586162705761956093984763414384497978487449746655087689795985753172849989299574351777615323413018520003910623791085650961982757794948222289871048471332385618754013004542542029843759925356250757625681178633718908174224731358276153009255137974352907552519635939735401802344589126243866938882297458732552865789561523663082159817236262843573178481518222508652623875315701683082711412811375761591339407750639085556546137713355776678834798629973881417403349193347485044141143580798108063478687131035621389810653334522977305256032657591281342852296016818451774190803062760077914629914715952671886255059076125206608440393192607396841860622527406783843244961804895454713179187624427536470798016225850073180767846323083315978127180350619591345348736937743706566984468658836520415327677941442936660627763381443246879452679359375033735406151840089435465097373129651284584656567522929099306105013386938174149168121201238378325815826527412505760304936956717990603413323392814164290129594039885481446180251284822985416719807804218995100029456983773141045929759690109756611972551521157072223225510274513125112455509416271165468551177985528691837365094319048414877256478592342744651672303856023494900873306394910064347421694480765476295325238153836989360890891642417688241226378143838200531174521861036532426814729104633970193637023283763313607491801565847808589901045173453712749204879455339917496840042337991135602091424435421150666017861656291019488274377955232653405914165053925514311436103079412727311554052443098224197995418212098735009518630631947060538846216068748059721835362862143841246049555986535648077766886806861633497776300842647669997501003953691285324020286031641515408372548292467709252512243706653697168483712164662867496293958770763205979482194459634452525692187942614436428809227882126484558740781543082016906813285037587992604066407974857278180823320728994277769387869330864264352501758727567673858414597216741954303003542938499021317705953347324681425177313047846965604113556259531568777012276825460563098739562568472429621525670396422477196243981713716250322032156044053283011157466437589213983768668463141407284256154194726581119479806088615745522367113251457891707960866507487039468097708388120383481423935892424511847045950501123693773414041564994376695680837106196624634996934269006543530453887293356948089355203720910087580704997650351091376983944184597549958165188669169961758808170237500074074853519205342356765085294259245905798778319022366792033989789668185017523257550004673116239508040049301715666258405739387718986338174737582806355096438768815173628441766741083017824007520272573741406310343871367745013171789390974970974913219041446564578491901734809590680587245542974777014564058638768500853325971305731176910931955776171004642404850040308976284544969287632458363086130734769640830755397607089532111853772636441355263199939135102429443077403105055901090539532035167288891403591121232259055361374082497876232996918678627097926288662960809042298688377595437436786732731256030671412121985261360837862878547762098939386134880572440773601651408618565390663423751695578413040432307431641633282426471582419195758301034546243239551566014407371271561591852627038744314118561321896642643197833113453865283960238706550168506241218927575690664789307954300438639320344677799581944107284818213569870782817381997337522992432603978940736691041949689843749449126901488581335410299216383615685866873303669305246076035962292126695500433342511146737697719207954646542844577550775357220024179798523386203120063351060226444354064894825988908707733023757372241700956867505758988895994302480454148375443613015905243506491370152249201950666276504645081002251793813506145137425853326884791176074237514604971175898353746033493217937079204746339802643832757723142695341902847532399115780223087998631972726832238643142634860739462902132684151937991874542282614911954422710273025424393345331834188600216289806823160930810789477255153005221037482449472696811917981436658352078491940398120383355123472552805847355455752666471809401317814298201342859375456690583418804259299029319186100495822023988947602642117519309755776704265332583193972346291103509827337018818752111359892340342298913512182237555834470764727577161556326780364683784028456669404515146431960105969062340480867789294753250380512275172086172001953600627458845041010489287087226628525228127828894693852579277487190036910548870163089240813982430195245911561274319034208414571043024608317813248298969785084784854890323112674233108687403733730915353274578103668552148573713096908918137389842491539272680042796513831882174221672330059553634045128388991921110251808730790048164456053962152066477210521937810621669321902016862830764205269815393133835422281033846105411698412751041550964115631446110727008716662222829595030475492132038481923294472542951077308923087470239269655480603904931218077765257238366209557673204119220179373045273364470153276644844350723600476199423985579741635036088743365557432853155634804604609575773627973787005154883683172880365392029673889266411032642115881223698938532827352702620561150793394562273205047923546061149742804565773350855353769542973187476487865594889079471924826132456866921303264378931421219424365719459778755212522691463178927082424601516180369140808215635047836323201684749332207336699053568186080026947301732314690755783834986332410640177838037621193229179983519467910447180569140694826558967485327897894648008355151213772577977701840929683530122762850872626138023880118150301487480779268379423504385533827899762816861402256864717380617247697529421735861822130299745992535957192201471592724025221203909468455744581235728649460635704700498021502781566170772029312850013003006172875362351367781300356531722620001397988940531005259566309600642937112240863870538917820962042389486079421902261518640499842412031643970425966816590002063168781625984016616999842459381596773734998642421061948411439710376025602385213196524578703829237393913568200810245177688042946513398215458671061079047761321707523717141601397577220363853164366582568272617916290576181181682494916342646527288670272911799157039644613027910532801205794434422541063746769066884243425394938567038324128214494910476902582262378499263822910906931168259377854719761918291054533792215968605817878059283741369477933804953420631437654228902304222587078471022787318342782210007841388060907552280847767302476673352060847654167458675019470610937812244236194963989634614487494111438250830614234767461495187131740885354469236534354124705110941352730139702025144922126410815625807012826090043207917889910097971146423412469551309001506629015075929605902064919957409260429398871517035656799444451901509070907738502028291180869744414180924185381322721813511874637274805730353824532124184427606594602496989851195496288364071325909261755816535412692224195048952186366926431999809668519366724898081445421128111587263159913675643882118556890804517366259786665525560048876357620437043266582897826547568207578307243726929279479341209149874717112658582819788017036601866247302332344125764851629656436344821591323642519316632897717812605027836333346416793934076611113101898535969087953259462453454075606275803709386078194772492502428264457801457374428481985893363294453822377206751690881595970502113520911283146896668729961640114707153865094956516744041290660313456575371794815808637393962965234121131222626690695509948343243103523887448679608584313252012616704434356325858024166866558958074616726981652699992234037953606902035224684873331493418812361617117628505296664178659126210602739770318663089777947594166064162038071789343040849612672394593204552238643220789469108949620020598819764889647422519208383870417696481634250505466245937363727658699830470183753953144605407150820941171533700987014222925240776311151060275594405865468406699155669955036649695495299027032266114187973781164119569189225552439507303122665877833802169453687659782695164582008701728239042854850928522465964928494152099646843223699814664861399789920592570394125706946469070107330107965608434683382078514606329805229178291328334943723904088483507231513701286059337507278668658583820371882051110733811632616751101201846606496300766619383314178250295539699957578387756646289824328447576944609815334180169171154253314510334066871481822805861957758527933954481906487366489855326198538249359354254613741659368032141368980232809015951574986618975348047008016699381995790401668515765386437860816352106451744072325465821781689610252290023778442798762646521234170183353984049688055666322414551781506866252497200122016714593022542521900469798525823637564854592934067707595174365928960886299997539732273423121420872540636194362170386559879949132220807679823661897549552694732082189224312788569832753812764841763569535799256020471841145159672854120495374336323731246675642480112662789811999269329659552888339162910347393388236639744411343048755691185157801793421146791153403074105533417869789057705078321877805421363228936463300310175737029671109342986490212051583921059584881397726786924047087766558326495959169972172562555190991445617652901511566522319549265474015528185441368324937823800738512176088659219367207376201340019104608150324165183299115313430596641570899760601426235056820688400776380295548909296125354185101211704470445542965460031731439194283679080916146055409670584343007990704355133853403698160624714781201123660842736871267314611653741079998175051619853484174061695341876750903847901028548906816258393878784298494837389674433672098141982667953863979773236881437883451241911184450066110047093000372055374618387923256577485448996550322963970997454207017740645072668070927208074846196652026918878270198102037106403756928670307610837395943859673160471363767679061816118664460230938048643278251684146082376813097091103525133942688451972085906442689668858871098524943831574527345686818532117058161422008453637764678612702750187723547002364981416539039261861210344373380787736915373630864604999029506940398782727822358457811649019865009455617663701874461354705555261602362471637003592496385291967315272918592874521149163229269536641609694205016607452723413805973704165937738563591528938618692983044772955626165767505168028871141491869862248770524253472791960008762137797692074471875693604455835265946550438909871998061712960566586058303066286562724572012498540393891912244154935779517239749905672133765115520125514371871237371255650328741335993010814973101357558300036534354876626591505850368987088951459040208534694478179571185276893554634722663628981620591401627142892163192921138730406746013270377866362031403755867133950640234833350225210754009249767744194378376981702488408679710412513193641527471375128532500043638101154064700570126802611330859494768804592185725756184736838342230115203254761176704364010189571096693108206794667247571202914705727334254975024838810316203507058771987735697352322829243282907882719586062322568306557504799780535871321894140934458315229004291160648558747717837590800740047416277439635837488600492596971020991480062175830392760785786193148016006749128797766488364954105728243231209316354710703126562024834145254037862216683164237724255460571964679357935510256928814882387097199888197757730645392667608326514170632045105824112243029169224805100835088075519151986833580181489582761932386056273459166241754041000893243461382854545422174173592125394053480441443095430827826312438766536518053799486809926323320882249644144479944509630559892127460338705371767488140830689965985379259670603148401195033774707382705092568995755392941475458741559886120246566066973676839928215312228162846640556294154929074708701647316821495289493376263576053852765090234460227760371215334067499063101181155592553220280851336633168135513884548816308923032980098129404846004524844612778835094637590607844310679352055442513466684436553430798664956929336277670845627728055979724095272462990209465733480582897907928615647244818044720701741719520911160099943970767626950756113363570571577556709387701887110542387014326026168629641734846884541116633922969770159728827777244403774261241127800252904611178642255657847377311436908780789628791607300889212477370208511959197447352733969545991444344379880200049753313438549928633011393193268080979795777843087359455600709341240195868912197082346973539480107271308115264241242872872135420253793894278384335766559633596802325395084718195110063289098729995715063240929987437541927963912513534737619943875432570661545885148518121671593550342311182250348589241730182307149864189553090950717306442717048097734005918320925033639355395694570306616521370775726893483435350493122999510692713786518045620480209156969098947862954349404304530514240902660485012573315802691836065813981471321510684015150640844184128136803025721113610955320430733976178233816846268821786439207081823459519510419091276677101741164228959339208755231345692217706649832931091949370750758083126369811612012375490642118965586870942908662766567881734370003254572454757486359351098059979768056759079523582160990982438343486690804062352648246633165774287481959160087935825697328040718826556505372638291359313561079220592702828725508310162241063188899741608922867696975217222521048080730211963276634546315833359998553162564063149780727379071714515540048622165777135548157272854396535661566369785225036310712864297828634652456851760709901170979955115259494273446327490482995137081506185667701342100958144585789918865603744427376194660050194857434390154005279307222468284287506617113228146657106955770557234401414304119997735395036262750752791061663053953367063392850858789621540736418510535688732916707163568459058068220466801436883849568410482579086600959930027450442317729675399507513917885676839445706678195599910767502679697546992926796241927645737865711309503194054452101539114034215311650458579051075543214250212564559316797947080728196135157199841851572229723751368516845291058768656652756802552554417533955847433867205327059423238788705044089538143840458716560085454307361119565631849164751769478823329314391683313621949026868861590598333845917686437780039237359747541622784567200789582781323481822406541424719068996252879577631817553581285218804011634383977419891344434807097556405497711954942593868959495811820560212447784486445131507126463357230393377283475904535465922707256228336282110652134414800515877152909846071171148177067066514725985513944717954736237998154141041068041110328472438492655592700626711964459748048527907524006573107485671627019298536085341503272493054727339875649709560304113328484540019961730262453839374230261316668912046220632278108592117888570641433938301160394236032310336328462300302963615670647452188598637035591133379017896069140298132895615778017245031824751314962411890059518103381881510154101142230536172751478667705671152726096479709014986102964308763812285017912455227543772014869384633510403681088895442603077502786132044103234298845935406072447913682773068493360336330795879181187112890700126822985004926867712013803082632786324739369544483646323966489372214683119058760695897028116567638097664640930366908650028178429747968030041806036075458557698880289980922563419222056675974828528236398880095101556112239540555655710879468695465466196656443722624756263449681401050020630681989768240706389732080541952402382386485791009629566709378222807520330632885891677291734945235226988419488300138598768479804136291683705049789055977564967969843177706295311399508952558275581181863702923007600323251476297273137999334669835664632671021899709882580935947560838752510334170014684826169177871372629747327144986062537744577898163968395788735508535216278377535654834209353393762223303141745333759198240655857744347417913177211850494341716647957340249804989011223382917432694328753509319698065274579075768429334634021426473517010299198315026555931155869787430778258783406859187278517165459881343695556582507396757579362051820941800004509759181837167604006719415144989631374379336378387375948748551804781761128060068171736575544829071955219460695352666913934308441092317804456737919259144069045419681196008901447698257253214389024658220172601157474107986085788074832096928043622698994961976722486778438777347442093750109366595017928097413802509029488534713527959850724595956449097274258479575262319372063101281912278415146567925426409958140705370389305094659910518372867204346054171252617129343832154339539623574674401599954214732082837659296622606234154523027605470513048136538298468492917557185678683764204602862266679302961773698767492068428010259935720226581104163913552340569285381503354076949900726004025915741661549899533782689638920452444041228914010438901418855493176884454476579345922512827954089864182390915901740028053081922883514182593673982349070919348238414809293372294382239363659290793785439301140430923754621607105291573971482931741645846784788464902424862712022187530689982413715813165831655666040388942387204241745360504920535143966812214469796347417894975096684983535811924338393760273976565307004833928176716435772610603182910836453037373105285164870312772461598545847433697367464395593211041431251137745334833128013149178452061308290650797308283022187650531728193451964487113575489707894486810358401744744256890955764554202678272163159834061475042864591176751759561364034252290222293904262173253041938941048042838968944809210764606523604125141020783943753196954980411818430457088895530312722925932766857195441008128980238133620565678463624130700171857011743213515412178694451155589549379812446672135989131704498629792925473892108293814450313718750349560098566253534845223620749682439132813110389357042378269072804696225108261426584625667590008517227359205739893798454602054137574604434940658446053931295240950706860244327249375586079534311266405568943268057731660295506912931285837004539836265301941474208261593619299388415530260016555716270262882036354291840514648419385666089995364570702235328009353459611750771093479631479869261785793138293603229915904621598508369119817499023520755622878099350863389198029344160662193772157809114218833384293715352003495500785565132888247832136544573108645373318138757390141010383602253886742454270259069510338663086819209193522625955047966181670213799876940918914317226090574954963244583345559314730172431720317300620879908932989032247507670952029031320078473491670466591497722263486635533456675012016066065540766925388068045959596769311046131725478974884564475292066103532304714275265541132042244417017677800888434977075835554595979469616739274226731908142737256970620809122474492374558801360797209781969819052834622383899215765658259693066994531666506405783727447044884066302999682469557740569370555376167866727487291915008788129351224099279148466522349383770698374459238261383593599389787454413450806803851641833286108014034561077243720282814356350910809413050474000680930953468770805709307416639449313485534399526485310128417899881212265750342831089298917243304237837522274961549619286094149624557418855823459364187719778476808992007587103513433936283031780161416882244305426559570466983766246178304805347517999977132459695962368810571601645088766787990467956003291228031577735200994159983081012331078210645594399506957716454758791711152539472376957963466118073048489822195896252061335071485296048001943665383101509027741088176582397971441436904137815136391023033807990162387721204131707127591401424358158471654276642050050055733726465932699329259988149486550338324531636780595746432763475921152463735753854200103589673501629445835247377651557044118578506941696751059092385887681497447538740830679903879672414411500861771509296899580972215118589809684229523038518807461500146940971794672121991407460419332598725858197933295690292169369479865068993163133740062777215649633877178369514594316617571739049123684127539151519321164583743065013444306840027713371156026982327487048596995085441683689336015145053701931954096135567007163141861186993565647152313365535130744375214549103532952931086040395042225252614344041613880920402889276099546962358380163962709662414511315652870711344113803951284446645167730647471579790033962037989242903664713886240171473144511707494211307423724740574258837986630323499886309854647176959448432319054170246961149014732991421336803009997072205515566017793920281942400130527726073848981314131733715629869800014474755556931004496087863286575009996348361267887253231972214670294436347928091133958164376805345782711622005243664324220240161400867700242883890086324201129708122722832402791435244760270846715674744240253586294360523480009780158956170691601842299487234075526755951301639902592843078615909399722296488656549218411526900189909055039010845574764445621845152058229361648230640154199791209906028483423948611849650868107577241382774918823946608274627247465349564967562767598596292471221179648245743507891149510230924165555664794151614335572962029408495892197538180421411949975227771169419364646279428443473872839984740379305868121814676585391795623751644155723831674047936900348062054913087185724310198270591265313826738835852906345688625696670563710244339597780827401192439378856788553904892448360338308265958601406354357866636512338604911653059282673172608394027991521029678411847587705198597532498925371626170304642064875460240056374253368649809884635462369799500316173418480091184397426441231203096342154625842127057512909671930967028343658003566850608862387510670600394527569984018747979480082037278733832443020746768711119623540908331466935900178896173597873535405096526039861424474296594701040311351613050676632579339176989541292122249568077203367852516519900075506981494231097932279979360145164196472810553696422670587109764926232208194191858671367330455999323494200942983944317370294887049499058283115091292837714517530817526179845780200074957020854309654340234020164150570864030430457710418635021099974054935787526192674091473794577368660762272830504183731511889878456552440917055612642954215712760559797475130199526652981749528406397892477100533804981615742589554253760250765858952978642167712135010901446525578085967775116949012928360035685552891221003847174367925115382573828588620368650135785219300633307146514526744225401329652549892250225682822201021973022240152743802028183874837348517725082798216929979655669972518772158724745195192366378081500763701667061598860121042048383456415548993105440250047262166541366066722141834095730086143097870701699566797443698014055039826032079014777861085904547390240808661672254588184523070225837947861818308494367003579218154775866393322229421766889449539463145305182199843814425196220064919512880421108389565068754790124894592133618370473315374868862964595028157219505618456099011821593455349178286280100312427328527048031050272518458748038954221352822523707495496093492961339947507254482738979850931367416996816149035347059552151432461403827961829450505426172948062858750655602156321306008159738742268584754441104665721556496609049226240910823354833057310613793714328689930950086112761393660505824019435114904976231141661637723438555429555428276763295549669860484562406507691465321381383542372889941736388086328404696033315274403754906543288898682113668494624633050952358969639186903398716508224988777970706867618482936516025099108761899757737114858650486224912370578359590254971185785786519552866445417116236408264004593026236124439113007786591095210168312811539949283790646500992682530179149757816028496992239235960585401786751886614032943918000323116533724200906903010465541078930724658160661666075496071666668560448718078681144802894305358914037948685058313619510390539968026184078422529931344986381675483042327778597369146285651400255801795990703688502515064673630272361496118717754881408698572871302667352097971199053751517236764201046822951903119638174623948751104754628010504740481878185225929682065836332232286881656022918947971447249768460895930345704991023442776534575645986556192433291024615259723187641414804581690980778041635173965867775072693299163246208425097801182389884095029603564704850545725458037619646337086680595910037081438373507288485769500143857945250126557024033796379695448362531423637730996484922896241608718601999446783069709253133906201813821342343075351406645017564899019050379124295063851006215171768050063979445561142221947028477000368484298007176339724160731615375943602377058990625590998894442638787281297079982768032507459842632185455173912953281514098040808331146969438762645582917019401315276676271446882796088266546700627670356486807462039524441473220008345309231659714659390062362276400807427274133596086393331614331688579592335448595963410534994444633200286363633048387027588768810341354072404626414935625867748201399704100391803012084216339369439257526254733327645339320734390004804428001096356085157589233644880898440553053707627732405195014698994712532130068174061828995102537874296050341293448113534717607196150296113991240072853733898276155624781654130662344177591240759962213473679849381718970138417029281492117706830840181955122779219610710676692853375002629771377754138576624971087063193066293970614447253375200773139630755641097802492223353482981462790531006616874137238601235373690758783371300324959956273560057738374150074120873496212972819786673000993120436642139857754437235484232829156856057403267124461110603479488225940943312502879770605049621925855212275212272188593071432873193581587437318706391676722698513360713435674769563613130483257458693655680967585743344971617200430927278610332412064812934037794055168170379768722551177293363021677441621495942768480424517883211047479120581014716192104212591084002924386673344478371174015957683145882087670315640417303054259952629607426563815939493824118838643009706141906199169469217437781523779319356396200175346688927279554082949339673742873285768092560841601052042386880584236079454845551623587074568480616534445139940624179953383120785144231120956936256198376079709477619569578785517655651079084863057598189982460307272738565079057565380310535126084313806926299086989422584800207444539933897041716432961867688426967620627325188104949534575685025186394358249373563786575601202250940923207455784267000940716375928641718711373075869336841093603008372577010656103725669502920266027439124410027005085319385620986820597219931923400164861033742931700849392886603247003730453333961644052788906081043591667347827815968049188284817487783070068001364568005333117079755866121573268187832573349332920452977522752857629132467907029208527769328279819502769514246035981824131037215516152606289014969940953350046714143852715099728560271690000928312237108077860194741375712920969185978809512854157975456189808633391730750458740704607056784739020605570896643795898619774067571947937880973175489966923131345968761151119959315405570676274574256489928476260829229608917360017858146630742225063359127239929151925498407414186468394737447622533670564642935950627980274628063875481122945560744629354129072038282089731984924585184079614794216333809315058079091241223318151826213371853096902771148323663737856301457591757902818395039359593889197163849820219114531548656379784389933428498715709388615276494192900109781241770150363124909855244757851483985861483330825157485460165391861021589879952908820021013837327786027956888259958249977307661432639884554796489792762110933710611204458071906648343348857326669870658085589048278260912192397003210339152326235266356292015389479345925892959202054137349694003850844195397699494918809642575948135766099491009405332521093506304934149783686363014488516814960897909800358037647745672314727118014421773539139746950235190691981905287858241154958857023448195785350606578347235428350954999220205958245722967587750720800081734732690212838456610194142314225713957534837707948505339028389211137674226325671183709929642927832405231917520785809245619289758218812782850624173179358310626339065127705099244751352358648001952148069327844870468095739201687172618827075278719850242539985240774997155474528019370305880974978439963381687511366989964401083708962205761830123139874722386341414968715163369675972381986885708839106236671581800952786144678511743386319643804219568784332036891357479053935897544229683007435113487967015105395652136038941924646058173876954287114211242213156193547558026930816234716522724650008616273345592669381318545393067580061418579694440217018900661414874084106439469687975193234362274672200881950881287492666760531522717574215524591852808160492995588972864912419390748428217143111050591078893399478044514753579596425950325535083506820094918482148207374016908052832280486270532689853903021227768808606463786306142238103259510748573011188590945283909299388478276828136606613967635419977054440342327954174929597033933125065698060083078297225614851314409980852807384798578253451346340095923113503031124582832324203411301806672135957987002875873531507260811653250259199367512668910403328622097078114131816454567523768740113380682826995068366259745454628124672528378058504978953748316818212827575940772540694258392420086539437225219850377860838706739082120607232023503467848505708967108550749063546064331794522707558166735446466938877645707313669441518292188211564839074535779563653782586666079737348613651681977813012589881650047815585891359415350710229746243022051659753122590040667781932994749957751352975506421331563532339728450015205316078684283837183600025621298697291525831412615873811463974390977622268457286664225029048423826734113206478391440601783232640606805242656541478766859522797141678959664547460157733307388615388037052825967834331770907984170291959656422660361506151498842839962639012064073206657420063659861331549741691703568983022792036170828670570265982536777075746778854566365243065736768041062393008929100604758436704705854558838857529164203838918575795507916397798593174330469220259955264213292502660846058100997677190688952851289252393241113120718141752177771272170806004719028973403157061184883882306642127666966381734956397414403985640485669745438888474075345323472233311770471249557647086616441594477443947758438261668651281020495057487663718253796426725612934981350683699202282160661126729654053477006897162591870957300725958955995164103360178580978403765806127712148415786711995451092339894907377800951266291758193996251846833304134939316749961636962848076823533348259474577732382903803126083374792599746682310534269702088375536039056630300537324185523835992987909366957000860857231246535229543702226276917127732913253639506779527940633067797788297170763185329297518631405717834471250517907681456877856139584186951349733114095715857329253122459821754489546895014567716464199640593146106994316134158885208584328409066168497834783462885368155989783280605397050482894307573995347109788636382648002293726429631340514473623538522608470658249032402165854217640407561388612947272771169755191426509001077690193556810913231760914549890273183078358765630834869716591883337573836495941299881834928170453202132062050899532145376199797772537118690217018334350375832188256868749219794221520979483483772592239671517409300346808970642841438852692850006302534588308664456473386396211778952328709189981422027452063799293935113534326214521005242527514506639731257417387526847475424249293092637186350897829617372614406478251470946404712304217152882287065913134086675198355070445191890404143499307908845458485067634296100611471967247704799957695329736094635634128566386988239734571045583774633990068807596757261095848090452924651281513659483505225929670417054889031321940380158515106849228847062192619075729412239186720985367018777418036990427490956539292714147093057080595136183396800657124613480477049647825927350282608173326950877663939656457802425797161297004829153483443867090799248826190786474303039574481087920036879368371428217436920417390530432699229717835803025420047467553976426065745054194247083830088806907434227950243820876428687143202907492495027600027500384290626655465601630783666186944035331604982366906050145195939174041533573892083716379404122536084830407058607186388660650428475260621630993242257906910375000526293163056390991090753470839783447141623962763596430464042581803048153136563788831155130233673479678654240964298928728122150860222819894796150676813752677377828952004370244732551630949008533156013798094418955366252213062362809753795974874603991551092295487594897087799368498530885770294275040989615836746000456216183671678010839063333630529210687901732289996987658909093762515024925863935987006818343298726351692392790683035446328328164438020788048099700390122080609740099545952716722407392462470024975888949463621813577258812926617623308837143279983561681977736390450714137107389225388088437621027584577664807495295525216508820238644800948592740041281369078457613117622312683750517090354672294508946040070280007596740828340510337187640970118554294339108506046752083938371802294167784157250161683099154493427134319704678843222884441923792209286782302267741283813021322219716923957526299367604858620803220076538593693509547689783158818212456384975731386789172484238099259346735025693960199086325190218894860829943924128411434545873528720001914079224467680850521280860616792749041243133501207482208594005300753430828449471885559603886944204047439935491559231885337676715027127288530307125696421274100266744504184069213669073129128920065351208101479410419282256748983361176896247631621427269098859802609678092155149537603430475261355814699290875725346160106385086054886170979002855751760957511510913560186460454471193624719128105041412943706814530414559892847142138263301597057375202708205989379660466577166030439623417952503231710886649430922052237967355294377956839297559791632936178567558982458666608356363211216867572308282088263566325461391800730072086613009081460403998028813484195302492958750939623561912932284730293307016950164653438324764949849377799713304036638056383300981578036867521255880802165057515812769850740743264865100163242290942349627832805971583684474555546360110899279100041144610780070820506976794991620295686709906979647038711312620768840388143071905634299133703945597641071290510159400985393495646785893955896151179489732130557254945893739709173814593513395480908324551360989251831982819167197656869948167714537104443946084383740955437224672377780893817400168511210305853585923537055320722885954230615030147640889753172899226011938247000161970773523121213877598721439749652282573632158657220808487020701848406248045415640973224245425084744757125951934744073089376990441781414916521191163441456815709865734702287835994429870119290850384664215429887942090483271582296822206997385577114549234679095518720287047379478143526908080589232702738925698625917381185918923960625694301728101661221422217691355475675738122919563010623444512317564040259757781882011770865732360841662096980061493167068976391233225786492283335520481620327366659245332668583579919924341585826389271028239723474525954673519310019033475599346247029898806597486944193450367156633386664413570595260079099124125085353121911751816134702076394688849260770240686003600341742958099784238037124434779436756822398518988630661426910468576846731569926572865340577136411214647911410798333959408932611195940565174297201484718519793204570212224415003452261251103407243831917196825476910521882540307325921662827972008159081137479286409491818536693581356940507481850684029670258701540874279322550388170412646036675982706994386086933274104085889457277201047477146547753521186473342216447691467774199050272627819448950736177800626438716859324432877780692661179150485279823132847595331923457440106207658539320330792919228378294130502073726796108908418497891221629561560677295437589069120136964235490702705635850287407130632908972557754816571550150943685894918531632092662598566640316505517487741762894616284917309967616856938090792406623481609302875780842161258591259517537650314152316941547419802217842290429987727870089946816698949141834493793602567745865936816406934902322089157008140189871339295923951079111980265638603966108568632531225563799181818938067281545298710633519518740437510932702831690290428436961886299112439107149212868235171963242097182571124349437614172617676305004818747702927279749229835077702274940521363388412182646818654146859524840415906639128920511760073705767573637922217812504121619908621838345034311716662023955597223657947973581260526392952363612714756652619806512821141631396491373595942384578533371548663976543767797890560816092694406526445679745146743829578101121362972009533540012297296289886735669393052767511159112223831152371350692702818747775989016636280951392077251642604359534453618898620232636448066912910588657042762213488457142742412189322707789969319858405493606904089565838155994908686336384599497881999485586528364357885543060183269959985712738445775692160357528401940137080687591367680482796840221777505822031321324710939646343087089981999631986008694105821812968985526676130635821850507534442911279820111351970390515807559861933784975733024291782395742953149543583745866173182282137553328988353161679404095156795961382955681541493373541494806621869789347634906362501103371874827749780262560823274058851084480502182227981372556439886810589393457863981640465583070680133387349174324507183009539177075348614884086535694424133960674884586550420117452232227601885648867373857178902502380394125832194027810509946386721611174452280144099031545806546974468357868186952599445339713525334352618864032352709279220573314951075964062538489232238944297768041614418631209120438013835819994571471445472993536702157104680245238302429455706520581326409377861327996806881877737750645781479021413778067306888374783103871239002660657208034173122538157624411187323009000464309795501271808896294560034572808573964914953937167921637909817891488352138898195310706455555196384074619302958406071519869739183037052604221489159181816341381717319599295120252511975899454709135250844151642988643918142422623857576922450255390999799976058584868375739920229674270935841997526312301330750559134100784169268321468194025867612664980993850993924406016984284546547478596877617452670845735533202319805506431069555113662274112568043086289017186269693969667328993044182008419161944843485293776699686011956350967109304599698058204150844618136778613249045108985512961137034101099241035494600295662260447430273198060568103216857235124237912260406202710976407565922480625770932431116734158758123027692385451271850388888614321190508868800676727983295363138875081143826939498127271517919465495665536161728487401532613603809248631336041697105713829312533193007108406922221692127017590189873047268987916276539933835606683885965003250482657607332884533303461050578176964904408652903374791275813046216566648266084169453532989776821108653084041143137216419194160865880539451010978483070140245839997824246917094423126329521976235880784673809624738973039019212339589421250456927592211510757262647779008131313836990392616201037845488260402109170190470402532711860684171113729730934807667715465732706758815876382109114061395084083396407756226840527482281611854448442107242359533395078314397301669040405424498676266086524226619773694972570787124818344441075078004987732841092842219631533370250141947835449753318618448663004262684012582489383355011567211489738352953531267473360055086051505280719834175940754965400054292887880759586245904524454991379617759828584475295562245190552548195880985075732607847379845500043279120892967056159270404759189004822744894710882164638131932631109484845171570203034408002789997012294600820768248342774016845469046702291584595114354120480475780658002657396354559039755647713607920148927040769901022384610202422559350190873157491757663921772411151173447722808162762314760436586674928604418207774001939392982363900930509628494992940014151731619065513653950358289482424467435340244426441497298633530756371309946626558065199827116483120680258576329574345703171601958311776733401541755144234672868952397986310921274653292417682224909578342688367842117534040967940427557520809062338023304264040325660273980101480303074277349776788066981747300883385974231545278112183606093962929055985323963219714379268630226145670559530184452124350293219512505455635791458985575220096579542558352489343909513575404556017898412074509865198147634839127915291872621494939162181357478286049738724869655569646379693828543527113731219590749578000729628895290345618678945008795554165939267604937300559870993780300822154927842518021764541520721477745477014679164525985689706600042410065922681350084407734644885549744478565851555885709223544157092055943196539785201247005966121590863586879784831912201768050536820807408591776703881844657347123099054761807849571963024241995215342082111149671517830075533257654014311103737384275024663528426954669129530601850273624620236169259776163531627003675942008065050024914186617277727088489487914261717559833896900853904959027707995299202116859591352514764141321298944399110357380824938532550349292231091186546436003560796493527859054190361537117861677535019375234780526705074891261123877630613616570695332397684013635939154986828538202149999989411439076558683941266056003903820275129601378763104919413913683305871733870583590974756649723004073235388636865993064098943698197573410180149822062350939350514082960543401875100870104243372825911559044127317907653049335509820413290940214533972752693706353144873096173013792306553970037508376528716403278345913968192250120585397313426916229131549082266511703626485416155465310470961471623738862149250954998160115369432120345374814698815376267168892955041779108397966111944607393253399555845398878993063474199225725534682280995615447423793476344107922470338580911130767913509182852210237774139323561710996490837187366370354058789217476335431222852097590640245090078103743018020038906787844316677275751770348415748080639689131194685838195114192368537158893916205872269683084309663904058476950569613091916102361525159034362384092941312138141576897028465257848300745393855465158786183877614821058915691076162425248413880944299434306095374688381466262728862183759250358479405607224371721945811224655268872177140480071357024291536027574996840068483835363824697889280609131570836092802289815639257158885135790408544750957352938675275762980529291615189198318598909327431749545147306889758139211861138449719143781880988410984988863478629716516412628565587676432588826076900035777176041683054112328532497712359262873490101725677572134749041506389495551044883523660053694777606091446024783693005087081059563394032981249418311285541590847052925715906284788476386151484405411024039659222648640912733690496990762638304072485717136193329914986758675833860270560397697059152491153816338209199392193009530473412781605823505534433407044458533662137081874142724664260382288382453725271712304729502076179694197873275496180069953822369236370161813421981809683035403242102683070798056969977214776327857080478178273072305603660486655320491916833200366232734359783782119281178321971020709617982552887403648930252385324645836332230702739596128563059676965359889214617819414227351769100187610241996551692578487499163389940649834613761692853448924380170423479866243066882369454420468820428956686482845601197877076121000996310813015423227510176941101899721046450592245022081257118712892269144175388168674097050686217421194826207472286931473720208015790640214334837242641075242044912994888232866358546792185135009761174106768137238497668586118062503411906085613948549882108153476931949850477776844229965974060582709015396690722666947065293360391719660004084385437187841744708941708841613597808443516399522260438522229676519273826160886942710635818986497006478550177296985625728670021979989295488744016646448507816862133568396568526157721449465861462029622597491157029268380661994957707367206024859820095019623101025600108463377500567034491285459551618463838880490740993915089310302458956202996753915464525652459112355842147709721949672266353675212752972367928304405480129912628289749119873233728426243865002917633347883091820704201838061292889083535474336521766598657990785262745676645624350083103117570572717684427188402468170419501328344960467879895470616474182341309948130216259275777425433148898550299093063969189889223603760022814065391652278428326562193400292525196422829386977097012853850875811407204403351324800833445720421894959336100111267196497001179063998266979513394793379834476743312445980237730938580727378294428810391272082909572177348419653234643126095866753067191084587246709034043031914452016591868258073810457457885563540072635470371592147538377373120001252170874185523392386162537548212465773155945270934689100395568673662842412792178350275586990915491795698599530043802518840416540036221706934711667108266134837730906307808834742597070770916652631018458772224276531420045802484432665004755376778781317287930945099465159648985933788608115895165339418432882247102519250295814489527658077811985664146926854372864763901025027730855581066008876800262288419445046361770369711361685472675707710280046788169571936405693909173218051988193795771477468359569679841450386706066355693066701049341435392415595677076342478924203331284057473126742219939835368398018531042839715005732198066156359903004743109422526014710891401909933946954836410907136264692564168406619371471128214175682216045917434588366695106654154720215431979894307152582985163819700670705469434316787908236150552760828783061550900594083437202764790562148222545442594065355117629163937387362147775726404563994088856399203705743521558815000932735364566845265412840576673280499902940129401469757989799789091707416369555536026656775847426573132360180559243178377666956829525369615955273872872367418225695678881171841861496537993830737346075457088627137883212829658161991304722062450675624833473447424236810980022316136026257538519742569850208068045047558224356666391784671961646222681222021866094915184664665523367156572793258510711408916343106981381735307098647903042913206921465875917608702990425658856842187899667433755429563282183326911374945867498299941676604910131367647441622524881734718459188511091947121897541141985990988362702402222496181452680567802695875691186715174785418850325242777549183674521420956427454381533205741362827773242757284227216985265992585177062653783742820512851000852124172016879891944059326699248897717824162358298547263386077542621313273548353707799438451472567772751258528267327434664017729653639916661900409145674384356848047393640648832022148906422427462313258844165474122409938178275140586111331608518995359415982977045506600665887044317835340201469608905276033706197913015828059583447832455380312455412869392597563094201417350265130458907846408830719608716461785980246584702557352150990701790662077805014151132383259202879841238444575908620262550093812560790912527263360944347070748297026492373859811196868152552177217744390380122009388914284574841467854805512499179135058396344259138904388363250999182819296959627852858185905430968955517222990506476891831733806781812780482620255860096520122404041722440825072480040159337238292919522375305357202395496956050692689080026378316669151543943090793646949034748088104205877300286228213597868396207368663240882563873747191555638804221769912934234206974423000686435293810350032211178473106728146706106098996442463108599956403217776125313176577357550077943744612321509068910995749860337480245623252110566750855004676541785651451341562298957888253755760721701171320137086359734223637847384944654658574535745480138130473206140720788947295568527955540383803739236185117687809351218555865925973295137693804513698326610930832267966119604950681782253705670476816685959153138726657964557174896035584799281469440769596779355985338752832819965747827934056413537304291276590586479644023573904620832391734719546503078902268611289418907704892213356291131797897325238548786030822969987141498079639653631375383631350575584843286556084712106297865040883529065184942813106235258336859014731971373697182032078528911837337919512002575153132080187262858288172641168574683617470278419632882708671041730377908092762588338191083475872403783332091011394829136679574851175691062393074484507026375354160423674772246393381886195235652714829736436582660039335880247237749708028038583375231529373535090491578224590937590645208870410673122102952154459788045959290069013376520654898525277982416072484168046929359303353372979201757344218645806085235725945396435488571040375908249801358553086286117984090353992427378530676040223561445126474782359132437485512966666536724071444747919419547545094344571209835693201833261746285665989800540221019120334364647987830535361630724811734006678939271382554620339284159831951370125105838365972335625063487952763747516332565336052803366430905646841378642402626276649070061351384085243584451369694670391529459192570699455008772135240641438777832330326777104347920065442315972317085603869460723214027428616978545297760796028867970421710966400295024897986940657397423088188986237416000357109903475692151899490090876332010811435100152914619509901800692818275811713365886573654057176162551401489568410360866268541236234026731637392952740288990712443322081350679561222117314928152789613386053625092909307745063136285222871542085617809188934358157806404606306439225412580347052600100750095772995642222567110210403771655856965370307526906039135861450555269969746312204583502204458677135424195969496350373005825365832453597640151495507630706892514103100765118690690682633898187176161827219064424359955606906578825447716937591548042858963979204458943588628657270228160399373253345400986889811660555438643293724534752421069564558021160495680158168642713832536990139270006384525920786878729558139853699111372146519395953762210595878546256912502497525888854071148872128441135570128122070267342150468616001218141620806020748896371930541369606541879906690725126119409579330200207762719135971010833788697743134921790272760805233156749727834619670265190349273379934597151741010639072115719313562576619820730350307226759129734161128705698734946174928797632308722335124572161843339099875496097047304528472342345159422805499749895824016689361305582377050594630283756529582150210388011810123246291070136565104979657583516744782129093009457037394690251146159230731105257402840688435445569927205430434254461226331004087008566587187156212661497219553103697867876880855123001983730148406658686649419391537701872431788747355569674517087710328001976079093886263248525628153590514377583247062050655001307399066830492152500192522717521468113039147881765318902649477583394972773526799997458848866637297571566010039840545108340274645138396459865750865310299440541033984851688417223980233036978289057624414037307136841978002148320127023729520650282196667571880797703541689862941201212786023281397403986542289260092521822058224750158428569346999741762427177184591722632078988931084181113469581708156878397480283079067735961253387635441315366655810015279003842705383988033448977902196330257890642618160953242195981999133166762970267420593605526945905027543192169683677720367964501560163826262803985755517555551973038105553580963583224265773413652089439156137198169079378695064621073061209361806533735640882591483800979743923967744401309024912748871159491453824819049723679012906192337369216709968234171478427348784782926272011007086626670761436292657560336491761365674995338281538635159359065902885713349854716675537678042766834035381036259048883388234833549884100525382823315753675067804413297908968941676775421468597822106894891575673768094808021033420080569785259687669629073235825136846965334795138697359117399169257277338542849776672619667030647747703703034342945575345186308021309750516864215546727686041637295648080084237868604031184222897885133084111994240700356893622291985106697613593122498626389241410407546820889963090793745786872584033009059865008735129760010163797361534296364103704197144205280104687826617000406889597331025236311826720876150598189261568556688822687048302021644051159439187667287665629265356119449340142250598136011219940555417332724783202622806743221010540369339124502731964521507955499988109924857395523969490586138338144410531012881932204180360917073853636919179240483403093911382395513846234141176705126781484632056021870984167863565368280977310999894187244461131822832832205754109743110187066736898019429104933107723251552249732394477553529522341660853556180453101276715205935574554616830288900519335259625068540531932775079260931993082190327496572007447726097557018352298981488461818095751105800202819146285236996614105812840530888921014143174124905654453121275114185386951931817050358900595184775343173737727058095253505867654214311245592660009871251422458853915024009672276459475178219813599727559286335471058358863958784649331730393307445523445208663302102145913266318336303456777628159615522418766713434153706637600693149108121054612548593853941469535092896934384717161275573732645100491489933522493442782556578173824551792725677695145029399214015235411000264777418663291497589045530139989558628427551670591176193947753149361257793411080309658676230893983042320891771842115722256717622720108120839801128788080846375801576172236909953161607001100620740849233049205861301504567681647961957696327461991771916978778865869967273949732501491664779368365498569622188693994306020123401027994878750209726992225198436805613750324103309909925760000512552932602164657344241100591099316262736383344290018912674490332388829982680060692964869721723714326917668170871634164286572971201914233254141354016710310907210013355801900247995903952526427241275368563417159203025324130923942049254051356536196679035003662351446792821349883453461530802381463347446547303335311252024477141802296526969542639013515466391622338260644924696022032448616316010657371540965030429598260149577871809173649741966564855828173277404562737974759333504583852753438428132011818958391287465185438033360047514926242964217505152502477517700679072584599332113443046797359538062141723732796993125878640385848988440253591729053548725265094849624586255043285701436891007798615067589371444943166095356257473109653746256570782927019404542143988639606685377183405471582349063319600662061489475697164928209326896734146503773816789617548115482802218339839717289718385217571000676290910989479471415225942624374941673184903551469624432146409492957149389921917832625268747296203120210809605215920864478662761441738972470149259278928335987365117129741630239383849430594836616801124411832722910409416708379971970900904549577661218618924373049427344030845574224713916677512060596268779306773333002832524829256532355624243645177920249736144490861151921850479691151338726933322206908561058420301726862762701496114355361941052667042194881136061116024105190778394559214209545545999427667537040264997749723497521808748738343642289515275909863303837553873860860815223947333234192693840406190298714688751922862477576228445190257280675984824837987171180471750025113136343875750723339885981860231828681766787945529005538749494712658542157253120600882007261185378771305981263241140001939951403729712295479709727584028960079985131690591475853954484895830047944471704481769225353209990574649949072166259560995034365372151690562441385193742530325353911445079307760645404811264242808338962665611806077101023963146660497724701369762702389150730908022168699667175084503297190254505457040511400777644071418290705477227787300133635686440317329678671968268242012037564768496732248386708976080881194128271102284694143925525021269496264443709257980934137669784421527202214418093612165217844286072853723485457402160386100105046685048513477962416358997591773054369509023662834128017459004959104664276427301065635345661045216301298326678644516579936247237364601413508620682476649735263871599817819476719846913865225608020751714266824216119746492249562738321793192291572673029970296677185756133017452945140593104213658417322979423869306322402067333948992247245266531618502518109176086889514218654337854778427482240196826054444778846124765181598052776947192874722864588387815993161702725650352250787128994441980833453597242476890484579178247236929487915885588833731623264977885837718141906744820929306227758916133163001274352846378460542170399244107753888364678546343065071383027762782810057197809798585555386862587588528483613216692887863175435751503174125414780459175998834004218527207075159512040225742957832246971821095789008659795377986571953916862587709190124087671456788033269170819111567706876052469724399490166078066113985564042376649314766036967750655745804455201195950611673453761990673550050937427676011035451607144150843167908049633439160550066486138178912299100329160429100441952628381162412269176121190966327129396569305666838634444172586629036587547527453865645184221913060608563880864716534920140588059286460128551943027091334896441810760256360160821163868102781400174475089374158681838500921251234005765403102611335976872636607193237928408117135820475208135937377471555594473734253301772644710699214451334985190728777316210734199057752628234355691686468235845563376961947418477553921033909609199378337392326006539388657246927180551575063402819962612905437040996055259322115751115089053686246723094525725033064865335277028843204022536292531167802903246913604907347765059083542912013949864201805935324829220306327299849456103491899398431220502606799906508164722057735039360456123890651072105991792847846360145517673206695297052492780542841344603467885687699772904971369522115098496508529577845342567960151674153053948959185852040682401456211197619236812862194949838554540759206706265972014898268620627453314934981561599801052449747616943366861792916026665065831245547751173636144271423829295125398649521903017093832447698680636047929949383715079511848461862411073076079934673200337368876625525492882423661202601777515716111937838258561263929047940253649230711198899609223873691431901715682350006286535587718364677722776257971216497401979029537793876273832831575630082333555745423629759645691105354412865682201623311193639870144104145397861413941469883985824520607637975839947074824253708208283821786414835126852014848687606167048307825542760076228703091100021534496081380871237919768614378456810358673182092032638002981235862217182372743164388688401519434560680538147358909006744655372192745068598311425575841068290884865837182794246358659451781552453387988745206788010914933203629235996421898114257814036880248289548493752867492343508020831968316437585687419335254272492822906969955740416105750868993157569683098460689344195895784911776853324108089119029560495969524371509322672622425425968222053238267609877360399395921762518548968700213207338055353124405060457187182758113476378210395169152952344847347453370558370893544341480307686065181950958259190593526176058394587979778297197462445149541213119330531805636077009958993322817033387338718177037126748625742004939545976822362057320060342816948497750737591229152737057651228374928605376971540993322113856453106210756932581150513206369584156776821784502795779557895328109868155118636916008948997814799020383887205076335523214401139707440253027926393302386894508184894412727559350985555601227943385178238761444886366150094094805405826741617306325980828877964690529944595199234377236439287364805388658264467559097944159596569331041213283830719067495391208123643780616160579487227024729118423014029164510988320836021804854484783096003551214697661856537823224916223572389999243657672236071785615068902931099536767546080379800475920883742974224211420001403730905669008241423271276210320422134832398088343717038766421996922771722039483805533939930933123257648273448763628551410893637074647222784346857760346608496113988355277003408953415101733717675041461649983166355227003769664497219978812983448134701350646524879328815660167557027834511910777497455835863804250457068115860029100598407253219857757041907830797924910189073642630177124015810560796049034387896092022165191978564500955871541606904155170089458190846291112091073808441286241319947897012808023038939338690086840784842394950553670687837945076660313795522872872062021620157242769476005383102978320637135998569552880049733073468881706310596050836565033285256453569384783328962244598178068678878264074888784551860821259440552636828673657270642269598444567353089104484716731756560815717056442900483799388800087463560827979241148130406625143092690360045553696296199692507719990231482655595425540849479419451964512528862226644191992843218414525427398597147535846327749652557844672784856141228958395028161197707209084095144791142956947071852501834279207155641610268885414903766539697846954170551453575774657927004157198452614407671765462208580282219272145417047391449231218723202249187565938207672668920945640885898680136731211040364281786006743148928747387348026723653999185833515375078321141198035509253712083875989253248500085808497456249576171198745430064271854789470924937551848932916202407756171469198655488859106276577273678899642766986360267948160113697580602847400777084203516835916800787598285071756068764449537497552334202128233699889763346816085989701810855324474482644207013047273726520507693755249415628628385435773765362446427839367082830249149980360723858181480829983154524598380290414910137630411311822676004200991015277248255565160839908924528061636804977945325589503466686719898817279594024873624202559991202525148954226413325262390627306356876864906221206203200548385023803175998980273460132490107857194498879813250767030768747167725747068833049716156494705404892545341795525138959166145589117678017789037779577283781562963956744921694497230804062415039474612976950952379821916026870592139269859686209820238098675190352095475396301332331595592081283039657325030138638823765113593815270988365567238661647229383731097700912602270391331430581879691704899104905485978757404249009550416764252517378466157612255357497311872964755194132407260113447815392061533629254453836093553180444724320629654475179770948234080996557723679621612513919871840474133989869956439026677948050859758004800646287541423654847171504291882169779337287685744515553363979315076395088139898801614871291294299382245050432924101973349323585364599774479411890489173163772677387874456475106476761919747750771111053213440870681974822964928892420190089899081754883229290582036625859283423855955902684738231509621699424839009885240127217494266831071579532756534039540761105426182853500749660057370620392456833283363044581641593040300832069769131343129387395190209521113853689075121908210861478622760890918383244252270017007692945777440627938451099034086846963458664240258293281373051726280372353039229764779021154591343000340893786851937365481129891843122766511545281548700688290248394997249781483883635110897369364771685776332399083127840289292687873392071059549267419299896879372184463749248713001727401919479452177712137124113647202710126653646742528264973055809729211865179647105920536445859203159533138029790841073334377145209689351548627952932914508642724769436729272320873981555205054170327042029956755051059459829691726943376207423780497855798170014536679705114348219864560358758313131269731276756367040905602237685797408519614667866373488582764369946483337188627116726354984929983075873481058501190977927422460672724307477092138979849065092461096944337996018529887007235212332073345633372153603504112934232022306857562499069311403813405284376099503743377999026274689619818887959195634154741792714015804695446619806142684735105977637128446086344769952726109945875244356368709616259311065660103902934044760486226828253331799173387589012788588465784964757685812424984114393770428861175706058500995794921249585300890248275243285501334724569891572196075889977009655351717414944230786120307699745467482982818166359867390834618749188219493435399572757931720407485941125175094175179951651026646198750917222848535580569544035323673218885578423434146811503250168651493819351239025677899247527341995356325802443663607508875679742326622738507804322480280161006610122437332304327157718326066411176641840828673271403429268751448051980620553665983443502543667124735730051644983897672711570194174599869683297777039949687733439507167260453130977035314475645108031484428162165537356812600422011166022393878772486531723596347263308424689485469759557910113590132539865049779641237276301461835247593012520915065312251296809235133859386068676129071198691044212150269454029656449250448294397513933882063351865851240030261413802582618044509526902813126417440095699572372875191988246633823232773070866214882660959718395109505210837751079122367013571945361566274814874073818335581897612277952463338348146059119178537827917384291894331159480326107099557211638185881608235266669947265303191224253423992332497649283302326740877721790306284230416103228031935347170545156910528888475333514768137329384815532047271301898208722920980600554874198681617811022364370301633437837044951743686614092752133988193252616048107646158907558042804937064734810985964194815469959541292886173121852951355815695332280555806093357192021702597368846471560544764859676786518364694368034048895538940389108029576091503765942681286113830369288972499860568438450791561218855236967689503714132421894036222035608201750745351712531306132413889114700924553437651007129081708588369730117303354682408972939537414514126182741171356253031287729575683871188280116090320744753214412872194105534337378940656543379680142444281014425385914952618163362002809801684457381253203787428471019445969062925676625982507672319914521299876312818610599316331627719870673461231838751237908318594205673040888039422163069447985429654321248987353708866369578470959162943861924477347202409278091655024224894706821240523377492736464511361792816870107123630777743342158809740799943140227306832171418945276008744308008309036460576138387456974329379848092391381485648057907692474883722907341450610882927131664698563490987546352775332958226937765118197073230589467587065762329615713501719246352458491927189366475295621970973702833116419194249901877470543783680706033678499163171201776654152991447488783085679721526635359974253142226973669681063302018407959303157671267030250549778305414541430843535866307743106184818436855749920850020242345818716473439837503851229877496694420750911403402184097585540205594506100396427619850630635424921966686500869428548307093078304158651494174834972346449962635034756504094608539036507032122672648892489709715809858271695258608573314239106182386099735641289291267064105804171165017759013168550736493955568450581914786861604145896960143657575699678392447045631977119597467917743764922896806350667744424003589273040033912340859979521031019745449820461416829223797090978350463832024592874323044446628247884478044856925014959790730902821058227133765945293915531453091160379485844856403382807731553252831521463896027727978762296188833816983969842803581672002014864249919615468051468876412365756117537603018656604437285696534613304429166896121920412741344275745640251801595459595830596907720946786414786714708379067997162419546659897042829002101908804057182746243606627937188186733552223163919143657436611915608602423801390295361562561507355804095840829820892338654811804468022063761955383612546857126847193690341500391659784482051491808087548850872143165525615691882603501713882956706456711722259176611721407664155542009360944741293396401281631532738027937499040987482992503565561162988450321047340785569166437622664344960650027690170006531095129590982102676035454230125012304266664173077643383753915408691213810711445239019593378364873597830077821100316128371757246059904351071051929257861645966211070164302459614713356198714876129013478099741334368786017179129228965644481491758410275554565951905729561682111132799964475478026994265714989581750217799468604155107864506981168525917550440596200991730448541753266710973092780164834792289162961582726524707067255416871826162167645682049079973715489016782201861814920099364720971675540508212378905281519322584472987335572702523462755260669923847859441376342286110104677046621688462792470845536727364615478702123895119433716831976303475500495904873979226723550679073008483716425310885622579307009931529311013753409901159909111229659659829605396376963486074561274975513958127399063220090608818635624999564554033727046642549166942581481824201790881688365776857340778831703876537558969081512872484239295087329480403108815428326766199306397820503426119470629130197204345208353313063690311609068732141058535891587355822382583647640052046445168920108825714879055361414361087695357279167119823406524954700486949219522359704399889250776851065477349716808165010980673167059580992916302533446330172397207854383576903113708361848733757155502396474698671797338360907788834892979363699399957678695398972560746042999362089882688054858340362885906889465670506006156419238245402084882638367076566064894049963399929661653814647800104134357251472178014116862264593598966663269192374244910982222951720384394331812211077156581626638989046364789760990269349910558014258955764765043746873774551659702003861784793745669399053038059333902832310309198217786825095896504925328130877792142587091164526056470975704560002546034765447963913143118372361069954092053449081875156881920835559384390076364898550490065244949152374695242915054617020260623614578183189617423731130479008440824238576756565801723438967385964883610627753351397134420209506457799560950234601983300168448039916627029506789467578723454795923056317467291198279277489520928232071021533329669132305763524328281208892588328109174916901149489564735388131035959897014706345282220488762518307884434660370562024024326440448599467273866557040824040627886759877760609344743948549213440995745778362197984191758460803419728061763399115883205365755485384979308106309782109719642872905681001191498638663309292547287468529724414557450008955573715519284579667247917386652652510300664637636129716142577567788637669725676331229903815792095491001856303697823338501221433516171646066627907065764793278792320568028837536476565294431446487419821798270860133218345803895440429928096582043357875483372376034480788119080453744452178071259280687937053703622310543844790549081278044876724716964898624928401151098243061116318818687195560679237870885061706758982982129808267945759577103713103911020439740525943360484459382594230382558485082224092890418111756596460258480478036311522189466756970159448420983021126265370711202531317198533378133451342103031811795728567389292598125977029339203991232275609272948450754202439480150387083522487216527382313083414054864057111879064805956943370130603540290624188793369880009833906284236057483318698643776060230490783847679977933403511660213343352172480507781647358875150483319311388131335248668236180307221627071949963909282052614350963749446786229588767600489877943114748319475547102552297894653593213199793336389008358422679999361208108476303008382555908436787750632241631197595320646434467550559645011310011404805887398460840339522609431202610106294707238025522426394970882519859689207571262420867521501634291615008130046786335631714231140828383008606212813055481362518678514501563853020804689302207574370471514418552994247518518822625732210438204157695360578011871885036470565428109525475859851636690043451283676547781325835824825121318063769319263419622006748604619831324786880033805992002864441268588508384032090356190787316704358633402767030369219462810485066578485902298241775280273409900246823577288897785631999973398792840468779857276658627457310240151244905760842787613257947649753662562876978587821143049964761714761731490159370861676785656370545902663615831706904278946958203132983368015044430662747536923734318524305705915113143237046126611639036135070690331037251771613958876004350418171179780663367360225319079638511065403848417715766444071079814252697632402385060600809755042969011004021970244761502054806985547125253801102275947227114302515998227720770672531851467842150985857069561666571746700239937143478794274027469395625343330336266866560529749144357169018980561795697271820746491104938225015167216731105567568210885117480736309432910870121746203665766553215417491029480959359448503362903217889736641335786077530577430944546386159641478136910671350482858730304337131757255569044283319677021888364645955866339088622670347892957742448428610866788073257565351849058273888714348348909639235207947502683015232799111003644707364413893062708717409219606259532605911081455713725621387282302475209117859415480368864633941581322352714610829752476718591744306104198073661607680011717228869087431117667001274881727931515000745993701067114285122817859661097624252730328084492628915163515969732900272162377736719932101215961327334757753784692335747903473892631050964735203265515466107529911791013526425149776442914369514954298989591257449128710599187864649429997743624152867167604365164799261949317941078309760048789222634713229921167836160238494412916595913832921487822640615185448316506098572892689185608754812511091692326211155118405405106255959688648593541361567415008208964912771623878523407980413579532153458232747706657096477885408924143458230643883392483751604681011978308033425263236177628940981574191339997985104214167707353335392817329142177370058528876359761825766314721936509731887638222788802477199145849426656802761315444224673308635682708910514886915382271248362428917093810733468281521105097155643902054096225807915379926909175362906246974469968116059095764882253036160335578906320115186945213928240758246433599875049165400559736621335002269461719152403866573742082424140147590196458254133968525262551823536710412498594469603360847752853862441079827940274843168530456832770442366548928101502684805070873719832161055966506115615172688220258103867347914599675967960681170417077921793135082349828651580293582688563319026964152612199257099559831966896102010362557976373901694419859336638637179153190853311081431382549750208365268646884799095765055313781234235321511062656697864059455679934963842510034155157622137727006014912751639396269211047050911720453190911246926577380836317756729836915518105263007084421080399789170217453604685652473948720561375673346487957803151118242931572824842531067612510565518777671769560487078972479705589537882568717510873069265073189545940135422413131923606593286454129731117929348008477596211877645022450382733559973987804489435783159022984004482977083045212763153925979955791239730408040375466573258902011074828177001405511120047597914380038087674623299791743496693898290968946707754225285314506072626316009025488532131874469451462839277197542999729088996677509871788451305040807762305668682978541219429713106147889432531270271403266017842614413909864194843080301163689314048489678408325948140295982252905190948957171566928464473905237582637998325877201481980311889573883079029377291626016301139925813696250895740928384321660235172522469295233132999457215149379831015842796900100880898569053312971959067704167361405887357961888875458610103809627325742483807541166933449779583152333936898172037404972607415542823665798704804181559867289107942340498207688330018360730090591612945470785266267507917854690757448757073181178820611773937573083098040906589393242461122181722687495074480545951961643274247734662513503361032105733117749057428226059755507454433695818461782600067041522478095698364252529998907080101031642760443288385870864779831795442604713404196598367437041271954090961398464337140560328356940238601390154621259031012101023812545310712082620495318832609524481863295126723131594814093682563079674937408459769105205658270442141563233354449316465628743526114307820870762971047647716128879614630818577830685213609472395102481176683547109740806522934364335737645362011518967797372071946046490053394849944242205992707856632220298888736355534362354183361629447614986579436247489505814143391964681782459114632708252508876170432989064008760983165212213310430763056624870986848426195119226221191562331502755417239350157495404035725076169433156975029192543579444974296871976308119857797951119389868407309295925861994942918676760117544588905020700837124055543051661205631906879422071696756117016651252168105770788244972029337388513482176430105840898767852208480880933253303102259292728436224740957738790998667750979520131926269131492499133966755454270935243574838085930747291093899845729358380732892124575756352506439268115809847893653380485403339722023330170897835474473449080631386494436590875107939986276535108216190195703556926579403109922234406934648887380388424604737251414818239215969207078967568481110856604055430347326856647712803859062975696457419811552270665117133571144088995036699982468274797673722085402132500594152007305221379722467441222236351014621872120208124129049388063453388193985883744113606384171804919122947663384510248676121929274363125481079227694562693855238246235756529440848598901347699285728105100722052540951276885534200809471571500630664802597116379885416457797958067649479746319464516267032473301991065303554362683829201933065568654658486874103847275445067522228295762604451017952902043567130427292392627110614085543179516778251611917534472900052731184381925022991028967667072882211642341515169442743224937889477221546371161509806979347911379993640717243915330186027507969090636012443050646889595125920290526460523679199432322316128452642323821812236780022238232390288549766049691088254808582110750894367604798562112117216385415223531351242532733219352878593272742971971769052566391204615372473003918846310353480493210559177669013931337404379691274660126510799414534161107453877098165477152108329379946465987120593089422078138688482917657869054424190844691090449588126123604099251031738758483171879403701211564380193309051258096469815061716985874340928115605977044918697573727329063127108705453180947477839751443805790398980175364524199197688173775798234015530442958904076662039411107734386759903918206094005039328016413739508107063439787036401971592314181499577634877321831199811474033786707178506467585533767551885551738355304739100757320696005365745986259979049693803221917906587303898247157042217983107660488402552051816879731999318490201687379861173363918703913415031272034898264468606698916212997658520559304042091007148591900086812545936209761317628271315172980271140251334054565808611562110585549480742215566809105237948181665654945674285151114047665283965332602401358855262766187729606189941794422484728163011104016231087410054580523037202621498887930200550539840176721208009678483099298886838639116757610757251778800858109389366921951815542884386546674873986196306900245700534623887181741030615495629769136039204352586254100213635840147319826225361547126132831959011907412502168680943511013806915360033154490382432271878823325502711739631093192493383714300312074392252496619034298015490248571679323635981532045514933048303030894187985180584804389502389763853510272434986911638590187531642625486346540545003381924989991914182177543687517020013747473537315126859081579010459782149772203668959267613887254719553966756176036731460719572765643709641738351719308569929099748674952497199862271634911413471465313147063344541979378885965930389333913788460783347267093556654294383054529224848095840735759632235279915979187375298330653034169019866641953939438736751558585811786011539400353366502577629609585521039832258984815578379338837592692662250215490942040531029434442781616008820872026316195885674767728350772227893557587792125907591995109745037050616193670570469700669331430051083886027624257508835965473712656561231980668725682550223506019748767770431360431168872089054084778831989365233850239025223833489138235672864449454097356252145179625491913141363741537026578649187144429991939460363419600947642353887480465924124052936688836119093533166137926741153297700817188423732980925194616559293651114774157181830172540709776019025046002317202791405997391274930027832906348655688374434184333922904592147391814548695102803510444253725381428194852670663253036997034921277751754535363935348507106043439116084364494321662324769087161818532419408170401260145830682645603885150378843271592184260730884945600708582262639180133241803022107279032066135086984977650784947493152944506612239298803043340342704578006599043626134759158397425986511998607370426085752770891453296278616790350307070401241915634325820816584860334596650179907740049645222879783152890966982558515824723594102621197911968748966603273046054621263583714204579109824419740864208579338780797085075950002533070353054575286790225915254183842543065545875852567772343627136517972387693379774503182943590130357379774589281125307579817470656376705586305560205295579394229010424073482393696968915060479694229264405847905038855177866949706149045628105032173057264194662807702490878567613261273445302016616847481649370906345777431413518404281460517792391725605776679332488305905114457688754644979592686222416895060769752537899955127119698511308430987726315944252772286986596940162813060900312698196075613814441775599780793733105513261610225788439397623694804690132815407877157767871498425036225808355178452043099149429177782619040671641592662882674058019909281201296316826861349791410415774537732893297888045122468430516426797129515978157951404120270157520762121055551357146240437004010571522574751686434634979665005551437734990590167348911425000643223190986948424761371138765198546045490316963922390346091745553860857271493982947409861297129671517643855325982516305738319305871963351294530290682486375959712951209644934200702356317157907322024017540450273845068824211413383552400242384576399756412545709475060702351992955993532978271632623042122621139142908466538709909303427516162406432233231906486799687892677381674532651068416936987347564041123841816987428463766010715664396100526697909668052684633353267196834517418825718523419089049884886221722411088271055906426932714532988555132002936780910707777903752041675678778768175593331047660652425288473793189731039425720263212017044045312744929644795090688100599197270087185796179258880570924553145643201621492876741328298540694083084468579141029731645997690831775967538948261543342413457740310982090785743425551579330015494419010895887750497407670395517011534024107600924002475430802113557945753505280017235051062577293862300974506842741565543466880626765188225204104210520041230484356567934548540241406482972466148085283173125151683039958375282144814992185826067130703291645628649136935732553627035914968750486316662623743769822891144779605316184119747606909842140785522281634112683829857187014525961193439553037946852096720595932145380383675547380083671416216138367402069262175316656356531358538606356152106279383892103849724352228326634957274449230396551628549103571630641808106013345594797761426291170570460237664440807044591958831447012277428524123524347048614792766711592920035308938370129938062438033171534165469878906801397890014627324451766637627984369948281024956098926689665061401993511278750513679156762244979967877123626768316714214154358069571503054683545796622357910263895681094704250811584031350019577893676623011937795713646637020553427282407017004522134321104735325012431598965488387790566008596670408022633060068557637844673181700452589192204696359520805500748093894409407005807243485791767123948778172696818602834282264734163693398690825299942077319485180263973750358193409350234911817791064806843245855381892660500069393010977608639322705527471666817209570589046356154778343200191949653055508446322244249691559200264437312811862542011482024737285658549250808336357487530700922660908326366102842919099931950769298784893033069845018773670048819508126482977062793110522638923798829104001083007523493971723551276650874883946293809638724947749648412822931258054219907424442058434316745925203646402191177990314095174962261941994515898943982329049612083994826429570895690004844019918638005250995091257684274013104520240968335753398633581099228356770037610830894946900988365035119990376316731063902569685400507298170175572086500201192638848769894283231951824422848353801261743621786954573155486680498228875396331718871810104874555472512205352555733831377548622471326211934854863472197223389049080517188467441760038011766275750085282700641840093679426027769820684273907601793936092027215275637656896903357161944620696924464765489029897405734522443817187454388049700359374745450508391874152206309508597723778517962867049398922906683455242700869519371889322701080964331122060334488612241165345755397984374420183746486780751411866282858920407566346797918676409902300324414959893920887217381920126555471838152989577906667831092369141497261845334907167892847164856455241055654852112002965732958808173550739195589799689849259304844675782184048951192729935195119003230426994193610288859201882995989217421439979976684388943285877688954808793686781615779855274808600538591522973618572456627119780301299160951314361109599603621936213035478860278689206157696522475932181763536421588407199182764719680681740977015004259862856484468720069539371695099605470658949039330506105385697652977034674250831330513922675529524824041469286810556475063158843808952042008477870520910440406709477725078343083597979631625052171706305105257834811278663654890361719818438232261641310619411895537297901428487610592969434592227044095131909082460716883123482604171328180770248262645718313719004830170963272055101981500008632945676817393257636999353427265347168087381910450272054799100129094094434502713315236560476040463817738329557148577455326260271071978653263262819437410147187146011385472936386943167524798480202413396174161346834337603194824341960509167636182399397178847941751298280506362332286273532037554739453575349347950950272803531820119244188019244374441004572135582522235479444174623100579960477754145819075220821188294252646616896041333419149371494731597211713425681794332729607061345160875358408691936173359880672644788640854976246104616444429760605437000438865805201853394574064666110083497639662790999381328281557636288432523380160252588001587321175123899175246132154718576953127966501023504943964606994504418596369534237779549043377665229607483562263388976512427896561086465909952994286551645068745072356486422121568122241796695425296999197586144998121834316426023810856103626305341310337049042633133618779104087276524252367939911580946283226369489030573243115582161082396197887092727504696860052141485232419085270686093242775957962587277946576677197582848233788607938846674901404578900865030282815499283562961167337539178086279416833241432263188871409741284545100633175819013232480023162857761888334999477589665623826768005530678968544640783838750591341027492390216747057535887473632299503479955497490595436784005191203128544332463408324880223943052228191719136294730285328098131923468633393233901101952585187323022596478446085295082339474396993446613969392921271103948007716802881518178337938554469562100673185479275612889608622082121273071170346585478332076880319399147579312345783738416721587413391695534564973991797762374055209263446726754009801747119793550064279111809091929846927521724401955943938610413336841656980563073015146064568562350236283355508954944063492800027171326443461619507450293786138611775176781856470476197648322703923407364904836544475458386445470972507099971147627612710982071538344676773444743256000157412516009604575476757438580697446809978576266426941479686161259507839597413943115815717286557277589723507053008502389970228414654805643558021259133179590849704295062543582241327179915054048141834924685677136986951846602015848567517014139849982774158044400401993068970272533934278708823554767734231752304650098123460093570091661705002073834462552475716155984871542497605896173373159501440541911130703288848577779092251312286246450324117266968960265313593109791476550221716245735270669251451274690938833927686142773149829400663771999809783405372123799530696921869905471396209043449171268643342963099906455732247879780001839531984236125765995500912943835358681756332270942599305614721669753786850792506253279632111591579517435343003661501078934185727671760401842860372167741980192146588478001755515838035682496301461316744008197368571484346252336578635957007004599826231073251876856674100632420322723673507595042481759674037649118347808834771998635762590913908361131859256748022814010165149801400374344406993759894158850082431849065703315583070245683982777710168953278114210336717932567058528838863144540480035557639490437994120829160584199244608708357160511337759547082228700242889400773578753078246917433930919020735133291528933907390267651849724690355951219113287329841076202579253515583934147264851132739528727611870547075135414187465152089849762312977143130452011227042864426582791393218666892210128538603658527901018241131259849910430544595540536267356412638373414692888135799286047427434736237822232392457660737258622855321715324965212167243402104558484065147821319627966417070026330617910657907527260438294381330004729828889443207837898249125889844054100360329048847519711083076657877033057174861306777414128214351724761621600851921004380616551292354289902523823784615218014072867769550569041893819483804380853613841550652922897479115339350274968882629885566517422046823152549930923681747814741368483426619124238677920632062761166481709504120123463812490533867593994376684821343141944308970811856627468856869439721518228107759635280759876230924994390184677827620249840671340325258971533861665434253901572001990152080326369858015735953757953959609962647556986675165816512850084277298374367305317859968270725245405190893601521162395980413177677092948801918268320337368215448794518288974848062936012182898993249758493921078307149981618178178174708687331854733915722896466825562833419673015722042346222643590568514195445104822054469021648801492514304924393585761132042032732596142418938863918561705077619163229504211698272637614265392233718990243515268982387386350594018582331397160019017951047330048259175672423559176416244011265234104968596320351622716625228163260320689866937802102222241218189572121270147025753197137090644467822973934079409926063768022974437076474040949013300019439154740650277860381252308185122966531222797022038938472778723201024962129428115858147402416199682408451105718319188605469889101474288760813934207959948259254449680187556819536820017367126768128470431326285362156754447255901620543095824416607637889043865766838229666747751239082820053669061397046568110993638277591989029750877305150489128936801607257497085733806861228318776377641910172441151164360731708377807596940846114640930253052708938687972915728145771486730852796114545604245854718516349064506540359475926730903918749759590994071474011822397193497780223530346859464632443685199053031717128287606847687163189623234100000695334607040157935015147523539174711549576898352697819801747866855056789432226764836418616233744941690276732450324994214424975438621766331476501262071636111205313572628805178433398624211420513673389823163912025761359399210722522205084753497414189140393197206894969989607845646870357286714067357711660215119400604890454958993783809459118649829851332833344149864585713014659059195114849867132838549599929045358178629615627206737542533599859000336695848078698993931571976882338598492263502034255435685301251169551773714381361881367656941273491935713605424609901538038475983858029971952229028685644257480548866810041883602613093445889102158805096386574493490071266021898440861544251531048603196752869843330550076818994712906490616656245586454374281237040270004562280677904384343431276346639885796125439038351305136031831246959151318515660401728365887655544331210856824079668469118004141650679644979216382285507933144934890260679439588622563368013017503209561717736677384150658008182957292188085204211090459299150923566331029711039285785814410933080998262671454684631444166968963303840315871826865491406220071573510803569712874900226576120057672116996995364491096252144045074485449537076128429600440765835231488200467370556124884616637529447347418764681646797821389849771676249583231175113000044284240824396108906200187516613693963215219708329049867968177537762229583033604840206743776665838865706393479663967934004617844656465298327317532515161029314276023863879092932166303441994605641764234334037006554434306671718623644778105230528772784926604220416376224688303529009327622599744531856993461562584642746184987523778717432451290468280822759450128185171032951930491617617063160973079758847189553681690628936658767109718569928853314764340824244653637502578928570919411139906012341529913249858334007205506188975940087405882843531994749829341062630610317509985362846959280060664102126039517267123025931423133654283692739175727021043013368187696429535623110345759433203599214597189220375001748941158993948761513829351114640689113885548422237278597932890838989437100461407926180014558631305066517115174238720331460887417729568832047248444269520637003116246500253411321711384478057103207847142765968341887630513054209525096377731156755877564718128804355929475598527022214888444590187142745685912842324891079605262810272093761663618621480385223541989709138934616606509659502756379234425199480293883287594220754285451733625579089693780002101813491047809056707867607594790759008409255871680937164931475232359071160457211873316702833205593320951573430037987424409681245255641880848681540262684012321517905580043191199202842431555457088332690637377702503031113476387830784494841108302242586205946222320714639041671030156583143950739113845723520446508929062014811963298021186627610936291910936316160952285868910611273846821297634005182472257611368414038104530764932240202009835191849833325104358421902595157165360924525971837896710104743703125105945236676503552760102983989266107323791266184332271337555255098633697284412301565751463888084830963476286639489794154459452294634596843890916004864229018644324682246213749516125154146921600700138584950554722237087870729267490041784707866996299607834571437042791657325625537727485953380406096347750173539394503749143602814394874232792111619840928487648592782459433667933906148881031116380341516935724600309218618021386854845941557172383847217913916265524063694956416777675204311055191036151759510732240326600853055630946099689338041792797779313781669978792293355401095291150163071241074352159690457057053263867169678727177990665008042802430387433510804006577343638250925211023617853552454308265995973947723824020477080628907285403779582756675656399669705110893562654791960111013835789249404214068979731846265555430975190699685139418270078863419359430887922678574268308046543374614368216247895887789657492686492463001041147482256658151679605450360764865544641667155096123143843081812813398625804032461796006875862826147160850679249605240385623568881663781621141044359552046319947667175561286585047892516365489753815785814164856530441283242668793847843578825410445401338937897475329725419099593238171033889682754853283841332347561624483720621000098999441783389192418018138279541630198402256274998823489389226384885706407308327031174737404845968529605401021555448659017887764294696184958692449580494821057133242634786664170621061520480637982519687312291371582400051814918362061741975505408857901710293967434948184502851614096819849190609997296647345402785966646526338146211016620571416194210160978625017245890151315034899281309684783160821779643677204721599713035633398351349687692563371970000712413922617564213449225013521351312821992952032649040119332524690321752512793880493373502744122528338876911346096979363483976260100931595680975612470346090484576316291829250091262381689241013296230010426321149148068757994354177269548363814694726591226700846921620354052852159073812292762712445883219817391933514401225370195540341976254203105803007094511386098361079074482523543302735571145648479831724090374663350034230479950839594064492662547111571529612088379757074741186741164943537338139531113640223172830458087810792675564284006614335535917554108027008226276824101300055669573503606063251326145823534757449301098663437108542321143711543080534407502171980546686642793986720651370394142323321823601180963816259462900497877531024358417081874514763688342798226172420897626808469034052014792041211588331682531329572491347846110582949909069571417128877193991271616369477810443842237878518647108437286327919492797417913543939147036246946238987068152811793731769306050035081033277143086732668541353046862619458366990291630773873500095923704472355756180330045101542753119940641786784862493332665733366911818584785604710498671751700328167419838491531044308660129832881239916898399180952107482275339492857374819044160706523511038351611630481717173333472873829159258973083198592116861314247140082048261304756838819242237937875550422555531087526955542033385001098338064575454929504040197379236197029413316072385277212001419502273706643072594554033401153022270576370079444709094428728101805112420148966731935058496882173387296519591899939938372117659254950584139932899513855604970502591742597903036197325646981939666300901011161169722390734536695869656177596695263757120865342206882062341172085754000792559863590837467809451731266269660330714467037594564058880967271074544328435498385042184905002597583084018628899248901984901130811003480259882286070131206579273296385482474328556674637750562300909547966020418990062151416677331425309646304682627171937478519102446760525249622378904727959328885230561231107602760137129841057924500240818318216421027003679678563911935862952075231907124464643533733725742438880238766826716003341629316015073771891515001624640017846733864374494842757152107438885109667097070901125099907738564314492424196160277718858290530424376544536081903831218254174699320511617290603402368511571325263473860333960295624266315203286163699664115094241419657513039238781047609307677722166926092549499619208906857666853551260052001053307502017008719650844595871296683632018704985639933711119882282614352347520924090346521518211942761602484019866638800169143096924231597926262185499157909564954653210917211017426190954396044334916439371263985655652701284823664486161561543335065565376010269702538511184232598895800511470092622371369451871197924527923080518859422394133802614897696320591655029868268428662751064094634463855156845291245203580369823862443148525563810886551583995086052446682877752502054830894734290655184566671292189225618923431511542013599358462024807358272886741317411485370620033940989231179281967664886068397322888385831625889856074277748425415384904202221873491986093132991282366353233977806840634189940744763383010631896369875856887675792974747190732581824500404955690719728244124758298230080137269193800771326077710753403366320324082523565780605361915776670524990348701973160695520414362847527966222227650096793442376317106243414504604564028323038738779514734856348487902102379463359828679348230463954897629967153717232039532335322386344573152991205165488842906022344015123446848512521646957370344095245081325863989332317417647853529869826021389574648801882571697854227407433932341699303026185904598037675134170523714980919637231244608376480720538741787133816155543532494271911131471206085630634655795217473522083441133904409941383805839172852205938538940516491627009234529311133559089384290985508501655956471641499963047259195098091510636627844374026751809285403564984369096644404600908336070463779156072732508394857281305233606919166401824821010425426601246666063043427027046880999979415334553754504248334981099694264369942527888482274846158285700486200536362976659711897923095320100956928875551361518173443042555344588137101231181343106841142989689414326489598358538816615798810272043833492163618440479160809674640396915558111375925427844553020922910951108342874241743582670497217444661641755204089765399129161081819260681149353476480976798400066498868849070128051111375341419837329254067187375125436581369875157781210065225317303395262754142278816355537972226299242805582056943771592580131726236756419697737257072083366582340465418725069343346917447033260918997934448215175637428188078528348093822097434021345771500101122209570903182418113070640679453456778650146704478573719221578056477935560604811811309881563517740519611510325157228493373110899124546228815572912226867920538506503793525840831958798056378564607229169891823237828503497229065926034425878708618641384311703295818085146043215383305406509264532334694142021108222884681876124584201874817805690002570424627255080534221668314872934900507600782459653608126482772781693567164422104099784819201479797299210756163452167294899675784800674987027618591902686977642003889136554677763305309764305357331283615666040493456582665775697600195040824671332200245064665195822929517400976262621068024409980437262085596249664526625180554674304644339858800280905178463969859157152638472417794850350093140845234024195091239277887060059583414391758900583761621299092550692796490118751902296068655321583311508383423666700187697768849887881175484071146272504198641617094295369032040517545933389431959670095192070430005484496708971489633141502867894095048136446997420429191722141225407441922747033441796503625361140495683299581131151163131978727090320604441906421890568706759634291103349317594353654965940424474200599749542947525189283214503429804564088414270766205715494596624560809598875681977736126498588599248403204275244874270124061995307320953726441669954634348708049558799516014098060897966294050014091232207564575223172105807959629717456080370032031020257061605439739867737744084407839299803979649557892671583474871549650870515141775649987032318344301922729877016063055314764889253550851433608986240276501330957713726388784396454890307575320828276845946914266386047746796636148593636103579565823207297987441849514454479336112595397054989617480984896366585123023511082370633971003279978035131075683068531230825684884672295722010175201421976324588344009393300722850041147304359861813767425014375570557209838580349738883149707753204408022993513498467066346819391349478850098956577166490394814801459242067372766150505718345034086327319617079682170640888236546187298116896658522675614524047433843748709374199690515058413126093558679040381501120888670908666473217815137275878429308458798693853464774082309056791636615591278300635467144287693236814835380325728610763066783541652498207203178296584130706064877346942060996317073553809732449909571312050484100215451817976014267584930430663026575338897002337662956952597998569249783989675982644084952796363781815074580924618915007036644071347369969289742173160433329597179965577591829261977493156308607354944988905923277252501588568877107725177565151413733003796792042894178923875576319181083354120762357398732285142189152347884803731964897508556652626486177016163112656650460687185943220171137317252692352886794104078189225800793378241836454829903284421267674060029372140687406703960547395034607578484348067953751205806339245922847201425153662674239559261110859985491820245398274582378593229882237277069260852376169657642044895714677371008169764452438374389651698437744230637133503565368518009516539804957108300682617780567127656636563106750085160983389597496121874508055524190668535243895234570229194413105558481455440903142878240745833237955647658556244048819089512359939393013998952465962529280445431232049389620759915396181140073308105881542819152311343608672251714424517720766121027835492847954607333048600423166946666105390362554567698391616659033863857732116836810572776042937807335451248601451068803104695353252231382114547113903659126206666530964076586261236759201023528995774105835333526061246689785955764553069680432419971548302509769368081716402329716327095344268395926854562004452349747440952916212600883460701625758578463978861699697904599145026851031443665322402906368829701880999406256325268350902803511868453855354726733152986718215599823058335277473274872035717516236316991534741476972015453544922473688789089440027692230161168760449855935375472667033882418466051502804912434002473856662788743517867630883144282814900513087598619550065137566641203219026348746288291680709661520423431083284572824890095401105239410289088892682571812403750181044420026522328008596236268420831451764145310065362458978131828707027205254191265364453952450930270636429629980291605263323066300761109036971798320603255172807991062189309497838452616050820522298208411945411168550013886773673090178043904150762276330046686953245124281499875986815474119177011616144375299638536153500090591507003659889830821865794987960963723116419878773480865749858938809559393020724874481580661801675970892688150038837038311370630829270499226795368220491390486784275991790835540940496980304164398096931010032685041484864240095706062381736271924221607510742391009903416992481813313004205686749360726392019105154915717391424181752933165644404044604820065348493003302795665870031140123540640557148371200155146368443760065091845202811740698106603145013122920370315762273630196194081168140352239408654983686814102867982095065282696908934723074367854170131779269882822258470769230050944940951606500578858933754033732098220697291611151570917590157733080455709555269252123179295984521064354011174390347862636158725057240225882027955999720447444098269942689391034548336404065153800129735918446397080270120112190742191917671370335489052606979917752366988070312280310056959310241297761439441738146924580015195093150888471404993828113003501942401543321090742228510280680273990845325296435981804524500867688055810617166298380102100890345433140478219636562948164169279444073303848868555950928645402402090200775577983423333860649822382769936496355361069731995534709418460902644668946728527352396126728008631842392729432501953110959919822593239483281982867553574420708463479744858629707763507055087936081508799860127088933785465674666883471798706538756943039110441329923969306253079348249535637629727911639710619273935235526139786417902341688246916090126587825753510869543574030395657115851056995544401141603059330404105296691265664480926198469749779526786110713907485824208952014676613572531295160743214888309903264602277758830829451144705754434514619964849075545771711507288957465370389341785390718403465838223357311895052009125795821430275315917183688937267354964317514443644550408819311898640301752675395980001571959505559168337943801103804855742218600999327753837651284367315980642369488046602105208537092920454309732845070075803760784034865847404199360634549402150351553984709503693700517025427875770150855983571606706730319368014314873715482057630687297758166713724935770771703114836024363082564753124502062680261291162457207751223774425563785798566085673185416663262291816254341186932633307305706319226342714780216471743135423625522866620011130524210631221698760415351690568650168263992444707470776792305919050398964432092410136686660352165826532255399535606114114222241006142719694481073993245350215333701730600050811274041339653184983915253800039839706425685416271123762977438420577811156767130627024266213086812760267081320019340745239112892976041484916528630629677774424757538627212905517083329783801558242519359396543645472553370381223437032679278578317444928612926651557097943922380288951309803083375976649324842741290870632787673477538732337386673830638134705049194467688368775212276000973106931010906971068529785098096490251453348575633648023489894618987494827975197970860677331652700075975030607319945579545529008509886039415499307660154629006929076646174210518747659956211978897186630851029742881855099222142093271810687597786505325770474846209197969327642474078425892016561155856863751005744362748602068370356846081145781862786164073071419155577214687053354788645538271651364496385837812624838176471008790386794007720710030758300167657473187485882069923492866412132043041595178925521019513603578238741357840596191567640018774272633579012510499854051443943300799477944626681826540078645621436232099269986755819561313397917713266751708858296103804181513005728030585243914902011321649508374009524989944230018913840380689181465574427084176964916404784206073924051446566153941895253187090691353065307022174062478783415569394854133487616917151948419915054564406173975073686631932263164380221270616137375272364379342174440873493026982616876922239409018501813015456366563694417368197902235907105741165639999224221488475902111886856868883934438595548393292632708644295697550096308959908988958275711890779162140288220478319696265114090950260106865292034528004134527029998415805016733358937970067951057700044624514927296825503204191604760252127998196166129507941188942877436907881423978572722859749130142221064772345794411500695853993370343122967437546784485097606417088632223382837418989597780356546845298315542426525855356550940162582654803967455367122443100614921632406355963646100256328802310552396238019344749559757245259699565409606741580515120837364757716549507197518283953710361193254857299217311991688044935401550413715458198587594770606671499619888558424645731124507833491129386337451598798601211309493356782464126485554946713975533467520711382502233716069838652922205279343231382081227389882095678026425397805177004746150707362608077048854585118056157972724058462184567466743711393662851303305010372635137059585317621993420177115850393438297576366688051414550114083529031606504333471069991946302679498382024308863120580462290126679979814192417272393256370164975586170755675675081513104448135242829927437619957008821976761927750970075604771776605217481355666628005612594407059493835453671993578370296379013758055916765628644813991222192842792637311293027604652854807867798067185727518757150471094819122173819573579875712570010806999004770674215302910961423110343355009512000124425524451262920371129763938770860029872923842258171238686276267358130290708396249399186764628334155679334347610386167885093078909746995887658506068550990854557508458391655907482715481142740804575968600207058688057012468349510532133256354073552601405137075795447369382938589531675946551646542033303321369437439636444826480646268218182806830994279773427322434849604065305622432148270260847596875827562455174641200062650446036729035282683428849237848105696612342976569368114238788957199878643429551605257288799349010631784371091460523506840980292595073140053193840540887706107196675360059637740129181294556477267632582170470516838423508052401708729977996393819832272200933535711275250061685285438999863322606700323881011216091303001696060683101539203407055822387847673315530040211213267067928812296725575542266630277303322771984158216413513990247901403259424245644722388763010631396737914096946805133313057927866573102833843233574353017659454807086352529960946855130614807082350542736973460658946584601026577811048672112469506508023259780516256988203565329579762376946149613399635707588610767024279591015114580093086202860377698399003628553873329872363531375610812969987654023336438162967827616589114335823406297302235569407258905318436004473802421586537451796105080637597183190426063887107834664728479424494792162896092682650944171197877554545013172495390676206019080946015499121729715866854351651553695573213366768107974677552403641006323836858436835013842336555531063093671373848791574184684204142729307173818259658052830460989627967353603423400113731489513675871777860885576729152753282975605589258963832600865268866170005919482287295383782642158738374759352133327051108617442003977293148529206044688116754808767029731873506404182229280450628029583482848534218648795023958079814632336625513225063489392151162282298559950740243349736016876215988053629183145399958390938938722668809559531570116974813534481437735610752170675357290614590062559883256410369911476457423269580240566704419892145817623894826015071995978733987606602065807330316666794871255021757070484967622719634685101546889975485979165340696964319008565786616894047341580933790533297765652589036395180340292307974674711959001382172587723470662609201172271913977612940011980503102741281700180807653944019021781287530545505713977073559583976660849667209973483064339958396853848507282719238267981116029232825558508929260651357099690393607172802664594751736082574359089656172763369619506814729402547940304499769076319100892339039501903720556465823310011351093353771823971665539128702952643221720483787080712213743620698120692908769843061981850086398320707049885346496517682108032743533342047940901837269040002062779025122772088325110782409924319597801947212722728597418488174497729948632201253242837702988400649974426216280694303536793707089636802728655548457974593702114237230852193601050039632600828484273291194497684588493099526064869671330168080473064871830785616178435105224787790770512860161945945874324902924441607216101061173428717776807633597380485152143757879304131181789623741224672693303375187739138895393617520241862121829122875691941559601062204799551122379537252358710771422533190788484112114891082644735103292908894863395241554701905463586402851636249940418512361483765441468008579263627076950576749214420904067102537269334518074305895766186781732452887959103467071243543723219706202307971697360671202465932643973576715197103280786376434202124211299471903413480386152610271761474260575361377066968983287917539018102146124770465188422268861238893248429754671489130696846982463163945145644508133136343312354048050016935109882080712406199123352936467880639185098097536163533591508740162390973152557086051936631338573735002714048062054314266242475953424591523745553294649933914863436452418338955601707324063941469427570576061402192013389819163732976141804255326955705706510924403645006425776221948784638985606199052248002408402042733263838591309659079017908681051220006415571194801054092150249648798684869613966893685155908056347031855348997977854112988544325320214802559777672009107627958003040709363154261350598982322687078945907003179148869131277708121962302707169288021042406328898442093132157350474073833848585116383679975566813253166128656294037380224411141589412171133990691387242300859276597197697110562219812269560453981548458897302965526877420960624863953698582692798080059942355079141674459506391272476210231434586851267317688881406688709802879116329000404477877177282598662184849203194024304243585037189692692314499337534800326938685136156304366280912720429633164253800260719088888785755880452940978664535047405043212920914735575542303159325735444786825018393278404992187316265462153516575396449102997877340321542427342055363593164574805678735985654511425089971517397668655053316796629327145173110466196942315906691878341924286550284463746062780656391492563357175709570177673782636284075916284001269032746428614513209719523088762838696013586098244583209396002128892526250686560813005731398001969727189726683451419375218348700212468074317315008419330447788418150097742568783689482600402585239293519188592612414547148816844875860333220916038324954109188164245844513205404358120734674062639837152527602900781486251923641564898500578813157878935694719404441518493712898303318911339527818184332633529883781973693298839625065793020263670884862898767110102299168101315803204385006054032764237432614874100952911834060488768814676301934255609563309853768521435643524110034864041610031738698952389050469333853593441500857729469316765590168916157330285129967092104157093843140749216504332081773784619520146926834290639935013810805098653655351477393138833042964757737073533788053278392277912352820906031668075363814685847166879394825835748407681283273408518283872672189195011042682672061394867193647103485266110004687050647936169477046334610429368924352560011348528371450790293453665435221734013686843647757020216436277186509699795711731583376137991089232268724027236821334992391095480586042829838845867324502265499128854507390416417438946539270016103904888273979639420643053453525951381236110646211039548860340321081919143973397929276478160284364871985837176947115819662415029417269707209840808463076160167781986882651066888961412230896965030511866590184557805161287129747601243781369848867499645421278327770411504833861598338619424404841110264467855640416343583757543206333003099655556436197211727033391016471786537269672196319698909895760128624084457216569247867265792663690536399956566778919786203142321006119408560254488716896661616040212918743540732409715353335187666622959874252232449504953874169465220126183511548392555650166875618802994138239568374723557166327957020104342589349760306070384044663532572194696442686545738540618709644499708521400224022253811188802575864820641112374253074945943719962868210582693159926926225358366582370690849627123497046731961133871827978040783472876143300614096977840654873254744136653788356040662706576442431695749932201790791008135318540504005807885876224249981217011828831859542153358694936237402343524818250239545662375628972985754963528581727062645179119140160377139753433146623214410835767491886012806963998988718027848021381440439673761635141568594784639025750066270215417220731063977855994580160336188644044972982010032264131230288353594931010049393414714112075395796587579530255669476905358954219983857668736453835163030320000473476547388681590985334479827654980256000364053425138880914428119665327980472768354505710326406641247786805580886236528666505832839424061041326222809955591326502990434282876038333031104118182747294970518178430185979418779750921055829022715450365976520720383691545402062639039549143513191153492311676430428710975186718193248277001265582575951145292365389727320386065776513560659375932828213578354002834268460240173992255559207725651498016310039075552252643437191098792108541720620545292491929508340507761835754180529621480126407128812407978404056165614576734124389398212450468371151800398092626768765158230957731424181183842369277204664789255349493869617777054945300633760197182235431314554512167385274802791861517877267058848031642388743414718439500117624761608364464776527988000670749145601932280927493256950407708194460273906519267088159555860527251975594434304154937262994343792725010788715752351322362356491242519117589262907545199861208482601127797114031809784321755684696042079319112078491179110251477079349008678798539361614976146092428079853615647617339855240001490006406004622731783653154346762311843362978209100979101404852156561523893520997422106839728803197869213090084176622035577691571373728441037336223469589196130125253257485882712905481897881161383261200071635482203896033166576273896304710826539967991833056993489390022830957155034170662703382545848538608786923115697104279964287410859009969449068961133623768767944602810536447308431891261341771337967940208458515704046680725268912565813460615138357167502101254941247350028709246331847431338922935968523248309041672624523723500916637599685572094040050738204869360176296706743607262881683137670189124930910694398804529771910122834797343559211690078671295598246324954823960157508508916135839019680258784913202222100467332311517785175291014280901981879780121559341082393508714335706333192545090410419253886856966519962606151156859257160843265549597124167178139823525223324956722426495231091772951709912668536169144196793363258677617933191376995639691627600265369856632855171231828262198186804147667860081774712302387398084137799676336887606789597948443443746358862775908619608865318991525886822059868958183149148245175501744610918550624018880431312640882371605015570950365781133809559352298821030058279714536515872182450467384896947928780748146366404971794790319266906878794609026931984495827778066070734900909357313666838868208409251649038876412468070156111103545932102698695763776827290857762883202205067323198132357233035783090020293822674257350197409562849915181741569107631614726406877627611726798690940675680831711720537391154148493227161224746948164964497790629806829168498252718955291051517998934674252534119337053056028786960253972831349195027708765780960093376895448077168983230953679909086227110561230804617303690717812961775797863243991079913143364763522116932053828550368726425840815423959613491301312671636085697018671598155495198077165152887572932690064252789328211088485297976553380216028203137986801943216138673989136136974578439937041412363900476267916404147893717553055430357983072895960564980765167349727260551023494214619610268124362281935405620739424235255241979049220939170612482146135254696967819678089500008482403938265377594803887095172973830056523249223359986012076804463450889683077374675409403289013966168732459972070365199036280146885918271585280284809134000662576442876147920054271795142813347186474748082643100491611500263818820622093294837642292088433471670773387958824144265065092635089239250600869071559404838155248250770985658484982450890473376681756559056535540551996522160944351043875049878833158463821986800885178289810692541696088043025522445790078201049229320915468595009587420550980364078343924189594515234638655335122094368162150243924291885984947965516685632600026525548911769544716547969828379928342851827558093184997359753858343806047045960847635607868958762548188169895123577126839347560699384952929629345886835337722170587951373164836858771814954250674918578957339208509636844595774796344643494428664830751572631569462067205594655808519535711210115587364009409449798004798521047607641778512057406875396364942766650235971986506810295283107446353147835043967215243109925705281775807904757742888532409338797301013749239238125645114072396172980869004120322426755640169170857493603404451673679769255119958288241143182686570645215396338350193273207289548197075489264498209791384029478303384937377166611061135363728898703287704501109258722451085786017078083651371779490571159857758306822921666781043295769166189050431693645364474822106120752922841705130281286350540905923917181331673096781836710498639724530090320579415132059433656611659943452142567801737259592978357242994320438457984207760717475364472788869741487707314481467310803870878310716074835805633844924433100848405502572754723234026686167968713616958723035841612135720280816959061545733605797338567879630262841522889472706850976180740235546037866444218471062187743007185180949759173123735256172422686140599447739838871835811141510031935042968733608027046627582151894108079928490837724515054572348931763796498931394036118368977361416565121473718779869186373034386960135831795425369811573738935890294353565792781141604760002621624360808425398298852462208857157246390350261882088071502281470058530908323968206196678510984666030672094351182986682964370932584280097091562270821405170593661408042163659474401961487722798671476003443611331977082358847491745900793604077952963140442834861509507615403844637364561460211967225281971805231567101896402441940116878382852556945024968922013644160813535951940638586631796701013085902081404384070971270159729986303032785054861931465585757670632407622037458868449179485400983255515823934667709049901165575662697391811212729476009026414900265707706219909119804122837871132384090977770719314878370926041047500727322224839309203644242543935578977384137953209259417759016685090809007130976881955732738322564005169470695664518427274209327059274126236102437892024356917662406976913627458733001347927723304713635608279501249114231325857392533413951236992824747197430098187656326733490799732370446810222732236313302090428527287983075219748454697418885522832424278798479450072858587197816397889730034558810093878623327614618001764354710033726669781778384319258756146034617253908530327084544438518996797098359295818751462798921879152209173596236668750727630417493107999690273804665153756620280388536792663883728156610265570654411290905486125911790091242889530090625530553163268069293517134694549376559170292712140635855619112996351051404253695687760389228674540803416836103572811949827706297204840527073527157852673132156562776410681825976106397666098000898406816559392808969260708206744026834089719287971383347611655198418575452064921591760367043309710561492115807958874564101710098028169418722021553315844300621509928159564737946015767147298223199630813395768681061903881520201771277397318252608178520091872823621950784343737969968655974508742448779418618458329023755068806298059855493115237390513262547067091252571065125209409345157781653600719794941487174211856696449743367754954423009545430089157981364366138834596872894136830477970602891172572050854172096172914115711515626673793339224804424509282766627695453657113478135877844338083219335588556632002606188676987341462015180571220948634465414004753355469671727848498883746030564437933993165585958714567273192400926501013626513220128123933775367194539986426250747501588551266123274671313466594480447996202863693400289225828329821840617012632035641970659316283982983815390245157329717620392577350142149629567413466363031721583164489036495517852864984603529252597327122010994021477177657346328519878388141073227995882297043649412792912112819631234158601806526624545979651695167492582275866645800272369503897438397599704841043791079471600250755129019730891350853825876553576634799456399051279079092223589662874098220099695256285370357106233272435499799619727764410961109157202992239742148310492369456405560876148168359858816101315861209729325981956234973360366551552765380017561892268950717412220638434005138583948009805454444829025264923114377304349584465294183067380567537777312777540052039981352718907527260854743403732816056310770351486859877305190554346468827586524536955804451416355390426939048376537799730771773623025048634686876129075460191553521397918075501193686718502678533578071213962865286554814065600666540301538773595280336397257314113056128687150158305143588479114135755029905190786348009111009122142276801109837304989815265746603108844015808040970605081618120835152050152592192758434764110726367191762772242746076290019202808059891146750610786115285740082042792421499668046474267116014406830523521774000816646927320919726231652164702545787939115256801201595453291956135359420326763736262883761086139737210677878526512009253154822603884361372526157325280980543086451915941771472228188625938353502945974572645415720950731876901320533362580537133369208458467633374040148817249728493466499029630638005105750791048702055581204844606012416490460512687984303859780788420982748012196701324972208390658359080125244910190864579134168843719933095372755320462794845264832317196246390243781524377383116192174348026732025564823060266236027316496577999226303322937174647840667973010567130920469003292745168044064837098068880538894548715345271134491506203120158764435830681684223076972008372621328031368914837306033532100066931840902757402768929203715028845431220786998321799952992026856796703999320939861710244640463925446392065804743084313129599943891312175450731504386820699464179893443712135629163289089940431018790412435788810025309989107336431650608925068228827556985025838974094239494916651556611878565970792842209517468520742238015214497943590358920153926342244197931311708894466822942529703244271775629206029494598922901276426185763470046986099189920988822981872639158197224457583949714064848725361874942277172390924817332252637650682173806004706565904363215151615955686275447795576239535111361373309314189139883964133067274906191504175460137847637711558496617354154154361005211464434483538881227643307342613086526449957820880155089232221728558001330231670956808273865647265350675313000199152215988617097888302152115436063993097119517054584708580936162141152936474439632829803010192924810340072442856002509864724593445337516680021755855848985488612549034834114992303221420052422266507583937079218903798369185936962457768884293748625021237866705067237109249862949076058519802990997788942076863620539520084711934715634237629718216427862719996121937991639132128936521347767578724055385675852530684361837641605568585562837458084853667726867246891335296400099312160011013449668816801184256769180711916704391115018066112225295265824605164550157930189120433757648070124022369016573554771903491857286466568409477656652108335117825062208235985556964205682254449004171998095286015869342096792549913603642022680333994640281271754197759316950741983775512254486499033268788031382359810972389957000009588447287356958781162433249710093775463623772035313674056724230092395800064256025081480767888230761759401670948294027976369425648305541502750327607618409384632395332412519933895793232457208750480381863779881350690652747171497412420881222965178937364071786902588982728158304974910709115032654860515947295276633291102083698128209449812993778683347382748002634810886052992986644103487750837132717719821022340349827208926250494235788817389484002672534534392268175377228296944504703200931415361889999421554727844097634099034925401038954533814961425488908498540534538640472918766211069479573877712659473066045676500979591129075634359358283853925687516693922058133318524693410815862854685332897808872051755104703611726242835033796465109851563178517544291911846051270564169713720475536786418248837920892276877557000683278603746787305544957921478429601416774863109462004486215134118901768223841586866670036867443267245538495753064821716585727615841424909481934361305442138462215973693039324665276958952518888428329818722083455720545634152942134764834937849938641513448965920093783293415643072614267627560023537360864526087868740236737550851771466578391490710185278291695850923651529332590443761010774674083171475133073050051318278205301432114441273479059351852285765724778095942489621470354744231299974481842156841485182749023221744086093393389331683604595694146084253321948609669808125695075551448549283674793944005598840780522910053442404935504445045592211425501034440045864575009622700648467936980617391910916662648752625550061029271733759931708639523362734992347872342631959065056375518676423280404682981876456678066882672508077988778475784204343110863782510374061513759062586813014484911852420530642065499418075795689377319716232130407908373639877710978475778144253704366141189780878148024896489181384182322927087133604815447941848550930349982313328538115065437689679493930599037725489897595606376126690044254542663348811507396953201166996308742983903335207329412901640705871153694608641466803102736606660496537007041913748449292086852570966454497495732514717134602909201078964333591033971153505679002439386134580244417563057429249929512611967905157959807213706238149813630734290523949673783878482568570432823386066972223130667921182146658097463026791011086586625878719336848600127258540574950960482589740055775364314547650898724841744640444231788803372057217056887912693016944893675640938568161900678944589131249944651761633066633538213886043347218021120605571282082743009367171216186647997566876850743619350682263145973123546549033588193372367770124991232654967794826575717661114643076081587427461085064788111119842235813190409447775034649422907776140182498188426040424467709069911011835696837190115639744131204411170908530929356802536329252203049094876562715119611141624843119630856509926785441187730031298037652909893320401397858308687414798315857866282885401355213768931847560976023451558369571746084874113830043937978368634054071884574420851114637369221001563456585090746548757520463576127908767458510558490078991073757530884626790049009461537251922872075979817567641864466098396610748287324854691330317747899025808666474434335084790096009330682341034527003042796141773737739041640007605524811165253823553999903351970235386628517552614668395776674587061029657778885107020374627919170542411543072737451713236335909750604895198554622587735133614566541948445463055081746152667796635069325739511336933970316299785411782796833386372965067076943005527864391735203457723132395122240466127053240273394511411123213828872588369452773041803551282431134066725622469938619828691376550578927069520991498248744463905869924112155992858314503713571660107097804141868412426965833678992515851751179885831148351950260616098042241265131933590462571085453587528141993503956238880047319482354921083420141665091225957182419695957285278949678477206509396707164072660355480272045606496849478863739085749202031166643671627142107843585431296113651971515485276673507429064346820443904350470586419365357968940542023146786644350943218955822628764490662300243870032225964354928742708192710992997682422007863295731512492818334911919368846309667648016711484708985657986807607677307548819921287751039226016473652816050377867870840009318911803490562519213834953431213330276912766687042477563623301713503128080134746724535367499020737200281902397168643043936921615817980710412362513826382377219592285914758303693111948754352675291245436255895802118807050683032628192487190480876132377752426833217088107342786727171841275832505746976996296632094944365883037479156648613155642381717852947248346228343275296625199882492043452007117637549189587128968111217778943243671297873076486541119018553278397134564301946104049499956313242866949317155111457215274161508351883096020344593781285547196202533745135036709958376489580831685091614844081625858940852179948365094864536618069682266885665368801210508455603667572362053185902232687639919368082828900111640117311591224161683587051962379822460612364199187538626463056766054877806520812269428359768037747471340707459212717247896154634941652599920187415304542261365546408922562362497823423825131644687499156953773361315080210024462097132664864782500265055769798215340326134339529949257949055402958913368153771776331853203309325610182545605774817943113962756473026895699285241589001770113072798177357043848244963002024710284398098616328677870295608191723411201670838050793755540567937096600148045145753769611000248294882088618374536339397077084039568907524613988526684202203115656483274291821929628866051113836986606291407148726238319333977671637420825918719197090438705464888673475432771549528129160395047544064959083026743333251972662489479597673843130250406466276113909327808548432136171795302410647018962393964460450369182277986498909545212755937596673362522150365369027149802755245922476925814040898321876408325978527826537038193182372512345348090999061390333189893143204392897848190384691355661372573057493714048992176726613026418086117357869832706269466689761768607003899823156124358007161641312812499348462917478135216782012123860711005179037653387657196950509333432476189040630662387168602512200040602295084137242636110421286652292413842720299321141070125121006388599160219256740172435031225697595624241938094373481640024826569597532439570413307352392793063000848953917931409580461207066540827969211107572243070742438253626880060295759789252462431648146714286731931701620720120768602146561533862970358804306123432200772267653576782386570405428052714393585992040618847674473979350603738056179720210662261657385800795811969474092630421902632738604831002607249967825692705796416858173573808086819528461076073460117811415979232894380665853457701767656874707076619425014069667359565053917466473253885042524845176415818974611417572373646906944132113551980354137807006276521162771687446029548464745875360980570068207358352797199904734050037235894333851931913345564985978693054139026889707119503894179501690305415741019801739181378315910240616178691759036789832605379144052572246707322519609460512429303562952012656579519027814702499808939801480036324154867394351719778637925878951696656098131618787705792549315037593199986578106894788426269469545522217544654599823980623771323913962958251756804025834731773145927689073477879254004857627302298147214814795863035906572962645123355053360806145907213827053371163641433309211388553919010602693639342801241399110465368181216080709001145095693233513636632267292688225813882496350926967195544187480402837451919386945848917620325071035188877491901971963127961148980956107893681164788113773797947521703246080889148257546775837562886113181257436677574277464430777048930021434487087114069109578826878367968245325225594705785790996672932518549625326552022099140582736258765673160357476258476643808323788891098849262606395542470076875055338860657629260547089156752233446041432508468198807487898896580205886657837625157644765290222959486563115294575453902579568522280439653607085670921758683769052778096185133008764580582796837494437945950280793894335355448794265860070787543459059463955285607015422110838524663288323027140092731190384166706301029903389638376097199756404133418507473249129075982794075794779674784085711284672629380541281584336999425920975314835819831316309290134554257746801382961005537684566627654289484586070281006194398900802942269132424577051821411454363478482178753722682382517786511444998820042189673671579496945454186585795823601125269995524831501961010642899237834681714981332697335163874432243314251930415230204432940169213061358997441983199068414528464227271294632864887975739157866056324568191266764105051055958228147271936192870302854850950537664637132268078618259437991523129800380333419471790675762997902981671047512022298189628935114216689066973005292960190346317041412786195321770203078667674872069012133071852244380570080593162071444613072561350398359581212618324200530946214766045288028660553226466140034936218055224124452093059413856708368470729901294637279763315153302692463895094452792938229048297634043281766458678667642518254343676283270144392907036619379388006341913963033879942831515853670636433262515415712176309033394833357054248287012920318041292797285045943484519097311722509261195540723160291958805696310081111416164509477870197289013007278686306947087081269239329465340067931822039265354328697494365563969312518650999500893201399859099633111551527445284043754919650137046808003002280342682965650270213664136215012162453766975455323980206574947737638490464449260978615861137474887370038018089756074911796397388596472024902833328332830172635554898484946318866694524246703047532225593975483589715704539994858814215321297054459975992436199682681653428296740888956956450722487023702105663910098675464455261434926026765089111962671908115902443071091465090926680737875909571983760922303966483644343452252595214412782161159299300701078496336806518928077674471908520798752894983094998299738563412275580782912494750353515757260623562341584455541939323197721738455248412908064939726698843062010483744419943966813638361597300524450115839298948030928956930969289445611910207325867752603292541611279876080347537932191001100921295592170424189056861021225757036215665732807424366971318178561541615138658929862216867764877346428635718253463650927556671083696356193767673711172006890790496730313068419259870553554927083641096297232658938460925875364156555346581943915024779104832849078743064318121135852632815078430220311814100827403651489645068054522772346851871727570775177935776722002743790419263107765161334800164980750488832386636778162136731833320178560677307763429216102557904166578664902985574207171629469894842787109063593736021719434766540240026742484647816398511895060568114513541208736616891401641678020364989852537396687858448116252675485061447851834926969151403778600835924037387956256210265975237502511361497780276354331025297592819867581737687164186647911267519032122450414224563009376207766527413409291639506841198528489595201828344006890596396895440687846890129343433344051924585683502367811308880991349680511669827044412333947810221419172753490972359718309536830788492846944447467089779172667362439848930426930498773947587251593241558756293469867609555797242610178322330361770463715560935550376455046970630420307546710259288916236875217841825772798744742503485048553454430816660077627030662230827259226425473749839591170814417323157256863641945641059168896087411964395051568196907505683410825972512435164671472957488270532690720365828025546349907863629461913524147017032760647372556075075920453525418653748909403152147374258291757666561675704236847823785234831505904477811186385792731008923261449243709173547932386012200759194064560464121996116974783301310907666671684361269506032219779965131377133495921182474294547426695452130991662674135251718983835366867816047972274611667930916675571498629503420110461109875977237735812706330002030728696061696374572786833929711792409377540751762324794028295940154018056502443921448418853024129905811378630708810342687584969720145280935794122024012172605016124824560466254829468915935199392153622869622357837222031036457241385602270524464047122103269597003928846516377210883803535742663662219654267388161104473626407678296023927037496528337728647214293637285533529557739559074425320751608391997966793984109896885244686806856229960706400062988888518712611430679384625137750490085895423229525180885515956209699883244546930296471455134728819020684550982010355118526379172531728993141712299903076531264549756340729642841812622939214149937915277469615048531025245549183231267893801721214763789547497034995549634593757707619056970517315001492700029579349905874911676783326628505504006892662518766654602992864051727651185824070475460602080151289382249557877160393498202542452845227752079568493942334237051331527329001739785880214195746860279979567030678538268588253635319045887301290212174962918228627533167186080367472451882015562142649304540264305344143132447906129991197622377910983905868416775016115000524776078230261469878881695442476586856943033417802276457973609456483320248573537818363237995094813905766717492227017065065790281708641459487709869559273932177616263542116767719593083659108587102900022841763009131467908963880009928728534218150550618025856823719684421910251653765432281790824191131207244010383259560027153176300163226661774899299521056772015767652016705387322699810086177508404533560543959703345117018425513203418173697404477295339443565561320040761926803070685554744108891884238399513768398670994382232420498129317583469950729100207036828974016209825350651922546040269410668042509416590134966818422680618830526382108868504012738610029558127473802643585366960039099194106450937892295462436129071061999569963060994892768555138385702899403531240255515014772713882535065033420936371610507100514584277657999162186176345153133332650813666352225986475500158089116151175048647143560075277774701902989057473257593698690828832777133418387354367013348391151868725318060742646091207319632023495480858853610297002062187165097878779622195960777381612200694449210150930118985539350188123820032229557113008919519347288188266773064199138255461433563891045625793291351286591137250223424172705154654946790655267798226194337810094974654027930670444906457174886537028474957261035397904573120688408563877030012307539102356637935298840473849711387838054823739940726729899762689407478783178440249060660431247217228677264251329014118932449496079284936293936274729296231860906120416377256118627302844714156599979741584836583574981350972390949330145319954543502276912736668698414685158224737731468663800052130415456112786871996110503423371096330758906899401341190482773110336209084398281236100995989342340543516316269543420146124294306084977139136892013615762038949784577041702781894904644955030585239222194807395100668953022445855416223910001671737903005785614991150549722700423707372235549764593573722650374909730389643700953395864716721033234038576320586174612883705175996346332097368822912022854813056572046535183093905531472775013199957107494048502858382568201373292690865666783407831956731206668361523447125736549226976574026094562399037593133503099200048481243950488797790111521034301695595646426546016056928002955219014142398868989126116909171229607721220968438498894235141864972885603271667467006904439184640760588337145933500468573259372125935739703641285451909882791565214015008415682442943755961500757778620121251107217032046620835405821258687346219923532767282879619250548978486881127386900504679190416166555390916238114654351562468077281183322107124663769963046993819032294164893667580954801391338347424418451366146166874806885144339236177198693978674477190509038406960829766834834454971497283522144224459853070665854784857174332169275828231782885373113728448454281305348400200336932136819561143058597707094001898742247266129120587633328511700899785776283719547040971928434136794790111802761024815336898423146661827010358441703255267123141068450227192557353595241005730983816444524947892052812999555896856648085835818987083854351989061146786382695491993313243705066095045177126986221134394185891687539481522326513940549259460775206389524378904075959106267334508917377686426518238072682440827704272724922487534114608226441959293295771001594847242430453481732786876301203428084627584910194520215069533099655105606998627230038680862937546664479032685362120119835507885827832807738771525840118003007715136958291963513373919539245010832969297490046891131796415961314802539288377298920866615157063244591223015885263630410367213514777727863348593186466098236443600508953858446571128274105746878955541842683281319721355768564874934192277713285520312671697943336940133115345304042858421495112116346401607200107358518602742384945682396818965280072867778533537209813713341520446339944905814839792158379905909363322651409028782025865729769772070606263873537346318292553210745607565957396498512715515861955065850132872206596587547375650320530817735649776188613975647266627964470337010142377334454599575776836173674260907739106713291353814520727119848230531530702179776665128685431100965729752729218692839560665916312927170552477376517439348601947899368468309191075282174115025822354271951633520650785258343719538000210711526303148654595198918866470119756924960180214833342026168343234672707125318211012577754638680698356788582536495554167509039181621499999585698624582784749158244449587001421623343363601490080880205096866922814828775200410949422198067343122384714628692544875139217842369927245825964065100616554472612218857909678704200814924486276970133589088374743661629213278874875512369195927481265619968688796466374602625684649064509897339109960421783837965974508025201953325888982490658738279336794908861302536277856472723118974487164994374143147064561343882055145187670585929136664399634905799393125867599652766037295252446034450958054308429663677816974600032241749288752503987218333576281877464395302023986974668037179804507559149347207926318980520011321459015967470524737480799884847690772829007595614502125755619156758710601083479718780636806336086326481943893310488433482691549306533266187305887923455824595351217241498679666749628189556585692212680658753141265700522574242305650372370599005758546713779624313816073146794164034780323117376379803902040648533495501721731263643997566425018450753184374806735226203613712791177974425545496771540595290453638970765537971046852562502394134233290649973699140003059665309300201817907917683906697087636977975535922677882582192332936783111238595953599228090041070903386879417576043349929537669749908790597553992575471090177682699702483343228665415013827086555737894314359746798611332802117386972335286450417732580937072976752653296538584333333508990688392860669104083212141592762986140209182149865184298039489941066236033237369134899033472568593575927841096129755234587368725970206200763884655907696870958518188483860099441623216376449908551993269334616281614408965120820931171456397123566642664918281922602312293786050323214464605964725305196382590480510848764422239914371512922813911082562561240631408459828841632401436938726366220936393069279817612250541637088750792299415072969262429571048980681199672557190505777941358416813238846595702024812902803755527013777106090493530448516978003582342438254940006875957446781235992551563230528227070733362199865285623191408820401590045224010047974055223667968203382741311046264927810633639173085833678603020974922323612760761042542977534475037373334111725131069144634633148102269445386331125409630396465449791692348666252870241327378835971683871688810285947609172953071893559737539624155166052559048207686624946406153809358255386719596883364469009138176243255372668086534356170691528796429527970530892350965875264114914564578599332674777881711017196898852664342752324401444228700440416811169299951283134774643112413410924743152576408670099968641194058813414624137530345272106284433375719280323264984123814316119384629564063955984354635099097136399603037421299703090936841764390069884989531302754089247102346478683220679734892336046691692195595566440088945986864647510995566746114875539546165857222412860556589514133836188170396463960875438596771682083582445482534730987723411005440364329818288047319686162978489790755978048758762418838717724756013818049991223968361225755675309548170162756226273331643843141761509377966803539919986141665037992313266082430969819978388679768360951162889659770723299717777629353722258438568563030347748275189833975944455576249008655004066668874109835651536264612738817176257966292540976154778637348351371793908583234383762777106379635863750669476967467539373085890121142194324035627962580649803213229178799460517356327908319391995608151576662520776868377218192200003703597415177367720977492156028280815819024872197064410844779930361728505468895344135742004195958515071606790090539514053443073123034435902497776134582971427396970839547894296870642788793711219272907459425723440940748406008599432787948630582064737872217301052397057824253381053029301425912696092006656492143989871800866669634589490919192840577255462807542512986017532614354742358227213251432222918367892144446004139795338456509281200263056693636928849363698301299026729599600722225466856311003448810731821684045208379436250058310073224010453443154429519285471285970800509960473135791363141863352426670855045618834899605345841579504741837332586604329581261759309725820213273451348147320095963938862229515614434111933872433439036278132848338624654635713884423793586119058608518960949848657889084403362504778449238135959940523373677590227390496785790382503776183938081609185286578873820577209296250578454026610709108185847532505644822630019888667875903471173148141522612616860158834585660463028497826913825973266815510860805223759042355945832039559272591942780683661443293663157210132534874811077604060067559492086814202733361158443634049106712466922207672350757516865055702891807959963455363213359327931752641122899403222444102415329156615060044715610247581269305601158745911166180409931281562180319656731003784420697499976688802060179398868526148443058907552107486271002027113749793386214805037299876009692130175326241157883779583888423232838235128766612712880291038741970612498065057020732972480381467162475541913729454257945627270669630382987361421754832673682214739703189985367320159291039532486652125270670566535332726024378845380255622282405300783286889043203344090370970332721656592386922046073233537099018331098508838196952396782252989427441348124836834753872300788076172097513839406154064497681549146574767745167540757588165379166591414834588750987418655288364596574031400193356888711105212047223336149039558326248839995742138510118652513059345306798405902309627901226961287807024170551579639002282594937891420882635040018053156394551665564107449479145885290193271642996277667000586612857953734290770101290285460086666324319684490395296042889788779925055549930421947062030801430656455916993665795212475371075635068504995715151684839207005052779077280413751849066580593379477367771128718009844740437559486727885058011081436970309492137840642638421840518569148094778168660161617374042750549446963454552340786219772772421412923554192694681174951222898707510113242481266785281186296786576148021255995754516222261444679885077724400410931271893625152760707458867280127849552624685959921845751342960279573476059467712972472063523416642187184416047982494939672693978828786999472454769926383922900995720696775683986040941654268514716575430098931872672900880648441540116450345989350153588125602509877781269945861089267792795759357784537549506382478454835907824957866407641913610366272886154131364376990937119404647607576868935566593020432588892483520601317981020219702559103991304987377004463776495257048141067495819009202656855775018504328665338130974895198095889548443648495536410601905457915474429911433735103656697919871138453137276659958855906577577281268261662543511185591547759174273020237452327497926088297238044827850525016362619924713758034645783661301860503818058151734351722610047478766590440258283047801999422099734010043150423403836433945346757175471546578334498462331168736080654754175829067496956920671038566979526610798821919267529797473978702916950615831762142477458118981156629224162209305834138065676353975560456437095970298191594639196048619003296770957589759105411612635336819491726431140724010557428055790895197543956369589270627460534710976894110445089940509101141749721894819797476449915178492266938775018195036251706371896470420893104666276834840895014683107394313564709723118513179971629866893263786559060105871289338726496247103667377917960710490320606890213848961033314030406220797271987640474021412950071055619709905739964780920771450070495485759754609326083306529692860652077167751099328186639135589929247095544440590006656851530156006486511220842364100267186730578463818063454364564406805533681354129968743118183488033136036382682475604881430719142816269753322978607201219662802072737779524685659456741131073466772737694247412882718413924564975483590595739098774583511743260263347914439540588389149166257354667717638365513842422183818475624998739929780884402350701509892227488083295655182409713885403491043844137000360094950128975928781722591670914954891496794930824594454036068771155508707058194894391813513361263260168948928977117861382758264572298556655909118014211823005269983038664781742756358086663091162464145829772672613219193058859025736864934429908941372641747347444193379942834149528601515178563728337712713254837372181302935226391463991253033889146476834691904597119936505905540281261805478750628388830885825219679359489804454536268788933644409235717763383567986808249792724712354932127714614505929555677655035359893997807432643430575870629442918361805727786986341512415469683371467894176084692989687083258392531819384144192172847895435418329898283509743943077336009461179573603343449898604764251815544655838744476158680601628566711719297771946813440298130147958857681403908903402221688395782154010082237437556756806518488814157959108675968451059283257064421242402968860033281831669139609799555876101366969321328305389312903322866830121073979399500653144297881554957713349989072356644733915759164778846216824042073243688398547039897230621267209721872920690411957948335305715718612446180139334514226323945824363444717969368370390635241424398115584119965452120791697349913099135175719076060717587661825912118875927069484167331508786115476361372307576051388365769263498967671512492604319515667192900995904382658448997314746299588302057950236055865011443993265716475582497322276218653402415407401287972182231907324695888460257947410652964040997626396274388793566768488992159190329593912476859679288668129391302520013808312432728444799291882551377082305332127933114844477462304564275137517970583904324096574298917315376476161092883043207361071226869816571664130251492078228338294015858881404360677503933123441710743666841804414787394297555804775603929664467796705338236322755243972180692639606604114039416659852401696820474886573212290599274070383029389882796725020405273077654726043256342461323278090035434813301710265741364659151277529495317181740420773590920511423754287757052358191641259214016711713223755613575790797665099051873075251052601887500378144566439641969943602870678918334566704681118096281825264283209103003920758377182476308638333730279217384345308609158134096995843817102778832468413808378490683903130057825399393441289706886409622793451858004272813193674484876493073552505078618346152749278930668242835021466378582849230043446538792183688207173484151722777569741672687749055554008450433188438870842434209654472392106102142269872946847903723877574156014203670250127967841731441050954001577513060141112362051196769200897755329195667400288672825186913484404755795239304243687647457284600286142695366727358435734366165774124634675597403235092708827290621500984093102358286098267928176031022863098668892467410263966172426032910187299088259269382343337300559255888422579869135217979555625466686557053911355394801452218047453924056313642655572160630926195927173102959402602249014611592148723162721513359668966859825437500828196809611725638405316137259990377479183904300467248246607980313460438271515819431743278431713278261735840445095954866390830956246669188664637161719037908137496150935659566626034391771180655418202770295987091097073350180276109892000089745606042111656919960718373901224013435153878530353544236101596334043987097673374609046213505626304198163712276428818203443303154221681644175463425048296202174744500111480458913612267464722369399821454867309021909414852174319234107875485682957092103602643511433572642023548659411236356039402462723176177695962801927410182331091883749762853244971494237763638497504604065997069134538586473853744063715325037678834017419805437554594433357913593230811912094816404931418220762718088971753445710927753849714895633979817305077342882364482670196794173198240905802127017870131189885120105588706581757907846384982087157027273349357781437581351497300310813807887458645735029406106907736513511764116750457087434842824333819418056517198740051117179917706791580648968138316492246923796672267862996506041543023338664233839726939993313874416015384304777179038095194249742488694396782373347512824713787650582287088653433214397078295195819859614284436160450733386698111630245069902111458404109089870696294993291226767964118534527257491004386691357987197520496752764910725175055936916825189555294424273897863211604596082925920121172520530012337121221615279769359360118944604718144809456926611230322478185368749166688624167550079615809691254835683511873318851632849488758831849110659404947554342800512691899825531387234192738655091144852529902361349136977573505731308037993109371640186733264301264850003944479584426901618553791449098059320656803879360865567005245470051486423556384510329046598710354288901998895042879902947624562776027522991514808284960880624183336498576172890063256823274751002234898690727100721474605480764480517679849329216557805664554063970235949530036127854558633083299634417258955433078700801423091175961961018258694554296665356778944379713539573163028339622631798084578761660344489773283147379215659052917378037601902629546794716164789697580409651180465832465080551324692456905098512568576599994339357508375740203880738937155072058903636883719894640453307007440067220134851711618973346763901476935131716126042486842667517034653689260230144622061093201856994995791801623177705343011513973755047498044470101155404345705635064375114789768059049856296726437537534147494414354621513758390629189944652987390212115055330069733730701796058679418504857004735327278095083570906630462765397325264199376156423392571669541537001514467639848693107298869168217443163950089032785268119511338945201190439887369881323904039517234254912920190687173102416208370599236417026132734138161261923142502472808039049437137260792997923843471875575596263173462378701173366172152640932452355486615879563299962004279397652208316151441580429705207602389767311307055972033949186372150007180645146553733517860809072184821541998626111906593422422503604553604169304495965417368966081937042662755990755603953047775608918325986710572767932219097261933933939321179269813661960982080822022540508983964964354074064811023548382936360384723951529223661389458482302182066439169462418138861870952103328443419290970558282141949799529195188575511502332013974105470011454519612621279536550512023985954997119830318529452389514634533364800291184845421183589516894056406610130635569168903316337186977139772726560784607261676321444941739983623770151378545033442930880368108935134701011104409590053394841674372899018409361960079439430001989756083660949282633425743281932118439617030247495364860926193349428930926799395091041105116776190550662767752830539783605875285346346964462216231378845057717487643693850173315818087739563126424600303575577153166571341276499249906658881805670181938577677406405834684514298037296617388769960390498688382745173654557617222823701863408156890079010683495620057703065532917749607883429987337733105195090124821265525190183567254741375477378330979688795119276902051283273409671303792893003511370514681201976850135979652722819498835396040179587567213052876849175186177983447681765385261431165243386011904822488806184276823730858844243113147889103620323985773251344173947372592312606883454257751009310495945455783267311017435856901512435558672173267556316620978126228599380542844537813456246160024370777553215083558491083855975020369912078550165691952665514930669422566810842880332882203924900333835349331835057039560596862254268177514187906761983022937057001828982969347541159068028570750042165615097555215688642829839587107400420276703936694586411990197597612150441466010234899709216370099743834292043821311769395247896925463085027655154431926252773841818600462692524177928002062035479074942287641878464975106217311691265335165495014946022904537116384302088493267103305705153378726454301378480385194831312370267557846494121512994251502976698590117056770190958016230266205019656258518391718398315570149107286576736714859655199886094315533681748836189298096109982506197963258664396500261854699196887729212352291722063303299897619293328117539367878589835013433858749473889351360393660337793597797404845636570897565588508603422052590340744446325812380381987737875485028693260633675459495056657110666947843611290412832402711456064810538617613081380331334969214431622102685198518936482420926127403853838885980400434840327056356266272048263317917522492024537701575145097277680672728393945128541348497910517305917791201979108637522395525770486242625440970731004318439513012782212658852042596593851017359829823950533826160775903331391578068014792751862130260225171374261715198347136173333341591175048450507111313827747149076351898661035281582350984984011324076000072047729607803563816958799809642149283405290287070528267420106110149959671222422845726390403325360625299623728475668822124851500194685287158624894847808019282333232109326921711884541546575550654402443245297104679634401214003144812930046649907187376618520880783278728245972437058564081382807466601136333981626711405218565323719849724428797952348242435934016637655930496453047776638374458505181663943937858156544439016180430691584042141036184826256457830159138664320885232487986619445167036891533233521932676110890762092182545925842242077579463979606496596216441637605231705916408275807778150485597645721876732331572204627008895495248598621772065237715435267040668424491249263665732048202406709856341329416803406419130440866537375324422885064679733501579380795081437392197825829174259618103864687188960789353007238740908252127024610626018086306904671670492954155887076842416737953786338507198386289463334639124448551815696754557232668217803478049702540251120848393736670691948119570201661250230433063562418808099799578937229236181868614853863212178867149417323982364748784468952807751201265986615981369583193150875986393861762895302295325661445194031747395259444081511930590061815247387743735392390605366645073791860588474179880683911905946052990501342864733031220342267647234777965493896056927016498384381876052485980855520733043093306249674971499017989505064741454794789366489559301692107018770327758215554224808758631211566239982295050641419725518315861609176003346223921421226850101396509696568551311531135232634620867817048695455295500395805963015971296491683834975676086240387540313674573437766873726157325529417095146907509050351455224030659719582545602560456675957414035141701617741287241855175471921145855162423640624791838395480991708264295655463324207302729518101727738463369977426231677380717310103457761582181360655738071429000865854993596794738836116829554558620400125438092656023759757061609064081898453354942810125546585735367142400461982213198598167765627142831061760157144329209434186664885628262700268398350573090449912091511631526347222495617974683848892264654882342783747867579865825057966037284719526398321759258432224600015664135091646138098534912419636387530176038927467634946270023183961579437108118532707061153152849416489846400696657483199130409746793188742183380110645563809996670226583730269713698397779166927975900007662842309084986637296322387635735021132780211153550647018563629897583017559105710098248558881795053723507829809771956210872685366051170943442460471624479342038779521487257283943738041382794986745378687341458686018592737991515175313785296897047362049096508805790793472597197353061788434217090769845839398601779081086702300294317558955624689099603960004270078529025598269112588314595364023279642157457568849377738410988051288470809066798517270375856344799989361950797955682647615147844998531479063927041284850441221954797717140592483953485112479820814707060746030175733138709253970012700861912294942169678126687412924718438437770407744268388357723315869708473121103236679471953234529470065480954239873139364884784502192632933696800265374951612715062084070058259494492320092892547084953272499480596972468826360191510450724674057628077525608126501075968083812469222405725189469959381918283316497590410469454770728816679521977966761596826758008655207389064968953539012461980621284272165307362869707159631596842753937063105094737164350012410829783356442871267296388822224578793876304828365552199205609952004450252793781530651739402806321460691745172338228283537260942648684337784495174518258481078772437300099818569573790751898616776778600462102957127185897157158949168140950194879636875874456707238631584146360641717494525344386899832367444626923761257351385938370556782110957563549170161337223890523519782717344262442836485262763106823291840101446668956395929052432794361301802525399374015440931628658201590753879204854863145210579593194248059264028360773117030344545706575132218113036923168586421866342648015512111824003386881594485253750851351810466353669972246705972082017704039687955132351276655623693146741992859265180457194589338480673823864650723862838319440937564444286591913066300218982369415236954824356163638565783690831869882881051679600157622936619333166678365297526231553088455595365959334126996172011151407735536494169134023592263152554124082234194314411632834099169743319347142349071989250032119942820989055318066995563547146373429072044186932927089411696636705371198943023182208699863085019493139855089589374472642073932222382696434229937504198589948039984638305589127618961696429624929713721271236030481487967461815750967134366180402556957095321309058120771296324721847360600525563126260438636206142191197576853057919905760957696331609089206951463508537686171331277620948893426907025636002481964174829326783248647890411452788557886375235424196547602925926602226831699942715763447527924719811326485586674626178507384380754796964364255640728994576371464318401334276918900013691549448630097406928480235133463670047055821718954353419615578165999266974978647388558462479037406563584874188572667529166124302130407926384590847165539814402385164958091039165560592445345648795896449073172500019758962629201279948342119285635893290920069289999525453763754078720780321095277841010041731210859418106633925254404734115882880701436379585428387726140958285704644033988097774689257049117611287396025298392133500920602808606129907231972784061986622367593389405733826826727178264252716711547229032845686604838224102381896937421079599529901456920859240694637451671860504117018139140682415526616255107095771285935205943645020101683190656861612400087730498560702008147539199753292391091284073587878403347243621379673457468260553468993844068978167301544058387682750629392598565393459403243525081769390719552777555237610152648484683644519201868419624860724968383771282449261177403278374750917795378281631872308541521219997442812749198363396449741602225931103578178867194001131077137517667788093338549882875730726594280277971977647742942847253716772815670676739438580677602290397818317984917398964452212044449411527439962196167757676998338796309705362067937505940947307331640443608678649225419670067076276054799451248970293011076342088623803930405413217466844082871438539493904249164307762299169324443873491107883229199384509592366026816970915574827294515983153488201757399160911490574826705008073678486056309825641610818771622315642766061042979791692726966818112480566124099350866815646540395411349615063374590375189957993669570275980523568282554346638177726634422017057549008099261635234572778212736160643859968987198008865200472111442969568263091333916120052802974055371573729846707652067607677775844598793962402611452258055788185403789795851807084906188366519059980894381148391144354977727894388804120163394427863819093369924687718409986023939056510371519963792719136568392666058211397515021474034717667769726850009162560703136374038278066219430853211533624940838842960228245174293514045778793524809958280404057649375332468550388323964317541278102508629631745397519425699951386838243937644467999941674985000287316835531590259157344077307648761720546395399540559991356003817031578344473813327737856349249603212845133584009372243542738534433591453089460240173727117441505488210457196839195132684416937445468362959951070110805176649659394184166144162269731662397586405195641516178730942500911099634840572785786257328511996170271944519461837290622056877565190186472402990932759676439343757023759887397573712648077081930567275227944243466517725414507983300549530813033970378980538203471025680385682800864710456623481133731528333337257055337868036478017466412140640924598674347665000458251531715113959715505199986050514151708729720112975102474345370835118817629807147703383649863631547431937380958115578550772017676586307896616812227752646127297430770777767348653544056090882485985739442331847457776337826295100017764878537404312173559225130371847708277774707061892924925167811505692927868988486872716320419238801986715260543855255935873860842951352570491268533829202193481357058517251747174896880734436795277004260939395398232027983837053992133277126694686430743883289867136397192494607866553109751808054637562490454787970308813185820249114229796748744057607868496506249375896686210902219086840685196672057834090699987320528532198475524771173817596759296472928522306641887082360766526442115827066792384647642370756854886880530252947627041517303690167063754787077377199557127197809648295142103734106617685373347683804489103477669654649335420947966329975466571366162329275437832449569433476639749721088733430906637560505630400485124730664429470912200858406466482427872162925737232831527585093821672295076193988400161508060368178467801529357536684229361572953070240773065264225591175796749615046619395183575156491185346234827771071065491054059881755812108316538692234000342293867685885708517684607918483167822815278087658632307800042040250123151630345173600150395929065730477634064123882259074504017820185417621155671864403070109727678896423186736978343145829173552385082931394182741626931286243875280997100846713575884111232573210224785366786470414566581651473265756363398765583371130682829685149868826509199490644845618516160729426857129507087370340550127056426275718287450917438432866850321864702224287740559025605607175291285122013649929144124832758091353808195996069053466091162337489681790111399523185564011652895453547907601641475032887233027805378898167263330775944462407015376567310326428701981252791597824043985190562297663464019405502611594808466214190691297023837047908016136512384996304816606051645494840831106461875667177399325444543536482411012716485058645446685973269607351618307139002254928364100062591457435097988247002604216648394978330626806722177982077280053486964089400893355110535700833464762515072968058956247452616411843691631057979132712373749225183647463630837083176996085673999128961160795191027489738567590238630479461038028435156106734982445404854721394504535649699024840755544757262314342833387752338405832769640572707499549816834445648783063640425547591771728171207688791331729052045680872340624019438207743008521673306608442467946573947947869286812969324693490343570756084891872521733231730479729717303304269391071556020536779610217507820713266518437006058669282414261675025591586969752073428002334098541827602645492989855567826392496691940508166372666785970715268111651128089838210313424668948255490247621485799680064356503539302128288824173346277747299733381735578039555559566992674032573872869276093443888673761960671817237167988944033618431559658795093461795520344092729105605925037165744191734367290278971487294341032872811594642089321159359330664621526912345167996722305674768711427353867196825151223401590621356370198008033781146238254892229806991983915452909153690963587230692895892520190336714334538470149487045474757521481475844983270590884097410312863466610141246678917333517215891384002895649415201726320132060519902861182962862767274459101419003003844025573273735921805254596893818036604828961351167592207399903019074267789268377035179584708442357845557760111708576819180820598052874271799235751598616027980753743591122220754824796450571597042051331764239076590019905586538585628946094625681685560276797527776234946230923126792725717477542783027578536071197700580184997553101682944801371939957031890121935469037276476439730719265061520821428709187126899840683489499366174066960874523193140041106822275916760098744358289152455257185367183032929786034182772028709408396114560162224082873999418173153463624342498581231114012565111003090890040388399593173759026352383063218604243611147766486011341741132330979703410623975002886723434200190578169538754647693178543711328427690712746427561995895176643181913408370818198481873063831125667478722617911683073841354642890723486436158266109766505144276790343712259402859049858167614282579065847629560700592496135510923394582379629423508636329130667108207399684328746733657104995452831512636764631473581442620185665164803493660468414147495829962390244652523549972192969444864304007509237795377136876865755256157053540872507468864202577530271297720631747957710090648919831644902769993274664858399382308435994068999905427375342222285957239818423577638180092231653388377738832421127789783075125053838432228647995393488711606773446181612164077638645434616231298124464356953859066502560181801291796568534364525814122431141770546776183098959179126493314438814800816536705638922537460665533819738693417010302856808861452193867335954275485284030306754010964142371599888259030680350284779232069833698420225405386217452336843320025421291385653988489359134689977501199154403212850483389597824028840629975607113558878381609013290563319108446433720437485129226907176504742498935913544137871815965485689851582814212748372864946440493626518117787364046582437782552530482786382375506319861352034425192618000334283090290325416569791936906842403310585072781781735939500526642586138776568452251274080836032265053519077216627272351193800875454358965598863762968204294255043545802124561384409326195648149503044457029660606350141712028104822319131793306927848224002384842549117175710655800689159592254071342841992885259105060954341559365037786121282423179662962075356338298863275488772092291632306471710887224405928356295029099576949439387040212447063002187754531054701464024769060345463388427848812683009940714910247449813359500889772492333582008601879418101075018217806286688082311393342407508948248062528911689220560255469893696741757784267854567205839055771078486307554446647192115434738977201104335363530222977390951491899757694487820936233746915395790407543773613279849437812850045584327965742067703426676390720053782625240079321851511425586574745706796191189234570995747943966286543455987056448735111113898926135463864017545262971786849770992474537766403213227686716764809262097869029102836529991249675490895699594321696317659982821429876201821574499921834515848663341146500618706196609996329653212093214968912939599497837711916303861976138986157107372283450900446529115291218486707777086350882034737938602900279298749579379738566023166553763020697488703228179756976905246154289102849758656398258981552207475091753313335929785760547576118150216200046251526623638729571486942706200057333949217749317074304019394388696555528413626284553870020811701776170845540289058267994350658480176968438541187237890629972497799488895421134369421700298638474434885881159006459668148137928273047794378352206907107328816188417726588560299175456456524788901116865334622228759938698879987350719121958642960655826852715119889335822779390243390706441659528024352223004703918973918929448882673802999192399562606330822606563995324096992972212527192702101081669947187761139790701621032093536347643616483145671574728177837125201076548436878956091850373762660233383102197011075469146169461561372926693664670068640955590778262595417786066141224657629941301289033208118132994176429449784609940782428761399866143142510481603319205728298519709877307209318235236760255593394939771471865401857134917782853379609387655616585319390257840101922058470842629184697022725010473232688506063879876243966755723124168231396537177249488084171873034429925784199406704168552022543281931674032129439254267951748834031358356809392346311679621989963926585633889923362799598575583745234511421838747733682956424448235187469501738006708274885824203090502284908675245868630795612329341925221595080631938023741843260939599290119730985129028410080872877710964419799102212274543783165502802067892369016362954225537102358169166273197814027353399613300275959912306822325275489668098452430088158485188499586192126591344588709269440517728048001492399468274583590064136141970571510817191986605898173995690563353872042600606765966452714930819967034215126053499187707053508788921071692290987679142341747074629004064682542416325042247622232939930547024328180748431679748685694717492514837469629869398373063080616207599853453502584843752785016616648405972197744875928111229964998193616255734035805810891246713577498793851922535014561964060423147573082758526374967855390417936664916390325809887725753288377966533634309288721132309531844642391252098803458901163330733668810666958151806202235589895477824385048532603138826236273049084219594247751244729647454820741137020501664119672178749103820877410790893565675550643817640281664640773456493736343833288994591501642421240255490173939098294644058489723460465458455209101317752045345245252632853863228746098298544850182367146513893274513876790613055642072318411139765566909127734122388831453007206891094189784182258297096216705250262690016372449839445509166814573840008935732947223873392336894666100910029822648465404418894670103750230737249370043404629479467136658925739621654777023808082819361602408998809714824849129335434425639993212567007514160818066852540146024077010773224412897666305488497106910836406260536389540953177358824432791366698287625181802786881049565135609795036852839668951131445295316514120282761987660010774070521046223950194938601103045329121937557841724611503933484506700746862409333541821271394039482613152371983384397711129912960854538215107179090027278813229404630376025966768693515086916041105404760084352422224959470973809638525236892564530440085135889170918789140515326981459867735578638826047152614811613085535925498065048919173017204591463932121399469103904443078209313818365046746120690036929903485710354011051553292218952382696216924140647224600175428158062739613059307669082920300706968379933197935447793508172744861655810750987954940580296688425857298921200493231976641807472058444802517563152197897136819888024189237609495885825678553695863708724545595172118625702253348275183861769637950399677298808700253846536711753978281717366123511391215064823761637652983856237632448771500694594475046564047454045811289140885257697486153565551621664217229386053066993677618405153734575431677235393596017834423814283445892759040600781307135650546804857042945311343311430271860739938003064981008413764683436885851925470906793846835732078461791289925735496659943160601561126787886588732410239212283920289222906261551779118930229844989584058751558208649946989445597364723623461338243595968782395712766654220166480220372806803956740904128480503516441090874630905033867132870303912306979129956278125718041160915892124289422455655889660409108042952714485167983720505237528938879463707348103732954977551988759835480901628316263092643044828809583971887488875900620069226354612274925032007606729169292220711570482025621270155108312600619980304862412845271226896355520333273915093352219447055364046170901982167361701838601049685148733246075128100593111655600628055326883336934792057172002872931700853419090081546116897584295005178780214819275798222686522197406083611140944281149136035602400070087416772496194155838147002258497973730511666230581886852961892817831418080556161509716408216934099856188684993940601451798758584707052520609255930209299444186991169489666500934718514424226969282646066670665484863583543749234554116321697755310412931435465905815706181526101971211779523487180029084801095737156865568293679635826405972001759329453586558669597979109854301115962892745168317601749524609882737703997470277833581980624348052644606538153286907906579456448152722700468594541407929471862063737414815062373075812186818717663202698274640590548491508165953849402306404275004295675022459411185394456001036836061729009182495122896689776969048131706434690978537314877496273283846221886372527267962902328225103379471767742394167564621761488324581814261023641219960729709688472555997632708232950699993987156646133614622557558580985988764153381425414920486471273808813069666420859268743678064523129324615389475026743177889491848811210057271121834709182283490783647968799664133177049683136334045436831945264491418236874761605596861282677249569169319406216840638640289614436537961784809291591183292518456670578892429132838416414475833665815549766311425904982394097328754854295248502407587804324032470374276437794987393537516015809804260654752751237910815822985731944779538563061399601704981525276238609114170882476916067284162016371628157717163887632994998655085294690633017654422970554986073867795010907262001162160568935290024538073771695526998145455719397835469162222571381053888868984418119877536333898163803256180564934272101937548004487765000063552838402450550587717634741309921598830104337986458461533134607584654573678855231673125916125117907705680501218898220527498917416544330885530135124498379409474116028506596529103163534650201232363104050686317927010073012765957089764845984879472756771232509443890489271553863897302571411930516208769580919138838342835411193017064280199537730727381330073565833869254890305188540895658510517313866070878377624481226123095521697468197453428750463731603426468465834635905167062662867802008375239932741675296863502418898287050334592737261043005543483521444338471510086756351376343037446520077677956055001679224566798959288053939531799111437969920208101221217167967412303763227751547479163541963953455504035264682872921374733560214868169579580002549145426593086276986339896277852924222593026257652385622520188710284660228522949827787321833970085744119171662190649519806679186212448787318643088825177312266917849881443424611066311281033886750385841386384821040105414724968614864885414637349823795061659758073254752575429466165303959856306422330403088768685170750900627590369986694877372905099729257258153878612541162531620291474660546655026254949290497266423353252425075651204861293301832993628477194570894351794254829634247546691557443223045353810056029897495890270175740260283103131896219216356541218579423120753231857681174772946436548016899881649947817112263290267489967154407868817224470246749433211102463665601906384891500179140240778614999317867217438550102472128453979609075437419795924301361052774332428071898821902601818822165087414653987526577600345533765023247234542850024327889456244152848803013906587613466194749062545585271800614976587342658065555365048189162614007435937522897954816059405812683945279189002527507525047863373719593738273997057599937694832900795948544425947985283032684318000225074683685942571603076742337972930925301082490524063724245254608999035935390003798645754887856800462785963764659051298253314311193852005457283909126115329664248452412961312031319484686796003593239390128510364996338592015023326246714942145255093928628830589616361324656847781132379774042093086131806794919328637746207040914069140796047784202172779095844042265371255751520008226738064998101136801815316222218477941028431354174199158543213532507652611420572867114480618693737938977384901317083382763321557309644312070539929900605432574668148124003097846564738861501075783173178202002487663498674245758205782440469860110899418096316528651057337153357256579465975695241504747255955550802450722611820905722414710148076924668873682468147803191626857717477690480393897010502030958606877414759852771211761569417489990156108835243249822369528632140194754133292814014536500282096612458317732119333530383328601545831423972382563819075205461675893315385823515713070988365940251551032871960313591086303555367712329150115222982618811747444141126323743815768953763461663869096255220183970238441685563582682447595740184910374430549303810446568953901844942577981573363651079055263965392434709354623152659134276126585008540680336027872829261832470277850619155734151242070098743995686724278957069473874590625255177404987564519305632860486121876486134798648814021248341894968477836937017696447259832972373344254428627818589288651664868507411103039552554312970873601591758032520772779016018025328095527324396275274476234137401535703357423138315126447838574358955861114967836757717283903864072936019810533255263507112467677317560495077579552138538974922164986121809585395167672956193749786936285129893012202114597326446119500539275081025867156494692780318153759639069666772798961094470946172045031242802450082084613552954644384881592501578622893047185831760469147265092150612260184451412652764806205109313218101477132107335930177917259039917923368102777279857866438817029464281155273239919137874042107833087528009587273365223076475102458028545109286608409628475684884559170607248270138123846280375129513684422190656507457166047233590685528036190119342822386362379767638500294661163046154000733848338817525631239179621993061461903772089714809177842465765452251896862230981342114839638521109760571907267173426972811704981161413003116339317626394939199571888788097498696785516443121597183671956629875426721158456260516935774518382716702552916781806142576784079219217265361153531755728952429322554831638657993558514635761852454059462744144115217022556221537784327780853862739468448376471779534217839660924763502730922889627158986833529197437789830686364449206874483645067993115140514174405670758565319730234474651767438812363677942569858185209646698935991590564570939353404950875453747349613232966130907244750710375884818277406817313424623849246381137754409060026219533471277960845276434281824509060140377993010087183850399561060972895336520869217779965409371010039578983410189606444405346192194983439059385329662884721208773004277268690162310349416793111072882643024464500582773798652657557694067535406699276232889006305755779044847902842490391978149077439169282424751812728191604365468910548187647992363588941083467706158033162085899749815748143258725098987061441752856202902790241476353607133366112561119655704996399050789113055943833505271496497659703846205094281953257059182094238558698052661781430493778123366026536182823958580575941367011180442680125557427738748905376571998039769470673314499183094870811657542766583450283804636509505755486305837864878180659722499843947202230782027043727762476954413836836035441075579108912353795689619554167054205325970038111821340424538930008892766526724674680104300302511505862584531358228115206626920201115846429772562813012457728436814498990211697684719866975727870954822623746830431490880457134601718501619226193699765543191325627075444069472008348457776289917146529275270878034452010952807544015026640253331843545779701988423236658012639061476983710754925475558123278988420176213179433664758645584904675933322327892867232444788036199003138147232451344348168132178026498509619618479325972898796059198556810126181463922187372617349615083272834190623927324084612602553888774858358566659551739758020013291967574787421846404541550270320963318367687667427170756724508557130841138731896321700057100854877545950640906727941022295023550789355562777681294027113004808139245094395235526166149632633832597538747028852492730364889027510534806750463167796668993355714436635518945564341535318969922524547934465294591695659979988376869775231043227006178268101590880155488230410069603746347524301759249292799018064224234177261393259594203639306704208676090261637940848418527113252410505861993903219295573211288250340625579007828072491801634392669838699905077739984545267181400750923203499678873855863300773601081768505484247385954839177393736508907212980248134343124490387428604879291216623733895662523008017275659978643313284655531651124802182452981101332817309309123016733982988658713956177924820320241672459339693344594727316170694787823578299722721047064627897359315596119672738583673989752938072224384853275385788937028496885919715998099902568605832780465483355103220120217866103400727751214829795049036577056909748090254810333793371248226220099224338801896893756103505463790643186608263490048734939883050857038140749262776993582068459562432581213917372003302440441823794922687865987084133784709848171696017592819689472368209229082879592083996388382894491860662197345745937890163856449331020204192465333002912639032995334898512261617275066974998623133814251251077729533131607560218216032071282443677252490104832101246739582285191014580733334882117056903126773147021015566495809743594314811360123218843263057524571865899250879717342823067259881924215876270709596255015841038347372979726296394471106465353643524393446286610265339326388285497325878418836715537157429508144280578591930663830552128230294842233497343477284400614181755608683443006476957536896315494083315641798780207640899020176519554437195158113501422122681902375855360298455020123375526155525499819355111458559208541102408924271173462744552089185182876544291193993407891336782261164416248758977587246948570691427510804633188610379298208672486378926420818484139621472790390604847268669246448600195219413842163446514468373801651943176224946873707188449720872922786565091272020181357819441608929964571380879198739805965733746933517404045044495774345833213614259740250011211421322095132833243156689842277863311388478161820136870259752938764507399477124606276586969945015851483556077706570882359171030895488324304383856660623367788860907399942684702496093761710705909031718513693407761146193981456846028881726489795075545808792821845515065505235204900459554435207253693957798338066405484330476531590872198388492589946356847111439778761146215206260326410580166353875558456112022175162716091402946943595445330356719939324733444953997948866419849595375325461436290096370658198575845014647571050867663476353121460065175706037729880541127329630673428052203566344992890128491270168584242700570993540017805589949696067312680288178280388129539791707291916489617275271959700628803166232175585513572244093487381801413267118028875836126006260027564285409077111384249085096473684973814583281352642296852620925862524180830327393117814967687399766514879305426943467267870309808252167967613295301647061256904263838730227075918180758099258302836477224079905557865118947541136373935348351364587960741772757075161730384623535283055749985193139408073906411221807208528027946919842869774615944406598230377204670783379913570112630590628177459227587857514499426396274820681492419716029831800881413951918414830670589205608049268374381014013292921443698777760421335918458306943151756978142723015093359717606035847728183080954723966354857524847353639474349230192964580614019350314910856212976675978479049097093551694362727351825386341646666285190358722505901679974789829165264163744088399448781731392573431129307934577778208498231743751575744168070422203889546616867809044905775856378438442817889036994323951553818132698682481638322656647166860782038732006939976832996329810366619506967002348249673310543696993497091133816408884743604327783338262112824462624247622154399373030269294748908813854519067131848582665234992414452235609558249426340975099263707843136593335910652881203782654229799365684562707062611040812954556176238715295392098136868407875598157352878635363523647529631419894053098662464779017313720040524893379593261258670216752757208176352321595323934545574887395894871614331339741369670511493887899997263582115829807799297873900546669797371653996465278212318828975015789224189742634256068754851487546225210038169394011752128898831465100579388091332371501566808243876461847593676550619745741476447376106921361062849166126380121389946958353757817733858442868807204830358802835812262090747856014099087996354229516205678961867706368911683255266292463292234760354369260293819201079715785976191718110564101394596026210249735889849367463670538620878697545072154375129394359288615833034619135626681836388612342189673029257934352088151486656039952780722671972352553429355144684006344988286130003058442808193777553432217281496576020199527566327221816970774914325085249122009008088116124962160677723062341223025184733596822339025703505963617641076157205084117731260442968516699803423194839132519093812640066041980062130562219254348035535491408752223803891589679895130824614880892837337102612541495337464559671082505058347749835700780547202215883796843604365313214984950914946310175003002665061694084964625374169387156465403687390344880545956583703203359463511973330462210553460553668167946811711717608862932674937488165130526739092570880445530050898522033596037822679454654735675309887302360777070318768529610602454462068902532976105664102956912851007567210106146648660544935917440874289488480008646890930993207466082745242923233871318121020508266379169238657855543333714911248006063773412396666515642396284537177525416079495295947035238626651759132370748076187976004906103504692602047604519375569359190010752624087487700082889677093790507410880341537859243182147458242953229523662471912183852274122483277551427322904024398266660592273317888262746365903584169514395235010674071792410688255460764304985799494991733973822794367952422988771738516904506287433811813847118088141080417081519783632887006560361235508115359158105979315917845216787823719206006586381159961306201383995464708060576086533114575355590560532008222645171483332676668254668597421490713895254009649550274017686051356949273029673850987061965411629250534295903049487125793323915483939254154503179181900409363388570436260509398762031109951286366463734265050951558549944921739186933383634348015740246489442439936295402756698435044230005615404122018133883729292909285838641398014281631376649538698412935267420833376986910728118011375718359081297346328217059406380756636674969329582620572702044877115737413650504299199901138787219613714315078350016642721270534167744582504226274949937576486764500856635402893233210462441056525015420493125359581809939073259855529447675329002639843693743341687292230014805613533829782774962959516171629555411196078474737102126029806756578030807479812908188798478957789870173882925407674836925657793444220661766959744754401650504749788919605427071301309099355716970146131274418454188418432885719018785995919617413205251376527199822190425353624530056878809327526323943092657959519826480067902892792378384868057569049122944726348663674540717070825762894087680065655442840943779215049759295032300345403882111497645644671626758484385332299350008394872697853123360538922028783838184759040814420117652972190720971610453325819148418827390009635893041084021764830887151501158559043118425100571046241046590921469966389205207421022856734305346735520806359914827663951686836948994080764352051806935119588284748679902417725753046285916962305767273607399823954924363987350795926425121226352531655597987216131049307376533397554569697131258089037627849679147427114886760150789784476144468274148307591851323323355887997647438878188315097336169285744463557842659054614620311616990012521317129333575938579043307405259393490168998083191819080708858458863506942672363259768445941765401291182507234104911913865750429896594256648111751946063211781460759111296255734037555563028513796369103476856601866576239086196841483762663821899177074262205763911401231146237999272114927450251554684996519881548605080369955214809212320812843648785566695219457231896171283751846135849977833725935793146926416933864089767092538454262582586412483449860024121638666878267294571438187824159442590476943885473740597874333779761300725995557889508986714420470188669548732849213730022608068763554426287578408573028597411045713952605264403372764110413774575540115344139524747708348929225920923930108899067453027337418914635924585213709142467190033932708126046073447676541215416867261545020629494818303525928361963407299879051919606381231729427124159009292616960340678308996105839057229055550155150611178014621847839223649913161656341895950865721724361999696818845426848752638496008724153473850053084945800493031249677572746408433506255893254575977625177525261831124008488417110973731739961975680179198847865948684250247662112381783014199734781605955325107303470476633958977161047865737265063048372367833840924449065807978045714601847681857150849681245100205283488269500993306950638465440224194204677057284129048145013084198315392240795793257550064580601772209291287036977019860935391934245479543882993543781178047048009244753554043685202500935948246716508698163784915808136188277390142118137391007625769374241803546768906569866480941969212493213981646190937685354194200870525233286790137905320644886933899078815728776270556201771893311021911589221789703375300817022230311770966840742425377154631955714142815823152231069701172185259633200617388360119627940313813407550395562657367727206537417571963119783413337916935688515491698562875901841103898024168994285142386257611058016891020184769225286531507389126891233345019377985061512671548562531308590226476524641470567345141153435033694541749069297643706189366708600588543188312404476596342498596025811678042113027508929364505457884490149646865536569226883737863693429144834788174087642146907224104245621339512666391536744005532807100163471501238004522405912604564451528361054684353498022476494736365970711092256518004592674691023470475231268225269589807031030744994416849134765600895035834068379721058948956520206078175361142730015797861880316858188572908513086224918695839575115307715425109049257990709836306099944694720925956502085899449914634631563185087990673145806452119073700527217843836113116830142888777474931483337376142895858649783885857247749094766959420794269295845256730934191072802234701154892164675131200748352443076337168747875114884669343836958606802012378706531204631039839411536568976673586652276979206914531082007047655269004504435466268910863745303493654679309219256043048257398729801016876855266272008191630210907885109073810849983792141848396812453201190992429010232863435283668133116958069586175835738353957541930045618957837382197823593894244760080870486696212943635581882480562284186677716865790529014322077247295688054608721780944196844711566942798664788883869332166212573137145916216398554273092094969153291159187413165115401089228160281681500286469246657283895191536320380339705138570159373029950526685947326293108968391392103161362399024351318494644801321276865036983252909232952639732829802215182699019912643590803009902407955712579038679525147733289873996007874495494086037955762680798120814068597556230704945989567096329436946889157802669279629068054652382399697836068131597230166163822006446756873540010642452746912991897087967619477867991859994206877475315681096099944366566290816664690344785688464958996459189866995425054875688029236168301551119015396428743806288474318117283579528966795017874301609221129963739149914582522577204294655823325270666283135891600499976001388479318992616460858560585205509592239168851439105037078335707668575844672296683926147762848272271763860338434719340648718128142958949042507602792848065514307309627348118957988260465237405408424893981224204604285156463990770009511667703305892284027259911859314780828729344323642430590959440987468421249917512456364327069925604410425291475922432676847069011331465743941757286169828325370125839333536363348822999697635477883036364265388379122988193838524641609014012435426388301656022107307287281004832172386546066284445450884601848027010064217720732287671943973769789431078866580330911030190291762879926751416718512997115606550251668955838407420720868391336462539278588370931340350481635958103685935210679605327770557402925068859506561873377530195281853991122916059439205659159943395924954218642696240455067028942704577927182805229760419623068054884789918181699627412484063191947347434576674515670275471182958068247047173307225971779262623367879685564550332626559661819685467074213751886670855779556680299666116147797914915098605414394549679172998038171608832389085128585141542565931002173211153095033539772392843234204009031176211344325763091020517056098476666311585428710090283122092450450147372204697089170323788185945386671752042719544648130108551918479700668492315355793764058872407548652392180434566076700616139601100762492705772423305665521312108245063008195602799283501539248262457070491209260375930759923374257671173512608128368057294393177879761706342695767554277887520040899153093322153498700856200540667397396574656993741131778802273328897955876717618146838750407892772978583636308074034956841320168035464537934668826077852688604603765497646165462774147818352293782836361601667054366630408667750757272459913689862595458280813191247326904002235566016336813297702730945931641409732875109859014209370275612069227168306094425995253672962551376891527305842073401192035699213567630605880685222090095697939149561289263040810955534870172196572228334682225703490004171384714192372207968351745286859523357584589288209297869913486092389601511663956732649864551181496344174866984462813675975507044539492226071574289764176099257772316215441336145506892994886069110903464414327231704229745735507561652393787019242413932302136604680555662066285014212329227142509573408037453332025350172581228991222263294976857829323178942364365426374394295631740723043976080952611595165377332821282959157918558596014039757297811301940170629633081985545284798772681078188585433204992675909526020654382153752982615734471659376035075119790836743746438432504126105228848288277535828657003152071633339531108223237144626334427329410198610099861753212045482155564801315800731157208649146537318413519170397505730380769748661495426931706979598055147365040916872770812773516027610679411780806734969563267774972026527245487812148040158032710872215363291068628614925876467636936503633155600484697177843153016416538050142469598703814171680129941128478390183499327290803331117371442706931149460363242250926228698394753309472452249395844021941528001384692365648847531329672824676844540069910795292062913345875589708482871951116908601896629638298611986687643290694841562296235600894582692661806278317622061168845939737801458999913833315935083855238000510341553486136095830342097519516899900327489712935244863879475310947198930414359439124077744460811506040595437620829079759988040030306956931499001264618923787064966840423414926475441124612241682254740279906632518477078930610832843469057195731744372074634617548967872198578679540288692415879514493996380648901803580563543706229850607917734695641862948783391132934002151278905378506212829527659293826107520092761505243334056442212604331413394378149399423657864980521043632515547966737552739032314455141101345214139771221990168338344379469716391484749813286607907427959411544142751681928183705221183777141342663266644010087627001185282126147249869852713503827602601371062640416000439534210734372644042490168772936860260778959145491538349382503702945636617150256881671243120802139855299198149938329770008768813343464227857603412414829026276093167760117489114214219459165840627551123084029021256177571105138575708616480829612575918114670785271270401909210672895041121719782449130711430962339676347993156065242133401242570558896039226891593769048703184961189846429536610381871994902372614167674233486515411344986536883902312886209028221237703797454593055682645829631267795372459840785179416290932881537247772970706223195004235843727084698314843507901171278044912089250849738414301048357025855609365730451974145875066602890479176749066659549985969962687002516384635838377304994747743373158314980632529063760070601591370069682139290198139431915655114790168626410444819116942143447834914676896337266918983008207832771788405924050337477551842206048483179204805781282341167263585611198472037378409479871936088010509702891225791353333195409187889026562036511679186983772426883242052143182567757446529683465954791489092843645016980660286111699267591178912825848802485797417243976279044183968282127575846858635391164815154005220931870849147891260664901938706504330031669956443774740709774352453962465241404105542253335309990857996931954515856324515937132512768531275991824799853375549513457846250752565189984765265219258118909867580054569788901607655752791596112406561807520443801002935743900668767816492021879706210698679403149979958209590072295691977390168509440807282728305844410422960482833007464784019612694473797821656792298664279772042460634666417879428066314953568311880039950183914669835328259857477444624252933188657832690468182134504399617008501502181616521716577700967582758328654206970429928577746189165829489435716558131828130165689381496874121515687868794328369370432326201103465550854486885881156952575961684925906141890300221187190722894187658135261884187078929023691520855434531534386725046855717654447940558380060451168008819210654910039550446735575889148364416554563008809741087493790962556041156655939441331949022874168393288576600126529377137973910148013457648672972940254082919741502897565171450482031497576663115670531615807615046836283008239096626501375179466137284709728370124796447914922306468000512422253769128587395014694415523426225315250510365015790651310464267749940351958762384012679048845529392880214974806457931826293532408337714187616789069472411395122113572723645405621503972032422431351223383311232182936780876956932979464424986825557311351382659624714214710909970669421715812704277098546465007939567888265193819141467957507914208188685301951117074491740365987350211913813520323324227378654798256141840676578668057204344136971062525545082842681547127368750994218017012487175150850147989578055777943097611305324438714518873202881003762158593758280483722786598939281293368635900149296410314753506682868225643295839712098333492487269583936743364232076266220289090107070145464686961368660595163200896300787365786143783027566671688074733113242378352139288505037309872190310231973018440987672185038434533485431403135143308953252158384254067371080001549151165644326997515184423074670707321415048895208138639738587101607023467715788349720454792137103588930727802139936104039002325359873174966507546864799061280487978279651262741662411746911926867272192425333104059386290152436673551168141382080641822957843317997439461006619876003836033266303611406943905849222519350575131855640768541646212932245084191422649322775345770839919156387500673645052813045251161933360579224185711294624606938843625324914914136887805149433729117315096050957084779868126391696267351579788159720431744056368189290250574432641025246147015660637767261598571912372670866484258203042946150243798647353806813110905634939754355341016457551993696886568007842770589608667872328395303353490037635309110993582054169650319103252728729671011484677413027405128522988308221143277757516302532385479162628976181727084729713640021592869461264090268273315796236508390263472911920984797578911036625474376998958498254891975916025220812551235399654030577363209421610797731973981060041343350156504163626932467492688932323615108182293565413227549141959484688845092876385523379250863289112327684821731715489404856027241017708754836371120983658292451357901408210908566574580470841677102436631797972181390252605112050281583318894842205418370293931848929967492370305952477303057839803023172774800512025935262625584202518971077175345744199667054667275009912561562043816267331493224564708766717661557777548267368586304835814345239286179172576409841579144115588039242819329397841867672163235338590171994557594812538026420063139683004705556981962005728488673992918547832859305581098105491513777214498662685007402204202768730233331900248161402389774627997832155825357589750762682516850710882172502768710352742618140806702687902152774176478710174973316073340708403801053641903168541059285752439828540573655518239980974277437443762340915937624758992324879487291238042515225487684263978037841062505293588914373500831319374016978289208382843064577817852104603828090389904768012402644171433235590343257918383896722864984075573040803580010325459640433910436156494208999573292689967047322399644092510366651213929781507198159791022728879063107902012874869588228465164275074959578197829817812653965320041622683182229391371762412623734118332503524759595653976756704880206984499003220891848355528475077496259073426014987089705978485924089287771936213271974263234383929979131053547566733227599131248868985744598981250299752708356705638738638317698406034676231058309213984543373899118575252142571199618201049375049285696861890624870305153391785015659926751537906703536457347649125372288658189440915819459311248618708558814389786953445402540958835997553619635297657212656612962919022101840574086320814311783444172528569286090187237120874721865959597948985786118835080000733627705082899161313078211159696242727326124615624386688385530826559665893956014771945390728362158767121862938321944152083378915435191175419008226542141686878438385853544845811812032267558144525240769282833699773162379311726045967291021008976001165537759184990869834402592931546635561097349666567516572327314861696148720072595768733802805380583011469001564756007124525885624720219561470294970257637145194079079559678139447925232353507997417498382331892794797078913145689125310228384264289305091256612387559002780639565009231025542935029419009193940253489422750541095998228567738939026951000508715280621767532482621465530271135993460722333671180801668985474662295166248269995537867773132370308253100871018577061752074260974457259964242629037796430060153761060893735418584936774459029418413769420831823129280528276729732543963568756137350051168854698832202579755111594619910741310736502086772725276883721708566258651608924060706974137005540546003662142651165096957658951153839401497586944778627723486565012077298894472777505733131991028006233692261568295869838692504905132456892493960314284240958386284509089409614071471828983692936978512103640070774281556973519100463326047179451172105341523614564276624247777416635328476894210595220280215190287406283729194601547838282502224598108039209340124180980616968622081389131181625653981525795676302830539304929607590089903298417126001572941675828934445775052469716270466077499120953465781824593517112426874574205190433779298534380891450075777096604121172388585005702862594020444702763670680764485736990857918304330491986179275825942236644795266282834268470813502648604700652906664163205123357020307550058347888361922407320891239526266405809319107249295687062190271777244160548781811048371211750876314248679695589347140402833865329156736890366905114781376799224240080423467447097882786243332377760411901967874421233118061798918284935288028451698741027207396934151058650522264831335512360718358932484233221478728847800501652787355091486824201906981673862076785232360846324730663193423936233665202540868104965425896162700388142595187682791654463512432150431845427635812469738927508114095934103793858336342279559801913484750602311640162106457129442588447241803186495162187024067176866839156753343468715279512295025623482097785340095108726740766502972120007398514849500939959148103320258426074924300273411320217061220532715858155696354489449685844684329544930456125376182760166369370646395468404063430953099324762382497226690998724442912882651825733226579498095044457799473028687463106209946260964948194631542038024096691860254106111104933079412598452688683668620408301324561296536226377070782309033999335125570525672227754960823996907634838674934646376492491795495044625525425116448383156571537419921827790723926496336038866017363028695433185099657966463211546187384613160749207965106767409450753513318641373636725089570334333514099007981005309331863392269808374630010259409589149178962181620636286738715757181684867326955176917398655284412994393630062480353685979439002430448400661459992460177923001449447047833739569414264199249310241774920649740095956737905846200670539030152832008260973242328701676014061670178759390718611847124046270928483439367726076324807855339048271226217270253302835149697994139884655849876438639451109740661168036950195461784625366358471926557303498878209506105434102240824319414513718669180267129537804550469879598952723960661324249929509422875922888652800602948355215622064127237244658292883004477952192921944641044979397732066740840634856783892127751119132842471314226164973844256090815044319468497589914447029148103293003973356243758728759477452155604958054237813890140937949944297856078290535182936360080558525533717495127805314037359234631186078917333615947468980837692507462609014163771164283163458839291171225087645625636566094628553337601298383738468179780138343258379067721721341703562334781140150379629302715285581162753072764584773426205501777172162255049165010107861965295498382536563140467667220865540467324185697367976930125276917921324377816059769558069365257559907584480562311980348052238764412872449107605327028924397224776626950678158790730994433818133362487122815993737027502684560703929097666803205088740219921955338785878776496556992199502127628289791869079282216355464584674153275069187940317191416569043567023141665509876527375775708061572100703438062537714873571049815529155989130633266512911455854118227462402050567206763666457412952226358238663068793385980891969143674827553158262869933680021183756507542840073070825413344670469531506613778605852152898441607287108797715487053914584146923965416760271177743238328431243222720660431430247856045002675848123153159217203711509005501665898177237562218809719603760389377961364620264958699154205047611928484963695803850088530694015721505880788448099095499231189815628416724408007950015481578214141573472371736415928107297930891675266933684910663619350072131529956122731702708314790324326658371931700173939302548824984384516360870323273768197315324973615793291790182125752355247641769252619270685871305029364135705551642686175708783842429254283327057767161994016748899150404730559573953629151923915102658651564281081541119542539163695332529474567466347725208360200993333708237673091841663455733234001671283242861752968822073383689557903247295828812140876052132800866062194540870527791359894424326867787039666938529260055349674473443783528864913841189666958516323449756744592531177907936980100923954406746637104516451692679472218131079077576243950346001590989395256863331900800720418743190221868985444517799187802227521606453738055324134114664992545396079710269521045186030495270979727142723619605276728211739440567211755123799356532062025684527332632391133197767442806639350590264599818417042005559358228354200384980282043117678746301046185419135073040503086926332468993659109528092605869943878750190022631840654704990384058924630355749626918355220005063655265925989208659848459117679361348935617260882804393898026156639682634460394771639490267572098719297611181569624816230227008294914810646640817955599212685556117221970593840719920735030291529152242417268471842053419864344321913557830640203297878836523057351001660733529374964417796234462932354449602476635787606137498797459586840257834294575898466744122212932590470140724094886426146163313372839665132116720868687866873778555626699747378997885889699732204052922196005864518011695005200137253719278251258978696152486101948142953925036187704372419499178747841017149347823371935187463723558792668843935457209408684893935519944823277046949303750984760620987325419549743883119268162428104363313744700174767436497386320812250915680307843567498894376670090137113498672468593225611347285689332707718915975412630835497505563146256201661577065700770987542400537614820406399997766956395366393706421976476069427315865602260339573539582748727978347264600413316532619578891435004776164375475262648282372651230030469333418607783217772080695327079158639564873836164686664363854120989105428614524780042101881735075619629850675389980771284229082327044880144036901977446255859257352346261181983999716792881095131786414280798995512976270714707143319471677307806296657072537292576110044035115258673460876191987980050824981093454759294516066919675313546980465325840376214263519250494262102049080947761366800595771981028756233844999205338102325639657937883999280291923377965745154967888268796973725164226285610924422187331910636127514509805244665380171180824385368088083828013059154315903703523456693702895434228826408066115895972621594784686280213670767900067645265373384906744244788445888191028543911882952076758500260912920447278015047901093948712972277858957632915502794405651412222936328015010688490370433714065124995346312825344574562651688660477346695150737763195167711380432284770766846356728039819414314035761663474966764542029102392572691357658837284122161513887021575210729385136988585144566550069044972334829862475310247066613897725604810357183442843152039895497747931189524220039120195462189496963334879694988351767004939577461880347741005583374289874277454232607426237000078251167937888056737596883236790751684046488193248638967204618200923125254636199341925362274493110608421550790708930728181700794524657738159642919002520781238632573471902798849508351253809754941194647189499955661764191061251850482108698979652325080320904826565164548973040273224185210965772497910803880718351626040725967252148360883142576050524162285893778808207643120096871860624876330643601105455020161802031267003170539537880970926532347351336703266766123239490474073370202324838091319665289989527513499471816869105253808205266131434408942400824484862675382338712598830286902134495753988537554603440558615824314118870472750256932890529014152148840434499532850250248823962197116474629320237355368885973539137559491705516679086108997787720781458365409867041235657585498843587561153260392281994856455585359107792307648659111859462653376509759591414995309972764874669071347558381209154450841965402601642918679841871186094811068332493990262236113552064313405508085365929719443895357219012768640610845741832712465801340986717362434350507479699590162172907101818043269426681934095010992415908873105282186295789125330916080154817307038670483050544830162047887012088370822505570114812366161669521434539422979289710125724862832930476605844782671653444562242298978957223930382733505487134392384440529074556487452151228564862355590652976853548295525407891108556911129722438767293619238982341510772856735954521581946099453920736552653617597174194744029883049328683729237699082437658616706385513783728219466710705368589893348713018376783608380297891943116078964576191976945130442188005412420030945258719623175445302861006177202598094104200834119719083407544988946466692575883563258818564809264393245912127228085251096883221399171711636712354035619510869721936361760357634983573570690240955949491222497894606059877648177728405193757382416862087117788029711421303252112751081640933922847806523038756063339313219561883703047991416259806527533343732195036579936515646554018489362738665558606474148904560900500301012034141179184709948321515918852261715772637587150441281641318934505722669435096785427945766805282124256835144965213875853404323588057023103664069681119843758074671331218908403668286132915567990484274884471625810443378941632787515353982033035878925702865571804536125326363757194126408126119296276557234767372550021276552979095889599279100761080238666193210788741461788376424636426624809970024344945083692762440602618906912534484117976976944337535182196205264412825755775885138064709384539073113396711842688914824552017598089286934528472540428669234080712102524128607286149718134640857143828412174191798427738934044743130276954114497277839314059025503152399634496986185885403816438356212071121531040829487653446346321441045198008107906055997185684125195592920342284564985815043961018407623527126854367467777573684500159930091774260769993233633294168157649849352207874214764275932494340244277549773820977004853372605003195522836155334428302358813777190481323135171123101707260530120031477107465188569896941853256840430238158639405934442329018469127336746402221165464732084099334433769002920244948027539591998841558753230080551375048788019795927580046365755204211547181711446049932551593616966207454651926189569454719381672184199357277700264589476543924239963938860802437927979053859757222200614773430461952062213902767644456013953013160459444923839375688103163815139299772809717691522216227378560714033469823291354488540539882777690881798804431710578512501117000040063128686453102618902462965910570083648104011342228382855379223748951099492126711205029488128933788616010553354602576399565553021152850684046410966772578188383647194620388440885698876875753861408195036441948807879445767165468992915603250380718130857675310357352416930720567470620986999339711705572034540713899526888918992878938806516433104585235029434235880807433390021796812918076344376680165107848120165931700785893930166358120782574169171681285907380357476785146801660889289484764576342690379509918067950003438941372278791897688462452284493186026530531031558630777213243449235705171259859930053788664577307870371589835436633291181433902540287112645527654881285039578386601726884336819481236565911296865286520311082210400620227474420016641718508906194395059489942351142726227285319361889334442835989849108622942563661121491987868537120180038288065478627156772596179570504185269532837405338216125910392260952481097881110533878368612482384673987776838208115522919710358641423850313067197197698118435293863052953302502312923044345474908742495933127326883378591485733778481148308176674963659393148993092595470354570166900104012731432621097037440690035526544060402027533310101561862609203723502773039547120016085617006353734157291924670471188305325557278310026957945081692480800799826460482798381278390023951488532548662657460941858876416308515887145682537021269106672271792770901071409510630250494886184076087886938085730043779878991553143321600986021738274285386152777999416617262816214290963322938912036183761968255765113632811692907133410134249033240290312003190376297286188227593492201945560930984989895748542812776930400128957288200235496723580280667975540135570366797540283684997893454672809107594480319458945107529454318505925763425041335073128909728922515366359194357071560026039411893000205272800952624518013754860142138876172480841882513308549482789105218878679970975808885015025451071601724185767910810526767141005280694535435206879378268134318084888578221574946506662279275482238723967934421228073336956866956725594576634817447011022692504803635557030573450076201478154854250678287020281759029809945106280009183145030099243304879376355594564737727506145700822500702324157523494298332950021595485926345342492678376041280765562786285151184583585949769098612590847210554970185193343390341000121641093541066862453818993330491820493269520246749360097549317828032070479782247857867521895801700751119177427766109121461794086967046587126163082582039564971687731053716991708224450843786322281198657506535565655713039843471579539901919424658904749685842583901405841584574947238431792244605147384710282240271947065063739403302691261965772501934512584592761268080893434054303327087746808108668435050452674730514340366052266433150119804395120709341377650071103399272673148906962662815292977442342326479557039114620366713164670953886301023059789397387803348531925454838450226668062544205358121537884609028997366218561036975562217821552016995320857055719451952462183083023303389152903593707813885106228082377874116145919467938516021159669174621978546755048225254910560998728656253229453723890803688620284541858884817359130253901685734165641228597672449536947868836438695380924407573175148804811276380015324279418755712189844975155605880101632090094098947835741223345349442404694262566935222640021564955642272413275274205286679349650044868100822468068869153826434583345963081837681891078522961878941809626139743546200110619588870532235277339158634026235141337393515331948728581244837924201204842229763627145615720484953024850423420770011820788145895929047435121078034000990084763239926969024512716017835927999013618741042585468296353180638942866148684861984226230263796761106725197648054315471904855277650637967483881254915319990005746162976317015624976454511598472757276827740571638826856337763466460259467839915856520252555965032028718812830603169996714233183345139510433734626494043083930250582779902906718768763686576268111172078689042804376521268842852710234470081392637636032924776382756892853903564705256478296831584375705200933879483470482844741054380169466631902854221896623556106874227713942506478682659462246243572518612285755395977884924039958545810666344719432879368006762930862012361329502412846698356507849865475746058865538047599202055700828162961518107560929691920081220260074606893617799082340475673772065384006795538113095623798619031257091742492169877319248490443708902113170548678511760903661359364764391415439016191103580230316723961589854792781345634718403697526074382893591352111510115431872713301579091160063374027856059483835541505171232971648372629901416844782610864621075003406554410524717724763728587713131408183244717110846014475961365798878457211229668523689839828072965973572175599600511059534500258839552241136840053331407126674994113695842980793500532312673691344525071665285488756520682882329987907536977321028319006005417556388685487662055922720882199700564776736065375715946279892387392997590586980272275836574012989885214974771900352490719250156305422338518390752085210710703851735433341515367320825894166318534994269092941010501073575879498998604815510361712566809968685954387403311552654510936930582137695115914693919070183766646072345228911686198146761704474246512811195077573840726598439639146264463719910936472380783014462141114287079190127300539206655378392747449488291687392462768930791691045406159981496925952372900925456041420028693895162162568979158951288514853028554146819983135364476769858723425035500862350323257396159338536080244544052449480219866677469456962828501595060836529741963841647609547693532281733865435192580448261744569549434641513684945562021814994485775502346706135876759952127725092113634933258434549261100229425224417481228819073955218651659780799759780959526032974046573261049277659836870464513501633990216025376538536927164051121209190964941906901375141337200008301601041207644197563227180337394727174083090124756982300620565980097459538702562641234439570648030101127216177853376536134548195333554319391111308861447903970660222034733135754986622087953992285999416891342224620873884709940516689000698990138719935904151445118249586494433118804577046989491747237103871146300191420464044705169073774491103786590645385112103205391313639450009979992412004164100016150712535227175538909502811197729115889719618378263432902788146587006920199217194663258708035050715449714481919472045802876973611638655838303758765341355385405380744999156837213265306778238328588624176616967891228952418388085705949683403481391743791076190069714437566437679366517158367872524426887823539666501619288519202276308961877278430292219715428757001441673605644803418330208342299336540568657517566926077385580435447601493453552688176593033019292485494604378975636858454039801686131402273469675910323564984795394639397963884471754068916009848334272722703988010371543685936924747035206065160291014797048182828764204451675738964107276050687420942777242363903746165129696415734179193044923822671448000379573785789054642440271907168954023858678863833479970224277111801551559441236476894946509382954199185122097736473746045339030563399288228043832891699378655554845512845138869775208163404814849008626255790511809916608463263629101251689296756198623389578116436760826622165718570269797228362782111534222253823204907308128821575586264401258045475139208785625236656201459883019413732686825102279198877189635244897879924104278865749763359117871935567576105784126220089167928973141867154062831079488798159865403602481769321062869012442118972292874676483533930875859830669435079223094612430824588810712008907100245684300436201323069970765737120035117440306952886348541014427400996932771926637380574834742686976963605204385113004494556642655002075947738664711902029506173249317868238260708513578427955937083839698827669322316977262633723030542192977779097250646666105675667422326638785454367186781939312436284538765880183344242591025496381718067388302213889499736787470709089612533804764889872614280402670180062261183596982304192380073817429909042427229539255187558020197907786024874973001608575677509976592430350837712747975172546161753562612874359803448567476589348123447295997115372705948073822608373115034557778786278556574700131389012426874135826854483318504843648151095611699977493445061515326018467265288748446661134569643566179733825576945784582234291589611713047790689011060433039883923041631909690314993913640497738756974610423189915531243594064284438266287160873051422857072314902646975716577982603316990674508879567474124563083805986433483592825089692076277243384079948321693257691363539515880895240426474701105744506910860986103501504763666193241740640628999646509709889147278788019878106327754825473625397298532094339373951630839940040440495463884806727247664008173992521968697099914159344687842087543883185374358310213297410041916919347093570438041246654941640669649686414433530227817192697199703091132214169272071673273480135250551345851168791716019602143551428600198598366451243090099342777184068741177743537548511744851062197504124831954591525338289886530139402464793793629063988695555853318265987773127226391335897079962412400647485705458123550632177233410424839271173627443214630816713722597646393779712453158571382743468661063622345283418252448478935416273834155312580182394915713138356336335559358617094198897579912577499401869236766841357786217021463434915727573615578751116437883573683012971952877284184117449690277506953362041404430345934550208284697225665459867526583487299255822935013372911729832190423507758879461610344870946947552570396855598635798939091723533002678868269689290701317931436305722485734448328341356935110875200704930771264542020188016719164708009881148987476966874963841842736038460874264291498104700329868910046490205852604962290875049909670604215717259665488090679557254922228545249698074077987410575845454586985581035244383508170430707297973993217823054915559962993589614951643591438283250886367520944831926723256264330145886909143248603658413171130252129135458885219874124203691749246885101363533108824243574149011062371574970412018732921985417667156429528886480905837888625417904962408660851839256977082608495238883942906689126025617196735019511656524294413290746746757799250586353832453037715190845790564765756880585207118227105811768835457643451563895686713852890024065084537460977391566452605179217215442883669968395841128069843142763559537308610555732169488616589090738092374497839417577460684320222016368075918193142152822592403085789703616703497680577546985422900777905646442284490476467358389621798956067558399494650657682606263694334702056001816883898262393231703077341155263347454990885865449976331891447834959357743951920788528450812706126000472092932282257994620352439683958841946908658159512751860866861594352072603028968304870013034358552326491581245780556790893542464672927447853687132719421871305472496840157613294523255354017643993517681457192531781902895456221424285221925330734146699295587967382555942592417467445523945340990886009289226125034100987886352886521439034770928516169767319670044293384567926409057812750130700627211507794747667638913154735553749127119273641055117944860156596815644609191952287020986470770101714768645101068035146201459227709311445069536911501401985607759326714337174609303363359377272443696957463921893833710934990804804402436744196751181515522898197355011189240519639551344552243974791470837928264927369203845867212237504795835400135644576716011409031793175108583407410273799242700880014655925434236513063279861656924582828802373348919946979837614626200349797389731608474147421762901666184532386472622339768834490513600896968206377409409864412098428777652797123121875081538902972786235814187975249044243885432096105226163517656635204022615542308102724808354463000864041960211411166306709955432843348759988860233966953701578128695015960614012502336315412189413387742338345003115123613241181080106996751044814361911614747833107986640393131008994703445214550729667041873952311764347016133126841660860619815647122474312452327376192295538673645377304023739068357320996752651286424560272760421589926932693639453310467117288642485935631216219377969887051457258979482789073275474136175860871572922272891585439814380226811018866509629890464206262491820216442450309419568240539902458420898957416506117911140775844976917140288089927014606725458030196000105206075972518735429235101542225283838988883006361065250455829474166004354104869935213525113968804307106642399407235026371439698830929140589666657936293306912159082879336445065603100606705748392035600802138411178297455275481372234655123469423531069886611897241745572889516708815930333127253718099957623393608019622935256775320741458990842995334791659388107648941088743261426138274333988693481080315769618634026808202514555559481270544460495982189729794862033409238719033710341450724348981133424808861008590636850658718995706142670835838403634811122426353984654379914144184272246657167673362267162385533199395383472009931912477832342016590316470470604859935979594860161382214743866249832890199067840237329921788042061638814746522221615398064385179922901992791188843454086678853280868890031746696763665735176573623448548716592841626535964272918111521278288464327744504503340185968731442266066261599306679303663692479313295760203796929316084532405500714198821829739729726509271397823629044503771678498947885809384223540258019093544600170617190831198760244434987706569021417973756835717371930800755401311837848211468309098662737193284866133750407292206545616280655613795787828725814910815033006488862176063282674593692344800512498041473825441987563572870332199345059831133017617478469969443609493921578859701636937968518791315200252776530517963538314668118661568618650926474141405200637873212410667534177905091502402629885635358850576439978285127301148899265335746734367844483421191372092028526857664035436254610938815170872975213936321655610903147809308239930170996896023839700758103416375895008773483734980113573851979797788075490650568061279099246078434077392069879870738399227513419171684990220288107840946663900291375030134702075246455524891199861917498683456431072382984560663857336216962285355228436486029866436626199787904566646674288944424251124234067963547578320777278433338858785445864664236139619036661173871319771393593312453524118499074238665140187090190740871160556915562948492245359960441365869867827655566056625609505021804495932097869988693598946152414148463507829734048961547183095174780987134448258472273464083251543931569704372908177903333870090130664944780811652943698529405219848968930260146952343162523891948443865523093174761985697318198844876117114471478164308325787617220937063755429843701006758267496706726770045981875915732954288440316568851252360526336596101551439385572546439821584360269421411653754986777022569369130570313784850039574070213470913791758429714460281923388151550380167288864337145446314398392280882033387529794241341966704478315810815335188369325570992573509934784926542386408858861435945104835649302407933492085862085114021533466092376331175614695641492470007347200264730162221163763223964147511370485208259500519400209569750444268055073074120736024963073180043581109059179860978386764365648799969094639177270016791708649267404311926235396766003275020690483677140152624385095441055255525009153651126455749754094632323705508992400621308990789624397174572335588174125705972508826284176527515507918350992214429058459504749269588692107178748084476386599153066181996768403678189046178102581697403227517643523509137676438756658879455632306583924673506480730750911483454979657216345038657863458957885898134517755114791893845251869144600400788472411571562733774123335800951090639712380091947010530577056283740983006950702346443644567355051618432062944653210316179095734093474072546659701571191391561309931117545322998469663512290552642139171004876989205546915007304261554781676451101243758023035876939150817687410114847921544360293259578634102094443860918461031078946922982744410005889170430394697147085991631037654198970996385141692366284989568305818593404504760574635883174007193604362542814049381365519121787752305007872889136831048423222752565864442020996288747651440935844285773690939401179771100284872858165605005504583829312000601423416264870597861297727275812593611196953239359456404731806403894057455996672827857773302708014556810827543474392817454460318722177877582992301325344213995433077519570989283256100531981924714254681206468486590869811513092920677179577466878435962304627974368429951511571866426061992070351146390524651974251679293661788879559603473539820588585939405662812440454526329804405925509695854932506149829386039180185118290841565324394716821567981512322997518938205452328241982938491682866410907201303806195084385077627664102021557149013492500911322093452840634864480860116883767094626044402284342802788701257052315022994564864640680056150728022238756742673129361345059042553474111801661720598624626446827183019565767552796484915611103524180924276895651627279615016214382263902240073342880444630127443072889025949882408693670370966421855760998816815757394068005180521177763387451697280790114389851624789598122784441573515742892322185250538471719471745148323535704356515562037131915408053472071612108970995980990626254920552025551064757407289039015189732230361707624878713023140429597771429890966676605175141482873646681262972869039646933124474753560726397504061445993329869990108837341262889382696148556947299321783591776037742617404060597971780983763594889797822829450042827832992637288771062163964461941386427005623601893396957404043569798031758890799946972738290653719639261975027664431330510422939835440071475913254784040823941391919461782572661983263513437054177574832664030040487840907639949468495106991366061894097742066808440057776591185830960496889124240776732656766657590162665734938415120493361841937127376891077335759277285938717730690295119643156530642666588077871665373816875954418710926359810198483647510988092513066392980321289666071094822850749741095962557872618470091890865396218132582373281487179925813392418594477580059278380886332486885484157294880869777590854747266826006012524675165107253085019799969069999368145801746383432184043875125552996659786812484425531696079617515037282385041431737738875227108808840857048381249938968251360786337584038643290747580210497510360063651342054843237003410334487855822602902348505399724113550793457950401100924251546927198493700198463959567124537050271221395442949425318921191962056399361673145917610483598598892067476750382519965444214602381446828647683948545805571847362488745661941014938692092979914057716748145996990573225408930936189606534254549194841153360403802353702313916810300585843385660498754653688957547673696152060535342553019749606948807308794492640188801260949490339974442120784448154242001181435086196559472810103898459401838067548451316987549307309916729232209181780316789538069924780603985716657893682074827171546908552479499930696782361077026454369270629070518907552964860402176647007952012946740978507550477062261014630651137915994697747875079628447445081922467331494780285078411509279149028677442628190567574032097861318622079665839824975297757536488362157160383063156855685985926218994765274052632414187629453294900491482733458063498057070819067825944497748378992646514402887808190936560692567742143549611719512711637598675869318761068557910273057911296463268157974333692499843016108888361387912912510430876684945234779704766491385692257994921632734514063865912666865494244945296563097733813447197881101291545336598853663260227741679674427190848960309739048462100063900591806061913612075666067076198149226476376906986936990393298389054279116262339135300845600542296515725143571717322336300308703791407309018983567620517555351741756410979193877678414250538727529598407946396577474729446946775082167888118234648636611326851981161422430138652865365132015667305828045900596403565092329074401448221674948100925653666707848773224637501164982274419500017581028884150851942719952190892630060220769228097006406513719969465307250898012125130163703666906193372778695430007962418716530151728538847276177632893053345967389411376723522750988300552096264366915847805584058184655334946267197349669174220289086039177116168822228140038020897368161839380634888705438270337852679299669400464273823500548127895551109816683968055182006719621372155717130151112171160138052579766470205012845990672103610013405849702121589461966396009980777708220613828737303000664671737865932762273267139745894984508459718726870879890729369620847581090368416022699813970721155293831979217978785483553512112748331672001870895805695607375167810836901724689342996150697947370123451330974474870722822480319320425666588456471727674057875493398928896719548647962263648227293832709936996754849858608539607746465072788541943739655160421459832764714762056428646590311722951645153673966436349712621340217354469851405445439672753172645111267611045163862507916532883180821270107516218246701668711638479246313456512990849626287328825773959836073556660011034277154144243571893129692570747738957723699683954510678644471382568703749218498196821008069370320538110232885634965808413199530563845019616236065870339135053298008468419347973721323624059683002042558647552534537770833899599599897765963099395892787360851788284430009617225840174028042368209423454768665771548744758934729776746555990391401091787311628393382587207757533380565972404560038311984269387995629968182426122646617321066204365740473183545890642256705553149568075108310990120741494671216352430279550019471295439736135734609202618630186060919971627253587085743980298047691982454609914725508262779208751247803259927841403281086951904596404230622105083415778181277605810734557946464726362423085062996240540290765637700014797618593220519347430611813754456988398174005262943199609781909618261352101373565779614109203388180763285529628892934208194253676059032993910776944988254413967948959491637644699703623664012543951068444606501285301529922679655780348439840001032488463992423674484389358629118059242847987058720164536573458182108724553092207937792750892153194972361970848798888850642481875783012205598748825386570931883921023981567046394091818629489093298860699623734508556271657862966643651184578047962990740201715288948600769357158040737666780611955631569116789070633968302883903630002460529057211106032409249933180513401090366704448944387182970467705339248189536909706502362808614731303298629972563751636164189090484679012996482481540367309181714159631130276917212078743204863558665044921628419554450336342692826132037581588198111673534283728536027525848505912477015354544752869786414544542962980229975018629129073159047791271636961243653601567750555254108725831135226464474155984382304715335640352609294608977189969338606296562455078376191295055901131234905072973100841395493908749563744006645412592159866184781138238668348209506443905650808598839636994783430851879941942831483503870193112767066933807601493529754686008288984215359038269767313470053159360978978938874084130573128097184712673644951835484007018205890039797370090399233589232750602731196256443348085757101802612371646001048966084052565489513627538022458762982611983206984259240331105059666787816773300113261806959661432443825894820335893428158309993473588463231579678207974748586646040545650541589890777769140375427578318356804206102593006691312308402378849822987996822790832909538716970236267677184943300332352309697193539555649534428629015632468493917364220427950209100879682666785403878882587404494203481425121905656522434883522579877701109362414735956453858502679889546546703802949569168757364860855790273107709312978730333750735847226232502861920473711692100887090237902552889589513336293988207859612256957170120229564059343944349496703800110104290544179561606419768603506665628431543141716326139419058866946406877801163048292541275084287145412514148677064781270323751932832962022586319650136824665938175096327722250687781359478154444236229902420208069442892950104912557142751814442003460943990541236371560110316690379461379787915520035105302139310167278679218232022228447054218598859438837861736633689995635960892902612404215084969766076920080029730134374043147106026045454951012886120815810120655726711104874326177871931584865752534176833553728944489995915544705573758118587500207695613017566933901704910871108191385038901675329546761329260536148406873713617569318507577663762875725644087722114618385241197330756298402417027069660684332269298053319717393204164974186531926613888783426666891492626365076536191494497142311910146945679534853983470591215313248346801308513386413897010784256600159072652441638867535225788458024041922217812875962311346557548078469896003472868974086172160866001822370297442205728531790788059994279933929658148736021083988593714191567031349707125088033708381818495777072107691922584289593028312846379587848211276242114979904218741245919992000389493906588160601058743592008323537373186658673750316501297159619757949502223123246086547870663716375679658992803688549091537642212770244592556736997427578478038419777525568939606459644448906534414460108626344049782733462745106504909287685334761658229465240942590763286648644823627930947796331082966791201593335627517708781808616783573164216696924962320811079090372602248479306650200744140504946241543243770218782092208119926723091832277386606441226789707878752317422473359894165588327697238821093195633797670354055616308784953674403010470157457771817101186451265016751363500222155048751764824266296793444206112322180290561918675518712324005495644383277301317102872774506556310659711253769492194415006732862377676852539415801956002857590778478563786590088246993599837980515603768178480710105775881987088434969063695596234161056990423079825527437956714845013412932955765507165657904080691129189485270208472054106710843336161449894441112999923684387490465855086695779218558169291812184390648495117432341616255676294007972192803606923345418518202154594811487310154330040007848440025085632961652930182860729687438263091935895113771929276365184751892418718161711055496492768504819154305355204839238380634547600826809784283836693000694991722182662345609268877563046258514710800089962633939902647055463317684129550591751911681053090126798828981014500997065919865616834302526170249355921105508837224255035267360558278627416626692141952300173824888208679773024338129666056722615690038629882097568179290252778633606354551428932766181476300310190205794192812717310829621494676580862535037496728376223453739412226436616981166353807140036993464159217427943155132024993793884621332067930361718112528935117332349871874712662025458695357930606317964204446594136296696760773336201650951255883309793593888266045648113957166029812994207574869901903007133249435553754562126867892487329922319964708661402321680420850758262132404836836782589686654620088140210973896786513603838568149484231118250780306306255472485197035529238639830383449173598425897758774840219168855667960566990527880347434717033015236998093677635736281780384230311571004255641811562960828068320597170506982163612512520945841930945687247704902211336020194489864632289904221109808463166471327037078122558826308373025819119799102167398666776074462951076225143745051804054876842421811042912729628125454084771278382490097127534928106176891714156673082561113392701904528483766942992517186330944660603095327718502629186709748898254073141828610571351261151359983587842430060666524201314129488006796173867218965727679023318346764641030530794612748687427034469603512159727475219788570054522883309357826562928944902976882191119027209275281401039568902796460700770654879951505312501505394286304128776516401129433009434470743129255160718140102516758639191672780370456415125612544633726169077384410365098585024732447603984191975467103402738927402693112633149527584632053077494439553932021610796198592512462213276309526540545670495596145092086825743011467776667590263765134507193761517556884104957403982911757092689621666126215630443934665657187248955715002988704658118932768046437281702541395355425712032856861600055543257853592414032226950828273491211653920250620315839886347520120959472560121277866339863342818770304514124638203317754381104759769045795360228457532463017196332982170117354545692450811610144324043553010987785094807352767865548031557227618866439382787765709802671542980343761656345571073799225922053825772793833786855276344971608906667666328656367239045260139427998077549759319966345294751335193821247346255875851235551329483228265683750687308715285048276638001218285950969658300828952539006818540761685077290754912522489804783460756991576684485028147134690814569390356680263985054185783656337859846116461866166667698251689503686807581750667117231416356240379443580058437073008540137391585763465390331407875291046203125790365304291879473995190613696468318726338115426443717135117461448000451360305551393510917693557390196972185831875337483845457745701335618217486225291161944977623087481513637801092408373595807760697940276731984094002691124714480699216741671147845981245876846075745325127476475248990032620814930726215207874101576756630254378099406253244049397864113961641090834664015153682848742449339300211236567509970651298154569142784521225125780732703507020839772639198740215838399676628831054455874867883973447937237572989395516713963077770040518035751948044888679730417626222874410311541582133810794500539726554243862716491537053741402955458552730904906443275281098257749018121300167682378113790463111279631814984109203095414560538022663614365366681742407279165320799540535916105032296256338489405977980770006048352681041845762581189576149830313233500173819065551076288318230109217706672729094801671550441661668995350186268423489055567048909311035765949125529441045066625663971528202027635163629493518413514163892650278412431422234644159561103745864075737173405222023842860497589810266057383685674973613542970104936888382171734623947973365699453354772194491795903119133345501505028692523582097108333872631240146829488468092039939963193773362602307912012795957580144064487187120619183525695774262187302185692055657738026054247859566349007140712956507434359167705350607568343386680135791918875130318273410005514727943973785255983203074481090194524962955360588642120386920299766022293918545456862301737235785506099459557921845032893381335299068451984924630947024587976960799288294101708902772127434800352083750886880427673635808961716585001548354085477254920492084566921269978100375588910607431433249778032324808531783384463881298915811732677276328355546436622461479319515298038760676563191069738126697049041442942907024894944444393432613791358765635429676228375160818797574457590313084510051316410708049542365332113470135929077371805619625973130963685014019648155879001787298328077083461597325118195016298338105079259292519019815606510644799367580428503939731550842539385729430479704253252154451628911844674432150130703929287237534269287364720267262712756890839723312461909751427095635201895145712763707852299112813682889290569641964039769730127051706206219886960853312275428729579946729284985326631554256027463592968997200383166574841209574093028272143709440289430821111039934111154054384198434753445116848038901053740356150569688709271693968849523540746991880800826691102534893483434164897346127139789133426107385534406733949026865292441017963740965952618161962894389895235154757554064262616677546354267487538575881168750031796770744906149962277877959878727008965923067166763541341167490002036120133050772938602857794769917655493278999240238076843646531123168537393662959307660277814260870794948601701185098612921193903461091207522842713069889910709592992529035657006708795938608038490939997619105421994988959076075492038409012412724792941062799249271881385109728360630552907925636563703827934765517152422749495190183885055852823470442028154038283280501191699175812400823460282443659725048633730970853412999093020269050920181155399978891530707779061902612774820477596721153846919717983503294535878373805141315528949537096043261067865902156425501986774920728234307048042675664626223048837775472375742002675017132670076594170956229086509531297555539295180140815886330222869449726827512858550986871560774398025365160790227678634003664307340910606298592460165201003644695714659737468074944042702236233416542190814025237185401522329707735404580597505747053735369774555261960262173946211206544940063722830324964558157983385672260179646669028109797331609206423921059415867167611296353577570205829902541747435355860082817220864603022427385390019723212714585550396809382365714813033946695629785779768200664424310785534136874428147596685366294254006085904102177706141156817506743419754121601935154185462399098118122228837635088168161975589492613622117574647499072409031150526066629324347227469633228330979468166812946541335605978637298573827328559756489850041359535631037883814716686229485124981751815107569872573744424015195659443699112518385998298443375319240384076686681615984954456544625266824556930034338363896881834545796019270412825175004914955991038000866636152142903682152370980412136579359640194589933061510187912278052689055488015049398724390840100093933274547812600582837707284399490342830258874327694341648092756092421770711665148505628298207959184911432148134764227728525385799684391118642692653471277702268493688695853674668866351487035022857583570484287103675591891942994013392957202524535751280407391226190024551535765796240671057174925504213767700651797217772970672663523766403276617908546090945646767710802008884636498039686094508037647605879984728001140937103353506678361131670450767585421842928942783883615146937883243099242583231674521269310934961426646781614443510331068941604590730414448621284704148051654472338215231181633593271977062192510338137487302792523325950764522818522110085946986749674233017204244770154817869888467381536896855059428193734631725621152792421714125178391378548444141218147943051669267380905976293428931870128609218584339590418176649806682116079813506040911179136651316133031020389571798418807083270475515087855360964947046442092001208256076329545052489856224334427961459923812953272025481293275800739316195126862661965567712704031606718918914830389535171584765055023164801343760639157821498164910414524704170802566347288353651771776788660637531644849736257642394287882311693531237945491116832372165858015120688684900338609398693854825584527092940571325294116007519643682038045455408400569153647406730635477117760554373850665947654298866086930910570233854537756359102244193563876137074428816833680797514914502787282363352375165128497423614605014028177674290039714843660012795165823594478112068303696313907861622622131238103038102427266985207343965169683981273821194972506928830585299808283725479960801715924248464280971812040645022687971633218619937253539612645505251960385088081382798672391248902171067764656713108899313853910470424214479827302790770986401262123330099701336364065684303509010821866634852601638854987034641214996653624724155169321143252865752006841517494909263062843678099464439098002482850202786290850257835117336526630411523405255216156768850484592233623172271304235340169056982795443569119515746332307099410037164904303287540188776108089022486492959039207136602083400221088349565433985212299567521041467581916176903289788107768262564084814728050768285784814874483341582015824238094026173123635659470844659930105801483133575568301683672783251071823495159758961270989594989733959471042255939826864893857076173698396896207624101823458664739200753916841379667101866374974911828713023290567163556404592545429749788601074347921495789004531788757251177110761378200067064101908065405898817927109600349330346965807043347705091865127127999188976913290515970668765924530602903665725301302045493966271116824469470385235935648284960473704002958770102880051456639902846074106717780260260721873653011815503060994058914605002938199744163907302795400353274942240666851102889487284346564542110593195155905858249054073416022876801317901027958453117217305535051869052482776676867835238020558977774355867823192855011528880485125544907698669035049100689242576488630853769387222635789664678570093331382167876413931170020945995324165407760683135872847483768118508295831212542510788517858249654808337692005831467607514529685022041685147604426971003798738875602749909725767378838446007627743658850648992857107328810029636167983174252025738889822965138738705086982701414265530035132161921164349847393707600493604991988191907261118885205944952733404564107114852803555692867392513303262084135091641691087635912858535214059396425114375331140817572559010780463795999548219230780382084535464448869895809916558548281285802850525991206796358761687726720036853712925383409143923488628046431346675539148765346003949776088499509777638185980897995948341339758069824513958907025790092258132588620434585734701049003484498977930117517891593558545084379827338953962446791624123611163074821377355439972998102472101824004535348256681875065709696039080195703119886830919181171517572992508139812006977551008101985924203063205744630767401664482898933633163402368482850080037257106761784420463944512141465510954399065874412272506858529808716710926946214506740671774942503547055707532064796949354787635870431894193882943783504932504652360456020586246245324849408790502968566385065394597046883577587995138517167114809389612916236031965881701743554476216000104694778872767307759968542041701364645875934522306674549844251688906575457263474548397085027129033481127324039619453768754386972802282036697977266619078520832090226054407704473162713397883270579661527803701922580029274208065368108262358766954670773192556640613981240302696785429047912460165999975731634704283149659106090698018054544205979935256944493981229586585338301266476925347405107958996073060205516571856803060938367921245754546359503294246339836517574779110121112942328928510283535197223704716987728621718663860324683149060157332504490338431939470377996411715932478121625020783287556067847020067024849599114439599110119550286451201840907467387201439552861846820692195461368151164898588143845691488955196742418377768326946537720312171998664045430206825941536660463087616576474488919444215302681104646846337043755633151534545291332093912682101795969661908798809320205409520475356076440797791236864659128516950467714552121312434515784895996735492738956911365489081013287867382128643839411316528981320752025348818575334653919928845243732344017360505886584016119637517342948217250208394079605688756926314823436103876577407852098039214109841819837075158453921537927908019575067085621844333924443438618006956659300989632414604972853521500802162447198274265161542746320167705074151961471829872159578319704514799042322172651690740228751893167703566213014054897804297638365596028278409914633783905156938229100130981534168489750756234340366149147525757302213619875826922300670215133981301667626842436067070857377040075677921765352066368948889929282130640755529097453776421634180906130579428264773055918679244328615465075860665920946375241148351603837607092860464300189711681741663372064315882639036679888352917692973574108688402930912553245287271557770341927148389035165170329369727573770800516718894645529461720433496993035828466396541727227053894366912224711989908479155370067582888298217048572634905183802709436970261799382080645523402305326280844628860055194604523533598512336240402535950190752065090672613980579744135463394912963284898276772178736373088196956599056126179604375798359502768151345002990129500352804717521567386195369784509750555147311202738130437442817660915074689997732656963016839464325451382411564836267699914848158229052837230582027925742347104385224404294139435773309288308711892007678588691451275029666938162991223930116834043622631416508760714530120134962212359657603764661633637239327983884860416660227160586413130575164776425421628901036043074202016482929396030492923649119982718777429000855330934024609475611296693726050506431693987904734747996031509511604769182554458246940625056399236577742496501481881888009718862613186559106933986166949289473966692857976261698806317952050319193547053664385227355953544902642477141018739283475566986699776262656183223778839188173960992300116390250698890299344012247407010278195456071261206728314519056877161434000920318722520110345552930405728394214469153998377943968259052911274126087846496321770738599473253588145731545008449115014123377162654643149662599642269317928212063430715632846295992679861432105531109936643995502694085388481024358712729090697295224976241425823918451600170852903209503490888563931162129969136199311332447575915731663849217633906021087694762475983464885285091383152188749526131478137712056433851910882292972938740650010632887842630398533224700723560034300832490750623858371273628626171525233513649470735380839994660308550808726801390793462003885403693521420050724142349057343304826464068906539311113071563785654430305691103067725581599225910618015030182427541923614270322103209045208239667914449764220964506727528308068521259169246319798007991534047298592142808073168272274086930757661745988926859687148060415719451220453928984361179110734018470308239380141851552083343133175051643998862143109047742877250183372017639444474916357995636254247324944675126474819132962292715598105632870396306434110733370235124763146876240414278644160255067867500720158298195765362278137493177743626210717337603582922314210979278918649382124943980905657798980485749666125712332630039496641862484092144351365180966677341722455903552427617313335175744852883028412680995622982850457573726748531343199993601980858611435533721308776928534258831480937477986101684664043353845413167860014788382489162654655758566185336243858063715720006538313251943199214192341628581102860320032071009194301876536566062272792910172968795327276961055984969021036876688547528937398275425227179729595002029228146083119640633336455218392028955699016787304232270662446865712849078438210070103888035103598485970665068722633736912396497920120135473803933881338946194579068414616187448921053650970652727740689077551549963337240465559237413474429346427956298783098265580671099101587548119104842923734995112575859686367970767628908635755189355730974108079552203566910346294745487250886080148169536791055904978540837804792753592214260146480402062101526991681323717967309584198763890690692043787596010926091017485852409218376073161085653039497525375081733362368446831777124341187647806692998789019332776231155153900826550418828583694828076526045740969151417815280410077749226031484903000129741995506395765202296582543949358400407320517939890287202949808501503118792966136785244027946706953230859919871083296586520003029703672256811037191652249923693439195614909863779659310015955741247089875006289570425452740334112295926420947318717549138329646686962385850049641462943946365068469778761137530417934215137586217602135364306367845074951626828703025281547385145245823150869888697407340617512728786891004914113657719390187693558372700845691787136111466644168830995945425596177367056205697491990808320995146288025532752534633029555984350667221764619360543848681352917431051338662911024587639706474901512714526600505067255916744342899261673101294400927584522765608313793802819096543973421586576919737638148798735146450335446453018525230057344364595749762316819259688797209536248767368450126581123478869373577360203249697289920739575370751151963033579422537127510626490088512660986851181473312350668091401786319885272514569778418943094134610835818658135602946096524744082532557342455811251126310508124512989532168165505059015506685046957632349023253091297674773950742800226622034709698199138282204716523742127309131686292134471688119841477718839265856347095043071388525961392891424192565768329426554059548706332426163298411594692282802728222406279681880657542186432871986119875880733466448772408156483418762687531476103432701527594921800247604468219358397454867820341960222259578810298789665563853028720705169395835475589841177675033196893670251300678216279557139524287234616910690136405820304495943579607545056143813648066773984990365412250844043714880137241402214479736140162909619633124581571883464426503879006830173339703744041216024695171138341241768109582578552133870245614507193900448264649213676434090231883435534990097293349755863924385619542980950779471275800878306210686786015866527077472726670535653390218603577927999076930269245802819376327500697861561962150808431081173526489991808758245964170056626687876601005782113805322704057108366705893125527860853488869360616256261138182812691461460393969932446997049095450215695497251474648613933424726243331140684490080976482742980454271223262777292622812671106649602014887449409478951439266109518322754055424659057847818041453832259232893994145341738591792978674137924293537709534907872559425655444214853577855691062925176869128564228974486327997638549800384644787955298772128985190482496231477993221647865630358420857733706156829103231500490496395347529023758449694889008310661961198260424387656761418809400266651952360739854734971073748835042497738875574505272883886366128927493524557236591173926949845839501955813139519334755740226519409594117097556115344072997467011057914081966289832066523823492369329581514975350669755087186162104198535599628449609920136969779302860847729170788677857806809155501759514849687593224530331138625572100726047059283464982846053960130885644523233910579968484049533565796022927496454049976746965206011873384283917794931277613750933058738806444779767604336622138232583263481652687927356890059455762153657599422615917487997445894237039253357063838805968573973967505176195694889800345022408341939397806023829245180223270092473392301116843930758325747358278418244892129611900248564576653644247285361949685877752756927505373230830074855755324023677668010523339690311225755586955006408492337049477816127054408149727347478440792790805464204986157123341069126988831587454492855929869260506411973875725868927194656664161692268673458978305333832376854762408950589387046199447401138965235186999447297855043625230579704555211429497704811053094080764694833848539999015349227001306045792874364618010091445540672055618022438858319833339341072743672447626135843992277183324627013528735780386586562402936659438907393376301219080427123643705711493457236229648903244337220011070911397515460589591056355979603489584579081225400885253322098359543832418657208062533787521500761067428149758785954043488132061096804742821535999139436323608847355812349592600533349544332139695023120406723539866455218016298924241294115074942848358449893937573176528311653233529633973272006848488600248346836458738308320592212344095281499145258557589597443194349843781227770634503889279171056786159801606607229234785611230707405687555193395668650440452419379473523040430907796175423380254918399689344694019966704257888728413823213921022085884093438031725897009579360788122016193234810737411936957230072521502079289377073193863892947277183939358425700203577862053939062754415010907516670218703184764674818657010045946158962430790038680251005026189280336054942552442786074829748048087341341144337779434636397946890158469370500461522623992331862550511011494095462479383114479465265207078971826601233828660406500173988874806814569223710929001178755203495599971054775934881901094690242038662894182560954129523456833157732541208064856900573837363246622867451123499203770746583899191130274175504997313529523654337774504674678953847909384286200360398216461915291912462513235853561238331478838823920116584046488453203122728535363805625107172922708392302009957245723148887361246146747448621683454478085735594752939773643901497132328192156650633752799835782610512146660754566682242420267403567986134728963153215925804461078894415252820189850548121878368850310974820338938062236269412904445530869780225294249886317047496078450184179392251425691458005106660674345460126338394037822604042225525904698223843169276288690151958795142990653473194136765940399916370157363727682488040795229953374572406460610050061215834508674668875624388191797622647130122628151403680647752187049761839121657791208016033530333623280043989085817514581388289482631102891080084055064802996337848086203720245327969108278658645576120725324546782370927645521590542593862936890784385854292424610389255942324214491709338426118173332935081951417158847961587075734375558298394452561944299511192724855562587127082518969670288272155569510115250346483677490337100869677554721268645817596446558394527631064113300380823405673652910300421540809570834855324445111445628845545238109407482148298731624124370611670795885909301490175385049606536732199056755737080450903218731582384435204756808239045827421157470942814901289823422906867367258799633389364061602437935433933754350030428798803479058737806798823978997304709949670382697194852698255064069844973693589138033882692701120687295057788258314243287913841512802761159034376857585825846688319385903319026264000318332485730802123508432840196950596151851245377965320858541644598275129070285941305730509967243422541419382726431543246049220454965555231847508617620167859894242440772771653557094518291605032313117041175150737940126093062916893591832434127127275275712052833516535338180905465556192799075084067438411803588420142962797057625452950976527682016432331734588353173231089368582975501384621491506426155556128985535170626402211163294244590956747272752993627495138576105443614921190050263647597761477677687019165853128941682030478516245558137449873007892239959548082919100035239936917556890711927590032893835670467444418361248064222428995730471720934712399439150590905240857675356427257846415722060765373344269513764785493069464818291030344710949139421329033412601887990331958970787285577225553356801768814986707954343206468131112936227113360049682122357317342870987150329703768212143076371468999388695610325232530935234494373828243277235287667458814160530699883914525847361141890362723192178204114316993522844807615779978833196926826694153765341116402275265308939491131223264835962511572045260322720721323664916491160418020153479961936264648459949328176573224158910386232104031927269815266944545210528496841763759581289490422234988974248408803970000680171019619314059554609524281799173356149379571315489244470105301291125169065300009176323355174883974644394934886184945056299184620806868031417075642107685296713281918367219003588430079300237863806060405797161173024966196031354882325408050866019478540384147330733107801086383623818220862809224976886838319784806294053881745530190537523836650203134766650630774454308871916804048835273010128118577932331259378661661239879385690585153153882435281000609819577176076440510481282108900087280842972390189880992377784831668254206615149885247503627987633414297599297183381557470348859889985619098199154415242273999179075059890898030639676515026831202919908259240479966106783196740299645784748436233295394241291233550172456285056165388791819918738282469787534032235587922258535291921745226377448979143386760579605021488974771014121363183932092151078528395609640124242337233702270542245412509126275066312492240799906257874107316557822351402573037630936836769951520041381501616388001747376643063113190863049889323846043083575735049588160846287297249111046029698602459812588490400817381522717335313033195160169622856646674214871928995514633789274185786851589436159018000025625149171081795210627166856966560735497011512072047557522875374103558440443023861802588192905501222309101933835880905513068640963286649380745908029846766594420929466397117242732417517499750988278115874036908441039704094493643805113471126241727920667600703125710355323450213731710076563915306291324282825374431775262203029288694181582481252451616506810361052551216799035276913910073635440630082807624823881041050460673358936623379379102140773699484709434007994710675744005938286024810565569125465630706088006894616806641451010146586965731558468790087045325357060404373067653371946013464329460901204823253489734285637679154306439626901853133264371132754989849700184359838561977165869886657485943505662722113682402038574755777716701668553395173450676063345962203320865102324946335508484514469436154152130948922595971879027252525000863467216836292704778562961410423608613933102243599220060149940603863552649445965566298799206816099779932811914269642841399314853805636246459552168915470709996078715500424561643367820204142804202819495746837878843533611444536866845712056747466617040838171730013340902213450950363098899725265242921723226002337304289992381510328386371506595997548426002373027032145896937197664973504530058799767319883123720691314387414266762626271894622047384923030882124118527452765287782708247004025165856063967425627038998644444649860898785550231347388349771421340850904688550288009993908566609991997416476966372028071942593766415076785553162149178457890352177267431449840691248890586418796160379791778652334495926102036368266652692094198817295682111807292229305342647153407348338783216947725886192663315307742825030163814483495982022100785644428357834725814400076082355458783243353853777646295028161759850237519840467725738921109584948484294202293810349285963382869618620816355430052028318823630055772188706256580610014489411390600177824933071462907751592279079167962003333724683804876969978184108847085831637345409629853571183279473079910828242308273440259717986568708871993104128405719566230963649855831076015166589086203470739995598839178383353306750472050380246145444526021673389494720618228323041315456288196472876867394685526714399251331291280432933358585159666622645386114547099038664744303275169005237666248764564262266879785393526062502830525348967414669747849461069795342995784327648383688455727320741351383868038042729692563013288333361517938021121321982300369898212617580085008154710097702122130550570929417874503274347996300859012321446971622081049849819096425692612365626100110107199441522259515068279428360512699487867666907711658092607556993994112501912400061200165869793920686271059176721997012269709508280742886841946845405916337370084488002773811110571908288669635742405073644991590216436556953744291997577588150999705274484549712444889603683429578016394574576866350889290343652680712779429006349202239335599546620950469527267771744084366172439839689158667386990655099343329419324158268339581971463252660459506976416495285467618180967024850006115196856560783133688435801812130995493177224719909341885608705600635360699072913246305367114009261323680759514033335281041259039974665005639052111929757478131398233163742126263807325618279959699895237701785047803679847479581919748252611374159303127248077098135807528020386866441543417173642802247724383944866713982107830915606560039871764517836151082906305962271007587323091747454787767393287818515892128152472030697379346352937633876109355780907095011768909735309470469076379153607633291304129676538001512253419736035035079336960221708793585586936974113231191145268842084839261100271718881613462011087093795919324540184883146622783909506436429594572509610884262197516934254312303970899686303563312652620774688885954751706349158349672952593670053540038565339278190746290026418623515787773069278495659489672242994214447105964713945204706947252037517296752252207419226305771830066300551824632724341222904940654974591804451203200814078042011176634654270851675109590448027123357923113115703066033070887554679999206870506373874593190244233690409653496339514111319361806513546250454258868259368557303132290162415171249585559888022586478346574413434899137470366026058657476391813034457830697529883666381598609217996391350696662842731454013621519845827004992235313141767275360515779173527164867539513511763625095426126972277865464490372513563326797213290341835850352899391872287520256725438940216858528861922964750742690616573333069571351944798468841957424871925571513151104543310636372138046029408512587908171301497881124085084006265764996610468897880719346433977817535257310598318881642540942276881012560164562383672894826437275362249212103014337234492525697653834377464483141996254428668595578488721075550378737423824710158349006526296715505241106107271579478498587800266031937863403843672109982592360431635563413331092024943907383447568960234886568850114801016678403070517851419528903288616480964318309969484218304603461703672579896443904283505099951155405343874689834763040929083077755106832757936735173325914295455770988667307392295580495360015544465366948035250391424139704490269434300432885916563196428942284673152840389627709845155451903333446648466245411352867143499187141189613750473972394066422241660451417807809675426468334262264416424966984438292163155472753451741314338686429217498282153027818251355533317276053054724265787119990238974659409402471275885259889191925221852848322294249678149803090014187100975057840202801872301808349657684287993164801732609505500016205385690518548889949602726338201998330700463906772368418769956083361310817317403601884485843759775728788629904688696098880923650077427291868173848412748295017306449975001105794020661474341209654152516447143068027137855555559727027528961711351178296147114510071459345785179571826077176041469046827020581806662716787253891791772969910923773555272051711136604870180580605129179128321125239859413738004278295386518628842119843706856263240360728407747878018400304046134828329329907271785286992436985305185177281922548248610627778862928583259114662728798459876998262807914386614199640931985122748574112310800341654614312341379597152094494850062189706872447574830481888769627661296997199126735311929455665223760908226040489209687737884791970446145065415434770604205439908219618582519779023700406284088879451020620888498014265415995357794021251896529096787575712275849349913530467688641820675286482345647592917693978737086943385308967562084640872680572265042402885700518394706595051410137067146365843519384308523185796437749626002037006789041161661041200947537905439754559351824922921098549366139524376911952045648374369407280242840848718681721305274233894510964078083120388467604630831231421714636486250097993957943872544377125204692587267773768005487789507850064002308529988191362840800066028087627873603381094109956515258887571862946866274249036642363858398668526009940702556774893804360198674616010121613409594070224012205321130837238058446424415200280134119807178044272518743142710985061623242808655935971868392858407677215184689773863559773193750742926247630038036471271844264952864573706724690586582445811093122460063526227203745129716812545638438205172261062277348923817146233181795836089616323993118598785543002589196430868295201251525345923041684411618338561559904819067754522980237848442359449819936075487336372769134105818588909638111598333666534553185565541040110178265592138791565190046537779723897332704342796642283824360040784364627882122646130080283606976963589998479862952673860485717625359585330274367286039103528125275879673849405090311780987357835712465826614602182848771766374716640537604595433400773488331788257293542674900435838364727723167841859911793840285349298361693074857757517392284549490048044316287180982278073468900090598343515519878253994560468640201926391090923521216982018222564966242570916460699362224485353899725319542074330837077849853473277801400542064514893270093205741033612390792397123413419915123180727473849001533489402924010949986315120896839228026100577428625525767518782191735758844677150580406572644477172515091739221347292367117359252904803701510945370570987389500599110018876141810960947501340242692642867359800911099982277378287147529325148137363620912952826122331754870933459158911910817504738440467738909871279284225816276335763216616402591446954616821993927849422519139425917140363442349735231133237743730515663113861742858312991439200564735966002947882938602441155420996217784672310865174831914552187676949908132348701861659935374216370550776860633685250159091095555972081059327535810491859030752647091998825232262092905840394853921859757372458891564668068278377185819540327241406365769475593312410761767783005244297601817778784773176232809430907625066686028860520921878201161729952778901276409534535780589563349302861925706153867784191171054176426306263825502209028782413697490276047764357426479003714699457214521395013745453233419467815447435153358695569881057212638820470733834759879542276583867770283207627394106196468532172093298161202635643939517101092247025601716567687689535547154721307734252883562346823168325488919787530650444323176684894840362983879769366708267175465696571262457147875497578629409400856865177243419440109010730435483269260656305227566626572388097655522710242935026199438929763450870335947318154347973996672226766770978398106973821639066880204665750394585473139830470618553125041904432083535277493592715242446159285970124388801115032032792457487186945077788132617016554434895040138122937638996708103134964325899090324479271942228576702638669061432002332273578803976618521198755520715321041941652896263479788509225843902718047618885720077927233058282888278086760829749357207317931394632819819371291688434401735523837043892511743635140713051537220761537366711015080030090480785568713251509013501160644437603184276365983913421521603745878680189947506851970631417451746115258436735423535708160244543622889152064298641227806063140154840960518827512703748399088395387897370904895814050204458054873681033523319967907343469974319182908874488479254385605924347774617156001521080750953380825612749946565647407695419567579246171807754930603830927882276374546716869664360725564189413154929712016235983825861195948449141167256687732119797145392618311296965703707703320409090358245116294901861651431066609621823654250634900265949492468061181221204496907316279767733131932784149888876813050270523852598529117548255839910741347647710450571320733428518287625535067480300419623126162730932210984219367283109995531049283303555563257308069382229637506934227672891577829121359961707014869725130609161679990697040616054624620853562161236220314437405381709982905423120795932416620827583073922874344339536462022736387270668214720297610709386472313973933569800343776976303551549755040135799115953773236411222284245185737510686260281829564675013697501508882760689387968420632419201151432691158254374168840124769443046735807782379352606130033774111763554143219068236442284740335327094280980296938322475309549128084400787054644865498876725509566263252341656315500972328759084161657159880468989483415007187551546010939740578183397015848934695853936901645124205443135371191860778757943205370875861261085602645983081784885257455801182142925687920983648805602280748451346125321267609884597312312577938559761172808837257375128260181996421944796218365282495432341788716928220059180106677772755852952232618441418321646350225953515182234787386691530552055932730582692641819674699464143915358023986382041860910706706380520624837108259277115344227855233970463426046354281134086037611730659606129703730027493259835399097107058481206505921422506410112705461202091883528305777993307803926613292593111191256039594902464855819612840788154241933060983430800635948337381010868443534905053985163809952463237057439505528419937834223710725783499131644360999811772862319099887409487959123264976795163959776980387004233595093924354931061696508902571590478642751477795832371507559160222368770396094057212441011982106454675320961747202861014391126341912677018280842873076325336631622140201944115141047903240854947918525746351015435674950523143109455935838059241100854616606753595469524679180308561240153128848746349424594132946444939643467990511979557099096822683457134272959598526404741355753300719885062483362960174217700995086800221193910350363828468052480514806691846552481860604398753291446869425656600519629867278007680733413207190745276402236739064450136613125033378847767772944766412905234687131184590083223130825267558553815476212647271193888232311143036191190892066578436947426715883015734613304845777012704875353558901733536032921532164438100719887671790140338894627642773063094137835030382713797315648867985358422521704340501843780463272112903576771937647282157541607404879573697622294278440466673256359140911467642218868647654677311076465815756075223021545025152589788459432925805711922497607775990930727762793098719671501015373467761442453537414661079422518293985380948879191112565859689104362388457838534834796906151809416907703914932033241536985686400076241784213058168462185587585556269413918662466926283836002605680208926086947023021697388637202242242132205247315521303486810074878605268255607806744670975341939085595747897141106599661968231531396447124442733248697959664963659832540274481892566033199099577719605724867375100785952153071663523122081262690857538238588455670040821023282162232868419179660711112803357203219949497889212358593683290128408238385404669455339827555969457959180566914890626479989505292135818626082660820409797718026956103804402565886033445675800625497272491700945532311978974326877852333765733852192121151247377156895720116826800348552755567592152796392750095297744768020703729199656164574864769825175659635495578471685134866589443641138906220288661753489437546859171778375504574058635448990133472462310108122120877315214448302633195826469489483098071424849503962566239766761332422694217073410152656646482840581144044704700152493884351028488699517701437198027892354857539177967999846743409090929647829223760475320776934930796771063685828766276983529946593554217434071257573009932865048051681028775169443880041453988688766429978717876667175781361877150703676214402539616390802380152817637584265907746353742132483197262941526330039399896560238463629364964505327773519733176715970675249021923245803744614992305455866956425569441458445325043722011776723937575055384228497283656515635084421070715381318901101668407622949490594608179438558583271786428350530280818742553092597862433574669248122237752504632672342450101538349477119894713616606588751429691285989918818699890125863537851879712021526219234494633522424353902952519809523125893868387288859409966367807897148479245336616243693184238912080761451323447305507350276629961356602268293793118533614063081430754795964581569862393358020461134805796172776301863780584841572892731909710145286520084662010687445523421010945519558247172745938513490458816451727973795169253200458123690653086153020992933760851886374410871369639654367716871017003941948136693330079817788902305731159419123746227784577400579115747641254633048346276672064246737838278131245760210305412051592765395158967084192829774824484344531814689949123283952528003797222510677715872390278076395341911772061778473268971572672853683796339167195856635142136178163475087770408597341404737456308304923758202249680035414972997490042706119443704957467227696102948407090978671800247182934600597424273715527992319888841762628671708023657820673294510737422270295709693504728633615096060115568775270552123961832292341200985455185396804720379261388059373893612670754213608020507699080195576593329132607517610506937498513330017263947352293477518697241797938913749136409436918509738468593832660976857946945015947094051136822059224899152435246294501370011289176429918790529362071993548048948460197428298410726985515741749015724590227885186216312817268339073370143661745757961211697946974522964416053042557571386065435839538955698016511486418463368535975500750437097799499161574058952679983885158553410131594039338611903442069206006275624787219816365754447456873417325247072818968073159803855085302691602157338947128360878745086782597657991995577751505539804768813710859182514983693500389236924137433219553817262075144251152091216145315025615230658508600929157322205202598740245712900070646684056919740855574730361533683496419652904247859097754021395492924878500555135222455050553227612495843231520364990617408380088689072820151582504628070089194942848693997738715340177951332377616573876378813457829396361459304220887651190932809275776289283197275177920913769380387604612756363786375270487119224033519084300175837134660647163083929480634517476838802015650411118957514404876924122658101483110494396242167820187518860588987323887161959726434772978564858820608504021460502928877567742279176419834360109598347637749101096164511067433879198695908874351031480326259153024035936470596408697949753916983558753926603659386805691133217900276717821102632602930937326667353537100962360347491420286122414765848573866635895824997330454360637392563661330014410074442261922112944718890407616119704255831389914916274294802381183337212357986171818659273024294695463167968823802279817778543793265043718125130364187308071116583512225578062860275827607441114410429959305724253547590255190608529081962940823611352183960070613619218832858692077929962151485398030513916211219645871192474017669798812228215869305728805879346868335517420086369956802064374641052617408445879468358234484889486950243649390905952384386117810132672795586489957703515611672980870570020017871450215761853734684980449055776337103412632056963582041320716589324455038858535070215124707994579911261090214691959298455774905785693466089068720774611833683033684464341817170775278108713221058450016506109869212027044559592078870619986248294007748144665537444765664309224703448259789934224833936748290443152620203571393132031041267021608243344716792409391849576980089936222575223598432986995046346646301014993846133727697883904788352649930191958212731543285307300908131416592224640252962505299095724557797530631670499750758478341300012290450122987676047380005200659915936070189080348063199612978991507267920525779362622647626593687403074095160896099452930896766365461521721478162372206036983712008191836462410625461406579918261340986183733161792401320663842115784110976999349527643801433798343973366394557407428694339034655368649321368804719311891958970952448877751037104947933475633909431152527229491658412785693441815780939609970518585069475243332051468024039649470919374889255174804469453199801820854776580816535744539367183066283833707023411275241545775904556716833861861360594388086031105024601053673725905043524699691141346920329836635901835507601736330101824944785289935755685699481886203203683502213284554001508521580160401511395694757101209383574328795197584218582899468650084600993591319737208446959523458054348968169387937485624401090502948878701166930900939844275753994950834208995509146972015674798979227685392472640980091211380299456115378772905983873629259316728458961372597496194179930474404831055549224140613231891720092697836359981836182463005550509515226737195420589020649214598049234878987440119785926453205569306221830244589128584998070179499318275340913731425295574326003913849406364748547338303444394361768725873899575429608657694284983712642226105941108304749379492335779514082930638458100083502024045858839787541386622379389200541653076649195938744490622938474618261211279594629104193582457161372335336584896269475593648447302205133678378168799425214085070532386080953441147893743273904629163465653765848331429643597986495692525877018873640950131688472979282649980539698332212174575241263865403962074400742294888576386964457423145909715872804444405743461699986965945166850877039419041146298784142423420132346123502979671214294549374417694436322416030091927762988773377591344676528636067156280000194808776688873034812902967789154864578080519370482076009014213284560671333398999117139681728887470567632065952927227488720482677590537389119445041282097530411855241288243198773488688786706190029835167540053318523080949209788619468581882920775382123227782493727536504978873485217407320379552310038472812178228157685424558866607062278079427531834239238994241030237214330784125035331301758760044382352621368591104771785507654260426970737837891120715869783597887441260925008874631441683557041084184667180187801067405387386907488869671237136436031819145051395795471930145337294695616400466310837738151624957582895636954943456866703385804727100994140790832855983409350063161549395344175169839351471868476487140273593377053585883667911948869718835748670623557912405626054268486131407687760238509911593246536008143181316894411211238517617344911967286381074159111910146244444843835664280608597185502129662158170137034824539265041330250271580499639613249445417238141125873945115390148458340345428492961215702292716108025902274325138204648708745544608308250110247234524766242587248975053507824061983567517676026865184714146765506143357572095427713708905833418132679930058169932450484402199713797488468718524006092481728709076736605245195367331845603015029094332371536474181345248186105823573909999156815649840702666780881170484330846132707804798358786012706863661114817663154120187334607833001202698504769044480813558947904073203633216207729543667886609090344553248710447040330024518121568453095489012970930360822295072493072095554923801111909376577451851806248290880578513988549924642239361651772881009816547424949978727803295000211566490298745593313045728413954533813972042839308303876756572763781991024671532635101397120766632895703904121944662003295388502161058978722562044732870679434336777280025372517702651436949570201722586215086707748782627753230398056281561034816668379650266663646383424044778245820996649911965416929004160737345146494422027937057884485267330347115758969120909557101470546264707863600230282397024093371647856095729051594676592262202341793516196597000905196994054294349445433278059842801731207546225894170916442868708798329711179989062500298425555808386577623993948361457386314360975357759937209720579510771586790938141535129882620235638971879392352846056675935731011255714271488200080738745737110832517238042845576141003771041233827024967064572715310669408991114034216065905409007035035934307287225013994102264455525439810075983110375572795272402513626978408697548816519140114836416663312547672867912593949691276118896501458253683514156483407998348035119491751873689388994148056093236750272238553848438127516801551683728223598473282760973732939425573255784309147100553862685423046160594301372583726168356772219398973641266869858567040888016610341504576890797520002833053433070282737676104586448300873167785549784929237389136688701441788693279255682230554059683778726042847516489760521334271541259530951104381635182817064604936672474061943743748581792354387270320588454182133327727668599930974210825628707361132637632211474043264571636105465098056962375689595915892639743723959226191299652272024594107572797098903364957049245416318339742577313066740570290009039299156939914379735608180861346759221546209284699461119266286153896836550991010324096890655164388812330569053727304153057134771402470742715121144477096157772508716419545890374035891514543260444113315942031239717857593532421680158227249420631829670274844197270003265464447214861803764272440815440282375104666045718983294883447810545721872788065752557012968889658092652573663710686982897539624756479307483130460927640791990296797125489445057889703676749443723935275289346915507993874005225127320601186325659797878596364723841839653754569453010285401744358326552040461763083778796712104320211201625447399037758998138359792516158669256625790044113517846198906221372547055701381882147934605297066079747219068051734846400828291260690341876462517178230616213103193503282271993778067866126064871455885539983534036223614781359761981553837601039459189912032928622723683183834148590444073452591293164940474972100668357600898429401311429418505289935693458913828619988105620164499544211830293672574088951622451183240416756916646965245719489510800615955612168607172112630189665110751217957010743214180584033532076919717244028132687518880850469518505439032965090254315719906484295708912148251165766849024837296396957229730380061434354698837667732244098005357351419942954404223833149778902974774146173592159497525967712800271545180317822186431795233749313070490547783250311178538495409220682031471071267823123578872579514135502582168910980664046947973800682602521444052107514970848720631105615442074621721430393063266172955904854437972362296448602843036341707995578662476215045689632192204113176566939491648953684126289914460675059184910176852785791495453898484246833050609028426371552545231923242202249539915384443769416787669697677675375049114427907109071810287184213733122289733907360766743262051774739858480457352253637486375872246532922041870577462048671212540628968263207295561004799876668054228909537143268777014245546466873735280106419724913412202673220797699581986131499659904896114513884858049852721343924042339129665135529938131041529095757477213386075397610629525252519386142397603630693618703851197228091453184733421221856777350144544808486753256230455728298582858910714497140007399851031668217894835883948450144693410612468131748514265644583432849896299569965452986617948396996644598179160355539622674905172279495300380255400140235688196998129757435357381090581033096183087620757725310309226832414744228690975260606481732799238739959538749771931865010748941754805839312935760637467851736984168272627535973153713496724581962862259028766293892615416141586913103785959511383221943143970764209013650738208710195730748519265901027775369831853036647224825276515294288341742355573161007186036455570820836386291514675926789917240061879888405384174693440348521042400433285651504437578881545976765273501356483803769070436974106590128444473435676404541021538914826203419853591051253923897159501742975276269457669620256930299368958924294716030007330098226864784267418654934444010940865141081903637982891690893523081931744356401684518698137742938007002849740918068871593405345098273532938372714225575893227955960409581080331124795902717975984700461993390409248004927741094465577427961652628936364512777717493634618909507358815655806088353649462645989390670831702429118103533604572847009110074457830269324315574879150347151374135592049391917967041840653003844658962032623416961311131939890802864978040215713552150947088608464927790235922143806093647996544709923486669272787676096421759792445490469182561501600793147376286221822721674672394302670377784943337515212012663999498521993321693395609200069318145076216655322988747148952495227728580827328484726050810697867129928676741577325701028316168999025012432782176210749080918647384263673208645983319502728228423652749098750982318685108458895087289386477108462572496549041297244822634107759954589631304861605643115088643071928573213831141135036887452613838556436430003675872547966573721294027519435096104914631464011155490285610228178762546020637548877697905995882017155299836249469815414590939779559014976598221413466661464373465728760479670138875167554198364914646654723582713555477055048975361830000431156115712182410787001030532801288567926989149235025055867971292060611467384707020641009475397222284391173849450402044742499666181334186267501331636802497799065096121155272293565981429363298494075975118253373015265499925848400909438424056729206582500523933250488051443786264151241434667042505437269103406001252422761960491132593710584031159986283708055867553487412250910294745370848940431577296079676157986514247966270304049373332807716129859446810790355509895881103248295371149100252780628928843296034475331506963890737956261180332626264569542414056463108355418176312954073206632841137212831431212260984378686362643963472972007205768398356183190296161914738675955439444777809049583761037353930024729747219022846126297056297919019898778121295288538940559681308504396476310425289378933225522659367266861549274526977386432602527138916807077977921687904513209953198989120070461453209539738076536975118591651916151427516644753200999035227805154925129548485511193542810707341590259846858782869596524702962453319426267168971527989828365974299312150043203951450562854715815799398977320111094443967418175727807896086097421632506560485556754092996721780565773921328773552214295980653687180207923312309828964850025781358550283147639128438832016853249766711667531090374658304778208393555986527540953862828495952371707294735973678594824146049832323221742260842814344495033088769515786543433766323224922167999146747989144153510368760244627074794368519872177839868693394531747245278086368412371832685831993223332914887839620773379104349538293970736237322404250283169378674672652877099239506756359556336685563945621240966275357454163339662675019467096769522521260926212179622051533708288222791266686140740461611733541822075011141406586862904987620149671669234886714527804173439904106890112773009184253781372436640623390004909322687343078044065055850383387705527576831551994626048515033741690193310108574996226579667285706702277217667757527235137973371580345627500176966693413824833293799516902683922541445853953434143931636934102272436421918395816975362699693357689780981128253328501786242580511734214844749919479682605679282710672630643581962392198272556266395602023440298443959329119767132150328990007337941990011052729727640144552169986944187926887753424631514998434768179254658315238689083210114867173934680321914278271838627746745613092751029616480946426001230751130007443638234893689918864880946431236111147673737971784207864398639845498850098793450679019931205850945285080635633157884219144995841161574486449316008981723618596253016334801512049857824415593060673236487834539470631214135492625416286197627367476325928148329117140756406964247690716854201859916348879905611407774188141817411413382432985151970605841741268173052662419277989770741938257734806165207980975137302834850600000523011892732255490163290272171779029829086654786522324907536290954788653822438165182829510389394395157194874309522077456164387643620634860742920446513704766744654624730612340897521199379706999261473273324814974162326600424725506603886258928973457269257183876399052705798330195318478032234811316168663468532973763132217669251619503578595895932421478637230729475667402546811716174036010472958516926792564765299067604068499493794897334825218274188244213646536895060919539886789192467197074657188654289632831857114777033440802998811949756335258135480412083356666870835391320615306004225636630892134484849641167995877215839207372558011748724608412206670725242096256675372868384899443181484491563847761705418831948014129626259748561639938112275426984135111785897812297812852114794273959300573180474455947276233329799873782451098655182775071824561529945025842218948604208053208124180154846550005698852935049938016076677934326285812957139966557966526113244289624782101191174631238373525780535784118882199742287138938652614469197082079423985984395824795760335008631694238897733133839768571820870537875058961776821244946828896273446111497531447792781361490229606330607459772966764383367199917605882275133371734573826187128229426393748041889059707178640755149613201768279997512475874069435679277575127773164182973705089786403622739020228104810592400027364282644648397260410659355278513403224034215736443460429315753100779650609582012856392482318614578065618543092801319306073921046065425895138975068126128149881509985114437969332982007276887717423852200312689090751085296498963914983716736063661660963950261219715614275903865010124696256878380487251518631471805762987008452186655591856863803676213302151118170673310268430175045262949809773090940584031007026224017732649831097458375338291972117829974516157584117034129869728782720383677592097501129636143672426501193555653440028538061025282474371320486410982619166547620758042163773349544205394259841433044919420387546561737278915710425012471822042545597570532043172925179347147198262225070755260943320896978660166845649887955713880640879633244327518444917337454241767374694867397906825868734427689524617997131427003462425678234355603532459159630133124793733413356834934361173713841719225189718562043482941504532602634067816230831437284317962550562721682988768620125511036007556852882713891350096297548029538412071388564030546925869295772002106828952357848075290797871683461707234171987769091185252006148611713029626232091945020304746093181640331504511335409576553502959448255627902339975030052752092243538381941036586541358168155339943351507298609529672496942806621658531456459335123971402131443636199269772149202088027649108301610860355247931612913885074302789131944475418981993885507962674875085098967857789247632277115328138005812709332353855592856420069209863866781235778922673259190332480384504723176016309136020103661519706915169042921544291983450738130648991139119399998200911547523356261273854410505279333169642541377779247756504420258845779611277301118842167423478454950339233540170108022226118660961755776255689228835807609833823411214064940506933002923915326213022092559767811290307925183736114051559596281064154078882909274241603612294036602583928469322680207337996011282758444336314571422771834522226650226977179007881356973993564662781828607415728034132633415886182215740262219196328943505634684853745277303587451140852362892576066919547693267586580385960043673779429585452988337063124263191707837167995192469229957875445585534290410668359274938431033550861189285311083023837330451297782098193818681721222101865605436955297280503390319558487914933792747340806158053442611427956369907699788635264225692743451250552693745677376218120001037594135703062961538666114335084921716087324573927594649027141059668908001696046882909340082747365257849883060362024829476718545990809186097351324294885703282126902018342117093654730937456592403666351830140150856297895249137021999794384579966344798091549197735388403576072453173364341845517911527343485033517810592116147333942851514655386058936781303594085413365506998478285123247280658084440574564042077626187609277052636249642373916545267820666799580578671653297970788022397345573215427393232726959027704027831353483518170484088806776554759746775287349285004898056850988529445855789844560753667395110533333757873720872133903998297562992299046253191545926720020680362622421133385772669658706290901211955581089626111569738147794709480873575000002402583837587080535939994200066652898285308021966496925956005367170888480470376933491991406530327460882891188501952092344380007083945475129841161279198708558372765203962485338320389364027642911186183908791453715504790755466755077083264147435888520754396236747773763326201466461584655679487418286582537126023088553550461182324744916194667396136918902863841748777155419724929792605395481607394095550484010340345146573703693636445844717412436121658454855797212912197907287920899475097918555765587104078979315902045118712561641745881032972755835742310733196517601679972972339471356884198203601962316724541997154035439248442441773879929479634467552559505445721508335813286297491318284867613529898356527795420450260285269216883052715556710273561580497054230437703733085689088704658132119210571972684850878724557398025492940054247426293722682275629283071903982438867362401536969696803534988592437402958691173584595850156862219281423366537376338328803207161215216652718003202862902715933124068578462854914012683145990238467085756639033711591800888274671956952464456217105472624575578981263870813445183982149803480817414079251934561640180495083979321955041701416919668110951775885736766191253063210296057319812291629957787949491155369113121955407362306760511825067733776166950141735868035010121358973851405029461645160600689185189423554902655955833524702015179410164576701569809511288651552883029865236251801378077324265323524291385377438255926472971685757610914279425782008195124035078588789506477539520339998202411337672205353476033325683866932225843529758216018868449751256203839082049873140873722527258607091367508038333314260348479663348055786633796792068917155463763921672128686214295993635071215781202238481456441694529563956499226113297148498944768718514132629389759043311934569967513607584555633871636146517073746067844387815064441038935029160241230232973672321816958624471764094778330240997113150307620242786305040379241307082973563584860566731980290165103485092391531956484823306759653287330952281054554223670056632407289816687897597811045629031301728499173031579063308109110135326938219199447235160311636793268543802729767205733459639751158214952075145279520077149959077241408819874185970138900153079030998412875496794706405159933173157805712242579800468602975237493727494937136638956514539427841533830685592037325286882119882548505086580995075186427609907602930684480694171225328493542124138724165117712329492652418246532429599394037785205940570444286489224256927984287039249560364949402378521979137370510737061417986631283800174266150365265165410822872371799087014258210917804084522715938451549365634475481580039343198498596344882768279716632961474942389505086620686716001504264114237746390088540972981202302358515136541867389125555751449484852417153516897086790036040153601535938677681109640005057564848498268455510280092706880971003529554683482634500665658722892445440971515362992242546431019523659365153610400633556385781206247429526741982955701532173290607159107621403045504731208741954630110868618529611709752694107165704755191933319454026553819457429509292148281275404206338457385774092888984828178760683393868732783082121341807396645548513634372539233602306652915562270970998718878070974534929032019117200890322236263277116640762647056761635738165687189942521609140142711460431195226988414328839011182083028770286060784365371199039343299184510835446067508959286860906534276766623961914425085075342861419617165116706971728680149619393411844664164143836755505032923015711054374373116278535249670255131776429545687086269773835080436173439324479308695497012922329620996827166526504388924104731801541068146442942741823144849380488295091678932265629800971687249281436160282048529328846346412632215008396054647640433900499810492059195849537713031311629041145458912762110426094654666590368547610828519917347072270786019232166741324226889775011859462173486425159798289653731082271450043088824127472652683523756938245088599118032977614564392016572899050382657551197557190490547176577425779277625912117714201356975033160254121467874215311760931118581561758185562899981982667888421167572034466511589699407005552901392563673142075076834551788307326536993768702144054547010521521579291875732518025732406198249983148014423435528141770859578141579917474085926060881760503256170434778397013488311757424581191475035388968900049018966313876791005212624461486465303148024599870115909955656930342065418297093743287565985034640654506212124272927496759399963625083593187240305465650506486711604379555961276719849778984119438709134364049616506748869298299856810019657873268106574837076311396352865853701128868603883131358042817617146425916475316640412576701608673603950532963574004879911873944738212048893844997823073962707686757579079889106042318071375777742094184432077033377510947523547613401168988431363792070177715353520128461824495465419921719981859832413391747349595047333823358475142742932447191305566290065169151853414928043948575972869041696526489370363681620733355706752915461978137814101490014624721165236321337818557250308574709237216591352559983439557647019538924809983703193333709687744270268907691236885813370863987160162346002932594223507960362125955833169683035255653482533448547070989255252777302485878736500259823668812598856167344285422256924009142570008217350213607598861114409397874244968486735872555550071479964182339416595921953431194199386814922748837410681625464265835957276232184277632968703020752299167736760886281597924074452877785674561905616061333707318303861510036866023618563253276057827061991611316427711820302325910391856537139453183488343407844528320259185609151954217025176583872925986978748408713954810006377049036590484045880989846886889470106866163289641537261721231833815172050188173900897890127962299000299507275415823855613729981138604918688417807521212437926241787413536358048722783157141458766586159528056661840119840848582352397490547115190160668707569647107842590862372782795223291987046419575428622780216110485177764407106708963638613476074698629585871415609000391775593453156108676286235347781064021998065026993600801848012547005319803353502587145973877705302170288587529471103927358407886736343583387494306913746807056367445727946399390711335696111422000052246839935554036898289047411244008561084824830245690744513012216236852938570212143579271891683776922001000813604440505557252270179866552490144364970732720860373683906172199218477800913271676412189803619583299380180390127748879832109719791958066035088442511039511486129969632137066672164190362405358631994277791153431664003227182841624064695263022615551873167137174095524821386450374278717979102114718299879005604745150066385040147516462746742803387472525057585938461819807047194975339431480396682177320223663185934897496819911859064678618228592468704754265591565647128356067517995486296473328816027333607550063912178197874416043500605212083668260571009269175877326473554347526954694916971436733937727475487471411531713178646906265769573868728454325135130857106833844857232846014300530743400629266384727286871861468191801802055061250775342888097845548910527782625460391376827314978255402177552309618054297400076369941591606222312419486919518563666626687582264573989139273489314416895902320439754333256223553250142597858345030979299052130859862542305508147334945154744034451497978426633920100995224015353446661528531111311374804224567674361765925505069968907500662073703914624531947711518579246941433723298106570717499511203697978178052245072096437736815730680217922620904789336365797601997616929846933536176010270649092029320152786295382245295547033565880126927331319571030484518147197403365732008542669913381873280159377108189233313538695860793943131414468875308772820983786375343500823228582020472655528798985675422645107178224958482314552496830908718806784000356015642260054971185071593817706582907621186592165887403922860143895970030771078872961225633611673142379570464594375073378299102449031518698521393078370948296598636926873910474711844765153660723091785922720410583518592719636355866711223875815670166862221042395981434852851150592973266255757208332232427322713246883501006758997523379751420450841794656292878688796875924896823495770613737157156761664513755478126108665417505614103226853574753897572565491755310378906365258861470283722406507522824283689795303324280756977903942797024861347807574977512680881999179220338739603578309313468175509809212624041001411665180741412424231660538283852777083119577076289687035779950661798720476955189714790189650439872270029595542444444414429204591795100157773561628368040359581240793156462911525091258391645705206506569059103131010867147168936646643121602578959161053733575333600204764176221923286995325924522598174985371407231547720563243945153654766647803908878029984201773272479465627880119947959066108247009805336146201053712683112788553044794418025884157060277093433176189315218011922545783721949934563474052350117493943426552329974217708842504939894463313455817793876253989826367478803353320973179023406165588970340697744362673733119036970214767832802270244486952495522364135242788972390810583180300458887496998380898082468372173966176160943653718333418029402213342358469441149532671768317525408697636777996621527734953021724929317381200021454242158382977944530785576212775177870865414372022973638487086434786540040497141404104812414693473225553801514807813240654329453862089697849841645553807600480997808520036895837665297130496355006496655445597282686941616550000896045495629267110727582651289466683305128908631591768255739150075758323836119457856054027933158821327082225786212586237925907045235575029100139716468367530832085540172711686746105347414010938512081116028531020819483809082105275793838741909334241510590495651965146060010890691559207968935529851201007762438726690851531427241038179949803962030020272201051970826908208375035494351768840603821122966561552053534559595180088070665615705547735514198438265024395948665913158064427116191057348369177422302318998271603811199817094888825806743355242282055599294236138312477698213462335010839942138351232212666996873667607055333711007310791392975223418984983817014850901317425250042948690412263557638189406363778969897372005881009570811379011815167774073126270095186818490180097312797554379383472543281708158203651131906102238033128674212999035685777075367351438671966671745300715841101704600217663658316993712292191626206453782165698028263028534329661470856285685324216142108375810498004431785133270882325219158471252322727029461076796382398220148733084320838062999146042226172938228281840656474388380841933460258812136411001415308407369130779575056161206004829134197066357251318865547923001858300352750577066098074247961390219151552438692021690120700087932830926589280340250551637753996604545540033253842533705824845889805142194030062529337495178297873468206943881236181095045354397379256766139852661923015005156673572302075019283585042036477073586561853172133958411851278957979509975401446021574039365964451994663723418452513273080377740270362413499060565884077886482080261984979563073134189692762976948147885190730038224305981669695395914738211294288400669955159792779650797837768328355633867752786657079462017361934312378533188721672706449557054839394761958871175474532396675052908597680231820803304581261447041088326628855262273887586368092503300291401017630089422239850294749769816951673648622620585188084113253404649521605748190505848387016563902507566596401653845210242070302479340479678244519676506696451555789630515504743500362124266060087848868313825212635292673710070033752766027917175797296204738309056589971192500107982455847628707472272770368410932007287777897497372027298873875502896664907173097697430300914235582454191840470653616355530137730077689459542653310405762946251935224553022322048073734549861805012060887559867986795678980750963832211971452399118774112391204395820058250918918475053162387348384846315191358732126991074864811064800462388199563808355310959004157278441276591676254414060519155835532699167596778021917603685897891772845668912791147111969402749589033724242440209907220353941261557981757517847879835751719024078049996993823411481871045875193991709627570087029918149613040705160573086106250537743810126722326519018061553043144255666131088377295056575239931683667293525192831823041158437201269132845595751973680563380669635000874929962293564194268404994768673179449427308264495816245418354325124364747156025306113026313201630502029560320419041111976016896488119439884148733368955355954068842330621618846385791744610916379429627739842434685466711443720782161018613086385227546215031606133012734580766526634217127405484604995380762407355997900948407770209915412142561702599713536720834541631968129392380556275003187722852692292489024251444817200882672035425349095707440488641524227413777761449882674374584518223204590060449264978048605020081526087165582406167625894841720530408976052833149408622964087164001701464977419984713052887920948323500087581523783723952378218263380279636019386607048741422350832257036615103732019366770555268418824792686250446351097499024398123383598535425207422064192013305409529393068355145867312435038639471195373127123179831574825209806133212054739589904405700170444925095142734644770149910016930773439131713979382230734884124887511778437804475110044570315217591669696004083994420199109873508788396699756239160741568695583950256650700943568305755987642886358946478957696869833981531324428939091298636630103602755092161516694509079367560665082609355467478326774670980791698467486751871589710552176438868667454234078207584749505501970371227689400273890217370863907632582663949403109486272141681112339983734115572288827505103387494385107167198234471620869145366887896382148233560763927300033502396695211759518687480191522772981004214393645151439420795073745713094184647148034068844392011807287008673812257106668126185925851331590464254913699100167979706294212432477829698619936085243836671012041004545185543235354392563305152841805029688987994925641181730081687121804155357294573731050641302555661383639819875757170984454932680077156796719362060756295062170279335443458405624068856931791136286986946807190431116416799227984991721489947678618036220072639446415292954043014940769168732255079626230048535793032866477253308592883019837675837727584927335286127283752616984555276118007564098564242051429103257058517814073447750123936305302349097300713725713814581024924550520886417173960471437736094347539887055851447033464334384083123132372793204734822319550278434031523892531202511359393344102123230397425348927574626386447160500474435207883955965300243300567081409673578838101336495579724507210387915120462159351055284633623706832772259323125396574611597994921376401801639743366017915475170576599470883689982930869642548768386834783785396113205196742228170411310817597805105576069372205088875267192477698046685899250171380120213514857044528317247289484371595172237147024689273940863162546827932325365886295593443670296077205447499304259440062302159088966910797010018573803110909701337865705679591025548373096731908057291856082214593032066854408200105351432915500418999158562914942168537862368539915822676730982665675822638178418002039184796332301536524963539316439629839428038406577530934494112842585760221587483901810225369348025911851601154771971992283691381833293496608487607425823407956522968782720643658460057834046520104522009249832589703729496593163944903503835426203086560934080506201164675465052426426822853383591195416292039068313039168838589165252013234206368235604332583835723033785549213238130150715602927159329660118055018192371337218782176433333099975029069966280925933817312397503185009230522200633703420730951503174134582654684061364333477238372216998712209758723771658480204491458773571055203259963730608974261280006701754181172560881229910234355980748333108590392904197086551612510639906218225899740208269703035062350183020178845880136748910990034735696654599538320634041237569079825022202294637830737481182295425838442988707971978155781349945269106125519293376982601043942121390389620915778618555719988256299146659431397246584424630547251597703425741871655530663190725200872492909628780499583265522062035108212852577071663970960917317113556652975599270835343200997222135674846076553370897180862941558193801682800258465568292960357171836871261028754705492978149147283182753319695404412534241941554170421746473640444071376878752447396656636565091831715270348236505822611221139590010124561260965593882495154090269715326035866317440342190554120068523393577910706366269456617644966138645970752151976471541619067225606424933980362667549295988519194939957128930619507174601783826641291311600642924063828600794611081243084642345622009699078686576303187520945732966629634868023544583979432409993671882413039361705224499924287895625397063437692164466661644607653440053943261506290756948244671312691676398731401293003851623364812618850720155908697242081267590267003558491155353835628786204372122547535195112500044478722642901627416422882140118979020775131236411396974651691398951478676421949743532229110648508295076672654881418573370065913881063014436070434882136243025607988445682220977613305824936874791844805173117032468969578997064437466937494655539944463704923316667558364465937518276173311848086713105928370032851150537116899217267176370104661057887089275497776129048919510537204168812293314360396751657581577324399049074003370672109143361720505379788263553275152028138601657107366274008248387631236752990157607520378395791508530462961206733665959949701814686211727354028391561786801200199893231240488543114817155344766148255470802996288062428860573262694899875997624991381014813131150287100965514617845542784660967717367459847684040166999174639062038270289763677118005961508112344411405858836116342292802990746896854467281225117092697650821207467194554081200556449169786464231105898225637311003266410964282732960164660108868710292384736044719844823347858052887289615182256730171184342365290542181303730001266195877351363064358221477323195872603223108516148908923075595289113732312438375659277226385941346362761713681778903932996713688715075962520401708871092206391821467161092261524922591332051324586362645164608310666462175982040366704647655371638412623287115600523886323766789430492506628275925658681219642721322695818704882520689004296900117578141216205257388594092495111381157165882919505235355333142008803251522521666244477720309264627376013180455916123594426861255558598416489501747272966537459812942703112483653418388361111549951495016389817957496273337189668999710275867583313354158194113961544858199243384656734369177788494749325066370089679904147211812516458244607665868633236430560155600300170452553840379949242144012961908241696916125923891916070190573346746041889536913954748938855499782916962003539280338560860022024411963182158969394431936236763656694695986358107312302735919872951305308646440622592139549394885267460456101719741922216773034963335065802451498485737192471474056018872566261092825150500174018674959198656175377259679879988971269630335820866156542205141801484598865179375926207189712010588296998956137700059534588359173152256508169054102403420844332707187432496523772648559693248847870381810828126572707475925288768868764182839266748873653332772071448158773713093006246914895298775234779568547672235344137432986521339841041621966354942800497140359150039822071414872882070083823385051164044803757605876530688787588582519418407643822013417436178207494166840167316921911172851436480256412455815292530142704909602383494829468761698349477732581058228197586078879358854275638788140743880017745026891094438816902576388967971419028095757017773598839811557279645431077821953145107017584415722946896861275348412575979035221659087119899902457216363649954894721822196928861333584995233610570793915935483210961291988508301781802059157348274992915913108921721054108735378857269851547461909844388959347930904130084712559549156369750114558497886527424095849968480017293633354895333832221715441819408326592351964475950378980915087385098834132631066214808881247031497257787925148610245477841535729016109172507118869496820914251139669487970932876265075626874866737819886318186255760559354261117530519727590759273846460442803359686742325752361745194732891905511171580623837360070497193812552416672496962477774283190717606945348650523005163005701413870419148530843991271306275489525927101295015485823868413021751637498261695323168621368273971121217724693070942813376730158182160113437638464029221041585030790896534625735100554735501280612290759734911753728499950324950439799894378596538471518429837618395383412941763472711020252946859489609026171760212983273311710163577745113532425403972537674404249886380587447324066994243400995004615568159178378453885102247281131625845866943551552605445203527954344732995493018594378417023488845023437985623587241833565813456096391734742417976263708654501541587969685743252206679957578619207437514789899718242823505735353274142895447006883123093330317250141225439938560830650135519220458549248612800481707316976466416304154759908647722954336629595689338460019846507550349231561361824329031886925118772256816301440471384736790777023729450445435097323063226271143424007715539905397445220383828000012586836300636786547198090907747614694716461391713770027896859038711393086352231584422374032880716650671926052254910488965731607137630433232763885961210727967164894600039727943211343096187977983435926199573161101827022590135520388021116392005570467115059407320621527285173625548259646824811883191191332260072778054009156808682000716089658864968415228365182934195857599149372708720145436281023370854853981562303223943011133780336098225838846356205139719542119755287722658552512026066841396423130872038397930447109763928548583298380891467582299469210095769845302712846442442110513647569704703864148923356363727436638276763956152877469231543975814550479640019965620573975250949682925784671679171114377245783361025527061206728536217931720067751638812472144703865458546676800434314393245975253048169009915182701944566340193154600715782454266713735041643827911408548428881967370104014100685014333842974031329481004282451561508583525247229769278590282570251271281017731355839325031938962090455059224080419488312454091913276142536345479036992862498772008192551891519831637816848783253141987618459781914905905327668255001701940103404765988559420478846466333048086294590038640598174062869092599735724031562322933159284819110986895311590799705786917342853404431127913763526304640455859096289527312974456048198687752106839226560300573961477663874741973017565686016878622744712247920349906504886815065705618727482662261210064266805691125333217318395809746880507382986467544389533902473896963656780697564452045347833489950038665899706566959064689764475158545695785684256338204966547305461453235918578790190850876072406900248482833320318435129015699080996606849203769644708864811509438976227457938891532721844405568815528366715579414270094959478741815976224546188076429324397776385698181447496333637390178269538293710049935654237667130303870547297715528516835252679060486573029883888706732157367654908404570577255229792131825587116639236668001984041003674356761071576061873109703648023078780291065299425779190315855660696436313449591266568049627764223191981569533111195163739331228512704436706997038186335720235554131039548356755062648124018270310915806401176101952388154274518416146654983523601330109459936493908320272132423749063563213531665440160699879787201045353710272824470746990668790412126495386307898613961658814000408830155884020696057429026355442861080176722257173187013685993012368076509818972914209536151245475067676515608359484921061382239469089154889986935401914639824398945342626512650958597537459527160888995846002154100001421319436778466802525865894120275751945875127350957228714803061357782702611663455407577423323134700568781478536762524125955968910198472656536469777403253170851332459492317071813555325412264382493050291070063558922210018271417935341125109037734725177444512171772321235785968570962477915628616934105206503064054685746575691526366869099698398656638093762851087998644540189222098454345694932635717157363095245630159876752413588509668896079802730166783874800873199853451519412144591670672945406202104419364912090413922499316788145973916048966187329015955296587798161512319756616126652263847550357629993185602006383021816559439766637989713774714861679356833098919721072103512408007075993829484036391363944312554850345364284953935817963954449209669521327901886948156702956332422439233943125171886389969657470331870582202236389731475840254434473327307018247342894518060436392786003977827453957881568925999734426727748673583096750027406411065961496644615603941297892464713787313485921278663577413942090710957008297915145643745315513247075164776043630061058915734068848728301204059455631538891607652687808998553323944761890326693468424169674307870772487009888057603308064777012567164217421661710199205868743636984283927589037076656919430858581275234828809902397821594210362775658403884316169148190899450676313118781226683280516052934115665302739718524010699081234575488835711342913440736836631584011430424329701992979915738739595323225167558678923733996205566216384603331301397254272359826744009118901297407858737585867986917291667946723529652317874645838660350847950616787431797441086012360704145937727397836209352572977700027692528911199450931361453698810680464336202856104322555518296350483586536108269061260786131816660837186398851039706085613499015745438044919639602863393170834598543785091560258012360534701681297650065282250540228696198985079503744258922458257455165465404065079899091150451455464918907588045094836759297884897474334188382496136666580936743039187303188500657639427400269712336568038128911600962292997447375051188817474776334730603664821218713878958071326108071051715201878739333735241386846953884826575686106397709176635330979824853274301902671684408802250042463511108232448456301928611109890013319088507521144511235557777284767255377598071265416806716430751526580134571792687026868795520005298205358229162219487493560921617705461088550649327528902492551049890002969431293800754079722150966146740006464797777819049627783242094069012967301611424515209158731863250086910091622016626774410208949916704017924780741198442785592728008356036681746232336119085939311838981427447805943690779629745078684100327956094209974333135272271037223748146974782805126173724266766933340174449107546859922764711570391800757475559877023061610764326664418479542972926644976596619041850455767006735349660374757630830094193843607510188816325072002403830675820848082632362200461000179114938313483725108908723829888320889339600512739200014540253429462999261159814117100398441804592114201395598467920684443654756043751456805241752346188640574687661686691582156985627711575663677443582007198443084449924071618995719752017647216791741095581255751466179947673470312338712523253662748149543501771639527392282544570184344476586884678844078543017388807291387914647388023582788154747950755296187857313614374612269722114234893484440724962688126725656186001383980954151931482931283276955770181090074802646320508128002410188872732247613538245387826705422717884313769098092803898099428036532318554956142801633252006958223577508562898888319456479519615010576605168777892081605611592917352533333717479782032300433770550525089442360948071230311005214253551362326915574396724584632545568132143149589325498511158912078127973895568777530285611592803037302014009817571161569165677755489835544319859763092213261244822973942652302460317485409910361369936991520207914075170373765670528224305267957649742046028185593815918331178699506777021895270290939148033046013450069459135635883978095976091302921033795339269067018360299426713518252927388067079303373134619788326073546648135311668262125980918612233347435027876152721084325469192761750316749307256353972029144533113460836164902772151569409603761675146819654999776086117490970276089394453589734113515226856947674798028625766323202794930065162322433790539314097051403623200945219971897479199346450694858584978709522481670637121522652509199410246407100972662576931511687263135405091224933517982776354315638776026886901168468865630085346371100369795173496906617065634287816685140957932907789922598020283960383413235324274090933533515869586172313943246573293251379835237339823896984324971134559969120732421909173764170629110178618696868023520501471668265532173720121901248318887513999010869298903952182933524437981613031827705954700049445297619958651179887611444572429266572909223034487755499660792231806092498625627481979892453509155264588797845821099232510448554870274207900073414561456782453372028191160665753873260749990574496525884688213828414580275346622655950464974280752420480645873473324488004528645376045428371973930923006246490778069672508179106801816062839789701478020617427035820042296709638150164923696848380405878162226273993746457209377318415584711240973378320146915674792037924272721609966057934087796121154096971699904916409111107096369914991061803793601696249973190006192846516903872884274685713661450406874996135906940849003157643796358437628027893620232499200481133725054093376980804842968583132499003587114309088350236165216740357823772812808147827803633918481902684215403154635567534197970155456884263189993526025464798082855802608865675272120798423376216882015499116236300416594213298365967789407280944624572038030292453087186800322548082401244615844119008203376413845923757586751592797147237442931271310696474319847385195852952444399035990487540062334523117447245919611163444075047164544021670643863358933418025467675063667017894173796018997147511616782708807031946534433845756745571947396373790325181920844711129452556408077611115031880303771432874203092576575487597546976630569414705323284974221100495985385867677282000981645903613294910421405197213117530554217983693847343436009971041944581592581414393713985291822413095148122998852857057151412166954945793427420251569982081367540249873145314810120857380618140414379224820250614092912262409125573813266848246514965147102254616313946609542875010777547700366431168117985028396424267187707407579706746540151765956284300731770837573037830464848859084919602071940626373141769892544781805584871646131878121378235919374825408496354005946322109841686316918724068802566815110707166563738005760025612102466431621639170071771740526783025374158960352985134926893299153461705910917189866457517458083608326706483321047906500819421246801739410036666036461012819372803106053997226409763618299660518483606332969132600104008831258309683598637934384815831490560332415133292342314525938362503432143119148670095014040692436935408428881888130050197020420038656895624765643169650906007143603424567039152998391031002855614886315451449493245676285402733119029581082605200669486599850243498275003566606861695907737258972618468025758577510836931245799899356661790023275070554557250328372742936077886445455514787298758947743482345000080422023235614908467573666589686905669151742927197899279711941836243706346156633019609699110687110317904356713522792843804427042135180645514060758821582424484130818179908888039245100773980627637260021771372899237259510523302574130058175587992022729865612221368857407876469023704210607522635066320096765732224190909446766971061833569110813635674059413747778099067817955262859116162083970962794132378931586052140701092053157031184501947613592435574636193685864133462367511795001312797052799758666299510054653479845181061885204812088124698381387091220551664606732843622021920151957888216649095438288048788103178351793232714520432561832306966544324375025978334392299759816649445979645734923648670374475796213274201025328307438199940293884954825383467846933552831559846238159697132455827728056037656193441376117923542557950758454070447950119359931035697620288138375990175013350142732629233107337273005653856545131692011601654094486561024644309984140882570284162673780531545148461526518687706520552226792089978146134020417147545930058990752981449845097292652633312432243613879932103861084787538489299408976059468152658750427102029935751991670140290261403103629090502773883647358350188916634563062887175795470883405746246220265216084727947781672126984342390446910658848344304458821453768961888595751026520272184620847020017867413791669208343617434844086745478881952656541642682546710588179612808504465599361992161262737919959030524120153277871202042524536337787240684962927587999742832999769304949502322120614081233331777664141480513406735736628852143434111793884386313437496306223364256731154385020893587395600579255187549243550603012370150751052365143415845534854130744315823731699060637527122943744220806872058653240339707146003418556240588222911036284969618861000739219799318994419194628156700880657036436504976343566976091725078457268862224125971739698007248933311521184708605784047877118257447270518986765282099824378349592936670658552231985361090837627959622385984201833918760781296562762318491272115396716581307034221370801668655520907568806484799491806131659763832222343521548010999476681845761006329924138131333904664735345277418889865901374605508167359652943288194481473891097667155649603386699538918998406846498169648466089970750972415639807383264806764973905870729833847147880035770959876200113457121930140823905369361164273119077087943269125476724572245912564005004387516114054126314279355496717667523378192808467597576281375060286864464431395222081791078715620276279464690207377199222444043176598666157352334066518215913898336361314746779936005141557363044827752357006680631144460929690165825995820985111709317485948820096714215896418898206352758521501723805152617599587790131914687421385601505066435422631542277742349002983227070956392254263189509951728373943946857606686874974538576565169380408599838045166690124261062078687351250617488256311952670259133404688968655350502837362711749713041627114909093424332804947645697285780159989243095126728146153624566582622364560805287983668776075218377337771139606678571512728440921764553440920781167516658500399565882886481188046045323890886885717880671977689177150290682969360763705925154843175470123719178155332471777762983143920685242023082679592026587438878926935429007514172620139810923218310988051440130032962880694143092860143817267907791106786937633276308532080950749425571169414887127116134202831854376400640798088869607303998245419830682433061964113484673954010925144181190971320706278620986086534782254766209148458766252038704912936556423054673139119870355396304386948759646889235050220495705720188915025384492288397390374408097351230288447063193256124111223200056194150368151056288306824764201162290805266106678920482597196918452502472525171645443448584893000312737514896714227854257454576787605932946799710906326455267923711856316099958343372619154276849325474732028540698623379505023998964086662916716703196936733192814325246117803642397397553804065164396491439886977100812125165356426094463866812260100327167430901427084295477052373121512408261103755608791707220891137310309593579770088432203958710921324322431912259804734355208088890024627723365186543178623302447610816201736737877828137767727056265076208999844201279654523718736144055978182809582103516942879534528935531785842380970858800450820749654613306958292696856734066250930609784035395921434268368753263397689165586373399098026603099069100220651803673421913558554957063107659485092916649783106823638546444487048761750005419884263028318952149866134933666050720740252374627089728052542503260815827791063872852414411840222269931451074355936661706306605135443547862818090420835646824159826295560067773384558189978271856708269388626995813681518503219324645770037899139060749131991900696118784057058249212576639163259117116034306810361656486160643382015589899348525684679278778219428769068050178566127350612010781288583829925510075389189739696121000396871454305232520287499220703296144899116317322029767128396848168401974111798593479109887783639649919829936835831006500811169845372129011919375341470852834699375259208819443965133014799356848265966298393204533530018171491519357517329574687150289896643505715699503871079318050154405704957248510205804459783942310071677598917781596255468530223309860541998534678185812153336103462361029321494365462723798855576050555509631393871451672470131887393123897025266388846767375659398414891505137528718492761402894487272704962478591411472143082213596154075239631976538861338832003372180683251932755819299849854486985362796070815223369441550145637204296069168714495927140051185885663157564820000084291198329669942910783781299603684880625415571398672113850131413857506640151112670413078428381370944394750050908060405460182259295200722797386219522374962575504742330431510347199964676531806624394335422777151977789206812871319371748181937113649897429732614834242804450541233160611855649071239892661003558566277507425261655370646018854304300185796226066908764737424315099741125469290941588781738398338629191190396382328064917288905872562854895737253303606633800782462645823955041302509277282515085547838448769199908978935790307890234595745028321147450526893842940981483114594551692118421824542238236656559316450962880430055107615411197958378313716977831280325775615972637667369494013893659320214872617446737843227696421917215997884628081088902024623411466226600121140092051676831576454824110901007574456426851412169820695783904997715163199577435190078955968012056680594411254877903251219974345346119120655677382624034473281871722771354857614230681847400123016193584323290123391270512508853483821430788517723893997408206760419274035284308246427375198616814474717804135527007056052950726455357271548613356229180304758421305897016271941356749758742349858754350909345961666375305148475665238211031858096041089327360110490249268494029066631832004920486539850280704274878538107887328200316164578274476627404223136396374407022947140751398432076550067909286385087495114534008335699006991343964945505418411902150023332742767994718385930137569400787087404084851093997506909763455044825431249704454607976081367243085799846396320391986121742615331050156591832937926037735863525662847156451289064613445677607721766283896007576516080265205636778536079459907185934642424526352002134873540612605468125315234556845356167693655218942599829563348798794767267007115347473037290019656441125080664014088510447276527360014458496259527608104407597422420249317322271236418287509414501206154300491798233528556977238558319673250261791046768890877265048600469314515796791773451223988593728184750648542695859486725424189124027049781739079596261712971172898783603034183418584363153791702877341023841686771163977753345094951874999773027050213114842986907983687381508822742356958965940220926473939707830554139795940919756035568484751299639984060193788010787557053160895419122120360104360318186322671413952530114194662168266510151032555901830653530674075904412794085026678288119615814893050091462035192154646964044665625672603918407773425360715238120958683182520719433645626113531946230708399001701716551821304415481581216269708003100493306891196870566957698230103772464078742478145511760715132111607994444860733390468396559069785203785922727405049436877871664897996858199653446387981615911173154812733461814522902975318220657524006574766523006606648236466356116921425832047479701681701252421044466494017525426194956736959497829301073114546758722324362468649312327609650301304898630771374992608364053095819689596838944696553020777432374832033689333940887554478900613427159999745654058915171625547369672443567029471011767128726632516097043320530665036185097564785123476672934368018970347088296955223314238383078576442044112367098073668428941476749298409749233930045261125534084790229753416929247963758713625496074466562485611340730343331603622733129901319660757641981672994959021533490100943404250545506952476634999810434505924039212424352476190557301457086105609827348243413778004639620073272079632675157497834563011216952765527507211380932956877628479987547643974962409811739111872661611922686861266491877318987303571974807984421570845725091687709580908885852520628998040078449411852650301340626670951646994936257267497010837098250893964711411097044283399163014512233880374708697503830275762162642012645096279715070968770687646285784523585340690695513425617821149461402707845823084457726340349148033529700569181080997464493006930824443205668699130782318342350906475972627968774951916816163718817227076296550381182417182920047927840216460725159472518515838758363090096760788614299606832155225943495342686908756726801126902934397460647568898169827781517508990682419243074397097581087904053706446254628312887760915796557787580247389372666904359266059360336309635838107052835634215893016835852844422853240663197979157831672579466359011234706136748040372165834315306853961746259965017645957644769756807280988886747069961713034232565977598580964972740009268474526392834399749285161895176843536742497538901434861242140981445849063328576237959204656782759076232255095486773842146280040147974124006866797104203058032448169850531383389852077529798831105268124747083746557772462416461893241880668845489847520966970709373323326203074311500739021111934476731777967955921624986333016336809550016531244130672196439666714818920175929475934999212335399442124073965455371497680609002331896951802742850698327691824801841945446789634742981225764130433032749861580403964035139406636948370930586678651773722737900905952234633668410010902934170133437337963860035663221871268159870771928277053558098699774246643195858158210087919424184268859584620592122495362296598342000151111126816011418498475228496653815821018386986478931007304000175037478110909696795192527202393187552368543003986957941166545948360367961104162447195830679996912363117764827103939442925597701130971268341321438838058642793381800318303830287424863335020776617473652745238180235454746984651338064015378662854731126272968782398452715351809856394327071343883677767710747066120185529267584799705789648220083622135107793214580393974366793885745040897231164573193425176312117269762841549487205955900264674228337822073629832628936508675161255968257506804047506363569750746833056598343211950550111014979760036088618902437402748904902118946179535212158132950037072785940719837632820599586500535882385481241342646706515765015223225845489047862830449887767169011185406849932441078618225432436381635701557087062387339781543207716260625468817449983282695064255455477677001867973878064842871499512732036731156738095043466693313687452131549187602789448878827507951267208777176930756366720672121777521091344396398222985521817635727602617414831880447003787682155329458769705017944325998798392935823232348522429653027573493636769127404404029620096754616550938179828791035693179785479896599715004712983601152894298186586828859940222800756332665928010487706345457167575828237697542230440756497709916460517752877192622631725450156649097488747581352839485764680111223967553932333829474155373708322671307166678116842537637219337765071610702765267757279904999252138984631481644863457485406720051563097533584914908078348385205054456692647551241334140879054294710932330393206809912967827958816467632992187666191165041788137186208809884590785656783926429219043161912255954043704146190820734117666577625610290443888084300830472975817013344860756892958971644184592480254167478732104528006243930206464387157069318019223863144491719557702151989651321655275702914137841162484112390704812651353522476137242131502244288469986102709751233857866048541620217912721421080469496467775788190392367426290731422911193038228289654496376522740476402410588323388663410265782372164928028577458256946746858042775184840961950871576421144156995692257918319204332518101194371292541598151660796613427895931628425783546894951727685029849621654170895148789916349851859164560299789236115382182505709512081000010881250493161894772053841262684047891180211334869403137362275617110937359393882589441303161983008393712804341079020552490420884771674667894426904541367036066882645802726339068682671537627304943052016580758197982426487809709471806452364115681070072531875689594494425828751692703799123947823702462222039143486970513618582393708017469169871939775126446163195167035889706575659811373954613289415128812180617503268857786160910186222636604286965155181189100862063603816359199812326272223066334971561005519215992356228615805311618633472866483583019504680628586989406950527120330044072845305408925635632517637413744765639598304484391564893026156320149599933927079171102353482491524046002193606732201160128515606570405418881078907723596662327604599070537243713706842688382619754991880510200438647843927590876111905031708863313899571835705178900610308253855780815826492428542543634267200255898985730152693826585135797623399434068101619956383586732508323626069709556536098956659305667867589674108702935420831241720022302074608424690941372813797923956040061142490391297650867225315343771858302921342976809924849958190924232896719840219656451780150999188998523569488411876168521008978738375341237872589454257322945755722252959612501671154942661555521211966337692816492010140264571857671784337111638743429176447156206426050387805150786678573638775759015265988920351932456827226768042101126576915772673542036259245480229379070577044405021233194429027713842047158070938066821148584080312250093370251510522339543875386817008645324478453465902466964731399797078006378003592404325103222574140179514682955519192069576645529789738270656758450413983386735260042635131417403502086981785534587664827243636594326777176650690816919864526241554498722498728760996945561608715903999750880533712639359737948758075888090150617029427532910411944748102207500270428372156644436213735965136307591226839210366472874810187237816136143295100142237222244257240729687356967735388534866672965127082062084669880319808499528745554081759137222244857248524761702112709250317432559221850784970470965798324947420526774182237632204422608229397175204116506031086989264021812682463286163909954357206965798042107371139492557172180114299602320258343406880713942301714017040008607934605358463070507236496590809148707536338020196925203995916238233794569067184702065233635879266422627339931714562006540528597885590007778054680021773497471579640464460217900006295735977734837895220090436701746384811021648660446283919416250127959082035422347639200840447411187366004182806359891894391214166768279562280123567759329902964245683428151735221633942533065855858448025363656829058614750459271854116794013355033693922765536398867400660279969947399277078053036521061691643839282088958403802401436505324047167663525908075428833120203905809979224160028168545969853388828793474757540826075714497592605346786216142483645270885105967660906739319525528254672897693064919621060099813455897442388002795707215332261304592996183085349831528817695866289570058681017062346985292490448730845416113755992156338546209979558666063570577332162063116915754887680578701098605738129143787428372671510085303442399839487112756673447762387010542778929084854955104985437068184712898312136904588833266075359688935209724684963307576178319417285174434999863106376136054797771067486577181361929223178884673908445113326846410148790072330326132376993624421702154950074025634884191012458620481139201125459607137143791803647489840961726147442957106355284925176971443049380864636745464182070510875100909995134070188646510208699656536902014282238237228283515061943768965552181475688832775830968104734338528793803822550118717802344508991978083847621499760445303390388719929477440812264137229589633780636749049705063593087953331708446310542619139234274962169215896937654267962122403603412587467528622716117271987039979218889300548256992400841828753398429655196276354366940781849989576258011779232084224441671241366312807537678138295541667443794767010055588756584032351684705076993784051478207966228532187496391129095928537341799079242909523896920337502206418284674521253223234922269533392584092204629708004246533104482406459958317890638347486993233137766364327135312627861863603234468424381932585552264917086515993371533477002981279288045225347373587490215657653358064031089873870744275827586552333264830336327156534781707814638031943542447317385288099470459528675551251884292761954226548853106298520929055088311066045832321593296238043900162656735038767833100563307847014574647186646331402271868915734606460070719442032766042460540119281031532202535494220835947777052132066976998516649936110992896932529637797944437075347905809980764094304332723314185253162590990607982002451398873968047665548474790509814987501031663034532011301037231841277098539003474887702733380741160520922551523932512112017909087529278852432316779694977961145815963286482528020862370435117709787735795895451384699611509125058337323232876355832916355848158107209570017122005477079839645054668657299180426679248193866412875228846836411499073390276858766005553551040575135595876324593776634750617148455649034584018833658630326554217134832368068723256195421698406161257013309766159966286233235461446911674092212220099085581398779164651461718411696898628772185510509967649087039158147608765115403504762025564187276936951465992228013043359094782418308113744005900438985510170042720513378084492394391757326801983284069157805129162192676839176224138680993044058371561679120139600020588666467380341172428770393661721952738732445410439879448074689553872255856487247849023300781205883878219577030617251469087840209836889559374156454405022533019836456568304488887770678409798701966371746483443101206008580135900196776178317338851521960011736710649005947274735445902133363662124609427957353183924428338173234045583198655598092593334919437198023960392884031016194651257144447799266737615755486257801710828750083782829596910679773873419762170477389612680593926600272290515669450802351536512612032934640573634146410773591427702930893486434984832158981403607319995945483730515904459941811133591638631334774193712625065270600204506203610048320792225735529197766844374336973704678674373554976084762000990998303461468427088871338043115694941622450148260007677174501921799109030204997695897754203489725376356638827003868176801439352595393883961594461813368463890154328933994795674416208046574293819011573511332529378723213024822921345118508917733768010793374864446006767846330088274174061952159743203297198985290897952393058105067854239731518164978882603641965725754491643132211833897796888663810884520430941445919839848470123855446167338317684321842410197741972469653834579712633419466835220857766834119451318858227019359002550544863761735331914996228476339063451205174465040700881996165872057759934312275501704654671389487888075719564223987233462626415635522836744206524808936413299723001074820528343291781696318035659433462613836333108172928202483048973488856256101291374610531536032202939136845454031322488595607945597675371177693450308792544521827700559554066924223057621281562521784357779176856060347864612671570394295330209068941833589898782329494043051912747133532668936583156528173615207967877230178877610670529141031349447035814414802803113624344541024020065327759425426570641486427168164366687301940991217628887339374915728518705197143116316776645707694078988098718867038579019626754689770763369775523857898223764625522753843307015390591979422949389778235546812246368142323454439004310505123752592476649551905899108846984169440658315798588624251459841028940920038326176951946449241470975084503376807431033485801728158394773605091569281782486283931156198033238565070368077281900412941239687433156192578261231818654989630807119232528824325338700254381725508017095554908857728243887390789186152538244047308240174746464217478963397264495899968411079843533226372924382282078993352611703588947362155039911302947855598538331127462410202189301090645151830728259854079595318717257841287639297016723255260464764548475419068419066366464822276138914347906290353820166659804322675101816413891620677194341561582016461356026879953750572262100419396637945496915683125733243793951785341252698317430099205867150136967178742241860819932411786035004088556686274134940033228053711592505362477275342546823463680058730618559801280832005320370319339575948895760999018874651588002732265717632014248692765893941140692778755195790548058879456475761467344705020932051986667890486687582401309507230826490050387037755825873811809108190270415048770902008572543957003424412495953665199450561279819386711338853248547640837500737145823783244561489386911614748935934977304466124950351874563653409483991166435415558484430714148855732440634643260243301976698042200732658121827351507088617143704539165195235139929451878392489721786611272286179688846386610320178278986906454082123551657853284339630663698960509639978695557975795995724137548788095335247417816603876815251634124169526455566331707543548923746643684086730338110573852354565811122235785263879142601424168080065223196310848293563278279132266949254485739969258663198827801271541378617069845182691879754228392743170948868597328835495403509953120690785019114886179331703261967109327357672339185070807807834116859176927278320600519810126905743514486899176458328881196341412516620929193556535654691863950066176238628609363104865601821667348079848892946025378147000215428108089099606004082601059757598867058498438866075790567049111187581266531734143101228368317053412167632918313694222666695878578495351534357408671889547897084610642946676265475302692102195899403087834430984658983996903866403420537149958120083221308973927939927047188106743399984840172597304564526570347997295967464556173222929031955360179176486814184357613281849996057317774903433688553739521408766842773709489953645233386481579377042159892314267834729204219553732729586296302587557951920201061295297849560305182541258089256645044647307684435394261544922673583532984566631236145394898884748159147007829726516608088246354656689605950269907596249611556335204081072193458364378110961129687929216363090801863772034747231368365631545863197499246944006532472585609806028570388943002898484533004363091492370483826727115574456046751936394118520973345870784349615485800306110778166476950403254488263717378874260859866483141154580776710492865861148912230656740416107612939869181552208243445739075539684747224999156779351152637808708049196416074501418844362557459140347950407338969558146661975770766422020826756783736388964625494333996518889704040197603146964528106933099279630338911787252124492573274478778022454188974815241841056371831401320955198381009965024122550839930840931667508028374286362883111848347989854126875227351967716392867322021634478928892066004064146105183159091791815181376213082487859732125278977423704865986599755440954590016156568256825730000730385759319036896654288229536869651225614141014157893168874629060675028862761342631699663392717794600790010174766796002842509564815637161898955794849621260858936982921527919605755025422318684480072007966389465141927335128056412359314601813943175438110222478086613654644795449745454636174054943224085317771706131977556060062097712175858014822723967198227332437178997513868144908292204790016914553333774655472104093574756065328770222613408679554620715722889414756801269396540332216068568089905446944087993861046350186302657493268882220816324516503927596184298815278791905063960473596298400952849241547430730145017878909671607141721641841849979692942333325595865853905380157192718472982203168768090400888051903521436644345448381028363298640864335287923461986645348162881821303592959254780388965907278116039468993796306253520190212903131461240258988249074061476724205165415183886713783796184360960412966930729047092692685548448670593671314790225012119761533936259083530077276087485263428246957850998827107211736322237623341095159759437562986173109312777047722908814948417074966763787379477324443767208025871373765718060723948294049264003441856119910986820665072752992619417573686198368288954944796776781087291085766391981298352387953368538345359696577871546682952343313546300381218376717017957568101231874454628174972261653213206660449811522521649749644649727575090574427150132516952331025484118072593255784430008151184354807931488153968613336161255858846822111736897538128373514367220637659502671566652070531251779434766223428622093671707249463535337221589204436671602481311322703510606967365616910825142322992130315307712287922657890807789941657273733967151253647443664991878923411120625015929811822046545738738519072765936761554377724100432885359750163370107217974428558033475351915707994690377603754177790955855260404229976605667569748944309140332502303026741385223317353231618864788098504112539946366517524446356220458158399160857534171181124349920614626317715396146039374400728941439628302379532617124131933697582729692949183492749104252199888558402422866414238690768178531809013393476529313225148657391590864485650895503761282871595381943226234315310481322399250056860189396436688444857773898088908480029958126735408419287895518931344010118317048107504161609428586267318254529809154250020405148908208661712112374168699904197470145624785676946957895517100295110593796030452106370038705965021465678148114638043981022325699478035317363871233080996570471010847676221408821895289683034790486486299906487891038417031815802615021622852739829949707809842325843701014848579947583509608975207143883451385213187020819126860166277320461356204855091690725584254389111073449884907891475998901887450523262974632113264370341757865321173491957502883914708754855136043924667893063100484513564995523941001574870500028813691399194638781383860395646707864890995668216778050168273317163829444358916844405646294677300737788246427685573557099323156383685880315867623522012601660980655322249813663504522920801170905825518682383664988510908136141779756760286318167872370694983949328854700848666013543828246052641288799634124731534315884274573351488199481978507906560727020675610942546027366073052245435572087589477105999699852396227396376068304076242938016964519694863807959572822221459314882078417507573148689420539183309451080147399461526259710649348764800872401916577043150358348554788623400027200868638147302635009431499868804965824961198463771667483446138417051259553856417699479987215965478251348343499437218449760213249962792598956846976802368802390124918714818752535117133058508754265993365571489697990559210536607631874991110208877394045714567477216390001574089703146272227584184471103032309612662507804369280975451071696647323762612755749903707780708405257163967404735072950071187705562595400153242535718139529605843876557191432487666057360219418470453388303185188459922034743012168372377325311492450647936072269253246141795120451905841031399533591594017086884658421924943453688472238100988619682565404523337893140227746140573184051895936133549791749378754288591158736938002222991183417941782469802122380108104361711959581083105234522848133834297126525972085004086933778367108089556261218558293659749664743793557746961357368498061076500912516493488574057109985610889460326331830242089119441699781638861316578818292490412803998359101697391982027598989339316530297749712371599694772639753494538166726216914468237010359272748851398753661084370704989136931676798314178772164919934578671384285256517484595574878822888661009792363793510895142887455921525129891811120270339405027602845836009691473377055970929871028451374147634595657324071540386125487251206704102654462782220523894504675880028057457267008805599114578234927694709098347567684107079702246775461117203818634657550687995219610626991575888226127834316215346790288937463074751051182155885662097067538817748893484945636949715308656131097416250291758590261208791930836684478145391158449941242196897826680761790629211034509348086837007584139818918693979261162154919239306173389098372787730804906017533165871796084466094365170729849577933550401555301824442757828284404868834487466778098638181436767419558358911184510828477992242097577230452651683745433344666671524087292236491714076492142558957577822804547541707862989683481489175118152725695621614039668492978081989652806074779084309744463839775614881218428308478493162975810853999659260431960109619722931152997495105337307082718260924587645702308114583037826533178889308153373098832813223605204882787281235495205525790366984134297745352430223742753562472744030217735876335382977237972869878987849960824010963862134374519452531578905291774658955549740932047487571095126069327987903863168484972311426411920970017799099098848775099245493774448979198093714205918105471202524136360091803648217999578216213469426440781832061421078993984170169861111993195943135208221860202886645184500877589587493537887488977184897870388020550482884983897590803586552191922165784813813296927189734754357984841505262314767227532472375913335688189658305657816562936163112724417084319436076148485654202784468766831341145730394725701486300249412415064563604264457449757180295954360830310999715080411361750708139104510560462628902893488297153690771132393774218908384005363686664728313288589669411790454294054845865330330054615266250136245855182863519111771812714071730753914570494270712239413264275309245252846107363752059780307262056597632787860135034186393604060889945608497768098371022489880383345019544296706456442732213682347978247351961225639749539449599728485353184199223574725173923377790071103426084975556556550005034394871981116168677578173780214178455668993145499779679728952098057005838290455482821866293625960356796933317593132650364529535416204422240515906468180379190276107422053899257527861207253027159632773323894262463991677484468405269655488884739158241543810810679589171506289573392085645250942033315087549771729667770069996085885612777747404912581082015343659457732667562870218941973027584171937730304442990466294481750509926069767782985355475560501243269076293015234702891352608906654223012109838706224828168691843655502468494935414408522395342187696548685621113178982700761262443133592010453641181867179549300057987545721733645523242704878764674372518593285496036117703466071940261589262250846924298239927536784724041364478019617064210441865670942512619668502244647962775472825833530872824735491682513140146479672676250829795321904424028550892485261596898437009950573271613754426271660723558599868392509214101949236083447503292833633003231740174837342327269915286655477800384204379821705625350204619531844907118115181650096351969092840299370483713313579896363903943471024142346523633836676352948123119244595737205278906174228059579219792202401280100930661405400218984298309844403456613541070575769624704701512384318013393966429626625906616081645875275547568643579317599571255965318931848311994247609708650962605419410698447409129779741831891111456841123600049855894094634892999983027628218017355474016716803152506372536546815348242313792897612877592721461078881242639787944951152586264482530009932328711576231076877637275646497330995145746540179448670115848152125032433446284885062992165979681307836044171555746451290672869716270047468904356026469560969537662815967342414730650185952838137510513689834857805293952492129014310647918774854198450912449687457570814929480125427892871374588509316625561105822810150948662242336258662175133046512687974662974523354758423645576644569062134652706526506590686550175571710656072910816584053550160634043167857085129229049293609855378325145843260969370864157681699262304814940267710646835316224281884747005603589038453338475429161017098967921182192095845589991137296009674986913658647079554260267846516881732367763726620250709814676873152440511764207950378801477335093332596552256846661664583251817771527360780848252174154231390281526981263268676078733851744469535041379429026805387613488008897790014786110302500405985403135149757974429972014228488831523747076715288929695425568738929161607725208849429655313840380588096617052123605827725009764039553386182400667269920279123610002459848670718257333200138239277527437282182459789372959047876501390081720680111401501463261923177894783543093712484557823193309715783743385675228959788923465099881534931192430760033425674058077739475940908870816440070053173147927018461902949421715369831493650520046998497746311586829163791157608231926514417813227445065353862301075364157440283359945723116408166584096461852982563447392347613422359412199542410857699989215710519826068506318759601487053697976137357826530127386984618128065290281813395346550705093485597784207782763312609244287865927909806050977800404166615433345005505617784827845052634078957119833124456406011096338374427493660362558600867085688681714051105838330131590514262401220165898076464970127551591908800686541854594634743690647408309998202086250929776786430786681148652535109535571775153197607355282704928037846687854485547146268491595551756107230228134357092526272216548854642901917537775307211380907116680426470320914367139930739578199365335041133003546089611729198373173853153383916696073666718331254521342766889503296440507161936943062797902901302757182168775300675359652421834802291134276603123673840777499644585960427572419535287751501841229443973059601809108076539813986324940995740836988374954221210815634622115962651468125666756597623269008923048356442507710719358053660897018001524556087315972410716110991829057763905267922622653406222568038329686891217758130873666863571985234648951847201158768303884975533076162155115183875908396962811503959836776318904044583303043694736681821863924134304417285196544306837240617095230828497874051770108252969173639176817074572691325656860835399379485208183384190244994136170492150456074716649047536882282914401814615447387044717495634626040465138024930342119515922061193239276275284067443706282599279469581726738269910336519171272594954817567340532633671249489273188883002946609178270209751593635039177664080743639663837772753208281724814898860255628064228133656638107642488429660978541224017455477692064801809990964007021848641689742445736181646548652481045233127605301394584983975844171169874359699976227164418494751629684846362638131174680629521021215017361086308854604135837011164016203711708349845077963190814947938428906996542297942515260649497290016660656761217196740481947660586186323367292190470618484538489165237027846146255192957032612448303200826202219776778738330765053563280476903571801361513103432909751525067188459629975162091737991135800336361243799472947345012157221603384658166057440589208915564760887685619535531997827316388369541970899893115864278510762505648993803673929646696233807082227008860566934151555471112841733123555990071127106292498824591491837066173874501062569957355353244992847794833636537585740239486926267453192856475708543498135884304050722278297506264420819757170371560364568152443917404455445465552323861136435135260427099621817818155535612998820282960534705931702975814794925815861577291765581304487858659855652011826530027008186760592321024482917804219192439123143615296873817229769398276314844909510520462195220570455861143913583221168788193808736730236929919819481478235783137210158459499821496731529246814297153104979403779198191846349099867252738453762574702562488383732858079602626652060978454556658943091451164669195259748356678701569332474083142375383571727835917492749638370302079949843378995066823891387023717546703720805070139301794589505995786869553781049281526540686397061379727430594582324546971979363475472943356042815222266872785993382541699507129467918794351633432947412285468510305857028639570107485021808286466656228121826627399747615757866209490782260567164211908852233032555387476276456826567097082739923832843311040047714684601815142824591772040811585199692980490299837538446893356401068367636552186092143616127384995756529111078627282159714152323564488165971349870761031534337781327768192139034591989452799384695979860794158917218171506277268125524085476505143926303814785174203710012799763993691126711277444210198105763970927154076204264500248350266991520617286073760335328206689684771302034245682166473870051594208542758712445432315888811188536710453390436927527170740848085719903354884127491389665535065044073723148629100603849463466484452799561721970646276948907980209119399337987334992086313889169611856800163893679991351833305320801673686874814864785689075327652760293486646598623129616326791316443833098612287471629483318269606348964033913148241800643082453156913257643712340300171187814516601953147062777348239353745969313418117577324709129558796207820164469704930049240116331675809053845273061743031387345320506657326840432906192744835284679481063091539160548913790649050345960992374485196953597955675270774226859805700249922389627473232871502347897882841363957128072757860395351105920051377712356120569509195945590649652257666186074880011530597297923509528949219691459674371737104319473417817373408465912373964389290434552473876408256332145809782099481746911478594336688856450879385197016184261087764052511822962961505996874178047707615246396655914908062374623784345043218330403014310205504533517810707872214090483888810357093988179985696885066104416882276984584101376867660316282335124131140468454174568308383168486832807317464581116866152194984630576180809846219830343478689111573922572002823502861168962266286221589355488048258748023875617245938411497068954793826821563571045208651541555621759803802500542283921224960256412711723969221705332304434947834096202576485361749939437698546162944504594365123806060320251630326706322839295628095236105393911304776309349517297457592945002718998322621433642747788816326491213094386412422726989072061610067386149159793270245181427687761973100281128813008799024878923499532905523022133905023007790546859607127626099647627555349297641879851227479682586089530440009689621856424452951033415242987926536630842447777184970777726650433445632214627156891030050815294145824898217892374163736687404157683649673691414114938977415460157590758620219240675875451247759252722380505231363648100343117044346479545044510384379219270693723567753697523609067351373039090530928314577489505972767317647618176226036156275682310814566984991957565470832648379462811665074938886365352349328479443384807553866588304845539220875870823455132941664108263526669937962653049897813788035245632191153335055018521041440023749431822070426924119786260773041279942811358446783561245179419704596764999412185397498612718920691653721468574417547245282386447337056612007184062773091566836001098541160645716674508816538733340585461695246047677538150764972375975758344050464914296839177375519707261244800027304938089709893526556642097241609124025251817433705578014841625296483817841232652772962314752703080798268978250101291370318335462541017983968649996775694394645775922250667627847076177589639493323131079895695968413570232097629553122038661187288851717236731362110868419037075502426977187664765559030274541796783960613956649046924529756881031337301290230000639012415833271991395336247509541131812976756324539459412544346331588040528059162219574205700755810517470376947354568766513185937885711995283957636294306400938101517276509975878222448043445553737036197312120847868714744608919321829495410226611646621894934095017912111016627002795787034402427801455712600662960389892976217146936094046977714955904795807349921824391105941682305249666584364503919732290123859777567324640449612758724642993366076832101319179032290481140829356365000540876587662163931955961553137555401928478095922685871583638853944013027423718939396296564650426973646970397787118536198607245726419891545923500224096531780519755688359283767606949094797055656391675409057665042919195744866254850148542164415604716410111199108365413729839679352205780054631390060056490037414003815556205230797764314303882292575063059017231120426504236016782157861583691903305507478914735856347559238492253531946430189647489530578761466526121309784565124279099833163600978683289326310836724343559673064040379530028260368131574951253926202900552629946670314155779231477204056574973820636543359801153891962180681648002398484887040118911295619096912682342020190637470384219778140725317939283719691183845379954914562843180100867326564853388732049035462484296998070305496429895249430446129132908635294893771798558642347842996507307083974635161007332245898336056871985106413732571525072564895170317228906811889016996831614238668554657042087456564110687670769146052127325450696281345973190591448534284764691774395462373423706892336901670675574417211315808331935351969534944185557607600624124891634469669885821618788643768058268235186698581523872496992824794520681993572603033817807305823837826430241332788207071224544991545308519710262590595837197459169556927551003065805715417605740386387728639675900415657580461887411404136320982606943395720484948678313414635710493161803794274838521920338019844076449338088705751308177069735115955494933338305523877489563499620829876752573591399559416408178747510192868880654753526262950898710656243019336201243582691252211825903969430313657433043302117788087000181556046491851722724971336804638596222364257885677880453319739107388013480061402323464632546084787622670156511054739911095050729747418569733351391474192621485907151471536354627435502793830154937575686020456037060113103445383944022514781224619186106911769807324772780116324254773743847559268630015393479995975644664417469296419819698512284533447177476223723938340457079886955747845047127784813089368437063606693442849749912133358460539856967911301770443265926859607861536354680363848718494619424560731742320898739793743273710941299090060712750730772684420847731060787309357115004724586399127431018801740928658241451024074279593620563985579037338356706275416628103525942923230911392001931731339822925863027905827328597051238616207712846263437108618667154347212208697307192953640257520564692669468739306216131709602277142060962680501134684835519154031960088645642685118820272769813795377895553046753861691515529628262100235146461500892823411745490501771509894492225063076506087346083292015352066670046642296141433868385331753067726733684422313329986051153625300040619820067861794498174626210928447101783184185903245430991448451879299418862099067224152823643123095988534995076422490122320746682184129608272159927433382813433863791712231926044690203239456950477798113407467972555818845433487675972326865874550507471090048259742825656604088945457196771371215236222789644271453408547002046565112940482497701523729161774170838206736158794213720363464134239608339666892380116038014488503685538370270526608485488588133928147151660681629506390792580784692509978160026855260014724383421659056938216370579189916392076302198300584477018410600226172270229655707810637716833928332998801701105763819303410482059079916704777937409008274470167748642468767589337857185177702840612261396660962118959342116232522449745746875052395503979853687629809458104527615800749305818247841900567896369437665745845539129811662699589043838135930825754718939324136409048433910712272297832797210880942054022642754086711918447470221636912033279662410723708588789523662839428090517835462681685895014978288602633659093640419465546795125185583286861804455242893059014777514758790676558896939511974678278319847688011548620064124177596392542154310973171084169857117965142412694918976337887069155042680657917110503056212984639404629010369473222929910793948669275601569317123309901978084534284582610614389523629609579944986512172174670073034924185072461405835090676194230656262821011986516579554985523598489023527621961708918620615445565154536018893621370443504814362223315314029832998850552328256654473797608353795299771959302934645056649305990389290078747021486620007759646313957207466732770602125916799249144257846238902002059120586801384169039326091123890723534359344178151104041395938689230268365748577865198077208345898256893765794169475867299352626833701594959640905646925704150862029215749054827651774179678231562343697972479478664757095325709079838155401298065191535863775652459816904893098150702463522809886840381463728079354071416402335421866768314290034698360910601968901950168130280936938926103498658335283670477843317305307114953564541091871099524464627879520187885120152693278328436744953432153775160576052741719864925771564017927184685003506152968234188961688053108563314601061402250029609234364626981921413015347826817799350122138923434057996924397979052142710030851945616354629929298771248464469043964025568512325515963360191242614883881608663282629614990878223242406697034407986201684931413163210203352835253757142234275828890375674083484977386367362296108870976926776517257434700119786977710450977385989517932508135568542984424985496625986151110603148559537081296576864849863319782279758124214634480761328066432453766251056304917760584429715682940327431300848825971102449854770154776187860363585981945359300092596414826814580055245743643331688962977055146880242414291980492148642389580698194887348641973914683124519371832177446344341451199679760815214687534977129314864487370925480108054271067124243170945847286994200875714426404983860389447741748606837050823663262891054406997888483263211260220634761719027573677434993882913915439064165619842115985845064362932331976300544593837143510393576490109824557940676282839302693069599524535976656068933820333365405695196754001749162504982834771550145509226867225024668028539944519063829896427027781848445709113058810090178408876203454381813452741621520875718253609076378043850134258644478395220743214183117921294958109457890033227156937564617496940313520360398551351903266133766366630772187097387803541042087335318574705328716557148101378780473631729740237892329400851777710634177359381528565384983408673893490754489827795187440301433024054940477433123184794306512257334702189847805948642084032048342330708272736961923914165853786918852327995681725369579025144102933655525556694372737244381624744413090987170738875615481646005204300487123433025791337800096453147552141792583917538920946417746052233235568010987516914449223056285845184688602668340486513314315534866337978654190083847785011708044792330887985111694274028967967659958473586140533680193240553273537660546452190456407379494367768637026810022098479609218217992445824437060649274804967232375791522846893229167383323742495773076886935361281983333237816826959036873676527219824074029322386340390686715607767179425183453771978625594590923578812462395672398819461004559845801330175628308504324513320524417023104162791758069507134867712290572101820395253451619659521985103989120011701842901982796425654550752472760403326798480522144203974623515072179274096436285256361865144767550316507155077202868637340527377722091882208953310485246337350396318012253294040490095478712341928101484735699253271236653510643969451875779245690046365301011245509133615580996867864654125540201285332687203014978669910657533112778666799903558863709535554089235569513606617919503478885493056170345902771247570843520661792783349979321482771754268559165965627375783712870606657965087522562297619153264090444380927166410525272297106406509790679967089965241746713493571472468501410082025278297831207146629760350252323913324816043311625007297048251819898943934436068806003263802033752229944508131434700534301341997492618962560400994218411536010487962654829682479406515068205736256141420279565907452076040574247031268418967797358586291990166351912153769730770260658449761265527974277131173960397592587064286063138848561986585659538043547866740873476607895362899889591876053200323087713416690039173869292450816033985581763035765697868520987563543326962894349050334936706515849160720635457293740313528004552505234284871988947275103279300089271195619975082502360529979485865738302155565088567019997602604774037992064837203651309342130250049209507579519030800928145124671763219050648458977011254542942251776602531661158018043094506560833553292948173078946356240600831431016096100989799512862702516630005709571332005735025363723777440214360589213142989091865462314550137756233181540642986575777074573981148537923241845248237562257090892891732943457880000561757887926469697583513929398466176495698547465803993899707846637771008748267952547785941320932527383650243946271133009617566483440349733842185764498760912178787636042614779049399856864039944510485947618425692493356247935252669674768014750027787620128971619775602637559690146378641239354480075702074533780052875890053921039237870898149693464413895045323973632605133884082901127569916424179519325184363528447122799400885540718032653852268855600267641929186868537548606822370204685656881075316696345192667080099617787874221044591958956925901931992349885567859453974622329223497369088970916728403025706420709281517039561157334198409286092218584674028901133249515007335075942177230591966905804005232933784490191426725073492563065270686148420680338464038373975012059662966837176595125093908720600469398298947490869415321937112596860760453177592455421382207744145225262440974544882380638165550632770597679846776220052343145957268123916959898067324268183375277048538033054200527326396092472444910138650972555521095741104080433531887379824944559050893428213754747224751299120632717840058876326394836691058241864644625331036165216511695785108280597270818150876839494575183527050831705292660973426370138568464315534193194779941231617793328194925214122077937453184119890528107049992572625251616527194727530098153126597207885642988624346821425734902156315308290766087519702562786002576635884949274159787877226218499080116813623210034885516149600641926780218586890925947049078425454506270126919115449511135960994726103999905262546087506863594755719572877528343162802357136865666199004087739241244671307764713197075186574216416246590665992538803245730775832239245351589496073797862941336748533104992619482164892083206182371499011381100457315229286355364728483087742721183770384030879564866676512849021804561921686186978756977709036008126885651232177886460204027985960683845228779046331334695199979399273688962399950567716389510943094504318784107084038170609347643586174338567272106869566304824504371325560184374151807492898388135247947557342779801204814372042815414635660268016884329052367475895624104725348046083692149818423203971052551609874185284143996132000788027948272567674690709398976273943357743037413038324784173281641624523575703279651069048038732862386019744652106073032994145699031259732942656803092845653022524027125477592638053831342809173684012604001634354728104284900033604618750986138618585436024465136048347613175369298936563915009609548273439212403040671521488356669117282339926784887654177160490143907486873515023344251801962815998247565600295775488174576384843460090032555853041823403273284935870883934391195819807893691235110865127066351171408355565827042387139198015143138982410402482333033703080245041134038894986392818722018146246589569502081483909125854388450772413639081989767037247885062201510057189466242795280261582526993610538346987245657771286483978142033004939948018041031347700179216727854862993799556892031719411945657587880668330363058069341020871661640090263675950267902976487647984738685919667024630211259094491635247403432685012166372944105118023520868248753836540810802014589042359714917413290877805652467300597591754381721559714555648755176789780571820064133385282728307601524563758986376142770948633326130206286731992464828589693280258383414228206779307127298909983966623527916052465897490136374989554345713574785931871620191411961406356390716126600824356152878063687497657240907953731223362524676894176110891336322906270931660237976615333454236743027404871824535278517728125700760747112452551234898550033110442151343835805920928217892481787289289212169383983679195200855562964818856909688161107803660804809573217672076222348503294600522938609588427092515688872149831672178347865535182021049748436469201449352921523942409926634857036730526415224674115765125414605224206071800391047772234446968230860418911749115219222000791261391058098472420857034133730726904964257304018016960847955134088469653979483793392422472117051279752453717970857856438517740874647645560321145835325432953098723783831525269008537968080861388727673195826699251894945542279632577934153227203900842803028349651248712797552123630684389046803800941466247445245811689813892547384547693248822411489598599308878179649866157746458323656848745795704925106118948810898586912721380700599179335289567183501565890578437564201394944049037949655402072226629842879484598500124420183763285043526757744209859417564534270957641409202176658322422733773959258526134722228697425393538157662233786351872495364585292863386773566999634319294461691268900766429917877671049786488541120950388451200663181707165719218615947300474730816511830383422723772100790744045230303572413278984638840365315941791171368798191178140463427163397517103082730363775702363590911322705738565807418073234690367689446153625586601228213168729441176544278884133444438754702963858338542400984109665372979552984878696623475552477542571787562364308317460656338607245841072006050215202451072374396390818109310541803878446112146156307318421234912542793901097971055383565276035574934084047253370753934404526689586167465450549356260416148467697689985524727466825504037503036099263662762566286868159876291012201274248588610948899838977810487184650156129930692182801399230230244398657454384735888930552982440173412328045550963813138352863496739268209535330993180535411423507263577026728554602400707655940257648278452356547296457131882304314295154464146880855952934462516969288229043258053967385158901116986548458383168149269204030347792364380903251643435450055272018833322182188333736906720069505358184326322305468962323703684868331653252420210075233304298452265334043699887097811919787270233697376382870906594639350163498097897644625051361171533222930345512710834417109181507115626379607466933229220695756259240412609938836531088481439628372626044477128975621373135581051068315225360588652797807056652399603496093829552998051066987298661030015763046225618340314200105972662425879518632128825029734494392535207855342626938310708998813936194521732837253630924495521163005383799468983208330417973715987878646268310641218522642620516927982985114608502975695864796266355601232554894151841108316235474889480967721213912264023281637591929490948666277628146505975530810754858068200750495889414918220688446468198972230863236081497430779241490847096635417309299394218787755111067399895992872829532844674127048895145424894641869281773194022783533734126365910849843387618606580665024477531293388726272012552218184956393934918678241752325559856546086902277361964683234328673777482409982341667445477953415101542822715362622116384311600707478224786657510363459727075097952088549290822641961454965675104743889232170657362075396223456215966435736037925160418293709531831094031247806758158569620372145905061167715620686030504823806569255829439023358300746573678659901025741446120275422721513706184826341129939363385665242778450247132312988207977754808637307685686985427415374890861005453995403652602529192351238984581451856303275503347672415159948169917260029613203754323868548387068797264852844712411068384380377459946978352641307127389406874222962316886264410728970511185056800423726199297067486040686775708411604195718895342906097699492513593862867261345218016681717226368379909411965865836555124236781143194366093463393936293256499639590091472326423894665920212181194975460514415602837969084278981419834911286486251562602360952012843047887662048213000727225803877704882223413686875844084348227435352561559120703009617332316778572413082186208288142710138756624938847261211244303339410700819568535513326560609430904056350829919166253582086301738756039291421019133407720425906384378899719838681472147157052100170081076282804573317478404442235065682667047485116415824121280585221991452365497062747130578632133280588926916736364492881388590447343946359525448938153562570321253190683491145374130283251035412984069718566872578499616116302476621356811037658682016406258912177103126064725943604268835189012798965552279959781809002766772880577304767715511898263484568653333135860472414076121626005611642573035134908159795378186468797275733523736319764275054805980528296429766794058786537312181338014121159150101420907023284984158598252933973692050112274218090155480226884638580485872676620529709275339158615829848781700244105391212145195828418316588511355861404153188396849525251512980558455790970129435466031459596746062234066496262434944432552895746082852276511159742270330985173721307196425673144980749267969634781279212231724654388577811492302198182851527249433229934403851587669332509160749942181666597375604257329008555345890446089453388956832216361475297965417765119226822194317137944149931240090842772810985673332502550483265061249630048534299186429360839220539155832142850005153202979609743711565758250860645059959015829785456760406497039539660103849128515245495296259896161637303431991434366816865719311977515974320261989124597640995911592565632873629210035706706257415908899382935925396976673059053443885683144945259724789479839712965016380122047525230879900848417322645720699290543584319545839363720825858204375519049550668912191111647246198439352894880354225325361841252499618724856564167022385263262202039146971036999263797059019691609603315734018130101489487041074886152284215064085216728067584280700807695030102477883744311353266616406671500351521935000218077072851660182678804057897310472842127997333952992322211535950633956621785617692861049770573361165182588249834087409534504121617006266738264814583313412825706070123060142158807932527991143058669316427597162952574594209030360770272033329972098419375019596055181322457450222520753331809395150986485363756402520986414141047798903362767400023702192088760189365847555237306580310636218043196729066206134881099480041243771417321726679889987214297718857562944468112339129746914910802647439455094473163296311214611099188886914251224363069729136423595575487165645824009517745408340479585740002730250419842607825866161151646012713857948293740106664662155539175151133461293628249323358688172188291182869023396353991522523721018494691399829797365275885763267462870134449473227215606160310571082397739709799479593271510850583158865499634159899008700395566039027303381918514034390455424159868858267311228164318415281594419409432656732490644528379415212631461130352571104357588339380634226704710888224721761339379649978562861136588338821807814140469949619707009722965963842431517215641385309697218884690672037009274793023243463851655853878223003869523673563710680633388962839402354461558068614874421026652028277411317245352406924839695778752440020594114247792443416692446381105359489602776991871010256400407512717275999697585549364607259339638888976341325283529391909624803274393946052251116513914760943734135995204224769877233701789115892513163658279524162321114358745500216174158106133082331967912684244534664202382863271691362974070213394202025694386760376227724406751850976326145569211262160810456379929592969882140418658052696516852620262734721437028061338017167113223121745532949669081513685939935903087248311531261108414246078907737255309255295936171924046530565736085642530305379317991053695610572652158226243673099176119313277724551652016864008931598045790195913178660089500131663573372398056613684048934792489386633875507030866495335771658731647578280679080327247077274623405080935275494932189415602056296627065467554949198281315548897648364087070347107994536578704560774959639075809815151122720220705844878685641583946973371282863098359728929008926207193213466094515284061001261307542926338712669467170379269107131772479402469267390875305362160822491024343160921280672960812134438146846859104816630530606902884974366720140592706448305847771187644803517069659136757745022007765056050876433376182284612518790112176908336234142764747241038577622041533015577496219913117379565393155904080587611358015651229105684646226886916961527602084201550241118265979082398814549093513939950377219646919153380801805046675782613060452083878290620820039051423795832189031531613048925580482282469265044061541487659292921896098057808833764453428070462310248481443593424047911268178450897664165473513208539018686113192243350842907010683034884836881615486816713068044016488744851057745278826298994854730996606729982486759460551331336671093118852362882804980230542396698797729308956908707980348342198583232874241516767304923133219175050717657715676683293001688313216151483040948491862560035333912539559353435729267922210227231808678012390909902172677799536903129268227221574652882394066817262220957284491097142180561391274899358974054539123568329311028438376429554521128736680130905949071736657773343377672877921458038920256550326557917451217921377440742734805180259043815288636714196354994612738582877074079860766412258545126767338589793494891051298961972075673138828079812029145152964124600842383185240067863365667060508607726438588171083497378497142459205856647191816553303703067918798632224314855578953471824577480501055986803461043186456785589411262749463660339920580358348543351258010154050761760483099835824183424835746460289202315310099026751314854127919319004102350569371089413307947297069421775358133318733080977385204928045322444658421423075496969218738266783643197201278409323215025897069390262786694899577473152100764706217452166527111053285808997051602954094338650847987845419272560838540218632613805517208201593397457528518595968694018864115976734201475518637924845318806253162690864706404849753900214538635271825392741009664912639663305240034408536013469466344036784842547133577997891700295579935238207250441212463000801397267062534966023937867312004080983836870991040203698931492131811539564158442827744778889551375375925775947446307340231867211358330965213585107618040737851865925346326337724988746403032669999354635032717616373100369427008383462477095532403319233803781529202477571011671459100359776732362244380232502037872574033150720191119791053817741265329426708743940431131527106148757314678721975618524789200772719582805334037026813640041438830158596090381617878342668223373465573693142255061303305322644987419186777871688904965816885230912690794805877132235129744304429379583269739078896155803767670607448099739954414592454216904593200838484991343944700277006345911392669114550641418238679342506423691023713481692396020239760326543879489484199037097454162668298093336369287412786440124474909329880713889780776548699585662746735556724073056353355627356691886470110508593032952614618154364983698600345755580482309611048068560032280795577719806179718542901935851761548182185176265131220155056828517652434298361632022796538923046254815914839180222003781995220740386734579429629079933376343782164810087532491480200945471050256872207341054512748256269598430998856790513764006632395171734899718908224220166199441382571719768845846528091136269504594305647187805427382896036821649596441450104605886984871666061600930505654492185713300887226381843544780211649466450981971602534493588780479234048746641155954565062979240534499738182838890818295050378616943928466022524363085871685781715851501259607329140837757068594023628754618664894777174374107495969561760147532394524774884357241516824393762290766766919742256896645447345876506118528066615264253272363299232375230897717471595912828328595997386178796253729590089027305795821611032743489786848186573599059538979022101217349209230194683708029122255452904617826399645400704861974597234602068819986431102853157493299066738295538619600270758909849710177816302614451864716431599045448641380159853253277298839401392143086947863250280003866315137571180206150626758357426885941798610055446225826279898191303161173911623854817266249236444700697529587126923217405039852878955881064627647715532216837565804969481870448727055158602848147288466381427195714795687893007066066741003000890069999824289429856128836873205398773669873508889285656374873040415365225512570653732974955084312043934983514588470242671067718992856834836595719027794217028827061312507494731502262452269058734360273998936253438466246621350146505938445185464677231329194293711974368759129325139739439682111707271518394637990053811846135268333108417086975342548629250589434212594070557098740572288560907477034442738637723814155190338875374699849408345014466233542664029792043990966587996198209179193810116325742431326717911929748130546659564914951143605487376006571025064763044551332216054457370023930615714862244474784705407787436626357289322102426206284710215460890824543068454575214085505291341754475632212634665446573259679848748789183967609802470321165247124732765778145551114424506092639250593574915260222725987129281429064458907709672111768877002076317549141797507203893345422573210087378201111618924007302538409048203007529836570587200171521701657350834881549471234618086777405808161945470424430203630726576883269599270862144593008314809532270046812621960242169567300448039405348342615792562118497438172182236320019184137985398006414076899298363801383234798267187074341363360838984139539994271088306569135496430915787719032801174050433029450010845671400918288609156256715749572619139126516734656291234013080959979943775038712972100569330362650404626099294006777506875709625626708653980938753150282793643736554795987879427522237473711451585693570012115632288200148189964122821298202410344498915495044132335237264378116004063652214534763266935330145633972994423875880377150349215313692087554876180481263522228772928209882705494451898128965549454711347267803746804404323133216923301581132492906809552120697764380044163324825996325165193194720458171480663615720007237073067747363739847017025504544829063354531178795017887176532841438438487425702501901206502287781859761786744944384195540484171191996131382834919984627258799479662679509283875784937724781513321589958243681479496150435968797765491329239296014160876417586312638910620629599758227568225020199156276221464865559269574739167373528339882298567405939041542302254865799825846392180711476669982308605324716599702808208280857139696103588269991701579071252228533135863567670107542943861468851308480030059388829731787403394121519223346326313298988238935728469764118157642197519257604295744051181288590556723384654173130300832754872632928455585520085814018353333538579935786207029384914722922514277080305919420214675932224882025159815990912251785790162716918194917191994268344633090398590078622114931981019298074664561874303813939514351921919125498906041725244036946739531705488509355429893540910882588675735686583937600878383678838661620643268465386598313243558837144891415459390716914405309128631485031554593064384912812927317292153673415900598047547988554534713554858290735393640921160276580119987268790247564851638220568682504928108831329185859496579577163615274849815850868681137541351147333252501977139070521093776024578736776235224687616094639230862485107379028535658542776113727910943867405262424381599717051221989552832555653811426951429409665234929880066672311031325984825801539334790567433926164663075212714249721439828202032983757950875388466798559590925952203171598049800222818880087477765584730302762365350638990876668493090146381401958652393654922300499307111687195369326361888834614402012245419620142658261277955386399799250313392534229609859514179370836500384367268069841103710198126906558640732492835006286891929968837052158098643714489309217035517025190887941704648095368699521887723053980170602388145378729783677333681213371480788718826522618968802230937057657433342081379506138851564899213728218934846161028869131983540911679101294634421731710792346708400471693720505134316910684933870651186384731846525180941509765543386847002285211780953899083423471675426146217158434421536156162221913707006616345274287089399791540043845468551423611182073878692893194542971619567491170558162393580906185193482933283178988385216448908972403750796107758667295978956004433356296251376326677280459133845644570513385428605529759963767647400887160119465958417523138577280122089439508471409118517185191500531638205190807831069397840880265317803889149753909101377619159364458662399613566308950980430097801164228082142072511637005734019428097593627114927287892082519887584597111907103722937332078308684889995427402012284595555571050404843217721268110695857688978116849144596285018634844851263082116283958440656760453186949423656847539224196726510252533144879620036268127102425630674723357826687207703150766761825119647904406438552067877446036567274560725076818128872468531576175986444175449716037128820403915631427417164820457081859264469303438017290047680035488418567004482579091245028137056069738528523188811874954937232074232622928953793004704281291632133529200114533528483505679638541376938136429973904803645603683694698098750233843462568773001291255440188020770964462442229842216244334902181293980638343221927340162956882697740351612762703915355822525815745865576422634857723535843045233758105223908791606566923214006312195561031437794520339485158721044285777819807024352847429854243916793205707357197647264789018176112922244318160125556097688321953827564459915752418556893795557589854612609882218540547111338117500950552891764975706151783910397843730883677905741123660267133709792858922338474350327627547766486649939772743023537563283278669209221358398271187392899909708431730059211613271933660390418443768731106376589089343833222735261900450217842703318146601353932686437916607773288801396017563393174100323840604680828680250264996825571593563447321708784040349849757089956822013681462779835382298292284327985100458055802758818021428881199528837330902156553476737415109622433569491566375358416512919452943459132329849889397439718558892598892659703462156867690645171599890134590047869058428655619684471777030838207306573070910828621019012018603229613873685008835584624156630745025283677801350265886926441393775640334562944201925707406235146108323850369570367676904069539841365890325542284047325848491505379023530292759532328197124754142540763786219987270093874566494414692322815710856793241584078599195674237908349915971211274867881904054414097685118726693097962130138163399240697446391048758880252427731689756989837742513769462239974649072329963623108890113445798153618390003977129842752788490341603514438506967936758193203500265697072974817804082160218760659035989648466908202853313524168241291498372726495821557080043760535386812396375390850540506815752083436001020724089893812256566186054864431001908176637941774670166313963859934548977437302514301937747813445391668426478208546985953881336264927211390455764962968396130406420774714801631729314098107081630673476177670063426375043829498248020121130785748247364148068142330701192207561339727685318720386314609988715477749259163604273561368230918966019408231335810814482989241658592317648463982145203654103689540025761621936573538833610339217012389946007760444748607536349912206405167935637009023826452534242617971261595275453117950477957466188632608918829252651946331138837739411430597128653811216090424310417019652194713497665168067799352796592254120820035296629402295551801988689348810082950098276366742814107877497539405622965338884812832995678352460819236550110590241345795046192914033698001703065692852355997882901967519379402261042366588178215470309626656021466473650481285659859061360746181472183439201878561549758212428592585582155348575184753360610559933237571500178145014159360070844745919432758361972302763501339298080991186908505435003290727716740980611169980341666297568956937603398294482736769237899984555918987342813900516149744774918136456266172475970746047299237653804934975208750182159795632845175407773449508781487518875401839710393624559655357543799157527295806317863497208285516159000409018920390542579809925150974912795126515724577095808584816941671137743418725922283259177096947297103346799823246022437310968936202848286425746212663365923915030928274103172724075280542602553003589673003931304725460871877218880152285288101425087447189821038286520252473619082014940167621147409080597881623147980502021876977763246279744547078539262093296413426331272235435173621648008951559091844192129923289126933343940090456614849406823929157321156167671866822399396098460822975670032110868275386134164627896230451056430046158521166059783394125483931239145588406166732980980830218290013733653638762113941375991047970555971519624015867096570673924542300095468143417700721183309142167573883841412771302161603129366696634228422153695291501723980120120831927947257941070252147789940613887455933352329797090008771201848744968858836852862948557756768091230886513243355981729615458341793442322816665872871904904654080208215501880544734676084592427778634868488559571695799882318255263352164908315433777950165871786992213262293872324346426227982366045468496245648134264247250391452597592387454386369265839497497158621716621568951935984855244455618772953910032263185012226039221635375139251886019647898590698529438004834698660515771502699922849127984376901001678741075462478638867990706861569270807865137466130149349337165859473826019468601219337010428538114622442331097329129355443551717173026606601787916646842852226701150310548315750305297812935381395300862147358576580159050474884345831526634198733379618732983667007788500624035343203747269923997905657998528567486023890196942874270919590152613489874685648670260335931432407708785670650009992255950232251940365660109998364841822492096005142313685326573086637444780580473474737348217976108286715595329083912459426100040651451792815975384746173636038136564555341585284420014951233802489704837620068063117474763337256393939419092714541353645977304846195297277562345454044964686061700886563765153047325597628313666913098250824209071211064306798833319342099586625745617129613662186699319334048238727297073454321241427670334805548671320017035245971191048909928295437962283114830992925804598953482814498934657247277351021240843975471093066753367003092224365534951106952908916841277937649381078512354328171358670443849215108837415784368692873994394411973155455162751762310478949308755360558851609821590173193954800746622389926192997658721521423779466140890461870267973177863981431465950087982754900290174974825239966276065627069279255230794712084924608589125595487263533513518836978918402937912842543510286577433881425884901894503658356580044205503624926368842155259787011905938231609473354546676119571974758908469600004287025815777585757874094055423208278990113265064916548875825642082353414984651871716908244857246619073062868766925137847042836298158308140449016659738060896386390914885907069852189790643206345058588708989355167492559071500928048265568782894474636688563546556751261981110524079167033594833821016386098296242390016990240670468850096012578475813244053170237019623444433617901212002110862179697276067872746972491903108173535067157997844620371119213188774974750518593038236845622809210601485144140311636603387494882665175048183198375915568977138937913941700176985747112588525259727640211824333541286999682693602696029015348443318054157350955312691670704562728633951691421010135721112657651839181489077785404767441925025482339156186184151639534821495467664498628777089541414607107172395102542974521896521321866445109032694447060239050390874245039464562136123687234452007671249999026684457330183118233422626145693243576850335799092744858615618719906694901379478746976901769264911001013174598971101530870706762268920185417438887366723280003999362786805273068212301592155321874088421342043528217837842383280202992703057968093330774395222290625710743867871892787084635832121304921585088710994637762125433586249431511520038304909471812563350744328529891863823690739271029812232100139562706852136069598420779709166200252519564839189987158447709809813761252005782985582107441930904021497866640285012062722164177391089275518071644632832554668678525269900556747810476684645546388809368899512085286332980034026092230821575488974943489362963859012083037883295787007598530021634165185594398694535453924845822901847097731134206755074318478365780911584286165932111458205287824101392074910595828806909912078513820107304950685899734231972055665198600831071972921053739396223970028477351737236339219928066206312068675764419556138420385158487742465463781826652613505238026814372470307810221479629790217247735623020480752841624643468402444726636901879877502081628491069094682860883646613372331556015132804662998762491305686712545231749333383036426016773106881642253690852065955145075658911262842653788713012181322026326493909293683400567075151433532626386416980669672565476054981529609003261443942769154706022474731611922520472060861226689859550399143807954278186943101784210301110886633123344288819038495222209755941796997644948295552527640019642796749289079410993086529949085348856104438900501827300678594273304705374808162717286093801447564954640010631760724713418735421482960236988021599520667010726681672467061698553559342733472111196019702377084736815481464529768071842806138111014360132436129372000045774637215211349476746284138911548448056520953658386774118259875963748961309410449461939076853440007553737572089073868127194203121642078530013459232257842293941793358442933435454971302836014460536785835064389691851290658037045025277927687741694487583409039803917040539469065467745682338258782887031086585489266836578876330567868052910949976813026300790544645987932416116544115381119510156779658317613985420504152835062282776985871290018696727895529756901681169809015257989738887684734892199146774005888568392614204721187185941400706262759915353362185123740044072256766776291331663443865058044704483828715273524073672538667856715221695771346322043647385532120027855200646119013944152151233701061343992436852689052111564128475054313383677065166409550344207683464784654204841663803109136624450571959386316379022043413695778976986732522870406289701860553317499569196956557918539668696206585730050498936568356754006154246160156023959869480457594076225408061466864847403153529823026430883476601786421585600024690934227522577680240867643030727195070674981251468484905541271200789158923190149183846134519059468684819107073287379021458264125123509642881083216446138587081729193206237905043352215496179560962554881720385550049758453814617983209706343382829153851583362246845580902931478293682777429008766533615117743529919801820198067945050725170591869696228229616713953943480840480030391918948055568486730409245288394245092279488651846332057490903073980208618658458384177456499196519909907229078876173962384763071858277444811142743328986847407766814957642071973560969781103193649993767857090498858768777930566539575335916889277681898078756887475926021947055259857776260492736085474098556560387022341661081017826448915260107278028053277486272520158761254513118520844037325122361286567534008130138999322290258351730924171055161102532161462711936398662925107203909111466809354110413911295873859016227167015637812615962417550757117625233333324913890399472843252177745132655537181348400308209683033987996448183151277507402482260698709821522978967225233619003785512797867110214719270391623325083291051616305270904417460551003694007950333072641507475180485699418082586121233921947513349925176161732633696287309642694613889586576006456545179311016020448317735635111591717279281630726297876806429930919414696698918860250900008485980911517365872710822543588436363861566822505647337091112942375743664589909480112908441850476022913039113134162039161032363754412567566441324659334944751012172813275508078239939713032237378798188317059622492073198895675567172562331585874224109751573538227281051025055820231203268092854625484753087552697017391840515100514098348436713968599448234452021779087651710451564869619436202238455923394726820595357253785421643116162176285401031018867004875380958237204592301821151849511381687947593860256816225297514325209798525147374023139919553041401110618385682471019762348266926256912664803369256172188276988421835754566603637643547345443362050540047086418854736790589424332748856521060335428205765407784495458585734604189453512199049032432828032102449551855257205156835076531190562414473422910833469518730303801742677642562214342524907134309633377668496001620289025436871405575749233713167864231043495614972050196687062627647318084575764347863150335551649224105347137901911400900310116895554026472646289392171776071847168730892853488426457845189375567310148577732817721953221378657383656653392928363031747788179365390243986313699342186370217600217804972464950134106538383559267436360254393797968254667232012450925522675462954203063074781031563726049011219288234614729891844567123543945567304788027294055002306625135901931611396309903938559934532449275496433160647460683181519263251666949522393332848259990436126351544351980593323890933630741981209734463881480671721715891004029235737273285784763511807966490279962597226179361656627900850099613584464601616866330636957617132510386390968763288178090712243520814771547555149627662586889617099041000216944675671021461642044741295310903535996281171453642758371173735033981917862717842888304438274075594233530090339231356451428652959396293597386152947961066831494317018526797591438143685586557196162187285702127734079508264458004970655693988516575966817440858602522365742485997467331720815621672890266534317692325411374275925568467331367486251131406067550759490547721251067678629216914122307092961599992702045118958541632326609270782726673705706648304565494077793616813680759671786378235213860430941745330196365702560517972186159928197136748630335310039831340095114621769571294193813457949322428723472643561728912135062486353764440561115278718643944553306922586143973053401199798914196227444238052091038161963012685072532796963013899052857448795903144032362924352979393620468931614496112142109266577538411699727982944498518519589796085351163204306403848543943962250812840126396090310089406849335058372898710915072991269948368871620912001407877322346357651502129255070986678823706562361033245664769634080155566942858521447847579727173336317642379668259055430900884170283366142198290124186799568682672369003230154108717301866261500689499269060803764447763139452318626476010992108210682669065618030336384061591576160513330839023821829556710480444744520108959574962863984572876043196954323879904719313008009951458436423979702685252778918784543156195720743872004338687555120921418313222657009932555802953190765317785616481704936681977017056770352722513993891470529640966389327896403162311966214903362335786644507981428581539342174861006869746124969324042569131752682577007353418291880584230601738200327078539561642711590890656432589725160500667494707693477753277939549797310359674405323352290353682496047886108455314450449160823097459005091495355178260044590236088553116699314325792123145583937309712331105666879319190546106092787895916471605249587393929109459120960166202269732042203931732264512292916586450236563874887218363627762870733325782470717988118865192131776932869160483499274679871256414550936285444294776829094323391538385335274216750441410724167293835407752276613777400561304877680412659020562048786235688458521381515749113229876821041916656070063715531655562266898322211643459723406471721418919507029291748285276975763162035905074571760256739190434862120841260542405337205076596641012870621688527303833746112543004947468766902028371037536665840485020052090119465129177173563450950402165506292698091705247936808362823027006280667136672189483712231741527956905361313419658378990192055610311407551590714619922858642961626184610933564006885340174863201918867232150528458076938907414970922388603719898949807896017858049996715808438652353405055661166513991317378439555023596076549773954126943311693634286023707239285370957071414159055491387808705486674090780825679067252441964678587629031081033190696424887259758532648683866967003608539007745257703807809148132831686741520107233971481840548179981595857073105820479090229931612173047646138395636631381834656621226965358653856951614379856501998340459894578560561376759647853210108026876424790993007001246849174828973912214999978247168319125437279784368426919821759811387506476075769062156882570990120703219117125066339773544323585791430488140006486453180275572746021646035673985706426784676887580171702460132262630702197213656155713967658366642518503995218124500427898035486712595635835023899552087018580781663543248394009326724215293754536745721291906241788496576536118719202822540878000511889375687341627847584150990607595276366718656709416818434357823222285821969184778865664565518060888926837701443215592935144880814914225137614294035870692198450134730580657784873042453886400721922666216789878922576752630945405072122696639037855923570468673684592444208263187354627616265354194440151711423281962390141535012681419402557864290008815361698278179618889119551729596463990249240341809300134695517960470081760062268596714748771903496608947376145998108882953321194269564087507137415276568339164303505945163723463478242305243239285096607126624356833148885550214446194094476498004432335098500857504878772193192464047492809167668128001653487594377421190336819051506049339982101450866963492730462934829052894955233517701939069072891810041731781967587463978088786601094430513980639274923215087649377370254030047025646286764580048771869500781216310571586919337190177816780947699496186826641282414334471915677895608390284486238466934720702783007099773597153202224199027126711466323537788004781377014365738891203538977818145734310174170841249818300016234006736456926957605780902475579448351631533905840165745865974149527808049335656850183557239615770681729843579320098804912265601331923076086933701718232262736096336853622027233061149120935600537907359267701678365238880689385816803854119156595457581387419833700355795259224453391771243066428001428809463466477323709316595465532260325227091870815551466996572726149595812060639560263353837827239431964041586095203830031172199740874236561465861800655114888998053058372752723992577871223004923623762178640454612903564003957334762390673815615100633278279541035403989878030157844627463887795984506956671866040354797539935976606256616987399111887479000975500726360979763654108322282743262284832813817868961784311156793419977488972781149334195346224426461502671084890867399989565453336108906299244019732838248410822123384151419358904063112385911005942707726052134629172621149950975909881173616603298686565054191860285741673564546040189788012625746732623924646688620297966495460318654193507222674282004016821681868576743439318812227081339950782528617618706551005637984870746082532354617777787807730125832766886913849150454317375993850614005334398542373200354022437883595312386017838634742274517849149874274873293872040761330871766155149918579231307014210515507805127916393890230450052980917378971232640894752690507925073187046195696504499846256501605802469232184530146698486552352434164037668120500342172863483873259609189919133179736552055482520755432865152655094441119076712392528801205106697220843682684518874677555539197215966627728679697135329856860680922433371773807285417501859836388149991739452489717393474632850832624415534043698946596616897591447543559158820850908896441146960293392581526570944549379338479905061499022219891273997900809939105134022801572578505356066093570998593478120006536309942546818678269150569866810466283267367895040512631620557140208411462759351985973270568763848470159523617758482503230057038448180558552798467795060406297858690539415604555462579287330599787838563308876186918383889149952780878452334393634448242918693736200739473657208147502202653081151224172066244057849128319828434031791999983345747408475648005907995378080996525387694076457325611308377321600153217358313628338690369085693499818399165935433961194789624883538377465771328730794336995294122024137306529043865550883220522183669187633610776863450748223577123129913677109056226170926780479691266500541779442150747691283457724863248874233849180470732618677805010635736274151771265713384781468901240264111574074549244192027032810166882497914239166025097565487234908658984989915871008982707933344373720583012555494777222344172157308930999032135196461308443952860553837211739896406823704776467246277376149895266402659346140814220349961954176847782265032030158857520958396376378529450669028860366379974788954660707351142809595118335519750564083451007480774493013142124929471317849493634653471897456047785856305348303911339953944223320418181808407438358241967680463325309921450799476937535133688781129734389916341196658603175053322191893606891579703543525778813268520844465322611891352337948193093822017346215087008969893639190173293705205387760979326937499941979554591859397925607629252375990671112669314614724921843571831755664379203798070289416760195394112778510930714197681520726812941818592039771495327301607749148163732493764965743895156796506809399258248945221986163900793021363790536796965450919472627706286365360592272672358584932733976210891084430011130108592670734357352961055885385128173693176795441989495900665345471332089069354608956493038332416789377636153973482761498283677078070198500847722394235384342802120552679331340520273924690118693425661007793557418288561879014844967131006008515304599836166558277400664244066739791938528438320721421170819482540506407488474165368825782692532179466152208538482355183066184509288228487512899034561624299913145279712239516692538714642713136172799445528402857508096593662269455864153421596434328535200429623570286367653366862821634842366155960500430075584328842714878251565865100382882241443926411589098329776651525567074240277241083642900252236240339974205646394361787565840128036183426208350248328682477730483088852608335717440704513915576448633562385454481873182617913250408413098248153547554097920525015653787797733999497556579364176868648232700661201897055479168417895655716516998959096151983515555066404976664325456260153340920455996763457398834664614552459348807067592101043144926864324358287915289324680415897975656752220222387262122856886878097355059647714774836048179276835508885992694909750635690937388631065896704501939774067572893874623301999846089019296990621762608663790772537488460859478977805587465321587165497839382390713668446873018310527233219277974669507357036806593795006926004293880422964725074281506968811743882923300924081600830857622799943169059641248531820924061649120737131062175092395035029648715691448597324527307107075087438487295500787402817328633364522249734701119684093843365244194114133163787658025981527499168574556365016815841154822519319950698545469976969829342999523445931067578144438081349972844616242399907019699986524909999341211162901580909258034898972138452753921727349945972887368918570905599908527862461611868883250883560497231180710198114059674582277951751624480689646071680370890014839222341882166818079332345618116489711078335317506651824441195402572031380349846716164257082900059403243856500492225542759573984207632210896540176223372021888660662581339898789271527478480698652776095281758261020211136489606901482888375138665195999296140593810534328110453834409822036396430337319142088511797945447006075408452308971245591214072391304960686362622254190520579361697064345310161491974887540960106087684357215767665423365648582891058906289890568793646646750183157716581968182277317754077382091528239678945813595246462576834859687989592931047106599614059236710990169218546278756212472045531248687275754573936184123426823560299862919084616190813015192363590676412330835883422169490996671457074295415171236557773584088158669678449733745156905623678404885494474751037628984455782807281053948034150039906214138552019399988590997023908078238285561600573845515866646562423701426241311133997590813206317488726092540407984452104032533037936080711463061954618682770217294578874140400098482186207787526056993809890070840620094498047979112266732226165848998557900905267005531470468044618530735474488614630479137551071739073227457215293482319252855912163161330260052384622165172863239182546593987527730584752124726952435171048026587329348082366633798419597246586802628771090336379441730761235184859477755618543540940438752127565001013051304550894186654581656081110568661707768512131621144061817721224184197269024024517354784097902491775453834866145753453145594251223210708151992709360811832914668303046252610493986612981579864275466444045737192636600396167837234841572921535470900323700517646587419222656651650352157159016091080750057054935071324584169655915412709622193119916518170053290598210603332553007124180824069584693942572365574193968886968609773355930524868110442948442461503613785554077602100076122962940946428641158510211576911436501214335465526106275724998907700988768568047060164396359564012246505977827476253002488252061032940348693978961810325727062646608725657268907128483300580506870877392666603233796829805406180847214865636237968666843385522727001124965959683182408981781315646439171290533521757045035209659856935141182122761228600874964480544555454799297214405197897770130762807040050756399648871122654654755045568362362097783077387433411588123429385111126616045574362524469182932562490557860825238074976841163736683103370544390972965372657170135312590813172222444749903703023747018329783286363832125085114201105194577905977486223899367589127902399272080877994340334631521536677582098565745002878812099903097243790597602715423822965625544844701026746294170266893365077309301104362407498625731483664607379690357787294174185622395316051799108388151325934465559497293199691642628092387215437539530883063164376041695105569778953897313901056079499433865475962246651106820255433671808583157517611080984986361725876222123478602519986795411527362539308568622340677501273757158327097492251389658535619804378770256624286411881868806078561930240065683311636342153873427178351175165956569230990635752803522908289858558560143142198163740682211215913643504859674790595536145668563285238080402721457763531595398386079554257970482618506721559095054439730729323741092113744675233290105605140522528144610984711643400098258848285429671149026973324231025998326481533475948291438372277570534564252563367060092082936253099882925924650414256869683875820597831065293855128656479592328546025511045386766671622039572272586863889529182867992372742165591574991107477250130438132409335263761670747669050471941626000860807695528083330955474268795529368335056420075526968693118830225487274169577751248343187200825643503428454175129280157487485446433547110061247304535779692203047906610551438355296492066337445122794989081652190256347444060557571630487258311436386889419374925536265238811153955718505936594812540285941836125698267647992193044960261533349826463382584592818008052294588060880896287582270460283188550640383506326512852635149533321349105280576589276655622872334295865010478080770064108644417915924449863292904700732948060371919080971110889198257562094350709210592402846348885338886906574204591422879069495858864476432594141062004997772555226026323895869591349235418974162680220556276829275571224423840997595421997516126353355913488490277952354842299082806646424465033781985615767141777344089234084254538685242380588757436243926590350327403544221437789583924366955279314057614141923196360821469897479076649639673335445860168923165095424709639412779520760650509396893205502841398445971884168017825206448540880227431784717969451503328416529643685393797812078859167357539930652878591713576387517013693931613496939506544379738454498481196495695691759056018804268788409731874134449561439988097508066777102905234952727642764004869348905648483497979754058825774569667861165487323300233450564524865129901988244746149991812063641027552456284490789329806531202058468274228140431923869211061809162275164962672165062048221058037916034239734081025342172114712569937599866028715726858736899313395134551974055036950579522508543615623498053002582007231477397666018794689714217294096308774339576659713795428005966283019636701447860899406819647893383543849260708143732038901684915413013072422558540631413273972141181629479541002839676542148469551436852407415447033009557308747971511252269369062116874839957128214982908161246306045484488337797118673060479832090947753054865225859343155983536551632031987756524605191838457713840560693336776461958717751254470875332468055949176577053474514176355564854813588286505950897308399696160474596618939376294577324169778202858745531858719824150668962941801717081515590035563543571235848676921769828968907140585156794453028218113324338507311412223436912057298203358651035897269569826036023517806951575391610482306499844840453126672933774889583184962541029072244813045509867801662430505237211389113027881083028373939259509643238056988365227415672566398595226528820238812204676018580158793617082434900291052806380722567401960776593913286913035561892163786194165170316266315552819176384965383571901546239213480521225125188580501088598874048992380592829031828365390424806841421180336162873142577536443431946805394214246207935784683097344698723166305544409281449796772438775406344742222753162519608460347866356858883710104745972607427248094631372258467326908034431931324917790816963957762625299862247525373935686277864283598619542499623731779201567561390934632244578025286342675807107803639355891045011794497023137502619369623073448395486358090949287848298068830600740983601777749449017263533594752703121377350034506149224738834426598480769738043892709511425447565644061893248411571794887637061038267863556248883255982430762002324953118648720938952144805870422966185585041680298990267119459896670831624611609884538869993504497867571291314185002819202088008678318374346839276159509783014230419471262797759071385070689173883107689777338148062609329024239415578557577101350372037342787890545346788158180301226463125678257842293229109613644067663755322604731202613128682169361249998608882669433541777669122696585349250449270566364218789530583289889569489924455794045735113287574477654308882408187616186902218575233621766846294210926926586625205372995978212939086233652949979422720837417307029184144233169849240564885105319109023886412708183017430760281943748081728562522724072994969007770207198320053708134693736683495882672926466223433201180545794400328322728549333635966555503075176508839664194661803390450239095561597610500662323231065103036974355612837826374491526469372215243769704824585426870558676109784495939154894274526997138452753193075591059682853262644868984041212978041305374395613965922112779702817810464506920287295890195867432103744704603486784355712230490891671399281511575218587385237046835732846673550564206081148185081519881181286208627850407700426915296948645963610401359434511670335021230330585881371989244794637146106178843421641404492790597825442591479355813473150280958756272737351247638170482193043988528885825601437166400940783739550387153096149615429490199342994593063669117708061515381741593438225724104520214637669600876933473462013014015685163231477042433757956377429808624340027504952847916411566699626231305590395901868376888374225480085807656363281695117483676107238820244255513181869029536549008842466159602424937035574568743436697320820462671518885057132706002238225625037377334601885061036834887534512436474774447972844284203667266182634268017881124113767846742723780780029224820024633557828006700958670193372420492491389215663964890253552641921486378455879450363583732140051781534854534500713717724019153629210554972646561869684678309021960879916559012216367953908683112441763669570897818126765703024633115914777163799199161929115188031633166754533717585248264193076788890897416572477448453911482303346920771553822754204092077265653235461753275613005765719453850657723374761428128998730863039329998426249463371637959581592926076714004514178214663412958151567827318532804023531712870435160901893882707220702789365330932855161743984560045658797014667033084510183269650262141394861024809396713604795246704212977192466086848177496249861511188585476860647012216590720309217793143404932673721553395451818663702896420535537915512703836190255364940219173505294131506559273218929139285727371810436703894317237267878028907362149094273518190368309286078775439140043092708995918089521522248240789914001623386396094137207933774308325037819869935423709942517379562062617841724602894886598392348402730082895216110634202575938207940696361507134854230650473369591974403407551197186019889247669925342315771546049215718554753528762858258148087830358590956251571370560437627180631770241141230652281895663548372589810011133779122212447342640908959224354627677767870990871141794139930834862593957546366144881354528821626546860922582933367403790156407953266259398525008108364569128892038012075839177781460261947524191725480334351228787008890092737212159500404189561858886996149719076354037049129362795446052925738702867961587238873201074258348236516797043582659632090338799708185967606423541396679527146216813656637920635745827281983355699028495243872699994913348245896145554355513890207661099884103222379377365738170508744516742631737028669962519678074599120271468786206657715388357643033925511926372213034915335174307342129597324870110629453092306151647059987818230597422329425797773477605835528500644531417222019336855795805649758961183130669983150714626297674921019921677991488303188790484473540743449138959191422528979171567456788439463547601675521096108206283508370032226425449614829346044137099094729924036778728353767941685946474419223783565489995966273554602947440370116962432845674691824467738693575649074343070048678420038509039398148918370428626311522143320193312694150925974533148035850532578196420638705402513989277512986118958663980445890674612986095665936284543460405019866001225676949560693044865912275714645962129434163546070089274828198452141101078526341776668530508711511222377970864388187818977137151465116368803531085540238959620257875509367545019856466310590247032726361729279245515656886036946187222479309747731442962794386592403497218242994451246750817449495165938332842585876129852577104729773881468417755937403772542670492955935152367051814736990355923655796497191543073128306881033225091333200846932159621394078511266633775356364168542906714687529524835874496735747413688095993911608294101367080091514537122742086628226718491951792798390698224879368565891806674989927380057182133594790784621784896418870232619702569490790519831371312421813369901120467287274993251901844302075113113683104659572289983912152878672016424453012592499270678685201265804595590597737148560254335362832530024473488787683449870371404278593076598363034738995291228259332822776929205392416703133826520031131539338845689968637210629625709188463976208985266395192157223108065268841674927899120542897903767485435941327516558069345395094603983350880222660398652247932768787083871213452356445780476846350991496006267443569857921579185640018632861864184683530856856903351659939183669340105390942003168450557178971950147098880349803034442659767606360140466778720701484388158252163006344149936500646471422471753208825125215748236814278865370919828350239105593677749688604579648919344366404903831871667452805522230248850490374418838002987406074486789957136433186428866175980845132333620997949957783385634513574659065460402063323014224373497181637286654222008626211540461731387059723807915611278108131399283415130476591016751954319527422636476253252357802445657734915344989198864750784187388954455049150444273653012453417507595838599369765101430896301381570057374543429628933259927633971206476440447191578319064357486966942922227398874438237850669324185273394201573243868739585831140778665824541095426497560590309259196868493187789880697780687443073527781864275704792289210173082742806985685440444522835659577669495620289726702595229989312951314699252738307434888154966415463455276931819220270566401196491395811980523936792297616935949612137380795689384765371442426379456491150009447639278425566487151961492637668886415850374915470575057873708081991196915726779104688330816261509364241554871767584530068191348558223035693785811005743826543033970837590211248316157403792571398527117755067709480209308357154596744135852983071919531793742183553693684898077308201878490899016800276258467816262405239197742577498038336107544544949314694050796027183226022323294288527169393373975129890468972605039692236322080301311689891239378538128742227949213171220977106120462242807342616539614759670758235024780863468975635904089716570602897223131066527956034971188192555500097799805203971775663858435273489449423613414542241223871658160842680845702705064087182026195720838544162930774487634567023884998266301437874142067506933122560774906090372247449666489735876881774474734898902666186264172914747503222719472714609230288914631073794442874247441177420138495439493878834000080848438571312024758239673075562920870449026704931174373070972196576172929054114205951413763522295745364041563431080046918808548963002669877578761169667585315642386702783177645914495958759659216489036472729335266242467136047794407661239476696034439654177863963900506277023354281194375844269767590871521832081239341148996453565272482725327046556840488853672535487259929702889941657210869026726963392214552185949275151716989879038894229633975184100482388857452534161724075690984760063009089248545677172200920308426341537684030779020214502429338815085713032502767365969865354433056551256459936153166928642378730890700311663834342361138733504705192109870068232160031504631809536615342689097632105385896627372103407636795555552633699969895857940771910442508958853272063643230706108482104025513334976414321367130951218515559263450575618201088681477786238080711294651979855032019515747719434871455282071030080793007584645068787866231135993387664670223197345409998363880009759311639654429131866965124993146074388074455481117474572895987831935419515271767978441333162063378191728796801642321934792626273490997603646496158866199440092778995969959243426035487422719493922739201317841005760325147499334861913682005809771163179171023424772078700287174254836493228331774922097293029321623199551373641060103638121130477183563063336235702552797332373477318308538466384064620073642695882302902020216213966767060376970910895096682697093213835194932547477932474906997783147908863716018095660200595700020821322156402141692158364701975297021007596370333265470996542955985154650128611118593333865144798760330550759062293960319903222791133676534775417113868326432996037044767417996143330357516187377721163667984808098582107290125724980953463256019180779024576301700604978578501251712926452697471844642352192068698644334962714672627319639218326827885411666494034168338108775282213596315024488839888616494553242489386360743101707537864581286473897063511148733905700230139351676643085315098584657584256905647405814564431697477202249692545291368314863313380333386464621517937213463700813678052143097421664962706577009167837933451043302540136707398524459885195746501284243152035493367491750049266992970795510664417035136759991244242680415840361171808617711881982721159132710883265235326249955035528337000381026156375423718936197664064979136547136763887995261613321453977968652278769418853221431989964019379169782403046637144102452537922517388283653406604864814700326016586013925198803388572457841321984100853040337609176935613314449866255820927756811234749186067236592528300966935696748166601914554505358990688000339465573906840175863933578404076413515736388718139999428205466645182096281359192424018558885863950697113846283787630941650512348748120761587836935057027346877308784562790998801388702843204450641003831936293510405157099830979628959637722519237454804266002242071409915411415826782418541894863342884222942640950093949623603629731257203868510436136841071184209276526206818825595674494795061876920953366589190359181464275732324352495613636703860352445999523198166982720327742433606192729769211682199368878973221617472418221114260828383620989238186918976337884924892695610500926267154507494736578218334097721478342147516782033089873457971673974266474306347682364744769061465194230477006869909690303411098087670266966373868398233211565371219273683903462803075220432768391732120268921340856803617215138024907512380848416775802707893859624194872724368187016993018992349223318006353952624294422260438057871762543073679066082404815991028988394289123626718661555788521563636289971760692092623287452603832917729209185780389174175425804968561122783631596731046066631714201344594123257701813131715055972494025695858687254629066762788303532203535199722787859054712057139891882066692531993646437894685194836616705776867626868862182085782317630621698075522661909069329332463273037811700888256577302281386164914124618749966973817062011632838947119156333099502713389624192329445571015722139266617721347517981454955625477972018032242534391326713472537361211221572363528227647583572002035679391172804340063173058950000333388539430852173094275194785187048382427820817538391188521253306748879618338725751000144767089393986392458743534022820869855186632295684552740688259007559248264517588856788601158057241412654243456405343582734281917923619254285545271748519796293815565829898746854703905213340335388784728805385920385769358241992101582473395460731288555659320820597672533681967055393668319798785447742025277650335482840970812572379364326526175185657343190579967502577569803298455617819493556647162434992642243158084115787647797394167909811950221883109106766230084548596363740358650185433845930309648273730305144531589570985315056417744477742710747706226402727707282292309172242757764848542596617098640790942876035631283769275618137856603854172032733708788387622194652959678842229308603571967168965781051983314993629420100811658501158972679755064651373207178325460993910205074311917459976411342429146100563139441122752996711102455102192759905611960459516183893263885597957368174642999326407337337216324522224969090866848597546528039925943917339356634602876582864464538412941897876443523887970315893498709666098135583832195305230177574242695683634853744497002677010269399940784669175617177647674037465462165079777017967488709071247674436453946552840315968215062914203329917332884216299633569222843442373690515507426220282869578500372421124756677686071925631156548360490152684405145753543398333675224061809220838428193160034767707868430777266955624607164468716791383616631322254626022496681762289377458346667488317921319572141355548403524901397741724831189987250496865053572474835865326596657962531200996006749548924703049918590635577869587839942466855212762867460079065370600501600412834577732264742471414750601602283577647731738579187196947159985477889735648150197018174350208485873402759289498872249245326212180338942681389853102782124007117463101549379665305415182263586070253987193371912464783727871011823686606933172736331205878211118761309168378537789157263824681871023487316734875146311515108608829465094139450796422071727307723930526134587269092900791945242309161275470767618282126441883285885351300603266980946018743671750764462677489440055528098808427849287273748366676887499322026607969298963807786385990791293554676138217386340164525241005550901235594519395686721237674594616765716269090228443532674196437368776552221795377759660143265760837911179322052430999494378703469802890664436948314220187923323092850842034515668125596115021639365989797820600731233606511658897195869797832539151523876648658656113667407173251163081981450506257242758000067271168261150668249328087869877691657202264959146747505061452870235324193736113685270028332462005039928440360228178285633515142335194395073594191436553659384783674756308007428162143956016743821246342818744966940943122125240237220171184240631427904533118537923631469874675914815723992852731758956734553950976907816683192037648302947582307378207032626707257052678102930192604052464301089603414508175427681423967746500839790447068500971577714878845712037377669235794274770034933348093967644410734893872149341931386487181815532345409552532149360018958045347010454580179919326227625811560347409403313190231121098274676321286375903635479706881770129508742642090704492781229959023876918482437309185604230796167940543883638355841004410965634392124951533293376619647401741356848159735156542992098947575219787563555430817515718906723374380841428455583976122390026535110693091788394026526233664402243873821084311259758740210754109993418636825773116461816167937747487329532597059809341663640111583577205590244987752132166349078251203442685622389035733245801331999367661286578030700088020783271657875234996460074238466742354309179675201517326914918862220798901897413353752224811685725842825580543250501013090354785206373020473911307692056345210169404653986819003769911369319270906732169038892470760220635516332251778239004382247644974821717381425274139078188413759834761658072060008249001517198684264823076119262128839194518757786075767809271581386857097310952723459910644954977742345983477446866664330822431476003942686136040747300812213349919056422247267715725493481554387581174294949130610179410774698782951988448059954922400392006449592092570743420925116249635916626515851132120535224833683664075214474875425163897184740058435700583245150179676344603364459687441763654869559111515204508107553295393828142242758472226839843224768088764699094561940185099089872242291579492878372247363798583924326962980705393673259670737306373219867703248733868110802837014171901875689612155089451100868489739164759354491718812096505136717914056786678549613236698852222174723732408616799466523200243812009805149748375218769219294148347982842853928562138660848778660430807655768105300259563884242510711121723247776916070278964795283295562407268954855949769032536475698326911480474443440180139079129304003125021187087388276809323852156980749879983410802290199333986496543220591596227190460054658370254490464109381123548550198042187153572449101806547239985061651329573858703220301079486267876096511407922290867241564148999722678469713254564774335944438321458270089041692507806664196704467379631056958458861200947654523747383091991173919017479473363451855189321572297036520464449657864716068080677274500364159510608067266060414806953944909463299052563449748605984177883682183260400620773451334089338771281914953277313798109061751458200779584374255942037909475317946546939965492577276479201755078817969746475707792685744376464522505854309210730490458925858287710103848261823054641265201639985765167706873973434498789236397547554563421635065604252151746671914596555782895003248130882718662365922998453055669862269252601600169689422312461838290714064975329000809789217649406849160823165854103569385920066076078035609441041794668577572889400911846476115952289429582623338650086240754389425782335079948867127684055355057326706965729606700619758394536918107292405749869724578006841545950321584461297699844860552892458079176024354797580835638663603090729156345100136620237276155292222579985125753154444666877921819195172412570878403352936827670158297629953982018119480116761164252005721386343137941247398897902010247660041061342567904657202983959733744959454666112960010464312738391457182738813008380135531336929523369129521800188761361412377383633207026095807521022171247478514843299521992137244795654329638219966840026898043334249858186134894784660278685666768416344397581545361166907052781525018825878748675995591522140113340096910105931577414138652251055268981442203454641431111223291074044620142333771841804576080751745341378161513029359818649513761622241799766163484063157324655933026769415916908964906573046110313598849815157982502845794182794335379124899151347212247555085332295815639027300455430919774089024182350790231516078999758731423079029484151142730130263237272936741904531628003282037306279876162227676441159017619380286644453714136440316574416083814503560973743389197357416472893016758768046892100139608808231243791662995918561005599967652730143670417167101846925012399111023282126792415068993374259279885511507887644796631230505547427098468636306860831742779939928881382462688718102188729873534881039697212782758279216706957696356780612346902282448998980901465928360219092514782800290877909242275486050207592590283381502794482120979813956651414046607826069711054701063081634264145043445015599485704175297534335953373434837588958290232752315943786025381041921165790604381087739586013582743686478507280729783786844072656766931258411890787318592744575793521314826024238250774777320669186906426499137232242097212173620714761390614142588028941165496858019782341237908069221842826537298004396713490091540447645038346831523663404051968235349836056460127625551119149136814601268248338306138449794438655714513513124079678731767431628899676225347168750817024846081645506932937382532571397468446541850434150521263835053765307735322917813179916898687214159183900324992068804456605316916200440782906551494167744663486422827993212817314808283980953743908738313140215648573318440229081074470733701340394396859543013787260743400016656540660856592328279005771282110820096596043999568278598293821517759345581118637619280997026188492984989933861806537179110597828175983331184796084360040795863287595413130494036043733525565124117877145744500152299592644388708726671377357193529176518601445804623787396823422580045583599965056582914776911548255624025748049231280738168717136233871607688382535284316396723454903848302304655943810354095296993117323989038198344203376034563364821150431267198858744535991105496600352940914272379424604389564500152630216299696251441056417704580885350794673884412666273064567584430115002999720721108059292183820147362887529149011098730819322711718481878745755934080965681752089391353056434086512320898403458021819112045690201549810661812507694906126123515105525166448663097434819501006645689631584635789328872111911028567958222468718298371426214883275220438613384127643143514250647483473051424224436576180345892690212436959035259693803811316446414293463119088335741129233075315719196787586761343417217068346983857689300860050162488974610683638696661265820219437868684354492039551470308570971716726766532707333632016011668155750654884591088834535982688577000712018822281776424234749244968797515664314431818623000035715984942778480217215817221021945775857185979598611897929655097981747994540645796138457247278100689423695328544038361792379823948912506538733206998627927763082954920052147863601397552582783882392519859684780044093167324246056191653855904291746845762351295182378483304158163779936128934912838110614987716938575840595912585746104121887568542242177648107648057919816035725170355217889990565947522774119590631170869622352410312654626790207672495799855452191293223204854298330248181620210883375661936996510129243922115717751666646891271183097467310056028972351044437991463750259590412378899934997550926787017944502021990756992658882643219685209330830809783725784475934052588897907100039115040032926529127504748806444972799763241291653358183076551742856182456115145822111251885381839826669255353510665736064018210732585639213182511731922191700864423417886735257287950239035844576883392833952094469702555530320653961095088120932690671112653335716751961802558191267514597642951233370882833521845136469508404947237752067507636779958464176079343252798802161583100753334192231968324066592138198154688582919682318061190106202160591687919939303682991079845539207162583237064162523548731880516852003497224683174865406143639372164983479484800952188810192263047150332055052497723558941031651252230986551134677102181611611502718885690397345093344520152798429083813029174597526329332730487300684864874713865517614663121252335642241662664395548468269045211883803855792298390887136785375344343444658374407294777609868858172615364535873332273805750001226288451746647351598870666633471805442497510304807196657673655299081732321604869839323897613180814242548239464304980076985193971836998603027663308619335830106604170739460232190212081994342923933551422109403631369437034491749300946131916916191244557457310986121662667320816812011701367575869433631324151891444049402224767172925543380924117670802973108563045567632021198079414294133066599181293627013878911128678781868492546719302383624946038516223628247863041730253206241185351564215016830826673264875804567521316308026068024255112411141667690970887791292387574766320988322013397265730813835113945185233670912903537743099901215694533949371166370595316232452751955920385789896801448464284221025077958128973775515558351734410391205999874428333938564389006620389626710926753321730005629115298300072219145673174018847693700004325808263788446475253717539570616205532884194068298935527822915909305649131013185898953822565832267396331447327432123115267315610905150919834775946105383493514749282991319946145279530481320442883467326450205644006927967660982787191456641272370848799993705590805368651385857020153912727293680553799688448517828682816592890721767557696425646608407756661442592125540874727660307993593937965771081414438892421036042031141256194191274959210659032965552861536435377813031700279179126409882212158012013692059750559677019084760300544113601511447671769399818243981882558544231847652465743433760229766377666536898557325111302430680362080805330049347542851304970985651220500492928717693962322677761105062169674462898174641418704349042507918863332749814402978515791084695261282162330431948901535416761181684962323187840900059377772878825974484051355936022904906529913078556853082268179421326510782275100024022310836153299419378283432078674561484883282886895192958802174497062375457153073154573589286672049857389195848958446801695121163156853425228742437129232634746788992041736532799222312389609448066469861660273348624258738787233151017668566910202115558581423748626262804402128974437689658488429416455697559333684768629237017714583668567158949232853573780352277245472918895694950201720782661901011307510882189117822940313887357806570977234201961964736263573236948596507229899801730925870407786689946717026972566695019788736957600093433964444490132272643515926486078289544421519776964655636705054229316928830755279552141058217872464037498907858691368805084828589219763932294966361224973101503387651207604606229352657352404868140963280481274300056769496198652796432280021251526338380116348849195384068008118315890583713132046769593292796544574940828680084691895652775482972084816740566286913924336080834575664401156984564410666451933108521215697861227834221954815378419639724007223172588867014116787043423652384836158593823786022038682599191150853609511333443534311909276065340092113808914699710868815438506070719551210854540839799610256801580209580433576576703322278393616614453797956348331568561159399220829862640143637600756738468760214973001414528653587017134841096277973519211859723040757145546002543976747812644310881027076445927633664988320377351522570327049310067380004732240625686477441370315033228480557483276869023652213041911472579965157833887291643235666019092217583340203217940766775013611353102545360641761910990450632729692868231087564393809040724109976549091062938981614951739979292462661194081776139119604149473645457139486741639339298337006897018109034078631082264885896584640468751587813582747115583256841981933411147693718569937362822026625543305497971980369967387445267624291109748415057110913174469197323999930548961230299880657993276073858898844116805914530966241993173670216962075376035948841203536125883778441506244473314142662810866049001219610585933153401387790697363690144951371052206476318529924617967556804624039580601706502923225336994905052613616253449777522456784667598180351048209197117910437353490198496077824776889105402128651123401163611153440240370962422654905175424753389111798044418298618275472565736498910910775238540282867336081036708313346128771559758663945737341472377531822332586104117837920320941709846256097640031622097655003911268660569676314099566735793573538805062022234291105110372060670233201831541434530840769946190255430460415217954047101913776981690987139060841879680793296332267129600233516880722369990916692040311052995288830309703423783279165506717050285618519245316385796481581390948564675938860539550148269416401406462757718345330240413678137236083548059932814528818725489286110571269228235894140331418918589798832124488965348434147033963505830613477550999737554119344973308736096465726112285889239642786528499802326347209428248672067855234728058905156107927848556668943926814607469666881102942181467012393737217385547041644017467608396292814581903629623634867673566892255927856824810996949405037686004094846262217630303392787905299678590158576901084431362994169774698765649214915131884396936017520325895745589152051211431139433008138815787496310601404005260332736172348972342054871129368211125023950837229477315842195414261826200381827816560783577920654349533330159168404541890877985510077436250464664056058887283897648866602408323184105095297435488556947592413785057884343911885148378346869518457062673813570165640076197050485426286791646881941007252055121950806423177371690922309413370770622503720775202304472393713152870446939710851376075023738910144800354888759252327098937017342152339198193773155156337913945201687197669070772274203413477322465655747009707518534781652567713524788061244333179621704012972964509504985050181767898072643543465932921293958175500912926957350919653112657954959589511571077822478846588921293601856149812645920383756329021027720949168939642140921862078464036735948461080250678175978392572412827664844245201503841075698962264091443653233053903750009466552810502379085380985126189808640918321253241609660353982907380700988550572656842771535866251049612306352601421511871808585916052920511622691989373682988964003303356784260721664784259524291446991039778201124293458306085404966291934916151572611139302062831760080791041347288519390711724444364163211879757023233484140091329243756762259004072831183974235015548616284065653045633654567991312408401645548687469317539529740641101235921586167992709571038089432172736758703675494710581173783112990269401698450804213661078504723487998028429435321548667324524186642841449268329011785847206678145907198704446480847157000502268964628502604782439316340774067148513108514815171206973104770070174251295272525553508895475138238068900184783451434815102002396128206141143798734187725948299942225262740022763131366531625658424693541989312365445815662857812982215315554933263923979167792226130205132787109348541172246164394598881672877732409862705438437637228882426160998178483885749567180568577002924663950674965817261460498115821103704546286682148416791806229604645124200572855736901173321733224584652386408215303598465383968035063449690619689335792695078319101996395315681626459364213764070381817116625727271642704918364465644364639417105514868463364349333356850070816160451244831452041296912179902119648181835872206289721339385596231403070119619386532125495806452795275905005171981993242178052286342447844378259826682454692816084814238150668522793749280952743991212284291266377786279803239135655847890822512760295036629377239345732319565904015586104768852010653838988576774685057557167010980966656479105642294370415973413384660763883295649697075183961353426672371179506699956959574543595566232730082344771649832662731516323099540463160375919525181123247326909953105246327267571216955165805559919013126009987158626445289677383811333454242887141040655069754913020525666141190439169944046315962228815677872470160582260315132368697128864983610874447532883883739625351724405725167858343773415322866910887857209735130107193027107826876663611952567944349495798396316355492418920048115578139030950279340992069402720693774805909892412321596388319067735214161789223657160167223740505596287242993214648703417985282229280329564327547203292565280084894634078580554738756939927538857654302290382704692369144777528944745918079658987214932166598015327022590301770916654158761705146708854360758504476021004020520699962492178454385589373824575050383879631665607169465920736694880055618646057223623724102307523976524888066833464048589694340643375700089172836420916382893148407831125776168226804008027332754900223480217012646351271281223479080435978536574364397884939945829330259915980762798205990808120965760384140036092838119260474767031490865355845442264730953375003849665893004059442577710948280802514682021232591889559614182511272160273982609262019749570410376370041904765107817904244338358151363600803143071617245787118708932969731313042158908551928645339571452089746503308661367395985747058328822909088466710473315783966004765958889714557522191831999321954482096447497199847738423244920218607670864371124217241337854385522583242467890697701061439651891210667952481320997945722525767008655383627479046818955806844462809642687002468372885975898336072910756001329254933220301040221979608345070014166248920120890846204601540426888449545692593770034361227504914805523905600132037960424911004220247217082919256421594701504027228737570195061935391069731276526111780682846291883083851336765760753028460881356739561560018548714837169613052773620337076224268249171668400155715329920476679378994473223164224452824339337963558290520389164410094555587168930224479857031346055917253966168891684014138849955039854870381201632843493303890043653066351776650103003741537056036983613141821445776617166667545947979316353774907121958022922504305745231634165499701763111907190477639087805746070563436981356179250306019128503509127667367009415990081651098344413352095489503511565178698672318768201078198011551336631622894021330838486203106996533496443888392322383249972279036992365269952089581203090577014408784651728699201310938029136707410319530931003653998188986627474662785699296978944851843704729121638410466111136102076362764207048972002634913564040381674668555467010440429987850254394954955224715234620956811555813973245758264008887577181151009376932091726033050845710931239412979422039369491999618747868123989498632637289051160459430566323837665870113348337552012092122256255198582021726134830594843231894699885137109932140525166298565673084151383209586491590977634373047273005969756486099790667422841291711246826729327071293311822962226150848123299593156774393333727629710785380623555246364141606902111403921994933083718066302681000564690787957570897216832010809989806399672401805093323932351693993636407933562319942870722054728113671883134696730395079431481426527517823746654521058941330542048226546083489336652157348889561173608205479491402329471156139883215326019572227722404280348738768662484652695155323138259837709370870541354643704418608395499540427403329075497831667489406946139609637974601400341856852532052796183183256868317733861961399735504001159279763379039309393256421941509323329790805439390756825778739026595035984783518290305266713613230122802898085466095603418180625752279023798156721654374648212364363799307296085838923147123230226759180986844895222704174398904742667004692553586737171195479627964142451386331674842868566013518608119589935948410694796698865137183806684198513600844149744634437857171251211076619796978214142394933938891270479076201013313969615709441234640116831507105711678647124230537685735042680511783584564570203505345077395078188822573356672455562372097664454788623182057385565505713209522759467064933532999230528503513470654790898252985266974796148385001426316482399868593827215380410390505636220728028724374766089238861289369613093565967553514633410760833212150593847531868040578437069904024558125949480392272521060226111491760930113358885191554474202233475695261178776481085284858462527497746056317391297297888878501544278383129814280983700153009123407643480151293298598720891133105669467149995165672515708171502076626159739459523948241993374248373933553870022883417667306029670786340808437723240341474589564976246560577531791860464453899627671977574310020409180383388727829272241716319860777683883575064007893286360551937610211266470454634729621505166894324445143881285130850598637892996358810093810865048499468106696545575594835083800067998623958926080839089691253641359237756762004025738995612123558358508542758000840353313877946938174008135386950114237707847940089699395914825327497778055120298987890994140281506770874438545963128164116719391150594313988775372613235359411736197485332237729891903812048942896463047113855334550030026661972183096884831867486774963664580690160028896784085708413824324456806181389320461827238770420612463412511615079195300910154639581054936613554495537903823292123838642750942590324506671474216949721310293979667846151946633289366071322952295825525766695491992290673615608781866117570239123407058690643071371959563252286573951904507163427188981533775066472296669605021433041019689959025879948942268405541077953592074610808180987348344711450233112081071679291866756282690306164047568267325689469288700486609940316403378444612158400907032498281379255879271114193830193637735679037770374398295423559677728913278616927256997681931175561023435307282929743117762913668844418243443301850592926617109616862690565651217876488305341284340518120674358085109737120399576352633596209938140698359843904579168792828022600854245388505338232592669476645606808657386824287168913113268428882609636314799505802915637976020809123904157330388275562694282670542261626353858349380944548734859116916378303533744359038781965080025467988385371443715379751688396576578324420110081645168939802759466390554763083600451040854670029612082725597919408990850679614784356174806519477512521141788384243048507911093075577823857475547695366403962896603902012207992829824798725797913197908757337704175451780671042377375440025459023455058827223763720710313654123730446276232082826321172767669853331186143854415667652835825255580011247337479833120067169376790295953750341376795722890374131895616853257335676690474010898237384868088232622197040334982175481697672386284976147963338652888002773310143673859199676780343040977521469557785589598777265864471788507339262104940901701237418052120507022118976647885855868338703177648290052650519219742770789031418829595471810774234444180861813549756665566765544606784915116296609833525508788020604436807135939201387034307614877899632802070283195639815744942900711289997813871103652483708763172318564037807113235070604854618179142087450724744685470150221832926446672863427424511764311272511860047986560424135354703864679226768814836429880447853173288135437513238437974887171036745791244026646070126155730342242168267955506253066191297138622331299858229209765576947479818388051422147121546791232772784715009118854535071841327807616661818237352068882492864041413536257474531168064091644448155188018455696110651485659514592164221070854841176729573765599603301689039634469826371222519086074027903350274521546303155035456696255130668128304822057299998722035611900503488215852309578141742135770124678999032451256608106313406872514744123408811020783700543791321018517947263660620640356989853092193342402043619569375431432138388054895683740109928803676507041084034483834437972435385380851520190900661043282788891418234636354500053952853998063761487682118924653210356047800161111484825087748184236291005634159342583334440456277285352599222710381902012008677424567730446123383472412503355001381716033651725588115441591607456796667377523193332638259502242220432493807266962795690465126479075207518050449586076117451941606736250163974720508815383437575435978279596398108096632404589049183100781714718213298516412792043281153931097900976023767197465168505984633712997728345885493674335407869615626022965520570251283418611546355402737577046135670886837674924057864461361622017390141288518815127934746835862214204048853567297493179530510869524484784376118182303288400703542500347915609793642755135941054233630772865388096578866035842450123911563179099953633603897105064975032150680087226037776277038819518634594014025348616270204179040343267716038779565283864039531842830222497903867474391739899346417628132273272303481325701343159675114236881782106645632252337796249267181675671873014682436581026077380106046133661895564948680734532957283634860344929724840482893473654309578707212490165265861608073283443740991853587707417142512382691251323809546872753494771142741107442213489570152802228989440701449725906589611223020527167980624048678506740301181316080612366918660105053510637402443974457039682235295525865240651179440667662839622313464860836243862966393356781859197572196255036697728047036374096620347910856726253100411124634681127469100657672198006564477090111732267380572775188869219193016185423951398764982497384564552438827358241408424029016188324799011816771162408346352663154716560269607571170138793771347330252398586685154131985613410917692516524183219685641308235650016851593936497280499372422659463754244130524248053785785158133435196654911053624084393709169719437086200263976213535407804722112924284531703094811592259691939952266603016237468867961593002068146188079136713287375335241696134811627401035970918375319534418628426349616277687198112906208284753531956088968379323525796577524186364188535167789021693894067099718813835874748899496168185502493284837272168629090289145687842290607253815598066541353366276393340100110249200809315032443570490827127362878964306944707115066566610880841199849202946863407774873352791641646367347446671398226156047408421604094020059100272006557897482827192752730239483915275883144477975067647334698122882305127305675701763639743364312621281770160730920905136313570366579948734098113332433918026333802294756733837526031530131235725566770966726701801633153550151442849432455394436776025615828173172399667217000292117763500831023767881112400749490747749366801431409494284642649143087686201543590958689341998898774221784492546896961727147784624931823525980455177282429659994414259521101414796649735443990346776461759183466820122012122333580499051575934218757717438851103454625646904314168760179413363472223392337871930295961617706560176492370074205451556347100624800471674457849818363102051963227592991334846267943197586052658429218150957202309548265037676029111916700165042209221003750677798239917132300961303069995225923312205602018837841576390133092381038401005997550653217675400947876580585346335501596001287012973815612927963198283848560285993203797470837119287977344073008675724382116103116017208584183807006761814504425867397749699563609709630334828281133406291765693648947908623496733023077492091072043278363874384360611349081969365476301472725980637817530291439262461540192312198337084303954394897485500902851356745101043819187067614795071402182640264828646549134518227816003014017431787719638363317930728274994294079891250179482963704834231652135782438949558799274928406406380314374679222786891641550609793918495317843047077136490822434324531207820543078393793570946615254689059185021364604386892093178289424008554593397243587538535630219428470195946081522690926575787367872416539681959917135010877157123048305636782748196644336520769712793317550908843666952683246041096656582291203564218281026482679234475505081809228109734439478938902310255744845883132983026316926130058324644710127503822973995425374579407132960099992724817715092030212276011590786489061572869334419681181161028711911083027185006200310911919285996300121824916027537068904868936026932339734348334307389278860131489044211450371574866960699701784895509689866506796724667255705158923981770736726644112017805481801590293705606856299307305938020670262831906634139535674319107295597129077449907075429806803949576475985539342656018710124139926711536422859982127212118652799152167126753338657334584013838253099929200784677999114145952113185152554501424806134868650798611823102656505092811379033400765334997263211373300877144645755503457570976740737133824461748379009662038703561779972725246679915204446846220791683076724160866048326090843249103351291591958576324213880475515228410359914794702127173487762062751413203147758319606528237637768748324871280871505485939280011939181786984324465957294107975366758579909286238052644000452592730539429915520353842603700784182847593721412712655315933017013098904155900464310937120352459791520335389767733021249190854234118883018203798267943058130491519959764244322722096849293011667852758865248013047414939106869019188982698390777474858328574909432956427336526618378492903850474763066931143141346796239160569807322680329737571576454085418207673010348007317298301111500458910541466268295715476859274911903050280226463744896274693127038416287328940188690128152107277580451465891003680650934808010634674023996590046933052052130611353285737040634138629563826235702136686720971428197310866440677287346401188081404416099311905740840663856833144877623394628753420143058979865522470210267314804940750934832721267746779845415338320998896554206896840860857847016944579995217050914500619348687884741794472118038929344343593733613755738748114120752052100473784030079625139737801208356130704483677929832803127826031350742063016788749462939969462690267518106661358288718052786247581989269122684713687774946405765227065658087021078601147947628788537032126228192411324412544778310364846186921095131635857365115201349626796351379085504090364059778865640450073159784485130255016179846836570566165814590544572958841132749204394045455488991948001395071074147124581422204968855249953218501197441532167378309100313478145247615729444472977338092911956639306172569089343894781204235445428845523215365225545977657968689684100903787436254657303479694102694641012930952189155860491134686129922043515589801791829798370159095418910505992847235762320228817474197063646206634678361994587757647708903295712425858398656375203024565205172195413941236517841708765214584271456782338877804458647873901760394034451204979518219614109831052241348340751603574564842410732706619921579476716347840352820476934927332924316719461058939865559606916293935426026860720965251367964731998165665982288611457464251597942914962725983953109019929550239587580060230414999986520065624731476536189455444116022005871203802539566410426804586120116706114420382847390139716617754188957511427514395173239151560430554269780337628251030525332066218131362480804048533972407967760452434301432139728087975069963872023203889906165443904466672645154789458324461559202093465156958445102275118129584208335469103290825110444369232885384484543873271717531784343772443517036447720535039019612580793982141124618907711734146732118010911113140605432632003981667273307985696521610654440427048370680224127827646903325207598548658425135491184335774813326771939832435656464103742239103520818064956335438436347513180510368903430263090999800441143943261009005640370494492825936701228496871954008612514189983892695173578323952446095428586574930366183039308119423835609322839114911301352503746575713282428900622488658399878016603439971101043511501390560738926409261623896229514745885099537533157316136148138287736026668876315246572662197066629040669299361500172563761869352618702974582440584025697689257216989621422015001535696266594029674352066772911347686375468494277497544866031035893205929046166726669597396815902531009306142154456922284396336296352788809291097171425100784018903615686120422137857166580827406227408595256031973704024557133037684199182750763397986302851711000222981694464436064822828946090115005167036967763049224064415413688067219606685040601908664821442293641122486202302025198556538391099815205955117717195820785363734708016226526326079364751163116109471572526452531099167230851411179284833225771873808265535890517584217842763880575019037743193911171519452875192638316958567986439555688076890313353061250415141773200050298487186341270467440732854749652093130127954141074741400499530871740708637478167179803309733534404780812682670893981566544475004523529265072396743631051009381054234588354488507848236868543911414021244945055543752120753974846754431672625799801150804706543466244354936273188823086626060497270041726135234754932785744917823000032773857309275258160859456711838209823221500101676273013576865678004725261745063637921154879517832778149594034640026919667676365260424391212586274317215698335223959356038400231426567762905739714012684422957436068357987992138674137770928770210321860669329721827841520805356902504310097470833790009416656418003043331720223890100867902380273329274591486960536263554142575658875509290958454334063603177907336460697940938438597342120240484780983524095149632345243688646299238481791418325274131807703991516329754435776947039825804556131103137365408178532725656046725240973852025876930374918100564865719690036959597810476028881197177394282949952405666865953798854849272227894102804585110174476337435985004652930578939795977703661419226773573510915693039888054748252550183434358547696335916049353287420398943841124394336743867972706181998950308506112898877910334305895407635422840210123115143951955562801770566290196886163720969015057004271325739363634478134680833010697113326858937183222280440500741183723828071131040397280997961167239795785290363816484754781568859930192580656576325227333360334023040735761084812835854003575799089865868819160595842527042077495620591099177827102593013025282879764156243716253267367956703378620057933516239740313303914266421161590246562185390078652499298029960460105257482273352128037940459093554511453599509293244695759668505358461205776339098742675027115800680767776981561495811338929890976122808077911709288121944618016603640770632569227009012695850985435984373127429432653520771777036898944318820082763919199145727916470868370583398331746996745172177328262845014901845487042021745967156726079222118522837179466791003642909298483175849519642600842276500183194411488919695786071486006423054622957055136387915405141854666194341158340062336509998069208754478383656182490172289594056392309178985494159962882329324485928436998939498702770686604621091900045340994218582864158922463519404848157123714534081930896743642314902200533780393452546468768424810430786858927073797152148846746783954274833856729001824568699355125823061099079788792349044595388319827167369674031325052524855299583431051372652293907717819310948642750384788972533949525835090502160507203604495227411803470623815812586947858168854971971479573026656506565872962312955236199924124185462514740846232297892485013919496777411530789235264795773247290995151733914435689583183275188379298583354593571870562281503773628556959696815510820920069904572753234338479717100871755879605221862220628631408798488284560427239180925937609846794864416071505722620561115640124007357672052130581519051549634037642248103909061958299436947243088605946640278242964170572140980310261755879118380618180178881667542262442316184133851028180770791054655234515909878662530402961992879757729763009770028912801684219816777247555771928722985537697911941501524760937820804730641120324137946655888378229686420464172787171536176401744614672474162326718603339178830236495137587031474479150341530668668875690636250229893680503090870453545799688935714717318394940996660432976350959783994255363694828323166588604184189828889171916850138790037363028653603672384305398775430230735766515517432351043852230242097175473500888040518867528149258510986547774723895900260321409718251743874892455925445827866360827057078658574298499994845367940334565494554926882756588268882927977530694388311297592876660998594674591414822403307526233276363259009994637607887349400044402338896131747036224549349705015814373953948914831482530853740991024560950227122991778665408815064322043382116383551463774871295659737170104565378890456506763281707890727090132301612408471970345842171267303553909707910076763034544689298653057653276838010579492513368074616181218294447118082208027873817796991305519988859061155235419033201874512011150909974244986542884937912132533946255478973843168729087790787231903170352470343734723026571752428897522764150519279499594103471282941385066936551621363585455315375914977102185154526360704308674009009053165431166491076726406305851195056920802472141516768478705888117564436942224768006759341537065864521632039818617313930871923928383739802896832478328969164919296893701229903727674397404070483433003902929401957223461343533695292559135328777205977647417282648022211828357568460380668306435332781929984315631247695452888661350801506904576556071187550021401470869292652803074978613528848383911081478497735653344130477430226459733667457009026141099940717211397007546320887116945443417051387384275004797994855725769319326361494617930143529853956569764288327070400105400890096292915619509438827114135996207235287525166774687443398120836950225778238988766854364841721648237698622004621103883751502824105635979540227550999708468285872387023353550615879240335936404172319714539790355045945935804267340150815534805685161919307622946532185679012318060679947824090838957052110212366331913998971559722351510350753858841051220362849313211063360317516001228960557758945168828652554331088356064393729960778006078721763623800277820466271123912422596279624745966438062074449847957126081905448624297163573667050568033860698381979616664895459100320993862449911996394681675823738223139577740681684194685954091269485238031297279004722851867940975640394234582885254930684252592196261039015222279719902500107463292502471739618305177150751837357986598550113828614460107604250095780065667817215234902345129644982475816737724412373437168682424306321585935600911704392184190288325438410300205363922513565574838476476115142551933871068933832651741458169774444419452064947375035281975743091926801616834712026805278530126270131054609624079041104845876200921500077728067186584616416908305726607359097318757920979239543324793750748046968712248639547574719236158473422844255498332496127923964213716869725697391616888178749223395339327503155728885061409455697392801725414919847269859261241759664021562254134562250731734501657316779233107513946489059121024542907765174569545263045006339370566674535946249463362482980937410997217803240391271921578366558506910642147075453338900361342376807164346180414456205885865310071636528194067072736342164495946907777295725168708392674612565888524149111564334687382892882763595369149035836593227418848162634722132897836728303454784612702442277481293400587391062803654348654886560835167162441331853542424373375912495797406634283941299919640915106550744367831415499998790182668195655564068913756764203900187167852733649003481300743715072754307711236500235435594769597243336180752386546916520327493806932423693936217526854824976522948884957920181597167854638461591484505759935605748665695967391060266680961341848417644837662048738000882167216175342519533958159223690796455368578609961100513053792697605591709431225720104094196708381775410061309898612418214513996539265839643219294928262841553718838543457083779441488304544908616279174552478541624409333211228451532588193525713504320368996930273613480167175994863811131427368434996921344105765883712738151913881845609216910337241318354864234087512714472762699335108093899171162120315282465172445256919692387265700236228086457450305493456879648902686993043419230661316497533944833881776548909940912779133156997258194282583972703252516678306518179403195979669967124321829990874070741840169139075177733597809378000941130819872415821219766357393459418953888509686006020394423622350929966112907108792972091485874092988637620895828605857877883315946416855708122519656395034500109969033552243852524250414426108975478800647998903038090864404561804689084913615264300642703602235240515702786319139415358532528826183010361777471946134047971301807006835849810516795608244257038757383348653493917027537508307308608434658156640389551830903156892315866565450000308784706027398824688671663643518993452251066989309249570771768348070937610116636994942309009202967345457278477684779971261438950100537207405545513419532323247264204858432266537983853362190099648328702381961065554591803083818373189078218244628236806370400346991619554514195539719408528532474276436516347410678444453543696494850750172942643714771032226568443479491607993913836987993464456190526083620360221051653400047547195146414179144973735777546405933437386157471802270148397335248343516984101818140959565145138342235121204460691931713519492012891779501011603552358467001212929700735793719994068530821613245405548187148206633153915768634544642558031646122063189216586084753334597932456545051264920163334280178051451254257164006283324604190844393268686184024172939985147529428364208274122920082223763816774169693120216122074523830229334180472163382638371249838508095356083113694142993706126980601058369264987346621954037322376855059362611082478985528888603719454525368299206803089793712536199222639215308768248314173705583784895143550616087738370103253776256282313759843731671738574411756989333144880069084011239592386876704668626924050142608486020325687550167670024437171372898988145037392266821861118012373066188880076698521607119488563936953372249061017349435418349538256937132908767044006271122885704980445642363173923584852445602760459007165516182332415834909291583376163542498248414557555699251999677571565474824297152823454153208813358231598181844847228523980464889218772983451633052625002335646071154850079465013663425851936138223074844133491311888396811712409534843321290211947212363538139452336788785540066369922880769480253946854571465343727545156396179002966500787692761302366961557610462043496188579587993887440496756054468925219712270185922596700930138195775282199052592278121651150400590646750719356613451958500850139078135149318843865745366306519308074309715968015724813853293440611099754325117756032831264293628972871576845930401700641988767201996495783973010906234120364960458161869552345220157627873673224286878152312302369218000429836584926695612209739478621004152890091180248300319855140847987238126945680707008408018530775592277948199659003572599806899598960727119607696486131802636678732925259340850116697001705691975918708868365602250511587852973788313756017168153713891088643436898926574860160643740077324525535872681245698310547932660352478198926429830849857305505102318941317984428432949699159502737893398021006361977465381666406587162480350922451575571791041327796923962084047236990765929022470711444816997927313128883193124109328253312474875520269752300654423736459436790874523068426295342493269877919280769697626213621369911197319183853034028088483245780830889114798642898477599190611568056260519711859972813968586082147248348039613654463652528534359003690789653416287700286574867630166820496342765083534758943605646525529173189618272443225259469044682806481069192002742810689636041357524075718716217654888617572302679645883709715924217644115426088841345747610958881609630043780857093721025657237999605883651670158153611114346600356510929122714323646887455598741774250847210934267965289925315481402514765212354861067149740857358149005417894758080148494797711359872519967524040861511213098842646819024537488953163461757049106965920038982392654956068746346259770387659578326047157000524024620844150068620884135393313425608250924708119497021767652139421759126444100391238991233219607947722898966448366136237297236152877495365520397073869664719596147623120644777706035157450914132356135254926808092407207109821966544130729876410314718838191044041216337399449756798013856189739475912193951883258950673435675809757121655038139340518937556379113681276160758189848962604761273098103809239375762886237515349518803276650588179526530648825064903100824150083254415093812611555060558405057377783633356367207541441448254299662705051609941803894127982785740292278087569601416901026128357618969003455400144255242684809169832673358039549599954610475815289369739676940196408672498082460289752941129239969778169901674520321016664573209988046827554793061959717245984871660054424964355840501491838109741329722353312259282233985063968634647414567407825049220511138802536698136214171454769146471727566026009309571401136324018830433098190835537614488310075544158941865290377428758472768612069988117637866362128320461750326373959122740973555693887432275967457426806930067277602517845809644413396973499989965220318424205304339641476257554850627496211053545799771640874504171296793705680451481076210083726504405732541658378693933135101842291244254579972725780963375324362252728433162713489794009330161232818465923934479659239233183671904128998456293482719249235749655224357565110919487685704114180517594308141637898147943647937334314630173483174840038821331337282897276791191681453833205396590861590530358780952470237402244530950302432132948019100968604641086948895281349127021525584878733531020261537753297447093961518679387082726312881240680004395051784691722896763040073515048584418111667196419161643307608349768093298612219035911309026358591305221936373713905795382889778968757875092522232511824742967413114420036597622618503136452253816027285116526796495009782667059855008218535224671089656219808969584660975917092995351356756004523405165912823097841026842706621257286234289670082583778884115883901516123607225511290004590595557530088261786445491078519258908662187946539792677689814017628270328121691634938884757624116559956244290028926272937713045862417611261127225936336743969195131990674534150073823616827486755705202817598532340361793382238482205652660038876606575280584560866265065891487894732284082391488230172946623285711287615848582506844732507589842632588111427628398760186654173353986478152819335302005427530813806867304776278765073245418051903793434937290228472768143563385863089376891136935733066065583852536504490231369236465751407671415028947156802036467492559598612868854714127236139461300276024050217775879293570192478823687578363325684270693468432218955278073719705696908849240363625318072091802383107145242011840041870879257538144500546837296205793682057169955752464213843173817820407545433392172141992538900431654929402661403810965696668372740969296062397669276754522145578259153771737890312300929535877122498324528942138159397082901635280786848656321676105011904449087436388453859153728986734706805196900614116870702518141925238615343506862357365796753413981134447493882887719797242921986449344489745087618813885121224224561578318814565106052106765282965345521285885883037577253719681098380520318023103873216486442138777975972093835837016945800631205590389287498702057190346132772462432611689714571357847497698766468001225788786040258447470530568581136976238221052097796411235235484465731506111091780360135977772464001518111051851024558454424010095005173877970541078135457973186686989007999640977593839693439732748672080913858598356253224140797288185112372750235170299563366204925618932557371822015604264121650110078756411304382158670823665302275170701103614543989899432204523120752311170801697134772177981753855613528784540908515126520598368295176126292212459634711583283888407177049509475757204435932929022750056302684381956986069654878612051751650091619931655947322146730667857360564876418812377584906633395107568307969627418881120256747110487029609590530188659528688264827416114729451230288753888553554438620891316166940173297920240053631561304466336151581096708521163303586488962244954323011560235523634340896965564818063338581377352036996150094791436342177212759159744766683122009352322183793329408199719946185431606016348427865069300187768579570565326401414438082380092924891023503064782472661415015978317558416139916996221942060805390542215844088043462876440685905690772003737093682960348966447099532272759737386182563015041736857995058862173312711928608025831944667864935582394830521469161344822198960021431507085335736241503836022913636181564003748579569518658339696079228645524129976484182925252173037807691014826236910600846111557887348156684423872720530247731618859107635217093682145994269223986575734125955969045116720345512307974068428218944898890681350905340413148477692087392407160586557611856383589699216427210203313138774364378906022509277396209417786259628637487005048173463423415510277027658450849888970520418696631372790137149845722344838415536307813040447927127411076337298752653563240785274365512696464674213247550985363282079275836859041606367450801364504650144240327397604691898584935819551753318377044362799384469137866201863057832231231507290541957131258287092327377852367544657601516605824336559271593401288065629555629017959845555500792177487219310606483740792727081427456515791891352711645074742717885107715164638157940643619895575179114003866636518998101656779249711112693864301323072411336033084172311247734610610515975774165370996176793941210490208317905598822674785487826183593527697954054579781303798179205519874665024785278652683611820896613548515142092961996031383358102260721754432183693396241436461054358047581042438978340969779832850759638402916437432710437590300178788321151662063004887806926940101403425397995868652145687619237480635649153461454189042412254199849953505432699961188816276258815618589089053190677814378309394966275462173224229895412145078031997265810710489409778267865290005060115387979691618286995317539486444713411357811814679676562422219863891412610456614154406093844298825070987228885053497207507416936635404107051747940131317458289518019462982909348673840077842654625547759146949429034425165653630353220983045261810660069215023386517882054222189717076877258238886717821146682772438461358273366688717397020777647218817274486396719145109265163773874785639516794454092489879403679162682296841345345027667790056726587310332527874841351048861152473878141548391634150253221495105223823893478463087616006466317024685843697936351662344329974024164260900384623170129627580415336490285211240941925555665531103813623754479554740336798449546566569084889289083107472110188596249302995348752751976275008315597111271801787854960179569402078105881079693713812119170767268949055779138988230376106346852776829449291201641416353571309273790207012324125542484840453634634270484702931782801374069934592938705828575859176978406620946091799813224566782392423963718709992181612828991800301061895870232444572506552954732924498718919878776927553210498917698656770796437147799715360933813770059080945439635172601666779269426207773896682887602894310754314654640138426353827589562951341622506906565210777977461162166997572271832548247813307139599976969705890150964177188900166798306475158401229599648718621952777497793708738437595247910706597782471623156753354922081992596960601739492011477799365739441570716668495753826383068909119618411505668760917675706677323716847393159378394714507790006483220300559019622838408624093536874625014033386825648821044239858415356104169075966013474586602672736470231531158991079745279196588544496474304269748125431054562673518393903463148806492920099863294080175842547856744407452891801438898746160766007834503607442526587729848370919642417289039780926589068928591865602793584037921025283685594952927209180542621804070786010451498183203563690379594881980843978914955586570588608763515903819348809936746651443738030399062215435757844594494055123867089258255052174274329969546725153721214655337161422552124056507152962480740743331012552154136663711220698328056314108844938363225715535735585404553471336431996226419490368463403886691320438197071111159557691512620990979074579214676120945346514329126963503471746454684226390425458547113811077669391420914869136876172962998697276984832569359914305484455084286159718468056933607000122707990456990037466868965081838914797947531989198426728143307112506094806526539959485441807100159830331837538873137480225682210219882556696483403524597119480471765777324476805686724014732309766270615481912920531367547121574547143818376134421417033319410679150893547587755670243163100323882738238622178025688443840106469468715041091781208110919327759274499138576828428711316668314106828137673412019074358568304965327935044907280663729752663164361869177830195537663719602528039551563321460837753227762926400866398577656094586076044194230363121404719248020210160167587373909590305734730406798879683239762691229610757430273459824666214380564200473031711238498956957073399841876710294605284289536129844773898197268065094561179096498964824820644403646487928048708115316832125966966509302518913965277015531929012651420257954519418551182400117858372067723826858936208125454533190930147085158325864727450344638568897382540157574635500270577981746981075948108992666982880088247087245061404904423111623207588144065393411955194716737305152623095410110308464511539219363165178045998071342502192428226580359382896610390499501666506027460569577526463659388715975562271724748803215351447989942658314863621638083140489415258829278608937143952627039438123218352331346179095279879277873547070684420059638449660836315528985772726611494195269561431637367287269633566875406086503232329486226716117114174943143652024881271948093767775693887219358569157606924862601431070065775927999193521396000180359250388601146056972353117608074832336286473537320287990323062165469654914248833836761497285860811813368760030771800961473808364770196527643303276462615823000746037954928122140868220634819945086001444499041143316223139877773901896965459568593225289802595097258106438319377018869511828667029271730671890945306422743091985032575382279748749345772716400403879597015998040410987788440676506783279265799457740547185110146544394392318029310720313750227331890451023385747597716248570815655922134004280603152093873278359327778978845807555817617702826563595740963051749630903282491335329833488278031121116094294795736616839044616968276743654633547152229801263984497669521397485229153983465785209583271225125608666897338214015088625791117549230106784125063161916764338168819455642721430065727805800843910856151990870582998364225887672687320270492801943873492499740217447618105102519573048336115135643384643990533201793377438070457050694052502171368637243038845338526930166525796478214010812603272097327014132583254562768913928687014419354672690500267823060839439515595063411717702210036873851651590513268801257750703308771881308882151784961833722561326156053209882136160517379204505017236249497448870253649041948783743399142952573680574496354876669397409800204437991494431568914674926251932739417000963243174792424541025239172194844273128082384365134389541854723414341352350445028911445661308031309368775836500323598898573783116428436914926645000955173642022493358374704625861827951541556323983641154504163855243934570575762079859181768170679900657919736062956876158879693807937004638710060512199803313629229681592458440183171359588038933379487580680595016755533249457738007861729066226629553201684322553951220878038129976931676354385400465478497939322322112401489300113301405652934429057398946964063784872400431013495611561351652709351100039413264023083802095788504359611542069049103876660871977437591628699998308086224592936042999229984743457633713156619293638519956905492113449682705113626217076043544315397327960094956062017945078600308177463579202249401946593147602728243907865080890489666446437709749368988475008946818518837125221120637157101246782152844573834888630154697608646884375828630886488716413840011321335561536718334263806755717046269382745941578424479067103221956266415328381264833483603423329988685207007057638851191581898925622727418954664142165592960747921390819965646702339585389361498139075482672190184452177674383920169723198876581284674893984303232206985950087220506687625134236966462413536149924386053298601458058012348538255465925629843366971941957093730367527600710304521936702317954094874384172819471371537282610611492890071694382215488051899883762140615912968355382016843924013129035724094599619508185789287325797663789420751146069846610556444302780809728331463011114798697907929960693241142854777636404363108062978239527713611471437011160437738551700858860053748915131889853218883642162474621230034260353431102826372501834315002012334183151652334646331541311762073198291635572390119260919110425495347176848343663149385483128896691117103844311009834207889870901982407183599843615899186021361098073470066573730131657254843075427951778661363073483954025614854262631751140085512157444548705334528695299195026866875746809692563599458654320311876724324639985640189167806025907201170732157892379028974038578127578957606761321574864295804081223880969137587109155275799984409346961199036164956675485725889894720612446813423321897186043020832542669595459920921440805390423148465677039699338477171312068568924852306281489076933127324441346454070861575062179004846729298706980725939638979613706517800720787548681546064007501151439766553047140681372989225870015851696136343649632085667298918755092975067642281855969338124055408649856219110292846419069316546393678210520230629028805354652982604042762595030016899386002712258107578149261261016628528018143057196692313420602001934755259636027234705096047812569008907954608668856638720227894835531921413587798448842999272431376232856312050846110646072168709977959626903072893001561750189660029243910199016344274190132941214135395874896015958242116671034372346510741637761197772330703522935933866919931542820773625262365246890824251191418035406330672605112703263884390616797928654321501205173549300478653883655209411567840843201178795338068354595566074221306013358911510046276842312713469815742081405991624669376580451488374445522160781591647214017219514585082473494674581011651310065095185064496269067052464909631446527118714120972669647829605401987139823969795498571597006052464144303689223141267573127978396839872440003867840609318466930247578406354512191638449442419118239472644851561538250818019359413184250394322880252696519465815722060576814929853033402070169378465848190135704848086086030831810359947953771837958721190445909836611061559302944334585613523148932384621846790884250608840801500516065443400947088797432540344146992107985188463299649144166843854155162862561429644524845628607883533368550305591753930288958488122945441836775153028973552909764681173832733464442403950916763388134143139611055988009721815340885588833407118546395376281102214283464741602729367988124127563411039603859010554591742154829326389970634496697672646380000620631850195496770421926139198787096134179285564708480413350252826097037099413046183694568256889270708600156633836284369537442303464553830072289705350324972088453248864947020021589935613324455189739706521731319170344841315491808465467723612764282146418576479211493860056350056921030591376833187909870633877684417865207073887076877451563104881619337432098853527763263292340327788917062841644090523189893278964487748367196731713635239884815330191055013033902756971107604955927175107230153043825562379234024103294673913009278724625835277716375919086208654343372363553399377305448510009321862106499339065944029675356351272289712057285210060179492864467540595979421571702339761324899711133192298128289874280199577602712667944774363105569461224743166398956752961788228431219977576229576093691239455435072725507643548022884651539059107321891967064157738463378369157862442701879937373337192541833798092474964349003909221107946480602935809610370162664911108023159430272917063594159712587230520893986555862938071559568254115908735016724999237677509451548684272266550163491669559860053717999285737625545516368835528693783668584318328827375657722144220053353920217986209500510841921878059318286017642527407584240188310923433663206089140452209588694311707863479804804110876235795687764830252908711897460706416909617623949093227872732510382722135776185469623937085720384165167067390714815729772160629281555431937676982566820297316179226239768802519859905683779645806444293226078343154601163762621552535145327113746270221335154658567294286044761854785297423976862807431605852413933616227827887721955913970167474057840000658252253167529089797682226654478903222395475335244141530505582089760062724362233344545231183032539372812886799231775376168722644324816534825183809280362171492401292443220685169146639777980613345364070615690373714503661857647934848056592037510301992673941780610262558713166528015020339192652100349745859690542074376940672262540372020862112813565390691030859830525655070680261092442369998355903342872418198298031701790886461662641515389003210680014155215230406481130840759172072311909721462120555006896983009689202938102345607824059672438055956389989160074789617265338946210428691661879388807927864944059289546665127244295819068860800139389060276734400688459733400856262163915633829178768598944704545944494619879702792185436241289030020701884849363194620738903412155795570802248397568654805464223516201385382215605258197243752578425528038485819839477657700292456240669017789685461484478221026413769918790503580229681857917504135674436791967895932617819383357243869141716584369892114932071242773800190239941523069137220259259911784845202820503739938050111335916220686166143882635875252410692933125825893264896710613207854571121330968120663776021383744256790378392071676054904938744241237360301819216531042412377520275956806815005844955262440792652842603307168054775982656686381345869855043029819509251996429894162188541909904799541760293138072985012684658661732437435313235547084605022917194500292834123741685346833948857046407966510233931934454310305317422405191265620590985643391642435279293683328285028559005450953038964339981324450436842599761005742416010962218265054030878369633254311121144619829566759239517947458757070540765083961152782867178248579687961467149730602164927308343508234202275123915631883670985411089647990225049316682476339736742489751434676992954759553815821081255035711066564004299266745738592116959899651371739201129126195898027500635619041337222288301906845539943221040052385644222646961950070696694385195288968736847142732773370978128466062287898012651662220077329238735711278811018181261222283236747541778102977276592004042884462779391134190383070725329197111575971824042520126810293973864886001385760243326316295736660582253399501325093099584285923731664921370279985382263306681928218641489178709906143158115748556600702902798433474697952585872198499807851108277813025068645744598363436097303631955329510861614576828228373059228559990449153557050131992545931783180676045503900741294414494435179325658189400060283810065582712025328444522223363240876232710450174091568822608930760517713733061151337238949052445129231589769254836673260888582161123379754194055062956635519272804435917304960515095744499436974663588355924153503469080380523241151731135250811639270943195624363735049681310344342059476342279075759021422424433383730190870719087959250445535718371818708670516946820480875780362491083902395263676584790361964607086452952184857263694192249558338924461212070070729515613273817042760865567255489264831891146087382676066997291601550076530681410816150658314266610590024249121422143211688234085704523566236361055297805685906041498597122379134160337255182399142101420023539337641890607999352883821081988935996432822557674198942672354257784083354174172657083488695982089634499018177854230858499527321697837293755172769540517195556084322691756603497607098507372041490190413379044577196260341427421610794890872039261541101319976416493111253520588028202818469722856774166160659107061423032574173239633350529311810236712340297951356059387396997123505019004461653953834365369536314069334483271106494913194547745345188571088133981258327007417121120019457029557492497129197374976505820756509340411846190098384312424236586468805162281617596140141482409795215643721604383605054289915504238945180593972838383383682902148143836469817830825618062202368163751062385123682173859870177888742591693423601539844353117719436967401010757494036882576323446045391027620175637296682719337234880759667316287379561101673388702524359877236116556544244838777268138189954845021777817441981477144683867142446713574431586321006871304400655893415573898654092287072859971556566426135209092262045299211926569170188294623805218524210219075662285124410461573923365523410437632361965527236087439021348298813524857558463944572372877188676785712505177535171058216716656082361349181961733079474727375880594709432665661142285987233629998920517178706612315698673030362735329518009053151382703469156654709824656655605120066207672339270728664942051000428171294713395424899521490939115247072579762866473743539906718290616015818345624191279420460692167683195114617942441962923657180703094897415331758324435567106852147596433938565711933015837508493845451694809546589614269086684653518448180143498388775579024646001975657503551079282559706685062895135611729080939069970807789160466322015654830118143610691998422888262732524539285546651902856018205255944950039874579768447547025533812318113758561871165889386331230471127377879784412654826434678676258308594109226164777776822274072506636026600851914727145464823790697978254307446075676895243291463184162005431783789653361715421769909056645154137973179299404051097815492389416855728423472635276909112383521011901861643797934944187116001281365042736530049300702320781008252437785018558533961592787117075561088891866679339641695050483241461142387084070920043486930137639825347194129161201327855312816578198878370388484796134995741664214690521930167582671494793826165077273374550536115482009863935108989671380490564304347093277371186651187893342205801989251896794040833627053631117198818971180191753615624083713213797473330611794383998885768305373614787889100255451180960221346777133721515433480038898502560973297629061835851000227144713638989861644282702874085880143107042553764019742416256439479768131993023141060142288731250874785575736225506038162508477826556683838665303339582122686590321093643571578388583786642660011128781337633000055350274424701817451645050306205561035064469016873706002653449032595708289143124347740806564557389363360319589012561139996573202787334671173685523067520344633197284885296902087391625923563041833771764115651170621342244421542156872129848446388323742629605787463800428994734669363754471378601546761087806336858987805587458400835849847907786490676368454264955040463395033180599868389502833832100289356849567034147293425473802030912906969257682296234510007709895651465392641571907169516411269394383007920337801835161966914684738192017277845955418678587683466350356353836298797859304353817212469806296287924551761346241341953815157873014642620139681485898649299384328527752632557238619106036263360954500625130045238924251402941251582593992754885937002817465813625768156992978958516632983124467312133478088102110358660566619410681942673244429282313316469360678488946722345292270395745788998553651710931644432735270224524486672572594210175566342920188899943689752302301694774884884169698062015017860579547988690732179317092544572083151028320561382242482281283543804840854759151019078841071466350510147019784763842391764822708576741873331673356073394246433128755515474123401300302761281503076907936344000048527612338771127410609343142230997943812695811636342529264981132308438886237839665398693794158208276898638711020320443172705410089472937911723407686593962046202300465035020408172920991876100835398638917648445764875924382341115355258321430939976691902559790557158359219937484983433209625992822320990912522309701148460166601339769989840148627923247807281116036107453601970153389945028474467284782008111037737342714814738685994382130380205706342540474721492462031054824876616285135044271428485837293836488657811397118606351699850015260156515789254872018890222250026699822151686427760743632416787526225741860417779499037504758189432795873785182615663020962551541085752262487008222528214299358455947802537627283621804438138390834697078023802583797203826467259618748404889522719650148650450286353380352065946292306259792536308444704462563215022484206831041993154642755299097301235816736854105272123227909719027230857891113597339664064204934860240942557043692678138374779291139119223099354560280546053883919412005806694437577904091854486024409951780918794046801878798015389144572948582605930695373885860102716575895933708711035545593691458961429811521003356438578149517009721559434161042627806326024394433692743977094060978521799323274327895496611184815026739398110552334750534165826809370988641658642865539935178130127429202485708362373283922420485953193435072297054309222622316630291860615287642383860473744225332112332882542688663194522933392787219314016840800231102939289791417984929746098242679796460221608467709029274261994470078713622016020666807065103596601035918627540077790711204166375716526359510307905939490985093088449837924656389384333126645807863680667788136176049696702114414011182133751503972689250610860358184821969583047250699692649692109111036937779116653600205590942861257248724518455082184919342026000880592278077938453726466672385792275980151609171515310754308930822359317346673763808503267777644146794621946192530366502502836298552228680858953264870187357208572142821091145047508423336956371154251509451793349645002387398466648545889345316863602621761238798342770918048904968658232773513843937979521619437266394903208996868785972014981895684059825612186313801981365458856618561396325343543449068079477976037016264969341348341209540210447442989436696901025926491841686244722670155536011034656013888019550780032148049272363047351666833446318227460812099807884784765489197715723872409371500283429444383576644884806553605163928830927709561648001842896740613569584451431387732835240099184080449339220347133536216319828300740520563485294952651407838387424626267006568276285411940587850515453634333715105940231418603184271234102865973612575200453280754552522709929008568252114707918648511102976561172873982466004883886346673195017332700520671648847404701062696140808147244347371903289093458751614387396863866236425009379993504253602080442261635480338477764251184003533726449341665310942683901063514248314935630301813051885907826503951127678659121080721187184272757249874645769638776904121830168634805629739921911816086026305870698028869786468870844156693084825871635139693650105031037375106924689799456949644713186586860569918243398238199309988115888455585413104831885689716787593391403497737817145894979200393936038669898953071257609408014661747336870571289000771565914246747028941524866306093280883573574067345280535192782229308414371287766735979334709837137041063307207532548503650629197314978536953349146663837951800339486348779082373846986525695826095431961945681978217140439808045009676665172968759382054050496586893603742507095899998018294950229280234786238539237073229536791067217677121268269940441810459386261755018177240858040568316666057607938472894063624205600734623915560396787760426584344539813450918730765231108229969205509873724073453664627402158097762851881943236953259984959319038374170286991336673631666623810796589535540825951576574090247297203905962465641062142840227616559652409264579413646101683567635891358074827178414218322910250232333157687504896425764110008095016421558907382954981901880847147133567849941813762542904413655300827230591439084172418683358070945720839676159217466444334731762277117329880559068351468258037016377441422881044417499961587940015286449727713398602968473870260611615903419557931543875156783699935994872251498217162159937737173185726955740841906898952811797261774877082715619525300602788547792225740569968840317999792389126223608846460741489929100567518906286315235077505681365546872511025370594771788595555924859144108265148900649721260500580323643433889873453151261987208337142520530922514540350639828923979924165279077085683986274577091839871008966089890643977731548257708839182918973633277708566449497390746555430125601504034122876910495407387328322226099163647739689412831949396704262947996490083796392861732927876251250145164687301198312521587015062058556476943829356477187815937283286172716921910319309567547377350141076083181021955533553706738021336996868828889153767334850118866008429655236952396259119636193071745303807178682279128893292067467776821858171487119459448299425197656190513494718177029368820352073097457651216708851898982864686031778838665837100842668656061732750912285421363461574552762332335999911515135449130301562861875048770857251731299544122937867111201323008989308763821983319291869379625396854869654213105361281660374989069967201194800143062057836804479639942078326187100356189570331943438736819497003076317633985340279607991480540790994731440510168118495659144806585544537754169173565530128978839698255133886487182813444663383144176236311069763127504282668171051968569365643073248667437355836148812680216863890564861261434256397084131409554859671621637325703958637504568208631775707796793958113543176779684271666784028630971741506225048744115543693118354976682325887693627458485463496122657589412596210864990882475017127522971646599194738891402571815997409630227090536261237129108057050043442828192206350363841271501231695622123908972276598700088169490601181337256673645724101338444809386394643787313891753490379761855177340919563722801100084955611195200585423136679511044940416280096373016746045746123611675581137900413128855825979948355105473390207146067617466559218871873256784726237742456536022278570854708849442466485444793287514178905309887319697429312032267168567577736391228127157356023004873932822443102080951545623599776001955730596859676691647340236979953717110346675406508746629984961262345881484001570830582163094271084417248881018422403018390113243506113843309589437058088144203801812621949634266649509874008881536521275123172362061540507062615131186761877355156756795959369226252535301335270536190881085105477562244604577784888357443535408522182999031356246339905402749839645908423949595863674625464091516714793251596933945281394279713559083345843119747517139344257573860054241332764644015495348184676447252369931703005371615095150550883908608718044550856778632000843330282821704286850512032244224118962399702769581034279175562955878602208386387212133108978190803707041595934576576614930409583135218929964303266541987102968003243113297202297654112164993448764057903479066636767475398585357547364719495986222941534490218765175215507804968343611591429705638624856386505099127922495443821534404387876992447985027397159130436878458465464126600096458803547324739892273337459152808394064890719944303238985050042193303240971202345309132389652588679247167817117844407325625033196153094799985779408895610206108076485739637766807016377930605117711489004470568950336844756486072810912654533457567472381445313452159929032667346142014813723861624140162007108374908623116013654704974368371312924586698615649215533140231946506514088806348449330471244071823019702856761277959531729207964472489380823137822660328096938962227151420830096772499981703520000753050631567674331499592844697629126088191213339237635410352307682074621842354762038265258619627269626642521368441317678596594360228625003348681615424156292102506177272070222262870337528841750361287742366973301410258980711939178137826459883574147798295210130997278025100865906098400701796815657837618588774848058029476863568263918111656506909980868273555367225971639540203641335390106247131406982162721419186706046317485159626311225716027748847358051707188850438394485576381901195693851879384530309848342841511675849536759937734090422068465070285201149159412131285668435457201704559762889324508973453462569781504333956948414237118054363187075781990338525107082751497344167643496603750211640453303543767721393211345911654390744169060509016027951346690113101653076773238187728696689123520837670440547123690745299436847805980557960914804420636102094761461199218228105341190058370749801782594485614998715299850302655862806118875591329143846077195953093177866984865767088815388325465064564773606771797450842105693555076359669383134476301244674072429243085165230442298535777905709062113013808766121600443240858756730590813267104689772144126727913404710630361066214427246127067631454340320473105409113846329270994060979076094416871147177222792564135647492140265749957767459834446206151713073576813862148571620305482197602194779134345452478618831039355209397981006791461600380368400729847325320071633651366443648221987064014576230157360617846332027764636198057226978410863639452650319566428918444541515072438207343684992500466238409253888389769704262454346737527423370393680179010908079696804820390774870846831739657443035623927682626861604694430498521236793870873255066397680340514126244333956192821379395053628967821752442057682220520073243966211097243437492255682670787679461161350105487373277080344356417720934802909234555066445136327107574364500546694234863157634251062821417388688020500265627953182439613619144622857688505296675432738255522318869143217593237011147788622320830508453855828083516000761896139368120470792859224725160757358914520225280307998559267561199353724862127554829867420925299815589086735924499574299982520363185489224310440268895047993562798152965511858189952786012368053784095636452570386650936190184069422966175697724309592661964106684479857333398162771078255428273629466731928010467974024954420566438823160632898980596587462838672890587883782188057010633299766008645935466644306711185709871552710633687765501075691132413812900746686170477738809973995337970242170412819869046346787240413556421305457354928485346694572023556692291756333911809031753033626677451865732500111928943250382082482039036145798348475816327766417776140289247204642078916206609732594858438458755214860154781407670375141009098450734559507845531642989114011542960425344511539224057256570825334846976751865538655230783410213061568218539152821881630383846294176523517050570423048487436853660796486768413347465852920031065813380587112812891739198935477374858554164596239279848764318051223570047520051216371442221090297538441038931508482635088668815956829134972653220145597008688270594625426473165175339967363960476011726382454178238276282262170543185363970241433477729938572184036610689934539964092437419294280532501773693563698332184529921255689942634070648454496102839038902261464672288301503146617301810214838017712614195655325155470613098340124120388211993254013371808661084449218284043541277423699257017487123892562144070810309130792475962093700352648355387011712108704969161794404511401343069654925985503003582734872654968187741074362565021802957682358453776361927942837260466774012833954952086941079027949691678193258686632767219229054826504853685538336696446928468197762335307406934068785582220685769251257540376198704722983546163057379264169072750833670591825583456914315818705876116874363191936278727908300017768262221477153965895538351696793663676447029567351218761979298846327474144376984631546592993631987923825393380620954889567474971421183942516449403425933671018176022043457773864198659203778326551429932446473247742488750958577162430642003737929398432449391776935247624018688158663811296077644500423369141197217641046556768245064266567767127553732570218495935388529336591420473760055092720245210414434563648050288352811539899159854473806397362483488561468171056593077546478467747506479884699078668220881846731675763912934859381161898211404933102720050804252750385723228689461323824710785630182299428318673228689207302426024915713807945700291286477805272178192287334677862232734367431153628264435233480380506419844136505698247016007783275918939463250729759418133859903100780403845263452792277898802965833719906854801847311723470749989542469428611970397940495710362469123557174762525790210746166066884812366305912589824965919649484689690772144260801763705624789562939823735986763628392803570137267880540013426221826177009338499725826648856167605441236063671297937798587115109839793944810397706417165481845061594070389647148758858906196602954784868242688293503993495804015175952337570334802680842263102449807553297616825134754549920076485584779908965355319264999650211418400501186666927543337771012664841716743072186613458020751796177396129041563650083349354550401800808565033933170892863162582765419628472533776854224143322611674119898728004487092392744855000165570740396445823381939564745858000530892034052680446337917314750244948950870127680014170889068396316112102168399519422169282320722248629511400463592914385014457568800535956046794351595763677255625893128333057823716931646873610597432447168979904627961440774669152192347132521023850607296510393648417886694370829354375250155278200484305065178354446095349726850546647124076675080760986544591827240457389227172670261723369197516065488111382257600224268845075011970616287845524226485258692419939124778527471437382000149657445215394984936340437106068744504191307449516289497085347714649244338819711032322818126497248092214358149456710416129346609962751138578976578132789300583314225026347398929213339274669434452935484852500864851914092539440382300208332160685243373233395721551469899981946754254545470915319602245247711072485039274026646132643143574808138390889743029390090886675666196742741463563785173794657069312011561049407656566760042854977585981122027790698623217083672984231944343648420684724318613316573325168177596488030645237701937024249759565279469714357185436111847509260949252917765481902991815857732398664377747799585741270626245848178972015604452164003858678013443581869867135821239117611302060789018853639343129863432236984186029982357039188134050486010992258737574683602790394867080255946200775257688569831283270215014572137299086772398146063141916002110674082160297511224412411474756176375402550112952099799270102043667864849065715024787638826724220300884005232475580570698423373688063803127917110844703570872371066319613202512551515012926929625077095507092125850401244662392431231937237549940691748492250358312491789651224237016808795502915330100091680554827845292302813217421084523215959065383932776378025612670309996300631695509449181594511109183991036565496006161498736231846450506513866719119148530871860892556857920515449326036159620784961202876563698180525876421455670281602345195141269008939166637899704602950725197980417443792949114303599507905919077822740003150806115637748481712170792397804964467123695903992014132496360481310069767994352243058847328484793737207005622838385663290659693439565514433804871251512727724943896740398004348052097608346719789548578472654318525954369309483412398221692902435165367102504697621446503333187756135273322588931267300219806128406769396298182789898431751199169602621698635023139693632197097971076298649044888232797657344640362224579545068368642760012786077283394831366677967267889491229300538073518469231569392355835260117651701444084909309817987237484669615350629497162329036245299426548410520947903336634784361582524548749268267112990207153640818719810883123507425190286408343526307126473728791117529479892467617685267102369996444998115026888991921794303379997123544129585870050100043482724605623860698333014743498436366532225153914717828101005979839809179777375226745678779260186879831611195911150734909280364205019734164401035944284734246462738491789880462018389304512652375589015709469762776145973989793182111180222045113659255713943162346023331333927727445342108760887605640076656336860136842289597247398232437688712957436000273056510763516073413263492349439459962580920113388050907235668560204324951473308127767464355844419527327142118429122782780571478448629573305958507075395167010459440965472266099259961332932371838195603731319406529983221717895142319710260161611060989881402358956002903080980030566021640577513999505495534335545337568585908324377461264834504502775357499696256010175490879983228776705108598036329466817523869023778660189860388430804834152034350439007825333609841963852035944373756977244387095818140814871971002549166077982079990207792714162868421469857005165060450577813324799558963741393556366658527621088527241214899954096327356636593128230443484496913734824548519896503304846008459518848670750991437519155484184361227077080282025433707890492440631361893972503173318837590883805932919608108494889192162466603039134601711906776232039101153212094526519498726480242890207860192649624388433699618674646867466843724284066797666263140402773412356922593651022703429495897748756415747243416491906126958562864565090069918697849759270700401847731074787585345085844555299180422386720867326880566811521603282695399372327777471271841245993226724272710159794668672892418509123770182630201370105856477883113200480236894122295431295984116875303110803715546238904561000613137128273489530735028666980379854470905028957541290884993916606116650043981437347923717776508885206420388506350514244935224073052771832433060257684069670966516126484711516286108149080496817290091560675427427626662889044741195637410921044921368147760300350568694743009196790873576558312874093366132554411786355876458338956434407960268235433494997663511452430493410720157461834487696726423101276301977999569688894236261578591481018137357349253755256416489906763027223329204081195435170804340933444043976201102640274031972234597839399962162688640594784551381820508570886964985908068093910149674326193430808103588226696663287700895912323613018893869220018713209794176332874965428013977138720468611130087867422413619077817664048480262617703651434191976786665516129216112745921264006416799726561052099313544077113822185528540997694398490060917120669206865513452501589495184866590933166003103208696713873687973139977511437162365182769299322308868170976949672981951060679937413518361724245990562688915822864878629926600215429993285617140263570525016789010807090405571749795893143837119895275299563231917520545012784690476233472257933031298364293959870603833848648231765253929165780768139841155836809885299568082121592634236036727150624288280485159942303080943477782042070433734912395409742255115273648507672191180680256563452022420268390603599077167272904983599877960699664458556550618499976330977897679383102544150673126455727258282660300350693261337403201857644755601649938467490141287412498345411727473069989123005995205936275295832990484120178988899517764938611739474801099767984873905531180871296166150518780976994259827741389131545639700769737702327706262022882817376288108477262771547866581737495319734421121629977921448140467645981280313274469156649873983550539247102832182504304534146921666267311629567978241730556162216847791458488226115373864611088516808543054544777389294735559441709869784361130369882142611531221394300063381544785695310340304128191553316806249179321813720947516190467883435866838988064283004587095917749757694911011521690379170239303629113996560789754232990450506930614278060701233891214941193848186676721133591872770859284931794555622346974176800841203870834693630677202336868004812283124150554471395381058031737921490757355105812002305438883579836305082985995018842407500339470771765650407549643313497959321541510335907543168598790296939960401078654598942856880419107334213029532501924864289384178207308064208134899353400421305223307158845665511324986153541205530789880653007570776056761540381807978801222386091087179978541427723373504983377477506800040335853032670089270679924519051952657880398918234640894720171707717435505650903184975284139409573363493821721154137217374648592562884397004644889298098235028950511193447392213038797248256534679182566667060859131578392528467896502147361781676817846273850900785131455322886856739125974673750623577628310437217572885454158401678774278285291678578600157524178871767398533498273266788075178236553412292657847549496490856748896476729589810017056391378976449746625975165691684547633063107611661760042817509457155592412510534659417899767674885569633087044340306012914152242938992508353069204921544572062818967274503548157170440505460199784926668227536253713819353248498967397426792194604183109179633411897967931978052000351412598688712511456348160080369680657735430596253813654800695201471078776263386941914492619945098835599927626677128193967446195271486409767427257082552654352738891359544051194452440640931638527713775376635229913027599316796335207182051188026790413606514380984840613233268403116270181733064153936785770100460023801214205612683478434251225749320798337188991413418093205909789780886072221364368432152218025100912635287467469340022325614147109797101280939830981045855700557243115095439066515825256696477516261706745567511802973584817615574275619269795367227962530145288195899705746182534084959611020847725306339760517300529928943565879743333567567581749492661995043910842792137156541004167812160733353372252034667060557493340581537414758611551242438373594544487428883574612774322068559362711743498533354627972407260445025597245608486397495898905617539123191410547076794191283359692097535454296642628488664587136907043829390844985256059993016262427012966624320897617354855741993798538427716972831557951848709397717339218461619382245353338752218846566110185378082797534237654692084148559992889905149251683159465150709139776597223069485351580299370986210961597552375756391502895648951413981876115995718068091874690357403621187294796633395094220055942011673415081667084482436110979074645893105211291891879798272004601993233417712203118231476536687345046380625482052048400532105131182222969736679554927175094807896840153258198542031148241981313053182441913181823391553558800743369975852609099280034070185727000127215274290246934907984128857278114044700726340909016045438644496238679262974233216533570499768324240276892655705436039974317942758536060658909087111069593254336662975131530182577536834975681782019410701232490120889453090821844131726656822730658461708474397934765721922776638255073769940811021528253844447869465178977550311613489138270918091322821811311347484392593607783980979779429968961510734413362844296674748534567694773559999281747918614544025689328171065844942815171880929168958721016868777843264012738570514533074842108039174279696785216944089638130594685885588829666134852034312183301836631328645906436002491854333641511634010948130164605151276216003546808634800140608733493994644469142257545332489777941534090448534419701308863497945710962499701000699363068702324478367085366878452546050033816680170270942528991620913307890956944291914415206624251083330634171303403220851725989523784483669709918820118636595624514169614518794901623674468521761803802719720388789399059122092998755061511459198646181450800907959982566885955439511805016712662022112107227523410733426864513257796648181295412384673922366652870660207564453164276385370726566362916205068113930163941587181974051559164631280103685742898838713827134495069005561890280370124672669130949285170781118742149038576386825398164512212947008671588892987443047924385971618391558043082193281551554996761607173148210337850272223944373990095050864270567084065736795793498279787313283583999751910483584775877922910498344173616759653998480262190912404283630802519348803125017639365806518850927678596579866587886477029938974436984433898496803498452521145358031727058757487280120630192361696602573422539479458309539596093015404630829524662124845678328507067874493392514912791965928817811512271894138984145822405361704172697344463009655058440436352389651832845683812384541470467312398422154572201858099147003065574865412756114236561087309653454662676614461417159765939644046372099710991520741420734416238426038105957887485523725019591497277650230356755579869057167706278860203799732899766109315734367938800586633846360380181841255254181375685532629523834501843804258505510429108683751663240033641710147614239141883993390648304441476972528626183318632940282249105972251058199890126616577953813620987597455207547773350809752574666416437939185085103515859905547140656467647265747052854334525416411237872804588517847482201502688808733970375974190201038699875152171755532991583695510788042070836555615848685355299344348179938177282781325875639082130517234156728119776846150847683286637832147884554381608579282996872135065538732224217453014253671736428344288383964763918695604074659249980836338155367745637794071705172289743714236958625219430829919014351329209558315341308839537347210677634268453671287441021558616191704231874938778450038173441366881085423599551975628653709620153286943140933778536362998600129723671358247108826728055322886504392157982309346480637162439804626445901755284254174294239196367982254280750625105198161167425517690422454382473283549308970241899065010679018905026982441396756050799541537177509446735451016799740609386125765567826005090683656707075610801099112951167929218418477066896990809093169504241604921485145825809853487144519626753611783368203873943196526230942134563771888154787913336295971678191480700353046148145417460113324860239092670429625810866765995637871890476596655461728141914193951638276181022324649007123899954455424719451232977716493164358549333988402633456427663661406056406637970173399085553973592875905402108674609116755500657981206665251762566846099467376432253844080817307645313275712339468706953619365403821228099362201439492001718222904301454275173533893596147232006354166579733289240606369110241652219311668698317529783077172661747727114342128180388856948598286850485821354529503753423377305599344244168716209706215221174844227260074155360021366107382181903306878892749213707986640867337470275952576492532417049110048942983441111167068370766864800610019498088423488603742263054702153453875447678414698061674106530179815166335215291570764173336487378164834053441311224210903306405378894813194623567992898937434589962790764516591982705590781255098917423639508802589630491464412103457649310151336934413306156098198596140211589305836823777538181312303834838806499475366648756811119911473143293720648268929409931593437516550685168339745012893223570419972589388234384021309958086278036762649850401396629700549582343986910325548292454999931735025889412548500294331656406953273807208431670018775008882982103526846866108527143259329632699094303648711378751986465406196768019109683346622820464250837151313528877838284105166938758434022969942494192019406893321739830908235449976766892175858292819440916444341215088349100566653274114603430510832960729100555809325552480636413291019496131927564090057725432860117183677181007959735958656827968563195963061943257738627540278805900507580677501687036281824700756997330465513492852599152854429916434007744598335215387658720330958090810277042815031828822760511919759836836025068924896028476200668624208288251493401907863064375258294287911778005930014176096272490296543517490157543416975781738487123720933699366234052282468663702973804534810742629982602769623363000781509700864834231676285155765107484104144844283785254213763324599604634701261526584236001933717647928364888050994931936079107334806812201580340958176665351242211060483771346892947929742906911106362326008281173227438382074129473248054810453176707083533213244230000739472764990201507755547711049397193290868576164055090526432434537871856784107938715876509263024829872750188627536863567190619558499534420164735601369579100361606651389595737731688385595825108262783791329138177715218511231104904831738620369830645133558526855717424482626922248641733481860778431188625659006981182199729300981644493334724327765032229120489952225290745848879078421484894718420129713148938708631209442581442425386458060030023881080968688279170626419077032878189001199911865810796293131810501932650253452602464970075117579968338148349846673387971948066031782740082882374017129866322345777053326535942737520076922019466196711348976210102544173224401987658827816864653717752404817260211813193812838074010782083543450561685879054164679639612797609552900157940087889937936876618649233669527212064305357980232920708601369965398341728460880550276244915227690755180814907320374790400195072018418804729532551629530042293729352884483683532097699406324749856478016413295943378788325987332242483774557936218529011453134877547937278101850896597707675510840306233705387892918410686246048036601303820557834783702279277473346792363351586993296817991842593254528223288190913430339956733191643705102314492983123103603181204700315692381816875831862761405282494838757716868368780771112157087876514573055933233811760665060039240316006670859350031789318379696737841408777691820178080281180102804020652185924633570250751296446004437905651456209989599159783230117614135057111517071365804798331196477288004256370355548248799117605234203600244957332034342928663659943827590236299664539317285735915757427493455283017934340029692114950134291373627670551829848142893151465773624471356665676903097493357690803052569756392642841293267667014008358716621343237284740907007655872926455791542832084912677175115366634595791809826693937874418096624176643594331636902527671950771262069252776674613423592709712255765970105177097134389639345358747501009741051180618284152561752674699315188586462913729030294756807618957481050929477832546607346480364655006963597248280309312882210068899171785494452189055298494527287487871137520063627114394556499028709048701650178285890657477542741701439767729620723848001903067651873501245861192558113081203964596010036615385661075491110940403466531942128827378877717786686095292567777732354094447616947705793869745695048296860516732688331196893535365370337042402342934436644038578838804108473572423292892443636736411693337797997581873090683339409464772848957307460161287411775886375008430096684261024750674540146947121968143051118733614524662838626989296332072147152166921691518309350668217435411732889092178121355234799242115908434310290870534151935211731984207704839492538993330753380990530980998850536110787032470121370591575191113598215810479156169471970603727320618860509006508803148810992653852977019448033991687170561779145419123864817339758014952217538378735550349059438538970468575348760783642144570839257280685562020704567279442978959831747517306419549490548227735640214949737179616315280870453277012356580790115544152427292642777796871560646537925534590370879042100981400339880716208481024758126099534142677575536389675122951304820341573921874240783672381160389755111844628728678236559105064738109274227550403886146145294640382583716390622340329809143679404963769757028680918330986404517825914432887758896556502335094872279293531186041005470268428632915198224007563765626250654592504420983072642082377380251702510816178933088602225313229865702796994222399101665302758608016934742783443513391736511680554016705065125296659448309434075888444355780680125221394073593196868888513287664825549114840073902386753885039243121210614731946365456555648891021483436469521492590841526776170272168614846564616462858788230912692041125160672089778629950296125309413128378823934119910667037077824756663579187814792770875109801805150166696515460726939059607395772226281253545911464363552566211971581416350401535225008179297128114646468303735910550995117096596701402411992831074614381874116379781415721210513016067150704118637965983426224745966987736254490522749857453800120843981543685215451971058748417871981326772464260812532346829945474481290910584424350379191532981428500579062106987837596143612530999105604260042737337134525472372310695604983510874981313343243947991966424674894999842622386100510772077448898290671534499902406978235900006969030778119998275993116976566471756294788826022197968020925073971318302658461933882551478726807849318426077951383513315582068248192631298030864185953549905551918730040929571033899503862038261791680570415983595677843997257862187185366084006428773920489403370750839848811600224658246823389364345153004363358103970803579091855380384922377428000548967148471818216530724339970905256567923110127127600762787423373040370915930411604984859898240813731059373843423662316190914769012338098806669916030934713090824802542469750770726524553275265020690952114247061663310335379886929347916976330751585126166844912217700028014486442072278172569428094183200512571056585434674811488784139857710296051575694198366334862753176744274070831029956632626965984748357416984536703079200950956122938050487219502439584550365963498249769429438276402443311259159770839748151416803330753683789511266278192674950820968807678481013798974270607572493928800217338900912754653265238447085060322295055988285695013409465806913447070699015598435011524304252212347769845452657029123129269513648377699440736819944412574297622055932965284978524446597366529585494470298687954810421274467718023956816225420345847609644390647048053846021510148609164542596576961092270739842443008523766725493796384436172049713981170751144990183922956677729438354381147974040036587405410193061859226466938499304374476017487878457846098326513198641392375144823740828488033275486778078997203568405493624657089450525279573970004415561713387279154795740671750896903526442857695896897835509920423592784917878368552907454568623578709283793109966979412084338993060580527436395689284623085502166958034476507117033754606164676419135388872713769606157445345502097140386489524374642996412761006301565434832046201197146203271850761831884129804124615331399513221752669027350487375480750851718920155288989291515131136327541838525003392415880335524097294705942861444418797273806066878038566468268398571599987929309516269125842788090473530913421949680949801061703448187327957095361150912344168186867550633166817165523628482909285867049078003509525925569610136092410971397889210583017909107170249451541943672282986554458893646296796825571466912474062040065759271042452707952843588697872621215132004989998628825390361208445903621872026876696631615324777670636790906806176479729053650576959190223958746711422784270121924501839331610277465849246902106339729539914125480863931293630790389840387953044715761499680632302903681117896867890524489923358256720412217887173227495523676367092393358376860627373626269928027650974373990857421126594301013333079265244586936268695930955180480779961501178854820249728651298194571841284433803098281173564578985600663889014217925192217412088931686099181040013517309874784742235153749289022026741331983703105979163498954310976464936067619668593749821860443200710284819995790296577378662351169436568571560059080103608258280057653963086704638905749664842125985675281200076173833371304323962604360256431726109999253542086800628678550276230575771391181729905366194061497397433124050116636294192354701174347346033460615074061974890951652250844011522233020186560350847152632367865902433212078626369504414994183672822902977737491856518030257651244418907151376532895574404160830595655878764850691394643841005031751881507865569311876531554849613348489381354485763438385949576700673978049074719501461550034290264498945716396359194022115345225909482357884162614353710074145900734630114927557142141606581209603047952464033833497390137675802549076268441562312375197756658793309800201163085988334378366679268181121173638100160920130143761056165251974029485643326440439409463667010696766736201467096944606192091217415935584225086886290886314372835988887868416599572184975134370943426920549791507803449699104237894142688690722498185071849627129502577956887902214441281878774703274821763991481759331559398956960955590143190926820001848470552506515663126763115111721609660301423835149968873156907310047044354062247926691459190634854787542261328078931788629063704163049906144952982866469428457862790444836233714361845967106460302499434837241307272365665513920837396287906320524822608703824894014523950004941342231882779849659947106651529423598602758481846677544407559620248383587962502785202178732914286295529763736571711155703953482784324569999308818008690007832997040921569302373815140519181795524513147438437454219838172529303977455046681037494942966241646259917932251045568603369367123821017972402952027283764792766546896038281750069189740040617395673919148583468538440734996255612668208143219945902857145053835094679632060279260128000197199930144252946835482300889183983211662070052872380169053198591981562781038551157572916178628512357446865263964247736582151262665641586560529285560275490708823561516668161035061353241776152442647984140510398283317493444414893044714444897911183153616038707476626451385722766024444124741503466064534997981279410625211287734852930127487716051921580756156937722246356955529946718000118280126043787133230970932338061739753277173979947187113895523095060481101967241398324035609761349888566694239075181619020853815420525446825979733868496166298622741664338399795469483092667997570549403379339326914889385091444116801523317444099294448863300181464442602391456958791772825848706028357423451361354978780400774574035587568833524583764282089457814863573471401936589035854401638332656745218456077121674854166055266116541749409766080817327764055894080593338460037143514993392035704735972096312686474162158626224136272918663251656531536369929954150956334897260778545213623171119339083375291519388616215885383069580521162935513370644190784234129286125753649266181582828501653087009954838597518688057530812333412976569733766150713114622934459349232164642420424747031511317417086689910752728087865664059277924696324514807280584679964139959528148218937902761972557565871603176407519923441104770783093271401590903952205817146955879442170694757758717555222759317530809166559658233286710766047414400042583453001469293500530318737982196981240112252373541809088875735222098069769920667072373800435178264949790515337046350298381864423266670862507030928752164787979779431426116888454805263834279029953746155683933391608631026293960107403741308944992774321340479748546396743733914032058595997886411315941131505828937124193085049011583668737652276937925589532375194027057415092226170609828619348423020128975015624639360192637650457983907567493106624466521589900751135964185859160864650712122609116782983242987381548061243621294175725874233060082248384293280595854012546112307942221410534932749154449729004768400435828811977738671819798081723201377438508586102674891313890394793018371834491269469309606352017564685663365788056847738062345791250985586596993157276531099161888571381413116846310028816650899239573802237171030049692874301779861097174192899347720053539743192591139042083581444718457723237528053227187338881045811679333710442999528083303525489831348876837611291563711618718260808888972553744667758733727989299965983675596776941002331785907312607998520664038379159480831493576113848365040319714009645772439733156487969826949920392208788305718107237082605440031147351732932599071701360821608950609719468512317340661586347137056472418561968419088832704292680266879322215878773615980847612249102164788985378802836687120793886293474650650469663406757489700895588291353248674691378681023375280246689721190850680693038257734330578603755323493026960795854266062644779748479521211066817519827256783106685587982904328517626179777108770263756918235925798269301466500400094753110184505289132978281286127504935855509262977431019990796506476510087555036895206897282258715208936943537193783746110348335002223331985650325218281304888111840593759200600223015812618393863795570668059266999550246612909035936783509929335195747152727405534278107452079079062861770757774699786722236206134898433889243710610549892998879409860812916820521302786176528110267396997826304622697624086377972995918320640933709141197925092598391808062851777601486509335280862674129491101198703942204172080433692838395418216878961820354897261817203622536567260675909930911416065469573292938096444353582482762065632268766800183273706758727078128792581808349229556697501204609736008572522037994847731875549265529212581912297879517741360973740115876589145882775140443552387239887883150733433210043956954231925217027039589357371091706697272111643339269360501102505051026337478828253119132849361953188095393764905283417283534254135004211387504761432889818982105237192364537540388401914628404969608219720687807701394731332238875613719192619590755891888046697624787954608531179362903830617023454407512428279799995812450652993056042707320354976419429925174197497973135317599828458507995092227140577610794699342106275969127265993007452806354064499700738987699408257296826905644874286457049177863630521154100858489371766794479523683484078170283305333237440989482009033115153515961972323793984491101960079974772881530287386629690863888171955594224718636360909484523658519480924388855335156114412428817291026434361330292816898686280191406589438411133576712393033633371271409275529336729700272455897308276952856392716378547976488959725768984032262825843460604453670239016940230169715170061370036478286645370323665776939487747897400731857629088030476560281877137054878443780490729758265714254818811729645879031575435425350347924678627408660610605703542611795233318401871437910078308058150290307297541286361936356804879582328960554068858814936467643399569065420389662389526875171301889530755691964125530985150870815813929091637542990846386737957879227275072910788731852919211686117136791628483270822582182815099924940744163399666935750365078551097809137349534575937486258371388327733762058464585310132193297827834916430414865088537761568916507091300737047942941397947315472815998406975006495485598229367864390926773196467902909816294098331195452909508315286743963091301363649647670086469922068299262273906375991406139116848363246824766329159644947222042061477108556008299432460323979154043520048229218355910622495586979421390572069722013872674691739947083855825966964338067887587565383728510344211149392101150340671470346874285897363526635942251571247024471746590727814784903727895999175693749379275729698861318535897056049390814924455912875518413645883623508794500146154158673038169089504580828746097741627568682241377981388322734951769506781573358498808049249524762797694790984567964713696212190456742692178128259242399071403191153803661962023145275697655241991241842820711705309562885488803242058862544169132833601462760561905564595678142069936305603314374187561256073400846372765684883092493909345349662943852026642980934259247156628709000770743645751840490754220503182585156345122567483269595307729361397506094424320704799539343965480500518057942618692741648117468927378358523471520289045985595696391377919580634943530829697381056910547687380056785820706388143682417647408401160790412836982211321045642933825487774511682965232496853391148453983688732568032037183293997219960345626247241444488381762589489875475050202438355818410487088372281632241501260612879034735975161076410330190039855189861691560487842365578482247791035528635557248013164693377606573915983060842759208719988349092341875790712050193239902677534587914843445163545083870724549676515253823872507191705511641278009274623746921736861021425721528487593003769059954568243402960136425571162113408975309708082043315511195337529116635199317533462005011835067126376653637564520061916728397337716466422908771702344089061151550747323570140971967744931422701725265618873565840318739304514573537797251772954701974906145390556604297764510255645776269113518493946673121267852626556183177879964681534307188749779017303732787421406511809264914085105802410873647951182747196706998536361595286277559156011180848167240989649846257781961374149158674749173423263667863642051385425614485851984957176190829072887446887282378604140903165257501502638098306343249391912081392480798380209994836091822027357446019223779999320005040690498855536173669443775190284865989982481585766477427668688359146070811138253551457398293822524785988713494649747103947279631276381491117024896740573704012057758799237659979244036158960053369031077157746977296517880823962779300811190082929727612057474739765992199070498172157180839301397610567679466375507619550881229642217076807297616224392803832204961486106838632057050871272740480981745808508553477558067426766021355861242233769867613600425042703772805255584214970893730592576363574001063494728017208884813614584837033137277792289120785901047234608250687506354865645827830559656497054711768867666882920709464964095191712045221721592761218020613429016368720742864214788604244694168811620483069530209532054142422007830557956704783334028537032064694747196676761456556965410449272750319666151557263091393714916756520514488422327568401997808594676337808578053997485758301530839340167089937186737526052665344294840091071258905820825669565077939971761769739804507071993370440946626132400932524292257402156501402392121564428482703144762162181292856914391109093245043542204337825974318303199952206153059746488596139539844814150426495112152991510475427085012972548258192406264917379831342942350550311161995034887324305813408499182752656556450179354651657746565468883106964054011608494558223266687099794959405062585669881714318447346576460107297656202354315648584043965555002262988129505773845481731216586387372329440816866963282669253294136633596703603563847251368856142685638544532299322062470668983665481116688368420004264271182446075972823757656677065927955307301692597161600044512087437885090887827098760233508010120407359390211941364253309213793349940937330231565822904523093804492094062445720490014039397760831548705865252219432747665058389406517102178883421024368992830126632433521435572173763447418160622540738712379175242888478786460828361245491723333171781839503210962811681456801134126553643875562377860008552338417894587135016430867305601578783988592689408206819404573167609660099175187252683030757098387291141255385127657634831791738304080761531434625396292512988347178620517588652382054788485123510367381778812176993417055970657907287036426681180600305742008100653636686742858096613567424612502534940179945033052845199832749536047799954611797826038645483470573204008660273569663538476493646287147384983449614485275878949996957602486832582130980478392918767773775177575569482237025029204594867133735042104997944496877073458400409612085256016547870377877518305041982446385546805858052456085866654849422291096564364016099753622842174401375193515322631416456228393272981121766788076794946281063605656827698007185613591543992761265059488353773156341049559941878367459958175686911089449381821707029754927736414973274431325331236842263173923494982700800359034636629492940307195768888616127971500775189112345953829706763098942501744489928852791918113841126102616891605127942400714715675287353610357370204549838452307885338489137664361164872234216798385225513888443972701719004997348078915723786057007724828216553579683943306759324284977049144689063758222594019797099856089727689153874164645857692259015997526069204807024392442286973199452304445882256329862852302585530631569791897016931460571917214616781358651955764604435543024290516649190393665957829777167701398830969917508606992872614512644365548492266585584718681132648649566487119350791655647155356650837537634933606316576156422876157037545794044485166572618827273150225196320481296648784636695552275102147936979479076335537572373051611985374583185301882924464859142384717035401492906352521105496523876022662903913422081162079483846393523073472594875577584379047295965071272804413366958525992743480633611288107440239679106719335430535182188925184777597828501336159755480324984865240015333005830631613382449027872259679391322158260872670115544550052779836292828531974447746353424128005621684892796995739260599101162099372774007675519726751760623381390077578755434608876449015192325907930678085624244651647431736696451719101631415069201934928890917712715247611213104403402981845976442288278358266775398726073175664115017621342232189784779213841032057948708471533155618850533086595721261385836813687247523673720843699057263286147781229815577301880580931873635148340768376714172235997583131505418347327871585780373281045642117133655297975435328389211038935383357337115024030827690272272501620734254587805965796501131041597193775795700359655843881582532599219899570623279285619073943609627474953910641352602716503299663052072117215771435212115081535210676756435637661364325562107844476936941836425509679236322471053484007214155015046046532805669108169489608083360743314358713412491852038769645795541716339096959827720368485326858086745028385746736617779200556377688416740993150204414247503032603986778664784000973182132113494531849507684519001125819242561851401352197592572853456150980803847307303418751896457110131381251521109103897765798238765098267425718250449977113862753188813834638194059960555597695766738697181123063626060092820740071593018029863445366902397916130044223693392814731873355751960313400611323046930575599670756990182927362781110311320287911878749270645600521367244624038414330370687155470127062010357306641679815086109616914884263495719207610725725581508539121405840394845122492229955885984553265535449103897603176250326005072678239244269589360023197913937747612744575911367275306458577809224343787151471788011736757010011933854083110628488400731614929385884207348265607542034189045326665540602616071371941407123833351351171347977397622222739497838584695979276472813126694159466224706387787755630733751741875280582502154918017231293672951550211132491594031159250458863919275627954163810980006774412621130854575433820268772922982613692454832686079600319890642664158583799080918244434754063217822440502119400122144886210456041922949988176786230435120209868061867735183051520259107333405593887768271077001770614798697794722337162146808164924692178882227831666248570360345530289958335854567167837764081767185602561857245239456847137462285324897314205417242124002294425814340039769330433838457695539573887746067136047795207721042707741330754543466917920553801800101384606318926622046023872576399085076563821427657791639625279239608140725156624931098561879811424801923876189997894483172816957418629458921470570558823350579917003253642709005078905732847243629640044464476068434751351908135217338670871744797211459489249976549495950429665864659347186050749192697457308660387571909380719825280117576650938153488336809275023608010522179464676356076928443564557239456396685897719937765898179813373555898691265171331948856679586893780009088053996828137513355677574175113337064663312406494718423738885263808851129039612702082361537283082383285133042535336989926060181363517620890924713355016292289571070745104861868444746851524803129333253235119300055295516265941683678948160433326127139767177339146595979524633027664451252787558140207578364236069523285779167685964008110357659777943346886098932934749379124392863941337760035190167825392812716405940897110273862173997401179041332034742565058494910978626192114287002425674189212465602826352193065697528172633142192610038393671849432898102855959881034924909842101390417506013891245771431661415274072574405470599829966539054068772089994185373775796947362693757322158020773955410830548233211406797192233570804725652356906580120825062591472823526375579261516675382887350519725881537975379576380138132229219771073814282491594086722234173581847018524041924519807142462706754408858437586646630990919218231775217567601102054094662599768283021013103063440669128513361230647801129526245412725293922618732360786763698067317846643148613327065734282031051769285567217820713543397603474656391677690103733163561794732695790008702511053314469414566482034903117493284370464719458597707988556891209455735091089811185609167599757145323094705849677479083956549339716494737937846707032341494405573835953836398966561598130133954622836473246914440717021494631411181005678128838970046788014371624639344594966178610716297495481202436915503373514928621913097742381140490508415082133399669676825383318448456274928165541610570682642945712268881933581335684640953844888586620912572841163830687785920087845778240268762283724392735111693990105328130002124236618173689243953881815286170549003101163466915754858590465123616262157252009301614061184951682814895345678045305935819746901595036896909015764797050378800419762587350131934747609927858253883192501255872820782036070483318638872543178784050652814629636539466116885062466972391992511822250900857086529247405995469668737295459473933831053389809686639941202329238166153493567908027060013536751966009809085156980657241216433393480942560660352838384962185661081883663406010656700581660837659368554527763206889885867113682227187467483323367704823050548127191586779921861470719790603579302898283335064340533503833818020238987110455639166499089224193887758181822149451763969297921542963288745827742216115318774293013893421456331060272935099249650264323204429740088060278293493217410540135599269144098246549021462787099024485200053960550735791440145628556675218359334422846726475847159775902833862833685979496553654855429308707267262344827447479202362760116944062387915956138225171628470864308282994803695352498710373085642054260247778350595408838635903873806366462286342945022451265892349390233511069166594109899747063641496088280020052216823594212034510957786117237101238286487448859734984235634668209127486487246648291049988565182438588524253538926867717927019176658340093204770343681256959470640547774739131489521549089046196624181543192680394092544305689755567556957700310636139799073022739701152267989886457890783920230193101963154988303622263459132274993709227990713187632652783017969047347870234548496419064252109648854107086319605664439755031231959141432485367935953835664785737310459011907719844008889311888541187589658161381273411365834423602791963534181953315877397247250883198511382808263770946475126056972047301966206037911986903913039388024934457697006717233687128896680078009547464446575576254124754953901989417660764874739701942139892945567677431164554161737335126026730247377480708753329289349530975001428985473745293997803155043494628484893595561121203899456643988360372266620354260309715710216589218693915938148126526246608347307943383607562550257499891332654510183715585432679866768889651495420456857158943176292305847046647222616128110204635652919250077561520615284554856900282731618390337569417539879987307552518992711713196322920641525387406246809954668224057328344702671317991493636191309958047914717091754321514683607519211365289567081364076912129396002784357991314072058457953082968106616190983438629792178787345655524368030337891217305456502937824380288052687684394020288116102482376975653719157207829284522913520256106495951825994612554822319070302094186101610736545317903895829583034026512538570572012275432980960222129176820122348608121895604719372586175602260310888798402464692876175692283471250905884430565305734881484780035994915188297565175881800605852759656030886880511047076991194852919909836376839759087055660400870617149934904018519144024014919206573107774770511815244367048752445482483899620575975240085937900437347893318290263707645000278243244475977785625397216927513460946276188928517217848230778112929441480044210507937290379957577190739147219841443131282414981984589928079332730819692710341776331364892829531180356825798751474720865932836280052099503443101057353931659996521748043068811891045742442630094730714342837006715254543871529591516291308359622449589119210558340409183831274407158315120436904697656553505415714913265055557958410719202219872551650306212738153854401228055754792822417946405412179019485235435099185456003191731647655208893587133571700488846009932170547609725397445740022894344372848088426040788006571417962953588953776546808976879098666659462680394202438323243876807954177049669580784606192460945204099139172569808750257042918245531051450212289067316397685783821677599196325118296525165313398777538622521438075747522381489605060586233454838127770333632999731502625663671448134419161949976175580179769287648175680350247840457999376451585292323070153050532820372591221280465250880010549554300780448256413260114821363753779756574178705402677486492502631925216053037641788528335091440996664815102087266359313011255525546231777987720150829418303371627153566505395340163000349929585102278003676248466387861955042122843887777504809407323057734485289323661170858148411007100604938202495129331941848090944445643785792794933700914257614751342832859572947121007001209029984428620347716312898964269713506738516857518675426227969922759971884440484324607276249681882367928737328662605025986062203794346109101850334879050686584642340433029933688916595826553905258902259027586070255810717896206654055292262632053143333997092087932218482153686623990217467689088046067951185010064645154898056022423572078979447171102375619846506824299926959021596928443067208477165572628324453524700154123850983634709212708715417731015702493461985305828929858854342472773906770823558176724506278566094981051277343373769375427139184835200633949708194175474351905164754724923796658831497789464409383367703370796670362803813378841201731780288466392639791293323881121963952526057368350179953686017819465743318180267633698271987916335210783490468101816511777668860117749439022812538612936926459552035249009816280217586264457539874263677373709946433341197379357361650241336495832568698792389516131412501419669311784185906393781763919532823204691900230369701509952309588360506808779841716109059809411207250113386146584569324375134118887815836706047924708019012287846855483525629927037898748817207307688672421049476777614822235862528220022217032975200458533515523307639978455883644229372198478310618971011007691853651900368505652376038960644772521059968346019665789210930653935518714791069188790972989029494663800379875415484036960016191811251405878001637462176993619764147808100132801246708454524880939383993488916426848479198187816316105255416953046305469399265887959670602567742184910496181842272730250295404885365275347684537211233584763213941880620317031239992534916970938879342838622273645165452835650279466533760628014458680507706183691622669390876586231473812248460254369395358068144889824867389227787547759255841452625003282316118616279446778237550294145434310236722851263870879288116404300508732270993695056616194075922747916368618970635974339702747026630194881973829336695256748532305253093912249880578534913128051352387692085286196389577019731023591257896818772451824083713492207484457695883964095349418800391151182504363878395641321898676984769791604465318016364724499970605262275608907858522619083750269239864539468859699914908613447167870524078696598641715373507797725830307512749047337446883737772858793905948946126536714335630124388501365791627834129389428242110779422836583686304797499357784678470153587037430770352157472592791409024188863074522184886280245387044993808069191380142870924275300513494828097486682653691258371036051224207205844276496493899712905250601423718145335583489616457005518733009355266920653335868126854150306054987180919564192703624552495553365370071535043550063007128313779712454385285132264143971585087186135002000993419154731706283209286420755951051856733391615879266487188261776326126607941511193011024491349542499457965670588667971507025541209313502258893529616445699062973321295710984102216607143952447605093628724839362087576296517426431539185097941117218847635649481409487730584651267378853416764356086911277971133968494338192994194653731779447739297112015932901707820836339156585611150693272193908469342360805731447287094304394467662970033960142840059774431318900573890074488044134765899369007823993385042956099973569253929203327080281024625377180333702080267407169756045358390338875713002277050518591492355463031781378800262037028910391919001721245272563708818370994314694997352101259791972400254908390660779503845355455937959758735516781686434465048942736537874375443415585965947095040962654971942356785993270548007123280175491529068607559146993086627144093118153118396552268209558720341268318205330747391478587665303004914265286179631546644901468573290772301600013015433733506233187090118006097041070614787092358355414811276283088093560029548624490460949311961717637548732768992027464754075659067545182673157774627022212347860139309301001915299427230730115931185969591430516459001989323504491230766338811729655041760126253875692165235685025751656530998577576684318426573514678833501535601832793722035576646520683434045492221299388700718341639627254949189600896748745598805359973426659123207215046032272314663229128472975211021369485327119047396235542918375080546930304321219910239757785145055299978678878566708590803124477368290663646337130373335051533042363274804085004906495106553171176136144192222744993385518721302372395949821309597514071539923579558461553233892906872188384533902034846517121111884526095644761872794133877502692766230820473930454374209916601509189106464815902018968143163694007867117357356412924472592844611359171686139511058268136419244545924949823290217607816061638709926744646650308588944111312562303258621751978048955725343353285598718929477663631904317012769947222186350938389867254794112039374455186360289915598484207874505666410048145870635612814981253417436221345696553704036778133500748276118561371702592237234021939141707378074256229707458968829990334817243975604964208548767151747605071181406453851395516980805456611386383976363622849004537619962431257126244027590640305646958722275540974120732832825286781894293225323297103837624029772991396798709172160834935616026054685298472260563977693407679438900368229237281846722620632983036438427841002536544915187410796726083136548594451597707952797050409356994550699378654673284872365105510931245697363422179730042741417440183797667455627489991313314372479538145720573775691298100308810258847832650084506123649353642739162061137547874124225049000730296206826736273063635545185485401259509038812576976297579187820833967567387667917109057596289819216318128668463555124925942908367401911698876018203440794927684762373533486386362469150149661085043498917521352999839313409714675155621186516246592364730961598815961711291389053073716555320708157091794764879995958611207403185868594249508379953770021335121302975906575066463030433746739198526358629877591187134356270476426206337171784038708914125844821647794749434284720245208601360342744029895793078267634991897002835741672256480834579690200409717164892141358497252103889194701869483954159018737261480990164795246668364678166289881324435943992682123913788987687269591486148999377283501260462374974778468085650055603234379267727182019445931204896801628139664071400556380522443955326002991651508080922437704236395851586730439792514188500225647161055412146431322492561170328417560688240772523564822915293182263607713267682103578852120336825211259993922933609540823140115836294825535580347418046035721811757277903899875696359838736548176536838907884932722217525518534960351344412629579507413546068697286572688964215651365074122556601667314178286667670467123538173694517672049053635125911315939634251045440908808587836177912485243207575927783749081920510794127601039959560423545881346617030557558270099167178583834066769300528207546350988206440638393137119815455261097794458609959468913327184108064308146248522802216211267200046611688066224119205208969344294214847590430497313043563048982643815861093982199850512616365989129331765818076518246363889246974769804350378032648980915670845999266197336333504092121954967113758162988440724283136342467465921519105579519347065542563133910811993006587274032604952921812161137982769356323130188342183345780973557833242235146926846883809817080706296922073340118710858552940285658784739515401033055369667460560375508230117162464239451298493817444012801599564358214232499587456205404129989654135685592326223546823466327415769602540572401201621737248111994370419421726363422279747973325830439253508767394620768111203923318026146687202861545243460945922382555790305017326348068996200263181851910707505178995250380376574321966203042759809658201136865990461805328231837729786533516546355584193853293564638926310819194456912613746318261768095281490225610321563618980378455899362165339263263598224252893181372777665555462163765686223864076453086597859914326120310910609195262348308609556024685934735602281140383674133484510701282146358863742072148800835536199886093008513310611025060330035483729806906980100959484713813234204592778444495591739127866189683733116508093361841410781173188427761955479089515796357985059954606399918074059030002192991369986777032112057213962206669488039711091650527117546108201570459214112580299716102959327076701691357176936673858500931244388776755769168155693658334209320856460997484331491101162983217116414324695245463023650011087162390922485356633635496907926914955732746635765793927836904968737849013992472274014505173162211831147920731005917685431555589410477431281657332435680493583221892398076635411486614522366601023241675881767064318766285014324487586555036993559760360575254437398521848028492001249545883399635559035059213826286516606173011714553088155176677220233506214154285132636780275675463889239639168558089984510970961040662229567354355453435237455595792321155393819415827098124204691688579083850492830393140923075479815429786649107117269341121649913359471886725745806205114106098973188416308631708415880980216604854253628537259757459298006861789240849759182009777513801827368498265129374321000807777144120052349726689148081348051211967058754177985153194212205138991618233073955107087373207724481958934811427326168037841990272939383650820186935269824322522503284098186395903973300891385285529201563158652803679972397031102389722449009331477483316224646323387926212365307010433125001695640631568545987223862307135786915854183497550062001964968138474472264765339821395235869118863838107246815251109399529728659480125035749687343733713338769735645306958058398935789386519489825891512860875811977703414979610781445862528528986289781548717750106120236125927679713183861665003288784546560124647534852911744888220894690686516670447122837251551851822049006218500993670651588766301135083941248794039222094812526693839508990084689864467687128965140584475056635351926159725756221263828745323265442077983495768628116803610297223151114283053557176051537024008728481873027291044323395258922248177815521405851079949990983154677599193262359584771592763329991205106394950746105229326786381349926648699020587759718323875598159962054913337728566552671278423872697375460291776553728280220843680132365986236462394098645425253177286393250580522616394736697234508843655863077457911526543865057807789481178599143918971085249660347131454484627691319700793367579853672508236430698036367345112531758090658714307426980494828369122809945832517968675061349581897468262024377467228027370588815462188050655209902254101052419219969833349605829305271978924833920987675577008121105702458931740683242949702470142129610167601198137673885036329713536890570437061678690738964580928569941657057492649536755816127426670028145221036098429685460671723762782200702994956573656127664271425410734497800373029002849586368302377673685624052896831098578564286868297060213144336363116513195581888944256748710784715050468925244105500786727330465349528848114508464442128660394072054090438508135316395774257469320832137706372377845733322915417928594364302208324923843491042380971426940095919742836580145169554115824809259552030993403218719906711890900893528899813800999191437470358600580522439785137032478405728701886749818562988793216843186889892066352655055072691398992819295923456796582414621476640054917935839789092432617249458621314497923827913566442462074778863477557622483638860403421845637036656690198540438774341994055740606688015834828327842990073916560175969092892419145513338342421889802106447491813460211944470422599436411484651534448104177057801660497784499004370825077491201495468781372932034090109075462095024663358316730209207113758437263197101612834581994478255396239899223166531501755085437451429104201563846766641657959902695298555942296741785912544900465098649251935431233266972075393132907411897832142681094691334987302210697286566101716081805643585383273351708226859898883580385839075476185220215753092923801137490570765313279164596207705467827273122280293661097421210951886643486014533170279833104163653180972342038222824713781394467954169482348734149975843801330378450353710499590855867611857590641895702887733544198953790619469796338478850834205627031084426737928110628621124458379744688766429230769298724098114490098419557612047366228044127474949304181433609834378406115991866542277475140382387971499065136100793019101307338300643099481045760337418591205714810967884260428722838213817515919302521473323658061896082888260832749216471397598870859339603901271618761906253085410581315432416526460460622651090797547156391347521412182513581605299901453730574929596401106094319741529964205200025658489051045745472599758291157429557258568923487953493818615667576873194507688131160242581790483051061164545802276195646954022483155324715208138408588312492771488473655203643910469246406759620788086249056706395381377943121249047082194254137536008621572984457401717116703520626697574741960893388308028522962590866314484002813547487374342251461714845617462828883319679984801259085158278379852885939842801437075609095544383319457230829530561208688330928402174375085727582138900395984318013238643407773188778548192363248560546987268129488749403024157765887363264668677512823438160136116621919841283231943984136162776865567907466682124370343189216466953929858085038383766857355655958224383916404854067503366427924016967762772880145405362649554334775530674521947427579647201468975565387725212292459689535105035782465452054629051651309820610198669699644552050015422774114344452917542188657359872650360902289789798322013921075865508983119932240193452418486531304285461028554250806333641698427715946895645556523406934301645328995339656717471566965298117337545843457717610858036442592204099808809105705636745120422097588225512779663744653413806471740781388143102309751044065062775861633596450629033367886106875023084604579961283738571571600420071185487000658263918702931557764549013221490403374240694026140942825129682211024181432758840043478884842532437569329241706713079894236427513413221684589681668948137715265241438166943164196372700201433910612642067334057506516961328758613022301655406901076278104026148130763341712421546745436807096963695690903250301643449098159879733600258618186583970343371552014802530857871940586746495987786771657650592031222372751724493886651747038542625936841710470518082307069273178766252198012273697857869830937155306037573761858580163396752582617994315780778373260135668862399518866983181354930806682555944036935662079744109666912126705948143780328785437132087777202473264645785096612375253428101191320216439376631763991012630227808114184595094816077244794918327701504679645078750047960208058907012289786352216274539036411790176718616032885581521267402943984480899891384075684664610598693953275674003824693725902127874247152096664958244845647171601142950726955004142832520734244687514850936596822859615709888141820952993329313992970816781094510304109321540813563907598202313920137918208131493420394107120919281678697531166789712055797432435185698454367946594279448456944371153998866641386866212523441361509267223232959494847266752215921629011315857220118435873644013676011216890762573004283370848006885894405175038664293667285566346858173885700073088715465379688609334680192331955429532186557044314659701249125726128298742848656938845037421137904574967874596302871554218398333297254417434725233010577995228075632368597733529978803095593965183946537057479509288264728997603018938410588173237383807925542340254995259580535137117585721301716936793747927779678582651388881031006164707667206102646870390877365478618401511051444450155682816137923032947085910795870964830155487060673879273601086173369684965430713827934498276751917548173190638372768005712384645496959706444010365678532358209853210751897285870202292470211097736041472253914700550730555961179334544075660126104074756417131735265824021429744236630277894611095341679054771101936354885465935254816047751537763493349339566238675399150525008799516304127528354226422751771239316564487004206886333232506977117569751556688307772985066987503490688481913574748351530025386508824214520514582930537769691467291593210499090904198524293574062966955606767858628627308170851315056587001617816926404762761150266757531528335459812968493952696252292203872768648362878301289349317587055774942894039111659155331935349330639490434166651426389641859501892874722073123151087596895184021232572599322918855425247796890292991090397407351439964674538116804388892111422757907450024832520545246907471144896524127791704007741570808949183810463790357767714475243110090329569950048998729946579191913573468314942632447652790146483391319011672912384883408741500217625845433317018510246029268062181054943844975647056006159585576804028366511562903973310008893378417175072208468945309931136245741619765476921934656194114136475253652489595047756387104594516802641996939310099231691885241766725720921127174233238010254893286550441771397085687143575692663999244765341778418057453530317435196317128181036808033924393066544324901537879005070132302161831917119612798629638430608312043059589926603446858488527783144215407445502598526773511745889884247033954537538152535158073892534949649747527939706326551564087743480713632953352932202293452287928703754700921728046260900659995110393779157328874041533183209946241149747956457578318635064951915180537995484532582227328797113757200354285173452200368324294370403047824007350362770687068248433411400192234833967497378864909924753722904153551637392703090221812323178966229887692878141391959856240440076148128264259035693806988776050677699842044948481263344909728881948105139459110152109322461734717825661731544300115130225311937074593064164939819934218100397259958691311261355598473433246674645662956139693622051227321042350758803079411482252033321859530260585389018251270026517461801463470992357028952381909096086018874716394555439407150869706295687982033119237191505388310624547251274983515634277016798041202970462841628793963529810645155513230074051834623937553126430279257883346161580356746562213087608471958104852185232187463541004580007535587644636724190388345138047371767041878934357150561679437808253251737779152089945467279405119736537278643716228493257583504360105519471029594898771121512855193152182745619710914040782703728906428977484852838013210262194655398767783175953919990271612468780821280757147987289713722432546795221339590605672312419806479042700575787820895934037209654850662232131247997946606723823662485504649672634383716355777662363360753459873312493096112814024499426613295601527375678005233236933291034076480681930209752783124724021700060563570551921365738611520881276740526091186532430136019771930344576999416489560245634055535565574730876881921316889699509914848390154790179988307445007847444577745109600813016734337907738521641726260543863921033150160399031851860022466161524277635172541129449371882053350258607811995435300942752577017673723904054684586884707772305950684150756881464608513902515412628432157923976128786703342249404644716950791350814165012947884200821478648885894678359857160413914875471244494122617196443579165733107274034604028508368350174782876383955645410236283056081701941061552789429318362842650979701128983863551946840712833378787331589267622937747998899801913081240388401896079644312688451551690326241651906266214672388167210151652962160435405851595085705015860009121409092941769234504722109754450106911580927539759466687737977119439765010682456815443360460906630367204981339554382442756554821718171709991803612410455086627208893420822834306257546205253020261394349740869620132014879200170584220534698035951197006027288374961142389499977316170914290375983866574252254509394385369115378726149007614864889089861098671255453099495031657198101023871585544172576643993009144258082710714892732628223548110537111551554645487542978480478483108721635063405483524191511851419127703506459434510800236247702049429030981826347943066948864995738123309227059881533984240242252748959341790511033520253893296334022379285308886679178372717400357656226486849661666130580596549629606894639588246030988653993969503265087769354961495287227677851729611500168536119248137390258407495259723695138154941322447300885794297777904074747580836030458128610402979488661678625325459647018044128279033748561558514817591417774016467460933561595208377361961278699642402317097907496160386499727331244782320946746143916342003645213209595337330218983185793738530123033289155434858635213159704854497112602162039763861654731029804184623245173984868078100460417218844184290877531017451478953406596816408577534573541180379284635621915761823171933004318273408146212162881304882311872325159466248711984006749691442790123352340398930800134561676566112616536768591202568686749007034240955171338612911385110650078786484076569911075174498510875107009404846437647986245159879916819052845131734121276138718450773326472671076306998582671337957523875403145047846932883189275419193017308593386584541131720726091140752321017969272316013704136471772115911042983734724158040597104395180742750365091413004003175666390269577671641829190558285777699019371948451923329882508758096321353526101756663637844637927033063629065024455101015995874432523384219981885551544087608570909191108427202329106145328234107276624216471727351305220733906583885303872103349937449056665153164319420848749689783929656282021097766293829784260515618184801073493933403285549514647252111391760635472434764932286554029389304282259289618252859741589043438359859264307135079441168093630033088661279377956905623037989810796409860182479758462946517905633165797345598491068393921983829639275584180703537097110805517492098005912752217646292995620187128390376346478114981688217899385008406831303243579848543930567943691378813974582789053892860991745181981205256453686634687776205318365707788112800378431212973817313503392086518480566991712312935008658093022815921955564243393347050120263961707186346031837091628194486138827398079693294661934204599365416169492157713434891763826052635209543592572235976963481801938650292766210467899276705055813393457681710589733321194471926882446079199777096408526826955248346272358910180259307267840893596326228294904386215719374830523975447476953563129573028543093819006907881665315170717950247946633472963283933157855284575741242946459019606333109451310778399681231576137854344185022300919781957228564305306266133266556950751509149695301518542743664910151750116450405445386390418915733611684635151296177274823820313375366646632563138365735892169057523149462738798250993173164550337473909934002240183269161392623217993262864919131523092483118297092316298897263214435418052150612009287104680124824512811493968185598891716161391584015143815537803024275052127898130500049256855532819700604401129360640663155516865720941668702662186275319422914854847603737784169253491915380872958783256167840802082953562056582693962639804574108310961075705234409620340033629680360345133493541046905083156093888682081359903046782760800347561676912970792335627310256992439505068886357495186019421045199309205242304214401719049328806764055045396068889171518541019544554349015392974936852714013682703308876378521944482692854379989197869813921701949806739021537470437681413918203593755101376676373806658220957183887174007840442200137009862118794481657551700104663990959054377267000632620857723614225431928323235211618870192896650171386996073936938249917359066830554917525759110208639571368857590079320547875896022737714737427029014015558025480526731689988305157900035234282638522987414594762278861964287312101707421466569488944072474361502276220503606284792750701834464042459590077864326378235381095327310080349627762838405212345123670938971449461644643512507602184907813930408682455587462335360730285132370502109352048922919731932857670194731818598851189578434630537571433265502043466754703800650806319808747037992936497377920389298315462693888731321075974160170712589276334790069408470471346467194148499407614454006582423018591359038149899500572440850682738790218004445264203060295087680542615045382346720523963956879536126960300404987159187022336959627035453663757376724748606301582878690691486103755926042566105168293854952820792877305561690306792176545591392232912345031022960730364299911558667299970416007109276611817209463419264861137098165653302405667382552374391294094041346195833416630173300144236582556966607152604269466314635861920815236501827351958597074767788010430597216727751567915363623768598686292132332784361198538286265583897818145735928260834753182847049108951902991399954528927802943237524720107321977012705053473162555101834016307740547087289476019921800544296397176644458294970034474841820836027293682146021243494396038986255812634097744589712514792697928371761515130105357488266898463861577049642734916786539065948540492036556016814979017710800577988112646154052252726634575050791205370296381072194684130440353520814501877773699935569252230046060272028149286846465147926523195465613923753924444093740350703578936906483351068183993393586156514921278083256573131080824180099849550331108830262573785971038989686574458842356198995298868865298587552074897993955605427998108035882159933136168212129054966339369858931733208827958577460536981076710416928805800438694704691810421733802148214361023192205411236437057149770892125499972049312958434885654242298322860409650716800478696867447545945274572443238133213028964569997034894516754657414734880094118572165812649297655757571509648403216333025082164452853651690349231870291816533820788799624036887913475846306967178412381343425346024138180637037201760502438421098035682930255112065357230144888912373082173757091900472239038071093461017323449607841394785642038614686471845968769818496501419822678895277000219268918558722729039796599091070915501721367187864523115907620024359579476785805743854075607574675563160313905830261806192021417455634783608234734314452190268229436878169802503760549404126073183940598489144182220559925572914181328034323306799938484824555756287197569509738006229701563131479249697405906341477684695256593242218872663119443828550845204590858503018736973027074732930076566337331077199790369661614291217864858965297168666518511482308808272815136278887441741848443278423246240879828499833712083603832894493038899883195009085352260178889616690721579064760298253823124292505123570839749332000438330638817168432983375120113180248085469199639068759785479887063763975888874770962316534115770188445095799692012348335228666041209039466452293057023863701197381549841890308159072070523964618797434364014874146154743513154645213327127290824997496583845482520186411332247263471440349135641542126223378498315419080820531286277244835515184444716076101170182713858591427358399311085183861470058938161393930589140979267793986574935043628386049579671166709845502691879022868101610364955517086317616717914538926381867671598375260368516718754998166621794566075915663952364512101884040783926093806461793222600226098028447687481371086117094348593778950243256326246566079877326611811604779631709279416790620146385314489505509140603865306656175820588216094082796191544128631287250484726698772935834939068193186931813426743439425098625411969548009890662617475895949663063532598522650107370446162794452942913767287094931290398691767325463705294229761428000339047633513685510536297872881395842135023071387245696793617059078135884864312744498179220931907756437577406152228716241699154370714590790972308557798214337093534017407565534973252242997941749486217651112508142144261937631564519747243230976101744972952862291432098082814430604142678016718353043978120117886532298641237439455133068062171634350093260432225864877078369282143865540070084720709542080662189231617686828179314614553914088733997612587760576952255729939099243158622223522164741206942176642870042309576092237101365528456558543079309580574070599406862062833273891363129046394140561141929141794027616383426646107670653991604038038872998843052899896869978776992695344775257766190007329051365344730953398949237074533683244421238827597215220840682196087264764861152722225683922795770540166584574351718145511060743427051368632893236948507734883709963964908130587221805979704193959332718762957317288929810746796833693622590610535537142652173398597068674585888392698155036466743804959951120414313443935903257429444495602631384232082870534056841811747213838820536320531323566399943639816087384287194806233585176587665164347664835684735685551272828493020216733814571351269649681050856841011471113512154868427715349799901957318816669025136701225024738155313131615893857169586492518196525818260702941444135808324473554493084559370672926188913507756727588700138062270825495015227514377283329814037217183823737577067247435027068611979076658710390339443188487815812336752328740875789362175129124999966886899293334350732191481047703385616732606160846672643282667672535441354667461803285236992880822093838698645911045465739032503216502747207364825090499290990670380489781242471758085394848577328788956036689231765321999265574599756916017533752245220429530186023378691554010892508280853681274636610472569203898515175089201417234263266821234130708556178348572039200333662168970036467509649964035757837372187185003482219097922371543291910616501780079824903567695226766422407278670985008811056149732169853180298724872742368396170698604086205464340874090758538348520495287696700388007690789074370652546918626413354763567627087634211772738077273116721400731089734652680024907947374937824982784440455528437818921578949999695863834515626621791393601438385751331583634477911639243309112572843393544340162941512779681499087727099768171927027350976281008387662948369954165242272663053704916708672215636103837204450090410544421689665633985697407721440579791725539282404526493262850454341115001484796334736560774114192535753755303324855653947891636103555720796765650259473837920275556642630157867728586615191586707393110147915762381999850277236206403166870091387967183261417918883892917413610415719331400109033839926729321287463207341041866295082633372935560318950689254757987436129152223983363199617647060402763608453721083673469897826960983721968101698595345330468634853810134716122485461238095864892870105121331960726997668220887594582418697036331014622840649043303092627776463172335090683763287024007233358415700852027436177995736475828385149413223239630365477511031354982456504038043716380928421793249126863598680644587831539149534094010551720971632772437099163602735097110944662127505294340959016886357451089981505478015095642834438272260478882906913800488107303257537989931093419807707535074101365234893215487106932410271976080368062628277933331939293561760923475791788132938525385198886373990627986714214696518028255855850322088705267713071689578286193859677977530481199548929206286935637574151682919900515763728415020585844012129567525011411283914498352350513605938625857928469748620715887475294311233362067234426287268288708455317177458116964806095041298050953507653015529926412980550721203535061272461179020295817557276173959821401768954555625057569799376085308138474655475601225738950449807429351039955260556290418479523726579575351294217310395594107598499847741540295617402069292761020202117491032787104284825543132113192508326013333069484072726044509677490643816486226530081771486387630522676066959966371825012080271190184611052619554239953228456653698311020369606362392209521644797037238846687960880269767257057961609747324440290469614249634064892321206987646665891635622890387551724679213861752820841331035311388104392433505244315842007241846478870183234831423309308786678815679993185327498375285247816639718756401739072255122898670295022544557464362204210621538999466406804434060586737335565268186298203301087385857335687823447403896740170314755374944419492542945262260016755499515187938938714607533377981866305297217947713975219708470470288480052210984647456725699838642514284486014522356273062436154835870477769080793350455634760469861615361235866471912917179942132140440714325148368122575766769598151637228629721117209597343311115194540029373711896393049396184067662097206243869732519890949191183877629880901169977543696594418164695219231531912854855209037608484285722822228944747912241298841990046257054620140336016864505915032588601046700828482291641588619197586044329786064994671162366369942114887001142587046746334715402927321159308660273621965065964416294278145220872168471370378040284729046520511334326062026753566841095760371976785243652788193544273124322130823145381330394718817474110893239665649699693528232922209719049840058391632595666142357988182684723324618646366510270504303693723646088009253699052220635085073135694551238274785160609855433195182265164559752674789077128025561303149319138231088058973397960133191262396766164917969729047883583427520096820888927011812707930602903060286938138890862596803349919731372278415734302696735690416872676671154692324191988554367157145513715387267297744234211118445162077088389234964549536953902507121902034613208672511811510160496223380190083161998360944391122488864853579399999281685763535473967080608177655732693076611374745257787283315668679637324760609967097337199860942486243212697967378008926055762567727263783417470659848305530079903806089375098725514013211136132536568244286932978503561718977909389812671724751608629619226935910309664431086787549249207125565846972669241565125366836764804308031787042062991882978277491284519483043932580840978053435561706518889823657617609536629906823504987204294235335587931008663266759318861471792202695783239066469531108764813966301496910717280866276129836891076196028466653795546068318868018077266360126153352716171541207569400653364647727810486043832861406112439843624161971616809475692488535361193597567863734437359706214873090224036314529172047199491437227974027533902084224959478689636143705254497421096234401769780927649118250625518759617242534905574948565372814602608756819429607275248069519291368636137342088376683737151837009080565098310426639032994018770713261090992359503283012790862650998618310843003735488070808636433688575677348680798893936704926328160278224152720318245377129110606257831305706650825239091953713046051385056938010873920873877710801185032981236178551432064635487594179307136551987707044717942232322650633421616431413549195124630364421135947000081692132384679120125676183138974961007639112848576507030735133005945252044308531583267188513099510521728160477577326086859978125442808790813678998974142279827309721229832875501250999070375553547502048028602863076004942141867299416058371216688475824253463625209845766703238256524649494060557036933887615472710029355097879427844412766226067519424561403754891471449149491211743174631539068283743637733434322797306644863252139608965073653368734786889770362824264147878828081070535003456038280794839124975431175512655079799284112840619128200124347925445165000465732210782787032786653010696112750738480147331393574615670708668839538630690000447822095862657499552286408280879895440123656434535206542267606600584670500146819382517682566856600296707298758693975136906411144135539857841044314478277380190788632292610368763062949025500924213771000139130790179911605190180058985643598911034511274463959025307733788355979062580509859022419258134732951211138913148023181475395451124617264581746307497396775487515597484254167655302204891884243979296710824216812373605675860235311592101813993582666137473446306269052881815082370784861741080986632503324378100911412424209311368204494710920095724688872085625331516117776761947356662743468723216372978690445100424839987191507314221396443757618972028055072723616359449432502661546384139174275589893565209927988599583360281464216719905277766562756995829226466893146081014623997135328112136106185715699036447593477877442151614812630586707334889112978844986062490227952440889086804056135855047815544404989677649467732173903125584040658317938277119874724628200172640634294922225322554163987727955481484862614173863418948145756124383646742368691623356218288765037958416916193543520753228139056556482255258951086146078891275022722550789892470284538982880884944058745888019694885627108363598734883635934733214186035897413519705244198358296838104224322383835880658858583188165558433475316963424870870186261838057290504413279840813417050738230683350260260359834265622340916056073497162232505385924029946889291422119887220718496563104585795240324767170392580180382219102647750969541767630321968779256759978008964730929397692785786695653004115924019189867074186566553468475461879547464494248012840769626891258021979590981103399617417385679194160035545147617963487653374458073547615606641845073545044009092152460458461409140155519493836789201512082360182209893467217226440020441318503027045536896929515959418040883813114421895374078109544114102289362616168381701565115495383579712372916205637139181291491424593949885300085838822695492048701703879848405266992850512338104285471758534173348228200291628500070558531053738050634398189125277148143195645399336533293321709709801158170274129428240756861774875411464121641702422406734824610071935161799030237065241056134387084307518444553536383398633886973784681984059640962922663027061760496469068894817285230224119790128798281611815996438804769760852834416539806596018616965477883197166449029495627957089958700704520155715664183519192612161886093308548857637296396584193270950691678006023901148405162376630155374504506473628452139901593562163292401132948530019923945443566501288683915454880095848390020955346691517489216526697588376216428707536855234836999551437948059305224656775065099853413804093465621570266590513609529639992218749218424722792410638107813705980724873834945720151924765215860215636970744485943266443359633988959880496325225073916438936355668214794015722565745270037336239558485354150035062373117872321058822417060919462141513562448626143112816367897463812796268363940255465407488751732763355269579787834427859010836107028555306062869529430319500178584969886395342429974629862925521059045481496150583044099869037007942533549701555903838749926057717897909290455424509789727609482012235360714038409246020891918493487100031930740155246123066476920483050186800153379103418865424620804955316642323800481293050907953188749528105711299768080019263912402758575907513787085772785266191970484403739653979868773295386309530813602299285780786417964469065433911517815065108084098444288364744636035811416115176939108370257990094214002959592198651645328347181063332488085626995520286431528456201073440879663387044520231693751116814849522765764746221421868429659256638381401754828020713749510458051110966548198648410436375565722896130395210414590874395114864306736737151619876281890079774085120125874668344764166146893340017258771645962454987519380318512405473114850822915662898032219669218927569952324358183086945758371656020889463583186631793804833792294582778698915009593799464572940503383031244761910283698301880407376566804551081330045716410711643647802493792836016739554095642619526100408692378560458039857113089945726806743909287767296443467588980923054920617985577207744982547095886977409998384068669389492268625346665634452024022106556124354578240001913597284148867115670982211922375599980619185146576404798193405790276682703017965582119769741928379695931965995151941230885490294564191858892395371037257493665508833989776830431149771444927869521424086559425136970851075732017375263255962922441094437502802093543654348282707241137277590013229738974515851598277754876688653691908291717684153059456921389736789983689472627412354911525595811019935991591288513661211273506426251174426009106749621839117953391004183957797831431042270998579934818691189574289884056437008884256740775844819556929240414351802610416812835870121227510101922190221732068586904762383155380650688869368566986794491711584712520989036607045745887785745088064601777340760627997824082333822123810244465597677938292300123261926639632644269914587297468802532313976861886759880694320620564192892529913512929426007240058103315043102965215699702424359686758999739560813137312232890190941948067015434522036773032550774818216356470792465322177821420045169597747295830031209097960384265714074293463642057741267950048431324702761467466556431912738682455371359049433152146056895335926842996655347448358271537128862571026475972663211287240194185056960820343988010332639878169575253584650974164633988988619935818416783269541734365698219807729914031728936041284330672976672005556266989425686353891538594800658584021522236982405732149411643916976629078073602204468371039188461995685140640794043082449528446830369212616415286436663965344812120884325469511910185912062211576925630401940705746814651371742929690215916231243319670578650671537860612196840875032411619935571294130484557228848729902266580194747669465024851941039212887063140154778040857740219814906540220543670908146963702077435997899611906798447800786080485154717676496661217405647211701746883375608583941751979590918403966646613653262833571984261496001042884282917552972782051877007217986033133328966138424774574414387652420685408697589955013474783910886503710694201328100394505980787516681300605993369854075517557578245295598552330840150059693477076508170678506922957394965277456638256709709738089812945889781387511085515605633017591665250640528201413583364923129507748215888882495787503883024415520384082273252543441399586602153976355619847191952994482465912601236152765617576052498379509884606949850418304013112255141951202087876951102751341664529732738667611117677371742857361609276936328115476919147924046557348630029977313155370256101650740373105449439325379058646218816911641264621141328623306022052189140734406799578223352607886690331751010762299396869136864345118513513997303025501940316476864510331718827923057758339292774647252526823051202316691806127265849687827082633024000808111867125250991342974529653127712617855638469911867115666380567281765027807241850610121571761372736263064356635869853960844787706143185517844565679372620375251057251891929576970185662688554245517536333120422694472419458847822522822606677876961388372632571190219603722613390628961869340697981374822171887909066893276195392100846799539869484146696224314304918563129453770359121655672830235708062820318982352860866199119739644675846679493612262759755838868792368314299712380907786726372716046206618715949836035798100561563087302398327270662793742303339135029716379672503732030535251457450477987082160334851137852102578878435308289307666090320629626269441019378118130937333972024926769710355168171153896189719396721179453026024834504090674262931201791776118395035733592608370745658601544897575263205852764367585054594879212599780246732775669357335838672790914946579215515512770546055017797774929571851312707915384996862557003375167564791348719128108989384365431533169404617254172311170811828499001894080006152186704673252341022981703161906601579285171269777726407288157997324678517248873689971426157780261994919278655712778527758433059300963114606075092836569765974342560333473549361637483148640080181144736913116513669679194179313904366188157225657672455067354677183799871336793058507123680987343633898938440426736927206336690554404301784026466611616774592201335761488701877281012101832364761426289861538029845877147896549494438149327079426177271408039361098861195367238411580956320644834686381947484429306709301886493012343257422559517079056615568372886279165191275546357297049029574699747104985161999559236020890263877101095847016149471188095847750539330787102582495422914654148325171955414174230782694296754419463746926289798896327843533998918906593485010010736094469857924503909349917920102364073672498170290592868806228602687480285625324526220918601834330364959025745719488439344212949634729436492272974971429625463358029745716755601036749400951908335186273681996651082890894289258789339298304504388295318918295701414680273257108916522953761995541808089797110629589939767777896561873058336428273297203480888027565462508759999244678015129146385500194086708489624715790755945347967465544322850920829326875036731203973135917940386830752280911307454862055606026559698642775547196347985605539299470397303263877613720389987885381488924919460805701298188676767214252558409463238454101593067463688615476368228540853776955968017119826755103687571796167062039381563387564281721179990540469147905274872778233812072580624770938443598339920049115427731334822213087664671281505924490877970908064596989018501142873741928046913129008101136633038050349209132052919483478360756601141514217577630052038228837550853838955511900665436340913058128535877144435976407058877218114802465790576827288947507479870887607380931790511351875282233266370880535716942311760963088853718218477171958370202305827445443323527209742529177742666419022913472205363820427828657924166140466666594110545401471555331191437307344620367776304662707261423175628333462032598715094208574338148333231709166225053750901752639152989436590685059630576150313627543554517388322986220507208032339507524727418896396638809514085571077440186672523929426522926446237139580345486868695831161565455505292189026226765829231700676686081203483154823293870851765722987180189876335640691685012321542416925733553710920118148606286810351529520765130544263440021901493424035624457063391453429640527443942406420582100152392548700868964963872408349929973094692455673349693338098122399012598520669425971104042197728927932429456991876012941008147834153709004165715222208211793455108221768622760712816299483767923977550586932170685756683226801878390201730869636090154135049497486424443625102780602806591299897065674885768308387283991835706163339821254714769403179473107400267576061850143534260446951107957994535349254171685458777211272971540020306521521720225198552132896579024961172667210264019359721141137218039832100137118877894274750721560904199874731074106535059245964082114093763619296266335065002999435517878885736604486665198160755531763206914842952037874750934691797794513053969610640541945212861164395019984646135372949232221918125108664050672789623583007415170874368556638831487752434845718487205521383819532989357605589249092449719017654030649381900156567364354750948574214075956841243364801205277413459551248681776480602744124910001413944520298629824831465548172333099908240417201262618459485760821365983601015533590966435684761652741393125753739909537300372798295079427813239683305827987869534984500310706111415704115805931096144907989293712382917007616179448406458960742015217011325935281050615664649557394754524092397442756216763799934947365625059535065507960039312526480417968305909978740343239998724700506557835940897317921128423062349321038087687256727279890914989089957670997014711140671905404884735609733688274610408288883767913449941737008796305055242644777750269556866526645065123611757448943392796795650115832180085742985389528460938139910678565081957135756847489113526263383052249571725751568355278479192740368762052827404705130078606386541589752778974445457013326896711836801239699508296639543398737407280943624500937708458330763732850445274914681092163658981324920602964140341399084373254711464711108718308661329517896443429667118219711743186909089364343971773748125073244339202298656580890057498117729988990741280714449328900769069789839791264497764557508347446659738862753082607949464262070259721458205988277778148646985594747111447886430879541784764328475286103363667914441363951598154956960593829999042110022529028721486729523379721355115585998329924514703769418130368590170615228134162410426141079240003511408294998386133356052395101777828749114339115503763701435184973552302561662970483925167863798269217110832696819640904660985154961292390180213053198467109020778449379319077531354173811468163399849193017267666060501904042515732169244166653443422521162046633199042772298416768306668680218451877574176070790329345685325211551061111978517637500183838243422113264336307683916269721333639580099464683295436834908775614187004179010366411796408719128916653099051000491601393748076511383632156996512259711794843596206857393113849286158199505356989848765091057374801366404359971871997797068459478327314696005724789098190380325280288221596311760183690070870562927292065693743936057751685749159558638799753958318836832358173795363968534000543904333309361489939704320088117651715712526470731659097630143530350006305591060001441906999465891946526079103418544867907032253403737036230262663248716304595279865858105824986764348180084991623954110638748128155134984864288067067930500588428969932527460718029143569471060163390975446214871478348009661666706572708433034329678558177707817816202306656009758582412835279075818347613705500882223823054114193249526332818318745267059485525001824261551136986605471494180593612372477330977495675156643561539758335498143071803156876704750114271814677602861314100540942084460260781632801864886620072952564486648611712943965218448312584475130211435387141994601803796603762080256252676098311889584260330423162792568097626068248876158053896393380189173856687017169038784784479132796941224760234372557021779607042628478420160598758051229434375344595645664029944514710313011060480161983154550092655037240919624203591214637920377321751898332928205853541355481261321431581814112187016188235141687468795417378689465111904506341063669098970860744997851996492961293704146971518139140360319674992862791462153107500228176915861128746454339288904666282955482623881473591226215949845404552906346280921658316792430064819213856457080007115289678673840859462923691085663563905386457919385377874380211126391083204261000830087605658513689815158113372169534956987344956669283527422380547244159646512022924979122798593540591431666664069278189250946922890383450552307673095813161121357781639086168232779876165182507394618428036051013557846633093443995565890491208999604443615447210339366231233381423254197852329324247677390150976654409955183905221228723705676138369600366577257981415855178375199587874615771561370411177030620841795550506529118884710149014744409049137657883295505768769049272535280226140252812485109205629104171082833501690503939792156768708449317707586924712843368351963081362221576332917618951307496744520256640691585053919814148995454541955209607629056755917640265279222405179824842516978099513019837654489314743295721812446821668588213263622592988915065720042415300854763785059581557194877370849318198066561737943785800944476507978615680866499891901477470977829433465200583172197283281746270752619772052378012428502586629580554530726868118812873574746763415337391285206154192204126626068323657504734426213811633164832088136683055658093274525086018063087775616428383760681561157102773383337704990672283774052672984341660738556871133848074633012253933862945943665268482120184661108404544733556694638362574048650292322185738757409210608324300539927223964246585353658246407424580361941212248170870401006960161087898768964032595902403914809863634031508649910822122828982548495285161351561530691744402492189404011952747118194121490498082397982412628700513386121262407423484528676749239831497537403437428934366015095362313553178342199428953246024420681362725080549996604711842141508930918268697584714879598676587953432827409618812080661906974049193195091831895930318140748027169252362050074883875438288240137821305016651066093275121849111013109506228807647677560838606702200071355384005965054062984144662883249657471437076924811326252509640468523502832059797806186084016377272568699102559190253023035166103080236422762592415872315134498944495457305635288698765264360481832021979380465106838051372481486398458419048086977436974275134740300984954435351165164015538612281384097959620961987837675277751574020100017378445999904135255112295288965906557318252585522601095915123305751090762939654544434077524683051957138693299157601201903751902816857331342947352853396489513596332123007077650478372439047731229521870598423990759857054834250638774980620677083921646736314158514870233586358713989082064070230667426855866131237169683599259574788424293967889060603262936266653296337935998967626903881760455513827268426563211283003883235853799160561216591670910843045263091398864378072386700795976809790281043742206291690462826300004289057527047877170403650962535445094535449916598324498230657285422903318235882921723051660501675963426564452200700569870554999041426624992326706948022774239645856050433431887551742018593364659501353602577659419518613195610753209442840656277167892156062930311427885193397240147578851093760167572805535732025202729438476903442328685644553929409038555789291579328983978722216027874404587279663492306010374236482293623654385246425065032511665789054589118214017158804219900777785241930564547112811200674493845763562585896082010521942330269427084541717909962332072820868650409287722573192175586311328664217620357165678532351675849179144408706796417522722689810607352222985629895851543030146062132936191332835714447626924588242025810586912484996802172429935716961572622675629619805865089640561229994188989971073335545136779248507348230169006611670107962179798866689367985076192413736840831239943743990803495512046342087515541667378289724002539968481457755424117224755075416452741378767964324375896460973858739320207257065170909087981853565434968879302100560985490240552356692732552048009571826106009604803509302162878838798016595562551461445097976227381405274857028493284772547644475566826755957518019420549765818734067600976307631022975883003242063367495110949524186884951293476958324688196130946633235868029644930652838316372051257806455997895029267067842393386942947335953648814301935465932225855425548339801563680962522192168990935728296899726554623663484471422833026110020591083524282639503437346404150146004139668365229606661556762538963692135352809126081541043507917194249630743322855697565651858753897348677882869510290495107004998988836804383045385719198760349942672653095123335993961058571687076775840364755212287177367705305321141024751365437596271632284377106119752289666666645479013709875953882906444078964223323111301578466309477203692399193687466375965688322425851722588661567277937310377027437509797900706382428113385930864180385889280340606501410182482846361324202465823351656456874732381156542097909462389560721467276490145024761121969496875020219314561102901118595427739748383077335282461929269989423217575652241224165609829588497924962507710796689521408119487014257515399091848377932906996943445243805666160569763630417759727698196316718587258847195168796234487851186334133018876436695042222193115979010994135433615127849168001888647993579899907853486182472792373028501179742854156283566189840977361862405774231776716928745940068656245054442936749247089692335056748472076403133138738819501116826675146073916761678994577398962622317107659879575972751092874427677444632788799584948133580106497431157876165656004549147394984335159122726370830508976275707010727342631584617754357157285743908313029915135159486206149186429501072031699208095111819294264361458704959929744917459913023110619361947792815292050552100914503616781948047472297535378181432465426415106735790086814184314561906380477589106976138119111972447049424769289273200010382347395064249313858025490460823232072319679999323798549553875468167553742652289002146722195387209886303752701800716167011768275998219916778636952521345442658764061744674469555181791280996954798490129290421094844183741646068468172151025368646220791909988460527382129845977781887322504344937095843143829392822974939053788213079093079738743232224057001727338351244467775388491228821349586049205100898633131063935865412916459943972658038492248750470742041081033294073486672068063606601386836833614472676603788790920832941612712272843550522829309601618847928864403845417469293511658215124902995963657293557990550730442116941161903580886934348420068417374589660138536199431753971912597339667897140176173235690000311837937288231962379381452434818830633478640006602964278578469018892948291264849836358531136929825816955130560068642916878808664701063720395416954009678247102409250911488166966782576663270586522084126821642202280152228328321617655364867928498719886555512996055793555379842620061510422672140619956813884990832584485813497990963536324734680774373913887786665909346698806987476360682310617314647237680527822426148450059614794187788161094564143495252383939858525951622722304979157145308958529513458305173954177438818545086792558554969797127793631050108245011338076314101689076723328310435578548195967208453217041469520667517400389398442052406441229027412305781312128872314588017422136869619745898050356345107044257395144457257099822762199361942078111806838827629707817992386216126265655649378074656667555364467067872921243357980518492329243884481789732596998369864275263291348445812489505708561690968153082878189017780577702402442262054958534382625135953209285833537341021489326829396085377418111834496495102222723645709945152996965532884038954734459471086172308131125611353404790438599736971159423541625467956885814113120102499575634182155569158610915157442772762379509863296673932265381415556791353666830783362385723853013370269411138837922419030020494821259719013886811682932682896282369540620335310122055283684536831032104460609477792645927409570964993422633936253676498651641900029835426839783642207343692438038401478645252075615917782721108279750559996241545092279575438833662989941793119918935943038531629472206374724541524595613759137712657307367054216532253943479291752162838558210994662169289534755524314094221585376698470902094956045110593879353783898649790380543959118144254061785692922985886764777086922974957955869953797790080990744193703119532333782668024464891258134774800475424194113773677392889957121038394727163759091757327486396153697166473441686659181922607297179830909221637691201661526602861798607134163635671957741925939919179962457583919084257830849990226070560242465065595913465501276450941181253597167886169253145283147009600125168044811347181129894218442394213156104894689095965802967355737315025915369785212290763662756318415465508548517851189779425829041847629009829585668014938878597385370628558262333241962979084988926897710726518567179181628127155121996002557662646909947547570755737152287197273106148489615402187095324367711154839269696539164369210271805121194656873213253418535316014340987422256294660929424002202961959779211271506858996090262331096745575094474517755922459868364348604353308301582062675961077088754363726707424471549324773841031632352638579220939573864244157644226478596939215085348029620911799045678223344715656467992693367452598502087513327217714928202496175216967020972585789346180520831676902409559367475428863442175544764684644977189262797005252741155076167919288869290617837500556935625162857112255816623313085729608201651599365707232060169829218461515551462477322914677881699425925664654151730439212346550927843438571950371792694991347424050015487428547056537329736014443169242362096965482686642979404616979729061313088725273025398437483441916953348278523108869128062919464517840437324706966222411653257833694895023933804189147943678683704858531597445559577870718393622108164611918324697559261201348912085369398898373093152787588324568548617928874542340163527317268006213290625597183594560142211136115746931173827783847533933552832275186162650093710074371917927572645829032638981882797862420616018233938096248126011348575855722917899299462372341420957046380432295113827901672104570866338675417410780637666445426580407432813297210220146415710496826082437903723548610234125474763957338141811492697034014701008157018769953653946525319498152792889460896789406211506981492710052363219265137725187745142577310842267224889637656835782026464429460985351811483322320754190305346936515349167093263059331521879368299381305532056109862764320363730565923971450506426437716156304224415502097953327067467850504199126048846168679189638219621902719050791167233868590008475612237184483415645006761071526230923081607780647222798474683742802429869239564703316885130470067243607556115395249719509420245787725966080467045901060113104365055881582066320911806346821237990179483676679158781658004361999965095565544191147100598278611018594390255580809954110290500793056825853547013693282478990186505240693404245128847252264546383963061321355031716183748965232343834476766236132830793790304721644814054205735245834393283206953528061202852348769536401165658406032842767191896893587103981024110681923691785363873010936998523750945128909530830340087655766500875372223272552442745236726564280264357995707904665964094851943396377955765727961005654043027938379912508469676831149144617405058232346420019459890810486475858399877615736076908166492050066953306273704457830511340612922210218332970433262406284964974595659963903840814617962608991480265964751015851147511518639111558781789354924009047246857352864633243506862886740132598862023818061808529758589991704391193442438670416738050538722797753414940222022901393498129637266360805110552463705973461040952794934793609373666406089342782211812662086233639083972454863895500432402232908218800571503058854992753948041499705842659779501916656279284506399995676301200419882387126828911066017616160332740338347956703531503158854520529858958048587072361083385659857879758459262009763372146862454428064348442976548281998819856912472109027770058946886068939446127753727362362562436056845888651921107823058614511200774886492220758837278291042182327302065277569296621612701337277958331694244002916905465489609315062450885787496024517456907912593663896419937235551950739386149561472038190946510552401284599914750747963152143077666300074996616399204641792917786499833900217581219465421276746257520909855282283877708562396175250474008725275939040240881704599739834137163485458704695166554763082584559016129839456262666113813934044527367408317739545857993088761815853111760428325167204644795005295316021081172781191938993905753157170477984890083503468605672234603161608106299112193804911950637363090405447204933049416958973799515365268762527146215917777019142346421169530617729430494187336770427706220988826947685695558595874877738035838709023151645435133638860942563581993087819297654771198086371076584574342520860521710669918527930644500732649280613173484623946625900147253017982042594848685965915559330570371123058498451392962137932344165007456670212658559250907402831113485266121867058883084664229956732059039148687755313817286559180840499139910765377652803337105799027277715909890748748094905320485025486370580593433242479678308606954372420337484004568338849081173537578165908741306715653485668642925066863684819965928179730500262497641810917473370477068345585081446141242138273546594296431478180629735419470768329815199468888772535092314645691668498689100977844031921353081652201904094173801116665800280748929276899289986486594600780590868648838023444477921883126622870732122778053425607494938446344263715632565647720297083416809650170816952507866394542215103598749041070561200775785881847891547965332489839691049763224420485851534674208903851095519847175691520465510081499313845379337997901794381117442094411906724331070000284736474157735898562679239854629388909965349924264488258358331340257645312687542251332633809574170021461241881182914018045597828122227550724228069739488641177457549164948449955900639051047502765861312721905226847563068177089282164035341196925566991585290344412215760012354326013596752947622798782876833957647348111040751880483633866232762053773572609637556052993607805050536811105552138104722975151715186368585589131188054896239437899889179081210527183107938360660121962683470296863207912691639674154260971829771768573535966450474640080342653646824185370150945859084377947469022056980241161768426875354977050545530231162209775218565758126313452204227090413572615770782027026167597065028707012283440966925252857130623502054905826883362943330136540854543478923192698090024727813554130359451425410734555579270583597402375444823192038279440129587014149472784152296685340899627862282514769722579323974611211709438800009225905996304945153049573803982618633360553818104410719740820053272123108428468129657018537687671835278202605972358507043475545432539001835131669712477587119797858806928637577202987998896767236724845243530415100888376512072478244026037589443962300567419217776457047532078253371027776808910062864436955530545013780710337369508626626418741148635749037252311297024731870387651441965833968959374514707612973248330831399765196857059494970674000496977712211155333776167208834670621766410698857314825882110580632550260597103281381260538414840282692799576270138371615949313932421783651627069970672587314090440539103547227562296901373252435650759429238801866264332857250965643177539693864078209364862136243605313054043732263320071730644346086101667447223675381504341766818777141557134910079624269145081491646656356285519926819158976872959252801117763841176342974824345840614329099787371995346122425870212290631291906122221326487676265214283895129017733285433509188907368475967575104803042882849744655277435090594672712002317216173184230267564064800298469818210684593614349592564759212934342642573062058410158713533948675838598530985615233922034657586715980867208046819432562255287823213199924475877576975721238223733944955873810489520455662928513937660503172485036266248829921632915469599651459253264046688663944283614758759657456027479876991980552978335599565780761947981958283753399493378606777213386892168162368302603984434005751326316083769184437569603810541323233241869257715955825195086289874755843922166787959076437399059370752328396962189978989774924926389856560328274493987111993103286051825671791125639524280533556647202688129271339833290909669709531100961451078803194730486780858739159440850857481846656483267445456636898376568932941184515736027677981797684982431666773281663740651037486727619143005903750897864941016781302059914652619716581272328020123828636370460244024255248109014062393867694529772946016191751506575929762080986476343922926921173777508587988874523110558493613695912963914921205040433075267589358292574146684157592749702722971769967181133526713679149506429851185171142449058392022787510914611859568550609348989972285360887349154533963074017106603436599685785918484505919600729575742635220048036189855568543478047199332977177967991270420503587485898078499429805956894711557676838329511547775207613200417869644341139153103432179260550002697638692356290852900105085044795833884361613075921880649150830263954451510037778943303093391730944484387287626532469741293820183743602154605042484095977037113927419301790830086937423297931441650869192117837961839763699091378358344007311277922177131129165554596561044016685622020536185836618064521251418824739645623094176000100334584544817042467537139707375636368793252894477272559988290722921762603121283374551664983569592953173215857638548387211089427790085706749479713682884614607556484040903848648780110368710646346941714185838031171677857666765468422326183945137123356358436474976022288559788921883666945297750836988328867124742824798666445538862833769065274619973694437617880521647431867075224166429541065290103366233113428860058369228778064441995071518473735348591280274568150117588092317957118252155966577997185189998862189384986624568635292812739100452905088312660262378763074884730670277549398228186295439422057287185898919946979154316544642722612693827081238003463557669059637336519107141671167715798251831488374898605616906448674380818294737850582615426164991120418476504804645538494741938207990879536116768021808436289961477833898986470593011653439159137673445954439444070487603989857326958861387309956118423139947517702746122340613978615321713028505015433047056763092293582210368371906512727023090794848895539994460254346624225362871782121782301568349147319043553797859319623361425759632168955523716433366384000669085954062082136047774584264333694213719048583156296663478445936866576187246274734968625130366704356763565699784276344035952455522295691916607928165707942080778115108505386194611852970794440394469099604324867721918437134490114209577978960862737138812727748612226578186663146338085496914203195463621648631252449870690566651188394290938233644811449718905392150918655529086112574952928089888281081152292417560568973892308594150958680022044271532830924254914560243371419597980692299448601298243112634124154543217089338957912569835734853167597546999123016745769860623563844764204232661007050666001610273666203351671147681978550755114467629943879832530520430054730483468400594264660532200354402746438291261425234181240273326977335073179308573593498073722725210735923314911130265022254389978002256886734222949945862764318161190311856105390997052014138259685732609362061356720879392809117723553660705631997005725944472622972234999379972070863679189367432390923703626040344583690782888117086266245541593594752473371960611912312278003084824747497658865794694551778350358865029759905598540377831342247371011832556213780432382326816009123564564369050417254299716208120224372362450683981457440503369331101807320276639128243827681254928053764093550323844166289754786442277056886471051011153151255900696172220249132065934570392246905362815684763173539318022161267662571724823173076633109631021842639652686565873623352822112512416288900077923022367255925706842701839745812976423911608876978160419241828140464477010674209802635408422759254927895924130187827856673547602848124538471063115090122831294657095940745686884896488935677349321916306063306525600611654492166127697578875233482979984859906642727550508218442793066063599750026230841034112599314674203327336690693120979169623961921077791062427029455705799162531053446201563495012288594170883627942522434188173912812465802591727083481505115101676425073034555025802221289375439792843721597729703091423572227804527395038912243015385157621597268650887368210830635387050694011988545206453690523467551027336987318782008305412750424829937036560120862718622789876571536928939700296826989261253492709530857517255292956427141806959434548400315860583885261035291907064880925109093189566580298259704948654432403052778428791488709532597776905300660490546228543466299263292858285322953616093705085403734135381333305330229789563086141957421694806262080763890896476198832780680504860473095806612995701172559813795502668102178419605397006372435493794001446732168359483378692435452674635218698953271207575304056756950182197498951177786920745212682557176052092213513852743828878877659569515901023715115587216233717914839477052710674791719446884292540462710024710172644102208873402066153527703341031810053563170655804498874778452770421602488706093781043076476264957046892637546784258635478973354200879327315624758201767643722151461622368861119864798818179050911999765897052508645347922880794636601057353365220298555677430676933565464085664153295587314875548510302122354837249518473846395380285086779439171431431977881123530276769299310798889915232903828076945244791336671773663958575032448792692834086949080145225247815207970936206911211983018132751105613776194705671591289467544351907329709189304038730602630248792617524618920137121231826126878558602599106546785585708315282831051717307359087230575049255110469153899038621472751772285661871950186610839598878818834727597911976409757953687973808754998404677316766642397104225640517019824699725947852901586691080440357958914641536606252323151608945612812002327174576348537279269688341815203020196649404151303669984284617645230337343581309267218368858953212273371333328726494703475727689616159620449405155185365689187013881020165983070587735756268437690627194066799550744561306298346355841843817910243280707858362139487427453546074578780293949255704017043766215541070845062831626942598601340875658109548695121151660161155539747586144999584487255431570818623622285735778836154449783098877387332438223579819606244376822605964705829825135296193929496096355266492544330208813694909476474615630048856191656750673752437103669278495836333299336443208859659131916214486673383899340329276950371307023125551953375699047196520414506599734740028518555074723256829548511829773011545524820845421213212504468489427711095299444086095290087124281881294356215067535152096636939437098027144749297437370965779788344731219797236014878806409952857678776213883531256118004970932114099128302449006652373872427351081024641786804673351054640739865561351412289933435107387720509391439551520265970732589511872939305739453632870075411295958002719309351646771308160031252022588853184779065045148085904650599811301839931973963870106033940660959372716357656891040509297240215854387003453065763990063666248785100405486960142210625372001959377101103081420981988625026693544240839744911992019397347231638825275568414444504701825318783657588134468579157900765443138566768640050685432001770654307544155464581991450229207024793492727141403535513546056407203193660508250075354071505185995453112791341630906321581957293044263355394451046506348254542905923171980221501713908903153661838879778089832848713416873678212223865923850798112871164124292756071291827963507806566597101235792388346766246083025241967012691178870781740271666514926957454141896177591159597705896495479936151836813017485199967433844210487836579777387970066842781938721756211554738863927291544199781605409737295282930034513541304274687172372045392039394724300272825248923267646964977353468396226978724929924101109399801014112431656142689159693083886673366049356962204106809967292240698873531352483591894751096480607905749666347242878189930610882137181130207935998671240141131493351431850487295340907214316383576866737733446246476224411033019724249000434927010292067871596142464506408387314489968595740012659104556580483154322874204041627555133775704045089545253840937964859953142801253602070722894744797138334583086830644465703634693068122136383428395935347005723381074835931338375457075580346701733733553232203603182728853299391053860993758998162631885207777356613353422290639971824231348510688317133825937320780738231131762063857521827664979221086019267901261095353628392611162778288614777460674482596486477932679120070576911831757453837890228399429471210992834342766526210000791277922355845380366216883141810144735042231110356584638931818910975098281756300188409983978007896910975582692329309730322063162947589236478400981322612767438566226932306765433866588182042742766109442232207830955889975140473342266909346559890441710386305507594468670316616777765444805978147216330200033088788443880866598874145114332910366756635134114741576542204011751420518069375927359173667025697613225913915642418639025683214103110191719425174922871262303896362057143653532124643517663205673849609183592573582415482604970113973543787753047922517185853492453984860182991937567512451029257358099618504556220550199359576141789331068466871075615529963201394172652125760172492326977901595774039476998148069332669933094107305184423104656766720094697364403875249366695865506382254527080288258233385433167967275473181149980320772300494920432531133002215974143260798718961743414641705065844785132445536715823889068154814847439804649119299893827817343438782733470655972358240407808852868980733213410888162813563046580755990845119890738499665565330217920246093858703110885046070039544054639287573943586817328122878909905376634627080543095917464996882315483566311343669956121192192101042603930480759728076301151006762413697701718045045788446408054245663266108539788708472121515461482404290053338473301935246466149723331261681522724014342897998527183324050925438361217834824663021224076735330960567596525277935982132254664158027733662486112318797371789012060201311221607427099650042702833471680197802025545120884393810649860725383258253583894930782202297391448339839341916636243349523133491227355781090138819666370137718652613633655685836104648283833503385521702547947868900300994539951663068905176995114032943044606030591325161036164250228432067956481473080291266635537493159779057879912317664145151541598380927676277868687884693056834153136902186878808341439043836217459236792564987831272899207010861428680409372196270543306981136366850378126243806131878646026806823146054095759255622587878721641456756627482681350150767124054112620423333340167515395734521004260326499563633691933009314337656228226167890228170316373259369664994463293703455607979280418019060988987660912253584895264246939475092332035452303956429436639934737937011091641647737839074666090262577517804947554413567666888697557717625114728488880624538600269411020658964719024221951779911981376365639688076928124019707078455631092737569873741574944816038381731259428544509278344228003625433845224159483555110595396565350385249171610339277130558076896819774905884426467920106627008067553080648631335625493587802463842141557819136980035311637106802089751461714299425519252274781701276497841861989889050287761288881964156547685303175852695115213813787435606218906396046169846140184885192031453607156854607501767833739810939141698905283314065364619292010509155682707928286365403371113425041317510475822217457111003666914798635277455551220466739421234675573083310106439914088174028539288027258867088326166678067732456693581919043279728321986830639552150202484974442032178862665057740931085506591907477815543979808120637880700729566177990808076547993706918492615096345138102284938873243719188738961364140307709020883992166068605008658238070051379442182581626089806557732509015635841150161533164536658055017143450396832709273682156223889272124695427612697907218993832580362175144173002765937093986048866994763454154079443714709694558106493486230275420215022276634619594756826188151278175612237451419022404322600441661947037158574436017226048283297646118751608722505379622172873882973359923044812580187971997910124613243482373389331108835848047808727274775732561170655348291573473074429047232485406934524768735809323971928088011228174408466843875333884727260711637667521123109277743964942141455957788131620684968511498988232305534956954497820731307394989793468599405002139096947385482253294033598902113056889405275134914414362484949004939468675361538748819842378954622153885217375432986270305034807913634784613106050398039849253013243238949685212241088594138367350010039702818155800739747026561637772871006514663128391190366757246112011268177462588108885783409843038252731518710853639399349214521365770371193898625740918701248686960689080279851651715878557266098132980205779425199454355706196399410095776871796992487195274335876824119042067888120100740906704691010882132931869203178441118882009936288814293823273357608434641013006095623424000938187932469651670257059446389312302518554849202452995184471988955439823818142668786928720316672358733982869121837133682055273292873077441812967789556939725110809928196147287815006633574311637619659403506518122475218028323974784010657203286204314367875615155826423259899404023403562000892521196857891249555897589674470473636988310590160388283096559952601101606076188005182693398961364734045352458065284913655266535033373817905304533494886076307571930150225307062350131645340157129889694341833986811593094059857671920342585050058183856746456699785274230171930182989054964295732925536574027868852329995757746358316928995323856724186269965771264959709035712835729434081658223103351318542063434041309923145386261526158386703794551735637773986990899350215646352618498092410451188692804725654644878777741274547999671999312345517992485563141440603894651265574430054555845728947993346160228399221568495957450586418689016846868702542540915291375906063110113062016340484741378592818402499866659685720404394624375108081102396975180855805574679906277504308126110431506327432225313072051204700193213028714421786437462672494927751559230358556147474420465169236020705961830633823228772079393570931305132146046608476269780211174713665706162580270900804159282583456123791544997101001215576659095675713231334144754122873638670009101624491814287680778685649223584951511570025811449702544032222184624124659499038344720690750360463296047407256348389084786011878591602129036424766703950425136652866416663578292981251259477528768509581656525797049620401025014644052984685391832285092723971661566764932056577741139365485349936167524121947741956536775561941240676868473130626253513036036045536098259919391641828837283213736507501743072062839200665135781655065554915480418682562310884134798291140680731974432002324383893774773158476309650666647324135718728268685038356462992247133281012379537318388948606792529691869355287555479135307313828877996604378644785529036440092916151638788634513716816011539277238452994536989402369117868477202871413663064215361172043977843012551395375439599394249180211722112478600475180744756609889447852571856055004874883882705574948987320773985717648637298227557525531923962773414665345763062117608197099197258861952763581317752136229676494543310773513804786229593726224174419866611502320364960322841760735928549873799676396929759739708212853833024426605629716447207081318872718760261605940438831661199791623424455075281639188255594025707910345921148084013851890948246858897968155215249201709194532056429681033971857600317520787645567072541394202590522719239138676844418877136031057438276811397326496553240158971876091520566319421678838935922572507046464853722438859749577972289355422544993245473394962337021096762084844204270589326248869854690466428664932333063211603620670467078930306425611149966043396930245920952629042117759579897541056257462989057101082443868026545657582097247453018045767130713981001712425701812266988969146599412360469676366018076648342876705880028427956475670058956999788075852084054048742718475199319797724037971386606336108860625601553624555152152910480220121251983241738142880827827605648615750013567138681770090066351543402155984280482193394061588659709631061789516531982274125366863741389109993060020882597771065361483698923114596346572525679028319896401924159410366369271160488550981349912243498549115282519379155294560284443483122509797457169921573413563079400620597494967317718612552356099761310252179135100892752686987471254256976491764499510024616235851054473860246786090290866388003847436871691413510686276735173891167779228452096405275995921091234238850607192450824155657988329708448768878051413784419295093893925633262903833546716555207560823613437734648127949797267609254665795088743816205341498303100499209767628215245279567643808937871119257096669333788343544684821878336049695476915252438912127763539107216276890911167264431012863621783163908257202205641034661102444804149050657504217508343566711692418957569285037507160609394112014391636071705977559464170908795799452274111257110924257487977848630249382890051515351387616200087962961271520533632981028350910640208310419347766982497687441100205874860046824535297518864685976629694113977147276135297271365513997048287445894947246054339486206605117597722806105746144856191116844139624431403136752513218125882272114205005385657142960130714747083018825071942641257439871351576882483681838304989501348379902608119052744330898932258816581425457824225127673220366432258778142490389829908077384972243452953237184541855394916704951881325603814699320685141794256588410924509121152915783203358933308395136413136011306708150890940658390824091207496601704188104631061637445736253329447989664531993292308173072013646179665220716952832307791620406631819405268940084199114414515214065600602619720644608706742823195827907150138992660975352669694459240574652126423242863254201309578529318100900058763188285026070779156983953866531573199813626599623961673135041196779109868468000858560118906815995628073541732367619595760233407303072872810450857298217414328528203966691227732555355049741107325212438227862232006992630099654462761926447997231428439968841339307955281693221324472333999764705696299937804575472458575415809254474795334793790607241898148020606773790542022137118271733852509487987258384023022486795962014351584897466893229846612110146544473905319807375515481227621213544499154118351830832482926065354259059470707609310884058885628471178881996547683868268197948264341922960482965951215705921787407105676606788030250415052902054922560672435692992064500427789062525572796399919449662276274051419647321313568389753182652801446445835790048327397894776728164994929829781557167478904311389106156476631908146539889111681844389618685184920465008603111470958306783951030358189451414117451118071645444172585459753189116667454460734035062557110717622927536927226488305131689175831393866368301824123902261374725782251052426249423274066312769920839597315477963577999021820751806590718001260537179503007495109047853653953818051983790676859280974716085333070478624372531422410998707994254596441666654426037243205734449866711827187084632060049622833977836899349218880510023942993601358491349345004497378171983576506606059686834091819717050170144397398550882121411995450776312385494403410563554394852066950273474233670194417743963249279535189280394012500969246407883062566618504369820468142407613889987090038589454221730591470202755820671079289029063109200163487467749977948288793864131369880209438949674462451928521107463793404544258414749617517912213872484765744817192038508875044599546243061432922906670577808713995123315446117592198453655828404429222425026656504666772392443230401752675191011157364312301084027279055252527777344233024902520380849859187882893510706139694751273360456160765994801235058566262409793529960740254821962456344248268891993986465301943617454433934886299662966549196629391757452332753286869444950883160433818642942813144602898278881340993037037729074818779935635619015166973398058771354074433046273919952539035674668408633139709530407290867662456329005808229230242372293766095652917196897874348151635066404018418848150242124195043166107646160064146861810199014431342326939453050817093023714590014170967096411454553654588773220985695171920400875682145296990281551796020529616425484843205725371843089949746698926921897353487854353741731539245422918899813636923629329954262705199867494659927820573531551188415239164845556923095177997123073631788530863788749871922206209935740367603800713554354733928748350826086265231867271306926242787632191380167472790928882855844521862578809892067839035457739034279969700283696650750687645836163723148268891750855346198289574463467327192095690238108788811756113535984904582651403189821418229761305879385691005908319239099401670225030709653182338207511248924520197051531970304029175896569212925322812136150535524128327404206371933947760913041776081233378375669259012982142214928068148636619661892391995797921002049188070481807090719815131740072790486885740298143850610591227328614180447861781070767617174374102414610816813825280558968011004953381682728125139450207473256783058724841108946818409869801403389931640508947139577002610376478264931056963917629767973119371178818670347309612715268842917893493766427563732512985992331412738955641812008233169526170602317088419062685203264585011167864043009267308361432081482385219756001437610551257080937737896544040776352651054907032709041501723509839870530888214141135205142354755861120381491075692299973468747705117437109026146046614636059223431182968250804067323963412520414563570511942709276839633177925349145700688062456320339601133415066521699943428615430480860180739888511077686923446250431663498322725608663743712177208904009320763134092696177535316019442301512495144731920656339017099212144783621062652472365833007056139227798496283538485667021320976934953618439284891891527688052037745766064146333524812050307053785237865325365322140488762520441383032535028974679353414942761649529636107270418920212528550322041966759718135273699104856289291351544141584407163091109737242461323539948833621487218039998761667695896010308833429477940583108834998855698128015804862283889804433336578389579383868399258192041198073497034953928246938735931873880169576950183097756140445466819645586743954261088812825207815013604648329690233492060390810334080781708491406515181537626424425589844203510525350830957253573977879702105632525689406413775817730810473770364855580711111259067837968478294838229230871195823489184264568047976044225982701395667071951858273694093019257884300202924421431306548226756167763258172167442293168057437869982055302722817577262174595213046316560229476407218386392554438488256936255063176442675361333023713210082286277337476183769096443172585157382347538127029042439648884318795903822715612898418403850367347147734835049796544426247854795965304862942877569496163733515285989001030660287574148354684673046852920707742481164170813664046823799520235316985087606923882197843413109528949635603258759827365323087191689318601336002801171894289927993097415425899163648128164256432530092843425380246764412348324025591703906268288209181334854308626170282205328692104042051224667576682253299620799235677238072577250943219369928377668654328260000202804757420468855663466157295112157574029585756441937520049340886679010784844349784538025843210278222448804848410554905084313297028237956092713520176573922730791172892721615128256109369231767918591105519562575538296339947971438099818690703802265000249072819622382263195956865509343753460492788431348015494316882249417019098701496829614150236737540711047185280170030649660524545415092037545110060254338978953045647234631002255446399846030040589066598239318073604959753690151457684520733964008053796731997642349314395153010327833172143713553577866527815919697631714971352406454570294598957495943403768317056426493941310033528175546756201808643634198675972534153478571380535146731359392596396338633885667843073960976221575892409484913687576581199898295937537308091320111194402919292576947378525994694133027017513787666455304522086568645193857457293169581385745033230970290457015822945920161088532726477274333234316135104370072945266518831219174097812247542029071604137373921586788081939070231802480072076311685632428626213775291053320743239258025097547885640709269845500775022548071893202476186429768967888763312527179350550283523337789948002090083149493902091062323157638217718182344712113823503201162784621934157978344770082699136036106378061467357111269228431989894494865905468665409577579374750914936859583336934011582626776689575973477207685414240144038236483638625592211310280103515695094614169165566087532188155162062785510228081080298635057965776529563279425126558039263713124960267837244946966355963006696644804214700623242899796445187159256336643427202531310048534470361544122995635485557237224534993776388601763307301009170120612895679538503728128967822981471855582304874070288568008412473016631280655692896218119823311999477771044043564839138812589149324668208980804072340494957451592221028075928517525382647451827648974765765451682126935508985265186793278800755234969443945893049473780450727843458115949701689391501820633509086013615921201225012779130869912018521180779884616216002596314133072676748935752733257779753394183398127485330660525412573605460333318875812271193102243196493599768055716445396714358378820018846905377745760386226796887170114938216171822732550761512215632023728323724772758463724512328826212891305760786793582519798419498480491279982585602415464851802594550649048405449621923231861472664831532461518405194475550259057513944754629532091741812326521163537296558235409826735558685676745803510240444843223465302729602297663902316271372179609049118245459093866181612100211383169050615226958484413002357810961892610922583044569050192184538709420618537110131223371201572339211595916313537690805161375821136120989180027701073355305284575578959449251326858384295722655118287007855058129032247773486784567780124826263451288069728145395218935173601590767849047251817414941723876793877303592037184435372005017206706504212284871399338662456126831697635993669532993221299771285005795322071715287580196857672504397297237118550386741243732016577051576381373445005417644385909518447998811395814401598391783040041955313833714488443796999300446670030439683720630887732743696828848852543284881377689293532327799110139276098661230945027403590525779393808356583299602383224149359295613350216652307542201859774516222230835319634284290872950270062201948133127344515475758895445211448486734876367925691252694428395700052915373011053448047208521882005204205842005602503976605871356430686735153166068655500339619250692392192483965501298208521537915424839997561715703926191656986063054375780660897850253210988757880825235869171161191320577693254130070287372418370143296030525973796335064261621828214032615108642529770845347922263828363593571811522817010919241062289582071130677037052508394895765360076453020670841524656593825014378373265829788703048099935641314506019507613417118192750086136528720266938775914058421315260965303643277707389226043891250555000508829843705191068182660601146164709541462172662060094284633021359877006217055586747017641558287528941481278027516048921533421325420077625272541845504411400823871449999630468856380207590664647644348355326925388029243965388884673834327950483057778377070330925842378412808141685582107563578449033205397868853137609688686597187944417085716954462221574563902956945992845231371631709548363739141088568034330416631164624759641761212607742750615911176193413347589364703276063832027540540986056807252959523156763553299605317376549228028617634093195258465783647530821154294905291672889582832327963180794939756830215090299217979641980834226693541790789627751276381771273095619428686085531942774928188730738169446263621637384692885427160230477808213947218768474253445778877022992690277979444253863989129223279612046472628867169888566639044149592521900989713212185222196681378607944708679668312242776273383490983798835575815610637767245426608788044283236423417776608711367068442794262514923949328244693979309046309781972094452611285715560213433209845105620951721307733421426985900451144893582183682483543960071576783083063531619058798946107262652360985339688260688109460966300867244842075296881103334774548969497514715436004407058578361999831034321015719084507616231263611424099986639124026380030932993898775392729607996937661323366088131517947619654978946106830627240145494508585516745598265339858302393047921177142201288195711996405301686129757872605896478506819273714514070970590128370602092809321240651242410029081453135490759714483148211339820659803888365800359699162511210235109333986672996524052562239999951390116312100127059297908742219179490214121306834935714320649099571545849558042936112018521993694326127284879793911505845429271771373073508614956486697441805198207075601799020052439204461529045284500677531476975322177311833636829584571655109008663326059823967502651852872852821016633769298152684798166798306876661184595957340271775776863421773282225936061376245264530794364819282291831681260211985718324627217210079341310731487931056515697301844638343743632929777110298025922472209784190661451980226769096517066408494673190532313566150498750067362566200061676177357586498075278178865790004377168522255379073246569839306784130266372049233623059980944154126450595841657963157684107610938033648431766803621757858721392466450549085594480571334403191644494949282700227512428799965222990563172709698866901991106401998210671460946372158279407975424761369330696431155089677496314825305686111174441719213161661431405877207185783361225539815923788165861171159441146213229345470883345463024709229281494998485572540836121031685924439285458448176945911376600142941206165371379038081141571378112782602142323500002422718175975933815642766396995604437289227720584335488225917644288261985247782059883312480322888439007976298293018651089563515439961934839216070423475523710780777947493780222711328028330822141514936332603110383206416332158574203327933617056448003392004932206581031940571362864530978546925052457803751482623768332621596123682820541750793997461577844953305192043074219773705326503469201731269781753322139252791679180707565602204099085045199488814497951402948613675904542822406603832307890182604639405744614005010834381594958800732803658094246802981628792390694680699958396370861649096974054263449184210026635558180113175792170391109445076827784046597156120476406598447344557074528861188552458024962470862779399897676755450386027581653315170137946086579362194689197408535063613468354631094983392606822550219594139904889117821182471974233326698049262209854512578978100485829737101502021894212911463489142107837313441133044953228559586628268098249977296676873426562454011704854455372597161945408363847539699482449378612887112878403479767822911236861155023981956446548451621594933585721126168835371410875590033326209578684426726292452676049596539637273641017794964911602349139902945531743362942360328504977010013846382907709568932164566336415236495447862675438222149613449008358365468404184451904730774962763519825413313823830759023574004950665104994362986243060607917103719654677488808276750001099592764981442113693876558332668143800665761987184666540295685804190204297557544205037870317324002145417350773790247060737588687300644041298413477100214282619210034476758970985362190876655427740663474922479669805491092216239360166577628969378844813324898186068652140754071518613032372135882583711982211510113656875655424847753566368230313619005528545351980736761360270154250742354889853283565487280466644989884217357541996348482921394646534887200585000315066173630014147835284584670038605565573637963680215217758563509054664029946558646447517147737130485051878705230852548072424517461056183066704563381314009345124599607739608339290241597942028808622400178858303684659720909566422820652331187542526414811511930048079949410636599774567964026313188246218575773426650025635507053317072566447508524453300982670918748516405732736520128912836176385460109231079244343338668893817876429055652560819195693835042099711320229659869406632423548708627371393158512641051084705796850756370943347318089469081263506933866530107002126779660930802878070816636272230775519891681775773000261967339020537940321538244071389268177136421651401423813117089275759541690157395454500514877974685126226360086293352841348022680972049242688166680882439048973027518259877034866937699450450285281942070491798950726197476284927274733948572977901533305303855729308588317740508898341303946369305894421238050801519487984843499589973648477284054510884700144669202113123093814670501519444997589967383019053916264848463433447945701296269907466294897354370070335503206760941605061379069325856799647368297538083378584738463872629738081258732176236200649975908294967222151316923972065297204441698542121932765681862380987594841551768890623369259424092149689334230470525399596130882176756590769878196725188835519719177900107225245520985131374638361672874416553621478288849567132085806314917349450138247651986047868809383696194456127491620375064786114050582907751984828991272036240351399974301188088208285704296700985628848341846052099898203443138159556575764196413369020368236068896207413443233588250780989401915920742807068062149827432905434973346139430651380971131163527317142306351305329771164069831688360291244025753804857687745249148456923735775290845751290192879446528186466252433434617538733850978715930302949213354177033698913713473161971826622913748977179526124592491988797354982361470260362356625338399061685596485124721137164457734437795175961121262860010435737528395313576763481841312556602403911803736926098351265604147523659715118531548323207084130809496137575772589649000831632642451491237160170477497145767703762353274702052896699803720268774553801577489485233879643690900187909444800504842479214061312591078849981698665688276600089082248184387182414128188613016949900901808429378837512150642678642306460730673778993746647243943623459099329836900271547997042264315139885898557715787584181017939211552775681854790004697288776971115419084474106132107341408374353188792619059132618152819243824459343995453182590822037348734523350801504991871953315539563637493900889944395204844679793904791953122705442355924557612681193103503797972302295536951388057688018638593721508671018994751236689535106258291221931535227466358696594117235273389063379718283287790168430348927318633834196095141852396970207628700619763111745002151357883243604471973505837176960267789906177717222467463919196725812616554134357060692702663562981201779948924495304005120410558956049880639396731078678753725441342459110017534952007324570700334498371226868520243232727967000641268344527515863507324653261045193571409005002838380991922923797116389205612637646267663932382951938080020533621457723915074793888962831386818138187271296896584590154910958307690962183700602136612565329997386037273693661829783722054689028669915403218944020150370309033366281413703968668073114268446748220120366693561282882248869023696487598705708602967427893066695554095906318548269159759852424506042843437094931158676363085926272961609576024114089172661706636048212431192336713003154744034621228290604014405230262747395439784656274073581072314382091204671485208500630452388733860037870488222857679805555153456457111670778383076724709517970892954949799112617049867173028514477510739986833926320529337365184125049275450313468143211041610961496240330120381721927060372588231252299192025091988871417946455708886349912498944829643992638396635151984828057364801579254982478782331574328215511047248461593133229444111877349990650957557484044765622770202566354802787448473098828998973129619838518056229132588169823281057052623790863720758101287804175011087615896296563670095365600824404287269842658506327621721836649471183916877526215362661282588613492030184504761867397768641331822786160769234824932978642515667372214257132716857609020653786655066813181727859546140866682833927344842566311196792208597411637157204430860200732713948927224002748938619946334224046878631861104257634088068497468384373929542871772618726367234464893994683468175687482408270520505845219248571039513374170150574513862085333745203599424690922086032078563293295827400157193814046913486932206643612261897520239108715905289557756800578381260266917128737729116203461368808927836949119732283693546482990853264460844119052446506241005128646015073213462761889612227015101740820539747202198757603491321002971444428598323415325155630273051773768827012616416455868306918206147142409613999789133964471266941073668440045731443539303174614476370885211300698203638448298543039067154165568515215540138398014050521874802383441357390927196711275126782572167668862976039723269299892464138058882650778851961194431800150158837026254111294603155078321676116434245824210155703748410656087095268959781882222031629544167785644907954014471838574787445908767406437053231078123919429011202678569740497331998430937408737320784453439955222651352208584166687436238050846040605516011775667341147406523362385007171052830392265870707622683576947122618794143869381702837623137342614082429714668169980616951428175586894368854137038950911004200071557022783121203148228891694995645626394056571467944422625332497369076231682820888739897731975260857937427243877732519835260785941753638057747766974066163841905925333876416722552173561737251311140556483836553871308664915437630236162633037435564821367018682378265792225960736720818302584357855857392552390527750329586922126085485508894795314318927327957744294215789987572231409222654359350484581486469881161111611403920166909303946706676889699223653046503111067034731356671454412840416156124897059095612690275633642812009792777168150268395822809812757594719120171889111773518192921216930569676478030344747544917280210836864240142754961805785879452847839361157566435608543322719587070023500687034435107641174680569496566663203686924662222592504839540093096350257146886507606318356193653309870335401503126717355819676453099028378775247180324917933632944205117579260442938513933306594069572460975007693872883817849930822812853200245889338532284225368779241833360722737388978666313292697388048297330268794133396928519495733163789624491016378065105384593735702868249749449337857183287233530695533987672690475420778687628304978837394382101077876795098504952248956148473312444989811433330977906438031874821620896882512641627594114887789026399108037740888446576132585315029178985720633908125828170582519547590307058428111081278737146528330398866143759226314623943234512200260075965398070005163938537845271217777536148315776621251571022064380003211752456531309165905520337623159321171248728478165494154507023749211606582195178434786000431904310574003793889083863223631709971858321486038076144583593017079170401492993564703685079451100162212551246637777564797593783612750539953367588409566069678414597125195902259454773977625629642650572824833917065186424338643477058475910025544698864037852026397674891915223097148032285807641925314584505921914400798048702023809340382639798126571438396190941795379009620524539180027006105468650945571980346668535747068666326722881673405505039153732652650144428220124931668213991664768361562572727472576894440038241916979268044363711663248712546732185495954290806456408138678031146611735370235057272518196077083167166791233617271682018003884261145151235901408632010858556617185153295693535039715590199125672226367240958865026452668816464796860543322240881810170526002149954419484835385773159061702548380757550640939035723380706855055013136772191282047649047277995864793118840500034436137654797570921882609043469157599335887653453511298894345936024054758792964021581785557288760792846453606778880715963359198954259282946493795712705049187457038955099926663377382679143504305923404630643007833907345316446090168813557585351531027388771336369808432841217303299940666095858957252852699438824637952991436236825828544245488638165087837669505762460192482485422885521793185824744350200469252176063971412811369329812788972793451897460507195741852726535487572548161844881085367006252357602674819541415608006938592930036814775819324825649116553783944426304977153783572624226119514621471499420638039028642629299324073165044514586024780584949711600955979124171167410838471351919805070672455902252438644800986794663375311063356150730357574122447989172193742758332717523339960957621883283522563910251012349715542579160762351531819317483421492584396268936521589358703530107087993169556396717072859396893410651802000784933837323660235821796538168705926757712122601905511277797424028522314552311813466139125573514354304506399103129224038251015001647602866447201420578306147593246493577738438314247586628513865412756953428001382594340042348565440254441479119477841472723638847809431950426613782228505107681226183332586610706124731511310804788115185849624340738478629618195365727384811494569042454597076552006609377996210269685992297451293578729305192056489751995344555732302784263630322105103210921329235570656792058009366322028644411090152824248937351513299005055777709083163924183966926427751990753182462211911272759014988237385032940550063047805389094237279410266420346374173087286390554678097429538358857165378908579664065241939621459818726737635983397692420132089918131993835715044657123470429672620924592576127251467021353091637981356067821202035962090001606268824868533625660727943938529162486789571632163585144931575020715647470155223559978672772966776552532890809276479250082184323525676072705344071864327810660037492084689239549108027955966554416386111589470820482569308064593836618265790810276658234551910379857420769122192767961901304247167962144280748556775486948514250668947645982564223443814261156726630302500713246031854993288772852485769624664927068865219745359430659474953837990814063736190473130684640122334624868819459514010093879994350937855488924653122284529095061246813430713656761665257715743570550058954312029405912501028450680207399896286293191529863107703663510947048992157951417235544791633854104458884847636114740723823112929366418213411406290539327594613885681778180968511372993914699585489175607715386316375649305750943144984440764868348771869159568541026557744901563693102889455757208997500172339202998559560300685201737746314359048743348683112313210996246950521155237649713747043720196656958127910636158152946006200981772158103824653784521603815958402478484557849647464709399922006554339507694170860328199343606595211658715770711888845276766426220431188985082560043984862728959314131804739357990409056574599974340726725630010397805303929598179260366237556824375792981598742485475481078977945356713573806332647020299507335365623521059253891499195365690043362502678935495664864457842923295873260083220880793510479068744719400083988102531123396182334655922628315756833730942516011599819061372700725686113955722208353002117777719943382495074786356278330393563571974321025844365610585378437085280540047160848031524754164325002524904837419870846887679759278001196786419070700261289003316392912720101102816220318742335955788963989203209734048075915180458238135641055946754409433673624946004946965781778722712483627739232871234945320556787948149342404427459112299096714726658100603141907932143945026880528147939443640600546696236522026422801924774526262837809013735819761687781713526998826551453207596052727624464891800370723319402379832065975192464384678901242622405519188244130823642797370516526745404955907376112944250425762164108710024863790546301176390180038946908448798821305428245750125144430411717002431189505747092969487022558683153373273476970950691640068553282835063987042163057266832238299757176752406638860184034815787453645533902950141145967552435806249558276765336307061986206787414026618661713321213742698672672205844916134676344487968283560189497702218488981895380823511303193368587124272399692546259546304002684400772601095497166025934534319778059341489373136082928683145388295435281961463084112445715223901201669936681863487605959695115703720636392394009505164459349680067490904640899018603613391145255956465139414834505385516936541063662335419300624681408037165724040012476720879932240157731804729400039043156263674773652671868353006774686873190326441694480742133040919986438922009649386062077208377528784509603548591422940974627379867406543298497934834381199511534154391779207848556912588664431245052151075120083004096899210766594648211562786568245615822954740908935396148991630486680748087949893588357638888398797362214151637597586573635312806399489202971717606722990806399310968197805615304953712927774549218168112027013938154329445866545893563942440371046932022304869431978623730789554613848359703232215967796572297489913050605468758230378049743855286934897020007897098319435128184624465194068628145833962985494524215779990561709366241580966452009842044946915358075523603215916076052856209312742178938695931393301800808678417339954314848396042995635997311876487590485910136821469930381378296810262412601936960068457469516791027990947223582319321626840518691227162644698632294015655235396817106325099953475455967290303704202040326855542267445419192045888730099855715500549816820089623979598111438740033700363798805734085686797192337294276790305717844271150962745052368551466814255009090141396380250883076877256607834142197235976711908895361762923510095423975742820474604647884165291710814771355361406060885022707287898162830919949268946895919746525062214246922500245718497106837612155827635738727017195515944138853975082817200134059357487855141209302223967810912902716272234756806395052841997346137138881358750703488817929233168662255789539420424386607905343852132739187543388509702299598387154829317247646317693431611072121114891332865313925227352838735358630193296323630974411785768688220466796237961937198397325104090096373098308995848502862590414766629386579821778979450639742929045988016019866748288549930959212829556869605009486573426730386609052961300325945741042435236236523850671708230317158225558400508528407991586754560226315077013154996961898261302271538493095525402408530438110066154494209768396524501351119624561729548059203462027254599620065846473842832868820320143816549316618802420180166843690434673450373225867946300641850603626463476134237841083129561803371042482949644180806960783150741206256854951264213177754227638167170681345989546635420372987043826261725772255517592292496591065210172144246866833465502690409676835478117730468655616451902969762142588580609453175105906541254791451843056855170738481918946296259603087706025535871673175585971196030607575316142152404917028183035731886270560426601038068374819307816845000252423682617337273884098065311334711395230025332916036283050804831087342714918342424515798499290070001847032213535096695628107495478229875468711722650244338549199000893312643057383805634774729555300202820399422582509654527668779342759989320255862302198964149547387520644285939357943607465834317651778608429782263035172545565856569419244531663337731147840856169840794264214323192247789689809161327025283343092085178079385866647312393932236740712646403039803815782657986121298413469488349542781122108500796476632102328271417787566601604832018680025422665172460681382851491972764697621719384605378648959483050571213691735022500983718101687897365866877565402804992168222001340820969989358691864956256386811874928639382854083287867055991758024489295977615269681150985994446345325749001245584829166223386759056812505445978751774867784255365226132683806387526559720681430277753685258369362996952173827258404015929450763654231363008838819700108727736734313617246466072714751367970489314911954023990455465517429902911173945963696495452030828353365718924811888997283000576558357854322402990972077557540566140811653687223036915890051034635491344349686672462475037634010936279275511675473134758223802901230793620337228588984669252338459047725489299363071033835205732226643801463803461449798525243831212312540554300417007666422615411630944635711815460388972326628648340750877188871916724312051127467589591657162653511637763139654601113294525257943803237622151212473030797643301172407453400327378984160029206172582914428918591400077300344430382118640700897994834138714439239136188239616806013120223387057179430586421092823387744105703063506000737689211035224370091235359484441063618728316030964190908311029393636421161926873334381436492959034052227052508690621210168133846854906262299793419747714317466062055930132781001131256467645660636125887719700967019463046535201312556333520701478292183671062129144733774047750316687519237794038366633089454905845208397293039061024468437361026968047801263669077490459289114400749861303349721560905265417387873861404529953314977532906146388844419062337538010914983356854477285398591931163736867104738089511372457684840459198027559224902681839363920247565246282302717745450029919657716902676508670171854236083863823525767117253934486201166041991702585564203537170797232451173122043092871715837074323477382764084936061429661753206783677231601045447806299617163092525700759117169693441132253772893365119732829202902414964531246271835739464658463589012196812570246513602341584728914540498886519598789013610287445993332573171858323174407049151324077612236646720781153735372175855261542769914307887066560374179479164604201326683919145315799086533039866822206308825036769745470827745927156833962801327557625660562438159600466233083667156264086608141733038199416643440381397659829266606393594732486717075670135975293165627205523793431924778325071983473038559119689578122149464623452453364482863789974175142137101601806495258868297188024581908305650453414946231945000928547356697240060371519005576519951890846057989933045587679677526386127616948017318110616108325170899245786647711541075665926508201753788345138790473677590872924463635758442425471004698165795423381604759948174141220665546063051733239255206281946582738480026190202229091274823074893823587966031148534502548856654299650390099927418571732088456488672009399954835439288176734027310177433878021375289617086739615453408142463516647380619307991829479630390625072945172366744245608796520709576810952155290596267906110346772831966611167452131628187589596857536012905427599076411691532484660556027748673803852008376740087207387940839401542683476363301150378082813554473999706550982997187960962935230182194153688927897969132017382648280696832851718447118362815158732157651833711287097260062391081938658897161689156968922459160360646153389239280693776372289432287106415498230251536853420327592006188679842878339221335083070088925069369546905789821906032654937608179661750146251456346172157420652114867659501164588011542047837654537948210934097726797332539872729244439453731944928366147103114631102020571900388056089743494339588222471218338543722590913470510673163410472566327633478300116947947005142708595211830719026014437357397363485392939921492098926086206637752885381732771259367202374825277251401541954690591214295663494680440034417990885190670769295737772093324030448558845371122308026082887964569201494629653232497651108112433067910714440651927072775404919519643856707659207434662141908361450554009884860607502586041285177120503599419168515168271515493470802124327502593696459254706993563106823707117903333656645480998612166467115694614977822681172179759577673133416103115502106180176343699570029577494951488025073962210740411532038033677543444509953547160422802023121240761998929243630058549294855300774200566108682691016436400644937660954519646483805094131826845647395450071945182699966799963093340619560057930747088914958320360476185975942324496808017045709744012248116938898617993609662448820049465184412046363292910246986174573726329149145082729271592659157753621093030292212179497625492863856821609686121694871440754505163271247819303612966751306971152313833399640750402282080865433263697335618004283658700654781544005787223158058116660319829636138688324568356046726049200776931541386308153052086664560639867961929973737053406000334615453343746041743127452588506986250977738673582436238954466258510019097907470943564157448559998740472355264953314747313793471564158846741646082371061277173872942229482591959125640071519809162371487521756737387424071495863353658371816063519870948369971078294261377720696768979017699394342292225308081978918435301527722008046370899167153926410748642497176571036699656553861138383156796680534844395373098259057525720938165608784414420227423323996433170391566054765752048906600173221202595254478433428688292281210556984682444106679062158336413367724184559594076847363502954279977852985599477836183537023088325420390564059078722893706420513006498538539680067367476998258004930081680047939918555688551973442061237424076100621925545210029110920761959963760621891256170369518060627728981604640524264448746789882112028015535751476038529232921739063096990202557179926437277335533213637868968008393597862019197200871410525111051022720185753747776600438720752117261813399357737070483820367321054705813175877458145699320065556155439152260278051793670580977365395783913161712857263422387171936856590724686020865059954934070522371981298474872160864052406375998662168465432335926595848257239149717330910250083563124433961042897754635758604288940442669311257518430210558378455223014049632631340805436090774185598436788394804609549888676413564621558961627295060923815397920487048802497630429562158705142018855970541269979056062584315908942463519612641037750626978097233523657148321739636843398244087421662633134606961394059123359006492886228329887050274564390044557537348503994019306668722188203703249771336950084456650311443895832394317486280475551604917923835361434602373464961852066094222057760159793029702410565019760258788062800796776603180692452991657586156522209759850821822463112242311885563594947689742627435330908349656413641470308922801111595347080608343181509661405045860492648714520309059407409221247522140553793522702059415864642720869269368892775664981693578332912021543768126327770173773551890663631242712957358625685797985404497327119181458714492765709805468128233801224059694444927616966107617042419795847143272346386152414430395167620001393709763417559904783962772038822123433735534753074753572656700911794089022386326264235544844837007872639882024989914194312960542903732700088855077686668222586330650119486307558140528160233335125522400928389362607738436089056583655737214124954636565636771468656552252408868097986079527869707661170877690882181824591573907491422110864020152772263389187050807530715690750132150698667619496371617860096073558057757399427861391959301625690059521466231209261335900093843964790347975098844811949352064407362007553090886871132372869667329865681139466947803018386097813385415392203796014469976004595520452505465318233251611656408438793121882889244436619089284633042968041857926423011378112477529602411093768330485060023173474630084431221872741349116001179175373007432186488630086322260011445235805745794200326665102187568955171769012961686632332653781139065490410275775492774133181771511179580735377110725790728746405000148485997842708081417470409532731450588608453242489874060987850093199015776042061514627963312826476730479591000067214309732266731046916401871834576577436819428531389413931424051174412861248969840130445157623774640778264229395424107224314240839122550073603745608769380821248443009510745093968843057551349911036479366181274202869350825003277267922559159254878537030578062408481309011473376433585469210207032695111523641843092868634362634229616403134360281357397768737497519315184930617301130273783538847942375722088668312214622148281873819548056258504190699638939282425430574331003942249278750179957711896604099534420789074154511251898441018109628736873347047624270121098610803529184565352329115242450067946772621811603914072427490474830874358198865046670706399539655912485981828955619330999788349974494903905821336220693648818170967764773187370602897935734235230082386393018318747299524511469688032183918390302066860796383727557775129172699226147757033318043986549214093452389725538495682737797889727973409368428685815933303289018038576680675894737493410456269880432733001123995011779094046972191408677490205339608664181176134241180108513812946482941463352340603123396284476229673583162519376326764302335701575180709282671386640601932625620547797366594996895793389041220777231500300400187165293737048975534041209414768462833366145172491463258007642701134117358148082325129167115669131496816951149119580269462763867842261684740150343808079512090845849723404613621680381670739798751848917452727954107923935852239993952910079474677546235409952310179253282969783629578278086684631336789729452838790976976830675851088771369448947538029871841406129237257449630109649832356298922434509149084240235239723271272613579402415900444165681270054327180080300269271558675304413820919617352127992435547077033472374753581650875937317915207881861936664412258069666518616961516525554831677938112835275403850036639630322677115470585430950024502118219477165086972939460595997669099893218829495732303860867027346491604647221812468803745628124898664907760855656492492631960134091544365733383944169472923233853927315598092297986375688018923975743591646183976414488562423927394279319260750592133364311788137023611338181705844439792632164703913473962065591897711756158342753525147965164833686100997179971164552904307815601047966289599495374082343922275400623412413566226632690421341739558763674002787603482292588819364470574170490190114175001741031799183974196422638477081292544151678546363409734470038333582228455264625738945272833164329100669807468156990722318257310923147169694061542739672275275843406301093416787636841902383490161473502245603071442653019935762887013163425690054183121457740121661727414287841558233671456198966711985506415247124696786054034513485729179688665847751724714664650530884838577415628069520653524312299357842872970236796134007756831620727066966372368652396838558187464868564654265812520306819169181940182369655685508018735852390990250959893223628650959132612896069550085966284042698576185877319206192419501643465916371494618018619938130086806444243167692829490911791920522558311037187694647528228257455441489230655210382748435375564810371944013496723158371175726714597822310179605203171303863125356614165951212947241137205924147418937912578747444575171899499032101917975734581514593473614259157680077529726512034479510926226124092789790435916221459792305894329319372634924162404355347819961290908613941682408697593146653028632250962268637935152904077647221737268036037347886265496660302574760585945127618905791948889927425131234497283218965357049487393599789081963692226698133131884947069106615196965656243373451380473956650466111802010431138326607103640808759007705158815897970883703070738824890303472188763133052541928139958419398865571653928242139738032185088233408137263758295949954921075732864684012744183486481028091748837832599703122968757291163088217621513865158376601081474759941829420949371951278616922102934988498238766542553474331242841027397169394847709563844066088107611548567306625418677335407491385641909636330389356921226158131174108732490367235462182222838364403820601248464051306629277358638581379960152426727549523607253892729387385045996063082777543691818683589424225560039673597073917603705363495163517865863185474390276487105570994127774364134390240310291016858291265754463560977018618518298671354129329802329437574164555005140722685844805944308746432098124635302324870350729794484749278703855594344265424635755587260797192684004365919900139055483047743707282198501335086482670637973749685993381520506879874385611105285858267554070808482841231107189550489504232859253015032895372063479792051732191032234945085702902265192259071316408923082382013784602819821029696347811835624505598752441856058950750239871762839140407520012505539833720638607940978273334522733204971114484649262201080028538338866479091505569078471058547794918158978615241187353094371687090844419603306508456731303929045828271711788640163465147809211209392110463872191282626266982411103456450044613496686030694390915864025370045124276009040527377322714821354626158444889261483574497055528134990070199104287318394741939020527174157593606136921649671247790772255352839805010282545048537416794006751597558823985492271583533366751594406850883987832188930632864672069978934040039637113901212741843433846811719636190919737331908250707550166679914657917255783467556242770860719721830713500599399812208085480321739288431491253370970039090927828453345239941741839108005314679897486946190950289683799500135948564134805531697786374077220374031304560205385669541895259222990449588074849992452886974059816510855228666126158003972511399562589105440898035004745824287213629172915895679610085922843679223622011518641343749831304988640658520637469174031430556642213605618356292992685162991013127767123982594742646055945357856625059108361687167307949011369737082223873454949962321168367914722109672475823254223511014158666936182119813251293228867162826439472680238432149950161292181692780025519289351609736961122372128777588670320269907240543942628569336550262411595178405326349748176278138581025416483830250292181472799885906005094268310206357358713489198222733973700569390372013003299105721699029476107664076040255610773347631080686438236454539554893060368131282144624387678157982741513794874268170923484288663994928287980964520467665313213057415361783104189403817680462576988550589566376639597581837736437728956758894753241703194063580455704847801271742337145518212575509067623824729954041992837101718404680949598755181641201348314948154954303150666739760260107679395587344987781419417826092965823455742766689361674167266605482693785134360875012379898318679342008024052832270790128106426598771856898354391494604281519164675223056770530698067701362984102712614571317879025142639904967619772836404804409049871491004657321223729050664709642941320549043771656285209922381302647070309532191573730616118855706882801366711163517544308479145367202052680250869629844788971745291298124645691339826885309814767543818383065505570255822545463011886553540943710066445131555429453848874449910066654764421492032478034562104336070247701286906257247578162739298210303797374257187945885816018368177896960334507780212552749559444424629819900570076925943127157472921433706148703901671768444934890335113192082593508236593861376849790668192478519408932103643784941486211059442544813031047134363476735084383495366575056076562705554420371302966809427321667288879183826843038520955747946167045554858847375048982687697212797389845843323394513132297837908407967246899440184714419629855793227655813520649211880712310941088802404533107421644667226392177584309876692514564890626588593142432870239868024284405234278226084127394154856113218543527562117188658153451882226778725385465652451982888256223385157585744121018957944852295058575564599120209704951810059187071091847875251954980453637731650819673150104798379899993139354302555179245244807545316468570717803892548908503010079885722162700898112548497829527298959962883685767016322747979098960469818271779275225802321216088602151207325022772988081013325196515716476142288677960486683981550171059272219886857120357705395490748666484939343454502237404527324916861578839711783313103138166667709487631301674581214581376382817725891055765453194906181922931854514885777113959296635547848615787404192642845614664582231606216890436552768208501746103931424610611830607487451325574143284690656485578924170668162746736415582219137320489068487432961327132770888896215184461574100259269698297625527926858976496995904718235017907519696653893834552095930117899670494982052992285002263859963414855564198076491094988246332051218232016168964805164415395673348257409495483199659035098077318786284476902942931232484095981725924484943631315042552449576389159887293939131335364281274457358148641880853435348556495840173611254986991485840074847620491135227991050538194299524848288057255241218892365070151989597823333947594538763439201781894771113734471233829691273131680179567950268824122112893138911588809158043902032089297465815150290727096400444931899162489106114454985965411834796688501750166979905053267890720313465303794408869439984143211161301712399241129420767227689047036141519205431237086179174826303897461196192982462682175804081345308510113110560670455593669174583151406180173158791391048035690790515973062120757125271763448547413429958766691029392109331711189215748183513869347890033782736401936015000159396675458297413735774678801086173460405116259571921397914890268850160684166149916674716769271268331653056925330799132312575738308510845525312276399945013182111270755359479017659074516359560991140825664232802642519888557808286605483903406684454989315030284059749881205976457076547736537079320029635160865133366764775407683154676183770107359642115316811247417706398779087260682909549255544593709171667271262146124411502372200775264422644187721365139078212295352653902790363610807315637210533786372883215466236446207487814649910735716124552858912928130733862425396396804673518653182247564255069336637147578981548753470347188198797138977871871340717111347410123751875074874608044976216703510529716527707290727587460560254189452611081133279528188521187526264430210308593906935847369280519473842447797337352114932603366785017680960770891619006470472561578592792567725778295234433762058166582193446915733455046354397169109531327994315384829499106869201652240572893009693340390928753055883266549335821266317209286169836951331160037465026577705464620052461405671866366193156583423096870326924810872285227556859079781691290996890615267098987170536667315594177422721981580982870134393703368035187914327426908697286031973110709333485216068559674372035746527893680802793233672426705998896451016969506685969348567492808043777476479755472477037959858350129932470839824213086173747550586153951238458568556081094108904603461543609734423300865658632865624040838338912754427284081003322871582045638385430188715844666091721458686971300170910467639766234182206813221671092987900723291146211005047909161357842072807635320470256361417399834551185917641706666486457423892844560361907228628936714335837674358557249157917617586668932625289000479255972350012041653369066169096357001402048790547088867628581710151698136793922862434960039062850442849234632533249751818661620696082671470656319143211981463522002232461287263216042755161499853775419574013853941069731835671095473707167056375281419635319827948197455616407881217663243297487790152931527151575911708269681684443955809459449933992077312338837320015171985142320455618757411241201619021174033966926935502684635177274995980137643257524865194231062495588929229807830963320135365603353830811199256191801242897144439148389287509065606204188457440964953097038889240991027931982905541046146885157514543575631766741928792512140193044817186741781749257390944403824145181113654287395815817895000814674510948986599203109288391635599180087580768653626714582007674509765789262667362271132329597787236432061648954044318739650499370255359270955747738490434448974034042567578030469963850425130093250365608076465388629652940367052714933010179533888991823685054431143845249040118665064332060141293963043089692790499627116806623264362127606780208416611545196263925910452437900379977557796727135081244750662554941998290136416870377357429143663666045938817799405130175745435886089201797538871704634566541137008568950264081221006612892233292483186495195860248420407468066609737565963388206281416482880984268336975062301413734725285946308856194784553906891166717721652640046865528717620022695229010872728897003762665941165853843656371387407830815497587372267297946138669257415636917178258951348875944749097772387725304169489351701590092275696434342502361313435760106878030329100128101036587924117048847825588094206259096912062215090317431343371638858376304018510201544080076624564336065067980898134187942924229030303118550339327788072040374669361707604136875728732971985241994261266896544423362462997081816478339018718678325875309422505826771520004090403328690559092614318597201063645851836186450179983244477183974128360190788688096164238267889142205212052108071497839184000443284575416137255126936759351984804622563693281003951271839718366661631428096625710868967910273931243355693755025605209275022014184123265053351893570711105671341212038648567175388970502627248100697888359590533684610301137699261316778333003110891925843429784575831912784685267902828881948034587918422342184761283595971097273425010146900445289390071988689007855853432923253258411502527890364515277105531971206942297733815610238794182471523002801494636579663839159655473729966155191829670557164740454843893487054767380151039290106110767194740785214662610158606396031552907063638102505703708339694642682858826192363025524332491657815512089189051448238391987040720861347087355671996330386696660539349299944250923569377714919542022688227984169534399378734422077281192343583410123731681394106092381800140711512041125920683945513315348216367142568287609422842759519238958015924195760608771944322448961604669978968493556208087383902288129272915786102452729206357581420992624286540937699943127045905323594592981996980471685014716646559608247060380912759345037814062131998971045004762541274965632292801670833405402589257644898113469672050094199361703848346730347087419246680936719475813004582822522888826679236284321651318659616882906998677082857177475787957934244204313057116176821427097476743649393537371118965780105375555721455397908581951183899557219478478705556524396341756164053008399053602547848722743749648070351892788905862751449322077066246714515644035324271645568191679960070275452449684832341501260733200963534722191914828338759378892897132004750623416067423149359781081655999183702831710551891313342824907668862177160008534017365827290543578433215786258603594358482790007817351799714055879950083919323483391929152310735918928550600808661223705732440578743636728048517252635999004026030873182894537656347767542545412431205062792033639217352219637104069799447993225635994357977286929335830394683590441018120808522446940792637223891784033637830740847258785996669680656723271802844615558223183179443332906468597171899584290316306727334433903860353764642781017449991082478389274554342463747568526944508141511165174584205896799133541297684082846056920461559765003235509008848682498966566685683842241286793673664142698927060760490832991462055963082337494137499623804077254035138298336697812324757437729671753157916699554323806164096921367954833599533399179879355118761619766244579686793845607875176412904636928843098478817799949649997344341645992918307177116126974745341950055396019566926114742261558589722600789023385689831542008887055447235341012313211305534073815264118517789651751785993320883386652180022874642006649241861606147092318474660034664138622943108296708922683134819406108819036942540569669327867518709460169552622631974154618398047508143656858593582817019813509779025099727920303462621997367514267454563646503182536802532905329493735176895721409339810930987031415054460914613293034575728034745812782806711605584049339066011050201000432173553466716943820371332640588935146250053372126439948896183636005305821512514847267984644866722702763606962026016099158229500020745007594601605012427025757296723534753518314973766026917286632144162236264317114109409422807799684926978859846187873128233573046361498148704837496174990679242163978930623812263017067711426089124524927534486137168861840991238426413274159299179110074849784937976607527393754465381162976317418746602648197964686325450513744964731795615884201956933948759553155201772750960921880848450325931462319666926555631896069849014798752754231735221418783392390276129486712161406170769873878905724265904378571735126630728864379525001913192502425170770812512593946992424545878744357105640693725644246899829901262548205379540684145641787401383200843342286343792141731743162344515441268228991137458812276086966468039064880019785867133871841189037668094861683750958563021063934955722024016727571264300035914795235489127785016304347403255129008711560527930412016552696070649078155796263908310941963367964904642459608384223562846715295427387797470784884315822301152248727770505844167865922874724543139478023778864160529041092584034449404342030193413250703171106119631537276169269686735409501573680570418842606981293171707743067718711240220109611346676831220459219214279397323680412164869574256586370998485817008994082654919882337785754922824202535975156398110198661795174510137281723457338572528358502266507002982606898138938217999053210581555108523543271239337077623628084428806225384158426297025646835644340484600250478018312402488922847741988236419781103923885316672188971045844882488306551581447770193757507502689646069070331287591049314906788289658184378354180295307054639270086509826377316191988748748809127078279189175714173993071847708172699945875814181776061051706061507015993966555229387775064505909887280020904167535250300480510803719842661387375038474323706571394958935700224344791198197915949649299447871403891382701559146145026284612512044374375794524034389386140246999852630925845231813244952161295493717067144940458602468402032658563780854466849703815082931354183725648230680808575752732705654000589437247052386560579719148392468114344815257937508369167828722329169566389426967094753544088309684474301087162877048003217605654647870851820924284468009313864448851366814091194013875408285047174842003615785335168309252170988278839347699548694399253617142494362878346501579716831239815608865704629521117395320755702754978395497042652949100376969468000792519197537703588429413894546462693889837851580556871445318154932450913229847401446368844230842777304206161287040408084635745403931414508139478529271059968906320149721716176226474679340942313806449450561471283167180775160848596845428135921710322134396149388307571164475128798748352706421896905354498597684762433992352229292694284787983387093560799604709501585243121649747130119567721938176754519924350841681779236586073644303863314895504625938664966292353219256478261417831816756366374436955718923154501702079609595634669847337718419873694922127202054977062728104277095450743552192612923361035784766177260352683149103283358293493873087759868915396767787943402710446272903241538612909520844976252312105390243232014242639189160416743815252098277682475192085213839414407192936933665178906414141950072526333782354266125172033302385042408153300918201284925477670601421689345746852450804193239825082425945444304821370759125807313019016870438187266075043840348361164370901728361511547128727792140490510441121555893992401164902263220446659941868374070120278832810297038514641023154883131464066886692007684278456305733993508463870334169231206359383029327622935080526621613342683534357779558622362599048600616321046116740492351722554227839521313412079693130312429395729660115839315275709639732143560946069890552328929769054298942112265613458386618059787158924836636068008836532788928582101296962066436924563343313016449521714184989096150347335815910228230335033387120437185041427465519325422008273057562639681347286014399802721334381367920350163665971718333471595282269031206934237394356159087991635863145647731639051260300267012376624651635492363590189449591721651461540338148992609063695286608344824574966560830534080211299743122173082314880563143582411346198480272202622821406347383721767989154888152953249225077897759389637408870150147128530956122584266083669065692891555264749202111207232507177583211314059282510369004660196412282883042962135938987087044577197669782314274868150423306722664869149878810382499842610770530449790742060857670266340250645654411759718033700171004851635046510911766081986140734536290639480492242734869321229533712615386907285559041468216723245728964394168578793660277306244684853676798877666277326653054337429070169157668768023774990058906462538576812997689513668541544363142108186637058935026356818406142806378125723072479417007960873107809711928997133172213961957073796850007838516293500052127967580799054292901270528241436872936548096154469271845821670158069798949108242565166129866454654254564841320522793252014033185477751537638131746151421755250494336392582590305336911365235523516418902553256715656107233654143469167772762348342736232072260144783089289416531722145908508056658120086347548853281137792063879401729181785952428834692106289928300599503784067031765516762384781879784088771844363344461379805114616723161055948681362065909109009887668850595242573227044929352017386255950994888631449608273745642164938423802448287277298586492857709116847788049331637961850827805203400032673703431610181203901641325033077449104633086741480995255653095037429484895079226083151114944378026159587444221611392658605249142906956527604571154815352879473173181362901192157238594194897642453866755744217739743142697655071411083748913541269551921130675385129706906233283796762631099558190226784454885070621388711755882993388018286228834530963534001664034054192396642123652788771274977642713401704202320486007903356725598401670280126902643069882519300779938071847310805866353672068005638125952495295695954577150376241026548149470924219375942434751658753138395051034491354948380254525891926578563601879726188614148244621332407879700706947790895656590702970275556807295686386263691937480372208480502379961615388331691723199946306890587438884831664745496985267661186936431743015755476278359131226777930375170702090302944768643673403998379412200340288701198194590035653575374925813929858060804491494529363491245527267128867846771085009615252374089509212139062608126154228914395871355621702702848662711794066344320879206405997089298779771306860009837369641780518876033746998175029792798904577268824064667764825947919643112043557539981197196146480159197900579572223409726732415490435456275366804134233592475914802408029754797944009812447815702078453498351142171874692275395242126827640926022259871997574888066561438966066515195439749992938845507488057918895029930170227652547321124980584516553864598465464585401210160465684832023744750033678467746393923408265346193924022459724508305909542017817365073338093398041149290513022362853833425836207042229529920196802313870297182016096834375804944583303542418505294884100322559588089710803501854044684634575985448477596179767049990092710666587570509102353360989344569253422316667081215031145017960579047073147421857553049748258586033212720006069152761238900722308108229345505786215005682513398789306517437331168532197441005268763206018492373417554846860123163277286943804500735454052009894939795950593455239041993887826889424558743359274002658409242247783117080867992050787847695585411860170068299252676871335110687253862372688737875988709109940484089988698054743402386855279484818836041313561205616133814226046330962870634404845192994872304865223879007436872179893265932334094307523964187273023489239641544294486545311549435232021181735854870554475032108797223669955434297722445218498544080057251125855577653496134582614992604812821055796169323422670359350005140375264168843753437989888243045919010906818254772289169036273288556605232705097628519009354946221276829214287535329071433039059611376731011870051167234203344430670480647202363076409360335791291720531603207630030016620055223132695414330209324388723528707258356342144213575028433749152847997854516727916535142455020378018058932934616528536371577593437782383130454190808916970843117340963055426528164993276954888998900914480857383960531404608993560720092136707778048561274948243423324463364349066924718812434475707330086250374736769852727639196931889333092298241825337954374523599806725035558773525990719814134845592630813866621910273296156490250154046907206851589779079593032272152254720461589051438912400402727545452442745753370680760885250067386952812194525997387847985746540639220759105825504050815840349327196315067726859495315900527929000006517122490153785909959722803653813787930063447905219251300127183587566376816255988828155367173358017844161695667107163782539943101297895425372036290368892782875677559231041087551713897261156235621464791187388829764593098866398790907192832011432368410603068554154805553833890534205131656448570382302950494662629510797620309768258178402380084517636115820805126649018243871460327437489959894770809984412459820912904612253207722688939476772289996761564760781111136639805821925769022574338010919637117974293228811490882633989299129039806304245156931025993069168419501023346889960325707305701275956476189806221848239863803979069301925002873435817579446575817569814817940144861666901427537578950766316225930087776281343432625053912267018274405037878790211267847484068116698495071172907707842966346269695537782959206515962126012014805634038855346296450546093338011528580078280124077174635786804494207652597513220369883082203968156352975749421287294867864732191203281950529550316426994337749902043231930704447324180411129765659827970488154756326736549025424344115782642855608565274115439607505187433977646120802098215821391345819437516671059538345156186542942240109373518304832669194740648756365019374457107390387734076641686153146785378630343302262752587137300238033309218944317116712804482845900711332392267677455539273247006157850124267845646557920029846428244392477073194361031765721359725791631207339453804496581989126064563190592584007763146672315350285973612400608182274789156983446161770428050150691532106632659699153356086396264699884538552222150556442993156872888446992135971724630335228569674607204762594308482108882949757968372696485516320504562639340428723667567692118138397585125562428404584951052756838935404888608164220285765468129461108818881188000999761717211074436015824545675884345510853852424697144331619143157248020893039813756614111324890125256401807906486269720510828064799054298356702882096215015594054912466512571783439156087726473903795980109823743305869120890040169385737434894490817819977180680451898179070134390716577098910268424762119299264069794791036199330353155510403675716335823947675973018194649701711690118702484147784046943251575436405617056565588921137417641667661125583536725152546440554809601928590718866908640446371855563397303614658087268875686069345821153969028368512988014604020595913139489523523608823565611321416966904492301494931247311316010620665167689716661501259572971799539358865094125251294651630355961058970369551399529564834505032735057652572045262779938078400297134070689855042278240510516307632634093706262103265799192469654215774184895169380159009099782626391117899751075802988112660564713273339615421309900921345688129813311216336354082831332299939904600390852080928463366701455892238983326136339316200835397642796395225826640643246742664441957473789288144446092199396397088888393677160114311847169252369158724031320825454254991967217786808526905576018644381913812565913221146290185007376935931252534152838931811494264315348760701276757502615361690851312215791590825626985015034119141233989055801252149756437226470812297539652373646573209228481115442775811279568287862828334150535242472019534282435727956901896534240282156667768636738735914760254439974019385407071421575732690923065834605427251847408056100353345772119648314859893515934685909942459701633622342345863214407816284542405571116659871858005860063655754364692164627766923696254172144085442893359690211484117650707057108564120139531630971920615932100593790833065585567883304911880552455255692316742429364111289952569805973652417651957339134437739203949510186816226233960484814197622583428970826821330524628889628864105215566215095585815769574056753092740366305232075856523928279561376743117377224449934863335911765469178883239568258535359538487355944567970179958054300715284292732644788643273876382341806079406378018702459450815680225943094197959708113224693358092411895788303515431389233274657206015300741373395902422961500463116329203517878880525458676794016300481144232449860271083236656907207586316021977534968672200358942104071459493092019132717493596555567986544034539469717812133188671612296318691330933756971812599865821914634209400198498089525027115415130382902025272912479823182815820622403232911432128642117945228014871591875965077788347152860795139077820100776089543532300906601068200951817411801065564296506990458138705037111655663522880940294283052273973359447917573175389109747412090346988396025582442021876282300604158114786076668455569471778704859509050682388442516145688128635232671502159217037160201794109267373353922671523291206011877980878141633637468551739037475936322072150801719394704490734591675812245807170963019747023481779016285491589978639117155284261538095874293443476038852235670068838546554131134308067393318887730395672815528284682737180835847739957253245605845094869451241381393916050639705200204541902880474899413872156913888794991948604408168563865838724340941969258510011677034781463520388904319747186427838202344670364951648191083968584746726727791817409592970811968150597996851681534213950580962592841714623252265218439399876233443351544681216108353476249540715919900301650949422007112353476611142771744142726560570186162447910525377241353815527424200634507560170891149327691414655454220404986742257025731534845741444440299758645552005355162378931563172581844498083401376109432505134999975656176577068532004927356701059579451721520171878731786235458441613640461307267839912398901398080007261475431528095742026618677470842564615192194661491295446824745436489222161895367550424102786261695773078164864122999578239682630944636811838364571212931714836089279643315303027922157706080430813375376666134847535126756154871370187096294241541129324492352001673711744881667469873372182234965896958647479474456240444984234941058602669887524843778967471911353424585662491222669010632715621371304343343837619111580009588630197739062035854316364153851173935435230049219996584396430168989132645372700073251224892881402615095593167868632764681570288878043621940637478115690864419978104278660538701301812006274338006651789261406731034596867517883751596199769887885252002200983701716530464938016567592151286353604947334443806183416289497011130023370243376610225015218212078495908872352314896995473442240024548885797713660216008064219940034717273210491543865055403067759865074582600044606907804744554621134631260357847833519653361605743928020124584549559435120097323832638753034901799216773497955212256871588579491780592094074106329008925540869189384593619289371964146657195117889249116028266119279683468441682471567853427207630522096607272701711371490371467061653415902542956161206281735406197251840397614002442367321582602004448256218544856270717411450509335124086646391595402521041556942050950225201701956868354108847137946869076357827778282775598856968674190368676678235272359489173538263823308153439969599941384581399325504410156653136780115502728265200421642962642650762138509219302166078953429207571631005300787846922180897518789053291674278385839323584194693131900770541458102700764910333798012500104545310024113473759871313368734755326964734418767674048474368376363451289528846018240664134117011893555845989545368450835194474280935087186721797780087324472151120336866302121971873785846024561193456004081784511834374184678930876600723153622593415383016480548221089819710241758962219151471663930673930924898865298859667800340097472584592406880377922821494042627611850723953043805282371658649908089905426490905477347184816796783174152374855737651888338391723104915639546042914114373301783891530835474292983862625067419345371392474668989677865279861930361086408587454073374404190494774054558042814217965586359120674166641349006283759059497403211703644737298235975626688396735238408665577369237052496210189710992735814428129584794703685684399135352878090790812772972109670851673535302144352617084672654046871487214857054384786676483200581781737171740544801941109007912694832165936643989251365935885674686495809454003271429615725322525456036606869863517483611998324903519308092379234961960057095220990990256725928719387186859956699681082011854767185519954962011863212739272315240800071988081159869887241422359569396240028148912180396402363944850342010266610775077861652286804856699839490529307314484750611195834851548787553540250582869929924434235715892489464641825299842266146582517780953333814265462698023842443053331503234225562354785260952860738397774483143140619500861191810647933838023641302646598596497971027587295236347877835624434135830457473958739936473148019896672295991028890477547937280355729542799334390272464075285251649944989062658971182722341511421136714083785164037706144793102894390329376783367489412817099323653612565736204484496682182761507945558850264838126415856155498375779386477091493757505251673048141108023186495618794986385262790440743552673401829742326262061085193716171694036717127038388603471175216329806825433352867780072184004636194576704563686663253795877754789898130626792585840585556493150894592382792092083473598041343828204129058910182627106807441544408846867831772409365697235114459816725647170931655551934223906428353287115746499005519951585992292819730691005614718874701191755034522104400370658886437623623806129184535663327057694765541644072742598672021709790051701110854539186276823955546330707585121760603418230980712012776831252461441688526769195734564775650866872562849174135449949456161711450093189287403564274499683271422867279524337625955041633076141648075721743049728219477312454143291239668999072761573980391997283356489098766344781724244832108638069719767287590105933752203332004470684376234678618837670138452443757015225782025800318296703574302996216662984577872246605601459336257091178746893555577602916820189291766097328067921471982446115999052358971421562481000955391335628556925073088317551135484427716273467706640774278935140880468020149056989682324305139526392802029959142516540191386784566409204168498469218860180939185248534700163863075020705571664391530493437254779855471794906040516682114962205840618437671924651830023826518913066592710049017688753946341147874315377881299130911674549660412071073473959432713156479078559765617712995205727393212988183165522447531900108612791773155155478040319343682153916609851204680603095271660308621343047833339463784358629318880171786633353426837448250755256048370424553138859224794437545203808874133761673098754945529232047450469344481944700284541018637333731208002245076350286549828068034762512906089786940781387995191378737636983702906260241527176680957018494205449879327408517384542771931371850284634954853148926900643556793619759872596420062080777790154961183173347984978643469369074767105953558912092467668176225576248639336526839045338553975578231437713369760565905198021492563904133849872499649907876423132476075430810790387245984309978821372680135673640725325623344423843239135364277089465848667985646887832128644329224720304625400907359449203515291206706779049189873364712636081164201793854439512312731356243058605147805546253503919509599557680067167699667935073078753684964789453223067249371118439000375456638675743181936962005793392953512634138945809549285825939971148515792712947687765771832467830831149587210284137402620941529545601474781237205683061855640039294081696400360643319495085078106475186760101112792720208001250383656334769136768133300133797882137603036007555766821237318422457088925584694170922150406665251682213303063512841486704504982660547655874485327978797132960255759990277060478197688110344937223873120239572611979758109207158434188859224200222151785641025306479547993042518677235674443173878999933345181657598208409650595691744248111291560317589758301384666524610285917020372627742700884784802926426948533619657066819902789142301284525260897345761126528477432886328133814136016436878833109414580474563228276288037361820240387346517342917423835257937700138591243469690003980477549219562776192045586309492616510257827930465815488389816952043888745218807981510119837866533479436627824139109116155204143544590115551683333961159910243189697254056425711980532533803133172273399176600093924698949819125085906144294254075037596176014945954695704138392642252270606071202442999623091345057939922270934321236796729427179454831496152007092805451924616704016286924529635928155913356358631115598746839754970278444563114903616224535443418339440633308682329719834854573859734494686333147025202467534472419076896607165202971037686442941117785703611192800091505688677476104603716106289726538744017009078115863920071005490310984037174214977851863775260558380480992707942289314521034111617994305267997029125130893809065112547962519498429342541127688135950324562888449164274571739488444819504270887587872836385517970365417868701039065259566334119573201119812855009058375959841011574844674321371258348832506007574976434216522016598046258197828275507841623256095931640060149179486970821605589266172447111767192411146064727683918630099041716774684512889572751399954708637021655732849477997345948652863397735513085555395171710207956646693874940549654164639555826590160135255238210987591433152963634712245065085793045951904194490593346148054469032183526783676761231058863155157209051268800215565128376646027025746816820562326751120309011552828840555204177058629956129656628980754899187784125138775878341402376192615985533991756353877933857376717594816592866747283955885126233682643599289371768995820738944825067450479979643146897726929971353725684296154885173522941536647287629331312430139387686251846257997532537067447833487975944535619469036999816985881772163851329892740016719266613685327286113910771918480933060736819184400019126116716200585426463670259985613337735285300006132793514510776664984519876386229440473613186460677101558855308922661055805286264951964061207182594658648860723404527781452812135322352015113291858463087374018498498893417479012063227603370557977467278851845718272147249452279233459857671492658015172881531157886143161473223599852495473175614722745862258157504284672568717124088982163227183517327395031335448020515450883645791805757779895964381208957000828294860091865476945533345216724625932326209694713258052366980728022059108266759219314046467945383855263329622095558875529462023110636399741029540363548790539296675861939323941800388902005613622457915685883634186616400300501729673434793127289806902347789985645384160856752908854952666576520489909380478689819637844794942829703841226850188652089004763126089587824076645047645500519439705581352765303121653665766632899631537528113990817619190835787042700820090537369316330841017931749045606346982335963715615724173302303784671075607935795939236271683485050138436684846620655344751927900803305889048781238578486033350798007876398950669282260194946123836843633958720874231891572637032965574108647099806826375532484939817270402047607687860561986384829480200119724669431654979164966409436893765866785665098659087328641731752236418003947471981368972532388457305159269290870415868323709546894093700772408235501995955544103197775214825375799559173925910662764085357732914979000241575713734594044442739304104086888040752488971578863905932022739913186412238450142258049014403514360642887599569689917849518143233178516003135720649503608596271849785411288863952558568820201424650480558163967554882489386857933959296063740571728330835622778352857631972101847371938420067930213636270966204319166874369237804013132171507124022905273307963560207934576962948575783152044274767163967384646137406250973526251749343889855006078563572022172893725684495752742499879308867610599373135288590110853356103264898780864525874369920106110147181142489288593551813474678757069854424485098897519443920147991971668116979460608914022316437437385388100622030482802586842325731207808486000126787413664477685665186481625709718385374341555700401276805215429485327084398359437456906155064521594681531837922237344805009059247242070569701928767778670887661722280855715487569043362133751254831855411545429639040104300045603377419983145540772786859448432878040629163529713172348262677894134804414699265527175277304213070603416839867237795573980345448399525203188095473042558364388123584566928589496677275991472897880001589542911798029153239835277796629035819754709355010977292590852475726195275145873287520214331404005368095375597297881122897110021945915867431374258655992182922565803040902229483356465154438966622060783948747147693883023049912042590931306144403592021165749223828650763760702588715986351460344641739945854351406622822930293977939492847275802444881925534402348724636245735069238278895493284527260930153323168290054038657434606381955392796054690845619308916354060962276704916724996460896365593248791259408608444357435592411703727364306918921989972871937875331416098515304012485349791276803502488068842333137911583920661245513679816812324341695159486637691629183519327106700141787976636278577242375325100789428145995133787208048410211573351005788615289035823507747464122778703068905276905135968974176536041019775334328753218759839592137184819668348295371165093055621568265580863605210285584435462651954290101540335615225250050291169648084802268463029738304794658878201295960050906172941458896544322090612691843153867082742470695603580428201492902841345397816019129118102601061141672902267837954245409878709085855638950002699637811883025730200359542109399867626261656684078406172048401111081812239078234304946147960593442439348525386231039222577472967026666421368855495859386685036599275403120459182749765021029246084922763446425808807090515634820661663277449435612403809426568238205019048291798005692766788780826711717548770904555914813070488727300516988393571094598965225005478405957026155560230562130087915144920567107364881186878323138215366459997676708816667355161883376756275539150234291880845164008232753512733366163906160528315354231037520749870517049308486941306544592205330760011314889306035261477936723710098710844383323537193502554474784576666110774410004783416687554553772604923506714944787593646258679800330072814945375635969984861603637638996689052736856703310393236254920427410954302895877398186266082868956358540865354529643351492979039522747536642172610758795582889600215355321812864129197294428279517769598180361378336459171382365843045324441387811171058382647223003335949774189277190740844906709827341784599110887542554843175399449526494430258479829262104372433037326903926577650858431832603300761741469864336082247973573018975714024160402925889459401873910024835608707790734624888415952376818127272331846633048319182516159061500427502852063873861699315183511893248225535775451936654563132831632407895295213281033648589972008850540406706863776355286046853100315665258695830580880919097183748033595165601907818947628450904327051777228082318130867180255272154973846737690229801418985881932154827829650560927014957533758468916128084964079405736258763840004580720651449616354411416523630877050953744917646900865420904343072866847826909166248977001596375151622665686683137047412810678065612361955223859664657248107310072704377249017029018140706811255643106224276427805583746909125093393003368617933425595460577244963415029848954601581468498472941769138567371185729117918811563265598893348946735757391070455264526580051816746969992593428859014514882523201438745414846122736388428411648122741057992715933824523998627928162626827987866008628503534504764220388952077729362811652015305645849526487932273546404004900867677122723915461455081654553109662028142051635248024690418493149745446214415597569612333550543225291027602822098952676535380229171278897986614748316615401415653254209264973236832956526930753231462179514281579440545981723800224772755462417344100314432947246070417523674394011391075908171304392330884624069660668211242610169803639782697277262165566155325949262558247911449889967735776672028930022124028024648058099752009021358873376642100284575427823847845948428349414318184909798721456695428352683342467116647034094400346300471886351465751141510099713568808371661848273711946426300586408883173168058991160180867570299725858881904677143158282414821545364371018658458430310220598139505602328658574761601951556528749322052874761298670837198504409686957869546932460107310074672116650419767291109709428191212348052348795041079446003986704888609272770918373064819045187506559040061927073619987701934481120754560221700601120322867099708369666268883134009398242203216052573605838986404454176120436237021167920829444790520548877653950140827725265141951123264656821468451308004065228689308714721954348046504108193458060198430387558424333914566742270501720511574253062628600535619134623897875771752580855471806100232530291095500064794657367526589384572087437224832440331338770670819166012314930442622801510817592196143307785234480433403218184994639559530432367196615557088328513489537150596136054056164558665558523335023813795046912133068143163481485235911692292823431462101260197135426631064615636590016673496659774362790076301341524128393261680035107404559064794071616464216414271244618606584631125459238587363240169409961241781223791300884505242610666628950953076463573198602893224750086046793813680180743545835811997200367579572346725463319596421710241916454159823864528196609917530531057883048922790134039725761201833000768296624755997574033165777540002945300127130782441846242284998100980492280253065896079174685245878297288671485033816104227662553401378329709717499053573226916709739608752157291352737876305171016680056593319110392420152336082992897954847684496003064900974501662355274435167751890693270526099624457237561527579962958791835655623373979869299709072767515924920299284708230263119759523471699651195485695477209328565427611353527520741897682383866675094088214232965520340772511967581884044959090238336079265688249884400099954959538612607242167195945736216316054478215482397042264232782729878962831506379261864782430023080200465716640562493757566822107795919354806937008492418788111787340325234252163558326384968546191801997778558623060033802201784007150728929836567631795066666836745456614962080874659896244234438265176679502126667995180707522276656582102684125546535515746484360155726783541712464224135137132244813710656130223517677978944401722124445431815213788821049311807316463277899282600675646966350543468291782000316123134179513858115976319975893201408219077750615991109309206817750269757573162626112577125360047339461079215990968637044453182546449417085217537659983966419009756929006064085506145913432420537733943942867214125476160334878393385301496879281953295332261417397153380660083909481412835262500761186163469136951130421740971748511971070646065037492547667809231998147111934194767503143445339345912275756072448783830029436397018948232601290344569129886104490530205821079000711967268696315644565779045350162461772296447640128203416536884737356352261791766409484533567037207997296448380959377205413281264023191580467106433594248313523306143190093468823058996908862060492488502732031848481534109198949278154356771707227734931734627333828029888881942114748198067375796503883187268239066265671153292866985464937229554800224896389595943457701914690333855181470710372265846936962307209608622830935935025400620275799895420723003738461035352362968982410304809723086025612084999986194735469563030981606412241769573722186407521797110431564381967780407456241430230185523553690592751181867412216009513915737846329448923158911000713760438016709396111028752607112136050643568385360369806852292006300277527587511141573038636889175460678699716695732348452623906884090795315879241748868723837130403041649148925870761763195064838536531917326772262639680550890596776566511973152231413286843177196365391471197227742719426465327378652235974427249951188671362282151375089960419234728532526368912585601205700036185645705165651827782176349013590090785054424544014932501844347611461415802400447850350632685574987853673155652713513227403721116491232205326939418796604179027531835672699980473453945625196925295807828748220031490299442266296741678045649375778668851137999073832582789460861067266707847248883898062184426251601281860269773232113610429860831315294374075835148717921532862771897058879808019673427300469613608727220797523698743630559955050916141855834551313296843864941503449315890840986084685248830613544776420066587095295564550847456073596083397001524345079968561362926141147940868952214714010545322157806393830579036896475096830960915987650331220550899586295593245445089167675950966175139823955009983172927647610279925567502744056557808662837688092112526496298604398766578536816578931889403549853873669150328104752600159757532169702299200876180051623061271981280453577818064175240769056613595479135660730582035149906700920827691197968422328361442603851832394700112197604457065097845141034029152039144926778916486331012494159049327308635873296686910458151486738554317448892470785608367196384223991218871234784169737351969554631859195324434554431596700434291481813290247743376953474889738058368608531592687556966272820110490385710557626185498812598888400521319554271500894476206306232444796873164233061626402428358402919906647609919794595679101196606893800884775256629318654235667873660787325018913198329467301469031235033698370529065289809911916664381831247581655702198043642306939640010036219690187385339898119163409162954921515205318589013566279945260312048052127557378876039503876980545583320326346907228039224350012073939114734320944031669553982776775939848847112070187261931697865908297522590051409573406829445231579178431447835654231587885074356417779735168840514792345517647527649031939053328242092732953038777477345960691292497914193508639684679511009464554716242108884136143778421230798924192748799592512397775417924505608454373339328111961071429507523630770913038509510543281652907406573937012355205867802790959331228431413002632827691075452500206066645494060210793658799214650732736005450725587432182356816323907297215826924001883959177622834070512302159975983572557270667944826536720981488013461802695752584725136454203376173918337498152974668697411240510566405038514433124617511709216170904329262880960255215127046315760023041213519800038018804983835136297121890332068020448099536180597060962720172846556572384877254692392922418209166980382872222166035628810227034523367364955844962808280537307975339488274719835165013662376889996296036234891130684840550926681211746077286788965053711897136351581880895702133251378472974854246148828379652451251318259591813778888870488125667009047775079100950399195046289470709112466675387177264235738208340122346438763530771059392007826548767164817116151101451315660372134382197333389159635398453390390028903639983244744278494749654062010059419190890982158631961795100636022087120200952881794101324300254625029906435864913559171525638543595143790632173547257356166578364974378117772773457992221034040815885637210748598328582124188747733573057825923208847745258255648994210293611925985321795948940893118124854652069404047506184378794537561274715859794001113583280623771803115722309726941046873130259568092042959445476789834394461224238858092305286431282085610926543549459064106964715683871018680739686902218444146907675074988527734125432361973625254828269261917852062820238589066597216229174721248123877941708725453333659277702423353310902586471627994270039591999015011343856614993779231771554601124585201383236239182299506382152460859599070333078375276793502338607086712621457044999682021142477107783950756868634880424808899331075854964645188681423731277775584632096794814964732726509603062478964874337650529849758238991610032090029595158511806741881656675269339528413317981861130080169168127402021540321049184001993368093072509109645981473881286438271111653402319144747911460041159460460468535624792856819999885959024478580262724626422426725293442661239070112376651432719437750386426529634385461034517091692924134606806777270241156163498516719441751049808740977847006277158771144144136353408393923136882904555492696076675560748188420212982097603542719317285117503345220284221573128905825811425921194449226900567544331062775457741626637389422585321163420352647983166897910317372046971955639329157165968625280703932305943318708388867594839803420943606488134103920488893681430230136241786381808900930938565136479066083403769674959699785320834988266437200744488093480178990453940546882997290803477263351698337613909019670204897870123539981990108751535358446753008488611587537130618332757740815512222475162158389184866990656057488852000279338930040295379699657228685397705299064442942844367296216155723286336578968317701307335262059184510795524289423409847654237217579241931031739017938545977525844782304824787376595148728861460580695499303437429664697121435722939131162902520493466297012359297759174490312019301517152392817138633079472580962623669537645271810039125621232340993859465227204986105365845775785054751894505874061187948905339071552966351439807675351577347111316359569807794595084611439124029067137867827011097167376693808482119004998072012542754735163720929002391346609295225749544167100522450474674212680497531583761156006977681699267296201886415477501691664225556025207337610110634660197802607719103449952810070075423859551690984860142643218133165698803645448258497487762560746146711237481912308020200224651561503425849073786980565275699859995073590690069035120172745987372605725672076638217284397253160044977683123277800623264215871855338696175415702380221605838261925964997432162791807612065074116182293526222960901267473044789985468342414205467300770218130630234588430163615836412377711320277568163940913635869860089969347501673977875430853945287493314633627399758337263711400391481508413930519003296033779694386617812627912570723284788105524512450153521235785423729978428336790557302360033169229544556204698310551055519535878682179134750425152982938646710363882538256478270454113799692129562876221480734269072494139605628085597829898906076723347642351746052971942523430036959754321752972261344914177041337173725379657811889804549132619265076219077664927299238427669876204597060947539438677217614325604943857676829104315238914759624031878710525676212551694550526074460515477311617346601866268611139064168977842405174740247642517106388837596004569866645200053692260377263232158232326255559325242779442962674715338968027061457412875138456444124078761093776078903383239660603718274047440254981579145268213629929087927249037925097829862410335297783766908148446525618632673016794137898472350987632912283235366519075310687616148509161576438551981531029803250457051457508917192790783201948627680647883966116984221560244412580775078997673955149785563925932815531594159757157807386082703773208429599298890487903920119267384250628625302507381985760967476775566977829882429505278301390475377399000502594482412717360316184294346255185066544441786717469458574055336256603326207971784029556748735427822718705750750528476371290098093188799399219863082763945811449599008031336723124308334280704385792537167440212266605574375347615828976849875474549887607491470173990886859762575461522456737360177400653219268133452803031274869365824572026390228622299434174139383895432061843606197012989037926729551472203059353775763689887780954551450199662420057013248823233099293039618835975726317052872122627191636632027989108314196086109636749765053737262455594856976261075232658194254374781653967839263094891301621393757845187998440912055252252618136106664198665934082843755363981389189266624860661305180797368947699082314595644069132321358040429502599757721533621537748792482660420935851621763715010090931402599974734027691485814973635951013652108278152570929028551583555672146345660428531413041284656985861588675851688860532071569791903044290649680720512632492959018606432053776064767378205391200698345598013646126728340749057422200825170893417247251459141738853909149420396968753083643330647037324653511419955719591716171739986408794774416246183487933030863521462612973982399235504873473995812179853078747322388898519088289177828000350709916691011507140225815074105249283867905438074424282619072646232754277537122384869333957097668747074660774106995192790768453767724694370231403406702720036845622037339378293638161572592944990490963604804603202799474223087191189529363168962608577451375014627100874578343021483759328680442488167816067723607478644083356924202060978710704926282713577957325280098272986244679634410808247985715157808710201326936226048917681248741402026829687693894115500967328579031613877402650931176359401676281362331906130960595615220507314180691537635585553197438943901086520722371779817121226085356981251364895620725119985089065296405424633632202777742565981401873476807512038635019032670983345637251375622800640211327907465820364805242631924814482376584927426022494153789564562967582692504270794590199499574724586355189378943457404341777525357588481661836419722558169862988060388412099806687987188341848515683122805767341509416941893622199478343505152277413286895852261753816805517363106752013529353092389038377398113115955970917546862459217141074365074203856984509308856878272358875929131915715961033945459104680859262650365944932831025526091870720202440533155151154480015230052772120428920186624158128380098612691515999135608464334291576786679607666749255707815866347131817835529880452740798761332042571480622309527966779429186850876606276665950633505503886446795759656142904857650744480792172295509556255409148806584782849008546047988898288507188306656602284358875687915199250685696430651297435089351635088491946305221149770983765055992941695926900934415845626381502360476696207336577274416791568953475807953938144059080941152305828345841406124477749624703064064378790450330333944906688346391614701612844188685206429220532773828793971651767859819065402892429125831651747269138978334447300390703983488266261712546907891182549165137830215339404622004515865956112929257252841364761527683103174472807386679080603106168690873180245219132492669029416260146870962902353930274172632577182116172682491343778841366233066886186156659492060690423164990401455058945491965267598168105176765775391961374274624275220415642485307822195738595866428277803843793999030161222400404687771427739822422171176177641110195370166203826158793437791075929149749259154210275072500612719253176227121252823377833623528883916414757983854571304713933476918434065352780602376655739466456640038379441909529292457858920710580125807898066747196783271471207536970928263225837468800530676900181288196581692720569023327385197451076045885668667182205461021400445928799767691648234101876638694689508221094040408873161094410544794369424306188788787215025394289390443896181750319183010167732276476844638117636770603789416538756529386420185650260757934014580458578145813627462761424369179514209131810446453721071012956400815712508432278736758820800003388761898314138149716572146474396780966736435214022988557328190417455207597554006380835327905074264859064940253387241008311766112039224849574287122509871185806075166816148120783336733996258889951973122910851603884998231784863262860551013484405429956817577258624091573785547237744859597692139869276485134413506781921408484001768923624166254145073377779734002438792899948310948910121556329854830604655975232784448270309823059605031003059939495871761273889138455513101565633299869593711104616675309441515614640734610366200398371460951007895609962717087078094459370946482195040081577301323581119474783313980855070765216206749914480425628020649683792879696664583341658214949974875448943271822747223320247575978974787357397867386683844924372479050316713642327961414557289155691508286469631634701968328290189418858126506368433545863505035663971434394404255203885136957594571338918340198184567930840513479214359371371399701233776385261589893169308794659191304231387360951364513888427522421784681825533650022414734731368201667854368367618312640288696942404108253800176128163439006534921723969042399005730056295365198690434516395150117205011035920358317808065607258884807429482271638559837808213462490125641538944786314183410742696008113981353827659856810081887310228341448513577469552607203947547886761997446173446826699390577163133249527779951116701492833529398371938134129319806791278885984838023699195918299360074622876368567095548516344157003915233232076342855289673068640968403969272330266047883315561612959129161121804560040679954030007214691828769933281752834452883189316871541065461454729739987429352197422481428779599592129269524337180563164052691892328949363033076014437935447698733304694823235862450164216196876220836419273208006830748853496771111706961119064128282782388005120215992396025352259860543872857428697661162716343088058296379994862658261730569993317420826451651602173983934538799130731037441264418528133430594282558645133401581366418484219129040073302681649822377889502825681908765857186513451515754838352301530686511801137721766861987508846636220026813150555755926076824320585917658262104448306690657775481294898279802294818679971897569126666783061403618225765631852846721327598818630023443751675571787081150236807673210195109336249499205532947450714251113941416245930709560199563012315377675388812497620364837255142577004053866861575748648106302878535560598178845199022221917168332502460179186089571326705190209656686702980914602888008071085239415369620275934672064828592131532117260156252760615628204922187319034346279918717932114544014798539468984996864575123330005809201937830962572895614245274066566335359687778579887012762007178103239257845425482533540824022301542438150961137442209943870316150560928199158122622465051973175511380663440298648348986889681673605991845267784438253351034673467019881634382298078699795814512852388922444120060527744141529406440487371338913729746341625351684669417279109983373630128407162005978454519851600905127191214889623209221807361499854242326915056091602307910909725373259975257629071758460483299436512646075000364808618259210711520882189412052946713299118616505163312359164298443713015425224406871655130549925126848057916786711013185880572111157855747826702763123137862708099579030915159634781199285888919303384820700917415546760608356950107928337522890541629712683097907511272071560174721497065002504319090080921740014288614897228580584555399369526300251910786958955082503106262768906422302846689263766358236276100681965611430096124208246767649250558110128009948793652778807122030332467649059347642404263941152292722999534762206961314605228725864813714456138760221086382106873045915062165974189761475125805511804546430997246123055361407585383948384018558036532215698943516561163011333666311314508188339058604434819761184649234037268535271462099372758939682149688223853221242885959091413847538888721933344563119322191008806718682026003203511018415021290486421132810400205367390742649402377346948979649226550114935555157382896797891212669065879238871412861355498928494074328190192985173533738132874774807634890684015170955253515387248394765051429779705864924597635641178167725828603530370864069046791600875665524236174758239747099096351522138481920542370001837791283671351177392822969696355698794878401500394816903565074073038535965026802476993592636616760318097019391705211294863724378114007649828350204605757827883411594702621139114229304682194180637351266924324318806386480490051474219952072832525088222244070782834263312348440454621643157252726381860988745227170642685522185149993514903108478986780925935515840046497818218440319309845801346339072379726923415378714899709516211116909874918995316950952233151546381964621683253717515508129277690297220811880372129390928231680675979928895162107304500467549215191265036562817055440051507947085077476285461676592559011636857191581992584671196884473656185278450378271595277133549042328641680614256789777163457845155947790669450426619698701861137419549776683927160865230324940940460298880046227540118120292610326691595472151202144438014335700368517502529661889568210444592209077177221162505475952198070836104378598699826927470100152622296642833799554839620658933115916715477719542846216663917807887557206753444734203554654006344143719201800756179937810603045204292096749524055188537965675784288969218440865364322338200311128707221348496193444568873014576169141768928902187590586898208084349471434937318017197050433780209517433586392654916107073657635451466253396400423371351669015305577521012604305735246639563350482702747300332356854449154889828040092673615046485446476839401004009832468729496847057676462388572990230494947813026029728950847458715259052988794985586621593449308679428104117494239472859444906259253314172153810899497571715693139108951251562421459527475788830201867827811659959120314185111671731877332870311031509926262300414738559960900296603952803828625651861593534666105239741168582019197785310927408871633904688409340816823024249133737712688239306505877220607258356607879588083196876041638538197292278255825490369209876072618646248449436291901286811501511025200714038898126211595242828569998971985741442911126650031033370336982436081489314162509483092165449936266148062566479884691506467691468059191778712977235837945030418811034740426708165154787388654618920624075776911264599539582004379581535173780704371706376201861051907004833550123373541855463007503269778352950099901096891452659525122619717342196346391413539078669086886649397620331822209913680848786078403515198501571765460137864681427261518453093037538531078650747870588123265728941706850160445583783050500140759237502676557450861022781110518472212648455434807931446356045221181523456888460691554610112581323562873117886830823199197824959405203164700835341372763677131490324464285185655240154369647287251089019947759226827672184792655102257655695401284770003251798770478396643824974578679471307593690340309215828323891410555497216038118553502956679796999728892690526417230644007875867771776023958444867016019065102424121500000637603890586090748167771611973829987235697857453061971994871814682168429614830572638856470066617472965362011019367296861457348211080429004817013732435782854709296293676295017578058160922980950136055300897300309168511000521252133431922194091030876702505317593253306481614110802854822232703983635296679314159463539472805862468011261282790763488881708717682574479259785686232802407833908712779838509785619437404029407527269545912046468500759085186511977674963681528729026816758526623659490618068689517282490899660818076967966730536374225298231959388457383981996949321590755235243015309475975115622763789202345035440163055682698637439367323104592001200310472327185013369932667677307360909401970719839288271274675018101805761010274373890657049267271822786022497804352093593882810733777942212174149904306329979284153168713324165760263742160517291491396662465358988086449244690183044528111465877431443534309744085853635495180352709589979384956116098012405666087409487888651398154243809018963400819103192908290314943237518902340808536600776212156023784458404774864768696898095443801479586718640958155938457579178252319639999912702664974853443922557603860111345787049695872105288366168171172326797478499327213737445135765934616061803127994801968848867447477698464122257598799879588934108952933809799069606202802267701413437378454357948234040428034247981329704223019558894797931194423091259225167496371815231728802821609117548896595358316047197379644552884203884798514751687991585916869432530250966276420043354489019902626393610490225249985170285920305888764556684501238600359125235474101781145651147781048248728208444845176810424586873770866330503746928883855881626313995109517927913163742947398830369571254295236659090288105748989849451968351796570949151858787520151281896633124546040940872710910939461996614418029804299480486529143697204006117100076348611533830079233751576022917720768347846702919432364767520833684528187555552651307771538127210219079801056567697804142619168888893959631833922121883342307565572890079339799520407351666731379897723586047734997228235833298541151386510963917601462695340041032844908842633128591966705911261809915211261913301799530488576081019817808437500837809519232413289544015637125266303095019495560237613931143190770850295633708501552691956600519092346249565902802337611752263636864998797268623489193974984516384305123548861664718324211454143937349035547566764502551338518915550549857506262367208135725873581428316350465611067734773088954385126741525570639745895175509583600847983678164099941661366098596991181208677934512510996078044106013969980370001593433790556082694794342106757640600685929584192702811816128859702503188751933738879911580494152432688155647937888312106336819935244003910033255624911172825828070722914916019932326716514673210456679990167970098159485894448066658312187496031747885880649656905944185250494246682814780014027361958799914169707826656251779725026531855497817325334631908910284016367427310708562015589989516387215633863170350877271039535768780370978159294280514581929309388759823170049226209366039601348648761423367979297343752320066435770872584860309477718673945101519578090700959650604791392760469749180573496114544781973531555356047844335816092546144328977461377610510178499376690501567284903302061096118089738955593328854663224546073152474638494441280700403678939222346613318852048180639703917151661179446378356526476025348507244548115242739895869566621897537133096232164555333945032185660942211068587164720811224650574651312854558337968827968060256207986731129869827755834701242652437045753612467748853391609227379163999014222013908605267663965891971971236490645635491360091120502814331535308961642000182462583819108974035853382071538944191410786321177942980454351881786633631735940249874079455197996209665421958592725329668962882622412371466563088050098058453060874651970192523374077109282413905134479306598083094830776025808514233321852872186427796114686662935064566554919861446335362314831020364853100091841817279426226508449740605893976205236288709426601822467123945489312267965658040793482103328204571992428065593635847649317854752640662784855115917486182514889466664097444837595015741979991493180182190315277311097602685610504077525337896121483824958816928472366648917386576777006304958093160382817267538069651705295005459081245715188096396053550833802218992902111465405027450864233189462991911186780040145141184254784592815881400866488469465859471087114470857068789843435302726276936460464482234083579588416463006291234054435784068648020439527717206220747348126629890722263155287875161727122914013154000858387900128713777920550734510870595827481031762493968241251538121385051363316962375093523584675760634155260030331547683184765288384168617622904767568652104045245160679977514646181507347478039997364452015852412710652060284529951575184515216625343614622542366352061415959612554282840021106333672196255052495952125435359629315347505935141548920454798229811861525327957113258045033751359026331352704193730696377863828185275937899065746263759478676740321685213588624980505987561631379760535027457434272892055923041657853301895531118035226712928048427021026384430699474988023263239105418707441007481805262825973937494401231926164021615761343057505635515899042658780844165983162397089056772435826739162192763318534515566430977835195116054607845947117250316105738549022708369410802512411961727125308165412631851994648028542894742581934236847193848284057531840925756054552873357250177356714550233510715591237250569029503278736304015373387025438888361635565174772038266133674818510827112312657245437416757623198915771645860014570160673816002832395592336830006791313557059597049507889516357667503799009223068471243713711186546116723673437843655855429404660541609516585762056928294798539688809887999532023403538780571550837716570533441383238276686567087902160841668019780084686111235681740528220191137063253383738817348503050108243073463384923699862629022469835761379477606415238244273985304810672814933933164175150453007637385925371797935977333415632900784036365536409070877514644077980809081373531468486733969053567556492253642334914238751476163903660412917362771583419369466356715619368383250546838250646264255033696961829259366806301660282635055058221110041078800610116930129497026914491937668352510149284755848776149410064830405602219221323245099168155236202617825070204176646602684207020185411833522778346767186648380819953062380088314726839384435682450611474373051701417411085368825344975399110363390625848906580046660871587744811284297054784049274506860620614972729046194365495832154862492620933684105051809704532276954285155079337713074065891074603575001495614747237502091518166027185193331695637789390330135442973868775462433893011763949085424677935240241040958180444871223742622608831947969504412732243501961833129877794497492767876013557264331785547878097083088324180004084744436944230529067485158602661099669836338350867785744352409320501339755674655157762032646781106444684533498379658928392078134557721408364805251882450848190275169643576151692620151163745253452619831491740096594899921071310000035057069178997342571352030745649351124577635490549764236291988052728759418473800130464567184906737861493520805643412063380321775964605187874276448380801122295714131740174396533184785332078165148211853188324634053845242860864065578704789184584804551340909158341201990359157878733173672083945076170784695074014463470829572402320034566768619550193809549837549889577655173196136796867740021453078232075187117590376112392713618207788687340009975219687910611339552356990472398856132886718102539856483371447318004352178052293225486012466535502352296439792524057182186842560768031372930670860409732323943669675525080624787488968320197541754749251297277560338744114686054461072561538345451652385971109128921972830773507240846540808787361344791404321851747017244380196677852276016310833219249026465735027355170449532794581434849756217298252272731426935750409583003185604610918877377441309514173879294209892347754529255048087068571731168911083950459821002994450826153172881321900522586943946911918949464620804548080642047632773410984133050157294217945451926682131166529283697963017585367094688047746706045300115688944189286502059932860266398496859599343175292202763805260876832162683897178170685666904900705551553813838791278328989306217564340742154542899692420787045340839842556050570443224791523832776822373620819768254651455692770759046791976243607606008726099985403221259412308763113162235049266757613684715999031497927726244163334778803366535792337921265745424047633595418019114556807650306900269236982636973980177316649836225545081738280789217726934337797993534129989890006770133666910491476287350645039328525009681786479806607057488443535374374740923545680495105582504256229941821476159644155982636309570134745507290226357883732982954633584130736348639968994182899707353270709247057621857609678768056615020749512940332754425317511053724501987601656300471314872458728443541534053842066781358843284101928983487215206934264886705122034921964364192322490130114291850540202140269706871022151639279958298179696307557081719327372792996076853509725228635876903951048230983776398345394910946454722231993476201981139538462293997145758419443945916959289398551902377956003855728295132515094614230538535002155944017269292833251148682548930047492967260737433012750027635790372185069101646487606709477061305197045276619478781585125378966865557333501799463595673482914205704787175632775367678868779028300679544632508375272361908877344512719309580627696555590210961681606845857451114196452390630968198964976606365171670994669739080523070242903048755957424062730126191084438295762074535338135437534343579336210612447150623747850946135560114142968703941801520146746025901958795578861104147063683791623327775379081787908909689170035923251732860226876017138448790911642339284147260858502908279276239526954626783427683695983225302908848274199923286707666004022068590508897230843938783045114922412090217041750590339843086885866719334084756517745220413812785739722716532463624968224018980718957002077477219936147602658757999398105031347969158924387718673585586438738026530665920605415312267270621065090903452178426164131486890656354907378159620574072710256518514441670046006294430430955436888235908009771961320428550893191186338893531677358779382509529741295244628211852632682094315931702420997374294426792414844517947818822838284460348561592148322922258539400448882132060548228457180982146210378186214036834562277729275573785638944499006573871755533095667794679620977042547153051112166053665043196228392667415089936151334268463408268033209669246808201454992045180270779456307462449255844581913429126695190121862486488081272731622415943102799495514167999447703260446222164677082319888868491434951007457368104150923950819028350649260493912639596693070257521960309598238797779746708489242936411480563701925997226274291776167802849802103012054184911230188428917304365940383222957561685020956958359670650672211849020343534432902317455632855760538429671731879020006751485726112288824949583721603097832399944523705013559993717919675406939750957488280131246880380206857930819078512628773308300775902942343970243085578897107879296520049985218804257071616507402324319491772247498759768116812030657796405292329988206315545974865439348995715849411049468265293344846567947395297086111277075143537321498584677628822099180374350535296336514650492962689210970928068945484197331289220081773121186401134089554238267633545007913058014216035144960440954288737490350112436202193912789989505558258756804697165474952737671080779450297981611066459011924801853235772177428339163309686290880618023537705726846640860678527779945441712878739416374993869650334980504522481295556218871606584174862974489202711043229407774899622874715289691631732997497109411449170653572333735424184623957179816658681035390640114167361565077085647987762273123601966861055550002022371736713787282991200818904588801607470635354278300565242446195721367243179024523674424652766159366102063737125747008142055816676432257377404771214162974160574895622529390283361514721844171276901467766189435604097021521525982970299868384000568583895960433273439222995484806804415155472075504925062539327206821162607574832120321334962216450022345610841468967074491219838366476229921860680735677637198839423665593552209845075132606874357712968825623950393018634419656693488233123986002053512664670676743063374782731921940450569121117788470616171829679822805471539279834947513404432940257935125648149398338065110609756700083915367780695672351338318209445997622043624607589185954402036217134375319443148558252991807474358673563281012315790864300031308136571480543454348767466192842090653826231128401915314767081432806205914053472203402409778634385207873275983838104306969143687605791838033685741963778007141290032743007291274272391535238518871052951040848209497149320734812435800213712042620570419168424044645722827263011862896552030894638706034247463809586798481834599765195743384217673387515273095376808497166635384973182662390585773328845253825785396228254434097472122435936830874130441380063931593957119129027338438869163117766391176398385347754586398166219923380842546797393098409700878572414715703343259955494968420332779352519208838775341783895060825750706448377681644970857609205679970950295889738925273033386265977467879721390793239803236234032198974006437957817689069591427464066064244746564687635052584417077652166427213477028895385157698379606213909749243708110021283130885320123228949727385999173901142087863365995818660190789205779009665071986683528462471599997554869438205717218831481139457204750622220295466757673498155026328516264956803646445470001475039114529939760045381537597835741616451516825343401628981937756437041512261083710053955859335571898777101378017210537860744776345053661934035779937037581498902278834714730991516405204259009564277959210568670827330508275760643484957195202695848178985756778896880564419773426257719211096791398151726919070740068811439526808224226297338776747811271231238343127920698449665697856578196411341631150818840202464619939218309698395702177015239226463064546105578075210108921643307669584755220129630704323219184947041613084241964430984475208026642120774631154301517457474325274194572810869669488040805203655383557014660026178409941525250935830888286354963137312878695942748842435509980232211761011842933080505559821817640717898540116539534181623309726976548748571438483006433693033029148963502718043778662432314120579154994138892140554885799858156661877811845848007110843954379714089044733479034030897445285282854298770521603262041911503385559990339123589086114048787521103015083002431380713235849788502731164869143219757162383216330030185368050511856115761407461216595630593283083602307203462624596082713943739215933404854033228113072002182524403075681983936798974489051570307200742614936260638131778404186475372442552937751208687244234699397313215891619653622741463104231967210358998124488465767051932966874399804303372364370369007711772369468185849415474016243122603597003710258411691777337017635339252362419188419406508094900826837809808378149614868961375431919434410127857430070423839803173699103920982874489295837831920093281348820367334318812622072748289785234595666438104244931499905928694886380190380177762193047014382577514304404227781945176953698509903772515779239599165564865105479577307710606043654304867909124059011717083270994140082366178615254847988224784846287735123106054747540332844404333585324216920208206557420518307518575882623774245413537772864540986305323872836661334795159139537542564572268986272923399902823704263304332910805449836327924104991543340189275447572858592995125569703269635519168670985948688401605040637868657515302319843857620487083217784954605688927091242003836867915207909230826356536673583042294709799729928235988290171559212051610804389189534292015678726533335740433294521876952251773161416460608993100666170300600102224668020321321526580713156639545807132323460136717298212493352497158701195742379687411628036671393605227077684650126762132283544976138854217978716584291472195974673342322000334180339209565172548472906375598054761014907980077668703422965997315069111304140165060320765664249278121934341757000578630865807495981526309246608716340716880737918437525567532529064046396083213183074988190933989803549446941633634188514052269203074957557378778444790759664412233608243572494917447830115767388188166023623126065162901607028580217412615854918586803521421681708649689329372968134792129305018566961995047552300045814708766031269803603716183939769734686222204695914509846457937898510521386768116428404459246862640440443578313872053852342957523994811654846736540893776894747314016531780791855907627272803095126172930518863489524397473115195593713963031710818134758508603072995755384944877656935357207404755409094309377360468664855715337088533372212744346257518494544423320428697738472970833942925275027583880659654027166950610713106614987209709157781739570746712850685895206766117186743306985113110992029729287241324909623595454092095239808920599291503454453146628374294300624322999704499976838780000701794150312671077786811862872922420296191968627254137916318354701403079091088745339304105819614888910036721012433327614813366543158647458611127659872134188549500282257386211595028579340709744396532577046173053977069834481520669747592632820899671263495729024915016966962355105833762684096161645209634011862091158193571183033224490336288396859433212351500332343644418453521134887249236225412902151781141648663241223217473039714708171749498005596301783942813947066625124925405554175361608846526953558470933957961244908858941733555436016253781556724177156592691637773018058308804589651938249415834372888478720206009918562557953519001447087550487192979935224281351689436419850064709582611889829326937244685669635254636119718131938853078856376480396425684538476410233327891134111444435918297084815653760567632938425958887843475825960497772418722223350226185452597207493263826389805826970588881501348650283340246873773894187667609252469606618510422521319415424613420420812131840610787963955576167157206917362619648550985148597963614989333122717277173796848402572808993213155597788368046428736091153540067512832207465849270297578738530710812245085025900646385992715230380309887127820006044486218237659848551242783635600974683016691168917035139400050442409821879679012144508772060635441643812138490979951887395247117929122289438517671863403446827182587335356503421931587272857470357474878997852187054384649952487453257580345868696759874747241546401367892888258732463462347514336316158651766220382643460650751382466592376973634221392564376264483270968360568628097812046829004880817881678350919233409616206448101886526425698960684366486053782720845008572420002505629938737190668798941043714214973638876077361811225762284133752337984370217013077623298350362854098857623234553771692954972637373220659392429617898094317269622578255045054305928621940623372444539739385111462867600632806409032154486927847055464462527112792745879593904027068063254578234183934484242009683095959889598942674870248472451157470605244354970510908789780340061579244093166044503645910342592904273546627806538495527174910084551453483102338214420498853603835373904279559675278240381782367727762975788247295016099083214604136294914423227425809229893633327776976554753387240091314860224686523141871934013672754549562091387397007199754874267512175447761509778701278718229676259160758070952488877091759971454617850451987350038541127892259933574084159406644236705755413681560338446893923949673961124855799993906412310471645401131432192669870167929058596702194428671272567998419575703906587466804394062733800057558661357110749163245741873046909601347310916130303550598970117162414062692004844059733545533085251674241000268542495071273490062035537149322107037682833680247312049389288308995359084530603958091567155379700327468101794548312763013396202678251580591898172989386705523514643981127913604200865686154170532265237338522657940067061926175245190516623274826394729581320731611269536847454167462085601261844096973325159017841796891854947342774968715499417031144197885037776707719490771500415980269394395850094829428245693955499196073540823510266330540119975774162569818144840648690808639394696751314186084179368769294437615405376651584102541086265018629889076411024879937419188067285803800707767403708418156576581967949115465041837641167573912494043049437333752561218172579102407072639195213751787143824467756256691147282799422754305232640743842066656852139038724685286742206962120969671634069923951003459997256564882432440127952970858014662815593263506720404968990428020256621827674676852008188726076035491517511059789934312871074692554191694999774748214955595230112021293573295085170729871684421033453757608396790601168908405113310450070286774549206043498970454808733838921221987243162088804131374555198235897514275042287637515283716905211225988130172853378090429912684083960840143312357155249314051723293699407636427791319965218781118262213058160298494226885883839644743982166866433856668601711162525648013061705134289722668180532019722259311027723246430492708623169249451648347473063121494112898579681504353961148388012770492544561591742347498599729623175008816836683165020673186467954525642501046168324815065625153950980856404697187458751983006436023935732220989474041483788181738322982193513202693358540932325102089186360021148725653084413090337818722081452047428723690259559614292703093344733307974039708648909775205210821038912487784669141634635939428046521587197898756220432026885794638291442843395174489246852718861573975706714699569148296670993068890037513769156136492376880278664044656699649963089987957734591896373512135968107085249957449185792840515722669688157747657689299115581934878017635416083353044185247218515862751884405614218414875297403815523306232642125322936423500532448797063190626235558482228685045705165433966162200738987930067490791804452606461623899878967691705284877534429717055547662355263311464525360178155443468110005424834515972040086069604205865294161015617801754523375026512304808955695357557096498629531839868106238727034614348557784263455817090182806743651699402447694481090642765259980169551866115034034010038189862969097590903100412340727014038264102982634843596741494701566282946078418124662685365622295888180147777342340344133095041761797818004010683176971865129542316523121888584251490123509102984917025209677181343741949915998018823466740121571486555985542625696263190967791414618525823945606299121826260838624302527626094579104663108704095296616448270339492595509408990253131163446185309085154521537250686457881603090951379478493051082704687736869184325499037599971520458372610701540651291940921846985966835033641785418213879125721474498871526547093616053879305953951750869560091683113637083243158283254803349595123844914224558993335706085330326916726719685594264445206902129199946823614392646660316850127412850085335647119798246573200344181239839788655628929292881920659594648316974143737335798409345035572414354729025791037997900990598166738869796533335459363145745730134323952929174555842391112117917760004733331393919108234292713539909219245990166749324481069700274924057982467017620430072026820384087032973689814581791817227950242118825264815553145738127987703702871344540141636723112425547117784250046048007501370807561564079813413500517363334293936265580058103312291140791162900766048650749938747093317561462459784523498248152324226420513467635425178781657437888640557134702876924908132063259000797416682739202988881557850170955747343614457932446827849302378287118331052235895641719380350254071988474096113475332450863242309727847623898201185224467396412714674306716322638208178475698439884225890729341260798360045251061793085541760530095609998353375616979061315856266252398859454709690266135777914417493782237574677954833885969519112383878879291991042189187895385000757054754817683029926833430957745329271107508949233133419043878120632560570506990132057027506853031174507139079156894903455516816886894758457395989600291685480036826699070052647725324141158505958312418406631680667595881410293438672974708017236747788791488874443134511887023805100025953571337910438853317120210421428987526655569765661262938494549103765451691604220209030029586268584509308539542288335089715612753492161019694762479264123432423053931872488952412647609353724884871768735055045412309741620051412334281655328526161401104367633249838616699260262482046126861260338707665724956875517796567576631382307345195014379542099272440923967347181908026792939652461206866645503900818848070903309654496073500736505134498780777113972562531415810686075631873396948641263761748908628755282624416013921476095832465199710845121232064695709952194414212009261113947131365404342274295286218973547208447856452824635259396205890489915353765602119171668025861734781264782573761326084874133266169200827995135661421683778350371787387163848898160075411082572876457732404061289819430937013139502526058445163999804203775523751720700890708240933025478262493882529339165773457390953562635767183401715920750647128387414835670490650715086962025797491902725101141589448044520574996760905396548832945189126150861063164700968134041811863371027189983758632113853362083169944914154880245923359381799869583752962976972547623431956642973079714556606610429349046046750908438719419684133140077466652669511133047746128910565711296399570439349424432421904421644821483892798212318798621610669212670960079159653930704241880224382923620720096173725013980526743228438289861442708883737224845484125691548778990251037688236900053654971977645915336005122771279657918048995726167455088116895750377358033133906671173090150391689161511157323072076404200370685746814811728938797408425073290165799326987096540804233770102986678082202272257087021727229696851555886915201031293319586067184055140641544251403481637039736983443918013974192416839734617530959980022024559958884785917806380836011755422429549454029518760116227152329797624486327882804007160900212375196267174735739380561972973519714584591338867035527041209414751249701960377122606901515440668990375337727585993409325105545629199775276189974506731265311284401011753030498804798331562611816590189724426597746644907671567742946321852135931948135609228651819111293418191617755778692286318960903195955399232396021787221236961735863207107369778513706617728878467178750823502412707682269450349748767515345563160970811456770201242791620337928372149904399865939817382244057743521369908414835159881951784998973512708265163713254199730383062701815163481238479002616904714273038997283681556623540438296806829045822463885682722134683112555510814560025327852471892476720776331011062051557119781187092909659100177929952710012278377987740292376379758056307863561471178498036182431968681285766274909767569470337699764128235538134169082359934374325279480805727349849799239419814543413753932058735909552716597117021914408807871033078107738760395415882727109003277710611506008151157115251355629942387237311226833963182463452774140761516669069308740453226367664334107928929569949067338861638416692645401743582922392415277047096700309578532076624683200866445919864205569358892962518814084533719986807623594089596758624696615893116347058406768753978942695815408459981667375941126888927600151828952703595214552055214821789784888652268571435058463048304922436801251424517979560051432142826714591201539114086420850110066771091265559553785150346542574966497264031518505252227998105658400092909847231704059532783341300408049545687144675024963735471209035294292982105538604202865121727207938010776271045904875622365880422804586138457026186877759289611498834328492474648496799490805115262132126957480947152296375165175832610824009686626507868139625671495206157606255597556561181422242254642896284257781827201859053719055225362339709552147891061315947325055030594362839312459403548880946823651256882132104123883585995779876263467089978493767941673767375215000835766924594045987700254283324027974419096974587376287316397074984792626814938250281259269047216073237275950771341938209511811043460366082059005160831956656344697686390404575643771929480773349116632612053642792239985717073444184353989745782462160834715974164149949427006295734659533551798233605709865317618829971632552076309811501457157285474567022542393562408914821776529949096086483410232303541203062571092333316913785945772145451637720914584342753719114056372864534676526643756610550168710554480899076804744095761080953595734597377791167779307675291259275154643089894613333869703495683487428490048413319924305330242960413979033182181528722048463005542347544255087731798242499257466406969658901368582546581456388048469231291553433507751475099501479331854401218894122431933524753984693260195203733099377188855524959505436754925513986460984765983787299802519990668278024495634693558806603772135242383345156862719580927367073971532654475018788028505406508291816288302688231818720958625827486258320624618808621603948830563244609503910421537705937585222278418288899134905882993495269238588563155022383356466735254287033694113310448613717978595299838521982545919237447212916843139126946321202204397188055675834116594476776640201539601131449181919854855440181213496422530563359237358569764106632568635838724929513626605061854124941156561987086004308213348657073888124479473453996107316737030094826754712713642362527432408010987045633402100277108619399144303732429409374092846505879238537957843752803615977972461031491947504087017787259173207430689051386274423058948774903666494695148804720453872443981893080828172652358684422942104498781802786465901111226272127478649332437262323290316644111892112347146779182582387639307440378749337462050383415217720404766578746242978985441929731863151075783313465524857372237030783418035500450540764415742728730044745214347630998673420694994039267565157503897530615424201856591225342957139808673469943270790706393622993896906321163104365530376119565417815929980104961723427701121739758776511141626126498599552851801185108617194349417784728225347540495470670576898640758716023082295437276115919273943839198449049271713540603252974165924695399869614013187625100159379913717066158270851139524825668248638246707119585045170285371794237802699867209380409715475287204040987460481554500939775124943420420618819545460529195365599312483311865993581818076949552933120567274545618354306442906048754407074107378405489724968819839668025387185229072258538035600589674054899827380941150795784483741331646349715979485355667733373076232169176280198820424196925173394615674057888050722076625989206900263695174199291503632939485042127105806812092218550447267805855001137947708698257871155937300277645108306065952986294035365311789737496916618623851610860470893895241804990046135791266382718057805649757475680845547745760600239228224292180609046926508930682619277169074487024400249279682285296312003593664309346796817677736935630283960946822967341795854977292025776882528263600979015097271073799511610983844098903574014646648165332019479156679599493933535136618241308670264645252805715087975849534318746295675900109486528859905917535083087167742703081991355879429810062578976290610959401522987982995757428649272330270440251741859035555475655427373574829654772499891976587702492743853463157129901507875689231563731355000101497826301661232978692040645306640548170192038181231541041208089434950524002870381908418206919269113162088817637287592471047965408652436856499907406360096205235363378554861708214409397421533837428286572503966664324143229791519426296585540602788416805149290643619645324245339696350725671894535170275217693228606943803692784678528683115391245300507383880774808466780273501033638764604899893737705003264138766524909869867674109821587034970031010245514927187758780916861741655916822498552973511281817431497255809559703707500951056504651559862356282958773016617384229316234645324859447111294916340885137348691826546369319458699915791418080396569398615710053981635175872911733624817871103336638406341124441204996692107188552051495382613649729475265409624073105599411689455539958787979511087745581890787921694929583206891789712617190004514472997508576249640967571294619016367088540646242775563580864800972923144580419842436394376976510839957678396565970080569546724192663302866882052785852200065920104218248697777595828978862413144020074383856320635863479862950496890532657052436445595282240824165205614381400572978825127070209861393110416546823399877368051064112015073713692500626923662974181818548718877189978842593529960364515192772119096511855968760831028867765722975414456198593824766503328170938123416304083482891932253813485574470927008244683335558942353113187819236260047797914832658648531085049429792455258553949287977879755075525373285256242235738979667261150299040524897285523419215669351246528141489848763220566482283899617163921307159976078101376424375372151792530724132035262799009880206051937675710454989517959083928080130482570045317134578618278698670516235281836796940016286407717347199331924428309768358925632580366397688268225777992898181167321445423265068156338486587396406142040923655294360266693328404236869987281790431158195666511037612588484050489538743697338796428328319734128115359243410708319372858990353136351883480632909326136616977296885487675718178464269243721028241628893853327223062833339604692618002911084526348872017748693504586498732148304266333298422275873408180685265219009278242087755356411502974213414503538186363951470553584664437457722829817338398308769171324797752986431646391349858432940571804948075783426972355206472304229070499440045336013047947638246281988812459422190082706838215225018815696572003345377948964319984021097837030635259238463591984741218705364019543719028359920758188512281240095038992729089932986473199875907783877652120888548640664148515006949242726974532993574207039167074657507276935944408985920416670950908555589669553424615417716344128864972917913714792526011676897493176026279830831931643008948666728586397004732035508262318496411472839870737831915746476074315694618208222080775583301720829049977872860155407214385760676088175651264334381642832697537924450636959215471880776771456014373354847270903838369429369380182312762294513674566384474352222097623835916416834537777385966963341143131354055523854265477941484188613409528965382727125275738535219512908356549074768397352572911224990274311448785729949318992163423219026418253139937856791768196885432539708589500491651506496918299960056673088344175380271666244138333760800778241786246908131862208568146941616207539256865921349379049506843667154636308407174854221402636081112650983619533675298971525827444192656827866146944190986048125552777656078042412641051159023138021736916165476346284946967866095991233358720437372752889637058641929610002933278919850217261419379553007715464528050983761990671142310761063394707862195391693365196124675881417899879182045668316010155044978250743280158502150390016060975881883051330128925596873484210633115198314550906357828360870300147785149649100258036343431041869948463889520902342384864215994878557904268820984177900537734248745392698271665128616991983630843973038416617323267226269183652225608348109688978264530076350220805927808945907010115348377181431356621926156016999770467974610687258947022676597980071443762224282822423548779851456533268062126615636903702491360488226195833848936145404378386859829630946088119200358748430672900686451426009932953952487692776478802594754359200958412536836759951651283708716864627256618142216814464428449069679131069293241316221636642928876792067485075150404721241197037263998859533793990132821759909379835980586096789462188953855970638078585348195031197928654429451609651307626032415727852044921374807795341136474615533783791842453927007458163859975173868575284866660239223919404566395433516922176821737857557070985846166331327635255481632247776847898092286622116743117948421414381217766806705133069630835252213401266043070761370948803706161678555042610358965141708831432054878987908931449703542761741715603435013731262035753944473353663872408818792561534640248702161175467368477200691059388960415654622675342981625707827650444849034218171183482538180159258416890302089243270999968538505243329506909759445012567441765893780589760499851590852503786205796188036277041818470592837381392077945543893497698781171996940164490774503283076357027929184938576346797854942343314941492812217782755287294252556732028023173628718214665814513098399803823153260170706992677524124139733351127282209261875961794677712310879757274607666464682707174900317878132049840141231543147523557976189040725425677461912301266102932797332161552491868593417488907456998571881530231613118401174233335718014052219735404066481835970670638819781763077222888458238679048610571989875270238907952802628607474122762239174328587635106896444850171222134215548289196163029528891952501645435302551734569350649942829438295430800747833734691531396223761418848260433699660593053617439091095501622652384536790438485672011038980410857389255029666029225809721117294204773495431310096710103363051097739895592938278299687244161727926832637924645787894404961178227621523783996216088549112588065002115395043685185873602174998219732946788850296226906390969284651050599377561405395831674320089478455265916938902043190475782492679372240339836664450113893481603863592143199427215259107811278925989895697670996202060884361961467950637664581060390835460880792219039045114508269434866578370049279480794866565241438547517188038052129785562242108620869464569593726581526328795247481179753048247015184153707196830655239360209838523275003415575237543686581920598311980344030758676673106914527432833679729921810938265720735648599303304776144290017237747681681148235320823300961125306346421609983205288498198992814829526939817828873036665008882602075348066473788621356239568082362476446462963262151444580889124826231695197648891960046571631077203154394402703260775479765625085460577959947221138516845736854193878355684490397607670948070190507762212226294034698413689737782261734777886506319857456197329579865582890290094143065073279737887549163382483827783209335052383738689454811287274560307147166463685023104171731561317664872803380513467440967864829487687365101184387068226114007352738185745728152696944111394587661098615608162748369747747742754503501641273225461232285882613929499077580262483135148008792093397058338001978966830363703774374692532968916110541936684682557198578754762434441269957326390216667702642580967514584537669183519956071553968512548791930682616154825144983964395036172148121749528075493606730954147291946349596006770998207183722315208545936240817576235809868289216034907820592262089326140904545616244405594840677711468787206151270116968368389548812685436004858284715705717187509460787683709213481677881866305958536528592115374595343343256832013961412667812494704145223793961180880324897789296677586215293468381020743201248772438844542733822572584015497489214761420176299804087815810811104443368984708398559707368943125426183165829898312354189334688152553493506209976372992706638453211542724483945959563631275709048526219026911254660011336981177463167210170221965137715369498204683430901011972041160718349793593007343810644659615238358444305017952772183114136000369396422183408556127079086537774744175297041562350987518656390369542131292957530433728521393334697985218860298213279145139601473882434123274102374895787583719100782847307695616003544447052731671596075711653804325238634793814387815612138965162309931091292792030198927514773283776475142539165727699359346415894616481800360575761693629238031020854355671680146089109673716834165473825129671105420773254365183863440071114788783485750020857622352973989561042712374703270721768111605788222616463680978252554253643429879642241530961867029757636392487545738525405390882776738081486446836766595405254055850140531993547398233985790265943526592765544931040330593977714905209836517056627045728395669490967221054048856868784483480767514896839726576913050045519226550177688278063573547189281355085170241754232090058785070426639614202397817950465669342588537067572276354552027575295294475142447282683952643760790314790209215947214305614640816306868911174267982153608602777820479123743922687172288462939958490023730842719801679918599241468891950591418494226093099387088808451808497991371370778489303335630551952425639355289634151333679803563701856301112711545429726679653423973046237713427601562395713797258912342505102901772858669677562018526793160737291732758259045276724084546568985130901927684616953568674319616576791886057147110902883819131726646381575289247883869862058398106278795700371256380002526079321951020290015849842952782516559904343258092747605001521815312046313400635473568722874065148173378571162600584744786186703177797234785905404744602568171262330643801915440167875808052500070040022657480762772282058133755494215860056542071040887207309933386493476435683578395535003748850302938350432383991374029207163209662754922525084604711802067493694601687522009910066712129570468226572276928920091874983789668694815311608159653357704557051101643403645621370983304731693048344325965213159003116689425049341251247137905426385229820380237134990305857499265581604628543866005484627646840804861476730126275607197870117504908310708936171943057160623228298556391520869608272365695068168574264685546814242474527537895669102133039012773996556366170495681867534660598682859037763287698007734144353796356636047503111426640955907267618833970485656262765156299126663214317743370525482419290466709559434227873911994373508594535117339245556512687870150474632069468396676001116643169682553735241769365560531913964366257966266114846810606136756819434863201190524510660150884174925088824369820219169750751599830298262270103726540677311619824880063486630497402026697203580093576329675862326266380034611040710345306272009003424770045879379686204775998651749739660327148117583983881327175019203301307752073966891508693302404110503688578289456838484273062959393543712861516545528405889258913666638942207753414250078686267401864954398164493137591300562656327205391088966475038462119541752241213585928313699669433432796570219421028628171913047858710621933952447743923028928528952356257859518536231129960670449132553953686090066464047682330237231686560208399770468962430113824859258941626961026827220696659250152969847950078129599734093314051177170190529115757458400534426102687969171242435090055254777161736401596649670563880459973080299514670649814356864733195720874332886945971531410853980369019049022654944126021129463374341599006649694075522461705580243167934267860528563832754261169769278229588615178302938136703917257987838666999407587801176467320247960449209556119122635456315586294005918018465579710448952770150392116676505973317823670209754723539235970145728918872849847850658151003042480275644268997947824711295393891982331671605437872999281270392527301456153215592945427137851455081314844615907902360972512725026540936829888857609824921399240860134406548929831179390019956407959355534109128086658918016459389632056595639237978625334680594013663791161830373776308112129048425016501160765127951267777517808502317535787784143722091841388247718569726564764393895100794116831752342514796314752769752831379311692643954259326957635928985132732005948341257675980903360810217652435038448235097654794483310213633938287450234161295819884754280745926380556782612971079906107513579517149903711968556138722805506091913935465751140327945309172273490095396299126130376827397663457474260477637466341598541354541307172333798382844191339788611382194126835762639214299958736070604304758194159814285317735839955086315211946240894085789439116765782958753036093745621564056962590490138227736627160003469537229873045515733356305512096594062747102251621028614667176811870028277830770742745257915905490731459681509800941130641719567504944099683962503137504134170599957915560805555347298969323304744473357496931106712779573065234845964673459035646396167364065120665875784825076391330868913417663909870442188156887889256466481620642686641703452602249212893945616815447561415172660319418603950962280388883424170651635013095417230486757352575279511806383919117946811431122825146260464735923461772921726903498805375132917671990782856155641315750044872407275943920335674943633852170840177648949532205870832360109603290317063807213851921230857919584977723316640329712750540295412873945369364529302519482513019977155871864739076471469223206445187180381046357752904084024163186997154801064719924112550049339304706495219116760467485339555081459798932755298010140998102969596616860679566613012968219718712881642871207442232124658268488394932213292555925191810790471005178886312990512400760671708922226309646171719564373259019366595365024528641789527915372892473891194041107982504775989322825603414427107018192708230894205395738951727148399911528569669044336530763731954467049220906660698090529255202199542606913164410400183383979730929720316991609410154152810809100132629745434479022767334647655677453259933874966716998474456117791519599765127382847476061486405038036738796120994967496956337526376129526890252961526899724857426432967707122370652325109600098474302109297424138214076231962982347027382018136534375871000789353258983761331219978598323163097398696559922768105094383546623823198849975848803190500499451720666142681120018313367906815270363738828813497863178867539598785192447780068394962139912213104276620784648302672526824767021099448755535997090461387916926511171925442271059783632720743216070355659149701230637538948304415821936443892422993710193311224524093037347144749407955972741047900772442125384823913887814334534847156373366045699863121660520938113347009629486016082136451296002997302568845592177647133085778406234621891876063435009116134352790700045568148130875009723451725426078564652698623706917288470136121001593533240025568875509831309965586845554926859762069882334908680125287718301266677566305106880106263546929422481175494935233225445440362723865596407923367172300612462114831172849161310692262642337828669380544577006878672109409435371270394079151079369072912665047943677038756446720031200611470510988605422472984518829486398352795211574693964963733159918938497080221933384921984899793191237193796172505120190665194255106046247438655505064021739676277958129466738477330047421605435143998136933000367902699060795676003807587221388620182575009998692506626145655337627116345457877201375460316091739524759260647619750926996457313999610473582269936119669598296599399029317710569290564149788345041890292706030517975253004333333203353263508397452931975628629517070139769985987033357382939644988990948291283005352688674126577635860441018598205810541486094536933842408975656806066113437989870059097037292792681711457724222449019777857765904264360968364766942539186386480524041613301369108319213460131711074889067937624878996712460518131763798746599951870742002308063483923201474681805595897281985834139220960820066036932858063661977482321826116280501962321805314246589206669516658216312053210747152250301444995378251644141459190714142612063844733484739108934468797727049247527507706058821456029641687125843846355599039460237022726990213092696827852622413723953743765612006503748388651828832907159901081116489586137361462757097570255096215015685967134072440409850556218329029954442074606184832494156551127724725151423608604790238986568593396689058554997998681906571213710344574290505851235893317690632887704863635659510173221070367850424586537442870729849539975987455365101652069464568419517392497160892971837141805784490339244489086073218596319743541333674845795003473705630363988826150111580337407675877405666095247478416121467561471401677040850615476357222216621297398795554633320946569712251512366621088750318686948823366812765946134501406386710604341057063756480055242047043495395670118560057827230308143576273290438259881456768846490245067161089473976455336494040665414660449272374995614919831826946836659660046605543907089839624402039860434849964669756731868501083792664313007507292118514613562367386827704874696164465101078691379651013642586711523621694727156457210250092947832665350980916950894772230792417222929782781659764387423142382432510554776540764099967755709127042953807903924213787966212551215867204367861779436431380742819418413372399978654445712430542893304907020310050577060754668169939722084296896796477947428660788796930411501102992362262658751518796555594107234779931065470677436446491344720778512447917869960226886134230246463554036753223399710130328771799713274469787501634753258026103252799566171128813873312560747689713123799510748997323260141874672164729655225039005407098716684336941777668319430171235521300848509132898373686084516869305475737847835190079130256205488734706760083351653834640146838180939060383044453029300651605749516413616499142998354384048572020035293288500467816036837643371447820275871301529296409077127776566534329711656498300207431268755974695697003625621833965964973614447303766683744325768593370152111790698564976416865067531449711856335202980213790488287495263805905954489472690766500427985267215392695832699806494301340871250141652816180907016113923959516297942644263941350695953283809735804171458298140260734982649554002302903546370254210497524938790951854700599430427933562496116085655446588742473892311768822810992896893867369730110909109801578946948326326733464663356914138922055143587741177315124060331226520781602004841940308447705434329758067650494449160466766954617883695760446577776433691977175307050956395394107322756001519156531365254534094286577294678062019258857730224393671182897405353309875719540789336174543460754277085927713791632179713894858286120444412931101218402517239913963330114870931485362879926047300060772480606124299295238654790457714585037184466827535130633155830543204289452258374131401976826465088696122403944980403199778190050837214159433307522805978507425233617791421351644469040545949056127581166622946280975022398469315921113973147439999204912734102511405436998105629254905022001260278569058156044679832601828134480018511065651894594754752153808196298742750558252326518533220400467905439558886441739086166459602903124778703392002820362580475757024145011921575534269946160834500582756308249293468352951840616320395095769011434244992852356334317774113645844578891701759633339919962265763518158644555022376316717348369857783162510449948173732616142813979555342575437034839472968995731564948811029510322667855169078311437329992984605555836652337069975990920468483827509494720652262529202350973412420990386001391045120968101518295254614762315799551548161333288150859418764009478017576835479594683377280758943604956704438052508057467587507469273475698041187254682081327545632792437526928180474351320187316720464163402764087107441272459742928840481764173277540006733787520342246493607142341740296029347130591199659148189235132366782895345252073609499557983133275163173490606829299092490167301275706445270072810448902712142553108033373650214233219489071884014432151426806825224522489480974411803235038597322330649068923741336184755252993005511118531107347647074039512339683095429174092759497567954946034754802798642058107241559977943771004542701659501454013804196639811107047123291278828377045274996791552903664537443786869618991060983621561277914478576332124457412023338789873650159489704544671157864971023519828413004530875473679405808215127419649607518728015784248493593297315950444989128871362867221073665856222830382393424980600968953160233995790619131321166022986749081659437980467266114609298054252414640904185789436585007183481433205604567418504348187379748066729515808925295301491224534349243497566113940960710649839998885117319199020003636652235469757064208656269379302124166151427948923594972175493812928173614528257706693766908763936137400595978949831513242967753005371542768534119109725016825402066526730906229970580798972454429169015813518846020841095049352657057382166398172226290793345336709281515050426263479349657685577139137072480275926216883642967222226113366504846617061961389875639543235532479550893358988508579286911652495280672350491399879598004333720422761469935999729976521900822750902861135561389258894773877646703579083660648967497594293617182349715695978565600449458688172775901486915778087685701685556420918668148783536989267670005538594042253555659051826318906264349444640969463640520381774117598465206758219065997284096712019174474629066002934375716962647839973582059510005120121184088118473102300961527890252333115862192043718048403045563109291133125152282459384450046842376611992197141068384272349165733460857190467089381609794138370944655640158671107816092194279157306974007717674648761772015851918569738025077561338838482536849845787881164658701794843537087186270615008814484856324922109053340309118264947795783795298830961984118172663880993524407734440688683914438708148827846672488297749669595459031748559033789898371145619191085593110252287096664181471298852410853901719244907620761518923061034216539281142096088076009413533646742972759874541365855107302043663417157537285694343552092305715049035277647845789092570089588649744483983355757622374360438746094831892088211023426985205926418576980090318572098319818603968437767754345536074439018956683863055406053318124644855168193763571517992581796497599495059210308532738453328375761758453753050393020741713678318773585987340980096435564992844177010910276008497905368024541752692359978672153965399339050797438200999073199355153555969690288532188978225081942997880079917648290593971437732583179980570693823318319623263545092047875266076925083215611599981814032375180398722221465298056200768166051927490588830891289693440837005774333064418626543052441165740328912998467859745242163650193870819376213611544072881106969514406638230802681433134245948344844410367008881366844859107161258116269574430071511463661165547827560972514044769721548707627347571411127565374299335293565312844184876191335520471340898280274018388197311221739762489211590224289633922388093823506605501572449590330852519356381843336520149368141023615228628644796157094176738554514443458965389543749156848366712429249520374809089193210318989307190009213622250424326282120596816045390559323436087002900354358258982779566718350142108605137590834751265395376506949907606310902322440448355963885437492103557220380221560101127931442005801106075556771693116110207909170974928966896061681515654053808191153354844891055480464716068278682783996873959579987590510916005134860191139193111827826561316633516697458365452887646409042567857358601241220395546741402901295089425584698069077309318877177116212758842862707368112361464885429475640040436282514281585905303425851066814061272212186922438018193838882101606426861274809433716581441878173355740077348238034248271198768715841883245669171973739782365187892905101263785046039002300896977231950522186352805305428383670547916173359239085840002645133425221363409667923131794511450420106445961073334246340460928205995288925227876020655958612841003824632879017857542580797074060749578438506443361975096331405689338070345188863083701984986482854479849033436440040662715878188966842301403320519274527023251117001642755889712597933262553695982856556340302142010826210328873024611733328767009189232527671345892007081774959369465093647468194759485856368006110418384483643921115982663955969248194385584385074784228515373573381364593947025498711516098677009798114904556407472269935025637079357632686879781507085156745886866530811832176139631265564754978171513882389078634053680289196018105172404235166751133645579793594842320505344359204401259785573134555049387635403515050453112963920473832417708535919367702580149749769698206727483660142822605000637745725890740190578783557356959275853686270412150697416878380277060639937363581329350593249484243994919354756756723056561024124623207774159609472607032315887171605090625184780519246610117229597719427650810299998563216927366862557829640364283894795929617746981336270520109988427203332347040729689482270164767627149211496746791460777086421538141926109235914679852066165681026506100722699392326236708794452903672400840340231925643512128211134184110221330511339071049994155752684002090710715167584998234600924956952467496981974619818700732118219674190694466088257417262404297772869095477898218637654231750553096196159188330207855101186899449004113766570688071492459656232898354717061301602969013930987651396344838443012782080732913897613488103300276014443163418808738585672257641238547840910236597827493105506050268595277203007910118674076241944956846530129528785400487499704611055335559453742096338459295064403971807498927137787171624092819736844895172633155174538178552998979357108698240342378858645634708492601149680144557346902424363970141647651097948244824759671953833252428263515175381732403419742755221357650977344034125062965936152952736698951753638112338200346404296771826597359767261950495415984560052176304070759962865434793412475383633077242483319706698592776538240028993358087807138149944717644542937517790057338173826549344953207740855161068237468041239241842889246688766055120888727089156505790197999173509312244055261442119017519990127826526569850355651129165192957917712917232658318354145235573286627922255848516220715690051268506695015997786773958776641452068891934597718449336182201161298195506258636306568077915214306620611730436402750380265706097724743544695760448374607523222924124997127348693531338288171684874434675844598781023447505260578993738490667263028125935015084094497111015521234330814745348519598302158747992481229012078423090412885847103462876732638982618287577367779558168255111923604742674185440337766329833593663360623020686461861095634851553715420265452314791124377364563786245373669411598527471597671255619936332126802652032260118188202004202266010082490334119783109375182647647168843638431160886442998028948097252863096435426300916443490549231729013265544941358962347735003442298582476539944818029017395493985106064664263339952303921128088726094592529396289351081288754268935743812435203388697011013086269993856687812338573221909291302334240215335258525290068430768411649138587847864195163026071727246868712593680362494182026688650155539472120083385617594809001012554890001755380236821833655395993696013038316377604662965387998851930362640604917575719814813650812194322693689831316134687947034349221072714336487735684252222956725764979859681307877410822698489534684208521403703714102844025766088638875708341850266748376188335848710963194184677120362243082039205262259132129026899399690541860270438316314935237889857524770203283156845135915503212266156226497700317109711647272532224070610806266222527268716090512212361515646623092475050516406263130463060543996626451649226100221869341716858902067623556150894792391137896893940824511540940112377669046119871422230411889225053688437116675337461459355980742691744974301286702151342041141118546142713245396555321277904707079686884502910252366634255333230858264147112881634815671223455467098872991503915894440728859466468785142795292251368346195686517413823638261962672700226534148202601007292930284201292412408099480942343189318129008842757285961175462289082693771600427754578184519031352630175994884202870200165910776448894916135727992661474240307297808242027693130507308734229629535782728666791749091437558264726501829566343667983049536867054448708436447644091253176822023922361447397011149576813887126664348337759460735018323969382476718168313096911449013790240323501621074773845823710524841923538343832891519401024307180874673954271594104921205577431989292377065192029947691813463314573385056806545740684823532606179484270386599682061852763299381332139934000021522777865721391595403926990367400497065674726340924567636328483334449796645083271109622079374512815051115369170580004756280724801709368074790222766764835491314059431450775327220823461607223552923034473215051168599459585923588502753631863656893488931022698077080206927048050260603019651861220202220331362377759073310701183409900660628349693016082177564273538177240802991714105579887674699256946350410514839975694170622147045427010835885410577406787950593852505559219683480437884004829160521017703277478939027463325384560592368430538222382306745453164114635999158059383312740964757198285999883913927553000423464250854895785119619664588623010907714559624487282416480424178622226224410681979273927675735777307078588419826614502680136381667468750891877818973585538175221578829568682906080846009397797679925621605445714334870606729282104491352234209619210833398962220466063989334225460836757859275657872552018300925937201910920604527914463496276758761714610167373775791257028172280526705715351493166541077778604858725872098862802566473997172261922697809144295812422807455661877803380216394615705534990730517625253352841541546385691308957666137389491494281033042484598338095410995481159754132435388624434742951349663763663253222250916765652107088789599672584721882872034097002310196087247712877710070349923373300039410512411529828081562446414569293791104590370700832352559016214621114197266164511856827104849491918701309998277667758776170862152198890528031425334717292205230192028137958825166120476178231315409017308051385765238869413091685056425766612126577509061959645814530781629417603007895695902631558316883774204770341635334886211584880555127859793422836031004072463727981010910794791865314578210474250460334683872292042157484262656278504488877103139703813934756494489085044329993974052165257937613162114929066874610116155711312619429210374974987130961485831801771711566753772377373605772095006174666132891393133611286165210629545743267522716605995313139196739092759218108356295445100173501825015617992683047171260475064059146297588416121581087532951385672656413686711032886800529673293743352586234283248920995494409740058181642332839752565063164375323477096129713799851616931373091296290953107816366558513290933751290949426397167164225733715388778838652820279999306885062465505854428588372197547765413170346189349204796246271405861038758976774171878361729367230954478993771287746535909183220954080233522440925747797139252312649657730426932529197878438425294755463720669095902145509583024280325311361184693265482623241300319623960567327909918403616338349497863812452296754234127941031621344859742719386054732889473446035433077976853501924103022201320095727765125489064284821439621724977224421421985800274497150182223980161290230884550738183321113325469890663445793199841608713295239210721283841747261889461822668867357276690320492055205949171936744299828179513015497924143997113141652057740672319142059961697352857312773965963925655859859036779860647004755547684644437618866974379710508301503481269085636664152305662778623182513774101524826420822400255074374493222024742856946122009314876437321033926995498291870984549419180886122003944831174888013044328188057064737666315621020307251305549683312700481758244914317887333359359872056183812682358325036175916716000147111932693338890283634480289734188208812337821930435592811892463618918172805299580198035922204287538870324298426431306023634802100379355834858037420586948525059312733859700739293897255873598585478720037688353031289532813642565580664543641790375557902700654976211997177814284945715949118833955000089738929729513413443440732604764593595715017684583054685225705538079934388903810839703607935586636990697662637265681610858046146205350765443258445036615175848561740670648637008193355355895320262321542033011546948588341415009643234518866361632175792789076335791481038301612179056064747837654750118126947461823372786177590241296441241974957641567986175053540408494911315324544427664681096130618281689178469028522311271795584543400245157464774138865944292165162768460353698422266299151481680935515163314782773832134562727870611068095306441046091117434178353476574196469915424976983637815762444562236255528974886903963269947242061451969795722118505699282492676625072853729452598373060643418736007659913888255562379308569156929360217144630808260303089712495116914203263226093244461434663518437481548808001904087544827385517776135509333754498989217469699414096472403368116666169944958006068947025589359175844003273476184178066587944050635958666407018673429642433333485725969593624276367083374057340335115325143130521119836376156896225173363926263734852599912926081734302243183301145301808515695172687827045218092692273011086592529277216726140282522267835939578427242547631521317154455297960247263122162828432617926873513526045833605118403229649464462491359536197649349661525308106765317212002300197132696125161606603506418076346285375207100539125902258702950945768310268541828522875161149922966023813772318299728946770057325067707155964314636208094787502896431584905205665101054123732866630297377603369882102787058151934193810304983767440594695949353329470306497105965477184863090532249852680087720705545061604511689678452823493670443292805782005794902567601086187749424991403928981557852414089591466781614398522401242469417963418686637939861053699116266359747300850411276965453388800636689619195445782015031732361228493319247777010774018575338932687647526393719229636261695049831174575834401363954206920928176497471065650838372181762164795496270492231963580888729792621951449568398858539263740379787239090627028853015097638833566452168354548003484043369714672956667855018546613847369371467910498291273426168890095015480066508076977813961372627567543545674150534762188916529122479835671999216083587214557843976463657617478293372644857706943676853011693656055913407910781347924854613981489050918930171963780345182678831896646887156544719388396405287770665800481985488746051034565090484637669061682534230443901112279955183009590031308874514954611365150249631483547031001042896415109518679761294518802502847009577770183178643376280967850482417242096467824764932188161047251252468177563462675926695872010169439867782764933418695653078899248845586386242041603876944224959510219936738112330513577061300476630927770756162235818907041862972331276289392354890157864304223337027704934722734809680813779087546924352242953971794115157278198060946866749003869064442097501566193952674042423417748551643959028117410281429746204652270529147106802441908958997010738354224751681274083737985266895582286602815828517371890880910534271143533330457149917737250395761105148478426750498574056575949489213047303714616656819000356141171149265432128372221664102961159511366755385011152639429331901917222290131849754461509086086778416621576893581388355874756407353690721847912034282083926123770468187147422435090872142771544452548822336913024524214046872307002897350006789537289088815715311502707426369949974436874839771399376157584689655310630238842646685512257501215834599289432209763044350155267943885404643251058925440904488718225918312146894281745259374930501489603100071786347741597529641959548555642448611566959934720363384609455570648747237056105939690115746950312573857647314095649997440437803027690935358027464902869026074666361971733614358072640305091003927487907258270308732980814431851667303242121301066225589550603417629642842886010337223852846694230052302668824132576786428211127959779131642940502086983642364997309324367816600824265395543391917192481335482019002635594799988604695559712673696410975913603926423588343226913796229037113933525530686109148550639685545909799432099414478316182799323660170806140910264117366983542157241754225226816714272377202101901087571145772591782861618127771814589577905074633995186037410427207706265468232142869193873303082408695428602879879898460776531944824996852790241252415430780693344364271655163242490893614845695756226393334201339754261893906241240261800735037033877908779404578458596074836020092125128069795426322583179698764034816833006366793759071523506835551337229185521431522119362612410080281010266338859932163408043648805249077546465643011811800147928521033145758365452075723625580302243889050353121165892800745127256404890755075121648971552379218779845059550187069743939818033140461145838087366821167364049210299210520715043490664305270483244909837203627978784195851423064124044633037755114410973914471026263259295824983218862700827754245271827442459173409535636740246999816678076045865604853460677462459633619850706466072033641582473664798161677726197298153524329520214398938479714781327838606618090365789872378446260184496002201219083281092025199183109504728378486152185765371205978552653434319109779062445808893731155907548401312676384741520420509465144623536780453171233919245099905067490329680195726641788691693185487879039516263638171360252562764231010970255409887762827986128973326349052251663005817670794126415238134779847739330146542270758227359010490646576958769274918941694765694365353139057884058655634172465507813046928278454966062996756541161041929964401913528198787546045255754047089217688400318199100174459868946804827599587075488618868087089912265472424529588818844679668816992299116071161647092127176518838629382684659064136833506015129307171673134620490022565228816247253510135916755860323645119614153117396656336192288649421598385110231280415168145732944962243931087656478806063954356555561112156286509527305102230733832605472571879436870541143655282885081861142890155642046992100462634924198933054891057950519624150627394309175177738714125829758379969193143507706495427278654136381598766214341364115049795886785083939330276133905505760284347424378125831333148084498604490457157585362913514389646374019499827944710311288387680689133736701204365367072715195227590656110676122931690214851101828829325257157095305976764804021851347464415479459306898894727298458750613364064919807406058519690076392712966534994246851509249655574949828947375747171698263607825758036972159404060084407250097652050972951480314910419395431496385237475682694223186301141043012744971309592842406459511103768480013730500125566045713682492402659468844138219469956137031962112812180974861001138623380572027378570789874400494478839327199746902547828974675608389234357515402702350048752818581711819967492740228646599630402250555312324418098156908301154989383549110023476989296967659956437741609244196169386137602057046811598115350324162269700947524496791183334130875698921370860112762482953811437473119896762784225243286741916457944336438144161420991745284204951101666912304315383387875192840894548981602489533420443181743802177720482995925140135960180371049756324627913561405564201381669586974581311228267248428136187690957586320348797945130486006315888277218770021943805222561423937622407580534720838557541331035271752657026863795036366729634269413629181937562134836886670253632011317516735270537411207530242175253617936480231086823292975388924883663055444934169050729342315881406277059782542813142513203541070787347742317702932561600394901565663675640790922553603256395194063695048220619762939732306876862166321487258128102885156234423561337016801566404371356545800267710145628968782999943943506184089644180860276632251804989288471992308391820022023992515088071681237486413888231077158127126362686465988518237858788798745300646856008807258707012841253320518933026599489134647538902514187972701222875724104799476799794177536226680233012707975851038814769113097667473960394058345395037367973303146582741097785766936826310848388888196911750827971062519697712297770661744518132641074687564262231491442559031257341219791298365337613570281619701584421931043076845515589687330674235629375022158498993105832752849572462772565818208885540240895025469950321331575084817264821056719087123052420346058487104468594781332789484357872883635910359779509969818656882076117281669505183169739337530416262266288531975409518689598913783087723834458325278735251089689933034897732016213023883190061984005560920712203764748000900879676775244406360713459581594164383702492483553777510895374284414391393010605979369578065553991409626659037708185327006926732153895236707687217596489936679758624112865799805232001317245267073897639925293600869085293276787466930913053571720062150622384642141442494769395355288029218733727701894816983637011598042651795535067039519257340580460256725821324294962581028896784986031427137352100042886872808909662984094474733234495556798281787862779114843179017712180559816977437112282409113946425294023117289736437776040846202638753502747173372236632863582866283184974905151028567860280527278114746619780628739603242404877099661621510183257403732753330449148337892706681248571957667500168505281453883610872247676642866837571052233585712074094327984965265259133400156418228270803529861502215852157893794108706555227101993970465950593994975385271211361142922405721270214390078467987575075432752316106428501941466820062065855095074354374232739108509927233922362664969328660996950224911187850941252318130785634777535162849996874957425523008681749390247262501021851025600553498606138492321303822424664372764178104008847718539414784689542648110773765123127180094633973451127871816448002212771302075432978793326808127457159474539607957873726052996620233036639604688484455360070033799244215258265688606215461022745871543600299553375252671889022226527348803819074322124032076091509089100615018172889850824610848114771012600270690508512648182325509945297190284518447497446784534535715221777058069030461714723378361673565230438425416904043836535525458910870420340351592205458875527425915863676786749472088505527629909761687447262582140136862733058334646469903529846239796855348444140877158493072684332148643761916186545932981818811060379750723152691787120729478458581924101644802965564392282653802393427192481069455565271468619266525682996227313814820603608131730027897956033988055269539731502380221400000637257923894946816261347085245841839041647456958400049897325132670964748614139443415916691626375755149694639695683559813605277647726187935665154467864854367790973398770270282143981649841945222944637219195173855871522455406472313066610676679282764590079776566369516274301675280962900593484949287971203657389905722735397808902677576254338758386625935983953911437811617033231814146244757439915436392517327805678651098516549839971264004581867601281769608476684249746826361310666224434535656934012859633511874465916951589361052059714142870596236574108867533536548473369333279721629015019319387803840866490158981780164391137148457170894263718989786196467510147753467866447665865160479098847263645582363719859665025957136714727469239669800249776508334260754475911233043770190570519990978809867630503809279029138295093099257052258072893089935788040695119553609911378976287532860630993057833315363043017387784926973208774755346145110263392999698642222033782242424595035044717885487162881951496372042135225933753423427538014886341688698888850657389203743210986775473764331882424942205940986025913411762128484406745779939318428989746074683336846643036674682526062678795832619397383599799077960134402530849991424050051576206008064691635478164294239881300963526591783841423375203996887078349436328854727369165631102821290235935551222853640188815253321192765359793429567320378269603303157811473275609497685364153639418915033088169609668233225937222467807584424264979727764739523482140964303746767106516183551170951112996217617208798998556176234316903872515908783213979278134327707384229161746396451578417832623519488845982596435501537143061686351571385879479948186093364836017193295632747912433398197442059195327823798973232620380557139841699449515095284719585552513263963135086196016051520248912697888603539783343423075508624151470599255924891411109364029903635983241879976272751125746177206169424476152198963091000756518867851013993552717029268252522377373285600324703923123158919480037584098953877065966150995112562265624489085414503940500645675641139542258122934141501985829648839180152393920691100725950565573846314993822435062480105005849120668757275913381641230405137823443749680902984618855325249970808333539060923435466707008539505631568648161849677666867868145787156410932456215234473514308744620375735045911793036633329721304207039710826008978250080048350764384118578405691852182647396223650202021549435532129811959475237178871932852593141180211764144296301808413840070853826927287937706761008764390898929285656152868414890640886775085120718583743896516015466026031918877451608220933025583587417730165821264848466190759208801154284842914010970027834900406068934845271429242294404690461953753889523118221990349642772865949912707396359682810461494632139417966077349696711444844382763026617680886584796268876335961667667183719339840297318951027484480128392858211760062138737325143869875791576625315289944902194397180872191506183247246958905715627265060801806572580083622365063382920994236723001383936430062965892522101218229675868456480903317835018784153970984582321754595098713885160997016528346725387170986986442355115817203930256847200530980256985990207815808870577006810801311672114943498747603620522050527927350539285967194874679568254451347754977471734267737615281834446248212766973789996546322849064199142577034724319858332108820853027183718335140528256029015662737822289456981937078655088084405616593207073841182429406243423535590391908467387702585114939963326486256992372680871649704398100571475561655836791838893001954610987718718336275656069536406083269979345695097857354796036148752187030019709303208951843132641545503279404208914256665458544458070625659889458208837093845824463788083912440794280668450850378441070489599355061210276543906487019773725165020323924397864361634714887125124787462233756236719002560874212429901223592386399149219913272365834460430900035881926552973253000008369704579249722782814844757414444447964182260731319825941237156675793217774044110406212147521891678879476892178345150046921732915224937099732932729683479436154007176586531226402024486647341215506133569730835448291918512165790017512571249400345723102584778994335765189393632892423854943710283108386381651824311473676860047135422669496811629213063732407570786074773246256527778144000894361588107247932594580032688145668615266150314354730352728337542484015264501774252372418579089144557264269462400667146282016171959846570152294121830817288640092042767751339374152693972565193585848015789297027786069410700037243477156371012523655648221055874122686025831315419015638848896058344314406655538911708178283875479295850520188832030988408141933108645242565894903722473683737631559485457613464537638046510356124844948804759202958328100013333846473931873483874103186094890634990556630664473168465863738325912170438780591673997413214941539633524179108356869068845976686757170869267409734173368043413838572822228673881525407223775252915085049261347292172279052898313278290172643816744936682538435656221688267397631477495261528174144030435501472177412610236559716147424653126702359709804636040206731208102963265320691336159583318768322808133402778208607700689454137244356198621745785953912632529737926587201092503109498277489889658432100001952009802592366725926455968388867014536229334291900066521579048291713067054910138690188405937210706998281491023840800508640698710743683132274244795526544942577723372749352817473822945553499146208363371905060868477651391775960306363539610630267137569169728084623284241556472053715183408108396999102342218075639086820422469376432698062020293261442837403339194696248757387510305651918506239785867739716227836318597131587151651623469019728352577580807546989412967054346542022044302780393027231842279016041276957262667077458612432989901668750252883867550780927321077468538018772090201541881837012365379061348810639087193555503151695166045347692506560857995356034596405601657781913532231333913732004866350907355946979118350553265802428458365924924648829043532905889653412597275998247930466554320215256626423140219701952313341594881162658354154696645217101046258316153299796189197787754404577911409330751674896652770692348078052728056898731764004844534676405317476959306810325572773016426028154037007329645663341191180225229751731561996895683410759886041757783763222207667057142202269696920687167277950471681046400492885607449025480450413947125157860284953135852414948055842268639216868655159773874086159247264056457728515458946564022500395350812811977252061585757189858813184974016308697481287343020689036541896265835607532694719388600131693647632372972807364444602002613424653166291185885305659858345630913767712309486314301443735907021393519767696407675657028328814724091009305033571585716078107485842590013665486805750282210762058491736394124367415361805528104119210185963271776922493893174522877608963115250727602499014896696300517140748910866035829348030258501881679523989790146962136427445870166587907618685480555854004164627016991474663890790853454831461448476987608598288224585599247035483134466350257056757037564174053566575769538752445815554033413749182717702335236444735307577602914681984374888516805349779607410295184973409616433916115079130362773756211252502749813494251161609745081137677621493663044205137572810508366204377921046229530319844463506417624007218656955329108549342844904828144114718912256221886487060504166508969973437940270215724945835289619561733695945582750935367369301467312228969018296897195035105204189031604134604121242678903233045766226956226816486710725849269397178205518612442869975035237142267307035483988054093037118236512854960979424626296579147268716889034681076268513517662384889118139966665966992376988120510859907421571211184357244396573113040840976008081600427861613359622057062179031251776858117413260940898346695670918135347403160297745921020542519804037879803913437025265004410945410121904524741957224669241894456971877512709491800525619084476365388475525405916882024470589626796245613417946696389630233197786200342466004719270185437637540556849130988590021669455450689438481875799250960441541893621436559644548533894677524496476397546992378058889945111461821466911428922272996736892278400463213250139689825355074797928554377020525747288397062490881606373656160257272836742001220939383830104815099490492964253780689557529209865716010762735210485985500289033925455036466410141485235517029657549062464898096021902659929543026903711253993714286227410429908693271210366098802277802867270365878995613818012430773437282056684198375971831962532499571609613020706551546068469599299278691033278987513194319633866604581985355396799756504808568765151326207641757310872337300109864440814275863703905810546684633691552459276207752581021525507544703852775619986967639336417916374820367924664327610674123823005462566583563638598462181535261783536143269192828385602810565600530595602204556551875519066817101032289193996509375539868972441375317535639912527378335542760758471687664128190470211666902609273223081910886344342165888115142374237280734664725727969400089483051284498980121587654862067549959729072946267917744932216203610123629149228533738377228003784602477509525787228037058021474959731897506843609793221419218974334901422140602066426035932868495962150621020891934492928235149451169274060714966302627117777309042095178066158017149023049779468114189516565001203228162887773552807344667857780815762841595619356489695870187507100566236161947010063158646365529235841467998900690730784277069097567937587973247498192206254076688243813772629275627339735109221312484942263087170721468611330612313881507461771535545906655228246252052859877361246945027584219541168271390484681332860067343798410356689825086873600002227674971386663778394971938239281304793927743290124471078630022392652633493649720848045407242575696548387094668776346844632862982382105434915989265093426700297216068521170579982574248972707477047904526466379082874110827612629242187529513711158955551543147304923243894259009423568463258175027186948402338540962828960005113600025441617271445183833986006581537998001894392362220757129295975363403432308748337618497495744445755661733193522906946129257334286080205034125994580312433464901444223559815669404076234935217213631096875911937922926512289074623708669109972022700543038979778280265615967690753105128740917449721883903424934005396188149066276232854980806122850765987396015481553262934270489324106885535729916278934442195389766625216237869597542566491486616491836956264891647991024705653423750472586678357223808311770241590529831814198645562427239533050907442504773172239386882711765100871920990959758947109024848084886013714962998206513295186861873922520993645023602547410018129679882074210418986812495111822474428237269636316687654967443335025845521420755836054097887610399720975767972127783555704639613357331866785327110812485722246537382382793902594981116193196879039086012460042175126896633680128726428349885355721176981219924624720788851631504389035095697268391984861189647658786965998492027177846001909148611814858938158591511128999395722086911715459281271522430576909870133280767786263077742855034887792401531916676584861174146770314808598657460231238349818726605324462221449960186089539791108713180843461990620676514159617318526344415401478112372839823067393019096972649617254726535679016875835285917665825413101154102360281972513506354329942469827056756776220099621775056938720081260245333781786422831436054803577414325673587491893065240602718549019441105298421674925850879365814864820077702403083749525268655563285367219331513359127679752919377604646683684252152659928090637394854474141642027407368497415423229384241130067342753554287276162814251583505067367474080614037181355708982818583041007755939951890115333343973703394133805393592246882587280693964028027595169242551784927736967261134609357543777658327525744918570911725632145776131108236557042463791882853386510221353555271774117198238355253862382237967052815745495229934727685147321255527769070218949943781295159236159635313815162656536527168319800404593574577015071015906774651514866920392973538958629969314355945137046018566360387199768818987624816921685032321169193018019525504617174011779705528130957910662993331698553225576700889455979242939931255609360494916171952923678174548544845793396993116968603667508410698055605311680336925140678916004184902437493913113320118068429538538084153840129618542222945554110669517735299604941824721852240120101994578239584450247821291156340954471691822195227183415947339378482342608974531565198014773018419802499935780571704683234023634651797540137068393208647695053824734602539168403633722340043160508969193850623798353902748549568166228341834449064762755736097507861557160902449683866039291982040612298207237680104495626868119977727481343819129996863630465272230731777793824339523590950863946935172722132486536210634022113774641037537226946095260598922085720135041033257430377144417865494247384417004249224331975702488798917972878716175758003830506894291913482931620262276836391400996791965140100036664926382231974651169960597193286052805219211599695350792272800837691977729044426985238557975843822903478918293227400161091840990358175547794417516299838386453082768334774792418406314600714712396157465536468731657289623888323237855356449938652642068350036354155637070235738662464472288745362836197600612385068648820297507318780184131104583660370194632959001976712120314444567520926167486043850774868041786843505726790412507829616047060432667727920011895280110459345600545181772438404873286659368714650866491209325387670098432058230839429102890375451089507202571706064523296993591142547243211092307803437643750350788132028884858327167642222796065063036489947846061362595628472806367965463281051869740001935455266953101110636221364560575479974156787862255050744691652659018322449650323475531616470044088939909837734944522227367292459561873304012489166119476783641349550466632714366398191670272054181728353220561787688499691266089038845460962823117009751319739288858395107713458431504840562861003804850585134397250557395281846854346333185416544981810511538731201554886790367563536898237116291431181445682379118267946722229192604952786145294640604106526056387364886743069387159140991535379585693132480328239235149987202766162201671319249405096250595179059801390669656967848308154355963868422113760318257881218234476987740971687921017861196524389875053219472624313435534838914246399381160488586357183215232892143404687422906043819546595517218625569819935413964049643135656300750984131492777895138394097762754538425915828149058774745061722766244193784696678261822592406582673258318483533117367244898137140155933921543264358263984824277015909270098312740479480730851048276280006422784030475928737975124279505245176894020515810060757482242935368745499432621085896309253718711937820268487281299499876095302645932949901469319084289021437253993435278127341792028349835593806038202731909633408377854651877390416313036309098803787490782139447589233289986344193612505711877853527613003266101977206570748026851807458883639307796734503441306968318804057979052672989717047220513187567272282542371678731537917852048994120882635448289296834866082819202809513851276809777438733225754467607578763159777824402010528654896330501884069125618978194584167110985733185586041716263373920901369710397855401424323616080784946480487750015219884250691487701207443359127130213446723423486333616039593793192636033229782324707826199126197830615563463744505848001733287943173232716499114312342688343966844625471892257994127505092734995554357826844770964344667111516152578162000153642519572224757803005793170746993820717559664304462668824261373067580736708522708282473187701833771636498219760913572397607406364313624879271178229396372439529701748253396445157232593231970488726998313503926504866043368907742447127508302102641996469350912598564998681327593445062687485593166793843742086285615336101923392309090695281818479699716492009470939498007545798598162641685338261225600770656705980216569818306726724777893210808683725879671088434348133045506713454988996812585603734006953139584209171669408528387518312598325846922445551906514555628110316713855630413041292285635656539112488018299516152524993670606769325310731453554221589017981400389674266385161976741685955471891297315178998071197031091362030586577376211440005457066559075877596440347450564292958771838678178796433314193079313860705645880160279363923709305047093634632106584626303244681948750295811892929804836283997570004984967232061518302269118922749174050025880072347690499527476745203823012870768348944356081869941066379372758359080106782444511737844482882820317113905986856710179176148533492731505442583958336538802637771435813361746400674006781733273657432583317569554314224012205805623081691146662159264503436893940082689330000825615148250376608966525697186667422298808483672320228542785536058843904835976849920514415868752556102064929969780674458273376066712233594848156875073586946340776034424215466057325862249203318279425245125775758887054406673721100229930809585066883860274573585831306942604462262348202411140741711665364152204230178699963026060022756158995835006976489096829695552037427904059332057526587609162273690161921873519376845164499016023922737988718531264797742717823442483479206771160878376719993960714891807110594590421296835858965572647206249904997740829781311290486414301152224646977276925424935519542325132004741701067835754998847179796175983527015658456520813190948911649275598476315485519057696002792511780682307172104937310811749864188212407572277874956902200594132586782122846551461144161279014290252633482131819209118362780168844710782335836190517037161029325530491122216366174588972315640237262099655006568596089928093480239937994871954879686259018603956403261993935831023887552814857982995137379163984683397749153185225314671277929448513107786332144684192911800813018805008947251901826357370247926574664728579154874285126889713304348075470438121722777153608036005960887103404820155034111114752101167278765589372820348301820638169319300751876669990352663904195868062796620516196334716485290255901327834150581410128852871941299465923959207698292897271551191642588175358963189805816448953817706266048071570482151702694358423211865594657321380531692616001330346030303116032740027421502173257186159961683428380279015241505896330047672013158303365678976598688233530615455923726827394402033330715573046798356658919463581106968315088984593909147497801251803987342664667906203284545787828261934060138387992515382237345470603508533072469405663991124886685313971000093033184644254445428219942026768708784570567938615828448407438315828585258728475978171342124226191469454730602063946967412150300100557261606275821361775464989455293917160041632723903064492248952358087175278983435840372438710661114822686876891492102264545305215494044091973011331031938663393176201280306179432185232933283067359409448319916063929286940135537498033268844628658870353950381927317143352950679018949428907309497881971945929534730575704307102019234921130003798989867580842704103624667098782495859242696872068458120718049602766528542004429089447070275912014890019050797492337172619525555588350394917739493752834249987591486730221871188521109531756492603969305397206102770627516957797371977975680335728434184241276077087603504767874843857899341786854652359660119507008161013103350571439998467875242153588440536957710312114612589168487373805542694797558183746431789685554611182213056490751141626124822816631344978410970765444023944486018901631552586968791319758201762694418702767309317097938137014005196696080572835567443841216084629618816168937480546728965399828828273522795438903982542294345891849902521283708198086581190532515154342512050922401870079460746473388172691700874092018182045551059321172455914882134335417943103227024636696897722764847496083686674324690096632291605527633186612763918239363792423888613910622391539935041592382918763861130266175031650748655838162880996203851477006916414094809885442120388051447028015501661084654333812102495270972600412194492764084365925460906860871325334909751780599041653368117894676390929155418652498153999482402355917863188776632101865204784912570702386861632844591533528824937630617108832479217015422983658864296295435709276328622373361561098157914872032371725348101262514709043282269189313119089442345260906969776664153046062981588340964786995531205356211134190551998345204631903468625567662716782204513800399927267133955532300947249646133190136958690171099164134927313170717195542467691312674231906714177109237672186458538702851763434335383904790858699451381587787661149075426537018819763871712174758696965919036256386593921092846192008264373402199998436155067939105774816321508859241851273791313686030000056814103103072247079596633652840624416626019564674984378489060757908010753182031969329992436799483136813464026079637652753144267755482353953245664872591140122547650052564255798000334990869069875056036695563376694259400813998571351381105125113385378910465634538606352064136803707979847325949540545587580095481854611743165887722003544308067255410245933041951724899892359824150357763928275040272750052356301172607167832445244495167152530979821131660533874218036613341301337202251257047820996826301799196465458369846098921463876480931778123300088873185090272364337555095170969348360120056843351735276306539734607331645862651141546257544735894205449903226643771286115735911881429717585450433655157097612669664229946460704053608755969845279176137618811085913847541487121512892524478856919496183818514061652122060574495274169149650405407723101844230423052687651858675124779874849369066950145618142800921888543575178867671728952452150427284969694103675616751784799262005224930485216238469245135698466417264974624564319706946651623804079043313202738778033897073689895147641281264165588833744035368739311319789027025961970200900399753174104611465178706180847151890816873587324668038788149757958503541964488894737687299777108626106725231522446592330938771147445020264043667815522916779199778309685605591703491131427762276910169341164202420505846384955820513753890588746160634791193740896511797377462612478591599252789810264058403404202359994630789063410234362523680890645876519004758305556462040509287382457049120962585060751370007284697580851846764376163395566163948983819895934027323699993928916970058460099152914238344244773788615479562232799286896005945290329253856870816756019390006438377768189897325955877096389123853611468423979347749113753201478599622241923867317862434719386285123779015175769568906610153097447284970044939555358478685164583708731386424754365411871960672008160685424480704023862374887263497083022342047665318486818448447680683075875212579037387029375354957865646778698603882956336735684619233076183631283912779924609622293341027173622829985620471501148983645622131334839662209059642182229933692772635496415534278935406491873360672218435476103958030814073735586002533326174494644962741318963466420961320588477025964117057863354521091413386826614766806805393044117556569964188176642884892547919254366280640196650150579046337179573572485106551678861802030977734225007608727674248347011419146666815338567824510760885147424355502289831133642991948638767490148322586547703773753393593984937133643864953963112309339369741419383995700135681571370406228115912395426124407585174368392253690770302193685319017382404643617025339480154274028741485403604731908340725245077824173118248192129367661875985554568924441625830414253425141408977871919313978882446426898019933797492634819871122833980902683133006944919140818615972101745117455563457929524617634524658978315091666867261948375326517578729721661315020390640000188115322229379654890870917093214721597355742589997466975919126952096698077974440571931646494019641549023315452248393787298678596018992614849239195797171628783852147993469738239105284883215998172557634746403838521342023421068389541918142219852569034218942411425217740698295989813715241851799299651106870788893781110199205695849834204755112547137419024107637309545692294968305124417639585723572451350973405178472903472957493003991844613114494690510429514514161259600771371143824890942768398368546652955935102952439016851391601380023406547946553723120699532097655320199822330551042547001822347346912700492320795218079073174794883242570973394428418396012511228533491470206570428593939563341518231521728977944472910102744893059845635636314656898913569494960604370364910092704069177426232769886349395680955361561859781854984731602582248498697313023761460949557860930922457861833744769926873257101602089839374920569631115053185297390816201393622865292064354143603105962352711991164052272955332742638992291816348005202137911631631210316785319653682064676141094382715878556212405559139272449974213180196032889210914637763074221897554365023605914657422475954997370269305426714068158129377140725419534986014519248551175530722924040122336282241397435658778247092959097130995590239044185202034545559049758456460147886870168972093082618694887450356953981673513128326056852401807118321499377265570461135973186541528414566123468570620705988713308391697816573536305712106744179817028896350772399949687923031377231091610289616540925326363310739201029944200771674356928979887948582159484377219167293617389929425386318825633955331468571231672275994515549910567991824112176939096682200731861369500203752709555562577809705547755394804765017882106487525763233532367347544503141464972982370192307868487970367150917079023551354406496366317484575827143538780447515308407398003669795528670698786724779767603752715836407868645956881709602797047562422835007827840285117868463953399986271681345329205317112987180635254379514348189342483358739154282915559330497855717472277320140016236288039813544648057404767537164258154947171406110287394234189521516333134924298656121997043757730140567465069785878678854282577496475214731201934799739278135432276448594707465386425464997402542035963881156935350005450709985581221095196775523504385650445558831838180837737746400114382515691904380189585900816050162549333782509383554306219091011691392665725399330971509166340822227379214521453959170087548234016412961843044189018687738367977880928546755859627047628931333144420079749548839811291614464744387385268825642830666026985746903617644055073890057043270646203668913044983664950813586270798274338255201060070688223894443142634889298791699548314844756378579701743764610175840250571537262233955675577410005389794722187112639508128415182417290138188763806262373963604039829606099526240649247202637452492160394660982533753488182775851750155460564801975129252827117782892714156937098244827644865087887783057195261633364110973264274788277812180065989219060149179065150351052733565212798272481676005930442838552039014147352242678242151496546584836536827822594099981952639029279677610818910912221560134820952548534692189439603836503766145873633463367376562684235753279994501595795294811608343218798897246194053711227828797190473787447427043756264856543829528108703263383589511850329925997540835596292906043512198652573700637365143006885116414874037036145186808325269655249019005403509553301425452118680238777584476408627855049223996981169341576165549720001538463816065418549459703242683384083268626330958053749779249814212242325017183070594199096238931499342066191397032979254913910924631637027344979862054271957745028743304736340660962697526280017345550485409708645275822916166525498048759582404566767904523227060586698262145534228624328433711701200057307635296065731636967514751263663190707463562264471913780038250467951527130032747803424007429971293874949207482913939582820751616464317197771069510245740023622650983849661679154435961415823809909921336820829923618770720322299564755351455765441267096669253776118325058077126286233618292039812705300668639719281827223333349373027277853001543651098048669215046992394871737996772916002299829627006819297283784127384682240615164063892470128274958795994666749314011844720123321480568094984780904900987748154759023502287988483384051469161009309538564795880836467705410953132754270493397076301315660196967107951937136889469038836068551162272356396532773238922862047288480028753214070903190715077802021686212215337560398603749319873810009764465549139750556170914228363707109685855743428316478812783901149870870482477846782023668248728808247558441207551340053364026481805606661465746227060067345510463315189351263312800365679218854862589651258060608299467043349986592715679112307571572641202176923487063156669390372732013000179302623261172678028088710140111837812264657980174562769019936827516435498062630943108263746931924365625167196993681934087954022265009512385452428841180156845364592003182825481657687800962063925595664915126541180505323049184858701380173719479255820335271552690494520289910686049700969057311791572004124573864537452838773422013885968173524937237813251194396708864143430953023873748415041532249394256932446172993106154935336863920414708227487187325215127868542671394667031665978946403310651832159968886820446248881233619494343030799982468111438384632241465673507637157852506632889511305505110118901444069689700960784544332818481969668253769083030787518952605128291590412287567398685531668418186841796522639014043280485843012690008286172632958378817268480719932132953532083313599222778373076023460986194927903994021647081999441082327248993909757221985708180433451154859351477081529390211335715904448792477144969510244276448914889212629834448216140481265837724019522321829455574869149212133837369863698220240265554928040198735995299069887652921289307600442801251006220358986564952868303117991141441118085312684634612366462301649614828129815271108511833658970186256499933876701858173579956197079893941477445192134782696245213947865018907907676992977738992731620439442143193519974793326757988090296046751451628272361046597252216238562551202465212700730380086949577030967498827116165779060064960790275319051136934329490030681135194611617300334278690904196160907583679066318992549953791418155310896551596363487430793589870356571693622490544845689687967790540334271338164784361470665538356124799542815536480662364337350924521193086518280826330055771138316217074223679409360570907815000970941606799465230214692062027558600479274553243984130450279141380877707524612314169573095112137094494727732133825274856541932859513971436351575180129824883409064486855053752657139138788736344990788694670886759864416419025690235512059886321812616016426234591926139305658717220315539558678257578447309500483897190542450216569991050752032922069687123446684127059771921901516239464393565771429321257555266442011563978391733472879085300175449198323614140511318883929663710471069189059237606580735660865360118927699671066623467372508106381518440978198356718654370984127200708436834112833257398594992494867793157209168361223555616980624155479051338239267355293971264333776496920126425764905663626318335313270565010178631183103530066782168541791124368180060932091578130523241990332855438597793973117781595239469115488630061947169492910593757528013229328113727701414415412792118305223032515641288202676109482228637471642412743295544958187243582616882985616501420688897907017977078545888312427805425359585828039677338580228741465558227579514098880085751522841140774605042260347662152579885059083561223983793997093477265198582660715146060253153798377768231378778565869182963775510212766634222595668007977738385605490547171704660369622486440037155786770564238517568216083710139646774869453807029494229955559834175633912528135282998967527070313874126259581506865639758362374465129134834706405534140225198817894950807411258990483330987292181022877589305440100810555115435809240812093360651855296773705706063012351671147742977226237886621599972739496133152855816255805947441059268498919443452001001987764622717906793936354543511125624667647529149691995041044092755451177977711552582895177533910117492881827578022713215977046219344816082852280873498911840856429174455533507966069638241135850079316324425185881531998935026921107463480043429066426100519307586272853769042232708068476351843041469587674787432012287123347248581599850971706776941218853474034899173448306963153511772544180182758132711296046962578229333842715212381171110927484291803399516104841331683972723591299208446649811915853359982699379463746634572226131402852743047978200969537070734181697238863336930659396231577759102466882834449940093273038982242577379443438343589526057105304768922877811305081484059444641658021677649880277495417633639158864629961499910387010387242848430595158266078743839044495076825545379723324936329572408456047831623938089062601307633727933404831335674313797805940800959495137856758780736720948688714338593466274883953250865633107325734017976753966561375435563729714823208967026213950875781207202666003083478608796828445649531405006100460091604541256460213198377778039105162647372518660739817212812655751586890565552296937958848820164818155837053699870701067278238335044246189503829361757834798808338663193152357481418617176702607652443142005610599712260363454629212155009819021541840087228937793655157407707769322648672701723102056981320743207762604813562763987520852498647284580999896639840975405328310605590638591871722507742151932562732921375250633588568136222115358133365097813137862383449906082722277107131922861990885761075686835360321191963578429538584296455884488647216192524636844721420552167278738617719469630509041394691108372491682313910946579125032878261148260868916344602861223876267882234575222811288328202452545196349445842340345610473111890510365355897490347887106531199660438359211610451823427032249770688161201863960653170467847438413610378662171959179564429778603378057352961060393090491758538672393360475039826306439630972548093717371456669724575371924086157869418274840807026871729689303494430507554543404694412951453899220419771841708554157867094473162549098549947319108137242838904683119835005077153387920776987109232081887329839772480997204675066736370790769184867090537615404071896126142947543018773173175112976224836770202006080444492104179183783080045609033367001374431937466447143065913146095009656202469234253004389525996841249485759879594944065127459222788343880907501585494461291529853566283933997846663521853756810173644067750768343188079760547349898894656417835038464404227204016930516038330019378751807377310697433811106752373679819765020670934612429443804388868460367182293858764187641400371234369366735025179272654767619177169343240577243452025891055985592275838653905228229013773539376997937232568090559259471124935071805472036444523224505577359538020491927574272305150044853746541789270545522143771443112770242183887856417931211528299550616925410007984960808042133278706592894952485193693764297371563459613581842560293069688325124003442591423801343589111304042415441682659505802364203408450376889259001580731603715135380565923674772214349215627633270904310394339935406389187313629611183374855442809032257227878017940371361808777412924179153944531107699770002269117850179743810236799859793421245892610571446869001853269552531486702197137041090301156085817270792254701704556177525180758860754414783796984699997801994456985687189954309228249590163763942090631464487387037248205761180210018277054208325901828495788801500608261151229748954801018152918685727939058655583984969770749568578678277423907469442482260339335698437537731708654355711254350529193875067216737232058584079364334480697717256063421748066055649696584279006706565169118700442103630492217820009408988757905432740958187914114207192372989602349717660453789715012602136816867634918672326667922453501390183043760586959261035088893432418312260261914959820228846594490448768701370724634303433568779641518681089881820603726758958006540117823430772877059964999615737246477351968450974943152995576807221817034603946540777779223485384850359268329489817742411833584586356062114453599230771809701808448026325568131707036176352991759440966003444974707548078215069613414278078200810466755085769304092468087912654250467879812332602368355474770155420774931436050315685422066516652300763921435823119298770324015255148857251838052597082762087232215863303286576457961787057208304615711830321708215826641581492675797164168025796526912318579237157669774488258001750477705289095888914423641411833990810996310996539028925937083045611218010349145770110708059205334428210628805849264594794470273123299206420433516803346661394501950184430772060037774697030250700451727948613764661257806092715583589257060670163202993404006842078418149109842936128830835417617287945927513299412454082789709344290500239926111411111168718901609735760622344596890235878643238055213011326136414470810435610374662671210868635714424373297739140433994105112561863258480280649881484069109585950145075011887020747161542285685550361944264164005829014053667649128600467993470514964275088778621608270405699902435786777649191638285863464095415324505877656884901100733710023645593433243744189269882283935764068530106266990726829753512248026266425926346308411658147728746052046792286045945280100832309074820073840275525529171150996977456508139498692110544233826598891579563688051469010770459459152404876319106805828207832219137866392358529939446366229251038246828027289047122877533955760570986845980684711836617984595103090293743376295256534229554002318808384473715001679436565225527697970456172662889706010966445099605656140507707847667470618605628374075450124144754298790173293308235514020582068906325861700525077529360349624447745119325027386585309997629853109241957926103301169148280251385412712643283982416161865085165672622364756656826968789925631934914288543867169644558607098899497714514854485438802538638396989869715934657624259276020957493270875507661419479872196156795406300700710546138324089774503044649609348311602793557572507677813494379533942814421794693862614641213064416635640188472136525457177123551564674970405449024760114760672330300990713511860615593402653798120636569397039801599245257665567370609621298284862341319528252576460658057467585066758483187663983548437971267701794673339196053800422022695335751096424149774750170013926203391380369121264736726908697905401152626874883499983826240592606586225249820860896238974214092017331168369855841108630548191691533935565945941490665171440692007343358787507838863288341638470150444698996191608889370138713664336142120738970362013340588461694763116990299447691626226563280287683773572794762342139021340883808991393696754758831215606353845045006137304704641344110838243638509734754358532590748213502312176824458679252412169230107695747638252829922418828314317527447613154511665016421294665457524594790946245879347217091889342503140823906239249688224187014851060613382747038756455309298353883250009266068410511692715976522937358701361942629859345093281721064894787136892485483855159521613603220457807270339980967511942213010657714175756945256144939498564538134330640603051544553381273870822282081567727842641592126317786532167542099040644551517581259684016038351051154513976774270541314729657517174069711074142903316490014809216467578494726747892255259812646755254475135857960563894255870530580454059121936453442781035495632794590652484918336915558900383940024685690260290133311133594254809301854774320786311038256444084296987021296791264132116241863649850153416147396219876389954879009792661795643203854126738623888613107032805370748275424329166527909859601649940912289755873598418987010628674257965573505577915656711021403545823671311114571452558193298253208466634469984923556110851686464082642416991780383821058357353363534276268183194879026787151622036351330364842327554727163933795509450440230075106064948833852200549919099033443628303475747740697501190880112110663460113003357487545098926501342024207968195672288512828812693710807462986777873524236271272058230987178844403122734359195773698662068104665459055466292574415668785307368122673494703584438408751094505548231572597248142493657061722708377555019087010243321880037555913511394483840023003434719127157189607487977311735356710569726985065440879140647196252977501133235602945315981226256828929977386460433896858717756902563799053712537722998184737894903938702291654591985662486447373471017764560026205600324989917659084583178291973919603395486256257899220587154543151029312027591990822478492194832780702370101852878777436047397538453431089696791911808273032451625108128801243017935353288541834289589292994085906027128990487604090509878009627125735403994538845236186711257399834787090648965933109727692900206398400461558617898322852619333223114379283266176098049250774424068814274659173310982700999292847586796110480211825691869652628971874962219484899035417248246910518692593142869924811853422458662565783453183043634409267275605282498828902419637008473004537483778829419154842682752367238640754092549414730531912013429740664995489333806306513423524974093908270934591542984574614413680584029890834392543000052563243595504395930850840596788337541733031513788102034280892260284124748909429109640570736274150319480458824085683746707663232286756978435676667645215649064146518318812415367976303400258856679804717349834492816022431425225485910130730257497019711673922911082448705041442625825548259949574061445794838405761878586387626027433964400643702507791934663111827775017006525633265649666241670866745528488429490835570862484628541921242996899711665971690637050602168655151202862461800599708235346826855047157225916608346404123903252869628942659006832025212284201097371687723886079636276052968730233655576736920860214673723264323501673466872148996847367557097966976389513278329066951207757823750482584366295522685385610255500187239740112781327298322622186974912655142612617993815747858246088075567090003572509073960112530523438733804557496081225409568116084289415872474692674892811346693017095484974441727311710255183151977067400122228380404173292415331955164006341171759953684290324346700199098751435422293971996257970883708872003617098739698055209814843387700926663959536198599199383742387275700752339438797304832646372013391459770240663789654833370018004031307752831761643305312561283120672572239099581843385316729376006843784965447136511226056100620081760984452855801551355026709888859510963589792455750628892434040524946061088945539221395452981119937138386502818193510932047393252793606105717996083645358051864359301944164654831426425795508559227865293074931891893006474859797323055238435423772388379694613943574020922791878349053484662245238828975621796886612153259634414503860843915151785325804384476712907785517855345841985015214655421295864677348932147385753210543120995731474292022086470967697954134528938822593836382001489290950569547512957822408820742919238458442055588201266952126437685639141685495623964332586403013844642784790571805519436792293462784788376634197619578756908933224023234232684704287127489288769725592254109817662031947325194942123808794618855845806440879396966043097049969703990557493330666139397225188515060924292632537840893369002914561750786483569773554013683765276848951007509741054917873307420939205605349162298424241004161041555312415708232395344040731590220281817532047343610819134193603901721403373980290409203496266820911404906502106111861004350132514837589793152734948976615218872515568372047139985262992067027565364226835838817617677466668827929699604584189320527693270251033057263964516759233887309010908312524780593258090368332693988746896876284822884252167111468739148029588685331064637291270983482599192745122308962956219397885686819010379048247026622632707358738469254790238050190999573394847968825601973504616451910643192291182004302707534317318795988138637037934934622249467132139538706502962648673832083049456988362886230612694406914248003871179253992468418104522420965013575497679064559564083767070489462994171294337443930643263394092047929057926970707926719440420732121084673497037126853576725676636790483350344026869557291228609263290754742668062858909326448622456408733674297417099010769913647046874619213378928600599496591355863923414572008861618024853871786428645746453382482432650156887882972247749657551971600394791516561778580711496481111771264162930339866909572084127752750241905965343699795900690237921449728213514448154109402692947246206742670520785399393983054028720841215947837096066202036026907091692700353620491618851969968299169759558419547831491459316444775155868694842770052612185392308610565397512095848192178621574392755293885581086371282033669093247105641464728170704995582124607937413692640284902210339840504559707384095226212867886917245690042024410286766216601432231664887137383807684999524141026397540519468491206211162849393727849005764777613199961483281795119064410636948346380435402052090581641181281148588847845291463145814617073389422354603731655614685790297231237365532750919230380569757584852534836265760969502769248420527489918378584044745997227604987375926145356878461552360092991873225147781643111397238435729204836234276663089238800316553597091364672460880432193881420384709808614751089237590910296329551434698778890814056137059031803678277108548393193324542931098835209366507824027310407674751890257684998700479329322273931313683023680739913611503305226793486054115394527181410083749444128439379444089305799936600929567488427185110255321185969824084313111158610554784222651236671351041254177829056495407345779877679957853457616972849556086987939002671309093360590668648585221148334612198044354100206210955977204660664733123552368915469466654239334454843349846819036094699638949994465262425203550548889922104657997624698783819276983158844359905077445707271823686491693243562266010659018182457037687556412275504049323216994481716853843319871137066933341696276455229831393768070616053884083961688937212075612249642649384230172317689656029393906776524230958349491220887794053115299751569593041268415586374874525300333213957245989392228065360700402027290475083203113438619530387107103806936544734103740269329673755414288777529098929223979304378162543528710039312834963044006178892428773751712392723095648596440124279933172185727986837762677102147124324821354012073884052773440574869282001949286425723844445731779425111992861323109522982141254458406487194627778955284811022232309293759303456039029142515199052964783092176105042573685608379067042581567961803326138757643680489779256572621528023365706040961633620557480931790420592246972870734073174634610289472035205069243238959968409278340380955699839684038691374228189978569181805624386476198515029488244663801522850497544139060200381990410143771663679666572852323092343701520486167489897967847730382676322894000894469224305711650733758047913386029619624364840711918632595978697960542566864329873131617012668236617869084462618954053639273370346329578327320643259205865019270133990516136720735843175470404848851669605651905546237287040473074281622713388189068192613286354899848940003422721141985523762331054730716368550381315208181673865954439319179039852604240619431485266882920431787853943617858984785004310521516605654543790270897002117433602391227208661285368097316006958209316539917208847055768213889116979983520531103626662621446789192518530784139511968250461263691512878330864061458154290151895069948083734295463526408231745225255078867237442306672160160330982239150655426004140114013071139356397810704324907971088726242593613793384875235627903497637723996428015637903152276946093727960593674922203128193611544337391549112550867380930127857409288416447017155196242957669116504404055661735237139997377368439757127422799577636222939450811130285137357711995713211114600217889971099597745847563747282625610971780888811700813046439100668248462463224258663748540429315972850604643234127506944371910491359729582891576738253161088692376156313677554545730913799472635834822704193574731174636247814132039982346787159654315489203275872591807757313715744775454310029615476537225997937468234427274358870206456500598559910298755317289959446925565728636182035597501788218837696006959698298514832679534406470769576251999049555537360058410024457084044449518256074951005215969041414251606283793299134522195058709587042820125211571377573865480889625430425311219862347114388507715604956409564303031224800349554304886630528469538626188729477376071714371750580028326390739575691510953579413572788639385152307292641494160314878151392173631071181846996636006563366989258392073757748109743889672823534945035802359630131954858159118293699265178916961863598908573641560800679861929720583488972938004974446355231775366940457489574783778630458253275573371700816035212128820001855896370544605029592894219454568325559518226172916550259500716850579360150393132036090300601470190290630626858666119290052015937796576072784570721675210587812009922739586907245978798570384698630843625384232797157889810785332038677867368286157181142037976654265240498817032455055925959740960919425974801549331723306545925147351467503763957135799469647139783704328591474939897155731300549109153323436368217237702350928293239513132288010413172563215264911569241656404283721684776758610246159549202080361005263332035502429141189857380618061587795418622118270133682942014229401983833298987506010364170584425518332069367584545668001858502083365626009150227113662047389388061966467786238119795173211352702282093062643896393994192893025449757048658802255305109158801248805855344465217669966570072042979269608942492864100954925079234937957296907638945075905377991891681378025690902156378302362933506273784866030911084954494850624490177999899943943403335947299519151282440651700008721295846993449876555473503392061190706192919285433994539554126923758867263792421186601643850869657484388384439827358655907870869843137156541167351071773345855053722422160893102504386516902663345541398997787942176472125668368367872081489141573963226792457636559320034333871368802399119166396546429613138576665528805937863990516351104633136549946623042404869808786769838968499480042633239695832141015055012535841190465371300608200090182343752683188754177232758011431373015164405811484657422412080834054431279488074711602120535063094923346144880859740466598491920502416870658038874476377966896688583517711316813749469591212448313497922475017720362703793046001577423610839461390414153690073268035057241633864505577071125080754143974548510914462706688092077471574412723893443261201829597904949757576648998033801161263251775728234012210779920709268254851504226404926858673557331448728989576581303424027969540915633296073805688912004698184260974501215451658509799599521716305863759888974367583154582856188065878405104552733237676895005483332878269414438314361994933891096790298521157624815076306706513401262995039015677783815165955249532769894421623930711978925657446862917876833905879639655989821253564560291029783481034439699611133029113329401535458164947698719725903600912664001620728883092307771769115635800785766055715121125889173601951538082658313560620389601277489318393872858769342098261483309828036170257419171176263585374499333541581813456407614435785276644090301137427015521534623799415768168472253642818543481396452935147310771165266251709255779516530151384796046480146142818775768438836721370250684371831026367081483187014901384183803849299055841590291400358694010687847140266163487650932940904530600009360558705205190836973382838048595432721740506044670624627822953451283352750717731660755066002405468198068736687757315556817560997887217842946917338073506441908995497691221101974104326802103552920217772337248461812596985134793395777245295030178358445838938504552104234917001565387362209992506530293131990226328236495907464007845295671700749939671980115237152319156638242387730188494735078590469079217966942636849726373960208381834079157547930915233139815348690110443562787212079926176145796586183604781934461307283266290148048092836542885139091172188525499668543864573135345117301953209803415778548038547558780520359488792733380152683772589641582454385585695976923327545996765589722887163138297727817968206148785374969348687817323680614293572982382959031639287146497943090300664022415717674690111092514564537011134571378862812919458287857669160682216207815672446692989522769835524154498487137894845674814379339487009137146660123123075751581136976853267562204652622993955768642014340046149153080502736687354981033686642158752226068489867579585005743148173436222134496936763008303835271829419871640316469509847595459949077901809599766229162040936281681504196942589429368816045237927748571432149791139153376784255535093983662802742275043124883745638151839354739701016249931305384013791469670336648143154929395997272669919962503897101238218894761109300378605160023260371184919625107052729920371930180100211224146956976076206153202013697257104598942159633543584336572016817558510675957129935047156816423994708293224430966390376023846252069318800804482366890348788202981289915070873012282159793721050456690266615270292074822431280093821287116569469419709805076054944484137124134758257523094330205993932329572827667153343369570240224881534356817648436815619930135518700712805274190435237364955687848085144869812153209838996469402889992537947710028267545409168553619706059548427044251073942037437862736933141389349256465379319411635597872546255626019752245149306228795077342590541147670668797833780142008932115063385650306724848999238741468637726772207403440169818652652289128262438195224809861973073365866805408889587591540507414589150449871664157914562716589040519877136800686170532553703997562138416549245858400940286626604252232557763256480258249453956073476376656044940286599939280715752569774001146932826688952486758090951201929338106242704361758919382440590478723477772376505387358451004250147425912103691031122576377222565474710428979116970547871233256424199525952631933185740309528342193017852751660731832076863276081152787375144720922165869660550161393794541361762890608590909670573791068350267772990003552007194770856374427956167853600048959213742447566463026320455375123936180644073325058427295416402930920425332432048597673387212411113470212729061992921168467744573959581380698296467744111856987263850272693923943748766295332785997166771434201978173022847911597456659061044019247214267656185572483704366184830517319238381045740950119214596328131199305289671707393119444251513248209223820097215301892602728909030878126318629850837151187557008739640556113496365873446700890347217757642417170633211013212725170369768333403139455245419651200646886548702996190327648279357857278388962615054001679156305357004518040216309745887332777579785163959482862429487591695401689687447220955621361520723393882818810171526535338481630089482403779546531381748996218128784304538272517567047851901806277330484399830042130898005505595770508239256137281259012574508034564063372966839022886917470899818937246298290798608565245654444452386986593161650013965531519656497221837188756512634148129222431975840955869646698873492130072433080482451598858431653228669805983070916462926453867583428876311518874626267466368848534202883372038938874070002425822691803927864703219866207290681378950617882912081033319288802778786012803755823980557517934577808630807729708355969425121342834122870564802222306987889784688538366597926465263888916824372911414662214568037355319923526593278958801345973889881379285170718459302298815770304516701133550352251546461920745543974932480926278013763278070867948515539366800756524642542418521526306209493017578481888563928741932267554998680467754979161575245200262097947959332517387742159282084277625281539006897029244897588729710444663773557170031586982070279710739930188244651862550869015270073177653965460110405747311273983685695434652201497132867908427200187980913316818664553595592274385759126385006814310141894839185511567876612725950915240509532547511294081712764315748011924227884509139939948604726144626371805764867549062790681922080123999829852068701496927389180886702834069265644055676359566129254173493149304994013768634699436105324328111520138987861962605643460101590245886245106002282772298923707082063716390991965503577179692692885341517755672804125686021092344161039306623559637846022364694570875961518138452488999795834342270802345483229357303430315180634198344332068505200097830457825131776375098693982839263370983131376176406870153970587103587500152214400424590335769631864889351906213318016897805367341160064475198542478448465486111113913137289443567635141494892565004673339804146434209423610893446010163972782383888450960598040670233547067153985152723953937746499877599355891639190790102595024897589720113121426167585561386501038256582434477578338505309360394344609577427758247972681066825513734388095080242519746093342369247188673608765473946699786043397232798168811934607347392260311230126870842992112961431183117535155987304148362985855274781761564919536666801721328965700697281449151570487540899900016216790274340328919709736446026030978429987344321514163044743204459785717876980942498085869018902386670803381271709383602419515135559163014424152642669818458613096954682593731747416422924234054505031013634175323948124512151181043999616775047237240463598355207712277584476057141118946512942151190945932807158137667226677886916558439465076974466718683787065200476269179353912359573245275113559235131124269831110857758667793772825928694655859087627354245613714760576083270558783646226275354739208467965131386256240014391103648295412176042311240591049479527931474214089783246299457671107544495375317063563303965267070734365074128573607716316160044445066892975461416973369667843098285429553462690121953083258476297480429369867290062519244545226449584789450058063671923598859464110271259449944255222423056150477150301793803661899884977598690695278926093180433374682412878322783307282320669385614324696441045155912546003517301375761738444577824370966131734363367540829243356167282262000967646022508176850290469636439718379191355485234631140515995338422235026661329713968174441024661919548921663000031301085502029092514788503070518810922844569567353353223835980725005427182879642273993426667809153002732767279266021080649125215474749349347648932612870134876927804169446152747564539056114607320601769930395720303941037274089973726754466793277461161863702365643049438223904131321692841028094878695194258560772050964596680473620327096162613708992429293572181305038227833547845653094564993980209477828334952631447822723578613074304789000012426311464376841753287751042745227181329800759796935515193774653035093660800197497802523750025413050554195665242881632404369238780937496158138208035086371638747972211361208718537524372722636934911099809813336726079993572566793429533637742301731326023318449777369975475185924174414175565054856352961517878927898255878409714285433346284683373993065662248055589876995797212273038039722304756227607491396466044638100077525560951123914689812331398126277880954466675818032327930323471700632353667370731121065077042274615220271001878919913192639687170323486730329616616801933846795073155135766071761229096698241711827187398546528824540987907730240780019196871604053735345015428838951493152261919833021471255701871656103693752115172091668264046131701884301201163793717776527219118010489359630532634069864677104444088712768375154099513199925370277419399041753694142043358653893616657914384182344434592440659334758776030509753037249399138547036091980264461373731808471560803752985864720705286927560608372331762148508063145726722546077963043423043134175057830709425094004589706233443730535576665211799137464274826843118254817790753847886407430020185802464330458162333132190500418469748261466344860737699491359347549506871844711691888038367388256011475786767307734449167214585922711116578235695490396484410479372179073650350576854096961278077934065397465007943346162029500217839603317455224042428883845647281984296209161892135222334940770544683035045049425438813496600224801306624616516024515042982711607221429035259972623819661983514161895802317745914631225959432900042959331682698211114882391518467112153095306697435608949659753454116918085963875243356890753683033621072229468860232026567654645382216749221161892469811351150417169396049349785473272620886960040582588337898261169036505620054208734308707688532840145570865043896032619287760876878716394222524511842465989599361444073892130593784499684544398916498757674148225088177125718617127467430680551038821965729064360683162715693439705832516813106213409062796055060721475395132248274843685104360515342762879461637876369083341385564600186937762258367710603896170796985021785085094443006433330147483432476408912561259201746132923623813935275421145707442986157914919050166727341095709202343813658564781077469414826430781546639425222504902829089727849296593646528543311506692919852269543355242529243628012950677203424685196019232735143298567631986790812087572853125276914406750358645654766586539420794406022597341178923920612181159906345007270433809538719891485519949145571055360282519732312822026824157093359530654477073518304466054707782367082291217359853303540075605870631774604196578007729678982978650356722605745784500952030597946882663497527419659202193168715273567859198678380793908334332966939747400557559439215350417730314498654104723443617872610737271690084327759901681490689583983530579187723650056212698544819773997672389565340152334861404640146461905542846806452957425903260027689170438136819011861475901644630274604399908567420065775368085614985809680587635383627439846154281197728610576523109491652819358448671535257850241253358141636105926475850417593042579133869190673314216901313445924526207043268980901726959809235811356627669845411960845880706196111055932667646474553938731017086313959324840276278707470130618595358733376717950615785379474890437556126055480585241580779811007481446835514812047960188576107767390611499263084449270159974119905889727586469324743458373591299236453271001415010697680255448689583842471679876526659424928653566701378709909939308689663435333288297270304365233355011786856458751727256784991475730454222175289237114523366349301291320588291594950874187288932844612999176311326304141047967698173864171549797865210917097441777479786725776035808360485925924987872996751918283860453870124768913391272283295619182821610212330302545153682634610767787957357002601947620897462508769693657949067625353367520547323084889998280390905496209735929441788765754725222087888987724606832165579768746480613787656918319074938759626956717172513208281048931677195761393924886557323543197711570510174394032098851186946355504102925550780178502544239025258514909032547050028629628789446869297128651577889137569536890720819963296198856556068176563077262656723687432489537310433290056585583318041365901796017220317518498464748649237332671980641178848901536825927008362124761085289748869689449241001371370726838510349244092904061158835770337094497716393085047345170655837549523993570465094617932940068412016801214949201281585674931488422035933833668751921290717352258257430632703035859221884400656232045177217355191478187658733652723769040797582932254037788648225550191930701935705514485289015281109629264064808561618804460855604523737363331257687968470504447667118080878400201759127645058023520639254127584927224201019470036701786471667288904415698959093484100449605075135555025758590912555498432493389931851762044434715337454657858732050062550363424570160596067411487917167318405260234346487912984161660309553985047983664734282666163803773396790218736341396770347235464503280973912155994196518019968194487633065995267882991349737609026260690384664228426625592859349950776796109249693054059700020024254159652709444796693259739345037441431549559989547978278653336311769096881203246420934711679953507195973027805542905443156172118348306511978319617807327053155530384730800891554032843776979507635101946983179786451968094580156509283443377860153111537119695700367960122290745622913982556534933629623120760350984021088424507766064539053917423107332983270049036002647295533212009009993499496918146451344283570807756043076173703458589341567420315086195280072400363888014955251302968482589887095965131999480957479974757705172213420353898936011137235835852460435795635881605098491542945425434363784179978926140792617809182913686590266519750582135859371101087527634695165286303725699828486619663799960094830825037957205654519685749148105879108687846335742633679338928533999705389041024100349896466310665952312621778488952371798955456370797644972507516142802919842850941344389460757062587076455288685424710994191975631626697279007452362281156623933769421261446332474842237552922474262344766157685032810491861186496828197808737074611149607862611307257708024069633513544330871080596214952278057915887076678039134572227031157953307939962346926023975856823977233250723448311843928421031644370817603121553844146682651948038561409488120060618626607671590682963119012679919215593295701150055821071433895966693118382201059885284646782972696577182860589288846142428112776974428964005569709608619472691262738615297013881549081020464195947035017303422724667935267110885597995273597604485702111360528029602533692271222658231244611887797361259287852023603248182530845981556870271910309600075526639421139891108581406547564308361693934830859673973712524912456426755331969910288821513287411050147184899502999768840146302425989461990517190663159250164438954688891457626353165799083588080775242351155823193962663986595884837252161557309837125191905017954636809322015681295438918921549096855493820813208720822101244585477588141033381704616960710582141101184188060664130466703236040068004500687176633108655994873845145297968067413651874077954676098716231333843250681195380987162746220414789309111706324211640836286257413850505747389853708109369114854517728869894010005713745965589176560273603414032176107800986957599806714367524549682048929391156889751932936945910045663919121104430121917567340672622542206147627838421135212459239006754333355850931668751202398309814340467067398653308716067516339837739164946380251143342134780621048587475692324143665287336780489766383758257663107783040738718388678755159163036410631245470970895351331565234765285462343703323277147924895419382584753622471443038458778325060043239749651430554263874270535212064513106868650816092050756755203310665347740291694560734622977040334031271225362161568414827854821560309360557377143265144705544637594806766461284109776627989350263764736241949121537408663174937811042719854831377207704729226696384763850199010378978812218238278065520236410872505717414837718909037996707769553097169858938083276503796283553780302106386726076254241325986533840297407496968281335456990354303744557671209667619836503810600713928069898410142656659386310802592090557350817655277877478619591594584331706224854223182731334178863613226777568819234700579731263022236152262153253357476639458184184009932386567183125784163240500414844053755234554378751215958711640085538478300692776082905043374946225788323119127770542893124825155899411841436272036036484502974097806390615651453998579295361948434519589812120540145437860100960242665143425613326254335354456908333589707021061813550018887955816883437526889203396186370324674697548679795313204890170820028201071182735655240557107037951272901995064520222188843000014504370437182342049916309622270472147529008215716714445203812114909580588733041649185602055751977567782938845993577083826164070604976322840111848720540514753857915994713671410361882554651092207305315884137952376968651244155622991881547377128410840165625377623181633345948696130129182718393359771189512519352996444075839895731970029257479025639588337649758216927021753468609830297644917238447219886974033438075750842801501253800008245680823309887318925133882630900893917090299818061772135884080520381762480381495553756398830002185614923153908883087775823889554873957377003355605887254486141072068883489665888181013026353680919750058439036317632557656749465992586687158236025691661620190589763208954422775748208505607398983803147278936809331566405493802487530001341487565595003741711787931293790039616617569581272183171105877332601083361630645542024792678334171316563643233846833722538582031956532688994598416236572905239263746607213677682457585513200931116143066917242520312466845892182297647227323703460865564770539797854189618978447558089683480938140174760634969496305578610496955834507022994795863928090791668688916464785495243811396422495687917358243203428416031346118207959718098934828231758194916128240462906053891767936103378776362404044142730919456713888044236052099559958294433253009113502845500829890505049872648417322305809100485050869585021825904618024114264775985331888233537013902114918260928706550459584066418829667352273998472761373786835746554412700724470812575647278951577234580965421642740055837009587435967854017171504035484132516022824511522256155699345027382526623217454903353323364916313262565802617939125897097650353120720995931723847927229023724295378604221590944313304486717197142235530072160347003764334240107297768453317708275095228461308832463991942260417223867791183411032132656265957563003292834801470960848680858723893567825581834172311013001674061517330505468463697871134781569739582084374323871542410151260609542430927448451447712536230644578006909672903312205551636966893169728585576471884880325825859399654105620085230747315972270067548728871783425585859551502217574184447504074046581317082414220898317223178938176978517424691744958166429730124204142347796263405591486754538271739815271640398360076629169164713338463888523606498924509972631643634609102047851965521482615193235784664724229399577698045565322156062751237656920493911149145640070981648661698861990929479484221011504216295612983780603565625874314764576360085494943152623249685215469878619390304630709536486270521044686199985198249915126813260791743858531332350502327780752063854895542256873534240451554680693445652918106371278331012200230201096426889465919656341618573611820030932149110722270775041411478814548888339709459400078379461513044889457396124722211062494370388967028267242189082784047479216070308170767835272266605957059316780106747085297807141501573791895023194756484594399953341493193794021270338179161112280708333035873079729337325231005284502190420457342583152390676780743770953193432547640048609995475820240178017861638941471795602206470569839558364496719718615930428574407149284029150299513842099548588861876888080966534056006022409263937450638804483801813047156941982721327872248523133916321792734913550326621667292963668796209361867766740416823875222651305069320941504848851821603176090334099004685141217900272684794201974877686039619922311283936858970769540854659247503287163241226536996303263035248088541449153707237447146039836746338915317260828021767868997621358962819492816806772173034727190554896082942571145292662419196988971735665414068443118343865785709506922844196342925370431016885923361461025454113697919715679601572445135897114045226637003070921368979416059091183657616881876128872281468597556879431177142330606478513428127056299647606483944859182412273877970496267593644244980052392113339488166097846543085649552283942070040086008511560307657213894855798109811452314663734646086000642223238779154408920107711835659079634818530196632398845961983759131682014088930534728173327647046142862595809101302354913403250126610648454847748187100487707775370986087011866320707127161055017530090519704611555143176274734635177024034745218352996519258410621944185621030211165315084832867826740787410982531760715394691768618163655329875428963231149963009108098552403928315829583913791681821777881818544896909788819748307354282858601822636195883581673080001164577006053403494343622325742187362134137612965446925309122334541153134792385746066549864768229195473945422706413505179541945075986488049237034361293941317436547395432547272524712703023498297724090601249947380671725525867840128214946533360525367243589160064240350459686096285148972500395568187680333128870802983291787752275104541425963377214098212569074627636522926710794386109484411593290456835267765825403704493335042311043881371034319447015505032034242355880641140298674450515325795468492962986023728877045578804515858550814130139528054324398190093869081722543086116630434782615580825271104147467015786134471846920993852175557302829387009052464353552107893063730165911681593651559434168728333405065871166423992693321786394483621620597574657983896863162401495350357797046909614293430243077209587214236026741798502697467074663860823266987891315476611032627996165732611978360943750707621979597111006351486471976772143673824094455774346743859288375082309204657784676384466742441128554493838966542424649240765239176296329303939481003976648108497305259554581805846881987497666693923415561397019774355094977818953898694303801921846393531702036300828692945050528512415486555078054365193691046389315183325558824310394155210303889077311677618869354046001252729346862712886483095111082040081654681482941042840170981682974796627391060039931130112110628955579477792508124029834305422665728665084050780416252860119634362797775644246410247872171518780926359172867238161509472688358665070109981705738046316043525493511455359450946814905883530220474833568568658925438491688043481515075246484838999936779917530228442601354934494740997014671348704756062995741469322820209353591258553576044620874539231543159076771655881352060942678522882684114333233559796305152659084687821160670986135351011957827622926816207652384579007569668402727009753408988097851435980665993002050643875480496450940429234931685378808941192845721060783797653022604004767542536394544949326789578911645224434763033864890956918296151456817839164572085141258435216337858367126398453218895349862835003535059506616444552051691458686666087493516274268361834044749199449899146688873120171533768698264760023085414490193820194457151624088418459245528859155850382420835998078667040122216718890999003729657822878011099627894612349297282192977907491721502175473177455990338211540082640440704192437496448569717309591527280736444094582444853650563761981560846653441154273746665472966593437117149262297153211493175463186794615022775506791706753225420652641206807162011175504790853079713281723527280048734699153451252243172066509098993225102825965207196203672662051674256923635297303824908297419059386485541775666200973018135508003542014454557230827660009072469400939314650337946955654610228982702505763700008620286696105652177167195868935599554536950110195095584817526905503410819529563125462645264032502803418559707913088424555785953244764929548104389753515866190736879743767101090124232988618861229056979475970115042366433036860923108551387756614894537035043585553355075530522291318484499912151946757999500111915046451389475880158830685323178922082319397846475045532460035715007711794132412069743783023909259194539572423255197691151965615091868813737252832090274204498961357349864087998746207841939234796434554581193130388322596997385576532408627378334042793342956101057314587807177616124586098570734222415565061902617616106595901699250928664909789414264761193743425547567015355917083334122672704666023233375565006800263871571348938662833415036571087105862608430439114403236697395610882497185123607421234143882056874440183708753487467035664861447967853291111621264731114907573427789755010721418433707755723023421409726849846738834968462986170113458515247825197110929973889960321020014629320853988604457721830530706039460045840910732257289824115193069093862986849318909706813019121776828331667053491459626738963247671809694530683273145497379076237592405977400538942147758771554291353535005387010828058514618606820047996930725116452272968107185921751101317142400628249129972810167013706949314095411129827603442459310049500172518240681406292269628855545094478568063849737869333150999775842940232418003108170807559613207390865424918355059679059367389802561134300523264476972546723624075826615287242242468771841406109871351111369538082489368607306624706407449711133552821246901270172659428748102650051056988187023631805829874958927499518909166930582890766646287123979956088795806064425201072800357114238965922602172927964118456745727040012656336684180014098824425439984917204127232692830152259705618903320777023685407878308224443870867323576855991896151103319679157993751180798707541401699155813313024449304149892421545190648162250450777114870778884057375332141654839950055328417950814978452877184396289289800499591497275864887294543473926893325712013849742712050183649662502012780123919601182770462835654480541491940760191754238858309865653572357633442067385864037866496571796879661263582175230557707610317977414062471551794920138108138536549363762918284236826427301826176431355737727360820603063816483160054884242077978833870414155440838878992632596193336699712066081109916901106958382694454761114716595404024280602061001257398493752733968217482334679194573261519182539212826189878216265845930159193505444469221692023976633443208952108866461625598959031614320702164311278041233675748654943774812421796676246091307017070515303730850842991193978776021043667354906065230986889628372040533664251548897628422509067975381413984581823019430012157769413146455046580075099594889113280654101477869310184093780362150690310672738479630974205904274407651560991725279295126441701711450446001940189602030520219280951648776114748625864092441386380884596002552562759086651939624208941663077979540724589984242205159182587733407139858155736802656654986667995394109261144584826340789392735368516604055561042698783995877802503613311528234536134369285418536234976458055405738379754174057659310627471444938319238553053272105590447902197662928996724744753796751918088551896972830990057886702071701581138327979166703566018380518760766209863010454970337418870274522284270476785376518249591696403122869110814930284949028531540971829462657723065195635060024745189178883126920756686866898191823928405085108648933644097064270292423012323723418518890719223801302752123834159868983803253372728363677913731828552202250955902483876041260603772593055530376868276099036941986910743454722860802231888196476088863234120380291636985866622487474207709293291515659070751799354912700173154139409310603148888205850459182504658797958015529005916654210004259263843208617936942887685306544668487814493028580218218137109089949008291934567046918086800668284834981516088961515762110766459365830107210255015221212333351785306510248693815469154467288427959995592466391441104558140666362053165456046277841017226137846143228382787811522483159819396518363267422302219029012094163327717340648454354234492814168613869978143321577574418373345774277960477117748140611528189099601246982178556075453295113044442004891157040201089405731629206005701223516975628716232777446303288449203452991264940178432949348137226185008140015291739696799692726931073214536176480632654072537785277372508424526313160869638672934744700847296193300758439082248506219568391301286066596123375220035516946790819838125652913523386226912940106987933574690299112089443268182945816618678522266164481581304872311345420500880940516769668414853354732444426751683854057564598927515203314688200949307888823527393912659265911323522027126516705691887442022259842730242366115982443390520943079147900335809431431394847174847725500539867788719661936648418193874978492555422986865763731030223710000665269079949424750163189321563282060561919542392207888209953649787763750621085134521382830258203609027534298644076574180065378413645121606482109437135774223400274538321983070228636177451135425136660270988679434590342968319255684777913005663444133882131760579363612333629501804964310553142893403635421691501693767050756922964086735281649462966560946276681127717996157768078342907643433868819632448903692535800380069405400981947694440765268946167883870344830116888146983321398743415644548485158326286498260036657680903980408382906963740360435156379165779273499997678578349256365640564660054401204139195958289011596478766768758251890143391434546367796841145924796684373116734503397584605178653187731115540525762212270363826297143917012101778244805404440194645284148432474163171223289313211220747970765433901764021017929497473845814637219257597059026358584568164193884564161669922309243454491769387146726685030005890472511021549309961433892054306531011330986782944638933510591204853306410059713508704167413823813054435498075847205979064779360990864544278069121839765588773280468126452126557886022027009187364871774239473060754807195214181372896143804797927718237152808209336322095050487104543621326096932564132068369442763023398276707342098520937840641010625692686157892673356265684425334899455675223067723751230120094493686884773343333267417692240854367335408742560813996093543704938051681719245080696283153280325647211923619623991510001618381088454157323416051878739211859341847548770838630247811980756327369400589614055128726595323196751441730080395633498440012968860039593864827158658816624043342421785577998364367290956925946522743223365046615824471762508168630115810735972164287351114984925111710762614248316135575068783011972029442919342290550198973750411774508111072285713269001390552226797781673699643466398367979884575236975180857033971799623005316935479602127016781838125398976749748693645454560953666090707778083373894783526649918682367429117727024396340012442285148273025111514447628581248347095711051647554674011279025521799037667521147918569783612727438700197807570061758331394739234789111873871436859995168972855129734216264101074232593916325570234538659042421234310872529851199791854646422103327987113223392710444614063075579045088845521628882824383830919829528075626299388986859847395397210199981440294853232468330704635471971509093215310040342849040110356820048556754932957218719864663720066114381260883437514398955962223087227098622747792896579565131546231293666559434269524829124427200443815167566470849438428483736520321098198331847293076482684315783189813169897698134867787344237443282398794932710497556950937901942570879940916734383476764199520854306901912391217598335393789957614991176406554667085843259984576345481626119582667308741509653730818258058961944363538992436966844112443009713204396635329163025401058126017827946746664354425582327666692470081926652503034590025335716877177892034819194919830035230203687071071993648495819537815418281885300733725474122157539464680566090968912178735674847533614740868635324239520417096151463439183299043588267217752626573979511410954902013396716830198265500003671407257901237898681248780121507178445460040874490050615783457464202636418588489567285714990895399468451685596448967541573151015982342465989428714094119422669371917802171847744526957281504125195448504410289620421038587006166106895376595529138288875916642036111860604774469285198394125420059042511262184030367874931059640835241700547519528455858236093118745264485453674666910257980856057587251975286668753527035889183393220091318561529418933727595483465610885555938509961571210966544930363165667726548263089205011016459868986248746372263222426815163935181024380379091150266020102737117249638629670510825955012413643786655179654225561510571104874224109500902387786054413396282905831375987287165017384871341770461410772168573201899893096585922740597861910385339844750317277733975687161206394976735461084525471622803416999878043360070415359129165068015488258861566036877251072815033403539712929185574205928857758047005219254452761719071286533497460807398424153812152005483705167789948390819390761934936307075450037685913510117780333805914145537159637766752448565977276070703959187816391496208762128152885291238050586907404990515959113728060326021818293913567231094469068286339876381105990988822761087811351302906605349627240802631908454765056843045536880964434128665116350716516544519139620066327488604796880831990512881666122571515780032371875252489731598570507282193627966690023626369855671422826844713644843897868011542815208481170156235790863325991133938371708807565578868032350171693702678497375061628818829413606656320811221270202710573929574373294192811568909219018822232873480003374315170014173899790360941655972323270147764852136177528424725548981446289804601199793208888565725768681206397096007473113224481162584074130901635355683314527012228056209656072386978322503141010224348062646224044331673213990081432592059670957326046651278119243194280725906135831945835787438409679969047635745084026359199075422413761976204253473061782531543511272202856012981597805955419735874740254916666058275455185538086493663620738994600627424206784785464865469004659109239120453673690469290746675822395741946473580343788599740389785167032389152026441787728111229287142973333822853706844955573524727049512679191658756236158252081314866334856425836115421163927505424244284290721296381724550770303339040359541063279063533672655264044233422790742452484964001584765032193800578167056495416650825996640483157952792283055492681956383466953071163392677438933783735542039116835427798565325692668184277268633227237502540398582665999865390423915924096182068164064673627246267725774849071944969132404748535942549663375348355406361765713369964912807506539706951715148838727964040786308996364926564665791591687137490797257576123003466898761349032632598673196624430184102146687150907901908590931709147356341780838271288564669328667812855225435981760339801217447296510303234614388435251549747005266008798926051290450176282032101730684509583865361496383333684025890668328229085442659921374308670344255028287631101638467705266164961562427741943704502068152428589348920438169123269699069927100162419658236393611593126241240668419032888222948715357007220767210875948387539220730478604932951013368879968979611469180245024814247601625540781539784281545061440066348875447742447768948588555120042832753888066752214766632494076798766396511228263949353832235525586227610973388322230477513332204206442989676077720574207526923019171267717788525562957497297164473228241327960069424503917394323178282625306242392250448492515103300359049977406214276743665364058701922592259816842184398230879367402308391822709781666160622208804510318796350757507974386220325127855474014815472200320536508801679727019813412940239664867281093787569993925758625189545407552731949397173636864843711353110980538707608277332883489268024753486875399136613625366836039148356399260255412835796318168403758801198050477060600396172951142584494137295080920814790314389325382144945720871563787326215528082128181514952655017181392054654559831161782541228746666236660381976404961590521538364205608642396076872682506083388186859436235387502816725678838299676715523094190961645778774349538836306584805906570327027220745994032041527070322281021038420892423574005073003678056597892914028246984832362774674845781711699279080785506367142029451980359442325006841618357581247061465108095020683217059035601709338833657953263372890414210981341801429981225472167769005486447542798487346413650413173756236948645274784703661314159024163051581865270159451395044838386565206795535477817011477815435705432425093390597518334024032756824752998759734939783276117339766469457748078499269323739880725244463014544276265268956933627202618454991155900645514946191028407556367513920544443932033880127229675678772500681346898413481317754978520646560675413619884234121508376991930275322455796977729744969911143182476406265914419870770854646937259160136550707953673915359259740026684672213879779672195068232894614583880603697356068780671687332532521833867433296834967738759492000504840999968249964973415590901429079412254197805329675322736114627014815662185698053373459276809561961415848936681039195107335984845405618876613679114642519176064898145045041557192374215507422774061427247518578138306316250146110375162715550040827634659859416568848812148039913373266410683725409762726705224065196993815112285886996891736484510178901969059813541716367088850285597157995864305899292714129625197486639103195778744310464665318210912844286456498545620000933434543242163726882240742628197642053441917036583114945398722297393573619747334347569567357016051640583971837478415102978594859592514534693385186192475886059930130173111107555885241279651218471333512090180855682360024591832290599742764953024920744555534508459326823018821173639906206564385192546035289445025015581141708662513162540442260108975810867817799801932441553609505096917020077751927523203454161393897935716872633780194354016480095946206452790226273783505324388763392447079101857336042002548666510637769727062894216959288062317442162870107941886990566662227717389582478704160527329241113838408695561844516374717688790188804518223300063212998587815454377149981043612437228166618042886554626842037626617672714881661000551010796479534598830069867334755069928161089823986983559235744400119702276179577023640153382885426493951290510006058733320305178121868000750935246245421920914130734900914982128781905529527636717060683402297272983974524417406074123806132708282725576656360712201774127727674337166349552260012780981546064149330910251994626591378532317996910983834427502453677789554272964568283077904644047694809566605044710788993144555766271258466258866877385216324869245777158354111902553603967600300561298160163529639409122527319315305960081689417122873305651152984010040859031377057311332120535431062595558441781453235631191148025646034922586553083053050887224346385740123234617506736053495266855050701786778238744938296837328274473886249198272474070348557700838745018872576537651857578677159300891805759873569491793752351594093763681010586189741626702648026357269535047195232612946026092609121193417475062381584440178708963377715999768114109029370537376498580619436254372778852869070759674005628788150897907319695728678162183262189360818619604104092914165009979370594906372445525179256170795366355978452214648634819233621196790930336205359572316267652337257114764608830365834725775019818045429689693374576080204780234981193725159560928817718678513484297768448290405465306473605874950510145000846449577881104298127197360446205202761210593604988399600579362203399060402178124414945077426007235487629236571440356893752027616602624387208625494381489983460459953258317724177203465304644905639887868453174766491449546286387888363852195510669756171151336796850049757847360019387648007269481072964358579001054233885262318252514499548513684458527117482220627139153577437817632407941979462877716241537712993052884618400046261075244088438139096714719311488144403971401137988285450005922603872274274362635634373282681572196037993821175407442810581458496818292722481668171008794370459820498028119199013586073810149100212799237095742904221602090009139730879111645879457167313650028999558603760465919002177499432526725598127163791312746153796286955796395018602446340031180445280667838833150628928126736583596321894747607980425703297949270599026035421458843990284496462943498721344861876592161211326265481993844992109239383814186069042696040394638004150532960973284469605459636267384350313604080755382479679182885359976696704911024641398541942192344342475122175701779463531572203857846183885556358431936219964224628464224065917560488911860541117193032601935669582618276452036466955752880860074077966117700996652657563883427986626105937796378354477889814950405588464091235880743138323934731382473757576885226390973552133612186405362619026353717008252486229752250202601054988677069271551758402600431041469063231501532286330979321847740583759867369705333955919436781972770075377693536729658280839359708230237352313554673874713859348766347245320018918334036839047544577462596613851071468297088631697733036516671940184398879394480842854535729521602279518957028352820069633593092002589200717579848276916830788215281957345243996382105161175998190114713412992484487575253373413693932286099960258738213015228438470796986619448368759163178533857232517595628419682568420190940168625379651123461636113007301557651025390508086611592193599910943947275589990828402705506574775063663381928122202139066889274837000023793904406218642170488427555949516031839739175180518030294950748904586808691618479669438287958847497733436890764944010800543991402971977861729063647587866922001305265418288946439685886239145081218289322150281537438217939520674690492062033239497094305030822595181751895286122935214889845937223348721397227263619457350883074836556413836345975375305223268454549106304855571835800324624169085531075565039123276525183011980656114126607690581066021135927089313098507112564469876818473790842176983060341663419639345509028685324183239335101275848161852267694349690142764971241200138642261849950125403422651277117817565320269308315518465012690288490118257861664769254029532770722242543132735900851397274842378328926933802944636909929571168515349941510457955150580279695329719824132770514483722846405641847839207115112317005254423701920177328938296349548791308762144740957724140571968652614927861515084036539152587048800968614251524473798377666939135007661036689776818467042091633978632168233946962701414807326835261783397474692668880489453935772397086900053001978875116122457541568850573889014927458245722541327403671799463701852708425182401230860484998461518857789823590857849337952984820576912325470104789023060744643601853985193623559867186841957120754449712588610558587635383855313366003708189725247525405048664238438593022924359560864632048593096682620131108700548559386984331519825964173977849672796749291125879399154873361958612034604959415755261933599818869214265195548154211733036056422042266903106528412686061169688571687801028888106549439466429891133356049331135892622190866911329854695925879482949817487009241945092183194346457356300836695579495488131359896314192055086160315966325742416920748556616259747681287897627165355897738169522328712816088323751466807878607891699657873522138451623466867043755387302866664715312517413756977822707999604392905241461404669962602665419069665913226260235871697609739611942702100521874123150094806369130482716372068457243843912856446913280890041224090361419315506081390538102321899103165387494867071806231427411680780655751621475422247927973144473319858619889793695202956851391673891102508093023904593286779850742752200005805234955796951064644470750177926000930879360970359836367768315745777815658495002734691757228368652781421614553714126063124874463511805618471659365552817440972378400698175554321976316686133949881686442377218950490612657485462103997085600461430421472189781283236837533739565577410179690972190124919386220154352745693998922469416294138464117693960426980477534161744901429071588032924412811025190550807312045444403266466578394683009601764295932405501005200180931527834646946851167448643088198594893818469081671166350500772353472725957763728793209173841948252230201381066349288361119350503259020301336631565463121325307790905553329388114953701894741356597373704866166787360543022932530182394691997517219513835614248661212425031717641611268039530051052234373101492273205630298677691437859644274615091851072356018637052564948445647280949451675639193798398835808035833106943250293643645390201100045333516424698128692965638546910280055720037387720822049802320381421101709255045952608410422075024960581798861039229107444394943222796727128820360808206585994221456592398606749125878070842559599556951671495991572961429555916826410465524188712896462892317683906093109344512894322762385814054338755323671155323411484149898973894505118826989805985501718687960626668119932730383847901956839754737010141316887199140473252232094106067964044325927555780415272875467142074444061669488418715374913295429127221052169736470832099872432830105585810852772982055823293728308332573021991872586686701570896828997518866149550661914896068245555307481662165261240221771643637623185542318338607140667236612831761123829328720542699663183651595002118324533285389759027695506558619444907702341302136877487072234239843514143234757108279414571512945806874191441033079029035769096268949622156589848372441637781870215625812097475164967518172010308278073074320392293812913488228611521745816776536180071388138898071355780179845575820042058382320926634463352516718228256212078615095940930940244819511773431727149867075218960347415301913015042755631960988181067003036409518086209430274840183386840313258870621843361058915911039215251682545491568967807864392428559327664066872703381362298141836545710231455297782462967446668342219038425200969860883230353360980259398313690298437165789977962288762792437723597116432986385801550005522346165099882073090585638448032502054031459713211987864410703230838617009206879908570799338209817862833340893294686816887989822467256933452584545693084779501213397871756147636928915615895312657452038245629910123754320128955230604799096613076770869221637313818054690798892654988954702890004312236838330964128136259742547946587540476076105739136747487912995924290807258588003243561640686365857812977292641210121965849072656202608793507193420989907588781714099980016630052170405434154793424850768347665253361017018041887113140090973704257633183735166246891578397340588372605426677529209501283743769004351244448737252017887411864720549049049449174287808455374103529884199448741040492892599770363410345258842659472921272883911264350806870955573218752269731640780713136350894310235006135827525240894899314201251994426363097158643752083782382000486339307285839990424467129214015799508436709925183906145867898982575179927349018704407899499606300181651808692140475924982003782606537430604858781855771965678461121922245421239216235868746069731471349260601131871795547587689768653610709719987771349749659468603353724168095097994417922178180124293926925455003696753425946173567505862284632981354620550090880490034529418832567593100950748327431965596898238845920457625973901634275839978090908975489992202096445306317287683059323066417927610239140876719791130523048339423633876013585892257942093102289254235669573232727414870785724982580793498862767626530627690225346473795883578310588086601805621162140323789906919455877441663407166243228965720227940665176833286935829715604983356990856695978970466287840726710056837523369109900731787920084430284234397295893120566218575585549646847053045190937320744049364002210766436084897063016686353811188143251271301716540820628069235533575811660116444448384134238250555273814377145167794691303405360641981720947451568910248820055167259123440407171867880984637999134344797175505991512248898246024766604461898996166122415204694444740471353772715431981770501869979260050838314954295404170791413399835452718022354498252560091414735981093719157716235096094925158494033738994426884860151578464705563287800349618875475835802904183390205381444232137942635377913224232251808363590132804801806994294893299709113912998057587226245633526429953496426073828941271424408096356205320810425917014348512475783078126732198844048622515385275794927392204048235058693440393751502706304465986675476470981891226990705435482271799857980010582086943975981338784272268687771544355772209253817033104225305155039963186857555660497846619048553797976298947658811625036169449850394327895662321943713615451945981920911556776159313852662348171911077125224074108795498786861278778539453574312199936859673644147036941880842849126963102961088186721534380930358410684946646759768712829152998475321662255273309324315477129011415646608814271548577581244997073719389679420859179535542618371093166161818135041423775764074029482762203030864074545757863803271340463609716805066241756298738468490436220609156587704203350476898612181294232251108806412222161161633667877583122868438921365018665637158110529654320486378522670633473237604621927717259108639760744011119997836493942445280437815634793704620040096755879423451541693942680023149662023381760271552975407619007101196551760651639636677581152014999717425319057669151901133082297691314133904452726659566325900018464482830581950833386304147716148470051045021691314349495831478350874380251210242646817370134327092205515217951038782128601898006047112978691132226402105986395069044161903090882826778696850037755302202382411180218891949683679141649352052611544313781559343017443207755509196129450170672914050940530836511091048425702834134208207712506937295373611253687307737075562653430382522057078712791057379226739992627020044595520345332722758322368071006407486997463579724990380259640099499824632073216660301642108621404735272922546935967874117598309997008395290532345967536598488321662601892394228138677395271034575763788793767230145481597801994264516847729881194626060744345021044706796736687641685537861430576185847542321354436713741800490035550598224902882860816509493419511008638621287370052762191558585301340038504455023724276619055259040781573049317471577064606315539211354087497715128225801907406007834820354709915981200690801363165962646822706372319907590031818697880891645763745452547534671850730382731679754842362054001993534618439500052343103213496458734011196031072589177735888155696778960433184207934213230856847375874103144404722482454607169673383942937122784157386405723401566995353977292461313677702606662437574068817839098122167253095962049322374357922384285757588595341369628144462301885956504380345392533755004743279345868529216250732650639845785782700965327999840687518495213851985609124538071480632480503737321962417107989691603910624217415003507326095655364547895253005426563748182660319786337105383042649324501374875487039368761027443158207747812205634773339266338000498053230926638069008534350362477464109232544196023872168901949899988225793875664512598460480472103096167268905135055319622479066532112364512231340983910068798974186921466813510210872810076518201337586493254177262961206217444708180605984265309031955974159038787911315103280928429587030982078718949837912740368851332974607749186718933204570920970735710751450122570940547975886350078121261671688802344162834551164987768253454370776830976612748752696755907333538455851418858032858787431030357043436529207152328777225466006683250607202057207134350010712466239796575427485921217208404097643677794758204455711006123660884427271747343673478709061995788134439029975088186112929212260338392372708333989448129098687938919667190662892339045543887354146044840997144067466327472983030025279751663619018401811132596422485959347801536472929812239921044914255260027611552134376959743377014236390539662616054433649409427633721995383413305963499513599472112589920811253447803715094372323470114868774526753267369367417601265773269763477780900118522468162969962885008763918956399587403445865252517918117001453184561151966539369859044113076684366427895304388719052239887027734520773830847478781127265367746984920867252177224049383828564908782465712945353772349273301913289360192745118648589259680832641527559812495995290770191463528516526271206933557583039899627387587823819382778499438571059069678688117387397970205863448101504609795891090057047298041024392414320183069460929148636657693122236423169691260166538885821542899561601018258705914232892962122244866651752859779667153589219348062721651342920799548519181693440311494587770100884277424241360394387268388584526653000281433882342091281923692053875535384411422756553780155842458053118421034341728720438524801334536784721312908566287593772315982999472211775352124282747798559747200342633255125126329763384427223151373428035128279260651608249471750689637643398325986730568328981546391418718102530009395288250159964555536004340463516302441160095613657325110195600170585409035695939005031554464836046536068929640751069954589223765988578678707058763877292725001223794977716671154082706459091797902587271382077966612607418734916589431484946525472879874333607676471424022720445605425010595329718692525664131810194064130462902387501900933034546565651806592930649065586600665110315832645283523082670941386047759708441694764524517103977317798049039295937684484200041735070231203371508373344303617783053175189070136863324163818377917850019247864147331562092772926476565581027827565440968697018593005622468386481799957653623653865171730406096891529749076970270636008490176956982295214008737564406859722604306850119558545686764510367177533273541480840270278683853650319599566505145070457919227576840201717902135670354023172526023692859658017036830425269335715866879986340788114417169809764021017827059857127961857053246818352484559158891860208509804804647375564829498914955497311486389571783170204351857749031722308248756058564777290252318085485991869068148770120031687218287406709331925868573209283128840309690436437164140985974935250457061151777436356274340184770594414283296640822970835897557574267071125598374558470971661800968502879259247926131127299937177029716685697727491159496374475302820429237647910042193049365415683554246405249204709141837258283158427663537426864017421018185163326405022975823408294354414261940227702336537641276584118758681070496957131792570196126373369582187781546395179233005890446141463727639700927425763210472796135902037294017180915104162858671994394065710039521062165456054067986287560309820159125088275743651691068672390342210911475463484414292528690775330526385421709722457463353765321090419242035115524915189215024078522641459772394857708976434599009806284742544019323568498218532339321660716151510451145714919038317820295912438063472254646566772029136957069562055707977305942464091261285542458497349660602303436251130944199542825082156886823554422249810692437640543190568759959567092050875576725530588998702085512868338327726287559204531930021795347884785519065531747165397645736649537664446061088189197053916171409279352541474628201652876035676516917892536389197904257588296677237885376476336898674955706416163866961694852982773411550044827476422992638622989648795964451788268979903998889286269092661783702344584435159619942774436333482698951783297966327789971170270796730573696250286363423119195500255699510919058159175637030209222593000802343071160068093290551936238281050288342974480854369228182027826002409887916934461167778621272970170178345435602087722109565000213825958056127155714018023172352296589160282298354016871143392133922701702087988315756183663489477729007720081544530235145598536472665197732231000704852848266033703193811730643058540780087447791459511812182277660482354569250546685963799508760767090784564828148336578599617804785520295691307310653939326389452778097057585799089881642214411912780191996983867297111418741642126026242070020523234725898037315704056814396657037160276478602082512054453178523364698120920552600521819354592469949067939348753435724916762534544615173686250465570814568771279533468919421504675259593354477394580397567361715338324574823748158071879058695499468409560353651834099343801139621698897358141174952486369174427355098065959720792909920246349835009087169785344543086248611144768718469416027087641153603407316666169566254682570761533473347786274791437174657932812410271488691815415337247362985676226792011780768238143331754919620521620785095850394994158685613997397925612541839945448260533699866377358200357897291149980137237610267282113997261199780786002081763312720585802234607547157418848599203712215324345819123111881550511873474523479828970879302952323299889184610804386604276856169105770701476980686795921910290691075666330399900516073546898318558532599841075643754619566707511577647419942694436763394384927461588980278780771866519244135278709286180385644842340011693907439715674326186127468311355688579934610699471818224274284436457000151602833279519900579991270645833168410190813502836814399270746585325953354954574658040946514928758703002487902681642165859228679991569681010552713158879643416483403100118817386602339726285726451315577271511631751028540270557111455804738346060249237940619079619792492230420073170409032118481900943308724984161024108348260217163099323460833266380653097424313902287623583419128583952369463039990691967564194826178616281142701447807002007994531041723508323100915020010707399856910166483913711193602170736235643302101801044014013065214338809506346346506360375445469611717518734069848323923121246978388885366957446691540789327640806535555872145629215679457458293182388870974449894618272321919539841750592578659972329767283844645112544261282203616874263710165550299787151327782579438028483383165581623323180168856190526458983154027097991642729021354824994012053796623154976753142442419394074802285876751046054934346804514297736374702978964631419718767581582483637338798884074315095067225481679059624705780837872359228320418589703645118535126756935915510539438092685779614524804273986165805675406533382021801104610506456767404924471383037645695695586790194625719193154261024965556327557467309638722478919332900756159136925057039048847480076054356855222772448694597511112492767605994656222558640492176332306209844348532257921608551058838956358117897076944191688060892915998064883751772870237883033096662613021011227294296958382416912013638287163723306945098214917285734301349632173403708452940114677377087438589525867669349927899086302951343071987936709543377521649011864654530086215269826353209085404319878813536604782111599879406449894298075491951079945943283838965106658120606600068870021192784575342591324580401542505167235110601902247080715399530745686905628097353293873657368168610423406526292324666594178261950040562130597938286620624411544399258939416915775972667204964631715796651724721789525005847452742770838541263490389524472728644909806782428981753525730905458705099459134245584274005720256948191164169706014750769917231801625142363064463163793148724267198332834691727550351874979233960630866984638703629284902559959988876437002105824858497142267563129313516263733238158486077479671300187468482360574577707493503347085825998153186513989965509444073328773114893602619479248484761921740825064469651129066213222430586726354708683339032939862730247870915478025271750789786426355386148817340955394019737777028462618168716279969718311139525197073638135305283206463564329101383436086700149086971108936047331728701253664338632544546588609175348703715720782232928596266080968723283255461936177478528771824286008342728478390857111294889819234483072754439456568614234300990428452172853194451021837079392350783079956670867177965061805309445833967046023557077024478985102519520578624450461992535511832435591875110846337235388297548273848963989441994930994614386562086725703365704563380486309103926589716131838676638636133315113177530409122378853863005801017751936392651898281289152922018272519881625021369565371546682320969235094569659817359206135829092427850473391678994038035635948303236334767434229402935307202873312078904307097969318743056603620089934544832088220320574404703949531798938786919213486865955910652549324538493083113931318603734022723698645533100088784124539548969331813787121992810018853958433219081487398344978396359703466887288105579196290166082156553555776251013838259369238225999900086250955480318355795384056157067565616134430351642538946698622361225831612254537833857000479538550126943726311859354991725250692442502513998238353575183277297990747412993449910254037086498299744693976438149786675999940731424273743123033612340206429113346778675259680030888242646298195058363133298440078287929218580048779195770056469091931630183955759181694216802268501498884068833217349239387394075083191585046910548549659383062034595340894016209250393119840610400343141816457940971581220418020625015250216484115950467285161105635499209021732332273116867114550416182556557741417980747779440028641126266856573026308135962411335275069990963802441065417095802418929505467455120583195239985325523873195449870962384262381986262258015969226546393649159861421107139656365010766282379209363330607891110970502455025017144549664014888282880048862204886688085012314556055182234905403725456428608317504180419368437466067616449446714649691943391233091270018351478897449301583402087545273939236169281716739565422554643522645222496300834533485993431330724962335028914120009193819887110378251956916030828069106990916873374726406641539299060588888979382852829338022242569524625891359143853890562905526865715906523946125891648777037381202039082411790981888896843217956650089389139228428756775521657978955042218579627584356165092443553942293784313319982014221301184136968163868216739556261137794224941802487208274558882730228235399665785860714491355034550022901693261457241809235610766786241695633867069444048449250398037795465220026474814575479468950430358261969345938512820907699299744807405243829230991515326787061202818644938284495374742458795007726211539530386945960529826827618064606713051279110955883188401872003124908481562752521989602557296384689085438831465119615064693804435706579561087277132564713291352345287479817556605424643113019505028256053233537058092956021286461634740308496404899803183649150649414371760711423425945944490031374524184806056010270919651460610465320267598191365206414971361016102369644562394660653867493508680442226551910444852301949485683420363030194641926734800754968407987378958006106882242500075190616691328525375453936366416232389129365352584103824498290424758469812785335813635682781283192133762535553735744161496532441676927209457791846594705245397092813876183756290036115642294511818267898410664344969800214520944161470258979923884695109792460762436218434609771016201987116270175434740808420822935486061446801334808355666672342400228208115854400142339627798918339688599241077219532854466375757270305864991149831694840341794850009641189184729196971460650072798628049111285411831562996697758356184660186285819203197266342332431610702655207305793426240169710934155222255457733486408099984593446229638619074791871763152792154254719523682135030452207525828558178315943101719492424968674204741644900377957153888101428603047049993690382649920916941302759808490815345985987795589934461383845770762022048619562039448141815655602392342731930718522020419246632620655760332506422461292963415200099688850846075092280819295683256105971527082720636340624196557154450073864467008129698106409563642468834193179271780283375703237828901919567024566218342547263087456978813554568280530429840742890950141416756354356181890572227093404484025846082470610985866149204847655359105839103896108962782433797378267947007587255500019934049490814732572577829811908687216060587704846577111833441618093380829229943349642037167112194137228191562355488860781621390303513737327850109489159867616019380206215877366065093849852338883108767816940968873687144665525837173155577515067601166658779933151226191644968263710071491899213002327361002744805128140374028088817766909161202688280096171031797892294839839840579220616193213223310496294712674745053301297507897669195051510265362240753792949809361684543523206276690457957017065669928855392506739941673876589766830740542743919277831244787832768922449398979370767024211611207699202736162013815174189471973513631974200532641180455125670745283758129172092066197128530732992295348549549277597998816439107219422633209748854928424673220097594766537555329758011498641621118240169277062772863590333808706301307123944978212485274355924908025547272974961501554841922990965892369649556731743432183013504415281625568996431363488742821771932824153385602650490990997828296925377556768425905136037656657402922938922778369002804069615142070937825310412505101168586121820064434897299857138555797762412072794263089033592249421049380556152556858046917034534637503409000665249963000191840786857323282296980101791392710608444592953427567649465160965524627689527795252541895747265564031533045820239202278192772792386655073832998947730149548588356026839763902102675544247933288955841860248198345798756579847410794502159165517660339892144084501257654222736123554793310218988902556038328689487503441180041662076204812325436444596429434190305167134064757857632111270837792394629516575925609644927413291895874454082350499882905785646787223217796928550841816273384806439427904500896743522174503717773019077432228433476446982296093755226422473885810698814391292103849077867614405975443348757724449403217886356289004811981002042588985377958740261117672007051969495849196547770410332328573705423620908599729027147518816006317282583854815691779114935491841547140626752395330095827827828007923229084811562356886411890577682722396416380892466945306365719244425948218111333278951460727416846121550395150062258558773014316957182119798334789071793694267432879509933348150626267472993982004168237979415545987114413392423031038912478623605579229539151690633231088816440274800019877526360915044873888774936882579008361930901516720929343923299253952303946135315293443473628992629873735927179977215024972511882188209447923052750856930375202896204711795865124733898961726134424262697845180080333459405751819292186719792200953464619939906435981254632634414201771869666359992911148484486839690492028496432604570582490506810068458230387380321364576062985606241045618744382617917929868285189305268750630599192239979403454965238380171658500548561975655366933114505462247859876981328158588573956296114873761209418633818321860970246721974816012450730192804952992829087783444086206330277895328159265507184000453670966297118008680922970245835492511382138991973307973522613968050842458165152719838358022791718197131840877886062142852211274432101701283276689648666800313563198915372160750999727079768392824050987614372004436538656095569140410717184938150467777232973120774525083810301926175347354581023335978974443880113591396678046154985260036841603847034410704008835881819108266698418486526432315944434677342659045703675455349082603913897518659012173063050977273262877886920642382784703665587928626920136371689100699647557037170549304370685973147806375936721049399311319115935917347949406900645820851728686530318961645655812908461002699885943079916406921556818391257780577528667745358596185088431531173001314069496079851755701326420750693729216981143311476122066300820390141287251385057248498514454654670003879540530241492243130069275278384417801555967532030376205473334411791320515013425902826633505966551609986064110278643843215250307443930740051751423364893174157680499392182280198952530212646233632416714400038209971145936809500803685934571537245107502184402875256588873858551509054467097700766085678369903856839740592121283038920276037350069785532126949966739673530979430955476536632067243070858387129183559256078026191251570845451861938169644738928196725285608380439806397071649100944327596376902039055185379306245276621200280974594730046867479190459551363532694956593807797080251221471424917690912954666484167641853395039118707338103627528224760639983939971236728900431549680125575007651278291805795990248758902401369960223107935405332183687713424777116838984020543319712774661296680485776898881319397080351061972129418244503017193173494601548211748998600480048455672069649038207996888594273969992333497366240348518757091924157539006215266158765804725730156895914646813875286521682114328473068751090690600358973442200668655274649657004827522481441509569571600475060233748797332173332204784914566191126804451631497010221598417585110965640322918188944736076014753779326330730511989997557516767639743327383795402652354202501288683381418934733736501067857761185463648976587115218072326111332914456201078679207149615148417387437151728899433760208305512900118439805496093099445620834858029456781618996253713517431679645394002583249451340706834268068581159928982898694017557470313811745944104440138249646072361687246895363973524670918744542933429800847642379967584719206093538414943864138842729902365267129939455665382102184630508212792648302297999276086309209955775404895558650259890098034849563152602673581778782270832754517816167845849979477523499858881439716117597394952072590116394376241179084641497995458624341519676471896650399568895784955290305930620450788582978028838737414552449678546568101970123037060503714025826875852629895322166237810112610594741747785254418179834825837080407451017417474155995883159395973546731579304264870573583663852182136390721759102067485379378222484935059117972326646024231514751068863120591278616139929763404008853515226496557528802662411611575182656449622923471106043703099969916572454491784998049342282856254185826068023496040448821271462274803916111555053532325010858333609585123250995269091499111642948156778948212813468134103218643181906695463060524319256714344298672271186178108083782521969161890624540818124746694286587305266171471387545134150078405085561472928078755353078281979022185073692153643442867404256070128761706359175870272951798615787457653792989745539540671933144172717968571227640411397770995208604574846950878042244182474661866961411955006076294575439456538269214316834085121764933997824314772105111580678731354724389016171799383734564927505049478602295206251460150691823093701010463715648591575898494969496533856030969131743338096752094799611656722550283174860330464705116586391921022253481848154740263815164296019056785844429936647613843741035646993666431695070952544934668061982059003818581905288591444544657765858595758083070043244073630066521412174680093157728983976150607983099944321381505315493681535218474186913739632782386815639568800190183986102492493252832710063273407104990939133031169656580916510421574538626217504862429216203092028203434460832300050010643484428984096498014022378795447917866291468372907691219317913054561425625774495150055231298319585510696077839236184243039498570991421365063508383769186068402221375431864778797314737315895370147117266091781509774640809294820363093049465640725127934511517529405692920657438341855580588500404267064172004119647276899067659502348023510821035002109895509273490305725720074643783873843462656796442168751471041995712660241319337082859628558742838540463371209798391304443818931857970026488423626513097816358686957387921991541115973940718775993378537758286085921346397247979531076166844341057490423737842962612955612894703496449278535505790374346776068732488548254714654523623252665786598098474957640483387917827788784346578833559104529939569981471084233315366466164407209721877267536873196566151359349049551392878958114062836840406500418117187890287800126367926422554682800352028583003071376716776538124812402334649918610068976043934825432713375040390443383941999191260865820354568862568284946661730535877984956440259402115124311471508273683225216339389565115717581145829521347530603188629394758692197209896940633419015052783799479847813613762322768399607424395935705577068573871653466407195208999299382648049387747166943090475295931696832955001187534333515172476657266270498364080609327455630932960854189024513012195277182825387712499459458218327712357613625386228516600186953692788282334205341231091685319162711827537865176272373586836616564960700168858493950405426517682692025638789335295921660069453241247640473167302822943347569252468567909633491112669983698060542877991802628507251642211378900650883379160236002752302620980372771326247349163949749296381623397190906620912754377861046471988031373008966312799383526228651450627010022495798106577869681879462458632838034804007273138388442166418894650146424773028091550004270684191901691122280242824871682328041132684264446627808972109024135084089594820101315255662891632495790641909705384752720238524026364484287890929504603157231647410230248776720131230440457377694505145116044339058771457133178480771913333982551050834789062536939697840788393858124500876340078421894466833774480892919572982473256231858441470847821514166993485324073247817041179948461937983250843873753682914962892932322380572823777684415540823380129936977912843587101002678883972904381577137980210110019270837038644463680384355860891145634202028054467936308763266639332875844404676499166466557313017243627924136560457983413300978727420610156460368167779087348367579549605638242068096190467555160151661730703180019546241965312494571172515252480049010980465081635583145222695856419408881822617132317202459461972244862586251450695987487979106717906093975055411673160393547981298256662903394543197947020593823283477506113163409665195224930154885242281161586634776947638559623963399580789532380614332593852180186713188362084506604023657337296459826616092859510607899904397265612648633478425566860016238249136187158872842928565859326492023858968657411947689848298816579433386273922295656505819974951053101578673957286834058587868501082266428410540987668947947812508275591084512350728899525850979816364659877374261664156424203151197944632722784201090914823852476287394218105184633735870968952100178455649563145726945045815228128811889730209466446526183720058910330524306588540691942659190313961877059321573676599565241069598921410841556737749785606275088927040308222800496795394290886122332507440773395279204058994874350037853147529951197979766163097346535557911476104938779984723243165177803197391236578895134610568060556802261719980611121521218186802682184985177470037884303784601032068610764781397785966067061123692648800799013259871610882244553074814896361124783244313721378112565627616188334681773797597630813276968081784618842987062192872250913076468949506225302148551118675780508790278805096970592167159456860370335786715456025618161187379127445098854576041432735272660151683026359524652871886272668542941733609184570626199628607005804303915058971610572935947249607413743369617313307091216679703844745971420767512522617612986197235233755676411066099201921553627661209404344314855007623619229981123889978150111115486443655833697080029586215224553175343182987650670737036993986558932763259707206653455473337493813122450254101835815862908484431680801277169414276916922250065792288010407713419961331623256186734468572877690612945964016388498860765113645999958544560199456009564741788362216803391261922226572734304344364227242906338778283754566855041270478237862504831308959708766494138241994791452518209290051083680337020661253923252750936329886249620669543353285336650761175117997379990494903452215323755050129633806208408348801460885046345289244829671150121348780439502914703319325911999168278332229078306246380590251997775880181376263999408885713148757900831877032976929989414143775994277996746140320112762598581417904177447311158735452878628829791957028040785986449293961146698053548684434927254143421452121935616063083696221894047572195029029172646602267640114102589313838320316938445971902043328941586763426070709682928425935577348843942833256229206669239497929696875236430768936659832588263854098994967144864434780880990523499172212726981405465521043870841716689113290474535613425444946303927038309019789991524473911649402289627928042700424122566096855688358675081675830242174711933666206788408495623644100957105187671050959389910882591446056303637060508612520116794119786351845125355542956447105776921501518030233359638836494701143569768624398119894306927010761846571336285827873926471415163985530084702459602538863186545883983545773967411195689998331580885153978584184629512070304368089033613336415344122411712894434269147601306062069602221715749055054242297082735507322516531724638011976433464255848687493449626974446410718828343440984509945573085929973333954555367137679747890169833531233058613816579504147593156196702336417436073800934192320501096236701596868265940114934372274026479884877455995103894352849795611279330920196635752236780920753975792947344856595337553465720631698717333521459604559611591904118666834521827972228167600978382828618384764450676844375316701713001380006953979945247589850015029424130765125143952379009240985283190392661937912783686153158139677780700826939637229459880599964251891301330132604643528908129710501721407668863639888111963546136888297045421775128081597579460188927206617105852805927839024796036234549567580886230955172158045654043416906605603401930600480710490242833162856814067766489355263098998415538015094513151460073234339391349206752722827137930165829437929930584393991355383644980306293237792541823065523281913653669134771910114033086307730585007128406657837914337565887092340880924518419952903452522082786774751681554991956304282027625841768099209937125214005506983345738637121171086031855195978711024406756123955879441232241593999135834311125475921982047122338888294462314828899099533990974688206647815444626383577058144184602034665484383976748831201906936211485184076976734958563419529750943233355997098914889291500359560045278195473504735273693308033688901352632432918958338424537102522244054055899885671346684611472228780816640174965397610817501033888217934465411144036145899755176647129502319554699865053695630874092124031408658233222969825299528201617801149493682338744339598208992880010491536679465299761980067486184738362542743879914000364475529887457331715241685818096039667543035638691094017090247822641796930042332125507635537886845727523974873560082860700608498854157347935457604396288891067898889846090396268693742978377438191771227526042597499381035547683860410072549960942799922482303174860485059297518777492380794428062266093277845302827960469013739721428029095202532860284820377145067127957970357647232930685927895083463030035127175530651801656865180204657204462184039672099557483310232429524284668778056021780578321733261334448121376908142254512025919744186650006979103800071142986721663315943684684081913162845103485496238530983858022722343845308240301864284157759498268964501702642383001958319030571640378305106562367466975126596090954504294463655692249741754826838012857908260383286052724238755173395706984257064397405550002091009023448862167476535885801518223518339325061084434938482133233499604264037585510841012485008608032084748844745924029018168648996585183724498020711806811686948822679393656026150965891258985585684261565917223115061544275034630629514976398583472414649956905951820861827098696960844711653445202898255806041728348349695985592484121502814056220701368667299763189695130148042885291526949496826105384549278203993174666730470266261252486997444631906781239608445772228669081889634277776378684335391568683171722679312000318777153337804640214147197425633960379424296799609235975877153257806325557209596954286782318400562517989493968371816072502166539726757211589630522380965452065475214660953439514557986511472365911768552376484051409357603125562631251554773021597815129348060598610092384996461062790010511969638473687995802519763763084311863973340584933625550039726171668288350675867267732718292584466182676747095542325531290252101226811921547303366645272099844034527345375316095971390737303580442381115439169659777588796567799948984385137504456766009285669589240375494212563123457839135292861746955867532162564848528075565956847549845876318159483730590810493381058684563230623157363157737949101943773953949223622255714688840611882539288294093669516062070830800088280392362386010647472017483245521350603264040498196672091510055454155804297246984694514737104262384072536943038710608078868429455211990620024587412172418353865949854780977893086062041232419556927155373969977591479879764665311338787349087831463974665705697091007907518764621802557024067710086121275252280999183138912314150493596572293133142312087620521444607685093995122942617492774816492489392462186920287671513017871142015162539586374363093795348500126125858649627785981984423292930428372333672712547333767940906575644060820028651767772004074430755655982733661241641391029505489530877962406675065600162862535093528193331537553931083460210161920658409885050708390253496136583443573555263218234715472279799379296287426116548577646226430222305473825196892420654485116953523418071541544863991791309070716056517065333402604106548402752802989102001745695736862354798487295501671981716680105787188515184187749967624247486343962224193240257130052215120274378917110942855906550362385790773300797235851335318776916121988216996728343973520912568234391375245227877428898399883399061133702761908809212051424305188370519737750825225142724921206284622525678825601719414724881003332942653934640316133057400516677185203814844239575479330113815976878753281827672473022399093887743071003840936805523717488510183868587991055140080536307847711496236920423862957929396764328322860705729641705128522072807729993584709723993182638991076316294313814317652571671430693650601065084989990696530452948114458701786962209652259464701026924379161120186441343705676796396821127501190681599154782311863559020176633818798684190564232972527894676012707999331685749560554102217844550719961902727682889038350004257624302034096217646342747543861689930609529361094720821210656441844208387549245090155601297944915769599722212843310617444260557996062887046889150288223511551446444633187517985237756016354612704787979455235229400543534963115013545120212926837259905463531906850751727855461636417183314385758463959561698176030560490317448999779408448329162372472163702392709183298280555542549899455702761142825957180416586148369927691208443073615141932293578564536288481342339583463074124743986204282433652407093031911213663201809598204063405665508082189253183298902601295908945179032795508774217843507094085522124163571661432380955131031660796837002870611756780637789475641749843182564764507394364109465606164631310241409217529511749492151648357192338708255423078493263681371795516437856227604950423674613528591789796567100153495165847620973751930117971385980773196965113711983862419404033499057489710328671954187939344232847201978575528859700163058695069896278829992353313316426054445497922856528266013160759928852925001545581784400847771794726348856799793774608792852542638632622034139990563992792524378826924908717070743197460558325551032220089664232552909517304792544360074798044163808125235617983292449406512176630445228043559021802030137000047545016186332767727294888632907843669783884938775090962594756443238223749070744443604347799735198658434595555882304457974007892486592532268053411164030375096670940355862090777301231490301854595753184173164269994565268299773768469001644529247610501421151731187251705547395308790078190930540761149011898131358712344745269290426526644423709592057885864407628717311892665665151176543897960920458988623862981673026651557721662445835983618511031875755475511330762507240311378343738742495379094227808858253802998412214885070645659548181997629904814144007468054965864170065729468331984746840139350077747710228263048406223741381236518953478935428900378801699968292288194042487086527414012303916803079860694648422258088210384828529081477388919542131841201791471479059054760105454703072977814776960889848987848736711222256074093035937280123005717801893311328342906461697335404945782068376385076300022260732760207818885938821885888288131546723170092868704847546954140301820371789323962046955002406624211395471613954379960244103352930403903232604582556328567162201593675777501770616638302125652110533677933872647636737339072548632835162634574099226186146115599588140857453536811591736078488035904876119942341758375951298334895141707546715811701610474749677830002201460711506653534716038676734841052849946171150217640211497386332625198689212230792986983485488073085225566820366575840894471690796923792822488939345271525901607563610600623533923198870024110546582919625016968065697710349210181017615225793956581243788061342344769851826936531873412292053045521249502583486087425908163614452632604920769694301525668389748385979095958670157164038435632724611604021256584784625416455869375555171143237307830671593014283408384561817223961504453953767696742850159856786433661760214691627443613249353842506995059470470479277036269574354932390678446782821616017055941993113316766483708976237829017333487440139730813220519315899896834654697804000063652208587369652997839461882909313889828051875557137335025265642435527117596137452635746069550929875206561372447575138926513586697379112290260077602941847673648132201794848514052235453482844367925588371634652374521110472106358448541664362535694987876360916311412925401389492096060277326458778039862091565874459894873809729257396812254191358582304463860689041132899707049546352589076009445700024648815167817515318070934837499505126761095127047435542912723617584816404444536446351988193821477913501495601288573335009817960150596848097235323089923876774426651439046793349685560526637860868465101030330843530799270237328631783302942078945299702991098484312222088148213410632084419701626464544790523090731882471618222478243145986308963854365583529081170096860335288086950090368411695450140623290534995169793265005312450099692343162201352912691456864054272916352687869066632356363326783170753924080247603153116965774825372692780163363463141624932595721738741845403839424167163015240372976788424411235670891021376951672684665416820069032729057105733576662118794831876326914299637215966197998934189482321588222722450522404116920427951279927321711799634394659256224614891931752961513098305624475855448753705908203592132799514587997161831379185862131110453288695024730719376231967246548236280984396435750544253320040721320926182802605776617154180261995940280870788288552502575451812515959252615709153957959706699912868770355621078544883891963532212902970096955774238120329434806121068346462730567357854510133988263354303051633181218320996117687938508209915989324270804612019007304369782503168158581030893446562948890018983807396846390796942590797369708120032107996899080043089672605323844469651062119379663278234771315470486820472275986922111982483204694880915291459662214285709979358277084478440079075892339175726925669602307236190974312958828169196718398795158764947641700375162932589939088697221879805380257288073057062326013490863673873977290734117513126332599311041765678984763566215105254337861553435993206656962417838571479889167662334809959767047481220837992029528349863937137296509739718592237767505219408873739082107617074546777060366510152721020724924604630185131198687626885504767611026866481910840458266339959214321403051226530517830180260171166403632883817507475423157193413165742361898492205524460713599260751159301630109587245563719351928771699670266978143920742006289911314841540355225740287990843436907633760967824527353804377712405051228503874748673522146533471523975355540280841421371628544673330544034126330479713802979777738980786787576595913738347069416876775475242357611567270030520807278817222175451549089115657609257242505151237361852669692380518203984796406389477453271586435701984757455552030098477099022950846662517850106387601585790328909506343913995199637668389397366992136774890361046717306817679299732554927887664797947124912776907176000507010568979107876030812775182629111314666974473717076142138973594882180503470198471471303037418212478304019532572862362557640217035601744971539343879824465913234813507054692224757231791614929331411417894164439845231861813407933698774877553000592549352452348229980357268024521778517885921883186062667180862377886188587718613886681038404882404645066646969628249117572867451426539545942683940985621496545236061109493887539822080274529109831488735682128804316068728627157065056938286326623175572522068538037614170697905482197569430185504564207973062985408258584655020410954822249582939095670321744401584278325729066383108313345804633469202976203085111244039583885721212060315575439172117660622382164450135221036258502286251399592561699333046761236689627513324522582679232351451532176503162880463533970216973234448385861710577339651572208002342288504432438506243788333080520914369094050585540801592096188191786719014397596063964976680144108597264337908243838278980533945907107646710696541301693011409819557988633588355931507810036072502527819952547894515379316409688741835127339388615444483673000451103685350851804652941893831006174188450257028615059802422973569135661722957950931165035921423903988904311336126410133741280487910779677637727943857480921706785447011383762710794350087674424094529483387768440717436407547343114542320261811330051724425406623213620759313840769911415008407821304160659733572106873265861147592700126176179345244501033761616668403497630698518819087329092464091966516783622850751113535889319724255799996686085625558696539414431071625482924937075074150022862508316353813798757848638277157443308542467265390060831780820959275387713026226260654694103404481703493702503467064369870274790132606862132721367746268754470938206449485152803808789133326593909025266036998668183051299843016314871323211017011740234409204499159674551385150591322779392265972360154723262116483690442104810541808296174680268678230875419183725815416901276445282676564514373526610840520336222813757809243504258157355621438308094911382720451799808859743922631124001132336984542746619479075171754638360947018366585844091866234233629456132272730899315128823482474116420008248092920446328305967818317394898228765401583266891731753546841878457466622800893599361581979179642727090885614146326734003248651570503925146302595610328508350580782446976136914068181350942866471457006755496164481053664959944579894139018439628323025061402004477578074727685570186473929474410849660883895527532096356254512250374238007300538474928135384804490594962298646072005226143151894300953449511609939438458140861699932210958515107095445156297245010026963237242242680348807465034906556042072977019796869381079986103334239331759311781441857743728414299205382695275415436675853053274487710951363538557107913072845628480563197104917315266233688164299390431224577833150016618832390650604055938955501956521936072318661991595962290885193735045105844460671291895056413227175385780377747346681614267770188077172250099652306147219754386606295615851756538635481241524868405313461920552369172444327495291501116141119131915716483918685999095176439265562257988203228800351061805995484947259211582407349321587114674263183036401137642504811865189063081003460965499162665895904943005816679665109799894267163966622478782461434406530287338524750595139277593820144984293840824247656314422654639789969070481563579750775987676181953291491263711637881585958654546532922683333090175120659097465957024134244744120455454343787175395045492544033094717709992660928794690849761220123178351333876067293561667701677914876124616576229881751295599641935014238793440673590143745597659153741184474608041056137921434754373494724924011241895557923640315453351215062835102891604023858215405490838310926243334810025514536481838370027598604498069784533841067663527030265153265470034676686692440115255476232520774892831455954834755819347662833446166567440980701388597898781370209446341446679736136080190074782842126258125084505148708072109697744078056902118258768332867116018868445833086973940115994782015353964062508711194937888067413423078214078205577873658334732977547596070945735991810193104578263028817497398682036878746442771294923108557958047428660758756226399377295590903462114353937015165917641492918065947468240380594852287929562975051334830507449273798673814785932031021573102759801241000231348674565676969679224828909544739787703386353538125836205268163262953121595054408737799124314272308216367681329608894664919778172289696342469102020673797983464541245564137623723570144882063623291160069974372837753284313267198627764679333741235514567079904274805828996601556677729105189798381042735978720849312419770315333018594284229030851248436981715487749049917901943505927105212189388936655544178790309415553259567660788917008746099447433313949244747858672202748498768486181197191540659501607489066446731260023883516416800069231650132007568662242212406603556298173366332760135302036386192043545569137052764827431950412493497108766736042394287124262519920824255784903638244878400716068286376573873906151949032606111092823945932449343722927320925084851504630767519165583111848744150692679923165795752154823327180944418113630155850352942975502819084948854636428632578095796456263792619047162379268895425120930216165659974214232965118728061904081350950721072470095303108063435279178331295434420070482044046010274326707119144893818126819842051536506573501418040710248464864267954135177693057538873732279432546620598503685664803010882942320639948531154677082471097665690455168349035594958149297097505356204882470459568320435940988255738627232693671798902223526584067305422745221798906997047085390664477895707736338542954863264763345577102625432147869993917530031255265811919062375950576484983783897681541124735774044764014072717344945301653212167618676233036164919497414085679216381912732621293665637907698176343464363368368443127734006188417873702540313625608740936367422923838774527733285912152328755583374196942788875988813952009428991999804259455800087363270219972141169333382609639891897330706959387817603848410213507888558154334912807892975979337986891570696400629960029842857805817998950433497169531572799534722672132048812778209521157588339907838420565777746885434693692765800627512604202128304544685811846142150050885104668205363761564120686216924850398170423467389217663402565222572467391133950166188420347781462022896749208978778908069175347092569179042482136287167391739886909364143060436382060193602942990266495410166351950137500579975503160045600891169182996779110182687890289202027042799920817060946702659870622942535206609303526536259701621294812941284725861820276815042945908877638729143763634506878858907928584639893652669181780488357515380104238779430930376531281268312254837243715652444286977443092100591151734176956249008762757191236571281578384765480735724803746951645458450200459064214899607369360503058012030110849495705358080239812976471548325613463795906979584731099968464332621717485813523276680545775220206018005749520996528970801211298340892162909400785116737934889728490793629568815996809262248809740092091807564404289182201923362245579036213434261103533797554823709845874976512269536283112728240548126549857881504183732529657160660394740577174913616288176819679758035958811219362737675338548741125915077977516671782256359899526500254565025581610099000758113194890435193807660139503828666407930364750826588573238561132078930514994018222082876360395491855499923947488750518894570429494455042220976344016895014571139703421389718455365804034915969324400216246640412478105905198259989587827439677767894067465947448254966050894608730569666438954164857627990036967292054053783742546590055574637969914468540336922178113956076117742201517099918549798633754294417514907818013034982223205656582551578229847916692028080307184888444990518085526414984990348293003495072030268060258311348621893444398310414339747360027124931439348977763258344237615427866324294054895849207605636989808243729954067606372244509873359898773978264000857156435800199702360079929927820651466494794962104124393285920511851299320519320428746544255674217420455496204826499660446131955428147275267993888177454161545042022342936455129577001933122906736121684970901704364571272174885329608293751356634260614712723130087761299695493728559606788538163180849928725231066484090297058088722873703645894883715237578381470555322645375430987946638045885547223281986149124447506157402290347592251820898732167397550086277997494459722869154162574366550772761090408573252339776845439488522877954648587613770249204918319601035177519134220841212276479954598581799840696508106429937260387682299705134382503988663349618522452726825307960283107661078038965826853871186232396991639886041468800888113870681939906747644329044388592896185581617911275085170711632793148360502947587552081234242418449420960507118143955335885836375888389607843198148354801180906434052756779638851576548000661868288093692046648974291174730521463855407510280457387394094452444341606708775757925535030390071793455530254764843966604400807479980477159620981015964442999660772881725292150215415942457220718566013004237934282076694326837356092689553256484258841792499912156592867554378090355338831634256443150632672491142152120303013402701413898713158581998872668941621067587357111204548055046708756133588014441391784463462445617128358684551550642330486985443308867105397390282954117320790613548921999216167011703531187132459534825786785192100345709746518138571627631089671100962697918407767863172291782268050405094032884310402741160752704319542604124947798220267079810015592707532143021413750989913653037469324504133101608929162611847389961068026887275443260939455298712361044841790459276846266075970900612983596841821271713506753578821271863035949921941099942559608227344161785318521711343792424744954071117747106476550671923462751817922833052985799766637920266942040793300460910485791759303546737192954221861908637233193860273524078287063471655396805246949625151612904862749188736288595993488430870638913012821085439020073053959550679798846134945102042172450440547607406602707587593341785450577168068874144167385805862177328622134454609578109044569469116717336345526639932065447314106229749469244778230590505874922281580534556841940207784521740349506727350153104800986045383654554649251026366082886127258879088352229824763060554206984753873186586614107855824095897952870350230094370505845137787794782362823787966061515824243996250860424385062398844562609073544701862617484051389711714508470474086240500869292857874884371878560905077190299246075521087533439001311973740466990944347950440222347102001452802484517836912306037743220470339648600224545449996368858215791185024166569195446780823788525695902352458876188339221040867898786608445507909975645069931383146698661150483285552185902931777057458719065545532072788735743169469337417875172126365718474001248295689227420090359979776450228633408095979735458455195097667509293039126945725432459065341211856680560295749123036469381582997397828546008552592472969364750665743624018150751257079913767875454430291381244289566584981653539695336066014355630774588806561393865780614852643505644341859884233165851774048004015449338182378095315607846251576885246324297445347191200371657148534321072350030534911953675241316630933129612467755432184535352377875578568485277090932820491474031906000501794585956271550045832294704358292199581357482948502633961879147917972022596562298320310712686971742415326572269517547603244000902082738518194104698870161216890350389863071589794715519859475598613385339200196333454004286588099350606212373863794564689756281698000308587625373062979171128905270798020992625497545359426397128811107856065983833431707083080752865835732497715531983812828421129900680798099024779756645724143432571387698501733656636536178648040201367278346263274391394983751846647972612111960465215790656355483175586976653889021745997118711481748572540156436545702081375223608195035069455175243353113556781198023273509064432572687589076592936768469295814901220797142405128575870902727057808951977577213406071623279615671631565606292005181125132246603722689680503983629140755023480019978581936475834745580697948901034396315250107316204325674932694692130060778516579926557287777347883722730663659742388516422584408427610112528538532438841159013786962181484368943303575932383284404835683767488328006429563495136136314619358174000430281399598205135777285036149364475446151222742809848503963774245672168131050251973250565756864098767136995577386832806796313987279465378485059533688928164199446882815075020814116584816171202352023992648057012963187861298332150496433058925358297911410163136152799328626742149972808509970355482158708694358906092860443519591194804931178543894994608957751555891162382953684636565283045577043727269233238080682875617898545519327381771734173830325255472771815168443264430169300100393017639603757465629430476079429571465760209431651206141705104520556665256905322592183340758851237666858406513781237016243282390072221344308586460154577225472040521280645477488605115867769722600482774693970755372432436527067535334180296672425650773640350362832380232929277908220292701776066543995522534033228619902915793067836379470733829232903167759847467708955775502934547648253719890480269235957529485854874667796371657693969124586599148211882974840280888055415818818845315826505182164888587484478930339960243711078760034508487760105445737473703447945127390489309452582304789052038199329364919799150451930302050550588718169260333585296743037097667702242944240400260271254844329224002631642010096436405646470384231899780288224808443673530621840681623379367664081153776181841963555964831213236024577940644446224300518820143741172295188009405255325186874128127024177506173556222220349083797492195800470881716163998265617428174422052852156243385452249972980551189338637709565911454232920563632720517711153095159241516288691042017331120269929700522289642097091736216290792718787473627564032886543021092530899308123493994311963866641260921421831417225753231044479238351944314811211803101808187053319733953171182769178394867963298207300880090155038890544721154217759037080764287870969684966849181810003009200957536199151991685912226448020763432984554174256812896047276401192463309717159727053782952782768912378687506341205017672817530437412661615063887079852299013172345765138421979020262915760346822724814137930280679541888841686882623560327995813718352529860629619218417839156725130362828408613523503666463921907212782863111281543344191567630881114267612167440818387339145462667714410481240891234125622916228382745130109798730395099831528786498418938609621660817591343965692171811236710283739798204236033682029073341568950075312571655871062700725850224698502649184047395791870939640466485574878588250068870563070844905862928359024019854346163480925859158309499725317802348451490520449058138983545089328580318055985449880336299110230939263755174838453405151650360961709866830181152229923932277135971989455282335422085745615730662106101680871074752484207630973791781347709553719918881761004392146099516238464460185175237141195784997291606809729672892246588032425681682835918194609278147312066775666494462774260139735945507154331613890825610866401426137807014229946580089604417686763512670528254306687882604899078895449131207930193066584739076620819573425079677213370724504054085595530254352288573427268543551560879606958313029672630135125970013900566983821869663557839237190822068958177451133742714930118532027275595055196210874456444288574878066127745928469462774752348724569689875094024953347224594989703423446097645249535349669574227420440903122510377153031101720504081734021330648560101964308898835394823559510249218773715328639456607242661049029015556098883116737700699671149226064186745576715578198853075977215725663630145887317243698794608759162385271845752918787588891711931308340339588978577175778910600767339703436671961380294444724728271390127131503606611677119702176225595439078244277019969606448261653054248455419714358083684999749523731534055591230904315254594203419111504166063978574680303409855020039540797803193512267745872433360843148180891864354471191165789753221430992496512700107304198534382144420623895163400445001766009634467590767137510446731917226627578711781993079597329382522173055177541743558081042987710003450014160093112080753902679493194741707285888146732815898522550353381997374547899868141086945164669434133440694459241577410618084764173786722959799873793411281503982557575677056143839648230851602638112688410704400845074681654755170000396923888574697985370589632762151250114777921491791820836621337151754035707747780151954884639397804137659780059074977592818169339119922581401137502419122800653361320803705639266414734308475124627353284616708784831968389198881399509932824755709983835098129803555505865756966027518605085813705864792994587766348014155723059410156395190115716686735638458878841234946868419396920191080366073130739992755777966716031421118589167499288662913947690898069644210317925142190038067272887714240437761229342486012980922479186334812279714197139564557945714296403911839302096181828248282364857580119651244089042079612343519504969017717323294994315509140966097843883192073992562138447195285190302861367203782661732661144207798098902171163961922001500484224454513799146109708808963794481379251917346016088180124078588953917702281566985329843446419683158793020981835070509207990687306555432086715099709236871039710871627415948685975748320396235187511961125177139882712898591364074564950042321373184185746187854046028469910512122688636843097454372754603521345518411684569475890484913486721035252423433859197757332864272102440501797048009354818921670858547526221558477845638635471317609356131391541407735204796894202071616762588915420813051786580337827012111764334735774355654195434895730870557246842316464592207118013725303199270113668638723766133234560606743191307152971529754821794522056723628869567363447958183037315209396632440946889103527750911278406750465872991698662157397763560394054386812024608254354044675312351455769164138878428079236345994213388861642154958895231631317031145637929658793602168067103608260285507042805629606705894534069523788756102295165162700692103439305365487429543288615972169154405304267104132869950668188965039778907442230927400475821457942541901914341753911006166844072518837581903510452100076412187413519977875903465147640004939263953772365439691083108938270329929359897442163245291113887621708321091687417145608549185814852590347396992857341293557871891534846087950781992613477404014745778823917200615339597600118791916011361269066802898658583667479753358502703850195275770742065523671592059839433025779402751163413087081142225284805425841359597896763694489984749537303296661353044037123435277975959541721417449688621554688278482360523361206592466933032363308848691474688354151881835198431901820871695695134486510890643779844533958495493614823128644583349294772967780074687797046750119160557643044425827786213363689600564126164717916976266897176088349321375174982726193922208868810500309722045569219171859457137135265078608494294051957056659635924269757508872291659662055404124729341882951840971221805937075544834451056892620987567228066426190645760708130345963484935413665329534097673896537919132538268656316588066401188609546363045410422931501694445474432399765416419470065221455351024070188856205563018876847211995586616698528514314718901938395037191264921432209509273574209792959028757598251735050245627101448552044067929769214063942273121252393024967692811997263529308690146495485539948490412960196012671531917241694886919187593222999946717394009376732113278608356037631299229642394255090099169831386200053709992984943037677343668129239598477717720203929511254120408598660899657211295598087707554955888284712543959331495295114653191002416647120112890241078106300408879004352198734352478297339888741272116847139874265440564201241820974065807874158030024104151229075572839471871217984351029430708504615177838072658601794384760363778550368746591224612769194223688264531423068936331187973440659947111907022690953254949866419044740195859593547295117859160728969575427744390433467469100778256921143133616036665274549231857190823301148650271534841089819134805781930967229028548789841557339972989646194853442112993275963290527278938397460049683877559072363398791119474339762458998678628205247295340402196947824430827422586928884561844165816098121807620632623139462445611325616916023315583491303697026264731571408108026355649563888244526136194271523204528617587673816866047056653990629166739432735595641717909966748310673474372759817969347600910082415900908851150960732405295330260212115282862908711813680638355288284631119862877860135941537524882257409785785941966590058914037123245670392880102575202152148344929290101916078958205743981765978912083008192466541000435948145020094045817890225894849221134724234695829175518785270977148218438026279923232824035500882742838573590918919766116630707596947682319885799320346620928239972173186507348115811497152781227624152435904775086057080986980013156942329122129730524681187527060128489570005752930605401511467477186187202855025652514776746515274212051411387680706672223464221836284666157527162292776017035926099051827928182176927337935336032750700710251000738652985178602041332903261548166058587265043916853989651015232819101079698827847450270847540029694136460223598131660164102627604723976851150740472711402855244560889543985433859579222774307497447584719801043955286952392300087040070995498210399988682851387802918611152117509691827523153695641519170460084140505721310621228453799072556055777649751604233879024934016598524196427967875291519251558741318397871634273403175973848886100022873055876049159719760137778733188226939389110432573871060946543898779019718643741153734586967869143001565989711810263689329902336317887859506290946174637451326794011386965899965005076205711487578366116779287723978926568632065397910708198534694606548917977955233537530648073145787878920716675874858292846106866828642476300996287604700703984012931084755382064454571359934040619257129614749457374380998540408685565061100109681018581921353612444534258100886025854213601029348110955984289068142671332804328627826432899355228352175569322069744006644614361607403963681219220627997756632857725780332227364729916719518414826816296582429132583922004495995098470747059317129871467384064228031718771271569677829647061890248227730183250709671566510728067467831539452886249763193566284023020770687869949363507000050632359264705680094595740844515954128099519087822910180956905504681945858451901044611120263020247027937411160449826103579418719263395838244736558236811882956213863555276088922630809292557127297230562847558376292049727317612579841494994743340388818039063752014285515393626906651386059502562773556809510313964364805943543788237034272706155752791765485530896615551893731548753639850800256947566486622643448880697906193611851478247964518963107764246645135248260519314690672248357465686742742677376598148961558979970365333558033957526405484176238200080575536361057102508635482540129350520937954067849991942708614243567318915170899834592766730181902797911903121488483121858278998062036906200488469970732908366470857322134754094351067455941662057326181851759537753445913485264618759799374025249808181537717565641566003036391297232851305145617999742566669118972686028570251033038292007385697416176644955618352040159680905590176760617349205907313233328220112986561195263832917189276327031137555398718101223665875302885913998121740406463348131624123443403395720320126589011608908782548541413578964879287681039424290304463995512479441712311635747129567450205576067041891611875342728673788675220845042135081514580045490685753235601950858626754471303593325846959335675964184802415552346507356018966499487502970387931205489814238878120708080329974980665066298236982054056731857260681221222127333308455160573379254968212075444981187911567035050441999571289934489305278454544639885835602644756744682230578086698319479006277269944323321636108537875315942209193502130600206965111268089699316161988117566431441691382230464808891232107580120014694528095656598977227197047520655257487058891654412034142409379723868164718608072770678173324514281481424658710117148297764469385777298180052009526138360160073265267904532050969843853810417346871346206314784719915135577307566001555251632010116029984667069840829065875922957960217675568481771865727246758226547265383690289016266359528080574783839294907156194060770678886449074583457871341073437728544903220979184765506068922344075837691991365641309705667087792571555247545978497245178400273779971484982281917026225732254740494671546770955823495811053401847791567865877287642961504855658205308819256305893484222153040302144838844587837888691682080717769212992160018103281265174250588753632339797007614118963180112181305545300619683402961597380304239578569638597252014637622793989849125250162064938294527645413100532178922984145180530736626028553495301719829181042285973301368546895868739905941929588872776533487040457294261859754478081750723510344940588880500653499570066780647653906297168881507507071915916841130394709111465247261401685824811152089786153350297818089501049392570035032934863328118059272124874272290753705484565817180877352970442557157320312599134236592233103726995139183204975636941510030222056388715152092701888723649820670951158260177486641774025815616641998053442252705330311374141302371169339601304500438752984491577029618872251325499033251062270281132574661492184430727947794229539027224211716526385919434574712645901468097685895553461060383803353054770333773341261309148957012384427631374531100041113972398384635725510938364116839060671366290946081551053252482453449737875853363576422863051541126430231905718124300069579047474898501063849651155083486349762949756370188636466843960832235526360126936402304849358992411695532386654669795502560223107706783301755302496123349371375754812762419187688490388859211522116017078554187802417847189398734049638734589293672861451527764305194878868187555960768682379688442525344342329989640030486870127495392663278482221141998274085414583557301982589439721907297392095022275476209465403109863405219392621575513894944902863474877679940358308299644365751872325019061318448588259107761503271944577963715937409091876926367352085292890677260645257501723187090521443926421179911043574045888723384010438423521248281042475842034229632465001591203065129111631557224215143787638268546537897026197371583172783741645996821390335019655125263123045688235824131064338317683609437452486188651296624817429389166403631178177436836506270872027708755505346554763232478519596764855979902971074860463560954314173759564019987898251853057631749985882922063679971220227295511185538501182279296499652665405477837169204166520288217961716204933197933990219746785326074675052943782556027990130569162571780919124115861280507790287673549872501056927688940050563938981637317082738751891902606368755054663546860500661563909631285449316960985493812402746379687349358025906270495630863572527575695978657235005851981672165165388800785646397930072777554272153605289987606872897350223138437908830813989799298555555364630944333705830800343673182471320165878943501570813325665346455985438413181648830855858549246176535428666513355633701864512398923957087144507756181429496636169583693635873960013728656728894088221161418265474678865593974504260340011750555515685993732153548060891867791896352110618255212168656983131090479520508110408217221073972432653046054863359756889806275502395425223692295635634471826273817727493771794496428807608853976777211757684096785431653653234811364326171206106176996409012417619942399859359493918923392261597251345552910081035237876232662386982969538603925856715119842041294833419643006097822847964426192684543396887902509498562911470866975066734499503564786223570139611492613984097597789458720547879751336931864064850955410119774314465122474815410062755016894797130814906456579519677787845141113943839737100239874523111394419102597064246239525595546968162712139307674755184441451498746819979319723595266233589763706070433599679516823281428733944555378861406394031613217745742409473826632311520311738237612164430403773600612190137381396710734352316313946208868987701669817274733901558808295971953197612353936607788289019326153037657622709462252646668846700686333599277939680928939891344999373382968026231325004086152136577446332118239905217669124495404874280616032001867073653804138528893261409752379052372603782508393063891856795451659889612664584332745402197105152972510555765683666309669080968079988724279838671930071876448227216192193374367536075745554068146537533946260511884943064248938293735339157630443690793042766469736264334499734565625821482729801371276169364369778598403494706177313283372356220020255285168535646371957456690383083560403328135582577989366666345143122216049045128810719754956156221029391132120851301381473357638085090251952956603041085735942090600707739463720045392859583304768194149554006555650500798853491746253628224397158328550432615015264032566390378747353741142644550556373977878855838035307893034466445237544550103724203863633498842287147421463334391178423061685939187239541883531244565858595442117315639594893832523642301474643321618044465380965015132223329119193551608942432093221354752525110438192112541100829591968926753187809691526119827455042361140931112956886928639881718024463093762399713290317165924682208762101169324405623073727769266585065891054909676782146701422346660964074112155797887265705081008656414390978272761131126777938696935776908225430615118654934231148228214866552244660993192807344620595442652091867289592677459378525472847360610348501284940487037620465826383862679882257214228571028065821385496414692898261661562315826570700498961201598209230376219416042002607633886817587691618352032924059285388634415122840218128903372529573027376808608924041960101156530321148174667236377837091603521775376313766844380869812721086689636170956596391408624224734858975579285776256181220838267918077018252754136022636274379880449976350916068667210827153460754200058222006408216875927502220764776357613204890722065729249608369887543246731434712010742695015401141695097356946907794951384130464715012846305018645141903463273654911840359231988159486207860444425160582134286746502539618040163692875509540055938935306179047503411239150840493140880408702060640402496358025949302109587918522572198799406186270969042981256669943217268959781128600097427564360782833676318454996678286363768572341364573903992854468947370704909555016496898189133476563124774470834976340329731962167409672167721833681327119795600983422336641498794042379076837922178556517862041341613654622872650266524856138598531676711005696021930733102311218840102188846218753523201568091449695482513967787027290140018279076004332412735743897830727286633971151653238031082600218953593605426493878158259618820103363318310285034892988130583545860153102942258100542070895386172252635763168356765814513882749439660655083115519179224160435701354060607606342419963885609113827167586349176036098187731612375688138681365239944928150465948211810712374516894046551393054970325086803096843831599999148465211509658758421772610067076223823580630416769386358699737608728186216740869208308570928225738915353379559132229161870466354413836510052755110856426038964433317326839814341158434363428367584108487201930404248046637384861724729701570268835535466709818875238026902717890471144709809422980682897140501580552335047480954222322727926972388791522194206722456248997745097294529058814116374776223570302968823600343407178835056335099331996675133991985197164969183938071431132656785704970507795797377016015587972767870856860871061863397022204721228674930746378728352534916640452580105694992254638144510312256774081172272038936993414730574772145826278659039869712724712895573062068889676148241339827714109802394522430751782653983129809190930786433806320198054248779371993218428727917739754651635327317085950184072646795476438591544451222705369210752483766832945802517362661760698681204627481201813254364853741356419937117082245874500447987357875144815471799452853930693689770067874274316799613190340173884219145642696610263348651697812565737306371520424164886638827318356895359519708201308575529195695172583316653878417145008726898309432080810823492630013874047861246430426870698588723217486977164950490394128202091487311535579513474624440590573579905382633198200866790688188920320826240764565098688075370774812666837273099483081908960314876912715801509725135063647566936911314124560635214923961447859060722229050235183906405995298840481848801786336918588630000572478431336923660763006062600766106034214476084353143967077477900137986336110922669434394764655202212832550200836719739384239701152675032764847971808726923264782837284835502713435433452758456541421656256894679971072270620746778404812721170454737074626437186592898881167252831498666955668996298840425336538130219182999119526654764969101837280139968970245599218160729862678957960711747413896795127146667302887757864073186831517892933109282980539738244112705018174685841378568392809008243682670297507228212757093838973111649740050454330462138528995525786324583473411535097911799399299208860552845336538444953868404817086574622449387265387380447919910440728585879019175667595698956153195280627795389937569679206317127092389667492504113776515566307350740496356025608800725518485322798437097867468760090268752517549480267207277334625801171719055700063487871777882446315871393859564458931757778711633362021091709835241043216835154452149316034588165915285940489218908885280229120309072976422101753274060605454812670892582942211366808310452262443225352339009880937644974761608542376126884193075457031223240651261557213175611886522023080990551611206371537836868959266596446110537816307455938869007137695776019847214201843049877886984457929560163552940577374130641681702194935319806388615263474153233113453377171174540030866853946530720558928619932515289008129496985424852673903088603988161702734282910599680170899539032337784883299324345227646426048370780407897411367356544308219678265556203881343839583238714957689320211239656687138780675236922013390437719988281762084401424044024114953604512240577728524849057666686743081677200554729225760035136730207631615582184305204489316759989098772821447531941598970754236004881078820738483144585528583467739098186756237282334693843767476018683911956692237642746548505304570204644443800198990342019075601189228881922907680501872464624136297985187753941979029451222402547376147810587459945531144443773368781270893015114111823329430582944094306347044604599023815615018560351213560259832580583108461583266131903510225422535544414686980994394479907709748051321346637680545163870766968110167065805078199795220847544183831676652696884178701606087472787394176260150482910512895704073574546238739005750706473834810359444595807395090081945734594895831486843724514667005517362229393746074795835118719381428999849061222670954465252357723105183185559541567883161724217715667337732841260118920504827056141019016537468242796697992665611571482771927845470355087552659763350216350897672010126947639420882701960374088403568672251876913658228580877790369118170179618777711346905122741931868696082261151314376125411459112437961353817179773610944449726421951723731578586721996942894701444112570739639419603225593096914606488323518229576277611139367425366966130773443221149411708744328110622040260393354210996422163191387610737744274445274966470697580866321390591654176697407160192465245933297367063961107151770581874468323905767006220408422465837242804474735907428262338734353538504472761168000378948971087116762004320424251716414950889105208265403970240605154583678940489823635592182906160071781047914423640452084268277542192986113266533344166495289371225321574359298597708679112530340326017517744644524429231980431772993524425500613102061881689400107907079031578622993951080900388723300142208572786708281413193079845665149822418357821071378748747855074781048550821230768945333639496643300519975660742769411289624373725499436420836360125553306812391787709038696265892598458465900911236582665125527748613671802526153455016454326598311477468080359951855384011377201092009473812490511685851469817375936914658756493763886426291867388049824777050822481007633120257471016016611934843019447928950436000339444377863553097818989400284949621852674489180767372581934965352803465874871149979012564615249501359469527119575698453135529542959062661710535888570081368558176065313048477695210466432459892149712062472972308825761936901635361645704194525392953344415254312638370884817410856235516427494134674064248283248351359287431089383161225485082725657477568606090943362271635398955938382283434739288003508303352270415920467563750283165095416849080390918789804611908052979068716403410237275351384243241894099990847270426081979717471525236387759095977480590767051256810852782163866802435245420290285785151994709131697786564995704551974922163141483397745057612744490759808634829389994666905727136838264249515236549431844679073026397435246196549126657903014861198692540337212511047069719980248342782899441821946128374538489058175711227336236545172445396420684666502946566364433765818694602445791779905856810832867309567598473924238676959970653484133705216449966652203163789652227176251946272767725448518986305304065816614330661391888311031378724068642517581748391226979700205617328052341336259910561564260851916976478097426931103928667132973473486890846368991953715588667276363244738380121301174131570483912284925996669758281139269600716545553679255090041300633403814636436310099332407542171159143782872770212944522092810148845319388920268207677586120386901112064284400323787151657947648714129815643994509867242800719675634052593397063023032918081876851279942658395162165377592210031631921155498984553368685297053921169899264573033985178525479856616942449641513909676553812409871378324660155524371860932811367012422315610786665370451435566224332816632779720711650459816678113773297204348301829234006101774895708522852012434834973030470230085474497376777922493168186539456731419386490735087010049604712339840652935698386097022038626138040250431771632016937548179951748986034046118776961155309503386575100887936130376002512575219725454499377958407329736510206426503886642385144914604240212837573737685513635025428874300145880429539934249549612822792254984248669332640695540902027364939099640846415580562553646379057642130430429175453309311537262084642879145008385169880469402866854363280878318507922443583937798965849195664159119657877594563488560643962995007449989860889374888834562170295522347268279396220322413488461947440174249174105441332071430737906679284746471385645135987255606692863754338311226501409972698708773772135148813477411460841395621518727463117748989633901843534249418905586166096674415194443478665176757696593751651005261578064833803600804791891574961273895365884896153432084040066707828009901682458495361506062539654222009649377738417678955317931340147441077692565392104724977003513748672480268289417619368915467806723472457997672470320480786210452545331368913436434687472079249836400130205070207790018567258373975491520949020873283516773681093263469267239797781327682540169991347494119372793667963445684935368110092285333269989516046110807311959226811401551018565069529281052543930415277237904393716153799378280815944017020796182327227351625716046655655882407576038644197249573041867424124797693579301248143646459469641358585850961728053596188947913576734130340598790925195566586946000233113672878093429452174133429618597912227275640387531231897708837353602199256035654154309085937184836108488251920271059246101657285026864891654401972783855659917037134419519654936282406695536384089736269919936350764119989086442810712747774511388483281565400228117811828670023743460673047939254309876683060647534681303256985925370917140729229881867834974260062540319806597406242109287346869124456541855739209802109621992883260051850370737082160533479703493437332291604988485004616877814206692421396779885025576105408596995539856600374700708775138974222308911184732847151649291743700807174032069781856019032085749447017322162045085562318363497401792905426832401944750147798760120365540458309361048665231587382877378884479737143247631005417570408233017755950946577207563770057974825993865688038253563246906561622577136690599222617479375049666211595200860325614669064354123859418459197742771922920941762527836178974710307030450434042273286256886270240296060009429125448644527897220609351191934500877703860553425538561876748471797761831026779502070424653284080745791816618474943621004247242055338372185060721545572580630850272155136867394614931381275357871064199148563210696700026613216178346758271576359017963835465381171594556925262502565829773862084797849461651941689677440673070168045990382769380499258728239601792512473765570707335325991584515280843545160562425340808569801755028140793418772082750525809707659360483032148992237147097127771047610439734551814083816073349077872028385785386569786215285552789702401375586675849688098991559745817782874194906500103735652417786556998146254087279046356692820532768891778533451761184524262674439430792767229194363233954937741084242030463267149761469883182104864409161631562252197696219131740043902619260877090384189069650257837956482008413335647292721034872151585488875835061940966429037666581903620755325384137882463538920135078447898997536779990101271790117249841055599136337048948525858489785488624560212857413927678715604627057039176004297119107366593438743649109546822602776039497236744225788189676203201588407024781006949365314967212928643501652949087726327353227918456332610944276281897403162313398120721986205401240657318219357069278950849608470350210932309918436661080441587400430610385430759691925969857441496583587946947276749068564385701175830919381397897670561803262694420102546913837061806182455863876842098409635143765384056099176479060036228248866031989089862660904556560734317153975226712637184626359352442876810785077720490383039267470545495896588792964663395859682246300782583349614435158064029365722167346150319527186881477125935590933563874695712298310397110573172587903521076783707114867963457687078972982841337449685847807684008055572994084859480341139018451365952444348386988668541905030259002108160059302215815767110838869386774659476743556804531997593468933367989077670048458147250785374987278964336984485151151561711989804648747527114189877405679923708265873282976971290931758073748356978244218796314703506288282625924640601663954723951353094835847658900251094069639730670752774606364379928280629653931021448426607619222284646169290878006473872647367433508530236802600915877948428245415387150349136915196812856715917301444110998865943532424081197664658234271579893584909449426565749731382047254735197166794107108956679835669648749563212971082710404354995585159849222643749867016984782538503997872230024067601302313394461743989048540313324616564072333095933004160623410573032897089749788066523479669934784018725020229690689703588503971881711688959089243747249716498515238494317877172782706377232196408232592793768068121469972001015089038204680155521892475196355575173111026994394579521102647213325253809623550183086758402273829564040533443809349080691259423842678610865390635182247943174910315420851921816786807733561536841138397211893711112992924994562234652644221010753241450307545326723445054204496991312678219642958963047354324261144474378489536209462201101585840560882266493522532357356221274171798811116997171617915438943401780709133022592698125793664515760936133367283117533609296582768061287583094897536980006463149419552708197406878345655847584441700355490774117722630756599717463904944932795037040781680582413595325818758323867937932296229994867294638757516572808788884293384537949616257126621795057933636671550185703856601105610350026211045705571523243828730230046109694436358871299539966540297802636789298161356596712048832626879578670889458894017781220334372321204389413075239320388662656420799357082841296494227113147600953236148301035742160696087003455800801636057598617913128819052980771050116338732727829077223587074809786022105842403937415118035890034680476380441751077064913876675685253321445814193485780289704867299854483107427260042095228776668360075228819363632329884141509033002669059869557038019077101070057210203103309185779600882328154853145315011395490540537381243362463994517147654215404694503639562690937975590675164893946522575747774807647402168351763622994476852920571740314241797950481859029950115909665984138506265345320939585681630974961659061721543875700594352217129679691866572731663040083931076143431492503367444650781065882404198554099630694967495546553548627362882606353131885852808356253373502245379607896176286526622449941965032606073720436383549288413105793173350650848328491172695317800509864523730554810584216476534384676382517556117935788071796437171887048347021255597974422618447401803113274406511417731362130053448266802838375525038106287149363509294117322189801502878914660970723043919613984356245799437972532288150611905451836852099206016479258011310947792238995180598151380945813789816935097408878466460347007787045492438004489837142781383536939718155231254968896171931751028768842443665670011709377899568654092718855856104424204129191802024117067237527179444627604024630650505710990340487659087677349889409255963161253412130178035288903634880854602933856981186599268046460715842247338471467581743081414104979612670147807686875033694274665113335918464157556066299724713924794121929208887932398072690618947769801188098644390082910564023227119109302465550351278167263364883337454470660170032360177181316030004854598397516075061611642665326399912687160741876030219919821570634022674982834613220104042576960566416953673499215756429689796964872646049910973940149491439104674027076078857296791191146125781415919586043972765368072519917310591897062545797444227229106390075661190438530773726107909725996960309239441262112851833078262162646038709889737650581259876408683684691068017346573661948952040615866813447010518948399914830010173108478941245605959864610296565297771507791419113763582732737015611919866692037017406243494523935218958922841837703260420706940355268941675636330050443042089105202682451880320524494134598788789040338382920422581154015168006009076416704007047780137701133191424687719392788465843079900032495663825313843286604938043830041842559644727652500101509516215371067310558439808332440932204147293592642377914103825245820667541909576624396781369013959292846392726678745646035495799663347306527930484926655473690076528171526516945204717361215353655721162065939581815114506948688088467234010378411375863045520791148200481866600361224867715817421347643581545661130308244295172131639537370288407864439834499911630702258990122668529897556208952539068760461315571959983804679683655167107589699696280535210624997089985339774108755001473349471365652168580315915990947267904478513495882742816045390687632608063409223776321833709217061630347437393887603798696684804439249564720321543481151174782125424035103416150971499392257057716046857561719226471514600243636381543808088550482636880829804147282546228738674437063385551005671115604549068803386649385297921890875755472127080061446592188602533821852846663159351311355160552628032135265627925601744866959253047458557685801164953396730266990235707169723555765664202210795019684299588244238881210417228368533011943368629138901123493612183401355298891575239735452195483670451859493648224200150471981477037166763697447601449019736573661683348813158362594097290501485457187853880651741568785708557679194541537785101172018320995552735172369466673642636599247934036607910711139838289211159982462673119230550108141390393115430842760613994125451003330928056241175321029098069185656641794371775295429741418229644067410717806673747621346036723400156791827875200205520976367574926713585861544530411247800923547241280986718138191880466907095953981490790694283609856553648674358563382866214067187657195134962802555180675610349352738417991256900694398145253458974488478939138589864913143396158798917030188815016950580035414776421896241615477094951379971234872376322019070965801598314160451132390957600109042704995174907385176667646132058035528269496937358875428504061002531159634224605477673842497864166393203130064053450178514792370890239162906316733128646115090962578865500893185414655451132018409145233107485116030102144202573550630716866874308335115718550766377594420921278061417747037612171443697746161708962149314116069015793062167570357736444903612846132969106470143092903154105197858112254388000963752567432304882143807201416246244974334195140854367230731988234654591550083683865072903400411396282142333563839115898243649868088567740839860084428464508580428745990719897087172794640434229615555455243868764956026329738700233486023686144940704080041908319319128067072702501975233843522437531273814702046175164301674899686803433488370588050331510904441344200114073019488540403570320887316440710692035585624650413685839583182532289044983536475000934784343105108738122430914818422545278008183910416488123944414037382122232584551731513382830403040132268672290131251306831077421901625189160679004935252803278641033241962745285652374217983304827116349929390276282751811940818893421433872528065357305066333745287345900984156444765260662925164088268896036432394246035261251896705598369438166155767964182049068596583409756831976427319897827334416466617570818812407987252856000694106481140541012002519566720246424297957881868067272545475890138444047956498561563217934553728975702662704008066492910198519212546570861936298532556618414310147905171149200026758404089546590672557303021218167489829397078870394572408054806994806549029997348084539903578420464028799178407319121142394477373417123243149756376072227346859316742575550114594748795431121798070133819587352555895004182568431518713071170129165029447982443796749664084590064767314038501428805865032131187723637493855450352187909872856783551132948028302652669842651728797702452456852608189614024490994965147577771012177712550218906271461809120750309035571400120888745684891582606200009765308521782092175722892381419730889008136588463636826637220191246987114697598199526888576101494826594087328163864769514375873693250252797335925816636292214177024898864745671876057875961465652309260874488149406433872436754166810401452391420415412436131645376778751296575950761175941930344358725172580850541006761263435074802811054698368584746743642325574177679286736761235039768033418573061977701010532558006887227369903493063448937427125212373687662314117583777948665006536045941379982707646789069607735544453149182893755573134431296546059923274594853275118706622227934483600804556138039026597758610764941467704434576273722508854689088267101436911789474465531753041137354573741060061409074906173877125241699523942660070714429367480735945933540453045057136331971658214207719102836043555090449744250777038075871643733350383513321420153047762767554372102459657385504853393371059882698407377465368747386341471297940652540850011966212556170900006749748838411939332178633914668083551283411021765249088854199705338161203037242464272602919991672328214346457741297206418499383430862208833993319828434175401780757363859055630916213925068758227356398143191195711658035030871832992663527747248009112901234223251768757201396270878296423189274775119735967079284750734492108119414091269722425767629546203082915181629264096004377836892297099543829621019833088160551670965399741710400206919132244773163626907514205925199262612543621639725482484685774631824727964309065644706478433413504083075289179206036661120686808504327871285555973498359335121319871076026818703953291375695775107067897488240790795912992106391609390072473535866062323988958176037033943680119757457906931854073306909183503527507778197068967544937973736167868189085567669987261099471602788181626100065017702414345609096338357061670365389799035986524764037799047313658028785153862590442442949464020080814893126780688908209593629505335838268767896147745904035207252586224705796321139712354895108665495074858791354602134628487576098566703681099604904385474215837117522336633409587628223950936600100487525910872839581611640940953235727241361090480083183755332606661113234811180282712158023170385317829553774678734470716077641337869229467401747550464601474326114972918749766842991206451235394811705649331956978376994259871781655992831816426717492971532392227445804814020346157825557746496514384451852676507632246791081455555944618715132111728439819444148477991001938171045629693998132140989782793818853368590287442039933622877787736268096548453199817543900352895044681663182485629674204327917080869990183550869088986384340678772393508193311111834213791203497265525635434072107294728587889281406792022497562608078057255375083075152394737703391459278624039775782295960945627230673813528457259176859767528629989538278408980711019937041902936853563582916540858502384727880256357356585910351259084502443228041198640228696515903480716620034999732964395826146579724881337028532402375471183623590024392849354494193475129290451186218318191913786455563329781653535595094429693477104318652425024396601480645724182612431826290506865312209880012089483145658783463259902796257017373501744962023961930122779070407243023196250526654044862098507317332222077046790795719325295867397244433867686331800028916975103968048282510571337152299717987642979333614948026724231650007413196242230222501279772356817005450880358541235171535267695671247672648279179673857405771634544950283574603195024040274191626559650034720224391015350142503792661731101574051043111364702112571422643908143571693945707044731517919272166321958120393264464015751733016638450666942378628072273705572393019599912059347547420710912504381325181859552228594283786785024222090336496237408008851202402432903236038290061122367345636847792129700420027321212863490689144125949333687616049558390572671367863572144837495032995509458977888864763146624597702950757122052421253417459556879835708588652402223602304590191107992578892329536048880838701841594792395530956936399714853358498881944266491328507282443568294049870105626333272790400885353179687990209465614019496405966927332085844634404135392810753457174502359076477686602284801200106438498010597085155540226012822998866502596299174937655258664784391723213993278339100271086246609557859294834994619024770629247494046152252002365546622271213014339149798588595430370914703455348705917897666286859379425553787250478021714192972403311334046123873128984619288634548855568648816523790453607903580275699067068109877302192132412234558073103345973751847887868971193340293174596212058213637046639021058306499350180085169800486899829830072270989206635291635112633924341612131775941141740142930689906448553440407198792060229292125025860210960362295870573660768277987590302076169119005654860956021480863541535166154059389438720507665806026739038479709219615009931777443564116840485541568954271972677923055540561404613797420666948115615219444131827117559525736361250595865901284385717913140122839988078479872381278432624211493554011124375550664692132224496679678680030024990419966749722014142319723930612605941119477040848538477328617003576531740304920778105433745150894437648507351605932206466967493386451173404976249745451557341522455696013987633052136238923504163335024240226271875921844978956820888025250647097741815479245414318462630648068908520969695984954196534972625745357037088463595951243606384521062350206772311394473642642804986966335431348150857103002140686293552984691205652756453331562766458272762955045629637499512090284942985547167462129220723428443271758556952183420864067016231036135404474353645728194570362718687417804910632567400757436333204005496442070707104669503359774987988046128011727149024610341324215651526634888663263147066972321521122785462733936772046630469142666920814903621058011166068330121428733208330778980801090807844784913935876682127682465494010818387496395348828441357034725911329857823143388199415438742422732985930911414631484013734355869555633041735765644937213650841133973399878925258532196995864837232873908416466451048182328580168525850666564080482650426827010276432449351652774420326085543120259403882345384379664814877877308054432792959880763402862594358615964472826975966018199952838630807834052868185794883071668548060638414866946679660827675164154154883458764307749789536583751374917630179411611964329829304157980241895642241724372431932983867130237609895645692767343959819887301350539481994267358038083378115546372879151801706367047342696933333993075439732045099695029566557201663844146008279568689157103409419250130476368872633555377867918456313581337003374635260805967977994571364240794238848616637495773790501666341515927809229643717124308385423592441605964915018185505061535830160748290219190011845096112992578479835220632760083986638776778675671452082825827695669623326367777285334638731280139020145589271031990296868428881987039291078949398992690501787014252365087726319433175741676221623499754029335624679285642192572721117799103960977982592326050101334226519399830120304089366566638215368097684906127014242740029251419556675479854648526341959833593114956393138872361506219973230906893111696977197230369233973174429929638358520606653801833477642324171171329347588425745813959322424453194076571295472957249228296604465210954539939050169579651759275820637940015179428846084274769789215649952693521014657158057272717469530530758602738719649312493628950126922264629847081660649541557138007155377354065658833066590981792853887321520235632879492448487125001673725498569742464772029661443447014698203317980570204270164258982150147837561012569279103623847758648877790599038718837070510492920982714282816409325111690741729309237993294105946357742110081067907656390008340338155107425023843922005721058994300188477023588408354614135888031524992055241270422661463846986611499041310067232144751757289717586776290812380158159063545295269611176500263970080757248095775215612425522549236170659310108560215875123631205387247066364680341725257928645032506755687212770132036707548104191975560470630443429935373271010587622279374548377103684628074718483849991785509254722204455656467119970127535793984188332387434532637443915200225713647975586067435197002999600816894283885221331680252426514477099663853088005098985193507710467279646763602149673942979338816591899203196398891988259628104061565558983897183477714171648202514773544647411169045593373515387071248718062175080727709957558647849782532657075362755603934659087076076048731337333940708329266920812885260658457726806293668219030158713847789845862789358920654056255977482321054124024568035400469962839992578111967635882004353272334748548497553745529671734824252810297067142479797651727600551635680677353845998300825730138755180889339165885879332906132144463521789794725426913200978540679708481684471097089177971982272096681246278784358164570934776425244997348193683934495681095208344452675793888952882875356764609469777384425930360332134085672168563108554150652765136483965935009102300606432928174589211228517315240074159270364352267714368038818650153413124012796089703049303265212639080091009052016726959286754762080396455529911672462862720823719024182145534872865842610392266940428161675249098991257871245027030419536062663716943340198400194260625158373717194743444556483934988635245639529448931285187748339344254997419755086192922409467376927370629299661142862635960780734728580840487175473792445852138787961704140050136977458083370634813993702494575133315040913043571461775910164344352901163794825742419642028720222303786882660803889043627375293401593605086044563586249759177824757102540055469544786815551112644504013638631352875850236180089460340938285175536636926367453040260549506610927023806700410614322577426842573906068868318522949045633617988205447528966890667357848055898355295300191910637537736053211584750114816793167607661554527722793726325014908646639966546476405178904813600299540049876053447308035918124672927318732565370133589571162214039831891123051634466239700175622950342068970882691622941527836489687354666323424975214080317289081161583124745476164342645990817571159112900143617967224735241935045671520931172307048986487982510550082647743330300930741238413216371840558081075301172562364909858598873974824402301412558548246772127096576546264550044302275077864211233687493692934231664987919003333349973761857885497257392504748490907351751527354515019821687446336591904701257381084943837406230707049647382565357563808226600193584177987600689460078757212032809143971570406166117163526036212264620638010655893180278708729167171228340399630305270528768720649904517195364864347003673116862328715138509441502859177996706979637117808571241692521759589559207728761033175897193929881548538098470940821650569847899249738488751940755930356977180506710270028284423621983603550428719926736550015425751480246404201410046769764316752712348582880995725185702894354324136197166439343627148405367873916476071542556285108178258220624050879933098954743065745803536733164206483675125596080907474833654707609261472129913436477332226197684329185543430487461527527003123424091240798168644103878179634779461048732267646243556502740018117138563773913611852909235315623939324330351410136937295281161623636680538231515152954678469911670874928819256112604095459270173902482319040204887324250760135727089342739579585396354555372127359356392683009945822405617194316949105736920031117434418411082967582111623014122584871798173444698112039399271143132188493669309565780209202356542120712534840833944572852163577599146042367958298818744907906578872636891232842849971891325299673785499773855360092768308117620723111711877967149625143672584985485287903948163593502514528374292384705909765247165607462698157343721931541944569832439622539431923805155427069174010939727653871437766277999843157023328106252410852999945403135004219513600264247638057791917020093846298256959242534899277703791914500621345115789212566745878420063418251074656640640356469001946320120879112234380062400005682238914442768131783519326812807832067498082082705309956913143495796465764157294405006662760325042669162294571096092482969752250602201583107712806661273961492893932894115820686162568157277198958926603419071434896361650203268480253350905901815786215259754690407335696718003077116512350593836835880239543062292785641668857851364702898025795940458348088745290993179008647215917462082207330401338749036319793175613512318998259681888108189608164766519565083782177777004329227257879994088302703424107779241492372796839941513618410412056318720678510352996481274675213190797911550665503621388498244958267753743939821485868762867425861038241679521372520933981035253469343543176519213721707371454761884236824300618986400803724791389267185626945988774558306348397498188127640890794552544118408639446563349293314473648023277652589932533575524339863552567387120168825156976728720754659316440460743965264542487935587022685739656522793364552842210646697135072743893713600264375100198017150346298446273640473572564412979556612553817806950233785134897319719412137766584721446093768603942875688677643833048991026271660939467851647927015904330058500807771435194961713427151628987758400405722029769032517477487291910682289945808310082750465969318953611955432146052438625888527242255615565142569242972741220887474057172590965511693374083198093675247779228835093827044717508299229263755760983757935239173398906658348172654444298314442505317422173901144041998459265978336193750888026643409510300561758091098732318506573086711848036189648251504168245649082693544205994705907102174510961424404050911474220988849444676644206771149298563891311268042127897405114843257055480078682631928049685215583803880841213399446043706392751543426307719728893268539938253824292675423121110933380496253079138151006649535975100656325812762932620278303800834773731330561699645734470813126822330078350637586880695746562000087693121446579805046890094160489820451062798534309171076578538917319446181440900291089945399392385063225623182730344916255970227823086077015388009861187111922385660384030334768457787008085520327068913371469159411931503626764235409097174288892492651836969862088994500411761177937863958850061055823118881815444176027112146166916605273363112827390469253789235534570696127603089775756069650087636167042377376092973636216975634203264989706978648024023097138407413338470653352327856751089582438348537949707491049664032716806427588356291246115831735148101616579092150228318108625387209617703563092345521602798073110849551236573980712071674106386817276572561727806532114680246657905663564125417822724999092259559821141027184536468151923555748387339360115930579374246615779499773837097771569963991667254024997405616381119945399167476019231630942548675737189309620819530761249256946607372336366930570288540242925924735147712321480506046462111949224830098060803820486295330853937050415486701542212916096667541241133099858118826852367070952995070279626800181497339857924436772901665366919234436950539062648868383802497093287204420445604499632821127809544888267404180573941291850145744176662717532493432178716948636488451635159422261242058158637789971372273072529371009572813979674755024427999747157840039319812833081634365288836550518393310533033681674381453290939060130739160648022236247342395952568346427194951489293834394136332386620565522146980828633373309858183837378009984419019872128243168931863255359863450746104461122912634215200180208124838057694306095127175213238256695475243643484369861963986487120153543653964341163330637032564263775106916890305971263321198573380968645238052421115172969591315667137909244460024675409548863048944086614082074990762259972304334319516368076552530511906433043856333469797694670016996679078046928552198693855360015895711186625506739188404297515487147253829119184778491503101077942802499535353622811116146824348832812550650891968168824251273821594985944116308292322365983438494753939649329105804137720441441188965385122826631339491266831953422990987309184737072913040815408396310222582893711809741529871930571020891403441912518019326092988907563875929968516925256978199654065398099939472961939921917648746552302294080010351717396256680636073250816252838646366583276042126333518184364823363717324482382366036842663749444858911991478713702058070583573362286398924049133277081838029193495141645259072811540988453775404073758401994570457687761713389389944049192686854301709372640357741381556092222767486218528606685199906878324592658871201543741121762410554769020975767087834586074398176880165419589331717282217913464469386527686520769685282193185986717903105503903689611107942491521944620606371483933330523257300383111316290795683511440404785792241948576153758947660025197628455822758891701688872514363121366288631523975227831045820304807804075523870748313245751901239965685660854182690381137638357109640396851267836142105533038564843047291493878816833494473470071153236464669938522535972988796001959332331706248161233231560176626952249091905711008349672204408010697106427446602750548760390769055859890843446265854301028410220346438171490737889685042718103849539913992662634835487758099085772159431418327113871191800263801573851320086537473017840539898782348464084330126938064595422532309398073057896807741325840102436818371320178435420140837948981589271203464190051334589974557798787694307940622572144504596710331879519300636085528008469901959423625115889208911869782470543076386629071779790246645563700956104165973429732492840592440392070481479277486216852971571914104024803513808986629680532406865924070560263678771340685650452168325676753490911523864626171252218622924419989379014799343513805699435636814971882013627695803619452032059399324280350439656802028646261925783164481181054162776154549141030121752931295181730628312078162227842050511486101990085466967893980078179044503092400942940027139206886951536053971138411754330043818149322742756621927117527761336606152437427678558350439522768634405508098811839840044565518655299101243946133575604932127301886270166633190266075085736426304511913839984506194264639777499685609294273178978025536943194002166710831110101683006965295803201813169451355969694577554609666368757769441443636787933700205124540736509936570479875202289395566578912316058302798851205103724389962093197153712542736266615856948374048235765215794402243501957785447732973310434159482128095950228804675015484218404951031565728196621239977591501759059086231420250287300628754514302200572336449993486183199097643458800051501803115278610933416037153404220454612865233501352478078425831790259450096388223103226392230022303286801840265008570309746464397424426495856295636812231104241761999653147813072402422592136376168836483067722336361313849954986961447048192592203275550257903483159033780128229949456607432903377683839556927590695164923079410378718215915327471408233199997015730900583579815046948047587272861053092033966292769775574044798746619101476637619402120830166932020226018197269298900795623317302011450491673838350312316338398254731733680009377865952693078497693618696336767981483591588892215795798012526610400903713924936675569302614312225217294559778070639562565569636135250455753424927319240473584791933965509528396879749373766062453291126166495229559084888038827115468957931167083530959553548685439770004875781662022391679964209134813166550114666178638201952454363650796431392935977394783929532840191016907853286415137378075749905656837839975108918274581553996080818202867803206990128129776830993374910848100388908621882614918605083511036854327684198062658593488734179831349047108566570205453765072727220368079232221188841862048940618808725482032728731697111066743215745856510114900627440495600188453331071871792844121829607951876580573847483961658841411532789142061460930791752050029214820456210174557125612266316075172852146197931103218340778937036202253672443526203473155852705123061816632565834825938492457513394871031450082227269048320169135201305153451861660646788519926732226929016196655669319604143316856477887933609515060097483282108104752381454100197169048528364141286940432509580900847495471359806124677337026763286946490482830719896169504578264560773968855940159768215149134239355635286619395545164519287017722063770339720273203317279448344070234512033874610204002181140681611250112605004595927481456081497045414977685103557601225468175810672690692215490965275229716094733217035836809903204718656044189845281313719495259950653276286708589572047832484042506740610075058810962912567181561287387932963787531576611640686035005071107527390267017455713355444572014105398877051482966567955614734096298911953556982914729007700162282905233340241326276675144746838491602381974469577900199515411969620773468101874546836114674995692815744362707029598620118531618962737537371719421427466201545480182015225670547369973930273785104595791480545907009918341073883741410631849924627911884507032898958438041402959887385091829934551467863910882418093707848037280593191358213103417103428355417806227363217720968081491861502284271418528329310380738732909303044043943039953535444056607796040120830034734539107589279269505565828470646983755929618575141746425885565606316364316553021069370701692278643290323479687006042371666313796120986790399147353104967719335139403571054464897231258610289959423131843473398536372167277011402314735616671294833487936933098426689961713502940253216332407811305107036677589064417493129886486778648990532224460136469494439637755886705323541355330732629667827669316419073355525435450716441940104436277335463395957792625833584631626914830517299292917035860712783093121048903769299060521098052462850031729313927474887248855759069360075692975244453875982888259464135540756576180639510359775565681477952494830300642664253712599167197772285535883770502070015722138981392472360774513659322166434608383146694556387865920470005005359625312190901087118655021313659368515736972885295463801920504069027230078370460725857744191690107795118872751462584975666685812456237963838548420337545292040001295285146101539403541750857497895865195652271040145804544747580010212691843063697571275625428693904398922019509987411636757660970880994455097941181741786861658546837376063009621771230123355821288762611747039527510764689321344546307636127549957471338363778889122277083250172015186092960443811220444927642147724358805324219733992546394899914082283271975989586928720691638388324660647086219726540716971490301547217484143460781422316185733825296267287721266716821101366733393239196583121531734954275775356815124359813920704781695556967569988519243910344959449960549339282860474208879776014989496773735552577675197544022836977904453152782361149656102565154212739475565661309795571596910487453079222096007736064547198172944845390095983909092190121285506732510331907673239853870254389459447849130646480878770028063477183147942832783226945928338364887308446866862967277507897414172269417774344572738077573305338771220551216383796478616137082959645596305185397677611657889693773696264304304149310502515465290416618802426269844872940714496169187186005306042357589292495294565281908876490842955379334075995027518547343527343333851862893603400365688473122266939945038919924552069191755332203772009584052971504747558649551442891918292199716775059562480837533026332720515184706960298925027421015040880251871051633490512378651162013274524870578975123906320713371428464574655827836369414414318115649018618517446361852806725112743896075656956143619290882737864502434340526835435929666726487732955158557794790733483418807257350888181915835393916262336523897638351076636566418239913583339224825784091277629284227774575963970245760360899252339062270208784216190570190205496359127557205745756213700545720128133366274575442709006285384473523499894186521108476114719561134992869465528553557570960566887565996424415497727326089181413978479523090059661851414917255232209932932686601099108462011017652422204470494966921283096305543786242534523605991358202957479165868920064497514176948302717061564364229486960760789334394415887869156799382106870917735266851330086203309211270501131748951342992567175509630757934315041012107740940004156914748147545689275902629277701351032587044145858408255630452241833983186354062292853305117540957403336585835169260364791383099174992005631633995803602915541314970044820932048369193107037335699262356394856611280534692258248008398861831805905553939980096384672474979168886382265148474042846043500957388245001042769892770933086094287345337852019412180322378076971076789878734607538807957642664020940504340520486486844713689754083267326875156742418698202172306750395348053595378838408644150862742538323108046194245623105530460977546618957043377992208391397471333451030516696050907460728917593669898033068341498575993315297298625587218844079975302891466904444702036590597964789445396682222457868996814625732089892438583732952809662961372301506037732297695634219422233931355964157347337018116269715517767458486898215665570832232878370044063819409330435485745951820116290112008481492982206153422110555688923554260221856915824276899538612909087085361511086892318472398138438859326821188930882582916441905224704436082604250390579031428015202701529874003586201319020645888751243854942927161493965742322481991005834039440661975537483604647709053067261570780548196684603955086296963403328167216186982463915351951930702866624342843244617041340911253109407607606244483699629077958514216462465151563675064781768402834174862116957947464327282803471744696250861314116884069875280262472734248106307579566451818104095429772565042664755172714774480447787385782397405996078258825024049555490678679490599534883395720576442408659423393415508706571210825224975921469428730429507740592783172590357544594441006065806449472145592126130848077515927807528758028151348561714966204751534396461474030205057939179900154933544813506814275941283409470564942286254302748729410043284184341716967301341212998245579999609888030930008210821738966313785636337828151222854159470093982379232790122707501533771178983597129342681450683879767688705997597959861413468230821742906427186875789835812035788998654668628976512391616774098664114061067726221669052032807552161664559791954055971535041714503546983188086308007915907525222578823051382064621346421767442757367254194313811670696873778174917364400419883940314371386357161479690327102036688441769096069376089472627189584221492655659281231503083162794589327308798620934962730761277109821061244887249612435013347445245926711719981228280182368809033704458191940470697940314149386347933953842285463725169770871280100568552263339729759865151803492379146788462792689190540706475946219667311506830969975330088466564674099954649983311163144701708998710246680561011216646611091199367559811345974488724638779368194562142447258589592345938606986291621907383409294583362819619458689404460201077011727644337222372901250972294834098604256378661819762295816867047437899396723903517575550836628103409333024077429925523979017646378963024145122696712586879242443031118509546487693577055427709848035843186369894821035308965493202220858860724862736569901858711804985241273869912170607686604716834649728919425592404692654860565715442490497278277676185641009069420476242406312062847061625863684449430252242685172141270132088303586071777900291062152484930026907082080051723819786174442550729202505545237194500378684857802301057934937715252493394071725653834094006574184636444303699153685062212942828870992062513529511744279737683078070897950583681836995864525825517221331136360975189569534015249952525291167279499733658032891079351695363675924265572453739731471403237978300088478190188756847788537594892789337609110895395234593908029310341012249258974823164157632361463830008779213980269976394614700923872082901892855242887730652149440592480890371718399925215257758071877286388858616591108400039639295427060147795870355684580297541379898690267141563250721766856659200727658495671442985717658992858629980162871063513790903370902505293884686291589695142099725797700781288564472735203358121947330022114313130732883675294813215852748093249103335124727156709757290900578884579320919266358661822257791909021820360830827021205679058104377529365048765610771110075963239199837666637554609967286835449864116899560574300937703109800548868164839013092023080169230261848458312672777491205374280071173393231770002759585393249903000449674450464546041579306951796247765913863952698268738069164100435373507035657778744311746188514264791498199011242391783060480456406295563971937720757080612177603575962149900576395721918443863801930750837260341662285180518296392922557499090141574123517099660292375407618669624741366357697903735332040902234132558120736534189832758739671142942099686836286150717786259226076264432545370202444952433644399839618868949853477433295764782867167732247261129604463993604428962900619626624669752663126353703605826246211654179747743648639037896918680038899849767836375712869684740299437785188793064035550252631204405546632648239135856441725771957392714289781028360377948246099582374898063618030528294202414011676810660486462516844194039658385478267321060484887827174156319446214296171593743494890037365021630525236361107093005675867049221442354722453480703716847537980416112894995049077713502643743865372778011118522026931175110656411700859177874021112397299091685901229462005642046121198352966115722237848927191401595233159498435936454578283083352939901757666268539148347318047766933079378364637200158619829300280700905405729558796499102401243719360157971734647273261412303760676483408064854521414067454654827610540763176799043245425617578887342659164755377266423169712100531915464561806550057587511166553812062542966779100023175479974830669039089695135853410144427526209048884365130700996386743992790112600443680742805829714957802494886991758950428092859144865326424179899310767045408013790862827583745801359765852360064786824756684253897562738108582335387115338318511754228217351090739435695661658689248719511537247957760273232101560872115716700875110981177679989999886987076417284037898070407000356449146089305427881744266093108576544285331839081514525830807179265173226876254359302761207341025333090653246356143887619058271985674011124302617770528075926767280062202182672014018418142988580372202481482097367091955938414873216493120677538856115649374050054735100052935409879917861816474006777220460807966286851903301586417407121594206253276606109736105942363042658551094345654345608369618693974463203766403068553988852806776625795791649515196013433945402605015411529077440544899456793537039792593058735167430223953584769066945706282247294530377368782264863160026894147684047672004315540256539710019813352223257926670885441788802199110715329938635739200880593569054090859406175365397754178178418420326377366387740148454372250605902922378909350423080692392885171870394770037660961833821959236239454529941493272873360241759217337433862371474238894163217887131510317958883187968194887082030509356987394648263118971434888452813091559888811153302445437253107486047058511740645225630706138859925835202089699884756679386945591603246980168276692843480946671976742339219205225878581533866901016329289647107746034876901057420742235292796038987655345309014142121391043423786281152574163161900539451954172366464295014049118406804771007790310148394104587745454440605748352981741121128863698852232880080439956618009504031188133859677849894122862948507658291759095072474523643184035537367321832029366387277923885778581842844869333333920642069468193344332820719762820474065271653211550941027908647889441498800040592493582767334955446294142959052368691512306805025349103178413086657388442772415534379689955563636742354504450493657464777920027890035509039046164512886428327154980673005853369778567524432374680601088764862604232805876033834239447969032657289830872884087229977100130704306180243881972305727293344827194450483908022675077421373561277806161852072565215556816882664919633885433172720514616308363668313955686414040159394883573241262562200730896058278809677366669159986484726241347724763258272233427865163413013375518054346675657671984064716417444511871705286307798967495871937017910294532920235400630060349765861292649786458797278225426926268814704812414792227129781631606920721268496593532174292675114595719842627832212359278487013559026807088540590123081877946843257931665747491803412547112875507818835548848966701141224763520935627276241121886280445968974931803266030265996363670572064377789271121496168654776815505637156509756997638499709560662358565877785072238426592807173068104613762704819642985117333575626313595791053532495124914962251706337468345436374494982079679340116906897363235479771931922053956571734038457013261509935946052282623786262606623409083636670184390963891164414724437931332329216394579989212893397317399063040472476894887858686718355308919471524685896983726410823669329872469447555008954503298132202962051491138541523842464141838464663369119933022262741929047499000809612159508699706919963266263179541994425846686657739308579492626527393075422732775870918732097176940293710599664197601438210945091700687772573198696652590867441800653544688112003466721173979176047084657019561658673896661749638112612887822587469013089716979312655948739271601551783261089920575576056265270382063255516744063495488493897959569409535516932403792458570999834275570003958614289305994866307752383899207469711959882553932880468402703314297380941742498686253828829449821743342701765336743330838713866108119061460909538657837857526251927378670164967679593733292614488708623733197705896470847946668987233213956764808762460968113581300449279470140301109289821779136068017880370297512832555633569201334803982332293619577495417303976251778827037683433895388342796774928752445968027549214525498457531138657402314954716125307150469046291881629977977059455337542430424247275877967475445611790074815397413869901899946491545311380962646929937297438341617973737305175741989207430269155068055627737377908882201921498964910261262033333607210659319385449042297626568534589221490715238904447584027872637625427423218376962294471519799866027516821916251130118828852205507876866258452574232093408989989099919679127395305868656357054601941908639619173793454288330265159938643398210489960165598210014736118995425810466099392886148999530784660555456615664154180242105324992330866361300921903532023006136301703137528263044343398218495745383826352209610120170216203682696110710024234598292259366058400490329425238132816085651294178992829080450234001490741467255831850960927670922469920525754557177903451698141194443665058567831073108478090367038585101730561919483885260609350576928500737437935268480244615144018318700198737568178614163259326691700953985442891314275029918553947753494976209160591687439837625508623927660573962858894802706188839093602830096460393740024562502653301991561966574443786609441172400992828974386641554254660244393413445455751802693752398231708599144223194943705352049769050379557695574941419986736139603170881995529283454417887124092598392223557609004204735740238452457158537336299835225750154497683242440273338200004123823528356444040411017329383807046167584603017265218689201297330415788968027715641130293415833614652897961183964796543786887137414911737400661386512448216877341021111946032755169219725836542716921781949172947283564135113832585295324738422947010121626417763883893784684115724590776402344076514283863091606065591636067399628068816835328605694747357027953082854669249919685892703966976131458053494141684729028486579673776695101978004818232374082047826923168318315499558145885066709414252973428054732328914469459366224355165103818531765664188074482458869255725492210735930723391645134383030304647910665723971426504052294190655957395775067626261533280776359255614378900005250347918835977732136634407303374551257936209970676847365706805885870585278454853475607195646155585939188197899586697404709158742134869806487128425392071873331880881100565315772010936505995111357097742661555365050327619971036541321333924935935676934791529628712008388477685857583604771140179735539150231202746239374811250108255863958338851839177769710286216740271125249747728802159281988286775988711028454405580011804248267018310756607839782493186715078560756305726105013032712932762486905018630853299107370325193150253815106271620854830042212996640978836069405740962258202241435038531659276359320846065679994249433460647651691583822153322737827179195087095803859496741147323693387689850456087472961804543399603099924776447061488496020728293738975989545605376761033179422754640907409979929535173941493668322893174501928435660620444702753202642700675489180819552952292454237681918405456681379351539454562520950038255557714267846760174606644972059181353333623492052797975003842679712854341155713485391550087591347367938304547549489622640886571109872566177212991166429567428953625436318439447464126632836326258918131153597871838627294371789137787254068810474247298900912585134332059358139358630406894164146190227247571551594370352482438711223930047252017867980524058910318283012110288704480221662690871704413485376291624191140296613748173180462275940889659064193108535862143405577473351931138257528636135641699920090985222245337822073565921242261765909677819664761420502240632109939808674672390996918817039851370339569935374879937896412150281105351642345445556573368597436818567537898479977492574201157896426063681824465271681052466218368112053910611815911000682475969756279966098237248383013843718267112369732392443803173383792854021142104000577917444644125754638584552597095257845156733246325998093811966015350098228366374567730654550198397747090336170249814816369207892799448922184196546965405210969596381467513745184493266266303898674096616554886696199878525734302784274793620338368766384093455206990117122828593963782720663862971553240496726030694780200427876240483152030109278867297358820317426040512593635217296061572248035090237382768756495233973573683860265147197043488201932471089685102825464298215064958255999388998616697897531948096875936229009942058068541519449175215307463632728394056022162620014410809393929389074338712335800445744713393915295351409918621755292748965067936333527583682071458093207340628069378644349682351384046452715686187273458467042617259866199467741722869096471068471690229038504688795054916432492157369989039458284965917010381195583066329915870401864120610363151650576821253238631284086398244948813540036002643902333546834516324663054158504274407683686279888029880998262035975160876116258830509451267058467795890530416178966311418528680834699043551945393162123169569295399139784775906698432889957453847089298898434872228328041939153005658152339877966515126616067792067860334432262665822262134185088780827711637482165060689947473274161552204135976580587972792867882017470708748012446024412251730901602414289134134369645700977305940751475982407060065511215850508891564428774793685667643672629563760610887676963879228732966160342895338292846345499005203763425594096329121003740305007580097800826966548431984270005208407312724080570410375163187589311762600926110899568309222211950875467760368378494360041358553474197215787119096196945204388015743212535192004804632435108233288958137885152931144858549465577591580827223510919631498800293264518660224734053875403328484260530984521622463382365258112439526310025151724603589151320167273399335504547505822572885819007548111158443003643035519497906822191247116509966025065599391024342824395953490402443030990356725997386639855140062460649496556953193416704226834503302546527036772356212411039842298233411699545421484774082466705534165519632822672215757426528220060943882381965279532032739354536459827051013384033118283641107778590573216215780183958778323606064079090157172736772156793186201082293834065238853904025571908518568225158430971662152495818737118353028759990723742664180831821031878664136646089087850014352282123274932239449813885889097414918183267284905706079712168351699632221023759398297942166746702974230981426366363806302692897013755464845277119354763598282245940384337941223658748627507737700302095718227893221897129026090805669363018740940839459014664125258802552957213567272532096209895818424206518450696816716685168978995291495588273358317668653276636971997340433765480910753072651661978292688482790445839914814813495285940395908338987460026798211687802497720768085017569738201832519513740014614518922527034392656077244524575006778506076837341461727448604614263340918687611210342716697195058013674032331961623027639254091772188295042027091303546750586581502408490913530685281061791778983043467608959385553078353457208742885917003617406290232347664324776966803970809199052648617576904214883885282825403053962749535012165023423125866722701183912291314259224358656402594953689134012909739990992138850749937695304771846660886947878991933104688275271896830534577229076624745975273207456490143011535089548077396445937653685722078368124039161046098425698208048314987346384236838901196187560534775024603343119490964434685458754923077551161883737961382845369638423740488011249039715022416122658806847331487352154320584840042102874321554868462237819293135661893595513946615546682490645681910616076209830964758494908089422223618249396066390563194400114561641779630254550521318927502529326180068919517198686231636273855110147288019247135033903831382291731143806786449871918599257340543031371181660348935927588540693380108057401642434336789582389829057735125313708324822962344126096669182894061484409137160454282640875540223389124347229860450212091515350140237872641818157732260786247932541381851668467004776111811738009895327285540436117921900638670668414672533938732448755168795274486991957597882936110272985171029854065579116403733836937319184984756519831462205119990338142861520436680789400251817742677352694047686602456363052439851617259267662759707817755721350333860386400566022888167748513177799915683740880749210292695728921878609133310298263146382828768760281509485056513276152671918718004105916055851458854647499046614522683597665615579630688066156272014692290776410510332275392636297385469002654305294062838403157706418464360454670734765998994992039568967791786108340989629522155187277215860772801824395170900892161125364798058139290266524346132578644344491388172455438792771117430699410624166570851874430766350518605950485154416200592788085273970723919834095360370082874762012720494459755428532420627672437089917879114224150798221113705588461256284330068157876410820246869694433905101444864056916111917104951815718860000069939591492106116017787072499457158958100879311707439862086342750056743178565836113829209331296273503463552876146666587569623388055736267673253906051959504278736573589208093487853616878394091255797115454753821755569050823615606573885285756090953609812945339680709078649469013257165969138395079011178757197885488324690672710795172479910220519138232662734749041384709465004118110635011384444678518981677548958786517533597845686756464869729634176820367455770697627120980320909084151174444475446625116016465166097644763304826113730101519321994669921804504567826396943213312115221680263485931133319552626917237819829414834448729631314364235020864811038113772073920528143646086087400906121730701931641101096803383558058416020330580976607842062369498356758857324196686813656809904753210600477759057603411816268456459344595116639182964996445322404525967185031208516386807449125144780410547301418822592753462154081444498911599497042006676758040640457223075128700133432788021213917013442088049054518387199234169878270151128196587739778001767420807739995138361372703624461432133388259278865537446172079147123511257530308131634471726219048169267741877004588974690826351186304284664791284629346067336709936008214677722075002775125911839501388661773040123310297643981853624109668730284685515959406452870786857466171902584169992220951280253952724293237031678453995346614081945883832017453106129648229286007501926380025641608977131200405314871342391304758843313405237199003703303360298322345123134826850505002714357140514343596138023489062794230170310017923021716849144324934783815915936023701525656410060478786244765380588475365433167977631583319602679911992641953541380193486774693360018164431746941972426865040479847109560240168040427795501621206016036792609691221385024749282739297087365094421291416884159479659484983515278416653672322109605151271666582385461100804376212444822822972696288149352646315113617196412590117949116287144643538980955842365315881688583892340481698046670854660184390143246344441518696974590405546090797289767852102722968177729360097643820915046327489939717376096694732096479458862567409342510089630345084831539768866251003149497418655987512964506973764351433310380020649636590070406813845037492925069619311031157203296512093583831537174380771803552265404248962165507076590770347523274467824501388166237629478588519949085006782356077857853211325961030637784138176491379820872787619403582002624989094546147566979633229850850464214223038368887396315419370188019598139912796013811979401809553833480139577783973252118819192679818758586199227726205688466678708178360447268310164204750740469243828689033120651994740537738833875334594688707305586817070281254780246798099245872674024946806974504073348426359856880642869355332386076872331083369185404171669993715346749113863892875966740345123567499880490333368523802389593410781672030269575643774779476999709214353255480059893974417874721722474794878764510418578736489756093260595825806042825914103572675237968309346921128175534792298067866605018954438147824061512465842688981488495617119247407982691013440196897893368710847597140056783641191386517147631129879261789833403010614200528567611166102192780907381569797628244374840319263138831350376097380425705011090450980020528400709232222022153696401748337958657902798024838524129594268750675429474148482577904888438577517358222623156722591529553005290099044341381651554155786487167148702730815788472157951689465483852290929614592583767300407745384791457737316080340559816254986497779047967219533706224050324050368189962386024557649111196160192355710629264208958600809527030902422207933664913032176920408669265241310969499418365486756792404995073645996424022931993524243271162967081578637627791095692402971335748523035105506424546923936440875393656388620360850761849484347133574362802103059740188038962219823401162161457735257368377814651115610104871001618752883015874806560145801653705093510625227223048233911100672417662178506140746968618180627302318194906960056299346496278209733732033473125412840487034999863809183526976922145315953407798745079703672391422005819896264402142777430037607697122011550860681715058648090038788359102502249103415560014981214375577522662022958577248530329961758347620658532825933166528647473873114353385679466778314565004283734627213634970106780361814364275096941024612660367137048227856629839876539719682221848873772919889892079278457103281276689917730114189308426612976562669751884353095046788510101121587042183006903571643440842985663780328902600849141356890797545883614824689980815899424353115820151120359301011845087557539814335260525631753586534903999078274153648551752329669227240228850789526964728348115343130428525931064571610896311234749374389497000237138241418544334720186983460355893137543754419335313411248069658889950822299172515956727874430338691465796808522995242030973882238966525993354679441088013889055538159407766460618725623611791811763862606677174153789662115843484681742308152136928005318948267591529122355498997023546278867143084155766700314035069649775417659910986137616106907484028751989419898858003232570703913397357256960236852528693619686226095269483786462593480276402124234068197007625253142625402271014328981921663157460652376801766638355211677401198430715066222690922247941193864811427782690248178286725776113426212974345561005129422527457037970581860816960759152706531720785223188696238592449516719788955708348071218266268957483359027504896944894436834313317682404722489815899959508964752515685658010302458863243388614307259470499543398155036280904184974020440504503419910946127928659746973802585565942930463246664815547119418868230879918780110403295395048008848947953247696828302256274534887649854242864599566377395480284576359837012874472294741892391447529958441077880732111587726961723437878281488593970147086350313244883463254504370996115394893491422111995706718680644651699099749181439249204271011006550298765295644207588482969538696085512028342837630683908053645108762551267158994948107392041265083703234241721420620266913334309534626090770296050779316460158972015327967826833780009203226265886760512897133063001292185344486544862702934620328957924497885207857838074758016441343091046524752115353620932981380731451302276560392325662030751916290212037277458315294375433070583118056946029661842752598135657907666171863349792640177566207483966018215528069220295648569610968691902918019173124933336947820843847429293612874469931865709559296347808353086834872754921941368085105145944117009050652039880344596250996698807285548372213078104243063389314702861995587992325549875083927469581980571907996425495533239201713056600920211312746528566749146117215301748797610514079361179575909330608416690100415426790675172680251243245395302569884127587423117556574783634281593827272676445457029850725441818559552104723438394789167083355686054001562379924681762915886294960996166836331965470922354659297621824858809299970169445437074552214049554269478160866535269390428644470826994838561973712120435300261385102515553035774088248011046250976774369415558739741199767955636035254943725622669172348082036897363012701400722166910855137535339868665120083469175831974090723970612914894635665629679573644027960331272417521497980516508712862482380943165781520701945711242045392657187716697309756722335559719096431535957382811084605085445944157160156296593459475369759991269345882123427866183934934127861357478767337228828063101605205295195457414078962271309488045116824719804071550568718015339961854494982855239826763776043544531736986764586012416311707414262100895474076074964913729736421963278911648155048023602370079848717635888050354447885222951398467818874290748471539812075962236380820195674253128690027637998366790083469527162642896110401201442173798666975307759135752696533702783146611958476460846176705035954536242882915595477593677615859504840379226732713456067926126940455161496319196415323561071102814911594448253776677075210208545021901622100311724544505755213024178228346158006713682825449011767338531201465594434203719043773016866938350737120473387603650575890045092923597053262534207896543086973275854858332902760259915458370454277873512150559731543809303072798330115041473540594503945074721670502381438884869673583524599936403899390663561919424924471026867661456402055337499947376545669928364604450222145881014704588741669857245196720779052288139344102361116580241250238907706398493586334655840024498204314903768961210874249089431023899190834963063017123915157574516352671666217876963798183925530195647225700350629042279698340526929649383766029743404404647621326963160888796394480741067741705835570110388971842956207490506173328019165449221508822812660077095317862958409910409056061101096469110083887734680781462268156549899190424589119624450984926947758061282949718574232974986619257537851524920296665367758262159176646237991790466013722545241121928549464839806735840692312063951125257234939341625552900556856455889565837727542459812535236022265646152747072916044995425841789812346527084696902360236993932214481604117271871877185411829995142820081290496838828207241068646495987897528881174535994132594585096855652371342642945659064879930185488355132540051042892804108214071810303651552438280420525896355500560250260161883001732169665139053241264138178389024982081552859066111789315109530263695408993663544181845977893125283214782308178690152592882393298679404322279245566250016722925877176431078523489809345867533058352897972276786447316072588456571722097001953159653971227392417594266977654561916197645268138398834626770672039115791270456138736220561423690311056426231864164227124348679941854993865503594598047168864243847467226560815487678614818993179375605199377075313965805358547560851654381741035016940915747777219379085153346084045671219355201326517555807166490880836511793454719614769518015841151837204882888153511428827646743179452250257531504217273179770709569016666840148240477586474943425841371710091333240052198642256312604056149710433137091031040128512072088501627583344790770982955343323223917838625273661832493147855084654614195942479067891486867963657876062349249211931688013648804366167447072721950032772821886508748518854678328478462503080985015322287321296973053654463165786158364049165904440379317310920383007737540575420022965380900289328827783371411595093640328119210841062639771724560747371677597212113791877450266931445759775152336081460323280642845343405516348454526785588987682545052818431659396589506913516994380438247018054781875455032550293426034142568309125936799650163296511339361514668250986062142499593489468551043960996262425307323726947995657753558795475010718639938842211589481578773949879865471050681149179961378188236902171823154715248821329904068975285719919014030796105251159654919954622581364009676244450451931809378858142303176761137734944524480104603079750141350218701986325315774406215175254425528377223799319758454131118023248352079752104871962969080269586926156506416608719432124232028045166717258569888637485422875347732998879456738438779714602810440216751681722185237012768984682603352550402710917834104332034742909909568188608801787711311471052394646647119729928042886721107145433875268452731827947803951135741793892053508159487045536753241707237128075151546336748196684828162701237683400320252407397778014987617671010245326849096670180486549320277989390854256155659601566144183977603335691436546537446921846338978317403563290385858083938161102044892579315854643748131150303482425823365062897214432649274242370264212746776714214037603386783262800837630758016256016256703691521940861407259375364473456749503323895074292333811342823872330466110274711055388006634729002036576950742439758133624789747391699884324234011089088120903868228304572391215661724586213623079539206090504503464709032410517638396708525628429385331998262337871753055237108133477509538601878384403318986773688287168160142668028871940629904808820000175703146156624646162924848558356068091970826855872520972523728850772951874799796875049830775482883535799332706147438502076828612458820040382135004661835670833033258479949405534021713378789598026717145345789314435638424590098169740476248658099764043542605078566593177860241319069894791742333083240231124666069212722992282236230568266585884842436282292629954512983703510987081162221351166169241612295524025200342803840967651445896801309168728549778623940068707320202314972407349884091520194090313473323472398854068968295167996700636675584053356574289588926882572889954305174039640019587717662477225950843702462033383095835288257153265055615089531509654331198795336119148107720849352627868236465422546580064875692563649346684707383161159416334567767201683808133820464236380904736526689174505435909713837435791634929019189315926704457693311078393153213115420924725062033166968424736493299588352394324969548493886782104612185302677335080018706914234088184616925823857994784271909560881995430068846493325708470395120740636305685058124640601544874686104408619191637839302289184410565947513350547646096928403912052269653297306671050459361508752761450091874157961474927149207129930225075678219753351530488147043725206047916030012366611071397066589836562247204422380962704833789951541863695971669135466275669761793186435715840338120712006183601882475749322008862970411594859806806346700182924246904114209836827397901736314710982403680677961338635806042920022890081728583738598081164437561899967826839161305551175541746635467524908901989642221702487142878614560236648184258721671814577311158825072598660480419302403839411895331732965025509538027757997021904078200408276063473046772298143631336449949951033930138389006158136011812257565511525016050517771926668911774204640764758460699756215935948678697001209789672938738876431480850086117075358278110647757718252726823330628027487335205499751596715642059767083230463712406983930984409671094136018844366601741533556023390705596150466500135605577789349476815527666559540872231889491948954947190811015741316587739431471428091593538917715226138815399405413644546133863778522755838967535577675203212972638719722954376463074441700384480916647912817149205102318860420871651881404214686092393057147355558263030822573378482808664908326737073509759367649326537019467788794319013242279193182075682650071691501229165249528106720006427251723097772810972238359531599948625736390021336495274467441279915553792302632669952561348137123645423813195180360111000828321955251471335184083773787773554487556834637717957429481086722770295786903614573209657294192337948082353382521603404899496369385236393968090850134793330948479454301434988373257197062946358642680475612296117516604597349687381272492649068941381663828780020879007530676363240501479166532838390446279779055424704186274301163577454617986327898186642115919058005026553065999985747545203464904032164126269851528966303033861030019420877491153176704487717627564071915873152502293584289058816640948833957964481004933813277973537284367242433455028773686950519761509431492183489997537305983197740592971716287606742087737139254185277043075679302864214968541299226431108925530288008608581003798975873064024461239953101661624117356258457132284121657859528199234955433932518264051930279265503646866838747958870595979334397230602558731008455640842871226286431513243281309558382464738771719680655069944748784981841015233188140214769741419783066953599753598166177807521337634320097573986464790569659451686586054433477979790436626168143717338188972115058170641847171652614309953981622220802375337791804367772644832563247031469306182610476825092196031330621363392393308591226857917037766037388813480892995663375824768760256167257212885816906893756658048836920200049802314544953905292749047589429723895923165880119057418860635496466026152059485804903368357499100684078673697389467241974729560138373423849899923438393353946005257322439768372855643749357535075981535455894553241963853973070892504636326098030836564049522727375839997335896907964471511056152600006010741685008381463696478498752838516558358873610278535845131414370197940659310417752018767647350146724125847165498817303916937914993882081787581512520980373751353101058616791645814133236583247210657539179195146301126142616044604853314841045317688570078678572004179908969455206373651618374957347720459452316577632805941208021132200196124045263427078980959912229975821215673873472424356129339895975169928067763223245611515162566812635049933586664023878091629153961106680183900248294298299912524630069368241152533762208143744406188309936097864553944112508503572131964044321288755874039517826865837808566340155263654081858016450673716525797850946824894972773065414091767332635042052080089334202752911352959183919506758285425809735733880921807725712224627346885492521454909817635519485290094468983626298975474470096080455018765604678238921974206940676991173679017151661318715667357868447615851832255438606890786413054436613547383657195668341769299547168744680050608517973725817144989336720077496365672250787916215837924306222266976007439405304287742031269747050621204132511746188017488717167283324547865052970863588876691311003291774907343581586988503543410565244698825743379666489686836041992637445268025211779526424525228672086926653397999329176560572500369057707927913652327733151464706226020544160704441781654111755079405030541312274290005945618319719283175956770349713439290831185313301407190937089080818732361736574760194490502230311439687470331973797615542432232519461409512173421746407019920634664843136500816160647232685043420619857644190450034683358152237751035393818024209997070900655955810842894323847566278093400746390208826060891887846238240094598594615752336892328937376613102123631880664918743772475439917053369267408359670380691645268430456745204958339967452223050953182271243583897190380623139686623365619885621597534023291584580772162597293314268381511075967222028881799576787631347713034580577476174331892787310328545975419244067346755629794286433083737546246949309562818395817890460998760524388396653126154568469016196456654291240398355000177608583445606425113104073952673926725239836251570344649007020908965478807229320353858367880557437975028843964666461383817008190744994824441998513663907782782165799971962588141074390311517717833888752633707617230769447009282666470231793549249904450502855749747386322941445930204243090581280783550645556877223012886281878416049755194572664258489490669260119681489752239009433883593137728362824639884738839914058782258193707465827851729542118998487808569310151356734040734628478206493587492175256078065976099833548544407703766920513330134344997092646350419255664724247892994880560787814093709735874568288599826337976704623568010190302965834943124168503872931498495486873902530372793132335613146277212649288967412733212519609796304396133563522401860035773278223866905453207342063224987359456436235258473672247510389786238232460093363461557390452217645885207232324733403785037878291695446235222497518664107456361484972338371084856547428346164124135935513418346270453771962729763114423012129374313065975890383915342727751607972002374260537804720904405416065078382132995652689973252288440448218151890983907095909692326456260095036840497118560906791178757902407831079882957571738543011642471299459027351247760403056617217221896197060683138484187616833931442528352379939124507655324039307175467833594296193310749352768721505274235863199744354572560911351539804641850236442233538174679306244498836351675100857009508858931338763748477775304832420335144525550800102216654348475616482840008918372008617520556155553356900105410910597328325393272194453818001363071750803457235241734885291547492894631064739241244805624292097818854417370237294784706905328122055257723951062370060920704236498320118056053623702636281728853588396370218223580323144306854939617190642653885714467503591260231680456965672593593449806894948712983079693074851266277174948292065468145751185257484733567860522199081728723709062115612086443863789121356483282566543730605761996911322316325183229007210976629416246118822702095599669814476506831495557868271153575454495764086448263057102912792877140319721243208321107675695290110212936667891698484517726517558663816045436761179427255321040388325360443145460967943195736836777458025120395271292075079844660913378715526483440889119396886129155350908913330616355074072439568585582110975457876384219399462365522750576050549818653967091122394333757386329220115038416421397052997573493145451736587116174743011885493663830202885391613174837349319870585625621924434710568910760515970869933335713413271907790290503443831808813356827819675546360599982140465018285325707315496976405911121025765268056436745545537647826150172051801487145487249312564001770177180267281046530652934081348180188537740983221102332817200442357696350016637005675577382640583755805852377635730509068117066501132064737033205007081809435028872238476546500410961663172316842573021449100099579946980059111685337487836844690381897280845182603143038286615193861414205837379279875057609008950024951146065472764660852728284422993369009811448770199997705725157287983551613949240639423353696427060103213501244178365327530682495925340233643766280293112585974582176608463305080160717452321388438355876274789114770298119336246602552577122692178644255530256014329706504093084914128314930770657714678126511390622522783628876137942119557185064616944001807351379615943514406839995234206930270968759104391147638047066517310524009348779566589451642481652923037867675235981680622500070152727091503656052998709069983401416031024650198168335347249747743320528018164817986898558053581747020758813363012905235011177033630856992417822689465994798043773806872250636437018243934643213465051064401706733211938918456775715229759702880826021443923495193355106076000321045081487350069324400416253546399848812247211431197052504018452017906453026327095311265765214183255664669917087735908253593687606387025928385814114323982378289137391471746479454502031290462848698996613043552889105567114312119447785211228165518195449661307806756909189016070221791627479195617011211563396215820172133379117025387820601627488236989800907667430676581265094098592864380988872923341821234238592430001474777566257297095657437569419671146014041614828738939764725680494220435513395795002456348622321756084779526041690349798365251793334313135029524430566213281536106316130506000124344883886201135434838749704586231167845979033673806641508820333917217182880018942736415062820697017255878077146677341566168305515773684951254323032561393560846832561229634815100071307609776841828455532192769046431415814587764337073997703887611117186422071993760193691345517910729959988818167410393498771454029663011009656655834992629898754366229878688879164065112130352512812806371312124095984905591689963062061347578014426351245595777854665766008222185475701941213015804663211967740139284654453850656376127891482267948176053517760818500449232089013158700189848533460679764676007847341764958256690008949677289699129384822667783930463536902676208421232206365671567094527211506025188576215956281357133878345082632025530775748053084294078605423606766468706409450840715216351104827538393433292267173320152530444665806279889045847659756007528122098798635970806777974516122493873060984807386919609811187573359667236347283020082468256947526659635521515239164527491928222942460190638361820119102829939750248286000151657784889936041511196023567504266227719773999260566901598883947633122279745843404540937674272928422601381673760042697401962425157354650643085787021989622054303648386831296957849063316214127435705385308267784969865156805628939187624507719273832667300081668843696437011508292476106975904517430472396192517823512425752866984015860315311567291834378020057795078641473925574019812688857071090205440286303034585330080130032948745135881729785306304436532022250269936309511796062920366089569656274763227757340592706386268469255397914269761231512220013539501604524195006443430307797458393391165975136293380057141073152375378576155629261564590773001367049945181694178359002026637107255695107473613498674770400019445480617187940462399349500373065472422696944828268885049149789153632607318674568886301362247116149613433053178634571546646441698585599848281815770407024846105606358646781068938748312306516927115877630855788729766397143693010105598089717911820408797340429895644819649671465740847153650213107185395973771324491533485105836839739430443030579022822114332306553905747545701044462656044257119088504610098977778388718104816159975530174275947215102158639480834614937123677457158122041650769605328731255254746821934837966383359034291599369691054886125899115795306950925546146779137261905335839095658407082455354572720022927167881130288862876036402627007772205934359302944086949486752482919530501841714057302260444177215354516760944261790201719690072850702992526411914874506366025275518823293674392037166703084560235584068818729083344500390421098173923212595873426736499641818875114609091283175070356924971422361806329515094300239538682441985680939951087688517548324526804556618932277774478447224173579970697231829598762732246628055416537477967613233811780940657017334796687055049696596917743973138956904685790574885468900666318910720987828138273861968558769531236816712627371599763563662866537656552202766645487589827229758508871683673393675496670884616800206065241436658155842387018465205712212604125060121305025061607602069484942582565363710161442054736885003032296420608118001597425191059444940095284928378581965921566637507294978985918163418802779298526849122197877892269245078227841867333961726750158310075537894701341617757939961434425510840863772565932538709888868821635795123022574383896192710033548851895954477535141755016049124122064544755973226632880955731474896292614119305191748657746295547036572788980888303566924839719875305322248983234519348038850293786939384626853960814597630441121615698212654748533803213679305454335599624134559329838697289552425473847462080285863314228399273108879505941986957321794558379938190370410510688752092642458535186226247680678392321818556904481747800191657081846343473452240214830862192926226399003114577431719504396283207422689577106490327225382416488792735519182986186916378371495760753543314547118124777745140309885990138850503463227346257177987076059005512430852255143770866623792857993803112517430383138332207392768902854984716442299275271791770670124015206021623244422205848514225939012408336114112373526823551289635954441643654512347036498611343529108848043321147595042336638113210923471718598160383746830524053589704942199087926311022063002676889530814418869261009232628732125783896252670851513883187675138848148982153205814483214294378205110753753456094747740794516777635183412902765907135417574535841850281312850268487640114905431876681865407029753615674113081158449934915065685133583431649816730170193692197725309020092479763884141624618412249628539260223620795347447156966594982732360240213642729384429073071195227742253829103652862985385944267770738534018873386878663705950779817549295264616905335454477881748640299510620853245425175856968876244975083083466040174304473423157778321152152519991247131548650498179624658074997965858904160935860312607562331217783785658836484427126944682969902561959439007808117597617541110370308338740795776776834487834213138746229361460199923799942412179135222418173467164551485267347727598578530551792422123419932026799102451400514665476693604907901121942444089147966140083411374845014752226725898208152217706388174812339131805758607906531085453066916369680192712967268472774570564232209615124425205137258267246851775397203351007641306498548684494412424024368013099394832099791280500887970186986947419610130946892343482434764892596587365170581120287485532544989960719896773384366569810106530394421806787191878111067125081939697759934371578632586431485672327653960014174023366840414983091521109047758042751970415974093069109665772510611267239549744742544415840437123260336150775200250995314014945446912950959979518467978132492253775191790339284004906603088528058620953111545686484654113023301807570730864174720301803826198180065634969658441494655502287003362490074210802769352518015538888890338844774837181324963113266747783938608304954517052676446972560953318546158018950614265712512975471464642862093226470318516681885841072692280205042239587639501109688519197893410098606224843366446851751347520264223277719423813122399524710655539204265015266357144472869434838786052239274460203245504337313758583047460414688101580056782384518508062341125735888761265159520437455720263817852053395724612161027638033149928608791321184926369224678220723162463367812108265988330373020765217169819207943060184347003907172556737692608004231114996841947008564366074974992854934776176635033834910680076982325726534773306067426995421505674188831069785154714025206975083330129278711489488238957489571007996742918319579254451094955921105634776073403310203361848498417561787715144611793536781274284177378390628628911631276416705016460465977785322298122433853935994503064052450661478674591785941412249730868415158173524540787120557592518535555539348493344728309981572972756526285924163058952015850612479064396772191338913017888821731637733295454842739893611338114090658735377421312587679804235646645325626536504515208247855589289340032650288426695240916776975652491662752468208889666522217206052242422355691644193632868882730367961985315177776928932509896703266651180404945395839775810749378111145033429844369246818707053964577109411970211324235604744823373181679964994516561829370065747928127032427322732729820022187029360274053634125883247546606615541684803809406608419484141056836957208808173419216800969936300698454492858409032909904429777890116958873408816577239410520369662896067728978835461296938482716664368971696991467592692935235036360060977523122122008716409030776437847790559497396889602051564394031609560563138306030746090710733817305130706955518354677942672733841880638037707087810163653052283319703688437533099741565022273295455981711365966292719627516512292525659930859828237507683694925828286267981085587881848064621932855909491901931093747361742961289854514041487237594318779656298804513513772885808183838670510135758882361990764578452907162642718087298852890492927852894585443432971997670982036350519697924640862991571041919427210229615656676951472845512373772956706277551271076362515699662312791409441486236292823549929314457320429382107044795136085586643451264891563026889856145100514501583380714891603288035343279097579797272011389726523670311783323300458185471751578613594637060609306775195426947654507617247329854185619613066926654105886830037532144391965064874476225194403113968274539128312643896553390264845997584872582128184715065270714952872710637998995253193050822481715084331007958163586726085043957800186749068920243148138722833843467644981088528244258303973772053521027873839899742618571338772384838446318470719901518987930844811493304183884924402080871883461707361565507963578452263876828315957134601794319445380836934127576568738346434452685670591771143231375080652798777785090219713343527013023126376163886629608550564342142187802328870265478936220400365596832701511780873134172084203648179095080329301901957140707100389973620260897218718574376340339109731474998765534136544406878959193442722836872369226345890375830757809090424432772863444275810365092263762236907238008317551576278322589132572235039056306066626039415970937200536700357969171816959623839282554411560313174473658095267402311690035198802551696360157239352148823361282221808458542738930133297272480859642030359597892807214323386819188772818017959687170086285223703472617630583571015517954509659813867290055298163792181919371820817083666409129673266446285621130877128786235529288359116327910167579121108292410257330784267577613657240761762345918461070015225554301391210273714383302302057480053906361434969393469247525103535812308022840731376166719209544467163257017206403780662033459030587458371396015754372898593207361848966670438859582182243685125460396497833415776590203252646794758863950629869086894670402915485975395637779687765543042580295629762136890096829424663411510971306701667757975852511831709822695437673674938440985132170712519648916274778387680791691589643196613489513709388394474225874593133829877035159345169050865898799622317516573836944630213712637062837881127711225152700183998848458773028074050253618455618281216585522754904744709898726872209934705638042625803603472891078231104615394694929951565788063075595175652257500710932494307483999759691641229048099240258859876556025986859492036420021156716001828192597872791321832059460607694526561833039173487676620961962156766098254186284609155930578112836530808746850451055537231797793642891592659372757629637347336864340288158392535959989700221255233903970795549500783590981348346317160779203956479973627729163088944976306574714178423017975783342985193622211366730128248210111522707510101272458803143588076589514184591756615532153526305863559680983072834913914592630987610423552612764606009529468743431403371727965812130685269647480045501342327815482189184707844415209624041466839007390449870921532989440324675139474101660908813499120771912393067233291068292439758070356079066867893250098312831984659433617515337018724997444225908628746893219881529162347830550668521947217022686389721380208000591972966364445639774020168945788402883033984724377988644404915228134251579219149573778735803842494922784444144033648789069710813604033131691512600871786546067518751287441284836601732293553932096495405785055459054971361184338010090954729827345889837654379640707738256633117277699865902713316892164495231345320066610325134352986041990924497962791442010888360283760430533863377592812337176911342157033593004648983346454954143866912757218409180627153085698421950209573342705857755172857777467183200655371889042415110374613616151536278753426487523210429476953374305774384209328991644426186843074403296889610186840029508568662345824421953840779484935689497279952523311505651338844303843611541914832842923053805462381381114293370847091405907821379026618521813948803435491311308520940977253934717789343202044232468854707751849007029380427020022403717166993289285370364817235082584062141082675874075160379709578507477863571899099188208355831643613293728338184987668741802202674694175134251730583637156670711606825917345570304136505464776598787783799877662254788220173939950202094070523159048376508080397251661925380592102656383615060466936165430703300580072552914710189862745763090803911765819699003193649136594445688973596247522526603864440755684057261125161812622007310366518262098280450163399431175481611207198055437617246451836719518385533929194833067923397173279571041772561854161339693913517390182618254659727857098458392463069978634240529104143571385472518818409022420165792301924981911159938029279951750367086302628414780304900202877977093029709428591714689749865214037474811212014543535573954743753928008311451781738860662996308374617943944304819102791152725183540084820981628912363768208931257213816213932031944264986410465962157651262545100646840849386589207384102081566939261463007514212437592032851086794219469337223323987456050198713669866202931900491071573490934127343371800093840788904465464086489145346280207222441200764401246072830056348126889787472843323971031201931992192233013066997708043605330370789750331222324700633036846332926777141481861963357524940639491616307392619520069878330560532376955443750055825843643409144511592382670453991346352120515252637054110213274421415585659235009424886833086514610845172607252064851298119550713344617542025695340332366082264404538575887623698509494286145721621105884570003701509928101451116181937763747164428772264399094177895651851546884250738211356214568477581148123060077231304040197415385269022970206296587408285031555258548051464298942768133282375810210614286547998602901302398231351118931083373174577725413633626848573998013684291484360737597970838235566499715852625619261179888024970641225297765187761020508425583676648861620652666544005528460645144128926589842266330241286908807683094247062377728042591305993180487672777064565915548301811979436832762162151972278618418690946726115178114374675664264248024357292063707514766398227389133521666154026687630735546512186567662959752368888586663771919947813974294759281471311749909112307731519550783062543294476792199508393241468797296282545620437355227858664687201034002901996456548349581832517644449057095964374590629591108401535885299916538424241178344265933595239534193461580770093842196308942115367876577790735150004219748438451027524002288881981892893205361262656635051310747277650306633021851881959830041629276900640934942500024729962810987137233956471155498785600843278149166029637302510397925201117280899412623395389031117554028120084677172943559490376687090052982448628489310018979326531323913082052941124847284337655451481028174720832555497959683310666083475735114989126464071468040973548409914081464545747736862546109665932096523651357602973148433183434384251375352965344603493676091590982763109612858039314215782727612598150035945973626965739574056678186641148720559274740766948537080674211498926173911384734071972665087572177785447618054683061297285787186112047445414681331635099078815051272991630039945686862214703057866675847503921782270886727821799604647478272631375869356618381886091510454889127143506479811218338892047864887903439366537634572645034371616539758341106945563882100628998599068895503692355819821905281510565499259188656443170837264500288225092073260447562632633697617052238005553954650033322481794889226093908190224570488918603235925064623051361791194481952177916205765370110915082071490191471964656074593013397179439694920982810698598749377916740552860278757500032209986181939105917562209188272067322900561416462548860228577107588551410282603531170293548474928484169799225727363653353885649853881481111264253226782561489726697516533326143677558174354110818374902128860831673952044115193279344815149069873391434878157520929492447305897791184829984148508466990707016641712544996298351167338561268492402166251062290170822230875436195022505575625919604440700982606766077494526958614606417023670840618320397334483785746163562555265111858141180192764553546723845018327615515374957399165149494612273213501389999664671980154128359989981376681393625681484775864013193772571101483724340737713622392091828388920467508117563712094845848437797047099343837042816663851901211764104367593216976782514287207864463517462410203264659940394962646334175009861859097445153446570958604150622090777077592736063289083216686457033139331807506852839799397266695597087925914329426264744117112626649842538264745176632726829452084836381747057633297300199473339497353403938741108692831252760436060358428823239768291777735058711812197247818543829427179804723179266001296690055736424878529357608809773239891565630140202670344529965844839010169530282778637363838286520623885461095102404031767214459540172743233168868146271598919090299956300225281136126862258179052538720597614580708420980775722185307784688626378904340621080292769211369779950683054204601195704104732398430568552137478079277535777962770178430074662492242671626675089063579318011821099008486333292587751970576745899682818509912388881562626434314555122522517369151473295543911334860155047395959859279208028116556135556807988027779580837660318865864660135806287566144153943415781220259612667578829914951021423581041419182445696399927773076751578687229224478485593633045654046786258037258718899354635073516319500415661599520904632502953372247746263635594308133166938370850233880709690827071593127437540349310373385920161466709894476667305836153616497315427559305212869458081538256929886825492931408827916445291394113372017609734589158147681823404529980791178866393835770371842576052139215117492493200162558332483196955712157841160240309822440582120503653459812993672095256647821223907906744497482676672382553879637920740870463462745805454148135992027643506320980716241317566586897026173729972613735645651641314710863971854648319998760575861478150484266463793276159596065681978813280721598274458613074550526123574440978629808911626838962983058142069344954718546485516997161070308333044488125157797281529728843743645447254992718674391481449975676201738177300235140646135825174381746150076845391910207817143532109939953689892925378920756592905735349498320534907790373892730054048431491598940569983611885053793237344590467343663733028503710697963622576597985249645083748287851414380578039686418288033618316376102311124280802271183309071216899191997130187293753775045422967656961685251950434530713747571190866142903769133519539441482087531058162560285432018848748456200651842648528675742172573791323971490667586030515931271146101684163862605967583306075621948760997880709049676436575691995333317014016981383450576664928306259092815312387019153774246170868470974581907759458769120618333493661506870928866464864417291721758205069991345042627604889852524577433455765636508445772448748028172289898685523857040384029179998778808208627269152094889585522979855458449549323932617137451315363342697048379910013432807625499706624176045280669061201809014143216537143066183834029347545083542929914594861284324290746117242183481177051257975131257382981409795412285137866943995577328615302645418744105262185454824429062440935822559185017791150568383516780704501893334212929392232968980197204175113628059595878844610256043407584847077729562005773348547825300358209040059901399029415980419937123281668098481525651338254531306100215891076472501468533324408198319104388228865673161081890206402827305287377787351661145202461188718911648022112005397432064570118653831844011126621485392847515317089172689333608111175110831334872941728783622069713400866475487507966589974431236224667493540781203770495959877287697121924581509629389801927313176559188018747887361829543926931560901913267615620727852731623768977583218389565592677292200141257444035486297376709395466811482822094173581701783561505015052619437307910070192385405095857441237846723753635576298948533737837619078994075629112216798154965165217920840996551578425212085183728753226853371607122411815640304271858311057321973260892880297344625341192801744180125324461765246439571790548228048709115231784045969525709917278995162593830671949108479552505531714512587869806321838138667325226926614095819524430439899673010464986594136033342081598879710679036036726786645508786223568330662420968077754264090880346760924195569894894291838002617821652217146562418725646370207468568763627427441009673468386861783143805308062743556753317230219592039769611220097912760764255430375062635526066395867569731776163449925168134380018266045036034081861995561871917565667269768964221006177217816205618812229124059646741464915680972300438810881391984491411911755044971594175960001707808288717010832664166633154643265988328854008249556190500371143772683372769859518834300623796443662243809285662330405524546174856513479822205698761928589201052196562280869334421781167719652034877551897067840769847954659157551675119574427525641524215859693222583943766197823074087129837044629477486567800356247932501343260040722135910267544889283664111247424633224275273842471091783558704131054057690222884538070505688827619691150787540609622009658013468267888308674873514268020216787695720357948430553093772941597351007944854708832657794979627675213532811257210177981895998898822751314581272352828713714936424259429002738291631601468613043953133209525917554869399408018491776225077346817365956726580169797181574758865459408497664092749935626052570943813819328081881588295089715744025815804414221167096124831069473012626807857824462120360471996033607497939481127856619262505260416703661745404705107959175923846576705592404006304881939484098345729257372209570769991803502241904831203597869130441815742207498645100887697393170945195571778754374842227318902716549275961723691194199437403799614257469085799814209865641488994929315630202360368603676604196473516862000937975609272612797904689972466509785954384491407359596251525481278633633743971067521086337196011821752306055712284399192767236282153819699872388740164644645041205209875432529264179598432184828885739221101373765705900995744626027745452969841450886387265085819177420732325800477518602884138558608278807664715250795501769649453332587831483157148462482262893957945934141225078950827771013197462213329192525476365161664081985516223677828603063258922468876655696433049670568665211339636665272329714341505226962715347838899753721749767154068481537751457799839677072679274651935090429468080419830963681673534932506302872596229601417277651211340282788295420219378903990598602729224744563374999246642048842152449096081361515331841250551345198925611992613577256118929948527530587328747239275534339115836424439404134311168945048728826892620126537056415914931280117962193682479288530449931640177085333853338191311878435377836076935498743532917464099286419973074929051260839933538245243003706527921352302641362905951289106887647280211267505825671725302164181313970921007937047905498340166186751608425365760921014203025985016715719873305578546466713135617774631557839768167605457142687979658181251459935447724388539338611526264841265115197587738157545507062939411432376171173428414491129313450088163189852470472592682944777998183506331538124467527297522708638590461022573659790686999179162072839174470846775787711138358782881788766588111253192672036437398654625882176478783855170840771926896567429682054776351242513707793019426718643612101076242711167974576741861762097107537615859582846572917111177238513488742063886167876186003702561511037871610275708025307606523322460306111716507020904904150520573131147055189351812349580596109052136068099910998978335250133305962720399995963394882378878912304841419190937412908199246903577645931452714968939643469813511005072462805193016252889603214201687991801711619001525212584499043348478121654935703103271613452488739695217643923743230628524670067753089211587695965374579888406883731386000140667886916223488062119476195505167900173366095085808652338569773143815153507801179101653471302754269576853168472636958745755176308662488515638180209559427784678737104683294602464451385371687016345674274072516019207124183432139245223155417780709017394080808757179544289353342403950822201569539920833395127601395833589187155884776333794624169156511585605471239911423978590283883202700800568069308696314045744918103194801419364405897181545461173923449980753074734158215730874918463345029576879226108174064280593799101180999658481606066785468769878131991222037535452313744306995741344894351729036971126520700088377003995850712627717090791606937882536673742709308232606906523505892953362176397535241015351874358877660067249608909711368957272889898155067326038714826560233433497686753661840844434532835943049580781911540898487898436790414019470308876488681214198152459729227746656431538629945225235371342530734949877111754670763356627759588058013076096484134522132151056228241129355185358973396639930502246405201642192569442103334874428218859567825640114141960034292770943791989782998265939054329370514520243213461824879820012889973632405709956061307761745724193980165489407420902272615262076553299264429659506057758409226349993433713686951251041729598151906935110862061195813148039068856428381176055805705607441928711377312993789665286382876943617544097720189468715615125241882262188650108174877683725540292868667798293230290948713186774281844070744048763216087616242387281435791502832678366759763640549382082882694098248274947147218764569984193594148740170707680897769004152081926734195113139475832572924391094464571808718985024302291296660269905121181946904520229566101132261757280726460970215388248769811983211428666734912572456251704917513545571618253051268844600834983979998626624123291726270739613375795011604602818570413268616000732445830178304889106717330415106300052919538613395581589430234620793539276183914304423071751052958917520509074597970999454455532976201200836063018431014866870564078923863505364950668321215572827382743244143356642700630680642332824713281637530670026337000338995245625093402725063619566938519205968568622419782139898275317906834681598252021767811116223135280925023868100505887447842913801911181560135555745250859720051056063713247513087516617826297765009961619788942594351790503740016376619060044517678902132517890243383089758852377958953646535837702613819653686492215517708857183518693767448676314938478208342975182440354738913744411765941906547796485506733875006569980075004863270009727868103860566006786443882737985868798764150021236475983781090825262253712110794914371788688631690799838431461712443227013641253412088373538747340333431194488123224728976530840440276470880181100115656346941201242849941736076089926615876044828177370561547409288195650345234547414940062852950223169319762820656397986522973840495135449434488853151364268828008571976120094567482463392343614380337972799427708453803389517585319877864553051255279325262323347496963750440875920882268425513731458069761211059417807380001997249435332362196302266733318766264113926750888821620152390035121873854812978515618613773117097997687673592327558617024879123716536001430180233411226953746395066893170040505627901557932323840045685796959726131406477448755774914847774599247097350627738809537147453552505723796846450967507381381946929149712879814432281820703408382497639499309822853840146804072806548333688973944557799220033601040324360921785074421776827437336757693058852401314697807832071571716620963809483977031061135652926857875994948908418052414498612270104676895427808374635775614851262206776784562162741358260994452027754752400165943439713766702874324878259393226971698814815040693347918915905595037874682525143934324855517242004296675380666282156324223740463134008069734171924402155924147336722220279393937259266799837443513455737566061740757102006183153209576348781710631997859119260110183893603707276717783666240829025634120398786842533703803324587478881889998800305391258773313592635495551067328318825320624725981573281616124843398986564865797865878297732947841141121309960842936336863948240567431111040630957924595803478439714842597051124732839202555925434158721318657909066027462912284661462780421613989368532252469989093406553741587958714919253502556041292933109788015553952834563305882049541147970913451625616582554537908568660663375993021390873585821361239102747542051429615051728450081625475232628425420165204367949287438363225886289551208965077993915758931937771842130730898727708712363444421454105810293806419459268041015570067460428436380054653586892233412346651818700713669558095922869761033363752265997333151105653188546851178979293628977491878415317980182983296206675795677330111253728930768811394874369277333754250006449071880410661888141751675930765889743496307680530562807530722677748893079199476651969032761398681197529791846556610812035664533964565230652978056500456538023290236857695578185633112025266212874247384062957376296048721286276037139685880939407376355509622837912714067997116753794341866461089357306986451217712104494929255203642414424947234918296022483069781656191134504191843754735738998170576843803695495168055554953653961483998129340443942705735438928547387903799329527542790808910556515355993003410487457289018629651249010472486913881827770571361162675470643259052155454101081979009885447408962211178336604317637882370150813909716024850434581836317895861663786675714257085435183880760096400457323758878929920745287198354168913145550051930615661476204908181678335839709660952796733384317631063747255285601719597556066382562320315477153022857451994428578409101638393298275336484660813043040886515987415933331362457751837453441157174017377291164273532158248490505787608202996361097968843127034110421404542801859787462578801096772229794380057254284321382849034586489366706261393948916821331492581497481962632267700173700047156222620784879188734404920169332807612259468420321852152828228787996369939283186642286448039783126085832772429167949703560736136962048865295909271462628546212568534384731141644067680805172529643670806696315949489504784605226469540578974827018302706495784868220553378740190813941119368023187724266921546226828225375162127138609695277129727145713578098945051088226643527531784663854323928324140534188163039786309648575119253979249384539965712677047840620098343593015362775373416416992487308509014031007544651702267004512858455652001838429676643630747174934685976867883385194942829622292030761562184901541669172481476901378155872540215682875726894332305309157194116533393792952257677050669896591283635558848263644670759647892587388433324250760503900819987494647737102464073328948842770413127853254370203109399310842220239572560392324142102614023676993814707847065206825210449074259594277114283036390458369903363880486659829487858972808331243564969760061552035798008317146709892970314738239782634997087474380037833801180100393617158981377206114920139119680901769037179455814445629248765551934157251427657324062559805053986236565636427153999930803939289319814280703158742380234650010350357137153239401666636516848634912308437299386467593217660853124651161025217743160533735387442517136924175885588426521064805725492859179411270953997437517859027509759456708442932392356323469538254485713744587897268636283875523333569901703331486436032335793973955514153731763468337304370711903192453937656402901463607019526813626837283949587447868619971601647254072716241158925382755461137205961687114751660802616891652727658307348312369182927721910511033417719563303713931147056679924107515271476283906362046420609381647891375141827024541951484312043862105491023273534649415260960055201789274718400108440187772376144637214932743019889706295307710017083804368658999400994184785596091529597805998444330575194553250921067138597413471445828595149107762762256844156197377005431403603903542537131674807755631151662651351991873374154359292165064281717461070666375749440587072054779993764482373049711557483709541798170758766075617279403151018946850607773352096114640615273348519590856647362088104706075153909661123428247498196243236886131202665496586661075972994380677490949202651476073770055722225664458714936330841806434078948533330312132073307780543776325116968986022489090353419066497831377945680904190993081181575513581688088970274807478948881444861049269760617623081526987927569911013816184466827440383106231625303051624521475164804165795884246792939493927026008794557745324550269570774209756970007179226144074306941250327721229217692579048752445675306363186755039965155363031466605162897724855476822327709440037712899249611228219425437805977307123828896805410175087349617708860090786815901865087892252262864654165758088041032287743704580947736498227780784054773023806506617321240052370248132240000299690339684866899334604553577740585886045559487005380216714161768687265867419231213990441093029564430638174690462701336359693225084833618584737622291336223405489574627272689316831478493115441004545093178487984061935061346641845225692456801053715657957073621526917732441346389857696677135244780673383853937963359880896803950202963454084175765001572894302834527996776671656788310466828048311574107828301607156289663329819907532720820044183734595844841420261952308463377848674162137307667851981456287342960553650880740105711493178973947948857598426046833769363741293270088045452921016901457521161081090478370088865102541469904266341531408641716309649323147491177557343379218720790056855525167204969090618822730888950010623670408963472093650674842902999309061939178685431249966718557569982978011542475873310051377490480797499252427087495184339852210320295676174509949445549971672988059047751242472722372328711090708198858206733663138287196869848472871827609061245554501247863135257095991341683499310718474824942503559794133782817403337371962363710859650418306091249637840143195498152244671196758452904309391176257324184297911167559891312021909064297382206279122913468071789524703282896421477460931398191584439927240287345175161762256090877915216932863413732338320295217649002957960511509425337065840520990451727899087957955379777112523323141970124812331478628675813349566461276542910911794088452638009172254876344933477359221000015215114305851892488609235801121782042925137218849905912048100303361317698844097420774436627300821659938956451633426267446599370528142766714146600930436938993061404693767004237951151877825117139748712915599417405482764486802453055824878581944198715749481122672608991613148523634794217201949621483266167218489432124828209968916431418457369324944004742842547396878896593350453244196952595251192175474137572513850428261000850435980473488474195889343688819172490422366510793034996905954293165908510854394792511345500419019491487423290776012538749449683279568525323400352879696269291101590389649048538878623971706048338509179603701487880812830025370637617033797683713520797172007157234598072430976509156084132349453363162731574336472636381952972876306697669782213015113581822403767359620531711488727168923562637467096068463411882285680541041292626538170524049608428973716768470752550571170495627088202929958429737865898974806552782373272256718168735402249271952712676656207987728946666479284059454203058108405534310860590719259340296456836732248606711685409916925322295537741254523407948029633647456650182878513710306311797325545564434336600357571292535277889554397359865649031420905105126099557695983899948365823631937294042357245205617712128215944816181960981879484461212051297587877631041849405072134889847386479344664642655044417014695026534127852867756210531813185452123213297458617536392010281987298574112306945353870752286314828168981266223668147963691667136576435250816427677754257152329563162124408280387750474777220410868601077900780221771808119400230946845429263193582725684576033418538715400411118596964452711429419380374925378464844170688169095709940649048186401583220502869599724137924027846626458548245195042501423979198381798250292563121649873552030595244595257888379366255676939172121854264460891247556694142460997981404132339243363194177298683216529569433465935345608129970784293374768097580281454547776187928820610301388589310543219830794362587597370316304643350470549607428172701886740068780823261422589508432185472252832129700482495437035322304666335838760019825918598046577138198200837511836349880334361168568457542983944612879445583861123243021034450224207717625329502083519529011169818059740947093441630324787049077945205980910844497589862476434360915620301783024461365255825062025325191282964657636556565967469915653159874113975071914945532383438184113193423092224463217617988554440473494736344555427998051092317001611529323702259334706738982823651992351068529587966598843157781345727901683516130330731534604826569629116657185175348075005755330363479972733921478741773522695365757369004993553887716262138623481974481328284190358102704579627243929122060518224353214120911049010311744129434956398435179577672876016437412288925611913703124622304482460141191699314525533982687143412804641402879603668765500232288955985823924359441356904244387450017116399100616425348672172720181866441522815015728198753100855577430764664174542307660531632411787760302082395928908048333326840277363097115953496780735969179144829790862589759449061675033759068789858162193922846972461055065669634577563991289441618626972557008998103158836745872281463833934164038089668032323835164514316407063075331937607144870323596065877020567572277957810948476780198000552585331132036172423152047068142806053508223062755224454114360482339231402556494312200915561826948678316733238998661963994156008251388991737444124492316228706539071722218486452266158285369722484987439297902258200327266500429269407778741722905278849905771172382961066038015569509243365610759984945664354623728607121350687982639948334246298730660658107086023262916886193156004087502471668130236604831553180009132744761866959566619999084677982545353814187099678321669552399830992039599726664533586336521914960910239966497677216894647624773779382528386998644900970318669048998705454697129879695624391878459390172820543410727280950305843808162299823612733741711252229461797513984991767193870672555369695793730011423360908680849327189046966842038330197382231109659457398372777780405509763875572560311579302253684195068405777988417205279747128991668900008462001232217364572093022458408216078105017888198201658221380757850848674897402539138665228581043645867097105541857260419942786080714837445262785141188167099561378645352291850171667373816634688452303189071078422212441873213833237905274040854608905942435179657690404382606747414006666022416139725562568124397740020950645085805386026515518762941523543540239092753980969895123043135809039918849482748215620000373996737538363991359702640424872130115117188677438455073388376632659208270196232205740261854221477307376009170063481557527134995613865475663389870752105861940082896493668846669412392785894328462910280273070207970365385802107881986968327898272411791121520938501355449241746233535990746597803552366157443782933125088350363495531397878709388794670872917594142250286467686250528291365424049510864203894736546057395954718044307283621946571460045619886780676039789425904465135338613206600661015606831663955290104753691521295922712500982082208952395103189175295263286840774011584555786964438998289110516501337896181531344685872937923957067344639978787808954757336650274773033123746948160794212864567544196100458187117797435745501759255569540958233205055770925408628966472584081934279693246833476972525621929107896131868616620593827316272507717454558353377324510182545418084947290673644694358663980074278290115289120815068503180673152155656552165153759812801476507933757655048334145171109212233057089847247803750746535466116330110774589683651379774333786279212656773483745698450879988038123561396875122069864712044074371578967913086968903777229241300536508330018690494573872785037789033916333451378742369649961061073745045711387568669453470850271383035020308110625928830659038847855141609467008939996043726986288194387007915901371520768913610214055121045631701513893038487283081553390329207913029172756544636094246998209760481124040292916152757263181074183182585730583657174067870495368635801612673301046979759728177156046879019617462360518127701431043062049898585788402484168995933441541262559784411982756720362817709957359058776922906797383816093353350455039393953975389259598522232993099589157286291365194474275210212902474686689435752401280945437983687216779899355223771813256841082142749960286839722828933146371255638429445777003793242507569280067529957358704464820713064765710129513583031178848157985371975247942995503236692723895852758489736230096325251007533506141665429910750112612683154872977600416221530880085750182112981655856844733444038994335869947940204486457235946499559714325337202500033188841105863151846612064802189530367044810722025329926425587711926956301617087618824453101922566892070879053910312486513970517167487551139106606537944377114100678930617758986249683502106080947852383056101128571024061351305365684550612185928011066640272643688125581041406739159690073086828652441852020518115567947203027389549493115224430817440356100056561841053499288598284542404049390902940632507956363254158476372660916143098574158630681846627581415164903819476706031242080973093801562974460137180743515242933879007169617154976938052457311758535492758314664353552217354430771206830866439848002883042579164462104080728682091037565560633386331836464676279787456735940733066913110487304244872586285433849382569589038783212999272413053261412302337373907780412681070180685555250370787398892750575086151222694453227998438174971269565673152058906621789829039619955338880502896693329307841528118782637986531089703517403819360802813138455889163708306783655737863231505633480992692833574366843953691523649212463757361265270853003655996995379010612808183691459915749718358892705305251472720594319346971050393018492482831141228546488690961840865654638809861552184895207982473562668452550263683536669149574454787591241975025467737207106438630729154879694982286941862173558586170359476942995136146982045351705178371553203746634663386527190866982004519632010678701994855115042463100088873132829337249433315015822123345586919404047734450123220018040424301534424335175134517496264104149131263673768102575478730961922460927827015024869821148381614567382859061720311649876505694428016644428980251955369669206290845323568384404636785043774213271880155361221689237169231650926301801864666631315202990784534850241248955637909386287104466674749834472856430248241419827437602689810977513238488370624766675210539120566789389151815294548678056332096052532658956109353306469358201291372015606516298946323868337639444932873384668350376200876158045079462880819022218390228991231409775654571802298416984456515587081322624796771914617651244297781779235822312834940671837461947497467965258683356537417557677238172821778141042048233519415452445159157889410077329367772718838215869001932630924351463564363973564899262230509149113923053462165904893697071861362338610780668658421443487819529314945224372090994214598741026693646619367246863305122695787646799341218569177313825820526702762739948563570209533854014549141094479025083398929416988323370268965173539862341580045996373476509777750719499277350061588015992681715106303918155469242286760856708208642220996983784003126475484414325129863461901600471619954788672942433850092356540871618337802870423542585872771955054258571814384773090923721475691574144766774793797294416621273675830817884075970103715534613055881624206681061448116915964756602926626206494995715904766198735356353533228149698149188358215931189869494021979374901500811686819615745427806573628437087200523018984361200473990399008712544642053348230509489374012985222330694337690111356803867992235941223897179427370254588578938946120092669463718865536020793762818637254464828778454098393477011197628902800551849661181784160082948242186794843338271239268378447789522312516196194784240170287186469483907069757899839199970022412996051942360716070429002599189644637572773592444774925215624438459582838662560516822755780807229849505761875124669285887060601540512178679276435331379237752713852389534946373380216108086905866811400853094533982199449803853302839142583198139431332685187564121275108955093154084964232096544669403373427037921906168261748646958952104910914337102531104523217614510192744263893571615783653934485679474058291284101669620715710020507782499740100241849191755345756323349412288603134805759442363621920097182028715688829158657201661602277705352267242184523007088889112385293029405199404584268965608628381747370318822775114520717759744339670238563530075952406649895702020244003906382455039585255741544525879634979859627710357019691772837390617723918845750892929400147838221048863451569836554987481842412004222357639510495221541877120342683751537295213504936098038311598403646103914068758710146170763722561899102602797476769820823721895637225707572170130480198920177973157287667711925670898822812782474971054501426988310695878497295257475777194464000370922790430822497570324405653287096722505008778188047772386501896086404137637966286945525720587824451550497466627385158116628416751955465429239441737862117233264261515361610540600054538203431648485628023497763196800692983796424373227531754521338846178639101876499351079378960962866775363041268990117382725813312197588215084201857112778880947737113180518899765035041236866603429060857893734575714787639133729647869706471486557213122039764914668599286970507222035752311962085016974171838713571177706786261777804104580830121918323665288118030938970023510410674956733170169997799802066826411932112008147162111391315147063791078362965182647104797837866968516859933032030604404697839137209486719079719627580844062991425435909017083399782492336734412263923975336140356209162273549653554512408977926444661328812588965047986179102398620457320033944768725536497871827001616031035629600267971022864646654694685242715052579478494524533835179286903099699889512942062927637264633604592747630231487475669331723730722426866216871928543602601337964745076316484322374733851104867353620788777032073615079175206917259207822934026104900055699388389776850308048388011266369337013996660571663961627987237578241619410198425393617347274520727605048221265336351942896349267009289155559503325985636057160870704869715353078241397633454300739485222920842573662746252675138218008881071523060967876211340693975702626335158512598542427922754014960225577236110423634346071074929177622501099329892441051603361960331598090561661981621993845899671160020917575076450560821314317973059911850035370152328330596467839811800521374149929288355482054709943403050223760244454596753931575855980235616594840656779445881536315908742210508877092985354878232129431886928640837463449841110402319598443548734587688089042876614339580021495964191184563858217371867108928373448096248130387358420081779794305921333271671511740734981528903590112683546619459597844357778394485712507524522618551837114013891114856867448977813717847860094984246693022489771406216946232967260349363515772824060300906677597637890079690267029846595124947752738709955610535946653893368920054154260809886842044347624679449959783425790117539751990810582425494038867291537954533911348290004240599009179399605168828989446226850371617982010763253645553129992705055749996674733480819816970193334575882661406304383927230154947962982917612244114416848478562681630682612870189594400826834241257095224027835334703507985828749222069858502056162232633855014872801447573066278536071065697422276846004017513729805073820602217244563117282939701322499670590816111622148811386601893655940068853967559873424749625329903504152826722561716590997873370886306246762077641038475885226623767257355432961289180278229981522934954388988533813913541994408638824503645481820322439161258608715097881658228853293635629163906518976168876071167781265602165462358671773858565340182996115839998821233551369771930568913699490749987092995761384002241670884393737664458553834787418551753152642740444161180395472713194956221476351146226409862812039058653151940576819830885145546472114265273211927255295076792544164878121289095347823722695720334923046844233784440209796831324496137799953383252049162445367643106542021628846256918537796517303731055722801105756432247239970885054524637370459166212231226576668864991183119628633990659578383337942800897921558067633878249482321277834175537033059156031011201575980578016964205579817659520397819312836061421128841101657535511393767297467130513540629202869368003430040484248997395288780673680146318529230436686371192908445092765538503176898767145749325725496374324816787223183578534596031956527966276991952284591962471219686883797746958898953588093444190178827251571304833157551668619699521198770605980940786860163440222965069892133377458570534097248933657231154111891353209333522483405564914769306677752290355779532381955410977502145723651371409842349144349903468060947471683529500061513637724250125510724393102166839287800179105057259786193757116448132456409389367349018482251978687679913494062222125598642095976923652226513782059572995999124681971317399619739082955860085940364473980166052755640199412870556063481534851945787932925665354857961154509530787564435130121965744092699664443850165796467519924579805723918354940180050936292288650487036753878560373092736568141791231607835330639562259608808547795138922501454676094197330820367895693047392266138330719977324839848453089549880585571276769648048909346433111411955599762646504827600519922199046761548751615177658877121031357807002422163787468927599304299833822244741768090091000850425151399717403929279454813375246712757446155891396230505200130384219493617030200356540503707166299614802977241367989994024822189264632357193068263766571059809722204978000782656956266401780956059999168403251171556204352107224973968283461590888943974739846998422992316294180846261529007199925218075063636500922406884375996641057547450710060722915599194603773569255500591577448425926987617655623618227015117126299733918942681157111237449781477812380092627436786431642169836476162414701824993033107484421470686825070626610860534513695069158142408776491053387587035898526593940215235322642189790755433012745645915426032641769497466450962471285865971618445114435405228601463027832795780702414698875727563191253067210936140074488319710066713976104451892371136899986323296781482401319315270476556171737473734464075473498101868198990142979753165430620289148861959405876872018695341465447399655701272997213117121306525433879605666845277615615871539507406695741761785035832822048721521490555590540862382556720750061553075346988353531608980754261063310185044395482441433813275300297980531416845592283619177840612184623384966089403357136502143441468022904331054098440514789294146790486540935523803469554127253073639751354968438383373896847351355739691418045495823534099116683839480745778006311086105552225518252051592471604696862749483005541635931243415428038808652053409494274439888058069201247870966237058610495039847047369980249479272629787702467285138510828311916770211668686113702201799652428124637751819440272014971483957772870222666817121945130105118456880002364462735274553197009634014555086036234804587510486223764528074264427046944786061749272372086311290524260573465976180072608533846702674734891498863314079826742369834879991933492620661333176563736958875563133413482213864979420233052942909558219638251371094077390710621258364196316237045837117119445874743656672906836189959903791178021980170631940537309517185082232208593379835131710366495607350096996220203098979393191769955356582566384644303645658818115098719639385316634806440115960108359970965643540076061884576169135817304909191504563972476753347537875260959912304740878396422171778223829563700350863676111385531270147342482097016567041378039151003359127062610228994870133575134068872256768423080299167350040050780127003259527463323772980556409003644310666251932395516490341397077647403148357221585309862439224254761409884046724756216350762446201093916250146822351853224574216183121773862833170783763203120617077763828693332350400531120111677904312940346134948189915682246570804635986904177422506424117488185070023529230045365377454328002785581298259199724148892855758461994932696230189334094352090416966530752217129478861953981900327119946422751990613570106659202008145387096241945648201427480639939649636513084330947452031021285990392979554701503408853619360849169122296048712815959759362788097855719075442370484483672391212913394089350069065471502343471450481020657564118937835860862649735424236366200480524630802001113837494160379907686459722829720367600489189300415623093081908074675462123336494545041105413781410525546584062768484432283923528712840127039552099179573433538542631981064579112188043031676413208491294655756845244983153655369830379219064934223180506685067246506816622537054589191803964020299320607248811946920870011953887320372551003027527957842608048442969116085347530273920824495263687900366587607632601652443080682450715383247293832690846218442907463809278985047785357618801675400274091616751927534127462681238698103523866090571296425264970249825689671084287541153709292710574079463735307671798145972261625924415871744218914637761205492118221855224525759344466121886757675024326804804332337911424535419119142063413182781421258211529893339664433909319345918291118269171833457340630988505352240153790663270575381933659820978613825364367706155030683390533386676730783459577834196702967297083439374903364399720681988303062606675382298783157786346256755309990201474236139044089434227261824501367374248737826875644393261333947608622501252918367885744979817331713058208948372889839268362640884793689487137257240475540320718537554085716899932228659277962026296087565727018606352762334625854263981134714090910129430364151508570271651159117060230549500883663464116153081363748961258880780374202148161282788729575423798112325029845907036587243050958438649970233903898419045414625883330717513994386189075006010127929300647623963081968847618896614995234058590073596930204266026892608232940521554933826459745397560316993558331097363515709792534252879832306968554020772610913667032590480136997618904448828396770481264808485803525062698902612081630471692561106326444910038226873753164857875896772786108877478902144613360992415773038794845856280275810945963005092900850014710407970860350067872762769243358491548548624216158103355285698738301363875530172842352609867424666574897611215400222796785872864959625038255544472402173887962954741403598859940691782112424391929468011555164772963916955295179530762012857973633079120338578833503205214272809536756009793007121320770035074887693957241657671863956671032108776680128532042934388789267837565725346527825936055292639478413633707466838640702347267070102528793309729815190284540440839951310905502182228048628144971224988183533321467680136829891044321216598633133615142438885624745609917755601558169195028292547680537507593305711359445088833002659967072971641355204335685607941986948724323419169115714629958982207172314359039914980724933795812665061750078823532097375300419186070008389554059577171590082885054828091951452365339345750932633904134938967488885431728127156128672668764844499305077398994307143045142561301043742486838888414582347537358698393212464828524644485416487033993848292106709155263577175237187511763174695788042892040145064598170120141437900506326030834225248803583831042274107540870853612614882632940714247881022003197544273986265491651349887909152572012774608041971826662094320823271227179494318695510105074200470777782384457965894646460557583223388280345629376390825735783461835507639331617605919264327753700497190861740355959545725947259561933925502413268179575188433467211940525380620534949377139813191199582563149056278691645302108269978247650966499697893705557955344876966087419091349718350434374052983832420472670117005204839879225389601483546263567933057897033027284840604357291416904781031306807123883322933544190307950884116429471285007582605247737243003048938069968945088290120995897968005487109335253916640177074686636365152201266664710257450588878602507794010469694856832893367099561777963800707492665310305437282764175687781178115664174758949037569088448509424269635699184346103169042506504040212834791793074568854364232253264418704396632086845351701293445532352153740835604815579099422490305047359839555260485371328241553963999414275799820701332108923534713759784884057967471197763796263116078463818526761059085152563847972155377604606980111200395196107334954791657469787873356604889976053483101861014481095443624541373091704481772958477019442766465096444325826165676062300940559752510816460598589260551612731988071044990519327803985438303012361382848005219308345618204387279135140263459680171893921626101285033378786459165679923245235501718780835870116900889767706918526885717750406157601070874511586767697560008024081841022028220958737247925518586181020788892745374422750829647494166543021732335738215269849241463613441041592366261073614972521972782770723320322598377761302781580402076139966020196913041621319268164639429890221708734222988792146449279002738559440317138883845996303492130238462527656566039062623090777622591399843842125918027405037889765912224941854659101251253308031427236563898143154646503467112641803122236807538425284786346258772866928292320473665921501516834676067107661317759970748332476293532354800151792344860018326681524263247544671111686523074236468182142545248708272278147160554852137210966649238353380825068098396451216577436836440521163918391040954807099603395181610151438464222609862623226396572165032773889023727264428739825376515579717477032975805847392975707883049261709804392824462397328021816540349946288576789396617515793911716182246345275176260962075273126929848522027113062575913068883664039307790638701238106589983494843391855005108318958861027962120167740537762929106876883120690206326679321625788780709011503477055391417034761104836495137898105689949433100671263771253796729332356775500133586875575936619674568707103952864626520153261195047266281817284863153254643619153066841671119227432610540246866936840831182666338586344083340651603678628042182546606969629884694264340156999543592724104211150468151776004882279197446341454335926795547460630994942630655701594808074135122754706414352105125118486951622417342706689757480513254973086073736479224496180911064188127004129369982011755005165468856641848364212338858131759914880583764962433105491799582759802450446072606272022512935790943847059739564823391141226882615998367016560040785659387980718661841252310188714477309240881118922316947940022248132711636478977231427616607395881596976532988138939062287840526495341185648589679036813403891541930971171769449628574489634335014515621566140387226091270576889735447844907799924728234294547108491024690937672613682540058234804864981477338087379107558826603682617939429682864722339286101149312952134039636508631297572968782875230532962006715442591817358821085842009756489788924481572310887316644558636139292665729591630480485192994386891974222101394962054121396452985635217326641823413195587293947794001320485215486625293951560928508607437013708792792256781174179521856062057737251101604430867867703661178401501876739598330733383850966105729856841726346881814028052991673049532271776585418973609866605451407917787884602164595422822630524266734039760135291396343450642246684682403243894629102894404266178522992218482711483169408711506644680874924065210042489100430477834744838198864504716790807726622131547556391391072965204158941521053019365498198148345582350314500129175499181638981852846372169612764219227744811308979780201258059154461412853307635154912740724773160633761547555298952101410203752731034026131190405702472195766031673020059300162823219498257532404492897243945248008320760496393558318788772076835436584316964224358640887776604268474296313047471184864078662876445211586451329093025264676207616511660252435889187385703993836880600667498459696480525036387388853535920669284383152659717371809228509492744417617455046925678024521740150665064224034287321244500068629590856439801835355590147212313864766757866711732604902449233006793786586935756199922347672055432294583238958078048291282276126180298298421576739727877080308912235441569762903540607718557027633297613108830535947260492581838711236361899762347641130980252453954373678715215225761178337679647841323320714059236121272623496006863743983807070314970463832982093312655957444292400091371451464631550144104221869591988363668295311829245906654871198926938470484356134992984281131044435397680025778628320259307148214657325475383794455727056688555566722417836546875767614807849991347421373434161367231352866922244688444091581881387564183409236450682692180958316350909079977410513294094588683494893482969029346574461242928823974487008428632478710799111735738939559163799672581827316574977696188238010870520745291734324603562380770213721843778468231553474352366939102357932685570102915633885065594195568311558670039257950691799513673672167766684811360603097889220214530371796644186237812334750892397301066412893855328277355503078317617064801046653424465965840437973947344656746221665541081396346960981905886927645045359082926082643981575507688030301702173482008600753549535334702717346542387629265889958215298681651110041378106761096840983338746265415747779139677089801155283340163040269818576012186170185521118490978547574083820950073555305855857130157253628478996856045668252904428848730316846179154015012290378866568543794946146896961715883146934188006275312808977514648022784624097739281161568692563471665671273039674330880859417829142993019169102372603190951325674082868677693570748892064709269028124667524689644667229335492994384299042531858280601973799403270700582141307479600743513717166635004275479623431788684664762264604425159579073928273099157060477171083093554352338416302557789688348870704814107320668395006844146747056743468084066591107362255640764417942307548833474109082489645700444024502493927105719379532999659307240060808220816810825210657894634920443210225605340143366186544946752915448848302376403490966973114758317657397501791063409999549554677087097502420542164974353857314888572999747858981607412945390816820866747843348268153238729294476089679317736290411290021364557175551216249934941634947869063530456873813331057895515304697231301750588919671904237670483501414741888670040254910267041279325095589811869499864084014976942465642358885231753663010782025346952192789418526791280270210964236665243514036967238407246057308373413093283392707440526485951664846041752896773510158839388701161903728042765066489425965835725141015075037924003794259353924181066652189280332912009791682935320177499774524750290486838553120603967903027325652298461424494741435678545392789604228624209252700830896150996981745738592162338913646998436614472352789112592418051526837889957204310359548474132428204810708125462139393965578355227227712395783573923736798684401786388192525477949827352162182898902501756352662751432806801227575964286409827125801778396182353328248281667767357373525651881087143306457668717539333077651851879830486962217937855217211651265524586791715796286026437416492233876620288844551930398553022385346036707958090720807802511889462312947533802938835698612443415547261084761083925391761823452106646245199987139815611258953887729030392618372074284113394043256804933122319075904844626334916202551716860452508327165515387993787881300170333458866066054160549860801964837243817853836391167569474592072048491100563843400723968165241465294187028769145727634895735713367857347470453148358644745208186651201313216582824354831752173455276515011274458994855418500230729571381567364919919032507128468282543212264870260244261669356846715249078834405963866361747285212653640325864816378281327077563656518617869301098268268322181939494870558174512138662595647778392611739803334907213957840589996851519286294665587248223749814734138316098751096594812648366050980706484590910395831202178238252609708304982713039955078537473191310550110102717634920094781583088247064777720146886945177062055041790388055707074063841987285514180407069722670342893404378794771718052327544146951343162597480287885799233518528817013782187446551006357435852224329815748394555182082774743212147475876046039228372259135749144438508345681875217336842117034089532688661540458189171392069219090079552600482937544878641050173592981746679731101975097634297640768126679578516333245650120664199690958311660756127219507539799620424173956355851275375407820350440592597850004810360202527467494066110882305754114722750047065135120085466887854411757717911772774345793461740894581654323243344419955510215325129862166645604841110257854249054953748000810871703413124738300035488332910135882174798101412166901788772070999840985011649160989495044128694538944155115668643551896787025404387899158761848069211317778755401671725031495005335754880916237151319715042840323951173168306492687105591346779185915917257056756122382004764464996587190768984373440385657579834638944065443407986463063134376700791617664569891862933595861246294720962149606684240631045987993904854672390745972817192975539178627312352019424868450734116743972792271433469535392426559483984654041749986260748969141416406922582017321577775230910382620998437453889973273212296698771560340822599466287357767796850554277752593341981347913620731767013234612713729897687479695980174024795025635310060131793339913206130547671323118966058049532863227076071665387351826032190166880683954018065523681203371993850156740912458272737328073321004367030460147827943084250261509835776491623953524392914872286500201798810652962247192526202452880318707116523063957593795689416597889780903448949569298132434250827861896509794742129406281195630260330471024320892039471373663445136263480752042287572995762606093493447844016597713671200416650708302093338584238840386699422997664334681128931733374749903869761095364641147337385841158218979464962089503427841994891279237900748068590972785591910394926646916712845533150365831380177182213502324001172404047316046941327068184273435894614125969596554830067240502942742984969972311289966795829134975745531762536446847704347532750738924992824849975477616902032095621906359791524122953232413158216757527854167473995893654823233732734985638419111745600552950053984184926634995355047110460934105590917596394287109173766117685329382843951973184566316706964332888569727129891729701317574398798752831107575883280254112393312760474916893527967868767527318468106248258794416944566494861213312478119680479818495450656839386990980017147362777812994459960697738266445232615539712205720774860188046713281197630980046209309945823496186176178656052247111592580264850539223945629687959178345481179912879068615386716138410538953784498516782172056576257648385961082302417717291712880413182138432539269171208337386655024632602779271776136464237613403869864778194497584534956196820132996355451535133211113694573542849495749798219777440409147867675849997876743144607031313605490285193030584776661292705215548925301980115414828343550668334845635833882539135351823283448816408822452070620907268017061213649163278337219377896569550152572663307052589731755628739005517788990659580710813219700451398305573949711370042624701005851975750048046402116837789686225224296750370672309284820265467350910956128712747040859240749053025254125640979816407244827702679505716204044012348835670095826956116385341452731246973827988767781181122941927238368869382667960151165162302007877520684432227916306493039471637812033140327111023124695439758183992656968303370494132918095304354545934096216640506189122387183506880028700542489070375178225604732373651769978323130420185939965768557440082189096755765439735771133301557097111367128501962889544741427925392361934332224409300535580494380872247428919505797638948930013599020936545508405285321566090941029477758944463113771613568016654653525274125005280170339205130906420978141560540747983081933503288188272030571856850595977776987875617029170715582113920977284722035004429324404431431908607113588196182546714821617295815442284033821504402188002864973528262801765197983494533729821622422808851767826064727831305005232829006159163722858904558284243044994307602093949875346969439058907125949046103760605089037565381569977706341761041894611096311934924776179993916095040030890676502807673446582762555525922968690838804818415499890561281050256936220656447157292325617813561382576638196474474492003726492598910036009058809701271303780972493871310414856861709547818403960143199577370630414052490429856752241163513032204347658370752830552927888133997071755496103034145750220109430295164150395390317459873009018978981692012800975174213570291247243550392271635201550478651949584673432763650359395313632640220474589273403028211816810109928386799528194183129507449514655243784754566844538210243297781577692105373936184970331456328936569209533481064394195921662317472531247721796758816940674501478262129647837923046651723131757909127524559782899214980887044682024932513276636305182438733849705893391515537784492560059060677228378484012001666635253612758754535543080455925509558798703153389878203079535102899302998391045421838545671303741490451539125489358226952275856761114132075428228510834297117650358506396100479902795991655442587435039634629325341250715360224603607382686270779185255764851711713243463214481627059529546026885282185483814413686001098169111121539411011208340265581018405391956123101644049248176770874166866308082362657844844830505218816442567638721337635729029552882034392526903712232234590665728806352197570587458596128428531979693485480531512081297333308562076385170029556046533915702554193615666423571286103656313300681450089745934020484172506822389496164294558289690843032932821053323346901181335084786612744122186205273912394822817792980736054830637660068803084999203251299683279256140863709091726153246131675538258685522014483009532362059157796743360660204716605184181593523122729192830599870075302888488126144403691361852111998287815660786859052265024065236632505766430065986547357139624586501859791619345904017712972913846009023392674527533022793357773288566526685767714608389573735671383002677095362941460867515557666413967529829309924090777636937880244967976942065152719252882885958848897171116387285083701427261562283135772399776625467381155022164356548012613015858876596192207830305169333783408313821830195848647222756635116911071418006388174194327721015696613589025156723690712137014589060846382570067267090322028530429430141751036398721203316604000758428786360930453213139356703634462713558828457038261561157855395851128853404940025824205728648636107535507716166682743583657158135287739452356981036066025849362619562884812099457273667570661525255319099607531785796870703491757515264804733963180003309221390509124162989377778378790540186000503859639790312824805806596231098337189681609135018113406738185112835013377820471722890372479933726947977903924215002962528202854454308774817460415178165902039035786173185949696449443877903842860230938289925251803792917474513053943712507752514718620485136569415968398819419084027242921853197962036526949032528307419882460189381397935317501415523206320691927220985612888476491430712723940364684961379830438387422702087413833707205521825612913884793062837111381898068010606150182029929989517047312244295385191585255450332618799254431234102664688635363988867254670681260329745519480462305780358963510825714897261209143396019320685014966622368776603924606289105993813168139416016509955410888364576991799294685567688957567819392673050815942903399076423361428610760781563378344395012219373159777293689136172482873635949988649804520525047873219491594820545000535723156539728497440233493827451062921038673900506655577211582751435477043885403973903929837168306704033152740189709436304418511280351186927647179928654159005311203929062674523863594202647243438464459510454359794871141964017684863166341740604066238204728364756602222687919050987910990685386074393743100941267829771628360239937770357985542982916519552893027383428101269381127247578594059922443514679092281805749274645155643590109992112955894106926149515012487192027284038055861692292519241080256420070143666564562285678404024425303094252765173565420166897302476924217012278320512237973914058656692991531656350316254679041723455508076960561608331337981147930702958421258164909356768855956711777282934884894940375294091852882331943569791539615798577876381678095872112461284127093269111005658344647919346536336817893328081534669818792376612037054292018257302548438878513085362143261585645850737713098170872966010427612338066628044650878303401429310218445336473150365981184179930373578207903217557183638988423797142168372671361271946336244082977673433475284244580283840966953987093964193080175608785190101055775791688818495011192284750506915548363110515514796208210081085338493681326699275268516344252663716309625040177610439199979264057347795815174183161738699549949644051596332745652267461066991359225084197615658052588269637919911218263310391007878596967909627332814334836660985485051221938417044379899844990329297003120363368510587395680287945676160971720489568918225899125456470389340618629489621900101058308258416994297612037748206437712893015971526673894936361949326149567708633329471347607200597024416973961339122847034574231927007683908837401883771905776660732821756340857144889861713236459384006582240559901857345659314116943693361340511129436474730001330540561861183979387526848556399096394676985851246384226315400348471826254641168954220472802866370951854627762381074946159266866983047496578151949646489033292326605092127569590440091352982031862019381106921526314330196118128134662832746032593167020170396930348157659787107735659411471080488879683725632973296243300509641976023225249192271898462375668562152798220780125107097592044764260945426844824362476957343584095687411854011836012020943385645200653891897810055433534984838581763804300197839865679816167161988570690642434414858469238106949182213854383249109940852613259676837097369551732672542045860976952691084076704153547957533063214424424031769296522022543339547331261872649413179070916028420763125010099801130247219195131787699777554483569555924945676027658451635378229926821982040354392232859042908967005286234868644844323722025707084869418668303708166605936526851465816294215274982754861248519155118526613453593199283583594419727372431250174607717799803652231390047314461922893177985447788540120429220282197479861089385949794405770037643169145826644703870202148450102354796250549170274371588361895181589024506793746729498246332734175309817530583764831343175823717571129742213870100255004588307231350258284657426000610041707882026104450745526514965156288057912779642496553872705240512168600318589053687064646896779439995736139709065425480940333439211418842712627149016367148862686922140642968663246691513025408319756858668307559296060004585251809559499990927115610158571497036530738533844318448603326535964737019156281515821982510093273394507512327086770113063448705114194560448737176705545139260647187243801990257414108837607338897805115435116732165843919051642630529067131458502054121665292376312246329359590246931112938988812276203463583322545559907071592714318653325949998977561298621139256719684179313702906434957366456024406434438082058372080370099271976453116279780331191608732508349309501759380215429826841576739123892318130815784952017513263100688817152559798108128693362636573394114411577998584870370423033456051773301176020487908753660201569592194499829601254581337087251244923783780110218083536992369017235354504022418711219416655784651013514799447106320414671814595426368555904046973644396242472077154049438058424721925181123819648017984314676617707747758141595345382750730265391594404973964976860260166183215895443483245645161913704682539358121955711062522740721191243994044976036914135669740498859566400438244308784714050359975866060105403688591922268449033149903782377330690848956131087485991778835269335492836555024196556839439647477636026279951892650396735069996572433547250222080145858870829566540824480684063422415840050560386119045136489928011213379474701458404694289610846016944066907129044487491210478218813280292106721852969797875591660998170480692639746696520669883709077758245542106143610686940575093600232150363044186918399057613459250966439283964590730239515238628105099650707981344433562451921229654904672122986183762866803623071653743663590708070048761815012827444535623386881873245540528554201395756336024320268813954901168810729342797908545354084464063809946357391929686873022860111480240675796615598548392459001763454887682132911416577921253954788238769304607774336806254332533739889442360858053539350093080118091098996176284000969569568751327330387111776847244714883761495577519766442653716420619175379761777289918775291374251764935829096499735036586533587930123475901744375565375665140649659944024601419961264174985334762945761852577920886447909422692499144994868586423166123228352004022776954197791823803797223599180010072977066278179001593660863400651469589922127640693602560058399557080456724870230119709913628114587861645484194892939415182655465973823640035694048340938286575922143095037550334613654871355269067029333579587896876595389414797833726733309400470340149407171276071764511279254983442928747273032997201518665648389490671816461217708051140484093977331301148777496878185505681148363701042501703844687776080902637031206690157212367033881717441429198758661360970960240455567721908248514803653752977099817115683124880002004342282206802613430966027749184655001512688745653279338969797797203006491678768814250060574569083899957788714126432844617649284647593101771367819171601405186171401956234740183409735534896224890103162741263790854780274783144895818788359495991795747356397547885364542387508613411938637307976413383912573947953009943082756961945976744641432646124404881513100390384562710883219446592947898541766102508184591359856370470825076487887300339155043049230186894006707065484805121905432245178879079710896002723342391965281242734017619136516063487690257527946231643249519165619280573356903615494179534636048474583431328533336583232857229043066276523542232934262076151318209686112268870299143443299553852500941047056300286863773636116158598199262764312002719583059672043805926352094496146067108703104577727573424639139541212921081270045105465838654542034814072344553175092736620151110746862755928285586517425756629808002963447199103950786066747925332605454044993118736092403230219280120494751208227543117446461457705573799547412156363435892184888950223724693103403151469583544473655006889542031055298537247664627293747578924877495634482714498585210663646971835790444124404631393514594234747300018374205314682195758626951014239557500924649018221637142828652631332381946035764227778289742907141904760301714421915729659082314175198899596173399091874150045240909619964388267947553440280115176088444286253843898679993393134246259216776484654247255870538182222143624360294919536609524021827963359816986550568201624753424283555996880744331809844663200077774899329125748233146023724414757350142816208969001419858030940074955157656682719514387849229125827105685565354466983752648997099041217643010589644414081458707077774080236252778553248684561534901312717050018017274695673567609256593115960129866404269374423065526129188447435092439177979600422084532276857308356847522560043521488610647364387803953440379805870192206197923922300092736847288782730377363815925300196115498857740687108194423368299987419035541491503501302908425319753653949806156073708441774419831009381761926221876860946832890191737768856973752983514750151063235758729272390113726403841322525288461997195702087844419473054850668084660009641511321076352838710504583304207779973631556067270159626031136685039874612142221041028172201111233202714939528334731334418749390617853050851030205743929857227568135827568843558933165353881896388339009161364041308400222502090568288545433384703658184866258170553734966831762090124237306501780961838382448732237030094830270146599077662851305503698461391568474752864154469360428655267459582497212410253896699384424162830416409949690599492441609029324451762746196120763573983822439361477305288547594076797873794728426815359064668376732985566986389595387410540058958587497151633528794536879844437942586734743559679982415722539148500809258990350547939959680682553470957043135779464497171822188209945036251350926679073617722221335592751314704315163436398325696915200887266787050965386064256327859873110424254587462668431625758685585475036574262370156644503119705790038476984744290962107431294820956129473413345606378219947859384958925244156198205965188228979832860911729526868830948711626081981671486980815015644729607697633054644510692150023552232075258279402445115494337095908873372135286173337299995570705123593455916476408777418914980346047609185133986517818052965881436379150581089609248488865809205962033852465948544583468846023902526469346931209877906905341083827451591273704558517741807159700236060943049038063426943437312184053762558123460964140342137967357860789441149435287572232467667555330896297593212343204718232651962020637154516527162471083359072936757146189875603959190359334554075582523045224252302972879424958527947580559862889014353815825314410950616028778039343132634730454108542672879668255758061334644407781462732521979105728392233082621124617113473670210124891140345033032426569921476739882783077732753043089127882787452222248857276132851802384002787980996619922847016858542518547789321492347719838044418461074820863122106033439878355783711314733521531355392480635512294848919566894315853212323083656028705147095539015271281722987286290059345184495678899967942628103056182492444914175523772931920307881763406361085605103319796648353197726745930884185808324591925594095517811105835149923689636163821441007399040211652985337370882544444194917943230344300768651243584009315749050540518814203533354204801015200615067677650261660502874100465721025520988833603228602002975162912054474463217133203210864376105720310552015045216807579709299252369890987112783155431727813698674261347965750411228854271656227925025722009627811115764131026062873611146692115082043081064428974936858377675239981883610762263526835682701920162500477945217181826634359918092516372651836724274060216871194945481400706645467280170355432655674462153862881812396186650256103883303495362222860770214177443663690883666726020401510101308605747169085256850234571760247844150876866140453437113442492995508983226053348561877452491250559269548919633554298587185588723001907275989632272204873170009555775497870093851641680399272230665014528323015451826890044280502082656429305443459874318608362551299814367791572480281769759747938475506541021954738895323775764920293405240203923590215336509128591975462760099611273962416716707733942691995629669100731027001144477841551246285432166049789958949491224573177121699373866540685470691550128651307379710531047713839128012226638381536169890456765086764882535740190662376261465212112459176947692500128577873466829350155150585053003003877395616784087748835669388908421978632786925852012862279209894088759560431846720106844985133083589541481511598688338390259147041911797213739065194239564149915746053138913681705174270056765995117086542209158235912577543450671078253053072274383898364360704657552088087897197533086974646497394474388989048409920337736586120647330989967342059131963964857455600879247320405160755581960512001100252751413342329362462655065949123312656196005866763813924448878618799893828443606100692037834258963724853439496059774817551678944163936908357153844484387325731044334620074525139357629425938141965881955284674262569925889993884960552032237316079283711111161801515307364819520923888972891496549559387815312295072920792561941809055770014332305550539915163561572890959677853256409361236440843060992695565573109453384441492969623799173949172931949300992503768361011568535926438468432541271833064575820370176986742783019853833828735530025312094678358223751664939871844991744389156389452392716528529756336947420549858932822720756334188860149015901323904711070995029729037016717474799368526474082399549544714045926594576481668682666631204095060317844296842280324323818995420528117367002584056666315979163654273479154741463282511186867826760488978000961748847750620334126492653306034028800571533300812884978709561306467346524696158594070194023809201223998372908613857928700237166231599301174358531228815745006161760491684764922693600476392761382045446869370083779581395554590170495452991804674636983728237979243516788024938595277459658428740195757982237225520908272952369833756827639118177416348438256589551482728172910492899725787257225200007307197205510683832612602248075912274867773207070082315760811949856126575065038278236972711998318102805308899730184311151778303602006233923384233667054981428485078927456402075426869494878421785472873054788484684926578571495276010700289006541917559312924330697704893439691549562454233327410765748443472107095276225272431488405243176874336788321306405785954358290539286669064007181827556055072796591904384604315306087522647817882158561330966072416923580430301987067081828970123007221731880126775094686684739056719488445025473608219222497708330359963460073727164190241955006067844495665542625672630099240658749211738010243983991279378737209242547453021130437509634718508502652887320291596413627570710277417132290185127409782455556690208966394817972260230238503910925797135608940537446035884892843888402214883257423401917409591963029965787827924313398880039032270083197427776694777075977312179648190046611955752701729805423486174993316666147522684218675813053725983222777846403939237016454579310517191607470328402679362412783852629519147878551333831690752361470360162290513033732098613460578007813407932403164410923764996156367982616285328571774676077396638167423678563503714120136814380853402443288184483401897836449514831194275588436635772747976105132527656089551080703278170835327058271372453937948290487423704346817102561091790017962731656706171138411063401140956018920027728475094410336797180314439619888694041485011842534674692345412513384956544830338234921143698069758957197314166232790206029798635501907720830730672125200974404766758529797194155783902456971391560151470121977739187001334921905334587801884117409316047661330703593785447130113904026574193641964316382274540485783463656031419264754081823174222013144433326556105253334152504269467799168372112380155152955038308377693101715264250511595546031350647854417381037089353108622003220475250474907993134401343093865370664094841939023762741443120021177022703337765758773777814626226967415287433188055638236563653634962604552184993363876418526581984716474805042781705946739083896627829495595919911446179783460596545169446821854430636136021667832302624876777064245559220355841133148220418411019752342998768628343479360538427158859428088427669903744649851550107319612056139116988571697069105088686612147894653350441444585132298008466529110314404387114342272163516908040323417693869561875322985285599273358450902626325425182584044156039594552284767676466576887762260784719276234300565568705126036094330109405037823519535010276901771387986363581996142652399843982190697431739432284355770811723714141113736545771930585209348092501501799902451649710983027816432430264067883502623194983652223325826084134155271574785938898364613716715595227223973862877286885359796669085733525562594656568889988044293055879902149373139368241169819272562802508002566138873224518276548719349122636007402954306373266525451022233528029017343925535349842417552510430954419637106432532912207201221272512203415684681444516395976437259867675232598950306163615151851664166515661601600692893435650712970215893144033550189027096441541344987565487485100356767600138441508919017167058996312938383054268702721409535707277442879260647991884587202723615919967283044720395641204418992106275489065751184822349697747234747237618138802906556199632204289543919904418172093609045496425563858581837221280413119657240880883340652127077591498100551194646211235060028682276276018501068292531333276235278414104534513711958497885412249464987936615995404817101730545734116523667097223760283358943565296361167092093697335855752154145307387836493079420165319619564472873266955642087572059441669420558496489782276110689397278392669917347233230418046262574968474704867560302505661411888832309546560283596444661835352688895526956291440618474797068986181528205966852786144428728755692594954524247103453306619270347844634561389494825995626367742879883410300224942959242251828620121163421737115239673909403560883948405880530708834378749338540687794509832943882100760438299232767988275713191947005294082455482000837925304486229376808912007597755951882537838196836496559530369616059960008536340301771656070840231854566437008060738103813671227684240742214317371584817286562663774696815299160240031407976360525465724702722737086082333523481885423551458298267695947935257663554413763929173879989693786668200301688387401396918331227386638853206699009504003901551843449000941324041659127315974507233948564115106554195878767693898609459979279089140442165200183350032712143087059197520829521284036281471679015298140431383672867742063835610597103936525670360462476595779825122756001318079666582097570276539835105280636537198586359924631482637222354646664598356875350699286437021849072703938861158276021461442875067385789551273843613422669235516594173884539709160183981108087016599478948904389925968333200927240350295444270441841251397790715154112036849521285235732131963120197969979071383113381435784211427366716417990648833448680054425256909684042750919526364295807139215118159577583739059823596991321183612635002119418040694294933100170280144283925509297170517210760610564018546432183940265767426746903613937414791655193765957824132717578387745825398828671377787999987410892427413373748125029905340505744289481767704233877179803465679794747636285399582174998359155703216884750616515368993649092219634815415257114062423007934697877273086531706412207569812869446229164874764059690235855057537721127042917721972510028449047260405331532791861018881729326114646906029364573852219757959089299505588322895653933637272331144971106534410174045128476877944084940352514246483322783839276360660219561336253001613589820704247816010798942450609949136984386856695845556970409686973010419324544722171960390251703686759432235863476708922183708268591183864358503037061233746221625239314943689195366130931407505501633322798153272517662334041833880427834913496264833900538745567009396960778555969914192986467347744614464817173835410699178254852602581815675313247482894916916274976032406246679019434678751203992517978342521659860702738372774984595461105863859238110765519772365617739638272914694834010124781542959743663911229371476319855287022631101554965873914552558342699881515275426662037001845804684083187530917712774812523640201530583878092830368510055187721288203496045251803710233153240919365814655936917634923295719858696769991202659462670098787479544841157251350513966396714925399385060653179247674952442475071888913002337920238012159552733064190741938362780720548206776421639014538626941276873426346151688159395097258961624559384846484607030095551287637677435472155602901834086469786726458041701457325387812899652687698868777527193655807431321177290592632425816338651178117673079581633196970724464327470785090941879753487080091690479540517032004130403299911373400988469782885109608331125678437803808290843022574027340865113452550065385721024975272562264498907491647385177165377103047339050637923096010527985528274677895639189752811136211222544854518323686120203934296046528928654598347237354009615434413145817697511471850842477368395056497062765001601339352285217586978148986008012741881218267879330324739583770541410965446720245570818068381092645675405722081444211102675275211221707589695647417111395765262170879527579484622188310672130750917296616918322201550409067512593555983553985944387586198748317792629857402954026291928626742029734345450176949097840684143606433653339730140919385755832665130640020644358601734042568098173206090143541259684720630546552200494191097550477021742277411698716092932923140414598477438149283909382981737624656093940122934138803160434317025754308175408986246704899700840079462072447544896549946843864605637303132428739940293591117781989600551356770183470821008972843237758995460198852031903859582074389015731895621383532588560269637234328452826860400223639155645712118231129483199378662204282473091351494730348315099563043479952805790283701773992727386477359288897235463410698651688624478481640860438077232616279930751576738774871505204865614596236367684293355338876744911425133706050905822820563610628333374255118085365472074239657221363382037493742820851610380955727259617829073270651960171087443183637665362016926518215435031787456328718118701665366258778175268596780845147853989766772812212788931560499837418841138459034940179586071241087822603851212642487687404103954443871643171883697706953696316134267950606300149072516236249994787146654689383212286791970620409929715395157470191273384319134772090620844273466034793066729958451682817406451968836607584128388681008619463468390826407322004080786623447719148670358054457389840754185855748591896034260392707991438553914279677704498069746498889789748091518457661441229594119808121805355075008768550666440605699045119259331897618274164938524348522112548983975205752583749173652500800120717652645575434577932296447068884600506307894923951620295132800835370090005678526871938280265377595120834431888603446748179729277401341332753714130395405227364342293884289825930120790849651728487347301081181394544635455322479779703502277667561629094822750626597936241996034558828509429903798326495170447432182251624026575329661143814695535060587060388834349698292643605899286358221057910083673860173324130671667226079458567075370498147133577559839582284499814476740255637460158223787403724827948265507658306303944942579617613095153746520957179340939871421131582223327133667333432168464646515861947733228673685240287758603197893823602346113682070563622765850023384676029780829491334314222118874260643794018481368675360825709732636421696708000257162720954670899366779620331423112075220559525983532651312862855646780612560434166857877655548326459616730552034562488016669505197019148678963550524724131940309571038132635481788097502372100759607174610658952386969734272154538342974535644480053379767376668510909967330423708237218200354042674763310857351608781767524624446922791067039098799682192514251303393692914065401819572482167112609224283102585662852096424331335653891525256380726577538314205412436506867310766870058731549702948469185176434169881794186263572779155084295737574906736485317045660594203030782457953875233770202764773198840663729003601045410942600859164529720847700989808401286069395044249402762155790674600953042921584875750097703660751661263878669307896278389498459797575309161285353988842496553368206756696483873331102792964346709686076992567134488138948211949406082298425792447132957644128643304769186482722700713896847212464456294773985090914345355901118953362249374855229792262172527280690212724908410725137625063352790046127100723060241364388409157820620096543999409147466358181249106229126854241951879147919691344156607763598885385047332184338664962312924311412179736684630155838781044703873641056630255473550242989390306842544065301974536829039848831871820063694515533426789581559926570461083316557466362218335345277231060875927840289938692802502010215429286263681701878192624436525161984781153771062275789201512939933492127880388587242259213637843933967693988333150175610737548208781538851487643533039070913504546317880183330438866730984340962750031896193182900123533135872812977499284073670701478312740902782681552168581198844087093845055764892502939967678335815913424588114206782869333816926557982781604233905584881832012137360723219420496395160827571988435510546601618608776775045318793814680530829237111832384878504370841021433157541259468754865353790674057475990810679603595805963227938517559492670853751979987209849926756092981453929633689607208824932915403315702677244668692795140601423002553251250821166691791519357262961514324599374641461204620897309144681063037453491079401490985490833191201691239197305407627957383260207410862851159978652788130634348514082668223504484891692058462240464186567974943487918022200343944455139545144572564061638667161458421926324557864942955936692164082251977838932602016553430854426923189941549602831289844810791582946676657907700515285987696080084995755845796402274496628714868944483600571276252695202804421372756550017301167356249186807756863747455540096393630403634403450681867657960159311257237113334211660944340940561551362767916280052353625002717436626255430840083127599012747344961034091129123823019420821259752532014359720192777467450215987578664876975359378452814131710513587956442335462121178097314146930557119705543129799324187346012447150911233538935042107012788357243547431327656955269089306894248922319838189674462315569170733777777493698290236744540835755122727764807580925321717372676583426210838056576428852562170413127775527543997093472255160450700207375511295112400628264658389171985134393240692501429510400830358650218179185779546445709492903084870358525254537730560766935749442662089909688150239699486264299226700766580829720380858383671588208685470115149933077829449969176694498505776078187962441005185049622008323393758710673019958920934608418116282897963506884167454474601130489872865181907354502964038361679958962525043254094552557737136075840822269571436767744478774830893112395087281305024607715242196730440286020048523074699663030352344723880021409212755607745030559994808679657742684642494048460681670873513029333568824921901328650484753501387123094393884669408305440103057869900594135931509637375586681083602373532074839520736119003633953803938136617867633595154136304486221086792967152853895921353526619050066564351639975751827779520160004409227747259243162084379033683494320194504458559658967170369253683411460132910555444054481397855242546535353272268223092417435768091960572606246771388317095583261570390061779093452957923846782711534643928626889780564893067512949820534974221118089259166064823277688615869285880820406241297865135344892322643306618052373346763385080532115176489369642326898876831897213604574864233052079098526331923623140236368939694654758306697364469015445031348968695494953299143568544480186404867025743401544960386834156771652921557048010123338258537019590436086528878911335702108083726062998971999771427947973826150913757220914091136758404912256675362608305446910419219717990393780108730635719998656420387644728337755136151455059690721302916321471775506110366865856761445902575967950975517699130173890337445580714851349391920315452265041008985311964702639808355960566081793732041522929322492574562501649771877697083162732512230417157604413099126315046692102624855735881950321880298219114457777594429332669538037482183183940501501101147706200438344274054257485761594049299060943316430785048503090624874762846406962906719961411612317586506077089258231876088561900573338253153504051423128497519231800027858708861069892628077537734811500380823031432722611914375459983514673890097572076627907879241609670439244610441731750557305087990112588856241897610279986071406507543251929815997663782884542830040839394482031172967097046064486877420983343955024008321084288401027274023041609096724691464785523029598354258603534012297570919931159929300275620160977761285451759998695192850001533784803109435316474771651618992069316049885913693840476140348111316375991075920046095429327215024459837385549497316477093099695788755968846945147853680149746247156824573410360996744068209933821735462706374852978451567692971796979892305607600630556334236123348395089619992995293307407269434355174207787000467183960814706656755443255996182063982159601312152166131023284416237334819408888217907360143692510881061056671688588912128246550934134007999060901923988934898834064540760820688048594854262966100292180433638127421529323893369587895739873188382978671917821883198385293435764156827239663251157786734587206337647630268647966025962100733530954557815475177882299554238266705343812943895331898533575297945293748512256271646442362283012685367329536615996542546223758582562815325475369212046554964396400309725638226460196353099207081025166186197241154786290434399073554718109431366195278422027181675140894475062693774616841953763099299531505470497364784364099292708781358831166330082734825626305173895705953848694454005190962022867533953928448548176139965018251150507083950198314531500345933693298364722868625170862425006330654133120169367043721018129061162921118629044309173230216690540249974079610683425071412677891775964154415042894030799095475350500170001157145402424923773229420970186358887563982525437449045156843685584550767225311317990244356776602883101854695005348596089426119396590216222452335887971839773916756028968165346725879436570925910193324792617628456997023734469740828161228846368659951426681220817449851404876288559877588687150678253937360083962533858751149749563854932075262875096661317987620417320890705579988104618322683399235096229100229593964706465107156818028947828688824261205384365186959970984117491168253455523698240276748756139846832052338027061788885451515327174991778291326611305479467740953040380986061070577642141287546254670962459812097331864910233960346203627142826068700155865673474149208172831026355227182840052857936526894062206540653272235903147918591736447785300475234869211930984594326089993972410113377136777012758874735888339467704157873281472067377251414566971514524127310879020895333855458776411902271401201693757253648164269946750859618504932215797174975812533531815955559635227443085075734740621339939186975853071368826587957249667439350365822755869632238543485470788317267930872465033764442832680879793327646357653785326822105536304385144158543938306677306736450921720070249836260980109034204884560748984816028179774480883108710994287865157565582132846602393950468789077109941277603021816333616573265811779474796245227730270799307418148589944220887482142264994297212461928066234433572961585527323505447500945733470106502662649779612658383678350798260648052113400080004057621822206738952284098330084890141068662930864651296158525445325219543181685884844509187858518968802783883752202849943839829019884435254644484290829271407680039119517824731740630126824291413070820055515286657411583425198683050767399571761481932999998104569388443577309548100719534832000994925715104484394849797279922260823475184058377256017834001521023709546511402273019624632811182234617497607073874773780948927486583922541594144923604215375836114041595991788777147897102877276186384651222082941136320815925890972687931608207833455977683327102586306172746132258302637691664368196120217968991771843921739443441612583617011950085337120800309844804649776594315049270915335906433773573567149241431061589243738674816347431420946830926558229222450097929004648339816926235962052894743811355659469557191796529079538554473430263209341321324227005620221953244809241395709580455322100812980224437590563206812053512232933808248132328133149434127244155253546108335129155769629596429454580104444959688874588416825898894361165035571783483417239672582321497755572688637422598789110341186209234084762864397625127061974565902053345262761316690721525174720401534653761272622523868504670130841630966279579198766964458910119469740671676277633548223290901038397575789816882851289566066638172432659985733269829704921069086371842440292965319020065664272620228476847512498323200791543014722108671051041395132835878218871326623081228924696461691565599874649628650901481910357840122815581594551837818863490284639989620522378185987026187888507078018989698834531584218260392416525190968562014566348563457446383500744330056039538942478998506943034001416955789723933525156106272387513416143516438247748677774608846769574429712754991053177751866458238765812379631566064526545716263949196141218368037686767711385896833288177467294666387758025085526364487523038146433369668424994754040352063449970046177403387274889810809847822210847097627419255101231745541706593619804783288345369642462317685267826487158389936273278632806863311640117457903712037122952017625635375487704063170492334049367477247935778960990474376824665390027179981651270816577632689314585053148488822791462885517938297387593241278201258175294366512445663653641309206529755505561358559681682102155915322806945760640009839764302832483569228117341335093831259564324328020204899106982056109076335225133980973797189405710516738964485203052554603308141791884733420576588793639457404511606213532705344237044134606196539131221133564323714835990014355945091926000989952578059877717741960136283906389707774115208248544231099620628419951754985278559338689936432457220767840821678170304590126080115475657435227461460831800167847053216059138217768479241204437544833814021098427256452962584642325472247222578100879193498704374207455688822110040850153139188795290425318328390633295419268793725624773452186241749568122363807481767264535968494798102461698701652717877826778484022397563586091353014466206973100149613054544389272532134717832307594309023648485084494082330638437597669858794868442454240844709690856931269004560350138673613152120488557889200974900035048417586787110639641878104584961625305178600702636552135552121474802676299020989468863124918332514536855281754098087509378331774226991441653944680194581991858878803797057487595911693059999725335015726187285754202981525287442257225089113746162893002809006028594679028771824010741199517685557329514110350639076410680473182496868271458043763614964448945896768383805932532698515869216143867398918288722499090059078461235865016612983222478639441792819408775575102710893147650303755474617098993768407901663191311115347194083810967493671418322792770093511493807632389604279855997641617832565199828541535434156399190995919895272420200118938397696128284217170915618325797122468303448060631819434959588722895436709367002072032900673082274468724156341237447389178759880526753237193763328450701921457334829497169109299567648071633619303874175715203338372312117031584586535647853467797025774327132659344425581640185829914096213266084184622494843155241752781876447935627944072691320260413743966080445295013555620467924265536488061216172758385364128104967218858325276516417453750235095566193235623136630142213322374215875308368347766087235706316748629991004306586776434953371258115971609851280943110323211214429821303806713608379131756966909340576892609098052228158039812569551456069895785212668036705833285199205068153739255486851676049010775717395697067060873237932143444923150832192804796937997632987883180034447238962702544295146241334974937696207447401074446087099300292346586438765569073803443657400071786374862529708789546167779247446413355137907266790535598963712899321739998800906289114642984956204045523684504235004981924811136263705170089459807506462742482289905774938301465065484394677924477635985272182109445721623027527568111882538322718811837057132588164757948180153047477942123875134778228602945309889194513256381590924295501260894201040381973288891592716857841962312168023078404388800223513994586405823779817606272889965653545915083751898357060724667483986945539186929974363204498909360358306986476842527911153414658448048100018994817000361300152155160864391732055224865153969606078986402010253818715974643297394594853691640917864498609425993656458298270981015223959842439710083054348857306375221546053175153683683048370525831073936873963052204773437350082444671162412942468232736140422112700919731955108775390449653316964649353779153664373415247917782853709475857546256659262723435936647889421388292419797228042103320532365726277361879710094634305406146654363306318850039729347531902222044672856206187156933145388681478561920500204947996832117596739362429966590840587981461815322045307815038763741643561439423972765912633490303659153755948434057973917104968620965183418418606887931432288190221800004550802512749123808468306397819415304725735265732190296834464704879514400191082990829511815698527812772965403651072449647450946522814989667512020666524347085809966706306517589982932399493214817944848019704514582313791312445499773788515829993819048982073693855197508995916672526723246003417057190270535285607500560895884576766943371611501180058325422215531108721847365665505267661451287918555118155002452168018938579933293625395245375381095004940288773559579461431809525646276746733518037708399279163005614143682414816026686036293644073725145503861033941145897595648979560600369558472210242815511650984635261986766974401190590388656835751242123080897914402593228335058498853258139572626121249438107641985433451784160680844601252549241077662464864195793062888990866506333868219456723223301067193756316321794517517964588843244464841917895712592660568275112625870415166713497009576742471842620133815754107239319319744263295719604977666846760480818118825354693257876248118375927537295950576874494980251663018339838138087840801219891003735047300652126082312043063698700538773429222527584433264207559323483553254492542119105804355875565625252318270962520876539600957869090973534440532024966647921214502305336717771094128905379632117015016396068795802007125563579721239295825677628982386093781926156396539171114709095828777980777422681410592111746039982340216956647385462675957895290409136288236603764000633508165728332224195235164150152733841093433923933394035967486526734974488834385337592835334178924909741811187334539867735706376819020868823706139063755406664099122225677770196253704297615649086806793128964433236185523952228347771482677803256807572245594611490588432983296239695329416329977018809190182784079448677629379640019754908174432085158358411388267039000300062870211075554678304156169775662205709018774678531532667639096075005071142035223679327858770225963302572588793799827638295494668782928371695077328627799283325235502463528016197793399952847641518771553272763488239794440827327870723942453439129664680052625970623902552698035743107196887342045391833505779829627529794395840861054801177989586351793549481182558963153110207757125698178576475593535507499122748338026851020749714888444471395615562113896858762466898734268136338120446847873414107667921415729537495891742857156025559876799830057453115168116487421779424761467502558772443255357629268926042167224789763283675665577267402724249148594235638054875402973246207223695238969270037549751140289548582918846062075200863309726862934477364134856537929768584487441437378604119578536392703677555915757879151997272702609403058769859973799675490866784351005234981012512203122137906581708771411938769026066338976713034992600946926288722699546167422992213315476008679165668886380306975150637176200457812224374646616169877112790928144706492658050328127344530549955686253996583485288109825044873968761051816843579502076070545210773928963153397821653015493783863497245661047795610318466686261498303281123579953603516043357553007308111653815958343231617914028197960343547067216166426378152220332248372059467562074514955351012898892763120627159188030900135744060575318690693430651930609296689015820621838756939891263680975929167733319652859755859636143376819761109621261670806877522803070339556790947088319634736208614269736596493714562298170054143823147532131542906680001758642388349175958790374058635892235535104207164884187522278589296710984508906453056626368386699238396148159675975980645852074087376227080153992674542799750501106701619285805044715301005107663005974188371857530791801277433214931047388074371624038783609529176906656706728231712479836011654576090951771422785220504469845904809090882302504019792698631092847437181886797256824324881937396833183287321441715138191966001402735597956243755086338362846730589502920789262127784613128411623165150555432177251236312929498858518448343679071958275315119307369919106611187010566046735587155273116362291073440410502405221878451252581822114886602389997826218321863391091572655593070384709990746276270380761874317452303048370113766849488108532393785481484620055590145344968788398380959588440746100337338642762837314480029385637431001170851885664619146620648314394619765886811540379176729030706399076539276772133634995351023581374848145409280114552925694501335796268260223263509446534718579450902602738581492649632846802534077616294240022073262221556072230819754718705293077332152448087004610026859790980797092066025882841550712450490433413980708751284095125183781721791920577768664657534763416903165606143899826846587484968994122805338108462035468699959986683444807316046630823548081211771981450688047208678195185328768541796766072889066174184105845817676381071238389824531369723762544468060534340311504903824423091154167611574911723838542428432629295063460314184019356719080616614945043288734714737753110689408073896418958386070593916697620081338537942236568768925506244884499534636268640958386389144212837088799300095165723447350067294992419245277690373393042009151207590795803889267361286953807121643049917934179416138863089034797984240919714509483302091783486631902618713426764811287587210038267164850780145387204324461031390829522034760783005094164054154189030325366011160580568692436024720497332702923397038088294150792563257800370496103944494401733309335258389670967671339585999187681666878886556203259282813216165567026801075360888265358500580093143138797503606267129002344654674556220166232155157187808069726866884224972634488064711312668735429232870098280132527423385518383683201869334290048495383861417210852815412575578040724661161779664718189792624976507724377568122999657227239981955586553985407810755239511301401316327259056398677202653800878791760951349672434227683465123581475838093680964279501269535940222421519267159964113240874147567149672125506709227930964244914759447509207659671893367585073506596386923066665777938483546350163670423834478649385242470058059150640985576199290445663462360262308070966903254011253688923428418678982236903809588537354517995430389496567929305436633700532394510837999990562749699256455856698597578152271090300764039323423667904801369906173643420406943198985570325487278026793903287822351988413812696258106130832116230859023248246967980117569780882044372444166396253808338191584924270929895609112499481710296678423504770051913629110052604652948234229699209158384615466299579495757284590521718884409161128569747215229660475203532323249729696334686296960325237811934560778640585235629879999411189560690753185008683263824356543344410437775835875260500251458643898695467632168336329019815929674356223219016412401782911599212292361659375503227537410460426275491818359189290969630474687914961458807001859938282650047047994030087953574085829517945994960995517489577989191929897248533889676870999178561353305738524836192777989658503722554005476215014519363575827337832713664996225695637720337545165915817197288882434638437680564693311478263075262665795440283608347334973572878747606241781933584788478654564441836767197154660193579111443147074188459890030041320322840951061193974856693908543698901652036985659290488509420452755110904609328274354973884832008115630774593375802840863246168168249400371290834272442187350634278602847954662494894107938464504542956314096915715988537813120281277805756142556532155319293567797537944907432596419576002252588448327255596487710036210198186417281692207358801424915530629091874935454416321581903802719477489460916228188342306414069226419032758626904885142408334470008392709371322722518432432099555058586457979488759940924593756969437477822383600126387108012125494596659792997193574787334047325538817727591245218638678883470158727816537275048194607611189558855191094617237999950732009413865763347124758716088926641170413010496047754413455422651644778214380668845397986592946559374944901912607430368718918595369132481552203219631582526577666652709438868182134760565035443317091827896329993053937927149594896950608144038132265493185140209675240436619659788189403872791752678791212070567025463714414088074682936679722175193424873703948373765524531140038084501197195811591560042320879357986992842238728159491142848577012990093505284526805758665307801779036921786370671364278087448201723559617581869439291247312304749358611887978708979249330633337402991267063631100032620444250069353977646892428246796892961058183274971888265645006420728801865839257590166256386374046997071008679243133890537344095347183926927978177286624574738181837564115993236167065038645765584044335652644354574868531667987943871320969161376652970507128140835176212780735620050187303178386940751471302592568966626832373742151295416689289637842390562112540300967953897604505643513694606664558023274136600084046570364224294410691025592553500488487568322086174219763158577532691054755647558507917378394350403000218094853445082723129647845047316749465658139429622083398965864346122511653068265539507828177695982068059522010414355275266810798005796170610998548670191392106152914701171832659750406436736178068775586466802254369611230043889440433716703761868790556764872559504252120470704826345143409226990737423460139944539712250320776359951913035289368198279115500314681092946676227031327524516449324772139984918869747287181334764494988333621310511126486974435555693181795551745803830338277655622690141708881820434774163398413855947992961921247865454705000205548740362560078021839168159309610410421763700791071256457075091196363882076945310237309856999000164096515228761971676948873139245422487312284123170062570308472096936664993727901303134747168097274217120756706392962767483062072834166666169260331264557468018813110455312842146818874038043858047210390493348406007692350255015780190010475529946939516947939346969701985623827935465952594958948250017891224877057741927584155524678647459376560115979621924642955883747447094212709772166442522710787037704547106585228912961540570966394457407320049399332842582823863447722491361315673984488130078537173577706008418250166077828873427683518610200288962422806581587319247573616189598992890393138682172470665757162506631184370989781354810381265203567170557632630593437536855870972824148694822470432813672240487313837453408612313729972167021792561725113726330756433720441026669461196947377069852562513592628776086084562889600937187249353485511157164983226866390436252775712266835219971220101614825033646196520893166113970642980171649627798200099826012995519244464692929088267878337047768316574336738754354063769783984935650308142334176683744304704179705785435853188530356578995058729773405797667772673652924473756520140953450812664715642341005466574379157741744385537057286029788136998630127209276668995679960807238459155110753800269550585307758993084579215513649260872042641164183940491684441137528800741419415846550779147228645313187477984842974798451741653192043953528587441741717526185693067810544265088964359330132297377834323903035278265493852375826849227846576043275659437061785605950590466585302837443978094177179149536429839459907067539440947022549119147176552234079918677616157890897418332454359694949255205657142842337565350346141394215271989185299004941317158976132518809786978750875926903635484503664395442960913209394345081998247754425117349634661591226640660015077445256714207409601241891706966536811137049673413483991163994308129169111905215412639732911675319488882449929999593203553671920944093462013310858246510022448988402830535978971194154688740705537707573116684910542680593110468108510953129607958656599310066500064718784649610622263077138651323143612460491203723994502167781674203236636741210069093193122206510027389889535987658901591476910971758529067098279912369134571569332698206950979285560308607356950155712497687960954563364957297190137493986532074682274004366363858678467925164248187900351414828912591806071604987069185758514510135608135440241197925576761039907527513331647692409881804095004854325299310405658382083327382935516255634255016139533905827034328409811520067930499536520088265132521135057709420166443147248354840366718523737384172746680698112894195685296236868840174529207212662094942748872154405143607351552823188842858234746733357420868903587380224997434746733361401088659174391492502626867993279621068448504202124305189383201958356765106772104796534327918602847637074565998293129732103601021345849524251255153681494634090781772473929796492983673511196225074697330695788458744807827909965667142546411566113752511202005812076023927115182017316324800728110272044484799876458629885800797702510550147569756995338273314629549917374463629666567832627750749388784573179778528741989242502533454052632616946348077176027440925352681407913288172463954459651809954087740529665774859464621678616329221887770727562822792246077663011686780898150124588699048268205050879956673309773942590639196277276578035254434161565902635822338278547434644049072997417311417986854101901350908271933755111907562646157498306595201105921055411267733277791070389889890281551933794108766882231081430532402638941082560655659747645746418834440850429936932218451068631417263709971286602134442502344188672338789363021569084323648381041482539344213323158786411829399108397000047689380715150240429410371407625824323151608620303824420578807776327580423662523677587498740837869954808653654450066271564511246506735465541804885190913503709578716460521031057234625422563878173524011677514739585794993065517256566821650139132410397625671602055658486915429020842485773102343792106002114053014866333909112162459249632281255609164385129677551969951670324994552862587216302917611174066186051369874828444313769614941454703328605525319957860420276580637847332297028681349530176742731364615685926223433178193665725916856896468504853828446859436546567215066081692363484523356688972369779788896608839028302237878631718728722644836690203981012291646420376703807332643987766774348176433165259830246120490449621229300127801586743097415637680316381741115371845299203695503707703482741012859776130957346161917554590114448273031254323573171281860958002034477439839123568877774129113774590209297930534642403135084227281609789426185832355777106738969251875154462926056997316448692828019849558724963406727326099351250666482474279715381763976478990693562161698101133401422855992732732329578389648574046291928322790924456201917989657892201209656641207828768378560421436826223905264358890114049178774528683074845587030137524492602618138749010214632858997101333535475602603592062197958407774344470691892927956276015110549674163239677102484685569502764500407482679915786490766964102928682912994179706246546505218917468986087721242674780566754318478675249186431100422164222424743575844738728709095393932091572333266692841182554990341534286789545855303109323943808732315956771716760164280908822732439067509305147908381651977872178974835412702390483409724854103027856797435494220484816666991586763040286816917585885894159101575051835146232202161388696913754488930458594897202976800188854582570724186406206726495471283113214226347974411425916040292935029611549235694356566984504971919294271873231028002385333649201289244096942242597519866010890434988420245732648666209855558150305812502032086401247796380633232351024806051258831207807855017218118084187465798061275148408700680603036283384947852109500937390513277950307766810269820305694602000940205969052853318411993495991436045650562907727446692395183702889476896564734030557627449676463082099311552041109731877046424066807324180883786454668312629012780611394662222635912028332091925281689473549481929339889832465199025217719837431134599630897776273898778476106827826403857312307876508717407194555801072610986711605935834373225382253159014954958318304592323798004418721333729714355769182057878575319390995340694640051072511347967128514000328566995173598144587365412303446705473524406453245221097094786280426942747868437489523165516143527278719495524773745906802932492722610013371277070881749688115257642845748332748183221314333345984491809423667694259333159232779912843367705174687253210713543919433599855712037557296344170110236735264509266965148137458747536411367011917958527677498064674953865196259652469927062296868595048140620330042692354750086455255111260326271045896181693365496365376930807027982509996143985390387591429561756211932070586178819656469834962319440195543596947982592953126677658232394245401754421498092315688715934567017808532895931591698785395661470315499787097936494930907488282605699065313356646199152907953240993157111254290104120836873329143819423414877574876727392800383381079975926322070889923597609368969658876868287238058763211580632222884735533459749937677269213514428617536895913876845649528087936348845325335876830603240818188385481071428126686049042564053530017331806207859433730840536776238910276082391302670939834811097071693274769434819255968115779047850161615416922608089820486470806496124751001491327605441057442917979195317511902149024031954983219324294270252405806426698376166847002878990090262207970973849677300492139288140745539058899203981240856905523928375482502491259705340134298110543465621836139433532922070425925395912462791227540770928754309743641081518226970641307487124717393793960561438797239509855240527771018830669289994790727708678705937412314208103958044549187565045779577710135270859624182789908051892170226753597172231566936548074779346085390117903914935609204477310158928508603734633227644116488722573732700380706552380871053304985219054990689078294316551470652581002285270475487160157160646159928476038177611703320328230561384809944653908317656808757786379737662672318239730281642951163923544776319394955777524040186160105657887946427076388248808144469873089034696412535598144598826848763252417253276128301301063985224129349488871866541376055136738632656320625555244154466669061423341815221932058919023802496842867549850498040041886982109041169593959993276270979271770224472544106190716556883750629328144722568539523293243371978094440346403857006237525682629294785829403801049021587928034862742399336704442539177017268627735909571433967637384717435353845194873142950109279547076087438461541860317569739046224047343508519395807224805336189977802321480093359957331995788656352521732329160332785532359111972011350208202441206389897331869130230069737041449952568467973219937878921760277416222387619083654085563226431235702038341418325012169838925671135643251114414724881207683307940551031051188542309310498904007939370164921816700954943214231379030620169642905784656054757848240495804670012450555547394065560832921964177513972836789309586900790971120413643775924329885305404613014174150854158588607546361528004523739572021797626202534964294814549664852538415945930297101503037788196932932955489878589782684740225749177714050684845687947411956555233844036947508922287170707527726751935193201262937781927535226007191734449539993974212618964912970062962755797317846349130799535219875109497073127830712196978169447658022859363900052649923743967715808867739379557372802122555841743538595342045381735991069418049326233270293036019685975098398240945393005635631277232824645452671849789390778464845182120074384844958574864371879823382000260786532040557914937934372164613920246464270204590488936268053826706646380737297762418425522415075197520344002339945840181786548430367660668279044316869939691250120944156311184174624959842677441635336458632741074788695621348998925286399568198503693234433591810802560899840395426669356719165261012359829568398021245825870870619867978317212500906637633466460413055601469745942974891374070932214003050977037269527768208732657694484207655105124740191490558152332702926405597796742399016921754372794217554859490477623457846383951292829421098717804314941621524159426113143803127983495226060035408597569978026286861506073704451405915954501235209461357194453023171158370396565881813350717195567108106173551459134563281645988158861736139528219281809845070348900368707296758976966290271963160995854643311813921562811789102974276111208469647569440338080967151983316169180703556538274964068586782893428495093619702589609727481697062634023735029939470387107907520406262480635423356710494994407197423725497383877998971130803240852515359464933580689527694916335647634723373356552846240174602593190786084864487639544895066963862745660393069305495282643297832703055845221472387511021432289244509881016586095845926359355756700564438265940319600373379237430749170528322419536928979098056101443207163106431787323507938553424455452139346428982839446888152279658346019953394483763120735835505027451954909113812383401212661861708716548998117780627776791682017089500322972168465214995623347267555166992186871605797097728617079456598808742972325879503981500955204290109908491144868948683613133993869530713870973561553760300225121532210211979710138499445295007590143642736543263263914608049615621160402805731477918104074136034714297437287648653980549546157144884820146511515530452177538446532510361686635196280384733619559181013623396096105680271266567428207829009999787438353294582125797057044331988367050418743295649218025495369602026359955604201437686155989045056450290153773675947179601735229519635695383951030398514731325171890507140927861648467998861511324133564316439391794609945274926252187997636398310697473963019817320811848317406733739104535498686664458300465198940722286287252239167611308196311155611372969644003781891709862864965235549674528448994758674738974776222054332999788463917998497252870502750940013063207430524982414624760827197282128379139335208527257653178106024158548113810960424216405145640437344912857232117856459998185913825046999475360434510000467677718907106941333769041993009530202232206036565418665814192290999404263595050365316037515194418228165529749905667064624651258003819002192970310719158572528253261334978581861616143440514616211417718813892352301818233888469807279035278391601670215960200871548193319927446944555124505680257882145472734010600966327314316983751824526447906988170315475141406550486110899615100888164191638836153466668413580734479999712248648605426817079050169868342562499842223641015875266162029851233614105531475310053041198118493369543781101138775848882287037264998902122640579430562341994778825538997308975556817245545686881775751720139353173902700516615800307534454678141125205175483581408389996870252283773369909738039000417500974732872508996071066073659504073955699666345877050424554629536929294928141406879601872156481202582974227840483452714017266386383398742001149843784888074777510560860035949865946478265403793746002757274237243443770817787776967606831019720687496835401654878447643177014976679716517555023567915925081977356610975476155465825257417360113082304026806293229697119855753638616196870080778184444757263281069766590399952190615186745473117430097093552842718575573802721545364536841788641383472524052514935151602677083909283622503276109982929874898466258130851697224817822501623236753125945483392368999131446075313617032125818895336511901201094439297344790672761355345413322689051781691515327029573664507383839593955428531000492688946217324718035048827365513289886117970818429772811576201847742310553599893564783958743111638410491324118232036524427144295584989728906642095553000228347776472952776773721273962269390991776054268483148861220847442004859567795414320380866211829500505618610039249033411052225442538604894861398410672916248977837872973823668735095525877034268764410125996949905142502507748436925912622926043402207641296447396855171414874767059068909357769073574420699862562318565916423877308443621381127745067173648027379608293260027491456644472201646302778821426080850903209028726884226696625838910125664423352731617391734697049107132853549483155289056198720358603440348410178482927172562107356979222199270143237578780209079355529940668070374290435165417178310407106299042181502125278682636002333124101464240069464045285559362992116627978034019880986455599814127443002099912345928082421213453540693539128992897171712715816320916980448819862675949536963140429249089763379261663800085941250232596754974570949609451146201193903983522816048044305198621470276612636120618239020525555424582825321898525617441374609997879439705018560681944487944378783493240302718065030011213682052164534581739961754615816048904800333890549551896790009631421203641004442434850072667706349340575329027928967428969082103618125187617403108878382978315501997569346132627952883860189156865096567885631048287822513639604000923501400873064608682102796515156714676154663625415118480037086225346239419551732762905131529997351258300476688856035754403025478399710811786147200328610231968806618185884938661838259902917409515562099176326029084822056667186490029092912118749292881056057059577457734547334858404110317503873572314007149583354027335758965319520416223237390688909963461681471713792893563783750151754405377511800144535485640319035701507602813154158778347211291072030290126130726213096489144000470596898931421200637890695182754153754275222132642612807659996923001727300116377578647261480795381012823507919624973490894811406754457024695793756556695341093643608208632475779355054391522946086573530718840177297994766380421273877226141446468180733006983119449834649857102521805683011041825449000108592989937891822473538958314979527692615931623135777553817979656908815439007599332731483452521481637077118332041923634087331532863540059525029026293818855395800158895075684894628911843750747976856373089592195288199447322436787931187760183356831845994025361640024009334017811919920543804177195727229089616040672481726379924491137338228097214051658180607861753459522805443373318176885529887696666729485380982821655728043802248495645648136814514775809751356889770964786647101766224249439365599984253825101114595848252866958571615291640934265069860686731885549198569078473883906705908471506107809089666671206506396897400982124926418562817639885653904990126233841263638431218113111056148596091624009043782121082437425366579323274175611569267510634050281972031634015916823547576082891112677401594463155050445927476600205548760694976485013297935209071711971261215243452886346960451293287051488648639332150580324390696673917346382017724016644043536983792234606277124313223320447190998126120841294407145422254597970866772559036401170819694762220550359374935561303075323650529540037925549983779434040854766492474254615612601785499310278520747215138806363929446809503785335636271322624266950023043677190170735427788290887626075719937488749841621540992270605384894071412399281469068450480539158255327777033041506096281504049993890560896652334949288290361538609064064997608625026178385960892171841561465576599175505228223784794796571552439695173549132506140266689740964583097431297290929461477876195066256921447300312031167718442118039887554967236547391204740276398643123831492506064141852170676507896237031758706390579453119529772129004055440783021900530860619112514626299577614272752554112570094843227313525405994625043422577066144470333513536703307636117463061974537747558139516513002501250802719853766133136574057915511252554075416904596515529077271042603841770681948862982993783651056951062334809874192212134661016796710727136557019639812521290483551711929222154027576298405365215596145529226263347286384001425934321708716243340853583526496658962360543571800976620941113808813253464540810886409849815680945186603246843827697603127711209912079143062558220418574292090766052671595156988605519283135360154216928580339098067479780023852268759011772526974151806916945006805696084108141884901261337209274845502594712314016021244327731298076697522195681554648154681997073710680544781587164974572007554257171824579727522669375302142409765681111233591493144881950103817345415322875635544908767640695506090878215218770340682388157212711405907916558257843766406377205238040753310092025571601729394589180472390293608023387326796279833265288696189603248168682471717378205637839744691946904818040630552592353206870846665099054957706197435947407423105489998082579636143826045135635999581527059903226693660008767498194613583700958919700711897231091684891029208881272710307924351508682412080084000409591235836639848066083726225614346203358392183502955017489461044694550470216321854469971728073366682432519712738528743452543640906867821657653582063933954788247637065704241309846029437014126392321158863886529275100364531501451296729189676617088291305251311296591776065675407485976920447850554307594705335437342227172644706530864532671804072372007507777801859720221097111177425422110523693570798534282018324300018699656250027191041971501869962453108497884069953913183742560207986052825509531534395606534979940531292190789202374687726450247247314264209116539070692852621767545456105275814977498293478704660582372822383686099035514494816753792517077970883169620972879255294224900084991105786959722972981288843512202597683456920056300539216658529019813251778355906869421564253841116734357328050567701594484895491168584704434469666380950728798183522674705292523172703683282789145073380902446931077024615508053906074007170433410938047250505972512577658571967680316302053118638503868248476609409407531643433909384267767531413291893558125277720508504829281317758992443292902762748686015602466815242743348645194286039232886577127521239635059292752961913218806805659194434795365750236845889682963428420211584638683262713712963566543996785424494465703404103556988943170920816358155788897816386037501194192051880536677948553994245510696417590756928381205549941623864522185296921698496279499915784833013985760007457947261750487071147996761756313963843559132538829350427459491949031596510868562957736571958543721811403262232919905427259196700225083312416930543295443237167832903946073785133868514805216508330505962466929256128641168338913204641701387964851263844126731507955781097123526438909521910789585511798206840843754516691348369919760439955766273680967942441580790635298627617286668242781558149995469450483550599586061138119304966059634963187230814764020379412168150494536152032226377767734569358003321719032952813146230397872021637759730710375726798240925964760219929050197960624806728962554585654484296758113438510931154528761660100831794552279013277376394833012382729258757836290365282792626696904657354766565448336335238180641006537793111686471633537268376004283945746324370640845441928143260393202160154456615057342643480866934329794351368460941068873847641786954669148355530130205737778123417390801638585332257635516227664141825001854352523353133005883884566080435632998870656321715918817264571421464848856329598744147609217877906286203293132891944607654080442906170831068517011089336607625984679948234273193042102461628531642550036082447037707259702775414147984908035931088959568619686451688767169544947492160241498198808966883202457458835810516551300787967215383928324187510522603730287771779162691468839547188477743413347230400022399364526950364293287688839328751983625474152949809450838505046617261936397869320116874048651663629932417347753304081203509498640038476424770923666398652279741044415627542369425434153123153739898641695481182048114424224222152687874633937568852567513393095363756617770011246737971457652178993009590342509025593902605854126688128317457144930006171342453186444757620433620540724736578574459738673455836933752706743192922724611689634759445653711662072158353129177504365092412760754893583565015960410313975163168935252942330613532897955742811584694119461351395483671173227191539843421630547007459630144138980675187196128453095013467068391746554485574395327282595354021046208868657210494452575880796450790848451313117218240582950359254532464267859273742817589231557273810347918392709797754463236763526439862006967424744852820220790703609612387614855665657664948963155734711704184399627049694217461688501419178201603971049731431605910820663060249816301777449472724984648575413098202032327051409239835687310200674004862702075750803448685694501856753069845757589460225019577238268429289861832378876381368497673970602731120380738661843060801009094748901801017314117467438240902281913411163727875762649827217807610370889638870581348689494831255171490077542774612571780482888338670926439360833067922292645287717931661902811105803448966489110331245783691244397003537599855384761004524995318920893827262608835513173571631499661461055752502799339473201464524673255386053023804084925105914661330705699223460858608990570042301572227722067818257890934976476383053245408881050553409524481080718953413579554156524621500538081798283400077383131629629980652037738501232528285624738176647550444669294349784071471308136185839611496296090731983729076986494669486116877986392039231758437385906191864825947745617143059434369485500647880252792242425619888928774964275146689614520994816709191432148112723335871386440185148533012790198161472963944305708905088976755135317283694649658305693167640523645112579396650227558739133165302405686570082470153929132958980565788361364124149476130819541377459355573620481072162458932475036252878083621533429476748853871366032983686275006295917717332975722233165384853884681149203184398448272806833516381790459970646882104587186946451493823695221630849581165122501967087651536696234209095723458769769102075417857801351277183976059413899144601668046755464469401393659366239908597321090165355140339511563260055885145933021598321374780375027536286832342324523792914227070028705303587000523105426768890952281599053528573856977720582058854854010764649451128913553481331524724105338221106058043785150072763856675202597455963070481097330388092680203546323885433685652509156134806881745387908262845025479065347184353166550003239930096994682335653847288607046001934822440079455645327770522727800880160495176326011944982408353760760376709586540484487920402673430823237349847962869181187635279183975917764112985333925178989599049308279385931596110432476010065981644887605146102313884886324679148521063695096751596898083230993947245130905024293256481758246811929658781640538178174855753791472008842112006802857158878885374434397659444694307714970908002920815652323977687163025856273071007839101850272157307162088819842991645354845834657185375555942521536625425440131333067277908025640140998205432031746308008199831281792225086653217621381238944866509816481814999810577872384122122883630072392878456789591088294038846235019883334421881332222652622110286665486841110992540533857679796432805056219694485724259603550833151019534962711031758676401681087760550816294688688684203946193978373462815999526953899868879660744890758433180577266947062633623288900726670851774191733994641737004775993996186616063935636779126175319691563329795892120085196179502028321144507020313340376343096273319477475668858630674629023278041369658314346803127465662915879463231786372205752071227901612612378063703950486825397330564660644259975126524265007577568687023081254500837669448903024201400708807132038328127933123596150817054639922675571672707138724631403055521820132749229579403788655754984763661876347099676886970848734602204317007692679758660250598273078860223755855515123066983537821113162473651547259544675483739126437231659855895858248139481598532332425655134387023116540674061420474753569293284928003122354875393316988895635011873525722377287809082537889928224156484243341516531062277204442254002002534631725334423747607839688740551057041677793821883975918502168525766261807796833788501397734186015001215449686317439832617596401219522543602159155601175510914733354117396316791703222453173230654217259888686147562820348975095161846579117163886398218869395821363116240442282550992114608867865755834343534796305529895669227869901632891536266261138719010247858229566255582597723352802540297109263055456262412498467699318599104302287990339132834003719899112329543481521125435548967814761010843549134101877916207086109833006646150741384755675180282831954462248275534490598252798665737407821904541963376570013373955011052522839204001523369077165348356249226737135746299089926201318751961476811755439122911533288141257907801731622498212391952088501986192781529028707373646413313136167051460169970163385395809185232193001450055012411977539339499785702569469709324522213345901570053679357624534656426847940893403539107857410782499986502273923663166066812364302150855119309794387400483151210444131749403905394298568311595662007297809956350286482866519636863819835808976472732257160751278283013290193819963134519288884316901124820150395304394759229094217566480638220448499674460337959731259233941552675900356902185014554576906469013927179233624527496676250944262810759200557218862239797457688042557925583936681000315776392771818464951928028701206698630949242331047065859660846422609889775079406807579389499666655746594194784410266159740934315659216559060589783907559908048507191303600422301500642463223763077053966975862375245603858413061854178101598164359804387566764022961526594011354268218548404605711408427699010957592734592427237063268347588047041429977440552538633517274160982924576462638653608562131870238198546121119639157784693502423509838621698506962464466662703753414737828539716044492431738427239612014721940796237659067159595844373895360122295220693535187556224494499699297570049634723123294121609013820728257050039228207348122137485824109738258454662270571665371721398731479524615853270543099966827755423271005067683104525498435807173226020862642783772031408667165653725205545221289874445438833452166781687906418107619371077148152320139018172931751742683192605805550841341207025112765013780385217961941035698803902837480978414644991623330413019184361642097529967340321457180002402750814983308662830807861782419845391771487041872816137543508432017141230436555513882405318232099665147781286350940824055575649838009782105069236842267872919939172425887786955765065574029256651126036487103290567966472470143054317161636684394475931377236213608702719444283317864434427696462457172555262549631676470573547202554983904053526029071396994802493409210696366433904836681919885859652512333783179911237950825444512751717058637649671349869965176753293877552250172582396706615711926619235443190046289884329645437254376808784530697645080577832425520976516643123286798314979025114129135978121120796464926901749002889510648945607566618820933616733381937564080405143707975415215238891241055793448239894739374946771413866371695619333000065381527585602048168106156770252860400678215009439623881443503942294160650262348117793998111427258682990736051903154708330841288688748024032614125642023730372134931250797371378524101691830341803545030321907228462454572300569095836635844839966459384255928642371343531249528179086425652619693453558007957187974102139248987414022628109341054651612425528990037640629534825352721481659416784650274572673109453880654813116902423197251122665634206055354177810297250210952245152149218788037477754317440145601661547476843710455108718677611481466647987997152767752008184465872730348492640093894779761802770201592204132152693508545922853265177531282332203677216745788380294941971279470878268150358035550918348946804941934607124868123245281519481373128887309391934698753485623080813857074126019032469952156094643288435569572291577410897288063870351084209940943586705135318396890910691141821473833467338638556837046658325371237162165922991926789234100308702304874608891794111572645777538736503742351873274646957072780884546742713225485653050384694556192855629910697328466045318470867896127322351845884008421491543231612729361232948293640107072395487762165452100011447817938190633195937998444411318216101300284702511139173152069547938788342230032493061195284107014582245672830146309385006932203758816105279397169800954881581752757565139672292385641902341078688061984671194877957867270742984753031300666439289673407928466627530273737823617906348130806722516145317048518350854266721501318858264439377651390232323946151105957649635961418704011999122747593034154875327914481118970973893845440727488970426161942704442789400773553927745908802392120574587379775237767553406197535413424363872064037727313146687737028198415488396231835596520946328544244822976742670325154686048746073222158290546452796420846829301937235631194272931491498500168890001205656230199455897806515958613496235872032265645527688951712355532781951326213950348344021223544242755295171943323104071459845576221698550700022091191711781546210704508057627331107049255099628846732718986977234621262077487550195489713140495379434883224847974758790579552022320481731439345885631512282559434307909750169886064692705497427438946498500632230086491023994456695410326300079230535197566810637474767150319767410020215761869443602794552128313038482891941538478401227325402901688612683717756975664685765675032792739740016905691289246226361687451425207622979691206807433566582590825197236872645269551629889480396398844362667657362944288246781469562418300699276725051095657824332155106550574855542659935393517039549658161142858386818726767074455101188434381664888991736303546580227797423767812291896111181918411984661123796842746940417105433567138986930758504878829221327679943466107245569592724428400393346578838605629487312850840498100054317458950671491468796561173429665323279239852335819448917260131827927283608365089586613785651162988941737251828470908456255363551716524451314634393357357554412906815467972032983470483520835956230421519830618723031525385580083244197108148942715208400446241219935207870162149136831468869304088176548960419169786010007780817325926596005997609543730690080643670138572865411954888667835119354825800682277278498478013569780569134760975837416818113196750126109325986770798237330948702766037557599307850886342775140472425209758598681039534713537430318259798914071666574473566756200514130308377269961270980103146487912273876083908544030052372986011380302505288643882619707653267879517681018861730778645123253748866652123523312325054717162964628446962829953482701657261864841772462490594040363579714053079947756413208248919561246696423921840896711263849091048703879598553570458586301936301363427955475148237086704150479863844876642733909750560477626764273403651940351803049416003888263949073018325952503611248611529865869731268693034830152086288055457596737818794750917450508989989513235817860936317386520701296506137172606574028199155029923474935952917913027771660742492762886683776672226754244300583150796624627708157658631823101614935312215483726514611285480088214457791506970415033726925124890779714245647344282392516525507519898085895184654196726558145644555697084408823914067343040166787302119636561672724978313069581706575161916213040345851176402645144332352550034069066435310935360455607412448207730666802827824994622277567020331000498766484899803733442810480458450857353200580488281544097478479269993821236122030872023196872077567048877703299524380888037825057245812051700248837468705057508758789989435460464860630353038303148498103964518488061821811192079297101990740020857527141411036397739591998292955423224739023109478418426935946025859738318918449306265267337079805728106967909380056639549622883378888250100659543337819370040088796075753880830511479960162063942448378884026004075145005348487085361733042006669567918256125128808325975065922233463842577925188165977060386237635001821109386380864655350837385953617652725299633797703843379733140070136388587392210551722006602656004810742896270831492127771666807773156724941101063310907210085145816697137082313249622854706162972508986358482399506614113593918268736749757171524073097692339407376317421123540528109609075038902464867875696969253215371661276681580726572096073887956989728904736767075041147232668620846637968223154576042687542782545835588559564143690212019811983477641393522544721122547919832656400600518037794921156496227290527380281074761474021805316117775651907571493441730778002340884770416876240481576325857281115309147672616504397541107159214471644153433496663192886208680615340989356970621183215582586267222327333643361181362371322804561067333390450490607641172080234738232294828935094212041438789858376688357557500961266977588369112839855118817739894714113101199768160940950510763673677042688111306153809583413093485087822671034052849626440237795803363532845625888883862774476490628591264823168787969830371980066219849434234947814720631471671098050546523845868011211687300302329912433542255846437710995636236460301364230665825021784212851691591565595205906003272663347656698064263492468262085493004278875332507281839292557191746882690314253742015512894268574963226840549231436096768491188175481225552664542689274537389837233163571066400948935828604757027953077211484650875107648215792367595033754275545710926763031123198607756222480195385585877961533416711085272864000210869181483106173640005773085737076210186005182777051316600962611601245418234297154539540584986867616197174558024384350054823500252710867390823599109869302349447632771296841394693681500009143915158073991677681255446274020301640872057855924122823048090882719030927536089882445999679028651092565676194012139855076797930233768797445061891676778415734679535999131160423740454150503892271054754326478808063281706866617701431467179942582032037113898437434850495027159106839797645290188255129913451915373441284289017404703120492132354386157213146155826506786180636201935569628108268448513595956512310371128936154048607759195397134820866519695389682950511983948345390732374077081188895935959012451967453216998105465227162048738509539489799849100022307294453849000409857646926898545202157961488006485120946412673574083943753844481179098753875208334879494663286493232575773886091221723805854741447348360671060561682070919176890219334729470976514480048759540303933679334709815664721906719615136631018758329176282265009041112266065573800855361166380034634486503995267684200317497875147281574500132257230272059547465130785368978618002192048998490927858473873565060161586684616347375792962163912607304194784347052819933071687250317122323710857997986563864697053370339375429216678540075672139816020486227125883761457619610675422105196640111059523988656035023588981277524386837806320904593814805323809973201972798395329209292764484899141345987653136387647360968055611645501833049395461683951385042292740451091139630006264572060967481889663409538754258988389998585861084219789526900561719430081358403456971582017795727646311673488716164804975308142974823275761176045164991075970008501879507416649836235512495964678624789783736535424061068286628145131099127342445836871628369216128395631713259303350555526059405590489104259868486237171077232397756406744158268941563700854695699348668500211074264858568795985610316605933502445139276132916795241781162322490886920837694225568943383621907302736656784322726673620533696847761001573963446802028096699341083165365999684153325409265865462915677065042072203512485009946993111386264978994961740966954581194141886783721506767598646898946680023942308859138816707338146704772382455908582944380896218745129568215659744807343076151762983359305307409705881835082497973932107040977402350829929107390747421666746551969240074977255315515155268628839282873361986973090868203961460831815465719712819262237788710550103174327637959619931610467228413092327898671572022725400000001510639419622471754505795418533476288165761125903867106112184586599580818564155254161589822286209489385547042976273264798120461148296880937157986804932475883569350001131468321664532284212481732124138522994333497723822325604490559838628911215977865446044357440902273608632177230624129933590543246397333133874661297186576031625477312013947721736253941437231824821258831254048187157228910526446736535545600910731997669874757494602357574762918483288406535304313207080257272663651273976734840333698416131329498383816533096608225891619281324197618092280199821712050808352469800639229747313499907051319449318136215830750153156869189785119250417064437433121632538861659231470599548384394397382541403756438851434634581009986618267925331940621524578570145223615116905200531852029280972669520207216433413709105719022755134318942200475993744528816584306591256380493595363947805375499608131275886383601341670004046468328265189218497268569357752024318047156447397308574165028549142501406038339192744114368994255745096645870983701416681526222622221912552029659291072357647453811989734471530466809088127559007290908365846108103078429894664689087981685710037860302139236150137809735739395774524119623840716327409931894334022579026996400505269647911975708674666401192566911119960389154673895971337779511528521439038368611172187735856170584815665227394172418549740282974257518363486022444192221059854332985162495599853194753883947049579200171990492048707840802419091596038905157278843787752568740554500313099006585682450942780626343307912663139535349814360872360864178001346057781675174259125341457957202472603120329796489038594695684627698419242366377126502046880961751428806977709258337510946022165547496792653121819907215124991722115359845518182906972147963544845244034725908820042050192328310194081226407254278854869665548598777393957852947443244698926625754265266704898789955110928443435050151878604511939006564061302388720122212152052367007158837140727554335095127417313791526990553865386535827773272568487454938620458228610857459694838315221366912850518919564646715254743890868722687588157747986968511372582076480179125748944811586146270242382639196479439848749735233473163752864583649376197876930430849360885130209169262734975310186709647568200342589567614458755680087728702799360543630448274922669838459214112512175639212899401212695216184885012194923694784456331393874621140118440672593358853801617771853280051156422168861742369348699679902458132654744094193136424302346719132334718769388920761318988914620586342571152805823302954699746665515145207096005181596328245353838503479056972157528519837541007930992176014429877438458024590005441942347136363294225266542208266622425901910485175595361439670462182572984244254663306532969433399837962905064922649256133772974333995711159382351708051233896017028163493783969517622269919221437518606043641603928462501719057591878182742084497430805518803522382611275840525653961893330362721523172384527373677106498737722129997095514178226471745968738020529448632925018698786197710018303600628390254467553588244918678955440469528294932160688340475074059251613815390871380155409267961226030545919460418436294992596774986749359812528358262179288343034361257155551400558471636269058736573853970500201489433488234710547804906203115972954213829570018979105123931256638752327487703467428500537050716540020189873492825131996000204853830227514485541795649715157031372772556206214027929832367829674031087184780231268346055956800809035024984030184516343192142676682027062511567344722106534376917083397156244534107977191101617671517487470064501315137199314675364998129835500508795907505048594191278412911375848014634992097460505358210329276023752548562278577489812973273374812466295502845567002874570224969443669945116282960497681152256866673227496597852636525354831145058478333633854583692171409779155204274699210914685788743877856058424932244256881806925690627901336531042208256755690983399284671731788681378379869168213385945571855088733541240692411997468208451235822708849269468107954547419166849088525936194586669407224622602330051848378366015775526722399154323799723922511064058810185582807389472291655110604613463696231562539225577756395908634922815795897230614702324387539030602863746531024767196162555561341663786832557355988637693629057283428980131853788970668191895288816533717511632698837041842977731754334255892262130541240109419866947673559912290456971760503716089475585603105852977354538836536599524251938789502897832283352439499278923390491682083354911643556091267470437283657831132488581994863224933427776822746042657797281596264752522813796047529333300962347518321672982879595720128365192236123760561050253589729471570503664420732198291180106781714527511120710657064325889996039963600976819865520860161413339624252860061177970429010890073036267839521112963484311611308577259611752247113512718911179855543640152064354991493883716677228664945627274831369213478390481886828422149645969875058132244313890018802983347387464728128505560178573584704418457578507284570315158859258687590193682998949255837755936653949502048364182328149902938100593536079724306270659726783684096324741787857435454798792407747402163398216257165841892402915499376356187175292174159447237125134818820619478523584456582400763301664149149848093339303651119303656419853675446282210567971614589743367888210709624396011716199333662880528599134969079273810618304785851356339519851272712228911828946492878492564019089929004855124443603848709807658519699204783869756347598783069745217321279639350042534665433380236983643189533285618252617276454562617021616826610829836571799438915832821023705050159081754107040007640173452918837784969181306253109291749732239154590475744930682578211253130891863021033974037102550968242902807180819277673135255320631704753983796395618584384999522003249847213687651108419520477356986733491578237522771875841138534306424572381772873617214631599622128557770899254065071245602864537405151579710723092127940248994782002236887572496441329625991469933592607727737311233228543570049210595886438970881519574033131998466645697039327518371395921163818625701267584516005199450257727019952901014968796442663576452797933756284360480882508100715897676994761682792939144458573199824729469702392547320171389004720088319328485694071738782245671476813652510232452002481409926676848121684558000115628657310013056992058103121303997514008088446896293066001325337293639969204110650064262473813777843035683587918589565614531448952378639555076842320480713532089592785640921153609520858265889710209233946739618012746551376621969034376177300421389023416758339534621251960132636140899600710425723597361894642438771110461171158611743217713636153633284323348255170649575344634387677399733948324465028799361715832857859010967738301572277612094744745779977388368626108564025018923009585766225834661436718721128382698287098740664687975606367470752751421040005569655613419721965726574377302312383404209614005060914026438867902715058852229541124039693647728670553354305347915301719772911236832863692618632593928622389632002613532919767623036649016179269910873444236174009181420118500480830245047617992152840830570636925691894816407103239572352836614860090119445874065328519084453775545096130508897315615198430339110571859495416537069110953521387398256282956058497393271839359652576203882082901015963893511321639651327991844430047883990905238143719168233629990162214128808693424268060640226369751574834701174668442121495201262642883439578635788311465219550624573578421302196972048508107975508481952967390258971179050266363171738146049086135204542458526108556567665379108610988224949796748364662243828943958015255911969674969704833283118360370613570082274018479989108169537183504212779640149336529487068102746181903074160206687283831420673613125116394126305386564520038843517411157795920881043991997919889063045310013394039096585977624411803925574456494133899276263768255304878881083445483744600173464841172721979707501956513696802258148185742962673627772578808698378270464253054076411900235935422278345985248698029686337128326173679707706960811482876802117521986594143149034134624519450895661202657819652291419041314114953359593728097841689519866397650735330207982951955334686869905347652815792036983926613068576320904443937828385394888864522450032606728805541486946353185192517017237034453119562581931845358356264197951627411552021006523269968312723882588268497078082407785530394585289026746342412068199485664040749384943970392424137561429524648474269911221273924464448202997653744636454091896379148890457633281342686051369007894685596143552097982474004843484126483651231555625511005245022769670088934557459323188711027611430309112859014902640739045007339100180939866590381034964217106505046709476799136612048559524672208095309476896147735443585219877048037800732482397125990293462459907975546777801127184571347659370514785964414126542151841681343729345635809505194411046631814965015843557889311993068336709366597946427001657648443459133731022098089138497262763403111371881967433484608506579808059685633830631092967509457064397845524802104788699164912605463406220219618396291894483943713344464222572092709643991871421953062123053144534928273672760123267292087810354473242694534550373733939345878858246759382427683058681142366285626589059293295008035277214476949491903953035828322207677130038069698495231683067696980367950655719528360116829558745108019224284469881798997647076476442345525351646754993839258739316761015083440110710606318341178318692395574542838515477923460200876120087971820116881677765509099784882788986293432782264900850415396540419993160719718189751728944785697396349165723938377105711072523469161248216605584901043883821315499847760972633482549173922899665835278265277033319920616447916955816044845338141375285693150911361029644446395553603245343209289546381057744268713420679385539477543084223366183786331635494521458448094032447203231514896721301434801579511746053733343587119210686063777449249932716937009652438526971195926120843244175590132350819474514937853053578285066061561632710661538181301937081127640320774876286428847147428420367149955381088063375089246407118915307717543568597920938223050671115980793037406569329222935461951046543210713436011000614964551337655688832587649698630375358444253661115443513686227775529330185821042439387898953171885824873454302146840519624090263487654116064635292019069410585886040322753105113646809047159702208579149378274768321759417971124573773428887850224421754701465384032081471645113347630041612732104703723209793253975498534619495954405074326354456268010299388308885228742824383090958268649780737227234034710172851138143506485419089020924894852947033911945500423644091522858617814013484081288742746466880955932037553971202745777961563094368778779152441764630903922932446198805403046165222127594097265674428177032861461797812761409283040541908513746391430235950087062030907324643002180102240608542458483049428100855519054032419901043028060943813063403573496043467947506190418609630028570794399975195595486514335041162389371598082166560297581758391186736239007061728393483713491629904581589626298833198607732350233097657148051909361485083025448099028357950043090771412814608816056745902163937462979683577476805568875931917519247390598457459226330893023605364360465321593952613147076294998818713500245209034956656924850153593977789013008020147262140924750161551065179064480209524261031371719345605761077453947507670132515739946269182209624598634470078783047533613977077983857226908776781900357670186482852751968827374960777566799871023678717673381676467722518027208848136995440176923574072371467344826597671836989388396760609043182928761511068888732203070689634710935836917455267392646639795723775261482667447621311759613877521760940323743223467198802697883880166613852596951197404389837378606595387099817413537128751951088435845164585570904264478176316307739728233482155874708083475250473656970608225959336363543056824994204282981836803240865254113129972779836356558898823920204589732826761124027787573274338082903947082234501968410505388500237705678935077288735771089804322587946523332058194454525512900471018036786530267571276804907642947242745044809168033282019724511069506041495144795584681885072305762422432707115430509667852068145560767131068407910531488675727548678889547501820694225463380710979204721094462649263784465079760481187145702778209975636513304040775819813295178165105130747982791046487709609770840322485563058206974981721381743485118460165202508619441761761798715202353971279095198709803837179832890228648918480301830895712988164724015528979611862574858653515298116911619392690868938966112322734628226819602437011718946037801843511875055205063899862269374986209558591432872743217977988349347449744041701379213518069471660076059575524680109523832078062152012826348293226464564901730917799001362131668014990162233176173975865259211152610245115647076175754235691454692630586974635377582495578880565827394891514908194695446570406150800996508262200313806463166249028823503136523076883933206933873397106729608066812743430686240413281279533843010064346769910130500271272408917861057866985727379770589417402751695379824655876760622275542891017293941835552229547536931005521731797494489151812403202023165725429006896707064715365378128985845648392321367760158526910863967476104396458022021481113667790472758431286589693666420076544131528868422288688552425721788963030748950494671277606887599378291842023126078905491187076157102316088478195782109124410812319254613360004013743126064186078815475810327471205565067277442538437675665392448964913715282814088127818555702924778258087105654755479808971208183369945634621193864524777482939891696709027210791066754475874527206962086135640212042144393831316437090704519050407159141253371340046174311087321457866203951271719461829637568156311395828461363142372564718470360164299926311377590593248563460385875685067353936798675341927981299543190737221148961817915670491165733332628296502234951222785109355443278104672223124324112289331395902284028246668915299552788105642657271888945819079659587425809690288280693171985726828887709675873032428589746343110671331355393028111062159123920355234412612756565390042310634483970121170348745376464033073279868250346068036685448271350977699554649983880057675899072898626614410730766742591437793470157268311212112104941833294322966766223649167592825127147153918941964289993591597518995490754152925106590768899656692005277784746951173654111966959310940700163103675099417447381524574523177307324110634297426767027346553970122643035165021535859430553327329067774452427737805215818096076800068354330321708717715593576785283394595477104376910508382621275571921069569567122323614794947844650116823995164924774055909833882323509046417186383621901705997305535776756425062569453391429146896060107992145751113481945641401287875543016830517563514500639551267746331809195204237130553496418763310240638000900706496445406679258530854986361984745564979410839844366791817604488058808317585154274142766376870137756872046229695698996659975866430234069375873943022644490906495635671675818365781322953318012666506216468283271220490281012998986640701426896326466026500915505810520988058793597086937293012780153208287666208860098965145190880274654726530413214092105872324108509965106453126964743950235379491036054061584086526972441000658032043004020159781573277379341014460743055751454800010008556902196622078872394443727921919341050408952855904255656794916029937081913181181866727263458481234898482270086658509327120582235571637428533448661361137379110749803640725393063800782357749460469249267136861770508044038821868811193311420336317660366565652712314323012316433267661260608136334783197341299036931979434214544027646205930561286153064537159628552654901797160948401891562778664600991388730953951918611112949346010917865290901674477972002276136044074234759669738670753495975519970265815297272858434632792312790299424138131941912192933025357507014257158708981519128795021551158707870117266294421398737193545169968862817945245739012032182215602970893604841149247509007297182957957042682624348356623546943665202469409900436852362034661730804306106988208144104033776885501828571802987789904427862036987497609843790438409842280020703118704555816334185000677637872954126099051980483730428391332459837720789821838208541574279376640835592757774572132204970547185667382147854146682738017548158532111402978734800384205085547074232434851562519069465748531573844870854911264477452571091681202507898443064108606360468850703672111624555755385861337422950280928752135366856535036445844881648437566663509194770730782185140658090436185608755860910295450655774956136007895678661841870459086574525567044633842294418648744111829073469743824658098576337681904425746067241359040761914621540535657394457134212191426941468991522654397996578716201845946611943410785226712378561458542941135448630535998467089248210527457437070989144388432341717481640377582633420580243923057827080912077211400685393290719308723257698297638141004779406004729987071998353987388073502529526343044810334791092566494731460448543621414196555608548127480111228565494191730680232513455644137618605329832462612102924757151675993943733331323823447613697869618240841141323003247368614990227310225772305172629094001839648149416168688345339429344339033324610092738808766285258387107825026262088919992534139283974614380769165096816172062971574047034956716475842376111802848841917618436995313081272987056711956150998700062137000869649724277620644580756533590697148804055771821064844658479618598198724111278412239319261244957652851530683966246643652961540355190886562324211266336079393780016816562773150225982104873186112427945901856566028340773642201116547359070884031127998673202020762197948801099731632023398456186046879058999099821092294366475188476838908045747098083850726042368556662229075234233649431407525050794142256587366776497129021044911314680284329540618828926491386140950897750785691062245691620120440501870217833763823415072756136536918380426563096058466376196081944613728920088084227437709548086209281215361856833421465966309890560924328002776223146927345060579720735644337866614883052591359847849163264473432401387301704082547388699563978952539510046644718541149649567209662442361046597617634046361108829776890759498703393598197203147215437596514408325946824745477040616456646883850635721398418182030001426331043757848603526130331836837344930973573470683590250459274782557233746718193672207923328415086256623573673820856063469573085171749093875966130409145926315006506265692500862292238991343601397755032890695438437637607826004098954209222234684952024835828499662140595881211237955765321858538125639211408768562347464294510344753303275961488598513326357212400999330687470710824858154619488974470613663205191085849672452513759326357716296640512219597958653805504355040315762172272777555994555725460082042663311986464907628396982968759954429229209140680703516206955244751839295545423508179342130386722473725739034251378642205486672080046762076022765985933242421008203685041824250870365010843650399077986107243140923803304955276143134128955177492893435582464540587437056400419634865349086293060654940912515521488604868305032618131070033861339247163412876533807741756306020345432458810976427203555968216531042647256547525167020886974799963367328388209519190424656895292056769399612450422855826751361614695102680803798272811899049432033323911010419981542607388491553687033393913399422745159886021675608621757748301096556251970217015967669000710887480236500162475465188423488476052961075628792694682261138404859156178434636194995303053397257919242541895414474617176594061252082329616060140499843350573387940552548831961949617448856310250912571977591495481127493731752895273621612459695995873943561049034492409982894513049843303979439988514534529660004663606371676896620151531695099126847900943411249952860057772519954255429758524777628100424433568502154303514898221685123777346446315958905808126175467237653539900837695451193709177378384903605107569292189978267255345624008826147573735942193366549937837675526590817718300954867263050128155732153278187368987050897869741037568060727343151803378408166158526397697256744869080437280362479672707405650840819348834866315804782574855543914265092775240432805411873940713170292684383670286018776663167987137502130667988503941068991879456179780450701777934032189555516351888489836439610603259060389968070678269612771077723304612293010573817996021405414615784694554215711589443330986292487294481769778631418543271192677754855747718746977734622050559132861300842600971337112935560334611178901705071754398489090115980683814442788823947706292496364191009971995401521749822687589076659502511823510482253319947831221716957879773865336951587115712778778488876780708978522107522250227094871600609438772192285291859849603327184374036967093362310772317149397911786490658316123539751020081272665663139403527951483971483056157670084299959082432762647224338857999315418568201667979079859790492747350017730138283581411610885539581043818969314620937453903471347760724933372704976223347173224909149817908298331693343994474607557666118049906469297407882228158405735821890350680192274683557954248360333553498429175138957303608133906725094334219485352716187499687130334054351192719599821232267533572293419183967446543221195765258262390184388759573842890933687227963983515049712161435925960850214001549838307536027071209127954362008526323890660512978118825094025384903677280131176817928287851266636376207373192321137975564493974527282078869672515412733813277693548717319015640066292029921028284625829292871152776562356280521985039143073583444388713043076309857184851592675018647113609051608792578883322106653539769553949666083520164238780045774724516690146601545076051584868246554460859856587019872071891582570421808558165247071271171169307544226730873092889910913013424260652729097617616039129709182336225278928531799142721294989145165887338779823555298932622199653739266834582399385397600097307684459299937852550077473259144329517905599394771093248524224014588328115718668113627185608890397964471543590806218671721289390980502482396380663017780836707609595302885005722304724611060813460264701237663566987330400600644902742471977410544528603546390505462214941494801789647223894207369653649079819990626990017974635163088943994980169822509633349098546685362872626581100671121245892275799704600536490662237128272335641849995275751237844514596065144550816244718177141773726506455667266541137079433788307857405713615913473667017913466591609400568328313136631526209206618665011673628946200967416513273529837851723626504240019067961910538363281348758238422800915480336407507351756757651265961825640050785437574991897924218862085803517381391032263585823336348546768954081451440988268545539532561766856389035466497604172272833960502929968257280427857067658352375029347616029783239272514257153331811949106662854454642971708760361725406813264429068563642054238773387944949768560527232350064922639480750693896625332822681002187445902823099285024423789010772814195836783164219204018895645488238547479938056130792842611039274460913246034422669886303484828841249221436031919080213658250116302574989168807805965671906919993784372490291964989258844872309732032712648550949535198002578006521318929979687218164394241143076064073728185182342458121884178623194046775412074362181093069436048532261764325685498701771333297289070168832530158980224624295258658489271402015708869927155289734567308807439342742353457940970763826844969274094390341340533626823016895093201715676265850621604983832329447222545510179631547962360161891133443633747241128777123822628658152733550637223739778898362388323629637837242260951805654894174613939621583198655081379343563944804646619828840481316042689064677245764073531446932378348621323664806191396016552786858977244999506351880538130325563991532728273500578813037597743369890035771046546496870212652310755425997970982048434645501072257878036407215772596519560337685873599434209551644631662926993635461911699972215164375357886112625771304899375835783238130260468449190599630684186305797719041977899228591371300317238865656624101920106150035975202070311556036058659529933257160687481482563442942976845355834419381503609050176068204217019964019791041777680015955628672839272882238909280821352819012429156162076240962856299963952010095268668643126855711131984350520529195844463905860516196900226009813284457470008852094489486831841213132542030493708188999113711520671351028399754406496768550801134372945915206290624470259061179194448433123217236977492727756993675079465221323777721564344904874897844283039116232821156337471371214608658231618679168773621152261680741887698585740339366201591547082642502750056139790104709770380300888805425709588881719146755538769780036747743826964912238784294571888141948857524593711971759914644063285599558051557653691534937368536573237624027105027760155800742582125724992967053709554717136111867863233183803708892853721997455978653196050879309924742132286022417761967921300873236306590443356942527772427574898131243380631100612271449474972448757200645069935739507588458437775526269145805058222242771289245813331784553270979621399494508033541575264910713778545477530791109711555335349034639444939693397265720312044270616004182251786648629052254378820839481840051370533171737594786252946099370049094451911023332947400131908585990211717665673588866670160917062219660507711848293471911912688435132194354441038391928033720624848292941661526336134879678622338835350962182593657777178940136463082062507023064329491225384777257381225195231033671648836296606049174394246981670965212413971875234692722423227497876267643035965271013381505495218962072306786252383565361692460248232296505598745862075173257666867193903698474418592469221170540707492519835685493138833441333308408232201882207118195528483971058021973900788050287739110711514103488716035485362073651140402013510065349530411583855088080074547611387265561204604901872962584266821774427787947470096669996485829218309043115451009748120609110410479380497765492057318248334154766725549187975163362618125816772819500877910726665979638792155427169116324505089378788162242694910331625820417200947184740007990805139241987476284139828660059776447638948698958007040314834626358377415794438386630272202456477897432948242917586254319498704877338881548688179925165498416386314504886845917682705396932315597745133242644225306730397259569276895421058981226075459990177289846351870130479455567165884553333107604918341155902359811034815540059945101751324756635542048649063261587675005206850343183903585001462240227391721300052833639078594141748978584781869796830879719864077210978497893789191324660327007528431354724489911623372277163167348034700816327568084937039362007726714880937700420690576840551196113057081804888264331988991478066253278238222256737882359176029262290761108821034338141638663147644840839708040107315362909307815062960466891565028923205363260535507983767387195988009036207161092188184274281218324132064468818303469734612997020380524016731609194660664170539749960092608893807598697815043781464583304212838836813103428968847532519751882778592487518654343735661157795796133019290362861649888139249948243464448775833116871670346544842145983981532198100897429937738455481702765800937165504740149672572334991604804689560488286064399027775091584169733982513410346875902427162380227036654110582110715910146666038851836603019879741602066097694019883737946999248214119197447937090461340441629989030494226693456557461763713329663882450502804464002707724493156970974429566380661464364264250293503447209191003462579755795350233916491936635943608412293384791094384430338940664570471528430470486836076553525356820640344389159892861914417440611073375869198809833098810835970043000389103598181465641717824111856473850797077298734833144167523386886654437661372051361855944170699580349629291770906535433209804198891307129666769377170528115974748581241630152049705655027322407404330787137478897601632631205038301498182236541870472323143136441074029806841177061067109262260023430712168717241643584705587258987409214541823617419970411154820557850606923612418881496448694155166559898459299603232027273962447786965381703872134804695901870210779737324153393441038984423742587398310547544119575306284085759814813473623418798302216323867757166828349894373765707029119292685998795385701728385534767094809838131582438996398358152065710851215549187922232955712871125865073974647073017866780244480817793715749927981493627457400701114427696247492763547516766191469410468801914729715312209309432443579007120772443115714415631945596259543570030443266959953909291196249290728642384902474720193879004673342040371227315892581319477664598678582503818349400973193659128312533488291891832404148972409098822674723536315604798736283769023898810695551110875127486254264816377764589942562477844854448330393175964874127953772609292057178484390693284842462793731561262531462932568805291597980054021583045934781582764755281779768080662339822093688454724024702658485051687848117684134487047288198941424677123590734849377121991381610970156558936035081798441208932658474066754406058189136851195806981508777850834085262825570970771701413227528483213736095215553259639299974108138373609460560033588479132891295347590006478993246426846392888581744681235518030759032390871120327675679518529734718107042526252822394997470609132594228182292094340927860147062496322284340650666275277248748548266813666624427349719381844178363682826795093280550052451859783530216769886054844575122019774537179966341019300952688762419471874577278474479040115264525973908394631721777517032128643971739604149333969367952540260802013488467869566117119380204071023454101791234692467437584741107503187561893097018025518285748716480161430639234232660485882252275017414081468545860201235462228718134256503874327728356321482493858728615798848917047297986333229223912565172866881855759215383355723659182242167654192208395487843785759829324297074008553990998503556866931489832426492783275649489781893233624564682530828600237243128427214594972880021083545103293933327791201415643020156219278812994100841394369974929269931120989057172687936566583454804025111936256020456174728332598554491205579112708462491829368580886911782427931240210475569145220925322359953732443560361610832886853442196212794824022247387923141315033447166046315270484724155785003478375650709437874483568743269985936717344600330196695804342682510731023962546293496634768739852109660514726096070250628934044626307345402079789152953682288487658847079664108965155474241345229985664333815050748087546554088271862131886115613130968728748381513312420971896472501126814711777973913379034193025116292988843083896527134424027059605402655483338084037573057668149487005525797115760772747258559683558697412494658427490590502364625101274413956181562375038402140344847062968098197331266724150694797325786012396724884138520869736883720948392344886720911311340600689820345437714818699908155122704370777476403803559645965640707348262803972341900513221263086266693278381073784281968169215922445566216129490101438423430322520136525170066111860838962321311522261265519198414104686112826000546089077634355210184121697762768710162176945088673882429645642864392177034562452691723375948457497456790594975212244316969539959112957992102809777600460160878703581250363384548758585697437533001059741911383591986986751178196340082649924136873406790974857631244221585849356149322515983647695427237010224176089780847812076949795246518694961011674103876408801548853165378758663184002970860351972029957495973448840079654928901340445255173212513049416767950323736627000164668838736511389699132130860488646965544008838611508286196904188747297314246534443017300916738336171973209057777294787145882895414840397133911941781686533497003446099991378317626339831845688410732212738970792600972319270777349251592181563350063791690693806304243281669682738491378625020984922968535339690416997761775252414538075132269709132149161222516890014119547535694254216164854199297172540019919670169738771505067368486545405477795210969935926200073819178979912232159116567068640266902509379990385467052525440944402559561071117146732592351030489201670605143377342188203806985825839139355474300042836688503661826076831305857887818642926976496806006534701743883500562763249122127166969989729347002385320797376462295851991723204767815238965657103772455695974319733453910988982142056327564990793282456253055411552637502727526897909105806875594670710578669659682346498873302401000737999581584681753317211256473692332228025618001670860522404209164189953818749501219565575177062307038463214003435190448723419214616206108235637060352022733717693902084095475321901106461337012848719940734819751710153292952097378577386529303127117915451684643821116379307303964541568006557404765633120296068791935439847759465017440967079361916559564238545615887878374836891971257868878110658671092946127940520833665724429690095565104606124514593072423490201975105605317791539504654720880775606585627001011596129685368611921845709982474155579371207442242602364979977854918180025169561825273845855147101246814825365844882031698999036028859248875809636556413258583127397168648939648244467715819952418242065245532218580712507532210922243589059215496103662499781841335807582387047658958821274144169881832204913204339346267282443752787182485405244684914211515623327195560882968320338359720096234864565138048819666963323335502341562292697800251718227819820605341435620559175842777089967744522391875588353991833953752893955111362304279438282727769173508972085633655894809915996904525080197552253118707251694048143662323636700840362489118826002855523867216224307212960657881438844112967818776967593241132531057911775495962815881673798658843975688635179008809602760285697486433984826644972091696319616825654130176533043206868786058279349261010795813988381629615075308005278522047119181704841047339273137201753475389550251880307038084400808682374137122788971183827489420991148701593235642164166404521332010425163603709924780376337434754608716852559914636063602295402954861495369859552674290244404507649289668242897878083773166661864084794709271115608246270155703758936222812703944122068500340453139091338058871796292604559303622941994892794992998542071552327536256865157315259477831749761707415765894758041279933502717137633184288280382303735358831420128111784156372759818337827762672545452478246243864822546763153738712476872462845321157576103862387191937851348983700525909420152157264273699631843963932348110885492046066616760228146412669857980167945047833139463658205610194294185607714810253632810482707347025912019026375275124055505343435131473370961672458455124043447071286656858911140561580612849495485226315065080238045417539710981309186543136475857480605799498036659143976672495061096538805343486827411163715452409440493433070198934517112348164395354863703748915744037571343153720376315639940394086453415495409359609531475022805426842425383050386722570418400297232712521921173530485354169646436651142993502355896479347641264251803236511688590134082427604535626968195489076455504096010886556498023064825196436587961936583711241718545141441908714311788867826267823464051855157537755497861761287303122012223142913241037795595570851340549695046565917556206783564694392782528540161917286855171691681535778177784054555607429919902346231227949529230841379446415058448371512324690587832890145515657984970607302387377948323795998844099080178610607338381306552228924808236229150876694137272385871116935934504654207008387453910863744670600870624689179181559019490512840567854708198462858732131498848363778711375914595469214659501197139537341104002408083886677413176189680452680487460717536429979240374569015438584494920858550232024786151873915134380029488533805181486983233417711266212269768545298709580273716469719241190030696169958707650004186100764398156709779860712950477239051377619512687299074444317176120814898464915375884150795203692980258701397909659466731900610814807665402296110934727506512051975812190582835840024910197278188087410076525010111454439561386275256871332146343207065088269307517972550040227419240682062765809013781859036507658966610534395106300435219874516052469694515492037711118066486218103072287522109793279329503406496913613459360725043480590326358150777760869049863913592817276363146143123112963323558140734450070369510374008649307527440375275759048022917326462160656975726272519250410316555369465071221268848615044600333294898739247358230008960676161220407894031649175466544778913800242209007840353175262723366529056913134913123935378203270741853720355691236082137607399749151856369857769456633614600033156200876034538845649670507099930427399492802964481597283349419446005545514092149545579957377251069386430602868404177526405851941627060542609393912584796198971889920832863332003393393985031853898780696584407075538145032848214015594281541445031509535013323850018083182882532360585081077590994200318767887237250213550341984228197411032461336520801914541003197204379769155124464531659645456141436170088310569083206693373240293979910038600961749532998035951028311057286331487403472142821904499980503393980252763259596520700775350133873166491147267608915355078893291222036535832874967091775145655961761206431645913442206045921269812759793245900969494658111457583262337330531698142864619159771241810548525771182056168697950527412501255939725450648505798785445331100695517905508413393598247615131076928534288557767911310157182855103638848642355155443815058811110526208691726971352085179738292038940726326792567892452816773937383522042165577171435803912457632177200845233268404562610933808607897839192921336054837752872437227439342925591320841252108778572564298962141686537671127877251429752439569662960735591588867503972519527888729409356938853185454911083966589746190009249376034408370188518054860479425273777610046421269245141173923630839066859594049234280027215615482975071337253330515262954652571745735106356144205990075185842440295548561118625596794701259746563533105960339195931920974522855209196525662097648062160189279329967089457918943077903537739992215289221777959052215156263577009139100756357598032877399425447311846282451973070652649066313887286432468229639457238299886243803757017879271859858423889015584393631242209168484129049938076685866813868154806262082479314065906980055962880990062085279133114742107866355936178093437849121663856463271965589027630268727828686579520402558149494102042895402797778686039441069808730860637053932843997116950220815343375257245498205448469027246766688397501516302651444027653839820187430835361792079703562356167697627813444028521606414111232151949148324142558141240578363009388207430348636154509358258975115247181528327041058754506671080185556861922817914790020259115836254471051634267970949602616952143742867001203208402406402324706933341354459756178273483592678747856101327483635851180771397257274394334063559496527091718211434598732597491811955932626584176036229576794917822307145651685229370837344172798703591373215890292504379927702331752199212328430274285953925701261566267327068130720355092598018443897305694557845328509948925226373316593404355410608689844959914110652857049062778353255278146713073479346255016181199632300275009572499021005225004782722023778232003589182868709065251641344995137274974481527273301348996508846213145684211744345271664773646655744173617103615070033752439363321580325756258570809430785695304571438814632603968902431460604940245445841298416583369696994626590777858012781299951782322887304153593045782269051046118181561884138807215827523849986020976694965272142771456902459126816138254225361595459794446990093509071307503879648670079487478036718859989331140250165788951522230555696201874441722612959405857414338337520745685701108795194083207982935750514599544627830589574020036555197460488028577115257553280814156573309685523682319825413602725220534858772485079858718251235371579092785719243722557367150488343051021743695671486257597718189180442700091865119818030167942098294722356513341945480145813778133025065002958554064157431877568043529480481481325345317362280600542032863578824266240210559911447293737992676240487494302262588220373206674623018653793839117287573705554905467367982414816432740278955931630514045021949612633363981855112915758932297847860585174364079587238078093539721457141250783204654780472841806033406190432533708625286342917066842396862869185888897108274514568898063406756362134895294568619626848257554817064556534618002151079653698918714549052783846461369499130036746789176889523122880187020718792911923567545552012305475274467337199283853845476746996493024843984015597048073108101690939964761283759069344487129612335511619365131279547308950074292919208053649846392886310471059114668131623404632826878183918942614556588082886358780927885085278513452082144997350662625920085331998052981845080030818987476896071445464436465306248132993333688708358190951114115048907014364556910636663531572963820702239914382508726117544370165809217278255679702159910039224031533793681877526149310094050653591140325347214408291121755444843667603812136421936287857284057510389875851261803309774686238564432676284632462463229378952928133005264553740378142196835527928329288823617942407100431493920318052199607674561662984704909398802991240835100238752480983571131420254207326050581087756781455799633225533241271244499346988250052958188422879355753463884301904828832477919809347799751300002369434759471685123702698167764102006437533642349996249695263044196628448405372345939711898833253416196260593424467256653120602210748585776107293238058974350032979522648443140139760387592238652667392193772203392093091142520848945121138866288460009011021432195107311035161501549651193634640119567235797769077332529535086655643497289659563855006876826290964384446512784207105850486259650214435656397209906692562771868936848154100486692396374481509847956704609722564191543623296426975251727255588388466669326301005692091928931563966308053287769228657429922785271002743274801357272259802180426728722494751768907545350747922386577514694684917513160563639992013923174807446778945362656253376452799484613019129045419392824311474295745619539533018964659992804318213631712456983557766991603798301329339088249626735552136261165325809014468340265596612491193989596526010571674156374959062377933351469590782831734762581081391148456011477822416739859773623437709065243932586301961583045841629524744670406852603174269454353869662933693629390522058812814550374841578942527220840908294742298875989446320733102028958587676746934355830531344686374455509473999279761407868417209225312644880189004420140424970179161755498983625629365870035336292160479122937872350982642868526181427720592356419687957117519221672846128034299397619167525620780321997374794245546896565274212288300790055833757873381935797285822110508381459882247312257620749893299008140755820732859706529441418928333466091541403204746250402310660546433730210009390921690591521171754719745349865255180976568023833785142297398620107865394226177653079679395324668425907171845521999243103107163785861052069161308304435622457668099260243480872634440310069805998064036808966894978766201372456752507982538498878556235637752430524153605234926414049571527885292184800240779778967583631240020148191844871624266485880091257821317015009846950236524382491019690158066986147647828125978142965571313764051219675740727649143329948417839036500914477151400534441844396118861724310284102361705757700148176116297318581242906067244073569430858566543551058291945955938319961874435444847896254304557060078695816050984051075027143472186959166098228607858417606829448168580624454138703434306896744215550153956175650314658041262862038237549375705197696287542824037425664922648601383656974720166534835873492664710880412260063929721811263633323385122408460273490069567454742105207277461097602109446071114215343897780508267369628383837861137558015449524194779974937211043172125081734914938360844836879631284922116838397041297687911650454244185857821283883399362810623770238424500355521204852346197202920624622993253200975666357967854653341840974726463002581242676799549748593781447251706401420658631433742157351100495948440999550831929243389356150151997210104410847752304601106561810869251986417689584551989040882348976175338891477619465175425992174208502149704308080222736285896475494093891855213433766404775090102778397369928037941752651059969090561511188829511729277490478614617586970829110227871477347471598224398683011148311905047310916275691958451759856408505876086835009171352207634528060114979400987203906797851873808197714795305972002631019638583651158144729180258353040573429608276192137895679746067945320927295955771687130731128270239751098886707809638632769888361077920189346298086933517809898344123928371897040026229865614134268037101102434460514375440747341076512398405324838440220037243553562252945420544336130819178063360176635310967088590040194913176112621145436001155559834227377933644059679839046405519728232081675461041650124644852848880651547000886323568461436063916984638902641217853098322828939356018547532093400137979154794178535486634375223253458498263978310225924492712977893345041711564864081126658135447049555324219356860843246130408861903008979735109209655527869022534954794112454547250751021266227818584086603942475800925059279814775482684936458049082472187738985130863989528024399061468602168369545730547854750067384048397849141672107299084758011089162935773452751946079150020584537045124703723440007043612855521575268577746761973442534179064899182893013427896697804713412345022691333039790549826104762009222653161587531952071459721195038694804800268542523181789194475748365612892050183990610755117333137756231000990319364834842630026654499232787678603286587968070743074148378472405318163213157342916545859480343759205647549166222557477313748488754648209772455796538730746558742388249060495973031438876693954920430158535491686472888004250142599056236864228051930033855230991001470138434286040867409456548513543091620071953659601198985455484550987472327594845578785176350190508581386731639956495233131867533096641658426891462348390433434005405055261314052424071702368796329068460905120722577320955329183967351461687121070512144893864094758672437797599099715264967457475594153562631222607230979804465707750988604745392820542389865052881227147969976633007214456601507086011995151380893603064744437568560113312695944027295342029688479222057672191373863595597130704507969684025214674638208339061653983983571906489559497030685789016914933832868438509859567435085376314911948159815697855878455345093357675536635835290501727282364774243046557579571868058249446750921427975118408110856531870288420807755849843171480690342538608009990941045153995830110089957022087308862062279745746181817475160227727439224382430626208231865449365279570421391118312306537344342805368087151024032576261047777117245594193306905387989595823349712438362283569306169059255195115766258144885170758621485243994768377545777217890747384953020972323429053882380964458295015677086310518290884176445431669038722923650566210854306103287813826365412152397645920786219615796396304432349584018035531017229807575031589320456529458760044743713540045427935199588101940946583970180204767789429346121495374097350400180883675094853785324584816137455698518662871696498354650478269992465181903159529560757164260143673138753437408009959668029073381402447097713143337922553737710025196541304571392302836885613976932639307391769393951112206471041917861583855787575363022692462449709633373136095318203221371098393884424796262983999519015560514978456368952808406494717518418274343166993601308827785642477292253208673364225973636331100688717153547245866935952750014410003361593675600528150487215649043394929703504224915776244296447809990583747189870834844508847163161157140702685875951598479980710387681535004978760085575283148290353643792785929747247566489866722036488134340060630354347740904449314682392685285305731029783162161482957110527905292455347765417202056959187365571869125010294568939236465162943926834333638678986290022690814275204970035058416843266205587229550976873584745290341840806991980783764584582501568082475059241930718038798657787897380000154611525005346408495416884943914721003179425066165068274671947593869072781929893957387284474764281754579071010374114327320202490870603335973687090465902148504759291202464526783655133927302096689586438920104911255503122181504429038635715278338702002912439022689464448552155806089824686423978334944631365575463803198652159341879250608710905107924044749684706080002045264243595897525413165478926572809797081270874281865334645648132871583421957585132595382686450916806431069482288326363429994525528806035507893273047839834536545402426839255882744082204764828760277450574111864987373420231866263002178912371843412139585007052007455474305882578305259934781808734472189084039777881906811647716954846418554457172300255805162480299851372846444998336744794038659340133463748673215781181122427451105050866553557158890960362740143080169743060283147522495984164956380108928052076627788415892564567447309399579585472056184842991425461700561235222535758897179846985646043283046531925815608053219886221587378087053411484657928538825308866517070396418151278501513848599972854984638676424669037635018611594026765866455640252530834332309925763636848610453413335993952509321152472117383459306978976224862836286450430237939868799304294599964854971792549877619914944655188294772561825602256582638097642356342743802610981030236968820964801592937872668694626415417408045633911304377573451189366887752990917502804266261866968817061915447741270725983749284191674736335022565731979992053204871092236100619220338783116187977291554660108211674749593226128123807191358013104955583591753864907166261534720178785741445593092849374206705645150159806895520616882658729918861996374234232373840448617540052361197416098457453680136994413988408249542250679178600322261310525721671024143415764575477431265878366196972118373396273663657668958345682105922092025846832232434978079584850713269261726819025801133190017165208053147410359196163571678280003417798540248002649626531884577838338957359338986134127571458435015682420158287983350994454079669580999522881575052143364432485356541458686025349139571000333908741146136632610893235176947183557511419253004719110551420963427858955965850643048009487149136038571673906445188911546684500804267394885718100859411831296125933357519548566714651159367317698421375376930638827272770280102096185266452833416600126536632149408978666062056671430059630285813288239993398499934070012032127393969981071758090588062278794397064302031255504000418470163924075590451922606529949658898839784391634519915702658742333345957424090618825526173653087587754397916784846913343107364833185283019189822250968787873103957248741116606305125009677065806365763905213761052717821520636627841916084813933515743650967250240710226796053985993246580461145765011137734206274615550745168326319843999282681812510254859721686865059198171574892126280319913488375937190312643019657251965350109892064914740077810817874580361018350762204043477245025244201297831396920604152936535845947805098223132575835503444057073013150987983367573415389119497748716553484420011752301886917028268440624842061924347602159626564760713327278499594160124096133649867595109221637215286342802742568598330793223023178547777836975291023472926015780747446106711007620192757848656531089307734767816424604777843675670383691754257523194891782466548592365984217282999829540848932669981101207584767933604509294811253300671538886929147287898306718415490549683603324522190216039863513615701027293138275716060187536744171972824104650310791256160168078884656060730373917129512572956967438845971660373120306526721219631745903835907650956367829295144624961671060976583238084618481711754809493818098570761302127499918523240747485496190932701740253933415159521560845051870102843717000827876904684247293679801321199309383255567038842075353207899928440023344139854908807950769018347138911664159992828915999526962346213203470667969929162857419513100253304276210571279376403900891309063536572775923290144547906918860971790847120190409817357243436912743517918453035504712052345180400988280011384250065320083288240437347238757092158785250078989259762429459680076006974150375706589790239789833672558181674135304288245480922790487117331737656820545592203915362572660260942307974014227915611669322414251815130857396274069435988234274123600707726295330221482501945186853750982876054225825083331859976020492566342761209399126593106650652803293867069159327081844885766528719042159944602249227846949701149715712940103158298593730329424148684398891813818428420127253688930063519075591160692085061410410214747824475505296027656480343483247751933282842176251245068597672676805473080999672240806784397248137269245339832467051052472235133058288223243624313438487532739134171180234915954294670099612526700212517312445816784262115643702640882987219330850293993486976029545494097072908445020468821533868691692430422367234111760041925774651910963163283801460973338151298938953511327504397533181623055776557705995011641318267889542566676578204253393308308086621565793873593896366452989197834030791973456770200101769010952692475926144037105392271417201557621275180451239377840605715421754396825760331194891420389712848146418490484192234416336111747110344514314707609922411132865456579518530970008129280659052502193809721581185360591395464554976415994033620651718206174811152029442568058299407545279087278384518358034532616688437809181754797887930978075078710665729004780292809514012020960647390991985103323774375806776441070741561127132880452162397209983028727278985643872983414313552198131724898772308993982475378291449770769699525323525128540992867030729384841236481364005512274415550859672055085633718377819009278814974969547750872603470347882472742952667656058206997185064251765363584591015923255916305457532696384995982060048164176230512387791253073154455546373435134855411119467646986551815697060150775567083663685130862741952570909142377279044783893270433361557606157360203049964325515996435443084737273939364356256390559702154156759281156404261929638099450734741471356983538117362608528972206484259228950794441454616309716037494412114632604865090447925483871243383760968293899661779051835440721523803633079856605427322450463317181607596235193459536277794325948186098472021188054535307561306660463671779162293364502262939682113901464574441210478051538273335564037836802951807338807331924176591300437142794504309133827420353001838247347905663765183537007223697489345401036610383163817086564839116183910258730122181639462384773497371205865693477291006007460812370096496820602314950102169729320388640477364801609026578569656143941575948661289995765699906679973439804019092431205475358865882307408146262480759127602929948107372725591722056669968353239149687530975558099056264577979018106340151704163451775968641024924124628265051177461946185627607873766001386037820693844846633823600233605318375883212726747839912077178118822153119205604977204897081734767260951706411113420206379702083760976591794753068326554761087507313874051004837688460585243869514894585244781487219738167687971004286480120294813783477145089356797068068979870606201090887495505372784011712009338752969986617752909460644758448662956301625950001606739576542389234692714552589517167251000836247191484003609503290537926526161245048676072561563128154051912379059053523695619232171542927747478374313714155123495318146590954927961671909716722849294901033635002866261887174958998589974207765945452597659804096821911654179979607626155718622656598748921143007058156336320741626307206953398577145469698893950987416834964179805819446721731559150099345810151387659066170701089937804508205348040544381689805955095047918997324855306969304416595830095077461039802050691280654559458324166315422517550538727743084395982033442244116420010073062983215190572511585972569760634106090185188664745329697329713854942823854378646636268603891498150665439905191694771235131042489132198634896853195751521694145089864968827228101128604779943923538394164579337218552390040554842244386789453406666380422400932731481517151230889586016030320165110844975475737230047641920014764996589630241675725933680903712808607450593965098945631828548319922321330061775941180156965131038030456444257996207248513752804752432326061254816493625770545758681434010610149749954093821735120092339567933653935088126634780203864903593668583788318468749024674135152097636568660781661427183910556694448136839020173455212863870664349241373249212079569458613722386911991162898533016236851258753520031983347996981279574854877183321809753562393178591521072202410034319792213205303690889825668881406999242686795496679417012707439217852111927070104745198975212569318028483773412252465507327769381247657035844489658374361727687300751359448797900151247738068302207937455106877410306156667022218323902412545913689327640763526827460464232464752609566563638904476361551805500972813467640646789105809716676007410274420941079112227527653843657730053004142452317839424877305347644639790250572970675141346286888947545859156758154805964307088018213606371732955375438770976787214063884799569066745796808286036955426839974996284328056032594912881491776284916043351451763883204689351718275840991245708853636749203693488905829926624076678741587103065960053816775276504834873906601689232907521015040453658358047113567836850256651341786595766545952763905305467449404344418924181682629900149801024658008413130553809335138037931903852906137071349667540841669338949452051501599823604329040006613337139855318313661097596969790325840743383253949848906698312818121120382278776074166067881942365691469090750568998063486164876189383870910867464517771473480682576566519448466789341135402154381884037538686191680177160609781278315489492444110898142437805229243344768522184698196854543971467541672109986664267629958676601410086516415088851476300317642666296388166273887781878342816689973840917129210280463278429898361674280129792015934174435288882606079691777059436626663543086201612641142577741666627616515573843282098940670955604516663478399699379234728279735996728614528513922843997986189336368745729907696685065609794802102286568706065472185490913848187281005487133557318091945107381224538690448077220782580357344763465498217370758707695851478757705996693180176891373732404163076992670573625591032161219176794926306082865750198013794792668519302728854410420562691902824755961409522644483100131819323517785845325498867778748697271015451060598054723013032897139528781571570819002548321273908730158259889464743902480717718938625383782792340075369412392362178646128607649679660061837499506737088865424878870908716693331456830044430303533719271644747762944746417069813233134319953754483149128961858922245479924513235023114817713887172596980073349586373287584572157933033172383113234572296093348664630871699176845669220425458703815230226727926040965377095610624753406194783661969091047897351150735380206122576198562341104499269176514134273246231201845931097438191748250848693753098847916807657247087938658025415604748681058266730311375899207536922146976555687466848196491169635040129724501347026889539735030513969175484851284112671327739138552590213303647938289706118626087035676359412611286695325014559145601972048030898658530167486046301468499823299028712583656602999725594080185141418689812103884890401222493619686991354340744790966059308248273064362965461903135562375566358905921395331547203818098899148835213685004947117400497148803892367461334504776450473283960759312723979543437644552294979860246788754598655682461517970845334821821154541208326976310063426387123279012720024137609352031843123238963920825453077781406284153199815087313101951280798381478221743365849276198232917911379673725190255808495497452465905705819851287829597121891044165184112779746974068144479471751308808266140599930769581019891609799781767251324342170948326332614382871450617577782004713064844665071816070525677090510890963886820414890276712648977500677383664245378128124196121465587930924745227069802237444294513689763226878462455147722075246161553256753385501871178931574874872105988964238074096339040725805706041018266489500963105342261421599457878082466420893084056598770000452720805505795258335674796712198062014395393324804028646071515056530990103405220810332007250931598606584195054770285198156781880203281131558552157321233925261769245863099547219015943576744614546848256908520904681112030684339603447765217275495623086283193958145655176426372749582200267097467702093649944723291066763393987427829798231234978011468240676146631547254717266757200250088753804506951471299602231827251533651439003032181784030375982451582124266346174867875337474142030833715717828533426833208273908328877263487735514345983626016767124931739092831266088891393014436600695893843037976096938544813626778618812164924917476687747783411168304103459470769018884726188059439497037506279455211304966794287278940348120117856171920912066809894235990475408883174752578166706901786762358242337800235716688376599357516939910831156288324479299351119578683077585410607960702935578114035673149651710621432632012848384833744876802794420257878460945337005852166429949909296766990522766591696537933042976045132214726685182000009762260740104484588627401879168384699395580383778005197144207863264445851254028480033851967352797991909053599003288528754226081203519745532216656046532116092423466983628934618465721428890350656212631120319018265500926256183116458446713644381387464384592857940846965090323810217587717397685536948035908392028867581286140548260278752209413029615222549611615646707887581643385188858110009418293774318755651666246899611464188076509797602406774420840730311245691330830200614380446599273038624614319670485746088979418189389635795575086202791514773714587778194047107137493769246612807097556905834780841383627861897061673143515731355882716886739815772163620882509639392519897487293595270245127793162344937813929698174337776792332404138363889452965429344223088929328668116761789003455505229571418861760468657935809663900933674597414912321240141605636494333744138094651563841454448229164650859448227114791932348630362626524616248848406317286217845100460088932181630915571863979938029213642701502926877500189177682920490821588166227923404487277857834331248539623320672815429634233235268831840100602791863221233738896797023660676839823338087492122520194782890059684013442259423530083643714769475573240433272866363613566578728805701034469079379252095374453008774383733998746245102709721320565687234870785311516442149428165401425792069397309130873321566628872641708793109614409805282168027722109418547678208646937849194564687045415564905312471723920014390067664591194427037037378323563317506736172942831199216043012396378324080586420969398735130815674101932297002762597259925565317517028748204732267055818147064954785454428925868819692802478801943319189367922810769450788890830658644955520769535695345912598935437852015750261857420200407043904841275731945315895676089294215480953476185622020624940051306986113645589373114947100902652678661876745384943253950729409245992122462636132848451804332939598899192925092377624726567383516123694823578697593382990846572543064752135613357219676274254027121365360917126465200148109687337884419999707529962426638120056599505415245298130895114228294974207496270358296104992141257320171094240994916970843140205171200869517177529714095017296426516905940999848618077648115551681720078826539877103816382446891666069608663390500968700399148917040924162080938985066846332533987243104754146884228703527903178874818421262958093078464895921679125841438062748510315268970719777716887553614235883626364309080677863705441567762520636507518545871789429164251652667593138406683916188344740143496460214457746145131458181974781671518941348597889029511401365028544618067874767975148316678161084323445323666780640611080257397446886945897662606457721294176515372483151275375271091357106717937644558645278519772221623822176393353176876961837967892024628239821983772406098800364972079708605623831734854084907132963564271769321735427264940055859931237061310808831752450682294985599618426045546288526015453976213413358413469991428173815813499635004550535820381282778301127610877295702872335262112846698634929569179487789517461497238517205347064957799802790632068442220343801793911995767624102544735080976218415781353415081686676365936614872365326668764838101174137077146788172955179486494229960277604289412693402367651632712423011794584108510210619836309228031285373726861981499039356307762945071434913202554356098023820755723125988008480654547994590851241491286030922570135128802332899986758729575247259650455321276658071008337894394846504662244780259369321051690669886179475156517974312660657370286651892900287047288063894056136095933222620587611302467916168083138685227718706519637707081419001799467481342649791462331124115418078008158931916435159573918980577862183458854004359153306743184813429076526006359032474631443955552392386465366876310843700398771505049989414940873416576812176373705518333807883384429283508341189821956245557584641453267478161094793609713322658753947520224888399082233486969874876892394878485903819804117536419959096300609571428710084174367302869178464502295961709174979509048018454985353514009136185544699548332335794879605028503168664448538346627243953367250796423531077962635454109510481070846260249078749784821598370645467223171943613093072077643093110750255535515014782554180654281975963186469026552579766639161161189001035202073259017089227944877476934265072323122977114630452361866069835008898798881687067549506717985909507388051862379107459716338563146364376004215711510029737680152472838979884936594323473751514939031805602330242841960356268286365428021882265663653769129187737265379577296962976606694986832982755224382978043463431354458878837511211124457705681183226737825039015565610303875977238380931573093832832840043732978158531239160996061249185663883624963646112784502790141260172188510042098900701690068259940336811516066585288540317126247748781968375762579700516697263031890000410424321247323967569180768955264292193735120057975931109749549567894501661953881019840758023494966492411308563331851590895431351495554108443921698275170915550397375569210247347282614765814031683272725282775016767809587666394069503936321209189743903789854249690283396969392637110341655005117741501164928819598709697065628866730665676939285346413753129931019134922436616409392291173871163298211463489760912117223614323061662344809798538795582812818136700230191983438553284118247907873861311732885756166185183594444405338036310782716530895092896948123799715583017629430337305909213888284681287952824655428629162303539037997382745782451891740659357261853000443321480874140206036726710925991121462456791464248888602353577359299720481552564266604505926089586089839920352594608383895821042287442355401816832069870168625058736326444956030333121879785164941305911926682641895010158850337807731104821101285451863715545538217155797668974138572625582268988821296594393974856199880085248347149452593043993993738232778316795356346371447373431452493236374073076761294421984962164924575509651334760133893601213051791133602923321765262815265204031853920003703788196009545659821293348707407902199066176844111340448298009447572917296545369179157503774673422742081380475379666372932327636674472253711071808159053559032257597020199574525119457454769284229401580840429542708008490773623842755836297680484794631147020935588571224605098110803822073720603776797801229024001863303105225261882002078651600761692537010319656655642404112391078596818480138608790970363281454018509367020171695479288084562133722761525859781479745968279955875928034625255764845905029576881212237888146607132626713907697020226517063998854073466167376597388798459007031149612290371572049590357558660035769091328570426351563384468528213789818063404186353825926782718430629890753307568605403329464999612999468899175429680302213207977865126080468539391277969701804682233917676321695980258665180667762657332703062561472630797601931546535547789226962015382079065551441126960936955617585817454917224232760627410595188314574073978431027751136779152863874020855354088355837501851060057857581080239561384066540949916695281967807980784785992524235950628655317618682226405969703482825740358383437422547629650372554138237422385836679804698206784172490048060180943858687513452240191043622109220970153555372519697312231977974631844545515661560501535205433844538398302532722635732566780996345548664669049985923649714918047271971943478400805739020289216225306280056702455795472562693459503337965189832897116182882133451940823085070198380243628002943768098152833161656482686867243107287513995421274679565446867614126984510566053382036886942126701671543568972234423262862361222642003042599706234724879822965900894367683729059023153913329237640108727549241494748861999342152685005701116503528715788936058294012886944454243984455352680106982502858968101389875534237832368569821750184506819903171850643043826384334169212743539353127709772188666650923588030690796195489021530490211791005694278797474916633301979205114099630790480340394678820989088073968477246913899745075340133717096730323087251032437599022394184187457080412957346005497144999288315929053863095277784565852012123487895059417597021959309123489942938486122778640578843704069178310621348787990993395326590339624807109625672532153434430680731472930233174840699272908317494864508069528393374580355883644426064735958064703215286253240781502192985352895256860052313733166885914528271929618313511354778516110320909669031803651557019629799980973268852375686521622298720203625803689286269388557860677470644410719256354956274514080777015574831280267692321491678778619185834927605204582391808932796525885379794691428798578356722411249852144632954554863225896472808305884153066480866318026415389029246499375359393337841342783130951871090897475227398876825496042267570061118439587737533942834201422430236053697755977100931274537596600521139030384234975193204774222545690732404257565970099295838074643902764588963782844395243051401730888518768211992553002301075620549131587791062755033410010792510636638138803509349372737244677615101385488175647517284310265363685665184589425327124164065232123363782409881489803404171158359368847315047868573645090112951110895532908466115664186899867381994374262255404267402986238895967770591757875257055247573882691104956712528809540421991041319810602532933192321487869720759186011985628443360241374559157166625343196461103251701363856942195792842126951580328765592580778197475893823034104408962205497930020719384222384113882978004803822442475824961472476337044530512034751461886536306669682940382108860769998778037919381656587796609788406823787578130747351201122194484851572903111808412021571166454675505373231639066204503288540775638772568370036896401833023079142813828875236812570742520933156986351295096885136973907816057350826422762778424640238585211583607149440746689875613808305218057532554991896755996019866021278696732226429187214164791310789104236660936932871881426503398883340912910038169515738467140777614115399801875031166588882724668215291262959696564747092797353722981257568311822449054068127361696714196665903633591178980390133769173096750171865637665909054508856544600583454132277804083076128911924255408505367934043664516022938790284207873222585027052483600963442754495477662533723429175460745945665334905369398936195037127348328093537962517854187660343429536694223411994496333095173851598578689652064722286877985964650930753658550404847625709477744962615616529645824963198356850415744090040988107731183907032547940265479903979329709546383636592098561482673598137438829724001319405531729333684511349535184139787725609447960275677955514323268691498409389548117961253863310475470081423937075930257667693934384706736971303425162942273872144503850404635838159785093313556462007790696362855863825274635413397660641584174293774386438112262292299985232312632844444970956168767525043301541872400707451075526237765919795921118155439231230919460064424321735875120295114984037318096056979653514146062259263617133744503093900037745434820352695204946212215574643027786878425608189752857016012236006516806505044096206612139074044007926206162782622315761368103789078198359485291188336531613047628216237576879265526116979091282099375920911951598205443078415409712260857939481310986687261783280069514919180323753591600469720784498077945000719883537866718181742816706616056774367253978616143695768907846339165378886202896435515056682761588886879169611437125702592974770844849390813676869202089815345821507777709283956620033391658118387019068643177306740423030533806410435338886241529681931320018356888379175659536661361897357714237211590833071202675555104898259580321945911470654378134473490705332098459797543990095525743655565315343925171786714954565277110642123724092658390888390833307153896461400484614319668862616318041945288197696423076209138800727796603999861723092689441184564496212403063973532438683505629093907786210288628873803916468621540793328441532396934031254264022949817211051995061178531343286406827974403362800201730725463305986857723213436807052002127359920530803094148943805787483497180988018752573658686054794613473949734497515203331002302470287700259345823771224128538764861722224209986440953584963084576411922381460691299768600647612553580416430670952310557401891905291209580685881411544776440389189297828763601326960075842137030359562692950366752152877944309323096674007271973877900707723372443903965763185129797137742949342306363699045857652671489563531525542559081766110320964109461434321192296564754283683599990649049028952736738476143436208297693666734622510664751768157950663632955790815946408427083151141163874160621919540140165906813745133259921837318510351928193757034046454560596422126023135425338575922528791798403319779311816489754342128780793286598881649482227674370352076174115292455838260502746493428217450471184566653596500552671288974219167961817539820635621800242078281777267116726619495931804198285592324485920295601054231324164228617491200061292898125356535845439079765071064003043150315762011253266096081249529584924719044599421371307770482019520850717736953038542798637755784549863675562764862049180191163723354323324908762514420823468383895637901764263830663503204932987103983217405091615700141999192993821864054258507396225855254986280921462701588424903609932857713337536504891319031277236423215958789676061884900585512037534909867840815924741052425356345823168551750238834763251231342325693137126554213192372972041400953821729831054757071442739317824690398406666865087323771551528842438644567799935139422923016082650207990417302168193011145548003837677287989914073891913433924903305581705445202977276534824139547851123375643142455764907726654264929799714139679549301919222363033716414564041790958451276580809104334129245329432316332631811235151885514489368427849590399233082795844580230627986699566738494730798954983459428491341580794571145094275069894751078311406284385785696864284160871006445033763762958538506392312063597431875098149646946847843076807418201467129848571520994812344735987506978545997882501095850992687484334145319404525591257229829098439145001807261865128478356794956173014025309044296853927698270378309228275112188592173875841164805093224947235593191790321258211122918791020915475448005369115576024576824881556868897282707938826815431774801111672398824881136808078459987379817148535033007341604740794300777991830125949873538895311126406450736915898671604986823399078894859485042592451949325671246505579351966269840318063634295512152681966251025896381776752360854410548740932182173960550635491361979130471455807952264841520873050991519255320827031929925475781574458832987434727874191347753500240461526025158695188062192357785023554927082369581212449211111215330528552948955918294557565074344154691073464965054426055119057195751566485451470719207766234344357047616581112681032194044206522771294715967294989316977266705246395826515932717401845526009819483785126104751999088788328008878078219894700703420133690198572373389656500908263432168541240109944143652992643278450930214049001129330254769268325032388727760286272375326029639625497227503754449097117969628439575059229282428208663923981153754643222988496135109740896231335612039959444858269269968864576885545568181623898401639184135234137925044015140929906722969554697122126760561078467399715422638208934049598669973175430021992000324209001513988506226745488158045846136091297247813210178636160911250027044901145762646707700426254871229174890713812665449901990677487960057246819990823709104015931666026040468989193222136804561658714744011050116371925801325184784344412704406974839446372597185524098491982845835660676211209959030187917261239739540896384356592435264980726553376330224316362546240134056570120304617895744867878272037019705237260939710854592075863137615536343389092682854925528651297568263052758169184361897924411391269448818226209897374473374846025657708213705325027460087651391390041947489322882698306840313028503971315792847982709144776528402234862234479300318511947516249214488957057085685393421877117106264840813916967568256591215791682209612315558003256670596732446081210522888711479879512422788576811262002750905642430016354891306363710124386374245392345514912580126697812470551738564067485658406581508627603246191396028958569578336783274741573380918540804216904757055124680254380717491719905009749156200323807992500664377825423516498635209151467824452884385727294075070629078812646749689556439976172340085738282394379689582376662943128262481231476566355655352534392656776712514779314716226446838737676029033145700552161951951154547679275696802350750762038325402098058348051816489476785148871346151472462218953108591639369029623428435680519982656085746525615041557240469741714026845631448324371579562856151184306161901055127613419921304605287315190270399153212260916747166179433093819272734616059198371695112823131703854369476371293631578597220920901584657881908339705306282015574700799967290081802303369884832750576939508222921234693987888429866124898934292929351269790008469580045577720863188268884483180235914792599877488735108503729740094903640162462667404305747495887004460203330122578185609511577227584711053175814968611087958422671973472051530492233258853061803944316398474389535186562874666979011139675084842495285611802319850220573614011456443736943804136466718176331363447286742006627855889114003541380077933673102299106386654872939773062208577885611529795735779126433990432158511890541282090637436958483024220208729324353460893293665547412323452537046897444425667121793904133906162898126734837994483184891241705863374943912314591702606210098073466001206928870373890777628589256881380648332264049375542404929438578589093424763961953268952209274367942621947265228250193318340428568293897063859602699831839201404223896836721123834677361527596527281473301366995306658288664084560942653468932569269971151591248747330942256967774966998670643371734655542208868141064823316089593560985777821767763536226619647534893274574390359493787852425328939128358116048141758203504389436211209830922064697631659685669714186003255771819938526933109579217956044763839129618702858688028036470247812542833148818639017120051650473768107940686960001794090317011189480174061324947808846210225233034569465600541916489043381514752019507751855056013514797427388447733944883079917339839856752341451747578742522541067128206392445806531466952184865824830838232023708006081998707742292745596703851625576234565708048971150238558443064925825611372890451965244737331432625905972914494538966534758838213726657177321204326717142456866716757200146318957305575259566429949884454438125319299925762024875649704797733858690731108202586601390154116763852568728957542826214291225397594567410243645494335771205495442402466294084129024718240001609275237558440514107923382833980098445686436074015974015498770955267040518726038101040108170615189258011690313307848420239780671219513276912513037879206464084887115750251594011041621394176103391323074666996652761419240532894123678540005176415746245124513176593493951595781475224415894618772238788265307713362752178420038034984490660376280190887569037845945417026518423597568842868182392177911075005362950524462836711871114415378355665086657348596173368090637374166889658859022545193499709389803381347925959197306258370389689622479144201160385761936552787338166975679549471470450006941762366060272670392407967410716266426044236156435141217494029712838756190170974391795172489467337304496292654400698481716769972835160680253866796801860094770160882675060107658334610869290610526459205097705565351991533234047948792557882708775200741103915210757371436869538766464610310887687620853042606119725485050997416464815141661206967154744118794861426922639700532737075569543929614036560605476836957790422260130694126741639607207650933151541705263573880606019925459785270867641982257037405303766307831992778073696149874213378748027490302165906916848761242533796687141986647568847158764739484145863774704947479869020701549931490473055015195951731708180033439356779870434449003658119731509085394264591555492835036685243045546503528802933903044546824849074207548784226737722116377096265380387303620281837702749249034945542929867016846188946985081583887329599793796449149849065858601870027757894303892030660422658548174772893671774075163396909650750173654162385053882279491352945084709900009560624067056810828159873146004143475622620611827936418906640184383563687048125607332141009828611473035256995647771387777287145976556441657508114835093994691494561422373088918032996758107803252667370782321382467143003688366094790149222859702819342718933125273149309053561253623820989799693564068239630956787193394371614870599395467101795649396083268367518421553667410771899616463722065244539539714725247980730207387303467195099248764029234035230809716281954850416866810229648399318762492648155447159721011093577330374369889050422236021872767815955232834779389341736122030673111491954559876973198690086950132308943131910500938119762932058742176890638405968643735708416945065845834157723252987988430424725444919640722763150773393464759778118047693130870506190810223840055493927895691761637840229652001984725355053660194068574648841507681574557240328996416236500907786408939880027565054099049539312924993844127864369999810678731451950942091421254959827004887269283178546120885275754292917347668051121388511428483490318787340947613468609524826299188704243696726637243840100796887165544203132516088605637646312060709348923013625359447823407671897284821057782082210257486974625820593434176551118162167378099288759724051494857095433806860084029405842576946541678567357487890310436077096874936865091995091127224165009019921482161682125584114553257801956247518213817631364917352562152536863405650487155109143389713682891210970861151591827492122678754200799770913377895177557649679926377482029927140518742657526021948630906961733664571712753537609829170721312959185383340544369832568428369944348156796491332228449941497993919828505122473659048578966651634990477367350728329527177199226760710776825177529619307414411685126872520188361623923661039620871109521016437492175639603998329259013499917454539604497155005333870616308377026010089597047701036681209793807672724623155466907505635201072258410395563558948197468309943792158358195252048489334370701143066862003840672046381291443226919516383897648251103374599202297973173680720742656051104977720340401648303602775542110297863662383879300170539398524295651618013400392441944765004016275291790435079172021939271409633028905741608196595725277600755962346003635333661437762923739321153246267550330491047183983818137293075683416494916352690213350605076398970432965178305133183321813906425238610944144236715047905169625050687255064075799704431077283997130779156577485489257227751987294951925443776811513652426190003890234296912247736900661082739269049239419261171083024504273076168573504680185888896624030555642384069661447506301463874499602929012177293057636686290313451669764027406587005524838448878147522553471408769110825544692926833293974351946387809754447306214070424200951017227112055853034807063771498842147852843428400923481225851294330895979389409255197172173663306410434825578924723253705315388954548211445347877425922389693521538115523044884829455600941121236240643567304407668289542767818149626476748031907393575349892160707479213429808663004320048615319531862371534920977051842290053364373580144032667375062471839562328696979035201149971482146357006085493274721980086953073011512890271500315821460960170277677948741631828742268901370048084795329258784568535260812058618072248956742756544377500573361384806506560612614315096222369025805592263790004085873224502803563535942229508356366806967334129127880789446712799287894658167199080342333776076770474731037784843383907096185754517124292331066023121678892880714091297521695354478023121300884853879620617375175111619417277654035800062121627810183486261032921023232104060828352226911336418746031552510039870030902849853403587479080726665567899062608482465648017927835300789679185389500427484003189094499355865190220197620966239653326044878280329847758388034649553491909503560975391295618536552692380584545722923298888496961623274096271550065739544266577825103174819931435885541787135999938013413998741585823237281685663427585324972741040950780349580328795015137203135427402292357484789673151864107265244758301085212220094712948688900482650796533060660876347104567629820388178393944140763215627462695824773758019954109236642869443338147155331690642346009391134526997029896069487824573642881952100307122438109872103281014816651378662881451272176052140634723739117132137444276370318565788293229800862412419658101800415278927520756971410176311644543999441608258862110238066541580272061024004339767932738329463551654304062123581506885638354151218240434972785714010239413110728619669208354503918251526381004069261314096216714155572012742506018080497463539125557778868002655257186674673133501221918490860378124389004839437792279950425913171728595817026641073674756901732034248938656379528038340407789243620273749731546543318910291592134720520229987089008202875388850776499863133399244519310089023227623061413987838757742226809518025721771942239055498692161450324291237321782696747740736690414001598266720149162285140268875856024338607254465113151486076572576514730966528013893094128378947272005849820570804983696603482388792018356914411798949146733134668409399402325946884675247480767456588334630551470409792882501002760513618365199662143031276800734674501785084159781287789422875139978662343500235841511922049114378473749487635192629110457181015225150230265786069107582003606307264939783880161202585879246530912478651484541332345901555559099255770280200127217303942636747049565996555023088472539644360080323651526445998337343128273002974912590900403021540285015701255539583620912684072389925120603466048522277115110763464901451922748166992419696586316034087145299927838006305080769209967633400530002660466308661271388317126027911127385499696523513022856230335438572499731214576832244130478732637254857518259715887760457239153789385333776531159095192867959485435600051160503650767135072356165933360978548658258157927122007916208444195343736626006401571082768972711825308890884748279746464732171078484315847744118813013874058510549897111377688309604412521122786776549315816327035307073712535300125911271342336387400964948159282181679258253655156721345981203214532437479722592093489112036575878136047960570897492446438863720196257285663483603590321254823770280214330282035067881738431014286326281928822816928250756594556678853204171031493175300419688128983389990510432941962921085575627969549080938006347820177555360630953272501273855510331096415680059474269769762962388213580852653824218858240264376274058214232277724201013708788524056473302998834617253765208890754470670180700144252991999644698790874432178132274023411462173531827888212347304471247798164692096345315126497276317058505868397385182526749232877814790319174276610031475873902917790109400260211488569335751877283934801043623199699874132224797772528575795088121332588358528512990596999333629108974593012040030659122523844046091096443966022885851107691374581634790520166920815714368803756090244515926228786804231723511098480763435907905796136194233216592550335239750801718376360797233237669731891940129889816130302694172157465247130836495865379763260072280778658181418572802548919162031169384984497430598191803060012665251687875515665068192593068746925770472113577950550540178917506378956354857047867485901848076870267187553865564339546796502963975355860214555260402686341574640802091408914922565344479618902962233832702047341201850440543271591407695358452546458116000972417730191313988394859306738504043460503079633003467647598035474983510375913723714274023051114885447705729136380961778571604833013558081969174457797649898476597241551220778081636790312599638356655176529617015225251182463009132016142105480957553418199152884500365172058099772569617924732864957226056335046885180315657666584135145780678962133265316112963326783131376290071034882026375687088248643355656059921141480727939011594526305224578312843557026378731951456471790008072506496940040313485472978191971968879299400773776438794768071235838729658837614243822025923561501804180007858140259441234640018811092277792653256970907671983944953496649526560770663632342537603139380263605738533315498298867962980336789004585259409749196149311096481527745907028691703390546400112882411178607577111012862810737184538284540769623292628033921151189226909027518062252502209712978591987818971424381372995161273938395056473663325136656461476543597520250565249500536007339496374142084980537800767412258680919521127819025001095308054737463108926195308159116392907420193720424865250017261740372635378128961919105511811442874468608419985799642724966452449502967715601247038075449718923427305739470746296004083972394268359247256902701441555915686144858540661308049033233273655604238265184804960166756512866549036631725719475625419044933766828156383139751647132235159553204749489649786084332645112746039348651890693407324120348414717387764272216500128709614275368278710492889415692559468259642567706497033400013903081192726527929275236983889621411272011327648022957248073344135332233494593220891483764171712776648492927209755503487663193810704540342750159894526063649705919354455825402766081009482638750189484297295233917220482617891739351380427584303667864390162597311853953219213655944571543402517546973699662658018305218078397783663490535612494130067469169866882824260891540222016848964217903586585537308121050623380943065235581635903596102061747920126552375484711691266327904502638464158653190761818399899538347743051810523825869204259131189202530300102685292273330872272256814701122986922558172292201786595867743902193408716936184916388368620976321863995825777990046054748252638825784760383236833426813754667926671031554569133966303013544670799506389350582867300695226793758892001334405135889956061955893604828028860575021177540831933473566984019170545615488337254414986758670788354920615573374522326788327349735640708763716503668058741887570487528641066040558450820012696114546083334028702046104882221645029404831391341796315464052072062801819946015516386509466595572141973120513054160214224535911911960733126573646667164696154338410903814427594402414381214333926516084297564945661362962579879229396350989785824936062824016429501328904832941357879044323807642878304179211078044576631929791013135704073141593505710016710135501102605537172186810084092503176097100456990683415765030490922488571304010307214176930831750783103257447851639229874477431925720186616506102405146061502357368341621291952061435031336916918075924994180265946112221566640271640067884166612647583236894954481488531604076920779330454332927032402125169273894485264910209898929290998286257762528457953481177576356637277503546472559291127553047427956413714623430292751890478300707876306290443038510514172481372882823882555233258042573231168854403066617827810693085506363851006340683658468090769777922669377849097303990230167448530892384451781416041131671236178297007327982448308948901446175395353896653110617804206894726931983042549439126122338316605856573684462659270202050509724442210795025600635018519972016282361233621239847788254610855046549179000857368727831485814836027070496552554745181715869607918825343442430616829371493934640063102673713372877615681749355261738996608114366310473434553393166813282018143663256482180895717175459500139053312308086580165892881949654818690492795266720066036945731959445212131544469172666842350123669499717099921327737976330697033861367808211467165165842283683167510147136902578091696357265262068786301893857890375039080706908999537958022305887359117398008317500780994140622753469744473908632208246025815780240520726254849387876425496946894442526467008201390498631253744521691910837348699499987445717555406333177770942045988233591300672377000670020359442884449895387052996621676687466008591772582888030410329310588676366774307816248734560500568073981185511955066084388323764739216938697215158353757995734051836754681779608297096114079904579455259090138848247634946950529967157435972279812472215913185493770367181174787960796540852674809408469545339639021531386138626158440293821604038437967990072888751583031670119888947978828820051442451511522518701952256032679529666605553012334768349985533363926574260034498236228176195481650719425683937685050307431221825200745235988158233261669296604486347409935264630488273322916067839658904092778363975088648731266504438211447900461855957113099099679783897679316693559656276675817398514655919887710305466755516247142852619247613791283848113758948871792011570866259830092777254328235133886890298202542984291903598919621599163858916359550938641335212924460101249622271111055945156181367998170273522854358485727169622480468163428257563042005688025615722059972991308607873293479147168364107533080650509225801216288281558952985488622469571595740049463038268433601741347830467716294649587690329882974048944456030851061048286162173651991105691027929235200143520646598769197620307628610440918847403092141814115487355204196207306817982006133164034947650553644823725919366902312108552013930461749347994285447299587479029169454920858400108147050754292919964497510550693607592858664066809161029965285519558582385037277831574992219063881033258020756545105837090530481939827167924080896486122967213721707571266686830612575618288179081866600022027412630930540876298462016089731185639684352687345235430150455177253232457601309656492782584538099968506025009566537501835082792619860680692998838692314985108030983268211491753555112483264648650366626687848134073354896067588571365435736417804496578600494833072139466953448068533736049060573144836273984421270519941733099429866771816268229825584064437435546690912197543443779926252296170264216049594292029633133878113166012499560716915328208924262175054149310415448501155050743829220255153130654212222632590122344179819738538307494290667492771609785498774133063404663964757181887520968796938490783828906469378080467618245598415514709108928392803779903168659375466183591179028902929283194804463933403363310011559843642365644247479799547793744909239296653921499183233189489904708230616729270880795683142231879253459199989472327570458611337802501587388802019925742279693923940857080104844529403733036811866399589102382855730709052016202205222383624696386504769622286314879127023659107061039664479416046386462266128434233006601417154919405466973620356111289384980866929426155546573229617666650021501531174288208620937276786717777845027028236444834842616943241846939322526189086225670141573704998155174910561191410474658207739719809188699682742366520650033186944063930213917471787069531592089896474844066440589365936554524408437115617050585459874423422338020689494216976224052025571430462761997906973799668198196863106338825470048195482058828260975824383067864551678604051531903177492947496973892198674187873990636322240185970404876126203968606762767826470843712386697650659117938608945905420816529339905752136922067201088365088435098870435142000469315088499010326573339570801450711873542927354852476477010327112830643150703891334748875948859379051698109204631341776135328316921571243175970812989720580447774344544934987886226354248335149462259088597172461721507365597590576838919993701592510710601763885700785088716338549006760043337855263493429104989718457471216058323245030035976393461793379768673915795724037035155990571445718122437201075456028481305060014221793160839277959365701266328796691889462653787234111000349169903273403190804166597780279966098923458383445447684897796349407851320807203722400054311760256098626984834555373970438880065635163382671216326892523322653127468633924084838028457340410253946658730906975282051686094371287019497360662381948115516016522333204335757031029704007868013566211212982109014104979952695051954610906055467024191864327984416175143348610674162287079823255796010601701228065155016193161889125523381707946686837285279271613983081074629255158652856462586544345133837898817238799377162935593261586874849183665289733060977903857443769626451144466532077238092866387830101354916988575661703946214654108826151035240531106395726824640302989459880880273383357400287584878876739918076826147986033736410619279890453804756116714385565813864819011010067758024982958117444199587402650922840437591767111540358781171596571358067788384713983762262463374850394977248870606324677557787438449113855124036405388028369584405058781416990188746228076332362065831693944971447880151613959475575259742046971682610806725033986344980037857031149355191662385905906657543873529278324036592452925570781993481586727152987586236087412005972901490204093716612675605210980201018046501934921283022074428100368448594155011116131119977935734299727318966155666957517158104632425419890229646818348678591898198314179268665274035881529759216992941217356957581714334680875587500651055373932357783874878748719281656037640096259564284327794271413816129271461838994655922695934426550951911470615867141978237296172318243238186939576890490107508413634410920672756302108512963661867395319641457474598688945610497290357715695218668991735283721611026531870148853219285800347973396972584177859739816545704498753244970282406674341566376720432615437588655609420380165279790687490700740285001745791541107552970055996097964351752348229173037177791116647569587167929033395859328656655120512058207143067841124046833535004798931287509432514874035836163371193617715466748740585096872731185776745621906163377836396973489889400989523687238541690029507462222215203236030855597268920861053769796663639260141129637597697820892574822251256260339150943518818252734705504906661139039855655022752901776087773757326723979243871809199724014586897602970309847454039268816766625734011821645017264477019155800132011633827231621497964324912917312829526207609458071548325655068967369930199591888346081954847857065549015881330699460807926576844823652118901096352876798548789135121942044437747208522359193939960695175266794924970697575975945903437468380785591181134798275026581631752278093440574331278212720087101797054319821350795303025422331175975372629977333279749620232128689921652547714501782707475113226403025803244000896049476893639872755564789460003865167016417247649369031603488165122028261992897661742751185812022407666828834461013694527415057959014957482888456785566692697316229456376460561263518874411730773578535373965965709237374445912191767545545222015411918701840687549836407425272859458008174326190070112626824311032274399550998218161301964267929370349778584926552561511567418773561912082573943822772037472793695396831680548009508331258558733942716320920557714701938642033504458030236839316247215811359073778998575118035101686533458879237853847407004713930850202007786504750026458418336557839561437602061223645827701154796464983549860203597218027712845391020852524338789883295045115521735420269860885698607524232474313194453675364590627793965942815528315904727961009591893151086305591538123951386032057173881428832766188125667737509135999348843920285414284708140532752713946223145216267630609457477001685362482837082114914789835814076217712520764536342510749222391568819565089237680912733739508620746331244362921493479773877628261244125238959363697457049918755916617292211651892939469755710711960756542471561031066717708001791128433880879450872463504971949306300715270552956199472378592830912927046446329001701463519974208634289069369185391349470692996740221225263997055839776568824492152141222443103201090451798208288818023081391457592210682162718195099747531396138207788722837702945546139276027867390604250337955240930098105368375696299668140102225629523857461463069817673918447903414049531318712384621605368624256397524076984622320571051461910393150572409546100907000221918354983353638588946168759815458348284145387657619362909620902885373866992450221804100704852829801534677956247355933068251924578700538432265359498909407220694109588705158171950008799249364535442398987492942470473106782195694745884772267970793295681166654102945542201939124173008624200321729303851890623142119596599858614759701996331021883715899350229274208709728708847788775740222189441419848466687027968522761530762632558095394364348852960446996789880323998683976445427548392780644324267098254262375856493903478599320364089969277103266191804473503598627220170063888479389928629185641791608111058879003991131814962401694111497221856899800164317878183066275024100510394669195031670594141683991321828547872081065976662531974323959004536461199996671802643955308406742667634206919297334807157939528740868182877329043409244863869882804898969612063257473343290667224830152658871651018981604727955038221108382539102519796016393938513700627216192937046939570180835720691741883948554622342297125670337670454100698245473359881188516136753176894233619276972169629807226492165089268418545212989879975274375468430074863607321304843921088433944428814569641180891287299417877577635256872472310208361593199206796227620446703958353338384055743196668896662554197535080387369524760088097541662150197407445455828398135878121134589264272983356251367354780968043317848742880132363041333745695461154507104167487459843788574501282491826153925929949214814993039256418338461089005761521668372517328291697770437941768314890318551106378438929195102492084361409141970896581241143153942154290900427445709093551362300385756592800865354922244019354431315178671720096920263381971247774620723299862176479204376717203922835056590122268815092017453301747301279567493495276013024968153262750757523902594944701034917543271197187528114683590624828184702044225667654649480887616617647445043157810728693436651016708841994511373722376560053877720176160085826963370102005269828731025871559694374418063640508434405860728236578053849368890747441033759330645606415402733668239129390816160085814954203262219594480499671221205111254189196004470989202834527708908298860771086150043617833422391873353865077868339447577038238869438408746036052736199756381158901799758082713549341588613874808615025122824697945445921709796697789614377780251546900017065658138653086165251714897379843023900026592449772437618057668360877654801859004553323319887718485117580880098343002097841562878405019390695109862437432650057876414618507267704244467518911155343973220250250555397317009703842178585906327036649134315742902221984637220965528897084754375749048044303535940408881588578499388606479787503734524292823466797256820861841874879105740388645885237568006928906148326590221141089920340834339940815857908008500780131141406862317527877393657976591785712871022473392519665137934970067125094569128533668319952018320882803923838015860345748439241472807229155670778024591169459268508077771107239553639257171101912259543012922374268461646753428132118713475160322299322364439766081596347864001687881135853857330081571493379337643503197334066236013669879062552365626062607026157810221188601878155358900256294427912411883042385510900203142454898207837428604250205681007274274696965935969869327097731685428559432839712606902659923511654108263507973797944232919726431200430213917820623593454233673201958923416978971971432872544531102655236847632984128735906248275426109435938530190971155265331643030983386137532686395407705684673093131365716875643016728404825294109424815050476853004662683698474635251656084363613774335240697298451006763827429233441411523141722102794406389872530963836199505333136374803415055554807180340271321545767093484953077318666802284890298727195137708704021993287851547836975455654797149187589937414586628131185788773553774484763222000307198624363138477389214320090522494834252742495191140939351353756895231741146239456217387414506500938852954144029544942228345897984270449538347713957447297943106614245177698260990730794714881774481950568864914609774017874824288242788361035876310383977864018135623597389006418122240221923517868901894377906228688578143918014570449391232147097314056150526929658479733523769426774696165092203836658975155322142077065012496943241896573090546378742874166065421966175374307329238075029018656757414877562427274973240627084467022417568240933267447411867865820855002978060994897815949082826374188226150755077694090591011171523560247783615517869042492289389792541765821898405881499648203644748016188219925819617407689517333252939138453715385604554884581348527142690925702297493052065793483930730140961937110764286772415896187834089406338958633005377226959268502784982755214943495575314078135818795326664546369985713720488918426056498834411904838306454798580215932282013534154383402391687992303103629225562897549962753930711638244404504318876752739500415287612301057976950236949695861168220571543762114711769179098195012265944448695075285524605919662442577365934518099889007009316040962368191600272469344193465487654472450494985574600004473079289594885918182292429290240080004626275689532976672463450207862168795028296800017242197265822412476839640309684152360976500445516226996200191537434102353641946639575264503425859485361367558517107686234788805077107990460804342672765241734798712301081136560013348174388863340659752984736101573357116203439001454493554258488981981582663606056546712711439183761567062673033287334394948928573965031527960737181472984206706627898427670182204856282802477929550821207814503054722187193367872301610323126080838086864927541430013824029069561953306589419306956999966870860855435976650209147448917943451058974802863397007708646911295818186951741966192162885161357515259657016953323033150312076179277807683902657200694838804832774745518651564703158165492926278332912422723172104635517229981083677243901822429817165157244057314054083907398093956010181145357079912693185454645080788833082495868098061313557736045786186833744841241232830733111901366605860995873123866777427552871124367902323416024256728627140632678786135298132038567620528956180215299760853560537562512211352527322556843390873438876300970386614906906373212943490518728538188139976439272679260650589432671930711930358604273338677228373302665612260174884132193544025878927378397832837786070329526786792827541067484141918001265733885137049395683761538876075446303733362605285860074384346225796777954937681070374266930765453698436018230244716750197022096945093676971553709097079261823304810483009810714874820989077659374544544534609698272152219002119960170921633257411178232796825218989255154325181414879594320656085429244154583817185196037538479879357461337732919844288065848974143291958648581096321488850065524662467934629394425272669510253653886013774282756450629444818561711746135785456983834249549644440539673495988341495504702717041586698326444712693345268004789750090614513255581055540465556763968659354816449352509661384223949920669890000145688864808774456539236611065698139563492136810839655731157653335840286196457277426911884215441474809612664048499212124188377188790778943507421870357554155062152670113616488076215721868167856584328883224029080330850416325932909754956656311360962591256999344842622538055922799215595493742531678293752656173273936466106934437393003092874673292015521665893523193290147775964421877453496061248977599645844924225425700088425999704473235152148147352831019497510545310974902257292335941097436063934815123498417412909931690495792176964656269261544510563685852666010427601146431228625633942171588887955765153621283232098253240249786557603465682675637306280910493051567965429464463242632641314764754139771467355722655365263779403042767628629212794925075610012815581811274153367921069635802842337998193775970529311975685046974506529683077336364195092030545922106816750223048138267088752011404760085409155239394367944660553224836653739427637815369928726855387456543164954657444856266888806119484301071931555233773165557850841298805741516013260473931069731523086039926415434358915329366004424983943587433963007134867036509056311766321341401818428884716254725002306162032491058933364618789167146803328615229351304485417004248963245440186924923579750464815678500391717208311280343236685861254715489859869877626322387293843511883741360280661713727727018471194093538247597815253260958543852308466111169568229537523867950351181366636516251881165891150558866155507928358943733162682636973527796345530850321740098065458242929241935980921918154606234352696333844801910871425678602275200890791860634794439236044526195202365142618760683955175386298569494295892284897150902092579806515772478958034255552278796321155287365655271275071109033231009670435493970212252267859218274622167264430319448084981017345567633060049125911428193496061120273498129853099043050767380133672239380365606678646162413882291933845551377737838930980772141230007850847133440210283860444315540324084175343371528903663313738314869488091236318875598636062431977143227815733681265484758364481401308983066735019528875105524646790775291271137415748384303516441487510113385740818931017431402021654839635346108737866503100433829139254628473893078985859271153410306178448451062637056419569711611639930510767527764257939515507884339297329928914970160025869688099764705002743387062962630419747891646337974776499591402542376937251398886781545096356285957656044238234669861697099155838544621042241244784101151927939870796594667289968281409099401159007036392004807579259872982716211911088946576319794340922532773374366761643449826635806189823663119891148767658012059777842328191895408072518686620403989361258819293301063309177743137970212498664857806705491689620118746400795877492826694072594317193784393339386368540826399939497055128451332125081479850353177877696120147815596071870869654160454332776050906510924975664573647830455953211145394110356165181674738884753763563028033848690051635197587563865054594928531478967118801683450000989754671426338733668343826392800204170181296550174258376865582601418206766960485504991593392093493045280230414897884597151044491068956147485129621704417369930991926750020766576439677625097218933562363682442767588394312372544704197198950151696331689728018479756990027864973990293135443806733653737163236424060474997514392485518701448041236289887080905032315059594597328870292564237669750761313064774845847229847541677748881516935759279841414191980410455496076711828078385854395365536804438583443415530250845091007499946801161009729032477223387681076700535389487356696295253482411935204886072948691796792918755222129846265851376918140218618020323789828598520223676051820645141017348753597163490225777508137409090774749782257222319640852233844436824139021572603537866337395672729759323263615818025242084613665654541618362196166620125836305807402018923623687134928248654698110880697752862038744484771769318101338704149211864980522666100903287380217303703309942469922534112870441623512368395846096028152015893522342526861252359443621870329995167445204679501357358598067301529464798711434389635816019567253913599080626179400108032435541131640996277851425886315108893067587454799757582065801855696495222487423558693476664118155211464601418652251879383666369634702954081700517352487542909127586198077613914425405634190366982456169873720368263976102249038849058812018586875478268692718143590208908015472524328278239258836505375768229740092878866059676059935507069691622070531387947799395618676030767468134429142931144579613037321057286980487929575296848095748981254015211334673441964684628042931864086181899685247848927945278352143263405656569790097051717049395382763347841763212867971615617837469032343444177648278354072357372153665036439408806626635398650211492675475093264718602639299117081592180498226072758580753565104013301463450164855888211081260536374814308307310363957388231080330261781860442953818490717997638498203776256921559308674020169627699722369140252346293434149861064378553500021405386887205621140305235347092832208280294446140308219772530320237287479742246893737721390327918090230771620647079823903567540394158348867131500668519316145364941213218832867944450491820165031285533568080528708029910093477111672114476734557607029112955245874342634212747598118994109487886546381520079493270524447677736206122078939830650283321309670464884720409771250051037454087993507447529767656386266313135613492265668361328998084243305809371381176012394957863510637642519409424378342882152203995154752700300105306462839864986474026984868057858158638271655480479562356871814581657475106915672543072395211371564768902075072507667906334183090059744585673223871190631892672530792578970349160721714115153073904997320715313728772540677370853361763856447473667259584423697645333943580087357934870998914625009128543763671172602535366086874385466797609510486237765598096094235787668404099791961375370235232622274629781800507071922553418686929382178224487382986398870854737152542287606522778688624053908589974330570090272445069765920793211951037432242487117830500060165873651070332938265737602337688623364029277373300784405503222965347615809632865527738493515881930008131243744022800295348418156735031004480750374716337321879673531240377168532037580423395003305392375832989710819670210376837070168099474723793768080844785331208069847558267758708591044111733995648267858831645089948434499783653158940230247773377532571644923814623906372320761734044161260655712082658530173554277739956611475936356857792712196359377576166026730744418704536558995688424168649073556499682099001642799380617720354537090841142673454479931442303374594580316720955585239672343420124742303863187635200388352215123622121249091581043030859869479892510700475179574000885402219400385595992948152841535442290560865344247355741207553209784524083023445568025160032626678014400397718365807781907645804585610069390871543416258694794416219573367761046163073682889437145179315027974062952166676115765333257044068225076197279526374553946806043519422110157612550942183585531938188061221295981912430943084316204937418254933252380953876757420537802065643184881533218240718257402792722362394124187498538645819995423900646468825065485258538639847236488982912448642155372393059562680209959103939250482837671824244259830611864704082120333836334155959804823691424387457108905122068473455666790830229130359070037294620726219778961061361316196937613731048909025633196423124030903972519710798357834829202677275617092774196709795372116855934828519367991376122859328227682927505084953934532795183241217390065218434340848252081331055348508260829366493125754828849646856771956955586251932958995300405373111400246769856716429503854337613798735544844745122895608936494572626249030945920692256307928149634759510186553667894453560588979855310801981854681975066478300473971813873310006954656077003587534529092670703511961438895448548196803939038518812495573787574078722101783611166517152746672386935650892763908947047572130633036256991918458875941604194059959667360355729024700908218204354761155651240641094036769951515914730703578718217390440656116768355118437062199360914315779190118676646015117937053184937506831118866680427903295979309594184995714517143916002170100250255192829187264669260684643647429112124447681738144763724724859282419090176339518898322025669581481290524569295217943648699391072891360044980535708299366963723689980143760156284419649348646744062875056939009379302746188116960739372532813892008345557131038129673944207475302688977855325634443389784471475779544465570827259206623190783704877804600173196731970494998166089617434447248141865244947811771020769866932650415218163951602619722420217311453811569943074160365007071070353027916167411335924659199570865386415149086156544576195376060907763539759373711901469178537764043030992972398923966351568356864722168847832141537157564840642313545288552906212579699338473911527857391083210078387833055603765317391166420883987587839084494299203818180839272038454360425491182559050014734060621720207789274565233612580276448401898818693368866054589793181985348651426607706027115519777619976608590447828402541622741513190630368157973872552040265551010396177132640242649360377251471800301441530972307444049453457075352654943365297652072780717517046507628497065839027719787747228775741886121735449886996936162242814373353921543495704476867566908576758765884005944047309440171775480600094377136012598592148487946489579964176281471070208844152188735093386597097150287345057585618273603970413847746197523591246904041180254562607834818048298237572480585868249865759557550627780395013413730795217352825011318723283849767741845689988815992280662862033450247144672097023855037499409198507926422717893634188608654351192314194619237232858326922575266771459105531459697941184344082002806397654039262618618064175432187037841893553166944783735631350036512986240655461256608763905551829225020503286836023655578863392187495438893587440443939616544392555208745487231360897900877983144143453864627343939854103075107901298035030288615070721484571108935322401044047214433739651931929113717188230724561280577489997107569334801927358742354180121067680498277311268753072785989365273492210112057695507770510790297542562456043675603386525795377373812383479469737487312789332209140927881173081656604838031745500181635612657428819295965192427006887013809778846177778578694959510645446586186972546363305677056161603229916885932972576238996138320622985517484000688341506666625726893356217416216626939021942083200157107474888341688626860348826093721451864731207910860683625667006177915428070414692452406532623730310580612352355834372746593296875655719924733122895438976377403278075395235474725042532953290454458459804242126932684238474055824550026221137059587477111746281252601735052897444426100628959294172154649245918693086342946402554343877119186777028088098215197683032706338057498434972586953655355232195633100018566443413321109922230780615867292798414958649882643452773034489780821783376251288995097960882222006188931909658174300503266364949055561262445720760791603362035339811309700760049519779685861434191632871135608790084165040622593239538710021544995855685889920727569083228412224455510492419618346086180424734272720174361262680270385740258262595475177829452248867609562102305168797895478778280242247718468052584718981073167992402145338607646849282988181990496623161501719647788732934670634550070859066170336741549271804749979270020456609214660623509453642608913785910763827679080898608494638622931229964239930303229723979101458628868362920218971320237410161076600048739146292895641257804052041480844737102109273440669511832786935615611419188616740851350708122247553162578539410682649598685069134786415235529588917482224713026009762023363637219242022938584625614844143945833159443907690743362289312021461199316809294244489683235795274857168145439558787923466823223557369075182887917969940982084898229603303701728277137004257981178072896108973576981408929447408776782045363405000169770611140494072657238476840839588313011782665869533561484622554286135029015548791183995154847960906797199997895938938977884205550912237354766334206003408890008515221705289648978958467716589935000492183382771731394761377873153485276086488026338365235839211763097731646977697446007289059595511655146343339134832461902509013988063415827829020050404195159554526741674626480595100754055008157381580410305037037593677766385407404496842469190817608712040464027459256335805179851340120187751251111416509866826816265873230611596078078439381937422179142192087480560935593530225460155926729297253564909911978879148982878868210080360814265215020286052734963387509847733131612031998571852805604097865705676372711460321004177897894696531474971461621323581240357371251705428350284979320315955511149414482267411895694531700913084067978838407430376883184123479207320097001908493249795592465783437916344741349993865910256262706687403384326372522312723851298740056161636488425998147549523817399410565148659347148112452707458884129895403959656670192866040767453052335195821202406085534252546362179541663039452135910093551847822941497763051954872042547890890665958661071749564061055125350785438784290088901313636536734904765392609686195693629361395530212547975632151814056175649836427880512425764207028253543194801270000596454399528278824645849172542633931441897925740399965052423122867190430635115300427573384846016172750412383646383860373859612604152059638966013581833874714685911271811113565831602633159683807701410454004488476042844301656559085316261975989324689801622670174814499891487948946178743744660514903374629180028635962995075076268542143956337351093711816532892421421898375825334822082921767782833751165121754249269153947417894090551142133285543903039338849927945776800600567111813680780370023452496421405823847155600173974422943892709980331855842339429639275605271724834266754841300332788672625645758321885950298995275847440265898718154223857964628079473107757782283965835130149502816158408187539448183932136506246304072644503912804623964814261437337332204008635555602121447869279127416259334552852745018162760648760336536920523740218513228070977680206682613448293227810134055819524567885660681062751726757187088818586667856032963980272960626873690628438761349542277623503014776607156233409357124145752681414234373892750529442889976411762764738440288367355741654782836111314795733621537573595087100032862272777354578033759095341576772477526736780790917754591991357779615326001511101458094244475080599753228489898591532242472646137263063013532490386223689974869070281975550175409790981116788552531243611179680444373808955377364497209340715562818271276105122227721997478374539470442775229910569348493926670185067552432117753194186195798753734408898912617508421120722802456361614761864505285193391066287881247778873538885934847904818981969903196121537334794405896054931412003370274806934949754414263426854769515729137869483296398018390135080468945302932433204318885138586337795758916388534794299758845389269647824564281125855363746878517406978731472827675632225810528377312397945103047238695576086643740871340009716191734354231606793825744073522903092848698895796846411497519199543535404882843803513007091106399077305079549873481352707640479401202775950611674383886592049373411928027384627722671369722138924524910971023015106288677411388706041261369655755151376456073663055641742948691197195856956373590327077745028667154642498441984924371450350532887788559713410365825048499561269242704293101361224685929166914732638301387184184561678774965797196939707618690792304758553305986580019383326138123341637998718001615115439290477658964590311612707799716956542930404398613589572153532822022820810778810221110858659376680186933986589533197752799325330110013884406830618247108822124759288236492752266148428370214824440638418185912709741006822857799894365970120601951257983728364800702359552956907818050963700688684706593878561951262288106841700070924199868661936985803146819884155345001895386317692352479513764069434203064911123800910499909319734180582107084703482482601925055916157741529872261136654567443750763005475162920497252592413802678797405701878753859409438985699193020955865076122718336504397502001567016772593554013175663472832591029943920734760262147241128145516543708709335554097358171416567696864192610688373440285682030480256992532786877041072403325128052193205681672861463588978131888439239310779803808243226975887895285154323617368111024082808633449765505234718547580176446964251709397698873229608208009322528132931237623366529721322655973970777844882695505320680876602000773543159256961182678682171043231871710179910005094950020006899990961561791619898128456207164318070266285800460361588449112552412552609054225805578373283623591333179605093329147087624991127905906580677596533229813462795700731066760153744303758599427507000579564980286893872237449163025695573957559293776554811452528769102011991437743654576772487188186673555814515763377234278852090797797892923014231969246829955179181009918353981229495718499429069293592275942401091268777529391198584916201587754674187788619803287983517618257127168006253924641867596908659336491114751892780498778413259967325837071427396017594389372908691860458396062750196094887540388158401698598878691969640260705915698062485295763756653030375663935509884151448591407327207870234369433204875034304633273706310628579163741826261412332444025877475208108761154138986627662315002300098462236011469977039503396336441659381596706539127349189404729751274331453307802391999358379692487674650052318072930850027706761559719626700980311441204188590060404589536538037339176138680986561010820428503055660279377814838082109844743291396135764938440829485742790330738580445496063482728760766649733560009129544181346648099074234288453481538290808641481385787823029532976377578052941944321949865758863745260555920429415080240715630138266862069860393102532755187928224395693778181015770862268059063233455120029669048556105868397686389155995474067242186837972721053048439892720503268508760535999870097140937238311212336067430057849774535241813962511780057662666998393558915719834978696335453373751630277832269912381268053314611535957795148657703561637113931193808545628154629813261918903064943431137499932967401218019298569877667799171314005863534763125197854146584472000094125359520164323538982365156370800037963879891583313503151771484465092890996458982076900776165707440790100949178120971410363583049933766884622258682406217772711597088206287461974853651765464128709306032805966044373674034080324069575207421377051244309650027376357633764102626131187059629348658566436387819280201319927553247184523614027199888540660664365794128918389588630838319048295399167163434479568373748059556207479491787186281529272195980661415961392433819432112558548348439219468039059932254064153217343744886164259461312709871009726679454400783219074182462606174823557099349366807475091252571652557774220812440419517262342115414941080072376155415118389611306692416571290566476793155458739909038521889882215554024046651952783311694755466470416067628532953687342512951781199133061331789271848159173912344316707788389808886597924326290387335931187354377712547142066314266483342512826074889914855986981554037060415807859863134625809937629941940338593691388358187272554361193975130426916853836993910098727614609972308040632701169038886903261468033674608630127235563917687008940289095597551023869938807246984985587834878100359291390435488145759141590236434587684979352168176787112039679451212178717529117010504216413789883282682413026224188965834269109513381974558598832090007967827505559514358227436520790250699284926640227606317887236175401377625228305117013730216185027177124322360575702680053166059386688099837038168696712149353672866452273330540080384688039012180735117118361968372468702232991717520125924773640878227337339920292460903494335069192412272572406661236493053150060196219808588177852362732580340185872284225220676286007875380682518416002649003983973531225546240839576283164399128337349254199456020264961935904525623785124162145106115147242154564810521470353652727312018381605861176187310554097764073244475842182919988003606364093403219478744465778597687307753800720172354724410348797195539979842665303788740665554182257329131626099506601898094278571938116314741048449238615576451136311758575462215024376596151012919051215843811591202175895191135897768557392951266558942481429049128488644586990184371206011106874017016977714131472677514411482667034861761721554971991942530614031041027896897901415625577899317934561125817647476334322400667926347357316293631243740955682130507793919450746846812653780743682058528775314895138134234086785955348610724865115048623991186986984020462289826438020484720807166492468490130667099296391195484941288281602048158166713513467391785212681167896159622926401887526859774928713986248903683359452658639881772908887692869584596938059157598350168161134316872599470529059461823810108533784030420000898427809744572336247010009332468313065753077148334852537200013073964951621575613753079189049111055460111290074867651559097390959647088599698678644616959206328382780562985462214996784901621393732192273092278146947722122985396073258583702976899938226343127432328796757976680813067569504080417970652102624631317955585793256527799028388276674594384224753233439970243535395220416095212940360742524512669154472477803276905752645244635992855602840465955506230083024003048184819603579751255687001774589262603900045814226477468097177269714009143236932451840532197566055981770637474199005782568300548866658748682890675299275833853250807258679581170000001746820993181900611773218026366424232531897953176459743873754531255523654780045191296275944233792385290492695383593630587046230953578211697703926575410108944769245412543116345708910443698008592305926746787258873564359888287534019592759416375526891761881735152319199652930297002359905660068005028386543447752490320590478635831597326455394059754671681977562707460370167918208577551385646112362406477693692517566250443980423067510203568762342541221427215781974584692221735886639864138159229341822286547305762347858605282452435842607773399516516106314712911041944747764359716121200632175489476008885507357997282331853967881610242173475129601770392683884806670550214967367938190910191050205910730604600646559367110834268804996256112420814102709733841815758661078088524555097251032220313903418763999004670316345337619012325172374928762913754638645377024272536939465076922838975009582550745641751043145666214070425803490814892664708286667481444303966083537751568051609121325685731102146190241853927201348784374385606846481466264073792610146378126571068501533286816061484296396124609000029041812618285023846504931616606586525761931508278476527661395064130871934377852370439962709987204980219617337697459393837297139846832491443664932768907282724549697332140885666643348595408073739135468145115271682413178616209984473392174456388577040818336497785903714005791148457187358305420706664524983419835153790535021283102409186761523792399751691285269560948259846078903605010757067723004107352595072886116132556018125874159812506202834986180227966961237242576301233640719906721008195550184135684316850372552583277083310383177460064339915421116286362834742342250860111111623194366272129424459105618665945565517001474399426014190256274970392072127832815111579915505389215417908199977961472996753795008836964013782707416365939498174023845587384287640570879585809113859127947837419390024705830620943864842265151111325746857794380619404695029955859915948096534364941149188581438535582538416020821883966311303830975175519611241898023509024330893475047832367526786289980867242610164589300669650208817452675012374622600577289022912651443475393243257195095965817705420307318875429136645476948361489973331214387439892843229437599106809237161130498493870664644500664154987217788280249069585210523431923198568326153949192989055271380395059595665485149735601201540755653780471729058254035749492990406448732047394929977608478088244244102821832744482284312272983415513963899750040402863702316167721114230070526213264953208745952383933545216637793152912570641167350976784207578220677347979773041965784958307142642773743671525170934686276689626978136853549828288179379864270836307510644798919008842172847285074152947387931103663260909883041198530869383492881107394666128921888429016035529147133384730940989025136054371596812878928651247993519592664623535870959197960689437010632188103568206564304890834955615228616884760137428912958319469191494020723955115366083626110586730466251233613290254464568805664531462048268514831551300406037334163691023311848733198459591064325701044191100182241833924144009470201743873505006120898931970759483468269720836133717150008816697557029621024993586810286640991131689050406769381859700660340137287666326606324483368166246754092931772689135542567407882405804564865412563508803922050087073754344083858073288482527780648210987797866205007275748978640399273628540415076259560252030641053970529615920341290042598344038410619832714258411454635554004123662116215624583566669777682956592990103823914369797741433812660390217218998941915079518691265171497705591076643626578729318755151998581198887427766739545946823407435011260248616587957038227013000573471431548797252811280862422850953628377148309095752566237050514316372854113251410926545148618731427735273821648760685398245801087350998034727969355419029830263340522247197305398131916233801471102351759615969876425753316712219473693488274738845266456849195236167590621598605072674316640580001635587452358965974838700936204834016821264827578335326542725034152012502935740097686073405527933184403338824866751623920388832409660360017300836762078877625279145021601599306107218529677851263737491150684302278246092313813230237091385546854269854001436622774754683616809033378293105343810168268788113641886195988981229062739993611698018280560058334982760368978870633034669831851176271734654634850454246108099165177038347014113698034409535584711056420241045665846541967890511845057860314537727871845369211208383687800554758389643795630026841195677768070941837416289240457348736970956747632981713945977175265558511311511809491788761326799981921702141751128081612153302566424906176454148516779617269837481627342173076469876823799703730382611854729153598962608868958669821493784341995488601084598727744193513689638133954858992971928273444548704449717639854595997178491162341246772090104589519668837656733749465123579487313581892013598524065672843236575045155092918905908910313841747132452948959395269941971590153715115185212396757237422262304957819023374851886668720662760222633221171219501827583673558301467836193955016074847413770224369380667357814929050285014863574783580430322219941638649967156940270243445330642398203279100651730442220742103483365738650245079512788341756879637224282310575165219726449790979811223423456434511834153830214384542531360035852877670951019336703612509101231914912514448920985325565843527129405923884639630325089431786136707710989688819908081746679485627699956428899029015821319541863826577406493460654458794586746849017214500546956840945580095900833583520932226474843231968786346422673500802951260505257296382940701563861968379224760885013069361161915664249993471498654462763913582208773863565176500709120398666048714539916258414908005833834393858864258706846429768155147364075691446957467484137208378380098302661911321896359029989211328829981315283478990779362862555903105076070955846336786511733913477626412236828931120095289219052781912973355924679753923817405632368760387949029890006069922116077237555623242704917506834852221316926969978992883274267935374195162626235079446795963100799150240839480847432640954144853234377426645814222188834658125716054060110959357005039278553388279407904707875662347979421119173940971892164207369605741396553629118085258142245076086310516491008051402638551593241008285168020286894003640517869823090489926758915352725412745908527904639250996038948427997550977699406457545329137867222584649222493291147026411605067597581364513103823405207965032749833343200944016741680942733600723034100818812504120305952242003007598272736810221891889410959693277906104953568705825820069679000825804575313044919892402249084166805305845038682321874525122176658002509726970076508681640867648171793230790633509087658406823596421257041141512236740123812113469253484472495687242762243322275195556917560335630436064229938296271087079314781034533882391446556394797208932256666886598308237416215290103002893326050990282133989458006353282333993392794422799639464653958481406183649860684622849974693358887342785804755598674392926419084741415388674555376336684254429978237424663918474989390871255022467877762175962816687610408752771371177764482668872227390465537039802216586888484094193302542381957381191754491620116643318067134800823611722901916476940119212710103478305337743530149262896559269869460147682818284808466835710880356698913607352577727212443776130040754098249599401139867453813679177220207360218052943333352048994289316275763102331147242926710914958377043827952345338304953677273227131037247134328832834337344904317975687197490839655538233183396232131095937009169792411748422881538233859094152359401083534612471222528852530754146197241910142246664642934735243516635394560566124844161391887721498878676539617280581727847736515867600327931859444323427521954095833304344387771682060519556550113740954246965473629601427884315937698047181989832682835966432253047478490733281553863016098286669853991128603271287665584669542760836752354598175326707905523689564100058403382057746587673815368585533510919063233391241974109416894101361197871374136793413214281566454558816265251974637677936348000752105279539815949541587724474125317723268338904302908498348999755411231529816655616320363845158088142159410271478344615485409664940552508557494194821344181525886120857865202319159213843704953226507660204589191791458789110350045367855099724660086799779443556853261829427593145102208938151412320945057818240902844201631973132357196784200500207866718722905740094810699124495820196350444019008630830239310611394647800355158727295794449420735910233112226524354344313627679710585148448575827893815330708665929761510231081650665706752802087673789799142077302802659868892477127586313713447524370022233300152348853597848678790649960275059276183197231650608613268130068603383088050243679757002101586694381622751389871348295712614975855220286403492845967660468569801638033220220989186348167484899292466166047838220142332268895181590878584207341062146113206486578495767339439970941148673795779468891282657495989378460149285118301139605491538296059539358868695792676652698752282708353393332965659447202543168272003133532178765832976579433514202652135046616233997505420152599109934859876326226776597459875119672968073097633254778286877788850553722527712948221544972643972960370055289195719140228867753909696711368144919615026004077166262953966052234999671895871253731944703156403836076815611746432698844239534070408644200964120322250575426622440627992566912687896189451495924235912303026655033459701255287804170169816186815697018781906995973083453029472106662732334695432001550820387086269103471833155081612523208880636619354570006982019028188450837285370936838752634313675027917360127231168875297537016514106417302254652023170119403704693152574408136693664589624584240355491123432329366148193606493120738973792420594010405733530156180860376071210634889199450123471956992715234605773324872030310295647930184514070547678693766616452862750705412820493234035119380066241732959654757119817127480366470978845644223376351009982500779864177628608343398063353081066181418399701566555515817877540730983235470636451945309415982980337710263536732100598361349154387102728225126874046938499593728994497346700388934213053890425947301270488524622204336292316835578392709731229005691869627553697507575041229608565884254872892957713423361209471557849197828687599009324494969736423420890530890901407184621003043294557573932639411551644158230682523730789560341540053363869795239529276140887863770088904429274738354493776170046596615802690194624311816483543884295396775179551948846670437335826493169925103145851680239255826952955000945374659342385645047944559388378634642506270111840648071092624684250625039238650604277625647382261747970618905959664192714768806051330806157577873196714683397338483570724260676975580677270502146150781558558690700426344410069300437418617397885950930346733602364241349545720859024567086484364747342890666423414115409007317790797375402737815689589101362550098866514098483013613461567177629100238470905569319025196701855516652801544573921758167132375166823045929844201182354392736714330692908654516134421391254114187637940104494240424292860427071632844275167069661318590495212593491615911664815692319676676307182015376701887285701355717113484503292731207990734977589084591670865620229331527616874147970672359710888017630618888559388430832721070525419276151520850902845728112562705745078914653060491077820278749396831813764794837270333555611461749450895298325956590352143546835059525388863060357244384049375562515872311310944903183526550603890592147970043180726890174313469525120636035268823852060548363438703781479826487256453383025010897662962334181342843376897972264704586062979716794110745957011865423477260106240760075469040160719349934095447713244768188850800584997401507142030060857177705873057368180732107775657035581146309660825183399706238286246615128463437158997504914422375895872567410810160051714921976921205642043938744116817327629743977077887545293223109353270903513124758392512088706149324281747160490686966958000973992051745585036233409929294420659558103289325217324030569761359635309371963207923785534268395230810972584099535242213059557150036762565119982069370660600589723129128772951598499610819739005446771992908945197869748122573192951942234771742396893425958007311358579577166365635246268598339746776936220915345866408823136566209135250275723685526459305977083823377169964062566305580052830128178655491063431867489918548499363030052937057358904444024949903802739870588243494180884389736688084539717337455461436436710253709196730124464183045362760160426379941957516607159403228042461109265875251365092910065312548736284547378377039140614306320899191933809664932470343982207312330590780100449723927333247420423043302148590003204532221321104655011487696501419317380210250423222366036967433685029519496629122803004245220816084932695165366316143269385495867594979042247637708394435946479478791984387362407091699319248995788676643857538769382393862512324775020376221542361715863511626580979226506490958917584609335646206541312136464235725675724455997459841561799907533713348663386114669945492474405449062417787741538603266060807359005913428652962367807693406285925060047504451625395546957531993094404427940160301705947855429003501803940680694873857646563071456467302291266300781618719756372290970349233924092426355136803044780569089614531952642278181601704163515493159303372627789989714114116667306269571736930673861978025471029334584986712617376075743102224210317582925549310459874786691787725840874974949282231697791103771112534709169662110554293767425902805676712567869303695053272943390436105985322224237350169139227827221054116936781442411224664291337235012176243225689965856557287334049617667234222974015930640457294425194684909734767629481607960550513516328834451117585778988306938686166197734022300481274412317429077851833712617441364219434717024901819430444388479967721027791398254796958101873953551725552171215338499780967348275518649980844489237602928047469571496214838948300552987660858257923792403984268426889149663678518681251277917070192304760531821030950923058483565516606729294334754802785308504152557120073580076295330911610642433357725144673347914242248024102883849524593461094270542271207908395263711914375834728079807878514383735933096659727934520745286485412728565016131324308306190518585708026384158523252610418800394555500736479136621868719575908124596280360660220591065266824691309832702056548202955963300569434007305873267050558043634861136345707580740730951075447919045494501108932996989365793056714881971732734304548487695325035188748038303193520841632233328566468721866810881095923296066609234219386371490660378927957716885401404053077014528687370850379267097601212089436495601183007490051843930954096411234120632702038441342259180405687761649015505635236818533105417346159063218644895445090847442197786556037702010615897666726262204803453378039046889993377558114785529441086799071421504138427989701935366547913714947202800749409607270721144119567988606129645879971018811850017781518307790884904848761798867099760956306248537895246356424802461769631870908895535283256712955450429368323013630471422697465943258885203756489740321986045888587387274598280993342958317403857098717728875790597878383928286850960307022024316192763285495711286370474838783917931197291104372171797143497183023841923428596771711382564474466558927224211014423051147217919083540413697476417384657653144689652279996101428166271580280237786202539831685108575599705243805697423706670634384491013788200997698495113659012382211399477857416504590307573882973175888125884546319765791090419846681056155464379393042432318218773647275203268750634703144157272059309834940556484488791305933311132937763809552960900074304516388055932834398661678554711275363367924945428813355176205966800655826468039358455585788894785504358654066909877178465031978794515945027909043070368917401624831776299732285544381504227338988647862591305129278707588699919162623457889119015825729713051814635003237419369928978395922907682631197702966690679094173451707286113149948228283440798489461796449679901237119191609601911872308213844416833635643625121315536654921510288794122334092970619508253936342983054211237695711815273263369387489818433204384354609353790811864999203441639491684411517893086588406329047616642544269087514977854547322373959526919721107351717220181127568907812486972298145766910379925676106493114705918604599806347524080690931381204229669182557253821269437266301052812787984326900628027492410724113433814704762607887033927854947124860037447927116173175216659271422529357567893064195174631430339641809622496329304413493658829002971898092947487257204601669367494140681473806811450263535222145159135761263232744104313550376793764249308591367798684869418763996130653331309223588111092656222801473416192512297971904815808913214529103204945455521272688724187091816707215813333654225837752196288870212051741365442189434418428303023536561420142519324279786303683941684609158046360139053156492865682578003934827704092438756577513294674275432576446612704253387046844669917352787428293964618855334434853090010603634162907226694358638905115266170759705768181410526507698512179940836087210807521380454190408635161128413253371441546875789268321198168536725262908321186917865141499500650993506889260987017841977424061387099837216461756258070207638787034026855042598891657470046713384948388860852925322686713926641372825705223508237099222607452532612327679670748434899495576866208404114348772773402625882995906237833974424040712183820764665432745948650127940360566762596764677729374088913829538648173474878379755301906983836585532855374793639370986039115843989651954569755272184114740745711972345507479739605562608954584068660681511902163593420001182795094103461595468155532604679176539169220332978796264968559302251415219009919343156691120717868430551888637725735087351210650687161994397716183939599727233135540894894723030150975766048253363864330972110115055142764357522908818483062081242683524056692639760301229791619527287058172573289769599309536659721284491691387533680382658027275819560190769025556032061484524343345769147511299827241588361872930500526093449717411240380409231333024648368306669131812810226060133751887596502711967780364011165360508332459513884095772178727688803789852824488250078142174397212171514635809465877890773043071241085483359139407133660127493015718043302389123335714480562608239725846893032221875297030670555157069786107293219958288450855030291483947011949451798322323062312780168795224014079938685024447902980241428692194197725081905513617185787207027538226557629680871065360303008859101103958947063792151111925728211091348805588877541265050785482419808412156021832903307800997001902836285691453367856958809410126699548817614557570020633843250830728522565020714003870776564618424182236469694720658080258339911129309397230043377072435393580511048491577275813979207203175475030581408857356117041860550875809226755864340684345389140003995367562744607550713376122003729527549772878325527533496884160159758271078646284870013359002897491891642423675335060889372677672863348261773278304105529883883638337124637842325801411413303493282231193755227851103056597223588207440051752734157335154430405941752766024022994863122888769531993739406019061569344529084619679719769257967465566511146206698145475388782511884368354942315732209730812431930509945387093440019584915612024304345982348751128624171385702877133173372838194593034216936421578703056566717789139990084283852836472587146314901399718304547887377797343410451131414118176182302304805496945358353528169721036833871468503572433927902186533961811110660448590554134441627160837403123535601317548466360753077816163861331262424178798929694089515904120737546525472629728935583378166872121364408491209170746271925717264355431680347939089061563334593660601643714547443966827485578354379101494919317540593898659629876120839609093488375036663231885725073099736109481504369016339815617572524907208625411669269249779249263509742758659771595900771701564707692780361234689317219005609919370727122431176269127538220328639286385215538527317081382357991364909195083329408581381586409770888029380691207532873018005432345182246446062055545704928273181295916262839456404551450545851820725969383038841534399081091405606056469603631779729739607764179378055877299412033348914831349563268339370376201361385629645450916608770191411310396892355371594117285721753608898075295491417196014927161417775816652939538586291315991947304094544559331305423560263188956931904174871913782693455382985035701609453049065140302495630716295367512088708276622447686585455949207574674246058716909747720820755651688956700845507763129008106493377569998751708834264008959624150085660842651448690872462259681912441746522302551706384846948598683303905818674966703038572144182376109194440631112934635955317509085670355492311880812359539668781468912719310868686834739758562586957134490402445420369449864689476602549582343376783222774853960618574843659116079872010849064496112443090639150987433631455516294987254133683962132907061251260527739868075860425425368588006703178566688484082132993161089903291190473407620240779852837322486140107238348003238794643202852283887959069546762751817852833015489820979010908946046390422550559455150468262048524680829158324748094117472141039112374615868503518975707537534151713545752911697157233628949672501354061216360753355544520697644576297099013457036609272156386212467752327582510466133596239396147820044439557381537823208192824441554085358990869887776826867543105129539840852856200703655960686142122219961559683097696710012292109022012429913561637970709589428526484279759755042173152937094991163528612310498622025270830428382810042032461859966132753038417384621961739678665907553690490980489219769757067959438833359901862806384986701446646828050230709711263370291004461613354820069935356107131299325064992480634472702265158199034728662262028026857193200918258166905578069670014093860950086235747920270878174950112003991860755616004448195669042115475282910813019459358207323832251556790058539791396304425261813875677268998143335687423697300206588059898905660165840935828454566879384648863838044920783501621360912329658152872237447311658832769237619857830366158397644546764626167643544378593852337962517687814213757373225686238240319132936007810111276564869054294893482656145584345949465315354177335358898834818155050795906529674899292223400675390913171716675985066675733378118493895328847618584561283450438388799465580977949058227820839875848932998142795712978171346047872121358520814118407579168767309538869034662392542998661519760788713966213339371563780583826362325665560224582492877501378663340755136081684117843304367571198622495875067763992411410914466798904823983306684405639920173388695906217637787184902536042358458458794240092611021905779063913795403840092493140109458225217809957449244799399252193417966082320668410053398255254081450586456151925475033171040335410025797104010776714851993303834455729548872544277476784922112150462988862916356696315856429998839361061367196288987397378359227880325892778913962826025097190162872752838528612826159427181786566934940793911437348400866207951930992016014719569169319140939504464517760279726653905947659970950630165673980367909916227918358183528902795659689427433484995684821603690600213832421267812488245284760062012038074023369592877769855283043391853164988698494176809016661183016167077124995486645985575400564162051114464747177053088746926138584147645478060888330644645800244288142100171958286954545422606928810870714617521303341577244815397201026175936781638933657699158815564720936782969299603612232798312843224297621701215417445228960463967068314274859615857201428575494012914424583940103827345246304915523868113248985711361382806423127185020933457723638108080912978800815211822270845189992162879442563318803921616101811115940686414833886578300494574941079099591817867409893294289259564184848763039147603841075211081937155385177375733429360500263878563084803683658861551116392806118302739494643172199476151318834485072778330684025951098366147535079019885273212613344085679563623499683713000631814702178713629346654436499458847678996460435588509413240600695852440842744085875253636756064440466026279321433843395339673121364528044109306260473824485290313086685297475166030250108545929898125765821674445103002548356422196393677470359069108332479427267900104224529348865475921746311033233289375190838111560585452838262678589547425418233144067823436021540119373937963609717519323804104513428881611276580167650600303512011809141601133789364109456906352965414875927410327433864086896838447332713649156739378877829891687428428526919966682051934120973472547750501492082442545137896650805464875967504628416438180808030283800575079390185310962561891572698294561910864680645836310975112025905443973138472285155670763595851708208417482079267313918104924609428897076429004364759914362748448802296938770105470247881546589068876502621548488682873346285111204791753136346017614536466781367043371016026285062312891108550518214611628319823498367103173978150937798586506138228178297963843524499304897884754704665531198388461479436364314539037106338632812991881768594912264251995328323685319947354262972391837368005434460879072317078762190440921727497611723092797740761409446004237259800925219352329494487479487034940885637325574633001547370978878907163735491592202000698234355170257550756093793733870372765727604873380437020197437680295397330979418081518689779756944992271180548222377558203469205470327702786735763248780808322717098420159605331011374934631674956859879841455879491104534133206842210064010741964302649469967610240680198051000648157053269577938751480719456912603139748894229095897341479244592200803687126948619524998368002873369504009445371277403027791212946695081675136991527212152331701844203647713566269749726464960734328889780447808971251691815088009611733077036136142886587384068326658037578282040249311014809029495134430035960340307629957773459536609623530159067790340003130319423855171578541693431652070162199134327598609571617093627488664780647847937734346136976931687321375163765085510976482538126950030723620550154442627506893939293705282708426517395964209984565339459546065601165701853610005937440490078748543946306075579465761982724528259939364630217397692327619235770770799661017671138596581621337955348283845930200149342188603347232151374495290751038882062777076935848705720662459035494366774410676189250346074459195763299269116589652635061352801468191939742126458374598048351874496435498811009105919255561835971743993877752542196975278180472451678324611496501160109113376797814668388128498478036380671577113881876171185377895304135675388882783209060265763646687578006762251289150461686143507477816901872950185400786111452658502842381287672655586395326911943306336048539737379792153087899078915954671340572371194075784325600696335861275008025727633274527181093865271237056751185160556940486111312198217291606284181486644505963795496893180242612762324561472768399402415772761352283871807245444231510984859738873559789464638429335129735913986131773849045367542746849479499001367035406382375874358510403498373876091284665660492436179380225362707773690829930109951105899003029568183097978276975525617732730519111290263242257457970692982563213985209518619591971475602563976005443308607861301276475360046581822075646035261102470294260925499037586046047181654306039412598383011652035428925814717581686532126412299136044507577252537526656824245998010046904193173865245324386057477734724744706535788085743710595107188250097515768382207009951140025675123483082393003035316655567307437709685949358264802289628239622470820745352693432592320977264322766619509796512052483761948061189554411541768711524791435671136240184644558602156638939976469961898901755629693942180138373654773666837935732064010785875727415567556383096735659196544811317438131722131813334109524622928203589550858737919889064381867635228008650073397529868948103769301859963932433135946665880740858227748860556264371330162416746714362313760859245155860162336646711188290490592213353862077065401387840826069207832190876955814462008405332469843873409640705252232463360127261467815145317791001628288554635275204316340851461023026070116681055857950786681582544088038986731373910281872851637009665366468152997153016067893433567747144668420094718664274538210087523171343330820503297431998378190789332938493498852205665353038111050313395624953612696890330937454568351747868336626224810570342478931129529745729149327717446233862088269438793170913897207495236995983420591592800000314737760040108283883559573101958043520505720649507721928745247600238200646889120870811083735131059803395205721437599330264411093731300888752498970042831696722436936359099034634464976873465334805428946471802959892493295557169849555485235933068979337835464789763409529597985355362695252285635344952171088818557537075299843012027580868527350326834820240769174380147371508871480094855888127519632255833673567987938345179009045783085443676288303384454408298498061389609886157869821150745955982567966263254936654856412914783125574972127338580912014987400019067768940568674890512801995019492832074740464098260064922297438805506072051700681495240568600682790038376047661126986841904349082443973562777822928963462888376868399143798712845762895535202294280499937210323971065657272818338333737487628902430179689619880955290317119919456221743007836234388297562088093640518561753880769053857786315122270256595464704506890324951606833690285412394776043843340005812748313658130209976859076721346671864020552117088972765228976026381797105040164307495474882973927979468088343236270908593286164480431544917225679906423352539128383149170732885256847297695330564162938897096249373520135153444426337432833828830757290172314732450398892287321894807922855590627994174450534206010240554196797188045826591963542574436884128233094274853974746872694537876314241065768680401872820695638536620571298533470211838599254269889164544091136451889115019898071343060678319340339816192111383495480226148074889465695047099928935870902140913746305779225331430452789855478309463654415701926494331584369521471182676830621911554961121578329168609528369618172846769562974320236493418150753771475726632102172925465864550645832451494587056865414902976602315579179593103431827846517551843113479872076144456626196288983363618358100294076660605339407917242960357533263051013742206576326277136242238872998133687885852818064820617774236715079311510685252727032080284546203130939389843436624829436759598576967093597723904964826634848229703394298108077182153876811200613831077199892273092420681409236974641172698851671400387655900506091810975826263635580438300745765739346004603976304976036861844923077624983071994559034553937024945274799392236020275292785326645980567433045283092456471434719697888546838922051390197270914048735047742884035822006481766239201998875051012021958842592604216806476065273926464345149833657845684308418336714947075497192553666694221324129914029121480179525685841508912816012095290087132344829636148299382574596689927577060723006045663698408884262804757293752738355398925590578787320720854546196888135052425574468309153390106368297467765975309807715807220649556436193616166838058555750000025760910105887191256822203939581487476381548476443321223409962848015109412578816846705129173802634415032453407494148615374425240167653358570524625667913432188303260189085615492326446714067811196151133833620661434180349819134812010175672752551042303969234212120640081806224843886258516978538259602234237563840813656428104964323247179621753975690620383430728539428920239434814357020103213692078662668109454506372256246223738903131966348831047407724835824415475256887566050541489870917044300074935890884264631076001979571915583745175884966479321186131908506266418254708417157104067570061947795429180532197566116510507617400255551587076414505511978705159400139844587187496154337327332923916077535997328161222644734231704701635672156007557076153034557630737617410174983158173432803421916162370430983135354298310597462816773637942743599377039732754674775240013796448198443064727331169901269485115289089482545177934123230353942257350137867341498988270207202674858026066031495310891771014504281657032113751434142061492848065569589199089680243413933678422457336408853958744473821776657154869980637855987717533378794881582264323655788404699885453541470815318211584041316910450523251167509547535995484852840941653829010296008762886404320205562515852696250174800137983349555304496140678211860975917857935857857059844312863141655727271332654626367712373225114317670608747595752663491769592563438042895037562723424661915364531575885693082043813101233375780973666939742732999700967674205756545515189658645349418365923167963038911470082993465958065240886355631549330034671937457557003792752032583361580628311680879264284396475630221993398060801686933718427733011338614715916613099187437574565222168906710386412833816686098417735862322981857215332532055129422404883524278574003900332260510679390068695942246799282578181953483290920041055670440714444568188979101827961197750892842847351094813903208551152112700468561522368840904642766748818194420158080383341493438379157980667698129147411811993358733917847376097572365482902276267974472000303086069929274437774408677722448361397819865871260591313857744822176952724359315572231562563179629590673947334251964273272275865202135104154387631385675982250141545281755642975279030977783040790707524952111696389369749116463007606535962264317839714299995021999691323449651963371995563573662072385222001966732706488704443755462659348676168945323276097474807345449430274056611963136575857657713826863367605115133356283156263039319502952931607731254756157987169422470840343744707405113080872009003698367028224744905126815699947066382214156222676383117457418711498241131246157221468252002653075069615424035240908545132739826847739842758172139417475323347494725101478228315528146576998663115292289189406406113943955462661719839695881595320218050384301171248180130273578562111794399524209572162959008034139651683939409857666473788792535805227190043592561138839005753770057784365459254196575068928966711606465163587487535323298446811372965101441370673107800328756693378005128971166061772035994333085917288474231815367549350993950040724074923017250623732236143631252293538886145467068711099805830976701169798761072911822931091062754227102607962184435342934784364795119577389681794403066081267535724083995975513902708914086053823946520385822134210986302990094045607747897972167059708648076888348511684053253261030975492469865047994456424539433516721506608644604397211340363816505304045974272917467255024044343584267066806286538763951212808127935948444477480504793302312204989394494293391316143023140055304173739189287764509407482687129547842296367475394414901134228702977805712328660910774010121453303472808274635592531774322171443414716671477614251276699159785064152921274138714855856265510184706990539098910943491746306848127249052698886523691619511861751564025516284488667229252481995650328513467530378836330419750609311939727770536705865750797593324314099300007535715985791502145352091061668098754662136442827193220025715491608222432277423514507241646712607279187021137749725872111510816612456680470493206420271106658454530948287507979223866327112474738200253904531305899675185144457556927480397209872853840421145849249805777872273823142455920799591905912374389686431731096572810449708980140643531895440507259291411846579434588393000208175177743450231852501998413570092238720789063108291549122408403737284882150119920494752504142478731836877940791210750047953100028933099219082257042627880337106819056646709725803591792251396219238683268330704671830477363523993637311528161859453013739777445068533254143864264398167559776715235911872007498869526033120805376739536641227654343627636834352387112023247202020751310042875890619890678368930557680505261085703195178845281493427849398065747026708428245396238844214096968358066294888566075006412431174424793186025041465109702963831962428687012609289021983920628905073152863030586581867075719930507331499730390270918311936131792106796413517962716502936454435116359558297860218169511833389260482729620206575583114295690671155495820042526802204165700993675924752261857052604101121117934172075503530291781367646144968925129884620723170182071144874385521321200597824092896919821929456483190358624415589246974098379332973745931797461052153247338733543616490083892638865772023235149710370982287322079234444363703817930917132544249127205299825572271721030458136573917492837119418277695766204816826391402576377086096708294893894752859111342857501572785120027833377445028799371382658682573678445754466166768474862519279743178939354181473471378786888824300406659357036142281899507905446818328998711342152627051696536913887118571307484029100398625370175979613194774702934528703864934011567287487791866796431203905596206839187185683159168919907462361800875518607294193140068603570268669897715504317897601040754094596686079126767356519376565496884765834121063631607740553858339942269713253654257948881113246551819857712545883042744217035751124941851628126915618189374990668576198343298840670815448081716531679960556162187609727389714396167335703773622461629652726127903635502800308589953547900272922678955604467471185122978901415492489436379566750656625810549062742907231249042369485580741357612119431799003737739398839055775547963205637421402384472205106677098788034206142524673740455918124990882998385402081550757778565965017851254066603882004700313201156706778243928070880621156783597379976565913716200540514593113137079479590108058238723310644668200817369814863635251758033160415450707772354350907016672034958041024134616613752093869268627196380587257692304564675724220111542676626460570395995039939461145134116405521056877304803529624957138138194443756145559032821026099249974209583191637321248473260688514157207983467435496448039272813162997621869142502859859585659283017998199101051109900782201169165766833118540293736716367837629188398687551582398018096130087611781916658902077101032418963288140479652853895048374826213071284930385216878740174084551724178052064192453878595306809105626726539880530580921215186066872002545618422659256070433478256187197264688130200598183143300606722580045503357534581574927320881474886091671871313453132124347982449987809551209735811065584238790418223078127517972387576562622445508886358089116564061221322305451242212347912072891992267641057681038555643784309388218530497350549550223732830654468943562647068272899825382533653934106046733589932941383089686175424702315464085524380633192311578643491520770783415755424318452646386909725270749811024610743616744221951477886907306267829952390036100520803069458340356273806447296501347351162479033812631039335666383641934393880879147597701466324104111424323061818178101190070167512579380900542186146679412955369492240932539242434185746260403552688591453301155113349301396929797412822962826270022417435219306549035899015421295585461131076639510505423037433636034811495789208621730711214935241399878023982405752943839536235843219503932240497661292714662654130689912704985570594760524018038343628646471791655979898464891006731739654584191606746685426279690273011077675474330079518712757203569652338038313054666803029229126258261029775928072510279984113692032024331230086652865130782665958634323403873455252711210323171242647811683602733273354115904168322244399867246606203508780779249991783752668866292955786076243229493256529506243526467784409364966126855459845207358976467898919036368807774583844344187180423075772374314445343468924348908163976383483978069276641142155631590108150429018184357759376949931295550036374663530488833542723181551983631295744418060170862617216459575259483556701716212639736478411210814364329683075536770771988978456791551285220679045889807931728406567526682187282583067947459967309531047542040427508852767835806694493276695376132063682347797408574407029088495957653876740165112676039160710201106723255172252736843887231500440546420104633090952232980252592816721759213733394707380707593159216667779055295592661086074786373471292885878437135602185160295531533224355294324702076575328397396078133720898011376870795009027382706941766102991506481847265452449122914307405739837139709822080841940137467936609437666396544538162220273319709004347809955938594019279075500210841990496329074232105951140911851583085054161226606444511112088842569015412255663135649862604663172334650214714063726625968490392655359290183025817600756368303030386157596999636647554283154865954005132167256693556781336888161732813614392229689178279466565267780589412985034968587056893573693542031841287419118549516917102449787180032375750865678105655739993143117090568263566279112555107918025616082378204866375606193971681788291195926487800705253505636675383308810977868100601015258374779286855640400041347884715862047059404595319573995649155423021379691090581026657901684472466718453919495840761214990880730245259451932912276831735072332271856443254826720248799861783180047367235498013285922384655214841617209348872078662588899546984419427290546024080605338181262273081022303784133766794153717614591403408694159793768806309231762396332522864542198547773423466118904304366933434291193912746957530993613429807773807193238299702548820288499489434116910104771012505293390165269329020691522131984427563086344583427720288085206099769729293331981703011478217757425158801554442867842419708426108498778294586520222096802518096599143916575027883613461091433942435605493051200837491667963614771978723097057716923215520589904569033448246004379598490702189685831253417043044263705825000164323339651336120245593244664487764362690918325443670017865472315873140359595576677275707394797392507569299022705541921555973260737083149782816103286486045522791749809934046670163742911506274157876101616290893043625419643598217659311712289734195920262600002252575439070512700784118287927414357222832524124604776106966308992101331739909794885341134122313163217334078952942709805058571952829788251815225330140765068157383283578781293762441148050924747021882814253636714222448237381271613353582695704994723731479448087108838049953857654209929013973506680681412210236111060015368776305390087213321754572163198531510603416033802746302584507476401503742713748827515877921825344831372748900441068838877196049699030356776720278385712992477541204729164315913922923366498966186742731994289413087493706838847936780928334531061068738591836328125196679687408092638985495902043926812132503966816281956142975018771149965562042800575144894628919980830064416259186122615562021347319754882728707647742504899446942747200984442932113796691534625493833097762675691632128471688724775650631585842045616880140971987766462671787731544191410794989010876624429461068294864896439875855745307497740698663281922797758053877828929399737609076616561293514269278078594133502353021910962367071232623075337374027109063884684056968348506386487049709129599979465736249407329483653681505512152559211505215357867292377613107483617493432485129516253139921846856572565007559096099802808032453383708453751130796430658517618609702136597684420470601673774507510923755013053888332128491056198273037317119385772038904691466443341563783160968859926285079312173118420869624508733105682299745191649881678165096981526961718732276298691376948329147002446123508710001457067763196833329249321199922997600209691891982059203274284741372261703742127024727004163952768024376524865316147529539475358149952715073435956580252361355462443578397840344564116785989291076763662401700534075415292806076660260493036445479807202833555465827145828964021281920345828723413535621394313374291058253886354304777515865995188132332133933092324959433884561366571208033247443247044960645276334406451602059641801015122526919289874232727047516085518692743403240353080384922258086098318842595531495053418021463858325742796980099369144474200144580532472061837754971706490832292566201868765512789523732347938451943369278626650531663419828594941239160139507546605572024301191006389098704863302794380225197341054454456142504764584158961740427227734150061516750787467482137457422574821055623493740532589295795722503182053326730129757193681711423252020579713459102459577713533308001004376919262059157557417103043531112283882243295716056017737500084273175370505437969090773882694064384487280839646549962399925129758115754165156627087113537905657428308864027400382905635276441125342565403978501704814558505038322269961583478067512039146997502198065657741804811093792836614509855328065563323579184026458512307641890081623611272303290877124321701070312620938058712813584689547643390326513551268770840753625029380607011622089377003050376713329682097340022192199840634407121067720432504005082340647750212808516614160859945574431782474313746409504132898437369418894123491463340591148535190082667267854960898590069998341988906432836574099085593908546998186469310859228460587086007610860474001873005325097917040184014382010756732196222100123113820717750559991301045952581414276437199740973853452821099379160598453879267436167580596692492236214753759790042007059263083781750424267784990806398446535046357247893824365433529688898749367583381983500072460691121769882616487560378333834669543552670424424275441513589213776671534957828481203571744381277843174445541604559538903027112734862344141143064034534252388045565729968081592638704630926265865857356568417748347933864199339223029084131758781149407137688420492958392837198946144382126342387550490502133678445196338213954875171641433366889968455509592638245681781028442370466638316639590543169546630801626057608031646883541542086047473124909234077663340893443144843648678473020816398193499560832401143018620309662181049974600590717369868184120130336057138263416510871277198502056175277273054153681195687379018881313674821624699527606038792802583676532470747448965107778961313717372430675101628068861532533606665366220567791825032270039562337759230057805230486290097755452581264747835640408580635230926402958343510640212176032886890184240992533944577703905653241989928877460181613537281433317377847335782100648675910895672795427052626066835124897027341728723808039571548009702673814723551751447639860998310472314039033404456808179332188082602566266533723213072742088000140792688470956248263362953082536751155619912158806682027112580561786724659169524532489579941029664758009935574668448679632912807490896814983343074576740340371011274455225069652315706863219494901038989016855377581896521589799851670168223701832087561118526681159283278655957224607655533427689347335770077315845409724154473796544144236879425166582775912117801857214636245039815105383891652942144421384286198777233993730650842334830569667934166350739728825817675623723275996513791565908587601943178575529141831037338182056014443423866642800548437838583775876796052493043657938810886134620718548360393019724873445710028720897818216548382997329067251948897075314659037107631670761353291614780525280842556022572266783152241007224650915154434303313850627024099246135168434902185484019869002541597058281064122304436936430059906397293093326203983409958166383201236052690877568185131314819952504535284065388652282424361128715423681599203887845756064102455880755005799822098303267478837977929903295219682695679688306384951052168127326813143716808269459678392093363544700543047246736264646837646564453543084379715388875902561679229883503365156587405015884583292415412587119472072211309607725881081060128169307702730839378849590989335610543273194993137431840954265915927201337769192442636204197972124513195779533690377265592873390245061678647921906495480280497988491786057948254889168985397745193677108125175668995599757976426013568327822992826042984144725930943021871748941878215442893738793493129187081253587047225160714034173497937567459578066296331655464121119937328391893565450989665341353754375856861688986311023576894962982057909017718408213552027197397574193507581028773227023612289473005982273906379106040659727119218189483747459277574276388065646988692189827128370966180599389139631060903199822752005767547405530462258399025107283465198236719434601688564426932371423568554819265982010529492407011988811526129252959264683630958186097024858611583939073431130639060152683966150005732646339243105288385987721212127346858632193992622485081299049280557843192665684721096410939627086458339447053375636751153207126663451364453373522241803051181259316154523231188896220395698472662701393130875434980538785413159369480466815645639997801164802807403632812908503104743205577421886549412690474145127406094925209612551922997112653857744922456865019413073985283040004357564350793052573712893890686016643605165623154259914107658574227739417632053937038488509409046685133487818107031660606601930062721766349218324013329898186592275001681263274069070676583938906434522492379571573101362558094786650197794480763159941062528753718931284587667409042784099149081762396615535806491963124954993461790188653988882584610290094097893756801304114314904704519882067890499388503282984643400406039978833549655867505276283897215191620981365367890556339598032376007026632350975796499351407899283958243383742028332202580996597648237742559766355844060826145280840423608726724289322113185714445608758505747983574211577660969763303728617483876532786544092358403751309503202128653395995793821585429745710310515560894958023499144091910357018646128994550683259810491580980548219232021176245903970988947072826846498869474051363659769195067711820694022457668663030276683302379707384417607647861356136003178004935600678663076685637129168969082159257355109902593298478069563644753497080567722484825521386250008871414321753445975997286282298127198485179201209656484117506229324536789255585764222115642434621587063491238769511817430504550427648299458261587005400684620210631812036294716786860292887593018394649650319867725736985961628421037621851132754206714353434832055733579593700445890295754892023599834614703072759541095405842585847120002179357682186896840562171638894926303694586728320729977444748183322243653905347870838449883775407021146149379898612247592332097622839149152599782511851253894985185554187373460440513314798074574313663317359692966816411614106382525474628892698426415770915820628895522219952100820212534789062986230587835731326485685919795429896680240657019836807160089189117814994259151553385419359955176361631306261318128315011420793441624518338292974944266217869840689955918141681492618670871082797148043379948708303675886400290922144573558601503365005031630423173105215600783996605546996337990561596650302715301227226152393671109639742794608006814889684864116443231455687252230889420973957767089347054787147812899339511491163785306451435183931172074677629420468441483504663724235548526513802429740646658774184232958455700553733919366344421925606036612500201167860376853286247714334182622221008337578764590533971476651283708450409537225040624626029948838482723672428235999048176386325965594829639081834657439910761814205115666419560122700031233300490900811598589645603472932301149947759167615131288835629765304027477440117277047527907237499890412444082727888925673413169292569262219156637129486095825562308904620255476568089044867075070146837840501952631218885844963189161977702946645321944019096183618893903147158115362522288704286919257226039715401746919781062459960120527469447237525793707707695740697702158310395118562865635788893273210561891081600933410347430885511285373667260393652779165368659561933711849612330215398160225959535897444538024458648970540826110214626541992828676309668700331829668959311175463012708330564208471149528011535927374420969482127329178527834640357742982073875585857282213324474547667751706761593678364512348323337790200987001834915861819782094599352146804816081142932511217576798222029618067533271046840912305823189095447537114999601300138066001896334431810035575003769456611202684017437547613328744531584142159399891890950925012040675099945417940097132320070555394467150106051391938888939663488072787508260417779485583829484009005167216662507237595668947712195316813674384944286399252562458623791070200795130798776915446273269063079672627389106907863323886218822202257869068480675757255283662386721238650005063860261748924886268024129225403250363234421740026824490947371918708650367096484694171412669650849209330873600768151813956042347396556407011506180763159986783712135072313598089558346289881364119096685440481063092771932783860919470689476919834403358160912509148459947531900950926657318763004215571354620105490703146905563837854088314851051962629471213884326832003675775829337367846004234611751680024121730140877345492377468210897406743326042572224947312653202161390426002169172038406035307419532218533335634495106946606508482119817592189109810999817229820423393990093108135221105107771492299522776932701429538969873005193348539598549618547882321112569161332763535042827755582086389210472720374300693933508708912229977629652849106113561514476937390638187605769417289357266722934820878101435373313503597497891305646310417823904493842569617105871376803111567773513680376644885152225886571407967999896327264434299291527758332748368485907322544309716830637378458789539181507224950117928263664796856333984781973581438735057992335389683734782403570338831288926478922925960335274998764591822750823630344477474777654509243602340734103509112410798211606557918514522072120880953877413998913987443300178796781987721643833837126269563250455779212961392486097911361805051907581101518576891495390473518403619434646678829387140931095233550097872918096428808884766786810112700973714359347647104176609768607589768237864381650877302002434597301026329237543756257680447737502371315032961957107675025612952761935027938477034957097907882538933539427261690015627455257780945459468631108640166525353826208926451966007337416516998562892922534162014983783500233721170297722196452972150006036142076666132949782216920532347934024882759234278081484414750064805053095621973671661319611878875604151773796675724800765901619358398264536188073881711418905599577401012794035441247183901272516327701455326207484749737823979491937778090916088910741460685223497364641533703288960284397220669012660378129962036564566853322719220489325897826496294397686025908055920011360654198539871401380981712252954796274327850003202194075382642718504874334895646295168005202483202639526027654717699359157041484698236281702865880978327873387494158686883273617288157374742137089834914939830472012812548255792305334559914839323249460535988212092069221178735912634730592022670934384576956729605420470351461542672504984674761655913219133721885998446282290679195394401712410173090331867560192620164980477644551348343487746531068787928044797323391811596532697378004207853990256617228596158936766675063827580836126867035998621062248906342092232500347187291297995342816163357842829819229979753077595209592019146335867197630641474782183854179198035232147659765634187172418501760218381922147845396628611417726041880788828221374132507696655777703210105624751803111020896982187728602433881094237082602097596211526576243674301391943538056310463981429871434868351149001370715336818411664865067794006586129991212717997335145059865308122159583111300211129766760881921121056365799016188525635571933615877393654914912679396367237311518552979811669750201995079703339358497949773210133715176651632066668430480895763390238234669780000043933663056310822876800388955673109075288753152127012173038675350584779557104644791392540634824083261734824012255000882701946132952088314244517882651528418099572265715713239378457795914478726069136182858051395866249533877856308987882975277321000343425001371701032388987178548924111976694780652504410231582898021734260973907407212691618861946100818837522128992576039878654062091455653621410250503264408756282573992526644105988613502553136103125741010898617414648850145452904311123047855804394048649369311747973857970756436828542480461542926063890852920360388980088393380389465829674520141774424313482814187143603270271362648394916081548935205816864976562936865794408280077631802373223693557712886546549557851055311081287625900263828959595721803190505504815883043619457513785351126837841617963968138220368961889146177911991312116314161666847287676553896115228704517073311263246166659215889969964984169931938003785902305879856487957116178956524101176017420516839530289587449177065946923911753308067396788464778852021312156336479253255417494711588264277362903559208810613344795359621995769958967435110993235802879388507697886920363348814077379361549537574076023836064601799793599349774287207836596626782094545636813026991785870491166625258991548233262149149586395808891429120826061354874963090900587928950718221495280978088090732930532054744829438981306368660768268944736536916182106689577867453005681624070741272980661380272948542515881630087371723683397713553151753945034883454583950145703936847254359614115628347450232638921527047300869768350009209758550650015287358266882483788703042321156448630709540264293390407842965503606191662606735630819514595794369867819132550698110506546248134073444511010366906072190451706200607069940509251218154134157800631295496507047676718649640972307526728346304882396528280030322603438691550988601874334287524939775923137954025142307994320814099225906333024140095360526706352118970801994425372590703873591219508007842633679818719907599264536014679122659586789197658844957329115207442585824496900448051001666098955292209560998197507318921809472226939547172614193975142503506136922785670805927779582186738259472418216777606860748210399328276014736274497074086265425291504318761993509047628769497902102031955181138877702287304986928064650321909048451457016865194537911318486669707581336204354645536070146800322671126604155823168636610119547516787100941940706068429175554128594597238886352519416883300091930775500943661276942686275336170864321795857768975388606661364266349026709331491776357532632607064435774599562638047028241354901513918976371905484750685568080580859248530445789125756232115826375280398129734041265603827943675829253797512422058494757138303732718259337393103505945473598338688592677955868254284593092476972465512352010224301715007835223035300794979425296548828117786111382115995933395586808882490751184027102555526046685377352463835126670095704037047133350797350480369643012753740343301144274858251541898596095275070972071181777569704359597732840112103116979520818996190232393626894385927341799857007589638132914192869730709147239884585688231515289982910349711869241904076586116785707846172043241312676497005563656709167488282825478664772633195678593330510469301069610249188279340346294465144135972870609071208983703326646473911543259113523986342666444019683433306970700057657202303884345164478137759983845297379901233343407258211139334655576030413575536368966286017151622805903051004847081704969746398128516459839550822392731237392656071309022778781511419261590973052375697001236211741850410965636818904456740858444740157667151959140509531976465578959019339435304164989498141813302295239243345396720458072585241915036400261606827938424035874277582612499980189791205821857568376480357342889706263839579312190681432326636157691985709681729959414670233770726953976996982483317073416315390515300648758728140079940496379486828450503464694983638292065673518641281101179097254767191283119869427713109823649308046909370777199866312015258799022409257592583314086834483825736137601053451691215939665526750823270561565133102473584075011345848821559636221494677125358315626370267426211333605653832170841595793185165930174656294094874855970638400171047726072659558525328344309793460922420775159976586778998856497012825017048630302831905852039990247558596013587999108403007704261255203857763824684790382301719211250679375495381481140848512887641602440576872997187067069634691815232423026649769489475169704855989686005629998999375950983174587755989961141020476278653328866608080257012956214554414993222631505815774336936338937479885549791373070895007374146002119838047785286344834943966930745516326123252038280514919825865396802004831143916342997005598797844758493065169249685813778064133322901810183782747741702336907681221787621343541875021246398433002823464015879176695794205287314379376596410561588062923501470517235242258573243462997936609549222098228719596276874682592850641527055761684349061170021899594031517919639777655008639986730500361377610283793144184217201642433169588124273738559089836662601955517427156322322796430256970531208365295413230162858809577360680497315272022609009895838893427531229571155558388905610188745621029711510947599239331215543995646932908067492222739604631152414006588006093402568275600506118158136363230623848892707396953189880480317794165002749187542574091449304824944737979735543775550435236281669842337404351260490477945919073869657228819834123806475931728086048907532627094478453684252754506540462924603881540984562925561514465501302177252930277923014439848534839249843613076152946011078550967668676712656963039079729220108039564990478833356924138840901195207319232437818047373091065545693821187748774445972674889267399759044400004148053740097805171265806191771643839037812966319242129970209095107956771462653717697022518586585749265526319065897630204675068106247382034796189872640801882561279902866480498535948336402741380643726800831540571834653561769053333691372833471121922831383781155854912345327605295761495077731033390940555475169497220562146460793526287727871709816887325261496014837725743851340476555156904177010413423823691981286868179752653955379230539385952273671996120375394610424571798732400950510645605613776447546396812797779642536062788406298519651850866532121378177314531735458020329737515102034040814432203871060930763731287956326275902978303120635387208218862493269432008957176658964394897783333324548047384600859531447145415643089689341180283943236985625807950405065869041411440954460169588157954210069464507462649819421894465161413358640001961509929598038921661137121563362851163071932888981753124212487644256846489969637545990629090487241515050770751115419601647170098020612659279557799490707464858839567872793009636066703869928014820434743151079802093890677207339788391302777826664991505842286535686004706809579682909793723959425876126586375104031148935724098118488886794897858931541115530208814372565358223176389620463120137731667098518377202842422975131955873185871030159353240174310210981443688604146668580250357220315055964017214304643658439411897704695420225042622973363664328633232423332668779741517874960083971015522102331605951069887484820260471582410614898533658807483309643241677635019990990351506423720350008333633461564484166896403725183991252485202238876588012421911843738612376750533041512754112989159871546212198734494923265535064124341556749916854397316127068872437858285460453258244718069921385349807493322594220720262974462534515185753316451741938770194618462644367729831452906058613996013438765424039736293188063560940603247525578484162322242649631555685410017733496165283087854670446652151297503273236038656858971700896825649896522731971739298890317075817746587333577895602822908244281723599359121935295313376447704090431002085481205881134198715204214411239208512736392575872912417095925011257623956228178342047053000119264378948346920344742674022792985082152817035994570057707295162731349276047187332709372869857099866157277316826175181717908300687441861460586126072641904811440410101348508553991793327372581247328968393429249623651039190635736790112291192839839170906099940931612721236462681597859441792095526391421933838737715025490304084299858462703350449342014886615652926755658576766237915938706732891506017587871703352872311952608589497606237735103501429868090568109320059101763984812815101779133251432481457644982535408079511552017342734855059837281376147709783951811384461933644870182725346531651093363887725432277484959954017578331776923139250436175303830290149838138504129788698395709419711509086521664718338590945002690465106847848153905651969135358123492297064518602641147350742345575527163075556693355522060137368520975189618014160644279427934742646697126794860300208693684350971616560138524381717767743064650943032720980327223321480109108597639589671339289940114749876003149376438165609082469662532577597703965602338544135248832005492969812328716338585052575166727758077304997947290812049222120944132651914707117112734705856872730199925643148725460714740788912898838728205312594296708994059709468812516178894812545238045319478062108171930046048031977323590515295819757474621896835960919529164607931829566969864803012850758519435326154157598175880817022507919605627219402243342218424427975474428334638426310246945986300777981237406283199215327029540827313057435723187959009442556928364155380263732225185517605482141863175363744467439543546443673400298940674988294891799149807379326179590420911240313185945932385840098079392850780339083344552541517000199341864387850336517069441775774804138192370317937782988728558297259810516304782263150832303483079734122436786436272993485533831547048890227987588171960194379321863840313362783194935995939681435770050630852910789483533616684416528690385070314305403163246163284744635827903425724258542194438133716832134780652087355991338939692251199129771068075646413790192642849037930560540533136020166297852700811340152784258011524263716644143612211369726902094017356097810772441515302549355161693705266596820266091996140004330690412871568603048608662360557821936595154059078204490109399778239209223270317101307232992088721962747834450130329461698127827347361019374165009096086588852122831499470018305859521965871009979701950310620083266706929889833576520628776459522686374091045175195611913050037474514482026945308885938167251382202768482140053716808673899360000270540629253011609393593472833813706482503779045424059572663025708361061296683720726432362311041165311459515524640067223103125789489274057019168330006062602517276853359465596887985017066859817808400483649590233652845770627408270930818797220686313221800098105047894377573450464611490846207584539325688793921591375597775926800783151463252674953397413719441380691238745717711449350259577907871613564520177219849267971145465329099030511759646286738358935457503349436660488773818259702878491139729210784520345162364054417807082800297610408368386951472523308607761530400386941924124862040139254236807924244637313945928440868011267420477134188050785102380918544995237890091379429427923854020867233555472337725407105721990735090824618331747369260803911473289410488737819683801866396977610132644422601740300540951869649275948068375524901492152015776504665150798404353564748525326850182470495590649845169739873361673514158634894143808871722137096981081286228598428978204697772769747733065068994504652132230736197063735614882543053927945783717512739100358858287387684373277535912279952555118569910027747892925604839206662269241516607212345160958212246374313235107991914663211041431699524292652008096685129440490399142387704766867802856050675505653297883025754698561380076628292415636698699723309700266535542594307904895319570510087212925074061356821454847578182339080616005802248248818258164701259920159775590122729583433041664498211918255999992643686771244942056367699350148942412042740123710887452171107505475880585385700332892330209213424362574305390729396537620018215203593295269594783393596754696422757239785856586387287713719496344965186910243898486156163806553862615599920847709842001288152297646862293770452029630185916176056441051955758305425442504319941270856339132000715328283359818038376519399563140754121668191640177402255132778944861186871882772067996128732936719813487203069068232321482154030004355842317847530375359117099669667045677253013423521311311549800513586121492581872121020233313815441994424476700901221493087936021631521583030825113153931129356569041521083168588551793740103323136323982545982741138088227192059904647614473447949412563344979189564294360410600452147430350312228628004092716709279532042250871296806591454215376326922976098444858801741490852380593113830993014099497488724496657598718880343330908864804207681375690351537784967341769708892362435047619945202936530105164566209571995305126601899838534693473754537922497726386936760528825185837604017496816886666977896300399255752801006101870850674161687036485530246321018781776242423788050017290911729394296701700876985728208946422899231229135171744975103440603903663846327307680946412291285573741471138437274575894644435907419047513171488100660876218620728263135927007176507557900540464662272682634839375803047019124238319289714071441288272101998038037575179075175039826811039991827397245719485226804859529198889251856584195264020135345531536749137490750372934048066213405717987454589290376234506139312672461663432809088436354167697193824480955009860836813188512248966207392800448620973674260218596093774086702212322002917611438794715198373537987386234584324608891702227729791279772280634628402531393030948746858121749837497247547276192016721633677352403650093972055365520978793104217134618947705653599840640905915842383234119225051397398504071898319207248515372055708611990782013627948530914543901958746412210366750117858663550719283205651766067063827608782218497341783135126249778634085496490779236005745924710371882007638159391164033381657747253872163930602314776383169278719798589281254282837449920735245666542881534802371249234175440621630385896110872608411846116800807734113688777640954913587097260759502112177302879074076635879134820950768023176809675292570746644828052640722162820020645263295338214715505878534356559362674029372905191608337087390331561705456763637436233442769750369244505691994874006287799269198339534619748827426890410419887224984252131108141556305023794105379811262240729680441793891569279731491895205418078095713375058189228504859325418665626434343928494207405932470327775607163273714908318058197913690829173681621671788058936669060858511230855098281249430929470094911882177017417460524918773473828994567757972548593757000684765844751910991568245814810012302931461120543966703323890563529101002674757148829369993685040444710988986638865563710797856731325464098393069555427787317219188260892386364466681372687024291562826445327199498344262887341654884752258576626291198972269652853990273011227199470092980720760515587873941751654761205043889937612305965134751319883904750065475871765141115668765050268461675866985147060374085625842475577439414593647163729652356141611972670287026078671934626700955660985608828341256601513640163322761229800716774969333712507131502785189987211716907602729901946646817471298137458330535847702418552437761061246352106653593234530170037435245443361111518603132938984867483615434992591956369209069799165867246182534355749351577865647431876873283409742177397457281825908956787576617312195513686010270155222269966860208090590313453870020395226830925579958740530356248460302911653706638095155564779447055958470338792409257170712317597965194565569891742257013577103253680909669278590585881063571661404762493597504974180770923928208005458039447788825306950320146703335246463918523475059260294245676240932102670892869846938662041561577143489489529271651848438025513715488879440311443139150161022234469614116047391744531637391578100296014404158935504534522462900719470555811620754774106989309014312739764036630878507366281461381906275751991479950639661211162533043305561131383921433690423875407033383218140341891408473089675142315619379134584313510448775048813098590488490129668725914022650851013984546620244371719439159204181867894229198695851580797625458139489484119648573105759355210789429166005675549906023793301847800230297770465433570387661331845889715571584852621173657096656213767121202848162364338597702744487474078235103364005006088816946233198802653481713261983752854498275508761924662328878180629606372579359069981744821576573752546965793459391727555433499378247540012085654133164522310619576987433524085534438443973491401000304206421503584027220140745307569573632147485599600665148236719929847826930125869582721319778264391759030444792126700852813052061261511671905775255707457071866451752097608719970441784989921636121315856717932033711810250595717572474188197207368543496661520906663825860969868529410261777941310939975684934902585442067578495527030291945489332582790592609337941971864884017167909892543531222085842637210047149276563484189076354734388357228501339670132396287017387128570378084277554339672404545957700767732265834839727399293465748556205445372613194401869259235874747034788932375127451218345441393846269027711946957446618230806519870242817592923552330537886347521682483647610907945015157294477514757003236579623459112869352217321243117541212580827043827329990662719374149390787616008139532991003140351365706824699307069464272644843044262821446790919867555903493751552030028765665449467507330026909721925210601804370621253377354227344484065858021587785321163596755590360485687506694146424037923980334180861591038446794641308689464325216623405738303549540006206627681355126839665326848615552616901323613325686257342293980420353730669562711475624317758546977016309012090387288942181110835164608728197179522129014649009651170827673775046139721517250443634811954507975871440198642153439994396668606232739653192464656356451519297945558872171269562519215868518378802639108994785904582094910491867677551770972610136579131398079873417092606017405422260686557048434278246153157890113317289431169231023971989912757571066167016612512619890324541197706591742330733573868514778233833752063203097839113208587710223565717377569877102419684433966049082772200844030559615684365814135428652124052809168676805165931742681187703695161657095744853232930193728603796923780692633322594058891923458442376532716108395980748784635877037417264494555615712198573954665851787947345114751068860401930069661318001545872147417032143892316781906838317192783110169564822621204293531953889989251688766098305099629724923516863877436664132484245630357749970165684786963530369157341465097115542531102051265832106399122318829172423683293124939786473880883648110952657222789902247349086390687489901121094554132286177623476880070671762391843200692022449231954173723121527661714524132689035107962783150986469773170837303246373103416883394522851629988060567790193007225157908410185618695639828194255958562643972428377486889280800943728853801538031176152951859030669518968737171926284740735817177176512878515258859069110142430436291956894387724693122095698215930077972146607712333490414347276174578226623403549628115485771126132261779594973721049964504763764048885953091932207413546585513118513913059605714522100364401961617484880495452195937604107910242668514856671150957888233360799794950490098769013592149861536169005296017598675535082480952169811953746946040672599779748896370291611893862394288928692821761658288428076873766999636991469811151609449908558681887773348886240000910930675580653224214741586507947161330525215292775441702996276271414292515969365409046830457028974853408026297841201047835976144603935047906772284002647767753518499196542186073000603097207067873915111842073841859129201867110375520632658914383971123180402267019695144682666262755421624317143838696283072231786082410699423843371724086980023960168244709553736348987710054456988702211142956815369804121450968259333855087995565448153944726090249172926370345603708696495120895909880633767442517486637118106432241523961315338748377168267262186644087039089575426824165216779894174954322750360872316970970975832085623568406247469714623903489279826427042663493935255126590725961856490803069534178890964623174768201933849998359617309133926996016090322898368143506000933485616471247871806382484811941758807386179434843725943747450696314361438484787985963011296154487492932599421691890038689449970449008537923579907214627202427467275440245372091603070132758385723135863619800920019455267333086836648198912708595138437561074695205720357434058462808966910978064515190704843822273556460935557121185503041927428086538253355439095995928187160115444497904739192092926869715327475204512695012806486474501871961375515180526737719877619892500692718478985035272933865830680851664225734001657960577472628168244415970050970125272271650065496426324623241154561165199237748572565807732040624720412686706042211794426510179615698018730423387359402668353026958901214757885948010247174030989076556181558213715589953333313599237608459973557143123604217551918752347006759901101603831112413421875725185715994493630391405297639116373638323672916788801876933369360892880792788910066227102019359857987082823455522719189879839951345340190412264539397775420066417854796366973102678109250960042487776737302655056479514120326008299030350349405381445759482042376097639814897026134320685348185409317943307323601845956008341323308088434419434232141017784352661608445578576230152911727231635960731651782448218847028646603533655774440367100826867651327804549457828611734550557267461047673621275643351415866227015497871686235809802718871589299759589623230452754890950607559154674127955674471910357874093375224762223544011724312001872175577744825803155090232783806946219005572546411244382344158049341468649130332381789750910876820816560878277101596526029052996017708818955131217833721733165606202571553474204719053894537839298244937920513580756635788375619869091577656887875007016251529284265521771367225419561265443315887807501951427164309765893125994054156598050868810833764681431859352929338606096550749833559498221027518497535147518313731505786471207229021852986502275371770073542166012085139745222518132707192039952383569865127212817621006488478592808410917402954586547044348097677087165555477306648739589250265087216332367396087093423830544603562752585424616304290673725653328699100142480669101325552407281227822360181586282172436558724447662162816994393129907456216176066081977507322892498522362763769566726236237145717361481791998703475810438039501151202919849975748950692885681807745415395946215719408472882950811615431055074596108706938469219843018677360608677322463871358196326379221643403553339226450158772384348243278662587475367921733795826034863443648198808079586160105958096999316844340065964887071246800109652875200829144765209130217501609739021187831300245134318738073218911142685006470133743591432167625467862839259351434157581190677549723024353797423751181005110230532014200285681038932419225339760999262384321772453768179750485421261494620136187517728284640187364849437826869718523275662471686651770339267236048693897483689543438326334629597882311801131607861171615278763588330986443785045192809348239664976666008741153084039045178611361855724565660104827548125178227913010025107468826372769320587958714556195114504241174691681435929516686736047105757690385777303971195102996876288920202164174828485371067280084114171910251940345405556007132937953629597178347458612031331560269401850309795806151643180172274900314394287356772045155591430101273776382309468286164577213250113025656220908376073328198310454447979897418751231311701324928206119308089919783516752611364487618832112530211977314646237540104393207061959948182579510344658026578844004059034038540847514643882280665986826082035960024962871926367037347785127216200829963149136554662313434396702908222665567586016102590213540690554322467357472134889989076958212410059731247998107332334427482035375745704574405089126435459962168378407673522573721250395059802054980899311561302775221470405320684751615964184666126053138092209768266852048802470954196066962587501421651534798248555253220466957961462048299970858038991096866743735274907367987252263307941521665648447727573685893937373394833775153750346688720880601510844295671965077910214032512276384369304791028429207066732736911012592607513011294604861266602658917189259933254402697815173209137609494286828942426572581193494942320694598436797896232971747575441227226779967531815718367344379397746123423857972297841740539365351206413603373625014298136851172362553466841971009479440725500473656118484238923376619845086885141906068407589499924415957589022807255955761045479216062909313591857277824340114480966185041708602432140182805167574825023918763870649001056532855941831166971598805743331572707553921068422831926508768624461561639759137396768077586949094693575637630043366087197603247382569106791436012588642663270892930666398945231763732220398803205550406762087758039451780863799487555984321132177027350659166610304656458408801326017773440092464200974818246321417758867137207713607828672521716948461535065549260652854535757746328009661686875862284568982876389601082102949644717854078585150789776862969982248344551683635898553251246377453976796609633582472554894589031206993449046276959285011611514010536384652030789544785584818147837818445692576535706989982574320610264610740477666939276018964005417996187458339377112048519898174748131681977219122329219561094412284702767718165508956645654299579942154323728369311313098172114076324687251033144305376797702801543541632532730073939875293270586526446889966996719152490321320805216686745901367643906666151468672691221839994280103154611844659253127306260472289865952581801410402535027306829373826560771252906971078487377020763287210646519027226424759832667371127976437884984583916902190223143679507922490282725801954894515138788143600434350838415817476467274670829603495042051886332988940905681423039731151323839868095626914469832331209520251965621310100049570854513047391995627356265905232803190632200252973987460952561768690309299023691977270692756463012909726305213418176318036767990025344448443390614362903896914016537477781974142450383795904498149194651412195040194704558334955701294222555569182841287710271814428303012723346503867543780255565914515224982031664566166285912187075641740844603223215193302621216143701649073955319626282659157567866098702194135580145326503619697804721996185484583976450849447563961386722546173153327207694950599729340923952960754519336468882728484854005416649646094924357452476967904576707231607462683757228997887935844557586515313151064952212042606344051614381911685206677429055808181872627002298035707315370372117067849189577376863955704483264908190896960096823821863806550520180360095601550995981306199409406636859347273547166582561734770829531607264237368297371873289063787962622368147169205989516920966613354829295665660982022239254741560831125305160527778185287321128845162045017778441989856174743914756557440133968369896181150558095042377591241839224611138322861286653538565499671298104113382375565054494119586885207505877406010945692126277830405351174771069542485590293354653863183078304948744541553257584792195673026031925396460381487467732065595739168558124115702058754881515807210219654328726179163646827728008890114680805518759306326960874803581534311002175965661790804437395387242352980167631014622568149735159804348257814821447185547825384990426410127511275378433433948130782274647704869662398784816611203895407211594738033314931398330347075111028103109953381864684620482495136344820754937909385222845037279773427524136922032320294568908929108214603414854375830247002634189637210722775135825422999767761664960657269081085397905436588805160428691497412168295191904409359661027993917720317042679991229223156025570369323193328382423146136578819277167733470589957458783247833098219422965685717011973011554850060611540782903107051427732804740614412355143198989618294600036458840597109215316384508232924890770717294785632465653844088036257532684543478897859998932479046704577941849194391028339633312285713573196642042215980390191327816508945481323341924518941141803620182937039407624326762581888636657365911101308510869725549152592163836086634824954916998302443770854098136491646981785587922504812569202700720903315067560426764771091791790965045835458816975615526599378477005050970047004748517683630148876011745711553187445861434044450476366627772327165343663439993673734918946531971483494252646305593545669667016303201722514657675403916289962076607766486808310153223435513651597511124168387102779567500072860911235905179273020534607574465193056296514815039081455910764977278220737581572719491201059611543397953054291387741831968070125496273730486817333506529717962086785375019936190551876695325739485524688695047712881824008725876062473960185858555754089581757094707712320087211581541080190092760333264187449308807658403787472148174115328675885931439606326508039386072330014126142117050299823081704150045985212112165459735605388622480532555880798688638463474511161225815528138362961951904691646541787863410313543473599853887920217386688348262849274768626527444575336094020230889979494717284067875044151014586840750121607378130201240903582313895117799837599572524169330208105007144649486901949951287777506249441127604436241697158289744644333123850870692570011867327354257780594009538222464894057941662960053208647594521841431575943778552994142584293976990648842598962695348708225138152219382330250196699344489617624212135640464207498018613399712606177228752399751273677752129056152360596453495020546977207819918180134021993894907280077976875638279644829457692857824601605190848308930014525053387425858053411412556203198946034553885590859563359531928713927283161839626226771288976610861390013744519054038005786787684044389539380983353127828513038429969242724160461688995415040038004879775334250552113716127930912633616782071225737984080815519488375185234895378249214910853932329596459356806804487520213171324919110442838372672612364484240729791078559725379336641276019644832307263869115128493784979625153246088376425558050171791004957696228846673980855235789125987880896841660598815202377024098457588961456103257099992491193999042010951476749718527251080316302398223396714840324917549563079604540469337433693147311637779933285030090186320795743590891741807291263557148036928449873428222032146025013716853693188495319639428020298545090039754291169789633766403800353129296041502978458611417151116574312427794873933674901045800317599750845067073251172354465252944726885871260066106765513209081559485112396203681054750174067305793935401948331874684378936413493744071773043464506861607015279844911250874255709824765932567436405820745024692140583867977681020344185848722181250482783710549271705840638094920330779544172524367404202422866606454058263859015337192249847148121400890435393812578311520346207228663228882582038215272294319280871214124174957487902943029039169126857021524725169503956193680167831611772268750671733057168406943612191574518068370975362301292336463294770620483313584368597704607586713717548065499715523259612957773959289725415986091681007946067806332802490589842174369359194103983315561487145608275505467135344086068647570924560913728777092493359097272360188363936648559106557465885794252266699784341872562339797780933655581924216783562143480297381435496987072900438863566867608812159814421215115419720471315230639836274679759459571471983088039997424810705351577832113041027833064376243499059649440900282375480548404074709538293686303268141852664822440650402689256604429141816353792328667430548494987992251525209813824768681610295976139561059903867796621551998092509566086730346470299709394092949592712675097724856422258695763071539256550412866746890164627880953071122218011007666056760227317218575737438479091106403104677758634289658687981809464594293862604573850381269795947230032624212480345237940372462788626662399004494012297451690364921375623538727041752673100245690672423785027385049327020578777006850686491551488683131948024264558767109286997669272854083519839595726666164901344386353778675661435163860637657777096863892902996702307486674898063779112907616392176878202514265549612905180171138336867084688970332290737836945051169410431246241559740684822951793308059973064394881963129088785193858897789754768079835253934120431485495341922316986678325405138699739461447495770322904063410007271672744274691922938481635559654027263584532207567796795733609905712289335796318231409839765787288433639438686232978959724368955397919010643258417083938557729924948782305030062283856102290537374549789987121128352019507409423417082443918368908103318098772286068969128745933940437011222629663016652382402007260846440682074686280758599459872070579448473557199411336582828322585695082986173577937437878839669839811727696595579863289403936914045849834681609599607962741170619586916193839286485429498789909687081985646007260855838517214559785971609267567550217067881624812574577964664294412471501001200178447133158780077760780756462233843240149642798436908883889055499463456987318998252456270795131995726471574540393550862277719639639896160529371151775589739814924123395470614375094152563022724053172950980746968268531030642809074230589103516905725288881756475391731577500021936588257282063875844950488489044382189740888789915956078411765267833420131694501192578227187326235609064190947639245000443915049800512554124768765287975226074814899595390521220822706452093767657006680162843596481984590847036595124709832924131744306523829389084507989334983952077797304265752959314789041969363373852674720000052025153988716501299450636639911798499852688521916815872520307568312731241536273513536800674015876873349858837161157578589462610141437332705174945552841099471420790588225277718234742735423149770205316176199281374698685319641528048489558190853196281906988051693415801704104994465220483168089055388102812957600270525059988624303624639300441705820823682449951932078359784332493257569169307408848724453809179991417112508713215098354787879340430700460332416114882912855843138556476249952457779404913801428598677782703539398248410943429282094799068826501887855608631160323458667301955988901112850948932013062624936985462771927656603992681876509335763297847905844224920390523698348032737994706430410235286448728514354384969749806786832554208792592778538855064139868937006895775254985264714563488738187866262063093947781579785733078534868638876751299593215334402557015400761970601993554590932406472891745353867948676170205609536813511515931809105300333558052729102436360088037334124714669611610193354048115158462929593469353407157899871604983464538895097973004195334986797624452838851318778567530479605115158103020263214111170487514145991558726900130905025598012341352260626304714054713071781545972314426484551473527314330474567338725127152209503956599319580639582476898317202315186370583463082306046669445079711283098232055741695142178666702548931297109859972486573631947914911532081193380172243356436497184376252716133736352934852694312767280697226496629977119596050871719791940864819600070978795103156138261062943220592525126297391856381481667614525047922215478248855654590979409256486385339541545467461329280289286911629511446967317307968187177747442163787477926461222301223100016880521133679189182119454618171010058191655505281809453608402154330460860358874627198094360632029522990961765414304535129702870731338323127283716244653823148791585603611099752925769749985318228222889899992897703818189503514916553968150375580186362080049594614558601203436383181034541100595177681266910065344610415260259639771152741767853537955507314283623510086631675451052473471591420584425128178849552444001981059413437996421853264779093653992254981166262320522848540312534597292238298395031614539516539469741066418874569155529183459579750780777028167578575689413493772109414127103855818758266042657891643876180874576799733253717474597003500394423547949433683490181918307867469848858810524959937603683843699609213898077151923587940732639937016341585557091427954713719434959687122977261064108855868255986156684695272903010847833449407737379268112409083174867149004002310567794854018722370065143594218627452111358433681423473158118712667322112529722525972529349204326274825015604767579359409662676210641688339880442399204288008012927428085256456103953028160461689647047412938723632198102841208697734002229912559410802084988754328199049729689744526364756525604440713126057842226802146900412324487029888241555071781577695459675053412371975879815381260423201449141766491264952771762473618707491001281514202020030652684010637601383609625485438812522422350801354897127387465161940337833494585416742852691145733412549238975870327722158446676356801429164880417392946223856303566459065261882550012365564510540414761802283153292017110269229540799909018532875977755432507937624950236925517694259429002128932955736304071035339219724510788601291637835455907013420931162069691824727368786369075213781577078183214296457442677069220729105393922348022546918832209704039848566280500744081159590669879805986541568171681265605992508389215797968981948561431881766983235617040053561827108141875898521849591616136292852187959512908218031144726922448926596798070249799924218854221277821966572394553221567236250276542062739324250445639897466012165465226433099672866251703099831808582108867259087257318578617864785098766384835131598484763208018844673273620179230707332879398053550406195745712350534503132638488091591769915583205537870105564136040190109409188384571452064933624800407728929003542964602380819799697718472902819950531613173290459140287173966538596139673023583348586823359165391649069630722866125568449179851012223816560399928776075580212691602987489000342515247844131688400779460027891576839818732425157912898019609705373225689072042063833610663671958552736888179445221611855667581029041903279451087565701832427963875953587952199557954500978284842147857391267588860113366019589767350239093441963208365212557712679096306811098431882936772649288130667937133225006601697672383109765768541999386024586027520671392932426639298598023108829439627086337133183354516727006841387954150055350455435745352762308729238337395864213824482850859006615859756101122440228034600656578256804911226179701800214533158032542235627675927344505476239566720270855677702910133191268992703241783236595354634439139693580919255344182878315922404739859873356262506148990260998900201520507101524647595446698791794763793171607399808059675283726939323234762434871559204374136915603202859052141970044907444542241451262932228640023424999985180879132679499895435443617921012426210647873914793345979188066254278623069274343423998901578836963391016738041267188161742503845470343794496419623695494075699347233782895144902561148181448727081440557116304074194752921033111282273829866437770938211914961826453201179684257913028976934108602110672068999766619508082819436691669935692042562159671918229895928220352683145907556588020905388589475338919213049161781463069733473818313706725118120617456819399821887707027494529691705466904435086913459287824050273230769432224400534214443671786026966001072356821492919810855563731186159402458161231518981999967250356831582083135691508362803824636460716705661920335757398394211566732555810525695852801825843633154177642091348458719910566446248955628705714362833522342644089908931290490287199405279627164110207014308392342842833907094260846486205556769690172808478937750680973420964300236135830838927551230541055685579371725039222129529424933950240398825671408289898017171173487556671560934375983611445249744831954207723426155737993600445860970600399877214109921901234344720945001985846030612272207362539016359003093417701103632422445985634358039524446908673312662249575369492665397245174695694415990704891617793072823327168684469590490309113696692257100763225757947156594044308738606103476889560541409614504881050926835561905408937788755235911529934571086791644931810568588179013392068189835749070615367398885603130756965112081949859103164687203462520083693529989889698845454501324306948964256198207072704595521748375391947749448045593580862252884723757973179322988546849045857329801051127180214879916629861724836168976303970417008890454762589661208124138433321473250652450071268959313331382454934650673444034390992497614375694588175651722244792387501515889872017448645115697611400191455530380632120351589135097031476953541916547371234613430965543251224685000015470097889698879587502866346451901507927602605242075406723286515717690255900536377468083148500795483853584656641198360110297063790447867236697303782583069973798186578446312930493433595915342513779783696809319039322776806476087580247453130726797989818517964243460534806338294392547601394356243442460536646165325737907282377569004435626866049400837552153919627695198417067895375983614573649898183138495039600474685019829158797869323750443256939146022494185537255981225950953516231777850995302433502973300305044513736610381905802858235285690076816622005554829780492674330085171462644536999199767036971719083241689883683861257800711665558435931629537452704832065760975960969430623514671642501297553381329368142503597035451074873941228647391052805646056524163284840942652193124605461019036878101493302010315181934632193192369153809157305731950284832963633923186093664679865894738756101566064284224817743528918190450431261901191295228082398713125467692654390368889893140247942072008061306676870098568388756621393524044452217558146563667135899176102124498534521598016768915459465675111335210740987399232982498934625020918723221380689581532295373891282821367073849991178913596100514393689862173716628440099329645930923463391745097729375928584317472977069273713038161035910376428161344521291252930825116755050791175360203995304539365680990969524510269206004150452601126135370280502034211289769575972864540496807825984254441688632917211216863271456994552421416463359107913997266956454290730083634433664911990229770701989255021095311111374601755899276050445562625884195564290708475634518186308295224069678356205633979538347619012908035348584885731658884343195280223022899124333218983136019279996472069673416082093275841782822841825890049035436048349933152436663229638524719073720650841439148511607706934975789393621448140805455010555835962352808595349711202740802040876226888329079287286355130369959594310346437371265890959167182877963445791439145003180119910716100317508318634908497741675023024734591810616084674626290802865537044687927609393192434284322161295725886707459832690526159530993880070224145192077635362680714207432634243269507481972731607034249354400769304502529569492961114506093482353075372412290583752148280574375734461925494198557022715493804736243350381371001212563729054605846912023493413173224272650291073359280298136014526208831464297844603198283124572731392165898479398421741727917437971941415496365694640568549321640884180228077924143672812074787511391032486512451875515586314481658851304904411346880777608766499446371823432071994435337674339891391129871536821591333709550493942217984953434557438667190436890867433937923439197548103457505872028387733732272713718093122380331072756148160771330135287675765057758166401214554280725560565923716259645062692043700315809148502702658459645819286488199400276447125570639843980147561475611151074966791729675090493427896463320860144448945090862801686640399428537839404258691899178268574610970710844668048890586440288907303416079685065026447474677115872202392158343166564710961676242708449036633057296819553714539791237275817556209205389251302477819039911576726511917635123240064046619137214532439531485611601867697236955378850864769091095984920619080296598058097595447430644561961207438456440245130575009684332849290923562254810353755612218410928553355592434164647297443827555233997700364892537718278315629448839969224966858504102881769508865014002163389488128774208826441064843736863732560055807565705483791407638105506384701224361638748405967635228285620459934995736729100680103750444190329352910246752673163242777026133992642403451846233632894647676338289680648612751084064387009817124204579570626688635340362772461600151635685545639908840591800796020277071214411088267570724792106586161977814744461784799590758059305606474014708464852290963881596880570109500974062231402870931316352503257511014621431215033681494217349534307372459560962148439760845864212689501792034983136596309005107813153510904330942261423796675438278858653248799457378519848551482438692180805176124901889451427004343605909890557854924489239266633353450753566444403667818575956067145537984030593289244212261631696215820448617098462292916530329093449783561958136929282575548393416632285934677933872704222495088262693229796993644768709619622315089904766694894107705953511684827518898789492438194736044732031966642550740659211116221965876606811131285896211058645813550290765171723701471564307856679498587574865449590029530468502792337766457599703213097114155548360994196948638886169520803806691049802948294452070537193427048684101074552011125753618253172331733808636553355485370557803829801403912831033188122243544995804131843093820587775778736331978920228365929045194213657282894006417067122326052283210316078230692850955180742574758959281450796912859904505772091903106626744537350443402306355251029485120004049052168534931713910678705238333129803569504632714046052711160953394247490039912505535834217350893429580343672907270680559318886699060990065432123395093061892537712012486646142644961156126579747544160418981828565928469072815717530154528135917523458274345569709907886869264201344671376317658599970677849655146095774402351131840961697917817122443084798228056968129397820559284412587059250071485892257217200158643024231898724869128324696302031926187920054429990747935338948258788430636552437651820121397528603292612729665150450676004941399887186745787953680021433854330983488949803172877699274084622203063462911998582243266323239188007990699313301252233919878312205043239795591087934189821602507516833217378037732430911702417842685331011372131393122266311840671605055911628904560872731330017141330185028416960174550092160708402088453531636645493274887600635568411889364988034434528045655818350203120774778841354648286524606647953975422594164930480968064233993482093253513725585349079229688341528743390718143767748026729913630576293431734323941036835857386552947171909198519590934328082682367017400659960605105708876752061611260620433121795123151132713168280024257826866693694602381552614593888026158861810753565210354687381070115001242249392577771416512655144233667221356502182356462513641969446922521071087794711862023288481600873513758754027840952841157835222911525450745759465953877463005589787824950865068311210662252030166967477203491507318246156333595105959768324000729611764971820657849849756993309426791524690609877345814698566383758715232422152601319825273743959657840121737903561248896476171987640157508147256347591290392604898359483952898647815832440539255178638259626229305592239091129118562172463640986929181281575305887533680782959210424875825566539204883911222254877001097552047449808193250089242026724151182619819489991964919482674115879719208230905098137351778311676693424598475031300080017786553856503438257923104643706581803898382274738548035989230787865650576905355761507470524825947483042018558662801477401188185476080314457036095241221754165325511897510054722438259487110044394004241660467203061543731283161625451695310063685879622994764187889583443075309952555965684816513501688311359889869384953189903086875666924017687480560280168125883295293022940461525734827313234086774010498660576104330344974740542625394559644664525977100715371260591692917633222701657821000753799040664217786231150656624160060391072673678292728334286332483256596660861382212474031243401380129664352998906426756638198188007480845232322675004997217020083730586812801204825273413331042652114940731772448288530072928131341029106586221279305139089837453202810945280335595572561571206218871255738558390192478379481615225941215566166730960513787095392948496289357908572787707834080717262707152662229451155751047543756335575046969574546380614667795736070307577185683218947543281624309060411045583589510273620185734063054160179093343908921645590738781482142803686465710828535223928955202542481235611752920398846222782424229982615018176698937250978548595893919890444554736356713311542022571504245579933200949626241316045506693757084362188014314936965419768707009333895682620299206587443577247756699241051498408812298566638001159041685056837832278585649603084365905897452825784335028803131081995149804225079184593342910744950240748325402492235882810436551363505084755431679824278724594276728776747445377564717858926560522040588463642435036972697581298805643506932684692346596876498595735571561314100316211936260158010241975990190566065116004064727593891629755445172114908331528712056497227706014848350297853921149979276966475881957027733984685067936556474699950129385924509617232380126986001064915420538928589194177660895852512118370860079851892374315297320456522919164247988776248920485269235846641174636070636775072445365670244966430113835831822685543970306252780180766042872527492087668101382736069260274338760928020574915020997239486206034525786681043615949301084721595543285049479015320731283627626561909102023819956417365207294055729761443689898659590841614125960213570696641371752001838741135206547964360404770436409157218884377662615752701462447856516359696037298164957844521244528815456483365186040154809338123847268637432004088680005372611687100790988560617178660598668607143131762582864272230839083807357737568472189349651317213938605315129948289844681967767497851244865789573355065100761253187678072450846550193895645687017728596851170314884031674171931388390651474876887046954340251711156016087165231843758402854550048587432297066568920269390727289453141934388405832838935984653734753324415974512886531029446543566170571239954051908506955648095368093761280410874917543494979846212891148993251609729056510007832711779956598260851177174506060038686980000045314551134714078829174617592359007594037369643215021744094966669829686625222597889077414064181743526273225980868407484248858972033364075456800287721677231594281141924288029703482674776111679802844291855878458760678491756584975600534403594777042454542536468419286478011492947903608738681627568809226450067597846024855776975645608905123329094721793159093045586720458020346305443508472431060773625774733940778757411927593702984187634763558406242814382567349689504505773329589778073630337431214373298441094415681818634382927710558465270070685248764685926187985678259538329047655273428796744761171244902775352145903023442132757177380392268845381825172990390169106334036558452353792918370829451906028149877128164357730184073254457992797821384616118860840260442573267086762077577281951756146867818152986596935007117715211596987866957961028919892926009938666555071731566765792457411582544689809596808335558301860072086472282553401854863443523881868528662280959194512101167696549425567250462091043014058375040215963838863336141188518802350450504593428873922284945034806152280285342398019742112097248315860034226875186738346916575275583392166247436369809400396778901342982690931858647351870193136391262316357378849040442966781956079300276382636586391139592362368951454194675701031436934427638373397665445604856961014553787677883872803623154332684725578868426296928765949511995637903672617941986710120577039605618304509596817932726436323801541998965287070981739207631036257066188576515646476184605584229671014440590092660131750364354473267136950208897435755614667945798417712206998624531169606592033279051598333241655935389590485263555097306233556033790396530314122342630558983634949950135834920807104234691026826314628575735780772588531395027433114953655921820569032319341295616509917924171777303717597773426304281456776483568697225749586583427964313309279854182752812426468252211056737839266821856616240039158598966609424679183897680078203695162888802113890552256743571632047668926920041536072046262502948034863653695230874595759024362617312174057259513795343446600437829139699600698672798067809225825988877939214497043187794904284873866607056836367772616520504878817590377471442452461979864179593023052381361294573994762643894240412329468312354160753576617778356095759040569970930367274666333514627455651948171141121004459252963633560521450836423393591325823953239433567685142348016685185505148643485632139710904406453234835197112499813530196680775479788173659845265368703678575006217260486310021290072359239070549028147212381856677839285578112580727095699316735539398181959310919260263859097211930431139177599587963565158497578242991868341117109084486866729397720753052406693424066677202287172952882536143477658236535373692453036323575436207084694526228040827929685481663195401930447761929188763499176205742201940403303327961039845632620923040839902931923260315261156933227797257860850880530694156176346769418596100866346844077224537693117395059670408121749685391790139212128211453200167298004874948809033778053365425397113389256379910395468102022135368762156316436194289926779105236624292697365800392333263030955227866799266366869047128961475657574913402513021496135057885358827925987643250260718810886290261453629949182240137388058419185152784144228855438325430557655446728997497990047578419000323274230248169116985582722290770449958546425071304487588533552189209329490082138809481056377782983432048946631447364009106995312798750656815089249413475587987305430605529299686628619416033858154647318829613284913957898135574518214685860026063650782876313215369934939663654836442666227498359610195027965797855460360675443330313291821455767736078991359870305809045422833406006179172994930656133558664120727440882112754051272318841137820286054452309975580590078837990113531729022607028147834707986494086724235932761357514226749245581449301609252385240322976674000845068628595033126926647749008703887289642869493898236254137384637345113255069270976250498145392426372013577302157307858791319121895853921362085881398479224673328316224069145289722517915425923280125765704914422819379647310748615447101528972766103754449554005595248985890171079823045757967929709783621517315296517586275345650427833956292669954652420145468217487203083523785213181588340575989099792069509663371789072483406670863593948808764589731998235761608404072724905747149179917521181276434187292407172911165182144983961394399075548917302288359693216108514674861720989514417632330639206173449405098192034145809792137500808055761720121467087127131464491597241340857741995000975380410331227671373524670969403877946236906275530600779621858904349036355858306465873416795395341772884684428429357346651460064379887313399929775074562508718402267439401025622333285128616607371266987948390994212021552966711027961763760825431475106557044054777859689494151779260235887381792137924101767410436136424488551219094196257252671454473639357321884622200501574784258961128908133101783778791859826221327052545089338304120790831775025691082298625780005151236019550484686891344594886690022128719443140792607177319861072487037913091118527965648406156398935821605788113681666456888615608899464307875530146042700768714000487593718763212522834501056033829622267923714630803860096569193474146852312819886458068395953092487458503491493020072480096268334859321620028032635473033338834737430328687560818977122813681702866175419565150225977557653900271436828577335890720382796866082538693760523170847985823431039908367344299137960043283805225618377617454880407882686521542378877780085834749515722373166301789324865700534829897259630284775600065099114905159404821985624018389142140212696017711643594564436815178095535317390601312768818399331596049199347408613516728816262540931626422645180899899746543104950184213006134669872044310086177989885372886382107946646198895432542245738203659833293572326995625229789502307339700815196688789789026344495438434248359376945102116330623810319144358801083862313213005840479810893315166960347753547107942890104578609446390580416826507652245705456722012321607253262884167423960697396131112481066594925136783736739661152204211354387393005409311737836314730628979320837648627429338200473129888276867049293606614190525500506197569163634696751708842905760124534354155677197224812452660968065706341349383601099535896479780216243241733158107059727733518668086241381993151511513128625331089249024721527828400930209232812605571569110242309573528137107532448061394490260091757516282280002214674666554014538918883898312566897080555118927050494254289316822084529781423820103156925489981175808149032410166048726431646894033402784635617215738260380333659833567217338479816747854406254173408064331819915583857619365924052515631195881256024250974776538713240331071421892258805927875636543033178608969152330934705934857795069575213137359262392977434131245124044736165952007112128587916523136143857838276663638938429180789382675706173750641077854376666573288229726598498554944398572313139801096360653713620274743623231681929830027669507135735122377953479872817359172351897976777175165039994714962066175763118459387202480186266321153876372551390172391110387454269286622662228546557211296580966051438079960169732823429642221329331839515359576250371505677434447586454611735789649139953459876882271123447287208551035748871117270451736922754067944962899522939178461866999043169127651197164054518202573510600074332694866421900395031827911864602011297403143962099468482635096729680242039085660458951960225388490580611432760843573511684443550021468462414204921056401627348136385079593624872013323696284708797141423381520617051722309401431748151029287902531503778883577189809802314321415407933231160599728372485002625445725688296182455577431858668111169559439602413060659776054497550847416334866291688003433424922212780755631096784826929019039285578396485812575330757050575030730164294021649181783000229015345409982569776641076600577046714786834802014562748159603507973415548156739202755989062779738436879361701515927492028797438734839646703740107008756144256977313355855880470384481511421134007369696195270585277172083397052113591990727211281045532601605807724386863471419729215840360006510025614501136169301477311059585579545055985160478785311029429809701931773586472302075944244785988669179212153422397026417532464860911902561614754652845721662758333239256526120393027439337438504945769359891738019214677879151637168384446405616873964093641394317353322141065880547026561686839224754502039691294251107169987759293905268165695304728974420632448547196618040454594765213869656229217104210605914427617296653745685900522243444473905803332401692503589294860675795823674076946552067048956632402329329423454969295810954098347770196384690537812606100331899783968101829439160515966790089656093795810798230966815730892084851387004955474098666339608722440242433336412807498161238067503675611283508229707640785550692196222905005609240044529662009682118424463606469644129401134300338810671428110705527766630468106955470215282945897077991375225166363634414431948991840135058544004459208987681534062878209377795789555579214523173482292631547096753377036006560794006663727036578594753589958254129961414832064680749843958941918718386131716975109905784753377067134600516140166548365130395971818329062755624012030870135516439556248950455255218199425615641225146369086071742796302063272165405584463658095118929178475632489512027535905961840464086233120969772578913022820742424531366019273686123244700047856515395602418639720113224452798644841040721440400011202935842309864109700726120288413553068901782801110947305983022596826094851068794984667949379406256465588935563621866946688878718102685033097601013923813883134716782688129367190524114604539780834269049562032328774173810495003087712390859500101647354134184147294850168491413671472453969085299287338415001832377544974126754779587528033017534893920045737075372444927576908193446416648318182652727661443678004817163096739787293800481392792932234801158092723915803050146018135755644142572587793676054229932762198461324281413775735913526551250020594076169294417237243886137573073228212590705557729100949810597279356546736895202932751169228479766002508319704373041037570840280790313994630292360704592717949280731747805697990864875244057198742806220410895970574851696654957456117748796656036994458995214938176979393198033728705097191471526736919776044413430722566348248405626964703571998936366214478889813037842109516823798455013459842461587323507606084359653186751629460946605288498453872837347117241074177506123435830834281882299313450871444332012649416733139371318833817358353572533879866946626445920779669312676754186855298928828572671929593355464061106447149091346691542578567637241230155222430618246227009668021233434568952733503873548828902682371863026952952212467893486388026354967750700831609036030924035733272782310051843857074875943782181584122172039282565606139299175472609640047595941064999343412874389368182554738770869516242555690384013189840431741515375016837867542789021326949699537718854377515649561339019779209320910688573939606356504249910315224855844928409135947079547656322529367290588427901141828180195496417669368917729280418293097730113374302304142283438107537248785287181667131139581510387376288016107324063799949011818564593803883904742031919976742808558151927870831893968840580676246355786702293490056093119001973608621270976223841458332434332893954589961024770763719336593798171932048381265101565304901809258509947613668268706099620950863271283668500048552447569112872198423515453395743945286964553319288576290318638273544316765812516224811832843474430667375635299878588430074678128959388668487078731741987239603947749354527945465679765357110468164401733502166925499020251609260317189872332682323798997520635870873026368181458356216406913717469281316933850416153141455133861945257599653791225632637067737161938740188794716932839108961946199509890449624794399024800347292902655464231319759365543393616275326691049040796912845248136589235748193860046943371806874615264611963672892435942307721609243935640115261320982856316894545160383203596168846008019498029604429480648657740446118046623902199757748410437696779480558682167116872879188537417141191692756858530408913479534003090396665488966650748175614950875857878857125006631138306364479182280330610690546792267787753162408647342948562117649825644116357102329466841337029948734752702599652032186467222340684546432844108979782577188119573836839739246834511276102726856558306618063551421671753634260561848165218539807625144208281269510956314499222326125058268563823034990222251544134186195435019413043171687223251296319808141605276446207423153394981721115164448726665320765974604268298532458378345839615185940542446547433360635434773268836112958526114030901225110177547201154900712652072654791422867597240867484738067306363554958702196743533051337147284717430143206711167604712828436439632579859714497859839312589883061657833129861298147951290213544316239474121517311200633382967297333789026756390898836520630238845509440328002096222641452408696243864866079793286353709297605915321200371568336734220551318537565037066243094015336598338126264208670277698594418401710030080377139516051900284252809864234300561226694304440336916262411550834044831870697895382287290691127271245741988625474217193955006824498304354020366180805568603323089139478576426819736356347619147851413529032955663430355875184936675167736815634694370884705158279774552764298235046304316899200566880749368494812785177360511906185326381674361246470745358915592471298889032282870203886573497510180534811101296555583985619006794460124199117168612279659219383981781517398367948273435835813641474982698367065043510028909759946734273314317734242234973293640420874869103055207904907169084701294488592390524334076673266181945852031729459043805536891259576406365938276187422272821655173510889291217407966962371133631925763630515111269747550993714862781099016803924685906535622061394127787815889713100733341073340402939244479734658852685281581914390891855392123441769181015594015305968496599400906681201948252369181627688865796104944576025137757995916652031393795769742443602879681066279971876188023890816812967938855841802190072528940145096942080180414137790461033092921741938106581280653333558873387182526900231644926318074504744424021706951217622972112334242051420065670964429623948392104527333877185291875514868741934334772398552746169152008091939627768329755638675730141662824748790469148830035814989752844596182678995901885405759381136975034272787796847461087877841477039238154487490328809118309108084537380612780670189684889432732453355177992205984047296404203529314783241054733274565321514149750576394250688744630365219453152019890829101218882212896493267407180858240052497280672962845475183526985249800591868605842114489279076280798556672170861093695914463818091469611678488859106132677357966884674292353280967140610148219161127261600359459268028673853291313029060550675154839111086107397701013141959524318124888037185104798559384185252103799279508228875600609993967930004999665861296122857052405174008097130314519654142863798164340251215340477330703036152786480500062836892844917599091455687068643556186504727235772153781749098273543065536881040966794053847881377054481043209854611070517110246619499231806010302800045922280787774575679065534442228035190764027835656475396938251309687623259978172919764760368228804621500529727731174369826362276093764883310344140850152538637567907893582570519202150029350101488051195848990784176475191357694425914374649987505842218319884452204054887453514239549624210626755958334685465566964089154633065378618838697802412583185858703344506499299250052755899071143710852617156192168278518843406123499762175366057583397617525097549365643775541053039249267175116537863815446578393080831627204576365101471332672597460561788999480519292925391062197691639680035291601179099930253228891996166224750804234533764608063907916783825794524094848144901925693562507588481185597139634523548807378813529596502538704309074818380561110961277551380577209713273046283352100659358147228392200236260025084474624765329843626607599188415632342708094766080261736094812587049642726844813270471556592055485016593940594432495311697996664715388064068367206520121912114081366352664773236597431892199788720762559251278145757570590360826688936397212113367334071769378229877682383636255875207419410062843863942847527384845885919801070437867186437576792562458479686235935537411407846976140926888903002410600941032364644584858538625053239769229829886161572317915235810247225696213761460742412729324959533969086275003788112422801212813513919564760108729646790969734916279764735750686601797062781531719778419014363609313037004159042425785409925767608078159915339388309505667599415142491629153426607604307745313358148557372099412138156464366948474041062516301461804604116392634934028130839531007007311933620031102603030750461659041996056354920165097808007529133566028816492616300952922087026685408919050331706399318154011236744149587517479843435683979233645013437177998175951763106117894427125386721070055078145498010013218682504615629290580219042550927779906096215006755943859217349605784991029648163316274420435742950348500847506270033438326918582715082621784973678957116808907037511779918485271550347022061369949349849227424486808425800809384122049245594071821913123634112131228679339002296217735009293852712953901193940275236515785428647494834367508882215114920837567022441996749605640051664296650932489556218122522689346214914870164744980988039750640594288684825273317936002804605838287845594791536888034678455903582451398076596507734596698373883324940206030564340388085940419773175687807218970149812228598550650232187464061711174543208649173633495481437908867755449425220899196394959671587227238088884153053186819391230113473984748428951770395064446611816870011870340240875977102158118839097602868709384631080850909284498613947841397905846422683262668588002939719402864742845572355738252506953796411844506562147376818078934795849885451265434096460776728008541440199339608524812301156925844553724670891928488856847051150265403657731878774352503838727100461401156172338826303376406749802743578436168317238056752150196571177686059790945969515301946910087342268652509844107403649223964748735803629796143017273954010280249451647999860415264560760046120107326685588054082594346614124724439811432145692080047691101478635316362317310925217654494431048900657984450371947051631750914947367105871666551342787009937318907064596400900607005607014244814449339576133329986081924683929476615928612121534471800947889135544216957111468608757808655681477905446598897483309980977502239225538049872692804146233456957406445668024032152008426663744994981144583355400235066126051743791428632687558791605102364593311194663573618180262207689155725585157233040387989579883313214026652917799080510759520636997038642304128034473944951099229936467241238302773747335435339220998368096242490574728239689760184375440513763524292115375015339142761531499091035143876474525720997386525785456194809492294155965126680964104713166837590389797936416147527423880140341752239870810575975905108825178078152288541368954954227493753871092720262643176092722006425594741811980968348047671726389115665590780468005771562632061431060550318123432954575359422896044444123891817386423544663627236350029454912625725735543053497632478862832807657218159094390919150458151750745751066929361556458012441707714591119175887755754373414735320159076482185710724271445018806045052505148300683171745495816874502269368031444098821966251388447129490836276282754849643112249379767159915203622734476095605890909006441738448633487867572247325156769129391277956542895417270008318350279606691138861502807602551369636399336913300437799931659664043212345238322583264778497267336658601632913925565514909807433384689481519774779406467752491106301852441320518895257226897558577030849097214596793456760331428603204208290235017881058230357052705250322782130517685538883399613426712206103645137255002481409529097600486585212484454232143379282718393423638770215351340027924420514019408661434606906163461559386901541796989217257173166851132536903749322623024192748420687649398178354280401237704908331393335501456004104130676030106006381731865188329600745059888247045682333895322262303278819051968866509789497392265944808638267878781205664083709359673849124474082640888282859876456757587254662747399112012827482725615688637982104548027194452955952588796780525532950750837879804192551821849304302755041840862952296866482790762914035769845120338752876921060635558142560582972690502282447259649665769730013263450895212075308354338007048350142478130797543225181978970733266946151858948918723691207433720860981428789718238422137244658683243343189510619173918311631981453704729641016741712887042368786676883463684315755052941481570259116448037797192054281404107622696905052719559562880429536820689612490251494252580787406371907089516655343139723204739189024684524612980257173585787962555698112023269587431933597097214876103524048859720410443142732708914789543660447092553344274599174791509896101908251781096225123665650548559778183300561000841853743273499369835595343513878619989355860615394011143005392606841854724291548509401250706578654295015837720778218039176227187301287290323162391866366967145909568300317999883234582060210448639623947741766551888714825369776507800603274238180794957666305831102229159280121313758116417366227386835420073539399958576599506164696299658530065177104334091568804723774929928777550824541118217578938234606189480602373019153326838889608091900351054666620724494813918115774216007561148536799754249950352433924768838165986923258298710165197109420270669587728919313586914006602058977534497416301470599356033625105560620576846740567799078574877322301276728388701182315016702976907695864201728769751768706473072241751044552270779807328479227413670116271493908848347106305886373986416499069613646503395648266660957974224061209417246000274018723097766306860713621598066273504022342790101182353968697454005464477946909638618375238098382304854824589268046122424008496767872053790605572368983773706332224521947510217163941902090437555439798167417809805901870903144819419067087975857215888572494146060043066851224349378691157443571383018921057795801439982393705921669029148793087518184366455957532674887687872540652698287710228148292821595526567920036113042930845548601496469098527981542708570016950189003532805440954019390687593736531037951452942790059573792107588181681212505275729530224149025137199757728954776029960121729185381239402495509214222389801192615433927018040628968202690054054010244245028412330073434942902167421685641374732503651169311003920647189265198657754307621564289007205562610720387269273765310340442420944883278816759931853371371359691438781256025333768810091414773710552100173699755475318628898668798956739006933812922724135364327269720030405789152642626066554009172079541059770886701341800018657569926526036238367828195199114115016408846309464785881881040172870614316381748831420103157129751985022024540978607035838601523850939887060212441195243282961248262060566109252184908970874298126605954611584913689422438462892756850969673417739796800879886455677378555167530606632888871390441847573367261543780649038543941456199056289704043658984202675143474237557261295409014868224306845414713965330901254216526138038896323439044522509379961903004769350728260603422883598331892567376848176689130154685326813560018440754368301323737901126261233699577097952761075583795247114876297071987972692276721275407756119080230201227837425424717870346286813876155325326869813433862541940263808081621471843365679504017908714619914245003239312236457130135760396134228810157675616387765729668862038724226716187764524943378955459779302220005909810446161154569558895275829202456542959771507951598712799044233265211609444251877626834168458721799207077297783000558771208979977851412837378945786883697523167891844249310184478094052045521325133639058070719734499774292364837700209030793565162511278997669579682586071294427749050425337488382942725860090858583773044340456613541931206578062680048831328921614209658342759691844802877169135595931962071703701603897943549919340140115976782591931864008420138073225217963450638666147308117389720393022711263016904443997789846007127436763522645487295123302698878506347737793853583041479137417388457798807882939289616987769349231456515411439149416929955022942408470998949735819495976977308233960156083390384971486491069177237031128829803418485835549099278940439148574983258377343774875951914338480897068318625046220316281828449446117226518163509211768261014851764494743546341097822721776442350468870720358634881343744652999633104723464391779279030723834574002931476425200948260433017996011734418082382681093139843284903170468343459522595194179722177240267406336972073777765977447836288791006670183251920261738018999342824535110885523247660362867268202188450916153399430989273226015258692013167001088083407829500096623381520801383434644014606000299742044331127391946730691527410575785756515169014518152817886076953479728591843812210676905996087977197456833742628755090494326071457296685981858100831548463057143479918360679862877513527608258094895772567599665591857227971116438627672825197299720822371963771886596393758474832161210442593411194589093958739321276063623990794843078913933383254656925715898626480326971745452720151307916362052928625288582031641387136823892187037246691944631478117571606846388535202583297076066875525413184141804033731347451354981800379559001629609706641663088207375478231493208443154280502152892271067730378934367293072307247422675860237073646592103755946775835854804146889744996081572875692635205352516230349281297707592443438008179809075995837723400180202191159363642478054839467230111559942533865834238413364938820655529390625193683633378992810062851026073065397174382508074687766950945607647115797862166971428702621063103818360500392548358280466855477024685699196123636930841905305045150017643965078783773183074611208748002588702390302756215475494700534280565620361996176473834648005315039533169274220025461592681019775596803814722920809136059478231311697903655025724181068351454218093505238210902243917194437975928599818658497786642062853923323083509171601826184611173061260594594117618357278147543415783400862398684940122158618027189528496403379140419083876721806972291828988008151473186884097821701089581062954432413967801747305677193518627543941285822421020732146795225490051617869632089527236902321761665413982609924387753452089348420474102815920549646051269557966381595705442946375161854156096140717502842967128387919964599247414866684259323537819979026388576679323614924805550977280306165594136629858699912192301710508158512001183749154095242071759857550889905919489330586387735447341040748877080596089704032477007163810590080130187485626019177790269013025875788591510797155709046052288601394277142300845643911502065989695184347500651071987865369293914364965575066756856401552207218049039742291040557757165307223668661037744013306933237042184207194481880872304463456871520963958995382821543117622582997210982865710001072948957769770534724312822264642676009724501326513257653484134216305664859178701783461041606040911228103128620856598355276492594980471122360444335063592524312076274997666066381508997438600177813727839011018881326904313779080504425933267117596275315703516921683189403862037283689439482191461689872546338771586802120785444934347776029230009324064079065499051458444242134454655781629365274270520656674551502404002108186936598998600114733744186446387056936596328958787060582283542805204968017547227274453890092781252836402220303299960451014107280071808111109947541431747067757735976797907633525528799254530062075237474877298051325842878202055412304286052888400632003580553792655312001493552776889160649992859881747114315760693680586886285672627431757411579585434557946170649518922673639364700036034157450502525840836817069292525915897383467333063229581035363798556079610607318153857045437412809940095413660533874848855208587100679828403889210924229583949272410454753920823704990271913485720955990222554533682359656530388575272114415247293660316144418707866080900323146813872520025673168363476224664810898627946884286711123224896057306739297132817529820603237088374195236024023983940605557008466487437199148487552747503422018948008306226270076048859034419479042049691735091654258326190134150170604382735242322617589350210814192502802757641539121753118499675862525976153187731340638997551156878806596185448915273590787996651690230692758349400463812265435112415452383254993277015807383522792408774638599413174537686460528678178274044637561019329062416969716790631753458786988028521097316291866687200272877840420612730034917184097187591976847239250314811333546088388302798407055300072456469277740610223188091619327251528392595453729649309199111649890868180112488937696536340156537536763225971303705566717236789289372199868804644989513704201778595919042332563480757777098900359381476855178157933006092993113904341800390087103781399164430160284730830825359928735701480540626761372529444022635905860157871592854547618140154884437588966698890972345843226768360116028267598258766552345022480049251807621234619797217311975632366181699178258784289483121765695288503050124052350088695483087240616037889397403985648671930126385126246232507362476474810761373008763531848000078903616441730353905583490842720863797342648820197231326070573962721788549762221693740867717829904748693551973509605464642369993467045256743692528136685739222435608446659087443906845544723062160974479733283699911599784070676588687559214599206794055089534741329744551707193696158804016264725692951828647472599767004511248254617711960666325206237630004515370985094009442957998202647898117012908263692042130808975380952112231310401185610002059564585041600547125283437893027229327161843655226159894134049533299415016453868742409804689941399937378877282630827563895139345806240385148469760129429975778654906243152265725646737019822814166959001884495199453339216974721488910623375726381166369870113544762026157180848538891487263401049653704666576652761857759344429805227047975052687774004371351668144557160150364419985286502943572982325838943717222385537601598474900498243424251213187356252004574062971241766260006639116360487253285234898997088806288834824268706972669567848888133284633126960166551295073290664387417786583163368298374031402140080359004867071960094221017698443236550451123613763460466368397933321372313713145596995368673950899397586354217421796214528152217015192228899958201319493698629155808712248618610090387729229029192793852184319775308297190082906212343272089696591179469443619696562120801031702524606459131973990515087310625300665773577599516935759357237011538642242624016246400082887646390437274370809794301368490432133354520777830436994029133115850762754129463982685791055465032800179583205030859329684989636675118199430697577409650632894593340000563751312445245619055210585128335930352761764847761005596539430233681438624538106807773819070110317205754392094080031650685898056582757740638374000733181263995117697794933319080595186342073965579038255872847951353708317737335981386091227925087494735063750523204441922913770352065146985726365593825789491650572529291339754676539615408654996915072132333185718297201475812828561159805732188819533265557676408326091984358406564562412911980970506627797094557886960820819369666028960575435522851928368049421005133889144896400284571102055505211488959752722360504582460098930325564627525306189865856705829495246276035288092162754834368413704452269783027184416920329822073177659168463575298122195092022264338069100559955410669782787790763746013430058519975769344330947200439201781613620543435957000612742292582510910320421790921221572662024289372085302242817099975205942183924184266455029688363944118789920025332996251094455544330698997802314609051503091449541544132884960139422035332387545521656855583504034359933235824506073994206225311060928968381350459624516793845973411152013148868653820037945452061972352477221657585126413170718930320909630204887805543921845146968493582810149515121025819090742444748229230123729841220834933933567139090133057677726869293091014100279904903255042748077475453167440212211513879064476929302766672106439215679136670142519352919750848195770403343160596180475067592438066674547757903656563847817648524480389667920119252557188200143743948716737282679984648910102152291143109739325137477552899009225550072440322076973353317154283569012714640617719207907271169675065658460106398780627678797822747050391423839894930125831714353839489145235749462162978320106427820693534304218353673257344477497607053467983481016777178451904853961610965432295133101773991591644785164142559711262442931380890011058949664410649631107330345237673652885388396193360657215346333902687329864798114712741456373684657846615464847402268655462767770104512367876360486523838815389729402394339377859417848442570619826894238402639858723011726123480222600583260924379203695845556559539928510460392862508106833210333221277516269192762024380098800038299422064073860499857075875915671116664208080533583492650445220074334041901904867206000068848909677226756499248788616993860779763554903358597546251503945975564234381458640396576204414946951725431434589405218420687989308419360664316794014767302099573595552689407073208766324215809718525600970829741189567652481586685090111999957307960802657324312764989840867431161706247910442771491760288740144487715877763586195881009792130131713836345739378310986407858320876683239853074032138698793962009421530416079019669281385320697894581700521128244726877097136458636323524888140156698076329876452705822304662554690203968927040491057350419902763379794185207890687642360284607639868704619369698010705233677082507015609965552865467106855700010566400952202029309962099372529862099245295660030563085761316787566672999465988496737121234116245579536478696302174954249899060257391192836161081065398901366952605351042781689627349011576318622963501744288841078851940276991021935316607697616683560710574092403883232891472729108533590269077828074763936468647409657211895916513698294815322143946070946020007700073825680383837713135221943541534169266114713836966871602805235019271204797405804132176276271353468107972173757582649289427063922461475517035253716517815565093014581904345512580755911645462701323835684814813504851430168268897779513669454561918171219044446976849800066628322957341696120002479970277421936499804889173846165198102283979227071818692571662460795218592938888604684550322228685342125554851063668019081498865219455380703085962018414708944102491081749347982089468036004939461800341810493098793458803484970451352206524037649768961204049188683162800303343274158948077459640709808041315056558864579622924030374800550994201925228471670756983252893729989405853442625821363499566914111285837963493256308367117563860454908638560021315250358228838152430340957174394993046730016615372042233143128731357915527308680757858306608799651598283196289996994463076943606350958440044794747490848361869303388433154832967386687572142012420017901633240445529572592765495474028053804352362949147130173106640057242858261608737576914993595010491880270548368345565308752403484077343491525432509567132047195325079486619895127911551562755447303485518854164329911156877369629045079514542097457847922172358064986176975688858235123298101581716013816693578938057831885310295211865418050104623142596094183306270333893341989666939970986667839942393729266060195065380856464466503702345164650554676333601854894841363369947704059958285914661417185985620867278917405323020324266299108142271924258651712825690757283812874664676117914730627341928468596103373880436544892416217981466756851566309515233567466110686537739420817133713253325452606302020347700563995881699993730081311122255982079566008663380896360696604604952705286964516160224101634355791883965755923690606096909270047185954462476430684084032068871424993644706509675538883099380239223184413095467424568551662491164331583302305494463217248799369006087067238616855860463546176311717193661799841730960057581486047839494415893233163809288447464153234103780807740089526618821209199075193789668656640955789224384886266413314340758691294249759864866866402225692203444369442601167311126315645062229563550245788995221791308715659013308825570125835099911159442492367060885220758517073644792538490043478691940426235158062438153979860543476550808971463781449356662659775514702427888694475301784141242819876102578854351987097500506511542427405213704622786824906706047595164177564814695817682318852253744110497401790740307012564096623340474556971270028065391039874211670801635768400584648778515582875651080923848174041295182238478325871523943850645555269089027220493721755700462576330073509311680932263341750442241468199281395262765349685856024231052875129351764379942210427707390451385693328397706845114037345447563607568282675052652556362495167614994068865220050562840573971446352278153934079821792030487587654264384251695152755158520588361072934120227492918354174871628391036397990684268542522962908671577550646905525404447562582554094868671800940937747114420918276018358048468426092708220757015787203012905680833107592660582111063087765361775336047744224196526231810445973624909446793895126775159711004286033430780843647936381865254417089612875527894638737659102096043493188178177844346207919807338703861182942944520474537782454320024927420292642482772392985418748305513391963770646289345482727853337813259679034345067595878048102350688724675258485795759180401870880461447924323557816498455592370131969829372594056437373389292831154684234882408328998317823572601106459681116999388444177278089897926587089025953347255074839582032377655844767716987084122891717866912996376256983564016291487788514236216166830490842233879159017336803507499870101775149908404812307618180847711508668636361172787509368112749011675449539859212624705607115345827598141268420754721029979998024921088868329872738630425875920933270128490767247786942984249605117730400864841414864614982227211705642519014651237142414893515610531225353714905842639598534347740656423711556273842722813308970179935709455352306520857612375992954117609639862696181323697309547997643392816406912531688349812020938569658213970650513524242309171095352067350212299113453088043717932603351929768780348619837026449924358279941764582249442917332974424999433854825758310191830144352436566864562923336901813125036879987269572474499523835856020514890799505763532102987708956040940068083003305556594290623861048342583893238121340828454683434966307678721275892067152561763526697856335905266332342973271083799663466298338138218198131027639525855772042108323332947575163586579746327904110751256867572784020380064709244382178097451913342281020202998972381698683705209604131281372566737949160523688835956635343557471767472660076972700383929411846980299561200025080195758109524984149635262393636544552362918740565519849202790044538750347376487860412933179988253618768056479901468257986696454104508056500723086314855246657279666283328979730837112124197985137048519509216124500509371549857051956624195650264908721325592071240449480074386921340115524899191884061579621772154579183252838441705486377286143119701883956132223873061012325667767389905593836788776254617782973195257632949326556428569879269757060375953897836627658939463826584749894492091176825995775562138830679080561155906734654877840305684954945593763973432634249160626654632355948050022741219317636840125887681206996916127189832278640098565351390692092573026789812697465618148699612946981620858795223892863042057178975269095751133095909268204067134490895893966925329627644385255435277594573237090733428535516824071517540893504824074192646110126439089161208276214327763060990312673903618163988202691024311693215474222177806357250801561728570466973224317241365301438911780594994049321030742082449030803366227373798906663125719574831530631760479709692849514347079474823655529004724933651797054417916691928282810657820499317875572711066438755424314258183806375895512875881614876657796374205344542343496268273255091273482554273647819404705308883107425096001349141818397244247951407830338415701020041432090933517450710810164790762244509135577615891066075165068980966153674874610797973428676742086010481926342079677002600685455835134773831241320743246698273393855129453234403570454179913585520623676673185749812857529049232326727816869163632825594866917139750694604404651188330110258098223148411993674984175986103720168619856947604650924351305633389197134302524689055532941838614819457036379582485425668406024351187647149623062656645177558359943543846486315700992101103233637069112258289384580665465958747631917914970330090781415532346829140885456268035735955270252306005513937898878260542180432922444538570425371952173739177300510735212504887141635670949528879562486735695168037304895224334046932142423286087206629622918847957321073455725229177994074670857449322560509073105066155473976743467424405954724199260447443740843674672017003226117291363143720689657361465121790761055170134827653769408908915275032800243734795888217047107315300607244540616326194700278728313021990115950399481779587163242636840395732394477219523468302618298004345637315230118257563255206102333015530012175233918973012932636801024484181316245069278635311547918155285167444014213148161362116702026829517652582636003603046801534313340275303458504879899429450345686571755557319852854557508935651720109176296243717962080539056686083285274129228278192999238854233554430155816236673684997281629106662986917764254930999510000151777167348752196142487724440943363072924295871041345222805262115861579338719609640324726585224473667713187895416967776078404999008771651619591402879134746765315059798973494429132700415425328383695278112876391258756185182210368915094100107552712288477175042831900387414385565115908391287060889482967347674069978561777112705212643132944357205315647961636848219638338726818002410040562456317750212899313281769425496243473546997086724445576614742764916748824229590937262000561763032657329718656458090451703508937462955371677153353333210697503273570358927669736231022275481895134766196232635250268746186078362582626484940236957400250191652963131404882161247926248689853743913404617386890564631749257425310404581128759301435264870673883720085744678159803962135544512973291990447098834233083454169441048083061892004870703715320924473495163751969704672824456648410077094261351526542102293932400723691162928323635598909992986977612339424119226081610996246374776767700564156259055359628592098469409267633195823723715799314523358300699588470143392117871264120537867842675633599588433872630455446582363437357689542730570996693839902323465719221154001630579890085345521848546798427499157810768531045605128229870802662893002744563705861321886376498915683067925679131038747611411784617019867216695415939845813074313519444435677794256830910602173630781794267606299934158589414413012453335256474527736144833737166926934182090814378613333735788039112120563109097856106299554616269482379218885004219455176247800749390782057339463588979567445923037243433574313024638358325233425123198077877022894347289883338861469538065951569862411950055183172456800305899207056686162225344563772629429214881063579488310829202992778983648103661878383434652482625901049051913644137678690759897122799728092659217196219108864370020195913057957672316087097789132540216231258474922137111342871732939374833456432410667406736069201453909185709684108534184203061570320798220784438137316305722258029178854654402017779099314252977052823802341920091528918180503465034361074023481065192469687748693974105437820220964944387098271057587322261747543271364085214641240553820027531018489287115201834448895471323390566000107597772980369890204880901156241542070983111606894338390813178933873587196972762805318824009378855008523479089532545673520796059399972547300600733412711635912537235341939335164096862813518137958738200383901597126308036556931122000032904225446147788384662654564948953457385706566879780681879520013032702096579149749449927204201825892887219932399903192314247116442955796334733288903894072501337474072493433124684002654522875223150504719361972619439357750930700830811895538120382775827118083423126529264166459292859509190416676934369392905972858895233646955120385597868585284945261552138117896237567911983183916931204300371079783660807462412938442640247910114443518779840203991327652075299100042775715663895290740637144343630805672435946881400401090947901280925068450523731707570081998898800417506654703692598931151067500305552227001340865344933894107309495527639615735257452886784421850379706448040988881505183854297146249426632439693564971798831513734244523366646393292029149574742939377468297286833606073716489702778608021661102074733727398825307663217353653245415472299708261239482684527828777744485953814117062995439609998613408861447717721694063651625856121926962530049786488868341376600995766907136944168224766868083675979484084389733650510661569470419391938749758935605359190156309241511241625842770591350780711677577305477160689713201770660666653796401435007291108409197034784889114079436499816458760223087274317682905693894055789408449386741549222312166680115995971815619950023405249581139556761121560726227362902212453244263439988932913621762113586566446085615674430481147358181212467749535191847626227496205365921904215737652628654938659949709103722470929322364798610552015056152304614880150406518915340759880938317190191364132959137548156357887514751746655854988460394604517437227185138263457839997171268392965445871822377543993727992389000945170753377085453925670835298104845215150490609925533857344558165743311193187660946643069540818156957593892046247725362887238694013684445757866887556890885576725837905508465583654133457703816362388033324686276496277163670820047082973704216119125251626875339240472489054849784801801318944996489713953879441335125341952548170080989371115762289827850106417321484805429375480616798676564906781763788464452829561802301047745836033701345084433381472842870390077264177053529511341435379585184669627051743815187613168418249981115246217682383047597857361046084331974745762131178068627433554135114309447003256406028245298787625995112788308937434766255532294709149525692444255041913568534821699648456593705297800897856062625189615545264357795620664629177651440804139369799869265086565011870872712657915548023801917666818153089206027883452112538343041916706071293085564336263565959637889013607001226731560513771035913139100819974013866928089917729167784500719491297597632537571917235721563606232213902995439180043557907960790257825363188404313438170494142010448098766890867161540221717144982158115826142876796523641685884815271664920544951124280478428273838976349665212202272584865948947158005631129176912968247101537930562550337824878342483312104042535189149358633952053173641994350682369816935526842683481227928855964862048964723152291039064596392060566180624676056658267910348473868987413081133934126061393753557655931787250243381049469321968524940584642060299239072453791805354448862577133332244487963698372030680748010580438966426100568713322456569562606903822211778557421074346844300495266968537819635314242567475052704581910919586233785345704057992082596496188300494188369733741551924669571677202141347491903942247182920943977265000653943993565897195903722339216003653806176377859594681756446226400156116611363172950923731962471498614294499345293251712789366277608987844531648922702698436397288473154803697801906072794297784311694280246990439923062037575426972872882133090475298587973623640236313931123021550305110642723443820419582049393179219737361627676000469708018079542651652800738791633448190327977085049855745556477250307439076232261410129590783247392351349491062362344105055276640988740335105979144592018976136882252729939631872018811389886458325569390044888347470167757481737236616791189472156618375945841999239877428453270784458171752673903807781235696521699353393175504742065457286623529208248279143132790124877819400810980126445430141198920958058392011017755753626962869040619532955081830231277469540605736646450812394477548016842548507694364568268017099677750282049202382407449339214745957422437120856101327749609703829182033854638453937667380277187225497101799747835189095204068111634407459725280357004813427568218800824554608769956849211266924109291522852644233508452066312346301139842122589072734505206250550499354593342078479646133712009528288643816483596071593553732003998821856741274587637480890412913394187454364857739950615242748056995094971727594262984332951581005346538402983249702719118292472603108889275581370683574212925326541885955814993788652818840227879600735915212438890407001607490785054735173089852404737607943143081894042826252304810311838099086326690275344348190415645066910086034447733639573194061494311770602553872000255495849412700536291329980653774840366641145498510360172980415016927713840136935661323448644008828980652571352697087040099432040955732404225538044979554110883938026602067711334647205914466914814848876925795236652803198637587632199262759372805630466361513364027265565127045955478759416137179581472402802771023638934048867665335178671527758237711958901238261842295691622346860273813993912893158853737444228144106090394349474469888079597567709712008200398037263259191213393534386118411853918187022485078765307522939932659516993080985802857452151441070445349823748186704067125449919539569505083510532837773150186658955146070059987792156957483092970735287818858743633618111972644479761997908573049920004001167011495155890890770429856785073512766591490444324988340898359962481057948948741725797841584149174751196801232063572808930823692837605735787134804247383720627432996375020428570980898426687521427698906903545575697294653881211122893501952566829489064903593307196586410054577412087537233601884833613749984894952340455658201860693243191680605821013078529729732602891500534253781346410105367233039722918476487323793988935055575663578874557176423593145840176759324249622144379615833520931760460996855619776367486306631254525358598429519123566072206952268734983689892983246458497548784274734430725760782257384796331674468615496893441170744281312468814180770857006449469761820626264178610325366965914728073686617501401344939124605768698370828341929819829770531972492259055171016929608286838140361042302614787643682604268527092916332159251718580465920453614298431768328636597793513906044791479378049512642225053840948839331779551665644872853008340804459921962137941295477293147778384746298525134342165425939191937431119071536672374673684738371317949982898157440693962254612839085398446051911967798733435099976993730288808027477629351260754699873638541060420665643752091476282681616646307470516722814498883644532254506568802797198385862547531760548651265743429235879469316833831194397935633468021764730339825119645353574025212036679034554129533823603290066015680446947998447062800208588092515825541556914049918810791201737083363125114372774748606108900234665061794418579141312958705717428366376313006893978031028257280385702795074497402768041641727911287794090385027320520713402521702804988610152152346617127873968084079173140973877817047297476229014860015774566309912589553745988481932661021683536821787610362685355457322964697967949320882693808609819522303866174668643620567104536623498023449403780757062575235337429828980111093546111814216278143302483695416133600433342384200743299714765743642878597449993730382877600545906798708871387060866084098520844960465639704699568345472852032496554464800080515081621417269564814343954380538753355775469632989924907057128510208582811599772781949462614739991352329017561387906835230043035931072461682354242007728185491778504241479749858594925291845268082874719831812551100408756955488405830297299111652936450554064400283294564624424904270250655642661535708942322668261891192110174516103479841994416487154961993372678081018491241238790389627201091759099140816873333661963885207074460989506750248057947762292337561741292463217282033561457939402121634292190754377727174360534042155290894247861686836170481230182578530384190279373751642600821773354265268612882124835284346967339627433505951473601670204861441320265053963609265865311478715797517573785029032565676702061999258173905912311530703155489447520497553332288131042904558847241755111998892309994630450876618421461892181603692351843496709402266254051112350674551475211803365541525819205326208140855384623118547449066736914603600797381340069777344679251176259011268588736463456807067438836082216329510089524675651213349922479738925620581100918078014736416060008012408167530408137553580663056528222326508336956399200570066646721742167439433609500184268194340388733701312970096608355759485997440241843831047729396312038971170891893078248562901662826757944560809791176635707526929634453961530575731627913504622671911751230783501577112539883015016837605416112201647402933076004183577271518214539233474503222391978303284959788814713189177690847422479304423180258017736727540313797332791980628413993017330802106525947669593950890238029752529437145398552482194893814272367904420166212781776484639657074610613753234321162786936191288085598584486341022374193070056445926873273335291424591186973787625918712613354241380744372884338468440765124992322763087958385226741132487993766713709541273543053356626343373062361672476246263706749213372235174882354683739406927390835776963864495062789272565710051173973096474659246616792029832610789594019806520694528567574032042883238800638995079609027932229224017071712918234443917391850630646994119425369704744713217524335487532742811633754796755239777011229846418608800489750431153806459045608336719837656850307309585272775670029173186026022047359339725129079320948087811643692571171826739580454903318519679896046364568943769919864302640174431163065933766066907527431296826244675970901189100888522403573029244278083991293447988907194896370701384768213584786718785060633152493876176908910219149670399203688926812189850613135658330749307784729543877244906695731851888204558522257625400812575922048390102520076628726040961487848024266356426629677861740375066702462424436174502612589722810113704061643225825707922509465440063428044238418528688330867886519647230575706105828558928267532987717784893263442276736039763014352458908845363967792213797077977274412749380884215565134671123614537062626933290798553707015545986149083239453948373608607726528923673274173649357190000447537225969947044286563719461942757847557183213042355367750733551284632021826648357619096610724655218544726233372806780060913946289116807702433306504869324928933081661485677774273921306623744272393703041561388342097664882166691374744720571800020730439358529496210293301743772505033183490321450017896240151694223625432468022882563757888443187967127019627851429348700053608993015398534362196584102516492760729851887289006603628249451476973480823138376870205820050816830327521778901565339905605622599777525484679456144759994271759513772137417445554765652075320698352127920562264331858173381626242736732645689125298458886297645656054169989725957780596386554438370169602241746345993352687424379944878216859427770300248602747248691644587149847105505169128604269053891179619700468952273306746136471878790901929505548856451970840733198487587808347886597099682159678560407743032986941424090368218427143270636751524986842606456630310723002517512878641317905772846916164862205956801950347045903529394193502114924995420939355278791178887578910336270820514812449863495435055314456519299054038953404807472255946029977816913403045218069675933970918995322504719255936369651070578281408480278877197530542788834400351610718765126930475733681743371973127530882192831903696578093850578892093928135523487532240605409532527199718931465592386818167518781606386627759709280455904854740089961697516933058130796139996299318096082574539452880280690476902588179188849449956775195644177063657965290549028297633006591090872488811717362682038044638874994943767365685835554977168370280628743339689983650555878990758667746212498219752940238291787288027140268143892723164551108777271837931497114492249005581878946695809062015103590966516274270942953677548270963441874152212011141304499437178736478084970506933497944291260812473879164385684797204870322029877781031896256604108461431293849435826523738251848595471000364174127735361758198438693118482337262913631051699932774604060829152470939612535522531189135235846333733599158442399532383271845213045151923178953227902786417349991711854264835034292509260739550291790086410295948598994660365181954469936491491376871037729394697731328440171124420859393331796744959607602619142567977553397828341640161162029201446680547193490294984343790773254123999401907790412704044414111681589752559258786801226192981689592321452127930371940956719093552177530200014404172454916857005811806421476031955887365915132394218787367980095224716915413994105543536103932987670142752670741380195341358961157563100990918395863451369568371765866286230031592939063234013576784601684778068141414380988047033306643097323797872665619824626260671789564857022390958351557209456405744600500255152955746425892624396466599689906404328632434148105217813459834808534261365385043966394433069070579041154261447694986381657708018440950736378236548699054779109193876623285178219068800542634553690037889110560010141996188155720820024809824874625045900744376567871679103395703550522123548384445329203818524043164880520191996862563618064364812992415567199319804080870531851601865518432454844118559087973868196668336588547945573768497157355245165234767129981657176856836410228173959839708283845610049468950790580839240221624703757119493669656051028899971383201900379090971736170158785423846641533493933354427287510350880492011396842623997379956446864324995061744614445527869676931934525481557883870717368484568142046348504365165342301829481258543740498436273155062467398220578319174523080661430625793648486213639191322131929252767569877375022596852464374589122518156407097759130916859010705742705285101316907363283297345263259494711733592701395317142196610471155882541259980395996329285939861222311964161417709794325475752389613068598657838931612748523307889866369178567653252831574773637338700978113948641140408632570839131693067384651347497924062302965491667883243464989854781266689919686003749138534933376715118674208474236859018522985594062857259656343702673672599645091526514824425963692819182390208773901571983199012615411429273531223169525348438186921274740069222083336253581736230942378536370369975267424790391435216992202677251566454467898159937131067543373402943614843378480105528684404785337332623281272548676332060750183335141879297782245669085856833964469008747183457425277083004287331786547799553014468233936550926746144751603633409633102575284515291781118731233706267016936982046326393734876347963340235488146352179147558524929998811139104493224835892550909484887637333257289166530943099302399839245601470239927902177127006984274842185715744753068810214182072999192804713549883975709735216938504511980360718669661393108919094405810288837803793729266494612821866648603519283646815177988790590666969016440282088388007314083929136504151658815309175483145074966798499849853071977373596477710775509818273846130960105689333495766563886167992827183501559861423431179916129017986644085127096435359045751947858991998114623481040572778701905573918608561012000794847436006498562823197442529893787747555266887743450762879048202104243216503763755209547620755839726812785126036928716376847104427798038927388295124641806063487612586412241721902016708779742326193668663700878511388653763677083965848959683400243188837615448498682456675554304407711995733332913885724948312783884726576008258761910442167554313447002985769127745765847358304156471692087667592223426026943008886401950571898926180626521578110672413975379502519465439888992173151401786710255624603667555915790132801817979495373136086514523212594058047891173492007491530038881998782719142564235020846485578877305801467050115416939396888261737034465815811014571545977044051184340088173509075120822674563329870189726594821997700269486571672800473959294333835833946623430278086258815091829407103982448788497561746158137896224254529724761815716958500431789353828915584732284247799617524336119765255251352340448878205641488042675050058168806437758858125067255827629613850724504717776662857884908716980660236499751172022146983584915651496930827805396950087988652045311157188674782686884497374921511008457846045651111212696398524523825507322010312989433964675139958372058281550774124584447342739149452270206764587083733015638758315877821760774392514316455370731586905162082112413875689542371562252171583972381699625795554688770352003970216569023812123945006249780922621580278615982657802219841445115234363865540048444799003719101785240442646358631954968849250125725304118981909003330923529050975541398746526311179428045236408643708514438821682426353166169573091013171205158164692730848433854495314777865889061190715995874122258262410616817730460058640161857302993541543558734189710181402204962314924639116825617987338769654779309083975159423788080599727233023802980675858583895568065204964395401512310275411305675820845054143066337052345577816728750837706566605358632867305005620950909652327802452938282205218167241133279955073267542785055458228738683272734747684904667094269996061599003301186539523172152218855706661582065648698968830870167139043918704437455683314603726362778960869094918556506986661587415394015276416627819949949259938947238591233899711602437964530412083391520466606643181742551714143339463502142091808209197656899521058308215674248629290358669490690841587119979294404227449778559433437907981820003135072925939877100993037953911803143014717918919552894865470961825287270703466869724352378772125437938849122300455510151222163206027938772942178055364934347522360880519003362077339085861623456880684325280624088945828359263064828483480077760286208033825920087352261168459322820803163729310391158772027307116805316196694511519760219645476339513421053770710423359568824320056416028336513589179302965856288762610364245770949802357279600447925116291056718115937898960781879305292430231777404606472703245314913823954649606138672018899213628984157319958359626756511635380494221330563606095641220025971626413381791607470803631613463753347614749552458369717655658997530590485130864172860201924251515582681600903575657164736137842642394310314788603302448541014202837997882376641486486083921985494051090246301247792848927165409363713307972937526936394209412228422037202823343755014962859682206837629684846301446872934648402561654581001330219449951906610616505195676424784099329195660442984990476471238791663335800871142968889188019721301118617351159019137270782990809469987386770874355295597360423664659065248963572597561270611783298492314811257574521047439720492694515790391614030058067544409754578608618452202636843670993086428316741868819035602125870067744400044778000005961249776576554673105711951002155950263907928604938507963273323447356549538022795050916004034476453134842770949146765080605614721307937647044559506368109472040773383753058090102404746581720590225591121538144287999039470021566236408531228392903971760957432744940550983616108266248209230732757065739241587589602627949972547600263659307673694100901534019506482122629366672537097974041420267664788321389449025166327865780959522566844171525494617388187099669308250262358421559276454533884514358758948576435385570253021069639745250333476367281333767037909027638081993824582060123854045523079500386639746388758843452572878181719732795021697191865918209288345931111249350055544670383656270164203318646638761391850403008254810248959420814949970213256197707722662132373136138765919574401552153016761710237970417018706567975937729291819350772825280372085207324723811957931950554071025694827170965682782056225581320808805754015681609312569170296383509320839101794213333863656033718311039028066026655025773516555733413870662160496074143525629267025797594869025588602251483733762891445102813391351631047262440005301210040545192663355240140102496949411337401684642775407514277118569869993668671500498132386490387377517464090908387848237462337628072806708828503956559902923965608142352974548448592477425419216290139078436216770717294206217616853155934301540260505733869024120751760948315178929694288278816270672602906320228942412464228393394302728081429082090309123318114245158222632626360901445246895855511030961988700635759430238295578159089548829931069865218213773628784637128796189788427476881215664712260915200284066377106820280328480268280159475273787745556449785112411215832975745121892688807147811702428691289759869149267716641312169557832805197055609068262725897991487065132358736745719374222522792441295106977891893785341126197434474206370241761668655436759768552580723158609084457421632388381610693803303168327330508167971819590049257475407659949803846351788728734718985473000808466868010039149577559598784529079377146432375514055847042331557237193348242150553974673818981910898141059926140649682207475246662672551069096908952384118286842219230049911726314916825825039048103862304480880578464866481162232548802925173031627595574831022331436648025509983974986203743496848825902292612561854535865566641907960198148777261264263915178791294011018756269843757995817251032489318527659399138643138521802447513456176171719495237038739709160791201346112679945062822743130557501151240077546009307228773189072529263767892547666267939070430477047055234141764028762019396944400259063761407660809785089196425925878451298224387864287212930875434857622113275528444222696378616229706594938904530031269428050203281404941339403218518537851053519505164803319512216479956499787929358674350972828036742599843646279593843573815365165873752650296038024977455868603269029511199713788325607431763783593445121688386465810690524971523003235449712220347738038996580091576888016400972538180847977566710597386524238876957232839054106528339656680711960444156931715164389447165933898399151808727143865119028545249261306787351683727286282098412661866291712740973818440864972142355601159067508344166939840105913267021043773135893080859570464916305542786226331704360587728151595026629610764962375480067529101463280337657905347687213805372734885208801279927949379829827754316597570266987131513926234524996130120556097508211377146506493736352547691217514102263295218098060095518493999049749022125770818295273452929309396412088321273513778457678194022738927514914564407968472152459715110808627220232072899685943976338417912044635773861848820775280620528173337559607999791159578749035461796013070441414329193552169122558112953909778613652439131573809751310069894550039035822564347976994764477896047012252031900982892386368768562039530766673356693268431363724283224013589439345555403359318246435199112903150403784834646559887669004101452386642550458183007035685498347916304476636399796906612370933904897420598263979372145673596006593057314845626476454437490468353860679295937792639601297244878329856139286160334345874561892435714752825548252773983973977284169162897286784898506439081848245016974343116527304002286564438992378303921642239221990977035647564393620104979483740753000706654742692592013524028331389821497563343575521499926788346290355796500991955089962828162552654895238145441166710612464339056136032234014698256662797589699380100337689823388934670035241074882765568415873878652629124187473523122118077589876506347745609715024552726906764295382474508892856015111685982677319323779575817281380504068934990665988899823833644472309696291980410570678448996658041252461019803595592263673101544228362246173793796853908643447491107122454108054632468010746603579040712625219764364695222024036865904749060704559925968819117226972280438455354411666411961454613249972980327174913570108711007086686772149287155630921151981339072803887884991564588861162347045051919998453722641820999178510282881844101145041095031443139272851428388266213990844873895185291790979856212955715371515291319411869331130436581671658742593476542706062153517768734720073455219783143644426937693640902113027128377197479279533186830479913725771342729936419411516841179266768586458924002385749853527299911658115201965016691160803197300164204156028727356787962621018325665070144938376970916326768064094208062936359858003873403057748814618815593401040166237893327578828121231734873793707735504818108744588895910962013773536055959189085767079091670208008833386842185443688812422802066039605985808357485881147737684396764900016308381905391143022288413257175210512051030877357707147203538696429718334088224676964278808224157587345550625309264626503985193949165462543078086304976884767996967911553410934023380894434114933700027300580168864572962457461846893590548339573696952336256324838486754659060796952774460048786210365798486252620107953050417811013082431757107086126511827938264188444582400398260101069716307887077882923244648370405138927029697827948148513424827274942273662802729366027832068732410283898863763418121542674914548368893611694989832106005244138338488600463318196953396696891629872384227629843165183115169677968583610949603133877511642477707128592395243047640567749162313973819791013273073538564257143481077267564241511569842743764913791217678281957503671434475459355884154206111213964809680502080781668185323734288389975106870598229958340451078547482232312772814219865172772784828581066697443047812307123491749743471184066037976130665758733244261075603450600125250259484423702780712450633455798868543816495473378935207674608572031564753798213508269444262786239591790132847129080305532413208789287043269027411235968516725263698877370565480734206867975266831992827119056567240376311421727890356867237521330344959545212127767284788077651708250898028427573627421672068864302847901276855925442882040914989605361797457815064426552141787373281652887840926498764849117466900414672713746125815274164966411584582466728294568916120500617158937836253322497970993481850552966598613964272628429627662942641615650378335073959535873470990017124679421712047909792532196519439820531371687387188909094847082074783642388757575396663404209582132792427237470888435781844693067296777498864295091647551236416571762701860939590008742668766405433806230118597566007395750394957025108046481717298031878819325965132761869188950009745698652427363577676666050529110672896973895428194609323461814383193891981754370159739818580668790333522785101677282423109786965058809885463534603700558575086997746910010219112099495417594043156233787937573802004248018033476876885882157372248656316946850146170121095468440409752807082795813506118289595267456813098533987744480463182762078749641465449601111229072402061985543405201500632961720053380795953213162662234667953495352969482573669564694089464740337339439080554341249775671713469126473942048715921298781736519425056611222289804482473368792175396215953377734976006178726892805802095876593498959462089423845313578098109745911174518249023462159182669131499440331559711854337335926451141034819747933665424706566461361112645326942197739264530053119197952324152710725862639917913830189452559962453435477748466786716920085579078843024156606467917976301563746161735669115634700529548899450033430612674771924188349058319089110717133698252867008186120499144991341099085854398619185778743418763651105658560603000326030082252667131377429342604280806086050322941793429386151083392856273849157611085080174482465542054805065616416677072912492989977041219424804314771824253888398323130973009382626049970684192585249832508073950881134675505675994842474536492086136084450640472387040188863383395295400200240276011735916006251732801888875180073591397927467029873797530826288272622393067999604508323829937232338528174217410247847120613737575868285291379038128342472623957215417104239305286545272408959771270673802108709806531847068970394707507930768683423399641502884396398650328324955372715475892985858003288492144770907769837109778673005726962027211819716924476011461201314212288673701583697389189870688039579016768298798447864895180360912392129313687023229066721008904046092027156352099618538566880216024675356457667688694286883822384048201842841528094152304485817771735352222819260635935034647640631244479213437905668043292940159428941659682099292392622314604127788359970392199180972898772229065467618383533760352906826293279592067318224713572960492808356002113490817461336868030825611116206874938067510930761381374153416319205699430243451609419133458982413632620449768641488427937334430336214170138984534646824484663762124222113846972463398042326634335370922033256006132367694142933576572111841032504234974867820690963591166888377888810738883753689105023092442364377043745820396334702042636056164482771446779385489253985271669138073512654759829605619181188572201175683448191020686309008938550460621880017368186956292669213831378794550749180589562163817126468578435607396069789085340457863278419119036731527196494307804400040046260061228999525252974044793875927380089233612353083990181890315109435674097481140220267636831736413644786448234852495858332458412902424707815110405146377498085223272130254336660578807538358547451464841191332512876075226848133215087685576075000752145464687683430951115686148692935681820162766745113583455197226067510777388043410981202653929838465490744880272845783184755259261536949256749740847505511164250019740379817413480641789326171047990356113269800162943405336613757728906489041765088857050899199482108072858710023653876617181240865093878155663410209519725504892313155768416669376824727826791864663769413732920331623528668893767481541640247616945186266644155081413754699105444377644188491519905871796849966970492950124561251711511197525944737251551341281239775485233091849523053957298757694730318846596702253796578459966429430525237712616801187300730866887503809532863008716490640729498204303307073398553570266522664967385149177153713318943889002568829991542742801091755612544591834563132123947916828439891909548097141741766821862301716949918053106899045920887474884944658074321669846019953599001139964185243631001907635869746524387522204641184517604762431309711227167182333080329713253606473292226020158548127860416649854770147310683274620858422599850113074714556725136461704848431609295031350390098896845745653557955430655305892287129788519762659375954969792207596298735484040907280758927370671296122014353576419343486557795293686732739611431543912339721795673750435850710973524591738924456517758670330744827053948597544801572023977684825402693615981103661867473018468608094704068488822082504194290165126625623950768510473549961321644522437337986021731854157322146647411744998079192091916781067963473208766514043641815012077063446123891112185869712659974776021274381763363079774894573922547135150365901680529105957873274238797242815486460086988062178196165720392348843790316761326580205312433125008574704248046798043313248999588503387860161420027982490681621754634512953948104128501451496417611700514277696733692138168322974301626046926741111992843345322113216954328614274402279017610344490296180523282526440293667319707504248592785726556548057366087958135654151970961178642315815710236608463743659442744581975982034845143386169896669829141662941430626930623869874787135325747112973845957135658409264155898127861024574922700567404480907057437820806910501019381180767144032257507862100949270503596881419504867809425493514825053796961715015085202118904234042392666262027747591633110111927594745687516774344261232352530176067248167822157365602138079873536641721240162686812020228552727181126906763108009810275395614506073228044446623042397892030751005330447517466976449326983876961237338467747976929015411087556942972094902114060901220875612082364735066194672310172278246136959873463616866901042404475445047345158424977352859470533908363892228160031198613830700283209906748233440029624992246965247137719153068696137878841078788042919534290762665160983648891818577225507941871617473232161052632563520123919707621620776906519087651985660834242301588515981784457735153369513553409749086015439400219840483850185826533085959427604370979919406060727014996144422201397142333763905147989247647434075535250533838864992154981045716238435035058647932262742146074749467306690308317327226540050752259012871139426859236514208652598266277299309970022989763904643626392377532843762962671449764400425822541906993451607636342514867955231651966905537244686445031961976542770888647888677333410503557666966828192214118818047630827666685271525213569401424734233667853511299462166358551163198010968904438519816873188027208074188229859126728028440869773835618132120774073303345214190540452420437878421325676002407926209904929374696787857281200246357089887470457808008337769932592132653665506895440561822087998608909983191141716327054125302366712983116419011922892781662873598266571479710876372839596181241632072997555547761000468140392120570567652896551153951719226996017938323243164649988353533060146009396897108258385787637210726501601105699968956102353170568358591507487883577784066848253022781072484522155511757699546616423506423038166109268764375694857657901628215404066270913189472729266543390436938168461848695265436082098791648364035057538715029847425934720068772842579451014762894745465643295871899707020893060246401752186123827442731765542461168293132467400697088494386245796357755571922134900025931609095089525714852970560320187958263728898220794437174196994033834186886387381182156125880579528612214721794465643346816567459909202094470070132612549735865919634559424035337498770824252505804875178729046541272994327150013010577639163055115811952409211262569546714098016987209168246571815640181728857149140851036805867414178156455984059577746318539398246101326557077941065379362409832644547437391264020847803846519695054816183446092740015926318878234080809557305669392835201175395353490331836756821446714423513496721367044552925668913131486392688061941173039272741455845014890655851475925490812052301247523010583619646779545102572103921681537227041189299008190535438964659354007090606428693395172045414437632823567050790803310566082410615471008992310639576928854688689498704369379930372948117884062995672907902095779771744153544716502571488403911052600540770124917026390858093577958304622991478104802715550875670867733650625731446989127616843741149612091140957939633306676279307220480136214727972267107417516234547725244570526647304576840384740558715020839054236724743333881440494594948976662686566400428199916905718771944923124121277918294716077798414788221530380859825881831247409949985947560395128198073646852998174507511544928390309422301778123828400958997170966471195546647400346437881777349226748232071753235380734293943725839775371796766675389575505081157206999137937406085969754284118042719378724564683526066392919995035667443067867843435744632033204458415808848540299052859049736379385994009761693343946193218660955825777308960526317542229824814938326822921816240181348788965804735505948322676190966525526915262409264295963204733741650786178716714070769321408775628272459421745605066571813931016635178720558831205724798479078271942695957183468888166872605309562811520028729880643058031264925872057460725329449983014409017639839177192726374329021161503682607461954045263740652482100263399795275468549503657823644599097866447897109325359652725399876872405050505981688807802429592212837362056502259073299064571439229572755010048239100212271222598292799413154721867649315565292929804439939742108208000449047305418660467389012882029028336413222574479075324894955458542883902407413126317215172433771796330812673343713188519086551141487393974948573851987016056650606818161668745328171651463501818517532391375005909342400152528783304816019088863253866176591252843904752302870087789021517970122232368316019756235817502769475085533895007895001479048717466678658777355384742843429606812771348233588371303029292070946209508599220586053607800005411156990045150713227124777504429886337791509138056736282904787422826609530177767547524717322562247933125680257064565224261911973726703880641615751139272258445446906606090548536571147018507244609096338696880140425341345898116843996329454623145714771406597792104254677518932612576858647055996806252167902688116928966506318641286648981669524428150398375982905492834297613220734252585951126373591629376002982913443583592609327990469533325547833430150242582223870339338874096938351119070930940615423112256412767375602581394978446838271261242751069811158422582632684407884387184403041977175834240841345886816193558675520688408508848079137464169674882484150398425400458730831621818466642449714700887400567192673597410181901956194217925276788563793205211961381726063154914072271462806637774983814791137983235697147574317390469737621125282113818910748435408155729016407826833575819137086006621899552825112699534826724226100384264063402330263649589530356168801380957532928108732785748473203296089647147001439402236896641495890546717134978964994406271993670988492776907223417587952566740090921931838198300095831021056037167866970721006232309051582638429558589812533980388201112486145632947873932834349498213742600982222431872964535098142275720346432351194128815145919091967209348403929749909530182475035164358777987170602103795276750684097311441868487354069401748297989173095403782116960905910420589349688971234855433927651447499867006075341975027212217522970103570151105183706641891492700527238868952765433448578574205945375414013992502248599793587891588718486912587529049112721335412618503544344219230025709391657488195106345889765122974975914168807649547673734187156732651770734023176059072614732626771618210320225278253243056730445761393363520408128727357803692655081291125188570958813087308817082451674753911550219500235611394309449684812078391628249274055449295730232334620697677430657420419539902014785972363764372969609663226354204164863008154478659504225671199251743584872683927150612580166997178057249185898137575869769158189993908811838400646516923323664621901527789179021892093261451095774850427702090784995764593133987638335409627124972794212807314683289519693000549550723174929994190910408230653247746882823998799933314618890840850137841148609219323732166068103466477754606487227664543315118024116486969068417045731799523754776503707876557613905788059488712912000815711339039629139844694333499109273319190707428265627826490726376431587604917179973488317012951232529445639150591936086134041467369826630431317204774505338994827012939869361135655673607306174832704778319114039913150540702793390848946208378034476190007876059725522167427010237576699929665902268267118286163119109610762930988376486061581088372680181588309474324854471807556128409932534163343407461841879841620649104646324107210813471693036370506606962010376980183198321790013895945085148860461698943795159723672679432071024398807188537140999896176569883082469950493716074778817078580128702023940164174665463297071731463912195570552940041112876896891270010602857659487636963384814750734847146104432525293240618894397993406435251040360424463785456494020104497294961346731238058681089220203380175869103683139983055559144580183014528121830350112183310704498998362171289646980097377285738275159889700991831852181281682425081151840698264630517070068174804411929567524554991826189123695397743417390081138722103706950926015466325129055999124119146528426143110843313638277176050038879985082787815755347538883923261245285388779135192507428608540749358006923338204440510730604584777495447835858214005049460346373190468626330994624517952830119019940169874621931904435830677595885999877547538398587251224813982545533647472681318235271122953586011697195613304764483905695861427512393202972917384924536535574036075690024526498853476178748676619947445715148796012939121096457089734121750091456849337797712850856390026123005357347547038910455493180475570618440951260937855857167370884379876643298360634780620124963148411467810240785998111127409410994647405815419904142541962003450643623085849283729261511112253892589626231936811133226459063919079326503778577662783848011401486395459775632171059063407324906037330723179464506614895883659228742933338178473482867755277840616625106295259021867306785580966016760674068240549572119700631478520320203492334315650949394903355214875874271027252907437758162661071514061473868960819630633138315905735662131495915880120087682378472074536399353662541330164825823050661595917674847716240597309752596583817835664267070119246213826394657999918200996381398159130226700653162431014738463779475316666592881590811949726624577872883573241688259510505498342055597647042917257102436490577716183641157058431722247619308202627262335676473094005542543266596348912736938315637536010772948641675748059129607921163553288731045240776913136231405012040454134134144327200050341331396513322830718697591234332656873648684103454987304044458836418374274346476793971601796330042765123528145032755168819112797544789268389516144126849072221076209868296364926947630111170503565665984388118446404585289449557551187803537108580772257818722544293753037999265451192533026519492293368415143605665779927983878522547260467201328558173721959041636296723975389475347132705078205944545714525503276622067971617638658241478346134902895425611728289710598837711667059751980709637343573375803709918327175068341080455182254665452890996312381033434380490288608496609731619747555114734038722285421273878118594105525439928782607950021873076411931284612860063057775824764409458950672661667918008637642160519149859289395252741830829829075209390451773565492476556600283743492015766270504882662083551882970467068122935301773618817284633454822518778367661234726650458218551904031548943483644050182804368330468933501503997784852657326236342643412553387149316622192023787254576166146423306033430068183526522125286270470180758711096736125546197111563037954078633776508738078776811561452924209499461198488329568144451599289167637382755421384728810960332458890382794424732209125120530709426921280416330929543071592793108068537679337597677058057415783744676808989335342097993313252668164740492898691878160192370092680229539864582607419846894670322122318068981726640510678201621819093615550899064399142850666503179262298435990108352921567750761837763854083037632760887546626011507117708879965583801312072925694337294781781909543030608174903780885612977967382043329085501218134904499567430089591579581750696249128978423995557976490431942233257972179796191662121712116836032703231129178907060142746065632777836618805948370701609644563075574407585010634988402681433795806878185151236273498632844663293506075150757347512421815284847338230751919134120804029884154334927118277453936142660687467586377557634525945667378791568339139242427372711699240282183755015208074938999162014789642577293388259301720464014804286311922536626796110406746012946016650969695341769526002653085169401393325454672371408919981298346936535530183669559425895470187237323610388410921003249192187500942602548668800659394764011570506151358884447319184487950008667184969187152487827499978030358889037445761589028172644912130605340492581580489563394058971144844648205065478517044323037766482922565373123312271266980421317726135217961305081465153221827505616924036229027639093008011823399453322017143590426563800117741262889974280437077732622975204680553771887985468485922429032312298488774412816168190259420983900328799397881718430903323681390684643432621559546577492690080671614582133242671587902263923000185680671802357669960684652824778814584270779612687617822541602027911452395549250114442859010702835731506821689494781791314930108038844158505467317262611286054544283499608939307798027565467591496304349456743737543929904926985559788817522490939877415778682579578371578329317278873942974280901042091970822992447506015011559639018638589114661539080908181117156879291468249604134881723234075460914455218404010568815366844553331725480202317105688728414010731600734870728808082828461300718272399045032749741098525762821229432819016922727892375687200418017080084608011714697249640675781435782900632671445538541870153205035150101593329420005191435690679081998009783048105306153692398163935693454510423569403187100108490055047065283044810607418149425900520451390638602466745734774810963845433846523642288608455760369926468205120055094785990783260275557296817645773019122893119236931841198596835636242052740688279060927229981400940896209867208778307536652033941368692406718510506429252875661851367904290295620900469233479852069180847620833816596141609346930054414800830616517380235717346433457646613642307719933701261325206088009216010845785611805743417915500147972013490728104576068812957049988291602863321556707504635305051798951678155942192210196247847465037347491981849916392546388590166193431228334551598834206574015952666306843453017720462711357908270260457463249017980136768478179730961741079718619771132603401280653656706165538520126779052158218938126815409242099789440972668041218845647113545259779201564510648213059218162526240010519304689468541521784049634451935792966857779607108861454645869610390721196707895715549758710913369003717403756008934844641650498719278621070617290800542594897165551490623752592188680074076893249716383293030359568618730189180003252641946009410205080951015980233509673316681177701899441290044741235101076016979844344752869462656286873283008802962268950396493920007998364976239380481435568750424633878797935625781469053394845330862634326562167912785476429543071621880937146726065831411394212609869950149716152864854519169521315427756799566733707121969236267261884683469407593329091808306568708373489578019513081384647049769895537640012006406922436272192831027946843569912514310213659013091489736308128343347565540950079164805852910612816222265906697143129398799664875190812972333335366750445701843158979563052119066479554546015015663528964000327886421489155547006048630315519574513928594307083183091915072175510634448634223580948587011958915727130681334339960932290247777090270730557809952362803734597828585916003591702589583737398703783037238435176565929174871480584480611266046833435325675756949061164629075128666977944330432864543644161125516975183522758696006861502278339640586286995612186098009087983071262539705973127606247695660742406445299037947096417263094341877269622460597608266842780989211689299720401791408392913111171270558707670462229777485659264559735858021363414011956353824382282631498602516244819226925928172162626504295486835183120500533972933635328970519872986938316867861261294918225457903438640118165978503710335023616481507479820296652263278870853053067717332757800981414781987833429206626067481118574845611701231997296658808423255746905468709151672207850512753619936699596669161662699644373548647432563631719663439458049593757934866543711395690268655281545531449216287198410033014323207184992396291179102828630904062021422907292610119610049880173384531956401626869675508124140924990363382166194638048775224090289997688732198141517022165086600026652870326252893942952842827093641518792579773450486141577388952782478653730395623590976888607827497096784477421980755709289227283109095780906281212661734075924134757445836903483244269900662341510108514738359537670713260462963946214365513962236569538001388143625431706797094197070019812640666297300576374422660175332963034482589653548360316683363702587638317399539658323781562202376368039493289654162154210987808403348131087375815222016637061356843657285618583595294092242785199839683959000638418217668119878968111567319950697659234313220689600667824105816183262811406312757122899206915057080198262493312440439172232244787834049545624317227130284803766226264812766736423904705187648887262790944512045614462070449837939242977238474929305396390808596428076398665117549899498652965758573586968381056629787068626664594188234937279535688297332690159671448547814492127874774489307282169467774222954016048204244910807154857647360963060404507499807364711383070471920906869812193776721688133102822032309631382322385240791313485125342036951134134810826111905798717807436564089973277091654470596904277229763672070853947045207992887675818696410031946335907380410137388460465953451679079352521168057203139043809197328971404934836149477418307178116349711635047302357327690170682320830699341370510212184689869639435631921591413650091146440061507997362160129725388545174847690771743839177368238668197336605393746842166084588742882547109048591773659128616186873655697966074559245452558626317224501935439783634953849531521290933987000507176438496202842409835807503661820560382749409041118692489679740585562780007711108305835430821025371365805458071333265369343666104541106433161941395584622845770250729633317989658685504196104985351626276996187996251342498513421823930223190475082317185511557269220917096401480762776622256182464039977877153873796230742428561316398221267390002181245367135415938764500094665272433221809961431078386533917451153657153785476861199255579040247554003147756856406001370654272491101882712109418239487614491693702212762727631042296864698768539051819495022146373560245163806839292181568518667005726618768122133794108512755782710139087449697333545125360170864825621629332520891701257670806240730402199067297809959695779904432827887148650236997080440826731016134903020591471523061836367103862527337572821406752329530785414954944827007887132943948603343960976178063491934814588875358701696921742679690236830135984862264379080811944847805089441556066688507316537774387860794248507048036666614974162718358076546621513148931575553916278179033062723224235989225559059518520998033051177796459911418431671881974103758439783423457212822559720747003698483174984812226782589191756212357066090674933222780128605723369549935968627508240095101089195026753385969729125295539891245398740949982308567649383704704111942343138234815626694495837816561879382246972508803535207644459766862942461275850646222502097177707647558445346624100013149916891113013107044447287036356079128123897933380958287005095372413787985336845809554030870350162980864533306332260021039733135956864516481534899923283635869660168896606189465283413418976633362903497796835406983300177758477037820348082372053570990549669169793645787097271155816334689024123574312428869114238123796346895691311348191803896040361981167716315130526770730341246753795549951160650110377403119349040794200579784266827792426102669425335324146264251969417569547317165112739152949267717731970248160896602874974962825073211870922714437630562741703875215540099255403429889373353705591061599958001172323102042390813650837048519647834907362282488338528575901754355228127030588695686617105480443649226614178881782691254949850578813449866630164067973987164926087557668552593046244661390494348447848208649927976022718254054327684491732863921816994877347787810431982125267949569515414265607838428668815729991140470409888900397493243890079866294929693169135617813768279563809841044260719766326892390079290201045603676844662808647013875588436086805194021437321350776691616830673885969812981195616859946182860577028083520856230335201723794975711527736715275823982789438680940174316474148059541442659656236422200320255074753076444348209563502400996136077863194704597847931032003799452126789622437559220679511696561694987711448110848915549862214586562239882032295369132218824689883763817186241432677593055362860527351715055247233453395248141068980038175470187909907150417888975357196573910348667771393750650162586014157482983264357389229580363939522788311913545509829081937734449143019982433727339538285194226747939302031801420049013409983033064810652283402229945134411001342186319547641989425596123074951459639389713930130461226405008933823616973619164587347167263393061440112784181440282210406447809299588304239632182532966967611425238477831393850046165184780367838571501335301889667969283137016870118143640537211581315574035485736002176595733389884452437496458162899282867599584029311698984845362377577128600049303674542550808711618822205117048359507757361374839203991918202223352670258816857872216430163701483979576605273955461330114069864988755162959082256659283726315486308739857347303564400892634529721804201702541590805138717891794925628664718007561973949170415127090165752802348015417043974742133892385960496801535314149325947789273878100890953999905169925954726012540530675733450734942382370656516896357747633761196793041124883484194655027772872159912372762133617398511697439118464503641623964931053324608354219212425277502571822003630232375655505084296052456812305426477628979696004523348463497651463643034642949899467238211692022658885936476479597631801045008121538402597423772470977380619454716247446374403429136488871320508042701569251531923946341410531130486296747693474594470483941373660888852056720475834294230831945988243307715596025843853845248707533438764420462287520364396579434086411311359761569922933552932716905741302993385270948966413923182191114439825063983274420123754594334000494490750767565039196152439772685032766447952101430526218048192267587336977416688453652855691607309339839359308142587787297363068595771574449402826525093910060151605818659817765399961860475553273406702225350876628902563872687412805704740281332781410104388026624946537053906544466889342718640846238129468439089178131433392232219014292148859633664486848424402838485775126290516291581774979734842914569720180469541759559911491946078567833245579073718334266487872393750733960634401366503297114847485391090308062458590344582595172801813832014031829771039594871656071231344502596736095624030565331706811107345180749720630790080523106813371390155903211568129258552400863347378991132771085969890641636958824820993701317575468962676923531453156061994440369836655356747866700242978853055761429380257311385612571325272498169685448419548221845447893820081595140927422432120769332562318973730316135203396356691557186972361533094813486976827194108943381001995589016412346912814916313539346116824515229740047734782176489463619876495014988045178770567150095931191413310066870435766041818102060389887693163876602728647240621690444476291426640437486393448188979220854785234329613554663078894968597952209596463121098203930569570940394607606488293475856094430198519166488695071987669371430240895154743842864176034160023083048674358302228318003896390059977877024101327663924730500643229093168376692411969458727525715181248615527318342284230199715956539001056270936755469187808597168546133903484445964360604509525881854116953001673079246874787698959753886858693382819314399153060817354527567225461055709334736212046817025621279427534263559015441886279905621381763412982500636975301081553737031230615169248822692057709205369879848994126885082807815243447095780589070082197727023113193606633559609030952605696775368830441965519858895314332364145003385437898960447403451776466468836442688834571472315040747602647686720501375749603737221120914146020499743595514852188671332078273671495555448034983989291818490343152235808515646092707039116846924903135791650620657647579386771486325333694985646390457945571192238681952169257804950745338520239201256950281406076887828497537120695321521287444699257946586550732076103166240650027695046199899681279516437841606697924436170689999168016629827514713230749066088069510038256861069437958240776060009762244840552938641041695094663712588362690435875477684468125580637686178753014518759930960102163057157535929720882383834077711101899551963016141610452114433029944379897326847001999563342146691213141305980847144511221071290877499839870922862889695509298742215604137048640163291403884592057200918383120220097548626237768606583834252788137783142735580527457774606759459209042503292547730259568068720394735231757973122914303289906719545304304185026613636299007106763133216726588341192111452780520580917350156332223706856640925069137141753799146686924680957955775035517912271555547322129541376273883748725558450698573663845223980701547259938749862261098067661693489095940662154046325890937389055416634865063915650841384387891478202528364145203529148479050183822047567746848858295073255607746420145968657763433292033077142056099004256002799030315937427797333210846147159015697547621791791049766043854523336549947736357230245602623070567627182622793712707523042622436060458232027543028848713806208753527799209749631046006348348623396534283582049724089693751391356816616995922057309039804620924625580879388817563280348787189144057140886575627380527629484549054534680773110663841621879515787041647824848836595106036616009319715888402035130185592524316703684279466356668846821825601284998603385526648013230154765276661123539254368754750802692955246942774393297351215271752848751392745325698797410060429890559578880554008841822412359760944391595640331650854326288841861508315286785150758761295190653609095703601956718358953984692711716003092405692487874654459244776511302693145842417710402987194178985815912974548095125546762427679734771978818558326115923517986354641380223466267790739665165770542308197585683730039932418352771465080205267451253476539258499375027991457294381350111486706905670695019900436920168825796334115139584386978878591417858511926752911640758399348094454531506269646528956960263757623539038450000581739659770466356597853555169859622259113180510056392680829285645036651428232700223423606308233276394442003871263008420508936514941626061141032000960308939904445845840540097583647455824371734151702184828824276549885789063773624653787611994830154269100814774992629775973777236813031688411134339969418223941559592803068223244512178086282310827417437847337700924362589019216330636848806454738571101812822577265207519134310846662144295385352289611479811274008365402072856148313007249334550449300168942592581511455680637809138439229332904149005068369441031350757811909689238043020177600258854661646337082200888862217966295659143163557178339145697600526726918268873305173580615510010326368900116799422685480717884973058473583612455724983560559257098097915292350703118731385494591048284292381042503233267077969529281130018846683983524636536898211980405298009767742543974039225488329031738526176440890641654515439468763957216279082627229853510468391514030230133076756419500876649064133928584526996583257920854514304747668446149592748772510427184106008219016107128286866552512646165712062000756327092372655716667471315509552935035807615243191505010635259792115979255334143058523144715275198452854284265106914331218521719239172334808147356748789793599970452471504933461745940075400074559760617380871038162245687477830107626492262200337499714775807685484907811306850945402261383344169693776343449200677183779163045915573248567279645814590344947181648233094258380247103030868204589194602881576725219110770648300013927713206374335101296642191423034631527512125288243399398493686961950484875856054123218606406329292488760797402192197029626363634320312810477515351919865306870960457010763591593489046954983138138668461926916258958587015694697620138190075411497153648788242958340972397600037092709847026849571850955457134794487976054449350054455301878859665940213652146049957146985073937669948398567176007130642916244715218304106284082975532553189633433321876049535039927179914747391723808658149818059520935383700359886191795306396118371129834090401009056966327321953439033824474933124162234250589448088842962508541431821684447886107255484989935006546963380117380681920766509102454031557224117398071077612884772433149442212405353474742325936369397734018337286517652059411759569117480078343125781143409252517678005784132994071648916534351943786283831679806195334343227193818718427835754616304308513429200273528652766560624948332097968439655867466469274374138992353889076972047087815167606554076270359830926423014462749099533458003192585137305133124916701785280299441954017630567515098978272755114096383234396139638839910853419214690785135667915088125001409232189129197468041803932711754380325910590419350092043807547009979815085931231292163460849262577813744434936353387026153340836079945333811670119480667556300959420831730141919016717484679490121547809560788352747964532376994876245285022371031966655775259412661634195275289656859197917200343506805988005166182184066146840369913059615345024394109787175836305980645134256969619875977866547768066887445276690844348828554211819007954231752303296565968963890068097920920754618358525441928105324729047339112162328097613635270204270680159134152773054912936350753899105651148686526132506884211695280743376797700564970653156072664833830156597056893441517546966977618303072148910709556033079971361167445130011779433495750469473025231438737862480844250712117815671647783240134429247925428024365699504174296123478182003615248664753501304455296755391826508963814869096079780040853958652558345135416859047163539830017454997516707897739471999296000378420350790475440429334046129758618553922238785294174093442325007079006619826486178417383395383528704440714027545830389174782247541559708526430254633738766090252666839642232660777287806032568824040048450446430699261832075867752245940584203857092736983218175901408492413420607917977276377522110488425617475730042499564328122429529133576959642619161915584862518005087228641046563942674137666824553664914187389041933662013149123443996073912337774485311542528060278972064027320113645843384687695388743515250098640953046397110238924708008787195024766466127176398301559095262642327619495260159021314771103664864076678540109870237648762644383426144792668791171520824165726996632365852516934846095790876245553772657621861842218810605155213486364009650828744121769745391875289113421511125818777329473684256680053579556170661262131354353711651853776539607002032036500457724742403596008885788197859492313989445490161226856831232637323337217394351998841557784170037692744070422987873409899523659646689381073849407164033510471158640061983730598537512925790782612453417293794853327989420781827157096046017337111568593839559427460321909379909365870607281025359359881384463025570771581270620509789114045180362578797402013439238473252801319072561107229385794319515600027710389696843914293491425614025770096443770347359720353163587094545373688990186312008905644476407168125541777741342674891654697335701021031864160610129729270672969019516572055308888609248095257991472394617245887520722153814509574918753416757557208862049485211548532358159065971804855517179662649481198115644899247197162859963512554787667209314471424871982925223755332944383665465690506405259635421776557061094165215744148851511370110974580231045256935899597764777558487242658639665106965515424471916065059894406054205636159452769969883161062792979634995966380411373760235576370779258938244203855265446888687817133790020632478132297889579178933805385070797784650692364936917946077633027680993994144806726597346000552484498825972280863751906455216654787968414758381960732214835440331392778145966650869095102982314011058623949819960957211687311203213997533195142288966528903250333847678688947920709877290955447218808460922062701416643151012072915943687109022693400006043624804173746889201897361031673800471604060523930579977369736839959605867053851504124260000911194709974269492579464168136707782421905522662905678433122216324601038093564796789303669319063004320079316522482022187271884768228661039146076105720395159012213621170300493921210178852865709501742290569205182042625352165482567301724459259680438400774507799787668565892748824360251499009338660873565865707483626672205854067743648071004295905623002354997036808467752943837573755515470275949200185079953249512441258293453938618054985606118895741704374575452723427466280746488246965812186757367111797214868080916756978674503570261930563728820698762207791608964864298387823521183330739144965868325625037322965607490990494902536298295772781469639343288948745474579331378779908134225490285295834079375934072624506600376658743383011174398354125216587623976216968693513318852649285377706570877276197053461494235857406193166060892953405323082046594410823400627537171573235054415132882057048247146702368386433154202041736722192055918435250473062412502684407889194349503520836906816327461613741629154782967470734257933127592013232210570151293768626148171710462722226827560724936222296483612348097721772625006435140767615101019941593702227878479066650068737118395250680408245144833085568104931497516195068856291297180225493933586383299721460923217526436413879440244384335783997910578104604732372453580433273154262251641483592492173379417143775692807728504843813046215167943805554825940692439590891967807354815066832480067137050013549168582157300497424843770971913075159902475989169237815436108980530649031302049949425049604088461381219646917723547188538189332630795039957663414419600657696865393757399270712556381456167837083849043788294033095447342268630836265444397673472541527929896986254943101048484235885274225619662511649704042634813596915158457731264285027727503719776235281550210075906239421564038421037116156804771821458794653687745071478345290843375510748176136517977017152304838955581979092607051717195562659595199081602940083498343824053237296133844896716889496766862992738721504142562006687681887608761916479059466250134284873445178240743638763656015557014149759209146221347330407209228083483771236034432489757050325265399257524620090697449169988310710656512018458888770845677624353161795287588123747176964224739110271158476609577167209201755641655434739044309751983279916606163191845357783270050871300527740950782717346056782831217696538498455999439284398629320672372736911316018015564728400964068029666674030772797000021981558229612647730014627486265788383834643388735109403193637261332912502823312523406553428568992063284976235205689624094809629331167462509808589922121866626371533724138228823182390816637847640095083014086446234306706049529424508441322608973952093097533540321497527983672856453827136624349045853092634158593096512030243099504229893497279581675116552324428046578793391139640596055322104597067057599698419737722355163008447479645136911687396509033801822402263562538009815127584049064343535570952360096262982898400698297192427979344365761840180022272135565126157263014384865973392169967040981974632547914629318048964394886511647313333937170193955368174740935295294142644636975212879473028048390845790656220835170667793578571151059935294188755807422350607020762502811882060200306644677548512195423383842421945550287636752516732518185606656265936091143966767104245068487265536054891747956168713271228797739221755242124320656365718649401446832843141557533890659576671166309172074843616969745417078596037669045928585444970253397264504824341754450669726588724885074938649283052426212011418928319894050318062563233277684912539285846699523645979479641884893569504585418274520673206128215706688340611102159114137932789459345975369114958047779127686395110828445398069369884540605877276001049221901278509598788369501773802962439427137132047251654751800593774173787429772708750965699904218702304937372760246378352465803184210345882020785411430964138227432152951859946801622354588281129834918276458292012006929392322073101841118435034690002287747231652140040750973745490863856990170708422742630548340069495115427762550659284017159407609753697827975205177347614537460893906483716563232343738104585190596763831643332292977323329629990100333053200015930026983485207980578093732269869019066845345988915248537074932563829769027616766620094966638977649141489249249516979978225441339813339441005941629745013276601177052110731490958705183518719257594838988032095970371861549980292124159701480375562531672602134186840463886481940451326487587587882160859147363360106835362895335184627836096948498019221013083492373005493489557714092834549864654664878884804492402920257348469090026472884382624734427691815883421439401059416360458329444645043592142811282727179459873708882123691748677105348302256570684113176957918374684279925968151607908298147662322996782683081726053516526669257424595236110832526495439738057616756923729668369250946796108977428097174454415688549313721062673957331020778673521469293620356958711220877721641767532523672980301099025947853536796581477655595799261219962615630693084444361627511519300688932922685442384180703715542115540217071610011270701726365531251270695085337514998273662606752618718333610654323784453852808884622730201088117754248473729614570209045845676521620989952733531115757161265210546319219054890935333717476767808546428991191376241497036703701485288246367866354542645239420518885386890895214709664958517515190752189662312404051892640029514815735596735467409505040362460171991093588726553200550331988140250104018427534526311004901593186381192394947681437795220665403290934531928294389682041152310567649967317627794195292681804785152461828408222449561284260582663757192983795112604276036274941072708787133030725180150675657653252915777091689571186333098759280421426572949652983380512477895754992023313716843938907625700127909191489074168264398134570341554958472551858671322206398772375328513769671793005592089849056809579064641853672351798234393922738639183249184645841959263584068442820395535219342407653206948090053266910064434628398105413266820988794064477198433435729728586996644429919288659468088355983120167032915809893150791746021007229721442102115826243594108184696617216490925295241222176746587390439957906741199655290704859810125537575839553187770382399997135813308177150792730783894411367756754410372966345215237490668458317050764992920512384703996863343488153829861993027409854414451074482986713827063008562344560740356627358656988083633360689289388790604179971202609591369509438431259577328310345418818677444320401027293972618514079976075219489960347411942431531887635246583746003195872830941622186631779285012574183997664976632939222035850233850691327390924910765729260230964835039063628645455676416028964599591055708838900511213838501543178313031761219817613790945242216129379633965562738554724636134808583431347012035109831972854991263808994429262247915852963526534897801860001189651123736400238486396936917171785838647904657296003910392624345447325220450371438681660068924476573031449398796694147265463886091811669462178463178351533535666318890015723237770811133151657716619823948784980375309688204183776616037484793433015945243091578171061585080687802181200412951797872862120016171640088762803258566107489303979734516865084886955102736420497226043430133402449497879999721164633475725905004407010274093935434346078922365883633928728198851040694989699499161223658409899278782871231824381228008297048656154919837776463134539236956199221902349134166407747822298119431042204017490612027210853100907598210450992131398823582326157403974666290923642863269008034351594832192257680220846678007891816765650362104638715412995068375463242505849038497210471068161618981959981002941079779948472014159206695022339383562300355052119666043812238553440313307269944075585287299960603880207315369996053488801658394859608151901387015179899384551287044175208978564683901057457954351510165824910101582537671885391714352196433795871947828745038512623916802086855258526326770345758707035108726879367324819262709579509409564625355962380536214598805420857551726274265082434728771825948619485912637396764336111692403507037491520238192525199203112534860114117338043221327564472439438321006066026290574768359247335341839637230986371226057274538414497418853568334072568899658528764404592157041707528446174429863406607298651071188362925461995070788480601060797671551692605790338872306483981432989859707281403251318770046788053936106150561640360758127470256884353222274002420192409074615945211096024646555721013040842813763961737610019942743166807720024853893207406116564198862545527113049129453303201832680169113906398964454202958828957445471246097908124516444131845608812324738320522882951511553100449550705053423791296973446760610304235453867769102106661681839366597556873431766724081527734328596632762716491925952545534462228040469447379771417121535001344098501300030881798322866093876775054759640312065601615265893607756853844981032321688458591830395393106748326867794733282961727419210811615884613556045416661604744059522638637324098851210988488037056372147505648193032381572175122584830526392875298130645507832555674230735892605375288703915682704901250281115812757516819455183409948881446683893353327868236897878045831221802204271818601347562646559320226604902794738459087577685541761265987728260209076242442721955159426268837401269358111939013992808105882803688270351082921087597824856300871406110588953822189998555910083101021863387720810871461379022975889712175258844630955563422394229869374942994384082165162186677888962367622402653828080814136650673324748620628484915087046834020144172580511987524058939060355182314522611642163077252474236224303158543636722599230700168575706849717148798540858642320216427550923258025654671882313895135067364348490617761150021899156670781267225278309229351704263909765040153308827140163090610815465387484369331196000637231222109491937397702768275534356435891317618934862465007219424680617431914079061630393901668679926054609869916433370853135620091836822297742812588357161821186337564480685821330612683554282392058412279012984703853301055367725313164223197815492278721533605543601579615500906523203830350844102373188870687336515269926695074129371552627803198063425345363556719815129551908034917889251644142829565042139277166937946627205204048824500776453195265318381531040877895457379039372800421591054338813253904575022214606435617909119139149385899959490691072825589003175249002330731927441001713151743269743366189961811146052763215896296110388830925805488302362795112073716298808666978165044393943707148413249929379081145162850080871382249091648428351936666675589903632584288870040462845301241371854270966983327178296091940531312518978832163108293709425594733756952309277122225473212053774263136707550363091416680863389723251548267324380695996276441714161407113532059547613193731825069416321454534473427143413264315374316420403010851112908087270965483348903959232625812371805238699004516175204686557755930101157248048022690591224590527295056008188943090301656211341586132902684549705301438258132644277727399708294630013426437393589147603489194762461370405083125622058340038925527127704440405261392812661066377614219570725909776990876930422382972872927173333017335986676099560607410365349099097303881201128893659855647979741626188465894601877070525352954839657627678916461585803668698681199189331661210473059944450932228703921454481759617333063310310186993024996294894478198867731470324607503113601850977639464702612022400092940474882790948567293865138350961392236001796034631583783500646096918650158002577214450369139161608909828606987361123484553642897635704082644518009973832164251002649282654835276581386897047245668471367380643340171797790304377553405004808620712277243599428675367065746615434399856428923833097210165778425431313728703504394113801109783794594142160522343847811335997749391933838810617398567785096924281841844440272950295759026937665236905099777556278472777254200202261404307790015462338107062276876569244485287053722828188880820876913829122584729440380490243066372713401010232827715954448572515764883315886554627318727611342862404058316886566720403484130782164152111674678862687341536819461531738273509355661862482387891251107054381375728389212724359765891397354276213558630232106470248025059639406562752747684044157548703943681468195854693910155192732469829844564256314700202014913081936618810708395897570764067071758949928037083888595941960981396511086725263393133046286764708764749979550633365792201185262011701253957688169358383621368125791792047207865963419149775665722637367876254258844808715154070551555593097678347155006726183834610006439231137711084161604536506142547568809127537143523088540933429642995006180049838722064011478987367478123512907613464237374301238195892157630943847868226095944142207697399574474785261343534573102750223777229160770375895545683821350488448047125177380220283707057382471789077696888836943644801580802180135073324826259664900048727497558324939484723505803692720342692939884685967367088695308857629689178597171484532979587274250253962755740657765257090496620747935303687665164141434342971677866105020481420890047548691565969892722494664323852797819532193950430578933577099104826678315615083983647576847387186384914116834366956059170332268424915196507065898012616348956598313428964724770731495817671591819178425757739018846847539647681462692602515732169531711007303434609256332526099240411024837475332519932715385948935908207455419817059732751435945507977635072778464639009248758395879802911671961305698249885638873156566447420545343724865248892577280769374005051104511464764445210746129041353833152418486467285494184683948715415386952859148793040295861955670930934712410139794897434875126557255823982481938902942528105919799697040448103527555393138365348165835668950557659545560494596725110312774438193445355277987320634219121569971419293807906878078451676263205276045548285148934275836565116380105121680022484113920898315561318167837311973206839117014883814267543524756636580096421944803811384545140527605229956377600572284929193240766858208506160042863179458730551832106267160833019725072245431656996254317743688696721149053903626528043224484244763139270505736798876508079165409976206018317414780250764804496243168991292765648546580266103275428664577106344237937391215294737687987911283956542272910482783145101456988921180260408046782649516766669580293439985725687670974996746053388318783802199599220455995596298983343310994957432408923130894736573280234134377230022664380348307950867780828153232521490774734302657219269953479790271740478643833575592719420282514669816242115913344532592908961903154907766073864502066880011758207442147791956534575977251846869049195323904092481925819613243817074309755887751932533526436728039886081520184409598858291521947933506106346174293453671056218061879090568881188308022090573764530138923453251242835195230717522749274561392620041681429328308419638916474271171972395201591004839062189751763248414595326719660547931393090847672787978755463957555114618927286885911641137898924962043657333496351112877192684483087869273141148248859584819170607377815820928873126562311603415977751020012266473081707916137304828580634671620796922382375048979191247992425789687622466178124519355320789685393852949504475943587767474871692224211780318350314002680132446848787855913812731296496416069034141597645047835867643828530779834582183003249753133459347760025510214926337750870135732605864300224819364432647674875265569663990215890935746343513819974896356715641537085109284738759515135003136616286378239975922190763627960241664841442694410126983149629408637718366195991964033594757434167850413986271013340435635885175519440763510031906550363539917057508371035419734965976885859787095092718811592603597218216454615391294276586608592149694405107264998843477702523317935493643355281666290253603503782407405694382068679660138956118707078719046648485975141418972957299321810492223197670844859657721875296511954713301624033052776060445122369589197203031966623479568859393801344201248863160293059288338781535544863875171814078582863330845024974266536849912821875477335418996387487522351978717059387000963216111301056957004827490717307664354966957994161001604042958267628053831891964230374497460075368860677282132989967600515367417860636981268337251092300330350716808231806996853244342220136290573075466069056801447296993946578673792753706099488019778285330207987944556160548331854278064275606490691356505567876974056674058389933750988668342897916256966693373089589261490720715910564458264052007253224399441946944664271567515964345111295197938000912769413376560120440070787488286932737136267312982918632646329698369105191234956177151027513297911840255134938636053277211031036630131160965497662465159703270658211793588784349643487630664619721855493914028828773254370096197259319394278372077739352094156142393348838310514047431781258815707474886825599831484546930175148934035495710608458966956208377746074457130071814069433454950714575600501077193638891918841767756457884195224163259265802255462967259212818306739285076984258808069369033265318046563170116721313994581826760412471227663863722434321620961761096494887461406630123008973271249355617700754949011744288433729026987762752402032748684421936377534685651267714223863325605885777243865656148612212466439714786995044236083992142725743796535969745004824318645392618826544721747318011567159852396776089487478285674581633407688757452970582764536728060630122981679131888301945350564922163844409820751327470990527438894137465648605391481035129294319541447189296860907184147323639724093348101613662525533960543562967391865644297844680014714674189210313004554371536939609330650558921223767493851282033441010487906135024643758724707781672358101015452595570553945034408901036962288713867262021119368529998636236317318111445061777204059645600728383358680241112486157676324184222238953819759445166140365192977094184538560025190470880736487306580545867300784662290652383568579198359758610768790472775051093722198472985947169725225482360346925855897498946149247237375835559699765060629918440757169355895318672864539603283368169230323463560661073453369797096542505884937393313214250681913016333318861067993471501036981752553861985196862828627349701818373050944974431059473169082135193146149543378300409514027450507616096014333275130972470076213430732718389740198997482636861386918609023998957634195670956457766482344867041404791766706008513157133371395531479224878832747709283566528806667121153599939357781931219824346864615448552606772890453527583861139860259724453432545365819407464362866533399118787954879745047948594482585268989562765883202013641121025547955376386282383125212508020496132137248956637962845845973165837164561486625751549109905633655289432089451781790146877144562418129565335037955946617883512418324352471690530541379218902296228413917693396903372771605147890061171279760950774248638533453437863074602749413288451953984664229186247715535472311067729240053548184955647326754915944941332203531288765248584333702120276852070723141806182844686624073066323147590600763355922204441002767857174421679756813584221755585907646119418026301883009949692820135156237114735184970725380414109710554229890748269162164735355278319713651330529712471986082590585575596088937407784843354943132625347973694414790691452774396423264678954062008985977363430579522957371282569230777965343411123903221633231215515626709276248812223027285639207022670706447018960643492599553918123452973025560373066761787625335615500577198137059594620033567117621926521743112096642509821478286077321945238477736655530438646270807232736228870677689521234279608903403560757954238948287438962586662940505477366777879787314252163047410986786194778198616618664478055935669542944186163585654407262605922632879480247952397231178918716188807283413421938579618091925145538157681704828847187585731376867615102192119699156161824970317838459414106970655822881179409547265687964254140881195531662874872622262730385233890515598714799111657937802149259919991519945483945844693860931102872980412374450637618176995369950991687093104614983522585933846131725700778761845130466243119100851918354970005958436661448732770345318662093562102177071792243204151491797377009696360770349087260222180737863013361342497065336129868732844948738430663208571591129740888221796841973776930488905179464666201773041911727664360398119016323871722031157553396426612582941067440918101072654956396384657122728483019386432205072043482639967950020944679330856446336307717837837385090941228439779741745118677304494477295569201333727370940331086166246799890680209523647751868495291892249954593029105040817782972904420369605811081179203688012038683328179514915561752445242280322542339859504447571360712473799797507925854649826938831311551437065653294723826876593663525670249706289433630747556136890151471731771159484638892005311742142092880825659185938352540049688043312228904353451146634918748038036056468575650266252999180788931302954252690349927304891497242051427536622987778104909029894082813325258118202213427354050615461617114535071770615218302361796050516295913090183180660871304218884594165531714206871499549651728720089596958712486388186343839282407244335924789911444464902824531499470343855543699138249465338691937648989019987838020258783206956460808188449523428591179567141165759340385747533535564662999234593393202132454340026586062440981300387275525882193824765961260503688006495830520319834206982991154855145073464658436518541199900661556008737954736560967953017077581069788898953978901390129856340575766050013494917892383611186278229135277487283988132350656163153686633932362660852609950983451307097832870920955090150562313519183914429695725322972642053758474541918146706315963307130340372343466604716000541674229340035536457380625251669448854438261164195495315852414625388366516495108468254967489405447559857739826834332128130911657777825052853465507415795110346838070417029230552659824037192211942789753970507083629456086258927369368494631039348019969695237339611002260056796114125598441253510854502506459049775283827752039972470421269774158919255663701119227993938033449167840664736288718325312091827133446942840467090518180935295893144238963672639551100345672178863331171145821409172522783647284427362307446577966439600805003806712016595693020597182154813440466520130423139774394769137363895097718875760035315312134320767325217809631765945163475717821716876843555311723292519546597865959942548614275885594596036980883972879925265884449545180152586831224424839918489818303942426763163117724784529673845374602488844202080466268343284012742794843215246747383144180113301288247375874530071280981183849984754488770025737908875160247668145627251190403406205455800207271358923900750815830501715295220281130978662428916591719359667871073200683488288629333288185864049918833071071234380173523329278993165533597401050144282816204009741414436007413082885941272032124589351316366198416384883612058957461322303561311128661184735538183780752211192620708485962649765166656591171760456382753362146981975498898735069936985655764304454507068199025988395688283872271737720625113860499853082468969894927918555398883121126146959856518511828197109135956930908345506515038904955932710251582529947126212923517247483352922843050326960084810877527103310993535709097545004694003881824292735429239625640263987107000354056816443523557412192786610173317642088969037551160525600976154686571973224916142660461134075303191664212201458422137587406422684730256700528260572106479775076476446743792184976072230828824790857097813180816999791704418444012192834487597864734360686974386261691460294265118473302485556631869843613055625258335999148926621815202842095071716605731565166691227332718221772163136171518056541796823772113388227466107505692975911277614304034128101003993150314369842333146178930662307360433363686420164938463047037026235526864328275606799357554185939234549568703020837902694522700159798958866654393292125389011639323709060741988427325401203176847374081681280503301092117988652671884600710639272140610130252709403949619656155771107300254365257081489255958278226116635569406653866186623562486656768372138651832508620487102698148151117468030927900559035125437808461955026875049478136757143421592239029603454372794317217777870960226541440177000226708264254739221954617255309317026976571741267914100772806090838805182096964017226397689538697693995855120562208345896325298746733795612209204557156940863121387545994652249593235139094877903181957276000488570948629089096775062643196134872824451586829875313715317142411928026177877692468262708928417370819204785477778983079756767930486931248160212797208519585228445248236751685229628220129233495919815952052679333736937829531982949240148997503028794017271526756328732485267737054165043608984657387792654652174139456596840944407394396034949315637269095732122594287935953869497311012455072326186625589177375146688548239640314490975771821525889215260989178971430770035991791746844589543737205825230290997028365928685237427139924264001449977715031066688576404526725615909110870955768093919096659452463545599683223869564995804498152256248808871931155717293677697938750352930378769736654235142647186084281373380631072811180389425926876608237431187944994573366936112780289748061506535177427680590470932331729604124199648520940744033935320722277098421865761724464065420344453485330940141453295217098618165626889053266411955362056001245415607486150678532816815283362050520852360395249117985187750498199260442304739842099501883559180170673493899551926029046076375715857773838784871964026300128225192294951570840236012665955277431069247106570306117340869059130325611383155192795141979009456428118636450694194112776159753839045940852392619828225932131159285569855301244490265969291543844294243671372045237833251141208809735374988376048735044229437278237927710751199454914104494897723686071477208209560280957970688031984997287941772237808080635984363903498340780449165951641884833852977892143816692255931818377368129419117292135422622087908610014741437242714415592048067262633752569764183385147060314843577539799761587172487027532420908047880004053534091169977937572437704031577618958065356496684899946961317971289140022695908066801896564711292824877534334729084543580854473572753995421675940631303433270795862038021948583461198508423093114353172920112619703450681022292225734542220536552112431734062715262625688930913444062625305589500458710710111757756496140396929500023460280831531290206693115071194855648574553740063417207110979585909229221297189645108726394244054198203692006511887469825198403110891010682495071144323024725611276809959982000016485324496528728991913712418583601224362100155990132867206663794102370546223453518872605919784385367134989804326173132726823177594368221588248348090040524026853441409776198428523578710930764634774036227174723283114120296561042229934056757880275481531611037521492433806442592896862987505020991006750300899771252818330084241149428999741094609948207137174154526818355668326719079089748550103490542815094340722099840167897064606128523446323186697826388176756525792074638534842520193929912783357292761332483386157996157103206857721652723851215928897501638636732424817177518265301081611579785521251142140782607886088695568087370385472396739339239910758313571383423822680469171840908602387719727255050277115216602901517467076263755779217350004731129462973324657815311637843975427624879851062208239785153635344510471606577592331001968589862839090748860456652873391374251970053796320154568123799000592693371155433644095331704356027844591373800039788042059236173884772107720437149390922061282062822582137815065940821244679633476398381507642131615809624143535498345124679495484130710361520058446749313874142898317378118367792518292410485334012406358094110767933307477918097157653508748534366715741289825796832119830082241327273978785546270164553429195368821725718136071020339836579027523656630403546149961888890532979044055593331247477761083128678858671301524229640258505317276674192236188258905671490308923930920416042485304692430389674582182498296120112183076392698569328897001501853043693247295382800652124652503854748090557069853313457153585091564448453944773875166795931595650580786564269058469726655035287454618930823393472358866207350723464815593810485503701229773846844089170190842832510377898303367096776801474373735957302057196699807273508189006128998059150846553008343112406723603406567644524473435889356827755295939653254997245886358361130825732382136048382248841330721723659625910852495667422370813574588309014898519274075500898166029604308194118660438354517041073049201571593856576600895084242684213161314836343063161650185009865977967670212019916779455081692599440526359713285897055033878953154402348367240967237157840086406566394424839954515396441533243803127911397144880233868063129094777221684435638612962183856681009560060364415194455610046764685157467468361729003973276355705615369961351502396184440953395747073184425497713239594814019171411536327606572258821438490581426790987895850456067057197293695598613361745676057336737447230997160539854133852545264140124646730955212653347547089929260219231015475510415036357968378931796057799873217387105813941948902954464532340963616340734772976838045795848530802395757687504642396038766378247267275514470070980063666420830189143534941900385696574905468086263801294262356902910714419918257776371811011843106846595420750550291159220468730184360400884337765390692780973585131507738424513314799651299467328254133943245160621606281894678001351940338567849439010653310303795175036867908594471071892968174231888601033463455351960662713681085667016966505983371153484214435371429179892143938576188947191623445997397150659754139181168521293350245010776814753090862133746225144023285470450735381664415544504395530880079116378701507373917043396100719905130489940710995095913577639092541208068596679318325021420678999798096312246324139425811600262348557235730698059577011971252199464071305060628466130056202292839474227489939304922251544197367916476824930703946634467132477975464205599689060277124452527757151403702374720805501725397995742977099669414955913908075716324339121695931931458478202379337008776983747644216697228000330176501938248443941137390717553581817429246051741030654190866320896803306390567671837206744475968444593298382228383463459591758979834889088698927652675403722984604267340312974766278333631528070569605056891927221164024730061834609050821824500704676743150568278359917492129738110074933238430385178409767011978136797910515564609403586972234547712866894004994344059693236685461084314307102856124081972724960234937550382045418904761294982711268058705702323932379341537346190062031563739148792426785165468813988453479614558903161014238344590937209735172088057309116698050286689120533684879423309871465831152907331428171267400989210870743981040727553310546903660544068024272247768134158175069092542477519617058235327218127085918233016887832263140386726903671317621558901690628851804427537998928064527203355909317866161853632873613066821073978903926752298756428807122141224927333320503821240977541269469251120501782523629027501516855569825310269659255412097513848312517832382295572010124594305107978118042731762014148872165077976298914887737175413072359865605130211175875407298926944612549069598436024369652314881202315457926348075801095304014725581057043059678843262231636718595560165391200221924213540027511211957134816513036404932234944234142471512893718189665108766353435791597957824691770255267049950279077170575125236394136189360390708849356720027577961011234709248973813300031226719530628881239019207770298709665059751708910125637490844357803567973125576161063276730045119613764012818899785733299633303865758144812138423552536750082302312306522503773309765911839296803048837886704027882073720948375555500484632254378935968362383750691903694122977099855969650945196078610095240300668693093528026598884376086539810220328264149137263153651896244606584278463429669248314551747816820482910897393486805411293481354764276704539553265411523174806200144792422437753588835926828237745842441665806095105874906464450297066873287857995523772079504423205851964378514750985656755713506023536245825401598998861292365883198286430790708265204772265452889406623224445740722149938465239366981048397549342833423472619595107286460863233798944053121017126755336814548124791056894868867113495458218207194957391094551919716135030259690719284621611519319460204253474353469929375142620873903154180235637644624610900588790855863549125313418345900497399542214820721776935740933875869558045929940931166795734635447001991033617060966566316032515293049237850429530465137394275212767676756958110825419094874131122919946191927321096829720415694138177623266985795033129979205924582585589114403060096334460222679639836967583746245015983880236408293301556511574828969282725689744181201547185002534684638290346307094496523587215175297364666571324281996098071046475309894155509246831544262545169916705366573174709194844888865328855112248510137569974819535140692455278804876428845321351840885455345942095791571249548775103108156503035263012744545244469543172999346062156028664076443254159456614306028620273859928644324920630129895328523121914750955941314338653944315300933660574590258380396529621029774344402139583136248868982100879027814136199471039231108947183868285823464346776883509425731076515225988695855999882154230600013487189345166866682457146945367506978406104129772362505975940359661187369575368354910792308271096699435049716381003522977002426140332816214437249357100947529472784432089971797841315651944921609839372664767363970481921480684269342431827362629614264906703916205951876317870339048998518859364177326470849518348971559306130013689716572371794157928295000944034945130869538437277371992302090786842577922222139356177458519139754286683571421306261052272767307175986168054350522261911935480226747408707466750894398246429140091959126882713686954424200907077563425132669212093826377739642997236140201275584976822110713986194695698638455559735156862603365339550436567224063122334012015490861949074120790136279599980551096409185546822829883156042047958430803671605851448329414859967057592313222173405781369287339536306279268862137854913032383766536493730413549158870809056725795872514633411640628345850224564383683699987745142309056891370332521562516581282197745011029525944188619143123587756380608700041962728556805592327666131248108059414343971752933001272367974799904394881381136684510013493183061261115864375252464490332356938662308668245708404763419404794708826842726513331835782373714152403903714837168684591745151920865722307922319689244925741185737560352687540255310483116320199922076085515380259231856015755298127352587860220326170366815408960978634510448409902683377881449874414265761238455199679160170004942608110038533644368001739485975811229135694606549351492887080144655744432975095377428982648168328184250482024703629859147666943426510982827383098676910822334342090235657493600098655376187762188624801668481725273736817363494337683770268492994248625777802388672080356892386801858624776258885173274676795332835434519829331485250219997716551762899861051611965099478961101299216032191030004839365495789917460521679628627076081833907295920132717878395900956466410538202797011042538995235509708338908163306957139335224291363774006556049002312412131585032075195162160986401915291543179408474828592528094422056738692324745124523744122970727810400997699371338681264305108002087418157327725968210479185667139227365451220403934602642740779491759477014644718115730005546811193392540532140326608653344391129923033711155600869540203101256258396570353729326953627724516706301180050830220277168341286198234169656092814604392424946504403881952920951365027447038750805031819318832762616060065010481888537922294811517401863112579088116305947316248920024020139105515009216807589305644177351007157668430293616270365170264929057616789576400702930025327821171099546113340205980015219366507608720408093182193266512689096309101653186510686602541703811538448705339565778069461840020684347318763228399267727376520364315876756448963919127807685763372892838358940620683275436277450939911774984867774763781311349749403312300379803680457568417883578801549435331934878260896122645964157297384348665351165149688275785390573129834520938723847138652669713003348637769156981255843459146702304449196056544226695414331148787182342189885139360697100557320356492201517031726314716674204960752085765040362069332869101072996261866234714431428676305139314771650047818488343343511471878564066596618833910081919012991701187009727814000616434792716545717257617905383591644710505842916555407579464539020784638824068718261247922790690080558598940051601063541335471628373518674960248946185308565227249804168833949433801686824927307805403440336986131355502438649469654383889037468785633692685432979876702950519382355436849157673431264822175263315545509007577509464069295444590600931722836791654734840291471338454655183035017899540917811009751756234703485121827235191478137908821709350952854947651388927364712805876019081541817408694610202944432185231848524968920974475293703127379141983705232810924640740345621491901739922695415344491335963873665157567031464744273400014880391600478929556776247918308258566859949856877580963331486734530808399246590932925595492895715892924619369703794383885505387529521662689028160787553967371622802457116260038364421467499645144703023398646427675523689595757490303356155222925923757686905420082469652355466239811013194154246158673203315901051096470072101095343162571182387188851664902829626547797514498877928093034068179361626546643727207334871959131964902900217602450711488618600469070042292786643440985081373821860237293210006473896726098340039910920325729927502601573743824813263521420561852100218711665697510126062576617601114811457471320578925565215473811380310887889649905096132064220226527667708272663505844732612603730941220903978582391181366522563712850154531599800569032538448679436635538794352656665034054681490333265765878728887096991678589447785930110867805546171385316455781900988930604065636245350262098254340288364850825308303483284019615323031672790432143827339025644438506511980097245088872349908636802150607810527327134084090556681817046429535266696510517161733440763617173743997763236149574219045724988650233088003097791667816658752286146691992924873345807724439340179220145741423244812345560738525920586732675519508423811119827111641282347066262375631185464877460611688032567228041169773654511097663886016806857902554712550173583749287008180292985470010544215083377847592120663055786508332497068622086998567314901493985869509010826188954385680433261850858166659550031346320571173915329506696210536793769006163086062195847593612994426473332634704476924748532657160621725163794717208571524155255352090942085396229012598038469882676744778926625791163476258491734598370896950578133389966507299914679165079935867792072634084424768811029431952173234074812828593681599889763052921788414691387786168049603137434700448589745366074951710018326769872352061435197065726382974711822054668229399416578738174448460492914855688501495764903568031243749499020648226481534131578438370600684536781121340697252152506435924362647674738324073867602299704387339962540511128116242886499347168459900170179530123397299042113486489024166617049134218904250828102329641216534896891275036282638847606560108122001375865645135211586725572040522780426725608853922433481504010035763201719139524877413155995751255851789366045654608432542799580620392619268476953553022127411484961104396986051467614536802590100303358864949169692563848357267303418824773881591132348560875329986944576247439749945015437887797666064758980073688911785509059318218956733319415904207010577636337308747393755245167231585505962933385493549313151363064670632533930325148170350546886591972988429457513035624247050609153723253529535557408687319951546325611252685969792893831912190069200434927021701964563169806039920951639877488773061691878302686411439179209085748511610846279748348849094957931709619513378811087951337228678156622604986569653901398532768140899902617298483985990718023596177678308093134736782866880294240318198416405481650658218303429419246858117172985193146456203246000031601022144222889919548771397561329016599379458701262744579593411270282903393246259181857029568859073314261455757343639380670609921674239023386406765795545052059703804761673329459076061027905683136020030781490897427770488389537238230187168329012790376321279751791889725571899682150469520203728781780982300750114949558999728301635070605512845560598685989994853062170734746396977553456372933841999622850254716618996133633246941935286762751764623112235619545217186412555744806290674402747312652144376957450134134165227282584147203789573273567930385960652204761634355395199935042966060219214079508693084750290390468022387965239042186543773346229575034410453876159481796095024956401842422512943291892035640579629351739749348366870601686002902226204601264743151770670311410847702474819483147051687609112271530341777944546946305684129520385063806524456336611503265591787744851088021535310690394062846279455239924591902820417296281122710402415605823885783839636999922435845558138366577515227043633673337454095025049803551308904400892636674815530354512196267569719474551361384500898120017135634522293951532455001185030027313183129459016018852007493380128252932509923687431088528594670553071867508527039243779724937552853613229466036551815715107110974334644544743943035056381065405772097025030461106109965121086487191110956154829264612310530456119300912142240071855799177826210301095370633352892198404517192560179373335239829394954574370657784437892975253052109889066718015273977733611937264265432028375155495799815933460304443962808289994369860708871745084140428343437294301608046778487293379611801454607876578523535133612975451049662942023703076027562592342402458818198734166098817966927545391569914497438543015038912358031805122096386662101422697843488002818201489596359834036599320635295793572284928789252445494075648124092823040591405317037117717155102873279846716240948331795164134969978313466816114033312915920759119933110325722713488881767937795079872062648820445234012656503645995576274299560904533686410250139591494044230635494774500391491296079798065256187155858544397786362020651369215106658958221969206012449709822590614229323731820155890409560605676112964357248653870689937420867105252252922733106069920792758258547093854881520458746318978179096130251419657065608538174227965850930586265673442521290450516425368247633572778928624815403263860687142950811880041271674119469800807146304893830919222591203180736950608019409461818181498457713796306342023632401424632144331183805731156500441729569940346610685824573201126915816428626143839686608246837972636423322468786578704100261593282119876111878855349111740555475029002696571808273350250152545593112337202183425674975181682282390929069484176677533417329842741168443331096412713458544331084936106516948263157329559337798093156313440828219990590057854728106915005725253340700314721488107131079805008571302378865350453264801335166069236336404161540459770144084900001869871456424768047150236630299257114016386867567878138409034336753431826226689808116440732626069866136005174837882797177170981270750221716435298614450038087680272812339473268665228080753554562252783010847637117731055798048619922519769202702389496434647951513828820226761547698099399078319223911550608792874247780794947937756562257795512829673776079185609234365226311571926693303650826921359078659807216924210020913912206895321916098144213615500760137822469867996459909944720157204758927831620192749620951441768640804028977399837454034027112615653651430029923170183819124365735605997990845839699818017002252090713754610036681378808628200952322687996520835932383176316630004896977298795896198788006594601307397678703822377540726330811718786546357626166314764084558120173064336387941561918523597086835791369518008389597292377507114839833600885075116996795697255287296015194037135789635929929525055405094017540214266953882356802461421915467070523449028549778713287893400916884083077735190179587381492721641899129305821872018612932614400235968340043563566514302803435092291656910188801814824596878639542078188178832497466631017421323114497473113596778577367410188518783333364543833816970220185898579064985490776416408765406795627399029121508227570939236758219826417465185225450621774087702418484755331003350462796992299379370727216206515123897847403623070575061862771737285602515965682997797621925887697897881809207590807513058261614641050415267461707706045265481973247941711258421545381361004177002044003200106315082103350087029656855402530981063729403264009867031146371211672866166971022839449554637153874068560822160068207294149200406236579646347451781438984151038591298604174433871583382493914693408905999394534074567460431729055536682748358288068371507938227883113758264526132647584002956781545458919984444345712264504611065570035858914831969114229284270890831105105447476628407844599928045027482972829590504181933359274615111398630832322488675165933091248559390966707069735879789413096816531846148600189708485921671591779636051473935958430098621763671063366568457237407862170357580089368240330826665233911013897597549270251377611585844471046823733515952560830169711451048045937136506259180186484163596946112167851570706999254665088232386000198130728485056223593647629405574991245644013534198274712246053345247412531026506076277159107471709821019262383413738980496989400308042370267612953208554221871694162970132109799605526174933805126972145879459118771848606992982421083453887975587359915625895244739584695256235596304817947942016865091811397743999446145457130650683667695578596194479663620961459134394626523894781735517178511413633836887603046789636056875110698935326974954966014820314513850117095562249429416477710800787636538887721153636237819867389985805685589490733847675185392109488154687391533363945117830917326511127563559523377482755765352043078113918747945258433224514626957911955043916604016692333360133499320860985532308962511021789046743946038137533836308548893573932978440239653681134742616019472451782298869303514318937670457772908570104114137264545401743733607989351961384546556787778620790965889612255979375579992810876377106049664157334293407518309725615896955541294968818182144919992836796434043889745538814200179769534670373151489184683787148718331484441653537029591247472282590260971422952230158085314021730932894179094442798538133566623400747425869249892379935677935911762867027377312886358948268468066199702627662277007327517846993837342467921195810726557410380144188136255134830279403034319774937678649249216106015479717407055269268039437139668583335088459169254735731106488989200576968280577129813500747620230309223402202010986391753913458905987256778224917145879158856483589569584185128158554282461470876435831107056018503225111055505625948631370589179035213955721109988343195960130937382590604799859805035753979128294370799563125390640671543101760548304536627216020868027642448487303198921712245407093377086141512021857966944814224090298566748806355769785487181560256220396593219339563775721462605223612697215013832873838032491121692276458334029256784749920382588364072494277151641869435151945298551593795929578804248549857975020847456512986924463115237719979746013867406737021079513497979024650597559981846995182288719988613213160230707460396173634974893275718297012319059121991396374529682728787790933986381055740315884051373189678352473751795345281990106173880201280591088824670506626964766473982297990191977154589455587799766172673379698049482912312390950288434959604685113381035137271827992934268356833022608173682284522810898892763637586266993622900100053658881806299984943977411622502744488359529276862517452613246738996508424190961184393953780673665695631560825826899919324422031412037177374737431125393567768000935624113394153555837933057335017842516358850634270512728238677756568176174968989272325301702028872148327006389537045520927024054715245023246284910237757909338542039830565106331292485975908458019423019796282822534193950074001713389596476027768963206814038499432745417460803746254648584876152991611758325153781174940344401358119771163711342190788511427571184981442569301005380815045328063810345738117909122080641681384868856086383851332221312237434742240936315110647962948514180147247018661307324653300200957054835552496750358599015514763642184164116063156150851795333075973853745131320543450397052744020111180746749501319477668513366404477082467075752409469023785397493941704767341440412814398373692815786368685731862844244399205891153120219878920121349751954866436697858984911745948775070733856281107104410966344726088041136448490550008991888090535489626653977761115818293431903894271266560656703818163859766007350465073095555474815033225444297373547260819569370435519929744651512891876788811357899862541438723554893037962391973487255724847074846030868058799941813010562541540927478410816800524215750903404915183491404249571952192179983887206100593746998872908374620874120845113767154903130418383636739720864018526730960637331165751313325683855953281168573729330472379429805659297256442512140700951864976255758423827829677234777207176847420684937600914020470583235935951547658369398393739322733702958142837884003461204944338972489396108711654703747833434717841932432496876249502670807816571937792498355100289092356397723882938956708123750921975236904862448922980022749924627233133630541703772653119627843353046297123366163687152572831222699496810093332432081439153593942350679982594328950074375880188714962155221964209653966606948868547816398236599996572084886573204678982910949153737567729224537127081929601214810852917099704583237586420507406451063112228233735003358206230179232768724821112906733147829473941678250569090493370391274602537123617388877142970038702557876549051920308743943005232462445131599289095878918584188451063127414847682255226900099913414334849325958541719372658459264883134480679693151640853201823185604611712665968110664227106428909397824363227132255484720190970437149690629569137969171040484522790042176148541594697468021702891940333044494294736820845113311326782113609928628729216942765994309961495284717935522234552086221296939713960735029422999558690519617339079136584142319921999124010194724640383374656562078683336132344975290966286752213235989620623831065985719588409321322737819409189067398381006738646207761547655944841172310065382909410647956780867044797290105902186326699433532269518449580934994672564568220223180354254007080430554763424618590892729022536342404608305189713290417457555418379464542506585191157809433659583234898274707656197951584774394283361762696505096910966275038392954098320059597650389797042402697212336826843980279187877754677314903685559928852708062155232927141330536251459178480316286296447588615100912129974722149878540564954394509474816353154038031006903774762557603411526992362497910657074220301166281934701551964065174255695582232478628333857080107600008985578192481168246208944453871518856520598340575539444747647284409687492516938449416114314615984271345984080966966344124546434119632346708706298983105443028242146918504901809083694394581509565674913344681212344595207074749821461422723334471728333736103433326743155785648581111049382875591077663065919374957715377869580659398240961060000742065470429196401694205926861605326461708853017696230085213534819958981259932642552054643586587074693771609727198518026140019269064139201263556205602289009952399345599484582641851791294176634637792324334425784985954506729943686787191780071738718315700642272218296095682604444077129326363731256824421020211354840033164912198101509404123323236253968141185039615356105737902338539142517125244643467211926915581895916134814686555626091971438481743836627109213395067923171272967592620976604724393276599798714937043191665111374460522763920756833137233860330957939142176175855590596729379961255905996575958656093372084312289666616679058424700257778057577657971546884422755521239666300781297404557927526330608743933760349885761795347736729346192224415037201716606554435207881336276501531427562516301195118213006336835078418355285458943978773241939876796086291601505755775039286605445449746298153462529425493083255721387426374547307429636700036960872047258725443980320722544800334239252405253675387501514272946186346988212295230114228449587388137387971293617740084238335212076413086980347790103392530169029078436966109032323268184548266610395978266341202801946561787431711990474849697894525461395076776438201073968654250344790899445440817716001558827342649357893719822636165765830622662575237162523722970011941216591648715045837504685074318639054408219029530907910149890565448681573105287347568483720043141831741514170593920256899785840687074127679179013961794326179975467423928749706619055870227851712824441809126438066929816312576657333900279112416963877511771508483187260386759516589955419577648942741718050951460508357036392074199738497552175593570233683002942042499757614056930312393307243154780700688522688142696054704759071391972445958103332184578503185139239754598281968065969951609436200463728069005227297849202450665633805507198386796494007091314863622160634396011215044375506523149856335401517605259538670463644127481890264887691934103143902906628122977554870585731324919802510408484030587869167586136082829960865807694214230682384234422191794255161824496784510751471478410500982975739618980135167516574241943622317633411278283731426263214504102348037644583332955678874728613413632410034705716926077351068432535567923265187019920582611902491036172288609705625240495041781472105496898221381653886713087525804099629236521417926155624351059284835155154737284727775316958110932956540154015247704848590126886764148628010739040641388090804918472757523506709265645461601588698919124175290443957820403712923092573403690029509538278972582736511392924312535026302597191375232232179350908720303875284095236571128128273342572799093366036073058914906315110698684922458247871412417516269103562784226862675213221623176415173118989854904939396033653654095959693796391070138856193300346372460142925101893695501918657110796685692050219007960031279358299520764499200888509526893875604603724154601930285696615793099353113787024934753132563983094079971203045520687545726624808219685696586046971752348281756104239913333745995846665480877029510703225236217538951943683850230410768221647192119461055508812675977916941899623138473981763756462902874349980321530267672626013591587475326269016157598725091909770361015700653661771000686802051464483812428180391269860401818082744291598495740946058019811640129240221187966856985927791434546329239132667094960113413255743117909011173580398042032689316072118219341830694630910415932962439884619328433222574992409357976731091348684021695048191164364875531979397172037215446163735521519624336851382112644751668117271840457711461847236782142476869654860800077524557800751400902318066825144054535037237014843500963051054620781310174656207368713068599130965110637975243628022575742130207729292679438666057266175018245212054966950012398969355685720267593636047629190445290462883696361225962859843166365251478214367233944293135771032249848201799515732772366896437109917167820813586122613645304169294484524575627535206449647918202627823126434146491736128839209240322432367955737620778862172679531240157711870181845490644911554694267852359385903841106101561392114961331202386379272515166587316393178083184837490854848496205184729677052243224249650004146624640629650060146481991720605125334807713421086749798105598066327148470689730122432737935232908518394596941815274025863154676102675840014331763720992847783680584300116878961230745227384146235694290443119000621286379502840081842159739656249671402419138390408385965209847411220748582849462637311781448955784338825030444532738930983721296249411575294863313241412534222252517732305109880428184903474891128078419331519172181871519282190367978106926643466036230080713017030371433503585948044467774209478947251610929625509530109846720065041486383093040012938868143770402814231441072719736233729668044252790529116746445586386161993164497933249559980340785593476095720703536002370736122600713071720249368901174542824512651667363286420730551278446529291596523945806462409164611694058903934810029872373435011853950458582634815806065927924224217512451940724042071761461518625137399624126028428614499490917036524529565498669369343880308679879129068275944789858333717443041821128315927383954699013859795587288984595009128288681907059287178730649634570389933220718204482780846017442985303322868023489610418571772948716885138929098062055931155243476544833818282945018193947301552892307231108869990252962571485176794443712359563030011626370958423554027006545291151420478194919873591447020487504598777375263727384081855382511801829645494512438244571872201781136619758700865990157984262837511163218625895032942399637742937149166473981214465566168248686474238334780490979213313132662882245312058030377413485466539115886437255323735350856624982127548298132025897031330289278588567045270158922889615220477795266314752132784957251910692670178045218664392665951655319712169237340981712788310663193775545068173770423121272776306163581992589896400104588638158394797541095080467790968924175869336082636428410158382338919656643691591447265973008043091886230418459045725911649718101360688703913228704760532223732410270602983811187444823043939538109117090863946336285205300307533644978628547666807635553495444780757513394412146545594898204827795266220114574530443331779257246916803687620196598564840632715650798480177432504044064351813922683135539474219748356190135624866232821470929259674811893686309035283659727739182841835623477105501724138365473333565493825384308826765788517663750583755123205920960621139239712435902345787876845291351209278338199275589151316063715626609357026187189650692842715365224647531582920496743794877668310337720255857596479246051315908829798513618177084956313619747371931390826047641960401762024074500058801926982242884238535044983009510994114993637791033519367757072186198901552383218341608842207943523945419142619048418843803537526612681534285697023239765817384356932405308197220144065488777636308081686602977377279409508938539660744709843940865873279459905017117438870519410050348017609328191812849884520161633950757684753847205541628629226381278207890031068565493017527392519540357861437581207178500506251462304971572309808964163606757368554791968137821323681228639583140347227895273774768177670461462375003271352027796106733837508185001313248262984424663675299413548927993155780563731523498284991019033059434567736433262143396356320217766481936116338174015032512820451238674133252484388621507149600377261096520140468167609179787983578452257953424158982142441121554120874411193022006165357353461085375885461979305238134498045125677582704620260602010197761033918667623522971422198598925253149262208848173617340498226929970132708226330348773413698912147965758343009836928091353302906044216985749533445794186101100393683408809992062219910783355649613359493705373925025154643115452010601075705639988884186068946014558400011042573667249040336656916236087212617210005388183636965291152069535753589702584914900717202329900486866530802333361886584728589384989619498422658726240871427734067646240902171076675332199687854591393064106685066001264321475775194534253481426518462041706234988755478916215705004975355620958264178462675724339113333236703149372979141676229292547099232964384801042733121534487659279717749584192589503544818105094300426707357917242780923745468255576566578695077762099363929743447198163427779035895412161108689696458549632791398903971052337775839233324300467847398151462079309820534039236862205360199024669953316390309230443943557294395260733934845043762434340746920115969633264579094728100941914290399295047951562439027399571814107227172419252897778342293721249899601553576965869192064101508612180368904109308959747394727037837718304059584621078464869157568238653551544072970335537892835891587767992818537201910823484150820760534593075533061813377295540972025454240198493806538076802511935362170589661554445414698870855033133515056433229237910767324528816289036564498142674979456511962392695282959708709624604213842885796698329193027058289129282290558081662560620995795114813802271743035993498780871192959720844340913209623256813820431630706445681498055534261893499115097675999284273059433022904997192025491253764954362179546782868926794380784804235357647943259535356903007172394954737505211105331611554801606867283759451149691313046400954899589706134346085995394242282834169243298142354117028694969917718595287501383534583068213698948371513287158739677269412685439804583221146426356317864208203186725833709725868135613542939540054670839221482287099169826143623577867016764204720599543043196157207318744830435395857467359613665157661694284137446613403289594246896543280701532654683895409530689991701531043840839470627052708865604140605846780467514457403883901458865249019954682948792081015060462354443074946725967157277197356658453459015951270036947544929435061143650850374963730176804186112894129622866922795159346226098940219193764990808974388710194490092340893449001897455112159002870004048265812917377925738760341134818145414533867018128310982485316537390339132017208306709839535847870685046555449480606577040611366536801215968791506239511240581497732740780335089965380867324492032274418497428159919371611871079054867960814157384264258545909277023828514531423383495665274057632126193212259765333723997400009244288610697467029194921324931951583527162790083227186395205391794327059218916806849991707790974904458695812608934269771888920314975485265952033187593888963352447690531845879913742048523901147974714733488261377364858535919254890549168154240877779620729888655822081124565574049195416918984726606489044695143834327405872531953177979555648567955564627733430345933217161606594770006447818351409715166588540005793238021350865268897994450771634691608842703849543596764784882100262680615216003470288271126399003940251996940143795708748041642990471445574858592367753557158507686190282132626457138516849761791264248507130897209783282405450449685437966692002473867532866098713345648844434363994901181652552351514987046155878817443869786479918891915520396219911757857495986992334431469979829935518244089494790965714078858698573866690872215358038742884061449805249592921008390746264172957973462841899295526905938842201614601703272327168430032694037926545010170162047853603967998566692434275079080562016912892175494576657496807064001318027871940719588963768746438328550113810948050083855842891234832627285865898665911850122687636276345731542523600899478745275044285455933480465464064420444550620139478719884932756940453761730889675382297047876469277826192220334663638292331343692740492599914663253530639488579777160379452449480290433643904399447926557832018328971858992236256013659192102701553098850104827003850806089346676746566932046952557105078309557624876558045478489503685977794436258203193352565773479131773685498971212877744320564513982580869536185433822971527619969494451543901861250158537619494200765442155089738421237494406234608716167229464396560400423695302102116099424341177861784032723260808691713538567075938479298873602314562602449687817535310960082107278134896507203722828701235480936615492812041639483615411441015525388738575273513702967016711701424233267562063516413631815444698112267060395431282725481616541788288951560932295247435790472116243794054325855618459852148913630662561193535249516998229336967445064455244254069969338886385294801333434625754801485787676534506258716543697269716436124748481969620596271527325203682214656090623157464400732731511890306553310323405264023611281369173330113437660235797514252801044781118441234721571073262123256022715174781043193819054678715642580956408012075895595626999361142802020115468900585536219323744550504695897859041112940919871562475645480312090426011542016865995157481077290315156054688297104983770575420747273590751682909216147536425486879888906937070822370820674378601753291091902556697595496784162551765388777769382863160007979942463036353979373784811063493783615648857314036527046148463680793170593076580151304172465623128841572436503936231500146540754800597883580704071649987895868288190911446671028344658712372604415945827806615945084953125218659629710539982957351839286163607251993550344970518787938673686676505019782184797088858284725897899180864879164981393218243276296010558178228788036481245428245883723182768930025181646388849537781495962480297952933581916632894158856706178099455256566180373030019013749274682657057545853213129775294747165020688365630287484035712034238393444324977744843049182148503824093630009034161913192088997616973587575399130380745100487558483813803633037680505506132338710042151434677436944144798729137627393044606701296539749571826914997731143164155148868658939616761778572421258246038990414299810186910215126552349961183166469956457014786074733998324435696961088122167218101647999392632758514349695753467197782276273833559753128558888924036380035497299548041383085794119062347915821545585918725564554676042654405437026128817784285176373461325557749602626722789401736268634133089224919216353453129258743846400081297330954983370979355279559227819761119391260922822775316371987606302253943317728654064276030182868760966319190602013920401240975829329257225729647457383767397189393726789011877417609325773829749484899509900376876590251415317819722105359361131036590416620239379259604620600079362902350136562130735067470653408931393726357480854994566663827392951150378580817079183661987269232480244813510181169580663574711059978027713653708722880545162897701435859897224291467422193513002048472447495093865284658915710309629040149683447740414127363447875529319726637621354968282388379060869998436468740443216469621481510483703864787740053296746642800546046125465678884280985503190769077922810390840150533097805155694912429810054546169820805894458468736869358674649308048974112240599952864179613219203554784600031277000753859147589685078344852770336721732762488014416615456589400111318149731138791288784475706662729986007902046401392776175910966563723109734243312480500132088993115326414353999709446800566753209166982938446815398034150837781173754363643429206051190639546705834865986757425314408620662854203014939222648986890035020292314296067113146493736802833570680567481936086734298397778593902892411124724875605830898647412833511417993157444192915782407467026998410802925582234617983293211592519141663376881099649352964865677053988753933040136194896248451162155754024616073173117521499475446054262703633809864917086890677993640443851117337698423562427369996844299754462677975037366030754213299993565094120296911309535197946594015776662824853284172746121027527455620936701049316837325136048076863325942197036849601422342868113349589347868256998701884924727208107071630397333958215555130672880855337618647985836934711203344471481103852990945589967386217243655066941881228360746995228661565400843058486573504100649311389959831901230066511667170325755913833968395542470580131063771570143562715444502112664559916439024122989008775195510786542776995486045961444274023873204149635521027266667285492016850326095727865694996008868599116405676025286677694730965737105728961266107260876625602675410690998396749813340585780855670289039200059140113092602903226551907346747423562579804423296657298139671450768021803657023033219379846506434773435954421364450735113780594757003393987376325873709473184530338750475923433177061357180121419783211297204104768411214939852824832982465761348662030308077931722256172542147571755156343801785399178729613362770042627739046818253334179803377189871968132709445631199262694926106584097091981001128353520615925700298483517623631804710281958448102181972057242068601649186202155817289824978373776141005989250818992880436032214065940604340932766244265555853398015021661280736849684579182586367451619729581265620732714897661823757709435404451185733379735439506394622168201045583878407904697785870499121892661985146810491894591015205597636263528420221457704383756594888452439683869385995165930091101661376772093746353691750742372907798430698438077173715396729279662599953575292836590373657289278896603080822216215400480292976752981170951933342527927663521939292476376821831321258323273111287976368335300435827383345110018718534821222409222393580593404480751266803344633822056965376794709247154527195757906673085753129020345622844387299172864503982135655610372778449023886840380080203015022969001418510823478568768982810255970909374075072782883106500074603165004725313217426389668059482480016895615577281351116319369081098730673722487904793514780461778742273394010646876862744345752951562035659486126014934371537258057202318347970232631353311044393967155704579454606584113560765444179949921599235895691552629866781522785027622025402394570813345285658874441962471891058550031876191927434432000397911373481738025537843802346469771600616419197593753801703483492879275659922015039537741274485861909319718502544253558017234645122567071080759654299984606650602281063722020713374724201874253839856416880703232846718706176312904022894240089286727445333821368946689156944839695915090601778384319718528400829183553602404428242710487922645328558056648739068298755695036184461763173386971616765262746577981295057495036086706032024531461967201974494458308861250233438301521489975267057272793130438378585846274108142815116296587217269588266232574396533811845843247756532396839477454854435778184441060680626634799426600739066392857299839700769090113493899766479642373900332489206491658444178972364802385588013171665223193965021360102174960784064130067896515603021099670950713642100307576022756417205657859648022924830571237509663674629722253833852167725789572738783193110208763673705122050753010985985977097506808055810294664277171984174859498684977235629804182258974745042308785083573440856918744496901161517773361015881072684032375637918533828495698507431501761584288012765701239125676999119690400254250729951609429459691042417578530230448643977218861073182105635571280563329171181518731244796740874998670016667275448639208039567670053270347677061607839583659294022343555970326665697486812166336531427863297313289193579862687332724137498033623013959315494897319353161189788835409619440326061442590788740765010906938849587125621236107594055586726108107494824066653963036973568124467394733318472739853177799324511356793143366001279114000347525349698575902536315313425851051157064640396142735312471370990257709354677997202728858370511005786041827561115416748773388104725356184125862790474427592343147668499693287730522534710787422429891891233645787286205017049999171794494549591733344527503164662221347220780330277763585570807281142528089406670945367724103120424455381106157656532922811057337241000281758851268846134718733326641139750401324776109152690818258504334319112392523794731174809242214008187911985453073154083672190206237847103581882225301034209693971016444444639289004750460776108535547155757477567383222376615990576237853733212273151595673786654516258571933237146733822115088684375332120346163739997205630520739307782319406222800628324187233340504488693367050482525422159162716992596839142015382078722804948910654329676167311690125677702778792312301288605973801321565614110715489370095498996772944119603579612452073301814275044905100266869722119672048476020255845969800950791372934876149793072637714050265354789795943293010470192422368093199353468577737642396389932510861812215537189475737263055139988830327721488890501517802675380390588229621979819978340087214725381908976196306490315303790436723955697275178325798334567413489190916423717747627841669993916240659873486302796452781084160428425581086136024684429513638398972991374954040018899408455315941006258256387981861778104651388536368733234923495545425259651268210252387943134084792065337686208908862796453411426552313202363227575661670484223716963664016493702909740969480993773742211025932261300162203150369189745086709397791968923556590098809155939028414710802381104699026506206944850960165387485309584293119888766229487055312710307395105523526027526653896882719762514382682668769423525628000323622115487405225588996499748009899448971425165836448534657615065303274529678046717769813235729908695421940022919202729156758066182505574546786973164592899039889003177998241731705095617102826943173835278030981738847347144577736370814004782516297760797049039545988596382171607178811037424131131394095405984375822689866350817380590459161109825886831124002952911236005146034731717458960340512021998891416401278423225161465359480078008012405274828113267845021329660811891956293304635954577936535797921564464643369956765625167839191792663477160053421395243212098072598725104902194769985800510126499471192014573296902614214832302818487344122254361996474249549770776461097759465350759577212126113752840105123792027065856388594871763306782753335505950835905011055293712860609702360704599879195138552429488836328944308333778246328888540493538165726468049128014113263301138824789900133625047987411826077135452200311160028949325758418854999921503749664032271202370487608111278446186183433655669335094425370113917011483679020403818237794251792293534589831897180920299137120360796060828646358190373150604813607231543675143436738108995976553773879379274884995140082054517316327581737793805859296657187841911461961841350139365050566347720872789828267631387106744096260629663326489187233202337899835188242290365639797381345120649822306529754475376773764965960899360411323924811039049865543873420638834254167718407995310011583063986472969743526171225482086384556058803186350987429719003837828762611423192034476180677761098132685353605834992232798597529647931809623746592415780019728081792643086153022965892733034255061845870972018401665904207675736308972511989587903347132200714185622477064625898216104851381514238924123849003642489096081735458578088646320115914718056854469980530949752893663351125466156254050128888884327554872066127363480052125802930423612306167107778899185091759809682657324427002043149219411284782188485076914980855876902408640452616799578122355819267364789469022707297671102207212753562468681387878313861356941337350614137527317541030353750784370576768999616867095377113853751099060837846966897059907485863792733731773414932664666548960669070895384101464010425199483373736793354091780560878546763621509278092294486538749752695937369186607198643438140399483800610745608513150925070840284139772206103829003051338664065319579755414726407672280539913212570683410249073618297560877953213214361133633284125199804761782932850734689896479621709850236442434046734437133973553377329457320665044916754233567679431850147586123291125925149047912507108486257014288415559787614941166188774045389116760449596757938559918421196153790155852524953172437415579152423926694128359840802125545391135433867239270552028083913756682591060673402890696226628272185283645421705202426096813761295863303409209958346687653529694192368491608374295554290917209098853867412615467874900961646618002890329068824099574920115748917762574810330180323638092777538823701358709038125708074370468905316518073040812253143928415899243528732668098869836780635118931391897196153903829758555371837466628555629386656317241306680126607718070779646037421001352995216626249901946334222872687806263852887678154461110928824641613631670412531472887821769900195171925558629662161891559904687699058372166567224569438594388812671896387370448112091777216623473085650061001981183213846930153767801352413147718295595275268454464614628771342813788752208352188706080351910302134655452897731750849286003344486872555000213660485054224116848871305054270543878094200272448064289402405928422449962501351992950782379696127255492738426781611749978134586302637227730099582097079302349292413445155929121795897830689303167257643955243159843647446233966424348349454010129492960405501147638123725794942512442008071052204963516108389189177677620719161444285789177528864291988897800229720618342217381017399778397288333014664970914012254721394738333043332566703458923145443171770338192373414087290029912084249057743778744124012461884286671688846756952506769134954938992619767971586237213569768729853485831287965444992168378382859608653511516246460278536245627198030366634561636151372013463610751632436892072889609825816507728205287574041865792969923155267934921864084914360274725662236737210769969865956294555535330884126304538616043657816008361081599113420814398361589385411523622025645799131126385447946625721792503993150081054228512415250638328625651707443551860419035505892380644653579651639156362438565864870439257687030851013110829584568395191045713183172860033516209636378553406422713828809136980603354481679756492134978996024354606327573853706577345690261578919761947957838870577726281038824317234697931412053469745393536470180270727937495395292618867353727560969586970841283264197134272566298303291838725637950264959118074884407542275966008549402528879396714260590952850966263274358184857647701582295434152957982732082795569489486334058922607496562152795865446003531001114885334288688232150161032984958699472047544137450191247294302712756567253439461887782977064194311777746280004643244791177772473765788465923772724979608072182350869274914965027591386688677353222499879388089013973711330489330976648183176752482679266866673981012571895771989488686322352617550440561737127390942506358174905456591785555075483657347883129287013455744570301932565652041178399295781882997270922033065856923523760041101254527668258397922564165178429332799658043463932203306673123446587142021827304146138167953013803306635910216956338718765760796230452908141509402894903253762620587544163185648999011401745908128262401028737555838325171391835544504168079825533575161542988999682823759142009683265763057485300907197921822866105127990905609691256756164805645690653297428303986341406128772311161447583767615392539858051071548668886939736881742604526625533424787776413578361303948004408542861136274688179898684342065935742394374328083028231662291593930592198456992624757370494035049718595891403005815233754894033913062996629916789880328485631802124215141373944817113724327465328291214694415320965066846592468839317078953226294380434291188579498928760045022005425102772914127157811130259323427784836730210578453929550095152812593631126500273655787744026271287797501855420291395841358879990937450339508664695309952301472387557634044037326199155828887353240944694842919849397444617555214787153153559610539847334220412337357868114902969969976280209433025606190695007413995035517708921740212173845857843602732503623273656845737087849512801147969631271228903178051044570370398626597246329537329346972865771394425333597226741176296672785046129313910614369634089362359627770997948186929254722097569501325943369635675535877788990477350498575612190519201059844279871056836213689073956618412526469339691705808976394534151881518151874398956424971411127668390629153839456920457815944598493100660626298652136835042953238757385848728145138389608013049333080070848940608318901067277617163082211688361295539129422406602401160778208279136827125574126782262404711181948100645568014890439131345270255110460180897183926013258315030345275560500502131924999554753413735690652874598117880482404414322550047642675326912994799415554332961815662728959885640604329627372791832122600623401474573798697401954255610783510555432389421223837449741043066110319815082727300797223121837083790661647203424144361740518984613389704731010013715171022621734170430255108162225267503942738362284674875121863672354660000425502892250518021876515825197494887164826895682849704850292755175190378968136173727455634198451566614255933414190534475000018410084385821123765346733286546902383438071267456992744161315236079717026438342573568059430916566304400868175946947298716518425768510311400462319735094809930159332721697579495289150753590388455618486113817738263484260882866467012769146028928605135971772188351500007795472989868520290663141102686554809972055236625386658952194679993766561854596720562540516444769188433511067059868980054584581142535418414535452596403525964791875172874799489358362183456420483893564157866341213425510616386338741820309290540644758028562585439468010741979201121467517598271891189711844062234905863159521988753256862729563042857989309553579279523363240465509208810570601153452990879177942046985432862014681386787796987096032620517752834874028175981931331996214635622953610351734670815067314229230459939227989387278509102849653626066104378289359237261715841689861439343293122275121284194562533766347482324401907325722787376236293976466338404053243362285870835096275247559748521483502873569895849364402307709494408252801874607557207846497361296962032001061247593716061889583331602519878214963559580705222357931681772710649080293622419743778529624210998515039946443862827658826058144321203524461997897999796308567239064876723087403360905113206173469399858140025562578518256211519246985114957704290883465463683993688339371502047031543251859372944995082005479459829619815041610735915257082382067829405003994032726644747535779302502181558237566278521479650708828687499754487867463828411741383635762040687980167192089967279525052464206843556749637194793730489782676402819302598050435693537149991044835948464405604876808274237462306784735800192975713794708053577061743614546297599079640860169023876533334836884765095083817013367932280267344661830970960605926024777927524464421441035404470227160337678558319138910733888968343535216157141071360758369683170967377434152276422341713559481378671757132661723111729478718726279191742584433736660871480476537341930354577370845411093650846243444776022240157388849677175747501749379457855299537119583941375980665987461323537681830733095522359287768934669265193324668459977835010605060462199468873654844477254926073491263598021834256320339302358125018437664694455529470970034280670350549627697573101775025976983652626252572225682294499086122458425545521112858153204285697110696238086683020201919397379950677902716220526258745396572596750446487059172964102798412353467115828351709194322686983345507795767781680892784533471363439101721926596183375715628551774674902082926925586977520176691219183602642100016213263479926293265463512370685714038568744286726269485404684969731724356208903342143230874130462728840492958998399720338074463307777583240598503385517740195523834665824807601574059947191520322673880169892555362162023539240457988714108978585334665756815787226706166756582450563969032737897487884185300799874152529750462563203026355279543302475193365728567293303090813692936450404385693004936153271408871783226696509200902253850350285808285267192277120175496284891326524657185891978901334605924333800044911732395102999120362551021516699772704838508441657055790175191120615062065614990649492671748640528028826595113345432307498280342372841342752851430018819634385287108379766870131565965690602592341990162378511099272097044654186395574469232973303317211045901935674352232111588912586287573240343620252295898211873166675217938657714561600467962341130650422769687817066479268527162801726222373302254341308236657325787919895063164442174065577100722112612637646153449077213330174797240294568495165581232021336054870730989021959863614330200666416012134574109225755103148410323861072490086168247289207137183422370022738033319547346183302150925400859500905797157324326806773237323618540524392281638272564860112016564436735953426333985054459476794409972205528504011815676176498422004696247705762397201433199855127539020771232515944726622147180979353547080765236677688546960656798077557425633336573461188867440234587082816739232179508524255146533636063250448691152057662407538311375420403776210845394226398775763203632811244295168632364632381018691398618766171908976618960406258107712308056473076645708529822519008392031140577591814997569087965555079184452335986929639598717036217327425611815349753545747237524011820874567763009581253013515164421453143709851104007846068651920873962555523334578046396183455420495288614090389771570087740148704102608084753298935021684319840113193379473245423556659023442707691017058523581149972134896111451496940025868700153636145432856979593766722792604920612500954103077590746248449722011601821558343661923514352988181302221194906715601819485626047969622409503917651237842997588290905975304045485237371234041615167662754526747642812765619985728898727374366434331391971689087020723072217450335155086962196397478691921695529244113421800949803219335891294846313033611497915752314385516829525428315931257278531353727700893462423981586364234377369196167121461756819825413106283117283668102817381892445131723864348410313480736554140670659509939788251595768456897772566423084352724953612974035456590982839192286387561610367309908314809795890553228344316157111613257993079626075306083820428213685704139658196808800066078140432995209768382286507867095893933000277410419719818724541134108475758524373352928498194979839136136266485085172718453160090812327272377464258634964436258094574031058655074170536324939289100507119083347511280794605919336453574497656397900604976298509540711503741291200842956128206721965026959428560346214670130927056666102398569648151501694100348260950700112647043203155384180568151829859368301738570830648474507196102593199707520004195687015454108390648968625233822127330804881750756149435162309551350503173567655880504440492603943885902206915619933257047836665784595476965216487163420698842547238529385294675170302517274939463266613986222502218708824653791010269868367668455879880489080998682449131096200388980885164062789874559263019918960079472218966165452185388722414413685909153419745903445164918365040042066975149146065542540505995849926427451322797259975340350799804318757893383655315723345342598196696218170565661449516235134356562504093698334395036960573617510704108451877870940385027232936043721807603805665739902025702180134480846856460264561334866902441346151441386168136453460105793582780430424570481172555058590159956183428653390209510961298981317266865789140564736135734947687994986971745014705792406083882128505351860220342834215397610535120879870854921998583439280145753578147654054382255592799157595674129259391275024091486602978945793511126906737876976378386249509123988492425835575742114910783334983470314370005634677276374497572159928732634210896930962022247039180494141489801061458036076588130026798756479245550611576667977742094208909666286280548699170397658543418315911980308798517330138117856513163625013472286488339613635288114316238828094415064479080890578421268448211427726281100861675131275263289322924899967623689090928523166760551537273077727662100656644823246458699397707663005742917022940722951860777916012626489189895416920770163794766152038164483553872603657957757669450440446401251172047077962394093244747288899470914528613730203530365240435405624539311289676098378202152952273450525186850200512192275230218349389164114091140725735506010215155676888199638564028835354035849530597652954387402307171568307876879929479107894617869353753312122241362151271536106950156845004416873579018480055581165360661775913971881008045891276355662048638249408071140414443228626664974144226910334678928456948172212414425910062124301097620192598119628356389812994549043052144989276383585993368884597009466383860724322988335999588046649581577806153405329738770321113967555393287753935701970007787579430928079895858928061111850404704425910806022150821357808558640934723631309842420912174938886849132069751763212329963414302885055585860564821391673858971819777369832862389372838541550328180691907147548539712492797404947186385249095504270574781261006651064970649349522941099600754539716850617037073087632402932576701310581183694626580244143777693628254303767714329421161789053838107279567099015146648423311727218514626106625881382805514215596974528929815314150009393555799944301711952547945950467907103739282410185808841120649185936711555225800557233453183028133018568967394549324164425724453652136703266139057487982037144804147259853622418520562333490727349941126171753185005968258097859339551616425901121178041682956881600909812555046152748993652034212572591094116716720660585658578576497734385085894107019916957936219362723127586268212527829196526867109458024258515250355601970139833324845654305723759733029373097404791888580029371876010175198669048092935994885772197924575256267117946397201270902623893513988833668212359236912489016267857972215013829598946282117603015812403090263502182530071519087088246526097107322261220137466524415185539430752598194824857085807473242257843210725090632582945463588430656808254574849343123394887334442699847732277294115185039258166747803091218032294133929716606924136255184151512963329503294357337218256389524959472408991269683435282403432410562004426587577693123303936780375537388295920246117196365439785662238232501241323862075137825429464397368847613917456957600599096201495340204567310798981401706548594995528543163242446317840289881457203229018994848483451625240935799383097406571764176750261600706601738688935088918250703045224100878671791931077256466755739952174206848950892075221264014186506041481779772974487346002222015534549268993307868012450471280921263453767202976651912099581774452910411898329422234725014824104844875645753303267005324413194809854504580031116516550687471963635743402236075472307678614166767862742381551051015712447729766978034418248507130250067704631501358395661319431246573599681048009929609585896808960598074507354429851828570882010295417423864158835841002356640094356492329006324837065750781429595627210054308732297838259750491402008738833865892435405911615952087536947851558968083982779410831724438587523782365077665368288158820019001296582967067043250951303641148156531582987268678697455921176253764809426996981333276611301302206942058166632273154400415845800618483306426449965350337254620092906530373839085577161640119345250819743952467706456163000651787373803394475663159445021162645777528561475681391085748307104870533720594498060428755480690465226833206259729042271669486667348729129905968137440504873631260794731205162594457367594182335173734750270942525150282485023509537768252294669976684027881930004205644928435296329680139747579230423231440756319265451340379756218032332614569172507110409571427366542526278250291868927667528201056740604984303263419622733242974757511754152052022526500389255770457553953944727668282314697763097606238190193678793140196441781504974608073894174051729006720601489559423924946466323639839354423970942786335805334116716295658532069977594848677695100011078488838807309823358788104737098815164860164484685123349583321278880120228850049102037714453700845150216202850005411198561816795733559312608847558089673959506652649582858919507778791798888680930864010492567593308321983145987875223621600313913353322349445036422809125690699908896612366551935644695348933842007318689441298594317836900702248756608936632159661578482929924235193925686774552146915777133958390264854725247611305054953230410442649197392459479927753498375255237440589458119280738747612850482358410087300181194417619202695511699280152113162772493271299593453561879869007119299729138942739845203606430937269536232036192738785577091459296328369691041305269695673198082765216218410505639677282710024131215824223744510768673148444491912826717414141569481626951820410610021050305093545853049734080092255059855213229720988987438989532527840039247419174976464158700575332124834471449229343499804419150418608518781882901581278711950423937595157290588724929805190991864283322631715286911512604638669939737686277254753480864505496894931423895495664742518323124997917095917271059741950215734985676367344736029590028206923816586878343627730717337688534030048452464385121777370577539675181134674163218096919557014948209522512666955287246181276254009295845330219844744794233523829338139307594561767965780711260452672813398612555131735475117497931434154031243930896323244344437716454812308656252888107632606896712161601259403050153913688125114325900590586776130016428570702513561678198454709256943095732872471895729158470309003445032742603970330706174177951158769406341974887764173471581857927385148911932546893954447656355468088746619914256051884452640677892265163960565533019526082277084468278749121302867635788063975952317653902696868125260741326738325077661710504716345642263988244948448035068901779266381881161631970588602705544518241867465490951069112845949806316793254854424600469912427949094774391697192315562482567557641653009472945317228917057443863282579437838846613392268332177775372712553730837009850896072115284605692210532180272841683128542189982100201695241291038995470030762733586474229148130626374475450870186220809388597357559944864822248744430723583156458161911042059273641118958328520944361232232555059976270683764901181391430578863482171575892374648315048883191355632224528229897710078489002641213394647081444184829177326709745496043705944583832483377668378632192714438077070912073789121533913369920474508271712667333745856350929615448660427122175005039633409306939078245794901795612799142150437471084543448534276595213318395107780356214579357787535912858168266988233609881660419884225614133627070456447306323542803037208370356345967345743229520312010260537263694749715689872093605764942123635150984893732023012071190985253629592663518469157105179292554857567157769350242510661328459455913432804247575551173223474309488379758530194009492400228596458926831953494759494094337742280294830066670193850277240236033141063738696069105570978042239349900657312903324873580202292158818537557465127721843715197570885055704861393296992712680414670260117821608795370871774176770678759641093823066114491050096290974247584448277051030607620143799389848315354581899903322041676200407406394359840339883185900092631255008542285795154776087436251951654093316069729060747593578978141061777122951647963195874892092284821636758689134494070050527736359078871830749957031650247434427938341816031424338223458090904452873562558656457402265639157683046522443192148175380597759705929439351296845200903717530196101710567519046556796756900469749761466503157014076771025476258464343143006260505626452806896466342626755856544767401178734290683715530741102972863944752962425144496309245072818625269457575314551617405015233161993028481618175361985392458206140121417654792030860469063870030956222028869668106360249080640178668058933044973960125498549596501517995573894587820320348422463302670288444278907124598137738594982133727657194192338292496986179317851651149332593478980942814714638370011018341384816122799771169785874922125575927377357409116266105881327506970769553238315985917574380476316782027862806192791795520693860781379259888647164124379380064413480866365503039985980472533257483936388127925532366991526579307296971140508236362548824114688276170883941726400234713803436242362619471121626196884169100599359202747303669814049912882204310887798801304284044488466317895506426749433262687139655316227408742871419578463735581139951471944414964362887792346057159630849920318337824315792303287941972636946700765304868257341568733857215252408036962202549559868309810017590714300615250188031649327855498158198616537453528896802605150627693683313104717521101845777317221938967355672057454481818328339271293766825769386367446697481066496836429800687928055608580757992281500188402590048760095647740646874797627362250042123013323569921139603058045636377007003993236937708879186472823996345382072347991513839987138864022527362439272944041653421720460921323709145895373923104792149824685697160116568278735615564810641718519623025094628590266539479058892800930258678051022029568297984940137843630478964196526433543958129314271625730088164825310176648030665562241827106236750485490282493860853554117053158246471825886442215822206114698281479914534833572279187589168271924593975330807517714545531131403423925936536447117277350282426069884137960325459494773336469498994912673987641408371546941515423667116312638550058908506713635525188647677108969253861635984599848661637699796444068765409589537909915569324678879301178112104623999946274015518146088860382274808012117577639879563033165400533085734225942994759573853137737849505858325400054532203210628973427160900956998669798420654131709754842725969601614341480846550864444476090738453808326245870075383711959795957338883425642867286138860962649454801106136567381608752760718801983252237820574932904624787634380599625962717280284117675833296295421655879735475861393114529729128082030929726110569080467619664926009142149607528746844909760565610062662433159049361106722400313193382150705132793836421525601566285422882865563018450698779360669396552695157287747784185472558003213530510351642054082557050044758577235047324638379667040720961054127355876091126446835183777005445127389367643168864210936658868132340726395694247336641506869899215268516470710811339451417788126579139208234345403218654767636576056965114373105018051864978586249283942319795452176568492355779996418962633404282362464871038537497728393855438807019201806217152545378256297333224962216667522028450853900540059016310821393816818700067299004147619707797471313897415454577096728807491275490278511631643803015833541892000097377620767574088018808661702055552517601688290715413802845860036755070331735018660731214268072453208369061101842074628666713466890327134702804811892281107953592747571164867527862097136026740183557978709555715487932132677585835103120486935702984566582495555511599174937499707482085663951174799536475306633810307009800825775320407423539144124524746693075423790958231886947951300843677694266592161207550335218468433529916679528298337372828350583774340085778426070763447039778052739983628864165744939035465030646938594242917974209230466350485624279906555318073008373672170153877004136172670792727331176346655996015258421797856266571066130442323510168383205884489409812523916266159261744469117448554481430093545207970015956449995836320043838542103222126105441931860800983379426767001433687715134599093155822377055339972881005371470056180110392630752635282542694954826152215291183285216243525236988465001187561681900571946383270927118475500980343662991973930658600645311457103953503780552235251061425452983346057781847864462450100735870257901289716556480532078262721729462352019534119110509714447490939394846444238758562208148003610107819812061801220535872422048265607199138050304014610888937498716261558994878306101875260226414695515116010718765403964196267370050814704544747957210265955496960402832603611030181751227031976509805475051997891849236920101635190895177054097939923430862380479355965133162819406780555608502228426048866113125866012844417994595292970143012250894447573073132470781964840328166003951373041170138447344323310750637302466341131924430991612950037418257308187851617147712894022408308879925747651541635256789986149195888732265407477927521404714039549800509997874755406446085330616869031522809485827740427540322335996101595976610846239381710407243477351183219344261540501964263283567304168876760025792695326933789869051243029409006015872837881389909126241980296682361933457523586935262434388413992776073548712738954409443285034483866410698922400556403386324517801278829584539512647691555501358255749002844694113722868568310154893536868898617565814131404686261153836720065612181419863700777151829608420918027495627589802871887305928174708728143785803219321998321597908713302155588614600337321613621689605961775951383355984100578145210190571173174808483662164423048250991125080345295140833574544973415586001466938455171257651523433900507409339558335379790996751478785504170337312201354484686486864381636037743418242729764194039846259009581924792941405146359372671950226151613440961721676392559960257630722628018157675748070614346500835368897712652327902422415171712615526878601280137166860637793159822706657128913894190936557953241946768769864783474705412980130878461597606365564531144834509738537179480947451082631167267826026121368538112748169937806183326505614919312468767665860230266752409414629927188890928952884094346804839235886848707051881102100414798650062323086537563645699954569194622215322266846698099952148190483698475271045536459168354071681556617670042011221213658688754983651369884667445215143128232412201739413403075327032070495792580860737172203111631997198593677329173999599753686698226539087605877245191306249419213568483771955680766456470072891239149020582194876877749310017563738533712857108454494491801101076845883754969234840238525466424167969866496805514982688674710780351135299063588813067690117704210125696284570801210917133804111501414400877051198399065221811548682511732517214716516885266817708146104301889107708173557347501369476196174571642774094477508984608916235670960444854553007764225241103739310435688798006510450991533542248008060844975654619537556257024047467973171620748449612141561697729138895770604825317965071381001619775895812037328634520819196994922033617430041132991167815484671901299079129519175801536351797600116353418465575621062187907447294865228332971016462665010044512596814992630963609984409595590487642055575501842275150832157012538783034203634833837467771444361846150759452676519738081916393548451079192244033166308685476377651457333309782108879765000738768984053518313783878992778172204577561900722290787637256818263008880561966836279291013523997766730726549431214095248880257514733002672211414234317485366550645234063261090932016610202455181230121014262068439237586640710318473416310241958215087265729325379356283462781987607970504309894453262380274027520849012488640457670625697860837252771414268314168318363843174123418803230543993693428446694815622124446022229410931311764216512170003816321798876056229618451868009610973799085513773563063331920517347262990279902619314123661447433210342934342564255180285307032649785121406022851785869334521445596511793463608205232871457283500693074394293390242901210744819376734409407494061126314401502693590580176311882804949744502813493086675720854632402506587177107238326337316165671138949354285112708293095132280445193424607329908014481614871114117650132808393131391287122699881094915082771078284428949629459087415557224474898286283154453538384640318331934538107158672255569935064698308597941391609838805665623073502727651262260913950631813224574181776045296729866499750256145622538786879567947508904938945488022149883891776745956955400156064376716969418193786321845267569990963517900714933926294642494844604109145892834714494747216684535643390612179541217056732645890530435577751464087992154956015232410001976457335998554832575515337060932158016947536306026862311820525271107369894547763811326408090962257490946875788273076838388045742068508690121866871307824509489638622778781035301781780587743753097651995253440952742765133765899290943783317027638273113766545916649255151040228680113417087512402650359531715507621575083578629969498997744164718321127990267249288545440280051792297291561483079966031660314092607140786775891187589564024078973782726973511929861691902085650313938345499443543369152313083462808162059934926381881496209323167338503513597839894201666057443976900742563825785634091857656897735820374230290781069516061145145333762842400152728817896272220113152764998801374238355368480686592967095843988639058190041452524196901203385260368887363930168445840570267259809773717949633333908247423092156470532184227559563231251998687381123044627372438299839299994429354361537937026633319914397860161870122064998502324719878895131739017096758168205787096164127195362425257325460729191628932105768519867576545225321887562795031225574083251419560229768003676175972832260601383013097471380027112937231923346005117762792911074429443404359055074399429858512682350019896245551636720919883034215561777632606881756293098232597247394426167789695926518466456686892287822592942639688160102816680157351397877703232226157349711038765850083551322245918943593953714476045682765575842965436605665092464425603482028009824066706983270207220304931287642150499554832365372413642325182246551459902630768137961033931342319842072057335993072338936568429182491640708066026592874754171015860639114951134478618974269305781056337439108381859051422180601267374655119005086007701825099373418836615914688292154707353677642493253375481477415388471646932366714033195836845920735575001086482027680893150614097857184821985291059015644587573005130004638244032161802938447356997501213554461521153915265494499350622455899326651094223433225307010591503008671978209274278593479179649339884776072754482946758469086623800799959913077252958654028730825716854567679185443547345276961813426627975612944138252413470214855971385506945250453212213027349284122009552349804131215931601976631278136693794292821485871515430331678519802348698682422074446604682236491297486138005970657017320833914715015320639011443118026550317689035097352666983758212110809091497123176568848658901641565953638240120305336127169578972170274712938738666225310438762362485077097402692313157649021020177261457870251939248407493296641290469594929294116115949808571695685998168646570286743633648466463567874867821626469905296845695379951851092185146694947454179165183137033450096004352705671298387962921714357123934998697044141023459739875797479824368130829663808815321286818573876978671655534418149785145576371992331647154220412523222520835284194555329856583803822559779322898982188483765715031822500835945217363072985163448006893148723014025220439884678926861349012218098830769062195222514530789521209135692985414196890911245151598179331345041120379668251217154508255377523665263807118898298972745689101752894402909250367465052726548451483071635883831532129220420168531225229990506799267882369033386109931118624724900514502480649009799544345470101763890396952277809819163201851948757438936015081988426363285230581678741904049773651431772635059267561831818815718026645747448314736288483717253672550757902812409112768369478602797092595258987117974493999267809122966729807799704199171140898112687318010330625891047933434862913622183648066523672574817908064381374162703355833748140574089225927161773098589451712313520122627872341106145863084152050096962762004501075748364828510348319336271913376910390080748992249268737298037488847779164560553992609644514040439543239539848232380970970860057746504720729205455985291707224341201582336789254708892402882610330359424155322591338583098616151275971896253935801984951884103562904801623675682594981710841731367855497520100852562201429625480064400499479704679248312380782754629300805937430056481382677463185406871590972138164395657731835679799991815150966279465977715790380287475488710301733945087597763913332613712465938428603781034556231777738288196750984748613684329400200002392918685794422773324808749935373428186947047200600714089997382714146996863945200136501207197189932198887238636275059092764563254355477277824539661396052546759865991849021467024645034450978551589981444343334363295882889200959775474339774899343654336322648788449962579986823572710643636728423561325136033315795105423084292729931685119091227660899218310884056398380063634547161763071148215132701662427514621977753714785438091655533188946819967665789828090442225341935728778968726717647438980775159485561260179019245943085238723876436943824058260726023448935420324303337828713676389144993343206450717883434570405866704103904721359234277548622700831617187036802965290454791114289911840562221868275636966027559162554961314771561034940393826968209997508088714964916440933097302327352772574955694141246044612480635542399978051911353353927807701561345281822253541665538221913481528892175039471676485915272216933542360232144963593835890755339093502378301317257274258137821429802519688309293621491055007555979040657296535524624080768895656587649895879787759483717263855329477398998404702164515968522477716217540953546771718160289539833849405899025592218139470565732328231849941293929016135154242301814471651867312189613346448642354514061343075582218788693327757872623760542878861364974661064681102702899993182942266642901774158029258855525942118625071725861912693528233829942928789166718451471094701612513626322093785011726776199392470211594865955822943382940953050956925744661799949598825574262193068667365620549865672664823796806879421733803086079055915898933247718300000952026636006312812003769799439820280263797178209706962966147835115452972562546855940817633025499899889314393532584002774143415085623271140359514219884282107009716120061741613127553019216793980928972760621800806289439388837664411918661364532588112058602520590422390094844878944748014951918712041346451022874097185348753423950294352957330193279581716919321180425423427027894573374983674408126542980628594558541294944856799114044038284643377241500044136500376202714038961372431589992653170910112636366726631388742998627561535612926309083922843274712674507753928824939310298225661202925384690979493994283269612661686858212566764114124169629576112918866220637668337356779322267888396034835736706703630634815427699806852964580736465238485869621983240643296457424804097198890886967193786951262899826717188580316084596650058820609074733821067638772341617132529720447152098436514462644972425934459961683640729123554035075694555777267998397112602980723435056971062235462848748366614051138977602759256697717317530075419666395267928135936470684186457847151650763493499954602699209341814059121585650084619820354459043619161205368966423705845409651691632488442603056353272395024105493389155594366560847923638837858084525006123534920341601489913541867937155804605706704319977534945738721163723511074091789267386654132831113165528145561773362745617752526382386900670314783299402518388486191506687337771321752902218127012683420811926723990448153260630303399931579778817350379104349013436396528568890208144225495641086628851169300324313475404558363520847858111377431337030614254189293976643922049108811494565111673907700147797231546208546583071291092322607622470962151800187358858745690906588292289113527033372152387257922775539852046870014291860940958988731023788316049869677344487277432764610004280323360150536419536864037601787038238898489956408617023793943634725070272859992946029096178603974519252331484401192358662137357709328365491069401186352060498277811378463453287949516248161731195661951547842651508242675606436018737324206127592812030579914395259166706736639126072398948447256984199683084624425766127317523096757187103623947035586949528906264246968286558865721697234983232943006463216597794891127204162333386376086780734818557514964455813525252222597450231378128274934509777315595958687015612316179283435971634275383685870666553590095981207875461565230693201359341121357825877545950671982338449823369400484223021764561798589825852366590062502942889749477030585477540821671776396768577599281952790738410020883697134833878569252789917385424039267691535939808157080304269142877672234675018038917137797761877012372850370896669259414137965652790990939076679144162966102557656228372789605376848136856819184101209249433262564949390608793114189701346718525735838032553439411084948924701911153335833061270058767708561102640151821852833814902800088903627778233415707603334314358352478114215703077868769533472727675826122251948158883807145990738338666666444459429797582637210353856735140777492401646902860157529907076272026198362439356470893834348384608563045780801531797685571367116227618326798246939581413899087397189172614256552690150264749004793704342016117031564628633198141774901557118163507357827647461515021712957730989454796702463491622121878609660172318298267969523253751283143097842248176920168157047222628692736588118476927786007755042358931343496492485867673826014110288097374977590316162479355281115467815170516913797142335841871871803351484690895782982133254412090832131445080442176169538209747426508135021541044526020550533335025422023242769036168023726963522478820957072746502454184213526228379122948887153403820286268383058894216024009318903691010998067530724807752935152826327238965315696528739008528671770402743751780835722757549659591189475892168669274946127735363421021721933205047424727685854848453243965751931123808742962888785176151425868228655688475561012103167015903991982426742641534808514701617931814081964597405216381035084259311328416317651389355680917700620246235452966073174480612716640969871996740291213275625027845873793111115854089505813157071453364266142078782093233096988285845061646332583419165806744180706430661278071460419621536983517634295929658130260132557083852696038908638507298643650109201329286751601807388111899575175976810343906184669912222348257059829134341554561199009408196263220961527929538131329925540672195701256116008501970492459462529974235979715436936334705187863616570877460579181305832458352737177363078660373926762510267608557513052984991045293861597602460306251720762820084281506521521873450215259097200516147016363850350381609293663699211200783710346867449511632189823395862288579694693050857327147360392122382661250346633977743135421357637897017113970621621215912549029187362680838652147229780799702646485816735306170207296785059497336734221768691069757516453422420236602122317175015190436169668982078113517884901254517721802401501211432082452087832432900563875401859997717751089447994741101857700819336150447887318209616440242074877538228721077228323089712531827924452092822051630254587913488145137589749572391291159570914600843468930373818835681214576515219862838801739065177418018003058201673032675928598990747369844039501866968927134226212033239565151738815375629475074471206377959004942255459634032447069156028149207079332269282325189939609219765179158870027791077126576295281038198986379359125507393665182267543988800488354449086398530160243583758051081213953475741423701124294571148186449776091481718293466042232036627829135111705811822755106234424912140148500298530319724734414709501227474386212979187537617660103270352571194491793227544527937895536116316270658699104715580566312778677444624022221801238177902034737333891995655345168585658138779558793598483202246020756951894062152465011321213542645801404040083489670449397474126053745063833023297547947794047705647659457063169174111915843292753851834711228725773724355892679607350028446874358096690498429779581048516969968396879835052708642456048376892177032749645649665655681988093049673608244632577042317969167162385326006830609369535764895267869632525118203096752747277918356923201552011695304139696543114260534448777570367952694517010996384484189456592273936270831126746312327850636704880576299863201726247773334681898296414759055593288643243922368417631226447469721661236342199238575437295338940976418546447875736884052050161340314223562279760871205947012947983217759248871630254015666768117449027660600309282847747301707490961108543758912867387827313156663887846345193882922589664973205982960765689622499713094072283590263943117024102098847639304119615022867003052531611385785901265328073313187517864594828099407467741891654859514936063486651550072764636722459791271710724474744820870920454581869221174263756024466906174764464441744392989659887628785286724417204525818195222761485883469624134250934671997711261247548717760162270231713966875822678731640365036462657379151608616981448031088864455404590986704768182075723270296932907546685822595451980834691326847310538366339606181933864988656171366150972283754225030868055666213186948301654726668001956096568586066752382978984596601981544567693921778353321820967767641200914716590544946500065301813850712079648598868526950704283795605605194493730622680743334591134465930671693392808110355641659649633640043623346611077863091375122437956997323240996909337448746830832810150230089156197833333327250911229146053000012632549242904137012538230274384939582445750614344305095663009916327542973731632531341638762212124190646931948224477679567415853953911723817765731016077581301905336844944819381076392526065565321661046249558377427819537702591931503080386600769054268405467996784400839652478280845154066653995321298381096241125783641537310242860799032457711832638605877709394185887851318698173178513220419072647351347865221959565131729118058440027256432275098021037967756668395870709149457718680436679362684387241611408698748907734902685942136020039563302664397239556393798872513322314633516177981717295199994981909808080640637085037936792372400175330819803811611472666524266831831601364569994453571996474103791903873230688688291964427260049740458480828520737520446929130550180424669502330217541964619702219551080156854023778755524186438236725380077428019993612542934035727267948283461067659052611333058672585184635054503532150413522870522927219997917670203339305519092088400458141721427205021826996982552128093128244081209782925342272338945028892507045585909074991894460448332977036899073198509378192870823791847896120951853387849252983380249819450328152348931908605066693149334042480054095799201665729225927409672070475504553100274208987345221291221728771013768107403416837971394174361328058381041013360711655314140072941376069807736610459719403039382819323186599999082399147052697202154726082815599434755713587699498585988749347754896085464975602619626856300328914217580538256921029753193316000618630934964080405797339460011397950470826405061041756823235075127773128751050821863900614521755715206904763142451385358335009167937814256194757565226231986032128356469533346731099817516523475246365199329309996738058946095110393119534273067564049159407508759672601771255352578993558337700894982227317126557113834439272668955608717257305768146222792098130339008541441957700093397615366017539545790229328655928874615791995231947070100295310364961718374140090095726894903022483024883249222581459280412755018173233084050580630727821357033119838140671046328159691759886992853687627345640302256837609033307222622954198576118308986853490866917916229952905251244653322483368256225132083279984747855126396374682518295508843708328471615537166047970013674001737027221441915509774194008398593472620247221013462635404785239270239664777213591721881269377559857624566124887946242937448884747833469004428888686640208116942011935399825230026160645287269172278918833461785835190922731995964707136497175590831509164319863963901329958112362438703799172504496914754752905286347334148624571533833685358140426532454395064518449002804656606718661924942276355861621761643168788629956951145131308873988582404045112846171120195875800302288041336980538820313507002558957872961660508097772444478168910568485958790661099546103553227227201078424844222049752471548263806432876223204742984701858388271123831859130067283419466676873586907281037487807456028159306772269072009634222147961219881253861695015440242039914146572202716125820201623480486287062252479387170252337791352711693951086134474048596708601365419892900879304623887473079700568864080211117242347091832511589009736781632520208146130129743214814016487087785916501575603454943292485303992366578043618589143928362270020348277927339773706409138235199437183235020291382320793437751754150451769773385900140918740059347976143007397643018744104688943288902489146765452731486680792036702875291593968566861299888512664973255722450668307541685115567635033624473559881099217069201626438897821672344238120269574611171768104156353874641602807490940052911475303573256899741049067794123792829193908534343332920883780738320833237854217274759337989298397368344109417469486339992864043047314788901870197861460884332439349772673562278655918669908929983530490472701036518436926608534554914934545748024303464335372720861922144937783885171148508990697803593350283290870089880358004032612060328175447853447411683401753777561014062465606904887344333923086430720407984779964297636541689079120689426030316825748124603018857879245572417421605889333099152289802918785859720490991866050082652880116139474012875422146321143685871969976238896908941863967267653513398941420738898360544131428293108394275047955633194003343678811915812332506733388300623514345002892196413776704075439838555681008046645191157124952316634885033803974900880065256642763628318872935088134029384013393564150799782835711079574888704255437541578932030246652968871825350440141343709500586337167209896862044191488327567555126856283577454178520818842781469250630153333440011030171429141112461829522030438940807865640074255119177855655223837393247270271063749458292157908071032380657438689313292291145882243970084641777425721154584948131595383482280522736173839655345542809983420066759841844318183802353205821055967093972740914002830034044611892112074666822652013282584366653819942152227171736259015755566989095327314751964884842154227499811116819157303965459600984116037666770153539401376886370764564494938755619642348651042459869380683673821489991161383450653297862329563594481317940621390681788299484200848146036482931785496107025681577002438390234013014900358428393795808960921643117670955503733218543355340653216399117991721436740680782965002799653431198374825583732765066620652104097853097855487557996901595044237135193666147821069381318256982402175656777440172849821872591042056174989160207458260890984743021002931201794234055301856066604558951146850157097252333448339518273236246894368025497839080837594025815634185562623699827748028902153835933081909582911925984621688688239341192251316978183217537808328678636397836890275408869447116277834969675695271524799938276349356879991109236501592443463145870268318080080843602114299215395986253628216685288384821478482128566859332741391625792489154848883226428776670633943995875266051883286044047307338823445128258352514114435522113054736404315733938554550736912652291382922969945899139025141772176139726304142611761598051983700538928656169735114827981655917335928148694166755870248195199379343410516241845564076237008941783975251998010806510692526885625981176319269240353602430752517982044452225935922084690390630804831764029709945873612948706712681296838787425644248333516407043997574004550418980540831641993153639603064487093462275121942233004822431218352700620398122808915990159825725888673266541718775686278025775309983594891757630088386924672093559639672793049559081487432069611167265653770295969147662548273780569267301884976885446045865923282066148519909222947633539135205518978862691284753064357370572087233992726767269265496337598862493924666316967766985595994739002806099212648446672482869816503585132988955149102541286182993700866415689656274477095725835369309789544713964011477302864649812087923222737330611708381420699072825965647307236665282083615422041164919274990854555547813855510573457393228488175142014482046646718707935861090065819964177969893885325042901709151973974567454135505968146405529470296338946587336698079878430094678381725620409520384238214351426957465217691896565843282210753668134431966000998858040194799867138626731141302341134748808584314465083169607305305557072912565041098591891248934798672108491839437367808826754383942985944487166790440781200277522996375773721975766834461514628983009634478967203802337820809733458326155017305685733306963753103106767801965254434494962164080365952721712098725880981548215331636488426577967526658158875306723115053419807648385250692785999190740011502322801544347626284426590640579559913659104674581274826670134711850116740555050864551203133308694153227569124243890562710652575729842995887715650598238511771488473548427521572618897027893093947019761304988717246174292836785535362077670191406645979450670546929533888632211621507661740058635675460827929651412610887323244637619191189478922368943364366169194538405021173543877039625132368225630638902236453058441647632615678839249823236215112827702237595686163721550122410922753694298998285271456914264441118020568840076768522299188930169732853321268183574699636551329381470606490449996997058270415079764731081160180384253376297241938053790808855340678847432064922463895930661508582349092455201653937887176893718215704249356186747966035519261367640089807027393960634117091748687011307815326362900864685103773845709310743277371371237486584082704657384023649381220094270990331201799833747280485508625355546164215724443360512846548262137459050408447338679714401882672649050849860600148835205161204223689222793251343277530716956929934402219392242674404630103931300466474675150392957424006660749741032955109054692214208924267586982296435254804555291448013904316884463415910380414400122398403933822467306208752574122048594378743960302266470306614897362067326390792365202919808342307386859860629183888032344672753879532967912568798663155085499691491069687149642714539514264973189154739670701801623602159685934652154789365365549824124128094424285125553860122179456700235179237120849138398071704909946050715086437660973925118862160575085243807881804296397761211420468041128663554151225712015617973607894464878818803570924592315008503717338621479225827717055781688895500537218743375010313582377396137321132128719057998014185901216910701175742930679969416857655279872148130367604824812360843711533623207691901385975682283806582621638685457536296247333815681080970807033365049737998439291759492375796231546614513026235325542363028355935308494538841807296307798284290616630619306253186791235614320229719852306117465301052200358431894144892206546557343674588926997436268738483707839752953594549479527578702636920857151770637227171721454758940748584360153301863039115962634663095752076171264248640613376942136878926493342777104373937070732595827962639655761173814321076719782675747592210491119940364076570525957057639269106214389090277908667100341894938927558384295538397831471477131362544097931282892005664459271549561036378240071003633953717567521229441297805271908048046589058999844319481057691277887268430873125000477396598767396356542563196770999863405590338569090427088370530644374561534999505997540444704165682477142503341332437932909757301047620969754634090234460406346047652588125568719692206696139651896823716805961677996231379851602966141904492913655870313815261004462981349177128553236919665356240601638107310069655665920445952848200289085834616650290221310012665706669392386040617014378513556746612625802767062080537943828773628215078250224289185081535445594309028918917851313515036463434556504080662817548091524502513470834517167263777414069411173475062924150979969785843172368679545458903322862532848255591224822380422549961521439736667954338166475018398066163221857155617257467926608021273367440851398071505973328854838586900238259054997141747321659013955914340243501719105114078347219887717232379473963158546318366222398347102215017455875559670109176714934271486163151309561847297494283087671224065649686921196501232297779417297277392726726535408360698217194244363091416768567728094850523789264527485252524432404786651428401302687470971068835305217241616064961969347860924390380844003013814168538241853244190793787901997994645497279236112864736881203838495785300224463381062488350175036548442475711843918834626574402958535360148119666755683412421018313608933200834668131591240919502519277775561913955734023850513292310955459622147053637258721307874058264327013192318641902420484432282896078781078765773638332854538448848327539349323099670990679957803533060814098935714692039857365429600597995106773549609342457840455393406180020647056017897008229146546967227356600437999354541862776025213708636694854686891128377992227377266621860212071755491678814868582281142912257339800455207841760246731782710700808870874278968484999968245504681955032925255647084091866271268354212777371882480935956930580151224166903371591356649375071460331595832874074264545383092637978677364835684060969657396058820491146391366993662580928345723221476099888285166345831564146030044343319290420992215010747003296566059221282639534999649159910649864206361394191074509239166678168477277196369617008034705586429358323932783178114828606273943354426373854873231501502495999223874362106371461999414693853896230011860897760815627105097271485793984904908764895403856753431935616157297337438459485912324083674577376976941527959990531616990161311614476875078051235578000075734398087875112438423565654500533600009222854457283091915402397703602401733246125101713878993784283156017911304915313433774960074767201278249131454753778594060631871163455776673188550681642473852370936378287227890423004960759857235941489065415977883621795994675233392011985586519021777751256802867670636822747545432973218110134679062135797095934222228482293837550769405704460291374485738263872342790875357380918147876779823128237636181329306383020012968098184218813076239095665529448425650075208421779152627800008921620186372442470774154111244795163580829988543690869080778954914861277504552753726301363119336625666477545071119640798621192676650454280189547066557343587496081505717058175297950071137777723738324384761396590503791074996488540542846218937827423102380726859281650998488556056649903601206893965543986823554279441634689734510529348892205611089925718166425071887093836000391869172928103050989088398302242189571804549239916638134000122351164247905146527145717196218581981104632781833709076278650366203000802963084120314031903629572352737457698572205801368908332225553626789271679486829951378936520179878454891403982971759606108673266307251129713435885965359695959868250046189112056863334830619429667484842499907469286325859806335886846636425001470472680595970729535290534296063112344869810488560716627049204686807499455272476006218537124313960803398892405730794966821998225334130482419439337284711732662521838929184470124550957755077359533341902101760845100826166595223040778137708448884806696485332877999461604225206746535160546468722737080781468367120192067648710718348052435568809303619225736626478011640206824226681600095521331157791509152918581168271193750722124794183596571118713835315502780842845664320568316698726156293501569321075105229133556673900886866360018016863445462345744988239018341714912253942401118203846986111607792105969394049152346520100755885790805863136578041415757580644879816789052642789544833301974688198673797824142873860014856566922088985479774685470464925957677345651662767537769660470424847293838939025832289728733588826438651196555344103118643114025629235181032196418240950243640359987851252158431916479955115624491571756444108086804843933279996099762622794982348481594052889414916580890251328934421043448639935231969497310369016803393589546996586263190843515324197950678586647808370044569058475453696699009959061335638703905369636143460889679129972684046056197166357275768120488423205078089899008380051649665814020874028649602103983730401291031549312999863376335882154149873288879177931120474614246525786062186555905083100910315034575451135683908193490841876586187421406431547510566566659180722375135292947152550666867722005979699599687456955266786850817690871851649358086619791726957866075847818451717777012696451994626518197554825710548725391667122943883032993467489875047971791635639400918243696593781119940538667300970082941399408198180485788881953043279693921744972335691319732928816048136319028813575113848007813173263472858708038397994927227661648407399404382442204413581614714939819181834603356176241163141933063093133236110913962531561203210199764452759506279607820971541408385642670066897133168481191775671160699413126890838610457866456703640904629650433224997006071903759583287369836565364773047912391832685669879609488648066312262532833433432928249729028535620986964540017152837990774796855724508886653093612282219940024532702150975521829687333668709676489260955086750033327023433376583502443893152049986521875941844382017985358757224545371481210613761526429952161526262142427614844471647302111392201438590647028726474425198013127764509336132046376712413979604841755491283848484747186860308297369102065501428795316987050755016370124910371479093110698968306282917903047290968395539801459591355797901496091159219911061653137978798665485682887255817731273146259060143600194242022811036859795777284165042514005758903210019150423771993935102883058798790878965915102720595418193995622468371671583187334991313243587056107184176284345559116216273409893849618747310810953222769879679542542340607818179120279442233523546464839702122020203233050418074827423809900889485487494536240479377618227587812036456779425382362941733161618355932335565220848804739951563723251120624145345449414914907269900307044246212108068802985738697947619139186644088136307658319374706074376781955157508371055789851046078943654631315186315819283968777886148894738265841233906817811414243869147435119679600089290641696964123502019969614240086802150024287237967989820340209850112247513112947728362685280617874454558262223871789525267167930769083217782003257453269478105683701589869821471085998229177124497125243767286752131658246240403379375471186764043864644404273175683329888398791437747259250798707238714847489157659949822651087335976176794947942672763689584689654525899195487316520664914118853826362308811364017649119277962848048141901785592982935329061409496743390031418197872259571944741869177409156624549229416933808051631037577845231331786073767753588833309752569098488571898902533539442662676720087155883006874251679627671803140102263759924747856739707050472596770870145348198064112739229622149827705922324518028684979260852236764950340554302952290992559750923898494753101950571455509326930181822414281076502403603668221870242607199918823920123260444358084089944204092727300535314719752556263840637331528337450298547856906897852867335605972473838761036688606659998217701269143575952428878932281528706545150083468847237234749021326111277972470808087021641659825022634273386130100160333144238681645615605241283105168670611448782846089193001117943619028922789912585427811869167649948683676598421254804392545485624756528854388971074961904080887855110772127957433508396176484965702730722228915751547243912618888602467623509565343411595515441118681938437985384941445846828381410925469537138541601763982086786572839608667416361885592853673780502453894219045482775766732899500547460954038497960193887654444125472552639238301673932728877251554923428214152421778713971617907285123471090370413519900528368504395276210861030243495436157738833632017821399993927350234995259657619440307985566545678188579438581785251723134214039380875322176329964764261326558627041498289690239758002612895044992824865632090641589643487173720884128420057393784826588198911682981981018386123355121132105565562256354057946229831300706615694766369395813402631653544315283215160238450931441794321167233951410333795626374593958214495607705172401910255654448872070079164668365753475371507959075960605687473578191004103422142042730443826316477153293489242902572625569981769865588891959172568605219933849223460908179347935325659473427313246038685942069072602984534921775629186204793991951117839207635725069258737388319016998180682586723633376472313198126515817139944197000690730225998349566188639415458433621799065050354217220395238912468994657534406826525416810988139489157303305045720842382135620831864277787811861617678100088800133888075737911852996699439352506067539025600492106470903973945456195706323634425039756383814459914292463112708148748184728302224746618655190510281102684241746968144340019545620575508992773039763915831618802824046514401775627127544310936558774265085776557470373013427770897060685797824666642383512141384721683242334094261655524122338741502218118996537928254607349723720921893780733453054735632260839464792679123223928440861757511201445085732069609590253275914821516907838277902041748353189632135450141460686940405079344091714374621204570506632230585885134936469027882091764972318652983257026302710060398611030901741635964330638301440486234338636347360005318084384265751285616232543342976050234437942285230079759072758488364514250609945704536822168592755234246237437296682071434725301534389904109487079695727166749033919337153630012417253751708537278993228001508847847288779882696216749337532332682829372671216596914802349104527624412043448741755915035576617555978020997483801486562267736611070953124026337984500160135212746901772328210796421594841643121200224427704031179438103005268489302906219688910125647463473567712219399309593515970393460436171518116335144847670183061350128633815332826018623854637089492105817866448604226659000862205194640369179593481990842579777182957635326365449153823305216962819370453185780382182393647412470527358398680222448727909474312480295574589950511226403163203691458495096283928840561570582257453241389898763441624293012068520073217112879214167362980530465404994746201535162703125428236059843463285507767063682867565140027658623861675877894198868444552502860476091957660856554097394808737226057445957881462748876782727813908064758659839761086400065345157618447158758888878628939954987036786643825652742197708177644173549933294294851838182124468833447935523720259801183987205229701949072530208516926811590388919609855487712829254817673332481880118263734483757939877588612503905583526924322550982486255875088681905710664257490628263121718020491001200236163630294221535043598300206809881775117648130987088202180729333622362888749370832808770625925259700901746709122615592240871318536351810831641793289649302425927362387168232160726796100415671859920724680093682587265283615842445976851463144710115296514963628996587037515216825578361343323018678343842465943909115137415658197288730113328127644683357890506884511644829897170853704806828692535201737157673352907218795218998184820053092429534136026211273790858580336358331594759688522958350227349405425399311908907617158818775926433534461702072568272984197621839871370693649691754463875909357577402699156848615772327761813145864419651801825663676614934273862683011523525597079954274394232609069619220549645311431072657318914181782571693426072234862179183115952085424105433422770422005160708449629764274589530945763075939651582787217251216448356318492937778149806180741815705372946169151786014750125717156806529269278908648079256906032275297243857009878983374860864120970285929347703925514306233550892457659830238902366713992843393893275701209495948815558604753156172231014078198816795566864748603446753831547578874794124226642020318770347646458746441084983086106844349321798160726220925233061448040891494021497907161967314928825840974629595517447258130549399430029474445747008571336823292836873322586822887664297295932330620412058774366177301041122030246958879318584556023434629357316680940844949783283441681033643022621098888494779981905161116979443824779801719464017093362296993828460015032355534902805588188869403938343852980454598584212370534403663233560670005071584384167752966784115770400782609048702674231870029298172072318373061843102137659861304055826294926177400476036581838320519807310154040782289630233383074189644601621749219571560556669106440792096083335953723880950753361138859543768011470073652629112368382933565890775226842763020051171634779616884605322874874900567319523556990481096092440445014340818774799295317592755201928102506860421910481855366607994384669609218220724027800922548165966123581555754062026082419634104478836092789921278363707154570729657349775111098363397257948250131015059079241221414236708726845688183315636983765507508633191118759190018353471233507022159501389676204005794702575928290353848905586325769947893003213401642751407286057788267768272305793159994226214355540391390153750185232411768586177398357236648575779280033107535642027923184407925090230547250661617048775569079059791540669134982729785580032250552520327009708083351126111991925768480229765283776334410499257283780349934745181210644827188599980653151366824513523555563584178811539812572156512435121820198116353605792505533243912095481184804323924093623477687067004362772960449768500686997438433546346116555320139266576039072736194137255055910745366840814339632315345971341593404138208893563872036414304751236253082205952151114260420733067572322554961459865188477150589570181366539517060336412504580812714307296645662428327275946865672755779320527602841474941605637998625126651019441028971530813136957931692110387866669071440361118473370210963147743058376257255430443864590068004295497666112601487288156278488256621913952314163931578551686752480310586065630800899042165685394285560720994307150933282204471802630929467601359094919794206792794224300872902676189847730354278080420378967682591287503109736558531835438079806950517155725642202523171400817369942749035659120655984681665825443966219026665160986612987232635844608601193677943536991820161015489780875974899678105543536619002462220384946790046135387683396935642371796485746123773684331725492374215163291781368172919088990463955845949631054352342149210817964481166108095787673217777455590176751965460256879179535076142270546871399594673971060770489802529828857785481684163944420544862993170420060910688840045920292782524519445309651232613117151689173360183654940681652416617294009574321807418942747013302198173999840079040954861419701937613356892710117138472927928057981639491575366380639347552399837027457921591749629199544247233338812107259704649069014054668348107584405767313218145523087710094401893734459692442183461749731322684773364848422276356728514496236923188321754134753705035723244796404974801310323414855759008121986686980885775337800289701700482954405333529928182527229092238616123859456404190460379866653015912747367007320482428877065309395259399945342289422082579147153241057738143606220532078094821793848203008422723743749245825415259508204231397492824979209342310270533500211208526679095338885714094663255656326725035998150804002048172020419681253771441685443035848670206440675898971634506718704583873603863238499730984623635501503573657481110656307039729997841008960311730895135505709838368801798879363657832116055284969809470625350628741226325054815518767751523206700776662188267120015635942968145126990823032675436742264494018211612484827940305310155687642267304428986548752035286184156153709612631738691295666838110851974647839421986123167423524509025943853088427710322318501959729479726588991124947446396328306124295253318764464833575645655551961025621057144043942438025253952927453518857768860172056270764118862674470807901482441847885159623902348760412203477106612957764295827946714444603902471935727468578255185269436412993453043024783682434004688110365924459830011272350907162970668901181297753556411903759828175198464777398401748462968676608210561451294566638558886552415103962667152879415940764387587334330086810354970930750281442458392463303766789512436358965408044916999306535360309448559041417819387198032381706578096198915629481959437967858116495769766081085347134421713917012209822905434260392892478205316562701519043193225656216287608867208804955957072177194477830828227430560948339052065976939893583525677518189615905948700797241086651222070888435589159308062662331339210324130071603715095922095903956172611319488231123778465863627297583873640130314655864361333597561739546717182848630608417810652159569808084455310190008899295208262829516131462063340844859475335699299285770057618239567427659689842259849839007224418071963595025861931119852849895112237030341636045347880427900835021154877961097211407122134603747894217520985521514980161971892432156703456097001958964874202190966628092519188288414542879088586878795200649543798062672183904836235912992512136723062179047953915093288669273094350673262769697425732739897662457733132472895228931473002512203810951521165388230188071059224015936276421023698609522176293616325853160195747587020126449611048004389692217797729256749907877549032578345334195287612151066279345058862639320714818934518599984477188192268019403100386946876945110808876771773215985492909531239515885546865917670818580992106137937866137792710394628977671495925165383643510023911888720279276927441250878382644004052150596643117748267141982224720745945631983530631612959763320912508025109369615150437410064855328417049863354496325866534271479546643468200885559115100086249686886967608283429133031187697370645007604692188640613405249138260287655175119439632870431651344013696228173597141325469880019065123056100969096774911433092931326091489801805398318982585725647975454692428677264659971403814679932260221302639298186930863297253196067774780387054060760272286103250266208671575047620764598419452371396559994038826770040421030922587911282851325063336226868577844778945313496105834055664475930655663193427484922211059750990234827072030396428631089305915705267156307219281681888489404354942646660306912880967398484947181329322431614768207551959141603394496984972801283544433063400854236230817980932004787844931718342310643384753335200861323710491531757101946016494102585141360735764875636130938093379083659198704248256205115520369449548222987867386903674552318014020095241836856008621691935226683612051808460044709106797181582168882901153253015001863390173386723051426403914636088350888088036997193136883183446402610732589898772770131724031105255995235770851289512710254297886773451458842962889269385824654838825522291809529339240459935605635393776823314298237828668187377783875560313418881176402047123293993669564584988587491535010471563762512227690599699592667793870004503709544770657154424391748787205326802633761963855560911220236592270289310293187182950995552141236427049825255873560460056955087737766362538585430597213371332703079525026402851976686222764960338664374566633878409910360502653041235897612843256129573485750975956254597771910875356254857762214955188404965490886788834037984775602958665488118296344330043603631248942225461453163600509813882295821153199666545053692385992537907349866696646686642073168680176390946391517291071897810885297781259850704169080417682942098869987379644267261099841376203710458772387813806219699073486975669348574173571612401676620196580881626198139395975969366103564657910957263314121719443083936476290804071893851179815421848747725652820905114873062966483857863447065556949697321068374706624413279319595658950406354795194098319228095178254470089957997806637108231150620448629504398371901289901774076689195720821692316810143517319384283416219098567390322700002832378702770263183724760060447883233730143042927711100868531902877058554565224398619110936180744018823571265544040016556707261391473452417607529817203469309217825416177543704147230656002719376407629675123063634052638841740374920948009796972309074077993480872628776362812133614189009089491870291488426013210275184368001497410521970621214531490226578957540807672302215338835479693184074073910984157054472939960813198895819500719190414070574127107600971265641422772490564282527063022767787739576712949076075366411616736885837020120427648891969691243599349200227143803823079375777793224042608358240424387217271941148436363760494003073035027228536715418837119394386856295929696096304124450995430379227716656862610219759239461791785477524188748383564610631540271332907931436404620141292853094033919313788877690470684805311280318671814780439343430454872909482014134628030911248626169407251047444036192850967971457621596688591194482922872750863558739049581038029557590666764191042665667369568535022038319808449174012216063527296427996356460072313150506150185030234970811132008645299890342203678673302951351458025076589361877442725704987368700525207176894120160046090730559739519378934030124504151158173263025635443932417483577247884477210200246425784196047693951471399464558440805650300300146502332972860715437935894599732239166878917055319924137410219492192414218777996962887706898251811998941609401059876282644830120870237195211522781152775861483231888990417790597428170958249018962324239578742975842533612247367409695814326841979368370531694768390688734736644692277914341996904477760911788059036539822145587691925559796498193395416909619018603503531478420366174016935276548121496947266676464790891342579425763680069846174133570429340379694725287066646193050125258607156641492636400452107349201076722777277594468691805339566579948195190998290956171540835139030330117054110515314257167328821782758364558810994814052797484053206204385256140273572765448577649068956845554805873282851435317864476884716429028242832142660932031532959177221328484840189109568666293382994958497393786298078683634356747382555496088425676605318104593917204295330405526417830251580427477721093411140373868136147028051381332426945649431340662728616668379168796831949337492592561535212221303869341791445205407570573792936755184792924034117850278294000346359731119690927766652235126143581539441181975295545413672800973988233494309307858962571537718635124383185719114165943427286572791453639417052837463229407743328497966636344573407191675803555095016775590352139307293716020451678965509379746875837919065139051691633568639153911048516081898991748838791221181182192620490743820297406354144846273175012239602708039459872709761338476646792651381626406894189450521901715688153206766727635378585036706016014690651514547070461048360044005290607995652490780636720395228952779959410168254918379384596243489862939748391800474566454147750660098879756741842720705639265121018145848813301967785232692005969239472752000019480918126310881805103885820880134957947169425160094099133884661626389865171663880512310487618170462903006201053776512315600271002560057761185384312677457485825240057679782970455734542971451639014071439507339693385027740210583954421410348501868701479429954325660165343465951402972314090501496459917469493723244463983100928631931428173607364874513919157453304057050882205811727142365679922753806964290023346518167432780095642021739412768862021196407193083404285625092884709519592448915956372377801932906808377811138059196949489541768588472490830372275786807098755888474476474125721995824724533461702053085495398379623344615382456043962096351876108301438046529666536493772151193267561428411219460737082438203739145367319764282837929931606446701360904270992496874613681945502048979814750508096333801325380444885323894581812632212173013978539211242091991216568106086364032333706583537299940990472078326670040205010949277081073573628952612604997622674139749972203056920356017507763849101020579722187618479660538544501317139062155916454334800478680559539930757156853447929629516785594349727858454357712994874669667711116601573082987837522000653006813977199291140790147874493291723582635373500367627506123745708387633565393629247522041797605286037101757666042214397063168909004006790825254908202555530676286222996692009877161984266850856316515686035887516919783054479205218077105668310875199682699056119644827130006453296435685167827727546177778913329635410059946152346616275619326370345581836325853980467732022929025320206985409693898242677011690450325400721859940508558947486762743830059296795624880443037150947950102346368913214733183913007702278831837595047123726656294105488634212876216906247439360701730442218676240268153312157581953890277111226679142796570075276603534473475733946189290185382785251981666688788117910978498446156890829467414085046419953141162193434420757715463826847245512436689703019054077912587062887191170456786284926921111039459596464444507027176468070216420320322182792212819480038177035765099776923530897486756044934419391235804253414411654906021845899675156823399922112604866461313902904982095420246296430161033370525729671588347947776322804787956418616582964570537338863149969770584028602475856013522737625214452221398363380389262767330300639228732647718767148397142343500901039875309624238871291815331482448259174643718805353518418814737169955478992920702862915685107411294998266265240778437481625584115559268413789006810852408780228590550895248275358383654614272193587140286773862276393568351135087670187626620276633717237163257127346079957892252381037957268852718383508298346159543456077861024992012572359986195326065104257545857090544879256526649729449570916783133654939285664431231222880638739261667457064464893456319790477029601528633131323454106201650291511741526131285882724851361738465689239928837308001887300822384544361649090209342011526759425718354456287672713710526777634771751270780987366643871643375298189813924936137903331795855000450212988716861953023931858267829737588744944627498962300799955023972206614135706401256123068444138521520749450225598393459026645499761372915025654838230430345556924555350885152056052622659196407106921668840422367639967959932638399311809098564966786932366833631907228169131910920015087798285655953462332658000785220171696886846448516576998251811951468854387189322631121013015942917334284466690854852957656668880243716945313923217265321790830800266288234665665934089638387100559592613841230379418783988578376430635492852484644762529332780592406833239330434371583371122648471331899763955341322992886374170261718574695995433596990865489387295615937762936647394824971861424080203221012699858782553971625395171828043942079373616225645537050104681191693181688092638319202680032973039295358461516333817513022502799194219072030677566298407178872788363012694353569810697144885314047466220005681927029321192481410433285803389387900065631098016456965860023738069923572045866321503364151227462427868740060058094053298190179749138649973351423056295403589626234242248178654663855356322598753186168252726909305307321418829156127343634537697711044421391252538924061670477617146313514942012876475577826400053463535851587369342689008331709599016722728768156567583081092826310092223040699908909043867987891058218728175311315992076069490224165188856365082311692269666328367734772457869293514310636076715485561975215988934211400953573953341750827883633246060736106725799768115171389195516422492086053950559495834257636222852924671185312890693936836704823138279516349780064505824207702073034538376430137299567156448354102071760558699336156448722677848548761218093803204027134478279378633402069133000904180660209081931873926598924820520697735980124289935049442004190540781801185346629613726437616928090781404387359360309524255886857841854147836400069577652998936007094459758837448567099066555155975457794376865794051555217974729362083665711346459857250797900907614918341936087843617382995473027602863941609530119552848723276259212923112731450964383452746640465153822467958383808066470668526872708335809904789240062947069188654310880543944376923857506655109765396430418040998674329113127889818419205418682787949733621738416286763589530824990669425466796414242598691049571364610700060495446023897121378261732645296940480000342168582513029333705527295465879104229484323799912332542743378526343318594097400322616014522464684822858561751295356126389575609996488195385831994045633235911274521699969646155637405034096528933130618873111419936178238660672322767371898579689969131152622083687344319558320697880113090205693622758456942600882783638553118991471809323425603476270488136772985468372909313411562019098517212943913333914400834693076733779988041978984582897352646874933716932564059147751954977443064134282212207471857010630687054577196548000841031912387298969195690503546034710404334185393232587201117323134256839658525426297576023360610864581058239520848667214491054459534432617026953052506354773238835928239673433919938410652748005405495356360821908128257415296641045191320401616823396771399224177090557351991373116037739340201909122205801756581371608417876194487114929874959626495969837910293420410418168872544874561817138306153920405883258761423663291749434186504220829273214639137996463902259091377003356863582882341344113576730439869319839516728647107508391838006826598333759628440956616467464237434706103485429673434835984282645666894938585809134792404220310562344582650276098351818633468253401689483459639530080525417950852043043578052504277841557220504159730087291690002850646145471154530330610830225523788161898884951268513449288231909650757487604661355957494839285747931508008024397937916463148137261104778298693621079091210915255478036247988235543616378616353192904487646507932573227530291253566230798466525923757680283273693033754134280152279640077354521626008997726104320590358167433413344291152600259442062945801479209463589498600094913982648903631375375053666429190762576873613239375702755537750801063307015890388707568571718862047966366680638717742801733251122912095646765182990521807281058045287649046399943254725812077318164478906005415310199098304048402464823688695806511086979632967000010367148511458825599618817972485117947018507354874232170647064525500006721495325518187753560581583780360901327118119360779118098319905945810570333712517159800407176257601903817180116608864646803020713451858554182106972334817199050202633006202676701958615061850906109377033690079108426185738399633195596382616216467655030484153245733207803581191464310568023272845147330886476253436985274200046931815948459811709593576283560320133965727423088216726153882523451913444877091765201373239831373149295575933388395028240894423212940605672761368810283385566061788566046098514896153639993285495038742147636768676763653270307198460605903393936493415632520003392827048724562295413827447376323996871537638061385196862682391094681435157387281010074898688607320615739446145477705467855728572981403694608367207740047253196603412407053555150588417648218061123996760930719537325241730599198428554731511688108763649342798766662315520795358747343437279434982545018934627558806241311829298028202892068973006980828617825920743069056447674863859356106389603484026626748274991135437644334138299557318445448523491057236268280258017477521646887176083210004094804118746858116852637027453768757708516330809313077792778968280168252730386359325555356630697150504570702541197717831700513187226351319103699351949227600122000178677549203555042892767991000897643468431302641096598868607923675978814511361931697042040324071303524573996952655166143507160392214180293234806535148626517539104690627709942226880018800080937502645169826298618962726857314228245595104623742440286094625592270403801009804673268420866003160978328248875034815589628831162867740005453609549705843935089349131185282008672692036519924027442104860039026076909718942903530034150355873881890572140172560248682796866502735528699310747827050497403678869086312588363630662215359255672831238326094066446171847401131849271031363233217867996568328416057691730898535363840602724436268799568095481922569926291971534448092528083163704951213095508119316608910845907795480976011135559340348688696150467156554107163512951855037944457806294071419523391898293352726276410542256007527250396979820525082532544071669812152187720212713864762896293783105136409501804924565462004254854599454652550739914660020392057720453311164229072958959688913758285699524109220554428832835629443743104530799732617558678906767058669167946919221907732571995374471370776904950097531673695209978873413031025198963383643430865685625526540502845710653805101210217359545802688317711356106818495391818552702742768210384620022168532204678945877295963448441307943218769552996310741380925570606943423539863937230607921202469951752290125498838511809522575502889472971251074589854101587037109322625929328626957153271535355942627801392077983698412170826167556946280137443671796322059498139480470523230543864665760226943715343459719887698709340514960734854799450734215587863848032916014305864406181196526010049010951691599267010146762253274345700760018333580483621626876734584784399790847424741842317297436491766522001674549134868278265960935520191121723550704746651833991546294223561573230853411302212511411482516973443092302944345598983656209816196576960716489047220513878137105671709781301519179005343750409773811925790156787260480293366217920462315087896677775218040988222510270866641026013534170306130212860413264378164738039786536973280307123743680312736075268155538156872793822694969154442588048643125462782793257014501201973599381317673298081746747011491204836392841431285358910707713288676658813902963804907022294554469870951441337354214535937575677247429615600284365211343656744973924698518671080633815341426920287210071363992994903843697289362176293372507095113319551322241703993880496581184501364430113194912084919836685311949939823564230588587615102198698794734916875550498883879456364923910203467995532704228825412201218229612282233550934235087574725818661332814410396539342602779745621649587566383736623349812945987628687037011914715237615248020119823061345612578795220740733519093900255800881898650253518172694361571940387259924548746917225223241589236442063525806982034499499703735771355011054516722472924590416504926388531987769602600724979288142483201474072047647674784671202854452011188517926111602431277661331056024003837383343421787813424955484139988333062842422033728646911164425173452514255040745870368475307954740169840870391866432321250456952997066248529180525942416023677565552866062630985044219203643123357694390277886165642033814066933493072431415514463806112525807394771792152544963764058187252021681646580646006488081385865783021301313207437204670390781491040003723818414582116846467600669353033676369347342642291911731663062970867385704418998130499106466806683561034205375479221068005750759512722234155107293474118594013100429690305332680855848095731750747396812037473155408984868486476413566732116997512133433296305921125864025296728548196308285424690713445677400063539087399278761919438876893802746329102487932366647343604324458109979125987713594171831173261383617263263002084095007745804658826753566071532470989486305769173073770051881313545445527853849827136269919741790729326182362561410766582356531849792856694954572500778641607893409174475908374904911064884326015858983654008629275371153807426500811037382099718872325536578640250967319456598203105471708127653483473132494984991720075580571979645016807125487173942972027277941999428888059879155974778431910950161777704674589747963288667994318150000248585585749600442540401379866290770554480497918882304785858907226466323795902932814298144363342428126219777134008910967633592151599411956374102476012831608484934619633388369892407171796524691181515035095849530528541447379426051381961453284105481295366546882295124360994407059261045668808464647371095595674415030986926868083838500766258111855362115044541575350261521148203652795027187663532579955825726926793307667739155151805117889515961401047207492488667391572386950648647190867114873611630102006236560914737608239324246461783782692637138888632618106341140511384176781709504916270829532162358068402118711369381430338847606964643168069343534074452882396705237194674217693676689428550653833442935299245201539924476813016763688815161246175535688212633822078985013918850181067458640578179795069928353679397588403257835856423479376722189881145634865022123287909358789459570989163611559406439367859653310454653423843121367952855231235122875690709859548186288275436186135920436986733794762544278853617610552643349030018699457915198200670793253919051820252306821829352702834846811153378951648936941467574663921068682358907724926217043065473418213349616737063045924020567230472287562923096020736225728600380595640770581434555097135511469687247336044627289356904682213250902657938903959711006390614297894845233473874697013164059667606960005662311695055092163855297290906217430462741247536137965143776184033286256211903883659463044595994085440622751799696081555464353831923573631326497233218808430561158450810419335636892137259620754129476197607593409989579310045121383933260985644835049919585843736719020644221418542139816382479836981969300868010987964731506639335576674796004717914343339361982450637563314967702358684103177244273299626486118304867485501082517367557651746759440334763310844465758439125995663670533759846404363226405209586272510441356865422273455429441651507012763175427428831760878759571295639471072853305695200751707063235564565004624837011283711734836781925031776922903745793476382224356058389447354101726454802062803399052274304578172085386481853254616209915512398305588797255661120140090403574398684863104552307073991696713679084888935875913786661712147437119634131823701917664873224383030321097035793852674373155577890834535480634819921486961866916036235777957563306787779450483909956215313355165611492748344399960228598749472242943192027474811485109934037714450913870991436373471255037217238515254543835278045879451696311798208403253509678057202649022301436412854763153760383553572303683050580076421052523936093708437008023121129877338409963538498575001151041668164763778185522450387473036117093433184669516575333625942505293680674695182560400837802294969588763135350178964800102800142652304118695845467549665351598261987759932992649182225599888390164978491193611247313711086533243204715523551835894975623553703227196303540413601511714104165654344722495982285881994200237305032666567684351809390918521252046910957716039000135380808087757853039162122929464924707510031156694233091933130870448218698931444254597144767164637037913457943095412808202051945324436816161177648563104826181659786890715396334264807823634267896683073279724355138841938615945226155561077672131702996727490571517722373746338020547861622093367561680255942108687008672619272259249026420600736652655868032102410256066590578385078816729427462585611089328717017875096583938719493556348955518034191159629858872196631069929016934238030025627833552394093377877084896917643276125645071435844209724490971220352873860922736681032075497377067176663046237438539917440602219053546908936935023105006415484414279382231759342116810238205662570507745437634915174290513617448381977448933109266310892081212627072449133126031679707255332397631467815513756822332989801071247926330394664030215903869201188258406670056139624917456938298670327388350338328612000250277511273830056472388064569217625828630094068995884178211643098112249997801466349510453195347435530798224077354980750928127420455294384036811663518531270347213833348134695401864372872624202668086166788616114266297250522007391845030825451848928661524301760609081822888330424877549009776475252090111701154008005585880901055148376912621424327026015489856260428685023819583771679119237305736325012148960533145473221713498779922864739884172531101045986716268044219850041456129665750606309386901418027503181060788630722171408684131605300060960834950353294016114797102225372375015737730843024235364808362887590166985771134757202863796170828072102004960684353217724298483803407570025838898804226035155550412841451807080261511717692718562539888472822182290116664049512367010581891938911109930132909202480395739431396794810929354469797700135922298438945526964114740643302598207506746314710478271418649686203103375841693619367433500004213800154625586012603018134007730092130938510992155126556271339277447701841150140406770668968338279614996965411830960710072808870508089480987784081773669371052298735043144086610714043052494710645062204092870581288255663695166647838205296410696474334979557084909119545008662157361188230501175205186944274159790173590221686629150281609092819374595487576129591029575009523687876911120367277634062640717614559514402314957120768091019374861388458313776666264130169520623337042784566225444466378936879934725270821345749422389877403724296590413364344404119785314631909533914314738622468954671861134643829387587223302178073500929313377275531450118071112011283578403125835141245168920255056567328853518365756883906579512935575652031744568358748675354418992718435847596009992617925261214460156170169771630636903737235758175131464611025641337276215721486350580723957808155915839487326449529980498763941081864791657634207979907347395951394716673598069481941218809556689365702037254703618793950508212639609195281554983798163274484148149472565953767750821571116998051836986724024723122131827011229793203208913279669079251207940988988493196735358273987194732777834535644345280998672796576142764254085248092964506840916213125447465197180970352792916010608852077104591634823898881508236970786288965780155897748123155699454861237469605099673542321404902678731571668925779677380547147952028084372596399790344533898413458733885223264652619681131355686642273894982209766385662351960783221731302342510374953970784845137079465871120352232481793225158893149684243969060889329210662835927906547347937536468200037403704027129665296112968924715116569102860867517428107860294804365839130316707781965270178280166988327013167228325973685285532984778563762973801341606303214692405320135013409767509279598631392659972520907720888139904513616302940181885507737348797505284591292474827981132684580779958808626751444636777740455899969249331408333972176781771564015656925142484145755618312194087916138757197225288034906068146279398100714787115916441379806449238234330415785234252088081678611620408747053529373319757401501382901669256501871594045710537794113057230578932572337262744985046219096536802847142029512291858383559135898202405779164677512292177627839013704638276208329947483452244359904824559124611462747766492405423994769934464806429440258988776246640324122457816554483834031633541002647446903933597005479396873505428574298412829705888282630753060132424618631608933217626527020969102358254294749561505466109569892102224099315516776315212760761789847107519293335759790960828338817975692808674044785594465597092446085316337166233978865727399917051062894680476113924298747241597500304938977205946990135792580390230109311389305038058838069035568962624803726835087128306647353102778450393056768364978008427560854055945551016949327674282169736350205424281033158202079430962390712684500114237623582195318259089755276628675688518046174403991069437401842364735613360523390892397362701684287420225398906912741519008259726212142716999215057942389423212633226530855214615018783353088616428852509935930221335412948481226689131494290045211070205909556088638616099937149606377682823765906426160690699337432118062340353452661493625448376492750856522662210541735025768988882803145995120774562862363328051784110349726071724109771661618029458781530152571310884036149524954308212333496551588247062167989342230191010802973758601794314213358795655648590287635382216633626043822792730373902532185957219768115789734434850251678469979233137130825496005222330718540061758210458108624996585305924929876065896176739229434377807561471320864118466411616602951694943738209916379780547393993762386945814622284849838145142791131839740600701826712474614149099700336486510183457352089235241317539274687918481349792572944879244557514172568153461971480597643550801700192853997308612782695920757233655752649447882371403751556995377798895815499920544236852730911859379412677790782512322881770766826982500577987025546135720372082484233047907887204135219221391547903327213244184849207057446615918191861861632406137683447842623300476004095001873726466381856943958147801178710774841039213569742031838639006006573665968104787228212720374090862142807248700690360807462515451264408649748576663859990103708117174598270685611904891767325067828122509128271522026922422930401777960483880513424452147754255979803785776702326381025369225471808229885890352520054297561970770913265523921263113295455497924449416665962830110032213641496838356242837626077304211439794500802700039553545560731120853307632805499404005918417690190135449899475434551982788797307469510845973956659802936666009477943102780821423253165045158388132351303824388759375553664966520511272464454715084185236317685383706049586597970884286636734356353921859744748199008374026763939029273303455587397802458573802000716188383887188922572765286767114198534973582036198171495245739704314609117297169598270594161347738458909098995804981921104546953953585833046458239262212278465922417627657877752601853110004092845892585728350209126308308832842247994503535332094592778443493968887676353188526769447993166714518629675631663700441341248815199300200943295657098977199396342634184324352028722023211027727783121026565408245142662143200768751999781098069330925004922878167897129540784677952666395551054914908603187755896267232866860651481071336564358561942626170256475086673905671992382699445714560915548876765612870035912188489701214843057838320098566277870809505988811885980739593485014655306403185828706325903569914974621314029905406534474718693610581856441675722940680780740236049468668502721917776500296742191113839671041189763937523239433708817663602558126269465575375308720360453918144170190023546436247516060333054127759634572545550573131597509098297800507952061657038502926043520971520745704683627276918293038703229236544630813549649070099258066909371913535900607069969619114343722727300443305517943213392290090060696225475302498326757985724360572297220624183260178413438780618199293762708750228331622623294768072286291075569290637790044791503173255295707974065865306436928761636716198969038913773707236655344340459671096889340959370197242683667266826653024494966320838881180357141761514071016022343307076634829077212096970925699578053329885309837055502121604623099579279406148614064344585108917909678286434251929959883434517229767268048650522006255111078514807804552042048782685213599040505967202636112314732765119915633741138212402386916523937156271840924648134648037182690160694109115922275026127472058377688600903166826431288932288693488387885566195302572027353008420064124132939078549643516889779003863592135968562712896363977670944332466136452704604223419551518319384986538257134862801971147207630456508651147651442048415339338887594837822939540037967820791068640312424217759066037406933347575530996716293322181429141387935854527517740504111806493089907247522204391408039803231015979592056442314196429826596646741503891512574521567204027496211079220461731173408668647807759644968562362922289376236396759902457514817724893161814746963724293421775218613922184625910903488052432762457032971771921617427305222282028058971017841568638486494451273040144693480800175070600823320454725664708150458415906613577136765291667310204682984915898672423695703914747618075436957162990973880186005369209536742510263752385244917376342145181393362613440310511618824710974186832116608665817826988161767809817629240677444918788256875687487282170624062620679177751062748233026337514342922946681885252038236141759440411396951714299247124327026808976701143884887435799462497449604820586800543620200664660730610794287021077078524426853544381707801227514367799555016764830814205521653437886099057169764283725076311833678953078843333041556090935886611747226840351607236441256124414786652903926159683442292429510365081667440270443376503439030119148982359797096387686760252826863881971979353962631538308852478506580574125618102828341337785822347605384905073797432567282559102964486783937224823072724831346165901428358864523245212677216697930008348422267513215601704297137581685316690044449719755792369947069705567156713320337184354570026659809380574885440919683091452192966038427512655804498219292449583397512644293853702694438645572789345289034876192463127327444023946244709789523681931177048170003472724048321667420061282356477727793754695321107868043178020708347192480623215280273254254857026957206427248127486665139033553260971563063228328761133854861991655025521568130579771964210685415797864781925232868735061806872883980180257376226444120757710712440946245388419828367888109521589195673149530698265551960126522509582037732533303991038459511651114817280663426893598021363311836759453736047589429668853011116994116837037953548327809620584472617358506069202715846142699583532766213254561791621817172638074411736421843654777666777665618346438280974169736760010106297432838827682207260839094783243105696080482149388700711858345120247006639430423867765957517400677443979653956978273859676071217848918354602972221923492004110011211448149637937130038877189100834055920210884149625204857474235511914646177480788917935462194916791973893792042118850038298863759683991662282474485087772724771056829034420925766757488487405722310998563107569838196949091504011577824722921831303666802961449129761948481745922666081681950340361183851094002042175610058482028648928064110522163291608615265843441684339002269734083572318257689631840496050944543883186647421925206492658679413050051326782103749004513927476303296206146752082862547745233479464257969457467405205778892394988495040562617900807320684590243976582031392540473920527503266926529459568260312977403710534179017013949710738891214609026052936515437488631216694957940465665168704438676018634038935828060476092347075557206720366782693100923471672298354993877601866709559716574980702674562641301984927157846768467821657285783764725602825018520715049078274599017287356118622816472923984819801695129829186817768499994634282089696468094323023759853395970554752336737275590102316871496059920584268433554193074147771857165884319323900413471814891646562246998872778957553131824165261360404037938711677062460089250256747189172905167655376204003104994657888613464949630510629799642844894484074484506289340447201359441148694415214951582119602800098712835213619315949451809677817284393811508406881314403809131351258102904895734570039847606244845219735521340873077299521176302347634635647103510477036630450190945037749323257331088864852148053646936666422036495791952969285881300811278512516930370480594149162860906492369761508346144877015485883526954065838766881261757677249033361758484604347751030334801545460612390385791353376509445232953492876843572532691752960442729998525824618436556924463078745812641576445527118037117863538662283557043018744306908562519618327615717117405020920741810489890541162248275124414268056642468913887158338741862533581036809281780862805025842204590042542302143510147760999126103023427738523580803391699270836643039055147505690352250716281519962544051782863776084160244655649050724442007007269236045316239354707397414374891718011481797796541147678430555468439388603102381815812143148795570423213810717487620514368299756750243840162387275634530631625372684090916672636219051285426516487033638509142916226805783479619472443592838341903888003718026540435180999794439145315709088918683840763594281686549880061783568057475508369701694070575513578754500382090437607677825211703070667615383912033120824539194947330002936808422066219911588401002858559301298907659755499900372312041023188576643795286745670904086926918774157555902707312738794198728063457935667705181658009248428364706447755244900070815239277309049786209150654536496556996258038838647322681433027892093641729625046955826768758750656866425020572975993482025044024627517748322519959532251386391800662691633152876809694164611848801911882926254284169051672176870102449200609251686623720313993662662729664282813622986594426889776132035600636075067258015004377640910011996753503508042275308671807635180130221275106261769222825132656462021715526825157789351576330025384863452501655284055604434394392579866941389321019290424879076140112639267668494103564940163358341002861375703691830290856032089731664853359231621714507108127480919800424560204009444972541657212365392897440459634384970955489097362153850118083889353702415451498950535690075453341310352185801020356524551418750034671992979620297983578926122643460958377141032760477299281852024645124625982748326783370898264403166774359840426233375724422767174664438576129921623867009067470426063956040530763915693713923545104185464058841067382720227502300894508149857257560154272116917944170792153408151100813010546606670073586622416262190623384163000266703270542723670104280958173305887668810184692827923490740589559187110478225554644582312478244986199919097486253268427045293698367163535756183568283866434950244085576381143539452424620845146242961923202521389866021914943816266603568183245323522570800783142376871131372722859369445321184728856784558566609770465097119365119284129730210834936967069085624211285458459104897041562360991896759536416605097274848295275410526554533492413363652587488753426621983830665362314513818292540784266323209456009927800136296919490639421494246993946786857175152969422447598584094391833049430607189817002937236240457508204956550293452703529181805601060101928347723375564592492667126040281593867728887403893070109860056676084896732894998411259358562856752893295266704974203927598990204338660228359142578827656722395360254781148314166613665040857862278293380068945175436200779531388616642916802320880114442124970630392188844151673706463190659440158450762716067582663097810999934044251848216921845630961514553893026607026061359939456323135876472150222904087214952746462559305853956126790773900614061255290949181829255189440818100636557451943595986506498759540514962662109803863820306267654241253317228833954539000792919275923870016163172564746099389525686839166772198040015735499007819159442901718835980797883762036276022706020588531045308202193651948341811608415683020967666001949191078601376840059275620982172873435029977919606186734390604914248896702286908085519672256205480704635410773410668952454405264440218595678099528317559310348691840097098665761216771367905595737825932617175272931070541834898692272140378016303015504503460453862929275392771690954019712658889255687822492150520960472314284877321466819344397110825986839342856860451523527628643411462201445478799741909968500130161034830003265160494121493753095820876692455027785604223953565233189722737282718330841311145967312608923971704076628788820737305529848524030860483900279276202448975510950232003182683782905974250806459481828337509451906137838554344143201422829772570348809056665611367549086174527703652841321419968860064441624979949782095346300571514340368875507928246487578193511325324396742021474564829306741404744215728366782183233941577954090990282462258883373810405759010467686296722200535636921895149192214621434137233369814671515179570229090893204274897062682772644970055804005427254557247940209830449416898688855664413848186526485070079603086502938475886878566846829516497388464620785179572146678867838772529580461790132480434288723110095640188570340010000756367095249908836416270978592849602587378943663371910774493789696512731676178797127389571171345975145306260162767193262255277483072079464976092968574428353271102870245833576590127220073222435385426937868353591093403322083406206091135891154028496277453770455584151795766508134881852440893562210763597929075040280082049847174937653828971235925433132721942692632873120394619929834452369445017412487122662312035964688136846271809141169636830857304464648914651849401240613756696302912444457847512103200195291647980663313963344559381296160885479128568055731950039042876487370394798524692027971929764218984538047155657091118362976891089009871873036388817986780427199061307566133616807113531848793540576370042681846119406657202962637485459913806592604890110827760797149673885320452289496661320678048115468417981133485521783161455912383832370996585896106934239738380987210233255879520150186574674900237962306321454416229669688648315287364432007274625334807098117482505973023568738944837974937559688381951120963590597849572998398736609285998141481238049644064728419208751024502834254518802523072165979742162308026307954888032561748595788279502443852149952129138207469408990305694509172203491666284110230418645745804803101026630880994742303905702171872120309338960380210685508880611405558893687992782125450532958271705598249007283618010181829819775787951283502283698858763339799109367905520244605616879958170552268564751258032125765307929326948165080281678497670212434334245220800150963844715110243991854923807362640738219133905166575840022847531974384237040450682555564135584085129751453942895054543403956823369095415345358491891884551064950830959454361452344995633708991741041378499725377361866850211768574978653870053850524355887928900553445128605930679028236135377989852029331229441114461878782319818842458953006763312482152536443552905742961609235249575421726143752748871827992547704978115867110733746234967260912058304486772487952742798614540561288350313512392642015621540768554177788219016581873555490619407672614668724217999387963297847609206167458561325047475465800886819071256405888021529081084930891552026467120445719947508879875806150053462464009370386488234872175035749306856035099388289669006699173451930685298932621829646492929783688267175820845981745904097819714568819363039350516064270482547126498649317017826094316534885696718525252851406573766401218344574240707799641340892739870706928969930341639835019404040701351243865149286835453467295817206887348713141427488844580068446582914911446409223331217636206351295552012562054826249667776925843783160474746657261160686170995211432665684341403125061712602209739165947179832948930283603813313449673440122015392540179909199726725161218744718990578816475491818748710447985665811960983744278168086035187806157946037547630564311722079582541734495809638565347463970133645223297101713619380258063078685048523988601409393057447327898006274750698711376468456844802403614370743471444352630586692799802444756815287530579806011162885008239335398758099475733623951841019974189521829064051123531129491141626338498413137276175030573625587275088786348626048637522522834158314525899542553135186608117413624815503951571157691446166566743234272914301365239094049507641794239174437481696682683396701605487174344942085631183061618657584183040292147166793562107713465904200563518153665110796862288198091901091093534144087677012365453075034147756866353704597291958731033790356953684907274207949476164226097360118219750604411690182476518545898062083859763211571635108062346170318742639331214816214093616226691996261081712069130996211821918125849977674528699611635900138796847598969061346225320755616722538878112194983008084921471843552864705316122185586291798746114959140074820732105120598015051381158395488725425571177489805954806321492085107536660551840403899619116473074872970079202661061479910557478259868545926326961883517003970705468677610942081700565525959228140391752221591277316844340431535377459780886780650796997108400096400111790845463325258535875158036516114420930650936830407231838259702725562324267124170852189781609534070174648400431695600667108942819011828637579015710813949614189700316251499277574920410352889337643838039062540639283360025778262597247208198472608145487819128230945985738802859911118703952954588781785557431314120001715593544714769284466158490789571098530769878699714571740940280645311725659772361830333543792827075095396281263417289658149396255616857905721021368420583608944016115535261870028112671059954407114415398037102324893327329502840818234639980967317543894208177395633415289211035908993343700730990992972772311402685988432939135442577151577220409425924759676757502627779331916835665018478244674857163993494918706490853704293468007795217044387836266471707694223424453675945730222218482313902483744890849126318420109045735701932167985683378595003175855339564904479908538704348689555808232883664324377141412882454737666026790821421046252843578861527949970219582669718799615914581146630830161323785454986398093160969483694162531938470732425328885145457089433108864622084639843289044388419615216694936069481310472724401676764615384408459541158867038256239559248448940154815513914564407911221294014685241816609872338213902811003519114274003987703084091254393932484280666158648960210125847176313273340850132508687638522649817505442103445065066573084683086100504015864919709369140671782174312354810540389797713270999899337515271313844860158772425241605984262816583466773570599364628259743699070114261015498316349958545583634831933682589091702600185279709033474216425032588863679404890426524626021959103636369965992947097201611172811315321776359839809611815339805396948174365911713560459042063249293102570153330031910292795843724260573025694623743134779287586820050623922224627845293349307679886149771890908160768862311303996462638191431842641773019628713971877290812626149099679394333663798635482087233354249231358682996348333055905927724418155352882331221363191912300210612294211982833695814569947652583413305515699989843779390886954963545718632772279098418430693027028080209804214612557413637415165815789153757547445506306408888110727204750027973802079625039545238947770041347616477152112239729625977931911746243836311806668225642743558143926393522268022316017897944616661568866237741371921288283012392704916582610644894000722089848407711022911622681265196533254043512875735984193787774091880273177725572537134186681018019154862702157090390224314690709222084528199593690796953575395163905285291619459449112944680847646162122823660808828044953300274776171689414641480951785213911706868033156154015181278091169897502441249712061714178739878933353686959894914130760912844753023766774411548412003488451169966361187849975758538163548809335635939364769691946009866184515590113396090113464877841552840152313040399700939137441698173785880584352714064052240017177273149629565676206154637202987533846615306846334282964290898449712741324150470819708125836505141618617960451871308227426414106037918824711913012986849571319946784151459684039953839978856711262990150163009910921527012908218437844264000399873243758658566165821766784627032437440228991070640662373170652084688597688470618147659987010619561442331947629574126941829358288048706237439675481048649557612583263603285603713036399685127151577093536631430410937231501827105203815696198369852705509656270878484714297074741527899957922991116769724239479345444298808459160224938911198272879766813900747393794579832571599209624699012943203846055170403428415257338929267107273441064890573822461409710422707960692467711417673509240993094068011546082731109455602503769248713438307687729114718624947968921591322648940210330458355783724870125915199948189909683844391245761185926269788594962566079336502188568347769006716900807731396178910914640538185533427228744754995466871747396724744458695408832503887262551053642285710275609149787940076599331628458815153363276497487682863812228439720688921334518785692148381681848176700497381137577848132151544394850597335472402169501546311814431159939402963239866408206790739495010234498898788187881776076865463027799432391800104485131950064433864518140828360998206465921476081395592331346523032779761784759026462894751946304885407630852671512512228728889427145781381052099865644703615372004347791261626448373667473438186363932641364955919037599464988643894092609782316672401497321765482141330933542642369644263598083435396564851875922125647515958573651423718707531357792324512940170361486485331248099586827333755021975672233670168386510355484518599241779394730496657472274479692342945495667936047791052599193250739373930257445114566548183840566296360725825253750437472208116164335274463704659324694380117223026875645343314932517263678680221845204736182542939371962549010826340507936477196510619164196365712667948944385916959747326101481129727661656985118070570211010290587401421525597764159789101619331292957502768134695644973231133584227635331572657988939386971017084019136383120786420862113682192349911761808060803814922012074190512384936075782908222323587036323947378782963079045508166327659175328003259563189674665015834262541436473344925289937952727641873618581897178357217774591415435099418238385400079916964106048152368197694815991437245653202063444407092465482769877339979318480201227090199413872223712156855431807116158754111723031595085515761847563589013480447536489620712904039577688036166679046686282563712834983850702485853718800017835567718377064485391747728351491622741326656078589674012309936386247129390322832522904233820978480656062106201663618788484174449193969277882577459554086405393979771121997660359672092727931025387635113988555693295317820927664870274090537356867106989475129785987019861311284182660797908583957328350143168920850148634488028306367139351454421401533946497304878948361313677136765855200505271179429636889853164342216565478962861144284762528483000955366482382271835646341184839140051506490456477328755040310618269976015987592494167792494639234460977066856406389987153756803327967098591798759381538720049813307405792136781290581176421220981678488255995254046977575577741846397719361913450507313180450815131503240440431656455928279812974197131364816149701350046802992049025377120978267143570468265025784216240104858179836265776240333783967284634111930713757676524594478504072847434270172544800987090559901223538094637678099579699073903826422694598909810933961779933650061361826372581674643514210432236550516982624979300072269947691093098698662995111403162253652973577018538063952509942181687033900018584054213120536321208657691592370920514846768653431450132678817615339771012542063309801087008480928818049386668741240497503848545392418876962151088786961634955667803931327497087575474219407935778568476489721181540759694957129688602335585212366503161215559795943260050254329792300429297310653545117416317470890055497741656755081127636171251623265169559305022294695264799506563114564538040007768657585636611289381092370759865652853171552058492671469427515035657281467539666030688753015280228346865051886757799238499815782945998744248626550245244920197827126774562122818311871451538649451697452009327346152464157463638063212686314337692755563595491880116368788319033176034023346209892129782797917392142892757051668390882100434590192294501881315398067862871251590434657938417325906634728872800865881878138686255569703637184927804697492640168037488781986517927717812265795658374123793333691306130513835137797949573171015295773124915157410360490236870032491897563817703738810306658003405214564419778668554025641711144987467737720360030429180956306838143979340630653853632322573888086616923472230004508369493911702336805110404032439361767551546503363033428164615822088922206667601914836808683285779247840256448802483778066624566932691917105574284857612729352062237239634029252193854565537768260896420282990652218153111765896362749747136508987124118681929791773904608023898252759942243633451236073981363005086874172742340396248933821680675726885803800868300198378223361880571833682788796387675560075284723116308937862212868722646367480058161068617864245672904613720348309594913594817406716191123873003722022979393487251725170507074621352976979392768269791496702265930573461542465888969410131530654660414419097621021815808056864632815639783467141505104095324572210547160509019774298661834203228661247216242193068723782361575335257361049634899842796433362590030015568811829876740916930505110190847095392395891366336461802867545671663308181759892260604675124786698805671595614783779237594123659141404297236670371173078645078550417646321862686169871457187371602497544976250041878911968089208220954759912656524904443495905873926445388738230063881085198305317228962169194053387594997786328050407095877493951502922337593892713513493528160258971262538107592081785986694278329847817260884834993221991017980645508614047330461792191915178513318536472008119868362373126468479037417694871078973188883085002998473636906403023982404756017423418084972607568960912249300421498072395393523232943733515115379517543409856258856786873340731501101332147538821443515285630626064780585484690905920569654973384705333452175786372830756373744122833140542089225729157018721921498195447677544468353263865510584310402927969970285606931405930205206695551317675311145973188629909744802287930277882747492146181001038870952384676459227460512743700518001556633019249451040630228095771187791154777551490576039798713001782777281901060738472561074271766609317083369451015091485211837894755918547585701556943034514219158619028441937574623091307104969184470238528931672106407724504762780394896769004330945122714907859788493251314016235080757432853966230284109750456167243973876521361574587490909076742437036782646258202673106238809001505598410755067148116385053966971648929252764670432156809497589655711055088166810670297847792224516975918273201037945009822295673736727491794445525422468275419121276468241846447765348110863908956046012575519227492762173780936347553638104602000663502528833650218922885560482612767456677405076099906161345790429594350002880565558407061108922302628169929096173220956778047177942824454790710641102497966107380564659560119414035914500508956426901408767182826735292633498298911058443836641511673582666129472984287759881491421789503819431409311498026013553161022084634260578157904173752284541119204911021901134218943689961005897978301072725100216706965580601566245121652547118048616774557690562271381429881821703490634776921225149815543667849254475479427741287317400664354547678535230441434356021367926795189228984492918444173580581977359731991591096339141470579417702830825815455805176274012169288397136893493248451580426150919458599739849067291002346971957255109724198126642860540096384384182928256406028104580832035210840253119665641674408659616974376369805334983560891066610338893735230491812420376102082772348298421124455160130163966741805049493104478546117674279288774314022861868329854537591587517496457338147527519567960725490410431699703170500405438608788414082442840807951357839157926901689145820643547475067250503820987028458377208921573468401916946283706441432277125082461317674619873227507432011521502151876947694190946667314262419147211235628563756534796180085833705805589287617726712387681628541180609017641517914042879392216027618391258644368760301037922872900136416834466145759661250954355126624372168382379830018148708901807804454431883034342883606361820533407817530352773064463135239982312438707264167416243355805208062357174784258568245293175814311811167406888736426629250372090707184428011615579821925992918637154666222678610125140215967504220832344904552234591505372210037769450012218521961957422994626355371030483122979299474082929627149833755511200054323503317917325782288384288313043632031711595728363647199342869952622248310800926916018786382800118186293683747924220111542835335043680261002708169344010956482837228855216498347436371966782357492673165729777799144346775622415504464010880496988415606034717229315738693699042382196555743204627421538547419163019324955121303032126366039240043566409176660026152556346017347253693399051258786994698697744392797569472366674347500226896273039818583125079522336502393488758582628544133947179424800747677140341271875212982600794621127805554092297175976015141746428640869101352558769257578547524050019254880131198880606458103789349317468763413687847762902817709304791862325773050274439747552911915195339385206722601692166113251948374632715289656509827764448814406341403687542403438704910736669229486814713960733453021089883678093312649366585723453022299018638796781068786785568161816236626386059492634119472033174004596026496140103785120544678028448361361975594164306509336660983925115038806520307962043343383301846512893686066894100276330169669185383622130585418586548365114862923611218615059815674181587012867509397148179319054588864779804936552410680052132185768269221265477786679882467292238098416099188279405363046392607515927266644727728556023207894890172171449478712026567314268689299250280767223241526944941340539796398334012741259253606497549732795654711877563009636952998032173887609112977783936640985788859002976114698132475547171557343423622626996802819845111110121699351287909702297095782493537568200627064754451654869738636889826029122183388133933120541971875718364000654136645812932175445498185281829735978547144985623877655988017900155735635309682679391659605959053677272629066583370976478270629265277604342371719214867996634061827163261886481053357028198614669869439388146408306071176374178968500293845767519857326693617320800418618942367679755615501555628350096135520423759054252645390133119413761023012417677772465511292205692823402647927198640612180332320315633566741315527547602928679662891107116757624031264735103406588455817869603550973233866941304348589440746709244341158721059914469513720519015979173733758033383756492846549868747066553260256567508812424183395362214158745936907425315602153129464237459833761260942077618833822851325707362228029226986517403366986745190920063182911930105518060404601810026370555387026666032466698129204507220912665393034379050024271124078243401253629634311204444072387109308044535265746605211694919485204540035671886530206042987196622778300748163863365598590180966890657448706629441090108009817493631591253663661776301858039147973099082055834197023749992235689004515308074189982448156420606652409360844142249051709115567910131519092373820613885642379913199734213660629515855051122139832947579929268292765090304556534677113497638322797129516093703228968846544014086477209309455985685437066725748520899775642877338520330058094467634431780294223478654600076908692756014064731523375084788628812104618149311690903849314155984327402983164432001815968786095233591292305037409891147500836481620388470780590098913997312249707804719155329449161002888993267179842280205022051443837263067344466622719217530321410603977412092498423212872790047053423973402347675430973298311355719551789238734340767681687870180793148918475776337486038553142050042204109698693659880534979440341798027709083002774642599408347908991273783160118584188761318651104392177538004512955066747453553857240773138881833156871619358935255091974838753422860120241034036188355629935493922361583982436749651942299714461384390313716880547518078379066699758889327535850523050833232350593503287980655894281443497916158630622667498588950697426515581800187616897051365136771132994466570781014507980017745742228529559860543433662275526617649133143553312981409738598959553233633043383842806381864265706430923754397491145963365466259545506024783534606361595622580016683254333220805970048565090058383776712750956544970107734112567298432559532547994475068263683848648774381506630633599195589125264783628046666241774780146986407322056570117292886841876721922060677610950700775181284082591036747032653629317940731383569038685585230198994464121957452546741376481248916239338717866715417675192619437311022335763553042110967684727226282915412260534260493659953931374894983120497552600689350225651032133632875134119044502827888140807670049329545796188134148660432812594313926341880654936103745575583711501337617517681692384935390819384539991394419124371028743618492225069619937920413253634364890872212612776321949303220177663468242833807937146487492069592646627483236128405639071692550303532158152001069261092763067235408381009598895562662908293078112229359880606515216967460916602288666036218089225132612786322435919201794607180655976923704966459494662133215936885180030586348897682395951120079055502419862732332550178019642485414414672194078669728840856537618087865656889811071961489905209870974456476360512774151175563260990698035103138784551035676939292764310859323981215035932072307983669466536107404502122713064080377266147060540566711974487291946020609214804202503526216416825011635610325704837707181520827949276763578246585138784540827077676639114047049730730249379420283226537863348434819028529307502369681512151135145324197513546386273541728323372936616414295726023301857968807614017557444413801118524743898905840303981125405133118048446761231010080280523242013201836655290334329960695208642078214423479659067684935314050508740397177613023958984524882650175397344712469598169974086437027494398579026584820127155275810769690640604501843343114513669392813313159015692804632849690953308908324790317189373755156315412597099596656487781568049320178156141637742766525809100769733801706482660654566961495423077615913210667326875614429153486495027930153037979750450607347958667348210479325576213133184657277893296974257847453918631186051826633048649147058490604905976790723324267267510338434490850167641319562902747832767532616120656749459056780096745931300416051671094477201022503471327903226713040675531943533555152421024757014265791127730381361358004635113869143014735740777261225406962902944249128679299955271388598987738219264104165311779866431013596234601729009344859603323490794540372282861273674090271211109625320411735710431023472058236146326079791718601562910953307619554474315121069654545350306741746671403147918011065322937848838606983791984745076636008877538038670087333017167389018950749000976795691926185986277510877644729893209186883342741632396666503569403939894868534494636329407916058766319280344810182893182776990945830310428945506857323908250251370826798609798070645071945563788272989900376834301899929373027634500659751503353855529140036223852385067859014313979808211436827085499779726130643184119464531179673906740287177674288009021327599780814249688054787084142092190897906012200580433482355738064777524200962031908290147600477107990627194440274842704119055087914546852803942778830440077523793998736746029483442784217318743138064342504768223078649909813523361958780083587937531008847435314575099172400054102477790294793571573104323640927011258731713705123914271457545697242517236640789568126181864758562707109723560439496454735943408538244861544622725996645126244917869000245889216907873196751787356064859024083114116731533835813366101461736968681429830281198925330975322826075791621317888201422624366854558093383363575000661318769683204010734418228504145340759594472739676380702212370788140340015305679467744066226519411650467821227053390823828723444694933317748876568003246214643711173587919646781769243682060770129205421786061809424821384918296751948041688082530689137723342772508017078022113680930684708911890549131151131320857475666737154026495040455186066750878867591489706578486640054890282617642031699762529840928592496943928362497062478009659731612995518614423488218368370670211068520295596730407399603168826512924422122365832601898516593113140633448742942848014159468306583860863493100681120799422987306985302143129582165297398476319205555448707327348577848161108818811127237890057460420184220118734331060830056765154175151488821765007101332486548243640049067970403163374372839996206330914805182864826406403423753396291541952528849840416880752536218034972321337352954802043332567826277881497428626015991321830045536299139561763417016900929831192382073528101633913180132731007998992555834481202941588896955054628803176460793411137284169568062633511641756157204997340543446166274423342252097110600298482083397420916235100972098184424197187675724494773972283698873464636028472082317399855373080125454249623412418012984129577308406218076239814915308385085827793959005490860941133701002912646237052013433517648240559078745967276401742918853644064234062680777148298694267644485321880065018594672134896145490338528118043314363613458051698571329870765808382095146324377349799616800885689357450910600829786369174731085936712268688635076399554158394681147398274017146927797053915254024905171920312484799421743682188360449670346198696542203187668011110413884461864113027529528269459031269632734523034981949588789691190154970072044559801969984834008809390668562200596919127534463860228725511862235533131281649856765039973683183105431202186172585432949947135737843656458381646268156542590016510239135219995820301254144504908082396240772539360542177567746214831557449008109324130177738133234010629506614911054854398080190990300198871787009091135148069638985478250260071666751998758037835539957102169726740988192523768546084972152898743713553119398291627182203037089908099872943750606832468137402656721561104898899841634872164598959069514047457324609878333676522220703416587089965081235510733524918154249972356196976347256127946897451879714970482518823056724512146031198037169956420109612900564875456913495362285082100176581027669307613636074896984811674849066024774006522209493789312055438824912920904120164340548485472069085793219586391019690501820366370470798750095231757615530896733540996378846625677583255817418872844621707544434069667380722712727633023027221873235659688636792086019559615952618947471612650426041517776771515370818958920826565023663352311601565758008571250028947537671220976676708464508963791716016918049804359911414453151808464715170968032339498004488111711148521054774831843566356167731199119113746808977706079284359117709093596939728247149208900279588022502385832374893698513692337217855046696240183038980698891310397013353934114494258841075771063007171784575529010698638375780652519180658695079481901985767849495183529726888667934397492932008289457143931717682084405242724335048681687035548776204154264418809279583474891220388815045575002078400153330564673073287115470550480842291749857192916596014973021033946835153600223905508919360350851563272960794489630853078056891683096673191303353571548205495393171989432807568678906423353855193606410890280844965421376305981570066349542696116056514316514675478802485969717413400435443986556811700753064741953479744495641813023446919147852180091507822724378908127484461676006563616642250994046690915403037564287713754457872624344799906741118671141045761536720437877528752837229085593840832630047222100845716361205646966872550388638389494152462348022589803325001766703635386795212241389567777164464323951872448037083691766959304401587894870492721093439547503050092857985871914387544498852179997349743693753012567721894831717963358647469665146116489665659823455545620773350338423572077483397838575774726430891364855540307616640972218336366341506533586320578706626562177680398819727958452705351308269244092728176139328805238004235645077593182706266786181583660158792646160588483094980262990553625354112727883020824947523767354218807677669744116337871157938806662882355585867056956042881423320672874790545422341016977060964113894010113425565338550297352655780678622044360134223308018430898161435402179808193403216672096779652965589849430712507331415749704842317211367711079745875614767399867777579503700517229754025114752835493494406912234914635748285776275355962930110528618685149398945553638504997248339876321197537040030306542330355098546289571662142421846343197928890139193361367643332143905135721840076608574813154131246858074315848419484219313534197658404773377391632445122865828465085452210578967245072654981635653166159035218940548361353725819893240187193386353808189290307782480368039389379339055471422014624546664207094076726029564764875975154368348369958826822000087823663354433961553289180999163672168375152665711545019927311228617782007490601802828787922202753298157302040122357788877331896342248014597500907980171483211197707834253036226214433010896812045932861386734402201850100081079009485237436031580638943592026724651758416983962076424615569424880437437233727128860068595741140897582659324839571173369406035229522796046564947891398065335082131672346798935226436042502890471773272298504837256229985546485363101691707860816933346143530928258442459606438051364511623395941589544681552303807134257950716239691641112164567463374189258841477352732172937187519300319816844681027471895215862707208459846284847121055986150797186301814541403521272252712105431896087947954711596604142517164971767563242888489194805844009306313674172068775738455516878624944393382910530058141585044649949783203086286216513422182278372221587522448266475429490138280989617077858829040269862331782299189464397554822527382155127371198837954730452194590079325206520235288483386566645735502722584027613897250723593387884401137990718526378732523844983821373574328340252555716414142760361520917616659789704901779979019765566235037010616231918774600336939967588989986009339432285221676188513372744880372469933659139059317216348419906096056447863253560814619145251510859600915560680673097982128452135776036514423640956556148468183469025717412864632149941443498296617591404397963948074954190320888009682963695550279504121368691966146328840233398290574053763180171981195967128476307218594067270786156634348299621355612577915482977814340877412041342541571690676211985481834954171607361277757186426291991183912265661454413426001523294137114809698057006369010754546302422975516599535176817639326267181800198565663669959889254196039323113169969085563370633752088471105703160165508444656025963715676090537341501337104462426974989742996798114543108189493847632953118848537278007183312863599589407383404307066043855063902374832731095402268970311122091065163748962559024724877087014305170023610214327233935971314047794185231353327178190105543222873728794558777727658226778491890947927988359936116878268585797879343215381001428735271231168489015233412352478396355135923051665724053811209342475736500137397576448112360810869664546796779130209908978111845993339411548091988825159547485925519859131791351558825187016741457889306405308543318624749692812849572873846717522753587849957670144267005345232966999450317101612789492524938217400661466604997037581006688393577934452922186609507330681111914344880630555876326265556862452581610954524475540588884060675026879003568629511378800251361649036768787179483875046406475367928176424815159228209369240751300234342039200460387424425272162854656936405472068213864812433389051537851241522795818684525520152957834722565439963932249391897953347765986712647783941690701153631475346947201847582263395522889450526875927661062599838538363100743316740131148917067753385244286559960885564728419617284925151479072559648168254557629184323748816347171091401292019316304926991079998337195229917850309964194075334414850970381514663803182735936344796013627027026081596518495783536167365982809494184562414609906735299754343430218157398659864211433909911176763489956113819749043095624321963851833623974425751672930694080121808046394330255122679920475759865936839266063342913540340812685110017109328390782807969810737162462277801049558103693189661950473448311506971404913270048227507949872405488251766787852912871678623554377667121902094205244346216777313586854083951155715251705765712293783859416242835687287726268205865810503596418362939658852549837359154971803970428339141095170834331401191875937224963228213855161498813353724877679714134820885741785861797604600806503159713493930125281920944722848588023053772656952187452085374197827433867076127637263547111848279983197893315108989880798516918585245620513258158512652159398956787445854634199924704211773543904574079679960302108832027405332193032250911178868079336435296795334215346678731039943429843112929147661233152731983625087827492295734195482304560526168438931589463988098172958293748609564574317703560005530094378927873508628968077506050911471487352901865762049414873450722610300734665714790778116793511192461528042056330472089221940089532221042195025931041124972968820834901800722499742517056070587795797112312137949404636401466876665872446567256173833537232293700565978885426875982125975125621251094073822276460600602081932453593328548137928430692389777396250799954537921067397310133928468467088446002161277956059021421804673007800033756917987945449932628839412127197972362699907317180004336796066884623660595419909564398074231454259587386404460212414796564722015223181886565219890446656432260860662216308233629511435182295974045155780178739786273454760510606177248335732789143844923082053585879277549714794372927887077142534449005156625872294821434562247889308903759858533524503137322755481091941608706549481288956011105833464456781393515678877650259091405472672681065948015240493637759038336638431574362877872342386886543529875667856601016285837810714271344552804829345796998806518305733205954943545298722371233698941631713842148024916876889928155381119048261259260052089391370484599744692428233033497946847886535466647687876127898932925784141078768066924017320282179926198237196594708778127830230531615952367278197917728417788802763101273045342941131501535884830559114740638915118175170515514539292809129192182836312654291017709902719985654489081118126197540683228293818555713067975844171503632163509870958315174832286525787749206087529373985940288223191541365754101833477304209275810763831596303962460547573869870219888636650290649629063326823219023649601597543994851429793116834704121611692905772665058397449449955863759917653028993300814867408725023737496028657794909903293202923660869228605270645811613676570610074792888884293696405715999473432028971061078606345381186374090154206464282064959524116852881298140623214663211723009928751607085272082342068375467194272456458020866097611551229259447661638508757335912431164254769918974678353461995147887221122524446786354185785639170295251023598191372917642401601473962375475691626692721436826667876595322957096455555243528141261702846963585680698434234091113235627578365450851066899843509076914241910978751720747462260622954708087410893466847455301550558311154133117755748726113250594195187483341874475480993264439570308673260630504881407049937056082206676874737024226194944419186237454119313937246245110023110014102796274916870559078341320935861613676397090056742335761333748748661842723181586414717045665015669236944633399762536504662825337165686505277748857850867765450425734013758640981022058304322863373078933737546499522960992502911610717714033683278804868898619527693031743765914969290171258916776507693059388627032152701474537901099263741078124647651608793817374569796738681841499938100396061078314492141415010671417566423810391338830194845459313991019458155372751723814011944923705759041094160708548689264264142359291485884511825156717686436703516732353322600067759398455800575205492036642653949678764638518182009947097115383637595586975940774739805962830079377190085286788804323107827209139401856302547215726508014555046772803769643444006926774811241879926519657243791168033250361526630717357770069564390445781239967186305835926682606385962376071250205338256932556625223712817480157982488735981578455774887113296639978423421109626316402769024775764656310497783171605761492135003994731362529664624899141785709887568370668557229263136540249190258414148986361871850081618782228164821742821009659660148318543058978062084833651947154460858726125611213038917805124494768708277881385819532733266267079778753817682379293108989856115441992680361677181051451971826642707795784978175507757549564501906262605076683882249613096834196810484541635930100367091474538316986003858080433258498772220850917286965844878297528888074378556000494533750155189413447249729020101930350135855400824957305527727964082727773389640867286938435205515134650049195180673919457486340249738650726117252803794612360924693066634193651421521102337515029428907879704056872913864855475219244852478268954582189427912379466589357270816466657241076213232356297487270696663383379515929092649969117946879955064709753082845869688971946703881741620076084620008406720642852319671140398839381390618985912106825160577978640296414609760311134899685981251966177079842150113051093377259672730832195453040273182828497251155187064534625460060486999131926768018763532689434708686408347768236140482075884858628548369363927740188147230557927927871523206098396178870032447669177917361644695560028935721058233811559201740714599519496211990989594038747866879112061515895620309163016500148610882260501019152621594905585410892029375284646900803046590464367116037942769611910967317818398947054813122582318252455482239553853045839810539700745260628645058963058180337473147144313568506131196576920872501893986271955831441155711484680219769710137065034462565691624046878252012781114480165921875122403570313024580311004529955213185115763046975248469936085749248459665945417880507921527966282153137335867761843102281479696694906734757386040758637001786405729836222428768083618465055519368453702678826924582695758822003649956178531968509795643128327774765935847966150896090097995402893519800503665986793449218332117237769735957632589754185557895064910212099431205538271944416917870435609326598724704166301559992973081469291396531985072328895809291374071701584114067016092587968231909676193133023915956044808216765745117476874504259595252649280149893196501555893291824802953129880540701306045658817288731793181987301466641969197525560417358552555386503007125713035211394489451609707525610259284822808494911542349601793752508585964170076681311528948107250855432571461078414559497397123460806609613351432755161269397287419473091022726508186990747141709169057475754645865313771854419717903466517365111502389584434461195378225807220885991092745678412738857506228005241741343345712705903242723577157882188593619723043110395744145095065011587632265601374857650402978513243280608733229317543594756860215212455570701179621532886050912508039879738783139452100459837222698886323790924405750271021660831158663380602031025407442744490741414546747238153231849741330291745948075758482201667920291981893890325016883528542682196916653132175339600886389394281659907649410140665258336381937769971157117991570373382265178998012731793380482699175879774748060984926006404610193589267787700461116551017583236837842473722395339575033385635753433225782623387112209043884368558566820641393555582137224656678816418081253093170471459010325487307633291121265788074010670867391118051988848982026322440109363749348921850438050602836782326962147941612322515162955549479146824651319784090209988758564586896824062171995518312312109616149416893795946823525608660530518145333494058946162139024099599334374346124340166174672093695814745503729331540440773660499368768434440464044660269441860529963521292457101144680278121403664988874519041453533115978710576892877990576774368235128032705479454406587944092517194053182395525993214147489235298002665247196654146075931521120731404320008141724415118051714939604722918508442305570634855360058909413069304998690436362354465032122654025263183804566819674372029243500700890432662146807218483812348547452403696587349315453727967397369134019484889184658028749110732694316196326388676006384027933856300368389842245273950567146874965043521601346562923959234223394778440094206217560606762861433584762368971728734519263516105441569061254407876325068338405686201109084228753626100650771149775980409794845572815627505983953121986130663001382032149186078611291328605771695526353407745338598675907800904409554858829944278328981773679717659784491490077164871261516208461735676974108889623651944601163925963196867916204500937451416028036083521335423466271155560958202106808219129170169859311890826038048542099208210175624096698844357280376152284979526371527778683765632568646929702248044226424252168380957456344165933572500458794292572816733588337849468221407581810450950823002892788929850260100832719379468412628703921714965492019269057836655253893890277541213907374555569569195539649601146888773092685001388954642508695968955025748613405800786108801628653579490658200254413631972877374512979358670056392642254269683479208034692286188940728595921320004048077774530356973462464331852483692757303749322172826082444189892520426979656864832169451419253966960835383137648995340560089036653313346238851310496187699055022644403571807236766744218184955572811684323538386960482382017085622175332112475726146974856921453017660756888650098240218033901841539412287855102468540473840822105491468351763245976293483810258191197806372020509534824358093638687818177596857469879375179290562854669452569151415094644142604316699828847510019738200223596513942664294097194250422513323603150185134149328764289120934659922746680610965106336160347419702354893186584657807006558473021747154278194363468008776784504952309031897227755996617462113326853403023954633410404766043748554593722033158799602861665490461647349437288899068726119627641590174898523448981731904234604615246613750619249091565254588884373527458737576457142149164120809052821117193259634634504518521936397846412389837982327933957338023402924491587561481342133409167508180039329881555323315310292625649559019055615139279240143078022817616607963041768874864739356646364384459770338630952551706116204611492687801320361674352372624428614179042786936838425171766596827784456879957326904335052087324526752250471669372072847580040608246125730205221252596106479745502141823083961650246184345122237090968292098053670602007802962502904311027713665807553312054248234211019438667681888615431017778344714405496349983419938695309235048694866428075244726248723773591266560436140300776136084156277264643476709910984043775316728616742666419040345373192141802420771185907201820483851935663965150312501214234475565263246631467390419383121928277707241151349387901282014562455933341215564839822801634885771256836384316102626838887056445940858449152167627181638321563689120130269695022428047109899015360747882126806607290145743236040368442489679987496816421428006159356515561399337041797512934693748184830394904165738776852258625968655867282029835768477004171117237264155871469964435377165798495993512984875056667685076730507376019537839797388196307707828245830537423751931286731675137460033394902543145095367319021280880461060005935374062100354996581303966246022044439472417740633739826824316968754476670318523903077880189904477033326702386287527133222426242910493122094613978114045551828027192828513444812760982057940633091509912215051574915730660130712670920257672816828520855159554411773895525832239271528533768692290667695873901651962727331148914826070743615259049848123083258599360054957607240967187361259776463495565158792077059009595744357649880532499087741943024919656402139955502190910801266434258792219777830881132020284435325346136995166697358417571027257119296374727023267858416757950605161610290854260071319393525258410469307618738672450114727712491443584177840627875435540094711382881103238814972822202559934958138538896767276727808181943812540654444402138300692089467590705913331827540769346442973629967904866747307886680478547269038491090571150392752804659849893565827032342376368506227619888281780695944449955840753956430326836315789682805990298101945196380316631356579705399754640835998438127783570234188450169803746172285201022123831052303988919274998779149224884548521242350208759982556832534244090513758890592782422082930138222360375676163044631260014935019244566734624741999094724750844145553253257597360926817927235508035950513527486612985389712243367323579112778677968427245307908936889210842552649793840916457968365825114924421665872314482669666062856416853167217403667121991006757037899889020045827678433479755521971367559035544646214447907038613031310798041055756139088491346367741663215830521726522959715295138706980110196695569033904979860327619684417915445558572848376568477643535299355159505120177374815972578821700485048807682758345752334916249458255875787740230446467011824636818883057257015168860494354811250421994986105254193386152924361219715805328969793284856622550226562217492000633453250942910413860028273813345271381939894599609665199461471522137190954549725661335954428170100630356700203168556272313095713542722465311605375476477887414122946083112854715448677492549350178039878134887706460674670143285375242277263095245728623288198871948130948202871343429146069507186494515428221005792623694999471883209491803883102220197387766694992690874925397197582691225238446954427483287330206059744228118465836551952270851605550970812818786512639914005381000338402569718450121771854381549066874536543127635988219205796173040217818344577182929510500410823627301114427937621817799787974370185244363742836814961300394498395704739969973256286765675841964729573802247914030656471673903886393979562871538544978077269196054101098238200278776621884951681955316287472933085600586170690570685661764839562072601379360198025702669324110512954916788334788865513728553750401774604407051674684782522387021185721200723403531552930221924038908837313807978036845236768390398711511352737378530164924771191429563101394876955264052819438093239210937799539929048314674191566820299869405953796771171888639013444913769261567894432635868624635422685444001537551158437839310812221118218665073508010098779978784443886492339172041023995072975554350767245159081967152554784644241995230732314081746989954904728742466672211911614245271932103460754672516666916400545002638845474651699021868601626313953487443879339217714666719496737592754826570256075616416654020724275277414961596482464595439603900998916865677272191375280413722410780042068576189590596124426804600761242572619510987241030411409044870816604418799948970615568023397227339391418854375393482675030915494900743419754381217802036688448642457899095023947212853099647819871960649687343367126184980228101110317438533319892655777282948153549197390990942060243807804450319292797008458827836837987151027334076973600903649446834130038154163466221578954844939161392143751076439428085110539096122024163348942517965558213321954298499031640363942134968189235463684046994250432849235224056253249840342554667761531306766361143643924974409212986045651819126747438495108422931184346763778144219030393194692923720785395976840766991556996722847047727330110541567344700221233195683322999660085967530104474947857197876820592539745277967603276534883301115881530960045289224583223759297757816087762052086079260326682363566620022359757416728563994297680357052458378440458617835822121755090409338590632403321529381907468681984134093073725953776513964758290339446683098491676028195426535241610765636453377659568750956094553307124002430511004736945913944936014450666086829887947058354013653669142150894271364270502380915980188251294652679742983462892127058229234749779424436115643615357045262112645274880882565251051409417492527041389181316144192149816606129925673905174411711218003449571211544520061687324866367913699200093707710702270532868967490811259400970459340682286216328918529897246477114368740041965730276562961644403285052982744147767237831011906474117268902149167837334416377769638474414885102689060482179439129144623029582757980551436465476253767073536433969440236498213969874183849353656995671265202336061443669378228682302643000780327381088599181002710192838733109674256398376301811029148289705367774318712011731797875805741597176709355915172234564962269757588342465909432060603083365616353095862275487489804673368473650036873871880212829596416430718936996054658346831471104213745692781449842550461915344130049500554486168718417511246191029830193865106322057130167936748919318454884414042535284543057534659685638644101125611884561678483159004539317988797390093046193117255016141867884784505924751347946934283893469876591981522662441899440039841592724526806105698513124132831876300353862523849506596593058982381440427293421314038928759036751244862737529250659436320193087378623375928102228944788329847720006502709584152055090018059237006673246789327196648354448685012061545295276710432730593574423599321956005120859527227433429816475094285790773860261273435016147282755666757812376741455671320521686149552358989106555223264133604504692946447859394805576778769048721030688042106379981727869667910343806404447147516092046880532705544307909823665844865983433184815489282680938443959923258962452842765781482725632489289045574519287657948992619692357386506826450409049811710063332925696758706203743930011187723270745321148798350771316427666087536232314921539167298156090745984295641017497361573223571956579523325833647576709724356114859702449809063496319347165481233392849291922928229529872743809556675177469306174156019061546348116358432378832251571464273183255757413786320664940753471816528975492776351063878421867615930684016594370069851406951775829270203510730835600054523222443184764774688096383459389168316007201528285653803340325472732950389355936782970687550850420822474226293793638461373263490196433039210928556001961280696952342039616549462926769504355703333045551482823537801884614871395499394815159155046639876113750789860503322181628645489886595294023829999047512977821736431371419310675946977539368999001844987537490141262495091591414577531137094161095087669453523404945035774029369207710300139773882524710792975182126072405915729260048473218966776964933173402882852393664378306985085717810310099843825182744327970044240104870816801089850178770632952096235890694813129187898797308296875140155935523947877342172873777453380195897861235219698217973960169471862923852269941176211735782499271981813449361010017754933590664028008153553206522144572639719368026795579466128798180049604003892191815537009900626630740045605257663702501379562857512590471951580154017126054237527809664121875595954575912612832113872286010019646756785402552693715000503977178408596946119219264220344910700501403042893874410111225729779493154244941198690718663271274099168351595184784320783052051330567545373490672084812881845042036727648408135818408774625882848672353380880937825031804753610882762682606018919824227509759720971956740333443071251889492920632291611734398026571011544686270131752549415032549711968458166418993633906475025760530282813285902746389737856944962762694894072474693463430917859565242891141102379258935732749772218619060293403230845314471561613445508904117378728600701972715052106523490707842856862170916674400393394046523650792151475905178814077269988540270295818465779007806322886492201102332326408469285284990196263086198996061728381781062023110181331422516914336245380496755738451421531518966903272067802306947476750600716731469493299007877745986724572185131986117677304169732130778187648645993607703789166467583595331074563868093725859929334435989297700577667484188292618363630224338319739300118205987774777011061814252576487726325338311684392124015768927136959494066778117450663102864904680596499992669618957717568963192248037915481861186441823017697633898890279298916922482193910936716080202014797497557240223519670838405306221525373290327391318244126987696458410079796992075839157957545614308401772690743805335811684818896502749114840072660270500101364347099556583852539958238559923121336483893114609551136792763373851074742694613040742143434283216682907728438231325055381992515585289908806110085045028473711322038688354695690325264411156664333605954922592867165503700327854324028293442982319961464071273152312350281660568894457022618960231581579032929791205182178902156057672786604487312045827752670033545802511433110155469515175984066841518427799537777323915800206330254092834899011377348052287826976796689592268553791209644179606804051015045748301661359025059756668112087985844190408901990188159863769928633370700226878058167086795178915442013557077778295375686211844145210718081483974216365425522109998042214724818642590328419684993518690411403522338983021308139413261527048745460739356176985560937556934142194059182984437680969772091923186459540351682104880483024795350144691312131616573662831225128183821952335990087566490750181426238150331968993297700918068787690650005949783244232534444752692105469316347913619254223159345931534488842770803287320457030587291369191538930390049899219922653313471992811743311955032339129257998345860091314295135902536877111583647498049353557706915212561269613974110650932464221812854626955426395288636374487652749826199632749698265609375306743793113825758427469025904051327369322593268463200754359084883697862603319153322274007986901026725008249218528523820989942141148081110065329221413384094703578438820156236649450967259773176024375074051082034986116586401463194994285723654643245870128431568089840210298687763179376822761123717810917338803524888594127611445235852308498392538260187695947369564437259630509454487081313599126805607871394704066471044144130377849639272574962656926659148991559252622477170885208131682748650236242208562342974983406695579080207170842220613839592713266274859031112030530429970423063693659754205754863066475618761714187097578077446283252534952346286250213727751720230063897885519580579095482649469395059573121557625072514152513821960571481364741843783116008665494336245748339687304618357394092266066551938517021736107116731509261621665546482207970613241089316023923039085492194750643144670632251625855383650195087926774152563380269659098264043331155918204776873031541426618100170622471455385390255703229454884000673558421101358707825426925559957480252696066549695477934253220040296449992190629144706741630733799135324822518786618181566964510860566439380126871102250884007518196746375204075426247855033911956448536466352177400786978790709204880262795804720084099924123543756103852777664513850303743850924766070733573414761282066564105446312595937954758542247888322232121024767328251586418129437543877724838210467684027527453737521900751191393104899978648171893626276355901978952338522254824735480646378267624103944072730042150825720304077128018554215681572291501191701015058604778422073177578784656223109880656959447863911685838792641754437234186724690508884826840668142395548138106262462463895250630306270716760203072827954966580978864059445734302506137901201190233760987931748517840904583359358787044727649109418820647337098460440997768778695566477649003294109588475412456326067705159969858861232935819320461660612135354342152815245537664066443296252050570948403271689038935623847084096506600643846562044930520733104879678189981541603535721383188323396317220432176547614570542933719298663956857409478046135011310416259432684826938974952345827041387741628757023818842128365848492590793563565787062361875694054042570353092086031944682200287634882842869455099558925187929039159926322071221828907507503584910887720866147259625009155892223534301066941310550016531614320947811309895817084996322576061205743078620355021455193124344062316628329474795827745075020973417510947638272636036253997338712877474602836557112303752015256130254313425728147754031705851544177255622768338368652659003809658539823256093769277700618729651079749707166463877006794118059122713162187107064314828141947997893398639153666472627333370531509741154253217992059155453892669006483882600038217326371554985745543584023878842703881380546045878970719783187705859268102417259998273996267377401939886090668079141840080991457253262897254314034040112173879339551695468341610171937130894469049623533971704573515725585284052817518182042195468504836934678463712002628180542747854575138559304539498683276711587800350544645350102522034074593110466649602568999050763550371502068191280873016577387480534974812412603937652286400729550631159830500992679538102089782611985377774149011166656444480631571037514693114851198331894183885153787897966693406848976123416389243332155500608530324486915790199335588236329387820161131251664235588561814108579757643165229644446398988751851535938020467079480172772411248363878872100848395003894255248292239778428148549794126463583986899809761913848039986957293247975037614350170520018571098427995028621584820312968115772053569448068392616787502154873082934705746912841882386944365833602549847568438951541589051217250613303136719590150574961953962265623098482295322491134921367965679709170597398687104863138151692997466647608804661358711570312178425237071922897041111435763713721536668466423674791895665031223037851181564874651465287515658329961702628764144657242708391253840435935803100782012483215129260559901473224273899128124138712506201639866878747454356689528834525760128760176675711051182232524640273923650375216766920036050307513329073517213488068314799399800512507296374665947089827470694012938987856421883356301463854759026172055791704967684254589615908477519333850798226523049936774047395077860522228536873967417397988796813038112710622196563655419301779484099442732152940317044806001686423535700328357934106109067512883056070499997425116567797828672990504626114503404468827818099267521282017455368014856042940400069949759317022482115352579549965109227715439005703487085534817805988244433140830684758901961945558197506593611158683031014996761552974753471008371758748294430781511157224602128076990677990615553362512838137916855072058097802202939314426181521349739299512726023003093785543606613039742752283227043573390455487581373467860076527181853794997580903221709432619003552761711098293100416624255658821605756787004105161860677951397694879518976787673882757430034706775531680305500573797402418745220721157611468108157588462202167736731473983765713590515025686663762811430243163795179488730482619263754507056687300067093982939442153339405671831915894844921088343463050925848861364999817118649344986137444752203934065118521604684938746820518442908063390729582008523839898335011282621258814692560234175968202421512890738342265983474448075995944911712443045823409148332894613296515525473262807348447199780303632632961765350312204204720434884067535191921739931959499458887708117220080174694943260198584110195319741705489270019564042059683389873951680691402804612447756880998818190136499321732966757765919124721388771044681495526544737622461085885083307613455829098078782678169523834685566878852263343572249375208104033028610208291140099437197881854664479792323914138081592543329976360767223832769359263791356393684630364699085075272811119142984141100214913723691608499909535248558621434913929624628489810636843540862238703263469621877811389460053249363591372896702517376490436367392711906346610536561953610218144539951443376606535956227018224984015914163028755036916766862245537177675105460698992031017585383811812765858070915240286864348132748004535834021796959118400961067391348806804249048740459173120186185650751227383491089874212395992678358280494036112692749187408736382104800098571084265690616057389719560943247169316597944451024261123186725526495153661438422282939166629691094967759586885637550291241348159696494049461153961451357989392193243036866096304972633675070596168846369500235789584007960335245920402498309075930601757088647368935734904668129249345371749524549137098340831164849002657539506129230763123502203609738123457626794554070105023922519181825179638644913734071117026663190499343319481654544514560689223780938548480312923023614910800156091699380811319228780445899337912714638609899894134297523147985162893953937512790013649076448708585467488901127864875931205068788743854931250350481912144821475862461163906554849719667058596632717108670287793652996534127671930621980905438648422035224465787796862260433554841122845088134509745072330832647288831315443190691451160557428595114712325291563511270059983417148415096624131566044064474401362320887133273272753518391047471692423102123048990544511833454038769069770371139609885238557857717706248663373583481641047144580136776533843207448272241637200055233218009720882743395541148466778980209627187777211699674483894282725451589048363459224115851279402002191045877711937777524405114314955037879337999009877493174455188291126242623932585261742890363895712728811955013801657124498459694261243371772399991299267885661939948719947873052088296252299772238649360747263759632007709859150326736423978124927646893673201691364527234469327668281635950045527808824333705493815107765247441366084848356631558551598855237781874283065372268528225356576862336998153941473776408423310682193979879051576501264770005438952762519838747946745509771419142596047979150350016853006506765153295107989750948576276605007906077059980631543911808406331464730760456175026679993189228996833536833259592415623688074979579096390219778648416020115887750143325832574706476497493839450874420838525969118340922887306163248588674261460704065527512750293887208547270284341365204941896045809014635002351432007551353854089260426847551130665631353038849072106388240249053900822076054146446999476033936770212051672415537029096435110355432584612385581988772695407378378571094324724006618018668390917913406424884903887758076014187769949195502813297529786061066506757582797694937387187246436796016856605396076232988547241517018552241293439964858459333550959899296237462290270118594227251420591361568581130857155813879266138879231172867332616956710511870875649934980810191215610156209188776620166904238526413954073463260905456976497443445067206214287094310521864857782389412048960628064115861627471573753767327137046522049490282084859903601188956582479583166903215437511690502942229873748775655693094606770107967966834626888611967921403835853911500498655775701841830965983958111239932076613476473260807967117523419219278795981191161327981060156042194397400164354914235757265097250128364453352275418727119276286751834373857274341263021124543180124455232592415319622102404981974839193983645158240249632541743650373967180418640547105473945876745815359346831002093802872039010495894593456478323420641511343593630858794950418653886187292300375877341106536191298269773415307573104071254115700129946869642206486544373224306405695278576830631430718533853167083906032489813331305676839822975455975619598124177144723712727087363095700836095324141214103219534111557305510146695908571701466819783424292118309666024080853563704158325361872582773768571296613637778726415414992655542845487798633688716322880630014945240950413371410241636943509949486215616725817660335854170938703968845067700271712299408247549617566567991187449461395727022191879186983450724247408085775783410823649533011221330473585547771367986688340264708350954792496256117276503762033422216617436567525136159349027007959617878827345786232626507504156776560357250072231096575861004074349310525033525776050887628300215895503467073466456076844673584750957298670485095937606139925572506823755375754060741057251044024930579972809920273423251491660235235994433666286489922878196352219161356560801186272571768559356149369452405555745764889107639260907388718344610047078640474839925488715565192638210856305500059782881928275292716452690970283956337530060788146429823961304738400245017122006980940085686783889986629331617781630675966196149152600443552828413650737218812451306428473544136788094042513240113064419542531216605771469545692187884555173697730884099594082183026762635554285360012779940899808472127783248047127123313487381823904586173111783809805876694669328933457407836986705563307729738816954785414602816623510622595165732867465491821199169514258838577940834578202246061300179537251318413261586253291240376406201245169472346510315396642775848854375801521242140469783559192490742544622101986241752062549864822728315909867154171099295770969138983066205452876567736729627466362990572494509855185817781095118129548439332030577926165522721979222566331455779882498563263550883849620114809750489817363584800694144527438021674457859644327026440088327071743877334857181640971178922614501267762190233386211423681518004612023709069306003851449602306252636358407102738122772923478004639143998134796108066774684337873411242681605935018471278309988173600598856807046032008026001086264659260797211402858833952148452002260311444567354640596014489867856281627811775426106474615422731504228649206105895231238716010711556575964077066469904234588056601280369010444005536649495452453798826996840655960929122618224624329047189316407594155777718217996772349376099078071730921566931287257502893982041114591931239741069619037915839081274121951744026343282390291072554307988528643758612823538644885284213143457181116408826558048996123460121842196503416052719302279315729059221077216157659870163294804594430943956863750236507703594989592973501706405379921504031288200851963810351680969794899112335719319600346714841527097949690515781275395239705143395110158428759138941415049097125137572343367853289683438618399645789856224028230936041926548592669393868060829325271654786334755281741269331034479198120990261995249740218779926226552428774001208498479152294488821839422640066123331421865137802090107810497044596135909900258620166208361159921016419711498265231969530543083750966625606354818630851777659261823560289995312563290145191080044625978793098527985430223017499233825252442892506148293958721907647592603689396625748952516365398762632025113534758189512935943495597166334497537651738051551399653447635215263285627250489758804233854646286068129323303246055191992898337603687732045766457465099866942547328004386666356453797214226895635683704502927702077526858629245200529537887549253347316497835829416458888911707040774899354182830355212773500989755235288984578840914360751388385521405477854541347530796097012072408029076835138044274354079390599730417421534265154101669706826061526004668661452261997946323296850862739856466768450167700554535779602999434747023083345035280303652343786708737618109035696627677780799916035062439233218108475408619231790800774743369463816455741066534322836896484547599161058962500092719520239531152379750037685219081027417473974588641023627128031769733086237844879267336469855049544000540511281868168699569174998982411505079732923467577847559280736252141983385566778782963107799681819033069050113673648045356410977109201704902437063071595401172010816027111643527963163325347288477712115579938565941978673989793611771091874651471565334836830650182147002274534228575365193005617333556308528340848148452031410565486325692838148008367314045119853937454511863686030799543046690928611522866361194259697856270553509239588021262226995230498817683153195854924767082122499475578390783554096831196471510774060244342943299525957081385408495805563624508583498157167311740031592406608153085499649661908608678644035025986400929475417186926112698992165702339791110780348185468295164899153463261905566661427524552348609065631651942250807737795380588374383514368717317385018879125306621848301802213719021442070935740380205560989183437054352562715332759343953370598350908384243011572782461357590887757295214491587223128513094705690273927067940525220704229234333897586687686391969022924226328547210478823900244704222466809477463522949323423051703136726326970280501828852751323522250536252654967118951330640524221596751223592242593044021567740542638618299403042318629558177281891076898230879828016753206371396778756501827337247975568071896989093423327065016536537523329185849417166568539401116619719019475968668334671662378395753143634538002611603459164083367377121763305805611921456544035303608825910904163284189158444401723678813658639401236524335530335687706737744171706358189780648137150971933815092007550727571588648551522259851273469871912550627754242905477126447254883360509093455252813379499462604389921219235290552363621777854719151697702635104166997847446987441337167623998450268001097929244258366916448393234222302431149467376035895953085728489982920121793402772408339970960315660187093693333697670963848546827818073916964273452252834121873892791476200953132248397988071989529485441245528564584251550098947054003642196726319488213981205118702554242935351540854390548404221062119650966856282953641524848373037375356086785923906880840914781265925853347645900655899490457515535966291518478000267552094618914092559364896914600340644098643075102209556433926440961116488330481354959655986171814662260846445161199217389057542340381178339151821867440775597024476372520798318743529671384667335594361059153610879225669802880627604795782728956184814896681657296429532092913048023622332656164415415074442806857329492179559566525091758401291524691618700889743395661610440571230298293543746132002954488951388512563523964338894791801288005202574107233432341118368339387143429717541065843373550168491086271857282508099678280741975627808582948726298902255924803908906641127383199935661811876780924302005700721559857253559704123018727255161748927632249010375187203000010092058099632702600038651650772395429494867116523254713859379748305067854956896448051588448317560140418141143430677729608451648497041948336400427749293390998052170054472855521526463793391386186439006031601911397840660471854439116855991855058961703957730459219840794998189549058155939366720750842727362813526126818122139415282928399955229593749626870964962895636152258739144280427686588341627627987218530192057701198233059963464681530491577676288354890986032622519350669995426115140928370810374773147544557824750616095441782614232268664616149710942589157050507112320867596602479562649703227460606453152577481986797718404099480901124317732652172127258215744652271308053477531969333514812260435244950540147021539965766754173018375041994594134420953485662996772733591109024422384012534196365064877144854868337278863393412068799994409246155770627963567563065279093562298229418872765428210407338084635991072662425812067625723590212859062528653418639795775912928810091823439874213022391929522362865008441012837199610645110145842405648055973616568814234320085771113788836983938245618205984167392272073565222976707803572858251358031136677928610064292044150373177270940414388949776740326842287991149939612347912338862126231001450931376292584191975967453673617477714088196689842073642902665048835708472001308902088705527577108705305652486594854388936559931036979222935197992131272604917989543822454780210704425166008768744998107680864616453610637481983663863644229550021600453900041808705042870131592281851164100375909386534790820088580618536033606794499835554821118901127846561842799507349663111461759063883317939726371788844821197439816174413597960558293297108727863608706636819397404600205254282055013674934980677228919996011655591786648751376948571430601404927768597505424674746870480340941980219448588055611492538077154619156575412111550140467242464524760076738214213285854341569785757695250692045678311635146442092836430927200145666709462764532741063108435063595179128186146364632647478100379921271345216711960483673219397706157269078247100621818829658745741699470419132055138047181022722619266000759016942335363480600203096218854891609464853680635241337928843974493586254776531758176822495253270719325891640438714316016599375702883435125102803564111938833470405037789122153690099020499002673309800516106581894466397172428205706467623715600420674151733214416630105616229844990344208468206825744462200991660773657195653732150725278255832193664641082860279431926871344765583759927686839831682943974681808393023170789991902494134187085272113272995578135969455693389297742151193187624049247810296219627741290250682458588024418806270055080767160208567793288001237455754745497620460827992096030822181296364503009216016755391619753489644130449906454269007287304957542614908028743986200942218484484352282554915958526204621412255191628934696269466467704483150513281860907647742997684556682613007592817890936725260780128058706030760540920779489861720338180731766261896572041833989159418348239719137247497395981364862278176267835626024090376189903249197715848070116925193469970117958145461140378537598101214522442020885940397382840901647671583697199556244215203207857318572092013152643502736432800167527225971730543452636757148417239288956777130640813053426998568079106296393109670730606471716777642374836489465953876292979898913764531176694912372213128098516076965493682739294122601369368667653862077556000429305075162919152938464235162598159336686619928296769082726483951659153855233589571349721452064412933454020660992638172879995859545881449854983098492668192271662793934053532720733234217781018662390433328364721237388311771398941417516728020511086903291037366082751866769111916875383560063476411268677412427256429868107743233232277638693815617482917468546300270656380422150394261486198480316633034099233297338929516145688894879890628718129155853673035929216202925955158383660507727219065316829742155108947358929268109979509498560983174271646799617034520284628587365036333609822864215194369524651539719621433959104272117741657427734709698373640857225878081969717913505521694238611641790596559056955537290828033301391870482356081172912267029628054629905226304944466914227803060161934379791260826865762369632666700880843094418334517219299016842368776005826891697416597967952710390265230193227517624137890407206912608770409465504130744690797989597154195349755593531880536539955409388758060974052830686222020781523409570251125501754766306165218125524617686610274982678025095949775480713597118963678792414257753101406528165152436214756015459172858246901917328718577530164566189930402249694699874693504229504569902124847337379344535339255862068541240481923974993714679837869802559554641971231678361850142249307837149823064624266935889150906954705916008207999617312245606722071011727734769175179809515473373412116440668895150611237376760733796696987062099130740028880173877407433543997994085143597401967292358731471923694724139219586651486084046631041882364713207908345425789902727038310881179807854822733484301064740870392842053478738989484047151131124637243137039650828109304369638381778031547538915186578680233944375737759632997478489301826357201694814269527539745033972938905411703015982776998877579491446292155493687650269306752777532222086146238609377773988812065444820895013032154391411958669231529505407663825312576923004684805480800571727783036707916631721038801675799868259099183331872664075138757542260656472849638251849938721607074065715739921412746247645023955665591877723991717740936247599860119058702604921032091739052391011655775535040427823762486185928044247277625537433057143934649283499307486633081420069454892485237995893195715033422558645232482630648488962409290677627584347960012439083422789522609444159898434735418834215725364890756830715057899275221185610649851969236230074889066298099266015789111116950707786859848358437203196246770216883970891653241707519951370028454963790943125489148917175598729817038696122841084379234019882309206274557510280622326036175120374676662128534649965591957482717927605209504645484948372813572778469794431078192140489939924485162391020041293596687796654449570495995753801641397966710475111877163474070798805382116784114117194788875735573614662205403183567035869826105284286586861253227263724226408267659266770507516432037016203649309746792834874893780795703222547911295091664418446012629658388434762121123646301371486010382530737001927402703462341936317155029471308460464589484651821060064255036544817727051306866317899486248876383772185778957848938950270227591603688052224049524332405826390558837551626560668856080929103887781281529016256014451155439146520244289069261141080360022307658379480161035302539782118024752095855553553111277054334125592974873234845634519413767745227321902017307461897033023317562926081474351230594147782864463170741184898459226721603063764302385509832910574484926356818707677342777000562638612393459232925321472081619046125081033427079201119146404617017832118731589067986004194031520560025179279285339960298061061743998177264388120546972337521147386038560589371077246943157815929557015062100860809930467762148350085245276165073173983091353974195252117716401098158019240622135101060112619155902934655891529535900344869035201133724546875429679511922285815398313696038091039150116367442305124414602929247427843184966843793945638459127406696627976876312396423834335885539571964604692200314583547720526867799138378900410474869420151267426962200960323429384094541191055508535009157778452422318443652174727063884659929366265433506691420201501677151315449134255193043342227714831679111599191998977158498106948203853245238809146551188373669471915423204112771868475158244909014131456153706169490514854303776550701858777478345270725067797375398118686409803472926274441922841150342814031318548681219415316432912635127258859665156473328760866226898233072084504881364889892874989261917124215971660638743848691910082209146125481646230499248160357592767465371223775544029667629512508824046612881601705235803546167495521292492110926641199805455239474453204019870969019492724367339328927982979134005909280638676909468282315017295201186566396468827642054328933640819678287713098989224443278723311825006520741775121111636737669143530653642908557794041464341732588486447576036693073173560363502803294106015854637659269491962074993734104702404434402732040362272277934822578913446266263526749942005993501412581196764813969268728357193023451468537195838118635515600990994955168497282931271451505474957950643363540029081306168078857627003997410907798437802710210903173623223522888970041670989481564542386396084717606489041526876003728904477004372835026848753633594515674401300441375607196812958359447959314211299906458438917621553460882581139466073804658978960112660309725129874153192885371738864555297197213343746833193934019258341614876605183429450325904799585595538242766762953436653609267819975341949180670093965384480488665879671295702274442614398083649835147745400266615012767828380711149200841789460256115807115388403266101638728428656687728709522179980388943147810633782418952269636799314023169283218364214514446607154143103110697805950302678256464949169939099672022593475312373437538358462721323916692623663810208109352382746912681062576279711309040508581470549014126443315252604270528843822113580999491722259717907510979927686321342447924147313597411168194284721087635055179849223814103118600088783168794661589114224177325914495432650221465682394773041816709444202043138363340036794129933978673994898822027286434913520853897465726528251114369861211394204070633065703459512732660810555703364993505993038751728355341898977962123293130414099333333656744380969886024255300982236098655631936492514035565996825808509359966879046360398913613883387812259625757414044311900516353041509474130198678790776258904556746582382582001907897820212684293254219471520227212218579454794166789143716589061052751869224606641429203792926866302649926470410658322952864465871524860481968990600385068770934237621371716748755564828374978776841087968162714353454151269606740939848120222760293247675620049221022880550334776263664671114040837819260543607724135747874392276825554639686376706771437865325323706508247637291979679250836167880406242561517810298312382814808065091542217713745844894272824948566436469893808021933781000250499920564779956226437315370886707445489122796225496346552461919252159375978738506158492424157380185160370830995978300273331746186943958810530920296415070303054887798437449074669850167158133692068343263494173346526055836887429224572916043410051530558028364760508103451081241798485384959920437129910441910304527224157016790694040269527450545350967595309011992610007368381020022590333162513791304329006400327584443477679490006817551301754427809273322063377657337487007995617776898172059666871086584664029670709144364891553812266516642030483315028805539089737845165898802445641661386356280333856179020936960091854264425800661322344010565595057056266653834653450632244821834816330368897163401087155479387157472792412495435569035300566671453868348189420960504614670018211206064324251477227905801756662445004701511927517078021778655048937462400822593707196223210992316707405690228153480169426082825645134873922540498699993429208827452081963140262970392179349947415623740342150418164154426075690514826423236766449813609707221397711176039901234984224885782611878534435557359913092674619698374726018306379464722320588628015974020624165239691043563733859266809119995450019920562376129864912447742125927130279820184938766827145948813280840209653662179144291207504492313876740351750508387252593544218149420561952251442864764608839022808950038676199659005741247370946582309095480974413917149254136690521012541037433495319049835069774579402079973367311951261261829260165585850782154047777930948721823488560346366684200528400394434777680930207243469111327003489155743366039993321062408711059263824352183896876578227746747715678032050750549841401929638504790059013354750185913959539754820324847294126521242006053403414367568027541485044292307109806387963511814545096912729202624113154830643431164638922998312016040372626359790199359808028109780832131640042070841720468890887159063528328097389649269147765756711958677171496611425799229859034616379505308278546155119445007930210142541969404129887730679141409293509412026573418229033388576004792609722597136191344500189215913988839296751527968681058776578502973490872426092040175109062617081458763475553457422331190449269763051782810527409801348084882346715079344578501743833343157552090908662825983044514757833477385384716813763022942024069413429263343190495762376674514811772983193666475244841160393804085681042071567398005444118392016749521957468579511005134469447961747819101363253131893408542338526332836511051055342156349830289980727662993128840506164503435374160001954444799110336987869368597988803947703817560977923280089287970588386437235740722153943397859310540568877709004435925892758831227932163582369934632797664481616051187600203654243565706124559070452739880647799552209426728676129082577900509945763196119038702678529059875560276784068864742820988156655185130600702864494058615017815823497392697564449266708662368208180491764192770805688243183462699817864966031619591824786070340431663072051634822643049936537068473855956692268605517397780804678467302714929601918280692545271642447722303741339547058303063751807243215647845060578340479212432471753388907944680095842094428557127288155727326536282211063985440535208780350094634248265357799305904408631263991271414140094525277527594058830879030717724749326926527044833545770501641751232377132269424041395678773602683256799426850586790739942835873151628016452166060293136181801432900394485482661334852698626865812287225473183322035951609174300986513879287708592228989468602440181365642829493190720033964027157818526542483271250747252952173424153421792559429358139434938557114612182894009555588529471285629980251057811839245207083049141180618578394913912949826727987111499642594608946816845446652093277059031227022757822031100445487412317213462978355237902833075033481185353373119221123383047733740356151755586947006072682921664744440802177358705498393201440293952684073246493246492595989568197493840116169195345860658756077510898347633403378281679362439766008949416749086658681790310170372768863420024075415000226635298275188914404928484272287422549054092759137729664180997198917855252803013941572046620487358908231398273172352069178070769712622357727507737034837129909096671922216398651200948338389089895951558020105392410629485015686342531500878058300935259967920132614962441162242286877117835248111513081499470421722748894416011863098932361225898379665813585981258542973331578103715723790653226008704168895240098384419780293983391463772048193244668849322696292020290764908120476217632599924153934550348284485460863714056976268920165048449455057434910959542719873562351548889301947151642999456174129463063903605048218435634397256890873034966234364132826182825376547774541864995067671650970715707568455777490306799107239641720285949156281176402477559546029769960061970795095043093553265081623754540649020668941299298895607537809168651163343499524634147413935421684494654957342432512946678905094544592306206010958831662312449680240316806312692671489398279908826943573477415358577735833690454353631096463466529127013783499166737374840274671303961159460304048599226470786173054124214957532705222938249232882965648564548883637344860323018260530430380424290378913674572837313617881266050699325423888030002748306172366695157439370397058309241401062017663546607491160420333581756907909431120324725473903502637778832167036464343685204400648433203331836428871868634183304982332440988177014695278238167861989581091186776312601256355369779988912392417294043413326092103303136534168883782449045801525115832095468663246365033444072434002356994599952555466088218244209557276972510241704990377402903169154203035733155637552779105113325332776561539490182650747537887905040282758965727716617278764917364399992617551671330811263035254551307162696014043456258125052187689842871811686288863484972592028997514817774083542447443765750313760190006044570387631793193604710529591770121251189336687712179861734519142089550308527204669478370154698966322056498495647358420163106509378869731272542802834678794031966551324159002021790586367975813848461866708132052925276849536169320003648237245482571338006547256508647912338682467967574768080011198320250053923135193138197821099301506532004928033356393034109288948222079653624011298686754304485920674235037049587193998824792013702680180864621900782678177844349274121523399855951094221092676984503442379643421207188127628795086285516321698737732123046956821248247407500787048668846584606165167346821930532948413651573736311104434238030901762632061998847855418616026497711317840716593846285935562242796894460548205340157051834788334194480373447387648461710851086801019271140552452798917224981855682447579092281872704481344792453347216863721985493835295578087014071461327308682033071217307327698283006665019116573711543505021973273574405675802769847813607993529761322307075633355622426960490593740841852607714628955308184531830685799161411187653815533668593710497251997290340106923081737494814313298104266359337049805251950973396022316531166287613295944753921040190760205294881730466489255433030792276488173239789312807720791135669941906807437701622006586068976034064489931283040809894277589273922810711641288363327370609932647521565606015341207801525558305635394330695293324385668076562107861516532337950067041967042311909329382920279707487702060871682544821105586218162957662648501347477278986222369815311072011573815975193003530997233251457134624530815744921709188573889136236506335492670921816499200241712996918885707245421185458908939027631633099175503432577289728262109920344696773173394702906163326013293059341399321485195092004627631287056779960863704027524119503956928817432013062691142235675353811770965959303720618311975961951498906040986906906405083705396782345507566626881134067034797313680694448630604558596561221581894234154464729772314269500053547502976216898321766703342225273861404699686596108734120554831557367121617249100421444148099221179246300528173083482561547945743565343555543734849330561367758659760204309744146007639132810014510387686978703778970074648066683852570729329011680804037225089617581384710772518667588281402467994956804094241742533643930699589312664142216148061852576206522437008873435205497857918671306594721915128948442332774820464616063687675617154588815750233315779986870354027679932166428893515366651790682572410649817088147663178104752854399585091264937807003561244447046449372181315962476330130789493696856947337311349006059779215318587394976007418874189206019008872442686033872889043258857664286159576840888328628941962833424118506597644920603170015022854727030595275107191174783698730591824402921979768457908933694628475952414038081174355041345774430062434434851815974226627805224834381114202022167217359799613793885673111110415092036225771093414491098100962860803854978412189060913616503931302891839927934730540523523732493612068502835182517074816463165106046060511928027829478719030378746953402760326112374640132085787183345867357851297409945110494334140616064116050424401719454256964543157020477583189724171883926917029566944151560068310407346799829179143963114096949048713762191001483756550499692614428159447232587270924664989864623443856334464751822813967939876268566664824471728618253439925970966194275747047658565090221544183563128788614158810395678086574638764235549855924251541570067429821448027692029563583873506465591013391322348947503415153639252869965480639623016717054414870966663994035977108065514759204497622815375640436878793503715050465939165345192757576284640178276311160357812455122404163139141906374135597181512219484138356884038556547612279665836187816603757639983542368194171328992896531511579514573199275578946456218535312567903802730846944623488363134461939304593239783342266875287908425040745523135071125269445401722970725668945817446438571076416878559667215316522504737271300341732209503030317017992069665831525360550420712607767441334210548269522083054483272901546489658148632443517570649021130635846689242747413201621078113144685858008376191471434594734796377639850709354101799763567673612404774338353848510726263349206450926820321008844010365763745686549994525663002826697567205293060659703315921265827728773425768252655488668975135985327213013337669717083777533994118457849273212972421560112430570800380426207507314540378930916188550509663506958030505237197847454772686364447022543415780923865137402766159635693077755596760425040622959183085241163718168920225884755430925929983441789452758155261623475035436616087001608942287798803086997343424920941398936848642694625153840797738442534448311451046340854318427394848463538833662596711297226309713688878551755302075313322148054971169606666859885355190068002739492012194972916228707825277680125647599601160482980586251138665265643273632858313263373474362918441948766744615621079276193277964594633674953504109502583733264831759022133233447215176930387872387863388243816336826153251618726757634332329121321386148617823348054659670336564251921487116473071584094346707960062549536379200461441813393086395132297876782674230651867306027517167660971952801322829415562506814479163718696738053047409351742823072738804031238936597771535467860589871964170799527708681216670903750339557926784531968852001857066303020210232514192889626618932007249605893311275877411808802382383379852464055524231830912084264184319766478339372755216782464595148781636339906073471644401719181948944283019843904865986712795292615681850095547138938692772049491998336989368441810766317115276774190402940050130869205915488503068971156653918147433509590288185040020485610200313709554097212828898411720402925113555901193152573249005105315956234155602052541074784377472256253898892642108228732263313485073263491529552170801154447336121332488264623131226328315864912364131906513266766479277408027183560771443764731838534301120886727270896398189840304522863234063227135650200518485465392872169142058818492042706338547230896045525841613810141446199774267240136783498027472733633846265923778460468921435714786657041363566690731122570719045185914778203765461273935368625948666461303796522930047660299945696237613167971605196832621727075232404743955414511898935918040695456436901454208354417318555110668977501701979610069927430752283189092469741354644778403331846668220766830367860399491052625584103039482114273976878959365596214170510963657189417365437816655952510721157329236691152986843813038541564526362076695277742146916148086278112800337697475902400450958618981569416306359406019334084531203533321259092046643854774628959086353095178702605211519251915620193766955953574911234929127205924421781442771371225386037769532943948331090476253254958654156872414449541677820485506465547436367133252953840467154619497839150340218587465164974765207810892933177244433995226616010871665873190432091998128083358356608757700669330622664931888465838645446083298917113401002551668504783198498984435701445289377703477650573782853967171325317143433043975331626730181414805342254263276673480724180620352657550190763499296911892863894181237471765767632735234736468912275872643418492351336570863105454640884668844839563155611295533941257674257804097848035909624712092902328410045061267332628164617335708657370802182041244722048955774555947715043589785009851767595263922295602125902838007781575599923352867082890553893965270293858794777795542111866603421713612431506669363114980254807092174389792416920899672534745444294651172605500268612050845560254932181794975647010117827761249211050621040685942642105578314151377566393864986981497486523427364134396991551580034401587162810090286560801121226683679044969125719462249438114902957602100435420311605407915549001708952314185826936593107678238404867256101979475969300535743596352857343651862473257028839326698155461994761920383433476559686106633239157345473634179134396614819679996202003544806164176405159984842485606885748109305257588876954974448600762857470599535849015284954262260439711360629702792879220073115185067294065940858874154443559603027852572592533701301098965425366666058932891995118422269478084220939684644165856564135551300654086197915120830805873916574759061172232191167819134035896260694484343263259550507258795098973761118466652464357013745481148768442865207907353833496694736226338811396774852693440870905219504019377784099353306884904791762074201141242578356650058046872658878612548874276161463970673767228588073930957368696858094776264919214576308708532764509286999829836352611912131310295254256174981250715422230070744417151028404987967446120820463662201274456107200159668451738981519022478233703414299624470130426437238740873330290629966760963013968183995735968333501017520265790823965252708566817939295314532722610910881992234341831615188952547915790171497818837539039693702622236426133818681718033186641462481426746886035995757571908699599334455303846330832565418283454413614763043568739675416654673966529143672563124858808324644146677443365596268916209580640954551637054048492369463960398313728651667369890850707938816745907308173925583925600284920961258661084519553294467128052343532876333334191350170694166777508303787821603185563909357943512473567856629486050897413582754613077499208741994151509978865777741016738226989028291813269024658030106838034548811053842579648336728532103005789286500166785105457582239100847489368489345197525190783457437440993899871015975915353242180824147460313622165539860084265396912607219517026399739189735575369180971770942366677197092388685745731221220087091466597420984462187040392571599716754263171729632767540367757122082109474112437026544789386339544624819765201730682988203800222408282597720835612635920691842107595706510047854558625024798306396841956890056828734640597249726962228843853424263373521082136259117638635442324866754491745198712550066580384421355866980480390168791779457450456035190074060151942459374902960069994528404117405912626828919455113845213797301716640365185690875132084550058946002366661905178140634895147214803321256553910940260514573627210090796480868777380604075402013432384190242535471259275755168925733022215867481827819506277863771337099416557592073493604797846187208511988525698660454273792115037741033744515542441515002238313791428772093865224295147623672576114626709878030002362868715041105256737403286556670411973995755505745846210675348139045701116042780462283067360843463452060368258157844684778568843995260028379324388079689184723469899401306273573697958983804284771193549895612357214882265082760657965352209967922316372661048297615957132416898103811396629645416428052036585149078015408065093805428454037013035740847675393902402047420741289965970569800035773774526577971465859545337615598682935113270062664952965249850806000519013740228051884340520122067574598522236979144766131070165735563328967873024254392651798476210202274646430172083819901488018273858808952806649979085341240765082447507829657714556859388510144123385682252544118784464744832098572136549092698183354396351823071794863150692200370551428790925106883175577028099015990318271480892229338740059806654073213364550244345260451078685027622998023306452524909906802389981014925166624889845213992819222163102976883929056748527742643546515140088650681862072646864528739525675508463289228497288533513519606581495836892312892804476360704063518672250504251133805176509820191704185381076825279942851826624568001705832750247582533710189082487865950527743944924660263052375051386733395602948579633239157922114495769138294219072779667036879988657605811747658607257522994939669574541488301115446135865302391618488515234879472057350342626193767360146269196813322773839262531615477970184469241314439549388406346248624848305502909906618293140649866791013367959476819747323815262404130825557052780887131482058703449644639525424367582679817552738543800071790184574463501947554811790650498832983842498895846677812476936964107936999048190530908152754113065547952203933424427292419950996061937824437078298234721524433961255560600381833615470281892348663998140326493593803502499352847937102702466313925549552169055543085961742718180811287789283757006580680992338296360058794857840666839998435106281666374139201765267738133731964953033347179713976859849565951844562779663139086164433193185642183828813701637171949388759647368378679271206559822864888170331793812583474568682035069812205163689388520527483058413822495282499057622816364041263564634205221707321418808264860086515737719721647608673313572864239787642399435603060418723298939351346499496910722774325608839763109019391025817894956012080788613964408791882230537447775466517419016156868931006727962689976624908235329243371350963346045957179620955146228415914766603291681048622206551279978008323754180820300912872489868909848537223468257334271990290858200685081089935210306636153593546699333999200220321958409868497936472974747376900629710633229244412830560285970491935290160090776480781538618809709759005503470402368786056562983180469665757044841189489854844456780543945373065700696799397244250739137114885421966978519127270150028728633419600920075321912343546305094935540385233675104778185156798650502653036470570350658942028639157962247578497939004103013530214983105464502325592574603501598218598914142711195698734722784512041543423485969553996885064709590799178338071103486597862096064930915888137935612879193662034850693981958940533607386194326567700156943871249691113934218853362036050953898564316186311121097676116701013018721254377964232831985889296366275093848553126571564854663638665063265148684701804476236191703280510370390851821754675803700713535083250126777924733691920269238370307316721179795117683161563202556482119567760727670254881546413297793932766890924672385866773168569027117012653811128956141927352517402803762788777559747657684511090825319633141910629881005083373071086285514868906268513159079434931641511635526186425902022179971984043874438954258017766491920672872879866461046281168002236519548194241555775995397668464103657631821683251859133635494237080670588115485873709278035840412547523927711900980740587628027966087207746249145989371255873230106184206612533444025107855413666938424618802662217506300217412883012487788498324326942003416939559775297834722818107566830112549283711183826447100840772367248776514636389096460159105852202294894044649120566280032537872992356214591014887354941576305878059319605357905096016549678079857517202725763085167980436184475843710781335249399334883948688224263697940250178963491625143593223902614072607682359708874283386476350690668485965836246524820713799939743032795879766080387560635392263285074029447770755241758950251521238226774519249730583557603180352392246649504362789203109895984464073669199294134210070632839262753913470443440696295719887487113983942813624309939052347248697204672657239666680092377818835426657801624829607774880914161398477741905462821171059138756464996809943818115822533600067418163853357591226148995842384647169142383055539071614253479660442122768719352901202614956884622908855765636782200551640691890657609918882875583593355953729264228257451301360276039248117660295408528770227191292858946771776794659512948963048438416848389807655746775526130715254573670057950697985004492552266161812408705514531182705862751419050504323315005131950762555285428284491570105945023739648869908977713985981290285730129826706062193308591805126086869265122015158151151135061534288158296695238704738105683881035600040254849117121610661279311053811183216897475967269773881565927561667922412075867424950130033412050084907886753610824375636797934076007499776754009660319378326849614945232462840202347394343193769489646413935355014726501173046133088998854674413032619372286174425373463724610031392310081234541801889150954482291247441976335274686895558029341729518137793489553426523253838682081799186229968379075464557605476454235480674800813152096324019723198160696633446259220633884696049265929782966756064888595018982769607758608729149436784972589827833694373630076089995579319986964931269341613059984450340350827524735427859928275478868104264489386687065145777340824513570399985364166198549766031339820958468409140400951090982713324782633911479815873264275171311537774795648483061751627090812048733057263480001572163171930558776149673150051001286741711668928025850845358140745402627143627970672036521908140619608851431360053430408558230846354571800850524592391565199786200606239097427813379301064766792926152539066621100323910988745790177838543752487235201202647254154131077311769832707680417607547124806873367727635604348397259055332315859748767244506445517329308471676118351192803328154666628942179047031109819427939451995197636093151302265450135770984630511132715215957942980561084008496013662865901004613779292215447334910990516748912149542675722848453858471714179028265061371474549948634983021824793372121644059047914836400830727041355553835085238447258927899491429416514121745011223342800304897437728392368785975076864766379477046296181021695298477939180146519325493686591901332358032230476980025952015544372902559620588022208235957486878890443079710485976352426212098342539476339222702441300873078641441713219258593882858866886874631100009409432007208606308187133062166086388137362908798033673066228956371994030341050296572222022819668207666935380735174899916269755448904912893916871595115090874908394958481571349969837795136041828200226769906024961100322732094189111810580372332788427894161449041172421890383552318457442248667282853675390454928262479938122730806408388815538864728055787890527107845610351401546687091875270864818186894030689001137414536091755941455296204333035921920907499497991913666983868437698401467289678111044680014056900719054209855426045086040804357388738364183217827122737399664432331760326224171067380743310456449339576235701976739066001270674596628449217794060816198749255876008960878543531550496627221892677188733779131513461663125830785522626497078278067190655679754776386381411604423066325499239375273996538006554504762467899234077123302244362712341762273931179342354962838201237761210967667577915287634665888139385229536283706855090738644241991834515135150403155762277111001227268995173622376558920480414526980877673235394838642372830747865760717359883407010832427816434549780986789338861766052200614190944716747985548935620312335820933690422183457343832906147144182897760706819596772971782892267755027264893574023394609810783552531330564272266915491300518979150050146904135115654875076640571955830281435033934872490858951323839302873656376425228575945517580229251911957131815545420842548252121716300147809700530564356987292158900434615453302461419469025445078167129603325517382967960800972780804084117366655207430824475272373313204806964698963334363248811924673062683646314197887778936496504582767814178773897216956694780190549959099865647761290392474548306826239323574611489587507597389550603612336515287279661568470139216407226630703973779999795079658937570672500800778769743906058312189684178696501409906920084308370964120165656337727187951532299661596818565834668378841042196586985647925033654132804102266741217098046700766054710768114580945363392825028340309798107856196688952012646518179526876210031457366689194995573434680210239172240809159438807121100505832515869016308867314485421715390566894391523726354908280204364146428187879131752837996087709045370115847513993876812688726058554048719668782502884699947058928045523834968825648234633342464825105970957526204323402176683106364653259313262223840300655087609950192578663490066452900995170787839669109300817115788631978848574512035789320356410188791491027045385830761053419836522647385668854286447436375311366272835601036750301465472360693637696329581862359920307027780583870190383950828526871120833119938056819561678074498235397878842610482993504842659891696107483620522603136991674682142425657939060998440382503975041458410229894752548120224923496904072119869629491501469722338936802523774030241648345719986138472899916966551528226587597370357864645543715423475817371346942829088183492183098419289016863794104204897072170719203815540673441344560529341905627344640714372934701502693343715989190221516293559435442530792223166533870725451663482183479847715576353274194856883945778657516956448009262002506825689660876217900998390723438715962481910666913301131273603619854274105684888124849490751552183873976066499389303164106688188140486526885577042173136880230383308145950301362638845129477307439615485767409679872297611053178972898755446319557128437792417301979626754308473570201422584607534557902259839726379898177631782805340218170769682065990837157789657158056678924283593430634488997467789658549598206294838382599277396958959857286682990849265681450308734458392309346397359377146480803673741292817818627933859916825661403769617228497769901824380573803590219357680746730428323413146832156476925363269084202216922367617948082032573482158179634570222166393140296969872765904916441279246142672746396023081663887519991503508957207148056496246931562056806266734394822893410122869971364774121808748596006803956287857467075605779037981554383127519473445589581865090799324738327079261121702529784077036310358040610729407196655666936618195619518728685140320520400574071412750442858439254347852071644545916961733702057996070317354202237510745266274191658220425841173412456023662027222009440058487589404055933382300180042332176368584535487649564123217554990824961482745624789007225212457741145549426738049408900035064626456666767711933585186825899456944928732742329562280921606863628431742766865349628050713082188719480367143483474699591786104037127411705103648415441219484628555346424261177021939328724730113180540956652400463159879141642919211198540140595403252343115650947271887467201700785351539353547134749701930267263928901013217885257443094042523087697319568468631356470825970613731954316930204782454964218089669220800825130969413551501256599562022732422241831557905953084265929586808396450001187227886549027052790999215321806685004066104694619352535167083737029563537307270653957130525136048719718082896770645079328340087730180513211640247882053291041889783128510998661700730702922596839047365006852404853369001445859155583645819785040567534458827213130674091509616201957358510131588261034743915923074559905062345656470264101047326131519408644339921444797335530546871005070395543618583255954242211378740476440958658518909556506678342241360616847905239036084592544686110105072860882123089597350689482043798026807030601996053171036281143353906238135716988799836869642997669947906470269245862395499077096433085946171664427022894946163990125009053783292170621069162259110778714192143686948144646943397548168510344622035667113298596322303597404706730614675698590101683247432091984541610495026290540159271421912394772836522245015206913700177229485885958750233454733969326199649865571617576586287093105139345740106646618440531572035365861876462631278548395690417542325198174052494267928995432029682415137642659115815467461580577932936284728628369397018351671121446985894601000898458355347124896422256983438146004904644593836505640543483356496443151206463705425406591571699208161302183004524298534841887576057234385524125339966619062205667557992882927300786893854547149651923656552302523771166169279543915144325727059069058757574306952373883809167362034215036916481593938992545674864620560988413570817712006044751418723887382901463811402091309620499842659196690942269909922413687891239681132668961349876033685246030244737010997133437786501989774809330619999493683939549191434623635679004736676435501376875138024553250323333144919765932529566211099042961927500270813117329325375731420441305242516502319665510662245788987642779704478698931640970076162263065831538765474798883862671183900346336257160826869280681543284429078487008075984867550168171033790317825318791332053304870428720282844136394709293101167689819875812584484185721241629307107855635954088850302603617170709985871829669945598759553205552745800311362525310166844848703118100989532527933794736274787127042919710884113842348410749703679493528216328508667050962027661703775088357750225545553177519500981448095865957158715835239906537393694208121558233872535756903548188756967702026931094441877900138449290825664950827495916012317797951447036619770550614711469665050978759037531139741783977702355506054633640953138997356275887806558286469953797246665037063084638126689800560572262770603265141292292291060970038040316185950066136804666169836316512138032568583463554603304537429757481166876838832168513124349416906385677190987368939391984875870718571722293271733060573677571360106725483346762173439728451256252677664489613996590148701693419315717324571818785818286814068017020605910998635947377657530736184382893139636923975733582880006517187108094683005069011270431714602299023787388031500022504348697485424094183306026071712091700823146979870170474322967706685132276989673808803413016251737838851814189780194635528687779850036601658092570526440925618767310009146400426689453319432767077431999281326523363061711180632248059768890124273914004529817283839854035237735728976341071725645167219147478515488021776368802335540011123490095980579243528537430013869445183503842908340091367102505657969402171991042849530006565900205842020795716202608207990501386712242654373139637184732715581104417668706203632576054589548128267850144008946753075835287117485492950816185655726556257536431641178884723406668066891932590169724061214938306426748961494351233517413058770534328819101975244611084638514916079352103830466371325202936019071591104719509146922714340420864116308538783843977165206987196606388734113957574621124707253282917006826469916770903832145332743850386173924295234070275064238285981609016947639042161964192236369518652408846169493647120881299284408269562150317108027249662527442920156526874069659321236135787428194242062003673742995189470910670176660226303297615300966608394507596552576714639715428394890382619571846105191843734116722133639246612416880491727805809564302851159618825756973994695967287001238751947923871208525629612336610120774706903022815880238051561379217706828053063733115373240324563505124997651987075277944779800076014855965657215412731720477145352805527495925449366625178763836705514603660929928671383308631876283581207486796857742066333773587917223918926634223886730117831932389999679474501493378608586844267355416017390114691518620941001009411137450962673443538029909852518236743098142972232024058613862144329799313270449818789678301335578847351700142821699795173300481366588085847714389461337789403610395959837240681143428174773338306100145551816347797557108882299212633673489068128283342633933503318465436661390376414935587333417744020201589586000792774598889603460110360995518291456714576944140137040521618609843209205989701419871085217157311397794234945025540256312771036249120565732986503417648830956610293720967188432983557020089346269377141237771204807932612820870194274666098969794846835917351403954834867364121461040484949463726918298211420357942883736043538877190603695397672873046948382880325002693007055246793217518003599460210028385398507401150703202932503853481382504270281395856536784930797130434889361276290699718616053693513299377145415070816866959048200185552784242272390318234662505688896010097538940665208695271708558890180707548136306669659425589793767101787922735979931002131988059430927228328755253477499785679439606082484409168788868097550940337198438510681958355721679886946891140187472448507890778160478196405178827850541786835446894591673118049657398934836713194988955885803162349018954771598322314118959967538334161189788869622847159919111290080589636843965400151230964885257868662009522810223001877106122170805756559764136874377475193118410405983276423507795528475243182663756390783497309685241178382918018489207842614140903750465932992114905715616838381309758966141190406488836372887255138134646976913740503687883022888253750446263477212582714563840188806064530109852020555919088093265404315226857272756517217655014968298616983287803429778148179962188097366102746604875131138993533175947046162674786208838492257772383669448684673465934680074014791080277170004316469126810393898618581341864000804121097793536186627763080016100186073704302450826539051096336681450222123577661412351457651712284692779376372623534817214586247112074391983423877729922394690239624277881956807203454394963705302363244158795952350574135455146354047669264493296360232965192999078054604662615428019810178345047457624798372856362235469651132403475571203437320475545007151278446759864751084680690667887856547350355243504309448464567070134350272987434143747109654412725695168370763067430964204834096166057232401721761059710603225276142564724337786344139213691169190792806870355634468214433060063223819947571062508519125919086903502373259934190202174707134403016973256660025133115902147821705131827971057799710426144054338171870878520955041231331009199305865435572424179402340610044516412691868095263070303761912214668587733425386337152936576821197730014265156745247024655869108135031226823047713988602133722919524210013810170491337568616202235033515199942049039495471119116159684707159582906867676629604794401103949632019056805918004470865420691282584024284175586010109279281543240859431983160049032712578245279667019449304753458801238421524104642380816044425521338900274151619654139334947995639927588058831540128221048533754059352142465937565933512790150007245995610962229272929279816427933984543610265653032258104477197567760573383404078942915302773359770176058859620549173323048010778210431760738262426760023501008184278121208821889219661146028144732721596358349079608329967327672895672498285198990448183973021327927878401184966906883848221444626590384479254057882976652110095008570669539383217661765013516398839197344118435428148261408086970228038156967161854682723041308128555447393373749147878792910139844214845014132255843517864319905451163078904916008090890743268302606591430416757458382282995021652346695126325689761793006872902375652315506569095128210788451649769280365427351198771189268493549940089772110301549240280489184575139766093723292804484256790064296974151708290439757079889354896173339484192794716171967351148116583388718974802474788892516006596466872388161649509679112549582730604917755219786092033394713282243304795948257411022933237694147135573611085322743368017703088146416309939668152380579523448850834360749617582908266266494192510811621052666878223923002605801040693807540551613797478765555858812050632894906784593114137383574631301143496182338211774754135653198607036342115094697608796128622735168139219106874587802096219639360819031423473540501129615220238879819361631313982858379360875561314438170315745890611079046678938133195644257769194119039407463677461098086953838170212208591757430122520752286242907601101711285825921442840174208323020757702883700851575470045180414771019343532334479828666895923845786751775929457986862608329678754141462107106940775144135236335049827469290652401266490945131434461789635493042123628789447013712191328580821385546979249666753536955753479975618721344807495517574534224430423038638748159021534007941402591708693354606124305002005975934575708893715371226366147023584513068254022386896115688191331825306226603232772576507685235118299818281020120059103214407887831590010440009205873650382862883983718908339312461285755294379795531244051013018026625645139745533872401790350751160420317418064490325298242477980138882149576045809840429918988695083953353959625267021997327061355479059466847730664143545179931930490824110551441276372677614244382782803526243612529894730057712482553407391299605145991373323333553477507199679304326186709937651652237259176109999219341597343878387339630175465580391245076258601153524560081372248085931002494695222014191970338412472398115061940363446268900693552574316302768403328312918944703616909102059658523750254427308226619668178612756815598669571093066112808077890527156689027357736673859235098122316502428004613909804256181686053644034182732856700350162680305016522610429190473709014220262705672755284746827287757358919229279896619206874130886448754639802379572470959355940565530826856441580241015055078662315523417392749956751275294148375829054188846501672049841981871979332484869571643340984607872558101005812559067534727794861990475261011918454615590239255926882285227842708076866464200965402376383345965608967667264842085790039895694941508098361000583056279031560469121287549090982461779151724636977472120707270062136189787226022858827952854366996338616228398616203141228926737367283720838096848867866725577437532143747863156293260397288056992836214854873311735921587770647676371389431593869832803862520260782173490721447176923236073134519540382038157573292681510671314080292786147436321547254896529635961631113292357377484374029476391407730442018123257206237256901103816429863481947507341417224908266278187908962068358073803578146947063475859167829369780782395405443835779340867888750131440953008255206436337132164522551971440309942292627980749377005178385715641582419089016598185740381256294409005087940727694919519285611017559404431293859905597169250198907605010137932717425313904745313086678038141241101615976268395148410091101775209618052037014125991207533672186584126426879471693000611864140077044041195629127125829040877983019879824214200500952466113001011923965185346793222459264277817072023246799176629247949534823058746356291683541772273725838593325041022588413933804572271986929773453035514855745966757242809494616408307229064122490178262978344575005387018153008372115342847276940379821819454659398729273118838191600425715226488907179508825524768175517945446693599602408969617782618561482795027902198467065975149907826625675420341877823990137092912992203845803888655634939107193867409738974392036219791561423351450119497391071805067545587989032639503551165960870391748058574773740374546257365611758186975277091240054214060777068349112724511861305678594628868501264227396368618334048453686963799267717540710724151418930944885550351114636431452183790598524064576454668527759177083857607911481041858599258385113872241649443760972219119785465732582469824446803079491300185346876499011590279882975660047021450794849244532904074299378722691442773623196765514189564071930905037058431996689721046563205184666076101952668493423335540715654639739154881871667154675689598985943611554719245267833487643286503831475250590091168971702010062826514761173602471370771723929581673356148548976925929252623981008262789621032888277114994990794072546395023440952342044904268654630403885760737165311678512966799505392430936537156203825874705604133690757740886756593337461476299351554532706009197473079993113124819824513267810720334716138847311757982821605888679724611544612503253599114427119567455903059849329864987941954659163584945797269842712228509686473230264383876422929448197884715097825277444260025022614742561230930736136486166900116206943374201793710988109846881156590634492656766872458083270293594976170920446519372827046314745305545317823835929254792921749107769221890181434037427178945349993215206092623707144424853747545374537903490319280397233004276552081770247845749220977268304714884054871679164577234683631251295641490773462569328439547039637697149695732555500961584626504584455119789024326004401614470634521413788782532255880738154589454256052258430712846923793363228508506272558332929685552893728805949834708988927413095316914695240129974511864785931712314204520247152802134490854554452209889469412031867747466513486204651587858905085538128852458453208601868512605948468625539217111060851317445681714772760240320328138791514406365419738134122818512522896972625309297998088712600791037343034096046115188632726567736713630158748997009795971874869663341387974975999658648431673831281090517122340112222712109210581258041296164274892935936432645093789886639857804853811344167874419139588607864046839375456630552469178197035405995591693808037592751053425112893829801474337409000551542666849052745503765132811026074337033944834170411147537487867168880949280805405754276001864642581600016360133977694541548375223659253747584741945597809221994832303760922395702536629789053121574891339462841034051074118563895595968022455645742278498449943979364473636621200263824574381843245102287125733097509070413526993623123762733343060787779439552985589943616967503032093848359468291758095631860877296424914935314893403179017472264917650302233993908273405453024316979026475265015620308940399857796191819507918511755382242971965579594442969698285283114055367663669168381206872385478237724290489545072596873868464937661671989769356804386401309169743903258479045963576715892809534456307246681082882471090409564457482350351570788008527218076600266961206897429069186899323423559493024971058154962196856629472896826222824654300344268880566150450650540267359784719330634008219126777773728765399469328764345571489679311661828188099911764989486186530211437582533248488130748217045889987136311234814592664809017886208313988671589814609131476438756200580523367460827112634017324044504840502961060947936713260750457353992436618219389653858058820058170878731313540618706888634114925506056350823234979991523792118889345939486487609970658288637509611585280244619010881684815801423060485780780663469811008574033192380101478550315864872616710303410633184132957034707342605668832319515445243213900169805298592305261931700773100318614961915136619826836473218629609823067927467595614354063002192968203431072324717821543136061765417873989779293631327265364420949272682038433011977893164999918529246653207838325693698746026586683299599389644008294976551771023531438177002829705535682803069972709062960479570923732466303453410749161674720485527543548899178308702916917978620906602901781414723166699911710996976635474049902191191849637493665484372175691666701356767197508922737946059536516514121612960072608790807279727270421627663309576565937403086486598745652651437094164682819858502565802455150827146072070581923457842733843823464900020620680557127102692447831390375443175897898682807827739666275124617016879123836333994014247895227680801384356916754499347464606688923732180619113127191776098400953931051475423061357567979260048433439204817884534818166380265468623065293179729156950681993307029538156021830726333594049451271925900863698057730625759946212694689885962755780469935087921720180939536888544705222443970326477625886304230503759822114602082192004003703258732375330789359288419036929391792101952144803579992708534930935649595737017179591092223493049859641437872815364507486498355598554051835903267190373546280123334160856149328511175458629585161848283119806285451454554502396815447459381212554198795316154215837191504434277811433256485205726960543353728010044710762920496532588400936058463443884286918923358737602061468833377699513485446216729140450249129311310387390783046198871912910034884147292896842376253847325691458653221145683788585772876094485993525188290390862162416990968325040436282681872112910139959991507893839386156048798783997261946195234628437813107757801775716228200907936290253708265180897463512888445498988878202127277385879458372452762906478429019431649547543462693651591045439447668582542139393478513703295511247337132043842219668947144995392063444823448354106673923756606651072521583876805062728603048507731652240648489240063497677881916440525261006700474238308101313739462949610721009084754021245901267805708055528683168657052932042217173622440861661005627542438185910409602589773688807675095197734971951060472394855784143171482848546376715313206199916327425749773837248323564478388955767897726190127457405998981780903440486609480279888775955480478191342172423151967920876861859342015387601978316703548764611056724486055273472815985865890215111268330360438840344310848807585825353880654461374322120841774610082610926612453169871725813761703351582998581853330573314648207321058317681434796276166866521379606597452996707009992182991485139019278705530140803783202204583801224771547358323120501732765447135401708026454585796607228952482093901722269292562532648067867446069434543359535668790109990818140957349643974069160402593456055799265288129600255754966446716041585476694114646395785008859678521425625908378971058731555919505383643146778319368495015149978414978510586346822154025669209469383338464192392136492849604250994430338407253389800339374357840978718531811815044509225111726235762216786435132547068830765000438805928197682168005892594222810441049847617986963760102002774349389831541364573767711248968789022636089575432611190846104118531949981847901436524892033979078962984696755830528925372561309241297482401507582642003851955267802858917201415362290608210448047883311908039746088958595005952399871633232826198086042019360012989757057514094546068757619415477305249675070859629984724250873023806052769695520380865045448056391682902108544747352446487887084580713148550280349027593309305455218385565401205605092180788014725492082720082584834111008328053489947385331507473538315445473400107095102296068526235801684560248119058824971233344739716360128644060409400524426786479100366139691631371972679938048932321289799402515495609087962177969728379415986559238032106505255921297370930446372346898550553123684902707377808159531966023882810276767690048773258947719066372002663615905109524887039758565157875766706940114968633399093021547254360143942525565252645487049073702375331394760253657018734255080995285755928621475617708764522747398770656135533989913569386455807650704930279986453827347311806867295589494674173120681341183467201708342064157327453526690933366560576921425700245248647519537712158549944484958557654189262247121495694630013137892085109721377004752814085141232763752661599698713959142156436420821223570238680576571902942164718990928384503890000567891395852425133467222618228044237923564946131530093116840598483453766039878828928862314437483811748376721020575131331225704895915823558754586560843334822573282631175318156398814317553951768623685801896367575454178010706050765278546762956826685811444577620339184656781933582305423040999933274605513682022268208409531726207251715540809859320136821591781106992404799946115511122810107736358986528075988194852705690362310155099063342178346767170244108983582419647990572277581945335469088049759963419793422746222337501000757830093545100199716452302692705895353544631933890689479645341930677415819968509908316672640931690148335316283991921552954137011407697131486780461128848263359899093928822422982263297513065279674066839408980829954166531157244567602794053477069117501239210403592683271412804463871050224417555670199840524821253521642935183489558910024876219831532185161972476861740513380672791889357521064969615975206054343323587670543272064616796554037390336108411983979029671649356125542808523485159704974481417045055078129304040229688286365382814387769424537993194645182466302520649187535160582855632577139086569752421388134639693196942082450583172864197848482756813856269166684064380906432697678793019112071749403938883394219232506672578479837176379466181866746346167888244164712649210132458439185886657722800316722904833054699863150237859437656095634483970565929169307715347414163191434325443248670180759563526880868358052236125724385778499801142944155633546358902804918416226719679299717177200075976906914075671365657523970919812156269059468708891119709679627769302005603351452076802805757205567423277684411653533987715702350611887284645312983290698337957120288996360751806162939704993352458864996097143632694172575573727641399436019127691308223957742167720223269535178949909434757103787932242035502435720648996357190641462506311006214592054694637725807120494623360262189160938941985175023649717691690361240936116691853961619427673820373588955672076083449398940441685088896638925328569954428370674704760104741268857051172696668217784503365413748186163702068862900510613152806578870771834261725674456954478005157662618031748361009401536759509789987022374877872977536412243628418700455474793418987828369454659464054403959129599283158052906585937223351551334635160945473086760580275962561763291061522989989167054327161821174622936142308867831429151533263825443112270324526408155853122257846326718586862630160274560653472493083519531757390629920844054248768491728419835402077605922953905321476784810676312058473028770548943239463357552094007558255818684043494939053815718457156459734563321654614904525624235426032870732042573394702373027612205211531519779657799246373802111005411850435170534142142085657252987135792693837597216328274594717413895744587761337210477425948456625357638531769936131335832342567260510126125253031567124538068433405576038241053830578201279763481235059737876113834132826469894045367039430210144155458115781104855621992122341893973068351788106703384337016580718107198341228700144749869360342863142216645280793409378215231198225751361103598107651653588292615539054850327311820576435586054071157373222770045611580819981114546751424856755489684328302635272296872855927769509940456983556845543640927298783002761479365634472803985453687659333871225728312706733059161935310584444399499520194620080889325324429876477199280864729855925032855446985794044116734497063965711454335994112256575692567693411750229515561324204486818583657222302074340206289464466069886698534192437421576513650696256485947259496371514855680476889924316487233366224230331370166475861891612652867318030388454216858184978877012513011798345818388822744417502697545624013770181335609128645330676285109248397819975605876801489237246400362980168641277102891714305623513579701310420267849735874646473308749216875548110269123433322130856953598005882576686535243924250246585346488248729586232912428368975092692631346794100908829238811475528483468338448791077998532055358865006212942382449569184070876190644726489061728776227486683164705212102431982712856444290603974257605410108104625496420465125992948747533442598429077662772454678009285271140777323764113461897030828700306917810144566520414952071922884228046003774564811620964341297838970327993232298367553458682775313919382697899146095206201455174459142653010715267668549583333784908870771757119805379847582194670458312150563104161133675024986715560737905076864967878910435758896645100407088748897072515602952173648637415878754538555390347504457553286929573420393140999009494243516636215136485028222041636386571519763573279984911012952505140743357132621651636227905404712511649950785551000480999470931236567657288877238462689020661603152772257873791235551640015828973330437062873303198525410640597559523038182020157443329947951764045173695182350612538381541506430717330535963552911222281116139519402086361338691134801361572917964820685333380817802980383225727541509879928158320602713731623648176160686808603807580270889835166013730729475677238834088740967371079247274450461742404915331800364546483313642103738282103169930681135815656826904868579111909127630335818030726537466084870857259042890199022506999972946216554566849589710131849185052830504869690985438745457476984731963891293237201758307251331497410318378607643799090286406928549190704305166442171159907646909882065826808163743759889484878325236197556234499052392739623206591916927553913128787132220521568703443522403816915767525147780705695163529651662412960071637761042285518951867114041207254616744081602570507279415194709131416141723914936478669042235954696137075005202890458532729302609637929914067712439567615534268633391859321256205796208582795603857864643657164810849372875895846275891934475458693170656751834689412807165775799990359636993739687210258210754592143265625713598907595312181312125418762154363438770613546764838476487307091438818149857068942264628212318212184463157696006746681212817599427716447316432821829890923660627041826525518055370535290803947335522620881385574459781681783282372204269141469823009197353933714449579948439517822080434114348198059257222106234313609363670990508835805872711610761895360601489061088688794852427622514927034501788469086762835894180341622456362667457085994376552877296724247751047034435115469017368251616823858424234426966879515627311816991594569192481232890058144706213435704910670477345495039630743035335747579474290220806473440933697526157346994710667626617513561570619693448358126184388536446980990927985662503647091559543811665013371464834321535672080685776668672307134396961327957715828732362870785603342927618386070696327686059853465356567078961547297854236472279700149929106481405300372315145503660051712218219924060362796476466477235426479587150705571723368856099902455852750873414449075422473978871239689915958213976595701748639234473562715962927211548099715224832075415981699809349473759897576824962198444700822287650787966556797508512093083448697120528063729528455370357274050721119819945013589569815065435856470996432638187336618853886633374361481910654363406008517852622181831761061871482047686964891597323550843274406358960955005506464185417458918993334822769355518480012894013087172177979440385527618876471315843193527505457097773947213369607243754489401033137684213972539709147755594123699231254925398525942649817596929874694813172810169265593420516178673054723778310398871855977606990365667687651757528117010328748615524960463673033482268035289958792922764927800972802686639894763786088438074275996715758931127079668495222262881863421682951143815533739870564998349335900035178063513497262802601160043891610241714583904138611356719021095842874741267183112774298310926043598902520261519980539678383645910536434312469313191944019441336904680371206803071283998633121491166633775810756629744472485733018423055991424289015895608917233369248551466865574584406208359951538242545572059015955517933631286979783717809496518382416727030311652470249000434314491689053037544836080931082870674238904783710389971895499585843384673238047750531348143922866412165936492307120658394103426704026803109793483119382438225709164176312110307389376468402477793121393484791500770409249554142839977479777087410196951132810411517103416926044861436609480027364467984492654976329170338970124295640702771183833095611954379816135775258334728786615262873638555677232105645332521740498743221180009432774252457420083504532181953438528069221767748419722362278725348214421450417414480252131235975719985457002726992802071511250985657668001898414881822881989798526623551179598106193894032321836947353475606650138642451644259840393497801423295280312378100597533023136591781730818071483864398040956734549056450005476629698292370325477187937676776767509241603368069589610064725853015429294160607300550631570869072840537850431835817470603369889107694869392393267936385826623193776120342074167361108408812045625936272565649433806715759986805894095741349848454678649246454854994182714380954499015227776017180201507424061601420167099300684225705605884736720359014999468948528364833330514175927333857773887520338349891319840105722465716015440011381070754849521055332788316530882768176033386064554661151170632511634625045908535235090515874129302251206132756301840206790141844482690953284981946712016651231827018625104105657160901932373380375684015811652255359911991406944212377593505339112985616916642078433872565145210677540550493684360480479703653832364338639538395637737783737806293844161086570980044349135241675480317348964149288816970913291866686642397478355786102420879843629504730886548477806764614613938743848264782816971967829566296718908954672589610935394720636328813708585570873688849585775241669546377361809178509232346811134843306751102489996369161870375275464186812678223433594008188765967401227296513626479997427865308283997093630217974764185275401302681369454472341832684148911977649176634420966984207054722205077134792569088597381106779601569934599680409408492663968318471188181927016408919569592497400789781510682741324952334908468085751474135289534222504011988958942645212611908376562734161079579203612866757399397396671046747256861405303441235397919837082474597167581888061116943566483532326730368586771707733877532597574925504040188585506042596992222655983404361844907243927631425152515979848389265093385736538529623507927369758354002807168410903677487837272179798807232083760022176645652854242708175173888381396417527992118418292431956842648603711865037851135284078680989404621486306633750651241585419271972824428273542528388606684852051708765716206472287889294581913493384116861562304910179860240220544158530159449749612878981623995244930811797029110716417712834595941279016597327072812833322598097731118080585711727073041324026911007334609441531337889269491535299938752209069232753735425419753841521189622281736655785169270785858554988563521420128966195105178904028983601361940733667210615363495640937925934270716138761361862806938069509668740158247945806877789353619734322067445218043967011054898249557639643520946758872497819446790416236854345476438188169231042954736077660910613353272779612822172468342219288544599552205182762874997356774137690595165281717505328083772158772595318241885541895708475378584151652487781493892234707168125754256449622220180194813010138942745222011055840526274906948833255117048577461884636740966574383578500447781069901006800544201640910547484675626181423275813917870071103249720237285104718339586849248612104621237788658803138181966190525750831141813942736713932290953689404688296791897346961282926418124089454785564410025194499482040387662196046529149018002974902800537272053746635227219957411677555539353586897346291984807364696551577342735081966724315449949490742189568861778237190026344335819333135768626008890689937020953837381452662432479729618788511161607457118220814347290546723322544541261666260752113739744049411636686967065922483710760044041437641560330786422885494905055016502137439468944021996534288985942249061053894917631934509710621059979078880467115390298646117392740165758511320514245653314100920387116390913443129921641980009203025223400326333881967907368873989894260091088555506899593578346778449123790151509676270051157376226578989709629561541768183821973817576744346188292890085592473128930950658206733040592861128094996604190386797946773120877832065142161918300423112227359245479672140376612112989769182584775002815182088755089938250847103575348894467904462535449811329058126760806505623795490207389097087764441338291483810499249289015825756489987687248531119930417169446887229310737639866397688697375233369347041923628448841070090476671601338612128749864244607560591481635337394015629342218884102959463984108885191634219506976266742440014238276043457901371940292646996938710858663000832973099040001786667943921016893525574961019324605148961649429974858442749946329514917720806630238102675767210121343327079153162919024129752689753703049213574695306955971752010815258015548855915251955959172675529075560146569283471253370670284460100383524517117440049563990112782049201149101126550618241028124913229192799174426339904119256565063666572858952187848757726821913496246670435123523427731647572129302140184814698322218987679450485540405202087603935989092147860799284662114896956220518653040108990578718333033842642819220634744165398202935568324246930317579365962748414955064019041314702931749337076640326886140655325097692868365053676599673425419104620880740561091180025752113347973245302148027996821719135484652688460355495740627536542397215816181855563320991159586609506345549689035627884187246661896308767928206142384380904351567590653186017312417801492797994284254677958769300642733940265511713356943181258181140004419879077079481646721942226973422490798954657115646117912373034952769051801600949163527801867460915855727068176232996615171511097613037749679779232331050899669494095504670148378859887891706659074514271680696146894137885888943496791795330910723020268026494857586730852462278474191022598082201635870681729610274233223652700865149885999212269909634911122745672398445576423336877128948284071914888440112355738744132877619890156887055035435336174283666198639519366130936191341910002297791279207604053932060134325354518427404050853468152065160243381164810241993178342539857836509827752738434750106773184201291168102480976682993034081146438978731284604071352312059614013848253977326601086045788204168021260115195626432796313250677176601617220407100460834244157290217472510624359386468542033993411790377253331815438077176872881236700925830193643016767974775430587940924617405854081988647717893917492138878800228348069822112132425244635270916287479325547638031853464639523177030947524261295721558798129238867478178665703691605618504899179179837327121001916715986581973703528937020597992514361122189138283529483918315986259827665689161238122126778189359074477380489802247198591677183384406342138339770634490284082091937263706579810474602685968318177311426354456936950042831148238116029968651830111494015580273874433847658169274720740548048147149767104631415048804563760100049636301044572140393111355940420760250595398245129249073093610406851857601350251374075417461968198472934701703290158247110670194455525038121541952714739908914582078373783266179915254356091000820441314303319147488411328167539834656213198562554211274345955040196853183158305948852851810053326116413450907555705594389852573380675986470854017756913628835054500900818304944641468578850117922341510171143089721241470784246018682917004059194503903770658872801823775071566755523562040854519846434680121330508062389835116657216857866804249795917874524722907122986807970883716290234070942627550709678029067442911877043410928282467276198161015044163398113909925359641832975942673205480123058289803950240248161501920036386741632877811041925028875036219101096487434034380113282037549350824570184397155319201200537390501008456726355527178133433274436206002708485301790914690095207783631616567062814786158051610046531163418856041535397393110158492155472290128458256418376946963682898286497710696461989866749453641452459009616313958647507609051380510308393158876461319890249675009561444163365382302038428907151353710846255180501042938330738320264951077289830114425678682560453675903601542046103326188241367787128928037586733513670115362881869873556018468739818461503438193388967407845165236426936025402025539090995898251955378210907495901312618761109769435143871718735172460215499735754153620204215228497192129025126322243183999193611404468781551346379805919209324369040563389469086408776938796850729757291092012957182102848295041343936895231159283805017019223496121158182839583629239211143415904663947652290509637501397370191390187512476670754763577871306979099730710090177848390842518110666766586067935950726630634986652201077617189902698480634760907702248310971868613727704764440459943922261650373905493942267720310698571288267384014965827681514485144678562110454127542353530675142575961409116861324134822674234395990405292880699948050392280199202932400760244001920610644271539995170635201202837005655518004753038717095080810292278674683827033801591230706730519271928439764826544193730092390060236956046983381574674431016897553016851200693705384978360931902441762168603827109182064866577834526110960432587246229614010541275040058008519360105157553536160716734839710108906870259866757059542050925487414189976905384888325643634373663241815350190096192834899569753757673597026939347691966916106422504049817264721581162525922134183909539784818813431568485984488758689408118267042827064545305303155717937045945109703478511919255995258665097020657022815287711343288878707690696129649240098968508986986759911597264756965311657936229846210683438308219075217081977128181000387655348323441497134776401791451760502311554472117298407429963168768945477680688274968592634708002648686775183543839841998857184760699962165800205266044233642558711398893272970378619331422443249421525437393254133900998877974999785518998851452688341458634870571293446047050547790519639006531406876322500874780090523977432340674963581748306278508615055288298494789185169829851774881810444668483101492217350939227000985958054896951335954332073574288957680536879890378831366652302781093235307519022755542062564938560352439119820156897553134949641571514965461220236277053544325419038295592980936523323376842675272071549262441226678434591040824766982624792661971061362889258114349414966433042192586968953132696344698260595039351101597109630281979710015912963142860398290371795019419953615424003479614509421035772062057447192030404538015838232693935879973644068026524766853926806229127140536677811757884998553727537734335435403881965043653443225887731413646195003839827646413817374487847033290641588117082313447867230874278503084702723064645811043636907370638016128847553957518135128905824858755652391860892230142081479208400427204072477978708463768248098966920997831806022154689887213873064101200247656444490333610834658804612330731124738599409595071420024062570829152251711160230887432900455244858859482032542797755103524245785264656653771744843936674712099610561140488563939894975643927149245176543848203066834035662148585761936167765282176080282466117168004539006733117905033797513758496873003393483581969336636468102291749238982791720285421672617196332013351947979524912411425019318719512952120927938967107604601334356894530539360332008449599086392206949797864775999554348986428672094762943003982912713958300000593998604191342354834851686407156334593103526664565347859960920277990419009087059077063177835756921505325270161951957069730378351395544952508132270630530068452317223548770540478673089538828037269664953436506117623287479298336078092266489156128703164747943997637528439102616571407101139924020416478263938519384503678098032402628157335438731365348119530386476993029389631667038023106451289357261125166239943000409012559656714208849223669298891631849082064473907320070552996689953564064442626064378281131382117854770917325072936031769406809814140687593526203284581348391668824569430658763543085876027333432971517060457815099300585222918718329379630505694733768562120451521125531194951613041460204566982803067377721347340509052034502943729249820985200647664859114418841130042576497501247634729820994294791884264765097387682887819089658371129110135583533543240566827844474122422399620769583825117506524762836470702892798311191804723901506547198926123199188343654521394187971963676971374819768964922821187673122302874104440619731409524472148827440536061193361254109676489735004685904122055694681901284976222081197652767947069830072834560302866516941612266361315830262920156301870158992939956877987616419120142456782690515753729809111974897134062589992480694089710408295039822806994569782308994192180093567108695180897074496093118002874652432190542194543322643830237031064632924847840879585247046574054336929629940373847297036604943273696440841120894448185669346723085847930222979446310533875898830718431453287727746848401986303882223822519118672597557120971596164286024699366898886280938333551436405727945131956751528146132185357366451125039280904686164513021472726417865179362521744301678642702890633136512092858579108988498171184427128756684243541514573546446424471435659055059164288496239384216399766873531264366192585952797339426422983455841653027028762936444483670545345442744470630885077196156461192373990309238155217580821988893633341632080489321162524919443548383133944632657382597754505810681917653242616933893008941231350427819168235983894335032175877351390047814143532275886970798481969414890962906672883591391874117734533598532524784013054014601982189249100731247917130430584197369297541405528692245849529683582356271978373983543285473434180203447006716318848144743678120814933561218487121294587294952022202441767607788027170288003240734475010751209101267649213709672301485385913761884329946575258623371564975862101783290989454784325992156633731613666733507000111908119174491343931445421401015403011108519197730420487604496066081703190693987135121391037416595637754263484321859927698022235557738805839616770225768772255602477215676297835852617470793382872864615894966376313476358847110370782323382608112995128035240115013816981282322515342560160197256118168628561189538703723398532473917271071279791892993726345804716532193584272272280344252950819786034325396058705368122881521150999153200246542903385250904780818562408618368214891436057847108688479799124781195817757726245678683376425227668389002727463534217796215333730403676390540632268474615366288082965118742902440442581265001239799084707233685253542414058998355697146798655819771156420311339997799395509993373874659007305106597174072742922546456245853811468974383963338787393442636547068839475769793548298794235064709245527891663753081561913385482512541318761211471017493364742122136890121669042264599119358522278668941558034458726537471630488754773768008660427615049411837016492820654005295072422237118551361623280199948386947085053192100813024896231849446935719295255801869522488485413790927712811412998949583964624724176742437662222232495946552179319138291275837933784287933704455695493293231887250484722070059672201775555308012650877247287269841111539267559882135755522016130280500411045121146595074170819875990490126431652996260565036850572144598481917043682781176395844290400760987028076569849414469252684907327016696653964069255623996146133598479241847721484666668602850044835060984901069151563739824844059825878756916943345831328731443200700427030263185323433991008008415855357406427801312796424090025053722421563349172395586470508781490356286922822349617183619513968305435513017979531855950877044231633180040055174427330244572025841866208341396934758744258124775519643435784387076430532924393749120407326693573514205201287041498561081320534959917805240354725171312928093333707287049779430486080004552740293936156660212209908416662581063418013999599366280812028570553479816540973685922856535644898659601623775300096292538767426859764075690789190709598203193807112004878534692344734885895023652790132367242356742066081373541364232800388330436079530333316921257909628555750030109219755498428005701162823001126648190089602899422333218934985741898278969319343434484880484069555554572755673351488460668671008079564092555157817603705504351638110687627990078700336215539181037175003844685313792546195505819116513008072225955394632262958553112993252055722001419860190481567204786469639231483091891198283511461595615526770150481771341427303844949220408858187570803033162465125651427437054269611935105110986641416336190249530792370104166432480597550251095158333831891513681609752896479312495905267141021600522173751236148890518411174808067738169614568270133597118315505672757678753129216528224029820698317117487033784842470086084262301541672272242827486846890296532688118280936945017711642327062036406879190997808509850287482834903705684683926016793704204912929098464604647923948108143139997991722935273194583323216601676847615062338259200262491221394992196235308241751557532793614825358566791007385843917205361618772706692391802909971784570297077894060123439301104617275618114729217750816461633540100074634521189918360327364454565004562956879494757088818029408162807181477893908659264493974257041205788839368423074334050784180452082727925500785980371943217246023351502165425364528825054866522675917429570073766627985775762990528335268231107490949678373236411714074706907545199599575188171026536650212238347175972239363049056677244357568262236416360143842691403458593182457186259770225571447571260307073361897953078086813972834590934007558172719990738289154698569185849640836481011143296373023691072111033429730110331535755273715800183296786407883928948434863343633865243194362749312223516107201059380003043350293249909555947089921100535601789453831132012392437492420215248686851692775813740829427569288313821740054021028127700710393471099019637145327416239600853185881759269960774689251068812590613370061432939454904960706988910154017224764577119462849440707187721715689264053140330642316041143809599864612193725726531979112425823331314940169345188243153732455067328369641131130024807715216339089379719408600627782973537762915328628906763900474217520759066334011894694255004359413903999655067675181259813769923061605664632718646038243624577851806424093646076860377875277743033739378976659480373336540049343629059566099217989040705441878091371183176903782360567392344817725491413683717443146611022217770560260142636947029093297459271148047258358251362003773162110824571488783963328616346140995575802875450918035662580387042237639510232348037704365090125724968414138969339277309034343808475077182129577677256170089714809238849696539132641017846029275992212544718214659062244473139620869241280000145054823848240557955129238678677869937409208675118985453016216590909329837898750134554718051073374961453755818032192257968462044763950344084383517790061259074289488677887714581367746906075964767116352868821536017118701700880226372516456340761093659457843118791326973182224783530881371804767568198881777554118358711472417856720313527020731237046523205848610473179700056739020548573669021633075783108675074905904724049915476554126844607275019159771100561194996899235162959612442775028257988307014742576777775478910754272734914421963049067853632388557775118715871815090550416413021959111129400765420179982854775619604835419590736629401623712977489237454632442123770442671955323942163338627557602680742920423949707221928256021642561028883138184830963331454640236322538420448866574225638750435037936963014661993476124830796978872491479738832146830492652362113720995251927572319007420928336538064708468561031306209127889686180269992765494313553316790660857457633338305294085406425308761591936211722962720178695081335840007482326855020834597131175568152762823999328282101562341102671553534281635922267902920103210966198537336258889801822985325131532802160318503964780038666118017888736552972677749743497047225025440897058468561643671214538616528350845375610009075623020326316239852974966848944601763241046038449116512203398288103919205409976510855385520019898707998565583382154269601358553087767411870192086507586157743752129969057922289932007966584595165573147345494678299338408185879946888236467000655774439329849083808129130670201090355356374001557050500599168188764868339389697396252050458618457671240072607798089453162631172225579638484507029792571760611079641523730268922264428395201288835588231012132003421301882955067336765839294984723562482292632545972242790894748563535349959137230660421231704184179608651610857583801459954446998259846247947385076051733120276069105921250887495147318350245353388172675794889734016579967351364124935582568755543390879824433673599770357162220942069181906193329588312737504801196935603986340686134182429168097002427593901025563335374080917680099783527254075337808625881623354587551881698392993028863511351458567892643788033792967668863477102044481997391096372877795629541028320272969571672813361897333266653538302605904201034110779688081200540097021222712516665889779969129465219514414997626248430577650919926945394851176514459718830407218992172768523547834676745053678399514487319066440593600209872497537975717813478692998657808132772200273908103395856303011739708858346159771272548327231952501745259562527461279439767848445420488831406905599292341912140236167713661012039246291125164293044945325661927703761178383848825655037170914182086714591060480458257014421622811115645032455411678445511954823114617780984501822201536675162414621666871732483767250929031971682080321304817273204226226679198134527590432004127957738139443397048190042752547083340691150614175377338024508739659080763034137352874177700121261521072294317427070543802901158415824876150735982591047367974322099099890468858320806927746904070701523763086037526487575251393777424789081283411103295474087330150593794488235852304167419597165729790900356228699679546605825145582824727979901679626353550031625407775159309320954538678666023893298185883321167861400760546862354152635815366801374082204817051448147794466593005448330873971150403335351345665138409772822745896900532901328714585465224543020373259774627225999388305685034723596078592507418720365327051870371712356360756203746004816175181766122180418830459143494326914023446415264745037568501726134158169954918422553971581693546018729898734093317759097023510862443373522660942990282121780192763249613962769123942712089718415428509611116430552540611159487479525757076890384632072352286774423567676247494504879208573585978170374730647595620197718366204698845108710805361487765679013658811165899270955726264921367490967071995666219415841706347457136874456119927477799665899695401982157922631146131225319319742526763954407306141916440366233941033563613275654796888406723054990382563806339830552920950398500101250866334864843964250543422341131298551725000000008428159125246844193520676507793528971100741276284891636996435040691450848964362605338551708512302853047662904427533555912678332299081072886930802751598701977680529899671640565450906403330355872252285953155246455094004085477245749397222097111095912580689425863447020039178056028008832073239480042488798155741923163030017096014132435864764790194646033043775634574043720559583710116674821944128825101731638525637577012795486085890790190477840703583699504710869741740357865732788684585910040178149721567149825021782543467859510179579194038958081436290703548132954397254208895759782204767733360442436071569972087927540520554369669595078473919627269693675445999668150670961874181991577716257228586770648121616196847627019937985705536481907491169701869654536204935794574297595416635050927540929616747442162437234797536323440081413058088252001372248085641135982457084457127730998677251538591401086615545872146663721092048735935483295121526455549347641097550353832191640896278548621431026333869842188905653486623715198361934744528676565566401425600623100891662541957511061150198349536044348056788816074972612351412496050730397744711883492209727108481156606100121428222772651478160832422585308593419468816178307620133629155669965003371580677385080422264609073450902562933949208800494798063825281650969095805097121367703382488782067159894447611340885064342954880917152596186484174405243174496104710588492111702400338964735903517861365093974138428873646232753870709451521563853923383177095164031258165198606923908892749041789482840425758775508171481236128750778091803831148106339676951620836715505581758374553425422655418927056147913596057990891267056458880600895059634772280810331881589914992746161137249339664247046252133621598979569734440041359703647646431404988943074498779504131691478653744822241986601103537475153678509384672747792090468058620543920231689724434790605310968071161830225830730583398572962720788042891681642141205121856821676705337870982322979221187950655574412872648161840241056568740985604146433258752439926603658785319315039084909692126223298697440235759774236654581134442715643032023356303106787591112813836576982720127654377628221812374414287756387089382447900838977023468740272804212146930239010063929317469217934072629594801531288963400901093852345718110062653461594932369361952978937640380085463086346687524982326533274717820658338386377439886619963812733024628537589984002325899329298285079438556200035933334919441600857814359974782901246782833851689720397216569835501461866879009896827135844091623330291514244045355189490424862695347418672301475048337057001145232511810693118244284428119437535719300737324882947409885005690889836587298577582068079731522536157401627709775998953395413331644994817247671705730004312602415025237378539816164133045477713259779748922916305202294193843984319461929648178670701858087867088647213991762896802782944076040961047284332231755517870850175924932135673561706550029843130772987342672949303536038456599209572056262938168166640323891627409067799586084464872770467035006673728463901341372752089466448846032181717727085327661402523318458831202585683243489791650664549685535115392837617681946240823853700324699453877598830835006063368964545126905487717424167934013867313846649087814893039256790754200683754604468325548459601281682334101417328384857079549114840743575223650808403112801460051525652614963054327934206534579208921137593560189323141905685724858160536233068240514596321665975645115468827224517435627492377740454033019714560083052066351643040921581081079302949067899172709296231719018282128551914298878215054053233021420553329430181270695700922540443183383034660951391583914661704023175066792694899807066755766260520132073285347808313358179217702774584932518613194808138066286965950720630177118326916178104782072434752727464250273653203560683065504305471664203411277514121207681250127910173471655051807078584925084843385166657636080614201139881679723121939626550906582552838663663818430391561598205391164389104598472185313374048420455434357776339026921386737700278410379847925431142810884217324207912813052096122057611519985312707315413649851886418421158139280775728500685747583041665199004834697221168498924502099231348574082313747937053463263748684048332233362463529681445144292989974105335482955114357812093797871151452162980239872829278095553498694707031590613519874213365320785154526476635705482273118560538829454694244998492113393959680212506566890774159701601833382759072051863659598393356818269045252817031931035984241842417558171158340195387304512145163647538096977417694144824354854954848696453875582190633644337185844746579492527826889802801960301480856326769364682026325450807638435956088022017629108830378211978873000301470745228145334842787917373665284535237437652259842027191876193156811934270567909614450004890590625176241568434707585919707079952459743249841948396564335591989047849945393028528428996451864213709270549965246886889784008091861104694267962136308045696605278412741641224325100360489903739215228296463802610221763594660624291202120596416529441153829322520022827272000413507768492064887877606941319858260276051986822853912985918565460939108639651791043155680018520421512204410515869322582607610606313892742950411690304316244911481082741396900762154975818656678078211521888083849682610095275021464981678867428139901925660660377848184867770445535776552498088249774923806275100571597924086455387060086241310986510635255067276012755116746095216388439743200328077002762500737290132732539805569003554709531162071715262103696823595509033476855169924418571648035478262487342869529333677753835288232305489301011304843911800385863773606231917864122498981147548613653329058501715792497321343279691906348806982183970725182267212770419119593586655405812401675530901086797231665378047123331188724356149636741108365127128491402758797494689277792937490922923902503965190434703975096761371633573873538024595946753681446003428396244452487346120944107221319316850240020308594691077583098363628216983889950647964472229105452571683765132616580530921699617238055089838773075041889080715562389547236385806877669494219967465535602946413187884728487047472297327402938081390090744042154154871151774391046954061849402582321123340029528876251534624197685090078874899989492240067359931119153911932966668939626696584981628285276866479964901958636445960977128744380389577119969054569856153753854665100588388608581487297837499347609796311486740650125354927765551678065512236576330246035157187644429188322022583756843332968906215987298671130840499227364325939883913453012136129157336319847769808659206298752193975987564016281384036712706044939534909156982950009057833929685684310926702515403421921540000873202868366595304262190863859861312037450655300786209511497681950875924987595305206061882859819669526528692364385414079808442837712974047533627259330494000086465074215569772987788236066046629106541528249844201161312168268388511662093219300177172689192983269889125304642048414571288583759697901635495276118954381079696717906090654048819637224813398015557409637058300980715395791952148331556052699967810154140160763274881252808102979118967664702614513968338836117759213515186913707555543363162647933423658061416216725765237409741061332616046266768905491652560606234725991764910275173554998319554451031296251849444560472799515508966953325860214018940477988143142869395955780617142219113232726455864859335173556693125697748574041768377977125281603255039994011710795608491212763163924626746447175103573518547165269646500797060773624520039067306601667741180264489224180096267441376759360518353029430921345328678390578344374121077942166118632000775492248061023668892600124211466082770218215137084882150104332502457477940035278131329600201696877346249543058971161555595271675129222053803696835374631017855851730041436885386710953979545173767095949381767344893255030580841462323316963373789933352844397578453102524791423118187227717243567191557069627183394848912223087890521634349644727169632973462749686718742552420162939557983512946237268291766653680900620750734128515768593999856932400193808027101767224479302097803344510328752284919426985381388233661240285521801233152792417862048307295851395247442551923281218178153666690693479845848496960900802415055410600056382190773337313392395177712471373196559707270335609829813569839508217734319419878088020559802660445296391734111575007322076588955525960897918016381102557952032749286672397042717083578879992695344705995277798363763443989276547652881424394030197866139047060572882702927645461463459633430358361013295382116767303575250621595214603256250110097809312321092477573507488026480508648859464804081299385896111383370555137168521582159674776837427766673550134870153543875017752126228706685720593231193762357465361961333498091879104024084398687807001203376210192738179578156991694226120385970058733884009828389519350668185923524777455285335176861487830877238813438627475127322682323463768716390500346217584413413741570316774685868155682287382263494348334085896057248223653578006582597196823614929212497529697202577025919938590951483431626802402133754509115884829238938777828082308051790906675644289196715589929893345089163446460779118249117389091509267013483076344935985531754248343958102361633921203511220277714598139919442810730352037877240341680478785229324355358432559624217611653565212898215023367623873632973550732527928770578418308418676077853557350460107949764713772621630669989732892647706751749475770110170766242816202965099104856999025042443211209844922488475844185206904132122748608191291701500064890236324397845638736068399033822925143800378172547516467119523790417034396560723257494847315435493059861739301500765700248818692276828027534665059076674379054055517675879205584494722915889466937080134052691505892256180727335272461524542376589691753307049506677853942395638984788349234361866138046445274215620019380667201033061217909279360022497075370158689079241420774684121645862012388976744347298758208444495680425858416965720918440602116791309661370450697754030321126117299934279354308328609455114603077342091896263882343247477249184194260456281450460318547679839632996796467069542063550806810310003108036072125497551526041450851408966812413271647384278735306218653374089669859068408812232504037675776280202457761833112369839720494149112233677252991730463364840326420938810682173883767057452993355324667932732866261648219044809335267046984283145993999449451073407682613029849928552731213530173714259902368765569792775724275886720418339801057198697459432703342547118342946691748304237249868659256098333706457315901904629072140159901619607411963187502434913765117901743703512518588465361160353842317094894759878646972065608289463008950282542340277277199150783105243659347904922680097596792855092040688672701823639615644524574694005427535774910972497523079413122001244713984252290945341149889954177822495274395654064473464887182297982374773472474139575464744998614591603342936086361036903411533776465046969679044799222704423408002368644221843056300098854676714358757900766336558459648844132614500360159299002536775436655629591958750724052264007572026288800318552373280477871373039379286678923514292830415695782213688314068927416198527092991874499920350361287926393735569451007271773033545599933969754431510130120179311669354228970672161615157282654937358475136815566812642051857986966868479489264451950425331450155403891876843057991112531819261081298649009580037390315997652292895318686044869074206450837888179830223987714110578412139362123941840411977825123968171419777085648274959276763282176818199067812871985884538548204101780919943076294511972867287229021363910175775270502550260089407947430494824230533086752538480098322477665766873797655700883430253838315097826210458046560150414758110465530035638800444919441598201823171474074838181927094635676627392663133882900293494999112808370126562539964058271018058516974050192634927878028347901021728102432753856676065901097164170077355487791351179570695805866302049299434925684647804058298369616759224445714567301286839023452443339905525469064728983506832964826753152842348988119165572206807351607205623176007264830703097362662275799285254854202681989641970364703519086307347837272046124638638324953884731603839873307852303472013180320976713079517528646183660668543136179560254551416416561316286818629362430427988635785261400960594136833627740106844350658897291191900644162293604540769813495165435167917377789276369536671114453106747051303142687156523219448826628809143153083906304545936478556262066960282854054712765354987145639323665932658516239268232883036359118401008003427627515513952078888225812042572853478784352950113764071055395558717372265254852707748192474843472349687053234375513571800822462056510266453102700534198599939714823026595777350640536925661784697833888606605152851049976848136839374451340169241541508780719460926887791167127568052797301203431286998594256429205868353394658783724517014051744142581887294033137815839628975882638079198298215637095519345851274594243595028529767976525242603167661072509601754326404492307454331239613496973893527351157798567710878939559346343248139108263836088703853560590823578675784460251335044833595102945455320086453921204235246738699004047080353852981318130952377746357429034750388247303857875976249071816404642785118144231940390370293609976512741175152079902713811767843410052755696114597859851033843807377673408431057818994225648136071165151715831685035875435140292435162368272786773278847771795271847898098572452014069566180287265134671242679371606925474200342182988904450447670194404598477416913291981602081959841747555323528993914082686330710027187992574910267374421601483071564032237399301524870710134823075793142494944162346838125346059135197329585418300217539545656050546842776562269264698964253227778874719391174428324659987028487399545042147494164050780550863399554287500182772992815577952106746148018129959312785745561093062564322208457630359242677632243315405213902176597787114689040859664097723147699968096681299830578511452640893852664843536660741779401681163845710381022951043340691803414661357144017865538084573586605636562496336403415579293908247252897612786102670005277168538135992798659648095223582877697780025222653159793768484607885117052090922937771095045181055191902483916654047384576598298521947291379051502162944719469402638833862456902234809345661924169361102131146390033082900659465477426015722799170924168611688145772637348993354198670763932808511066699917979507372181680364799618332570502190213103424230015333832473491435815386494211079837953105055359339316515409486227101896170693054310575327367425830479190576176255355788026028626180713910671467568468630187126032312407009905704301378331019324897002133533110668267540288371972824244992241042723031437342594652405536926646223543577652687471427322975964444450175767944182367224078200720682168631342400984846430845863904802823902624896547514563022135540819108498343064456218575276719584448618933355897148520560764810248894034038928056057847220291573928146788196504496998159032651048313343397301887899318241242221642231016427720059045364792141210500719673340074038123799135845292206886532721840167893379617109137839526395291703174312864679668409604584891619647289464734511136709074485778999246572801082324054717396416041321624433260884996997701139931237329415671225980540029049087320220359099520511246872779559661454779913112081885458258917123545165029548070194850949970075789599600024041729822625351959230401151671751683164539513151565106735833362581740528032888714655344809226070789443830362861319962012089499321136515351065897371240009724530891267549772654963272067228562420620659176889660355435523041536193122591682217458752558959864249091833179495723129789634158833390400610148294862136973439301343078176720686628870847203548619673597830050636024421230405847629518321462775334677496107913304065196655489856193326944141957992270490979859351426870719429976527132205425206424386989457661163896157621193493030027940902104835117843941181978726167045828180403685847376118724655704427417153127931963782813824546106071902990648784713640549807757294228671413819592321783698697828083625331629480491544048034202215202093365985416672428858783921418696677829740441335948638250082102013791915009970245078436090509012449413447201831287272908275780681099554432414666377181592946540187415096505194877935764721266790721383227732307756518958528506643144966509358156293600366386051911261709284056000251876120904795873849866014234623175243850769610205427535449227261138430926661855068099226032981457952428280632034162901782273641737515530462607833422122294388195863813157164078076381150153438590815341193679201670285247591343970689403522210326245832942773950874162416794920810251908931861568784728699785439666511323019286488179744103551781685358319823312957690499059030474185133932187700770496766378237706247199337777886692455450531389477363361778826207671549731058831228596404956954693794312496543756764883845488705702241496674088116860211095059859237109297640883470532175956421756918329416190742527893626373529595173383157691252690546915693273471725575749522533535307009692006114280735944769387281889547805124771932302944162112262209238215974762339344935958212510088225458680302214661345136845682534366640489393054236616564829721186125802216864317336457283617139133374778317321312039119673873561460881191887418794629309744969534081197030731091389249998412983622060813695009984302291415059951122010240261249874819726666779302071327321459661241714230718588564754774353925315944536270518781306840010490928469401741629867584734720534331004562220291210277516744152485354930540787783674688136419591420275751156524946089981754867220225076084336938630819315555683193102631420862272252338678682158034616337073749748791523866613394470111670025621008115900329914817757558578671640576836863752839438609526495905071596935148482873547933368646425876938718124310883069444721026578434947596467445984673160460261920358233563959057953374116589621930484284755434809348675381289845587089467390674030612150786688390600082508170244280379883684018987763073440487346429582072714708725970534435010188750233607110497881409144265336947722905724272672174771274929360481013368815718299770285554645039905891400098191140008386759734087295053074665664195119716874750513039641047622240642364678206142586127089435877312091182838109490328747336613251151942721373132947876900254349549398689151026557212537327534010522560071666022755118166030037250811372284596778762885046650140582021956847276068581041844986504947863558811991580581477548035349877946184676352414345780051454361276956540458776619217200334107455591418241277850279383089197045081386417310455608461502344406701765601408163609178656285079207185198337840977713561255561014725046350147050872646315295941266512685031824570561691720635821338688450594050449770021586071576812663348188784142821077351027359113935543730504699979816394516442455667016290498067212062224616920975180892417588672326701904942388955741146438350082680284860398787932869843693886386904938371856775801031580721248174786051366430673738963633604961276697099424522183292742556459516790854641910108041730801464308799702076152841681138350786253264249379147841245187425462475124621867423802590437034061753379936985237402057567136472038948169427429721611352028632065076987674091858616333132663399086950796152987834047192311198483363581140758922038029817220423431387153951587380769810178965651158360722448832984998504102206347599704928579140521893144601665774108783102172245880844500864314369596645112055155692401503124309134753991204411873512770975856962641776351631483327166656393996174917485315274418491827832689516614007584273643773439455361477147697262915817523347632713764194808762886322884038028826615038363585906448897970258252842622121375159056965371445615408070832798082903101818735765388386781436290809613852901253573732073360522244822333557585131249364607068968948891262570151117355095320638836013763446149239605972551056039353784695288688709326621991274192070781945143249975108092425251467535501725513451316819173986026268412700593528384937905934247719342956292348487124252369879670332329649492194699222510422448067836109596560043346845833436433460643880485547963355109434900632805854209350068229077695220152801039129836335434976694762365198257436880470367824386711258667213885807682951948637816543220836203252095991244013987473351095599465291475167914071365253714387568761783636709981082079430651349111997871166206969503749032758662250084867117446606863629176832782849087552992875055342134239549743327113214460967034093575381750284757910906533888134170338320206281387884317769435604467242951218709031432456109109792309953657362588564614365529857449457692132569894407388187281445959696832022008110633049713244900263531834237743635445311242024862476520980219412790701241698154790970884583776413239985334887899133460727464183639848422581169283943287220517162721622525864960729335423489663854062836202641966960823828381220068618033302433581090021817933553311779620890955207869900995280428783502385383204680057789453263861758684471243989878750958156125156271413623326742480278900232110233431946749585375915588876015117451492131162645788122619807894274296452798743135876357466298780172776262001566954441438536227752582712262130330183078369865585490112364565690495993893046618084709747980813473815461995962142137825419662546657704960869113608977087556581699323143909878123820097892142856614533168060590826830377302856244190129882002885809749180296864598489457098253150678301276370193062063800882031393738850891082371019486314105959331757610780675693832492786384055516344715252503931819231908784513826614852750130424623511831187142075918614872685635952688380789299457722503378211657261759647981834179798723503329312864845643244653330523726949305916678115309788031830704474413690484577660352066147029414293785451777939767515821409258811313025910199044188490214532611246376967352370536529072847375479191719365717176921016522892696716054491984243876318422430644034365115112139990753742556359980284168100716189668095121898250882088509920355332442253199684332808182777029844032977357045955172109942055198404303506028835376339476946555747231024291265876100298936607454874064276150671134135185920569603401708053490723561950528942133358688745221032629034163500179130642287516693367177438859255793474098431411840432337076563690322292697834667457661584459703235982128701016408758920506834484378673279924110458629232443968216660503929736296270556117971078594836135282783877911222221783925265941015748484396062362238700148626468789103603333117898203525770515469783700209153527542026486414504112026951452733101051476106039680147187762741344273889544970531323979992596900461133560510899967455724444996644880754073468788208487345231898944780045850456855755623294893456736738121842575932060782935739193680778690060598065578697076989335176299194440960467989575292723284091467141956778359424842399652872923268102811151147335844390537178974984668954754525107510403324181558113722701745984852252358266586851901263398328807250019453568957605852396360180747733216169149160254214205053464036950360427378939243509049757384213757860570174005539451620933308259949704471856569236147776111847194886635409320359052247929171368558862988393939570941259297408427872898103021558910464438816854891945502677284777444705002462072343266829969960888224671238634266081714046744978072524625122108994289237332585996140671262558585060719329341109994708274792805649530912701128756443968132609084031043331607461016211314860262061072615822856310703031565172812782349484278581060056151623403321804142100539685947741177121841741723297862399915801812426370830704929966491172535087456231343590634414299317597461612813179642897907230226268328866694879538307326362336925797513088735174826596406422028653814865708811312178958080570972878500050668468719416297939458024736162417199902060895030865790786678822317088744286248490183244809653913255501580734490804521261160084651607106012681941304121132885491841629322487216752319862133103592339599396638634904652353151234368720163303594749101370265974882220676368163408721283210052512768061022323371330064768075253251590042168952586865999577170543544146512227057735234852401068816524586319483600595687791821630236893234287731328084040769561247600147885842112198086816239447733840489672362077433983611229570176350311566429899165970429494451528165886709296645497101348655378969028202986086274068313099919451769302404865765634571270738988014204981587771680506467189590115225633216224605561271255378724190204879389022897486905053468420541651814810976528340731921772107902382356853364458583247151953602298498123595542545316857455751650981225304312760820028153000957016743833258711488030864749251954532060380316699658478055940443590474921411252368052243461270218274918463944459258286885053416559463667865009324548898824290774716489351542326810923143299519212270447795706832509539416455753027066735632801816616887539649260519158089483985255316257597492217963873983610637521805515943332441052452319848797728716878290714129173557746192498631506638843690627772356698008267689342434416826368349966045761849694991884716125975359006668688521099057317319531951997499427708223389316778407547408535027974691271444004428079896208958304962252742302056284256308389127659950693917912675903783964427602819677673501589050787968827709911004508372604960704436751119628650401277533167230546655004881231579579059900623963120219475030037460421953976967676120285187803746082373853513605276228710470285580032966377993086535009146466351410809553836391597695152294765795944703962197990949272537948741274498837325868350318992243132520068949384523024064773566771814981896460071102545315384446607347115951773299032432406868359550424842912112256589211926902926607252568544602307549920499126859003659820771173858744325445050802098247324681848106583913192832700233687981458657581774406495528008253384498859457902090384398161929663496707266788360379484741979845678354208702903931247352812622124974225840501906821752211634758453916632499941153325127168805891287245216835036322319147341593344490986722060644164538184081410438409120742577265479013106680310542902424565417028801674680494343505061903849406688392542083319025751284735912724456780499535250665325569118738026164281832222638573040194936479846575028195936772356081487138505288864603111163958859329086079202537466985706286616903023633123498082487552039186131710233601830125836156162359257519683853795645276981461995713271741533940701743647322754975541527942260393905618057931520301643601930357908987116764128276823749833267685483310960912317006055709108954003675349745109512590416596972149517315433484404066075143516931011544855705406053275417496152236259144267458497314448567079487309433716937477954907697444164000862143301181422925685340831372567741079831345813836712594428447991231800487160376217410115592441233905945475507611113208569031471929974302603735181707095033558053434530642012471692112714052143144949613331765976483110092127555855158216299751604476164106944051494215795991956076437468648045283334125786974768530012723976425989384844580088950673711813531607313349833723112007106360817543061603084489122849748586588544725194627699782917121204159789727396780104222444027450457173463067440727417138688648609316209150335829896300080461885298623245023372490042267046387385578283637308238913601539720424579134040905234781879998959995936899985777902064875091481601958920554158574528837587726179329715043392323854647840301818809589672181960230859521371495802056924763046309997797613653546531602218026501356036653357599116395708890142795356510934042932530372865481285880441263644639894499232573193765559944540049658701847206675630196500100398442901023499313061253259237473786300244239711584177208758567294117631427876650319175196787633482026033422054345835152920766840262154290488464328828552136585487901636596602185971959426425651831539487115102146744762435999276771697606589252773557456257518413028656194241362879891240126148074445687117328847280713875027047392814624180383440192300419996386284125633074763600812927245247224552258789324851361791021681511655614252071013242582015777284465145588688624643181828884883176497616196477562462210526384036646749599023827853428861602480653646492360202170520349354502775645126723441972218211643780465114418682955813495592225326064150110080133398601957891062389768864457413843944117666454644457787118249353789048691520154134132929822559433975565793251463718670208302754308573471286661409705333177155485893350564748373720277138346248036756550126063625757888181676433110613521808032145996399912075629121804021760459827832040783531790130662673867078909127402862305393388976486398729177955458133587408522555746054479531762891810078434723573330502583231153949382121290057314378175842726569815420565624322256905999965731518295797289763027886256046413514332228781910912215669562096018019160703465701067322259781645403098371124760602213126916964556477838634053790621587054618072955628102743533759485789213272427621762250248797180920134379311707582267799407336485093108841861912477712163598904391836829015343317526303207455713126115451705478896713075135960148418780694500746938986405086548651269834257247298590430691457383135651514743657969728489477366246873696066956583481572388140866299351169577242765642759743448818125147776465144676239042119419860039579597374931103381431121097920377937382924824438660232531817783593970025474136161624371543762992727505558510285465944318264970855458279744487398374013884034262375387471657306019214414047608921663208250277405815023652191087898260694773107456277046749973433868322675089185200890679669332340203896354232675100958809767673111945169239148109821002787777333953659698282231770298240110399588159793972697209986615099229001450458481821375139794877854517724994000764680125069582977362813134908799437391656234706382051079887184752836369688756656647646368283474896108220192459132883424258548165309674522288509333887913605211974483479977726939199685402710212436249670755540648745718011771100153480302129686389466822050491969560112708708987084261887870877889831353824836864912150824309645910132614019285673876078300045167575168695741955924327457631335129300282934923349835061118090245712393170583222093163043361408879395693384055009447961490249240910005515669242082681635769214604032410670742018198510719324926400769579971671548290781735831462899364242907481424419546371507188185315699841052803258032518914010271951004316654201266559158168568123399360096946534199468536681161679502124079979423693271353315019275639590398130033667319454566678231677969196979562326885815598545493391526431017434985159245778642549715375219905358772814393106060738277922966996271708664855128025962110482414876087529097412231375541637723274214250950132298018607654055570022311909561109195949750935495221065989528269149112046427920752404362328417405579678719360418018899097684835357887942859254670207176971843584541758120983280055137466518453567762552975503195941589921835977788682899944610053548180202955869519833244117964810855406382071874526311712995594959474893281700891336357335724277846987953088839915560426475143382824814987997081183272768767777162639418391441889208697960595285644548284052686480232344113684351121667633545298442648254885109076652251475070954702330890057638473666782415167537848205144672062871507531666406636809780873634078815734263413030275047044392190299156699295060290113968929323059036720643517145594844116084205216125312678836678176763464700506663991391740529845098571757489332351177299181386710515777170575897092034436340208840297560493835253053175675363573306570858442329084900759089725910568500362539897926422102856985044916530005092866522240945901525161615091959704400251355472101690536566759023920186401065654463971557863525038847902570103016633320550885040881664318940420548089948140985226578850203545236908203064126355906414774969238844995479245427504130905312694076142793035164816980477369419178663688087483761287560740804107650026462750021831989485507789809153251255356131141270020035041363215234081126554318815907582504567301619563506138990389165424854511773753676142718795055291365057201427340507941274234061062703623142189992176929735870065261597916263731960270190362559626848391490500975877337086443854787432552697279143389919679306323621901250098179594364523841301244121419738498786827251198506701911076140482142742620813988889198277123455687265757901085154249653157289359053748009471714876885070662732024128053275194025216091981385512214727107389017886218791375382269646457372920779435767027444481575639433648628198509454301166837907945802934605983267772533608871956419902326556340509617634764369316517972666752219244222771284245856775860101163283954538002769027853351077505429004484744725642289627200510027672444253810993521188091800418449008006146510020921984461517667799023855537557417603167612645752849312627598140878868113419444727858017419389765871220155560065323193327047307224087699094545106014467345453593860470717527485705927847963436630587811182767420797542890136827503875859186181811207077560474522632001840097548214718654124319336310103419180920766622532520806573933887505586469734226893732577222298784383917547773684258268003598742087666081396823642415606240753409610881044157814831175196631625483692447356206695249247080978008051514668409833796338190424320452422805149669159826080805240547327258194275002232673034489857863486649408060001833418369229823890179207701619239697576678558746782075949141670257541909711843227393046337312551882035786781728990636266028156407999778313952743036593942220817537675023754665031904943937240348251729283384797730254108849638908980325304012000493629938633417314249237547547676205491205552987824418445671015693151152832000782354629839488707215386951441026928069665732784351386299483853047565357272836695099290467081264307523794069903663393139968814412243247670757615200428724796905511213472884553904479172780058604179970037762978308373351151539770233618245662320978035662939085232699753945934975164556287175795134505077164260132090996152370277111834956577773874437756722898180542345701893744281618869226085580230877474045170502677553436421621156448673156002757998529633173350921082286005257204020581560152232751416307179535009470197003097239153597299542066228145571594055743059184127745016386959457671620639770525767724527939218018174221327856635258295643833778458740456875725940087061703920454265380896481326693345445462166532115578492469212831497558837790798936014458992922277075971181540108400086129289208813970744604468566709219684656287331187350026903875985230494087418459423466124256470321970459616954238218464586518210098525299534934144720370892946532139305836614433918575126388544257538169967420015375574855118701815564432440406945092986517878258744753773515730472642336299922800025871215469514791607072410306452373538826664900619036861165846848565625703828298849901886482184630205398608732479324591880046114781391423392710072852987588284821426271079617628597415849454156454807306963627950344944545142957006464689382194090253534282460226041821479916202237112101457449463284205835539229653071304900776656340981552502186631294907010340129637509834919914918125124363090310670703997809233386003374790073334580974966856033948573891421461464775334052323171166063278045860365416996282986438179168377977813571845814193791818024489622229497180052832443204812859375623989016826395339080859279688149482216097590451558757618392928445527875704830588946437214361763528420575724266244311932913073908535293024039699482141820815831050877325363648938761517546273453984494449217444469131756116554383875469184426510912290232842956499973078649950098217993800478414452183304172663364302320611896705923491284663703976244817971264769098364712364721195910321850484097680617479938153143897289786701842244004988274602957285002145738151157526074931045756865377961715629260260308476083311428332578248660188985394296396816839683452212456779577820687342672555547078825588105532606760956208228105729269521365330782177646322469257642057336223201851292550476733345417018553656307438121720542092729466652433816186252378825302130249357101107961407393876224578677013530261009019561871711532419832297887030903149101221999525872221605810267257564387370344636348391174106812454925878173892061377139080469591999128898802688633129913738493162194179543738705430856058700416916658108926988605694017823209230145990052685166642292840341126724167190239928576864688487567480565608764591181274621783774766788818218075293985651749584528597704636130636573299884865602307133408281986604976624054559801133647816795946257540776960300508318497659437258083506226938188899168680733064933404122434755084447537142835128798768358569380458127775493561433661218285579856036719532980976021485372531803695380528325521527309142863652775827458140757283937989312113812937881378278620904232112712402442145287597062615243762800909837189567538052767496168131276131609125648660250341887099053869804889784054333387116862401410326831162287956531299881999107051313055341603731640782630947571061721346532932704316192557833256302542742387667798398220962438689140316346475941705157280877660288795765280412277386058746138961292944138102427382226547682715185927901767100380564080184923676040803217979015027366203348301061378599820718172816996428471018496255351337746641213702472902078136265983064582565675616322327008882987283241812692588930017054358028967064846094959289964420016005845884093521023480282912902234269402461491967157351043496194628789380391661027079507174516696919871216842067315510166375113845058071612455454739701185348256067660418856797897519324202506824626476534299410660781247549734194930696803775131423012343509832158298635275127799446240409628872536887033103735874611869134331504032100328446083140895464496709287080159065170640558150243117749521667029417335364714503975833260874966380109568220048252806693441398212130395515805896740720986625991686448822610362817449888179164353861353033327221681694904635500774394195784748868599652278524023159586057149790985147027156181210003059898778358443474076470014026585205056876748575024426653690450732148573284271240339509389838564632265549590052615513305153639260857055196950080424336918191948284931210594530238131706776202357754709059897355415930388561972155542546240910946446928714276313090622637316696212702176023994427995998739845009593509697831358015534881702671247867572043517327143073611701090117880324738770272347924259755992553151025639560885701071221793100044201438698998341669156266540439890033664516872016779836904211633096607471987102279007850861790454423410377942057566322416211708658025099200335514320625887204749220549864662246220306439018008793012395550743193654596362122324665587450906282040529309693535195216483769912107662137991949618418293940964613838423205507922019760943426887355750987562519201951798673568784930242865617361585794315143376370609379818628942107337932969554266822519888654256334928792154018291620985499523864931366592555161186871475899910511644219233487261150735530916139024467646481795821887905967652487555116650428802709028422345257667038168006031527559811141126525215035142472273159105755336650195087069869323130910969622251253376603892510242703289730584091900991526126113260041702426029105425365225407180953331618214165478767793178147753765877454400092669405408623656087576821508578588716041168079944708779926743093121846078295743158126743763593178315785613344602117158260847669042830034169459096618925313079179184085746518478501923293387374185006874968890708191779740973736723094885343379134296172990636245790798168578353556163732402984736076687837044920309218578805790566172443554827065473020754083629737900963903196454703964687111991940371871533392514083490870496340389545039709991979506281566898486919931556844075756629160812685486844576355213908719133146310361902034808854913676420471514597475766859609492976710222208278294307444729236979475319240072760337098563861120227020236717983906402536025318422587678835168373857792172106587472077875375269856540504874297885349065473179540213734135870244441150733371988647991433920063379252298967123946338428551945635331660436642517630293798373370566644598946693531138497418962030655034012988444415167785364780669121374061081155919894235272751867846606734492601543792145999189126240172406743420185774045177596255145757460940135873016684591666726693881920094516264445743578318708582038797401991780265039937786167748974845915805730044494723280221824545185936656545700379121334908611450369269856596087843709049199345043259721457541531032326403405602382307895388648314018980364802214522079357714480213983240719198037553645714746141119611013056544956657582453064068268899657929217682252034746469868513348108239488587075431606640938194202147387763818330418998399807268366285849615896943733378328520647397675534176338633924778800674636064942580807315357943700172711753074608270381253422912302793757293594836790804131282383409715940889726532219432739877911845773389777095667371159486399221846656872927691758842530876201797003779162780765999990822457614271508979242131434899001434052005156505137387039061164676045906319887732913562325724717582851434039773927194522035937931554592490458268162227284258354585142356351756178845086531652295650338636284970122865141279355678501317138475468440332706986720579494449316149747103533458474404117541755598098599028333835162851581863993891833728465783574752195220194404297031704703298097284677567892774374344788322209170033864730483886648733469616219587069530164521520979562068444555346684559090099470333677913995384862822604549624592698378872162137710320005029754131103135871309561414948987100788094706011401467328386231742853327525137423163362235654116111880661142434946994886060410528079027028852205027096723971545760783537376556748037743734969140141221588392511739692463634152918900621912971528985072625772105128499616656735571969337526202129696922108432683998482204945079648873662420547934149856655633454295643082293532174112362130085491607786641232228157355133084360321952949211134043696789150934058607231236541545069122616595021060065686979482994077880189732736113810720798018977216843209642073181991680194110549279821498045424644162346764414223117111991231512112262383565115523475516069543322863538316710336037421881987536750147114043107512918757626989783258531509608744420432686848339411009147982638874983990191518801547148195305799039566625116648601048428902354484413705451962364495052647178828286688732191565106002500413572799309240078016865211255118971401738385425026774258421804684229157034912591023480127657277992823105270242677160814825794347176985552016201379106253760801742335660530981563517109716271665555092928770011592431199156851167572202130904740647359966834411696584252903643278107929684089487733673182382309698620297946688680096238548166926811644938828379775762765095251519039074653998112278945628272303430931156518582303210153990497820840374074991162775347111980583694167823503449862570478529121643632799906608191427633108086223651582120034914087112874683587480180837311152728719068134112614668000074854154440064004492103786891625132212035077867967130830886495478459698369770913352897171354365096632779736685194101099259943999338006907011800352230819271811936482354864605200319977364864502841796469958817180479395639694513221126377024618419904892795479818345263455352205813943252323153661862189386648025040080274967486985757961395560381071826970219122998577577783412685483526246480819783939372190609936987553531640096783636159845370979343326620840571621978181212591244436319099104920798686626772703591093890346813279999400279122981430226457785814576265462841337329325465256846726553066498507811229326181322258762057147317833231321288684911367831592572649046372993640838495982018270725291507944907795687776108972119715871619896171763417587146869484411172785034418184119199406944856313703503791495385959110527858959462975496924289182188403947856218234805003046496575389782443576901544005427730976583382241096119917193176743622603804401733209294520404241666443205058721456626517914217722517150815183951619380389988191219602982864022391304921350791275689129090549524055663883875943676379696432330991608011533127766678778491001526334675682558753215643647880229862791973127925138261082882595155639884995038642321595000069150466669285991198581987425544818420291778596187071798479658383517701184472352630661353443231909837672611406470442858153988493047619662300726087296796761670450857665083648075279408209255674916781076879850738866927375704084460920201318667925360216925653586280607223987184165174781583354842930220964667823341269334236080170206394950920560211835935986079142314231674960123958184409702704548696022352603797808220875365170290566846084264623864452836207071665778481684884665721198657674894390402081721517565162082782199496408541794627233767475766895661480244348519650142571287951193819189669771412850715379291731871586962179590860119709324348054665854160391458795347699852897944070513252167593746542913565631390020469683802704424927284797151079030480981593277159746592400251958696493373667716653597895696981753538537318580194629643024118539533042954074708281594514227206344608383299550419990728631676030453881181720177458628305396844445140674692395829399491038851878801113310257507490180480317557895374240154969885526939579131876237212187620722486513984832995514751509245638698708692600042981378560782133267568644310294637418216782892829052003124584869683040559168821096701117600847851712760682242605506886717820457921650628913266125125002027458005671483958269908996972222935757475115166319225859564745532496110166930133079404616095392189391446743552813459805628301995572447524063468095436132412870474592737949365945685381135442582271613949620436906388431072653583881254683122637235508548084856661420917422592551550169113516660409521957090757985092632140580825724223313943700616731625001195908476014098140138298474944473204260127532767387948756825914775954981271211048013253165453719568351563277554410274573735833217670883261864408590624806371412235111032498681475449962436427113538397743183118691547292734771130910394417351650986090806108620901259381652706059632738916347221599825939184918180662743312232709759904775051867946496762140251616422724438603094836479229665807226553688847768778201758750982156747108772230164464748701493557296039885832857582874550888653991884060184045024671733609016296533221233916515792912900081819092864457017102991299977440290008683863256628257787419869606840892447730501847694653592089048812564716752214717274211757360214585456442840485559638790875772064026604423956407246269954293370895916281287687087978192956937123519511327894478095224968145975243612069550837580122952246778024043639471918168621559390763147215903200967992615670191249080598944122871901052383041765551400358739877289045635275946280612357280458802199446857355839072244492958081639339769541140590185092953446665871406096536470955039500879888243754329428269928488223938103994690736265763953864912668618347500855039244917278942226962537216517029574112424458755176232954152296720058173845572834466376978193569069846747500142662638286861537847158240244746117026816069882995461570436934291219420293398885424817342910683370759785239131336303382996435932442250503063819542605691785500011374867647027324094028573014872775652488472700831706550530818968249065125126484212532951816064927667005514116508723344624439239748672678181385016814013641320098006869964554586793688726797684803994413213614132451436475432976555290517329028719970574950854059899581007181237317765660932889770836611301037144282130745237498388163943022053889768645376781520668137402778164693680878346709969763603606471979847387122111068560766351738351380396771958333639154978238794737727707519382621413299790132860309407114772929139735568691238114198300713415872699964855832269981520537743242582200054867655943789937759226812065492915327512221180434280866104283833511675469860037277793420485172053308703388121534640980749242241315584803469152422565123207237059703026013165300542273540244385429214687394487324416870624399717373113575881274903738452150429888043279848342848116926843489308429167883979203715187988805107362180359847982754098554258383799184786650645020675294868320353646092654456976972475755982958448004735223039021452610905079562476253105917397192572920449001299104457836760569836937263148132877854226596410283507468552053653954594296072964734204078111529819579261457702219567155300004896671869729870426666586919329655798936622130562676855248803880160784593859074497539747705072249529040424724412681292558366611216643917743239533017987310105745531626578959193429408657544747358810860587598332292019688022220429852897285374091188097512401780785651622330718311330074917126231613259279409452389949486594908176879083698048056423105330778434472072911717956522937763054240213982408681062752479359141737553164999716899968795173578858344726931001429692247691388587455742238964637510640468754809589721751486631562097637375602496039556331078574446008885695948837400722211472274336710817291020871382419532330937769100713015769442690024456456163794526610233406021759546853017017859655505201482957583223135147687256513527699012312804059929324073560726185993014397524894364003438854510254752526522406693527837649530065011496290835906260172581544336859646047430834481029797754716982795011114640378011157582998915984771375304205134659776950795377055941607814091313435794980162480609993862347264394483597695082031993064310519375720169711273797180655209432156966474621750038676635103592461985142987687727815072554553398411234444013071906514572429246315797189747627595865647540553227529523591653348749610829638373468577393092242505713141626165524128803796707260314799821259267859277549803458028164606725398836150337160537974732303998761823028301400480639780971463108302520415861244534451226760262119737467306795630436193551204815073316905432040244013615615900726056206328460667956595096393871717085291202353003409674591759236504825588278801539001133477067549315311547844246781511175456942293582567997163771049542113007970351750158071814324933821613313158351060205172609871463112962282346669565173694855239555541225486174864501409816011688418537084958313270048672838171706633500086698097414451361132565383131428869366056025714749013979568631518274625274435389889716238186975253575565125548057233716457116607271126636134299443995130430931668882185457823205183416355542954788867592363833319681939138857133247552935156285233238385796421730734541541154111049682355469334876412952639272356872114642617865005149086551837037267536769123810880844065961164174221098698271952961104908502516006758108787536548482787172806503900749724456240456755320623093410531599965983947301038182675832428030433069763740786113706037863869811509116957868824894235314513514973349255025331120640310465596106201945769389814361459394573638009448735887873128932619908188986330233873603204381754498079328675403390785245752718280029864065793559955587335971367750936807478709199292096633269542576803832718776583638047500307010640594555640906785492410431429297548561501348494917839227421808769610147709447776318191089919177681017020626651495739898078881802992107613516902623211271837544190337639772618988573934986910414510851342252864881492364300213579900312696341888736856439176659723569823168895901764607798392494677071714185773936262833674567997313673717535266088581996655176370547795355467199454374850504866088826313376801353901381966347852459795657108143006142564587852685012342243722116190374952087021841249855072959158321288282116827185330183166601959119805646763120160512283664516126137851876532320256427143641670253273236856570901427013985787566983700853430547735451110216727104893157535617768901982859639154882351974692750288839910109268803322036910551202324975132069527768007774969444948501640159682742809500617410011605333177814484213537870483281751763308385904884811727012053866773374131151136231814218425638131159061641991883023264904714979562687102109020360101741791134843058184843802295028398881117380429758160510675503485927969666482093837185551933285852878703719850171545866677514028536139637896237332216980027699342826505160628805370516321350291378061530880790875024459088522026081595299194366405504267929116735269305283733123169900233748885422262807736119520616827270059483363941051630297925483359017554236354308028911235451205022497246783979233827635144214042954567373972051881817133184429085931295891859393262449363435368937466958553320557312814320180427811600563857307112225528902721364020126707513469576157361521230331132626281988074019703975368142199749024105720569985975057390663084688918289409207770462428631518391786268989884439540603151212397274262048829403548161446551783209060706775597646645665791995134256062150670115469017832192776175107965779727393648682104175782036246259793654964449137986460213537690371541426995570853115974824673638020831853321462172324725453220914344493545347372337125475508622908972661526281562501615810931720117409214471204653615190441950342081088162186855046540898373543085022765393302813391970813962846299086110188780369068594271469250071311447950145702195143570629622227475157066862166457273931477142441484809065754273739759537961194606152492950325239182798796477734891115589794924143874964077230973641609983211680870058464630207971380643723058491980702529380793686120149450578598982743345520049090503856908104046953798462329020986594548514339885795050086383048348151260787373306940377871929854518599162541625175848044493290243523830649490087802981765014002205920231645483488585052346383699666294843015873399542262712091097837620904551080310749319239611996516808446499244194832770487614050469639627226074716291779091151059462005077517378971540352542369140502558642422205953672769841469702941331983953503934440339378940020111113759056399053845861580296404790551957200253550620243765665406144439252841614895908359304421263079734192072616297918889533267069744411404367598974320909001822352170909057323346915172613733706773085508962470099931534679460242340760354545546817509048644884820225923208859807576515688634066802173430834464362476615016517160310038490098966098729120049373375973359634519248136924298919025718253527673557780325955431264091750431692008961321823945305243744207702999338278739990461624915980808927089796918765616200232355213258132369618141829232660060117121857981563557361364054596792981251468668131496059018189008154670103843084328124615641052445385133452067228638723753383835548095351550325975749573214242519491634958210383892383594581541589610411544146902247611150677490361248576956016418094025340843721706638006175362109585017820010726826354613813698752431912532519690772914928208348351118414466609277366462703776879576955580981209184408057276675227060363933869658013181710686125464600285551870638636478429733897152983223954176137961267386588081203216614570925213039316663452590500480473021014730855222818596901128764394019993664776028885653998810733360268102818318418243355733438140808134204393989042386538743299768710765331407075861553385382730121086706089339194954754723498855914741263233457006730905714837437634434627251758799106488400189361903002571660146333481076778723972843355802785091511104452767704107815343350720143383183839764758602683960812343864983102224472089021141716959483694933567028428929428919140786914945539320018684895820050604151797011136796563584522272100200943115841356560048072826301881398098837967568072609700850223528673793629092899015573873263657233779142025863389275677235742394054684997481317321507860731587911539524940180606307562834738098149493334223392684282412799722216464294124968315416101326650603113089647637335098439972531603769734752390242450776796482728002074641880423832974529942780911108163061831482411603552570488049955213000641454913175496338461914464575614209218725581102094538402647984304390060166580739577631207491993683902220474333542032918019059865839168168902361352970690230534830654627793357077506569652653006702711631303650945587310901573075591611119918593805507064565856712071526526665747635263038300106022692661358756698897773720885580641129918172082716034391764633237325165160053973791297438544131652959101491703587529221407572381929326420009500944555233684088936812763487935004024399409903081012338703199161650558314164945799115022323279196614591842810899398852204796079142627723576852292907239409817686690046336340912341020241169694104800022047435443563375960036238778253498485906533877301351643733466406743552135879582304928176501632005101731961908832499297748263494242298041886924321169587611014436808176540401395788511814426377471668386627463344037681597897364607021290438584287224049149776528807577438561356452767743152412477342423772839728101990241903712182181087008498297494918740731220763030767908264398943627385146097945580971915406624350532162434883871366121740105091687798997121227431168062440876239900195085660761690118151993840586617486763434243164553135591485658117510377621571006132419192198290145407212893934324023661431681523565839532320990653934428205205417166561792234850015196519372775340606809401516205825149165107271395064852352664475387917336080731459067711286464428405139742600037108572259611817326402394118601321247387844554734966297745059014181104662562043384677299157284667267022266863107818760165324864058852809083390227856905636437024254054436284560752426388658337881125611364700736856212056812417527208915747499548816334815257000210816430465051452656246801633481494586607773294803527824371875622439000981266113847057976640891328719896242742387340754547776768067828356515494967782746233210097459279136422713091303031093999131534851492822652963321641132409170540061352338378815074249041957333982497757233030847170997027204265881401541211951545313061465899185210178057097128960886039844187596688383847676836329072661408431560631708082508818317374129825853268123196435972511045316915150928912938490869157032848906812467321133941785138257292714989378735418697844679525052705538393410190182741303214908291584389915050069050386877933548077409118063143721132165300955018590990148001841684418296835879401190365759314186442336210831175201088441759434993627422380860000221470068310805528176511275861439074233676304327746538553492619231004864816891739065562548269930149456298479574267626594710571243154947922736526102647982067296208650410428671795987591815192097590716842677750973838655353375319931857285722414846354717457801303523132430922005242817573720954717490128576642991407564482758421049254992364753335905928003766472772587021457437723110535816853228469058817122245022633600869449269958768560839796012186602112521140209345099062149842287850193710278613597278667894293908153412290136579828157382708926125911312047031450991347386313062720127727434759156897856006057854393622778460392032107174048753422237675163475265615908338685378738847930225488294378509328036019099714082562235659940385133769921417701833290147103616421986352330519301659790451292217087727605396608469486185348405553987929009091620940145230884739014784201342468962523940198907346746088540678711694203467143420608662988822657115447835337998668180877052761312513688433105098585183657749852077098472278813674809299193564381728163739266573407650624237019712824167391296972390981257404971153365304378050145469456171290352790095669411055466716234658341349988550501265888412240143367722477465318473938680501611392704434797361159526138272255155848220383431245293254624178389905510611620538409185592218821465140394300684805605891145783565547988286025331925505742918944369336691179186262410080810654415691725334285760032927731590150255995485233360258832065903466359413782424858959364464839925688164912189929810391487342661610610457636662104874387644838858772886395146668191166946718593941659335000359263914023272310345629647139866169245283158330458910069369943003392212462721450985177421876427097199692033237108098632856861415979025730819573632689266231007322304164648379096966849695962531756604101198885487435007840948855549285196230385336790579051080227069394757306255031054471942876596318914674384640598975971357836718978119556531766896454315796479102504064624321926429148777885995559066799991665673357121677900620043494529870306232080114768926790888715209705298216283114790059933782707615678295820982567474321004748183789317460222890548931828446919180150461922845993723095647634339104944533279121944623431883761016452722724280339732586739567349904564305399334113281950086342895338264634930301000769030939795875997816585808077904289904386558747504258657799610112266492716349412567362287476845947448781864531205812579648969852571134596641686599434226073200372535218934345841950060073461687723745396265865059444988301845038120366215979914054562831115238888852484459370494990465933524924190346929944898116346772843672925292309566692917434500021952805166808944856582625528356339139158813678837000177487996039188093654200834632385750706422119141975060960708251740074386252120835924190871789574700575969700223618024828805769207876684832456084379999722844360595724763752844375955252591363299598250971568156493398258017352813016485406237889997737885079967160135374222359826276987158472753358843592292475754667890328372033483971503921273789369268120588838006385797546096417780169538967496454154632103214994581810547896564540881711407339469369595124748913859046545037157904701350601676358290427976617452036738850695968458637397659464759474124010663405085386563366856388464838494856381619851240531624818696180105611812242275164138335691453515064971971735413056212078549259378425552938099812252246949247758424565248063248426767382406065791659081386839011701382649666615302609891808989092300445306532829727752861669018663838559140829426954508343891498354103231607049479472126074425762425888866895044602641242172152085182052156011968699259787546693466253711019718521511998285854466548791501306365272020829321628676404979322436559423781804963283556296929980534442982559714896283543626831467502840416818424748455017906958602616287948790738646138403685497262937460065555103270036657772101350336012748504144967490202633843133367410712651243220820927292260478782004191029081524635665317072086480631435357980366912622519899481332990923712868542582293978714623516492984281141138129142099465885925159788754797538836853491762027601785031149626761903130418496790411841906343535841546232583027169423532058519037496110239698528790621064898812595535437024163599839748711245169225556223899862875244421593000537500084967002772259784480605152007945298487816718361623017649926603845747370446860197476103262449815270400255048767200011273615146314113329219239934971853292507144699279191672760749517346761325209810471566202359137451464355538676216643945436262691416843282247717901201965926102224873057458446464992108643377883422915751160915248032174381488568932319641898057825293748487607295668304667237163575710386389047481275554071815030762610259215339627311269956309597704238563149832939826054791565226345821323469099714330932127832856785231244708939167260353777370242514623140750066417971310263690099206106500343307768508125987557832602453185599604972802234953157684278424460702294724136542104359484381477986044603741528041048785067502557403538425164982957471381659640140804443252642396405217143059501995911812876978961366715577009764662731726270717756528730899016244274530267507977017587626158522486597701096883291692999392775130089233307260922454487504233146481900331187897390491201285927564111115848522095207399813220102627918544310904111421969132945869922596358460321967993362092905955775352454975649204282437666280504304060652648444576036751500781866808913238853934684226226105190405831357852272386528967397886099668391946050481556558270858527297249305659171607731160941634657784145339854248942831743100717559715417984365881371213880988456226775754578671231133305633624554955955910999400553646032301239924775848575508075535766550406504561241023958167337153518688663416385655064863487523850356609290701132122163186849855946925566482920049828035278807041421035204540156085107680680749764644983779563795988074094496890896457420181118093096822376569280778185892172823446514621393693354286656731702572398900886639297222391859967209556059043570135091426139158779272615044021977462226330421362379728909289766380814539744698803369185829608634364489635573137489076983318679333087143104235115640215537706255840284281459955575908605301540142548708209846872781260077893013423898132135702739446958073685899072888379369068515705494807009002014971340891598373572212157768553533540085565849916174006914779232465204613553842786550775784948632240881579226490858425134909586793641585829918856608579588267335767883689948557037193393202561665981177798636402782513386878957659095840897318016632322066644550003191482968545256978247473924490844756395279357190477013267574823407151459118233499760600202743576036191674370262750065671935928864662833508532938074056301645394390770524556564108055378383017186370242730888762637529040758243921117642356573313585665670856243134838607141651642942264702362225926322976201273792461167771906899409170304324225479208209675846250403936782016216979976456913816899917600252496032183335276657647895209025635392365885007522527831800270256701992566931939445525060793498707500303017945286488254978823410232394448459191975620389144927701624239561473404683653208980133016647249383284006096487177963028472485088245394178106851488307768163573325609654533171290830402036004401499457427634867211879219772000081245742777311559762191096071204521489032574888499605072498614795344570459046802001411983765503942145499139623912914141669858048651562623230203443684860427188067566358000980828014909367810939855511908356967253473908746009640667998771063938465903482083693194054256511064549921333548573719632778709878446354020141394062377096076961835444069193793659513435391285233291941009337759576331880790822951862542987563264518723157145293144267878925807313577565467841053321497938617599982357433993317877210783348038540282344251715184163774605373711886410437660379033149762689106748028245703663355161760630539920871037209056042732823615575850713540656206396355826210224153022906240951328337321730057695730499692106378368065754743820940500708857504345501719531904851676403848219308933554976943037369152058620400783623503182153907305079516235154850107204200634613154771921081708446226178860792017803313618043053302388639980678537784661657432820819904588391145868075013128119806477064069820376284091755346225790282982266900268296998766584797790440024311493404728585646655366805985765801799905008035016157722060191755272419301402014160834759853008013358364443398230559342586905410691520143069838586733235135134705735371549049154220380276413471778399094727315901552703054032836192710518016633696789220524435472976085605768942065556616265803598668343359791558129076561802355776609580641303564072419038196719003273045557353375184747012524083988868134900459297872042156175776479570879335626688450094253678091670426922280247876800925275355754166807475587656475108181211666854979675612027995675204011790199130326646461688689534064249439619980913473444172266182746034902131580807665870556335155146664168335403331516886399160376209552880390226673714292432773328968577616257399525028003992557078241252667355263760689356855981173183930099810896842201920666544532679945356014307217611993219058621826941877836839169053480563233261436915457978147815093558080783617060612790878882131633736624997046222656898176310127528769304950706297393790741328054773044678025777664417531365240692898900577531524250134172737897894160727348084758068601998151376297565321067183792710905315296414415674887578647319935768651091728206908100949667094821515488681785348205805882138653789281576946274035299388134563933295156902858027833456760130500767706775830882130738155320926892934340515975475152338031497543945653443463813803019598121009449073031250194355013848238846385957322704706844801415097043697652175257957989883739753050569427238994427940962597757087577427445679385791124853276741533620699171728853753114290878353806476023285304678565799109468814696975537317170611476326029190066264510218937708710408570537409723006255595805321058909194214521988231694182155202854091639672727560218134853875863876763729937033297272582089125477610038618588340075978837261638107881444089154478935961233485538565571807687375605751487389487361359081433220403939434700472750855778085557437047445720867592683789357706003171502151742738709402216795249437273918469010255241342185354794345701994966068711148073803263163311891195043925311676144909675331827247613844554905749937277845825173710481193712095485535292029913281330217831206175353664820981546307903300876551814062782789351233305946887172176687276207306298998086827702224510786157847765246795280939995172030885680577536547604384657488129354143913578456501749446627311998975490221240288667764436799822380785624986886256046339783445887916059621412834414026042452077427260786914584480868841396916022727102545383301671901857384177537946064691217234033752389414106109678356752184904593225532520684227867505346390250402862231574475537901786676926950035755361919401136584580550426593916833776335762876723514145513792094712868327786114431657298391209839142146354034321110994674896244209616663083192454764149785983829410557616116539070291372396370976569726505402086871280771832750530791216171217887269829747363699741927717661696883751614983661491690913142612631043310646538541614547664291146082923243646060301681481266493159398663740396417698958474557908065926012079434690665495994016147234542714164016898885498253728672779095616843276970673993927677989164303861088187125977411116870056094972101901088397027626063629078263777438488832861686674546965629594320331636524197463519510214393280573053685672186378115376899651323596253271851770856948822754095363585522811864389605866133863827036154235624735834036783933165654009838037293965082837497091331245094578260842271661281924411113146089154058830555703074563842679160195866630546601397837831003217199917333409373427899581065207958785893348314852164179419842670600253560386471403855096963967213278284155756585949669438202675650069535540218667230233662863360982717910968065051205613519821857848815955835807573600567369771098976545861871481098726713701110378953388653502003237652282947992688910417519334309722302325256181925526918622190699614885410240764462704627696680428901839615177796882944546792954278391042149784924277526885556866602874056683652179870114214896562840393378069496560961572524718111321128836226163223276253951213736772362784611290277304927924061489734071448665264760394907855664881075298046892231798525491257247046435865686242362108389391346896350987542934566576555728709552024573574909161643570627552164266633399587954627097741669947630925976968006957054471421833284270143628111985388678143666047343537363712825995179375887150422880957337680260107320277104252027309849567805521580620036888665902629948946042837449496639732486658154766340536205848605861902286945939477415339769160821955206305351957744458156345640319159260247541924359653604917169000749297956829535451145196252420886330324253740372255137959071393981893423270952428611613218454983286977865888905802370734997109187380052254992280012538119367001248603526200030256127504387408160773577807752523900165720129487046026786012172815162232401382493530150064378319868030154814444188847174813244046702203229755078252572341747171890546589975252633355263626832269293901093334750790082845419532963818081568645263304418260955290608187702813801584792831492570209966928369013569410224072772236916420094590415444187847842271250711060606018341245202549335738727138444016287802085032904581128473665570514508120249072355218517742138079760967851610701477279958590897843211068613450945534483941844643034937460935312196529642374288306235904381449030621341291439937071297055286662459298919180226293490334559413547726159004273548059631632826701747464562301037388473658400734917925270121973214702479159293260851593570129871977857314242826654126085746564080110996438062937814114490398371774091213130097731632766660119341253576545258286670751227421739680181793816818400324143818678691288407725614708794682575221276210801947155343811215122486342965565664460608801944986250923710945389777320460627608484897563918652861486653801776212180028821775209057990765059237176276441821247843519797638483507134150637695838479552054201123657963969756458723622645572331561780583904389273492435269045599845744712870856225440252263088271122724948498385503008018776172311879443186343964009624741760650651963829959473861798783114590849704250526724676897929470099689270098925640854636275562466884200390784606280080032147992842316093799281196113572921510232938491750349999815120958813909841402973070424742800554905728227730598056674360655907649271178085093695666697825506758270376139911940956794854950542330994227403748199584217257404387904701981479796709551069162325162370601726996033345105565708884022214058819599868297423226992669870525781784926479217586840521944551242230980926784184257176371468226745731076993871042520744532510021436429818385175513624650900918033306557467141621690890020510273307562905004237022109627595777192579953781947705386813876198281448153399506464688034012313600005688174316246836746856420721801937699081598750985997558786926505053750284044993406272240954231988691912080178891531418512739414732579274310203093264534939741042678632283196766362657362024692771750193841315395908207594135265522008187624790690485479346415852427475710716438873833621425421844188363215808264097898107527142019087033176721212032159316525483768928750509156587766193584545906084224575011293375533468653873018784690771205525514301300876777174996586482187072340939522281283510634704447488201029006141631913018199627637653342169726067803462606774786846800038182273074636807537980568369617973421647695057364833200046127540875271777511655888602687882745240741158205559235148918941389792949109620963468157334971706802658512301608242218112655251437601355507165032104919651882586713543022300329698230852005882182473345980679089588454078960923329905519007050105620170617895509213094133787142096081428430109066322060160557851907607049943803633255672223578533193920791512041383322382606921714202022762962346281974140030776801838825031184375052657409194074656548045066868888785464210243172557003591097313995160801280277828137116804016843736173263156481631085734322942910064467128002450778682228364664227043730890609603251024119467919771478361036435769819572556515168899099384886548643122875600130595385655551482613858995499784579966509160626197412735424844431392698129437359704944053183971913017443422579424349919672446140936406449288620456547243025843601482520616826584939642321954802055838887463034273848561504968607422960808939977113872067136895490350388610168050206986574474844457094674730011723425497963214380385042509188056795668207570261823800926895645462755524224412686365140614755270318344081939819441481815108137409636244594326164338576874185762116493792419432076460548465732091641386880682815352332996493600433927734589107465424930066584137520312773847842356220905165245258148918558679612841271393172476786313197925421280376354591131314011638994521299334512315344423075742384738812576850869033903099869456570929398966500680957150883538578445985512679103664639421391358766995960783710923357718881803173829786906911367137612650220953090334911909730468795441941208159294922190738683235696365891578172255399736144101465145435736028540039178041020206217483142267855960799234348271459952000789648783328498417317957237277817284751630593124465599495254102139375751428833365349138935921543530746299762772535418884653768278892357260063042029856186733203088512425457625029422071884303641752737011737188724130887193027904029514555025590121952708759503103918230421998187354952922658922598145588717053047791549601729457967900009809078772686241515362593072367721224851055961568640644068957466284645528590940824977418068991453998979907301189911562193232506492163959130324386196065320046087611872298393574591258868382783598350695852066752520387118907417310241559035130603817791962676691263787564986111503794615335491111351405021514197303434593128599291265326941828224697900805444348141952474258229923835415412801847941121782025557010500227058339806762190221491768381091015915465221064887841188218267501086943894733673042742637632896000572610995209093927219602029026428715064806310593863653451762218764486661556338017608196556916533364878370586440029194266975543265493006552504011765739091283169391731328112435456150360594822555706185584763872953796138172656789020818803183951758792404491252949776132499825033675999150993122798257464438923310947517818093165183363778793963699951393734348861925879631031541200118342717201183993875979435359825277990779633841878983975143759006328030798757902090569766189308126264767300459347829499497067092680593492998458691694169064729234950248816983346236193833165658223323139016917920696568436463367158901322959396316025861320007784862249069533196772928284962867331452802514653183698657061320245321088647071929413743044930612229094218261708390061696951318919350522687888384168628507706965301564025217163737030896038375867254387284834934482099581431134528013120295316182559426309896598293489702055422767339575982858319977527049587573788061458535730407080159688105931037260568882059285755560154900966918155741198168136572935736237466110786124450702069128980725295428858578862557322732202451306517178370480197624628757048268314552947442212841491287990141766936281277672181433269878829374641180224001198938999094286058663790311882344485911264229125724177030237894578306710228112028842581010902706762329056470811770548883507646302596982645478498997601415815042148650588689525647875954679661482367024327455315462027299878602348623101061066773188802370573851612026474517253079632504165740103844304703524291721559290013901091879897137714689081854356880287976339312886206151303445242573981449109917230524887829097003712035637590487433531931187465456468214247452756553523164720012136642739985286845905514409709053291239359094271658720777174642309265406686606469328434489814629102503034560893291815416259743098527149205123351562344533004686662688440893756946456982414021379361208358418300242665686131081494712194191467534719807450764423537566500250930322021258336699265309969943315645885225885759881576360336615091098070335457712998005453314491320624946807184203532313916393939168875314981602250719312541806395736055998771931925903259552612734009991476958086931917241796578892263522919191152701741120597844124098866387779979257110115192558463559035321059783247047712261932017993427510387370079357210976946406950945737190472707156585678270460411657956387022354748385332351365159111871314316383019713334905825516432780251891358647035895504409255381996717301082771593689585190633161484250361078676596603299260872400967244388256703604192451077329644686185983475382289829345684996160817250311910056189090249044457885520592414320278220119074306437412528170074677522828158478906937570402447707097236242652826206270040173640497582948867378523814286805573139995328168987785253429295604224843884640254480609597735881756167361171136402151063495882362791183456253009141929481413928804162994047417615746771141146083618084813740089333579125428736961506825033488255992734543592814847138746273476479444542492060874542289015335190631456834533399460748999212554304497027209236585520937332751801207686281253496393216539377235577565180341203391873399090881557719814838779639078128184452263253027978362728238757610438285444639755521551847450975968064686639667860733527020181633188904538708949752614749475923690595854850289661123681284351699373802222112557279424276445375744111023395252436896792931530725278285203684338445306833258952146384178066884646001835594425333008069561299398140864595720931674131233093861922445536068728943074606855354387308041393529366780526198813349771291733364059478696664847077828395975870109507413664840258473907859223588030563696983771998712782908645104625132832108666230918289266477415323106340505444362240829392292131662929809880506494509426849133973913609818559744712979794906348707780219899515781018729192237917836845801588470670343196270853919347218697926224502822094964365421806375619954332107971318523169389645119297579453132394466772231532886197429797670468727732371512439495257471307897866118001279890023804070576995737443096404498231660804304544977957346675258153631716079153748461375403845462708711047368649327587872746665054358358545250205718979524372485549307680776541594070353565745923092116547119306940906228346465369524458883207617417604965266233380673699066413814983042888351287170367767805339188775460644100629954505378301891396061064183046614399237332364862617651898844905883065415500353540032737798533540997859452104303521145508120674111036688604474690199431974802069632015523482856875267937801189073590008779742913032538201085047774743591119196651725996940804936404054621445972322020771335269087284409786498334912999816984696971666534400401436514816076022361545335444252869609538764035010646088043758680798796573340633334022874828129602639566404329134260311934943256747850314619383993837138940698317427986640229792452423971337918072554237114150680273417802634790172213285218684297296218173895154913077038668271474550536919148158745679402115066424274574095487398845020028562422946262677628776336248786220687085275732947524925272129393886953584219846691359066081114204248700708058211341469201002393471529798930512147368800797194546535289143842536237631254568774908877533661971981254581026658269463795070195438868522871322363688114767416191489073713471317198270955613573373014713223227823684221739639174268382227581112940490610847838412806582101567651224451324808669664167038204272890767204177284168236593081242639590346038512132249459750110102972767465789521979437916837339769024916291229508729922647861598281191390670052307195964978092839287445308713913652154643785192808469641891817328614063516300877809016285384969853797501328267003884360945447647578234159505250244900312495983458462169761201532582011131344040908600679759425470079385515655658386498058836957854648341284914181269230228447956640136967841314289946723117857402644698735983766057549948273437544817602352472807300289420420393054613493506570496262083088133633308761413707028735389229290457269607957484119080010919631687418173984527388366115264122564228822194491623285645165004009498291228968813091991436702602318979027022167966013951370140116877639469703420133990217806185356515898728341598666751091980935033560769777455964783906758891837920971743797791241917970336055592066209969032204569461881183472471965155510213931570144139538607039014142311509644993936830029149987113284077828803675735136725790730918869046787312867407775038415697694360666396328624348571936468377252244368504300641496303017621040066393273951002681764948072209824509586585507192324254034089348432645535687744989586819933225656595850126360807128321474290649007380124006911796623695255383269555722051310931987382010230464524521195282775608921699459751245860086113948759182646447651836771777969738919285798029676701476982105573129717624415328112753147113212827110573869659542039880852480769792471963181097170260601617956891222277732642822205410793315849410231111302847969062276692502781994348606807159272001800665870623797639453806167480408128232263614993748851333667319487944669337459851491993311096514453047261984337890552997033761578732824139809197219254703129396585070745199194706175284091748763233773722361042856470836000887837885777983554914308980943668233597934310581009106502919061787182038001257625514211906105981172033708987297804138578678550982684590622941966771514142830036302066845367504794414715846209506246902421841904345119635015229212176226326017619221027699279576179897538984542474880891322011576734320170593049693778710384806683281852345948887589523916301575798136734867752539438671866771282199259010445757900203113367372377579236384099223952542689269264547937772912668843565639881610025245593620648104790497695808919053495335303101564998553171031416728913497971882666315048728590119786618228814423007679978124924613864486194847056746503429386967806300930309481792033454488895352502761457385474557907802872189018921710494071340514841626295313440771246694197569157607282252058785811089821063371297971975809878073846098779321007675268664334438906517050060395891301604303484452715131807986210966411349016796370779222496773270505653747333941158321136672590475048616440951038876277589801698695638864509258994813877394853588053218610987872712453636070561706429561177717271216096078512066904635184669288047375756847292098871417355841245500225781881053048854541204888371136732020691194718894375972828872193291940010436565461631128033414547613218806225306273288592715761651786714084337662593109870567832326565881081969744712233301088995711279059295790258234385147125276244549392257084283964869567973229903454174263057915551418498206219707641577117828679319102614027763469842153152488892136144172578967801466408472832078200274927741578103542713301763912471653115875986918260093835306410033875614989728140075277488259210634811161079355704810852862870197471201408414817451973487225586061196566026984818132053791570010333771622026779297819425998259897009631228258872270565785640882677416507448221314614333117431656290309244970967980623998063367193862260202464644012823471046383450274544510744629202705854692816646713833292080041371667089276404457335566357332932950811627124585583332955714992547631746506833360529481001747742425808349811138501384270634230063376161897858671192500722866715014020809270471807586950206128470759986366962269323894954143945507904256851436888260865249865071940950050197542874724749764043406322652810320628636708140738250722306737738668587250209875716364687346972638039964491237370024557302892632412576463737293037792349547938840320941947867362689253728514199566167822304598510802334003381283189007936037204926351321122762444548688834286338323954744083422817130957123998053638278042532242562705656864814537755665302663674086283034547906578237491679244729563391303727742247088063891418224248458459457406884178523750295196382851969711423886689464385624968798303231120403592946077645545682023019319229867293447705855848841325585247454009123811986948450311447888726382236722015170426224050621677042619108207112523148200792905351757034897272746663608030227820129826424369353672169218939665784582047108881086419380702324222449247161904867848789943762297291938577693906150044674643103976792836072173640612591314595646062578617319897592844693180947540622618234275660914285524911134374382265557822252659077623094766973188713253743984602346550098907762608150981633176189902788971505397376037296569408420866381096847387817289784854145706654102994354684704255014721084930570281657159464502295586371944769683756133926688691073347385674394783722140437003178451818598322175753917621863325415292939500055954825525130728471000141496723418806175967090363787827050923379608029317491140368019515266943662403855216338239757683260795064054511023377053327975862705623781593281999209262685663531756945210002023458149612400683446698537341234518715728739900249534500945302153215207520261300664389256918220719792528613735899514402338139378379773808293650972551973632592584810693241928050480519254234003472965935719151454906915727838102962474261249460595597001264915368121712136230597424729462495314364171147428473667835189102710520402353657227625780875419357919737404358454317370327144556117482341380469413668215794141806330108377839419132681772049389296672186537807248018187772871046026806990851937504692322593839610308723037762967286616817596013088819940505406163964759160082890046980487023216806033517452708188049070984323426295319108340435111705601520110573453753925157756836049926989153982176524256715816224038138370409095799173620821996333947376031948905689248885672591277816935515148299692627264009889517016436246010062016776185739980983331799703873232166981619397388505580095405609773270718160926004018759999495900123371516200901369907798339308308813142859172440736960593030424717813899259608860450540350668397262550208894196993055250255765618526256546999246292785614270172741080933444298425515854727749120383714532675326208426144081417265000785349340675517548826703235410314141469831614018451222947440320665582637332478680409610818004001933777299310081033576504075947063972494053102311094337379259227526002104217000708941956095442849545697222668773950145505034867382296227146825748360377997853026306354623490357344403165876687976086540156253896947246585908124228448614475909717506076141115191660844166199712791476701277417335771750218415013075567961115006561774125496028919743158139795358007288442809173277569393943637874014348464241325774607064009656360558550288423463004913722760074703299345550654073203073499137311317336871372168811708745310408798211629972232082069809024002299544270035968313842738812770027097066620722352107357920962973052605246434845385000760309898558675027499161890140427302932804050617020409401888739281382536600806658969552753652482555259223873818392435397926881805704171989100612874257331751427299758903422991975242506251980591757351498294366817280235106513719650136069639355495803519379159639040442947134604345515720450057652977524028468592379840206116041504411299350183407302213802455281074661190857270525779154645543502921393408475573356299216118953580491061217453447638786881709455891948049415210218078610647226644783209956999316802639386146798844945259015015004289689600886093540999036895234748494678679508982598643293923389192692838061986462426132031823211303823225072581821485733491103628301204758822023871585854159797442137096868769471311915930701198495893565591423091255642275799399661211152512463263368171568110834716905327086985436915804919499677527707997704080436828287192379389641943582532848985176326654033142669501584819076055236839697005869373134931335836943474684065584008456865787071128282860013707883092606918626920994512384531473150751858881148680668986056818384575021802735600113343518395272512496537649012477275423300557371849206734527259813908149201780173196205416436782364756157371951341615553658677081371995370096685324467003768922913678149525643763307541384379848215145500571624728370066388889646212654997832357083548255219336734273083421473961895829624454517311307861710583779774151274139260251387149355039984415182831672592435494146022961854002127819163574798617221051343444098402758309383342953294449051072000631321227675228310583260694810933940875880832461009594314752828055579166768481977675397880430403150975935222285141462386814526665646622112216469210814985930979477074597635967359088933805910836321635766376427074813025772610265479810236404945785347985297795924027462425232120225053984472201698967974414826523379780524307808168044521962768671830075184687395313869699789542737952761954071473176649850665346536512140357134822349838201750491817557401950101147697721536539657917580211802268347260885389111395507434917866504673695080758180814864639470281559126832703354306083568599813601325940323164368588189311807757204436886882700618963583956284126874101181644299294733037554261942763880336648824871881638715607629674755503428800438008211191989054098126930574488751882729218426043835016511928053989195054335887786192918894298501315608593395275432879494709906414051608023342318394445465719946353133016837886015683925689539846206516854096165923156602377169351520258694687123133141105662366687046720039466396876001207200715180164909499175102716398547514574404802949344971950374575884588256369075468935627729417016841366439821780228428989059549736099841962861517615744500281234853896293802286980251006592093163632143102157106206454293805714516252350927149635122224792182144107781114585977794840201008070850368870488039480795391299083909964773599718008714442775485591813152584884942266903421976829847848788327589249837156983056060636755844851140407195618859392063274804698787166301649693740278075615974460581496301641223607370417941338104288092425170363215381306109029257669553792970402729172049584530213362811342404384291724924037456585589766183533594436473651980297258276484488991322866876595184500314935025781325893507735760372456060554279220091288958040628237393358976262997726937691653603464548110753758089321345715352858671803291102042090573268682178047774612603519259225738844750245516619519325278266535015550376380637450247983632116314780021828053660592149918026162485385268552255767878813462315659474531508342013444791410792910363129785616660453005808476506033628200520761049865931013403108293791290988752314002401076807924874508168488576076288057865676901519303141215826002369181658607573670898559521626839403711598807416307857984090515012323203942019794131875108958131071636528884762063184465223146530656705162975137048459622898457203344765861397545941248126727560262174279169501126001245086107861407347734269603619847507076916534304647289875194121145874334500080173177788213140039545648025303847929985653308666980752717395336145900059010154978176845972259106165089533913972816327497638415289988334636564452870224903536226432872315697666256759874363725248925863630954916329259679100260942071715264713438506983551600533888737311212471849759503555331177449230669528425121413667036910878082532377422857785821071656826668296816815060099101226924610813873868586741293968260466063635015008567538380480682190617925185239207453022949478532109557341155876514627718989174123983771321208180386944359534929568231668614870469521423089563427892262977632062759809531883519116444005245792434201727979450886629690716139059046835440975105885736235929517520431248273893954574453926341362371049156093294419211092589687192370454692095766298968897725598703988458586346239388085309021911289557117388979559274511488870322009370311170539479733305237209622967653593225899658139625346045939239016119532737310265913530667024887325483044309472335484834010049528681364523304672060633179238028034858263655405931597621714502799964858365853993333065331230814066208697515644061170309825849851747587128584662407268696131797980608530323626034402401174748133061212356436135866616755235174028172248839891789249762791947809744844839269351923509620766039754000799304562455019533983222244377711375807664362993086213653552697367036790497318754031450699689545202046154725531807612151190079006535089841054453738086519531043154717142199750459355628881172824116483379871501920013038251131918368547442146662775163640658597375412810031491498588704461588555276817894571993158705343723315119906529803322798844269286065540085573316820365298028692537986830474414248187157553861029802217532401893420806415660460082950694219569556393399259727267546869460913797517989898163785262097983079930564897575949872882163904507896342803732339491143322902951432170565310403035580935513224274361797051184718398891255294415957181316242255326468469712879022152452002330737327222129894733450577096668490844724357764019409987760136167686984558799160657642403466247612105516827890410445337456839029099321395708490047997287310092204982765239920331284824945391721291122717087113038539456732904570143344316699379083410033161967147926114853475567457562544669836798877220450676444269974298761741390565621485410982323469514535544922044757614238335782924758734442049980320969627312499507464546906050848427654504674365025822199741306993934942576640130769662069467142631169304376411210523230174097054830443173626805049243757409318890018438254606446659042399712892848151701169946374341348850765069117716952566473586899026448241559265355670455029716800997839143709304204971264611386585277129760714493205861418790908274756951625999490633375132950170027560332901056598329373033179487253670780298926244342933399199400584095035717318033292563725459753964268418159807006401073635511803247848131135938409165692123433236304547883594193341115559709000121707686669977541050659903848418764236347744854993552873241574490150252783196689690361942460337067751375522536210700256848167369276625890297386767708013885792714477443210500249448674603374732517588977387801789087107707421570566196826406672588188967694938651623291662049191941396951931364487234528966637578554339551969842421472092445077571074125006206740964713579969627648709775673882908150352335022975879085043066996018596321220834960514004846617283037593002504989973639169801807521826976285955166651028539707436193187339675183543229867925248355675458818454447801770650692592986084075657822466863283094333758622908622127401291820842247352900081887008507634236020595949740249068930710608464546991764468840439698331358164129348794100519237742690932858907392421738066100187361654809268721484210458729614391211873422776896953425819863925943205982668943431535056601186751607202878671474359356339303892050063240907668448033333957130894360855512760903176245182306952539034593840285005340668193406081559380630075300410457889697662920267681702078050489967522245286335152971828677218215108148473155425060826659196795996995522844220616042271378200655448858680398429267290960377067910990048373593333279359645738143207975876738392997532392036668093911843873540309664095782579368174921458340476205670955031252408376930149619558553314531699963270678909218074047824299866954311849753749527409236675418385479757859420637270637205886503584015876755857086111315152131148953534432609713363915399832793864100687519994311186929285655004495235918925985205100084158858907278882213743378642395726160920385034886937811410982025171244295514787321320366697399168153047111554686882599852115962303925762996869217612766550099625313246288824083725614200261250926621758927144020079730981769225054044269120685807695976882238140086266557972802611419635309525524822078035824301427787871218923051658402452117026568151539120687605684624885789182545942988803053150089169789515362134222175246356804192587301664936560545079213663172086637287923976507083933084688195508861008778774252330279293241457275087410168538350726341013782890565233211553005265818372690839431656959031743136385423423338571430500469454276828456989064860217425828341832125418650975274500892816102093929143654769342294197674117241513909074917088237348005103815542771760571438153553261633890079101285850461675900922915380981504024814688684874822668551982321185720448390358708884785592848310188871544250507961018551271782768326718934887590189992609110734923594614460201529296954293186976591968732193710205394035419412374699513192775043490178905991557109737046118258383073906972405673502830871820672673179756107245645441557011872888147087665550969360773498193522346702383705009412208345903563098639896104231915936539574125809643054557517917783562653253650449840042587195209861149792234052376026559472702450805893862491328304017727319728884903758844466589908366291820493314568906966426749290573627814568989552572985545229822529781439583839539988304704581570960213947855821083455980121938595453940143166287739735074251863025948589203661729864525226626867507105151290437155896131658241807315495534114826645180124394678107736688254302711680386669560686322074027460770698537109426741613835247887000416220224043834883026519370070882011302717032215827343902199753812193665888766568346686743583012339682024872141274046245563512648797789936157208696870283432856611418376408919584062838989185946012083801722109983077894851014240306273651425981922573409649792359422868767686982559232038817967711529893515855652583046554229100564959126514573858440368074059199486794598924710683443033992128299581804721778569381623979010264898702419201832782989371155130761215033300062894580694346592100191822355657962665388736781937373923143637892709354304963552180735871675689663643348785333315675468863448568133763109342455619834128348259482788256958201748450378943205168769893162768017039876596709265070273453227833165013544986556204110643995765553068042488390753437443372523919440451532124913123781423049664760795299336011789322013542521620496421619142842639096075858649868633087140074354949092220475358294986142939105654135642001938347272799730772667393907128692857976224073726767500171061728053142338599252908665710450580666389699844641848942033324710262042665923253971624992078253130994196916917266942167103951479268703232467167611956647098231908404683780027276118910030067424409033501850667503385201996900458264008080441411658659994930456607775446706801768005274222499200966950989376691852022821681904087598335510462580522631414319183678073801734021533482932859720379700987846258854920019762592818346819921811045410568201749907864628469150793714863980186823832706657897974407203240456177518628742973837982302560568543793763317239522521284634056481434574103829402102162475130202810478701193229310802673545670018495198669460295452449290357918616927686345670498901461570496266350645522923010086053964437175205148730421930397220749194357162332033451630767055157136666228862785152404390476580952904193302489494552886651288110564343307402796046533857651927378904399355176082712675615105867773845156547173891802740006039033145691786810550347296366734240502221262412918345252956562537212896496103252653270061136455705281991486728248565617327186333699159648297493718146827244842656740124805445768283080900740424733805938744607826801618411611544182609902321227203581335283277845992725179147609936855802499787732639879582648224235561838243056450770526599412742409091428536046095856369591583375098735107506573948471950341807612318936005145465406757861754770166844466221349358372036954583443576751458797058057196459327916118140659643216552838870627860723232298571483992329635917298880790250319182599209874718190697211115279278376144573065945294529938291656764831677244571415580628088121811447067820151689285803825882142034364278306556855748704246817759083674763123749374294287879185104441414572050801224477994502372778616474928139302113480060705910913155994606464745934847567176783390269044258728413379014884966361343298046122654710027285889667597615762244601898178582522802574763362767482798281303475000742841438152343447985726819609727873094387493314135167959147869218371029527944612557159073233803211622579203303830326160639786925742814233489230074771397148096099125404897355876032881035196316545196856723854001598049206893228313478584997705514031247970131651722287622086316503389034512940624272102089911333875968619852900392547531269260380163540114604350258671916439355588916852326158581646089214549726957591644851126383270676668706128281891444493339652352718991679262517568506740756972878153206183828047556725250882121117830805846643138692745667664299388523141867356589605828056890835418092295706114138821508159236879062383128600679639513860723027631417328683171374498569178503879304751886279377807564793088789614159412945888738391874703845998935643059563289471842540839140636254458741757993057842990378186684770766628933588425059719750096112469079503501019675771582333794349247958069077459983780981384685713135517404759221918067212277475029940178681195352103473893019143513820602013299005527293923416154383472350132655947183144755833409375237762590411103594698278463032172366806559195729050702686707539100609937566982861553369465864770307770258001500650398976385405499677120820344147729361144929795903455526551394255681143926059973446305934150130757233387237574589909877496219160802877276992953965428750285002924967797506129387915017838164952965867580136892538052726836301141830592098786695861153339703348916220731671464577899091757879303441198932184291712488060965779696744808569844521151125423323698601615840978297612847364225686935513411653367696301711331687019158689786227893427779139204596301110790289296147709763497570804647490051581859797906234086122653975243885947115246536913831042168752984703534457586044870624390004396377525602185632546228602956131026949931775989215843300333867279735518913362250566213279026579398414663045971054865520764030180422192477413066893210401475555410154447568214568590835437267642533253905970425152230383749888870881430437242727193265849275650911168843543112398147999190725062435530232154185192423923899575808204756785366247419060786200211749951560594672226825438272452715936508230894997369356514604349520996931102624557403730316397018792283426175614236249854267147885549244233568339525829951723599781240027931523037023219753378310411527469881257670744548524726157368870385505709971780130782060015391591115388533117696345936509598436425309080848366074942298702394335056413432637049899473374199849054645756964299844755054258483813388484877777975445352757454980729288324351798426649504788508714990565628131222983662849117269228724152422520034603197690379898809408013913434910960745684956275262811575701388096307107859677952729745067294622590824264028599966712552453086691164400007109692436806444470342917845024787464107157037878511151120162920850809903155100498303250908370680255583847867872140678093640565677068131084414226073183864361682543815874792423431587881142184351800763057444722760877620561037165305097843149043391925997926510866780159182335900446554597068262287142009984630178783408016296135356973506080426758463144288692581712522863927165543987649502513594699613461215188673415225195173232352441006851930276002363120642656006447500198136131955739987492616474176206787776567955303860719171944639069807628964001575913826445936723619078093938630505177641309129096799475639563084470291500622219524381706439059991395893255118002219184514854308062399198328853947438680767045011807371366049280388671274614169262398066496875451742634166371301799114700726713843162508097028081849050525639885822681253040774524539634176412529098484781365791799396925803864338607102512243872564316247633279118669674262521268874206354872730873222303024667264209717292323637064001482678895862882815159674278333840559404625659145213879725540927361284931109759704770522078477375422507270118409676155558765367788063168272884672934941258679022152910083233106526670176066420837623067172823429433499374619849693682492603931356946613683613352957858391465721860974272624449262550926333668852845656433630977785980427879338757176315036000319027137649359001350590595035045095392001889651687885763018484497905206692717408330022350127939363023039782520058966966024435578034563744167989049036868992626300437468594712186376829509878730593389531959365725514220673327581080385710690346920556284377689973090956185337113526526109909721228871649011177867587849397526455217965794678008729579687288784760865803623487043373662996117046679409808382834263596606965921679772041174214013273956416835371629351144140893293246447373528457453395827271873884936929210608385094389627148406496758681422297564772592442723782506976757830131696424455517579871754001540666199640448348430895235190071902350368027353497766132197843415715220846809657926232563777293311001730774557704397850979231156721848710840041529809122373735413769117391340680978695201695691313184209580512866906170920718026942104737102298521809937729998944236864879707507128615433404848449696786468507794713163258410530013965681258046115627923189476912073326506461243890349774389270266329173076455439745648521331137373883631195404848993321288886816481760785389284392349037295020825123212728720100654442325411926954424672754209008758333468570611786525367289248763580756133199380355745441131435627118259709581201589455611061358549903090388931723075131539589456485018722723615262472912197616001458213004281818949025049868428211946857785906776298774127921971725307977824264144774057852387353690055498138541732285423125620803037338038832252242955013828892845835096952731515810356823398599222211838799372820196439778281094644899414149505229624741256200098741428007722324602965431908381508697864020865162328002340204005321452464499191481243027533126487184698993892308551834060336424645110443423669037820605455556253094575251524805628522658850021261697720371585999264806221169051144885632088205031992370514814013942807657385422947086580998795229293464361579422110701620763331624554770804460855283328554167434857568336799092219264918864981259553386111280860959925049337650738376916431899966761370002410434183516012850137249792244420585164911148292327825204382478682928087663463987600422793352362445768844670081616113317512100269710944400394216155303394998136000153258848389669124685613827573181230318549112099486634638127016386499006066439942861829890373402366230464266777179739666896754292439915860513252490092838988743870561160113574083166358123737131499896233227067020817053054378246102463660991302990314984338038309741368228172418888075966875962066641294779718760474254597633543450218986639818939094513668780580429611038443493127831781457761779850776480248425013689805077962176890890421314011412707271848140892922231917206930889350731276578420720012506504845593510724466215289818224706880212421695215890615696654785744921032646080577185171450138271336053109652398056260617411124109292386477703940747859988668802788012966020670964360896431782750200220636542040840923965313370564297241859721680933629706623548477688351156579215749005642767116716545301093722324993137426240001197308352409197107706588184043419877226779548462590919725908299162224018889244162108332732470647658134949396242610058707099630952357851604695718107508363347948314729627292983922920806222220338886974730072764883139878289899280130947852086244716002525418908907483188909883370577804125890892467055814136536843376495748798947331721591209386989278525140729663115839783513967575459594680463656330898887572609937531925220387822436293829383990366420044526965456654229925392314862971734147592754322119353394269638124677200037380145355273339436559090354393141413709910114702115001416402919340978964989092953019092063999166902962176513035059183496374124070812939613782458644157535126747244117658315758028922972601247328917868154043120633072374932659293609327261386629499796060872421460420290532693852073314890413017570473566761806371946477295651350376684314745711497639769417353368350094138978004565968084011429707023334164703916047686524887315098116932508898894770911268670233355816032316354484069602562591917745283158380649713871253153290221855049887913543568373697397574019392767003854371676517687987402886896813908960546820968318079987418539338296855090545051636244766288388679527198580797502676986047989951441508537173011217682859928620454940871284080248759185604268533064074874838689462837784143751019662954792170528469937257919059241335689788575477081243447233977088636725437022835187276942951435414701649251090163167525213771493455798988341880582574466936291481297815505620215402731394139565807064351891876068311169416687656272356327509254027050768127539933502907344166646371550132091010199226050046378917264193176794218189250432850268042980303578482748952363478906747951666228642720226869896794729861004096317235065880794583747987500664282612294605954235228802645276634394342425245871609991511881942712984985908577989946442419549434248122810115064505496325257917010851750539104686039517667564204722712068582854631049818836596185294041932283452183887877027707455960223126893936146107744821589973936129895412393817189003201377219391700781798251378481715632741305971806761337988181851053024762240959613970625366293363370592352717411442477725047811290697354874649889646910019917214205432800987211754944112293624117748473129664480357133139372313127925784709039343336468490223382851788165167709512368495980508612788612575684522742406548323582121001644322473270490249359361130687007967458672908726147482952589266040626451691200333089808905079853945475848396281641088208869223659492028038153178132031194467808313675351986200439588107848398931025276350481371657160970365610454652337253308411370525911724903056137287008065878212160522201517260864697332617225710853983999869019735289555127457894027278202098447315580563518075680157626987501831991205388703662882795694034711248426858128546066338270456529500050747677255533521547049325366814541436141138421250173909630029069274880889892420446995751129098421806543563365242449282427468103005237743060053089187741730649792108088473652841117399222368579594957633409173284992239005375722297573937709210630701296925910974008871337135621687480968657857094422907728054775325652849701262722827469313428061452660543429581297318740982483607326068627315397806942026394165203366986686196478110191822784427800471658556836323718500967270731788267657226001234026150638589232240670579685085907380062396022687530873308809543902534845229080538408510388569709031209015793692117546480876617763185632591625632188487869188587868026981282062206022478241427573640532823594830099410789817926636159329085310585677616883629038338718842049148192246560662302692330025794025762210662876236160574162541460841378896370621722202717592268657126253803481772272425309511203731654288756571583992883670002180156591311468108912067310328659035622363146105127387398958432449344668393118524757605423603099400032102454077110569336664596415135982580788277484256165632724440284253372733891304563774850323661643005144078278604028232076845371569691805974054228019690452233497864841219530799529809292064526582095082651219075917262934451936714717861690826664976140691890533282607292921744992068793790795677696412775556335489807432850111842918941206273546001562690200355013766865433995691457778902031620087900169536253814213461433026128654974285082755771925389523461063308232761366652232002032470703191132979933870927404977785136461052646581998528759749370006532831744726867600225358190525187751857116645454162771911879840195477169295677602828771681781189489378946234238786777015340066335512662374937971721010149815071028941498484212991116502581068843215036218980229073294975418849745398111081705192293291824057749265580494312147681547484657253774375098121699727464619967578413496085068953964234469110402093625532768295511031582494131750098827877867889800592696233672764948233346317355953566298620179637830139888872207116530512000996249696052861523449078204224721240334678875812020180492403060994368193623411466197821338806965442960432103908360489358723854321953281583504783213872721716112961822103921866951396848865785331250876940174741946543430610006891510663463323571899586615951514748719777049742605783624452352429494169157381405404335377861311221720710474128664805783315801950075596060254513284417094722151487775834236436132496434112817231700806346714846054090523055278703403621032115406973323678636587426599019892492615896126944697394324309985600496562598248614456605607544143593963626481884730650331846889205678811858474025312343405300869588742083867801813531185960247916167684405640030524388694412842018510947491765682616126299024412757045547840238152879686644255168260246231565510086796553984306748973388063141245599313249754241309523018059386952300095285394949523523495176560096124579592117257600349070047862925835969854557611202988010451006849854378748507703469156908834415556916173835130776895718020733348335120107232223192144175524649020118814179526019263410538330196644600060105086313487793632924057109583108267876794332305592157133125490547190978679839138289250944856218171218553962455752912330596237785485904128492460132974646173762134375801400007569769700864855097065906853377768444031092021061019969550191442603226475930433491917255387560668727570898528702191676007318007802022274093958541691950916305919344550470836684346264799191229774976659510712729300246913222373453480575022113756339003917096632260374026306096869944034895484353081796274225287897768713364294446766289578623285356893209018160367210335775532253225080708153625107346269636476306425513112890605165040930215374105647040901870485058013350683968596524696321345685014004283632890094632940639686213398132176118898577726248480615389285712472073269121949249012517539804671821329379466951048615340007988567750884934133142299743221806451873452994285638026729878034660509260928654942823961832075923673963290722180670379159133807684554606827106352556727340017914385204008986969048354284693801196158430150955084553141155433235417317680754385987304638997377120976047517745602807092401265916883354509541354050521648767394748963865500508325917019344538853957127818472807696146980542659767029366717903979349461769537354299518009535552622173040322092038663456625707294273277743259157536994372424274447656631087303343344671637722922052808281648443487296283730705544748437263300652463902157311275475684683573303491304984341530650044789393602159146071860324911209694386688801153745832013542272049837678721569369576048019088600490930687982441136357922009020630172068731555254274314891457796889648384789442937590695576695302696605258050845847639663004211310278745455998403691756681816949323364067269731081340990604969171563857284859268911792771369249853761876437148864738352728470154566772576874624893779679951161833049702644329788643562911659251229721362439061009055594434052877380452365180233094578493932612219169446402180685601721755904951304368274962596199146604756463981329019586557714390921096721354543446208023028434723806808607270923212833613265852317329578222768546279747705913881843591684870895202388811397759027313872598341050794910414761285970299443260886338195227954083770316575336677848854937315688020789212814805538253787755142415749054491551881392558578015521620311591739613217880717188494762086990148551206260313638798472605572481355147926796090779273493100061287456178192575168557614144476002697841058893128010738041974513719403873099345527630494835462766448341263178775389695205176777684088306189030371361489105583268618374866620979341478835999256726671314669300680385466365959706341082684436043393068447216642267167368842172229006992853241760013022864971391395713201751283371044907066459562801248898473977718700432794098945779811999593126779241936838626210149105837821836547582841847574740502301718430225579694786006090813410847256702756554657582954466933170191035341817883561172030882397551262638462718550336787442270305446764431433339847850078611407356693281539589281938328784144303485298355819775865097026841743778074517157359611941009637504859546754240541821283567554528347264229421936513325757159044871955881240537646012880964751067680914068219319423913023223155180108937922642710599404408606038918701720204337556722780264471142025589434338604628733153400756189401141248637845672922066121381542404336340611646792187442002149176391152810582205063738994882774673462153775075342777342045742194914704010371589169512512738957051095413157101576020992721034815327970053375454472738093355722733424049549522595937011435910993855465043430752603304826364780445335351661883860906876905136865316265843626850679978452711029473769516843344486824618949608947620571726614039508288953446999907648294513426446529043298062427206414389120709662408829016437338958851203180150673545173901235657748534384072912541552656679855751371236707698447781817160796289301057442154086441633455839817774048918881777653551875179367245693260715021933561370809962989386448627651217551220562707050374555573837542053283511843456147285407156964300333755062548218593052520002085397003246989658706140738279570183240930953122537975495932760959731594207066376046096071588119925564183922227035587373337824799787517510019799050319562809746556784342421410510993454972161994060562742665867318804223106156112884314184170384014704074112364980392746235564729795734332145700912336337187042484510066771633744465484211490073982607254174434481088006620923407021270927541943610699292929981061100169239359853281693833328172849624538355688456626161226232019266019011561494971850960077552029234494399236777107775507898667833422190015509382135769932650393315274078644283449607549158693704701424411860814814554208953313995107054278450853252971445840682718419654031137673313610315724731958358817964136384940725677848942665441207532642778741083420025255778632740047862819873914990856474800634437449135189348402865736062866109732959903099037956191181100657465229312160679348899677725107676194448578529387298864469889248443240141418268276822726619176481903984925982865789792446373920147393757669605729289644901290903853927970953436909392723076112440596155999466239210200538514714582009778731726251975571854858705102986063996967091244967355609208117535891978420021821916671151839167060252114502460277337270916399000325232780347967229934497357115321901505252588977794671531787545754952929037547477239449441018811337777509983797408179858107815303792189369419027347530365047831021283241929097937940721904141122045479502242588462670782707122229610943160606335718361753961253432092269095507423648552407107602936886751316173948808303760057912719749043290319268339343017259133221649266089383252204316603111964075546006105693115847931324749589709222623534417175702263123053764847165916546007983750666436480296507577694281068621046659654670824156893408352626016758068975185597611712009438367045442417553484491305234218524070994964274911898042597563740013277622749742235126039064134225129003619385907650915870839083500348994440651297568183230059538884302480332719348846854282358021746725875993191575084831119247528824644721856222388434899448455974351141156436564616481496987739984773081161381100887648540087129009750499191581728796677090352916187567172411558587350922843957200136621632654218062773316191549630810846780627759513629374671563167452796761503432533582914076784228361144872057987280603032109365173735875597228031267410867386881494028471643535494273121469964634945156031379491961981678156103991432431501218220572305581191685415386694843222137772788301120820476130171783633334431087720836255826009243803377944185414266447905421492527301517809868522223847324419239552266055613212380424171702178209442028259922221421196721378821056624839443041980120563596533744153656566054160930783840766133180952375282219594051716670462674652019627192044944776211360826885796188762702786034319887517721226217881499870594193811011009132846653112382228911201009032307177068877425300940083384118905355561468070219240417754809842828510204294600721587703107224309028625246309933066647116006586311313732854679110737397795221086651542484627350346606665106372476533068831029087282986998959541358022374493081399874923845548719061771912629224191751835303760733169496901129255684623379275511188721567770049972409010131641208840981110106778467523879623981822699181074047769226525068780179321350500198519221082524008492080098878295418919826258970943897471389776477161464998745913136908755959627689699322470974708652851584572302613392674421258107114251810099381053540517939841642538353814432068984476138457952158887946693341501342318332201786623380393431690480614009214202390968225580866137130204449810815358499278116919669276971816415590587228411723726902637925733328253825621760674939094524170977932855255944218843079666520066037908172182902798276549784842253846557968241679845110373797727846322158301139226893506490957209834228402138125753211865894915020436415813084816406306806021887296803039275479556604670571984260386450129130697621334749574572783057524581002275910896795462502151756622932141188535851850993145375297964381625535492875184986967991455394474410814410918022363977100187438255827461196189111616401398054851032927928535847346610071069698697459476029034007904765777651764656133335113166678255654767055361680852262308313067810574268626262397624458217494224943992427849676215011412433991817472340152644972266253095081566160134814530068284265028369084698183979795582040005218476193131973859962843122676720739516387286496902051738042752437072547499630995130232133681551726414855856461641250964879232083330162389737983430836886542629437540298525120082438708417717355024319542977016815109513622083423504538029409315799030299701829325814205688779141285257502048618583667274998721002370745171251221190571344051490608357814762411132619913589591629437757067385796883497823264015538278290779190141724874453366532194848809515984215194953821584582467685679738371141991240941456290552576616164193637382583569325174667567420175540967870630641888593080321400749818763538410402530094766775515756020200775972510159104832273909073023389884889595087877005763900948475071695378339678046652353907000163624064951060512847510360526746140622019953445711163416869228934874989487397401346456892336377073751431642832092730063788478211419816302766686453778748460818960824909942444718055182876823244101999414539283710833975386610724921742133164464486423647592687982656752337557170773024849262123761842585411700473922011759383795683884567819840298261165184661784196209736613262438812314229576663544635466867761502170237576772280338894066260492399415374818870483464561026774106998441427438043806605434734375972986670326276840695830177342100600193759257686518623682349262788421157414599256507723890021932531347778533413969986396064124823658342132002558087584020056332149555295143080524200720418435750948860196055359089666425758648881427633799427673155767199057270005839764622122995922500867520808076093672081350356318225848772109321999792102204908356129251615252381111727146491731267844767669548712024759401970745498204338871798747920002638794602141273614485977935259260394840368568985615823194640455658479195240581468589875099886019675144925438941831784288188766008803645630155124216691456197994083753549440064038479510322644542638454353874943418684146677860466039447695555960468188058586059687441946852164628487199235087039432682690235060983280766033734647375221618785503949605848400441433753081962102480326666557067910503772022360481797727396912868490678431004087761765926810688559791283452546387932547402781128664296548163762143550159414732201616585279113950775875988195540883510862742023457749758902549251772385786161060830429169238130526719515799422404321384775807662802508271843228168983409867801036300471114794390800695654334466130482537405133795513539407423764196460642489165284659954866224596917489807021483003735333158535855456247270065974473328224307867862410716734545608268950607010441067446884886472899132379220648628583678829545127961293702168885213850922115407643247114746926127871915556882602786557654074047069765540054431936227751607682563124959437032008268635011267899136431559370671074364770620923707091771222193293257844895855203523829764656160453694436435250971786598765921271666798912606987837179491612721278205388175140252560626860852810429627249249534841595937012828096166341009871738394546786400097839520302957231777278247459072655776221439985121669443474613268893267376702468527385205138315192255992195803109962314724444684863114898139888766006347568262023926344348869726597326414199907482469460503222516333919965982011601508061044207858273413011636260546807308949929285335168059629249850450494489425881915756058263530424226184472397088626979653738244376063081127404173577693909397358000146050046820238603341806207020701605178475542819002300369672852096346362530432880085625074780234950850883589298792255362424084182345284441988534397516203145121081317050232586137323431265075197054436661212027725321172854780729308879708280187234270759705168929279330758705327838192359009853380974178309568875777654701766772102952395015316122082189050226409521797829670951928320959838429492942405457209669541536365469486932531875093449965205059102826656247868851454769884357483199395442028463074627371019967955865755535784045281034981859853944714074778802266789588192363325531216785939308150994861685782908793133447023140182492036380849553159765087176499902138735442896662059903119373910614451144357952598351225495979759263292274768547748537439038866123528596515671551004745181047993466873368006498770813879608969064483003013977245764366484307541397451980510562429590559756748771137985785685753871018743842200790390346512817933537156060338576469434044856404792454860954833741746709042334725425180780459016919426198590565058589605320783071463843164089590984474161947261533315693704308275622938711737575308108968527052493486067093100754452395958151278820803805793381353446310115873613471825670752634457255639882268349323654767228409590589364222255863544749549313804901413682934372129190707115072654535269363946831096833075494889855948330409737868066855805295260391858300945317031631581807696566800094841637079373328784693393436535303906908755567538304019205343481151748276426535818900159392830304326677368719240181261359960008090812669362507689009933234716769298183073665550727195993209975993038910530186857413120040639648975362139869717028715348974406077891700619337881107630451449699707256287345312794849721388919591590846382479602400155192496934751914799408084201418168202970360484295956182854944028894947376349183023494475341257311376173920655017752211713563941430169163222702030967488082459430371234230247283536077349594961842535212349152025187084004758333813073304711578903362491327497371438741707611427216774104022789449394573261269567808462418887095821685665296478799196470787515610818083483737030390901078293487408730584796647103241065557594065416401219292173436622552263485758727492588166674096047732421840393076902307282826723528398667465262646622400549989243501735740882958607979659495193415466179447023320046927599163615157254620639998045252977823696535790699285401513721775765707767026205690059736911713292277269128348045709768771694271185463725537338479198457644080101732990688586691068218927565563863567491965751357078132054586498957687385669885305075331699842436694901363387471668000844776364582413376659307864623621128374786961347365901253099917843755033685708009448638492847973055341768185105229638876968650125640591463028112650669009579282252587753809370841809400164920360431998824000206049828659629487451072521601641407267530365461546585330349902818207514908551471787015051153536139997427401732723869810793161218465875377886464036511475345721345729934509669767305778591482683035565486310547824531913580008539063643374448172859263627701268389908013458000815735246729025951287387754950775537461482693928882068500048193364666565086911619573106830830016176016504711807665047930387670224629769301176369047218859011868632581288348268464529593336744735395933237806634674857362641262778993827725877438060881120282070072794494924465910766090548851703423705307023414375908685869540869305345958149636852283041646430072375524262137124718168256584099210253962218296396293445140182658922470860055462055717115096812266408703108912923369537047477698432821756372217665665793812652785942288078904449554354760405841169308753644427103939926319420445431238152366076010086873968328104887598836336757217803895150686243975831176559118695483208115932577857944298281505554621968362593340504941369092771520289254978373683325352483454151276734621398224067042306436513723776070445961701566596599140657940705123493242418266580204007031298058741097870028704597458356880390010576342433787925278125629243611506778572380817353664445008423660737608516815612776846381511338420170335938845576403573765349338296462800084887772867885718447701941995997866952918204431797681337874826479938299291144428661710996574723052466176515106462790455999821815763281039216666236898112826127188407826057575799637334347816204960714389298011005804307754500185823255750066404907972663264478298369077949532196306698876131538897183515506535213295068967120543610619165394430200331512659826860067202940464548107532924375928784524758715169190117350953876722724636760025615286596977834791285227653143107569476604406217394071863228301557183639928913129453477156979082399319532596701703718748420200233648586456553388515804002734170056744212365054562972021672547107974543588861281600020890408273398131471210962429547361176441276386268197346053767702782240474130111122359015525224083327725023441031573029077043747200604547045200668498367577933361758374935910149499842233085219681669775008906402539474319904167304215329549830859282821735477672149786238000325033555248799291075540464686266273669346606641094821982528523485672924878221771386526053392431538479764224290913213680752753917067469160370877833989631281695912895688687802249815421444354002833783653094221723715856476539798673838292377745958798971651011861070586392593224322548566184441818093663648978324209278308330210439736578124019382662577495588961979169824224240198173745655825656161134927743242859127562427226997644829968935114726672290618198048736021612335432005555634613902920295813883075999038010846889918430969624332780725474232497867390229695484147353855284524689215542710696360694732308579724443112802141535949043103665518421557480810491494075113642063801425228819323414879254993996111853146301106508650654422875694522575784773641550925237151704082832082154378244769376915165329109704597403494105930431569120337993845379215393907921883036136377942277853923225877170592054343879956732912718869304901819585440786885991554042750343251685506306077923328980051043651487507811312004557154251863238320991085782515822646578050799623036685125937503158704621714042800076964898675565022118474388657673413812637757433320307598890962209836105849835392661879942311180888284137848541026340706079320846970130206373806367269619136997969688685753844738873612412362412870561674400514965220311267805210327613071533066577983357622724150539031848883040400245005414931962526879700414611890973250242752367513177298194763791046529173439090049837515846546493393396407940903514913950962481617653213820217174472725344950757566792075250829491520032072060033540188631300174159267711283661230187408401335338074717566777655608444259794592011215428723645138073271166832158648148672584770429948734435556537901211694457534176758712360646865389269515152014814192079177852936987089033665423962533445644856979637417743043572916305138693711566320266928543951881513473406653528187010704159035764960804919224934483804631579833958582121497682053760209802009444635365964016873525311285640701353770882580037416833063802570338843523451585942385264937635521959406159250326511653438067887719390158019697707506819874845118168643023839031571607664112923065905613739755722000138150290710405224945392309858114396233026129259268201079523753941385329793396190269640619769699284097210877057836196749977565780506653167597424560273757353177628148308646967912965295050219998416020193966095610396674596732917164708830326855462791335053265657128235390965415522514838935294792219640171069157553435209739221339393332455528803091728716664824382746819770224532695036280364528791882034730924379657417832385860112662133041291482806048419115379469576814046456449716818428332898619993569123654445413766946599280962392362721851519550974808508206150731029312267735756784475264008498432092272887989402682747982349107915106817134746879945660277068232390067113283835112567095370242749895324177097435345469232884841972334344591238966635008984534566754128918241832660116839393018087259675148763408085294524204810707065388285704421392820452742760615996166341648854614523926327257129885116872443557934054926122098107052006415614544417793818691176397501357402919658235606838305100940023457061678001918794900590753056026569567233735356135329877079717160734400735176787905659339924208685804339906861675694409545873983198863732545930127003929289625274671167343012520922804801621865755040205849331639421205882042190744184776678673479264310567598776984906061665877571308979907922160611668396095511547025941665572429850114306824923217523563525001670377816060148029515213970752062210570165535339780938245962070679318300322508933455063452704267766975612152224665036623964657574112420326474157200420710305060621575270828393306785125197518625715871913159278847993859933874565148039675889835016061279384935044865994434774327969291849506242495761453838220418645295709255691054829121187989217636725048016221200936045562267543949018592323466153422657808580572704876234065869327335651690039921031166178725459552369970022200458460018995082379660777810472975839155106016411312676017991471397191920538594311744914368531898170198217477360399121870131276861164522778287924223699580906134511504345951767064478165534012604631931844513490752753946873102094054017402322907047626208998445715140693334122967114798875302847669525464079431866260013532593718358511238042626603852813530397141662261746413443999990027946770722224948983637438585435935546249966363633854138422494449655237852822741591444863658918419476154124831466021573135819186053350128726932677194376113552732247061096882782343495665374131027129646295010814172031918331418450226791911119597314317074558540301378086528430830564155064689171142425111822042059266895418639770611156962773360143725230131892984307914751359846856165547316329600870461226915394890506417685744240930647022209919875685464586853578974608819887567018000725862705763273878255657270757848647022689140523461420386010508630672431586253774945703105399831694669209754025480372873223523325179597844777548160029510740746280042568540379177384816375310185184263221397478547541298790371231110939762383706649773289869515587326689781759069924041466648861611107060878679455031654321569460927910308801962675486984653573125919421073439612606395965163182551161286950531258400315911978046432652474842876304807598579592622516740036660289970520372162597563916746100793286089624185021905859126503529527631442551375097244424536896781425847675865714956797043677898639499328261304901382348512719963857199538932483236987832207894417879888788190659531522289713773470501592931789054975296843715286612244827569552845402211286788844513436966305706107747216034017290994855291224787734618962157155538432470819594684439003120603729852267917125039201685751884508973077963001774015798349327532774437769817760987963715875324815054095681789337751831993155730131049212480769760676523229213324668119303857388913442533670546780200052735537314716655451089992306250458861076382293100089147410839908024871056772812254528569243289950515748817236423835548111365465829660680940941820206803559903897427518321625708210971639130659610168717862017495651842561138050925354031128692787546333136725168625560900987510683529368460911252668744005987404051160174799310171003184031935957702720303982639081956230177094355089704481428746942599435188820583536416832616622626228215471882909062916539408438521209571518595501755178415880331815828586090876408078753235968393308572475886690271162468514046439360896579204638871315454135768701988321548395108220660450352236824300577572692758309356728289513230714314852340095853982148833995911575283710291420159813037792058946088456770097915342976299870269941951702085269579573277594141858800539956958147088555334206305859468710547385463744938249512004506307257851261480417254639651652017528273304606171828547218602736341311076772510835470810908637955945804225370482964467899662576533147854663414846319880166460287498461027416541304533549867431415225290216996613626532367814570329937935430406262127610963725066010561987293753943278476253669696046177469148376703953935562217484292017160304184186912018037780800285057709097781178036221659882892856348810174742016562260937757293419000798801131267525239960581262620942630434044283982908840495975742644242298561598609920070669514172183073726924310427192972914801273156970498978148894165142015608589163013375218586713257913893511475753823621668119250349663077311618490693182113677191129801788197064444628692225036121943626530411980373574492917243041509357776265588339129421379898575732090621670748066233831326235404814986370393130152053788325499195781441303657244899869327372251790191275259908031375731821100422182375374126358919653283803869537935775258382479982734753304352321953176582910927588483590165055029437272216079303454836263468572052815461112545446337415512073735498297850624033053743755078140300431619004597927403784837578016887306125876996634163519472132826777529400843625722138877852669250505588129245345254596763606065783288128586929919707030552611751972710892697889293349714754657555552743475702358333934515453585237390716512071510538547181332690926965559102526976534884051135051152444063017071914062916042180723399903809368438044315028147232790549935711893928552716984200024700315851178395468319431802928617567547544128742263912930776169458334481502952572268228809403774955286428505159930787363990335155232712650528723265568368427406207001521014881016022881160864359255305672760174856221900720806648850172310410185751528205425085194142842914475810412878186059123151096171379001179775820314011219661205299751863814498089595171850986570823764111582006560583677192999781236046407809252741965975496187060029358284200099859439477404874652055586239346502385921819208129447242414966191202512056475322491319037688436672990046615578022925058894072772609814385993865668553024580420289991109053981061047657726962679006327542697590998636221300047979729458509131378859655810875432832928859342024387403241639658261453814025944230606551184688008149027807449471919908889009506499575362812964752218596061819327861528292227259080200845822321601913261292179148853467932546280757754423624513638154248746413717988609196964079691651608522001978926322221250911867890420373154868457504322583853715888831750037214667045666282259045906841936430722355525301510750452044563810210957337222869193200457643657214816603282996409280206998132321518743468346028659631341105548916952021614198485762193590421520569605858859799007352597165907449696728623965938987334248820068294705660645291409437938017205794001089245548715612158326098369443729359160023263074765123388673760484420397555030680305604953687564857939412306477455982254400067151482560846813294780518426430117243532808780203407308178848253086753470993413681725709478034301119961589327205495434375496461361051774597230605977171188271809264404926377237798054578242190931793348213516537455355475641585699381114573019513175478622849158485798041414895922509050000996426254838535461365956707893125548314225295129890105994802715099399061706469310663056448491348091163202136598421506913784470725909487731066019715655293513082876433640005946686758578623007090544118028155920656332601269785000499341817775397786817973281469944327418639411186563922183551685737745974073824237831611615536717633198312214585548895641756255585623179674859969254885234844688227570101587791608249657823632997094725717017761421662547857374404742527947004442646307430293304598883214836869992276135076991918335662204556183201601748222367755305171300187819602298806003181954117365593771207637198759715256995774972588338598554825903241199011822990784706627427520014047337289135145054822454396653739071236926697975483852921146822549359295229823217056327257586844169115827721908807289558849345183841824847931329764242011025455194746378721457224555884823567526214948641381647519247537597201021443580950975301996455054251863936876454421552362414558585382080021786117655486129429543777992744616759327588878859961139124834012407136977950856738427588900931951345920246549659943582605307217489450363900665716432356396501127045299898039316366120081780794681614462153928576382224562515857262913442752739569747684772048501303984349322239444722145336844841800301503344342938362177027721964454826189883325352097396522570404820462484536504303883138137529950319018227312415553083845418025157066546925488620696038408790351967664966487436721084316973925387353706638138283660652085055506259368802923227189271982235055740810317570666342335094217748559861204662875081441895320439034629998400411670238183017597284682366831295849544733109774484166327788716119057403044747532332329817370092084147410073781516852323367370020143615897205597993844883227354078141286657846197483983330837887836315225926280824283463356069434819042878724760933368285114735785057178728062403057046765147890989351686226020501804564831068138033432648820302704373639303761603109984943030450234438718266478246088372691105668751559535231609257877110093385063188491311878923663740437557507015484443736545756586983535440070816461760807631264434464081795178849108346016269227318589146856436571191909732715738537717816976742794475765304380976053460165993177728189986678485824409953097267290735246139607087952449350072340081537665351186034061199244806333675052715792343478420091714052293087943231770518014615459064253314808124778527980118310462677103647940659004011248775872442587629244934049199422791154636445669293645319754071954202920359826500927481758960665862622096788237644799407415321615811259696096764409652297702645525273707367174768335006729098980235008184853847934259386781448424045514706415443180796930986364436672494965428484381622140228265578388096640569420810149581458972355951916526662797634350667138373745520790237827112407673702815728983677792707234609432917557660187210556359096254030877445660393872341063539396889621805288773025691029186356013066189423681366268075861328865858496288424609937859051999311454829838124881964692376533731280758657400810627115341466267114245753199863787429227851471235038851772417772868032268426024170187343135813945711697000457045524418202961710307732156618640529755983266180826195337983289959421179765004690241109581570530009709082444257085745416952008842959981279125230671160289178796082764428921122467600369235254077862394026213763239510887403676115887385455588967927083569587798154971925925958158066501477423200848991079142425857316212244736327439530714975344519671697195219160289465408959280654610465493220979003723652713509906493436323883120853385685662714146421460770827777034152771074033428790772364431921961618909275934519175539637383435578247269540951525046128238611935332842841348443137683113472464468538745473398987895984099275110712307450815460975442940813851025121306039696827889813987472862448534781697821178139350799194356730082248863816678488376458159545231878923046031409189383132416209203750442476908364985641197198082846850199496956963415921293029130457534897669837061393783293933985838240733974430606387410208517511861446628362648361160136084785285756062893222667003685929384076397158814699276125636489930842224675259722054576726229706957270079199475771777997892672413045416012010495080941366994429348877987171289397418230880916642007431346985380605359861643194926938078498879490114080109762355584160345512498598924966709722273192650942251248120060357266645952106983735697393366252779128160429993956243721636381414914506975848207065614792310768850662364270834914726479794173831079154422063313067800107302050467435797152959785259023186066905271521331316122170532381963793563503890043202824639673079229265950018391485377165170599969476922394774913804018249444531175324466673310387168712143045047278604027125519273862472883842569243197779996086498996774006286084094999019936059488958859987159147442290054540598933829332071950593975513459872997790415053601789005379472917439147148033185594881270093019497970553578311973237969152166462675596769091955739606537579812572816376877763863481095330125771347020099657516274908618720922945590476929334877681166701989548490016031780250320271965124635895257618597582900642820187485241200943618819456159175982330582792062838871139125957804006791548243990455003035103517359014899908146633714795356527636130424925370359175767143489848273734037397289894881725402793197588749535666250932997417224891368122723745890490256650593282720449990416439530382207720334197132113778372701846319676316917858706986005103604659836915806901501962669230983654245486400849538798238237447473728870422583300439141932490613286743913723071357064458033198725634394206113140696442584294902260301301944993689888786253489341719117041983537855638256899681193123381261551381411939947079160513208258778793521799845261505368042736579976796678075864426158990352201309714451851729207556219339591049122237478770091448118305344130021303905269297250200229397015923148760400659541247525233050017209846591858490753658508536419357865230624623451185433780026304080906271443533927923803424740636956970939329744178935829144327459317986969843679470090255520238969062052974242563030924190897035941165391159816079087016760106580929093016499901308042562017230755981198947246076921036690784816711962877618220324964019619464636932159573765217275361367682217123681320793389707406184603252493308839165494549300762968522488468887139010825898451915172516241995537562538466903727226234442478005219881165775841194226818779152946942450334357138636359951636432277731651980023423929835620766130964877103344782221323971238419458509488248961255861872527247167383348208608841603190792817805471029981784967574938822177448402271411011092735664131482010464664477219675117466974510743593134012353039688662354877268392361901582996321539052104248587651265626908128338265622335299352096764568269080732449834777831451200653308103222701318325059600032542040086647515629912114092078916229200324794100960794096955080760362182404246772398447240497777367321334052653292941273139797441865652004044651266875602718542734963560839695962079151268012300423012117792004941703433717990796900353644022616024220070057012080057764903455460791996300847425181571860302115970010434174892163404448789827497465155401192846810312178817380365796474297173383121845883752454858699195714954267434857723933026092108530616832555395418514164195760193310548881001052725944899027644198524757969713721914068926089548417544057274493217022352211193219892009665553382100295708887028420004688843236865486073530749773848783565751238046731563488590297079635501567414885227204061992721215924814034912634024781995305836023494101934415350993691904822176897000972991310522259977892619667882914035574027899684183350833741810243653961895982331864398975730976751937831216764366601508950499473014944599454126387360468891544190364744338600606363954191346183406512477306312461532113725055083294160797288725479892074921413454687094778637137678883869193898336065114934601877840721019769855926479099465120868398275581665404821755788397193949111336448525970835596863886872050682999192329983246395773184723996857407322217503727074913437193057352752334707615167645304773651236704124011738854907304938318455348582979180937768672668792031427813150452965871247145096526759825230631200316887211698883043553602981385988069904814648791368811193296084226349123260229802686665444861418922099148550061982200072970240141241962021164948660736922072193748179899953393691231482955329709118259222451257895314021874626951695181038287756544157718729852901730181646567400392293604457165677452246299898447708861258735600409765050601580079703151555853507011041565193784266419710647173785978614833216917962255536229458853792027969874866016082745099759699653867295471889254083716819907854251989951609236500509586641270299025868019377325919870172379192588107900468326353061587760585611630932796772013772682686665615081187201266505894556824583931081167218161506169800653806107087989213181298287743214975966542420558312061598939733533747645819946254594958966524861433461796760067772280628613925637658927286621660109428891244521338118634613466366223663439363890448628635134785399923461048009417611921639734309523767396389487106555379953326100936532565334404010993640350711201445733482473776173653190308149952494126114892586276915605814339877461223510232393747913483554651992339889178156277250096531821098603990338634255250659040589898514249176785928868991687806938829905072784090274869537208725127816531441061965889558143134920685016094993079253585027771860636958530660856658895234986067319203713778204656910868154232644417633223219002290738236976126142079965681683991034201117399922258232691695741519419453437534617179125477312618217995678855986493261607620419102483063462436957045361610827950554475227696159835082886279016492577727746311353979351148450642285756396151882868002583336076086857396378426822756228583504309796124265874592863610019375107375770588320422319945778492655798783394910362057125764649900705045084737593160214433876958530544387303563327433226784639673194243848491274274067455926305213174612673860432088381780147951367031650923025269303363346841359132738938933737810308933725033718947520678153684792196854678785524401681471235227671866594792353496665600554545809122492187878721675350784201878123264601011745705974552695669553090163295079427612207772856779858145257612654087574647437365810867531728774968812419986904871351524549033434309332963613042132008628848629133842899377704333115545700537595512704654346979319417886151810055468700899489617461485560141724975480184911390273838670399352474779398893574794847474560518275775315776309704801886646214868636798292714033901257066446062633571402785992260646376397557041685802049983009711594085774524307745244106960741214383285921299571465409178801165973724395568821962899074473497745497895102147710606255772809248699170682747254420701135408932130928903430141474454899734530140075793900650517412874646588884262398499944377222516967278033429994634366756247369962599363740672683644910428755071106957134643685563422500759357667231472011295221433835269476486974631692835446356848137275383129198266265328891290994833384220477786019694817810364442628101103825180256958155154801870395229102962241226272197461342071845984591747200479834598004705811064769433915670718312008634221948909087730651552418978981658186625982554551053138178482924801460428431624876112945979890392643137808489676093457711341217603068011503024219886275475492604556865903791179639301979960758730591886904758738655419200035157134870356148338596219716401226492574952681993952708251950347459119652269494476148448374265368258521772452714681886694880105010229594405584385375654002336289632341442357825563212202587062623172576255760465778422311144341687909399460746381875625567030126225933542854452446234380700791119782286710580339246976764164346243260656392115639371507567246976002605656737227595766808468971759068931331367349998140224519700710026963753398659372416999162723964128587911390300757009798427689458335131270117200269490677623212007899498059249680623736631847806669986752276119423052380541340849083249784883592745279318213855837279082754086225776904796045616492926269933210542827170565003285861375767681747409906412846640131663207927466933808776779824409619695689398216143844843228237225636750534184995661775611609432493102036769390712817662549077738333203166529758922045534890971663085787618931897213964801151052402991944225007052098812846207267054967268664790336871637760551671128398593926768461560585111356142658457812491490521613192855592854215166552044550146878972733091091264199359408275530242478916940752617418936003418345267957010430891279243705269881612875149159496449611156701037978277976166645657514478495495362872574860306223862002758600732576109650021836511326006787776002510122384032151019344561684440212247768347616824292248622547764872276170499488435654081298160902362216575524195930470482525115766290544204348767314630813177659695836414605985371640321190469791015311321577854493076587088754516309196150071510934661183539150560233895706030643861752559510830521111626259682558052098892300100265111480391502193105411169812125439137817596422369483716054165531273996517612238633640575883828558831452971756866874778535670951422514663671739355213329935443967623534031575198708926125347444857279670640457540932553004297319700194924343586525665231230693291407744565473795802261959722632434118748865876796642923811970491123935014566179119337973590265517754115969878491979928336169028804315272704978923115369463610041822598215504598407522574192665679135210357403855597869113859075599473183480824894363419986763708371052508030046903603727908021653228061817026387988464647615750262505437194675792346165581293946424564146484884658985571956104016385891101216441864706918222301901250648432181252748795795088360689652778518209365112925113656316511830981008749056488187236476298377647872659463969650215689217788661418583907261828940187754179297707623032010275434559180481149345406908406648523788462335035716073611424870394309086892361459656694140410217800220932376023298219001337242048507737364333371981441900610237273445185881268969511700573900223681403016755647598747671533854401531610906684886418399219571150370813941500505200080089562301744194620028631603313501488207768013044853504025190727257628008404129425728345974336256911814196411589515138700682575329728049429761977175189021830424118573222874444821691301595210032411819682742049077594662788574024888041930538719592691799300670544297848994379049972625038487711174955338028577132676225189019278870548167920429115093247297030615732302874433173716821760653195820941844993344648685400080941444141701254589157233886528854075894785974100366276330097606658284646757192108207362870599102889164259359137981036969778932726554503461036996917330904836067647976561543773198761594105328288355043366204346489603543463290680173553013277609805513168825544005213174222441866831372475012452624549289842031723051985755063006846881421834647486889007850824201907674515743431804319135202481559200976480942417827347938658083355998843699834593435475393490309710816749562141522293946317159877187176336104485703217839874541828230035163160423522084143608585879187731283471475252568618301295839628906229653225979487402965607832279452436401127236152798348731893051140659697678713146566452058415524487062125083825415652263750989637336485950780175600872809234253920537940015247327675785053740453323084808173369477070233050596019450752475891848892906409069428175564499650740054924584096577012251792550558786396450801088739850114754997926451453335345701478218572171873993200456811839641775561203209014340366960187561426004665071174191247835847576152386100227680669087010328223921400227106488729793154820302075451189472371974172615931251887870546784982945547191893759851338032970867163360749822139860808834247831314978821426860225460997023581755714486232335198972087975372812644458165701436983554136985330746978366268429496162687005168096042393742692277824450460515389396826312885130331853507114035653213263520953319598360872121877262904822299107123109349853203786756609119902193015865983109887779659793445542143784870500412018275588505539090792735677294396342926417882496390831506947876706427626167321138878728813026311527567031239756040330037817010500866859187692441755256755585045902545717902623768633989189461765402845093794833422671321725207131474021302763778649769422261781861891231534163023516288817478878968974751054201716931166488327351889064011275035521562287918241080436049879150070251576819014565084048229661610607020870032612634745623912654600781126333858599349176800292904222351989034241801191368312845403491117468777842734046763723928037121479439934993840578431774501287500136770894498378213154590208143555880312206436066452393723352291469592754895062511904651649539598204841044236614161148253132484712863739371217597209625715889011897035214219630269246306177347609215124483410419588113877509873126979939317136275362584492500656314291990081813970621284788029554529854771846846803689320015815939706339065734477309235633431995332888204878078446663598581701110253286231057090310131023130606230216057837592150336974810872926604326970868580273663065611355857020419433005026318039808915627722722225455344940684645853960214943989933529822314189587206572716159797295887585334588003221250646209652821198201249319815465632432252731038455835214908159660088669205469435014208729028164081969322812507152998825057225764792463600178818491086371767559314229329968711989687641699721487165053866547555709681378627958401755283509631249055430533756359039452973796897063559869611072401451314036216872788649713934693878910739907127695516846296934874241654691353546647714490421883429379616221062872247332905296643663398439068170034184534819795595195238846362830997083216569029428053275181594880635710518348161615996641682915504308814792465352549450875246567591011189482438593144888405967243797016640482222030085578228693243271304784618636421477974350114974793616533386330123022328415097128730727271744942758295892554802686324649374390463564013542983544635898580617540552666397648095705398753895016996097567832807482035958403202715457117644381423504888819527722020535026419962832106314102636091071852390653350436252425461081713090051048195203621083677663312366727189762071791875060685109932724453127232405942596865218094895645462533228116710097490981920741738603868234028270091861555464578140763003406091671986616372658310617076618891306868434594537773324675433120561720776184013627431674476664389080400717316266808694401112036228122822495515271352460234083562641933226276701644092008873243404649600468265507866599188394356651231655159064433217036479134629323235835286805519386153312746360294989689938064771732097584514462654252952659889374971470165319393604206253035360043115525811922603759761315624291937305735734728314695984005559944142494831425132674257653575785353764052396204611275749219350570412724601802093455422971938328813387053980741869058591326614339894914069633816209608314873530446965277535287163507223852669373756283805832320976704220132799079890969573126294166414640166014829311954154592910858970819811232414610670768166147828090661116188223309525907444877104447602484022407285738798714079336401728787423985915157301156645401728032856632199066892150278989733770456736769196137971923398024472241262638810611006455638396130332906058147551165421156582185863541184119391905739983525200383621533307762607876536528137069120350819865436335807926107146646651020596462791468693876051358335530239153808311613627034870890264265947611853281054794928204886550999997862954081829317831295346518487731881724209563771881792886733403995579376314110105380245296580814892126127701971763365809166335365675590996332178304422586775907977107471932714919128866146018716197428190776940449239181331617320801485356199639788567903044057642890230128517318006587826096038578472347769567317242163524604197148723496829224851801691968389085300088525412743164035603408725277581461008742078116464281697777733158295873385011359740790982844562364245143842271894664029222979193904119896874549166575730170595221279607417021984990219181071156589284108928696877034589155610391432686446097543674028470328699406219129500309782893938953570641846238118234968979186905832669047415679179727270474366821422349677978039826407907131758357610811656802731282615361074163586090503914529968447084857712809676485995810109802476025059443670823446791603607170622102173768658101196357268875990266509979976753564206089667948133207847156221339079346808060860414935631045862782641764583400181685670537897089955425144867683338353171968929103642421170492016850184882636819419818675643253016036701219141886313852116033359099030380767023073020265883607511293902293083206623896375602594108741622154937058166576082188626097846789613179406453585301616989092085800298480808982584884296777903428049419026289005076015998970217876951083579206290088714044577403515994594198288479406250471301161294685764272865138615288751133719501801758391754217596498146961417017443146968895231030269205636405565284238600055736938651746030899662169933594487951727116251646643306529161758823186049529911778595158010755803183252114268703783969672895532708951353885988251546733867960107146333208316427022292993091948703447234448907943514857948913619478668356417334854274911701029384951338279991722231304024263353578707438309434166357254041186061548514142232315552780585284399584906508122308805431494827986052191044949325090625121501427120718427748780825058182664574150617433750095498277779649871341666021423869665311764864975687246953523995458565255437281367692824160867605768866989183839788290014423259171467694516071833983174995454064889427963385311116889640063523402276610212055185545082834617110783551985265455019230971034101400708531527537166814188054415752195263171032656884495819806168316979040788090489870471046118046096787032929200312598333744408186520813350338314359641381900086814160780046649246258147982942303204627080818552649967640394247647061757517483279686573495070087991481004626310853750175725750864811040716668590862077846286327999627442360009830758894866494585548215711234683798057490380904352441986690427370383935521280285586771011973875757615548755029919208881207644056081837198716690437083871712332222000750190883674058032352549306044562864521235247259093919102542165843586443065235331351217874426276965425420175820796291353003512530209819346290088824365896838477805607843163419481664339470857585703714854952272695830217411086595332482206533361766988253875689774489625674918008598786855343527617238624016352767757277453560365377544343600938548956840901762492624149285953901315141027656525898776102613918288571972495141748105000133356218009667076761676133530210936872568772909694030595965619334192945857100575902724492198281447926153145594917205724526250908236295748565566327413390071204683234053309710716186968334006263098632046074642937840046023918078601606878776998357804587743314137620234062877890241506007592743959304407017362740615954002061887902258733168097165262409859257938601169834881636741645026598478196739313775403423871788404020766239475620474423917401385810628689456283739916975129668550437520209080160386736489089268125881941170754252969078115515196297191084873218354448966588263095352516056912387725365915076236189685809457975505470125294259910268876697498084953157588331482623686964260312577750771434448717909442729557955762612804324144819693056179776062490559942226259638826197173032479017658654067366766973266693952321774851967645618068300617160140126182923113797698808097267449734562036782917713827941390542542028121300068006726272254047174931412972136723127938735211970015515031854774964971563963322083110701986595168405162448153628720650207889195835790865286996960752864674419721735393248786181059942222634513814806599017855984711168800763617816319663330343316200199362494907046866390268471973169078231426393797378572281369514561545989715871957176068797396709914290789369280214976992611370957341231875696034256154073140545716355127673406070442060203143858312073781669562746294758522855758510038896944014821792135421354800516181199775182531569151829697356981074146151428310569868757852810893529990324079122744214163087274844811741384775776660792729139438962950446211169769155524325145829719417792761719179153552483203508316120106356870611603090834681120626936597801856960060168006065953337083164022283508708573397374708980352212422701185902195533305783783995032368045597551096432090479775937025117336017369976309853055314986492210306477466603809847055611002310768233533809977497779498867110061805322283443915834017649322903312768887282032103259178118778145556769019957602054943791910654134809397452233040265012415482531390978033862641002919122401363884854210499421112970596819275715555525804849028096655555183742661954849021252353920753094502982141877293677116095757729856842790678418270388643413851564609253221444029233634594135938314131174639627971635078930579104038270016783157616558264742418331747797273054076585114868985852767785423294199023023328580524749492025090874317946050396767880605924203371123501934160603863930662359667365011214530955761170729651260764227105079342493893276458188429836922155129696772516188849204314568061494164178044109174617065255931871914669350096203641633646122098138117060874080244076593344265951848547323279944798219595388832461777841999949402242072328605360456413135876834785610114483570791612727130460803273049269711673761054008697839952019797553212793299564609293724149654156012257553411349441148338826863789393074050192959968867798493557471863402820403667371072920536376610599240828653702059359434165701655800678955577066955453042251902034875526085802002968778886759148871942400735557976632948786592188929548569101064228641457228204542598412845892147764203703879151507154638762767969273496383081166445396385813575227258634811984880806118098088239464147188722288453050229512500393517426508736826060866862883586670335199947534666993956835383094826493182116436156197327864207816527947725107378311487387193909424103986553942947624974774191672023758442783001304587639927314358307421802320487942081057566629906410309903784571642639044405261853259661577825142144658358132528418321085377646928277482993860645093915642036283907005385495553143126428940154624301877134486097179210774332553347603815419460174921925219166984646746298624770383545494873095413317301889437995171745899905009892399404773777889347323211288585698407217118460307587214215703615578197942966237530855420337238458408926160024289227915587273369267827672381742511922963577137392452592617391992344923622608056524371992629899041806460309569787294264392862343411453390756927538086835118838327412807888111858559903344711070183851602285357861622287225087060381404253925789572790465760843347548680247703290636900055851562774035719522949384020899551966067456355295469808489208565427338238757175473057298450718010166660784721808714561882568854169459995609447012481220369617016339938016198932541285695915923658573869340094797124242936653732479477925075311564377985126303396455698350419255001869778597176576629452575202591396352358644474726753027971118117980346175145612291599234808913342542771812312847665769990704663191152496448037921927211874679074700299616055909096269573134769365406564539588716906770977039438598344307328292578923101902418103830835833478013991726920515837138776057487392489456082211021674336293667800334461561669617813129346492006703089662585605877163054080940600184819694283205093995096725900857008165393820944620641024295114619919164586888401505159224908348810637602433318842174097907093708961507737349693470104479969808758044914637953885728264242896350718390350222716439178722682919809257878430004430521670292328111238604658451342828079329551884450292728728140633434004886980022278400961331586603118612271947264901642799946128022812044202772500612434808642822263694131087547895204507211001049041504027806058003825529414614319870784871801592812583764729569648635149419887664129783659915732293786288722282796266353391402735038610032481186963743181470485780520916573646471762702089798413189320991600527419732686255251419235197464253112826183097513369533473302020182708323018326587311666822648862398289513620718154581161664365215142665787066245354963366227639657384174626862493174244367748490493038638232364702183464351956818008585612986972364551515488320584361247936002788245737368505551249047276913508617387163534503886855251489637157555546575504915855985019022705683356968760083505612657438614782041781778385229520360724343275919778636633701930784737811278228023927209109001477608800316751531241954496315896374706115213786830225791968995109099978254350465203166076081990018075766044371605237583492067624630101364538691437075425560268547394403108828108192713900447975300844389339286169429163103042045148227805558480096263563816910340401970666412321269186804739706594609846551392296600270105813341430723382722522784047970335937799303578702956841645988432365414095149081907361888570393123418064076296222114299255998220468787535540292835058869805609218385796942871043154365977144560707136828685314695922115994556903859303574182568481820301967203191171621274166202035445164939332411702755228203252526976543988068383163403778679743362448470866689632194736478747628814918012759217807040926047290684067334799908911442576443933999553712824967377205603451562164044715690764475967520065366230599146885715587417430750857181169339438549476118004632723169693004226125920696729420481816658452166648804993778531940650559093608580385699479500422642029033537753258357243331272361379035596068187868227234376708239206457110812148669607883846254834136794296709453038308253772453821789212757400624455076245516061436252654975784292207208628587999585582772928256405283612825271735192723014392991598661359102649838053470836875220031628728137257892494792571617716335721554348249586379056133445575510017922982837174850763069532465153223321636632135212717097113300653088153650269240659363308391986674487701773971078502805115844172612330319393944371941550040822450293236299466691986305807701346966847559478618496788000259131127245596053713717579766485203692682819268039054586137830724114834043682938101815966259385491326170712547084402137724050995955661250962875340606520442789139219457935160127712935513688091879505827669517918157139007644861522181916245404332008582671163959677798307407323350428944817631856005436255237973569890370238228706538836441387440638693184791231544229775852519636210459568644567489477911492988414999893987392031698246805043767990346271580613514396693454777741027306246028330923071420097052738066771010630013662822858315771061218976787088476770321219946184960118555303773317775100027834282565123039535599064689518329385909591285518649677769431741691970743828657691047983887059228184975174365884512797271168845625969468506015037179045041144419720958767555991735109303774533536755898357808179556753985438914442847239401290947100811545243755778503535812376168723605770691827343810215191575003812384483924020573609128647807564669672952289379382586845402798005226312544108171822137076754169080759531265451830393527889875610011624551160335027122411815550020865512160947338144547217396291110396033625504452232682362788263230468278247162446781053345301390808339328181309724242441248356583878042820943252010417138677444423902146524075555181944895309191649983836138686792686500411798173558766049142909511627090374210283089233470130003078494843256074623603166069898784311383073353581824112775519032175365239016637696304381064851688442549157993364428220221731235483270975588808415136227253241540605275579798039703123874494363418606577091185524084792729586352990962559067232535826715148272140319817126425636288936004265159870267071012230873248435479530195558676158747465806733048252244021346106831449915959865324380811509900929089662663255093299377306348299294417975025348920610391174709708337445098987601618911896337290842717114960618137826237269336638152476673121307232619673311228285678585847710197000922564164081962239869617413138420874304444568617056929910450740033006058033821352535993619494281548866963776623839550067847106583636142494786362643602932383193715917272743758537284634625185849420298932305177767397253206811781288764569677890207527425395750571062731325772257084370296303306738479846205397348709395130647337454210484194023966211930050725919095960287844540656244548798503075344679626677909878987147614764119697539020000547479128614251039035476606199400542899599853094942145435699801391113581108027532157668678928889991428574195841456174370586656249671841260971301650911499231595552167185866126651951493039938460164660015835461846448015878449773488673739959081506083625042082887857274151887366161532665636010008401459930458938619905438806894901607543308298853591939104505624526613264880657971430885013781339515310729965906304105142628381341678438645151922211794354651111316190625306705207600522588616280239244990713884373477761524992472226624899151684257232579309405028864431504121829695998927659013491902542541793774158052149251964553040933286799798849455746935981496120704026758768779676838122101234892301333256626433961121636334480475689950686863914150847112467895002273701707297449544044928394678537534911865295693427512364698917373729978021053216113385836346983176020382472607724051917446772641928443030412169173323057332565627262610784399811242728477620845934928885363701894969333357252053416391294473882634955463899182912061691614033364277724938207175395315278349373312311154790994089995288601656586680658805308260531895889464576627544331273138120152308108206447771111103653544038326092716436844746613426002843309004575405886913715758797218247652532306771050359158972368176876731686771620332374615062507899567768793816369211393426444854263457423721345028847552666206467627944635357212790356280059722910132381141951870519022998398526448314853336653314841237172354744649068888057009921907386364642441029845325009211757658037325374273932517154706538738881898740754078880444026987691785160441124248467184312918835118732346733622656034330360973525030576993072256232691745322551988775925414173972091792392781890469201829594136850412670534077301619789518568197265233035379923035745967084106642507185141063897240905302518179890891181282367639857423032955976941055969326578479003590074604431478183445659989628464920859362565048666274125931663924985461078977387813888006121612183257757829370582324615501580245160879813356075516794922706559988760138568117270198325441635915499571947114237550991628489162502028887840969936416433884925448730920303522945699235768690148128308235645021111496075231788105305937824914523152356336184216764514927826810414883609885971654655928586007584662033349005137530934275506830646822192519866820149146827756978290049098080282052203238915920221675591733687591811276154104712671432359314493302148812314844046304716541205747533899948311615777844923386393375472317457413606153924384279719550665506188124873410819476445672875256453049776670714641090926237186652027104642125796955722661540675632434652922159529647382925078767044371016296477792509577554991687484467160530137647514416922267246532907598419036044132575118134570670918245082236396695243209255004965027087391625515668114056310635935792586278676929339348727642404769515152277924875285293421693670380953000462363626596715380263845953763475337072383401163771342677743929981645804650786343988249261466458526931523493751434922065080456517553619104245869126088532989955222981426936421593484907113140848212223037699211181831229315496063612184930289642429213727964801386912963273040347703893042099634579358348586205803376711330755683753664155866807760500412679052303826524600411818997989156492226084396624531681302034557292533341565628027974023000189869809090988064040998764071332751519839444303492327817446702167196655912141431832569937925678892922981790111992410781695539129586120451151732159211210891080552896378768297769038854488644684822606898294634691545500995579215976567875483602061199174052692620287768694367350829236733040801468358955870040284142818389115078806892899895402074301002850658919851043708289720473836966702554970373183248941573109029897833614885932827136843487751123683083932993581365242887832791106762022224539335837865010892228622716789634816979186775992177058849564924918014838234283014808073825629623860494070222154163835103516870183444459490840319778344883903400536587225326737553209402913133569368737597425592510615377343184690407292156923570436034075997920483903831516784804814554055259556776428643206626585184729143420096427819730844043101130164323494616255293900035576322516317004286406609128652717101474780246616434625567411356671078208549320581972270247066081607203551564704275425268213378542530276366958122703584828910646582651299585521644710688957915081712229192831935810634614479463137399708268275516295389330873205879020943311794794329682058551766272745238466078081135582522271153050462383861478664751069425345146277797421759778510005832955797175606409063572795480585504313597139058794416250275149463521533307289457186830725303312787173694692234387915130012389081782978031342769011507269379863179790851879112939835758798291745705687458659347086742979277468991840058634771007758448478375669069349234208433178007127084035418655581207907094160457014109222177259482094243779586063406949021763151059225932578869771225879473264003540618795533174238166740607017869001900116758208325482178712707409591111003308552768829922721664647317341774233603152101363473232700494732144318770024845998065348892258900798235956699209843866853639813880127009367328087882822323228010305786791125149896820319079255944309001075197858843589803381281247267525193524309578757442628341035609665595701413305930228557072493169199340871194021151401446019475691850665639430532453866758031633002571838802785683368544770151971891314808436366706531597928928129128625239379826269966447885946234956817092268189252184658782249514998425756074327936977087246768693074548663272161068634716859371480962382260747590681975233266081852223396135395868428844136642939269202749875127768290428992517582140997430937312844237211371228980865732294031813216630687316495515736654765088416465639094420149508029713081343946072779020212922531420292864600888398155171415448429918802474155843891087674543063747879958204172962111685369289742288867264981595351331984909484484818188962084630520769664234080046603998411772307221466745575721273015471620831221979061798974846440235861839120665534239131600256378977678377012701454221935668488446939952049124467158740777404594937452600972551862195832589199309325982642461587204048181219719754599988501144136236903181169835873051943496539580396705375898466146007253681065853726385042721824914115791899130155175860191286430324825174297949465843439664690023010543136022690843229342170584938886096288390659795480153690807653179185729085696170951442111172057655136924204334497496019202724053258816158344814247046707865203314311678086747757529505506785333530065614830057076287135777613067210350904689461722187729466550868393421812530283310861661064554042426348941150035132266165367128890868600497576914404298322602549547775731344462328057265335461756025674724446347810797734788768097483857872128931952726845992002541745761331260578632736337354990166657665374402838344572299430701785308908337725738861999168485611881427156177658085279121541436875910602550831437803308915842541597209576053438980859930389709894427325465079132605472732919980722732488028435394457535807220305397370738925344934094333711399093534375576020147897341634737472862678667610253538046558767191013261249301113253197131852132221326394444447542867557644015668565141209758450446089605087250757094383923696846024523079217519890426446020068928178025921005548856395733708086732630240511497396653609571856682262881248758265603377053727528251397799396011024287062438521133099485353228115818187880565460909256704544760865707652347557238724167078590398634250105304448629617868606483403165300906032722770490270963063305425013282837284170779725852006984891129725793632050968313559921370096988633732552948272373482658170455990674658829506345555720311256998921397755713431313221556125577874741062182813258696776497857120740939259803502951636990410423305563034007743272920521716230843991759609019430036231302836442144031546284682592884908681927794426410737583540736868329753879562475712979885904311031403006175732544884773330937049022559225826296399911111178457251679425365328561072791976846582027041828237986420154888048161942903813879940152516527618762042859380542678639015122311176685022331291361312087164255813864104864195833815464690350485546358886085327438876756786729483593253708101032452535453470768908314364105691014451491363456683806424896458086105542784406756650362471990420635203584355870608078280541826864948102841960498886956899065719299693551682428816357736619008871825065857971344045222477574728383335501137827830380061384035433610286058967919422664498095083658474790672799148488339811448055963719381424206931089812602222703941454106120430293979543843345750967718074197919335122426872751570842179899161597349855045752368194334362464831373959764521354542915337160281302964610448910151536944182230673497356001198072710619141587864306231701613264041954810305976318371054448491154120724110735940392032827942264382054432548250863153288912696053231325171270382098307012233970563583843357579428998262684540190467534554975548325336355891017169352645696574399498777363019878589278787540710260006304994350641851878582957910638676008239528248793238927343001621798701574972727228345316850400363678319863306457397458930600411948330768710435207081268257713842052122607823324783445516798996672082688930900614825029938457434441060733504556057943853927992815970641700120174511141653647083623344345672157513331731099021456758908821400690452740594463101995710544738307714156832331600774465235129213618598742518352260950967011261232873587347661818798410603915545059103383982735513347062115836909145357250917547769635410525637294936999172144431422835584616851645579550443214091540226555995497026535680181830403123989708425078829063086879221308940361135972629072907630281806909724481412939570207947011928274131828814119284229397857104949057143395766458134375342348552511303424391012357532972746153379389302675783380526822846892382684460140308227104736323017514360304829502084590259772823923911016604271645339381368151835777247415544524944153141719409930179393921114976388685814670303721712128597577509310557864728026730268818879012924681025910417799738506988228141570651453639870200412365809979696163961115801783624989786285710716286092224465441384428218396416444215403810515120483595131914915090324736903147698198458811377378358170295570053688058152782262393510073392625297720056819278465025775295776884360901898894792790997819901375713285641858004310971930318148677738042808584821157002691744790156812876669658230820646815671809085318847629648425813979307856680659988076138869260764860188487729464113030781806348053701608298896674417904567002525664080854383969380321791832397211922088167549916600914107904193032293201840983406321192227649440255799154441195833712963530758253309060417589145333720813623247673666722062427336810868464410049888209126783187183151601000623569758830953849724383515391243366169389418967653928667694972704005311305759741491419065012237499918556980280620141449859830896928357452112819305019290117853916570922611513938184959463130594295659376807411865619922897182335012735933671343641728881517652858873456889679545485030377121035842227636097712464080907514267251427864721834381125982817692058782159676062204590881617706832747127840667268672397675805081957175295179543858347645794950507052407080227313202536727525426411343944000506606995858848211643069456841020040737449787776362100399437400501250449579991264628908135342720651484968645884509698589617499260194992301250454947406054318046117824668187906161873097793657801252775306518334580156871331697144886479852874843635277659746502924183158062746355732931175710425374166600484787822748540084618926823765961227057430614155621947255334341227253229378402613491777850862270032364191971664562801191228638012225438408735155419090575363677611926711282750755820039077654929186037164387641163158086635300426351857959377764931850815768721566418113799843895145419062437421190126904083909697574495069980272779063084672895014206491596240157335132440798973809476586212400940667340606240021860418211209514030900127151320648058523997790711379859459782322145202232974161845249645525795929176603200116424511461287976504118523158880290845535230342859609356247569202524753860001951321545863080286777505473412752476745763140323965639101874036330910141230692843594714974009219682637705749402005462850710320307843357881528910195348533613324218606103433141953790316671566637985465502028951559964804860409808072092087810495146100173913124924626900593529535957734175704786403166617443850118917801714206549084741865216841887056493435852900404539284001078249068085445604203328782143051602769373118879027533196101471346814234781435955619247179941490902459203659404817074770754953618398187838854264885688673560260298655295874328039364382352384993583055523553925319454330782054791925730209360014822656678060720757499364907255626268569325565759071974837990587476931551734622422460646212412836928865862322530390354120805048541842214067138966649338753505429876896024493851449491720120419036362330091659165795436397522461638340333575497193771827112252752064942860318807833914015896057796841527739230095870278488347219137649749667638604354156803625458426139018933593466169857766994411047679112210617853146529633224333354435320103987487901231847377450173302874562033376981388130365609999607355387266601744271833983667808814564295253335902459377126053659129150254192047597179714066818031227815151503470236310704688717151015498888338270848913244025903127589165179350675789210226059197731969046203706309225770327971330035115680178628549663326299962678576443214393620151321129216893647933819134172533140851573502415523713914008895154161171671078144850699035554072897244784107621636111405761448361833055616813942754660659554655963834781221655059375531713669098751693164900229292532298528431558186841740122417135901643554628373329758822448229309007252616546301012637257425194942124042362715896089620506701549769759434717255504218647882833823045126094794198218532702084963242194136653942682889818815257851247106321054662056160719141503429571679073245435978641770758288263389673583599550149343875933482791511586631863847085981192257778101127584646888045578920580823967019293257086480624736009855259158637850630963550007214359935872990498772433147019733418426273384123748779637827210685830301806009947563292557877157556508941097816331312814040891041650528832253499535981845775449350752406708322950073668225996488407016750369340535269817999284732834045004067149951346689135946578068024530617727458826420164455820411548703178513815190345925309400245855985886102941370474694770240954708537191930053063000374615989474884362885880874830671366139789376196889107202423507047143136663358308077781503323818769142582845151050702790235790339863025433508874277516142508315815595495087162970811019341262757810874467787929926775395839220215601879903446444843282943221688486084209070991400114606685950701479633741152342301612159227781873972223807083715615632429318685676984688503359180649891749473499276749969504475678893593843132699884394159781298881140001960990648412072980692871092439418975425022758505840697499530525301679984195936199960204691393850158581011263476548211057962522218652032773804951740326639698683733556651267145583517486761166793885424376014998592980418302525060031543740683626642257438245505578754326831745763657000537738400473219272892868212898434408686711107172658856183098368026861244224507960861576237841268909099096078381741675052674878920902821646182037507871249375936511391413126593981573548959861225680766491301146648948078223052212760893149876888314378439877317630037256481369928564184447499532864225066875120636833960996958927056493121445874887745304418938874781809886377729688884967116063158382766761528803810345067480123031106660327624317713597485842056470305004558808464347489907230662973159283882585338852344386526752504601136489753564048484626377489749603633176953382268135340164704363959285170593116663876580846931453403337726736864151881493880865847485639848324155582947153996422019260644048815150245731258893841066975395515061866324049572727854772135373309995539298678294537533058105485108751103887955298738703408710961768706824865958398540702216352261123892405147765292186839504830900034380142705364496149995490433074424717074008083535665946191244277763087338105455048208308572220774375373002989544025591427422967405729014210956853691271860718503895806419798913189098085157523122041498745676867014270249570887641796757232251835950129968113577613847227860582526369318458076888605097052947454418642855017467526345435264290703019636155904711862948268580079206880723785133275888103306840756956299470702825583043554988394767981658740429642822931796240742932919543481636131286636891966294649188564414533247028185984098008172529036019003724184785441494118674449438505803811827855320459909211588992223243687213853790500443272276230804700515376200475000307380123748663057191228038508896285408820730910482019418487725364510774108139600243076677649021504341274937708943400712043766286839048991746864629838394907261793832632749876562606925742280067415069757820915448379708506442722518901491760420011125547477553379566435779706527668987512922701227367413865985566269426469285398952293631398824604674498642816660374619517027516570839418327802473215949589225981476309646049188959523975574753457866279867977854650594020416680822286084948947226198022845589486174582833900876114197850502754872538189723377684830036349898479892526896154545785212272550681533529872108349033887581290889233918759537807291638734071539300194359252205660056166198847633423259381834219443596910383335736327002117684390454029999835807297974686170029459331645694041479676432961305699178978628786374385548656917007173182571381085477443810732447387326269935445436426484001896267648047180725951277659781650563206154311880095151004027750962140160030003863580702506628541546702086170407381093596569827389071314227089767380189203969262243318335238838694772424399679804277458754200866447216028905215613099661081389446631436778369158620867958113511099350691696749916478934812278807407498031843984157394424660816244819369863803431859258558144156200457050533630411796005095490883518621629848255167654656719674464949250298600555698207530889329617344177447021219716468574624727304570482034891203809125347845218368281881580608238887180143875889327400144792874061237888259276804786425279348958428710404722091771496623419725138093942531504500830501874385682575927021229272667446094353439450965484917813613695233601564103403450243795335886758527484587580930782059530897092554751072181775901058022191688047588322399455545628606428477237741883532359177410918217398233638860863633504219707241803443841870598250507488593348283835139932957478817448287592680489469636386324968201530226722212663989824867603655937541532485916748070807522651762362158183710758703792106922901706632158324693204644132246023279986001556823272522797254760166310160424543251130433931729676817574859185824293921525149110131780496378996289455792927085251583917304601244647081135448013449554471331270497607005180180429820162102968199168876951805307328104265700461795059582387155725329392602274052033956929236539429523534546116842887268487876501311906688965130213522470922914226784814976515910296206148628070052026964022733963452405853353235347107056958163156271651214678348712807283558323247387818505305108821534354736711343666008598436025307099848805381071894862976449295022517953118371886317125048722963783916792967992152362016207191983243150586578593013308764049710459837379419536017072007251899053763838213941708777840774341692480023618291236045941326663628787218942101263142852137004790861852354878121644866089757460100849103078394685201639424957005413737972082455504974209929244832646677617175676614792383085435275349818929008847915902478067444053123541087194939960562540666928956489913372505731360173270573760983376738908431567222005036722110221107112656329013758060214010399614374012558411124508427177025292574732162268795646873475121448593219799283289609840710398922696309202417216965534544646309644186611481505706055619961041181513789158616261410237382005954300777559442230063660333819018981650153789171828025157460184727327697411201573529818843000445639755750632016700538818166381978124721807274774045608365176475490492268883634589297232526407277091123238309381201724517099841419570108947762449533968350029283580165687589046887213387871686784949112898122027529823582770443082260372509970829049142578756193598057966915930737237758104996711462733923419735446110656196436818836905350665581533786893241163204281021994369346467962042285904460978715553204284657721228518179265366763166648441912161197342274278534299735549453943734647286649687686817129196266661991330738239376746608792553676100907692463357013466478115944008429086586466019335156726515399157417047603553933541570555136522792759236966706411514304473619346601294940428221443762900937494387882865924675456554588368265809888353061760193468407416024374358622456305206072353086119051100057453434918748108616646238756492228188695936918087290182148626299376107269161148973715180154871353114249076316757296000207637036449776443596149645697850325168354274927780148808734710012815734518953581296317459204402481454818381428891514311734251379052411197010958834966644867418249569932742253740396428317874945350598693891556647148380405348960350849833117401593731300339665573786317370912473831016483068767482730282655402264965428885582858416401584777289008825906500004305113438137225522921245234416784806001100442018843730095188954798970675090793327574327222678319187722445362563601414715174955285570405939137969405569188524505273182680268764345111507002179546339015402042428031672140073379682752972455362843473770354910284961752806717077768146849246910523332681844323127575122090694087971512812802797542883290262919948053399502472536222270438716825960371800357139538524562773213619135719427628159840936865245150985567743468908294094570844293208733404509737942393547303655350946524038164559356473362799550945185611275948781145655878931080968906342263240450811876963005136175986946986882085469459878128393567717745092065617757330324594268629660502473451830683654454285214306834108890568109768885828349929905925310190418961299168327924781655779396241767346468602993211075828884557560270738446965824298972251378007160083941367993573924588519457851035521947860021945697206677402797529914969186323911264071868159826911032436642201472264176316915711937501706129892747216223901747438950816561664687867453690458891242665501295405626960502814496094533200856840609654797351757980861199012095869472172666430977977042894734590891212684486219452230656508148785140829896888629310003104517091335069559266667598248034157197594439654565499898762719403766985880128615449850660235338315316465730790483778027312405095004745853242609017954055510924764104886448963492232116656297280710362364874787755940249459527413980798769747345292357380901849510624363762623311183600882254016046837101871495733716068496923634756522631221229386335616156715109954560841492013975235404380964497534072826948578331131411986439874390105649503477393509021390719989438762529626685249001010675585894574679389255141073659105081207225813916147382363671570902562119285844822270113222528263981089787609954438355479461682105664372868001916916953741034062694214805760665154671429217319652018624038292409725263838909195629422651072363065781427064781469574059988668724801886531619062868530824609765386267181310483915025951615150320724112956723796108229245569095501882164649809648363175645509395061815584730682932644588944639964265693164781900805346056149362326264710584427869564478756849168165036737709553501449551077390965337564610781373850056017823792149530104516055996166996270157896445657347493163961854072879979605667971954017711053324100917339869129005908480505057215460902435086281596430892992648501648177010677569868415246799846844776388791389234156181044457513439919235365808607462176474306255599700467617297195476904339811841318626693167310243583149717208822853996893280912719399963698825111246860653256808533502975155816549531116722394152987453183622933537479783225236243453579684468294863033366006332013652804221760774695220339077985501753008227550724536060027473237291717783373999240502118583350877916366425433899575959577996496221837074488871288168744816269929004266266544835796815323101386634182490428616101333377034955047497592753801540003096746240791224638729962554052550483729329308663777221132087552082910903942305950177366715630565722342892725939380677652483069009252494968767869760018921700996092962962510201096633206947429713838725833117628664103852036811814188551448260746934804380148558739375197938917417467536108338557750213959427998905248429600099650816029530841150868608524288580434322917983740757140036277773917832988167255851052771685531420626267190430935562905407940060603662861372284317152697559070922226069713112529496468001244633873000131305044403895868158198642080493871704182162286800077140470798008434289460164080367013622230083353183712198513587130898708177360980112196733041080993437830888763313663030252676169331214515093802296306076754885649883713617176006273417740145082279633104567446264092123617575378525270625168956163945045669236978524292193307565325957755780159271187192718953505085386819217607298851723913073097049793565346910310203303306572094972330949294383886298004328061515009905242362404343686016921174557927441670852662814375938458377627985686373193953769793472212860135399037928958185429245294429709179341998274710577736848024680140264902554271639188510536599325491842559383206932702292399551013283421885364177546502556067823715391709890889210264238377413666846750308535314756650071900192867889879058512235214526420905222015450477587807436658958309648906560079416194585990328489022969538365444096261166225140726388022759420525645892613529325432249565938491265157211187189508274598238028785809826759974379435741927264500387602786998857324943579172102920956481384234804713401738849707056744349614914039847071920241171355466133854386011629851264284528621205539646538346151782349265536411535478752913681929949987658322711258672488561038579350076060247723509832241606046723643223125722184475485924028626803853941654894880468031832075759019221781915759977418986999932342476514645923430716606917450078829284490549991749027319496309363432731836032664427990647454942542780591538778836426559241344536684834389403124814132200726810457021426035125296440987970274027947389723534427597288860984128116164217414522403544032196878110731907167761820847200104590828534123120387076538535029736541049600863108972298172694800048179162902999316405027058788683112933454672797238941191576340357936098893355728653775471820390108114062575084781086012015051562385611122855571727449742924178981806782726242471461684786864784828113483861611598253404738635583782844055881732768809447354854180600633222281369139248974930765892255070196777552478716904293837853091431862887366154870132274235953272494406361684415455452790425701771598622626802424356396764809827832665125167013512928717161392877412660018433148433740571684665442106697864738124675366491300020820527111689373421253994987801086259899481349610188799310653591552439859962874204730107843633322887879884727616137641666071547166319777852566083444325232897672954509813497180156712116651431028325006609873457248842941858162168137445667229705012407212312313393175280097265478469092776570575786745174508105784726391113305202646458124202611636300416819009704001551385180875868630343665974361666898028887389906786442588034035998343775384257664323651138617388566811412347021791372740809012485424445315680225782637595089940966914780660433754152240422271809947499031133971660737428505585934588205480771767741801077884213667993311531743432715343130326349285730593635880852065974072072923395914769856169256512302538913620385552437003963221003871010068985327819743726458089167308611898183715522303923648395452734170903416403934435776605641819874940684885908030048467587985720751961311964314006316243526267188847648304416353932000539894753738221240288122071302655805861626956344389088592261141023927832215578665607943314678030961456272988431419116196103596339271160570753250372079641592061312370017815557006823829157333150947643118708388935816775853328559225358867417937230177115581748070401224249567207168272828164533939034235721063046976909581162609086300132218330207259748900241595655188211754778653812020730055082976295467908270251950404453717716325094507955655830942314473460799991278637630711381186078058434689716648264458601885062073355296091700107718522604616548326561326022351717323004884224264637406541841072350177012978395366127320437605070779256189610334562413812896056591827145174128933070185891050439286951025941182350871371239198801040038976565008917147399129488386000970810769210757106998537708009313595185862260705411169513063704965289819475136048242777672096015673231809113906018771917719560019662728392925020800718376717248848448980587161262438193457381744908031586442081017096397643153415471710491802270833803123496091327700165406716886081375210413116106154731785121386888054064878842647589245535347116667725474805775925392353930213992011067313891899433980662126057148343656686024950929952130839453886114905211951621769239384496036978876540550447336710160264145537394400099676889617626691902222630740797065794049397941073222036817932891484567978557098853709601683005718901248619583905722449254041193315130208591657429648368183674970527414498701581329300834631778615473831527003341999072566432979343361929270421363722669309485629511551601541169326566013146992190639625695969195736185909704490750369172993626346911097957989612769028242084348428569989172570925384851341460598739483045327230320906801777374628339031248668705627955752098934195835350581504057464454059531040127481885488033776894857513219160722415958366766087561297243350528782515647613778610295866683058166763769988717711826699993663840067122359666754468704852414183381414057426683121120421172082018430014627474611416366600187860235124786716932261252262586886205775961722950649427843843098610994851723676916081326914897501663452882929492033473033470321257531504982064379126704704917944449796094357487579179102024275842676396140721471778349996927061033298805213451278341559558943912612612408113191897440562523266616209022745102397744109368204806162881315134778521477248216949606830445827047991897901355955342049295619444494674683897105460969566643599718639514572353171504342374247876116587471835668380924582053046048795023730524739679021756604500797795722716631834355510947249706172166040497833250915361890704083330287120437464787236156609548244554188625228799481213316126778544008219317596365591570230975973545450443094507416958294934587988916364564770962330529834439745356629169614811457876973622742431704217585883288224799340807321137633293040597135530132247504400447777790323328948120885896414561291249799082558573544965800843757377695101895462015231141591197471180059233084456954305307924113948011725261395231810334444299635113698058806741027496540840252109714556608624860801578032577531804460019508839659682796925012606433254508117197162121545374976602568705511825023570335525610724588363175582703061860409734373355065263496368665586653374391492957898176223839927405055161077505058434896467676222406557148371132789720281777157111021969414951913811259860770759901324928322055338708799761321528743247156543930051946194637625654804123922540405367194587750839768727245194775026192002745394449979939092842906781814279184258407787989476600271940722116541805268882647003164417417693852444392419631708426247488224261338052631897016772682740927811638584278659348071173662389409096945423450881840712544822374773549687511151714183086945982989685961951495596446277861591518076639734562548183801599196219069451552401513488474842851312006892895539607693654302534498130738813430773581911130030646567089873353020486185547610428495950483318835473506743483923319640476838938182103603989810113593265894826369037131311863675427205379520325188750752920982554759633919561312676395393095971874029123686194268897083336071018108658612163302793366730926398257496000608299681891312373433885412265601134601287826141891041425785451066046615814712406138703384058618516098504420943876848023215793462426967170856606825563671554786919800511615997563684058733599560371105854282654755045441583218156534444349977632829650223247881818540123572869608115298276194432181836393762319613181085426490966631125393286673621219619465624580033903543351271357185235958219180716486547942389100246128443634258360950723355507271874577410318187345550412562329050689804642375124151203295500729278116757392657799268721283394171438265705668037810449128056715653479276655727715618636023109810074311911806450132165397747495473450482328938095936321189292689181703626703613112803061530759434694981789359501933835440632148166080369950270227830655563927420872015062276764354681554855041257111117686630551152169126364458187509907789413478654461381092205022137401626075218220493315409534115002409132481773387298159972008158136263796005104906850081480870153613860734168161911884438128842184142095173556271042870764713893429130440474866295427241258142359053835704836175133260478527135884385933772142119904017242030621991679566699328414397490308618656394109981756702957188924588692027960245344444147466005934261691722267644235664010799172391624722924942771280793558776065339868905482443865397484302575708150322019792198322639200147072839653041730674278758009000924617541669655734294725071541418244311588858469336083839297768968766617977437813564838098734420854891961228723163261461581291339102822745264430691869909338648820040469237430570741181484045442821034724177047902071750962865124277221404643402341524335010456288877742974951558543889796745273400987906307459062005269963682102054609281669143889121519122833171606942336992293499551930707421379186958744997907186745030899277712528406546356065504672881989489500022145013644047615472837825003689203715934305192456615015209911821897515122720007275523423527409870213086648061175962345884517647506148482888192460352238145455853242435603908683841934952178552216899903433229728025365854737222239349544831360219646651140501291311061249917034803999079918065728237271282174284681395276207110564325380854027442403102660032551696993424312611560873351941552300694391311250452266299068817633543655062444707593725150501510728905689509358027759521354599856196164968194845567006253971900030559582978255416548364472503661075440718205504012172042036624563196147973859396625128315301612656295932761434998358827775721406787457920539128163534197824633406700117923324351369832317477779687447672672769192020178624741759483214756460171520802044464732959855984336499798160350245039600314729227814316987911848567081128553461548852252533648578905817767322047429628997793798585372614099724243510801889984418348377566428381808001940033335077366199672334798780227381042743885378979386044539706240476266512773286766964981119639260412718099784651415720168369232838522817688991103364621032579620164052186637895400647978466582066495838063917258513543172410002442024301522569607883044252815094468195338334527861970558663952620459829943362425875063845479423360331126580470775995580049806131462919402830551243190219931185115854795641416345661040247798279163949553915242954395639450581169461166854943411509547866312423297161251658579522810448578773757015849523137539254326500854029981341771630881480139917655990621272323392294718306327690672323458170157542510874235737752295788407623199906562624142819061014228308431262463857473585048649711786954083383244499617036100138181376274428020341282244233498648610602875181317263366931331410663639560941018525044297931036521500589946705287498635383905794118230953504825843056524953838829331806018373192700221383322451378407871697218052798963590007942784834394006331962824587800104586924715350421559545210878824450222175696514914057075422248284962019690901891716648172930177826502584673356963001170368952665913616538723028461929049141285998881993310799375595830945109055331953050130805829215353775233227099224997609579666039956451195196498778464810820026135694546041588516294564514016787087911402588191516252951941690760786380764469255955465990237769996150619456847328639480922232739238016989902972275679511799420629607901590663710579794840835002123345374642222547379897619922117527185992209670535228224005501785027029885624912066521542907893313400481774305868666625793600726303828837897598714867125264041517570364298406376913373591998891357948725686304552753557031472630276239735930353464142869507967811820085647453486113671718878692844535850473498900814577663130496454750650865054579730908497112125736010220575392777642420289962080281677541678181981951998384877094200182132513826493209433719153936620987124096982056047292324542905649248580752760309752766445229188442372998619465249813032679104445524666958893860028756152453862659816192320025921456490300662429541609606220610215289610693053673063365529500721873941301251272298638482234842731170496936420464733680258614127125292380949923963749896467492190744790849088334904503964509210370258772597540889830241239432988560608281536679421432219690510909973641849779834479829102786365661912966541292022913621802675815161649669430526303187331316708221638470364245769267430196699222818513282257433742891547904778995327037277619439139968355714716010766381292413038380478829386533728249200336158790481537229009504720846740785319724338246982521051339178068914240452223228651857938872599709779632337896871049990091167964614878199222484922215631431646945076852897917218698896499045795070436921123588447198831217416326984840767694933733721381675042387641696558420359133370782217095695108945490738154369571874211748949311548682771826114000991506920272425302378951781748819575254607884415858869454739605690017383373295159973635561018795617472983919594888235650375805785492110370601900834209851394298842156903570538411067114656776980674244678283277742281717936591231460165080558044107473661118594166753412539331015429485162135235965593120023450491110164260272417622224633705606659390981012400749811631681568568311996459121226738755698377229816008041463134768378371930897147437072493852547501316914878536371216689781011107160729138140823599255217785127529980625733087669067894106640864154296504644614072636996681423274764228596856586254162794431854631868248530962873543543169134021020346361618430402866738187025971667329617898833506595428360760597898023296199197895624595830115900833348516127412674052221020880343901225674137776710566405455667645054854516359137955185916385539303598893718262819303419904557278288423258869598857810010796329932842627646293213163030272723472102670420304260358200516148938261210516655017987189093253005673224999715539055099327147877954477031593766963016425721085915199313388526827810101394196442352457344434518669277927859394721864971460815350069004546904173647423141829507552590545134643809508979867938810613158775864716874863472438497009888623985411108745862715478773142741982101380427859061696930019828220343550405298346011032561602266320330178266604169204975416439579364454566505064713899924874794411003001988982204164331040071884837482092836446704487647330374306061850043761554435179757327132264746966288809201349636504378924952720647962170190026769141554480409223500654661891883683210694806695223771984867506528866046188036256721189475204600364550809833947279512136901717626574224825674204154424371034433124715870962219790920163669783148702105948279684595877416166376120469461927094359938487849558698075704996409816286537582637494966729338363401770862101802234697649891603813690179143741474589815233907564405498518671388457325391831281458833659159168662710130405384017574191294386907708380335659079365492947453458771710382304424306113751368902009230447757545239388829859305848681320533899697505811440597224255610199672998934188206582507966580587668558078218973649737524336237083349829999277407322262944104649438392700595717614435330495230879240273005174786052397419179325056898761257109576942732980819471320142936285304238245085399353819213665371698279073961050007912160765474627922855000230818500267992522606873498217952519667880367530543055159751095548491957165625999848535378172103325106358954391161599433220366387964829776219979447662165169952502951209577204723150548393843288486736234642674896920745749557773170016303171902681740957796030602079951478978968454703026951826162315229369123900290431680172276335665792119052677064101243344670949437678005144574902926217454236920776435969617020688784613167168459627592815641079647859953890196561443364973349017534657121482871196349759181741275822891654901740441739303264604143285284409272437817721635622034854465136179827967288640196107157421013084765761390074111402038195739972118133667072869989489428910591225289774620683318702434033189257749469946014870018100575906897791587870973242050015814466531106574259401223579745959287405299345454360567436172878787177313552550828325473331373099816389923300886190971969613685641238861723254985376344197919806140066194318496753940830750583377046608557164868029453725895987097082792961536181739649587164850447581308836284713853348796256386731004889973443256244635708337440617743104055797521666006740096473930754813369109062135764363892286492105979071227621831136806881221461207135831093377770408810150727720538882929344426183595376695398081528578458584041560155141815857762969420708946064320086334562206677278297766849677220551683339527716230459191194601505282495436292040074645312063537530755398552877462432394938690787017104609088617281895508444131398213783827575918723361765677608669266809612249088152649356947009125756833034594917668024700551788610392326767158696432234853175304330363151155803226927117640041541411841356987080724941675014823137455247327803790323240018404971284258804116464282144322674159550930415931689718585449336672286743950126996903728806486876921978649233314057019972892713869381689800032365150506503152127176409593983325177265394033510104679660132500284360539374229308922785914531794428986925733648739697631154328467307609135198524880069129854736838374606609945952540491367910127668979692396250990788030797828317620394232703843747531719541516780691139758657034160836512939008217292795584327874340941148018799532396409928407729313568408357878605665654997757061076918594357862542499567771498466327627914062830351960864241061097358315816463615352474795787372924271556116704856966111473756394096956264772155146618038491017636587308422882161230887569823727122134103490218156054351198006848151499306355614505524252993236058128171642178972189523707455814662166860507403796711449253755924522215077189386796572282894480974645405943619916668697836799646327674711299292169106621728027034305238685390742858713104911191061443076165345576673794475129252171928206828070864696622339244522942956163793895342995709820983395228955516028979782188255967569203790403185105560667044370815426411137935298672375440370648844806891955363308644881764847641273565275083364960126603545251935181412187776456459113522175858489412945211101411417800148052547603243814809597832375095113351205709765920785873148550683281058488240965525160904569888307878632441622789862283966667231463876339528014019485573536309227982398672637299178673790123888088434498638735235734038076884960534974929527146847653635926790641283909329256754166475575717598699761730512009648118906506058872624096716136664978406402938261185353777169843578946839446975728515841230144977164731687686777351752148696817690661420065642114664012145857273724190194898978778014593235099589223017427624372547306483423982223783577700431242760891362012873644458260970738112700200587937345781752667638596761530339733472294350138358553348124387092185184883815074788222365848265795643129762550840823028972886075782942337370821743899590254553487473826528948040017484549718091724994304233523515738197106139788569554049016005948256598767050613932702889924032307962016698278510219229087993896231665285393357411820581162219336641009055218584941040589295625565952519833496623545048710026516728330786737220480881556131010995334661768464699234951483468325950820796376665718372063591337091010879026657258663916624105739287824714874658903642922262030820471976106051509889072596436506607569493293756523584307531010847422494440611651556183704110946760160709461134125939262497895704973591670247880448526436602656212322705815237769523159159189860343554406961369106899137400533766698809256105653419579684793845241592097065039143314656491167226737778622683614436928208887655320835988020908203861401016300688262123452443234100812107773873567793234995049880292981861694169421878425417351776829898299553571471693069715181616029091480664990289927123029885398780788923785172142728866526808803428980840563142239963823304353996408118318285443800962162454755486873022869510539664916583667772107401331081062015095813207151689212905829724746203549154352759106831830463265460626827420581504346371099650390352233050094362309758511646284912810883244556733715965310057778733504807826773266008147909530973350467290299398986573576188236535502632089929452240654274468056143373926226025867438320459629100239773122103025552012339459856590424109786161196069248749009345352444343175713919586527730631565204032650334868011758921347711191152563538905781203320505927126028677098676474391886763330736773329471784324004625181077607075988728820696512125542152998687957623942786768589141433887731591897061194958215458741796919033582610474441236266863259687795022758273900375359932612305470051615190679450150549521583207461720262042270815000601707549544777023250769944659666233936399233228242110975011932941898840861131437387475890876002597896385588280284234877190206533192975136460194111508807763588210565690335097078242792947914270075104115630596562261816760608485589823412618878582420206112303508283509721753644860838022601385035234433218718796274083170301037053963731510794551432390478030529961593236084026207536169167745430090227033009117007797289675379840083342600952018614826985280174942289245901769852719480130512233474277627498140638628549686602545764805351670913520578452670089008518106546232125990576894468692649891459809171951683555850206625002892087849018540344160920941143549760890120418734846648663802188345608408960520149228946521025111472914682405119077496367287787374729585263968253333410463985941693635002797324655362399468585440963612686114845064291256783491010118539771538686555237076009121118968273279944488135796953110953051511690382986591991350260705552935458899410740720155587434019541424119907770451204244339743523828676149650474406769818419845933992636798838490354167995170708559830239487008958588171738353019045173649418409827932392921211667549509175926739059288345069794560776060452300289118807898836158053194327459933192584935973184920825871849458757875760773446854223810545840545322552454607227831737518451169718495468169934566408479918557403780352110918936328057961918948640749596460262130259722068962939590601920160827383429992705000527492417887561616065157209563769363149234917701160431919497509320904464225331062465483690512746241972652841419832304510243374385153039920507424359512280701461762976533819866540272617392612493783988110740082998466238452082341361427771078221415274510374361656234897852027279143259075408549657590660211357071488694392765992301621036573215991335412843291746609048541928463379078295281774380675953263678116593896999091085262660112635112310298366632471148600852779460154982787195542478164187412284309181400982318877890514057093396747341315090049500336314675203589026096220449989343587724609210144272875771637128558875355575833656081797150610106878562855756376286308873766483896347755669067055868380038273226490589703509760993374846993850213494565890887346573634835075887583908667954599341610119262566436836647893718461189335565512646379581927829209918256439916997954251888192078239274662462199857903497791383022445836073827486133146549177476746417615556555099334946753342187946890027438500045824176806771021942929284356164253293553046560191607484771493300673252523822449026721319640643420344561928545847524946406680947250357545422544493079172188566480644839681309276636633329487445693876429611239076146098428048213297828176159399454176160838024252115922345240811091366337232631094534685978955570799548785815352619885910717553414751532274384959866053331512683857346065093282596123837333804427521802956223205915426273383486813506343421463734028236792699318987938461291764914676552898064538428843336815750926501456051739037770450341594999526297907676823960744357103641385061147985548442357922424236455690789049440115024677708381169913476667996228584731034402229651321243383472585853648610306728062861201451067984668864256583203400029883099274610647539947111387935728732750683629633987248697243229473067538458297484793756694731058693578130057826079484347213070178750385901792424111099215846126348466343003571683482546774816287391357242367924583422845447959470699286414758378245557997424443062634368085984624945244954385906228794515333361132811446268735043226479150745954984288158436736385222061700105517144765488971372937265645477061277863774749510092880473265424727880827448685028892351954635626326084650561803016952253163716162358036972989486559471923326377614612420621656650926268981754215380504360189808549032264262346859514158292837953879178423709509617689329865729533394052868654843126147471517223164496667233007565602797744583325590633876320943527161124155994426148382267108868526856824426045958105168549551610650734972091634531575907329311576313465137020767329096764498767227628297133746442025564973888770941758567463656942312275379741244120119021757558202011589674916868132652464232522665973005196058494982689485494655468090610476535142994643963466197014715624298583500826708915114372982229529616558798463412813482517210057681179329362593494546955284435609981303056094651819488224531050622072680034912510234676326371318883002755635594219412750590222205424414574514235255430888591053316480155072157152640719547190218303594267010516370841572248414198007895642193325757393695975214132397893667349002232662797708360334995515040999554833295319739998815950560670258640073242655775934136589906969827855091268411673154857122969424772949009727820744040007263308586725765164951588738733695566573184109807012434016705682430803031190028109268516396707906721740224599404432043218064708969237843142029718537260397275943981823872149321876702239933954511689568399166387719888319381483226159222162952070717085214908930662938873892815884406395062224725712378452153630422846010102628862211513962656529914475050586993038267564117071012234214414730727302881656349750350519106643132383519050364945305033193259745439288185651107551762693428697741914926502301917760374227767113161776026689308014730408368198423221254638677389207410067565369020511076942583620505191560867508256169816627663589634858994170122005898897601776185668464349127440202583139412709882800905707135549707184706456886618223983189170696884400996219689937512106642263621774095031673083648126361576856367175596922694974148613774473876272825355970030865792093943261677598210385264868201807844707713880613893965468291321117577873322080261283167311100739243660916615617824279141067004637196435516372389134855959557130220846773006579509325988877688151341368393216927361292721146656654073883025813457488675659422282439527833478594896288970678543718684080625584655445082784213816536359732474686650630030635197150436374877087044216373551945288392624993025888679900881377412205206088729803074678835744918821232876806252095483149191383230088947874468504097039454758686250612384037984068594818391283423584061912264668406916838600414634278608745182442021630455920033431904542273259216491931640072869170434885492195461336110453783692401259843475963264717018293030667376208935967687760542720858876208088359055091718888918906971892942925033351856344283564757288130632383828394033073457982045528006868841734454466109225485104660957029018798520084476630473355131680253483075977875544876071397538837858422499115702288957000325094810638272113960049238494582851536187601293731634724206672471371344831407192026163964429945705680014207641742691551356335045703280808542444733705455396140192576138104712949747021290581210923113624943424236076618432643292938322574035233798354528467409257640289903141354228532734596565481952728771471894559951005303213810949911797884492139429509066194713317612150378277227771132065800522720639571404399077660664209962781651189943206719532481201126618352778976987460335924410500003808918335403910225219901061575483707534809078168344731824448956690146602639336754248280581960021083984808936226448708255412163370565148320605013553189577280025259472403490779665984308827069081966265959549867960866992313575054430007240349171845678871987250719576621952592073977085999693452685076420447609598063907184071051992439029697684576393466978573502600764640160171940950047982506698710748748622930895735931919946971724602333102201662010783182169486641147341984469112884979298962939434347579226513393203834436782410670064243599821954074424877083944811127185205862386902348326439498490501203317820751828619575431179085920260403632816060427257321527837217741976807621353805476049653299014404302373194901669853442894209122073097312286911930723819912707737443764657069792315326364071410202642826118990377691197312268667182335343803471213267083777421085140898415747472494539924345058672783289338284836702469121805835039983642103370701768178804503774344230180406453106845680991721432115401507418938996706659586901883995573324349085366742811365713488824944699906087048708342587839911445986106566341964770350023888020788895313111852110438842399247205403758621723626777868716733794692016858897908674238765627177085985300542552172028751802682777300561649250971305244717785269852454605632076202065517703295267365193777626637142068523336800037320278631201478248417842972288146446449848447068367118985974739747164024583789767431282785878849755791942379342973961290521195821549824295841543676142768271634091749533365957549585395276370013713331431628777695197249397868101012757127813785136821844050873810290653624458939568605251567723751977482126959960385330859714549141544499776709000486891735436602248043622567497895693300125642974589446082488875602194928523794620388070128004782027502025354611317183955325518954222941920837577049637587866923325008546555384700861550598998920144871060978310144361420737225462027010251648657538981769279285917323769573024444512903531691042743718818593584184458439612332547126014610942375704986522054234588518525496456197344457665130903313953811917270170178161358466101909544908897388302114864541316538196076108900096379821878939298016261979042913196582675765308088943140834557138457533737330252050205099475270309282253705065192236242901422961073142088718644152876123881453592284687338666811726940917456461324026966037162632588047843966017451719718885998444295684038798740290520291677984161650983776507296205361872699123786931762104923091788989119464582935572980062403101253490842213171501322376576585307423824258083196960257553075149291277736420427380102768187096342461029532279421974920371336402856743676133544393901269325902555182925091251642692039363155483702405908012705197467465070468645364496231073677737566750382161963203041730431666084711225172831145096370144863837326252238574194337970560570434445080359595063683561464494743188771688743963318747069543173961976716924891313478184329388051172399252516125210971590254422220055823598625092523220631574605666395487396388378477908879702470939314191505345665482256491076552484630398084732435198851056265391696462235821372197135817890131067673011670154418372278002547842494459046846134977217997692832948627923727672822368716473344850706795254527575421596622112922817908752403044863307873421755860377913789043484637923659895403506790364688877835462668318312168667507108313375979181062710110137670457681304243438067467165335082348439403596289217133554317618563358148361374554867219667764164266530961331408500028760195348578290518476516100356710717821943169303850050552175875066272021514704360389708777563290903472672854096184116750078847800763686382215457260169052487435858238443011560120494588298546227722606822657488863496576592176311523114397502865469677033101365992305607384714281322653310456998272322713251313106493318010948898927469870211500788224203236727769456154953178768352649042476114538058126777856639131755143892425879755475757135354965267208531266084812512322349607836537845532504868995882905880178347115393442394515576033323382974267171218838815266871028496091319167057583018590508270105188324278943048924351279424942356496142496586595875884199090819698755237132758705471253008938720656947300853648675719135920568773802690578289201307466023406024101811502427184250751428513084008355454022851965598315067183289099161517340975650008303515975314360428242801351369688136512117967495327669761702312789272618057221447374727098416492572524158190054861501721790253346474494130235225216075309375731580285379787219309392646244347652909523336935286357652708437039726020572652089576491944990944262595157709238223815738170343800310552320009973457145662572469102953050893479201999642089730038029270219440958987799495074806338277610655519998569278115573770336524638322893410183521795474825019121563386923459400830656918759436458081828883570926394426409695124466653728693715481824439664771952331912608793592404520984302453000699840073399291590014420923394167240021217019672614385794800468542794637026347982885094618750530590932294573767737505292314046701846695995980149595050472404456824763566008241615980098288675902261552343823533162053691878519157493657859891032524695818128405951232986868188245124013525795122864809812431961232660206831918778544774212130758664576889849330940091505978242585072079619651914728259708316644705456846374772621772330973578078769396699276794023640396868799406436315026430641660353679203278746173692143533582946170170791029726809698563383765191281598161806186623717681566767548611766663107515162300266392572600602726985475228964108459167950009317371138126057852774468585750510539011779523607411045008419066289171632882145658992629054307701589097233798648779558570472967205262772820136291337899421619569782030114826248426491310902278248693522516527597206606902599749168490733763799590685790688732726827273471262490913878734960293976760646704276566653172958891036393182227339887278437050053212177007132707223252957701812060898045342210254337441198680076410831364086011901262555338822003858016651766794575036587010635286590283047421995119954714577220141217037024950206363095859455466564454405142517597027102785192556211002193121278398242408195289999688510076137444880861279413873849181801510379121118406219899050378335009674360750507834420553597583815394955377289665990547058480661125352223712198216369315836055414653492508199696604039617400518703043878887214503028773822126897108503545520745490647403078088784977878052657381678356701461655685867021116917978355688664209222771161751814498213600650731441052274930473829655181464650961099424617522535994498134261343469047225954432878089450482513594061432219160893522750520551151034238479875943217757148129641444174936007284495944129291274914655763106952078596466847287813484784555636975122198920840390107049620556285742134014728376682044946085744395414757121806482000780799279016671851773649314739538794480645971119934201912584156229654321780687886742036378580173445656961919273999904830662506917526081916903482824700241319051714171893745714877037398147249390367451124444336722283470262931766580225461390973984261283147106209477954831802747420098003627733590295060611797342397168057359376138078768902621865964678244246025474950617175913518618408531819524365853473705746020193392618681912911894010270296107621493141473188432208718829005371416384166199332234812633679221735624982183034485565550746054899342958737695497407206763812772182687227675359692836653998913527567905473243668266119214564468558193019196345178668858136200581615416864591728237801854820880273480894529920852018918101560854058949010910904607685876892409902836691354998770961516450057941512248078081453867673684025319096483381201847464823166059323879562881604178266261374005383016520806173924405405797826178793477628021265437475550553082003935986290728195601659998738911666895049471147241384579338241879087298339720733424721595713649127556791171930186508340190995589124302976219540957001916316506607638622154617453341441658010762687522741420642101384255229541365237716440805018982177517026863679012469910799547088156009924300511179077244313315792526108884624512189153028429008729204671225529988927237758877078354800879223455548213476570174593865023390611058802682154305558048611894461088682239631175589353154984707751505108448658358236887511615389525239917900133971516181125781470488768444768583950259848274462647192777169775719963356700304192671261332115891686760689478256102288004471548567649406313392455750237162497864047915560988964082701773716944195331944752162356932097763321430772379735294609886174494659111195967020783853587929641589728428743137407932896435241741127290324044692594547960864099649385134953776338780830970761375085736845281983252240914228836810975905495510106213745770129586934377430880873546072817973338077296875302941832550811728166089955819086598462899767655039460396672581399028216004210794868428211083208949791986400899060133057550441910781606246095720862543669906714362926670461154377404759084967843804637079000004052742976548852030335497294797189034655443821282544858561829317967146443113318788897311072072827949681715911734236712745770669697054675280389863268929227230201139856663342364016217501195080169987383440832516673527364789266166205956552403062788472035333494109869745173691814126319073206354104761239066256945398585317778381870273309776142793180538717409255792008764997236214012011105344949101989471791761730976958908178573933441223425115047869367525573472905745097482331227203751861114965678469830012177049620573792597766199593760571393110280132360576382250193731447935770265864750650379353145911893303135650434333820850588989510156816694835615638311268209522907557062900432554261571207360090146699611458471556972865552913860480179289792514645837153610690224856579542473576824561668824942219128150602733750654403407655272352682785015558865214710026878666916643383931456674655393495938940344749183368667794365820654627518667455650739081217956600970162228916710798985990753524822954729245450447818920769587057318083179783510976976169437201727765156532299569803445062691086156496616213965022231955238400783413442400874011933488225183682379755138532132506956948090972238892472139646794196807889247166092947589554226762703784815009081042495721389532950373187864537486218597545599492893518444166444976083185435355561606753678833584564129782288929072501143482907871192939165868989899323144770268171683489447750005758692959789101775384183375484936614003938891375782732858291459544079592751599526686934113780482676223006914713311890019043537791128788610607878227556165505509219963754736691684655836364469169834007753927659692733856588777552949570606341466143952740304466617314457732146593723222342573346021117332722526894958562481099908805906240054344105945513230771063893982758005318601964272371105925294379881747084123188061131120542489105932664223812126323990912669097812521347284413294911484214923909772782654903225577900469752166697237862052774362799384902432760885159060193021394215323436060200302747449047686029256667948067507465842643045096793903284323749561778538689199046732149724056647939394197604370850911209125442757966254743822245676436188149785116241321868401014484934968656721914572973750918999266658682861083033999830458041426652394045227329066489773330587737837295705905173535683160740074676792341524965996896274665194522361869246899857035063796215950440902057791229647233931076320895564861395641412914686557756437578486277541272196169931719385530148965575840914187647653095955662957189334190643263254118042355943561906705452618069449571454483609112494304831377666852057334151708274068305426661499187782171653582206146416572183110856759872998902411621906456534399062801208636340769504598103185812867424443954334626164808644322490991745681848928353236112732730736665205585160191407000465277406419443238572184063376030142299089701982631278911851220999184713014603081733689811247744844211381137435024789148323791187776279385359802143709528309948906417839439374908099152853284044679633476859334846244499543469893259427643191403769746096747386100361911499531239450420341157665806689545336753382170469398653801299580628364510362572318220137935623280180907728582039500211623369361049985547808638919024199678649886504002003102026266967949534124797829782389993611517764607314068800120411386793669418213111545621026356529938009834516670449558138297375323554120144448443132649959367765346096272128853019116110503173843327139732230810277672529445161547532676958197081230723861464696392190993618925381128862159186757853058345935405694021815860016635169098613271918241316175603698069815762296738742316988838156419096311025362473508988324789016981996426816821290697644403781881270824353028832234320463345440331431803470426432051229948361859384079513437495391146973628719447439629863072749357993722912439492609664046955653069320764591162283196360331321918644326732630582087655000706742146982837005509481768174006837516141765686809201518849322425677653564532931685348367578125506360365816503598636539909974921983664351966712329108571291977558635323103567114890982559505084749305589463211813941516247400561633784529878138395468966563754259996362164433515113309495742355276824999872062844129175434206518989204044105612541436043055757609752273894238651966533489458340359341210474045701948838584931929452635442179166927229439297300994512518541015547271056241597990167654152078684793889540937057152280762924209324346503939800869525676752127165742543975388246748251767721079130310436132332872725640811927545188731254417296716777922259214853380140854193851686111104805774673743184651239862506323343564550577648333273034445600074787957289893754643677801560282470432072511224171280108269876447875829262434827799028844328818606040382729962283221049053870413303907204233137592125720328536209866477985743923710427893355763851308081256067868905599871687687087090566199808677472141155896165228158569265305247897035269603035748048151498616814579679048324946986940411411878137998922829752825357511242231817765941984873597040816901258775711433257543902485169798194844531724923934351093920220872987349636106033262056623347741202530179769824381433632896180572767214066168038844595118420859970158921717680695623191518016037028805721539637943849764158584242365573564690283613571975227079672995732104453796448707902912430198800849081493419212972205727752821045582556315751719545873888337324566776281553159562952823898957381611898764726492055370284436849363696148483893346757150757133369263597437720431746444868852729265801138087890842110191917257043806025549161060382681540944705468608511694760183443832979726286870475649962327918795367660664310523704285190764249443678446175860141917426807548946557590573399514350541701270214675472431962005707736898964141647271235063665876437494195288503689663711486943096247572532454088540875816379483321616765490083325907325796123428334961601183559326625873648791594848083855098010096384756241009774282266934007379700520158300484810839335277433488770255827536525536219442705381081073188021794033191236155399842207051292367459473782498177079904801919625434727433992983149327051102906500279914165837645008362325930682594094710980634043464259935795424853150869304269222972642352530585447739128472241997744805807061693638453058726147099711254277395316574816324251215629592409799160047048353638459817043666222789836813025725425669959362716900117975466258350934639697824911190059127541988442380767068553276540036697406112907980691703337053418569374868243397785866446655160174505002347873921587383644246771614359084229484751524146702344573791093603651052420957069228332208062586385935803069802535095307200050754509817899240974901793575332443735536733821341084312795784025924756921539746830889242584896507609156247062124202563755231754803773174132663625498412942851300470922467683855701345466481253041269701124950022955789974617667942031205820465609310983606375865532267936193552139175336322123296981023132057864566464570414875883575501583749254140326333493746244907781259059992661800741883361511076509861712322283210822765609388839097247746505414506471928349127690756748254485303577848048067115348583841157125047778105903380721785319340395279357531717499414205538241819820169273026173772787529347078492984240597947574832446515350899028889615769103556234718566049058111241120930649127423167792551005516080312633211034234326956891695597367235200419247059036312279030206779204860508002601410019837970012895247727237572482401435171745384127444606970827888853983358624115003447245977287602306075792542391110711533256388286846626991023218457671057560520462410535394444496355852066257681510812854660198990311965822255442861358418043866425431699146123044861487005389585422621229564714366924311720190083427719579988643286695958755167390493471034987764557270554608879795509414496366147260581906888848816846905952322926534660988105654867993080442498113887833002797798126941888507596644501452344786206662711475617264688781466742083855107255228805323703435701900453018674486260007210888731590935488651833928854517715344434991346622887552292843228443802733644363588671928957799829655952898497900823631503276358923000769227083080616654853301930504441689088982455807094119448224247066685629137897780081725764871910499284915498544356020107532646418431828933592830892143245599468726051013686318679618691428518489245497535657167927019451172187765320193142670033323141604150236828252321774418031726500100455572404610707721078774955677367087711841444191374067703886414799831890999621669614396640052658282009084060575613452631999435932775103562235851803419215301923201601329299732062932557683071898200836604964955531347441957456238089086021605822819060050298389681203006153822563598810669508451462269114244815319421117582749022784270322131720451455924284435785032974584900785256628785647864526746429055966160111277058200819915241240038190612183130448647637466512309528920294788350470203418534900868991348152284593528158121186713060939115983191455493533390532179851789040326892831099546005764501034553705245342668680426886210675783950879970079521330689162410159210508319535036474555650700795467511685589815032534303601749721423331632884359212402093536032829817920350782992345495013980059929601336067283761017672269297077189923570783876465349902984035131488455989450151036917733061529429099263236369382405468894117719544221933404573468816286838173792272484118673647879342058753033341480146539114694521519728812905013469797465832507917580137165336167550672782773853024857314577427776530993214772729071005537194049165580891716297705337267524679061927036338475592916752360086069231388318732237195171398187223049564798221242602155025759346976125350724387716207690252861981626498225538762825328170266346039204809774508887450657724137955978042126565734791729688626724223044289448351361251963475358531598633957551767520829290917678403690642606835204686941184763692066506993885207759521823229998690198433107456339114019576971561623338853880455829804039694998352011206656576007478704742497839591054912612235484838067193236580020621681226845621427879200278227200914172153051728033277431450681226378204054328973719580851398282697978790137485840275085655278342646928870551134848103337627015163041823768947478095550631329876360245800745862900539189771219904864288899688913817696764885567599081914705270313655774249124509006887492772754348671582651075578893824585037429942419418820398510416008995708670453626279962979173800294105855473091918797485815920962326471648950722992442657399535615272244682159473003169318975651509367607688616372897033468662867369723617513578069960767141193621047494504397623293521674981888619560765029686824427746454511059352087818186317816822169585050531835514353440454682336452524769083412361026222670906012976117130410340241797372088095405262167381811568401821509738182335982540875033258298366693548592215062993494254689003403748562614487936078315164037345091532755594677329567906724602727243088258761711719664425623588453421452532827622844256440654550727485993617721535516373905200315812671005316103411272266541715275354388295421663194845800952127977923880902596591096402816722309660102796150543064061789467295490604685583150445861807844099774230923721509441053561421739522662320434834308731371088086643231540163948239605756839685521579838812720832622256297316106132851945494538024224564060494609884150868506339134250557626895818537605001427465516258073652363124234184079520103578578137705032885844272151498502089307507100639967381248216047237745324906213500871854989293852916859653784792537154823195640039239980077681544188880257759565538290126827372543005628533594175796049948591434429080725929543935132525895633894401683331457906786711044659487357886235555294038277761842372989775701512425934633491841990507732192725806252168908358776571828277280489209691649780728532434052930269830162392834151907669495599727798496278786674231305271910851202084591753623550271552389031595823893618545838506823546667468203897749049835923111654807140976264090311926624305245208942715907016045068045196756733999176873745405486205148246657256964436239921129682566040993953657438664577561729025121070199532941955775092337089784244699345679765118284746532888030726893921905465531277354040997299321309122692594411635911711362056467017087816769383843044378302248580980926083231180058554495556382324292884841575949396703215386836229947096031565828917212200535521267432172451889218905948076446140627249290608886593404228175800638477490868142707320989696310985043663850117648499874140384065340722187970609313866062651493805916666312287642426182337501677974119350884056131663041462121160337844783889101277878998976658622556704663903551940622977055811683090330313146266256554298308138242020446458298209432913557572452454390696415659009719386936913137648382321167396744393939060489447995123835890318913898691170935941010348786302018696121714315245875321755891490884426032443243888059102052390346389423559371392684428614263219496383269235275115530465210025489585097884323925715716795009852329115806449982910630889025129430722625164688353036253474497720197679778578794389117243779090505411802873289634883998252104580789385497653476390688573183099391301630030961094057324188090090162321244418602651946191434921649794607717478891369470479936554083151388954547340654007067615051266540632021366770490614705584334625320304567875213599149946568104177944112782689941941477753040771469249355591488187126082944639773507838930884890698588372883134944325566168567601215616201917793172633131334282962045309215103650763224884747076738692683107973524096618629112571763418344045569419757237149069991449891046080971760220234912605120006882873732141142157561444427150569486923387628287513020483678107523024890445178352104260332689620169364164642529966536307240763324140360306322350199692329637114868532231824623682238830357897566758363469198785675241356105358048496177535031312352360759252089585370955999239285160718755679277253114446274942137905432150834430693020262754807824573532933733912538286914969493786609062503459056282570597462595244821599011860587224212544428913165556778967414103893323858237782783402251861941146396306592278173088970075562867821142043140066406425672690320546515713322155474564391854857778645252643805380421345896764619769401764632922823595988483774858014770652660664840827027180447337541810619548997828854923573746274096922029681309525352751330552397111351987636855902887106241608343449227229233069722842402988448972374688070583355011417669871312190753061066352096671251631367467524765421908344475860781189003497512970595323623622500088584582070577059930857412925646520720396253782241978502519554766446925164677658122094657920753236023355513154623095232769328630109916488064740152641428568316023478038890884356939485683476414463318289133745910176635660627672278045162704660915087649297427667539822133079993272874494902967398944006617790267333861772744810806945204844245182311634235316331010396646477155468827071214522688880598860724640940002592142300793960843055428433868341692803808741520669268169627555698506287979818760699083246602762061559251402156489269521591122890440380283601121592111362826044300589515128713188922355480536534644778910083373659754570421487570538093338303027531470378265891752010615134455204977903905951217871457526791238404164423619566988457838421190223971750466801548969180020708017438401655501402352239904958152336106901775452236776879986643783330086598319003003105680199566438137918701511166994302025040852310329267427105206240981566602199162199221402095845352339392403616702315612239859802598900415871832719572618841548365149667090084319680176732776236069742849890545160660829808205300551642405086978058556131500165113688023141818278138421228502989970294273847312342031268586005932047090340082644885335139385784940998706092040270700234446628807507328327659977749438871431335123588826048586163386845929326850406327347434505085572839002230747090256998084530975214232322227843112125830290637054936350766005835674049338465241585899248296284266439018436368909300929433455483592762248407883389124611240484030210162773172057889891297674946167115579281154778136041906970580090886735843127552309846900579695374472478613833032006024711618003166874687409813982195712364014789060093686079228049587859496926968247537756772880365165654503246007951191004160932885729429605298301810788834571497591150190463226190222600136642288775307349641898695984191570164798954148137794737959634046706781260490837190935182390562580918528093911198520209117523915922093341263044948066596793865358808331989026198330229372699312830680471633098914773185840825901324539112758891447873915985939048240256042660002583053288093702016103551337038780063044281381546094665464518048456922472809983581755508258180022361626408428046504672918748371523419367124882340870680322495467924042292112434276287139063590656658885617672123593081420908321633391583848881731423728243206091595596261183101782447976049488343776865361945902735893705348118528452067448071981740283008190430921806485990226551458317760606491044898660319179188489821987165331229646718071885506830582048531309138186235957566174739227852610156459304955517451771536167958630127204393058041279934614183701573998146428653622961526476656850022643100967013830978749962701781605485570456602506826929561837975835101625529458520352179930143990334964599416946842049199067552619577089869929719235750416740216896953827423669275173619491992527595142997786598840241337634237308118329319170484617575854456342349736452620931614197745346150672955868813293995829460689460947386539291346648449369687433435172212559939404855055838667407029601514624350568080211424330680353213754406234430153692754069587467884575363603990188738045447942451008733988003110961204247099351108264498220683548150344699097611740705598813951235525389027204499713649523562791274637092050893918079877476893339382838282011328911474885566351860543762793604618818153536958404800704633756124983577669945770096242008412700558770987702734367589232511331724483419390071636391564122598741502387250223408927518913772346889619566471237712174583207258034654194469496175386255957686319980871623885673658550376866620843344289438331527964775797282371156312791813969755423329797241522333952685610481037544967787766899240569251805866547675212185091554650702766796890682748041288895278554166314697156100591100887921413012428798093646762689314780364585030490443058404868555971002260012461103350186728109985513258910617231964698287309001648905329833251177943780706060180633013375683862882682536895181684099904252816190391052272278799498686890089742780660573033801315731561165665632106606824855839654782134367645474025434916272256636536765674413495736829189129864569951170693949539609107686708153189712949476763836892765854063719164514092842485747939695827226916653030256467827210013160653262117668606797035846603791357381894958230829850694237666547482821351467641255095026994554116735027203830977261156999022576108942266599456143845537518904272264015229076910999381576116105846891722780813230118459900996557990138542423897816434275633888110824527815339480243685428960238319438467090864357602665416059355146569432930377629384654998601145974072877328073964096767709576790960235506394091497807633795329846218928102716215524490771214803036062760076552008378026357701955150941686410315173797112660429698832006086860437278324011886435070942271675862819001155880431521028683154157611045994406325678482785121452713701607369332755715763781947738931969831455215091709532175702845819245785437881854517998757390903658267246190685455597497747705193040865736784152475990490574935720694573563174287089908993411390761930279641296130707175328813766051033729963456196645310147540569460989432953703908317963499913437993988739980124047020899891858079769173197005541011930986076170802364523617446725381168622694931675938635007400066146678732716226336756968190591424877731516057378446612662229376687736503171225161755401609280130443731942645793796751981492438199422028251489785803399036918556273778577772467358433922808182350961212233185800267817760279752301980026973977993963005035471436037193614221815486748145460525951917175115955443035168141213522979271427047961721566595356891069807247269096105167775760099417584178698129039949651147553317109353416756446971445724369452930427622541707379360961187950021680323354019496172745018102945470573262780903729334984447886598573590725963009470491714772712340965332542170510647815430545627964309522808919858467827582517847330238747677343707416794819893920875463600664035746917957322139940068050312863313246263044685425062867355276350065257410975949690755593519441055376983974443055994366567070711941204384586780483695050032329451973138590241058344899503400987345105524464489618821536393211988655250503467544765825799917026605696581972221114742912973353951315635338097028974395604953842972011706446892612841720206717775301445303296013740884265178042344201853288749465103706305410392695453245240217589720044642666481713186566140310070007771336794519293533396009544049271036921377809967949313688440591404785940883312578114450315138125489364054655347312046165046745332843245656159814615396191883533818960256820658137122253999155111169647679481704227554860669046693557581340161663609456658906042944039458154080521432627145143449377046809848499664514453702329124820642322220887709202670369385222365201803282059132717241029740722519721142892369650648733645795481159007674219470109607749134370904503525531452133586128185831097409496235434966378760804232524471790823419350482356338470636262001526197699434639336336928245750248781719726191380261610402300060489681217007117053672835326964741751915717687840253827137194172078704124297272120648087493191237537221133402637062562347668604284440602366863446453601695601482820110858442128604083036800807112206721805525004551074376867808287365765430850991145106454566434244246111169671970482956127616074822593439824821414022840662046219859488244798455041371211297597357705881397302176429643297206439519797101236768424294423058473097228267802990937886941996163315227830600245678534299134581098425821112420249829679752490952835500106818327052615499679811375537189185967235690210074891531861009498554787049181605704676152740520002087272250700958625236927985845788642944090661729142239045219911675633236367490818952184586889940824633935642919581519739071947976285262635148612301882209319877832140695398587529545915846802356540230883772853986174735408222569411439943957907403548930240725902198488680890055779404731646265458125304537490563269178084761033720987147523002858871885972445080416748710910639020720601791489550409756783903835966288917834519238409042371277722419834600966510966881822729790275137348063139202864800820085776995092951330941853819320184624244941202264188220361135475891556283624911679205172399075435196535895739296334531457670503553030307835336848672267231901707883869391850924028934249876197128751542934037258423422448521118205692507205530844222369550580975662364889009671261848111806849262191248658148125519442238950945572340744222210509914932193611110830710077807933535466446472683306861077585442135090888452071113761335644011549205734018341975547685599336089344664670806581842319187861387875309659269186548731754061990648279180329656218089480544101809075781398288174626137353359878793763515784381324694965546430027400190083120443469749222684007023921384869734123483168909140186778115328611856684848290054249457807283512023459537314850154367094009261221098548241793967512187294179755110017702438303634196114162590700880303318861800288364363797850278515104683092111429529183106680388846907051864408850150672178414489673756476657602281040407041971210846054688340120958562553705159487792414915333883951142008082909735157388867262005561621022878416895691258581594296818540621768187154992271110930834241982996855953251662445989864209422702987052007163489148270657695206863191992978173408571014025228067205855339395511849783922264484304060143688003585249294356517302228753463469393168957630310344626060289378868773432893445351050078200407437262353291936221113837917471646131055937158569726104776176131168789584741461361311854330680563415581106390407933229208810383607321446615460281246583012654190131524292142833204565464445939741121005706624045622567320330078123536090149900308517583211833350942901801853777302682177838187698514924743978494525012415657114204219405040991704692386093710965855879951032994426816213369385253865176409799096231162552803340327235645055277512000133781351426037271282440346491025211951580927103755922221384327779769625198527801910723757272863018686424926718205968269463346863057175570312954406890275846880012304071337532133028619453058953073436517918235004296891261723831592027990833401526257666318530989173873295276123137659821964174583094193822311180851840661474060464203661697660092593686531609397686492008816347956938522081579581334073204119071252901515644195777338082977877126020334934772358199163627960157358054965278045094908836689715598784581394298840253145609770208150022589182283245846698548818748266795213897421609191693895588718918732385992913400266933904163467239241840906216913582268131214551829224821293325359444771084821272325199417074625091850106447386919966661523414101216664200807801436600244386328036724002439170874757986940913309851611263732485796652412603320560404282847765153445931982545612765663248400691159644603366332294327514162640575465613324986972157765610232575878529086987816800267999097724880921003638549150925006218851809396102241153011572678498314580104800778818364054933223810476190361479416405192825295107269774998908547569403869847956759627322435111457267531537975353658522917851341978109251673488798660746448494368340786406734286408835177055704700313536225523663244752706102822718741254155059246649997177054432612606993562991473646684437670795423923294085067428669572007023946987621196494530098986709806622426442754035186290969129323782341598571533437278989922875369096537560052247405643218915992079075952263672163454744052632327173745717069514287023554097396602405257881509680841445799652534699940973361198687910147663310088409225447584144882206986148916235679795883792728049851971243885065880451583330941848917212489901176192670005457544771636345911245945535134975145679332084096709161754706051587903611187304217339737916651510704597742967384805966610528984700323280725987334994321578003118494591488659034942229227440714352943558991851801384810630925673700699562114323942444033056446047993186296473358834727483821694817455551395090358148015158658464704487172545745560986797487702930204001475102039507417514327221560880971927909902014300066790270726456813884466589729445515421759996068382828388590256518809935354199514166981829681919916959137394661558165776087222386164900459421315940487887890729380920853604953036686530841815174107798550551354664093356476306311265612903506641050531337448366293891611479015471219558841838671116943777249195752891021974234950769964560306440392369605273017752466956118005698315654017339486519940599240079057418315335787671954849883405560090902414457750769000952142979691040651108427101405907890558020194990844864141662761469462260978567989829977367313762847870511503384335904979804422681373045438927407118317925978779231238892947438536753530797015961034890562303563070547403212658258618185878445733482077734799638115394743831871829293539978567157816828328190095632633841258881945355786842829378187368062128994195654411750512661986585828828920786652918829939321111634602482866362803782972245854887200849420152057908872532383290177287925148663868915912169330356138767016158286084093404558236676041520819769598583952972119578882133584339863071233264042007555795572471242370329041667331757287201451712745793964041254239732471879859827664834844703704447047686947640105963754006694086527656028015965579705941553503266052966046782831941911811967176836088616989572396284215369208612150649772459500845860567985547919349646723951280092569291167798567190378143879751458210121142883124498714199148844117862924928294412703671804066483297419475167539112136132104118845828554830599266278389672382507356582246635424124931682714101057967326091010512143247571314399904254302130796964606775584268185036731201742322126090521472849295739662556753051138684651015524724836790141086018478365670818128332443894453638477259121124878864651552050730547957257585846991908359324906955365853387699673309060986320003223539618607152292491466518547327370557114196000127304139965929695577318087093482823483334637783904024158658390577880763895496195586936796054596077775514062052232213498010962233698621826939366151302246494534157039074658949506359636176366710953439455594988256369761404481930570161022842010788760373973611041013240341786650546235320498257558820727810018110655436144762548347520901479522225025876387787021875523009056829467973567969845450328866232572776619758808698063845744638109680821751700299244372303523289966806281348510555667331330450647498861445631726387868188217598246057161559679955213800029472045926325978430148109989342417184024597407861420645079250295679069349319871054361133193595876707744127409174884420545775621852666539188386050480137869126093991213568868949525557970249459189067113090374967695336012954702010152329625513327024815407983976413768341564663308199192626957060683879236894296283548985786085052741640923477284856017199486950189876363817383220603124238216006235272494284074681640434748034908269057786513472042176720599395255138201182611642246941103563768497456842984976633925993393389326479888489639452632609498806438239282462509901908815443846984595195751571346622706795617171453041256012152110321935003547216857043794497747416306868013000167872339029019533127679437151743532125036019770587045049594340455965294366922932103686553228162557689202937396839973996060072828215074976338369868229258377773519175153624045768208688537931406202107781316044491010547249000190789904596767613546429752786690673697278045250221923972212584744396202716165990480905619966774447035752750788279317861850213204930291269094446196446875154520263397402652978791918824355203818761215561663344338495205218004863015596304702574155854720302306522614690966113812634905523665829917485641740152052878271129295829023447458132937736549719760880146156665261022587371541807104400223018490424963465509154686843677077692172211182396914341084998291421627272488291844463382872240878562363181632199432908707378054729482594725129946781579519995190802458031191729958690258830143577081180849028392750815853222079092234024340140161372987499397005149798652549305937420897791706244160245518573082323443929957519163640101257902816282981708605497077219429968141549093409599085456014953388471820945009341959511184189454989784775782809896042196586491089265525544967491661727868164423379845572267131219003908551019001149926062431141791898910196831872360180745700649954689736020473469211339468242120031154197532484810010183926067834119092894869092854136617165491108029871516910809801093418888220870931696559069843674452224788936232548345961871099064296561796791261649961722174872994344565800923256204385242473175786623947125749398524260284857358860682087820733117909880800616615695146296154334353046351821346241728514797147718164229575841679375531264579648391542917642576881482313088181194428279390358233838788790172789408230629004079460975327834186948176816472496367984077985473208723614952506505520899494031476473236275465793049631391462864571615603516053082228408444115544041959571607863485807111833177969903147942156432281339720318678805657854325126346039935128520440168703546665506902447019145438830459522290162590745012971657815771122363148471677405946939711540074433669892096019521667646392739522313668986774875625776350562450257662363408450938271148435103923088610251209549783268937279883644554297983993252736632891564728564075037319449445373168230588611836385410630422825383145326535538519295867237303087365898815974989866322274228638246018843176032588514508992886845194807278846958866379723049119498085640801829610674735908653455736055577909858263828357997570589860631218215565892682546724416066225016435653643705018800411181978883345851712349691010478464404331884645459405895514222941015225139420487661217829166139353701179539820081608559227551153041207773685785213118536915457976229747828691977614973654140340360665674969009749455166285254305319617118351735761175997028731419868498610272212751305967437136819373853085548900238497692895697057488589391410535596224005454913545995523619793236305998833673041299011747760867036716462967200312244552971218725999219240561760217454125808206609413360403166357717899424428245305578768834293713184405999381378590170563546332510060708225087440455565183978812885248105021151050304426735727930238021579733297086844914882866217980922468874535608748911107457253715056008032173436187763599296115843640132379145366386230694929273690151254918342000830455072082597169030757427340841674865940710692192205603863804064249028551692380119711081354512747783965992930703912991232096975783779187146516141092162024850891852772742997121802568956236334138086856934732406669541836541465127487679019318415142488319000506076885866133355735333330617404486343257393599533617812097940394534281450278337859428996512529916571454491044651747862198576507901608475657178143871254984046927410103963575623596802994350887054278898068445514175978154162656329429395665228899373412213867461304281018553683514502732267166976872059074809908128807160350110608692282258147143359762402998816544990896572161439772531383603181566456158981637337931838611852168563784988476611426847515391246825400957187474572283362245216259873205390110567327647189031679103942922844973236015950580307732155878826328547060149053545856150241133957454864517360147629754535052156278062905559052386731894470545138567618304605077248915288514918736435327471649615052841772707042523495664861772087099990266475896784993610018821743873716293287614226372564771847149968449578146934810414154320946832385958837268815934614699438035292231988888872608218073349017538460230684855529769298224643260607937848768265603061122494840455125105810871997060329492597724607502024583376943621356622643408802105106714455221152569524281765883610470976509062245262913470596432084082259610172327583860187005364974874669998341124041121039872034242990384833792917443445770196510071056178986650056433562031031749182796883688383563463848053365064358189550881323171259219761125213438623072705358657552321473285904687378739284482727406968805593283617453370528585731045943051974652904773569602626963707117470004252473670634240729841795033638547793252638806222722155900515582666041710689134672939957473684121607752002792661021808216151842885000112139533044201737808865079185625391510048844757778376109941137316582053012346371325518767918395474621257932422568424850848295595335812293746624699770173934923325484257222076634513805679206447904518227761459661586110554828560692110100122335312792700131790840818859315393070485669219209561671778428772483505593496583516657529407302905315232316501571963016304581920170571307145331464147603263567786671422785740913820839703568396696878975037005770345752769666330644411138228390757476773245055075177944482192893080793262428627546661491389267529824515764632805725532100645018863626994815176033108108162023945995706602446688254928403718677059342619605652583059267398603586076498791573434176366748935372043219062097067490856785061454828609841564198218670256169798330820464340114575490215415315887147411906681804770391281072904337111840900861317736097709267076650243949630115902637830003657453936334523681898862389402575213086123255777482980139037832577554867610003886410583924495423986865977431290135488246008160055076618459260968859965864844567936846166358476187200466972977144239772113527177251250193031175601334829122465403280898566351065544883819790362727034824266484584010361145254506308899887630155120916592897512922747244320627222295545976578525344863452134646459073364136415076579831242120020905861334422395805437903897808944956057825331425796425644438961404327962219745836201030711123578521782879292708358150178776363804898417372012027134599225941173342642029966883816106551480264490039092917606232485256125571895625240279659847025183604285741278946761709092365089068479059827011320763868149126700763346212411842158550082321141452927240035813812378580819654098713043047211789545499854375948311021008213067606484915085965480248539473969658078163592251515949920268325870733691690529877954037737647849910803469086576372164493551549975831405087130424560426738489507154297325071924952089869829675130341610724533616544107500333131752624948062891077348592856434969938086492394590069793197722896005284286727866156190517091539919188186268675216822275361635345765990186914145755183835519449716222437625223013245922061353645038166944376302671952672328702634110709377211963966330414297893092002260662844386281543141997503626880027743735847134189026537977253460130559932992076098040548067676575910343142149093589651381404431690450984593759862462293674995594544912419719480051405544529199908205536154112888001345725977620198325871472754467887846296602812010478949648150412477455153846526902267468164562757767737934727952815630285723820177680705533560242277782626997942543367630450614263974279763856337826311243979983091572104663097454942636302927731427771511078046674997926447876140562860560192088886201580634455531600003879916797891756440172106977515836736772374789712079062838017381112439354910203796369217596348844905276504809948256319732686531951130629556756411191632663646126991485847216566722797129325899209976207747948285513263914250232260468926464321652069647355928920749466051156369561504862256710108255943792307157734632263663732484580537766817265575978144041524054505295679167604801705350456888050106548553228982468988880976433828908978525340388968652853580104177188668802156296857850214620646146277290359039741581349368459558995238111142859338509004249577735519645773529413967591986330566678946738238951175582246121021186687122872972496226222812849750605481445392586838403755986338391439417502521253880057897859199905358769163855114071446460374958116376310247259985098835253576766822182636490328976387247864471074657075309166304340578090184562656013963714135566577600763729458422431989824806677569190976519179210715238645364316797265908991939925251066285571524805518400029069294033777742281436711082786610878178918670013796277551212985796718199683373504398169943497269683865584644986960114447950728791611940667895106204947301784628215261279721483402531582513033500599415504571797969589567946874436550325668671200946758014400495235441123877554034682683578526492315235589658773605691509206742902706066628151887346249608958139733115578330398285193711681758997357521693820564477140196565652306571804963409110008454522423076389186335758936647397205225356509387924594334909390460608401502477718487199022351320221687314556326997746496969373505831899077941837770122214270215286861915633304700465482946022449333667069938970672891744313033246865594791676479331968473779289063348577785667687876446059416945869273863339284887912337211016294357556470255300626802701160915467053020679557777706764411716298395716851354162897191571621194822834519676197676925852842238635762792551923194357920213522907304112115569327306322353942444061414548752474713550007720351473397175026019920711376169110967597678914541971873311159438059246656184983133543008966661563793044489208978629112775666883702486439293294455300640467086578814148415469802973422051475581284053360225199121513471847588624701402351504758803229797662812948079986716825108093427941802403439236151560125444062409105360219145623985848952807819132016689884597644810849291318766020492094843296960690441582565573599886584804442410531054822481006683127040386699539849093699133184247090422674368700628034154721803223174874836824346463118204389869359342332357834050811529210974378434342626355650080420642994317345142039840426936552380751648726367763722425576986972483833716878085866842598865663630353460009702713740455355183186183511713676972950582291635583406218893854574790197311171767070578971934306733320269316693870244183717718792559845299609574492133231519993895306644382454697349450421390612653575127366464455650205688247379097201773631389203824885971103261437562173962755967573612022487664417333159088130260793226545668303681019982111840482552824443768831316984563898199901653125477012223034864081101738303331415305518901358330493968615489824618234821960471322656653545534982971327610659814508654306699894401456263710997437464705581009020362349957060788765546414902098967500034894602036014530677153722625391194373060730345251869185024912592007613369470286974799622341468470071989671921989491344701358407257553519877685064192293795912812893739213002432892637363319873378722726484698333501590167752941328189227109468423065880214051030509493772044886362755835999824952091819742049102827221245569615080797375997261062824988329279684933654823558015099150435783725817674547770912127291791026744281361088208123047944873088225279026407616530847639250633351860332521381248499433598045757854977000607990679218486538204515765383663384530976625947526763037656059305118084291661167110980824597214963307789293143103871449794898448688914723252381716385843115024404925868234158344312414804628105080133989192501721676062301032691595734678692649993696745248061184338894994211943590908770136498739897326309713664597608078115980291470752802751456012914394894954901568968437789924085951889201285229250861560307969462258191988175877820657464801447187886259781998468736488360796265113123290746780906992623464987087063740265156097646612340608660713254304434981724018709039204212688923868625147738481850402796967724630218336756536682858563807988437873924827108921786799211534308225782614276300621140791188216937964658544309193315743582064072616260995584707318019256990431844418580238983807424593666187227010623463096741039857512434536348172222957411972681284010915507757982848825701303990087806659542620077985126238978306174448839580726175963998648085863626416154884365487468241625842345897582871221538083409142682675720579404440962001154880341683745137628844078567733986595157916675347185625471074298023069290632052524197095905461863071279423995925366999779655573194119286518187139948928526312764609354823778524543954311675235375358536243652835800052460362365946674590276575654264078048874914529623012118811042065461651569303488810886994094323486640454781247148323184702284182402445882318942395808576150617944112212791495291837969531441867003218584279372794278897365063369117374935658709578749113522923073320862285275090009122431917504677541798881970314459748193471515161909987209268599077401095855669392468807153135863669929596555062111327070960149886447442789599117961668671499084316800804560337865520889311972591052288809333423474118075397612803751130314786647356170225300042779716047046181433683666552615401994758220255703115598422208670578494795048047320600792561106942054153466584237797246216488210828430964440158083406455100067729130537931486439460451469110889990109639837088786379857846332789371974643661230600002317780832150542021037838785202024649425637963586329123247852217995621169857489850974999814145779137316862164096240355487045496050148762373339254459595006265135568935941015540787889363457214066650070889857366024967344792647790072539966769122698544272793910613854905260997891212207517727799950943833112004568742008259170338022658464002987952620075583826919743395295549410576566301461098885816036620284635525995027230500810938912926150098576334024921287017093312661839522246611028473260784267559730492935176691088144664948122977979163944349463938484195290786305494735689496637979783260572919840020337844952691350454040350756795535415913840273162920745551987193176834244011676831084323760465247778209259286475509419189025479112550142225347179268669382887468135924270020061377078793197203329357747034534593986418107984782686974371163272331202956284200054016809338576097596108432601066136140469379173542486170155388546776969578228773949918162517437635453143868620940017275238785692058574982837957391024591616963739744833756773475578444032974898769417945453809648905365679204715905761321011859963290302561380956784408275407253330481004511072643617364455076089228204603759274108540056951121794456676945285982931677701661926869616358271800520241784388141584209277173158990462151647785548102843066998262334440468082979958954099015158722753337531922829452181944396769192706031846606576582470106034948371974019687833732895156390571984151204222247349685063298199384649389048555674458810945799566449078053272743316276128091131248056731192787059256872922214474035139729335780590129841036249193126450653767676930174936744936438273719250384398177287457904720753758279038884284046944675086780971032831041017726343346446143515364228812633455862679531494013657655092018157291474296951623264071151179358555167311515989298632916030300988638773065978688007669688885317862792901486968231172288475490989297385901277344026171657810932073725790728130563549535246180121587049806094223226314484514044603769945606786183513455148271395934996658197829292988897570332969662672955257056637247040934965900616938589113275874260177597581835011808444212313477715550055244788228200598769968773630140378557091646138789262215705475295207278231464286500400729632846658539147758319659498656943549803161609964090740645703205937509675338269583935210256911834956070596539190569866244815099186070485001938058496018364711859392210673158766811662229044455626997458953052464250095137842768413777886501608162351916833238658135862857072485474061439955239774582683074860160950029439076201831432382792842196655941452598589532651882022412854035618927022287464135056401448990612723914444527257895932381583626637562409692158348237818136549384541426202932368666494114414409662299270149424785670490014580861414104807955898213061807493245541079980313367054060646520012886225995229268908849109928183146383153785988834655152926077943836450811863065131424461568387847145294938848530401835550247265602203424020164780511139175266854017710219321942704233527346755422969429572741191121835496977056963448992497148643885272106659709633622514370719001802905055762558830232593157050380090557262943692538857627063813580835083749724536157086998310736879314039883601443893265129042490449164334986682806805664780055568392032518108295182438189274408047447023988646405531506182594241661841162777125944193400533906822645756411823200416541762081974514580621304105935310533567341036375935139768991600060388422159709926048829573839650691504209899125371293350431406161608328034740276777278396703614538827609812092920094831016666463389709882379403814235285065473551284450314114225869326286927536066812528656075245079169470512288558305004741918028742439314526368921149572014978532284146521064827325868107694272335479086143456298175435102226873750893495350479808209983195776991861132739551010921939690232657786153475653150385093197358990903903949053913435866402614347790370076635849193660751032225983411851974230397083866693437565813873407332331148421371471811457824508617059218359568788973652479666917822507507338218784334449932183263240205720497167543429869452636666253492085316642278495118711363033219698294994924727177435637822995640192665018838655694169904013845298976722314241655084400605189771511344560648486828499981950176929596573228975415607447211778720468783181193094137191998642738432623516400514252362128368876801864571713300306812038391867367514763620819210050188066463674825842380790019965242049415162914371202419302077448296172035488675506299480593252019518171460905116906683465578481549562730509018656192667673221559277079923875762808539130830622047496415700684428408535095857595412338281822019887412956229994682374252182400303984532229999847830364150379932544778689303866411834284965838081576858914074532042699995774214772532346409645525169422465770465369703946580314694010810213827882007083304815348449405629916800719035567924328093716330837138283650495277374119999347423396741019230554342521890314017943438373891049337001279000649781861950629690603211770415057456070187956371843087425095115689508800015034187011727698249630556508078934593852150068048021124920487631576357486877590529641173307471037004964814304666040181775178791036513366713434941463366612433024479045445638684653359443953676876895581694114417849590944591829827672333459339740153005989917381293872183480911555778685350028902937721788998057045287524841707075732274783147002823272014691093838691008442005911936686589757989138387459608026338481531330338396404758891649775383974873390669203492675963965171790105181634662399596052840590911771480517399105893675988621653716543933658063265502185522463603902511777263257417087625558246020801099218097996687674506438455001810886165717039077109035267433614345459911109368554773524040717020338008188947279500420727124841180590426210190581287201604483649697748936837652403989911703032388103272483720915601786961233519754771170497851264126598210368700215478702933298964806816630391946833459407300953946953508615147773437630391156882612448887346903106693404475582792830075573148329626431765697221517994335254956071840279053133893207592162588931770787224031417905569347177456349640095910913181037857654250718718728350950331491337424526302665495326762094267454322193850788796517520194635878664381563635732507352277230486481280536321203941530518012850411201635969156358386457636025819106587840927743744752818832000389421083003060972352925015226007518136673423256856079479108121800518122291057480825061430876608735519727176952646444294745981246786302260560198538032133216629874187236505222765833978399721507299344036559806712494995386539567350840620498014856152529732873407616698818252597838258012603207166995298460684845473687399059333888271225375984515652338333984665712444070010198858736849045317810661860192760778037010172436391896316940746743870600239211715571769113622870068218283880191891552562049693935657548293947367901461076978700642784195485136846164615310480589267362469400919389675695958129657391070665662094885184268347204347758388680334806907448480885333316901789651286430122564084781041194323974839565022639022224972863976031739501939492910000253496490517353106131355497296432077597482086674637901121639063110556838158437643880592275635642410132645708327756724149885777235788958201464584342969283043852864574463383873238378895939928770149618326597652503284959405328282674156443385256676923685493151288740967953737180359145224448542042108817912421030040359687837429466418171830270848682975558868662768200943675403811356248960851380970750356916966023532777218048720507939372957284798406549570040000036351685321540324499179230130782781011645260132802859814662785584794014979738436515893986362619487074944471303807537029386332768988213980504455013452320719868193116630430860584201674967667963496823500016612202266717542044605601674382922476913077839592309835072495932567900590891610263187812160318863961472529587981804188262215806548797490373242414893690208157936153606476701545402204403595125613047296333526780631439326411735045531155093029874740273396583463662978984946467516669779930727519933202652161592639950513156416265177341287652401622268644238742910734354636605748549134148640047512681964282995516621348117997579397196657192377951571286423771441830517736376364492726014035947406759288112650624258964535621613078512557370511146066545952282364289321175508920244237706287325013028971479121931276268672450915884582398887443967269266842738609971793466934727448150772894198096560856125893011451314286941955553825693783753963209326159854515331517066760132024478987835787229455806259964717953381180460123656270908128586318074229894095258196083361678048533882022454827838860425492454252920285021537553369420649389657826879611368508673483106191529104591712979878372794821793588597829783953314526214174336377782016192879476377560566399277178470878407905603798820965769345123790294539481395496432507336679712386185995971487762574094230746076039161802684218041208825589708356714931455648910173828519330471313319477687150879045176722510022403559446511894535971661575924202145873704011865312406434901419591964147301841027209088068340631862331294537267490709215554851253082422745309236300146691060885480655934789029626724948630701416462066241504345283330230374263351243686524311475177791479643468078946206636398125288242270431293455872863736172048586793931344080200407465491400978567859185014123275032098900610986729321380973799996773348690767634567405905013327360896144902780578715727115978086928243228422013034709320147858920431976035472153235605955879580259308655193639571048167382713894799230032682898098890794455427240165987365531702027259605004183079163328561915367871441725853995422650001753427837780129432155462521543100321283071788886071995220093960342537078135533046805689794089186081192963431904388361365853989166901346857870024347561835457767841390493315897054440493011826965970782278531001138787503659598441104221590463482583640514736813414713089923930103297119582455517480707057630940582234847801191274535057061582538909303363582077132751396836018422319574413248305454138976404337663755431408545090212167343168939839227388225821831096370757039178979346876802256075925390795715367681126679317572435833976812630285435160189695637838878432993989330149516019318183941106812961841229420619194526621055683468685206398031511700627355375786362548037384822434440316911451319977846809197571015487076682175728613594242877991734939047968663705305079669188978933188610411812399875232241920779744734127534323722945047464416448496570909080144456478723070211812169222089888892323821531250840509857664900184985487911971871474452280582761860706529158936200112816628730335845655890003245592842579865747181980772682631718747300443963010581057683408639469041268283758534154930011162604274495773919416885518047201514953254053408447037605460057841414556517651036233836368052657614735510622825671682546453723661727760765575148022357697292883746615533520636896002198192731354746424691340481505126997345113624652071757071433394372865997338659888026608302969729088952123870708036284329774869123322647054738596084115929991526687734098327451966222926579844762612917151404350101550082100536051902088717655895257367287856330664112136487877723231073607474077473961085713154213231651063652316860255062514003891471473800837648513898060239675459563220583195670245850317831040839613988561904376259813344489243699485678730331837253786214206948778720382608875710411597935779556338123004531050416736994588939596787918641467089797366547595843347865946890038500365029930601750686826053304458187198559522436191467432431549615632498785584502349592872603563203112263567383027616622171426704959308880623816232693576233113762596335434358878947940007314825479371447162677384522267390098412796192105412632085457743001709967217257458871394474787802049613214131281965381474941393745014731496592198987188675506609853395838791145385003042297167895514580740965391743260948820193964387962355156893859306689113844126195839028180935365933826924293667009481636306098904676395303636675053017844000404657733043314255960594933173470338577605392197460418949418332172871406086046062053615992242872530094666376935197948032058570781032809344764085912838648602654550091830984370037259441233475236652290876818408438896210724373721762720343466885123933458747736450246381820555918285500242497854739469936900309405269758481899652422491384982695209390360564353376885915125691343097097317608490840613620736278832723839909328085589386930761069387936486899490375904839933825990232599215663973142271855763991446134325109045267808936505911311483154751340067802368646560726712802293785190240835497665130629046353179694432543141986198293346236244170252534789886374171478347646003757666679696065344790958487039467992778743198568747504463411219169638797471149554022821397708410966449977491757525058539619910061024723079250691920394589404668009817270103821281432943601094334445506818717716260087814343892143866689560662132190763451578407918247751880988743860721642410649451418266016390696617229856616673717250982511034722635025213541082635639223972458205993178510573442036843741958899848547130837866318859091379390004141662023767443835200359659441989875180763424359873292036476078733082392645204538142313156492314470173558746771653835506595013951708789456491665236733858263208638586468548957604053259232710760132601350822456596043502701262744825816124084209747892519843218944506555790683714745462029922776792084939349220083095862882697995768120379260323051422164295846865446258227490389559022680643105934963132371956999982464049588768681891449838801076812478530223443048816840640737263101277418035289932112769975699736786203289462298919836961187626463907501167220285538323839832355089432190852690033554178326105089895584797963163491257337435799198622006632403630313604864218148275066847757536102910079833215982176835432394914939114948322026467935599667182756445332546772301839920550716892209577778835805641043459232255122564163630452211711270873459165645741675866217982726228497731926623641739219670114123639381716879657966801567201012874222662068513239379994437358766234699576058532583748676509454884156797490188116708690518921868145194694800004277330612450882731526914319425892099685918173691054719760835328000560841937702485027696533617823706589586181908722561133707583610997954966864686484905291729851651227616187877140662689147851574257171097587809906700876057847411893130957180868403330042658440539402065853022089882977552716630423102641651655839340896462886879641565991799018925915047095696208752793053821669002733250897677804042460401389526816831602302788770339130784248856472642065549526906100988773366468244757430733528382578306514497376440015851327998314920594764710830578168901006335125526099057074301563914494753830989300257073219278583707322212934154950549448602151740060409857274910544078506036673477061356840372949936244430679610534748798472249090844982506442438792370821012107689753233029401078068795942112284605387325087229032972310247615327332190740421982564501226410443102945065413885776323162475039785008587820649731380867152944815504150052112469976854879196834337710632369466446930223773182740316140890765603996334166433626605038639323694786365930633921380724310253702551095473231270996283668921812609896753560430330292284514489228884558627861603715761003340164742031949023283017191048067952768469081096291352209978472848033315406922781481712831029988488841113148798512377335081805570047317221691721875352517880422447156726951622623084405738281853748844826709749502390377614648951620780661454828962613813250223598630519283952038503398697140224201338493417371407930099030353084867169444107478803745533159263709648578869991504049289988549439934655564832336638522536718052938020714461094824830134634668726361480182674648446980631436823285983847331295748474092682986505733164583283545813330204285746883364442176225746615155591901560017332581708683717060592143663375270688597330640035066501942589697524545472095042662355064655967386682614048308926739574547695063729656763125070282425991465937416559533541779788584852216306499370022057120471930157345294164186776819776364147941006899535906975191427652961648359647986864472240078965864557206613860219375921225616009825591853774219897297365074102339273836582758690328895045884304065135298394149882480252512741906289226442159049476170020890681293653597842936797631214738818320656347837373480576909459922419692790077035364304430076134813608899902779800222168772352740732690308353128585299808781522248430919863472600769568897749553869438047375408206345909053369696056460976424266537522809537925050500936760058359145797384025585700266713733471962287111542473197701205807372709127825828984333575123486040345525253994887921450917228702545415616057677784600832329634837280574292378153805103446273687941679900486431593823651623692496907828705852442945804222824384431098656135369442391711633854743823506073457915700744345479091562650909488447989771152009919370495812811956828141627823628475829044831163361503534831800075708664185140702785304982172700581690090840829075918159167100905381830159020606408865858908672909153438407360416979959683973859532397195162573140555081130076436962691505844989749870871035845217863772841444916639684305650180872824311675023679142264090763631692677147797729509785784039830087468035332424951933523424724432941448568981089988978380353817951452696367788258819654281052248509583363476892462775893596730754449981433685699258406879459523484640942061858275502462708166934385008534583996422804634079127883870058718151433076789160504788765866848671193623044271302953166077045086395038336084184715975062634199754431153078044818865477914743965572109396106847013154254365037640512199676739039499248607347081223925515869262619856490634179668420084407139128003836678242381178558896766929874093735835366373674552353439507207949468157777051254526856592793087606976615780230235476351056297102908273066891429414056676137606605810720791245286012889402786231240953019122295245152162902338064994218211150879747505677665605721746389227711109542148245014219619419250766711959214461584588618548562202780972281837628651860641408701094116026620040818088826813538672292324161218698992420703152383200661285482101093618773735242395676037849948938529289161993685833874975115651661593419698614650473893292021638977166069785693778660971198743095191517340851495632789916008378327692343765911028219031393306976953959032591204270563768619897756114861212763584845400674456385461589722017252774739620846751854253804267471867273224849434490459466493942657782519550500433422371611112232570670701897018314918910039054298352787867032281380707164127641910468810157909186471635283303716063985572271341950186470540443225171961187271469959067609438678179183573152123655220365708374562413766350433913936096364407409457167318119912510849239685113895396456557218648648954933294513647410909238104989745481662190558810772518208011847995533929300206080636607806800706323304063151412486795614338335100710380338143618127134312465879940157808147028190836102568629568422426717466924878279877447798546332611266666019411346748605982014313768822252773730481387401107723667608822835413704800124855887457592956568739944212356055791270380829444861078992854392820716937234919324196951166936928840142807793887526161794420809909314406440816707692918295315280575766426453472182010563351114790614146862717375144202363242278717970979465440681180151579083587428472962652236651358704196854787068839467733875362731739290739452729705182973783700032920134445583674787596671090440915467325242289396042895399602262533165718578458857294064392749167738135016222541128005920208675583747353168070255457544444506795577269714575153626432279970385332126663637194522067195973849328746794139808061001184156217392433489169399848059897688879927776745644489985420083009561114682176770792039923462184861564761420697300507070360339274392586618943656091342731882522044066399571225630832819215767042294558345410799514577143718921104444361386335231731587768666796213813824462715092932434470347198526185091469214942479061535721126524505370213199557603962601837778387891705966238068645202257881545263664888141241006752771845537726371030208509714769877415259699417684073020824580342928081055242136598399148948558045179736454345362894454705966388922155370398977261608271386326159188816937681412710586162978677280971917689580542934033803233543308578847444362405614701264906164973228948542671436735109630702218842228614152027425548004633473413078857021039807234326562300079779757968452369502204447327873387399338122186232265420496547470096055769755249123034520566712866416975234618437937747192566472203032946060564710718887975124773701075930027149815827401249234555797907665302813949015257183524464779642156167370611647339115455721245400657007018215822653998679032798076415522781878674208365258593705115763173316951289005670115575136313922848038049523836293420727481529107934588193666471008428217730753315011970807354450043610585951420730335770735814082303802490542166371678198294591584693263142967914430594793339832612635409744114624843079786622730885976043442518542384518361646545864238605865290308547778184425113807650579905292622989047792014025248872909062725809101342560377539550962331841439679834877460574202993191227529255688698212433833693213594392260684754627872848715722756229459003544802265270212200332998538549406340138170871497386243738046793201468606742040302318076331977043828464530952333289272498126866198476320375130856551250545071844081023294345849355378223910396639513418131869326212057291262389062514933892192706675623594635657240868484251014070778993530544669296386120459338787938929292460321210250660876396460067312967740479824205650128501772055155091286844771261246057831324263874579659703225156374841612414910696179004175400673934033215979063101117925609336957529480199535460965205558517123886763304163452329046577646302617731749068496948206158009891422691438925356057388761442291924233722269756402357848963840142547685692147731859839516587735269697409957630828628758671131636887771295524831113707727718955705045100301859340458927361262593844626766729395621303606343016955331210495463194085252597794222888720813796487140038697131292151555170354306389987897277427072878533001065469704097090204315891919932908289587249644850528564039235853785962449821505554375250469520793114311335595044276427825388302039746875939552887122041016825010876136775231308483073371855314254919754099955500683742933181257252428816472550645417168016195880570048350624203506850276888064706035043457560399292192291175683207517879391153187277059001410987749082148061965482090772251097770649756736156011182811950709339437511338578474157289513685892825740714450427345962870380210703727628620982374750080057359921089209278606888237083277004680659560875038565717257392438679791571795487950650898602067996746192869487738318581314790764314951470098894133767039161368839020556982645957720760449087743309599345723292414068938003197249646520852841625223289044234125904704874309000331051128478456290787823991710817993725618688779051596965412107082436389050866868735660848589319712670532354133299189041712981788785507700880195092920786480990716691855011302041022331307464995249369812189054923525763529801970987909828267039978603621506201172254631836718196037637336902422625674013629567476387673801871860908003813016523927499240118060030823068224614227576274202207100616496736162782420571728550297141945210408430308725419431024050133426106977552128031023450889023427444328142231751473932527621499942000325022948573102342091017480358308084492985738598858887208037902818960814082396520967949631770308288444583883591983376540219891024667700817629696171716905447265887679645759857840909914445353007010788637501872833855563500699347778114539091746886799586028993452454737922651080774470664454921186890383843098354373221209698549549147208010085012992886482334618226036798164965154683666505919374527500977975000897225024461832760438867657272503731282690280752526677835339621758643712135447599344397520305933813648036957020512735872626089184291060848072793332122425668713745841676235022457672106700879580122633040875941441487491607000597167297886027360029472594420429263575380302799052232445604476655074687107079594851591127086456753856889520252461634864297731327900377253624296718932650533225740527301967607681163157795312231588601272872037864329318080052343719444932351113034710163944338936846418041372159031614122936327178757374032595688118297754036012480642568478553964901742187270277210223652309594386320197396406796029960834814483540395376457155708556006993055491208936425226630361229444529605623425590595555884527027503912423771864336464142413731154673826264912643779783324782932877422079720884318451782611970368680493072539967854710559345076451565429851198579237607656488331401005631807305705906952274194688703026555817196400228267467550613412728261275010556145462047162108681262593850985416095113152771787014263068722071961966721310849353235096026431893129387310301196981851642127504520402952081449462554424880178398262715546951788784908152125838985071700272602192657417299195483565216267776697958263887020693420358664289265862680261405942174742174523332304750696694677793155044683777369744793103131413501894107582225806794913849601599790500810730617157466828928667232679966224314630947847112261835879103380504918579434802127847081327936768081479872618985804857248611202617950821017380300335365643746450532538279376927613202144261599349154038817576248646877211083318202172090511206312077819603537105518961013941716594564492582286848732013536020165175244051505458450887389943990642344050857795699433295189688104928841657455179051781735671924939509843066900796565993588970472484028129921370583784512744311515990627355399232872359097336720527657714301372304036138991820752914231653705192271906457062589251034639505920944968061271535230692815455606024013498138902426544606713518729555064748444659108907851296511412204219056515006656119602930830893567563171843918706493298147116564522693780083669835671295871502396948528909558757779654510446364683882673363940853049984454975936178362839956381823602509615385586762916530829393700085213055579962644977384473841192006528270540451886769870481663073345179822469596879020807822002136756875900483435774291476087722503788328941060113023045005129276334791325965415010664254059896619836227988911430290159097707314206978528369550511812421185403088873639477227271354308239158453596738418293923204584037556012413444967482955650116862192336955519756992719962399406305552091212675471622574028931741318990698816280674251954297798788359012870944685972120643875884774365892668165932402539700404186843551432996150312944930402039490579554624952764961619370152118627110482831321036492342683668861621808818835138465929003167613543244587423928615855021949618858150093609781568463526735706825044240932742268617187438281107693029290163859563793781854229588855971816319161909753331222970831304088530579567592859485736366046713015465926222461393481678848057509000149782585566728669236073828346355646221002880393121626819491942175492267985839484302498899996542585806721327251972770010437810748972187414963232615857397904340899220410883652567728409068495666943117847453698228782444465097202323966930975361637898111414860738198561754151797308184789129168665113064611690306799731369789593860963347504261332356850291575178818741710589919156359986718094453446382698896281498406404072394013613013031878830157911911497803699463393070463103692078042682479037697501473510443712362332816150594992244287932528843031934164818205970321238685752361267719963568050980293136269258091069882815920410470854233341588223678539755002146807924651087728694491165586648557746232416116166650904457863536392954441968829498444243751030459230393188099956112718583835202624576740883725628725488506568014295714324233687945466868119017932006427177681306545389404105021149362244540252511042378238940513799837377648055164518446617865556297317686723044065642660675812285367330849781761279071814536382862929433546604988366429190299946666613182940571331590253012727666734227615024406725034191367129836011127164734375818655872469620153720357582587623932971618077733727070521289634062146608708058103833832710084286014986002903499842912546094145823912148305774681823693785054164815679688614081661363354446550245653729521625876420678190164139041676028695532752300371793793506192855993762943837595826902842743300504083766512404153867075914242208400754584052148109685155904870697354803310803382982002271465028011532196878767885983537583988091677586991439573421316776358769068193391963111657235864036563591493995972122488204916374061822905568397873002337993999404880907378875294464415442658362597051437648846026007456107904243668004600925664859677804642195253395378816676705725327960738252407999423947033664094803632444266744331602094909457697085469462693018771246348072109121964633420282972227104856320210710082106310523711155632971556261818519913832453831840239335196832986133180155891066585053514032387725231013549937625778925058854387447199474089844820794899667683270010169368789007834481774732760967109772121060516391433689715037710801554835024524797150526444860775488362944366109315434316378058414689841557664048914831065764377293464424934011690023469154440646587033457938390814074119300621663458117635514439691000963175796031047501542165325445391350150405224343496852358060361805535038920355561339948109555082765602525089951371984880748336324945621385903864117701226593315482138969565077801833216548445657536787712259595804733250362600367521864920680343174501902110683806296993657567053614719822938229633895912958524257240599423494409207549187862803460944003398090832964296647950030265348177148780475077629821563070580979036279383612350825662003290872858195547049625582552569160587896559519430660616971366563325765725384468251687569696238790102139997753283709569222155254213339654103131561491268285998995355021315781627651016682658170726228141587794710448492041661472864670760002210605482664932481425927919569326565089005251487011877252735519407171231610207130373031050580099557685696654610292084559458876715279878537810390088776551525528177018379738564467867720700915826366771846899641094919573036807355076320031601066680793836028696014139727573520281970932097913182335966961947848272259617468741491564629170295005636185172996745856457482930210866066268719284093815598863925240033840047531739650095023334828782019479125614044537199761074164586327004845423593624130491188935320712283071991230196204919547010949032707711402901514371599593078463537437320741539027873967378070074880827363458648236670928691658535605167977231717762205511174583565562881669283163883031599453533420517375131760541983284029545099488701437249482241055503993205560037098861174019550787977946949255845082340062621750522842731939598390088201443714435385333028787651854407865967132812175856178220461677817152594625423183237877148097288840625419898063076828971603034934527448409126702188012072329443820729705822319842343809825889826631919681231075613993085287139851994205375813213873167778082161683546851088124792701182713067686916981388367591998671627347212589200045889559030481598717375045930341196380334153280256743755562384496152373670682854700772243849652210866120960925670330906217335694001699959617498689228434624767836637718456513127540971630857294453991441514222659389376559548315028911485680066805399748638920875871051067648027842187508424955688541676123406331585479199272501434751902609227419623482341003734701881700089329737728467541925160309397586645099213274699418519756454757921487904056350665143393772654980870816062963750581978053168834482281464180903399339381474468886760165874024339316695127339617875083119285006235940132585753639718753406356540598220253268607918650701253248211813426728687457081114567414970322924560657539701978613739402365226843054603627504526866903534839396984398217520223801880061706716026663021196792405614414081095047060540393861549506881790627178483965882475825156271497469704324205375647214381109661310200342822224504477942369417390019482409767618117689561238531488339232451189763228189064795133486944670848448842266009655334576681635181963784324552208779509002870911567131934528877622073637509353412332103162768370525586719242447846226531884073772526572405124119869492739096429480481527182280581006195422078758357743114576982738827846738262860951564564872743606771704184492849815369354383229510178223611810604804619740617041333234638724670449655534441834153129007341781877126063539020344869201108027087403438175182081358857953177185118501227327802825490326656878632409990297089603532435442270215880711078208388123274779116208056512123999266798607522174375921863987135381321969504284439926973475975951481916808436922813142457931927721228879114917435503715643007930035235669255110453340409911461122608639744934589115456069685180849033167314723481644590002829833375325936270655619970770022084313554661266385694754811743486644368746640556876517456649354204936437467703586096620519185587929158195969212995081228112127717405008487560686712033532465295228749321807992128476466828877485407452853576839662782006817291765064625693155130279601072196017994471130713971031583416015875154408832006547556369919619243649719286658475851464017546321933514472333928831616894290981783491492460100453875359134776667383221267207073656761205954871290712382814333512994895606658294970613571328931380974117728693856137006063621670054653250865062822709562714677495741970916689898509110395581932554076233110783367535893520315878447912121509609706726224749038293438034525905834940524680634913880910500092562028642399890429910454313203765921517265371957262813912642741003134368908965774661435052674378910172969580006139682981721078229055233107744620415152463123868607268835539477277777018365302637237895686890412364251445171068784381678207120000830978350590973731071576947158497032787087443169519447926314109220090123210043434605457950108601278343264934742666266034516502712464532869004795207042830991815512559356955799767218791639220882066351630184040799137538882506965411926986610976431457542173056100773408688320413315389328627033221491284069699219585062723610162756320264602397328745613380879376218600202473111895224734799171328058314180815426322885511768074942979696449087504536863908964227303812271396397601402415739161997306334702296202283524559797479725674442994381898391935586601769575928152512194476973988571682149900657017949585010096104762211485972648684974510944962129087164351793516926912597803382906745386854234928557150416388420836037042535701314535001942440832179664404184413752950198432804596870442475574593812164350787283204170207581843899088105158011066669039395104898701862381928526794708096988524406678701789449684244142658846719849993102085707073750490487534813668342543849721448997436045319331017751606784440695232783357687171579735324794696717061710079906248502527381334423113751789091617256533481192530918783609606053642578720095152681506189952896902494535133907603587251830407626630852196968139090416135673066986000641952217397977880783742066193670787385028269794885833371779198481566780828246199290827139776344917830421551247327495461827508799645869118797514221522531893757758445558108593819044988642307156144861034066325369967405722185077426237896962569823161372752599508945294698829722388934565090368219618124782138626745906467106467658863034241332723947093218344416757727763009445495928053065398050594676063458598364189234149125901678059291678835897752088314703361712299918593549868702159149307601033751276611875668780392903784877242223578123684680432421790267269659249336171030792008249643818597589173691933987614376647406132821202836068430695477290244478924350335925384001391784063480397205591385696637946203630419131008104128339871332668780134060091646167607512369644044300555444553204886351395564770241801206368477643565079115753418061919683788483768797479594833359169601808184928595278204004218687380093114797535145248097474402588422702429219481144256434966965801893483305335042255086552476609102412670433137075382029890918465526798649352389293136897003350639875624695356726797090084227168263944412847331205506268110533150397369069900175135755669046598609178221909673202898883699545751971657729694115651362685177451880086107258816246240831346948484286213279236878821057129470928260323054339471886497066061647235293172468378676020775945289680902847587831174731157956171590288957157252847041470559956116721578349672309882269418118493300931090758675535036747636441246721559571243081250786915562389876985332096469885303615942271466958013658354870861677163494841100355946859493395179524121174826141825479735182568550307295006521085195106167715234899010756091161194749640697888510486514112948431764865636033872762696697054303808994292353959962556713546124822976382267745868973578756196536049825848377028757348641260092280781034257126383597491095926036079260555567795922934338651011643582460730512362773706689414427536943227053409993337693830047532264020247732235715224359196115314393998771673180621471143773711955361423925734570310049703525303693389909973517565212678520260607837349044067960046056902329118573217978748127629540505194969354547006109369792862300922080896308695813277302504537820418925573957213073211012349131647408337684620099628204095791856159025637344076252946332795237974973206400834154776548785975323654965512286242856739483283092715090958955928945472847145504103800699111475385145193313638752101312316730780938788977611254067342203339725187174856378413558104803342827185075264073961694211684505284571882974706063417015307938715424070488847981472504084832273583330999445848599351223949842019463973779809015117062796056601108904016224852256194133381533063038746819151365113143188957560631529866371330920281650626051695472087292847029350008675622714542961786585645003948688705296105347908936982690548720622086859031452959341610110803779292438161307679221902414891908279377611572368912817204946066210742067313530830728366229051817079016751314560388764887983227625113969034347179831733084345624390471093409190788585113250862697653632833280550249117275068589672238845782376442133702331793896772864501280277166591515048699040630752311459376734716712205375963653536302787005458905440305179172877932394751753596299831205838410238168540118228619000490537555821276781804374322170829233731168147773878260337722906239502541055701370209143913503030793967192692434068511112216649594183490294617543197154795448982108890194989372622546168783701203774850364694532788159778503265479945337250231211089172825881038272390368447375591390324258805829068015609532048802282611133051414068144735891925529978400026332886445098430546596663296398876367932813425818526902303521319967954634248099250741267466907108730211787628627114863079860085825678098296942314453073444661238341162040744441860929251833395520237348134114228098714138809746332713440789386993354001740299218033204698148852156306859630522699191895898946311509265369427303219974689270889319348987879098032790939030558943873219857389315266854168759427265186008882134496860465785698950541823844487810737936091943648973010125238566525904322018336757656489519248283865140416326314170347781966683286554662942969096897060539260292622653286718950651834388896524925746676654116369081127065565475779015833053907677658258170371652461564910864813131775369800563691949106039099032126975672258149146800374830950638772891968989046946606803854310695060656607371953410015079470745454999770994912457922766439413248229603930270989320715282230066807483341753355729265500159214005832854288944545801807354118831258156271925915728288341383679455945853090730890221430050172070611543003943859708807906679629571379410607301066397770758185471069442736964990666525873711361940725076841595602876917590226546602663073526347095927673136537887271648072562615447255486148845688648112455251333612199500846185992434675810747062016210515216727128630886493587501441583004591828660099366561596479334823439803212530749738901657967266718675949922425105948508352238786796989168703303575010031454946800496946048011679318063076715768093452814637098599695379933931043822336676742351884072596063919074573962650719411413565691608063083326855872365715974210414214982800895856586128016297580198520740960401909448185957620284614358176632005964658566160744372022744945126453401704314705010587753550047419926393930995922625247915007680626902054099732258842103828799582479598578452522642865318835832790463083995539322141099490248343177263630304619812325259640126900280258134230632668092565689824889931086450041223034556198221447376003525805781881126675891672130567605927565079765312623895626462904190214710976053074280902439415117935481103009824318836894806123727463827551345104570526807984979433950497787900440802101153118603363147580684994627301453544080364714462101454013399317127070525049279048940333976793477684201782604097852804545632615186606039636051018622935067043639543387291422474788164240208390477298349724844126030375338058838026104278064474048795755571451537050911292834613044797432180295097399796173601373479763121517744581912350452016074499310496679698938612530678914363093674723619960295642279216411986280709497882448263279600460160280348337788598143654360855502292186718739564881987722155598601816836620897694730042164583003159083381252262799339715120465624179376090455407851689544588843208830202106367136005049017074211073953955801281390397554215642338623194585087974720342432671966817882584797284458875885236613955945129003459178516803907635081373304607983999448398821366381113189214504226440045616973009837438004473219169977279196844955097440230731252620629473248535072212241923662098199426296129900526490059829859199348006574508074612868060475505740741726283876881563156795101832678242481746776291317653052123448854004687868624072187026347818324434534133041305880010457985675176493247049347212993019471807123919449261985149561393506303100740240540996635072158788038513079081879430066514184501459449207042547966183634697985893319386787947459089744887222290112719848352618139409940691359886825771594873524239196577597999223948557219420781534344470205811684077812974745719137916674675858063299843449746041300796019115405205032180055672195960168106480458240193941694684694265928056955888716943355438949293826159763107214411279427841198137598106341189513631655708861994518613278474415001741904037939569203914176552544937694047002998556385495635306345792705225748545967013359376592015134433170764132856591665647202964453134168136682005278206819949769088586397272683520420412555673740452974944287159478587328897920969947117471646946735763173584217582199239157727990316298350012994554074787531330456570161484352673846437024118115041296272454092985107239743337921822958561209858099272586901763856060975338857263402983392775032611996391532687497771107217455210185769037156816515775957188122043107710162204851786031679274009733094275449097256034151972494666639946702120282031345284181745038571615612607504266020074408189055822833112749919093496579956319970277541770511802216675793993331592395367856369107546917621718499808043727489507124502766653676266106499221137958586807166154935204381984135887798842073306894353225888735735680268359723401827251261290971414881298269325346324541908595802413286082814695707125433012379275035852240324432413666239579975735196011704196555624545628394360314546723022312273719333042693003184138899466294848688412188142429616962535222171644368077317387379820343831947964706642920228251748456938739946133167853720269730015200306676083407980385559989186574569541241291345371701949989977315725913804006460259844164505580246783630992047339415853583516713206568942246796206051752011155549402279123636992314100337758626930785714501777380359550629329282531104734174908884836509340922696166761237848163020514885081962888020497401092684627057797547888808639216090480975144948963540499854310921818364489380769608809013977616845179139923502200019708141351077327457575542142512460366290355208601449013649252062052629639228217314750061261059584007588312455535722971849729137760582503445126279120385340064094898083409204624061755401371400247533777072943471944518312651428258867950501570201654063277710568143434493331930737612783674246478341902746198463406416746450498196718458146935085895193942727849514715552709819650209481743233056188935151527246301852870119260172804202864481389432396360700448371785731837883346590670638137565172476498740853775600604660204704016586588765100233821578247294462021859980538095538100572909362924657316147921894532085984913720249170396479785668687587324053681425176869034243338696693235365578805955310449458978081725544222143527863893919641870276997786845830616933242982968705414921505759448179043694789803393994121193909175980612484516196417013959177246570983055069836852556359132673361083820626568049948016831121561914545236967019438373700383944520707286460965016919301926827921669850304667868949552534481841222250527635582523955960080765106373329514212247978634901672574459091434617573143753265855512181241995562168955020997329402293791622802513629229054353870015404363264321794183529480861111559370906808533404703573054287440424745162659408193509723371460423892355433702114029711428760342970789760235083714749580015048196847894115773527233939741297678632110740686938192497821872793247600262744530258388402053881960632660850103637493124490802882987278057839608146879652602736360636522833297200972207186061629144453361573817693964051899585617048573299310842301981063099856286722938615071108382655291836313024241262963545315197356105058130955589718964834327326405586343283714939453174532402205653825725597744586415365451405260027931257847095673896804137845751438759218318140973855498721118916098297564379919192036589499591666653514311529038795550681766342571062920951808135195548132509410137886224860111438172070964268770902056907880573352443033436357439255465246217801087818607413691703231235455300152379997201212400468257734070546676337891551638289365054460693962230949402788223904406714488328527249479451631669281490854013292882622106599059845155558538407946582504551158030953893837039591061962061124955898786131618802569284348369222204237247900619274583848620438180585935351876879974394475072922966189324259549662449815149609270869240187214965964297460764803497164192728568188440949258504958436573606187919495176752247113630613403802191971746022622506690588705802136116486493692055866074454950148331805917794889281025115345497401238792656797519875843638332543921771502008837137054169983154290887352492620943329857570218113066478317060537036257308545969108616956212877663596871850260810533548005057674290348990463438065298938073497789025373101362375432228673195264579343570212329552462064080296224987864612244358348591880066144374515821099308847655936467054341106198791951535346460356119034290571602844355925943143972014379970192993493336547755192967744701511091379102316473226584036241417911831422009915929607839882151049840238457054297255002086576834474708535741101314274148463513507826009820668165579755922275796742532132007799206891682932315482267898796134503378662859367990200740082686387105888117126157736483774578566693719340116029732081851872220996307773305801535587295637554222402909521601850984941393799030431966922862059352289539331201761681387859395136503094038023952562717547666528357498597351427599126264719469238696449673060260296040146332443877365662324473284024679621234026183692122337590288326621782973868083518246124795298555659402289791107572385328719742937996223548565714511062652001957806914890080749845713959989838529146009510542786535225025885840063976829759772119923634635167497325007466182641747922889524994392410092908376472212463514096688607608220220777830434331982453773799099661830768525074503355312956620570281419944324391200502150226774731330202562062771447696827182599163192008612424206142141335937426898494748635205935849686514376734182693287850823300815347506768010462446367306687671133601874549495231922984426550510689692578231488582469396072053861406586530131531092546502870997667369557064184122276023069290686830057895512701353314543967765768303868182513349179651718276475072156024315831050857181540906917515632244773471054281693796708083397198880607619177479691308836818823410186685109906952429213253699512654069488110858737060774069418816008760143977021395960840889953745216630480146438284960433031645890436363405684393414110210900299639999286529123091188965664420944758397080290119206378680880217100414151140028284778734275868760201972301806214764853510161331515131910983536128413430143660052613240422693677348218808486997805914476695865921332113131669993375672495644917830970934738613755615714620642225012722955058184176106429802292342610369611996011100389046970741969366213649299890580209203334143019320082710815054600211685581159792723777126580257095692324952631808493102572641678471343653172210340427036024513892405647641194256330853620641233138520548132076696370287083586509438745467205100052663836300317860481637285929793913384106415970096173898491169995573460484410517798421724304131615264912483464918080794084295500836738014655026055166798411234071973376060000824836146116300647318779130326413788175513669100047716252687779923628701978729238798451300961867475422230935445089731538278449661107975425388697305778651356174345309109758460390679121763536614262255107997635153833778300632181200105298482059285753121493868725864459239628651832058826628504731882651623178572447501810748216827542931807144811282265620822318345094950290284896382929265817209150488700731981983637310851689915162137343327920928682750262691737479575249378786976848866495234955087489973139847438274847763630086270168483672141521122371252999255465626299011340342033803632794954991029483778549544719717600214433246560742482332853889468958238523577294467071818820388147622393913705852243841490533346925481133469993702753563587443419513653970861344949896556224828003382104510064730824239538297802423943310448396788591583168527146525033307453356354247825543781231202814310778568742488682191922431538341959459371396183424559369233652391264155765955740223992100074220107932428991637558377292266367891508403263636121415109134981362798115065369189830251478823081023451725378355320001646753666387645441334455737542886638010822726870800487993582043926288646198802255579268468644334743169967753077857524082967114188718464432160043559124095144381274494048279367934600058206580844768900932272775837776906112195397097608774902325170748013895314694245269416667409945204599788758040829969802454219503459942283273017087135007987395541020448480777251679590999937716608018117281866871426223162845653949540656879921094010173358661014529180186508796758023103496296990098172483191543522187053662481275087187468029519953559793198500384402631266863819863267911910279637767001882786861019569591602836887467366440082202500544566441079351372832131423933663079867801850634406361046465054945958515651877522830185130088422837635758342374896603920050257060296259996225620962413609854847417621671581336352352507968727673105293149257941450294836807922850086570526598323612474719482546302596277082361977917706606014601911715134920250001999676783889615815341676402182724127851730925869211015567467720182897105777505392951764292117786628598141623826723629792671769846722912669944375084698609829605644160346643774463598563979547801667124996819214255281498199377998048890636559785378869829970561190808015154832708793623299679691154427564461731029564795633657351284376472616338801617926375416266500669128331497659212782203934434487338248335247995751780552054568024845321979840437305303220357838616435464350423694629708140760853896468405163903001040597064822158356765031181351555561534220954835737567924510905066093443826699211791133127185637524293530323023459490213628877240864462965493371919270437952922318242780103118852405020875709258703654784923608202097946309491298254959081556379626734148782649762623433564918382594516319036196126267737381903279529003052712867442512049581923359003072932619907533139006366994975074527359429558338612867065835759314675905034480837972359184355143027884339591510725731310140814283933653163055393997989951948101049919323334585833352457358736667289817196692902699227127018438179559655546219728359840923001408875215636308620907078882374254031343255327908740689405850700722434088818940561454944777548058104515558523907446684004017388502778048815093624808514205683885832511580830148260879365812031691886147833693537153956260965687428422646666914294284250772310126133162831445160494172843186073566631118777961352203246227268502953043595710305737771392933788733127144283646422540069852685761468531231038321434055178929009487686139949139662294342986350592146158769402900028522767920070387922800415615733217068957667409256239233680193390697096309128472715832154826119913660135104617293619394924436811690371840585579186942639431976846438860880694372746936039740845492109248540373904385785893859807902593744553504450397907566615378128745997042229296754863655735311191342200104117484319417322899263081045434127920410489902861712066395402728742992941125321648906535462747089846040676281957562852191823413465410237430170793616262077456153325814346316256127341667107339811685652409655552066898309084804854704862751020909134218399042061553493339575026959654701533980672013962673285731213598977399069072954591019988846691429787185129185796862289917797300738024428266603880852676680862912517948256550396223437381232448712384450324973121624589112900008255899023160286424821011749783445055715539881889712360016142007281353048722306288234803800200082813615612889480220885809416118264267239728939308613970437538341956570158333921431540805977505832098950893760608254408545215778678319669278317380621403264583141062923148788029737669167720817368663768748071109124089422492312105232595059589344153599597794479693600757458833274395854431986764872050024545067932373132264136217232104170194144363284093279360819623773184164948300758709198318893340525180310796705478165116283372010176167723668772483389123212105416139789247640528241101581360239480156597291879596800534447600174557670930990543560185759848092803908021050005265639870635749671806260869388568673174275141333047262674193559565408508082392602828930276447426274756440641374885119471478294953262535968361563904855537254978084984847936502726903290139614343019994448014008840078488132498982968783018886355808648603284721600554363298032315662655529915352111291709684756379383029708471273153646301450054805185010922143092966123997569765397475423898039010187555437154667235870939992201080655097156591274903626186286478241355300647897803803182894810108258930878262607089106302356450496460677357996393665792356555796009990502434423289901081963092441812636341615801616587512276038935931641787496419863293759062165957543994773907169646935205632369124731236743217119594871695912970561328483641327696018712607863085188961480736222208563466439785255185316891226761606118762432235555856514633554954359777294029621099250744885669232427566198149016335911431146210547189570607685370199891300479907766328407922662441167819071036893567822144298465184436559829181934184058288317937869254535791638164037058935629075406987781907109048281613313619929832508259261161714569293384721740130504714304949508128936622104510375522564163341547606238411327169342498256106926052819711831569352431332527460770866960753281869953345724801724361002620596621137378734410351028047014443035493884213433299704269034471804108634248325116505539781624170106793931793290603359546922599500211250353791462748799049303376805937809067175445767348770651194886624585714808459834498843258998385258034976524441170728637130171518750130594507853092888422206518389289028155507282186846866178171985687546425529221958549041777230046853606126101914164436321486444175505964715774914134607372180867899161327688136641608869466974592408088909957736356346430625107520860599119019555071882735641220976733269520964280343316829892324176101582576192402607427551287979938223400689624360243440988894134175135675765930753456333839970331174936241326223351172089672674749504027245972224073973266659356400448018794235426897342841855448207127518022364676645451406640844282349520374489095857726329775531323271416794915332044365898939322042779322083865443177074841186678827376231907462329390997624770697242121213031285081385061032090560717008334868267548126746654591177393776288843261610374222348012697918181489484695669107409836801291915152737581728522323004945132557745416410204833164691886435075930618078144074323690756920182282503166712419888933885034623902005858195059084311497356449445428847736640244234820002907331897923713312346480012462110507123376474407175251930609785876248884860358026305448807589982357684792991234622560531997187012271394227449375255668600148479996505239237435200782753369318365340850742968661915299588926650771079354007547410316952241619114199354396893834077248353861827592600792856744744765070736460099971048778436397135121476432150021943095547562571394969445189465013569916958590800247171530955147258840313613685963184677021760218756174589999978373496954846385464207493057508354791531005316725141202982293264446404777342353088278896931464696846604851033841114904606151233674579537328010645722547893791214834346482587566163116411837164298064730666067384895768431127007092122606304170962897416242263950226456396363859147127973741687530771349886170508679760659914873800752839908734029421645931935261858316641053446675082417468680841955532918718600271432960912829271985854432130220039208854263576674472188830367067742958696744544337589000227154203053232339607507745766681849177880400083227353452589624242383665836197692870265082166147427886615253925900752206827987450431325983709872239078393990322401683226991357636848498126626966689463506465895475748015797101901996597504835776438734687384430775335076063050301756519113452705717756903451630658990681183306553357344575018625857909967584484371051542425395110363349556123955737811055774567217775038723455103771981558404399581826298453338656483987768179968866147587904441034962751393422937051253546779857397399586852923398481296284975039187467119178967831236397943832120433949040006547313865359223075335841098164401625459204669438671898008305657243126160603664004694416260869169143482441659324773621913151401373276017975994583742468272555102273979047528709202813330005852039245150026027198392957901945562555676502623584893650381381417599650026875362223269146087904096655514940785033130095314168991856103923255890687971592730011054435063935077556459981284415992696393950251553419614107664379332300050442583876385610438025222061670259225426964445191025066085451328182306472682600942363642015520594934099543203521421212567112723427590315570679254145710234851983070312288587169672178540571421288308939407238139295705157529037305433922769423911209949938414402891094257883913339503410811039739101397274134378112909762359317565971650095183523277808589135255011844618036458826240681363257027956930804073652523943128198685335040230675595705787589138733904251295676473035905182257400261982944489651017736689843689895415607555579067005168032451015211408412850855882099642051983807402801827600765639229316949673665627921313967883309871851893667340488607677826879428255156423190641281843613787580154594669144768574769073098333900052740291823360209090840599007548385321225119982979529284246787439063006320552267404791941259034388588696016576384744840283303853212781713852922100283985429211029294581950132567476625633567372913011954032410395718513245103899868187327299674402124323866899345364449769068932982187375693212904744422582344653022083338095775352500253025949273384144904802136825646174282243817267967777288334391694272289641849979984187100506347618109767509849064874809248465398148706515338174022837739328124533562768967555823282763801249547835139248952016178796784027163412016313169149759262538341886060358579821713958590567579795880825088393240599279025083930149380239999594107631242338815757483282437522803114209538909046851871827737003471945897502623017751925027826507438061875529811641643430827371272612567870130895253974088073711106249704191649808402062978849060503956407998895877180435872138348012216523343671785787838303449026763327813421979368269665575050058032930917255385518099695796527503880572199888376815588446037773976805109241675488103542848842145760786560888162729507119909503514826559631419168326887964375597841774291897170345360402746888830613602056315278727172642506864163921286676466431970858120513278138979880998867632312070642764268929921772609869916997276297363630465859859678149420713303954607011633003422922434144829828505300860127281387051491354800029112201398258531605156670543845904036373870982707810140381171418207203536011474327555762773060083882396455992007865336115474720595866244606069491499773218317464765604373281067230436956944357544674697331388578346817903910953572604673114537216460639904958447927833878717694361324173633314157808510109994518236595645990492532913886033445224838886502924100415026035361160184750506038546531546951009975170771846976153919498136422700436747803301308312588865942966768320353296382125250322105509798196162769149596722298402796085318018749833674430358116534752595666285459044071572278583611170943469273923873790340397196355417940144273856044395502971970433403208405207693990771368737954520435464279777293241232370533986214496562300252978991205240159805082965792527671594735295585411161150160069949140684065107823855226366632526444951548888272707777702780653901290072669442236119337579502971714323391365628896728686787321565430888763223518230656873525266187295993090743928586735262345987132469130631568757346418747112001170078981957451256542150834983597683657490013535983264749513833140563275339201184764855977046688891298375607416571459801449079487183219220136269516483756946838717290481874759634343666470182598340043525432583358809076469088011409516439297489033903752298064096753053585866935357010090223906683087678048702354607764754963159308631504518664018960521281151900726460390706746117730814387696330225056436511429704585509675211184469864836178788633584278744617059286686857072333999662871434822949137233205506438777955742634028775134706720292209913753731361392590205755849940619319499461318470872676956465613905103489643691413783571042539145768074950013557337762778340791729810822283236318231628034828715852776444752865271736313393831215956766264708170279796951337426042030877137182228921123762495200325335396538028537355119243970144091891615221703336223936172615059000481166511571498276735932747544647703605655774049004124109442890631391997918356772376646615470461927870541314634373941823901031240500766816938826467862759910930843156800587144531757372734613188173958586781442574297716567314491393459650115060135133370104853342727759133388207280895681752099188964995537813516234781772466698850223872768317679404137560283068325480666286057942616218061873965962472892474263050458088268296611274535397642314723854472819147249474411427610226946490392768410436315594314763969959226666825478790314635454230130566336854445235001290999054237846713043110516890898958111627904855328741617602412571680410354195822865306292116947628599360786109867864068976298431853418944835439444777976459091282046857000705063198821279108225998342036141184599930340758325348407322720308485245197938412138999252533049419836702517480329813517387186117991925095753119599084441778280373095307429212279015430104525310728976445378079016480550313881980041905964844591393820434044707008581628199309211962913927395053633587068424188231907303418503526513232085696456667974076937555341222784538634443501574964766692042579452983539540942804087522358812021547875291511162165656990210321672797229399020935143263703160617993085587312751294854156313457578555302563173617799753202034196124308201536106978387803251657173366577893894373180398254409475208386093974642469410660890796296688005158085879682906183264875342899931778097920017663924538089434709013166589267036632040848971585229465384923736240292850208947885769435139612833245269105126502330651498322645872153924808275723089008109290013488106358958047555566759457031775284724541756557706115654170210357517162587829616142480959555020244432849945614238256575558005496478581976252970265687316404483016802709334631531952725646377350190679945248595447375884808808582455446025785546819398736288693962984342667189198944560426507110248989052475970808531880065759714959385003610974592540729666300495313119608188837660735532359679416836189789760460596410687793394034794080835320652212134040592538877837967010981774305656044549757505354311883019291331543787623940075723896562752279431754461799617455963228118817272713813333160359672499418567207246967704304686414573399148535032160357500801833903767947790680759429445029213532959113701574022966827544799095053984247028331896204127990520748684846564075722845838427892995707525093039176072038092080105325597397936192779136349473666336553554681314530805719658646540098418944668741213835641095390265117820264472142312197062412196984828465528907614338937327260214614722429364142065720252346983313674006823890804189097259874276501256938448211893741116813932514537217290569371904577808130240384324657513219189863563963931940210050109282322872115165458138735555771748554536949447062905932199044046648175765483057560388694853500364971152383732997142261101976496145970295467053375746489786355865113364456109653737393699214115299886442406211306989964361384082747225663221133038717030113129997216716381098450464125209178048439813422032392359144070621089701195993287317567926276622248719203290009670826220339320405765917384613472789021717606490643679099956500060444536848462533597675982668856420329845667173796961797674755448855628923952409459768781699948300457197327135220954039237234991846265097272432402848271789567750794081620845938530761284216477884637334706756034711943013659037602860067303226073313315954812486368163090763799406869970149361282010720167350891249143836502614126500704962699204238761151583189663520388580113953582285765344481711515917828121555082247978373193579939782188020944040447885367206679564135271768116144099442031687290537628160279286278292457060344005559865406545489107674464210473130231763093702015758723532302527697207665799414986885476772682104137498278486007870349816209661619432139281127123505121511595132984441988506687828246501783010307402214367783163025488960485752386129421574434524671244513236156080735467606546969906484160493104531426085865089137032068434148987453356781131486839093545303368475716778920709142871146460191612017612741577737220636023645701006395399341928249973433182413472917678083382649143960657333069600305137945833009559838862175377833062316368311331402859200744718490671932178644534210959668064257202123899679408345559963899339048097186764996702558959216040104678902341252307094771828340361786217170129776570102727265318584546798257989930151068481819145221252966981722369919183431974967867289416818087586576293836707546255711818917543305943260945591165105918321405610323460395257012429561130009424070662454077462203729942694198685808468041193602616323469584248642750038472221197601267510545860241602937652350623309120638336329344566453682453642453350193522548377957858253500434848409730434540610293350375275997202164999869875945281344919519529698698357642149815325914242984804548654157423248753517230906171576913182213098516410395626842075542763025046053009425266426332772060016130928384821086238201675079314793450760289735694924404713118607217642483483696535508207465094845760875394174755483274794490772245161964724370272914480894748191729079629696330268980881247148363247535549971922393891820373817669230861699501555704271944057489103911990052225988569570136816720250702149558234833219875397428642681535416038686390373108535520357611634464082789093151387225092788713479212776839144660450223583130460601906215520464488669388719029890890918843889431041989010294379279206103657925996163355227908637696907367789558433762063802259905188112427691247456592006194347477327753219116421936151060686212995926766450134720495092972626438820162420838534762037789083889926714620932020674570387770321540697448414539169150860746398569281171076738852913727551715217164178829398405964355103478641719953065914278682414185355261204861660701217172284402515118002816493995801904400398087767473105544762751946016024528886397872899816481542418841116670008374750675603878708378041742398900051064089173702129111150791872014607006192263767981061313604506381450008361780715092315195186996078541162997504521615315039195493832032951997068350891801685149663526225084041400054086819788160060397742673775433597499934429729477149991714166506155430710214811274725051920339448314694178917443583100046844409030018656820295804350284766761225395643042120175438880471298805504190648430592815032687040162908276303326933556149749806212824857731698064372049363113988618115273358921352361132762737912923234742065891714685538707405244000836511025299442472515688500675379878362444550533066506677544538111773791426217034773511763862366290870790348481660990969862465940273327980155109813354581818164543976659478026297886822501140696823289937749345070417768074446225142206708747467939078044447157101520011816045496435693883185390258442881356666630497368754712387704575913336701815838156873147418158654784777137057329319837007175923309250828095313338018382205911807703761522080397091713140211627797762862898524662126507799702311236224770846061506375122649698055303142214442485647091227044437219622728495338520186897459130310008725626738680728005941248374334641653827694980138594468991530368230207082054606196952483513384740110417885811183139825832904726425942643383935077764548481341269230782895371774143486710232834896589286278835257344685676680293343779474963927202331291702486177526617046901842117797372390817219408113856308054693128820954026131118004206924468129487403804400213231935494506862779846734945177011786738436093812388645868422932339349995380236272671571803498722751609425745855222769271075547115950723569501507692310494736622543603111200560252572262141197523055613003865614438453350051690258637572097633194921133099682283961005830879657031777694548120168833146765202506795544789187823214292366990887381639206139507706449599398578611337982870380650513710956530487335866903266969215583539985288526553089520215543784473054639514288357265613676165751478913556586064606659715136154043918452598957865952045594233726452648867854317751904890872093824879871058637444833469130543243675890506996312879675849622665851957659905284648365509108623467339347993734666590478693267032125384121816630490751140914375669677663579350398247031700388368656906432245209727230828684507246932674028792985460690970194515497004345023867852870609519781974482270026950737412664328209203236839018023059656346000903914051322760168437291665833236718916988795606050804500093080294824403155871452677551076174976903544425478215708504869041123090352741190587985515637993539422601108776514639301274761470712151752738662047682785482414487524773203193772187070699538910047378266898843686111369936101002317286877432146360540550898203384140762580479293507795177210896308241768414874927348399625213611102429515552245624173591181422338674294042959299196816788779913383449694816459857093094191861978832130500241402955983125801156672862121183234914448416534157325214097470924255179035244957455351338399497423606599702504890653461421144883030753820451639345574051183591839180598096110329656971989854358656245632241262126269057904282409524452466225465099521883450961029896253929578192617064451796275349247251829261131944501517204395688669936608213054456944422618947477391383492620875130169785718044890535167032258484580536329000690630375066712095453730842685335623525261126882027514074510089848934522610338820904691349524744045388661038529270169929851493920465595302019961851393358576396069383970816507938794951717386941937830612725558049385958227116254272547458537255539538156990959871122504810756142576633075299697350600435601089909433742367928380634675076770218222028889229879453569042325807500367254767051056605631849242630343065657952377131792053859429531470434847818872041768082380398315399610061318221685102872540384333980283465199322645637311754978960591313245964199746425185902223889294369385190213220331029228798798110384463548439822511293220377288679465054983291813592299557182189633722485089282949399169121045366191225037674075354627951308379502315052125066944509886493536783332589636392703883769718276953011080707296935112825319668038912739709365623252259242473628707345811195962763895216868224792973615589373551064560311689204179074722521755509407317039028696593602735764442465920918895229595325136049723667034536722730671786179890700109797374995526695129874487714271127860965527669663055052917943547678305881157167612694970020957674657902035077850463288026087555608199800373067166188185913808024747900774571597232509396977487653334176871272160566267454157816792187444899504142404060831879306856681591645918625070587443281511509993004647786902321923237721446124103525524541487274790091395513982502375507666949518373433937812211601110028773371368399462914038057267769493939380378465677785592480055809430425187531454493509467122455591917754562696341076330682639109316898692125559455476071356198548321896501153608971197942460728939950403544754089418916348918597358155559835743015999812312463464781100017757956971674411405616366376866882877657723533708802472840093108294849584849407190591893621449659270215993072976216698914397800390066013227195973204413040241371385034062787270264762689124433041706321860187942340783736857655403208602851162688136632531654601359967192229407550755304004971560104305075861933657219506827287979514820270426268035011367966888441132542146517519814538505821683488443043843075376608926860254584325407919017861651226506805651400946561269657032114336014428689132042299719224907991336952538327271023822938952227212135783795666886346938383776627552625522415363310115627035478938832866523568673777683062964398847313259099963001308143392217465449317344354916368887132822684932924835267042595667107047607024788969047956606465945188415763413886296717577578017933604529402628501540124161494331356681721636722101120644800748960779568455232922463565110726470915468912525739024027502977931358714537840114175937675290688727804882884842279931838266532033096395655007670939757710756274074513282889082786726778722686037950660878295504018060443729614570883517836756937685754593016112200364878109621294692727598536775136714117344869233574677572059796948889776651343073879611742038988311874360255847781131189202661420032146133008045196698164645377585120519607640301213388559314534733947342009758711833924825909754158100778216857514461768038390871147626904918764664254930515075517937469041841906963318606083556346823867263732314758053638760962097168089919684976559961317663614277816076216242041873310009415208797270671744923241245870945568193561659707903744326640743658171418108648092886046732154642467585830537889888942459432550319775474760914081365438153054129999878739412128288283407378340562164687673125061950800448447333151355687385555767266921868107491066992590326337002312017515928917147298808555363688522325396710027596283031323759956756453234314173100312913789109531772733807891529231423526436569699967680119978943634730403996289251500697544570051217057305256838773859408953697756897374013371311964399945271818324711881694424890556751874618286811959967013189964763405637385482478568611170158861501480950401901235420639312884875965290768826815350689356838222421284719647105560082345982457812554852286527769787095106562566479766703883730871105396637867740655267543395475767820106654157986783298560682980382194931900518628778638233576845579467337935940063621517599411047106167651852244336853532861582417730305519855577990503198329044858052346045579961094443886226202693386719091462700598745998983591117387563706859417914858489931928636465188116477661195429166276806146849228728928744507281885757289214692445481235072790701496903655794446246198925018122587366771542696070636504344910269287427800955050845738305687042487008539824775020749305072178224499301908174719655519100645268288156634218471473352276699073239273532758254566366305088919535144790814073373187600963020546324846127707116121199776328702878733602928812741550226854704785241733969788524032854972257936693659415294627390853205805038076112978835411116941662685732617911787974575225651322891375488737051513361607478645829313725820797260936674234430977847778797047492476746242975405616929042908597842699879695501041135771945982586870634306671130632411095988535671355093908908188976324797859808100519480267586890997272597641312703861895392424602424794651065401347897572430374309199115430152896110935084592399267611084737321567263770842909540113689258877615809008871705217702143318724391530080082765176775465384107026874437071783869020480441415639326314603234347371845582902298973090503669570024665300347545538027963330279558941675705231805946397804795952826918041757272080293621552385859493188979303453370109019231240040075613683271704668903375845218285974832764824069716676640888309487367682776023017019431169807620343418824638033074213391091488118320983669836935034490861597818224543995878299109082302127900466125261046844627754596464936212938128016796844736957369790170413499370423521427919615494301083365613274409002530464321958823800319943947729264140724785511784820706922860729304239839385877296947127246865227782546970814731162188172844318175756862627996329689814367101992658050470938978493138159946339324510637641495345440935363909982469487986756574928203294864633123092922293712030995138027969054318851296016634866918782222358260193394854332075120113199782967820019668151337719803556846684926420232771825505217728080692821611148542521188495582891716211311240037691975756496451390993437969094517062344444697516470072452715856894369742990272824397003333635615967130008719194659052962892066086063838335125451408132309456399088236696155296887536178371289370950335273722097799106143208563274796226387090053170170450162425381484654492454723309082059907031084685919490073747422302274616203300204709364719970076546162382802617461811394889972709934688640735434217538781801274252776173169526842433345763027907011565885831964900505095414586758056020425783189096480204647861377084251595985509599535869416441004661575490096042554538309400145873444179698192325309903732959857768183052002069697542888930856910994473547790692511277034280098152435398798507393762696262258477293609895844617511453914369881160553915555816632671374197542518787323604463185772800451949542678329739478143448223886390954063826306619987203861077461760124110531337864754110434274018702313511868695014709183853307630677412112207749796081816575866847911457453393152047566947119774449477310862529554947596226980764685886728905162802659419567022701753378597793315972689417733865212551013622490781031832257937752011565556790329104067683904531171452341015352671150027608801413642141867659539382732539864883468380660596304194919453941079214927789047275051431297550000773333744562453786282590009146481876862738126339566561714300779568388600007363161364908357884488160560710315316532983781371377749702586110071077703566651007609238325100471461792192282714184295041115056086706695817347611300112326939923007531578595096551728615608513112203461073343923101785473297777187598957537851378205584092092855457659260201225542019697796181906777107023538495877026452475993497127032851584071673782743503551290229518617999220466515847140820842039926083453395341779216712916436343577290840875494404504170538893067611811105260912190520881864709270416131790387764564703838606331646178137985995107193706277344943841765828678385928794284497833151935612479765202876949808130722550401504163391924272533078443964315724998996841183163438163503802387931248091133894774167136352792950981341738472496325286951296778970441303728308773648387577189006627914393571988668893068415915655078298825445412378964679567043436016194263541469286037565868049740998623843818098406407170571915164725366337424686980891814913986046042512016672287115060998757578196504692326483677136584987785822106491850988347728455006410081865698298373811603433513269326292564112377302192477049153273746876282634453769083967427988498301903366165062332694627156221424035699452050175598085487605867464019711747314061088279891664397414462437338508241680767678066014694013674409829517361977180571370975808640486412240469766486881680295250891110524824283847025718118789314435156762372482361206457976106687619182817106358604990720399994139381031590121713402479939395520827506294327205165445052347842167798310006784704104228702661609025576779072876283772642049462360605289777868238063440862888276916044312950611082607842790636899020771238693255926811103318370400137867166820930226949594020654498239182237150611850775043819819433881939173352789098102306464019405974083780604320080037834369804004532771952502943049300408019406764415971110292704512740508082960897124799419019276608746546959034305424405400701634608664185759865057278351856286497468067810078205861417855101781842972703352188949731687485601243469311642687054044471851007851944249961805601995492649807700738911534445235166223577459024896067317532851565201482806200747770224456252224075841827721975791062550424633512340725292323746245070264983271292789830550522724373209925517944371195455936360680906926550021567723044235437170028824229012278636207912646950525277541752857811004192977498727547991931516188272897497291299276008818925706824057534413123447976522484579711020944528433380362040992150859912440141738538927911522398613687788077784268799431199284297991514174452116316545720257622008978273656238959339724497367899182788265144962852482298664383992658660380283238576148688830074330904017571349541516244707973374492956136860958234270562838768000063463058666833282087438951319413340626827015437847483010575824729659800456693244185362718687182141282158550247551637791089629092429417928413477909789992359298905105960305061467840011889865031955987226607966605783932754972507650684147681209059524063829387395190950956377832639499583537810908652073437700944405623973350127665102433126178787591437774998234426612802260818916908688659446181277621782163094197760011058017871021224534845509368140128505255900870485402494288281075264953527010522867744202588010733413593618662530557376862763994815075255830690842983932586817038404152689376418359373749327807798358947181735735308619552779715399221717616566034398279992187744091635283729746365550809308238159377955104868150460128630422385983507665382232958616286682919570523952522953831306261780317793968080652447872863769917465107807777651595655132771015835538949728159944125470323049174325044759235308802048972012110207715549384593709830132500663380090049428748578048151085722909305097703116730085903987336835760415348751089460778559236015422786976699236179756679366006908269921615864689832397003323409822854624921020571969541616217674023087006795689116846660810912528075052702433049390629024668850915946106912641792726310874575933909949043078820483395767017908583354942809010347844308760201158125334905712216227332293693220312996390755468830381667042062157291521731194848995821917564990248410121893165464668003042463008094203201239786363665459180716347187982931066594484943845123432952985405923267329427576181415071029895916597952625087244778309897186922035383935718914033073410788892433105383936550278690671992142423038911716358544274858013226949576750126683939656977850358326399310721940624046786460840159079112849856726817729231015769265026623455260199829218857642139137040994292163193019789358219572150581262597919236042920164475985672592885621899891543308313777992189370108343091716753798489157051603200847898475457124370559494605646751223909729119008174003054136843667737289049513074495524615013973667457832273853731588066053383359694756934732982216710546860687383513383944633429786647085710937180476806152317670903160930981474103362624030558826194824871399726489882280367803385947523069729972361545368434149509516934979702223479456522359584044489919599299237748906821936835748578653241649078359362285216370854552381959442475241568890633347894546337361856158507966369051798433336875632845718849397251263908663065035634589503231328088939548972996437225820315478509926049427689930627248764211061511134190483745943303632888685932683538829916423216157757089310160043751138471864372644098568071095017382668365818551055030497157638907833473703635327663468588478541015286832110588406336521926637801248436009482976351345674552599970325469021459343988251938527968190938742771677455680953006231028397639653921632082278045919695826460837946553912726883546991428622160413850351930173055422513201255924046141378593414122636961554101325889844854150350547477913385425148238236193427328767942436770614125594692754306967664048517036366772129288295116040436471101752872272854101498579097157649562998849958388555255727617321220971461684195640395546037896555795163233867708131044219171021590244425871108526508191780019764499508459013393694778633401276264918441554502439145891730289409166785105603749619907167890856990936889999774546608403545929452814910352241075494192557564438543591735026621711457480235555716696825571341696742597666316464492058881667894878127046663212337130275091845062018243687087219586688332086425463116196221300100714123586219713122267504469901501232274755354247116431821114992856251462343760240283408807248831401481014925057201052810561063175885894863851041655154372243037402684146822211527006667479891675031384098493544348022696756118177151875550241158643441991440111583702330799865302251333818054399931622286855250147456775292987545232489350686021921923781466286179554732562419182981471767993128690913131196869409184732352375328938399452601449815998717482700262869818063678027278008581815571300631442275669220475569626397619105153225590596945556191465746190092482285909757744483129152983446255908843228381767413155656242370962569475507293999175569136983265696822040101557014900908640250184578940200262738984618254693128818140281611547546060071840573614397212166568302517592095731604701526252952400382325332323331675718998604364576974354746298592732699688306401375925611136898709396453184525152442134942550005614634190912474799522684823594182685341325340606421701684155940626178425822960730484406539690651424976343455590253793808126116218403643356494761738560950462139523773614602244159786003507611523449119185616814325384660057257496710226389596171008576054963421216408761471654519743870550833457960946752549472374752232250008686785429757515101365848919749937355154903098708088766973874059587591127219149621236262154654750667166985380823039753043551323521796856251204917914537732163748955902477088771963263430669543580700759858760128471871850189809665954363243417696126828584696330285843304690335055898762439644655622539406883381032569523254714716671613503154428882290639823509114312459180896667486915099515187725828954853050821626568762892648297393321180723374711390069800722686015929370172287333200292475889959264015454129207164440994616762513704105983128856591807421833794096114781427618936681118962049666105984283038196252261561919817671992929594449333377254759029301765205872823039947829858827365211876000177783230502441362909357500899173711036715135563755101412680121382818251891605094956944911545811407354129021654323418364394698405781860586448411445950375651220287631163189730825949290239124015974577343853402182644899289246590375997601173775754063882200727076145683070215311904524036782391273609174154461169912454728959929899437308294124416160357995657586700970443972528823338301096579220610717615166170139394283393294513427901865897913843889975337779297047214331507861245144732592825251568563990810681012434955372414739261538833396612860772916317759484895948458649256424547188163711720641793348707834191349288839546004139766847019045399323187888139794013984650423790790818972721852326139821227534890570006863481342221463571929718148353151785719701754737248317959705314444297084815050735575194900348708354136641459793102164991961358132973559826633492394424299090846011847288949174694929506948096461192569865192117975567529827117085963493828578490303649803241424211090447621739289402094971505357321767327775317043270289014102152716742380880112551498582812913005708919701263727689074245139686800763498240978065604962398588763047654174307780860644262656779510998550077610929529043531728996657842088030201806738476066036080737238194747455489541188574927896938848388370583457107746179752640616350025208997539698373354078609577627476408264012615625118932789449491495724453758098055409835159710017704032806260447042619080594166132682875329871490821406195217843793951520207646801227768421999999583360953937620922567428379485527780683987596427644444484454099537688534925297944668041022223677724248987322712185794618735247305268293110610250471893807332548034165140781744977797532855567785285097780366469596771940714429899053995333039191725648528768754706135059788148867604280332924926159144671148931338227071447813038883326909559947010530168974372750233955010514146888265970162806384161902791586126541340601089838931003896966767263446805456676432032666518644074633898122884715902408585112436573553565312832826194871354081972099971765932663898513345746630352839891043884882427015000001219267006880721887036044231654342041228663988680706840399482698416359157032366471109086057698221047048965170358793934035092660982134600080406318003268206834124891891081248501861403616818828257293208135294772599458332869372572550107165037079631493985867730696792438536022253673524940964916310353893673752660623297397855565496502633807317501269587372678016792777778251872215483680138068897604894287754679333387288348719975281478443328459547404502474440622836048077245767374354479910182508491629067306677983664691943879347063298532382654459945191399830893799417288164018620523186443715210651238526423437527803270965691052590705741638622302775800872191468710800826205804449608639840869309182907459307339970299323329421828332938529289877935362492054210697499545429479162246395594638241502491585997443505429342092216379947929966973145935848545597690793833694584949827089100715298662919685156643372954890214069929171013473512035646976533162566365871722126163280422616453896270254168359387060561430716547692567127079242352149351720089329067520985790599992313040855127874159607161985054946434319516071337163482537491583651109274545723965433017737852297063069530427069494320055028684069536578867829040591480792917799404814501487728317259755881640840652998806558862054052284574801582907348203431769409719997171300652406688171545510201632357027121089711410065321382493436828114059152988254286891587860495876443491241586702123517306908194664607028417402824189402378665542706395051630177527807266609710051463445064916068705980293863577008733458736691568539375488839784430607766252818269169515681935782974520203980107602564680092009895493880986841573412976455647244188277641374485241521326838809094353381887331228303741947758813188632329953088021279826595118506517678573409493808122133878440384892828844122113580410933821137969896749512517206946029197913449795971424678841105495598264665644823889201590261183571323303976755408592770049274517708701984053767056871940866896489724995041704109217555495232076609424702404168336421124619330277825242642785402219402187199327639348187997312919598156552001387524705633671819648965570937116243559861994815177446405791112638562706418895018940168611060427895013009225253430287028519386573573093968089150395509493838637192069264186005877253008238057381512045030670494710564305542786046908676871070726234276148970794565856985178895290013316846678576452204319747952638116164883795448056939972546929007964802820812134015144863554401664894687838869675741327319080643955321183713280171797980506046165434294520242181778460834628053549700449160964480894247013285495929838144969158499625155198642840418647742211274393720900528576618918513108311165381302565705201623914488577870156793661375389069337947807283577841282442702556303327334142639342930144114498021682198095072640684169216885746011357613213289400912265509156775445608625938744216496642950864339081384797445025701887305369394871287903070569410567601046966117398983183739611553862747087485845878692878227435909759625385434078408165819044258572563908319663348452997735092579861226295947950869571749806665826001329931468075899583717554471992669137678163411958796974591875905963330001770252639929342330506416659003793421817114079913608451726787475219517197548191804794326556544273812811960293121162637715995723516049586498920415774087223210409577947545559201068968425173542459992165786774134557423268655608544344141607055587083448235660476703979555678255572607177496946831828691816951052997111963539765568677073356939914579844886018119627045081902716544438957890139846168510473005713338570110384295531002007873697242918611615499034566964067040171430777222169007999625715646570109184098108717948916039672100992762447590748030170223065225941128142140324208007004002312605043013610953727154010520981040247601050458902045979703423745836281473990297381055391603020575878547516248577926238701391847258522220562831296019087280847359756795574654583878140825328567178098555427565584161290838910549636347794083920194076337607994518613119044023911325755508777467868138999879921085452232907204809812964085785004864292397987527167106781878679406268079673526441668383312942628419435272839757500029438110816320046753117303880558348119203741105340161065796097891824223603558915365757058453469623516015754474966554090903037816200891177847636009844386198775545096900127760707788208515250552150533607460434774178994389490746828622385244802298706421944684891559441790874957200320745933849923331821302137887294903389824309030632887375310408741803999313322706515286354972495299596408940222207069278440639266320548951055734710337453046248081220645211527769681865492179064553567905102955030386906873074676290894890375394266755153998584023646895058351478238608981967563127992603497274626109674758913287195051051425743912227195351851819872611498383525488719402614361407803559905513370503306978032001575751859496406389192186078560212201758931365218135636101562039428138071726115544497288846107983079527093500053785465753900173344247763920875096108465279569801695592417062293212085312463122718264445221628391541914282031011683305992464925075493400840700899146256671235165213473420239717115348478644243027641145631513832502276721703739514693821281568032283982472245032273130169686293814542684289911886149399280250437475586420240074962249594969410694425086966259656079972221838589295891862886238382352992842203024074763614342452336763522308214733828878916877809683675500093433418829452884351417578798809475248641705669366486243698240162096626554374328353361873222614298952640871264087744299562875950420509892063660860733669280681861288593516578621198995079924956764977924633089347756669591262797245527170481261738327382294301987955700628850781115807761946940637329553526017678317131792715903319066537283962541881934129698467649056258767061587204878684470663472314630459614303736199479985449276863744931107929647646096820290151176619513916470043415953468506496670520293065406710805671841915596834402259467098989749551172993719056237984457119524479107663105971351012223479300022075181948417542656429423993816227552533642467791085835706089860161277234011934391700159980674496990303541898398654651666593591638586687882574584761025540778812954757792264338686612433365799994834159521841434875285189242347205508992130324961494512132577815807435661676202628525799754388145383131539819560027037489299303271335366216187538613343683653084321082912763098845372072860731630654151075486062315765774377393447636225780708834596010385989109490670014233761399499094160931558847830490307697601272904154610722889217540724800620133971425415416200493222462818300554336606225226828976096609981262871572718750383668351409991688416017790486897530396226590456513621754907678815904415497178370421673982084693284600825666348310471178159472923853770720907087122776643729142771113461270505915381817203214435102358318409634317630986300730243884168398979905752351880402745994031193920935811446779407655691836678129376907402427979255842024838934589909915039251538577543829155844661520068485664994342240382743423208640222536503759276230600554368558106859623092311637779461402950074428576892012887550739647059308953524794075914157597222422418706951716253824342332734905149267566035974850823808802877545406189358611584906625516650405640174772144277286350694764552102961436581768398705951244172003666229252662604323144174346105941317522471459656947361409910588440897190520483782219991353150327419718968379009768130800137153990795721235263203405539620030888437146786673899279042143972989545622902084442016541402830975858914986640823863959277418150950172310393686422681975751914733377224916312005080418680945862083332223739710400944678713022834112314137601356657047056949514551323042847185939152087416317146375588003926189940873103643175773207643560473017764020549733725962448675202135987919386623175351667985997864325824932635762865055731337996302144543634243243095204062747032008182545446336244891972568960901418928143410823524895221619851434203441834673774668654536879473834991012198798238974614052396052429259442757882893712875236264343671885499541667390081708410418565767564214371999891162480244719121508325281363615504973494144632608138575527366438801786892461220325357011594768297313969430840883688632671178464699670002189178146000267605173901158980228162169678738996582641430621641027902457064440276579566866048514672204739374883928801075556070809585035961608795510791427232562878558527685613000910501057310493011699007374316386418873926879397050599536112629677596136880520478857215622541460443359718705721592776042732258175581735150218091662709090205953349726217519403725596955261028136542796988844935718342734644369045258374260249715130722885874830284795103934252088456331442910017848323427153493285883771293876612138848844069118438693642286669143248428854357468587900939242284469177561119604463367267838111501342598165495113579722272082643781407442210646758746558749618923018034928894467152738968289767967471698770665638159366131029050101947669006571147859534250071855033092286025459647747772099643100337887008819314695229128016961834419941591541300703101432497970440105779493576107121736993574449105105962942706049883811808962503660809784840762099388296129823510813246191824087545878147059604525695371725162178145615907775956987856874192687669668848766616654106651553012493268048209416090199380844290937304772050465568593003142725950499555756013515633256485633579554651568968827302290952468969861136320223343543904797512259215177593069175592684916436355886502970636818215577516145163815644107918444973725437786661010161987687449865782374064132257503152170404967415925420646027115670012639283645898041410942216087766791329328812567683224120832912762251661895943541854775216594368237948566840777508561205041227155788685156171236292252973371641826512557392706396210367053598489486932118305258911216194952646440416001042816150585937010558175809182385557181086528309501119401952286606948951137534842808155699161541541969919870783410174075005243106305199273686018348379714468104170108429120553707155534940507106688373612500151847831174160382226680695513451938326117508107670777992031731252915996676021275724469010291919575840982880279705184042528223825010037819766185035526467469620164301822308101460614846836813388455373412542860674948050645893429407649973643437319804257648671769009126121390403490795033269337367156232951840305669454372576216773218897558183281414178683754945652618474542651872652520702302623706945049681613735009360375432252559814518950000095842143600584587772488271108887532019608442768963854881831615498216167838363357772589125253057477983463917889893527661363246447092833883812764617040780600368737505689500178980699213642336835577501418827199222823713854791240510924281485670643214779071555461074662448485033869705738557591865995752401172006373830142793440946229376531608141187138323896058685800514951710486946981887074238949423052916219837088782772217350552739814150355597102185520519200868246338036750260208602125128735061580076477360352010631167436658487711025505738444162179780790719156955223947933336407379911296788761255548293699387057481757539909740921193512313031098847758402475146575975119712425622849721613654339123146874310943204482293264854854543037068865489598679665124557428649645057301343389717425498014940608543483784631831368738625050356325213716355605896706060354956487478113312143794235552913892116863726198450095182386386827159948213643969165303491424476483009546866497589762812215396199218221580211274012116095927498564744829404366507675877466029304800159156435705753697257221262756294367997768469856777146508390787334714565399627532981439269324509785299143476805208175473007530769289644612920082206261724847193059919493174156603452771902857722933116363768111415713524195683074816183075999125046660580864995693792021614500447716135906912079887883292432034575083023464426038278577679432337617451121680246483836064214034476367143974552917591737204430035263296833121927622651407111079445914965701237954578874292960768250044380726466459556889182464271208882052274802554886884538603521122562911045601461443705056957412427389055079105781648243458770746249743400512929572223938929254572518257927811137543947302259191404218994813753889948247295009031939643200981441285111581879864835634330219042349967468901938618677420700975515967439160157358804605138052891515439029953783349901887708066715696490936605203439754068817834564624177287164093347648540598315793291061430168488031942100297881906623425949991060145654085222608889728896540647077019441528452407527157207165104145519495309198693241761785886190613707326654322060970208525823416430471844230046690993799298584559205915152636269294635604164274260970600861354632177043617564009361212321787067788554208569917875197504651122826365755452704735927310226771509341466718733757911910044856670202368927661050695498473213047523884721020906669058076371281810538568131769275721659382975773135526175913940330663035403396703006912406077052298557061320584594984563710244485016375080710398586627154649012682501577922548236201557028266972986827937464122109848854204410803993341859465043377907436438591138727305394597108772553176887655778351568971923750422289726248606790375712579251591262400368568834938241224078138110623475084097903722258969110995206574083609761066582216059681150615727316853173571786810397050131140670484140378615132497378164632041502089125850540103031650212573371987896607063182451034037276580857214537879263597402607595433313177281362849679734738786518614524274573259781774108179743609788298936755437710485912396077039205779318418152492293315610721460115782309917969950601637283785901196376675828338123470742799153752900068463260400246096893473022285120714098702664682858205884374678530950578964009583247911998958384451731771368258587753775992365202205267387885396465098580561630526991131736356059833043185504611267074230088182435624516440647707461627308774459981376480420484480714032855083798137108863459637810083029254455723252995101716555313072080631037428853179652043415737362103649715986127116832589616742653842828538231003270496859424301835378034176028026748456179945311038395342093690695648376557554485087903941817439432870664830345974307761254175922510107076742853352465687893523919208297830213174344367229439942936407645048402101322853371653947179294943906144377737644262574085160430086025428196192357716775583969439708459793520107213344648081780683870453377861415396688568081036497311418227932048104767168174385848519803557904336327428916970577903113310196901221016439470527960771019852353392327898325053600461161843955860448418222065984984492385889123423997331344585787345109488671739929475543075556864190082127734709409679451148014684386380637227559910708165047845017362546635718522279756190605199851306019832596676268503908225493595511245478917702479518076705445998590474295823886726573416484305794558621827860186763832530838705015016897464750018056931623858992445965219684689369547795532965448045234758448528986485027659452860465342154883120194692879677416625105303516838107274046860997432387603732460530011351733771748986300616937241159755112007013119909181392040626115930390371378080959447161395274790575980827564728245453328041156491163588715144925654871855117940000724866703661100266223847803267606254892410953011400215744342293704233946693802242896031435110894037763322386895978866249717636255029325053837024790248865223842044809577192381607754522026943825566799368757136473959047877413958372412884880805690515195895692115167794211070443749855909961380161533531737827108949122970397883434437474304398145151473421524270398047680597640443982562892505040651007371376653167634408017217574058824380127563372686846031105177863757028932638557527119892397565702709449385665501547764609259917511440722146768406431721677719225670030280604492880922856419004423649765550658384922309748235216543848387199752759464997013992731191976444093153060689709210569656039678065470611673111290587162373778870296519023402508943001888214773826423598390350163149874804986039447159050572305314508219835663372792304709337288174826335514987997378215607587094298425541274351258303255645396088174971053078941321743634795633882182376109519326350953923484281949254284251199737672824924673659353166221811134855349433939754039229432867594112603940845880504258527547653874617527737090159372806951178611129723238780167565924657399743147154834474914243674961958239489944658356747689813656011377869980770228207281514829976542776513235850171760777669468756511093681490910678932304828762470698666857448380048958419529563024307979340184730424933779390842377395509121059383392654790216983100195047327696908640467062616691840992798448483072379085437864427241347834172007031300907045957002564984781747769378715725595281021731567885972549412078526590934555702152725997793459816863913474273571344817281264953769988157097146608801102932354444709725541805456874349056073797453664379855094324683709310862543342246264822698655367765704527158304229542160166714563051984521586151970251240659198714749490441229352853009982802755907651861139560115639190828253171747398148788565632769179279998212920424752536713900426424023982272095795635007359915466453750041725147463592567681192455241930130429706952637185099316999635626780852252445544363927072290357366311053598441689291972032029615749443112213045491669925366474624461388879468745421613932394748789034515598703675734396819882043735373538988560417766633181123622915978430778215725233319312759930513488609880559773684689217850182334503285165469598357929027933418235370374694006426111789415844423863199973481268047303446085807865305338414277640053685234778451927754017842999394331733858447710365053929155546291845819147918350948264879120420923515529949832854545422030579667138433370358850945445342244062716056901793355039818672841644156358309151318546371045733133725737775454507267141515837779606509689273868101226881486276774906857132679235371788880843698816485200045248019052668712225140856494819545675038874374287274982080742333835925440567144848788302958123279776704034338041396298893529171642077107838628629201899959341877004514406778189083414879756093038202983924917660259117580289111655180597932739540341960831568249785665082968284775962580237142978492450546794326132072277461815318316435196895726295780528362588162248058208399873415346698391520454571078042338445200581167103987213985533795041994202195334280067411988457506510207668050572501132590501233861334329096362683289673901445565429735508509263548413143730358596583704091254629611231901909524620480632773657484218145431316183061107245385990024585031458548313677011761905584559459592874170242727061582546524622256223040921592998237445261096621357574556719743974964191277998318995055961729195122999939078282918905965305527880457905690981311890454956281684556465611290965303759158993289415737453417646424448650102567132064408069926429905420729801352125696229176264152176757791268530111728219228179174001571284543255446110539599897456467673813218048845183515249673230234779678125747160829996664408137204861994844089809145458917117001017034039451496103712655896211428587235904898111064606847586908847181937846535210067209148134032453684459027542990511527086068942342236851293268051512309463604845308155070630605407010372034541707148397769128937663953794941068805957528551838015810300770256846147824867606991595075933745681153719556101162902782436603508077089360443437400024917888975304282247108875476260682798237069627066576712210215527104921370121137725959279309807417219883510736285824132012274829508265805451601361610368179302976384020973942709322761452314115723464031873569598146838936420002378132924922162186085987959983255884522935389038571125329884438644319958860360215630150696852675232833367516405425552083384144941496789777736332984374536685494465503243660950442069117149799136154007676916117541417672722821288017283897437588836199291583805500525492716027366213503403752106427431240879385776322971122185486433741259639850352491879669267903161155469772956115372854781878469314479807362902083436261190517535898583183690773554311219077209528080115250629239606710644998676797422955360469564594931220653569246306773361471188519778945392660285413687285925534887763488822641300976527522652368682561944646927473804491716756277399217281018915997339050586673931365797981264801956389696184852077866836911055512359668530813258522445614670458708110504064351381669051498330884860369587942561054945357146484534272651858133516329717603686864322575349416080442996777124621554987894058902962414428101861615539197232017870489144548282422481707953949859876233695612503663524802005633826440530915148157515424712507823529719073356406599932878940713122261857404736579367370394831925615157878239133907403352869296803923534361243184847940371742055152804059672106115681427378310676680378922669303762291954868822530283190612397719732463470725808331978366211838114358799726326399356832808550540823476412339943431975167035639693949323301733286374388373620982225648475746080830216072039769030857133067889137644915148967438461601491497090210999424339804763330843533208386352086438955107052423528537484552258473937487079997373115992881119024825120887367200844374870644421360448005685614442440973355544366326762856993362231997301358617233921829091059963596409224734616342165459952007624527190312777110680146649757824454343084316256261328463224003042620448001147878311000913448297121135027276083109327844978204511971133534438527762882654989279204183625381507741645187874252037622873570522341941606209035910152403678941213586441962725598356814297613187384341110185848022189122983680400859325766700989014624562375000921948878251985524945731914175687388372183384861966592554057605593550786438883229273825707882987874082214444453051105515154342693918439092834405855403450827399427618348481198052987564083616725364150739754987957977808024740937323137016927394801189384149589472043166474076073976930772760906562146759342246366674479081016741545248054579314229440556449888427738850524670451081702519415985312988669385032687293010756180561592511580566923376665451424427759677307056434041064829339300480890664199871936723583734460615092029792807129255683925352888252494976763413436682445407168391344130143307172222271539623230505995942454544715656448770078705269495557390087542202289997974497292349890831394615581820585301296344814619725550735477091742082358330853168926564367960010617778054737718455358643059837083307237274300534171222708735781199716260175482260077132115768213564659558218539880295814742380720940585733682075507362213869044476781756898173763160520000632817496345479813710822961595726947992955080013069577081826513860580581607669771522965196712615477499822673011036822505950363415278931206984030386018960797351002698679087316818442342290608955486602858307367226412016199315016378405886904761082441846491886072133472838351061055883501985314240980803504645967972443437112127301724949552312656796777002311040531124666200077209931015455723338379510684385473678201704543132866725512172671106104095387473200154752583676131880451725885153691902046714570121932060448451818175617481051699570227041857084667583012035283031626046261400009106698280319011395344259230970899399958766508476718115264227061528912142219626820528235131704377695387787867440157933000205421660854808650184714171897864350258241501424428283794799068792025746701360245634968231744022290041420452727012980379177191592228646595742256835006949172042796695293164696965401404212487513599101237712758085070932604702031336058798373599493204598550709505721960302544571416755382394083850425104562774105312878105751202364003817047286204399101037271527860567899865468415584355858462836438442937327279736851715653607940395738819561819845943375887197504202594689748777223452738779290291115043620470927003675645527386486795504674603482322562356695920337085890924185213696365372828668177949638883964846475208903251331343426046883325530565542243159894188315860295304975787701054205766504472980586783050222967474713717681204605506506068142097661136701528344241332149540268913357327450968536020189645006439181107828644215809866309732813782272709340424747537327305563902151059239910984161613697330980580874237746678055990361827621113067671857691635977189511916554103618028371415263182181046016626709990836377386367653788933497944661238801633273446618652028632768667078387547153655405117143699380332289186671739768734792475025169466217890784557736221836329147427452613329564811849393416900042070166454435747797919057081610057647220589162282001909333070965657673634656911525042057082890619320008770216290797942485070434764734239663536615738061503851639077476408342179930159360587716285864513071197556873333849915548910902754322002225164981144492894125865727479348474010888764463794895242285416080387952677407077242259974804046876176058948309169437393467903517315341315069023938485950011985014761759251988669746215339748347362080391919664775744863828394839298411800332200737500908465301910324009503722981459636639437564485401737469117060652313520229789857104834497911915263320406121008724803502144768034370971175203861434297966660657162767913927946128713794559699761065306267449222601391236990527243724300658863357217365818518817288682096454461019000534224900755570293612106549776659853442634749789235565395360146571173765075374026652482344509871519277846986232607858059590566400553210577327662749654955509281897263893440514469011551869450207792037900409532479446544016563645892026774762249650944133457383898502503972286054152671728612110595439207243580541570788282901709735199494022685555395921074924472263318480713186789972510805136166180809727864057528637757890518948383615364623734790208276310951271603291848475802483506421886917178525420242335027736265363963177824982005244264731060219508297920325197246450535739409492026180178064452514221807965109836840910642563113822370668175713673213993217893134946902138613304001355998270548737299671752006946767328868289294465111285587088955660904859151098451865168132977449110109550561740264779073719596300859832868277886128347476946251511346037924428795400373036037652469088328743434326416407959674395747473125160685671555036103757091695391286368716406358985807219199857291205965426163406047866276685865218824790617081591961248660913389399773902565115931269585354899823035091938554764291414990896694511945796657591933966822887450810033653869162940669785243110917622641647257336784624381547481780258410286679936608392591621740897207664110941482943224602132702966788852431063395062003678221989725262468635188776639179592085465461771108109131790156317260917784089026300376131768465367182690548133508076986552048886803975185564547858615849589934925956723140461647400490314647276201773048353300792429095359791499251237698590976239088420171099897621299662716363492895874349642655010834011143803837007520936612282902573476698330492258834159195946845918781503471413971418180414429758340198899716750394168032622102564720495368492379448676983580712080986385995054956926484861343733955274599198948468354094338396416919910354429314196636958232899535579279216784755447177056736831934436608221049135465965526288740201821216194249039608568142986229669530132629463331687798534096032621006546580670079318140886102116398940787545573881317104868762860789013727399405998113443335252416095183456011559954354114436612703835900994327229837524439098095611157751993660574763090568204681562158912078859949268193565637979171167296720459660528306652561936016357499723468530279275127099882144953520158073681576018757615560908745472832204179822977090440803088743601975370367579214953351296930681194148888813960763964925466308439769047970737430972174657901192494792207561702427640862663528533381902308788919365858867303409532973425916282617664355921635311467621139313458679306703448667741621068398430541256175233452955620049873683489319143159869742980055276535769213826179238140117682717175412510222055926722659027189871277914099067444224292005948093515752609710909361602153629001529929991419979908832830654012269227564993312762071952218050571962454941789235972705992884331901401183531151427624433101006192497289714140050810403449746104905106602351996787171847555829782591432260995976089076026264923248426608511125675746777479949488472574355978491510548441876505483449653813953333837976038569014871778433388846192378397929812497107929790672498775473839074115722834981675538950082018255581067725525523835984496900719301172429628544422834886378694622810612908095173934169005453145537773400393634002469359504367502581026092116921462657711927994929571453825999765954687500913302529502529195278434139409265484128016021723668374460747554664499399095035860979425775473202597053954217924475933411755964736180541126530982138957580821676173120665397827120133040617062350870604343271112696025267561686179083088771949830957818006697364037768608681160705176343894092230492313867222706537254229874011014732107135598588145014175126231241973059485490919613049366523992972672919428960767307591721122921602843000679654853850763679064622578078786473473997185080747714743020303703726025549581671908678640737262732612265415454158327285224053167439932603995871246955688798145854359369622364784297032042311680904896412830636901044644020330517509917761967168255592867455469773969083082894433795686071527543530414216542249290382404946338234663083248454430385351319100528262363310006416635317002813968899614798402086937754509818690350914650511209073783400604097466913537368110465413177781090572778125268104491413034714264427055951918539101558047940083952441429922542623740319664151026810436259934217033144391673812856410031208612586666905390495419215798407734891245804804835952672768369657676736807119333175393585435362356821433488707844924736195899906653574727358543223741494714751303106548860067538796731950676635912803992462609560342057374879544642921354431881910165681962065074264096291740710419850181758213581887796921248644390757884933134782000737713192224064830615992589686001327179179667739709316373266875055119609875428387643282540416139118169854340435330559934709307964814617122254993017110460978642973774901332311924333860636975594094207961205442766545026469106296413666844852740449314881403340534353545804939411107253281688476198974837983495373752468469409393227783814741555845519161126143069325662778490011223846576618446474279851711114916272427990986178136307206729352853805961733773656353934727679616148675616793796595915424929592707674516673145519610494687582349368523962867947679520396703746800583504883566001935290067237913243710491652923102879251322543099504329474876164447261403330632317527956819850378498636804474195907726540830837930480745929419157053322859411208979413991456895968106892008485932572197125358901253872104170665097035223373029224636760148643380230906067144904951648083889037436445576261195352766348104044633797288624515172421802929262419945901827964321343277451378741119783050003325019630176857407519797235847332366589608348472055404649986180730079105191830228179289971270793164593652312404099454510310658424165842876794164012990755081673319050260749988563386606922517476842911264856953211901373247781173513566140581756471154474358644736861602501975823219064082959907015840519389412995938796739719937362390758090361697500906276487791901942607509072263977916070835889749619599709946693922681121571441786024295264849641108619657402867406605038288556078469906889384070452091174512982545699512979747284638213050565879978282874409548778868523004933619000358613185226576045600615452309810672160001598882855913683620757032556918096948741666081277142425152487578305596283940749105134176733371683975848100221048553138043620015197184643876293984021245014599197273377958381452730967366290793125935346587432841826486835696178644502595483082759043101641370633046372005031422831221436501452614727638310516591549831566931845498996598819756907634091782776491823077242824280604577661938730099109941067417368091592247902343116861829035947456038652113998492321003400505921716329291503663439773815125821688122380094860219450257219951959028198601441406312189591044317118700194955675201458650891341229964141300956465661880426566011614763155175291812029855216145416956683119100485125076696199163753236515345392226144817601657928880356996154045685343804143364129056414313105770618455035299284855307892020040552919157520420895299587892886482233557109833989970138582390631989034814377987736326785588355935445873806577393237057692606829827106729631712911928467790049245450069800307989091177661074056657665593075351032574352198437009254101730007308409525221428581508850403451918382762256683634697721783525541081237521347234162164131453142214244466019077468517989743142525602723533894413014994261318168198066292133461728002074171432591171724027415047238867382354964845477488631823514225951645497421962645262836822456201896605640198722779665089944198801084789246278436990231154189349246645602783893512611370271689438160730746519368173091569796613454297568763351740112837898574498562689543089101181780761707527816421826621250528901383711573601761319273542933290106495441545738997667693828822711321740905896131882380771524247597820016061335403048823746809807271862298354520640058609676576643762026529141989533420174418575713746937778157374488945118389574944130775237414139075286382564707834942509596981086449894908064599603779700270473625152501527043310303020775978392550059355644445424302462851711634388291281463856899601168577800034895430808808300188563928442730923333963000181393800892079391701058996098226990009614344535695183820834503003305624321501093148019170096530847720267556411181543645466213521705460190736620437690957157681796258519103827157458634282490285289515034252670468014117579344925193532837701947056798830601029146297886771902802641434562292256750909321445548616353525572562651633382577410535836227081825101266276281597887485210170189759743025581308845725183275280251257988686708313133754239525771909860531828328927493842510095447271362643339894010707430647177628826896699822600684872620927962672884108302851322358163830427657698398881975716474341552542927420740536748039934536765237307068757918804226023617175235750745378791687210467885990015798387420212254114468322121592236655645423964417338719630901327185269693247868951643432812350115717155772003023907154107081650458486298995257034657822994786829083503150380783018451948129284574596402699753904020857450273978543450709009007383549262845016356032437006861727774687026735689596391587238901142912671645915687063456488292950307035536820589634750317502345989317950150822952621298508900684227526619209519374019607104712225790905239840538315199219813045700610366500810767588652318257519842647315858885182043508857416270080256722074059322498322964630660542299985666697046504788998178709729829318680682010851536325079631492247706847211597286760923977556314495868521759665026369834684282811832591322050732305732008250734094066478649698620568664356119054581941990113455635443471339316089170653288914109184976448553411402097528485656868416295470258854164326243744143540817836488351451258306712774189928114170661229179859871121440237364454003447899155826071547773294354485747110614994510540404534051658778085654694677240329891429572811679929930575076505339183571747757932422456904872779845667812847192390053370622730705845384151905738363506207868609086940209745923147010257896416687597612118904595522499448543162302623564003930858524055143650569486387526912310348920051088631111150273945891313090395791659376783498301791527800469443302328724895244976239517334571679408721076163229554978680043225409819249747477058411263249360462626136904808595837261049935429431122053711675832508638708414083542348466290052817501085594891234405239530410351966861576061421725944898718278889155788940326008268160993909815375260801595185585774292776127807418170033007043303885207527821711639190058735822875857524533926709120434275947855323971063858028455129358622958504703804137657679484980643339668590501466051530704965944812756569488761684912026097331568203905636544378546568292559887521719617424959181319965211760653253869724937919386642357409297452913573687645940328295880922844448166274011582881031654509403989543243372052523999761892048383723563015449967449783286124622628153188052094169424096698568399503288529415007937390061206606118884154502388990594085327168223046943479328271339827745304151192185980616581537509478953396450246926503949679471440124931977608217091243798772877606748026870008122565197579789524947901190606370778281748668019952638533387178136671482697628533574894597586780081338859158604989836793805079714617044993757253814362781849821803246566016397953124186283614027424587180273775241023543823950715891280673136838653246323905674782161695599301863159292440765233858897887390067898833665386876198129802651122410141618718167411434246587374854990367666638958600408594956924281412354895064001670714424018412214548495299896875086094710765727906059753336492721568695122095497254531505250471974609325669352577361852723097418326803757014693629787340811477260601066686055241987461508266426308397436905258472314725690959459954277977834696313495307615530965664005067919101471562648241995769882358782766989735984170054687310684376637583558433403148257982985248746384153755440341523850299515351232650792251773437440432516402517710911413907412070013133043522628293190683562146706793603547281763461745574958542812503977864197503453499593592893067384473012668146571433390122866941880635458512454292577830966922996318057956450347947576507636739390404889269654653918414874381986290780299604949617363836080047911942293888405935318386645650128767457610694890703577450964194208925452518686438583146246284499981286821733067578306723030140658277677171954022993322992608758480075373927962321529544048259682576493202087761237339529797528806366860129275808956929787773461246821881543623180849776896491559140272903689499189047326415427114556493194448770497340606552378698605526212366743384659006069243632694403583171507181663356555495144416476786005292777908000622487974945348637111652380848864865407049134514185035305744947859039363708271914421303374987369970405727959258401826282796723921690195241886379595878258524641823164611084752433018400702916949857957533774151044231557596566062289735437151823901302278593399930154026943013732245594007963574391549877547804971726067545270753997271716888835596426980095915222596745285282155010067315143120078442524165872586657825806079408756264944214203664495248186894111262065046918668756641360252582431301051607592346346679365585454071945697966604126253393049486443753205776270191756763841656654857665329346197515306868819970930830407429018101532565819993613358271582667387246150969364841189464131949836587784631084470103358218976724302736950560672734777337638062428890036256132500484739417076183388148287279074185991591448576710045665802669227803551391510379076181811564646826780647715985120027681294134915743005037155247762438362674222073053720970830547878865934373214376398717512692854401835672553583435833719006226223115377925552924100330022117353754128665639153228988855625091671822765795160887335884107067539596456818172076284039503353544973118080380651476360742049311521416455251237408841634740839560509736512482283586708313912612202374794418883681827013092890396098996377651254077300789096276184420525629160221755631836539336786327179761899655669235251320422080313535331684046946103920320735074328735355147506255450207654762048714581831704874632668453843706963848661293379399316835517934079607191811388488749524047874472004506839395595872142622162012868904613536915971465170385469064234167693496163276527329703861675265617637288443872698152329927763987098433937447375587802869400106240819630146505096744726670237449828742844668711022084716905525343815969593542306767127248735846895542153306997551949956425982282330816319773718718813831599207535505856930983691490965145370907335780154744065089739255641973017986393198484435463458440140217445984928626193389046649994467045349980750534659277539704136577572240775769782082852669420713266398666688663894652791777023793622131270976052637467667908658551367872079433748451006906103599962655485447088863286794267371779514670293564704098133643300409100403567253271874241354387270595051497624627575623198532469125868162840379521875961165417212761811501212612259295178332280512255278021035794641206538696748500586066083712255267370845322532165622490183949578420351198019635270500400278842200969351697520238444668046925989206379935033766462623049985069976010290729638091536682159798635947942870552299808292067399259600611457328940448468781691135695929609009385887134864811667224458938863344337997120435825619916126523087236420380702109846854397895250827219104205323593154044698312617114638064670428142322525238468820903295428727917923596050684848529541870357733623122633560292374974615864592555464244814019966432434972762650842242772155839780985975736784626720132661505060772925558031039943906170691244274498731016963539004416905763323879159427515932754736477648588257186778378421514154010940713114600111501857543135590332928730375965621624989311823604535963763763775873244286278215518634612748573375794163354095768899724495959044256879610890580610432801130699712532819482362255510686502594310377646244870105352009918653618669878458552061120997365091245734584768297771706929752066216027258566020127455654502693597481178657083766925905069819015007973977254297935651398567795949206052180763945206681155270053973018820450225508035086688711351235498357206684840054230203762649110095101081270742937859790195733383885849026970084895520210855906112789230661995603228201162837859290198283946961770787926061747034011293283328557287825370154609396218877730371832317161709003280489519299918844564794165665710009204068486542612732406284915403398013230784388151482913831687673254566348560745129329119559046315133762342662818558679435112514054114879596326727317320389203091802585783552541624281307013387548735831224682165715377648982042424525588480433488594654324154327822201480740610575781241920267278889412061628769724594301328026494440990065231843018260235020319147256628029346240815982320835330850370648810609770331366476557759578453683849907888554875113781084639864229107141686036217887452309755766445425787487014493037243374571832867450989346946242176297315178183744135485933449906109239112406891078491671806420017167929307915871507518672439351898971185632563286012134116095034903647298221066510137945228931427999263657745533465641605679169800635056533176550562778840508742095679573750827777922720676594090840143275526650768497543552280245336373474950741593316631021656885802398964815453922097110174215984764707988528576996875918874606505692162110738557431863617102156295635417038142222771199375836054595700591227786037451087679950588072282696415018043268187749857731513206245508600891456112674537801600787959232119521400773411305967834928312202593036660607496868741537343616500940372884346762411701132655475860343535391340085775341925573636506459744124699552526918803176870499276137324189859004681627499495917922241277475000447169154282853490552777456985781596997724824745056377409434043180716993002599088745463936211977827207747795277453460552965575127779436881215925353153875852394419755079498826547727222646963189164317312095684080063195301682593929527757528711323485795608075028169201892815966773034190703101358342846736978257425094827606958852579953271757979394085177983129313719251559511092679343688193850658352203679656800412107306282474887428049690644221069184399514933446859281010568794209185035284289039755995933983554187819236146253612943667894089241703856919096567397966475341491904844349782521867283339284532477120786914573077456265434543228720251148078648099560977143563634327207671604868941945750175999323369599488404731446045122697698181443531085240904924679530768725629637410316043626577954070827488982955272702778398254195097065173325005317470374141788203434520692752940121179886910733500167567265817499581662844521329259912031011542739320256958229574406759768189195542526301697640190904297889392289995538496473598195914128134174295796828115085877711869195434344606516005770664768490577120088569941753796440082919276237243878556385255102443376180429580561952746095443949851538618262195814751361311910413292257698047215385917649257903574467280842708396151217355980559424110935789132514423146364702623905536403026163862618041311093514824498076083763019140774078851386370700692178281663502495710302700610003894794562411367522437816407041433402301186523436817695129573960312238619993369987735926356451870025486048407784358166392282707934146335281888449960900149502595429442180461514877504711974459639635055647603188958767665744357300053751947827460272999973234028158172672583080707515189704471517404661502408484196955601221956129833072661049602108832039680926646276806362320178664242544569824567664124776131821003202990804523729126698196060771082432949039883391912266941368232702899984793729218188691487990977284100088402601992457374422797088804095550816576089232312469961619716316055545305967583463921062583673577921555866790922563540919833539191980969775085330627378015592201780639071493268319678304991754575777366450991519170801271730557237435083044295972974714315534771666356199749139287924380292784243981631961622144563019958286713965853196610375909845947422981408452557576378247817948512419512544577346730605036823254545590399453374597449591074615148337680247652034000258366316603596437811387811995281366082739961279365146795661237887438202626158214984032591852296788170547848408665138696322844898834092066406914332379500381142098118751252459346132045424050287863150802799096203454648163262844519276472601858050755196726890641680376251640750421190480066009741948169296480869900609947686835643152976732426256700308638756822456754236674319934673356840408305444325261375734816737873919289731272085231476128211655809815968046570819158057618397483282998006465102954083667643571544808353321912380475836096067347827806169846089668573790003332925282354395379119042637448661348723069398719234316145968491345613733688305054397551139106813666131584400418875948084242201694976690204272171822121058108286133283016313293297126625124733912166070496544796554601035226236194724020176392962954476049893988364326736470228095505609557891009215181504149240882870264855899274599172678461026272899437734857680963781602396644381342342410950412699429844829096085350007412689530667920715128441995667428681785291983119936139811468624637599790508893563471264336474159646979612284192535367000967297962098619557434777959216075502461745077718789519504219017235829723584957025093128586953257553814118596953227577130037975357397577678273410102762423193819643245950264130898569939374939165421060113872719108144313777551347476931642117713212380910047851014224793913294525511508749928219644758630722259940126658479839899606380912428795938190746210283719803029372916918867847115867870546265107004488441037657054424300995859679101053068150292375314012680635580441145618428752710522074759714016129859837391829754286622787542643190638186546040130140162767788033782062940557985434763712751586501607591570504163748745058190486084819044459217193527840091109019755415005987980483993378504464114031294836950798563425965919885002194013358175530145635375184673311012039926711623850904463556607008171166938365686624902270659560265196957792622345702461145223916324299554134284062983162215883529727179832897808872424131838137094526542341543299941152227493865354805225834512292233911812017197743466171362348065458000641686776792492397743765070668828008404913353855808318452309299635492520382746407506158699963459522715596810370233376160241536614711601118341944713588298002949683959998037834396130072133411661037429207366280658882396365401082587868990829117962517294306562141422043430530652000465767570360404180278285301105594215017631842226401693576849632545230462966735775526893785537491347219754071795482788275199028233866860316374486349274600128071916012924858320481782339048200858976143921057855848601365146115067349919570040415927892687942979060758303243107694512292843978076526683726324385503859303296312352013647339995846380376961689420051836139582157227666950391226777626306829014515247122168002542033539350321750066047559639614234304397376843428973973385453319207515449561380717361141371854647717075223682201497343966279615815503201348743336065233006846001146485673477246650444393646058694671569997373945322931399625074220997733319029537570903617345885688099706516073283763925871662615915266915262411072810916646786678102048081784661621552708026723204017866657902924358972360360447560031633271218953442097058395912032006315292503171877509343859425649852258082235798878509444416751461551062244771454331309094339682250030955425952295405860017540773894069484996049901444878078009373933121626158773969905948940083645346982174888596158978611595473267282481450518613398624339456565249595525663876541874010175482867145191934785648491172519694888014072081372847470624420644139335825284033502203017488737345144586311694803577022093255796377102194174559410612147004759468421549109551625689204641351155013693121133144463732519195716701402312340728754065136785683538444679404895501192956984897167887837591118913397471404931457841746366305392280492600040468493169675783872902291640153646245033868090698510099294832811399125603486641093321497364971727473569885068111514168977860227203681302437654024283672135769276356897820447502991980333036343897659301968186990755570427845583785591343037610688290436788056358049233727726030456644886335103805773973364298366988600114412033098795281626566919058461457024481050234302428878373422063828350795465503475004679166891568914148783783092986186681430051804264078503289509633855811907271756714228739019458914135619658937561098759436734021846531105125647835997852654762907819804555286555255181574268519565672625124933542001050950081758584428113646455744860613388776421190831742338531155796535776602953144895112924326688836706690261467165481777795000485533319409571501367627308312564773297489003594394880852170857714834854770550691428862284709356954252578364427660601593655189170337446296476609904522635767712884684598370477356590004498713711483127162639393132929660542046722229430047120536669804076007762636195338059206112946887414987816557281316086251300487558788977838540420718442113431492907610124591908959355306405590879398337203415437441811229481709523964389180830026278104255769127892711988783609133870767874587299391177313052105554762470691672805909445094449407660816521858466036976429432317938949571299402506636067604895294342676641315637040506345868325603032914817162431049164959809849682343825581990608647173575267633859506580751162853399240203751010149746120986489848884979617887347422712842550430430467743335739526667987994808724469606451226917037577111676975379411140308900313462963778630611590459183334069002553868749526768932844245921775671377175573706039624063654898053090370851279134753994544603149900172331631321059698825318251925428864206265519935748751160105177396838271700268012835699005753184702063626829409495659712054129912448275959383442515173241396355477281697192572494344454525250728173788367213195261512791796623937931156236162020183863884073234451756176889801856265844481619793802712262913263430999324804024911104127405940144284536231633730651557454648947839117893872293605893924264194201141786104514549634784429778722924494204837855389532588522665427958243523894844276157196396236521271389976425367605141983054090462906641665566474852613269797901522853825010179406437337406608436304540755552480920668941579952612751937615471194930016152557520725752852142903262915076492987451022274822849175423105955467093953035516698068497424387465051216725102992794310437649567426691057119829471516203036188301986837438581672692139789994316295522170592018029776985776659740393620295263414645046559926025062216478442585003156663237608058241795509835775279607665749504806467378435753654900237309532829558988710352892572677013247867281632443709512978210977562123238930785120848607124326673824465354217496707303618393764674012889065290672928544611131060826368501144198544042038695151012713615357048372128101232478768271678919199297179320987741721052707362524647201710743614588824938326665369427303277966766769566720436642602350069855068555847809082733180132388144159757619075268043133791979814759448377397678059775879360419276077457138248761226994025546800406745080873699953100375466951943138582314032328131055536694247956310496203313709761224850259195964945134668089149197401524396415278883569905120818330811144345202824633449984021245526519809835224773617348819183036707869970229741316977307651051921788758206173991652223902621465001399567085799770587268399118039245712627685793822072139580620012535287423882671637051557476599581235455087017699567811709235224916578275678716238372717989449093115479690126350501820980294553319626279659214556111999678389665205920473283772939257175047198236847568470253700306732040023522323218484048991619557560015140286969920459280025993340989457711438020141145579825781869609764472898460100631901598328764788190593967918510022278701021932478156944793555611212241897454175297572081264865343202226179074236468963026110248134943519387076887555622388534816643906797576163185879438392802430843058805748491198034003425016544697260509922835681697066671429694851518004934158956506922374726224207538408469477006664395682316176089884297575325168835475617663899835259583281459990917113654962547640271833821652295927465634252852024927726140884579288268610963167612570570396466914481896482941070642255175437196934099387712008578757323298940253500534683892394386721498659102145420787119199826592591599803260790516164670485708308192150905829398599054241133589245115753377261952495803244798913717083005550061248498057706761272399255639960174922408943646384527020870260757628705155274637753989769016552701924568647790341503135818741844258359363905184949316282854791504969300033598794053851481898664569620221922594486611149371317974919734168217138652525887186600887815177386121178778147864549087517148198824796982317444987689855768736686414792037233387745977908133291603326752201959997302841571397499718421663827766237234518747417029872943323978154885701372600128474746115106658509138844793181576910830019710724407047743758557899084318766311186177168179286829030504074627401308631313383872661450377715933200213784233351427406285378959084565942388708434894252666959924945428285498900930058051767442472665451735881597995429808523957797226230718770594077738809722730159610108937259527110325659911866665943478426009321400214092223754670102262541739173497708228537780366076245632227591889269927910896281935307565358551710637573182092101618527159858898144003692135791726266941584460542198787077842245675753181755810789854573312517177190263852335296635113889314735633012075071319464724891158578963660029945270162943125362062070729858305822687598681420599384777896633598545760374883586148686129108383469446959775474162924218708192419479214585142013082340808991749928317014376171098129050987700502266212843595104094162987426417664802318273727416296543253695881810788776698442428906848141389174115420206979021804550988305523805535046991102829214333076413045795731063835761764533742197027118264241880692305485206575985256403854834410422021266775544444239513211169129068459820555235589799862163141951691314686425286527498527326245717087316402473944501911914857995855148348252926816935925308225765485230606821761711783313274626581950796821047250104739822915607113641768769588674711162149141552714393576406790326103499335561649966903971915495046692340727456801875885850855712301852242881050359798570866006261974146773085815053077465576458110815722895507712173612098261221772881083652345233235012295991466106244796514569677869325792984200804945974758816673043602449542110256089814587045657028101095323169577214894120303004718815161380215400329880156668250815838509405521115074154577108553351745747544328869060996770980874558120502175444157134545858252327456052444249058453523159023933938301619361934014272357362817840501731419625203031354392847778696702074395567809626650077063329153314656001465625181516591324288756626769216784140174537301249254363570618967993328063274972995003511746336970353297458537696644694854604550082191403063355197099860284242627515581398248441434584385652121465666894710158017622889269866403883619588258091977726003452997388464672873833854141900041957830318850816037961733772507533908194850387863701458558214462861700324124161151110078869058520063573309705160623062940723252976899793047964556803425124318002422211017161251537703798821702258358674156128238186954934341374789460376085505813500535504022573058505695275616064611794329617868481924942554506917709326301148372789677103246108787593826189629568867053362995336145249359953357116073623507457884186559742101905169740117293366824666759585091119034839740873477182013500275910067985288743165357683303277825215008851896205722985886388069857319555221724854110788619389834012128118279812787923726784480515492697254813568528592929924195721118847231753402604701772428357054935158888681759541080069466309058992525840018623236043659241184677804156957157013650827336017947025943164885527644789762332963458020731227458110180618281125307373444709081495113224080973634091646700967784331149231066616468589891236895909589834319859837291411775251752516800921382911999405218705323671370043650104802441703731504106225206187249123883304063464809244781711815282663457599781611509311912577826667499577354292194666402472444217779764182086366675693098085377185059206729441289195047989491563710439183690038612757946257055911060668896213276267870588648639890362999418306128534636418683663652608431170802290854593931413981294605990619914534217689138320736086003754034029464170805227588563806044803935314819023028149522978590251892500120338636065842131457721760522072338456458097265433558261223974844596792832981603747040562970082112954767596599388197685660277043842839207269145604158734217922428790507686983927800360610169626253296729116141989120906368037873110120899361900935928303974123713408208022224845989254245884614454662160331155847396102187054288789997824297074720630667105968022790433627783520977663268964114437099908564475555302198211798428957053833733915659572128957184465492925068942527707301386971442287898700489729412409165820186431456478301758545740002826756210736697293890145160952901744732526022963460509874725581882575028808802420513793443117937436824489787098867143529150932526207757191259202881882121995941602094646781761034387157901923633626073651967650933778106763208146499959983786917457315568354121656090447011365410302439915229581884295733593895387324471334659047974598565774817017396416926387415459818496649108416719571579362180971789654454361991680092908188505793431942758913466497172193275990881960349878926689110765770394321562605839670721982795347831329741116681544756006173091369711045050008445733175228502614785293608035514228028525870025290314572054029752609250439725022564451486759323781436259355936099493799885665018873283283305076664015095176223354572110389506139145479274821585572492016986310102451316683480992609398610196626725235294628258249336917625979318826419809661411604103487922315782675569732133120982580071692277320364829099706175041481047702767232350879571807752847476484077098712380894041373936845529296279655529468769435356698904501247263545478554384346271802405210249044751478233241041839552233839638652827439348280996412894127461816232375061924050783912718557348254127414901271407803800410140154557000902708130902902875278109141284543296093575862877376414151359061792661064733693612041878913912699459181016709546709596315890372743507207288815462436234117260387114019018025444000602146580715433874260298444515201272534197450825934276963919721453256465880038106628464712681669375244749074146833834831046471638374782690539189411692918101556085182600514937365083554714630921294510254703125833373619456460866882128177509950951666008235372537463642136820259723367623122961553938604875382453027268674684733298980684686483106575755615494777009221680992541335951413562603313503981295483038535248339237715297041483600403188116736220193317328693456118889249205926784805190587770978053117863981532811051616200532660932970048439258347597169113456444980036488625757133701691995109944665827043878103671689472894927793254592054938954715630708503879726848291664300663956609584238748197298016863079936949695329290859315295694631348920764543109314565252441267649971853733437007938174467746065587690747158644371963086882093157490227910716722038014795517318263311693919435328607909467050436320480264045676597054554958542753631376144527500565398317812039777822795309124699765800190797758099405409676936537027019512723208523745038689453737351268563160894219892401447358915223974991781954356391550130256968940620799403232118032007089029667419150165750248256071407425473339399074220235409477303000058465846527926527961861540489274208319767246808463443023933434883541896562985926343215555073095854029726663249406418490848572532656159072942798692896994024719718913830867351543219083952049509747751787413823476055654693535214705447262324132440087928001080738045551418389373171323593766354197061853435842293698754272049757790334948841201715107332373595072262477784534545539570462177802016328000399861121855355163706835856178361280852469915031909427567603320194416720584579120437638724311849165881773582025453836377974684978677724121861014482976194997594720972101663404584250106211503597655419772821948692714490972877064075960377913170600156120341060977532161792511691884305847007331924050982411685601947210903002218683818762834004851327765417876024976810133886612378326617337811405935485338621713135963835507536395202451427989917140721544181620998862914894274472408556943268121402816172625523644835820191312621736346889745422551091539315535103697872981593957674821070006527401613667043251956627728229022107086891416224727627070393387600417795487912194508936109041914287838055808102860710608573659302858718942566090277783737682343504900251954475895522269777555854060242782634720378083251789988959146395663583214549045503229961059403312549870368095898935413151972656079555957536130728143449405862830479075276205767039855471635759296127873855824365070251750908021221927133513362041804752005492293490772967881561276600710882165033088191961959640578203840988115323384919554101905830715470275909521317668296672825723409999703191545238846773149410357775915136629209323854232751369201590479182187072663386472346121891721929032273701371045341053338958969456949558219494391120544674737968419424629136608976066654521268499084500689147518910981784106786372267818953577338267122549753540775091334778619160614812051260683897519948062314829983560385236564426012244881706754051935839779391451618903132558502893154659017581393982493524844604210909324501647867197451068600232400046445979972776061821324380648241940937616701523974561958185388463199878575914149495541699450189258128697512044109587515951947706028502901098148522161275757090407461910116743251528962829098331204809315468455087170272625678469241546126391951014853576420040641785172931848523153717175522998483959037567716902091808112831310906461570790456065325975138523781098979950091855943414940875344153946872315487130112446009167739345481506422075268986370668879044104114335969636279589456888813922855015038338297523067511185459870753958964330047467388176368524150721069607194150691905658039105957596355629007667198849601312570153280908217317186818878037637955875073239383360950624856834869076612276821426884559651354395947551541216182874211622151350905319026801556993546721887705206703290997508376039939178635095961841626210218716253460481447242899255582732926713017033167541323355606423213764351372194720144543041629300667811237695490303154356850255562799286027059153142048120824770294883651065835821975735031292433880354273757696696368060210062591970844796307099316612047603364551888429650836477846948920451564795131570967331797682081420364196645670865730425583888091876242283890220027963246295917907291125246869447083666238306784425197724531132250004548475500618292176045514326923320976932958642685413762639111783933559337118388989544673482810751301087783763363141128880648725478301001933529193966202774519963663612302568958525186084601528155544789382344778560407046851406378928881308390349479530449722455529811350756921433425583638287376385210716126317155479528092027529637841132932076423835586332530887292704808890993622255790560158657592506675016737161284959807189001361349909057638830140390822961105169860863931572740532035599222255338621925547246289193016249392766414381569475723297590122343810268169778418172609342340289873989097788319199487899026082916756946984152355570614833166018790609149169768865503927132593627533948232046398652864146846595793323616391544333783817193735557984910763611017542956865888038271498074309114971309375931813765747200318709600343570648174699270255977396745994725463974778186848708118836928657063073453830028784806282439997833056358947658435936105139619444003756402558028861678507121351296908199932871834041216723380665421940638357538051985373165092138544263326796891867824975305686409026011039888376909927239060225757726688837547371371191989569621148953653746871538066590961126669842815996096677702930476458635742205255529834751051684390460724120804828522290250293238973582552316452875452167678718402810568552652549637754850865146493466711036024995144488333965322572475209454979623788231665071520705155482987677936543039793701238595947970956346416786818347529409071743819498822188683446410468185328472457440864717601239247223885068092946200386010152825473147069437248837331332401958017492768865470549943262149123889052323645781487059191619355265892706543244919899414278916925064052003621129411053258709176874774777215050330402678518613595202327720516493235795059017391128515870747992485794251054132942303835524559386379787914799571607192889098087191585655364759447284427654110847632545374414041608323336669033202433901189882028733361566765026985175558967548657925519218899716801741513257841046906678819165617178526730872533766079961205589612588252818690236549724580302058391447680429553821481380673782431884521132657289113894482102907056136224387633619502692479532428193875242412236984974527608162018246073494771180752078621892175793195849127283998159255381979505838648540375292360269977158749011197579169992396155155288460435468280058201363052551890586463549677381249267907420240880688493868162600104531273778870508454000171484354700331920594361741895985592446273753283008793156112483040058410101775629993939660583270326531790985726771815075762720911713165831675550688549153178295926756774752144246634754070974035034868548763443051833847066553290570447685816871535711314103436951267196594029911368930510407078447176052414029966859754487412468948932592966580067523070479120777864780588130289042683696688537164748350517623134697327252951616500908110808031400634491341440906534287423036331959318668386142920145542740810036238577045215688301233512105117989378080643747600034505909310256092671006110020124393634935458158913519618385046901398393029311685463893311983157206954148161832089600602435361357253135665585561710778137306818974707925102316305969946934810980895556290582149836138986648184056905840942321349041954007316217837780342216319074488418413832432457887428216340696121420972410553078409686583070412856132704367479428247106030923734030215577715546516757728318980614858100722460138214715225602225663739806788805650942767977340698413143384628494604705061256865125168336150813457701703664209546575071385918332157688493965182791457350322901047268280433171089206131596503157616692930464664235769741140658771469486889459878399195752148233115390194507533924475605666658503965915006472165400645114913391049447037972833344809198354149091208016602579154565846480532591653962161712557093083102536417176496639196371359727375736386859884696678151938636030522578772348047258602085116034431913726545373510771037325367074318009939456282119756747827611617922231294232105050758875798823599923567030980619636924695362796971632041782958654534812649639554832537113770784859006489023899617737865946671504126760197634380537548260671359494105606906758436622916883671390860997216644266427263962037165079027387202319892905458938058158125559428868720041497824015107590981269944706968298720968835725929050817065898594948982573172495341087460384037217073276276991027986591745362628021004620966958143102327927953013194421523666567495785791470696559216233475670718926978844556734970933122112198000247875107163140411100946332996622301410137533815520198079610838804777194688166481731096037300595413406490449521250968472291074287237532386852767484178976053363395765141061629985387787403520513671411911908114098458139639140047815011791752820295465205152006623040827516082448423410106589519734861065004623975683559325831631663846203822713215107550621461333495232820175517555990600987821146110265476736576940777395795334800788238003864998431390964806510570489950916667077231520056987418483270028456371504774177693817260724717690104459263820477646023307667551532086269868852100467550722911576951748126443527108914357128989815259613012659375539193221238121048973609836712747190066757460772996908942055867626287321140101534713764739797386960805433608858326093414131523375642735419869860767021576636697166234377762078911621794126969742507450217540257525666857913625571831720266757393906590356450415559312767819863311002605539776160289653203112170004369822792351496511999910714448410771438464236104727439267090017221473403827749064249531784571956929334582685239476633038146530289717165784155316304948051761884675973506766024669298436230031169625691957653839873885265297752636638240634689288529068049544145355264516371780222018464854398440464907641084155199805048793103623052698449876088392302831822904958696419117462036095996963813917552825646765032976202198563064402253908527547498164105457768290943291911994191791517601022856712155756097735172078202531324342196964462443920434404694799927028534849752069662630602106801777714352964665988214293229451589701598569099063814767488882439571822560730077073924191680035121935065134055797892895584836237565929763959606004822128479012554786663561080963267850027982371668613163119658090104614057908509347488562485349553593664689626494536017376702326554207736357434702380311209438113410631865337030840925404195407306545436057099868820161000989568325384136103680245600479663021244895381788676290124322954225757891137858687608774563843644066932774964850973081611029307596334261070221436441872702274132643644256767017637014884100654449505508314049556244178035106387000054530196844777596021850325183903216716728827057572459200386178458944415816433734643967827214258636104675048832290969987162320782898399723513431093592328660551221272753074006743712696839417789938915061897084595416161218619329818425571684157208694181081518543540746292828065636652614195380330659076766484335132862910736976920106280438063990829670010840975859605840313275132358261799471927013047698041874734978104987322172212400661520003887501766762053305024389096717595142216506912748924133766367751310288383483616571432694205341978863858397777851954466984223538882763202484680239725064414572367728327657924316043890506052810207239859240699503553587360887827625713011301863849978396938249593180215714480104239807619734908777784209306616555941067393246521247478030014850917705190142053398211465398069039610198593798479978227326692740280874370431895193544417029159609826531278956698368554146413765938257181522019416825116497027827907859877674425221832226300198710284408333894641765087655867130840712695695505518002229440952101361320340766223640101690738528482582222335455834045022435296169177062777573612753758675688837255405031775037422667200456020383299259019300730183636070060549656780801200931452360879241162043036556717423898619799427543044507516322996837259976044056118090901726574295057315202687830938210497384126538935052101949817941002531500213990883944114543082156886103583035195983387339800193094134009624126752083047632929617892485492270727338216706487127586931052872048237074710076757619964405169748443255227159271785525354088176826414208450777182648301681369666149572521397326933712066461514715347338554880227230200828584561836504447115213160710401195268593637504575551605773270639121062613490316367117117455721108771123110210659645479516350644378312622948381393709914460887079378800506887952276739487962015655817208101745455002538284950387349374147329152165276978413492151425853975163290333017576639377662010230394200006058855460943978381763600339056454433783906847190179784030553402277349661410165270443221254290456342507639119816710257469644001197739352240029167370870971276345110107430870455140711381751876526980666121841767054565697997126033497546544154145888166787168450225613814093630758756331722660248159404218260218199753071828150230024041379936454185000436513130660312195898667225847542709093062899436712594228124464797191808887863896778195671705034548605904600183593531260998158855691109008795173556248857781864990636168843158855166920917403063974617809475965104370035106967071483509013085849512684926758387667051488232986033178865751459937167182901831907095380310292665466494593036179146086867767105842123078630554090683975559239173794830358347769567587149220199592408574520326061211658736098862283330724073312090967945306075879661250746719650958164866283995657596947444113624186063454251484316908922692552143006263899288189327909446976673023100066498957499039488782425494734063495770035482671955175420198768199632136666566533437805967310069806751462776320494887301878948391085405114174909873026969325726823348309048173564733054419514018543112174793527833287078086900181382055081675994996361912255774965613261853964305120295671708101928734079750442940422962359216721608328787145581561574863467750079848433447246779871149104117688230429462668089450949002150976801672181816879660591060947195932954553320317023478166466633376766601721364329921147094490407205625429531926447380430456282658950797181679586316986077678190672601007691246667212970699879295082769099609178467141206841019084805851683018742520008964501335906826545730503120529805150219092013357849481740645922932837326590030851530066849322640953539859941137388715408341791232070897554324921509155373308902313970292138293916199180990446635514351061891834219312694665296192663953355352525950502468045308263638574098687725832785783738529413975705416427964810847838846515248970641079221552673153170725649601420059272552860593630712588371307538741833106271170818377269861589652331480813723995214435706770397180612328322958894995504763319367279887454689382846526099696312027320802987265931231171158735027867812924391452300004196821466273423662882622317212726459857639605940586917582833785663834512056965090402692887034707529294048736481025568887617381291155826638084051916721858675889534619385517457707533222917053655496446956642041577373799208369350665513831671332994071596312262696293586330251315734289491593039122845846845607366263476555790587835610304361794596388517603075143468611379667869675799779601511338668998856678729847471797291854412500702286679268394162878099014161800460683471889026010904922943398494798060122980616676874945296648580161974269021083698159228301855093657845129462852673628735217351645102877850680907352228142209655670860619150307516760612682223197327749525787820272597929873914348928454680131029285108894022001333293492415883839680866228436346313206184305920320730736239560903414650131934416629354394950720665181064770253745261768654472655681659739068421208777123017334090807039223341093139603964954417490392270534775815835288937201693350195189845505635884041585492028195711875340143069039927817963321899243773049013236138043542153255921013952675943136057734462022762729174278541886992978788055321770029212892563661738880196925885895869246019584523310343134853217821073304437338074885627132514225236907930662857152738318583996862503704049837622838043221291447964104401896513246215394893133792653456597349843333515447839816879760635908586365927765037990868467523267405286060702783698586733247375742538610659855852625232182325226762724550496048758177796803547935394007646378158093243961589676385446922067539404475432566490276247660902009173608080222681698994412613539661931091885372311858023374602714172635331153184547843904660482991088748687970162102391783382845893180631740135761673761944859787228678727805058120532686340862948687003682009313367009738477743354747024542759084494897680547236100793347434429278844916346345793236608674417308911707348259518567933200382343511944669049674291264134817641707610253604753329406921484711033038911717801466371755057410741428293745311956265051335193627026265006403694302484130075204816509004096659004121620750462062825886345291756593221412892944450303936591322163141022915150605960703601784374471268808522363677726597817584425147361704985254146482396275880478844238608671134678596731939899139820663492401790935448783098019716669168186339895257042857260778758529609134837437930687259764878758658737874558834322496938746725964505549817456625984813072863526901341670125344971119606672410234938523082161412953465789001752995561649945456306716560353190635498093951440462722443251694570135110728361472523681935763141550431817037905603491553080334335850004303104635825965489967352722653929521427105069994671663910082456323340257721178989095407493005254027002860444535977523557183547638928241426883577617492146523291156871815945795677513476871127173865867261407158874879653167672775925261313551282807163179769886539785410070960960539998020722341747862680134734251590361743172636583157030707694322469197021625848384618238827341475613819984000148428827467588654257038235845120334742460967793131633411536912573635893737380544077907851737743352352960745476709785033601964058355856917901849844162509405611251175898137615996849557677559498544662335467014956297295479342570270566654823554664991767880884146444251631908384344833227316047398864124851122406896138036797646889980808663604001783170164747208235077414790989783472160209619431481553838564291036632757902297927601091271994509653550440044098441975166519932776626663585663701736791082979109974435931516475060880415874701151582665427698872330347115911735692468638825236464904466445024579822088521948450209774637708245469341664734947010825111715095432145871724573968061248891753231353792839321492096420542016180684801344134500726652106064430055498233576227553933684661880053004939231921215148977197365100599358517535507309907155353726001461605768386292330292336992091919379356586649527528231147962761460004503281774058261844263082412166516148446280739543600426890610217418680618707296927467653876445687148035502955567434011093294949301736613249559211286907838292713647583302304869206635569316654187953568048459883184005642623427355972520132066577670197164766095065222122874987744892986038248112128677086520968530099650442639231334988553476659753861003976452420873310284981799626228409573423795805336241076221776300447854422268826728478705794561559294174089548485499245307618335275189406977182866301296114574334591009780422295604127197822001288269312031786635378199910986625574560886166819143288053196535262939869651537881631883801355251560179113838015829050671535791328244009861581815457306497092940754975374477668213726416942511473076469949793221202635864434633096238208259491322110910145257236500005849714733450246688397629263859863394949513866099140600688308517630507953470947943672110157290020861691042302662197807925701338674028975396794633294234691031530637767144272759797090962419462666842802320606491183710007649584515393777926398763971706754336489202719594011325906681533643702126608214969699490578274420984161947268201016969442635680617403583027870238194896122494621441287792968648726137632661138933750397656313152140159921967254755239361451410591018756964262779156605988839583575457925054767569647292253436685557250933542168387901657084448277087221734304559032914256553826221612018426592550477730833441237285946941393733980470505536645067886966422744192904258370088425145509975004523529999606086992715712819977062286063333560887744022843976367076403115769582704282629203179693888215755368436711872765791363089735491846144187275952229034979933749127205722191531769751858588926321643707738449698847112870119471079440411731762494225488469483965482286741327236284642640697306991163448304759352934427827119056261832955565374942344964064736003843492699629036850204560808690170201135086844708950690764709667341341588282402947886001693622091884996185197050117447515934833113670011011245785524281503794709369068626059955208503200548960565736407675592341178832664338622226316072737780523034035736982353742165706385953021052794650043610615596504763372071743339704632815050042753150267283666183802164188962791162272849280541850544892654301060493721861720294526415683439729043828635449231107609098652897219585921006004829181653825334864530015409194025899720837141265297410415783505364922614668408021585725579394729365975406490924481837632729274195731151307400680172521079329821178705861848272368810677595829936482134366025632222149506407690801794051320652268295751851833597106934014930826712713592657305649418288682421202539111858346060416052399703409491350412175562707786374129326472932834474141687205812704341140808993889137680722568139722074645157590562673243645846841568798404921997911848018758163621009191758163144979744921828064069184022982431586448819044452587036839691104474862476207444098640579603705556302346837640490740020727181790657958580804882123183022757890490869344284396220057593393697717016064986011836210806000521328243889817317253516342734986386407233700060068460507117318379132134275951730151005799890140363044119889982185124117520910903502969747004496968120124766593328378977107257987300802604878284381610294163855852014576257776066441808910750907816137774473947068775062270326023212056434585124992149602193405657266005744877673670915948308539703862866184216941854263883235227572151826955811275600933894690442399324888142409711755299388450077971035144138042011763280479645646774598904531929291531205344419440534425539177265188828793081347381614271172150842590616182689094074522315062656404217233633627150814442514617714485960175152106717579826180476142540354083021367519676508846340793027049595457000095465205959192034985764198701990965570801646529546164316115585845566468739949497698315703691386790037361886820782432231899719787115704636884443407733737551822281235606406815390467017918954608699594365431907709184075448497893505985534000359065161096373845202388527046838410783957759445703063134765693895686088864146800260264921742732385423129169483662599578432644261062471666608046314374445184717089494801368954749364514069945530432434305252135163902877142426168470369597888286025662630189234124901700074332115976760605980319090341189159519537570488511471450473258445910219069945686361655042655790407791913987780242723277960706885759673445219839126126561180125853999565350263844090157772111607178302811945254296434457924729661768138747580071454527326344096364727400714201178370248556069395858000371570699197590649383159601552213128192598231132946483486569162789584194854556556688379852482770894687568465760177461750511388997112677935245652332820795138680069981647164825531822200135969832358979739985666265054680883296535993157818171847205034179068828382489372167179697067433988022980240612422612884826662539923398614651710035644842936135315242760111004056796478844018046948556957679379147309701231490311963821097223119506625511938856787413460955634155304069363171353870966292828446029259497621681540367375740643693133099320070601975396093913176120557301011265706884664956550477824518344669804532548591178592125566979555819562712914548331823116081542061048307678373016420784193839494221282536311065266581271168495825478969274029682600681615439997875686748859585588420511263827217191346347546779747666190486371046259712727045735391976312214298949544259458446373648830809729369857866067763576357564031738614481221270158219804988670871211830889252231470316141540709514076399889347988715653810034254896007347202150689796216429278172300390451798456341326730483441372406789406252139490145204554434988626175992382213026103625173832600930252395982044585885038995222232378247479026078230434972825342327646827294981368934577167145556245333651459443989579693861549694720296092456794013736622354050136434502414681279952111343575388534689927809342890663430308288304362451697393253757114778254968670373057746076380122526340264072310975111760009055251118677632649946982353353972001057616699832086777132609760318055509365149730611083873458184846908035232179117065374454168711255634331613969477536180405876607831226593291690247780151432184501932506282307480351261006973596617172708147798432075135341373080261824252357139746391991631404393017482575246881191691411065017394583637676035817110745665072053535042786812281407619244294312081892748868244964325920597806363323592863332237971321835056667287722101764415222841054063795350911507959412226821660359140088554330348124967177738208498796351332037852028304605637046517142426004781005047011848392024225711349290471198641335253075053855872709744550684536771908212034600976248201123727452178187165025644097700078420098893483237672729691144952429735666893295287296791617540893081417321564811536775991373207325086538429293078166343455872628535936737375313451169505677508825003655596676425662164340355995416271644826156792471621079330300324969424734656422939062130545611583635694759445462937422664106937370297062423096498658099499727523531357176303273963656656673410345011244180927175206157204864672386787452814585952816144841042623954809737685332184616129835062311634647918648310453690917336213411660675017347853861555862578262767138067510108653362832853069874018769412524819744563095554122040263693753943562513399840326586414411271887277237615558894357153882162932646056171114891253283191295145847207279443977724226066183914726758590559308643184546511884640464467126455024766769676656590187775167810185422173357521342045723643590939614994351187133521538898520698628493812121625821848054821370719985238150524358033177799468795167949575232586142505867731714040859796946867872515340665532202735165778201744820283385411346328357726526817490247354186548849769073811035856546733595525259388408202762552964569881098780714114318080508851043108291456654994977088805744951464128166773564763554869396805958507613011892938359067678043319779407316691462812943345848704844013954728150634225744032078010384792241956545027876719436354525395202304260121789030199604774941348475580612821162550453401291200022900449288408746832969550749634101538162852356322753775205428854720198902429446642215882175682072457962550109607647879521119154950038314321166483474910944433232414504177370139125204695151015535295438355294818765116255797410229679851033006810309651770820433842246581679976508567258522953119923954089759922270765389209803517412681077204473637722052979274793415813251452753135467781686101775821730523071099311709802339630800307896256970950047177957378280042450691832640607064114926443175958395498834957652815221486684013998300774793814365519429370633121432124663677033224120389341652254730247873623232756511048665203640459765544168072144780946461371550300110730222679020347341447939189783106334939790764117995012929353142647355248466814339465108657084361651598085838256916131799227497903252641560021502245943789013981318191651445990000686349408902586605140749710549625357803971550990996341379326617719475623419046131417972919599378247536471185120578423461649609049920534515473220087916119985693435489495834495872583576216962261495513867972585468790950909312761812944556492962754423300528196327131532415869089427466674294017902110828550294025801589916295635747129047152567891986436247584242267293689290157948873365351036925709500193429829417235127345150469128071017912689063524245989283945487628239006621520352546021165182396042053434273723691155078489256086829252840020923350716272387843276198568670316303292987952113963630240415151545990258172772000010545076943918853162045093768753352287126224053212175291209049061463322153501754890171558111740671725198344474183959027748713800146802850051521113540764092427258906720503326475505040813104816373555886772071520886784086087752044077110616022627318761374697962026403103641189173388938101934727356210036849928347601869692896348691300868191917924767630741173712425748382133441270542073088421561423572075418766589871564469663020534882043579432026397924557976421196726568696821783870871163465475275273104236740857828810401548992698049955112616442573591967602790655233173017091557016341816497512794968500886776115316210041276365698547666954780212487120233587869210764185972763370115861940368826966967756238362407130232763857437506326339462258788129297707315239866344198514498880308506533384207144195241442317885642539405311825035126696782796034268551334814617694100074549272936686589313076128504159666524698138681467984909575751954695844218615302819867590415362098593170870902219042478613940586796646060445035345784711212512783034765104998337059128825890743795192733447734633416310349518742761061588050861703415797331705937563416346956793690466113890507492749922214707468805143234013264707094725965729956267953329820315580716926766281224248920231811591410671947364857640551728134077675997726317005570689618799562802243542799028055844266665961686869203715528038799767816546591803035697746471841131620582917895830451114901480943356063883817819076774550450633638184427026263435464143893968145116315882874593958149332018413282719325059443285576835197263117787301925888279397892481595761794229591609855347123844682123755518331489832576560610832200941558745912242244621530900745191337740719787360270673689177379632163979780318500289357559754115811029968464112987012426380281247595021351103608764625630848825214392120560060253257598566273714994353088925204349266653901053469551059355538614553427168834774297866160079372276466797358565001295354660639616467216122669150895488248703402134038979109265155188623483434927186010346679461789275284929756180323884741141057029462198174233969873251732507769226081314250301723404041081652261003023479086749202063625775404708233909953466515245920792975269329899667709409351389993714258027524116868275283654921407239962363672269670199940646516932413854158930576174917165419165408815719108999284639120206057599548350184046573450443954779840311770514784274718112477571552458400169822069390826346983490058436538185085840076624139194578407091110605582572178945780290774676369261101481933066135985820269885879890874009097436010971940046286292166122061851051490470945853057975853862576549341238301326130041766832820148804833416219947165965157998475326599949122126805944692223170930374988377541000491262037478248062977246877435480280591736444976631277945812214901107236760813045911439265212361561227208418231486571496933242497455969229700088338617991523740713165702700002203224202298863723657018848690429140576340001284908731093661089530857643931387471643433761695468676006149651533123695342168857971697840409401520532471804599279575864277550103473063586518286998549581785545569735541483093410972875213296158078668193451122356995708465346154121413775813364220664595744985504153516704848448053805303276896527844112974775568812987461766753936769988717074871725991519662557117040805826219451317423099644480744639626826353091056946921922876115110280752963648385385345187668326707313155673298035323994876630327680938508201462432283764895686089768603228064430090485905708710296771603693782805149209773169303362709388221903986569701894365505583256748491179414042574597393588444701336393902433075368211999535527544332126828184008578423563524251424208034253005217756290791915452064787506526623076741835740785305351345787438935168713687015566020299172168057094195745818472547089150383620187421515888826236664322075327283665985370485484263527763284128048472591391564328055789521572011103448070386912292773199440514338090023798406296386231286994933688144426568578935292291636408688710278498979256797097094696002497094242982373172246511138650066508498901285571451448797756608698694161805141794309674897238697062949515694394420918237942885936581163955124326769363999050685965158045328278581946694727852451803642147458931024975717160065929059006767691932295569755838818041681886245721581841342355051847531520400797412533594990329026723757942106786922757389957778199720562711858677695059925512736876944773866937357949994846199016663128584535497974951767723354296385899523056762394162638226597276483431171138838116524254461017858837079609202836645795645931322632105468439306283443255501120351948758820854237687243191662516892807634162732379435238701280766563599450524428814654710247227534627127140544168455514647365146077074135822404604906263517663507632487724926199502416915775359335439449903729380532384159424774908171995772720368836094948654831385945809949444472012679518013764267911486443114769286796372297849894266690499681334104673245437897232969927665061005789227922181439949200747280919419292878824679980075461192672132240877854431547829965665043236014754110474384140026492538027267969258031360746181555663912402513908795199512924977092066391949347581472906117824857359150855519989532777080665666292747635362308114389296625381604884042671332791650981381528794960066368611786449482353064439847868926558721959664238098051276316897936605554053830052823503258467842658374572095907648049320046787097309050079441276532393980375130441309961748066790180125132685357136157550962137098991468680027130025012227645970328082512827613567933683954068694256256460715868588590159088011220286407410862175348651651515439253287778990349552517831191001836015853300936714865112318052983653628579475484807102091472823978185059551002115950847830198461818806510697360117160621554725552489829954420477777672349887180276530812895053279046196404774056302681580553328019276101052076909949577212472339490205375325643219391014518032006639908771550738964591275075370119566469495243434563285976247094551755311590664030882457555107778262392466039661913018194597063902271789750074126933815414521582918018205883135914532943346125658253856568552364618492287852217836774983261090806130926814840410644584586338196876903213168008066275595446206560804822319274930258220163086145972609963294187658389193248356674202092393904681413586784916425689364191706691624141878860413834873787878630297633543957778507506123863391909278239777668594953750401887365838879700869180885106058994542086238824345620820201950404739322179851175256821228757362689008340648710304630469279758169539993626021479954533774683553257403616070085085451848280898025767452528876240295402092616733964684443583619782303123101694272355470613293855885088214412662225437994947885190308345673373367227788641922942651360698135061789565886190394476983989580897151110238149860867297636706964424816910347807578963798244550761070272815219460776660179583775957745701323967785327511909774209830175094362521360391174277121112729013242047860411756907130039669684110386007050868414861865771673147687340007339447757098149530228439299428956406070259617626330155673134042819903291932222952494668521431347439213363057490103149971451258943297554945021270764956390744640049271440914978504321823753166089586603048147608212411368963775680642530549454495372326094777987857489858654085937138400714987463670749783478053484537675682110208415757912182518315555941085865795497642961581436468876083113268509841486331512293233336588049421278551003223966366451597258281218133866938156449119227463547449889447521212871962550160920520291594063827094237843978436531748943074356644467400197320985473511842435692870785025813182096881323066716715708210514915191262546310240045677352271997798863496118085305603856308348000485123003326737329900694581021419098192738550059296491997033118371474959882497482712352690673327392933142899311489367010439080290090450356515545179276147749360328325405346232391731418777633405793263930236792689630056130430548891725464999840463906097504501452232935957220667053870236023841148016943819969839763664681821588845762846971593680458523680877632153591759934359932539361399423329042705466898258428925840595156934023721394277859243607477491938244055270683657897827706375047462378863208414968444596556422447212067137834274698953644047344802902557955474720508424942079165403098986530324680869180229574709004265844390354343558129265113419242558273439308608921986127777793630166064140397974466356228549214522045731730860592792082200444097193465059864472086701347478858063347844234950485471433758285027707495300801811594205849903876863665277523161141152421140315022667184089886952919115044970044349889932088699578743616811294668196715712599723915558058682133655949908898800795059090846980690885412300844409781600214664683833238094654933038709964457292268548545185831407187535141162083552950624038205991146561294686761124878322222768183850998308935005294275815504254445615083523873942489571971185669766924889016319740537714801653281119773702103439306513934070664351408738883081492451584923122284618929211633465384064161805717945029271955492270071354847649600561251849050330813240193043673430571218596319245559077358658237915404354964602383110560502729785966923299248153463182362038974737703281967383386196872667165542181865220978661639457363112170989819393284095859834458996408392273911924084735619120634042939637321152122611247999377381158072078383722588336751367588870739013686746524871192855048739024499280756502743178138910052820090636057687794898860936610047600699001992689207529191253388545005952999090019364747326492518895922699483971825808194172425008677319450667096872678602524036013073136485402509581927031413179294079468891486148542802496644903861791855960786858611754270519981975587232264186429094012930410894019996011738932487341307243959947249506011654991622913678659303556837723735406295213191483461428192838851241531006882197809385468005599786624825781406961974624343363708285530714889011669526949610224389714862941425633488315733433923851795110021545407272296338247620892245050192770467866944526604711322265311136848308050603788661337628459661378695989450811199050839049042086377019295481886610737500489650656480246071075223861646189708134061331915968923881531044881715174220155310814945234551960815774508756619662101716855335604198497911293882855481931870064455928510756229009196010696260068130268412986209590824064065423286239667575548391563268009412236842559461843758084427129990982838459811241281396961896756990361929023586954280569058983331904807331331362606287257754027044421146693360365148099581013514376654049532740865598136286146594499966404376322431549979137023984087181306533328970448560599613780281418812496373170049806964763569148426278760398057257176850304160491081846492674720234500307116224765176422192567840054474582782287959870215626301847853641500625560710507039564373184290675140859142815260816764737346267232885265910891611556419791985999313764406363751476216912686462593830484173018630966676958235951135041157273684007195810477758232356114922619289875424560238537574454985101101337231416625772736654059365797321537616062718872877087772228681219433538754028094047649484965226142045343726274142029967053026086465497596983675357800399946425821065472528403005242929868849317944028657400214819299382762233592239556787646378971904134037468894310187319038882438245455132593005165238623048765228136865826122703860919639151609187808172619047239069541248622974378343194116336064188576275708655509529654546281984285582955532053750186225138487503238685266085071467924194716625925783448364781993510315916778478213979770633073957811236004431978064794194446484866606600012272769531633654048290024931471811110770670707819231445715199634243277175647502924116843056596873648387894666543535576010555419360729968542529283027870937444263218518258226311471501653178610276697225532698561242082438637372233673049280679779328383780912955500261236946517319398246552494797922644015376055580624045182236525813169841265784037551549841155293423604530858859582908010491838857107011027980380447589698882227389074648237830018494931927057448831000232321500541693905076975620747401281448545621625638363515586521223341220087468408510543608261306292983330536937943263088235780308722003612567719625098707656180840269231384478164144310592498272004779456602079094281588631061351211505004628459179625712971099944993773056461868294871729078027540198852010971083182988295926344395019292024199589711487923586482668066954349815825153320290929051498834077072198083723089425653806063307784182967392998971150136629065140426559648957149033037640912385393562244980162432518222882391469260517931659814535226218852098523851183089911453415363365895483747996960315958742718932250024849363457926200482602784187765668728671620117681848345200386265213989151812796241665809816791330176724189330013703306736972388635783952302530924162395329152315833484882834506933556669762571518305007201495873465471417127904478429978683515909019040720967802403432251274265048123480652981464034290760785565557188440986159561506815444636616843134658086723764072811733982255123583442570004968163016081668496553801241290684099387350947448533869387020015220094061280400521251364438202065084481315268741946795437916969185340261312860861964738170238502209249778943158267424719828079093913814809012264750089753733008292945877225947030157778970164232611964351362671019287616173640011367627975693430325183478449486096702755141425991476166239410831801587279340592076821555160888151026981979382660844355751691168835294872621735654517605808263121253388964583354092656425159567203967937854931772658482739291432653599086272301970955238159804986731961192597212873136053572473509171894978273964354266443856896154711209106784066849417081915421038183245410298128046226011870445961887895087426656348506473056756419066637827152022865358731881843844504136369748182877933861784325151887920944547231768741203777288245520906698404913479387683390605783921671547445206763161827444966047172379921923422037107732863112714094330004934405472334532954841163826818212873931051903548877866162379514357084628673370425132148961725566717244647118155731889005371460367923640976608865694944665550413743722873598997105906550555471210717327558906426584114691732372733469284346376354149234520422644170124422767578084470906330121775028700509077215820268646901572562309550117090422497182996412252281553222712999367353207101388074930757011986691893948354724666256606123019490980819474651239212536992339922042032817232848093794339348436040334930726728467506748081631698184822740880965010398612060657147960814507474071727634213828311929571059323464607500510191303907938290515257052594416367437220029957671513455304030600916653566742348537099247750619591324129850999278756240141326334340817875832513606765192909546142283253596093305735832058877912605945254318382399225476354509191193476988926644276493827928764748741431830574353918152074170858904779316613142863844851221932714007596319641552840056617576334061718689285081449197702653700810251389240988976392971104827388266112870130971515198584952516675797850491088557657987625934030644937258199487918891718194869926471533289587089725003424359480107145887734472533425369221163323054180422955359036793217700557615334071777886812024658286238235417341307911883881118102079678772278010681097565318594748162062200041369158994288129024729255843182144179956023113133061931373540384076536073511525733517596326488141539705734943470502322128925035053928683448103669597790575041549075089350506543879374240998058812842318869217550628120766094127483591031769547263628026045165017227789311870113427205685150208670839954642490008220531576082641419626187544832651892012806286529223994167347124049512241503962634181530626152170167414713076064183233778321230396583003627277683433814461443645056837737390421900708927873207095174373546160093891188094102470908076158795273345067811724484869111754809206116389617261048395013714657269732647569470748034438454280197092630334445485973089462200803279722647305567115352276452925063314606015545814926571385572636972583817097997125867504397919684128086307181992706179684183669379592873191741885360572843823302249901600957388765985447634695393951017877188878133691784402584270559174101170081070416499893214073071118568647881151430418841938127945211225086188887127894967959112227695332206540253079126895223287576138445226684975271439462240718199699396345973358051424831935447634561405083741267627278522641416964957186422003140357532327373155704880167730202661225628331598254234251938849299470742296709978561585676246605052004386183480131492108042836873254670979447104689459611239287113573581214856130401658479870994243895181374140040878473550206948887418997436310448843587563085206210391900974916247110123771542152997219923808088620886650703252668286772535579487624519431378046750298774142285897718694773626042918267465313696515934474893417957959064867225389610442238447798427746301816963183273075578368747555328967242014039781929948477150107722247382430896346445509013960009802543373143891025810057360288065027193874173813207778409074092402014762561000519933512520134342792015505680590216093835006653907829115276597568450074663218007610323009242079201728991351300427495625825236292899903675810338664145036331930154333285278179565446105769225953727679841384136215400813166984129520130429194710095033044159845319022905614144620213168224246412074406214683230601971882462017631188430374092421992638478787125596023650513562274287653574638998483653787319181737840252214616993314680745579790918470532560353164250269149984610778234022179241102561164153500326070896867322022465816326808942334166924831859617311726216159867406007192955469984414129100195258992098492520638691304789489278273860389991503485658408755348690008522567424059673633279264896873277672888349935988410467250227783114763763821162462662173314365417748044598193049974569825487673848062776522266841322528207412157190749679584018729681724066871857928558565232886918659524768286086909068215683607914123199495907780904120061111130600764622781322892318394451682662203697665097890754559325464661931773130690807186115479194781581360745210233304316187829730418185871764496157980591285104625073901549262694987552452015785066824595874637658918640601929321012396304761930363525416408307455876218738507918555063402101505866607277933956532828335641269977821102058327297793325943907876874777009888457559703469414699042987898109583362537056440093742158721135702441965121376966609033178071935691061816140322705798058266864398831542607497680351910534290814512362525330039469251603088789090356565209154508255760406104973736870154558870306094154486178287358751424852090343625933404106762841756408705176039895143334896885750820976540746018996037793174667946845618206280609458576945435295157867904821282514683271239029665351864215955488484129191012114507313059972300037024561481319731390226000047024959438389222885705556141463548674517309426702005039989183370733289196599824069769318981462877684765779568091530214433195387825258144531696227707668871511899042520279184067060345307877199740078352771459277581369875725280438931869649942833033941450323522621135197094367894623506306068731809625840175819436265694377879758231651890057944211698141914012020636000264360575656664760957300453577516836950302310880001013840118759085907171060656297223603074221767747629376687951201584627596179430418087092550179094205062965806883384619184202349331925483300626989418316773690675978588341321752627345149662245329198433418163839803111377489367806408576149875953880819172164980368778507430324354171387469165693721222162656965708904449239501434733322811849077407030186725829190586285065815568254416989812216523003964409892180809131187724685964340701365977085428563273699185174208142972801847689674551811757447745966100385810111131581899785229221391362252857212926368121906480006775832277182535200822880423818858972071014668534568662773162908053158916455067005407244716580822497687207282050801472076424868610181701952432363799222772419777270072619251860863652269258282956156672949339474668380781027424624907563797833070151583233041266956972712482301743817136299436161603955650297592355706566346803647287113181209972324337609848281807204837262806175585884526941093957338897841200114282485836149555345929113283326213106695999758378577623727182376104553667994335941367675000034444764871572386167232119311970876417137080074186751221119217271314561865042274753167780011950050188580534817581519677075325638852262117442849963294695260816680580199675813634994902672419644578764905797680004657733556478646574939120771433136450997398288631872586647710090110208868924573996743917920829641561528507454259676526020432612179446113688430815821514605277998905916802250130212234555674188952264711588145155848686082068278131101820122243994271953687653330613272648849774491906583410037053446718160628872908383041265050210056225106772576203480714928267898271448352355681961944374561997518401211047072206415661026088791386547900087822554074497280785665544569552295104597729620598539626346759988241404773615441119771585551930623382170802403852873037319477057898613055330218528055627573637946543810617254119831784692116164588626884114094769531726276361728435169097818170084315192611470167355305339375920001166719666926541210677789200755644307726464713197356138191418210154059766577388763093339895516823257642297861036466144681325126971466543262900265278805475413717970890368286370575699089993783408196363482757789581854308170605769071894339703064728480655577347419143428767225545728559018398916438195061525468163829711829389905943164525198661727685559212922762199656049420142449211918912441302777016861060098858093779572683449407086884011531838409872088160816084941803555408090110219208175848394590763530776574010827015632960935545210802762196931126414257596561375328462775364003236582518516916233808918637695041360115131513217539867263363785043184427502729693642392481789114795994819864688588744861378731555031290055665913013855920764145923316961340536084437110557118716348539760010939888157715741699407520932614215834715960408615822517895150228457857401207193547401670815507050220250621218268903857498703221957203285316124845273363158851860676633379756916035319109300943670486792629291399300174508849254389349348915194318773401028081996657195133572115513537933962124840309340932842331023147208270206847407248565993798906675625002108102610881549769770276046443648745595877160127518296013726153513816861399809669493261585807595659158474597009051939866776847134358044236523357435643788692752430892187717730456193466531877679299155375400166701390482302824983828510154697841988377245619894094204936925077234135291358815764647348591861310476697813929445399499183376494112483939952023253409823830982873912283191292704234888478237000589105978102689965115514409056727670730894786803502077070897647008672517064103010593887887129165072927051462069538632673991024467147007276495698917866329147872266168878466708490040875739025752096334305657538886262060927431245743532032350213242434326931112740295646464640023012810935061746336529538246244236681788453054127544668097026532949815776335458110330246936277199670590126205456771509708288032989170185974580393540656974787038379933161596215480825297795535383863519045109405828427630994110484263747716019997899399221476845250424658854283188209583065655656489726863531022468452285374964550332629409163757392300350716303620604770621728861210774781832305931534775591610601298736212685160497373451876269883491462103284504763137157935832539115225603873577443596142638934301729869477240430501471796941527103767586044063610484827897051948292206160088084718734715138039097668089700164156746091848042959064965569327054482148223110545569474168491423044124196772152461411903772114440091877683966307793535624549919393036956756507332933656717894009777014027601064221733257023925382598914322310745972204294318615855768165914509967927460239807707613837982090937112483995323582410041761334113427680380749986262284456786292069961725694062443753951493989182011980851104414958920305320498563545982950387386242799465432022965783693979600618827777167725034630162157656364415413157233600094788313653871295722825445515867583054240105876942167627181794717104769182531511700221890288181090283705917122294076142630570717836436748738606238327736316292376961595389186908666052124710965556236746254269688667237429740662103584274846653045359655070457184717206008877578964987096217601398739102909327823633657910644162674648955543819008522018474058347470384414176059750559527245767526011863630262156846638546704521917499033823035485003850860067770342928914128556050658965246825642638457252450590835482462737038800455236340265598120281091421267937257092771795000707248216684301159625017325019849582109510389726088135179130410596803317657207476121067510955637119443979631824090292918056227046577684567205018234565112903850213892152923063180485678579230039597944419991577551568822792279457671581850509228145304176968113384081056046164127531507393520425739772354855350556453830274929556639905481449154596410474762913235206550563412153264825152214871677375735588525385903031069227813328963323255468229559610817263120814698229954446300322675795306343213763916124753296296451792053586385399527371460865769388616208778659295813653309009462768481379636706811793011588398866023198328560698235883665245684155355604750537477955877984398379648292944425385769733780914644554819302338448658479008447250053558996935833890830389505066767226914222167755372930604068905565081649085542898355173174916151796556361050529344046376970807440345281686881320290534448230146884494672077248986354446728447726557762476057996017656267050505227473739842710675978770144870539403225717496434414364682390665085089146089954933070018888163789306310236289633039627078874738289206486506234089015047812712939888821300567612776037935326153318097825501819438844555428309643444339498024283269262006872565130611644286287927810610567273834807487138549443646168072328433124939688369748727442191826151016836575654606700366030431736211434539526704739828535905245529529963140583044088284718805144696264182292501801492938943497277572506236327920181166914344164160824622781431970535747720474753733192124587962553706809136688877447760894801436384332288137513723670271065921621705231331599478793312566061496704414605411389053776930103032972802151043050649490663983768820200082482264794245104304332264217762504858200610370316577926716063783326268305856159015205108253240226801149813859744433433299002325060677315680286213446288977171997290163117677824754063345893401218229894700516883521422874423171508875361291947734322680404481574096144751400982543778862573922946842553417820857872823090150241084388515140532675713449526241964757655123443584125140033635208782139720596303476726715456592686869903421691577223567972247436961411535669456915858068253376460012239438091296000693228084706475020173781098510469280122672701727891913533747602993749283024087577900318142510577995165935850512877634924383027716798804919286036822974110764985358061557478343196885266411588603894575489607214328591244844218050372846928370520998131239760917818548269149292015763725112162578113904603055279306112196501118804899133055821501711100738487558817336279071700641470354801490735489256037021549605500066821560615013333929937895919353822838042698847008314206799889036736076107806034851260476265526335589865336754313879291051621542216863787730372129834546687788764649430070619608875514447311944045020038649554929657953612193129193958224068798868185058378888082769083568412268131415793674299761609417716855453834526896523919689270051604119093400362530521787503798927803330091056259524772154938604493159977198767452857131070474574929794393373888758752641516326872070720566897196817859165801295004289751744364362863094600166070424145912085517336112796174950996605338719330528222210307722647718657721023792649502036671954981792261063780653372835673223304543289745355080217865097303336257769720376083521382888534304670067577211581399787201686203977736637993309913769144776657565221100881576733192689643159773722145256239591680853014630644302115976986621175246774587376663420231701909133483318528945025188034178104558384914686493589942395040861969826766231688492228181859219818852673894717643068308836139770460964963207604207278001508888145552009901721484611189496537059522733205883388683544838862045486918303461063523547379485789425808193421720062832298639943978459340278611590360698255907232903073228494618854594786780276524969250606771199348637682220923024128133073439690228415907569571769717937349831318800616168297459498966445040431689490179907783385991674894429805341835478323217097596627928770743179477367456999746203922661367529558241043336617694239364653002362007534797132368033537007810546264909696564172531048760929388998649108844218081839381652252037450170309314129752234008516351354919985034390847114005309865422068612626954047744815307536856048022388951633321372452679115953365865453891234957678299929265192087126882382916243274606486573500303925732486338773208932383922171894717587418182333552059879509927726300628544496448795128357423732971681093327215980324357204877895633650451692218882303035798824625721007033486582987350947491719906613389403303785830790645216872443779906684975442560350654374960115087934971705537377862877337258565965541665100949527805396438720739698584262212165409985499192405315829478110889854962113222004410559515685485348202187994718655910717649617507506684222747399266846670122505631412293663730287631542727698673411999226570047464518573067165435052299141208976040703665702622198510473226551281393830627442457319577147356237339638359126995293176775382594050828903234505521121622466168007674700420634393722236738341608235871881206840529932089710565644926624309884769004977625783165371184973986159703672213454352399416717658695887511683715862962952078996451824605253100859915542504103434247475422702894101889302182959244861686338258793853076545142522877720586509765024626345092939935945735996129866269596664411058242347337803722385329253806537500817341409756457588720100715428933668979385154497770230145219831406491345009827336069356622597473682340622657879678119999177713745284366726370285017329617294330572357946137568927699939376370447878012551696828274415998862430544783520116945926094678935448751627534544252700251482574273383261660402603967881070665100133031216579032901266354679589537367799891302769442410860298050180266378883837771070478731205979626808259952092567772219991674361702904970116270286246619417241816606882230515124667246013959494538842174219607272322869444302367688609023925786064559039991005563604185962392817979645208730868597854426540263223066821281478268524177558053219389938631568584414033958125299667042385294505014196492563678631492667797037994374556493750387088198292048446357813207992308860105790927312301233397547792026514087452010726361405159488533334232520197259926483570543830199204354238416013544625055764396777726719579619956793002355190791945967833034297429676258341351888877021298913722186943110748095575131717537268906142582457613912065403252687169869648339565107575655443537286555273862845094126982050049921243447398891795691344088006160018217601532076381032040451584602852042816272473156622339415579613266889760315050539141005587783076404362657890101600601810651723685176475535995089079521501468984956107280832279486152754931825842074916449042377643902143502236082493047287746560819907815742608282420712635273542051583487372178909043843742299875508784515259433715621838737856433340191580183751033410203436587573523315743520656365843165054464353808737913355395535878338933372468232935843263509545389965245991624315812158133057811535133180130336028775458351169168006133431225148096842166465499460247665830140190575448295979770855854512713740055285868756146696722206951531323529297813162383862230783160997834526117957325526641431115902263759948108751007073025707041352007338836833295648038234780404082838216912803267167041939865798775939863586257207501171341500892640704353470287751028665326482462908509927995399398998996860342200099300907458485031104290642093745138716543563263217779555116407178177317895217416506177891102686261596691747890505019455258678998191455588252878818011590315000910573333135762723639453092936050109394581630642013046686651138677584772156187340993267669463572690977666013513616734468648062835501036247141640701915031005640890549899734712218976571588604581050973301620879732945714881750720714908146502040266904648871964685700761269594122175196024803544989832448342217331905997655552897396661996938075978627370181468511376167469650300458264954758580022350628128491998754816043862781975657279666522791362171793553754268720738022957905371785033019188566444965083441350827739648078858230907275534807147296741945631677429530885309900269794194473223511895802475584222002103616305819522676237782504703090701459577139327391162410879699306068330690075583519571922775463079498083968780407769611624781477782480055523868978551956133992478147797920592039969093118444483848705207471051191274266213415209907165069615323521888342950124611017825448751087499015369683886288961127166201429027350256294164715928232212881285345446690979029386778874076639226979519538027378079556673456993021796683569398151002175489060545985969703554935091145300323767295176686860104618107022572142655544061973437211903741257632038254092332293010579586029694926452704410245724069994486494072407391240772102988652506411379833639841487558533603845856581424203130198478725464999910212243941700514299689336048633271543685419901934402260000917450071106002728100648005207450879807678757756881831293385595599011600293609194108369325393045905389521785360733357555245349817979820051634600719316501491999724951264984104357064165022657576784329399250131511339432645411651192113814628441816991150716962455778254540413336930388091512640243692005629365252254929655169859990921586943433005384865383383957204990045556028989789645930359421272757293866201349360806834421312194335231226912177470468701071749135598553361103683795598365157459719118985737145234717632612874593304890757191090775044166609275824130406884271063093182130619090799404984033302156035775736430298391430771996721880729879374242071239102700778224766086841738875816422963685092160419708286808454152542487493549551050412320311473092453410652865565722964408203411258051479426032144876133035465745486630998172899375830066882131275726858014937265325946838621699052427532329707837020107687342371235106601530986569746254274829536838182287475127579680337510022354838319316145612660507700581974740921598718107595065358394854902113564789051761396494750448572123054606857791490953843191231777705096954066571221621187258780623483853825116256624241828717613945238166023859518207975104369820263985903267730365838712624306320366540028459702056530325761051910885633817223062330958029400969102364525790769835511810574853435731950284034143504076576785192011056025706377904049645619786686496620493681620390998382670209910436368811219679255509496867677200173415186806117662399646398085748053206905818415256804521873196003685557792558578942935110590403055531784140511282530963822923735809846577217887014281827907445182567758605788160146868746765628552117340765090561549442781566692781114590475864911135937473590870135881576186891068792830466546577618841805856253006456159576012754263644704138213552966628677398997764428290499685481167407857830591470133396901494570484568449561951142145678474638317496461104683149547406190854576819484176259691537236854092103452616720099923080750990188631950846594445933562860342690543107728438862155014666837532154788661018027017531428059526006311420123642120127257454890174350608268139029669493796456012575166198401109739487966801925325478360326455826957152420338876666987258521835797284894515400061250507747040058243778920966457576699454383124375750676425223524029917147685593303811783663611620008354295856398473899647839898852401296336600915820035851440767326392378441347099580803588784139355104658640898329275104619543848660977449851915757578036004233990010936096401130404909541567091908799932287569089098845742669933142956228795096764837501834994148236517334173429220451710898598697819708687480302000442055265215759915555060985993116916565756007658021375699976940609699838647830653446867731957980750004905857440540698034466345306674213525398083749763705931455135391648332980854564660198664532636284186192838211354794624382300365281015166567882391587869266386164222522203670354322896752345703580917710594210501907446314430518896967820251866095419902716819114125842001687863063783541467687481654729847074258365477076467108609277658254383022735644054192622535430765771238636439275828513911888125415195924234984794092627641917813582785887754991626678425302857219534690878621020746736963542764391296557292326401667143505167879746455548251332969275958336158385496195762519773233677775216004071558056653267761190101045984411449685544502460676162941819488425416780369885362947292852337523295051653619207212817458997827712546628391127552773524727005477160684966598776924849047167756079150974526365572725454266132542375304909034106847879221227562368229335649112625304251290411633406830305636788321538104217025316215114660565281555187291458764090569584626192778203153563606144456092933909994198455994296384965358834006349820737382485247580097904268469444479023319364568558240161985405889266463548764449143993575511911073351118771059848740239288256513620781749789131597480436638096526985303779410406625921829103969587526074127107967180448264747602670776284047651978268067091776518197104023121029014568616765785836706510499896673429532601900615683843924629842434578457318373813808883228749488177845622472386130332788103647736030608574571828776404695790073661006044359464022572070803857985229457236844206073181691328357982919845162247364284043018982057389525150108282361206896035574090190783044957121639707816983749098639557779291598903566555098642690535401556232414201287864036314033341877287438721074949244433216606580951974114282730867230950422521577747860387003996216062527877311027003384989627589740525278897413126809900280638155151676143498662369992961039038536062074682715551297263831017561643143828875492979377913259371085677274453767638948724864560630979130257315974197190197394346265304612082841738617328802622178781959346446030653991927457734049587068338176345883351511704624641093139733076258467738694209504534582573245514631895780122451403279222622523481073742166867011641082357106994679449196107161425709606674807357052220303922570614311252788197362058656524261326722063550771667133339284181082705653947493765926947699144231036415507374825173662240875688033906700433343443190264618421960359383863133654007544242697348384218473773595029754868277182300471527068859387727828112148830604413691260311153189922486947800801055792291490250492487133704952292041448195990056329605857244177205549290603090770687524042644204638445572574832921374215930728158763166093765682898915499113701354963684656679107804288157105854103128239050229992993148484359142031409768757800341880017990249686103599829508277710317532211050437185246167987313423649038852450133112855697588605747110237878569088802914382857395035923864807458727060405912485351817629069919079185581030830199160487106731635931754832197424573636317941725971052515197032168556067947117248331981889455622793556405147813732320701674398296884026627013050329582780886112952335470712824919487361031171789787324199509829775620883369752406672794256627241790380425218075816603245003490703083312930112398546146141972288385658754687445690067510423633531351771284403331942349128225703747327948965324895089378498927499097527966251743881371915260411717636980107540668047087459497290572695373048681492548598930200158226208919534778173345645409284504839516211529888943219107093830538147088965170310078985365075973982285041273461591469433808521664292090282994916648087867547185799527087643523819926514664621571142708954018804341572008065818025368708065192908930772664191687529476434699162158611768325828403641018739533195655150875587805623210661202943628950834346664587602575868043528974629484577945346120861985628739426869382475217551988054335698913569443317627906127187273891581540500394579214435460612336687952525315729510641182905451950733363081431286183740573596275518102027148587291854321209738113961324692752575061850307898675916595750696160578775484044783874401888124859547167109460345097807370128289875521792079645029930753846569346215142604291363788358948819717254960760273056029358300241913827245158780586431339056606803743980591192339160942923378980943822411038943284981915843749651064321118851182008346409829357321208814672193674517613767402016522328991281783472779461226693854223694200558308482825752938764804462163490059456419860554238433465339452360939082217312462856722111441969435047299030318345838846791400035116262274500179242129630295939950422674068301154233795943869653415396693717821214300030650506419422012457667459950467790509312027236798480591852559073591346925111203430458754684534205943243897687175604590371847623475760718397622953505361059371507522418677320847706513148941923814678566192696027607226169306514670887089431537075343338353044689218490716699423162211958157932264477615398083750107143360193081277059641529960228060310345941861800938792553683465644565274085945804849722606824560568440225610370247852417780397709180849179187572415169273503201873153200386439137863290047427234891417849724343566250164325006875483640729885277677896757724208998966196398289066141261128569449096405391023146903853214257569137653206544407737023505682449617264468760138783678885132220288772881430468584535712315541476304754439712967908979018131259983076683605129343363766626675713695068320339373131531321775664380894031575517364037449865199146464811885190121324667079762837761617703356047728887175523442129444990388817642933906890514445262425211488530990084297259476126901247544649789361265653171740727081917926558310655097514327932125867828220826420941745126514811740410415116444291785878355572635368826693129811055299654338880384472045636278029251597065895105177734433628189905359119541310929425425182175683299136682003708690331173916941558413088732460586963157163151208549954610475767973339968890659157206245475630109022881964274569081362431040515543743412610816271459306039777994848396911010477734191416317743416077148099774557701068499808582091564396963596011654218970670812661283729029705666656717850492347520174865813494220293466107516740503818129564762558682630937860657526108240586456353769648995233272229460616082449848074788210749425567354903236237220873290441459377176618157786700136206728149635010103112205011129383486961599777453659850195585687557383808341599313313615629748214115481970164159463575067918096961251549383244021497938629074427328591602854755621342595684985507507525715855325084091473721458308664946536977213692838075833200372245894430460595592490326118987057640186583369837139537705607866320624708493980905882922893159805666335637798788362505289521961849191512726422007594031834407028860844174721523683165074685445933233832280785794445098276398261376470614393530144701754930806054898853107993115614057132531359283195431806294718039986623638286822923837388046109321068194165440293314028492878434705412936582241244158021030558615328086334360936463800193512290673604438884538533877825754540040355086012364962346708156482135931429115032670743690808767710622673291524552338425339146311193015650426167100550300929460827389182508961676379671716944184335265035594883746671396556400852917452235849816530570682866163748139544036352480836318278686494368000318266633719441277861590343575394440614472194964797011549026660277965729737936293652637432767944639401951196469305908024823117310513726319721347624525482360603137883031193877355785213770494540976154268057995214120277759814414834101641010059079153214448084708448309290047909708227492013524498352665529438265471852011147745508782822193933401991362223892521832676176445415567931683381356842975916717399858136898671770923894056558330326466263595461491913630447922835376208813305879366544690658328643419905070721336734631780212753646529777873712995052091842142306571681212015728341784907127071809628597009144889090386488561522389347814472395712589382039048924767984786241486878549915852253392984384523735217523857494327199107974427702705362783322413455885317181281536400403621300659378403056397787339546688032221776299828291610040811135426315209965496250137303418753389149405439727175944696645155925293037876130051768157555127597673767474560330493984042186447561463006362081123458745258510874172315242264777962168607703096511129885812925051421564012876469435694144324115446160823321759342171728372531741199891583877698457471641118633460170112235740445959496044789693356133727709695058445264667188839501758578460365511439105746852886833880968431023921653449712083421481515649246076156922912434098717637017074999167206932689392606796796022004107597755821541502937821006537553112154262934547235528865896577610060491954842836745177597328717690601745715065935888607623787532648544352878949706787297074367824987956030139696619090505316705020298507342270265586721211723179943316890203422206415558932141384786873465992720568538916407512666067275750772578714045160841990620799762600388697949347068791497819893914920378304470135066700012969267734038997303411914600006365612619241141244986080513935490088750792766712489386073672592385886370326933856706518018760855047178563156836395534527589880451109659075472615287646968340420731696190635709155306872849927490271225578263871076931715675749088682333907587961057054382495335574291966565271772260771352474302854613084756434929535627392836678697022229177807194671219385244485488861666754587004118075599594421102524813067240029289458978063276089664215670495828574875802341261353259987096038787906735009461256529251684231152013193177607648318837778313814986706361248974468091420255015831398495922634423934134195290965371782897742354828131757297648022215149550255751299771204143665483115860502350053303176095143625924756454955844715186735468368108429083098003291184535144828371376335943213490722191243190584881269128189075273716009377183168895474160829653502413305516363105133875637239630663426380714463791098480411888255102743506959353383910502889884630010482309389566342361767524477734016615517701133357827050980200374159138048356955963908748915247955263141779646573848786623809843534866051695461625943175424212840996114960472208928398949006469215111922722830260118576704506881661401316586583508898266574647109149589302839068388120439157125790383602109981204724023750263962229724809056847833988768580504616764192917853149320187350714356809224446292161977681531521812861227706656315936623498852866683444433095370813579330593626047602734212517961775603693945084773127251167388737271870026256792945167760913006388729971319014825382648801383498500315760970228427690057353077091579523166671261257179183685995580649752710069688436304057893969115094946856452552203299622426101196366803763745967550045230290842418095031730950511860399423074831368400889545868231783247627873232113432507484910838271560638611942945975594109180072690657802247078519837641916570957973818093756428188731598657170497065158491994236236612875215075873530650035005080264367540288127351895071088521218435430875325035802952656839293561634348521156178562068059266394281594136388396094816708798091212362505153775803547546610958791965138543126208124951547010766666773151312725385977410114321023204988237397365657356823702614385131276700632171621002593947907468024889135121198831314827110867502294575462703610711306675182331674103571805221480285893982723996936414577785976778122087504746725665350604788415511019806246363970876553033070628014620627751197911668741510858569845705154689221488031896184061866357405421438504757232634199075854251893430079310527476379569364547180465952931232780330571259000876407622041171404986131928496771299206877253813994595358197028032712488580865314233829802577282052415964318202560057625407774711714348282805736088648474878856573026592043294099516183588757415656011718172264648835415790874005614126602358782640047923154689333272452380804149306436107935688628584533633085259714115490921084274276240675163776436800346145321185301821940295290635302586261818808908092809386634623203304912070482675132542920659938514211675603257931452557537748917828074507185259321902705318430777092061637444741472034842579099523437613524879594770376644320787718878858114840345956094369491893747903837226816724298894406897257708283723127441379112711774999357479756985445117001582104219478972688654452168277921985313927345854610342510244761129808606641791539328177853072193448482928211749424583475323835625081436603213502436022560766186339447147122719849140739191989560747817196572400213489825519475089289923920831519046700012579392353446582051876143001987028016172271528309153208071254019007702010703285440713255200467813868599271241837772194548953061020044036832237164401854961377405381595950279688838064877226398612374751964039448959234583366426399572303947453944793548168824193190819713393320397998131207140728415187313083316986129343571727884774374907717747370247412249885687962336314919206305646259037598478801685898766147184599926406883699945423529277751174619746643742395931970937750286600097144077363849552976580125149391556851747056229553738021253790876276744590722267891828898908312312570706613674773670986605074181863665489994676965662208668151462698254846665040303833182563139170425519114207716874631476521122730261813601313211181169840946521738814032444152631446691662502268747121903242406797281017711903458582891254216173904899901485827135393712052292537409333181314422347742290610529576291652727885029733529754616800727494672013755212827861709185132994813771704730198111234962720341190740368180107677046949262221751875618133041193012041616652528878535412453865127974392233078762728094075097464001674357262764669465567076248462407170312162999034464497049010604676344439466712699982733730624299297643765955909001283802966283837419158730720274146008021706992758004584546765998931797096069506934507177809313467425206105318451643767125685872597240210831007215124407324858118035470778257065595665374830497944620741194925722173993022374868206050672516520502103329356739607329791069717231968340868539975081000723889537605202040050679916187735079665975850621679928672853897878698513186213889905632000099772588946130798666048157327495812221879889021142459047767871686926371470453090133264605514079390807060758757075045482077352322895478908521046404365151830510817031422997534371769388368391106186098222263617620568193279084989305271632918636308817039488188459031016754270277802988723619322389709662167851083037546632711177749849905909170339093534619323609710227682609366800384061294907320872915485252826484651887307464710215360647842650315151210455280906145156450611433834743968080007142771689100687517425897503489726707939002835090163287003880601971256477998661104387613194249520667779598912463883825559767375158429534493965295301020369751167408236940922077099485392958523875313788397178343524757966096644529678992871794603341989788734674538485860874837591857218141206785864291350859248140931770934196848396423482835394325900787241388585745429929228461494194091487318358198282707785066892825479102451019214973880649274610537167046385996741253479425362910685034933968885027521766057751606664230067518341212407888399873625188671448132421248751397908601585675353789924839960902367004630259720432191485194747095414244011782958318766873890189546040074540667615303146945554350311103453305070506840624462802798195486747325053458769336228395300291596935318458078573371317814871423666011335563961754510046365327465859731452291628623337568397650186784210178271166803662416608700530764071812131612395109671158361201993089961324895002192456811072179701742630326360254062636381741987473413749140671201587754967341687780952894447035347082418826406300809593533878921202269944333863618029953471199768277810404647342391670640543408542804671720222147899979608972660586483842540956215244708783413000217227137160226478957841032833382520142377632384307564448539029595734728311522639618456979444223943821944654893522289053566911235792922871344077491443314299937158243597309789946309123302744477900021110979675007930319531749165729803616822754708910485178644450505893883583323997553841251526579982391803587471128057468739454172976440305431524594690667755570954695943510549964930938986295629269328885439800933615585023853410334943294315026365001585069933762328261249062386273835968052549296261997748696479442927094742503576383224696104907614381612489745566805013360321984409191033679335497412714106425163779952812944054356442622537742777565686954561825417101236343862930671768472509292601181462669667976917692157038924928796298316456217274120279005400384533762600242979364441665066364820950610094405225724534638794690790747795080430715719952329069649099788886226308107425319350887914434139349520672415496552914547960657277894521362665679242725103938342141848045120000257710594086784649439291480311490615362292249483515952322010788498152332948375215353180336985355956201238006910102909756741698780180663651662478540004983729391938541628629513659361681839585446739627815127460836328995947336779441465697871739045211778274185362938665021983856676304643520165673903656463750697174028309372989710500206584109732308265707526343927754600550498423064266551457806898212022182980203153731131030606525805274651305926167399193799998998547356816575537252676340531431999462421447765070472261959098356479106790764074469460150014177295306536082655202625247953921341805746889120967096642830900080782538540877625080166797090506903373352283618523518433131518353200459842944108048262289007430140532274706041200970577242710514273873845410001599204367925472393723869676989935888035211337409242352377972729923832693050530893815161091255600707128160390057229418691440123649986633462384045255871842645245947924355256579096958502558424813237842423370363540222090500562928738282753536529064096233953205390142350304598632539972139277422659051217084725137112755598860492095719532937054172526196732964197033089370476536889847223191260395791523298388100604825275492147735083589594311816545550446144932144455877012963451862436882367961182380381154639811145336784167333606904607585140760329080784260250268727807502956568595621231274134432786612526503254201043723052805915802669706631235502591696686657058768210716827618563370683398388737794242123522824024529181653441085163453256947366408010034112708937914729553905381922397639719683693698641271410006424845868329561443065725531485982215527906421682705510868568496513610804240033624732746264367449899296552251767050594164166683990518523214384408051481983356196102539684706309187268448348642562411430473945746066679966753071531148236606799774521145210995668667731677846744214203719039296644450887048537121257236424077211464309254529093930986645009305931554516029759424268326185035576150361194069792098953240017681515419746877119294177350095078536075222223436035498088135058238625797548803837867403160347932355083241456238329869279774397441226774344214155676783924710292814580447948844500700281772623959158146709459001146612495638679873707163609662144096219286412844793801459666134729391959665188563470687775298950315701650180163166780354608113643833184987306150862382094461452773331563658339783521598474740718029977713838324852925919179888878935843708173164592069358794342569778442587947065253773128158846967056390905598650421782859640134574445108985810147837778599833519889270727173131754921023195821511354181942687357716142747236247403322265269817302529753623960498940265579119742447132771127332832588972547657612642193789390038532168139543843179995556438962551674140618941694636558217805848153546214000378902270810791081788630343943176410816245605854444100047264405020257003403538090338341911425366912586968702431006999627048820162252696176518975282563252597678118926616804048598839689355200250279999565670227489089347179536750222346439326347622497083326243419075021918295310012060545456731033514615123045251302949626145860228464757818278078914640717015108752416917844910759998740684340237363865026531947456824002392129121755567783433172922642488469469824994920438904637415870414258939697489488861258409237003482641134949360762429079753135833211473629528294407452076740709236705208279182121714047461466066099781570675137376475016330236463788665823018022288339925783135534659937435976553816986071879250313228075176149275287165883089629175483171691012028981016745037190885455501813371381478641759323425413869849308360440186984681790142672155018978772095141366946326093282345125867751667690133933027651939566432813689735518051991947529574742931627456633164373753603000376259967532915295809627085078069025654323097228412057275055338490848542663239762664729773796054527391987788544062343347614031372371356978559981717700907387783333572039172312592361026625561971622625464115856802687005166921480501559510387598600183718963125113459943315080436871442578000131738905985479589415298816015683169960081011955753441911933258877835764471832483662729699339188226331574747272275385636132508580186530967264746527457895719381860252692683086240787946796918760768590696846801752535006590245944250187028775024162523115946398849700511120583664950603590360147000679006781291731513670928712569154512703321437882675603249043058457566899079684804210433364837961887505394390158108205819660697882435871148899290120239346553171689348965560009771983884658471598639552348766581890424552233009084458190941979657041499465615197484207806560884188997556852648957397407324210355815107312660428157858012777586715662247778203176600367548003338311568397160102479720266069247036831074299917548991123369444123252796718971984011666699386432354487122379412790924333112211245730143966831694183205524689076325926487869105543491932637504427815933552758180410628396243959195565567639811367839729912702381694887593416601732874655318502095350039365577366765921724174051912552178653624717349254875112722680387127300040497346246020541258537937307490502962397889113346500342717856213671810516867096811976373595778623024644337689464603680832147921848214826321378270834189807723430615658043200244702741638448150105789443452563045846440263430589466794828539079881475243178511830581268418767553638393317866707077929879704172046695628825873956289388352210766750510889399640826793160190838861079561818713633588334550752143783293322615283581026885294380514592348916812772502630912289260479664600609083946103426698479019643673234893766461136819094545682089028197528460092155870290969466350249404248877837451428966768714640002686769617058684792846134165995913615662762253203027070575091768875310983887637406673047245670797366412292772556689197783782479017381634395316241765329244352025465613317091232662113013391531647335392845922367331604931731407534916437517524601719286716821195129049473376885751208688014728190616060251742956993976241439126148297825656931586844180517950643617710919553692474798037721734950610320163316624243354075264244425323075082988638274924589334254192615778196873715418260138908257764152170927835816212346333550112996803258974796236200581754564142033716216197443182544571298897554273445673235387691654618607858165744585907864770535361662704474811517432648443707891494479306944968014361520731087894092244645059709567137624946470130790973928084624328705646057919638596093406950143931417280991992130351276193336450274094355332565655976649220963572864006947659420628205666680191641091171960880131465346281052655394301293674922925490416019963755982872754710498302428490910833356729717184193141905390197965657119485321619472550041355796156171727169746196735412555775622542789802390697050312881802397724351265675702383026569261036197147791777745530246226077179467384889143160266068866188560614320608752350057195214823450895733883639794019840349738435454407574764195267174605391134062888844942974309793833347537079548877287620492381216253605438259856283430311242078177875400596350319105622268972987737865975993395322948616314150343189248852414512619437889082156118144798889941576296027576907706250267405729557197821505370585130820863187385782414237801377678414312171526743975573672483986622645281665927494595189435535316660400190070790370056384399691040756530387633741624182643272177902855679389863157026805630920757028786174346018221489985976829786086004713936831997032254704236492109147016792720073584573909248623000495308097207454110078266482586632558493105951761567072843772780125451714960616002997138523615041406237461253040479580868683436416103247305568142309730314166812006066977103334664957413552339220456235242429998167922847219104398781262693920950199753803010019797086380390947737552666119869258340646221015012528210269236301428465931211495345338648210956676570306976080868468056608385250486958897462517378008951604272075219196298173425874111015466485833482377276784562244882446912081167601037655782577552864015821206308009968865555861222945775163290045336658933254763095021896479334595317481008700960699723814418233803064507242371615062078983702086962022648817221793569576218339556347333098955701320377050946566008395212010944450127467792675565071596340348542917319903389344458307253636051787743598741900010303093490334615718600839998995783531694474622290759129713660430413193547954292504815415258140780710307013689638817121533545185626592046992207662045251002759034406121120109890285052871892983685895718255947622036485828833029980865112779943600248782113553247862503205242389577630944771768545364184799392499137494403791421854745035743050506937523955674918595130915997605843281784454922209527011381435728316226786643405593433534061291842731734925289801664729588272564772285343205022228265079171629617103069653622162657468394968434515376638175111285876447519583546562666277151594844151877310072260863351613095287685417161843135367256448771666130809869029396606255634565135674666569743742135652498967780292116793881546855633561415651354161625127609555527624255019450397050260416555248570154466097856521686802838621300586843377075847391293488044893486196078755953416546395364199344637611829123923871259163988138552286918333624615290040455924580411628842104858300151657461691388473288857184903040046311891603097714080851855925208188036644944076742861394883400298633819167283206770459183509990904755749187352108792177379029053575209248040304124875302186135324127012735569456309602854665054515610050816829158841731156713055138827524746783976662074741645215580008828329774578547992659965899394195848311572686771922322795813749334482408774919735883107650675637124328821107973516345007679322947096113339969709647024682777168688832947970688143794036644169517490077549453630090168685675392147620152908861133040652351838436898442716738651770788272494422401234118803283318646661990214111276069742727404719361294932117073829696612785631753179483583039019640781343499393266526824815586526716198599162083982729587286519167651476891503598313428315759210559139555975418782506384619118938508670487031839820382071112963496599391495944068031619236274715067398402642445224139343304231033217069238049767313219244897117090428202245133105221893921317518010514484121834434750078442256481085934894121855164072361129668352194759661030120762449978220121038336100294018089020306020886447149129053077664708307103740555648390556448590939533276127378417619329791148000357902408738666889544656752404242955486034178661599205260554486669133531636136629165006670291809026327967325118331763639052868917579644599783277748650204494887911115152948179942683917225537181781450389786845855624271322887361300153968180499339064846083628560389262627901037126064873597882175201643255899187709028343558986159342263120004547592242905582918658788638833963585804563226026176795066453468244207124242978132884300085361982855262930727654386277087776384543498476464537745830724565647246005592612660393963773494624840762189014384978471022895461441866105161837160395184924575034287388768144991032161291536021190849798508339216502101671385162543779280728105298871804662027042772316340188448637250103313803405256438854787931104367797381432367335597041161209851633150103909788211915780000085209806087002597946590778593275920257967013829234213705995011337614081508254415236736338259112823037936285355925871327882941732725777911967805636088350193624678465571246431015648945608788375929311720989728707135541931878079104493953063952438593270696926695892598992107770188519225594425363796173054221978568383639685465582526891857616373893841853796404703466503528261700619482052370127295401099029823971169491890694796844307228536716389939160414218563669627814206367485925167395298525620303690416664140171065865364992052128297700257332055435413517003453628796922514779680740946112295974721743665072403773266677208550569533759045099058651040713769929771521539440441805650745365201085450441265416998111644821132428165345958044322054957192959649765211761920867996478033370496173044610085728682672661954302926026023180666367245740480383782822327820329162432178667916456346649206001633123623575304724449187998724356919672840108541277895670234000545535228610114612867375372602008286595110688265305165782641624109532385407561667167231812017733472824555427388711294135745040187508771576153605239914957687528184331061960175684961526630145861380330748443478134501771845194931796352725165728507980480732902461911675529141506166001714584943046099935950057744612394425004758346837174161813518701982245673997562783540904660454522220250871241098806874687861670958414029773431323623102634991511371140435367309760972060861399149725537615624727466725885678203376191922277866570435784617537013337766052944391591321504361986960884954705784143578933762216768111004476857568915255051535606669745240337879764087669242213392422016976089607754124849382786515817784661081844184779238923745863679607834337529118171668001422110571406894373804911021555355558984825156752282463117130130705335681625037124700406908224046700582125595831510024107588201644551301429125093458305958337832476294048448547716169385062049411986396445230519907809682353226125087565745714010464213768609324781711704801702838847242007632232336243755680241333307877980248217979223459940893647554028149080650172449309612624504851826316234709681300729194371618867692927562240516486806115052264918378106704672408990776179149235618230715778914963137943528500681583582490461602066421538801561338891223142763517379858807382373504805534182989323962541367684582200475463128086000377949798677345645090638115897929376651395620763845445983698965928504414942837768114948192901078668182028694761473432722196652116112538714704765814345372095492083858164973054656419774886823484564321400807507287605764059873056020910447551686929633347860751994343953299469501299036188237420439164143785718268494881024961873061606348459038192478087020829826090099469353142938920202113684541184178333427396039176687268887754246994662784924838200268242246175275413434578997793733743082245352694077679045358945695810739462697255168167576231147608938597016374909427784939061249409868412557315088337320727663780072916092012767553674597737588071317482518917182686874244860377770589076157352923460125086892613514212568812743672330848293805520000671665503334077103578369293869738331051316237020500049676110480961598432322428156688457141364473726142049759980009313771712010931450736617236675604767271081594027413467277719951259244031001424809494011775465322908686899106961565553873026520053200001570159410211899009274341896891671597497278130081074413018539231986836414129529475982298965070792107249285942784350140085640403025448980266111281251550446763616857844679930910074933585331431584129128520834198469037246436311541066970519664761060366018595141570697301762276945028890456606290545815098727279687002386356275764660696277352646349803553865411125229716178104758869172633620739235069710416596431804564847717983545219207602529640898511249625274450622994685441025822993676392145453761019795948476886778383198680603642290900018290899680829916117508277351641715362905872733628341017824876127361894162063264183741399035719958561182400226076078572239219273122692987657974662443422941654106553547200940017952028591109189959917397294348383466017932309872034747126079624953526398435971038242158195687131273284945255544677318147383499333625157489178380514308315421573411716832829116230216209360848661071276325320834101192221083178386692334123343948301110055071843844088173397727846835347178132273950817092953380467180643873615152560379417292531221417691321449373212984679520427744232452308412506667372301214762953577148730413216799711920788957930749869539919294506623522836203349179024601103528701309000723023823164131685452567867621822551689873314351343707854545868931695393543215727316275691533855296996716675078366803514942326293471831857668141587989190096040359326245354063698272602051632054803370815566074269086190816807530524203761507478407692757300087333377518756603545117718558950986978869342252983793921005436039920846001390614868407106711210712866267084346685038423198152717727382207428118929822774562601979033171728502850729404414522942195448147227522942393221091621170359627377716968354224879618626927338508237775361670491219654732418018708152066930733050757396236355538975880080269075040494823328252125890868846887580020994363723444451214007382248917909168265364702323154695136667739168742152579582930985597142791500634832523416799543807953247031093795720071799318744821378447264496009322179354816228486523386449844292295927059898008344022515224371773999373044713345027824534098015493788814533015634308842145894686348077782164715864822026540515718825154481148861955122164000895934900821951551212934349976346722738184320453583863360758442205643395761290204917347721345775482291057084456748672222288712760683055586388643251699769168503848532670202857991418066422204576016822379654221547423071475248222003639227040035015741063651509427514052993732192510673262298770037204925766674673860441665671995534285305082271726872103187161619484401381012196116609728145628393732425090009709626402612939101308698197278279706369910962170264484360529624168532079064104181596199821935043594888864897171057261224125822303061445015939940507418789734721108408393316924900600154452130623122133878501633888757478331588740489010038663690999001339931203955990241495686802108488587965618997022329328097399530622550074787223805251231870994377802962479888899460222351632513776528015142663892779106187052637780504907616189354894942671288174344432230285160250589090583485901422902768040180926816447837446334355142747498548861368117971711531282664447625270215817462795974838434202777414126545330149352904696418958907624022251211651868947772503327679241973398080959741261709669102429680367917925045531052056934407428378245050050806279947169324951411163393779200980723811915710274585592268949821164163576125601019869650006074417313390244911686777254896609337362281506411882211639805112330030969691026079917620834391006512375307533835850440271467185910488164540278742699520291181971440390262951969549216088178811490418544010505986990835379314411823331505857049779983259957645886950678670749979514713210518878977068870140994787273176912399525377983694739301119963568795400949796070727899307901791476921629262598147760951639963638626195477249856143049693357644760072775364946908331731870147270223238803882885079908513438391951794404126384062401579855028216792132119954005416427604417473422215714032368995266423785098037123394099337006164557269358521637439714576776909175963268742928325331620761953809090973909058534244115972026259099169329300579488515032608758550608241032211719109898218829129785991714564768724855687101623277952968265440647490986122069280228510129565924327443160710794573477588312348384521608472463871011748243438089508475433364040155377429866812832688946345617511526028972434394547021578845558922262836417049060105838117179100796687830538871599843028677395285081088835284561510813891517585378378002241800426535255600283486387810268042646835063464709161859820930138584270751502228573780758447489840134470196382558756570410987078530276475932531742213994228529492454723719495281226623118131318209408740729828408495325473185607647598494132868193313835174540272782955844255069262473755252217097494391190133431499265993385111076851977902188573816450825095146612937576435087578891313653842312962022642739188206187641396216114498955771702619536458402836003216236914520630205750638948624038082688038955903389283137136451166601441203750564453942420103943609330676334857252099233150480385058385226018008052809930238576491612683743437855038594930391679561644980272791871593774003251442944302957449867372441035214084490464568676189774901405603108994296363840521260280094420323973446354348378324492954859336586574227252736627494106491966274811344240117259072174896051707367701878741080942529610253260699531658123751468734771002121167554333062806232620909767306317950906982433758193372819672393771843044787222215146066756599852228753079678368035162987898797235269976559947567591048241706273157884819698292815513362407674811175276069787060574736859938284302854309130517395837391569923351521891770736174360123207471832044586008262765386606969628095920129936019750788156785729191420796356330553255668956356573921483481004796611303166215644024890893911824563373602332514119071615745994179940586472557731346506986244116691721077942012986737985356977266108901303942258169456715352455303337838993020216999220023805220116173692107841546944267648032483272350923820974243941580946859707231204862476641829611665461390017285709890429907176405023563103268576312637578809101059301512363886744769570395166763479826187640579770675645407727671835777966900067804371859571596301089626157438249335188532017747353070471572843840824988622724428037493980651845723080984471676229178867089278973322938183086598159238515418380264842936684296643113389753469280451175909285756747860869673153727443630748442069929318955538450592930949718980308676809656951614776864651197426490052594634323293182623748177106257600094704521967257520859687391540424098042825628395179442971591019320309972881339150832863861521093990833890775378730541055503481098356114307390648602763612777752537696545160655452827294744945391127576068023363418244840668119931193983710441299793503640733984785702412832429547854472651790989932498895579062006722284989177585871426035620313860882619705247271199960776592844573212147477568034152015935173582708794561941353398252604822962700740709968736187446714772508323083405417725529116979763458505475729469063950191699731674041397048599746573778518707369475296668520804331046541606862769547082122940470280893544021480791764869744127155441726122777700581918069249195787643782313258250918279575203730153929974890456738686974554813096125419965919329967235579146602924340336727755506352552923289863040190016827499585477642593320728307829930647780314981779207287949530784975926544552324251945601063042239019773164242121029743338822674455834424795310406236185654076864774273663736693514921717456107569277180279149219456307361143737441285134111850295378390178574655749749075919840066134553608749711235194459345920478271836282532467353124293938920759673931271771361729933706379327682813044995976248892566337290142721138385914929217184995799352294088050184367438355201942801520387449430301631521346831991544049717348806362305030341726371773271059515990905384936438321047210161189860663962653055143613207112406144170330557805179533553500527881323199777422858138034269289703888024070760406035416114822052569975764595517107560023766894485362919728994309072020132752666953185221704816069982925149368986046458942250062395763972747565784637830881698910924909806972535063640161626483300454472525427753718619571808306617591306300963956401346119499107805280363098730740399432927480086069030822964529587725262150305703071478793099220629996832507842403533960740286570379830316061742846089530422387273918879056209101664558886952313308135650560334818972411565735664790552098732710348022249463468843714535136456171693972886216598173265369603836379427738125343220310633845462461199742128831652770547048424864492941884299195423799932752734558127355394480336924074932787100671210024976702783808027527277533508421754443914931297217386927180438983093247231858946164906629799361775228691109698066439613661794050778969230335290662997817414272792143044801573047300450048506172922501374996457718593370853286755519299517484836149318346933687948351722704064672272654414122077522893241847719869911503874067296923551617698974205772131442763618622177009120931346784682845227630869451391182795618477917399568687208980089209818455776550086685961653748337081769165556833275568332296559966514166693336980731889826128643410167610945284854301723049425123457450587776622935138933537996282336901850254169913164897205019488276802421036489752658775911100056397402146282728671830214140362669398279257531446567423352374102361648238732743516763630646783954243917525314323931530318404009515859733703592443887105161790120196186295059501176017994149315979279828785257796677238564470607398043309301971787346071931878251375626872660714024400485531713470099253206105959235270004728262958655515095196792663482923020882139824304180262421837259463111310229938493714745018334014447750461364061477211835373760528114610457311856574396780689910168208971786962930922545397367335996667412667351393325489304244889882675453445918634476190199702487543841331461490251440065248004976467124534617004988376140203622028568574249255147871370212755442430746114442449752616001181990020152259871470690629597235097894781025949407459818453591945632175263908967597258431380096201919455475882277019951225551381323993362573724341297845917346642579811049059287413698027600879213426835226675363311323267130737650817747576451670507596923430255818086458715575469441201871221704470549835185256992549070489637154056679340640526273991127575719077475023135179116262572415016062646244068005556593077027974614139320102517414704450929253866786110882825290566518807705603404742061101267010355963724733172324124973701253736372304010755409534991852472412166043485948928094957391275109788183120833125867491167995345245665054801043627713154098741781946128423805519287326415546130868419782877945967277445111725939063091194972440584237967657846397711021216001153157899625861693018427981558073397625086720149195554252008496693390417294530148231993576472353177396523785384114764952615074396019840601292506875255000918948951456677902516419055786123164092915363253527671348665614770603228024107878484150604783560653739446422091296442189073950924258119581667556477445128922571993161844104766607236426645113360453611665868304824085969559516111987560778892564004598384756950283019710155396740600486898384769704082771865713657956355767045163218718321776749267631589664141252047758187142921674721455516471138317423385563424241310677108457094538019761192903960198601024357927688701832023423831221264514917419146873352604755463968816599414561509475108918266333636468017518024136598966608939038653107061103998470326140268862956893571509498788511550718067320419635629217527428993103426470568038470743612005171188668135554980924778725058954832497798425613296874909313183093991237626956442071392125634662753575051651476728941250555039885581232248772956913872788918781232600128467341976086833790019920675578459211959708292313640451050732519201818703120835006352550144343880913532644944946870563781896570436424043106670391478999154559228903069696332479725623611171807940142896575396966948334117765569999747953233240858927942358891234387310388425170427383276428925390218409381048785777531358640649786019318044917335146316636968856813360306813368571886915038411571108139991892605934384574335825346292387422102867953489726975075841841536317925221258935035275553113907015094306278397425448178251664672099246019603648107528695688042250044856372142636652587489458106268025762208338637758038399940250878269211079784447737059207822756714744613277508209865784486575009918200680689851850767970029521351817513329158559559067316209211663986950121210348992970751493112730777916962480810531051348098509764773425203209613488430689007771300083014569491974142274458416316474758099222823010276746966054816373032019041964917096288434732478144438296372622041453099794803271390847637882859273221046402194941182986444398009009145045024123760834463443668819450011598569459370711755714239997774643571816088540423579728780758766625893381227112775395770238168251388546191492208945641860559015724865618966420859826995773397916892043085023718969303851579030501546027689028738410203875361405692567849167721892696455651897963538044558384314062113493588648766998587501591674694491450763744139927696489652136218864898946648696481044357464226693826487717991765992042339142659149893033036266972410151700675755239270511416833373260994846366774122159530833175480263667659828228181676003992616109238584904942765940851734538317393424241938910112190461561867753647454349055620986411589745438189609806044219524722688139962930597388656356379772947614561863987782935518211513867026319448916441271990185013148159614175478940961780112811736474878171870734159760257238043908041746743607129379458139529762100633603206561731729476019940766492831726460413442864888409940561625996089241942319158405725301149469905058176210065365616724003263193979037589326644145379310420899528627023085629263419176023020732217428431135630581485522130094248989909510833941371633437251635984773567116979581286980571703566138234860215045487876358344339334850656219684888780317493789331817870134391103912905961302242121739190929805192420386233938443540792921686575386997611515076402265317990716698741790648987582560407331758085173657253377219660391755698669009725644640858130488070766682213870916418991304329113932819984129747548166588959500304060735355750285781932691263813288771919813324243837876286208611491436905899328421065127954841982674915085049322121055262935632477322686423975432434243754399963994857311442038892813114526682537751849995827963670959189259198342537533224567303327420988754853632082609210206266819364281248894526354237833183459959762056126841353989545662075684500686266574742211062238310422474391892431369288063208539595032682002731995963302878650447575806682973825029107889837318681076687357163335543757563942774872568628497401489577947436180438095221982849364500338290482311643812607294515657219739535183971455867803922487438259768907095364190567853764842351486768407693839394640020853165055892372682252435270072674416415682351870311629141879034857961418738913791247762592831364972890425083903528671205202007442061130261133468395687151905829714947216717472710102921573635026056812003622860354659281515577021165397821900024765141152918837057917612356704857836455934894781668108685520644338263035912340847272839976619256787908411675565380223884862648808653730074152630123619790187179160887457515526689714203124148798561055568884050609294652962650992182976518574886755482187659556180062157440064432875828510111154197245041599840862735810717490976581724529519214538618725121285556070425875711826943620521987278159278152232073637816461342596926824987460112941050356392837322444367934256121056573523613984615816896061419680839356394592352248454960927789802849877442825604696804663853128358877041426962258247404101766781706993312241144200548589397676635619760017692157368641480729029911684704676645071888233374046841068804863334096504186654714984883308613371544850329374687636777089650501581936906636836999474414918383998451392167806581364115695586540277872586708086590823704473700004237231445463059172444299950512485493163555984001226573058393059784391134043275683924206492490665993312376243458359487430178915733368364987840763283093602603310969065220493271792953639468565807301606386598000145146319625516560504783979795752201256963658908761315394503616823641792529575837217228605304413976919463451306925471820655700829514683251747612733306876844776269920618391522159973585616374079793482055448253959731688074089018954979453258476207871439056008052724175607977257742368047706136845919909774505617423749718933796732933173280015514415569852149743395368397284026676996178053263406847539271487475390896313286260136313400328677327993057984261240044579927669796755107268588105835222472011421708878997678051914025910444935059105901017822385029007660426697585795866541257352426027581655949253107901430707898693387669088473325511451138760170584178539470090782748387416031378668104284753087576958079321721383905714880314369543896985066253559061612395358849590304958305830972154514542900066579686510293440700092991733310004455030792517096672689406509345632837785963656264984299946867581984831652785931394126363724901020789271258871356471343582066601695688285775244935006928768263873360074144988824962034316271030965391260672542005882154307716011841910541166815709212376035241439858924968187142393732161801759533975405148694329257981466402167382737308228597783283129495020296666681805067247288534912005223985072669951101980964078573360697866520509332159063858341015827105470586085655213425056662904227762691404679801100416127259696087424128623076415119252462200712201021208123915417985329095787230339932342401092728258209873255017808322625238074930655954037307616480363723554132865402211626739606994365134095938461129046320213717640688276849742566400474330873157103873384772185030623099495309460408260367258208770578910778715780177482200126695669058981321722634236457834224531673102252614916261915436143165902641129745971780217205872253178308035213003026871568296479371236848641047550011051999119875252713751690827877164270170763605070884714468532475951483971177855641936066751780213918437055869617746008850352602867914079247377937536422055574603797923507116833743153456248797402535050332619548518459503893412161021203442018101557432804407113475764907185311846217242987047003190245406101237117947304887280464827471231626741156553228255744336730270812903880365298187590339874556258495801075273561881017980892822076798219925775903107671906356975094097972260337639578355992376384047869969971823910351012264616993031770666326604940718568288333548612120073655844921852936419956413928160101659344404395767153186973627147909098543831487864965774621727285769587392567390820926608227510196285417327813264526237861193807156037688870348861370323670353907768093462801333765693892772131644059875565958262677889613227577477693657908764742831309220968302470346515520500359746654492782423009863825667193899992479899381168370520363325506062775616345191820777498995900928156041824064374311596865479733615637250626094902599192654958415856088119429795088890591050848187092212727215269227201904009026590221446549482914461099663684256743903803906913954449473746725597580466677860528451088567864085568196250139088510068934186055130024436187236071858875295117599730042119822595135535936483591250122197345719758876178292914301561107574006648624452294543221065346298278163689430774041831141943014516499358441976173475375694738571153745261149291501054344059991090538597047286873706391673410141090049217486278091287711373162997538501924517583060091343745755708352558222047430269987841324558933176612288020408953545285445442358200725983181387655059388973595634367051723603309688283555267087988835632373373734799869167095491326238248501470367692956528429955500558575927087197966839200145483112257881444648837303273104822315206227836462630755100926905682476989869709028808495360106347850386902128640892434307768090764858115103214228543999615908607306518260080251393063483292065113798875673628088382451052651754484568649449261032950868417238417243161083811627564462810429392928002900533490031432007774844177296637438563632383607739117249752418480266098511548324748752409297127695471726426043236517337782916244757321490108049610659293930682857606987167095859912353800288733233904434814872008045160993873468267163360884610157469367822959075870353852479154968379976393797216290017844578892505030631100810739320661436762134149401440572923787435775865035610050539289435496549875744150820187673900748368104266854547287257148627172504880927896935185253246171433191170060475344231169961588738548871665269576986301328242482992276188418363949721777234034362278086915813511764028843926235978231073564035596184261214401764630440837992271700521452481957529852981748286042256124172563355393256113286666405922489486791672764187111478237645219703476849750007530897568145434480096322857992212803831645105531734643496749381145625752273716528426588324467766143503718230555404703325783629745257565121336080936202386990735422545753262078106568036703113487919672692181854609875718188179819930452113867623460289982049482363601718797476028600253268768722628662502285333983928521011696267233422678987162692968369169378133127473337787808271036890543833245747488416255881988994039940769912105785095875400167965158869174165959396877555565405826637721300976903705365629170096672573393255780793722323877538147876311258615133360409123138741720305124756193334958180804498015342046085998072646709292737614246741611733282349904740974594718493257820569721789644436142381875531689022551879701889842585265302503367554992254909154854843201308875297986147121581734108155183850215248756791950503584842511586081736344866847682251482690711665006416271148769473588562703606904361588293234051837348635952839851497714511966534009904413784101806338282713858826800544431310236696097051256754603021090642736990222061063256421460782884859950864997506544341582884042920432983683650192672711061568433710670661478992516358079637694621773939962632102875158992839985760500103583297020111069858271203857539791385354386459769817455454578644147935994429582993038506887203062022374147889871233861630797021230053102891662058869625384890662966842029476402209060462447744456433922656732493949968459783820343485180867230706551356085188911734153501201159229846320386393859671902459128209204000514293240194800647968916787315830240328435869923610457433637230628494755758336307489958646815531689011024953027892958522231739738479622365971146776248766798152791312988020593711529513139820296925128280846444352855166478163492769032056971998458621898469612429383801663055634709225147013502238405262027285793017079123585813890082246085148162234763186797057536624454226207178445312970559174846613277358817214273118168854371874106360093471405475142797797705814323891352689525858851903811603064523561674081949123680355506471455831743197786907721307196609314498162866087715917048034104887322941663887321729774938765436280414927896850338124278543395818851562413654963580870616168418872224567368956515449152048966848152123276312760247323972305780400257470916820962486532487880368522446418385407033150679514491085748401038299378754549305059187217807998667090554810182821982427609484268920279580668820173077701527555420305091567001772769048399386562434284984635769092588571286945416041572844358107476958980487083446560123483333134131090982370550761252574031853014221107178738518301022383252999678885826525134017601509393362122817379368986379400992179995389199850453517886192969222489029948345438680961242063727235165719618664030835181419851322730698170540593149026621818936359914939088138441089619723156876158247320221516698252801814413269905539455577452293188770763056079106870397414151991930725579170901950450068174732046405314410138712253947531418100819672601267883611519322573424271517357920800552932533981636708357158425099289175780002680303196639877778352119498191662538485653384838541645563024852800907880364404370375180652227858001377067598002104967553317741564062085989761689299262595612559217012016575434166262792784017061965152762907028082761169009632751527992675819026768358614698214869615458724227294062331129117093789148387603903718663928346378311749306977003884913876943690109336882642999120823831770286994139149146644333264638959396613826889240741486894074391806646365797528039993659612958663503938133246329391018297794767678570286696173698940294127517635466972935196964544908857342135563252368458769387737517414698512877077438058880248972256749779847141001566822052431444564148122800754055741197194254287398103149864044297917080394835036693165492569328052008118989541544440706781755550815408372344200162137640280419592384273770130466159205481054468790998696007979229803396069854408386835581526137065837874406580874274912201275141116174350891397695327289964163075884640856833051691985123153735601584596455431464189412976574091086446550271666382771817919873781138250052621251163646007913913428191921182402998128198344447292649378870621122527278321546724641897489380555429009589491519912947159669340157639368504847454918534763675591611763055092247063337714033100480016169718918143988390384992768854488783733849678006383361638378103162593298456865550285338358651595485649137619926058499392699383718713700895939201678749235327879233541883606311307634502503820469758097949640297282683197816080891327437287903750986302355802429652743276279267985601231277703910213462898050561554406911889424013813596874807017665578699383446875446864818472607809435160727357662984040378223754374232661662901258110645861452554817727959327053061836511537405077412034381766050304699478217774172795521168853453207446722282695539736589982892685347722170553878824714618260361893396574665955414839262125625506160999928620833799937449688241645730098103295074234116140753824085557503280729802019836352517550679482659379647080748386298451607512199621489187258397534481242261687737975357634310435380380489933279555578170567672488356261128638954193312703656959400674102147533147270680376465118454332380063898054338817797137393145231428365952225440840514936714639860578975259976879547473728939641380920068087949061276123170110397018678523425098732001144097723530498215226149430658298648273589600168176385155547335495563487795422697086619485002749293543093796225707865179580273084484340168986395261463118392984610414447523399288795397875125137072201669428900988695474195072203578513245853243370122605591455860573796121907268440058062679104440023321711689996101521260478633493385797228371081845379791986362936618515322294167009975637608802812620797940048741572268245363518957816693600881380341886843474448384964273724826499996336191686208179374672621217321147733449492557889034700601381085631818036656023089003726060729308807210240617100567132095944796009765706658584346908382657707151136123769212138197683721806529216680929628652873452129123596799854042425291467356024126627867075309431385168161962665196094663109874263545953889961907394782738302669776795903775656127432252769377188098813195262377333165741764270912596495674962733606315435686176726488439104133412958852838886380786084104493374089639920635893308620126316016822239014848310082481615450436097344083860783749419310729079436975749719858939394622788191315886648587334828798417922252775301948799835027922819761413715789356284167205816429538587095871265401221681656191510626521340919712529209916912995903444318209066658167409675879322193480287451170217406867116557309194909263493238100010219946696758707884568511935437773542091649969649040243932539799040542231011167081956244024585646179940386462020624289525666430503306425048326266428939526902865545326876497302213673856329005363837761130266161822875170059174893069083342224052229212739239789000629038597439953465362875255510877432574419791041371595456996404537079077611118930697084227059952746792141363721576616079223080203949380486320561936871217898428152390975118089912405134200422579472415660966652593454735697618279269477628834718442559487046673790532701465646782387533606546951901963259835531497411131847238183356168132608320800823894325797736436253444699981212951625980074583291044426401468368674741119472924030441122994169600727070040744664523171608745619541413274483577648122319543477278652415881342964490134905462766807707452789888309375454259224855639341636891078755735895393192948553430093996735162696498968307506133341327131922493732452948568271933011395966710764127182612105960592838381015713648385679070234009446999350398461528417201877102965950772467686308571432414243691381748623789377709854562083975010056189584613515251037115294079899434252056271287067326728322193708184267520389896408898291642711480880249086253553654426538602601999378019970457125480916948174087063667116469806190601877916639067106202137976787684112469499417987900466031611347167103686600913141821162227879240183343993308428289424035688262847533811566562051365815109567455129401438026018995429836565870549948074859370962969378597814937449011212452891479598103390200210933140865958717426228865670500660493515527332830200232597068083187182776222489188155854270117906042146696649709221990469882523388836385920410166697127443596898090676683427080418438687441054775255511654311016383086532715944454093882808533269285838669620744887467449983932723694997437593856602245954698027111412190221300794903120451091875780578944109122264397150804753575433459117952475484531613362568762812047396852742889848901215048112479013161496754115847480966311545912259331494250424168933449449640289988554206888244192500173062473372962164785194060903706319658014500682556697166562194851802651121078452619716367171230676580646988736310613076793970255808121149681494380169217589461886358766883598794180189919820618126707428166609908883802382364857055140141752111875372970465828741958198155006910619590953424187913202351053610947431995389486810574859181541599826885199210689115730396059686242765852307422149908229053009831672930060599715102692871887718416009187658787824518323197378001689803258543848098769596999611190812407993205546788656659348949380112472589501344960437367606793853730657849253066452029633047445109261456012346168653884806204789136106367047610533492410637354886773896327972324824145226037730610730088912674900967429798165447769789892335502857564280261848472331946286926168607845631354631564921005617753936686303252747947907018189646956097676956511454654611483607448887946641796389611075004669457481179763207796171500697566377158026235401287694393877007178030418219442946128654687600403010053240589689341877663261839127518769242997809834772425299475086750682054990946996118454530183254266438171892909572628633076964160886950480757095314154829272184643391608849192664341842242989752394962386603398315956485728079761516135649904213574410490190217269396457814870453655457735555687421807927183384312388314469928527865757707072961773606345592113591218352073453639621614970108975880498155170400877893315173842406701330628221389016145458311884839822632119128411805370204618517125507672190963206298257478525648403421460509223495370347615029560604557706577656002357984222367540381526212723573470425347983108410371441368761631396935160551770769296865647251280818091125628330310967426001377637267600013501044157599967790863167929333706856303539771566704615406691325899292836702570136091104210844741441888123530139180865699329696704027816405119488188285946436859782928738327266565523180431842235533414934279528635664110285225052553385239979802523259885035861486627829623726017818808596229436153194568309794385164068269615346714382392634223338426856040746367397309847563031328557953692053322882236142672156197043467259868587152899755924929326980684160067851770484535574843546603425155083565930557191124560808945139973128394051038513886357017146250687797997049295453677736469064245106582564779100465190178328210258175211668299455475075216295958359130045533713573117100798611562480789171654833693255398485629241679297222862429850498128507181398640280944358514243674544198620671226766489751835142243151619363405113394090589293427187738338143291027628114931177019704855109270792957264899426495692847974162434408315054812176106913233351506922690404719582265194454413272702972864134746700204015629519370030503619410171046624589038761354618566487898434595836830805110711269103237702992970781270376050871695703321307704443571426661340036302923030238447504976122999738100031415250523693011114457789455229928783880864567737501575076576611367789177345452607623755092637797660341140792400487251024249418987339500751742371815238633347795406565993608255258005219434583920238658799287244197310398968200979584869263692349709269191627686985156672793012675515871434953981491988452881200901214756472133623930461330543380377345414574637948146203462211648815977394573587017122909399555314018897614283284913207297577393385060903108717118367759218842326650513067712184409463550546965403599559748346510370520196786229944022654170757903702965149755172441738788449772017961633794594512934468374201584647997687025699106262338967055236897350120933527163864738248832151806113758346501100163067737008794279930143431025476040279660366307431353967069090166398804046523917616212682203891767867766065555817355970959366720186908539405281373303142000561635292156815895341766504349106050988350613987854745589763900309691876077929829690275568361546991638453234009465327438146904880925585134830746161531927622091904276938511699199816701995016943531284683527254879596989789333684649616291448043679639219861022951834454470397654073868541325330073645139974733229255849741566390111527857986179610820684559604489922678523842426163265090373745277281771794331602022066509395282132781449791351451708243898528488735823204170628542848416918992781810469578444411312270340104136882747694129710374405006159548032577433646571749937157614921342849414282332230563001661126915054255838136454653466715296707529948307584600750433403426092998417421489826013673883673430151150650013835942327375083834258159868781951200647994819671417237967071844266231671467796859227604662973940935952409154576935131032182111797869829020112857561833295324166131806897740600347336095302803220697997653898886511169526145264971560946775196169185809010026880987355387877074958938745879623635967852822009477673194060761995825520698717011291546925034053688027153889285547350894886320186618055645234241024569516578873795334937496856315618522032730054635097314631085814990139510352031928911946010574965183472510817966169249346759205638821279039769776138974380475374582935864655635550222576004001408989826728701980291326878900155191866199295197941026277007809273150215950119211460212054551539990808273862526393885393295938440981072207323401185036508542900764544913267881109391827463667745084161846383421769283667292492058435656394282771992827861924857243370970034861509069921621026234720430838438221228313034325305394200868739981601574538386823624394103609794810795374404511732179048927786212544372377204125729056451011750987083399259272667195838675080796669516946475361931388080558988220785991962433738462516797264615599050840731880618898027416664885844226029778263588959027223150259963010005419755571249404639517344652181539464289201320050406349222909294018525498409480494335001445412137157776940159460815349462302040776468812302042680860128931857747019233211652598509282430505280052586541553065255596659753295848753974000485999870342397044710152648602903316039740341593708567336016494292294713703131710484570826390381860483788667099125724009404619307134184695728127263079352774209795589703221796184156763298808953518878513044479940596055636605769596926292028396922444561409217777494658047931913601466458375634599108656818145932014292015412088390605656902488451564426391475364443157456175044170672385969257874981285788689452127513442973993262212415270457881992019788277577994787492096479991411623924216269868901554739759599016380528001876798768783541122842072763498862773759501413859039560818464733005703588943573746639320327030488135445828476946082984469604923086080011363802087995510739757593267128747075313888795048011630026191067805067095856624174920930602638520910523641091370340007267432346565024366714921100440299420033491923660027387750169891391741839789088984156996221913305507089825864070659897262693204491893336122948891854941322682487794580896932292125761081386497600810468929944666630252513010673618986868297714600334131496116925322273795661834865253333176383616396129690289905952006004087203168887650473165287563787090241090403390532328877793593316006225277631564831570815146569190672664218914956312516158326991822765119563077726433500683868759506532104883549306438194936028305951593089711357732621419976226959274310855528432520457052978745969459220405735884154163360166569236156564602402681871062152468276214640876290280011146041474134293171306494386997970783911260622005395745040144437283659844858194591997645175778107369370327946822435425838872948296999035856732543319000264432680745150122313160398990799559916082064544435175072220093989574514507938984614779049137551415114051020672360203643739491311856331530245840156916641260638544454807518346361142048655399837508564943381628945581860196282578066045940260644397203798685024245628220460708777439250037710723366326158748938332746975311447614682409553699829336775023890905902758784841068362819958286476452059032936443482157281276525400093966745556827839435869650678105180650335339580073153703028948783954372331864499620966105574025008627200775224226542899605285141755154502890202005656850295098769437509420078607119663624425588387822616656094252972286042303465286752494595081555427839408976115556744688920656232376470641542257375651797596280225636026276463442856601559090723038847125979282686860263302980778932434479883037507422546210681401499405167074012231798393969109730831510287118401431906234728354320731732695289034889601575248204051550952194102279089481751701488794004174036271759014432187907142544538329374788906054631200474641179854608650922147898778669683868078266413146847692467493902989601231220523268203986118105580616671170618700798848077971457013298456598666311671990770472175394279305357074484019843641573819067976275882862744533049930128152180788286121980677727294953632354931397483297068626658671912317749501008451999457845617019573860959727693793887721296696782737400476479303775666910178270713202340337031292900867777273653301769233163923487782083608832305275269035766795905073996424215217144562885815737631189399288777575591698714072112777599773414863408935848225760798638502999439049368994597160303565384953738012333252482421713825098790353813524960375394331783607944100609750600979693026253832288721845966594589375011565420491454666433378792796043872551710014031240933029562329902304773656899581893324465987067876714176585813494192163760120336086659842892758395377090661433785749264665402587362963054585952288136873259251064110085164308890381533070651605786985078883376032412884047748151905901675415099513480401731651722150209647539843323582414636499697094820814114723466903417059571772955072654290292944060527468121854831133299661032201088092450427664899160646831142009163054570954574947383334620175802181289872503170667556435537672039408491751812220535688221177040904180822975431757839111178470740276530002772129217043575100580515542898317517838818611321097169626060661979333908589854417674645656505570746928336744200153081842596202724595119406706418499159267952331702164368691454800712469179800546660412128433694429062369864399136750930150917153686848557060232098889638433947246469150136423968022562448767288196786048629213054005908753099411296417224415199080539659538398706058431738248972443381732231511005238639280879452465686493803787450439954026833564401952650842337334659872273328679499063481311031531055777644265674544380908997032171533265265002902781152641942149966781449421862876724305146784994610294226763362601173027983206561052941235992261530328681977523472797414388747862151918276300561703455726002605143297599922820607251924811461539920530501166137491796868359887916188312377069766384239620510523963686548742069012263677304970646807618935105521210593244911423934111870836971165232344881124720074258817463457312071578207123331179920912380088821442607521594991471311439501956492470350851451065727486578534957293125814277401082369933976984480665764904702465587643516093665419932693936859023907008578766002736573174699438951725956435438336094181970313431373760931118059156514858914623203176392943505254219134194845318214549762044070239779180826224796108404362436411478472826900844872557643698704871864773472141306088780809507501790979571083623077777283975139682096413798525551000146159697046399083941674400634774432566482515691676658388182469587506357426670999241531305129530374676850924194389393730269848514547672814707848988992136445552461382542908111292698187911252532881399894496067165493652367581792134305766379327647987053322086014930035120013251707854190069045218564750516975282749012624823472985991108456398707491621235023856855787344800889831687146932390064090719604081586816089253396593065223025092236449311811339707083191989907408332761685089877673162637056533833846746442031808282496193664373553012021155926827850306728540066562497496307055139047401313942357965684860944284880455267306797590793913937876646430186869482703369200018422533912706499701589775798077994652198040896070507129773731567610877149763396617293202141390787530137669423229734171348777597026144696938373712274012987507064872230964466750392266766278133124662125367688124285377496418074903861811767192579454123117365326840836565735380426549612752037064259589533678390812502436642623200122321340633502556425604841098176451668779528553097062359386040340101119765120129554275600639467439176554111706319530411795754499128150651621348914768978318303418609499111984665026173400324195948638883462258253722150339818871963749187353506279171901940450092634038951281155937065845860105170309262109704448438238365729413140088257394693470202366236070353058248704316702203382311059363522132389691900855182023486835490197178343354542455959717308990641969650408768690656311863956739775347043128565768086484596885312311405595875388021004434987214063720232122799832861313479622262236166005087354447208661825212019441064835034788815407875810899272816927774015341728201344396888208162642627621071637999929016509072267897811688818981503818445969071507378132323228793087307852179071343552823045379652362582930748711320002900478873357161809136173199903999886627395096561253528676567080129727050080023673814307666259318233318682392988237236791802938577975030293017163059705738974233728682272012513361661616729077619132395853284207387682627566913002964917165149760238172279968682788851906653166512755392816168439519940678513919600039375452759521361787817462721206661878695179694991948193794053516482493208258820170119776340905199914886868382317987342474060728628095149548841788814556702005926310593574943484600450559558709791680784121526756991741250119416692768273631798254519338207138659901325428997290870095797416302706137192065835410080641587834084886791849192110482359552087280998916869100851665163306107310688323626652902571255010837835955229867111805625707529340560656731576473759807585462898260632075248630568920115331595153880361824057910574870045032239118312837419480264885148348112293121324647418997056878819719481974182671022611433643895357109393412766274873611076653143521941463996496171635196812000042758670588062450634342629127674725325646128388106902366293371387968755459095163481172467124843722184776820071258263037314190150823124850829292423245504116655135788092885658639272537230634138970109697973065470292081776828080293934751281269535886575821085212007047320827730831337533623962192088218324875361003949653461726281797922886546863738973333184492759242535826630905718180403197244207705622164514989409307243041134696141975751944303462968342879275951855694474234399569713877180700764017312585581169919610209904175785843983332419727945917713579132182388577959922644801912531894825162899229341757177554168440459887110004788182284857900455501603352598946977005887136789774016623579473825923449048631774239563757874787923155618169454284539613040109118999927769039805371661896876953006940361355701638520286606563712322860757677381886332515667975724058730851885154419815525452710839516363007928496229441442955543000520840042083789967389700640686295328795208350140982381120910680499822558595587954406602129190156743642045923589936857295174499841900220889917495727079339550002771325168065370604928781745623287197235300612590358475260753441184228994055593300227891263041252693778974576121048067927917819707462171112029415825416546818232176697449497937107964098788366515442854629891915525864213920462665249636765908178401541971312887770883651075472085552245220467513326724621820673058114231073415317219247161583244779377450503308568181021442574180322647978582311932382136333030731988514542417955658022906972238844864779205383701357414929059639109774145388174015859680625561292893271591876540762384197078046385710945764547287617756946737381009750259822661987335576678502546316227624822556456514103838834776210643875484923690451625396862454142373945167683017491936587162535102278403830019602203024416658118617783350886510760218550317521216878477451982428557901807762926600763794412946460108593336275619072484398628278390282362147744064791174180277679483874900284062264216410614901819176760991440951891986923257618361632312693637804311109731230345961617689021969400651728226897654185140678565062827253143394242641745671206100300956260602589091630352491011392831459824581995593406838701152368528232566709048825125572190528533423339030325853578569786369262143655307041182743880217633325410377289570549236665604021995760989316030145357004756350210308700653260711035622013772386012112703034520444517186292228639682494570191645465299338333789191120980553400011111101867182680094975173347965690917954091243579929950307344339064402266163647134865314309128926155285721388692969437970255810837421053849664328251135317784636329149047907647100791867780617469507594969225691473866516765292475155552380404275997691321108638735640666387473870545159355820646151245108805113830518667650994875553167784611671670700189270209392062292081309923348374487526676188418730689581498812241753917499796061856877193894043661097715706897560755550090387348704847538417038007974218010559187569046605330034529712063200374065796716656056975214284255729789398631463508233158490792892307891722135079210681483024327980673460040785808720760983340737042113853915002183541923049714730994542177714095714636837175985551907005106223578141402663079866057326709508211788243104045029475774183653592694985645199062786459367928392860937200390526219243108862319035965251432927497995095672772459873302984856432514924678552327627049994187387162716561251241178760333772851347110947410078799359060294979085026241644066663306920528638191760823201821052422682394298532252505196955199883903807853921849342023495447446744763861912722098088421136555367283256319656366473974482943889523800418169010769510014109012744177207661390231280747205930382012418495915158218233619706494807565572774946760974759329068584060528440420691325024972576810922671719856185642930337125695974767748943675677782098152545977223698013485901699720701363894985589833483536368791026477229232444057245141754108250211195132395608536628998797581997135708960689943935027809526200317591726712130140482859582455326076988711483925521465383923075726270972272794450818020650826547582838525118406672663789530468072078285420648126923814952874476743288815210537475156246303183616255792631468998718324008921652805085476312636741029028796305618237870939887691802574454326635660881733145336093867637692123045841547857258973265500428515133360513000643683611090416437105680386096940567680578808168917141797731603400658360081788350550013742496289049709360153660377016119481442669218074561124732153554386616465786720929362504128138853543349340740478997205575207959065944602924939094966673021004009299412182029243989401250758367691573042808625570987626384786074610869963969725668537632041679936686942163602819258588985249726995000384464990963223710243033088213317231819203841834522907843810398696817826088639188317183891391269992837113446898068134290246190964832324670748363210738197079696446279987817291550795831196995528910457593722281415649147214948557871464487722064963571475750685700867174107261960890394622276978863445118140220114235753195417048934788113580746807277612484939555442561108946831844937171451570641800591599330815022968738471369923408654228809763310223589577904882490523173631400978118123784981974620528476591616617268695195048505114342587396802989019745029670352429898892783632177837967826787873849320040985066552587362320021964845162665259711226563807903744020387549555419174195200419157336709304583339500259387691422157664004418577514646647800336696212771948040366141050297853083354283075410710921825697720647277227070719786168930824237104725449240116946160140712512559538578945788879283123007007899303013326684671537637902462465264551019434935859363592917535260306210244161892057934279279311763363065728212775721751897191466582881028971338588781067074612587901317374591660085093971164922408202218167644221289860903927521003203688458115252762701456361254688452824305607994313463406306962623820334811832626208341740013890609680112177074733990323418275239825782125945287530404818446700996165760927010361886970649217807082094248748314298819894442576683554514358140254702693721938337142706691232967324397215367113990649121105094276683805047734675964129593517079331739580737295083253293043760258756163460268382488124156933987584901818320020543257820956669160851130629168138361675419134877154713393020832180940407833762721344874036809089639465964824643234866305949105160749381732337910704768972655397452937417177781644813427932229078887279623357572687261364024224760244301921833840742337937588064379779388611270053615932788819346635092878782604256637456277600810395247335298392977978031030921810491386326648786323708614927485331914015819594402756742990299227449733863925890698220227057419084640485849311839015234380708381965611504927848220361926974104850345375951477425312608763306715865470018967681449040617200049367696790233908505266176420577363825084468190384664778824388284596285431407172067610840273894067616243135867990801347594661176041744582292576488490143847195791603633303324684500384204583510872882538529550103826454295869367224505378378726228609782310329454389505752044850770623444550511031524666308805448244049883490228928321290346974533695472416706022123140267645305084384089715757790789989771842620491402154576975769225340217170037484499165423849621391195980602874955153325071467131550508810452921604779485367270043840432168235601503555968922005827514753757027596073677130341660990589891740157996013077305610742777840957173361011346611799017119007225801100374311607318578235434015424437230696420490564846919939743674287243181308002623684233317122706776148161060763013177299691574112407676975020442998044769877436544760098918041139147022729164584845027514017313292440389265663724984848743318731893507706244563147836071500133752984475620202053895124367041059507959062695586017544992527713608932117330422456426993881923703550137383165051703638305873564149254238727669380515062472020098625452957072860968142751111558633870387106713466144580853305011442665791614959555846632591540815186743069787398631986828800189045931155417398658684819107615393735658437138955662158355054849260479718815922416816469612012765939331602195913759570352544595714476597526624163463833400591952830530436791876561205043762327104762763201220098125437204998019935762985657602326076241028414148854993903179702184996307614015016907580819966256938528546878513586450623968837255176987663899509371407907096371842559307300138464312961423898378179391302293589039067892796459162402606399410253184091534061727701599749272273829650810726767711536872711440333505991411531847035769022039297774447709038453595133719813044967373811129245863017569000041720521153927607287218426502289442101185931840085605556532447637112755896252363973538340924646385597653091789646424270011018681706423648614651368702470162175144128044087209757280153986661624761603616423207572795170162951396235496699526749341577361520456808400237991521963741535215225161738623464942997699462042052748471381546118977590719538709314698349447845549216590994893248373000734165332588998410811185281758522010468362758635977529249527597740467037961736702308892214021706309291097461841533623578381466742334829971357992323618829236288319678851998805077323404236097709947128703900706654832732289697430191909657093030121991161649666594674112883344862460248381584881430458879270707638467014622535052971029181099160641337566612296704818203199774375682586716021100631087714066811883816357278226600730437037289815839088539609583067897894790786628795306028317030395682647787814355180744611035822175245382190737536717596928021848092680453508087957332030002401724251632871334995282383308053514454009827941414854710616199312279603495651219482956733287062231886789882358886739826727725602733834356512203078882640222109665841806323322843704141480171449041609383372764828136377551205010108011366441283751253811448287701750605733673368764602948888055552167103265167558408080049082339690688515724660519668780564190627907535636229359499114033209528628714548835484157447022941845348765842483050874500899849222327376437802774637452870718809350185300382635797119986961403157818055284971934783866360104109032037897890568300594866510824838728353966398801053596175594372320060989625295891908499033519287464407472458205741435527375826013376011434868894477392395305034173775291335775160068419717564608940891663845960098132604297189327295900596808802640191128645371720826653470641935758007807391598437274823723475074113831443852552114725436436249600317819698553029345133048339367105546619149695074860835472981927091693766352608510411139117952570909065082623603012893609746526626790163093855883499476799774516155771604546277332857315900283844388902735504438885053506038762956824297083784609631845019285249053763316693202022372932770437566730361505398804640746313095523377842879889074436398511287893003042390046854093348023025204719063232538748362163165777420642835541746481263491195209134273572906307904917455449136817709942968996711844146905629462665858913240294913127718758776035207838220708330867779022168194585492943063090850124555115453287787359464999209278740387076452980542171184462348526248049462039688390235196272774105497192955834863069194497946970776945709581107249018143825114492811827130956771437761779154737815516504866305048781577102501124385612569182273914747014395243322185885370695451637945195384141702986436108385903634188797722415192432505768593207867703107784978377591488536222008568412743392561231113178160330166933796889201260483220394340928983327455757860137665895766093457709577225312670104494686438676840877252040412205705546886609584322320931082103483539444801103300363181070757845492752222013591983720595657716889650379744388309350361494233741362975090337685423501828812877441899411333355349999060233227248848339012763580268548730431342270716780304166829418170191616029305171221764642904344276542438928602100080220901345360211911673745560915170738815938744730431435429513683429619314531684114831243764547445440374923790874690077210400603491982864996496751692757956303076998573083622220366996629865852939747350310845496695357347677603551783364046754349861026620942702988610177423155221033668312253184927478159430731011100265367240074733970135620491009327959052054592473676464660444592390722908846082478823576796868182699211100754773619238807943788977927533081645658461832703607842938861102731281451474466655635772998914941896012692262384588526874670287198487028255425311604890164069248712617262284649648620501913341077127051940162758778401095388220677412989468283700754323896322212402447411698843230626980320551464228279897563807307219994116618407872641163592864338919528471850583633383319841854983745048779826965034016912820824575742454699000601888008834369831051700838319861635334372578751281449956727739580306732456673538547418419655579230680171214679404344159549580182804592485494994225041157830926551261961809862020020641020296294224778893516814965666810884126413490249752240536930305936034127931378814206121232179458053116910178387386864468878648612755915761286359039552842754615088804747865551327537279161009353657045171889074945243842768959038743044556239089834890658640609769446119544484088611221889318207174770800718382499129332354752307530131180594621514136886661795528009825605590190698880886039703127897803631750472689761375356363252397469172147303819810572344163998866722284268979576404483157741881081525793056399679535526093812833557754070085473457588278494425617848014651130783078435309536536916556471398213557870650570791752914404363193730333953432117309344179209227379617538597238000826292045811861187296771091271730220012861047238751726215251220350821595649878475250609644246367139632812210334586592278459132476992358156306053057623199436695394910244776576241778858250677064747577015816438156171887647911740902217933899977465162613225524537915380362797764510968005078056782733306365226522950865891094725538128826317582149059293919666312709788247136735701991973924497556766261215534774210503390775357225003744523158368418280259769922430028607739096085195813461392998074697037466753594298973244691861160005774873591846033485931093555857237517150689506463514442287674588821316797929845944465773040799411453843558548990337407897772341195451124435360100304627646599509798042418949374214964718772661897068718649380710480846517117496653832515289483221816549238465124434801951947347426275766920885364252836103698073812903399951586824780495237940427428378351958000153264817718829685614768821354604277866553540590928433131309266795859390321372156344300664127623976324221443582941963675211424335864318324277759777425930466155765155920182347980590209142115023285924981324506724677687261646079558757173168233289462204765035204233315007027469008745845916225314937333230086977794898858741697830454032075710644959988372628607643006000609550690785362316366258558560395023713351032111937281311660474837014013927185032540849906245127981768458995846967478061645101080594652942565119758343467064490287444924143847530831073260620589942390467157445307717017094680887620510758650744361542673750041380953132251662915489765173879495863291357308405855679238999735667923495874393611515817742283340709455216927680324823509036439417861872803292254772117240367967536995665602467480546836184182164420784464491926221987072420667983998814046199240217356949330243218518125668520138603758816216363790551418174586611559870934180188344611285253766723696879431889951662788209714340190005933610979960253381456392672177508499310006883097684985118508524400366165713983181530820135956045948978662587931352402729546758040213590465386413698857640862773473723558184644166078731473954622578844634219947969156845049334886258192356117550719230718758598125685705635318890115631236933541009663338410910943949444912172058049144674861277316463935596590957380523770391510547432355011930109961295678946776973997348409693786505907704486850728940153480483689364042704060290602835764654517538979969837050885444537800111939609832577488671093144182391064401485563087273851545502387084425877806149440476622322867451059498220103128497511661264400814064163497659320085109465539760548880222028276172367437077715478704991176150123001347041025767365278456035144397556973996301050011076027469106950043250524341442025079532323733378146708402510090715823472525316414821655641097868302095963702076574834217737984563617512251590642214909395837065187186966592067392676321193570912889431264540817766775834946730435128847691832156876254145080822671857533182631075314683279215830139343537131484244567165419519042649066635765061604151285222700247243545092355284405322053452101100780668883276772367970265915062476399570932016400000680560981748935745257070943472309423471614711340581101560388736277531874756252659153351831064530581119607643304449886257646243440014870399610056533267851100514602434388097721154630751869827558963802310655945989189673139245320511045228053275938244431583813043921022627630998427585621789973074366934615041735218121239648429733246084424674374404391012490010778655428758736518221833914780425680246202336140521857275025267643928959824123981416207065881217049737525160870701467864587220547311121115733409584849464557552459436846460862426837808026152006317150067496773184107409434186513714248901563730632803615139640619583077333324143779554573832912807960551087271094419687775433846359147569304428288055251222774776536447274705404780018776534519386334500075087182779457739021881507235646648647475737514218207127995040298592838086040008672675910153971236935988820140809348443791580586501923174173633313534402138575596319389181258661307130695266197614965746129799313584688477033218002892320538568099449405030565627480424986306807222233812025921494236722970905408322501783248681662649826692461004828264132938976508085595353267339559173196293613720559571911926462800285618432092652008421651229677818238145813876139177843600561792110955989593777537947549950697910512001742398163946057781071255324752453656448179277688854886901198566710011502966255640097700457304691680080676930315036904406778080166566147269680668390581127772189865597744191898523988839340183456093763757632643131367836731780669113728298384635372490635181897631773916854952508928533149235033560150585838892367256856193226964565294956341910813015273511042913491975258488083672096291366879587171763879572168341074544658705769942972307436289602961603757039381779246090715621014314842978577502234725059853378427158113745542932061267593095376152481078523666452342512819581185544077833054618942767432345313495360956897819405249760257313412346066783329477780551558998512956586767704078112247535236119221192408984539338777318671313415853211393215301416941122517368307238956760073355205376996680493452877212155834476693622881842551769563690967821554264769390301619160656674014445377330268343909402584037531078935820666629132114548799250533489119432105736905375701176905259990286369203739703732871283385625867702312559636463343344264706276418693643013699678457908854008227965675073800021249084522507203771680528573278644773487319905354734929561264081658569073104538843080085483073369596994074925324340459527499781842754571521438292107299987567732955058930581377113438027991198498640979595638924205676129204859994808408356533003465635101974979740079160824136176226315301602953644863481965425624965359529436753589922880475769007046126582145241566930853962146198195018957840631183567993166325512525009488318557822475895197249745430430025032545363690750986100139546672449812178790589872871408061836686584319957667270855732457555414489059781713946731618884718810349025105609100347300219923658522360279221969545341270734190699190292758813771430176434640311404989828658596854613565491243308112979266601835244050523469713494310762034100927216789813649405643083749592823446696106747004751167650123173794145616338480337975933234903684167559528442940496190898839018858437006934766168812422374852172822107473328761691150669502727751183187456028454581011023191091048212637342239120173828414673775295890962142770106184075091010552695504323908242087583578565494154917690395115656890121584768299135244977446212530546826418997413935617007196610974537164008544248628454035518950871724312692605982455577626475666899082258818197762283824746657579374079265306512312439696458802559717064444941409253062010086411110999087016808864294564178096828129176178560850438291245767237275619151129483809040448912456400089574289216083779367729472030356709276845406511468345904515959989318772307832972307709317456020903280002818244489273144693131185162395531460513114041978816560777417813145855760566565981666968815068976676990745634914317234064087890636338545683651669797743351130285393561104136929386930517433820504852749089129435036524772674180171092998605687030758998664515687603478229808926227701177247321097313037163054518489636664242041000928672119717595389894741353729834136846618839742834228398162181340555977025777429305725439127226045953822838039214497132877658056452884420154486515899672487777626270635488632724761158940488521322367396986340726106634708894534098883978606202550605674092358053800786978841922940294823641504902444907127832278076942125295776680521708862414487785639886090140385181638343399776695160838180922675716444258346539462690614945933276790935081635111253284392034796614421839841546962235209768623635188630659800717460440793413315530676491612997007610053957741553369171888078208198291868744869861049389121450561083859818150304966533102941230496207069084588224995142759735113887359683204980519223552224244375145587218322013327656960604310550373166599362687749711290860835705479222094107312880233823734655200167160409741261687579158095150760185159408253841657258356056169131242561811295141230484927607347728983756940475464515227063403936664589174340811249511970311681491891980963044290039345805963739964760218924967809597423876526242189138700482718787314646435854417185717405089814168548122782167706326618700917103579456940975326660355695226142445929845725701242768375410688806568941972957333012290175953546501227484264988741786108354147456458149648397234768568438401015459294289115773748215058641900470061115713702121702567576068647141948204571290959577230587412531220064017426995949649683025743364846070845164797397294933483132625118630032288425807111048898168382588151944847699334274135778711823723081835405877374164803668844006552818807134074383618330921867473291016922191573857796086587649924424940234064463189288644960668319559353220536517912376949320474460303962970436328056633126557299280263880600454487954475556080780649119341002558084536490808994640459049869673289460916130844534392565916473949990288607788823752545796991466611109898346010580348793987889766896299712383166390755876207439334980854264945222183464520134783418683446967495185656691576572661450296088158271199575057865899555119096995644044330422178520006635388167928942579802548391483235384645857112797365739636125342590441279978163789066298120367133502969259003659014575012101811275320441734419530390545776928267822749586132607640583019754831101649513983187936844010460773617799600508279590390491551302423177153890154058521322780626959867441317418598047801766411405810816445730772019408597490909588717018843446741163088500824966331914226875095640403516383767591960837564178155132261811482522823434856372183247603167303513586602282028439484371240357289642802899771804985785181507561086362222652730989064687159485637601763748695243341480065213552033228427805722012036285921912869525399530614374148822307672866071116066920166757254898740161588162451432546594686175865067982791502337056487905745302786618705885974728028431983891821324347442878347764940366958930533397754016283814940847928631888737641597691313907230379023830468851656092543317884731661946175544473716744911077123255885315117972460189740528722168568961388499701646353168020730015147275428215226636235928691335327023046404196744451150911929497527203190509779917407799397063070512523010829272100675120097821294054776782422875161987053929472288938763130211602743182710526698175378563845600423955937016501068505100742191891119627870118040594104004239659253753817331919039090589478859167450017663937139431497464209130256995587527122103983194432718155017302863199103103464780470801491447202671079924342219151237717519088238176539695581525896753060458871333377085167206142251167426856130661873053569059121563614032987584113369660899594869488960977779459559430491385570034569508023472568288332617218478466027489837016474148797920549246953731197464786847941377164980772694740433288674408495549723284766503556763731212659250689674964521408493888434559709223936482683275191103956885213454038452784316253384418859471116299664988763892795196045675433337361180478450256168012046160932176764122552707234454721888740891857398151806564566884974404875150750852430614700690139161425381132041910784725027294595208417347705751082000927049496126205119101480480767198208400233980907655589284251099656599557709482634831176988569941259097120048433233882560854458696168781907929893184391541571252435757817933520537917584752509602793581010066193460996985097788608398383474815427522863732468825601970707739621554798193116493863142070295676793220957405380662711445264759842228681211879039080719401312346855438174450192542187082107398871505440100226380797778710760252865899879261015496526574933979788245972031786047236946363550178062145789380652056604395950884963659058973592547105680421202898794091585413900814099383937980694177028311471741861730003937823658652266677084058895608434483738523219975744761310099792832005879577837534961228364257502508278512243690984113748874636840246715141960704066098027712341119656970478448387292373707606269231560406060153104797910638969824808572500452275710425327387751142143945384453234421773816825703257792401676615974208972495426900406967511137606452038372225744815596488662146412404379411388152396706839405555846113658999392569228389446274797960134148607023563429486536223252921017569124685724274915376697149076846000797043605827975139924540437231662425333777365694474835510239508075807613907737453137904211042184951700922655821235062869780637419485822714319660218366898809924592790829920425731026718561329310780818074282444791971595058649937528213082875257586211265570424527522646118049325202523282670025374534614977847638883259034253051343297811697006056834783798773161874795964910442655429050366422449140964502836130892251797147670040880796346909273698403272575406945677083399537825919619281747576561202319950635761283579042662849785537189974962735894238645123331714716493015962805330147164429072771180376208444330772039574487139020913780731481494117896351062491719079827977884459676088748800770724696662343055220170611519247218369296841087399783822219147410011823337450781787911310407781069286048290434956738264554541973789112544677252341406000969005205921588453892005129577032726345147546311290325142450594321439482444920359930433812363239252283623431494303067594341797844721617798373648482130248713489010583322479415264304149057292925278042542136364828942533135849778430151720396441858701244317069552798050061628775990472922020667330296212977676045860005076673261127198928202186481314792899826947574695881595563739948111279848045817913334486659199552153795159059938717576699881133189491835626781874621102322206265339425702237238905249179559247125255324373111441998852791637483768640402350644214466786317527264090327457281906403512898181374807374652896838985527320191141473392410260400314005772272942344508820527624895642411477322422625547041798533175866641274109207019329558810461593836899131301398917676094074014734000784650856649845274583958059752877001271326542997503640741407845652070507968844529916806237922390406125123670834710304726535146021050897149512829656789960069841366450746297886599754412363299449553644497459780622541381426867627193978872431354913786181435078061465597807463547822805853640695136327720292714007973141565133028052669484784372224989270279345674153112079547162171311047116138240976349927867507534564104381606885902935497990245970955702948070766891175132331974219112594952507700702296573747285521327103931164949170309890543015897241022670095660495348234015941519287006419904064579803114634625210749230977388794852149108867088885392712116437043636359269697675874244611674368743605051150826295765224850199725756435357191577997349708624470592425003680392228685988888540334468858154608578515402056199491667331352219516307897618755174683801522965455119552828271444612049306609808435139316749014528971837105318235209384449194080028212438734104602911453242834652250841520189369324747139807949660798598153179199762878646129726029187066869095460895549344205914793898325773799934430062786303051180334734990949420484723283983957416575302517696843211878697692456175793066153388028088159392019680180419793698236129959349260366812401575617095073783062039977409220002623622912235918526588252854335945431093234379101546531098315007017263953462464895694107873160277485855818736446869337455898324136440314639687310910915087332872048921551421743879048119426494979778871180779167855748572542717460077158003441958640736691059193926767186045367275555081321801643413175214907129662818992834643055018257093943712393064720586539531963830404899576041971632817813746237440869534583021526169224695763017394425238320831598362654873375447238628500655718439859843217088037354053539121159791576651257598973082187787047819484993933665137867716753012678958142135072425109119137097504772506623982041114933264864453229568207330397527137198692254560485440748860033545891602916109354050914697144592767977749527249648503890019459118408930779667070256160023899156982131562879942290152490099268351854859165356320894132954923768915558824945021200483595484308315900686617868838050509907142042859710549299674573079005854083779346664276668123641227205131347064001294280184855314283023845176410790305481977803763438213450279721725342043637814090201300916531332713107398379031859046407124918058101107838219003533029693733991060182140355794995204128254574969438510643778292140175816902555227921741464033949552330040680524330704049668004344506712472764205662010814879142695969158360432568153912871267672175882711499933807541514699599265056374628402811960688799105496134874222780369390780247636842692077851371516666701984142431424504693187941849962733390761760386452585339118824660702046815345063492064535857691299757866155558677891540089873559368157439438418577380864665890491107576649288905269027448827975813293697885707045255346190212607981230986615864142437047350169778061016469447389086564443281096718922836216476645815574173938759155446854786042484769057296236617827634968418065060694778657633547286621017463118308148041257069209495799319167032857654558617222795110884866136921141414753592608275119454269020718773100640638846611915074002806036400587947473253468071649258884110976381495603281724807714413113804626923472039308135686574044934866136256989340873454730250926323156355800746735742554875857615428332039768481994838360528507702827439209126462779603446838031094989874944607821670958237655315448176405966497999660943373995035218144573831994913391918049421626871143642369859142056790406914943912379012486096379560983633938081727101549089144083916821510370737441836047886642175490261131989937994241010638287338277206086917768523371206927849957861626442869036570550804218346564011739613019593611029925442911846313683231631735288825862828985371211499314923007181350626493657778765499511843392276687376984421393628244540877118137823458490328483849029915348797755717599331872096443250001910054841915731094122252459255234774868415673075284044789155307510980101790684273762562678564628375136479715200186940841661466306459506437990528938714418006933054777149382397345717724911668218143216089080633953816545277885487514496635292866827692098915273873772668610928344123260453278185586691995455205288606482582333556715866076789426983306997037285252078904129694185339977429427689232113748240185791449995522322524734862947676780593567418564106401400265859992718904257031879336593768439840846488827359806667400930791762202109525878849214581969612977773612195626348756751215841373277776312690885418581490633225435653851413992548161833746267053918886548859556263745055632727867211070524742625109395821818928721986221182693755361757702424335677700969375187924860762159612985980793050566764518624070819352403087377616700342146199259775864983661178452697115542750388637930385548282172645342717162917290875509505899944274664926289530318236298686276617101870253022581353317081607748532723696223829941661608834649400376684532485297050630841211782966352331961113246981931509004960158208234173402876449674576317903623657729568742546508059457859281693748565539718978013499340806963559040970545159250579912314344692024722292419793827580107591490770818242124864045159599446453268370554730759555369562402032328608802286695484187061499496627623979824548845526018172824451659653379023802488716036636554877113489906248687308451052403714769643627662481705893878989252332663614455488232697183832397955957405849356377168559445634656031985378706656402854093580303049238270812904621419807194939691597381596265986786932434502451098682082158610495884992958788307991634497722762055881737200246107784161602754731790287857976066578743119898654437986385435821132041235353255456538903776830076111224399084508949300952858156303373969098854237180178123579735096819047137400260333699396378327825019315445348134198637211744448049777276888571327691576749221720398321639658697742726717361996319299611542297722789949253217568209102702184890774023466965114897650118570976764119267127119375096068306338512856241335514613004990186298291518497200068955839950792429179799078202141033031845807552553232805995653180547807561772645834732341460134497500470710367793847089016876964111371710818032637406536612180604054317514725156497221853810212338281736399095653911036152799202871459015385412094431930436479447824798261574002199426657202151631192683504446796319207028861522680706852489859513571841803972905650405237369868123695604569469411921943312732163747225265169831640184744348966827585836941426694083770467138582391532900177083257208599137656654436989062146230083745039167266272435756154435016766579776353039509209225917927717790156879648348720028054333399870953374598732980586935213966300496801124576034310922072824540646128850373780198780330282178776698098323846615900469582916111540975492895429820162661419879273284378064616468322574438240981279682478596446676776227254173842623305429132497965870657238030164093504593267434613659361985574968627909490462393116164504052907626488569797345688813764170564491553325253820797563956304576932181230142347703840706344259393945462972461708282768554750293147221349298398788503339320087934974392625195055259787076003308588567227470269085174112868821387072995290903088673614383834025189578990792890720017506646148550893375788079995599284544427060309545031073004843439186320740933154875887272941254221007503263658715972256428570636958634640890362331541576122034432844222392301225082871278893004145436262918623387534185390468769267041992382466451423629648925935501982676660927809918647954595322319920141126046777866484760261979708973929567413263853152588831238353288293609639039165537064192127469048750330152866250912872893510554714308848250749658068081673012881111015737811360210733440075562601930674375321314064420585956182663678909307532289281790307001313286788052852807160954308533070583831678600695102064595568677441848461808831129734683780703206476180315742793840126525011108638725380160516053876543675881459918795541679397700577304634357595462601642310491293376816502941446941385681692354672419266218477067581582450900610283355720314188671226186754365542743589302072420360857962775826351175368364057156243347438201825139015510133646964296889946550156642448192773136571467318707925683174380783061765277816625567723311865334963178261903698855596922859201830467805067710447974691850266067919478874151931923414478363046605863855983662136086788184020344679618707931355452827658439296897182574578920315202922337176050172594783660594326664895223543977487804768010719174454679964865658402388752759915237179698560955246503120848351997364259490032414437878151732597408600162773415064663244550968832055170549711197014301427903807267984142285746267351477630525160080340045446041684249798745331736854110107591459439755588203455122890203507255922481143990191293213449414961410557387328694151637795945951189271396467642148651807439088872582312282925007439179507727235662041643693098462432331115215602250651157792302636639611352820142465943941056633264931346955412009294208669072764523421516459396898871124216262689707273312599574515327820265082974317053860144166924863917988015427159021670267811010782390310643141184443569352894276763532767826394444408705705887359244974879307478954161963606001427454685292220274296582939541259768389865386111970206443437531500997646545789663070234603952960727426994036425955933058036089065145711139569999436887603292786273294565623732154909936564714006710423861415905663524687374672791727743817174349470194415034844723322167402817360977706592873783205453361994603632395369395604479774321671601782487225529511151928272969496090947318087551334305731112054185010110693104621033327429425847592477978540283632364195890228632781902715551833956593754738091125233596576809072995284564978646372728518647690327075604302503060770800457085146678221282102551864094648501107405796625389010631903158414835797534193440471490994942571413738983673459377380358746329202124167435351989311479140929132856078103336529799702369976343731299715897565222424053596467053045849011195362807038310589316715094418772956699613303631836461445719772720614849109423763670281730440078972907267887415994654859386398655569930608587082863030824279393016899640719893626365504803789823524513295414587373456921627565501289508242717447733881992203641096206900935462073292815355899087969749277910861533074014731228354068622139324020694313714858693371298119550249889612057670758501384508968603173827138695418523017214443589245398947082837834234663466405520810397006403958013724083480206458770893966570501547332041894044035491798661763520531298438410083388435296790528904754058449592456560169514079396319480585201040323722750864285667247625174462045712168964528226793011149457862681095767048014190103745227418019262278832769555640025861654082922532671488080305699893142928056822080753931723122323385976366535653153717054088950755919382395913770023092133436867273903677158378943567997513063507449156220907637786284082933731521391737187247648829761735488924645718144508409941412071590609879972519059897526620220027495958766790683341984788621535175348055886539186850722681772879978398331850188468383322242420981484888661622933562561280802977610713539927027810973520599082514731817647364122790382177426587925871492961032277062581351786019750578772811614546400505227932809199458945974960692031810308086989757178805774799478140440720937406768148163583921313778677968094285013398939249959691605042207219337669816380926604696199322044517519375922910729089979746443575758182183833520389059493151950922805430420230937542587277565885741355185702488834807393098531322885394894892846760665236126542557917470517487034379322410520355369683955412250595662381983879264762825817754937285372596209116549467253326753395308175972860287880145560305184292277021053356023860969109277970995416107986737234278301275702270461683939643137884349400394941381841554168035412302474044176609388355289140218317925517713162246601594513929728434795934626264277092111917618745662016663365534273534434691056300610553503493276317885362135849853966367174798542247652132883168960942434932881459754743764636969374685490850500908661889038880276028943387883177995011339163634377805359549144967948901090879200607059928463152114953209805279655082202626413004534485347578789127524117395866835243329098454639384510675436853860179124773032066853727061827747305360607075983462287506176160065445444604115526686832115841051706355771837132454384640114912838709881984669545369963232176705391334796727152459028562482193608058708394122548092064604746317369087424075051241651979621526295035178156640815266926325032663681179615786406850634335240264411163785689488400460149655210599425814862630845769472471970804738840840077850143721256075203915231693612765776563231250163677979965626153921553495740306649249242616335475558693353669835692383901893537405706360453370071682340256146584042312282267888234686251489771958992623855535519012277263762585530024492590458387022449631922484566353289690244702547407329994343497400924474737005080343308668787828053121525304535681026163490647972446173372517901341754750693188384561865769948268474494970263838509709788383974680457760047137846948050477644461572718390335408297825780120496027753630100893788062528359109430950818668741381151799298192648779758322175774797963627914098553141862391465389146402262920617621187817874728702886047111842229715461107162737497340153627860255328592612778536052830705193805475118229119392898366551004790490614326078380903717204364351155087370608951306856210276899978346151610109073466274267022230842591159672452329461684830902482252259020109680630391221867412919893461252949285419762014129032051157995326616474982973034186936279989848170914931315456671833006899526993136761709437217984616956108397251466323518417099324652355191141607279158068161231705348267460939932628783823597911659447222341263765695367125950045659215681449919269811683192096604266151259699367292136723876619657335528528925224773450597730675991800960278241676250273716887149402872458674687992334665850994539350675621910848025615902464131725215855621769561746556689159832461565402200207159602256352134544516805696950502257822575581186953686783624089006495227595512293256611148169930767095815782204884663126102734845567074682112134276997421737559250381235973041669288987446214041832453067800505481627566442085733818076389656671107701546612660079158129844853682530584074543923598447921865660325449849126591183651216080087884623754723647449394752440278929449721165632546393928275952470379593119643603588896685753814722638346711490718542364066453957648864808999398665691250137297801288761068014698506625044602805972183557809928434126827940985696399823616851745635058938591620311289103739790435724139824382681282132815361777561589898293710792147842161647534089205240147831687517900738275986584432218097346622689535317418999280029440243948907614679368722437004633829242513359115589728346289563444319634422041869265424105017514951607885558247981166994535624765746293844048235316793758820978684259881556190348812024926660552998781210323035632883385107775793053936683458710837070859247796549255443956246057359706429199440778782180447470408915925940962892185141144112124156723641562956018306047729749479462476146308056295911707426700064128713495254756516648204465372046875819353723200655241236048965792448699492722861062971517785010914514461275633725262541683238747280403387770165123348017210058094781576197731918492487289801142951794009406681162011107860174747300760676058321820189732242328412252904928865918288174721191168619828466206845428984512548634397869607023336306935728702539474613652037964259132807076652153072007504641511386970536905772954315794641742100629822584841655065109164950875155043672906786542124659894630271397190913496860798603982855475754646859323461230658567351705822197345259536735095415432902591648280032237559444669904043995713809893221165745130639171873043915581530972814741772132160909250448949015350513180078241826931505521995835773675740794520002221024771064176074837963263788226391433973386842932091034973880319276980469674320075921719984061847654864267666223122155430148532508074078526373910627501616183856813485785833428737541298812369573405559773123129800532749615681853558088126728207102772777768928556228793816113969634638694130947864250298125233171050651119081965043852346664224066214960351764560621027759206556422478750394404469314336493988336982527983463349704079324268610004870314497696662402399039546177685389666998042463434739888974355169069767531075675170023742000400987199392991879098847822434715562603525241104395163082742970790961420173429488196942107360016032333680186878876957003939112627400522396057055987292756202767698792718978704476887585288601608160690241196804426787745295519533373566441843834585806678834902034021699938022804046729419437008244363642533378002951890480227022455615385299921262862573341141791353434033403157608473185251939343877100854383738306156902773868601252048653624728997050661923131485351770782340543082595696966412214705056360589508359017578268259858657186436899986268785174069374340317198464988151329850210837910204329444539375218033946022921019887277265235802289234930332234047388704856683445806297050065858651420704931415644682582724896235754043614162600999705065730886947817399465263922753845200469373181189239959138703195650577978825294559269365139897707024319290267163045652239436214643221117741350196722269888937749337293140661686333606349027061905508339609441473563823274881811790511166372577750774653683680046123820635235683453267874977936606575488197166532749951571869860722327203432124205517311868397277363795327447196678492453995804537351789999672695869399625820112888956302387843090530107866986681247054711982833666495441920936691851341954979275296277447279588904087994426015063400561625250885977447177513088448871502509618865809241059896575714431294066782090720266674743970758218314854091525486464617176741116339670509513785373437041680714734707075556873808925340418726216488410719390801304560766730820394671460108984151231775184380420045400506012963496317944477660441836813392477559131583198450932755684905819993719985673926449931334855753809336711733408305834497602204296346310227218977939117600410930950242766928270953688434165496946085033483826131100021598260694981375281238158073756869204104087584662487993124780245474000703960441896714310195310091042490229533861788147160400530148924798964764016003488202941679624629287518805959496202786327504641363345698015530734924179659174025773858737329226247866200292966340921182188405431480627298548433106356408253401176207266659118785824275820466431790362216561553883996459097152009142856163694877699224037517674983575869963138952719062709465006385294665283166341273512013311052504734770525155831959905508552699192535126845750998568198984885141016871269937022422630470146387946790128065510695977360586068263459951509234676100172809047601222299114739429528691518943765089129180240608429246334057002742129418544228635730410419402722431195530968928746384024862226589889128568841304757256321150562755316263109226573299135304114242926622453796309810991240430462482737718831230062239370150282429650004920455960536900511308252909783437233346535406048224390545192262638036542163547921317272155964028827392532465524668291729695488914834643934346452313578133029288516723316754376854666459128547412973692582131859850726585742980056432384640431857192217997841743027799432406898043211531078346924122553632903468157619065562314100403386337683330601106476654259484148548264678210274830901305611067765247581776669928014563167820918065838301209963888284194710068600195893514074437695307484419372567824547153094044202171862587261721777451834472708544014150047704474234488823760700615570141224078101092246472405132039317835786019962950922354881028763653392955164087996972359182434789995725852179423640232155779998431296545270291887857712273761201234207791721472118543467810414980001392786853212872599349329179852525351079664886348682892302027612858297345342335774857658473993966305181541395155214501137654864820499728225217957572365991849372954338750448547726501224039051793531327431052816123138014176424278501364232916729256969287017036704443037251017886245762263130171072714546088013962462255559502535931498796310325205291389976211705686418091566610118999823629758404034764491214259459745897696351187476061036859433856097404285346335573872076690380645942879662249007606857806962702230636107581536910672222172533679315014366644457780460663600391110840996771349183921506608839647313116403819405788781715616644822126415628768803155940432989140011811869330468000283373383297872433689534952301777199488640773284466577452710886157465081427590867830020769969387478601928490246932624628884313353721937663031684810171640447043356603439617992921469332525170274691704497573882844535593576345481051490242494510226635066741941691581492020297624224235434054634421696299134183212663341975693810509916028463367445369369968738791830161330624041764482613302638266029650552885599006032447479022888670082725186556980354192911499974823565315379593415614858914990238123609347843430820050510312378634736991419457379330862115197520574337857455100623790631043093616754130236986337539731142704839016542544133191580421229889777140091727165272904233875150191147401786568261009011110916641645494056970668924211220658053483030884611285011660121976403326776604785432575291215359666810405105626177918407542822392630505638820784215940926175776549512986927687375347569792447369148594318703528874551769241147819305161390491010216782779718901989207416311502089519403747071496049825043193779979699502404617677874246769952826881253351712145403088068884677141684016650447483830995228405115321458804431606020046541733993676768591660838358217064563347159831623723647438250671934006347354762267218628159362161882720031578177068322483847227539134773144792262248523207632342824993447453993674813613588597242874982053736593672946112636278447011796276414544341890491963297858268061973863237598037136724586091363936608842789146535205692430037030960617477287527245078937239899127680164130421184206863725719355862815141066736162097663577605020684647855424145187581504485650672910907517484513174804691071576131848895773243495564283745418021646985440291293589253650985000381245442277192021240030485870336100908542918497207152820270770785820842804094203597116828274332603696030160742583300405356661048793762591538216600720561554698286063999681909477001016196146187144541377316008439407715113181646883626336498983536295489317905569053894181405968846371711621304286604253570739365311439764932085885739128121186939967075412022219238937902835763421075994775290149593929178375707510654277063225352740912723205017936431115001880513294853082317784032621267997192402616502238065111830954465785028358508551201778323864971845451658807423034893050057991752159819665620168857031879071876312113486601737828340048153259280327391464303034120881009135951207100893397672280891366575851381890609714764596570030802436381332662516789348561389454449500661399103483798644678174796242739919834460101509820964022512952401230871947180636374065916744079320257979124320924900990780962982445396899122909240759962692813892530163557642887037715353020886732723140636182330559265314500558311325553098376845473362331059514879980346835717166721986229299206289574747546342506968833469337968835217270780772879004781138750509173531384712083760777788157084538836367344026229231713448174578804587026066635167590478872931136056608508286620123759329035081694968744204471142640350034577608092397910908908606670899179208166639589935273012642492418462960155050282303267957985124502907787907222940523669031468191621053707123580317793136352667572236785824432405628080420912094609996166258925010271995754660921298281426917657800527249064459433293581410066032661958533087703915967213679763902794103081048742780247495554430450093971813802498935867033426363566580331603912263124851767857532123000281670235603296369653508659368139371228490220281267773479583268710608861085795195430037141763176992078259764723034490171434677323252021347643003559409083952023460674475407405856581967159511180040086637375887769255250686093772958798670031645667952864718452828804833843121007384237512637247959097934766995849985964600842142618958751872395842588045482952697101993060592627667978538244604843661420500650648635281903886968277622986466694345123015692797111265382013787576007745293107269817853063018032589860970821200325115676069197172355527462460452987711120138580182394107467533228581696972291031414784788965612559523222501262209179521127748419641152149963622634671448169640496082969320303594730407808494891991236360382658529261423563167196583565369660809299323372957197971752503262463301739366994126017570506619979128557321538297585618548925257548672637203837718798163463893549681442869770430916735419364619846759078455701096007334723993349193382286381247821091072716522459769951880722683469087699444021396487582150006584819033893156744776926316068753749993910246272310147112117065890322894037963786425018007538541274032265797584941100991234422793010345700930257032123506361951207471247340471962563076982980264064501198140956746281389006492296201399628893222554745263840882376230827801172800035540934993606705255423103479318960370560561708481851155660648431901419309565979496565697985688837516447666829061780761169933841341078310388010685095594599924409934848496766857471207696926612690982200030365627261917705836959243658440724891104691738053839135072479015725148591080052097144467991845649737543325022579014345330535319095139930880588263212390379350550926667343501918321303701212194600889459152191755766228635957049529387642159868206389712826413495900508723947522109103395326458840431123519311032130417595348527513853970572769753413047158829872802631573564925982825581158507340722166955652215823013367128105374470482906128965816417829080871876100650850464268501465475014127547161862558851892420101797034570408157210567835902657712862330513243900512362293852048822905474616252978856705310967727432232105458296683022477176982790887945001474611278817348921558774301107297349675467556991514955338818356664326754277354591614343106198152226760065550197964107522004229095378655476616580214379627970923755827257425475902900996614959723195626440771465658851706561513265766503342664627803464271852589561728645106167396888276340854835096503516553270327226068426493370630058500073898216138131392352082575458592399158124194159986266727271530735147829625965444791649816623290211144851726153082805019670005780433702217384212876805527869225924778904017506831281891989343538788264333769902605639786150078176966506967313788604596709901770931172752239150893813601457799965550499103678387161881384816037527609700878130749986890553252832401500319457381956366881593251180287357411598449453597711383634095150013264580953938461068050459439269422339655532085613216468046973530601050360691062055894907269047720748866405324168778670819103358681970832368936401212433659327973436242124407974868259091824494523420197069061384619165410102658480649524596068918441346613407047124215349340946953025840131321854406847073971893999059171863842151672812169754905300068180066638936047114145396389198285662286387458602488140435654459377553493256224567495576533280652719661895605219971534271400036254886468945540987484483556509410936867466244274748668987125731316922911872251085545230738460145124770324960579243569480406929607031264557553039438957106409946679365889871686265802262521170998847226038896287825826401953707456559420825439508456818561184385672825942603235541248585976238676328289133971714070337592883945978653361547435763745031497976365219841484670931966391554759931516760025533915332374421774460937741548155612108520926929948157194524170866869684883406721821295183913688739497826978419717051023470929672327512070411863811258442190734061453932029146858071441899511488448608790576175238385268803438730986427422944263670810380749196913945855878498613367455439129987167139421302084178270531189318719093570327726474313538460486784339369467961166640657203923510924848902467523949683353797406523092838043229456171179194469076956878771683293930117624467537843084757434647743452794205143452991123539405070910072038418449833014971645132198669517637638081796941166546418790119600443727953550309916209501957604176713071556462554261221888888511077908795691174928750891826782155393287591828221823704195921500189870885835495494176922753280517179202183587342791258260647297721322402797346275459414056909139624681433793350912800113691908223495479089988509963390077400651892097880060313593504673554033687678223885051010317720322127237306676035797089393306123628546304084604701037148340721884079485058929973784934447521145706710380919740366552010709538682384656761535348928924218780809187932334373616144973502215088040950990782599679328846558346985256550087075700654436327001096334779239820582615442221618566473429223408960928619047087637105000754352258959176475973801769282222623168085431897772722653721294915948886832626669070336437958040616513218975897958314756398682301721011427196693716200178696258511520311079396040358651505040331384540645184866005633790490358425344279786803521216146151678834393928323585630628637378433423095386982454364851092429083056934029061643214659330955603476262844755179347217727504025391137618617016932630690718241642096529628352089673873274013111621118863720999886939985327688612016134375697882007281415491463037631078583335924261494505988886581351796994623968726421604516539116669492922143601371255667657938297171684847069220836617682315671856619791597314389592389670544264190030511771766944385553728598885512875911532851278843471978730643655864848809445060237185006970390593265431969472042916173870937224207680092175076773907446213367757775329645570278978819044030951740389009383265405932293167026113279632244782857539171026131689431806386164595169871881169315494342674188112516618623433506234600561131528516889011324202102707218467166314048166159512448148148947194678995731994246733747065334035691748756932128684670742212587188861964834342506310881227791353434390261471074286110831629913370811411120678633478230696877841442690861063430312481778608427068294101533189124294647493663603405934556875094445386585739139951877272990373556053528397597523361489302925947103651225208580043109094782866621884450175711751434363586804084228256317137811558262774010891491722419900093659103824577449118305859159639727987247926004564521781152718243891951450351689603800890252371590244677541837645574335628823165022245687480561145768915301234943951633415009209816453455079641272425933070926721944603708192115880725381183018636111731414594388711124884815998716206819806717611157117119747155641302341352863161897933795202721644836197045672706333402486159641939912715595403988428784124890240493880194445834736879367222772544199506429634521594528919078827089521200203721432751031611424359040409561757044829029443531283879695801498771537380413085899309076768715572333675860949206273264942179508398562515031001362339580290000574943062387123612475001969684404594197640874572064178195537969835994066444502959508777981095602633289669583818872030177738978043897392102964774259157285998862716820352964957566109041322159665717590704968107268468998571544465231923996002929116323258867517069717667137934599277749371581075306338746377432341054870426142184753180018167307543157039266220601477044256252504010770366054940129851141898465802186030283129963007272880777286582849852218281090765522975318012372418697326223260503036758748134205144861879820342726795043198477455008578142035012939277279493909831569562319682760543821783817526737340714893484879507495026018299813976155904551129115869224238615026271143405484540135192787998367620901440055681081605117246736779077840188302798897335202481214478956649828070726355331373859916386160327379133500805900573147018220463445593947025108619400438627592307280399217995183610933592157595540044058439849084838836647112842342763665516673013562172647884144407282231751318942901673624682779934535752379808683995222254084145558808841628809862624254784384280556248864898359826704137581407077750576237273393866788708457132244454468941483545323369557306441383558943793035995980445327538661915205661571954227561264426091809442614209996156397593697919300548770196876993759574363925079348300263774584871449044604311341681723493927007643728231159127207554922015804887546413178888403446178591004695417403957684435672446050101914381340420502808433842150906560826745878245892574883453021338208279658289791603423008365926863323560168089534338586036988174899557911558596749836794537596322308149562092367359456547345037588203274401704350645119263386442800250603598355963753667993611791316952643221892260415229695600076684987700333057815787650202827621589346894872827789382747331481611868136550677943596130479961775573463513361138303667272056834464560945289607148542681417880911890299018922766630417000923177503457264714256650716577799141767864338403124881907892014670233581469568318874255435106600135436950330343943899663857716764815170815093357285180325190339089634068967247721198219069965318434870945004858991351524082971791700323380726288778959189818125601531539532698284982994047693301501522443675207153319266652429323655126083723252406136532728895723882590311675077096871064774527543389996037859473226983205519538352324974432215541596602413671626471636771559802874883925317847380577845334508770890448592987118257835714139173504250371365014567942856447598819219930497997918307311158404983234060145132030989744174296975574530695472341355641160172424144213261522387185655393765074169796540070657609780259910368393398617701648184066540127648966607472611349762883964836919322519176040939882764755412993217160902727775346103932398857581311146923978701012624142390729629732565608100690814723232481669133411546094141658899125102172339296344636554511357543498104330972011110188826897832678940690369508505329691763610790637729148887726861511815965757783489228113732172645479458433728857447844741876588821190324922301643399832403191903879285707612920940861727594657058016563989091022649561489459379600502305663564116376980612671672082789042740466001480358118571678350813234527520475145912829758943780559983557686134937126087011566814471606630686495832132703783326374855516451522049690418004103418996759128079903534806438156487512569055480896330660582566741081254465514355940718474483867190322193518875556322268817901854047259025900600612540987447111780618651027332148849638055099647249558761399451189523172016266697453060670785179897884246804194580358665081160712939020537654622979794282258192793514821262074255970512279667167033171764303078368245583584288793696479964154714006197395954723505469511199934157560549362129123095907077337484345795031465310673187046495094799526833823798457779416500590849932446348209739915579602487545778856191639859578084457142976273256811383050570592298822211196258101436261864495960553665464028365112717713312881698963606805811598903353614082494082102182973709416813790846039001404799275725553006315410827667718324035705455527618689325790941866592170753199576340557939972067474886732608155048665724754304304725986931915604876217369680964992009724473388664269290368694260061518848155649326564526321463423041528649331054495828562868372166475163772528146564869056527477365174182821025099406087189827922300261966130976411166665200079977055052135656299801665128191633624618027168604325777676491536927414674872589606383265664869980684473222728065963744443582829586292184060367890493612933616146208237345696452225041142167128724329387138769812307988699266924023025723516306870413800640219954852692738775578419345127955869735565774284808311144217092233322752026044777212264822996711074477020327776013464737068507053786303037011665615772230126324283811615936718478929499550864309130714440699908904582909281909566254784808173990784659553036642296774435374220928019854149171446278057695995909895617381018303336413445835296782590416626800717268198486460493783925040361617546093262642319524336860153789682871698277870839059055275446097873055068492859892232775524378616362921236637524084065076165056506391774319385376220865828067076108100120601719752467851096841924688284670247240663229250206307422680300161087376165373893853883646021464409810527817088548062096348539859768789730153318088381359536287502236623020707968096834240711418632250592553987512730227816634876661565022018987775212324947634203476475321613228710128338876418747039511980756800274303263430091910112108997741555291634292142847662628355072062288659091355023507799307912643786826080949109354488728615287251877783135465347060449215236304066258474211342121369446961961989808726386187615721612566939734022099277411835931419350009657808613180657236794937366146674958222352266407411838561710935086925537714902723843464955177908794605125158957948309985287782162926724360449989900240389335052880718036301929588431691314684446294042299802208130134501939780335029249130467136127842864471028082782242210612680583977196118646149485769860506464360528062387798444469775042233216153779319603837828620483048417813315595578000230180336380488451041817768668451453100205253259248205952926556216933942347643803111777748352523886184151423330522492324799032670093242457304405211687206422707264299553379683654855415580769782646125284241754858884190444780683449610576194545536272537793391166689495265867528373862225274308255573708255832344786030792937095064906277273283175862209543629185082550337571475514605095595500809889204197764986486346441756646962113414413133525521677770873467725866623544041008889609083585145293570706157431549148490837453434754316956276670983060507430917650631069017686078249395412389360662144617369527556438587368795878857616806980955450303936683874928756635698524167405438848821060685591413404571731954489476151381209557240573134224769590180464089923395046185821623049588839242719949814136737059897974475318171038481389630390114896164755874860357906099857854267670513706542308091433217301576074044468924756963845877306528567260590270996484412513663950457380912597837501568882127701009795051349997604231370908758900920264274289722385839722129050721441556780274715606588281116399912068676657202454523450859806788001574734590134535562999274240552989497580077814539720424004651268463441620089776716695852683825988110466550451503448155110047211194145627872871792686091363987047697624217944600198338218175165517309361832478264689555867953988173510075260203578001307511749235270018554407391388685645034058011491130037427978840112462640160922777881013894908691112558912724968918934520543216558414818991237701238035271491127997627781529622249610093899417455081147956426833055146194009132370234645930685708520269811155004486301835470311734916617778841858061838262045664892352161850311414581963947589393529242857602249700576758683324131289448821810778280074747546415230834699626885169285921267736120226461981716998429884326375679315216799102235400484383065204165300818872718986672789140143798438243411840573841078629492496834255174605054528043464768409268019030022314635255288974011972515086060640316948860415901884994172796345442221967117854678275082706372907839203622793304270922213396132118632715641393231011327874002811069544447554975315052168855127240506512363700911493023217953768399199246936564941031266280673410128524898742185977365287583079760322758816919161558628018484844313384977780218094422135675410139670893121588288504265661042474744683849842167680811865408158583963635841520575907939860464278917140663396685762737148871214920150056918124777698124116169856592608971163585998658164467952880274983815223194675926651554106852948126867930248241868629937505194501169460972739079808007053382843723981823314215995091869028946018208216361138834971156691080967265330385156109781883370983978278282584526338902345089394735021010560174433493784587060829560720938737151728880818347517704975058384889526768928602834707946578140937182550632060838928045890129519981876025356524542656584868025442946914850470108107978180805762698541034188819389936433145897375097529611018044672515248253404994736901477533843083386655230054318418239732693468508985126462849456164228666439982152816133133876037008768622890432101507063706068691879235846308960311978808276067243633354258809015212801068194013539503043791638333095448459419138569308724357416518619935494039377479851491534962884579593090700733193184777787923057911195652279331907404799110240973931388514262440658581614399851803263098156026532890565011627237035327452057570585807659051402518926628796143506465673174914770333859296478633749712728554220150960248206227996315679339967937601471504564947406163743567615006317620678576644173667759966775374899353742867171923246728046132317934609479122883282185765295162394282937811863387131604594569599288161193868232529006644759193095167665040180334441703188141868016272883986286051144042055327840563720956159804494895536783671375683985703463372462665660093580582817284554121510131724504864085499037141993400739253968597921183192514779148407688784470150161512664964244868565971401711762544760599146473823365835897309031604058457701655425131086975769230765644749391266133997193612077413124753774383184270142217178351002791901611950936323861513875896205199218850561373432075528834592174502684705031135663405824665583507665664907803454700380529983631779788973795394934593891638066802121935210677618913561692194647273281059405483446138503995257972186252548126488757557739704577826169294932793065773987860248245966934696030195024047958026872620543888302357492665980267909904066165583936786532554559424571839630155134493078282465813542129980434393023462416501812826869401991305022013257341935777863730236547385611317773908434751958057462875779076934214274986540728500957915990802979937453591685366648919222855878683495871281026101300316772654664829627349275593272542231408868887137195435274274029479137877278935151071247352992471505140857815734068253730316207349156730543980079116656167943787844547404690687952632826084741000315359401136122579165903060103700629029073698893908933438022689419537047170547985044735796947981479485927951244319399734380165959831625808657917196666741220444530151619270119045766890951656335353097806498199028015400363983978492416385096464916385124177976751117175252591711115240515207996129845414727798073181575004836643507057401038590215705218754274728699466586153176679267356471137999017257002877049423914819350510789836266803961113116171178148389066291172987665467439599246105126763956171727230169052248016217944866797255703926019985689309337810933714982584316811238077586438993687987364890907945950980840328380291231429822140123750568970149837093521138318737894127886377650390610450979622752633809954068377826000602976117553375431370583729295476873504066335967631180206119070373429007154696390496062607733512835914049050985772363168264536059686370855047810416281992435414813018484021658544698392180139516760609223827170885769284730356049129998117389886929579630973634962219602932057051146694376398145917396568422222554475777829582140290213758178536861062393158983667870880897717586146774695164942996160945806640623534683650460524723664977629229985190665033931051865461000424378102797802481969175364271069087461061180321365107838787356624617803758840792758100651463154365873864365382093922507894153282616377828932977961483735277692832328712183523258893835843523374914164299573367469444182244790464913469349360070442964180121806298884790170310835614443769533827810779894024035990955025088903663540573829520232143226523014166310758169195796997430063635970212644086419559111432521245923528251742916771348608595480909402646785607296486323900243821210832951364147048391150159781950609260406522400027414237936331253105594442072742082798926386371679574431737730951836003926278851049787827838509678864438602832864483134957792904858035864458483411553599062868018048268305449247601828621147183336408957708930697959366414633824913380867229358097398700030345330816895164633345794352509331078958234675852134719031999971846960477550234906699200533359451413390341158176288807247368835866304508373757581906262142638641175692491383464448554774334465231068203454570040540892076491542036912478148981499912475101017758780268028442052866112915064418900340901997051591214951186987014365558466305380920261241270857228005171882166189210779988534548423822809499215723726961551811054808437924432276529266244010735172380965410013254889949439638272063293197360166908942994207460660570111869785843256138673060619857916567830330243419392152430186065593650891753640514402064165594920243190875171540296240239113158657779081635808915129378644751680379528740638839555093290426644591598411000341669022490640773400703589046244980100454905264972823357337020067133918571246096806777741340375345568748565503464880383538031139282387906482935872726280726219198642785751209556596462738109064315130563493088315958727636746206548298193354923366232009021806479231838308357831197835682345164191338005701378520305122542340869424653420980032872650605789960197301710288173289925881241262752661807478463735713016964578688447622533351883909047009940402228222486591839788804674322412932946991293945489884281523184835890315633295596342919330247927193789111524012343298243322319821591667552623029947965422810729722618298034781906251181931929938610604864954929537670403641326795264342479384478275071042708331592051753213216283571978342574944621424740450504678034512987985532181463174768838583827962805242648251595299374144953914349324497356433858736091250454651620759904015943750090811988878437625460252406100686993665415957760166080561880517135234923524584650941699541380287446037933939463555713614589373018047847123060562220319723855894085078727799501319755098588098458508363487350177654359089063032170127316768629918134354461007387785854406648037288953946719451855719475745556925975143961034169136722046117441676330536635600316829740640086151750992324315718064234374492722650954970716857866209877341225128853783126217854302550659579923281581796444573369849127651492943580112789263085763671732691228994834288464614040553957116524634330737457007888239953405483621014087471298832849397097345350144328583249427138206319189918040880371144565349901080178920288867179633551433455570572129768321034808495289970902068391978802119922435829365012639629593910837184928657790131256755165996435173945470887656565030341728783329859272959854397750393376016651108363975111068400811797512741910453013927274423023443243650453730951177059770127835858676359371127845080359688928002976199980512358532542348856340326352854454858926709462409563008465054319759118802796948940847247865332750193331634741476815396004985820478623255528255117074007430551954562992289223546073775718500082856579602532598572895846960885159605551555892183924859188662069923824536218866321923320042446179246485631242921625456109014754348270560078999224181672629502063379515781428904687495958958152685499957829794794238159503794336444942764361523743236204397872958056220500132535687125039145814102772309539631140687361755028675528005761817113176058214920324113076877134242761447096970504292234351658287015731620345580298362027425889979901458955253250942175770624793770795207198431583482418637676704958667669617893547280080966459913285087274872306295130327210182943520404513008432450793861870455455843987063322467728727929707291294324002742929522249170599749551457314768796744163171817334590623283155379406590730386300149814034773465908933759070309081746085857105595230219920991586386906294739149257039824187954168608114748261166104224008983129080185641483016855421507599643617856750297632350336517912129430314803546400067694399105473648118860776431213145858477775434156602274565538639639157814436024559443164085765331223757483311037318176221109862543093868995819868468704891164732741264868860855782673482878475746716287860888723278321777535349621589314284042582323450330046247903019443614256702156158738403500747819482211648736012008709150143806587306654440638766182368990279506262792737550904905592764005712091214223469897627151278497619281802911360182914175660151120619727443895326433816536555929423826814536873700025999105155527194138047602716016532285582920790878236150538640429317282292911697446268508935476542827435767476318142372841066072885984167066473043558139828389080735348420704090134679985325832846889749182863974520834624250389987864372222201933961860599840852315531831801560546488352596497854291870602986496447913793180190324585754714294595682307518585206534211667141521457194392654699904703805353159018157241970668354631768364768340004629513332928236214495018091399157986294569044950836178823443683080814040993082718189926580954077802639773382842836853510040047876243691056719780927500402078345411679393047989451357952261374072258495573769566875480548495210299559848501952186713391514580175003785975516095506166117883364442136850399378404949091546423989352556997901503422823248550255778859675189717192957500116623699316134595222697788203254611613361605234211573346906302639350230976945380779651042864656729730363513848444719129932165187486386050107232249310452884740441608393952170869088255321463088919849498739961110116206738140446459754008470381134971150972520801168522837185132280265419926968029842799976447942210348083998325387010644549530492578568278293374545863779863614303839813102575675918586343556291055721974268555503931321662688895328563315643605326958397863145064404001665388930253835895371199411985176330875706050913110593221891091741968303740346057646310260433394623700553092383133631436463670837327894552824587645087400237127168984799873130650564008285204390127733768239712498664795459997323058752017227485449840424121551446329527513364655893279197348671281330552264291068787085464295868294725644404194918205537819927120419760124757379904559227788992483333603262598216239893626452730852070352448101715617338740116983455614474745814722801261346793825284854106921659835900380124060316541338569165309975132672491060463178348758043985909681937747822512502011599649300681803580969736963592113797568052177065035281004310160134681797474217330490764490620391902519356344538913962733996059853225174499053964158785001507552764842736607080674828963218521201983635251969589459948300477830888142769872683851153937243618626891327176917580479013510373527238916776751484387368894661354692588131818137075599354629287882815560987818096680781238577812607906418566263835763998234284571934479416918436270169924972283278279268574096859628278422429013069539836974613510194033457276042752471518311039540349040588434885345409933388500671590714376457991186046262762064347414080259202799667877995297544843405442194784392515238675376164013586000986639885488908140399516407190307978489755524813991540203904781300531567133315159098400836684206191571551808253465922925499525995699631074774175836641873151952086844186379709433508940132572810720853636787695697099488991663601872257522227069518623367587927151008511397707911819924868089467828143545610896760395319124485358039191825619798575547933358403183293360334531565895668714422434122559894057604344640518754353122858592558582887974216516774927614597725772525602314666403787143551752878959633110574480935240885392191775010452532167743188261227349428823830104099668710560135963863825756099232729178310074657616745130690703565365470257950856655806966211469593669869225371444076535121720114847637315852527273435363383964294819900195624915813579096588634626094503285546472288134620071145350384952879684600072254183278753845147568774354500162016329192804964792710628921258296447377208366395263051547353534917098726540890955938944731517887380250225728487019799352591516945329069201784933795102754888463211793075366070147010128230065532524978216895450954323572810780776243906841964665677370902711241186436440551848866084541614375237113836150849861270173553693808403623152435912107172515492812459656792158454517669772400807374430962812358365073075501229227311864991445015285461612120755232853664705941891804684231087330344044152125510676112099878376887625670047054913185793142452786515319695417998412319446313262496647252101288386368841013391126989122007303136116742791703504444883103762020267045225709074347940839430178534009154986214920914133636103385673695236353885906192066105345205171108769338266943567636109640226324294537823446314354549520792738489636792338550473111232755899932476985588043314614615221742888739071943566135969835925358614089710606184358486767693362275613039360864712017725461003357306237106059868708511147865154102604411739802010405978175681909409370510657988534330762221395485595536006239972471650057965339171221028761612443368460135445027184451089280870509526298319599149397902889066363742984468113156247325270043292807390611455276242781311559817795604453973120038864091361054404964444834425600792613846537368098005887436742762510678337582595692129600632750344444438987394375545658918574344629138855898547557064342272109353629553178470538443939003004779941305043011533199172725596326257436105923120534673505420420267591327725304988367987319296298391832032909842265409630447982927726314517210518601073453609734580653779150365295719814141373788628607842209778249804888835273637063588858595428682033262985631876681417141107868900862321180181526221427995661724692840669682678262552782324383456494304986749036996876033794497661921805764631377872875339138824328387725266809557023043738137905462613780287920043696872603111268081031691437405374976014025773842275619627191624967127065936015115099165342265324268684353401866669915319748747236821531420811765348872087601984815855466691264644154200244895880676629117901536725322236813712800080628634660982354618646947053653489483660025313007291750159908536844570270146925799949689006593431181130230990687961936229801528078299055311747896950780130082480181367582555176590988860893053390373148531085465957176288356755651711331320746101508741919131980482259774850412363057798108878016289384182607593950423281834728417697231452483683774923827364233974141576525281002653682668132192720268740428082426311067370311196959354359608393040739870655975785454081863337114840647436652774094952450988530796444016388900878940924575247873762404476960202013014938338271831214312093688478419572161714279263421311840506550580763765702737793487677424430056732618872350526645523224468389105575865319354795874770888217263344673132976879989229113576401345049952025616852332040714768894695617440053365569208976487619084836526647870264661642090481913698787612266670522866076255375339471353525782901958587785997193920082947097107841615555740933716099331343206666378423855516628796024289438528606883405305915824603653100224773704952602476040384662436004540138498022698753645834733585683142279462743625224504877680261273232678946949402800387558555730398799470683597625521230641673909615053068450445413085936488851661824244913862792371276071110930111759853382717502805875130016132791315301981420021446195576139422888851575575100679469208570479054370783116084843026628530044110826766914763496222856103670787766185773209431967769216979413823837398490557151976550929522317468030374477153984140658748431835402559379370831613705203283305739420647280823917086831878810195235068904265004384949750003635074568141854872226057243215511201818615274720477794111341062216023944637751704144026620366423663377281492563222851361430143182807757380957116450710337191009650685177398358296580092861753779314706375363888695421848437120480971667437832006086036715846986047323623603403341833628549095478847305159671222008788004460521011818163252461268096961122534847086271090013065455118097728265597351904506428660152287631812238092951940148108505079430588040617572208978484873943270315659689802538290969707306421408475451361471421357653545454454000332509618364902475700332521230614469089646279174416348169738374058303603971503971377739301719743854647085434745139380225377407582539837406164272317383381313943276564393043866532835062838551796116252425789067697450626241470994195001878761305466346520530160645604262164273459677624293021030924372101287736244678509588024917152010242095379340788728667430313419609153554509320343702056025527830636645249297517681088957961050612625536774455151396125180978298518035099426292333899433770502754583176232169646937427310814824217861081233217896914696400638099981761095892904781600655814529338888858778117934554800449198122787199678259820344644210562518020316237646656171657830653104020974236114979477808991244676021634215493837130396307689112913084964537750911334194191588678258341081007020999454524553327006717623039623483270004550180856476376426721473443834161157947585441229360123886141679441959191621647166573989711123925390862715259417615081092249625961957083357030761185114205728132105423644236068450816951592456971176302894786851099063452215511724478150704172373188588770775229682697935460646143073029576512283336848942222873263988375605926811455719113501569417949689716308762461750220858046452881566087156648032198178753142548134943262047621113692189348345936246234859481787400856663339700343733235137403657307586237859969099234042115391742516872875153374337001043614267656186412029975860295540081132267392004232024436067971156627979256517613946053647178876960291953597967646206946066721722054432740938041218656568175715250650896635984585530284957149717490122543109224719985092732174025847470604815625700450397951262877341788021313566743047414575816012174060256064995463913577428821673844856711896603211414659784716549427286646812466275391577013605086033132890558160591645304977150925115515565994652777047499112586438541176707961895893157911283489416139347219668529380486920950273351533332286801918122380567589178536804731314208156671939794926264111974743500716831399355571845198996575091079549270902851180812916460201504925982226485279258563505054714681601352281786423543967413147789568087383197679577882922349586229209030654369759732566213696597719645561803007590967362387780433075744728778355588133286852651510889164509264755564683848549909259610565435335285659446202765716061040222484806797803123273566952107580678368601795141545063697886255405053507617551011135854103037378317291359580148478379871989857913925373113178501910867073007014167660885023438358156535756549144798458869844326299945594289433144574911942521945901754526805629794382880267632203545929680949215484096919450508276867944642985933851141335510314740618340848450174958161946495022827344912848289041640963982510948654244388241262169796544320409322466931835925960599102063917900896801267003361325193273417484725039450893472094717061506439654247060692428691252814731833367966754451270659484678652471457158553739605125926532783032436960299111126948271937518595034110759652133195991027147223112289858739880901031860969404714605120129129361196235956968685199858397124077904815447028669622391438698799768369902249861917106778802872706433114193939417873427630085438428740560509650443002223804545202212849968706944925163534814762380353298976633562114141643357034674440505901336786540954336825912337809535610873243791084882077707608076250125309131805159176760805596805993761264164622599469265830914622240978427657332478909537805187030120082962851347730886049516291187648631994081114643503945079163878576105026232537324350082385005134603713921874669801611700268752557441982434693327112400630510040816459150210254006975014874090033007224213638654755108893967906763145850411420361636096318821964234965045551589467379881721695131689704535611320536464196834764139912487139829056921009079761743823053474028189721140093927364852515913244117768208962901479174971344401288412265977930990768147705379788077899617220258129732335824246377994212199926484562294231358548719850923101593312910472597393302208180356973484990377177318159439270431426850163548155263037505717263333650333059269373691987302286261800684171415925578708056387402385020748925573417615855280869675321913618501964917224838072053584338864128181887096332467338926930587586221061174484055763281433101742278394534977899121289220137079571972588631940082413099047914246226861158243812907337179418367192207928215234823783614991977860243584019663029737170013497473326301516757866798821771174649690323355874334030291646132736288464081231175324050029020415654635259886374517779852499127263609547937590404589664951502942424861699902647081014411043252967098180660691034380198957509507916993421949301521814710229198739210179827219929384407691319502581339535146273212145082961189295836418724875787476204927365828255742551104448151795568306346505654897068834711710932755205690397012098675398170635206354925103018844150427524659455521773035390461118394080552042904630766144365321677380401275012181473710059294606840234244584078939944083542578284282042487744243837440512873562796057846842504123488847481246723649162533078926098674459094726653460064857307071014699187186698843471146276848957221848699442884413223286125637256880597577987856467439317036555289642294750854595956397237015891823589791935016153667336415728943528659374088434543178803848836262269056011170884295439545599010824926097816409806152816909745591095208732019734129359064036024653885998453168199817998511955883501946568506422444130514144725400550336902426349076783815100223273063253767476525276312430174609305970636494272293305828017122996049700082145647199115630440234511075185929696384916674510778168529670069201720391866645777103594112022091379603823833584358049657492148410338002489443547909849878183936642596549969452985923359702736320672980144642404370748274189900665507966394758847385647733980428339795314042939368905001646069717716858489616301832498692618552761853821251680947097032940197617370003166381598587300930276955960548378898339690330038962134552685995783748442777643754002398227560827894300974359550324276646106216373049462107573969433743994128084088464864507612331509755353169093906789577946519204391925977059985065584633885071454366532217440360772349271749345713820400385156494532054609906396871232965448234447643603504453809183094327350518171911991756658897944890747901087752626746923500571003444969502048841871407624902500917354215738168514791672738675168491286077371289766206061564338038878894613762245773230994398356787508946329257536966154630194559727281555265846527164726795736356445667637799899665439811183406015664376376298861889958534981094150681228643206509062119287792759034379868537303658563634235053152777949634250272321105670981873983938220615629190389786583920807903737289095047245687483011311383969920960530663702707697824969262499672941255172604766124113334721411090040089923943255570642575437904554159249161762838534620403567428201905170326247715832772945502438702927636808310091496667433804744569010659065207047350277175381410030357673915291992551894270407430603943612163823094667861027967054403636197192443830850292523961469614252446901749024026002827441379928909936331394072396526152554639226162018632190057396214082101195309564233939669980853937252290523752781598287565787971005395669204193654211476099255262981973209662621542039901816886973298410459111303065785691508407974854793345560575262514360257640128953841842697120316995216996475535619518835875342686019046458941255914564369823412034192372243715936747156097917950917526945025774305654105535307755594315473734818564482247499970699069969516336642371572839990249342416510552912049233164069383636135778836969540314509882040758271842758535273534792649916987449960376675266188652386480376213019475980857748322624931545416276775680451249105185908088249072580318210029672246439316394734255118796047258836308926144241106834739524960178598379825304991384156295754108972021705067559314051731805491990710246140662632664752013939225000890684703790720741932943323697998822589464189882163100256475700575610834571781638109648223077936572005830970353108224994905464395619475293784428374184525118819401942029443391925912352639202595331972530081867016749553017851608870761212576943551454238502219852503353411274251227358936559263580883456018971089429902655311884985627730772370905043822019200158439576482420093639439448895398749279496209477782056337441179243897685888696037944350399519499093838163347889560323727933405627645218317929704741132436173808343582037531096134234297083507457956211785542279788512234148743501300430939804864025642015865116768518194350249973688782167893016391768014281592623505040599947744914276338769570491983107349223048656167421391630698173182629328925161850601114551464534663923517145236197156118430477797512193443684998039883821462731215058298102974068475732180216796412818369930529383610811228572007264195588379207362750140148326856414435348247658797075403031102002522985413201889392501184676411494626775893987600263844873410005433856166829067453466297402414222679561933531169741976813397843771922923952019705741385133727821994760452030788383447109500798902250924135038828074808736157686628493708609202961408266133424794322378739180755204761091241060031825920999797969458142355456286927646150291315638119301180155800667104206475933882876078310552643798913464583482511278405786182670697222976344902219607063931844288746113692479845159497352901323922380340182719638382792822356638869400830093312642772681629121466116196473137511226855593299437584759785438695686592037486291784186643331748556838809455359854566065844647126655484519226209851745056051476844158088767119265556627327832347787283362206597392446690584076900157919787816218667286843754558092441847435672108433821503682761046917059091665069830295107122329677107248508496458770324006584970544121478647649411946420091154434530206851128872057754515102927433067021716506725017875088635019491397160630267800602681230945268202183526125521085329239692895184815887387810169523973232391947181609412757300678479584956693507974471964494691065123103921876589780788057252027532147681324143356655877428419092077789100871783300203158701481612966384486558867843264556458695389493816052323512433645359076170613631900548555892468383945215254137177947811635520198872149826247155710322098406118724707709303301620308802782982718169206404328822412175875043339225529081068883696489727781515702294820809111986853165620226986457026794776216464010488465947785580398180846714830057398993667612148316610477864324045579693977728023622390554569566176234375167630344915881813380182539984004822461928603461995623660816468431097295427093786061346585343848309629041632821664612498078474289582103007037902040406006955623020125097000198199845329969671982743431007930648711451596432440973457221057579119680613884867956449630209212888547325197183025783149597542126400061398077623611247459286963547780056059372723870856475580628636841231534325497200753579626682744327151824368169179430131256865268303231616064858213388073823032339515703725277726004883855409461216024298541092942268425889109197242658407448464113493038067180815124045412859483399746920005079294485845036812279913736805696584206395474091974032412206839437195770859284665115837226313845777140534752656456894024095508395132518703343350573831358920673410879872384854518406056615235717777921800897779775765597203258144196191945499966760913007010490009537410627697491994340493977012212513730908125720576275204527112780573994750285407862841757288418486208186012608542942818314054492194627076999637606471219031905383174262167255729283339345716111467826353345227013532352079738449424030522602672111159465754819765634462780998628868263338575504196317276827953509172560193064187936639862176110310540805583099574235458592688689780906722987030496004878129833850437106249268163999720062534764480880951440133661938465883733577231812637125934692662198163325153946945731441572663069311838641132662982378290518134817640771213419583166341789818795206878699484767276057966970295350676678302568491544238678742215374637714648269542187976134666053905574925548247804387724156881856505331271351035233866086961357246282673836097737902478221672856303358576138104290490946431327441179670996372112330032324770682020852500897966574581614090657231236189740761961756481421864474598889080762245873436398559926139455699288784242093135927709407723502499576459032142276757030326923348334299877373649870177078211112523903347995346578798132340837110745290724850636573495029216670102085886213908276380703055954496900566814204695318958238701700619575977939506077718865341328170629568936423715599075879766825701875806233228830866260756409141400820606802218714189420211869464186165850872330639359631186031430919340005283041147895338244684118970872563399838417264016543066915170900158851812603614148470690601904210455322309785051691715577494603138461843514068377188460171535266409247550779528276456411955943692274368779869306209609913395681310278669917074101445305118546176675435150833978207656866718652490138186258415973530490085766652202816779394783798261794775498221888711387443365757656660494623169161653694173232772837838342646693851921104563187455995102272529166358304587278118890561956252937962617624869523067434682060922043039324088665016725524189653190040869569784182603707623265857412229885000421895937260963841878768055600813137865938065526986525532340289010849166629685949589412238875254439771221714334577572436342599166996327296517604603897561128572486828157925803966577333468152689254398015116280433776645851130664245644245216970360676114464741561620273906926015047449670303559961534676867014790741033797156505422125011348264643874861929715179824156604255731896670367260174162166843927910795088850758518032175156564078464976353996396772395913416959309419368620230523681532364931611611030602358437173188561128226867553921272324662856180586863546646446956859130832584175626860199356233817251093124555344687547149050375446504812033619808108290356484105219373886561857505846947423879062909118362782385212323756921713626679196190198867629541745014320135356949097966500358569668166098026269355267602055683367278001138889396109241853644537863242373425087804264680564029985070620626567579702072233631883568735902504207121693256019110139715729993042461398787980322588923539420701165529790009950041005553520029139559374994162968458710935860735754156852012788666592905360680949245848527334155313294864214156558032203351674460530890533750704464047276664357839403599349678903579561800596815651606385716010067231824454707299376131101730510128697010576594643978620077997635806596901520896438700189345495153856680211607829347266726786024947400208072854121540546617674503240483879636007996167328977863191810380656287417726468573734694501568553152823656132960532916683146418573319652928077222542141779828987037151175857009957052754793120171303453067199659353578470054946539051332136769887416349717312361934307444753474173019388165375833436483389640401302170987512626388981936632857040257791895049437690935427443418228055982852248621671585423346920999165691724211207282150239586900535999454843209719897461339086170425399416389111459900065442377509205232714046507025325406232281672840917983672964435254928788145460666273793789810182374640738792863717180483765610399976841635790810694555030584547496493185205737919888084790869337419367344549365044106411788696467593117367926073411499876436428061725201029569530929481287771394041272127294722731708032295798846831900007238096304986061736154404209458654450786504013966374309636656513434697287801041803547377682795574276106926075025245842679873397101430778886848720249651417185856485105472016745272429011890980933408031128245123457941649686180902755150838346188495944190490098169454873207641598093734087084691738184531865513104443586633976059546393910382504846352376010778345218906297094996400708104126064618659784545620473339083790028651464803030172047520153542569215237723238864317948327734031782981041172738707884133775668557344773002136689752904225086350362992812854640837500487424308526154163507746280162095356284848250176112711968632921508997705193864134357234617559466116950884402802702457568203895411690132555168333677808874463244312112826461781885214454485557067195523399771246031551342397326605457588106274034706448450498881183447701218342105262830167363683374316097665665737536794246304701932666972619999825781538279133628295742115716802492927979149252470536664645931201277598420805138802830649559689110133086117472306735819193721133818995648216989352486390153128923687689549536396138896665281358886492236435112289398949163864035911889815507661488797619999935920318956643788187303804527710569249035531724405048597012776678122460202103766842609757832919793080615200071354936789207893044888865360205097659051811777660068861693536725198071309878650640033534765532287384050641445077379011562256716241333522772381607451884915675354015619650964670750462256610403384416165176148068278376403062173477498154028535348935798553589823506254611184253951561355859636976047391923974978213893699002727305450208011063227778247064794642124003064382075029316192774414813989045209773959673112018715632010464371390184845717530176559982018633271702589804145562852711897577326219077346264427083260693696585952543239529919873906406813584472438510201678125645747969776845719055813088955674188283191465000574720219162036874916839901249769622919276411942553943946785609044665305916001568497922357644054173836457946486241936046497502682128270567768235344468162826450691580266494340663234807813534325120951091103584159509734612633992989613203652470010246417392394966142075158945756859388574235247798269153740295229819923208201847495331040487294360371329931476289401344756465738229632349080445210725224935375811392036710173417472555523810907139767348196682240079514654146180788597151467681460260813481406006943428831511653613443090459851572980918419565892950116635080954510079858561850999643499542466652813432029224770130428135864843555303914714402376291148248903720786783217987969578849390295889925565220060773648972549336444258434113796676160080771025631071408778956638556182695114829716332963679733007952391088882588956272581429114795790146450273595625358278738933941963291922784114552379487595207409284373120818387407630160513696955102921480483874859487725833023377325563846164087844436049071291606555433320838045365145012298432998374125894939414264078844021028784558618784617685379287084896274128193349307894064682758476299070826514546680363748458136957493112989765035117915083188143673789835915339607078951836757619692639412812053219229931034142016248954229958600235065896215401018705188309933239810037442178581195494277139054587791818655376227438144392248056377726909841329959142324500183293387091538092545562064818598115553915109447131977824802876364775251562117720625401544167689811110271256281058710959110924045588788465747316420172705360833111987849581733289625581187933749143032243084896799666916738252100602623924183827842280679110395523481622026052430105998523102003651610425336383658223486793250227966322542634179341831310738870514502677376971621458105497580608422270943267262593331826798439637069369940525769564596603998287050468212839464369306817522165866012774566394334814811188683964768798358308783547248431091650279616883721071995883191002315875903842024606006927850805715205681839798580595639545878423596214368515245908834760505040376222948469415420758562642540360633511127996047371587752805067255626046805548941257927508901962774633106854647346450030480703876750296971215897954424941749030544353291017981321282664807289690940927144187879889625358348393136248545892118509334875901322781990884784363527944865112163282401124263296736412470819455379531556892145383253153371075913602032889789914669029880953720420433674947807345800533886121993151318045920405778070137740954796526830915184338856221023905733036877632762645277439068024606769115012486562684173752895908726773287284469935565013739136309218655169919180924979063176005748405816809307785148148135668268506228222220287053656258628932413160393129532702310546896296985453334665477157587071401177308287274887234520156689368593359600741859197507238159602586657523726009587588377871551740832692764439773985878383731756965117824037834314642897180362035821904940766404852232526079023636259225175799947795604660273304918726663163140411331233316459324402610054042454749949822711564779736486671623746833167787302833511457589054517678561374557230536936166462222640868003234775392380835970715743599495149488394262970581703285926117220355227702694057198738489798135376852993708797534204125441667334135887766098286982192810197565614021288286820339834867666181684155844312006006185606839051745870435274672255206281490593356369649026682447875187931520823032179152973925036367110749700046646379284184352105699237316275622512387744986080316300697711091567857878409945141160646528775993169323363746504156618245850452271800990777865652571557190662663312395728832156394809572628865647927374451869095503626242933930632253131031517270882524933465339839822144400717302410835835686299437358766779259979802744403468998809462404180344416009550702687214385275110690552046983133804183533923577352603540376438592723999220470640634949192115359880249580942916490157946568106784952189818653149307831777024697062379339392629468001960630916295107931700097127914649148127078999198726915590145816647565890467681451066872962295780425238202077117666138348100018748813656586512096854569092154711284937680807818761143658693419793018707693169281695556505024079602464535961504341985348258408094371571206995612605441277714711044962225268730341887017041109778303410969890667815044140614149395513530015820979620703066221199836036933609951128763843362731795229761640300295603651428743028563609819742221095432447056028374395065966445842463319011884765943816010369022025610745115352437399734490326197240076861645024674073413903176039564253481570900644745337681592075596017034624759110880279470885121741515823663262455964564313358413280629981911020764365493922616335000411206096384903918930798894305202099918986824826276314102895312486212613087597823804222326270260226516098801690002245582801061793309468643910576596182068206223989541324488621593616016679274441140333006068668256084903014063415478424276969685855237869742175244613002929023057030878820639787389053498917851868198110176031470293228112043222409069078623847198937492246485034825197446139609229066925611267812512881060678534695748239816637270434425414976454320979521081488387695711495121349930999196191699591049140917624559438043186572753270757846764056708218550218276512815706941095892062095012524179930222342370959414351893772199654918089924049228002596422475198782852158979201475991560095689896336897504398975050674831249060281385005191219519255893482425026082888215175715906653615340342030106688782310155259803929609630798485358303469995758386584537009599057174865920500886316830474543809453314103024623101400254460578859418532881344027030264505330256235625251747929936579278952443393635720118010941080302990788643514483868598473772159910154688502113270766345586422848638807176525051458593346800355360478957167463627669006451058661445546897284519577275882726654907455875160310007660869163688153820067696906220707308194423574327154924456434585859622633130428292770473650646470636799126506279602182653484168269087082174002430618005412078965695516260615684435496835907190452451495951742906232999696738436082865223612581044572162759925523996836719094585732238153418496852214242552980873973163345216256680805656435225621544428524314759274265335097199839339048640895307423899707391377523005640785221212910231913531389743590939943547343739125708261924474749901365939265747341229522886276336653492241560530201114219331789454985471207208027353700671964624638384861577413293368970599060373136905632809094903088473243426879756910434017528650441909241074383755831545434190095881625715403334234872241608072812997824165429526732965516296180820797561695006137127733004124140580358092675039220880998093934126130940425353191918566556553825493824494004970000985123237173165281154045282690057246025359424578635573207909071603601233635067893301963036121701650024864524449527150966058658950500981511173362505963216714673794293084146462272178485904823832879200523816463856703996589687870008021529954722357125178786307203524414329062257647366067792495956847597634018443778670793082668433853602093117689529052225947455043038872820504316913970164027792008091891149623609196173663080991484146737509355331234217318245348018512449603852802141055975147276938053569611722356487676446301293726008887408849950554316524904104899175841441743235844496054077567408529914179993654034372758956497697817785404091496358479907977774076289908342305551407476759849861903416210540383603131323512960336179497344438435513512629869597304621518568343099233377780227260274750369934296189451819150827154251142850648362324946129682657018038091743984640990028982210563215946746071917590892823303898709568293666235726989060607649136510111400102012092943165087054634593732779530144165764352792486462483991026423436794451630529487596817423462541637833490764415868170755278888184772705573084175539994110456441306113374322498673173254345045675041837240382400483397448188844915486306713691055346048450129391715218141388173568381522381190902151412418777544425818362039881465424381609169136944497664257356088214572316808855427754678017924429102488895947805308158654222305106432376347210596556311498927930267861465056040494760374211938957785062878885367983573334775567937519220763819592051108355446446680771399912168072558932557322116573601750695681858442368006686484324301192533578879449876735937377698644821292130598070051472738735038051212293583072529429816411373697828046918575002098023549590298372760962265737586908753904044016602193853500588024148791038905012047461613404310358900413039001243628559092856074576857329373374394150594418700209240603909860687871384830324282225896519790568810450397962008225934722997668758095690791106395839182683195819896288508303136436104917738281150274245404048420152129298423887402722369935545449252050728934259823366048084334246018219374900857717144407892508028617260442849398619638182961658012251154046196917893077604964147971395173746562814627223091005825306931403798040682010279684500939630766541951165693044001028067619137096045867759850894478513470252091922776753639522427969227042807506472777976073856870394913410452176046438289075750959031815357312546351221722789636155216476410252134348530250928738074233170832242373516805298928271859822360522137134175666859219903375171042581176589873898519021215139695110292979936250130813753499927328937587928824007489405337502048883117510447613111905386707703600644000458329897687687391450655576980460585540462699598199292308924041314743394753196474686389126568497457306541938068233212425904324060000118790282089246327132165509973209748776424455789316881858040194388326624423710224970491320199191879752047000511238511871246142721843793381764375746997298830533732862487007657795550783544932298560046992392882692142036633072082414858856562526227424258403881795346702316135581444749156265379621846113054370361632395510918219508427266085686365451616665084408291267056428044530428582021013166398271609366143936162514824863446822209494102822012553733504613415507270265225655486092880355353338263986316169805082085885583554933023361241444081799960972216334310408425641043754430333075244995432154380619980960601037301735861415757011720102143207595557495963959580847423338638486895785175740165538793137281851218769241597749975802123304490629135434267929348830139995099210086210465886759891799826003741221403564119284839983338602365550277159613420885631654055564005531522294657372987329373760543719936803714812197480623675807232060145235625118613115007356820304644746621056073393225263732711060614574186528194128452536171840614025084875337911881035782217599048417139204469828634269702899088201836345936784375856316484331267069323915385608025410288757671194396600613486471810861993749309564867570457002014148350931995765023300475729357266927419063288154301114124377882725645456766015134846891796526662413974016086286977809584152150108442899533718090707467362392185495443417899975599078193681536893699089535324710004909951116371349236024429232371656610883434705294552924890288102500412727036141988925914929158577970388638600241839638859427166477446226829887741559217398860699250385751530659389443156508178163707784604819801945486326590969817761634104311168808389013864777502353398709749555530903513347732093013020222935483381702233593126737628292652020082037508137863972953377277518692742891036065608864653800407394541825067491249928972080116212842777501279685086582082809885183196619002356679368552812609556661308468396247893298759646771987122668870316840997915533019878759459914976032291227847682398997754493361657951686389129098636570731858369933100153770350218646735567616771707606284324928185966776244929036616378381169225503851952040787227659128354784160128558767848616465671544944958223960047355424790783796451561463110191636916625405019034758172295708232936644816621855028590379182690947725792418163833774626605738951032577913596309563153670885579947338208228302368475620694249915506315231334783177520897627711109507640552842281604752689865198069501959702006792605993096236948616411423001971090219275035645789573661258637854028017858944439602869376435208336579417462963134782845244291095075129193749802570632123693544613744425834422020134853730482616900417045850425413649068801173410082903279524570595255531860017649269840325072485108415989546587931153948224158026306165620362200014065371588482372031565555361579264844849375008490607859807347948000247106412279610975515650254164349278088809390005310374733379377848328406253723825531709808282348516956912194688472016978589345253701912473076190734704364627493163911291737081416304741740784318627147244534799685812718404583780937132641514880953907205053298896127067264329385890732433547309553585438030448743891090719392148013672658558898253088315372677910242051172086423549791329125811345443205471224058594457053528640740893733196887440283316108945975643045055418922243875553307171614220084439973232284568264069440939598063838455810721853636203947513783911973091914623428485600033504218799746017153297320931284388803232007217054732244031114145783345492783426476033557778275033669799856737621932485829423527407732452220133142903434689197310823944311265009168410530648147200472185224505275949912073145809106578546010900057871247761345378235752561267721432738385541868435300514518055414651885968939357467398411730482345789946970926723296147886780453300916823481693616687801786784207452939480498521285726203785192969927771505660496765372195853598573844384229129260873700177835056928662828657105315995105036819707434864567666404150598339936460228351790953333057231319677930062507903614379190928131668471985026507237938812937477119892250902264980929081829813741038237564447993689548225677573791015785251975883327191592619677945493881811701825156153824819415582379067575739159074850091175025233747989539452049403223097946334269089417942399587661196453671395307210890889593651186401785980487929009746554087845717714780700935539741353099649586852240835179369410036206511308209827100869835170187983655003514055882947741718128312206111173388025938368463662836820620659155351677144571478020795669428928163243217681931562270562852471741831863441596502594801349441302459735870566217436778738919131188038195339462028331383225921325851693497619660726660988283340115608688023241906220803589842709824694844871319250536355972176562999720355128180954726495869931562723761320836427825340389000158061310624210174227466560221095250889910610971367549882501594753826300005560451929318495115339885895083747372732758540192678502914155669363267864424066365939869945751543872447009469752625127738588359391867355267898804475838922200958841776095002592900974683314208011425728744363398179119600811897296967247745292595141706659046879733957014056250900028185070770743651970481503697498220463172896742994837238198932242808359726197210077739172777867176361915918899189454439850697784709646563503343159138572384148870671779057254654664449705356041865266819866058019086492631688067886707411969701347075887487985534228877940233702999304743050413192978227354464235772937036873199030784606731661622073658889401191942126511885998868096534529865125051505645926162322070230933829533710922330488984456666659682056369443047203739872480433570470054115738826942863469877493973484193411687767215597022736686268354825311557222469530079945875840828770285959896394583237752645171912518628227504787603367830879936713670752941521161184356008562422889360049806471464599088327959422978467125131589523466328831383900231843543763248084316272632852167861177375703266961957296526289491564558231407615251507914276861589582022450927434145139209874389234369106981495073817774501628960154356085086805407609213348041950983076864267115060805634884171609127559748067109351846476763010495557098353839720523772578684799773391504751505239629936124004654952143702261165427425296138280169837092642771974032014338205617906031763506159778907596438579269566264331594285738275893720475165029400162584383619182576390725675816538549048603556571341078447698301691758482288890574996356108735234557366125259789532358934368863408336489875277947489915350983938130006044771523148059390168271457879825105213705538403556570892916772531657543394632918038045658745386453649696071001811267831597271031755773834310107835891988426769011539705682180128122039355166911803378961154883786798287284450751965979059438724527223418908233898867054187630145892526745804829394030326301351289228275925294889275219813211674271676452522508956227417250652456607571220067812420286492073575825077004547868628502692758678222580087811086889012173931771333286395365607733658451037906080111288110554331943535479277797066033055536471887474018523732631234656521421713171372659075204008829813376432554075739113842284323670511883637438938028561832955944408837479301081660601245181556336876519633776247268203775435958278237269651210842228226579200598787130694409993167934964936426811201709489959858892251289805576757648855897791225743193911594033611121672104188598950694554355501809589325431495664929646651562784682268253527000979214310028845428608104811602032168393239261151539087223366589400195691097312323758812111308166624297241271358534894485282312930527140030158510230476777440373094526310910028295838902924960594408038591222013704090561263843493832606314260039833078153677389831269790491238068090001655316099440294943847233832570860493410688251724532171372455940096783166880808333514197207565236823954441538082350601282262881105414710687651157805955549474117182705296374841065890934378806940847255018951639837555871418967501954445712777092111056315578542104911395602137038274240583520936022010227000734425831724309991657925243679794381928706676049324468647246316876408614866346125680842529439399647498720456516740089661885413006823234151612266765199874658073041986199522077468261353465582686604626444994123129799785388028187408844356318534532936896791654767532204150269120661457949796581925556119546088301192961774362440605855677744942960218026461378709545397905168720852992292628899480550412556957049441096862726083153710024356605012734052250901157079242025194980886081474734514579937105959418695386456760417337991109669631771242126777101711826304939345823714664553052214161987550005802134179189156498321915198603910990451678182404403871284969332767069627504112722789717816579630877680332866456333903157505060265997909455367302329359601914827850545431835403535877513956198592601201638601302170621635274256540929171615175702186151154935947554895492860230954802423993966685103864048973980410625190636983356169927380518166135434209622265990847253392032656532401505746007363530518602035361504981346153010704849066475069537310013436413930294930129351638558922924960386770314140693189179186419366863139482210270228404840668010302793634176428543891952782246769387682703285480193629367289985104791932646888061461689796246380561633691939270776687117987069061822838718379500808427564449841401606151866287879396747705120977233706035754772922949765109239320742697987593110168235975015253712441702936979806742304312765436656061847227141879252488700933161469978472856203333781959836727338594137517165928484670295862754020613683244945029481700901546039648183320962058978865370730779772464112111310741586280962509474806299993198013025579776700707371178288711426976769872260081318297483603915476930910648027490650489505500014347706804292259546745814378160345451003734834608638663055298621892524647945914996173512424534880356247763492034588329200734386988606628967358530672672893419419028385688318992043432014276136733804362433155746543514775638864214367952066006981497731476807377169343434599431333391051823630545882901154139781216330131926511038987236190568606856346261171458841125144477758532798416748735103838552879151907630064241347977190002515965083969455216515155017119273841398895592064355524372723768483577443400587746584980363999065754651528205727000337002705073913424387581458208971632146925847256795681415061186895182178273261962132014212442617541145204508306057342979149486402735060932047920167525097359454730180292153380375510678252208105545470209525563265748956019517495687486099459091493923322750601852957061063001778026849757939866336571064156613450897609475352423315650165919317006741080718114032641660285549237902175027338847250161562758945200031700947100275547081228545587252898686035524050133289109301742137335652021978584577026617268429125857160586995275206859408909742886746227121215403539332242136936474145617927431510447757505731447534399065108906466907995109288081325444328184282620991076351055153158952892697616944273036623711413146167682328843520854742581610261031426031548055212341833711571892384688220349576101498052696502764805123990486573324633164012086223020363162733037673257650962546814386252132451793300046521385297840897938801525580172212528231167140962500590434318126580615074606504674219716992057869587586359061241647065888977545282370163702117237191823904897896913421380724961849063261026945059565099365940708524821240675452711212967313953177458155564837276246120182387426898416579108122070653529166620185135032125861961761031991600023770390012894045427589077977332688817264596289054659273020432929756526535339266225178341970807433653038994299034351515676526212026235620806095907939853862335439871457980436477011638711696468259859625257568936077861124977389548691896988910904659950426735507793128508488404674619723304778969663374279329602548425228747928904227143680853783487515184261342235184768570649442627627146289552098194445373614826015873065387168246991719341635924824143745560447935328817861516928945264916780432139251099937472294729046654293774744380896202023631578359449360059389676726343909391329096352156129511652377351745861195120834644848818277612902983626193973634872049091927827732357773517266873526265896035259002120695999290760603726407881875588639049184713329301681579255776229003467887811551915532762156201050230855044134868486633815733532415062128818842677501845412605003822717915717347956374771400178923788153660020812786123711180264631932423993050298004468025920386872175032618212533981753062959543111667070302836704702263522162123993526182485349874845808717951844484661177676722914158087144980459416373631569133775760668676956775689680824649044134034333445022440887884459447785620671055120000026838461419988016305517930408573456225378491438878635820466774527384891875324121293884718233451460616752875338483133361631625088617602885152182324452331408240379517637511516472299567560586554252704978557215482408521451747297775791568384312152025712064905952795172152610594047157378117661205118893771930424684434605027342659503177421253270404614308288958967314636533372577648802513733463537540226165679616803673212467884446691034359602137287640798666620890572429402207271584612792264914407989901944957211588725007041294976926612981881604492198304318440627178907372222199491522287159347380412083487421506561773668660347243149230450719765908409404719751227751591924520943582069085491030478020602070683982166935311351767335175157388499243391446952255894530497558538196380406518161735299849528947006096751409058602008667019286699320567759442452603730539130008711967179363237536032401197735934982706905709357362679155977543776142895130472215514741256214102440529764287009261387773277959356296826653874010969603454946541769335548497521075159413545903619946488939605836328794268193479735337442361701522305693704018568651040201037116026724987101577955525126515338260943136267779649572207328033137560206127732410505484280730809339066087615168024850448520254187856891707144392353319608207944842544030374615653304131176002488199419965616562267989787016077775835961968428560733097775591970633344159162078880221314728522586039319526658459088580542587056764649615692848144924507674112460777957384395380596056206405980027009195699290253607650350563720887508030009125936180173498107187477748414431220587909449119525571463041106277701760090847919438293991117952764861152750184778931675985225638739848841871020182776259070489034171689741662508565329088495226387681143491344622476055345301672090608111630524613918289366343361508706940914227942344305656846207782758879703335419158270786108181843986632789713475541013367052434505049884639979610956826938319341702508068832737408471117038453984402584780711368512194976416309907751947916076618308499159472822612993016598199959698594994435467677421628392969559294375440204838939028921947709478014088429042130520171741474813831307656911036871956690045523927385303594537415429729696969574041064586036108948620217959178571375525476371508605073600856599370071250057159267395410641209433608224963063372368247139947744781833900767640168792811164302491396783736346364759592754724541008011104932426371011154202511075231116149072449455562306663256335663911056315575642523345901177383670196090147530567293317721472943074073207614607115353828738643542312180442511324187364262130227633059676532126247595834403354211457638391310018834769681754115280771057791449758133708448115883289090863580438906057735415946613883307918716649403314707574275461552540511581904137626152502598836378610417228450505341620041025336481364795442613629104901385824832637796460013791791943297755825263087337225537589898397720318811676748545670987148681542238781370052078881575843010826573716887164509703954471507327476900419468680830892951209214002747224879930485787932717736847152803111402761936798375957958673913303577937576273604388689258271741205843235144799093863091143593861741956545301552907685272949906346664269005064680646418450840555804936330769255930831663326797088675435591863667264032138785284672515051368566232114676790037002700692218937312540057937893894016005130279813679696339580661552811520890891645897740145676493920946665440001450352185199874852532311894507542977101420428364819470968304558435852032506107319734056227495689740486135633438644919069145116814050489531660645682420483240816018526630122670273326981742460909649550345226019898971229970187805478081121999431773525287172858292853833136507521457205853857231501421202248185755309418376285929070098610323367556782009712272711213997849865404787127486231775066611149072314768961282498912731892433551573641916004566425073819011137880349864881078319400826871842388590466049979699666898215721526029854559157651201774746603583804620250536603049798505335128591800302488389143903031463777003831535834994174580349018215816331447687972118041994185457141846755621944166516946197250684676744015773176047531840224692692510603529071485363897739780972927422574651180706685728945731120187090581604761976067310047131754156383538095282658609530496184194759198364118667125107393575180824546307508748706120365319980957231374367205800451606675274110023101454026599403367919618600174560540228012090951438329817060424842269356489499002777027959821825636370103152165904742911645446811553571226563309612999514055154327003415331549357221601059647567180019214294090125421221887829553648364732074749795473280384569446270848961114118298680683511718866038479214003404607411594323072832240965213254186603008224018523157367516653055098798809626010347322023852574056672616418515353481508193407238683561382919330823257919400632018537447772934065202484721430929818422853075190268527700945584711817641822684912727629130405932981026358538905912910275139740310874585336360605269957291775699911381199121349533309278486074501098620207567329990478487114086851440213345420216391428122052249263756241389585851349425372845723112152234196074766553943271473164680482969552363840699995539734816181857661977249790726899178466572023022096701678446298709627748166612347334060918846475600354344280960830541258082566548291908796757586479052120904313018603353601144362461352317035383610853540057016354344690819145584030634890275127212017438223967597038100922595490987411158646303094603732160550925510639105090012328056756381957370276810917677642485768972004946710355084929349628092549323835188707332453537176891727544230826659953218899243876539444467143794134285568983155033378999595549825016199299582213737140972501418717031781942134095614281864740573220208262914465151863665859760309387928289818066506757560796743322722061958687843489137233838300923478165210022664218084003822101108431487021915654411584079849320934093195376029814298307879879182965743422877211358892275234974373302412596808903982664299521059377558272461697468235660810265664570695162545044286007413982130145238023800600896254383754238498780709790346185881453998746972297938015998070072072381655346075100145337399835440893987017632550169990926856446099391281488055462489029837235359693582362231876370107010470457923788641758884921750341337666433834705564629849454228984059832824000302944627172925169135162318275391419220357252184741284719580307044415596675905770666124803707973968146107335996861104052175124916941967967190087579316818591339112326446949670518868887626641639630830575079906561708546380487497042570843084314251897831659309141142474450797486424335467629210784691584094811202255899151082591457169580233760433651512882109115619966907258149200841073861085546260043387434568608576016506855692954201235744569196312194891943723711908167661252257259768540399696741792676758062328480623839377663018561230199646422443179306741157716802846142312890986623981240988554922211466901592592928038304770539668161532755470528704246252862472535324576801477403626426970530977341318130706502080859867551073535472547798061891192744677475420964667120684516090857795608205660182914924348352356577471005151584656696842737903385974935653144272232760905949979877811413013091173025667547881625832395437180845975259711092537169170184581171554717619675127214864777758179696053582403688935111435629779922269651354077427373054022189154152812921375605983474554113538642840391926118078154427222808203149619621694838830909382080216630078085288083087360774677703838411139820223919175931992084502796647651518003002533212487036442302978404626298118776717104621366357048923563182064300919467515182946613845831187952397845358959379683733462761359785349087769565694299147987675918247035623500662654829580765492606394570500097693030461989152031599594923737996465222044231887661955153135977470274281402525836377793823660923016689705333407666445190730189945235438603360380173413575571234372618245503863495243068635321740165839553867827617683548427807030445579158887198146778731786053981699025819374708283549649245475941647134848985359197578547106243911281532711450636574577419244398387882957899053893476437094064241388918005185859617108462694021868617614959353083957820158753335714071456368452207169817430847489182342966387222829492421611798875046220628243702563097959558639567565866375978019142503233302988286255757018558841496792228003455004892506723317649073613534362825778192932527091851343215232041246611120444107476885285188227677630217717018402441828978418536643197903620283391527953356036267346151667016173631423131111690563893247182148701416694323965700343121812580640408628121333790750600659529917929286488330033116082472324336982831140082173454385056355757932394260680260445628277900846875459342635323081763867315897273484848808358302178071083031370989670508822285697826026309426819072963667510246581919979789110079362213258713556899902919305594333387966851238595416187709355365223228671897568158122043282864701965012877075414336955300708510849692951422519289223307569688708634354329040465549895661852588773171528010075875340317416078616853253755284798299575213122243834369890297142475211720491371512924227111152299536369011416535123731029603881426930760953792173727674461249146685060496998994019707298076966422807762764009404634572385107325824781224998933647008187144300003257949331173889263277622743289769657686516720295582614659255652183851893426971459448564810385006610578490847835308503624796485829184401262451817708541038573596246433704716737566436978556340881603796720706720286267202175882985969546657277750449797562590089363658606257521872919877742661188256473859643632731292711267091586272864734519759899541157081506315177957585144052797172334193512426228997692801815806487345125846824989777580093383759789259849992885253731633298218408011287827396773197599708037744074026136720340391544301297391233453033122883717862362149685034813708728809095464604171601551736914779654250961907828660750537707757373604162122948429716500209979694962341566465151697248058930805054151165457115949870516507439756431082711344447993441003393636601894472404692075521405137622949644476897224716364207885165173050781585989235932072646943436734762652321731245429244443328519787835532676165423433203507070010299011302593167805221845829059754530391854452418067814981222616443495353682517584364563792849192863786010650433692740917774496267870254102918425783100500998998996486964614890961510288130403032704451509982683507925802708578873825110085315745292333970959748133588741603634030534489872948284400035648872306613612211334386762570252045072238797058541320003202543125899495951039835519898643255684561721173347324988653461629720042553950342618834402514965863584422389381223236511367420222560718668007870885413776131836349908485699610756946695138128430251617283358502603758561987844213765401475016540271451067631764118861105761766337278112106712279732614123772950935700561521065186375120410675065515546920921177413413981966368203573715760821551196634365490938695684605253674131180920426932973993101935247168922045773217897395113451768908675308010217189484399744014038450266967776629279741343472966283267866560007368821302028203821326271232420615830169709881649124995518915512321360720851598726028916943822634422455500136423901036634796104690208258312389827201518688269128716811068298976325348171928604333230784595822050517044758780208139029655539031542302585911833872306534653090046607854017290956202401167072975414378098155484853328619474426232128105870980603005971621257334258751407122501448482592331660571576886068884293278970918840736683669157531273172031007102006556618460240182348786967465446355717038150351055534703237436926564687860154932287179717409660100907288384275266270859310953471711423665056370724074413318403186535832777181072680333334975419654695019180359073662555183801394004247933807691364958190895283047759644942380874690662437824512112322265059876063355168990302075935740750441910648998365190615542746711844898684265567596258325057818550220922835238569958284485087981983553091297718331526052048667077841743410621588217675472989585009435328470803562490437471012649244985527886216386128929564834726036957081808159982883233778628385118214282069844697359395485787719268430632959097286606759237141202239568841749268912292269657125545198546677551582441879231926265948375865483431214145918116631158323905097167379177957898747417614617283477675802385128828455556915490811993607036963348225329625802233689562623321623951132529096614333896503269628403592307542854713489135075988825394178926822484003687110631329080354434976422979212922200012648651927918134241523722973624504901333635913564297054790856350826329596289256781241343349210987504271301773910369528625168133045753833810954465507236963088474483257948013494552973391675323791031577375011707594594162476345461305268922527387423805294242347532243908552132785858868691414241649448492613829377201297024878786960998965408102329755775936912174608136965418392607973703975191969646159651053020575444154741630896733779947957190498627595274297538352323450180360712364517203314297378771031004932756425950324740295349446342578779662862160132752727199018445885402233687468942537459858391909474171126329501903606213655909690062339296172176340892830538080438718672019832257492122666204775568093473700149323518531538036085373373785366900377474677554434384682303480799809761546798806497749023204844715012480789122330292853517131666502902372061331879077978870560879306291069201609055736704706690435073889903747814867361226676355596573705255047195330450008246827645005653271313771672180581400159974411883688223920803134359885349035747528355750490819844735953520441239760197391132365268666857520672745828998976967007741556598777981088428595450952561490259858841286558055632034982879876883861698565860793959001787384349440953207985841768313842791684865928683923820938704543114349777997564488826093575158485557162432263667976932942317661394877044887340267737421827131975665660699289597326784160671314999551239632056055462328695210250914509981657507101873095034778294095672150349578838344608709451155615388415993537605469474513714200353789195279696473662770737995060200071600541115959065880217233071122320981477135122973831726918627920191251718118294282517303864293384311800241786344767502697154602662580370629789766169458460638657916750622109897741856345288683449660001517885434361477873891052188382190430524697973133179215676975269871447672361873529172672488241253289678779627798945129785930443988710164095460948986360230748836602880541741330013572229320871723948971406951115373024632855721707653581588222475879320694795585333170689624220629236555666957676758052173723093854876904465163258651288097883123158725005626158202183697423710832826716601269383979795138203721511742744853054247373068487371230566742200527840525499565468017188086489595490740081180901252329766980907733376126024220678213943862883100002598986268074188185285583610069479119468154117221957666990579448672950727346949635500255284959768222357255891795972043532719705731766676096161408056219256667567947940928470994797894060947483501839196531126801879343134130230171953505582106615771774670951306653323908751437730337339233805070452544145426090389000639373163527632856395894900955037721343964799966186810607592125160729443802031680352484088088484602967848128448948160883467045672240664984372638449969011396298524673913153969189044840435676927426108368539997317993779701806962675863438913103595503000771970337842728588211075885182892070010523308852019236955711835466844350706411379318290628791396012330386598869909064483740964353458017409621825827836662206138579124377315310575923687220323380390266229929839034674959693651696430981494645988062548596458823931987914501810922572570427682178390988651060774437313711176175473997834200209444836824203159247707212744893832301013602328493565225518058773437799720545652587862574631986821475898230797114710544482996537690876884870045461203145992181112170971412250417602100264374351042314405818864812972728098048729957187426736188244246571940252084670257782421521157529974111596736140874257442334623409829347528623673511004528676326341752282544400967269568527776979780244463716261037461496095583511714391232408272343694351244258776246514508676293206696822237075745825262887337652712209980705821835256585250849377638145406166260439473802286547977756943234821600771823475819675123656069914542627107456312999951462216967624549917173696391825650828714752456399676847394853703018564861215100266404501536472851720811168534037848535888092693111383768187983090992122808629678189603636914838643906602775510402642779178208700316652345761353111096304648643585504526771839910888688089348145755366070313242624536275241352058296204039826587055181341529342067090448711631457258151957522858026688327160629754176649081066863134162411313951082302225086040412487858441819480432152407832968258027020751165346805292720332447245391196248647106591549829509989067188353747575449436641023887350616746166374541333339736343244369073630780259547613522543548223742074902857402989997205517414127226111757322703470710567540558316889934328159462907544712549034025958547645011297448554107619137574029557353817864026363976303590059285709200916562994513724763255662127334659207914491308913968472674019086466607404925498920823409971465169320406567037828929104463141640948186323911670988645332233587766259481395720546700851195109421820368378452573076792388679152394573881230672622208838970217413955387075807722327126565336044010045815057264262737236370071702012660204976792066481434856874412746770123898585018901229412908970741484315990467099811484872034730750131865186321305095372979433408236042346342037792224212715578134939532066962987975489239409190586242422660107074451455301699359930726331007869650949826355171620687901582644092587962033621484670085332388963120818996187470342575169348810739344150787711835534442803978064118835862917131795438992680456358935042295258193517787074050535800343076077382471637451347524375536373015541352945459397609475995839663653957979377079713699984403848838087109041713576042016963433193670985119689515017086657318236045109060186169141207363706698866962474775776841801822774904802165461831325386218020229492503704057828701713662225688771053367114085133881482957238584536719978899915823630101249294070581285986181514968865363312648111571398036598275974639013572750743597832208385316585232301431657261009918926848600362862711891691664694965777155284635917605360935778976715448814968111358600974737483690963696481232723567712479270572965022891761776270836020656260436622263923726262630018714741156321624413370046001425370608448856429396499867150100481556170252999536095006616829001821251080893179417541483684606668615851823038347503400957913470794179212226247237725107672013831388209566767703025332458482206390850483098550673403501349561316321441864399658951226660572002866878933916013333199033832796332038891102869121519802888860565205904906830218731492278464999952897633077199389376702798897182312216893300135005517099134215443016989131725197786865205598629100121841751349641344540146936036555731157102758525885013812077423805189748627661400484842655132219828184842660255697117816947367843991924647471338452897432307165919952377180014574759006251995793972345190643731501860649314548524660945446029697069758167537875764416008353173086325162296699568102260856095548439588596075752120922711127218277874070594910243666359413600806140741657932790380298966996859578437424486990627902670961582038643481435336877497382162881405146932962897653593576713242785937004923482651659088253417969082977634255165583705921151566306953150556107603054302960315878936311907934294418651604783681758067396092293353563076843574758722877893765573197569777742156771521573889845035280969246498606555666396930808760909891798195462581437800553198306786436904220332173724222694083701776830221909131599917482969882158741154216808560630600655936829156739379153575261549275991201597384553601000712497554258222002229344503045593303066282253388740778413169402035122816084074035699496543362357863138482363228060822128128802134756070138975137711695677501757861353664826907105119668562931985809495975577128118719208534303563964933630782119985394429621625246546931407666347432564880370647905367839822531216762253183113088963730480163884544799377285734803305554535252845020652366280206049711497286977539911428188592856868341184854938032512621504044912447204975860354487040904970636515392672680599338732054883371119299527157045734546752424992507210254577649795420223520859815161839930946598688354799616644034958685631795835446473880919365001944545250113464781013636468036299931786160552856473184996513568835892143620481513915351631194797244616649605121576661969561296693531826422740969260536683110567990293437011970016809848926684047634903846555153981789188053112003162038157691185154576992239317718356707082778839681327688394596004264157699832621333662911686542539450487679336645211475927205339847562601174975407663921811751081279992612178819623452444581180527391554101098622462483334010681140500663806146468606603603838696872813849034488741949831570507755510611150174391413234839129379204766181190073133501169706261217984528986435181732919854081417597078647024157519211404123402906720519238909947072687112680052398745988119956876620288421599567378766617776664026324228060487420450698195764558268074188269528711933398380615151234199905347366125242255520276660960830413845123426188977105647333713873018446755026535491950656158252361690756749601387974301441548812391607165225586120043840998557176909811211481527322905866911684727584579701149549883631760149588354554525883895762794414306596366038628419132150216373925657095590063120803770187892194362447550651993720649544915730268020409024900602825861703703877765024349382501004154158448682680338696262413826364912359771343736853116272826816443743264834762201636493233620147117944923126120196690295687153249523314683946628481213178112925349395036404775861030420012910287156584043158116202222391491500308349328960485693980269945944641535316903405370385695010207076690008407956851611978444253254503592501554141628103436809555841736090096947125120650443537481489982092443693876187210352402385902027171282110052852897303076998933433007859668945009800471541496301542458871083942002286783876495446341271302596922692364477359631723067318882837688777695988077845962536669342218769995097690742222239505808341956420288273136443362436611218632089067126649294989955742091442702261738402469629887430577916575605286761970237589214472720097090327272925588704488219066476302290538653812695804157413865802127552839953588918313767508771099220346195051428437246016278553810906944146452381338747065676614390512779964589690690791192151570230137359529802586054032479128355738656789413965634307243793032232841191094253800155214123750272292494730234174255646696729418615120358088226858911715533997061772062531466764501249638331861631198317245902912135589026054406183318538349267368245593384653917389880013179774376869361824222543011672257699963065881855973576042641605692049048083644257680086536563386671609054246608154892273627604518086657128693037885076715397752047657013142251883793839369597592152848027235939557134936804856921601527937220960641064743097998674307724190172521629537045668652450175659034853612850391799450053327488254463345214073839402239736068431832427576310964346152720626060297722663415582972467355403989919747774984229573575094114154452321864131645692879393033660452239468739435094286648473252026386309802441107237229145191884718621225153895073759751848040096356230669244582864464979253737791349786027239065766304594884850627474045439391230811595509996339250616190628933535786704278770319593842397119709624420838471892040742828712114751999917532541683466568139340336659372526115200959976987410634065851178634809843866339784482601199773097972277359363878273468524675333801369725840058296358856005039778494367558700285384678144528272760306545433168107355868632732367105309882384175374427441121403026083625754846249321942229734357831503891673878202424835613516371794310323464170275060865709422728532060178500166236682690132273402857651204577397921111058994618064321073015994578714382522834060928125464169703108473955827783302028412383385159468082791029583559879209540166801266448113723775252549164533124084917002629394353849884403570344708383364272602771593649843956744678994701733652490036437864466009614324399566222783348397756564274495861372891189305400864474311512761678397560656505064744280674640904834921108012225192907894177471791340042308544613402360538336785427989513573001130148869500414476590174271972709518749239426439213593597440331122577453618369617243296314932637361695476044716928120171030885253743438510471334940658089384229329708828586453448197121550935395140649252383248754159648831875649276242881896703914643916876625618540605929560425716308939375076832322949451961685680866935242123551415072529910087639703601876096990422043889553128316264874042573025781705669027995886472013538891569788179914316885841890525437274017036805146064752001474568276189344011553023126535199025022171796570605512912314696608494851071509639615503026922027427462146173179748175749838096127783120522063056265905537076334278873465568155194928901731081046910999744239242969309751192404079848047104814184858112464989937588839527165037781761925823404525741508369369492124596626824090238864488313827720936054739254306003531871929216694310067607872295021984268793525277666332914265759859158751182125098850786122037201057398240007970955758786854236826308322227246076587025582231757104407719121406718563038500518720485973868185362135447408413744015440451538916315659373984215054503287558372380172320844322707751974610203826120456446165941631748391999228993576464100511496585555607035450201098836573405655509765848882809722303890688324942698674469160274593200240889918924254008640799985391923826774421424971179823446384110379670249169567234656050865335903215078843509786862240172568342803058344614960335136724322280642869390681536418751802969014617100609429452750790944257650236847852670805016936490867818546139385770546866652829091050689278123402552301962036837012869309009955512847703575704905713860233399746981637405330471971451479275608916243742125703052313511643735629820585095499854794383190032169975262759061785500785249100698169981284365334885079379269324110460868527001401655878762976542201438296585243276138875799867681831513555978004444756963454732078526149081096098663837685151585108332903243310309896092968620735918770466346400192794423948310478568277070814104432338432921839117001441840873426065027407670291671964265500465105150461008707823307562201468731000496362986982632616976287893754471209528580343549635393743432957190235206248509953083579224431453007599107027090861432113290907663411169437157407314039343956475951326695428080597218591182744265146181835654208300164349249218336688613895362436083320024700840715243621573209127216723741758599677672750380520319274572717456950639098351924578060111681109090229423585417038442053866744301716183836659880397866468067204495250748417407152832359906025614527378534054653450612702250506889378843795500533545831139903653161148415078460116954578504035318741014296551972814676033713459536909307069343537728118040763081499962281965461685560703175786960076245414555413667710413332379772740171028759004009538564332467935933835912673769051720058973580293893771500949143876167620382402813026843851400516676259154090307174022476925395843262564474714815011246425067864889058786598264171472434942515279152396226996434697962795669549227938817419849543836901582717154987146672482060218684505835732886317491870591910554083788183102678191440148437648968497200237002822531748883081857227898256302644073645557367736418749706412112228937756307931082319123756465454884265114321716884077391869612963123223099296085758383411295835233201791108085926590117639161666982237317557607710132057217905242634709771266162594240502865587739878916760816462498078689435345078359738706894077448654360889655521069323169839139644281469856659079330843212805755820022914690512789485078854191674021163182278931633843575243100955901166562678522554589405102701699559508052446761143821925432989717239877739137765479751899031836752171240396966312285256318593239655056747586030121900430521426344244527810916216699310324215037188232736651991953536981992345758750716439839816796605289083592054022829733614199250507912913255730556614778951486218311567497759337574602395838183966462472741299392565122398180250939687235942472455740586080918339300106234723720618890281049068690693256616342598465904621537784175518541551263677469424637113483797133534438279774743087807982622975422394137699836819519997102826617292660678805866062237122716026164510689019321546876292626722614163224006654808366926924233129642993909265845599431507383904553605795972299245542973385675852294471754835015842238836703908411190975091211248945554522369787155419801598122668685122454685751865837700326829700278581338847677285472018107723315592589150092421314067355213329444505615780508891715983401299911025158395392060153718991917183764477678131081746528134720219061691754524916644153066424853143794708848689155974287093011340567823179291340402514172960317312498944063573342558002176930795186219949010096091116694793763179464804640690578254929092432986092243129494449866882623804062842480202463049512347874300627527076677962427637573753774960232299351688919147104763198290666793089078545159662516722724390365117330773559092359853045333903293621122213851312983722941106604604578932144423490453303283144449456090472222675290967940896660518378142045589739605424222491959705996808883784125165269529648562656883442362146831363030602875463897735794371906649448405429340063154776224491126365537175453986670031426114429692282574259760403411343640955287765934314738611868434162280517588485650785889090012145224586410214002463773985362025406562130189002970941215249473395354940655914766123537922149887381059210076955126834751323961545250851430501972578910784947590190085461498246575811381528300098223861784796132232611191515782619230355389462803452103582960067077140735418586646322931549523953990818003382880659128343640181532232182294949326351310074851598518936157509042077983616465080051474461410062831292892246409203176417219561311687246248464032728915926243358594828469015107516159973023918160554656894211765736957851168896058831482093260969487723742966732413181640149841019804399862144783134941625928179616454510849486999385724673960507978456425556639548688814395969979404658075020724562066051919680614763929379286048908001899011161509800713187283725882873734330255164966560850037771446053277237470482104064496073388653030715639189757228296761814650732449045136132173861036010537226827870491610469254723516849037154453628146959391401330420317619970945136393327816836174175514367385281558867347575700012101246925585950768175296406795617480680992967684006222351555660775065280344262002557378646982287795680594717092421083412200856125134276573705857406240889781180006876315261246452946726531679045822461719545657236152477914587852628227685698369563158217587786956192979560935097298138821358210366902613459180730536877063262266899379246810693917176439808275439878846505546890912503963915688644088459712182973062732213355212724853779209333538271037109520186744653075875906144812249647275486924193170841658530898941029037859553258295285941557810368501291693092187330088991272743162264666952901969212705580037771516732062038682989802328351663155137889426361008451863425175935009022160693271269656580323007969432514012947166821578586346283592414161485470678641446758995453728647304096126661212805197384541026314168582435585517146389621219109166432433588448467351427453019963742878825567264337453157581808379378431286168474580596686875513688185364421490722300626775210419670850068007136979115630453989337331373555190481424740227803962861384176733821596657651625422426171608156049442118297672296914133278886143875241495642263719146699676437998439423945868549000220349476442099187511584206655675552167788745921797200074830022410864159868146639913884771881658775187377522240069812821271112098596967921393564771653962887018432115003778215052446947912339314278793169310640472743470177783864549894650462271246854373597057397909419295491084324881926249339234191149453139440676492887457983091241433611383963913235656060147652682968137431151174325708863214665678047309687314781202347817316266239354525019737014940134615033119498579365119956364502686685008941360862596791663793055832027327925237294069853756158745904176336468552825023307033259831980195693444302799208446206554676947085376813230739707317901274718552710810049549654592665223969538754470998361520579047913393330342828853055046181814611609678064291702728802755950781193091346545071444310174913448631471498176037863437136710274623202766208114268711088520874991586079185150168650746148714530802057580060388646462250703518760825677964750969730726119096355771881285256992749161267431467180411659940037782011011849913138696770368945295966106787859838281387607260527549242373175687945233044864564634986648373745473772244018572044321359268024839142110835887955915320578838829490516475528472899933847914544097515946169692226795285260888301299304542938178899991580996079671806448470707874669781822735083044409477014163456489518294652678739546875258683663384373086232593987874985104640973148223478231575652269580616071199027489864747847670742399053825782140387059267693344791120390193930948461789764686302592292002317659978660365548822725936970401784130691691024656769715372790013457042870097223189451947865809788744969554077634130123589095942169565891621955942902182046545175137370788043572946969655105472693264211656302314176029225531017288458892624836652477361149946691754072609308028748948263132994912722969733502497671588377096616346485075974281376747218397377290727507772565413094014040382208663840846651771668607317201915021059238323273892725058487480195236222955840747639587129872216696317019415373454210408216220676703937329472679286429920169575520583874026085472791336964127303204315187949635606925180289018441139357549326809106705891046348390090845989335062769632486982965674902339027472021167752750715235438328459036017010659967792036153310635059342741616897913779497431020022466413770795792890792881167327373303689023986612308717869366744577467778497865908260334191041433376116241580697014848463866082025409991195444310102307808943190640595118059053908376306654160625989887806124650460264894562521781395265038110360130334276729208630438953317528232089994498809243131713381672084231370949853815485815455691160289370965341608266307528793745204853214657487804613936037848115189232379694549354440947938503379333552792150515842125321099088075938968413539034848944136267585111567656227772302258700279062886606210297706097800044424330650615543040872794364302748614523442267622942730603098718072743250503285832047144772979609630371100352295096955197076292578180760354085586139270890106210700716865043903649502636600907882568763853108327454167269279181910422175395033261222777781328403499360778791605190340966562659225590401321438556825425864675022223678635897814160963848893598210143587045319220779423894077530009956050116037800659625821049402182059461305106986383065606932993232529154619021830731871869048031360188367880064601088018073905422037993002224309440721643935888090121433283930954185539787717203110608626381800557272147267300676914328541717076864952183142074958811575639312549677538674038641072495733665250441232082174141159204651061165179839946681956241491384916624093750397186080850315261858629556638971559969951449875852326062182432149096384192591592303804687824226857582251372778313721415024913698229177325589724529544098083371495775930319520304074078358464501866296901934545806933478561806936244802609933009078966353131679416422155003121016056928329022542758169410336870836061595572460614712692797310108256007143488402051940303179179795029007699804800694621268501899912014789894166267339251379972832623312937427150504268259815887763627753460765586721681818858972216057789263938889216700624392982724468927047826746175595735919353557377790404900252262508304845409522336895496888013101868311320638114743647808114186745787169843804756842921041142249275700773567462562480161716723704281578898751142966979851763181231207239055921409188195289960537314828300540301328430230826476644692583285419604791308551247025521986953695607534085362550860221317576129235752410624305206582236650612457467983610869472709347371810376319370100057819889278347209093052872349526262893579761000818652051521086576806692798425144216826551514371149351050085114334644201870734567876134796025325127943851774383113299893751448384916482120714733774978351727565789449312186955359436732305346821384224388562595072498249637414533800046180123716223243818172877535211022633148376138832648490006155158099080398896308311571281132265489661986393483453863165661924749952384965991315472024822980520862529238259755205889771974319264771655479353810903023192595761366779283437683107264051558697057782817472312159939256403516803273089327750446867449375249575334864252807015283009778377098429363576894140260702655901875264282364959337031186197483819676010349489246180963901329618894649752443965284778349059336161195956858703381690533556845485240734949745182346860559490305899684203793599698467204066315177787647604496785375677256159889099474341038648142958314008479858670548334469319053409996389371075820647517282687018101603784360302499495874647140910434942115321740799354015580509630402714167876694775963475804860247219537028870960955953199830195523326769228861752508202008848132741618393697507512350996340580669562794639647972292486434696275743150188305430459205688402946572546355273383812061736168463592036064929163498729465931266405846706483706141657382857678835658836433164141615048889165669444198921781891607334140653359853548740027056256082874689342350213770296868992747293398477765392708613753953222844570971791690078204199868734687326195222434485059682586346402437485022918073859410092604704268033136986367799211392251034377459397561718867846995688369353443883794378483493575222890046870459750249812877332939394103373102664196726100342306380174223804915029913356270907957738665802900423637626897639995937739056531283563024385748675653910889530406016052854839168974687318635130228746932657702578878496411899338829161546204567592705442936433297637135346255045655740708382915758616037761935107313638544014298241515132318900449194173602381953587369036720649541569748124308013158958893546306451332148199316570457850043709219042327411990387769788604803499891150526002398048041635726621584264937069591218207140050277254508791540384107650880275703051507090207128861208693313436099325007711772078136113313973802344376499447881102435667476250061666704372875951770920305753932985089186608795335911783628403982677430691194261992751962614572415223043440072725675838899090786979914631369058740338119842146130590340826581152982413882984154247766477705030790237346038311488178345635958276729340563639234387706975064967837381955080262398532375602701242981694537851009915952215481421222501986573467702576608743787369998822550768892213502791104815059485115452336695715006091408334994693794996708320995028433376765540425864382376693993677883868122178916311768791514680460054169857243278456367886875062574094839660067837607076197487755024539799730575428371989267341558426812566814176010911029117221011516358826726479180903393095352984291894494698349223636156062272275379307040918022388610590345871355819160933540285721506843580994744377175314537756707899188975366485144643483287645769873118697991841828517144943527592736863957500292739918737822494727337453937446519974657428417332703697738138440903254159737218795940065958932713713451682772500957383874624303176553052874864642112463279043239827933274949609240102443315511140419992826883251775756590496843842487182894591243760169420631798133734386121611638228402928997575432138397872892025150072395786459443177115868052697066568724468250940554847480252489874428562317736043022770384041853090996178816967480718873690073901477654636668041135633668918035394950214364489538519506834587268254266070336344164702956305556801543069779050316807212545059925757167593480931802777627080449573159631434052909184931639063205247377222939484943285544467272391129517650451286406531963530422547642741558157265376890189252964236507286803746414142148690056047903970362855576158373444464625323571485998298794925975471615935515232995872856050798719531444925928186432673989886920948572015192949111725784805285601376090350729024944095835205811510531311679546514897620110268228400906479157123923659353871105267545177813954804439315731880954810067613052026929300655969338242383755415520013198759319839371622771660988065868977261606785977228799042438681942133886293609471386588576672415765881665701002861988907851321433380385637795526788647030376983527118849408268738589568264433034108834990026844407713106280472242388246772153285367868290504375296028100508202807995627504569574631248857806983645171317056248357204425269936539049615960097895616424091695124497294986839523295781115535374847040897491209858311620187582235622672686626123989458695972512788899984865321460813052942803114838227791940950803108410017150268170958258181759209011291568156702418453243922567850149822093477097181156935116872380917671627597312471198414428114932719439640385810445660950268030060529138713260875953467495640777926402878814445141337316964832874967721096996836908818513543956263790086179164928052432164968604466661870093735222629503816381369831599765234753194104676865226557427268273515964487719327167318837823124346880594123923102282872068892618900052253474796413061333951867543925126735138356108059909772537352287121281554274077656527856457056885047208788230462934212503613168350412039741376450165858235242891129721476826841378878300417073978722861467805111343217684685518509919309480197460959084452427451005028855372051043191057534364304921695365440117818325813233350599475669074718365902999843330383407743467768552136053912652385981152075050553454423580157643601637395920055832785574933367527796634006167969057765534840046350897807701296537063617542066260842301923619025522281830932987122627191977059788638800931663962546838160788538334533244412933953996817212857760468707423165150514200189068981473717862270856931103956590434231497338549108738099952408093322637725205201562240556406108425753956257852387984707259660614636930682258729324815838382347989809047218807179239719209534793685758724939871580621527548637017103966347534250042840951471008647275048014440390718524711818787882251985408088284634511088222198024670887439301085947042344204173690513728966910017330010122497552820090675269585439181355374526186216535965992397238323496254351757910014549849353141967386377095138222520794327664013074055468695981391786860158908555196790066859400987086324573282191519566327591907323259980400174539669857744401868485223911831174049447557076980902861398155845628242847457417526546065939974180724660058819504905092282603619852015202774244812270176299055790438414815063271131538103366014526870930503953199888440085776269921134106906780274414510700234664724009997970906466572931392919310939845710498254333611210456077290872306231259744778982118417851598360693576401989787869707948533683780635626478429804260402070201334296278797955940165239342564685604151616587356072883388440795078700108394584664373335492109608123120594780728776007608507443236298882313384744176227163493361692312827761493926798363622554315324313375874842593869521575677622244598541932403962812060426171156499348845806473533821481735438819144980704353547335246428941112538948287993430869509963596699751923734162524826344662356398446147249217084396842783747241087087029034710520584560730358837933136786048678274205280254582046752523078986209036090933176600961392850235191931879934888256059450871839997214153255624409155915375833480221703888145958304532765442172914297776984590065280894349815263117552735441316566633279779896130326393920881897473699496669538518923813031624150896339020511244403874809594671201390282224678981436262605887546059526014052251127381585420378834959678421456144673476174880938278870215521876670836966917885641207198979342952701910951637597356055243949081353729723805345600900688313062496788533100679520369708670209780269307252884795956548872811818083910787338960556999896061320388843645455772055288907464212779897895083532610610396369432660788194215863150712134905793270745195688079289708641896867365497857161437783501700609457121213672679710106425120984913367625708383652764735601603763705938996198309996606202361724750361526929857555064671893967709611071919945433147726289043229679114343823991825418320904348527443850977824154551363377249936361573434976585160695273228465033348471953260829281517662597363333459788610407137963712135517096492692614084523102769685983797239608332382934365898206002710961267900139289488858230080883000627205682789538962390049079696486952412523941426942697028169288628747489942668573969552593737390181864834000596330723501391966313933631754529838167818984220079397028760569389138731108165757061189392462391190761334093426974994831998226416297837954778184562242545745341319746146206451446882371258764836180433367060022623975831163829343233843557581788760081005075046229402115051204610849010701356208212238438171451279410979914239432908406788119255131391753441911005175469869825081122440540109817935546520508507796441541245836159801855796484080019617096001184034294758803016186859205188614994047976976434392368366076772684312334126124802908823694728816336415877835610033841967856298456144180794294044803276019879730863217727295559018617073356053489352882922528635757111965367385325233482085234038858254161572843807148418011166215480738001650219001761286331414269532684859755240915467064708739600539748186797224876134233291708588492120688875097901374912020237365596662244654090097441151893909796031054446175884374099874199886015046457583348576554817738619279044456926601451653409513427975233653167931220911044729876719128703419497685210902735715222552178307209262673763622043348532862932966893603014705625003085744397081902199488853087667191265363395455132586693246132132454654078740519274522893446404365242489044960938428587103515528094610752405785027580657776900683711520325900847592071709333682470302387088643374752855995348565365306298016715878587666715419791496132265138079787520887510204795972499754130870262836611940703156811683452885105847471933327065646134890034159873995955705097033466809519305914004706058432521874052736248807881168804680949337064124481199585241725341644496813620440910950510707604463068313613678435590701920813304651875560285735474765320337173328366790566216479277499079918186014469445116690995550533554761080187854693474545131609190399013703066669710020822974219008027296789814286891837586703229114299077837206210027185411616962174276366438526034563360959696881027074701463782143266121471772895890347967126691014160497424303776084333486369948634832749497731533403516307760968289166909670066236041941500626781272488408614589924997077100237803812560011304801696707336148002551681258545885801026540330107189783336819702346371181070513470592063236195538427621366528409323831385495635985073767238748136812656401593823174175894197227488500272684271778316122211139427468308028938311064987514846401780678139451852376321088513485786399992083596771408530323036757181863742305541500395099773669361648332021624891150982791310340990346135436955645265916087132523596634308397033596223104408603631457042226727384492333528163716429112644155472064673428818204930662617466778462686986139312744030292254601689096140603040779741979926461411460071785154084703332353402685363439140386970655859317422975744231427866501129370955695809312021275059691241837049782507142682535944172721791717392917136202218929229641883623417247261989016438187714944967381877349811566652325267803497691821107733676692595715111034432528406191258923253251492146058334152087557086251452674756712120086600052583657489254830294629494408248351249591726476175927508973640470333781143607312076792988837893086249388074994008721418038048568723709529171169605013511493849650238164336992621710638161439565536479284744920311394856635490417103619153396156753036063988784283406949296669361270204964208129231516612951691413380973951124016155403831092989934524374055479253911221500765064397582826025288108381108268447058940338715356546688701087539378208429636509338927687033032007272630680834044457917623448976946744578511716153808338051249341172394229485682496558030822441374365973364546454698815478798707919289558898240002931554323419445607827232014920048445102162073339661754060437144813679665903239743489120701166299681942680429119360367611638710318537757503610704048442903345008877470132434084603282444038272173369073023893887959500047759574816353407665885905692216503994255027137675683237610344005298342467070120657705833377958956233498269302790851333582744186276916302235103963331783514968296150441342413255481236178388534844790058664458484381624896143134692467633923598644250446556673194344077070454168257781814202613679040445799589586062794777044099684390270717019321063772066438510998358727144418371210377130674658027155366278955456364396877667076466583335521567658926562851129816574587058175596010959085757780827093187704489548151142831479753903849048666750566558609660213355272830064918835389216891731106080280484518897601917562766231175376522423110902618493584030790183544869714251620199412615323022271831391549254810809492945767777688073669997383040452932331325780993936904563426600543858715119836392551001654040998302841159928108288564438695341961464697771105928287689951368602689169034298941527935443468738812593137275036356460377953715689489049145249960756446890496270549883931408298994473995673421687905106272379724786769373091953667257647614922230273429526999743456636081431572633248486915661995942592807576260019014801928470262605602511261685384992045897943606993495400249266637597991462776207075920932701079562262704665541593554828908324893871402271184327539540937539036971134744203620680656214378266600247066831180202643453104161721035637836749341871049277939255240377838978692590418845923210412974409253246822874139148027002190372483296552347899824262930185891004302075270848890814943380763760039924803797732345886274391756100684519827164855553318604453226681642575104213332917794979013352658869036703396090113185068270228428481021918306355162195880390421391214780224858214752705991493389534358353739131289710537512553587762135567560711836058595379090743380721574243190562591253875549108035628627933308943388186896651274927615760685256404693747476884662846509156783827492113800314099027309311048819570037774949665612187120329585309057170729220211758472120327717323908085101756038794895871141474266306987494236126710316064701779855440526759040769562896792793290908203567732045035631864880446967998612463689627168087854680812681313420720272705572775304418358615210187132971214911814840129202763866244139780770467792951789454213624624840631368443500629231160525969371986984595618548627675491052693396669207107787121377347351846372260445553712844591247272231449038478998363008739647010465489967756854244356234612527776924787212324589426840496427787511539408720431454023720990879111478905095612841319015573405775194855608651135020726543183361242701591919150305139315773774678951833415001906379898553229070905217103678423123453246270456882298204797199353958070519651945905290048753010501513876231907223514807207773319606848995385145618427462416941173198950458926026277048052525293386106278424759488304874859745183688251957358996267498372767266912513135577593446347700982511860296700555101206827950170926398320588031034399178800296894552453648634835750968201234662570712393713386599619343801816625844020975371244494079941856679477638682451769543688824882599548569841895376529930078898970896949597599142804034723312500699758958597949805791110381745029136882448515794506482702474368641054100022434582086268586664211615061629927844764056034586655311196416083236583450516593221935165680890940269937215275891698604938256934942932174459180516583550474794456341666561803518632455762150275579458488003540186895776553348727026079938377910404990680021987933765599201414516179990831088745988548170647180637807706231736072967650820961293444850259705179292688961229233009213114355216300274658901867206932501865330558752967615508322606668633415572098880174855924497586930064102673322458438421411473207354697209207947938830249003571022930736984111858582578902495341365140086856100893392608755068625959095554752524194573598094921208112482704820425892143456088035745256025103527712706083548060760636359295475092333341398200709312125066319371712964349242130647760980546845705867449919026695869767374916212279722467357093382419671839842824105748229167188218020126172115360339966429184474056559097579551854423418542283060389864948151917258009630889005728945640099629940922185019424322478102824201289531498175983853573291079912175249551955657206753593283348648975496707279279952791056921423372842432097806036314365365626900176670232633427204435029158570182677537090177720610753105152693199864125139131219599249096531211807902199853989822663384766073600382635916822037146944850495563702775726938950357890900453836696376210340527346218615053753076413392027261386119848097287951580961606202953635989560571028687266584458014724886520622787429292532599724276913755246304178343820844846640257809181540751634323694096063500787016538953671265701527025619432244177181401157747243167302563626759627112727656715162959095764737242739205443340436407825737092834249739817097018635493447273944993187071393702789463286175853779956949542847926348802745817411664470979815363135692341106966159642547175643889343917512317687943242309701268171009547560245379427617051099394679442208622612675811369684795675598581932954618272112321801314120021076642835695558675419963985411049037550682096144211962977029599882408665511615574224713115682995062531816708149966032571030977560721733578514651122855116594437969340612416713213868994824749013574796268572807298486283851233436914223188026535184612209459515960240274467907403991179826156016243404346345517523179166923808196132982394291353335217194169863721730191960351177793940472031125783245954378389819083739848972405070843808722573783985834726022114899087955018311446481195143771866747661470625055341661622827732832082775917322209336430940873410708636830811363260345921238891122046973166113481983754335372913750598897575529659879698735992190755595885291908476722284744221105610740494129365917219760912990217761139658431803688729758684939536050614204281544516635447341045291800708971919371817715543613221665470588992993841360586363306830536676785332271857197717537215851637471867944773665373660346133368943804454408770486881643939589002468888428393022655426604048305619342069975828940794873768528895242460367899763343692987479481485555459186422154444603681270660328407491175801303587754386986946343070651741103183398805607865047949111535617942086518444595844628276292919391966605027079237847705351135565312555656891308302039099496123653897573365736784581531631792345243490259654999688938537386575532029411226132846461168583365059076912990852386744841468799876880224011263763496090541094329406228355561969995910008091487146015190693355879437229713357549368047333298336481388960729781928220411071084341202862657350963869185198183713282463060956692028390691194107170020450503079458370663311502269241817127190381306018325487909161161045202043259079946106760748278417576941292756805674981773856277463337924746839526541098390311390961637215830393663202133526098401964905180786549953228594961034714061984596489887036095664279718269822131341415452113099572738855488001381534021330398387355029810992237405330574085565328572419570774165638828816161381689947674646299568990832589327477851264001927104173453335792545539333816092832356552461936514422838468678055195000957655471873835606688317015576753772948296600260586466932302684212754215532187281087614581139394864655013420925846330173396212650426766531566798150587171920106397607236181198284178185062518881287235405274430202320498157733035873512803267084155679823222062779416457851477182147719323642840587256102353697456323747342844407621334325760203471526727549955853411421577869474820268038974483707385630167984041664028455486237385642701018697063764287140210083061507717788191838973159218269894854052918276740428823683606748564488361953672070511796717179627083601257870982906988912304094095349563626791482904648738984271705105167142681593637866140566175382471997894940392728771284230458886549219251169834880565734230553715435608226469761733939165609063851465240041823857446909962641422583495231267710635735120596548781688247201887746110156863639059048449697144169299391411898250163342195106457986800785116880153437958831216625067526653145127405924971822489023811083494320847280958890123256357975318475340869356133787219179348768013480045585470921904860977690122009112524921481840219689285729881687624796865018766661809339275872205254324506603157612835930913776615125704507893240197786492467878863570073070995300499094957988549442045464810350468787015172177232365356228198383313842962553295930882591091614587800127429922625436382632345967453485466825327212941243122979473285479315899903793237882030058424773033097916119344768794774440960044278978246028442440069670475966369498964405839971448624686147528776950701849434448158500704195690691431246552215172441998348381686626011714032617225632804920103120711797798994384398135592703258757670320132638054814635303340560825142194118338799970714577818609506661343400970717807953448965221210506531810467461760997649183465845638945417523922849430231274023880403993528546696714234018269880572633405221665202481651522114100616039453135710927938604230489222090336217189519298331750115149108352186492463652731232162882870089592573242911834299628433352389766224866965208182016083523974694208637906229828832418439306085038952513167237726748706989706328173055329780189351352233236961743429321175717496628519828730466804955403841515074245377331494031062905892286680432718370640645930415873421650328930017917585014389602165529919719170041516438673215526835580370535684049483259166092879545010939753224253938815842229588579445607446609147510158323507707775122769117318949006774253519174767492307778665371865434518648863268816543138984677200602614341077139519905285299022686972236706495468007709853226820013074876187198054910951637623472016952703987848272632941656530761628425382188371547054101210161544590575625993135592391342502204408266329566395877410666612291630157178886585467119120560198107725032045600969370328615023665404663123864767665701395317092068693633999163564343999647598702848642894841120849006451670041891914182791683041871867471259238987553312015157796120088343543558252248893753595720197254058365933154217927614477648252948727091771338850752705573761552047286520282243281923931277191194601320831027045749196627356533476093400887491086933422673125781566344229740002217600027453491129607393853644513420788796585522765619431613537216385968569813709467214364058308198776700631219321191417218406724439892907190373522060689072762450450725261106106804424017493092114784032568354344014588608965195737476309268582593301621004803242414676926795655366051351526721757353809742862681814333523301661075252691746615347055123647936853897737617040559378252470855823235724086147441493783479285811569171707433038586402834578405282826765612343667506261495408853663788421282140778636393722346131136845026638699217107813825978291700795273009294824665902246643412377305830505907592392467362781226376652217283183793323423229048583697735789371376946494312577453629659889912299271311499010998897639592741642515149661987079114890015898514504322126826050082869758481669902202464141596590748488037805298327375854785972173396019104432181614206795353566693729209173521925080588003551304782575620096634548498715131161566050027757796176710677509383924434209949235137133210216901532548973300114529277371174278074833580076425903644861258454498987780331074590458288002304181790413555826024298843408675372566631771571306431488379669532242044644899983977989166929726393480272044116821239762122422304933314602397986284484475094179002282075365706080520894291402552431838394117503830729098507431327093767607514898337948892399184442150823421160787351300685014172814759265371900803532722636236558488993845434356712673275774592373596773924955710944555526176605940822294883258160746313085631946439170213115398518525629254374287607359611376408621537911601827024183179247970521113425875115803023139451050238366450905373523969385739366186643661190522637777966779870889507001932814007148306246144309474464559561266118656114215317266588489090285051717415024174198535366724471383452761842033597956126920711328390263510637421936949233952909585008771786182750261176006655495154642409640864249776703219324545903282520682751198589280470698496442617854878744685713965076670579768030291676130748473807210552425791275060254659417669179532704783962975282677521045543284619688899304162121795526123007931617118833224498799045579048639883575827714216135904514863263888993299482829555222379058026463668985741981307554652435028965399080834373742076908106211027429422885195218405091405891187577352054566315481306383538159502712849634633430062371286584663220597341218894866947149226060229308490324772181740722931037868424147878842225189378579543518513862954268729055911761348868950618622344800658842214696407676247255107327495859071608422671439989183989338874956979692660612350523862235227455105060498666724895896296620305635951580433092539168658416414303128683950139775260770171737202313386120357866338478851617630206804804716690769325267923191392149162008846550608102296465787362393441313558336243764180260396666724760601846371097544883707833431086877326188686746298732514977952239719186477254801010377074710995665157534721869364821052032851300465120719929261923260865711001028456807961021895531906669221472781912651139498110100551216890929148774133758505701945883647793512639969420109828092468167807920277669396623731013858887852070181389773407417488982585370938670955576578987321528705123635363883197543697393281909789607015668756024685733231719713673023714223510092122913340089894812673973913806619624288745914933041526280012608381372977396218810316088742764810426221121059302675613472710188908474582763594937529087125688996708387140234130348815226797900203137547781188485384456385330237647077749264463604598831711959839934425409053551631768679778674924074729256471698218232243115795550018741281029243284697342142655866165387837347007076505929256660946743259324158263745145346219401605104909474843792202649635549875033843320841510488637481593207717276310843100862420923309717989721621876231702928467961865072135590482206536971975084833030438607682907783150268534572674064379501159603032953431617058865659932759350502723544833370192029360827443858079330973556052216159245111068916053199821866140257625847479824306203974256860022006022918714730588825678830758253414908126395151865162390189933640791714025338607558093881089566158985307853245135390190747912977049649966084798576103944609934710971038554617674648153856078930226001325195503641797012073892982298498053144308649105799654526296882151450783440165222870627993723390054483812488739156335304424843574753575658720400457390923809980083757024830975066788506864651731866964324300896899537121327259066980384982566177838473588794642324968663613199271971990378662620521394204878440215557653729461765896523138345599030879592371838089052100048525309222840300217011008357391117176410274542679621553200441603245191092440006384297940702407463440568492460630652380981505798797265226261130623647672103420744712726701765014123906044168990720966728261930949491519626937653729587500905483749789866759599263614136318623346770310300592552203785831459141824321971661749933982607564629238735950480238971386130867422691887034602033032913340666186893515007906945902584308558292405517326393115501225448819040609001765846317800098708572248245776239763158516441031384692951934022204464636620627463105554095465593228417926228479130402096497145576624176876492631846959890727277401352348864653683189207788597484713503526911354092878146513809444100177930340586914219710075757481281382128305623636265994576721420207519035551496443964758905285904613858184071835302930880726434858948041733789675140633036041277052389474686254837408839591378903655207932157165921881537875236534645464448674347535235561906008289623933560336482709734650833113521515811623758263077231780743684995308805450387614443109040131736186372524761519403533538142707627570209872671590800867531051121361505351614171649266429670998987489570181194380697613905920858713778361494593619645843182683858599653892697148720614437279026124900449718698858899839524700602911445728296283261302461860110267174168109389032198671338919139982012100918431012980111348391655838609579746254094651693555386385543596404324701270445076809527837998986745340913719639122801888208228893013504573849570818416296550210902907471078301236235243395349687283216096075934930446084490899043151990750149688939963279861527509359163180626303244986669173715508764114219212203063465847535099491575636163214839532820412837022202645672256910408345765760366129931920592227916555612241116332444373724198909102846623606827601158202513763497897382285783461261882196160314607964543212980191646595532698790645945379099511053072945293671518774598814909531787791652062737139362656808774056570662459987846092705065477031950173519406580387518095499343065321950030958861204296617973823176218951793219558445541664423064522124754896081465597391218646243916627586253824543639457350990740491265260707442345470230812578044876510113264494662057797087404171355071251402853802566344271839639005214126281122693659892010631852645581485662935508743380672656425410000445123999945175056226204111220918205090616402836322620363822118673147085088258863927583918929381142939595021804764880906690332521469820969278522457215504050839884266312009464196829578305097616212406143109201729255772891524084395181707732506930573435336686079130546015008524839720239382175508089330596085541796336028576548085466801360031736150775253755425852053912417968751036135540097185428082113556576032244830490728421667610300355560390557441471938581389748415391126954467379357521908826743796083306885674850099770396869929573763406858699290032008453362647981142788610419083962130269844835255533478440189964152118392470140899320303269008074081224619292849552196664908152902395559334042681875072547774383291662929582295062665612215990041792505503358207068978919095790997114362393798784547732213366802886712787773322594088247893650958401021949946356774405313861855669540193566698028357730636015647503570896821376855325463760645781801873388111714292496128721190957130806138671710047500172080234995595755165594620083134737264752701683775614792289429443743302242310485809880146628706344111645661668221420330780412242200879479091346274597551056343235634761132020238316795009220396727745095531811151798061834831413405825642984973171664982333687477066384717119789598026440728169387653221469328065215940836229687370738339463306026541217383652568145066154668862952022266007669750084842111496546997738766856148594188580974847731543205265825614775689066921979012679275433621671734577302599995614790494737897978331207502995477815979586646095984295156108136771948745909935680336888902375757749439354528517319028356328904980145491332315717005605355361006486313060977706629130524184953230396778141622270281249172806215128357866958201487773260150606122114689522279203560874955184000016594215509788032739435726281943475745548753292358741078876104637300993746304780015347132059634532460180317748307111526917353881092272197113470081758744855130695563799567742287717257600235194198098886946988537476234449935669055740818411179574487132311833961011744074316003398983282116017060931152343862308122315819244027289100643732163200082604349943114160849883471963962142381291107386071115350301850194340457270515137136496740977385229510460713185724851920252781525199411337424595889031625452442692617070896223418305635409056925484785091282678236303804750498328113808091376959874217828039564270289503030850708437273937903004614841096274325535635785487542421759818584192718140343082383614214944309448589980201993905882996711061755269589987709425250448658862000336421644948579291939056644016865766937182486737780519759896894991084267902907406910594864782693156529369943212455162196248458859523094215357292034284489787637284620006107667045664607855534821198030586489864134166918509186389590400612369227942133960369324913822612652923339228945026714286858005889155370572654838190082066961696432158098942611066311944735610351455502703453993785014901190596583322647014513998267248192294442083743230936555584168021653155770506010908661995547186674557037997349771914246110549005043609013385484328541894423302255912706741848728181879304456587568147460553009255325719468283658972864933254942833858288484503312237751214140311534955153067343459531619308924916602371025771056605342236997911231910445824012887255795816375973586441396087561638772719609878735708782189441806169541023802323102355259568050686476408760589858608312853678626570864403167667953465743859316418025881650750836078218067526229674336146673176340871818148882091020988691415434975244268915201687286188172212290296717617164647817411904677858820248024270296717590909353754982258590935699083670833830508404049473304721951111798383784851246957340607822279339909586235722953338457103858423690760058767825309597902302251851219326006462256856432190593903128106641737902348187332699861129961679163353043778323859186853402150826400209477601573918267321245158224908997193383999035473890101562437458016468831496865129725433470877572806038820885885594268792269494461065279059673502569806557364128784440873433104023260685745029456807694577168565655430973910623613483761881571863818965135144472244384595191557435672065668773238881062794093951901154315448609359193341922265440683540369946262445772533341979095804171939342483200508413460408195162640772880431738373106666924030234815229298619209165581395125338122639667456033933598807237915119077013601344959383592032659452134317970604629785749193407857171118779995540230758684331799045917422512770670602802215711299671790812931195069035613131650005305725343265158690367733763094128005116324805908553416329909768847713256530926592611301599466427423562956188635345521935658688876482822896034369976302178694835530314561174753735735354142578004351049329074567644896960599925006774542605031277541164043208963995210897762317898513848103936770941143758219891117243527219828682722156602668603618757510663231567127158212532878475671740743185213646781130900591135884552062920004643208562067776823621864271700512143326614720081666411289514907075885870259157727269496687279754883144641134643573989618954160915817145511229623999382719559113140217690946441014161024878645402958691892137376632393306874276289351343018923567833049526755642206228016462269026225094906900802848384187189376179361840111366177110847257997832487514546292071289373833705589524396431813960106021739715522382848162286931034732910854557157825694033822072141327785528426027794868477591915416194191727894700849906060263100520474767073727339845919479048516946814120675770673941116766898127657910856159465006012652147622500829632595576762329755012956267691183695267234723827409253601209727818157077845866971684570445441317910162035344868520132535858103580499353511321161462015528201960027155381784318864857675585381904606763337873685371566808245405313274817438094023779428114232301532233245756700241620215382872295849402250099246143278912283311711237673699911535873751392701947816295998588882256653987588641328082705470484757598951028323101155125588644599907106773415093304712690636455181817468917936043966920139699512159259724151848180834010032018973100678614960543926090304534109203561475733109801142692922865397843960321820389530110910978075703171930579868755070554230413387148873476400233029590363627583221527204549661901869845472168390918301058595573946261412911014391210060625137433538400919632570945757950846446418795238277486390813879483807298167908122258249928786787563917429630603365882578590895500835939540398731966839145681594199645013084177211050974022887574603537666088335376304027753917003252547397254575705399194689117417856776278005544041509590370337212679326252977697325657942872065023829768776103389930809510486253429356364194740332024238168659908526431829484994701209567914599874581583028200356144451352020179884360893221014749330403441338583977002564903100375727353517634731107155929057863006031333777338508430429407525931480447806676861538106221310449039954987299904520126701138741226399128685546835574917472096164785249283676874151828330622074279837351290918678376820188727905190215318595338878389937230520875687066710916617046368663327043826575068413994200545126832534840402476896782358669505242685965448273684605811748030853929508172916756365239786326862897335488009044217390267705987192472463970453147762465749000983210684341251842181437979920373095926806940053983170953603037331474387370228307839924211119973794801258848308155504654622062233111991137846981650329775954405730183069717873153858519412741457601157976052190362915133239167170454803442098615270547604423973761902266671058280705579055143533168194007311591071974353759201040069739093550949744045600554173013800567492935963321626363377660424442655310662827209574011320689684539187288686990582579870054249080983233230280939145957834936523884752619084002054894185886015053224568157740278040970447551355455998137047626190453512938854230570959656906396366216104348840158014286449116782562291084442345080765354284324828063369861847735166812147352483791872456324120430456415242317865894889402515588150318852201753102622213858026299863511308281566423908945182375035916303003239898945167923106399144333396514799023707348325565631164404702406119232185857977350988807913792497604385605483330648836778212586983799889253665349149829850441880612107996271721766275466282014232475588938229583049992520381180921881179163708068929964022820326996669805947928336069594504764401956462142069176111445761312149540844843607607024391896349035169811189702031407771872504530379933983369256963574411096993158439759960680973363424263307356742043974556687979551691533061706827830100689704924634698987173833687176296609444014624982782344518514650202197991009306301993142494224558755084694682710801833591779647887736549772772844445120110093309430219591748100379795803497627375023152502304294094521909251731737619907018254825071472908700938527443891880317446329963172213654319046460695783097370831842269796161377457963797173247046263671351323633922326636754249362115982037516856231583843962780074316286687136459922948261877010703115213043065838336790990435504989267035891054324897552702076191749380852445889851542304037936790207304605508099422275829093695472450321191457963501435126265204100086073013005182714426600355866446189372696865677560733181401112784212586341216593938952954388333133105316789457119432735442149965266251070141529788600306624178304324155525192381475267407038437288679510652731329428301516685115833046914328248502633748085378984794881116241093456438939429273750478539620147326620883216735216477556067380113536050224772318648742092280175036832842135260095504354667159661364311022800737481457992346045617018610982552044254193090888303756594518492942892236136073643402020443611941100016472757316963359350809826149615458387604640758902505878777933900060990659954166730286587406335808007591937304917523328536673056061667553292309655958403869751067820076060508560767696375386854731529448317823011081301805082150525274231660096114189752446456513182620594079224271698000402468427720038923699297224861332273124649011502530939846502344062012051836808085472828098521831383580000158806774902720545609843896050207325319562350963278335877196786151484857859716243688773923299105812115818973895928715224427944565117099237183953435108502278498290553682267476339930327108557609275222899006008450393300791760341072003656121948867800786032442779087751240231505641767761609481297480176449146376907100357873813421649769483634311498663598759187386330265181313996570736996675598663758389201616692296002574255549469019371792739491735601928676337223992339192124624847689154692597192576918370896630297805172277379946957285851912761181703374361349398559023148319585951357700098575087662174826554469789548436557376464382116043826811588527010800574852014025545763976346502751605716226126387328820938256647823383091000802204407090060029451076467413300470395351347672631816913031852205333414163077058714597006285323487815763405728466247496991959011821592023071258330181691966643362828697362795730838233228155640934146004785204687272453187136837012755681678308109033243053126284991108886271810818333647627981191840147126702368518635460921527867702222660273178162097526111545061633462438436712231282219257914998955505227457754432609059585954903103625541341015961973786915917017013623299655779565237105531510871184821942272039307874030056174689422297622375197749841134967598114305285178065649801712739774173946393229697417750548561907064566216343934558284631404454190094887633541915437481107136382430563253660280793833108927042801003093466849047402118519935950070891673383563182562277027742706410693196146220147785725098638545754676710237003187383345519555053699195093144121639471041849047353764643833564865587979697041652373587256138030525512538937012371051912564992949916718306354857615193209661728520485883633187558880528172623289067492577744784499653908190928390411783318649472478156034975796664672304620727647712829002312643477313949643002065629079447488371747609477178157880389333488743424281178345724077644090423226735161038728683703292866277332504656665051307058119903733751700065171867456569689953460310758018253328579392803715289220020252883216250345391790063002929695210888577573948308810954207628279120872593482069913730965547288015805717491918256638669916598067968339087606954356784829832572337394842644827114085173871617439921205423446828080730174242851172378386134040883455897330200735171348489229561844575722550077386688832067333454832031254779722187270641506378545608110657865920813146193025926504451998202932047171286258204957062538624123136707114050842287595664756510577918968735334467770684445636637433705820492753495358637033875876930331652639244772008397291084608654665263683319687680286483470628584329011701802385091765159767535626205025974300471278217350426352407513427265462295836173154558432688243449492887768344246252543549432786467728792685079936486555955973759978982979863304907250156298994939055941993792657426199326392237636241780557297361908501710627823208944271885874651143283174768880328236926617821931279904782238812566621700570738141301761406306527066708535068323039693406148343091807880802050591518978537495666394530029578955657735981482395180935088439492000553388470108809090741093003248317864331036875778504899416407432509971780647110377728342134024099631493120724047243217414912780272131929882269373373347386154927914874742593987424733776138582810019366807178767451334948634033521699758023435079698335838374037849578071697389911805840093410019489843838017866572099943821095052646162887935199737114608196733623916551393962423309452077326069032406929732854890242791114641324812387263421753847292307917826280281215915317684347216792523035971824371140384661879609489585884333740194377217133744456675469261367529706226838295490289678706860982436018581143224778062428738375829303587648033409608724032716203842441820662285282486186664664766131672951161656427093714260706453922198438359663051862608560713579739864780630294190118819143228549315482953874272115748918095222445083822568055060457723825622727559834481758366814884963041030770100098986713369298945265534520286096278440241573849270529254539392873391324889712929458697744966489137250133926549649559059076664191708804591279505756607969775337691095529616940291626060500370581658064255264798728199923385191402926341489743172267203337700652067834553198177393218141047634451682252280021182159713225822480280862276704546126227931162988230980374340535456309115899540540175304506466182992412557189684777711210708554743906889889299076391184242864309496631009726914617855726444055723007408278643771051699286072735803201721314208851247949664890584112960748576312640381015530546626186373841501189123999022168269949819734107575200089855805746155788814286926508552559860894053866795936203066240286828253832083159506761500214322894307797257432891857138255284028244814976503460429582991797558576848520707512776209699238486527889048774548667269520500041803845627815055221277071565985840724229699522170217188614709722546993256337744231222415475979359176172714995507587359406712960116357127169740027355406529868101286852562383749276943315676383662987420146940979430766396864166358066923719640074421526834457762948102812321033639303481919155501601612473367929978366685293292992681466687571498711406417892504359144288916272538767077101570283812743784365910033295023894586371229844125147707978700013235654802529855035551888219002468067876822844886583474855569211040514635914109087338024339254638111181583110302526527381078183105590072460899891729142087823202272570681940924527400722054803981013446026724003279847606356014056700328991649074798694579938198347811210120134062521501153467425491698434247084054546564108671346920252835527197721210348937992876553701544454828087526761142918183078021903299066808730439361690453917174750543763333126687574711810895586349350418275228091218081370164068599311792257154393986393334929304061513429395362294437039989686234711816980630492396548485831219748942055857069773253271539806712754209426743620824492765660035698081097747066891779778771793483067223588049347776976590406476811374130947006929998246383441038253398104488771927963317772918930104765919232736624422006165072385563353169251092779287458489025582202698147305882619655904754401707593160101746920431253020200300297933963509780472011168183911797402263441256599076179274031148260662484755159887329940722376601471089034410662486462488097499280883792136312991249285150092329499156564932103251642257080436137080464742238800973030097788205314649757866183536287125960727051637740692321754583844064898048916490747067295948215813132407204927006647128528564800198414522220516695608343730746546567759733996750968720163823660577603799290285360808055336752554840625911859324625489969121247600632240872593891792477171481518579463018310985017464643983704694606146344269610916375964854246456587290943982937813453947868040551261886998689892415875790801239866492898601754896329954321376074562178871327823246575579477038848340174432099974721742372566548168448713936795729679276487335135462431190826123004468333848971826559379356371634877760886017155519597626542670950702164920553543073711469845954246848668904531199605376240770036603410649914719850752972723239001806029710864955237271436289512143209074984804580982629124047618004492850504790268407058078241600788207681031594758732963304726594962143895373289822380725748845157838215254616022852364667563808456144575246596518898668608786333021161807168247891677252733849146427913458517133327470083523382673859770525724234942867928708618395126094903154429732436538065049921388913693225219429096237004127008312881095649251774483414883560657527975951466676835705818818706643541000714878490581150797025453751362386648534312284555212350651776635640329206617657811551666824633113960460072385193788804271124103968476733982939686872077767974884331985950164103178521846401528703653552701302286615875884691329680795467752714104365843702626117682863799324483694917354188351211840324279650044571442071653783796785197782571450748008733241415648047745550098346902842793163616753700944242694799102703403700750738847706229575710023934586496604504736649972153648310351759269393982006041579061003686496919598424747606066197902307436214811192991394376472928123797298591307977556248541016199482452864380309911103337911383626258685921008037383420975520149124945804548614091581593862345370678089312701009025460957485711116485978381905048854765983040132028992215398613689875628614290577185954941893441169640446372580684271396237970976766042287712426539258670099748684900645188321576425867208622983305980731601879940889798942159014450472192925292954096652441983815737142320033068065101784441282110295216634501673926315533236017925094727014846096253568565551459318364016154803885598648350632411172106960845313171869476107377715285363025712718865688567276047030636609811629369688342019008195923526197327409987459460866524791321296359274987906242829097415757605710486078839182100610645839059893649444299060925218504480224173643291212170062847779754290392346131586161965126287949611768883185085419811404213206513033814923482878999255811080068974156108961123401855106332089630933709326984063102660636790982823301179204451034733501485209322141518697266191479334160031696614068320338071185378825469939335176530936884215423699770204906087698990274285309671192469914490286367423573659392882240838020294902749255241764478965993398318299723201062029998459351472063938945108718961973604002635006616831659879573362720277253885746438772577139444625580971696806354178398471013198357869063920721544018658750926295957721267718833869784004717082957301568546531438429582055686027072093205658118794296631136286131990566896526266318326838784870652653981342033710540798056641740758490159621491224885202392803759089900371210212465137052187555773491015933517633413096971158643473720313629555192316680311230795386821949999341160418764104614732933592012494980034928097075932685164384175273145207762688954402529473963745210223992795341191761086086950401848298900152331611547065828101446335428861990775598400170789616813663012433332777002596609567650293140041096089483361384841768077416004525657357317504278373650662807323440959362839073832543048098014973093995527266867177748187744299431306962942081005493127177822355694208432891765809515107355515066916700353419511704604047518413853702727784965379071383622524182649329003781463165140713974718091639353280321579815923936920954817066530808819622161935650592068436135565309639728181026894032064360909327917804818878860191814349652889754087060731526748529318136171368532855976772931378211804585451283320801548531949658456462226148506123107948282082364232955110760704995910789312658185729029426787662210931136781902227941909959509060595665777101549723635265711931554470906899057305419080881950889723942573955871854931116087264693632629252976659511042991840597817526110100001509976027773535410894221100106525369983989252263499562094745962537092108388337879856977477293731685104041963594436672436623336466001283492442615334168073175479806956231503665557084740434719628325829061475288839717846490291243163049394421417869549774425758671819239156550013918677755384480515219313110746262664511342617865339137493428232250272474224709091127696540378253257356766816945484243935210966617568682503457123117344072016844699574492485068580642016894151832973901330060196809998182819894343620980549075811061511639605026887801417392847655433001239842247639589005191522985714977041297374483058198803459506490035630360777800867902911755211954550256073405276382482245509384962375565817710044512577988278694266000380977737384140275144747591873762485445444170378106419811728859853215283244192927296595199864232617914883227448353432750759733859339121464389142072638259629567674804400746282221977514435456997632188712599696983309906549336885844026239366456101885842861437089292024266668477290313362180030239831865462845145404905093942646924292574678100106824125489392798897856710493449662770944640419247154267914033094700136370455540411481797420509658208427554584173958162024601225351079125455659382441851485411523841765780407884973194902290543423663222336653897600209680441665433951603633278630577783526553179145509379653957480393375432420132001753262137025812969902556077652823922476521395622376328731527148664775445668172127473796513901027475438301421769806380122822457789492529950338920131502195193794699053087060148064775839081850219955791646745421817504366021277488254466062884826369318532434911788324490885328132330758374919895242192163137260313232441134735716018615028296770811088344376300954963435976234981520983100215465157963288872513758391125549615461787706637499810402490874646696854350279760975696554233730521945918360911567748267555796231732241664428740824680451854915557779132173587362052392794965269874448333229803931704967548444878132459852041983965043520435326200221525601216473134201147483676522456091258120394056033051987840539398382033554406456103628733274704558018368709758074731256924560613465289108074394921422424691770143129798380083477975561810058857201577355719602810372534226354112710159913786581773235681567088636074688367111821043219050234466486079547003467881520253378561272320203086088702085217790608017255993529497085630364662307282245975438919619216779481560060813004174436859451565317193503317860944687220575593853271202409057273752105453113880044329923296053804856109610570425444967420836826339721079873186273088724400954328559588389803918077653340919650094958225566838787829283476907184319714869760267042097751189513504377855706520649110159782199991449894934806209404167831112669714514791255710190778776239961023150387980093080108373110379627462862897105213988421198325869542071891526684427432572317783132024721662519149554540042056974098402135053566519402585801598779013329049596100582394366226728383155134365517956912997440804380651657167428276099828386367540318636539378017704816135938283631039770991572976455145267615616716203040001952854149041267449841247960832713489118596584367044504434561978621990512231825357612040110431309325003589228053186309925367483953162029340210023879346528434661103806573812766423410990314586674725749557099855984769356740246170574419590439060295923619931244631183437723560754248158849757943684620512272167111213998246387783403830238152356156861962234508113721596893549065183706658060094555237629339532593003790785741414369121184948480595697482452157866854532119019861285691792960990226082414705742713199386762800025061612648305860310505158890324063723934435950212994341054037202772355383131232665074476483719160050724960377808623778470804411578416094682259980965002925313443558090031538233173637521624627142342859105135472279130061806696499172166900041467380064747863289403314540318653270823242237973518583289704981570000578670188393747851185896148349655336460668966447997591823988854070745078983842552514454597909974918047585457904481691699460631800623520923009715901693081439461934947025675757974210898446773585168472960953418793102950649806580479452333557826730083603940375878202754824068717916368757046985129066269964943898185459197179961559394315414074316336064134767239249124908212144495697828810818881840377504624343079088286724952496715469246268173010184107929443064874438482229491300572562595298231054965736943802249332072874343496039888900870359342259514404866962132178475777870719565937371367761481910233902938083118207096487803657799010661368643088041636487815314886161382205318227735680838829856015276642734090459867860324154354621523215889055250157561603763288385237554776605117791933320403906431955033652407933812646259016988594602932255536358909691431338627699910180944230287447511794680745304126907145034224091843565436028118341014428104109926098857752820645900137561114672643043194917228679122618871721386828534056627172459945969886794944495080468116261531335975928348825445438660763778856597591899468352163176800665788054557550451402685995345255965971175381217289323865165036189845474790876679107447627166224091942051543146070557724300737860849928156130890160395223135603956531856076557908927583193467776652342885376408201637262955906577129073293804191076384351631374717290497887708879436928817668259000836960412161835086784755392215054740202114955174964632350935612426679157385824275612120448912503773554805874417563295193698302173320941634179281555968139947606180160573119907196110010467423145534426371220565302557766518700012920446182749564838202221744687656396992287592846311352085980893169341051082790652648920733870132727976840871802532645603835666626641098567757004901923314103818452130550809688556900863364893107159408987921948296234568560810202912710817280772386645609070415778113667191750429922771272068259421007636136708425143124445880499362150538009652870230281266283212197596754689807815149485854585523142620043371166600030187786580165219553881987975441796704547222096225364832036119353997001784669160987432425631089490637356560495035807051360687537021664560259786761481128193911202072046476867955305006678479108532035631779331386607051854335067874416655035953350948144062561542353075388477006905781699249719320221923261666183192258860451433311105158020542392309750036342056746139480832239177705139056471625044252208628018342618263312444163537180472766089116716837508469944226099788867894562037255782032376479819685873081040361841106010993678209182276276478215871852263537239328920925213559664179111729957859627254559611866555117661996479873926142455157126962041326541099648898143047719167613714142535061224480489943870862733150998226000740991200721308176484431734100345394887636902321696512026562341976444001380887654652575873531816862055343614339664331520628820957226723163981929514946070237556928262650623273110361100512399962973375340539717297554596888540639023694650252764863640634413558994505702938464807394559546995781375309528310937676584268253487581357291172782233790874867932397079337619424381298039720724710827031158315599917130408815581570221969395369680475726026693648058809635363308702166807082573567438283652903405723583476570573970742261862493948752989308592807385853039686963385826701140402622230306606157587400900683816915545884443981726649866469760749646710027942477641487027858223132301328753234942582362473470842621627908597382410893463373753044933237240827118730100561579994807819756148418412301896883976981039199539328968697942120783770331595882135788697627010019744469480805111671486365922063809383134623144189078472750075118645108727463764052790025662936606442162112934300661207743105422329006488347075112139806546837090284746695332993206568754880284925206171545965824481154680031292739937603725868413998659953904369481691644479005232632063109802521766270695789198291129554885154552507648450633128247376264477223828451750753311717275172220587097440315016394179623132639968193862970456533455819762373607783645554751115545621139950299938943399125408022905683929466914581887534171204537141822408905446507363986720999324349948139986210995461943507225592410586712817352302510460311219093679236019484060407429022341965405853005940906772430147817725541971019576323998432537656308878417341906548552883111953020395566930987303511708785050954269328962049632871058223585299372031443236967240201625599806998448427287274942762808185756974718557018153139941905896939527687379427416199741485887065038033139291489680574463283160268606447773270663278095919314777012531851159745918183112764722780862841570129539385522563191022326993332223696168724462720021170952310104682542527007147891373126413819472441965641189073410588146721035277267985371574064558619292456984578672605218318762047280549670189726144538823046932299007213635872442434572782959808287831776683130538980349659847376298203245577599315351784475902736794533211977685463300857394863644930145341918424013553405181324543477789396372661360875279556047880664368530625641598177174918898253640104904655158331800026121528380810478141372218218018049330074127493627383046613140709966179395312156074610536376810795498009567300110403369407424582433425176271555195758310636632952416611695682114609355365435324943424893680086547085524171697268132118207343904003171641136571542437879621102811686473806142418813617035694622282520731864108173356393849618801494667563727394575394376163721905374362558127438244727901407953753047186423222398022435475465020475038223711585528509974329581489174195456319974607326175083673785826892150512478262728379929412431567796167445428129792646752109059164184201332589422371415625085989915496135083202945858619748340792096834666499490534559885279241110681410954987740563077967111948617200141123854490922588687752626070781818715332981538722653360823866848673736495608054262903220207828691313952279490557431053775301436248624028184293594691034255409222212262086742043304924616210690883827193391373151549565437941756324302698202356538282038978499335252910888065048911627673565494766976180458731605464724201813425959954873249885612830356273578570094284941628756097669678533775233612926764576810463597358652813928209155834882745268636890864241513362746906602501688755211111161391419122536410629817220383134018491014263884949071762972676379370579362642237743554562628867162723580767598831356294724190666305336778304278161526740268698936157869740102829711734789798826671611323044810001786905338886287669793401730059134764809991935125297430127999960053862835005858383271162728494991153429771092901931380692509580084545779666564038300215942041601723175003786405901931796205429833293366668803949547981494726171346700565943709099901011888245470691001567053119081883447639609399940825365779143179162481132202992252045895535885574340347383225423466831539693247703053465284590111695904624281094560242826670274192641710406400848776999985000582780804346303969364773810251663258240545189916892593668783316840957858136430033453497198898739352163264231952119100112561451424573148952439756895955497561646888489978275159792655696864893645880289817145641860826866378545301670218715105584479905006870173007756705458368279389032006713015912318731618756811580337535747282104734429490893038380467111364620980627448791171777107574928884885422982178043050923273407692468353422136580528060820977277269342884784222175511279777378516805407985948393805643895826471673081382761863919819152379152863801906560545246130537598836122727843908793655307062019080192834067845571621915120380302635848075361086412295083512186127689090517957961528911611699748047360776031477422754210436333101125981054288315554033842137599284278471866315538935550333408666260542319293502387659759979068450405789397821788734779299957814318562891962484353327919194044307408779473953489987733342561542315306602035993753530866179845448909651822269554862743173545212080772083614381979541374979989867130215934492296459095271044458960797080007385651163909432516666243622050385040996734807925560445231954159730502978819202149435372831203706306289400961274084992746956938873005316015826220291206999269349219815553723897117487440171408734525782140050065712058858043479183966267369786991516236496221780182340182480159171014448456474863856826488514401122039209395933597848023660669415649757044479986663507845678573489373466884572424724814894512237360036493899112104660587078849553732022244904255936064176941048087190382536107304930375199827443133395622942229700243379471748508989694508545493509214128443516177647158724903785649857167408316586801686563563947808996043292479677508513370440170101169479242801302369137238565482414516109534172811949400866695176972513118346870044144810195403807459844415387952584078706993425896089929098560167524165925785123237514597872460325839994061896928388016150984562891885179992665178929026126147764596434245327512539136631072081805707442509283451689247841830894564824433885623695819243106923661542918064647864195852488232751943956665145159223224808269897802258535774221560253121888725215561191063237433337728570932056955744670790603780155557386467005829901203217855688440991021480544831399650917271624970114012087589329817165650439163247518886032159323908710980112792611067189741072942559671414509077117172141279633557522622119371513050226678748044169664968830319100435265167713922693429750474439402268849763398657108052986440696253590092821395787834060150749158347686291314340757986153857422349520438001001318062234202140664218033871551884459989703255028608450555062413621961577670270840786094361381707450433792667230328950731159256014955046160206564411956862079735784593353440402856182732646140861204488000878203101738122861441951116950013599554796272833850243496216788117740877579420276586319460311073331763444293180200800540660053145109733720563250245084562119246327640961482761471449519628580391731722247879595472368121773710359231642506512502388580991797726807242975586236114774456253199918703730695554088944960839094233001312616407850001238608149789581792439373403533767163724053184947633462573909079283476748667751572807341288977977461426685492432530909566677552512075369892934957236758485176966529732444918661727244863262940576984806131121523027273807152655318671191945746433804746021568910716721145603384183672639755150487165642670196923909031772964226714455142355664703790906896504955763287896055302272561250349196088861941409124183030114692544014990315903219622646718321967286624928455001284476074924213800526386047079445195775535958838650118404439798736780983399515930468295383939790307229869273588115598436794085632866584582014874970359856048466640934629674366661801002596626727883436656353947696482680640237596875025373157435781748691559298218748133825988309168574750907408927889047970230981617844278154853896120923991278167352043174951535619417025372697327244883594221569467458695995918927444364414247019711316194029876397819656562853632822894455198005244722520802287963601409454765870602946338049067856073218370538220593134884489982319559577350755196282647981725047799438335972973095811143496276475939262547775345415826991081849018596655141956198413469301669413160286290523964016548347936634394399208364558017553309307820523322965435896218977127724618851915180251044082843055242022620629629085445522407456141057829181900779061506588106161017200257994785058598774646954298242318538839590659269331321452598362470259388635276015989137329931439028316778784906815161639508984536606223063570011868521675510218269015898254351950065544783410921414049054819328399888608655643222211993605152639742314103365865846228107492219236129209958006425677351510910514385104648472033243935377307306335265356896507520366906629315707255297666439523203456295598427124967265701378067014827355938407486710981830270672643529609008242929381139062038370041127364389532033719053359331779147287593755121822810695882288613724261326530987809594195583507601092842912320331125982285925962417419252914077113227159750654688409105092265869364465961161669973995548458373333567327146524061585380173143699023562417521461800930103419417965760701409515810782515298984274214657146276233094568458738534167538119460930730653987212547436316505896195416310939665192605598195970959790253223206406395677003058389401345992211959241151975448394713350747323577582637744355228676415994674634352492600043585109878650973965206698397516265709571442570156751137942630745887755210823513383575136053449412875506104217636924754163547677834356377839168326745181000186186351232948073504319146269616860963052048364089935665877750429885303920439414460321411938457803758465454795727686273613238951803917632854173159620390871230131546679113363284596539327978250222508671344349035547513441285048158320989839039045346802840149333984254514945165893607866575339920130445842279155567736278299768941444043294202527629053872285352012929505070057697331479132148370795771794181991018068092615564001451365871786660787665780811692925516365569474532761248413863446552300382762964771740750951866763685916542497598137290745402655652584520589270760271104598737684415487579890943131853835745850660908081638440165788653665483051935689795785491103127985827430547292750104210810033725167235061999491851212510592630475836231344362134670694896208375721940172395469878880316717423249177562767616701757269793221258872780813071372778037209742154738964695735098968754520020740208133950691906439350473888907142047938430733574775214036348903651514743450450937454497088972213226304388893538367254429611770302860365926598475722782835466036064104396136896649875803028547031024438289224601180616291878463878403432114100670460109247641823895322719625959110678133913779291005994847759677220174292218318245397195760672889114121679698335325036538039092520496941112724048540535661726692631530972483774220256425736634206512642295079152212006114940894490799791314381846859069958664645763292199261833226465097209149424533634634076381367528040398933969521874348175825904599119049872316514046073953274408827598460478394839874477254613551723836335576986084135919577406852178979416333243580157947570446909691135236836658291283600390472401488562483185331524005353064719959508700002763334809392397375746073569526468285570861360801316775321150051213387959159373275041221813381443740089738977703336625092166949929982749842058284868507699540149496916985945733255832147320074640103319897245682437889955565115854074233764696231365196434325274975698539481031267659130946550604744905569614956208569539779600923931640533390237609401147454866624681439820463152902833172873096620508755120922465506946847940598957953086418497473120195700012938253699186590216476590057220267796323622538236943912597730097942061415259512503678584898110147691786297847739791091696351636368105590294537438051736954530236719702525578000174794739103717533126957926417510260868278702773345155812380280176822683132071442740261341050839300194382856467122111713832678608739087264818061073616693237956949780659112145875565895703904385293436635936344598554258475905578200128922956842139915602020945987694038064743046625086604905436968471083122091396102233025118930049855759010248288764872668658998494934471778442015122481624594803201619709379038586475506619068252075444402109525210277823248154073551595737803141349787764932850655105487162648087813722445734828658424984089313646401690064648873162040026067752708534804767422289644037328929415325938422594959185941017041319479647084673397791138443354592828408207326342301294436896901439648239911309675482649895122514381818949836429295459472067621389223194274944005607115849116296934962465246340724557295956266861258483084770195046984624154721358793589944156312694687135315258094890783385182135368033188360786267810516358038283543688880346419047399607761429793185615727160207298830472004013932555972891495618602656414902810071211362735370572670259795366985439389960060370299462402031808365067778639440571939462172356865199859892987978037587002101970821662757864788786506157587497989589470125675385927453526446432382493327510263745202637128570754189241917213682739066757798316591259891497120148282556877751073251717640118376610926229998147777031176486820045283303686578119928067648415305571102556616303518487152294872144966344471026667211399128171931570028761675344158533494083890593162421261868253603478515465699419950872805201521656535260151740735176464406828884039584144972081035167033090620672507597773051549717208656293940176795688316233308508660575936838228584442537198078097326494389658819299777096356054844277298370583314839100071548723512488300652374729828998264743090595198189486479874808695163710705943481222840231875420955956835087688967066966080051733875528295063340758438049115359166602786432759241783710167569259206091819695505120114140999204102347220764822996023445956962793651757677790885480359933816636335625516088851300986746841504090509118848891564805564285366389938670624493826629009607098690127776031131123781363668648149362017593868500344728732240794595380302542047434271519477226179458037332069820962167059879708100535899151158059533849889057634535214097514779826003847625116151565690599974298143727838356882486233186568645495076713713165329183910863814626344392830331098052149575089826945174796544486343278578270441867858957771212350176076688421971918015574870727584236449509038521713728364564180756592170629190126604432376265942153854996481187803001993858476411983862986118223882520235179103962014695189664786704247909702264310657687696706260190527912928703229181951727591903257804366021522678750920605956437666353677070017846174015203532121138338676014201689471131855880551006401070485204994856368293219753778433487045327213397841125196655363759259839886927370436693281540353225268397084431305974992878684512796693101273944387832324663077646216814094570660926330479365019744310010408000394527803784143115962857530008049312056043636813298608435245364250361132991667720495393061211243405972175172622971078061624178626645968465284702788144160474095920534994780819732775791500064981814251037857929350339831462211567690542761088563522312674647755806349120270261200932882902235337591674735313804839558006263859141953210534617285298216832280641755244284165294402242406547954653073400731840866305644894121853731922323097101241602324054761230328505990840165572741816524182957678587910669331749151599011531454089612541058178191054543944556413122665110497615572777054930450423609565463444983467358033673631297032052716720548079119899081126269479880828842499956635264829642503299077135137667928364319731652793946384081298685553162989229211746533674704177306731024103852954601195336603124094477490575241587358792229031485487311337291459866519747234494036405277495127247389284394162382538477594964346540141667012619667606405693637933721719469543066719068424368306650485669059553432404582385945700288620181880154844526163881999384370790481974298639098755615452046588729237948251576035503072376105101794904351711714923990281585255478598306414535325436589886830350731925966470062408765404252444981271529768217832056551420259634569222336397900262309869288840053175402967436003758415508313615215804325092712948268486257187152152231510254473077900362215963362798450730617247352435687946766901492889463785369662311159472081648418913554630253646290930879519232805902223414360803556336336352424430364073085060848751780432919965436162923929249059496316367626945060284404073818402246690262544868860311112136826589417144510672636531953102669930661698205922176377967023606982424324564898854504348592603491976500835154691471032484631448613506773804023365068783157114806737385025718383949563102874267938718636315696775064884796340301987094506565855929126868261168299530868379155863186779705094094347140686608650294644682281267945787639991834106063612045238484077319773162524115526032884628862290433070079518892128481567513959865184582765628849047876919532506899192455921398257904349298088397859228254160542974211004659892341701533658936356556365362259374492382191421962017785532891939177295100068105151164467057581513291659340801361448004088446396507282364404607731104933072305742152541529035151945115766659234446727021379888138706350685783214897100718620988727436028766590957530298665606996781689790894599248273728311301467589765291907450327607185691373041097873281319281854416905412707868746726715668228982374816377394322934219988834146614155156615987265990036142407284005507306649418995125473139781780551546873368623428998055734731782566694629039577660029839840575676208237932270963388495455687494455632842722484656531679418059039893602395529216473309076485694328994741534377722223788713927897209577521461473895820443620027981966264410714837971905368808692318793520324224829411750722590496190877118561417611220296106870282117532465848373135217353887530969945578902281928258555677730855639846985398667569100061131152767496065494530665601437041903283359775765121805536506853061664803373608229466202781046705360809340450051265119363621345774318000569317056438679505728388202744013930916270407287465788447991433052030316291101945033429412982969161096000877001893519524381492775412334436055931808194155498459483713597575468082081546742550016469217730285147085513323641043655916061619159009893159248935558785079174610730287174654968133889239557494051798870099480332775238369190497471649646472008859855531371831585330965896985496587649142975161064251573092327279363072324017677737624106677416724722835589125209788409417640387942982039052091558706127041550905594857501290146058881044488348432750548825497207755623687360769913826667728959575618171644265838239441758733391624964071592363918807618699405773030399200115149500273299659280537302221121943749978913132279613540469777067577463066229798657522430841594627230481172792582771167598525965426145319681511349929531667141408499780492144473549037836147683009196683969435314621990840462161311831263697293289198363351852372364137127651554371764356581761259755406570558158975965826579766085724263814264403539265509806438925747091401619021690717566046478676616192147396267784843134827718034693044113301593888189324607809693546034603932230620310125393367399734810818299485233922318165835093962654829029609355112379774843469095055583206883022511061916578754422177345512107481371538349118817259046648283726086618544373018074517385375523102549095232132734267370588342133007627078654841858295355712948503331629964936965352122600363942610851859287223659504139773759425674673630615320895379338208050475487940637149251869523297082289425112155091101484719886937326781496043522547307290612008222425937427610164700359738805906027702848970783558506744071520037542712376037281591130799704282721402371337532595157938239698158260949881349875985368210863618039198399408409527182044258886406735166973028136805536895389784780781401594484595496273824106920091912917591021755150050819914998196461547418221022392025110761714566358201733620051055160180865007754484676786988595785381746523560461384000545537399036795015789687844654245077109683981097276364513956747535101777702182466466522871555060372271673566523030621339975737065188568762952286033891187157751355492586565593308199758992531659274245907651647895022732907386824329307622051667977284176919846714936112952958148358181836444124170772084129264604341577903401365399518337440248214377910484869114305684123050535520944261620324830991625849690099127808298261301844123971097251530216101863018514931199846494432646324445875923280511748872825997929407406691893380933527873381057404560884045836174947102706892451468713096085980944286812099568862295269437707894096449129390900182888712347465296942640038427473417599656658976806236495579709778330455739978693379245384713042741545813740387231317622138192730688690235550598986771983060314403089370832082539988791834516970718789994494705824972649576597278548226318830522236410716205768244655718879682867519635302092162346045854161402714311663144815945806404551849481950946896984254361660094149984572631630240498574230533191367267318800477967148610935522348415543028968590293656138341644962073852750394103320984432637744284172841426377194455205833462145663800002701484647483346621925332910622592885934897216056756913779687847120255954554175056461974714311844508662993563373587719727472589102480694909522020623947732074670759524622014740780941611428664418725067730303873943784037772664110524365314631510705674940265725623966832638244583646068826989446878168032404413401193405737317005175697106057503503359199501699708746069619760749992457250322625086714574411748611917070960843353718679854679751937028696276611994800630921818638841168166775364725815803817321301673238192140488338764255382973429134005585734394290411447979178107352511984493009164724113802722121916814839268878280652661869942584797612133807663891119480252340685517549506388288450830904688852528123811483041266355944162296581677908090140876821814822466742024516124572964755598985210902298105952862513575277992372982382464894452282279821966102764218787610780912067208866138454435586448919994204214256062225397605984041370486053451771914925537837489780680319956766930454749588201265967410705194939812305909379085565268181632194477015799507022119929391010082101053358395195938381439889371705912600987786413834206810823148317644649754982530202856832018088946356815029526919440802354124209519372315182264720825204126446631308262128936935513248359335382514156994059538011576937708925152361733114532994163969275310762580676072460492259102088642122169549963126840080891833906395091414791802416307831298905248201231914986208474145746392016783047582545148589779400509207906470616539435787378106923408383761852403529025844237670539327358949063537917106865294214925512114308883316527406559476765728864624400840087613239774975277984067412586444306281300072530440866250078211317416881698330512791681027965993513853195396773411261081595229187188158116664827820033475618750991756780686066740282547512539494811405361806350024868001142131091749926323475810253949485878375087786786784351847852248270931630224510326550794040851435843952369509865069333934637555219575236686808721216858861359320662637712484874386240139197120321197066352840684580182418576712661841595501370688738840006701043634811176223444214665815642959617192981911646241681029358121433842726312106369914027305229547031881325020866152159313812260321536592067725211633948200044983222656021250721291730201701477914180522672848735892941368791477372587889152289638781273528011413864103003748254274301394155171483596980830375706174109008352283473381287597301894018699769168279261176567710494546322741453883547549741274943570410310081123998960350796001838616044802522412912484379692064318929307134180348880204631637828035919048884050010464885801203260631782498782862324498173636721287333633924864572272933171372419952046547239476161706202270489728231179101442288496932693144434428234181658150020991109337299768580226957498413583581828782137185919307843455201073801646079264176129222674616324948350781126646713708194534266984146093415398826716187957684139717463639287164168911279364671001093868942978340400880696957870683943518104294789902063975051875094314979804034980364030824530964794988912757934702754448821311462603598073793269780122408385010599076988792541904835246133865982256070653742026146620123948152372622694878290787435312372665567684521654637797603649816826616405255227370324131954541042660451512872470464361581601258323426244358636071603526212826547114557378737167297980321571070496142156463579132499799408196152764357445638259617646087846827165287524064448908319604763189701171061625543907168657654814198658731502809455143826632182669849052365670899857441570726638159422690761396808504397185246416568582339683776801251477133472953861278344111740246660778252356716824886613280335603113577043921897485655106187058583629514839380423520366881351660509478926117098473599987504807293527473493787885341946917884839555742073754329544166802472842721878130955443124603258641772806373799166517465332556259336270158756232184180470561968156782558001268708630639878694345191450670559226316099242525311893385148063100375828746080078004308528483024878047782759804899616406042689508989951698881021697421243844411374317938876128143943023484303418302862258660589753725575435098899940664020265083758759692550993062258730427824762247160200718841160897731034662640193501392376089586271992469520784295281480340460466195458914052498001277174417422562668898458379662288987529198687292742932348617010519041968230095049077324216347480531037736673939466994756336435873036018202611162900410032574851800650514274472135127811692233711868054464537381138831676650933430767464977936978514413307827410641110318122240949156018516061714597110821769928110629860702123779399765262631346335533398821005147187466668326756951513466135564323112783492797258047529737772337821992064515559668248402479387000826248967146252438569132350018940213132428057148619450093061657906897686248508143267054329179894661529395814539939339158362368734525369622090756925480728277680895221590471362892945780967394281135497664994474550518496178742410462302518609574171637835426762925235796082670150309217153048632349279264602828497527910457229240575703686424199702893437359659631965644163610794013573814460590454572166503661611990711823388577522217009749778195895535870251169246606828434173042800544297182889480154702295774355879288974901747509078300772405869956907638361737618746377965926857451060535344465037655194335330821759050757509937460408559150086360692649832489983963702468523745179662400184010175273541996111669520682856513425589809167045029502291884919114634267426418539880689906353721329632377207676535852568844208665088214716872815129498359688852203212783669264353332521208704097270735593509487341167168665819532319572121470757095675282583371451370576630536540010647024647136258132686376286495674423383276020069683632564048360209640363103611238543014688759580570068517605831229172547016261952686713973643516202931372811298321656564635628043655113425317685918740143662546641349889579169415722574938922805840768740007939938961262979438446935937001535093056367231807311856200576974346492334585979892719205603977234200511892078066961471878100186172216846166017714765372445703705452325627053250116816774788039530204653332361192693762612917009633376082913317524890301838701475404808981948816043691517998452624650395810316615747846278466956160368211705315468927337769332356287130647550961648298375709114818041289571373888498928225159795834560665306652927967631517865670812935312005559413289377482572983037891716953522507665661908432489095923613050882904055416890029930903352364750553888635072892790323313702194238537665001816793103334511362504151124642916048384163801166571026135742362033317864174668351789875147023705035771714041402234274568258499359363905208675525499146489617098784325337297315649330058424308113452342682614344258153945638681145221308708878942174458724013461847767051538581755845019965619780157307747986399994663375395034163182966353890946262384411240505519204290012926217598571417158957031953500361687218529726412753010943422624278453571843606827298213750966231355981528058074431280422411030879182051520143286686176962916091908775541938098313624119856281679204763194604843479496468858197535784210589021429675338052171147960530642398815769865551964647778361002361489143475770908013015864865042975476096975164305272919817231435771322108386004362792420512683233531310361692447138923285545466547330492367124730187062230125945239686586579594344453157675241208770896534702707070546679507627407953839841111705199150427837715478953796176385583117696512195546573335046681753119992460064187913789334506098573965140438432351534070723830124518187149448809494899278605923816292264957316994782923703038580438529571124059783072809807661221515348824538905779942271057420222662174795037556937363064271419424199534723376811180647484153289420774605552509263353014866875363395102883381608761551824836017504836412326700215689908089512660005298952998627956568744575907973934295002815323755076098342892336385690942049294526531928769973626711257367476104941820195836332610128981478209560143560809196216699736453110205973664104542341145777558469190084052764047497451882754324123792440495077767102067668917104406971907834152776702541208412281835344798927912450221504916721685937125151627948049931302942204210167658803968529900780193050750178740901662541229572318219167259436312435796567114822804545314886767997199097257564153836057647910106567091879926648900760170336671783357000185068344484920391308245918385314818953521441120192888416193220820361675943018362440227558263799503602342479827444099430882537244554471341575182551124503996634645602238809000872407249751063457392716855668872192479685318849568588559494893826481464945279532642846901689762178872885966400718458350679453904987921237374065072441704277059569848588254506713838821284548192881314861300865597822720184998607203451574620477499442108551600447752233001938755100530957672170138404283630221507902596706460849939832546345982665897940619644948125272004361654832113652682773254608173704813718845242756070149418669721331904792207159766158814766512228773360183017153710560029824643806112442471858023233017120823339562314757940938104766606455032086692485995771353289877579397044791682734815375030771259322391970345216287476140158497373899275962011333934203749693751157829482033935505408061329454710073937552821196454904216693132143923381146848772006144690838459187501270270170769822705160802321629280879246274871416885418795591740495847176929042116905993372663637551420589876007487850077300485679506982085799561229477334833462485903360659011620240420029031368614298850649291058694342277148992899738191472360854881044606679960310535454237683532206707674610042550128429097226452339086753602900638304955697427286757482830101948097079434392136960604049143736871081209502917373154273487696183936457503114816682278811127589829013522938918433566520472691039237503710577683017738237309570723809216321899662888467361872209916757716495032626687716971768617658170585847573645855957498867591119307129000988474882885911619245831795059003470031415273392655185452383145415495355516665965761207286007203843232751801801931902563648017528631169008970537919107867196595330030145145318776445983099313337260336048767916880942481213164395237124547440487602854724201985393837108672746388996499046503056549396414382287837388308420311138309223356420135210260197711519826909876976358146259371255372483946386720569531674107517948538221197278480691609839889619053020720649626752646342229173080589938178152263513455963707953962422430665125939662459240545279532912939927897433169536317571317832955775550508824652846404796036369976982857940418711980516224124570106102383045745920348744922639347254605016366802566204717415617771406508579915268458381769872580558110562479736639965942760953388449370764158988821740763001380838223666852820325468300031581896773584141164389908402395699993598260301230511369037517354432210604970345319550989758137351665070459952708532120193903478352213305375027959956563280101748552068972385353322638251769028186772824339387422530840014736510778598645298193150968489691343464086133640556038757139669783930477531832415737527669003951986050937464559051500743938878810946048822709959752451132319886047577318807020739004582449650252732088402315237970031446747588833581627488764870332366776495050044957133083415317344966308407637406704212988972909176716952184941913018502328930348654069646713350188841090341773636721798237918429137836500795121903938945567308826225266496177815095269098773047742191615036068935311986133947992474106847811135279111414001714489028282043219981391707150146295296278974254060670603425681080521512024663933442136844073289363540280030710152067345202019086402231015696380218543278446526740300367557116729091886956075141912899344876419003101484323182633900252482271848772053340596630794209121644381479791813315420407536317560963809543377853333450546558015751216730333575905051924658026013094741101661934793233496661315851155146739764345611254673936171376612483733747248221184971803979881540738487112961065990999083707157396542380174919708464811840323644022501331449383436253356419494205890233732928730336539633958660931952832100219714140646042262650752423445473376066013489186057865581538321983979397212913963778094628328582287086949447042882251246670428418051903362813568885680905083800979267862817768043820735541216863605309770230441983132780751063030390822622805551347211727510372153149413545908001644998733353666194470394777487976379778362023899354111662416149165813679327458225696671887532704111996459408558034416637172611857617994939442237434427081593924663745997441489813229216627749099271985734963113620602060144365421079947654949097518191902534601514265240549086604344149085024658469942476032373961454340175565567591452528818207927222749918421837027363028504826573397191147572223492390849800108075619800914663705131224836232685839520854702010848150076690831002988054673843256624705197670289840622756969700977842896267762423134894208399130755148203494165493651571234399719395617251877032952994248720203556138796526119397573888320266112069388226170101999699439808642337073460335175643302438822339973704843083159611167022712572123285532214088750103933587945170689881765307946887941932311102620885254435372582967713021806441703523360153846862508742655568743750581270993854430729611358763791225056491053998891813402177182120294792840534005152820789432779845798197790614838009311153559005936526426858690746206486699724678392210409512708821103161921128086137899767989805136050564546360454970519647511767147211997423216543185585039475910744931637133626245602560493416393775760031340695958507977031970115305595756996576539307824661863619930527876372054864109343891580573424003841685251762383815252422932010042032096322173024908743403565084294516802958776690122841277472304723098596563092592050134487020476058896518042553827429115574214712364990798821968721692773583981208288545484982631037010657163666907004222860753054893927008464781800103922982743162441418099004458050475856862051573186807821013430677815346778464518391923581774552809712667121283087083753809716105674752480659450057392984967055817809126521935844984175325559430312659325553834975337766195670644216052578545379432142642547493550806090530058798789041810301631865739017858006465772247730739367608889773723706851221971622863419336056733375232623739498404838385212445653241576655293539483712227862146329168338791840270645504611826422967247639829124085568196113849545285993943538284966496557576166055261206131200196047330400380831774403506433750034615578384556152357669239193438087302028468819958194013968586300665614364678267681810879465201029861764087744282656175486716926014450521560763879075809831142153929173779965695688405988930015556355841226153060644539012494651211673101823213448994410377067829163354275459896350783273923472968802142917179481933684883237012538032984071554351014030140477391036755407686730752142358910509428579290679193268170920763256237170083382043643358055548898515261943748935085305359145531545203913361217169327073311243975154897539280479742783060744466348923791068188840727580746995610172475559507814478008990883904188285128311759620953001728179574847914625607105747431701225341752740888255190081830672998516931802849448397936950098542003853733040399053708092709060549232073501271022738634283411100328323957117718771375128354612311812472164797036837078402404316223148212257592586767963181536328291384838488367204485522029708875262359227931162949364837392209099308243275161199083151318184118361733573176340686696443007668493486183537107207205154460149017441338407611714800898364540180190385784213195735199550918526879630766304005620016539108434887808717756707281825535003193263867309712922756797841653145464384891221909693023716291143562800818883665329990148672320825671637471156998413722599496562718470314886922481116839292448324431939738577210391098479833988755050384838373195580993406049115471403388989052350532773297996142948021584183652481182530889040118054556108587566451240445311754387500827635415902500507877129166882980398942105522152877272412772970919736337916359979870166735059294336309318686886422533201209881838604868343412759694762885673898146580883590254873237938792256462076285265866366396990050228012303161446459842206656516164751350470169349439293994027469445328204385750746965841395290428454369036334032977779909737364805524325201923871862060703247714609708315181360380398372061072578742056435079436738902614475386256008958768322431863134305537562392389437805680883946020489866604131607708033532601678967716428077348741550265330727619745772316792285285603403003512051872620051070959173265390549683500636106016431087693507161776845721716740354759957506199835342295029673246013078798245324844281032574393601987967538365940183151497035265887129706638680503688999983352399222261512049207983367958212613098815908110283583360327158735614235175844742306776068797746608891220087302134742741816966300237652366736605208300401496682251295600347723889071570628613593440637859010693402403297123831314123212730542452188976650353737627730965929566022080902990481204519590174017830945217419676231403525958301509793415987953544917220510244557507726159368817482602414430655804706762754563874498230301745396770573545059883681110658329409157083782595465781706920941158666371069948231023631793969149405291494598205992496930530859236397805289119538685106887219427127842526799784961512473273484011506677692251931191490139409708266148344908606877692640002898285983652839535619742911538930442664309783587904459209842136851342141375498332851236219065187779167620968009617317007592430413042134544833083331163045645632165568821587429860589162334641191971160572524341807090360699045688503525937441587814938642034807718791154019041042626013473307546382381533010033945660736401535136506616324105654257720664827941625791630329369010196166603220787610537466622670242384437131725453174133859109112077873969304422430464793108677885089592499234377642490860813374660610523780705161111491233369578409849121754107899122293470359641590408301385223871096749927330891496351683373572212082225344195013149453495132679957064779828939638214264211077213867136777835051481467372149299080417581205704693637489179391185783622757617481376745440642640069197545551355759565548056912918441713419430063242271597122493971493830966989915561223250847259908727757397437950369196388683748794976052938714908436007781062762592673894486373308009729498166757993125305323311922676137312629004379338807533358123659790696033886790909859731421997244771136503489154866765312660228912366446607502712149317973922324728457510612559292914430819737906423573736225178112626268778804230519474728822885045008004329883434724850767580141455195593418038310114383560818935834947389288517377181581500782358103221357858878253048187923072255572792588321868229270716549837429328804797654000081573284898960910264978422134423449381769446623647930488537979550570656817490516909356918857059714233361248646142785774142619134921076219493905461134378381048531552747186186676641063770203222124769303890913368304190641059233437835320579220921179255132871525801694475720632155711302821801000348600832239642774989611351870526309629044290012319085325602296791705578166927099504146825766570917939143878139799355597681688523896683523259512766690444130669315368545447633625245210149997410641688289593043093267707401152435925337329388277165234395226657279304245838435733808698272399747422591705765879532885573314544650663009130066176852850259438828404891404647969834010181971164452885313569081535833536449998707371851807902663937628253048365471051559991428298883419827313497380147956755694417965858720082881434117742171498415243562681450631022811362409680595828595483272838651016238179643845690381073629870940370667242260423870782194084909233430587347307852586195803714077462221029256699065448967089541166075370933882518773228107910801117331800472121163631434608784573930358869712845221690813553735895380290650671490250476909245328329547714779697655058619769586699917245422224969588355309764464426901405260287863178209895092500673506863018412427849370758651681230462998490191576882083274384857967130586298447330432512893350796731235945988988932037918050465025720314494163887446024614925357576860922118812566906827321905086170401115780899277483816083238158899957813019174049457745566354217116682462316573337706501890576610990350183934796827537110900063749317161957654154008638082015210967678783340663803586100298053229817819650484679446423502429527829919226217342176444717439737892387512963916560832848921690068148233758432717466738010891960256642801281263094196230249628224469336895350453490449358097397091444516861285526910716747770602441098338290797409714530911482829625291181335193235861867039744527455359486577860257931271262252455664995978795247127908216241465772472860929349242280688276393074558309643950264458357721707176247773372680044754571847959885378488117280848861933662550604202232604696498734010393994215667228846535333941985734081802031534154034598626957805742109804698032458538515903380883280326515572901563673266833577658863825054874603135880260113937116482569653476049357946153415284478698572124571679853767922967938317603472885346270469688263340529733384052452695307948071293120998850785288007449297821798443655284451482610057517732741918945103399831155730214732298981798866680635361059294965496574864493033330795503895425051099742931531666770867529340954116297351508578151482303651632045745241667162136139349576627219855526073973035165657143106824426862257300245473683473582859880079949043205472987871305215423282938125521145227992841453089613389737871232979669721762654699647352285633547351316715604841504911237945197638881923257265760381743449562260528632666612815326235138373499459682399929263167587647518228503558406335721354020949259794835771013654505668683116488491423883371515964384014797752825969412314767136151153850345210507968666325955264427420602139314841300619165680524844221219943460924944675573422160063381967622962519403718736342728334738419626511577748609781547421312115040576290798178571820698713867946051873688457096061873654388606937371796244441236292041689942794401062799351506193441000539927140598145052468966975453452304125869370461498956741994886958918028489303630583460311810190322878335408634944874313473486850777519196845544017944411763357142810171491067715373238499980488586893972375538039172899366646540598388574978893631836095468851004792573594787386098220683882763274729625211088272375772586602403214724003920045047038054953572620899760653108409386687478394280387380802900158598923874753022398192080707581014294096786108634287702073616795873613138362404396326172619111044000256245458400729413866645076998357263728643526854085081065018936825366265746370246044888168081968212952642187609227446548623561158421425649916624238815088298289639891336365114243843274624749569546448528804212562952922708351575855869418157299154904882171432035993877702216932295276226005907541929820910294201278119733168598524614656407066742667381733023744497364018690443389705007404704725945300884256120763688924472190348497325255103471366779542247455042049036300686857198396669846921267356763847832517786331172667616470454481469787038476174488390654653031084980495822401669437750165815958981936829703371137835514022876084519127110596522484269376457959224235613402778592814018122483410771554098478314042672875560709666716382804648488991097248217565090728359802998743922618715637214902349344145915838472346334428128409720026248137697052639046814980401651263135125580502333970740295319650518665617992861279242854626468059835372412865357484667012276443484161433136345089419314604147466831987082467306182020071278621066398028631943807149458851930788670521154015027917754336641521928145900554987875320801800832044971960186710319376067609869771666188998242176317693277864349555493228049114967144403781574849764415902379439355120106252040659452305832914291284842556692880685355751734891927109798735155085352622594686766046057152990988277759536140850249027106681135079854531405581650824839187175039648091462022817407965534314826946530199194593456727736397879316816176892502526733072489424126073307551915962045234810906216581543300437598970578793065373951821936922249015305299316758402423749052687884389492457836709574275821050306233162616366488373876178657640716060894055006920290313913602384478782295168534193104415195117697883723618981021100715272495674493008931409410412916132762801955921836479601113829302110515828722650421648334523193064593842620706832809871027244108343929905896639241634998590806087161913710100115102991896644059029164810839064762719499061704794699963587847567911556458091139504607029950381755738281424599538649604000482188371559453813573118547810895111723282506794975516936600299515322248593334518116961648115635416761213179406487135922571252979639553684461508337573527470634728568325731012010242103460762378574883888517595087047775432369333475749760518783776623740743521061480413212929444248049267790138638787123012749445546798605021389863251821831610934465644151752150203088967513531197053692722180983210971875226191714568779616977363802371490862694176343299057417628357181766779900897099576877889951093889932022661732021822974666943477884642977683719286155836409693867967422475183917423691877035453357056354525122824984779848375268352827174301946759381008331392993589236143497448638483232624401241804667686588378944478981963656364674826334814742047142332833397713890160504953328600149888570681851976143271833476464731811280197404188650578864989343430276603795186747911072104207954676913761169895830092260786834125734577627438386919278500277562616821082312565786173619395633398455592475445173257788159100064083566836792093052083975330881217557533559324279282670848432661612554058489777059240049060557448410036929824412038220487026766773035127443546588166961288745592143026292989689177409359394415335327278400681638099139120038478379725613541728886548324178850622170079288517279665365188583591736801875041496613003100926175170740706050688848304196041235655676333083528724492864778997009101557575549804298160922746101629126659182889563529909260408504842076577269577414917486010503551016894835593683592016651947035582954463564504286820608619538184835394722711257284781568694384769617804415243548238963536305215623169138414887248448243166363100354769135559008237154872855074525316608599454439265934048430050732781120471999347019122338890238044148397410269945642914511146408752608777362293433013349825556021168085703620462909287057233304058701231055767942293208786201220366440289326161398432328313103388560281227957044790234095934066015073447657177187140890060871519780337672574084378039519555489561694471730301269690786386822168643771129405987486563906451712208127272414035333916166375583692365010693034041944448246817651925987306220732791174299011215148714375066812814542331583071291518857821307445319701185936907467499272545641698083361225840263216097765936117183628058948639301937531028521135633715568444577149375802526093489350381962508304835223516788268710399681387168239767487136476008140680005559603987319159075869856819180216672106544041528158344455368556652809362518918065629764336266634469473140812199729524707168401069031987059109423116144068691923716447343146025223900785417874694082971366842352694060751376587901508898852173395216594661960165952950487042795648807355386514593788608575359667781246583790799217214227122441121960067213017168118147737744513364125322947850054328653523151457722270303972445332012655543161000187630884209010562453233900092843764081745378639471376234535926570359530714802622604897788264276873745703878505074803585900328893479591551311547752571524741370549994046391687166132499819359443540603258105171209109697036775688762937909820168819360140637716205484020486247121338989790617315935166975587870705080531574511534616279249953331357663432837986258123522260917077194091293581370927530312197744696706675493279298533830003642996176184757723878055770069099884309443925682041651380010519196536401281455592778383780256074802067629319320138253733976313217446732511526193501866464399617928613594863615971556757896482830402389782797060542551297183604652308882621616120634580238813928491522821318267050199570760122071232650637641388136297691889250500592709965770340088390853063456711910334102568255105620602888785266543259845438854862144524662914980376403132665613525286715829683432550242407382979005280048145048808324765066605956956624591907610902553789927763359685872783879264742343948470826500091906331814095530881969498727711392486324359730630400803424109740316207460930018441364497614537912951641846388160003372912655869343581140899106772984333906415658991221979885307769130078844305126362301190341696387585432462985851281153978482990277347417392602100647481400063222164786483518567361076368556846465796176776035710058157759623280876332948325851610592492909025017000446973003314799482482451777650863466010764310069884114608095792524228193838234324185415845255161078047714288496212729458842471757635882936778787013663903734956293953016411685807745397760997902820673807689216252181377885909931560407517329657684069123198140665147525537856110109328944980894641987750710351004571204846420409640304562759291174211872921944090134484279548694998942249763362057628171706824362989439392951800053330129690122652417379146178421274261307353600200079810286070598168186153453891648681052227081476786653537394623842718744218937441649131225864592574705519117534926289915511127338263450094734788810320632027990744317164768077048791081876064042338650541746277880442157451080072231654861656376904923219488442595314271311276832996426608701695719589386279109297346857701322191082189126780736482967055212018601694451642431588500590112421006316260827460045807423769663211705359779477699295392275102159761346597736031562737977006356613718950662317713202555880824150725393611852997239663192433921037092838588618780749163629773452766599842945690620575148218596409938322651705921803017161541370658260960302697864797181014409089477404986408365945403753502767189067021035757250149059963752608646371519405569914919350550190171217201456333645971103876844790893844093272372579197630046442213252728249724129873844426213131000474839895882393171751708192374347787888096392962552125172517528613478825488456677499124420451503405618706260840336907938839259251864250941576501980369538908545339227761546915454281061905404067899579586375689036507028314464925929165400475344880377266765808540825743675313253451613347039977851444666958512659853485025420451751666685868805624199522667760666590756603834286409961869471111017921676234844601449721692181236854369238299506100637263545633593255537391710425410017297394267176624784443788896961432032680918586653247785945149797592928495127867185130919545691072069682603686515146851676126263352868592102573414982762600088853572474578167130343218442499851900173677527103805540781100932690030336709628318334486262197949397000376313231231708796854714658868945024841767904008055326593982452965164584721125758375494263639390756995418541310802033452949016695237254631777066400684586939471158430468565051967148585769317596752199859045882425551398300479777070388229430346267345318083798831701128418767395422338755861348652919465730143171586674790854845295936330034285108119008136560455320625543906203412471816154620346412691689507223767390906757495005541582328360947616744693771833846304080960539287179616645325701571808755626567404575090868202896330178774627284403023678065656631355824847520120328800129095981574352022744596261177181254260221014468781078495628006949540931713486756508898624172895459750680190172918726536043453624984473822002656547181281946246816550463819400628501218679149302363190490075430976939372163017894140231083461254436169239356959881884578506258177459492052448990575510831968916501873225221977895334999902619027251124246679617593306366259031178591038630089154700831471951351846892459376301238382543918199737606042424119489143422940471379057059014410944412032612033439493527904127223449061995076118874688919275918727463977957961173287906447542678824212531943484944271758760643031142057530517530341713601009282223379524884252847432020864133628921339574771557446553756929070742248199672662450329299017090723709765544833629062943990946472697355728761757118570387677698288861492545581054701494389168783083376092886613948170573710279513058167476818704692730771754043251052417248342038591047206074144621648653911649137792707439791695208668724631378085168250628827767181271167985144624811991251376625127497318551894546690525074103342702160586913787816423836190773813111945637476622111299073552034080099931648106741271066190239502470954483534489612670560181613241508103551023001494094529880332237062309030617278172333310401664159284602833312819771796834230017121050076248173646207382399492448998839117701802031741520261576385836402825255773543604483624092868980517049492964850871185993667386816904663250248018137601374541028457902826899389825361833423390538725054299052008415892990057550529035585113387191140755388542346975068779067752030428110786056893095400750283870776212037329581282302206684952968577105358465058964445888049208456540291322755465269470139990579183423651528523692750919422697245558449007082076210176003056946778887165615833182159554043277349012097179968096514491531886068301357432169852963674272105053689027306053933468037273885935190792613429264902746297912656691354574013021358019529934424917367858864350140872534657774208361765785147113760822031944157539533974327454548932746665502125741177383113460788812252689433209462453517844770209295459294463725745956846702022783287503294381728330469837477001462331171362660683221936545676189102025890516771953263111050954405797458677856386743935961960359853854693176151769990135503480476558375618463694194382050405536268820387225953031217626153637272567784572539988429065914720935373788771130684877848365805194842813444054647086473762986830263624273289463537447835659359068470513868910215347242612789007312967726622951079090395472345864566834078030828683279611007072928096800996709517146508192173411625191445942740183055026137604892533223858468152625438408439244443556339816467898390033606129304962408992348791569506687649538666507643477051476147092628340899061886880142121810917802106761924618031869664591109079511556238262681317370683845909616498427669558631596811986192116879840468344228638249206261893564940159046650090929565684410663116640782105952888758477097589753564007045337941274203393524391269320648735522367666177639182875424305721047167304407811277524517745169340291629781089449892770258398304202459530230493011283139359985121389367711967807161257595309048047576833670420289624834218135639088232508151820345696176540738335038670773565097501726046219890899039291929280236021156621112693066422661389538247899572001841149274514720366344468860377784809353044510095751510510325627425436451504916018132966257637445421558771956996190389287851557455562796448943428692184106589829135373021163939641219481897326375763984716904747646258616133297629491342116007952323944746795338418365830722555514845032909294343897814151278763969658617645794923438996662402669023634417452209318286404318552265223174055683798201997219760655402920838546770462834119071354953655153742915333845907036787240397525316475733513461395062790039080992493314308005930347918354400889980850008634579192533100908262888963891658244826846203706070788490959935162717901257589842095245652531607722373903427883356079051261532877698144162576295224088405349192685498510193505699432576344204149195746160909542087694570096895677821474227303788520358867569561467191685449909048851398313434599779442420091069220971992020253168226091202763143752390651163689479974413619358616603713981271792524116682045894609216403292302730239417710072918295372591140381398815601205943635053481527927474135885952480466676462957127554482138831865820047471808969752859540490076344484738665764778048810734687247957537670034786637354745736246724487993570994884839626248392137438715441641184713411106160135722898479828403837462032478998215963734163053492321716446486808708802465641249304260870508367986900026874999314528140536351198115571379355335961211438622420534479330430437584581247482677108342286106540978845911907383141944288312255207740542752928959957253166174975789574811795346373200225063652728746901218612414545099494780503681479811262017945424579349954179342788514236277460678914908963292530610344537020221870338318499182243092674430129194819508720725833560960113030293485288359955027023297731766083083227138113134769232166827756090302482810178752251607404257050175123781347248198872125550199880152770532780726943973513335741386899324903744989187026835808493184275092207834136004289291901489921874583364881618658134591357398036959293686659196643913938947939000926920437533872561593823688063675785116805277292940803704778366383610430483885592895690034920162485879366690381141341400940381101666751572605459631317616321358479166597263357737476137873015189651480903306903722716645531412323825257630750076061423148033875590600484903086018555586112018542364223862775961831369767202029751305713690596567717221539770406433241888611498535186174019204521505328837420585174837661040434570432060634806857380581497723013637700093074171046372926023925406682274739160560421155117691424797928791437394835260773160500033903971833227760420764131199013727227893016137122102074811231559652873419123880840749917733506522581631749100673627134886133832787814445658577299559479116754624892315803038831172511722967461341989640607551691533918073002173971589978508179760415599947352916878187368890757644818831569347257917957397388657913289613068889676103423013781360881888844666689063616232945209379295733432356875900730801119491444231129930859643179221848051708688399335920593037315463697998606097322541275239818630318545829195407615278213068213358089167331800810404401298182667622780083211013747527941612066840595130915718200085387238269726395786702168169708596246316766472211278296461847920285967050661810285300630671816206082925092117852881363944511131125389126916228663751872018796232819194406034491279032655980818342896933117883563757499462064117941792985931175038804505629397436115037977590506695280502527682547207994270499968198790234368271069907949758212576690434229427643695050307651425021269679878211146303312274322135039147035690810142263762621842854231074568340127762016399194501496641907071609173387116854786259057071646563487951608790787069919810668598027761212591957490396809776970292110972372535839538471394747269216016715581349923123803082493463608154177296246538128744140751546924950969321687583935349926680343310321568017662013167930033718526878195995051881721254469745674951855433744085700864294459028221923915679121425920076044846978023852943928168262713102037523683539175420686681459092044213740010382016111647204507754648031899153727806313592454555014941224312494491869888426126948335022394055184825990327136113115604797188510523845721837669525195137872853488779177005651757410384066549326044612055956959687568721147333114096767649640895208642187101941985678549550643544238761323327484327632854263396777550289738923882886894967211384351299977961033363474012726676753794871233714541190669541443168018811100209370679094501425389797787406892583932341104800377394607663611323472631018691930484268233375982000607428434891153819841795970865354573040360407579256983683779414034061127942295302618322228416860367681414092841720481133752647798741440174290304933193043168845889405866339672402666268288931295225345393792832413357823402781407610268435478584292602022203769212709098292629891537821121180552978620863460818986972686296280647125304344986294957222066311073023572757884235697237559135241700948219756879018722450785743713847574954563251953637355275485351986056593008714338371032438782521731501147899420027309526594957033023993734099870500964549989034833364901980876882441084380917495756405615206839168135849957017598294534598210553456711812866570514931732598012395843082690581898836227012756094892451213728285091446107041077279448897597199889701811666715608683768987824039088200057930183498805709368744198205718585361334945247319980718366049209099821582385008347077480599766531204206099161089958103325983734484058184983857906493015101371183710462099327136086873369954127873964589349416933599210691752929751956943626759924884765863780669859603383486960967584945830122170195314977303866593395752307119973106827120362293099182503124479315082587806651046541185473185834416411304494798840712437830548650070282778395915761709344819451579599436925183553892521544396586978874663242477142557165861858081633905335451789084746137475900933581500225530669556040612269782336777443565528690545564049084634195602025104835592944720079203254185194709040543753601855223200356662371094390798766507825515127969384788936687328102983933912242410380190125274304611236676049059143030311628175364208551542008910397336729424475846972609042903309716333086111659196855011330660083034407908656573582614036425368528693232720429934481102892990152456373548014444415757407884512355430349280621579468639656051191453076217154250938561197918407476065490516581233785083286325617698725140536392769231645109719980790942059655834851704300489763709815869180802150370356241796670496719593607332070466474719417879555471588472694373230255698652216943786665934207720432848360160693174440618457107276626606406086273547972621737426271786651740638517783721723266005354140441177343187032736472452530851344021412953473829870173523332853360312855274181320639389568550279112023119858534403344342539242115959797874195708002861411348476126582588245715013175880502144686081212339910488640593794155885406145561016043557083820543577800095096949307332600867206478927840238657643141261695859539895339566317364396124408514834981668666627003946086598368764613453064996192329407518184893776388864032366857042507880248845587689567117822984842083225247307450888439409243914030697844166643964358006437579585882051329260650723566783623220544216333678515447908712090098644302137568634015943599723766882440382870540807909994830230315838518510401579571125725594148478369411523599977623880624637991771449564439573208565858294541921022660546828436583396678865310966269964840621249750342613598975175719999075755714706968665764790909848625574169964269215442591958675357614294973495832319089988485628817353975898276379592949631627910260602600210491259350176256151127260269307111409716149305896004396055698178504616741048419143723076015778473401970556978106412843094146524032632053901523348531494835785345971716395765117177321622021430575375133373179694382899824915811137929455295043202513662934645334813771448707790524114728719257508152895719834008843969260043950824201876774937444352887800115822292273765836039309237435062648748317023140076062796028999030700337283436042010758158508194070220826313996846982643125555463719608568526442306101385608600962262012572749967750081541659999597874280236202620723502767087517062801156378280459667230702677080373240205135653417773052098421469187066825785298286934870382885625674796770718846606484247411103300427867165286365412495663109964514853835760589299249778474406313278770254552438899394107025588162821873039846141328943907219347267043078999220535529546009683080307818049764306639595189333993083387678067750476655849360561956472987337068773981348933970918722635693992872475032841556777191536873428325477508873573551996168817997455938260583227949881584863025747055329886266335943740162059872960194479406052415407956281040710853860618194018567419459810407634768015082573486965990952938939457884083042016724123346284255033966508817912921409005949385764729438032233174536160782501102149599379273470317287220433697185504533617962331744253160397646170445997897069446616923372387013561253160869752587467067171672745715927185285294783058635099472237456432299018510166247696841070816310355999498488876171010603253614586314878195258305249103722861333381533821089606327827252749269017643323925886793811449674468436041763848819455481019719251285052187322967845600584846424043465136017497684259960233704788496013209943210290642199334504214247495978708416569721886158882030302638557220134755585368276051567822909606489175486298047983025852018779115763898783099887784125317728189949459925742151628612724338239389233242289808082705824329918012476315370193045550557828765011071118828862737126710523982982857593375954208871127472892618738762082735925139445938085134770133577851309544581802115422304770371687051359596974393642369069946511913426520301851797267062813263308105580808257513754795367766467517516181180716375763703377637311611375835474727780330222148557058539594584757583591354506410554048839232965865812822957976931894864312348888000986278686903435655591700801073590625468677341139195994534839007732409281209123785292737664854163833767129613495345072338510691320304547932860392423912120154942692692879408719399589185314935801420884421359747068161209547395499506061720791283428939681876579852274673029465320415021885247569994185674202593552455831133277067293735887929627744945330158990488338930171508772564666160547253066822086794737860556054058428558784773703751984182323551715355061860213394393271349656847196502972687435480836200608180115189451464376850018592085094789304809591308676736819545575311225195591965576818383919542349972357301990381881004214856206232332142804077037682882337959219420410577789885717899927851963694931595002014209466327524259251605747537249201127145585392206437047848715498757998693349065697206083695289149705296121841573792973293883403929498233586641255488482711815978718481126874070034275480448776812457244705044257340420826517038347919757930624200617669546411698868780322248153744597711990942049209971912062007936715810202327799192600936647744858363810277972286851255512022628121322693018536653167964851871919874196572647012695637076040966368131974580199416085001078964027861240495853880889235801091541017656617681226251604044611382924126988299723297589888184555495150079314833261255192383999555628060465371470502834736854846681962462166806370795439798294379202368442225907829876150119566856939107624487660707049256588769409330442066475766201811509847865322760803821129576218804147319559167032446907474551251965739082483228603158080591906177434240749058729376251008703082457840327724582171070580954796561500165540065473572959789358711218226362514420344536855066176686304012004241675014183953934743398689977813106492848589219917976827859903580001361319356849244573103615606520275487088617684422586429169178964879625438812202664168522946875253287822789766318713991843411230482998332911874481293632535041323592291501163905648179369015747607706915480942225653357750470420379527080214744701423232481070962418972753840243195630475655570987689679505929836897034397783721629186794606100242214820412133099834482964225887633923717146937185252203224727300287447681647374088183571467547827188459217688790496592620445811087612362864231209844946237259981919969463095852103465005826969295225707347899157934796236621263290645778398258366755299284185048602329727557796362334960849579572407951466044396513308410026850546477284510770327077770756885174074597843098649849289851620885538027079002805134788863535969855538921838807433010617935535038193685260975398812219091190254156405392331149558030978842102119944587235317866148174348343625462894766239673927340259646770294472393801530193163028849395737215228451688364892715176085465791015630032048129431307434793881028954718400100293771440685788742177866915069447590043854847190757994191731833784718256685495499869198527960201482374514462451815842772061737686897604766099455630308656859926892630047802748415181602265971013776470798197773028178023785652635989426664969245622050529450879552769345119388416006797749507453246326718162656076924991632611615832928175852765770215360955172642969642362304852356037847959055665128797841720376868921596589771958888895944386010313697017525629835615838112277159133534689555799550293622862475979754124093087398676931829726602866078093938426344254039919228338989248980457890163390397019718841907408451071686378207377532932275062286365810978385402788508943718942000096818948255434310095749148137562116292703108450346517381633278059300985270448218643661560568523570988620356428559538197096595870733675787415139638926822341300656169775537269458038710668055063939508171888149765938427461884915468470614237109701270817197733705607556056682469842771010888723711060868587084842274772490257618464889359402255528706343689940971755695211318826345286105667410837721640060450911712593992553346129342646603163999504610028270939706443050241551113751980764594189019821678058930278657603635999196068932722597199969615437410200907217769083260425520589558889474315306521913504320163003221363410387653047398800941462973689236172645230804558578305433862459899840712560080826482872177598405884546015478989240701106354449584294189102240737732385300611363175244403310696796808463585989913784089543202367282080041814433310208517227553620346316491197454022773699190689100286025605205567012986600599230061569430320543750747469425181851717323876739258719028120612137156370035870232957634770888092874614118729720744620156212579492873210134141778274672155194672014931472431276027357196792764821388719539166849515253736053898253081187656281105660598685010840195717662145066254892524454385458234643018815893590594346226625929884399683521232935003791548991787357616042906144816225670237333500852595053899532879743830308442755636733449616968068411824063872539370689821668985625386232390395826883071414792570268255104384289720964868015229066118506094077427069279156062928100061233031062197525574961549337293400361227084378000708441689846244339978943855562172388247141658435468739090596303037696236068494418447527032355271674631728200461550781472957568227651813430023233203549783285553074912166336446029315965357239964104863395634650376474925694674383180678194522315029509278934266823945746384421231490417922503800624329185281161539311814757536810251229916901658599936672670494711126659611733520333224815929279197076947836308893343290148056088152242257615934697248536600350829785377972595386065654276816901982135445572683344361690381331217261912042778295467855868506181388431701945298182106989835828089025640665287148737908117930459352091802386267945878048437090033739926780827463506007608092210643684475295605383507386024923417694254324381049992645762514554330016838717152719462972685655504993281619591051530162863499333473202621768542650461415632825561753950303488430610015128445233020141786887706511284478943685135637068030113927006484009807211520868017679076605107688409585585577518029698050126112428620456651615093047774148022269377336076481114998327656717592007322623425032857556764411370867613638684640067782904917627162198971790387060869596237803081463314917695961625898930881673180470685290068028625192719794897231301234591012917745915821063572929608785945207561336901229280943614254376791910039947780368410771506237334978478890627614085718583072507225828023868355469276100916275295394470889717387452492958131738986264528385493578051274983471461372387646735677725735434962590562748817427227761415741975595718125975200867509273479410602906182229309589096564957708305885502856908955302763304183596999089183864316182739792469092722617197551604033885338108482001347554214538995391489581658877239978603610936227300785788072477992345034830632809940241094663250059519366907260693359581902046931402042100594864602410282358385248204604717676525393506059302741822069089092790741188545904541369077044227920837471292960475729250807222871659258945136587952380580933981986109937844048901841338573419589875679039373841673029274961492284918443168852374171015591430052434702916380499298408618426526057369670304151338957940025941869398694625216296667873559489648632764806712344747054718705683641346371413428854346191647285492310373368238925757411487775958588895440499998234411369218962076659412853682902538614678202090865666295218443909039951174359845390711420289371322016477956047870292189854158238899170168209508447711124317383614696686509224832640288311727782484578421252579620399200216529583643068254152814896619513225508254916807696052829361806575661718016861799213307092393364126377450258876042556329648408267572217309624695465179477614697696243289324402545337797594012513158089028368937756208967218352414833043790640358553996659286607632814714996282492561655808273723970728060571996374363482766102577262700583524936609426904664166088411537965608288595326583510782886154571571614129820553411933429091423698779713285243966213277987255065495941242138664069739554638384216050607494612242028596868557985290864136329867966146478140727954972089352436944771952738605663778274899432173594039239276484138876491419950598607055282029476607710564806502340839160574263759573881574857962487146517209437874871622324344075616130800395269991038859330550609598142089637939665893452012369241556392992585934689836681037071288931396647623674738121700277281424414079079973157908088356676508289788697472297076285927663528888432858055891624678873081577334526248590994999963785892029810492576940991548558435205818184740754694701694688605512260285742207510729128636165024415219594255002409406876170480116631328938592612966417682743573681419085613491961354131964061454018820377555501941755413629564106569661895076657764861506729250828639994858900371425483117934478844265300699222193964857141056817598221262707860155701456245673079235009374358325066839753352168718292195252055591077083144456197678054774283183881344948372725860015790940623840527865562163691012812357627906951266928413264890495931377812084910101029947449726169561216344240698345839947142766718439213894343217145258751315218583243846159650942892362823924772454389565677969741180230904604782484029608385769226199673164313425095787622503440835962342037699876263484603836942229069366072268149594001692696836366046216400382395187601814276321095190066775895744362134359023701999781724793749398487299547061671335900632161781554043420921821831724458474461860171063209887856280192903835356977211971048582142046115725099495136816748888086969275311761807265227299308251030304902952674363490376034805786710488045854722990857251250802814028344661629777099927209604854670298566969891889297821783982813634473187084812719153966480115821873744369003222787856992943633678240283193591390435936220382002304591428068725034832618882547921674524327619627484503238712620794058752774082412536339908736716814796858515181022614279276830733619659493482213221122156717543216235887821586574183037619674574211211247560343929368318118368751679605136594566332217436061500990162125272785007411490913553846426732044813585474102354700095860401889204149942903030697016904287348506195929454772730671000680588928444724543157164355345914738904136530556370491326841010194810571177112599428227837133954927791067499257834924225854706051507295509440243727500298043594151160414670268835831327922276907089784467516032075951904675998710384695006097314936322975071535511258668583459803061341091817975487338957703569944577748365998213204615320659858817065351322735071446170282995166719349845964579872772087364816820562360908600168541843060347092431645116228035245436083874536105341864726184563423572395709575855356343925175957446672009457134847300954026913625638762146454571606931347141221648446517486104860014238979799060147360088895032323367386645526150383134818257842014217635954330937256264281759588185364446427088682363840382099893830645754957912849669463283431858433197381163329007893177762252692456601063138861996477898579462769305182513227991836548982083250639897271547974149470761683663238162370165749924344128828457507114349470668662999455290403883176568236191021264734924741570444408961495915456670644910911122737900646554673878993792871564838262993505145761009813166465494441231243355142229826976495110491438807573088586374260115710191552696842424615722665164471680316395203443238677478762913650480891579823452852400751719125988864712039893992977968815075703166606650517665429269885405880498620456366308810916597118027447255773496789971103606614630719253462610404053397666118323733643679389173267094336864033573584625233027174974704128441084128636362851547409420925376626532066103030967720948874531554822181491208146762745687157936142117219199795589081817101266846325276935572640915601903283171329238126293433737049056249978542075716334374392937166060518987820386297182818227110978783346882999443115573638144914963493021152759297438037151330284954637985843586113656316430619099332046732691254419133621586930619389787429942061627757309208785879632948165861725337243607724826362497168932245747295156020395136085728320118766928158628077844256160006242020277805115043476460241208147911563369599857678549438204903184574126541645146852252233037521658110475460996317198197430760343221824877540555820472618896196067978135373386733463980337675009609001552160640620018953223505085058886366409262791088519639117786635232549564387714451672030064615793388152888312139388673276025176883647168993060425306122007575539539530182959512279426982796113893338546882967795029381824141175477359773516880563698953159514325095839437975316558124878822701561232343356129055718237550422698271090408263420383699382808212746687094718624282127433093774776254204421400319535271480997978495271399190504161887380510594738447686152728386368348510854488893766139368386329671320901460702151579516884548880769021142151227768896759584935317328674297049231843530029156309495900930294763676217831846917332690623767221548183655239620717106454460786282624187002269879805240557531610117814313508460587490837800511563007384583251194617540387474573203166086060374304493626665965575957232991678106995538063797206135194639094958992138411694190445645356544660980561388043019650022915071545853832278516053297579301044173576529023002530822887255964112270438029848806984559951442541333008942958578158377533913780072048917316916382919576987840254436223540794294097447203320097177931623885892422791730188783417893223116665432481708148139583238485619883897771313833316708843826188677590072545181660419905163228129917467237608905803780472530243158190801466504022802940318558867911841951684655477115509842606108923778680146085637140641306148551474445352093802948007120259044764193425731549640708712804029750254688012604151965039894971956097408151588735153175750715878013346451747578852982595990639302870351677828677501119876310434259921955744311237540462743828927589854472365779293774529841555822026231234374341050803064517898815573682251567499871551720916290477633425858353714905700531546084995455463527060060708916962655977641077374674223950235840654151526945677786705428669512749626507724810233315262439518608832418227362305378406788351989649702559036328302948298646254763059568994336647248092201384540265609356323397190350875245220618733220137748114624773906064143506643137516058197488403365721143729976614292245076529215171778286418614956381195471281864869804600778918958132376277772075672717626651610251425851898833614102644534349889032173562853295644322059900674212906786313462040856777938919973503480486119429680227905513158574777152332898605561720469778167148021502588654051759269489934730133857755156804802826643902262695281946247255684755064461548722550322403243056189069517017786607915992483373258015615803603292069197207497711149509212960246251291617363684215004948814469315968430560802619507216498215202402642708790712386763806807403075959286286699738561716425337569323170275409163214540166664407231426539844641015790397066434269337949053446475569003608324787467996529571027165780098946599835014518091397992228954830101075787822540518999715699594778064032767365609143853473768610310556107984229116055597891747710370440217119539382263543335588043525194750787530160513632662607227910130868188700987397697587290344005701992795170754115294225123908918381483248829908005514346719458854122609680639049997653240796950910253032864522428406368214605735309275430241495623646893184819592828718631412981984293706609216202744324665621790335360658441834421645111808852628139748686196724121052715576523352104235774374202579030500683164553035419469007387724420427546599723409314850982344717887807678911947175734748080119435681342691671425408886871991420367033650421930661190682708274071257955032323143162278238843562646624555680451425243128370348088137050737638058905667473025244526201636841832771229266099217946911474935722608629207297923994337612562147951625563571986775716087695045791681531582954991430671978745404291653039170456132008014328871278726490745931817762670955441217710082271522237831498134174571833821815060325460938893603778625000717458400300548188401403450330687884398581455059653607284585548797897841952849284781605243844935043377933121644163930766386021022054024273985169999610022523443857299181513149616241513835615858263909212772188198413956208159019446785167063708923378395253370678751281480741203227841205035517880442881631397160285765098327087446383093407940728004105414164484014726328214413918163003244992624438329087534646036525634888615407748992864191786998777214725766304071888481480959603848594925793378914963130495668743851927687447049473948937621123836109931139865393708455962549906692874217801463505015296005006572963641957208015239183436145617366935710074446047703726420812017468758727221087187986492137816382515629562691382750331780080168855328422787648414397231670904137427704289887385758039355730298114397760419384138236621883943548210548069497541911966581192645589970177724545952437058379877229221340838511405184349762622785553545857708757071745254619100950166042328130247267464964720922967544617968061178681719378889416720129539212714397454152854825283539510454167729909359151845768572954163219491331262116460081776201575195295524471417338817965077118596276068280484571657342343728344534109655266445048626791927570282311161807001573106761853894665102473097165396074211858651355069472177101436670241771927518808165613266718739113634643678206681004780729648156752559155983371036631409423201767105854388155986081724896531535401150074111940423319145020326990006620278754394986121715281444625013598521157306427671857431564823076037154177562240741425504815488164188333367257978252263188778263824572376837379100843451224985115217751162164276496733679475196056434843298748007785751273551737800187257055905365035468609205560016652952023008509132125434125255282579972373321501992713070106962682436203833764477277366608235763534569336278758895377116830057624670276473638423725704937235016878037033572276787525283758720755174905012515683082800250733135779577118956766530507840889422941670158928409337293714916108882222986929770397996150985442398115274336641115651557415442659674506804077926876434587986493623002083182797814360978830623621550378716113541811624514750088239842993363459352652929998818498082352547170723304601460190112780815689733736661594917298548374863311639119996673116572881241524424357921800345437582531718344139692240359647818611658839032273759788598721932810084848937309219584111618827873133712858929760064002910105344709477342571898510515697267081075266416159046030663766663655457610772026235438682953812693105426335622839144797612349830247445764091325236235134886406052123306124456760114837275912318273487217033542226346178182109405878501510135268974281002293446199669987093627964412689791189221365241639479223756674247690910908450624515037341654451701559856760415811663966909329810150920354552196160687325289943352769894896631966247287268417594341905478894074289183781740169287716161203595428347726590390429138634156436143144744841690495562177787371491768710205287650999056266729706980738105158356425586538422260256193274602111169753181053796264454562378185742844436705657389183171762976606318802108949848909532488259833425376555931335463367617474336172935886691319145561878408151455529815517976698152783509889909166485894679465654818350802595391233510759865385578288973178230277771086989168202823020785666184569815000093422328571819538403693345736010717038101083518392730570305314606664230124374275761715775332635957108936492721138718018961433453392915916335779702021098085780354454707484658989810195616579818269318586304888512453566229631353654405825023289232477540258547905911912870557821998478893043466830168806824693337709881663021879880413650772556629101475337216304501344365322671579131191439514516851790583068712325349367502900005800822723152995389090568016490844586855941457225715309246339568006923922313148676135786545044746661469788241769245716564274788210989600974208256320333968846365403276861599382338862666945518270162889102183985565439894758438669181045580890032492634227735735200006457011206859264682252706691552950572929185218325728856365253967173397077041006570398767889481123698482758293036780296998674869924821403460849877134680557081590429525644781149175213226454770501982974362062913500116216557763921941644007566509844169459989834660170711957811129818065878424868042419820842127737443575556345129973125502833422885571593092480381335706400832325403221389217095724183137342720176824746187584717332773647778560926521736976209433937923346238469057414011203695475149525720863474961633847758871639831554899385325134089517432625375484530413665884578274583232222192882974416936341827141948454672330871019519012503270485502062201075757662179688810513248110824720940095273908474974096966279416395658987777885275952420018181868970459498647424612594460657589720641976095213865023947023559484976780449156634194704746510455339241529840803111461932212193728922839004785417920886444960558184534727325166269376378099878181784547092958886490974652024877890637716041870163607869147391677557358325724764364480863834344611317597472947217794943708545755561846128141699816630666963688207563819571525900418285628875426233071923007650462427111038551136971039995169558049248887290666099659446053211914372487621287392327914375501557647056472849929494125017716024784561031261374163684209650223661528511408960125921293795403295688317726510405448537451751154212342234852239871791660081259294456580197031233340611133338280657851344531083548490091391684358255559887354347320863181803671494390470742569868498358042299376275957232674667458192191846673124673136891367469934585080643267443033285270926193436347220370683448426016240561146111264593339941926392277404797087742265299793890461936115348395676768879713415859327834097140498749081520326267570867497567716625967699298196880503710914549724524201389562533605633827123312316272083069411191852179169697501829837752223740035985363450513585660265916602522997380116638610469536408257796657288684486546248139168313788853083713112231643134831804511534216162847877231436321151379474504540369373058376655311584599286709235593788015214055121299469000533949738499950399215586273961757138111004494465519016139473443645133523655453705374960218881316269691921472238204450619354465682437425411527407668675073078669016090427201637188452591332066615673903237898648775306815788706026769318045520406701728484679773669258383538218387832920728775778723746858109392956920875288022558250722171697237849140544497039000568473797654131709605068202620234740542489446749224288998231723049032389829351093592280762919952040694316176517227909425510479749390508976230933402257087251447818680458219112722153150631273260907099110526449610109910691707301736157636797108833535898687885755403918775448911136671634520916646473798223904289859991795449698558590712022622248602259589261757108200895501869921589106244669436475890764281300984692667461442192946352762177449795863951189101490446323929243726198314850016586153277799264265346035316206395064358923064297313882134073429547514723283366898224439491806541633367672027644983150499566387896626723727331789389999903543909615334201708478948979888102516773016549652192764252349436554924720229850800973637140091483971778634269563843879331200669414850385769910264472173454847586647001612718585891191330844947517760148200365303003369793475052509902166515433242557537954172301833755664807065755313433712385587766641917667682885528495657580948984137758234421258855133524565733775843255977103915833813761829763776284120729905637046047128688460683893082217533856028068246584483758451180567780066508363327960888582412199072606571863635001559097516404256699127315669789763988569155650372843102644454016856156760993584335035062797618740000376864861537576912994045178742839091922155472940224402386413562931442297200699169142720316674036503950934428852441945571866433827075362293970412154878394554029340838368647469916132089793281298918340198419019357694991893747608834392455738992826074688118555954102253032039351986140442254144721949109427567264963893591404990475815585187432768344261547115541130986439014715872453677958462395227325552435961005613467919213363978399416072282640759873123813737300073899038938998208677988021266953635268081161235692169539492627149631935802021608302294482711414280071166530475666803921818332400554012452258858281458221987541497221249149454676109529064789772304971817475885833656277036708686105634274140007471074298179179144429008506948260218522359880050122710433166090080419482133509052607431809922337140817758785489949710161822089975315852085066630170986789260878910465314430870728886628659192008465380699168712304408202459730253720362449792719584974934940640431949866548200024195701415139948808210415049747870211734843905448017940517072401258386781969128440869586121416830020500957298119345210155186934458717283893006506842084339240309387551060968785043113333486182258656529343194717132027287322512754774885968496425337961455038874749360977835538039296909414933790047074557586582038213892774202175157621282554594165913268603859063512398820408389491246404906676997677739930033632005794382660500269310795657054277386342148598218612054729932543536160194826641931713104616061291956535210939979896971213061914724547180250356703644202611321742132345483228254673586446894203171119080510346778511229708159593507114030865856803792555267050692406835751021256916874315900648399287432516010428001844045212479815663360387260093859591184453028918294896141320920288128704304993088535563172991624354690432427799987839786231448797740588134400168305437964214074733653246534316492686279818646416461642773370251326704391548695420055870554153615485230272090221132771750403913353463197296428587308590519388827399682094730827492166761673590815094687264148955505736259568362478098851275204291760724082643810696756916600097401832780134747168881764988284493227676783486546005291935482733378940877528050931553638275983361509025749593433748991815746323857347204382337886474646507980060622427356570233283749229873382975930215953914391815137642174443762310783331893850404068058833594500150441489523646056924109714728147867429155839205864251087293308721628034091412796394400024124208294500864724744967620680143718682086576336862017765460706942906174623684962481543288423082681834401382304979947397698503985686848558174386711238769563863703854348566925522157942989765621584892811915780713335306830362346310982483037814089796860657724057194764527100996856029043143804256407174011407032682597764800486510393482350938989454391458998305072637338352134631832305838914601995854238294364686678225256252301404244857855736515575983703837093747433315683661012372991128701285229246106683192222723776811116610807445405954032247685299634427530485976619981259950908741943318248243856472879694002350812014795776385879916900518841335225314914050575428256834400564408288207049302003575096313585288278811927410760750854112771982944239500985401594655040704153690456017914595149498784837428923448498170900450740956416726515363779651669914443307043176718312409582412747198210520542880642382684344659208546929900076700367492777505213364922192396252282407189450901109786353672287548214260336554282001897116077308864352592372041223080854229542609929189572460694467188239155064688844589356511651083908345624007928043700271634944629961415949464344519355273156485283020925156724156647080478557536520082264269846685852484668514965745824839374563473415800483248750899707053978521588034957726676511191293252487384717133419399007093469800878428079824403686993202099216081555980186672656629033867650346770935017131494716162731993203513231847395478504572668015985173989155015923407090610922987862661477012449223695171971535981893012342583243511539927923315521877497671326291952257464913738864802856826416057585936159746818656151146994148186226782945230644845761133729399576343010633528790912193114806920423100046782886885694853536346786309932572652631932114433996975168856977596195209514561699194997183584737392877673658428070404337365702604418327170365935993145304883872704879432955541716548433777443914884917470801246231107959884330542729493138313551393263390678720404260103097099875171209170551340002043696134714131059419299447762344985866746420692263539012237455164101070084622302542333343634862644604799002167395894964789054618507657710694921670186880360642996121334690258494361390817552550954582520993300039761583320516204912846816306147069913820096232699971908975280862013444457735106615051663984048605551345053687830441120063263697284458667618276640973823725771059408891739438756095618446276938154448246699937064770240101538762085906581351824190756094374137150337102716152201532122673768500932044163217432326742649012289761985946139097094865449050205400638221625213961328203120907016349079350375797621039273147512863024323890370537513917262413392041553793388920487262121942385250184854982965228064738616403526648226876900148023222487871061994918792661893079758210576312078201843124553656980361769559286470119249103434551994622794541913691997305735150335364760306069519272990569283233873060161657917411762626078090928835335940455362246341276458858930994695746866607772043226753459310369774529515271927699556057183378037718978822130887319661068870042305248191836295292200749231949668507563389993623151198979996484865128481234594736025416939437512562660838361394198003461779270322116678047468700840480276156760991055515047070808631522084054215152086481852927259787267794045873288246996872476604979250372745093498152249810529843023614899397229326394926799931923030835689400868128246116255459342673836414634733458888210628876405921802245106362183663095161984251646028008236620383873099660821056973392986491920733228127675343211783577198614830638421222413877152805896280023226331419024379474581785592050849430973807440783014816053740050470968621223152898138989517317376522969206517992697061470826648099105898542965118635842282817939664607911745276008121280468225549544591548440981012036909272273195928416763480432073036936864749149723060534707693134366527893360739639870301510586525231813628224886760379650886393184275977367127485809570088018228640275715196105930525266021094909972123929773556301049822822119430126040684747594949578292730135231076248523976742912252859661604761693629821874730544425886681593346853146733822612475511454834739089464276735396412996224171110008864664975165190161589778784163333203733228581432988087819380268505853572649539046007818108179920385053067818624961905455604520869011102809826638739768703174939281272638278130983100885001159207711412383639524644345620611674655187580924763820957738179254073810460580389603121857390850635160349063907228877018780675308598072115646840087844604444703346501353924793318151770079569733088503847283110431240930143740898239063324173367109418653121523639324906874530910132537588804284528081673121182604007743701575232733100772411898488074216825515378988990121200344366887821058705191140862321930141838759775263408508876237117046717697204264315640826108750283786131934341543562784152195603316412536427316663003055498345548126127121753000719285428399997873306352143265966978827704133857657277367000305236038213682528020952783228125765840596518675072606150484126069451378058828970757084438068182025890675525119470734620479598986244610873707691692367061480459114216202852220619481361610565728233231362633874431041442043517968461237599487185398040932970085792744409017020518664071404030523866608079879032442189137433184126650796152146595564161715920171298632846784642908154354884219130324579656866645020272401546055368317837765815668011232661965630287477045718710505607400393431037018584721445744923303998257116944808162217897132746281537610130931247580831894918341019455441320021952036108591341193773578102327439994103522531931323100938095984166540028738536307275866231655143528552530634132207367618024409080421410200101935266939187802420345021375006332781118731363365302780184786478061079709513344928486793111774137778350987374489606451884745215249213646353132400818097660866361065705591809663111006967131332234768989918719765421885849039048473445515880382337203972530877983532607907397574742342264881346964820638229916910538854858039554717463817657445335084481438237485926661383842960124947985264177879654920182320919952011355329199522154611932912117575122657430367068480876126867135096666305281347878856090981051748552234839698999804621194088741458709998268931449224820097277703804426461066199137584979018588531642117153936421791826218126046967153839578165929165621703465497115055578404531979282493405329057606719729408802323480768186445636212871995649237025604873298054453824382059791924293872720861443510383799499597822604636914548168206474328140025716745842740283233368146722456516339014091556436487734476800996489052512103005288516435678475432589426473925317666562293661470452956228047580423205865914921838303326785456530601872830959493699309038214750486570348398183575913440987352163519961563961658614454551757745809671687479791293093998522143254124308805880699571402114561326846145953937756344195305558490585349147272187596394348613463119664777745227401746692995834033838288983900337722401299209048370535290488424782939950997787952170724972125586282642811852407796096823121685435648052882575114170934837941416530830543975718585557968620817111650937554958977753027728149425936170731444216320015864777250129076137354393410059716821798158870630278238041544985188196090095929669235247106187329822909117063714748359275885223563912280064208687302578303709003065683899277577226369669627617416676342086583224723187345161076244386722899712740846888338211371181483323984169696658875139170082560327087287622067057026994776578468869947021387807419890565835636307984018945994864759733801169474995688517519703366406436902580826637064806901096562824024589369103591401109056701982388133307372862004354593538947682517708228371016425996728032968348708552177509631599231610287936696074152653963187134864843919412825364319444811068560885029185529560541768903727711303391520605745007368897222367242503695874877239122453368102345629494181463862366788582164232626220980465922314923879388904233222748893568341146962555386006602509161596408772776342030125918765986091901995816601568457203834254272555266132026113400972903170385999322561757492305036277201496340360924272455728479741752438163404732286361202652705404514089477542408880711453609451828172729667318221872188642707746356895507079036285312024280914138223233851038567921315011854009995866976454662473585075198015724001992883345264053463723303470525186929906283288449252457390754167674736362722827341600464382661287508082315090513403493556132446816114626631933925593665396816822379349015461425239061189866637677355435690157049210057768457172394839059674248117731243368504777698424967797806933122212747780761981829607581661923874794962487891498542757659982426162749726237923163756999657748117339355297026548940013775568829835798402865485245916226218131845050116888054350039499874987416510494878140073515514929261254822508318063019043668486416011718444290262735592443177293708241099441110855077984206798100924242785362310600205162793327316467547152017056921185212907340034320428152693734922027495578287374818276074594503628544412475438431122643368353474279722162344941824642929983110449088222308875875447911601698307647162792962600909287459062591870180288691045732407693291985907146564546037636849288140110593756129312860623689049422169308713507191194014370368082283545322195629498221967295404743733783199719878755508891880127588226502092693742083585300409548734538233048226239864242202531599399520033630779347223686728433297874958395674193314782963584640801306788385445462508446007052689500014921497468427019211449778009168185788004835059451178076463127876459391075471749673702390903660537655265986752424551350650854783080497900898285706025985022194840850219744355035490781969701747913423092063514122804659298017731918543695962611473952449580116943734378807791876212480114578690558290909152348698301712112765564964898919704182746529396777032717839270069165443304174138589169181729272222724425006933018059375169419710194504127700389128573009310887156572451126342304391247529607301063268033513930359156802463434814539268815460609625638384869759794872239512825332524035773147903423433783145895884877249550388823569519335074016097908498319699275879685073546574105251883386084752467204052747878514696088382322217431611511874924339838925262060171328194456584703983950121161984265937709725892770561339705138774881178504402625131073394997789124398166034463262383439573926749786156865023715470846246982918388317760744467309700515929414486849247557531046765982805299225212299294569912582503499845930899002283021236655050768348180186031126023596287332956765747203701845763297026862720910444707250780172218109404781658427733748777480136838102515632522478656233031076360885987989581511775566319807797487840075527878938133929729601222713637769553749388058015879349920114054323435476692171705508689625397964453767178001750991791412407992497340416703452519930196712486282394057614665501795308125261440155228972729265994555953886501816277216687975496319102372763002558971671446176065072527073890400711027610346256865373340934986581863498260784506693395201463323361673950214565826353163961555208646585016266314982739445648642360464837886295336746015068395786913580061912248555565928020429980518755339464170826548142803419738083839617217392694246358022871222063337300147554685392977412336006416250787852138001181013192080172389624315156707043346031768969264827196081285231970034665786334175050461421181905580767510817404377262412518898622662040303438400470612029572374064147688531754356122538195026904353867400004005829205032027290173998404260776242864393268134435662924518100021912577676050816507300901447719280474323256337156049741347700033094262388547795443640215825990544532175550352388116918170416333171627304336471455375852523345200516346165868630205800292347005506365563466795366974422476470369445915418409601149702527412905624493273732232079715201893031286574942585324899916052155209330090711637517569826367040034418197123251214215402626672091568017254372225492926656961252404892296044842478903095158060878069616316917441597970456012572968773448406686462305923580266746741171846266535931060424176982547967178025092328719813481272570502952880021829764800277404713452935152783827447772186671724865600502295742866948551483684522153890699904867209993212357072330630775746858076757930794449957749800388596006687733984093063087268517673999780678867896299811512612440511479186896486550118748741039497716518604089901270341299876632216960866445724594110690883974824912889088360536778571954587607562523757947882616390880629194099122441911331383321300827715997235751943669566231801841519906715838180230962481358641196212321875797930495685497390976961165733832302648749709075640373618997556286561489125246724107146339370333003700016092925673016935645060010130282554343184560447424112842457209870427929118963921708590266811757192646635386845123739905882268389354443923238577448691384114868050677387074974798194401241662877128732735724966240974925833379136306901231071853006881510976834592336051311823774121449852845887434324672612683532400656480273616081455669968631477534660358010844221642227397148893174920448558509031461952506032583388904974259505997245358758656172217321881864497353741564116061594508082129520435999334757699732232811305505637165271429687520834762888617608302750174842897702175565688565603282527976220697022910257512815209328469781804750889086384251157303731795683039792365306804512052645307191250047995453385003233163979763033102115528962668360620438460594439963954162089647021411101791896398953037106361094161745957000643865397141820219397644568412431593998891081247419636692665723568591101031929935809145055526485390888889195367697235224365575179906684239928633441816193544075300089002776118560042883373550285934446535451299431768201007221458968741834017372401166830246664319507559019349941788482066827132057972894419008779607604390529171812124780862433868608797893180581648888964615609713413065803396043246622193057723216717003775499237266005750763930982855677248759222873655691364563164646290354277501002943795802309821511961215459267784873351480414332060604446861980141407844059559387601220249395264348038555586361888264574816994673406242365355943392013443176327134397826957323606941647958769395034798289270014531149206694367391293044496251899970450245433846434407034536405731693776761347344994575453185594791745790363466672088507321300296984452514510426337772725893365866335230490941679101860097695720762081787472224287327398351941631139568533426069405938100534720100355817171886587891732033867746797712830434325406772151246177187087644448211310762959088240293069270388635511303936676536020218081072863032940819433118196891032383684021213906188442972933602787510254731572005034026612054695380053112368554306692791653994774507173974166917224946881075585074597166243547369561008911288096508514614083686092002801872174176439349693380741255070060049873134499900922938131287867997186913259229669674720214870708828825790616964236075979302883208126183981906389543211135669269578660546957437029053170995322131026966149784721425484987384020651271640546257981022471831013063602377832970547027112572446484206697994960251296807769339581693661832616436014399291617614475234525308285067090983045458671374314123577702400313177174140964651291675542293344758430973396492272659858680489770506612695545984561759854346694428299046011664050205526961602024614879597321513970489722215839658735411703832378951626032129304503605218447046219994819965840575084580978584943744726568223368180952501015665333698521203509184186581716108068959430100492641626492873614874279209558672090726599465584322445258431028885616137687681541550640775042643076362596061300204710183160074680801615923549630416869502408945761618374454324154167016137051682906989745206215963555180181540825833547309779222163793196206878829131307505656879641203233068130513841377260607593010285047624478972241812832107308974107237034987231210865607149211990399281521221088650155264615212412249532741241973463525255016989272001991071730866601180277110139326074662029100000814393109450867842411830317927329585589126932604625564551382995823620466674789559810725832491001327506601190032408986504289337805379436612573506675811584556210439184050106787462204678310785608846690457046591837466974933607600968614917315662037694588058240632052517155996100006574871074757149969941688466513752852921405284793058151903758710523395093976884449826212662648361805009151980414893626994260650971657278459109878511552990923613704982510319217046712390536380938045618730810002951862452105452864591528077085693261771272409125992003950902584566494271685307624277990077941842321315404603516400979159140008275621274404282403625866365187740261523333941305273855217716785883074601090825862173764186136963019136752044766381923489661972741554526431394915520919335550985183089739685829783853205059261943767040000138450808709102295429107007914884323452217637227183920861498773223507703372578795050113135200736867783701514495602089231542988469954402953418553491487092001409487902243302415964587738782333596710126931338524618614505280621316466931135498128717246277188298907981790761038825288019658637302661888896083066922789600484519695207603569159807766742871695497866462219275958515631441410857447072040147908963353667828421743075488030619573521978383973834117398200972211381471632660352661125539096422667570540968855041980833229746198233920586909411169742015792399650851843030822313198640222992328878172723737298840526900113950319774742197137225456034514129676270745703638349956597627370836197315908967768111300609940370414755940073335570299573525446929119710108977109860571468109713621102051112974971565165456484053198070193415336911667249286205214132397454746009779569753077629660975533503468310946604805203503307861325729372774086842138984599155688594992282716944757042190969585137887900194797554198844588184038638888157142131562213384231439431318964838500488604352009868761404488595670752545078427458054113816705263672888080461011166202103036873053673544654599559702170986727471955369654662129040043735449014598689241955975070530843933822858904443301313064130067824666803074450235118592084699955079337879875894959212237671595032785260183511990223506149369034981013965409886930748453781905735110938575669048742941688895989288024879602561013890424884441996846552761322334571153254957811827190924980361355781436474678252490341685190168235220214202943002226673133008088077733282778941322328172010695148680527460382240712243315945468446452718191778156986430797046941739918409953027556765659274726772415288830825730899395587577898580890813471346307910870021244688689467575700997909471631606926494413287045266351733342561968426479652481871551141451716526077032922432855196430243736661554751223841224924651269585628216957456098032133087761756197908621951237028249685649665712800509536396111228047862842347894194777322945222420530674207997696083084743139745743555805326649060393476786934516465543437369182748046793715509246314284785078949214837710725182547132041753981487473337094221083668556795823288432159895383792608461705517584268188082288833466474602090914824420052961637328439928753293454672780915212685979110262586917424084354966233770941090891719152411771817662692713250397054178215830769869192492515955155237088972789267745845314633014832059771419864867280790993398302224076627044315190952865319754619951025275849984461139015154984139257604515126968600167161388660215897508016411185242162447436451363790956025938648392885840081213728509559802095299620122503067431533132739334160053176675093834703800011812370456718282579413300791672855822035750665316317876854366003087191514165374324712009437025012891402879270803765759976595498171465938617173226921513065469776476061847744815716294168304501013654562404474835187255565930334411679300613166107785774794534020614489085812678043314661578835135549937776258986058063420985335685261927974215250348563710039931382587106130524610460087652319283738428357886218197849311077790766492394904030669991058417032840756108784261155913115421393556677257647548632423798566336323026102680104037804651260418126718073891516203627097587675160324726104267258468797638404556324562445068737423234038133686431910241509245473247587264777268078782631724519772061282833779439987080289413851232259444600406382206643559062393148490659047458422720227728522279461905070130822286896513830488912199215265232357510910355263997219101034469611200826912588432356844035921986440652233484004621857760328522882760070382564151939512532953848370803487054556249388460851768016271792902488496829133877524258627343858374862626432143484807512681712566512569607607130166651829004435628952268513208430377634653724414667111217673299478320708314365032829724614629329830534938847019064700846816199893666639714883644077726773741938039287978717859685819234228111334013629213657772699472803989227547036615344593732201731218732836730343519310729724755189894068364814217107239653847082045921175648118971416100414281751158853972286630117816307124596794099339419836306556182770355726903822575771234194277758033828022932166600185024608228075737990074320543837951190389671340383844454881807712209326943656485024601275722135878068244026062536326633969777166390005612815152575617165349298208828466844686387070249076041169095926566773509541999516502608382083078206368364942057192383835201383985595897606341072449727324689008951670745922209271580772998953831536998293285526012223130798845047440939980184094026182677038484585168006611787243143495515310043284909688212042500231834541077012192005608156376037472586026413795298826994470600191008256099207662549060708803242253553047784178881105232382610395807953816737991249477442473283708016535519038977808513728641829713122500650660858917390113487407790231189371786617535792296124195084306879914263882293107927272469604948878457107478667463010388456457779294656491658636185108258440324299428434358915368791842852793053035326657352356030142099193118814784592601760570129111947303126420458590902162856353840295002170715214837977473964741916609793955696727852349399645309190270622453797413172690987594297208305734363701847102660119821467485468494526145748580960403508862916446714618848204778240989977921707839901467484519075778785681318995604383905453062302227039430874319757458255224090657990559770813462246070820673669097652503676572155394513609731156394182804258399024989560945655581063977840870401848522370013486820868037223833454633725708792740254155814747096977654096807545767066589861118002218867975205023805182681633902918049515741668360301913921606248372584864241727894247695575879438987553629456704848990197399023360568886839534633449340971949046247328451073061974767146468498611890831399518714992077741330553239883030311038175983908225556285416439066923155030790115358519448774103686749407548587245836692452321769300513196019633324572773277692194257061056404540344666177470636439412635634537781928282085441936460007713107800957093237141893050866538222010111476607618087703535545749446625188492120374828678668077685240598610379108789951936871528359402041690752481291944100803479092527642725716834580931516779272204854443685101276277976193423125131352300751399930712230029181917025698710482242799885897964899459823026986801185336531093882353484763069255418338905982286514805225881498622158536103771564995431617909818215244114260968167588600462355000541846031906307129728821098323428013539657903629781669567123832802813686129320660244104995641716184731896827496923241415887693917692196613313235688804337264308938670272844765707938970882905658206404098015379828195471527228190764683044995805649859323965779409179262274966861011861729947288871163220095673098070861003153059327031770163865475112060689797808801337279396985871552707956713358744814614555978330726049705454878845888718092997925157291122626428486908075137063511452025188700998003431144343305830951062005047824693168880213384648491724219077810010392117380772066023324347603416507171309778305950464445926602930159228316745271871867795358756361620001181131034071312656332232777490242079617694630863788863876643328657298445276856734776392788246188780732816188471806183310543499797021632374219700889096713252224122390271461656992500480614463278922736582458715503022401302779222609056203122467609432302244173956636313115264745109135091500550077645189970784599737054815036151271542984708272763874732941475513261555704969939835993435564551331770902178224915001180354907065431732278259865787992872764754505493536710253789169272082503351031451457317306663920533522168629870823805598993989168135344900966623020869247780616728290354022643676806045858327904691682010996791796966474275621389459146910387611144797202819515332772415215470394285151255968817285745310752308559196430851719514106073914828797785438097580294028423929300677600821149067971436822871204163965528649906259919745129029735454322694060606701201048219818604403909462954911713159696275808452783708026540142448029462959934606359773929107539366926233443586692032782135781118375911982789614855485156804772508713657626454691660899486905338694061243129602285878262405995755416319973293689105050757355836845847148775328675811073927678761308044688540167909338190330422982229063629296850745459543848308308652057515388291157851536862106824143575396560960141465617660417257321639144508288143906551416156776659621130270366740982904702054431375122804531720602524794059775188381224846432193626716395851205161668328148321989059851266579406655159546357812691951795224556044256092108634662620126073237058317333239918296227466558653187387411951170490272864494292579378317845981130502542385979058967869197723271365579265029507114465204641586336924095375527927595232858684921889052727425595039477668198283992177842620894293207043973499383499711193717599977379788297114369206838328854548845619071345428060846315990709865269157489045688138402687941504818690126327482578360460722203279871538311295289431240981369237941435100102093644907371052837680589211263960173542373407102231779022781935443498665371140471464420589965662997729902537319286283252335036858709081500261649194339473003814624157067689661012086173975666222338884978428683495816778335936661967326071749073736112417457335075924762487018258345042899542140210705338653031032895466358599346315085090045212998060715726972314739530664942618462253056924879464725297902032362742639076787791870396660975643972179713733320308996315596002792492292999175876622838744791787835307795840029656880763923579836047653217939552407197635404887431146891523633283167715046149429799095691256318024915151656689924552448083410878152919953804520633884421185473082918783184589414639210437582025964576295596067815427515747007746681442542429210935729547698484155386964541462104232873573495690887156863770255578635511563182147003111159698302410069254591081520943287219591117792853980910797439761728454377478707784244859151656965590828674155696360960516339355596549266376767060072955403099683164682639679688048773355826119914357377587060289648239326638931472348017013422388758563710612608340566560567720739125263037981754257771406630233194157747825025053023402253149858868431865226169933002687307086280913411760418551654813737947391550811288991352754908078232338585909219943442543257613685741622696284301162841211830272659854012796098161756252055319614067457628413893637557392132493949056465289414725879661690241639804696013588973345870115254665643135602020241927839753910922086803991284410357476118906214234731475577810291729209708349801053549041082642275371845881450464611509110021068762919838180066565193703443647962475780645984232412403420993796572103061205315590768530932045747409187431998158626272855414008404690055611459231989934592699802692709126679512778633640064133016140770388221138060477778399664046184654209927959157538361772104381711465987228424918975950644875236005465661558140511095476955358350696373298831085409255826834449093215604085247545106827878354771355385817927392162997779872722808087193476570943905368123442320067268182925867863517221452154597300939398285292393098388829677154973627593814016994739146073335003368302975021518495240694725000273058705202701028766464700874623699975833457365686923000790372921250250870477846209924484286949141935388876183717779601042921875801734992746915794330748976182599540363858211907099428346617243118522048176394673822495687413551518340950821844957247831188577131794504760944446859083352987061981003469924452793812466224277639101901650285134463759444787335453659388142521340125231914494376412764608149286524348303225411584184087484934775295813581183062105403207048276179432974358993744237021146270961875898558688567682613578797528476986943485055898223689845520155431029192454409210564160911017029600408103747087397276172876141329700737409219859793638766485430938785435440336946469910778768229856619532172141001345499540718812465670364700751185608720818546670093605242162059047400462590367808159329279624059681317858953625215666450602814756277814692748622897044641187926891116524118003056480024732045365685328576742003366505126514972713694529375972328274030990512961437056339312737735306738959051673035127838739433523289279208395273594538253763001839993057062199527235588029959275390412022563562186891270064772569932995138252349775076552392999661701165015239220437120821221394413066753861611116330346949796453122615031577300748042584300867825391825045966384223812794173941916413462097465031065730992650559296906226365166221160221727147357690915160415085023656028669625125172200855827056310509070658267203096299041811487950198477610790867260912856856313101345805275982043957834560623376463341709258298527940461882734725872487301763001149836134345425852251551333866280950245183310680988705937658915709710050175388398095196107127777764164174529047180570303416016346311176086583079399991268335581892834777930335732980696451474676389718089036923901483560070353311009500842478307425759298040395348956954412936519607437879993425148463594872738920684392215232061289247620505176699623597926905485057314755141690379802643861670753474876592153710722041606038397300441793480099447304997297818863288506212206001559796403115882947410812665876965093328756717184502781287213887694479135381740888833194771776735269239514252953274230511369514887609740333522360271464145399474303458256336880235885847460854246783979852546265484438478328516985876134539199845362566219305101026148860433970789731258963133608463723288415871472718791498153946420940677271817373794731369676820429247604115548249891641464797621223942594955746901510434156251391427075313469385011895533352123938021070720320107124886872038451840512272415465388821616123790014538977907868442650107228604974689556137614129968029937656377854763284148253790978031621175849429177465323096088446836612394337720268369623720633830242868049652004900565132586372466145169231181653411018857034107175351508734504202943003422949629372988545933609053905319339402659746655679424640240901422555374678759210734862267099276093518835253723974176849156715467275315724289843915114768918074456672289430094826106451499996835261877721898532328990680842067789783898103350036019525507169307504376673379092227981750166861200808547607793944167911616134936864443725261044885474036727266442704588575344399638611907220878642697417548194703495883687484686364574049000289499997628773346081556203706304371826235517719823044253365061111314024345748899515773786690429995666982603172428222148626456858386149025403095181502988562933754352189468040510005302978780770325977623752995420953678082823810201915733401415168790614042864646710653418674535066651103740404233826779763879551277388132091285444136650430511964353163603661096905129530751065872515237865075010052977268000934655392663838966002403887084257954251626973809468335419760104979985636221937500532279068412638216024746495037295142999805148454943699176289998093686051738066477510329473184885876691449226408325666964358835786977872551470600870294441869087852203582964120973601580101685826590427001415649294365248614336413161363537758655041225770568065516912069717813898329268706276389774386691066677042537058548752462674703328153689499231693348091194094572431703834005436928361571224260389265437249963068150238676562460260484848737330794344213716166315707660592023739327651825800402879536384908133586349096074111620470575599018149228874637337450596993019681826095982441902583919215737751851387003953710044355942686108541646730245865653133266602481850715863780593011181899604076345066880775443973558588930907136534600878182936998829666415858312488055331390309309986919958663369134482710917951899289836443748199460057638914737924928293222695758169654449440284819042836216643509359073081407431374858567073546842416546713437557480394965508549706669843388141803169978478296240389743320594001113887068566312269073581964279776899388868142706672729408661928782534811172435495695987944842848278034926327266172200687712170976330119035253844544464150318831135950296719330099454728731665701394095816084595786970983331323846061443490757242097370565205766030983359717528453560249262236940097569771464664632594179081414109435352011368642934101052962302086494870644691446619247374924571888342772698661816420888105142817860728152320911413853715583515917595905147354020206458371419144781355963605763636543662268452422493201482201458802638723229178888890142007664742774168180822972858169859333004055791558515049867812271284117201264943364543685786643712412709980758906384071697393461470479630971246050543221412877544528965084490596602438909046895588076296415175868835098397038303451801725617038248313808077011980068588176795582170706910836644405056126870357219176343012279954379210736383043674138825059160786173967635131901271135242044080837130845948745524734269795307481763687468906168355716149408383921421662094478510287191108121571877154521350651237735582705408006470773096404580155112103694210518173878096317742432769959886822338468271288569178238051718970995574671735319027237484292656528505688722514001276234400002931854382614330881620041471354245251441907904773820249884274512020276055775223602722896468016778758735678110529830095980716166493571730479216770057337176592854240582714322620061204133767252694463825152335718918442145506659892400251316267985591249096729106225152062362498334469420454798983707606794288235612708591952775901096626771415363201180440907701886290460431837405124614235729391736679634557747351117633543025597069719388595832764218919180977225613402321044948021120976117646609905193034335394393251213518956728247042919719122683773599870342219818507777069653077673197293431359996502983704009250190970616067558013824431314760613931036093856360318906743842211797243790156212827996052848135605412087991766403665794227919949677915812723633572982607502157679644545815769938543814899859181436613066810819496079455004474999697205722924035787932916392931305176640223157240927507349325735844316198099814264577351348637801778253247202450747834445078395378274755118904961648229423763040748026457948509673366548442273446620025325731008542646996654012020640662396171005435546732094348316465766557938748334461638267513938395396040377417873124453204356635157551209088436593018124157969328148309302595311379461904943792863705908723397388243631818513018820350756531972445476919277617971048294360069580901188134243402860448429359264071489276211155698502268248714188920704797032493463599754441057758908259595866528131423776908944103120100594107519757818698072776311774792807324864100769671499131384759309466043934719196476749810746816724729797939096378614431477723974666201234004612072855094561063990870884774679284560004180438278965559660245919297912303622461802394086402722515728030537647072215429442788534789397342032141291431223012980496499699306774775025521928023664013059463935637850159671942579323791591319153439417543248941869406014009205467380057608172367508497636177053230177724428338799043680956740076174353170770285306838601067705208906651729095021061577206965337073043246021306654276629583469016992566431722703316588403133425464280152735595997146755353952777639747646526859019275213457156726747001160228790510872621487161216622473365350235008195099974831857919313615404516413979935750451591218511632491259557044819445311125998434719404228577386341829012764952781196090016908887271702100171059626478555762934743026019932070538866854933596227635603019717278131178408221680393412332854630853040130335753072830136743651880680541101080671651979199765629353416035288319188515092469779227435955554604038154346233126890583926557463777228215096844968113675385323604877612800508974031245073257083830415034683408775873519489649481626732155307606651342058286885842723277770295581632174265599155408865126439518179187812321931522941973456827500726649317005175889278846097616360611602782517582054235923427429576802052946901349879136075079371478169175385354908213952186099602477780474384708957537975039351083174788261668781425808265194192967594438087712239112622005282855458955969110358552104005738017920757907914045708861226324878908818395896168019653575358103915327222508088926573708309010613524949731914191828710041582172222895779258659076508768886470438073805372271427375091782791741166229855619148749215100224778240695503816563618332362110075968208121251452947248278416753084257980565921604449918401502606467256418780636798472735795068353316552571305845411045925812116183655489715436965215403950363646826798562058205097893845243902212118885661755138712851205155289227703063142129165547282111238160251450383761450903366822320763105467168778350594628718592844229467825381359643715136143730105284457835191565129287682117350817412815837429959937295164122778749236611753899642156641997579729907478058240763209480207088747237702354162047637658760777758004386136591968286179584041338741255193561979941350351658714963869753083426061659106552111078746641607592975504293897327812218175606393153240653039820559692914088367199768645339684405306347155948072221447101985388720535170467504474507886393670419752680082198748156214114186934992793054844870031625320227410819791635555492732017496321479831373044553888607859571359374259889561587422867727554336688455217839365980533033805024294701366677313086334676887322866479566625547154794520757114979260379562177980753154649603380406027612062155416677745671815419784649035207768312986930012862448105703934711343709971923018101504454829546045187694955359367441729875485926015423750900993263366872965442785763846265142655172170677903147432098904700229017344885526994402932763518398233772643686227035683039012919442703263221895269483142338132650630338703554321891528999770245473549149497236750429991247909394127217856463576272859578317503456557608721218822442295511504903635672238126054878953227825609442694704046281075642967158432850711342685236326641238282623378762348594817212523650506522721165935369515829664873411749568577343275108808182752996387988789399223260865111143696280191945411210172229605517661466988681563762922839568490537513209973007659186912320582154759100687130181926667142244376885370451256888232020337878262214303698405779820573934612883599869149442674168803144933371859913522710732100403049556077388982253052280013734859432658911694693249250188001014723819636194428467432009464178255840992963943301922764292759391350379204966423234363847438177598461031815442953628880006825785114910742383771708070697948578275116786462388850468761003553710768044402196194216221652184928597084888262544964831516639107481550186175623220012898615365643456519921647488198017879598652138330027955432491271950308113575659745794391583692068159623751982143530086253059544456850115871447071944145290952605659405306255101289500404208333979141002958017794716127772866553147152303180315454663433643439031318737074054491619490146251155484987561840397686593375249711284078113346182149181865251933591557211626759043975722291827728591665517167383159283085323872994336629166563243191930628954618702836308285587946221232999203408793592000515297096680219385352545514822270960974536523294662582961526016784698666949460734447307014731810959732473242827648824168011403920846180231613562555692852629032277485964152131666388443854827315538989340366873777972080724957100928104887581147032749694978672662543272617971716441381407773028662041288510103793855670653105514107331932028384358101346344947197907498606491526626850409563379068096727495167736572947347049575498274007170371226299902310240879117983466740040351976319410421255363881758271996211209448924696717775356680387295015988388814261566287312685619599953115670395976694360156111139184664823565503336243572152197440296911309124776327168789911509565875399813694767602020067547901977947397364500942198455671517124533691983697261192280845822432442936839735476880985742978259848618221770259050111027573022905305922372039503532486815471552748672926329458237416216785050135619537728299060797205029384948793842637846607137345773471887358384916574897315300685600238079557140146798920755263266873754458597849771089675257007575313406508585426036965125503483343189271048226965510007103504170416016192064569266536762052374209683596154960089041200840709340373416269017226822092288639456771821761366029080983935738969499748540857704586086851992568489968036768503808310214054138580330828126437149490018458021094980917338300050801087291025066565610351651533823521770216570831969168722263146541269862777227298370698407501852453918919491693906453655840003300196650259613950363461362351032165305196936083746716525753991119538562577411405234568205617209364930937632317714235372343189087740293399678181608289841482538655863003987226758719011667388538012334377143572373023632117012146803914786811607726544116492463745376790560204422700878107850782187705063271552481262633115771073394112981598643166592161195612426005851918353876948017934158430876640619945553994257759931883677353689963641702556623308573694596410624781008258474710841513560061928775585386105792474260672767325499119335720156015669874221854175267986559831387594903038244108058800585989853211288727798711000290354129082533815284996834557941886696777498241866366920614644821298149401072120951022066879221192341714547673838351836418441268962158491583970537872659614233283390245107495604697666985891748689471922807422668524668675918332891035133573759230887164754376733677609213605264420165972798915404571405132973548627709213584158644240557690395008962566160602067279434282566232976259477443076576712132459638227769958748443938605927480562676976271527712924102725958321766393715137536022651794044531239639652837223767402078127589844266015037097705536514448740447725943183381436591462607209570225666692300327212708297690704158673845285193754068588436564014705392215396135048991231086709234558911940703229557029354733252201075728963692521332331505982274184420986046969153494131601369066346567650563824642839808078421455578714725510996180568212274871260529785389452438998246047328634540856647114790586634786767315964854709987858032209427452601895118097608272135031633425495967895534266840765568895264550831546645198933778998928629202181114523901656518254451838895104174405851925996583672216624437076120201780653152995371989727586462830436950598844666113807170589983969386441608275160320026579466809149427266143680879308664737105955106091067236073461594119561039573612773013883532046465568451545752425117656473972497872033258892181681858150037391954225077776993021885207107159186049416485800246351397757967197322610667669896742645413828055076855428321884940740788209419631029976943496937133113076932346305549853580584318123985689019384536419533542869895484234147290753025135856369381221527675790702730619712058107820495238996383355648618380008399192448685471802459683890235233158615395123628421115272759573235355880066151647130953803566700546933190335567227625695369394039317147557779553519751889023421227304326277267870042113027797903122702838464282702081185975979510292945822055759067435743859358899593931058646513563431951711057763436230721234873584470421445237751912626207497568876304795612057296708558029665927125918134097709664434941772992423515041565463540810589956566339077889302722918865209728485518637771512902267058471612434297501535557865011663978746826759982871106974904911718342065400587803137506496322789336938322197893294677533760341599975304948059711957960602020912893386104886977671120476200465226754063336078777176631233049654218804503730934325834906876450109690981722323843663250936222921403254218318980623441220055821259642170487270189684838674012373133695661497195330965578746131622452654132018778302313431841511821558139459375255417094566428982261808464576373458932622710368658217686881999354588497102659338684108495957343033252357412282630806652887207335038118089906929493970535563252716855501680044979571735472984797110432874052692683868205675365795663090897447324317394411792517307030353419821882588889725844737522429095998369427643764882746812446731960995410682426344883217177560746850122538418897031679751622537393653110757366092060397584492843620818357450934727025468977280601046912468071129878505613126687150704800511112139309421713915140988677256667860334014900489544269936323976875154082802659826994117895067378248231712291588764248516727182660813100065138256161876707884410651378569894883355682973614394144472680249363975043787701112600051637415604201852654291395212110521752017416875011395142935571227044906498502166556078104589992354501769395088434892500768564510253299113114470646814326330275033123670893739809293312597309153850668763910313569952075685824620458113337014369645735574858541118580303244429914481243275766583552562514459125511641727141042425916258330615115030050662795924001320482715117659736214233258599819161928775229243247907945263194513946778849774183896041493657623656444727060564952362786623396998211659139221666292133294343977395114621012241482620046305998209518835944511248823935305842974782385623070313621649779425729447444770941202839337645121929817162107853633113935506027660432361464207802097313885305517301997793164514608928948722121037231134096649885250516327012106388086161845139441500197696213269419554072414581839396908880568615261876978945623197033230040687019913951627816060026474082383724863036083471630481731372996488627485379137321845311586619464142997527362778714144832121649183284800104034823421094132865890533621254750164943769485107372940816761539151927575612633339580177260114670914616685584990456617187679121154867236163871842400387311393077089076419734248981645010228908652385180507359360891098017890726462598450084481416625845773048031288588272186465016080120787364833198889005339085265161498381163069781544263702511394837608814945339515300201984489561824905841908899804362019763801111647831610996956082487803570772338425256693858638972106149243129307395494030490507253387125865235245146984973088449814847746615605846998155573956620419113771974602875648493984273394428713880575125566858989782299936892199895006959069515943057587744444283277649504890836384639475671528713543311193350374382840639277679548214299704004000853099629825298828817832575751428512192220012453508463627753005225525157264062745260722852918918713380951645635794572303370942714556779754127833205017216606457190595689632368065967058123584327262157603600282492522393585801050308293325493549350479426360586017983687646919197017725362545009259623604248812005933805733163026936606328148062250062780946328478653981012969255647952901595696415329307791071414541604577920001695309761091176551424057719410318271514383329670808892727171721131452344807284091838805894531888961732932923808188667766128547188155582522324764196399707587865315860295437567055672944416178688327818612284647461168593455474668725346385214459949520329776536416455739465576759899194577518777922993351751583240788408715725236925778335946882923697754248920710820710936421216332029612309298100516570484674992071091113294972428984327742722742489922089981067523978445618590869994110190277357318466465496680025488480222610024217298000056050628064763995583563953472051815274405975746729159071725070926136890853122455610787847077888486760622179044853365759899071747368835951737145472917704936031385851517626822153309657455086709006434031983557924009172388771844298415330490756270280532459692602734882394516918446006107185857046681858475221482148706866878188502825963598272819433369501879062420686257519930311786919204847394098776951823078605248867828367379644563334642664044330850401626797735334165428493305642007129274223057244145948153619250449208269442005679058786396766807745129694751772988828183955012109252190140561933571035179253436778933536473711420161734171411014531584196444970817831297264076182634227736719719414610212181331911825925018943537754486145200664521486423220619297375543317870652904318598729866781047584410654661707570375796433338201026876390652721254831529582352491575524246094740298317051728039314319602072808980999506311461642227504620133589624578427756238049996373472846901809515324033605223876654219779003816704942250913234767318337096947831700777755467959647086534690413536888449656838664163721454405979295993356158216686879775151163442865653123748475641204184303535133585072424185490779364717773481119908570649209020897953128012670759600612129167062959701454306940243902975666074801151895173853182336947201905763184424125637417528386514838762333905681376631379400089657022920419494239096731468289064882161833363650575824411610966326480916371378355100740626846051171077425181204230238230122011679728047299606498205902568355263863033532750101759247975769655324655856637812100717730560386844708790069323157316049592457432778749165576536242076080681222040115854545933266705080009504733062578971694253967399837182558193719399483748300102192822395261178628245311792872337753104776086723387226122750690043270527171423518534002672409293104075287866471045756367220922484340037138532589239358026540257878481656466476594476443123688618096708116994826725899233924064363956857099936021379828921638460591770565857176199127375184520577600622878773099515001527470115161551168765547545294090700336653469667689526500798918347824372114998065546599322026022945093356769177630569575297887107885171182960265500549326440105750382582758245125445496155466660523324322041368851443803675523462658924857220849002088792587383691591199893831870630985338720575861805215424879517527192260646680553975674327642996144266550672391815768828602798289719512672097639315708747862723967880046509549633401448719347230874800821425022547827168676741500093947471288335779063880467943865365887409633245742377935513279111190471298844216684665753260643588788695411551632391289896992926160631531327075954848437333120352269655836151605349484124014594629714844085387766189005093030469325629700538626389230020719894985341612258356681948484294938429090808717069476444375890809863711722729422531711191843013463273228726576265475715813792464796450177802814875155567022774577481212436683164768675715166904215130766375535900284730552736477438095536009458659884864959370663581288676301512819230156272112791583804307334337506083028770434284925593469304499725425067746892591936950980837813545772400992689213795207231782140496631916734588241653943450787016887654559920412972158889441431589770066825657993443485834483315057624143843843162044059514426356007149023989198163010267255076683536000858900811140618794672875101964927061239167493081860661451602989714219822867093423337142482082341848852409267194707895295513136992271108773311069472156853485398328001144462246466091307891901596933735702996210179244569040491618389015916396684140003023706036968610514133852271993419899499446571282657351723420738350405938341476382222324956792599701658220190343669497841798919255001808652025319497760719766421929725843588787805654901480525481452072400117569538864181717359742244622782886445869353074913818594950290238151547684767623578491676594836691897009152101606680864921819691012524288003883324284473145842524021907680497272363949976130782967698700707423593512135301957708940491970714216948117719422764348712197301504844373022250461176522599411779363777763979801149891185905315910634066635500482654622263662144610141360804893986734286352701554138419146429541040152697389037106645418317288068025038646784883295083605284617672777829316632091394989979661599126299208171162733885662154026118232372103590837265475014375416615796006619275925861028281389153160822338230529743050244822844260958802267399970962044117470566806045883987242548302990678974257786838027904880846177033116939223380755376967321749187877901246510644703449708192124143287066016813740425126217062444877011322750269490807387191672337274798063877979370682040722654920335714057714047304912093597412600896875317462686418578384626868738056602213676772269964136886506175957131404043651983596767197837663167126133489542669332793667090542175401522929251517758719190463527766740204196873773116107057002826172840841650866424665670057555547953937137822843084501025244194770275243030644273409950948912095192613186028637770008319172926896809540880590779444328241432734481262605075268199252643222994784748863543088752917605162403854219530728515342286463401530431492493973047820037571137290702522901513634699073851328758446918081970181207525819539490437448329657798754883855332194030294749289446689487252456717585039521120657283960203965859900495032855969877835910657005897500850672754571785002147067471705946563071122283694510250782291051828134202690615603310027045130141022572698951614133096911163324339820210103088543401966846594710125593028127963369892532795777739327531830430319186172392115404317803294889042916769665675201876849046109334919622072133648626766641222476325394238230300275874271292773039694853756639879129999478371332917283994896201742332733177139198058836236545439549627187360220432107833851560103144099387823633634584676042652839761092185224771628375782660264682176052842726726673114410226198431611525888714668757345621097093892315035938770022028388560720742773689696077645200135862472483821027245480726131327451620299571578955099638660440341507859084828250582909413789559017145970828025695864649366671007067123029512723619199958018709868412127842698928227829480473050200205578007569302044141113145187456545188286702875551064036765621675206814998463318380748858990659517111450939619345949532502840905033189767942018044416605451686156961294530760706366524350459232753415139168780570624878506626657790021561542672433961663272257920715818589609618632775963514824695567157760728926144158878574382841926088280448852028237108784904352973584920529946958129658285422506338758718756142468367049286600655455861087557502800672282581844985991979387458423533794867585404837099398399307306940516032890632340636377048657548489196098202219958653521286286576430970548840639206419000163166206963454150851416406913890477683564005739268796591987621342076461334070973786938770143257904226389964088189985121249671021731988383028610672909237378803689712233576732058405891588024250141145476264884806003466245740152911970670784862608840721197433413986559107831161586186093578550201428597374029624193206837550035985799272112432783887758015896403763503356332835004330093291684793343494975074458073172981377866582198732486307137741904416024065804930411530463907997264676575029716636391423295925549243744005573285698592746561830925362805188649079938818687997527715704043901882423686866179766530434500655990593417764918547570333210329996972671216254977049089432458438397389118095880573612216952986856479520124966219553224299150809199486690565737270421326227686021260231000835231349765660260511629667080985303280183307104595525301401834942874553587309987947788840756252138615451636975195799747594369844597279778459793026910830684792338513452441326406978172894450613984645261781176549172376286620017689163677966874731762040077583441254998380462842950882473486598636723758764456069847492168355631140263309589741997821748533711949159512546159016265133251049044129130856294828718897100409138602372553569688990944759099839018651475971732119892870912285165733999073346788642149879586227893862093762590743900270994349926661590713209501287655492562429652946558637998486403503095640338938489262458669754618548684547223978661920877757195753139143008028343064192942036722513578751569187152292503195775008125111825077324943287754885561747936180093557862465128467498265069066162994290896930011149687732115229494527563174145702180818101177055067201538619976403501974492216583488527557774613299029465713097366647316364336349160756820515525722097412415656850030146900099944577926426410879192743163654710443584052171140746400278526282085997719341193849059077668468930575221079523575123783392058066622144646284993671738011825351511282809692937370669283863654306268393294589944327711958265948421705184255708577041238278385741908240118652921371538149031049401746167959981118179437282595908906420936897865181009125166227013168796284846922693520781670062901701574682279440999504329099364478525499604126221700048691710190897859751235726283282581430060787388675988304931067540371273099453026849004489555434119296025682420853434937756203547548564826641188562000838160153537490223143314564504305959301242449675245552378815924000967190884711172339283035258056966181156576965377422629768402697397454167813024247199867893764063439255514825364447384014007454429556676540543546846080249171436145674747749629357826900904130754616562515790577317321965915784179413102165031325091546040419173860495601338537285695842682390447018826784333962340962943339791378026232137324517211023007575973273792596404955440309082069961936712120862580356359826334707292740311750658134495446941744152373630771671307949681535696658428936771973736951706466977438614233570295831335310278621693164704142594965592514842300500107822733939368713802904544860396303326293870414714897881634712244677844574565119775942717898385251227002581042387582313631127665869610275791076073491408180571813902482778181948445173131363718330498662504433849972703452554339963510475157910138741181538432499994078377113190201734325018567792878133006729243901494243722099524118793808141174334920069492047093984073327983440024069346858842820915559397393255694872995365119409211167186330477641201716791540994171041907716655294880437850178256870294948726571428667809513573412259590959052744591253822558452745746434044923240285541024088254527105653313415978688431126810064030934388830501945566370983212742560923230006254227101115925070720076300361499573011668667026224695223303564583955354689967079309893435151828564448969188118269966961332849644638470774207284808139623610244968361990762633429043995925526771845345517127123820656311173355095684640580445349026604300447240243262653365429572159884511051372285955234725743660214003957767276781796956730510140007415887325704337233445583547962152380525421974591706290755310597412735924674940940666475748487447477466625380747349485462002311995500852922145048179610779858396435003821845922752224762023619120675583242558992556182983581243071277436953682111991486282049103872996960204311058425642647579315847398607432563447793065569207305293755702788896244006051475913718842221756429984074249024204556851765497561673266740386504304640961776131391247878629594563127471364429614390463409059426826921092907866810783520507761862351961069952637776521900558641570641374250442166470986144501904641375971585457627978754205982355221782037466223382843843764378744693318828100081852703530848248965556764180364444659071352421121235302465221747467362797269220654584806239424111997973126942473776289883464673200098363616668243128217372989716859831453192499734579402184736173372450605623000675820534974950827935819108298121375424964358583473096873301589164225137632197047718527552309767075908568690293167116429555843380938568378834797605762289091943034877101947569341973208860518105090983061957109621512623475579855115058532318971888715269373723051821244899702071448321895230991507465273950995602716285746714229279861426428651243336636061938695708171380395936631624116028771143576483931283212293294349903296678376441839768399875054249911806655675633502157113756359243729983500440636021039182119119922870281367884962768209908226068187299300895988296236370023610286301066961459009676416408052068646649631400175239600044799053199828929944847240322505300176501302551759367444570910720889634049655261776093804216115595873410560009421707117021954153764281009361212008071428387365097032238974314939878001869226743794130512166913110966228405879097358878703187276869608794556741344684087285641720610936648108314819883409138596740512506797325486131265790336588723709367872542109961881125837617856124335509565396979921007014467415945149061019491591118428773873655103223503507915921549600390682099333739441406451178828568004898047949181583928944513272084452410291394168015877614003005315177586543715926624709492423954784411725296807952191377810451680763561832957067754872999994889813081544542064145558713770307387622843522219893089731431203834246469751830039500849838130415262057800201541444112433667965577685385621606220252155184018837190964490472793050832024656955585656522769821231182642700226949205057438022630409648740557576668728739127100351542401823797668678681595714956128829502832290498004786825960995000943912961099492441275194075687462845321372867066622538083112791583859613822734720643098314373498227913402118565096947959590977087269381530657159986796802353667421325119431622044556367878497507435382761092049596209369921388692376357637830221658390509139711154612312516831909006426037001653087075054124194757769902768935139581480519433438956747832541724475429420850993037069995468243970736634414513040109386703483508685884009805808544157083498293742157151433850682848501005425833087759981067581054148925168558787219074687244865928371185387229866407047520199962164313940840695371453419131421325821355508424243165081703981038429848823705365723811496542629435001837358505104780883890337281059364685880462613336993663499248795524628827313244709284920749628201998266243369819841048899124187249697725015903730635904727661864951764449474562248539352122860035032421110034426156532832819749905343983157959115124052792650553885615996915876693792294731856780725872754442660602909420488009165403500712123020345303424563305117446776474628763682746650290591990575812514828495008619239517766378520840562209081923420054195045807483402864932902120158149118781981885555150863027177175490887810665236026016090206454180927560952908678026859337428596567670317542575162939566947072790129556229756219615169678718121091495693863121665312345937754443011691573622709874700413174410112651239853781728231260674376773170137542134032260218430839118163233914053571239172746868970448312430794457064927467790793005417907499095896886812141039169039785430844556321184784204825284390408720046498249783660314163603008824253701414706348716947865904233025791398903648717751832306364604939791170516980646523908648124480290872081242932224462710229370842271289062783314142933445246647058248966957728724864172311113894067652526250406749595281545024392896512046126697139198823011508617597457768628098122251070820831612256768688696920252576471940932241540742854385345588881022695465937739966147549012317849038533956428742230582397432761408190225527763339427334405572937811206045541846246145546436130429018867664990405199716886150235557337884415469910566126049608299757968135536118413235112796700070016279832150443967175626977483252552720228398190779280509077553485603179433440061558511325695729373924561473448170329512674856804797691836383880258907436268421529153305810527351023687990384056117947958381896331507409205938461337849159564416835766558817554267251588382326430441307510126011614740524127491592817477218395472309575125538469183258881714047710127478248089527046481055806224666053956490443508439831333442658969319943098081410872600167894250500948601147588758266335732850888088646747081072269450492004497789284464525182303400711350851927723208687166569227206000403661139316270469540077035775245624594905045556325626917931971853316741112978318251654135387750807134746384122116126116859592630128499750519569438522211121262335704092232214471702863045133320086158753995037153995022686805928994925948758140410515002310572750556558296504787751851321314378449561092661444635625024191004090421989105752876920504179586403247200992041772549499489918559117184804584683135107138614341765194879276232556404024436003585552917862720998377318684757120583176076832247546688148794197459870739208334183748379325054360034218466536322572125100117301602023090964351770383452164378893064884666352025627080720340379562210772265127756162861716097834042903168687583627410894331183024406888736574407162039707718895007142400810300475321068634619103836603003356373701563445990880895787864476639285236078880099176663870221750797641698411493855917915992927907991439229797690812576662656363948534779413093755794582771405354749522115716633796275803800934911880327607275097785888131702803137704762820074142190693418716008904768103956492965893577053337703840482007155766723778475196210725116527471336108992359733777411343112956928627228004858554737693795132381609596961330965925662097390842618871962573018231530006522418876894871051604439136638569673302953716861295679324891338165940297552666765537028895807305640639395331101868314825254188108136422061677977726431301211280904885634728928771181542310706546014503954293549983760242653612967048789161930571311795372275809898709627151770259666107618777937969355043390198619694227415749577197109748720026701010422017798239077477316971913253656211805016391833135654917723314964551744957565007984762240531933421167315060263311963901034456160982663347257864132251508046960968308698156745719446193409729138504062685096486965628850688247757845112070888207911464260871209779160314216870467173872333409193781333631658979149273471946574699812156429970842879618847563681001207432557014483087647762089374929776187729547976815648494632042110939414283253843744588578479627925276721227153397210359101964240397139300135219023225710443151506689254822767822537212206939984852318628285352872615023508765773396169727569964471835156819229078804861074472959430460798869354578177947287914776358031375321161390587622713111749691179427233447518968394760855138865170345635420440304783103891539880138670171672659073220869365519471307264765850518682782016264603633217268474076856960095623706073942360128024310651765008239363521462004401135352769877175441660273036418796983810771285270085882798370386290539021599983146101261914714705099018548698257594035261194341444216513267490594869383203683506577254149786252300777970006356434771966452733937453985305927943093865390041802662537887335094176912892626283486801234305243091108815592176534242100088058819559918900276690910039917903051726576273481174664887690265865775546258520099213097596540106160983207593273047460853237800443603676807102586236079199397940920898548059636507646721774084281726614562699916784657019016321959433535762335237777169070407139058840776051660953754916582323449033813105199607495126097563870534743328650796207812224017503084734987412857807314215598374108067988285435791560650451469285821605433827724750978044706747735339451457797847140315232744645353844319017207263361944307863635666220856503176465840291468406557001809587463783751104538812982494178824466749219392550058460559537913615988583924250991813496321976690424303930153298067420927904902324581796636523829047977432096123202452375054889118451545854392152077937921550634952991781966580045168811724081734575455159675684705932676564598938912921291728183253959240018684009874090920998026617387823104069409751296274157973827838275113338231216986438657997749769053905710593268004378312264942245332004173394430225171913256393238658123507313027285131078046700218781010464288463729154686454079699719104682045562176380633597991002808745866607985659794461468261703645738144155644836303243422405480129492016383979749078687628703809969326939039047881916651742460157930776041463957344019752199533413270454883103455238988464053869016897734310570115555319614341926208796690575866087743392109201932588069844268333795866914562564098981337610604287182074402531483801996133624863537076438303795923720957469788102151509621691356846990700637252910938386412506319203741411269880736027877598548704616547311099374412453202058248631143197291910307800815249603132427177108895841604777758402322514151929996995517207751227259245575148388622737361851016352751076851574604878450674808170541299967187340001430346459706550432218733048325015820638971771108611852425796000287427343329796729985047506196302671509041398312922396632258553387759454331474114722525942179328517351633708899533096284594866178008951274453639840438416231850489133527174120241823630702363577564488213915945013618627852458992045117596207765263734456718671422282690220836276385941146735600653886445622839370313215494238176939087751793325587680601916440411490610246789135709508339635526258470232002100357916300892793081731553568634065082442110753960982366664929524494747275675031111578837225848198344487915139374994692148090779781275440349574495209101547919461729545664022493052733731226920161138617125733874222950160893168911012579566070911734596288185083062696947776889425954447770044513078168554681328417672585612998538430551452512192331231896157871431488883077407214763615630255946939767725576173563951966021367910727135857218622782293441197835739496976825748037066002325869281382626849743239504384189973947680231122106156484238675175263983379559515130449448121064488153582658895599628710436761565450864033912613435289496951191260207085609010725256818622357739741502484883646776486404849061914411692129009740169757204725629852917535905442834099175010040527614608638136976948410549559621827764123133129622314496679559313866913823377266541010282583470327240239958326888768373653760556468159372199910805752040464753954574734252692838715104490363630757636374255496863850894429734026687901403067713814640220671692968931495511597112862618477623715525584939139379604864634008219091371757584302399005247496645949356999642388583776698195439324226527708805077707491305457921798844410236459850623432968301421125378951880524793016755743447030841835859429424561382553697691090301929392222339881320480540396049064850765695199883015210118902950650424716700285705878274248129999159608474073966482280433871270326923211380428077715480077365208840482550551227369024016267175094247976814583988327345958725831893377812041925594769014076093433397957599717117230984337664268736289018196505616679853069892521017239361560678297165389639801693066667003487267219882405235037738222959280288602719784802726574402217571700376865435091624636210664721612235327219371405743732433490386767014610455676878704692045261349782406517766049615097941116093090576546232010926480433619904163604645060691563163207928098924351155887743728535612567279868026780896563500839860679293464510030430857055045425116571301082697417568631336016713946418117657268264279267138845969802269425995329785735591911278794282938700510073940402628473226036532673045138841725571311840829324502152558468194090997896357592129928843951317848693984740956731950969375049721914077701121653726022513061489297086198633070211280210591030026777688873470944317451942036970303019077706657019813623250243288294691309969006511070646594262738493418367593941337076281627113918512667790840970267957619875166750851741046141307084162863324377142407710338373824113635901454739740589890708565625721012709531438570454867479695868802758268396510899114786817251327569133903416896951388697480756615533756926186672372381133528031379544535971011928620211508013720233415266741075847065011897180741881708433310721220933217687060451221455833238410559170178983839057031245350643954683836625855756050958418744001380815326927254587704786950141693732113104161700564412845773445140820176703324297501012252180838645695410652316127834956745874103779548247357124062472801830275462425496808303593705470882863714482216683450671305036077090296225746008560037864934839599126124782750210892049792887466510193206379041384525769284081656396098252301532411026192400117302615991637572154016638475773465552406546797412656933768806483482198768031031899686053211815271011283812956139922876500245700240906690841435773634969369923444841768794514071400173895689143215288922340827741189449294747563531408278106869737848577539888769394640833111144109598116323526286462884646642034785023633185261284009998244392042959366267013978614087777198854280646520070072010392457385910391966276948779952436143916326917411533382748002120013284192238466956779970754680261594689339740874754682987930984539325367988128773817619733239917266520041167538388892182483898861371866828992664826746758584246222676738034141626430423367934300895610702184192030150505126814057398912637911825652217069769455199004759104822528685562891265452825432732980518914030541620079505942360921377998780797906644741350735200111752040728547435998371850922632387793792672741186033398815137440065256998886151520874310880033862409267832823402037870728923272101939455306525787642496049708985578964660423603834436878670452197569914930844268968448737451188837969989790038496609051347475251479461435938194743156006810749138539990596997548875392967859073391238986440644483060528831339023189253152171748825660574806066584129390462819385470025110836418086312024004227900217411493379326063382615947245994540529713016409480879788473012992030232152693485811711964909337106500732902702612684504007257131971169151793365573206646091474286564996728370775417519884547788473921362620351642119571747153639089411231187488550835043426841705871431554527747254780655241104204672141415057707490033321587062473133182185108317826251246281391145206447769804524045773007661596573692999717030650760699609515590134050350355539349544076519003194315353175184067578534319956792469983784307632446156795388067866723768763046116694165872845065975119401399465245674614754551100568337309132983866280657722577936353067543281719040903140705994569853905437070885741506787500199570635644747625762467184334363184645384735910658923327833696878522891409066728712868463110423138457044153755007359956270652430773826491002216351027905747315315372911916083322453854317582229926989915709942253734945234646524281434291896484268843605643899139401959468635831778175144326677448508535612657136419227091180586543706931768809201342077145640699562083615224592068347319457370003117741245080402192758645391821526718281479455487037430567315606740974416486206154138212756242328008319154551575042151173224703326151514174662062964576303190349211863329736325779769068111111561360967611011612685698969006837842336547769430695020877972353891566943284273466054145891546958854779005508709555020055681076327483812188286910414831245326720475703520673235559923299599104060488664217420145261426566453679011857176531064827685343639603184501755064232228501044206024534220309520548593929156214854116543044487782136493370684248218029338117402421324962927671546360803225946324799585999590120984292176330868769053999546223860808273651867375997480091388358418468785147234731949091521984471552454529039940105213472428297652763056520941058943404437318793332923628707963557699802656706901408197515930525469455940788303135127114322393773851986898315539059286650660151772549053231451269352630922645103434677290823712743122323545591418724990190967705076691650876086002570648705507349290732297568804107562766388878954605864552540687811295325603226075646053842911361154901699142427875251374500426241456123206814747923578051890301857515857820687695458141818222633995744526556795221797819253631327484193118085654314509814450127781198321871001491626611060787997783417790008114016258849180814755738218863989557345990912562817775309321269665074485500235625635761716735907955918993473426572493033852339047781847062956763100340659767766307311934068331775849161772892759982327847430972467309269858055014956576439888514415562162749160280531014725246085366647259535924336201891313569507821966559871755311578059795126441846985739735584759536526481430737672888252700015175410475767052647845658347882519401870723620290644215044466680161864310979351685137678650291956242533160500687075646296445059318822675067427278153663764217117457657666831869692260192284751089478169161859332613291325377754512769587449999982488122209696159275116503886093593582109055364089579187663472139310084316867711063320610592943069806525070940078995060152337237792473689288534040854383332651546019921669442427004354962713063808634510808693199336452125030924225084557714074775838670315090825599388670605414362673260639817824832234794103904045883289523967979330555506409677228310272690760342783599558645335290052328629692207863399482285232078739006847759473072796060688223026240281678258758306846381054170215008501463256321336656023977237778540651777747932179523772207878294033766696401096858393273205405642264995209077527614251376167159093337722528287237569758570817893291159249626353688256523991525643817226481251386289673365256251828979710497027674102236629688043474388898698853477004821278587741685807692501618335250432232682086017459035736211025158743496897934118136987284307127717106924963491194027364767758988900018465046543311911530518135055780484410584653305397517243507600370748642833913721827754087242566530469287603141665322429116054614654860733061787382654910532567605754881238687933412014863247318556347527196766027632990796783509902367022452222542772969156092548007906475312470814922253418411363883384994876744078666973577309907198446101103252005985556810706101712961994999792112250455855182531764627669326722928706559766800013451381645429667979645245899387060412552493528630561031540463853648531245807926537518134411800378916037315959778342628813838463575605541437100074394676036740732391913732187927743398189344693326480741292192397539895687071319058325559703757378007056856934232597914272331887321459202265829457865876617695672609166123996009074126975266344567675669352802639006076981628851835660043075478536227106928128112555698448510803901097102015637361745899885610624149171427394873628903999359215130573259072156022312725046108161547518139827407286331754691069553162532780538945096525599764575867035892818017990920993949177374787819462301598906469475907347571770498979175703916909979850317350705052256625247740623048850835134280729981293132204068472666308763850490214308548979493414687094073561265503569546281712735973980383183991682443877189074549071187539410950453821163157873897250594626715074678569910634370554011770898642230714646001847653152909939992036691156964845595561719783123688404309195393466950614742189455219964912953740574713551447042461698593648459237360161468962899769319526949364078688410890267148247906205203499793609261534847407307822928261705743415183331511812578066756857040497219979044660633881128890214650765230952528550667816546137439119669906493929728616672342614193951555680291464261281065105434702042272998887400630116529715446907097697393483079440530011141294505061192386746219168502486042724714933569948358283172232657496388206262605788450953358737162842168329947001114378936156490147178130749320181886317264683608858533080502785549334178415415771525964041562610471061345042874075742528949283520654155206706552133624059214007394126018243249050278470926658511232375281263672602841008613550641936466387289537954706761747401244952908374518186112928891835892019906563041640366912192161498548915732486837781791335291857082378980725559972394758012693852207797347779803584357270257197083259382188919550906550082741552477210270211388683681472012454257218770923711242537473715071145874600179424732640688076526334891180183739647184593131285837247019454806797422281870033736859187843546038784074059199067352718465919825128621920023513111756559659127388185384873296819543877015667073328530017057122919215370725188671833556869135780397323413900692741923973683307717459997493553666962566654322809368294088124868775651102933461883955537191481880058789320360274031104036806702957740263097499669837418199660510618766810337650307773623443705454036360192924151904332796751351536839291310520588058814575236828080605760281186703701036896555383839715856714427010596988676580463668236827502070186046693138761403404431952560026401339742833124289405802226525761698468054853008430710585255006069635141155659062735018122823167811199599615273595730169132225635880884934154624825749339058482215844777484010372110215841743969437511216009084871012758792819874855159978749013381477040146683375917267475468595539871650613292820847590581260716393560488355187974549413728420480596580938354270131893960352139751568251418431796696822562467486580402950058702441263920721234861475422123826359495085778670749256700696275567184691279981053946466854905873925833095461746578647446334643533516692533918236765930641245927246524093865375835193411582687471214538422596968283196815980666791111762782987023101053095628184864314062700895226344112200916072645543059571082871731201644789807301660605894290634484235835546349007108427580934716812704326675495040680853966511331094820805842348923285630162189840229438371238147393802144953416422335007830511346118920880575766345193393825894690571231000832193583753880926304973320691217352627710818124538130444538193186119760306279673273538820662822670318233672682741876875265711224715794730995183466482556657358926412927719728707649593406464279446303758816811076633183615697810528386828236836290548748538325315503263754406820598162437824259424592913035330114578733164632872155794930074388269118659591365371029675068540809337347902284978815045373125344275353029588093137300330949697345192522503793127375039145193486693321001992045280785468539286975967666826564719492359436683790987884904198698928794918678070438690450407488680152355020312642117991463142322628668511922488591058240104393318222723987005163497063386044148908784290526787647089515050319232605980766175735710493778114500596210972413927200694654201626307616280094562503356399932221658626012029519876410872823547395772722855618088453932002121293625054219093348223285807530907399711043793422806341763748976365485466305978509610230961621632888592201410869607812170807495291859492422994308695024532393024948601975273954114719874857346124208471796801645374992914120865070491409123155807257896636734490661906962591375395424684766230302438664031945905062271048210839860311895288913339370124393958650394669227855556815468662804686042384203253432292387538470665017453398649526946341252437043844964322346874666848462623674674186366378232385413538701247474408056886360959884922435872169293912316172853564957155206008040265844380646522854104756744557494185551987264238655487907353480787093392632102130805278075590473487759820766292530033737091118865860589864413723040190661703340905588585594127112278011909726330055259833613076152991283878773227784572421661074963522076863717422051068887929728115606257633344411023677018603525571853748292499829794620375204571412094701476748931059631875182554588847283356925511071642982433058573016071079916682807655907452052189538280353317382663020220576793106823747802952792228226493684789416256951434917093747099278603199670259902685867255643532585299193952735615715036034811723906951964628362077500188282630036971466072485294472667709115921349301042536380237212011901307022115144982203825159738893258822452866929069513501300084759533967681290761086551055762710679633546062223156578908241001822661688500013212874274613706291912046957083749343904174867219317579801390950345439110453218118888331720634688835351608145330334588254113903114914109783960256697818161044563645303951193633011877301970955039206714940566333061011751003766923296998609419283082211289634665946897078946794706544190862306020896760830295677389053082617528210108643941460502267712781377703333181558644395172366179255727812552089845191026666063245548568097985578380619807633061576594259384491455574350634018604340931458506198080867309314533582695971455385161919236882916904972825967754194275472673617135053253017736411803150945622687695713875460702318014920358188831460883247353981610148644654383572663824104375988132482360635041252745450142360090807329110664683860929690358849286718144562433782539915364451884973235758353522215564121579306760384809844123551441837832049275471620331253802020861743947247402560171671280045913956565821914120117323509767353801717439788108222778593359522187753741792863075978439038086134357028824891284210842428628684879501971220016528875170568794659242813383039501196093546563363532471374975920310082858901829490225519610153534239140515928831298358185053284096562444303763638361169901746763947481083632059995129398918203686663111388452771287917101866701452538460019543288305017234671375953738464851981418047082692650587179058245636161980142580593653563837295919541679125921549745287991896288454088720745547236869332023963282210795917401013005980990377511507704505586242843418242107584285734332061171694928076816789101576196134278265361793125862002693462853939780552826533954448495421892018519641841456238226111037330837586406569150001875624670919447600978505121593150868562541620400671577265206579896578174915776679103821602327897279516462236522933591639869607729227222018725328900546505446763107650208080957385574064254358539773723783607217924614717283253605094453940945284497427648710214377005584785602527390581637085184388885917572415901548008875048693373572533509850464908745578054506237190144942593675276948772446010932760348030287298415017858218613053930305582743556477015482635378137325146926460770338474840192332686617602766458459252373912758876383072324343246947565532601378835705825279305893283055800365237384422973618735360097993093317146350831483835429307094524362869502957639092963370931315373114681216270274990301930013740859529507341886525111691060186015584622489312632514443687037091161119092387705443849792161671677109253020691261162843581168534518861653541921691716619478765242384600452937870734770111628853261763784188146095281994005413144210554509923013951628547202075059336601424081279302832249839093374487968019395201105652798930942256765781677313954780976029725089558479717775765923397864176079795330804459511802615980476608571712695266185132110468472661213242254167477470449176744271622223647066358839447410658037388395712683452203751288671930135126383562773370212068260102173247228516834081627409248695586836331206831245368956004851808894588504054637098505014481438221556779772956262406172040609941171948931997788083363771561961491237257403647551074978121305683661301847442062333426719643790675301430158908870569264306724849582595121199377902806080119594456846444009747459071258734624750372880518396668898827265868250962903263836525633083706834525993252414712136903712009200924181545180793638323603204020738778832599585284966898368816043146624341491081893126927021017498644656045244777421199619496828358056167005147244612054847002096108274948329233295436304358314761341559911701637964748894752751899509550083695601610838214317740189334300165221292241680966083693881802637794383152029599666740923015153925559726186265050259634983503152735360495889801614190242442239649494868047384069831681291946082540044630460151189620759558202320978333093554111894770938770278943600513342375002798353301874001461920232523852869102457666490250864825234738339663485604354718904803546422227428734678304561126467399545010768516481869830838753444336519598770770236945827227109148356658231389816241783850680738346802612428462252982149142520819553876137039773470191933819865011027002547309736299076483059258075691461963028374847767144435075728101781334272612981536984830842471951359702786046541267329287025518181128523671687181044486619069750253721475864443530166109156823383780874993049468737083686808810331144343466818248174236565192965103496503032356966241767200877180627556706020290498028863792860497160653524242606045555734269767585712713949573081950816659184864078736272244229343829302962020667058707610045794751480502382827765216656929129245090185155721209385416025881180014207641757476666599707407818176519295933742205683704814163276980020031086753944527577081127456547242048908814415196959226717611070739693489741603372108772433055012038550379010150001748798753896620348825600943910867120006820563118781788409379585089920027541190028745787904215276971228578389308997772749124582062208636065287933279411018760918395388349955499623102749330934749727017975593001127776860252396687156897076688498998485743797112756981795449294817946493266826687337476951503075713535854867911137405214355239125016825543776705492734613220426303954251203757562155216414945878919667532830475226245654489806670080306794066880420542139705890727116177196723855959105151177534162629608524780293205319204217592195603929408224678286021306530871972861272716134629503448271842469943490948002151429476184103596045556537841777648354080924150873284748343435521863332225565520857494752418214126639433308628573312739392235215419495282624313350035661195947593139945094869705247073725701770610618969961179506382920379803255729887817390509816488413859442829253131105185053876023296470568733650771124996314653238997735112851351115878802884729267290086379533257710603710797107844592196768290751459682957605756638689642266071663434368122005420531315507163054145365096577551666087078331545250347355801797179236853881549118653730951984077656345341176474118122370728685165903837508620619387152007811618550894300043107699299432361117778901587202032696761850553583108016424327254129273274288932908594761467108271764234602947966831085157967483201502859917379568516425441287258020405784250489764428522865498563039259083034970092004340762425977725597167157315480927423995404191579931737035455554722381013170077909546400430602492538316716995979541454138532168856123391814897786443039559092607259774720420182438441656291860458553998299713817010995837800641932651863559764183950397881830470364002174978186845380073170933343514814887453317968969242606142481659850995804541013995229017347938609298036308885890582658743696614775587132891897486046967298360471441605545298430418775478805752161551241161071732440183378659201635846849696833961671636902670949477619298461708150085824538609858882887915662083695330871151140439700022786605672210522735672207587834212029016396832998224629963889241729069479228178774007719957565263772308060267772542191052965172259203069808665202998829208776813085798299681640766172843168284777250342480762455697587898136634315428852223245329738161414873768204848309333140247696605859724210506728485924060482162322116758068777499396495932937022147208881258341792822463720519660428331351591322884285360872301628352946405417928541017371551482862372666788531386111083211998793579185329082145497537999128950981306192414077843393976997265883958090714722723595746386307134892227395035512366123999517862320574319651349762075763403979325236366721689988697210778404466138376664780449719627384402216010739489241626305171036625027985250480435427411251875669124504777340873316347893173999509773401921114528829696870386802341351923196302520298946805890128508424705212300243724049411120519398375126222083757089067615006184004779952729796777287114045577673687024154934697892318189967690727205668700717169264520492260269093547899651073171470155824179026417364641924584860594166742728845315394498336055267760988457158368890828889720474964167448238241504683023075908460759840108581816481413372203436659095497135846829233464868130040861883116734720118137074910715359604729947762019630080694291616677864142924114496048961041031821245059283173439490811664107925917660387110153106002780252189211751448249250833864675671439799055789812418954016041043037772347906118322449048089075713497320780751063184087538594538112122397328919084434827200365336699810463753922099247907725165065393795443360099469621956456668202381784201692119691202561606745155809770932020094923963271533803567909280567508810702555911480610127553715862021826415302604828849597623241365893675863704744501823020592559625807331369725743955983868116229499696463118592825762839074144607184472189438830342467954180022308404533304049215447434871107573667718399661208298428368285253516259548912111539405187791110514800837472130407017545206007308490754964496845581265375976780120788803648099629151200359912966023584033090268547982580471028901440150151287480478576524048386382790837970060495036557788931205562254857964164858413427058759181810054430504724138664568400123308367442809197126067553458228309700494645749284734879634867989438890462085313157775453563429587764029762964766064782450254635231219596313428366306553398568243960780339902044306078697578240108592091027172065957850052656630771758808520174453759538066475683889328582151817763877635795031582822051580621225866992595159169494342564053219652440224450191348356467723791025289650212479724464278392515686354914358929605355142445048112537533518183004816730015682899641660073370076957670990005550273276023841511092432457500363170770255616646821951424119935329585004040534520658088070773859048220809661770620105173894170148206071498122155843052403370916454039301491366390912727071382480611520592569902441140894559598542410059542472321513609594951445953039784290202317185696118634341208452536836261647988106537343927554184019519005026786177052838705297563263984690624975183514188117096499945387557894227513713293833074531587289733710193241344578894216230490649167100550405937897298482111968734587216066774465567426696561457698513891889599667255995553365342550700660806237486015781401751004143430667277011482689480512216129544683969096607409143988578839683490105437090895491551734364711631711036894568496759593860835624860133211703588219656376964583233072328357355621303956709058025589625130059200957440314789675921860056732475084235771692689975310280135301971762050422817386270484001459330930234058440136224570225667583452848048876819060666211854235333961080937309379278040902262255982764525545650944211002790481076530331903730408838274940405849261894323787700592377409215871693300742541414221345852547411664846349691809342253905232208589585355924807176768708002525097918093493587918844701181117862575426976374102271727980721508658041944704547465498422531401269207536857443349895706526772854955687000719135010303617006462105862202941081032617711408287671202673195127559869804978055391879182537514031213756552032300916637147759420203180147010628278380915631025605931488796410350311884065377511723371780204006871429998913189142693252202332861884448448923968602205093368787816915718258383130384952535350666557612835741044246540770512537217565013235071911983405471429630477229411962116591943661649878942177397164208854491193698503920285639180309074930083304432894871456533322859005180944298399770865138185071655976369138106970145565676916778333388718499193848984642007871002026393080829563298637825363878444264529589459120037136856634657193613746511199473218826127392255929474059705766776535259054987802334428416454537785030103215630938284448870155060489191707398842075575189333947710119944444258949609964073003406642329097389583849725557601485604393643510555020120273147519781063729320423450131665189291715287645299118521352786761666407947718933351900719586817180633345840895607910315896688569300505898469206593760837625989938652288618003384492223873391783287452294145097430806737139947105090894526694966957497403442864085737198918972477357398874463100840299915397779172032993221546209722270263461144482442910795951452288768498142684952354480423633782861583039635776583680746094190188338807849647666287756978945637269190110042504096490178407546891775312654734595899645757150821960915479232023097418973158383423357904980637477552000323645522498122242024759903638844659012197012874628073965305868299188170988912330118401242299040995296365998664569912031536637952591147333124969108911314442125076010976034093131782571569198037958272913293425773478656754202986211929778771684305576972732456238423505745851998723370215999767618802769336628280498023485174908001077561173844001673913494977565061977029171868013527503745060820133283439042580547980847679163481776632645779178622227300499817690839882517717123658731183257520680546618324725614147687167411166258206109523217441883891610299915546617129675740315817238474013393004374040340653514709957513287493836821156901911515130938083105607259656132543334048168956575529854714309977697192805233715328098689780050141278211092224093328357457341555049578821721465305501464267553899448109548328276220073228156420013224452893215672856319068860158956287197936027890215679250592553894878245511948875752012183211210513438422410432496811921707676837331245556170386684320906750778463089980535733169054698096855476259621748522985054481126570768456403222617454916158339632692146113522300981299941031875817985548753289381219543898329022806864562278537186589578758504232388848208179933595317015037238607569184797292282306967787869291046919911758187313806304538437274167532306936381442021723362203935624914780825217725115379063496685329408862492334216944212192819084955566133885876499220832224963471743783217683778268345396638407797146251110662113018524930772639922516156149362617427001246447170719691711155037227693512414953109353020192915790636989267655381801388711245203322971647450456099215031569838882619260830447579022424890001805312040856055747074752801653564406314058805563061579516792041111796306712348252122289049097394790524230290944920954252099307663066358668083409140408936728650717674967878226404745237077448654007915483919158919440602342275390228787088211457525546749928408045847525855686108491643660107518244275185019573183030634731846200363845017005411584740748239283171624865602193844800766107957986238094640019433325865634015585192780772700309365341296023706044546228201711363670899260626722612740038475555371426729933124193263659435587256885401898013109439217368240275652785759995107877645899532661107436280707447499009593149670350403701919843590314561151469413231557232020644109901230030951439573271956712418380117793891102992259068830293282872236175642223681852074886172433460501245625313288970900083221654254162517786733445654701208451966717844352731788934032060195521423833902302476212605582860678452171690845865221246824766777021733214449046615727756540404169137283984912009735396014778439740620305224077695953079969612819097707777007870252550327180684741651607666548991630901676246260695615866570335090373187580609299743486474968976334685946285175149066052616329788610670969178104258882062069504484309176791472769819541590332772411794260748965032004879462529507640964375619869362288587541058110377778151061549668251370296828243977032104020355873634470832946393502849796473608564268770022381069797482840038268236920383019903852236166955079583617559774560943644193784638072272574809606845861483685483526676500124989435528064085079506390072433877188532786651797833365401505230264427210054355658845344404205205606002018190202813657314741715929652163762110599328868377809909221645896907916056280559085874758803223329592791174408441563021467272194882616727388556191976704191988152200145360715327505200242565127689738927108603442784809221092196909872634852515962304514062537118225346928747431805492474043137703785726257893852039538082379273007798131392614891427177944566423181631251964789876519113959989272931263390932301837008774052044948277485943674354022089563806768597978763140953453856520059266491017005514203285197957232230921478774770868043649372537479510509333340751286957553541542007807325371294235563422056557091715779161665676921276244124951177784661733874319118294135208109819702873023596744191663892720041663984984756758173090605729492602959312767207857219630008459318614216208252001010553827445556978128634021840637848568931496324782119965944486527467317322249760191844493263738592890948222053597774238222427921546867495772009205197926939047079857148431912424830088227216209177792159400626184960448395443365564090754372039223398769739464924090058103790173237505760329057257704200914116717114179404239666808204760496396972928916422990477818785820122509560309444253261400222122284908057146867963768681780411567963752832960800487719727851275023148828809810129072026325537198811539057179500181172329891184451966889516820304530034065283894585154788940463587945365743088137409124830053977208907983207391998837775547675037755109961502896252315710622604047576040402867683124239167262581628428254798967163994834239170794809308825573886280187234729583391628910856121493263680808238756574204301984396338942548299687221557047327304422439240937432640739288402343723222650190601294908545848976216597242976474965464316359176633712342079127215711393231734841075831375260531050441890539460367609011806161068050609655918976957381549426446041438089388269274288613945699527430272468363853667699007927357791149630231306718621140878040078010621728395706270629842351549475091000875031427912882421936850873656339945771836747827734768068684472965774518026915889190293506315971684118348051009456995642204794720546911126222765894627300376992533187965302108429051749574348672367459140426449146496553751749310509863453272266350320956591285604636524397940962521842301892636594275384777479953425159985963830327044293673454371928765498445923286648298786243049214172785380663145230309103148093578806410764112724613410467962928633848400396202237886020224047772117504460902390963381415150329815007685327450442566015403059300857774743957227618082283769744442713904350566449577751592711696705408882681905350254045733643241715635549970947541685449213015185108684265177287727040143316001223670611024693654545188901175596167968160248012463716316641338767164948136266760002717100187514089262920803248372600172592979307022055466068594977648273672219224604522188245025791137281657654242572494499684812114819742423562584118170312345441764972443834329689966786606770232087263703671677071915576663700859941609824207963194861449892799898906696721946484354312650658288693801118313025308372114697254762882993045093003088492218335100549721631395256380312075536247467918753609730960050313904477970708426721012094279397624834342260559108212661891178868166483593864753831960406395332121119843843218525826095620453628395144365951846038809064238526487948900212026785642430823354829708552840978854045277663606159005658354905278273169135072301771737585399814674428109099652072978377600881578717138919556511771802588205397340643846329359695882606839932021124046071719604466403872992033113038348601581768470588320301931507466012705969972551502936295973769888769231407163739182615060721358676784117113417765210522407629534855004420711546386156526775590861648706786367969249796072353144591581335802009106951850453208345261035617410046454403052342887686494071361893649907325110698809416374135397992923414049869690205585007945021152280978603369919146846213084403900012352043186696984254567879983323010770273313246804232430205821029819450946303238365839342652677823898008599494164637220157152618207757397727449281855246482787123358651767451050324774392392146225948422656013861396320017980973296865856720535531712504386841773862618155878112322557379811804775112799510881632186066608791956208401860153364328302201040187024030815397048614224243842962017311021049639775903405063735566317711222792166674828829781663129594132188732155342682464321790755638619711050006673328078750755264067105977168483390150487647340470230276874641813644306042447658873595631769899486945248174105323323189236392221066943985070934960042089008432206075486138683185144387624522789574103649103133053463756286414275324293189567535322044297725588708336125560419325205683061523169652356846618971464568015352930600170149164360017998948208903383775667676986519006196639822098095935808143518197611744883207382814395779949023196675408313735130021094232339266323974642763208237049226713816608734636187698724461151179796994729361885884012448250001288012153078733689992773203301244908290682773184998505106516836922511104728620195648982963784056618463741516165064769607998024174793927022479007821286595510541672139887425676103461753879850837021767676669121431230548919563534313487466239696493970837865081046503940642897675131643337959109284903455641051976612991598390309548487742721956199037038259061834187181491066894526445038727403200344194958631767505855405896002990838816568418752652185853531105889276494915414145191145081549887405796215130369639558086593193249732045130791908766124919667255626568902832091539516798378853599362773731382440724754687235275603260141773972216560284161943109977452510253265769491122653888649949025817083592811394947346899327718826488933885267141699516657232385755777207457655519268951339218017761880097425257110697266303964303646808914699954703402229250776301081578462618470149178195361804083452005725967395126683856828255914814607780174422281473495795806649092900909452767882612688672864893787731176888996132715516382265726218843702674993638831299341140912918463570170605158027181422944861433835171062479443289223543226102528337192688082264961652098940693350531926605004450617233841284704862440729442052898881588914048781099144658572919555155050035002034114898899306398335296736220431082308164549103675308026880779580224333760533468981037322455890300329211395946748419704469920412336274370276194798578961490343450394457680026939575096361214215324057326576222503592129480081971828159427811739842280395311460616571155037898562248115950838773585413968100940074347691823098857547127326106423699076528442065012083935651920658401327376072543008259169747105406456502723852416113127288561895633889375073803585671783644995196552673286415088178536824507431701841212058290165289828788365579150492900133530375845792271791817313842221103673147085820317780977532176485238226468565628543627510606015649600458907305101273258827846009667475309273378375330693307244181634858590684747868737812208828783289025770129157326835084895133188735909465479006979675438335161245637322477357417412552933230528340143761049885523603177644669984398376895902417437146614742539778883519734375709397263936981110713812469273422889530335859228827172290349573574348850377325519708583007915568733627238857996700591443739082452122441823179856287036988012364725493834419149791051882471443042895846252415897604669220803692043039192703538984632981035809272216811523609291244241316545331275575764922071729845401158490029845359770722353648724804153679272805267391993826327555371446271598220178822913961522617749071377210594684146731951079563238080710244971390755104062536842541816787841999367441348801514387797088573722203514112632367318281347538594322620515387172537587083741982230618123476664596342140572952166641336937274910026143617762330956395168579748062090295231146142909135611117267614428346915186829062041508894122551878120798629699546666451494813691847091391258749289503634567964954661892602474646183024865197186159131537493911672772722821086932320853614325120485930770529780375057198334229582243397266972122196518543233814846329289559616012983897527023934582076321289133204005661878380207289297701677074853737816221598023607519767514224839761349204694588386112066447424712101980555629697471370032587633686654779505998484409526559433681194998112502958356897603460085876222437946167583316764268501105142838001300567282051104582556230917765717273274327201702366509182302873979748656461242607611310451168670094594260879961801658571553317824171389679571361820772233901321147483791941282590107545762686336027932318270113230861572124753012928035995824160108469446849470495272912714240313975858600226665038001879295773256387415975309810717986128356736108149206022594130580698059977296999539357777015886138352083313841194784576172137221451661276247652730903175701792490813042163322190042553253223181935837771363677142363087193966140865951400215144867602220808573178534821224509563373838847797070313779168655857489795960828979174387620355802725025217847309923477306082459474004422665079669100582473550806936508549896854388687227176529980798192815351839088098153963902566430850353934152940436641575444077908476669603875071021838844164991279267913682827179788252534426266019778565306930269379361482193589407176416820529495380942207304669546612394245841125947562864383227881419205672289327955429471563018862985000872342679138773079609724662275320486074546979990394626895448370565872772912049294024976104021011692888507856183927713505853027943905951341939958090283901980923141527486399392171770543811361776426455664714925537998599165364005449167751194543058670996742881828537966178191387222747243830003419427038055814007937465140805513970079756426218230005633692979995743915404315368747771387037490287611966127553685146379443472153301474828771341163566963705148460928158760981821145876827166052543709255896778495713682430429639672409973161179931928431858351651129979805959573645948661214572824208215003018662935717589971674818075286822836798069287149771348441535435694174136177450680127240270471542948308570795593640557418428573203340686604925489966719885926739082681819216775393021610963604774273865125434428955209845629216201196093729779531084212695154459319280483830929635208164606476002047734500660956482193696721300561392283753556706858803205434320452904888626432133300867650781109098879650691434751858775714859132872464468231668152482557782731566166745493449534489510614249766428912154495561249544914269266651767204273270111039777088169830888177065082713237242020600132592468178923122232292807907438984721746107825121018918225590205803515647321454811150787360199776553364741887141267007586870130149244864934879980618915410223610242317818838717292175315343595958806381092178768047090730072501459332456363703946245349415416673990693120078429998112032659913157448039680035600482913697548086061688378926546529644818228474123852074358820717375209489513504814717492092188435104949736275853467387801469061544214378742333546755760982651926683339010951976195080622037892581997308989352429221441766284069231376137702155270083562190671729875178589703008254261242255204428128997621717924058679577282812742625316699983922488131377486101354828791973195021773725080768207752698723303597985685858640562297039126060211610942467925349634949632119638725574977899884412048399216143680957252915590368353427490503654292451312389209540934921124176793978095231786977629364187184426445356638491148227587631379961506253885017903757334922730294046043129515636069240604271699171069709510837580600857726381122600401533743053023778443824951021255826223911663711956855839669276472777331709810583142929221285478329051412254684964769740649302865776146374438219695144686161034339331565295024164373172845668688545483265139982106378087147441306726193175450119765241337193089559211308957229893756035806212366198502307227147724238326511083403271108987405178558362974350948201709393645515826362675518583155075851370125341947204063502539226346001191218193799702322102182715020077256490182137190146734271889363068629189554643331030611738965050265575341671151272220704556894392784245624749991501614856731481708623016995866738520490944388793307495471802475962264250422266442807031793342881726159895573405658504290953396275553517464177392839296144135325799632248295078467103595271971730906255551786611379081965285359534997293443997547515360841690116430520476336823690183132337620676637796648360926332936762125686501251210413360586058855786280041049210382748809857803549133238910764275377664216046361296159255320359784706924916168200382004032940001134534890131008181241059754489895012013691643585806595544145680020966470412796246042694749202257775168310202892321723382376750411979216966893530788409865330516762979495387666048795919812191109537640084477943924318339825333527755513374559784238626358476488913763300393797667282450851482181852068299273410054224777185300877173047816675080607581362876107819495700091049618668517220173736470599791609322401096933436961328762154075868183686551762829490399207892395137223233535134967442271634440553747010244219211214506382836029992753640947786002641509064911489765288760570275816259080583932464334001823352218313897315528664562145230575308631004602344211294484798382996197931865082236227016476966015771369155959125706917989151252075466981246262051096014017799801323953791907108183823322587320572702221200929531687921709623616408627969705895296279164979927034988587614695404570669023291453678051348334609284170768249081395339885504222524727021314506859780539325384022986387445516091589600183825698596006860726742536124536835668475677123902713894197558053427872171189278061926304669304441208332486666438057773929176670346275147766192204179080767221274019517191159276567579872559442671462377278938202668825032421977137266651626594586519731249792669108067077453477011391329465369413469235977641442027305365476612425740113428141863623191696703509317121257654141845659700578626741318061572818008758894056792005546866474563067008887897998962674274491558320278008526968774475912915912224632374465686760648781446159508218820833252642170592147222891332800575451590731972458029268091773866998558438368276416659829301906698650834098339341129646890044343820029382180474839527344355312232902675179536317343644935797554604031451682073107933926725696109266175640418427776240592913405699884932149718312429862059775360984272710980260771605376347121165800231008840951022625929379301984556627395773250187640575584184953308373727296117694298723646199946312990246078676712244063047339842910889120606497593112832124914723669700025063999392342903968478104881732611162159894907688849679359970789788699987167581166428565387531930682822653311044725560693825396553856591281318762527661727871526890224755941194434308741018266149706719769923521112375508484509046195458491502740415334878895067556053840488635079375293911408892656574664399018691821098499945500948372196868800055415626449286492871909402069309717674858859839693972179383978449903808162824107977436869599333966142826904037199270043814214027904382495330872231098928675661089486509064994371999429709042190667202384840076911524169050791060597383528660092248523674803987749947859047857410715994836522405191716818601588497903653528565451803165714530262313020680339022435349988178114805124660909281811297486190501872835709655074258208386665811855756512835107345585629967516256575810978539797657768173613342316278489328918866809711804949422983653722847783564565858485821059624610249769836445631156724799553059518999542239001756105244741254432127898652014741876635376536028000488312100135535561549180743395881675627681135898111764606949745857649646057941733211330586040927197815614511217963087442822183063576484534782070613116018542763172218260671113046807440148685592039792409133715916848464521736479788456334329153899754030400825651933628218193345586395824731684695859983430381575460828992881469103808591539973811309225614330757128796538486803004745661738811298236866874234031826365877347114680473272455354513968552837491687077581825776956490297362509396987123513622367795258421298135859531386744548264175325841842266374611359094087889062146244175826266351674405368790383974162105440156190932750536716701669578425225277818897987529948965430701834270330929542201044849205108737014297600327511918946411594352505354263461202980355967590550430815722093464672974601094060874109027853116430725504722885348211571260034404208974417130633542586619569120675799198253507505354172625977655804088736556472838406812208277157562904341222445304941890155368418796362998577277021070868675284265687105209981861204045581814152675633712547735880679311221752975757512774856392404842648255667569606765860665986388129595939297806799835242087768571979668241426537332315077207271962670527657005134020049628020128145970088634685414633156752401594142756662392070805123486632850000567470518420338803474552759233819800199490231024218416461489805629657454286701642928845167223959669959308015825658255060328649663689642335361474013417005518340249959727579917593546170101283534710403046919134734319236886869514344435975137886720298659656185893341897165603861895747322994851611626648448426411367682856801609181625292614000491667057802531184061204599622658604358472399603421750953981015067968343154269188581865844258582179042484044726427266357038915816133614541022782165397529453053479113696945775476252304419591422943767894227813238180287229223372424717512983909270919359863787178988856340667449068641111929160942867659640564726673277854245671290646257247503315783845758023474719452091391696378582640816676905731463265328331149163961352708472440328176492153725782468847450369011305270985468919351090403502821476545135064179444274004277624666645665765818047197831580251599469223968329204438564369853474085131687455143530538023781132820405228867017640944150744028405296345328695147042649638775153478744744259097161919832709879443708097647345903075171947968299550841795050539822684498775611761768897061876916469651478994381972285057974756370052123508687294336911175783146155235925709622330511291836422689028429242941780249114876709103327943497376090779146438962585062665799644185010533789165021196456909562339611602209631323547641909990766583408037797873981115631908698856721586443832485408080190467683052731948780072918174762621852357252338935558363426378318038490401496860779132814643597376500205597485384772879269771671996315575941572607951621331145476298643156511459658051334594953111205897455311531286244134975683554660708646013837690978400976115655676343487810888281196531708885940868346724237257864670488160440386470151498724048735270981880937358379661977906874833822651952194481867889473593800256008415615059308992839800514472094254823546782246162963422863326661864362398550598544426334972118829457972478366105007555826172863929461813068705131967390111724932182840480933967471208586921257283660175761921665089911103835763160282080772569291645694624815989562657607614634991026222801455025575134885808089494464725246770015177888579687492424200599852391334477216132240245528816787719292911446394316599573255942826872120010020450034773665539431602894933691354721080542617450719431892102608758686299049353376074005811676901056425098402414475896745091542206357015856227228830829746454075671529778373847120426521347538222803429432271113376104185741438656388738581002957051219724541549366518010879611702699958020867175889017450144233473562443977551648012002508661707410401839497766344698886803995245793146815916725898480457501175797740881272923108375924191340241379849157429244150003190361911834764871079137296832836289157341751061062647552828222300523172171713326290647155206233828325196495400568944601519635752236792254105481188866624773145756837901344462342902462124552667231209795846911704189076045677517045390451857437268529317218367264959370807465785634023646905415554233484937195490695446241839618849414150792032003170173997785052669331198817791899641615797426896748341801163068961977897678415017476197776862107928647163397230722327923076782346647040372130861276640560597503304179423126994082477014291411179811201530189332006244832546303113048548507378792991871203836838201188669187265976157788631974464586710145482887036963894610303872899178447984750658597759171582629359901074037410355318827102675301297027453517408541343447972882645468215777911639206525572411598935517179839562383335762380005150983272754824063736314537652490081699938856406876834073511952438952999857447890711511351298984702002570082672083774724323193678900094966267517133235765361548172659964299635009650103380745226422709621770295974314498951727339863513411346889497367591755211104624556170209159880412901881972363560473343869889454002543282303373817763801987316209834284604983803034446912128297835417293286056215673561505739359821056066964073554224475829719615712986362567294331699981227001501723412499478049847786146244466741801594848366067215958850577776738714626797731104434047685990717368036630281590519066999605283606736030234281056940112538554713509870700103075513356098395074251783523122366335168103282348871810837436739380996577612254494045095309752339558546740200878098286084494836082057614187095298663062543912896036773619702081769753305438300073011456711334501147623730091389740037040158787857519839813622531183806731151304068669177642760692770034028715091229888250147651168271772443220182043975793292952133028051118721574878992030011101654097392224505764842106498829491826717742962149890349137052385205886813871459795441914560862522517318226257481686503804399264335073677694368228906830636399978943484953009674074248850665451074751420333118533901183946114139710709889095971489713897488565751330813623640352358287710081827761564537822285780296759379292587711690647036196179077163123224557376610532121274668925119945779618936132641664460805986406371696725188833546923728130993646862765851387878328270215477442698738195999100751648986698447072795146693176269862027356202469355225539048606328338475767048761421210346750622116819657890183039874503061107452401727703058562875933652241615344377192584271157796710883387100997529532965555106758031312505953929038795635770650678682228558662960676201932928610400345266526427480441013114518235747885102589843195011673322869784678382030349668519002154555113166465749392861406968573970890666663383564814167864512773625896819254462251335999040761055091174763353815131292483074905185465164233392979167156305609372109300377842806594633770626025041307097525196620353007766286137559140259206173332634537246301524260537736859124636829392369260253449714117014495346534707710864070748540854134332584148692743818453589638269925890970683435176437943448713962663283630273725093097950622517648203609343074231232855264923980835713972939110784372521786814284804401121598282988937573123174404090980571021290961791322213243553928809387476431730206847380583581222775695942785885851821662357426351548012428230259756432701205340609467618705933041386979349892592277644113398883532256472995254354436130415485753910905869492950611699091786182226483808559383472310347979719824390825346636447699906180294424050596800662723152320392539305978290959274545346218637818828852295352707792586980719014298423625248025608394306223228356284947711996162065557827411056974129383482608632426580526601375733920576744514250656822470491733105866599874728954143473050350457350964920142940550903423685002585876022271408752313576341976827497331922525917792695029143826549715125459082353764558845425513366026087310177101293192990890278944486651638317297277211256268723347151887687652596252002400353032553247403095578443462163402575008445525992832124153221407582177476845741106690451834648171888561702303820872376595288943773324335256597821657784205822684833510613746085289514950404294681898338412543280122720472403136123631902452658530017010793507347522551208182911870684203922411305318428665128239735895303663626293346008076346021480368869428674042884872907303845739340638094544805463710698431459478188478693556813831450773605524003840141755360385554775888486312079395878039874957544769373053961868742112323537030445075546675231795590241562533366906463168045921500494286558249536827728935533646300900231246277385630640021849560058792322077074507076913522873474825563210310596496812999757328678126534591588369984220814142143226283051505621583275910666933493824579675117276632535365937760440895118200334029814014447390247305915738301401360450608435773421261490449054408131795035681706091274087585923490144858914665612638000571593295790226567758920972999518620655368162409187685052236632362733196295740187220433053728837352341207135314850716793095781925593555268708956104644731646781794893887955169150047955358346854621862919024535068687084210011654832996519476536788100515601890621027710757220513172734573918014749142710743243217969864609020119504687058774439404883779084270064522434127167583299746214721520354544777764693159884098414344983997386506387877750247000615847193095862679381027495155522828675263592088493758910292333167450111990640281369464214685681321338648978114372115790511270386856192682733822730685153193970914342794181871134396928163259772541991713254463921072770147017635183696139057502817765487594165718213867559914607196043824429118845420424088426584567132468250510152810300858510975256662580954382521394514683995187259636551746018762311094534577342069814934844554436102615504463336428636005439136483964935730190564470250865750088954687280513789020314235535106816409621909698965469178605442391404556763319040093262368994647668403237733090081018416203714579788834151123166717478118065266100799537212554464166449097526836456279475500092323287863562067813488933686484675369541578030247273201076179686364127992894725436707307589752792665248364815432315336651865430456205127357080633292415278608160075668138282120703395332601369184033624225431640705900380794481333394461933213421900010006659987507591194964533876168203413417410987812615881580574690948691197048790564409068502627946304172432895125669358016070579730409029024842646738189884273215605809342957720587651436126813307124833662708856901427212611357225508892666980065110672324905767561515172297847547001042727027757899615298581667019974685766480057572319794233538249767100262445178414760731605383408783558851832629730959803968115081509943281068615293729757547823865155721745399696545907898799659432119392050749902241363419692589748530433335267856643573411723521365657700220622006089412355358809172869861699673875491112350603830132137800423637683813020557564236537814331025315259787103069458803533643169170662520125229407428327125534858749569110384110131766167229022474332742173455241067240314448413586298336141511413253036534362765146502445727061341133953513856974883857668522534852975022765661562760629857026578017864245430639557421360499745061112766263963151316061232701437041441828401225191362384194350481966508117406485367712472660966644094443346909162555885172366734958789533471296755681055837436148570416436423839387396273706181228101154866020239533678719027616902628683693013144718443441382060664310170943212493279161349812888219128301266674037246841379457012529828045138220049112009854438134831408642788819557972729235144396579066073631057702376553823875638612120118206968737407618405764670363046959781916908286027940117363985434166248378759428754038872448644532518619146636447743220731721959511401876985948166942386304495076013433398728423686476132461184778027193685597403611134847045333918708052371338199149074762408856159326751973775741221390716004824860320463123991732347414326017004219515377834187065929887431873902661980968192917566276563003662881763648863010493429805211650294746028603227680443224101964420806213298832613918211210105951310508189875339213087134914645534618644131251818098182617000588364587460709480166617214498487590573164646291904511313579222144541807220041055960778730205964367210335616879042010167872342670810091329940139256158900456328138907848763526371483654006886211444009180054006695076392725279655997472191858328440180056104113933184380087148870536496102788949816490544821425492556486243391204242235045516991427444885781426842075828772630143254934361364471124197818807905755155415271398958561835482251779287235341729268870350568179847452558745106858828136497789100092745235489963849948256953274561839100434836935334145295989282014118948251214678571693066011551946442534810620835328279689486558397098710670563707622987589156130412974219100987749253747452933672156586429318285354342285807057197135646709435733821346471471931077162223791424440192390418203486170904790146300193610257727770292415680374512035859707200566526738163219284617882361190288458425168059201080866303039792163767670166017346914346015757140988467558026288881399897822702988754974019928326073315571545325235035234072945373427687782989197657225345389382842062169405860390558284534782698544159632837815833550640450110280392820309591505326671696215304814650418726335464916097796679880885039057595626313396432081087825037721390405848591259622532860323367137629481400210918509610086076855542828598390225151660865240759512503462160924330733728789717091378217550905876888779270999973781424024742383393218347854466754540914398243668148410303059703819540786048227658423338654551242683523395937360145260231704979444819513314296742466209731626027073510187621082355717936429597233478998362362532318423805046496909388489646848952339948637162123417213590139012219039008560535637285817995010360901443229107052335366318649154703486262636110177256868446046334081450255762290377681663381829766069896062704983261504134612408592717139857714720954944656246967779647082367964714510546466187926791505513507695871590295310944685237155122332480021182960243499790929767439876318770784949297025854413565095269219641961242662771602477496898014669829584023285739375965432267093967153288123296189796659786307080056592025944056979770264705112001522892014684829659577735277201317142148718664746436250817348953132677021756666364745302605419119692778787801293704643604516393874220914881610292803276927735149764523798194108787385560765783115238813566115108610866891947329850380679658865374065197892636621945038277775569846215074425313401637869103648050869952869026581642139671670144265540906460027559280812100652859632708026451532928473258229577718390017072572390276638028177769707072954455471699824075961923008067162657467216376654995688427864575076221627441450841293284252934632401805146979725899112395854025924801577994203784404441020938344481208032793044662921120058665431763556207064017167362995972592052946493077400161786001446869683674882858641402262462359911041928761989850494074268790649809177271695030064393996440710970601463367103833522002139134183686040023794542387843124682846363250211922386736175699391103317260840006152624513609985729587338579283246623637569415519026985699268121042276858188598439121933323990812325868576952224162486217918259499894826785271553767048739136216497160823944537860577127531662319719640508953911607997017878223214366440999408313746892607672209013909720605842255059264994772250890007545217515148695187235810992762550786179129032472008818504417597913617763010853546072438632923179555178246612215951616124546722377891775578375862253462720065928458997074381287076598772023471264429999851061047201534358249411413203674159009328233606913095017061312564087531564937232072064986606829805495229541956971029585473865320873381994464835135700910368431789058320481676777443592055210031399675901459137263245385991970151594560389270707591660598298989023181633049781894045156294884018783197586230138917379153902477100940256882559258650350774945308440910923174345463835277940669360274757956053922248955666249108771857497736835123252404365222793952677406852790178056144458682412124333824044865769119706253347204967862770645826096604461676357622023254739785312902688848114743556666789598060810656799444652464400354874789018533761744882148338226447076752980101809956027234729521466612339202027522813374816707629774026909084587219264507158508743017888348437403149420936171919003247194799838760419821558866815823915863703128742961384761544616953930305354086705598613495541451858900978311482116642402066430820461242829431704999113824203157809347234986068906392476429150007939100267624789606909529791517975610017868754295849447184810119295915700191774049017714268623702478540275814143197957917149317784754509752487775216505051351089673948760400416565113639688182518197823125690262986116436800452921473653870700918616732156729746246093437219234136470355724618908143825835586996202092581656505289732904537738906996441626164844538774398322361317292591093730405079590677594174890681186203838824205453763503768595656293463598056309184031350848551146440890924243365176052953696627083000437802300430987290363202131639205245097682422750507398656469082491492528868111219923537427566822203788967490918629502837620773511971458385011444743617951275412694131934094966954124520753327807216601187923787783241787751541725482345809762306248100696251367892574821039585746391734179431323709647793638377287076835278821270472452371700684496890286305255901989628567026897556914064797548441360852208274978511409895251095136275566154103275150303613799547006266907845865521068742257744268560119630477121991172406404541133049241106089684843714404912059480956658300476877916296547696113141884787539982824352898570935406656250695736296976035423590200412245995760525459003230609220231796100434581564708998566200157006915809911527252811218541473433536562483724082167542893187987669699335282215783279956812979037272919814691257763799320461573854971447833401898990035844561593129908926184094616701107543959293826551181442588255498100811653752624323000400051075807467443841053348934730223141232903778758020324478319010617369861598077132283444119885612112859684408514650024538830837127646556642526046032359502778767948733328242204394694983827496522976046976859468798218542795768962764387572889200747037361785058357472523449295045942725387117256899235033728912131875176482880844718897239514350360979014351589177126610350446179772653268041206105748504352024907934503013007492158566341132460943335196379327586218821385869831104571120107888135829641875278930046277515298732409272345639229933146764522197279613340367206044928649678423144237244023669314709215690981303942554480661688559805414563845129736110544944826538336167952697721330272681308767735376262431559588628665530982710054708151368519633779447037389159763753828100184401863967964809508630519739717715661766816974499212864552692484179437419907513429245767618490230334841378469300900044522550858567459008613458183987061803724307407182828564621631194918683409163168005611613652887248096457640168188034368722435915556676598349505453533233084960055217183604198631786627171995958970007755882331227177141821219142516948713613552055748776082373654597154422085248739049423996797460998958500888077653234770345992797375377925659802424541310332222717345418291581752518713248241314166563298534242477527166695574669444021814808099537653297693314989665375234030183162393642402065378342737981643036823956697060222530719022871833263467566773558516231401865127182656577126412719018199051490120882305050700449048982096469395274956595056839499646048288872247439058734484522101674557468702707552672857669468920390989156379291148972704032188965572688313526168116082596099273260225727923690072560629252171094165482980448756631174081316817380798294456004720002160659491010607329358957532835793590512317412230167496998646888124075479551020919449224988344562647344023953640501627606199488850638266278471491238208478716135351676639548628868981938195152459235091390946480500580710366927388699764935564547541485128525373128364905396244881280773567312049342660027655305315551208481026738451235794001166057805083019845004306329607619099390411101582032361809106948633117051116633382469293678237182511516212220301426827448488115043917065388269446820718299897567632227687429773990389750108216021247946470267526666418600791737094266642520615305007480198360939461421963610675461638056335873992751768295595240239134195421407624447618367628052918514357995812744458520804432621276515653021088646163201834836686847563313910766240703254742472846222388944862897873753860056838082304685597659538410766141098002012371561586215108741609229824078523731450530310262494283921314529631350934224694703511049423168735033240923522133203180342984679383543526705173452294204993205681220609746906503290522527124022691962837394691219892503222271245983130638258138428257975220467367874518099547798151361536801081355703589233481671803054545636638379848663230058592701619677352302337436722443536297417173010876010701940272394513319504152296296961111580273931009270467855851012346580144780241767388642531671298291297073919871373875801872714002249521363388686298682531283775149340575565839345279646546339682250183421850039549393513697673230080108459644602264589085844588465619260862444821538444594598666326632942877969574285976981861314108776975534792314596598503299839106624011383110976031640024771802381268402383573052238247955311676496560230771816507296407598807777174791167300586435839788812588922911366374432892541625282321381378624554766099779732619357067651089596903446222978904201730278326198327931865707495050243619693598381880801041156633106619066811201868359548741191199710590542152218522678003628937775436078723220817376684695789408434292318340556984838805238941310458075154867929638042977095350996279756907811423012653326475051392801612784527114295963565467775970025678740098717295762675101875992427696562095450598235730160173596750441685952231711279978910163719390398862255798733007933510534760665095938324298420566902148607549262525463938131657131628025663011503429745270505375181340547663247243835581900272420327005498017244400936536126669705098359552704504650575512000905078396207708649475122446806687147449520599820907131967550983478397978270432450095898569237515451605064403103777617106506205678864754052837401967028352724307908968463714174265001368178761102095485593266094511747356052790184313543839818189643848394664604863567464081250090309088448296123384759489393740964579176080582497851805044326146162827714573505436478925130011263721834425482613085900918451271637374361831946196160173897605042201276211210440249987349414544296686950929459141500301819417164804799096893998577523522835219164221999844058230550830593203983624953748499020026142684739768950912006418406347709119061365095317950019335658329710598311172203127596277123877999907001527034180808486288953612263154503528452435215078179470873074351077188155173490047739330945836511897358280196069174777829676333018830146379283841087582125738543058756466432439273718083412261139010321134014884126491804767736263407168269551569297031051546195571218195665844796238021202009455775649088514749674223697809436524117368382784533228399332757047701422613888631792961593394890319674129057986273122844674056354576286705881632800207124960045753364813558033394010401658494988735632707719589191714513834363657852146737638816603556165365621874880739064420540784043010221958890438156091564950354020186207466944074439362110101424288041773083086706843497410550309439132558190638633988926193314763648454664591148102907857227190727832957223492101039773043254434519778772885968181406462368370630569605460732125436294475065929420085630779431737800217322133838938818295113961785544679281822975941132347881113503067721082074457906437222035918991589917478317509952700750987413605232732911126496134092508570944029368424221779230241855617287827279110119316985874509952204850787226056077233557283783790839137213371678564435576604954080818775343627357945061147087779168025275152092795615810404428120348993198556040698129404352729135013596949322568834261465876839985923600062314867780390892950049918620412439339612664240925891924032904501065945820822825325759994950412814202442904422838107445250232613029781044128821578207257020838848222077034067904469357111053661184750817908744344072746893503204897972392505776455546164927383983964292740675090052626981202325293473606884986727896766986593801873942794622878646498103493019092234683146366181725611145702613823600940990048662904490105385130336950863954880049334698012737542950287029051379762205730830369834697553700753120104987003382339181996555266095520570009388551028571573512470728370726549876971619288756292917684792378738271505327076976980118704818667527330860576187015664855177675400630891973044169837034690378901124011002601178126052055821766967826162555550837801196331730846403426084184696692462128360132055079652238621575846917801484411707050690788884174155309760435688041570714232583349283175934807507502080631329306491427352586818208240618734010905650148291335141429322509047997159417406927340444303285604517166970962817652889328681171220656913628938947266377406382267559387061340316341872297817359127422056692652626797206734256103395572211714989762162894352266667958417198173993027553843530132749779245932199535689985425419037412202477903292614976077823457174215469746959700828987796453418754955908849467405893391142879010939786619662483477591177757043623031428459906810670984424603690820844237507478292884609391405961751230269600745540444006284231457279153130512632358658220241699876795408630896098140975726501450717818348074983207410765336012427898445772960956111185263601575377978272846478770937693282119132650813304155203155573761587606583535783593359006597491815071657402157318333001514178580348757142403665072196263617366879508609610429848533248986435600544401006241357340140072256929775478290327143363070060787969338673044096232987648140187231813014588044523999607221660415452486755199749377706210444365507715559541423402605232529633185561085511827147312578451030536831817124132154821435915534404067111441519153163563984695758339473884027754662896968237106038161828958094437965243683321191903853098254408848032603552820743303415202429186207208116233324237536950193177546396183869214259700389516586953935195414901023205726770617416961502768864305432312439773966246623060868284057357735445969730102920018894993474693473238302978958378029741060931491313132628910777528633693477194714744146993275409097823063270753218439266285531257090884645158665530332411155869438480863413755240609861114612283082031601122787653579957439299764895948333344777042310099068789418449435326524645494442951516058605518054295187759607458403246841606713245372756049071373891513900242418068480418925680274843040161726950020939851613998060592081840516082157794824505868641308506374477686638350712302069203646987808006950795161672906380931851795630502172333334722105040379404302628206392745279421256847975795312109824554126699584111093012610457423178640115332307589001857240375726061361393643643214367501117449818057408729818272000341897250314602783381116164037031669300260516085790169641556201594148897808587207899624196460417788980080392679059582317238702713191683984313502655482723269070864579049974756081773809816648925974131706900475249953790295433988257320296332390901476789450514178086168360116443639166934425412251196324277788454073969581039550082413263047297311077511356303369360976195173492205209706421424483082166111165227222978648330982931438161122465566822160014568050121399859354995708086491885958569136627102097873467991111367347538596830019398032656320788481365013915198098747950831363508561543349874638817578015824478910717738870169420977247705849959803569705986929700793174168070390414745227997532533708855279110173340392161922664882202818986719965741657626223092976850182740075987452905193962994967603421271527135031174940778932530380018893972459068735517539903209677434866164952126831038909898535986709548450532727955591745688269959621181051552211338529236212059998413993642889278653877835323497099861101791110241699164366008855068659762684762839395696426718734795075803918039604545281169014208639145343772795585923906700632604544314032274066927514960494740338155179142851241398680429205217400146182859801729198095037257735365176800912353425256755806806998591479150694608816911532997255587794478457810849469443378157644938947505797250311154644342880836609135467453438471131146960094452590190544763069757540312725923101030148121008492735944100074097829251497807830241896178173891785563139579251545427946269904734245090918493217097965672336119585856676923754113455642454231999778172280922482188226231781899278593339151750292520175249061055914996628721413522198333462034097512858187203149396526401603287424651251502815831055415164414012828137892605199506523259577203810596150757460392158919068328345459411443917459514237757019278268190126445486234027306844944634266697080646628670946453759235037646482996707726136829603809319694355411515585056754710888949676997282551032323183206540235596529753270823821164132297179104236436317873108842599874340273684775193879526233264665660642311940427466775964197064916669615218192975721552895635572908569971848872801164293095383727598748868132005735432525763592799028562848952784220331316154040773889368995023560338641646384594160407487885598557771370618579489687246632470265678227992373805657440848542753243651488800711312295566128821529791234385052858335634131203857608816422898490121019246219583560948772925192674761430414775377669529703815555996248715259564052079887962256987275467108829318901106746818965540647208767644898811419897758788788323054444741007316566706032863515209086921815094646674670281901025043539052050205142288457176377789536751208708038110900055111956936567400580627393879717687444884429990571005620574282421124651150115394846769726932088537803831483925206074805558220421195639834000030803478694863802072980709593278779772462011093727239493043597734107558050735951483161935197913428043066220573807259012587836017730036201923311404111167957063541344376186583732283628377725332962880041275084857331649175186732560136498951167050798297570321104977664164586054928287908406700743571528756343013767424279844407813409558343132204640080535627778427003776204957613339820976329633282821469450445882588538926996924211068416646862540944495158289601084838226417730411866024168117697691776311334769118333615887480009531918735727252758769788135632092232423730107750059369688156321794618535106434396603164555855752156173159204526333811334370538726973340183243342678102410051885835231729662383161483974477105792488671952533705991390653845414611582893539075689021690313083626503849305283037771253139381370294985933644366078501915301853186900796340146705335538026155355768375531002380159698093767148090613473963001567200610665416046037004725196763651542885928288352251713922680102486362651381905434743813024864768758570254482645972456133943232983971265643546986568690826288048428981562452482915330667184678404478224763237880310385549476184622887138490441199253109935523562068975718407654978228055747045284671512218122957586423862890672647715747761419639629710066821560294841504797543160405620642148302163503199060586054954318063378426583364132938923978315402010221842253748192775892823308333802187397473802557713827354540586243733226584568164925205612531546316783315035262120648547311676732200495691585016833039158577065713035165860449514683126903918203680426723465081865820202388318997226682556884076554677332663806563573858413423386727594041981362247020701732891928681475455682659555435120976508153235562544732709546541404553637524635847279226920832929183459692842232547209369831916197932180297675400034013295181556787716223599248415610768552810908360326448666922541601470799149048243176921943495809119264575265158050827956060617599073557641329945336010198331719100111712252877909334353688156001888416259062895172021369891367674654346369079721951638717301671629864384273539222457759892150224010358497657466472191443817645860699851053645154717423436685939814385378730629531755122158224376536315105315903668487386411508472467809487879824357553281184145940733689134566114076101382514689361211095512632273932476800686096976472516310594375962781725702439117989803937601556107313819423147594774745768334683124641678826476397048389364419737983852204937673682208009957288371664595801494704468791677230725158867991893467574397650271663809220313306606040835847839910692062787772678771503862013399428704444902237776083280458161148216161344749349654832636728504555716924944418734021691352578631779759195294578029907253462479803148706108369817213004987317009190227243548564479903866205695148393851984505116343339031886516065836089783361463467544471320018839714533504939819440301991655047803091271669270540006478548299418119781287979988750724707029446889832249149580903539304211871949008653746600317667339119006404706198135276817805422253056579134887186214231273688467470062897460431748103591982876611326819271091424320951756012562630944844791568324747863698553295955382244991896077525032871807704635102711804530904301747587652437118299784163262188604922246437580672962430482734916603559973315386335835201464718739070009302577301091658123721045082245553093301574811599471304350816881616486457010968128916164689624983389609030365535145577128371899888146051773931181347284884224904377862446452541547426285470631340450468911373935440024731105139650910739941658117776620796171377090891162444987340304652123801770021970781105920761047496619545430891870528380351943031060635429104054338241728884968333593822999602609763372743196921207332266769726311415526541412480022617576537375286860069687147130127652938115752865136237908496439085342584839490938408006253289536176248698174667348015028908055073737094044237724555933109049478775428948171309435719781976885851890774877547189856469762028053858072080334729366013755908956970831186497856108274820763456200119043705580857743411082283148404361581770640505097561150667329964647218781916664518099741814826147009498169136014777049947789286689394352589897414610402304297607965886951092063286959719454945041524724253753036677118478429341030544922715089682682520429188137908856017634139550457469302432171127562356288685638252776907625648489048298170873557927776319958624717550726145525213134598942040497864804699063527522118319130138460668429156066877381975853968090575821765624050456225839006810814900538516483867388276917364256865812951305255784729372216729258248796236318162717875988250755711105817700696195969467280958133633603379669812067837922435522876196793474577664547072830498558380189659131395459395137696470202621450325750280514343156203780089170572852535918495837664515766486607181161076278790378022709996877349747973213780779609007043530234562362676141169791009971232560785574617040797092283378619202139551861079865141343265274019025361984593120412173728785189984141212566292573639000886244542196087758514365586165854203483072453032204351646794118882180167472340874049382970272888391597568438827489583720211932100394368973978763648617053571031820091496905121395875979261069834845845593085843687516605861033967270154309814994431283003663796935489501936103127363876875643535192139079170298475661567597879561848196823049103959563364783295656514945688072914197577549411031877184577490913177430286201409127684607890815193602176476510673446020749689509082119739079767288625618061391493793011570163203391723711283243724616168754062799524264092734347127775049218994900033188324877788016929819346412305661659447974993860716334864667583454613426370373522180261951309650511024121639702925267752531857000313137249585585999294499192218088633277197706785556486951763868399632560818406413615920303234267452776693680009959311259854257034496992774195989222012680532216993425520171604639097671628555180911979080152343272077214571769874552194616736172190538749283139357556558760222187406687511960450801287559494361225580228161324790513977432330819002898489007604709358710842594684585296385960066893616428594503362379716928572721263717560448390684547056608301870537340538150263423199888265275154039548094470009062347155994279031827197593683164453138173270295256974760574928890594379793673652745757048717436238422284699306522712677803237218527087618885796291778960159635249228818521610657659885894996868522503623503810777617327926015890284936997681991636169214951000726281047023820287235194067235477442267604927021822775376809786740465768747407310669177771393941101196398858920427281112431940883838689937409189056299288609635346101943660600320073843933702151554440299980772684814613603803361653814884919318969546423837107789734801747565630052415591751514884564671081010805754156984545761128330033902709642788211422575046264483071950714291888294995477845835316475718095143606121152837403586528441073847884013008155087064874548559212156905092422660357358749017617010435439225991147612820308482715262029211834075374895940568945477495250193791647419893154522049952638006609287175100470994254075944973867085151093958653500823044848764418462600174237748789128385640332516649493222762065669865930530591422332944593515442813162658687110065561019515062378121154757142812276507440944297452487845295060601606426307010868284287463367313982421116725991683724197251184543139683245779206931379372458660715500390962809982679401588415689626858941358626748593266716296154322414039389674652816153297975203963136636765050846221655948479154368190405376346804414078647749261123180357630231768105398802320080116473082713542347428048640665168329899568161284045476403828154172599269592219038016884010063775017791173147014583488033104023099955691870021487410298402291664495598009444065498128081469669554291172301762176877478563255198648101684647067653030653242795151697159649144226889100330428376150162713314122339402951081490092332904077433254826783180840039992817171269009669828763803901156665717128684255922379179468691789348210628333980422489669934400951544307065009190590618082164662641237795310603801003008354769562178511310893727991144384840378925648537387250834946962716338508337651505343684685888478650041859220874856967728690477293056661152155025796228755096478099704041723413385908315506428451667782269986003397311702017626369972780922761693306621080654729157879006815870764587930206748029269436946767010113655682758899808472463807435588395133546289580816550317757241937445194149355411911927607599690602696550148119285551780181801397315805661082456917322485509612072603198469477904853035950250519632540491931198917600508435112791719285486783638429835186635903292963015450383323990963961293494751058311496707800336347368040216445523739623185585057330964175334381550825622109328615088429737999039191786799481848298932961865239475367296169873622948820592201773645548910333938003565592759319205311243576238340590441530851931983453668360460903894762227569799340664857113349411570965835587900097128244196117047894974061273589273574546884855363285519399409994396969712878644061579911951264666244797844383317054014627906382150502504359404461014732096121028964652234960151286226155961235412214737313130495620950683898446024704472265969202519488724913551569224384837320705280712172161666550100374681654492834450807531736316276959301534764230158224783438072925724856216366120469090781610410482456103796108591001257705428192200941466190522534033018949828162139497491612765332829811963595546376873429699600613804466420291902799734662351530910611689914237105483794859343290595193647079260175529775325403949134301222157981296173536168930584888615224954779312294548888302424825523972216182936164020600657703221118131191222290946463539903046779182681169642186920373341268083858790604051814225437168727137023195806012143118757681008498324023458758386323794148448469697886048029259584603008121750745318672692702883037207746393501609407646250764490655269712301738795531439928254187547974567751902862395237695732147913617127207478735428934375000091858557209669489136441900250720487966403319432369810889697579363739501203832718832344676714806586555114552558549401579102909586849995543031169400773434146875828637955764195929908867514208659689134714032111340472792686998153934232298042358213529049230149875975663657423150854501813618922509568702566206331458402760317994342313795131245487219885167299105950490669113778546456706005976619033124743984208991678946891797616406200524634892144493954838997426325641223641325079721369430472939665354353013638846590897251195345968944065075044900013335401503569804645669536268995560318516322173827022019810376502355099239106610252861037433016345416568298904737340450728417749864893250900225707966728583608661544270154087807937130036633064331132680803517624686200190832688015339997575562815336543245359310673606018654137529663328126812600964029233382636997978668433155275614866916455563803655840315907218138847219861308056595642075106053657647453345227917125826578433535819721949734921020365473025383391618945627380154077711746423079775643578023917227204880406066467557781937978480229662198210671890415969700438956594004759630257016167266521325126827998139874029214874756584589724742729289329347306552835900288791796101350261508395991887073644375249622450709820374017738432987208221452490633130086976957902220854683332689087694238522827770637769677175578372777169232042447593438316542401521112704946442369165637849402100080611433484651027035512334759106272822559659223936018975621213608914829907387073986709056763311902805193141661004441352577754871023224510993818976383414722750723987757258768742393015220961661845657609628044605996500880109288743408944013778897184919860713906557513264154933151373360751721072167625036273573088154367707013378480687253930707998196360445228808625732163028082503563148786415779884155255298467071695287821827892426600507674712765834198114706757079393510819824788347036573921127765723771902610595275478841512682215682981618348366250230035584108750116586461227398549640015742321156663905590902732283523120543700393654099503496328219558993311250976362020205576033513790323963862939767689638291104852095314674408690522268544611119095754917874757653924203671971432025048038047642706728062021564736434182464036447975375936552800343699782475334546060259685680986042140541820344998764611550239970310892778108283579093164238782436488886863632389736785518351997731027781200080770709491371912426056059419755701252878788708514537075473573763305342678524585887060774773320565301134890054790995946692042246472084243039164514838150959125906849823197690169456222508394822078025686786549851311221242472127251845838032014100160874448325090021887230506073768619133834486093092270285446347633586908462477404926511859816917322621744912622732318928738187266400401987860317369654025394012292324545617612255850812472128270595441065115600412400830182230609456565281675971904637077225809505660826098453927427047616306702194715170265225150743332843981178268167655987450065640309627197473857676108643490123482662116865383127399456960387772644411297398635325544789878812278566700082619487361124571921598422713239912542373902873019129747421398416304086555174187112384034184816006428392081547762890033010054859473054262196670041440654695935127326145683079680607726338474465661419925383251606177872052716451598861737733989704125889188482258856125162326043116572162858286161873066458282847908360067731245998703051108581477293448792168874762554786773305944115942483727191069721206038640361879287336847674468616457047763356557126241269826805757209112139893098526416637596871646994574720445799378652848627564900675977796157902681532783404825204209119700778135370138589349894654125190110996602726813891603505787115520195750411189710163882178577463035670179254537768683289216047437527055812459005205578866485189983886288644904161532485402711464691186461115985086272133008408041663407905045110457378184304507054450973901830427487025712850256793916017120753136105963692409446015486444437384286023672329888832004941550248370756951218415230335972912574850332325684989537240342081046726493470786438743921893176103067894231778768590438852568992148983364990802609089858369486699122716129530315749681106812206379185426573464609720848426789412616944820243603497063896965927497367211222894672986580277698422290561449300901767704112173430785627859610248919381823223608721921041458690191205066141655695236402352413586556572381568068995221223779226497556553942928785824545485018452733608907997459032277639179799982012345606695406523128106255905137332962186501198182811546269490864472762285999562475156926800654346596749163233342427741145520224453509530843735462852605951735959410719071182338734253816342695208811680019215654179042695233299593336155507311959769837822148311682616797179587344984814763820524389905933799624897802427781703377395281130364321217644443384212797378186005067173840880105237888507037825787235871381651843409501023612153459750134820023544822464273712458884918742618935683698231487159359101965526486197530167570448440037583740250030113332983857286412573351866382692787951120585229665402879117635805474962110290531269740219371993968315114867535967254564087529769263224009185505907329452085906565229295438790439973076403756279189506089788667848655257142234368746294070370140647779198116090979784668125378568237338740117765321515913725249587021638151259608089838636366884855232868573313777916794902573768043501489115744740436983480824170443748611822932532097396056240656148887951021683838493748017285382509026147111771160181419672400514027888032923341552577148991824291615935211329258362012516647201217808510437834621417451947841028789034383265158497211825920494950537810234456128026581113585528405598878141143220571459645291578523461739066653633115092036539946155157721711043194224584499555904599109439819755881826106316015097709245033172789118707396430925949014692446295373923190967798473063167153972879740689379105641874295182542318059191069020759196236955649538341541781554721908450311787152846447049981393855501741877759669600157682654281634972523534717926355246067700521160582875108294352407860997754914222940499239016232976615919722217865360471173411878524673727824116893471686108491121301066248266637828531393627619550473551422338306397441462579239196246460255113316413362773214681870538722441587198194883408957841508381866627538008910172111937833876533374055685750678563534202202294581017084963975891569767625959238739876733596305626770570632473736606589490560398163818260038564731455803232809931663207552234407677798543895237222221483355371083209268108011174607914358071533022512643710828946223974665109926874482695392097544502801845126324564055383763436898554980638232555679694503663763582252625819979762166502505024396807342592377915526677137889901267652363500777188014256226255011037276030981265608704652341927512871875355782186853423068274508728563044080624094854182477801257527714254229305122322544768729449688941389184344218565156743012837208413742181253499947067672204720107316428482228689262796800034771630953393181023232838010931304690821438329481507807260729992357767642622145523398455327363843102527121426690092640131749872816566800059765198041735318260308965424703405203552449866537634065840116316352375410682739188576596696781766281470086800633415138736278216402337866274196117293273080646173934066282616108066061502623591090450958936877726468989082149153302975971356810370288414217790300723169902414140670465334819602500128485259244259695846460569524871930854045443327198998056367531075594609548118741211861238145484015339995776620949332785494982898376097756515476638105963609748721248194327878224783437835842258018520910973878742572241756671193039358877277946408236056840040565765883835017070287253528907951179594131037158065822347097376922547573456279588838504865757142263947101526041103601997776142429883067758823210567395766514471013840823198836155218915549580836534079329296343544009650369938833082014734945914656267565366812706212196419736979764070296349197720252412587266990543731275809087442779867803327894507471097353070926808790820273412952750691336071264656191850643781897679126537883759248251651735918917376026625907200201833501105708307587232468810822034733228941778341733880752421826831453026751426522581549193196595617862084425666450722586450006207045239743870036549960448348060452290102109539408597607664045385455223891607015789939140001055337865656800780787630550966257617222169345318815741448846408481330571858151210223411466895459435626267190331689430260181126171775397863745923768811877923444992167367948701448853323683558260799288466454931264337497172825772868562802305707367914072951891839434654115020829211627996712931791052872136508339994128487329175654691465522659076966131545077103112137496462411592879349540564739326055716068288667643906679843893048407985859458809920692978952715960824750309903830903332790250403870510176185772742973254427444105443399170124241661816166439975775983174214791431254847431668135271976664852416903913024811306730665036129436618204079509808706102705131895392454369338736453876686364448455086725871064572321117941562645588328607280786387683243182330821875288979258655612648867027892252296139323848043794437142315943465628280171432970107652832163928243000403702478103833208500977701139869368090206821320799025570828322109367045458668863578211080579646961212589896872605467628169625105817045897137351639331219073843115225290714643659853752901502304716595593421136462632199138930555739615594997969058010616131650601529946890755031698225183280845872662663670497360290586334068415857821365182346148798987589897337106960826232810658220899246625188918901022401615205850809798687507571272376532420375189150363588607133603347845929872999361423156267926103435240727505697585343514295354386900606217755312008465353390955055562328767892523336022407558208441769843820933196940764943228426870452976009079737165888317676145333562165735457115173941421052475521372817766444558357944440546959906634502517301724229795036691521508965364579956224007139869734624289911604374799362485553606677540701423246341534582951997835486351918821125686325024342718142477416667307647665570753371592098692792269397374984902208866589065320143950662347825594009149763401865836045034270550211993306621757778337977931558264186223004928987573300693762904664580814272452708088396982703573519827944122469713016188369219345839506928148776124080475049532825392782088897167610565828163548904002604873921780577671750186981875509841337231960478086012560915158733670195359485672164632894771330248678984257656887056688586106927969030494961513168086989062345075326345025844899990399884032246857734843932365729995763382177263380246524743403405947549853949347352934360881356292187979444749481454377425351763748279642448205163465802707108593197906074806483707833981396954392508743509305728183796949704009922120448338393174053391288829402610148995526788507532721952676967041599899463063618032078816673578726956866185803731888523531270171188599179567456552573518629005349579634103208464952485764897324428801207830699323480702786994122691894728669877775312610260194144915155226845542912092114766794717273735939842826558117965093525827223415346552370480151031456758977895260469757665834282759620672677057670835200011167610951157947923593944950279500937094599098668861894234877950314075514088795187796346905842081626889742083783116492258135758800848031611772650954326703297734194940481246181305792042773921305607785535678480926691638081561927450625481984791667113989311942043725186144745718975949800673903602940361562456785429294411267913195281559583105355590570407657383620714222860816646857310881364596900260911958071988365605471319268273587167689398721243601874580550996958499077712114470748945984552632633827758893991851323058922228931344395532609419566895821411847968803510557550969241317273857114349026121460574666225054431153236559218404038727171033147984641591454194486608323347296034359217298083537908852790123107516458959626498621377742937908319355278932428643527780751478232272356306284546947168230670706281328430588716970240918744340135086612121871275054592224103423109103409729839419090129124300838617113165553113341370031587623065531899338297538280068775802957813661969464888802031348615518601538991916286143962452838185780612318975450126821484741000155428846406223169581609404576638554542951901706793835883059923571976599929226744729777507312753953747132548709282506970142286273078078805509012213710567592109248929689741821473245563085962090890776909026855526212277056863539236398174979457640394110356809769583487363449335494639088087538550284428335971832042780196824056054860603392883047115462263775674738760807932249993981156915727828211705124391357038152438605596497912810370978802168842575471465105562154704353037326606448487876547753660415611451292862352658160459575168085782303140720494789903346331137002818989823992373254620824094133362106438889299321388898040859263759470818016062358493401269733693755431966002223054058676334438836789724409720188985775101121786961690790896168708090658898012598949155989163509088862314946820669024980323117319185269515351150389776272845386788449783520884837564810215677558611578105896191317180346177496219683925346667381725029963540242761725118486403090899918562813921823878765978553770620810885011433394636615948838827136986773273992149066522805222326114762815266479811102812387875532525287963219295405662114166932411437375527667079991670917511133524952118909892777053450467956924461065408602919881373666943440423499697752591584337775575992180548792967591642717317429977776489765604237818266069976180805723615187547269662509435602731199361268592319175530758451339033504553583528402316593961439908755326043994734171287284707165651069698098006927891735309209160158192134884997777259176166528063640272565433912651273040581260582325095314985587754052993455311199416393169122326740692678697694180004786482030207333053685912007591451517454132331721951683352054891585078567014715704072338116379922402762284019036629471391201559733111347812359621576362021807299720719767512635136004670531355252450718524649591078862603405445920017386003847030883853287573189448951324676184995131669892386216913063262080396210971294386875503569237330015975197339725503069004551372296019951041299270416134668131885755317497659098812833410718461783954079246695673637781120264661023342814287829258877028335409157244559936600764786589953041677506694744681201949630345776046471867449502073340229184641170905637398036322026155192328910979253993886795986959351416116049394436573463181118057081116146493795344530338832419536825499905300916561089192233263424287905931757070226110538438757054535522458807449126971798504320050696346716342842518178204896510964796403493466505568442715877827112783579775238267589568194297106570087995246295588606746093157088112636876654168556210193649665466122992114921965793529595762889757570068898306585895062257673813550662847013136218101937500889464369904356578632116172766074150095837042273652505129594881791999566938520457464776324397385052896645118282363838920672686451870187151945575640028329765078983235967924590796955627461792312470454175109562732644732899305976090565871263325618497031138819196901089192344321445349225543940722116832977976329139840869474427587206385030129382851422936784827130510291562273036093671644888133977155515493907475037606967899261891691354919394623993362620614534288121594986666823515963815422549195248432141902800729191154095737180872488606082022386944013829934554513633730093417670458493628691758862361290439488849011381137576185341488692637679958043717260528489694551322807634728351094054607691399221596397373328856917703617917911600262387450536491846854208980446234000288249604088671331850440941056099892911293389059556886435664944278225885263388471204843541787034079291521183587167877352497998223017947160630327442145496055296053285315727364973610974111251877830024444039860929415044010315141490629111413756266165739764191857366937897726947115840992489539091112715537588739075080410301989760623563522284481035164874918311185539881382739982097637518559440572768504271197498694850737782908796601721475692380070763978447000959004876136594476856366017722472624783703127897563245089423561258606930230896828530568045869965098989869262396001398646479800734543173809707034772006348527760541678934161153183990667148461564246408366347796957671451913555344313560807895028873527065563119393571545378042904266735194687707076606834844550359329574250671797816609374274069583664237477711764309067132771798427792510187927081387245379895823451917609324835780023065567925246348818372566257881230807625822656663357515614622689606862466255388044374508830917509332451462129214116306877032320264793475107429513584575080361256108689995442124653552083107533274535779770086114714049111749478338993752793468833137795101032173312295859411339724273734940806725667281413392201536348037970841085306983279210908905851924274964338202320326963191624823267491576109955935610122302244720010042838279786412920549274837614459808820556269813701387764958897278381082389007179680104660559765044359522503256467088573180445573900937621889291432664070849622082935588613788602596333245148861159345632687721083162906373746148075351819701590370452425222951750541012512412889493349287115218766603247179213976539292124367042033612182800004281942513609569771669389046645614828116409480748962529357023139034190599859517018703106717647372830415175483249464542500227222765885307491448931391332846436657563777721498182207557458251132028569114571548841715010896747460213046375892497613145125421401807526936010277510400441670210517624126856086844475087083083995240290961203349431758468026235476839112395928389183140677928495724430889128840147294019836210459794653038057800677409232014022940343187252174845004278268615720678448836538855710022765460715579404389988678871927449172195998130979107074890061019473631038353766401181743890091501500765556213606739287761367265126739286380434769969373078839574528770625716807961615863997003083060722757681709089074773727031806521661545582521552317078345415325213393343177376820189353468324976548570843418033928610297342344736409595941509753490328577492014276345342132707809181597905509242603974344912002801500624382610345183204661892202943423693244339001626160671481657720701600651803721070209501422910900026788189395032866212080790025095436973778884578564552086171621584396605092157154654850077073133899367822951392744071812639405106716764792726696471658220933645457006652468432370051769568145465606075115334042468507635812922059625177129698416649555902948744020733580396489588236338887168528924621341446092047066469299347358565849577733102177465609095705998318923552514276142940856432457257137292591419682808331311210847926532864837152337978011799655432852870391102218892777614436137617305234456967626058971971321354094384527014723664889281784081446952159324613668532184970101041187472708484484564462929517095701771219977776404995819142920572662332426293683665188456561303897898537614787707499987701086625998956713406050844465578785697859030626986418345772502921529413197926877593924794677502302393449261478038577695236354372053148156231064786330747902962057567178966545944523301317177592844533938150285569529929661254009918472068313474650517780122447034063611360507032964102189851844352115447963332472564573235783633124512547085849756448657117884771449811207750244910263995016400741934627914785770130716030366038552526776096392710718839800679820494843708673816675902643818806744320186781994397297445864033132487394650365712925591631047391487731017720245603101573841687271025592654612106836131017665409616677669822579960045911945934426127268178835633745370644726389272127013714637630518784698737609888082103639246897371462107760906470296748832019142713203041497938399445783726692346857640335941695505054781836759651786823153466850901933964200100044817064966601731046783301453849806866710337695765063802063023654667589410291952279146188283872008703921010885493090402792693763146691909832211443559706760233233424978051434489717328358746843150161328865034167102117580907968611148030702887660880287761536451748752896676218379781210982500947660593593070586206134384733322009105695970195697793491623247746099384810628931277341367989502496535889677404456136062093504518095207782403215991988945288202665596965348718448751254965398806718575123462128431905636168570652724712642081607013207255342790642806729913654974700288395405060923429829556953088928101715050289712468327954937055172064033123820294673873114399997410845590827195218249829064999982524648127169500502672264048219476756978607555841944848838478706916824517312534926249613453435438355273866230736207955297901822354259175928660261639513741628175907732272019425785469676676931843504912514153652982985133393154667295725508009409906125325794874774158794316101531943062930284374503555725872387875325095613135708517851669141968613308116778895047100783996821781370788894463351074660626438435301020291571646482701336885292419010040874451121169397983388897050154403304840354187025957602590862085763931255448258314914264958881219944610462933544476413904542626997632855114666651021251521378441937753543411756835835681320364949637523388281684203991874435548983228396676211210259163420848636811355294474468145520531070727358010627309219131051762052953572410174537883718646684173768647844571445984601206039111994666037269771934357279984250510113289628218096642207358539830606974648116525571558839337119295680713199224152252094862985791529108621497413386781100970659140253533081229204857971921718769908194397682632739281364592189000749533949633726069512198404931655969439233581930785377066879458917557533618580491110300381206479821411833028918691364147988646122483520461180977960532495692454793422611590770222185833534199799315887121207175045930067875330177036780099135890184950018149048619360912676485933014112515393516657059209280899153510314101745062836691777701477607383433151967792960036955861253291615729364687526581332289711684947546995875350856325163649830493950728137004454454174574044149726496786271005721290602347963506644716778119607989048965984649535735852822967179704851037730876317497724400203117867521879447172924672028709399785783382537070165473812167400475406211701653436721242599622855492338306142247941653397280289575749324845289479952446267136416678312637191358660727018976856756291662567878338956162224873246946403083637866190599991147673199019738733491067998866740780076812591475957232157341663028339140599251420145531938290031997752967751078879787757818167211574421183418508167316549697541878905010668231930633988854377567394528136375762111297727873397068813749053027183518807603303632522195012230574479027137756210663384169522786248617278052658562000385866146389898663201567568436161315535650320505861804433097656997926881914516804597051072045623886781851726492145381922024166857998979979853621207824325105311586209430044491651831401220556666081814589103174810552033301116302534547830518827776715497483087189077659685489415809520054208577441714546532244628615132323724560433876808839124544989203701287663585649714836407090250058966136962802318405347332714861785307470331971272648916086981281124659164223400406056817961332255758958932065361101143981407486949061376491037316751752659045811153274757498120571193292630535628705376607495457903164670377839751255844206475821608536194586899060513199887239485759669578627753731191953034326645609677113585098907429168775497885686418208570632934417706845033024320279877744717789573160962180967479342044823634006583885111363316555860559989222536322114574660834341805780872034211168647039471155194038574651800439698066325523521894678846176209210973760740818257390907659949395843043883350256914893035491431707262386962133378491883107714136928619417689638515459433159302238513620460018779272407007688886532748828701313676713297989188649835847753317195223514752873094478302084189508633284669671254150431806075434559794236305367544089747813647531383518508468392201801655032728212486929133800214650364191457700424821441572628958393552960292742939555786894529653415950692892427438403400250238827313147922011592484558901145176996202484388197214085440876260146720973487221410303091086032914524563620501485122453092660893778204496159774520271893331515578689587433345722553825333617766718612621911310145371768790617055076724158744840955829381016908476343740058084703149773638838786118730328266138375138724485944860187438470867231861136917648650758189446128080689325487933252674328215212196950280343133589995238618542472441797299703193523277334452603586592962093707703535529448142934191854534150455340679253790251799856936431086759962047277037720003668327417603423191116073859998715096275336083636676346419747998062414108324782473618525506839273719737717480798182172136091966270066398666056368930821896622510337455307457269054166082442376321335734108939634430071072313938508783141366554481027578257785412103485131073047257264154692574082300102185512680761472804883438895454813061547406769795343590576749674239548309302792726865096212305235031235266429172709380243535654027472741581580610912267391461423107818963542661618193469891168604724213524865746068468303994340776219621862346905722247997034711852808933476858940078278978830407102839536014250747873821731317941911000934174108854165100589378980895435306970133167700021205857916118458867528258797435804521284314061489847279669574960322564608762971868409212773407256810586728330685664496676638781180022828744879042328861069448074584968633638520143927246242903770471880794749045297797798210903951296519332450974299269699286369342816237109134093169013386273620928016865980466327017424213390470930002699870091249164120512644629340259688979612383056825436685318424307573221807626574530924855657112848484423267955004607081460209119109282210717578607501898405536284966594793764826847318668650138445655187996976702030703037873237356463337339219793740993437062166521489302373393443855815823803020666887647409721058957409661743400836437820377538147959379564718968431194520361308227714301922413893712299385987009922519176040011542528762559121387788031241524218043034922086835693515713503233234536589559492534782649305298327480952788183592333832995053390792064137475018843592930089038869215168950891760377312155067050480963702933319826118030353491265111983459913233197722395566462723576293962330979220447058470806023224559724579581855925524645365375165746242440893527932754169415232924182191672334217098887591613684731210225801709408388833109977379902823734845255072733783211922121874825000347658209891965190385015111826379394392181053587540331106902401551137758923855482471498295380168812761748192227254352518707274178777303461602908227821294225783498372812119538727686156392469447647913514643822773338784436285741111187517330594305994244608125439469578561099562415150376144627952282942324078011997969486331605753863630493434834577709961690029852581446477510627310289123855695370705260830772518254616228176100788578198162406212451953096358713704145421033820717536750280924467138757334493700921741950249939290092478614827544051138593822787577640298800772183934468716432484513167476296257490123856698072668536028654408065620204948540291612359412311031622010056918213268001058190972819680512985294546330426172565135912615852811154604381138226210905207106640200937413617651555784695645341720531590346670521997432170481896427625325961065184125041687454566662568382999849669482697114210517481215969979555397186840243859492315689307274578747536576640739500551410018374159112322686315039803256751009842233856467500599365339913450362174778317818564266262542303272136232676199148595251497797348700503156001413956033642249454226157453704739726196156604040320872766129402898069921443178814813361737887624866990662735796528653451655783988087346740476655974968563932622082008634405380402297534308977434829084241368224202485736664565718333474268486217690218076873798080176903380799485900876816098234433095284325487250332793403328804108215230729649415271136615191841875026987703966136750701057170684509813578267169518075593370024795719615607278495121559143650204832929318109359531392885341248615721209611218569078738708094286995278486811428750551473641791938617240322349577879036365387166583639006820792925568452639166647176893957154589647147482121898758815729848516504739705996708524728376987339668293742467935111614180722148106762781844700302232848391466918740347685251584736956253483043165125246004644248187520014084021855176743193295174637442209962830194121330333923808202355307162527576785469074514781431698960944272717774588669810202210686738715631011180208092574030228924576553430813582508536902134906193851629416967698458894138735719387886356734666485367304666541062677145688305272273697911672357427823371897011935456625528250319567444052505551406884157695605362131616662216102131916485887036262595078234015500762885848893229721883191070056673706875562754284426829847388973388395643448503268943666013507617725053558360850664709452208049261889774940138420632542006831639297859090383927106907003843314771641700029607868240711738590306858698455095392350212020948054569033904517032849387438797518361243177107760963438507722914196679273494888147328249871675710997149121185114071440053623351003268788903179766192900226100765743800598163146751761158791297895018887692963260926743860671850928002941322844278286431315591393856985575966209736212089920377533971499656592001619951654635885113691944628320021539192980858278927819331481354682072185460663997436504954976430523117199771479665205047055871465297869376045018795976101124349947879065443734640911686372977442948016679713673603838437051305741254103943075611854363570928362387093682786991777192080432339699378856562948499096644579254068677322503749032533402953786423001807552266917356427536466152028511920782582059334867423710565822684358455972253585394339815292822661861691419150911517317509535742165278259436809724926004572003504253661072422140000743239685408969407431567462394208038130609186092996450972397937399718848200273770205372473734721006036533316954243282159151656348311626676734327068031608353466269198901179856403668449692744581135810695151020406870871351246150306105293694160020811954882194830202530271165877048940673918475042696662032583534333930173707972137259094101313167245575538729526443892634437461541156892585930350885441826056232322697945563501583086631509093733621881038522330912171791276327212022637014399707848861856977211083925258334468292395177915770265955891478832535287131798019224346307172865817961411778374927415720509042161784505898197589842362151002661633750183847608983142169615021673578775670265050999837762809900322141893155200145388590264448130579899742618475941332590641100914880167322973696214654867634332510138994518026830860963862348611705046159485468161035974779353919079665116565421040015842559754710116419550088874715862527132485355614426901517909083173210846829347600784688750833035283146161890695470133984937524335508203034203389061783607534566192008843934661451555681309007256965662678933310072020208875936275438824340779418163386068535616338117947880230720193481709417679728552774055803567986914939861485908051741822659204538476535577302520684819477852579395628167341637153614598882488637945337108521801915856112995804323967562679045199376512282913342561194168291693300743962343027072106850445162673665590284826614344933419023326436239746778954767382925366937305629837144021534713515230873431480432523301356873506767568316160408078723858082020429813531530882555108397231565187881030767578932358553753511374981276381204804003739857503084324607018167193577482837313407695187317910195675048407787208248048417953179355347080875491263606479171738549161419397623269755976003765370072116406440279879701372278762647975313432991606660718550206214083015853700339879726652685753307278845072822843471272210388737867051222657384993215012983337606401363427371005579916275353098128699171907808146816884878032187544363119337777153361174429119875401696169191410679201368319833493235431713273729058759597599752657202626768002305866090016590804910704817203218507534668525692802892509522930463454832770401212656327579437006096194584596168405877039757446738782909952891917672964510913800246087695604085707528240760567397323571811219490353132094614009678148616706550792179255568158877769038467835891413645350324971107630430575661806036161599897090970606708184500975678204209882309988686477633508999172820142421187057016283724162742449020693738860574328127102293556214297565919744979438855454090881778396187878785026620210795810220368155134435346270893993949111397152405496664623294795829677873355385619583751417780667360406312334120481205868987610967285621872485879520340939218466712662026724347758309015303072969040421341900135003182424991460611348209666351247210202792791635749117809026039181242568596368678819356168094753203101750690376302082578116206328783454833835811682167014825944969550452969966435069422339672906188453582032062944657695875309652980191499680680797664225062755958287888548538815476395278082539487742742979322305248123323585142736219183039332201027152464611448270064777791209745302250612040497176093933763453846863910696197261269308126096710123134450674920499088068143873428215114067431042743521030271658520385897204238193734425626374874071939918500812682221307126637625489134007649956830793706403717145443418301432366394029786859669069703843465022380003346624816779574053313636177628393527606602195896748695663031676425449195335142910069541838524048010949580197082485480830292688929524105570006710207655620142967226790442708278185782022533492514959753907562021287297051041327592182409504157514724338415371915561435239732232937664740437986121709915517510548987061242929723480788955705231607878769087900719904328180272688731694621142697658126096548337713997014276636620579293295062270286942924763741153670311671669496401847712505794924467191285622964576161892910583285660055134213355888108832056450485581732661408787631064580134236965239757578687061150863528455687553546735680416150149859607395618867503569580558137608030739844753680978682855925648450784784684559508802224149205352919955447022203823793932166262989936505356380121425617326155482750364380630043400021805425712269299607923068203857415705950410630846599404766538931681934647199559193823183488920474748927512483814115497777441425389701491810095128984922357715663661753860503059527068428207178711282170115385755907014759157427422148381723451681611519383664822412763767783459301631359952170987154560978503737171303508854033093966280276063215723056020843939465745837020997681352370814392262783262855356607264713269055679162560405657645276897066008334442294277545576788006155953950473773522708817966037881883995976312756084464683517904899236330914945501844888838196627711263649710962456903464707493913554426468491143849647399541252450469617933624376433086109773674985986073056970817683638796109022070433141877628971232033271166977430816162559362289353684132987435199890244625011418002907375840882796730817946744764244221496950767011929866886410376998195301211751349368215306874466689388185395851707151092203675164957703660202794733912174271432366772127956091525764628706551341867092565125135266753704342158976837199648727907988937076184799366633039208031749087983062483135856283288732043308170262684314766989465585680141125742566002781450714515966261372787259103603606628322657183590741394068593259406809397553601351105022551883484024635813259283007494136024960516288413459075810881076939826081772207983709892459538515692154272043438821531213319307175619264318085814514544274399909187379709811321701811517335250882370392420456547788474518931907328714642034982706246158382453451262109192404809452517611137754464291099087065336464581314846881167743272639540897964952645153045501145424567459522649417147050366523656961333094566629237550792759156184445506484107192693634029289890351563137244242098442562269271891949713904253368561460433890395920668388281716701095225774270729527349967961858068744833350319102946073799009427213322427014503713989878282373403895231521097610059336866095902841722329724285646028920329808276829278832993508990399194280667619891889074930760411625156026512253983325614635718419441509247255260856655275048181816093293143068642464549287255631439031133186003030970623130094296932091304727688347639017153558405256166624243036813951484915796828910115814227053814860957021909765348690891203732903215851791864459685952006160776208679755947416793223106097711987925142349994690444737766654091612943569748021607432454886813835720374931550519954081989986537823101067497567620107339409000680185712789535049510612911749490274748350241540623801516755230046905167768968095364644605299349450226512014503536758943726722506919241920883257532500966605119049815924266910716254248679768516414115221663001621946994276618277784833185326395389736779893080654393806938881073686056329108847949303289701420267761310936845610626504447810143003603584277040571773784250435369814212551674640727408224963929068376137210279107542648612482865170920554917491274551675177628361540155092612355737244605288329966961702284639880287614181738452908453239454882973640698081265961494278327590426124742743394088353909839810222925287238531581639740274451142362058116934766116176753801421730219891300981096751620695370515055737254956759292479438172770577394514872802688364128982071153350176311951238560596606609640517080928563303482416189529072469111037967135519241775930801678720213280755653546041971794624153837805043769192619336381158379439505981937982966623192727862592436479599344359218316004050197997850241259507361559028924966759499291900452727874516309912782899549152695599630482306129030020789409491608782177645625408822661628153420042720825617053654519557686043172415712265524962154661781177579633568229928485555801546623496246200160093885214473337294765506215311079412687873041912328878598678114576649220525478512811674138173749054823406579840642656127921560469528659522542182653940489619886597872325701235041869493785293545378732298965654686509067510135999456405749224522758477533137426884263561544543736312838162369259568121566698131364800523201117915465522933147509429223369400288370969989653083799175056305283348954902926685915340337205809238664862905937807285886053546822790715202633709893916232481400679370751942393588860343898879292147935478891892528827516296094666843572787184276212388221678172559637923603552830353693220637601853465772806273599246056180201144189328069980761610460038982859122522432778301678959039406690501533107295380656112510783261780294284149956150836006478566284107233537390751887451414512940662070033673775780502998439161678330545448109918386768569042283511230142042085658975442515460634318027282234317772444025623832271817819071079929472152960781610825660816112208142770479276393099416969131867601767972557510118880915320874775177771363401762092182213154009896973340896529999587683776798075566223533867759078442473468815690650453633720206725733466152787219543604510413089078942615357325838968150565827973794477281959563940244308865563169707867470425007954974406362123222215450209741612431857720081250851766458569364467401103842935610937731871775212549218273684312578414396839593759613135138875304748793554350370654305298029755943459769926427018976076396652183986913690869822445447037875210256653126083636248656608720948036045472042179358513922619320496060040442030387280667357684555719691455584430822016815184633850336490955403084664823518512212827693618616377154799565561902631328659350746084735819620874987302300191709595934418836783701955190894725145478521749960801282363863151636489420002787331038322610658130207411265618029082797322394070324795960827627874948062859679057135103176754096589323574469005440626324529523459998135560169092380211924908252470419002787384931176245730991181854924712191772224419648693655266200652398166148395356336113128589486313941428837638600776887488823053237296141846976535346256606800180143873515671293395538100450645195442006544729532559069123323159701241108109197832985742649016510399505626679520114056911121873591681182701015108269694502232942448056590517205345886588578635603509377695510244358897441297269436266230866610224202930255879939936361848391574287629212830835430260109357308555272399037237813478317263937770775212327139546535756007313178776499110551158983664657979338373579309718369020869626255598726839739062926228098346946384280092512615826445104253523092005303578244355654463421555257896801690689103585030653445594948747277331028507217640134194524206005720726147108868821252780801687194781214871599409798540052052001018521017048192794280403875332075131280351459820564925858715519694788952339592189154268358438675245616357513861515393530763833477492259666436205915881761842279364010466135034102328240438890012604164281477717424472088735205189620328379107429791982903245820099635927721993076030969547041577221529446055359029161495035450645479602547048995651280102283623273862304278981068463577884705426669367171144219493242062095805741597841946008926099798201334184973301002814615309379016612703008708888979229320022475806689588691106417766772607254072248736168672206031212063202036594052962170020728605362129543659192874276368028425541875176861285138371768604405818765901109561314863489915220013507409552276231019936283328669139898649470363510164654130591076104324298991390105645288437749134181281729223484821359254901067017023134229404941116926637778245293510819847781466025841685579709797006896620641599828042451775148362511182859483429540611647886554463343014687199966284172979351191039915057640991429487593227340621324202414741515428923083390372536718800875149723130723591472249054395724243280785312925814663103830223655286407051488951002043112860260453177679763186084280361969922212676837021691951996982336876417127440666831660469209406437041830612061231716931730950991325583812200621622015212781113425283052226488143830574884941304252410086737262920720904984113245718491360246641758195129156498643321550281937416298207564434093863307824906897461010291503995569299746380153739373739579166066721285769928818835758522899550009090812600294624037332461952579825359723322127563129941185590994977861484044691626697552099017731581105154775486492308899886736820333006713220156048073749442490848259440330731491494284334201301564895183338083301563501664211408569824021614383312530686623421586344492939342134527793062776618625750507427352737084460894696669075883224496450725067673733445120394779249014570768091566837985091445265524142246620387722222044445759573364709274094516452629634540575433867111015774686871861901310155719684890313880030563955691117217554926737130014780157203029858196763320277149633885695557501921181638520583927512343045053891506601456707142367265472451825061783335510963681738587615821610385142975614984633826217508595332489117945926249477712073889861502692036447944014424850832024502839245243992025609048194022953763110349468431741299238593368913304673041525755367074008195281247478796129725410079167450094262167142550091687734251518983872294463581808897863242115765756527611780235607916770875829363996163958200119497191704186194323526188594214036124439353350116421101331837016257230839479058539131194732636210368080275985388705125351430564196260169343495358095712437458640498240577802559300259605791988821205653370874171388457017352466303891054491824234807203063491446467464230105706681673127127857070151620090959219150357444169985810198103308281782665123722031753833212993324262339914486113392447304781210007226883382011689053067487050832993133004251138801366798476294677376920386712670109745482347422208540217181547771300865817083229832257982600736566677762550207406416130544972632555427377123103720961791705585374508692872711969879979578106661891827769226844416181478526348603614338746953361801225319473091204149188183321222531256752019322770149961775590679129682719377736285125313629126526277778337478641701512560362430027517597457417619148464527209091414114481892795420274264498831054234551981107224253749013963933144102022269514510259018151564586992310639192419209115838696576782066009814498648923193145446459140970214802997111432484815662880456498665679553961846004301491237507766030419423027546022980774934922767090909349061439220658288956019612066129074343375181502550458676339958027577610273450147709256146204420054531268786385034466630380663336758039399928497496742909577289076879164977285725898773155276899556921706091401788203849431316299839126935940446160372518896269650847641622887960672844427086471647969782912564542542073878774163842309937410390509962940372627346702214748446268257517104390488201587057071402796585656674946953358533032391113465497291226830747852812333231566931001848843975150115047454745572966476332286077458361457807969901155339618651496301989734942977101837186105611788887543578691197125520006821395474029243620586525398198449385722736632841654204383827577180017723038461664593801755923168233127002649542814965741064868603564962239209224007039478619447090635769289793497915998157725812155075077154027433716044388968405536748860766993120136922631480898509254316194269945126730607273463080437175058932211977166783650983393210489313983507570206762162395102178568386297840960243616254099057436569220207433491630614426051304702280019471968249139133669388781208009687119802556204322460943063018004694350585244926651749260018985096433246504906710072308121416535319406502060391420336680375482741082336481134489710048449024650634734587802608548021320064021930343608737049339480433530749821152718222155671949325100767772691713820408029394067114772935410316410898202024064426733768847065402344307671964372002619301624936147844596770066273957183964712859504703587563004500151619645393564345146114523624448080232988896750462149050132940720996314369545705422659044245289639577382846581126389778678286696450438678324384990436203602583023374028648087008280949818746195020711041395327099936839284024371730963818409572995653935301419765818123598896632553594724066835445005336840351656695945263375902557177902700353560263836578858281607220135716344711839048122500558751272778750818358389639127353366892471922572050008502641887011555519768625604834407684621494510011699293625890931569704131109818348225677065670779985993959876761501496339102023667893894906907810428257195661862124996080653261257678601570761632812500137194896438762442782560501824565590415086512092468369415501199531684783722779137101634001581997708636614621742118520432435968602567482982217321705929572742737348776911660755550013190738907934347157765553448153977004296794023762558138727162894437347610206999274202955375606288922556025541941335831778165582256761976047195985724198533205919630304533978475579158249165530895328954316657190042587263841548542774177092163936084975203484344816159812743476287371140013705673907217783231690396182814851529796288616809132556369403781324984466353166122421789081441289349712242726747842420925485677366811501842813211800562912143112015473414426756839739086863669376537521093337210399218371042845802340174548316138084751574224906344412971003259859422874926734394499505015808564809884687002229093292793985274928214870262717540036424336479401254695835287642630582375474020178913958159959397739965300418713634386374114311964720990196505533745869671166287823388691183564209168332974781532807779593052290495439770956007345699908019660149720836422955431317099381540196122317539582692235777674517370524097248855519157570391186365161342388978487586155045457395825420227710559070866305792896659180710396690933661946668734401147954227354991137475252839388937777005273171220114686887537653015957999732638997728659223999138577395245740930571312978525839492958610409229065455839992598162434924306121517127716664568338165705997328828612357390649563710106196950091092892443301836962909309776968703982169355404699857096258088432183364508347043793915156472016707858304268758555316216401368006325488220406111999812086233000219865343581436781715502697858069435903992056109047915105698914982001108838035680482308675971627114354184129713056364535772512173019357464770888338576430231058445613838378564614736207705489563774780209755447844526622664467055982266085724115020699572105592253426422826289828661712043904145128262349856536547552185968231630517526901632006826432189523226727544385027587660590235574959575490141269236294652367019381397008022053034188125926053655840764623814434963664661657181989828871722214958197484194348388520414440404013014780980978242687047677758186395338525061457560608058227501104125145405697239752739667927516696585571515823914115322191960931714110795736849126506072047864561218823781450590009081527149211378885103999028709769567715113260753640556000946306724812690366781768424045964600154085167352752049501544493241051183128322308481544177560713753833923852539883686861458982633351463475604256153160542521282504279592642045658148797324629278875457974578911857533710470452816863174009094355604115163363953248799347067517392351722675305439354492734917331765247377615465889633167001857472841869448742644444847186198384948669223424685324495108508837515155577328311047279143638456696628619652601692546300082754546870694052503827495409047850958301322174832786300726456477478770957614269801733015595266312316585371165559855918417049993253408252232592398736118223843010259360680365957946462682302639286033287435708454320376045319574996675127732187129578074619659105700543779434622124415381349203839818811075265310421784711320259632488402810278681052444870254796758900223853660565800775484297408927191404939235298215914343638122904431513417278810800550988755494994125831639473928174321036237641501465169973604144199588240741433701456980562791493980263254127107845428971400162921464845903228709280456460294198500112315935132013106722016271512592604357974842598314704062536520214278327662348168641970901457640179544188053195302518392778264459016246672818635996306493823217320417738156388398034622886347257907203445417595907193366826939654630304316921362035605618943519716762674449347114994145314287420384858094035112040986845925003654388771057089639432398793132654356770218189393015324587382628115479389128632290620190636490334024001913788234368718204988997462527381349905049391191825775088095904169235374801993385367184565701397734321418161801978752075771006957668487071961434025635511342195591783277633255716625142226602003192609357414769722328066681181579790333927589874934508969135675901427106921173456887275980201863486979461486094470613904710468773309335682994715266645463021979337650643443784874798724169385302512919371314804885944254827314972130557681227637549602871657487370413329075172538675383551187136549322434104725344426847194220979056033211985707672460207925351516869428072419622985746364751772860022085182117217232559646132187478117198213538338313672063482566704959287888183537968003619061905689689910729073998822101271435748285071000298163915304964379558512473255903402222766025867039378497204523597588083549507660216042203373854911483167196441572069178949098014436321671596289503785232999226354173423876489087614631091594947470615927580273199718403534187301456866314429956673397787324703785623920102296902579752560882989734150637555659534195163717608402820572685743747858592747667583991377870455445989025999721497385277025213682928530061436682367532941526923040123304977122587218784601696831585295243175906898511735629791139061974922529162474969600444263913874429032872937794588676641133158421312992582323591271484259075450778876997948385679641260683696500011340756139393966160591155429553341874011099024875527685624269118712023662733891918404702440297777022939104004046108600766567122917620080386020594480200974418873747490896847508931035781554668276805962776629310371396138095324104040097830039433935349262684200081991595509429303291991635916778797472239253691650506275076908196664968466742987721200755942534619944816375362639012391111794616917358338744761901740095462406671395966084151676190659168846825562706945807258396376424853805863514381029930568455674770236792335244837995644198643527268194568486581547141419145049829499222458974327670525310909697432014825272985431982122384663071098922352831813900693181989193909933076838319132359194094212729110040403875591820665077774932711892618467024258569184237175280209094618913376939249761293788775274751722210267519554350567387620495693919293696960057113989653613932715669103815011339597039805394237435591442901905703002612559789040823325937740896318586286586325379627996845076460476754325068881443383661841227224009107018709766724370898954792183337846207212274978964858064921405861371919989865228761791988526201750095828546197540626908441259237598478685121316677448933170281482264237735770766666176596204268747618684376653650450170121598426294639073901825034353315392941200391471619385135518052147253833081579665115603178233798316676283113497346618356920199953936898581503374062361501471239579789722227959625653951066029580345972335892929009857281460847034645556118093411300808723429927305198622382432088464320380570148289689645043882737556370313010679855869467968266648421157971367546115636799952161259382554332919674732010972052732963228624277384212157435851930897447692758206945838541345037727278740944827526521948744341990663938482515916699443453519862675862722741908523528736859657824676889260776696682853892768695355596449861108925225854139354236443357917007907302055168233164860133557182524817691090632669207164972250689957021759391685989947888896100625705328269951308082911310511015608997526457288774532629934965865807484705837215928394060740835496279280561606355959523901924645551234378297524877953348745156387100870649673459000342412882865033022681928349702390630023127114674673938510147955366674970722458944090196615268749070934705439430417987078786614376056332830704988669695987601115332977374794293963965264699471940203557665616897944988040560872429099003185779348012307974480305694289425232196116001930193452945251257049742084278359787378766437211567579617714352644127253414674072557796909688514987348322309028425260556577085701004464303642079960684194855931483406854301103028212858877163443248129957299660468452517268153715214735463286850965874951066098459467316701930829999855614027118560214245870468368478709792178677576144333602510000171302704474792130863582648811913013771553493422225408480637097971602757157116183954270540266926659438147728929440395599161714549015103428728702847947579609227118008141854157418095860439480692985480007905435223206235283656128477496297949870532690883150876780522315849271082684419308267640602125550270683500586458668173849467736262770630779818055679848293470181553716201547171498503220823321701988411464145206787995602644071040907440883618502156966717779314147944633848311505577199148945461731249081125186278427611532200225889068251701110077488974959574880147396951972595461930148364654101960643285973885730667363724070522801990330230853270650887486097442301024656343455380554864384192704204320224069694259943322058823545185141405074934714114730919469403430585757660392583104973336742983651035766877880236188127966967949525741811579899730869365624416686065185652847245974202819166806904612488289283801490584597308016843831806953413078091716327872323228746899265171898764241970049188100715521774574987115531015974845431139108945066872769538031581358677754881926347599570000240954452088163053397492568155292515575552947366576901696935733835047330475514443586574487643016288471455391408364238320713468855567188701618606874054339132674176455612974598022795604439115693459942916132952836036278708315095719345032993721905746322231708486441748412580932680328468508166255256552776718209162760789396806777053775603230658418481683189595200115730152191993387770367649348464332390356328675638503291581232976052122535416444687902408109539305600114921300064867506624867950448058704802127729329118240405939295550006385580212584835263956676948550072109195697094986328207457513377896238742220249101191428241670239144519933651476440799437788245449477776282338086303753171166646721060258385807884788494350925685483998471566002750435550281728621261916791870061692760172647111252023651700771642884215237324874477019309455008120904785041136501119499491314356587765345671262742652681817122466413935202945535379976312972594900632647405160620436379367502323474380962316929786485062721167541540048159472046782200267230760567939471514037999478015706270625406607336718839538001918915317920760425432468731637585453567081661909674367722681227208228028019655168141095708523776209025176868337524313752299057325776501226325776931507352712761612412763926538306015269946883210016745329053190688646642695611155767928264108330682585700429866030126344351913667267381337009841270027465700829551503344054231968141750558963116209163752346952442569696571002090336022405434124204924346224840425214512141318483913464232416598571149200624450890316197622519311999530973070634777670594549496237505844788310963085633618542449740075296620760361865390192294044995361329692680370057349493361878659802735292834135607268619849542465297402080862984967160075885835634896446612794572303985338695808813391003641934335146507201859594812997392974394346210715089990562340849583161760300975187694393377463577099457719229772199013148491761713092968268508181721877679712281393128439623899746527257748572852173055326798102465192590056318464520198806404105268569436827117514734748707415317324194376266078742011763128428249218021163103167792485177666305343239612167242495352284359300323150821234400371319863255853956335396233737949123707024489187900708212364783278931656328651263468808957502897145993659310326875088616145060824188262207728044549122549351938379376722947291049438957276308957829399498681713390130869573302497520837514309034753683905753649775074255414814036098817381825704756435918280726173520052243283475698915393869252916843588658613926207659672100432374664830222317416903069584711609537014939861934546753296176946370162163794290045891483813514994007631127084525230890068553691256171074713626290408186143459730939779929447118892594701339103000753202668364408397107217750326797142582576008818170111515072817618696620058892526564592272035135242192212672195500047323153449708800363468407496495943305081917550347679542284405559949592961154874567259099403915584124814547007819560958104880683013418635373497803454028316065433274929666173798593979102200706094645133529239215822545573465071031409290218690752141840705345157773124394251058343681069043710099501603622636532827885648173522008453081111958855252379216339496563383671715565570365305202544390416953335934850241833341741788507283219738454417572580640394061964252576789914701585115193637969957425601528613229511249466316407980577485686329756014997959677846147619830553890311923687457886952765493925233815788293601261178620806328360396265235349365413968816685489820337441258804884411104987405098412167091319985395484582392826010051679891592612598893532444896974593850266762684129252749157820015996748731201795203874901596561478359858119345476277744049581042189022306719891694014982119494111889373199946932846961918270389665022415785492364198902388545215332996198778405695504709582259840643477248481848364498980002909811177830809297930015938577010242461346583940469050933197174529608241834910330270906039702702954240501549254455656216152893981987181915125297965554250565119089325802107728885752497072119452907553646781518076869204203970265166935015149585772768790646991714618008461301294385200278076723175829651339904548101565184382705615568198786389713072592866521925803432956973958951760231722754838060261800811871707024660355162249451249586494999411570250965376667397430544083148059580368754955826994214481842767325923375424033571935467074455853976392778426864303031141565047809626027947006195608502055788239443080748929058859323913280940351785350985824080675876627408183235873552562902820278371175269213082356609028740475985895527868390608802186463988829786182110344673404834466612180504351728462910474236855180107098429492556446116935115621200672686214877554937020823536899043969831451561389634749787138912225838643581129483043725749894813949299523238410365686100439272130767165058831944012111688420354608497942971941087312731462307615638253484329347097923725234364931146489310161633875349941642390765512877950050232525875081530330740400661043855014164881058028404998757213310852597430128296916171111215151097907019878667618657859863881448096889579407921094753779476181414839132481800121175287174106480369554567268027890956140585768026523007294227346474783083180840351762155364540754551677791127602627999697538016152793651087251037456191913120412027061032620707109728337023176460949885367955092229752624635449180201034472598431042201853033223367853383028455688309603130774936890618286212355303606788532450429275695036508213477082603797396572979431467924143453400439685820891016300177018873239359219609758355305665663258528093030956964708909360113844965776550391717401324366025616503477499908741951568653943952612783835184929870293830178239296720799210295669658440369500125887502275965517258414612136867686872153636193613626041328907190190125451390190826027955318311819426736675718582269566716822593637500208278206100389777431118956852097605647795579400905329631685570966171846066836503942660137166762672062764450807471235295446190842275397590572987306185933151679734272704506528856238213605553242983705258070016589255032022697075899447555763591981332868094242413426607478887686537775570221483500826099494636404643347582495009657841525038926446472749478512512797505488107655333884362464781937372793933002159460866408724800744698012998576231374599997806119378655564700286181207768834134779892020988252116538229519326037200320641772988742266062385280743198902992438742083986625587628714264145426111385139327199854492767524338198520426416585111678240223273187656808434180474216632571892618304660262336663778446483692832832276536844629326269447539760993180835989030345022070000750888814526054640183143338291785543487777326355475629361635880676056297663503158077246749422937648303152566154227031306589445808367272595327976439769041976609994209531795947246442703652932001866965553854760159482378172575358407892444477334988716586785992377514394981996261537440115221113674497879694257686257623907580618192639589392414553756022184681266776357812999562858432546756733204898320904028010895042600346526897334434132071651351867950501396916427583461602177248171324724835755429655735586047829613352415061485588693373825194825361775636001067122484645783425511200827780064635564899105568801197506626081030506143155561032637713663527086278036221148404091539070064013785895057105813530659898716879685724390743044643890605312618258891693211602265451230433099672729685547383531385166406931774182235976377097251628979304495780296741115752114141615957896416510851144346529009675783323179439590930793032728376163951454328907186538555804578401518540821655943367918300677598267045540414585251369349735043860986340473994646543672492617069258920606202747749084386978173927114195623120688371065142797705842501493237578328176701005320965890781982669832773722122497777609352136469915436016950262076525862763912890499208454189236271278718974138475804160353875143139796415111326548365342572850825129693085490059854415623095995061606081508437872613313954100843660694014756934254551857362508827557086151249825337716672058978124151424577743523630764812489825265962439468368639219836228766815357414547861643445653399791769472617579588317896730393236849260249429485334641929917320863206204542690280558854887713356970621568022083793176528637037835661480280284437740980131234557161365944353814685714266013237143541510999561467099551197416536587592483152698814353480845002187927604156300047347710947697570939576129548944245377961817208396932094463358074555366004521377397550998358133056881637657161569219574894644951739897381356727129472855363319394704392138748380465875311933267889637317951825898350202178062857030565389833671160193708891657071102973366339540218334333041633781559518017552768352999604368584998832923490024451437583276617124162423404556689059968979469037965137653507885854388542405844064737806871880677663506853414496952139009348976513510809227138405866551448056658281689406989160850243769576412453799020126586776984967855231266051260657620810574307540286662342813246951311934743064264555644579742578679201622359794394983317778262317017011019434840087168744440987394612989979012824128861668309594075080869452611447286926039589715752926890923231741490852524627845358415222044665237499817982989429051153009457494148156301373406238987963232343670446496627675331522085865349380507210414308216078121295059188491291743525628106891624957634144383998242161355905291299404455882222702524936088215557563427342446672071052129548468997539805585019099931615556268625008557025225098020161672617992140213066339962031857816458920864285363639322003134878298399389669809928865650482186585892896929438096901194300449197655052281289958159454495130466420177143498068192016412625100157806254220605163435361895913249373334668975498281106505453845085479438856563626565717745509546878607728987829945374088207540146371269891090404748299442568479917419769100426389750663041243916608060826799430172652283484509458947843579777953312939482939879127904530021341208307328618149814966316658037998829397543208398601333626653740629587855727965308429873885794504370952371807920360666102935886242119514197555246015386158389047461326303484208469909837119272005480309828239802921670805998327058336903024524799778983378144407922230087767326272639234090084466299968237732286929309464533026420889672192828320905994434185649967315943905383340248266452504872287321059623467912293105042467073500618314197723306490394499829655612913547110202283605516385165072393295188752363861394696679933134698744740196906844427915696433001195847708451496014253807728120613386848827325744061471931898288668741550024073891269794853108533588618292458193502142483190244907071494190088819345404577363357130723381343605719592063958926026137896946622594580712401814822679816607186764506010431468682572544421619672182135577770984417620160564995270209117451545426544448017624978336456330339888505814342844849571496224399535988937596944868116656235672075192116629697271502808513254965246566985853211069661543531200099218209228778234226991061152359719260066839499318607140005742850035149148025840577426429403968748960434190922377015522410859996115438995172524571535930419488251929248811289984372749204336543777306405424954390307129754122787291187145838279323446161465039614058010831255222942642824637661120085966237285640376602044805152616582621643852504290013815516032105249268914316226046843054699855131553214921671297487626916501182538068747163340060852364384862998467839465032193406132611047644660292453474375464357524302174998147743509367581926683637048082797708983666910258088232228216612054087819637837875419344063321512719392674460635361415129103274487169417658819303352813383515121276725528903172235438878104997541270226518372324106046245200202684376724791700011538693693724640728741749251847397726240647617788723889457497233780264718323680433915608479497205299332747031000438178921366003642795659833762274278235566740415796103517994389846504905520718544663408635604487775190927153113272715105002180051284716652200466499531935670669261388058453671628179882456022197371530167660745289413591243470501116155724881425081751140994971843787482772020931646255818803703504182110086743883784293983160130057217107228189945330183327750993934768424734551522073174454107978662428804102001268780701113856306595748370885828855010768398836843972784690122450882378814543294111567434573115136411801073586707456297716309238483673874670715723477537021715776155473825604988062436720814273471293774501591714001945357298427597507030286823205943587635616253083465439082169675612442810746301979790590043278743525182951365033624474609223377501882739980082236692298481666978312725720821227544612878541369086481454612241022815536809605563620899612330656115293566877973905978528240326017871209957307041448970546683711249681550779052028636480314565488656946741671280566565298367362865810524724001358767480250820569051035858506967416597533595180319053269282632133709526221458527554866217725693904278798510880242682184268041001397846450472827241367360257177532038386025282554057799912320164377529572321700402323443988540255095736044559377350616709290588327466524223752005615677913976646816969423077752714205421968771748900941896495110107724398088698724444044846457207616857529525591954817262076287793683364785245392429342119427277395966714227953254017363319259241309352218816047328070671858933240656884863485535542480747084658397042597413415174292352586728461452552090790369536267496543986175747555408516433447852848820514703717569184881624583973445368886398312174218413695403436372519818320965660464773901258258382586760000622833828121179786820619496434153067082742394163471437433030418679807325882952502730368183820526064813316021036051862138502176634402703712708874005831151318536936289516656197230321800834343353218035822461301790804052510545120886687535223712508040955606104088219024739546116558606272351611613326819816575257799507002862882579314354911297676435669616514285645133476141745865108323548502491683337982069313197187860895502557433916054284455172407124388038686915651688998807574763982337999657119942125869726787698173581671849302908565650696047106074090362626722238739816353693041892696225940779986311981039818713239989882820559810897986732766523298744627875992513067426277272029703003314400093856362215652438034492448013499053779544360527301198126245290242696626746514608499550696849578815978067312420034664398904401168881533062722508659198973343301072742934218257068171285426321822968369594266845745052127606317474952230689109585878859689521408499353624904836894135352182900221382573072292569574377786200128955774121511256417719329981535177044919213132382170767520805564368291928643498355849938991280962558097278511886740741622981950808788656296531353448343084466815953105623849322434411286318576620211882260633158520628913193802963291816334841282641976736042177472622512296379004676804847556439232151335053028871650945299145907257539179156781765330812927287423757369252485827279853650312381753654449386248574463217395213517408220895984374694082521175559494818844300925183049462724470294218441819830138177075353391791066130519537628918853964097159680969132307594064484994290333644689227173284109868753623600612463591258498168722574722677410347830669670827196229394696626692357222573429595474232861132358644849292407359407538547671482557901730125299221766093851039816826522326510408216054657074488702970643661980832370797053747202369618989245485609431215008650098989582128525404720717601120208325368172569776671549230454673817373739431582664945573576071386083157968516620212129441482715083355642028066768755288360638222747951133803871281838994705685453741478606814312555590511091085445270245332482050567887906480915442459137785993066117514686476187437439028344909210251031505509503574673335628903902448078381766569429719416914239905164552055378779571492723965781468054548952737906868910264467816922865230471341194348746476815205758165208007108725353145018562658740156847796407326648714552364227324306284786022524723886339606043322360070279276866216960144212000873293391911257888862649395704063648439213703235806537919821467112998216613164553027878650461738966266444317569373415104292228837235852493937907485588229040327987110655826386554448171288970438559260738055519514766814429547386205174524420288922708250053276221178266651614511666084391905852321992403809980725765336162108525085741209972636573510751668394585737065693892060636830050387439608480147037574757543049110504770045608921813921078091545984660067139946314467743859476728506041293318131508018785410267424788632181215089155497616106597619570736269450111596464859551327328072543094427776140563451609605436344405744314258688543273520482770433548808923061226180376200086855372830833876731670001628249838514126847734537379161717192590101454130197997503803641478521402166662333969028344455242256612104818993387762717122569678433047145643053415273014202266797002128822433856991830350445706338002954152578807804941592602628323546945825923907284118364433264724669376259930013358571072264616542318403766277739490869297115089199804940690377892758866723804055475731640612102474195134422460602748717069888810853674424483553197700505993102448410980378058409323744351660031659651158864705964888291709960844111020116360840601032555077138218852727362990719518414047480425998281917315998758270778648189337066589151685315409643154547079956134141580962401438287802811495383732545408995876822788565591162341732463461904492779118581201849901729254062827608835245934612113476740157832223891379673119650957390746781033378002532020462923768301225868520157808523686669625988284358710220768847069298729122316124954294507087646559817069920380977170869648445577191926616689619980519494039157582928020056961611847350564465700453091341473076429293948706415663321484222204568414753795595127429497531869335560481666823168697993027655465044356017170851163912582475421977368718969365471370341273708613365281863910524980231053526043722504634373181676162364067599512505198921774163534139426864785293457214837368943190483089461223087820757262372393853511010919265385960300500608671720116250393406143848867444733885234120799013287043997986690803494792607954649200794923507253062138665555663240567797346193452220075383762162281902488445145405870446273432526158778926818104995502986630842528039971425655769665093986630643064410923656539398424746182597158461893203735186132827176007716708160864604469372527970235533617495639259808217119322957281407459945123453291435780265428671733338544231886691706789762278352355409635228101100761969680935576207875187687327125879616431288568330377001812969592721416851047557295003381337747120469297608717499494978258481584871263652063223258382380818069660601282299429586415581878810284951504567237128218212943143282670221500033633413649381856700676401814373741557761721387141191429768887798625224816104349711125522203033074006706896223337325055296792433063658366583886269639749155854465943840348727284810031463075028114653318277031539480232283701874669664540501698678249828108391367647755110059173245844125607813840249723071052335527108675507555969360437939592308650405307589250285654478037453263945230890594578887338019916163984768591837808785623323715808178094165419019916178166653689800903199471279092623191493077867228862476362600101488594834462441037467927890847407842680601540863993003872644237098706180058148962470788792092029362879827943015361801116309570885773719863756048483143124783996238061192733691424219740029111619916009055144150322434217043368254433663272930533031215885759798376427673727435708849697554198018115314500947105892888621778260798609058349633361965660896170656108583299123667662774694125775417283066318366116866733286713725374207173014813308969234433853824253368077882977985204153941967852906941736500113046911796770050758483607654277777106878577011116455066733592046167910853180286787406021508194234768363676395671810701894624555864001307144684052446678781519349581547809073025477529309774705347318634254036382702102252531712297957314075975436907204573309520362288187254718520197026775027774803288422370907171312222603958306937894283403167723262442661916052157966246505043770088031556959633111909750157612390514990437691558640203663041384161094886507028413507393880721547529317297600982688053582297489028958771522684167560575099305262329155186246738880695342504101669941288399971070730778219490896760486039982242086721723967366072438494165718815173732860370839634054237265199523367478865190143336055575224188803653133908404647437855685934120448724600368725446132722741932170137556162343725825635204999881826547872924065162170613888931546749904909133718590463649236697171949866273901737363198427732536966601255744483670306563488100931433401304710830203768175788152313142630061085092075404817268483019666680152022517002260156595700866378112366443465086859419256482594811557894938405309969935745094808483651948668981921855859775720975580512456679116744638822211457185061745450343399881832350954953683627026212175996755982266307815755461733864989292694960552728093365572588811565078129398784192276495564807258175296981297243092398495504002615905116951409449600052812863924741069035172807196340564040895969538681862425361822179578008557731727563801811715694990469935610346293846059471698155101051195580726195558346349811788575875818548679203128453134344157335495220362910565317693521772068353772489451573592126143656331530587533587582777357736755464880882841812017334565012057187323471393951033188485506277522565540503222180095745739510649435233043107698177362532015651536203825513690129571043411842169014416202333828052864205089266978560758713281567273972692329814140510412276699334179267510342213834465401573852827696247320636345231003996117790538723148556562514288346492412626253269757591402914498424463057893676281128423270954838671039257499178643169300841678133800545005006204433671910572583647867254585549452263273067572063783384290322468970781128185081751205636902696521518043085327466127622913637517654243889601476512000562688785105763212128919002925033884940238557305065820417216845382966254694070774287871417311790608102956762303052427363997491615785365806418254679952319017445681739314482688183711571710045233527924626263939939134200593549053238620020907826807197354372864604001242319624632027833116145463840297498604990936131853311856213641452582185308298272001203843230589864840396296758511108805376268895132847973288112710942772513924651799565560104454901163669181750649274153517910985423377309302407639524172640421974582941102705480233591109763885417018146418197048964691425466467600273957714675190845248957555786418354020797267166687042237604204863981933973014489912011135233891659067775961617981146686370522685800298421710720069035400089292450488680575024831471441488391228193417089859287631423477153871171550314797054352923148461971004460624767621723591681853727899972635657495339606023240768740284781521216217348219749196918687642223724692082096662326062047224623501137335361135045269632288415827162869681576985311425574509885249415880848284133805726239863691736806107227391533119411316086155914251039035430338147738756741886338278599696187086746463800377566482725326494718291141062504534573637084611366053748209069177628845512119125734214105609097187922497408578824270418295142174135641835742167510556297809604712959096859438936477381765307159361981428072362680212213050392706887745195747976717019310172387197218263433264712278169894396308154350772878793371651659102429401643369475720166865663131134815545891438498642128344016381539961095159248893593289953767204066445544192009058962298593320380334386299268232719350936705509110673813639281103204551480785687672894171353373717243888461757591626060955287887549188359004154466940584781722226437210627041938934105618284114096296921761004202696152690065188140669705893203698612509746379651789206660816028488698533311806571466387974572426583012518255259369811365423903481646997909440732224291873158509197880581005158281397199098744875390260054604117692338766895521378661829894611159476945063060073233624723149240874403707962056940107513860210462429134935084424185481883117547561688986850837369692764026964070603283833421281844954223562455079689772232672620539987473746024645881279925936848032662180039028575695644114112534923232793913935290593915844237587311947072816685092241999031664772545850616517172253554382802048172203740090456274652372711783307692955484594335651033735254929533770476109463810693354310821246011613363875637087081660961916103568917339507676592647940845587547801060431223639160150145921202974474699570833777534531228079945547094135914192785983259880888475574943559415969718345817746084814838385435784905673642628554217287165742551122522402604307047387151260550320330456979548771393184376868345775717062146786554163574604115955698936491945554917315727822310441058968273096702413218420883235303268012428778286483389957292669852641252102301845399238397989615251295450594087529052093098973966415740141996122547536430802947808565333967281471478522481502206958252881031928105949320673256469965791306264055940689080033680405754909891411197414240944387200229830380514478963011957145208419850505065657812936952271412878339112784397802341775542154525347386940919632204965588947828342197940774460206887625512662872093514755492344108869653245971557886870754255297766338163269696359080815483781268028100723215509109305737110170444799351684301885838490635337964496604345682825969625699248472226917442045534907333017247210697982748317865811177878455022116782272125205574586694575792426125985534944436407711168477247545037496334101623612973666566870399777562884172023100957776076008301342066419732212273194059633516887971511003368371902600137724562123076607078469885526949713124688163173319063864537632553740408705480379593027855474959192108386892398649175257401866091623833921611502902520183296689059239216214767177737179389714716174619465616990866205857019694156969048717392302995222778896204009593537203560496660973064339415484080137955774529263691536002103929390623977588854482177569928177549635111343558341799775707874097349529465115620663075730013452421954243755736344856685391305753535633119854687839141888679175196044449627525842947439077666271359017156697889378157018488972373118133602406387364280015591664437629867655272741914626962724815444422757741933825856715713025333552589699987547394878042195158012869573456439818789042465617423129506017666746718605460867432631925998983660681829229894721104375550947152592662845759413759379113192592659883572374430386990499231734654024510265720682562726863206561873750324414249033083069857674359432051371996121470171010532891358874358154152419296381271740550069970207119608690262214972112044746267286567746477779545960643434845291414661337668962095379729230684312351928961947624988398119331214487203586212654051997465180735314847487898651958322462986374391105512404976126199422846787893711035989487474802336525525149164425519397719843677893590162259753854544689459072436062805685288349052349128427147537916165619363870781291354266471729173216095833893812984265787404809041522992496735742860337698976554710911698429944763648623443834297374501717539630701345676193114871776572551223505512252781838917743164816648548642402341907843673570979645634011792551428281735360229109774778152122749349573323018100264575446583084571024494512598535799311647202142645033411742906106677522068405549113522014718793008596711843894103019944888855075029071635426234612354010007155099206997190605122528081571136974582655182570627003185457817569293316491520256818986821136748394261521358738836921888888254921824008036567680448835454698163765808372244411166395001734131207638700945503669501804640384515302936771141142932823696701338158121754505351392892674346671560774413332286161961230287686873622210379605540043952024163420992221368571238961062777167304470047027787726932949692832283152924737728129630458579290573859076263397562588172287591327609844383770919067094044427194352744888548312938047707948046276870332414812927288081330787955635374168345200174633768946192253124407215774543469447688012118216083353708118113391661069036107291099341362125705490417456638518596966803108905359394267360257229838030399602248396987217216353460600787737323657652612944254939012085826944068091076022359183240623561861515004289926149259187605944927265361849272268650219020017603863009086419147823847552345409424241262374869914254196330943904702841060280508477187166800129534882839783183796713571423160446767663157427327078669108973057205864062133031112203854357387648825791285489360785039642392872166776462229591030002873298974903933970837428816789184878996825688142912170273886765399102379173757949491637313037816375973699164270270965901405051921280572621599634042968546009385135432498599642956701221358361216221344299532541281196673358852514055996640298797039298359337121869921744285521847458603845965700261287083500824746330635446522773595115322097443782723743874135128607011220257072688188991568557610701141741427656573720561281384979483809820222061829684132116072406309098522602507964817326826568959567708662271635572214757544211828505721349714387384651528824428527165582557139546280147384009949484482772433385823596938401321613236127010507001596036031724868530719112855750274510035476014065415893280567222429877102419873350646839597065679111270149670912749290590766487543111607492740407518011631466707265079718841233204486561373981210722927044152038188241598702698160498012169203587025869959717661729667209963280555830770251410815784335417544806378687454883907003264161108337302249118145535985357926383303588162362476542708761654869809722909330429036318549635746713383933062847106806716411713727057155966354528096649519409394728439648581355692532021199514407526487781422358788466389951755745877723474313975501320517999897639320892419412765037725772291240598244495697498864566636632271254828044208971446740043764254697330645354426841476625352366610804472268796453434599879822619936494194396237940490514379470248167494167901467497283439388372775282283983898879031447892076234604649802335892848890362535576058535647415733437660796685464162564898941219419970553865427028677618722565338916366654131557708363460706623098772550072985328275807444785594431613266523662276245479682803269195898807096344413971178744548571558331202429823879226134976339034600948144412010662854314639537746784639209115189780792583386791233645272961207312575093019278217795553956926346606849806650292059936596606311083276634224872087540510113929455944473707216007226300276723621403828842567587758302693741198413670569973570260093205027127888830788642136271061087241051030893812790743919829362318806057713410006588590980489053272660859232569966277391976806224368572081357121595957651751037769522568248417072628452943383902765087578796153624540749574821472960419422124118371405121694446676572909427138367948385574004843717023618527877986357250935532388274713871328802245301652607131924248408935944371607810716852671504671936723138968175495968684130000301785389388480691512368918266039846804493805841690107005553065782547721231992200829120137981069257729498879881098472988448306985278135440908364416062225143127387195756084332974261798178388044318722950917763172978125943854715285581081358717550348991200994349698549252223195269208512189387720753280595551125042732835950628411714721475803074031007550034111903536819431984419495564250372975423420350758657392958597553179709211759566192997064912762120807213957503390781520782998069380333219541403979901655108211050394063282852259828136781076996124980966913813353583081097784424686517211381365216282675990196217577448172914993562531311222959367978642834059182602352552978484316960703734229117635173782007725120987821832380980818818660737946588615988623926653879612417019824798569579837957722282699051454923380516131721505297501340083751122883445474761690560302124218547323107560066393572006850964137866135891391386052550086939703520724278999039980422922919587601741154401465232897680107440601326956049833238524995355573199434585721258771120248227502485541186577771200285081273587985109229732410304390638136504077265336484150160555743480443424708159753735244874368347408240398405171436130630691935047351570687680880232788107471301347530405550965677509902251823525340081237797031376083004280092340792560780863104738260095931797618906440703986307641199777792069908637577762346605638812360702800217892281050495925442934010499962926170986170111601053659528478638918764282682329423408632831475152382179100161309581250568712827099689553223451905301009466532413505293848085415558836287532757014281055104650377571055710160671970884825430050579116072401333250803205515564359333797043192396621272284834886053320669497616225550315525494961911021321360690707818602608245613716514789074252014542275302598768739724249253384217112355399703011484701066446010300712652646894503282680698742997868892109370947290130196686759232615193724013360166590398915904301164869749291408531206644654238318885203259840746984456449225344263335230325755717539617255876223265694860305039622051813721213193923087726882133263642153892401352688251695073423019655970547931085837642436325567919078178705736963825051627237883179990061988002094084346134273881548949465826984191074108927134808332964847761964632049012729782196176264672611035450234960442428370724700384422708501219567732764193231875893258752600115438205993464320268132034957045082370676096780954584920304183406517655526521851261286965329744610953755292650831043211226007920795796137612798794068607280854084691184547641374426767989740513459696409305709148798878020321620179206938904590579307295308517694035694607256925583163093435357634947825727164405218951500981243157641884501258170131089911327005961196562124873098626265947143514787473847943236995558470643837025478499709304859200811902242865921078909197656923078746793231082596928330517138412544450260159675056472176341840693214113440768488861158742524352466081928764356792927856345753061272732228112111815089226496500353827555447963557313416682811819173460626817612961990558371346856976669607588470196328847292273084628402381492214148133599640410438606914262745676492667593856265127383723919468021800514680032246869673323162214262117268779460228645055141072117589772628664941904033479191607852956532478082225326783730374863190343133597197663066077817617727253532559952237347079161448631512291056460650728457090939944789199480795044784546665874656465695708151431769830533203742544991116154348244666676530986437206425805072635071834643891618101181445692516574944341409965952043859774763657394189169299841641025190786311678177958295621248527335980841337096053594429717586736227964898420235753167631838327394803483843730190801560678147174211848381587300295782908173713351543999674919509284002787212763912418655019852255094291816217174257785352738545338597595593101843609321398798340340215734302192787055609803700880280105984069667585518423673746767456171747375428563543179402834204832763521023112215033015889163638609829898421183913419475842115164622404527230550412999714338869447484842748536457578155823077545644879660669554894116805326472206742183761807177399904250387294247638839304258476579194678235964912211336762238901471467400612411573788806828456091263626548598002278181451011986682760882384410930563053487856063580801485665627648210543747998398407175780803313696211841632587846516455651642402207052675117507722640564007282137441556886866440862107916505973528461299808522788584699313642769332100050814018430390621923122035986266021900030672396431901207576514935000132639661178476974945144086268514307549209043275690549991729832978858574995013066566279703982565617535088190096363693152272847772367375441048715806443438125987692950133945927258422011354131026728306485818998260242742763639275431508706300684482811920378468203202000819494506683965174716846523420259294368081378140962611782267947008767285512678075997837482541159989405422490983428846380325868089793155008298782009599443898979182269148222529424147637478747575007872191765561109706714538331586787335773741120616809891796188929618341096159290313545851520827626719259532535074974707796345581240135601633969113538978931069937467572368175558734156174759724394744434115172535040069952319379653807048893306396162054182631214609773501205608740288692401008248563212297654581305734274996674914939140985238499227283986871504689186401282503845590043680696826854586929810216118013892919271072729920680903224100480790294311212542531335354431498716505284767530186000998135106930681674390260658485870628143554658313691695235437299376524055194406094763870454280719523561318454553641467324764646463383260696808136676431113280729767429911604948701495831653357031434740197344012904142695609698015307857931777756089669647262676862972570218920531005608768735910737422645849783564489395255621599796098348048396791548443275308907360421382265756669874505449960508084991761646072484407223057350726652844003945043286272209567735175037271627865686117065589292700965908504932229832209324386962977019685569048953245870841840370112742545454884448886667098883658524344046300243547172824829171732720670027336137150203349338344158246473499395070100968998098003207003501484203135648983406268256189459008965289820918215270628700793216100535773564760016584305300929804678560673518306791675944340492751618578906518806692880378032123767960202804520022067151232907367164893069204926695336790945939140648315511422743776823086489650553258934593598313270378403346874868048198489796958119297847845396973864071563870534878023202304698302349371327733824166514318458616313166011343566986042942852891311103024706780490914708647062171823827122731493919053197378520266857682812217163484182300739821116956419296476105266302551535756544127743342002728227813156903922527848187754609858002274706655656822555861780974273266801116712387825194983924834576472580980384765041343160884782448120354957398947433766823734618091069827473524145006037900407218370356508611641655113122739347612501427318834832987163019366485955421097103450444674015429712011296711604586038358727921444435224136571851029464068226409795706726929643018299177868800480060279286588538069970322681729472558913094617741443796106924723191388362398921134568723072147320929937414632787211423293420736830160607434381877807151017693543132678448360191597595523312739900228271766900395937737323885444352835815497706115313942218273860786092524637707279574148332562588821237734969325260832507578799855248514089057419800163416036672687419093021414120381134701843119738443423154129356956125609633608083979803216004736506297435579707507413563301687223940284418608123939810164048251266459116856206897314927184037675378322373972428286716242480467009785901490220960428880644561576023418925788290706785001527473672106457214823087696195899363649393090977064494771420849561041994984962344661326193832735244277110970177041897221492807733169424638415617120874574854775689351663697882747797205651442443002314110156175434139723830121722561324069044333923054089516003025200524381905898432089385325602241099650819186060300473868644185458081163587110436059073049255950625327921513175393749391048329588411739176532097314847152069090166688348521024261905924537521390865268633529555985670435505307748986516709712540071511328541396585228320556797428384263424191812689256246657756642415344006655069738781456058343561394166232238092906212494128370999889691894660735217383065458266298942842272544152506116303219779594150617715248885914018615892966204513554326599403625767685010464117719270636914302514799920532945445404898832485697326005696102512581763893437955765396006993971903097765888239838650139669779884128019373130031685897361559560617654117205412861733998141085802845242281150136378291039723842959673027210761314623798751000557189806653057029666640577196982510967632802015465984290133146908429274476709996517044927367446918759225269951517860540967302236462636338010410989333646706846181768097731320624116374892122530516924923365040141504544727794477998762912305443858112445099550570033814721384964179374581980648304085606145574232213382872847662914913813858592019271091448966533842509307485966285037730518203833773449550213583421945137671649628698761715611758012699255129252626236813587394083996040323998706963715226462886071040111768042504271517006674240139099712936749160571747695537311695895128327842740124956546241340088120126559398510481336314453772326840130364681165234978056691878350689703804165354638831931872814464478358589777613093310847741683507989410259668090408534919778642189483487553675919699140384632399744326487865894589425468482840513424722914873042487971469454016173758393078404944252410136055738303777084457238264436974681068392509084489196987859928334550632992982295184570771944999640535793216821239700591209965722622749803431048390786947579730196769470517481955594565526872539420667647717484065247150349578400685856579020579653936531990664986886306182814531641804524162202897120024773094159187004062563316117658061704067764172792037709665159116225767815453211141821998950967055532341515027726212344699539190423849364523214254012429685520663454833925009175993534260289479676772129251336352419237383708345992277953480301651282715623530509362099719632282133778482987133827624529038849180129064307655025600321261004961284131486427696821329402348093473259493870065143957061679308575630289801639525954498222384895135747869632031669451641109421499839308888712296822514746103382329011185628551162218291709861708335929459151311719894652121180760616251513054674114618277471044338712387999758652769524122647150911280969189937267052113224430911795582006711479267805425768689816835493973060747727662423398292992937766514586359830685383186143486943619377655192967639314353743453291928216896091154470283234811753996331045738035759745992156559460306975687588249526266537807976825504429071154352699294431544995865514954783960645563526927705633276601358475417673880106404212636654243176515841135183458450692938608502242983492995233813852004235798074692749386074064111216278296296902298113795099614974203533101184155662611535407725049742258535334090427254269174407799923640657369814677593868139626351313710567511412089834175583527311407599644546975580503190296363049353328800666109296793505906651859209019483421684022580084602425336207363352447819180831082882036744269191084516605834979308169501542414677147837409365670970307841115269339571461445489636945858500061018202244291815209681841875122792507420696469424141814694225247986092830625767326394639539249937719079774443151761279268046276436171094524185946489966059044519054380714769114361703979562839612492152846349962052518604588808455361815867160054905856204046715913555514556846914001799788452190723043453972455135084347099452861551080884734352766673204978255827001033317361563524182406083514500511954483482619753874670297565161544210305939456273071687144205431510161878794206902632246030163261150315966456691422120322157475361281165570390142470360354940469817943357288949148314763652103329055103574734049995645723516164426518475512026181223019881245435949636246622012388115132734359579972390708389115072746824839719495377155264934786537452216879702551953132222418700827560730901786856770244028169527309025735532050767255413888362773747116474640391931233374010950064563004442565789539355593679663625370009481622689194229488741021012967852751417184685194648173798456574730081898647815803906448620431913066224453996693438751546690296822505722216421980002160212774221379614167233799635887583771167282312164796518996744454385237040722608048411104654630552060350576899943156245410356061522888393297888717160432147843657702157536513468274320537415237055422642441780610474606734833155986276503954408281485051150803072551944623199710441953960250147534863696467150799183511646667286837654369094501751940801332359534992501045725281988123245090574066037503443981367889812369371125978300339414015666288975364803130677009018106547938228149846610057999904011331183333003367125639932748737460730720262779756569853031093306951996194339332080184568884207450028676947009569680031288911661393766388896898350080464962198986453711573516308019178174921517961246904506451359151340569322135647598824356276693491888413706987370889180325423165823904509800681770792490703821501280023256668166226180050742059733689502843800047751591708735843545125168632926274727488660656034941666234963829643384270994592415837030583904016515607793729645973114566785639488785204548931712718123913810664270542520058444052346636602360912603264210686024095300391558770335301796536541701448739181640272113011948227929693222479918965179050276544218452018700047231235224169193296381089160753075485019016099816889831715354370916824679269058649441174995705833291507180520948223584116298665874537895476870650975711509376605160813640066369441890709610808396593467648865417708552364293287054998839295548977534489666498232711497318719430130942466973964901229413117078040466474836261238873451312528509191222202118801237096934889805227023685398607269321794708900008853604701963651506858752882356527342878846327016329185026095715115290252766067277448697495639489477182388698589549066909694462384311460967346576229258111191859735965402239094752403634932998608242514617313107853306633506150606904652808920464985964560708347713439319153993090063262878111859077999475180000867789043373986575413331584464660377357208767388223882112813823764612061146295606848757748057419130659288604514930262334542575263068970758936552593087577263540523731971493932426413192015134260267501798202656515865272461669409976449530465957714558078126287892637098832719296526055171623635837542841085286696251367572813046852555728900451534969835636478592485987128188406034322060196885581014832293946342768020921647106076450486065158833604500450133396719117714899298153243996559854904512649744582691897345368325500050675621502765904335742055022470071018872447565771078040024141593584448591678928643315080110806441789796455934472545698056474697452033714310998862275310655320373850496538953666023234375565441429678226101361618398288896367724947374951258519930687133178061076117564993625663631604881727332422217929266810256107989066078164999042686182883662073362074122972176818455937885971904648926862105733164564120901514332319960226113108064138956103128305664612009146828576339749107926872368737252398402202175700323593329570480767699304784060187221598270058629573608381517797266573462588715617725317806610613760678536997597533581347631079288126323272149758568928282076435784995421891952935342538418880866282623744253475088099173892483822553968971826343686991666223508492198495840617640902503648249735247448661382845408199238046082651148647669729017070069066907562635395236227721046740830438961588716325087162850465652698070646068715379580917166289820335291445805966716040248736403134056943681787858848283257416176490261438180716705945684876871257220277260872508369306074891316503148114097538861682109871349511137455539929646012166617878224748685972081557314398719848044033162382279938359622124955847292136579670832136818647445518214580684846077259298567919791074103925914616449503577231658389160400809921266075376295011505202964138718590608564286618637080636104869125783461018149819836023993102645593572505353768171507102081162328333729420332228725743366559602074740460887023385061016089459857880448448366824652854528399337689566557058269365290892473961793179436116463508506313463199111292286426770539325010628454560303298968855463554471388061819549235132777764577707791161145103354539521228533898335979857911208009136749839194663341266197963537418518105996624395096978746777240301365356058383901641874466767983296688998011525307653539607946102077832475668157504178834591154702235860325002884805754372902312030304197402589842628845745272960172228141418798267669168968036492234252467403259041023967975770755737484184933534804113016469678750553972279783311296768608613445900328683579981416496320364300895152617587397789405198635331201459494988666250044703012221379854157834361543420201451986759918662291152721300453400296278629393423625700750096147502571245454297971717434370924004527826127798818418267545704762956163659101502008163430518454496979929457179305100712751470402766812537054319151216253526372726167356152426015128009206695425079249408762076497861614615939527123661944441399468416531377380785107321808854680434963200162619489313451302383684609286821889745959336338376734818074850177807120130989409478012338907721183708868913366039519509341252509127710348721661243074705319260027190500392383965520382355483236564143019937789940996524660778746774790405464714060147180793864928900483479042810420373833110742820121527252158395581539195790381306556741988692823624943682089126676506852761817836566470060448153944037295571359992974898987954472488382314584565341943033064793989740059756459368040953931854202589808826755596658863109481145744756168911884318942699184348614912624209633431485533288728991594799617607194717728809106571359599721577396145895381983831274355433066732470452715233876547237612964986808816639224132724474002259978736934974915256383681747729814382383395430920467407266543234685639864225686237171416070706420153627209932426254371978773878081236550972020478070641998243756193233370630573088096852374264699543286883248288105951988160375375182473184644158724209360732173584210929415951080395009886895768082016517935218144624371553895908360789160065547754622538995062221994429131440593777907642438045430469351532223428414662516830984167332961914509750998974150985142805913759598940903966899334034882958025098608404713885741212993792685308528330486262996260033820200457277064432890487630387938137307443349261147878596141110238680007265947820023197058346752440958252819473031937004845869406792691061424366427258211302298575865041345076412513693355486246801642922066266732234694462952924771861514429807358854877619791418528540663257797890877756348911081100692732942582209419226564092699383101598008842550222550671758402191634869175932135631238567633788998261585341232408219668345091885050543490174578032519981330001080883689588139557661408589394715070171282645301002289152683038063405465846924193519649640174990651500935607754368183278091924565112208237754391367245132235990177221635321892593407791398142930405345288832742262564594632936329184043977749505683822108829612361883158409736507628457784698175257284779659812923152238125211575352560907888305153983356266516899317665308534370120030991524149877851658788013250005871546682802593643846934543373969542133465641619246523252672601971575387731986896436681181672167846047867982212366690197982805835052797503638760113948663026167281558384195459657290936412612041648994765124674337764325970247281543284036758029288038484302044482526550968028245283098224340289436190000186627907960633068321134922792511112743867424159374853823630915462700508872117636032699674414791398159237097254284391367183591120614967393460611331656314324831177203970124946627846359077056107745292442329127787123279042102268894546187819264275464880173793095703163947168219792314134895207475140952615264657318168867707810289117413553086374144995195902608406056490306462056099374475636017178200772777596371313654663808951140475931955802371099148957007206786711577813612056896134606794445102468385181072973497008927937277238211728447247128203498712302602628281286621185924580751179762551505980442617345602568202443666258498056960793595159746711745110586722641377550058964710022553330341352823850366379901663774917027339817654961676819933148316614376797393043391308160892488017565324974733681892999675437540222024598233948688569466814348903985731239403170680477339249752531229287027686643589005908205800447251065834402439370931992030052914228546670836467945217626393758398613707848869574920783879948883457700740991071141886065983853472585961388507134359282044632483285152646357141699700869326874860265930704312848272966888866496685309791748204743876073876234161988336116994929395066941280833966412810883299383576122482290187318705382790232928931283369150768045390866713379553194146676774340219570335725298539910914922470391994633632374021151357122425430757932666140289901661917470770741563187564136382816701696785038815649840300690335106049057008492983803875728892219185884580045029790946746857902814344470331348283667694108761069923472070677150768648285235764342333310635909391196401226810027600719390456337742958230082306509693025244918907925676278287713750673826319443024473662763491785359555387900600617209964481853627302285558704644943061245030663528991343888852926109278442474708536697453087763372441845196968755831638727034710535995842746401877248359071320688340293974373401748121229232677661314472743125786883252263700803690513634665853507377564858785347942248643890103196301494260894792663712140352239856745990775238705533647802445863787101416526056363327059586277035740689283475742119643618957883155399028857730530836205540370838513941474099967180659016399865629883083098458396199089938082266274154836989968616953737017197310201345736293373128941042180824832508191594220717239888503828305581280308326085029783204278529186983450714353249580093376637483616095046908270078637135308510798980787517902642182318167368844102246072011064764642226278110377401470096764415131476105580182720490952219148476263471665525042809693692564072640689880207063451258742161428990444061175821321821543360618545043719567095757629083275439235290980625342390805607103448597334182535499107218450493175781702481052773367392952388962817276384300630131045453163364287319070796727054039081932437735910330113448723453046414471205626700094577368235564678215794455712219116448666705923054337693143942231771661765827080949245081689351874601782350909343866755820562258871905318144429153106543205456668092605521066511578580559713177077164856620940720190945083181629001991495522612180989429091169755658299044364068679917894446189200239428056951587907698463674757094627011871331305603241052613654030813257627827392615933633668465431743478281638291830663848493857335264542968708234577131603174708521761915639109313956764084516927483950587180895739855182699195191482961964693090310724971092172267839704944638232996303659085611773397128671171140505138242196854988609616750543895538071210573849019023820960002866727882782612842973036910698403542690648948717326504243846255751932358812448977098347175308370338097351065195275422984568245583265069119437306729749215501395449859957717619956202499803239816488307298223321477169769174558290656284025806822994418927505737214855652395998501519299138871590006197410703895301608513937611946435903031081082510811427171719549854029701430146300212380960640812343621961874808914845473082228750890395224228485380749884138117372772828695226858692059795111397861122414231407234266544846896222603074227236540701667971526843137511371240148815110753269575015559711670896504648822608498900423187543802436152934008996817771516191409747142585239447873882919635208389457962874602199539263713171001117919409172207756714607319265925514587260857357220613488148397089147853719080266666443903215287598464089389641995984823427227219805739047935457248359611119976276903932238939933754369305584749665642076590159540402053075099650264416001758343645265930602206571741196641554816942708256502562024901129461372754505103015724901865771975886723223976623486080714846049578954112175053300404690434633031477108998121603510490282799337617529922558234156285097191106981580646458274854928449987593269104804776189620391681950018712876487798261299295529768046232501834937260078038245818777230873373538294306568648014199049907532133575754248105537367196341457404254244318630989691904970581188662570412708731317045921174598020993280914657510128365410269678051283341271118866722670565955358524031297628978075372770507127004773010950803724905245168457702649638662999024793582975482660063488968776515766282730775262051453799549291415750234715635796345792781251694920252913970408886743771154379702671277362720226598961632016071390627964746783040090660017364839311324976764925253150142865809585795074309044898746934636821100156843250709764891464749580328804856279173426315362372327348857984092275644117943771667125284484359093894386370676017063756418368153109262537638609007520421393785265111057277305454839566824406062654965916680879696884476097529773919281799472015042163613742150561432749844767379182521733810016742471448023811933099283629462222116074202873250521565319649956647426332998948263434693342761327236232294461171099636777701030538485869514454202686383000241229304573463523537276185894810336069027144537601467992547213218354648084400695422662793754202510035285673355352766996767379361402446295282873869374320062877611608213460123422973920927024943560385952100141597336803527669391148564200955844679968940496182837124965115745694677466935099339847187187884704369596549407558728840090522715791689211613766064057461158043328036900484592083049926412535860138607285829879511218097919374995913575138897792057094409987870484841342745331810521054789854428324073826123566425761782682430388867933054258174999985970693326408705758009587053322692649185173387459269659418855915421497499938297851666887103162927534963681760357973759174728100236110564730659010281408394532316268843188285112915768850133492603147808132170895284624755061521194028564303196675607039407984062677911364295937624163596630585765212249633451303894983253877582570980221171071514422994457338465624105744769617619219091875370445002520892111865207089362612680933856826235935144295818587521426756948448061856747107720774094473358329992928042358514206974146838950947335275577914133521652072259643305930086093065097726523318687998883820612095076478838729795946179489188406518915394107729485093230305760975750152593641140406692027274764460461987617345092406365918104463811057218845241405932705371041222045042827350426130732932754040743175809338764745040901252976262044057127562501439415019287450582395757275035765473618122694311060653596278207545390652804813267063783305351499498649218827583394206339350161834377046640731246063300232039239425937372263357506480720494914722987738199500154706610020543538690578439870694368534373246963461926965178945539393784908173070215262808077602600049516168172740415374936525672377594871153979339856193640113435685265006182470008738825248749993181344705498441122115674909501420037665197045211666392742005681556531627247244517647787378853757101244349769637872630485155927816401095149601152624178277514470436613204934898445085594564239483092079952820814209776083029561973229078681297895254604078630819348025973965090708385458027750252854112831715925596733648506918718862245270641972134213529511266477773969603076660255279683944931776904739846365895839130876815336998426388658840314619355795505103162957401632143974311977026106732222279887627956845289847793326960265646483854488677964815547656590267756313650902361690802802384199086284828662257681940917982995565884934905613184826684548770969914605663642929936879018191917610430682102717216700428696495233293409844146861287466125400495551457327122320131117833046312505006347971609799358749595318989701303565488170731140009709568475309135052941326500726020589399662676024371935698273381533160275646277789410218845141760574433286226461145774690742188438466288666961586807886587987485853814211031376309587230614160871754579369072635894984769091581916111657565557565576344759802394328854867113029790031205624390026110936339579564601331785885620308013996793560396411189335581898211572419254177737185665815272433692488592203729177763202899947781358162824276354452117867311958883418928289533408443584344116931156186896183894559842351960234057618571394870403701150130070084324556076028516276297498667100906014867911504812015234689730055511698383911857860707194704681257964949145770474985709569258380707146819598821687392089382278500745910843465652883850432223383534590897126523881507222576265957375646523938840532228817500871406302322572123411215761576459378467814298117981501388595164978193386745779912275559148440346434466045732226472328960266195631546049237958799826384089643548500721096655233165736288063854914183653568088491955980656255361661449812107983010941753720555850919273607826032819890149036107827090634269028602580769499517600979163621620775606497877349555639860585659324039605467908329866964897849941846505431758729673726147242478471163590597424134553165730058638588998851318437323784868438006616361107404283561021031601214877488202279719573108524566163797678313792317616364609410785283708246885255670496229930036795309184333298710579082350079906087598853443258262926708189388580589531090647188273131219376606250680959351376071021682361175613080486033129274571305024375734450131501755824734585281922204439961135812375426551743175763939355413161794106083176874282702446042962814292301084470985290573775205187227999983394659901215332317560150442765762958919184159658631261688398229668922895684627886941121015106048874757138058072325277995866278280934552243917682015183663013023840424178462434292105926884444391637134661663436217633073899670483633249849683226489237565114230082391607144093847338207857505462388148612967471964677491959740071950405156635240504648635046600887620609142580994263386112380844703724372378434293129339053497300248897437444708292441931225094944010451019688709258247441933399488202994374319179698019086330069156257094480418423226489508730007268845075048300298293988907865425054446318765637225509491565388783573672724949139630115650706943229881727944593498548483077847936976511404844288877381475858284756669484364622237281668050961953255527734999263765336830668414772046303410055633949192875503775134181764773368259733318733300103960207203227385305019191002370125450306325340546538915625646393488666540330552906071806287518785878726889953219679473113031756277147368209729610392460572849245799586900637752950024239139502655822866391232867525044148975462163001380211333231251205088996325229280153712138607553852284349642866553777525479761284813858488429879903030734441340712595395722579649320612581908443356330931560443769377639221827769059560163554665897410592952443992102795015647733853588004942292648604866826900005444658033556279990866630321565890850746663136649449864116985498260990969958933863092273869352372991942514979326435841505994082438025234057287466841788968337953248315187086999305890489542462267500922772591841694754063579142269100303007572614036858359588389111622055129257225451302857786149589945481069282584809793921903554901658637401371457490806476514844612729565129000023802846909419083930980096545473462779386335315630302309491337937032396833457604267169333270743347785371431875779743341836766529273034531423169579181201003776524474416683005554922239580736568126012169027835596384479334009786022700403552764922860635243849988686259887265182579222968975355947586177685116508447142226954998112593599468899719501696623865425057453466324626542762772887439909898300871827424448359851176613761010827240338595494546956746590350399450275687016178494528405957110272542739088218483666628723782179101744042381506034593762425145795749139066612677037024572768174760368635527895586680234599416857104417319723751606179742831164847879116448568712889257317703413726733924169031405169837632633387077493415992010999693048725018827836089257354744219944232868145927047128104304345420927418072223952136141880765173692971502593099187574993883286036541833197588121052764240381887031990951837443460614854120802578754086639589424483695487503730662290359621480401628647787224483725239017136805562755147501203055460926529812592577316095526764298655215196565576870438194804647025762015002604152699315661389232161440070154972885164445587540951103384803966328241205015607859278708635886575259519829857894985372243774260014406047557187614068891935652215157028450961735178120418380154159796242307338355666101794873734427324724710933275674538466732230820758542033380904322178099175496556244609265782265158049315262676484931072743856767034703383542074414864746986026523139794720024569508852707124181761026631206535855653782069078990063120744687255444148103777635408585896014939637968024770233791791286053925842367189949118324714480641340132329290949166698192912972968397011917602283036307571264994493209059467126213925473587880405774780598187569091769076909352889183495708926012965736325481094078544336692839671525118632998058371320063117364870249668084125833359549911373260030719613353429352971687813431883448360000869307373295117329061886937604367308875448237906861993170978662448098125995470138423491093110504871763099368811180949031848567985672599193728661239882372198773094872036181391586540826768427485630639008421419379739743137066886724814410021903620009902076631869592510012758946307870975368540351344268819207410773562352512775985664613337794807496264001905612494986464124076130601457520680472833216391186574224271017802516649481708173826139662796099089200901572899252907334602744895754826922692849115587991501823211400338742658451181730635511181326181890121014967159534106307390003775390645289303181183062636648413009601619980390356615984285327122733427124497813404986269048732912623504730634212663341910018900530523523493717952243102470191225943816996001448201925980846955285827883498024721864416238352164018445620461747906755932626366740668412471610738206801972119927841457757563615223897666668927042837876384568534747372118771081411094327216959895054831296458479406513110759871390585747392494192741551664624095077146024161040621326163799839176938593306270327787126556909086636106518729592035266355438262993791398978182274268326981870334765494203639309902992932051477060971523433079852251902436591892658210136181355766390744660145640169391272568185874741919243540819642539296501018759303460896758609177981980216111024263193132849455143035297525023043462760776894797245081620851529531433057205983164608786252126404181459557395039808142062886392866560157602510369800412688390363152752719193164755496999994459839910605436103960177006867380203648538791894130910645303519666373532271788458476348186162459256109526793476603869330396030355254408067216560532519296178244553526262323594762721998928827257932935990276807414660477381629633979273642951475068925975294043963509566194390759262034897383389006800972577583413650716564391421460458110136437800819727034794298274036909007389323838472386154046659262700962594782753602843387638077805565500077897112206809673202527280800427223773644941250215640124332928507103489647106881594733524737664751492655637054537163049980122008527365526590765550524690720437421593279337984652554620691148962011342803310962800851943916678447082730554834489967600839094890322569824365955067983475634332114672572162055862185036929705380868734503061871377551016440380115684948258878379762636790520916976059839069613730121399272897652768869405802800137189433590485291903633381454681865040271576172174662528162068103717004764698698146784711504174218618963325660915528725300846110780012889232370139334702913968325291973435848614303897250374538616606470222467336513402460759800201495373760719919549970864680011602179324410171733156043317426529042951875775840041822256603731386751557050734401360728169116348888277355071639121220659447789999002615653963844188065106440583983493984059801249463729201185098039623608494073342009418270322482923561556341233400333670945911608173592992635133342124513105106361058666335324574273461066427688673399944961365632512009757009867367701174088624970752347641633963216391991939936134052400133721467130054922382622302924234675803890647489358594838523821343517317345357845442584482873914467729001062691956606703488480038654732101790006919490324840098385159014232352892412551618265439439094305080210777102267464738084261034398528912908412826841959110702167061400383639472503679369477087582710241276265979235124043521775871832201187921937394168012032726204351781046475004917745190856762854062832253553299452942116698756939570714384994050680422042491585345721929788506099809793263123540450713832385819935912320313886905167305348836150803044862196511853747076922608499556778821701935820715160013337623311630631856508113714917618932660228503498268248851451094739257432584142820635643790339713539824274391078457937172356041635922076533622923817431685902549600838684483065794910641137858639068348437863735034471332810061960300820567346438339670815676582792828253421411239490750449454180188528275978621621578247928882801420749882615491920315901956256520346129437168514051298080851460600996152204610856051002304578273710449802773956009567363558462019759778198205236375983553888743700665733101016524872656606935646301968205417267960227784490035946391035423510274105792374267514740514048039272932699273364540385173915564058086834906676197368593938861383268045439909203811949625404807331988099247428718583580116194071009204309931385230695308881532509118137184666456098632360723765647971425777920136840036905896285745148936928016201626823255269430600194784965168157646016362643605236325523405028300283203619612127662477606269058829172801622298429434652855372584275697535330179069500055697373370531582032243948875621691437710520787539439657770215737306614231594013708084728530825729308258541156999833093339349715906488835495360571869696538460770809047002786729083414403281734978947388891915663460696430039354553103206306762203291318808862962519311248508802879253093832391858101164680404537294342904306231754904455957564616364888765489289094462719995736351375013814438837407253085778979178101816121775238439215235151878317701913137454161652128643586206371108573022949918317177719574179337428540958344759245558282421994821830470700104395743584421170013081071668858367422609577294884662074418247392306114586949408043351120624433357421342131988896619875913698177629833387262109529998976754374702146459594298422900200536798261299577914434001654294986439467810985465793285006086118704126038896363655875623462893065223074062273225991465275228864899358395854646954730296583757127508056965691507361517465430942337615610444895307858195222035431631062462709827993191202955683036808229519569970465141600050758975747066645604171276624531323331275545735438938894329823569786882205079593930392474041814903395731381268739620387183028163417967518316448716681745360419569691222814706607922439651402385785319820085327436164627537888164298577741491134843414168299507826694946112868839415822944066876237958059934731413511909896768756676009049961433517245061437269164045659541409907662197035422994725959723991140895169251958103245844251555312269200759725646596170923090802464132429016250863532316101109440251783227335767401244553199826478794578932872000635632613520591692661743699301616892803742363164983309578179874260084564095274345507985207336156428212592477927619988552463089392353363079119593333495278765946841487268576133395010502124904968179641319266628456433726767702511665260323721020917546117901080880480023372381439692176886001718105976749250154194089747416674537046537579900420765304536821451086370188759089473231239866274150669008626620081856668829186359302886881341724834099356158665228166755145582099015736593022739181551879301016892582114405477911609985227137563923679245418410460165483932120454017058342431275110625223760505155387079397127393955994227622142001427432409922399257509930743998436468141712572612894579871578461151802275780664033162155665847932425354325471652756153183419631131751098270067253961223230867575429945123863089771654290417631218956533175253611157724505254066614668299901051044870959015993811987838194177246177716124312187609873951994641774038695691452157894131348930545042972288874174535980074042500566405597653041800859579378558706687174255196414681406178216715503733705495768983616150147819024192222164913009362909523887485130148151260658028897967592837652345034887805131007718658540724807657338654011845331319441711556504194376910534699880274948824149375198477773499465983064643624107327529895062615154140096691123678902074913954334775969592272693107091213392694601870100765841068553924332148124878391090517734378058680106127686402775509086720225593974523528456167088833685035819284201992776845772219780463596931163231930079021905212139868570544589968277696994488549225751858377693824459700506386400543959239661013841323415245342007509250734784582114768942120175079988767130778460441287521130992850369265886275864963838104787939086118547787961281166367235297218939005639492030000788851146260511682568665903276102605460610980147460877557148125150473216316038222938287670269379864206414123546890791800185019812429417041430171426287216006859763252190805742219239415566292776584753552506978329081260512773835810514100721641772101620610703401847820728889520597018112873775293564518657326726055633114723133853663490776709410360343707369171973413251531990011270876250025971703494729551010306351894715522197577051361179148776741167608961414522562036761298166797461922490781421502566292233312837137298183156348043967293393254349965816864590443459984680648173472093517109974475793697401688766662207282206518392390192750469491475751059088836139153342408834320555663555148810597354277863647012444149692877258784635228877234511135339088542126741978654060272245344213913521735037802330128479230111393063770943281299629538295114852967657016042376357562858496469289028003778612182797671313240009603168521171785971292462774433447333941757033510221668791727745133599919051754570952872156704729778274717328040458863574387637181821705863707631466494408349680194875849644427196047483127023416352568747558808306468449705888652852634091208626457367257391069454342184408754852602303831853592478193236601056191377742864639649577091439047576262415477625616133251108750608614240004983474466663728223464335980056468782336025543062025735615190332997344113688554840800025085278746909026998389778120709811754186906844737818072120102293247148736201848465247835157148654398078465239379878676723301969003682177364055013198860812235628112592901210722899275047745197297269433142314804534325082338431054922406279763859266391629278668636119340549848495783196570688577288700651635739621589856291511770782723375565753509965086799631015661837365235033636818412849235292996918604978225974153807891623983647250971124673317069926365272835554908077824033466404146253708591550608875102542029436304232174719625223850833148516757593337639652474294846682764423654306434566315745790539674692222350747325999970754128211537064352514871410890703885675863738976255419901903651005560105595331430051262888179691482437620949679258296724908142292517154908676081955087098422161581930971553813634053150551954007439912716259195418573643956565660357570850671890551029525263293531836303514736075622631316289897018631166231886885080823141648932453031818414176701989489831278696629228226221234441464373308981758078995844433283124042186845086706604949891731301965330763200861167690937293692201683935018274738745985204262638291318875677839835122593551839379243641597763874233755401738041898202024768667432932968528132464532812158822993719575564606795260887591415827803485617299297131117711740032620151745983613700071441714355458525157044427582060886592264764799978692706280596999794583778904095834254587078011447239600212403852098098641358719961359195055330389930291194465118649950658951528205719683468985940898121097362040000103209481317095127968656955174167276401335562356304990197623123921021838686700763569930707526678686032532561883188995457231962598586803266630664285024621950714787463640775138137057135915851583050952269717979898457200700461944126636527945912396349618577777319453213117546837859085071083255814647488509742499352473181045797365445998846848917646012404779210253218998570560112440959561792406936404660639571480151103614262924216725389279249603264464333402155618136236921439744617428004532106243006577873868737442493152581392731479621816470455260836100780871575759767105860229499791908610397434532619082521854813050425180212754179041611422510467574240246142546801109961301430621491447358918529056477743813028687686564558852121761164566371131579216568047148723306446706671740874637053453156217400934332787966124012156086119947383804827782519874287313934744256210792246860555115926356630976284905284417641878269561479385260293497744622076270205179152453803239623723110986273032522521467539957819169334999450890538561244803449097180888996789875548388167901479466028889952527671870739466578686722374697877667555255047094627397216144676966125165803474275891568370471257195382467221669219747733713813203911434117711621683344369681859839599753174424255457267509285380380368515960033156111075943633264994236864551693419838544972503505488053539070305886384886338691689928275258784144582961211754209390969832155345066814500922840670965108445402751727591839618562178799886573683160851698010310914997909360180314917785571519343750647738752563013097443423468964232694269856656616031210377305377466575948574869472329081653566411627708935303308030604576035173745874173403336197825377953214961744810728003423254163526780765850630979146217969324417468433888774423383229821268659394058964753339068036216466345540705636688329268296039267731230421174772005647074382896308070727819557154801216411978471449318170306756693787222508160921398341602555429593348946168233594744344968903740408698336120389443404673530223119193449108420585000598056276590267482636851401579328914284090319404903632886319814699678379790236674580592822164560941529632200982711605263287635034592507666438169041089706614407567835138315478429781697297240095948175036660322629913905857574182655918718520700819926496480854025995453320007200427488082361784059517850145465025436777458906906879328540421994397258985783067341850328310891712300390195245117063910424319887243293765854914362734404012723150279266578542553796762402585617667648252186871710483865783228976063926470939682880750760994144973350451988159911277461863699051014216359390385498459961513509556390310447711733895009290463993964287399087434228638645142947472498082099428240687992414523538257326712009615227195407204777869999181115629967675048211600271141909454653779556294191002369047999023805923366664500627704682409997702805277414088838245355265731322776190399179058106093394591342600739708627479123773246566234064532562466667495713591693997437338021428167053913931307012438547940032765961274258755850745587825170753359657279208777055605927708020695088510154007257399686622237282532396487987400156728402027167851208169229732162551555461344837026970281225315685196862126863585924529653028852102667868041726894618963597750037200520920348753228641286884185321339780866997606823125611744567983811436874244218987947712882556257643018196922133810895295315763082150548606766843178372978421190945384982712952007525316649898204001571345694832526765877710414726568838301638663178045526302099819124916610428869720487284620677488845082406353060944811871834685703495301911897903844811497208288574032987530312701730853500989937163420272576651457143038830989486359369764211773336517791101290254862362432243048773701248222962642599081319845026058720141093689448641354154564926367127182839853030927836220268539273626061124718788146629468257278190255992313307112583402651350466815894841706836067653490545401130501536515724913145246127309586728093291639854095634018719694363369639742038763187157125193968910922302962418659920264746359772603006926789418840280471974781383969130135488597947689075979285385973513911724104141108989072220052102799404580523979498208026565002282812584510400992610989942870577836940676350149958176774780376677916599348378953741751139417096856230724229342024944633246999161593861383499530721394048377812929838666170867535712993932740019752623989847118576349384075250918235407769845132077622862189471144975439097323340252700429091060301796866977671118568522143550199082291292845977289429489143544194391242281367038256156146062259362010406258236254464009430931339668776175526610841473822585266925521252518709972278229652634111885656006559912745069387877133780656871929208257044735329969362014770345427436227704313947951557387325086202768385309928519954370182394458537250365737349244976336070315743413176461043416943382075378460348857881070609067506626696475629710566924995712342356221622766539770635216101622622608428222387008888428835278468835346422021063911478960303532732321833379504249521874177008654333723921842630152462215774771417282478144640761500522222293449676217440408754059773513076094451613049123895154208885274853175493421293976456737665054763187968293172415382615965100060051097924866232811395819696694090478701983306023900525419386378741236245843448138881105163701716816187410785932893746254615718314463506924680492233179639352816548715830874772987279491900049040270660544388543003809094287763901774804015415730079844226437072565963529597432001393877851719127704576705828410653611498836450809125055861369682474055873006424751796151579173347035760254757073607449602424591024722261870044911812117706176328550330358687392072003449798084628414916448750485302177042675028163079523977416714430792188489570531209970056504882797160227605028919623927205292494972685644711526513987591591281879602252609615253756841875207759145795992612482941749792448685886488929373869502972742112640499524243274531713169035859030858676964739167423247337363998316108760145560036899539075493060298998896245179839152083983682438646486587458847657319736118737922160779196148539065419743555483885647976343227174227146099809387075401214614948340504558151082935385336780944210664670072892076650623187284212904389865262290872054904711697262375499332803187572726149839760122384457158942881654712639162687762937984882508770125104358647277676765617895786588965883590280351168285100740591580103255078170842006935470934408022899143333988015412225275278518191228486742057727399858931439344363333427963001692651903759550523582381777856494827595120143877137118031849778831354274060491091219773613185024867856055904161882549894544042856222544636575543921101750382909289005857172879207637517912353130745596371120916985649587771341537949218756928188163157208439533574985512600590435933487865358811233620065467662939959076062425160677166087666949425280304624098848394169940269997097596235445700641137956941914682137908010269861435012424274345233143936133402578458829635135317846413262956920912420511596177230041634615937080086580277492359184238710565877990463313906486291058774153086839635155581974213625295899714152977117035608915974218752444391401712168359277467246563145092219585785675557503432208338993018401114648314019277653661020470809811389453499498721564441824803235163787225739737216669532150580660096654254600143748108411022776132940122351745248070289957392406338189575960641766021799680614252361213842759452290127219826399495602045372470724162788620960419793329764402809713099547002564943064270123154021960624364960289319912201093854533566658938075080610287721293023909441304747255665110177958279459875113451513281967837030799026071279277161557703999612627680316225884104661989486029875862761541345744362663637040649263527087184872757746477665930600247081027652176539759531834858005715552168672730626509220549758325752994500446829572084806250502065493329786635953213779390683004575188811857167419459487821496575834850053383791673608907647344049157459860628970917652781358157148778683021044428564643412607447014674640873337890068334727644437889204416850694393637665614720782876115551787163628702992336073152646961071162357607220265414131412948494826435530561241821981569177933114700896619265386191402560769322971997565450956443648970576442279122063841098582439673484459051752445596876569197907577230911926455956384028548235828571863125455208900293618451804466004317614546637674577065191016049554932893514202409367407986017924575973537930458403437680106001741805590035439399472650354126625496191498210510264382903047499932378754657481326373900614535961541105187098759167666045395228707201887035956708491249310673613997333314349785584079981691393643770844301036226022134813430266330406120464803226085016708184585264923154286508906393305933339863480281452581198965678209339032059942870151200847739487823355692551236703146745000030983296661523740282276009485938312965231736383540368200160221357428377551517715086674447811361032787825845161465241247229968236240347803046944417132522096260591908581769830833542336338788165109312648616535752155544975877535974481174257999158718259603223528422086782374545058435419343223811339852691605850076561341317947718783757251740831217535895812970955500964242802589164667285591003151902626539272451644152860439516218440185484151057865169557461432934191042268052122414999858136128782127388923202425814828927956566687025967457550893585752665125602852827186742586097215902099697918031536293380875783760039166217689297309184988211878750861454291790620732651110879156766720750100199454281149917261693920771115267164743771071017030280743526025879697528051946786100986361392918025724705568407257147577509888265500669852684960835898482469015703828064121295519602349997719238241532071835824539127618785010948515422299548189274992895355958399242081576498634356299982092573430824916139011624696312622570935912511410721380238751846477632689693386114755791545066270014616539832686815924199093797088678747825111052389311054447589718632238152813653758726156196778826752099239219335005163932992387692516176040150966294826408116654893277081475007738226406195807288326641322157079166172329629518586185313545903640169806649320523968403212897482334726076023457479408920358967026339220304840423605434338826827711767720810000157377725189073011539001950640854545218702479440755811129839323619385921578905533763351843165163199373590945363838006220605913512352435076183797579591539336770430573641279202850583922108345627981315845324798046699307100791821132835095775635600547436096180246915674701893438015784585779818596908179802775411301194315899473000712829281266713343466488982706141123211876589379008429654754288041523510845787339413777609865117441382260326568808828458341634771512766143369684499586792030899925569413275735364271778042206501804663625582242456433495883439159170383840119827472869972232692404384600471340376093547531753346562017617992898246204993065108181785968268739822572520013410585069603018688933784672844564592066532675889300107143377241747000846833748795462170965941899883824416646313428198519234040892325746407645709600149478969465705618952428596751683910974537209171130169225142951803505461863704049624475186412536453641655105503648212850144463085764919411673347972276083779219077493295253797627919876783718683105026846757584629473547928133742123764392697033387346854217528066820665046376700185475511497700942583221565609920481043471803161366953225681177680126660047140909177449934749597380178502333261398206559880780115385882238772428133728903787810870257796691790014165450159665461557685670491038039973726332274725237849843014524731425753038342008950039813304815470267356346422932519121333085671098183648429820300401633940166976264557356524412116041786088255804923309623027833335004460475230525614404919705804655688331628596191737637882307935537743466727063761731092538182345659714964005339457406895812142496791046774293680850092223212801186721607467265179950724800947386185888266717983771094893057166058737581460220680770986373476373419221077518396209797209966754204064988486915280239015273143107480013215631210322162691703203581571650911797218920458830505507038995666831572876417686171425879867950439512810988785974759167676323063945732122170030539336282127603592742749567589822751557023229836117681497929769708906562681060842118523847955755689828435104225055804361781533832657889101333109200538062419572868804502381064224393738523828348280847025362234138390628280045310568679427124917908833547999668792736420993796577428624498319106624699927451255932946822952200424248962523049665050616857965540540803267537490423831452039598832473026587340644783533336337323472775988255719670557643373727734266723149144700934469828604385267345586182738612574276160230132324234319035633135654910187749831365810768662679931131780336032598099346097861169254536264048201324968140633653748435327688532901857865995457457656106901384418536655305816525523238634021915545576598767009595861839699729557665560080834624095084986372268921929010930362562829501258414703863769029969559596599406469441088286314267144947954520292790040726430294740863950287909872092410502262593131016819761706295456848692890253272526554235526344498240197304504626511032201576949061340048982219737055348149724218996575783180308176552193016355416698835416764873897560267771313248265551898173519967896527077405448621078873869458251018477870048953986931272968273629415187652801521425952260270310553638729953603294801806241194797086918319219584557811766310056327955883990999294434450721881383045765993575713784835300069593755243673694772879623948235043864928865680225929232662434103459993459095087116902290468176848298001550575015659189884761704664388955838253475989628429878119703802829518440532430479317449712217426832364281000482672049219411639035323808479111123132460532697115547539759854069581068065922463545548093769359642549420261280333946920337164131618285582975043783834872733448006955021203751272671402786694631613905551825319120794991312679952314027688959208267943149893027944523523043618179138467040562040226718803297576215144600606862819109200664827802460302364845404780804216606654884699182518385001630988503498996963478471104901752863345146779330627958737724087512605598972636671244528385005468137604211850832263330321824265147327638646818484401817160720756797892587966438261223697743527509938510049629825645288636287216693556375812250082986962852617167862632606578477072623622328917568220801113334838864138365408672453203165530829295450679177040043062520384703010702004934786792987450758089750832279812793483417715436338007323796925288641087967372935922604107516504392201588233464131580317931582397828396465983721080813466266996728400134819795983097354718498033838600232762986051546168610890610511226305733909527033641108994757844434579668755350134504148751898981102699424055006201339128834742861823732024323780632654728536188095451238433178575075571552014477953916112756280547001505021766004403313907850253352420200250391435593877764905514957827365165630706152890988391129325997563362075089236690937554129780597747599201348884439551122218203796471720065571115033877605067559861248510751439003155465092115363720920022035342455985515630057860722697442232076322772581463327522673906047483353971366177889734022927434120364266409884123390302284711797292679972416680800408473484881027635514495925646156418868708751129449271495967024973452117823084781281125158035665296167645932964630239456485346474056823270822181878911926575040099606771794446286774601522134858905885044796297943838314329644142125097460286987903860890945996911287290312173304693915896323501139035007594585128103326378462210879968287691876363871963011469041574913115695006360625414059000159320946112322031761449627229538852745091555699361210696371652342164757437842473153264227526773307426163268357018460199437313230208120596550333341405780061799318079126332353983055927431298240690483876437777580066962566643937581856371129166022206921285910900543289480797588843622963242430672584065203404186640124634389985935327057535836585879025461907249229904914562947320928489410020109075588153815790703895020353184248953320859146609819913587395567673397545540490435559880804921001233735045457817792566852917335102090255542008696809961883722604124735527411076259498686554294254860474770979196293350352277000003153400816540220993257472381809987713251711314115367407743134643911169305107448695388146179127527494636489343757999966790234809756298098575197938556114620611341974826813087145445659052079293831893667822999100448440108409017248267447815623508287197189870498157518261831656375323722733658411525415683953464781237970606807704432166778794154682869426918464834695439687917410363017734916159145849017537668191818930966043668180619443142433619563085416322483718372243356950037209045140085971489783987839089468463806415881345724415832689067601902832057762710910051423963924551841219299151645937346762988557945624183431348898667419131981875606986567454847913983690162903915604261733293617187474785273120523948606072698891127832952178385394485723716772707166220448691678290982597769980978371272284713462107913194118151707991009100532650412822815087420874138088491225240887245605561112696316425648167379516820893178503110350052109246639354477720563738457201993603422102104539221378734072901163423695803675092214543945540429153466205043160554630023225750213304856581821502830922569949173753873485132054003072872603277357231050493202182901863195027367590321338398311835805126192598810780678284479275186996527062634028103771625431131305274769058623484032441165005036641418081473322385187194770156548548157509872798575060458585949070245551919741889471535240191300846131556226030525681442828099565764743171696613756114725144814259691437388909324575897968685043336951570546534507226539617939000635262568848682961777805587509122230093859284658306609998528741128420614917384887452155777957530535232315690798987066147778369986714223801986207359162970402067514181193376888267607524674069922441316884610930341578024292165105219892203610455428723436515267600285362674602246838274230973318370171705685470174006554999817872566747038853489225647576751127607816273534216443998809573189597392206007086568878918518492181375273540737353632303281258720141352400363499290144029988770303531037481932678515013512091765758397381578042570284248178337988722779160544928176965649925969267974879118185430330613598434456197872580213525608578833539242894381132825818174451229771979173025548506935831016110546073974353398138937479186484121696094960638735514284555254621550857852905378952095883514765232804045772268511494437741430588857730896261676769418460469668345246565100634946930692756822961622994561604643441072993735412566733914179944350514439142628466670725271915386361042250483136664674655541440732121437531313000361614153995396180199256025094865898610834919411152820579733624937103260966710038416395181285209654472343866307608529231447332585111385851843964598037600695295689146643208097921850985656621501707664065088798216620956024079737015487753687314226920372499257485848986842688424239440755916161515088061983652921005966054054547528487124873148876411034806087156276205473563243720545341514087594932219574790797153979433532451005983682846691198625528505169640829078747825359745768002750837019433990328931283909606391608583923095923597883214854306019920908194987486101945900000612901644322600871655602219127573150520634858779221594104327869034183889739249829822714790144779607634025901512305852560136559733708362978592961424244668152253628960667236950066074681916824475907734617642560489425777896665222393154986975856085293787758406845316995006392582153868371257579432584279068242877183608405451452262441087057177370294489644100617275079334379374646459865021554766513573075566112450465681482973076507113177577609119934397566184441470476151128013760388024092776138055496406692983605529172839012277690811305016941703040584746303155369174001075949570971261695605651973131144898170533324529883782598313359596190217522323851569797036821161061161151387045066182158213395435799561798719970406293663218498801186336617867235104555982444494372532971490825682140978917459254682356586776550292046529180268242293932042293272676647740892037733090510167549219548831353502816767866336110432273611722893655527673254328175011055628532645806224133882251690164305544328911183071271868002008335959128174065554795329401092011132398966441477376101156506036245202348542932230893752572990504170373126093821120027696930409098450225028595453312944551007983492744767284822280190328059616334731922024844478321536773034045639937100203978505547156210535208563640751572352681821567953399310110794480861574467972705159416456561664151600898908270833517584937832278458337564549664321642523572447912642370182590577809018866003425834220205346133299884144218647113357966067949137156738718685769540100946802250767345495399645039076816954162548264954940473153039426592640629553745522167092982121836340927648624133353183170275598730175035934546605299370630215496073643511104238454519069117560881528433716827627475222391776045775161125473938011920222630365109994187457462028915777977219304677593670444075356892319483918982304600335089743643840913889211350547599851671690047386298377476734887969564583896293400654598943698143480936276647390383529317069929101711658173236036070961991425334198614635221932718060304521158885018210409367840670799112105005994056206186466257448676728908102299796029029271475964316656041872690393776207350198026403556649804765651483522006234260281823902684596545275154694193998487375369259034242250763312579834105585768577975545956575235557727271427742186511730120731046590664088605418405448347839237767347736121562330230830761060127641589714830134924886196201119261665449751814174240839102583431754051481338731899027698070723792684089314051376329804732270578731486967143389553579120842441581806414454015856673849677080919282684459572609617120142573040847630983811540039999118399469094777113830572659011478361295691914211662950630609353244221068078299726038123975625164144497532453518808122060883158150129688088255332999091786017686039369686761243256919910233005296809779238608294637106412372023214741193689817727228081060951756972833906697738551494637545004680284433688941872831574319049482592696306300121567903890447167845647955903612471691196328592663035171901131074910569616610375100337614032087791050787716202031702624444485848571482078804731951833278714196407289713949228324193099590826476157808796435573129802079513902102500814532159531085416768692351222572985907742526843212761076419369340173860396081360800933449486235621273213156915423876055662099956863439387299943639718062376576506196908647859374098212031558279672663738023472181856241151183625598993865248921669804032732624002707597336231100320634867613301507555334381409366002182241339025630897705026411595853247243623238021305227459582802170287819343838737074221289464349361180376450753460481084592682355052156269791725637796534099244246583718753315217914283293482886909391252938063180556577541749529522144516217608639432726378858522044090925179091473026082557132142303409450847881252678395379732276858367536679486895873866666973875516177595788999459700906570172522113700070506716707543760958479265246692826661087458780069712970453652145596436751020604229053769622328603076796605742721099305404379489592813262146750165716107869216539380358955911977673415125768656631955593148029415555836592598148881230549157830947733117045512579329958982795004195585827276043389917847443647939955243639115700634060835194945000020840729734325588384968351505646744756774012286795339360399315283090321101887411318925428629500006996039692254976746684604121902301529001485531044809599212404377953566154448074261146393936466964337871804339760132893144708460863701930217361720262468824819501424470463869475866101929675086383485422770368694321889805117935851515585951070000226442701032815538908475854437932736990461246868586362158697372100196933575189377109399250678588113270531607048414160176303194629232954874445653527517096040916176247128200883895567009597510196838132100354819037786898972215165710779329703801703053539151570655543554286121255565711963833926984930846966023154766238898147127719986910162393293090820320019234570294093951052425769796198530394701684279348287677769489865771022690228869335425760971088660321740312095689185048890612992571338469174935154767848453008675058048985802976758932747079046385045484213039935237068079935101308536009579286957831930933237791483965818804331401449415020775110606783558257747879433851399462747434475144859434438523721361522064074277844281349554708982352071969768426803474398206634834020285857596703814603030081430646598180866892773429148288750826466292916073286430569963705591218852493980309189200826256283438254893226020613327447559617968674714465653555643462433564124080300405517179434148706366000221824549704542638155371131175587458204048402233983468957445187432602824722311699368882899224383396008553049051326238375628701244443286487576805738020574303706874130937583813418816062219138271148748144677862178420789021652922174533684330676889394167524728680545763760502882427656089776453498640533869759598679882077879876291367757500588680182938174721113033589550864298699417831087662358164279221822552075835918522707821000120122903559695985321984297008141573452193880558752212204568819379793129908214303924936150895237213134757552223150374893526476365249332180891136715025269374665167222858463789325323513568453308936420582701082025063126858276163387673982143619735473099759602422900039694708424229187369508443927827306259717452998228395191682098880364431651854370188976150901571923025489615749640954984238892887029813234679392846687248387042881882526063029738307213468365271558244142437310993499582619587837529494325823020751470956441193294542014348559253212241121010136597969500557492458721086203462825510167312779130259592439780089740668339100132277719982531666945276699354224995489227418836024854298028202447510239630028141515480435535210769519544325772347658713747265250895421620538521941874076407727548331548301507208001852203347584523679271106682221704088758091909725360463807705868054881866844860215676103669868399486322821146659278543318583230804301477677815776428588206122336765545294514463343359735348399698850801233361257634330892711625488677871076561048830104568437781427656663698994881313283094304033268972426978237230731955079169803425297201263743624751838962574433512166814792056289997511068481739182198376706325879671798955561952775008151538715982600209035331394815363848114311059803169294423401834554282982392473786377615387009041709808202747847559482207418297942512200112039931847611294692731126085166780743568520766414581844025692294625538086677230805049052415817319022466104771272590276324136297593372890297534519508278111794793740096013541068705038522953119892358267742585541395777880923004367326739264804237044741373681222893358789987105968178480574725775273774542313645507474500203395549309193735449989506088871957791876090311804021928636178469656391701092542692072279569422799503817841183141487217744817182967014125277880442413221922407247626724583711188460997192117094604257127931720507210142736404012236880798787418357553274615306776918370837774662171445600091694043428603457706991463631428657152773515840119887332812800658545612815036524022598123356405824955861684892966873119678445800417584227845641767517243663233982556327829447491443912967117778175988344876440223287419416205959192430695634874853812333650787903714452668584879251077942848323652687860115031980639207515440062876949697209942542664932730179982127770019538536927710841599741408054945696359247201126882808009847051781818683611588346623042515459234349255172249675991809759053110836885725653336420771398975518493625035304228137645048648748139438828504029122748502726286319562955948694029742748543045471230895194232568862293009665875996701800178491460945126788243056785485799303716491081147089812062563283962799416700601047638163727652514081297658210882221910902683393534540177189056977093569043867273281194026427578292607219614083508071651448458993464513216403586570959035644634427074717994977553510238159544517750283438940355962568816892237657122515364142094544560689930165230791321797044158577350227319903096833852605904734757907946234689633161268869548281790165583806418279813962832386239618000082522314355408962446961759168597831444443515556197851554149748295466020729441805678833760858114675939713114657645668250386674617960167301762932252893642709636890180285169188337381230907669830783078237428236426672616612014073692708704846788175650007704168569558890038280306711427867273588412478072139665978876845129358205296895201228318448457569230007498033672920366234508501369341441559222809547980837371902928088381071734867479879587949852409000101335660843685109620537782027659187177323711660373446857592698390552582775956478005831764697850131966186121222374109617215353828877904483535712644630439010910925296311343192022961024457401329965448438141047754729149606322618367206159322360446808505255869046415341715736854386511091806848749550824476775790312515784459718626000059059510926594596423827322619339305132954082772956825271462278456627946194148298700369007484150545028167429371015099140808962155746989697368680604290646832536794596052961359814904739124452051954438637719478780733385743505721693845519411407885303277916669318118831330046775141059466938912206306146681539162044793966831335815809275342899158040217124758841588268269156332119682379544440975540231356801344560431274535464873203885915034314957224437592251320291418693728933869550253309148714000412330127896051718042584660174138108656778409877861940017903440441903161619433105089046100962591711887446969947684372899199526201838265138842073066000294802674500171519791580708284797208896494737708855993389969717884694892740529494878808294140078237977072126892552743382177854688602176183476847650822586520245968657604075646640436629601424177145521311010512790320240768244223699231195554946207662161248064335315159880177595447983315684221617546076578978607651876948151116715974782379371482283186407322074758380902739424052336803325325190886700801665719466065757843562886482779559614579172952822435481717680189599968785777764879206950791832102657459332797826021049923427798544625904218659199998141753210266568417646389280017657524310716577115003998076627352448538438623277691003082845781550313605825682007923581486564841342226553312491326225773551351290716205679690949070472377881486662829387548755901889746303519132487821382316173414336438238802968312183813091373903458319406206957093315349769198434381689263735700810343512694105848811495126226112438448949564500494543619059341294827746808922688421003440621347444223870719552871841942265286700753244562524580178698575321711583739733588551524807289313864181248924745055597896345738255117556189586646824898011303886797112659670947025889825754068749803812776008334054307150407361879555048983265741749832215082993806914603359000917569693573985791731106038896466916685132111926753833433083682011942755413613730278378465541417819532185217101856161230607231228832574810785167613553978065765032053567431292484378587346177908665436272131333858454160262467803521700785403833958056878317972189830937620264975775764521521210220992563227757017514422621211087457517373286104660147795399847680260591377331427136157657888453527122165371979726603538319085364286188344302100190346952318708990941748875767420823293312932651343536457265383638432291342450916297570334308321433515465388221213804236579809637106073418724921507358959576412757953254013475644285830074578433074734696076927578525187451863398614895459229261922364549344228311504500297862137810943551969550373966295324535146903770213184581943175136292073884467831103885380861090903035329787125371018896252870982299108487526001050836511494548061564084746763396590031274431673126179677103935910046503105543077775775804546228494525052122284810019866996255985030663969622287510271187839533721228191172734510960971799720058408733648648313174189540330347211622239776667257080048438926428013421293905865080127799477224250919601763099297493677827026008609754383061832940989808860157501455895264911657285765622516683267366819035153492342653792688302106479267744560531365656664815945242123369168569085888361578444670075962958640256354294044711521893993465674943448314845410486623563396738423569571909851653407284895790454007861714992148079950625739763787111128927291882696920012946901871224254797939043297733246578026208970587962723365831409262186637574889594876751223694723802980515585435566556896023960814021254906897487081999338502111127618671667795988584107704246692188625986863843118848845504989542551131064915979416104680103862859247265688012070355701331534485939432204685184545616852254268326975568093575473633618270048808321015151604323536445640948819487468684407192933306046357125012050871955899518177464908490957643438751989984641404557786156921370497085873638735689186217677327176250640136820159031819249659119616782708048257308456254891943108991098868643805718104829477815604770475890083431906522372588266108969082759492459323325605919588632855759262355682766252800776586981367769125769381774388176290153055768918224541272486822348412612193758759765256824505758490839708022186796293032502817289965836384578770052459426105078102393175959742982651063485775859382923524671583256030494726441131704816263526783225703234282127038529154150208316202982809812022633427960803841753513259164774515815122273412433062196606732790779474969446207750410994753544042072019601391858310684578272598195779175677704256260519689161646374375646911842703190533071542550194539455047740906944985303763691309778636319202632847453649468711610794274369362740735646788860326917653409829663441037974691975526448139680350806484365299181326906488268691183109648210823320570479267128770763936431104794500224578011759124739657659625226778243346762223541088959097533687527805100187409102521787547733458657509022342521854391847840821541792938238329512824581373352223662105040481979439031661983752035605912861497604788873773132577816483783617458193475525274493369015614617191271201439513904592967315066415214349578225472902652937308999082000185780438324292786988319644760162811615200610753712808077868700504955153202623303317321822038012879339041821527223353709803459646185687825444405233509752335084091397377241496489540785731634870086116024247600404326853474293171694245947417422637371895656263816564626908151473419218061870350991998607173387084790146348951977128817247077573137320097492193282448925149757943424670675345390912829675057043241060797269434386757696724420578994687101613459571518016575579915442866958650196425737545886348033416404276959557714993786020591553046448063831399449881283050782271943028262492721835345126396764657321892795563942728073597023896776195823782098166564478463811370553888838536892566770334437470342407499593388858326891078708841312142184116755663149705600351820151179960740431730190168521974001584363294008887619620628231122159626161631697413293348929358468888097489242465002506768933775954910129298301296467348776107105702818184459984776027696520276235583275597421226497525717030403710221675958345840191645841790489828581443466843911398848183948259894794994491573226536462225163623585927758069090485222597263479100683770025073045056381350127202484233383741815458459507042271102137994039342577253800302810836329305625652513636415370908185481670760004327650997373722906718942960154604094628155915176426588946302719993885857848897596283869138162487525088530325400827444024919552979768315949131924541798703511812993313744627436555696266460398459625165296836326488528990074286817909322812493925902054223339109524836985386918746456540633359754188663991672235888552016318569959770368651480744879397108436734599171609317446827021529369242137127172639610242277738113821608240413338767358368072551499862931444461671005578786152994500674005845659192213322902811132309616727910080337613870098990806038854582503312686398458485062785494554983812000637906498312334623682979063337133725769787923764813776554718457136937156772783905510380825133621183843174101792074870562758485610386300368765262109841251706440100577990169918151641803474792984962324931285997802918513764956371083551544573155914865852996324929223797953027330732838136363624080628874198296558189468023621638879834665201500087425226901337403854484001701697212301184767629939212867675247469335086343780924602463051000403868028091252860556662369563342835144193974068096174361581906752817161977616405790650464382262980287810275707178437641608602162635335699781775737262478842688829930975942382906614912574715095637325582891239498122817825223954763619219134303115791105815673784798326065599311220122652878504454720682496347996946529110839114518014194767663395556180528902747079056807292389897413827229932099336422889941229153209561350232944645448106394809103552067558293782913029520592894180293850056435809489716631543636109990893086877283224848912118824822900712196397973700749841001196735286153746619820985736585064741367749356241172467595369290429437155272996538712096098228310383375957074261456710448003042418971864755556242155814965555749582878496061003262261455423149160510343652335038916793140316431560768025228940364643244130777374853712311952658123601849691203449373109233090566503820510491117337211200041939082255209898096706040036374916606882587761780958190118578565706185386110271583966151508705021304679018152102503293044143631793726335721295990943628829470471910708966790740613683557711575911786120210500216701662250088075760604844053881386181758622499628051937460763553818262866101343609268681218834521335375186238627723773134504618596861177253969192701120911273087264331955158348389752014568185219422013630126123213472712585575978085135987266331223125050368814967628030242609380505398125275655621297273531030770696352247645687989496792845559978918864300636302013533669667834665316704004231457813900605493664497445500085915284804057578134765807964759085293926731215169884496766415862537510722617420562630926313757860511866764691523289898961117257317111590392094886050222060477718613465303618353178266831494764594699427577882996204317195551904015031497501290316414788942655214937786089709507212284112244562201808752397635251798091188734687502928811687218520146209532257242989737315271155973136526892695501894388191521246314371782773685934370535081552629173332274363749521407586223570087249009629068128768157086129006268367463889296082298897937253386822044777612129346345840162199495799481126955333875554405663385358686896985620994056462773383469430333054335078730370264725922298010140239353120535939902418775399780871122298387621079808704404591356733719353754371002507320472253914526788619889660808916344017389436834905983201816120140076367094004012306508011755568482634542393006473891235108861225295728302734063170227860454363573931908785885365170528150435050402777260756865529836825371590772338251398102085375424470507783603406453788135233666431806740147230572555280698920554258046779367639577208323559723343249465858331563604259707524823267162209874704216697374113019922457022481801673000342339269333644186689618578700364454154072509659297127467779502363340621476733316694056851380289949555770168917526689937248642618805439124718707787836344861506965170767849026226696865344230541562504867231718408284614827533254798713883623594385625213846900102043242271620553884414089529681450614622810732886220195938036688687024289071045622852301645371317467785076520876118579971358293155418859479778243853094294199815908307586671763471930882205070990737888332695361877668557557595367405418960128252985847468196629915911924673232911712091244062708254730815800567048378483978949052957408382627265930798411062746041292868702963129758371531081081169972077292181076430285938339241383126685570933762018999999643745018938042912111030638144010146840900210466906478089401564808514247976795680521937321704186567322151786675595367340454598401038060714521255815004612891720039691364299341607446700257859515879128735600175701543807405734409906116107591622093393946424969148495853791227288483508313356916970483662838313677495972127484231465748117922606239034754839781957802031386364496819750569974674573690153214656582429787225567591423376181154940720016791919759800743523602651674653416344354816037472795932408413659073285421809645851144539025717130372977539602534963823146244077103138590606563718934044059977427452939393000465332174456164356790292350589261753065868667054002539682601999822295184691398107812823179219541732869889111434478616316548953153315367624949850820797448550172232952364321273599227462432261896501579779651240699492046316483129074651950908149502918130184933057192118124235993112530936552233424176564827959928136942523001049924233257727883587228900080210000208073435718556043717346463745056834325932680186356776576576188329342453959706415502716617166190724443663734262417967344804033920491111008698049880508277983853078791205585953168124791165473924795990459115837208125129419647569236792600217884831802353095218971823906865388908195744655095813057090876796671748873070825536254098444941367468046457500337917111333345122626260781662171980071575460045594507849043532607385805781343876205456648236734354293160111544152543435467275777773253778200409416287375940926056669347605616236073137466067340062814111945047445861820490769615628982242945247934706410041820607386616870059315135907808109464552757340386519676050664576450488029097133453723826360647391428576106833454841140518198371332791272391728448483964698152774091517364651053049071147644021590514443285399871002170725418733589051463268346196580699566997142318791364435871567686753884743888577076036047903227377541340996077303595648906541144991309839249741359434735476488756963872450819169110192293061781439251760055679588465579858397587665340731523897814498691647463703756896764682606032179932984980480045049398033687159912507323198670165576152812996329803367595959002400283345686323623297628581806177968242539636428268296426444015848344984241698799800802430834258013754697866784503524887231561921827451176741890998623964938387447987878333031999562322699693854719180509988784532779923251505885827855715870433667955084950283164846942514301465701838769789051235388893166761579867972160143665370383637509168641835921461575131585349649881793791862570158532715282964713054101140916443877947887197381783552493361312883509473632438063313345536417994883071248174392790691853581300737519903715915749839569487291067204714022484296247950125924898531452859906960305150102187013737808260524193418099123413828360270518710178352045886930260185933868152901218718590846003648825170021504929591578586262407455680357313518667434871972996920405271169099970674931695893520112435262689967981631643301654901563989120751198161494000300086617212567313690582544900656696851996374432210694132940264889073174297223574530154312069361191768118826228051915302740938078051025744248085962646794971509931012649989022452889307196045855854805353833757263901532002447805756141341695460210723498459159979372747088129040302370010355564220546674827408990277047183949687937681847360185679118585854162973316643359132793195302354204023371253347813676064311143596995206844367047282197319262519392348822410134873720806418248328616692388284470237121587935501216234961063914525047369502759653213105114027145584251504740633486473299008183442448486339311972120336039129176410565342118821124462842606966587309297193224696619769941216449924769485737940743504569585476900984171341116252559485658803697286936008240930042211742276851014940284750129366130413439110893548867679175849145654066994576477970722581147994926169744217402378021147267822107581917041706192928260267714374004099359652052252977014370087595940862386705113264423947817134809165341199796687149198863767260473602285825025714777524447777032907671814593713873902980479002217781141409403685202988812981009051236379657406676389455712904120502215158780775075384669478720957177053017993939074171441169585390038860485165746128750628042625714764312032590168532017377316797187271381668474575454847283701442376786011508825391261886707189426429060444877094867909751028558274525370135064616153275096394148741717833726906379883053916994261714589969164706835535297630530333728221117301675020483493452632918193147348279568897403901380795169148562545937192899027234477817887169068210546653036588518953079246712957103470754068431852683077305095373244345865462142065767537995617313375590873482283362457829870686831910456042896496769759756367970450142916963606305405896627838993287271019720150114366886831465163778848450124590630442681416116441819659234328576321643416319160276867010315440329002502319286752918595551317027852345613630653359454357123105979896455998079178295698434221608321617512237142234663211183208911723491434299816684791807898420396385565667243724579466006905734528521705496960990445706410347197032127957318870747322799135166801919960776412346156876866103832139636056180988993822200924519969223791378429047699635177619978463934367326220031700048772174692869607923675956146812861665039780244136291049379591608990681158966329616178801484277937489696176601692717304848040551433560698349874553606992109329668328206909848954953115796321329006430496349728266620100285003206924210355828797279360523252808614054915311504432783995305764683934801548785280250382630946503242046407701517960189378503198892210492101751913898772107317947989196423709534822708389754171283281676321989014253274679202950732803279832019823967540156398725619586951812135470692317994488306483349943843849128024860697681790754071587623564971714819158684526626537901312138432606024183218829247017492845140614592861732775219962821441423378700149088789628193685501480732555166945470269988771178931370632781866988453003484090805654385182484004543044704514427057995111758766994366400918091822438792370610989215628599622782540906060449209144276481438298227976833480792926568811466255599648326239600094831036741798485868730150421828247273889768613325120571399538885331450637088017640439374620164291532241225264436732042563364426835230643746548955068006001431373443050919018774249552863303879114899880312769133112204298018195559333302846288121085945914168446473411254554169800532670608469652467740314847762436847916197285378807688022132060206038059974854930945323367124333314445009874747306820927862340963208338074318245764736812240551675766073537109244846487188845920181659816126588567576064427631106185250601508499655255932400473745081722600827215023107390867924465682396529366562584380751309441604267204686693286994300438702937112643106289796389840106786362644917177839508343251205863909147835474105148262409076037421650967469979841667639531671049624317176979233007663430610157665002430858266233108820286697406548571589522293089117379616304587691077201124194501613585808192438982898111811762510299564090168019436426891584278569518973359295111964622530541338497988671473781554504725783291283214339896125319947073282080031686514082490740222914013923840358216046889889914200636839519419289315675323466614138500359764271421231411927683686945522587371331553450991102490439961894323228567171790594105070109555933329301133814580562822710416911721761430582220980509408862042001419082857018052622534493668858418947427571924819033753627191057057096211069079321500091334896880436353952457568361845036124237647046165141060803517540257719213911700898144035998506109689299096118752355471032425023062087309962688494735437312681606282845354018157847065079098755723264415034065228591170124633476296417498284399153560218234244332475061201396892954605248648083078054746696040665878680329709393115467141979827760259247525333873287768742137885639320603434137523062574977228278615389315396738111785601318082058445749917257224992470580326714984019139498162266125025408888731304588951457286664757261673272037191037920761304428864671989227947393055792384183349447811446766400577925026523609425141659050771482199090430937763508308722223500725083083514198669195223934666197798680668554424585374636887441517830395222031293752811328334448158611054767080927231007685335976523242893347050450152759221086538853342438753635277929933889410185874972268824088013186195319495305289963217312195110956810809950197284620648566248245338874091497322282751286194815712384837742991167732955354099478756154885562160156476603842071032883161560705865961313690900282968343233147090913466862450950509167530812119066687835884548260367802134822207483458805129680238537352937525517612040039558505253512267895830077366889308875117800291763529438285463256822447065076172822799618597998244997828821403734350098181337994112386282487306392587774661511756833558708626426240921145535575296707767296869386194386614054950961589947506459127369222450770660650014003926441555243887077745128530037096332663606548501844793230256783971511846157138366328195545456174986792487395286761798688641697463238444982394448002370688711277302582756666231452575111964672246761109097940691236798544247040820419846952665283089596320497798821738583861532952540195256118672677776508355113339693412806604269460506544998467208270489338232030894387116878305851566365732062732061418800809887864987151107133458117487034701335456677184992365131649584231933891305462934291861260850101648238891879720935318514173872305081884296701552711841285079085650544811084256102469478315224757398664302254549350327976382910886274711518108593772919932337374904020147954915894111360019523317178995237163238710157352458437996523350431406059538898014606635885107494759278956166922246327216393856734277658089422790196228796898174197057896137924665855171373382163396677109868355591122068278466239731796298544725086501080394434437256020036409445646957084182504639346922411537172987815086157128749100373888871992703397736187558795558220185778196229164192868125533332951937122409636591893201810422592216491763879905529096742722367020659643450439175327250848760567379445008187756753120503728910196251075491743816073316794762326687744194372275676692110970730275944704269596993421040314779723785228110534480455266691868316905066004466750986585356962076850345721381411066109913034084044310891080500135329953587445380317648345188119595533416010855708899832475531103666454892007436927174697171856844758250912278202116683551685695572690148617669943142528778857377686005555249157642999922802505551530359788463627186367497491298346081276204272936557101197110209250789056099132322870218832147716098873068715551121955537034212217927468203351818806169000799537544552827049550565990349777610822246436777575268413776215512459476613970966916666114082818720966799391650360499693975995326009893499519667203771708565813161312118964618724480004993923975091724174979763844127972997881761542255837077715784654357291544610091220891136705188845873817815245886752216332408508081582000824903476308468709616842081230511182228209639953982286844951709173224724907335861864971636388412704952002062867420221888842897814090904915183604581443448865370374305704218650991122846064956234798230067367994052337120857156757644740708002530730132726774781285922459933825270478905334978725446303814720446465724243862330676385070397128393930516702914791609889950232058724312312706929700401177969057043781950603426483219979245497431125020037789097088589615366593544907851324197034296774997681832530791649438212213661788859357455550724860421932679267452280918244403511958152189956000827588997410383827381758015049140945161379552614016337987564624195120509919374916470032809543684489392005896635248511910495465270630431624808516725457589089764008842387963550720377943789575701480485446399885108847898585901975243745417203443838622454822648685003982971203459843309003045117729108321139851821558103491429175358745771254276193812414160121118839551226243334564481647669702182932924759846164038685076743574841942189100324237170628038155220839829757153636288917195116251659710822528437616881556950950111262503912206825414276190893657035248679228922198176949479124874918697424099799962183091553862077016631759778420665258775087163471718916433544217390980381899973550615156299818495605164662471108755261512059309737411637595414214237930787970828959428685314184368044125061018276137534013630621923085326463760098570589989616761108700306455212426963656165589085649742043317944306496851070729367023066993775672566775006791916473789295864788374705455760347944954401212677289574092560846127986027761990859992765067955166837119587890072842496363771786618405781349418375385806283463896267585874246335204615105134353510136900252486342637238185830122880121382685439728615516534554883446494178569396077832671900615543904603286919309158573034532606108335763098136935582799006343441998352285999898029975315208173489183375525768363290954953801187918639035812843832380361696654556751666882185836708420015160082661244954683097278029874517137531372988204255692118322443655495904650248584251791322937922159389315892614400971391493573366527088344918460141518881892298872329131738699244141986338230358954654197488795911912696113859324849478453028213770729185699624634029215023529502481398695280204439838778935755317155606931473154608890594114338771535233887239642245565387624782046813867165785721335844787093436052873526805354418179492062146633875074199134704985237892420207279752090189900801593460088217929306750401311983567870865854868663551570981284674749825973843166298457498499024113621257311346032781390159621958360209913547528657743049785591665938131709755804655111577972962578376803002520722751551820458381282037623058851265007501310988547389306365381658469335833158430653785861249065944317868653640406904884850845457906109424535830627445815117415381326153117924319754410069341232220417899422803504770373318350283403192300641564127482455798614245966660504879592219289649876098027746359925502388533506871299091334667569224838117674727740152660498681105453008334121305740682376287494505650610481811757845759820556280743160661178387005090848226569175620758071396342111777586341924614731433363387315271425661788355909645819939267431984233949521375566947801032138001789232081292696087235120121078187759372839324582150333878201329020428153656553144453833267362580557057661196126672362978809795048012498564047216074290669558456309601292927544741496869214971828333869335644119622303437588099793227101405120258159293906427064948916055067330734930040058380698615750630246544052905141141117627868245958039741445743382434841745801016364362195272709464419966262105101333368441193075683196287671164774824501609387138368845321267042393059832388503870974549041721536328040658721863975645036098290299228292667597085423513198419524630803611094175491304794341410186905302305342420093377564402602441129827864693429827521872773596601113835973705222692449685850074083074195848299008503110329587669035313518566166717812634655117442195320650161106511070001288816288021422866368917522764399728014193869473186366228890463690587897086117516923614399485720571228558353290677260828947458265477309063561792740048889235385342711594211060796578164041242374456383714841647830051496397429947129156674980155715188687776361092823398030933760559366001927021389219068000953165749604940901069206594496302186786574022521267335250841465328581315687039587026566134759623871871394238622306424903455814633093860165274938837318595460026923866979538653234319788226510125762460270684578020025972200448097698171662529572191827793333166035774942914460284153094628306542068513364374937331833133928278471733530365684838989122178311871140007906394276045090118575615676059929513408147666977268889815166700367853194532364125419148597594572059200214131989540160960442982038334668959733157810113638230572334091468735184495294873539371854639776826983077242943144572886649211165770462913452206931517081498790349491696724823995260031147315530516742650226400981050251421475128486451442286847534595513980654853559035227616676577950405987443724486658274774359600612062075330513806755683093851676382632187871397937857849735312591753975703108474357619666576012439577046720449360844402081304085712816153717870769241767131377411384716995002168835956322980680133659568579307284848205265733189465874848749867951634496739333210677967412416625075189202060207021409703539839945732261837274241183978879782737127349511062903846251175948147728787724151217310899472644272752591356716854458155759252089057237467110163248575656932312678147941754842683413893231882091420780819292135975039372277378965664961468879345842410570511074341837462593917627889563939092532765146364844320218548575003009534458441461623195212479359806697828712277563142303508363776812253461453111760969826048269523151056139602901734004054111053460016401261997733329903644618168069925221289003471855380699505035126593968621979847692313999598961286685186610435249650163907240777807363060357183532829072615816873216005649060172336000214056431521066614107315739477472265741928230160534370776489400769996711914024926294529690642251454122939153428888896241501206575457011823709097177986613540798981791664671885128476984822702189684681725332526758553648665971838041952634533068266184918961977685169867044481256730102040257643607685500058073002949644532067311191639490252952031936508814721417105035023692905891426749003384226900020875056632804567557957437411205491183963657544814877879296102702411549023848301101047025725409974996177691525923456791391018085254454476094774413617200223383319609867270432333796738745851995871981836050570439387945716835893832822932565151390599827391125405833283560969534082014007442593035319378011311981308254366086503167858994669853753629558505507213938986936835007413139816126343687067544636983508492461573409772915586345451630435625220187451182369419938083270438663527743931169989016676104213790100271667779617175861157422608705010189442423987597493440810339751189608097900851108070099482784922584409414492305871863037316277746016530251027251954619509494679136993466780774272805128198646477195959402769919575453295162736675343151603810109836939746908491614462014094320443739065337967251779652726339288337466815982893916605078258112808903598761514374406920903762783883571427078178784150157013344230071464749003640213492118413447927213501915510909599365005147695065570590270692851065513245373382309680270611712609171916774698677881987700617114918237728742650325907873613932690017924884141360276184196914526194040907287565837465270162262695616529696170248645351633991726037374895283497868701980129253921297176943717629649365635426539685294034370404017717089561167596907759151938003564880888104306536655533503317615435939462800254270512606444904096098561295139031721590308857708547782045817057307847649268195333530667624525120067690197249917808315522410249367353123400357080583805530829219886688690483914985876616583587740758614836978251037461529387061676794447197993253946779086122474131719005403677525702566014709356866455074326257504365157690228604078651345548572698618726834122754890840812060402706574554826925200491906361827817539243002134265274788701161876171808266460051290461878984996718628743519566874767380581869127747190761767790677613907054268997850574152903167477994791971913339473178788372397566598100981945755902531063192494376276649722868763470758589382886772501291456543359697111565766472525819950578832055468522766022207538235967578201658413617621561392895505068905551018207585271601050889437159017646918552913653931005514742405752119525506591599344980169601873290255945329159646772401429215582368953551655919132897912740891815475601855694075003880644743961604639065283515092782571014066424414332059857830297865476654098380832207503576336463368941549411827578756641794787418778183035454816130982869795205459633774704900073087835829223114817623723559541633645599378881355130160889872498505248518702216690901089882815870981879753314737283573730462498670755419472576252541185263888256221489128183245588274184331941307800722230068528060904620461520179491629184436594729935464051238686048861809382658174023130579628987988022379287900336648136999280934865095598790373219629268693178121197430058596397243230546366985649310128988397808658289688499343533382644119526249089317180018200884937410673938004042566405891624029139889875745733103500457727479499335580525882749004846485279288191199136949391991659604633489030238501829679461397726797743865491769388394092927367200555285378014934195570695655346452312267678846682577906507453220997411417623078063853742259955029231356562768042265548111510273701795828313490704870090058042772063445202772902969895512422597120728543763050355786221837554484200217958569616308109631521340533511185128889117622424899151560160592881549020798735562163269615549160023405168012388262894077027624154800655125191239073786077234325131425032184613521234200501605067411609862101626056121650891483621361077752912576085898107085436350595003450731559174543976209420093040468829275712854562036209709291352583534999856197806778439897788660543014120713538653301794134384465139530652130237102065507861120763392704381449586952549048318912564545092351746529777973067494461231283052813346884843225672756225399736174655104103548495778398178278527559083637129317896357380447774831967805959485770182061016311302529106722319706892445900266258094852322145290493347521170525288328643626767212493069670519830567875775807813852451554654950725051791008169101960668726176828895162773648908078137880355705148591523409554786362289381368445643155584110703265954626249609668227039619822034373850948147622396555817364777356058194964010125243770734301584842069225684319874829051490249479781089474961690466771231847125110982902769694910946709230040076367821313528175438317401751455729377728005545678163390368027331257645855559582225500946143153401028455784301425876551450472142547461056805333531240932106860596199341933157980826375453570275292848552820244831773808041476439477299219946846114849541697091516124886845859219591046187462942812214976103701825698225934296176057872841465338385651097033916782076213282262500180012004083273577748700310332685369012421712877157965173689890014243673704227369431112352601690814720065424823561974316294064538702669328176932395218338787548436305787066518170620447550771816088086423724442154368021496052608649152196199611868603914507171164307478991657527410837151992817196212883656582140088702814678417897038660367045232404520237041097428289812117478352088845181187018366257311474376134423671986713890672875715655026738598996676564645874986242728208712293386013071389517323099709907326411819385612717030575121564831594975447064453679891908352331602281363459010659585833949608504777832118739046857761911180175620195956815215554200748796412392803938703301083698256852339700897442442958946669862047380775379496674396543006388876334195446055783877083859338271202566962572396370941152893132650539507376254553719427134829448300745877492287329228088418670383115407653803188052536495651610492652424205306103435121471161191604203103987754882525497311724217036980333691237407315772089199732995487241611163466179117831459717944616203825392729464668421940672642646987540031361859766118893097202222627374855331917538879713278808658907311399251399504049831739823863331929022383986218298219713659819430937487635462099808224982377820155779578095778814101778810436314982655551863355741680585184539293591287103114057809614478857513500232729634527026505165597883436455890904253780075148420408816377989642265382427680293340820042552313119210572260768179774253932540844157750723334775776930939935448575538566781392139328279748476777592835426219215425606192276194389214607463008367101763540602785920306420920864106030535299331439790259470578426294634447394607234874096963499260034538013264152487805530808166756103591590693606640261181002201488539274029931904361051950082198763716618703565673443128755202369516980455608718558791824094853209946048325759837657612556093639458353232723838700724920773912098585296713228724667593611163282918528565249030623495687973857628152074877029307780002758832923801137964770623064726384298448872719243786162684661472074914417763045955838238759783165802037328265519573961282137802678504712857696734936205976541436590940514600215301783125613010792522352988926606178479059176814323374185377102033404814392415323323606355973203569502697400068111522591022158471608763407059787722658657199565391967754397303709659695734311366870565423689790879346083773062867869094418649833849323953680096329332058978689033309180853067365692550222896773289305002789100697133168937484769992667569267334466323096114936146961969821674335741157085414662209467791769592352982053252333454307205791696912380850535740522796205209222990154307632542404005752759130218175749615342314931851698146818885619435613046439191797612817194515913404422189322704413090991298784910192254128232880266286095851540152348905784764015756555431862150457319419140916582095410459872150658484459602172851758102130611362782787841249416112817600995372142344400357822152087881472174081984551170830242973330065225733922528933490861351516641262758234105465456013477284747141875105280567000683270884604978527318992543556626292430797834127989366785614246385109870332032118136160211022737580213218563621868780711335371029857309468323313967878887844911121185374553797923881016107178191171641294955943935824278022797637016087688440462651871794975782796137141732860406754585105647833343682898064849806592378149381068232317670830420953833470385204106656619196904322017410264130506754525932871739085096528149442382400583975405778371907867986758261343799700368552357925781509759465986524120820324423462533470472982052973642876142909588149356279965270782814986166812522134390575159586123616778376635516035719451507235533705403301398302548363149516751655777432107235160849393268328544915628339751692554754990664504627449697990031831419305461046958772943288560789920779528847967351723828866453781452552138716312443673030762297237512225236532022513997455178685010717243846070765581107774023766233202125966162416400959593435131361969451051835364432029687178728457874012557876763882028241648050145056837386305863171177349230500053643716080525218626312134324553962978312075309289752660910947928920297114520040422414905751139783459358526764516744238612346168471172407044877790906908615735109178417518888522365781789855061636428186075921573721456381312159561734915596515368546138222637349071520556109754177817103582121864200086063253635445793837634555590521591794500031232781413378970504995945914765013901197616111062851876972167366326254280154524155552527674411756181686525983445264575508529746183210518330255134215317506227229110285605621003986610131097784689799169141054255426762323493888401803754853740089598750023856617634702137224965568650313376341500578748776015979727670600951017407627196289079332280732421432915756903370680111732106246024511432586294531764150375949270479851623752954546791698184507483415656229279486242036024066692265757512481579004526651654360137945124162895536884146987053468418077091617392417835324182025892889534471733731638080782559194702084980840895830461886368005936078740548096250066646458543454218661266759373236326325617805930488150068576055424348199508358164226357547407586049133850777625706074995369672628738440542046031162990348593484686901291473774709803445197440910712835952618401653462167035342911294313735378770300496644419076741093211227318776548577376289712520168921166488748715151849024245287948194743472284862228680176210915162220804209884740446703459672051846663562211205090634588648210231476786264386624973393993695825951681681814119919783972601053601082909246349114984333811614686446599897976493171062956527350312109350970298073688862277584191218018616424073230822898789665729150320365026551451846903582886986817853447803270827408583741193557898759189852334482938395036737996520929794717566877466019134934792328578083022061941689000327464691280604970363334578474142868065735421086847174842868467526469049765204009554208944098658666700761654933306312577975707169098373776445454929055154247324999731968365509409914853478230532712472483702228779392655282671338010383592774358920778540154366537589330396510974713444585127958161007423758640572120266784549466775885253923864736010352799339197465083413907000755573765197088546937395825565659383468049149108204142463887686263573272336958485615156103454373134575352096018397390151369237997690723092752563177524911296428673944607354885886129513089323723600234357162507074689707154920372165077652767510224228889180115464752161374020381168576461445385321590202547087190510999165957383858544751880721522130324013721667926759712770147008013253636047726033856633093462447859933313649455407187465809955809798901832589782179254522582693994584763204489419871814295577163644870868830125904441383466579052511698739407021824052639399741437080630991974222604532539283141283544801987433989163805982986624774993752005753412716581593224114235052707123304030439282044281107485638276966904982458892688518766940177129980447463347279227739065217955476950842483774122451338524689853086330343975184404562186343120259882831198268853826383575594938719807552060469770801402332420648569663941000944409177516632231928592792123974743365423936100264584813686721194450676243727230337870958885032311605879367545948875672549628565526882445634385006654540963737200605542658140890366737316747752527696826181969494035983387791816156216247280543792953397950382224290399973249602754195411451343447752723759884204818227192902062555446695828662043884992923246627682024206963810728630523228660313803841092880172598961079773186953248087763631491372646776480931830208836007320066830865250162962440958491308962465558438964570183513614331038843839650842170631350469523187357860470702385290313309640463787417209839015409702367093048357808223979836586631162952489481514872379006883013672433380192800200877860137288036217167965485646325561388279053891133550826150009690680409707323796050551054514723671889433503367448407122080262241795223492694626924463651249804545489727557339499520309637498401745017394046202616997041756020289507752781373681537912521829573788031204583193999547551899525076022598427517846218355174031161172426428440998659875555556457285839132757524972928713849105228658772940901555797321957065159186673367497315472868488565478565840431276519536362652786233539797823692242835041471437795417098966466137283317597120494907349920676969044912819976664791254642762493109783478258786539763321481104179350884968535231436832856488220974439348321676962375375458517439127504130791329731920439404033968695364581879602546860148562913009285071619356875243954406569119306340377643629322917342167834813261502530091132663296606206561221267023781693597461062376526696314867625214415295456606362944096358362044164660473356590136439494779105101611363507805723609895639201485385154323288896585750316475904213329282915134549465302141415741833364885587307095283348794672618009495181988157590633543729878469948322476772535476206001418473837929310387471686251050876472223129473376273496325162145012998815307716877354010986111602950794029722914258294496728781899494489137551701984686666947501079613668359449897424916647235065623929351967874348908242780063534029853935533256745730272444856485006604923466877610234304606738689966662987734081132423681748301113679161148963710378777155012218191527591037383160404896799355927985658834251124444307023123718639997905413515749211759965192404756547336461569318045927460598491224018409973363321862652749276029310455562350969399443250987384743953689631178268031765087300910909965058300670200035729746712534562570926619091209424327389787637069122779368262845748605030544401818415157710445100259412317292641723045278956834281149530536017217247727563427829303025165380488337771144367584430660157536691265635533757307795896363072551581711034463856009534047336352998519984613326114449627318236663094085543008698368005711023942438843344196396428704413010146662742497264885675915684035097605301205767426411017400375018563522369653187492219016140665624592978567652804170376121700444890966671350276293043579641269518122641073975656364388746709573910310679569752368529468610599904495292341363676004212827463186646553640655427496388925700108054160602026015640546835868270215847850648283099122587034263411763941930836868244543455012436221052137889324493278849787176098209134821112852715525249631216044648527847875599845867404519698857545436554064877468921301647822028302656578915686194261516136884562509730506747965023712208786117609712780917525273326839275172441913458475937808634586549468664375556102036091702594200752020610832555155416718724203879518903052707773324874481053971386698571632053914787211664929426307198090672573287428439115993492003645990618897322125104728312219785093987564195815489907039573890677441381700750437498737210241050994461259583553349293051555627463747027279504337595355230185899098768586656590655175951249443803899622702032542548852102362880919411670837978166669493303158298352469362473324094816129878739465079685759584890934218226739698905544703733993619230241150477112763986571529413808205408873402353948430900147096724376545074387697108066049321509747098394367348215313816780810747944330480106901784907199803456843496340640970962284696238443091054014062931228448913406230313025681788970042434960686301440993063102654744210115216111107278996307817973045383781217450101801021222704914879961104947619230369111192880674873418341558222916003027936008662008962494804889662482893173853794916227209953797113807022532229341260395422849246150060871632260432008975060551288283951491546762760465127544698782414922549412999816298658609988210041144802980434089304365882920907066364347423869865214811274960887717378264695490500614950488424575847095580966097423713788073562402036806636531791740222556578887858073971764332953366670878034347872649470063254081450275581241666322735541258109672320036926163726284621094463424212055922769920677714298781240781482416287707049673694411597479943146404955019120545159538408083671960929113019685278649483386823402600548302323463280314025834606468381751847373270905129786424760736863980930462487773987753289163310315611647706734943937917472960770770761694777621270953909648264904595914407034066107380578297852173745458397018839430626933870976870954743560694151504788248859528859226285692124792889059485227789705144569929479762911620642312672775372827990533414121385378798200273208123952202546255196340415970050819914518558373682503730233011931276168979120549051326323103245618640046935874108980236945584186597223016733705195540556548106602189250405826669753942399506589466667913207962697319884065142566804087246417285741045333759556333208845248668827152868363719943981503550055905719973897253381020043509355743470464970168747783037516741276658974256028081049458756971783571345511284343845484111230933015965399418713889841208005268136452577297660549597557308892077384189604299225876284423943267040940045553807765377994166644601061488643784208715287060058435093386770733650767637714920482012528708533575620348051916956950845974159913967360236096234369728871892499026683331630909768178813800560805879776662819350915755713069473489099356594912710993707007992903514642583156352172907245240125072328454757534126067619027754760376451545515689897187774780991144957847714061267191466512615116592963843811151949697383465000747739813563985864191583159331064296420145054336164190455496757194422323283344666828451514293026542566296350516552883537627301525176747385046748918832591187362865397242890061663116517753006277935850689901451380494634757040950293587694132943748334679530492552030611074102160916082788676572046327046918387968483623569371933042395534066368524820571757673205063120173931700526331690212384298425213302446640614416685240557227923121256804414918473340915904475236796902486241471386005159443307346294476618831210813824632853958359883250925286195520971741466809571691034075795721795080015557020219581799968836179705606646945682548654378575148996067029026289736043597732194263179909389701603219675522803434831736019425145964746390342405535587247417074755729869244116081398855037826146104708070750037073320719560216391676639409254506281449205917396621988906817254429504229078410926436309762192704030579317582656847112609460920567535468572651407653871060360511726053909083450003447887678266114616497987428615713584641429900086749117835818957229510722931287499560776096167553232450685804258269915463582640061595143612284973711857676786804838885705213185053578170198534559307324215456512393307963639986645375363891812001294409215272161680143435304993403282680957439292629585581251629952565711903756716177994029384324167354594725750829509587219255954053605918407809127957831380107837804599861060643139663080760166082778383374725022743875703104863865333689552859552646893393982485295558430581743021894406378446256399258874129852173788543322736393815630464847008106277106013775087169843031775485232868993816932224648478278935455899047438581070154907270317807610363987774685398471779225207064016032600140894930208167977446828884023460917112922080551515705826259372445046913624209892323218224959278674758200529621259528084168342182841431233977842005740000609235008236111033952821497103717219491202112521409532866746488382253159911481525479247598523055971053348903096786973425658519337976187079904020397386854447674054005341081212951470032331247888384468045250131088188235350032870198567771980839422047598593763351533807664773765475899643449792075852943720767757281781722611271639148742890216803045355240941556970428345692098526745364342030350247297041875334293868557938896880173763553907417173942460890361995473294646557968673559316670287775926812410517922942150990845790197480309479157041972405320991938237032180207470481115365543283301887256801918628381771326983379508799870397630096983593253907432139084816478802829498273157433326854190965225240795622960356843176078934272887324837479299049741857785477070278918497136681906294313161064574502960032238516761173291811526208834526417103774794474394712930910241871040763861884287756150652381444027337931729794528955128842622953899758229334692257904982613284587657551512053004412162675904654398591893793601431784189033632564903020146748112345319497234445400595513247540755465323865279731608641852290080484185122126572004880700294445820345063580653144687293424250488872321291521439067197792899515357485919373976862617076250876948220133569385802042555901253886402044673785027559388429959670469633993470133626919661905919394193236648510574977150995011729983532826496289824608090789288641512387866494090106835126578595146700723796608938406440735954752769377946155195966942375290631741481095233939473160496806434443046150504953268222671078881653404637337659250778295434320890364710716154726319857006568760779789572489797195579646086269437097102908191341500812565801121451907935597827113896802994877554747897985951735762394018804575981135333697139884303063106822579337923355833288209305211280733499293565824202646737409810890791642696112211346439012936467290647623671165028982161089538321596287578096101620314192381527586176013559200276414457763242358483267460706481877271277687227205127180350481549378776842272355392367543872167131904552060790999763707032667736028745029819836577846297902033516662556518201258182240884549009212801506432690001700310552690204119371022317665066763814294726376848782651218167839192934580885003257661847210112491726032897394277766897725578426835239555563619248690430149948602983380625786775287455818138137147876190149704762749622586050545029305828084722956048649967112054442367625503154564546537808091644238567271042087269267781574365970837418194865012612488362122554820787614130487546339130023214343529687421570931782945193898670034576301055859213893867782932610344102688636617765496350624338478282961048695999053245132743184722456786973955832667596243064815487396074158739261136428573961565435247454730788321362423363783657546399935744858372100151626236326469721595869472146250852347358774825659414399995668496662279858269260212227110037855627216015284922079779126836020006466507983193690687305856393985868065476728971335534952612124374992289409498941851747231002209381708127283016090997519445827117291586029807486326864436226284457354484563881536280067639346937539976763353176225556035335917415315269872951466618972397825591052042614210429583936666569900357018905551383120887031809777009481036228879446069410746245117347501769773330845918698427365161835237691210000064063959373752719534958533838732273589118590177771218801215402400069273808043813685075147520855895202683690058569729799360643787392316818016156867901151174449527386439477724354123071014360132581277852000444676165869317858288278618201506806634663073352327227664844284322251612572653792074493643867182307412423928022378940309897776552559275774190229188098489388813433708265009082415985752099556877461880241054923307072162606472376003470198007539173485730475207774107751401700013393571484145656800730125558132714230773928109655365961761009165024859472175606955601769336708002243781836374386639855812420981869010694246026004995302486040574037156393656393498946978055941193512689809557179457200645439956769352062804550965587639108960374976498998496894452026336354310057860919977211664537890341019859085182653715281040375628712950725841461659758804268531576973153557320129397641576038250664867628415999675357936350147569836609927448472324715706978955392976808905656388479281985045375192938763235383175605729919699810964717792514927492431145456383582958891948620803756144812235157703761143126459763593476017939823983854176723720265041441142686240017469370775726272567044624973419822582359531173151484240237593050211276045437204073403197297037015321794314414996289257228625978840995905424522296176150035438606607051960012236154126883008252965742011595936982589046862661193646618101741636351962378009931847792309096035900460915797946736405881219986712159633286144616825079455805750831408942031800533046601625318515774224391862637427331689068537945073574325301037281575374958262775886176978002706457267215085203261781066007941593373090503417512259900325553140768135378995108681104066626690862329194004531612089032552571586378914474641746973638144986329937149874801610397512775554613856791840820816511791658465487141823391086271133615386824110161948893959755650999871277087318700257127195563515425578268136170730814623080985626088698284629250889326307109841920834310028778190499755803804421558982462507268121665704039260844564673600426366000337615485264241478843971147337126804606657669323672417832798713339943899646460860620742302591587119935554246987452291583344637938545526239569777022381877379713397143709268407862548236484957422403398527580903264919761478101135018094213895766862263195335271271138297258278286788683657443028379214466857699723959485550734845065716895924901304364345680646322457056820115102646489705948259690399849060727767334555477404618734751327521663197758948394597635264743619177475178715939996620241280237511476225613627008608830507204390531274432707830346606378640647972662838995305481460975432220074696582356120361461830580786848444024985158166976351397274672447289870291634134694268757069075891197931069753975732771252741354491685117408234261443271310858187388338204698480980638277139167396093071512405820963840939674692223081636282385743016077447700767694998498323907269597819553286827687235809655385878918638418696460397348474943391453505344386782492042004730879110050694602223995769019491561000555028524264468071018271868294237965523671259128916948843234038276397516164890699694648278322032492121706623273982359241385754961573122900088916469311776976238337853123267010923118403723504274401377792258036002165369008260312380137546787324787107749594587990864031119366937979125125884829296996962728027921803785565295253416656664448245251928058223252838529656228788378077104359894606047743234065328550997969840256165837436021819272854513209324344727299361098451087395469914493614318705584287308277986092714501109149220100291372432293075637792369671457502124353290385930666839021201905848683213621108402735376353398766423561980406379628328764485415869346923046444001121673168228876409287056535012821910360376887568554758702594574991606401455479885086776387237978941285385340120663775968255275078268703513320233922598319543770876509844966256140023734385028497993968432223163708057181512101248084463294163188585694181069246315933275006408692831248003166613321733934446950859010909815215158965970957634210683519961343730007029708849657305630049764541057028196859515724067521096620782782876904861102983292971937340017068065261571011664045739643166550620823323956096141161314348249709912073254272681933055397717099613467224507340170098037491178004523119342597116091607601046481104894922609066386082696585819782647852136192193869535042347431915276054643268372372362261333590750707447239580480108655817459223729708519207511520207640176338807403806133417640868078279428218415606466096811826566270509111335399402881250615151321149479206792445201079620238776779653682527606290300564469408682022510247996600262439538586799338850147906796617785805978442196123352334548623510122057133053699906803570218273110156452222353881620752496373508030251904410977596203165931655068057507134189265084289328010837953199092172992340103854780114606296450940699735014932305533688303584954867381189501105570423596057988637867710824742815884148290594411492250585994339269790880419600455156202601248735772711505173377273277550293386323610519104899460695374623156525724119457882758369535021499571888506171469010295948486483308532553698597999902089238400628775667284666736167579637646164981484147932801417454441763116091805272984099354137463378211372477596594968082380408531084271949715870020998058901733125027007094100561529091773421597430766513566793308553333872079059488025679853525898855645503884875454472846479203162671760502072177746050433329764246383692029334478458453033147171636523758746203881568565678219368319502947049383861391043601225004479121086820001862186199112851940996684822746594243727236074902812963361673579240917846689727516348048768242279172856017493288358344255861731206009775129647985685297359637067051224487174679376335417291589872142695958152984236993095755370113517122140081873655601296664892873155519480608657664960687725015492818276251260668759222908196348166288760449805242824523960896027117611318643403982397550162857844618335061034275847615839063813431182166241590555729549934497960569680524427526093944076637884430428841536552911394279565670959685554886149494414757126711648843353092875738975411222092277286279093731559644772612187806768107508953198530730721230945427775160507783392729818184978979391123876350616035290893072139954807726402558200334465225242924503045744021582967510926922520327661665433862195410913853608965639772855097803975014445133282829319166360535905185675115836878162118135260059274486684389226686329186211817088243222092875733656936879697595613890981506281774123683472613743386302859222722069359663838205775873029086747699769992369571712830017043391700988993249654429876745271194700224692396860408955293246998938130652027352998748831451798312859960414655231738174386262909974945353140839510435139662948968261381110119418360200811274926957650707186253668577166442509291743761172827654628869117007194279527705181281310993584484192613500717020192382555169084280734181067272214434531899139853299750863070058005309996345125637907098124052661806133286577756017212821023415671373665875481025286490827460150997687521928975079277515473613178094431704351596352331081298677267258841890041785657353675793096080976441540248215489456412043605080051682691877550233185503432367020305056922486896219356644739623844528295548524636316898053158799194410432344330362810948010139002341823924671968566183509674758465160348051119046077474049760538007919275792401152701703838294414856231613034909412363293765863405786274177850673752939069695332441270293441452677548167880983587749057738741790675196737155603684218101049702115687753932106198784640227677589212567728802906316953214289852547579500921980574565681121993548999312295546957121458968440416501763038896215783948986552796554442209663918225940357112760903752377755096210630457994967183957127558753791153345013344588892504354374992491566223522948176580536904131671984699251566254151658945125341369835553786868285592755425451232187053758849450266499474935561908106339588508213063479435647480965079819419512579590575725009295084516581950850447455067297223941260273045114631159755452499411814239512741492699973751563637169576571256615376063105327075271200397809333768943110575447981380602137890455871161629050791893194242179437381090007773180746590465921993550598257320696039735541212709156842228134922455392573106511793124241185231464922175662622440972837852167552255685658877930915339584465602626843592909238476691477730135049738109308814172954178730518084592340718826690879408820122079027971299268734561313316376376419897079041275076888321542927964797611747496225204616899320080745962765092221312888309447523264493391771084120574686880841562657187241117239299391952502846742378489299656771275854894900482384792969703263700110051410315363107170606166018084026253738262520621263193900323685221318586514644206301832438985067140690072232050453939350452655523604907204837399767530440904362917805438771642506048691366142329576746075825879859051285555024534691497748083146148298099281173919133719835189408456979510691473150965361576981623609944998895907093894268350913504032985266868147760756535229017145713312266662411271425856296809530452820140856503621051530525857386073614485419100282351973115353609081657308091747380464621260233285724644274241308062449026715774238653217163862784523507579949622796261074423070276230638392429576879213711488750156824410940727971506960282474100790545254226022282265992738483785567796086727894597708196393800954835007364964942177691559851895824796056514613862791945368088300626278137693336081212502980856958121760809246554824625564850261220947809784894084331407647963250256299982271119636415723193158220952883691832778004621876038064317630862260313056259156837534858187147480541990126999156351133217610499460896063431299792351882355286577926094799774681406615618305444838536035935196676886538791350259194653117690440001044082545656499129244912202496463923423793162126806407207476811187400763611333741156467589256244162776183217499572501169519941394700880302447442985609219620753138375966125801587905113784513872744314933172044889965936944862006286994180771807988969045433597772782080909711579417457386442963096831156624342661226988866672771160307734883622660959567523545686151891151742275609419009937416827342866980957898881115444374147925027574977882263753776137967467771943452527800617234050844867014764898895042701475283693682854234579766367226205813836437725386617496632053812295127759601350319091559367278714547288530752961125860210632128693225430392444403045003718440146215287392944019345047079411138016519517604631625626091316386409772180833864887396264515734673739845900074277335537222870447166237189197707790079152781729015026633080387707750186385489104726642682079937946581638420290513551426758021495253045243707821340588522081012477712314006399615658763674123019217663645262987048184288046167748754229038903231534317805296794985854960663737468495750752483771393718761710056928671360242617745215004043036453600075161935026705818790029607203899130509348115783458226190725154495601815248039922478578298988671131470490294327327832803708450469421861121342533839754965401807490994480271983224437789822410460377653651125841398491478972297791527172904981759470317056844279561170233585401128136375225069927229351722051380850728492540363049665280268890355151233551979930285668258277865811402155332393446598125194702938198727437214032878619168316305698495247298277236753016715621345645393540573603423519689957277180334946416115716033152765709583480713192671757973052464100370919053700625287893492758571120147446769822889605025225780949049669106086541861139253451266543259712108271102619388032660404308320987124756544434998163542304345157418574474692586945935429587659958199716676221261642850938808839941807908164279828293728398851021774464142395970873002691666795761245296862179505925040656029055086912007239322165116236254268099760018144823294219716874307976566326277241864364267169961292594090119371170205830762949256803352429417278784810699468174633516367294902385460914783786920658382178438758829824157609586978466837197327963203346910451792486188825159708922602560635071195733459391811663712710462839580841675000638414620307634307791356138096988602108211305517368409295807376658113234512931899787921662843648541661313969834510181244376719408515274281233434606493141057466881836763064603432002187955615817955102909540266011963283738921551321950637854419259664812405092187968253138520908442558168425162593256558565179844810113089532832961832939911870689248228920162171239063799571988946551800177961708388196626069997368449540155332042477255809591692831290866201437185950636057846114665919781408114668569757859406930490268103011834029352680499875675145929005229225415652296868773794056352249430175045366390383160720946861193226336086357922288897387915301557802876342423121956933154964182900820822205842548376172453300798153006891316425470713569305430161690556643488161479349421962928151869597216381583531520096097654196096705979725827664760840457580475127221393696820299060243372846074633731529374629397008934919339419564788705585126190452645789477022366981109807600597734587758484387822691299663581007900551069945119291001821368622007417414511036154432075236389169188219004022469846037540489547585412431838763745591185664676564888223030702638609157148741554741805180711555480019957901479299774279991978315193942088997643119586549291921427950582269490945402974869936461788506293443322984015897779325269884274946736786436752231469189277839770078783368557641339673115201903945696773884038415174547193883972168962761812344072625288933723366698727089553383597835000725727672827316235304794244014627271771556339278760961617665153615580846180415792000638958020564655404272778335010822267912025358059136850938011385185880562892234848833018869735984034928281856514766088370235838860911344051463962869364946661108367734383565724307059181101090026918401574242324119793410918074444496215882005396818425019163143428241387567722360557638518190756233889974129971914406188646434169400579275812264250840531822263806399244222015780000529314602125598329442652182794841130116530709792064089368234878754023868819216290172730316741343965625794631297446640182045897589181625420969865241238339843775388677368216937985181133628940605726669581654929489177561432602560636846726694340321331147288329201170140833024823526739886567865754107016978074050567194588447134136666212325148208600748877437694263500867753986793536625544660624169456911082882550890175831071577408601998402541846062776361290555944748142503230896018388694376918073560590280387119750094706227999622720043017698844714871950471315893716430929301801520882461738938663434994831692897203274259961755626170582230837623409846840946863680598623889582962613479120885162160584655759112058596460300020055374672014430103697864569182352460387910593858032336959807543573228344835692723078347102450030987208707193313978924902923742492829859971355089717253520393829978873713582014280941404952957044446898242733450280896880547349280882761136383175656486981898068101091949735328629687715735412505341374869180056541773010928425633097176172306581509369219654877471803187848411265696276714368158073944311899864002074412903112215255925968093114555411325791054368308173530402441450590820235985118756507704230046715712647431387595909128917252100614664977966243779560309918111626539853566086104061700266825598029597653020193836091208824575938984143918438280674554590503668829480698187947048919332439714217709754756872979321385401753522807577976620165269197204304306646644781511027217552306535505028370062070583162469997699660179373038164446593292870185664809403066848656085337730843694744090927768763741444877811212173280424867974053003086461313245903864475474235922937526827423386983263578533318781128555862372950154595823857379907161649957947007169614311545705006551987330505489113402579821105911484576826559734394848093068455821830956908358770743346479248031209157228904462518995544094233039921051585229261376529918462584441593150392390342779166119021387257773548073558515047228967377035332848032739230661592588794553530814321815949982105188408996389686077348864210779962555839471552394730942315856431312529244202770278591537244661086632748180671290089760875310372156035871014376649327448996791126882949050252206963410938815556471753178622121951488859289477946629840337710342628728957460432916341081545296687930918666290771494791255723155999612812577958507572051603773727923687554457283557109167070178087352044250947093844162437733783600029037612826849001496813776669357365728371939001241681423121692757558780188018937033880580184503179758886403460348142281066797376926696390673582020061028735318125312543989686515653814106680461619309652748485404220451623096476022707381404767345605053085333982325911735740971393625000080661962346481651215497630628030444057515541641682438907570652231774921755272584226112732983912801509045638347293139021552789113094080571779615736950093606021457782431021764730722618746595348150502762039820050093589860266298598878873091074746128050698005106240733790903773647979874440091099732079329459580613454651822095505477119098777131047631366390037735914187066801871715194228183231207871511151592054583830735878483387524198799009330089239442439591435879766185258381260254566229360254802975069865706421165924559940376545161863309016212986963311317769767319072242524488523853270714955932607449960462440933303429775709349892797175259870823581000499747691421794646288247722237713501428905218689796603890821883969029163763353094000346777550589940471062768948398839680010965436656151995091432760366738523233199151218973992199923062461619983503566346568001686248244623008932495504689122481994542307587851446601714689902601115369397038161817630058373179440315661437555376099314702159495133072633092400985581335918707809346066493733143704313445723246963771838107247550291797784084729914459281714679510207280691122071718562686135454164517123989543154449652238587343217638822009299909210903907240844145642693882290923740651647852883583335805023988204102067495410997208147426026906247515807771157254707639149662504416752767868368127699048535604545010927401247696055604023431390476280255654888647522775403652993160663633887592890127984440208993211112986992470719474617112352072579801713733496245831309698495204327475829095066184492269529356287045459780238222210986180763578653022002784523751229372834351381975444729798154854140227197015885852688243874114319784368007492969642578687972181594279139959960298166053386121659698537799161421871570166642393689823910875049396622046629448200895467129012930068539217136079408206701115985354962044478173741597755108559265345822712250202158287856552693608851986725048546762293485208253340781962385366891089027086296122764609835932007905285857888827892414255579372154763881679635043353689154547474537536985328573410712611303831261658329468877064440626128366047585383086477444158388818017557743314091017247269596806895293973241804449999888421880138957719521153812042773197614536044460130109008761973848482659823517688136048719431152994829893852918268313743714654730066898390184477878685547404068779425314642502472105176882487088658810866857830208693293876331977837901590809195573774523103561852330044899606460767976369837187914206054866301635122205451964294486645940889484759141069089567169791417706305424821092898305276453768161617967873546111529303779834315171933276896398779332785141868824800491689211537183750951456899391575432924244464220777720299304749119747115291518165559542582756172245468855942368808687727689248469457537429536823333244768075866744530284917030000967609359118007681631811816069628538287048705951222703845362123035541535436209495686430863668244355662050112996455374387841163819350903774083369038959701931138378987726473303936305644411028574996275447386662307132800595126022536175395129084274164748560593460177496170238460666656706828222879212434063729610627501335379130586584123086111921493591018779686930547586254873302989175243736371193769579111641367583017232290918370003379143582189647475559928452450174513682504525514503186060428944017534216219028652670114492891927182852931738351412327835199915549121942528058300747097756208095464221036486493257389709940436270478143721471795198522664162338660967692471738388773086585571421038769856180143407029585960910410740761141184332812335268409583009512424673633185095743306545223878324561537059975322457724641127272897447305658021974332475079481444365045428279098633708371035637717137156161018855403832977365290204403190629652048252614342397736455739755094981471119412801936268057975837108990400040600988563299605828160805218114399378474775195057180375709070817997013904518299388495568233218918946329057200222194858613365643939496674577546507988104450223953581101511518993228156233630593826726923536442372714782064900350664449227510843509004638303405577108911727357373593550502327252107584131604489550597436701496497963670534661128760104142367302523797267024747689747763521868959639985493203176526344019709599076561183665737592941153166266949756641981969217120637368180972131518467209148138588223193396185256528899554539283983477502847651764615656759581331395611370973283493636741380839952862201927187828380272455983858239248375747792843262827390314037705942096071331975097058444477708872941093873315455041114939587129405423459911797607852171239388480623241806223246151759032906191123549866273775504028244237329288430386815003864616933162229573632861351377875641700091318335013364437916316867730245362336469228765821523038116433390593340646455131038722900419160135821659087905199079839130589516013339796154336151642025468528565440634403587234482679151000559904398779756850067804642445685246454337204699818018331201882645328280668458556124754631785315861789057643792399386287588340042529274010009252656515455069115270045383545736787904040478568060190715914875160685110263290679300596424851868903792156152752628765363614718733798995246351770513422023900660102058941699870967849041378814834762074084890834008310476593300790292101012766264869123645924825269184151944364078476227391978035424257659082788095982567467872321928255823887724061936471347049738344735968657681943927637231744519268214345242416337317721119228871195120373795994040760579080650091472590891847934698106713182501653405231924275933188396222505247836598767153714757530121106176066783493442684709590248446655422817160229867114577285974052883578161887512823305207302256470805459756636679797668720471819388595863381481676469530153330160507258277489148956425351137872266926936660711405723699313389415644739352654900647740178312302750021459701935122517949180358153700675725711895047857659646061486446298380999294063825702981100694292471061645611681088067778214039756985245505298889245077493754697688324534491100068823932347257192188614178545936988445162772088225803594015597027456007969249105986201473479776396277713657257395238859975765918964826714897208780951999806634332217239360693595620511969974197808738287674828298014859750829324133511763281289461417970673481226665301574761900418716148540956180575720885888589335530930460151753750172547330245743840200989324060799492774524287969646854856828625464964788468824558135447411438334184645438124796553455097098043816706138170209567581482177679931153485210883727034257922733527294929807646394089488097244439928161670304631918295027896869798035508657879975645921090188751245209534718374308224490964711132162005934674732032589699134662864319071867346307662039104463351721623418115618050781314869841202605736102358281187571887342075785274316004947288856212527923216544673157601419616490352823354304334100708477592068224914275505401872003125157710344814466484001128503436861572647410816441845134587017602965285286036349506969826124289734936386229740460900610472620091342623923871555718248244655619574105716483024632222602087476430688904258626864630122161741966321165314367589153421091080194402480489640542526270965515770873856699124773864185515628600180671110273286601968835032348359081992180613305964714301757336762056960249332158742501342441427049876291215677356317102005618532846444515572290673425665875870670550773445349999012093198896795121288153633695611436103161890503501402293187375197401606594559709722491875393071763439568652525269736236625214370730879940341773940698166062819737866919170039147367928841646450893076146408946464318365340811302198556784872745757387423852714561362761552465558877766389308760378891378074273777638104545948579099842084169652593740121403644927113346943260220676315369384862100576720508216589993822210046811978809501909447753910087494122392792627224580627622858983686108539017452736245724727773279781862931686336900173789737464971029495996078441457984609462281594924485948952087197764305008424206510520621998734687096818742429861858096398348836078384872802205260412426928737930864750749405702885467729096485203371159804508736797700841577940268386633350977463010112586558129330442508323055189056714472888237177705254081290663117731241997933481730270179585056399261013343071023083153610258200214313982021242404970338599892495909828202069433227464860630944521512145831147079431559219137242844393496556872153913864205922563741073763947762804057100468771966018716556633286884821876654451670075590432688692723190678923446302082110224565012021392118156289860463742046980774761086224419751599304425217072486543630515838278440741519071230053186841235367085972947121613763004580046811720001894336351696271294383702010016496318939046320374090395538421250036747410572201693028315505437293122609637989276771815796945470308694809833862306263818292381926705666627645275773463742692981181319808041025339734784440732243049346659293023543536224406933381022055758522130519473423561559873214713999016043473465774907738626955151015652294498907821135689645439509999422919902787652952869240650267178913050828823536341155255487862577053308619350776101311091636783913732466766929896855664782483432701304181841787217990120179500011267734024008135390920473915413396903570489034240828170123101361464272239565004385316507614660370711619909465768806217048599048946528916826374255133727447089220381147990172351749335554940537499487240495456070902568906606551046162786707814962670106792337281001126228170383146169134884512361366272667163737647210168766774942139637791569778617884125010572774357473382472392641138390751963474247342315894287453954734822639454622733914712082138546386546827466513289196564571904165780352879314316772315285464041741635493203807961915430034839410324882418619537204000905597487340613968471152044831542990850903113327313187276838814433722295466062749183339970394156175992632997374329594110910869306275095695447727937943317239528450459661365887611751413882933200708141251218500836268268399638504421787089611974349364682633707337815225269534021331421704649343799199187715741637818836461904987530110316768914937406930640104941083425981921946249072015099478639768136184409995258858585639472703218794366215502130573106095736251883117080235690966457333767279985464535675557331274720799574454961653001001539452909561025445288080101208344596885527862748818587745996297853578631205605651923587766102691514820220189212397745121262291255068705881174189313917137693129078039616433999269267018522663359231269160163162854686915266004752120468254446226675567231481531383372295759189959432875775280792715273118701691607051223934371728065905387993810662065181630710476304686412143287702412882541914586423568473109974378393145403681713804103972719564770564747733768531549126320828596789538303667338445196111624194135840389101618933525160209776817738233874994774009767933701737451481481850714885497424330975575597251514884554756867109390403967553109720832014782693001063595586791515769020514564609535680814817129185176245978845789880120703876162631844930391748892022774049899504548502940942781515012279804846350819700506285712089760520594858839385285757855931508299709201734307152264727377459734952891663661020161617099052148090560541449557508214794619069260911854036407730571780040422820024993776117313787187856728902152783623454685878520732346188997844741655630281822511343978999059378218072055287040576061306145810516355096147372178613847295970303275413810104667514702172906368523150227310856930986245515213362391177391854758676500140360099894955301304786120524597061092575477925960205863399530925855847190500708347546728948816071459553747932882696514898386979561783524304323253759021401837832553709985170408569984127509559759918026622395617392081335056008221082733343089436414659483405791011488807533859072104214490675208529751359214780709610979869217134995558204670561999088841856678139434515152242614434984193699899072298247444499448235754952669675157958852898298590428073020087328317130987105433737673007551557705352439815452901429062448291137614302082177023549010157348693078671313783520851404167121578410236578949971871025358025839883167951859359917269046833137567602788344848867164987704023357353100874209216047454705314056834488815541029210293410760964869638639945994940585837027145612891286060782639549774979239622059248733257101031845489094557991877075718472118573840475167335889633374735204951267933846761921765884264103049793874034940113547961810107291708329333526140256434014963835559058727013858418482898521927714361142997000560810909711114659667304492719100006704137375943469183783571840810256920880534542695504808739188838789584202254106863473156880648746296583344240023594608500105098388117900298258552200443166443774634456305883103870484623497305026540129669191880666282240274609065766079629510770955417194324706441375530202156118856893556834954546113037485734238162887530523851150256978878489963293558302794944251484258259159523815426779104865474760460552295739900484161858708194951831818414679714922290982806157508974389438334593145694731092792738042597987885190022780173558249656120927049575262134445619437064470726241734623538773339649435085026079293779020110791025567863716977997392477155566725536710449979893349258421606225563414495203444423358589959419024330950407756145955412312655809791225032683494083875569761763417354530790505252250638380243269464064327687897731304196288020005234370179419889623270708945415514631280632113874947691983152174774158962065887659978860560233885829557332044395233350699206369525732064671963633845438574019566874058382606886093836279910586085412279354310912243225874971241195466927703534755222256773316347620140842284590080421749725599566492390457532391981211910331676208162246043379277648911066344097398293599472909680709647187341146453197163435416496911480281743339657479288727107213351522835218147750130782366164804902427130097186889540424384863900203872573384867182370305948199371498978221662244370942218663521246166388767618198058300512985137903004630010629468870713149282378259886028660259860206792289980569679743133721657277835992065508967972998109237987594580577404090234167016019185567631303447941873296973636574235114414493432271761105351022445525670867745128695950444520924067033917546103277132106236749269816476086919747903771203938338599185521495887068288984319332633174000902079665345707934678691293780110238746496627572056288376094973819459525900762790508746252796060116310167562674062360369650951266343539464116656433947225376383336143453408103038904902323459680667903428331390668494176965089886941112795023539143524698643320868354707378328374775280573927895858886876945529326649718301539989560552551195057871783605406136820350653462613404393010361757686263649538456652924848595252728330003775378888705731850770188233231379583237870677326048376428270620090418154973495900443639220178793243635908823751512562451262179172481794517359157568150129152091350052653526101049921516557002344290104973661501661031180264137582216757958605061573543436101340785750735182482382702627163357574670191429295983539630861934453511690803245147255205622345655480434612690826880768242397750735457808983826811559565571116356668110163521211646062387804066149856430043768656175120507473752465610032847343840250254939209379984033965069692349054035614483913465437024710463891321813045006767820645122918253359933272514228230470218825096858745889062092137970579696618921331431521265639390017682227290351698491068805579686121237428886532347601159913412326774732467879460807558010658858026634098768030447466070481829447377500619994464110486130647553586226569323780974753768055198327801447657559126645171859403466687878229152562387722850426885708039487559768328889389704455176863636735897609227073910120586569101153221929504810195472116994232224483000272541095984355121168255718463880908378118421857586251230813039270606496844449081702226318953336965014060952659919700190338072695997015429871673204613886113537729375741007615757972278570901307581578499476767848255251189720963664046414595290319967515664943070336888700161107545014076883608178649761553190743496174700586934092962479039916630633464136776474889632491441698748335891627611396156661038161091247581698168844597193800384043834304594467451703699774442127956948200801992230235656992979696263678501251926725497344627503719794525461841706650093024819099801188534596047226809719387973675923560977267368744476648976953953694670647259243575361599561196200481549186170710623740600022324697532282582502308387136584189043205522616372065030743294114478496119157032824433947111118766426294691382775991895716181498630758848427827325591389460711042976756964884023792284058905208541355634486927452466278611870071690220299921018384619557380637882636845512850570332155548219609773499882829821224082416501273048730314670478154132817025369783231138598747970368971006095101598025214183193335608063212523940432690822380969065129881817393223640313521225114182719501722535863267973632477331510274679212130548639003326721192634200099507440168693815925832773350915527044566646178496887012102969495967589154091898764706037572267437991889864928688326779797003228359845742776442533172803173060109420930515753072831183557624731333597009969376979291413752147751572620439333784746329055179578124190702627077817101339875750244560420926192046424072213214152774669005536045212284347766760080729746810364884308138762630682473111767437203402839783941365336793551540477234158734602571189480699029868832039201052477626342308125156491956062489924466065884754843529322349931546810366267157467235960870526562386128404988649720192397368240021182321766513168314005513434888945985278001075033909221197355649862102629021254407015203698679977961500780842811418449031556824142346825671057422760508167736163370405213372408001294556641578923462661380406395550183085764182499690945262099974909510124883041034679119611111115942161321240463801645874667847583381700508717134387691759816937400779197881511691103381738876376661642414862758875143462200443843426932171853935819001214425715711516615558735750022728653583179720164111956690836692015525924729227689854359021419420309252093820795540081528736968951343926573140094259558068731023336272675593606142777577621815253734465809850484088900719661176292507748271676597823268673037923316679197803165397538180558243424989630690163758611288608618226772052274914845533537739501483959411683142129935264893916052743210017025174274966897025692937194792875550142965492647457171314622243684722673264023190231506827749114287272869865789766278153488873398692458364127445340222417047909874649998666821779201955587435035352595242599165235397762349121197532963249602045499806445811186071492096347947486621272311490234780194896724876057336712469113280105138396616140926734523597235150160196623268809764558376061374421373353778616291760165015712306758994781210149777221477598280251223086074221801278837558981913240689288166520488667514388628198592534267222440508012981010850626830484570002735527727442632160033434729873934056639706770162419101368634526197738813981282307966385311528589447110028396660747331685789134141770770177320940226556584211091851423269853133530887204910120053267349606155596119474536496062828054678692756771799895907676593566793639487278215751271262900826294996867694157899722451552274138841338984338221563994988847557651102951301693296372134102813836676496443297951400395580453192586229727994353942512777546614202868031315659591202643606731121169317167294746569965734850589177311795209511494158068747253472285750623154194757704068151325339488398056219014376908591653442696192557356949109155703379139100945243413116696568551905755100104867361147015008607270812535667840115273516547939764731071008074027988619638105560490639621668621861180246582770301861097117205834663699970139107622506650604337264454141997240819992395445179886283059576866856993053855897870077846141396696970169042040455755848958517598086974757717945650311131326254916935792166849275044132602612094560375966131390109791085686247261537790481227586927218148720794616526624191172202188542858656393690084246898004848193748997505493203484565477935779017023372469213173931481938988138067977133743800629089833278101849697681827852476839797846639699255056335702353550051883657206619649267155881055270722876152241150421819715368594956479762403111860542720119258582357031113395089607764046453211316736791237464846604964139879463134443167169417360602656074918997989773181067115998695306931577309579679352387114869209687374987850179008960883999792777725541244661277779949793885836375303824003973967045833653771612878151073273545337898196217093765160309946745531636397164710471212725574166946968752431611106108569977625959305912537299138687427247467615567409766765190962364118018651261355112408327043036381740772831469069428967369384448799179673596889074727274663010351706834197890554395994468520348767541125342875435588551204693154101668206180598605165978408420080852266586527307932918116479310589609904853703599124432372668528334356278801329451518061666264809673562111899193591364308219924340201047517873353254847388811918250505535365451952099829173770182649711222710487592681202421087917769980357095458065071774163235772536772964870944387126971146702962388774691302884491567339518749540175325478656271687227376512099024751109932630958840295195314200213804784214506058971914885410060400921804343640774055018955019249253263843872096881701759355958465792112969972493375631359416317147747988447001041308414465672703570949119200967489793620166369083510793188414175464765765042439638575406118275584713574771613417279341215612485156244877673088713243151245828354565378387382971575116834070167099088103255661931044792395293206423530692601857276005747164083581915179698038137605905032678411728440785870711992995686683736709829957674999916150416812699276402244703355532724576991275267540815472147112966277642211154045105817524747069963549400294286490620954538139008508915946982415213627244581718792345783159675808765161593638021441484284377054459747893633165124607305791462569708713919289484823048571955979978478991332429727735132075300552356499662773137355402422138288196728249729126084791222474232915378861532954176895378209165476397756077160262911390632925364887516416109370047594199808086597042923765261843121873020447167235458101377179649874243280366996263947168516275318307969680384340051274712582136322304501403124342729575593842758617685777850309801362778819012369257294360060604133462857567751105424119432700137449153903023463626164253871675947605620275019736836833100642284020591697185046748966208984218025483852257750582171417597040231150552353889691429206392502717980441270487941519019694779350562234523815004013094199526748526593527653540254919108209353944068744254057086021137547717942558739162390776877072095466332218068155141387371553001503241242901427040562461245304762394676724483459468436453533871408057065584500611273562464967691991283572972334721587591853941271442261839932764869904180867637356845728595345949768927173463765150039431305749718776594733769864281151836021370829521646864717244625614882089131888425510196860813591670800361212174704403227039576607832021602760166663565757713672473425833635004936574007716230870813224690392891573234558282210003456457476058240379533395454289597135009099780465871842408770278716125459427948611374013512990538510522078075105751061669802891054991660453880292823934252314733233779457684986885436910756499167467315467409916861851891809854103858107682206892476242621710728383511465734187382402405591924870655327152792939496902841344319118753469882109252724331018725719910331473336458785400050677151241823273995003859857954619593193241604264894778476216493943838222588905502197472456706936813918857233923604606751951917307253199431675347694579488484635312695149724233549938352557278744845173529316678881878273088892064443852598314826130442057855287265261040946418879286593880142866379762857193506720728393385618216100781603687997202156604889186885263674718016912747806821379598006384501231757629205453902254963852910276545811575647004558116679077119636947008634008399770119146538193206275268758247325201155938261596910995494156204115054030306575009881120892900514218593282604159875112642021267906985608261893236065967599786910361725806357550978462183093691309469293434071935925497435895697773937813464436183790577767706826878223420005132910277346560405259552213118821368971528421719485873911787769639963225841429037915246072972714573255921638804982073735016031018777732640977621159021877233236695672991443887394013203234303102548697072037888842277996940434254030808023135887605468362419868783049475960121329146610815548813300394226317862738032609112280972251297883226402828901479935403882510880679393162251914748023243832547515278335985069562842763929244064712579940259231603730809846305735639151842597151805126821839882989695371881621102669497151555802305974465233957214640810970518754035621626291449625674603380190502068033153009136402051607972305650852027472584998001653047362327636697730371464454163576264764990374590811800782093893752269713581428551399396503889234300246526946098706351950240663818518058964685518934905398621034231184167938995681119810333154318947210802080065843740791636770898556467411934373814452583795969378113087512125961585481038810080630102809269981157869750713921547426926050296612219584200608789578043542797742945097111993706267953254837759245597545310100825359410140121176641309451120827036534807321261992505356814353638796742943458818529380788053215366231860944885806519939639093782020344643291595058506097338902967965272904612306263384696160161173117647788702073131557325598057809552304132997248245620589127514556913399889735696625077719765865335336594531179970444598560888687678483607811210155409911928442288330158088659951408054966671804606066211042346696448646485663806608719432136277124892365832556448290737321917530962466775330353580802601007970478105682469378333317260589433766971251754952865436695537938491186088528672390651319942359543699668268652606890626009211568921908035506856242132637868561747507093522441504220744025695223686141768461649084179492794066998723571508067369425138056789688565733692971665165868831907490063749919090463948317414508720824709292392742538005704152748781511051079500600264658748270862220912717254204411141100178567308337999047271983024010525728799237506571677241115429245717114925431170412518617018252255224026584341402202266342284445590528525219623910876320105018945483525141113518754908552227005517728872283264653802516217289180836458404511189762616886573085531862552723920391217264968799148745578145832637024617892550950703656871107480482166534089547466141854725404740231551621892954046568442137354937046367122731579368837361658273060617780972015212857115495620270670726583969035684566488643201151120958999054944120937935370153083154479588695543242010552419663347202861986924921364450322615630645207491701529548285303231944675866706867917323277061931464183301189167431392719724971703795126968203553013243408109546844579563845582593699744935510671082912827672180741332661060829699684945302691074583456518695655882799928496914246914931535275408904241121326562198838106351608724935072813548397288347896930839606302088533226839268906044316826089725491291033842072264997168138478991143080934202498362230982137457395712900735446566319132507453682215335320579678812260387582435784621910105258200374470127523578360647176164971435083479047992658709279018383339882274323553211096241222246952769476546215493481067980028764409240092254322825977654606098553724248082856238116356159735176423122838538052528783777112947972346660508739728392896560041028908476672141037631621103078730706870663772251666463473221062308979701495396100495088406155579356857560196876404915229254615164208163993236692124693498283608030272139915702913001293368577833041049102106948693302119100163922407526586609412272535717984419187272234969055463503426982187516403184905173979750261193537227979177618258374825011709299320257818460586565000501139199061690729084678314011688531452213805149528497204203264930784618970522985033521350356332346786298070472326803065216343671136433751233065697391851839966525287727772580641456955865225589211367475072798530524006620288887756663296563371224612621081886290087491103400362916352713663862884848341172107046495781626731746140462610096727286324067475873189157710049659410729779715887768813783568351967369374201308765600276881952463890053899053864126993242600900841979135929276599534957429268910578812646471105714937885945693279076139506759340020124768632295251974718516032724612294185307502887539098158014270957773858142451934563558036664170584918760122420342182131871029297713379612159204824668932172545947947054011382007150426703805215115737641677445647257290546885899707194285911067236784311781605389796007661545906563955328608734412679503527881800193603808031599755067250158489379570595270044946904922514717497461512394742334211945760616481418877773107334518745269733742647195053979700650775020990142519806491717011607672842524200411733880551345107702309558426216852636436472324458739852983743983016460416943522279210708334130627213744559982321281806403366622867740003139631965302675671267626923586711120850107541884985958591090729216613608229541792600237407514935080002405959450347621182545563895059550177452750974015268257936688605926213946896177954736643956984259445819710819787316117567146362806618985978319933873836692354644047168736220674186883964970401049836273775990242380474590766495974117717925264828293155357061925942805654152917846018893694752083204745132788510028393275636839006839799157854702640382113909491612878893492113437873367800427487190736822718970453576500137257467715413402951283876260985258730222736938456439547433053410265419540779678973495892719009736693645259067853012330554875933980607229440316910561623794006983484107502310011842646071571718371744155927316656953646889545796170021385802580615887034812803055531691609701888741404844470087537559835109338513046848363008801414432140359154753515869464581609247583912949212119728334171697836317044082551694289498033263482460743426740746385850372771344699764140292856459395978130660716332403458295848970570413189535255782084483158308887857976215146292105208138724501158206886525617202534980978727425828899464193742264181436337474858768341030355945349831093951828334478931341786021797536767805342481760988473770257099149436431615418034794396165025263990639807639130454386012852494206814062266240976872879125535094143520394803699498785568175124469386839177758595615653845319703029820724412103491009726658018649599489172329284267421594907906850032639063899015692939179133565121662602719343141628177598685827341407763679960217061028795740480429022779538807710421372007761209365368573833587482053736449172867382479465512612543585331963005798943431097169122253555930028604742217797680600169296321983705710139320926840962793271011872074666888950976133033524985281400292291634995559734088319205727862488550632034102328439684361919917482837161414194132944543867286910374967988164453490159843423151207000935612881124350126987476497336653493474177014029531797053952924149047615404020651362317051014719360980700430135731131202504544961252302493344237052706771411580735537221998207888600981590892770164185984362724042383658687665198286496884698361917944208171161552961339303108503395237203841344090171751166517357040815950001650169820760970144443599328779372834254283016802560997636849670148990975672306650314605070654674486698579835379963419828285785136433854019248434749850933901508435559120333151839036240914830725818704963623836921257847980209953890620235231870427162421830138711237861243201898135113380119057691822971288147122061321075231343622148761185547942633022724876574381163564365165555965079160541396080915637854081083712306977284614896944991722363857340873616751440507234167167303659276210474890029866734330016295645488510013458176350851302390529960239262770864762239065087862758926680248311513730743128731939922470875683085271847443431072514055664960011684651197612581170127781428137894897450466022048008352799656653216953828897036112522479338567684972512654491217917611520850224621110972142509652189474494915044270066066547832987100655573074208981189695241397728314019240237847023475464180725387332234035329362511167565778754903088693538319210506250907004735321081291289968226121113225247119145930103116272462137172876711876741624045407617918688605897137245980092561682810636018056393193355773259084648056093902094530823206147492104033961090894929907583251846778109822071624744395049692579853682753767741051675327977798600402862064511773826575851171183707972615732725049565545432074784977741575105127518623480694882021511754243835365497375602815374588714755284562286475686776583341081144474720734172017860454316922065261093938958381822175226536664710126905142413854508996133927799831268146529925792899960516610862485929311012138646137397773777953731615799167874089334126052782424151933371083824445926369274977598396007940057156515869297257428994314398475586773470692754992288750368912791580555048530255126057262826592502420302233011375941452245675477450190924666768394298463764006897305936289521807557391674159715238135402142663574756685903692399222624397058090498979007547444906512434303247026214508230319719148578974003260130156481866081447946601743669321563450438619024352138831770960264844454065803283335576175647249498116069097967489495529173104898209128274053982001744860318195963588511183338590523483193129200577342619629887676347656227638300574691316421325541582984148492385626367867484789273714122150598984973072009941908456445198316870102615486382399871002310323772627699408729409625490239140867213875968972071039858776880634208109104786548576818718822922109956169932363758221044632908230225409498454008427204865306020897801829475303044972786881930302120376752776894190403552131594014582666857363206805820642004055487849634095981184386575022365505998311971631419014819913385938823296092965930293380076116174925660421874954574861624232354514054625974778229352930918363506706894947935644521506520509120319016010263854741281764931260149414521106447936145289328912467475920954290034768533026847187999971409763231869331155028755842309900071523159676742767001098807711711900584773826829650178997792741770690855531218132134138682071971730370664682906710396594739118454311783822467063731835533403450196130312898890831580236881919638604364137867930586065405050181924004695541446600874566699809155424310705798817040151827487769387954264492897349542943138944259251034520062452800638377999845045090350908848626138565349983686050190717462204946630960764666092144594835322254346126906993439298814548417583407537403194812155889338954705134019537718531992388965857510705979228821060767263327662012709310253005724167585473163924231934661456954055702380120596125039541863092901307743148736569945383864722201380519455195370015919811003504797846287787252125763212813850459051330320822259434047755324543680119128097758598998403569311351203141126254036960267744769895336611895766952643783169501410696160286630601109377757381062406769139825612028806393971399853912540806558961036628217159064281917338880841487526508807879767600241061987487798650587178319224317218366343806846391905889761338435810128984604775283262668137751761737640586787295794818018633798837619971048863840139874455621856423126977118114735820044209183993058798592307691515221946263465587968966216910895925657011964106507161089652487023373609173567837150863530344867370282633820476196811026206631907491292654846688976774305272216944312110970587288946114578880302582866457779841827439947489063436056923034919067159441911039838979099300207063043741756793095960142744612583055824377846056437272352776308783353437884690609096491989782350647667699108023975579303376380208364836051042030451860315743476699645832350613140546560580448550647576024752953566665273066811090375405606244527387260577117364971056081158607375720326231610071887486444852253932086537838143563112283873534385548834284016551668422077848677248799529364482740904567070524825192507256577622019560329948000483372686686158127064539547759783781309441310089133290435317664275480045377238344409927909905476549266381859694915411570755198176056763654113288639000266801253510567474678409902904879041537059759686421845266823840754350355536011193755477340982651426027133709935182565663632689613515956385692201690426810048284214482058268048726055647210502797900963069016573500390343545175112066640004763719228373634690403974001729389660263131490208502964644785157448880088981779449095438657521889199268130324449671392018908762128893144555807981541242233997181681908256060810907036587950500858096833839497355600187073766374636829576116132827321166848073879392949206995381059013053506817518026529174815116058427448107477265054910368805315807791493896177865833342913186434492762941130911102052485589250252385951124353070464343773241998140100979450047749528338844242874171806519303497156853391551058222515628813972993580626716452464820851642561590100351996621810491500575267993752110725587095421201859821902336867714258413102361330715048521877601274830628418576361406488860958395314413304115731718220937471833397034612759425172707625596000684135219203046459824322689260083969508269265161440233835830179350711605037305876678068093890970680906159834499933674140640067392100170696969266779074797235135804666101093369124153167457435729573344485842147200973774014499161934300811369896564336775066866694630369912937147860121362986575969042372623511519253855543336369891641143569075549461050136773254613417961493493309769951550422434581384804496463900989786011311518629501121619429563099795926889478895724206114900310055355063193635114237285289506117393693034216520235530359973140124896358942985762199188201700087584000321174987334257997546294059667896439158327252089989369286539443534999770206377839333924779944872547385709496893200583269712447497503838230221334212305949217076503454442349911055987983333570261299400594668322862581273961742863607171279616938253332359141240567341541983119142347476292047078026585686827411051054154187260833191714356283528593757698923640447731452517214409679292716829062182087907299815679939272727480986226239412369712409929104841650586463526507271323144185454792494728895565246457827428599726671760599973852324959676721902411919796211101270118127325939377979499492055980638171804441584712727465681623672610463142136097101629320920614343136618271362495407453535869919580817967138619017957117996716828144599145068835710548738097336770442116444092127384239679867702135729019259175603026643057693627368098123223952264364576522263391818150005000112414548872614984470984658437675795603220958330018111564537867643072580503765060091151081743391687605434909172675086788071125768036008328677140172206279046729398024927238498206500439816700975705932214987761352149000554062269561122034149447487825222031699120574926906120211041284607327534609160518248769185030703657304720888228246917073859447553682430004703009490891082307738550596474062237544897563271535846652738070540189838869956582517497222561923922100919160092204762588077950498279935471777657812959425988234504503325282701888367691287399246088687199633641472734787573307400994086108861722306194604477831455065556169287241446289823940387307452970173092889541454220883935201983350726277870406445835037054384454679286822027160973965666505111048157016562494949257509326776222881222089304027163234631131640357465982634011217518050287472106932036780138782189298893150591460857542629889087863745331993873353047098557128394781196367738694623083862899852910919458487929513124581287934004197912311440589312149830446532394564153652969084424513300717930308720292353481413830207364009755188986156570842873363889878142767845191452990659837575196159501708915118184384283197567805880768528715159858357468729406488586257624596500979556440111352330191462511335641109370906088149104731167535874193266611214857166981242509832837239489721192055559954344386054932905064496380151909020422966956870919777003291039088427517825436453162181184475328307590087786414195328703193516472983573862102341759522634153366543736628397981820913601986770739189635765309313810254541431816153299707865661512474646001852696242986542164225606961682952851909023562269354066602246850956109026417839185606482796343673895696308255528197508477381702026438838313328328115448492231821625833709009401185177701907483211462416952760973575585284737605047008184324090576319799752270722511550523047934991866006883807642282650910101751966935841867545321068144443386559730582759775271488104424967602815542609818736291482502342706184701864543215852993066315198284802494780543829328326644858322746864753972278884737739641720518805174058414190667517936455674402098291007423055440531535026579952434282884933009985480284720090671915020779014359809350597114220837131495472075429868659605978548839945755426969200259249576560568220351217331620908656150849380840997246859466566245175170530048785652309246375654037777857553504665789906634542589728941666348504613205844265318070005429145710989627113041209646887572274995127770061504457143455071074187842532681067110461977091732733571870890674739889796461693235793343962856982750969567364413005780739822896251446805293284373063442343448264814618521607930518558605098638066340909404326991579021094226865290580051158915589519647482223135308457054886656590221624489888389708849187621039863829322429129159998924639938500648875703262769684516545973769969139148117006097362688780273217187887536776738144482204580352355891071354075222670076339519412249398655287355409724834529984962247841334660771632890999498302199782770699517768173493938247359752545009662350327446151657005879433181617289226645982407230491902842905205978443153716021109123023695502547352804231676020524355099938194579612210922047705075917683617544233060001677500154554085728749855553658546132304542699316842888064024375667266228998407923197487753450143873666575684161188144469425189578280632758144664265248114741557679540684780484792569097910579631618720363039471302610274716443293788771862392874257524661263889573482035708835983541378297528410486587779333133884027585703634356988750838079734438355110972273018213882340589226009563772594977004014378931281231047487731932229353018150536702578107921114393424063520113664560535266668487531089220141356947601618434132423894988829246238406548208784061553978764372403906109107282633878248011704793631745060361888182157580642018280247175926988003336204964188623033587696605062015447159443913626965901824920608315031073372167145186907471024541077646292394131457306300692338077630380485464340341611584260741481137719530162671632130859896260726417008838853397780635930074265998553034847140846643907981930561408617678624292471194804541503021124537574171746545747815310676864084303597972010423322068463238009031419716420274543184498226071653722300504107658072108326365900933068205392862463061148071189084562480862513415611339830387192802389913890321220481951789967446160302693478092412148991864453376864278461732323332643598784793040646258933301726360015291843718484937997912634542781984371374526910982936489853621548892511620166642518264218344283314668721966767942327674982540943465594638951178866511011430530039930735964317594465755329346196723204278343984814178388703747442993701636869853922145485138593866386708900852536759871491490630646772987850830872180753761876659025950557883652217625902679418264168836468007203535511630389028715103232034118883570188437116970517409195970018199097733208613318784893315019479766605054474029964323138509873708322867784848212422141523503707689079376590477749316060775477697390562820832852460626018322638364525971429609455437124529966616571923765561564985907113439497633955369570960064913847764764879923899652049386424530238417076068169727089863226606253442722245719238194645766714663866491662164255267414817107416725446060529538188477434632645533193304022150939645222223789989282374200784981261549756726255321524482326744461594822547997875746625164203935096624022929489714226236963670758847877338012437120505062356192703217496920800885507483582035725308854972356607213836628426474942010842068646661597043139884113267319437322054556730930825947932979982895917816955651139454676227100858745513045528056523048142123157620254075471708651934746049370965928840913597399353607099294701774773072187116680766431974202671620202632523262603539195981715925442017587742581988031897143544238531083508927598341941601848676145339188830442260390976294976497886601081101026177113736776459552628537832315665442765596338777065974988438398418766754822973160966440981586241999829640207366309843217583770763280374932005001030588415483125223411476132926216805238359603963887145395473244623353347409552478561336473439698920765410583612523208169063339250831598743983275799427747915146782998869642466960619251047747132861421709059913042564254224557156768885665143181741431660836371458625938926241044282288940346157417556911993654768399893859107141916781602142707627732310768846773731599608747428075777258995401890221112971307584022027281455807831331308097986878987404957362501317530087886561343424466451502791119446949003186142566735051943100151830023342223037741539213719824989195778919949329365939766218080274276663903383366574503311650576328660493446443328568462748561686551639726896191876008521344790782484143081320457655201828738821117994549914243310228984983952325651679985025436437724490318020949216675511157542460260271961989431552363996072191181864390461915030882121102208830450897608858118877605625886589047054702802497773905807486355002967868502139967048246288319258458134402310420556702737646597321891645548017428263407452454657158363055895029429435797558774614991501299399317886707422457002354672962135029268633174634884758714478288614111210224897803525745169539983094753560197966723910713985438021940432840238717782325397613395504048198270691207090946292022667810210191794155727204296347430199910047933815629061915016668912143790310855700099549017281028734869130564448374468813303171877437248464838108735657936786816778355796822984607653900981169977083756809583329743686975216373733608233485379290796984142394338233756906275658474395658778810157893345032193573365512008665827522757821919833821426534890761131138994910931739714891976928912262371308775747422693249673151370089789103567735173684639056213029584773265039888062944547596441220006659825901162749955980274281418763357789214100581620566895854268868940121820393036597302947875370622360796514304789061018956121671600922713140264479515988283664487038634780411208294849969102922443611127349869898030461380882281316492702468294277841676581730984467100068010773162200471770543481916065020198589704828421068866663381805920141080459469359380551971792958597073217595696198001065346585793033812915637832941446021793847323948536792016617496340237642788929408437420457769356223888949386727037559513593763342193958194566197634111479954657722747001237401608173179152285743910647709058376064511537751348322062459451550754540625874715970573760514188296803786140466115937890094753323333628273737223331162537999573580839214441998792928987357778429336955560682201417764055048020468004542215607522327785301421983281117993787338066011637835569763797955059787859591633815138762423240202418455358887681068626021189226501586828469420602415612825890567573191961447727480993152175578916146611819386868829574378800465530548588880645161356382823169206559543691804407912180042963277293520187484848104643927412087657399899947184756944070505887738144018591727414180997108792069261672570357059580258031226530734826034692130666480995624488192908797582822268167084011773456539451484549188735616953633335245975872720916441455378720571105001902108734719313113139461327200936482260230548777118662532135867114996471915657130939697598409654834987624551143062099914753926608730750318853139514165531896823458034319264364887218389233933001079267851633330816965618663841652428200478593434978526799537128554716923286384776668698224670457118191396227605435401344983182507465689625956024059257905966382698508871147407976889645914618057151926230309191999476873130969031826818777229140401759004609881610366314533345136713030569097084491333767101885128206347127486465435525028583922609554192545137778294296991085497185715991828621369402961840413410844012305603198643776017808688475056363445268083749979792498895557507895094467746548734204273086977814798962698287398270822622197009241194065256281922355324362291555099427630774107339788380057329974295234190893915420910450152757660674194774704842401291493816851403808697855279680598385846315341478429550542061998078709899672637518002641684113437533903150040896536847933431322127200426347196261385043513257698622002061119644084863992643843208682496263726859845780496919656433358323338435581601242938294057415642704915817081722850660310152098742878585357514261962475022358697731481471534042010498483943421409393864082098738326770918541454714254339436233332736874739050118954171890428428288343408556087635537069301323377906087611664410676643628122124773157501854627464212370796185992608245066880695209959228698101045453871444667113298268018374159651866534302540122920808767360143738969007309365347006757463660706874023110870052623743474610371773867181720097275630126849100566906826887069994231682930889439766002603095529070259994616330342073226301272733551015672800845526923599453202156363403023334676096127448817935817870968434464164633539924752557377862245128266108140925300354496800574236241727513738446652272002649087751646189993488926833572059899197785371593990243117219752086251356188664811792533028774072344818046584858744443193073123174496421294948088627572466841716417066656180209192406047341141320522230438297047841000907314049141016538309450022223372484530457033886284093106236354471948785118432284604871634402172305394698982764588081820325876301673862939024315873809181345678982572868442609495808678361340485337139375764656032769834130417370146403291479873842073101650233692310438011572494675617114715043146214115007878983052202426380926041137963443405521184557519468371828448673805533888576375393230165534102257429787457505790978795039654247948726466282720423680719959698125908293653701469816042198970976892328108001146196254519686142279474141188187992333027552140184420052505825591963326237495559632698636198931923171190203358624616327889414783940901401669973145058010378554995080201843614026799166866806948697258187979098330453691764381150084405903686927955518200898790502539768134805066112088380577878288782708337398507593040184685775170598557554156245569482008337501009725804685589257935463799207139986569075489144285692092310390187397691025644971566901722006946079791548558606242532621648450890723845993452262584677725864069276260732818325278770199771794772447498618561824912383090169065600221410731970195599257446934094893443211298891104922278523378477935956787423706144462570690930393488374917255882044070730387214200351105447256060825749147785283883366699411110748419266091071608609693835220644642208336659075977076010017352877072492662226194696923157200155387939005204848174167003576708482941188446449677046971146544177511609273288294065911605848154193670860113903691154954453272146112322732397383522838725613429910003029715039942968232886939164083353564543396764637292226680021061907230912942989365219224759268652826139454529435907562837424259587267563764096396387460024995538069132013302428371166403555702439052787383358452760054034741255343978110710140320323794529527168262047373216225569380544402615652449011275799006660059002532073840034922378831523604720496635812190239406344186015279863203742164817019755190810312232211280428900972800883420511336208321043594419026147213742746366340664940651961127033083496400423985796454616371199488658614867481370345953918724107909140973406845871582058430444190139529399355245366970577487450758499886697214392594124555824386059045568824667546334214881835383986372338887595459884325303073857764989406665015279086405462670628830091495603976504317245966923207818255503987224639875295175143704758974719989399142443901442541036665329215399454644032969238557324613827389512787331719701305505279087691906555808688529983677070264559633000969050796058916056581818602006315269543853760562113662262038051811324918085761789690589114169017604817612336345919540848861637059670048152209637274367758121285385307367714329752699248006570680431522701538394377937932350814577039443063828401656867118340338936825700943171121334431078680281780008251510362774155068798555339165316799881054283921001316703172430126888559878917909962991705778031535582757922968083925864390748253841258854588600369734886160051911769204404432763431026180995922634767090529623664920205650173195858333628253673379849082581757151574098826374121900317931493420412484986953981260535842867863253017293624813636586792756260085776244447382359313460975485138510391228096211956637673490811457179791303079916115239704799530787755547829864642960433126182253940631653809000551722720544808663894177046090465060806699351256783007774896055371522241668152546501848431723059949010329408459500650849823264369173289428512706505989906936017034331807328891542544486986795475731075760723475414502116246960800343385991142247779295311903374874999501682878908099935096191310388375269546700354808767202147381067622353143828332754835437868058226642884921525028790013376893577016117191018423468952137669366128853903569794455974776827174024245088176854425073173121192154202357828336365007230952610331968899255848108278926682508268328679127656262949299233374603086813171829936491841964378928952711111876592609143429315715822708617814626610518401489842269319591307541911555690238973250083193971443738319545466990435521443069775943260472199153427910067385532066551079154342831299999889851051138795707584981859942547122632839445747816518675586918493815439738584622435847928806920957487280102117585115714892650318517311636254856132947770486616289670872368111367437902227724128698663622960338135993062150519316845080130798015416432341637982121442839220666087649767766341070962150806490054184754097836705282318298757121624917687553228443235562158136263091357298846974348213375329683358086175105341679002261580286866387690745772252667943518527903682805284592357038642510896026364605214546664782373360576298270767539107146835793927812062158226487435204485177581892873969817518415237294952560746924830445706700890103058700605697992402489189999606605572202742287131506803193141071409480218154139047997150325462792308866226959858473550211040871318341588438184276406170919335337691011468586841877152824310149284424482990602045194594946924604122355794119091187350360177248823977405229835689975324751774244688311150893417436779327000183214110658991582154012579876114060979214265169105899620500634392117595077738090942639812656605751545878926932678839344764636483590415002732841018292166445123721984544122113144751080250096304246286066882981129327409205564454341342686228932700982921467438780607934905366700524213722124040889169667245366686809435962172082568492599928046159039517094209124030089408396928623318807338883465184897484728671931082621001106071353306347948918654886573032780950805098431504167813730614007450969069535082197827981731866780753821562434149619785551571469109449773020587261183209350322171497541439101040486157746394678442648267667608167472668289360303039420367427103473228826198386076603684888532054737255823727371126398494978848441531203462576995635058653772255317098691774833336156475206697421594581917062234345878122280412578108283169204812915196396822949965084277810224585975185245698769002841566943761293472067592496164598186450186565822941728964707300229141844604771264090717055775729908386550514890582341026065713857790779148312448316078998182039251324462739907493375410961699344386772065780652190145082719407839843655096788625283626074891010827973386621926439585919051485776294721291294114739955208370206581667406342135728736411579971239967411107957670648292717016343730100956613120163527820468851109488643778469412338262419174036200547493694249744212352324896538147701280372412643305786423695088471563716234413748086259752469710048888051977080847759417742864030504891132984631209133237673370587962943101547060413396249902901064998294762489377713223022985376974706199542051821302451315316452354586105391440939235204504487723660284463259707513473952410350633250595818089460116045605254177893099397647746658950339450952804764704463294522825957930448883560645160909344532675854235738775880684828993227384096229975861109012891857307652612636506297676525044247289864113461200487000501967846145902847245071131297044574955753715073587443476929482134062733373812938717085496246809041833614986436766827393744339633311614076276542962623474005749396549278593539396818149553125544873342112332442008566717935981126530458703159848617246636589180428661362128380179112845994840425238635108075867594367896777328951743177231960584946804290249627085360888686804054069419193858234402797017787441091153074897462006661177596288901053245322353711945231636467143202149915854180138129426838924687309638588197979469098552912449839213947873002420585818559298356735358452717675328576266607042217913187798124290117267380816026729804360764398932877402967565300492175101028781931726613052957184655868969397131137253453140520476679761871338845765181973754479752648393345627607538538353299711977463410817926366199053495396221676751150506376384556938342257937989641531584353815228321833805626939382174941246589243560451836157042595177581240689364608935578496780556883159950325826114684992372780885594625451310595437156131301080461107957952278301381346637726376213310894832474628875574008737761796453949742992823138322782374013795704966312501559862372353359235737894379671664316286151295406934441692694254789864928712365357381430285128720893962549588390946068789893770777985622042220400033914095998556485551507323684386165133731179003588583671088654892688901638030327736031471559688628667890824467588422179454208708806490693494046835126218204200616189647698637123486612886130468112433709900956424689206653233839111241685888229660895836595553092707960652890109352491903364467370158775525704894819539359455667734387180209494805194555320623599815011841890910306527463858372746410782506832414567986097191101900865763270537441083829170997579602544655690266327261448486602222685666184365899418304368085353107453835805461521727736613850720583642529635010929511647016543060033157325843622439349831486071253813407341770222054787250603191425263345958418086856143408850813007514832936341058967750804953719005848049478134207414857684045034624172519790894867095581911922968068230807676128746647106722458422257999338145732028278628663133073851829156980716547867945529858354396714372356925246822075694292796071685167170040521643397755934685680614544021370757207086235714853179761855745949270075806442073055749713239146036824408868837792924297857475742114819435320451151474863161414745584983460317563815342604298718660240128946757072369380991550406368946718717763134602313658585121459366306891440996209892848832747620266097246717754761817760880925165180266518263672455423900050697621085339556391847725194668354906183973528102262357244415527032963098405905835110228871890021860835875377175437689433810840130160706871848540568520309029936653451293576956749518720727868352818352219462763131355394690420205134829241361831008814452728206980768656614477723751756451943370306437260755291984210161948915392684631393053460786953723906301308237037436085923265434575956624069886554338642248596436819173990810199892993476491455763136375653403425608513232711609833396241995901857738939309194360591622803695269800505799630547750321966180741091746874887518343257629349171838821055033319622738144068679864282946862888789193188388538252028300503960277102583400524921536357627784364262529254803631709130482937722753837206416354911351571048174263798156804259876759309986525726840905283928978667872232965875377867187595709865499242161958685888440083260090999373948932585872413031282671781209324206887263855847689697175921853438056496195965101228158178670305427703447353181086210433276323023428775549969175358566536923972542599806691413916282925778984840520079046187095180722881961336380890313312808310582194444495178276408081651835956941566441685715395295550378578304733736680929374271149715605907643712465597260633812345619118552561652166839657925027798784607992135351531013248162123491749859021746721914413884141930030691541064010523575707351925248567857803693233858066165542871194284462867233497378999675025829720998285730889168292980845401880335596546611690455091552524568526524698696047480496709477003369336174488651857170223853967866839376580732431852652027287817320819717458192390558201623672209480363022008968476161738494985583956482513749969407020670624835847725289936081252144467225589662057183595913710107570669895397172655321979994584686592229795671800518628921159944569766851627331356327555839404520095084821858971938941773953377001655683504901945940377402275088925924363207618350344819590069932191215057941121537621789401597996271576515346645366750237214117181356484882088157231640269290594488260198643267843260765725568272044079822952930285519602145460032332263418308305879371731025157859582109549983674925535920128850359946010019021403843409635658714302519706696453999130688150161540645487965935670036353227458153881710694476424867930247591417851260987126952238915767112612088885390393728712772361399764747052017626873794074601145717862242157692282953776445692513824300032645316940528146919266357050105777710156550093369016353133353855978244245047282590513970330526148470216396700346715244412609385705046416170340245067332598036059938653850246725127257246646031182941009156908198714462649351496571239838351716366882350641636610891921581302862278127238724064156669453939658433260553872901380998480278616797843430349995573773974604330364219687673765337821443881234039414082637532131512356826421007829110317239359835633992444638904708900008372981611097210174377177467357878297720973808621688617769919758489203378034376851856436772715881561220230951718513439047147813024036046798459203075784060462863347425365266502246021211932213798096039982951409823374111628808809893246926846149650921601235963015273531802380026884506343066858282735141130802797334192975675273029409312905022390985020529944468278593360727652008683535808386343190873543449922150465230156288751318152934220984122813426923541772959061988304843403192794728162762977009902956922505536307849827149778508957595761317633051766620788841890422204321822697169244891355432320447981532364223263332733783783748074017831585474442854186091887443510227487676818056370231718590517032955684991950893746125712315412080374621672863188715024175236035552961068507184359735704864566052392810588340792558001810663472268827332831917711970476904200704303631180849102802228775362215271709916764180008360209063306594017251226721258657672679319639438151521451275343198090037821670555901441315326337458893754984264518202997712266479837984347375809163449773436267032291083572416905058535420816046382949836267493228886838067294333898693445449954593352183906776904613924867287945459347369401552449351374294048956642690252796494123509931037005338454171356055939866394297061982600624148362563654387024411682152393638271850586155059063588903622980542932662853480879469169381107591214484688263959514605565114884598432257288486808780184439625401378043364388562749625497266460785924686212908914258285523261261221790172996379385492744746782120759179718794855715102266195922710314293235719314312416387058605892100048262486656478087110045667949042346494608052857782630941113894500270566849350306398042115602892965553460136951381043722216427303391834092326869868011129533918207168648996624537205745493013595002175121509731462777714438520202661705630616577702128221588349651577879164819901381426610298095668327874016257250449392371401172572431520300751258624392785396744844963323969269803891501825635728641566153992868762829609686788790497790087337390702142832886953186810093948490566218592967002455740776156806676778774315116229346841373725170821372474049481271715762496788236637433182833950425737495962607913614226488391191214334342461393828079400398882938471570333555252376504158903962831035988597810999165304124578996644189363172617403951497282824551063214187289229419534388983910709522914289714815968103823051044322458262557757469313124173606796161214467760251601073757477461861337216157980497075346651316566616855229848651649887150711281786063733270677443050406638740146116316681317510315884391940003307445121728153636250846242740440918992105534003854654896634028389000396409075810581578328349158977335496417141433323648155552757127004593356458656367184490913037753710186135655327454644957750501198106134325401226267361829798698311260866849645585762150214925622808948781930606101167404586426299847407997839967468122572120211543344796801079318562720308557973782698290907292820039161840116304154454384917329359320113323867225521743404243285381869229330605926091084972329388186180107589653965241292251097711934541738460631920099104075530208018681142399646315932302084781886989940587607920342994941027555839031566556371247487072092950459921825223888980934780156421502259537236312451104234723056557194633411091260494287072728359417075101139828553440488372570175795575951581782042380334791442301546175574919358653216393093292445688966360756969409294908524640532161143009709621206671022978509505656940787740689353747923242627576466001584405325719322851200242501467229432778329911105829179923442812892570246363509060737979884291323620751413444678961363134739896669718902933134144817706491128454056701924500946830548643721797529737044399347808376848582422012557906859441935442112273131168620718369656487634383559562620891280998803665753325663004791444112815712606240314213081689556311852389305741534138437827785085530637053604885855771651051838337230517737341792312087209794236099344969158052859097840185177059593066732135427677265175074552033785289313560867089300050076788407676952962843397269617805159547262594271182329213491674440628439969795635248054052561813293781808500805672903568041679195090340258616872238821401902089324397741782360179135369469208818159886423561808438620324219155715739928414990573651158004373894689931089859675896057988538291889663418991058900069509733497893227790486498674664925493869437328285906771473049661618293427418878910048985959626420596658088680832653366838432496193115066173643915712154556163688627547807035824652804889546236262401469336202272765054871371480914396089224835857047371226891829333935019368524708043182523372954294191921504679420711189976913744955499452838861121997515682107870795040357795157805270510595323140590363885074706623211959419102390427968097645205801230071783491440068106708070168712381728688174388598403776454672639387645264113558418294838139857653557748058019136076415048755167659365382375903319413281153454546938579743150003673859744650894709715935532617076931879721187555583554444518882688772912168718465415907077830255445452476351700099592273880076530754319072931135915986586570159064202922827162591852914443171496144809720416571234132505127419291046635719461296534400942039391928178779356060602413913224444707666960424625870840779291893186446231877513155623949926097116163166473361302629929311051689770914923140158918094422795804630310890613452643234289781307508005279336847037098455096530744938828492935527630819300655800182276670401511714192953261935924744224325437757540316817011295112534242368790276886450401250681936974227713613272261373176756581573717018259213385929626995632263960623250782972761945948208316767716992268061736023900303355738950267656633631998601682183853931064230211199655807464057671193857911772720641256672729871223178998675072252733569566694450956808074243459065957952638344359682703422101180863609699809504088894605540530114795253418115017230120088651787950923994985779912646786271785858938776858933303891041224203198290645710422922972859972283923452613658139602553267220743626328052041686692676173461491171271946576361878072805647193103000065738427298042170692663766775992353529460028550223855769356321785964196134006097963550528573868054559178586908857919427102121545856476403827052445180456122069597534747434313598234125090848825129503600857980858317617306259530652707470452157223749683632308349763749432188916450043450855477452883935657179576058539981049716502798047274801696620310553282436848340411317048899219968476933952960763745257841560938921304587432541293184275188626870082023041195515245813183371192257725711792107794656291945738016498266580174989682754526898581684010118174090960435324187685413076947174942509153609558610487398164144342902331512403752477401608127734005591990857732912510430088793926615497918293874477470997657691062578108304696332938932406842782229047009508423845980684137224354345988287571574509028285224726054984788402854095665814230542308458085479237305693234149616096161136460921872325062442406977044085407670860760273280814339240351830644933323748737279177440857272605593220539382516803160588860928195514252400385808076971788852177313524501369590294895262266638209292965960839690916871936513090866269871822058871154818641600831505982669014497449536692096526851540851085070533668803203338835822862028867374517181968920938194603171668719358278026559763057422697566246914451025581408436065242840523313951161410577298401768678572964303211429860409639924986894361253916123413414840772604583571048711662602852222646855039516086751686495926324156595345082822584473567951382137651340596147194024521338937682830469881653119589787395583434529693281456348715963481574522546248441491201806479421074781014043055313776202893422238342729755997503995883228220501977104815144465539064055922743227041841207507525130413687436023608564205471145956713468161100880701287842291323918620911922292531779420920459728037368670431126680818844738767246577349977830948979787418207401308172688013896920233985152252330526887402843563176912993963194365614506442360117218240737566069561388435855420350002352021479252736387427430046932106788166957154065832668595891892278405751646601480069377726338403962502210589143306880908308556797268239660479966482700157760110720698004123681410080733158656303690800706457778644837768293069439976376788369343397394789785451226350152900508328435484212922290630041624043781439927495258558751219871478535865823759381229412659705720031742334578853108266039748518429327048580443307244370970980791971980881093716159857061044000585224363771355623112257462294761060078714866436192878190688715768144611806120196593660425390467724066013332786883035485552168719468138137085941623920077930533121665152136673970452889297503223996732532401178315588427356979100639101471096743354308238721803886303901888354647762342892727373843233365365465678470846228376980502121069549966728821543308886457298107419021513751572892748961179388622092650744919907821232349469093142858115318100267525397063604616625772402538223472143538974973887813882515454306884151432077942883994243531655050022143324985532626497537958909485111098847078338339284668269808266393642184329387111803025070612205850646052264031735165383580189654364114794010908592396734251805448138438101997871444870643236721185704043429348863884225696411640286566077627080086913651579479223364770031280937695721464468124433014865284702938927334365803181076407632542852870884917829899893313812759904282179846447173076930981750516398746074476596771047706882318550096465971639023647342785214802359408219907474093431642566578621919083074797004474040431493667812008864282930767607145010203129332596737395115224467293693953520091316358123722686825008281293730252577901166655009851785386525069918789083413071048001730244847160278879792491237189429593353699185838860183552741291024311003180015320503232542210780348567586057234745707799524876195616906271961484409069182030756667796980931884123847980785772052197933620221831691541557893679230677620819727923788889485294909120839968351830166103426700853031720062213165723407135379565604529916618729110717575880688149320758047475990448394326548307371948085281499100319528113291560018710387562718085807958139596704963610765687407969390788839419360134705929904499093533743823034122555988323681888449027168142208480192000485792740872944999399966449234756146497688436403522886021809460839875164026147583170976602825663676901264117453531695812177857599687428680827613812904256604225432447059698540214945343362768966487219626493853283646960486332856497113747385475429274251744141008507860677316500545335727136700011514784199338360126543884108972298618727158129571982634981301383796017063231525777361575894632432576761787808695102511782939986027696804720476672313977693380417961382216709716894972483464695182166535176180977566501067478369127215931431176730061272778664292406464846744219955458061943671178530921642734743616111048217303084118605391705344256823904947019232064067790646972595453595343540297824769816161788879219603488040326188746011503527166826876482443420998815655752368273607892784630572365454299895353951218652682847803254703497824456260289537708257596317209838862510831095137984506597559161709791346716840465642923890049105514310102427619484445596389474346316060067566708072420572696302171743916030190429530273678665088538637629769779181269053609522643728671072986179626942344857990085840241923148212954889730039700981460692315067811613861905824791464809487846264118226948302808764922475756432808789858651019120968300560749339774040367012976872528073533336895928961037009268282092279857855870198639349363787098952381474422665366629775610879192450442549121734679469188337189170328857682287182203514260418056967000853925716844216163830095458716895825839132597054348813079241554488207463366338156797910930933690466696232582473932044324956118175144474962991601813714560130168247889971153071007423629851171441540517861723960943130504377246386510506554391700272001371947535977785943518798342279971531162527622750635774254493083907703649704395126181835300340455182868688297771708911788073358171005182825884313670798355680740428276036638264518474630110901024448988182448894558955050039549691593371518308558177445824458926652547303895795261389408761359068682742379035651214761244553088823660444516539080496948043812832762965016154990869312786548805780274195021231432211788505846778451129793281038309029478982860322041780212504459012506449982581580251302689165408251737509004847379758764140799116802318133886908342844784911000518809164819315922882776620825406483532326868557466843216152695260852439634186134652020658824493098362996557305302046218471002563921202355999314337610151627453191296979518259900232492700928662501390333639174427309952025752815807568613550938945252994272791608989251735913996352870205364675683728711021526466851328998149207860759522918524449999369381885192080869177541929189864211305032494469574561162230164351293405328664486134017392191649443907781344232050180328250221852303494210448433241501926087204157536952963143547277204048133260969736636633931432633951192120498462073002338575413480403144477688268125435720792395522941256286535979567500792207378872041888120232269909588862658063758506199787970229993135562626623011584462630695797499307595613475648871276124240058582446634380276161424255736634209246521344769947754044413687664960678037045663549492899213153743565044788157008618830283483749777197696399004873132346427812414729769875680135784723541748473102282514514325887086517171407493454946347754089780106804509625243524911205006042617942457790343377352088356836019113960019376622993654125512057065192939864353569493234618016721185527858876171087012594971521276051061468819742234434024879232171775260532389854258276803145304725929125686111185458164811983052378422668523940878432628043153370826783355474451975718738695064289348766887615380714899068940011219795234766837909876240516970887167564849263766191800475448166734955223408990881921720172586459070495547353455237671105117487285199757797149681002520747993304606870350576576565608409090652234314889491291876675784512981310676484097830199251240479670259025585198887929110440403052979486193211144188875504730163961893716654503517637471053691149293546080451698946378996701556276686782826965757061029572757497654261502228663127040017518102210300006488266031713935146781477671236296671213685668667058168264406351063112023694220256425620170673200817420327748685592905222596876686916192738327299147684215480950613361873007836076595001223873624876971262734705503682279702761967507746327765124219006513346067015684212581889731595879334002021682731932000253050498796090411764384013813379664702567008569463713005452357802275348513835772704694490501907157743380541559171790738467134911964275238947933600198177589890027158214550722324071930421177250441929097173214843407703620158080628388987119510822630018729253105554985674735701901246888484831856751532838461711214820033520889143310748822495804881190425226223211318175416119911925488405165547755936236438000189669675285974505581795650816749299634849468386770863848005196449114582073019456459126731464446853429092553733053127072322770030985938310958230945123061367881310022594288778459488476403486534643209323614264010699427456953757124238012788850876780771962019449478361115493953306513115380364432867233508336016381564767143230878464525299163009165340247449142176710019340869864344517116922664833371558366893440602822551476526188301971983300107906079018291808155627111281761761296770183629275553818464791486048348122902054618737139718942235197282844792705025842911909962361213918908064783377942948183652628961076714671512111050514496718882308560214510168952905846035763957202856643509396659735242213541019171793009949428068663554205611356864277654508754126079703572272042887221340893557501106785886874105133262450280806621128608094107307252478786927266504460490207655014227314391156426211421573508349754337612327167308571975729995862393329034202794848866925178473933147631708719180436377160544412505815283232117552921329278903847781664924990071024682153230335142171256746632455715564664083927940193778184611865471914851651586820029653046793553127136637826293856184061140922444334091015746278883194108489876863218295071440264126406085923735683036982379867109826468343655834101726961757452603619467189982922592469087802300451883892877127048115405070579731788581066933399082140027935230391946828557232453803068355621231626553301356058040414430849320593722702969930577110058239977019911437748336653154370335875574127435827405576124290191238913579964098238966668773305504945412509780171310168266101150647990574371559323387292998496567187324398560844464626848074523662306027466577236213287340248406898503162934530647242094648747210631280853340550813908009767852220517258033118269039401412766220570870718962661499229376359271248966046741823317225935407822495863700259358919469549479238278561243004787919322551276312880634888716545546253476368198165887747940179030425825638173365887588435994433556455392574776735131920307388960749837348161589791982225593574492643951932416243552650384742437255921200213524814803499210793665467005486488396751279689457124742370536296365937439427541252761545777314774073670285181395091882113155566295380780632291757080372444984035044392803835763001841019305511315231799125194756847586597904274064583252397242798745606323135757308938347249963654780976729640012395303661916157896946878824305418907149015586851893501126449302344364501724423211767244483255359022643944646743173975786869714239689882711260565036792057062985531120534219036847607223897487867409997639773477900302225685874854237170577229721192682671506750045093520692999223324483696017350583763197617220539015649541647559356660413432054779896619689468005631858380769315207434096659002072661044320103934670467448286050098170206335172423879243349325306865641127102064233666460581224161873096972747803426578540449230346830540080183567233926322001368872777183447514052768606366892590052516892140852263701106051225603657709243293125072947745404367752754495198002229878823877797067726628833308565084108367714539177099485034992498660265856767111356084075910107454448462114356365559185718216081855264361307556732714856184171608180482962586304592349137773037917470738195140669453908039151088620382109816324631136012076197302540228922240593200834543055816488686887442638231448874595482383372663463277908482946102065402167275183962971525798114933847150915566316275001799250629024234809987747079089118836282016766876196579054771625637192826078373821522840626278299606874830838830973020414409668410160584387849666888112273107049594837501196834202282010061581571859685443506012440789875326776296046323694570474329291790665190315222024796209057496860783497906473167599041642294283307094126724896945036324857690494848435963286565558021745619596993564719704004478962786050026564327771495922274661288689137413398020011622597767161340223548090029537308601980500815714152105719483175726010411122000570323397323508488687400224320771160840503693780563151774024165311164053893923907651641598562585318818976366287990668000214877742491835522292088297258818041721040163771547564697736501095532467388416560555387095195237365009073981941636991513998466172327922732831695235979318396578835466972769186543523617380633216581510352138999303520146685392038700350045073691582583874455078817400482307407043618561767599313925231322239193869850034414690633827603487642514447654386776474344491978093688639612410321811009216005053822220637098799538422617500964584179215078295535411957837167647173367180970371842001821785879615459251766304742584155546683758495430402380275802026951818465076431597615594661538641556917747654064375371426096006608503103383117498684664451895212545915727809155793082308586230637146638833037063084375426337651632219285230270344766896740837705735132556516229197089265297526346366786837324010676281281402638186844660620376128524948116081378882647506209415577900490333155983548169115385056351710514784520506380885506540834204913466383358613357202447967099474816969189808525605848563749193393045961715720927265488975771337615979354138387594937060175075514262536382805651859179817765711977891076065540088102021306681207596559791317740156242727280855940064449063630268104415791332568590186157777762993104095909697869152002292880551729371469842938285887424409628151608199096368503291896684939543835966442880988174236201486501383852847132481155479731609145845287173591175807659660718323840390195622864285065312039119907424150040964446595441538568901022188961970934609257069142537246107985113422044415374915264046661349428181915958488427750967970910400490759674077166959015362507105706652994642613967321426881742195331211977926437030202116642016765402077773159047446734969946448434284030193679961436902767838601688224838406353258941451553395648274876578931953380700460989217661753236038434212102511765701452613521439216827995019261973141286047236228130834178764735451921097647122312180325707759325938346660180379042481936128538695306258760053462437524466752266750404944104472386180072516449261891182939523757074698039673197269796891315531105915965843977278963749767550785219486699335569287430939249740611032243893056507702883997606551322566466834692148021926595113265483954337915889683455263621972631732633582360116753234510433852447829818373843196817773349390789264049406811993086153095383482491834475884484793654859985558893139853227294188644819442286478237320688153283452912720563201751027992267034345205747230798618310656598015787514649471807222539617017672306333315113899680730403123806794607986908039295817710977576042892734596678823947144548070002448219673433607372869736978288003477168525261626579525394663771230515927151318721231187125854502431299225067909217849073127039901360760412624390199540891672349407783885991064504056668253920820604493266450706803851163943338425577174591266404716879787349203737029260439056567917032092494632708244912222899597274149933237657263163740775442035644731675353501909586416919111764891916454576656182488636133446708231119973843264100594909636292144719586063654921629160370980538819214521685992146625627321585863489963778737259648648857414260249605941030359939278460886221642672914696006928811485168917056475724965510450386447157028417754475259909064174054911218696545127839958739982504589346658460329044631332458284155068527217159770031093043460049688602909452799372219496000442274430199012606307760935864723968796625340213188931694670671698070274754484646981468611677995398370946995651483771697156493206393586344316914408912573940612316522810692110116637615375052929132995541124409856743759604582639631564446169844747540891440078744466491732720789314659108483527781788429789960732260700435384665214186632530055407533045149584743182086043801919683708444310640557689904053493731793676675600311355327045002552172270100054549681864464714999690437848120690428586861167447609929370984673194918142943733124135698950240840572137770335358558421336645542133315979084255463168461473710292731949756800851782995651549921512453591455884218073066118061996823194817991739370502709737379304231337367991711284174666733690776329964590618186370136580992549747432006799046222728637477341398227231661673180039644878823928421151973053316861079957090543001514118324372565054372324549113992794574783848335758084336257436226089537352884580388932556993299636503741087336415555134804927667229020625854221167317811355382474694330898642314696302263116192857854388034011031859432361314722166366358055144816976590618110190413673244980248971197170911286708657237193245442324723496304543637058583345430866283344455949353563547405023650253228124518904911541497010100941015452585605028745729152184052555179988718826839874184312792654616843869566609205352788450723399234561252324855856562701128315541536712768394075591970384781142252549550153180110486321696800215910528216368066440957566231519158579603261711097995329037633599785131431309878788690033465165993405290091639312962529157588690601616759528755651053428839957935612547398389670655333243618513415261613056824097127886136074900148478226044221327534103481354911228150049537317470284998172495118070505067546288191309670374221052554585656497750007027238872248720876338570102132256631891998643868460645520963892388126646651202889222244039574371753209637223653810496340994626636978769269106155579979059235402923960375836076446197334614445530026305310797986485426937454574333534429576102438762247037355254919486528565489999728686223055594955949248185601848514132226482768815806866868989295795283666440721398109789694640112525144944473220870829332451493002517135851483705069667107980890934333698334330417264639111955858115053742054418276857749043210750844459626087019897215957479691657042970834597646414702049170097489609893205976461026228113070546249657595326787612428615417609641128013879520793472188147426842379953494762417524465478302023874506551357163999738573610443564247607326101377423556906990376923073228344026848921500677167682741811603466430113275255849255112008551672712968199492006926760875164128347381697420075228757356587915614133473085413670784689891107029613444461564538759022150496668410773566414156880022421649462377648243513045430579924391774269186211672734846830641155863369940125574016011737092634489646825437219033711281793141852964108956593793192121392264747862788888231051112496173265066027301554990563760529915586639370316238138656658175220652931214827580147451157450261793833754630470292873931298353747435588520726281227820521289896653090737674307188754043944014976084812958561572950350071179873840445780845422139448197572810080991050404417505291858741876733533522106592342583195627867995357300009763208599415296492556366859805641780306834628077039901049751743255561493224850006540602486605298842010746965392779737538363210991643248268576955848241595551600455196554776041731405593213448563169041329152450911049074868317012842733670358530720687282161386703451449553309651679661865405640564109179763626208350867216133356920781161551842850462355586029857215672504060528773882000792428134084813221447362862457543940282388956306052638982401105187087324368557502976856781689321321007598125008470699008556291012045434397711320193356489305656493274166093531362548321296623920380367705636710185320293097428706911909607719913347533855291632240002069180482796154851177344486509512983334817507324635669037476708932644810084828205595295504240791542888938478653111110897488043394643810625078348289803495660715948446777795168614594664536139435721428080203630951019104373963426518761053749111148347337752611663686913660797534705242768575968735514717996747217867129523120823491982452847853284191096138313124827964794969491380283950045624856259032335871541465181959188826839616267291424428603860325366140071377354491818873115346671599795452541386338662661472834321361523850327530120003797355735454331972143596527752799669470210849927370708082571082560157699058972021765676212368130065610302770429389869116195224086134042397425408066919636529238564278965842220934331059926182775510792364069325374919202699061692185567060546790151390929157570595067283829859521178083027824982660130191091118845527971496337509559749292328170936538175927910720364099532984230813420024671150881943012076087565747725887606299806140118755678761105045982880493613912043713248627454854294956716393930085490180740122855506855892320708249991693539051135602966156830531859312669745236139657702177634206690759013830214870182543081548228179072583978204972700631927506448916263825862122646720143098031966448434187609953266234829842621629141352983579321073261547772073473169066205919225971180025000131468132928838596895793745670318419284876190633833168014635547673754234664730537961647791819298411311838092110978131704539236138235938021376007114947768414882405298324280544466543359143018659550193275644149955462532864202110546916625327021156361724589963816829925024661637712134269892153545880722026237984141548202768701023058460134904423698767103924234005816180834553012129603089288012402566080813651049068187563635151388819275660460624723389947632581305507550463323893460981180745150173439512123942620536223263576661605009644739940614115596096627483502340378328414576738839118595834902984001849054999713214289585352947722252444425232891354428195856819047456969448806898288455038884760216381724965618420064994457878294638136985944697351724927304856838820707598036779268680399700828811570744428293634352802468810507333279355434658295105673578784474709481827275550825737801815480669837223018876555293011785107695525665797680549365537694902013155492851393546598292723659501487655948516985525439422707465464423557109459564830229688874195174944882146909612108245414457959504650840985804743395620294972032875403742321364837879142196555989788923309590309865436246483456502902442804839497646870936200414842457139838560353839638701829817846766241712989876013722070407432532330025582508221092389529807419925852358228474664235978313848765045555322295523534611277413861419976522927971814993457975287379506760662408455003914649750773269780036088215921742872831107345816883004497191904401382317311745135635480105719346518732064627724915883606896135582294054326715292400542564821648685699530139937706494783763697218423958925100721852471359653409712781993912618366679493100504232558663882369403891074921179418131984202825632562569540417834483170525801667616793822807783249811410642764299959112007391471287036479733736665486523195878520964173453011702016041786878962178560667412208167150178823372759037578603646677953538224019832680607674454489758088577656772861786172445613475910751809945049681771723290226152778796571372152240667992348896464715930319534109971367163465025867686342986180328838862169668506156015626797437365429132538062010431413590220225930062485638467555779628075136461444640411950603783448433819756036692907843874479852747116296700853892964068164709763817873038911351022627355251739047487698979800510841740184555755848491784401887922612786867402513924536685679440116487194869894420245029564525076376084517297158637430741778344936064237883264951680408092229802195047947687807748682794455543002662450791155042990701197841492363478498783427901868033413343918047139427100710513650464782107138172857495884073802198604572932031057951157635162331757120570968428489603103666592018942142439972339601056452917979351906673742015585863405695634446377073629718245403432317617725605284751482641629954540341801652681974736638811594374927728221648464645078947031117906158171487107757123459670513558133782243618145816738334021095577113918566446918584724007098116996165978778638449697201257439325875980414011191344486639784973411048502377238454738034680812367185035694520205114006089341145199520158428907611002791144671889249282105828922597333497433583376764358496236972800726693301836476638678224043367130993631136488769592501296223751508361116714528038257943108016124038559038147988077996556583711671329944769557513903047835738006030758420154674113061552475534529945385662265964759813112334299729274609907437036840298630233963668554592476028113941470967697438082519983494634709240967905461704980152670464350391788641726111576051161959043014832711663362389561414570408312890759149620670845745478473158867250218371171857180785049834626601885680866602907722271203542002375990404666245558598864948972480086158907141138978848812143910167012119865921258434443541943921056087408807228060322834505963289224138857594406464352029426688395037764082569005555165155333329771653890647794801700532887839418341016818598318658898928734686473136093883619918047847609328010343258332452522020196431823805125886245308839396456927644947996062156876750470953633048253502396890666644994820093383421345931546242565556547532702590798445736509395217712341570409571284530649695137566278610102299972083272281215502455319174901045573108247631069869719074113972011425250726904388912146159264897429016191167184421164526689145469665239156851335937221667813336073877939732896156675665240302021620657854063300918056446665147397753297981096915462936477809977397586111993020984682424057556139602244478123965895328063128637388971643306854356397633483605887622593835334758548929238395150695294887429081696468642110840103632819580193431051257560323070229416249595322505736940122165036241021566964262727859525428608060448621946443068572418099395357094018742205599322033155093607791711876568643249816170872817580477334766673984075943545758911370087043181810345750434625082193469745394444577057072269592454942436284216255665564969142018594042194660314700025884565285416945760772066237337307602264379375578674814084203343839144605296820360601230968025792732444614058154469467024746839701665772884945809579832432005153456889554422319776715318311036987745566008646212039138668099176491995100025839370516443241080812273654341986876303024556102037842231771015792926575157034767719580769337438613225581979749364153784121105277025509800864457751310111566832625182262940362438451691714977689462602999603234012031922698250127212611690503500852873246232660092733998322395147036771212640930921323163217152559004742536412860164292344385088370394941703562408446332369308774027043045926926046856842240706917683837858986593427697954327514477380635365259181082759692688342903794402830961669197546054571117470663630065077571292666984234808277063686415674821118603273868883052093721398081986715239746971449418579451987846098424506083891310512503650057813844013413625213667408645793332819901446134143668898511501433085390772520837079655650416125766207173339017209356090210610925075921255044101417822499347832253119320040066850387348159962401431417896087604277416082508460339257451539611938422627101966624287086473017522884381927071610916232562630890811624454757554773883887198622163160417703259953604546829448592856528858939030154694766626352005155532458507620050801693621394848648793056747884391994904592458795888767762978819736511405927637564150360091654462955820269104049282663463413194552646840331575370744841295514112515293788704043752118525191109499512170103564267729063320786730918701945566383522900978719323296269225075500785271544494651364447368288692172889521107570874954065707222596202163451280071520875811509734672482279780416317605112451721080791883836904289794346140225538134028855515627116980113554563311516165506677721188108049968130672431076381943543783619289516959988460026010512216710356768513846897273399457645982638964211426160839862100568839235137201151992345659095296367332961467347241293175704201189952033359836591475365775046926825571180842922451060959985127662902129556480885613835227377625363020880992884763491238241057689473140947600496129192066716470993878629892262605036753939412220275322527942060797662245652675530710725166567719498410539406921576651119186392120930684482043001346556056410323988495070403670100992702516193431371438460486860625783511788141552538444999626418037979505101825933272459535479741143050765990408061913401332339205384238845629220091822625224721901879576191769271378652613002617636509631386830005247895603699738398862510863356699688942779317550105273790432750699297546231881668330883304965625632338958532167278884851839519807927557620509360202514753932988425332363115968636058607827738529332731971190489967212341670129366265112588471354850935041821118765932417625338417252111021724347890422105264440302024318727426470303096523704695653013019513301629962298349909975478015747863450533105077479021326207554087964776513189946324666813890305603606706088666727610640853354337748809855523562621363774253984264428969230102329806480874846136333136802027111897824919169106491573338537409004691296199779690103483389240850405408509922448227793297969306763950935625253634397058138576142183969441542517321831994810326673944394437977792432638145178922777591158845079091841014774562849948546723360266268195557897964132599260779635110223413450000800989258010952588897626675962260372267949112361770923618991217964240652535581717235589732063124313231421427476265162584430055781670292127860138502415549145158167997541354638042999280253090093549741190146462295419780610855409465205408066454310556502486721371528383172536187998655776989919577046934767799302043106911515121826719276915602570967714217385732102238695142707066843804150672474079457989031454775828700533456382351571469954620917361505512601213109816957619685764698436573531835831882578816774410549686271000780838375984396239096090074868160182011710184821235656842180932023455532342595150913327446383032715738844424354402753747918634704758125724875744477434346941724323868358680021371155445242125262689301828532572326498161830911567086410716013848825145074402116770259112580126253459154316611166228970878203152724027456607062710792720427254392297798756227085147048804399690035489194316122439914767897553415049042003036890929335405292932298806765297407379801634519359392935353193454198568861146961650266862640274442621777935279124365023862514522907250778514104669982171834037264207429731220480842001803909703975551176122230836541410266079108455333757933492317368065720615698184602619503579583662716306108445572546118906617234534438946459150482270420619993966041863814707384115766825876314832003653960789165446706541537168297341656930574262414754300042779268433783417917436217774335117472990366892331072651777811516934565127739999400935618130380220570766781172056055903210480629714640274887527811015606558637857834108078415140322970185588524252376574837455322082829244391503134006702705015611765409909175094151879059512892807225870746338817967021744586087043501171051791662730349848467862440550232166404326731720348217016000974479186271325618168784401226221999911575171367948509592519137771882175988008443864378683490887626749928996275129401413614745190457892389782227332344338390795726393445416480777880424382654963208678655828130818400188971527703966781188245286699051377066159015206104020063159330721949292033787449741071966359511237791790436010777295284942722658893116883194379319975443114807038712535352818372774905464599903983526678001683690990917054923730541580099579992661811947843977015641470674536319635199449101329666423233739425417254247828341786148303081484876335132450638089174744731703693824686654805622565379849162373961193876763939449036088127133006694989875012336214455225252405593473001258889565359215140834356467656570884190085811645596556319791359281350621555943300095694141774931458061603837372202690408528891634250657525289901076798129099257357930797922792904395075481232166805577347613497828388221586592870350830366996451441285564368952471135315405677530169603655198175987308028052885215451335906616797073929768678116161629019980508680547642309220122289351499923961484640408572518792159447167215134174207739977599752409956829357773839144852261518854748753931547782256812664180132716959135878629580790538617488152263862050160961414618071246551088730194974627961791697760058612369668629203385090006361743001604006571841077186768943833564135200957153872815107044383889089582132239818424127614284159915720142608159504060819966929900663569812302330140959419285855159145080275598007899862596311141867503809840679065202522307577364899703508594298830317121831027484734835831787319722137213608443613435671028487127590855017869784419409655705248900848906559596303143060142750590067130205732239610221284472341495840139877359525923726071912044561394615869535134197953572973214006622428234510035346570836526196331521650714635826792896285926475378420592976570614283840571706025053712037862227702009396279824102746584501992371951956487492015371418075202139491457960079366180346303635041800194976629734586796267139590443600002860313858509769105058240564044078799448342778181678732395190910965455263703567609138201449226587039939247100666022241201391379156845173135311479525929485653746059715538552510401563801198280548554088080135447733379672108553158524218223648809965690707645361680149470236956512151993814842347223278071873890188861043213088805105539909832521818316619226287730534504916170733216931465965456283361283003196880100161548056866126199623491729385060426332576196147112938547058561567219408699863282403235850458982691470495577206171419115123197202478422247422775578898255402404148323971755069805576065578765406290210753686476278569354958640000714215007286756560164338683085637970820913085074314528317292091295201064112177294605455111633529929514123042443881476377748667576494968613649151698051010360839926899577770626350732058564547432544346299657986849607127935683974141393248894703627769523567899279272693315652679973651303463936921135096294491791476692586718521662284639508762193622164433527216389355127029910791675869268097617925584058029062281893286260305864740414282722322617299970258381491581144451046292853331761636084371913827090193373207409901187924051197425742647167428944260970493209276693976265996868184156673845071297214735833027800915785904868948941936058855249322080650255792738452741992836578780105458057578623600312541982683905379645773068849821222871804887117401460128015486100202394603035921371949618973904620341148800387145181995421992040520783571974969212167564033304978137142846472949242958984345612479078313544234593229314880736183293616104994871836527319015765901149702683363932007297027627758574927431008936438302424836650333110686960892382881080825153320782081163742246566983601617350483350759125736261560514235918663892794257544721009566224848987477163140254635094221334259444544663951646634943656149650288229458115500412500467129873649893087593412772247584201474384765885578089331386104895003364364225916357298044382465620077071634928489359310082670934581357924069099610860624499478467016798902728566123188159450336844548227658183942242681705400662375376847987628675381096100073802617359853379998501983531965628139439360486263721059346524267111564782916441669714092215481727691486209493635631523704552899451373866651411482680200354044220403177648014876373412245080662097125956957791204415407181162632760393698747453239715575873296548714847495334287003954919371907399995028873215985211743027071748683028573254000576523736231843606762418657308750030266583772593816231214006332992907305535589965256394981301834859381651934098902802637641950979802061667878510252931247833595304588049715161885047645244154748832397852721308433682933160302275385110318276213225304967689624718868561260999426229489572846030825177232938940988496060632568565286064634941633608803005857697987309060544300286981509866775828641559136246185392265114145565442664300670562959690741502332215523566997887768823986226322812187685482757898622557292871099902297570181962259823019963191283938690382053522715425007845413292734485000443606743720486662555663758167814267863958930762115063929189294772492891269594379591157607987666388174188656562787006519093750680223941939810167054542868835991901196994699979991168406429544430786788271070636868535295305427656868943671845818183414097698564203067955134104512654499918550000155042647046582604787196204480862640280221240737329974617704959818100081573301755948674333802426422421289957454215538796595012310169028775554429722497782349404280157203494107921460746933186880232350061131207015726657622732253293165446093387435521406896348859718731865503008025792490018095307281842410613306783086400197531934533498058123984356262390824835720822470894048849853841952033531511036737938596908469908143721806777998674437951283670909973430390615442065131296000525081181215216267379920838025130955556659009841059947104139974796634130454248440454452443806620990163569296810950760923307046247754770575991677116103340666074953474597364996660068007530236362998752857854611009827237989770797401491838149601595131654723901078849693194631561451287466085604761235502114915672168862773226279763025874061862733357151147301714127131856360991655809971061483476307514301104685881738506256033352654606313079049356670967674644348316788720441469825452369718498281303099353382755817657833997580653220526564846434275211726730805168376361491798823584040024775228278026125680911189603084368703266141138870695366276868359461465546030555365412304733133094415378068507101591075274955349011660458329545104689249838761743885843695185855540867635267523654134736671562179156024945343473785618558318068497969478753580577321397804746661610223840922140390805504073807903145516672888222721217131535578717536371626375118790629892840860054867514001590086225230455510713996482123225581109257278045851723197263496338309977944448176443767558888396176217837848583997176324406892976599232463157512089487749145470203382621299204636839000688957651523109189078520157381805222022230806410128291915451637929521464870912887570319748378784561677308235636718771234819166818830908421134389853326747978708304731819811169284887033991394222708665584527725632343099500957316849716816928413941028526425311639060326146272281917283105460174276735652603036841905400198180100777262781613654049051362949687628403512144471650982577943486246810265769872554739777480062564138480069130246805747782051624508201282254353374132186802730221567968841110615675577883380542560290491364217725239399143746133471262499165228743701298370922700342674563442024546900915764702724232592507601329538387807486889863764916828826609609963505406383182431360745324018526791676811268359518978645571289599635221854195603923219799854238003113359097772725671613481200222728646836405054179049450057280147943879834417236202517068221540413859850313708645793302531969206209373052816911287619334526166203097981129676286968871231833546974447372400599899398234368183367410976902964783157727272201624992829803744029378508890519734191792637436411150913376955713041737526020260223464363612574018964562917005882142628627430753062199055060211958088754881123082797168295726717124485824366557362167962494102471446442721479025682395139848825790830148982830915495382302876488386521061452827265512596849408345445938580542397211911264016894489394797200518040413477464422263383063407047198973950900653459903271917577242141746160820996182057511984981294628520342270864164526005399818219048857689126759739382922025305338793506994016827257504356050235303518088499490761027611530033044331359865132746504338691712934187840073080960206594010311562675981593007013798056678871250317443380403333595637144162040438861069405340204362910612620953578764220167592801893033045899675878369404103888078559734051012526061063284027888638043489596029433458523858126592097870799172873368014708001011728647496148974664321003606538708045902205506439815932603688572515650873665823171450755824729619908873506017143933219866232346998039196560261975403349727056305620314285126664907450222985646071323222852951335391981901541772655714023166608771717158340001326089733218932649101932851145520889296652194516786509206877102672464820872111473895727804039561696292021964909959911967665515091730388202509918172859694358985527308719537029199911414355672808208578461529260137042909227546131608332687959168723870793942495101177997619919271567685497968477310567290788231030573948203527905549463694122179512069589729761561925577892897235500647250299912047865309287168459923250886798202412066017421042729354724770223034479114181558015921153619937928304874208755348717093152546284088136388526854608026815282749147394934934952943975726472959595167374304364457227080310170533827884696827990503219166664868334647302631718366825151894880229821293314016754956477228705756690594194610566395336540017309057213006276066379020933464064184751521348970938135848879059273349648085880547999656239544087366742612811725128540751842649613026332098875451329312000441735193236919696152375974311167671520178495875050196730342621816628269486601132794737242037870445004494386854356490956884062997880611790604981011894941115945162657758932433625722861850902747984296122819077562982919941585041656829615000879514428665001958508184402374674245562696465671779069871270949552847618115201300633309814765122993658880424215604175906298982910582865662660108664589595985330464841948657450481619499268792931225779626466566859536201858760118376162237414673174369294685513009400655385630281438039273783723137236538514690344500727205819329410287700962250954585318032158860567253200330413620095427473413002214011402577798101910029971405609662916070165282739305985124820891300943039186218500539552085415500454076036366444335292195998949462177868247875215090191478195759903488469904738791616354137039947749288556873064093409735931507455809919532971761593268074289456962657177088663408764027479708911290992732949182834184965499154320374751218289299129242079174417900031764997293711726838681873592065893401207078601180346629284001514636459968885346923612234244568718350104458093015890469803317770580460077396638827238018236272478504055336989661559886014739550579251088460540752071258226563576727349891750002327356242706136260189647531597058857776427871734186782268634574326346417367161353686400136071781937203863512086243152942923746105616107547970361154417556273702908607876657752831315813391958866127125843607432860549964325219997639936259848653418048037890588203394544373619771610040303869967578721629963217823392817440749533265591514556174167389142751077252757970998216562945849879212338633896964605992754544206639496236908972194984930180662213706657011287043367075688898808043815091427087136615613460536452413971797071564695556701886007125881358057910238415008989433680115366311608181698451955559095873242484021889397385043956804217385145301469413773739500544518174030580329077568482405755747525222426265603424542647220689264101537218030105244563057644208202514885246233712687096453431049937039193128602351646512747645281371901906912788708307585466770968730383072994035914979082079733747646946477195182396397627335512353828792619710415489587405304738526031470523086011453000938912992861897803430503531188228626821889740588719786366452852333669651131353803638984313893457868136691715927766985701960812306904979538286098359940915190408296026349029519521152110752856826483306009450436897866247791471833143198335476481120018259484647160093323327081918822919441666522566490343218431438250364714956524457248685671987112596738345103449288193374000648897844050564014051633614010265937367532448099643947195926011193259813334698141373873516263972621387145812126195243166964380806116296170971011023372501069781687340100617386904321424048999536370510607165151196616741333010303900549999027729325257664531899656353654661034764885160521375806000841976213796615658677619556451310644333122555779530030300276007194080275701609250345650265726602796044149161257799338178339645854489035319948406710690863865639393254844952846950437633909306952509764592605896156190335933677291494635172241971811097371452938933725948798718997459132715675909594058042573304623522569352844987349613353816345668592550699335286782599689782131848557422056799924606242169315256246822789372793824033347743626625809532094134817343376762192579479865729866433119484303431489375117231058614991268807847540682254276943869800259986777571901313526708270943122929576946507304390873533158997503208616515684549760116241248595007602581233838198704089700470813785811267816660820736129430365042289044983453455876340169023593399319383170774633919023500045444214493836820914551541560797828472915539915660380285514916009938483654850452708123531792860324476823614360599976165074162337965235177731586792730909772724609813125597596588077615649726277197767226180252773663429958334801577571178996619953196489194589469473107970638658602284719672074983859295512604531801429322407886227703542486121024985368816663712329791328025594313669414534279569211778939159626469278763485081701942976947403169763035019765626336308432858395585919761071356669572952805849511277846022486105214574018313211104560774769419091170271826231328928753038070464109124659526131066023539464513324845763442262180068572802906927282674142620798625844172228935926827033987128554293760048892975137335151086052260192301842650255090041879866545093759683439370348661344215095284087115161887005219610260998011453711534954426128606806499056381734572805581433365127222110504376010353941768805092372936635674303100725742289330435445886733782874018640847259203651421822368639602773704726241019837660476273475538842655352885467530135875561281243496242461552410548576664303450363971028030189831676883170698658776536305878713010404099993906832733248618052757870918495244847272086784604546409179993861677700717857685328263282556047293823893780898026660044919596550812661656589658639176876823353705636324882324828590053032919132821796716090702000201404327667573385497776043392307621227572383711210334103022533036852811324078549181732000790757394540606996057942751927722946108391305554334979236493206590895643080019625573996336053682871388085383090451683058338393337506283190835130928736139206025388100532705668338429391216272819181760048128436709689115593718113020243521568671829267952666684219717642379052647105702431183442988670040668820948772222657845152384570600126853188337430841518315951709641265111970092952227996922128397289191927646674171558472192440034947672624534258973021360100562912051326937881876817836447503042901957541309293091522158402816625008441158129961400025383788149851077030144728830024320342001677709686199052399376400094264274621304041859834964315671151010891802372714669428067647072108110467546950440614636244771115590413063775655777768073041735383234698027903811018517549403013847332448439179655281953060117218821222158875094865759243909108973282037211410714896905697620050808702032034581999085139806145604137494771548922139194107070252840842564932049134651411652664208218505258507845423805052441421315729216056038712065041888745775739695421645138305988110269314094823465216124519760932315464857054036416341845025011600986837859990301711788035555117958330900299606056317137002309078206972710276583420353870329971404953444064616884362364812797382486495432872539659845082692307563534975242587551532921692434219877781252954351529172947725610723010854965968597573038743730999566809102278213802376569482992053375912262708248671080197492045349274499605860685532075104001067754702205580803269805497334692025481993712189438882035993179015278380548601118270069187107936929742050163399821612021444890629488114578432927922455979179114957751478497664385039832834778936481424551095799029933604630975380237610256872172838341218111973120233811841454304785443189806116061580216857838916031519261321513832114764664598668550000121440517513232476525491340606777571669173552256572533443989858783719860701256191636108768873479359479373133140777137982669607088399658059651122943722507153605149831499272849255070781669450795282499773390898190215855097532172738250495468037244981297163246814923168860475950307890057621910358022786332444855453505811449920799279419826557018046781269819120250224384611683865908404804296908012632166663690972804510253548300034637112022053050997076849682092984041539098956343554017695363339981928377024753433493237105286148912005793765438525712094746219664304983903311980341005586813704078536026982881815675297436468057693422865810997641273820912663301149986075379398474327614663785856951449780408908296566009106059846225454310852315452761367337540650261699374199579369029543820034182747269725002554122572764456511431521858312225712297243085632856930636357556163486021364038649742807810610901839103211954679704535003190072784693740999428553175143673832890182930497521166546953276848858068151604807576398712116750538412344256226499971215898058087168741148578627186370125535362343004860882562346589697590910288562732211664058646500500637398214645370326128706508205754539367201982847234090194266541142994127495971711019404720303803349294251771047095329207537457585510282695855416019910199233350964204456069592482829452589503073132718659115117223429467659579719189616766619534662856553770376344064207535244802524886550094474160258227800018543822967726100564446708619735481693181622961742620077051785740030574119690672577358092395391286694671608344837240536937204249630687298137110277477362520723345261814222872981536481913578314603287600214406122914055855253985094727575482818388064847749369735129827184848609465764807792992653550605563151164518700273226876513396607485559092791486809251855267920996734139696381505953650455851409007099904850836172372199642467600805723455644699448873241173037187672677370439959870176193042580398449870883530783716166926580047697145949054462959096524323787219588270855419169898322047031396727169945981009672123569454802043776987108446441020172261327689900753876809187991186077769037263192180807179131714045009330614918117862534389847079466019186867253508056139958929606548492286334638868285878677503380167133641808246627909655559456608976618520079574872133729829283817267627740752154466430770740563503647458030860127580393948613675707001609198954700819726401831649634196629975772000239234849757658719922612409044055303074549757142147784026058988297336132296785812783339275288114074793677122524364562401048992912419001773312258912554736965062216093797911295040210714858181741351755224983385289068426906130951304479195716474055558998438663771227285241324982728644766825748545651583842960491469045673972249181644006132448290534733448122866262721835771096558118292631277161512441164990901036030575222379472009568427637208194757703696330069802029454553529673034788767919007296841979128331783469000668265816923140102216666724595942728234559766426327103490186978525299686477228130845325267976149901819966559896986695672140267028780562595399397964811712437734648555794923344029835325331322327811665573116891106042603363374648147618492370714505487561932297203153524697286885406218809223859368655882123748271473401030798758767206248583691505186377616683680503941628904766756414296114183964159388434071483815995525838106246120573192130385728840312763341794335041125132797738057427851824733104285398682991591028093156563631770063828448357973372778432853433134010925234548355673990919062831026587937198126102028765895841781495050099641369788794449281146649841745111576803121430175007927484035373328937258731019424603333079598870736241107606402575812523081789543037905113357353152911293640831219181834581030319094609892583285621278377539532731446591740725353158423908722139939829135511450310890983433684025815359410771919237040733143185366901171465777609910504335081539624190045982603744871413640565646671970492625159529164591068053470318655873458197288719125065923669723599286372274961001739071190597859992096094210142143919932574898625585550952243721871053240674035843298842811379229829887558221819146260896723023216733717101979201827812582149584302297654739573207868915796892134959130967641789016272126847261197338906038418622337107169638930532548655957154049283588056075031059004679597963139538883448620843813946548358737596231095979835812340327421651893062725980541341375027425477784543918481515087647210362512551809230749379717398376471697309465649528051958871555751716687725127312688762535105825554661034806224228168675179752364915171250254071228245688925138891012549336293266834851508989459853554232376690387688378424512080521388723382059823499631795086897789117512355661873287549187376251413391569918288402969428356199791176826044357151574069046066112264037452611170248357643768133089863073331301386905098270111241660642924727821904485523908535906938703563593422965728411162964353265452689706434102684187016108873213297518613189492415682622324237381490788960322026621180597768031033298597290373902324205937980540879635420253697106756878533208235247114429060729755295050911573271081228129161867365832406225111552654230803842762499097740569428075316929066132587680991279062029280147080320771310023739461293393425255020152657157233515930113051967617644790017356042527015732467135619743330349965114786088864839200608377972152299992771517601890041578975107740362195898221064582352709966050080897549454653604895785807492614710214496727823624123989707993400894573466053143505614581087397445653256532821870924050647545556974902740915791728178470599138531750621134217270052496455087049450882851383349194334254194187355249318082447198144896759237001423512626708435336127583147439763268263028360471071181959957122214663068521645159804872876563800702981783305854685348476707640667104141173155958025336955485955235049098378109630470460743412529721603470759424987984426481125440641481813825843673998936723265136322650745100700709041255759709933953234939372072128905032808294139577368605618273640784449729597961997081210100942385316043730878187289443671134118445036635218583730224189101958466417186364952645413116731486363910562597757878114766960129517046492842481523501337897400555995028730792164273745316282493301511935355061828437071271005631414523314993161419749199169436060729308879403194697835235064052856644716971909420734145344102972372507871845160201224690265148767870904052948224876401231415684395904114055974153538891535782033785090418551425243705917414677386229774202251255964121203406376366229979877399459520358016610835465925995728472697656718691559760863912939041237208589625636944125281611014201096606854929468292044933119439995599650959360904985385633895321594660203940635379709232920673219032248569474068882791743959948653258232814710913682186386560334521192287951506209836564117868240525030017681524824806779598751311385218294248704553714117486052766202819777169757704723084534753430299822740499038906714173703321333612821964111727519567652764459544539130110731519814576305699401285735406351926255692940794158919085961387847320106050250200771964182157958092897375799865133195448554198286623260679119182307862669430345251439732144706186441206750042247550465391971979639042373879259833062353451610994741146488277817991811118206899805075023138985264293690326702694462906565420205044881656444179424185306117185929978612400426834430606564130570430730939877968109854625453751387727948604337698011705320405119938842709718199639506635470541885859955370135027632993931478712470524476948309713403834933556883114291350062155944731253298990578642268272708117750803663237969689940569084422963473191511747861339783742594183352799632966457315993453512670656326862174616604924027282106568046118209733443490032680661144957863966603188299232181797196599234528285369486330125075327971998749597953218565704781794892401456360721669762174682374486137385539215402919796827881389663001124937516480943421271746558817134745197644104605657781658256055036252034132847752029539897996782727292575052134382655128462292794224217062640020352574510258483646085959052445031456837987362641555881096048638741115659538415061356783194270387389313524727560045302089174117520069943558295847241070078604332388175994932523855088393208425259993232500565359187142278024052374760142652795521719911728832645539807535666741982806976324423193151983379569031399348565371714910808321553949971041321072153733011843719412645170007051773416118723627469861091507931806253325541384723781420511154330345851581754719246123667170279180956487546275862757503854501837218637095308074910962715574380608337891219072107486862122914837223839416501035158653740655991746845895688420491046751582346036881330005206799979273265819175715787438820184157084391559096663031870872353005767506931357668671975014268031948112836422186978211044848681357446086365964517603566305548909363035501400455972234218384392262309519327496300075685128120669717144528330644355736297462656579881714049102041839531848922259460334630171644176373195555263693302187875780477380732555681674260950930926327000701421576427275478814672926571441931746130798334235882454273529506189231884124087624575610472898486363554507034230913845234293386864373760585299789725742099784392932884875913096771630075564563896414147043768491764228524991717737931958740027683604470895979703379684085963713843654001069702100769784995416347439247127948102410243972816076837634655299402038563439347260847765614553763780938147675304923917477075783856092418858330476926790542493756655659347203195297121599832601824120200520956770557820701791196666975076630470337654963229914375375881086932560536904295737247930052271814985155329758615316472540309171119588806993287997444458508343160912733955516615699718928112189420881967077149023867354314067821149325702132669582002157403445167368361622030237619673472929084264383634000654094179915168502394457921916428775893232747811716815197919350204414828002772821670469035129357998619410018949061477877276259261373485562328462183988456274816470355519199605467737396231258244222606666197066087320896536379588678649912793436229220787352305155407039847204549514598642424221873004669610064640921856938318533007001473338511718539975059657503614509883282976605876208715253707553472177053245296968938735936275773674105772437759324113985332820703018832018604320332407454821848434032827674412724619594278257087581744498022434855543687221253731252734490651531175129852969802857478039804641223723123826493645654463991174275677112205712112666681021883538859903198501282442426810276889240856148037177191819285940690140469967402485306321522363359819716998644728196389744668297363134384742408364153056317542260093592035736966568211634937064293480354700998066293527633761511973680042881148621634695665499369727993070928933593181254398165146821269940655767949870112030859919321530925528219270733402518943964637106522406831784566060288011012553524575879921134450588605833740605869793452498485274755478987392488339960040426582333336410651595290377140928779149922630909726281773291017152382254051275652649726883871314378221587077138583225776008651412661232954809212821101016353506938401532938568445852459624414260980569212274896949147868958861226809542548981241416751198498903765443591631782049949161400652725913265619066322241600099930030112723523195794308959299761665430879744621907004079908800802220473863461221347466379858396344919774737206353831565567512711963226306072547557207215080428081036673318765583238985081498598388300136593360230012541390998376070046817240581468830245720904309300945264187742898973419363063211007766196493014138567149289634091159236198486359546535892693653216444894391249206237786469606167355489353853946976887415804991011221285009401111414545489423024232024158830551427220332011833163113345391339725229003346401912944391942234523329728301017990791889672616920177262684892460333056881709743928537497340217877212545877215537841372545683490139790763987833033037172710868074816332456772903769650390184165759455720275243030275754743296049678866415379613904891148970813272272700793332816152301447491252928902673292566644140707274762339487570069071677491808189103308118871912792047417585446743282910786467094060633356258593324390833657240079957801980670444259288383964125806183611573976700904186743317826009232028704373669181456056483282004291592721712987846648388553829440906597969678681154765001520220964825121208200071694221327257855269364740412989230440208202889387684907227699071745848605683057599200857096032092454519666339861786348836494242089647692790169576866599326630532368383454999714148313636748027104592279538378329452210918800356035988435985948276773852447764262489750069970415583725682955476569420101425452171171538416138169273898140038580292021708682263871148356305913666719193011703732150690712504688567454406248747542031409683247867004935454832423506639288176604243837459042601772963723245597239854595603028597824493427969652686068441846345487489551661944736197159579661507709018147750225345745796879246435144259650335142926774123490347794513855900389049884983081586902547370614301997256906121166026954837847460349904856050580375445537330802892227169162721378567423856708857231970293148278473244650524984960645582582197452162557651589042648747430099086662155703235970254414392164617591392488878574331746103174419039403350662596121898289810902581098999870441576543065630796352265710073685100432126717663483584111668038185532248537755622417353818108123275276396088000733932325067224250990136481676789390810104737805225212011095581390638421898791084679251311666972392561861964463462159081648908820060697496179373894362796626878267739817174341998109559560164822285276114235516775787677656190615244211946403022130118801437776755760363942367891043732524294874227071976835762693647814876493248647609987087871507557965738087978991105812557782509063376805770089388068124534576406472325390109571610743705066578277496216835399363917887859517923856506758868571507900117644818304374554289457461436822214854020469655618309088197989908628472696602148905039880922643119063811224700862228262384105784984833421703595224330812853825963262761224979024227269466617272866871998435985550744226307179901070456744483885074174903187112782190948636901845515839427959271839226991584914417336015041859068924397357871778506964419002764789034165843837326685880944725705414332361942963738752986444497377651397083002174537071560626871174833777858267487602114077871453610558937317897748133818422560701601193001348983810386363459104244961695932926077427993835919875393796342557395425478069064952909403874315446785593839519010450120504818990426729318344823831604402155905625703010318825496051914512348291445410487203488717069652114637963163498003196815699267754017113594002773485236663537100444903613612792267045053195654528834037155536323888372743528487527881568444549675080155966117205445874850066614550736850482954507859190150052516820300916267393215698067395654181903314571120213401307949563680863456803997786792959391026267219515653865046298714680965892358109937072365913722929675436864253736724793454482234268740927390818079473261852923121465713121349819795090430847397027234677161199424228610648476065091491040922964527534142193354942297059636357855173570660817530896822572601692029195097431492057796068821465322134651046220012144978354162770979089765489980689640222704370992493470718429055838341376463338914454067735452018765655474384803013030572446467414341073085599147324265049132777248595352090342077570010796228816730412251650954645543721745608696134660829183399880474389235797695933836798993875609555536274372664126869890253851626095599749854602252589405569515062651947924028511719627530655751874989384062139130337432400826709122056621429250874495066715837742762765920557335649657302412650390858606794222946484794076916785860040214736861777363645974721316705693902676157854564225946273855675424132348211261458460215796524809548664228889400648320659818423266748849299523956904876168909365871225008883466238986592152645910365064087367022765068802137273745964730914105561163461491617569293992738792324042452300148570260035137749815690176921526874552434896292362609390622591677601582486235721008514661706012721558521319036318492179463929407945646815528637205759995340455351828501778389800517746704578228755438092377977430871346435389676964294417589745754379216925957289069839747166213666599486019421432397664833036898385459643602284025665782551261735639210573349601135354096878715609769195522758243251375619206397237455557330158503239600746089468472377202817664361483737629017506913696643355779580281301733723541645057206019497770473760387172590903004727152067919036021061488653935340794831014456687864899522900801385778412251569108345357035990597259236208697389714509789479256046562603619428704940281774837685964445738299812626256247253521307272152601460470046400935705289102324784993191345283002260561605368012756853388768608745902759777444962526808723183394185355955090296366569401502677578206044031377975032338279697102331267343791939826497786472213096241079073767878680852820030575870836178233640311528860087967266599311386829505534678520689669542642187409428498109412062031031556794366753201020001261875256184312575570189095375683361971685599769338183601860533204558946985034872751429490194456797042030491440389554144236281030054665820317845653421662511070432791717563981614171153272824804371856091841125948202700669811329476431145486586666278830819693204298018822969981475125808555021869039789962429031015594846261721095101030186487112325608630522533204011020420665979499945920706647092823350819200685651894222902979602623701683594574912176833528594124654188832470003531241501619780138879026573653720040193726722184636892146365837467367011504641810448444758097138182617292044511704196977687632720311757719819027687152002391532414010660311077790389567820277453914925149731139402179060576502121402119420366210901258841098042607443257204649461318542358991325264124196382846244364217776051332960095004953973075120431180221573839269272984708065487891264486302663371708731601769152369372685139235110603061117462860201460573792022448607802972133621849527800611428726938536031038356671723790845319977235122754647624117014262987978244898580664095121160386928465130571102931911862284833800443116992854776119136010110149232738523355954801653818161485408143389758187782737182652553119697411542762152231774902116016115870140297438864231577443848287541141131403119846917997059929188932799924769146222480657258879037872628730864818943706238123859449271425805335739073751902617563906068505929137849753951984176862449258136459777295145717749196569802534227384358760468630592578523514919927685827589453240418837212086102246097851402140740601448332057468760021756674826340446473738905066743239165949816997592749182152455191112544047007230580833797256276908983041047587675772614212062582140052867249265031692041712590638848385451064497328933309651868375732746985574128474982112798532052164558499753677556624937591585108720456197377673902450160155724869450840480391607142084410141759107297039071180663232308147199678204059809595545708700875933241226980634677490177961309001897353026655791641050905496363840674537232928232329179070981196367263830356975663265172083033359153679100984851234480071889753385436672752796471898058348205536982026474117850850460020624572696530078155639798460331666372305671783951717370529623308602256568212476648152035528592463271385293020497614108093353893658658564179292283640829038713738856027898475508046492027058497377869595825199474559397250249167127979203955975153541026014615326882291053023927639312287605792293701755738069273762452929580410932962126969674541757281854377687054754855325179775070260805338421934719576206287510809777572770562705123512109519367497532022622508200558860913984209117544619562076900479383939439570155120125832878715829935728724391052203240099548087294837194547967063485430433231997336099654997700265759899089706111968495929815601032765211296188934875240734625194387864925330947289554697055231542996375694515898033756311271462433644018070111988708527488440773120882388808355175463674326416752159751849637720027552024063312256470189395811592812182290031253781238763311772899447476677469436414932890265386274214835389259528086729764906159726145090964892416295843468934134363417611207713544992403786902647776288899817635475820817185315317475788923825791927704973729209586689401928180688673059646720443932971894824500333462739082425350608209843269330926542030715510749081691989731485261480815137764589486967817945268306539002407341570761696518212175128565931182727427163743262704434413310370335622301474725673200937833947123943497073616694137800667420256670199042063605464659394333521564320852774293865547868561284317706439985342310455317860877604233285836935499944901374945036050004592101443783233994551732697226981091841401911129657606334124038578757950960184521461335996116642100221576461665117387621156774492933542131967738305646784969424697197182464269834981655369598680674070997447951326623380349548223688715072819823786951452922037804977387795396315000330440039432756923715522169122698756114488193940004807686468085857829025797231017877640423426849949773824787389419815078089000262903892923838971467613056185581972593845328868021971643041600009865088056181566200363364414641753766290124992163919821703062550892931075484180554660876600518750345404424279441675268260393972150829840817817100870442080033320086900500916791417948995520115856390601946823512641648520763907011575195737908553078041731612426948606910851519736593058974888911142987163638373354505779027887176139042943757252039730014664839895141760998550980087144058197432317054311812484162001934897216430262043374888606531076656060608729542038603925309417906253111831373699347034977250341837206305394158289555251074399026359851955833857295363691627112067135116026294720786658972972784979248554901342286422005010122502789726275517792832797241794977798687851371418317624133947473353289548470291651006715450603644599232660830157245598705205345450443535088997586421319572891703795227126015967597872124582499184977872281661912603448595819492714724523395862337462613232621802186886418803524122913784046800434782392755925507661041102113566665294829923089842411675287002797449352857525421299792221508234928556119075084235734932896528738698310307496137975432351435811564295083632270096095789852843790576817972467343189539925295209103728479477126782275009782186713651667096822275988258339324822920508699851718212263788030052533372971596705626511039016729405165527417315118381960046524500466025937506429075773730191216099063478122570580633122953420839786858692553304375764053947911045095857495593856405889070061956329105387233379315808974280957537335026011499228786442130229217433885338066646401822825931365993758967479114634553297524970428903257413879162079622316785247726406998061037655108458188023737491480218806335512342173796516730350001777819551928941967380612130873768214767609977935967840876146550110327867834156489077557577522069401923851148416071915827103228972059034695843229798189783593065640555498052970453272410142763088579245104619740547294255101032271022346835296646913108581977345814335873648458363305086911866780649549792549886130115863760889297336599585568648474840989589167864004200588044314391052474637765878238402221395251756447549807482338655189377534821808635621893750042647750254959182497084187252021358887128796805256925584907870551956558956644896025157482371718917122902128771790511809212764641989099931592240433484178539424750401113550098127278151693344451194172679249034446967303128347653298793463480865181433408264662832908613914689661153425251085460666543867095802344310478183451101410111896558163135808720029299265139576456370207886407519423931916085066415890047661745337065016791134912780459280348687978761148513904123546478218511958443068954586879680668465805323361855114995271883666170644059186118086242354717299185524809083798512676495498448184088194871339925065054512329972458364108672355746493649397749734179309745259531583572093541079609072432398004630432862752244919177774164456915996368910371430605400741546576830111622955140317506841051630082059437959901062145263280767917014859418095523100105466852997657837794393137764178431412108448745690625508104699160519527824709060375260284729581196959598502981979547276501054618327706420654904417630566545402828777303514493511695400513113482023592306536966704206878693146005002153752129725244714485577834781653786884122089582343582503765252492226962455043022389272245933962621146897207289600856465363782658438461512158863553553349593390785210986134300461179266718139950495383818241945130862743349560821933210924898984503049500927985997124214875850732993489523334188694123819861774778788325054885503471881542123602003747135486715355564069933578971256093604292451618522650675371116844024629129057011020815097589065750519531494027366413590226253607921510572368789221150456564549283848942043025141013923709894626562060195144250235191332823402826816885499080111912167580881248633003461495557902033051855194675342064701879338827725925671964380623902641562055494446532926604927622681923102604392238941546023602998258105317532151405878160843915496002227823211122004256431065243126740132369222644332711425090005150524690964708927252608903224397891755234387775851477713443519772482393663646317483791031189136783469864639063313971475330036303458323811097726214083113947156933682268025754771235968194610103288426924595947389783037516866223147810222454642473453366871520714554722952665097515645913053403397060649564821764037204218041309253720493150079629387411687540025283730620326254380343278587998775219651710329863259968330877051934927518023807581518686408369787667515954751190287212689811561846764452181964833953356355672461793254468878453688091686893092101460423063793342554874559227752446834067719090820970605913578324219031327957712102768283450466630933045683672677795266716180543433418879392948552304101508088725599299992826365341488760943803946006619797591900765093013149834025560938689564984406394147580531610939245950300957393812323513884757189591343452021050973929445569338483171801112647208963437506820207176613082105833752115944028498752528407024395454434640032960862243676882733330886026586170990898158326330234085248440209523412244424367141032653899476131064357260241379396124330488058664828341806910069514966867068830879561641654369318602277828638426710723087514051638498294509686924406132759713660975484038924119638243313631843314623224489291028890397988378676351289758262906962937697785227944825070471327880208823437762250395703646466765047817939922937666271931369075830534036869440303403833215823937112296217056120937658470118853698612346313865561429578228679634148025348272049056955385864300080127970355729420077446866349362528364353960957887743531214973262919903640731328806636623340108245291000589480382905962692098428688212177350865582172263207166286002930862728200136920254757696038643449113790790413682171937767141251987570925281626594512302219399557175208961727447748049928796802322557750406907618310810147957234760781823891995669550536501416388843717793218510187908506654927205789897023019203088569503839596327434150537603520057417729837775119440434299975909218939604864326115746134713096481753035845120404929479286935478812896568699785790751012476264451030894707216006700504896282534655379510510317186951730487345645296961136136019862204843688236290238615696782346351571168551137617021953666418369783595991739058491134025645039832338479915790152270677872252076651970847918268934576794910462535461911091994634337963955324699955782303302837627180318850835961400098714573970636287809670770721462065348062071755182458089634535642061268470519279468297429478019027135148441658433962636093310174904621230089603133010747276590200616247468407257439910134569750260351165222130457227340856818798539098168469443617071138017365324331691117505674428038326011409058735514608558977037157897103984688514377711526113847665840045690834585177272624193394181443192288684076199386218135903991411453825287190366392672787525595442655405308357915090037137447165530788410284576019483108309898103786646431645271679597178078179956481910616458754649266181465653002023228215937810907241715037491357974031417628258944494389941776127723497602296592003168868217930377269754014540822972736462982645689336914966543128163555365338691942586192039604539470272081269352368352839518803517102008807832129110280575552336108213051678533757751364065475978367590202511651203460717277256816997867392861948619140822690593865688851811616595057258820849980918059329159035891351555608695468287117688894834808222022926295050040141261994641003011779178402044640772256359079719975331383600403638460985444893080858521548864718936600104910438926981263550416559059779474272516874802112380071084222505820814103355153983314596841309961390165359864074743934533725002430063503133470689662894982686138115066429730078430823182703001522108453597039792326564495319598787486591978478913860580309112315674181551075877953830106576849187679514192700933890285015239007949998490370981792649350989705752343727134676933099388669767652712449581416277023103839811549297771057230767550549305330664420433568892945304635197189204943622435401243355871561103689516954485957423770133501862256978144837237688532571456401541186186006101803179894449309317540196838401752157294959687545641544461102175178341210917537972915829239418907573514730225755316696896775382906900846422925134695422776463313016703890124609623384974646472117188113966973205469109991894053393064246286092926478307583408089407141716259859747374265242254463526332155535553958067144795106097440716766053103936839732806157920062512342457613535730374243810239722056839387683219678939982098126925271812959065674156342596815230120428067931210327054526033280712625369105808543911393810041554565570698554941332560721800345509427425776089638625693000928624123249153973841183710155138658495459300698590081818837230471281823933458388582946776395502149913999616568684661672265707087773841709680087859331633296198840949207366610294851601204764318112319951970634929044048098677613214129692511291771701208643205309860400428943936300925775343488023777814936806093247260389577887602532225755447591743504103683811726179633943620864114955190486503232588634357915086112298674436212199843628999816815974001939079152355440762694229885369680084921195008246456616161165247653325084689338861300364944235984199033239527150768527603747232217340399403370202187116342658006895729756225601489946014114169564789704520250995686696071206540223848230853336971429728997684485628031317183506952775838965077642668702194347548005991685270073187999593553238775206401207970928536993177302344448246148003670862701016138908404299733556401628928707867276778597460538034589685686666964707619423614164553252552526130983857957036339682368259281089613471714763457375995670822567494513667797410785684641525621028551814500016261576904827841847529830973498388309080145294007101878512406573400802477027473299648188248276894391278864860900990397856531458244204777182805282287005899409526502258629428710720487983856056789135515067582439612023205274131645264804836319884723711925064725335811711051985114784310385265426812327243383394303621904321486962253661064771151799857686459545965851195645415438913374712250607522113413388983905332874148975280695520307775069395048368472247743547970399485940132521234270045157595215567874000108206235427391647284538643585321044963825266874692113770307298308560426181533564082635746983949381957149634465654344506197649293675516156269416896256060275823467343769998169137436312764375882525446492236224481646841692828174849094749596276695888550671853925723158737317393628221151559787994350158352934198475061088229787980634524758241197255922218771963719877830156182566154378313218474740618886435255173244466374251962143499180358806773462596069898051493535431488315660674608810017758982036265968900515533280372904768387706182547667799245220474809801194241905500796557963043785618051626730369606860801210870655894589050523227132725131504862804209191568163389737180703841344574688470652651865797727704245215565103720759271557261596545523012970071761618134965506624256563471200795942019189222646283964987672487615643507231538684609730704498226890306265535262115253811057221418432695867766961894642745665243231387240400826109533584937140937490978219569295735885385903025978815740085952720449495578942308623244334961216780037813288220742370110015716803633566693483467909765051629308180558687375638757207333487126281381244761417843740174678839432121291943736076421010961876216514347005917514527605206521302175541481627909924970000077334064837890522732668619236586695985252531213199295967399025268833350442531183787217321145533164469408949565664174452267992042379506514821313721344673837010791703871327655262995638388909537413945003094455442401926064105799606706967373151679013748669859896126514536271358156410683214111337918845502249500533603724582136424353670370393422725244917935768541818659720507501352284526369905385924600723684636838486382112038702844649788480451246543532392783174530819969317714889551036954097148191645314391884428099223521519415477106059470945996899051356683613807974646111617242363212342336497237636521679443654542788300090881295966372303619411729394172751025392997204812942953824950692934156679997876319514988854462083338648646075321489416374209809739275142832830893648799871311872935237514133266716387822395275899995787493613984293960823450692050701265598559695607969243824380466483623477455098117106331562492567906252270616430880885027959759370244255035856313919387289473235592957063172254067472994110432365583649908101874607817536097296822702879306084805646248942910071214332567095474109475813282983632045760271737522402638018717683066061964368859464337007472965468869153925710488358512835947107449939037383452376306500426294815930427064430939754962980196576703463032438592731552834121420977878751484454742259308852057124906790754557002623088849731066075812986982847334970156085177091456056530734636969088071872027324647611821565483042626930672813270053117862774584957220900130996377846881041750431018366236368045737689471119623149705120085454547625945225628643176102047046762397303958472545394649045638475089417105060435956967930883904022664379337766095350825494536937173163742782420056725046263815235849582256145372014799477132574750646709504272404867614057668067435676135973456681463827624370017167023704885028442952759051543314267495274195502401237148356080398396584801293670130252859393214239366253135206304533437432534139971367254790094484206379493691166729036511241819912009674687038708803113067597649946197546791688729298879941982779885673253826929680285115155222650057541952054997386072944976193230412953023727375698687535120956965150353594564238696752535309054942343610709964204002328799221993405430893551945269104386144001520369379902099699448914568132975482577598774256099573917520543853588512574229505414426779836666632994041545547957969405422458683766303685036843196010601431438434998372087014866970863743009998450868193404804273759728784746868707992116682194984652170402806197008538398025224748660058071000080704064018492590558863465892406743363133810895868157470716009048579813327090344447395768380165403777393541469881779883597359836344945453035636203332557146574346510310876090683371296413202639037947565825301885064520637988162054696825691802935889143191039746968097193201202734836625352767424954464552969219016833481936118552347296844541328297295587489258481450213720626997895308462062000289729346768140247109453180337254098152509369212771595267430705852653107051617556287661474799003759038250111097426766293140908470624885080553707119165789886163320876476739132880944150831426691818162644735144431972705396426970272448501278214472946299149112256250701469200806582108744506311088717322249062294049673355785848645787520407061341307741954099932618610611374263974961529776293861860638831835682260628091337572503184411907416940002380838911094568751769323158333666932391313339660714695850500142163080866661629565568962610795614605032588221569069186319125508039886821713855210110949700569550574635311412314316512357512884844623688407851955645995982481699391876609813019335126826266422209400599325786690543908941081480100017196001728756275856772052103902568946571380074537940184360051751401751071927005501365457331804218823665170446697041092288292370464788464678573436227589918134418239484529233675628286585852251112307498146594051332293185528164801594130994979787081090760147338483484896393797841509410854157921857229822450823938875503831487999596955757505452613962378682569506212929970695347389716660449454579363750408188840707082707519897545138832320795320778623939836992508272028752545618816463218944065855704069341005778131461647801644104461307644252670272936243172604247973748176155976787960665748112189062773811224080875127973223818771319034199302241441804129015606146810059213131278395339706772148146952840399630231624296745524429972419922710772933707301494287892938714128135557174229223915470489642025003997834785397312072657186556152803230297769249722065132901268878352757350775941411188164587902104648987946968957682638396994248453592827237044822007259373684301623577172368573089593088271567162000351332329279241472405668132563094488632517902984582880717732345668858944586683210321059956551971542662666890883199388732511813942517340479320451981416590103059848636425711936879177154844647383360910980661842647204919333000269572092303791204851330424008547206449204062053364655940578328972892984189873166793689470162027340153498441224982947402010222709650554123074038745484165177595281960034460602212213880298772389223182270948313871717827592628825957214401963801136062082557175342691215324892621418709110482228248071932565655167294774173677844950520394822056240953577220174527152962864839909472184733397993162093983042329429441905721175593891672663778253845099603121153381173862407806822812430358486637142795208456130496870674729579527167538039705461541808504152670635482013801342431978118488532551989969363130410146031701655058813076890514254250678334397672184208886140353916255312402925352109957270313143987811668594532758427536975912505586241243053020702777582971818665470671908117303878456237377867369228531020404083624058215070804411974269664156231935954075943963911740751321903539511203184176748131223873553894247602770497898654692913924883001411629994415723518036635224482920294892527434342514353819801698535012471283572110411681375614476061677458015001926848260089292896263388450734896531204269725869560011648519128058120350928932179044912905665199256183097990047531795726675535839032575397590473417450063692597806007884858151749082337473629704610473593793293902159413111837425519885591813975191319154789044122396438899496971062292017919060146391008316487831928616240750438047007492352016553012567351100755568872711416714000579957543157282490408709559273399970575905519361264849576418376270928601898585918104720930378013763373534286478356201581118826877603617565236501406304281709291963620837461187626533512995104891626323458585570481006450968687646375444498498107423180623732096492986927950966498740633662197766331081808248580174599908511298653625177895418049527703716604913483089876063148392585590781667080712713183079587727079113500855289945794030108637170108622859011173388713018691006748193983783946643308023058826266283039602055743070564387461117963638955378285305299696852987919501087542969058275773335206852897336922585792649929828657777735433394386139553827965842774932541854691745056790328307762028597132353569132191382819475253169769474201089449388628856085471566615732368196435541551681082695310825144279829526774204233999057892637046056996507088552415076281119172849413180504261371082957344177207775883226991019337226020592136434245978480406967035496131472947729264610769941373404849857030403677385796812132835694607719216139330739271381203522915422846204042387637649595281119739987868235839003921934481903732900578073602653977065418430391762272822420005672647289111821865996236905398255347243947630519444365016748655004897203167158504243005967108054587306203172392974645613339042707816648696040373776937259219389946303172871793864286286246062212017417911799720410344866331509812985026061825506722246000065395571283653819644137543610718775781323166687225931802996884252898985897617155827200734768154396536731698759082539514688010773894063290101940772783433205523680022719493498830256483228075667963369686646575817735814765486901025955042341787755815088395222728024693904885429819140867498117080287509039238875038360865680559202970802563651407919005784730205106722015597471044696641948995612205386696051870214154865056715307153239094148216360791878709858363055533383928550045062825010114314460365753120497294882756536008571348948876783838975362096228048950652484172690486356448188978287994647950452419771303004019234673822136536152384587976421110989666728097228615229564599318994889503565476189650236073850107861401089751881902935626636449750964473897902495033407133202849120972173205900601967298918131683630223151960677880938672226033553364501758758706727397874434599177749892460427202301808420914629758515710240341934501237171385910456339250230795442687796560990279801635852965608836945863335224896205295451538417540184160677241592713182008229342294773185816444454605844237935678605445437045894287342151420838604449568107269750451095172785405882243185057524865843955435363698856142954305646964799818032364789088170801072278098032275649375036565239851803164013930497113162113325243416972164102192428753021922343901000118360682441026097254541821335708713599288372430724857934882668913329383126314095321703745360576601913783634666845005883823800410518291375822253049920597652077647414098259305376956294038382156829147074477797429244218296234217220508076182666794489645486292766820718032967164608658203401154695598280213666551934577523241011427447849062693128552360409044309140609348339098267045992007849603629621974682855911251990145244379532177830777598076685569050485727640487455603146782235973493244287129054193419823872537196894831870635431994116125943197910033533456884306203256647967238475895015533179711338381019738578426866301469716660669639981206178796552879591131734042931021992340758621647988034263608053171884492657359258113481775815040668169325558346530931938518243885385974611883880126676981811183470755287258164963223145092762856070964043570541084069046738523882005360691009178789828436615276602397399970750277152172037965058236787921394433302378463722640766527685080773825883720289086442627846789407493520404008773597269050139668608487445799956740775278736084284831719812574733307085679984993920226176576763560251139785148271306504097950733522730851098624635685004597944861982926673371584232268026869384262852192078493521884861224024737048182222974080327064875800047317016278241767841541321694548589515691978417758125635149884636724599351145567673311151112217653185591682758515279414789534394675510295677219480040754961224796226594578933812580022684275667337276239751001713303548314291258590219285888369291495466927929488767788898359566910442493330236826936997531149349151256829480482529104808858475666198745918133182535308102775061977018014084801314407108667014747387168764748166521788034257925210883756761465005604848112865728949278774059976525580327445581599902491861633572201377342568504492137856044524007022058517989778455988058409004606415504918507914927910910816555052406231833903723665157633661480743137878542474078048798654453969136184374678700568254742446362014164617388443697659296744261644059590716440608152422256166289670774684238281192488286301472366249898946876278484589764832341623664792681927414143471602648593235209514792116633422093772046035724874967001630520610542437597012283043005010511786361593530796857516542120152257869874476750156172754845220385102612864186221040550537120370083107669428323483095712714762607622365021281068378202418348543186308861845167715647161649128318758646968913775619592312107272424747951092327616169920561227869007015244600751998068578071617097950991924544575052847639438368296278227905801888746099690425491332669837943582399952232706677809702624381547364326493570274299619296880226994087123492715805764501674469136744117632731631130103984246177008309293040580279403122220890923240657141252813183064358672391808065678045428167292515614013884378264043029606002690289078956154264375826945588830047188002106780334969802696432457773440501568603688438211488313403032952839310983843095602073012412195070651538880309516272820688519490831325822763559295651042093497003143265738099890515179919807288990455436584210737468654950496006642067046011188913892510567706280066361553621374767922053694644538011926030114486178696979249724497912721564917793561537133104716005505096912479318057708423846729222444791615641594217364391620860467038230662253815678368808452948869335741580774615358286867277629386023999169889534625963310869022155044572142590019758985907682773412955702411045469365513358307408118405677320710277235548365847983894875526934042714772668068922327433150070152277384617027130586206396362071094859218404127370017367706902152296906413472506739845191817429013219581180669874754870931075518374277147391820441297706536735090793791898082233772201109807699789339127017383140087898630389485416877394103353123152783982034382425357545208069366743264204512158910450180333368152527014128592056540539054377566179660724916455446784413042144242852541295634690715496071192951455636122916524461081152130598708474002818522758683559463166298221305382692396311605649389721191664128789502746899198729198103330321748394560338730082549102187528253353763600672905153171012632430502927242423198857397149895857112899129670197396312286819130886455494853457369652407373335102229323276939243105161880072646975088377248270724341764862612115881975104482473063393994692740047224808397262345572572438809790631960560448217851782790390964751624331994046107012416438593194787411202233055524704838530780960618673226209718880674614851579987119511436518922853915245663465143334153977013362757617168886736091476593884347174286865574508626037716939171905232573081283963264661907659511168254940844111052167157256225227245192095685570060468082704914464968183500327897980467902306590167514446945129210593732185275827901988840005588243884705949636667336878331058026061490598006334283961596101715430362369373709983104630966652623068321463622939449419139620602263400883558265133525870683520789065940850765554109074992502850991907801362104427698830358322313214084743698312865513585904077912027685230252801814440326625449373962977854624813286887338426266642933015094679832644063944732829407274380379741192217226031363945768295192342869364816768987385954895127003223740725915491999874509886231381957509405911262751057802853307193139816724310133915980164042377148206128190077681340974953129301896137942004280932760016001556004864927837916997296131640461012288612655123063125555537975176054415038028064389254553622671798198536779801844690099719933152759706181095886439050345190057672864465575806352704445796944255710612888745279473693171719198200780486614978005672891230187350265001932533890465197602635537171931185575477849545673611501583855644857312172954568246500266027663792834363016724379558635981003775705506678174180937676569743884021789900396329946858636206777920822518607305053836231079174706812770471909905850582120343343136971089948941623662617468837478918466353724443913717722707639119735546213824118271251283577455432078652009909654119167717899552287077436016845361163425855547394438774242984432081297692130863627672312694000488096832171334217455566347812790133760062380278506915935636608456841709270192051434091411048031724823512791376657014267555385326345192900147596230907214855310173174077991396073553971208023187269255081499960985938208451281046483070282284214239736891244003329803822740167712595227929866017767895155080981180556959723560346505555849341872932918539017389803210561270349167954038978855264288975743266104663602920504995716987964050436085342049789325375179793799815491372253217750970990613439514023801145053327311154252039121884323562105670767534442245115952955013641306524871001629031260198253810440694874139871149494709073461849740360958688049881863943822211340339947306504029916432444912444297414612846938143653991840691783068413187581180052153171146262959889531225592062038988825386159636767537728812826991564424571744172947636455741675744518144873224142654466819631738294848971392269507044817208879293831241316242172021164382149527386358648289889794904047188459375694362263059832253544976409292318344536126633865139955499909088389023110962310578562737403552620956257857671894679483605225412750084830372587103390947308900714180227314458397730976363148318095357357581212624252693112929218167477672183056168128411301917633798449446533326009817042052207706536221704671575087342890160372743493584626170661154042844299219169133614061161679644834476721293283095087224307875314534853955898944387096015561035796832491948661366753702357965947285117248992824653382171335563551773568504693726023631433602359721847669400958570804523417825435590676784750802545625378297060036672457816500129365804749703744490847162517529483017931547020530228938692692680434685082685294852950895309374348341070968750822703100476590069116884492705986857601027572394233040619970737935077861688446788961371643003446175292645148744239017811001668953692483025339422089259688322684784052344228660876127348482249207390841219551110160801219560696565668961250509451694748937983507806416659148977864559571094097523487057425976734689739454019154574538947992668041824328226187490414275042635276398560976456140976495335300474376871227385727119865717638256365295799344143242508952024445854664653761840847920659881929926119872682531624053584826505763328273241694391228318624445347308034422292276242769915151591929217015506546120910062003680489565204270930694970106876965861528839681614098477630336379495016317332273193055597591320075811653068339992048706045178395399181724534330942926477257195197378671076227276075196140416493743059487909815360583078417863909857962774668862629974143746636022029679892201761681382900653876483082723183301850233380337381108035654120996709128805386343344963665696053055562957865364523341623709701955347358808476024876121280098516469248158757731291651167580852901463110530512049607544112159244820388135387649693586293723100827558371660500722002331275781249822996685669415745810492783620125444890006717084212098820842381213253261380257737990743735588492880556113170474575234272045426114972217634076568445879556604321579403005396755532903182811803291632592555078222715041950244992433226092410555723432612957825514221759311916504035558411063400822613563584496488962707733627568902701648693944673801495923317753154568106722698794137333789605373455919951095994087428442765720156476913584463417266452475372382667808402256899250555433465540198631264336178850677653278004781353879472441130804250040835021470077002598030703839702042088418195323256975948787388425948888982877345762100153323022353329027406824534256220015496150060848823500873284431106221214075121919646568430726703773160399009506482398490311329423833586953045799481931748817870295002978633280605728505252870593792198324413059391262817838922311623726355248537735091366612370921985919247129161759344095122035673792520298842676337009182077149603487414863663873485900999390139869775797326093403583500557261635139899834306688211365026599084389497349470719595619823680625992343836347148576849022426021766991635620448703080627487720169221911645012024680432298687900488985967869670263897321261113116343818802886179818756575131971385413506093692020126290315173669305907461155723272693497197956371383871863568093842382306941098387190663588554729779222186534778181446022916109431544822066231037934501816435499182829184568286587841148813699354747410100480120945705648482023157511492539708516616280276516293843691137853030629601092255705740935796014726290071939123148265367215921200479007042269089154217585937116167797357518489130672072306102435694329863569605219810191475356663742892521079223442828013589194079627557354722842392110319245546559801709250143058083159614812244589874842790526959609576837940305093287344978999175632395133607709357068847458455130899195649466079780581729478627992962396145298681905489968972258072845464182714792974030603181783841774158645985596114589296703978316964034074578771448011608677622985437055254283026451779935944040759333812576199164317671161511659303529547955750938133120583114089279192966479428225841650323653133072874662652199690110274778214133990217048322208084714601544626299155528786458838896340129927318342413824602538023626500890817596331948595249135259937851778067950944280203855381585708447719904515851167939893628551832273702724250538791587310568279566951758261136359051876823076808729482331082535484189670302768193758999516054413449682109133891364139914987278161553258500962840067457751557824005106340511838069047192546344553686573179655703990670572599694488755538611774663520231590107829182869443487743342697965515612509759473096655681929057248365795978010796404924453160114296710941821161275148335969463582507039661410767492972064922429002934322752302668096621726992536202758309361108591772415038586363440602927309778848754164035904836962440840993285264948142703323752175926364376158756386049467925008700361463927975920286398322599924471258679178692670754939858145194144535228641772508700675417849433179215106298587647218717116903412395802745242360877894157458501118312781569436692244605961354582446646845446278281501595937212805060717103074789849143930100258211967936839778890655325767755380733133140562231341498606689058223340318431799924962034554563775685149653972978495819852738899945020097250824548121669662863979249230985686873846243794811864934230573753224118949094773140232099549274040316663593441152527878553647184969757211095283787336717369186334829842620922095878770685074562847688468973329175293927445552734264124125486125498574675513790215515716562711115073770320468679313214167278600689009539040685436636335033221141330027880307986965960389399066554095960191060099031045056010072304605472332124788489567302913074802438914554514365838980899450797040986851299842199883925105243501249771279718307480490335298649898754915458527546079996462221930502268409821826581035680673765930900896734180073908336509299025410986142463634797179525064876148310784592589436091593262081667284015765274996683118834799731869879168205794050546448631710439555610320394810741164524631012156671429888626866911720678358964116816414184653917188787707198528141445658839301392859116121653408923599589000267176408183509341702694022859242097154684557874909515623453273336282767471429508327241002964628943270375743535280282428511058488170557484684648081180057259445163677248505582776701452013511240920380565836944772210068087304539599773038703387468057648614547599308017731259845015875163363605994233554877106470145701784370835274428778055967747398691555391305143326604424155087282911891206299882341564584349372510518643405463471384409877323493559038832749564207303277433026950975065290567538324350751143275509778463711442337657427869287615263039430431770211159654275060882454106783117853119210031295684166971229355260241157301868862349435107563558721021851799903049826373368016428585717127203046863168498108561555715928005615713300582904799188885776315233814572925917045770110892931452718698231256009582094410954769137418375709205853373798401739835175115364810801741495746183606124030337164410247960520938808620733917366578694975410569415550365174369162490204187860705532174062657220691258433265785864647045481137320545645059727553107760758603155400082060052129221634055632816666778322294372055499080385335113933462708858136434725904745077096667136328023696803329707446548892408718983353952330604607687834180702647279960700778847609059625170173452593597942370050204535358341446527523492859841595141009022600009589350313275573908949660087494038558062972275279576275660531200088452266039574234353370653129378232923638896089021493625875944445400088021029423482716187501097337515364408681011191448534651746601551924939572942090506610252126746532506316231340108300368498158449917024943923395129185422655547366682280017132624067140516141153380187725812524426883168546237627037146962110968390399761468447848986645181158880559237814930875821768003892201832275534395475879286013361173080555845663081250986039996003961453994340873018695061812335835140993061073810262812092720210036648800725207572379746877270210446100994631686880679622144733665495148124387420356116649851979704966181008535551664240127691134374388178639693364356130316388983517794114209300173019751897836200139920546828121821342123956110286810476341961100150751842553983091016871654220473951233632127740805302746656093579418487778921634001872035176517122500300564221115550349678265883721852808096854983388324459580956981537657923461502021263327410656878961819514393204332558810086492440508490216439484011436522523668988410736998268481374126216892798279810033744397674624470494265587716456704703626765714155267747384122697192506399429995091140656145121100237602951088036158007749427825648760943780835131073904693342026360290343716284251776523952854679570708948787058979734029386978511288061529268670872069536251070530116151044746129899288512677569802532101916408563758949946423714173559328644470223101678953068794468079900379582866200293910922775500072317610220075379918225079075977972286269727891428571128403687671232841137877553383547557345389674752944090018810486987935032909664831740322067545733341065663250311660542544731739142771932238285499538404541125535139817670788073257651787613591888024996416631203517220793452233044475342027273279880422251831171579400309165953962112665028996364112957072902613922405087925863137009327703673563502389339964708638228956843389990128082312087674979639674322247655459328182946945056199854928309962620675231832934077982013824453414564203323722376486605544604369792993992955070204627793552896312281123815247899943448038985008644943667671231800631753910515752386002108055903336496916883362635611270429198697881628185953201167949292997323798453784269082036657518184735823714690716251149653886649505032732519128085181695581799605802079420145222638492896384476778919775225986809897844472317151459034962943067930478788068843873820378527887834277508762006690909747729504893806137392684735110028853560230623228478320782269430950217092147875711936275857076417748964435549042317739876734516269967285722958318177499136390495091732986951807478523164771220878011729216762985910697689775342113747918299941657397772089962163040363181898731417938228539840956706788266273423037860038705596981316562222233579980701385366657880482086435360286151232649213572357694586353693823475550245999047048241148100281615622895192069167716926242426508380042252388858594476668627909830325956544918264190367632391907709243411883480883454158225802341620245072401968584083182422897749237071720002553400566215552985265008360641483202350758145958253733470674153595745773339692749256385337207603737128098423392022624003233697799440245404857129016328391303872270086490204548140421709653554825020235858864671171400338353258151957511197488197038504202134521738840709205868836881732239864493761604661414864501548845159284394719837124169252831452937008095423271569244025004436393620927386093465730786901877519833703545993498897740061496918373944002898465811167947530131464486375255244976867346253198546966476120910469847347811935991731419082595334977562691540722035638064386904900067594540307624148329715921638540703473231463231437043434951302756127796772869119353408917536585683872100278788016693008092022711307953567615106088246553081282306734103246207422805648892020824543994436800970090264337494368799060161529120437748258367328834122082442929228093598184220059267416775545992126277829060236819622817853866921031500340871236672789265955716842312158243838385360555690736175756614097256524039660964098430245896298009105220953636406656689595561924656788458498118447028005580483776399404297670692411009929996709427846887355950188647861933597514837825941220840600217138259855890594887528964650740326245301341076183326261386590032255650065880625180114710396891158735437503400397833684344574161834307836720921532139125725205455715542719706117545355963978488600604998395293190542842595490833694892817236389057816758998653882278278000595232155060415308749198473011945534232974961573725619338824106249118334137135875078775354768915369053069916487629929288752682916056795151967055413429436030899496579793591878337586835087244316844067153157874109402261561969489825050495290074099424109070227139675113312092249948037821282679262390942787783763299193193331173217024052303773575736520020013285049460660199204787258370431994800754688243248804691002267919553222072854290597900347816721931335184959955572382573746725658308464692347792467126499619520389070788190757583910487089382242777873867228010206255665745101022091088339047775322036082008468672457309050474147262777909051443443784297613939449906044697275740277194871125123507546156837765689619625082014167065378955581062346265787668532698855291533544376312551818981987996093001319635820958951660216672480603513580808943091123387776695137432338749613542153636430827559804582829362399806328763708163139007075759722172860447997913641738010400471057356515740742285974495712341848291694905342321418722075002213428511115684738585260135884356550566130793561357299571754158259943951420926357213659099124519245638669804444082928241238314688950349387000184956007139935698115763134534104822706648967427511580591835475507653488825931438831031703453904720944991445928445121628223389643037313347257729263690600717254876886465726855085997827254569067895366504231317306802817168549951745871328256854686999974648821191070882509007026835444979259433331399020529109595627693775791212223540472287970083013553081676133853007473505477632076653540448063543586247331766261629933726282478610354235698197554075733203544982585768098609402368226976221261531220731616534524973844502054165596669883192841331365174815262107589415615373305212730235299975707618102917709097543304121474678717756029545821826184295845139634835931199433275019338030725854718370373176764873764599924661580560357857603432631172174819554941779189089810253132579359916633880244509745104293085466893053987700131470260208272143315972328708543773142098216791556604975194878510797077254831940928928405613830472147664942478420559884293134443299853097721445188925805472683632891107528756347405803265714238122555529426511170043898438686267443712107948461499016663526209090964188841779410639400037007628632038768464202873946092978306718625729287855243328521455093075194644106456049727427295036235739973818074371391933112858388493088960130988046367241126956290802894521059536107227759412730523229059149590921319394169012476945646080843283395965584364768817691083395240724051752379072299577885146166907787604554083938687701153634482509839590982272658706189101036830044292335607321390043276031540665314323195069980560578446097344966029994767452135934978874991779335373013708456448445251647771555428703337938598685897389084701088680047810480050304830789656436122768831993937077646957009476114535924353906823363789604956593090125921461228448736381427327889056580638600768989676838444763669487139055307561358295802764348940704591250672214802294632177642202373213762889603872837804752012494384422806453805182404970971596408551307855818142165640616595029180823401639655111798776628901242681867448601415138708780096274161346668014470550981312116836083676861207013173099887556039284513521052018032228883314889818859657024125047728903232445254056689127793100671863517958048863133268996645889719351618071110976509912659470087043035966981322474267748924962052403651221644772233596120877314567392246590402466078550836437464888240979057032203421711939018917456349145262504650168770103533278043982223627912271655897115305145951772978097677567314301427819074831932712886700966078432278601914406634338839888889988390239566100522883290263998410223890148125855465872159711555161704650463910183302401956598207338740459575013864224402489585918206839312013658670729196642596462487256466812960453066843445034421152878489933082342415395243994803558854032808405768464776480599300033434980804639121614332628319061827605772454135263236013419449814676868385458972990110233406705128538089998688612180220628976387432666293478680726519438478592432491836102073330016468898931449999816779211218174752508182654089030978810197827156372128667944731592429641774559764289771546107621768024639128922763085362288263006727938717079521355248527431601962606315078396214887579280596174258863957259634156522122843232628683023825603418581165040673385023273919763643835083282783840222505228387776056461325169902923897903727949843237491528360469086121957898299212051551814323482264965052886710800349853815252904986437151847791071629064852771547003870262156820333511976359395961962260036859615337159884303313928333675827502121695648993089787925256045727537497341884466876499474175652906641508116457558312628994409821134809743480282120717887266952844504958496071910679906460707505168820892648716866768179471506867008004291985468007144631325520068799165053397517262857686964801209806747093734589988927730564590174330907713521933720043006118311875692249606510752412831370702969399545254585787419589522439808245229924507116842724736840204071741841761501774280726718530755337535805703881753639369551879178310572344305661873337316935086074778258199209625827345574917196665556026902002178309375427797226187930831913405055871267497239324170074038297602278231336468614644739435339697012640745675950196146500323781310891534277545429976899378062157949115747654468264600809017264240240433202822068161647805255509898613944286807737519356312710455978211857445662785979250225364519643405511969447655709780384373583648458782187119242711810992163580353613510259138752097787232814190131942309585201993066649230180307202597292426929352063595800685969674921644063296914287227233367356540215953936070976078112034674255834312967809585872650897974468938705063093432658081719059176915648374797660508330891616218776449877810502804807024558616843882671398663448287208346428633775225880832517053935067547556486528249184890335291108738839555902930848121537228352156886532625909128550550240830609660563807153998991941562557747078311544193531374601854770113179130288010860637558247376938222210014155690179819462540770405328428145786600867148002378466591573454704398993073972397278691603039266928679431709116959924658491293230166363195318401047467020508675489484347686490701860970349779933098622694249242158576591224256261008678215813990664157588269554008156600795045820381755525852575631489480654044848299435617731147331329441264691586551024565252391512807315657646467642361747628000942679431399331620916412865402841599130854569211601757417355887236686516569585962835550967566208363935692745972195661717366631530315615053742029030447745107138701964911341757224204270853681993661866812163218973839915216326688253301492655942006084775246534628338012545724919641881673103499865440882200862181382169188445392482061035891581640971777390980321962107688403182361865045544956524949216398545160920397718754017637716395924166153696131779635811696116847032207150052177762409912552495742642973637427669180607856408809158123565220353109109325314715164567889317269508640369237792749419280488741651410592905447877633449483348990916326862689280753097657058599843374147041144894597033234365627669076585456575655621755914305134945501949857781181668759508516664634839177916598283182985734171294663119160730917146030112307208618283960073431025709680695571246487679853971770995038049322508491176733831467699873285002084128783724353178863637557932395712373080403777256161913962395889156011054618956189364292698765480880044598435019218070032685528990765281123358118145353793281283896283211174422484183691937765126989382837777867175250037933274537300328383093510746969226570105242344829595449263557538936501177381949410740199306993236371923630385304937631169084954561496911795815494208688647080006018707576887798217694028160659156653144881527790982852620341416932317040479509990715012692857717635723234795219738763458568461730262970145707703637941557358903879836288376042412921894383016993231787400860553216545733634084269938143166472235777250555812051028773273696895238547152480933260891621937651715031245967952563977905481410496805470040518605755496710605655810170457589077297450747712750570783278788143917066631974787207834559075027298811536477208602839258218721871253982027687889075549443345099797352925901406934892486882067084940305580791929720589074857017359260522233403463430623255056518240616976431761368164607471995031648826570895635455174522442999304552158572786124447060073088557077715893893878019605515980666086824775895579829624191483287168904005516916740481679101022539915808703741207262872557088726749684688749899711778253234840679393819192644026822652197997183978562544951528572310247233049439512966520383424413106825770642014239301618815801166084285467328561537869073071578604607680824483244040614302643171323655826236893435324324183467596273861491116444948894379981360032487682323502140815968625100397280780747954621770299616984808162420381298352771478625720877632783781271827556376160249608377547122087403326008150881477936263824641562023025059970721037940014765265751585730901927221619606769822474158901520448879494858897833994729259349467552066430732068588055065683439819877490995808997750796891304687976908949875762126536406515113225569290917089224197527400688081743264130671130712396642641590263730371315863821085069857218972165138972566996475060067498663330820566143541957300157677924206240959005313929421115320140263251699655809144522462200311426239838143203658722358570305319568204370460137574517513656346158641684870803893381666997622201920510636836076727321652568433078169517408945515219672941229206590018076874243858053919103508467281178782243214751032052926338211263066571033844421064334986758438595491378026038845399718730843553203427198711124597653375992061157648371912907398204008129450082421428299114016491753263814226870200712849687036416471226036378596784779624210715119720755052577459077001785682750287744069591369188554502489517588728782123413328644359007937022244366663283526194937223523313808380861828831496346268111048622917019254805344217994187751435923655792558509970066121332297712849980728958756032920332529433055131443897120281582410997772187357088529666382619340953930241586921442453782311025672986941749961352714707457435940285025180487396859350133506943476253217542735113804827131736764533734389547999791083457565935663921921913263783927852332861355736214601200468939169261754197500980923101269554704060654697208504550480534285146791538548178657198316983586167003766593632479594823524768902208397253599762079052595986122936299559253644631494927047958094428457440479800542704490544809433123810747927124561917655966110155787992814054399867738715009621880028157710265473356039193918404673190476355019879448840149572544295059291612201407390303303684700454889615878424369057531605110467606311859392997364256856488217917453518984238523008495936204414843208999456041364026609751713761052091709504459598483291517715391738554513248705948222643021051288406009287553013185487598360077379719749428134026992636589830887721393543823673400203978020596008543329630014352591526241446258775300651709576825047702938333210740477765598403868553177939778662483214620483477095774340887493287099325547044310708822850114009061333521906225756868847938003199483440666017778003568105372220263544321442046322948717979424481250191567466481597178863631082023327525997543331129634114029150634623693927000246825919967324995966262044825224887308861250662474775678283606003008048893347583274340832147722256974992244984803839916625961419403257686750801370121111728798632698639098712270123479321815054235732098633400522931626573390702035058726553009719928508372247671137122012681006538814802906433689407151258811498233879860071797995784035497335259020055474790319475336515581172071580093402284332822029108223276347796619018587451318756307531719594466400497368015095848181699352672707735015776008932069729581055727526846836838402621897502275135425309957225864900851902806902795993859459807364244242579997838574173858782370002005723646769129213593882106148127163629036857214801444300285491968312941301093353769701595460606608561583006686767928251114112272107126312165918743903944440526502396346061688688298110866278941728183304150482047557232611362421324267651312051303055321328604624902194968739735404553279005796395882630563212284359593613482182966961329418550081386912919858839275178349036415570803187795281085532717488797679128322567681851084815913228262391551367101519258498832302692627865693109813060094052629016395292543002489039825183550224234893882098319954268909926440772397008121958000682007676823506684804690297512010620537864295709734417290349871337161152692339246333283982570856192466081791237017567982756211283947637496545023380164594071261204337415767832892352012366336613067471379237204879091811764224155814627495892830045039903272423224014257598215272051311491910286832222283589748251682621730049538673592494205569635392389567823090148465172388739660595695231482595114411183814193166715864432565897580633740104871375375812521835414339592674149759776470425369720426464609188607369277691574406345774902734381528477984874593959602275519030030183823954187871275808609722623107121476495461882235167886652822342558902792755783236691049577025467219946090178573848444209070318492153211601887700203793632164405736507931794824753868794493405218942660254852305188207531207320454638734759605240210497952537348295574640277520595869720578725991412002303460685500091358026648875554123081059138697642699339282052177885437689373854188619584213610509901694389178506109817009326736501897742960900144259589263318774999051019593919039194993012235394185072428518091345939624750905553213005658900683971504105747468485558856884266498594746809460651583474930456484324784012716690708577830635704438190058048033127071193341829962848995008920321265304818837696246573609712761052929244182965993214820015779610684131141024231878082466962782381218887398328526166686482109365557825346391506006036736168772107255864178235356622949766147940140901469872338088749244830286000870414531435700076610404521520061123284177044375404981640773901431969520614764703893453508734699771553480312466554790377693454688143145832383244572665946782101686843871898370926059343586295144694116968470856712745999130561563646844496543818752330702766388301699006539249878811743834661810066321517622301239751225173676925580172025615460960232945275981043294090399457562335564390909707361164430833281237856325089322359064867008592188306191901674838631615482244059884502145000214500379750116495667636238348750964439612282255537751701851570886859098121562239430251190014469362304880278252738097649425165723730837826471499084890993107102280276480580537171887919890623780359601973094224360466060920854235666196925795564176783684345364789049964272385766967910877240523323213167869370373949996959788892314933188161964529892760193884037041474930577759025269928074770741380315793858818386263777299289752923876648462436573801013944885752187496808282454163374453450375333361149184982458924151404966181959750063754393566606843256768595505048176491909907643911535818876084329686939504956600378606142399210484826141002256425876643569284232698367035099580260663413300224661791798625286506718446906375834947445581236423201786454015782637374458458861741842149409886259475073914850884557573899834124086300744123376314571505446265960835864418938049088955649836917066665026577380277333094281330672058035342482521289020609832801246137100838577165106143096030612254136892592026876500926912309314836143538526234578687384041291916794735487161429734478336361397730243237407087571237307326255968250765245394576497643563009922077872331031140313330638773751595245819692743125196635671201936327090293208151387077759925847350350976800951816099450346511603762669099559218157816210148139625059997236981745261576863399927986461314692419793845549696947842578592131238537591823718686709226413487783631641447806145707830147311262044947055633913508939977143543259102436287447062956044972630121108512327755733013113586746491511613954243145429475222749286524776786128041759606412961128927172198064219735299353171785501793936613870245222535487688017649319584581789485866406053782923842100511041948435829093268552776669570061148912071336194064206593096939856035513899835386934927934652877622574661562809455629984632436870941878883003183363670921252103283636640278291358809121254143726565990734226758695064296697335754979823595407724546015539930841283012934634386730067490950928486851324640088124374544872039429944632484239321280675955117815429263080826424331535122387320565086106186807945202726686889233804227236385130816294122614760030912802245731925858745945447672639920784647557964653686419446041601616335424928067944145380928585270156298299696495432332537519000557696133403147958180394270392995861157706617636078183700742258982420880207167283291387651794932314552189210773287493322553208685355992648844604412772013482711102189634855524228750469864074409961220396902692118025159065027404246185944853018146495272933128877195919625241306691520628942298255709140680157323780585194028562705077253716939075156612929588542136918222127964057870360919970101026089306235004758268171818324606451955707715603267952600930690494304187398028169131625186678693614856679085978900358923379094937649659302696009332177638715077205076137953228051311842393433684814281384364348375562013340506581812565085221455365204084422335856807241763393244237063808972548465037602207618647004296325781945624432227905262031964079991507020605252980504592889648960089697630755044542036558490614570402567891425776096249147211536784912403162534046314799208133269980112503262591756788974024645900444295924202017758126945045185319100870292573068632230819631431542429697718290862500711656217032165149212596645619615336214474366842386239177957130706473834433049817129244139514480539419596812255309537506373183890118990092293145947994394310680679056374800850129711540087736367858200526507770625374212482392268820541988478649066740843619034494209733713553398052252282039524322649531497068189094575805317717591054028848870566891906891951150034474864473909926218717343286712065996069793864211060843695514143285813459909331839114696678105629369017613735814387264018955209509602744734540714324512443838827868298903792221345090086095207629084989881585144235382170102310950493653530529800471932510579764075641300174815951041237296830805574192486642389809775155475439744971377093559701951362505319024898522179158186799508656950807052017275729931489453470422955074819711318160337939986097708919116890000003940991174918030742896978394100970881938792847366909004675122541093716275876477377692248807206025148633794102066102078629615822652570046862715812192328880619035077781943699471302286528070850742960020087508880480047871182043601250271091176196819292801188900974921247004786469337416652648342720474984358307860290843220660312165375153336685325895715283329661273590472679323891083430963751178280639494456523297209296299738794983104698281420877592039950408572697429886656204402706845247921920748722207907946027520121878027755254890855202124743511898564437577689038242397231298598674898495107603892509635191424339126529906234010763027497546083482541002857403521588908244031560242431479460311471153524419727880169536644484273809518749381997207678646656245135435178373509856591977930516639040474868277334069470810365883683595850696099339577951010000201543751476606696203123962792120364701945846786265504849407060836102265409106196383977420348099132875217667351498271165979788641251620613489209552748952725214295712180411741945353911741795683685716648770936531084012373116570070809954859386756214375493110613749876076350717531182451593821500814148210194724305890527794174014994806598030716447672713639526201858024078649284239987431208454804836120755324711782251344734773533477599511546908237734920362155643736342561618702293142355045352850189582866579153645485137553976316366887195275422410558425864447573059028578609796769933272896240872706156305566803440058347493675822117367400617502727704463367085632454725108252206517943279902844138003442352621627457278890557196022507975755053229796128911582674852864962619014025731600623242165745817109597718588837742084574334123419989360319721147861303385510375587932927302738831925333367918377827989974976740131922183820519728271952658285618853059015803808166142890533624186661991736781431050691186063493000046406616234124286468098926497041374758221191093756625851675341223424249161067658652811511157163032603750103709624895661511415196071534903207926897146355277320260443240663890661691411712814172770373864982692111943246279146163277539067686766715270950814913961012063794004966766457950957135959422449789565592203136108185442681917023162447082881707125840412562644410424525345517944209327094606540838801047649141067814907758741181387284483722631951504424823392296754625941360457410244727069512293441746396523928698951132896648267629720022931593553904594609732850759264542241160160497092648236433670098596597516016288086354153264303880197618569136721007688786242109622328436076405092217815837342630131454682326356205867056749433748682029795686669323219634037891675837240510484364386955158242148739571770089752811592153306223908670362784930287151741588347102663266754713114058987384909319980996405121327411749222810314836314707386647795912203272561009176475154641908537009026970479018328052605425808197299365232107468008144265324339858864258816395141447483598714795310915326948753732446727605812170550430371283833371391946368439224844847451173020967452342513744164020294355986567848053395889364623048482448736415529886900050201091545608306889886082828651690562525290298233416145851686040918626875880300180209899754906144068589564544052807405638810763639438915566097741091992127723050188651535534090154116905195620267703127887532199259236201201575022499680532606367877574792336852846875837085222527778968356884478183398005308659548981495758838886573451310517258109137933263091591965590941796126806361422172031586661309010160800576129327450266068533132527408805383182753641890207074703933366524057248557635979778370748877702127235128380343918944806751158336805328050581319019239649454947378919769985278559058876744447101465369398071411540329818373893587264953909790133804287461162086272246996234343785585440333367416798607146040961170174680735720317890851017664301063995597104114869608598042733588360388434643988858220635316956500409427839934108829932684377722060563739227213438591808421526423712690459311775618330681481908501662416666237535346343722109232340879985157464572037931676097466709220259625328944615645932439149629369532515596062348055784831577512787662828946027524320649925930804201862104881401675845283536365580548692948921601362837314720389519949132435146334258787429881448097571368773846415088567495289271798290344280575748099412641922555710527670376221051948693942142001542877986534835130442885585824516230650978640180767355937794298339241236322005374319351574024159010686635841074586715630765261667210212843624952571211214531573859888892109181677848906709989691609166127335183611790433681029313851661483183768124505647252000254477436734615081707204308228707950969087166693262559207171797097086407604303424149317922685368878109774870813246402432906135848282231366782399008547478607093790481049885120789044122954079083727893695299109457994739746110340562103780879987705295296820521751433594497995999623930674993248197739343655816633257968965964070280968953194975427257180377990174489460798942828143629149545570648888703423875013699412930541097415164177636330643663748966055493554048956414584076788542388478198663630699360874639702465345310135292390883621356251017499395261256642834570290086164392975975254575103705617779358023569962340351424568284963903335790498343060723580993675957198116260535182942580295864244626445644165601385042565771216337001583208838186258569552525220550784221568041935369689010907677903687884676803344180327339667057234595973268754586052598064752578641665816680464674868470712803490606258052578613288647532853081275749079516121463932884071310798914631632346424343714691827102874784418323867003082247644962425993328215666174692547034997420031052303820231135024615188973146973544009087781263489830061161668943032812327273449183197254228813911089131391173358306802922334726201728779590015077150254876182499311862860011072078133320525312365530707654172109140253184353728701253841732718940116801816668195417450155461468930458017655116374131721257777127362326429746127685943467422192174807718931147508456801813611012976163251335540604053415367749516726485493024149763138028950141511524280863524573727819096674888973221569955826285509937387409565035758265695851216804910764172133313644074321135782751576287682732291722534614993145846571930209615540024795215089099208794111356585027610386953622126353237869003371851586594439000438964008955492015143829105379190638101510720686891024819340932348849258157026593682710817997576758291090826915621638179002610826238059750528725216318323857418953810395674466596489483008669210591192053690238836714810792642770330785224400799584398190804044849720256797523513225848961887405566818482804507516675868454064374135197902538591354436202240909338269009068579933814034868448864740455631799086066856931174485231450719156807256543752559702990503489975937124269585875318549019982932660931638386959754937201905171814388863207498815802314179760376413026663628553056577757431822041207727245362500973326787558631449353493472757804278498906254627866492159306572078077655541356060640038750743628114069356525161954217882001895980238695577805142142693794132370177132522476341051457478716420301915098186483625970401418164733211813768692443132433694706446370140130195638824574538884173670574642274146382689667628082828761952902477621079422090629782774192593286371446559054390381106594623533096225144246472213041548877147908804456927538664671718833545557791393947728876225060974792522267816645500668203321722123719834560579041532600038039471746352411532501110037696342604976294486632206181999352922138785612099733034067496050536403401889456112105783488020969729226796606087830318563402188946585991479657011614077092107914010702967139836809417470472531121265464500577961109920270323481782253290822949618524072183496585018135652210214656388622154647021030436827500253744873851622224519388971772755902414125807523243903576061687247464771624308313132626353102733886012460706420805116715591871179230948553696674408543350563875151518571578470614357112937214036592036735197418149620623393522094036820414782819295567834422868939399840145241997656438358075630551982825601146328677262445163427259631288540913086796359600948867260331843327008525891148103910447808550127131999409192131420839914609214966956659070847562120910997352041899889274824124403001993149469575643058914843832462364190884343660132847334156757921334648827200253486863584983774574150683782737461229888100236625205380994430077358960688898311942169972211876513269917027444617537101556587450033556431818279117243592685413052185396646684958683942427310791362989879436862069545612778214372373343451377622486021342788566153948404529289102834912167585991284520854326107760026300100021747601882498179347432686244364866475705510336589496313513262124161506955390533589069986034494068719014414995063117264287290788449415694667979478153665737931830978189576667909466669022915244730967838301827536903504894652058070149207380384426342835898075974160495583321656367026121973948256283171516036233558511377940674880607141840174350920940962971228679454222824427980229414567292631165529956514251446669965877516174840941462923369757185577882634243316078268736755488895196146438611432229509389685469996383425013588802978637034624770375342295141473585891618293426229557319243554014212853365695731015353570677945023065214150505073825406676132610652213426390983098816311773824023405777752386854069110438497567807182463956245470157618790754357694105252268375724003582654006702790915535549314670037052844517306236037703580963976816040601418101349092143871502645187982235232909819143865825826217093375484967574687805365388758227676186189059378926171417379993164309778055368909725011760371110227314635299416060258086407462332063472244172881414595129079743684859496911401525677620931911374346626557057999033925097241329326823280596640228120464092116483116383421788656410392304399914128828426638651457541211666674098986564018656794113999688656645077969763420784383708973997070945745885934161733314780974509370853594206277555452613289535701155988592893085881501985570708989818411526229062918634870441806322257916559352573911828199564057302554689454992596655713138823044312501289713308298825706193346035247361867195176806907316341417223514166022602628115173629445655221974204501203429981152624657316498958104499042767991533786981431967362140211697947785099874709221433500970489283952194418005553783367977886924779210622818266029308850474817874540446494537404210697657089454401341455397581544217573479531250642088647733099245180864274924291953967828953076918325405893039620259316454886445417216371657575190001648873239323854590400001916005821801311624968279843514575117951633536422190722151314289010280520092200607587340338641892897517193813193863510599850560814115671725739938347741086095861918723756344109299139964377311206394196652891566805812837512551113810118971875926072390573214265733563903261323510195119117325306599536460599068114652265782346525607524263018963548229828529632120699867902117736610582384903744539802001601718400838011343883132312819746224905377339521643720528478694091988378071310187507466248452914030580267009950085869939020532689657866225775884094642565779784614718755829824295504960513529054711504894318751051629698983048633741389102602391834515102387382322510053148572644249176561678825741426452334141261086610574075970000635797699447676526577478485210181710639170230784327331427898353222434117232236916986255572031520221290479567101532401549043173003139413713313439862465249628471308270224955854632918750243979428446786730886700949362960581197910603586117137880381859389316235976440062571995640358793052304586952056376293409677283129288967597803971548741365439342314301801326242494725180306389127142447941229473863250671770713200075301427598207678810086478433793976399784792748108491069317268584332280860532178176622574298394703761020330092799864631677677478349579171071722299447386152260854128485250102620727835783204686826994934521703831118877599450274580705540553210197766812562027520074004453221921154777468953587136847663095071804110450457091987544470299153028666227387362692741654424038389886691520188206209145731695478986368867004211758900638052424366869991944051907466866830584735752647179546758397011057417045299062809479255913719780901640099319881040268393678441969083856594125985141298804021441584089157846085352593180933190138697450181746932868199160824045748344404230184984989819544908397579940931134941089099075695405576037543776449280638398432806173602054146893680268625179779535316158286611148429200887790644349415123192719069835229804780379569837742921167556558805353880083028169485909572723177777332102976148180886444512873215439355310847832057167404673475655701914061122932399921210316669493876544133590891802490978866875818347374849129415706025502604308283972612747166496182436579362571827894941550984666349783595208449742266746697606663016817458657041789016351538278521611465507769116749338691026081211221831807527779148520761210950906115769360350509716069312072824367448309456367283275153683325854711209891138864638032737097004244998644673888965128733953321983256943675850775384559853484013502078587299131287370878680361725973748897942022244524793231206203472709764125854648722907922457992667288480055111960858668209884028424253400123477208480784671130874516156071025290321118739803456464388049024606309891634577480706901389944517919893585328323317305529816487083023805054826966261707734784977926578755070329922920123926858150257173819601934452487750631193446047872644883862473568898734546979379733566525910861251272657111173831339902192227528214376932532379226390895229672515576474058586218358331443321311051464723197209787881700408708515292823291671797973414305740420276386665269446975824575432054510152460592341795640002247287852765537430337485079346374116152752059100677016841436906726113528364906571265833531950809597807244532324096742434879886231717349942118325595616459249731409746762998421650418800307740596456302016737716282192507318889448289549640198762001413989855279006663804155187919660253937943360673769182960596595542158686555151174573657276708109238404239235183192337441551507579257610228702939049494732943138457817695588131440993927425654261721314483255489874426081028174466732653777041759532580305241623574650532687341981773757533347605656429977284741995254646553656582312736792890443893608799292676081248930611682138312030218502947655639300238270834884765046721906154713980041555019344209589778276261109730451002299041096094666600751893655774497877233450890518864316084242459309191526578120712516261210086195682641078827160543577535206187746013466716457504548959841799508249517605331620903258705437669941925848963482554695097012938764121548718359973773714540398646299361178820493513268412344480888512384957113409296008687550279958700433635370202080748212113582297850882675298994370316955762231148814110400493162559006264046807861328597840002907135600021252952311309086601481907093915611783551040644748138757995038093164985579461011984882583187117435818581462206638263316555752402101606494010774440235116689420568195528145081753269582290426651492798512672960409607744417209387914884403533831060424459862249852066004043261941799311500970685738189732079391904039006748725202070940105552358422385775290362882071821980974717196194032334241081543183751023621275690587634322866656575386404711660257750335029175030261564598401677619011514255833252952132490781835534789052505115813966650939849644571651523193717838351609001318075273900038579934703621968595463843867614093748717817279443353666866250948867814497341207839648641616428666597631691697802080570635708260981553302682183049367109998426153759784445601486870916610790907269030106713389071558126609064434691549921777103909994005389852543199623224579741500706249162926610207587192819859456610972230766485120242289105207660178487197231720673831108228343709889593196243195514109592898859776664910578996006558907208569774191211836189063776650428344491129886590753776474748964635484653643972905307650771327819763537072935852223677354796764821742363789897801546515925391574753758566011106779439527013119901371311107966693884533016673316587932783401869122820554880897821251960253043240815506070544388586188883578269716154186742372455896968082483135313821045119833104015868603959905830644837980154985938113338605708919845069798057061908954029175422709171506686852871136682231455705494282133211845108119572341301213766776774339906407936093998712509319449380270731702388582368469716145464670201926537740203428583959299582233753615651256696982370013203850415706664399218526433395766017203527830774973709020198519095080890748913763337710961692591786368623928355127528599435433584395540149610167462216830471012875614122155369151722366800219455949072805836674175199806168667151400887320967772408219784480957438981591510103564315162632348161352152249201377383440904977144987994536447183104987911600870697748921333825885980308103349718967608698851592886413781607614915348228597335083837916655129699007649295120698362188469100755303902295954231847526412146408606630683137104970768223785635127163622694260110998055856886101805793003818720276483163201342190552830138160904141279864026159914969666861298451391171679893998875130526961912556168466815394090942847602210622178825605149763876347042866376302182031674565559531529699871995385869026428392114717097183237139551367687905391950520157808003618157563077319301483147437915144295133364167017462284495597768445859873393802931505478088923642927085186007712329175834207599633635786233650891995537681844703591726167058805736158637196338060513106293308387062206277942124113128175030093395166386074443622879212987797362962261120340562975031046586250411815185741574202971669114885555077800308791048099305625033100592390996784838911785886525163221239899106546480523146576497448185478879474705966013191375624291761208969934122052293183995431003738204860220960231026777194763218514954274112807733219984540897985911289192038544559822565320269769467793148739287459377105251160429455755733630311996331419387242343318011118963547229098956413637806609173192330126750175810188736365711466757578674370918647661229397475159581255614766663496260699115080717782695122993092924971615486489202070357214021141993410382763009071730065315093704880790280108375099055519189327766227593646137775573269493581156501247072584251836154850570634323161127497146304203014443751473324549557399175523801176146549543611228255963328790540423000464405982065612092237730512515537134719087043087759118499957905510030545465012125512669462179522533991241377042833521678167994817169871560353967196432684816956962301205452481364618598723106456050033914828542824581296643852989818844411486726670422858709156489798224838234242822296551836958946527808539526471569825626199327734568006900227584260976282983625023518287910827646700409886343621601987896549438222373199862170303945514099959490300269363114961167933268049125182684194830616607264699711825269993475317024123495724667328688676056276125284741093389687714762579124604194838207161753312738783955624470976183311406650642932904551281308627718467334345612011671397923347136913231561672086293477515448694558857254354575424174527568350406566826517672179884228169149844560999583711515060679407522167703899022847902714998189805596039789145405407530318801895815840086512028828118444420460510389504072489010156260392399257052406001192701878516860927563358237971178836926063899792692439970844720818251719811465093940001187276207888421879735294198086278990822336161265250884332342097438366673312575719089241214219791766283328807418058765773396477403558401985030987583762643104238768275113350532530532027817628574943990124604684435064766101758899211094653123248056165843812143682880058015977774833533598510041199229345081728094868885361635419937625778364660551399365076409884428243300019235805284456995141247455536683255042412066070390918495007592638749583012256722553193549954976056813205828149408949843184115900100386393118282089197058092257267850194317728380879946036588775583688405835249613283498282682964328015222640791307327352865497857872525499790474355047486998223414895828817939760534611350888643573617740249408878039867446593107152392414217998471470175951512021258019226005033721307646530094976132789597963413944629766997863728447756385946170022033616807935078516118993907109593955604055205892226071541711825285428113079649498213743498456453907451802314193134003581768522309043396172642889197472570132597668017237528992548430675836987900313551163706384111758764845712000698639252416646503482703907734396201297625702806226363806377031111340064771843246327267387089345151101627199005762626972874996561359469138737604196221532236079126614880689385026142969240969773209640405231365163097054274717944828179906283710853611275134228455350870072680384681701064404755777037650945763656831699526466270599808450499304171061130736356061383296662973721313485469808431910431688229205977895365186518347042974861747164951706903357875409029409693752545606237450234688742722890448974578938464250368230219642213532825680160257719438178055087123767758217439535364690198020385987517502284771193866121974002770519224606684314889451380358438672120020654761529348913327701612291778119846543937436402051664193593046834302815166971491006385261798154689669645933511796111857921519139306295257965707459329563035285890615157866550902471928020293762403660280264799597406600763767403517587477628822426927326760228071480444265478194037111060755460777615229684956766863346591569612046676358504999198080710009412120873817880113977300805631761787652683249252117742146181651453211772478791715105830689293193381916078187105590285909268225507091989989140302089610362332791451686719314684376408176221482561157203624226288311661233437467473008608590716282958719672735298441964898646091515008734956241547971505493819050104879426168516707368676806999438062291619061994913206001451553310415895369223526070775784338316868784679138165692653022085846216718469163694286655136439795318844361743830413354600381377039314151160127383146572874468737165767149559221873272503267505637812330784680704101914305293030305552006374579099571029144190403361703258765294883134811138750915888813976928219443406498294581761521717574960803698361381821730225001367050524273574595928618842927420757516326078267172695047434829378997832807503269980880764201715524002324096662308185159373306447244597958299726552097876252728720766762426924156254086596398176937584982038608001192657826739060606669425223567527675469259097821855254070272875817509385321815407922503682707165213250725168067292618147624269704153027143270521986051329120457214428112068185467033560570650833192492100006382739816149633930788665359792180470386675913540406812814273979625222089541260955019967571764810880402511160024516624060946600741915217535290901930732723849859903711094300156048276406410635235138614149984764990433295544529222108597471152788296566996944549132411968362186986677017434416021564194303582307427861229896712095514174630456169980231636622784668409944796457350366999127309306101650148560243102696040358071486439046629589334079834262677339716118290660959127436228118569729829553006230712667479217350398374615749642510216686236089401947728031457064247816714841500634518231379823647496066509126538856313858476297949971407084613117819000774243140019123053600809369350168110526130406143849934824383719111931828652418195825439282457527265775636790190433890802748216786884203584539840921172968275454540164097424308447441023508189083381323039632766790933833931018850388497597544326756250123339248337271098755136159699567915275562269607246649270882635685305412861242492107817729301147006632121966340075382041542381887251237973545289659502010917658220596272856290586248352483230004246411590236557836070657509027083327535540802301793595376590338633240988852885848157300411161977794911932194591208677272661207811311705282278308252192586704640326140644925742829230613045697230951711255532584009421056810884080344357113196541073830414852458427074851454998473013089699954976897278622821193201379193596130267528586049503537027171545037934674037754732971112585607934472965537744555626028586300358578936829806292979905311328619006272539860908390498553407435733922342341001705528386370613442727958795697531018935349300363556038197872162037360157208320545672567274627737761201493000528746556428681171698424294251891615381238676459234723406251691632653154854229400554375861383570803041072493148959167739053326973451834436027516093865986383070452730240208307537742378988395320859773444951388102398187127337648070289612917629870879612757160311785173875066284578300109827327301974414489346155686254828015757148519112190082193521868294820091077246499870626719795968421669578014662875520003878148861092613004374464398029207629869769552543604086169281180702096727375571046762603563553731981590632012820683911280003798289358983468347373975878004168485839595832039890017335380047622075693095606525713205939726876686411542864545247714458163940117008862168174722601915905734782959409569283624993846754921361620052306860133970817756555049990756787994160875957001649335959939089624520736941432867903676339825859033194952687208562429902319424842286350552089557501064749460121100878540222802684453637871507118109511511946536058197106779316318113708790476167911404780633346039784646237174673693495643443731133329561075540480027098306220045287957283929612273892396458131886853054185365317822941757919862669361219508282008938593310742469269017013105989703631066461024255159058694975883487562295357861596468342908362971417624440613210271046947416701565338179722464037048334939155424572634362318197242959343005472550190737607757540513604512347505491566428583103061370970546936769083710571609556922512936212866198067801461945706875884602732831401474500906031868637305678336575769207184058621107716669418748552948763708092741872260041338447181868342515750175716305858008543512367416157460864761294337619758562460777282214322853433055666481791024577597873060673861708969089160396046623595938655291776108361735539964441580475940581918837956237704078378163189342993562233647649861079919384361876656408578935498566086332407398365643260090070551364306579826530173992478164905307502718803656066413240395047070821796991090857479125647908596036430659089862366862860642201112660776713234884145928182323236759666130392787377901777312353716342103025425118014849142281402029921574305786490731434153037134032842768154288723239412703088503815389113547137461486522486841329778520361880228169136671100079191443844227659243483727887191322298929255606065003540790523105655172073908468346684316371102908572812638902191310556355604987865482686794293683384588706570634402947331565123222143595370401807474061978418477399655338662316287700357500174295557248687887657106310642552822680792399789182907403881820054031821286980576328149317356826773209058753630618729661269369166334161575061459432416965045567125765743496845939265482502124635017553681381901129521410362774774395566533450241909107572794095631667244665338894747310334842958502920040470001520522132061244799088714592424222856694601112060119238613526799579229459182172872270845187742921322503666408649976630220220905469427147515149180300315571454696947245965010195579774800623065010280151861957376158688258270847216388731013300694510906398625286850053139520951673477961711253052696621021357808663531831946124467335742866485428934467351776417816453429390266786541831850633855288249518052830896585655104028759586136787963815984297944778465918661009500048599537846453510588097056568944200948749367339027505861513579261328949148760777802655860680742308311309336346320014838369479548285470692473050485622355948115841075028990617443878262547715781974261901225504851647878710895573521535029812305271028996902806424219127239018350713975810597292106569733811779309872348732079981884887409073308849944211460440702935155416836105830510006654886054953159142459040752677889797950946506500112658228483389427990710518302560894773278498867519500090336584485591540516190132441182020617140355350872596446967481653528954919016090658637005186519480574214775570146939647805843743853513185852661742939254462181508996439642219477783939636470356818499559997718917696573122634069081722526621881730399448158186601720718683398727807327387885016467448077966901502160600469108939709468920426607239704074823878199423398998662763662857580856962143447227363338668840046757034160814932841481164558191243693318411763762959168523534224834291724031169716926704950959341561344705508869722252231893667492132638004020363018918938905431613382514765150823348677028947523707660467444132548712618068001015304707472653159220460778046029082275665930799854544842036937782811973940981520890207493174781158018526544899748095212832897763129315477565381205785251654601226318744442538890107930346218114759245061063608225733893655613826556501776610665099886340361795983212916427735535707767675510143340714756108158964932857147027516220920928257807552977384740783193221755678109003115966242731174773713949732484758302661367996279318489968981006563331244849623575999407167344381755555452134016560499537308908774325715388853761856517544616963437476278033152551406190241178860632382658893936867262431753322534646924400199429344818358158870141354591299577165385009894539726334546120186580706536909063643777533568743438020654023057298662690566618280208903435289624406318325088693788338559177187278494584050297368062255334492324630131151410368459139545998905148514188899272539857026616927620128634886427039609759555089774522044445182513004308239753191142289006386519114164993278530272344712903477986280432555994656262362234222180954948329885604588299112382636866403664500255786337653513537727647974683303952938271164738573469557990743971287531025819510902978566684168857878742948792735799393318670713637221036040363701449809460549548314423624814437784701410965364917011451263295088457914664730601615019465134840137934396210338401651764179666969370064515937691731351728925481726748104980286850962991446999377421666632129355491284464223359366950248907496958773073565446637454590954388313454368319614134618167334323926125351720618020567446954434413833689812432334882490149406155421037802331963884872706921959987900606974096595788249543139539238950606708894398050347362965849269058329209551420792219674278111826400658512040375165588209327296822601503926118702941825782673333137632810732845090509319552381803389678608784714660429205123917119517000047269412039641131859047646773793093546736084660534895009083973445839271297269946775983971220551577099460720354863259194923347148992658731178445735527315228575395171299558942342668356153021363334315444304001340880626020903074086019473363980029334525156265495476382172756789793186348456378932090355531056845967425429562589782856328079297398954738907291403555228158068223511624651749943490550572720041923029096193058988629125376613403302807163726163588084861586346564074511907963455774178771688749147746608168272267329959711550807620037755566970150377100164303196871722495042242178833812433907596467665027738141577777137762725231226029681908973543049328731171152230372319696427557545834100512319319049599190345398778793530219919019099355240451165941697534925461872934802881423731548531733407477417983065073561042256700856279242336123823766533205203849298109057577310094200754294668781149099515270183905634021823223805447020029895785826008445161935277633508000204657468292513980408927286791132315123522117896462771739031579976077058535575676837337079299674129435669523499383682510298639012674687056871954793893097177930812285479810600722200624168259229346828583621166167136572685829335710597610917325746339746333365890859486556160338530467344123552795021298853540586537208929256919210542790811571103668468948296127500290208126001839474341279079061228287105313066481577299395915483956484319472665324969108740172550449199954222445803905781393002241271971444727000965107931632519304104888728824121048421967471422170909311660182727011522504306997040843458331803480339117072418802881773913596503388378997420848278453557495354833025467200545800500126958236924366981988458909001236114165497821260987635774541815470583242269115577093673544313887173804252692581746844910997188588858330318630399493503723270608333493002771252439512742254126971405328646829723219801829964189671379985396664618196868271011586524985487519689322262188393059202136134539754911567240002220955484161867539307346590094726726912247553973753540697476370633370045522822640913342254292120707742603647714609384714337365282887012532484578431935168264695167558152933859342245461934874979406805348451025183171278613853401705040026726636103031565282770825674421151524379388300931813765557377148274432241106761383100042279385307372922497042936312377638425103803597754975023276126359587321416140904841309098599220838829599130504669907523208817915113998200029803700193241661931129567291789341140820140592853511147880501590576962914226030307706006817694606738231084069467539216700177633790804625185345498312027234322173526931425537279123362616409555715856671236636449197274201778831463772583464506324875624741134455612910645081513858761807751588352062743555432177497148790700920756345116220946749976729963453735112527355838132364573981484950303598618739698267146979404071348207341249558656406437636186904663443307678788129285181878273453165861609786449885891841308149184809530822452708830282977247951611579958156635260118293701341769574204527054599235860076811926424920110937485867465397129009471238410096232340066854978775086916203801692320867395980531937434124100586932145591789743878889915238121711968476303565637642274275021086877067984118166681680018162364640899221083509943803908871409770145083492381013160660731040921833914315817508040982019738839203756995348012674181249199934428047282053449529694203239087766408140557859432921109922176653026793588369575307204076302792874190536273308433423196173999481434699031451921565574728559115590638258952718538966174909459197871295773635993139193267260712268820103272657548826584852558141842850146253361594602834659695997336605486627254697749545539819016461413200795479873763690926880438429164385925183425124310279128799804964830382065090013118731862687632040348120222577829651309115829755899356869963385264321345018313836984530090154858734592275260601559352062775844629021570944897224643469121026245884431292316096817413514649135141315914715346525113979011176443086353796427582886942752430678801373797081258398207022455848303788975569460132905901585340107446323255185461370532196982691324736872993784664758637553889546139279411799197008561417159637011932280184568114636303472215987565360796777922061845238192769736610199165822483828412095051751310921261236331782430737364291633210713244339630723122169972897442382036506559425757307932621691986439844809385412842690705069828048595315328696213319550228807411963162383608929277659080459388672769653235890903384672001070002754094685195511038475052560386862943547094135915260068010912672353041054629055487850488186449717526035697711018978932631109520806863360820461655762469328769791838945997761630615551066317382689501492616686878631873835582199197243347356765056004328281420344540669363273316386368040593584922963123279140836237407576053160999604514890194467445501279180386002667805649207849641145855636332601626551024453479912548630356476557661801269020168121629790369448243921581773465820499159610757890803145083646107616919012927307455688006027483838553052910491913025862580463271164029244188396579011273895375411964971556628641007862609728254132224177017831382102608044453264693784279706773536612042791071811977089301348069065436440671978503429427312983221155926601385081032108463665279360266967051608221068561001459206101886775828120721949213869853535378485397890206364788469578964855919377471665293354850678547829606011760928067265052562259769481740070655860258148188134981706108225679139848707395399583584592844469059639208156951346780505088866725132542843933091748289805284132816791685597781137124340898184981424720873581043433151950488149164989446554057436194462597923430614359261870433578671282362981816756541745664377477373001003457308271859012857841492767456061581304746640986167981027590742572202453332432921523193717124266281564213297475401233083174745386932915600016455108486997151366654431169712056404999416594220975905911294320384947584755245914750477463605907972938754181198808206414231544564107938513554616423470143471220845252416938292744180487522183408827109503134553922161634394745840917050743677019029190899477046699318897202237675251980649045783400968546997410378724878336678723217033116092708899789040528206272485074505889150011679703561853308411398945410428969914505229478612452629221691976574100436346037526353220734198678651686551247522721366669183242953750210272271280352583644519690158765268050628984042164568761571497383801894448972104347549287536448365337731223854332337765272887103771130686667435367413773010278283953995905379287452304957004820216105371356687729879998991811580862773857116902706604883344479284697996184727261402477772377381184887214803160642508242667772927906420314618981496994243538149310370612143154587871838220746506330223315322957158132747251694782873184270020165591281511671738005133657234253950374773416110579112924635624949147630342429405859830188887700601751070804442725702504852232448135901508065102645871028389606439661868309895447109402609628185181322135015475860730837226738592904505499284512398204333987608024694799892569410115384159981116014778503828099347511327899596827363634068120019431421452233737397778922008587413089794191595458088933880197345380020493226885683659202481027459626044893644034875035358584182571196941737199754101375625544673275910791228969551660383039376566893688157712271549828278262844658434481694228699946836223295215189570654667876108582963838282303035175055323208062871256792656161409767619683076979643238431799658734215257754904361655260004702908030336864736688244407353104420592129380492683614660685226521964940424263780936240600691900068676113335132763009167772018748020259224942284703781218147593579590026519318080892970280512718647919312234182779742211854833591552659465586828601819356581628574999608839155486319242579570765131293340879356281108814246483556331540176054281809490258537540050781468719232516158460785405269923946161952387878972668576071793542042808006662275811784437826826866048994892003324230995038001176695442756370746404461876999359797372197909924531162904121474460597817445279410816915604580594228045885815828168252054026696294842866534471039929645470960550681213952460034944562788359200803420797406483226306279357982120731338749755772806341704742362778303891205112159050201048799428026024867684086703069268402522334790461284347542325874654197500440335405534469515681656980153051118861254659932770693917379032137809223523608530038822434650747414486328221495709253609547613369455169109569358191136697203894049492978207204051986962281151379098349052530649578481820549412113029601614783580198147594741937206087923158140489798304428708108628620307991356273122134735946320352258632423707543597885667121195703868156967956376679729680815517653784416623317980951279902948174295368746963040818767659335205713397742481431352365757321530274360135821268042832870192378043777397757906564392776633094165444943630054524339835862472583319404609032551327989918550436613970027170208763709016220987509136330576216727276267661266656451569918248996832078154242365263795753516981861794240301856090142269700897942110577648660073687918108657605868963865238050983066098684885660111611762954612549713823931034741014818641192212467610228109464939215127297243230399980147250910343666437996590140733642684684365828602072608088097022186824867814476565381081951618193241368057081646511667279661383682073197910804686176170567004699884301642183184194342750793763172330929239072447623278285655890924169942519932457164272201344464697281536415832667471119109523307530778392306765420176144527896691902230133813331773782101738839813177381914600311758445377827721969947242205263520308773638392855383655326852185000960117359396650716569983203015045870988985885288826806116016927740109490439892729406897371439279341832426305030414661167956582075081217565895328937103960384699385539821311554554600683468938752930540500311992297361641454239349621787368244639194063277826059015665629481635700684495467266224435496266805796698438680210886103807484040775263651802945010684335444769983548433488186300708530389815324358078362675097860782992149196716252302773700808206215400137880335189767195613358791853133672799933513906423584496830115415563068408420555608624088293120170951735318410413040424887456111529437584048781652410785203179378397182059980382772594962093348241917355471496079100744680160394487540335314607924176127933691236362285509593734659671488865763279154248224385692075509607972855153932694357900776128559188007891078542537521264938387502618636839284610976376068425429425010630883603071644142333518812039689614941599750842822543048324366362956267696253287563012163526930499080308121259830232037970939842960776099256605730005120118178274849531575275605646994015645764769747154736475815518297456689385827520398656780262414871526990226405664969222488494813047690471190087596329457508401003279423754556951814016977719678978305340195553460600576324535131323826194543389941389962580684149303161102447260258721341090645630689232599567857890387197288531920956727365303368269031072793669764187607038839939748066307133274943419794514042198646971053636001206420894151025864018995961459784037836131989306315128435726384877836048512557966623956289197106597183616174429725650708328981177886527682449914016326327131904417180408299926994458230916346602728383901191707524780382452996907282181758054738635426961747751896703070097189240318425073196640636720564016390572114874143960492862632893443497338047670394246410574121940276810851470280019353414903068951525549840536801414943322176241286128946822607851619430659509235603231399159686731075008994407671772594335760979021455183560224578071201521339075307731725911658293231412911458209136392212456781424420322447272026131298837024878941472561190131526698879406540486381391029044051793796731924652930576358755461039402279844481062816769332842263259108068881101146132706074203341782245713399549158670877180114292547521225316989036681897046292748623403475583375131147022704284589381776672311710292062562085199666919171667532880905785367224953150254559440886716130235828853051417330142739065883619480517566413677400570501353816063403451956226979303324052940343724934787102205125552878112382218013058366994150977959727874920503555762350856437918737079096948810302945665978046641750751831195854917229694652739627062091902183268309516089085058556205076726293918118925871700083035499037196048908159095351397657646651811182671058743595526660000530886715276807545020227437071705744170298278007514921552026132671185881251689284288146982020237776417843766725066677607727702979147082952598421405927059591162603193965247345371697574557764151042337511142251182934340429023709195502425231280455150934912212670440440153311384986410344231602470438748156665915914481396059224957157104398124801042126359053097664476417411301314140028280001628085962642156699603402036611730284162238177478109512422482701935001750841986760648459237592383738081148569336269303323650210091706793624542308721969290262549131881049986991055828755171914335148145778806508886248203222192339836386878595210189457161105029472887039712249007190619571047270462297536838513159964115393001263304360845402082188699439257805171445738732299133369901002631598719075781423786980836576712945847265115274219389649380366683432975733612243975107816166377205846299970311708426265106588331604392160593815849633204435294981081800475042829230714182171677562383939404407277491518439595352708996376139707917759662427790997768773188108720998898676165485849778971829390799221054417545704727542779421312007525429341862232924825654796356164190169339987961823892638474398675216330833804344279770468159035612096510603501241804520503341793137684976182256494468571038459854373702316180582766992901893882468562839622541920156652472281851705856456782473732799005303108476149639388298520274562612440090996025459266951503439951292716801540975492158033666995620027778909167666056711896278762758899628931828556929161356829621087458863332272956443698569136917385830059454083877835486887813959842106349401822372994962033459214809141493460177122133590656867110063139719552501191530973643405418852110074983238327377759495665449925480438904452284687352255379798820795523705005716124706145116817940569692899264921674847422834130687449353845775095522976558842275704596246260733910967540487974656519088223508645228302361290570810429045454140277475571545981213356488533474976129206312450515619468160080008269368717929377332847570943320727365668327296513084151895165859494282056268100918355252443340159061424560332539319143698576077233411294488141569935263358761594889036568332683246910947614748137477264746841077035916070761469249994835387699112592610950252536835643808272511605418140208017199704532442856709904625791738088706284111240830046429846910214251403345872618847328156009701135346628900288593835000020865075904699196867364771366822588772835051388027195307497008944485991387489730350756930882909365287190361431538067978838655699102574170511216423564975012323447619891609398231219637136111729738306908062441770829359930879201144310969688342401449162794351062085695608534829236270884653147170767917476451732782592609209481570202886929908450408098607714992564796215351912018345265171406789411777275733346886385660535873331751742817814355479281919435751072754615581933662899352211932786889204103260443382030051263154222085399505811564514554370687107115224892878861423747219353372580762940758503766604051809991474389312529650683098229514253140043066093341392197009892056478430943540160122960634508122630660437204871003795540477816848839644659585215834202596620422257344859256271335034799961220678701574633609210675585723374037417320762535406654271833351962145545513309666334119136468821561586683179232952331688106764506600559256724351975502614715020572784722171525626790741853223420208856625309448545864313374713600430738559089187031790609993868166299945842115241650237594216397881593413172663125220347824539274320553796480061904189152165432168790228229636455184948018927354925415675229616021900049934452716798942499369289410725417199586873057810755480754387354485599724539378235108521748089355270449422468128838489089842112914077602757745432285848050718803455375244463778320399390768811991228602461753449883279970502143490482942942778804801932323521443515553618165847563733744574314234086181240829151933213018802968384865603626825721784634134425423147156672790174273240279717791598991641644387062982477692226055277573878983313094248672665214478589372256998660088889056220496016841958240466986106300137887517670218714244620452310282346780559435794790341678939430165867681712264091300916879711046322652298377916571257866941264428443728566648775089862415219237773392674405675366012263368395576524010540179084407894075904488847591130331024363543441571611610569873381232942767784992510215087988384433891120633050108053071506371404811561600945473714245898664556491287704800829017413756298149546897344069582536314577144354347977254945303368060637444109824085084506585506631988980176442933556272908445142010693684320008380385166629728505584151721632077131543245580301303984610311100011620399429342101366597416102862953128064221923075278372651191509836733468153944178422699355404474114763748280515507186121175878718155958893218988890065838980113844332362811323876175428740138373926289862567858455370594191439046449261050651340646527894447901130521332271052676049716022729767809366283704575734903802113782224011898748604723899234897891173820316282442894572592859050114531761910035485255036450198067369776883692479046737278036385627320203369023582771941556978563571655935692181930160231700980059395481717950896189321693162367274626529313001118055937821173620349568620411537135985565642239016830926226363140180034488948860540289432130066285199976782782029041977085138338234040557968001722256807127843322654232842592490193953311826483254900323452034311580149772836002512196505157918588589529359650200417797553895694155952433169406304183342618856907223277544420536976318672979237917584331860410766667578771496862818637229153965401821633622616860015050355692978734239276157162011630761506562194056031827032928589550318122091120918834912682445644269113099789799967861113470248715797725149203654631389099488469043176293779291634381337136804568855574592361225052510748632013213831307937548522252996781658848262783902287425244825765118603872570896031547973574735417952432435274027491692299435949584799245332829716080040977007770300609794034097283982987251706736061352521197608880122513886699961883645250888734489258799680841364525624752075472605014848214333466059093213129407871926976682039287874901903847017154023971084792887295154156162559344532050819792464482949523460798848419202637100402942571083437451079075458096558422215362950141414343640207794589728008195957679384865937329791661971419832044152922903964805298313602943878306651139453980314911934872919898544142411702314390348906798473395407671527170559090125673995040594226431165370513654192025012978666948623610526568534594086778386732614164056187224792550784792323516287418795254559123541109913719244314311457864122367628702838351104913464810770460805279205753089328984543439120303304005838869432189066365695313507192345572826410832221785313204007902643451505796421151616889637872198996066138379356649744284222648826889703684594968426636352158795816670653841817190483996666042881087437778700400362430380209228158115699911841750497864778436609974431553704071212707682253509472166140901821664939579042339911043233981461954844714372119748686361968949576428443628546725291646678996091532976828353963450882684732752557166390065899719033886602455846846084834160150953946164504887004177492982659360898525247469853036181754946173161272364433938144026815120323707588503923749323467960934950259998755573475159215279360018821775385371278330285331514585927562590569842083773732685787911089910874382603385561717886904699332621245468424765637775390877080333801527166187763920481011627171558628539771957899827701486636486476280216824833537980298659278992231623194302302884949945780177162142829718406292415019225366457196747878182221921311391833528374992114313970625493617416530242545424165440634335512809217159568087394347316120916496774997505035895827454668037937877464699798142074995912758638415562952899381541173362339389917160376662409914041826347027890702664889698233147737766727404217297101353782194916828140466413208282822114094738344091542899478245420603899383517522673177492689940877830852281156079251492428396038432714547457572461764968517159210337713251663840448345121302225447721974226273258483477009117492971001976099507141704313847206815518272982519690677030928110228280145952890641654340702868557392605244225916586591043310676641619463543607665658613941954248355746347070195962129200366389716128075651051497282764932997689496354926929906148248912960185856995644822905938695157967822929254215423261914649360429416042092149933889459467533144600473281639465323631647503599443540576912965698537778926211196408027954221633623215680095763579385462792001658547083454574834364379433231673246759107908038398571237073688973149996641571275702367854113961563049661793780283064126065913301350432633791352735916612612024159630926373831591999496619821311225195958836260446010943424414803679590114805090864101368594383269059559298386030156468485220352062769016042023161137090267015204880489629842285107563671347460222596468961660394304326701049908329031004229985682351524832659816526135560640358780819745181393207849434615048258828696398794719923593394659263691979297520334846902181765818543532094775072898476157860762332261477935708393008447804645375974780599335877270375733390707929262150080420412252831409975605265949466760289815204420180747861053427685255069357478350109489178624193513509206287395935734829366607152160255488181016854152727697715571791640942425835496597558027904673917870097364115330268316656671984522261643472880683078278798734388457847177328303563234388968405844074446216676754831840177752795622038065240459335343398507200516978582938284096674552907970095752243304461940099189915994226465084883502526275701927764542052176309964120224625350140183525922480755258844794386471055071843594350598597665253056409448831862745621112005851495822890678721214605323800095793776423511239849239253080036996943238747554914104518419022485614280229835389341673499143544793185390102366436432771547908569301449733129264140054431025623798250475052382685124131848079467504639764716259073182299544099713843010559246444918062188726567986093629058405372431872788320120392833927618707611521048408497670041139110105629332494259317631741277356180382754339525555288805234816522435685738182151163231619744154428597835354780500039482862403024042509443948761487056489914546996522861056219038387646812703815676924441254868907492069227841731491863287186720989140257092338567190363786921372338807663858286290777282211670253740302288212009612171254604878042054719342774442294632566798153378436281014953484916772316865214467156735265159981397367320529266946135648836378663179995418144731503778674334842922087751969612389663855102324423263060520302089615525946709549724002079138581441133108762269675562500825962576956424197430207990693134786093691839906066436000051923327271405366360440510904499606626156220502527784374402792787017711389169567688782780671479069189349602607211748085521526260347432163711735145765127040312955445441476324048315322171081327582150873944433393649098455354424597970065261808028538080885673790943005332990572409623234480304928655571700281014257552682427488808902654332860289495677845100810153122720866979445570808918142492314606936434252826097753417998119463190064741488032035329303254388037547300439801543652516340734296949658885735409823046902685720182708915523249363307886767733604512294615855110249210411151039502708488662199862477561543767038113466173333241916399451379767022976416362393689991160422780701118515317052735022530951863150587571504147923515552261065425485651602187847233294671679341564643105288412337553522481695460671844265712065215130792698416503464825200057822968841486001415044281379283971843873542338019284595778947708815415266102254267528918880964212170399431056033842392014357785453306120524926159796929024668302590358600758208719801000027548518971324701971307659996551588606563860153070369836012084756890712989556561498895775323800041181686850522845228527703667597590839337587792929165522624524539566760370394894916867722015135079993622645664359661701379388601421538285015162498768617540249479564685927252935164793439280622169738195962504218443588744592642633354902242573491592519703053794637845207274589151442623082640248980136773776527668097120189078362836784252327255668369657123241586784592967258902209451296467415662015072413610803800286617631375664826265979017160989227200005287303686366700216499371686283171085521689219298433774470922840554626882994680861842843796903979165605570763686409356318964880786282844545015063918833085446308873486882153943725795024927914872868119784464224193363054404077267156750473848703075892335856945422402178814469641183223975152816679245563837117409368622738450914356949782090057604774457140141153987438364857131441730276939337846404605326650628325276889999443987109916520440403369263965347707700219762916821852780287805288453183011058330978159367838681886822799134331356105657818623244338687233514083219335544792277258519337498091186364182932700597016983878009801096954303476636263883370526013410062176036975981130974352671501916108020913333237778478775730696966618660054400568756049720580678698310002351522570483042727487099573511476040769204444662049143558446314627429272447459818642934892456543316895541995979244596193179610786685299748221781438598818378081960692035832114064636685139498409260159963396296376754358533942119285240893712286648789361842498383724036198234499366329827198833611919861281431630522882002248355409097293620346766015080175244265923113586820602987548797177008050818993195413525659773230820046058404844150445911946542107816826854230083285477206977305757798911463630531268772088570184950974402151199944913225718831939093106210678952670373681898135441572746116403917500219517567408486561557353823545842744456003527319856594072305454083524866370056341867656091375648542317475787660830532911014200927215291469137230801114390033521670047873320469745734002785885212857812333510236163435156684120325753847037347373445476025092133285403399416446132227644462095178273309060835563185117207854311248457819260960164435122472243795259897261288634819076302300467984317020876005568082842353569537495177530452394784944001752237300263108617342574021983764309940043182186026214547028980183003417436515541555661673142451383005780832096622275443611656353783797619429021105875035251211429616073074600493866628841961760370078831288964915423482267070373101031751060389922261062134174394107291976462941440005233660493970885777172900729432460034922758437116019892688642811597177572317168542841566314355077195612614716212472830949272806511028990304306023991356940307898851716498520120288836673050370005965257749275676946276988264556018456092217196363022571811122031085062783794559558999445046929692991045815298990355383278029557084060046862026559499150144067868676952612541326254677372015123067495927777734799708985245761607901435453278188433328794835563009832247387962334295357121826271026312008333213655653212124768574624062556245343133581008800960990722719576597721906824772097729512002092666004428955711438568490920590853383507972518937284907152111735769108723741737813595176474097183910778592629313068957379042632114304485581264045858582718937827225586310867681046145929903030729562971366753066832396518876895845586156879334913918433068276720910993591634043527710781815444076277464259758641678192902036877665488446750247584423243167767500444601790775165689302064259163759451376097422904045991513231568109104812538910931655093208721801112411283997424282991930720033499561115076551764709555357040875568035911777916635605075198221518100918977819783077761904872413559698446324945714766833938137798389393879761385704350980692644226775017474358216820976570525586469722151216184504728509970732252923295508140930852005626207099250643187913948336726956516628346345261031807229492493238461460065064334371318778439280152892842391649522184834388756051547068265571355538111301479830570771994992509616352661630601110238849999102879867046628640927898667420010929084990202882869066451632890880688984870434441429176408685718460830933477659880642691418719536299434550528736040199368439214969584379966049705550768348459868757216805895240670273257541315542694487093258633862938804839460246617351288823288533546858379258499436372015338632980040922694181854639807553078859925255364132549965951002005838613531524810426178961804740637932173500733853663708660751590922122519724424900535400600168593591013014744329192804993666233670893202720517463248274187400772487129088960811877263533608071805043790624349387917208294281104349887918606001011426554023588816937640703001843278247648322614239288453376415173391241231716082842132117862626677079144660615327654845366383948217227552607006928296453613393738489668249191787897362753068083942056150093793536883145395198706235193917347427269494934556281615847774176058610862470476725210179987821278755709510295563932823437371473926674679149587256712592806261034467131921372204697960583193078267927180685295095395247215797485470980232108117628687471555067225781043804437472438620180909380759219962807798111794067007833314532347457727346681697922201786257470046809678317293139826118684627596023898247870556394276757958266679823843155158878700819538259119332266454225913866072456850494932623217209134964591461108815131050954313286580626318065453357504985410080917889693817777525027333003022498691894556924646500768614042406406858199289382737162243230099905553732657148993561293617187226578702031244102259527886624972175465617994532629348519949667709148977436732353451402306829000442580643804418860532451195034785661259828172091905152301290607456978750390750996678564445974342379105646412161348418442093350501922088614524960328074712554509339774940820962061300191753467617171781415519055552983741711249583097240451467930508882333362698422360452433181800135806694076974559747958246939012568052526641737611400801842839606722853133572343120742796882788510960346139884273995434224035014963764536849270773571528319392378178727539618882130408094449101052764185667218594398841063799518688388593929979501223253174672377796078154816087938860059746698995056225055432359836327436535338425695791844020125627433028702320764854544341895586315938187445566893323735849805928120925408997979402218957503382805044508169081718416189674373001753965938903663886367499706432946944688988640215909503443021265976877383824439892685261489623350276357166187046495602971586937597346878312851669502594234599744625267790192382465646941696119912617504872868361683181061276228810224865573465674644832613363857892249257418866570834207227243757268950369178661856769798808090506310719412650617071145225482118129042477217366952951586964215886991455870528395852067948843926473271635427389198597783389577460360137923186062429746016477879112691363209428089086688250344085044979652116613820832833927486571025920836722656029654430813096694142260588446244138200055428408368866142788714998777930084597994524704285409147380121412765130001335866721567187421751008461119554715021397471550357931146548174668312458420880908424473145454355158354358492741295003088185959965240701375306190653755892679714710670444993235431327156686667380886618512244340562690336351228363198612529585831212118419840868586277139414735707183177325594794636647934855365918161339355388059371565094775833581554831558074313089262322882218390601435889187913136230270407992020376332794926277261053957881449938637899861513317900678363197838500727796257971151880950993841417118550792054448380524076853760861274252363687398082166795672336891190855831544574059164264292366846901362143162036050263770837367846715768372102640856090289328205255069398675105879166487744155647770062182905175218590883163067126870704021294656316685431210222572077884088025244412835812763790405403627363936385706280683963161305002147530200553003993187789228892961429899632804402036366538529375743238643317972541206920644313987750428765937100643330209676905382884164060937384457735701356078615780244012272262365678948940886972552331617776933999037555311210145745605836768412707088742278859684560591354929488374657092431835354537525592492781298691754201961176120934469074566230957275641527771073278780502497831994998277882579751734127911112154982514891750005842027286096624870506391847935672952786599270546202925434409298894829432496133036437684705153704105363431025541476243221667025717387600993724798534962638287413470957693254398811985425481057549894285781638775202659475605648464165276796137665561648066263689713138690137349450854054434037542585132942801408354857052585517690287317013092040028174581343818676491007668304760999271242444460618350725799740362269693230713981139618826922281243171022109269541202711078291729737874920046276595459797670502258005336332501333335365486442403629448105411123468329855342486426643944441193818659050944733709625476814040619099925728357316841393522202467768902198054819553059388682611624036677903127939631340067450997931396850615649647458020335102462366373040658773279869846828732491764695828588010807969840069254822623192683599386834158115513468123923098564715017410189630608858292531844854009104931785556060499224550765645379200284808025009509011257117079467385785919561557136576865028944090695014615651575823998719682145958447543024920656125379017694268761076504738260579203442310946438334337030789979886913607777236022738738948667481058859507820957532446565803745579848862713781858141863245234888964616094020832967424772997694316124057539714548576957293431871637417014912263759847900629127127006657324216075117390315525236733325657338012039180811237087691908419455375809870131908700571508809357719737866636227907933998858002640393779270848186004538402341234453713403016148793850297958136762467430957729907379011370598627482679304920885591006000107762582049713326918169933712496961659363343005126385298159935212076347209535721113593322494160453577497075556221549499393989049883799302112131962766826779682626113442583359065064914534932801323580552581958746310523799736955300221983920266823420706430423432400837615210315585441256102867563031063932132091121531362216990277246435054735114674029579224114078917461572033618246790422969150725199488693408136708290914890777780502633001467911436795496612555682753837300656458248547241511476260092337364291406454982842627945944510122305226546654174053544435625019589002992668260557953843656032296562885690588472540880398954238400265813271006508486375131044789357691301850387691452337743151853336259901402962869313328252121583418915023731522387937280265747894736612340227058925401800544775462816741585794584266379045768166733035094306151459505816172307326238567212155086701746658168908723016174677365517730801612646475867761155699189836680998306519567712911609420599577549907400630558013154527571480057989279253114190445340048596974450398698145571474918479894952367180176719971499373705021188258095138171140881921548395568255500411966504857930684003250459944376488609455183357136409976816100943408548897421918581587934148541464973284140496072436738907996886476216068620836619644242737903665574772503148902675952919165086752236225165664136440777253636916432634157186969367417351484824569024288500176413449517826032479389408084821674962790980754894009107888621553087792074796053102229159728752605925142871755805505235748644123409991024054370147483072258101458439516831792013859299426136920437944447735685452500978209216415373868751929577422089220053559729681815273107516176006650584132152090889798054085718025243149876859442007658908626423270556859959031713276125921106506213266443986244280762709209369462212047919930908608641565858826472594601878158339147314567389464326212749224323688285031850089892671355023932876081777893432835583556707000011738038040261277246251619855333472361245151700931197595999028147571470252327717134897752052787792855887131859120021976083785298935332818382233923512956970563119175036231317730085403094766729134278769449330290574545704767624919403214585851850134960399103714096299366862520259746645059484527999310064455660926322830027476898074853658828596209303777969947125341710753660190048020582605439314317569941719362342069120476756370814759457557339622760128288107667168659316362436969955992309048666015934909730288879620929395382004512785183681793927302003252653468000903395242271349547301843105680844386631626259650641201299572504797959133844501116173947062960040874719186084172243881379987814327798558940533672097724671428204876598374307278214423915423748217266583507766967811395060044046576971876414754846914692233752892156835474093058710543843077539712099787764523212407377413495127358825020475991887696318148234115739728812343832361593504955659319366040648672717865963406502630989378300767837516646602279864016228572490812993933517867503411834594818681756292614359479264880665249641436401614561011107543962154865958265501721345724408274597730058089038565750649483052233718128803992081936718812233231388794201240289021721400825985421885027203567764746606539978633461426029407792876926212791546195538675217645044753378049634787627774975449747876816174023271499903182800076336620032958705756476356197763449348698154724594402894903812970132280297144190720940130788781757342491088829807568292009072735293945741111787501159228755243701103749243962281386627092436828088490416663238274890621586821478044982886846787057223975992761359070867243608658672435759301407449855278558155271162966960149778559184432743842658843003676330391111215720066533406699789845390216073186600469022986499818035610851303671499289728344154294712437742523609352014427667943972523722192275865156806498870907476077599727651584885707055089847618718925724372343689979841039382080833115386865876690833850430693287192346083132207399313204168668366455951358479601863218726576638542091451027320284859041595050231891301921141164221110670469747164365135578614401349032842298652692725815508390106689473477805069945327792063981967205329897170631441626690979589827099959983592559867312834021216634165428884573453398334844010048220589398522996868326587558463147270740387987770118575451661246071462604216851967926305028015588942402334849700222963893000685797559162276009039054342855465905548877655118943331984255857115099615555446504668234854800227681633016879899601247968067854978349972590793406086682737791028765962911576797902056990755052564289497666601966760312428399587390949279149487504449101354207381030670008791606792969840228265375548872615425047427660269456190360370060181632682428857507980829668194913378419881521208503010504045323232587588378870995750740606270114797831852868765153847752045294525441129232998945506054048593253077793733939702795719675210573665911554976502701516161568195524172023636477957976744397772459546032635935534616177258726823000830435186161556466513710372252859854188647151280712038532769392116820152737673141775260473831555771463227146781668533048153594831375830086413803902143335022882979374029894714567238742872298896599828888302582370106759612246213299203145475663722614886565726126218746149689498835150944483909978220648638122368745008082207600794313637892183990288454314802606255382280756146368975568117116409355955175130581554232825292363727831875268312541227848651376479365748170495508969177026842846719364065644446690860898442452084876303857248360616044284308206464006121711026609775187217280775628319858944883545219658190328598464451812141114552870833936894341552793165273863825412939451966551984093145622689798162127549200265974516622601256640924173423337907383230226515447598355040605691438555830927770144476769969319564685311358065334117590441024486472419429442905822776167440320605659991801541275013048242208373045014583246981608003425136478069470673084225150838039509165943294357698106693817308335536751386100867295072770948644402545657381513013459880634541352379132412688761854123933935309802862225454754266244047678523288957904758292356652612395741623296534001997249043645919600189465956196320645912826844740160849534158264736950427966624088688321289890787855142947400223476836031133509412658601230801183382340883252611395404714896048856566886995950479209362010804533047273691093057886488563560214989190322945763253323553671377189163060128525082280605658106674559335752262193407097731235651642585731858268230374657390852877295015030429086960149916620988327393457283998419194948953229833633793790523124358850949027825785887295866909861049771725280593764331560580058542744605053667553618169506948008544676368697660965676268893061487567748654416994652954934604506741184237723998810883832213634886851220494917498614621386087093654027330745189108953388062398014581055784282536482220670852390647645222363751054464596844133611880268311535900820555846620909021064220648065482642259746473193294306680730269343276166435594165186819163454006142757647839872823243834523607705030927914878777850765759819548720518841644740016597027122938773162480700040856018465114610633144930031972918216759577301677369283450826509945980050828272554371305557274135295379695968307607884256853756763966269796927465089795651624361583015382862877701325217457814593150519556757676597429326913965300277942321334586880661519395066338758409088008515860040256767705333656410186581754240160469898674973693778856429440189519939149589508093035769270416731631663300898391332829747907048220306440433670421298851010742109230079231660503360256252820668398076289969879713499202770344152736849017223293718750579352642562390341071422172123636799116102610869371036279349818863321495959567724647053282597407787678321319781744560618794256724746295817810275475702861011354324177089812907632993489225663623525462010674367183091341303170558181859215176536054496085263415495251899181631857032732394688567136404910989417825620819873733705277388235640733583638372711429968880363295202174393292852396726562833454098624676224722291690369444773246091300347383273502972741449071037663660391342837962521008612592405259877730945249614593784682742567603618781707905886920276623259643432147760224698761588462098607765978228432072835177850126368693169973826751433824456899394186098800117528979695669529108349311804752590011290845451176722291772157319507470223428885722405722621171995125286045212735002304193751492120293336698388001907424592987748887984893350934029801777397336190563081198468296571459365643438582618685073564268218231330040935478199702365453637029961349126182294626374179064265373948440236423398625644404113367435211779877252195862590822636466064125032705931168813419510927888841592970421972042740219008805809591577266714185767829468929964625174253230691153504840596458846798471613448658978854836883926346645920408659234791799058845870829777047882523433988393732921036535872612255849771728735362696469080213593183302308330372184701880627869148079754805376547616375725070590550438979975440476700511525063889365871249181902372999536856711212615931866063105243158069815467308466470282278466939290113786066219204849669539560853278600641338214534649438996107365937707644149130940693567259454598466170807688475766277413490827277547093570582052560685143801561623852277842580975294247479858857430111048053146004182308347608047845034281751696726526949736786898918795473331018889243239322223852372094037289799797906379969201180379671874410886595682775758271583126860734512983883859274792002796275032350242542861794836424523997757905999814237400920140360948611397638326098842868440512341643141943290394015175471990555934633946129015611025974291835909797596928754586755943454843227008953644934648220156868811423837730147464397076104259855117074582392289221596769336471213929707666198455841491789836613606643075516258167265043271908081127303130974992383233298946745103016525793591148902188680235670302824810008504389922386695575868339683956787144953478268734556472373618821041097508940946614253729833831338177370360440676113793618680335698234794037716218414092452147628655526876822245829842091735622103137080601368428096250837426395875653987162621185618137078722323443575719800436401974202072812949052156486653643678733176287430616795047824895239644768288742659064710083569328798733258532811305145871429344215278528165333714155644025166921859169733807459419498105157789088594675433721380666322788358535712398749105380227769086066846601331231319110483049537446917395700425637208389309878380841667804291534166005677369034844024919398413660536167755444356870140153730947480734418443165281634164101703502653620818465435385891340423780084366173159277373866977850951562585305535974653299716520999479970231492132632565482533649940751201937781140768695167407584268933751476463990729636883466304185769699232538678249111589787166510456326040166359754850078061473374747808618672031079593961188147492466379446122288045584438097550997097615081778807308838147204997851074888848988566976615923040721245732376442997489426024542900370321136611302547913801191312274815077730310284859712280958388805055160827786432419177683669094537152512919592832351583745713767410675849185964172195409234810167665814614283538817230250475557904575597296641661822614385996406230819869018430672625819233115772015107570980239634909827979336410504635496139343026170123581545037014264663173962237766363134745701064207829160236041372544034641446395627619972397944878397717096992129463407109186059644091873025390915817786368851180503149600883827244258596703905969953460767540112736142674350512303625050716234904869461287865068881318740671221779780251838471675909330718164201492689992677153822881697736508841600008902353606157102968759764401882611665087792121535301775482757525236388877015793856159678199428216969356581099042803564147629542129519179657802026619899287288335967987742802944216064028970584027072201602940289668289624851754698028787886001034170354096084946178831443299614795472586275250064176885669414920436396274434449373761174653275262445083433534544840510939820522523860146389776076622497510645814515799404226268530553791569164389532780721052624386979960889985332360709081740716557743405859851935292166760737783260903554478941389856934275266304875998510500553234842355042485749918698914331384508785528646305528858405461943545540786390207244475463697498147805667302891076391976573374457442468486506146803344443097678977833826896507014637619007306549145142713269350695161727922698345224851656714519855880264478169972738437337425880595308873945623792866996760424540833853411695643856657976251247484680613774299135659134665799777809726599885883867612933072124632965110535758298717228668363222749827272218263166398794116691778435403994091324588999584470653129135732104277815918925638211515474184487593994671910169244312312682715930213827440782029081187425015580607635075274587358604715547770287509752899819333172367156870513567212716901198706557285071179145932653888403912882888148986648062282450004547883864042311101682392668132146439658535651908940024774282689795417040905353040714660451731817092137734319383946073063579790618693689732730538282212023010497083238780389353469765927756818326680408476570498939209836084992085397086298619135234501439770439548084407640754071162977609975857101885290822825851667321902529660056004635693162561547753698922569982285784392259471677266093990603439249382745000051313192155622671037828889079541499322047026088944743636714009781099781684434979261513736501122897666203815542653776341799365365107602531082045591621843773641909174512402823650604037205580955335594857325138782665259634541404017334143721860822480390134575785382716243691557152498190144187313549909803429690044438296316716641475221048006187634273704605439369896143156319294278697004692283902624470282451737725180817588501898541555243341829469015189388487806195141416325916056608343813602820566135067412830985697349487149686790916043408790129222734204381146901339831345335052104331970188156286354354437045511937435620439561888070788369756603861159993444701646313630319985226268581510709599013284995864862983941715753233656179667965170972417475786885045563708222865413683161070500358209275674681523187222025397045456261525216793934225782549992890056850248388262034674836138661521954031077259211857893721095433367952521027125848782910614113243073787949615133959492030930374094544501551104659608924959820733274413687311860794268300456538502327335772020951167728455466845066469976947823201959500190995254982072871391552301912139389746799813097601121352910244815910538418770605298655377341589731781602717922866875036434792900091833793524062018316664652248563932805985094957337919230811679119553261544419291759299725695492841561240772407723651910875333321957182605866791184723587198856103369917509947857825319155365518364168064556314392865655115329899951298238635476509082725584970818789684075547309911808863758881994884978635088202552518157649011106474191254349069075202983261991660678194530932116170270951860651705975679586792773066691001970263571679602385299093284631662602031770522287240161063026423863384164445971153723378040185876070851095211360422403011785660748108624189381494079105939989091047673333659155357191121078820873219229120198104407849061363263713549954531767374802346025038359416275630365823110561367298976313316566869818758624945796141283964982224395621222059563621003136955026002028742234280448205398745319342158340296847624342487280736585736273337236709594129485736632850161304187618274271994047051642603329921134458352665448943162138890836330469840680183315676656007334801115893296238381858507792802449129708280539829384997422134971264122937898652362654672532254358069615809848155280612137470957897243355626512605930652967460672313847998286175076751880623548848441329747991499366234063274330898981649373366218780416582464880426226479649078836371266693212872887725777494228219927729798429931433406955403941914792711922762766629184604712181722449548522056943697859639187947429427884834159005579206905296364764515870122581935716827078177857420703047034754712901285317993949540719946140322557986660509690450314383746938909903571793309076765916198917124470648034683261093279497869990833330435807107026408746836678849846156351598838090685887371386327184158447835479413886225752242702518262192868653661711442233613908230582512888574247153548182001688243618280439787280430122133640194474155157740099263987668897740278114241899221132376366432135294230047872597625095913661220138350669887784672138551160474961769015076112836964906351605391243506791521724682664605532444606211889690865288678314128716874761961262742127060264170309383944876332767813611613031115850982148504299160623569208545045949204606840719173745035249626959959155780184258784899118656069772429986357205654547760380963409423701225818819261401819020231497910130451774483681671257364384514275159173886266714637906580288165545171910520260053450001633652483148792738460382603745577762877706330261258379974766755593428564981421872419778603503717651114708719255120104108028970655166029313074190461740336402889350194133629876850564023260391675663053842338282437614321547128668202353721664375453054409106876052887832929397166416091683644665052947002562879566655925101332771095938640077124181851028650430946669740965086551158353195486008078939654389019489168271901206822793936149341929091183732038264401728200908483706182476306764682833529299484942359305481792019093129654608894207017434309964905079229454880442769895391308588426688980134379506300736900825717490755751307666189343966849059449775262290367126318048715901135695610240489025109192474433078445934390595324677120710181850521715488624022851193041799035086163699473031649676405235124243056674175993423713428606086840503753641453715025248868491823222782535271704572498204169221444627006975793682147928167630214705623624520062263104441260367691461563421631337698170346130273118077073936224458664353150258685538744866695223314492813657586683244672764084912947478150532583995622605430466544920157850839261590901418635704933816257484508171518246553584174525654657283414934166266984966432347453564198323496823980139025207150129006695959940596620461139508267342481339342666731890086871681198508737067823876540356261378660240006293926639612592511550173293739135707374403251843868975912823753329322874753384754781489702998656973851120041775553618588765514762593969340870791253289718940177761431803702355894863908317019305908793597213339540951422265534717309619797647979615447353143651874739153533942735086178291511789043614484884745367749005482843670867055585501190862283155619624446564775466185728841533876971385844629173762096705036205090186286998352231628991250592299720635886883345760890457830996271521252550907731239798943716004691436580873047961534874326677617877212108523691313731723116786340483831980163381554334513746144016511767585037916469339565613833161691392574475501349013137603733564307206359688172442121135781757696125281661604599926927760487053584407947852443110064830836690979829274440827177001268145153723132835799774660184152284963521281013267182399396723787934433703144456502231760261826367227598339443622363174653601445388740226450047294403631553786506833838098229153156776737809036042479614084229691020308135075556317658053729499770645468317936333468029727890588030502728785768977300456921384243060887243549652016498803152755525208384647573085349843121300871934027072608476917640590990336158103328282047205070138920163101858442785098594955919339085979332160597014338385513905967831704838011839185277863188363647589043652662531414698075901582311779156172601635004507453744007806264590418115048039483345359110225045344395732497718581255138269861895869166943457313129635378603096258900222806127215362126870814781733948674636945156428549120792791535530815479193040720236364282992808967736764820522994862549106233322846643023717263141051824677786618022241452039142184131597480541764259190430159414310585869242084950386442587030474376985155490204417190444225870746218242330993507404389948294311649979800715173709435450161118565527609682703793061370316655768022694402032308357743192844889700274200458111477663416105770673315674564092978024902159719195565259345202122659694971719480454775376947252207322107576557311498535974034081813381106990698480972174432078526761266955891519365195154547343427993263728294801032254469989523300320777769960411851642478496921768280784847910030968768684874951237031305195405423650361109099374379291931291647145801633395913854736739307452108618183787970083708352521621210298556462168320378440919365255717253158207678576525295213568678308694447979549727482122160205764352599555546568877131271883889328421408472571668338870581179438264946615138097465399308010966186328625803403719484069421638288536638091475542919828443943704971011929811378378656720825511650222771858320301234778148161411816243891403871888938565437657516166592366220121500302259131089868070139494676160291711312066234616348707894778660041433738781639931381686609532804604742032345207817565748953026578406879565744208261070199196751291796043509706465726510381359460567803023461515645396235143441481281536275203183370827086200507474270943552939796709042986672440298052710015106388507836275944278583595931496033785305334639784085439483524093359233641901622621934378231031136799843162567745883874726273120700764504862721876784698197448653884173563663943046760724618454672675673084429441153418920753872848136914799457134322053700824887010974630526744553381100462553719599009470320225998711789277532952325735239500675138116672147721800253570381549871122605542492459794564197629453028496953695395825227567772869715960028958504800911541332561101456121673047883383137614124253634514832360851083839866584662526848677612110348826060538550911062383968814847226373112541862310159337955767975986550367639081277165575245773161202999369432086433399445227220709214769936585974211119058094857235541621335422694200078183718222008896472200027994495915224553140409689024902018303548062006940090027759612103530854077437279772762225506874999168148907819372555248202720438261355652170264429705787273367518459401796767046733356275519782831902142870923020490744760167440179634186011915959776390663191368307096901459006811953393783192190188421321951070012890854216269199516494790723967587648459176391234161071616965980230366848829810138135679613931609792134717687720325317154569513780099196353055771435842739280820464222669128349122160757065030818142110502735742208159802571047683267293826540892629199388880303859992036993684814274190176207328811856999048662952822533211984176693623208176761190214955058465383171361880025824375801397826438942577248526817401715692289565913583155881776498972065028000442466539572240266921821864143044567855066685316455340757004538684253945623313621353640205677039267972188088932418777901727885261383692683191621384674894424202883040718006871793724236012941690195005976635072116473503620909053926326979995639691548143994693818636128512650584883002568490923703705403581900376469416961334925598553536916159288300791398635707717098552176267525489560806339110519579646642067620894870141960164726364361599901831194711682573157371426422518045769553607458783759159409027407758358239152649280052435399848372143085198112578195228369700100817218807782063556736351153031681309188577862813173198183679781413092472239502312889161993690282281300672358125210840190106308713001778213364817696023840717651626301341111514213279749883245041441273446927768969229330580810866296599315260836090067955453937137598847110694761139285949162735521336999076275796419207742400120665485652448540483780828768233296255000660127115042882889131645889177787582371283298619621158724744311136117385368662204293335339736845528049720565948689107166198463669138993780622395730995051932041116427009473987286145160691770033246533064632558190281519482787351551540904579139330091087228158438385323105806994854299997656334379024693579814810713731923367279939841482097026660186754135020960066789840833351919425963134262027584591344033432273991624131504727382870081931105949095038025569204108342326645133132492959468680917766189994643125126362597008264000204359136808327917383803203814447463002733500339962620287580395545113816819259956986424487554900836370578064036649362042118265398530856941855812239510561325500194382376744132493680473554151938441473055104215289905837991065643924633345031098027234340265878100503919630836724546975542183711620504860756887665745588188026202753062423336539004778278046796540243901631547993175553850911485482932203169823222673032613058464151629785972429699052003574301691906936866857243979234196487105113459819006053939198048097377047961177414866854385964639366188623154829725002024584845172163416612335005333275105867578673347082989600886839225470263969277884088099151829019890520420177999407156630224261150728590780845248080983341568481733772503072991972528851802010532470210842332682601510448912680976530649949592171204712839427293739238856455627779590254496765401942898600363165723499073409606772994802272153660724272110505236604077751142982045444772919593012036480462659037362285197376841773389470163646562492243019014625240252925687322637661383880712426817168379732238040120058053672246051319466783190511775086981749980703729475779121182492355353894185727346837303959680195326909906374818751725660552490818542096104899426460061699668299687434296300241098403881826220747809618582272053730743752592175847032541567414164424917969337536865420152382858679334346223166726896067301383420699462657698652715687483654436736589544763198914844613858267818429329117944824535451024447165180723420097130951206118310015751197390248991038439833568873558541413402992660179390172559461477527267862192482153935896509875624332197157121616416724999074463649311332617088930246216189284622268065752593306691238911727547790885101035520526864509739641565715079973982410900087064837093607588681973157808244388754236730385806613271720370415475089808568893016560420258510237704284690708783208793728342594216979558449046154265581948687858370818324104920635250443110499407440333998731230062152662165817657487504376302906854806787726777069292984505620688466790199288786135184408985739757588581331878967320219625947397232133315068161310654252854802107429886570921891951236782123140075756103834981572760637379117558339612572243109779627262890148521380383596107554542278047943462259761700146691202324674872483954958375677172884332438910262993508503827212563888754550286843565215309703911996009679955630411629734096603065898583390884453336565540892923606697722641168112547385004012397442912732757631354966034168709957343215797164665948838571522054022087993196028485573761532329490977902132062976079831218262707435363346192908846409624158864074269937252339114702803500471902503375605540629532345418128368938372052100388981483549075214606717906918463745527630263844313345028583327828901606667362684253806787631769190085397656961058966695156098469610095002461367020409024814809382400653860347188120338773503517236632512419649916135035564202976236979856084582499276539860819650489213853675681651541550443432811291122345225184750205710035887958675918776423030530762938845284805170505926714039223015540583714155936168915366722051274149901562121319323268775067838293811700235299951439002133137465785627095453601335476371856221112399138667093157932122997772539655362468566523990472213803849757771926900724027866001548667147215693297494787361117704155449908620478731636385749624150454919888432211975042291470719650146289710198455077911841556008868676571889534570916490286266683746990045200230737545255435604583961444296631737597020357737111699304966094048106076836677865970290524530330727038667246810518288443183049187377735492329440606457601856451212798606934576322601580789926193714300144826627471315041398164558071935413068374649432510444691630163824250028658946257685502916611998216400491308094771002137961071162615910653147183882304381229333180394961717079464719649239296078897243499956915539425444025168751308430959328164593424076609333709628291666922804615683454570526418989058128097546131639789185044851150766464022009943616432574732271607527339503423231285134825589454171513065962056929353479198541725926680404962615684101084727139085746673224425989216180530788123162401242805268991678138871514770436964179646334666476538632667168935063193118024406247560360892362825681964525982969612743372116570579353779830097415376352567505406601878438462738862814498282591105302940537489431007276413102337352480682202530762835921515249276100777125126975458493052221143256315978025515542457984024850101277315414446589471657382757405173500219299722548158587309170685115495809716047484242639300223619121684332397276641539264802499488180558862443454748599355834011430796334826400898709886538272587138619301168121988589662610134013034517070467402529151027459072549504165528206127634738173006546112751959381623601273847718777393501798179603791803750287365415337671900837214765416891989028224607937843988435956690993847074841278624111089169957646446280144746849447934938661886373368506826971605527110278777794493427978102982285633589873327759059256229482791118825801684958874439506542404379305308066852483171219502413502944935523822589150905799933610157556916657315138256426859370866401274632347435396601631359598423912938368193604623808485329605483538186257434560894197328372109951819684482785453323764602491109748030651534438648306230933119883094513370220282513564406593648411304784102443516589736543767145844832311043660992892123901874779932760398482302513382175748068863544538854548142055936314023509657333940399317024304993000658210150534745331722183728324038291451724656353554198590434225889001676879956986123290700690485479281167790001155423214462874002688470644935841820765986618396886787679152632240579327233020420973532557675324912850263608650997733420964160733040444839080328527923799985472991287027709814418988450835995733281586164167827154161643829003491753520751264638702573835003702402315977390372900914720837349754478217518424545670910323036266327541913734688765007449691797382242190812042342493098993700837952924869414310542975953498813699522092457453369639544407127336893533870882833494895030771283083772522160088921843843411997363139748671827606792795382673808552459107620718055273697724439599492298198428239087060114568969033324667016364310474429338169158782391599581411709461462546331545932457727698722669545792384472270775024084148177016046755455909426408554622553905686265120538678073653620734459522443396555089571650515662851768134561469747821961561362059171763322761501872556020836113908715644370832730009331873673074089933093043619616152088959723013100975621342822600879333372519823971791594447615436594547683885996704866302522696203674644770687339930776379862026507498977212624073396619008114744596361431229587568664309663814395493345380745696663389342770539220932085637996100110008386856498691751246590927953106563629989285206261174616576430733034123485522756537522998274850562369717798962793736807309520979548807059874232002755012863132872181712843791305456743695005150845365848175702124947489714791463138543931519601664646284798250583883987815177274757082576849750092513217519244441560965847261238681597529575155681364300183639763543225544080561136624699732760606250875371583769241111801689786038653832307986368138820637797164431946802628296140967269705311842290468443293655749308670465660275500755007504581392021063771594176761745713740301047052881006715340058504969489418852870032861359534166767364098064340399717008466385125554030954446254073104642755224022287651920158211673656621230220863632309868899280937660465694602574100410208574581066840297804458076467451923646579968907382066970618092226966273029698350823449346305005733594255175538034417791818479449194565478006655619524478870549860118921958279507809495166596481686885338832381004904737841146842979845377105968835740177259853994166756657786387137402577531269490791602577676659538625365015772341386959384491288056899929532861532686366687439023339740883934906002381976265604646449820269242075200750058391041968916826753761109215561914091845425407390937344414945912033067247202862668210962716191736609950295341561894092370511643038170984279268716484772077509504332984818324590168994909532032720153549729848140650916299693871238762582303315981704999222230487692929058802422253576499094061232413307236109202428491121603750011570247253809938062109911992114116036534759424824300032994906359615218162407026949067698313194233583305985176611851746292429641809841803759219084968281696644855520137454215291111774790760399756045572414144422848888118896987343258983528910713500470143144405044804753845478962107548042105336285901878904940534362384418572106299253202935835872163867565596017891660536809723981896753526298853269021319579692206212336916993163901928200440589210296029616216997183638027659157579200920822413226246917511631725299924727929647744705343542521692141716653795119396160252091447592344074598898125152261645582275328358724699479105951995273507512669106565256953149807197786477460065155226544278547278205397982281715600967009670151691024686261071247156206589698219644669105863050557237877995054662555317548858050154872553013791974219022176398931481402655446081027241954313911900891803835374253818640334910058207549912437454220495903699793400444951774529000158276407132246129850599068196696802193504803942837528221236368108420344268165916620524719478899229049629125883482988525724144418028972888396902399125875465485477265065882300768750689299016349807848996335846113755149207640239940881071558917749725056264140796738512341784735392019139000912077579690606914511431693312368103161708616769542980182872577609546350185291235495092190808469882660848951753863607722842325302938173049163936231472016740538168302393356045860800779580125200902540521021443305742034013139361033341358021186946205913080867800923563728648625098730748660652272365605173010328959788801690433708330945910381220591672454501434295359179394993973231696331759460319718479604831009073185194451873036526086203359718914221161611224176956206960894996538784859683237477577629531776150928080716274377493449827715946823387148882655832628053848896399679948259639067931643809746685964690169659838006164242599883757445953725370852256254360993262868723654492950424552852248301531334769598527690514664003234453998026318849803249907470153217300375436422839320247872689851073554280959547742759133253433283582115586472855337324851735680945529601486905295963294409298656048873569113032418653510694270393563197060290325014282201792977686745004804328346337470455703884894893419797459550354695004816233348077737494673308670441328712888046297183918413391906599415226915592593724860106158294359647497771097433379578316169060749329087154341026667957463537637052268723628693978353097186324365446842249143564430563751134365475369880508964019717386170812813754959146196422146191981222380663469667189422020400322350858331061799978590668890227158134415766732273646071928983970182444585966314489354298558303971175453828942029968039363409710073254430970281496497511615334066107558829265761735429206422345758100278836557574249629862285284120915881442137583601471138500239001234345249125003473592416246327089244668016691813928853690149100225367307021727285001170967772002126152296869158636684835121716500897298778809913544169951780359274774787417956054148851179194851739574314848911655769450848691882163710415847656130200060621516715651268517482045818048216959425961019309139425509836445551135223008281115080951926795448402582595710467305719598163099979774268278397522944893653187604056935116328723009830267933971570543305274770777203397289719452773853292289910806262361196945353337686011651576863245138908617039431981746262124613575658029904848152989187610876048088527274577739995312785825645184393596193187380194868045799898676869848415645776425069381356848491885854561235228225800537337046757652661658356862495831252521587690061921335439687452311045561555498519068022213420273405642928321458234394695959374472371659961028731466809980758923951140559614496293421660931855278264227473732784519220850746140754461136741525302578955375646240021230397253629035885102568860794680812136788736887832925780071924640321021433581651927160202264282785306433470554620630144368770983988866467161092451013915539165705480106920862382762948398602118005809588663333469890827168919317615343357852583080302935177359320465548833253959970249809004709612835095302547606280667788459294953237572796477112139516221459176624219580090520541877459146689663549143134314604495009285096987853130330187633805993106675337552032673035500266067033614519797069975238326512266946738418353800383928350863082218653478556955166675306053925145423581201825917523722440743824046992005145098260778164392951737958947189261381425670588920772862108227740851544559609682540069365656280672784894731856189497798042027121489351988170243948336965375201898887341957112575932658329746817454276685091488470242130293475204416791523073189426080405362975631612349380672181105174634825652847013894326988745529777750937022086732307947183556048479091105806837228481740388389477988290951278041862992233350044936043497266611862626603088792051753543537845105271803060107475917738871017772952678845803718105607280084921566739891646586515406537167338139434611149934583903912844591091954883643970109356382090559987665095610817309480775359589734271429405401465542226135399053378538035034684733907845044121195633009338074709184329405437863968217961776736932879188588019858896325866936867760367254887340817743705403596114285776095912209533355986750573718303796230639830876881230993830890414581613449993309559268471981984525695159885251413923914415564023818287665304073161468962090575358565781192603627900700707038143615483919179443389057154960122827816961426115078927859570991798749714815701541258429836216138299796454334112733295979593818187433257576115967114786535192650470482152380182818897440498984642976027215493112312970591818881368040872865796840433428668130855735756118522492844132237934110015622483031382784207655606987860803899459138124847293138998969295542259138121619670880128404202611232927524876478266114701308924552353778575493856166659847210154686483602947190555538783879171271253471626537069217396870719875109835188658669435230172032516332245673574199251807609008037668083177636816081190143816987110246950701370954845700395748217262460300296348096454862013532857203717472521008797072990702152947139689916923196694198811092100664721604046096110970231580705689581359796775935238313623834621119232586430017624203510349513746066070170264534986677600857691161431366523625483441387728004284506471925016726242472631253313277716524294383809751860280796799988748100157648771272842623797505563934916352618338279489484702906668958385573910532510762382956471636111973142346005237593586791710927671506277875224789331627070817322195749769560589926614307937485822671054732098944729772384266709370833542705805473611932125628679197616663413174551041010902113327328756130715818644731264357142455137041006130143594280060114928152951149242578006404405655305353351783769326453753471177163940010115824066430360654200968471849478438271472160249140711467993646616093888486013838108372677739069387633031175403529250094714458974869303001383008793822832485325094907770048409456066843297961691059039848496596818876534691967684736348379226255857776675414369541832486594701808811084928204319024961913052573314621294453453716307199487207495744270274886546259141857020916216268967733599891825518304414477759345504969610352390752270833118201043750836340436734586615755413929925392335010388998048631173331413630434327590442956126325234750875099111023047504757457820141493022224614574189436729440014384896470967669117732603799081437542641726306487881976504852122597708896657446569379281264534203068104624272268765095067567610343651704034832337366849300912578726462277377101159053317882581119970508818735882538217113726400715160230621082564294332223548218522849337981970760036774486280542673201728771165642807015350364920494742554968054392136640669330040301227961460308038884907334751274044615599846413243209132076964629168257084045030362418533006122089953343127380382502204394102490940138124514977189608076922629790169864248089233952193497366013815265593389309787742625281410273910455451217825571771508240778666962002196611577174986322042513320618192536026790878470340754359140065124976773021600059649413273987917985329884550108276117392979001399377160385651893102459055595660469425840624733389685232505322390472463710305565620334337694290625419404220678124708765231045999817269232962696810374721527500209672870605647353674038499204079910243427314780783137803577329027701636675376781246638682801320644474006341738784687973675485208997525747999424768815532653884337081004738830185165721255359355066311077654443966465619121516345332002190473092239044245324962447632972762544188830110424688352338206515217270122166825189888849973915444310751324498496478631942906330575595722157596920558597689378623569463774119902310464298216179613001716087929869659308321103706420091371815536982817186270216884600119919513513946794900005812306897815421783068065669061902703001876223717636919285911385073281843262173676630308249542733251662916138556500708117683896741028505141633316806422147425950210317852355175686559268238765889553800036942990603695053358729123329942390727308391396023865580671837790325243646419526555946227466547114648925869110877681437467817368385418200671323098155833703371311760723011519470089156569580110759092085902241718043144370456292638729290902092103720959950763200655025600872733905401549520463454998580591279196098952291001300801267339384338581965971557683490191258423331726596290928069883522284860767038762724602912345987685514965734646425729975888875885136210044506611334770212318206550883529917010230729170788410882350364930438266452858748825279052793581181398398872760735026176627702267931952135460564997756420491987719364785535976153594686872199912343610396611385867839829074136439668855617345009744006205702490119997254606460245519977935856394531701719860467587335255184664737881729418600275043843802105360084350646287876798703920860357901542013045257750190795690209166252583276952885343265683435295004061306484506863437914654629695198937978013039986087623598908479675441308123030142659839406627723775927624186123687749580506995599280355732731624610835524382761697101504163897630117985660920578885929352456520485071955573621136800344270365225817926679736936608185679631161540880880288791832608141752384765793517717434118826087777714071551742113608173398626811334613065260090154298664652998644644494098245413429982026167978236648169902104988309481415393597368112136094183840500373195472410237395615196265045146171086429336820390960844707122209346471044735561175137389492335559257998135015178845845397265979710510498498236748671230618905810311361977600301780170809737817894728150925785614414870209110977972283496135205149871319406458536284947790327662682970201684289768127657343748616384430901775245739100044002006588876384959106437548605889757431180987516301744960566065050321732647679661162550320702087975345721616447049247034354478978204491475449842533180908544597604451178657148976019646377164578288019957165616897040334912366265083173734170487348484754831901136357741601017608005658569559989850696986855545919878366239860800050876714316981816934227552051998339012097303248876763134803310609724572313461715497135554989355274730018051526319960422718514140042412395243383329577928955385183326044449496245139103267045901902598805462879976556562866992397206564191868770287222949119380745841845160328549374198989104616223696007329521085860242065769628185761469179370314095458450813990079210635278772282727019072426495964415688279571820724542377943230693717371823345664051642807377724551156620765202408003090862316146698488702553497111756459565566643743241535481634924716521095198737271175249003955921294006337159499415273370289271543161655299939579031715764852746230055634682631402232398619190799281032403488728577191987825611537440312408294801118492984654847347247121748946346040351209287826173170012854134048955740944859396463048535935846884819475465583727296857856535897673278895328284715360883677750736539830710841541499008051052046331146199085160978685639781043158826745298053422333890491617103627574889161874253678915055468639383337981727391820910330532782066573821545910582780031221339936360376328061900337733556621561009210716459497850241575314636486065888270530406216855546366052082834495266120254670789206212448088330780363950870387566045442209250748205462105425401932954520821063185423280297178470216428779675495651349113511486511109799430933571034298864208687271697770563175426084447724521173277509019268557464093977380984775025629217790327250388508975518836024739486801153367612728842005614339667772583991940103415788235014300442818314295512321394262595287852052259516715207079050975925415653864296274716270764259068237304119821851483024927461753141591864929877179187930685913950778143768891491472826910154310059616436052493477769597893305223842018419646558599184090652591715252854286234467680255569434665965918866134085137314921856111693226563068913135172993045724858831316078321752107826089041667646680084393685361916431268298305882034814002726567038515449713280806942271334870630785835096340625647718359763125770261577299544044733443842135811711040719975588032067173259799629771398367543445050432595999011864850401139082105894158841117312801984536991950800061010283683860876758746582732700798097226679795440445635830310963253864981050758483735615763121914452309111421148100271548612749569185027617326352346093883976099400172844464029841234646276335970715793158769278450082444964014083972124324719315741195095108463110168412123562143888475718435525333512717290902390864799835854631096945037242663547016284842789486188856737173961650703327842392005307929430933070946179259291894992092550929194407813184159050615073701070637295816412989588825190165791015359375176592397713510955676581067147466341425887820188856852108326279123853155337850595456299034027913333677168155585132420854070973864391297069383468167546248589517964942826062794220128138628895952013465918957153630141448296535831455327060687386182353227137638384898190369081980343778493094021265797993947889955903956856417650021464989895098932204623270123953071429819304098810299534303031603071780082974067227018196356512033202982967682392686412026859504614821253896890197153772390029353719345596524948174437313450762254824052114494397388825319635015797262200380700558717375936559231614166057742301510685360681649262218397301649122212308782458055199386776239458452846916037832871822463971677651090364171827958794456900929391237433868612131403000729200746380315627077671899633174894459378875306589751729327256133844836055121593946087918015070879569294701552418479654714797101406552374157142636630227467853955884411827270534955172146538325259019359296274042384259285932450064771082106812390139099711720102970168099109220714958782339893870877285945693510438530796253238780617156523914129702505201903094889091277427623268785142684174859426373718536466123170703518583077243933637089495020326261376572654344489722294412983759578848210469203190951457197748276382929828896478236963760910866974443771989688515357065890546978747724170227657679174319954491819675296898165578406687802504438017110856007196883257083133550393778731038961656094589571315135835804511151496553952886259562533568943149183630025799350078357090209719836007685547266005062097379600294512056115815127762374118679479241294986583921510086038165979979512854133296030166167595864534511223480735775148118299468395831205149905319618600355827957150121265926277954603077294112353407119243940911242856816435661283543126400117657469728146363820735731897327806269295379757748981751524074122962702367677366900452668466835535776029778128890968757209543104967289538081897454858824871564724342822908838445958269553782733010632507933003814424941928079617691997398077665182321530938395685294610708351114413037392812855576839253408594266073337161705253612141796509132805024553954970893618225560025363500521508910982684608966782747298887710763186307112481582966193381438239879411189608268181569775354219480414321897927037296049991438957205480040974056630449652613091211636399690999342154431517834854859526351098641225995945215747188585472284301157824945792923984865290895461615017818133411119101922384697014705064384640199401361250742827884905737079376323504844612999317572721179054266012086384111122588802166857991486554624210596706565247058488703607394001871932968271023771444260961968733579782555352123425994635550218090548445173888353120414567929403432236894717757463007861763293445674416467528116663705922541279415196579983474126423777085024618636274596889311333261804038258825576065544219924837162416404523164076372115149991933380220651423353723784735269535636196007051555514195006748521465679042782594740697842741855217215184401664063756137834626785462322763416333796618662512892387019271943499568740102820633190937665777362700743633687150977189945552689683574947286185967397182093093684229676045297473389463235745298455025267064534669017835456274833629002614269418642521453407740366442599358835640072287621440380811654782896375818699202332730320744577043240254834662413951600233929630646189175467741241941905369932529381317448180974571764096126634025964365622186517880414960087864701620211177843382435510198107458389100362622509073852093471396324742159106310591068748177482443374520998433773199687336060234779118164466856976784611180276641773690907561749123521250262151145862945996853302460738000520933081790446652646415546964944578685809383716768814765988328493931479628212017920102465655344147428127166930630802628677030712493574660868640814195615012417465036452648731536128878545731281048065922371490998979509594685227586815564587250410665182169921939232914472949225343582215417945734212253608107475545624210332475546930008992195078277706789026698621090891012367132176724538015017266086855471168024336995773210788399842136653671393693896838429052374325756296331657204500059186301616344101509443025928350724902991161752544606114875967396667963604088752424505934419851384397737585715030290087631127828682018789826211756758478857535621150111518167507340746307946729239966131582440226268582466887117741180139762604604296326593933479148735594762225023504191516000123837910134080041113110783953122138752886614965058073514309693131756118015926918419361384643959324077065380479413504828481073762307123929356131679778718581164471858068043253889349128532528834289888968734567256149702518318793642256559941108491498646383303222166956251833112150896021755464667325699876254547337454664870891959562459966558276542809513495068053281133793275634642261435408122672309368458148955254513188418581955121019781336529620172232404618572713016663820083846681082125399406993191060117940607967712960273993624321518789174791226483003724938463946191045420013669336833992533021815793091073863689469077066684384819973873291821665563365453014861763494788192159740657918621527670130330148961626237433424901166242897199865625720792953790043057937239473523628884342271622116174922505872371007527253032416081891467944471884430863633989969472373320857730447749185624181726812041745827682749575704366116079898855590389352568343083129718151843219876685766051940786400080642794354745311426062658302997575929991150909544865110661199129203955616197615893530742462091470654974851635965373354771216732370780392019111493492623692903004335933447127959790897301287405390243164005592799845949394236824763408905531749293886636394061129674578700568948005500726518445378047466291642466828489829426350479447281046915059734274923365919671488978755769288583471995004671243364751251667838353188838970981617654544375247718126029367822232883011400805589825726901886840454159871277162614850859840522537794927841434235627629535221817281057029291690207922306661120497252250364560193131514627399154240291616521842332441361797110718027573319410456462186925050464273553313788527793812822650233783066060305941156166582124913776521536870865584688318031291225914620237525792941339038199945346216205161603638646883932770717390280893523259441727017468681834394599455136747890990706221938648010144982038893015285173196813961930191956232781665515740237476128265616080776395855187597720228511808688791874895535285455250796041730461734683233042185328273380274879317202700468058487453232094169464386215765467167508350385313154281492316399791783339734353629959813697484472222379048621522154241351743898003608939894166952972468165322632794117269618801048519717824079918415878439164536568891159967263628029325296904547910828065974580494714050842502808686483189698984447669934111861484231931793838170009734156933581712151029357679530008040192696320409303422633541297169634148260585264340923438616694645971179694080684965953728385489372928710528362422928301207123493149407273665794201722085018666170528786954835787096298958870465237070370336182226555275526118204614540119248129842572101501110451983060729463097919502735610618343623696902454174317986763871229603006985056967161408811707826579876754316223060502025791142779360670302503862838072878613765634913995491069831869166251858817926439974849989275655096109108935654007442658203817654655861411102241456880975266727454293592435464271841918773598933589263360852918387835279796113578653187066056609228100726720009325772880866667057637601563891822150970333484504078748771037710365114189547278023750258952947728596862588692712095464237653338031147583956161919483175707192716356739009551530573895376459051201188809387235051266099658368653071119046782983040869787314216465922938324494609250327269662750435598529917560639366979813228713263408099424066143099827579183517620689571919550392945808219210062780548570389340427400896078123292990747133103634840957603479964828098304530242962893793865371342288145364841729656090827833243105595540538774967413502227126638189841436882247675595442010657711199468991620118624810239253752086908823793308616010555569148193988382125943533960507166802837820484518947529436091060222173897001211377728772807362165680876427053692111082858854763344103193519069268413822300097534312652199550241568287992019774656448623212410507759860298705410040510235896988230827992263605633647316509332160850879924320048232392527335254020622815439822996464583512068663789612262582181991972880826854179445727623871611826677126341145169337880111304106533889853030888361465961334817897089652200380282914289509535394717779648333577331719246185446886193225163294559768327978836481403111422547898516724850110216571380780041244263244202238135830979594470796625553232010962971508271600858073261193434626712300902049485824936589399397118028881404029120451980018117072525234865368798870305631331427741202885504305142558942984111483436747228488222543660032029447822483057753878734691360464527575878750631057028818535834490044231644981991239176129496457047016674206430298356590829499849157113663837672503513461552935810071764803062433613324707592401859815987234248744421431436640496720170089532884575098652507956277144405276935926617049428122456518084480134991034437365003520962316648429139476949650379883359888018398160519755554241173070715072435955724201370917285631887554571656106817864032872992955242554108220732027815133170845268874191855285649753451088728456443261048023446327924383424484189815131180813465577611407288071284596539499701459636233479888621720209701099591823139548328864284340999221659767729896558607426890887929662885309204539843286200072703602469881291084594182159084541504012698915340661193860364879750449952341996697567219123162414092975692558659840137019102464452361578429507151841590743634721370513539093495556482041844289278933596448936151291930652759427814868481854002031378109755367072255078161992855734181910853558776027593195804252101738116920561257398832441494110834829240011838301157415852532786943622787213337006180680752250645623605479799598368612686975922124055408883427470667572879457445303112989886422817602859972005369743053171795290337254755781244126636339779724528434505184345612662571506061611989534953879364589449438737735645686751352237401544367375843325706733609004097804040554297985466861645987857285229780463407885742496001148242911655117703092370994851869795272534633598482318387810354959189285038888353038162410530452715067640151826664670655942590955268650837197564094308584389567102727147302551847838989102952287641340977026716375435452327424203388640291789207952812540298822901363151690765869986455754467267926674941958179056581690828511079147710602437421432737431223780811493845058160413467329618802460908779681948687702680061032850914378699132083407290585011615307909470271320190243373348674279017997221823909717907644476477874070353764842258543120797981392279046616188765792824432986174628131434237130070261172355983767575583195040451340702581990696325650452942501272988211988449422615696771179542381582240258414547661988777459700086694603430495789969415883050067365772568946685947613373745980822608498380268354240821827083530018938202775542305636911615919303288826672165531990677250857949916540051214080492073259441826695113641595692695062976860431547114277233902499491097639071751691832730143442247513241428120355513651944200557739929552876656285576487275446276227358758393305861689887717952148092468336390242711707983926369987497282409499795129129449243670413628505209233121134335016429732573211289840117887724815957404032646251610989561118529556957741193453262924054331083766773413650085603263139596864830602813474218723825915290129058025522269259647773421117970618588800376070567306812269214957692748511688596034685811764324100821482620532660904644927002642324594962729587691999808407190801752354606248545062827959415790190630788687617235982066940025428546131230558628402526354521104325611473848699081364480898559930507645591801008851580614324470357605554944853572741680260807785768023454085596259490670594232387307887298300617002176304277400376404462634960899057390863543149492171613607715318182047315953364615851494384818981173457899105343988260642398228130330575497087352669753298564789527808153307948883161295333484680622436056670609947473787225403849959655741176598333783688191712797953011127681177607934007200897401222092463184237969114018267725102328747228186155871138090814404992470864226009644878291274467464853076888936907639221278998694503481191576062731877563733115095465678995857880952324958795024833772844015103497917744598455271289715257992971014385517397190969860786040734139229247936681304040173270263627435989913696774724813164584605045042343897094249275487990336865181911266403543364194121758929725134336745608839742268400894077075917453872678502553914641760405058746252598999103540745963736791504893264123194124763138374310173314861606115426074293575737078283844276586678667606008986426645686751146726642907607582724285560823588674551136326722564409851086127115450997923372843588104364542655082062346796855249504714090732502055453737775477983845932199132826432732009909140284726698826719636525101975238524751234669728323100456080026440726685981514339721447648416638076610397369522931833371410542493817189305548411653442221971346428081739664495743972253090907984082941960530570280877684896185913843176102826355163497405113351875620864238464968278240221430495867004489650616716193404081247244972483226492194241641097247899989404427209568458455031954257379820829723175482912713716589683163011614987890083254803133668168468223931098247963584824480425744949692843930022459201722867395613232866664850767867963490054025090872708463579553588999644368727285393156375618156359790007524975797124932769834325806038761415029047439791463405024453751590731031462299685466053705262369672548808226229270124904388090154256188865149687327024891623974116444722038839656231098452484774042713209189552750712715227895961403162206384685603453887159762698929170604920256913945351579645816631731249722451625401666424127182765205203894916526856466897619108171556675197796367496349745280234907230616611218271996879459241428496007820258808389152312212821967192778449255104843669767155777893560406846558576217303733165655436976576442376715443735848327349294873739004626915719514857884907616131331541916514927822270062872575729654670219927154315406614280263332922198308505847655919080612102576686916119383243698444114194355127549444047590267806457693185072515442769263490341632005287183405103722710468607431839179901012776764544419516754023666966681001446529585269311735496995024189184025040890232867644557498931433302675934745775935943391920142890617918103795220506928889163843103871097250624873532689269748329467991474439043940164363902973280735682927210932901022393554871432191173000213017096807850145664997637765416377105534579762368871797990965777988333829942369469850668068871931337945081268319081065204923002201463572408181022285069704105810664715679254530639489664835950277761557494479790216378857979993595894508094446259200728808152049860193804774441584346666175165172009789482961719403141360400974816564831244132520149099733656301414229841935042375787579734258878050627384603282926364722084695034903945124598842443838489697666754339023117109281452265981823849773798126817841828463571393143291939125869298639563971038843473287371752569697275606987273312452857817809650374619292872558563911978519011674168278907900958813791108692340258413084297991665493942131417685448326632500043206444716341830151649553060909774262032517493684514797644388986156014075147313075085200862007658631795623971931819610492934633302773331310035531774685702406407446568115678332113609616438664260148832042565311435469690496251616952784747354913634543883553199581174540280620310221422978120970383495840152931038928370174259751797667643649383425080003462107109092009682628200024066042175996148299651349377349945612172625747812480320253481165783630035809844538218381676335344007489287579361618148881126097184570616627672935242766455387217317002628024260731978724160404917907052771303363584280613824055839924455058024455080234100815655821279383909018163791119395312978001151484409497614547040969963394486472690108049973933524779926501161632391314866194456366766144173528514404473543441641323136951917520280186601873180420205769781077944122954411615614375770704160679244505540295246785961783626137711390784218495270990088392989474018403061286944937017931607570627739850462719248876949742049670960360401372629987116507312201804298568431308412182127115149398169836956786596733360491974480368293508370478113892861244350837946241238659866714208442899048454459544167933192275545760949690242093273012965919112474288629782228972589970704031511976981197621507465824231241787122752542533118777381548817174438897464612742830864546620842144697265991584288909393766564017093554650124927973579940907261664358051151657298793908840610646310791785611211299261256415054724533633697598488746913229803209301635469156838440196380104930018693371904091540713600752746750796539170539849251645077793273584552019288845569504845245282243271642246149529894366640707882270744030496539280584672101241095113327497234211263203266617477406722027649664738451150729103708129131572048076030427828499864942606968313289235885983828387557324396548724587442461791462087933779015550186883335081961338909455681728299072294895312121198969209755155105516620845770582121211100960581252906906998329694640513006362870096636702334022548617653101189710858366419617158352057168153601832052091124142434164741985264676956714973407560410047186217553972402241726905064312281082950334897274885019811861369056306583377483815476054208607594415746565188070207692942425560847734442545538794541468355875053564517649845965406941528899580135605050402985594100153323017311729253205547341651833067347473159465578049225174143704458198743743590326502224519163109514068871909758674843776883482738756137209866293074786750206339994285410894413122158871788634891152022590492670092831174698168869512800804571289392471246452463025454192581293994594447828239597238696792167577792877161969448266452847760795928891554624579388736819479149821108095859348944466862188589600412564045538986325958833366124640797684624219987130459431794461064744556637193316360590862712991438264025446864647560401961759801263396821584603047116843932587621332078804185552334632899199749090840890634879834449035777359084475011598026027886041341072486971777327963234757505745090649067794970508160765704207139665953651854773410645705517654059554573700753555448528786570272402622097844757867115686503657938323844623489589329604095232703493010143957647089595547902398468171152708301855314551932817857601512881960328898747696165797362203496087061999456343942310221234966565350643793001954215150425559621126414349545083162445607309505331428820429829239920922200203923071830444480512219338928343120232949090795453577044692774514135554812585867813498249394603277637399687913342947205162361875809799092170078418681912106779968453890467666492390654812058845437634506378659504446169724481202461084841717801209900450605858782740582644371101516825878160797240227435815117457876373250873008127094384225902458552030378448926508860933391126369500751086107292251563899410604468782081278584653691719924229496040029633418509752840218804952241067134020920128584111754954839330881034631018761686175347251629006857197236266106113875133374579329658549109094152079026571082096039052890527248092154251643114556404340779713992209872052418654413083756668235952964401613608778630626007902328157279472438917332945054983832415268661990391960253304651654187556984036636283604070167341617731559645350469376978246555711738268259782081930023381326614094713247868945666508024241483290583681488006755433591195891801239475700125889862039231740053457063445656228931198476592814685618306272947699316887300130223441961753280282967521741224584407774424353736240650258985875651740947425471898720798230198758214668688184860781553755085524475342435918116324489266333160926684685994657521234172003167933656205785966877798838129959039684090009680359485311388231817650442053580046568470289079073948783619027910800902815640901944399675015831008461914380499453122975108877842467289942612496860181287915651966268229445774295801778975803991031147415528142160271825894265896022640121632046987727137358655724083050344585886257816228521074129138064981838469446085671864954184400845280951356562570284175806239040624602957091234583517191848542859589624449152832541999757704276013115676063437505877462762947796414707305609752994478920324941743448538377639678550356905992467436037386114214516625662092760417863634006533773355945319378377611522499484842497441802455058527790546102653731250399217697407984448868314020530222021411843642435555270760970022442316270745311769707411712059593941278953929425033593109624032540068998671824154093754420218162886853659416627056475802552519086765340639409098510766092460428831486683170307321074946240977940535391326075825472640271886302382263025635366722034805323441934369103241362495307013085049540877322622391034194325669081708916652121453594938164682191119560058416540826899619518754535436245439059479181668273489614495830310729074204800429231012824767754785551082657454988339927095709784367724985768613927086356206982787367951939161532047022643074195899942689875918080079974688557463735462729398653884293405486002838718937174257881563769935282934624177330337235279710112117067002972534564282517864775759952679141836488038581966536900308368454573259294585673196873044329523560138852286164504800714742306863258245154040403262502917189955243111986789355528471019153267817099020179823034080700631089031634666580270369123074586697173138814958447255188876494089601595532106330969923326228365471625933140522487558710994951926580103684632933479014649068109133570844763055879405929516307834251591959673664905753754211616647506561910588287994527011300663515722006759768152057097383811043296326823938411083654977677502631272978159324387956747493967755016030716024688705353172892350664079719606988002961229230298363051695121845743273176901791502193986149259756976559605254080068017562346212797415047757761914914468168897733146049299895032669276446899146391019440659961603062208279191771640864129712148093137588013456518300315687243869985184089652145451218589160920186916564869168541002360104045799652683085964499825140986380113866799228561062378631094388436014758805944464708713322480132399615759741319471292327665590085675163991721990480958477562900480458312844864868995247716772953297305877876528900743393795697325225640718203434488618943966879234982548628644397969475688958484683003946710628137196197493628961389509650248647514259502518615283054894674617782695170242330580715425463347034790754010364698866790611942305367289349401693422270286310261956272899092801614299933516063693317344380267800122058748030270097928162398770249039757626740718476409639905185475911627385171307713228962873027261791911528818861561120176921094689363921893292579424584589703389679730636336222811545035025034664570828974067778869017842787231323442183087430934517382348830036763037489597252408581455516044831631094576724609242659157248770916488442258715156486831406175967084079452015445195670554683075629501813326733992766776072021500694816838815043153528154056888922419676345836003248279911337595805064328434336362239773343751992617159662408312682168232877262069376058547587126114319246848167097404318099421539068278989931239923583346916173509943895506152716383009804839769949940441449892759704721799359738428610455570015686025019662211503553883473489568172724279836562211829154509438758637870500316452293497285058303656210677431109783768493099463906422689342226763441585270487691443779508391398111141678168967089750098195921355363827280129532360670240764750351553354911361797606498573398501051816278868092679931040102299823281335849072817751898568728617195983172642536749374430151050472888049820150901354329863159836231566740990948987024886793349879249286023849714511500459429864573933597349298711144615873885278524170160089676494258498978196190553976914128427692573752976728495664418263620693580425572912532271364738088555941671248545906062445148996725502487728415151829249296311849872004167712826494026492594693535449229171322887993573036812760136814881010941718789319304503547491208858710060092214177662569501335198936656483958013684472991511912868392636571114635621350972061043500282696339728371345836310911801049376025497558537040754586671228476784303967724739277069071256919468466849472440157015313238185239323976146565549763710202477334384377531818836228328626854731185241442656616025750021195759260200787127911875084737468039501452088347364579683077657895736682816128505456755087005805142160106629448846510654726596228857035436315479519653002682049828506263180122403634124402362473468256162638787717988186348464428564321258553743857287314703898056529646720846655413088190572268796333230423694114804374551759198622789316293249115579933131108461056830939977300861638377392197524860281383569393299697355561730788465075159724361501654138028190886838108750849376999270286062629629521074633203537338220882983476112369407899900282304372330088229889487380783526983078173666185247910954096469485053873731242794123276717361743728511617862705599376085141996612951616333454630425833866320162311642313275780169500348406994548233611938010441997643747484030672997074981785979631182677352112934532375071521738710125389295267313830657728272513573192925229286926095154690655440294511897011080352040203498877920066449686565452285028239844653816473008062772606330747378772944697301176343788148147702998398616040347877793599713582163410330191703218711391023055543638964834733202903918583933280332413664261877030135810698061393187059879456639377864119504461740801615758682853327899705004740611908122570297209067573070948993711879617633640878910577710699952099381824906294586981657600823735634241978825904669390492896754169973450251595011075948494370814734465935134842901474377612336827420146962269560204829890527593284815658423147282395700986478651438275904414802624369169047938263302042961606942293246857360304383316776557032362231078673673419633164630381048396311696951751641746507224851140239604632531100932409194238842069279048010059580968095091151661504889817194027243623419701096500723155567257310600084831462136965990333238003680939939195891791392303249692439141398240779200277043159789044910939191405392073254880888793016120865971173503247395862304609648090264503844740354535714243182646472864757531703899004337706853655302048745461219323803764065596043207390292925331892185120634769249214042357476109222193500966705736130734545048759589000357691126560186497958258224195150377509940974278212218710427630171040357308035747366999237253554396941316933909974661532782861605732167958338070720350631458354117986834999327390289968689011040553382277068020726553579019557788541348953092857293337338180038142480787718791185230701516485900669546344829648410115031946626222618052633650064447871774696553102587904056634904467758149142743793954761634609098075425960284242263197632998252907318613031111173515192975794488164289699755925327594193343606538568996441812939489274088491710621773124528815832062699250149428883151385335645994488275090174048771011047246559966134569188694082657632597369126256831827986756376739073749354734527097915904884462919906525714396814857170917301540131859426278313183376125758391261330014936733061204713869643375795838659608172357391441478240541564188149038845380434688263570937880970744185466711662771387287502465080382572372200350826014582426090566514684765598768219516911453196563890139379860580497669036701376763104290362359024103257910733480303963804085635389266798789221254911367219982642904161742562871356206741597359698836347308726473632881595185390937928411537714325531837926822195569996007200178763177208023260047292671004901381682225191766135160005717632586140231774704958669832750399172219719337528516759030577391836467858643445507802912404290943775450617994482617430729174719371453707519653368335906833655789810184686682391829893758005484062231090970920820426703788594858761881922390219008137273846467342426317448783999938547217690070914455798900215005330490552237322701230516594095915540003468748777503157231980306349787956058004066302222596182646968793901230345957733877879122652563504014312609491836302276119748897597427681481149756336995267561552985640815962672284602024089117278455407082806880278196862115616583909720289578587016633435164953286494901072817678327741996160051852981600807809797571430052756683582437335815690097559371240225447046871624623590094584750361983938791451141119998840013334725694204568047369811554517525106203865991908954126257253710330487398823375618336976788730304818760424181034014246290568603173073572437497117514647808217631269985923007029010952311768257668267343056041107966376952222545497752858694582396667123286279117597153333608954762591604908048349743084924243309741898291276848432785609653698313693705732085501040260595124284346864303305233323395965339763797149827710865867786783957243828233376913049731466339504260839310967385700838250019710663850516522379429114812949112393008164727720786978992459215005103306264558200726318607366457560245027124218502252028753028800516038152197533581649260654059627955401377545433815275987319851028896244093490852693328018410151462963223332881819571492304962186775632085617022276233544024084462517393984885791135722629240928214910737052640290147899977782114501760719959808049072453733137479280637246152215679225705914011081744142361582745401299744866326717411309140560717060384424976035214015346007415371343608382525468911760204694948046400115836824724129188541602347540641213402396792604303834950018835305191040238952664718202578304697826797730971612383819632623648190812850818862612242517235312836691732741647233164373332456326323953387816242090002790450455417892618802225498267121300538082261108880919962070630175712014552017749126995446158721299775072407292462177870684283593496866736046444934136340569338440349448146512471225829219017181487621016127239353094090988716892728642444569299186473780665152784599917143223529529981082197153808985798968470495801050722800784460881533532755547393686547415073187069158120166717438727542562779221192194045554669359957891592086743662706849439974083451449718984883155451198560089226987889478598657531860751630623394151895609897990552356291776976628536081287950867906916046075857095920733246023231465185586622974508243080937492037010398758566682754760952572624370616550238442300891472244880050687138084046864206924503879375552372780980940854051807306697200996992249494391168285580718518603181228200247307420528735102626846098865014379146539005506680045169813846895448382990686114216822065976610471792816716205251262850218504475008737641970746824060924121209519205939962493072475631437179862847877032087562401866320269295081122269090096808066545362200585744333888850991711606221670207540445113968116056180661089761965814128284991819558814399379076511147451313819260468010880820018788644636852432353611138505210468145879104564302961433705962155840212095690573522084728739997235128697811392753322215957751321999045685399298608797223922798650750746758020330847698571895665279447425601600524242835216519092201603880753858315996523257474675100212716585702650316443260911723925831363856814427403834608031418962949719046550798293865721858487706212926583341097054175192799033389765003379878498959638287441443139075141670073234350282294349607639479399602767217298767036176390659767691356928722627508361835853353108809334010107002306152054978100937493267525646445653347043368383537787314194576112640416417506004375973396735269975339663168021705944662900848698603928251727879078736864004345308907372723626206357462342645905984083125524734150006231579801280254301824842866159840385323830348341382590003836825026427120209947737051981657359323285649963813561381874877646753645241924805346565675505919358961661854845147268034368774863827385267346103435658227199840401307773075331228272501129489237891764555094657893708582645128945857666143799341999569816104130080087453837408983128924387626356866238374389390043923496289234263003566126719761122239832854143878572994158105761368685687416659123316384160225089029604156414911744889159491345056285190106180515269994106879502124355099167821362915968927565229364880913525913725188801926887856093200012865103566651637506092936412010301541305258988956272573419255548687270504207554746925673734089973831734190060794260123448178351681451997680437017726417746840198763435098373703931394890054845667066346263989233116280825984719097604285661060677254472301778829008601119410757734525033254604306474689654565140266310530815845915034775922054836126963965746180843237462770832024271774876174868780056631971419210021614290260988505727262738333717920009347177456853852438597164415187174044698960518239514716180066557289246082199424368587295277367087454250553509325111064582901401089671857711248412656102054109969957686038981943090553120873023341609281480675631598392670501353195084411025134431686228733383914561850086153534649199101089588488802350345735740017090759503106150537148483332065143288447020396574832242132732963964390388990050692231686266491867696869836238975747189663305885096559879768820149594317893693280327048487971951843973018461138306705346469004283088413075136747826143568428247987484390943747622946296791642339572342342332639459239806106988688455071374054786123176702416265429982865740423646922712064805394416589376629900534050538122949682806514553960693615449570988967272585146218801005237486520566621155635623925619376401481878581665510692387104835252153081872041976374610871236870180956278510795865757461134033386814306928687730197810952888010056010566383198218532424181262904962845817507595563438652284803177203226653936380785069013635992490580137365142419732844578550346947151157074111372063321851667455129134185781469392455633238476178735512568288227122726361033200589801528942968051106359911113331275776940599394842265632226970888154691673380634198641768814889185957493816088109584475497060623901861653506383446879450982457326108071098078807242833960279662541141369390992393579549854612659805666297631699143043981903806288985467756420534697911564973862012195044715004529318745402429350064627145215826950510752313591473232468953334087774718680567927880080497767054089542160238992440790382736767521553136220916160113122282792589534774050115612923083097299153997265681639072934992686458441631423489515355482446423586687383946096927745133005544845807267750942028284612400669711842460705118218286382529192146726250646019077953720276036444050336884994360148866693144177985456824009771993698685342529958999973738610583404050112268233648733907277791362260303822449033980809713323695798257300675236583321780397307477097246995598762649237043478193233879003733126613082205771932142327239902591599198826212090721311270426538128006461432780759166787598558768821908718417070301796186089842235991352969226336319469070972215617257483341178836352523402095427657378248700685453535692580367857217868006503504868528409941991804851494948820456951544885024595103865300157337171955071940341727544738977834351170494473464623958920955686824648756392557779626640528301587074679138995238860161233092587469013182035018648737816787897692153902275433416269219348189920882757401211526969921417571259018534559595260199406525384337974072891810916989321168193476952526979945640581376058849364446327292069056353666282929148969466429398344866421852699130475572232683348870558983839223358216014319917228289057405694849193465065434657494145357625586978095244842559658191917710203574007045096255834610196124200246376202392813543704812484496784339355125726550787394165903157900210974523010864018571529520170963148356310682730115072888803104840236321652002598810319791635655116663068893693185371508906347545824164217951255821753758108662792502276821921443465237921063723520203426978243299200036832197718408872222641516964793250204994905928554377104779732804659662510236566595394022363601038138993632043384315180284999573993077626611718610193338164337939747225324402712932382488581497142328788790281195343829231596463804781153839129083407048040166949304106320330502033795107717737984465963190554406670860442671555390268226852306698351182928778207599703264256957447288125346858635978672104758358872352480064022486277375289667502030369803970106846385469559534255837032456234322756864109574248361604848081173682015108019576958265972650327354639911998913837043996552691938753132395623784792055673479329529413010690266442774136974859218195866057673226819404262557056696800294641708520616292859131464438151706283746987440439809895870143646174114429388967915206611105004665937189490852403462387622215737259125078096090461522024996485876938251339961720117456482258509133389161762950635808275362336255590954399787955625547425689191057643326870832642597609728168005785619545428779548759375290194698996642611850728643236942615367477031990493113280141588501815860417666276289145309731362911354079988597077188103972039983634276692310389178033204161212730183746886271809741142735782251460348085796577410323174915148364231951132529098117927904641950393037579424470382634493840873548148169640120188664141853333064607766860602285949815992783992388475555993058933159107854099896706108892829855279128558501203039259068053979694246309126229061347561054397407917494526058212622109242276670102765238719293245946644582299082258785975081255279400621008694280981226106761608101524331988733157996526778884748213330078152357406698114829734217077196896999897172526072601522529390277955829291913925559942844511049768379164062714446882539295309017515430972222799063674348384491835853909267242717902169956916135142794833055468001196363788398659501142197093827717966225573653213276614012834751433304964089465605513926038498497317084454896773464596569402964823482792508767391082526239554424591223975917564229703739268981563155027483964550189485107426827550210462684129775401966546598019244170252311181494514152042583893018204433387713682354296368344191687018869159772762639871868419811006457070176153841117696428682421344631598957925836065489331196889361246651624854236503757023273855800123726712008932477730603114156083875076295969118070827513439100563204449645092679002079512471436804129910486418577177203674742909067869142640680475734464970300231257839462002302171946406631220745058661866655595985264264192854714879341773979329635061306769436249747640194420554204802310865212995373605007572405108996906665576208772444261051700747338798469460764959636878524775020025164438902228788725608943930427122225883122533074356527081643097558400775678108514259311082759422425486570959691245859856950093097486732007823430588103485388555239709758647235921375958990046757885085463747650766275782561064127251892190152136849581396215313202362410043491179385049610148931029502867868725000249001444037142801127455177704933448121842542156422059801346277515030724136993647773451458494818626432012234902279371437737398703276610757334161104151099920459962488558899364003387370332930266985202095894983844411348208013848290993205648799911098232520881548295092845578115022692544829150980902887645982906231385388771504665302430682937014129404431713668043036043625398225130398413735062790755725605748059550234268806029076870174488082956672911449061139053579279975224699967753644813897355851840648298449675613680620106606994841332856134346663011608587585906409002410708275243661005034408732081583680284158619852734067348314310244632026717625200452697058911539110744075971707689099024524153332094375493398630312000396331176236162728041790913540816079345718977321565783662577812211456928192430148941825287330900352834489888481508877412086320191318201214795108425992160162268774056102547243236137538907156743472662539345240324445318135147184333235469894357729786474518755410484126379630313586556562127130825169872289244942921652086880872118782786835053290872045715057968712254100299503080606872164508216002415952163648377341646046814677076779884982296149299709251305797111591518207977459434359449752298784562960837275974022829587047751617291315312181521463870400704767065831803267560577229011435848529927481594990556320662972366564631976101847352085218076965850803442282759785718773044992387351642691992371755351070443577297656618110362134591238928373710963867868687050262099295557654304223803456357139846334063175123269425348910896264258792231680088734262118649384813949890274975188611944066602814188817533347585371436407346053795352788191147247873933142405614757199637905572123549689846996295600856201149425636876381214593447151266061243310480152203619690466120582208801408817594983120102856225637949291310884049176199664015571191188392813194417234573857947430586381858734005725335257862481187132052698558044664733086753994303915332046753449892897603079890511209900343613371772448045257907039706516150600426425980687877903244918864355903932079162429886342599852451972496726007165478200655386656668797019379237769871645387240880354621691754206623106860894925675223310487716677386906614657360925727127752002367749906492650925265353205761189445765361344037373786633780695572319796453302188798441275651796644300215160077620575548644316796643436088391531155486984994884391125858384275887959931062946005264406236041326891413674307871190308216354157657668432289324921743756953559394416123013723102977106292544292493103966868757157187057800785288019715580688732608007086696161091630265888837257844135399514341689460977022540937025053102490556778087882044168779450146106221563661169964815307462560422602190079552849363032942467703907443022710735330767068711370791357839764578262003306489116587958531256075979961571315376733152235139333388733462038269491076876425376154002369251044443873796488137057219288151488444116103993453380455491067550661956339490764107194758535213952522807764020563776139391109233536624634362730368573816279627831573833599003279512474173601622900523480652359769436618983922178820560133137635474353994698430104968431671688984837745731957175172837811241561216012380061282000938932221142824771626286549549610047618796808907280880184018031369630273981237252826059189923890364167172757050535211167321351697915358176207110882882285488165788517358491921208775374440007946401377768594091442943647442492294041093555786664365119283233513603570776662513491202741060139435600515706253605145599992752360805726023209061558906123092438539554454511558790526521540212220068413832606307826570791598641399164047971741402401012595795305474979662884832459307425480615391538791840842367349014598959906425322706442159740712163851617148659811635186290226537485632764992508564427750886543630588649231297869491236415312907251832317768228221383987955821383679138770539175499025976946317754016243250060260081489807879016463092154864669019710751679611262299763730267379595191738068505537353171995225555201931106682130754357790383862073554307502096815004734048412536496228878521177056234706112720168851372262893380175926983651624511154956391916489992679155350742717584097372780399701833748217238531382371428220117785499994570362828571967900368263968347143755372095617584940588185977068049794956960030481351712514539351863835291085027590642534880722403616712398342825800090113214390933697702035606686204246351201418663434007080944753926213647875078594527778351950203592163603002196865237376010056814671262010002692074238953219941010874191821688020869804912655262704666820698663359534599453949462133265336149923673399983135171836328942979109507239246501162762346968045373698696893421610485755583085637046806282065534532199903602399285433481436718237951991854476383790654518332211707515016153403162227637531721790631965803808316143038158084593548649825257732185294235965938952589194337267083837107308679207396361959221410332833301641310305541270943644504696307312985417447988665417108860950630503164233372496434593056926425270989139339639841322758951595844192590436492218522105084355912545485310129540865896476450386645769036272124248680671369639317656636793720589910208866667336988344722555903012883838159195398015350188620430053674442214551338194747746191922903795188792605545616543530046379223899856716752327032312499776099739951582737203979854234902438209334101620878707349612355666617396819305451613402349810617122116028525225733874882486639737659218894908212776714994044932111412445116125641338696617333488606432108470062006707862155076135224939169845413456641509043908536759570680802781085328693335517507854514961013766270029607650356083083554109154104248075310569632240391106862487317537893943448842243600802372146368568398959673516676012970817846400516229167338245488607867698221625371018262687126861034877223370149305727037410206152949146362787711147433390189443694377848323017649759250553915735404926636660120482793243764793386280258534902192078219308685860768384282355075272390158626165264659933223813446705633161492176462368596619903100319300970835813122442756242682836991231983278289422232811562318865135123792265525547413793758009096219187944536549047029815887275251281554764090314389781618889857147656925802274912597754940582469605282046920288992955724585967047584362833610648122887436254259685317536669189325305675105392405991495151615417133985658688973734823670107618001127067246110274596682751874812723654549791108143420993580809358448746927408572696129728796245034287085430129868214692041932668849801935013510564086320198369326939742317834828372162557450002402747764938821482847530141988113848347914166836539128792225704443660773954161408286970888924843344134656184524901071834460096748469280828985136426913650322491369986568487800630594782789240078237184043853730021027365485849671719620588640157930994152128941050763043661535195724787212436198446683806055640591603932431354237011236834781818294810542117334697750951725177701825097874699407445690750612387544103204789958250473114308233415837047856805409983005757183789287728112621843124106873029223842530693671392371141471972585348960072475662075853796613292891496528173936903961101373964335672700351560985012552694945331007066845445864862672633841634369928601850732525677237659619258714208931329012278337722541920600933363864216707712877603979213986225474594276336648682393030258158623209523950382413685650272013860084677225615273115703772565834025573212677720819977154737858882949873967351071881012726494095674342072897933269582095979307331750339349104616907717790046157858538381274520723311230041048549815308713207263913027889309349330944389316407611236521722536147117606825030630097247223570381608972322523531507862405440620376391437704016065196456400337518207708805561346157180747062573766709166612284774673920566185811790941143433495223579450029604921563535894642495923874343356462140357746114370824083531672396365410199868590047714091093935247788275426199551272109964669588746876102049789949141737691279279217785157728321894751181445087823250662708809708714125143187101501805358430564866299457666273531537830059277199076465865201771467062466991051155250554773430490123623819652959872710165588443529032985104893872855815019166320163147664566796477285735403583145164775463349386541557753765694877484450147325079021445157068713218850803250720463131117189667331717852174704926269325205549810811098089080418694566669783591277851472245873501227093398349969382916465631303511049975341007787195026061177496014323897470653078986041895646016957389320377175162179385764262506014179415139768500335497973759370972358488695756438615766191986433648715754356460435288924980250845306493686843074184900957187341789163917210084075870430203305036528800276980243442356385781035919246208834964739337208135409288639075273239813488003515363013296528994265916647149762783880569166516656000623439518646154448670740591500671036565898254269927067769963322217237255986561040498606867509118783374059116444332855755442812896309460015514002986963942274356807538322117195385475983988195200048874198989382921466032902039740528183727939804043430947298464110840865874712819120923159569155194058484714012666129498571670947960237402666581666093035225649863035174856265912197740278143238461998898156597141152626296455170638689397694481302196933774430094765653805842054301248619696228264836345937148599641456189865033252800790907685207122635692326753631549749186260506936804329756902756460956533869566920951946356075456860673964964167171518685099791266510793924484367774557717483093975596087859659459370995342132431778485208382924173013592816348974080451401332950807967857444213119970487972800054401680628094402264569755562216665647867143057928488790607992080436086466136030800648171184273050364715015114766738864146214727124799339284384798784496723239436429374177451706920924775047160683636235961734667789590185039121424142901505404299329986594120201479432126666190362384687986063004460813980882644176834150560434766418018014064734703812746543561495676564623096693624807400264384135307870875049101306147640263798888579110762409645795926769413399414795002828679293852435569712446277892750842388216304654937826882542909268001901175148482230041946247783050680157518239109840709114623698954758953427516078574177165743900833335781375127594859258312308985261993354576813103513147062586234524456032807009511743779200906144118695485350853688822426413158395276867180854501319298073753397811625606140097360391967490823366486987498100595767362487067213108237328905664292791742752762208654691677689984607801644365729567834356157634036499900448478336136491055568729641625333117621495779907416695939334145254738994330130906362985374092327601971984908009912918392113479820845978407808284524276613703230833682580879007977160774476334356260468294543527953238480394964405963680898612939146908919272713735378069311017262359655046687434694433189621606757785952713778219205262913761921870335896564769059259163823887669366726567574188513601948687337895806064534930211849174407123758944940322591268730270415932562165579051058285335975837229375768085939951947278696339393563142840160819936046917200215096182826063369585783072105650210429645603526655488369252687250842523334970147069044933815899632325146018020118026906033758082211409356791059995567119095229443717773596981413498312155303452875285224616144185996223760211037377213502008384492720419466263651596510444924716770762811961739931915637164526718970548651136793921530326806900060253417318978228942446224762722364068716616385956694573817768358615251583482526625598073624044814784798573654070178210425298353029279047003689766711528430472570586617806279167053195315641722331955887644920581927820221230793354814488211045196356267045670987747856605124918076719311610936033857760157037887658595101904184448651929778682434782834955067774633024859509116513836034764861675581920661350482349610687141260186747090829549686718204320937904940234018319826791585484594420174450566923086891400233070799228654082329600399997808286838662019198696619348042992185306742644684970459887036792158637634762958198293674226758922753893082843812171384329830361141743411680031499747901422211808532058285622970888437084229959673065363929152251115730082769098187250063136280945401040773599703265181487243436782314907028173391609011133402455284735319054682902555194155855323415384902173370122942499274212875612205112632010531920195471346672149923557230440268939127905959808205484378212654041894830823378620647562127911873662323238174133155569090893564363152267630891700528492079317359256452150782393015509298861602537225423025023043853013270188976214056639951442840465986124649243702493403295538111043078783742278327021347747451197047742997889588484848994512140272409893449969343567666450613255524944995801382315960678024491251603038506019216483507708993209123483231699869399746888910023313848573753009836153314997110342400282087425651129481584898421660069949562560443861436979058742052840209982215978112422472423555932166299390860620911837210761676923670448661308965694726781705698267375482945690208238229670311604268306595649433632219958749685882263412660705535800329314796547607122114982575506932120805593311228654366893374378983843736848200395863968337343298909624019274428761029055675190944337484236449411344962161495871112734054732069192046168371418307554401059559484243679306921805700196617876243570063531711512150064310330102175988732571653492265809959071523823965368874913706683914071730964556991213569263228158401898646768687887482008845451991647022847716917477503124074152446303183989314619604301987020102410497352270566725802178566984316167574738486494770885868597828155765590736642436442825475120376671503572437000613714409474302111774252970692953164299368359958468667971269510966210281579500933059613361986663979187685594223119807706569435315038560167967010235978186585084932268073036528395921072489401298268190588058923762622813312664108468249639440550495029170757190666956798322101671569055558781556264038086267019814507864474614157415208806231376740234669336903359284420846293037990424209869670946495335941774124928238197311267103724213504757749364979290439449599879660206876176582914524851346244247768147062694481065417883944022901307229192262203206161473140027881527210919197554827801477932641169442607917535752935857397042541866831160083296966734568131290041232760171426459499231186798175209442602477311572538176600449512744273291621007234003590859921428299903689431487427102951219355098132190908950681463130069585314989716565760876652248340564661695348683473334485773620318982650697657587429768605183925939344042721005184936563260666924823790204318685510342383520406468407430963212376448249593472955856147779141781478606792660685650839011066303160816717318809118110881978233912414674867269449619927243504369448080723055618719105048718538739118008695301385991032345832291050674364272138979012373158043302566511894286120823993534522341008351696248828670030599804426801788629781204982093705600968968571287629543911626966310445342266229199588604077813654185702389023230939854750591137481116088876400735221501741598933278675645732226505148142700531911665684662540542159630281322260572027525336572708339699514015480919122335234402688062714446539216329017742109883707700241467895445561062522846002999125457472164007354587612267663078811868417989764247272173907761051696456062613856539228356316996790360385334235648986394972285985522273931378246305171054819042624489968019622972732293072174978025295743116938740947750987185040491577474760665679984888484127243422129446696162047493318139229790111916153294839033736675962260712914174494736251597775425204977330030184024080120651565882373866158207007178633906924124484144091567165330304937088031105149353409873556909421019838127564642822674045251849934144178441379148045812672583449639696772140467323450750009102909669043406853065818183523599725324009117213773000454929282283427980572802533781111525593041308761224682714304058168664764512629460796993406404175359377681401211787577678196737599688562021033362587020767307057905906997476588249488753213021721957379571801231924281203337248568934951191736683708695112960601767767147361866846054480964177269346495265800080887493477645325557347125216646371745255858459949340603497710872441787002570078662492888026694906011358399192097589400830308813392495201009631358929976248727986495792222028356174006424680574781185918054770231916187336351733521330175736704655191503193312109293832489621349339193548886231984809325249846167208213939887873529643843379149013426149942952216574111306050180750057085444400998793869116043459638901260656223337911639297501441349317262614328142639154244179704366954413207143748851272250952208233595615789995999482816030672048873032912973250937860932124283671501359783785460481779808099732001334535987174472543105962801219194248477403261364238253961770825366593191916420640968177485705950192550291020700440346422836371902700229027749462749906465650473585887587934433472813418898621574775354218716825232406143282930631305677319108501336483831039917379020740404417527411020600835839194164496679609488903635579678494428849342335294863332584128193964524722457370684880209322567662229516749050430576387309985705688834782478291304897179344121787671586286542335285202487775151851907326949036620510287093327702078434596188283932154740665390204847242024478495825327700749469371462909135129173577893683505210338585921294070271179861032161311593156413973116914227779889339119998167199777396241227707038804998279046135213727686288923906634251020086690709259844749626705883747088690368563884012613692195374439639508645553505108591086878434283558659440961683800866004501083869610245562961278687838808446027454308824608684745914683745915333541775202022924525119079604247209424885399409188577233866529859847194079011640948990459472463772103871759947910457066615120569048334236707637609026594402877662008877059050666924285312641637543897426084338220597005091136105421592634268767304822404192943412130865017111361547995749074292449162639531451745856968787447583195614896688688003107577284988418827284327192378272408055359532695724695299618806525107451426601608593723377700605429302423424089313180107814727822209362423352097611197731229989202362585007556586588581592667591645171907714525763811689842330252881727076062770222617969060764938630490016266143102032872783063849912266955592746956545077506532259357713486791358227369997908589625050798794733834788575712655127345869871776774729467410872627107621966539096388589373214723834600423194090890024605187634929913102971632485127762135341503798431139805419218132333566341834849324412017773255332205463788253720666308264023559298690067065896353334279638043194897451447109371394038906515934378451678025110118562927651753173818457479254933689212679314520491262852141686912986369811445677987040627047876767898198091210136546649515366548740723470247388245451438735455451077057001684944882578979357811436341288389209952263697347682601070270043949102699020462114205307223040919203126669421520302164594277628839818199891315575487596092750825037533571186046359453585829810750426755020740882407411829343727392007694985460395995855539250400664210902371847373190471946604524869849556534954643229861938294289028639137792273112365898566959059064517480252795496641270200788763722093105119307196669720383464272170604002218616660610120240144993924879199703671009135148539675667549307701736437693636077462989573099657327451909037187091821043651604242593304663251236905101881875433549477603373911958361255653297803618461692772157736996677824924600010924589298725142572021238610721359190133104899399761918229415645737741258923677266247661107365205290989416803242973406899773526528437521039328056134457265351139082792212843784471021360947381296839195960464872322408074601135245087659629102654636284971439677965484937376020892182413100923564711373385607922161481096915041761955090408057916316476170825382009052856029148591542178984980927237534353192570192410576570387124103532156023919136688016900224132378855862413207440312639529669441802154666439962575663715706862200036846558417522846910091578267492726659196608897539735888290175612684900804962925863228267724608029433298218983407158085103783562876574262335003674781201984057132064541140171846627196762102703277849714794706953266344718481109173122217481534080177089735563342850027479474479306986900327323624286657902292854398812495313438089092412618818891421863706759419675792173531783377944975450494065788470077336724647562813882598881273384926334041237262505427287457025335133054002914502347959957881947441224762143639298657341200797614188482733593269116535439608423385478752562054674553990737730329807485996485886646385885533098820205709065642805120662649528291850763852964710128581661959397840651811058200156495687100289947634272376732762796599055336579144682891285860050246901706163610030595327518815473892072831521654394717042629972729142232523254291489130567223016984841290617871256257025132413200574866287955994708898460567051935957155811015279040283968696746305110127788661088897206125701976717215556742642422495195674427172988900903515438857859440984458673807421516508235538333144736636743462759542394809608917008947509026951835050603248185720144739740062310467710232528623790430010271054389507171110750041719077594913373023752815165386390265439047801136576355453379938296744123084416995585211656208681777961914955065338927326425317368935670680298765474745594996113492847030252141137195295257645356937020176484308240961515104198085056278833484026634388216516889963258269432300412937220014473082032868023510484869736124207500070470376176579161953486780139172891145620446554581386280850348173209044976089800802960010777309841141545729626115011782413852068998109875296795844165468790239325143858961411224103548164832007230020321246334471909704464761925787674783036603124477959153208129415887397319889639081847624349205596030964397442403897444982778476086167221927297357642706136761173392882699452178084205553103641182931195492552115255071512119818896350532595291593869966669720932806007758859364083054987554095201131446632271331750424032527176059471828190805950795141755428269283681878444072246937881645990856137575566245348215040026508072912887984634084734880922634537183647401539967314485887398797769781728355804100333501636351234589783203314671914250858338313562326161778142251463423430833283365465636977940047005771772661940596709918038030566684176288298210886763804843213809334789008593991031867825066838436831031690404034739041103449767977950299177688393380012256718353346202202615505800501041902110185889020446727931195000064521879291514798997368269046031763764160212112036365230547615465859464765256461194041443866381834470461054504146793429575513569990394167453709497836574284291734648461256446576927856038370025856179377242900829408682051373346349806377607714967825881896022409497422405023639188391900880856563596422363613575500811192207116880095149747754778033521274580792740707140821868558492719939732700031119659276422024521805618343372261069235710165298762441801390717964556950754192392051436229030825516664368826984699415748926456196165183988066083903928910250517051947008089690252331505647386205042843281499614611874606641964749953995901337569221213422240892324491722902386682519879325466002501740587644015738286222058920527003021320546917494964252186816378480989634782474969197532604976638141018462911899352340709736299532270141758741652142254447866580180963259002696631169932366687926942876081997757306897748336587305128387350993405974925611617638146247429926022789615794050108661842507039890745061421782647864388160617745940218019713521759642940651612042945636887462037637328134522040266237800565860241241923142160534279311782896759051908384777453524001173795260367053150733265508012694802945216175505332305668244992092218205398407912615533067247327985026417425664635371002383886308049753263334138265476502509949656855599343685536981045240347198801281188884316231332321864226351043218113642484591488215690138841663073225451245588117820595163525052271550747154991356347091884938564763617794892156448604324806771218120783358734275219394564179572536483757767817108739747220272530378963210407875029781723661196954717240586057462343125641693791652210951731747900816960212518627368976977886839572437459790693545228506880288598326028683970285953733904723418125340994255870820992081358401642100351688749019149013931154500932427954167868620884666547642431554571233956139745180698421837375526048725505417801680042968400623500014424320500747425135539969628136658787400873989053063749627545342533138852125926546555771955069158998539490397881569100671157357410487370774109061413445776003360985704479118449207410551682305108651666719857540622467005918613127728112648080993059061486507360972059078201761493389266692816488320850154420431801459579088166268954126634468034849838909568581502618451944047801788375892609606982429894613971897976145887597573937366978809274257424796218678756528944760128462511880026806326655339961636730164234633697774628209651816012620616651787182890792973738740772615535339725398479240779849054938193085221862810569626507701766955406918921716065596866699085123703277359548576361062455085780392642570035677065278129957293947194814675351340596593802485508092624187250555656915512506056921160446364965160737037775925810831238354246533164905936312174913240977515055097743209779312828945976175896080354027299076538389461835155676709722370746034878370821648328463868305099656203475204361584046550994508919984523462136928275257817435159787221433774625949198825759864594013574061601675005984765110244568271060554276647676314130714112347378597118798232283684473656431404590164100750329073985995041611830429354678838225491217161743982517695505348078922298442430040689492237753345826888068666273026598535437146059028948081538889053763576035622830048025731717956060749955836248190277236578626645683363056756044608587374678939581445849633348058144724161443348876953159323461801720256483613518814785713737598782905414410711711320657466142946239872638378396091202014187426706315943121744328082422999093696798442284429594173616458625276616966538654279238106002166228601525970462462569355051571713267314666646649911374472141990682478533634410166833347147435274260330596735678781237612114851776336458715773326572664340590236638208518361356611170896672985721160452185017733513322188492152326539420510083950460210658781724347793489980736731457542996605012731806426143152243296130579849810719160499550244976799563549444869903005241698464561299936657723604916997284792333651850185045103846049335715527395417522706416300505265716377328375470632871868130915936937403600839235482083583533578647745381984211981677320940091707497175162649114142382715793390771148634188341142075670578345661951221459218196181930083882376531966829993943114134536477491832818457277285447184715181987649585916228750168684352446965631671620990294696601312792426496482207582211300567329925307135114902833889935555721585484570290743669486593865618780772275437308824906329007934757149875865448367297849151346215620941265075294496986746163212254016542350259738767365392746155587470802291655204357531582719271556863650240932960200282167738670667569370973487270854463618403124885170682696803209023199674430131209528470045752397131918617237794979302425283407978608962021760538364908364531365895626168447108088875387558924040307028128835934127670403025461436558339242801747167790205306104860791502241385907553023848223152905586787432716675948488923419995076407135192671284105712980446860436906600816344186534665519132185436676008008192361179392033675744828113927834452342885210523358820131804042267796978535884533783066894954641179247997484274876449283177092027127951111279085725038500313903387365965147622649272081923967836458751078638124281986863510423249337514782571343576471203038499516464919356161578154789562590849581400095780851768146973851161251756400983058326866155685153468360432295291741517567194845887225035106990481966688864334158274449076270597629134861904840308482075250930789550997939855148154838670051353819400860201039278203228874116098336286531643298033431954100624050199749538890939449318771838268929475751111558787568677171228421611463916468918164767968418054449562339960468515137234252422674128925092175545884075293840020978376815577573887521667311192795135855463637355295744886558970774614603419394646342313947309393501157321022118759854697318721104192817756647671351673294377574586701694363844207457300646035152404862676564298049293262383212219666531242881663374057627534776389035890784167228404672662249916788722053404188504460983008774971568041830894842592759167841057018840721210393061519438943712035345507749036228344305761956782465105634834783921085614657692144733807695077932162680454371129630883925197493908858840016001090252954443613969360079711825639754118635222893591514611370409903636460875567139510878967011659348442563693266413429094424777364200343689370028836767309080188549071839047706719133676775042435463052178707286423408628231995526252051753117326432114015462585175144643054328683646007627441026134801448737772713089532038993589088981461943562552780704626466335239453606713103414901940995722301748463359062227461657445057670141673522050971881072953906607891050610976269443620026125025712519307167749419445488605210979978949765787169927647265088040192196341620793383318329254192366214424893989471207310611112631249709626081404134096982810506491463340469598741670362810591040137558877929136638067733805777701267488007724056607240181757933946583237084513489762443303052708977653509259772088978805269659181591566603174799967081382927054262258318456016431266953177669125850622389944579804650534921756759689997427509050764941150178151369974967367752158533015670420215285368085244938825887530785308065353671127179242545977352669055753309181858028577587142443672449620408112833225334732177125417811402710471378517520007384326663324561622756727888894410435934242994424313427386850106426240038873773189827084063335097969320903240555910517701783706152662547629318825439116172279410957429566203156692607035604408452195560840892007371553392305822902812355016692555257190347509814171969820890676546389789899159274060894402099872413058418779385597213862613070306836073719399856665122772774643264157884036914947305878268644005402081413301937670315367487974988426036703719602229057667051135944168402974477291725676538651032495961074720144346103184441074249191138666019729633738496386265901188909685923183182561545621100833017378778773350201456777670989118249261040579589671406068718464690968927991124543689729348110864921322254169839797803264769794839390294807512797641142906167427354194807059769038400410769554195485236075887403905831918569086415822476687513261803500999177838373031194744317248228327952351393252321339989071470914313308559774646373747400228559381264927327694277277914419555748825865422956682936244393880405153205643665174837783675583055141351159169781235022535140954702920211950167789273978909126962367692288759193576542412967425051171132040867805844044786236093432040094403146369923785689856438515501779737189131299570910848096396797065338561543865088771620877746851290328648920357254306842331787593200545775662044785194824921439951111731752306689228338791402282831735759319352032890014586316420945548859171551807046644485390278918845229683003826020076971348348735030064914109012248464892326938744309378699816533587969943722457467241427505049547668067896869190712563401162012490703420874183152625666356907536976982672426967392964404078942915576372052842783172879868696444593151795262210172642264431610654325849567543465310663703616156393441955806487463883350373656662177491802011256870094390012378644456255973769324237338929874191968124146255159955134934680410836578400671370101934832619321958033178000975482897320330266812848776768216629033609384058625706799738597259367468062906237132359856689669122788691793180517894097424620635300980127135386758223099157935342152995120256974795920360155805347402753668215621637593035071791689163293291772264497563627818306627821119950428923421796271705984843050137346291403542715906979156082750457654507002302317344588663493737910469113811822591645273770467294510849899019462178474035134588471209407009006464403858639584706862259201817869845760164963000676165722989448241889599559983432502317218226703477099927230175639711666773134456443096409891531305887305274053044939574838917442509446485245437868363392090600688906535586760236196625730185271858216077813951375650612051089478308808558642023240665816238832405384792181778991715256744816735442895942776663261978621645570876354465620177883403902975980486822429272652131457121495297163378276135747680280287478103604078708657804774896097379741747995083275610517392919123872149615655736145599392796377033014064405261523373218802085591828871099617566534512637994624181125742176266181394025510065046534634099675877389125387969752678292476330122154527970527611596529240067500360736630863674977399524020474816661952014833602415335950478127566270159432995890873776018938588991998267548419190597776027985835693780254623790890809134400475753238953257193193275150388610189747047925211765688781163154484707951556557853833270260083763919168481524004282581829749609202735438564745373089572201935384126342000996219264019085062089980994185586007695940185347289564012937861608112167854561195933939829122989812069326792995639216524691937010964243183221101765618297551275294812019958186758603500113148226687836877638458622850156082521500729684277619845107387671011820339055379318395879708971219019779385232682976381439583563631943733066485860544567382128265065320707214766655528722146731975770204548333641135817916141780554028253773131210037364363937219664390979288580970805919746589164745296974065990658343476521196992856864959658017404800033057104977455955025580549980721481909433804764632681745199334594428963979426393624317391531328995552463719704485461946454136844955293813184646269289554901513279429293046994332926563070472808463193852814228563002371404302520212467724046393549510275471402685032835260755850533012275074258853214541546793993695374938065420363322978571817199977586114761067496385031083699638642585501655516366664933005100607574095602762287142682246865759664499589594552643463350800663232248586920233290596575381418393142674385759881003472419994348342779407473423420752360351086687980336111343827440034333004969856854952661311916581548171151155567819368173901842551563406601396554944231990903756392124279424884966424328705745238180909989177603572463033981423181042483402802527150489009513520963463639912236255457058842369152318934207961501874503147108260143307769239574179682436737229430470932426647629227668040124909541014569857699678969882919142339373799886076524155049426757972157802921564712088435141625042155958358876113096808395682463284849957459674494506452997002468701253074625157109135938470071684230638037988425640149074191155935200422814476999504942186882933356010368240064363272157058863927227639285213009178594719360060306767458480035659497517973752962856650825004522976729721728393372108520465229509652316165835692685075026606253697407521014468976706811003957458265912648093960280389787134147401862467986560562929233421802335276713661639026462968500473261794286402121726858153587672120350926142807164752069869517662631924686952264186776343360230171088368483892196676881166496721448207855716806989485058601669552393046389146471768244062132249057630283319056711624406456457264856292764190583010283036635593822902286090452155416077479195818019693237591657322132740528045153785223053831167673861301177008518047866082452710935732883904971103965703842905951309133582091003903727600688638864240698940486144664874827077418220073803685535040170166756517861652524712057314664465307030682653739319617693371812109830012377663469886434121254951925867643072711498033461313862092322286304599471857486211585821531472359700275321466289398953102656494423653148648305240355103735144970129747701567564035976891837085918620853588814577936490866663019169239518740752702098433541710802946825213349534848669539678986547235752718968466769360061824938171556231272248509973149257846394825959984073654459497851567963149966866518815069968781179626494942422422762315715140443829695532541604380368320147361325411134584105483439124926420327841343964877650424583353426594490143087136408314891146831865065224299152901204091158783280746985168574668292293356689633091464182401162029845406950534402053068250651302568179444094873634421470059583937229420360742520453599385569115099869771700299174681770026324322325064600539154577649244136336849436599661714225652682357282738949024060841291727149594863415030843846085655982182879276481374398307498415391708244979343081815847526658330054125456477140097588782116310745479606520988409045091608693366972536073452466290857415463255753981276706072679268018789398084195899936871279728181051891168080025270520993509302358100571418739536667696961993236028515906978273876372233245716602068940528885768041138929479235514599347777092088567045263408192876690767067931665992248489684464514060506517115388462532832049975250615533538543407323467205885310263848264448642329355099101726117413428406155780226484974524128095059153905097081439917685247034298497161309933320276318180557586559229626025778060349248132246466134189200965270239918476931835695465582223276036496322809189937981696586319440644601011464999724674789546496313769992021200202704762986960607988384507325434761678474568791191838479488385569887497919228179647495850871979050943077565093303648342022865556430136612993697261879156936143557893340653073903296782048027389364307393119547902704484587298663469805759729973120863453425422384616872207677695318215681059409350991610986232505080991918117938215009340105906336036247479774601560951312048638697560218436695602888606017259223912837473317370782348022767709111220992107508052467923744999473287082978527978311585710268998821820365906847303534964200648706293357618501477618306587219689897520075133078813967202098398694982596762544802369432117261461739446539605911537559710251690590279028699296791789208945532366345858477175242536570184861935909378812272209647513009860603914516998871656678779699997546563696781014254407369177349801657477120878157462748512406633649060701692974208146093473772606915090235558319382041853226978560455046819459889294180219849487104116379862589087459316823526141429359926797073134860708817692521175308856841059996253573538262869992219051694151583193322864374724521593531198673712220512676295444400541522292423551958459018059050040899131151937634635705702559049193158683440736347250061281907224410911502260176949438804200733353530568295698602081746796349939625246512689388366398191368733527117241240601944212371211414336263072916212754890849883778456035546132846669347089008557817533718570167024082622533313187552836081005745862142833730703772533285982389079946974356688178491938998478294236119367520298905991134772525936118601732745824195792520986876373600817500869905557730131251301831132057305305257817895695857017996534604565461322251457174679448416080667231299825800864417158743435217703946715434588809573819730760628065120931679175363663732974571198774629715435367259909034944303406332442580581430571077279968138080622557424261299208138763302273431938824148843361634495266615688198085769054683005526121769229078377022948802762905560319383173258757308316972199358298648184036000631212338706051047420862189886455959316355017435662271708082695902161039906223158053035078738537440431774352665419575517408333975625351365304619516119667095919380633469432403266080307270226548959422749312026280047937735570146724090654098643655807819814526517832732858862178488214135096835934862791519098767032028674873487070328836725912995181046526869795035982295517602691466511839430798209183165003622682145768782200672495649087808485020018633843150315983046451307334886191713793671515887308939341720048634275897302006836854737749391499497153349559996056594512056533854802543538918942455813125802159863041378776653743199974297131876958373475650621853936909608102363223971812126696907360104603856316814519359550146234903099659860770227574194976050326528060364295474458026064338306718768432513197805136732926439296395292772113493020329196866821680557758456562605809013635777166237989582048321260659803664720725574260847505503425631878694659931246109544469423753922576718510868120602795392228079417434033730315806284892803656641890209588899480527419809326526393050049598066324426995950986903062960278140110144311387307732432100746921080631872014762370064889525023937995757111535409237732874413052989726329798730920525169641702034027521902693516634506874890789121111371080953834260549602757890824318424703020304365275080815995987435424073702423461339670381655587500043130263765043936529937925059631095369766976024784747505227685343694526507622039991575734258569623543879451546433186686237289879887452187368122570949892006894144763293809087741644772730716356437697495902704910826379273930636515687292261269817834641432474142566281400890606360712998006951278991197909703101634566957006349544576494639369601556686455339082171824521534404548491803481135420122780205753308839309819162300972493883370832823318750219590803854094529235615415874070212040810482011445005584158511205541460265592071947542936125004417510567038886345656093263904864715230566336195462112989100705395309653735447805741836409648520838733926767337008285636918280744818148039745988607829270167438175695886468767487675904223809981606350115277200206222373986351709034719274354019881675294905914351992066716938446210137793691134336844824706824282897258145271572809490109915806984281855689717751731893983454799698848747811101849924898900070205243575224555896486808844510227411420687100640713222296260270172392636769795198275627946364079954547080162993724272919950339968743165350397395463318807405891230577741423605867080540844796262534515370174176190990669225642039815213061686562132611218405976110053669759983164888215166704226667681174819058660626622311157991495992033468669246166116202614100032711149511993919338454795441277459199488487015900748913599235720365060352941589736708177023420476146212362863010289064038018867704654893295105848435586713801271136505464152170626027049376100776436726494615010694183295513109749543336298007823173606919927753899186204833534775653079717955436172017051409841714641403103065894216968527624583766315101923616980862300667330667575828872693603240649718041905454703079177331005249399431101552477772960213709095610537619920283562952596015279991076047726033517634551802805416772404014181846427159379755581597410990745764332634351594073022842809502957821128237534528407669063938262996066951035721273595082943742050633306376075798125020597242102022883282005061289982605390792323544496509090261510098034370728209312117073940438611815468034636689727789112405081718676440689423119026399024982204132062196641576801195726184372704665153610395606033646291533688144616366305401429574958429351423439145257723284847333398408850871207700911166743307199196133561944766957293081238161226903612721455201619118271184644016533674041412399146661666390359046641850069023902010381905836634296398683002118888345762422820826478721141160626086125799855149020145192677870427961303024295108190796790269742336388095181866792039140334479003994028978263370619197892559759380137212270955276894977175600802430011959861822997218074202787481484641697107970696669450818762496350895480319772678142250695723250540890589416309838927174760623922403158162180407502392259876199747468845733504440825292518406797668255247596112887484570875931593637891907822336030062781577621288685900144006727890286798203116920419041514125149926262033037004783985477951778969213338811663306989189683546257824245172871980800975994790564345700054386139116687898822291529638908635295252455525504570132804546762116798784679050168363838078816839585245059559658077040666869155384877356625279767871311360071993348726430689010579432394004721905106468735877426850526442278872589491116718709056145554628628148611960935563063488734116560935211655773933205908726862841046780383128726212070752071232784223574219478752188322735370717980157432512698213101920980304162355086925019700080398652461944668018665227324131858917602670178951614741942171955384746124408944260482251311657004395609527393935738972541454545976751685260786671460828182281634233100268885079608211261628646679756702967858696156092852604983744344213622169850425632743876727108742773844775903560986384306632032265355716698486068826470690061884745355116496488152915123076440833636375548531110482651701456060854548612037194258243979515863169563932552269246787284793311467278412522596358553122120614586665140694476989879992194770797744797553701652208760910855808585231265421862496489265063760190481163092421872396529698022491882229128628807486200522270792851111789104678013486666424674092664829202217017416647258371007004996017967806286194981173594861136627818453724833475298117996959452680473670915033037600134152523227222402999249518324345321253256782812842885085724150086368862714077158328759672326801037794926459642238165098882623407313495504301548280131098618639420050660525410411871220756598474633916196882114176611918092911347293376654580512594650581009714326154476885631566859399788025141403262299553929465912179241032958617978979733309329969763866995667484974132367277655426843350188691740748140056081177339199122706401777137811368430434737562407249002857961744543133566759667004000624167659853924224076149248838158145353856812430861987396641542827987048231244314731763549298042272006647984714104156354494930166474496134542259720799834376379227681235544379022287823626522549590940094172960555418015279731781441342222953232161375554915907620096786131069262507601178322761084888233894858805995467015038519305169765961329604294090694975969146896277204606882081263673934609247834769051011834861236505293280526183988492629104309963331127688485768443930543748602389240778469977304024228669665038967313281964792804035223104108658795110337076637805340399705662824537951166431260574399310663195866829895640216606417441238122021097079915907765737249258600850213111609983607957477099111872500735689138807228855475899188804893892054211783496474048884476966227200241445681607949466725609428492076272648275063718306633660800326439230687447876058637598315237962187303221115902258958865545496699592808773949738374303392252061621861389067374836070271728192114070993193357177423061512712275026475340771474221325201476918587148270960156748985848067913183207465326834466005173870877904369461701380745227366344800673272602407266202035839597926797784770948256727225375128663744964303254639412678540542961477278561575065414991002601654069564630757263260794306566926217633337330315035187617435889786694189606688750497824560281297522115468920952294221470600545694383530886586333953194001794210751185714555646425340498883497133812837011688444533368722699545607235987030285582666207828734173185868825330023962676876717765092734520793802142959557543482694658011258840351200111344286491875412963053609670332512543642412896596813351386603712366213016722686192239538415784641174308539665235737871204547598491196123235925266916537820923153581346020863044891331513288808112581542162546475879961506861801896362701449270659669716541320682475965656597487640397665796732979779703387567424716456866604175786206862311496048048331683202803954829171341908794692328046416327245136507504789414342407946064482866409574632516529298890815239054755935774540447825799585146089579704640474746801453651547396710350382034230571947433307662879578320562679587173524763551353746361708309565212015745956931693956657492826446175971757289210795606388930025933077263542235712578273954737277500720739116968043565236840227593243174300601519361004560542967690228098496103872951925138906929209299187510136397195614955625093952954076268294471558549367125440416620000725723744624302366682792102371887064719790016996023407770394288438867788033882902724192617497103335755715440827464709159463856898688355326718791923913249393197271413142140397609629771206497408430189614724623888612468408167741230144736763435037695781213719624914935922732895004610044260651394960332621809922217918861553061425315397116358611954823854547834514130222419064337340010084493448114477325829755141596126923980083489891736113366126200793712832731616062860706525559442669265387857306518021648183645979713416924074054590658136351122497464919648573045844069704137230384117807060935275972778839706714722794612347546370967002056689216086851061426105953569440397480234529730197444659963749072096123834847667394652611389986280507924467606194756319131671391397849197592171751427868507436780536428476552343654355527915759489038242833374230634818496071974566313874030536425226834492311786170627348298108581783120460396376748795457466592299452141050176995755715695498946367757921544165445102840693133025791031138351561105312800456483358444260614066463304961824293976996189147730307946953052886643905476660688678054480763827331646865050257328849364984327524748674773582368894997324354329413788340450146263733503447141247468502541314606433085907554127341515254472698657841748897150387504179033523843651795915017846787686483940582156934041490764359702303729055534438314939105975027962002268307910102989648976513562858373276021801310283589941101962218074644639789232719736182968821147822050954577684502972068288751519798583962123719434499600995960343888339145555884949524400343595357277393330851116904982573728061442490250647095556585143613619192816956330848533097043634503095358101567875562417226978035421620165302684424725602905688588644754034447148641568494761656165238025888543784124140059763127241984139955368575334253655976001636625803009923002733952617959541366813300265732408604124210284663610771482831934820291837127905989435534495554467849343023858595846466591409697848604010272450040862304287504420480721339073991004048694571826500588416131901918152017520758501983010556344021756756837331190556734241810764151437163394663166070538528307646961016355677977835523112914445828781272268830585396804396707851364768207803368711119637245241867322273997681652227574217235598555494532366545849302525397540422175051992648936107085602223419496065181314451122362325259786757386151795340459512982602880603424674802047750311763481496793167785522762295165424017030170426946259476497796900599125841275068815335876555899020093854892642800236953459003990418210386753248113697875647638691884243669552154319184789518287937356183736595943583603670282692254029602802888805132365799849100728985303286551431277929027543438236484727515245706278772473093595541859842215980396127268247791297418289726544565391978463979917331703723564996764067285515935150615073317581465502576932714640702668470745207400964869128580177203794830525959055992175503902825875424314180257287552782894197831667705296550427138388392985919047108121864103176554245410409486799357189615133245899803292777188279998762456815290900006456364754927411073506884394779436770774171469617374757194046490871482612603956343831228763304985251359605572633237592754342133244772990494932001829228683969669394777355072259239011483275070134628653745194827244253148416970044594406567357833970878364340675556029571589901987106600071158032433814124687517744152700146740266747936487002312412447541056709519316501603813029300972534166480815830717937711315388938909347192835371886089130226898740786961234667099170284006093894742244656764255814143491810319383363837242921290526920309809280917222772068760931619497888609065671421476860086532100214872467836700372844360873987599863562363407456023541339276617653485054358314413207176343924156071079577490547486390844066361393342463690512360037420794685605903605800632532158230356105465810649346333897122806817417205484301734116432424887589126715888741662613651181115679760259410655198114707713614651131121573726842340089210099866382612242131088580192967407781022731137644321846677415140103436482248331701243962204041757511968438155945249006985950563972195918174514634772083566787239830287680596258569258270454431915947234287329832958542326906141237102489475656432756945004292838998990422985009992040987003258970352345120359558944314312792388101078202051859892996867791851574833341104486733788425921668984952092956695841693804750345226471277260175666325974916368526024612447009455861229481476585078626408853996568496425529705117863174462840625419321277172073615547063573900873500321631235974245324491820479307137580589423923398462451160272401930425361969869555804297601712148745091481425104277186369301010753584446530336579830503560593398455008475035936603779826628395812178003217665153724210618152051357170431644089633620026746857986023482908976523879569583239659530994417141255076805168574489832926324619865330046352215087973725419004573504085960348080801403980247226224116912818382375890253229367731306182066584677990679434800116705784027006918550013891807540603827659491384296037134391821379543482720883367135953518058406456092223133531126085456092188988448576130773476093965910079256689231969624879454806545483614133940953376757311887340589806968890312660150300790903079884666840972540496415413832933320216052923671535894399847344585106115565612603765728060265492718341838655677424637678596581432781321395683238662088797703920851571481936149863519922869603362169303005954764758473890402859398519854399176393094561286291939263658218949837492113662451376720818629925563643498663967649533602999995440252844942541432230061221907304242178299123740395538447501930484695282624983934801937464345136427248616813400737823588570269269276986153845602108006077766263760730027519286856197495862108684733173126619342850549563501453745851814537399472234606149563851936503501589407710103866695308562638688025578157334808237559943016859993335949751948803660517684247484993480307934083243467106863288750667394195475108610195989298478660626283437441032019418517232193583855040094991474396305333584981741776478928077611672857594892819510132688121782201696251758817379456042430406176689742980450218191305258559758957697829648316670413188809385026634980708050536796212351535621341782025675026755515420225070641624558279054380107594548602925209796370195921244875407375788968050022693275720108182736504837376963081976462454005540402508986937810876631284571653974153985918728930550930007899933796775521360853718514975913270809255435303869726905766449932491921639122164065873268851707984490567266191853805749332451064639941955938223293259801424595442765341615879508841750248899213981364117478575554945314283160810273499527993639075278995111560727474257147419721612306137412781553916661272652977347204892786382506201899582919353131640428648883770320724264047261436356475154851181366306968575597177483268375359200965003821400134797321368054734850117057706004419556171390110062174660931474014820775414578741596127192923803082868172765459587887283525754425619457480535538659157498364477626839200691910056936738551021302749079938419302520493217381170140735472272692793632008111866941669066447576322604456182173496204573917742606029804395846264236809023307442722431806986396615748139190008191658956776880768084639392219407564681667589906583930752801420586970185294318535588628800835949474775303825640790793570451374908791064206866967635104211266737815282849248181318612399450986181783178978806315704372780315994791902424949231292275163580598560795500986344013917668758556468180119733572209732290327704086786029375150001012974686026658255772088638950396667595088538664163439625718755182274659048152383026148574566513450191380407105336947504437012553406528181299311541715986425159000399223434764083882309306850850541093281632253245056604290183847651812490955261364453323611431080261986146504424399872874150371504734019545863639804496759194677630638734542542195014366683484154373813387937294503881347513228635034401238815149200167628917154276135732213435141873397334932109419203427589154064183136148569458064201132167090624898859021151339941644569792186537078489231020383509307203638784442291462905040697528234382462415919958138260172920374325762465439939913860651187464402430987431597171715098080766578084558987727821515750903362662938480564153022370926678529579934997863248432575619101635595430411022366760731920702382471476072508877389983193604116457593672192373810932337269079056968779442114438140181357823526063706952978398661320207702832837857346107908606769760402220865873278716453002782187482205754243939091436929623686931637972759636517679492605398643832299366472616734584403160890825442210827490484201175371917724884625796983029569751938396947142483582611668256687480796493032581807399603113563303498184133152845707177058894352306710098391169499178590553364487522156827570708450719043877425542154461492635043748262376467117636399374083459248553104859052469431474864332890551902818018100683403004562101261669950414185806187724606876240166469537314766020011960943100087438793345000213893751787409473808830565788076953779868917358983235238466760390036691566333011912656476318408832660488125474970207116647103113037484329156735532653285055961965651395561531257565253829325008610115409087251512583463482918231406621298151813089109136400702609032952377293327458901575326523855303119993037961971095428557197006369076285555968302195168050988512756629631890556522179606794825808254359317981748528596818136474576191162635789007499514584390114743455796732260542414306986170118751528899819181076668434473595744688900224430858408345277233680970958610163514054695456477443124281241170990072867379861300632066767596513460413397917915890907518412981192592708572634984592467852096797923293646371175456430688767866237971319896586486921523868905548475142198664341680620889756102995970567692604836234161759453034249016195537803756101174637019847558629322509427638529080260577347983973927220881122634360760174021929775929771112106242667331344638930034220801479792011934962864406924775878865433140721494579669039480777052796840626329457507301492060152473871932634176027677124464263734064078986697737431094517107207904888882940294333641243413716085251851825377146154371031155040522273800537695052618652231393803932348170147721083314671649211065214311570062843657309649245860592739312707322639413956436163797488360462021292050312012830835731168304985745780961040802740937741649790067686400117751388216670229145915380230130301301912605071061158317652623676169556965403272511804294800549282761774820131974643854956950272443591687989503527439431054439432709163506226325069721403545065574482648684299892525934870559550092726162109025766460835635814499719835026884352583074286120263618596419598389403210907292577231103090417049345794147234378620291951589500324090879882568404953019576318330888305842475919493722073165549803808622456570479791317434057174300857543468226706438967449312678739940648026299188358939745459527683332382045824742818790743960798018465649373654259916975144311261617407595196068937645666899902312289274294743410318592926572732908806408560875831798783635142842715655974318855026595520988876632329308931165506997081948533844999977173920126902477256921743349092134968042679908844133457447273388973586650942212552574296772875954166897855496767244207345687148657194436864722142830787269870132473841638818721119434553248858882223899857533625040777406261077928301274881327556873746612836221418873356822441961233480777456510112654809707279416541482849706661515407169683212902953101456881757099009158557014070311876782122266881603924847703676231915539386345053526804841976649469931404654016640511504345234574610728111367955731343996686365369519926314264955066129743525923546343231043006207544676007520741370577367929111482887617464034746923473529009204861106630264028952924625623074524486049839160620753412708187827645471738775044287523340203050868732466348915322334005030693608291014420316069022559025770623475314135006385816040359903062310041913578455091426928493486243995470659309663425044421773233696657130190593909308664301831110144542204230889172520748466205430820133898523509941816658503220324788630273192207916550682088185197654197792774923225038891611950704851418652565814513330238575144572128180154544212754306089466640092594480082397053247226618730885076379864345958391066826482715933989103502269302545548912809819848326880274987001693046054621942697160503535071453869384850769702480446820499292871227298706281658616568853426419946715876556123998464581209504017811422676938933230699641278495406959741318479168168294339259204626191109561067605299664648542784358784962661717899206159901324143156199775197176618437922554118570695793825425019179357057675608561659791388253839790253506663713253905384392433426340743282613284415701078993570504764258771557861459805762561591820664200401590502590005509029963549862973074891611893444694180268626686548652894331444941519309332266580408756746242650191259305254606204609204213680922438749793725698795960623394768747946246277245510601135851626348292317810947468051652889674042034388111843359868926711846698253997519803251948495593541963638637031973131556512645107189599551063818446472765933496808796870462260130628526652271258496675577599909144547947665458659420681463285854918827365453018306613113119120915233721765284913547569854457647329596553306439759769151460020969600145686734511657233973567397662280090547267103878138910548344110868821318978065436857148367376311214503489531691862370858815277395108875523935412229992406679866433484997922709093168928809307424673748182656749457584035283566336290303162529162035435835832405393611890181704649737063317522496593751110158430748388582175889092466570587359727952399733899039507323189397942198357862072663901915102207816493342754742605459527399911311912649074777874050760242932878902176010205297256451623201532174785935433256982230333962308290995722880020905964492833306213796186393360995064257848007478274875911557095031295247646903455249896375729922067339609435611774953520342988878138086132862947511596546462049140976504809042141549985389943395358409662209503235488715255742162733454409006769083333896507888142692707897865476370281908128768593425658287268571190701076207975660088681326886822095578557804101259535054127907976590819816325014275234644574418172569838051537617650178310741848539033883253045389788990688523249528742288547781299926699032544678357727310293248551525555320619632929724220402078763625094342490505784826267758339498097845434274766262524656863059182459559642617870506142277232240463548676471827232184249641252612793967074344184517440516823401792467139049734293118184714028613912284044452467088853985033781623152918476058986756550187952404322029290549683372099422757003260611547881842290596818670020590377616659715726857887270558881805387031296303681469354949989822260615081513236650476701967789680566761197075918424629463178418806625704551080637847159288473045736363018097896549524886034627373733424382499338268217378266259098684519841731335869991156361620652162867266899897726700552145203327619690956295398401236166084326771107857110526127474656916028077839690230825862326342674101098842301110002908791871984749322527977587152219372741696189700716729055237089084836358320181100400099735646992716606849287152328246727668218304520354077417306950412799720146041910927921116904202407698020269379062992498032626749777691055869048138736418257819750508682562619304833760109599327102406849945357165854007946950016150255819961080723591997836585975909115601268852832155978440774711085394679235651627303362884312807060728743920068842455098015175098330041649312055609409316809308022571466196080251542327037324924618328705258683182344894119376693684485761319295572622201471352789075805582810208875451134626729025349707487617921733957546362035015934931540619770212196705971360525036991139893571225555103766578743198659822362610577673576380560520155626712255829361896626243565726897167812079453025015810412614995869652703562748077164005604409344837298907254950805565316941428068349591843768450291445718008898453828644041456935550731871447167936545602108953938143701815596731412405863064384711014475662046282016300939895063261684699523334139975867846218983933282773496897632608014552356244203400354705350219333240300722780879727417625734037313634738337784468908200565987331727025513712284181400066125087594337905226433543591662392930640944640040896826038605904245616703794157002082321600359696542177635147476676536813558863648085232120137593532683189598397712577900972078356146059049304150107882920773443916942454910115077602767190502679777749427048656405537312849610232896619040822586987160940686310182280834808026417238356244571904913460191965233531427634005938854120379847227716045080300311000596651336583520025302219722966496148530188992013377425182626824018097078140761870933648840930166225608979553812210984449372860743330699759306195006047537935248194670386346437651871619405231922781210265204849958622610908914674771489033386970156802017454857748870938207981131898192497529467082809777202689769603063096785054776054639785034450086583396793483475617810602317033814788426621455493626140928150996275209628996876018298259348158866972598126048482406536789030070517927753773572169818860188548367292382940195159294645684494510666860199034359242892786618712587844793007462576797046038056342330079633323997240842706039131190871108124121484847069557020287052842142378757060540787486956086923507753212656476213204045469933339311094673999920859386963992571715494967168064173110231230960753922301440942915797591418105182598907634526501022094103547341024295482005696175708849145097901822788485386362533149210186654753643030930645660346864832947002439287773685172064730033869834033257638448530376719733462648111677520570638928699760591518026071617908812980276833491299198376390205485817046829555988969425956327149408969487656936250085113148990752722530302902661391391057584820982580632335385465425767920497668703370982546860647979756671969003856769886467227331770324797525343941733891629746164311589486007815749664059015093138327729989912573569936278357191301805267907235916945818831251873954575132539814607818117149726262036168206389373668902307758660655894580066393262664099715439242879391340387391184982922753365966661395715046268807940089834372161503902215823115071398770579526585821978175218120848226786000024467451905699605857211353033548161611256859015499517710797549978312559760776701766659901442683576544129667917326508298667920162243287531476538264363366059504150452118119864795078467605825507542030264322457494623098697259477047968722647931103158156737456684638833992289946344482693207978338300889416931872302704226436557007453680825906734796070019202075266532425816353906667818280249381704089322463538622658395431947807919964921359619248750840266498677172683244012202416255239287651728359432756469158451323094693227773893073573466642427026031853491115887684448998953018334537658621653477566149583081621470248054247131688775156103655145687722476429453510046498616001623043145277230087259530453419413759077895512406001161387794312179745393824534400007899972628781252326198090250779291282621592321950681837452695445349085067856385935909212907410698159604490472330257347402485765732865724617722182053889450517535265406922336146922163051752189808753351530101547329369565664615287230689657792247130603887698247034021163437152920138797875117555645161851727267751240781728593988164725697156984043002733541024311351100385932655697198523045022854441996365629789140400312873251682357393551303303047722503040610665379305292266998496984458782475468008891110565379714044184782881261965798927819940830137719167617596791012055555720192786823884044101477316200037609624120926805379218989459180510329027498035333707656920744571950934123287620545669377723249007417659631157533944519099929762848208888647531834076192389689583551154928112286287695464788902043237198658896483678996735566703805704240946495580779384629078272379508036503040477355360815072657142476626553354940007996827533515758981978291306880395712207124024345485366212003458404782260883238471359885383318486978165531892920234310110980679102445091085934489216725683028831805913717594126201317784661950689191368508422881919362203549889746298454255345671283980161172934136047746575413465822104677473252813585931390729965629449619739911968800891579640467109185801719077778232227555227804397523222910306795343731573345323206419626128411894508548375124623548262825615309649653882347814560651432021468962764825862124050144905550516299854403721793217448499807969926254175486788692398298510557774640262664247460005973089513292133621148724322228062867208978319480027990599450545694324188896277310965755890336398532421856805223984168819975150446493531376757721481641097071219704711554448433571175340958135350010788511530463205006605908805310486837781386150280183253219125872520533817858028228164716282159005586019979376485900124016646540461879861311106981741847508012414778115840801472956874394203562942800781290609523845286183632751974653551144061951340257039266397592292200246568433720122468873466928554159305685716647867953317753443079430901039499584861326806765976937648282029702881112339001132041801791391927480209056080615466220679036307547710937231013178469303880848074686554281703620831533789954668590778777240613874888771860960542382364835308632091337695681210406248690990784734296892933134152748705900054830582171940732538207855560990483077451471737869883620027433627364573854964835250740018107860586731720147825084961465441968657484482159635770609047530660242187230295137646438230795896871079194243301257662058899039159083489235335126517422487651278153539427727555776514296477274421327327764836592152456377377824587202949743412929936506798936019513452007765441540832178293351151488925593656526042567149424011721372837074452724665218319300528558521659827832621904515836984054532925936757818673207440597333787758205856555085899823969350860781801227400030557739016980598277234972512211669955882472028174511287195960488942169248408476063563626680567211200900491366740301689254780979890712795663715439874335908675391398331978475824071221020569837310416327319245568578802345583828638122866641734469779677070051172402875806659903638239347520688292217691268976486836681419711693957203217232878007623903952502660313597457009451578076829082764538431270178975131495296530077716688937037949642320126994146580500132408385644368091240596573153700843574517465242287667101037682582562933433465841915173137557980363167906719937865851201024545278820844930214066772660744699094884212032995387877160694863295212350600037206090642471323239639944610059212912583579871011437875678348101065590901211542858633498134477682716449140524510474255272923661769667867709999965300114961980878452210529573716581240013472229655698008083248727458441581472876369457099529830314870283783163734663112896718119357556224995474474918705717523220452772040381173755925231672363844073126949242836454800049235107248262023449586028447020148177776672506268999884363253383974108228089950701263147074125414913373998583541289946488667888138589885558886539321937283044003832091159090908771824641218058839942615876195490916072570556775972734896088453510932476467544597811077345646604990721814724360913112693561153447781889861860305045023978169839622325605758522436090770923789978625033657503778240008312569360293327032076695367931509014090568933523778856194552887724216213191842597635086682920710018747652464228893655865016365745253188452859533127924144050640998561182594314506566841689917117651675496503949386876381027251398586974690352798348287097881099572100459702600882266449840433935646329236854835234979228264697417523678061119924634767945840772867027490085941496349422653302431521736144820335312487489716077224890512686348739366265476475593062420175119040029679618979239908876601469303240940678605190680185221087221102197035023679435415847832054847246764890559544753469310671727776709247326443305160554295054936468717558399312894917001483599116917007762868836022946785218810635702818188837394747942787957995806151966560736173600421718873842015454042033261605653933167583681870201510918085573036738682019216724810959573082304075989189703584749793413127416002643138137288623412806170574479296911387778086452865937236738820710770290160024914854651243001213669707324325938063456491806484447760488507049190392590041964857888644855295417979093272228536821570947102614053279841559878445790823086887189471740047176995750592526785108790578310543736578799736178194086519887496520524687817110415136404610348140622431202287436162975356251363895460635087258397612795872291178316027877267130433837468889556375758771322715472450490545930939469266211906641851148301082010190960879313594689329390831590979140365217047481889665104270757708791013642920207350452000714347999317983389222603036798623374305738539619617629428046021707945335508869120821269213324330282082541626477178700043295097247659459132209323492641345498696465009157432644855529341534598507612957238174531825772446438006669782124286047927681261274434547633666375458376105305668479816362760689165254834341117356571605688547931463697827100798899187996344878969004882068615556730124396160285692377837289953992301642108829010057154762045033240794616791562312635044173373047369606438050582926732861484450575661931375858478657172365072442559084558294879586203911777351629397561748880137466632856639476824619823446275845390251081779160659868721860750747681967582927174953586122004795061996746143537405237459406855049769763418055753519031106318125329387353762878259019515038744299384643206700690767250285994961012078391356329073416224044096075078627916811475892931539805870374976872039952477266560780415921352083090089182970106133477461174991600073718648192693395170168366366319509610403423213045319792017552125432197434117871926229640982774578362385812933186658052224856159608873569318625073031442972881723024145682885608490667503119131872960764456671939760063231388646682775954261387081417787564582843763221839398572583977850491294438573437888040401095291903328107776086893744389864076410337774737308101429050979358204579635704747578182741246759756059461458867574182042915395843268065227664516895519392982494917216284585111406612415366070938432302851237169552251479512954477264692359249557663424984750757225846264877259911096136197264809248027831964303401356206673776291869984083646020231751034897885000148319852224016911590505247641328816080330175270809801990813352707387736478210934963489480251874948119729978167488262998357562884659974541720321113495192285974877996495647681882388795967662196522541428718384936194591079770887663781575860085116497914775802267916608868988615725425655595051115554797998513411949067431297903616086803413967764237496640166447799495503555201121214597668894516357098984684625554403112783226278294548620717028548560117935286849918691927999468505134412813886702006769908312375238618616104276274537520037525376732634934811904513058331206011330277378947218099369835739235197532426563539883643695797009161877743615519530170235841735919988933661839351549132406977150839553058161584481586880207280221052205362871706527657096928534486015727078390854081392888236653557808180587567388812155708455755483511336398565193467116982255673223576345257261527109987994811603471657875704642921307694987829384669943308275814059301349876222495008632044413607917639979049591911922000895529555382639578342600454713796708070706678637061667646373695675755562172716626265489947283819995391061925938108635774255349326906469881011516182955103187858982834163971938109049059980521837095946379238659577243632744711059074349157676799075674226670071884545989614589568394652833072322763243153843838746786746129989466685986011429462213173144195928567211776891966953234994956850015750324999957716062409210474315826728101032163765353075159392507739582961291570993108301210278477149801134313538222281188520999707111465886209926182372488538654045615413453344198144770395287436277848150564527619211612517811995735084836296782979334806849390082487637896809121652137542527926286275236145934576908949894395309669309126150367949935851454982849101349050722426590354924668645208144901780095458390609745726356147025383601958076804789479051968117872268666573936143284785595440997640972424039008552438801982995501990359203513468820056812739252793251179300100855259847591242766956578813396721796539648425874555784433958108791163333129901976650111579629887297785013676017720081389708078998911056909358939087350274820388135422593595776216077856269118696440745493781645337321775389201413414590053853871975466684667112962340766352207243805632743487864834704619280969652290216868009958318346657947760640675882381616387265918893144721583204689491916685328331041798971842263490446776205669433323402305628067988824959855161904426829944806537511278538902826447940782027847725517585125142841704666699334367725258934260788258103753725485057114194316067315369632850687360898175645270502645673508427667945991635424554070274348354922213817409912011816612418290726556862718681539097600287712484258623989789231154500977933233238736697599968100440739438566033824247171604874670964258478777567789194899311709917261997227742429009824952033724761772825890621514442838321139717816616113151415130640674824285439004449563802043389853069934800450849224878132433284957013090759932670187442678460297040816020029057427465946778307022421828193524164257818096974287263430008075137996597780112775598150324732949825419347203144886374645319515518943403324126186648451579766988908302022392350302085210300530956979162965699652883025360411356918019042010444966361196653722823641017806972181639464599078569097047983242252684084972579011361546526533589067926936655469628571585587860225959531371310282400550072382626952698195432716752326492193738039902130363946825280501252764235133455460984161959728210877080847657833164581295615372731170445487775761127260304758671380754864161196415492224258988043945095526087029076060760692581670607106535663850227221833743653672135177347957205830677569406144224533877049976013106426848326230520255607802261680192109464576793228662033748990565360697379694340515715104142282474791351944345523063088850488170741115492768400458229528933904980568539639609427067722847717764170574810468749169272782290262567670539401845626324313013727715619484586442793031790875306458432831636094219142351646544599840612918495754891516349400048092746319746772375873115172726931207623118141564832934430109922440523650593857008691767273756014615381599626311341268613632274362249311828854028041168923875979718792180285972172668018930423515875595732418201216321130819676642751691010718259419780891871968362057886818833251071688461219649817502016538538756906255453105749668676011173188228734914304001511564742253554780241642680974328962620421700202188759989546771965708636676002196032289460750260358006400498546323500456995867533459768629797469718769565429426253145796317869707783360863664307505807728011221060537263325959644081824037295328511979475824320034132724777955200087485814392462593010292310630730647221330474656580540507144811049832719502818970647233416970987887237676242679269559789467916071296101446111920217602870185182642477702556931651799426364945811810307455297328586923685225157400641186900114377257398278692211342432501317064512358860515435262540116625982222226427596913038773055678669828490453592909783625433203160450280861928321930183497598848522296614197742966807808854158495188495649787023936133979693089732490346213071618214848227395064724372387513110067884690724504951511949986506221743194738370987207975856094558875277005546953673055532479127036590556837348539409201473402680900459902610273500588930708895212275910412829447044467025906312691442170126588120903737644295150720324700932707076098473580709902355954990293615846144772198032662776369301617452142024153359046006970755864406845882143362766203468111067296026515626096220172972962754503849000664413603727734828542973790912098822122978248837660376982262832077720954382334186422487764570599987505822641357326082787554426940933794398818203973024885959215413000673847283441221937226552900406803735439893863386674098457283885857127016697087578907113303796576114768338172280053437442340434823765782963415589945303490148875189497212984504440410280122928745766207637345195550238313418445985167251492077072113105416718575150745500924348052810800366749927484928317051667197375216545855952840022188843728306170334321769438542534962894144309792853381406142538069282371376477899736105357701386509369768053294360453010001539390914416199405292253521471301348016087450136330248022511649773526434462095410582816978540339744454110807340213245017112599692093641609961243910057621532206202750888828452318450524405005619881848978071117451913446074316322912648327415692603874484342329297867661136389630312693610743681461563500253627946903204306650602478913841135039648467271375720230668432871170376215850303303717113535473676640887508845940847293297143525713261082116092969531965483720817547919152157073947695194370682566973012008825074235429501086159834910890971989970473882677343158493001791478701933885024735175984758611746313963627983260219207778609142908238316607763453215198241963451877552940609802104931733207970301627044258953087629047714273216299717408626956061081193260186187878440745037248233710565283790097210309471197357533678129253386628062206980975427404906153207153905868753638138683740629105924724703933182191514916230350657989883108348948675224896706716084685942577622852977777116756693666803403463581902430981690595938715441998706901403614570991936352408001383282063000738315207393814134447243392563225251350715592990160322573392779512090444223221903080871037384885499803858301159143575100503711664727160250964181392996804892095489201142049690615515153359743027337987352602936426965215798350774244162669533703714229244338747993987154590468584355185443149313169111302894928950807277834481778147520411328290229895941241993321093223657116613566326617381229646626525334123975522429306655315952813363888220177234359816206062438953657333615250399968822281681037712573217727221975546315019807921753245227896431048392391150534914704471403930863247939476331342362033021480979299841466046555526451069161084045036318215898725893297748198875022692068869316283513997893871549251172484807673460942214924327738068044361871190436995800661745386021821519354944866151123060840130578396332398161758569590216990113117155586831441541134726246621544076558747450504655071244376941742881684393473266669700550438995517248362178626817118850766809782501999687729922538056401400256460680160566536865262255128861787105460294985059461257824535686760196339474469974915101130739124949533384898586030232893390382922905617986532122078854039886060579727077334470992053591136763037204940413129895551845818800885526870409967526237274123120216364728305040198810894158287995111109221565156503816215480744675371661807402605236220442998456136098317399098129013350742798774001205691123990261174396580756456409625297451608949599834909373524609259671156880171832884178064797003465923208673089243892528447611426651213425275329747712736554894833560756874527594819042515828964886711322840143985055139613889316430970327979982072404300565715939654852677760413404013169993646627214422065390423648461472883343514453128736415494215715469942979187344611586170033564875941787178710276468254163299424468566582049070880227641026418145369622776320339084932966304818178704630484048747639759649985853887580152493632389730841170088261733226793536423609171547819438794945321103521225004866180989918960189713012427663178502557707791120420890455328701121110081530471400357343498643713520003563178895207693926881787021366478077260381053278383436442916311213643258736550529196766901566784051608622705310323502127600152462624338422169002215244344623034723917384443542324465092543884447627178578629349216766587605835182012606867003798117624601592065227605835637767381085233500632107681764573093653276400499725458176130818310223725351780115071146463955942960214841945494929310860032755954388156927944253216852231631758686091294173309912381902569016046841615210146885820899760966464579308901858810143663702455525569838460809167437825175181522499380974543697080027575731204126965308846444011439945604555773448814227357680327030678456022793528036159631634733112033177549455068289061527324845281691857347439307890616594333615013852763348601875981792685732245940933437553527326112840227317903685105624447366519474429084996302634047764996263672365922075508615562201864378205248617603671395783071717326454796013456587473180726161247483703945185156662416606933876671469941461218397420852114284501988644068630391777871997287793187025658848375782748109010964756988236604997760075797894464065019052581584908120663676227904450822799239323857751420679385124553163139326066007767993934001605252248278873945075833463287376808757919174529860480649706982498562893340881504457707409540044785841544098681284035925584331493515648360165197817809994753097980776650713488875994336942798567227880340623391898438423103413766849438351270725164727865464427532522169311765428055873580171831215151098696646360082243959725325204660036261409990057163630312560432440985158504239932261562542516748764296144029639838344863366753119322074781348106209666609321316258849087952012552904439008827726184974458276275540781761897200907250382429653675433678910799401582568042240082646332098612006255885042378670833968209564034070889295754883818487827203097070763498200393367280481647600345434835940353380736966419753733137842360583127236424295087165404715750903135039829789048322649784180304882430531279531134154618808562907450218184378676216897809291117393689565655484258125780754908155741016565143631051326595560024362219459136392493856508025457551844981402947647821244920707941601349948111863376214110468506798533800381281900018577251250204531676461253247664834359222008742223336349217850231465348881568062290829789820194212089307081309522588885260765473239644495485103345241108471960456545989196863892315041274760733775315240428899016833163541223482887161958566778016806969750199797215753848620037297647734333841460236818700332441686316742183378665408925957861166980020367045782362103070670351122468474330040663452069232045882926869030143045355382344959632145247679334328234020477814900759227899067384909905604565792385415229610800001757617296705642045866236149839177523895338503849629117459323984208041204681192488348683341639308658213408987247703776747330718364989069394669042059717223802215544963179930563392816298225142459433893876451714441741256053016698334663426507026829262963653044340479829800296187615835614898625072919379566072725190237949675069966755616362032427102427304755552407342767578432317084423628007046060019736647563716924567630502800213199493458020686563942484058479994655440132308900349161477575451216227607650233506742847425429444539782191832292296227011220320063890173411672944348513271792721006664769136262618571861197190082212662630424414191605750313752295493672647856583154600858086206891912679426825570814446202515106330612865112322055793662407776618479243477686920752618517607788810868893385301640402407354582420930526208847211484148888594624046355733924408406505689046660840178597750179045103286828355568762905502048368246785145645769089056542118512539103735152685496670757615751467532875293533199311147068290598943301312396012010803139511890301358207233830184380978879970901770529854105137430570432481724968336098066232218807109998873648374255022662915819895841875455204530104744277032489163438519771107596620267990685661631771539825408836849146217736764971321091545954977189881107326475022842045672597825583730034545664205333741811459809626824986381195786952038011622739136413021354527836780139508883792401862812759022104481634150102701082340334504796242468529399200462780748503404987858025383123084317793189394666619549643029859064122041962406674576568366399473570712299892211801349291222134683709155615002019457320795363032256226107264107859007338676252481320475595585218771886998445415818091621154451231663066448129496268373158430925712798290167730501420221459240922294743977589965333485698548190263493930689859250524181962019949197694629563243655923333086581009545374192730880837152037986232476382091821805474305285440023820104792335538105115279353347314681713433418873700125631557877487694035776825655991128711958227440057723579475141796136191404310374696184778269914580257997611487331717708123521057746195115994901940982872902649534901102992147301182616983618125407278485975083346006507791615551814972299760552361087356180065670531558689421349441570956984725752539451206482967000037343672206298703382640650760728035679673726637200965973310522592700005648557185438247437509480718944350677335782417420112236950151478206491976008563672119458122957242199937100240033845532678653010512425757794473013976565529797892012635848830655838654078732920666311060770754175859349344620680998296953894166288160467508854295495118485147885876040433940754522587281526330988658419629271498340498521944132504602720825876369576863056487400162748189014700096244034204178964689413526650373770774014068407331725764333507492142881422471911977103784518653697922196352524067459287614857161814817120988346905117915956445999601868226631846380858422976064550832999386657035252773792102399886887529532624459621945405020544698651174179481239861821992343975858531294784610044700165016488480995906520560255225126561178277993839310309303227506572742541472422545959713980903628744692656499766657035829752229757354660897871545482461858859215204954353540179543260889805297799207380488957501738487641277852692034373718226928298610367437198282521079022714218413687080790997433419946222716754779138822076460030216608706346823143663258640435112777650027875873797961152270663301342292051269012474225656531891092203180575283904341746665100478985968370886786458364918572566003281881731827105959973872753698757016574887874362502530258514887839428686482462065222832847888549725265296872039297832057560191949257500829075570611388995899503180248709474999210947007207569254456635404537593282123271675127909680486660563170519102766199114795571705706682291777295368597481637676664199118837866082311430049350671279637851053782481795956700726693919125313668412446102447839392427402243709683648823406076853988147199189369437967262507148717728581688123018307777042332200665374555278687336978295258445621034577671349851515398891918603067995749734180888582000806555888648297643963470495471998868474872724128212992223349726254972065856074192485196499564255636088366978362608705656511044201428231905680354268648221218978776801420730853928400724971516822883563074680935656618554498450908623765281228978594682120774054154199120290361242697438960891530978837890501101966829317228857254724161910745357696135997787602513765427780653151936776241568637316129516213379310645786155799102648030946875815070740502954169196109526597897774272335375106003779130842896144878832655524682739390693710008838176752690600844431218199959819062082410889600556799680815404301276291559420740232815410827848124474735996418199973246965192627197343670142310257030269258413562114523449038156076744717916211934350239848267348103536377753574080242547846216003497050971088535221191262992749669528010420085472223337434440889939146210394516696101670640045340966692054012311114742185817905848039206935175251365808889721667150798312260747707384126820983632201985178512442266427177023161082721964371124262404294146976889252582128364704600677752237778968145759980090180612641763709018744830670497617030568324218325616396357413734239262331267843795848526375529436667168916352380897596837454836004702182723417328596728908008004804525307444185738459647748668882936666748482050820326126054464663393752831657919219246214340733555704348883171477577625975692188103567291593750442593286693765415861805428538446109547948600561275326444243828534974879117901970427200343894514726924212631773035369432990413964731767003223300105203691407525381349863262161870697886888496814590347170927788722867956277840209606265767447739652952130339938339106609892218320612846870990823260342192271693842151919200051448511123502371235239280031259056253630164642542690370893352112328142150147282090988531362204713889561985337330843840978904321603640584948310498581586255662230401009468920925911011108527444123491452584143316960274860278846293108869343563349898362040660131244947250515397871351078889439116307848960727640230955439111996915250527967467949903287081453967547641829503152063848404623567987614434814277586030767408025007163784464664991550420056478275558625802089252896781835517579525502120125227206970882382497474626696295756208058646043560019767640981865040036921248909304451395978291664040942291431497822175346004239164303616535935141688550847047107331858828058624057805934699700517600697750053484763087195907297574512695844294315618462633626834841938781945467883614489561955681107184833006127569104589435111215215997166977439505515356259476258867346631924010860280950654016339936307361127136342513066334004792001164114852209221125210956509689330354695434847182737767873630796134087438550956463833255567120411966468872593762868336805147555218999514619046806141300421611057247331314309050830686856538169553496303784080183335589399979591337800942971099340320634272453274204452865251458784035558501669349078436683392910471493835631835445478453461048387388181974322849510101380246240312797232055656404924631285472697204743310861014200568785006633435198897506791855275597288061344337728555088751114435728398425865168061749514235023003324067403671207659143358078793967483747193831002231325771691657154255374124839031665382569358784424330079744664759342750951553479388854626049638621991883545822611286850557540614374698420404546581718378530856033026566098676049870141821438160897200402341552225310739392855555899217927476203924765439547913065610169740839114920281661769062660575596408059776616338667048246334720733562451474782899067695724087945631525732551365065959607695130511875286653283205373556285647501363805469922177310366728355968649757280796022081405109991719328201356327278593599802076487115448356866943802530189031654059375780090217325105194798641020098946472246439109699831456115254620294481248256951325636820409135640316541491020700528507085486419505026012287744509549206598680735260851488528314761637906257483363285381677449134075868789690444297881432501292741857833719834070634818632530060734817255795478925028217629691849003979612062961808240748081762840082896563766990342783395215882306721289871286594987228660710622493186713850602781927302601429932758735537005097368933471782236785077971291671771765645555394104120110557525002929161608306727239525124174289065890635541501883222943272732581967627233888670475188134301436479241854089504809014630631028322599032161317869081288453735262074447782274993262264497567212089819275706313393067035647633189746248936831720298223066833508791127157697841117085745262933430054162177591173244389866643039254647063158651673098830435367315470385184302177090672833112005517384072530608964442673153047523057676059115054747288663216670171353470992653100839997506150040149235882084609027229398111078406836676613613106081160978349937169312224110170955911200003230774430713815432694747643331457694606673740533458910540282086147190708226308051528148021553362903238231092346826469538919813805488902286844505598265386578785355285461291328924399003029461276173020717758006701020606683681400393690122858066680401331087792699532493113454719829856415233513921598997030359621674320661488948716463646958030831399313861434383161661951633998782229741316562961365628418225239742579277262789410346174995376898805589117272288647825599473676729515185692621865246517307153653364394982918348613749036410496639671925616906545739003850602030507431514180020873537805589626395289209062848902914776121052885773131352576346652561731460441387458161608825251743406025108648356588280563835097317138385269682181374810102497381292663727387900014264371648589366999861746949618439062721190473493756887373297935070066832510906891820670248522749844030052683501833964740376640090285200669275034110150517412322313441650583420683733451447714155350556852706874843628469677430701961114676183235491147591903055745863663355726616018672507551804924706441115756440073599664279519642864881065509087097475731521754717173088884893911068957962220052708088457334105803225294620059570500774748024405474735075398568867338587457345913452503822695610791950477414886456975818962335486888089927459764497379795781165294628167722970981724461145355533120065476805891970632893476283338977257495810208222381143849221585973330418352767571903900872531134883678727890796262703129626112324966949971331193102277132666825785567279469270533504072570472286711783967103061726308191063572446541609557765030943862195894606673252376597235568629365682589686081761679630690078141707124264965870458204909405461775175606711163910733396568596669937423040810745479228638738425182830100688108296142977639046953118323750641375013902330952195734890628513758417284951763851482332805974461454014867414363910576176492434960814859618070436023751012894103175146056729742095561589079202887456454615556963293294087121693633188030318188646836670393559878867115135586390879268510763449221676273329548302068388154531761818652080260489867259384208165912267626243610681808834148117957560832916804652813656071222024391586111192058844382789872968730680597375410585673365837566960451519137904995243707907858674050040832759825072884753954185595372328313737205584589480604012837438252671657513736052056258824024417960860278318697228252122938765301198719731640692603082818088639557022099840877081213884288790160091144641908516172961639589263203847438403060726511358580396580752273029093644395204118457273362184819304653020812309864190776193935763454177437183637215596443163736395895591229073032047100096583417201536454328428641790857130627404898990598498793943853424537382599651682601671837702225045889401331420918117254789870086029829689364798093469672515006498574195786403101145746694312789657537480767977656417937474107609122550877115593669860068041618113125632627871727355148974191871692697669083474682358539806965904939091478648978675959990772053451348883417322242267405251124936589721327117193476299650261562517370745243924227266924351393307737235609819639328191297591884237570385484136505973086150186885967319226360838420793978169499595030806007532012490763572768338795439116710077743666692169966945143849667004062170787928094701692243033364833419664636397522868015624970067044244976432003022349799131667104094042748761355910162193062173417740688506310958801295335222455085924445340653530890454902384034308570794252892825006114899304170992815913310931308285014864506111579269460009905501001105685959987939710262076821555987411994106210230955598875224823550665377759655012571013643920093472714886172410866965486056263004763345139802737114707176655628922193206510231528961499544409910363011275508138672927938164111245012230912170412358483505264555837927446260746635768259020522582562878772116353447527897183682266711996901371705372468728791892316188773733073571150826058158551364484270196881185494655198600526671889988297272772890650048907048275604686457055980207576805331599180931757601468258192263094153395691893631272927350816339700387959325252645480779600221518618102433855717016333591601023252264061244618965854387070757778137728821504981621580738449411322790300302661775583929209178332453565887034926458569342427928264714685150736299642691903326890502666744351024411946937827402750028483164318046689571260779179218384862780872011234560452420013967942736822031616894013789516947928403394565041478726382147315253393936064469835764965259079002062573484202669682145855141229192212890541392418148007968670876398937651781353103727474018052971151817695302620952205664663430409160367281269033701368710612849449876884991111568925040634653002502982302688834614600666320291974692383236101270444883534645097538828977293033447351825369121927235687567989338501891167927067334475384396063537640307834793258900287624855560958262575444892540486420226492379378541920293530225414122072350253343464980642101184677128791181589097926622035703501303194190049600026632786564248553194291010227525310745889441241553286863008913591338891347404441847363994491127669367091874479546083463474026817920390519922839648067910261325989345004029734124621338500723452845828166052855858394785921855585151306058909449601063314904928937161688194934930586119373967921469895316602325784071819949642487521333327997812982684311223264502590120682647275958909968811072066069986294984884042774725731298671969484673700147712369392344945154733076346095346178756713934934219998657152544123333624729724260388597656038129866359178854333392557279561449677161738786972167849496423210121749003506847295060871480109319257833027580187653589086928922463501650688839409493303503533273357110615988767141351180198388179840846148723092857420290851717471767094145616859483543413052637760401092469382426306745609270740034451308921442841630315566493881421753733020421795363231611954474684278409593573091907201399456833412118246979486458902262259470814216772468582134781311015256438238448067990334562283200697617013286235868381623677843341163781964376035446417068699103161505551829236341163496547998737534828220762723274746064628963427320970837268119236742584798588580571265127283974301592672469693600119489605968280275761201212605390595831879706600953357611224322749021415945319690790748823558840421736133987358424942441850055069957474224742947323481870715397670895932701115945909384865863423596542801660257730219826577581324117632175894050504325885336061841870021868192761028657226156808219787406824228320520413071489252709319778767200818617848520019041595868259577115807245484319306981930642551570130952058093536056928361494223418167543972495380460697521843035634932741398381691280707563866506791557571006845192209983847362088819685213545363781762920599565238479204850832186980781354797994020253442551150493111685008471140897520101269316273557253073221039568883288038117059747400130401423829097761700482833173305700813100648216881526321087052075266224435514819421472137623805162423183882204208434655961624150233790842127016819365009065655257202997875320528009158746061115421876229784216182027731624984150233577645565569200010075092753988744873679840875004791841015419340349743849360942692293558182614568710287283375686164180780689316558630435687618686812062560975845724062245274712037681409727760760118672959362772609073692514775186036319688647301217750455984757686832917564682277992069786520759255875679206202072312650227476446027077255231103001147617456045096207688483672655724037625963859939886551831698061335533040277846191861903118150837835347650741318643253267391375195086336259122367690366587512215227754549261181149065787753885476305947895050308498194805832476917326212655252021138122485598132895988058966689671017885009374877372252859542407121504811299838450499542482862796858992780055458453687262089849227496092770749925091854603535635113562881525338432764468288766051496014365938310443525175239432391078293257046071674497917436012062304478161237675353293918884743294483334622001591988844048471271535161243429894864456165630101257752697702944353570935893951033470079150608785252337895391971236795335910479337335666601732251165002291483106832328853405961883329698393390059713703407572728583594163000690309829013409983336086918312203510161978513227598743354803101161858719099349806472379810208415721362355069236853066789931112339285328009175938387279439992379331663394181319316186665904985296018307534354444053444324906165353564314491768551360215578242795956004544901094594775633946730942232906195155339138402657704834597409355942237428910826011374944948118750872423537894557693580454765915701114894718862588688695095408718966281288079848107188327081693257543510696563196125393975439719315853261239659735399580865632194106998821843005251968546444245215872799209691832758797861638840487419731960054226514495134851254703858344414878176275471585542941367367705454330379670725632121830096428821449567297181396488096521653370507911612894447751719241780786070182034306789101507478078185075274809517957645743035304740256566902455275487058429941462156105257809721492965625128806172330938702561956215678692801966800692006457167527521786660103442603329737841716459477270144682409575218100734788732647159366296388821264109507388136718903963715517706890636831528642317637995251214672822751180812278252823740806171982132895815074694179662297408367815364316602723465349611278781541079502141062036142707064179909672139372866988898777081546322435103926365221730933911765157431479431049329185619153993938804351446866513946781690306914247792000862585737655002345546989515647616161495148624118533320796369571617839163354392456527811592800444483647943474177152636942603920358528134598609870644032221485625163978715548990543001341325626917655929205227897116908259366442357002011545301433143625144933152629117361784675311348054192565661278168949451450649632699407977446003394671481570625447927528705426294137683987551413791678439973780392555618938350431325392549625265062919339375428799946042538603671972947487699160078259566072975963795780921224216754255558359736974562224548847697342709391198930475864880976085809916536514632165414912325676211129660088103767878518933588580153782299082788586144261463641170067550566203044456939816202561292156757613708323654431291959339525286026331162808958680306834350019463203279009239246672345553196404046028212604625767302498256726213177231712335321025453037679063075591836281789595971070844913841732323204071117530681070373295712980528294427204415730663274961670848783882712302523040189921301946661988220219502418593675495534969825140099311551710291405989066453027351238182562220287882253013656701969808694236198736788950265573254174759946457774991434636415083668835067577248865111531654159898522780772886562742324824187266830703902474733617943858082254609403458735306463520221787194856620064433944404112933332703100638624491852071042997942675241622031342575711846733700653080610534807225130737695420718720352529640401807828937015834294930945488849158764581201368995772950966061967157585526195198314535562158461557272753135525289421800304131427348341848692998355215650632744093284945699062274525710593849477304288986225012897902560489308820436300483635274418128093197631778981371546763776450134302046043822075445991508621143406903987356569028523648228157522729939206627731175780125465059550714121207669838432166452859764216268055339550233969830316789198219065404613432028342842465825830507145002558034797032106425570315928999769705947705702549841310439323075272050550698442892791514213437999258212235338647414311726813532933683789403836595363331485432024197375910428198302642237396521820919446238664256155665818226242841122310005908355108135165731405633284106245657180682921895214539086145069722688878341431578785762924485842676405499771962293685693053518158370568325974412566185403633069885875652410193789646996835074277169949607829047488944363443451826619764398993204600177647784654234208460167755129820692325445651412677171192089692531313217003668510526747800440063115458593701441460406159592752355444939787956204304181823227947259442129645993036065877790832168957629726763619355048774572741991307612023431406070334934888552895068774621348690722024101905068690887656706777378100045850753286522368174227374182487705461353689827376423288738833698169410491368415876270037433355167020822343900494002880388990592067429089114321352540398749586917729617902992815746325846608665435722744534123882000873375131976990753107631976614912744619440690660797157761965173411402182001701439612892130746723457619457771664555031873257224997295606537437985762509040322746884202222468359279848409052973734496114413789317598303608176339794044516778212355824827930448550985517883432376169540490896460862165824981465983039647571008443669900482302852741935316781498938182141443336904340614366676691264206068327417805908835084051337738454193052949744786381702262509571888000962213543553507217685586639591773914889701156073682807255700627781936540477779825972572038016643388245174330786233189946930823428381525703041362642188546442230239325634515936496085639175259988446141319802553387079893779090376465962570964106447314518810743461942028070564647916211740494758427613914996732302943425746409529207163756385717421377131128932946325183933654828234777731890724143548635891448066043346179413802554290584218237518734504516224087632704040566706376122763906884061520042487976039679930988906036083130097586753046837747742516676386045085366053809979125281485486300269943999432533725155645787773762913708741406556187968234061169463149601404508106540833297761173970333141994369014625913523730488026245327455362906223459981478043061328898516908113997391539507903287898227852994244792245974626715233480781815865267807276489031032902901613047235515287135137381029134507451667436673593527917598198667096518728389462108281026012645867305055248410433133899006305636400313438560649107419974534022122531166014313671504851358977832562376451428068150199378450406468651536801574344020129317540584367226863512931454250123669066932947478869566925537615479309237582588145362321333465667366263855625860488816383106377680850540542263145291346976334999516199794186620995324978438849367172828288324101702437745879105425191695634102662222145910723989746079018896608500698788728800341482181622714629619572834231811862491479032600267057977295251357748621644127500482246219242617149958115482862748578624288222046224187031192796739285963228432514799111268509327064013410501204593586272721156378374163207803213274120100406025312910177973400021593610755375914045972218490970736969079375875263790689564583767570535087766992407487569928677594127659407163869688277026904883340605770124093281794173279221528880528256179283935872082444872762758073902973805588046527847889041835622150860005145426423687015538919624515980354831637102818595893414688842109127304425224863217878753041622024268445624725607195926625279007425706476068651021759287887623353762618813052339945665853671180130894312200249652086791179965338094340934143071990012217311611297593561269749011547325666706357208863954554506610002305712390191159388898529402770578312250549594381995228954658989789270007003599921201750482624233431185372490008680302658701321372840222944246427911019838276427930237265915267463903087277834718931069795335779859417957020889463560876018587178672976243446500560713770280663240850144577522656950973094662602525853819050307690914367527808853661074922996768623857132483715350876686397059515517171570789803442672813848065509423567425347215972477005673361056822595329926694960457029020088254653807207944369856468337961713066195104473262843122233659747429765019330933638392837689880108244958676572321829185232371762841185671928578256944481275105110562056931592852803558068818525078394828810643896062445932875531136120252088065459213652500976485538188596349808728098735479648031704001697449440268472371339827581162741219199417699675355062461290679595154822983876709403442395963007624662379887383798833405717399979509051854648163980775661494017845035958904311887000759507922362875735752546418468000432987811865590016247719240127594052859471444507495442827834731004603439332801736540425823285738005626952319360725883948590603095570553213775782827650816165340943387470096936924603784860945596377317187440742978435936601896639089353005979626489604809191229384653058439612658607354123881918265783275783390851974768220536667619786747386005597160990294758905814185127602278002677264230510722263040048683397304741039445282878668100911043753027195005721974875363045448348079580772145420717059502298920708666330144984819248116903060006994047898587095412736043949011378031030323906161720034015054904956291485440862634171126774600545969832456765750024281823797238232593471867853411764448183438732158072281493004878839477515475814038539316028094551293165414253864521680277575719805470949227207730022925543357301483456381132004913097907007312753039059381793876480215438766768497556976819566715058898819295290941824366387431484456451352146380207237786386665117153836679522694819455115343843387831610396402940165706203538626515489225511211952872602551924527860356922671631713288506056319821914207329697799240071270488075065928753902625538099062692403777921048751760988822672140870073816559961510831260810915960940059849341919366567892624356857621019683728178835038631664967152615541712176540584481623361958595312930275914791308869019323320438546525422412946130900577491495362598558519574724442710748488492071002314078067493444279124432033608237827138631512063178348713592906946103802366029360030265996044876842367125487810412509022069858784739129890478260530655891218956023071409805808895234489033153521047575930530840124307699766342459242947547519814379966903815891148935304048791130050747651439689324191093984298222919227123680796985718486491438501381039529555917284426118991122986179528685651075636332253984140455819303562718762276975158871063938010268276745985726103853374855346223543822282837752027719439374825415444793529470825233578481783873300385204698475132705850741868006401738126736929646039709088153787476037238479023255713522369005684362353441271240524501302588311663973387401823914282393527575588636340277785825347506638318133761634553925514345457826868609296861454963651761119193897675255646799884104384123831812980168817008807434885988015832345700330538073502539867947107377259327257518894297578346793412045738076270374921373869868851405489339434176893418702273219454574941007845231180237732309531406505217508276648334908364628409051780458157398043880206479705233615461946875785762344917561482901128137937366619230201887338182364496759458339540696289475129103251919295257092926207549303358495405061215692380625316641786286870098013999422929872642671425528251247552374949456311185055510788326366697597005771375936063214393817127461712113736429024110136938735283503848053614693872292599253102622525253759890571511915047947131975153915388734128832143269172583825180098169253408905553876992843850433553083671033125652415270386204254631601461846019763434350385013045566976327036216902578544318560182156844023968620743838262598062213564724597347168795566405068431950608348921267000183940504459197218942403823905775620075921174298248268409372678425278572659108535530429680621420835911385917649506628899436397393853318574605505514072246740544969762521949639160472179936253550677943016982083122800268527811978380305492366959309223411504214177218749897084372580250608268921807342087217681189181595014956017714829816274745289021994113289659837241439518574386955703984629050274936959405981500118417221203223905965795791981531866740609505550592614035472578247422381475836679078680683498769845411678910848128509033230503869153363035175875118979222763604792208544273005001792043733471406889722085482782715554250823625959178764250332488342943569807504571479911668333067608898179381273447808559415332700812617548410767950900445728797750002102148799010126475167436428106677954205011904973024113709785139810137038725897457372703287668004455432182645295795831256944918279621058389538793814059403729544490886339210402475466245043913436409415273650179088361820640479057990050797771366459076568352895311225538234359472332409502556838818457219956883256029087320273416350667924930709627040923228602769997900350769752197967171185260090011439353752994274834501253664391960086996856615565863099242926149713337517025942713258017386300659804931102726040819584156357668009629570520636887352967651813300863200362076794756691326034687193349810711925099975406287968057478307615559113599894399457817745531573147122596324035303408151763633604528692229924826065703338415014965715039862319768715196287652025253597563939473297075550206436449951808434386920396944891699524095958462148776975637483800850142688670470054073104984879445661399690468478988637819692789689209485321842186772856171352886117525711293576224753031630858096758714629885979422486705723407422206983061693992178932978975787510528092464562586858724747386729160460295453780632102313173211160421630756339070039500380551998292740318087416452230601432718768365343852834966470896465189455499695360913401037199222381007278270951481389796414087437576453678848410592067195581070752046633569615861678668718060149089193148612733389856036489649600476400634097556713665454331987148708283224382939159686474546086277602360854675883255881896692856014982078721355396167131467119280086516711001393618445315878186317517467967521720100434962334389160910808347822020549200337941612584009167886763906086275104489088448282822931106116369220935267233074889255733360129306570114865996231905231837507946474032547963319551345160474081974231185773071726844466050108174061645613184082660125664289314960941452947763974505124987039777231920061669010532649041671691570657606265902826731794657506271901971938643050348680227440307276618058810637629947552067600345161951198789302551829395929475460721963733003373619751374684731102306399979577677206137007149051929489190542403843607904974642849255584492516429288634907889577757996870616314231783200253647150716108698512230499615797085990248538107666288189192216623858127426158295262866535882936424157434353857520992825669785719344963545325498791687056516017586102552164527050547819392746227726267395903022176629376457840904145261615360887619726135766348276794744805407500088503290853577376731079431225565623893428083353268690072485576881391367249256836427095709861194472083530267806002800298150364864703950765069419397572153576620797526100853976391329359868932189386191168208272773487412053316254552209086704633573815006312442794460214520032053370650456975112449344146947073936691171469207733315244515525871399294895625192020938302069574829080819044578510970252696732069609261490012623701135315618441917884892866264416323035180098477841711908657545570671927336364071470634422414337973355877974818828935959692262327531307767109071409588434831083539743219402238934403090418295427598552008353085838571100911325933637193470421212321839432690430758583758547659106213540532276526987126119077346816258102952962801560170680053182372230611699154641502032204470472249098204697134968395376819597842133304690999423098745747630461476142225011700576643589412787423884437646599630451175517301338258362928112780757948970129546930739313515972638888802563115872974062682300794935180332863085125775567917172178156185098465090550933206991063280600636342548618553700896287662575651868841834734046914917812747442819592775871790554158374467210622383413924472644970541957009408207563728623780942583319019112957618429655555555861688701252608048994089986215203615013900388581585798895356454233794995985531679450501029148543081425584308404140682532499551336466652330833464149425747179203749598917718533749761111970293271887017437923148465547588019092582375250103911410854668497888446666976851026779666577405899811436370602369303759337403505560560303191385324808729296363595420708497476916237011155354651310187427364189264922755036452494298261758376480912922394448695883638417575061426397207667977193644884440477299395620003496648473442098407785951382913857830972058943207007204302167760218510915656270712015530964396476613124764370398998430026159712384944609181266059139640261742280700284731005805184989746606634140273942265022581777421370061902619787692438957494664147587277627810636137326106276218195298670485352239113223311580338783937349424591117049967340585676724629213313921311004638979238163146166584725579484127156793015878354739477615319170294495074071199490214552408863691168792841107704830929201013767105394001661620448637918419666948294951311424894001166864109157574537779349954591010149098534282928209269255069642042500247287236084109506189904355232824955415593940671152568445511372433059917741729210263970984091569251429447588814087591218600681172651861612560220241622074120645279975317285593218679572331938975024749775573418731211200605220202525526947494805492763422389707628352254627155363836438072673904325944768620955605243071604487786109498550876121739709624198048037425716458070276204276942448923083774450191012881560226193645748739271722450857479587125215918850057834478371444421505407060095279154559683269346690705381754157622910879880254346994882186382930274795707637959706918828456753418650597472049793365681081329462413703625229589181109975481332716601656910160057753903040700627627293257843555681053592644686907850244256012271359688398515664496693362168138406127006278284121847577509354618542472220933264530904022009860560046271514768417693316026242691259387586307147806992036984676585006733535873661328565385526855706974097997161344292888757931327674462979700982780769156433861682351524398881942806108497496976195870650810538376653909695342530766745350543829730651018966113823941398454049150432698145065773492115364820619131068242317267690685675852047856776111149876719648304310236337640838401592509025085226278852717001127040275455083731402775185114798338984119798641659399975855320391420454383967621449337186584033305028977640998015105706081542874196802531237905833930890176689962538267793146597326829931962105292377941301131264378739244625725775969288825773319604159023714124972884815220088919392273998458410418704649012835856441343355834399239933140665061582135561325062767711326468246579660831821960829003177011358135567123593504853882488195597508311817186143720687319510117098018020303179547102980616734463997251142407759501271127804480360998257311537593056901787496324959442106789302866810795694337046777758768049304655670853935421428944576804649242664323663131544744281756940905703413372384623537861953175004351182037947865857922530704950945741374344775671598809738010257559676738797423614337888736679385731858530945890688671284316749927156424388585717150192367848276339025764911099873745306300957041404356636715597911066771584851041323312457698397337499465596274100539485078133220477009772141758574171930921665511314655765337818920577318060730109065565625375641631599676998903367081151267611020568815755642175614287567905836031173527265647300839462903768453051884159013002850304418461532990603624043570269470137368962884783134513704680075224026131931104089867053230611257500663927807538791983087763216540959576722750183766682264432884794042878497802124918756518297600356934522589931476955283941990652626131205888916311152489990213812111584098329414538890423166648884034023040939549505622142929980069276004471256900111929821621754803127036198809405927538062973113785333941517449385763358138937841719955168325948691283201474874997592479867966153656227595408056964836482000625879065422897049969227578704115005291187515868888062050247334892871880196760927142206663523047544802829919628472914413644431075612347487818037715852138640790252914144892901385032177610294981456718298919587197800541699045694065080621487717150020113287626033081797101956323887354356562769763193802889192893557972820281153464075719528991494690655230051028252268044391871112160042601306827758567066388259845940468903326175494716799926641205647199270963220837392248744498407888016777591668578701044250759530218549134174653011243252833294541943850393342679155784738113628424593784818087640868961387755412240517783762327590300073329957737361345159330737810323522820635650541357333012562260955306487095300027524505732361922116913940109353983953020904590970960908782801750174556473126055684308979140362408834678584883220928875656880299327940246239875084385974936566549467096211179348729007590859632883965240782716515159041515190743371281821505811475656276866856117146402287972030544795253522804889252923173791088078334270014956922036501931370307748529768253088098168519430810902766238994182056665662652659839521933257118487821554743692723852725919811533485414917743513170201936528797580671724583272699729811794677359811162216054162092203567886752170037306302308592749433318382389820915961132753743311704052790877066981088135775748836721790174734194362022413872440656843196380596225014477931533233923329314234833535684295192821182935979290433457861755267089173046388447202819757801946529216033007538251784702864674946017065546705820008939067197707043496115948463503926482371074993994573962124785064750873717709229267311623126914787446734389309415919044849505556812280301772577146453557205874893258407425841882664181174467018202634504094756522011360465211166125004560386258406386493892163440595530516842793010797587397300675353388648552902280964739988860356210029154478831076748381867744519685631129522841127763040924285905042883296546282499143729247376397602219727771276568388318987064038351914361758425426948760843237930274742917028454541980826015299200486589269449530960974500812988442897736262204962430594223301572785884183594058866708217012532327710988021588439878974779975937860827679740431040014044378829835888320193058779853649258410562766269732260743230072219434648160798145186078907749357640071610585563859309322658763298487458495574495770752413396999707008513707377677396344644111170663150748849105420030317405216890274735889428461399278626608049119697489203322248541526466537126131350041305120654505853245046126062237765907931825183986786872029111195081261765723409561012198869314438652625683506206022718643772226968687882890250747707203962953820715966119738644460832440590686648980118309792705471396373611059690448526348016024784457231619181982317156031209969766854294712415057520359847863655355042618087996096009122187141465989745630877247290560554422440112117287515440328968935056308776971966855221726432366373063932393101301907094815681710473052856106340436005362300301026826856986814532352349273316827792379909711073097298687936337303086681392669538469010454865249411257305747558921251450542275838554749373681500511413124552669662011133841923616436179756808262626155078159929635193350744652138037086628303019914755930549471030861715215494923031375585978377704240020933774125610207174082170066222637982818257781890470704203377381501687315375706856689845152255319410812754823899303243151815484631136859938313468870114843123616993330197785999023189505235166148949047164683084949137129324119040109250142361670180780421167251082005275348555670836655613639041874205252735634576012358739434757081485292303889853442737324557849802276534014201599017854799015431660766225654540789101527425528292545835908535169729068940770708944947550194852125903217661335134033562849272563830256387438875574506754350156687533769313704940873268909406545491933033177534465625829942238621951200653524717235044899631878351863703721585528507193414848841857866204893340411470220390137399345124682588235771180420509824120856546205912940566597012774161021171221963675554750573740299275874217810446519361711179622664170724536543515057841023436289930000997048523768476217213143249579157149685737236633980864249136651816455184432584576897703348278824053414117910411416679234457123287546625637779406313490338443555010580031940136173290686087699123227804681391930832338614564451289212378218251680988203318555490527650562716047764417238846437865464616119270599317883503833686141515870850882928560255838084579088204104125406732849924891792672344486761313041797378083681663166874123705121342386642846101835069609264554348566430071262490217355658605195838129180356607346492538309267839872725171808352876049873615358541343672866917214690311299924237771781365713101326383076612570032280417889312237713930023258665553159653605177829112625555779069476544831876059498428944072489861941671858807707449865328412550395301390025994958210949788764978667446023735766096304273909475939261241250014374483981668809638068829823269871418041238043699290229498606152689981189931756686194233084137941955735781481416587140541248061155853077066926787921203975801474159106345438668470908709318607743828524460909424027616311485817485837251990513073694604954852349576700349892894002376732991605309802937230519389941748882719599986653370055098533255693798932803139659726068378709897441914265717622548909972076154688624865696795065522253978249840560666423684605829355779646666920400315233269201495085161982841037108315822253280225947893937878568858521594943160368487953127201126140668888045098477240930492139532565375483442403376158507298218534154393534096217118850469346203983668566620033244920929708235663903874943858263521226204407476944705501844440536540089913241232406071599969177518557802670427619866700461111502677514036010282416879721469245518108827068503211922896250916462444346558066999320894515155752176306007712881388527566699166413277979982494663043818069778190492456145023473448216754312467971939029521274985001982211242974004374199313751807140257308328373784177790512156582146274326906854686940700687422781377499986609401560987881159348751983661409383651735625819018907875158452772162737997454241354999960141011103539801435133896482227041403531324772343285726376192515921746066564318515379031776516414730855717337973560845353746080333686473638797993272012961172555721360360083292429938926061955027191942464033486595119259172663478356986185223874009234677725937762222898200584435431910831527313950103802616546911177676656586340662186437148037462292590090951454479441991182087207192199491250519538303209008398292961360725088182422402272393500833260854295975711363524937545677727529996940001973929885674587624777151694850887014054624560107838253968026333330934121966118704681545312870617512816082606797972864307197560468800810052258920504925540041662273077734517853514957745106068135713896703137603835302456021660800708659109565465667577214699301391322467606240751433872456666103855765534467695455747302672091020189247168425302597159720373075525507318446147805035863992684295832574503325398837276952930041053670978292825820164077137356673933439685586204415349034720919139653159587914278498229337537376648543861208528775208325127676031688151627560843738552361223125705940186113539032853001655829752554218209223604855362986633156894183127096694093597521421119037546307245286249153300725836761130379996441153830431734144728109028404593433272537905760323043013503540817516488919219793474591683912154172536291378588607715282510582747194139850473359460442176881909400575440776331496389043171463051707163049646985875836578136126996262354724193622451244694231703582121656339707086325564537981346846061899314997615315386912127467858424105436899395594213904973280036738932634199103954488096167023137197861875000296961692354487454150326848661697101239876332324578410866401082656822244188786594393788691215865523855381858133090656842079971847377076220275117639806566752448554629543568079067431330011705641646437291046481888538420618699284334810008682968491437353352051383211799495657500688772838760298983217906389017623339943038667739120365592668623883895476326148833680078655914902527648581825980373054356610927735206012136822617790713344971621083786378785246178616753385707184119407297735644590797696465790387409834205792543192421127009940858746579855045430652712750225108819904984547884268158917013407943544333534274131759737494679204422724451505121881017091510106181734650903443775577957786198577683373624092028892645415348645847302793112409157831056839055755510719037934005699006457885838754269605275182649809704280029716492021581056750654439636030818108462473182183736873853846919610581332382704050101306221469590623836727265363237673240503558354504596414966333196195276897671407458299947901889295056175960448530821449590360103310260329489300688997392529877843799517989234486646051412547909547998236054312488085862396466912575642359336521608237205398773397946907262829626242209148508077920348302320497548913909910026019701116867475326375484517670592538730839044121459519260405648363416162262177132388999849635791636235572943935127734158117179625370146206468880158960622208650829431850224516349556167151902805646199862469461423128104419949105370238176822391202871610716349854600358569687909750972198651562271962831500248782650657099185845931208969603417110371157263281710385189735365102374619106700902057024408192607379173878706206078895233751928114607953383864199269803738132061308230007153323730613954435771657242910292311576003427169470333673299748134755011151272101027903092793693574376040552094375230729018809182602893815859443001955230578028839886934110401981254349054931898789080498166119441642792325912730565443882086241050274745309430201750492389351009851854402832429536021414700079579113216834942365984021542259443405572677496353200806927193511185644929542608488528462818774844436199741210393763382058576886359081186573569620431556691840922254015372702933146902186560963504791507947829134346404365683765285034224245104518615253557667827384550539716743099222052218275386311303441976501547363507422296505140968110353195396274597269361377244063693764800246347104428394126612517454763866802020068420165882815712075837980707414035195637267646227449731484124183223008001007791111966272467373734826667886399454956505527188024546283058471758778944287276739074812927312484699790207946154359514422452518462560873747496728980557562616751159600776119375743884587440055394050897899355136473196610848636935288310264433478330545794991482906171398866231122872359704775219949839405958486710384961634794300253888510023205476128416883286869393723446702632478533758980242964572322325168312406487587090654208628603205882882881163432563159762574498759389073202751662631645260442905025382337380048486840772431728143244614688760219818428496102697560778393232468966171271779700070064613168742886689179180799871394631025261188907027988599894509078856211679817227678478814495965335463808313577400092337646056124845431368925052605169559834582535640382962643404503200027788181671930014583957949072229579266465248081433281701877775489704329554231405818236325941249657577645036758463198056432810417735199875273299377742229606300403307577933590311888920159727778953289695593667887760216853833055705074118780661170191340400856995485209862446437692868162797870955817273609970504810836034324757501696778811519126129994007527781414835406689092761474878182504251748853807612102409612028196038219314628544830733052261422015227169912601756703217438418744979906352827820695769374532222731583597063196498104480474996586822008008559087652939105898271638892476988933480325338291140644101047307699717115454757105085949300698468089951590112399990206451368086269635690351261741420344780915550185696241815361907046399471988655323258670499029428607494138938782827547980206488661282176234104981277074786021030271424489074881898831038071548111884641242200559591222100699132968065735605833643148305656975091746539296841151745077888880279182601572437152583811243766007359253505332420337946404017364419014787221025503545354418545353531663781526482004583655155480135239073638127140620892068813599539688677707273092700234658281423653161780975331073275289340584505521499769562259716593923063189330112377649201352824894670400414337213140002509250811986167696772301641787028338565587051849467067071979413745177712119133122683616366950725650390537208961812967928325356300525835791820636409767952460484616105895003015776643932860962641289191846180086507776880676640315943849003928401477601696005677277252626072537635735119218930423219006258486052662483355125093070683025592302420868119884482894456071534543547045396568885679298163147177780826385286012318023950715403815664010167448967469007737546675839530987637686316859976516663002467118708874556404276876044332820061784773403742215943324418920257557485765047135710127560602298893809532519516042332630995664755584428730971500509301497686344976547711535439285023244821771138941354189366293730390301964667430393314660557044033271421469196819331947477809298833097431756195486610984500840151023644688829830358099791989956125387491831011499256951444492670344104707814411229690167815286909806321802731614044231907920098345110238725816731892979335720275720377868923136017256865713855810037911645380785252673462742250080881669145256612271643774754944177187929062335772268049199216001461162081654691272717143911807941735707675385964230118308817308378880283521752127627180849404381094837355155400167097493049714051675718788046970744907859279716122386945173792987642484077885621341248367008058407976269279719773463839501433782142622124909080785173479266199115554026342431666837287415811105632902339363809344399387520809281350885260882574245140652678434316244840549151980219333134473404392153748001602618445486097942586689612418665735398053945341276569257996167065449651024801277730764428167964154340714450478344463203899638199771992144855642651549981567117948151215237920382490593767188475805305036446408050801481129725735254234328610666979310657002543260851605085789266985844915414319921704692563055518445997160239334966817155996597982577438084041995297175583848708550152898484510555193794132606208131584946658669880803108764581067015851874275345563157456840868291267155591575084401253233834750461782126383829728540442976695936620709222113212266126740710007159454427920697877953283685928879261075499028414082454831112452644448209201625767259233726077446739396444058884443944784011670175942040309366392474922699349523001639952888807453909026650265752745812805693289553593568904033238999520661860675863183196484547409468666006650287132526584316952552123938225513591649651841369416817511459110615700213573657465241770165112572145820259462194752728463067560382240442615802278517839456499792780696261380124262958853478202691184370439560254836640432102340390871733241602824999055633587515795068134271255912614975888708611918800528852887911036309579619576169902577904614525337192554425358313554796958276866676206082597244476616041479800008538910948993600808970069537677494794238032522768487357159831609972235707458600054072472914030467118133229554920770619116463621314233451894774153719092984470591560276817835096463921677196586120041792240261380330311425722484770046820347848752362605567614879574615995323946850303487822910019418451029742444306258105788028690889163186656832637457926747160182771607890064892353485661290109749652732234810875689309356991930255574892149124076660750382534658623336672295938070507214609497894381416976896140034793086578002731485806535823055316217263950526043222728238394130244388377240383346040358793826886649272823482550881694082448806132183347972987984993184179867194330301771560834793217005109211754433681439665410527720551533463576034974775854972947938337261668154109020467062931426843640276138829973451219279708505684685958914203881044801349324717864823892762914945163291521119537015479634551293520080935253452924439899566401747308550171245211937143387887266668824575413137182033037031899615843890681682888370226958186839630403000194407003853547414282779758136741668087666000038961598742880180364351156821468345141509243458992026994781804363657705300207086625842688478225208586878193058502014686053858192958433163781681207893004958558456453757351356806597590590787506021443405512651068255218366815764744464750744093715700266937400150270283110327831449173899406145313518486418941846349817168076626687408278323870717613000052993304995308156335599673893532842838074385595519482763495638056094194777008630395646357791990642212897954015673910055063686110320009765024004270240109674977211866145178539865834558827312423168206046756701977311804210136969253785639891935850713113769125692009830919746427046473151010820545954682896034238749411337891841681656989869490436317825357262151041998766712557323222588216428529691840015741604876694872613146561329599072469449924735272042787151488805208459380043757959051503620682383802930060729832563187599270066798704472107388077584603076191727112245037209276779467167521591581676206870263602400153970741909184721154343487077031139338982299292120319047285890547876932764457802200886245145997763164699428172229447532565845230769694233680093686257349969159947452334888234390980718400239907076514043078160392593607832250380658786594683850304215356005632976849665884602621846718677540568718698220377965647204583155137951810693950552631809014576224380764395212790014546943999348581056513957474201934971320407377076895107280298691584770238934900277332217116613534739241157061501847271985876753235613489957934477690514555162081042666260759666833033518292153386806474224760344203207206997223348192006663229073085403594085645751446072181572712713482353176830257819280936573691724023148088004369666544131871785735109787264316351872097936590535445971294203430372020357540053114692835993243236613111889390718511853131786314553530320424433186514050633638924903055961096030207256317083725468433335004287944659456886974389870659902163373294932315824462023952894731146530396375680532308597661231727551089802731523212389978339830481241786665660621765672573506640247444833346863995354661709910795993530458597104909821889591523328489283020338718686318731390086970221687224621518746039776496740823171042404232899622861432053471064255123208040050924179609156083577644546725737055686333546005337866765523698035246191364108801975612943072651521083029135852745209435542805511271522853926022345319386669403692810731874782823216726720005548021055474350930813295523295595247743288259414520856210306112698592575445761254152904857848081224849220682391040314821306718969821753632627213864125924717107011498169037890981877748383042178149009548010263593395422435698878676851302521215741149971754150474019186562006774161434448291803340148690048673685250135432582272809869327325092133325032236430339398191881236147073037860095667341913970188001217102933278973703826323556004777052904443968676112807509070271468689611033274090798487728952112535140046817936829753933636816697368431758066816853551239052567381038298081654792496966668745458128465675649313080049701674722624202809535133750319685716882514267551260978842497474112311749444424257629690190786276382183101218831706632528374103070247925941398967390950255955273791995955775800119367532975810416349412395541826399467173720196765681980917091203901791529151080293430341965269061519791825319792450212897609773727884038732672364811923550069820593853090139363834416971547765039753126822041455613735481678927045302437088641088355821142810669226513982216462554809643253353238699116076201049470402270699243167955069664374730146581503729130010898568709784646102269479803629419577497854603494700462803861568705207102085448494017848126479895497733221269835896722387295287552306731044829376415000800825909397771091682580604015642870265894236059496058300402131244018952241753848268441301351452530081525708111235665496599966995479375631118960992683490121054862725534615235266102575824286896281203902471457584170921838511714547617894881883886066835124123300051664997410464833213102783500084324649326648645693393630874952959829363009602379312652188442737072116766980530676394543249719978375080682752793471200570847000044294852032910522881833082407017730918330894612907801559720311082767846976827095123615258886416043686702875873131923865319071597848830640342429005969524078264064158867243290626344956781677056268922004734686699583329091595482307545637730192752017601134559414926514816634948279576654324514580860711662800187937997491411287219693385262783247115194823916559689616612728996242310752517812979370654987623612108562037461091031986019404340307406631878463835035037961772587836850182307792590062049559562150283637078071835658907314730252239271008619650528525161538069746456274971753711696573325917925827005074418494191676044134708125284293016353566990157184597911372768257895567505676112530772768790470506345931637785730526758537297876836124023653478325311121026733837794606377707968579339741080669246830502759369531407490410358496401934126808839050829303038208720526997497151116868858530113680346476832346961541053742742134634497440055419847779671325169460577915022386372158110695984129354293440167520570912929921650808094403971370220951226872364502305341932930879865811768730505299827778472766038435375975492407700545464510802868347825735368853535727185307933164631881200404137216475320189688043978723453452014503510621771553381471915344728884827218241752666035895456690710836003095875748654425571648010219902089123219000546555246875159999078022053648171926524081389492969927718305654784077561282223282763891149574569913295087418427825178761597732448047455696957451078015782748203866974152319553844337916843488678402520086035725968831637482703920291249705536361066033223869693928868214329112157160723684844635029193052019290081869477264161599944211829385337569667371869783395901398412619949961713267267359825107475849343784157318371852571974372530031293030017423359019775857323643916787619902598647868237771187741614078941032354974498449996452586415841716239456401060311470949783929271037414975854931011070230575097882445272763835583415214087711583746703026149179033352465479009379268513912184597692749931904404150543944131060719534778537023145141488752021322417516905222239517342972758193036582458957246103236121745398705450701732749944035825436297295454938320856906932223233954730776480318914582410285733062076364203909525249956009287533826105294608970092009293404926677928590517253572693458374694478161298441918311936554744027899242856395761355295535647825142608412670491165131943093184098324400614941457031430934096369887170864235083288854696617537739801400838907881042227385421036579259160163418268671019801858267458935356665921559177306312148752780693248129376674193766492939422428054688908985366206511121122447806150827061920132830341568422509276753939132875612830283328837237358795296016593331798383558586090002191000719283017566808955375095659259240028497305993688661282546933467570881627449983710087084968147234604699390612292236003470286907739559238309338821319203989431907484858457380347438405449070296357644670122566019263532648829558314624544882936834287484768388865713077781743372252542833876089034694145739057240593125237989781561364560887729177431083544103402887887862957419273883554588572579557893518015157111721673674641668094981053585928254467048977781802154009179339909386186361640236452707860788320823410013382449902537353709201189249432689304362014659138321228437096012429483302453344796236698542866296600326024844521288870575735599650548043682737993674849307781926036885974150725087587841729250215671776245897287136019721478376785930167484507246793317771802842037099785898043247553680006173855827781015038372183582879788223471998589354948668066401955970839029249883753601120150701020762986821895214395741714076786392040115288729499180337307384681101218264584458421394332419952165527656688035672218724680549106558944078037292763748945590944319493892255690732214171022272140983967843693734252845618754106066492250000799424807205914152678136763342372121784742590787642372646712809240764142703261009048910245649751616515557581034212093411478924017693514213305867361387689881731853342237037682211722775428062034978965610193174344055697909612619750203792293681048538196770218732850199423385203956142793156170076193857557326179186597203012568377274538972077769576605445460749309660786092033427632579440374600431145660937749205687180517195612770664201574116087931854218044097436047628072028753916679818594231210579495589984455309818810188745141610727084993157013780530377805932872329556811869371084148646077184110219151805427933859182355874744922507688826741243797078746356031492924107168948877296230354963726603537562354158918097571634775827176841414578655497230387392038235434466983272743312122766887973576597858888789353297180997007608908806968161689922649113959429753305272620264562691425164414087775874298741424358860920749142402954275580047480937558159285600503845926964129454458250844954447355378368035201036460456087113283817187169007361624783366690383263916104819899504847859316714259629179895318599051490161505976009149195472898177485189889011123403240272383014527943053617530690086911058248241125950034301137482037839453064089985026170833629623400725351894911574791413142466568045003818515336300343233078390705686185304407290447735362874905338614662433058911508007546708208188577396789989057348151358235474128768104397616170934354211048336941033806314672946561446538801531667321837434952948310017988820230616859186259553011496188586110171943092224170799135014476523481443793615468609650878547051207310940273888223281064663587563750355156442308884926695318440214672034016936382948378094928759133882618507169134695137593713532593508807265344998691515251767787877597362014384723946319250858672257877199999269928699135977849295822015052981511079241830801170369302061774035990471116035689989883005346408317404932579689778923877462086942250684180465309754566703356628023723655273593025536941773047988559617801561697119588366476769382874164468443047354676764403573643762763398510422551780258775437752422199738315363208501272252769868963242763785256860434059598193471273660617417884525249949416746690967029480017821570173412573056738918038210771491127682391211438558359871687444671433953125952774859990565383589321938227718310010034775097869376374177839109698377149048720663414746997359216574061184850008824511352288221231930914510841796492991466650805642585820681563680058320208250528123312901369983970687057948806497932658144414979574079359902695372309508958725606842302522637356911537496466334568954776980057042733861951754857164006748491009496089401592961520366810833331870827046552168180254549406195103626314495579205258601708119136730389221766598877814582314863025248200765632606709211109367128896340286509033827501361695769808352090251751965298076257611925357003415760328147584785932746110026666959951011558525021801657230397403952512811983742208335476887379376404029298452817688003997339579236799348592217667276502924326122586745838916295134900193554363689963202645141728734637926277018750507683075262151289380629386239242899613263251856846024905547684883419846883205684056213575651744132389751109302493018715406551549659672478899551330092900703959502640906751119034897673810642682124981163745424837874190553534810049452884357194169271786156105155726529784837782247839106940612077175486907503011803435162471530636439906547188835494598845856333943246773848071706527690422895622053211077612957512334081987966951977145063708100182719352798218519908533473192097880094887841485244039639432640948016242362837230470053572596867657507645251445769518244196766299753033053589831086953472373396967061633337838712224600793945521319616504386951198384794798721559138448577003017279060215155324113814661756349630730269737874493470248151655824876461190575156461967670890028998108097997874488223394620702683970599881674669347195888999397821405595691431866724982034825042958573267027757520553629602938130770190566802019034777339539841041754836877690478090337569619547784350302755576159524601318665804561248482540678479449841746852527885827467148974117411484180206433489210985125774239263953348914422079148975169555152628264957024416543193613727268561119544765593819556094058315573729673930428473909774734188677385722673957630625070222042474494687917938765715120945952126836527708643203503198646712056472655561642234179726389335899327959405022657365795869311725769154142191846889342079288479841831849160936953374915531322006575164175064311727576447942839267042470394834857988646028626827578849267372159511524632532414850318587954667364158271523830816704077052802698487048744725300454785416018569344140640407794052660446395606119341014322797859427452428930565730186877081922271339969625474451467422750387051575154738362162744891370944972079164312325605734399127293305274048149251057390512344383109949515671906885392949389842331278992993245489713741482110823962432647310933845075128978938855135296309238186606643964465671243874694864694878253377090314604398543058480147419062281348922751636466606531967736002624494459098129138275129415681702138250612209816019621067591298061364375206986898868300654852368836998658109314091117361151792321207015462460471492920494947392371777322402916783788909845318831754491514598163656806328225152355663498129383111095168255502813079278089536614057568128714073729016354476621892104543004027807355710097353950991126146173442254933795820213104927444035632067806334583124332125887408053658773462043851180213466947886458740002440882326408259553617747223634284284924758466901370737799888696146145301076259918264394330624194950214750745852314169374007135713610517902491345746044575829311288752242411222147129072821329411103165854521477139740251831845313277354896103173479236577632682851069892082099205906466006025357412285746638287721137216269820866976251028647915405582946969416928875833789801920853359178686564201065890205818140374413100995786461175121375535452949145082362840478835449472808205014569063240469934447229371579681713487093198038477469912343093540941827632905169096306326917252921933378715317083666061377015863670236550222942816191954549480956293985465237272576826861689865912509301382650383133960082621129325493038256535892286105450645203801109596244082119555876570302428083289797728823325675723945805468545945802503779964336517096499051362618579683731758544247187523400010345544916524999825306384948394487303879362632265662338510621143079394742172493812057963806263736951345416773598629635365347616132615420363391253317629088250132651228516155312971645411936636549078813962714999179573619262986748980126976286878606491317213744118417059426173922171794854887374160405782977641764695341474835275568547333042607065748638610493584128013136923778565975569316175960797318601404240106567749544829672195615176943620512117632753639041931005696392484125058302095856819671613701135176605458871520543046612945794439354236773941683094419869801409368752787221861298904036517776541394483833813960944806966651176242252214621473689629187641416177763438081963061663135461723843597069279164639801270358624073811455734625564964266073281542026507114581692198469902457338821626157247115292168142567616305578871025279433134366416720977323206850525020408330738004234978952386934803839581366328793877208442086219871220007449050522223692101292721224214187701974240833334945394786189479887781879354424417138886956099779224914941903415760791125472074909411659216678603735040743121942711993099361673605882153123422880137341732711762381098993661848505166478434642161322636582183845703889559742247304590078804705381663603595189167402052474545323715966221486761076818589086921350310007580222333156930163221584038739489685336221940501156147413751338848201056735008136923120631805534263158544901197683806026227710619382032982249805475463791486930541063489271420354414663432100451791027593287017068479020590953709995203423157729614240156229830415769589318748271706312960672366412325035441004078042299109181219493637640279103852960779090557057355145821206110951818720510857688775651492656159847596233409026568042765520578988707300109241814954697138417570666571018144619512578653678824177667940138167525832931958207174406337850032702308268545402517762983354339519278445948253343492370255026882439818194176208284256067817989635142239163860825894046654299717080167810365487851442599223750224733207184160754248570579464121359760568638546625672834171359554607510912685597020054179746253733224651791359726732606415859536455740003235394515920754676980626683723003147276248421131863884965036289821128521793800976112351129687450654179092795790887026775811544713806295996016075967901494867403244007728191231604520416871696805864847178050044453838748719871549127586821111309503896480564455873822455731985189535606175581859897532524303298532394353399099094795724933374962966796672197619474211108568646526862456043985252715397878791528169183455562246900252264941276173363252565969301667788511059358411684337928386776429038332481717130553855110908572744818112861625805342832667001894478467270865051001712581185536779039804354132240963903827203916105926524030115523255747629979947570839153788935518208919352483599395442800904054948783165167879025011140956231000547004344589545882067576966101171102678478376792161643734697434340737213996400831698261658460100474554746890855154797585184998543636057590031519781531403919278054487483186409274847813205881730346275795338130518411410320776795206842008870660029926953387327145477726552685467120374214553833570693530107503815650989850426332074377766060088979288874114460459696292367033378336558859799846087409965395522505895551699871898460019161916075100750211480899039955030347871770334772609166043880508474155804773786711059464578981564662299236081779718424473752258693678582808041095552621083167607453355457805418992953301066745803529909892754543598817741326357027450598949706959586519293970416429666415706673095558505540842425811277990404947594743080147245657175164966407415481184740503036788908283243713084597193805528558597885576510500017695359214372159475950176685105708795318142531461577620406713416210015159774997895840248578416948930912084986964618299649053042358589258666344444643787039672512714999290381595633682282264347556119237792997003355692539713593493989644743850363254562182480522381790687149810918615905700434245437827076340705561798273324172099618607720415700848085843060317544643226831239008009229536880998026351675509969195021811765855666275758670674862408931503784535688517491669723364198514716195439541212319836470181638403949075306337334396396083894672161386219589720715343602758254104985775327134569560151792752657451548789406154269151905435734201008079192394375509490642625607246511998532449509306578994121972357970639235321355319250690473113540756536106281581584759410642639200303378197898118928102557740785496160325862783986687398318802146482823852387770533689643898791726642031199352608791466701070991349315494445256531236253358432545121154261259650287365759545423990678735879422937238793913438826332668055639480829794023617925885075230834865151843659825672911299693860248027792812988001724643458287517731031243602545571007594512397977873221327422690221671223383247080226454235305285416508532716061142802433359624448662505584560108215260873839761213171609771100375022882043593956861838602328541675996849309650307125560863961964282237332993622557261114651509998739697115933859458796315842018652308546474588329972629758573690271890605661618189212438307551227576672859592065390295656505080458253713972724013536607569630088225670856725466406449334689346607133760291485417782554900188111714300078804503299285963756610208112945122350744201067084713648627700148435121861061008483287056193482182498687675850124847742048241570081725151463955707289023364046633852019925696994156660331172436841618241289320383371894233157629353388840704786456978377264344089949541155631036485160971029212574223890256185081922271440192737710301774899192803414721724534423359778370882550898473085351037345849034993312152538124964928027423123621186073944128957452336832397793318237044829651459602904299139885930865590493934737864287894320468727601381003158165727197523702293563491772214188243616024019293462028549813061526976713838692289063981766554431322743042446778777833883038731998174100666273999758649384912634957393556280200771842376903848794357197731255411694301836765936973633814953226357648068969240780835271201812533098949081666431443019689101470240388329064919216659004232075152316517896955728752227272144827178980143510900897519388529595077196251305116335196614590869283564643581185226744714761856731487568336538286013652256575088716105603741014168627128298761815943982097947662502582593847863478623556567864808054596436802804136858330937106371263951296656945011193740224470608249996709438702690974887855969976744381524800812572976607516068358396074936530095806710470647997019808957016447358306098253478030921212293330940366526202483007492350761498250166907450419354600397559723493877893936281015209754320537277017698173870472510075784296375830847433891627192261962612668983992145835357671395595339333252660980029728514277355825162412444601625090711092797739247538949731589839318888503252128685090438259335176892220487899205921681689463735920222078637702364289576453830125332180631624405923103363521637097905249206837057007952459205697438934852253311014968515151878766309422893046044265639689718556700416797582738875588958372657571697723707518253650528742222623559857531270473044387365621325488970615854887896736358225472456051876885295603998386424743142395734501843099416828926122433227620161424500677385798065043833480695946122191204975479889452531135509179605754799696655330119733521029700545120672272570081200197902496307261867197804568946725354209292971714462366246569167761848233114684074252803872539118557052916843763019803756609095326121297185822454708664074786645975625471929633848451790137416029144024560649546387030146329568009700363046536062390953005335961675275034670950174371342835311961090236783776786388390579704174997669548796036420681275079467829501384722295907210194948203560850294875706278002870587877547027322727556058426792747583868849863662707869622044347975756623304639709992791423007361972082084082781646954183216496948339862978629186750717663124734251490372103252786888134390369991839173466406653205552903742877117631553886537366520712483877550777999287149977167843063144474189576951139847651794471182057665792739804039204618414869270376468571604885637451925414046003647656661637950452597206272161585096248709307395851023101224197361834453995209259306459857438701272447794545650336748559031246500839188546270979499519893911909917452239906492222369936200291393016826333999341945027036842591499281309071446821358539228663370668290905252724916070010726236687787986023777280552230689711044311131281175628291238011362183138751874302680527818702510216684566205422385913762204597478931124494906103789474269856177092256857826097775425754408432042531452511753989068932138911088553369353451967630591629484335802502074266325158940527289968485612727955430715724483654416016943976929917889019866464490262757173239361102653297584520591622482201019169867864761187058408217926128639027815155238445650385055810028991130257235870966244243889706960657839438875661326623390766822718666497388194743871213211961570835073256516261487251414383278778301869301909260046228047633779496368579359561268253848408536951441926472416924072347030525635896221700627953886598867899772438732755450959345978978046130047554035435626476963658879623311891588691948460072914688438781636073728480028847321532457983961931737073072778623208306272395183386983522544057885380105535330007880351753169196681455525618946643130332652962879013696995585637297436365712336262323338718190642752060758742891588891663453905005762004818581162557511227518165346208553299066852073997822845368794083651335845679873048960378708645941556022814420323060624859500867791140625998557264506820224773096186795841561396157123098370010575131240429087610147687464633222211421061399190634204758823771627188491526383826453079648193475392864862496073919007638949566796053772036766299915740141131020002847879963214006812165304461790621872956772257999038269409517471265202209089599911952447245731998175809801778262983914228500389733479302320365368327811610433299890827372295366263933070514013119893914794568822470127981472506659616583536642808739965981557820839122724242788134049065645810746237442534335131885783439155826825429141486392106748090344402163137700118044523298951911851561313504976505197123728508905055967244016267153838849958454847814394750183026385227191985692617389585804794315287420154813865226791326635179465471188627455106731990571535033966007817213679378519290640964913319134017135101288416928244445263609526255910404437291605507055447175557007944721104555294123012351739276049978833546416485417387943907749196520681795594690036923669175388871148843390768903058956352405837913529868440241094511397679911166032844739584741516646356308809256363689503513637957617620590926798108343481834510850035639023987703693062339579705514049520676459029214004635457506423823171229222199071334030805008065339294405667909766046279474876533339231529374697336187452249646947653435944076743883326966531493895099912959363918873100478753950600810512131629535234953439531590908495471220192139413448500294570668528293630455243125617277919887652949605975768521368020628880634646134777162737835745148840834913766320233743514148089828611353980945297187643422183961500521504274135523877476903840739471931764363218370016714458213472805741991631657245359974949611547512119904814597207338468777534522542654050267903813020300979017674051004932847496894463878746179541043745433157058247646575202929862674696700448933202456075627007043560201192036432807169656868274558464598698092901723688096573640668666045438517606188396961726350902468826607691463668261551939334346156080231169902466094366193104353065895762812912089284485551527620216910513719268752674829668843387802116265211819566189953819229810337470002570118550862545716190773788721832071427753135649958344693332724890513676814814208388363596473957067617175448386820236315710154430942256268342320098847813410043232136474522431903669606217876910602594915399643265041832306952695246104467679489807938087025357105649579675288374016627937137377015643550613361652455323882421254874693115436217853003749715322757955514208034039400803416978192293396150017336322294033525387930738273865452794046084636571258470672106362755846610577402262343498764638000935278261312869217297482832685135511599110943609618783960440043580268249114236127587358066999040083055663011260532536184838394182733768983166599789488850316440205163632581006563241046603301447597453518072202512735671369617503249045414437017324370731692827545391764268007789194194207704932350905645110533200468029882009326948281850799295435366562129548804209721978786865120463882601764085670205794365730918170654330967166336518916275365729653257402407155506896558570802740841847786671733219107145509756035657901883668913509313539117968160352246060793414175408287486207465937490942791681009221854291786143120295733333369571119762467994280666452437939298502174977069011667441410591317681764888088806862855829025491092962370586864396454214841566331265911241878269310225928772783946909884808851074767397074601060797839395046666821706916701944520567802274086449821143132893097418492123400801431108763766460439210707078574719850069651706547030246693053534123974225228590006491567478782294787484782246083883737774535494906600225576334782506515130439263678822653712895080604236028323302289855626475129365245665847819905665672828757122879519749283597934862274500892268142933207612574412186016525579784235689040350139682857132525858674165908512251539566346127169891866461204730538717701846746775517584259268005087964867838267812720759121894772565224402387396119747408609557982541632334995991703444494948572490798288017152828066747887100976346357387205415669501997458737040454803293615120723138396456515034042511296218572186489168637775562233850214375873634761715717781818909885095790343277623519525803462736690203030253058465422724672853723416266433818603434746177708628614371802049887204500112010720311180488034335646019666587629258418962206742648260257613601871878220049795856790941571132829076939639202966508479883899434094798191907590381926774775216959029577300586518863765706067355394663520110605604361327049641444089093130264117589250036247149749008112167054492822345217574888023277116285108957550273107220429971388284978428178319990597116941458442142789822664360091627520706289583348133611135662807565963112723649432601415611102969060544889553111642112474800381210668798079466287721925694931209557156952139441395726626438392932938222906565486711574496714880613849365379051887388112752102194067496114825553637417622087508964359999816391908788584683610425023029970008292492113447418790305617747044881549851625761623977694997587512518500434068620557880470810937212268347948968957336933458388136574141262237804141893948191944142367554432311798757518331368590670137942557447724336066188002456181819424819628847612695839763401910379780969153114593690699552634563577270897920618210192855806024638836795616688089191489301089735110502228901617005208056962378450563138975068014695241723111363394890875037938054076228966349448278448582704867097528990124748022576328767610247766069456499629193670510406594957888367088829825931648976715342638458091006047322945848352080016738392489681644930159558685180623748932925106684805554309873098481095031621146443545673595268290457783665079522367535023382090867810561241580401028252085374226231502049434557839313362432498868874659998687238315268288265096244039993372675821745473206058665996783174705013690581678099391264956904364958769166356100521351206530650423561626240136390438674162911705505148874474729837317715684536826388333866839733446329475472941051030773062624127815825390768845593526852886192047871483938333292868412085222567805333462395823248064096606273697581794607727559613600717878512248100584763748350905865016066489474119629432598117820485734359556196624020660961960262749614894738117341920211021479420361460219696541469867515447865392308719935391781503886300266018239242695589592745537750346185582488403769794811544856785946347316716905843661613885944494018693020939823566495630529251717492590031502416255359121465952661174681233248513436100396442842820474917925373257171094435913437061043995804372240455999299644441962295617450808396999965202613006581940161370893731891141124072310075738990167478853963885972213842328765691301863445147537841189914805863753370591294448622506476681714347394749245115323868253267878737812200859189426006461908662186319982618032155210235755410222109799143349982421032276753012483150287632083314394943889605327595677541954888893753728526914191149385671628683340991906073303419795906633797365289918569756490118328059400087278053272960841440304473888072028632141006644646599735502837232663764768756017426242389216274476597817506697853300199307668781584733111268387004331757878169249010308243396036041209798447729676501949362310921010223245463134442537512481238669112946475535082093014552274411090643181794351031413083327340577987621647172801598882356211182457588853605266836102022333289232379460636119326969957806614523626752206713667796724174479037054676812966900071067283449348174896413876742049886380045375393985508799571992182679148771656225930315353481657660549311290036827310514348145492102837152525884052313411115569325741185040217342616695307890163381183962952152347168535228947980944683921014635213795339126781919395331629167802159590469341929966209107962437976036960962487215279874592194927712107811410776256199094474375484225773698438872942857678608967632537202913563652423525225679215626585751165377723871515767651867609586247812385113508774018310013686446742745552962679076904442934662953788653761015411912949519783163177998106698183427243151148230776628015911135336128033471525349147705034003128541554534364621332954237067329654747096715739598942218510019223902376126476931375679471152669788362613471571030892325835183418694267860965040419660159932372061501349506353903292609982156087397246325321920208168788522354646882319114753148657498190374355801096884274210265639848384884685438299290279017979712387891590024903334589647638857297192523360341758136722079891278691749089990899761264526775001547804906302552991218885483586232103567796137119204664569223636803360081021337729877290922830053942419417742123834839437505644579718687085486367553340532772415448913890134475265030623867600151336994720824725000952977837919072307371075258689333030943852060246328758742488553761481385479416735442990093581222618085746546063352319614693718141205460754985100768683048628524563036574120408314220631007006903016600435622209433047467019655419716890548893085487158756917576520845455455960762445051713719727742867915938992247229048608311635015133347197392082139160177367017656545270413422850453395601095933690034930442673619322682218857042155487753958780949193372049092084380724265918006113649683010531278535781186741540180332619696821151759319549474038203769191808181171861949698374941913166951328437931027021580134683812454303491672530190491816418525453914138166165812808523476860923616613601982088155490607775540527865111408370147539420590110970886801627917508810100237546790100354620309688339898641017843471543752245297230287940050665516998060381793038182058399998291478624741399151664636869594007992314047300538426205305106974036202426944610121569924798044952278991080223758986853642438126997327531623131855636159005367818929756870824554859185351236363539277477008669512363465834699759794016514190978351574304102452621132627251609933030141245982782934824549620353308544302696725793578018186786360974188209908728742726281635004094634564378085213470476055334367608053551396866324766011768362192558870451443675712658120366320473510784554330975516086009279618311982355741157131377324535702866419988691543643033432858443821915751399463895159530466260579798499650405510653017423912342111706467564446850015489118040128770221258544155939760486981991183245346065978727604257609899162988496689623504958134796025439101770617765808875604869462061109846797551462950690680136416177096001196717773813219360210091243124522914422049526110254480578353632298336159365930311177698249910050550259415529485596276962320185531044379979846587615637456335377497300738809297596614728164943145245769764328446079302285821066566057583006241585469287084583058449874910596648893613507049845592771464702405571125295791413294677341094614253133436851277916765842059285687243111272525279197747199756461892560648453057708003981258754560170064442978403581221482219072804934468322100914935877863374914351735142565233640201108793879300082412078872828159671081321487616875288592090144599410661414886941834414973896343082460049593819974973019815588932109626688406099869056925513910856392514185759701870705568309586496626136221455467965750438494844849982274738337881246071951168628851114969673602805069749376988533033662319819205949208867479114581292646370949345845071556537425049488646350474347425727946863751567137672245927966198369939515164497910764085596470220783485540224208216891578095565630471624416739573659383562993057681287311424056938822379463353931013739946914355870439236711053392517827074423631238953111681253805750099124309955181843628597651245231683154901288990961866656321383314710782476093075692653957928266339838236161224867454097783487814207808839263519738656171174989429305971016676957510681511406812833376321219534484349929525386758275035747481594026819162170947371523306618676621472309899260692808455111689019440218739449491193517096716801063403779606125365214925001353124013211364602162571263929008346810673728505122737383968251107671243017755508546421655555947325654907930303140412193461785370265247968014111587897718686638520781502396330660969804894035240845781588285478155363605951095696047971022643650608873015528063871920492112877311871875050087582909454748725412154205679944366896347078504637979417787719541527881279787587102936417918851588061312119841005071108254204388714480016618240555166427755282948182262018875991977142495698606152734754228131398007165737642733325195415379053542773643580370812832484766917236603706543315758152933082805793409790327159240293218788751467762197777702394213565785217848680576472732055058069852035081378524198372284394048499287141973936103355331519994545759823609986817495658859742748473104109532535837202174878632880495755141701596188115152083483181609056128558639728255718576478938881163207027786015509825148239802161630395381808677997810814544474873261051449328775594266207006723781149635145114687509269852925604801376365247192787928896690675435797688858651010798084821114202986984869715793702022860349520870954934283173157619212709478581433445320736166428050924779604006073654017978695106393922108818202561190390556082821787650116969788722467668059287016920487677197102407539037859890197395081910189771056957799141269571851660911819155665929789400845636123320429434179395250403902182871241681447606668979923632765601823951579556459144604395336908341920880505151576116194363176469192482831207077455166921442445010619698457582062753008608017518995182475584576238909777806813225334972959813283762167327385155184688633535962644732396647439969786467736428086375760446212033566508367567069206462178177811215089283509103292016802012441903368495990560476435656340020307049558075299412337417590077336912203451209071984609309395216258761212689843560897166645037231554466201923332532597800994065113261029463034286241160882504760253907107382631553450213670480219869484262913313254676035805425282494860893152018634445290801144952919917942326135695918828919392365922291685380638074036331373608054092775567892483805187573639924224290716742645297317209661213706379912023625896381337279126162203771070908371659238083954684384897490785644356900597598188843080874069459044118192053261496593774068142064823894991078271289335111803702714355119852984900469562104112409922550232644262466636880913900109775807197781305786904516694816624441775004896646673690883144132382046066583321631219704116806174262435305511273102277897073494112820433787494639649788911407794893379646236717663687437287051164458587376720090146831701716441383318444795714282845076664349749629312600978856122568228783805643543770692519259627623362499306914521455377208076624198048584073744219780580370465413200401524650814892036009313415578722124626594306383568333306158196556071922253646608934365585675601983282853684310821731797426197340884338083779517949547788283884232777269112503614647716274917400597166812059764249224401118866064043369959784543030634942242185704081641131672925739873528885194400672189790254190158572914931508248808525992692438316951143913089342703841863858604455601801808476771514953873732122497066874704609879557832325735775708876055663683167950890892604352344727311602699708102511230044733304414081006994084998041069437080228377074008241951244012430225046216750885477464171299994550235715305271428231881688452262584111487363790838197838394266124341840549633015911375516454299152531257840239909091699996175613656548223522219731186000336134625047543805716641217361532255889676893189656799515024787772677691770557942433258646955664167994289752035377767101705625051256535003122184964707025893594762658993313397455213131998356644189853962761811977544898878497203654408217816768385972971131801777341602124339416112674340198860661817230822179819617689988149401794950691999672883656790118556524992445914763919966141558544642675089858263715840607254101349468709019091974349644708420923586627133260078999182133460276395857444473073457780044856661476511257795969262335743882920448180619749069033489784551976339690188821917719317764431134568464084845898272903321483964212498526015443898163841639822249904014089760490237498024481524388734223767061075886874465213675749742934999713565277030171333088143622824399950973952288173195832750931123060495050987728354025989332604389348204682896488068565021559707489434847005465485514613356883705205910825067889916782847138831771694052156213956576760925305895675090624372693925145529608037407850506649808076665362152116201587941282327490628801684107771154778802635073846391013755108966432123916377088935908358763754466997805325902040896465196214825011358619983264321616772669538505494053338834013476970583332428503733082022976029184415248650414785191456506159801405938627957551679161612360436871558788869388179175618516822125749978587838609737212096734117909221538671424560274862610770710761063038233164008526512851829919564032197713406025686777619982076303243590484152718895178568452065636477956535946770413528596816226556662649125543942960422285570380257057811450914140617190096153214251750014092264646944996448796431705575202808426554251237441578263843538568899491199927408584656987213740786777095683763592648054424231713374460511193787872025417321812875357470477176313610408068972424747331842720870535582122588791069817857369051859531625749202024164657553016657348567594434030893304802964092451338756048951513693107435532250768514293489551392921612323765584921561435770124434841699600747993962963564608380666617072669211417316143667313034138495776311196076824862370823398052128585719592281040855022947580945094381458912788090231347798609387295076309525365621481694989591862234074801472452479262398083174372750923829205842804688043189557643522380573086805735407199261915021641449433421235434812194256556194191326401050783143137384891624719191380485628077754364464490780511104577620636887647857089857300333818302292315847640481973933979970461673955875160702937617772216523503993711890082219633310082170792984167236187357199348229477594470320272071833044498480537434893557222255418039628184792421773287198648814720213172297893827658753118880573392697531533106191675105451828212455039758709764904946732260084730810223593468715635939486093335812287632191242927755850227514569162112018325216106800898989845843428269040143580795510955331741494527639997227606688725061960824772142179468908735976277397087549169915676865176531367129693571375325897870388545775671768188052814914156856464575124313184649646032086532081972139434697984922870208794831355718904878336143677310262541827414635717200986922570371244717125078179386520881590084649207262650773711561984997825207938203571140816169195378927632381376339572052886908744992126287068324266774063008174337942569939376564872659073546334710121103533940425226966400554159668352150804534229629142256111643057069625124748895585202583479547268791545528198788021507464813141409416822601947907355413760342584106488981976725962648915060712033703931993790684485491303709318239112150532047691218361860121028005392340694518550818736927681559159959292039377581402767606471386353849929936935328512275491219121136344609417147794731626156661839536766341901208818064425868513022404891107527193008407342720145608308295901483462452250475724566508152203827113432654950270750362185453550613566917675021979005296504019608876993135957937433424575815415008082849847268502549525052538380656048488246770298113315567284276062989664691592068516735481512910297921479194509984086684428760535214190706224346321331699472144855175518923717689579938713287859621455610754970783332674368947456173842976878406686018006011561895187998773092480198632141635876170994004756097448730466581680024004124495815313995827078390461032793668205635104066097976257055755537666328249913257512154130076031491048817844887463604309620693292469803603787446824845602236729494438041506527776454898036918604980191522257143352158410689317675776246109714045435478016445198666119663014700387640311865454566899203280116145835378582165884824283416437988862826192109659290197501796572732572053736392626776587168273299008895343134980715344154803887473234431576306597350145993550197648344849762727372118536639695854509156789079546989992334788499718557148037481435990319392556467018566723554735136211093312487014916117469410619831055534081579530927644935638793304247900978315185421904986869245956138924073809988138928415972922482928732230051098408282218903829778617870654796209479040536034534633561669239653124838119215880001608085098916092693862132621288157642515757013650773621729187840339351832530574528446659281944333242791614386138549728856055081850506628414296693612454147542711021793961095771163389761424607442979379272328937937113302031072594327570657462260068702035847881075974591339225639259516707185518180056687264998932957229299340846761927795066874762833909458017192274196707389841472051763036514440156696015501260920195958973379082241574335809652061519354685597504880176011484196154495402026691897440317950886811476236414472535986455876478443618042598307311984498497913110455794212785092540575677786188311052854036239700056748687387685607641998250576734899305137840695693322700708511901988582105961305232028659545996524182033679457924434382577335106732002999754556429589068069239438569400110689483605932686597279486678811133968024891052655385486536669007888102450538575736996394293320901554780183010565537143178136992215344774813471434068302515350988506693024373352874677023622662655782234394445853790840242658527281638272538440722687414529577514677135592849392897650663211555201124420141953533562136225674898238463081159061883901249965421375478584829797486828095823413174268012838483396158234609108000611212873131329461455400169903797590969323324097091825589076386341507481184986414377596219570033759192900142171470744284600748145288046709276578863497786705049942835874741266907695970454128800179080580683702488985811182926589684852449564084235016263261059506933200607294169587495550484324680232963236051503175332688717409876350620579131206713188040822793124562906241963305673882555992965022456766876960979352376994118336784585834057839432015623258364195238974673995911873473901830245587627461687949975419000246497061400833114564646083856569629561558453574982086248046180578910346466180249427078082325057656375956728785437022043999009298816789206204645347652840984705337662064728950915372618209782798079470259595993159738662399204235490709097063283998084409649334071308096235280941549202895378910038151192491562030302210601820388178246426057463699842661068776833719190143614758518925909505912549018212193708072816290021181454141636292443260009175903751765796440925886800085034802028028948937311169878542689674013311723182918940647751749216908676632531611624281194311229550042127169442232822199013317331201998972201559795636511165521026313328572465498162165646070057782505590325656645348265884954257965018086724044261639067515183933102655853261018162867651096884180466558840724571112010017988187548123624674429216079858182084455299478969803703002334849807304102606008367032016134603544260939723369006946540558271804851786092868552936914203239595716999927957343310956949101339877000871687872822225972189272210547261410238133908336957340674179268600928396334056322656882495933464695039060040064733047085325051901102494424430085751080846164936097614155210415671929062520155708016637705485783627396475443248292004581615059099175509090050017471891487358564910669439134287389164301068570978277749991613936625626444591361144636136556632614693444754470559387245391671088610785945423704478253172088572562460544308203687839157742098470716059908329443787300625196858645819421096556361252803595670342723628957535652210201741105561428534475891790051793650940954139513219730211742897440348296228863841691118118768453752117598871564514743843221392543145558730254880435824592880330788125830722242322313506363294551832838741427999058421962714101871966596299706753244521484904484457472672510472371743080638194123642894244925703249923707863340546138164210853307273740422808035116988348345960343327243093997818009550382133018042898945442084384137201084451338498196234467332558691251229141822786208845954298141185128488163952874650471748068303018210594201543638010300695018034554997621025000400811404562213755332502855006198952073361832443290900447071573129791481486881553680032526713822368677669883014636986859460482105981895555144681779634044255684531672825658485366389436027876200622025379514127758778058366259036970990394621041388907127977807613227829092144628240946535227954157802366906592760493146683233888571912629743447777735967794319435173935268258099651752766447865036829451450768765835492446342348319512288341729168411901322366120445849986251740690959462495806590397051632541638859262680129427293902707324796458436195875171074146586551410985634202881019167756505951292025423347116424967345334074846909963648030917435175083534237193274194013826777117516249344876085050428709135185697208120449053255627660456752245765229509201907321164902292091412055153310151936192864279296318547128831785934902298372995706809433864211606070307326286097640738024942936523530055914150355658106052406874556359668718002980190999166470508384076538071264196624184135817524058786972568856949686673952709566007881243591804206435145493319250582203211137153463447374222733622748512814181214755672853842888999723206299271521083751467834772623950038714205098140381502696021395987507629595609739106348006802606290012920666511900721477049456065506692196238703303421474788391235113045111403847206184015679841130967890795777459562721345633156491012179500506781008058747227497803773841858137730811107999919192541497957966708374095835550718132478488836066785446019670241154306930235087130341302719064097815053590177548392225610067480350187088134984046557253561361420124590848311093019401967438585070022529278172446285109177552184840540362168064223860628149956567514526007513136506458961201785936115110175731756539314695123855074833692693528253754728419443744781137165156172485570894348283423463822946798620647057492996638700075748270864171670279285339501233082713567464004618258200747294407237051828487283138568266863680405275250565052099363540520731836082441255513669424522379272846571016296975498154877516992877093404521880982140338551132679558456210492595221229079450370594715449070821989094533381409438998018316818900120271246233107408687943194162785264134772859367817040019636199721247694111482219040589112924515959076334068346204946836591487339625851709984328217231995962058416485827147858563078026829947186267781093627828023504661219175999972762455094440525150960063654044433448461889211333466063970007909378047929045377557756579160695290894103768414587743738730049408415685433176596998605166746872541979653374404656548135876407983329243328201807411368518330415734018165311826797127455591317798315375306884216586426433050857181745692697148474922551822216514930787660776979843543864490321490368782751870447558641538033505987094695061504527827694924530203974063232240017187663648825859434987373928424752600216642052343759293871178884325234862184841798140213137063403127267130637218422778704132529788760851109268846420910510581558348186764682691752759937569474749022943202647768221041601428273582121885999402861900488383963159914452699775821691474549705167791246271853347215561376954186726378709783515722314506886447274539508046321454727965522346253144855601356584300563645995942681389484316648416980175528462822026628350115962538748060499061809509523270242067002034045464561322481283786742772202967548514134109437296893174014484864377600240622582789582838776671753196964979117939963886470080639033623657474911860205522876160529852011121272019715455791693587005904401906665627252064395756956390115563157082448475724107089520469809398781501719090725883168722581566656251692710843382242546833693555207853733626272995221557494268986136653660870589061680136120928978813127994460259836510548782275638537816893790633361057046813798501959048047164314248723350548554887343107469684305172529046531144108006699410646231828339956363744366205827839978232816851882309391862630962661192950907637920009121642060504863259028132411187688699478488410836013695633500095174356764842799223690265549873239615246970237629788736977810721769337674662677632516409280683856978069642785739507181957488883389099263471839912301979289693003389966442105995974544448639123396590668043544544185841515844493652736298659695191363343007857080523115078097287967074355463356222062441659766998914005957832636332076889556401760724992220836391074988127303092292230647413274200456013831939393703114603464352572728367139873795464884370253538958432597200038057373249260525541235981486121045527319651532978833012761358363212641185416844866459340294067523730510333778871069890235597412857600792203871403054780016447683400606306301794929217879186989860706495170397015465004037411363183075974116483838623887988767785691149401914797303601473476089679600632297138199821813424856136349072284606419506782667471147634644600702114576317555625922466804192806324321643578451979064315697098635794122664711715292381173148484447244931408944360510748769086947870192065179663686288631042040708859797483950466836210845253779076119683192908683974275814239232195381499822170083988835529719750576805599509477561210141777932514263090647551677783095158317492203157936414327548289597285987483817977426498880571195515789434192239328937992593419792773208132452828336277757841208893693644441938044502004834802628430527984930514251141841961090320759116570454735638487730024175195615009328959527887380347409347800915176713682572843524820673290998939764297452885285886693011715037739368532695803070252276553741821781927098902461614076527434678613441280401128943933593878291163120935293886017585643210988305493257784177931112382341439840301744265999537811437835595359843653596972091050422780673356935659379415651592977059563970884918536854477331759020825347500446458321508020184069187343794473419817689557698232243819606317102332479604403488681836531780042450177161865413166220299642718696705439858652977194333748405874970429538706807474244307052796509201896818418936588257043544355791417027702603879601378781134287900191723079401684011514744276185177425393226882056717858425887765490185440096233372604617821715531022349990472362002742902837559051661033009954862916338436782156857542197006684810488173381413440790290983945786579460067785763518929672482510643883542105229457367798458823775317306203331471867789964265504056091580532291228603591846744286398615804970998842477388347714772408262970939213177272852479908338607798657794628752793021362274401411053778917915812230676169924422761739716465315508486910456094222007935613396771993992267938784559200077759555794907960991200346282409349021729804605139468219970175433830709191695254201150376770009975832547383407170868146673336364485828226955512766594705286842453492555445928192569394766095248169876303633575840492440149401834784763957274161144132136864195696936663811005507719379595343455792092839396472190138296465366677900847845349668667202713324084538680138607093506313244005547575991713528671381550451463544942942542196888641534882886996747168924497597179738126121154148318884540093386405719540692703353421145045118789995723361355259148044193370133571181208373528616514308435805845789817635882128223648949434213612923114116980892239584304043300758164571090069443290894747364140409618731276117174252010196792650304660635614597114023528049273835367021075421970084063302938694372800285231966560920378119396126419708634275417562206835554648057521475474192157941886349997961202815657301593537654447273742006110537553745090409314033130500203027894069209125205197023298748565287591653132668972448403808313521321574736548059029058896647775697223310769921941789966137076109777762785489541832767031076274881552410107473157233243560166201658360128337063110256225654172822028791550030708172407569173169594641205358887148529756920183995390031331269661505589212325694257681906882841540170176756069075327011460459546343424009400100014928705557635970667766321172049605180539037109279394526135938801717764081630955632529293956277417645075187650461791693566318147057074349015650538522919189192613637986869520783171486569903934278954257988610528835407217481740549778970073714608139225475481181275636429775258856234350815325197733516745706432067739519574004166420185131445806018700098487046749359758073293961731846806202815938456475572950517881576740700038821069957795836373854936972742004684884772029610542667086952947719803080238098520480668374500932010759152227182019995590046144397342979856466325183064319818140065248402337093355235515406409871617736463172417184464966962118406681489062187596109733210924868294483157042120178094397591529128509483457897295123344458694492906200935040715402828042088086242847720347658160215977889464139414823017970416944974158583308072733970623472574978620031795044879160003297191245209029052044595582474142298262765615899398588670799668883305408930460731571315615170176639985387669359849436716164525099866553482821152939610202844926357896395100550961753478635155662088816719107002186370622305971322336101167878788847264775153544191244230077404686261131878814716144504410519832021737819742226026595172096017084975334257125412948950160581466539160851978058720036156996887662790852321458351439859217184687024225661974686548810141549876078655194873598742982475790811391724750226111549972274188296050310035348750297039689896813112542041445023848143792105226184505982340747594754704705850467218133035894931176289116451320002432033394824838289998238605289424466152403338501942717223146843532488798124153315989682188764975410102460525237712478907402170502191289825985297469400870766364598030719107950555149919021286882568466736358189583175385537218441426787771140052286991079781315077050731134962466968285945960083885373688054175274248434879924402724218467477722050708474770689482902497341970956395600910637351428496491225762047445779634156862221482775034675178850025202998842045470727387749686892297728971526591770517325669465835538543070804641412447238447280253979455128823732822330022598542559272877888922057178114205173672654955838991206146681531956509605713808842559333671007040512184383337282521478327461870011437958587608655791859416346660508934879164276997780996759075498365630371491135070880062334195958903100963591017350006404489568396031571985457286329243334522364797934031874985351686636159287643902129711320552320840164546345819164533264662401079867132111457771794347132293362295422059713246846971387623251249345592262863911564421595946007527079733413196858326705261318021916266989745342259726942429290123846144172902672456947046452909034820527743520851898683043012309776606591559141681646499816421471767813344784351190958290577192403921681722077404694733110514350306791175498402707220011573566987839267388244150353502856654952981390196330211269426894081866609268142360911915443177762549661943733968605243726877271149712458144430916310083242956171852739696043940561386691651334970106122328800971550293768668740183248210982843452658960809252567026965671755201380060602708320263005768578340748991983610266796968671925128257610848143865301990408216890690235552393667106292080815025496562803491859781548926293606141410005157972718050681757470102596505593663834229217597853315037615775369907470221892677142951430850654953912144207053920411611402396859661284971929427093645545486362645023677396338642538146734921701547314572577250138974532507878154756855824692231459304518020466687203303194637771454146608740642840048653512592926926209728945652131224611019090689772650318125782483817659421536837308708265340680096714139910939561095137426186738855700320144711644874269940189903422671779761652532624488236798984280048047920654182876531760698628132358847828741588877922094694016917539135138256299566317590350196217137139243738998796681395871754483708664606222853245403199009576587346249048126500614574885047888719487173219671455508152007719332286759062781435354004766983263898798100960410261452290297323925194787406647374025747688430170101559242032230331469246553383075516650367888685742461903071429623838970474873798744461368602794753481296651877085937726491580056599453147002388117291605312799607363800397335588694896938989995153462713944437054949554983307849227014563287984609364665389734629441440694873220645471389019370850742323162771489135995731563425789636440917423225259860028123845133122014018951945094297930343220718643781545638212209745574496514891406979302639988295098969477814644195818175746608135352532561609845157968910439804571574823636092884677142787663044025013799881937534178697431780313185872976393952616820301170223945315643062065855008510776936370852085877821903804056132126904578558278939841095711355964701874084317923124534611665284868442271721902834513373383236782049772686807037129320720594878027799689788609426929160356483097155782314220258726353926635482323385628317483181721402847616977412690108530730235837337401479385963348125290543831379842046016182744490886638123762325346695695663061894485965134393538485046391481196028210203541273324548292847882221141999253065051086225579294876907717243819161623998547936359110265473503127296319359690339430080677940291438879068529346620552783511970080871095212946280957899267730612728690858327550565613289150188894422897012706496273602125522114495339280285135164846387610567325986390910364519341318244974039399386652470592711433427503245243884952355050310241809821362289474979104987162145488881827274145836960811060429077706251677346826483658967694388843446341560645238045361280090250856544486752170261721224297532300165935599212452637232696632709751119522847525031216365590828498790069513070037928064905703299717259193340184822097318506027883684838023221686868753099723990779785184185398710566343533906397618542531229606830065558252239478870697213736864252387039888676716614128413767872422668434130170185387133792624535785696789410600489494146214730739801226947615836845458961950092690980327170301010457822545072953114561464283390076173665468764122795084393002806068086685813871464255855898878730175568371229142617259141884799608615394019836749721430855176479832021147452816871662522963608805284598424537143490894302643276881191873158389408883570737995963323808193439299576062077989031773378682340243433648371640564020664530963159591372298315282535405976895674094324694355560171783740528724456439742366750238301770757173812742062054665270714151092251449253158391502046944265455691804703813208018712318597624381234069392272695404742787168591128118110622512623676270977329660523895545521703964439100302827874195028356271992135229610667577812686572915670684373566524719011867998062243278106359179724949424413330551140699601030854662640462769078263123973262112643185465213239439082062190207468152263555093104272175770908449175347111327294038335479944486471635180069093897200025756192520463653772757412181095799162480300467356037325812202922859657523529296498523216574099955954908638863498443424294616454769694134164111127502857288586770319047301436117516975641312128307307671904298359426102293482753158564821999861258372431798707685337300313246642476973824069747176054553983611986929058132445474401803610028311912782284270036387364286351144890050122383854055412655679771433586044582932564418537622278083194358256206433377426682688637387122182969591773721079959002976766209470811112636608329873075720128281931375848358928365419524896080020511108112302982203677021604365797299752547541479082505183137247336865716435551667969641152177562593233491100037650425343429059224223519482192804168174937919302924648233843809761261651773145085762421843549523121355079110343779020851103595039965416423682153670329997369075104150740120042085512586007575263747657953791490135370267340424860375488310496108707147742938548722340276227830419457073345626336697068512578674713572095907691128962126281907726135586462968670844207529578447203895354214875843221957921028931435605850211994268111969819773771043265807783418451409759242588511590771780467735517099569445605570823497095117314485227104671486105289022161835051803117548167005214246348994464399793873564112791889718423618535869802471142405533437777782628153844903219842492877499604653712263547138418340179910375017861798226949061755493459766248671090604868756543350970200385171805216878843897435410069774849757270255922345015131864176345044620878809933975398646601222002678569514746352562925592461184526630482563494015066846205271682166280784381632332874460879129878040477148366274676917297578486973325572080290049406643478228739705543986353363571689805187400037142854512282541297120792601879049373394267084670631880131848275736071945784799504219851473886383266968999479451948588294702511201065228711068936622958565462065348576399956738203635617649439443383397828209954346367501498398954044978934169704761333978131912893617943349346387794173353737689135044897814896466065118444783157171363072370195145866269152593895809664992898591610984979495089119848654847902256455456114695918740515935682002419407296564168290570959202622650491692648038851092641319729941743938710922904829757844373045698560413526861137972430066474351766206883046231894050006784610718774577937924929318098842154077529670189091079997622473603042257172113819833202376148938622355380143840784086761888723954287327596494661905568013053476316698932933366469346227664019022214080481858208231265667094146640525330225933681192680019954330887505509875269940030685732268127279487898798824189759951979764588088875556644898962497036050632835313520852120595349717644637044434084495959958712295236743379976977820580875849788576867058079843422610879572838123279784710754596199431661149657744367956910013968328028327296701127699328762403743109756028983208244236341009523938658283020940591787921498223028860590090297163303627473279696392096337835467475097843612229321510955892305399711998885537345458744432335224129321517703767752958091301313498208605679202782034405607366321747692322179229830225842075179356533125036371685761019127604434677209046696334783608385841007130817456244713927326591643167878780920171226699386792211899353017556532046464411373585892698139105815026662121044499259596535869507437360261163080464147405604752320367703367046311956871440318879073760017651846031220964029117649204425685560783150720827024710664033816852981648086128866026307897722201515301538239116663180294292447441587067474382525847551827155939583378294875064630135344892933375473855762036670125465772241202572957652320266718544379953346520775532450941830495104331206133667826704759770478976315711583973090667854373312971506440691677120674368256495797853360130598872688412764467302157541417571377104126582961356885182396151293494057950421821837988701944134058635041262432045747488895927789901744736134341575648850241929161408512048089433165047481539685456155032641596653750935812205483521360269929784276086490650654876828439435374108535116467080267680312408834934986133172290879695369685519975772164959266986941963081296732098558990054097275809974679512700120507733371833910553805537457237031993225364378743990638157343998731482319611256193581044448992020743794745749358457486569736791654291349071380744527615073647697264815461160930593393378453483370857821657661291890727138357890208868275212876498095732472758997431924935537284501432150811830471956783313213783391018041376532340686760551245212996382409112962249268022210389017225977843705601690422658634247035811849802251590446893274985663575822718571392246464134719268949182452570894120567394341391893912932605041443810302544074323592270766740168792165638100847630165678698216706664849615089643610693844035301903058255433795123627610172930629605477270262074292342365516527913329911814358464933480323553156772906760527145709424883683239449689553940658802492549042981256190887558357062187205938507240606878052900531909258619465065999286009549259521547108694126391445110971318680962814651737313490160475353937812404040466202724341840231906409336778493051139259534825181105672658006808217279124161732685661820207694075246073570202482368297661173761326314961733251539909345146025307783701526772389190251525336525693994574273039771927525424822043213238506963624252877253977552906816765980540096331789045485051832029603100033668969893923872693161444292676333627758784617611754727699749109678218855713064307027082350842681159671232632381519031459421688366671490551620677025231168929748080065540159910263295112525639766170415664191584902543829143941132850546215565736209742939473608561684822452587822617499380956523530029704470357942659380488059691916539331100147068037967488446394374819318379442615720091473970371688522342004150651754048062508409510250225852124620030837857095581095080533815061165584534075887956756620879410119209568124878487554152122234583977024332471156824683157310971174220046064538218457513511823837217757850791535657951478838618768364352187571371068994642553429088143164592577463359875435749637158867817845983323618589981553316627289594710756931673769342123966521302880073999755679782465169115085945109691982761395742853222758917351199632921221292139331491704643888332826123000335973507495782938087824215142785540471729980753900754050092028191494490046002004733489222822276144430275413967152435749289372774720683441183195107173668275198859364941741448937061049971430498076818726563109996603217776447961076235278743876005602441439893064396293778898786432080035423356676924924367467500574093190371101926936905633906898893051256458440018176059182912791830948084063101304932706676849048175872545621179141656897481503167110743691561865755714198823488254674891462667173722055229838755640871920770955024629303039072804089454923599774978014138839473014634461601242578302694728329956062814308434437201344631162291768056441210364382047776145011769676884806455353483685431405377905119839197840966746842923385103345150892743898537724013375233263084229619316058634081504236573390115662094386153819757348542005943551721011873781339962923832084864554810471732434384795045151796430612241251774254332180102209497294737134536095489288725634421682853041010256872816200206924856408709770406659843727027020218537329797916199315838831500373097161183866189903498053011485013706252482326776175989432019089175945030485776024571254878927085729510591401099877327909862400184655256253096681241930801210473814709178098177044942908842243799850163846818918311955421158101590040485659027318371621328821175682584109845767646840218790996878971972215691203538479628466689392817278559859266677447262507133523152848697656025623165535514043092250287721861069516644274320812473728057217664082571988250363446212074517862582468356034105408616443324503185924925998488347681849287710384969475601528017342511203448983628802731956602608601062661241066181828389540202309739761618783395824714054788295828952417532363713153135472612869146126248498342132383877764035815814603524116754122475211661063110323061403979150184230008213096069587027641071871193237502952051650908476785153035788243759369696748832707242016771067335861637993685530113272668461400443395797818648662674188283890692289941871131601845778194780014815181305001858035713167814977361060157650244872844317834654895491378512751498743644733803222256326742270710032975113010869474637027697354451258739117680475906809328590142440263637052884600244669071767621153955163136608905981172652711774755658750099248306838173978940906932404130715696510528851887849244712035009046528529691835289255891782633262559117214157905391613132828598917587413161827742327108597514243629378932767508283044081961657606281875316662068159150292052143199723415638551476297786615568750662306371994831350821284402450621679637337116855672424693640368675656772312621079821601292141213778149478170225205591656721977461289371974549063788706094221507014122574475942678880669283358048070777830366323986437871724084585846311441559554549215785734872569070316243343856502713652766324116692458274545232856153256975229115090775700041235619770059050459718531522309243335861795226075567565876690387694660202160832470608300048758705332099222134988483990471812547187173400587895167470707804397241721073138179819654378631473857693146556508580872298637210393751610971667413863874215903626314940739146595037032738831590655595916342751782292845518645352397129063250632318528807961641268092166956661159601464133985500455785279332523504846898578865595761537309331783228675629344499325908026821375932661271561584409703042471097517313505221450303192388202211653550658629769701014063576539014452858740106506548225890541694290012221784744467092928737469516759755446802160771338359433742176872707924973751860958130216046903413643139567085575188528893344096593103040659316459024491645691791168514663585919014493571596276162498562628638649970750655703530224863064227241781583701200639624146529623409848866420001589188653156120209169245444524655647339819165399070729112255304825783565377332325347022673178356747703741097977376953864264722660166675286691212389494855691559769252111631203430915967038726355280070961288446397200832148863900260888577653879065812768585314100087284454786206843285108018026701050021124965680272165191743144600773640533639308881687997707660281595474732152839724858162011906167294355808348692282025595372115475478689601825577987577206511542194776580439174693290240377455995809650916862388637853377352439727340819025276154033012703816995592342821542791299679696963003589461975603050841697452530967615900610503537223022346051582907538358374887301457237818314753156155724894085493865900035205558655187746870895092787864584699357218443405959542468449058499125670759716363848238299112739375604638632605432555806084848446932353751608788334320025517582688610540694515568873913114806082734545436436072544719404239876830705379315446344317686195531444638238569563504049400832540462084809303541731566044576095206124986809905155610034445691349697887982803758977520266201601963298663841673795336012819207510987946253020829777239264431700945999075529820806545754613973863974234234694657471325049531635656528634454863466211532708048518014488789330062080651475641579477609231382325103420622305494005079128936314141314329468781900431494826054410336967029118937072463208048416722122539906066148516820839456491172862405878197247075210973999165716662801285615312412865154443969393713223294167872183320674093030478820508593164379751004516700168016429016601616506453489237553243466998938852951551593931920366884765332552880533904879911254156737693538102454588494206797768356646718942989269246778590768608877148977746093645675070821485806268440628114526115882598693852925400977874663997753191240477168830668236014040063028018274411217214716838739930530547212351630688206101522824440859510904171057115215616229731046119098447678313688572492707168564803046422441534563120265522083681457312844598520398166471067535744476975096279617258120887212048904368926329094183178776206562749437831815988917668435464355519151845242194115345985029250488293672384086099481568464489773039377224608080514784264864399498610418108500654739089323114885885465022877329106742871592891975613644249351818304314682187658674150361240217801280225583420343624652162163304010829176288073654401506861531770635529156423622534688090531182458501720826644053870818964064063460845502733499654789681854775925038732378994054375885436109837546662526118143303738483373363045089010339853813498805702748109723946310435132819954953600157711942858924121423901526667065975847068599183768042403707349120553694315094405359731931739977805170255066043764163428705293577883618673804043776136419424277845276188388290847816788200365117791262460948395761758569875937181060513020806586491777081182550498817383986364815189517862206287151519984814216977100104966703428764765061581268833945279189654762161276672566196004534316572204686195472566405975206295012610749206799008781186163276654815179765943122549467786205528660254809649679901233520538431438612566911824090938878028441197777875545599793132579418651028489322382828704214752509982730334427177328217160162594157851410851361536974169217429246316949206786713716717010649435931993006878402736483908815494495146584291171137555538102326563036168247083925206622268439049347224237467199202213114278744089906559329894424668140714147840262499178254799177408037562530436823653796203471662846519043362063449754204989692874341024348240582916069787544445382491800559523699745151708627307198070440134819828783547555681467593700386252336612128839748691923896909501759405404557416220720616828200475761646892408696241582445787672500122064111285828645678667709910192774603857946584204489428513036891763900572024392648293032728141620912417266547210932748513363182918746937870700006503942013274087631655926822261512792561678194647355943122355576865299997402992604132038509628771888222116102366641482261940625753842890435987695929770480860968234987638640972729483938907263837577130653735757906678046835778824508055029842343479682269081150822920790030600718650354841381191681663837321645894681364162481651578536756762589406491541307327010901790156882758960342012373367886976829501741830655448368497116229073666005442891942410618383483015548551293636921307381279116734752825689478589402888189480524551914864481802185590827223240872766970910310171216572802092782680693091202993236154041361750804019496936463746183055197396104604567877842461154579021032268596000965657860082413400514037562199512922913192700589958819340070538374743864845536613894311483346723372257921516777792537610495515014266084197234860908029571473917514299730360318536841855624105875739336223272280454722485685380013387023090186624718927450072824782893791891862334937861675729913851881924182423239465458786765289518290617199283040022360720866922146314903215777706526422900190422716538681016970732769985695516263772294406023587520570982824470494462316369807753561738669796422616395156172128387503395895975316140484034648064644762355589374590094958985035269501379448025466176420585058254300905010921226064829075727426372741710216646831427934292370557235937650074072574223742176225578726851072132361582482989084121850890474459934714940657731733259651959772164059634774159894099667527131441803437065248856761488782952964222574621959178982836957227745959944385269466884338299963524929907690856128041485100321971656995381748470988035138444387677906646809679683833917107068068997159555374224661358199380727394053614609255598448764802723904445882859318251284910504901534285090257708590203730763546113516958714301444769217293235745532808561994029774961643688298059718869311243783919290192166357122172799649061417046294897070999048175508623774750880039348905492002878009334220411038630262671405054886946289862872491187043330952474663401548335753380407441784530301884372451411810742050659598191194049757270007852513884879776455174284899645475647205494802628156808257549564613153151794941067710545442986186052180636466803137021384373663384813393194762298406335692214006492718991663783367106568746091908899562772736909166760697486624210228740785817338924341236711216485375887153899846162283488434500601185675122504502777499033286224516052355280373399280013707679407416610540599196714021952162830442937508240754211629008974157024126986246600433206861645479468881882785567827418602224332879424551457229581108460562789659618194840600369386204526853580484078048290290418556126667274635662978564393553448009296182217603356494323880514930318009117510231526035136907232012399713643198372023053291584516781982451639562726782649499217972045969568238668401500388641242718688840391052188113569292742755853162259217597337197256444726104269935385897815008941188352452349094365534986685962986356206239465499647024257812394958304793987997212307538952613041922765031311094216129087795652539549968491471003302831381332731990771296387163800822512519147577657743284946383673882288852822824310214560529013160655048750217068346719346132051774111310620234780449092200195873108472663790242477732916164048851624968143816530924900432883148222907033644380693793009156658025468267157171957290838257908156980201164557387771925110829269896152028768095846762653410767157564489567247548370823264659927849163855969182256588714862355614443197636340958488124568248128878745572413754826426952686354582837755980573971407822243671869364428044222715640354178243544146095242637127371897860378317325013892312134566149120637805637452345068774313418398944742668370905898076084732977921272056316137068744519469241065899070667277826644223977189692025223822405430882780193100676790323903878476806367403378352330514416537078383756513699803562891484929120147953779100023094019300164658161869935268379276496797231776631725724775381841584169290558599938162966571583653037789670414583412590626924709535516932750539484367112995739037577609092896633891251258238104318395216589374134216216768486949688300942094268080850072194582554584713617433620972196927789507038975631065859475847676519081110407759816391092917212319496239343726352236392941715315245571671817315449051015209139939776691167703779788165572678562287939876494208627206847577555866292514962800981834664126141881633996608894894961403058972478658101591314961401790228509988934376278565187426879485335204196191216619917769039763461136348549459352703194370207392341673471569844686145482920381238407290255939634563424201581480267282069474462647889378062964639143603179780194383588600630980196160859498132779326040621079908499227367366394558980209659287831272193923279874587925142684301738100422291848645466380463623848002532854850428215131871903786292811595933448314389170787780837486030006370289774135660064809612224469778720653255483628688113751945553545315001084682609440203944010210995253407041340155800555513993988748671581353925321753417445580502572488524481235824786578887695302282857017688385551094837659656788314309739914075501373052854773217528750506045526301323035670477378750957021381699441789490126698180098023812047774432870003456155983243248069891750850095676283669702355685775251218661907228403049327704321742449002729087679635143486903869884798364354892966879734503393925707774625770330764762166528409706402551266327270256434670299889448691379568385263466562492695498353829425302712319401400064073693379762891448802028038537812222847102044289296962684971215086559959232230470415371523602688912814781841741363701751072235613007689332517198315558391790455990696008389474348457014279240067078902759397239436349466638884814878126195601115960023786276468621554175654380701668538989897635420383536176536535872051210100054518986202790609691597751367646883130866848014947773051395315464064543934177498980575503297732652077944976259714777928385335966567577727513948320847671403868715734979191986789381760465204588309309105740274448869980963867215784959886021243548314886355225559563870862007631499398762918506432874997136386678114976338865812280608725922157006197554650846928138398586601101147064481657855379214477232550125812706953937506105323591875135927673566734722951569018994772944113332846127900652286519520409890753739046059488326793802585938622984880466631776478277120930788002369723199091772142239013338046242676487320069514590596167210412766362437469768740468957500490906954177103835840058235968594892365380600444584622243723206580346245045615423616261589444096489551732475414007857850425786649949169513163541303486787271935186985345815356686707472780966571839303252761597031966122336338615528811976673859889985528479554625633538828740425655819008134460674550877192133110262399237492929850440862116306600852039974228113813636848380135189428992140631259850327440010666979332397875573048186796750900111252953375087267431014058551273942440039405322945966517851084608197717770172835044149410484428714343250722655239384285989943257150489894720908632713811229831349620550071727107221330599496359384687720177816941975687165922895378721076924398391487628409748907231466866862308775077076189121627881480153710534420177778037297944986774028950535276083094422172407555063861248732873985521698459252427784170723351303173034931771092979795119285517719696099954530367210915582872712994375841005081892577581835504295430732607924280630584471306830909120074073815352362156564383010957289158064784008161756895068229191025399110200357788718074729925693971690916797729158058904251942559675376476434140001216974757851209990418108733027501713391726288392133794324558718448566371971529865648933609421418022512418887887153737568491801072504181400997338637258699740633196599472297196235308357018483451203656385858130491807257543159802175546962322620557227722227552527948844417935161755375669025137989937504762605371180964908025303647324505345982438960848658330002852894894408792052970086767826548153873187178819706503167926317134751430858586138613222006139720700764622600696364195449556483129963296386575849607052485509352566058180932547470485317380788325860753548037654117440433922144068480478872764418922079148180573090051676754026656332084877070137426547674145380951682477164988155999627615914283711355346308596646432910447090726404473674522949899526081542902420768156403306706218580280679672388082523807345126465722037055486269902893645072925954400749149205604554648737291345824645466139696578500943951406641254973304966017289992700950528742686309311845177680388540551059206873369073804902744245178879425817781296994343943371373734387414865262679996089530220673434830104501052712346511171710964394657492608226017757119104869323675473365541383014439133179505235037648568296253148977944640418061394467779664671091538599110265569403195645307146446427406067386487976870046329001083454301844165836027142315696721076631485326196522514246117580207067257245693339873059238662434989387577016883499886694746500271315391368811803421744524783598374340189686928523180625248862070172783220844442107406618135277180416553827854258246557684297225806269171974435180948757381947519562340018582800063139460769281336143145717229322468826998847790254545717955522556988922159140300227590784257313990856185304838785035112565272936230716123681274452566303521373454004844567891651408816167785004054721068963926362488997737990088939709866977334252798068462923651674171498676691449249489289460900840314070159554966880616379615755224981503943565034338740390261003912197538407673197818494637081673774615730394738510474875019547197622176646410214717424419332704672092449647202669060454189060924460738812645254357272537019260034112282721767257003763762786290445237327900142126793336302305123029508411008041247933046693522045164195583361477526619419906204505099446084364654296014686984188467235924671222560241680384133497790452263476576119144252965858014794905113083985905046369718676972071471237099295609167560937051690050125645352267426597993004457770691883056479539044751791125877258180198931803344909566957513472944256276174880247599126569111465502917345155718284434438854644446798069695331859188472436120822406387935892599021175525029912811993901110876766375153141708017474335043581678740924366284398457257667930304227793961815999200487819006772361540439368252871561675640569346700633894426569630443580003438843695660172790376434819404185663657510843234582681753808907326112784213721464804077563302144228439812379104026479478306492054891082438773441341886489758656753773375007208942763179971898882962877077573146361048359293409871141694475505822145501340738083122545717691348624469895300599273308280828970069743831241094947322814822033980359465192488015227623521760360587045664342836808839339991988518820545968832815952203710773979410056180217556749278440113789754871795880352989964286020220445986698786537472506990568170091107956998425939047375853818444040454614353520049215178035715714476406713827427360602961131262869248670324693232029851072848085965219652761662840922722578962484532863873312200926637860676002309391159562396376980529931553829524958248558110612584413842747217376337371345735533764191161404143605529702232314108803119579488762500226644894785337369091969160100978944006030031767179207778439698679423773603948570691804930884911372730960998607505340543659480699291364039193215378509958290791541549556745706369079497669084148274921447144761218984311977373051304960249055763137177839668990287131657903526489858792827798691981852667466961519225538128111489254242164354350263886004245599528231877030233112198897671497293548351806516541684021704457097348905917396382745012136685073697943971540959683094823201968695411760530041610814927699549123578574332802444824581117936230634884295428619479892808395335371299857568220032020894196851826696872573051353921542901799127516506566702509975445594923606719032874877532844071642788145097582317419176543824184361445659481983206249085295597883129554865402352137091676514389507933744684831725884309336476737425102638185670928997013975602234746918349372188089321191047805413713690072323535558247372407134675491074540272689068399278557990737538345556085364355907757381214072504996660692942995729380325611287781037802825256750983421398920378086476153376376920919689114804351813741033230704058888554241097349147917952208236965884909248900115450194902748891277755024157072584114729652240078562978014130969188345064852339604544370777750474704000001999747382017364963797644932446177860029012108680585092588734520442500378039943464726577840533887535741757183712943802324291059612329791702735450185892848673481815110877530776449889453516729025518640191192685654642411467444438166108734348265887375411221420354756959954642217002593507145835907221436495601055326575421237459437026034692757633443665617516983852173516526399606314000088112050702641892428716794754015740262939836228410731567268203270507805697019332808939278982180614415690202722700503711180635904275282234864698943035291407441962626633089798873903363717615658516141818211248382166097873007588780109131434596274871034444907933613983005811214281239176804780635560866764329424429890005741245581240250104116947564089162338615203224712553577965914458851908565047717557801678675389044102655433661073616399302802140352610623415578230205827648558645875565545580835401128380527960467139513272316100077984172940404654130665595173682317089915347027150047302935556271874579827975904212401729574785818150325618345188546655649365754496850557872832893030461231775803927776161246596785504915922380186868869569921974954457542863863573583425372037574863455092335055853021214430177243443129812142704770957521336253654236574951161646773185009170858825290727494175265534209324664059007796296822692557664387194358730735471311198858687355688173219958704269255290136691644699253073241442901774794229339519494194658091014145061584620274472477269244443621821336595867575750224884762923145245308865808607847646865470418734829194923267650201063152263976907629278693166240500801728153820175025973269319273594221812914788025006140606758816593313659292963041989377199138759089508425592351330732173625483725172996176320271823189635664863178056668272901056703965936316003725340666982326414819220050017572077829471123839731174076191886865124223440908806804156441777949995007398789681692725686808396155048234192102943199992189696132835588115644314646785906000184276308190562894426060182160331511943655897837153340323989199193524845088510293529979405534293753266092613036766257827159244467983736633046161628798305863060964063323279084460554896225923148543109881855018165904051280789671206244443885987477411220730888465785485347263357376570807276408117337896601896479518417113613846758075219176596466664181053290363213474829791433382369323576494082517337795590685154879873497083395135149881744376109000878195299592556142984922251165542606156179184451090101706866899336845238916603052564421929368372198632215423664248765165717462859493493364526409598831112850445189283082198544730964876499851768439412333861633492232451248983898714445051563825165444855030655100220906022737051761627264903156409588686475135852791215090173746512579788745011725115715490373260130982124534216936593515643101270658746512983940798269430110663114594236715404847168305555888998875882867183075751881305820149215457934801134298499759158515363042302479534951962620707044082196305143392479866264158864860225391450901724227022221591333175367280136505664019469181468739886673872312111507751397562772348672984619671234560714347754094471724470874720875815886057060607861283244632664454208747946776360049612135574186337351006617192511612242233049735089339810132166209583291322352129995178868069603261036455711202679592110742983427560121016838188037977842012284595283578682123566640430841869510057915064409725945177463714857972323786208678164484348767154945162873424931304289950430248981415623998016731345862530221740183250493901331131941536562609296760633000191228228849137536910811787565441451059386453265098089648083382555411826731914610243872572161268628740562620900619867590274713055211443957927934208462662402439863140612952904494018984756023324329769773516460065026776230348168501976781844490985257658206774502355339766241583441092231380238318391501220924203886320758583548453200953666880866234152048802510401888121232975453799613357931187083483585324982142047911597279530906987680405225295436035295307372438267088558703672919654566970436404871041019741894618088855838030266353332893859417196943170931282717908188676118246060059266423273884070118325029916427834776230038005713899985230817008601261251751406106307333346123238985314914423634723559067921127479491183534312400385448888217843510764148168511197515194676577070272730056615886553003134300145680403999532660495583958533808532984757890456617196162290529115360869432073331991852841741714447495854456412936444851229960501201294959053572941822476094016079745853367507869680196678730887940997230903593948577709398403751712823980242204007523665870849283649352220889683645166870323576584201476538328898324050750184549285717023982809286999150016181137541437155209368930854848241353930178598080525857673312995153539427451873274436975151316713390706460122419684491960669615717620815063917836676341672192687455422377902294199374614267158196236488281771334910458615442416511726024202757790341586202942050925431704988141533909229309036069377191975972899621006248552689261809669536477997675603402354110684904737860240416422830194517514204843934298620014143813552748308825998596863543676485134367762671755647436781929716753809766911986971305222740580763978966801071342422453440368257885701858209412061711802452263486006549897892459136754921655023300264068120435894730562924387179531342353710044749214590132905772397188363894098558998932388155400755890124714081591513310495580908606614635495273433068476644611689808369057833722690678645825882646674074715390559758531233011521453303606057835011800706397965279720974289070861236115549047449606556648140602628649785804099289268859387729217714773536060246184894975949137968429690610543289309406464909488835974389990112284149797311665397933699612937617905964476171100870315165147666557517972418593794556261499447172638553250347626470186123922011029913233377631339801188106223484183472700168351506108530543792577161067251348128338033533154011550803826560513609903334441173814333688602146408016398032953423622124052999055290512513403579664190249766659851255392310328895437024939833964478718923198851914465769642893461954114754266494997537665721824152486807477491036955054728904772990002471576316010734240952457343703406918394935219572574212376124237323806306137865457414489691755860727732757513234119327602748490816983856838996676519590272385031445948482956866532370553171311925129748301843927045786211922358115087931749115107910935740395059457151784993899381165785781085511529019767498820353350499131220707543660526918323392639296625337881780879597830615518680596063477735849124680704129997826914679097452095163289727538356917540713388764617702629695850548035865043321563730867218982488687595620495377370058933194877706167546904517343365697704595475269585206732362300388173521590135827852834905219739944793735053043759081861561848378160624192152433574062330869221671674132706160592207958004517534486794572755353438852027986143037755965020848694379057371864822202785023426075598793835928985419146760322295673621248307674788798984539056180745722952460327323201298933201918136674911170897711467253578935836803793517986716983149763798793162526837237178104041618469926113710719642681285718673950611508562868736928211919362630622459003707261761095280778273468001740434793851840135518033116018396936877090411835978448946186386255713776502279871371104395252859110821003887677153144471168688276506773655232142549147747805279144922848888185280154332458128215882912586927043735232598964366594342130961278181956550438916920770878807018791570268719438446316243153530359423442501541372353935519236109283281011443232634679546612373215612257956549186963906108770796256899111634475276335873305210439049553384552934504574769765219266440524224269813767721277802302433435117900513694542323619924820897931197925457804925909936594086971392866701197358439596608955497807295015810373675299576175936077032231256512525135784535380339402048544661753630532386451069349541730272488956549918201734163075663283069127893176962459962798534139653076214810693716374742142880124330507254236357680475033865058982408609979818455746378770412345846483756083231967194513224448295444864288687335974681127334924623076347197914489158206536964657324891332928375854959133972180646619784009614917093658393754244592774751991303956293655624705752682089960032342658628930548282708824024296620896466981237559328492519785861836537252162224375173607605483078017779109688269000280733599439243751526938040574233953520886089305692050298541308933895019534723527790286383919747018889387594754657733281740262938515148227996755173865048229954102560331528009829923011270406222532900759853697720795718202269902611541198213051314596570199077139624706136199672223211863988561969588800702366922084635133878489301134746271889866679927551648194186755979832980203046576529772362150091013313543120761672495601703580252067063598693969741280428924245330726267092963119821637564586299060955612501397845021072738414250336902365229792387396884505444188441548584816500064608875246309368312897408974830349036839615252253483745660321778561152682449628142812076596445201117052073536755575042703497181837672835057345944315409383499916853609620860648177154626145882232488741658109274439847054787782195127891385579420083283551720627796683987754819467540589902490077828990038414487957870046727825079326248864456380347120497767078507413130772522940732424522032291632392153886297332098438060558654814768994630596521611890395583124371822692272410014515847728926536479177471895688223441943638799286938103320193183637248781177013169827910984011141824245196208448263879015749847802853073060636013603276165508083362611457082665460756390809508192122612162626283476807497236767565042994302326825340342792638971077889392437054552008651457567073587643992543118568549915522383367770858519836596315208822666736539911396020983587011302564098480522712097237698257406512280710213906328549859961881735426313234370041116726940693062924440214792860595627572498044924240864651895371618748023165414717890675413959527173658141206316807779510515737397843241368541059510820446158911938274183571764835222417859419029763962356678990738410412144837517001466699754151347634193571439992060739238933340300228434512365642412301558080887385902228244526064303473417726355547562798147991596163171898212533720507592348058446292722599822813741255324474383981939801768702199320564506618221348323730833095506081150149379420580053759859031262363198499793167637486893653673844177789199727775209903351729265579469616209076723552799234453921956593569684889561049585610120030073617712154280351914401323352730116649547112600352049781732054394720397713436475306216637012987410939856967997184654718067449734967413592231442148410793499366790315588692858406805733359021937117849947494267752364932340143901563072065601355570949575768631578060370405834298103083048791813394951422350304037354218533872757149285020503327168402392629440101107212374564661532916834281441386519401588871870888394525083528975945465290392425546869046077873320808733853749892447661430622122033363742506961987737474135544571349478929747867481995720564704791877677431050138407646037238254181814576783916913591169939307334257783417976493348995908552651805846291434582666190889356254950086884506988648427476930279577998841869340101553765307670948484771259791481096177247705628558969264575481896461001613926780559714778727103326073906660499498823743726335325752674788518424777066449621604689531256769034998499086118442830332521422223440654611497585295931947002083792212079459159887878188201878200059033796544427586806177933357041845710898767246578274273367348416233129016369740900227594787408918870510677561751743996027147631029190627908427249420083080135911439516098035563647769991622292414888035058913563292214417737816304798220665701277552228469249627791300813777852311709115288123432797729287909253514877535918041424840978325662249723928111935002898286168822041135883348143329631840571884629841125054836644947233705676188820327440974504093632301263399766285580346786378403808545055463020754253980646068320146314442895945227284038462900123677719015088252792510390354959177658677118930826896470207354240133968386842879477426924311343197214619159861082460904671965036778726056363023387910253024325585813204170340598543713037308159115286663757197908374396283400173220222147038241910699652021330373942592497353783943557448333348370037132446526378026956654189346860330681754460127205821476369903860461937184499121693188616867009888967485859294165047334074919734248130691279070820577480743152476270993394404551640010463149421711860148710664321693926622541562952497099632120589074499265771339307204421686257458377742625025690981765724791602642733469152910399452023259553052939405467874346059275468887985944574791638721229363507540932374011628281933465927172701060724460393783247390736029890241672897357660995782378737309370466567229697389875335549827109996906432252270831370549025491170691828714641034739225573393659607066301562544684443132928139974594597185371549678605111598726289262420584434331924526073220611415988086316603483099541451764922421633893148359912254209935185150445301128554480606570256710473370356165943799393314934089961354055056742009025385685166303995457009963472138631129632519831096052243466136734140187208724165927968644460595465077929275133151970335355862729878618025789378788608806216544059309769183650806611463176286207347559843377638544979507792911740760112471061860006321966517374121259244565994720288303845368259230486506742786115118427757980802327514566688062335664792162507402084751985089549711184077909611057487737420961085997028962808690745898329026570305066161575810270318562085790189211098064785238421802799883415375302033698824194108430141384145828964307080506527201955261944915082112040179534725122045766580292568805046189250555159260468688227299336876422401137684035128005504273314564355376981737557562550129860940391235190076190149259443226701007947021312022448211490288642433246489924640249423587038849307286413093110849394173162844409374554047285478939774232281166311002334054202084263631253859117386725305955121145451838089208397950056048886084265738234748356274917401961678245467792958009687532971726358263791811976457708588563061311195469481946120019952208017020783895990662552051330440798443722732767296732679483286978012073306080175001040627053674393699795706767327888446540683485708545460938489197498265657052460638347988543851098560496750087023920215844819352281569757399562383035650105535594487744749523217719555380393318827562436675042408577753914324965143243735777921958481033593506794685139027274022966767809174382761354881848888867785825371373320239081372716387791408001560756552063111386009161460338768015711372572890873657363139664985346167654167472915894005313315403155615511935794571499338652729688747858703194962899206322978570257227931578420364817095539461063116213468374932409983095377928770638034504050865807049619765181830672114177194566099753525003620265602038204369955298456359806758083311952480371240985343755292727560668374011948979804713952276592323352631219717324674588976517644799368328825745293683555960234905026446255303713100439552355191276864281516108770312036906437212272120227425386703686798201347172646663837875990705402299327622282049866982199944666836859636950092176100613856535784853083957823966580261807098100293212822414343182842364920390383806619728940957547372363129465890931933725781171079604899107650612162560593544805012412614172100455705400075860346926564219214912644379600817165402460863031627488486803791878169925937186049030008966952907486570022236323672011613864579030016367271396334291553094859036128996217241939718482260440963837061856898518582757946608996230500210327011189316888593968235392181575450793864466114610816729103374976175852086839274734256806004427531923008425324486310925580000294114356684509895940889702284070620758082146720885047841303225195950002483574108921185049797242128754550111088818054912028015120721769596479979731154719503994893689029401851919973306608931195420001755410229089716049803476982103155371553440917386167848762792776342969243259488232675455027796811246790130413556716015085245639398249636840791063174208045711878659446525129195043262962980102450038489657511134919562568202884376839906473309357603829031046914062390901166079674475105918316370010768203377146787402809916611740209383613943686245697340395382803088345478563590425953093627960951284786477969539439924871879412202338292401193330191135045359350035860008733298429107478542522813560831910798952411089602113069342911051101538180582583245257521655511199995825189541458416313405716074435235842032099401910516502922185945299373661401875861805506591795781657581733218176405584375129255149974409856056194267803513982737661811805887259082673895183025141830398468477587219211044261236900908641117050567047322860146387057857296997334894999326410937238469458194370589973199555143898877621596843838046923168594194131903253751550504726656844242586997689373121989791692304379582322573106640080710012854120351271335447537039228315020903609438078168079107068520279242917963694623600493512059240736912272518158438873807685617760422719190098244472600231698164936253556796145741596386949259262910108935593465316466628627400221706625714999334109582147052844024178723169704279223562082832075702279796688830526876589038000577135905269754784281388419391067749676715778422487895033627564543767829375169030186159833053973310360043058132782951619314707363301521211236501253367962695765551294127399519337163516330902268721899724386464315376090699405843916070503780950467177054963867460021717682252925335022385168388175124768824154371693273947578108012520051278019372653857575389539459405017362322466327507654439162384608206394041104461070622418947472642470023801952052531327343103093946299336087975339795028948218279633800591799278742097298037548833502536169188250036923220055587166961018667269179380705404402363415591184768299986163817636779164444851370873926873027607516483335752482047804665147785771686990027814238084330811392739556105821383702354072921969843338863632673791885391768963714653732322602144432511708202186375840821132384134441075803271248149811248558705922441284973038872947503937360811764790381271303376690825394097043004188789843311275167171065190475737023768560228221089854963036463518808925577469341205803223558882710842421200259589400990434615685612676138165641787538959381952842473100955964356108584296596919017695529490200160926717076539848679130557297287657596421072295484693560646816329051806238473456782807651992417067605544802079611390642537707691736355245724551166239044635908660632915399457604975813123706412652441014243022289486553249865609191461742325035233707080886671916179494570070819264190480652702463246167063463733680002481091190097430144500430951679155649527131306602412389235267618739556494260243716731099811157610249133343692721068558771810551043769136904447819680854936665338001458552086987189426747063764971175317079486549188625634629707360365413571846395899603908013832572391546395463258811841015085426958625417777208849061022304052108973167965991645717627790429925171782779698874885319294416166787968753096576814983149925147918642563365204622915074153144639308534135963297554509262777190918490032450261553174665647334190003562650491824790126347179417724826997360804629437127138815608522346330956606178916112305030845505783069434286368130795330134106795607327713462140183319924736378858426780778476510852678620731564511440629344396766132732215724834990453212662033239773046754479652740736836908674782088603047948846049536220830854976734201446118008280561702532124947781308398426048620393795671776955786465624399112515348742691076694949399978826898266168266099293346823571578463072832703224828949156683894673901671061179078641962118460238534983310355517826153938233757673682946831356661048330894990374818831295803345167033821845982099199829243026320009030025893518781536055820335756822628946478937816507100190374659590360512375506624073051180995277795572770490288228532276657017508638386088102714985495829904149885729338532111291027534552947036665680434623188788962023829462453392844487212114078746026361816342521746383621804610090007584482356845458416281784535561982706647433749433013165343352412995884861067311940568773172835714052758021647980459250984694406711912516828370550769928517113997949383904143079246916712584045453621950048826881007861630333496316230189345161834338684671974218814812406615317055617111766710741755149850351538862948498007251550517330652866847349660981741815411916836741477858849428506214123522915958278080459644287948389107546642582759180098615430641282428572406599354715426663378548433413153680103447862791175969515651954584505302526608786300647576741884839634523615568733811773935505853239542824871701574299665815047042842896617779579141763674230533012953038818427439453771029501266393327573243223530279836328416848588214311464021710254811757313973010874609688059676636734659136899396149234429231453417348088982156003876967093535798976126351795428159796650286740185389486773018053445573854540084906798974354579864736486442053112359355757905882074532198948130218097204984614398910997090353344670017303001421531059101329599638412074846317008410369808736607241099406257913749529674338305905075542311843688615972544848713643799458534058966565789094284341808060589364258757208059249935134250489176812532567374008127079868363879252762936982895142936152963315311102452411241849410606211632831995356917131657377969537433278387369043177406196583291177970961943493476789971118917869765765599293592681546590966881842211552313236322824736973209444562851990759022028384285595514318009028994092030400295279342100219753064293185659542248281331607119078940780881303148474591998565250008226542798816067588086888474064348249272962213612781713110606109449259550754207856354042688465972984886112299053232386516144805315876001906945869022320842921540909433282345425607407334179375638376875785917355507118030436740910723847193873574531062850848289295411603877042367107853192105843261922649593967275797580231822436371003587053322772659247907601168547614927271790634107480305683911766454355378284870316239471488505337854770834326101232484196230049383424141119246700600984337144133924980502268455244650930702503671558255196500931198290677409945595810565166235401661847329179656375049066037804175754800972515915278922794498141257935878348322449027052988771271778883022521351184844051319202407192802488539116924051754931481969656150118987628883581006733134075321186345448622475895688244884313454632031677554841981841002714449354731951434492323876352855469520889010310330111571458781740675771272331982236695948266865803896437990677164246944771655344686162404485546084722814546063112706486177901693537294010275439166123791007278715271028486679853858686503035600835486663609481075317018024880749171352308063204426766851751687877547755891245954116483556174841417290409642087656170680657955329737764115314476978220065268819219456081431190915274464288992429661096311117203562548175985729169764044779739309227522418789056357531991677721147103486256712123875599578739030543514910353685691711865418525419321598925378747921150836324855874050703735670767939980404132757943574756111931545956687100096142287286565657866858578484734313296332235155647619787864581726731233701758535049399189125041122904187953543200143093761126592198617672913447127355999871158952236348021225541922409581255966300080846081624145077792623872497067681518624207143593464569654409668987268018522706074079579129360452220776686296109159347243599470052340473980031486211932268112580254755182643107519269628124617836978719028000980093027941888449001194012346024497787031243497597334707029723509044427003232072496991767093015545813760145346576756213253502005700494973653631220989879427351725780892485641132950199076671242459385959270721888169921334074913305468927905885123636845425695812148492806594611403074571253155762530984324877794865317007296480844254951271297127036104238255226713534390534249139340137420046620714804102454935346322895243104184018050595227988931263118775566670582006692074533431478834064452663193688385303269496636046049774524900574688731417117754335113720325087163496862184515977665327620145359476634633394254806131158660220753609177032827908923238047560936558711984616088758392626561795960344865151551037917717924066360112618200045263115412100474593155761480794102927373380391204551990194451969093590815471384838055599186459144156084409080611285975134414864599472929595880738294274228273453521717664008135440190887552196763076606928415553776382502497755789573239530514962180556448703077528300134453438430136452110254039809185701105439955188745477086874534626480506162306788022838836433624406944431968614638395641365029272320403394425485644418156591271439400486259306076607116493299978435470793653974332164150513520738155928583136482916638894130593795807381418394844477266874037067140053660383844104301496182900536471449571334047724588023033462848371643961391826203739396327134329466914382669245274949168093885678121241215756713754750893061268092897097648734716759141619785245312428967081917098469102933735791861295311052567957237163258168882924588298745779054340352616248649676378177626517370887857648387497214750731604169540041487645759267656129938304737037977306388062383299086001100991101207747599952487672245456442976042173227778754158224524581468108948137596992121853574210489216524660855237385494723647385913437204244552151564549076833802920864568977676898343581294598609119058747456522621751760990076678276809445351443092490158626003370112612028034671453051486622078104139230025287476168614087427774001179039738440702443513907855026705207261347094385563133816514087107581750814228659052760002082624135342374582000093926160188120413805768889692655615940601733840325858402177703419403485033074443905035008829924062160124885601634753335888567878331803898265801484430631585470105182145743987434457317256671306842103103494875411345673276929023459596056494286406419318331752155230989983008333268969474842440615483797006918750022811057086275975543497470031723055074822991644884797923108924135454195727228609166008064772698658068615438068511880175248007905588418266257200476086506650091584305475962421178989273804921895422930964713323056169250725928545984950133093487378577971514396904758629586490581378126641993808589385683189319102068386863144632275338078714447492458459442173332548876951391288926763733211675008819571418873049078910763428729559028929192479638690917264338106545184978803324575699587119051325727067594910342543901085311056655523011830596634954340494944941123877522621457122050254827007904559902506208005228743970912702404864164096620910982607127758118642507222016869519488867431820620130027323922574485031140660941747558637652965096793434427040271049295506586384078131106171816879368257074168000638541683463715199781890556367597895946515896515515877354834228012961037481343725925263284962504004160341428639514271831807295224359435477571097798521296023248184168091861183095425470913976379507314513093493085873623214722578690752854422283878885775446690596730207384409217460008437023075634326576435081110526123671134342552857858813967346966783092793151348385800046242554785956875929450067578529227334451933320396643652765483130799057147443545035485062913844634035061399497868530593977423440401666597968235605772826605779912149702080719887844478413316251549809977329732016567499916735884146501137053080164606603890285274077326833503296593989283254254693900032073818467492999050707936376984574367543191470416653987147656187640928928973225408832594941054508592666307795137481540741778315620312661675113906857310698061117732986748814520862208994292495638198054832746594730646029436484400715703382702844904299508451643133926530245261313306569098923090247875638884410401870298482299126054220534891826431150622016220286302513087433298637923192728205749789714100937565903072456845994166322109293908543129974255242357014348162176047315418433943058498799903703256789695536442128885678060467519463093968297553272916927965317305910475045776680835654424191304509138219504239491753275697440595829928231146049051775953592587272924435663046681659046368971273136810435229830693402605154255614877681433175831645989340358709990009153520159166430255003539557511445261327582649936544108213639083932474098838898054571313243855738754336348839804066814628173569751699458584203749874773144129886898017069420386596840762281914901915074789277081569078473760338287651467907917004774249357015736867030584112944152288666489567268727494019177076631880206784503952181677332182125353051579623237430585673958478720546268873408523339821817264874901564978057911731466215128502793004863659455713389607970827247833023385728395832109667714693362698679903435937187091132522598476764878993259754120746911808598080516190202222640164794723535467474232987865955318956251545250431470192507112278521544243312902323372596736594467061443441766094311630078365365186026621842715383714238907356065871669100588575312192793781136424622389728081465143632466502124235925265449231280934190188270072919459030285424218849153740092637180791433377363524984908184190868134770756497517343852749205880234803026429173218901608496042458892402128332417001978543850305424481267949073556349361706442032916571628631977850673779516071583540351301758438658618121740835962013844043383923083020658024687640602267069668840038718189341574228319858775796976357424122331654352675347811803679714582230587869349876987084791865869348033287574897607969351258896857459268774035262297651679615086927982595164281494112965043583008834768834659156128340803169321981821276248916485588136301207982218819628769587192239819187884369277767343437205264393075134397960600277238201383057259194685697375324437802862530065972846838412067612941045380588882673276706204701992674241173893023355659293376338109713480536624460141333450007131225494894497875074127704349266715770552233284464189888864854895465421556938405244011808932226430557709640718135578029980162060138890995792405900501464567942668890522757338171550403834807009620024492790196418544373288005325120378182165488764606213273174929640379930500555640145046216549224954187003376835345145510471400600779925730352700676594935979143413474994649344761752224276293460618928385256441097514576084461255146941468587258895390170924297768534412824342683894513861257731868931861303387745993149995095361049954621255481478303986434951247026172113730668526922271118467988060435642437846567255028583319601854444173737318964331583984110383358669120373751905275113079684284306952475313513048248233721532874784654225807504449922789642678252306046120317075182117290500505875321351494066916253492076723949684002634601914393164848117632422130404509909950966193053122597521801189960580820945563985252931366270724503574463960400785241780274576732308890529362232325312269878925619341207570039434370289103866012729602482049041715357237199066816755871031992331387671300615608811404874528967632427693743996457729414698966068799531442541584571980656579363411448929095459291314620949556116570487188106004123575032962492025908191783562463626608406135749515291405101636593006465829304406344614005866850654861001068426450430457683726431559386204757400563866416770338727978113928035957007989849271207222301021868243720779051558485817667307847287243734571017927549670794489610704959192547303261572050593300862357794014401393847491183256482309960620524634073409461744434062358923455358735788961079819031040426321560587076454885720271885089596177310394157452828870739001026627910206857734529621266590840939423243522681151251022135593563577174038911495565656381249607148844623339283722715977066950218926253754576377519112298834261687595284616132899235980101947290693369366812618323635306941323807005104130858862538731180425229268390727785344157221855902920390635661944331850326551149340065854618331301647158869276642066373461645368236561428207439805342444233660583644268552640613392838978930861062746228279541562162873642527513546925918186153600979435001825604545630588499887641984293458560446268330314174254745252920102039949502355822774846743280640748821784236905192155012435255446021038898091920015211920244629633565189342522709157206087506203538152329929116581286720963791593285197069378105754462611415407339207379036048613714719885666575390952167158782055540107163764253306978300822987715321340909521053327033156311402161121605842160697532917722012091783625631039334699884640022895138513369458319880105567422854174689867352159409344932479781950205154871611109549620863404249644301645364378924747044817337793590328075813073051918422512501927390852026108990494995676582592018605926296998244689594271831684105605473840818457996749778574651305841487637075895193840420474211836307483640193863396891028586931344245259854718359004461727801717675326721413340143311461324588812204976218194145916516284904765988880739597558070950433104908367177427234129405777129144795425500858065015277431996201518134535541603896129225482175695099814441080026527802406506767051097476508305694162654435225878176423344351408456330585860233230810899298777444895565481705178848842397555826967876378230232264565259754005706190401223507321303958086610619701716464467235642968780720717966520824291977380291544063943598380142040347425641194780358249826337812471610157797533992786473080061284409511392791774222321316590098127560059084117788278189535043192630904696091345846046441106360286960038055351027063262369391810371745142232594082654335654039077807511525524337877147196808457948812865923612298783950388959539744401915071478026736933099800899426695779106853738881039219917521841952559202373977880402839403063473948810881114199585575604436873207071879864642561411677153060540420640278655415837867382504595762477330687224747094503335998825398480051394058892456064458720159200664246674029179562478727316075352834933631291639082133607149998663759285620434656443915769509071553235944296325086139389519466339119255999197528752799761431125985922604146335437715630443803038398353982186653361880483513669671203001868141259775904404995231456285806666821165684489215992070172715168150604386617891818101318526940249902693662314582289218391463359417968136492531936623258589441796214870895127948172610277181245481274757521774242400717779289654561931421456811449221079641873616771226006336854423028059179107833570858355622999659597807739841143213447425745805750199987404392227647721633155232958815637678116531740655968178623786881483072737167608490496892383281259698726528440164699964298764647480939580875942815403849991713155331526426854649239160185290518681679058606847768883220915437722628029833251833480252509899382536007805039815304788804158841829650916145804576598195028977953701999708257596154829950239048255104912472005866861302879995127102637746319036119519587103797156581783076472249508677921726676715007356518988521788860258799724428489942101971504602922167602900555768106050867625296015318408950629079348701945074747787822265989427037118803202962457751215974148432458011267705630665931971528109796787652445217584023050589121316977560944615303166362668464677074648558956560442477431758969635972034597286938408789140593286782483605295651682279044547076057620322933036338385191211737572735703440992528993294120026613923530974529492367632546880657191711153508866352115784652367638792411134067645446255022711699283848059952078141802174049465187447427079068604795177011606247749281040574435107064923396656833185469165019116889657711910277553542278390459441038950409890997076011947033771969909133684615922890006260353254780216364917882893230023051068262311035309473613186648350901563586892779682428414910837362822056577444424413406858346799421792223894398010423519973354567059402095808713982437634488149279187312343805932177441765678639569745939627137457345496491809278079073606052557235957232711259467183533288179342975276131379702805826275532055945172659448122509501677157367345863483869718411054479490539846878683712912703208234107846613753660129711117082579984895451550242340778729968883195857626014176621219704373157065318167397609687179701669048539015630402733123767260684161635057547282350325310876719798448649702460576195792553359625793953825522707111157648407285918860112001983748804611949086835086632426857468305024708795022222812429274804767950389197784088360188769648687382742069471741068292058211060914933288895150039794268850523806320199513640678234729826825622180831168404229812938907064579402300348111883867103793022527898817474191848187737955421990189786795503672262422282234883271388356484624853478318326079746644316499791595802635094063501442329355762460387776235964606445764396130245599913813400852502840814599713308134885213231807032734087568866676946250480103961340571710867026353731598471278175949172660641115645709525217618224364074854446831159642763874060898943682443272109683392671137952979659914105233406560712477952946682147429383444755088051457260497621449477839291381120877639436215536647472203796169754835898890658698257601021495281614859086053950248880074535761561317506387241840089784214447646828214793858206043991292156343509583528500247758872715921024327961870761751017182972669795089453936018721815958820656119071691954100723111642257814757148555590480876663578997361717060135686490984175473091505869947743898447896886234454520738833791485074781626741880816169040444598416183611287589132659262194379091507709368856597076683861710270468986325105540570490949163878220975978293315991260949030718072652865669356393157711478828283193864879619919689679085430279965084529322646520532563863247902990768604170424165734418959998303991420254284945000036621082961845774335618081696869623727224912438389270251930926359538448152376434934140699001268427436225896482597484961257458784697247931729016629612250734860529229707917971210161808940087617521485158488190519935786377485530783418378919131070172412639007202889633744745546066494141078413762792287850814936973456281285084627467534839549074682505867979402198132389510147139191632959223489427807664655568479289632886356088799982207619733638919623478047775252327780316246653676424379016236182170998227550358540002753563680226033505447953426216896973908576844339022117037605591749309601312359609369450029591408715271334102160385601128617251597494003307253859588691827272173293757197888054695162362195891507752714401812946115344422266841041120671556542293355778308524704649983023560767421376460104309183827948165365076565626677593739533204343233018916705580051313271776470941488344157898535406057716496027129674338259390579069100173972643633353881614119207767849052583553650827043053272848319344997939145061843210887863094370644712405680477631939279687997281744293756365056274136362921683424767456363910239733043737380622955907878885547397331490514742534790007399717598132251680949491522258594508792199784733992154452788770229875278738649262259613003209123652422418736606374064040269823955734015270960984932164220534660944720882801745196159608494421688849490325008249894341051184940912658469781759027609527189423114869360115586836534044089598909438511468083190108342101287420593130509055961151766080458092209831286973336542797971313518656560878552156884725709398497135858106874580000303854290387536674741093928742550991141754269242130719240142567589679275617224639490771439941185750992320092151774978905775429480577670405340187365784298340245834809038436699074075482727163562009387321559132305948802145894183847356814146487531608444673329164909865404544958301610286372086682498271096834256724397687107193625947372732119087121430975485839692216377567339171454953971611050194645570668372468213913024662782367062113762209959198518028365702972948162975950388541215116459645944585435052019689700459937100237516117265229235255345038709755850977026779019549355754055474337154665121780905209085389213854625109250498042972566305559469665615690291516360834984304098121823736190314080695076562100672219633785788563586605229016706725098740423062050585138215705393743292652995759336307163819925362460178509600864550117864753990638010822988463297705011898868427101242598150319262601719036329785766997220903696068118900461771477960502590650003772091720738750823502798367299759999521449861609549351106356164824370638361468432719774435654373117334008062973629144341865548382989868726834312417973360568852560747387233340425829331942082800602644824345185976566797623580309819453364669958374680699276081833019807746671507090130404077534612156119727132355426069734531800537996511594927240575046317937986088698165387124599806608025495381472599866214523701787563125457997081449392018589244713688946158465423178615489483686226746890139445373890742604456366924423019988350580065931552107721131322599698403030079969841957419429908098946982099868101126682810242699190921419587109078980945860669723387868243604958401830746396973706452783593622738552924650005571669540694986684025858823299676878869077823466032853873705191285693718285918628898094240240683161831770537336716967542130781704090969870764024890782310922372711342338651814709017641275568598677796546542324052701119048081302620606238155383093265841683682888844501619291068055187463479756104805397953856890636607312932629473222896810653157128750439742012743333911025911010503064942272878032332257936668841634245561564991356795793562741808044370001207025056400325154469662260385986274206231839101302586225722361720537408745280425679918182986573634631455595530920613841136584646466396069576997424081709103204186932589787880382196095713143653902699584978724772987899739600850382474582094996970959364128550497927388774613434291078543438002592634327859568958121109557568056903946404925519868589866318820252919136264900537006944801747605086071730238091946949475626135738105382800961295584833200740532562421451536573925683368226274104607976839654400883335075677775089544399677934948873559584195577969162305652154279420728237685422010420334749897308476909017608791289257946628246744962363159611938836736359552168915940645279538670022785924471931969797468779711409938365393982501121662609075676219828798036270508073576370367304782221952950637389439038371738631009179321777457934413813679671160416503694682008819978213766492495097002618140180717074231531276781725494002173755719233474163021887608772239515612303920688474510347202351659769585584911568962807787541616259449539328752867562447628415892520914695378290642629784188641853005712924863074333212753614282238735217785888675703882403520846785359598244060466459030642944745143378340182251177712662959586437697798990879218165291904724086850816347331030107308892105028622873997542477328294266417071694127353121926227832099465843820972535546520873426242629282446585963922010934469574353869469242381462783293602298260210929793001158120515430954119274736163107269855120090657270579825170621707596582968459261062639466826623865537180092654596944770378963355960189266134264371767589622240341153552929917919983174420308397554776126021427446909183965808872202001653205931911008650330085998734356627586075107812672874671049691981870464720689247360115782712013710856678928787078334535111167541710862625855946098280825472526552992019599091386394361122139154934012677446262987976661850113676963978920293864623235873398412659032895708356454199034043994421691247418189336439972312754078009016245332127840717047755915128084414396587410072753847455950219734656647787574646202775932603250137893908289045097593423964897649553008572372814477267213440607325064819720459784703238034592902136883112279005047314253720752175323332782518374385631292112427046058247972374047926481357422064600202914334953285862711222764348595476790388808744714705091235093353805152489217453589219646669646445955172202664357591414695103016204951692329141316342684337219173507136243222412785543590574916336509618823967500275439738110494437611678219682135263320881047333812937868423071174301158725949481176599762096246093882897833359702200933201560603608272161331191241049402887700200334475404227627827502250657254639676439866352367271344488423565997057562834445384232354821952114677424200566896960340365022084481004715105136380037891819812881848459768036895161519663090332018848964506066697748767069589951369504472039602979907970930359695412448900688592714669269160561989900606309544819282932669191314163056001150924128623574133089734295860504504299203210333258002600143234790798821904955191350387735281119777483485281977863381651294645491849015481136160333160779023952278591054111018729660904238295096851188435788583497643474291682464277560191495201233538195131252850923316972507487732039557286533761242980633312958468364676483923458864333021520624696630977237845988276211406173396906957086197458388731157521066511955896086281782796625785215845872103444393588660831110725638149207514726572036291544228757804873832570084334619683896855369899393818625465608401535606810431719350305676654641161496127107977983831885686110722698808926198015526907741079249388221597995367807824318842036661411225622070031084314847905371232077531156910892393351528179544379329633242826181877545802005465346531308139096157307627031064710822770752492051035107336722428036026804725635136613084543123256094222575975127489354180213900684508598422576104801856047079094961419552317433787609706722731701142585909936045916000871261382441873472723314322503855335157227893734765202840341453764758945781608332799875323238511347923842289475695287880710377670118639973585141220964419918056467723632930332186200645271787600242800490648306685248503845326396608059238141908369526953729509350057312348652894480726855515560787667509415928155491101839601526170634458876980536073322208929454383381964353537237537470853777722149837169393893284821675649202185187671037641547028689654244073036435367585488276080989157374688344523331794046958565263082159885423466145239649380670153460019267519054443187632784922892583566855918907741162731190043620025752803355793746794039233032099513600368222722502051767537306425961941348630140881652636127134736610313706698197819842384125958111917639927378102276727480744922753449024435448433455031392065552158361733471104476335208961103612857883505237257588431645540834733776525186292893916299780262885280093746927522151635332036689584538454460010524416136895964003238511864537246387603833443976146406296807057082460669187898112850569517365775501015243476963434057350026128132883442341981924367064084888760937748013399923854020331636492300000650799540733440280079675042447663743901894515486716715929317380942439812594164132297499834120723260158516551020689232844667567220698490643536579680257146294796841061126985899622176604338978130267285076864353456283104281782976704100739558946336452161505571524822372678709607008702374382512050402418167843167465461724231399689020757196406997552171106643667465612281940182528789569041681837290122119912382842033627957359284012288975211455354067455262549829761696620002855209929739484742338459089602303509404300473911145321740533377867280153866558855715366133417468309110874547279349626017763743431386364563287697113180496436161258889384181207496666503154505244429429975547970529983935468978922033429732076809308751669769024124952286407384539117129363568108250654649052518546924396708056940913140126309747860608835473095223192547753482260831171961641056991680580728891796602475929928193268485347768035706009400688274088164081134165253326299045950055450851079181604503335491510144886097109333764503603425783864206027026540058031189516195486513836407443592372841886573478824760531767070603373727573346432035263445184484656037665120022210007639614982720165838397088127947154502328643882255978378044845118411233125171070934744216321864956636221738277766495375666125020063438571800224333970109846007814154439367324898865868204174877404905811489747268933786429688658186410336481972953228008903062534339863003493376192858544168191541217028260038645173442642733038565037805228465076905728935598406592541389015176007737850004161694914416972910938217476058532346680616825168582682112040585979500543537196118129312118123844376789380842796428653284756206372447544021427679772866517060081128723946306420794819982603950380553986122106637293737293943929043651308144497097011536290890462138713673273711004305776923602312731233753107385689501075910970826364412426344065233396319473259855255709107333378411763200451380216426150761297806064948500985594194453597892061189264522866002284486892752445478971978954821426375344388571418874155181440454289346476913759289800056084365943735360157382429264276247003934012438608127721047527499588574139101048386330513986511797387865033038830868451945397502482080926760134733850201170826540153956972780858498037458305779296962574457851499051301980306636942983387813766145236780033517751030931591527945183418077007230737884639251816904237069757687353178737819835436433746289368350575746431249867709459065534516366497559646044439365467549806209327856031686593538559154816304326790324011711347445281218863502840512788682624540395711137133617938685053457586024122271983994926707900906705122410441313025419086055360947783975616690217791065806271597123617856398335398656090623284358736796955209652723544952657046893101115653568869672692584826660615280298282440041874929601270263779257931110234208126273879470586856743769949239667441843617641833852082050458265006290409744708281736481548303498079321899419900960278228365120711183689645565978647288447788053642398447795270263877287750748126511205295338126435905107745721540090975016438232393116101440312338648787076925453022755390179900317809267359712378155721357785451803105252650648690723259615865963448407921394047044290355429857274034355865111957384919540532285146350999361902863603156077359557438895577493494755406321498173774963530880352615085166036090359943222036515869725280362412487698220544586258595071182587722803051166669929030830305029184678298296329758668150633086767271666035572075641663241433273712080939410000494208719749354421396975383604879172504176221088619106478794850991960946828163382146490753718942655681958497985575455072558924330595164934628178084882308965942795357427773602578820026116016060901548964885744445853403806047453303642187281703146020858738693129844890131104945685808472349235845619466782252561335618553615721131233918104102047769308207812602518991052961021338764878963860503578617112983550365397348428209657449099497132174943841598250522755313281579633843823954532911269008140430222682966952415517398882048134698500428599098847598520187543012388942102566841053826306421440144924713763617935269799363331526490124526486443811554727170786166311978073002447868549007242223688521852698013341265755748418833416310118667483418987871866610708397872873897557031179385183283918887037434453061927954429404857377674769089708783985962269011147245636354836515946615946512280357872842123392015171919227813639369112319435783749256360038692211445913876926176419929173584688614271743147826525264157285380903991549472479598077887140381959045275303531167387613190125580251779681098600799329756638458043084080859291094028397902102933906609084837817328058391442727814627549046552956705051861479511508846498116706965667638596165765591049552340017325216461808149369263617325587741689645007494033680166009057413836417850132382481635763152644713758500008437122881608879833877468869701693264126952526916975274230561014949317435990253017385033961568908444775988408579489244224198601296906677259040698729181879683460223616740593116780211933347629299298100863202874835460790903232351110194590952946280636051513164868786079625330078980664594363495394149485188264104684750122800906845223069878540481211662360704885443239364705342546308566238057425138226771916063574197021544982774389457787743080943048771926297595780803385108522310250333764288871528670700185706805190431423134732726452178934215845439642798764358334850374147425918081721372710110953619571904022274417856559133384017396257823718485664601134097859115019314879675378776045967811880126990174361356580634604256405824752529956407640060226483414454158591285839573608914631828488830583347284149051544292977487386598020706315326067478048454703530101708523016470411995328960067719105027557435461983531143823943366308904498728158635182875521286035989118898826159791493531284674288687799495005323524849773229455139703331123365615235048529389361961968426499080455142788946923471901784788273840675881164383295655473662804995300988356669261169092863259309562385271781336160800163921627854421236613211636275998567355381208643696534847482327468872566726956234435003916732760973740832181432215827509418332267603018221640950812767735939110056771830755177766253564693875740740070358439154935832422189250503392056781673029917701620437539987819670984501142525433224456316671357510389663840127692632708617913755003881287704911984100936337027717005018117649010685676695263040688232309481653495420241865155396573690296789165850147328973949801570837831761331958613577040253184357701627598155011742550505349774085880244643810448633182837551502621720251247261984860290291022953843870407250237464695529491226868728161843956352674908537459229602447153564065782986892396623475737796164772700028237283848110340893150225372769859548649410473823452526185863511291038075275788188961106805691318839330626314497777065860070263993195363622094507395021511590097268005047608864192648942864430800910141437520382606758856624139944826934801413037942871977824390470937249714327952974969242726897630618437376645702330170261630102602164931470605097874876210910641890089066927086090280442147013491074395423077992379807275593711336958511134481457718205209968333988005531205268018044133081901358531276951921882387128403037161054881264227232157981663068123385902881406078667319899046769761229225777442798128686947309001665190743175872873250125490054367528806854630998193318888148678788990358475808063571718901202828042133812416856996939351096641261074860508146139745817789618792207698936801069455639512423887289451658878081872251295589935049297444796652615462731733843426372104589083664154888438870010545629353768573030155556720667440500487621130838461285253763278333660066689333488414662169442658270411257891178568006355288098009392338312695141045291813577464861259232215272940869715199303041986576053626030484356653016665086372206797243035854314357409733682176991205229992782924491373648504630868745621721959024368244506247008830200355337626993232751607506634006127565968826542229174177240441360590912942834433515346211049503168597268928347301459692389925362242537279406282309509730984311775605061773180724151762229845816315743481470198383109152274583283450725105912127229853104359275567952439983297739710904882191507300317586602708512180156500153365306459744404397787518471155581971373065939136917188455468267070147143086100371886143363211434351669554922661971282007802322132698824454701479590136539716095334707426805111407419982951880748936638333981648760731454543909407948121735028017174385527909024811942631933964367295596255555597202510029852945717268230891214301760750269363789774811908918198552861162566012226351551724050875614428449821235602076795446667275762660759514273048595743123275069081559083201357384289128779110047534248769984755806094109483181146624526243336791498222946496983370763797001353665598124218426758629991949120466235074828051959765983699083609195182376156761975970774807470092293995762257431893223063053212566417681248001612609900116405529803534711251315125577140301458256563225823071176923494628149027469703643423844309672390154462529420624682885924054062663278262662134637222697533786384366595125672461961793056810732500973441251833877487484063527709404676716382306791238894399377579315281912261056596069772864568848506054405595623788576961045219398323165328739821354718465460648403496920137663411712610234655912297720568473522519897143875809778444248533770919272261377214589282558084297589666708673231714036766939387290770326927102837986356399681367379103709927671443692605735855071745609549896825285120224338872361808491529750642244935282057600429827953802790517794902681144245628708192579863751718380904569141305515363661688953818386398811397877863366690776031629324295739004051262702552739442611991452353035010090406003209576569880531886698061982335958573212563814670918862237394965733571752200135899818104013423693163322772940767115077601035851952370386311910001295660999536793345497585998218144754654833777420150841463447002115195545759189637567969697026827561291878738653647583810770933101477375251578966972200226602932446913153999564277841470001801496059718887922311284900544352655736788594124869782618454501409753817134246659973281265743849110010435805855823075390320067181320828106107208348067255622251557716425161093870412169739403861336484805227539671538811699802004061646765800421485815009452018378737540650825607938882207185243314580489136324701668941667997728868687590694183975036035738862704428112500434753098006342346057562063099869927594550280281018635608772679667645927300795070354974599250955234704192368045827635297200934515515373530982281728522802005130728858707833170232852107598263234110577683536708724292013504610767878176193652308550122598897038576402571523854982154805022187747488999429411984722740371190881865176078245170965415990944228580843842989290067637157062545907344692463809425385559733817150641931164605039913535991419528535871668695650494563375047549547220997374151184549050152055948875704401680674881656294842450031781484164158026095634715742619015720132494142062423500789598918997500626781467326409493362629611845098169978997015888587339466375110324076880663425000805578363143685584912199584964455118931012373818426651099820907158691179566340480534196020895667081611295630613922009574827005743609189510770078042249370461663696160174429705621309819401262325264605763187997610518186915958788798871002191490549896755450027607898840447779514367012581503705510413252999900885739529996992776616550891577032910733412417673893994459110769405325190872017009089338485656160262487070578301686522228171192722324244736661865735710595570502459699817294322749174999952516906563303017001795478013609553713602764722594745370246446876309071805697354071899573158456222504176079894005354116669955774970289547401388060222480372242369095968094122334713760496564844627592309444675300921508860228645753775943851578590162335140827686956072314316258115680998623854355193751314807117007017794305487566227650299196183997359329238594066068063316460077604229048477338500581086424629410295624267478961672562151618579618264667928265936203044405611271098384680292203544604693612454138928196233420513273777873294126440535591276808400934826319427386063891799269932987114288095367517340715015817214335638764622064197072481447391246328964753706238773775619905505971559104029751200110658627607913974193172023228994326202814725604121698048356203545232293291231096246420968905301543931734035662339933463298347434864516184845172573740891155688006902947054969377238612564347185311850420143032039575892576880265387606967780641588815553180121972138835384641873188047186539294305640370969315956698866073940907245129376236251991443782922298762102593936427544677406113112869058890564523190612889254057236739394198839766329612659081573305108239369228390446233738388699869432411957231919901354140387756661696297447873535884992539086323249575158721838250131065714109209706693782704827457916680554341948404396246622080773430884579625669128045640159101894451470695405442276707658146911125173384840907272295913886536033099463917934546993628532959506931826120804879759851609400830963182799823418584115790464504177301049095325680072481941970126790168882515762830787797527635229306920824475232508696884248566668618230495561943683526458481391151384102851143066590257743550289330680525299015780429683155549663126389014999634950699388692037621025632693144238450980799000653431971252327497751525970989752950561679397891725419080318948141232791547629709169680450084330243603322377217410446776684400684876931490853075738936408498683784323543107554845597297136766625568333671270018598843689357240693456875344647865867193313519450691125874641604314914302247850402143908268853084262191669556863110007653549991954690495484755120270110415786454098441101309263328277298749060382735678673288308665844248586871568670124700708848705857871764817245988725868667536346453276489890593817077421610386344658367705646197413610546693222875462343706449223823753576172744698779272777361034071092055425687610934337277526054026827492621580102836428718544558330651010882726628660491641483356791298056321534437713467948379298600021266046577019345424929626243142242292531779348936054944823180710697475226805814413599905075986233222131271154166889836623030098991507058107950614799259860514249139838199429361633849369777232301584580606734120452566064521735381350567599207275036238300938240426165285308842646852941576572216993286175703888828850461405759052173643133045817518021671494404468701838598591011508457114810447150653241909058234870253139001823055845344195002119906321435142550771603250505597890816654749946170857494640482573952882916827703827134518556064182194481915652010054660972788411137589554491685253849248804098854707207135089603789151681041153300071231547576596833314852761531689269707595207382735974239717448822080397191726488278553628135667626184001487669567961185309991276393214667613103674148737363238705313986000411692562596338249826490202311016121801045164249050461240524706990294588050922908305582200709043416273259907789446157821258085357887995825315377091960724389270458981515089136266289253293507222857703884870533370307585907547082869784940527117704539179361592228308024062979127635369898182380552185958239486113204593922659595512729619122049767038776064582966829039059367459314888836718529344687411939383051698225468612571135018254009591843293005955165932699215467983310323860045681387581218356540429552236620434472919678277241582244770415419905003848614893503736022561072165484109143439261589466119147142517648826555498062882169528880756281525528160083605522662921623084078985330366171019450590288520269194258843762826983835364746118545255308095039470000130859747568473166593552702857047565618118880699609710627902584539042869074116131698170002898024456634891797474337177313167957906902454379319175390170315232183077974750265029064381110859966709800499123401519018304601180041459568633008220393650977019221534094345441040067188196462988514431297039723369076101007098366444433500314357500947739968315799117424622743604077412931168906225525420805298721635292330311007023136934049956382491653239479720058667572343867695937266963148653400685560569652379308112739250221588236592755056286325895344371673096983973019164928600925041633069258001292236189072320225010905720113179462506785517113448289434382276638305644556736236060204038804402494833418959363608669511665247730031546233599742689775461863360108559148797028045751904355316363403242134781974578891379625468999896885102846756530867172984751558244475403762333576978825809648335175909187068298229730767562278134533620072288364835695254993851975187991157666777985151340116915841335345668329450570421634788457907668286898122075553216052171914983332353502287772760425841449000987386269348533711245975782229121377729069827146487829820684438069152458484040307577335312948264352279271462658159489350774669138207862339175885840827624326291701306559683858609016575159020857276815778968963781356210306677117938084456335724664088307477809419713823117887662155553069403094709332178604147332057865442225295558105545140224373703885969553637297539496455810888263835773982952011035034491326536755825523685012504592413011852820240154591144647250391866805471658287279154967339929293096207315979618963047181329853616714429696438536397393582399856220834457359444287853476093947135770468406291321467284532387902098221744145262123099115259285617058465950973547965367163406051730130979184322988082462952806859737755033933286886033130693329209539965468760493027762243941760556921279604978335310340653935520640577802793326031353966677129179909961087315341232248378895046520540310138963434321544883329518832363705144048071329774021769538476126040116479983847228093329468741878325086804879616024730213671533035223185488582831427825067478834580573585853983427483633135444998200558352539473266566238328521590995004700743887675665976052739996115522589394222236425926501520193609512556807348953918231918274803548349167773006110490185717255718938837221547770420856414003408300894055610231509570937172355209679639555886271823919014844161341536958664002607225739692338234264528575587964826734760757033734835890217871076326069358502719550270367471929381885682335177915019133384404687897873730198536097008697623479392994534692669153905619931201256972594063924929824989816855853970863263501099375315064488631293491957109438196150562855337658458184923845503086390740472492674292806817162768142937541810290588780273077855267137151909867514963418518234583823489149312226281745657507205757810320282863814476542650970046499873811985592011646483153738393654152971443785156929664447193367966787123123402396103871008113593560898011211956988008630156319358768764263067449421422804286359228798172795321780806982969087702585277878956973467367997767590582062910906704217556071458393732258484349298136938955444304990839073756108097617706043472393065068173329887951534113887644786248108039036567043430375808491728091726382338602327045089996191030256944925440855231389968322051064013847496113011383572755378433301783069686183872113528076492464012799549931913127694151984247251646795890994585408896106397033621328980341451645844393389563985351677303673737348065036264431140114536768786749300023530660863929862223665894142244771879763149746712653477661489296448267994659299210659493438780319389738170261283827128764358555562524709484471724308322488963482605591427300985416733406303825622279543111218311209722525691952242411656035303555805626923032936160240063044597147799382592923437444710969018649547918987346223840537109395605940839846385364796204918402104766779012323440404033848989780878913602090322556009059159216069306183985518274549757256147121487102641852368169004768243702570065213748461551018981527291712793612304419364626268856805232526330267873672817502967051581110778386028921522839661789072914058788459824546811679189043049028695047267262333699062069232142112907656106497911319479293634558428172582290565279086854760603155546614616551567157182438143978982326907150546460978085542912126266050687678866385918255686923194264356626679929295991918224445763106562535271318288449238153729718180805604066083541751156750281595111484123719162602506075735428969386184446962456213945277537569227459733474981064865674531967622608334805645665639886872144522702608772385879195507582168583423326216850933358710962376044166084940629483098342184322718746399217843791795312518568023243769408993155254914532059901376608491889385216896335089742071474922166259651164638222280802725102793254640821034562143908687269428958204571118160280497407585051628136760787090781144832857886107797016456105387863013842677503950383196952498613172240618024047393166982184014065415273448683436154969822280823710018724647899253125133096631610597974907024311383945927152815503094792164237353816687919805854274605090849584428112579884592670275570812545962476564996211374949889979776852729261492899102090245393908272162694274128320642380292582640769529225306911989986919589320358166515320321474597165589432727040543121237406875068618586861640390376885730719173786351758850353663240802077702904061022130976998779768398347635937580794908290402385114938439645475048737097946846389129113110657933067042257342656512765733132391810765537645150337909025875767572166011684912209421399033869830731719107921083163887282426947951997558147395308344350285289802103231566232713670324459223489171332107006891871552258428112754560638306490101059661914077710353652015395773594674430975310303649252159952753451565386683491817638987616952864335178039555259222119267447051557738368937838221567945801606655994856701717955417737413421151343318149434182493593930363971753870510328125869527869948173340546255706406782377239616070200965198925835031173281410341332300308037883694310348958144157086334876094008263738386553560870768880203933638782741632147514474583852210857001461917818993166866715242783617006672559555311518740824915966885690647139837278836333634140941579319177865218412562938355851592036538781148910622924254292631843844965669458350525222549296416867758844744164381031507674753160957139040247837442675460372223809310174814186897879404581243636734687426432556439671149291407904970685489086026246178213703017062866022525671539086174141390761094215320300300147887371457544084773293512964899579367474345328547160494950134425263049711888353006423900967054138589537189506642533328165201959220505499100660512074707688703381852475896988933336317452528511346637672496718450167677786766462067128442613879499323124860278229842990669874456852936653279618767798211191435751539657769358114531315195144103908563452975425151266898999677792495135192955757164078683366569916821765630667085982941501625117829275322739340235738023188054024256390920727522710914778168387072220620057572407784509195276121102371123377519511198666528269196224868499451133240431098563553619333633634046512265816673501061716439223538301659371173842464174843188554340580108552628242947511464628205285040391046325730761603715261789011579824170706100711777751891451960091626842726018019296445992609772435973081495981005494630199871090239084804205914659162314383537447148103702258425265361055772873793960198024428340093150967655688514957564728889603820190992690918115610802877246554094923226080482592478382099825671518885791565722635336244975178874050247718935471771270048989734289765494880027352451042570629295106944337926837580130422691595184548740959840521947611834653697195905919121205555934354231824091154644482373271468457904971831871131085993181791610060984532380982963044084199934076273618991243696641001769324327918737586661634405806050405079247229299018879900816836441326796073579663695237090109076306442253640837262894063333116043908189011493479443610967488260131583362656072088892129023580020172086379670304774865510191655784122177975477423712434035704966522707937621619729868858414235754908470365963695988161007873955783621399265077976656712208646353068242941448245767070309692509268916708069164084865803306160047347393111394237872265111161289446865335162535750363750483961392445686255171051677172629588742910598709267742055549179834719839270345379349845904359301129591228114315298708677256079111910751550224789984298432318054743221623215355466491019561215135745063007343804862979476675739120053708618820181145845590888179748714988051951556053192193415810834623682536263058999072725347008381710713420489899284913534194501803955646319754471658954424944959350822864087062427903619109188303765632025281909972246545598747183713638894869280826787954350888008466178006334689740259247286920024001806726643365948842862359764134148550510877230271770951637474480134070050232725661302868131028111360328150232729620885876918198640609417694980362578963110164681243536188563619251393224658042695488343946167247837789363886744786388047391444267389739047874282317177711130646658602303624950281015176064760574842759442704368445571142311435370451321147858282064684719826114348768018710340368612138936383482749998887296206422986164657028244855711258228472196962399015406786062827104478897464518887624799190338883935665104071937194986485819972743785294043908273150861639608510629406474190103898008394997322300480437274772894703937898420904159037066878621002768639614280277599943943042425066851072475229089464487396707346122340500484235883882042292766078543492381597701332100216940832401666556264578860149328329262855472103720941572790650025040597898677080013096694419649730899519995831739257553890574310106521508144682461418591245808031548854118067469118104228288055369483331435656089148381029746021785148004246149398162662269002602694197634796112818042425784923662287081734714826244405646151423051688937338792878340571508983163168060473940277552329812603715681672487314491341212275118143440488167717376010829660964700592045408417520707532083772411018488806321809691682379750773863772900402110926459937544505295516634343383913413026260979944847063955382864640723012155627318674751394728977462045132750145031593390468451324898628984711523605794226272596046020356636788023661713788826081883891521747746125291715740504171456064653073423881237452432035447018418101763744670629062377320758949183055568988843813018280142796719725404101006274263755187337404549059690025825648464732648220949137281099873120656850020583652309224022003011506411258262828997656460109886972204045677302597015865902895123040187253014634928483074730227676745440477911033807646908282394549225934684105880455147973454395476462730202437353034893852558152470389446421851089480619269919711149679875317802944184846866772068659792394451777047934810799533566138372408591948971369199120481259383436329347237676434255752599114812426671240217524068184458817133596938199052821536290089739956068197327535181266675263858576607947663791036168079262783907605586342598915330420027580370905277253262097085755841542337477326642302622163341969351111308471615686313139725549693247897252939161632045686686866215010359905236679297618066625214724812271988301200239300746894239937353485714911943980078010951005099847274983873923965607867485659412427504931766160757441106558439379269853125348229163373125443522379464947721010116273380103544993418081887763550079710277374380173965810546338350817489490747753359623347170335985319752977232758592330900866077908661115116963202034764137509807031811594425125207622550852866783260970839365249617677377629419656947919628542323927150223353330867660361643431938562486329442973052145914455934173523565622897672209829546278519974314827680183507462209312447790484427694021293159523363338468270199500973744159905134381239355716218968104339784888889762308106418678993093282286267356510970535273926535353052300928624797614666878594021327410896044914036012431115112489022680271620547227147323365547772505268904230997189951007920428999369614406679120375808823902292933079210192924318296651587635764165124047136226609215008356630170254425150484308397660972087393756686955097713786563407971885155554309071170531679834275791275575173395376047685002867212324559975708025394578993476625885134335763994723882406201191608881607056421855331396899233898746423033168912159636136952304119727686697639163064771900842941178892268467689333492101619120898698848104667514430629754108183994894219723270585346873917746959001756534117829729886198371814591710983983414449379526115612144911589630511158233964919515108405594326771658619521048988012764625115594067345685766464167415300597880403997803163785358114108206169858082687632284724263581829200022291512188026267064848650274895559067614410372390582496849188828610923814547898096285382967041516672708701362420772916114262089261881663989480661344707143232156175904626753754383547569955499500452988742388291239653990564875784660516126807438010668153171596995998833403232810044650859596569290817107553545683117374034230325978326853261686856728952047401050528508350223170524335301135443715176864180436899614807892423836076252879977000813593238742316503698804436900079376283900209132771735566337120537101816353529343021506122560734750975351567293188683622553347717495566520615407860086790393113475953807491768613638224979827972892077272922036481912684850403249690526893594257411556573093257606931431630882891665085689393467573132482165605266025691198153762294039722273127970147739961465117542789703141319240808154276675554497314895060494249925310192807611723517872128726611517902778103219308461941417336808955791417011770884072821635304873273616805735020108812556783680501768672353469974554107219265546944709936375234209292177543838962893401131636827782989925352292718392483962389960111615279285165093829475088491227616834583392332905770706455020153792670167588622237045110226701677791250311660466840103617689391935155520614396707450507330440627053545969357618639427373365460223103573051234807300351570002105549803291740392198002131374735083283832998807206788812388443712335010143043965536859613131283315288691825545691587173575072543769849810766125171807546308007173998163671770534062892526354122645177733589777497991604672234732333810060256191818676337405627988669683579288316067738678497204120539888708080700908233706585154623309611490617624616914275772011014323628896784073063859889302076925606700035690553458625181123807642434377820744971160252982249412799226928504654029831374132838704213050496723109304326636346609605969848609540835711733770019491796692474327069472442497719817734181343138145857837488763071950835174238924315512696930147639629241840112056689428965036370259017955342558527332634283953512863551035416380645527175628557260644509805782069512374524119804759990866338239223877026874162984042384106244557761409936104683681833485602088012534725450569673821503180380835893335183952095531631113619847404594989131748551356072198043905670394688310962229561493029914122170721478418995128409091306408915137261857274621636199814243329865400205510460881245127653054854823751753486896557757162976746852081011205480801645492375458198889907217697783704674672826333119566734278317038098261848065902682284690132193610110935394424584125609557288499597559361742896754739713794513945494021633135558000210815023980319732673220554624268562295595583718220359749431933656740463417939032956923345269500543067381380872892722909984868748058672859754236476592018283463018279847655056889123775803094388171778744137480673783780214987784669403355328591991761036338976643455041792585539683767250752570538678622583136849344769107597379963971083292806819888035882483069108878489181733592793721378716550555261419828630866970581004138217599958033912599108178081774467998804640584386632905221701434800035081163413439720820101421320184183225987325564832658050165562554480165624296876091214232306877634135898531786143849663993260368984116444305198199215951819626780113222553424350105642917174963001481882024765725584372968823537334466390693995510574279166301091708626311629338079326881188043974859345915694289895985335334721196340545895578890262550020930468942548484561216036277113229406887023341555969206955609187549567268704641356161512115305753083874626187553032570045939313905884512331779978202948091726179666484203454287361451138905613629914581746869266520753359624575834130986627256943500763714643330584749837849034022821581568653118008261246934691519949883218163833573697534762258041297030237898743685890843930096882373053539050277263377910143709474226547545103423842783709268355528043959988538244433304365592456329153733230336193943642155380910103352990807135109393449815172606041635677039868773646065464076995951006261346004009366496158713457823253828807091802213353095421094343274297301261777911074314972709847300312283611773862422342881025738666124930422996341792231585788699698179662549545251078384730627142793243167051832214992036849118438358264104667004489457692626286021513610679256962816748319469112744800643492170224440714028333456807887655599364796629362111493953170431765113610035523109026253926769990786733148308808642379239799017235823950621039748157410549305251748520705466453622583487399913884873508782533494521691275823817450851375849187174253228903838650548348278525775234272009883915340545131814215137064093561691542540956788092182874305774869884776109008161477933501804964839909934289707832842248147025079264516389545451355065843734698283818729761217713461013615557350665714151924085829486681036756471845828474771801381222860782722034372712555895834639105302259255909628783785424010256405236501288028903666735112401932825425534309253895420422717475801438305813551657771708401384112818768933014839467288070241696209357722537774387002829902457745011370254851483164717417729782262706039376725656114156140074520209899064354933226246155332354399263642114109566452686940648141465214835349961848226900808817273364100489522475144019740712290402247775631895067960646330158360418829259017651725765035109337346091326844278210990014028843553688190089135231213913859735012200722805700529469448773812700317695321453086517868094382154564264238666693505091100112795828483142513497583002449024895506886534795305034300016242850307449454586591171338660751519319491148159259105095480555132932864893616552569922571655232723442485536577894197510188941898373578969715287127443257468912667310477378325697607923345423810418979704560829802859176598009351589682617941818211714559998697748668059227451166539345734070211288210123252155297854430100809296277295894273688387476547946026834357200179165030909771006124020625686313713893783153953663396349941432228124583431932379700404092249923141743551170399263835427142636379141865603208147286047947053670050956949011917030962865258713805435018073676346944972939047759166186216692118681247543101548242167087285743153534908827664641459295003728465222351382575430059118866669831472317414643558130022263871644406207240042072391744496960094045755143707063104164927783880579202909141903919186543909179690726521908164168696489785048050316680923379568540039245309076974194597049034776450922512594068131951932454037966687619902257459951761115340336191499968187319638611688332023667161876064944980295722407686213513569819434170689411730768109485002328584631149396438312470827965127569763904280907394277464979484046763425594319272310179747328804853470881022517634618386019593160768740418357573998938103472231430626500943830289658875953260636107831691340896363693489426789376625779761316865866505613411151385214551365577205485765438553383016031131863280554022247372227958914360762844790414144923354268435579850107846420571962783580131761566568989504064492338402547083219508410395903849773168802198749870577463503592538792361415993381288766075180894230559259534619109201326320820680412138587868012794581385584587362342157093690162870260993512768790076626340878940934813196260392259901685466629584155202868361527288621647557124038037615916242232835066053515837324108423394336074802058926855502142074719255060097415952725452168424111051590981201382567931236441837622637053140906922194170059444820966600341651434796571482940488925859503598542891772766241418993208098949142953222961675090649853896347272124343306337114080112986297970624145580812697675262343430855521759205700494657799718252577360540215542118803530194589754580391270976032383239952069991996613741338901731876187808780148081798823608660347718468674967413159283512947156623809579862301433900615832779520256480995697829077604436460987897181414768163296598448853746776394928637474359511711487965031704023779563169448032505065624146470861153591320701100648578985236008019802645527478241900609121370072767932313823105344394051632847254542872918268817677813026332076619489328337930605634855909453858422880540168010502323165965124866543454926587120691239939470393278678412917137111351690365904637595943796752869952092955022224769296268296539643137239868127269144071421029507850204333175521696745817290531984648538366855179927114665997525329449812918631548539645368599390239494237516029520481362991592609903355846399142265730249098229844032459800735243020936230869748481183176308274522790944668123037997919146593716287868565913324943857439183203175206662622477774697747412013498698466184117476077257006175184694435252750550422885130124843446244637799958005150621991636557796890809822105315301081148692421777899037781455417901311819950393753053709070618868162034515449482308327970731816230966690029764346439322264440799941730277011586533674268175870942959360594547191636236093018498197676513617047251729846142168344632705799844212605296913253344638176810283475399384184143222542259560323637139858934046447174308928133226969567848270209199554806810079650682396711055558509320019010394432137893832075421075515122034425941344639994073508597595202613367114788088117402091968445122414373885295607019823175097518874447743422813919489570322535662160613728070090044617401502645156475926408055714131309156639286401467183107985583785144941776509700855754735968237362666344067020093588302169944271286142603952866452899127127775876766189938668088191613798476531082720393526727286215034797549276122491417830227442538968367089973819083439754209064480933901012240770171089860136000128982701278133897733244929835501927207742609501595111996199671646365243997400130332583469783124547024043740474053464460264078952136491947420159439582440106911568483168142894439825419801559565819997524301524519174201198033390038707206771014993615692306521894695310488842405791388602452858627300408978300764902203662695793274583678284864600968987506182269945386372032192657786872663595513742938409087405935297357186338052590405213966873625001306338570449784846459368837740062477850631929816790056844737208793772536089633346971066610570629223762729002827237246372772590525499130428492981725112939253503744484464414257614680727461860872515886025639477513286973059027344582953310026581101199790530178239622630710030256172619960894802625014196646171639951914684891156847284259479978591617358959951379777734710460631319776682977167578283041514380005554089489620461051991926766676230396259032401515602804084095339380364531575667428315213768677943277097973493192973868169246043239372816937534079200316332659957011813362192828619241804878004439292114140327494008273114355212610184150372658786057532515509792316552888886474726774219428290394769445173950972676046519479255527523600625001417714660322352325264602292761706980529077101886258808064313577732335713675304712866722585385650329319215491003354526066270407934415174290449898817662255461330952529258492104630968500568831319895777146638003107348159963630343147768971044727085149123108946642430863471057590012766286000701503512760626118123928953855994446139915134417071510474372942919824993916134642202738470297677788410508827885308617190451810611165256017252602801945965498134938793507725907131270450039458327361409096140525082753059438801291371994992181539638186561648105644201317599464302207339734394218400925649175533381190903795610862021198546953635286097888598896613834773726025768659552968474540281986136535956902211615063738429436520570301558183815969208547157902329964190812647188212733312581760494398003350016563129735203551655005364329460222868939645161315453220735199329877228592165343368654976124784421492342045183076481992035777776865117775091536191415325140805019775490960110451222769634350919238805255993998641110277381932720040759247836144416084031231697056232047532599634482763046338777595047114141855057586899275821293111081435479138251836667923961332597424721551687848557010077054144474934931821808274578432405661792519567811793881966428092848285843644393837150424293112916609329533678649799997565298873454248569039725457992470109835470656219239791458479454927300915781670960433012440787057660207982967274556370906887469159908380865452058187322385121331257603971583223385237820608266562646747098093568164613953484968514979339140320519475771331425190277863575489988466917402351740255000757275154233091076467333516478060695222733267987013095106041440826064290755574301414692491727577142015708742634808425697723453809577331080052983479133328501723662739551389212410708636610131561216645076462778045394216429911441547294816073013499126601485580950636015390388573711645429934350064774745830031135640719700904243774547348855783302480706202601125240625515301540742935418617069602344366684426991448030994200629238501399978404313915088117941912377129050971624994925784657578288085564155253096360980708893868798561082676026314450499498124990719841626068558581673693231101622361077933271267521906630398811361279063802467191486972185739883194328480237812319409833931254783004729357751386360117261199395712140649176352956126728197382005935883090647372617504896983864182428115984578129059531141471913133559835220281874875568868002109691626760528419988649918455626382951089321119844068154050052826933836718099208238343918904353923371115924158183022868756454531288175889646236204643600570671162274301635288245032211357943997673072611658345593387615757771345379278390247091057356336216153943502045143825628682257119135960477728092006723566392847278140185889675158682373698798339360969475791795255273930635439433922396417730375845283248307067420622380811613863947226793038968573250900460442316570728387631055263006228992737252236768577267620686622375720310073511845751544200947057213592971754374981041908220909601245192185584596250104472990773665818478616963018644331097659451639019851201936447165541084894852256659103194940795295243240319625244328601894071990131828827448909020247174062878530326326850912660431884307851083530441118116205516462282779806811047987874145424838024890910849039831468555266249979053950631416624121058142358844984620096536265531672802824935357365672944314114215595831403086330367579355453953605536835181666446414646226454866280025365317722784105913869991170716176966194978059396742220477599559170218348116581110062776040792501632585273995698609431112933140880780282865719505233432788378551617332832705215462488996274293227382116024430505609881999856623138853117425146125108580850611547598553149973219654006396620467357992751039854664271225907028659721543884583274320790968254943980478783172552235429662150857269650542169761109436540263920706638991586077969521158733959057686459951603457276140201749557130150284526470181969820276703190955100245736249300032554369181349435405580159270925972717634107605786852591311469458039393076539974488920920839244491115819871751342678274718209567345479466604625407044110009914502952530252465684197792233246783636691426294725450492094368986495462500498653495935327599559539218967446351221526154199730056025796387614247885917878727453526739839491724156295911347387255155460078785197905709535950677557958102097519784993522437339813973028037229017148037914716554971523616622567733222083467806115115318765883485301953063987522151033060798456264155301667451011786358790425997827715115570417385946884294077744540439703408418999042225689721957663791663055712647259014975775263876564260716618196662364297051543432321551528464563896494812410865063433516250863408693295855525264938520279773473533038219628864800158610477526496893896550661808933021213405767182444196559814236981697230368521960257506819901680608054349191343642022230362676969384865165887105672358196941897497160135461862191426084949282191480341381494165319098683565883724081056109060230941357521191808951549908948069187636649482495237397056114482385542850466804547989630560895475253067755128574884464537322996668803643794349496411975371945814152184437515921324854004109647495994497996737363456618569417924525704641685061925260389115153081523483971187123534758859047514115487040925958074439436291148473482641020295994752913410599645682064690089592816782347419423957952860799623912933031297336359770120736738240992305303085991814592924309051141759811675633136448387308236839673718601352242992165282947343266268667612031550720538873536675797140180892203801582885362572446474621900951084195125337092053620759168863576951726243087114539970620756555740110137073786454046751946989373991351749417666889900591990216897043621809563706537029531698352576983804779967972553931870565735158004585461767674470932955910088523217171830609791719638487775958648109178698608067148599404580316632856914014497213275427894206946262673960823356354379768203358370470863458710542219964224114256887090551299186559523117818742312340285843633172298399937317524572517012432752902986940018274735536982219416563681584534024441333336947773903014433888437935095014409484092894765785985154531848435009978085963925322804568022958844555712016831873855586749497006357871875470524563312843598841604063508568718699793975796118881894597248806798973905897599512962742205928032714124824464768587205106510604129396990780026382854875052750599542919578407033179311636702068699005085464137183071094543538843959960558358716143546175022569893491102563806353633544493960911116780021716157856146879003681569551689064214980088812090628216414004028357046901484306239748348814570985466769985554344224968024117151295953247375971234276671036921790899727931772257829656780112393076297246942025751020364375990144707748260997485772513999906497840492464975755255978845173553510763182313853948642423197944977656864029234138258513708640116497388478365519137148064672915395733533481486939001323727711422339623446458297307019113264291688151486709801334162922643385501758349151676644316877276228930332696728406005525004064963866664420428924508514599688036286905333158806939093884258562907354140669195954399370867613341981688237535439297268114814860031027518883562747191377251122137501012938145621497405020894839150166674365571324427191496717746266155532621208349167932143875967067530404567761805400063081335199373428381817134381187622144845586719066114926706806479514556556332340999261232922983233466613593696893535213230862658186818148684047635253513759998352964484506486451611606532199662356325410707941963194454908619546711490729421095912920828171582462958504657873426995650107429381789456068971554693977626231746127836818483937170611709366210174058080420792511959782964787696226560155782241810240605899137484507706384305704060333271008606238723072233466368777664039045778699227619320818872827576064584584216986242998332419640544102439960478724231644314037194750545921063744633841191881007806810930955911713289940812024667093520373149270718725097881508503075588083464511971504332336751851875524085384573238823089050156571959922880172948469881260681488723967274890565964454426153578082672257714346599370564208696869441453499159490911449995034150714553029835266029305959006524443046562178756976056800497680272545036999289186826865801584315999476292536035918601404156266566822593893294009130477191487684263003918387636162208211559250581306456551443421423637294835774719681289364834694214126560416695828803502125652664771455634766519505748676955235448023272105704999876505728910166754495304030777489408530111639112694790761202254835188995462711027912116352510216407627964682377912258788364682814978531937940023702935128356652700025243888941202085485028733964878621802688015039971971262878624603921700705935050208416463638731825867339468122340216106047333562443024270529627866871639528156288567621764938178694435415041090528381499032228922731541580237174777018361812599462390376555714250869690021878035844467269573873133619151819164046125482721987332180569206592136042630299852189657863336459610237206443430840600017068213979724910625213060643610647164565069703067267404524736889051044497581592251505224297190036560595724080303886532565083061903747732730500485494861536099809301650459362401317730475014004518229963059236241095990761026006753668315179644916172340485131318974341173641781160569608283952480324702243897700000196795865475497067497789609385310233297223112121587838414925242981233019947862674410367349040107507820136715768757478820100881378191111471257392054623232441058645613870582094422843604673123242629434533413427359563496049134494094384931941242431921523187920110079915365789852802306568154731722613492158040108080230045192304034121768329901698142142970063112065993490683293905547435419966783514138133216669056144191546628871577485266476721248664387200467419789198470332883297737985867564448585292590652462439796958275829134782447892118406527754929444862377746935124132452978521204399859899634871769910121899558577192450762738587073789627644831844113674260890514564636674471929511093983280384064030431111289675817197691111140228289657255666756089004716083921223065929453871820739706386469219269038838173921754207155856511452579805455267412329374733432419860136886498390316030238539056215514711577788714873323847804358185302909634276115039815699220676730988672397444117391370406702410674216765115962288265075999764031191258385803261506329090308607128557323886742133487873953847133953806107406886698331228209354289100165878584104695582933849164827426334727516556869913367305227302556625521068290168250189986064592564643807303372284325424816376015384416650402438477926251976605791502300346047075942983337042716149527821735403628300772140395370092528315304205776259941558967098530651230556815719538764742020928031328326542023263959358230561366656463119993813281031783771681733553011359437768534543058296295373335996475163277005155917342221913373037552641550051296799544590900844136824996136452329138702628097551984124414483005691116407667969288380611208490492189067747407591718232094742232232323218658430868114837984293076893704990429076704919533063491779517917504223929498462495928901535751802417131435551885462227715664536718163282746302906863699372461093520036665120574132734146028017129689498079601929126683341167638891858923500887061773879037385899181588594257073507546460361644808771509645559969515728760703904500178490690903370802841561706823862105143509926179675463188899178838599416688967548438674898938976593972990628200822469250038904953615141865236994778828727792484514010245167704628767942222974508638933155435122314552535625731204454227045965811410728061715695964665044800581333903353340140456162966434234543647845384844748439386585065458530194348799945028568530132973776117182551497445592200331118122322440892745487225354401715026647389877669797745489862717170380524997555277400719194184809250453926660448325925414585072244273873078504711134391504867448483677067876043220928163431488128718544159256819135165815505105472021929345425199564626305480818523470145732292784899325932318392176862802528498154348577257011632514051300749727867414490791291407054028698743449874754712311837114031729579166762501134681162323665872313828545280888631275047729871303816984154652013216530941988258984974577384180250567748572661339948264449720198301980607175007826285231900853333417936363431716040918839509108910885917776408396186879622631292137723216297485385650979610120242204536660496191441406315047937915226670059705074513838648519615741798353257373728379448849790729780048290820514606804945748256866654588611393042876130567056512453543285874728332101387923943264708153890351717347210483297016808726244672849365397727871950920432017460099685497093360558174398777123978860377519852188548013313037562160626276083995361372483823477405686370248816857173614132468193744605042143903698198289780438822960475211607572158697084349903773326924969906555090619245076571780674708185159916443990606113810039815875398324305178189874054638366518904719339493527101269219260644087103834767280462117448015627607027798181846221272522007349685139045694275474757355150403247748845617767136820965152152955359354945955604594071231027617085021207806700859864542219935412289431636227568209678472176420222425072179110198391057826801211350408067792612248452457735706703422474992333160990461074943437400965285784170307850342360735564800671942531400054179442021525597137164604741611735350791186722885434744993928332579826261931148901119366672885070824970802005404885856717395073718850003565408782218660673315565468431037592342829523590868433958588638078751853142174645049418530010354254255638935177397579800799228212635202034648609863782155433555403027846497075968297051408528369285073995265781825425670104416988963101142003179887758101971741648566721768461700156166666773744024026506287852996631846246746889268439544102686345397608447283326281966974738479823131677745860689177108313165408159945932697550238986189415970118826094655379257714547638762691307387136509518320696286978081586954999299745454976772006528586856199770572511080083940593506616245495868394544561987667946878036616569711841213874467684129765057010982587845154563229462458078163774808299708496948222930620705625982906848803118916961186053988225889191221798930971432610135581933820627984624388900018966035131653908894452379942831329623592425880788327901624720160267451384331667965564145571347516744982863820186923161267928044711592371478464400124871823587266572297450764354421090047256933288433907741054857709821727552348760494893783025664604034867716659758982034072336594165005795731816838451928432518107278056874238475671159458323804299430791765803602575449008366307684947345121066549893204878400443982661817575691082351212387221589181533705960090850657356962588071634165971989924030983854225868851737108226612713116384991505603532305698972688430079777955129381397336428164469711032118637442044138879157950133441774334258034442119834272041496879005891857412122512551753363073777858158517452177109079004840945688798639317868312125167625789014336227872658330566797397980519514317733759665852574608361050870247444055894395237269397770070860760275487371714973529532931028467705609514592506296533814821477490128106333941776843698345661085112455843017460391013821116567308576001225163706050937575150713417063915155386217327248123472303430210009266848387910362689390493028643450445424674726710954026944130470938202169785706380011593415466035114283292462676335504472978453672369664360278235094721356590225886944097376315503146763835321103899371354148902305367652118678037655832038779546494733882905849197196104121652581753237330572507576081511215089519848401063803857724885438833032340284549698398154948339688137068943942460725025083612557773163245921355984542278803964331228919412893409378360206131886925563948840804184690567722083479984094899081587925437619679447437362484055520161465513652211824691798243899141690893901246485443426319335283220643768330457563735011559110795903621281460123625403032835649849609193736257272705011434804335224454774077736742893934294409238390189373580538596114739402279614008872571255848711850971003663464311035176220823714806344778527967133288864520859470923736314938669800533654251176939327016814767941051734665982116155807048175112573661515888584493864785669284616948676050344107062812125810411919286807940827397740623862909459060811135949555535709077391839902013079362679405409018890786814253008299967550732729255196006968892575598092527973150725881192575890741228337585306146043980339657369648749919270022914756787094120736306255567266283195836825129783926529395175022251183993511433231292616654295270157187153025492661819464877462621518864025368107299795607121638207368420271325422885457360112176272506300680715449516016467115260489339826472163601033692548184062841967650584675624486985013064513084084326444577035647314109252884313906891202187923682545062731382051673125683033341345073776701257374962940421692933911188614819510133380978603416598140007064052857339253748017078923219063167264833312157562476812897407077136526026998517754229521968665964802542414307722061182288796418772057911708300641087373425823792894394324951604171968823227334941113686714898692267336765165149847292170216883006880320230273758876730487629148778667478543574145014683583842380564707727579667588140165187650620763371099467369391138464468822918279691101454320160661360439890840699387614920124025691884598225221894341699008026780888438676341562347911687921051060913045427452321333174761095437662764018377096313325279970573577913002604889080481724014857988606573469591853664811524054613249640826575282963700775759978082607456295907977163508879884491145298511993783988387450766953756746514200858922670176937788686792422522031555667038140480634690696779970942041541894734097984782677597377412846534048605127099307304243788480897933403091821918505888204484706707588768120224202492938796730316068827189252292789792979546859707244652313798695380714120685970094703918412885884297519514973788681578976798932669290215007539019884845381357818820664816318579336432611330165272360055676697036064701575146887482851386124766127728330431735486630451143911454035748564148833477891132316377329332621873256398678601952680505856198655552169301463099474205387323190140521091998042629129150012906116021319491922484676886464128047116302554532991980051862754915146835477149604385133193744753045788802654241246395119572795018080168530885341542685980209994193244747327309429465742336455456466691702442017337732948789562060923180448409444602249889795652189540951730354740641257688740392367659510534953904835274288791754644691149208105894983977104577736682507085281915263962451178977864908913968148909198884325584457595720026629706345512144439310841928834741234556996817552407072145407795492348375369638416309819272074779527787536914115367028028689788670822599597631478143214913209503108248104921287188704966383600718422140343880108329839640827649004530529824551666896682707009744897046777286791005981989946902394394166251137840959511117256331915632344794881057620004140069763355515663828209054328201755545954248602303490168821298658272782568085669937939554957097520980573158137612122431369795321334849646148949333442984269719169494655541083851308751848166501929400159468993566726764612641169113502893779816618052091981592257655894907977265331060582129273061285046365824703021313374968520204302697132413087462862746166400933680902814571944801977482684075374986268870328010833599130413431383227308144506065470732210556628695448259012239473882370003132259363671577448890359063684820813979584628067082014468823493898146518010824947664807148142698589728463633587623119198811173315115004833777046654495749901948173822392397582767114033109543938899179067081857762204454247758074541002546549563405713653447439712632106086097584844649629095745137640620466273057618116431218240424812397054288875140894440786973073225228914847005506050402525581891619941314205069479951610981654000121940475893352581994924955072172837567473730702229595961652356135015061776982483437359270797964802526297236966787089456743901271565324780654280281023884497145414149736271525573733107567222025024323660084567658603244722588702422710532028593074071410808593992485168925411908683456236015794485949068935588153341188886249708463555163542602928451655213778134160535607941746254129340441987169015811640814900798271889509178087506510781141686419166585994901340340802464723720104541096625871222105234837872553721674453036000006550493574736804776569072923531476046126121427718452436337945903628952376067814478648211200855879424143926083326121120863364855355906922358109306218144755287594469779256503078261102694107829152469249165776673538549262191476998561578705344471736006117816073880382351377353121587637525311038052622592704412712158433981883075493974819745302938620709182451726804180379711134904839245125299594998013099257406569995463945982516526614490572022964269293095323702283935020995340936343599228394138338240786364283339575070173966667546220432340646452990278289070855121344217842573508498252397222677881638932706083377431971408805683663507444356537000772852806506611996887371377637979673627337377110166680749472473708332577232315828934129273236495488957453321066942664861186378103466721982766427572069328875735082881730477215493282451090331914798091158122887032299755923432714610941437072117876271336736935725502884086574514317666542909574424441533893943630940988662011736437262943700442250916402959534477642895910253184529635021094727496218404020134333979286877600340501778798155375401538018734614716874843015698475250801304264277034311920174196888957246755469358654836770072945378876502125497801083431389196533875560213650459401197989160531724340832569104754134950504850728163055369464468200327788503633836252476333245185167291355020684248028916417843305504752018405610099141913026985762625819949339788799169887565666486199944693593507676139091594752905106976166203209813431043717454132035872994813430918648051506654045001712982384049239278359755187239498328329651800578820298700908225346320425390094160830992282701199496258993320739549259823138004197616444028794992918910728764516879629576961323013461816820319147819826380371588311849656454766159530280964889444207484959818968345396075325749662078214376567973026251962142614607586074409949558150705120249726190907157632566629350492255130997576703154667657141511707936833757300644167424868360047443848472612436474073442294850260839868814982343114942147403502503909432907218296979547671882757633902110378362249367594859308166962308656474308446670511660349333234495231021653900298327759605228064795022158312375535270712837079939632446623339020457785835007341653485810166917686460524127559140650414503578405437202080957920618251496709763574020486498365011335697002513437795952976291904433416155987926609429702152130715044823105448893759910259090153818373058348714018226913303138204893939544561151029730721847508834199907169421729746555149955374698401424517306286479260550765176789820379313939044024204523439662325563263543508746662651416709504107734039948322569164853416380993544356550850311096283644873709028486161140522733691673394527901381880018951633407605798176905153744219136813992997318135821656251077300560350348495562537887053720251145129082411795062426800085241038030071772506979729956252224089735039630819560198890715813944853776645159978096482492587200358469012339924362582340870101645040811177435586859862888386818788735568252601240507397854564079856516177110883180379717894617218486614013498835942159481759567882377982035064546795302383436112123593103254252809937336250139356558528174867201427589172738043624933111048354110825757014508940784157869834877893258594244597208215629859917933319810515899376720174418365540491654174688987281399701902338934696391709848710226087985523842625365581631795608590309049529805538379517736639522468893453253399152673430699103379065636917485298284460444292109457506713071161122650628495253663763688565513095436311987036515308023068188953253384975032120956409975625659881782545492487354292251754913444279737854771466117844956288517983774904572896185298903727966197199696460769068442472804835074916114393011824671853136442681943019028418247643110245204551888542441620274775440790354155540885610973990915674371997779291788947347129092877652567772215069116347415433113291910398025888783357201433224908199059731282722703494026234995125554223143560498392467689770628089621051619889223271136337307381731022893918597458288859405310714973295146733630760424799603909701595286843781863417370889657053722667450464690911741522772066927903901612820336613861383106724878552858118857124994212638993483534677054913585623326110145174976424089010647230097637234319409706676687993771474650460226781542945181198351546553715085367408226961276719073501322842165995293051445760925468307079103545229427017598546490260588406681629954321071494763474322003447673504824804590607824104374376591523877058114187362625300737150739634565499076507710111583470626718994328294840445561026064750547988068428656655420372696818921559606623850341747576322089996710927273080610070804065039567752476120893140682554552870555229919487089236254743961165324459191351512520068057483218531162112800005830792660414752005332453462685606596389751534268581234670986554004640833499573518677201525418021443403544546371172942466988564577573565758198393181631627245307007899111261259199265452939352914611542343952969448848975375771990805206287424165134630389931775764648164936524201428653795366325168011135750281471590273567254072549981951230355893483086430342800379109302883929885780654135868173221204863781565389838410173663728890993777416194039812447523154489587313794251378426017912690561476383545670049474649207103167383618791782865711640874429033751380693594960317224515094113226706725053112970941961856820112556266567430007188861750096666833877417096779258691811794582432439334001710909571737272065013759600053548835343965652426504768582669275637198535784793583041507164134197058502654700510003509191930278353710057126237270723190194637956385557242244464335142115787370537034000184970081094392671497851232186520479394390022035218901333258135816990989065654486622151015164519770350958447550586682986486507499001855513382030544318528283773106824831096056765519310632864211760876745052700369648118481643273876504242861004147313368460168381551688587492781489403681508444759949495316264413003977365996894531994659749560486717856969914283827368667624174836943665146109830864876816069626815139611544367836444684367555227149183947575006979064015909679680669191957802026340506325467113942423982059171941840093786914666829695750113302862694651701349838778972539198339522260901325509411060323056356475326551016700248875915416189429715695361239719774859783156622314462628107405594173250182931145027961331849096303815677028391154710579463892799213287382032747888738116548137645114377508256651795913229399581902243038583137745926473801621142791296174122031681426737828520698972539227264237694774630067652778504150001197297644265102907520585128794309687851841568016402827296044640985528895225845252773920288787248236399265704942238967634199049648656485881102051418971006573896619929227926043164499963819526486483036522148048686398867867206021446508957017183629996077709465500308104360592000774808664878747488650090227067603481865724596910555318107510830982972152541032269989016178207286609383693887463912687594375013614955910464960185809689712697435082773125248945688212830528891869379112008768764437122084721859331055323291984045409449691134237459543216358281726029833913449472120868669007574323608435528232240479119691220579380460852569783326953278247228298104479774046948939978243052875301212745520026398748460911489836915971092143382836937026026466613809366753842071044417506459111185714292188542957210256703437181531603710495767744908103386751717477066669593755295129715669762776766522864962022787580783106913135894147322519322376701832663787544988109855738955510581570641159839455214447497549051292599370621448930953069347301342147680319188547591090691114060600521715967258254628944086251798109854611336052369674365399919145809267933489965029467658391768623603380144173809687049462353105054839738429339952457521369538760829898499954915372617427198367759366504008807924578860165824318223323430730017763438682343559002130657019764705057082133914940750776361826881932003639910980679665470488850942981546624850968770025038452877302239345829785043994351762394822131577973481222143799799943471782157171052228649328362433986062112361711330622048591768685305610139649161433232066195218297602103100209859775504197913123917291566120833644515969673109358376027073426560704309759342218704129666209061831866227625071875503705687701338792268469651545568741908547583390333116173563992370449814408221604479125081729050260615328148729742003941589699336714761339202787501711561792492819092846868499648276840321686963597343481809238296286288842882626541955610204788151527686801652441236816683115173266640618132776596348023081968591659134458956400550973847121361655804469335926225783811600921479675487257543664068924115184730063223679429003723189233738069814113801691106409593472082889805365556820419145390030085897223987128681755421369794508243415205567684875688305648185142768982980698347788647232827604570585532298797253157716204936210152867634294287850366345396361621262200827604124355417142231442669271877805424035577177297893631304357445399781027149747453384336984917968105088260207092006333329144790395452559936187357289306480329855145550040239781924112216647197290643876182268431660885501552114386754233304150524112281405353819959020802464909563703205479858971889898769291569318827869477613001548486967229440469010564876786911044533788897198178913054911982052628670612479037617695166385388751047444458635785235905046798548475597663302247178492169597571141560668170152321975102222837395601847494879553987901411732304614598444445631264282809542146523674690986603265192175768707038751891377292337091955981902081324795101178130735885937609406072616812706964282338138756484691670406059914138302261565074196023311749594357688399893054420659872034067354794123395661278099122961295800397324457367498307244101768616525599180354658403459441363486717960765111901706557328356746467919391395145451674944166384343708485409579187550055335626937506024246520523063403111480177110200665102338641972444505746945919771194348335933821768464739040537880860275210291376170911701320969297123974086860206813475929118254890229183579480501528780219253632244139034940115888204751890110284172738460021166689789363774692086889424787013105442546551145731202136033516084883423293395280772728216792511703872976904530396021028711876444756099135818918862354295160653828811338462969390469834510559423297651905512751448550640778856154236928832730453855417903880930359145168568992304818768382546777192259043142170104470822781657570794824040090071912214247847853913574139046389388296776287582954658896203048156340632527273697270338905773971756687637555321924878726713478839225481245857885524702683766228585537339167726071401060773615621338056266904536366795091006706627946788121712882522933766098606905485712451165439788890121262784165154003677170111284262118577887803813736907169732017768268346788810804461662879502680477890820588815907124857267101959438995645695957208157391596512453726255345084300971200123845873483208498296454653198913352622500654973433958241784215196847852586739449498498899929489871233425407476563742194828761911632933619613528601783602750860761340606837628391199666570152108297366734140893215169256433865257243881536762493719599862759908009810310935717694081518586911599240482723753798677314920882943578109235954322099153102155290134201914437731529115645764076969361915908681754513377680458304476831555012543985446073334493836698430992418973975840717454599133654722152506536109991968010225902413107363209927063436151027725918787789917649690248919177984562655996402933420223226429650908906513800521948966238839070858422505786694662434377845996854122935713274532884884920405905245511913684191858753259433668319786188415990075251807784709199011420626287391025656088842007014542544791072151305638031546425154164601434913287522099199818278906179250060694552419482411263677555147527492573993392259641641490190129478020589421961651210826360636439275079652905266219429617253451106613697922804878395870748627477315045595881850082150485768371137407656410007926523337476621323422610463815573293307219695551800789283536136691132237473603074769275558966040225554778181009251274192931272230339213978056634134949784168908070286647635685845316580759774960523610916150783119860771010857534053965908156004997479436095909475139154765202213562478778305684051873459098112053844457938570719636392097068038580703806040053059891871430389645175953500599348058064601453947316372009296642503977708946734609180676583062732957705473757936990050091186533812765872182986202092547787047027842095454602218558370361908507673588416051493044656000464978878711912799737431848401811196474612130032358674485416997596297562077811726929476700417143368155195053499350285713837842147941509813949207103171384937153730470291553767777313094604039903228607045247796046017705569095795078746756346647852649236494025548629725886793360046662662918026113585600270212924320471121056692693654201230761065515851801361480859355321569762259989037957270426780937703110945225414034398497249346214807000429699925539973127866863501489885723449702445901426650841864605691110779057044111694573571732323766591862739184764934428058158732512480352296141659201960569240196331611905152129101987845023509760756663219692290659046441113194724476136275052476457110112911379862427923556009469927700084284365844491860115134637934278493778202267763237498980058931583193974295969951516509002811826151925965634218057209061382708451938339936930465245609327835940951608399986362076655180548725257962861264755846230046060937189405775533704641147302718214745442962915713359445899938569890882839854389397629887008518037098675196599317283641707120709980904922673759850431695487711336300271421137609824644003291371228778530883215042211008270777925847559922772340215271437415404703751385216748271651100532238755214516536002250882338690305549904934903468794807042716358045960927897382432892315039043082694148925059620620435724864515945519377536485260584431881376970482614971027035243860026922464127043719482393026229818541264439362025959434757491289082910800222417649497981456651611686936701059562762071700449911340541051231749709882063763498395771328697494127976732958936939219052089842892981103035197989641821514659808258292997785767927666778964587636943168717665457091832671079513568143769658324126716569310629634524282490452374466973424578092605969668453512153679789597800280082865582266068796136413057555639534138371135439007635024279577858541977762201423212281574384763232709680719433338001250956143393366110728755096286361818482765458538956820622753980199283875514194598757282610997975579425280804384520083354036129120539981292328124934938560429198108736602534957448645969730098074063966624965375831591408551849961247284786239113111707585778671900271090536868615299062453948128370841875362047441901525715009911152754727105973830309492987958715094518984927501813191849128316111249303889666418397276163075986204010417496746568434274778784928624437879697466118266731090915860727519400553530011441194047091860403421094345238390124494541117679993414209273799822587875681123125906244831216764016635355238720795361603721695472984012129435763391735091631510419820832348057359047802641223471474067823796434826979198489944188085756314209362421658562207910761069415869201920808307219650468801120730221210462995202567581721677588054774014779303178180227549430571676142252637921080897994923280028648628091047996534729870679476936573533670788610840984069691877058377696951956441010236183006524359684831536672755732409529816160868071410515948410191463406405673009395759596466000981046232335691902396546893528171496730123563053396765139918621295539478735423337054230082989119933480507136940543606411700719164342705192895809900045301578818887278814598380854769634138208342868867749455360705035552354881452682684294208429234292936176987836568268492800633867899165489241111995576616191611979861725259480464164018535204235948318658977161394718448818614062302685717104406059212442157853080991299649187893724609688675289039623209193125786824571611853181910058219561226072649648537877182604227631547777840956298656468890761355657728784415034750574578194579174034086718571855059569375460422698701826842588252860805338018556295819125830636043636718248754663434940897908068555903366007584373262651390818631293319359598322829140761984516226545446319487557444822506660630577521512932453038462329788797130170828822058574212458724427823690711056095583162105037768547563973041456975543471150028535881583811658609341628321064987153499201385459319172858319528090161610318284245015928618136779162106606293466921596655806933139118759051117017583142783617317664588066139952960161071773815411999402521793692084001312352596125352235910433611340762838089689617473398679355059396808363526651052281733010679675051312044266689928389528850010551710017932217699349955071805882930849360875563387071004554758868881822850154911697753582207175886497271915960054417556632346699299785262838509740199200339943565805256464817112692700790176625148518886044380279808264546710110215882502989680647858133267565148348834241079863995730682865340686567286144655888878375799589424567712463627546418291120990755647339197686573925111409340138254456558333284197874851035841201498767773709460284390094653591543023488437643453424825978468792707802006513618781299353766216409842348611604216793449320367507439061823311770736716472850079425845810889844872320356647642991782027760273549692684596493021526967351417041225572192137562900981136920172009314915697639855526339707939052627606070747143480746669881619647680456238720094457011352696929512888257525170637434278023964680837619225845188324561952142487433261110766405626269018884081359986658120379149137296237556664174045170881291161710859570099420689357663497260983884816836076755462130929195655993130151782552124041258731996938674729458488544297939519860535298919208533448356348055987013714050291002350502318644454248665403226341530483040748038770121451971184613182453018106388431295545933378863577530972961482832473229390295054266242814481844889293898379865888206814671535526327057618625940823834599426544983945026955416994182852304687284061607190890663072120470576931906560943434699471185577968011163444405860122840385719495927756879411497500295571108774353250285503973401499658132404021854363480091792560838445634317717248505811455275495805294672347168306983895751908159794954507969412126024406897421714647390258102764940845830290412233734628798662930197069955445431138780131344156611789828937962029727875161482306735857181073167931042598819353436335282462501552119355450188977210753165010368016605976337160882721459836323939095896873865611838727382814054122341935350468633816592283658790242295442912150883271076803859733265811814270204230148468303250317020400248690688187771455689384556338051192643708105099733023685808604013822549947544679210315368567509377941067697100697091031819806506466166518010636413822812831913372148395932650595553551281423518204496735064298592837823138403608809428252777035231016952808676442977908347662334313831216363582872047909875659374251611360444402968577640224061701254482870167098308836295228202038122798516044199994515992987098598507570854211225278915904057770401951256487984979753633998327754840952553545792137971374925537627741121240096786080874657391230648424776540357220843144229388083944128163327079372345072426042558952498375046488575885947826831772591799236976651061947698927771848701705118850081127120167785534524218570796692681003988909332261562822310773403726063379242406044477787781465378978082299458793555095757698165126518737689889383835431531144228351624738750126080911679902203648945930591224628979078651375335977987270836785995349674949718379195347239672222705716423588434427401322489277002869983300652143870466659403745491043849920477042615391704265338638312707374659105543932823648042907307285470900804144628568290886292627806833636801096586099844522576390212772296889323637386900533387168154550396974552870897586010565256094111766306526089886814053902100798961029754883189811312126947966278568590912724037776635371233360800973735700605596105710100286271100786087267577978962534460614418174579031138601587378791530127036943351457423282039381833796474988893779273450172751632790482465705049680801104700157377706583466000024346225984201187844337083021344440547245007152038156711891133344827437423026535551660166333825629106260976272225952701948207016703165937722317545631609721290068300819677731389861506049951855397828804951356938091824805414264383371426132206183736502058774918826552255214224531098649014553297510458842006421228463786939635667837059971549290434952474111492560910616760338219718932630160226440862153012554514424142912684709608258363352319132865138772000140083408473645912154686921613208631272756944917312418409221644966583935924770765936009770527260139667480507298695634829956562089669152875510600808292257346052942744266931379696110436529829461895547061738655791885499836920517528293377055687245904251866680019868740273395151502106176511042979974412254213093753237834174319134116802127726688528700115071828708484304241791416466085705444172980508689951478871528431988634112463571597163742080554985359164821143772107463430218514383112692047053510576013234892629289727179302730160398509896920258319478353122714722515272401342293339718275574199840180961958951881111951508840424105937926365550421612623325203875928825662790768564775066011762217437123062216367193531309233292735251121858691360417441958028203785154743969503485934448144486747133208402775973166965704005480471879114330794427853030631228338396355598284610179045527445315901117540562105822020717988719629075279611643575472185352925549825831749816105532836807417573313801907604263153485478784532378073239628444256723770368999994157239017412551953601812091667866200011527795740067093446114134797764906987871479944708823479917384617321839865992303316457187352633525554984267155212769961487501136685086560546832232416810043208131719404550564996561822746321457459966921634654000662433955421758628431393576362422515157036250734399586657188559840903554557066434016907072850816997075058827715506328542336382352163893240223752742034413812807353494352771963184326553579143462848070966242482889685582686767114126142856312662365778769383988913095389929428379041531753739731374757103999406302915439757629203629325364984496331029389388574091360113170445474670108383356160914589066659381677131474562106312467686193576681683251816067829859207206022531698677975047786693113877686250702897276618422182401173268963118178297525158580271040510394646183548008882323808290147809222853952336374000499383477972490078861973064453029060254764995416423037066951001702080693525810225121605992648344405508607085289797152187207565723187999331655641352592738355540500346556049685487374147838802097470688299875769567036689877648483974036213787660116254012488154683318331186537880777422742988623641973656924280486955009989177794845532036035616776285475344614955816573277480935551575203078163855116918685700738930768813466183887850635785039670022430459797249258375071684445650843769754201979734247741925875697382741501798899511214511960700207025921518394600979824082130751555030755051250359590680735080486807006766090104956776163301236229925231154726676240482277065785212675599424356898918082721361328267788886865302246522827695020590895824770735695491292669116639725525256350488546932513047554093951138093246295084831674010824670978128482697058180234370585614161297421985898743903433235562249508954720725063163621263031440278394927186154772013715643775347591140589475982557887531886251934352159623454252736071837449216138684503542732541021588222671978624230704013068087956546956275759959205701963397744318116681020823547369639289064293232008156117868071933875974896037274190014149056250803420490611411968143824866742759383242486109033352313110161955792998223196245629883818669964679966440784943386810870121532472807400719675191897263557756078009182660832033766837025073235556015288957712228883295447538560599294773021598306647838232310697631084342814389738469000001589410996286686632967509917447228422183420700288240790943879388168021464161116600902602733589832317191340127183219658076199003048762150782372958985669501690433933023741094899188280464424239977082903937928754286380634353511419343539346215410891083149196969664693848730622715085297748751228909478595383619160677479728969702324279667717052002440857716844127337749428866104525095576272522610725570568236607605372447639081483265768350443544018020392815087559757026748382921078048057244251665921815337995768570603058947476405149280682795546148939911890393682901236369638757989502185568095545215978133094969567128619398173390915679360558665999368020470124654241179040474019938388858361569232142334693892991618594765105881705059648702565938410535456365245279863639046025399344878547428357191150229003883445703774339508151775711807935489203459260098773349292118803350553308347897395295766500058708993865983374068138308476160714402753203507711312850266986680808857465102171936834232859016930218671447022214289769919736493700454642485555077855523853303759764614940515744945078782602162826157092291420134293910014773299194673416192239522471903718121108098334305576203018854741970548303362438223679889124480856891588686366406463135121147595142532193542400312412270066906756053827427891588526248652794710569666142444707655085303055039361306413966026358191730999378519875672895184627882398275653125853559810883453221944234396865713834274068655405153544086407898394522849683124020551727080394561361519920787210211775071212728559237296994522277348529308749643442601336425748176138374492090364972211853913899143067736476334358666749271441968305125724884573806993228435502884164322826959739161081781793373066502009950023452079752745854176016553033551892266250844307816928163668264441197033655892728041702359944038939200153168236077757567319040059055127908879679556286115274583663500609246768099981727926408484742696462322966731827140228501243671437047053314421623664440404758951997921993572270597892752343521738039081335052681709971640695799567621683849470722013645236966379218148859460352840164700178455594954260734850864908942953143019872690565237584694906724335915264876724743679662846785817804488216535980692697006790384212468283234969614941172094427702452204456362277073959314012722660484645378717476608597989560615348512354206173256716914288114203848395629401201582191642184374590707941328025410935658262165860626987821484918670890345096076785093351302096720223759214576741712411247893871795962775520008038115640280268360079475766994402964555846278880090226696582538557235642533298641678392918599736170243678798422643245907515277787569398654132672952560145173683306540282562070285821907840444586629672544183666805419475594650574896605200660208687447830203323697409209041125044740579830471053572293155512417498354676359949651468186088927561242418963521256745103260698459570851839977084064489746978161089198530930606185109905299846541975836738988190644230584295788853509946623149777525662706684077363798784227419485685704124888515159240877787865720983220518654955856052026581129827175785843907326270250980944204991451273138926279393114261075727071648171988554760004146272169078063545429561507540726830747094075527241897250330534925469973253899869585240933349733563100323933082912614262030449869060846787233729382989618061225935792003601344307917960925941836379861999043342597949193596479091160837566342665531953388059116587493389710733083671328808483005823067993490143144832469199650201630938164760797395137044102546342653357522027184600971485668974361767332501926583164139898168444978645774151760987776700080589848127631129070064949689501011668920709589314154443069483334472344575601641398257606087668570060696889095383206569558088152427202569102084522336774217865150366655118669742398339544779253406308131415214540599516666009783657379578905246709452587748849000817018109155534458792460023944317857208468728849779822998867198334597334872012865414260704492155107760656600304862225325087298283033688139242890563739380378082871815447816248419105577196075783160140601089115035706816328510469850513691214854989746607171592957946776333653960217548284659930778365612544985355531075756426913338911137381410014880290103509106504224876925834759411504925921286697303179223818634810546674045329741633078938675132545048006614955683886182058145191765066889577666167754006010242585040212372246375329426659792522796072384305606936102862037224005756157199793466441117809424684615554852531846775250655537690827750201309396469004028749397479958050872645939542681639667514037425055053736287067865219868092737900435317095105176505514833751760668391686212357066313069325752913058739568668186628087410193255569414211411006681122004957454426549993820166098975426387600080725809400976279480031518612523892491500445566300119640399283514969155060412961462211043681897992567653470144297360707726726481129848235796335677805308443516307731719123243691955831697216524712969771583474083000839625498863155907262694102763918221949785151295683168138204514068511095375736198354972400206526211258028142424574639922906033499751892948353490989839247302531858181267841469575349989190845611370458474572664581323983206878854657608482465137663366817408719404917055824591266734768348696223098309619033437517386494980438272761386806270068429821778076769778588504557401683315168344309106414842851381846015415226897649280440566263227590010622275522335947559165209650066701758242700592534992139015338254064691286056128667246104876350875278617557096975134490873633006089579759466872801334089371925770190474492606098862401698502107468071471038432622635580238520622089597580313801144942912107055196798976201972256826630972297425720470231826730093328197431304816773046149053471874329906588779169102446173359193694898515207303069193011508159868451166336045787362702747212981652072155080771571183074792384640592683524281372638208871125369248910879302761708633148789795122830695025371829160465580930575132224277660521018520096599692328146220531082968920000207450603364351957348796109597545045320598988174235299020207156049408284184935468755178410172742015190212410394281638878674401600392951216414145443711821033146862272038781170726637985232693978767385324675459386335179763715143933262149613939113332563893111129207654310600302729301776377748992308060201805168831852437595202415479813925625092804216946682712680640819798280905436582738934240331753033321954300944735996021956502916738262940547560960916161268914250337215367441589003854852179314421905525845930498894057676277269876648285961694868960966672379533433813932639250934401464062686045832209107507256177184892006123719734984333110939149410696116338878691086820506038061852852474404594242010953206394946373930642584924243907733536797457696785623362463800183663741408560317146697887163765680214595161208732273906463536520693458140854856201253524646343847571873417736503023228946051540230226643113300871824652785784209471625786618128900631737638884690316824956623279871094319585040937886795267867580435623916281788835739070819536653164243752270393755757948486230086517502987446990036956578517368821890420315859436726088450751589018613059032691712508491789157674236509763937771775936682890049777539418384677751828342361968683067139231299848768986742675992088397865122243745992622729351933512051876858838011121175139159382789217239705087019916648276731615201177513882756977790841060032120076595336816499563637624105219205658166267741912545177502829067815853604353010604627741527410662782662803974334799429216038442521521132733153119965013109072914886036021432556675791319405332043204741907908806836314951114477499795336768163229349828140085008541750779933738015819178801210640184360148953499754759499078104779795121185837602339929740503735310946282459505725527138344272991028662117153229549431640179183603348357176201241700425384362031862339556252382143548566287966354823683066813691951505812035302480155911436573745881833051097435964997132808106539946068492167177771824406998833183205294586919304456372444704249679125129229651015949653673141425292392006765168560603753305141038562713355725196013014710822849457111056355219498595206693320218280737170329224056744964873930062554291360835983152890216121144466837898371770166912405534667000458025805008898691396343877704645872366801206909638100926995988703130848873968119259754396188483379704407715492548325388289820103969510456507315900961102179332736926712841939776317515901996655243468185328860036756234752950218518052059137125125968689407245229166936260598689195634360085934514086887863467502126908392568040692668199810046513968648754078969745805075349490975440160006563873560646748075080353177907946717039748393156440714842182939910764389396370788353988135323610897092290853701366166559722499479816780069540895012750168310935785945996201779471256784262324820116983623500539269198724634323286022482734221528827226022020032764543891002045530992405113131288958489585831337808815222961239378161577827978108704676457145216870453082372009486096062397355178990377953183573785825066566467398517461876641360320358837683421062415409905294872480907842027533657335798146431161258295655365296826240859341986181366218499337297323115203476451686073971135769098613992561845561820923521624362094256531661890893415855269533562200057156107933911990187851595566047424773193738954932475606085415653657187800071118143604014628993969937210301438468980281504471821804613982033421624292652136916314071319424326667118401931519386243787562636457718849621410044499004053019646433394108422455600521990862303439180085784375841247008886613366388864970802667868614681420192737423179642598498866705990045973771049701311143855009197225012645413529164140236823863249484108491007355200162943377548649831176188487807112507972579866122935662342917208600752323938002922678018677773453781453673278282457959743238944327922438896590078606692253567395635233125227421580968851711421154609127837330656525497715919085223253417959693900534902346250217658615540160215264977743515898852335103909840113661589031464364713331897622775547109085179575703102810138811467450962967412710640185276705858748276512327149044020980232169906226219625841427801006096606081535791850010799457721276263713236873260866769417898055944280302265751251283991679761302972368525025968282244894198443894984026428130128881357122918956723683764102829176119406997872275992180451593015489685700332801920226523727026514014984163856367312619757201530211696285990327055905666017270495395563148605292778040035582752690025845193907266669759276608723516299685484516810043591912951863923889748007703924648825789961734576475633829159235824327167522988655740395098164420278366107787352095610815175009202588265116679395374697306513866331590237886195511475259552225905754148591226111249257889670915486232147253032907329699975896891170845401780461022710953948703288602318640114842356689833120801934870426711926750704622862069593253688271647984429783667472703065264001899775229658640389464087147629673902876316167687962045027363018779128453390185098966904786585146143878525176099986019247637397853169760096454999945325190063048676827133420608691480185917451189451234913215653241186128879854229917929987999282949311898853214980063425103434627968590798930900082297555050566770709302399042518030067718281108859061298499167818013455027228678961794176609844411664803049994528097369209886744430021719344634321820683069587985474034965264214292917459831536187553732894369592557055486529892944193077177680339182853281188033170633192536647744118677318585210071861421841602547208230544438463188340644051082764648994511536923912590638185699422250834221990081328850623362329776334900954545373044755391429255304736291393857437666971582404875173178765482330903179013258140639840609760749624402700595081793707136882325281213941299597040980881212665264367209382658236134328528403498875337760684776953877587534323348075301364558424804121711023436687968583331704769427935006775399439284340140639661149671194378249082270826145634051363613190318700819639046920946060273779633846611325356084961705922607414781226257337211091284256598526893162780924653649867177209632620190362703277111407534496928320606003166156139977567851173022612617146044675764912518142451496893855899816041068635138337536165317850737119828427612392241245129847681260528663134548611623177104243616034051169583406524201093174527933611547763790948063828726995285674073079411355087290285220455329345958026626534754144122128888025600148169175385081599867112945623760546242480586016519522132925297515301078490619061825626874012609099471019156016833796070861823902038196140679663218286333914097770076923931289522763005625942866140491655371403990745840233245415274644294989399433904466569172857622129957287889534820388638577053203529372157509632759310403918651169967360308407963528926653179009240031622418431942267288898273845507259332020466629292849603250049996172969483217059722893269264013801554292909886181479344823912650070449841013509912259366284028249388622431359849519316587719094402369541150681435052017065908011403848616012744876696526254347920039847260758104452167100406133943509753704106034029953761075382395672664280612185974384934187880804239554125883010588448757055435949417970693873151623945656680107173855935469622534786237759312765640837607161331367719030132118033942732927271855041667655534104549704064346963484583095080427232886956951962646330546416509158703846318556806464375522535652217770481916748159333381094248072347746476380363354926693791040758828976074935727350712593405564527365996660245856787460695538273617532359749335248905912197101670396117203852299346958377296242509136663038583535027936336048059986754063007095099049404497845406714373883074327521048776443790589589550879073575834579528289256531110473295973559838301050536232391315433084985632872727942530451714150194516200297730329139870283628654322589952475983667225051148709996290322286354686727436445299172777945938293542772334014985277994413602232510845089605810918692318775961245695651422560999193395875468307017383247677687375835894667081169030214821519798805101026283024212645048888312067672991120372819375842696652391937845790707152423413858101552624952398914607861617323099034992721270298642163001898235865584321626751216508675945999440280943684047391498137986314974773401097380870625908972078825542156177307560272514206889553270374082346659652302360936434864952523327770325327663369765176989687586733624210055264411681457991883625086772294324232159740598840884437214885662140080276596302796746412243759572374011111772716132404761066428973972615062812718919326498566934612907892175715492975952402132552580297526453647487716390649568673197351452217586611268800892666270714043312333841123214872252852913857536873151226033205286420837401546201957139929736769822293247863054236175357127508520015619657112351446385952208309508424089990488613093704728289515640880646665718352015612276783778405368396058164031073409977306086717382743777648426310253828420196202522129286777371618993787583579896475759957097593999369449674137679065069179266913866309556036752706723372875523086452384951529128590071592627756076959130387799239254635952601189404280205365905305100414101080515398457700919847340758959910456533243439217568840117462985070830525583299587956461635317901100866544947118698042265156396967958499182487518562297620993671531456096242354542752172395705105159791175983609634579998869804249923135755294612320547029587276340582603332249771510209414681160869373802243671961337903475739282797208472818725240031671963154951193526377177216706832235254463164114062766205751973242936969466194352175465689166112062354434804295266238593915852776140884959589548728780939092060288988269794610712892569836383964887208619697573173232103760500245059535985778310394721853906469014966123725010151731479607217856380604090796444969977147579113801955845086265352852818508431653181626396471220665417561679019226996486425423283707087354363035950594829928245050411306407414537148740780097606163359439842172899517053285520463914578679607344874149323933591382026304884794171644961930552097410038219353106875449200859368723299230844271544692808889166758377114617793885642613945837697117908102170869935400185112822187893772068525391311831211415080449828335988839378467365567154070530116385448372273823310551622492134526626994744942990925522173423955945288297770542068062592070658296212982621365219799914297029451747215847182877868817252082837347046883594110276004429172510846307736673669432729979519416710187519199195393271019061561811398990243853315965025487284484053765495352018461717946717583537323531312464419857404371661976658063613955507134965321578710212668149964181003523107194463809727774074672623337641265285594458467327917785398267981440364220536148789099416274526809698293795443441273751623038560575669833132206627303028409828730266534596570164283097427618674086326938644577614514546555696472895003912749997001279719826531974517648465162012110361662445514698639802357008023886611970968230163716869411992655488242811811129773199869897562383979146439405110464738190594160347421485418989810256202417861613034107851070409525459623347957037958079319941452913209798018981987175960427117052080557351829662026577961150848271984569450744494838244473828431271051830288833019540545538087739402339901493707597714895589325413745106324100003491992407051255140870591353281429363680519696565571498798880946909964594378635014921861371132392117138195386833232484152569397492617358494236574895193402964541185745095319058984375078747178067245789681099317309736894451313853895926797038623368544987929324490810950464670730581570432171523709643759909732198288144708969574418873283690292912354398006230013525351141472550401831083343400832690647714828836498849505525172989659400567580938212100279344258019080236741605673393512476850744308634404409286967525652188626481175398331913389793406800802115477054921499139537465411369917156682229730816302131929545579686968926653503286265063582128801655052192741258582095972731250988290174530281525710585473590156064080230433410278576256405197811403676050708772369910510667234283757387061155656892908714001159558416455050090292279533649683202868512212388838935971558765111145300716768002553155879564939880816097938305231056107229503239338163794949313871049177886387726620001124956635733890966189115105701629445825420287391144354319391461335046985838142168263556644164554309987204340829804174801712819606802827762554744038984579302971975337087151290275710012974237962106278730895431316916289961146970314425018554004085622066212201774710678845081027199198377787004805242696301779467064264031939625935404830535845461569190827544876999090712660646938592184103146202044681709808020792915110899042492326257785213107836557567593854188694473418039373233661122525082154755618641830344386121788401822903514477751838727286322345458905474960768309093487620794147233655033952474091161835421494490451145056007853634409858851496793428408021784619808169462506422041910969055703595772133088766071653454554398751479669017073675003262214400570111460309048940831209750134012145208861589288369859651735667864713672262364865617691571436378740009127114651178368919929044594993996124754550593893458827350293254630498760326190443584871296067352180812874856423690559611051438648319035154065127639934058889713082075293680327367017620717616066693612481501153988375327641491210030519196411216215885721009234512224882518768741476265755103925356250629457432898156524560113479714402274970738722464474488571566195675058401152372769927521219848081887894439786186186366357538250538033815557506763822589075378890071882221055174822749710511388105889811531227260044497968117919927096795916842047170628373655443568365444990762334418296854611318933679827796873440411848955197478498898156548248387069888489462268331764011621589829949027678311248414526489829614203951568100086293832241706876031281759701592397426677301020139858676094750136470197027183112423249783841833908022578635325198913010389128061067435850911461056788836847095084493292551037596017027444244202754841499173456445876462473401876547423284125558434295930296891829049606147030185810423279258192832445959564664392332407122124328456702919123466177249364032602038228501939348027143510065233095936569219370063260169779043027577468963947675453157283375226970337394263903776447798008672538968212385663757458294763461184155300080326306353470423092847787981547386290652587929478894785784853695431204708449055487399871200056057428158883948848793667535358741370057033008803706775175880348344856564493221989650269501270164378913517310156815850918976501369989067052759966786798034147993097770166112574716184343334375050993963948208144253061631243548403072164311492904340310678986979615712027942034173973896456096710082735778072321007081656714377751589459469308657014284621934701302631338028573137712609597655897073689608339677637711357277900690739177179182213428593813148712539590170298745668563058363723324847070490438774728417560046695385040689371357991099789768016954011646412617722892750334295803312780860081426220318007780179123182255526311589927808828691306907807625506361707267142688656423081165373187509167121843307593656598493409070249820532492275162132258585250980386425915890126315140565401913952645040429382561856956844068082454169879097547140409421392297098397687462392566007952409389592881418371004707134081182964089959318906168308614729684843069369886423894403986376791624442919912553746511083136644603584589436064322734242954687318365638130043879311156151755973987244832362345986695393697163588844965372258307607253979445581159029495264732980710139663257706270446147755767182357643939154331708750653820334323755294535815292361311625971852222250332050933106275831427531868428061362183472240008371029330814798069105149940750890108046165222973952167134822107241169945881125910169521424810598054271849652880668518010927661035354601388727181920323592264008652559208164891820841598108230028438655715570244183409013348429087232712096015465599767587181544380387970207057540848636139554376549234132378162558103166626430237758673896599616942046749294871664717714992088673895454889307700601075876628923527592568503405215462828193135271324237317974135444632677934658818695358985460300968626754164946423989935193297926339158136135645591420329278572027026608396308284236686070134450862692389302629181576790164294821586844339725989822306437551792807529948228741369987962958541047942550032848740547655860803438479305606112368070253525295016855877875810651814670428885564481918681446226004290822921302410099429592025036627878977847968911500742175692327783692721647390669458667103567740802829982423020262944849633316533045503636467440374471930965519170588401085074807037113516269445434745450541592861296420659731004681390917131249617320651584444795385549064478812585226780943946008804731455108496952649913593032361874972465984954930920265649338036815325609349275776407774510972338943401098026495103658229506509667517487267611795755458713804561131035755809227393209551356794243542499893786327906546545405136159939695105797609817296769331670964900320116731391439197321052364358187149178913773701737137893856342575943893752157177053288551779246452468964971218542091139260578071111988387613788331711268520030387588014773670865904297510158997018476077681293300837317107832344257137779341351827479321100301714350298421605899770229255971777282777485981334651458548662923583310942015652904613484061450314660972415299885627117992675104511326629957398558255422248851062841192319245733459324949356861875563435264354277880969552044082489884392384872438408619538444087184346727974099537410145156721076682645867639112375963237939654741953033829773576416351803540637496602163401520701615625121953852669469266531215880912775130563979965325383724207923379812920535893802070888776921068590795703174561191476203582758470141762433360476961507616560221160809584333465752338061700115430390384666458435152244372291848917659483819071015188603001087292912844021992442613263476854884851741893622273013880289408045488524391540182206704278970671592114823418985234210304335886451009284679265481228951942387148120828581696125119764274265577017176759090893137863309251663394433495921445178471169726996436170913850510879058287851214314844915224739315805855550448690787219909686180328999059476823138055648824532421035921971112458210301706015442782330258117019681972189388195809900899643762997542413642119855211993857847986184829239616242208648275695639440256641202929875219239243106129851372460747496418753399759283143684961201878546330866896507619088890784483251981846654277997652544915047781997941566996500573082387781221915287925844832714691209884285849582423373129349462657738404523259231447637199375126273453326466518275610253247157516517045630959299420348043835692202120017809885010299195521253715700144707639713838019952551893591152263750620607864612980402302527359966819997550322955684844594517798105736677164781924519091616114809582400614545109020038279177825644580024546649705405078923760293955302979881492778925660869516566298754670768112727570100401656965835282678980535487061883874574346879622951371798847268182133054891951132147580193737575532027456925190950843577066264494203960023577062734385989058989784395285919294028041673611124079504807772196454707554834801192984748245706070823441478042293668627500933640829170049587644042065850855849317698179732858281858252736932624060653137373458478838058802838304218782925837296729598781287010799689881692752209780083805870632233949396263439600932874138340038808189508718289681442250606974737810987512507810250810766591049074708620718555156087435935592051947434432641946398544505917525137906212145935981885889814554503468442637599489828652131073723657588727020961646135386332539261398658515300947830693154259610748871461993581943572181059804087619363184599605378107962550102768495460806342410133215458944161712512174603830922490352252218107950318489506405820588232739953187092456538507579105389848753758711424343367332277681359036345308787008510150466978613254329525446614249759651515829590438445716089925808890920479466886446971842280025312301462101859428280652191309322165597301694296554239906137997500071364844023726106344471943854923524254598896861637364621202888167216239435623482609579784538336073934120119173898426128960269393595770255442272411894319231939368066534449147302454581880629518512949711562392492285666741066430067337721927422849515514985165929018333100342199625746683529936912418271712132546248407416754372179066962992035930300074687924373738160498619417068290636472835124219581696848427271646942832289661103755786119629795342879258514284733752852621741351262375133219326551691439350013900548904088963635210669465074955209544194743412258283373674391612115286144027109991896442469245878403472826704981879992718678541600816288236526302011994928295996831576313701063032120125307892068423372253736742983251583457409163225583321123545018285735288938747167756693185266638393380964275400167261740679364696716718907562735359436606094319786073119353276067741798267570851770994525493881239853310867014852952722165228656622159737095710988325661099579229738969081083838795359231510087419025337161597300912332390546017019579461256503050240427047041203807186587134403768692121961771551411314519844783323569995453032988954935238619913026021450355757797571150111707717940433038398308975923309623655769651620388596036230202179171609504539557991043360634573805607003336816981311885935435124195089986974539333137359915505115796880252245585697640649513170781041172202390923536559961694621644617069159805308532678096614637601009470861573200751389715909741407061597252305241558346868083921629107264104801129283264267922587509676311708981511889206402362372678509508314614268725622384439573067643944135567969951058263292431713949084830572723010768714576020513800563516819677718785980156344606920545982092586227539170365026746396183552625694494973786251378815014078173667169090338482524921617475656166553312310845027094692234536579378219133906195509106261624179968607872538095538901187465379947483894032348583035495242476278966725937576458145963797294029097758900429566238044508409834905205972403351520887969710115711810483794535581990443117059847378752442814335406312677211892369648124865228105543177634250900504517224823271497600861845952961815817293725817305335952794332606561009156073396076418204769580826773524499986966937369874097248229566847838872104862767553656392286354577817559312404549355841844015912885839083644860294446079941216633093320235357803143295014547090924793223160390796616656608792751929285507084849079742492677829175187320377554468791970936586908699709902166021981937614781345089072319746920121153013689622321700811695656010989433630422168035515444212313410142135478124199117345179113516986158775775433736947597897251149536736717538368526553741981259434617229722784365117302886742237335114260699537333727640134972451036015773304567407017710296633683193546761303617787007027885811515042547044661802169115311590473466364989863334778062473433542083365672650003725205075015314976439329211972356307881966516102976583110980510446481587997656261938445682239538555097088210777564416104089254791648519884451937312440493072457340414323647944395642480623628786675070677109241970956757648213546422765006304304842001731955961227902273808410005312431971133084878045987309322690640216917584607638848539551713761650043455481226301444897292147500695122508489902339635878522240550203754115344142481760667201709396674875692368269202053733280433858378482331139900873108958006622294420717369165284712329990221409406279239119675634357484255605754733009738417114576327019508714965501731457034382911074633856024908516690167748301955206320601587187050021853795652227582032283673277489827188980178223593660059067546840978959086453444828161255050893416738940387940183150917410045594411180437284691676232976377537019471850656253271676795719036212604831522345304599825825111413677971779624630293129659144496756595429300837295510601308025710576438140127131674979031756675251753339899269300602860639743025780149851980812530865081671276624763850697372530292070827610820741492270197710774574731211388226636156354071803197201857400407107433808261280072575640309032415113901211738161851455987802383619468472237307285676221082855774895685473773284791349848618619721282926822386342950094655424760504687573928335995750941859142245474105008886438301234120816428406944625253473667349512064872385765645270274176008576461593517918870930788166117026906011928445549396816249434093799819027153893820928343867084448999738633595396211382607038981546342489054472954010361852900055503628043618470197396257845061125839531033086951617091509565556651208999389021279850903535146174790031856229582379334079678941637543059331704998896910366538412703619724118198924550782106929880855365966273344802586234534791822723184081899575721679998545860688058333813878040882394812192861705477751691616557761099863819663651365143778786847912541859389730207563746490712011221104172941590710449820836906471870767514590644862207663718553934202229757108566684783695184896991746034919160643982327662965350902051813536716911031215512190843121461201197784674313610603538396495481450480468667449961479101827491538794619923713516505186086478786646733371954658352317882233306914785056815159995862312194049725341552422101808643654554129864200942678323486404671409745189358713951993553540546081597467107544175594131885316966070287830358892424044506533904785564398823537766043716031250321431522084732145089679869643618560058192610415210131963337916188321998519158072868112793129885017878094378676356897877396636302775340703800044332970454203782337329338300196101375211843936530521554340314606391859696698961307034375011416957302817536284453303346436130902194222291064656553635823811957778596788241284579308877412683401915420952903168658968470775947929501871021729362557881290295675682934763749749090864381564810890695954486812129950987000622737571515057797635792644310091321937028125558399827022289953247234250708243324553855299210596191254136919995293996182047295473549639092932315487630566348287403682601554826356132201245577417309702541358584602656303711910511596776205307547842875626786374868744577151031138221593953867093400985620578055809672606055983109217203978910625065706829053047833682033088801255454093290911385316570865452845581522110616271406887800103604626277287402750870373130005638375057561040606618174329437442389015471588859890984480434687526242368259886576947168460926961883423595833975351647840497490620974501572799045456336906878851723319684659860312963078356758861632899764367807579281092210194098030897353698055896139382512001382458842651792024306545717419269744492100641355087627783108044056441264242270575226291787184835062630517123841311648291034415086020217442942098962540455583968376515520275863330197097837387756162692890687824939185711526668028207715853205061216888259524772823373250288964211143772135229494017509789375323624543465709404883967198987151369204112706495482745629889789360400260203487161621261652412532568629415394464997795401329364550017598361026564450223881992269166390437535179825312376447367383565914329578920193931674341575627501698051933128406206939409991651400353559230260231830274745307490779220724380474569087397520659365523011371660024360134176869027226340757413861839018682888460815567520995258065327434187685674350067643737043644738334834848226490649762092069677195028410695114863233768980515364747437111759624181051067174536176002242602145633702585356376709770825303937908357263339077290534167603436283842044806738369935850157522880506995610240858293526160955985123439248078395975082225518673872331798738439138075494357464809614541402490851272792775826047336344328452543428794602933669516353981217564094470293853951797387119305600146466113794309327015595016495138142092467611806840847349539818359617447392139117340811875989085582435555888015695814256149077589731817270415355207378349267207783045374379940747863665634158950465268168784934388588121358321756369759569655919786087433925042869987056075251613196713213152477249814373825784848623623895760538173704908617491001227862737002878515691675974402772958030067863094659536527403247404324597823922754779240730531459781687232574490596824780376522077430464270347179303209513779902290054394610372838593274657315961585400786703125881722781815209603142927756556306738971499362513531152740697243477760063486908596606377657339982106386386263580088202685430637917399642221198826669993700847700340645482381090867979330310252917221439643987010723555757616773015486513622601662983663981377448304469306581682421408268626120278506181619288617535297077723733689453288920759579870731684780837118051828843081843483415105902127865082796630470666851219490129413192841151608072847697031553821140441902487999508808384978618475565745765190360918508376094009711515221707169596655339299459698946666668942793219884741926783696752629532297738864757095083472286230343709117564833440660101290301679514338982273931541456753377506714505635820376604043495011267612199663271408810671411478724332554560408176528414450268206362714198060991196408243442604901245568272440081132857568301363320514718892332147557374749238685557544179097676083441587473598908704064705684253238304212620348581163793367554282632757433244781251779470265115627619757144959890893223178784616611419058201163328303414129250842598179020421353325134429345634622406670639788703822409312455105245215545844561044377558544330904639560985213381493578748528467466696670626769804314895383872985937187782892135738985619978617809730331767897812623469524466147064866214780850580243253156706665190585647972692770073293585923243992386397688326495071698710699975628077551836394040724223613376717275899184346750342493570259762604316416471192140832897035143378073571325719722242825459405733061064353203473828649348679059033021807675578758332848957902163547655295069402879618036467768221647335216832556934312106218984524832117077067650037716856706756333568944033052759303281421273869168724756329145753398533396072028793002537082272455008649446042159621583034416574481229323307572915162708155711270343709483889877703435473745435502965086638625969086764911423659475614837213144444136219722618100665201060266514457139235127368726317521445888898775452662095958244817280768061160874395306160097038937117305182282602305325056342308941257593763832903946801186719998816772039049698364108029134461806690786041058600477583241333114305419830803405999479602211518237068960871375419382298471503246010368600408534650724356257056206389364832104980935509036434469835099668284424801824984042314222807716408043357760860299439963650749092971025669287505919408170965867770067953969834663690795465681006905333234882420854091276888725847061306561999007028778484429450262360366206947273176199642385403545290063267272526303044535765074314490907565196569223130831571601613815510796231183454974326137819476463512997545990629245477835019939806776537640696179162634160248258407573633949493045198640496859650745781290895214307427678214392506017948361324447226080518493153878194349484013461499966356902826975764620368900307955390762614567426742306615634740096695617997947035254629838296092634981555139920530936769740298611335753723056241558396083592305610168819994870185819106445403244919870267525288875074608893974965488594189378723451599065028780693971984541134253830134201995371086704658410250110610230175501440095489285902955964145505708168679351874955470360095879402475574402244082523865964911287008860789800001500202676631692378462090342663104298226803700446771357742238789542306371287568091084019109543158446087384430923283657253828411380289133541867094887495849493833075443815599719262836604656898756736182628269445518150204474550169449061357259752330557281470168964960134672607433810402644050454713469925749288454083024872584018776927536536570217055827243503934079933918237401128151704399169020101243241728585388773440194991689798860107067162556708428568287699325337996303136100777933378239438974610070913569154404109742225125481817783324350287707505786765932465897863500888502848273320359853995627041311219094625666753447544196585085809126358874772561343715095978510875036481463245126062356722778566148864885791979415388330780185340865259453964722681567165511115328468496933808273392412841858641376121748871923042327277605025204413538994999365412194337898175671330959393245319383158658851913467091825373138322288450301052062050708777943725910191446258162775684823903005046101612318194933790642774831065427971576003783159495238544130604781429025615027735880837173108417764904301805249793764482791341830281406816398627522620493694938609466600130162218861919840974413345510213201926548419022668679447694293733272086269993698860384934440725826339362690951677082464996490154355406682500942132487654031995759869184596341753525349963768890654588496441887840486045581675420588776996663671922399924965665145585325734453383206338700799344187094322671793957026712993613811139358285089153265699248523228866680542378839460478387408016409976998740906783389065995687641503668061630977392097968901994325995659250088316417623732111649322212122176718255641038817864085669429427700272757419572792344743041113224185050539212178162991034154197004810613833479021627021361533046072437286167441129104647071254062805675693894915440350719494416877575159449420168649365012602544302102228690341251846653743932974429721289649331848826806945709245705307321550707395140792749473752382693994978485072727442584153229534050353089032310654150165586018160649583328782689897019477012711505207843768589093055151228725917434486507077990671953091463013334669300145519986885395765808988282001475478681079298697459172935909108826192496502524300858623611725638011429311980228318322844832731414854107646129898123296886831589550561534652699005783844101795144689987886291992823682821302500808495722981836709457515017424544406535862386137016509178234690193389825092139489264076734389852331383411082589054745181047498090859732710029405581898085562003362805132290150145349970369848291949532548767249294476037202059309344012034423617006919953085812202984309728954795280191451859078482168162339999213624920072457831409286817769628479568364541575349167222630649476274473247795247634638343155016992709456182849581394993337211520649892849789940115583006249704955547553057575710263221827444673962024511433741822447375414743618374746872303536429811639846249830868513126609436044530917184099796756934888351235747106430592162442836595011784696979608029983921841893825404809914060689408310170782651262574542576401431846874516199422028502574684158145468847402550158431132931863185341467118285946919169426185314776789464431933941405351672105459766510715850564074169050791027047046408058739076133245043674944453114877210390047641242252374044996738900589303586450283104396000236001998755108938451794097435894514391587520366404060546439770274092197609603504268682373437708705008537957067557138439436596440883806949637198869623313616290127851664348098895397778437911186390752947299967716307890509192644460592910964433479873268615810731937009588401354775948644063907294800925698051682861136245283089746769474780426257589837183138005333751571097001855369087465692664827812093806105305125935881909813013025310444381767595811568105145441583441209902264421805606014678793178328750185604475582340561304329241921830008448290691407708616163623966250356070887474881132381297871292010426943368267991604067321491515569376886329973602163532822721881963804426851839439349944982015518306235158181917101818581910223680993003330426477378878985726947632217998742388546608880941078072074356074020307185042523024804287999593531592248550406421856712779373280950020920507761111781506879645691518835186137182782758788876717763089570562169386008931943708223782668133524055073803466559325563016286592546545549882993788886866623892517685903036217178455951711761533776391588565508568165362429247368809339483594977816723600466760762934377374535600183653152927989711948850143997417995709199009177182782452305187092916327026612210162919607629691554984348532201632757308558085307590711233792095008518556711771148565757095304115005689937250227871602884491418467444264508321777326394453809624001549186089666590090175826605796030988211497800704214984248227694296694404330079082759987635077100396976871330757273442050780150318385732147068192544502615307841865275609310818718177350815778142332896666316268840689410567515179603742268610432068892257083806609410546073076008362141488056514385945855321143181655553045338161681699935064220334934072646372204496504128541583435217475515867401901515585819464676148593332507858481782082878251883816218437364683766718336218468335595928812080527836319240334552991733631828438409617387201646432256820829887778729269828742733215115146260684296147633621319558664108487550768445923748797830635566714946695669822466235990696498367641009910404321938959249627432327815007453186299956138419381542839221809436030070947770184138597244912048589465139610742022072242225947605407886722880333150081371735995855647223634842137025463963380259966087326729203205509585260692580076559035521520414315637368334548638747867123410536229517937887544598128429162718728109847449384874450093468236992387784076802092646826316935277581276083313659868820963850518692125363867822300343800360544452892592041666707682184245064747814933343105392731880061694607239347738984537553890003786106917332712904493581233577467445169844156955818634289970006059103143523453119125508498955254362715516326209492370613308209977869960562288087795190065895166445548210428725709774809989137258368216800846317705288016497994598334173145397395204096256771092998756515831278131077025188265911832412315798399257945579474833794402473450096021325899278353497952940586771335756035621439171198593277454133078475662415344040254790837245710765196372365366938257508577966433163370556133849961172456180452712393958432860131601599225056801884550578857455300034257536563075378853353209435823133149012729222229580717544808122393336288883435179087812441509315631668964405756317078534920070948872585523275466656266570578996298511061772369644108560860810126467785860916686108352267882344458950914257796280968947018163505787152849794867944651041024040015528705068779068606824028849151711853727853927369627287140946584179336177826977998045204136620037955104655356272667496724681260995200817518516558785909861903727273172769733631060935384322691272195251626270862924199770170631932328744019017337365225536040611530410569638754195999459142676679209574292005108491920862883749035282441244771991550657551149139853655216929600870830480365254395041478070904298618376016939670930707552493927330290378291386154929047368895050592142475844410345776321018561759037225997486713320112752284005788713574143397293725884728745759690417099392006480671729425807497396286974139454960976509321546958020152291360812811165924691108216809193205616890437664320088245511805131307827816084309373786790322884295473824200029232289852668641386309102603016058444660613445569258369725355544913372421585090443335155947167967964357118477588066986858202883374541733500550377532236176656710310049917569630279304171187100054551699424938418888800892301424014358512099667315790115362345077283658130931248658546852488093554743263865269067976648983008375268807542645102000470592306495966974451441402596003354978706735037070331950655232883364847853116559150362562738070240392667536570366938663016571673748360254441670913419934043210796231849917527167674743743654528244243676247526671765990792000812250555585076275007764439566287800546166901800723204491828463025651805032035808984230677172486367061504860513124210858560820130241154984773233920773088897691834006002622148753087037137373221743441394162008688998505815109293522007378084308336529386007689511659594981728798321155547458762475162401463198558679112527513963418529226609786271597400107114028502710314992908191449726218383616574364257871387246200812950457903616859998544301426728035293132692913028726854279281483233329284725992696826003270560804504138200566858170076158491820598948590318598317663602489909627103510949965221113632926968211645359003600946808402230836990117145035567921066975552776104279412468074148661018772339660987711838580583056288773516858057837478738567570738842966551401454413048378608681245455415799172843859473548867745212080920004095424116211879497400485727665489984846761761728309970104492887648001648136570960353180990372984754036206312170353197375065673120359014852815045638290696112793878511230809289941357112976627395864755303030046747114502724402111536040344237997006879496413557873898751385811550009493149863289992945556778874073045702184697617756647573027199271706359309209805477274380794918372584305678568825301886143137904558074482624325229241463496181194991376164353733091634904776520269573158451270527094489584794788203060655333417816784168443039309063770816891151318714246897191302830343311065514676813127654089624680482613674997863472215948249629174635095352160472703185013499196953901010970964104483430437476008194697333803860437146077262318200818309083846102861173664291755415195825202785954953299554219130858835856729022893725178596660850167214757671736818108672721059168142026402368631577829371638462660889983157572273338280588647214718838781197552574449288168079805733782245995404499604356537885813913135670334093981590360901291551484631305853089264951089612475797801440287816303816018540005718576186062595866369670075465946102094175588279463032944214448101277529235415161905366768773380331074063427561809301154797800731505797697116007087866807298052700294952365988910752857459295685748719397058591807043486520024795650336804477914769948426513932863828466553668316608692559344682059942527421966634035668268153809038094077484413985313644516197497351820908280732565823125545119335286818258333802425591311866353913342235358291855651735143097566100760181371550299272971011085379616535129948359705935980469584516258657898164081064286816771969298035220765598166854634407055317971631929639171197849095613172114139741699499102002831068016211076431660743286070719015036506392426237331587739951451739487273371139768035141332436185942874730008440245972368744371823872253121771862833383727818531693887037727464140675710915783735782365134160171116344336078597248661314013382914012682660248461069313247829393633769923006334304642564138044359238748024476520022111461182031041490977459011379561415686960471382966761479428038080748591033383789541530605863926232922280941738860285196548939561459524326817176803731772444349883476885870077228280574874380392276499389678010961724434602830132363657923151376464676946088686604321634424525050622576169117118626595762903754061499980585928415700561875307950776212106731678571729470435823714545246700092679534639269036572953429671905144883880568662666929319781621817122563954343514657713483477497623682487740960076555675888596185870609232157257051192760078538410585547571226614763708135896164685369746052607919354915595235475541962060707309437295588392511786756735595958471983818231031149052081215858640484933321045687018368023900336162501259808197202605052418394469613527765000010228326837042591419221141946371887720425646405426800049430243951882672794011592950783154256625624228137859086964342026286313373897893367969001326899123115331654244861585380502862185286298710484159737183602444215148840157558594640821375777006902807620644557869318912165894697016930049466089065285858390126144041377547502212857558962411886451363248198064940074751386350893664546285883038226658944588791073524786327490399166644719359146578678597815197474761877916093095650919185187402989176841050966245998356049990714902071726287224744239434926994418538994199422353565257354540182404761407410496833402788629122524946013034571383504131999345062254886964957112793470394008303061410957605674702199898832654668299161881479147514725411987380732214158527055789009537386179432939214856066976179996925682944660347065520859020240303184684878075948116421841596179711288431214078776449346422034501493786946172410955085807616982416901080726697988536999624170953360032488411254575832075450034321921766777109860028159809374244986836456707032579808560122350410973435445811925544066846949765194155222696901522846342438251426774631128341748038842012468803206343091625253812611018673870539327888615615609430354518193436138611150018408351191471890994212648877056075376984131839897281603553610159071661215402881774196069077239235081263409192819873717294349930825798559060238501256338039346222916240578258168003199469772157409534924049862971631904718489971318445083707227764273316756613103803956253203299274670679657248505084519769253545039703734289852327742694135453901439269071469824177658767185946218591987518752997197426424900212713214086278984737703699116580391725570809807514127342786737102260601280839590537336508548491844499516382606110308020970595584664034995617410401520423017546964665431861416384557915391863079485145854041273130859795980369075117617838712726707135719174420923152884154377654808339637105095818416691224048423685217071722124794772050483942118763292143964142820063370755288893941425278684336823292580865896248870841247216115486404330803417428336208650008321854877191231340571190528935670310627789048462678251792167392504195205087365330242518115883065109345817473263537239404403197655921637745477135122372188480567916228180382466826704957316267579031620320960479204559522027929596309246346693562936881868797483131832992567098677219629683921330924673560481127416601318247648456847691663696296930268308849435605080697892146137203660840387287608249713230793798553385046438373385770276193705523350876434113769816837817313459000224619543138394860713115044072466772245301373874433549465866384821268879579190539731666544258640194731584511696945721696555020281134467993483318757924023420276762326467280548788714717730665587253921671843239823788689925789826694454656383911585927067573907271481076403278494936365182505277049961739457128195938426103576287970419832656773341247525903476314822701782846841862504261236588920857915108378537107685513252578645078845822489131350500641370183071306327055736942738307039745924807473805692598998533809721130090838861900755208049843356011166197361840835379915582572883719508339838939886511417789394213473422205532393696225973457130050964798170881932875960780916507502222918439129877946522613092305830740289214918757550320384451687153987915328485832090085719845450022086388908791261900585570699227698671334408071306789158982023118248374210670343760659504564638795077422796475504709748819854325071320131513939130868122421795781071694436231208113161044473919122240821427235272374729460486160243372235081186890234701103196360779578884523245689336320630886191859255231366859736944150786997990460329454272108951563357020131998148924863489758688574021698141546309443395340428155908180524707520198026018638649232180644512909917302277937094521135081434701980478169897313268531841599727110939753771799764902400783238102137729958002868603578940260548775178869890892664135151213324159085468203924199220704326942917793177466805645938634969335181961264565477702098406400149780792498608675173941849253116925393216338738746443550207504609467299453581625436010956407245574787668620871245097296115139948757801038897709926848791125223499990390988946599968596041268518103647301817687025170288785203507582753738813009422500769317864939985285777589507649393020384320009598286229659115219125572147708070494201822285402173641460288965360311087216800661102888513565879027368000501077993521809420388357672501178475080938423458068972018573411642538630527552393042311457160654151797358797388215363529738627647316379375436828021114172472802591792527728493670294896826261878006636281895074581748847567622455350657225632697161540603416378608813002958595725352666763798707124643844001334044989330514936997227650795971139567692914274101227841148084869121488253033061610868928141410209876305152771029518784439463849057158678890495924227689671113792661965227388157430048197528833360434989823190852713751693322065639184252304621451839246603483087066163921591899255118163951326765512187337197384416495298175339536156422766461461693857380985892270008570291630165333618643175051156021626016788345704830964944679941431045040794562095613727401619780963385614023032646722177080919296937017416458614474848597480783066725444544217794863691492890340852868658968652853540798887272666435639711579389782588163621748662307721081281607715957675660439697386411509760637239957976888949690331361963663381482333422194844075389798213138531104988284556672225376818094677362533222476002819040301988151450274314690145938134742247667602409205445063991169783681868020161725237692145252480541733651053514875420963179589876514548566013101463664329254479447079059147673649231593097951062540566379300836067635442079980482690543734783899696502622548419311577127825232850932614296725260714896616411083248119660375194569341488964966515407606978347003950604502294548270993877326131459790755333111156522664934411165596348605724673421744519396038154449916440268151166221455458979793586077046174651384541790523054310416354234847009367049742883222857824611685970721027397703921546051511577596306229269649530206399438579596345426572175691646152949165371073860918930998793042410805084420891809325085231443370329090101206740084117170034574596221275784628362438094855039753326656066681447977778539054824220137282014675234600266636461753312691290979472881856661715562023383800132999701296230844925511755407262568175326198244012369631273119385985840710903156473215282057698134024504581245860338332471894966540917478231319527004685345158917774200668085467852308961865107933139755572076693695601314882035975555420786034387365951983277029190203635155316307183733177164898678816107104818714863014086371923417702143052934049555049571428400125784823276784523857245745166348799147696514699165092293083598300801533430510414614088667861089312429898760798373419074614030287310431386951755189460593335618540082100298722948535114426462153617061058010678886164246962830480336129049838377635671243725473513452619849290942958412708282649669166003323217630600082249187786057941610463960626833161705347400666066415093840817386287372854593188163251091659639630986743279361178796295188423282104470902335275725761600180184214725072198412679337828641315200898228510727607566474583354251874656146943697312682316194225668073299544390774328285080308312646436110825328596318199225720788806228212474361342661638319997113567667377887788009283226929356707317741293722798343672930181459539609539411082759400546180683371808258208870754895494634877027854612432429027153615773043493089520828917259401956398884799293201865353460438333617330127801561260728271964299204283425667495506367251951424811915015942762070064302795015064445166642703733175401246911239772471578027665860801176136624497591845677484395853852872414287863692554258992329133989856507969797777117033462035532856099849595566611314863909944884231722966689528284413878064360953859384800844812632896095031358049795654644279456819644677479882628410092267305684838098926582844733390726144366981646241434258307485479091814756941689680080740155148680406398392279611765197984382680880174110923672041976190907955244387859699960232061188870194611244194253400803211691008835973623333096437314970732070845896952306583066267016173354711564584550475450021263491114208549413378437237873934318348813855847877524671599549457782056358756148550236689952487248457000154924743497782529391814374122248207555275057232006104876488094519011754639682814947238608406166629615388616227626132893565218809655409504101948499921240506793484029695557157534504440057565626258178190830089592498382241885617981292841341675243163973503331169359235429440341032499295793240772329454546539888239033938077056315061817966603097124038337026444326131743222244936860512650921805977431911724991725533645112125717844516923958694090798809069448179580979418120057171244512327606940956628656511550827193144198107130465013732726863405966580801739958804254777644708921954365003714064984404820272182832466030611716076506335360090179833255461294207518940999184718101225174650835999495034165809073543095052381312942633235324347113685478294255728481898352299262456427401223234872914946625966587556581391674991387328919686426326402464551664773501956666227760866366340314660103267242319669654031743201766728873031562903618080987786113878712711299481009101235495503021444925671976086275809557725732387973210451299931623318824586739351658987277605974869204706544358038066454788542897276467601064737003994149581537424450257766131435518387928388048299325730660045679486661387295508451741201675090314460986146583284295057594452068473065437909719091388115239637354123901473753021338021929283266739048381230688107443800522368297497758863463733977818588549365110562248392690360115720744261125062813200097045591967795227147173942933872858656242169522211173413047562568255147798833022556758543507495260267324140373801938702537817891806627414732057239972929237478210998933049741391867020190247335115851553248967410537623122028846550357797225181933758551290427783929825488658245906931369791027654899256876928090996188346047035332162083167256723477275402294585769489162927841218945440813183226799716037527410225253687358389220988900059558144597421500131872423963169765628178629008954392501052849286247878259319190750685207865588124906571255958677501017711602786984874081222616152276948319043366182620580008287609614518939390992709798456144593697260729256303232015322806594729891658349596512933743096246690764013869049546814486575225458520134398005277036101290975820039725836169387729689103444222792548228619323053465896100958471775053223636231665391402393813624564864125245812938460512437547077817565311676230725676583300982145130259342727404905743725743965456117631841007727138907967720780789964664595791838530291842698880140652226962792086502958424005911978146133349918272636972119375654887672226858153601769360517898053174931355753353423671255993755126649364925502201641153127066390658396941355291094961136176038588424374384033807590962020292912812767528552074370171769637036402930011993438038804451992881610669521113204528532483746664368530431369230901739139494933085142866013324928305172601856461309876505432098850562810426372135082383406414783010327921957498284514503280214886734251451321867542636797126378244691290500472772710105471958878622597282925265804395189801367440915200689360429172495424194689164674971724215744972464439495012599160018192620105714605213153247894140238894418549922318758266063117062332014950743358399250499990327270399714229542435107151453238995625614843459585451080981090177546397964577353621609977360927420139728365544432765924491571378979944785341462348705554113953839828012961703449690698481116687159391744089498686706093005830406738480981108307692007708787809754471048145987188985565869670003249421474232999544540864583015279014818372448058921892219172449205094627996488137898590954172321725504894517394714538092205019836283117186750760796526979959369727657482290677193594192690555341904130466153334117798847530886623298341521641275936506210444612734334686519507386039724691785105574248091761638065793786761560294527224958207477903130142256587704249799516545210066935119182224771226189867442601148486966907008844534061201324884194022427459347714320892802921405898365973947364602986753428992309730917094787090433586849011785041814224927700332457678365368347313468873294871958948719319556351895560761390809844106772401203535152546744252195420683992899602632965489147741707597355716807081700242386528948370248473681063517047495445326288668401686928716040581809807113140420407814310567955511052320964128365949078652095259992425032978801421502664114057254577445004129778792974368407588296979548865470880430859907725753047111908717730895505386246689415815529087198199961137402711622848603647421958198734830077352574965721669631592272872383322762636030989836916936445884838943526960316867947031978982633713446180969042997956178430761062116246535450710894224786417743105896707092349222137229401704976128435074454873507864330761208298503322000718645694480651194648110671304054307789541894936277662977735841903248257400828925331615594991286654905601133605338378855717654450447085606125389974104822696092436668681213430067706453599127929657505743148832549410705943070993795393729909668900650777909931696494369277473040550768206183958964764862344509095227328306995011016712168782381651782743681184443541148451201542860040824138577521155576287231857101374220289998250772431701912131848123990045397408376265083738808111698845943624561258933074815852354808409563139689734691916277975574712218642383146887598982859579835495823851652441013777771342206364818401247520529606985957780750334808800254933022407927353870067251240816578043044815588630029915651272162065241513278183568202796832520827590330373541732949560617137115430002515754151780681286401450970033362454895842156629784891275835420667777904607149684983075269927823877944097442317686569043860962163362685034055577104553947833607814720283616734693832805113742657904504251785287584459950375564118098851595805985001066346938149952412725389308723521125275356182443177812950803339906380520513517012432113949053194140827142207325442283932086619187812703309477522788921850415001403391692385461806589831538812038591231443875017857984198494376506573701677529795798635496837163507323767018697997450360686968845343479503481399112880962624289804548290317522611979872385462093719076144123085167520926869125901070102619785487202093997514284679539182236979835299799937792464824306568070596517029281790103834027327583915871196858329140715771273493943336918310609314608095735039742213049120596482102681991571287885313724811830525314389361527469967860489861390871538464490563241232868977849456283862170845992795323415903743543038054378358392939914053815362790210845828376599422921153248725404228860300436553131355700237843347267363476753709414169597973313997571799031555959757999402421611401583231821452967501250153538308345787151303579197827689271335342807962299283307780838545829186773546482342011830115009119394117521752875466776229139928685329650879759929416157481775118278313576878272243060283342671861676727912555784090397233784659449454303861478979188732479149436461463368274520928645396512234762937356190949678372836518703627082170913215574824232086581519610662737369239134235983089208276663733144433337845015927333376305256904248676656681247079040960554645054048627614221215692028047546741254157748845549670859681034957808995785053897224033923275814866059804942421709927632157697962454728803874515055822028057034587140783816282216186707281745324335745654928874565014920153193498843226238966645803981528170251097610860281454850817838109120980544811114234896958194617395914837361494678334069594738900195960218096007043424779338423719897346028544110513309511882238600146195300015594913998825379697641496356382721322683874837104350133275312372380746354527651495521607120170844623468751337893217277961031449541398881834644570903929085309674784846912176061388775726623977628835075410841806797999926084000176660632979756808657697971342256947175145720103673942891074899502843303784227679138880686297825803929193503972353157113051945699140863941235144926865611836698914528154880074215259109872463246954993590593336605462453456052946501338591208670280283452919783144686103252210611792285724620302804703105451249652813962220634514231664181400352546128267026018356267438317395418462957230931913755403488624888100298987252525922065872370742076495406717790780130502621499640224753809898348083487037398075006392728822973294375035827712836915808542092018236857559230969772072736546745385224694696512250835628729160962392152621758108464285406865540072601353713325406476596519763143282194350021019869752395739762397733418233664550722976366227571318736898345754996518544455997968944698753327480308516623549775503732671432282841813185062990670490954284089964197196925440623133489442244377515404887947453133664020565851916648857238451416071395858236764401225855494149094763040347448924632286763605097181342583488615094257127007969465881733530215196683094230334275646312925060936281976663104886956792164179185269518187564031504990652055390342752882210993268867721505492146810783638683676595412092043323976337984004168979569101361501275240328791847597121103490757280958917901621674265783923074692346254051514321156250931974088288426210069104206232523649594367347090344517747535049118939928609206252108363165681606368789554679339626141905027879882781271114413094317207246115330494121479418135884661885685596965189302757464836664085219622383057775269244585054430383291409406769794564052908496563132262745884024383685824448362268089041218326376507918644647700485194558336219947748198272610825999102031439179003511059083778665489982357451563986430716119044579042694422430466207941173967048033220609591387736419024943144058021240472285970305313164283082025843904008927000987255813817615121601896921194975519039272723354532591513718425900392156436661408413675951399235044884521869270818621275039256804596619800653387760399199583970681097394796271630667079237588262788837335014395486965308784331566028727051865372376181556459345365674361364328177863926273047670965899470840290241155708565030412778435311042872301457176455035273109413726290533683718242197029063198634573964700874006282938926706397171001078010151377171641252539243083905820887511084267314253467186833602244723445761289655971126332609430276115843491996913918999753567000004982261239999522836708999659680035589869577896782612562872091019186728956426409969528171753404826300654496453311216463215970049668173593814875929972693953367839734452494720502543113476550785365978592567891013005368107264101550451178197703229898987322218933814032033590363909494583443565137317470019370248096220002932652174529318486233895198918991106906483365962206613314659198743901824712518637346738139253078649518090322810492758958318527803306076521661770151269685104986603630744432684050271302531914954628038048004862849182295033407391439962143085769788785098520628866850466481528836112081746167200884174117984334966943617981998407495844414377329748017795359848021751478713006149509260553863295586337662446645822817051459629103226123203238360531962031338315848610011471188920535377746990066898155819265590774917174942708772408286767350144373859417624545027954930395614086247200848648528600840055904776814174662623074737755779196977007211451157462255973647363176200173498608143160051755294275841053550911818105786593038386210921068487946907403546911857505359192920587191977939568935806195159612772202290364846460336941950724779367273673286958560803234081414971756387063796964344093262267756718870665128618666336470380646245021048409960371886249174794751751107184965395248013947696939055385554048340484820195412071276023638893839816943120532253748013472613120492405146065872110422723616120376871498183685353269049028974458740493314682233022599662167240401233280232218110776194501288757222495261245933726312272673440440491238007888121479233390088451669963535472085990555813698333031008317342117991221845058671746461773035383173898567311469701203782201260631741071785536871343260714589049122803592143211154092089805037229984956287498638279514099335410540758098256264777315251213250233108123543494436000274169551650407163265284578177726392507587525048185267041301965666535028284493027502133874280396971455739905672595499323860152437989611166668115724599745271937344593995821454928715555696563120051356202727884515539221075345815073371768042659266041139001563050666720657716450363908983699844134780362442923108471846129267813655682985551748093581340125902301156783189553084634020806110810904519273816980245229101174323183112364266295888748418486127282006147540507974668483590466758168653557997303572194056440471826642919012142100860680106231249190622695787185588161627352509837155042586015309297291766797521816836444557688268494234790574564482359775673577830661130595023967429171672400205442354980158555820639948116089589103194811766704252930024390084174331140359818794259452091864025641677640683866287187897378518342554965442312755695324870611669416572375926730734648696908308855050279672625988176606098812405172849795278096343397095763155510276223840578005370539753302131513934326645537991287881483639133965574848747685373842884622675866694491041209161448199950727567997098025872911669995213666278390956410308969175032238610301776732046145446102076302980679120376808472579635135182886087060182313194769205245932020230725010167255064246444603045361823873689171977904004951093530210670139042127252106763352091871870345138245139446137202758461173173746237089835762483200154573026105380827212400966988976639100755888700234317188212418854170538087897096492868367573402668685512283117481543828151898064043601350466864590836286140522066069711400886274835958913247084134525339551718456206220139443164621006829844531582008797309888772238272411716593011600053311940721051962299066217852157738651351087732395711568052092494114769548907424441455420731961598577224998464927837046445593119699159990148777154098239139976060316076620398901953777436335124812855050378314190072365911389562347253945082585489131265521963589835500309181964998744951517079360215689971723869942537990772968367365310618527858085498273058447995670313366410442529933753281571105103992147893050156170652227005276082615879063136603136591971930270521746759518606475026392360372905166342685447476764605942115440223607565338578499251508745510035817397277872803417676269699040443830397103313369290155787219262966954793307059422574362785167760518537385407084248705589243261497869699925387780232585929133709481908874616288120564433208949846205342532489652922083163909689665594816649031353501037456827086287879411091378596723631511351819386103736088230558299837112697041587251219989595799751158410223484278054996978964519993634719481169946307748528228194592800568175758286374990976296405624098417992322611631822254615075941101628403464215813390071269527947083372820937252207801088540934478175936176511888128888355239740583026462725263143938637862748366723117135150441788427736394881867687897908942280972533097058153837003811697484196125822104840571960446445688194014748570393173381397540080214643034224203086892271853499478642157123205610240201072006829714182016456810325903088386074269061652212671588987201235787343205108991348119294628197275958387899353791333782548377646801849509820475845360276417472157984765767892472554403010006097983927464522549515895073212723929034887678641863483067146173238464334154965160980877602021413553712556909357062685826443418118370326663117847528519159054924144618015141524858156175960354103579506755069838557804877094488457593301526084046560607916304277371038708673411484520200406668822081458599868780372142958618738372355548515381907291542876074437837999606312208029894731835598668352519645228075353129836327826574060448421615258023767054823533317653769950921393535887516801779176345130115810266138308368889353168006681863724239381382231372059031702066447258444253435195710176327945720984404210971053802699429833476081338115572918628741300624432543300806774877377426391355805387195567765157054815708250941573474142035119464961639633144197143073013637606669667038828173516832934338372059137954306734534838475899580542691303029937182229408566023632272991927986957554257862594057403879754816577044239341954283481158280401451073630127256834841281083034378656691062748139673249566359836684800710428487452077094049268862744464947471229119048411033644001854630228121339919333925750824521233260657411998744268513659879314583613334030414204055398352954937382101826119202933033699652445320751632943700947388920812587732983739178130561505404395389303007696356122375561689629121100367815610891550279228062337916767450493297106514714223532395898703357328194540979708977094719693624818323350983442040544100397364666429435517323602349684168796638357547444925677375773671933945705133736848974539846682602164630554361470240937280111029923643117745758706030450382247894771084792900151647315831661230757304945808888196365526569715347178054122902868745913665963906738154945383901264483792650721800415950947432816932093247230549609211034598975884696702645484466999536303319268814323361974164076521876204418826137293471008319620669924110577802653330148726970089088734830715226631031418903061472950030342841103611070335834942198970408730627337791433304151700375085359456633979018550224183190500308901998806128493103861236386501678021260118769418330657224888143808821558605599622711591833152189466777218389872893752081271217330230354903493641531338597743740697200554428511936359893653238335131030800956760422286468044812175901646939089423232962447635485681195536082606241991311907963272333181392078997327275881399918556045649082040556399312433621286422291403742412761210933109660923067441660304404348629825784649322475027124410811151928896720825755455688833519468841723057304150960708334910089613394091628736921859235172689126223244707099475255742481436476060281571029809434431531384999784157987820190211698138992911611046727318457370156592285413404229288889811248224129197238113428609449011886504270796650943645474105865919657755719613515315970026316522997218062056807525988169913342839634701733293518463282278093536276914940019832320392083195532030876280223652398616478918439000667921535637110597109944279301877354913597248222961027226297494147450854111878929912369096415525560411120457816540236086953130073253070790585014473427390794300611770237144610135934599478896308934405590803108284939397739022330156390139478527472655513509894371469137632030879699148424626057520746499530330135152350242063699208325114470331159182012009781875067204922285490833979147309108368644646981241120639628331587586853845835206830277602283547113476561715196906879705111291103695322545970892902559169266601392465909849582554019751339635008661894120560399198850589330894535873909560957242372384970260620362442179997789563828613448907862457021083421303991095960971102569000699286941982301887665722120366668966789357638636284363097970331687671869364019350609804463671949581740127262574188896447406515306710438516017332776943741842758321088553189519491581086772720769872448879360127263780057263426088354891087575374906187743854911245115160188290505350450799080059657433535603851209641380097790710699674167296511017996307091895225336253043354018404965273816453812912951654034579094441917746287606527231062976143829344856274171916318572928069210595754533338970102772938318854793576339366287081908766392142172919886231512210002764543355150215048128074203533415350221188375601684091267956218666867677637140344511923130419182143803646640927659695128225326852154629815188021596254040402494797708124808958120449430854641428642348242542398451584341677761386301690163139616135030480186152404629257523759720288530560339182383966737332048143487783373465194950828552094996597056458453502091346782848795302275529061954585887744454029847706425636106471479521592778823294072988246178860654918546506601569848538925118199562439001516532651186562610323271176376546902491615956841604681636311162423808389919832948053720704992974639430060853376041731097177865382897483780602436617402116861503452011138573445024367109632332671513254952725872960414943363657984300255426872265314544530428720857933071786638846797299116027807363428037406635052564189668316331666298997842529704509548542674761681605320060721710744491542773907658922953688181404937486596192632235010071607367613721890314431806017523224026271936588459879007452812359246179825806421257031763372405953916979497592018215415272023186299686987454019372648862983719931470114491767950941043094292334396735575669049011814408289208462489977776142669122423498871039044447662776305430929619419950916311523734556696544670689747118811625538007042092871616736561604287082414188905361563920850251731458778407636485347937823395650056328067337259134234549625326262274204041831408557733056111140962758619744218113935686162643181980236495577474244239306119538056975216554320226687443152660275294804422616944421649216909443644904351618587937845253795054589127481916933008353928545492954878582082989598899387585262501503873553562468386346082022599123793678905436273952517544301016729830462939032213166092371074152304129063845044352678747901917002689858040078035640543035235291105324142943302270739739358298842792832904718358594016572323712497781990108864320151406631969916384107691423653972714591195958799042225359785447808901849528192841404743630704361623508398041265556637856469770689390999415568678923383752248093579204439305461536320473019585068328968211548262868268922698347034672616192555001673475413758643028644510694035921631139186678189439673543394964648025606144598612189021435021103569075690506957531663326895389601979118965524105098528978663463545206570553280185197896918019010262291580678941229128552172135435166548608509579127997595333804316185121091350699413581406537416676250274253760203122477529035471193542409100266458972366525458835631708456132026066273684007092893155425684893845704254668415460600228636804586231075296425712716580672572731073825902190662216424756012592713354754065082668851235663104183453061690006707564637806561330580565800239016667701938986862108404959133102165552495693124473883995596447328848217177402096011468996448452100535875447183567051900420653370656906009471404528868954959232097652489217181136890046899705356686900515814503710449713852381397752844414564081560027154491295249126415880534551426561704155658628529424141162439572559182899806350837832742250262144632397758858311002192616037223970817683054995820995475843346711208283515194261251981065537834361986888062004387284867225037041842099185721928454629451998960156467468896525280186157201406309687135287175286654930066697029955791874104106674185190163074107228569765027771194619654908381390669188616887267655274831447981753098963876531113377053290018343747556899839496385183353183628836217557533916912876423362824810845596165415339018544275050526557231633271363165117865573540796324781163615487209045536059327286431674976578258824093239010364485125135117711371584532295529986860758736308420990581489630673516275286847142757144301963077585639270387517978680138307158274555033108758266836491739560144758272680555300146493933000542609241888391283428887928959558942101346546557939538612997572434222443140818258582449959414055172068454510444257557190706121913658643161463126850018943825073053220138927813400575470424628270760085135229505944812201440999370027689116753040857331282931983840613567708908675824041629453864745374553516412456226013373116460240965673407230211567905926426242154959932441362574564396043493754138598910081643159225079770722779956788300692107937543296655111315902922762238326102882882723437514643478344179587396486041334342290877406120793363100066253543187651743789617805207770641033363527253338182090544167079867758621744637901716589100019195347617357322692824166292804013425788924204319312592131564560994343589202910286450379151935152689155443362772969256540851857435624350325100799337449976984954205259794678550099478946153385140111837510175780720671716413474861227022532675479261433739208595951764284645383462385521357017762665669106307593133820867208855247010825494717374836531380997670385524255079651515482172542228526575566580871437017453290633304620085998028740326884692564552658105815982992385377030854291627145613805487622436596997198566806530837286721832725074397053942546813660688103481260346432207022685854840980890996405460123182452300653440601139540257767669714919666936899975078228298102832049580186404041874333100733192605165846614925486414262132473835644955999959064309156611621672078012620173004165137052907752866550007277210072228364727033991186211006922443279587438159217353531969459604389053423110421389486924572780928129298391262963925255249518662962081276902574986016579731651495194681878519276650880561885887790079303457395758146778425584209201484551627985702556852366198059990450978337864891165647592832805214034824189395601279701892228988073434288388100306240237760345772681075591061529109434749130974674385015475632089473522481332400484950454166824534061276974306278269869790204622547562050430245829459689579089065422782298570368525351692260865550016161852966576395910625169658066148872434230148460176806674335389971632754666974649169342300817356762594448313258615059488594456596064918116829570282303227742401143263263933887129725838595847043722958312688065846149832435730334460627538786277425019521676257775481484327705869165268377042560867693891833347445796986947375208079756952450333389050870822301809447512244649895997253595551250243334782822725960116875584688426690194149683764883180773775254226474482826761470644179120606563227082499129128115685914879408560861638057435653590315490447340626056093865178935454795923636654022363282513901305218810099277373134635236126960429247882044555556641665014624282847873557436563536154016057895906553662067254494385689984381921019239981213608663561287847503605870675922788307203044940495495660842917062091301688938171135421933109461286995673788302827764870402208429701254559252680958758010736383818976023875514648806593656230110764006088280102032714484703965667222167918957608999506662200814831377938705564981349321342145359313505225656612000618822868787306530924642501625560800409455647851159937563672593569052231445038216127725159269719749052188726105704271724912738842568509971023002309047240676833400028879916201993124697477679690750197387312902997428593734894572699311276540308898838909192942587681353437138598648523315641707411790115681603077911812131135820317124730996604163132871535420731220488808360044912038870014704878653453609135332077486848789584924605346949866324071291149299227707973566866016165390113570218608078850472725777340869960076420607089460467928462971230698316256710464799085060765033259991966051817295186634059811472616449720001317894963226598956408203615666364453104541547908188099461412053001545143095001547705266326619738107673788184880603183402135573306175624067530733485274064172184578648912666470604950509464046458982667139290042782243715351031300382955036682899829338844037562893211592854104975883241034518265888178282329668327725083437537053178139524822526652295925176635091704759253377438259403339335140720118595771595703704363456839825185318737184335862481470277234182047732839251044053470554882332232144195093788993563999975888311571858333840558577143251841152627590954329489345082464201067273185377374787806555283920023935816572242875958997898401569233474691095999044327228930233321829283743660466885386448316224129111199117879949442311530910305100656046676097608271463322827932990241010555872417301626226057472752222235741793188239195025764430014610736625332926978594745446501605597315859044352409079717774758450896232583171226435484233599691303240205811608588621652035067710102040697228053014721747520815823651061591540651280547678879986451774505597641450320763727463891325481399449955368427734002723448697112220432262016401406829071905046510326116796924572530018704753199387487034871182311091124652896542193165557100850417024536211543126908726091264156286578027434502867607866670826341538206624536251705994673223311908424917828238596001886982092044695289077591038614217115862626929568510100563657703483940092318117948528496587928544805097186783258131772109814715104560462699217743163757851546511960569089088165658268504903023161711535201686102226285841194735387019931591825190928561109571432028971656521003534554458009772864944495252710294541147166969151357140130772519922734503763980131612775200968260519545778629532949278656992748175627487872612083750571042922042734974587019815778624498307551967757331205215883772392738491837219774535664481927157302259206043351679133783769464290561627772850993553969847807929219952833676820563689678301590721796694466757293560781825633878164918836493966229094871198018076434280498061860885755399950296204474723955764757176476527050430602086401243022181530688051551191255409492202386820419035570617991695161911350324792857962997978617430452205934480949863967894257367565939530005325201412520075495497926506897493834411815405003999369807869949992117716440486839792241936736860889223254362211984901276669226377248987650653007532468957993790120294387872025866321987398855839731344232543445600367325671550808709952457773608925739679016889457191248562237414155757943676070083203379949870905812498490969500223802514685911794349818083561377640279213519584947431823467301522173119723387975408648396954185115180332096108161663336922147212097095547955920301970286757720345052076865121228697697261402105673703692954079435097084523157606795206637654186082083315414278841677531396590379894902126493839811356302488385845713976054863104859803165022413131273767496746690365358301781516981813664701293658450534207807532280457612686975159232928773523275276114243359881660445245068306124634480960363036533853388214596359421996101310096964199181616176097576519108088289027039465269905513613208428544766551578928241740769567118262399015367953800636385665994472429154468114619058394465994418305313527278558790146796469158209290438629439583257365847189611576576536334065114089872432805231227488207091891965763548432300106473115756717880509643664980104502004615248260082706475129846755006136134066653821806948265378364611093192677418915698722584248547617808513533013882666737034613486383669395400842277575557847202135836234521932922372518679990284642603974356031373171077002542393483430767296650018374518389009423114436450399958556182633526288047839777203153822639298654439017411039773827241813059232543152110600524195238906284515771387380319578384194166141973313811348471619970514008400640860632098608525058415239751199473981853761995769042802863389883875865167102858350234523677175942253654796566419550304682396315617991909823547813303354065888578723173947319377064527027933128120399158601234213413514836165317272585044698574989764983797930046250298280544641803587797644838478053108916319231581871365651313306394416278769151722220376836484277661378965297455803744579457722689584012404279014073243984937939112986727947244428609987751016125572701660866019883061992655719272409054778124187506803355173061763469745420670561927540139238772515985197956349859007531120588797700255686902562805657238314513789181775245199099210912655910604596430053549936250848376188574622859657559492091868818738870916135367627668268945744613034658865305943646301438577906053528341076956629212934421360480086033840684090643734948417109667257526900186034040054197452416629396388311940627381776920052586351750317393129936652021113815431770477156556419455898296434462220818705759357403395673138431354117078843491840687285154921413193522824333681748517177475939814860064537753068563931356247421335570621530880861367606693965782984333954730583839065295688716234366987539933811292865643999500804981392341656746419587757381762819503195827872205093804664473574418033252442537386650823571882401575875988398447946316805249407569992969960506501567947264606424498955358814769648594861735707069205151852095469817431561791096899366354096979325434517813222223379957665933381859056961117576768813289635739416607409853487278259817898514495002911690362719615182855790598826408342011596626718939225390422363561502138328635241803517266991235577676272813702516759310810360053070933089113042175645535936041220943382422162169763200230782561820805589921278636124095183003409305580009820184025426951507185753956196040215808127538517815330778342696360913740243828985371699880917882176922582364330975944692942021490582372445536215412991315649857689536083528657664910640754619992311202913429130396657655172244932282846349072114717869532346346473201954647389960260615937281090745845052449368149382419085448589274862224813860703330911018408966528598524761029442499777139407339393799773664863050233269540942224323120736661546696740121461799744414372743340694365059212370355322307130745779217681360040799761459352009713826343238040210679550787850424060807260804652751025255861129014701156804060288557469375073531712055070673980325047944104652101806694503209772963848928924790951889623666199779456403250439500233987984800527982901753991454063652924122368405648742336824175842075061763258270744651636131873538643907866360788322145835301988941795967321524010076985961850006434337536901946950871674417475573388769649661965748357961518149618211952668921343955201248874306719656137384628186268376499557129555019962435654459689178363308286077175651484560335942330277828934068800530308416742542171087263161736043198892653727414052574359372267797970570700145023818134779152696416383576338699815481776975687727995737355936459196488862399137425826968539310323123558439759748547857804752005893371145398979231235871842324543445859098864561407505722321808845022695597388208322447928924880555935099244484374400978997091928905087558553906124554742563785574289315208920502946642682722061146620782421509325756066386393038165261116929184342805673569839874366899133710341841816550978305530795852656424965885909494389238149577875843890135969527805047720891553984747570261220916475128182613601226594265168441747343615946137383699932838369164805822053240309665059779577418306701169563915820569441509293306901597308807730348661529931625127380013130295663131513398507805058745466076053163422073805531098961915687281230528258760747651978714338714582628626936219430818906683158827664267077815727814756058498562810937404556875053388673925733978991587773528225991350428861064110322687986140808900846098131146645790516528906913459945134014896086381499245288733062220081559236000746411772650425372741797583788615613001827923891198686183055639318618043339048427511713229094407925694368259532482760635191543566056739973383708171571874507376987944745966711680689462435225793669167959839003548990885426188175671785401220799005034184855649805601055172659454999399138725368097279597351059065375328714575665506069172835156809066038662694748969617055314278377586252823468884534877040452600251232344070135953624924364529292426678338980554873476120380299587455667320224512212627820262527318974818252063273723535086173787872921636201603829581903986382214495528896979666759228506778890618467292086606718548215169494096465355254064662255410934298754781502069001324795689097654065255794437532301365292506590601289433760168190309655252236982704457533996588457291184372403066694068155627035090719355548649751121873393347767440654830776657463010343379104504857074074990749596038143573025589214118508892009627190418386837655118149379649948262639302947165427157307294915813460654323515947463742467938259442387732396765655296053864452137435365902284329929673589058930872212997690047094229368195338671358912210277926941944192337654025976013431557979036530400556782086259319799794651293880666710934389160505406254995031591131040134719641019526333558441905148301413084414277047559884360010062012646749587216046517798107655831142894801339094803642021214391510372454502181137566373354983304641773628738941071984040410608592699794080578620752960486220480245000604442060957691612993986780202681905229118776816620809632449327075406912518872453968972867091149758877153624242678550999833046367551227617227748112130434967305621132704667473896143725308675556377404798962133451126588775062529723440799003885095201579031948980415606964648790141260416090460075705493932487252263437694754582382666072555214632345761559856077189757841209334815766454155160144200429175685613083147109562605326048852375018917797630889733010439686794335206054667574130359438336290985626337300170156637057196724805448942214774071702831826379024363753239004668346423522077214215223073683619899094360135008684787332186645608749019980719092503100297540165466110262014108905331775994984370376428125093352555199196236253819863280195741022848280493475919758679270444025414182382434124490208116287556773160823902032155521340257157252661411837612114546177515772872401728387150590436158994446502965479823239573984461730493778127583636696453511645397969541216177356270489780891124735270744480818863537023443474598916097580642454798967320995978995481549510960967392070875423537737314903828550275783804476520967373479389710622420145486776967044400563891700320102297056645081250361619092910857608461971358888102700254071166815620274554815706511245960124165164850537050481162065672827561809680756135083132933450564953509358589402551500606601582014457320157547924309622655624005685928090760210314854292458961637395539862084185687045735048147791929891669472928890902629835962707944380746892698930553007810030309963390933935135876619322942448123514229027961318921618721224173467853953822284319736699971280709653380256279791764561143304199736442286850799955124413755593855398285150433946601309907131613290103077971488442915445313159889977575553175860204029178706211750770066933400873855044804028793055625779463780271830094664256321406220200330396872139593219769820815116877799731080578179625278808820926136958781470637581086632886254150162326052359719601601461226118222318438560901192144649688492181377595237902856288553179336837057627446591540249736304977919646646725682207283783112808511630253677815581669160836510163578407579469669235725778948184314014011987724284888657423991942696974568137107600495909115692748890722728286576441362524999627100597217720536286007544865515825755783517548235154227620799614404673779316247859623782293149515266000539631651371920539735821127371346825858646202669665252584498635965845999091765057133658903751627564199447232382373520552504232460643586052607367524812812573418465972752394699980371656728402788356062909283829790989690899466033237560595839519891063099344778592635933562409723195906978005605897647639609247227369002741950740781426399841992602363979084681415639377168914482391643204892560292263936650839364415141523398043027522866883486524186958950280459435035283412160611211877740138881354297048526030585009879411209166155156909910636814764656022425419216852804937205739391860537122238761449645026503237866136377554385270914506526061083106811925446175062157025100992094328847573163630617436010765202424037421805578849777389264567842045798463958437987188431602252046402308279260258705375218789408995953897548419588158256171694058667622708811909084200283712500033588316718187840508970571171546917419157409334655123189573498401908315888914587700294309135487861758656662879024935195076097352463967492062012571154029535648572166348902676518712344284266985918225805751400046942165679984545155433858906415592992385975478785953912472493702848262079747831201170790533275335346546581633705694302126157260515798022587064626927401091096789778580179940771090778148840252920723823515495371898893825592688260707652110527824276968440140461581701178549122759117108409727762423923975478174436287243225189697050320384906198472402469194072077744784515466315345805716557013512940630149847851199770758481575265793125245578365499805602317117759052534691540847857117866022855854125698882572413865255077572380750728626357071742295972813806828745650603418805816342047483292185614761012440178611448650313181892844251949958559988144910495188085794414960789796275565696149601609003991855704802315615999096214373860300937431007263635503118332351092212939696233419170201740192423201146917128743508389572101774414514595015944221387072426845326311153928174015739354838901892523308915569377425523143229726694260201962714051111020359189490279881059489249782629027538520454933770661714273874512207557502349907389766118693678015381433569093794618807989409781505279878825908197325544252885645146455882536724541872866230213959901579349529947392308678885682202648242036476514560662793854772238540031085846840737816738584456782435827155925413368355926279990987841538301156037670650058777052519802978768077035517979961480441528967813365104415854022691899668209895365823281472963597350718647858194923239485924955314489675018327465567495560992590158140541317371691681294536621339193670879457809390704701234811640059668485148738034354096769008421532005216072252685864108983901839714225966807333144593102757727653314075236654100060124326657270017557176627716441208269349112983075205064947248969788867810772690530405449937876116126320572351117828790014912388594231400930132726695642956553023842240876034788664940940012820880062567066958503265945205821266270324856487830299409450148566425871477186713845550170757061647334737026012582572021137869549891138914466160597711099646645642268400155963400158027261050910150232818809971459252192576905717567249055137831396269990526847350115432862536042653146344196118241884598311212682494555401350460274829138135409818018294570152202160494440522871969817296040803342886912281067222039452891897980183276724490201690383739324567178179675876778602893594697112096028817066007045300750628330978446030534363900824850276630135905524490033916972716096912878765600726235352100746812497915681971823226092018773908626758827404414455530443737704490497153879643587915258015499444584702473327692624374009252275834792442406755068705592402828076572265285977141889865477648974874184440183877993735295246013113843232760439274725121878387723656213684596608402345888169816531509364559862893725193043895968170546674170035761174080586402452170248185488425597547207013325675782353201848108886776789324105385875141452423838617663499312731845711816916312675348003171746347069184593366504738480953970679747412350775225367076823914936927218299966411373037259828018478749759592687964392285347921253720696602639105127294605247009578481902582219705781799946140672882797900397207795042612255701990222919342556734871194818208958611477540570580858604947286818661864723486498553767894583362691250012749716626411222673336537942006107653245009396626741820971404875249073067364693644383624380998071346320705957568065285446963879427766912731248565483791524199480641717190662505896775785545663703714622267355824011413105198568548143822797304369120216533345878848178244143030830780374199853497878692986032076192872650909919029130840580193797236057020761005915597807597451006872100480635390606226640540855738429155326042328539217228270745921330390265697626546528247048210245271923528334638223026947292847144796760828518661918895105811028128258720459557840665494124434422285697993959811888260760612425217076701578363773851330838995285334594944519723679430822201149959724976884366599311054848124542098262080193555688165898780707685471510418660376093581989992438383210504733565053891695448235050337492951548534417099352682877516544266620817001720062923626326222742707310917765384585392346289938634458108309184668415021945952294957457907096155938234021157055963874762464283186926981465086220724364200225412043814361874868847615018215929439285280716538465811688854796146363725801443674876245108086110795251587081697532522058813142559679840162682864323172830786963954296649247344050398352891350055066611610688319441407591003838178877497117134587195893340466775287333430976496483511518027789077024600417010056184060857198660270761033481201475470980558377201722068353915163477018141321205708490586161837227795267705847578631927094816884809809439330269312699998580097432381453971863977341591405729501279525288094704355964469834206101869314155908433114049809024744969841201695202886211627320909383584730213846973471604665694661701043766903771947635103149723388855673019085765614171875290994956110256301061102426860734316252297748406234845510937861766012748513887586909388343676352789292526487014607248874493771262009876848615218729957378577250179981337678330315152881029286028822233708314894945865865263762929015568272407202374153594164348471388433180670350883374917067187355569521746530219391009861064521698201382174531347361837833317079731618358349797426993311359327935603182777177946223719202874491308395889497544623383266685610846220808270353099874085543737267142139900384678537808373893614812634612128254103350678298021061461513575464750667884382007438918925408112014155955961596738972196395022809014955761301839804937916863703081783907973191382766620018995592237341174408711501113727095679161105235723309020629570778707612013535385409906303976407566549474329287633823171436428883574803370474254615116992577584589932591284708910613295788902618258395546456877954096807797421279729315926345841619593077191720841972620457877886487625362430553442163075852334484641738000391118189152098819986668370243865967711542040138534023820944425386797190075959882650789094814208187602043238304973753952751172602351487337253301930413898778725820302307135183095095247803047789916329979692650794286254810364899642523236295824319892782585089028118503868522256930888020578516734311331196026817046135206183203204243984209902175590896722141891006782393373192543384752027897681551353818797607877118173474664717629765959356174597596384836424454284161404663598676194632081570999652722355532700939832049387690058807010261945705122645517211941915614621117856733395320634408263708535819427259297586826227678004348018093471069364607884432982983534669888754436017555175294024405619443804660253289793365567712467963663362619909120106735029353276644014704998307772187944901826157742474587355656080033953222091756853910101509105912290651931081035025658573307681653201848525076546708554460944848140197554760708859439245582035321789409481884178235188012234864750807415762588327573816938845275597653640136785150416961202031050799673674251457248522333690713641295589716909977440104571547317478785203381178389719065731399669831669720786659548158421521817819569760902539363280711522337307671125012957616139339167273087412033363599653758014486421976482056686173079722205510364998195205288829457368576044424895352291609742271767181230380627365857022911762879064031149536594017654886100903977736051680046635791921672440754145427157169110198311400932660800254165306802565707978931032833342703646906777668407247325320506236756425057916493871604035420810941157438698948802398878396577325856989898827092643870440547076864875279828780323689652962223575961349610335882694255920879404664756414860602143421338161544202067239898786483663042767580565824085032169178353826316822730192056864970145215892935097816045438031100242904807948304004417398390020890565992536784828383222928918250133921509253159892672121711027922092789268094838593109910126128915957412314599105588584791260460010755539175777469421415194292599627426027394674383367842038718182093347421512401365802377163759058880441758307998150476865856421819534144789091774084740959686102475744568670862375238364598663725189019214520571345137716428016568577304362679786549058918270574890978786262947739726980842938257901621187367369196322047429682531719231007226819673676019880837880629088616788117295134228956865887688805100690747733304868771916624799658395656898624568850234407739014105045391890348510289454693223776738191262160389606765113767382526048251185562389013911051261123683071459227206368823057583741047625818011665752724690863712566894939713059383778342997469177882588202006902950831704157970121216967058881861623824409607224783330068755643538387904982400627616107927860819293382936124620544302104922876921328780747875668553073661465770493391930539436712713595166196147670919036461082286263929306886034562387137319959926061083409793342562203149910342280865259840808203862629706867537281075427704934885238536122040451254871765382715909920004827168567967703774026634241518538754992493162965982214504004531065891580389510573417548998274541054720488607070369362129340681003778933769187801560494906663933730886288208208622645740367854371541879945452500128788235850587079752450387487191021730168223977824521875567334950997003687170079616488866531463028410072382338036243525487272223960996146059312211020294219779990826247765814710679415125454174090847061936789165206781352957485285532904674795724746018870967611571039419481276598446625513410546312240783566781845968435437019217646890731230364923723859626654537441714539066512049118991558510816983562833190991209277090926030520198952027564072285760818116762701039527428471276460792267121740171306775975330681778983727021248459540238304262572442190200420874244818950607656250927351836747121712389113375550781204448570844110643739089330790047240743403348617475327989676278406514380114103871411200758427012315920015054333933411147001620636768333158043241525148049842178071760006520155724128737923328847877160138715560812961963314146562138665658059828476521986896362624607091904245047810863255384887582264757208778868069050147118212743228094362827978893589180863357363189117220316721902632701796215358344321525916619545593964402044799428684325163927948803922831669317763024692369226191291847616238595420846553154699458018728656688328544882797198793543227678934484983684757932188022478142504868079585405358667190387544322705742208866691546031620908827748045946218233254890826212963876632979433230428687943023200645550143546610025235034885406528239582745047938728062903393812954605595753785618745768618108943507790968669455309551108759851971655584931004589058354713484993040137582685202019541924689880060093521964616046128849210806905541614211558437929797756100003422515850713449627351028015576730572776479349776200560291413610644848535636396805850350007045365925344234450607580797091852455346092155368524607774688131657002975394112381698684089134796133660947215794909709454748432116676754919618403063868340060345184570844540379130820931955863722020387908491813936172902667924262643472097604254803249322256719286710668326079135408085170199976816215500811296877217579909426967478026557323341428711630855528980375023427177254151925119177632327984308372636246074796927351191452076144967821857171941640966363957271092000001856866003059959678175701236054457850966325552070337684913600879422784432322708494405881404552812147491653106985004080837164809125274486904482281933920767312903288917839252514630371130067046578051816099749548033148424634910115039909485973842993149802570459598879224965333608440701940022079808889483898877405548226018617966131072170684746916278993992697523415660001553123113685426529759509592426165359174254986626534887611826587569870459907039092603370992455235618443601540807981997984777022468163040127265247284091367435797009734603114917908921231375725542478134593843536107518923681148066863300585716578213388633534703832785505959298721715104979675475613365002667589460893517572664331540230536970229116266029518851527099495302726067888761543023037550070244317451527232667680204301921621167592534267156251783495122662180672684465516423509394018198273465296244056454693393505557452825261713955499364022953399742525033213766792756648999413264563319751912356515639357983890896951606998427322193367307793665987802092512859018871353343083258162426314024377084916929834201685757456112760334133706000741232581594142991452802046366187678399701992073367419857871759543362613309237017289431769923861780177592791100894381418478641603009519025147380023718749703324625403169883044945770303566867351580210238807393631034265269313155371984604251071510440341143298688833959520330953510380099417328824277530859675258652982886070294889335880614366798229832344498138136828287688714634232019683856078360002354658544450130206149337552135436858199605912532716663273525268322198946350225414646499649074973096206747605837124576922441233426746486357065594341633409180442652058193213626112133430648372801061953308478662960032580600801819079717367050975093177805895059178267847769248577090044121032195121345163173028603044873973703283158602163854827066747529981445335252968447843505107898022983101978336930570782017048542607557092363912977532648738524345991232233510795300105360706456944185597633266092250507838492160095187473606723350989861789233324211770825004554464518287370711320873932779474218430621037296471886020799730424251572055986803042728971059573782959980616519399624642425784140182302705775383284192654389625358997815502745463431248797494941904217681020419107285442957220721325335587641309886626664303541336621469897952645183780906096906573674259351987300509961801406673900006986894933142112509435680181925275553372175472507180462408676424494341023958126770283599025010771996647784495396109725707750536268137716418752978099863730781758552439135444778862159500433848724660736515015347746593221446324903301165479411701732086596825688847754413830716644869267892275266197289976468734179015735999265649863912811338713353725883398753487647582353778699734560055860667269617445961416039870141859104696668392326009933281230779589936396970023280018299594440706753190282338725111007280372731133328335777232374017069934275824757639012684118510051236075169848133179077062799632526988964716080973145157595912082557669938730447585589218860992485459653905061045183940693067875612322139408706888361565244616851577043977249222972919258857266420579338644118443252605039520750737376467767476694647015880731140759432551181120939020328935151837674122761448516889603780917418146075111698741873279622266487554271804268074508993568411036535456095976165167112431816207160557699989440151892535765312861330820504907273711067742592148612298629047761358370163614576473821001612253958361745632732915512589002330875985789199834897324953107303341284671835340678123155989247326190780137267056109197554615925036510146864268023205837109521516502532958605630699892675361250093994255055552362648800200431516624617205387304360601337863650870340357514106472241650317762971687801284965792863265225645068462912924000446864527008171333889696333879071180352189191844239308748086051958805399656979333781471226249187730544052808398977390525109380992272301802692316696719344119987304389604174446545802754003122552311703694142216600615475481144991303805614401180629867007149292080386515609951467051827826094962450984340904487098433663404642293278467756037214462842929400086035990541955311661859897089816424447583838649281967014426166441690240320291180953560744048781686525398332837379595395643095277289906469285375823552326104814122121930025973010382104530181124860392351172275353025914597818298415475221056528458985136631587467725209214440781903090533453357505418712575388344960368739751335562203899630202202836081900986831505151164070352045836078568282337138878527280995841205083268991977989674179534044642044865695593280393037337934955798086648585554097780245583172206784508201589715679543611754207028982419793445398387652726089620989747756566504187483318122934939677860332870060707043767880416645637571624335537065531267001673183576001141358572756692381906126040746283522400027173008582006946571594987178707689465759564121992404839253671425456483196737872244622676184542559812845381090415400572759610241922295547495297359703946573091954319351812224276398359805521702940550271530793047284491883012328741108824475703027142505265009237349663983285590238936354226849030011991617782169210385274533612333795676462886015484232948235767981247488156134542857296182284076214998203029928878137027710666143451487003660604309791114226914186846123938255827495315485624832357797037335682833601054170286873919490382380264264029049642844487195414594409269860068274732481946491269146653616884923895275070846137737915260785817909710255398752130964237284845471073324431438146086643800923467084339760106340177778691923858670436144221977293844178212919625196569685784191264245128990061905113375073434639098860938981406945779980091673286761297220154749922995400090271638220021055963118747191977237265557507868678478312274384841715647538697198176039993108143020879588925774937502457667876274474386133104593636167601935413824725153696396616586090333756805545382904651449897434571311947758319839398700939466401021257395378313704733967135947068925284286485711720563119853387524729548379018034291726060362440077349825465890190526726685196420001612718890911705853998532569038936056127416217003881125413426402956167532342722013865035815508415774003833141030127501270369994998166328413900162486065108701478999347363610873641971572682924220445377535884224577815853951082646191874302423300425739308979286509753560107824915070393892022030881936665743108228491220555559539344903281913596209861897776497540683611081389514143046961805232694915769712964052763087411378763271496982777246780460361909953985174279810171102092540038327346219060994874457411792446986321166247110037451189293109030193552941079912968423287546294245842502481140892305126238380379697315532116673181587547844952998775534320728785455558322854012296199145946007418113093628876031200169640186196550502352843557401789096346356430973378368982653665121404063906928216736245859115122552416826274708429565013582330942502916092825506136022583124649197135882753713504535311797726542619323091823933281042004954958150277282492694635934865035621241229972003173163329674380868675661482693206276065215437969937212913089297814118697439825271480730451575689768544434286416805069043720868374360045756613385031693714461037425663395542287600058068046776290740465324264704112434916406774427656248875643055745804411190776695844247302329653619917267205524350395004853179339247928617900546168043893364656151995095790018862941283479387414219105464197581118436582850814775460563946109286680586170041444503993530479882689668784331771233878419545471575278780315916469038609063126795667171389452578515169380298785817893520920831874485802790359586692550460800774302194889631706980539898639028374611023493218895295908800485415554447632063192705252425639011414401410245174101103387277024715890016196091061087588351021524565085428837520838198505935083842662572879073036420423270854940660424444736929800915697628792640284045480116749543447086588851036256403701449671260302356440940660076674440487174871092503729272203752634308956436933951554047982995938473142645254319161970916969902890388219879672065332908765678206369437774294382072142691680953638254869045099161586721320011244991404536278539454686462063384530306449666199282967679649227295032627780184499929652160416707877314982184766739817411534165908432957248052449335526633305767319387008661123960682282623312162193316018087982387531657307749378213034909283270643642228708333650253418013682937871167817096009032573471671566508131353508453157603193233843155582575561586499480108952685164817813869173454287280127035922071134075235171831242909429788381699952877582836163668535967751935181103727825947323997855666990514921804619753159340939739503237323160459229189148772973000637596980806002593056655852285022711460617587215451071682185223829651206430789257206697168203866015817002393931357197780332483968362364303127880275429738578120469907621082692565747823971989847245825556012546016730087898950159745628924194178273853075549893306564682668305476280053882429691275087698144876598767053328050948805439968665518083840439023602565544240361260818557298293804548997007051258342996117545149624634902873173735491676502630088926214204512443935205045995142105953884101231971888274705434114263260213371156851638719841963072335033087060855585543245992372225250816486007939523778684239105192696514187554252948052385553915986408509829050268967615828172121393318737279671923378341785655244591447672557443863684171884043775868696827521562736473716962558924380299122925318230114606692389903568861275293706286642870479049738646256616662877475580466367265491455093530999228157109082567777496619122926030336832598017124798485034347917647085744732295342280437839371560403559069506140753572843519455838892623973069983482536795943117153121060489336805627507402488856978685178902728204168076900551647300135806712173485460548405914480113309565922595806298514677800997549695880078460778021059471365405290095557000809467673980346239578360011879216624216071191825644427825638018573727697046368402805022806987443507360139909958379260295368338830079986968003080554363706583057413191033437053647498462678096210826997226675430742758059966937521347119206173650885226076858277081507653907486150013674769432029649456302473578044472553662460229045594743724384980788155346102845500481964419198945569959303960858273738718110622332738331228475270749959175693035721693157835770565504231885439765671531590633559133428289971308686735560986188772810132970305519395881653850412254822458976589315848533068619141939864916966049340965942528479674748759420809051691034646372097123235875505020444739742924519155912042150769556234646403055660343974105575842755720561934400876955346365333780062617036132550882652797683796927231887483996799017214834475953554410047601457808243994857690617573383081020219814937912982329779479213146064118883415110177954714973574758115411533930101048601689167460058163741777229229457832076198158265002502762505936125360188070417674739187347013928509486782458006989678263274983284670915847145407557355477311436097407141869501900895229968397772388508953283987305991612116235587837440640095133788153583698037066741940543625788403213231219472780097344613091029884898348024737452654165857167298053533788481694989550017132645363097640808223198922560266220943212136882937867448336217030273251587592058215201368808431867884973891849218223563668758610148884764046624352696487205863046059219467150180359718007125913950965243765312082477631470878209929194903993332306838589096051688883727731485241438155423763895983547433369280870578379498012011153737179242714865443689694212492255354880350850105764830550920022828433796368266131905100731212366078020248736087938709860963223848436221186460211597472042830717168917867393974314471856500025093343137835285968143039500240246317157494611840940156774660537770275510615162160146667299615929463534576408692172857226271624919650148661054386903785946493898549031266628056805984664444264645132807282529240420478501556222730694812142861919108086443255471667427744928281289134459246993986978128874562324111321932839885639673535113549352304048143632183667981246022747198566178948126889071519768912090950391308074284205668285121563177488952466527915480814266784375756058241010555708477851708443894391185695476297322694925453717431315640920854787595841915867970140930210090905047905940199149171843729941832752153681361770197898482160243157942517757436339875185195385909645063700167773449511859408740546123160060615873891626344857987204745570056008422800118564704586906702512506188008690403456519153610263485382941304218855533756604489283793993886303082762600220150620752464613519952691147297336494859577104269243884163734884177774334389490644515972141707982061755851913498498794789656578480874568430107926352835953115905090525920935191264617541756770938151570929043313884212438686058181540609289733863668722715739810737216964532896066859228102395383344078073518340706795241933491752228931372700016892003921531304802040137613210952144975188342474200318748004486576838735470730387000977502691091124043457056444106396745674525478788751987968965893365358237396400346390012316595353334404407715150318414600601014584167135098770797006273536806586307022403586194893118823473579258225393735442208173919874899378862347159552316905374508260410741937367935990752843138486782162189032506310190347597489668045494595155824976269387065781585495567723771578149356378705260836171603206830299151633820699314437617983001821637672858592490729641162617293751173796829543260098127889231002840782408367703979754162013504483336747171204486613046257437574611239424886698117578622218173249842973234464184918661118149385659750464145238421993716604056037593570014304234895836263798882483743493844426340051017793045214084217840185758970815382299722183016745592063749657123606999495355724998690913848960868216137233030857588652838765310679830669488900079242908565509646755920971405294355006963673173057178958666398738676256341432199045089387852206737578275358277342058396708174830291836109065322201272086895529893161950258013851318665719644308243458520933404044051506466707611372126563879047358048243993127952016225467530000933943209281305460304442588783836209979997802515256304011494766415539674278717901480924453663564490850611035661880856328375384524418341791618465167836300317385129013564125642001228423901151269857719974938674361350027775670498501555789236329545003374082093620480986923594691508343525340060420981645784669240777513102176378540831235595695430506713682003866894786820229768691639637119045280309055637954778432244933416818307333037132041869464976793707323856373244780567338842136428581468181964895349613349183668674630731753219842320427071232603279272687189883385189337252441030464509979899294939419783858296463271920818824131477660067973605329949275087576136653835606025262682944060533308907073932446741414159144754633899440272940454378643819986568246135961796221315292383187725271733879586537010833822480608533599394989476830646722352615336079014891075332779719011336411327904950673190622262250502558694645941758531876635582344465665122000823160390259253059076459094942334841674037475471169061124475741181111369181857224863351078764898232451735315517297143837033670791977151907974991859922576585321798815906007663058558534435956790156279312928966250098428993053264885764041168802319841132476494304322183143005449596004453900409629190621961009899951955899774982047213375122900932805507458773369115315399199696463278500238882610907782615050862896835177799387845120910354362048486481782779854219772256957337582465502779710092347420396021856257643649456197547275386729107518573936352237861369687441664577043215958138717690625093603129343227672246688784497299353292404692176636785002412964441007458313598836882264750563601396200986709529891343743253114323658769102033767068668123591254284304875573095567620863214849179611851608871755328293024768487604213799827159019265763347379098611871401887126617581489446281928111676203380389062904080683946141757111624272467559643737363140885584936450970390813698486304576920528392668423156562797056931024884606589386755963874457872522669880006638594509222832911466931244163623053739252487175761693399489835802437267094846236827372733602733026812784560553917730889403423000475497285653506954872163930997566660884437367616691177233850709054719873493209994042990910099257859896771559663636561951480861742375393013921868355316866662585990434216148439806690316455472537080536804597671277229424757316168380759320148593168773742110876366817881969670415890490286711697164246301649295079900674970595937759098341426051734533041024655700081828230462277729868749998537716087274519855011347141516203135447020034183823056829569854340083372862334724002180234344804369998107439897308402108866083338641334994942282459696533795082296492663188313225661706420979120849134513899685242100866467427292715914794650115455808709506963763433310850946926266258890933458869331335029772853921105510191426239093024545812918234100244410706227718431975916552798549756954655897605336530926639085846682769580076266363220882938410386460550115359411504092780957040333371083492749642566399529211136668901331584139928996782819420250813700002835983073424559698553785503250916927182323956733401471583260154847060257560450311912578389580456817768720466769806105765802439645077023938082037871498893166317041063137957071154367811481627725188277332917501149948682134709905567213831824421955274884851803240915493545117591323778279789769368975994738125643799649659630361850452140044643594212217636682953099930117407090492009983309627285045079893340595589059491435038724421935335718187974691517416728636340331788289212581836312496132912882451230790728727237757586683271916727310967116916710045354011755408810121171795147301374688565244194427478730054818061776039821619640110516899913606717994799709400202944710707864659741899123553049102879552834851126449153704366297802708392622319662102790589180213303768055343819206889659427555396228670444600006385862852252915944728574203926917372049719758102642146230027591849877436894793301862100603198697576737652313932139875580564631170186568824522601832456305577903878962231407112943308900554938731662820268913335179601844605643963663668822840857777237262742381596688365309959627471678300586442609037610064614102110936319092312837734150811230534515865466111037733071961520240045814578455609156016839556202734260646476553255691294916477758149282946345296498639057385527096507947595671562582826030909134136640669819014597673166908028620183054639697597545052549097707228336912279431494823194894453691816937837197654292282627767670528651075323587108672872017058424163866910135375926746246183504834379713341073798794507258244779608679349529149917433142342014079886242613861117888671127498704734713401755724418205962733437134612764506313837539653431736754402784953677294402106539356769107657625434425531950393835079276498613563282648352672006278414100526996137093185395472610416035861330150563143118604811722269476817393771328016683426923988894979817271828351134899357948105876974448552853683125862333478316395402694442390252389594884824209786641744296228781118753746567773591683745586955303538202379335542718471861096188136584337244354783517961316864868381169752754053503074857797479384411727994377782884546680388653957206299268274859454888341459219364844689380394086679274135556429087626757872894552298957971974336070504063530595544017778029062099192717764484776487471347939503406546805657098781443499792293652888682577042523170800148941599156240222971600299599657990003180691826207053017291596095238566651664185584183272607572272939888501825411439933532760955672317583934423361445603647615390007066739156552223731555344719641765556770194076191653535979322420817407833824386982648870018332356418676530593351673762368569862864649777021953625757222327601807412846135573945290251493227689414698969234812936969636207546408868192897057972149640101140157007235173818008673238418243987162935555249881151261643515942320658299468071553210217640683182297681398142071079195116054398234609102378417054979007792566293924476677857598251426578830987218318298987070052977528923091228568695287668196725060048520959264571867179336422563596400238406949805168667102260722634814439588239675295454501235578009094724902879619153702423386551193078441721032682135034994335412573792920130672899927851330436530937503832090839152766321259547856893280345082867381517907266889890159972946169026323915511468644640721681877734596968368310655999822051542861603254472343992305803325189823746366730752754894561274229327530604518007273666351036913487593491376541966536917516892703317046984191209753756814842922980592844253277462237795078710218717992556929333091500014430279484494720961036153035081472011000654453661873678834675072488618719521404293831782172982007362347416125418252023065003952969422122405152787010982363288896820780164325245732887801649115047167172111538485552017390017555799525969589464437647514891805888211353469262320684633517356722824910492850730338680360087596135690038643011670387914816831906418998818439396523596473696137690353613951077917917894640902099400386381147689580274550935718098719662099826513161502499602124559094043550795623806894030723762339940760822115471429706195463135921822695132359372728101679421115027102307221215298574297182399791917486064175290756570727139631504766593349588204936154151692652125852534009448997406871060216771524069928788932229561450759665511894693763567459151994417567545680732355774930894681534436218742645048418915980975240783444318808001824154846783337897413752404265512739343761972048103973781261124321822662763984058909326163518522404524796364518526205753911133045480554637339152170877660255681665481239492768589093148571806669195773785353586921105293270036039303462508573641980884819101248975579085605335617906795857829358064801643944895641031820697341475898794797495359035729717899467387457376118226845539533730569628419966018629137065168358221156927135521359381949738851617570409170458350407137341848183124928757998955664328562007832221033143003660630086214327272037755843882807853932163659530330669310969831384407256742633334282037940802984563191047280847304862938110259982781381180175173784063869932901032301554237838196001306016594384638692137711904633565745217016138521906787002322627405194303083057935249497969998014610704927977728487133866984162300826007198451601225788425599154542503754265263508468310159509291814338366385589743814408635157819247031800569204753421999239958237729893977175969328710542924683535333337212716404756995607071846952175729858180389545713413439801861927872671333012624639068849177181809764205857924347605838973928109856816356792454039133022497737804937538797148425569938942987580294751684600230228344037488166729827096082472696425179121602831316351809907328070615534464369539649244509259333843612273588268698571694390682934467870345252668171957141162205056233576284754954067073909432922038029354483121169905555674396445535009551113333646704070675552640639138951078696279516492756970810723411041665907672912570040467890943172437442672752135105484509571926384958820855433633776652857401066808103726975715069485830663896336379180391414856596289364256832934618220628154384450386402899053770130296698575029079321402995276432261932258311949585454837702339593143637254308017334582902521428714086935758972381969939453640943805652856796962763473813228314189628948589840179063744952344352233510845582185342456638370173581494952897447828337458012732363340520005684795120541937169981267257629854994807122581615149058569987470187417308617368764677372325076197133936530482273396435780317851761194295725065252406933305247394530094720079409708307324987088653177588911453253897079501353123278508507110586432290855916204701120762139516132575180585380976588129768354879501656245879893745156962912073311268190295296041650255950126998745269280542653747657780478466422722831040066030692519289601679176899331580982814370457289751236673853828703741883985108836036769708564753961166068355628044864774629600104151776342343284111856918950406368729536778706997901849818932400943738346167480602783679145424294365381969034169249345968568000094800960729253132804193553092212127662164275643364230849404017247448003283728617818977245751483405869439008541312725019443067121496057132457013144496107232831016212422593580023936010187548773313936236368249520843554889734625977682469389448622937241119774052110476190491521331651932172610690007835007610750706871090723580337026957973665271375373280017213212448331355269669785086228279880147876952175052849487071052382177553819549383780730455339079705947775094458623032617722146737042988795839285230559808502620912087254478341672118887617501406706900755623827279995045966552961597969411695959569768259601658191891991021443666740786845681618642077464751802848652495037506133939053246549345353333499167839924256042415018183131593877975986527164283195015222901513718586855551687574664122353032043715134612238967840451017513853263178793352507600984273292755113970585920062438360290992678644188847160186884238389721139453443820248442952868180008103962566568707158987447668024093514211240324792857886238014678367097079749018474324330442980917239942834075528922332898568183117106556699719987037090126753140713897379188276126895125533806449183384259169676672926596115376540536725310076270876936365737347908468599125024613933102629673657558558823429945385743594195352311391794956956187968282280901053299165169449331398834710596263182696874270936334946043641358597792107459533771905864226221449950898999068272780988989726420695390787596822683896576677427765008307989307311730716766955059954609744658427685324525513300654556496151490566497957009437305306779917290325817454845962346689947002780817293689626052865045451115397673988017841036580365701607254018040723174020726839481143876033241276030636511655631277255213000931528675837487030872840188249255069881255875720818614196835858224528261599319636950306323075092366297614168838714204902985079627070881679221474854469587537559383450694109658210533080628910109316405482540414384794824624256713483518667903789867108614764394602963057726526977137562484599981998692468987369144177542446039637401263094219348459644243095703509861560762809847047115697148992990728832585632816880268771442172198856336393527310783171059757788610105957757970948507184912735323835290060035310377312926288133021240571318835623450690473433811846001760552143793796313645318877680279212289282182509572794038586679402392782145829610495031225456251588557976515109077642688825620229812079578538150842214090819522931591081045890922198708868028226408077756641755494645651397396321787295775534465014051766230182615906659758515950305409139246334611669449289699557342581550787692098546455008572958969631210009281079931546194084709562579364970190606158373018460637343983737298038966602208229716910526796927976639641598873889199647473572068522092896469040899595670813132524451317924052449515652920641603517796716198170525844210349618486658940429531244820393150202849935231921972226387364389719797868172826621774198972943301529605388276313649579880259530702730545986316230454810884158682659344520736442921437250543655734821744166293231445227506821853175390095318921526463411012100251606643860645357699408448410477687649906257741591126321466630897736619068683366542294173103373090575884283030071409325720783140581448779106113433068618777760965266512225017959262800889155062377358457687798830889697401337828798974781900279848726853426540505093779583993444412773075203054412005537426275150348574351730124191563522604758703323144075521880904746400911539622324552969725954887080676270069020776564125699338603071216217905786218311431975369929244742403983291268166381283364371866586684662668119595350561453702625437578633409077750154762455722149547937621082530101045946636339106317699610712399405852254928853823586039934075760668391596017674134703270905412854224852379912428064546818450720901855586798888206251266719406403408395780177899840385711780422970250664750431523637949998755653267112870199432036325757607501375981986040603543844541789839917411964354792588659929218811425948879186741984282023098383395628324379317030608514968647326962193323789552460746062572809173841731266018385676179004229476303488744213420956658141171874355744899683240270953603743247743497656354582961753547305524029765217907125834440058539427979052043352378646106052397154173068443947375381037262409353707958542621145656914332685064252850299522796189570303966356359939582844620211755754632089055195381340452888252221181992004807506515284541368590706085227436724467429481469639744215966997823482447488112318660482830798428681574902106056642186731385067750932117507032456782280590961319039121304756782302209885251209520428300735076614446357135972891398448099230610346755880544047330671935588439708866260847097637009199701015383511083884998219528003526745906434528988208454255011449702405355132876793487220625120292253241823780574959958702397258584901988527963207262332383937020738116895832367422174524025730865273719692373765944146427659288847920246942530579573596523334307597987838188188267499573641499412160278878324437605311337821603039851172424046386959536600485337788895009959195505980786820713459929032328418598349384023358033883590556609404256562755893265576527260791022505487244908177186196784048223188406852195533898688522780718367765450632317806632414865808309987512710755834552478872352269310840899805808558330659494217487851880984164599839094758264258339581342751749256883839128815264106635078306395315404309422776927719909859869484141742338162090648660526837840419807201550440305519268837342838895213875666591259877087137164041546244603478255991656418183362148779132615571350166384174559752924485219985313100869421554163814871798528870796035354489340507624706326010320699608625510153190250091532324961530987855256172851179458567314259558466222960801375846357900109894407319452242260465361687853591204597294918533010355637168578151107817932667321032290866788385752630189964758469418086367562389090317142336555309595291999033178497971548659140006510355120286580167936847426821371247367571332457740824441479601023647536489414692740220864080078083781090069278583067899516815826682157258340124109569993600637438045020983649631046853303602855223652687173611917421161282693305964923823352103260310469703925189493174252807248790288536577440240247078929006464995569907354735426439089028054088434839218110211687474271766585553494452977055170014011396138710349532186797930904275574912760740047106590442258082360929142172448160554761251619559611936692299474398016410638476362056239088046413735901329186828145284105412960932265128693278669854031136293384046273807498550589012897460696426941521934192750129063337609372548857841489786186210590626887503715284675536894138461986282768203998334890043008077257216635874966553026723777015433900053715191052688022280060955890504468582598892245341193624063825108418938778979495656532518362096621119364155030125332787268626277859795761371570632310304634278890531835936323883329045296391939138509854967356010920783757919373963807565777567529118010586138906155743171150488739531253164843983011347930734387911111260019732941291504163800071204595031823265202204292874204387521953376904480607018961758106731432123838317853679024984188037934082515703796235556857842127061663619914358580296121724295945692991607016652651816489485365536466877319481577159596153971180542520019944333302752820219263905151971032939228892194159306202962603544707311292045371462052303369254629241935063180771420376839211162600907947446921042467854263614038539268123788620344500954151665473367545818745754480001024859522895947411216154503797558929928935279064722411489297240700731405945938465361999987055222256534079841613866627653295023485314792791418532222382216435004384677637828869949757808457969897974075954749110126223971967376371048307065753446161479315344247073360996046278804001343818241293098891101514576485434917869633846365052030165348319857271637688489218332302877942960278170022031425056919116973559911844995873330378492458521610820575594792511919184995216027689095028847404976397012084062304009716947520865543888722813136106091642032122223400634131916136672437297659262743822567306608892784780406370623066173133603666249392652268113131324179327892561798739826212722335861158644237022725520222148300193573241772701119281923505870026986015823786375795393871454518052703831664229605867485307101983419300948035558959660738360874955896296837733965197309679965275396474899898327535329153231223407969476707163331027557228040156762657761268426980795492353601592392540206353117572451912091452466599216983495348702287028750201367744888506722345197781596067992173141554170707200835225324024692057090923040742705224053194166248291312748643002174111239249682377276012270721364166849723981297954886497630889744570636361007793507475320955306719209428470273898707386264679546461035433865940003140739184259255890885561143224097806042132605612764393580394470266321317741609316207608645323561667985054355208147249079591700230260291508335179576392166522705284462729879440929293985400802373082116295068870767774511137048202894100703786513248154704157107026531181917249547851729301390913175970522186418038545693973754360622989627106389794977740247119366328849133164994201316971137328784511613109286116644195888329494883684474706226010906051658993467339648590763607742384655290633170686237466464186141724057613771955924988282106202636088481431000919763030514004023692520431391673994478722695256964836709254092831072863772680837921471207479571107238353371043684194322494379245344749404452961860111231106204214676823827501532721481784449902736275532633666321559365983129442988522841453806692783863987300068530529786742350138093662032077906911256326028859497002692984491114140650411137625812436105034920231712935637071680435154844269701321537470783814127621504994849456555003857840520403676578485982192955302695378658568389266557587874569265687378900854498101872785769869212042729562239898471766177546826799798048596804494185771629796325264199903964139956786193292943447902457769175032091372770203275047945888154071035496111063660927247607337731078011013609457242359508591811236699742450435805777601634689750701870114822247190768551297459068824750891812752267925919000136518654167224416963063490112172220313972979109553306966195513927097643404578306562577162572648529244422673328519282481179143621731404539217633877918587269855680854978038836729239950555642355140153299919030858735778033920967979895243706653550175691103013997352147579343848820628649569450268080070960419755589972591548195310267645664005357169991996803694666738559514155191422901134331019621744381957436562956822038075485760482615883052568152956131499110909359722995820009749198447904052364103182272471380048963371136182716764971737330604899138849624809895210172624134323732957664776395268137767123251609577933335411967871208734332129562384752981432839000037145102468318737359474935252370915738601321722074151745722929175957216308268916520680645695809275681633153451554896931357790009660386492454197018083314941508846935342007625160879226944447454485023680148139662957385308110006971521029810240717093716447088221203556160601073874564116474884523960764070699133425492091402732002085803684638905093458000644161801921783717645941548344128888385205104598282429083426666957771442643787788973550044750880378471759045449894921307428079775845965723602708265350460613338550000692461578384738453247324617974994043005393100584110871103702841361988463940992502901588105908217722989146930155255199939425323561974535589825556435212427859668124456810993631334083039289910988424272754686243049926992446385431428672745743286228383211929954480263261190862399752368967698833877716141895314062990348017028452337703167685269511922419586299628845091992367614288675321606463526447459142866874434660071986237818047706270954410251244666192218414552334577626538293251812182704429048072965246830707568540842482612594305354249003338145819191951981377026171803931311234481265359325269968717280365681772664859849839798306321204479902351936765515969703021161312019126459997794580112811941217107586671718429974777359132079175130545813606336133203932381456448137744877334380430502488636857116934319496138907271350728098242099871652050429720861391375028583159512447952103188629583814217705798549659930439957359197283554636413520881617544233489999668878317498323963797976985385785326793153447266772729461812356180269066680928433334414180459213291215753191788699215007759769954889356686072453285084897153928390920937606035718898060837859769848143789137595917914563544693841873485532835494521748145278948244391243409261187317457399380687401316407421324228406795579330108330911963253249747491173146367603278994769180503587641618450896115703006125895193386556707774052621777672594561277416051937047070787590046535630233978038415823168974289564616292028561995618799364581097984884607941715593977116163214254072247647724819407211387231644716920973976528680162459040398554294005099290447910439265309954808916694190200029158071953709754534475704372509665486980017749039610463258389803362851663070107393054138671001885644854631538279680664871149606587396148766596619227161367008873381418839353286285442827373836424194552753596799987450042785364804499015316610570627808749154052439942103218098435278373158592123475409069305670194625565871524102413952738863202349382791447079163953835068002265816960678177062794886831172267603364466185315671250406210086931825063890724405528578743073774223140795781141230426825991710458898009516081886446275304316139948397511804466093891887073390812527734927566791010438898779349119076353188897612109336763823486742375401343872782123331867494840126348692921050487708027795191379752680935972835850085837674231391483098997347341785948301357329893918264134376500157166251407884399203162888659023345515706713459543909320649403757191620498137010360516092114047889319883789700611914114080892905968002182089593959344654630763340064913321670126188955186958951419454557249448178778366618126095905051685020312465331644149818966293742969925953926537352463968364574427838026731167518594744762608393001214981350298982523253670210062785638273567936766322984126336883083684867416407846703935016105464976621914388551413933235962794454116266968448562440580656425682014491905341542771076237342645836042394714630155908756905194727774749140551872586416465860717627984614386983074808069174036520990010247838740125142579050259595142361597393518088642025053231719807693031114454236847319070368342703531957925985845498737519654367441930354656484386213302317622624889794708722995149672057013627149247502253569792994889756286158859696119462497348613837269151216417665908086223655775079792104620193840408873143724352747854050359940368590710002531420383455705674288780633670293478487556308061484860960878426777895270397572377009857514089187959597292341871511453580968944519438207754886996641952710812913240444157721613064234387326541698101084862438481334534267017406696102902451881681944710577711942019333699430578495115711124108706957400517451912350583629082152803877153549994240095492074448472005336143040790915638125906130110581460298804746452208876829941072654208263033513677491374978818447230180392306681201707290194297270808138557231652594989133993204087903197123528484902038028015423214460522834818693912210039490197951762084029764369712350217064460459283320835612895332093823660927852172535433750579371363743914950092805687169263460758709163897564420733104294778238620017324043694510220624328430842225572406654817682447766005933396721318964171677288732040761297020000802375206513246058475074304960675603777975176336037388147557395925493108638819419602470772078367440930806227697795755738735974894104156583921371186593931088204347198839598413440035316684850803983018010052856732278905488232367181572378491482808655463570317433521792299545416192485127999487533241010804378397582088269803478711925574834802649337635103146677450212891104598757779748051099631565636350105627691721872823828248756411972633348125693741771597310885556627794429288608456082952380159389508345209301017451205922280174223158130378095394803905075262553307916851468886572508470358315952963922929412679737089611387694284291064165556035047444501414058421719009634440251263364507296257965708544263351130005803947636896501844087452662512111258102730646698497101422580417463313930818768384543376698363484445430555990078450610129477258880934915112999985624783942764089947267823253470438606497821441043280148266246880439532749893727829003886439469041844572876257500918209575436282251099835123529255806333021436247557655406986374399053968051324794960551923639806663153543361081830907417058783119122304320295174526233288975280897912404459479023657153338572681181338433895656459792456029373076666841383024139020800748698686572171503311062584888098699610913920535040348233795732128031074695384657400182352774836910176048529785255089293124296778705080227556732221069045594148224311758745096556779703006373894611429899789884934453623914969822471433296709394040440321940394838644564485927215177888083181581469679457934203011928408496284783006804946398819220836856052023781300794946605499548668948593971917856848537251518282936015918369418450211977929155285841842822327845013338553098380346977937576502692526328611210283310279468182730816053100376080012775966645267232727957938681365529254940198064777098374991770913039397546061457809002750860878345157131609786288679038504986393626120102443917068455117383148554002403929857211726264446227352457180648270273353869025437722346861413496323032645192969578072470590744378363345116606537859859826145277631495067422462304255473458103627954240626403427259280308718098560956996594489868548427793829560948421305295732781069698640954410833173790594483918412060064431014964271702992125630806310903616616840819956929338658613698028994547697152059304264010305009458820273118798876973364076634834713471829712584287731727796792864708642049909471243102796977916921228308105351544893633572444682800684292954132270247682020531748971507437257189116825836511066031102040262174935978744715206647528152921312687603700280905792345546293309319319520095022747622226518733861743768506630953569538273038900131330743719245464507124248947418248603991804505440299256586147352983345618975032569685386171670493028179483519618253699318066225328226272420169024553760896917548463921243521985469985432815954446603399086100456593737340996655094446885053129788628610026750862710446286243490542495785889194042981622629626509523390488638908220372113718018833848037962157058534301467771241578117055562704003891638333326729165663988014465920231045879943437096798101079226164326039607969784402978215029706811567767976002751279364191747617064617591236081216137819906111818931815059099761691982383653247469137176953863603770742349376201583134217704931097900156754194291476253673068475737780087304188820681671833075619731343855503299561441687697182678641347607772694457610682047861819911732982214415113288155175603919889388114865483830976767094291243893405792178439693999924324151391391065569938104242207013046046235423615510328023861545932693650876411090071454673581716907617507433978039097351347094219812605670753570543896548163253082514519033877281304237357164855007551124058948108236748359356490866676730302647281591908043840031745708374851651758351570201235113634194229291999917186257927290011903004495329121443118892306704683831960649831308771960564628160073558959972061088781262746245265331820967250848246039680534313956671941944883256042244312306380976430727045063080381303154479105894880061456260928042743760975802947806589285556541880820438872948397887423323194417405283973233266159963482215900668191108701897972610429358722426847745829046447418959226200821440531857624437879723021787349630500494138792370927583992637341847020897143665093039466567871040700247701099082272719326901584419879942419057376346967145937922404815341488623407910278183891422898766170652702595992506376071037382533332108497846403718465362388171565788729881997929443074149282415019801398109981579821787213078503058616413243840067217105748843357025852281569157492948970206460805245550863813548764656871445178890291641349845597208505804668949834346437244420805167568602862808360571446814012366802406643802964571401368320791052064547947831597393614906770441632912998593694534675827517745282088452784800079192087858641454284936462240624773192541602637803852228331830069867015571259287666777861837238119203582739788261682515075972086006004647479058127710413247793987161426978310472231709156510271935663164026854346941283336356036637433260651835977692042414074834805979995822981314210773870242554264880335148434825712051269247953232681350992217440170626629514720330111857732393437141164387934638271471776436595143199833048499361651908590770055504423117690170260498520758834988836207456613855594194643019601254996973429432464535680685431216207737412818600273477331415224984690252999009144403843574065360279972529516549812986498116682577449316465399699783954213430582410645516946997269853369290732080303452906399537671377849924933548817082622177449541431074783059267291286074893772852285038780176736443183965076012918808807298049408655456402831894250574328868244887926371558656323574792316944820111039216727267581519601266331496072096307397406899267258146602381689617829785660602354933642991301102212810201506793758290892624657136307819823286318461691686624520825331654748497964432590131815858284078087746958850666428898769318683535520364296735915982811943594542073975269559597158267263365704056850213943082889946668784121555501049786727305917547359856425416153130970836115126411561330481596653534875598472061918469093519298589867326295211892738622336073942369431291925679508554952549697608504548927659626200661919652694968833786284657129122031716352045670378176490865730828552361257143417152973829378431895822193336220579285633158898709241488724093229616336484142022508030485561159908158494146416418705844526270867354007620444232001605734004074699006048850527838848833686408632570672557726755166139779826779074780509797508838292159332630547268396624357386155347288105156122811433789346858115062696724004658979341697863575125185770714503032841674109823748887953593078826839236769073556426420743311684563401778005097405074696657393684661237369885752909772519651134331661729406322429357424852539916339263467191122939280565472551001083243800555626747220900493758130754076454846693486229265173281194500761704819385991242537745194741582495902490697254597832957447259755020407272854678152306194763662523562532164441753737649631253681146942935520321177997070374582477531726160121842982339305328962737531168368242657767480771026683622891533682520980418191858360546132105213208270123857592374698109195404294290780775181224606875154823486064441862098510650533256405705216570560328191096821857611166672690223561709995831577922636407269494664654848855046464470122689021031245020562027841971276066933720757429404866648208763327302573389655427208124791108312395548587147295401902765919932199880641602797500531094319326747363111275636427429094140118547252617052610098765820333077832755898214313290292983964609215318268447027562079995648307132676165040119111931210060917954419006139096382001105878301792688326823267048911450358502766660093248899657203977860449022399836760661713253633660469723015223868852607711648332415447888813969670828857079652081211972177023749401446240420264374932447857010044262631318024493105016121606274058014118667562103951733889691654392851746423277145636619985344017267122366646968491464612436926026172907928864002083936796570239586879886378599794234893704865775727139380324382231697597494376656514589450092600652476061682878608793202217219088338390187289805803012611504479715624199652212371779206353242932130941235047499720812896928473398320808348493597306395240636300758865995899158499200428117644323490247148260616013919757823624043081079463436311266432666059032703773695643778005526457712593507261028598492483852975059037321018101326078675524960782728230888060874043053717893384833931553571591414325731213349854608669699357802338079789967972001094625956467309911569943604471395866908675720407435382044375266033977863638401551454595277125241980053067696372995738472911051770711004472714176531146713421122750930479401241561221605105485432890655198849649532898557197304064573789493966975157309147852930667104643932229893519037166647672490507121821094546375723719945315671501253551293922722166155063990789904659500257016100918554832531523095065683800497744694666923173134260412693773602634772440097261689550629620597215523769923507113253333949689362788964909960992999424205911763247083378988904304140486570497376343023241645944292189557890261590889815833525976284445177505083929504069442458024303548343614895739710478257125516471841326200065659947882543235194505301069211913975273106244303419082360579831294739956226449928865464986837382322041077957654561695009363987243427485122056879843248232437772714987350952293498825256128468429691687713321614406236675427659242978746974629292674088872880448563179090683914868335513299569442125404988694890878932911340094932390042262117438480246896339617077265017135898968834954312466520972872261363501401484067833621245163953739851936287139424658750806002872754407096321201669942410982675189535486556222325735151062106336601855931351499255873599465695871283228406683999061096880305041340974616885154647130936867358118816190242353472502461904127669868862628130264486557206205857414060903401660558640518240553566593711952747734987965585104433294212402210994370090443360336648204539973678447253613313409270721275398894161660421282581016389580352430209074218320643016234598700659289769141468405557404634365218198324688925517527235651822596761653068291451369913873757297331222112203068025860385699270503080095445883961532785355882250399324392047414791037568883301759202342114463627087814421481319683887559656167284894414335930466769365160103910496687460881120592859950896430120187017861305853844989415310572223501673123237451282138662162181260040121151380286645122125768017687210353108473541014068965169407547548078144185568381440151540793737535689681073766371160625236213834961762488755023129399624008856494021550563307948968211716215435441681673182375908124361462283273517859314210486652068338799506861459233754390221379263683141973287128019636844679400982816332926180946260762605402343357187604170736334189920850089830154702201365440493382864911406326408750669401877892838743258182000139172796932826944729870783510030998355073788626959142434940168528212864856263981906086206126936034953296045352467884054750733378360989556964135847240178372435558077377678398010363891929878458912080309931684363421335097946946905426331509392917981093253673074327515936461112012826446567829637343341155021299261299026750884797107900397801320859690447827251059906241447847835977483831339441227404998295089566747563906192403119845487452893546504082047518422130801189503083146128933613269169750201800408258502340208978374056354970468323940920325038340989828348247269490855569527485547088780385643160562750082596842667677027450314969895562973766250166311628737586538745961450608858721665516812157514653426056752610528774379072468543411962406857622814346902489976475983538721670959848248279372583719274420932260336110281468721823130563217564258398806275568939578914641580902514004342195581890355625520954418309040896474486618979795889244583912982727084045516189328298893185217087788917506016089455489380762464527886558320455131381285053633548078529172441296357579330319743312624768105667328564662290036516313144003683892358367900909432655520127387526747955108970205681682974743687851649750895749581350007325124071521826030653712796659632680977352301482045754113689680569061084740069089022445596637443338897155376967625878592803104581750304990167433641227921932490513165833170299848698802524968340693535716117650584209156593651779680798558924586463375898903179369939545810735414952732905006143756413946048816719301993650334054128690964690277514672185572694194233869032358714362533008110241578685937649964189057283020742946385546863639667742814131762545244782922005291291317967214402862783575256532178503229364791266254998862215028311180156822292677288059793710057679691943032282216889189450148993246343395062361987720925915334503025377874463101812886642173348422239614739882834481972369881072039498278811870411217750717395059012734711632085120514569331725694886829494358751399616027908048040384524050506283965259671301057404536512487976505180055788048441252791545832242447371981184707670995748476261147636867820608931478498752921781453714429636252736254048546618573225052875154699869355879480563759228163317083923626593325919907091551741103004822477755239707842095076668802739226796712463966906627365819462100324106649417870376362785191392087305505958557813184804922837028304792594563755877614084887880356842170180001268946784663188470770769101633980517338246368226808342713524597730483965731884831671860484187262591639252252796637125576154531772544182737940257128825272667430950204735891064898743031868496800237418097852728575696708316114565804728401617675729336011973201593971385999969031084128000217332483787671443494833729785120859361935444244048646898644629455918783824685362634193751427206023578512488470737656043488979620491395953362556637195813491081791863419244819115504334421802917384040965258156881895656056459237800335642270927551130885361080590943512101309737620727173379478773558554831452317283893000169481549577481472653310646730788075339144324268940349319345163668896672562275877662380717119747590173151001418998258944600453528741978976942864814590206522686090920601447303280533380052982658606519975052860214059377729784816516612591942970722511124317363678113295781454044123643723491905802822630885884185260239077846222076461268671677994987394352650456532938165949377785660753429920638317492923389724348493204743864812696699722577315547185297639943406557606349778155676063956825659483505629683670854867244878038362441414682618214057325464189453146973973702515210190711813463331645795194681384807093909496606064029452454241823393175076024647706494299949296429410837445930375869811136523894712782249847613202484639129298444281870891399180819265834708486848098949834908803175422006133928551552143550430567223292165095477724111100793555829697345144886041698707674950902920984933116195525984918145258066274748364064931572823249335185243337030884674298832920993666761783636325403810521694019380708220704188831543444050546288092326384908498359152410344841869992317439533480501739550906526065820803398939117345718498761888557328799268355304344901737115164441995119503325901990478705187446833196581504205514463340697555382448313851617058281849341381458785812952883224451494140655519976774002455683495496083758548454033638352758106822364830984174709084513941977026905142852536369084120199526544268151055675283421749608887039606906434721502464302697927761035842886693629439441100080870082103718710627878012442576225643651166525577309050959481465380295316848805650596335947762054477129508572470456172720643073622100848009984043712599625332553241436667057373089636358821512210857866567432291109300244451400664131116997876521951056442626119306873002909077769748002415251963034126871168879689238938469176572053439381121027291593426949855874042459848510791961876899388914595905240702744912554779928524889233531330071063214654907717154401745819151611363717885996809696837980145965665309859535665684265584128133501620601042300414428387605470461702460160093642634714051111152756738653241402262127897680942750772899262781701448818579275834031898661506781733866642165618747342883881674846551104709740751300216360609109763980631412787463631130993886445177510871538788178336348623261833346533403533749942833312977629800542866457958518166033505112463746654865724712594010112349926070550714147743742728882925400630618516617460804124160451346377046189061568346461926914822256960749069918230722747927926355526046679644393184787260366350372031304484171120568768554753506575310065724602130483695039573511945637505882874480757580346799876365461932120441504706975621812438398542003347938332894468255811921951880263823012263276533671767291789816721204768907288093533138501674057370896309967770869907074529217726659170449151603862537560438312418029647583097600802974912917090265021329436407627590610463876784966759771150620710996342199469750142782103456519567494813579898662010933094034221250570614637615825974174310518533503640411104208916419756998292755644955515311545149773326340494911685917095581779251654987084918506712370300926620338089319112509059422324572830799580274654834567662203569552653554170390133132173883759772165369592143786848055397524045030800377164902384663254578919253101630009001039242762529001549685407303960836883493538014073726980184108780510073654817255795209500797545892996646460601556838129478658203868440987973125151749272935352635806787945684972786959364310485525116708084992023023807824169496278149992035214319229763229921046361145983549798890239714354507752373249025799691283625504864840128699250756763035936963950379079098891787420729642516532827470717707074854957535589183129290036708094277019137438035521026932534736951753732411912003371014698165761755313535297512949029098852530413372533848452216915787301381730675883763537390688898851554705410988509242642168266782683012205398245028503657136889288534086333922474831326774221903228772793985434708775406952140289020858120788103212386068474990006295310444397890967047679043468395193883656968588578524285544911019307548844042721562392591075026298566417172424617522749747510761390549219853632734190094882509056846710595410132052448908349035118183312597424647781516775545515671814540067662361744928029077518708150603204920676553929321390167243386420124686244673596938084065628227689831309686884542931613791712758061057656872031767125807299464222486429972193656198312825761883992254257708668524688331753727585489735011766637709285293520407021474143751475716789872782498158761202950813770385552578860862531047559909774252461986289717606707108614220095567315069501161078138018402117512365433496133329635479310465093458972506884095788818901455618868855204287237016677502238670937473293952684514645737619871196968421483108548384552112192226486867159507902743808963663017976955860106794215743117319810432958151738078894643760354938869542772234240463876616477895092531851713297940948891855129586836380121636268341008357657414905333478023825109415859816828239708311818659922320497421500807664564355144378989244657543217295738996445225160255502710485553648832452143006646620031819058119701615372996131482927935531094553454993611236339629767360210806396957072877453071465189696713649626677891497802660833754009189947452261740188636494283081558046931865207032210510821641135342903412137771986891986176027313421467262296083514503510758344941731955767283098842327300853456647405474202254321409696587240789224011075029059388114702591128922453521399861889246217277922303029110968190707547951320536901648553609823833062674812047020072870644719708262510516347353131639420847638425285316453334742412281787605668924146416566337006897670427032611475770867029987436836119637188313043504723495388527931420965871174532342359056524820137469691540973882971626241238863930340620453338839867591840104829744803693358602145607486575285186260706917341985163299881894087175326756688310619848346785716639060409341011698910439795722202299838659036040148435980295371304740113921540434422572166189132240026250776879456350913356861436904206214675919995628177304874913040030216400615051282923626873357718881152901625321450293426922053164739430628201661114505389729640703809506998868799772982565298292434788974583635612783347801059828510156916105797924169348564773022388484041169933294037506409286213637355897572825968615431162136016437479994668308322534561811642486380343984476514209070149573817020623172832423053674435349142805064357156714725008509377462524275231390358716349974209963507586214361145321517085103083821199971843727223829134636956107519251800289595819412268316691248739243198177234943946907555384844358476685259791944867916371465003686490943042054269483556027567152701156463633570110509213483113573817443195843029945310018255880121969722761336842534827896017846521846061533381592791366805741210209244590505001086231766761510370214660348434848392935396927088522166518197852511281082411256827102265893530408391710297096486806357055285151917339587054274952697606275227830650273018421057405574741741692986971862015582829558525740110035491339897355877736449514357210995392684621357002110225801482154868423612010145109744666434898049187839875800954068975411183775529950579558981169916486512506500624713376999929719433693967760122819210900773575647801937043809006744090950072038297831362132243454416619694907722520692114384100950062326964040631540455813350167148114059152108133222470871304924188474701415567109764321004218966899379442146873970231466500798542831805402787939707551306088485850904721036740200132404448378198021798138862012811988779511178638499293736651081901221052712155047402404057814020272394691599331857647651511195125770352155513143135149919343463864828942913898312561268475813757532018884895632755681278516135314788160196707019575741384543472417582112029380626594410075665004827600695766438661577148892887066443975021204564537934261278884158557295693544702973886307713922628312794910198338147594430567800614141969103213541091680339099821386750813621274324655541385430666688728837982878439054028664659596139564797347055186342838730527666052830667650646348535818546502268758679230504907752537580099520108351609402797248878170260297275543576949591565649486040068842429998866479946771216252904789963492688896425015564907901408945718643334212035508131073136051713040400785445568426062572908332558112343381258037303986995293786702962649725617557165957200095838033454583427571089728047579689309339101566755353069885155744968535788393300857701491509523390686721196912706308697378469238658423402344892711770455721083803151874688382033695909262621864146418637001178580820194717238967022948460903688591416257078161816801285961522113406241579965242503874610525180210795806940245603030892507718058796740097063322872206897178459884149858133372334500838089042544337337171511061250101961967663793261812726080543516319648790076479435331062705329806664294909662250235278436258350967083540032936322704106347126695545895394535693015027856169980650026062001277713723936632230356023362915214786910983761291236245357481561284382301295789141453466559944706670343156124641362445449206409166510999517809515024673793206379345165542794789580271206042313213082394992387088389678070754530540067939466261504773255002198241623133162391547600957410318205648985937689381238634817685106820639879625760344732938723038087799530238450507442451351209196055472155072040297494754541490404421740045749672326796466397257584658444023130266162811526102090898772327345438372685936113745270549212512731862274488537533841244260985359137566935749138152277438582346563938530431993867360177350254503213855032434708686383875293997299213728796644616038800378288977922335513672415060325471464948475169941524027491674143728111244984960187044183902120683519298113832537101326006172286392501208326483673247164432814830688125862547140514552886962000940075832432283394355095076798270526687658256137473874423870446802921249135882787611154204830960905846620260590424484663410923051711435511602712029118602355295710387143492302074774317579077663062771430779015233181224283239463289977250151042524259039955598795802434941094016709208732730296677047483124225669310953399240463846160723560639364504055792225814752294565916424310245099832834556784727206976395172277524467397746485922128996651638974272905983756521809444070463203115844900104536100702270402194981441554462526666171562293277583042143452308504219635213925693240422778248365185372313825425596522852912217995077505172461828550961408332997790870862997485573026872797141266932153723903344314865974137211610014087352568528853268547611696829111030102323033256162526469408099016735796579622288598902847960924218932596333145004992675191751775654355258735208001463407221296762778731836359337519410045072545863218264450996875201432175188771414325500585583615796288634195517075818035564240899631567770510862241238633406684254978860580719670328410207947452009928267429058705514037313761033325287055696913104658218842312575707153098362478351590433943725864422897107759518797962270281894044118727898585742327310313509068969155367566561061462502017123533628787601757880218356144652702460801372813418617772848085996348232772691117815303856285945282215836742606622494274508022182310592259463172235196238381469482286101591459582512106760975757651035411058826993106702326656370287681962330485817657182828306715351687789061221802531686021792190524993175777868019019280125158493607385825151768096482634313886594995005412541767485975007909941518490438488858458118460902191504006152538553208862752082669557658080525933032587821574541385333163219091256596721527213358755957570804650405071385044463582546684927905580377104415393071317397738434743639579138121577592438514148106628937878395457540699332015566694435806248122058862821895147774017463695650566841510888533884336075576982275783115441070447912872850865694254788361696244463023099354509048168561701976717257823725855864183007072432453877621464498804499673929645307937584680223711422401667135555702957875269874736787954756191145508228752355379002858092986508577220924920987539435491134078051359517024494104578094982742128077684457838962001940444826422386910460952117640744104329349124803791640481229908256127725576245725352610762299782492540938385424239228961598655536301544559905075388544192989828338067695765353631371729947551553037546463185934721010036359919940657223204353768893793869285228164333113126495567388012267462734947007661716556510430924166977750568560556411912470525364432464103353526471481400054685953195889884057902920619895710315516932981088468127789168832636363458722339776836067512220482608914405144515001423873784409945723736066303664820942435770466873169028748333110795582995924990262669091310938703842266805041656489962447555814250737306760381710910667200889343307124096415703965154512246855823239861984567730000402811368868684180840016710407008099968117877248322357556027150996205510307872140471769228004784076952057368965170978348656929899510262488099383295577666193647990216872789478915025375888453909776539416738626248176128290321005482464559325806858125375964014913541584269794392461273660191292593656351324535106272973032540035166408989514726667821098864265666556671906124079902540438624334952110615144301439354888743460298677395605775813416086304359208072321128117569347715903782277592599934597447651006642199891426580924579634311831522236044997124385327183097215229696399853720829392543755166450500212233685012302044005277209135463959352011342836767166262405012685172422559266903206447159991183031624472556051658079846462838144970635914207404685907927821177527257182418823787312097491057040887075488246054932032474226205869769406785830998640912532086541016928816960270935020685201085661159210225706197186074096125091537498459341213011085983532222480445093600957168127291593988340320720589048740540767965309182844500310118406300199192922364189505505610463620621116287528745242610699444104922424322017249083048732202563096605511049053767336269555980692025634962997496421690908065196250069081796180496080025001011897326808066618649764409194398551241268329677815616279380262591503849756656602173381321993972739971633795851448300625770642667378124995016352565160810089323623334375922057846796721087562749902585389690077168237240328578549243184542419975371612135382627402826707671793688147318383718272851323687222636499783394622547663299700062607453082520336860361202602693888782239323629247368590534162593771184367741865758813335914939561574367583587389765061006934749942606119410865438954047893543036547332748639567326559784082403427543159855813430282991778926060532979543821366706747163574089556803549961581533647203742704461887594685719621167561536932915101168218506789017861715439717018816943062930026260449805617662559456729312926654543147147283147667233671939684459839434170766442032967097053315304960606838477350035340540900074871330106991178647025848536126223489739420695978344491155017890283324863871220236980377369740467622281055143684380782064714645619245078996272851485220897864124956266772544341368606666919323075636959316838424352096515999823664742429483331882613662118334113637215316597300327276889355969159568267044506149056761757949041479122289749236044840092887588841862008551446149166399022580393218263159174508613249091392597943318791137852718403861669052745383161230722420278345884977892632565369161360305755390060727644555319655038801890491238255330871526491447670619300126602009208032865005965179834893082429641414208677507601045105245693905466717023103122631258088249935298684913131836328137798394100874999270058755398332071530634445360945478509993289591924543614044114660777076181902000181760519950398683462834139643195708318871409480523322046613071007216480341933157916162357128059097318286667901941611369952678653837358254918261668991553339224403397500256144889113513524511862695987519341349313357928878861913880896391876350994774819778522518310123879879262416527800753931898567821747259892484171435514393158093304526901222242388647914859906132954751959562881144321395822804377307643248472299525041830682873725051986223754457146482267810996629480999708732038470693100762919079019856069605815061845485401270048727800091376640443520419675538472059885642535900387495626821641717583118110372844369497511819791974302061760062015360933129883696096751318238661327307463581803352376961577227774956671997816736627687471747921496430976143242933847401697613313807740981267981572945445588384383567669442052830956298989773047217827737377467727973452484363824192022175893383332405568324587362418473509947689159613423459265303932001730676015353099527095802486221037743282219501589529812610068364182388892844643041851558235198848145388662412472923844167713918104226110690282887885154664265358805701115533731969481139530335274627416301808728429879110918915553431080498206088360187298465719765437685970162791609133555294186063514907977940736740902811231418015945435942105064965340703963888527641214008946532971937999240109705435129365572343884144386970446468472802161136533350514045786220422557217873322289072517531330546901804798719892748568141384836685821559005523554539332182714304375133350176215409559517273946497235711268518903095470706073603731469047866397892687822591831099868346737800485859066654088337476535472353468344674202084129797683105757112687086093259989752655645272818719744328065109776962881925730538589266121591336679503072481858831226426166511013586392379631600804710242524962708827716944856110230338560038169009777837181909088679463108986755269641099595380494481541875996930648203715605888483026253298562818708335037387422562053928223650083536605917085239962374048253244118063258527123795956574566686042298248860291737513916790513167090987304380328076087956500743672900594128584054260480679057950252984305910535557800098464455002824819003261056429965318221988475696391955549043804057902329213300176109878006992737709141192642734383073539962058927821210888998666434443617669263036183889832898529578039611378231959761364593013284013790552471825856909367047051061033746315079773691943379499485849892121512578455452055353031266576512257264128480337257752702232725520199566345203235505581828538594562325308208775916678138412604194047718233795663810568244175827106332206606088218978486168909198350452125390988867594219211839808374711688462093131652752442554914625465743710768541777778115244466792045394303296008361418830779364841712937348369162877383057715561410715772624548909038784061567145231623808194389936046174815785577953052951564470974504510913909921371665520114867049842911400884288935188685356454783987734723475934326035358711455070971632915614230190341329713006038905936912602211862568433131042639265004309065312059344211237930236788085591740093847794542441906961511059130318835808910037525113907212045121019602955114011672472065293500325722166486058829639453152213777102439269750769433617335911945389427213494032331011216120104665630670010006692313738046013054491103286888894578116777714036168478506321110128305077826289416942699487060423706052618671383522499541824308654234926414608980673067887653601211430974480737750411926355278223809410458563358109241803884095785569830617801343044982176643715952181037561872766909408334022427304420555826929242966572607093035639041030551088014106071000131173342779622638599098995504671442722679315247035946746025058641272451490837764953826819755823677606739736395627196370238720159131487017075480357377099939135308696361440427454125052700810043531074302198332390291624854404754630625969359836680049553651775879663877608263542879529162934253171530298853630746001495376011997802276303118030355150784945054580325470493871834454179670880401233270334267896569708118535747295390596522211017351550555847307100666661954664612249511968521633878318749893769583425335068620234477168506274078410332165618279476465663353045353375206403909257085926489926369601750668409267229282223284185661553463503740547644298491444188667064880349820101921699104379579522020324708291817117612524470277802652310099804432135574184745400294174558144387162565436197480984327425437081127998283992583179494528021366086214541870354071159347972793764991168895827027520368634728459512051150108921786878923138832757690381534681406620328166768159716138289632577146277211248833515444074117357141699324481821614904359653072011150640732448165550162561198912462725371484534038628681012725893855687535623768082298930545803163549756270168628468440988988471819260456188634853101553194291317178873758461627014628159950968924847394200904664291937763136104852820241831017828628015317921780373601432984156120504292321463790622143839990488522115056169238986938230446426763948076218917153002566240250569563723980760651779599554069038261114269344230665086848155042544050767583760274373522647363489628879601873342756294008348235431597515807933901354022043415891419650325114838274347064813172072854433351038771479257639537756567868301656154781604836516086888171570312197231451713130622251266306680447179168231906732112055534460264175761666566343538820439030447674637369302326898220849638665143938779236318834377530630616905590889586302953923002216909609675412215169779211785174444883291798121727056545839145709080993147822873125834646952602211642012261200866252434998262337104431925279573199702304222577374228918523497197142189762484648854974296451366484392699170889217909309448505436476417785674145459471795182745629438423996333083141633165254135961529992183776199885683433895241744654990413252358202625397834176352946669099425130821100480898252323246464218695516941317816686436632474918818343939062740387975501947337665247591688478692785902737058864899134513941725864526231889033989431486365264417082477093190879511800916697225130935409083254539838364932405631328667724299756868280724238538664485726381876522897693234208844605140529103912278233732445113172334640839085278773656712946646714867652643910639402111827132479066004705719057582769914340634459414829726100626304682792187282384839710849384996039892229446960932897478431979204371119227055547243097999513796240274213058330576809066431981873183096917992672145376535308220844956290281161909180398463251161142266226411346318940827721012908781186457017512459250717908720727622440553299382883415871522771699984397461047117622376028699279832013301030497733485717754727802039745296760494658678772085613296871215704039513780978898675758298867997346920233286399666157518365974674975932284358981485764864744718778400446662724425063164953901251414845353029883609455272102642779493271226901081694551732797683789266474608838556749204388425745634683901719451465705956127048843983996490179267369978366714036288141496272076003821150897936259413414361599703990679703385133891942127998041843920134711766164699191630169904848396391399320415817315821195828301242947754935823169002934466125898457971985595138050451420955045585487058547649137225895771002428981254934486484609101565780160056905770842065782148309051653322240252292051827972664970683769133104268135547479595774482961485397284021624222760049024159934021660529748122257899590145901340001248581671582363141876715562816065907376033330365275212047545465599034662025809116129544042901428119406245524522924825084686857811323173611789969116483883834628701585348446223334481860715042894766927652616536391574894385542961063869601289116753139693942878672123319125079713278087151057993512613967708957638183588533060042418840762705291225326174331362300522762418057071896970129512460388639019315951854693254516831457680376511753588982237249148356192479189382736286699827129726307414057034335629068969737075804205205814606272403218772405904917026155766482442187583755403916275704313299400654834568873844639875909055594726800942775544118394624371557608219185341970985109963887266739929602885177199230547491128167583847634119488552340043808168207375580944989745379770431698988228294380915317783415425389653230558598711861290218331052738064229298722164410546329679332034073636988536711132589446679995023322302183282525942871525470693891690312239400880160783290454409801507527224518158259264870433800668471819679438218037648985865014117846858021541810317287828905564860081471127804257811032148337839333086547611300025048433383421416348360131567556496465288373642628870868631109249349190223246590111810253807144601208099752833837016915777769710099945602377840959546975812436088286916025992728734662674568920006041737654126891103396410668739495496341247684495598856368401322771234538672733848756194807065326748364503104900178247505435852845393476623629021865087907137537908026220157195234026307227146469819377221053098050582765142469419434549970769183254966281091581085707035614976062564478098656542107669619448546870352705978566227462648562778079962892761459636860481782111385817161414260216645549036118559334010106042563059597496951759561911266574461988449133364649509399397610144900694897436039240506085830382768299604933442051505142870982476633065216048363233102406542774880711085664517531836228080731732369529944727402163796565724772550517435683107004454342933448237513020323414601091239101149950186951044949948403410143196916548949207504156767917689980286730987826001602363515376704253270843174416543886302115054918535899183046065262979059897775317102590952235564412508378436558788604047994722980837741890661390341169933040281429223775528514475338613164889947447363619445013615245423879043285366625923718240759497536310422852905998298460497244771285276838914792399106662728885734424995498465513553984395863086385317618319841373023574613192238563479389263708418571310601892268965094123273294472880700326401873861290112753198888878326880923310422162559086861111315324012312009295106872689502107251372315699254299736865794596219996091979385569948859851805000081704753430695158108567175431727325407562780721415441825413847743955697739179925293811624766243803733071796678083616263667884646830498928291913124425905394982932211863820173920518040375478840276430981988369089061975796325199693953514158894007607693646477395438921431077643225456054712807539059501032099098526490831328989087686910971509446428146851922390373048574035724345631393800559093699068864095151782046294757282235143135440293675521209766430608931513493886911433579893030538618480925525351988396695292613012645606123946089271011610899461644546134639362546418042032665841367674344966000043928044533419331140629775526367158554087407621924373146876143392539396442610559322601896151734484296539151487063653081837897846328284086130719257792308451253732097532415826872102158093896488041684359368677438614365914314985397970333738959800415818600936444501740291192059225300072678146565900071277442226172544608570208454060986215773784198119196074479635859760281239185296812917343268920358043109382646728913960552601851243324433534762775123756015770315174709764501603082238457442356914504055569584969673135878340848011157580894230408281683306201969465605633991506639947136197032700897960799940124858509977974380070692104937870425780547408517212778394740499715900279101542634808294798427798251730660501264627727480119617701897842705678388889758494576817940417156538274531028958186678325832630784492403251663997107781662519269960501383718476773854295615396457973491158320606485499724390060123495711184578503457787693477839047216421107627042352742891589690906021962464907633911354255601348190332456210691490921682286304359090511917567957552082159560035000433619972939623651369451426470303554050712410111962379134661318497561058293323685764704000126335782964477115226415207808218937905465971271808590566965466457336888838473259398470060965073970529450568961104008193524103962960672819414984480695315847429539660789795598098289586901824096602781568583620377455992666475624933056293039792364618386276001472999549870069296374817872643830714654349652041878047395022811940744392637200653744898648179665872164179379211179580294597292648341305385652631499270893588062186420541527855162970025229577890412204244807791489383645496052505181656107064779664286129985395601148360429337436514283651471806176653016920166722474445083176574871411065818078200579962779201443495386170216149756210771637969679980629032340569705509638516370775897109681408856446354582311517765331110085021130658725333402339289057536945090688251450390659278369391337532216728445510727620534689795936560466383738154346136154348750899836223070702519159926042772374678275775564985431871566619348190918145170087349708322720359081664812004647211483218167758923490198993385687382477659445067088022023693999814710448587806446605053764457690945263494711417848709612000281044883540578063735972507095605638020784201929471706127306994804173826722809405189189304455114573654692887860704547576899896868535568163619758718133943105959674644730313213524041267775544573575800179535670158550551477060508415144416317202007052531181388428181942590319321902106931194480550229205801880801673322533147143399811553954678098502632072479460509432181144250714456990411832171016598594490297853333109377747105520138702532640389223415146628362138311605745654138992642737898077819517154820264941152858593291617058725541034828064265685768127264695146072891547568141632314848504068977536808845515100786091347542916270679672241761078988943016593286802892606969383268484699846342836769065513216888802842124130091307276603766978999174295309953867485717091144118932763725461207731665680573008593340556394130368205653876138526626082141533739639080909695515246709294033190491428999830335848351095754241469044625008203224986109248485841675849898627683901463066883812525704421909079386826245932102349901419618624427526208420644978096843856945218683271412900938816760294686021714763014459067490092720415782168943928823613908494055141375610002349613527711711885021111993968199986043188689899769704712961027669901035534102219602479912067720185007597893609831828829652981942579619943710612240053636436295993419459573048414660413260153791892948152264482844092763019100954162341065085377836403924828614876165001007953792064808224444322639241478975066100174747867182771391488485720639319677625200726749688679442819706970773996041712322550897936618610630216297445592342580962067773389817544895728551063337394650058398282808280800231626555588949589534350617336999439954031597292308391422629179756867561995952222368017064841574384594270908474179840805544823947267344435239620545814392330035780572981059091179785717323911181878795754206544271924913573456511973301349342452827099339734926944159335798297133840536254654176754479963109619274488514784158485205704271070043090367056391827904805190418904016384986462739906167511128592661620121158600021162574882295005568746212167256922010361633870230187888424508649072664985591520125834609367153576904558145026060844062270764962835944012901743930515300242520451353349923287814122027216330160843407538740243554165470497178306584444883782631785134008838463132548221208899144154541886133557876931314809483644244771487204738455193323420864799903200381651478819864246665099836898826166400457549860412654902843363574303815186258906748336940782025454286303568412325126600782214363260651390517853506893193602054319239867735500052906985742811861314059737322025987202748581481512555196412115428171246843123410666574095337356343139747808630311539630738841724476529414878726503943870254079542515492613436185139578823487994840979426042453185563405086637892290522491813565757841976124387466374628200281057644506891028420620097256420558380515091877364757487870949601864039814643948760199639776066953357273978393515417299572625998232556945938138757325132830686773009559146426506712276384270658525637943045964343789478361075548652015974089816634013707493576895280427170076019484127482365889006364156748764994362926541004296944277381879647865931652696270319630802420945624662569718099822059380181117128424619900201233756130635684591506555110825797232039503170860868741450014203139946126117810612227873442357982420612435097292041258224469971651005206566644331202276751118903580357235996343967412967721978858054326352115095037547057539461925061532302327912644960079171250898048092374782616691150257535510674120098958154394360386039097089898224854023940165152138388846718925793066399438548119336846937883172698574942073716875636788292895746463910014475062184710860056044964730065324406474519821562371030552779007773826347613308271072135464990085668324433621406739344114468293686444285436638218238181938497197079134428689003263012584588921210809632862346082232863087740583847662306915574319454715960279618336884729982014499272338309713942063153072933363640961525967282397188549925073152250706373067886816450060484410543902707301426140109811028603849262235172163382535678559608311818265804652472940968621666093887782262115358203808177629917536948105678039945141671813699951062143949880867567814147612599985752350434585586754824915242774887245709767992865566172336370804822659555198223230407270801152854301736329453506215743094803493753181845198258800679829198768917052209664458419967043041305161668919552973703058172089406470243172345677274787799092554068289987774357000635823427728327003421522153993872756042510802418734667142123012617745519770929394329016504910274403631952893909393096816774778979929058345901030233937019645144871557988236765446747020247015621561270551799674799170992580323774916500297659078227555932309462551890735028630007256287823000696230565177111011411611604297476535353345262682669169395471144768332238714323836958614064333583840010282345945553198400009718597549410451023289285325647842551691711600365765840745283774858296100349062335619683139826394284281983640285540265251994394987350228607179319090408538666545116764804085814398798940327985899146498074235314909649563208062385935351860699031496800163280404487667586185628734504463840876394734680296389617567451842499489929319709012724652768273620677646769331468936936284173122490924842558651825344264243005799333576302453251247845032240852596267469907730006499519484778154042853458332325496834586741970571012458995769486691225526082887518797221166647591812385707223004226650335256812930144803459271756304667671083549041670256162872931852335308563599415009004063284832841957782685992492922972458765499697624628631723430785802857626014069630932011313379531908860992412294678797704856736960992300060738762348121538603306208879956839853654065583594545954869241834680819323160797332017109164768970170967068717497170048068252313003769121046529899825231683897849341756284362889285071941958759121052000049381998777392099660794127045759003237103411958419806804027846389692201981263690671672405793353234422338703643322175885648912780067535700458994966826006537982359048504546233387564407814666317888259968920193349089628576360720675676820359895328378932613207212960876645398986004798306096634803847085815039411554079238073813909599448788475009697270835866092543685777408813228671822287248703577160892304158608665396852561209321852940734268324512084760686872173964106116948183426961373501600341953657031987304843778079522594712158793261925789034842800536502560654344055120371911252392243573492471323373425991760154422587987726431780412501136000260776291463680144882162987777586347125220034348519013219985536610871448099700452993960295184054957524951354511378851733426729140109037182664482378638901424253871552341461537618230542447580529325758851528861692400388221869787103738201937869156000182189396354234074726834603066106805459991921726714421048487301980771524231327712105424075308234415400459194234284557766286807212839500083991709628590942713822818482100252334975061735058999990838838589629991324342481995075496533629958840803977387756797605237469400978168053766752681143616160623304059915235547241325168979585193231748540567340941873329979960773152591496925864222606183182863616889297013495785938196163739299624701618057779927250370089541288717418583968267929874306387008846807507871728594008373485498591855586756812915333809799888319884033671744522174277486454495829909032538768527026449784899918606534460820176563822715153183500999402303328624093027041827480894277819927829240193249607287720859804840374514642621237998764220821914012146684830756091293674113151736135948445681283231529267943993693008670385375529438229089003424065129912748773668371551589704123256073727608177649543104960308542870429440944195540723388452131855523843423864424137376935988999853624192022918989090859818014570033329367062603444090970400914512511384456985027759693770164460114414316085642603220555605266348650468281151457588246310544777676942444728606626912285979379340067519250315702393818793467991556036149117949721598278792441731415024954363032675538635177446347313947003259357287552523207586789244586823147372721945017374852199781097450644354774920958462535305825781571968419186521073373534228725741788913597896324402876849798925453971471226656270694693212331932500346829463575242445377451051764674381718379541938853909761623421851278052143849965501640294410912138526760141715365240752164875067605408223974627953006711030320670315660733959385084004316907590126293913476905854563752694451387426173462785253148677305269662831593501229469196840402483427976364998373382590984191933334813386931432589986281546324915555586307563095823460730775460309394479743080059652047195997286739194278867062772924368095692147505570265062296374561729030709414073741170739594730751475372349541755436592333586809598610968808539945142349735123868381736728016072216173431821982663783663868412012016515559240352034178956246458323144931284144765651352698700652579404123756972796240599269783418529165398832143635551639011194333962562126692958779931838665560827039648259522750818451896770947148881587372513831709693564634803655271867064684070758907952330225713966929635112807605810887704150900064009858093124489031431526406207140575187726566069917562777210154592568908112992135209945910146652425265835738396270762520907801156457349710932251315199566486066834413953604558118637315573025001410128028860880037143326254151697882766319147961216070865727085565615540113612708272944612324303476163478387756552530232047259687674713032819062901432740449675507856548566684448071375187955557382110943895369353602225429456404251788045675960458126709525230275592096963467755281764694576960692587578084178803658843366669213576023682154896025684618844562946387059842461444543046551175254363253820304162571907739572115801950955014411668068556869106572946616989608191252553254919721012986432867515257204885476175673773052382043216686509531222068319917088499553246876529492155420746392182826236786348860202871245274974476631593823170079630167292748311944290909656805460558146949735985425418009388396176261899077163228614237204822774092510605332204865087874548788468693885485227936034029225748603052718787139892415254717406826445268146138736290169388694686415541613361285942844759263843938639778229310395284243220781169872705946360069826536650677449336701565423498143329795924954758753515651206399533171635055562042456467637753391539880710018543313508985070655378763881695417389235535815129780457557743816310283986141801138897636324797140056787542588439243129611742615227895585657206314884761876416894554536368901640148744864336187713092049886632552889508972331676707158613831089008613714660037412796504690685907585629589652036820283158062023242961596942098127059408791445120242244564775647949175492703939344196560401754620516806603650869973939235701766117671544174800437812161687020246504813590575396386232830861689305743110920415377711438363407057032328837045472905519265646113900504355214061285371500993498559865419042144011771842153604825430852502304046432074215443947612278253493843617712296391228457455221097336368958193612094011250039421629867701032581934510645401302975742267363226583559051074157317892882553182474231984604911365703684121519315081269052372687204778930330352156387735283146684936464788539144232945312439794776957774275432555853367405706088537464964562755511717892204124206298976497737239108883169955030092490357636892420127935517495192783846275437244582563733643285465887667858803293150380174286597796885726921754551618851019091891570945858432213856637422150049468923652364623301890010452215278599254501758693225590107404012950526775159638180468959308871672501062793415028446356694356759529606247213557401817789517092966428781429439368216813279239497371740357580298009542435200861447765490554255934926307497372037556752443816752500772768323920491648584115829985705112862451690532648433106134379652216273765487164050958869966284904265451798449241602874385369900857601902760342702234564322442154533408935683816030721542095837883106051438251516482129468976627326733341639128844294873304976529832566608688289638096842222179367183796011896728373251764569963705636135587077071400657302621511819172790077849351403385484975515496496034035107456163551741869807976211211369515561753219170054551606284268286621099052192199098407427651481976614465330984048319364581809416653310597213151320683009018537623161077629513665111520319495419776364002408267681169235442731130509825698999215736912221485253970679381198324666559340414891500008185948699814477197043333886591821397466486508904382402638837569455760430107874352724277500806220663034415785217870608014215318277002185303966879226118439875555931887709590515150936321568471211863781508447931062287484572913723493535925570318907340714040770494741235831838026743468738036578561105013332888438245691947591287460102129001972032625976369073790397380740067125971647980835861649602594852463753533630861337454783150828653797163533801879826154165548796069661619341404924799241251334917325294369679217154059133315536595187798824806917206404423584963434366798226998184822329906282603113480071362181387804829798999737352671929503057574565644091591481049621877214235698627641918832438951428548214035451376042918636870066269580497248543363828825998572056090344169326263323799423808180437140051979084147678835781640568473092366563837610378290562544029883398759641365412155779722699921486389066501450018745209854552954746200890214742220437253780698688115808264312461547365330869467567367375603053776397656001703134356374278888617887944034647468293535793536385568899275875959463105331217556020789993697492300670207957991867774748346841178621086037147540582733035472491682825128776506837766362227842382069077269243656407551767964506273199766796512640778684388594733791301473700764828093631902474927161479595054651745063853411449880781967587976267273380786519362190941587154829279108248619908376854058017115322130720355732614219361882565973134288675156358702556926458439394282715898644915819575570926431068885655635771501323401131683606972579343575364550592043594167893644846138595477831006368039388487673789095308357109577230321472901232357353207580395301818956779540468705737441430736243585296877671089710738995609606804586508083043483386908023818165694073702468341628179714633952546619061652884614037577944280790251700944640886111852156405726475172748236493857034913774979996092918550301799633965309796094958576937955316038945476065527786740821318414163541011724453876326392216113666906263148813031534067940568301576538921309120150901173694454694851410576625694633031187073140454506234752211793459782678007214269119410251186639552869283180392025549819977828017877728551271814809082545548847352186780825465837819598766892819701264691568265742321636450628501080822472970397040697582228810075200939407155664627692473438880199748865260663830889918571231990573395201551944019198056002218385721923795097373372591864346928738782181567526265403035225649428720312303452652986040969407838242485689959784973502623793439666149331428276537048005661135185110892884170828760888569126009922098675938200646136345599856899382793275121073102515150621652379556524811263903232682606690461653132435533405100750172116136130487449281410805819995396595227983076436433753516502087912364191512176944098875957104438505128470528341178460484294056623425085375859772620575983250056772688246310853022791157365365589369299043552848663470298850223580866807923054261439340561652440235570938379879321064461329945528874645339747549783098189483193503934187841857464975266874769287851679891656876531922715537947791607435490363241999900422014728826536126791657934071971912497079251155452214091327301460524035535295994320828072498162912479025604567021517623118953823704648389483659319469903789760708533047092973201784913690908527068287508272902954869732128149831561899047339627310672545674203191800541419380056168410807228751375626370468180379168662734574888274854241623586938988834806891545140443281411271551600386917175955642782428117311953676227320185177777436573384166625083489631096229707385706877615167592732904177689676431130562963207370455785214477999984607638882236914770979639940015343450393594255380519091825003451690452330737112953352636863189982685057687102839621395602744846503451886644511120672778274654932029592214685805830092471820110889617167091715278796330429477772532251639366736848028809624081007495109435138245653211504401905754174432967300141924303454191241827533163922953731255992889934162897645132924128495868030545660589271838275934282191139557807507165355985895028460096575881665176198077448487694324899918386795726526008828786259956110964358877717948532471707737956066133743135448558057122964350547329380547994051854727190625950396672944618737652329184822897846475082443404271254114255469570981387758948091987774147530034883392004327576344204891681425818741323748132273318986138721178830862902933437068640187126543030985772501971533735830721284112151108524859410591592641356085314957966016952406531516082881134218779957159781034709450424100689541346883487964124244675598293797436143557005155585594616365905641938150161567969349190845090048538629775862399350451767991289378875789638278885691489251307739362891533904099963237241910556694033894189845414417245713008863380016843350612903449246741937208310370408542853519271174503059174258147125170309597546995657745408238940168690718274431780832080323238017457548746083325144388259189891153199141471325693608142862976597121513965444355371562304375311072261780630234694816472976381886938922408561058819001473207243000408748158514591671108863773400790824644204282385149416955135495831724166019679207539621144973683645703877363146417703674861135162697300873489447643445799022497577581060620602134814937259685629696956643792135748845923798290832524596260326532057954476706256006551245938690458660754863704424160954911571932480070554857181178461638707482177964086272644234576365729125627309008747540979091895516210608256516021055752421071034627553209258716211533101018484534714824985196884990495311061042783628330017720936561409524325595104042433541324624937730772147321102887565322366468249313440439616986652485363002159500173057362123557964754877439922046080253480718461817282535454235046384237592239662890304698979924235518572407260607334176173940539311261535143976178214955452714385354221523542084522248209852086609620731678883401215203189982354239715339746109784081011998073841328686193901604140071421420241374373585170510383791019170203398715659086783530578435198740014885812656156370893346253765139602257491458706037140094383841257803701441268181469971210974014883001972552943293218540598590835423826609299164198566158634005802304900045435745947714514812379841674579167893504794501774618653992369998764259599459926120987280927490798306393071022479684872524854968020438277809708480491647677491624857484914456078533133934594593882396060081108750058463022113486705106599745542972635885460200588835479497077168979348067907258739005854195068129373171661778544349165761208133608593989531994960182506764770954546670552771293021993040070840428945383492182535776201974584333588931220464699033341804898078687133404340699418161938621870060396973260257813415122186127466578962077332528264185130214688140705607793051101948270028943475190755272560011778219661843430529881269473781023931535851555154305969418698011585767587615700291047419616083312542835426067232394158024225816242614372900914632580018901008232294167407961071417755349666071420740286368752717607718962939735767593470762713987686266069784247323640410235977612642026803168550126435575062184454875337591609991074834097377608547619117293095662146804322899258369470016540175829623435512905373490724398919129261639039367138343558759660710824375838454278404416740675960091181450362276286857128740860898236723149378903008388895460591137628729455769987187706517125093176338606975398453761404816153065256207490778732654717971408297402619033835602650588948238123704980930759966131096968244076058911169007998048680031630218855587711411081924558950295142409591471891858151722138266078666573040247615009882182838880047217395462718608950189520210516189155771616103401451879886007895002398934873762589718766788679552148556774484180189745965180230485092922408485344746762662152301670958968767865466297610052921417802032390164086365527026918107502871443862639442766803197797043610598910195796581416418886403589248340318761137685993504789302920125012457599960213566968862347076288282745034382274611192161857861791017234204363352529607909370274722428760743996415993925287170647152842433700989225804387644659670363261717723745532916907624630801811107340108394178471217537389094208251708192212736190122775494870381584871184015768046553893867074554285310016307413025168248019476129692113705901304607652590794145267114731350548457072729127615384394836791151870989811089953558557100018881252694042195364338643235836568380482175888955384941250507229923047124334493911683845138187201763496595356608109532182447428022491541110745403002850866411607087487225618131481478083712162969836962106013248390784621966097727034702105682294589597438640012744778209702825829971842580781929243980865642727961363975670179307345781691825366673363996743857709404189470709274981313014056948096555630659930894253705111566684263438185950997844330857756934880865501602822805368752868166861296122402092780562001611142134886940731854305318479686090183709912592826526779328368361891593429008415908050606949211223610025999442041893521793649924850444852347286390151925390226810896066561783860932416113738082756661679880336119417065308708158256572421701103745004803868578206261424303510318754611803995510044451307116251359524813756730072976649243886218696381231541099705321544371214250584197729249621702988369982227324601800688082446978756883016804746261966715678333614638314060662503780166788337865859818552271483108910154712915765483262878402151868341708159303155747774376705864535819968125312419570779404131279398056515178424422311055044291912677103624077411798809323743980327183729107927345856889743302356339707858028606428132705842692409463260622288947290826732900265151432428199770974033095897547940857950991283285688613159335486764550057044956278822922376043333383863886893695529246404234940856328272443222068190581325484033705623038896002616737203191878295151997560317861107531846879718068503077855307445243613902931080595782136973565702757446438130423372702330474724561551711952470790562755652421887718398896236646861441220419992529823790250818619543745482202431931534994027047971171121022697245270418432674616500264762989808620570774638665916009781987699969901489200396306976497252162918137158512032165024321343627038412930988534970234321669201534258354614543472108781073018303586268566780914984509869870412980204497138023554468517740263982915276457177173194444703577595100716985325248876385953550097385751527458294861573753488103659134271291649723415059952681752391854085552258275357178642070985357117598876000788276614593466964779650309767591374760899690705912764445919008294334073002058806077689461696826070214838208439327295292127784759773271453353565345191785343810369239052291607091794070294682083485219907347003962239271397721999634754959670673502375676462484584927587062556347352127338546581473369717383899707194990477974526997127780145252804841551486959980087553354423008689070277566897266770834416829531585046236953597051115569279044643299547064548486668387116230045665666419513910039898301587620203201435492325735422621911122539702703449937993308698231130519426896260617495441283699261511059342613201913948324522347562822642830251029833147140872993127632054240758529416054020804278865594068951237416807524911886375585236277128244884949478911185609112190342035537027368000804843974260736574157099474393137071599165775012568204978905866449438459055805419947607259897825569630832257721257869413828384707385018505997034111608550198170423780783608482234809657466731787090046469991573933287266342708793389010413715298130050390384950187201731540962019739189544823441916281404888892110803687728201224477679308069655600416248813769331791292642123546230948729301219924882328143542066118563819327527225651269251531518880237028876721255637846893687096001237567572309043203515468709712012449454995210443856059362434802603598759410799215496204329155064503853174695703473993332174115016168662806203915694081598104760641285861965571345484795274612177105203004470035720514993438511678839535001457226623952657693192537377150886067138881231717551597827039466642023855674008504046077795883972618146913115252973423144447369876234354725306722651269610896141845143215695694418366234713068509076927252497852609605411129619680441385303253838717752113434032406699923048322952677931795317714321308259624902511065300626262694196055882685301279129654536296801824699849012558928874389489612989923402426359132836330100274832036068956513585760429115036822401247276442701388333254064835777658062097389328123974423549649378461442991047388555896441439970227622644672005622300929319670931566852636901979135536025073373228784788026122087592573359511196891088572914172497537257357009320194092747382588016338024885652342291748829801680031754705023363816722059175961261666177286015894348212477475715088373132946311415620484145893417563278959237300200677032406809357015298506369780675181309126439618133807023601862856986021467077718660519914483941455006876613296720561668474376449049206261912220130952151687558463534594185292319572028111925023695008267744452699929151462528514748276049842562390255124720333893189172978664515012763938535704803578992559337721463717641860931015130971950980274701543247954156703173470278245494005310471422960346006923473714994232438896088237538199171421485343952419303356521237859958484534211391825523125026206860519679051524230403035543309246594097950203859743356171944462474472613662846189441957180013534757960783320263300098540010812216988992057079734631191607735564665047398755601947867580093177272411911778242621820922551317597986508033291345963704967094404702543685040768399741161982986468054942430936390362850572931410726784709955551827837850530368844177715448169382737486772840429973754096537267410632311054548982440993065519637888100548740644019680093385403500746903965454384403910161694331064799596885966336024520004562094333307129937982484025934539227267801895044369515265299349921435138163419348401080645791293587160810070840122381798449340265421377043093468238529318816283742283385771123431902988591264531868317726495033373434087144140953830285215111917069888522037255633967141604814056315285849593355636253919600039473544533275789555594039477776347519747963997708475197845841029254271896466328922824842095399646268226699786621122383877367202359160014945360299788502819081085718054210286598114501736995304803816827962208316685706507495906963747458616875289626277963004466935776588247710828555252026233230408564958540785558860830537750141351452530256565936893164347375778061874327228605737101432022285678128583796982514194105350122647810939141239579743958636455788963154044273428923944387582249606705669637891328444989359651551145110750432158532466055867468041730733804042376162337053859735230793176284050346911695652403840190040277630719200662944016686646291698520406319397049211678366625857887344187514255885449756932437743361972789045573732596127132945349606786426249025729548324357517809885468032676122700991455987580987837529531682554197156827193118942509586342544877016194183470962941279567870357132847564548517462510197367999418047171993963177496623098233264157829487753189641017420240779208542414591873955143635130553380811093186670944258288004424814982883839295957639276555850155330072867782038767001751925386210281932045758949871883740839601469112562520634949789132203337160734659225197679199597982893225987878772548869956512595265078414474287570145384701603187825595611036290045025018864042164025142233049110553004661723425305975541985340564639102437275274689421345970706743306349084706598493718808793292088359501385817685933882188797695020586173020692316311033112374609115001674677492141647141473044660069013108211633126512715933861065169998215835844863888395734164737489148545923672731666794341011659396211155479409130702379415178818362802732970038212403521723415871066318537323612114260076041341319657603419423768949257634120125124896222894652841255134727749509611871375268561638128557076857073945811847550049427039689250375430686737985568678321665282199161392668399305992835326508554610985725204335558418837192144780402072453325844478579306713914680917103017287709151094211258323293784801423570083987732742529223691828951555102971404568214767789837004942167374549335996591440800981198710362249146600953770867531061148829185985836049072803313034701588894196402637442818724632708747582602353913290941864035782243345194441704168306054919885961908156180184675312614899779258799975003600020474593610396292089699715801591466730314434069481016884150001305803348009390921440335336905198530443025441679448840573639549356002863326930072182032330910841722027311122735715759700000363000566698387165331445347211069480558429313482018179905092642984121744114000108656892853249492229816783556666712558597279180669199080498918670481904979084634226954378973601952660928440407122027571354024418697203661715779753356597373815725857158468518892613020706949847257291034105762562644688947195667778007842525655891349282981425599239942055547344423183382007333151576964187824752974657866204729137791978539359928527997414698217797020855027321376135256573106550906572481325061595802801858789279392316409854126686954092327666826048768986662219455542565977684763185702446913974010381285643497711230683296697760105152217302253945960847709301546378861796684024687955407674048365378404511425733404157075691761738199154473693471588308410913758301554218675208434827429035276129293531183780978409478228233577225248242172281031858291383954534592539956350450929887872583076220638802702698338087531498276805701600519557395447472572235692350450603252451223277773307586888861391460393668766626612618725580585650114221027369288435925050642644813400803005896595554312648418365681050788051102093631191562695656639437389732379091269899064691345836201563985134798836745789909125275691100554581638044941276866451202319637387624126364437198652066784609225120894048866381336562040877503545027983527709561053629636074858837515999304384234589900990995909393437172824760999807001744003506692746476296797821493793295398515124703010653212009014895867947165608150995471658789200507855337315509335153848958739144932734146477672018883141514915401774534538847859740854676820724304664827331968696603099720908373648708169790741567580769223389292931050636204015297429982969926761594296346334436753930449900609633606181276300557078336946851233065971388482411148141605777862491004411949783027901906981808444643094591530751063630498608816761147038004823657512432588830201911052650853927130748264553334142249739847747229647490036282347405147689629457075394466823768645070799232463895560812742034569296358692544995269041179794371459770989426985309074515250870607715776977024358978818627244521537400514272412929751815439906445803803595360030598193198261702369577857835863604336435358043404507366652559045850537325782589864433309107127482097192102638128670765977126699826851959046442160985966639288663895159334337146593647833192646541604108923366643629197484283652606530958004375375416675706427817784353470994710917925168327679822830300797327452363358999350985789448211719954328662975158800135159572101301030878666934943406525218672167412731150727801299806966387359737022882174758965558130799369961761310222583190820582397884622760373210233806489163934733473442435723875093913682497533239226905004744057402022382166599464599557292339504776948651039371490323790625094187135510588028958306205584612381348326615280745952378116603292205688784890838897487910438676265858078697811383381134309367541283180238116074420714052323975898661244364053917512161784225302293758570834293826657406754604230544688035907913011705728235451007078203111840086112160533572324356569479269616770657826781248205002254035968285754289716764467715514145931148166813223994463376670325880101523363852941228673153574596483795580276527284935192375029041896390895843989352160310772704782206134538718689582809982863531470606478741880991464241434692245975457860987485914199595806885362876409277889116097953868148911560836288460676121364806814897610308798037869021617131482696009431839257877278207812569248904420443028305885178451698342407505872760999855328179268444788583913830644768562088738603363258865118558916435686721770948656605055352508340753924519234333074821701628807568476313157212772497992035119469845904632083575001389753318724831687425873141973584788719675003384152677012822478385938005162206988501052726458184057165854674660748445445310502728648799914415990219381379529028555577644341785278134467828709983027495157908786129804191405148537843672128524320158474485742965304896906788582498883748619457292054443240795911398563867232355052399271591353213500965729974690574055091836462489624020004443720765787820417634678441507914990682081237396003112940523635444219947330044896863999745565586654423145319144512529757390296339015638254855359003950326533117670513668461256097535185742127167347813123948893027564550810860497196381324462706115167760555496513058009311445761047335112946809437044985973421428559936323554304133882407767393936244724000525278972492836324134453596555397652831264233551303035111402175988882249564224828971342911295650090913758438371030121248457543044474281198627433236664295953414081665463114102694644874586372300776373591930414658733077558821575806594603589342033344273202734284654277705990757046932021613501441528125418211352584548214480423771807159899918228309269191847230181515027156289667839551803808673214122171674362919138302785323907608798360427487657881972857631129828520924208668842589291226934994921345237391550036895351434900768983335616189847203944329774559768009087317969509135054633085408958125175391975042912763558047821373000351085550190775013445364100935176538133091536017032485847238314183466316221294350431751098166564383017891123455979711392479702581800053038860439871251729315338479437812055853815607025025361750657314408158944370063090223469716893649124029127136609493886345019873883442475822468048785882067450698614120174748515865646987960068723410374192410177896180889290600157852458501781083278213478424356552254667782575219883031721173637440975161711773753716875213412996402522578866144040891214717734657724591052721094541060286472524826651862112419003677943849679144720876891618923327021551464679684464944358459603895752778214668641258079044034062352698875132201872255271807264214888182879296479632067014613496018842669760466077567927382550503678238415162253088671774958429528669629667047830685024738197477233857476608887697533142113560096182305350124409730662531571195766043847745734747425428490246972457701891619520978622362538895581795073025975533762488496405034144422922994721552506589544912074413763318830045155242998700231185411928137612723202421919561514088031480517472689218588178698437366464037172118710953068624890700671464965819858569382887112577724914577804098508665982327724315522971120668700126786318087755722340790304912996446362449090061304970531954786602153571449060849713300349899397652160627178062973894166435671972303601966522556496096791092100147294572924132422336080951813097860277381906226203860064854310563702157391877306767391710085135849509208906885611536399943353321443686907754721352084566215219085067369865498906501877047978872235568879761961787354278230235211209364064523015400973399066491036673341379209075585982612309000411746798579303646398905564042562128473692689108654061233552704020463373198456597637503736732152696049527633078439964013230499253205791463128793779482863458425135147656824498615516657135224321744868612113590368631421947416454701462324276999285511888341468647313164669182026864287412725338597067390076180595702714535798808979296137741148558506516053026288672933790375266798395034197281700889402966138316237995275422972688811719430136630989108100879467650066471525757254871526489982041667310556429722149525226506125356906803770124012571104611848951655288510967123332628499494263472217678277231466501266192831223464839803301385322700445744219001604349526659914098690590520913961542252184193355402981969059484906502746708902508724937202732007127900350300830500300205889500521449351027976537421829146116496009387248976644827577883917301589646023447078179689115119452885428252227704438732358095553079918064846250641434728548126231084165271886745048560448679156852660759833663708809652848109933768640821307099045042278875453030178545474066745664361775172191354939523295901068033510776581151029292560534459190464031072912636890878647035104484927433498299370199720636031345106323880746964144703691826090602681912821544167041749228066540110855094658879657661169099062498384955718143647879453049848168986878349773316885068557756830530560897552751874372376844067492304625093341237253811082485473358755470738852965126015527843585255329002849292529029779211535395932636935141065101981112062945261310199153323870954747865255461859076909090818498000200682940472146393153259167677509965416488045072983733163688446814404810030529152575122685661844847192361181871209662141174962137779528628299103139677570795436602828565249157190877018715587075700392578880752281363555937656833636114254416618720480087924067181041303828069140087015867362513400502496300183924443110263425685340285056571757993394485958112011257438493449623267610350589357017305261599845204645780300775036705378060909940959188089524450140341044682815824864438230017285951843859280104644508422483005220751046405274483739121730512773413098385355724763325912746331317268785522274595386013873189474822245217570664214451275061462673776187133352639274658835201466053071684181575231330280499504205247283933800891814104557627735395271261873652252292375939650095332045259834062517109779668108592361011272949293738493409327153781734718947899391474223002263932036260966027290819491132336362952284714628301249131043972686190679508386818143413950893907551419707643127487130418124561029239994707314845175179161625704408893256511340698021005529762567369182896526108753437705381368496930578279467567223720744664799641832702233407876472570206740680806319303242958859893534055055096633154769030972034070911909184273886720563221649875272676877323302521179238650237096523511929359943894980314822566393817802415473489432309158033988622227078261208637955233193580359342708481730590116985993523873238755000573090963857054461106156955880781503170044266571935809190042949209270882140097244239133993773211261072844561838510545491186286662835323287432900280541233200042254930389279897107203814285392732299862535575260340675902136381063408406504429628184290083826478807196028956484891095113938469844762653094981551596059348492224640802985361383213287168360639415897437630905459399571168349711769437538403424313256579123894122188824181459310111313125364726131142853340070093785150683585574014814785025330725902850125730335223940720950113894515708784834374550328875698612384136323977965772677140864463779113778567088284032654009183129213589966985027181174710199612509975204474153398375515404960942372638483405125921479163408398635748143563649481037204107374763824840561044271240704220669491105751450013041420651645450077089401031504607877598861268504403023133302937442770756295715248750838013348811821259530193986866369765711134982358542271577952247219320885521616787437696236018091138617160339245141117495086283179887007456052812754508936020611951626298612797361089163192775433295715944789284522730878717210943599138671793052552175561302942931578005869269429585669408435903081483338093802709687453631406631383300745070921327672913582494069234432750398618916123062583731961553773410687377445592367108439106358330991065336875402466137961293348006498974678599952655764434656197048029571356303985469490117562872948506397726867163915509635158973070107746970028334537332488687349841751029280634174901395759795101028955699607233206506598496617458467631902926691058369386575817918552586544064222100761822932513506367218083627094094831678783919607414386849279835365824929345294974008056820680595733206272018141925290004980440580673794751791056740515868281062866148929036559228575066194709631753440558669194231569091480719577688009549986394057984419447773319871126154148918406518442186404268627264338176176234566566231355199070893230661694473193622292930314779174752224101165016266333046478333270633126163026570839878730177331768397075213785271124778155964644171546126838834799823913790443216378703258283765710277975522866802590043465531794697992952604927965193939122977192930316946234411608926564722357557192822691695859469654218754006787424324120170239288277881112194447790820173027474618403063088228252026040033337607558897776983870667578701256238796282466327092241638182533613219870939046534830255213499148780339425066729617628861719803419654670489975714782654255586901459546113506949483559853479321481776659549166626585477797914039143248343019480274269158550685635500660817788906462616826646740556892742031161287903809351469874404932186402633239995474608675191872058059814747557723658437701074222823073918431039929525249964279745508395187990267354442240551520418783503252285034664818541201025816813585118019241947053244148294273278671192032541779412637748403570478645071281165633773462502410516544791529758101025119567171977214583362834626120617040572657201393863108231157794742934389997088591285867553542974800242418328553525614030548133602275444154812565186480939148421581119107034495816957426568674501407799663682145914571116466416352179334943789070135237904216631744999451804046129716420123977450328458898577630721869872466880069049607232184382556170219135606273197096170610716150305903586829968685145880543100829060105105716931679963631422228092734188464540681544265816911843996908708891363115599753676510602352018243998570760447472182261707163053997554541939492166514552850400194554621135440659879993978334347926958622935169155263986711211718015258759319737351323885436813938498347099390903160969544092845406183122576899553752975598297319282893670538583432683540600110952726844367331039851792447108007038235889546720682513625324906091740011971447108461223448333432971203084161235245815098744573189814696881588300356776309219708351050576147838402689067325146467127105558429987967006747527055249821378712266268656210363774964659950236741147931209491119600258145161233415686140738749557198099073759972796216295747697936621140695096037717831854066364510061022752865211653874758366354100354569396589534373354094281272407739069159942168884891355316918118884413040344664739881341599275021617527895066884805061861893516621387050133639595358751583367879995752566596020151407097340937775976657740833793098453566365807673716819621924284746890744818556124547245743010816571230454125983641940137489671318782521591011374047585553903721059956585742696652110985751204791053924245021808927966911191824721130101045431976545352083030863416461594500038033494419255864998719149671371125071309596045674486824916725427156196993500861440657876743504466551974659745080606745394908319118411840232463938131581568893636972228158621273327573141664674887561544222817758840658118892790834095059475768943841496469374049031883698371448376644895811730911067985984031716578512290430231657725830247109864879487975363958566978871115967984823666706228613432198457468022403849723222660902308977253170165756286647510372046780672425395133484570610833990236983743474423049353255839197466911080558001267469846813300566716781815715679433678546816489804915840359562055812696998677886270994965320626882394336589998218684050704976664836176524171248521018295290428189159189964555693497949679864270882242098796481333141788769655496794234614412027084829440030026058968181682149996074300002692051333213061148071109063025744650402148281175231891666678328590596807361148213986769783098193524412773631833673568717148037305652805446929110283848465397013413414668874314212844204476983363931555917556672243442703745862412785218727055015232698395660830991000880258337365690063491478157877599703582850588538675020079481285782442246573908531740441601713661050152965960346695921690915275130466464143391443816508785962870176475205204824804230044982421630232629351884697615273894386530092939437648122169841486067479592957501783707514171914378201894608276386314134618218627324774941346636251658909402646968266349014117220116690845525954523190323806050525213618925474622286988785499836600407028518656335154156745970654607428058200271633312468258249135520004582896726105929688885630440608548321208178913799255089102657902435948704208423961842429572714450312856167353286503243242066136166560782721146431659300940346221020989103368902508156287154064599422642434770586135151473910987904835702992361721414894972755238432240431848838896868915107212911174530590059369469221285751844297327674559070154371391772191740123241069867462250657780497627485530308347592906320247326751634069613229206319686687683523242389477032362216499015244964608227529336901707574761631222260199228344225656458799771324314480971807159643061049932850869973206831157893342661641893326617634960423120157782686470399219235669323469180594332006376389311044941138199339605262267886647666821508341943088909244551597381458296532268514854298756287871469182671675687045100350495910811221172432335196963466097563657772915824442884257241483295448878773074266822108041098486319642164072347656651102752850625449849071175068561987223991401402072160925509935165181866268536555258524711826361993630465042586540425260583216855174744713376312344012067402394895408868323444487878315612158958015903448226955644544507898834348179634477834785242087127339561288727643947754885612062853165658373242209388250862754125728615187379628466892207243190444243516811193718321960471386132359722559499152832645757723498536265376804798844429770685252594920327947724837302492823374600443381889421633700414661392480019343794175921099014382982383221655576609673462510055082525756421223838556057448278046776382305976914131558283700479085494431249874226162571434114857939245892672055938171958430276347721024919704061808924804351068652630747522994199008570575986468067394738691120611554572503079688367859334565640910943160079822433108709368886321462064946547649084303054357940808304295679862930303747493393787248084512356747360357706706806413721741296946529320772684324370862177401269095187349453057198728228640290935365406830212371126646647863409396869282457052501172522100950587766372753081746772958392219781534332321174433818767939535538332573497132280368025597180313783756051792619724064803087893070701651249415289825134007956155201956305537257468061535419960886454170460851690395306650862573632891166082678509128222564646002444835840476276061109182491573420160585756864898086314654977329570331517994651894111963562025063271515732169536036364979840150557010095998660880606857962858315082718794395449653936222684681034812551027614718983826368419788988902795554177901774108625321268286578460893414477932707886512158998710869597380389000215159571151241448953949139951693835193458859816842809891836238424804682699841276951077516815628638146345828724180650864242423312932207222341527111841590615253085799648229703436885442203355497359140510879074708057025045405070813802042341278327696840309023775270418885489498271350113165935129521112186631213559564406699681497037248750343811226339496354725092129258187884523219881056182876275037087114067591281378662297104653916307091592495299917348348085369348643655811380408181398083841272519746145431423092689484077341747715332291088852989507840865975850006417868578212268716302496132188926016229467452692713971074378926462711792388243322920395287545439982104082967844099941437103984212536624057364044994497350657542678567972347636033751332214934514610658380317226768096142068158270378134728153131030169021039888473369611720065662773026500529527970540366819806233145538269447545838894666804139322687380817395410363851125680770058203305382800260015571990756443398002499249195674409212612326046899902475370555815099977716013056792271940560174174711914881511748855380122262849267882752318364637974091497374204432434698471761267646194210188885929151227611377327625972128613126664470371537553176933156687215224788359026802628804937637135172714671367932232526066167887963306679533322656152120039626251047267100081375574474542700719874728540103100907210556067073989696947625966299444386082819721266600706372629337991420321525508714566762709159686955883541313456922862402982525784467040927143703299163091658051810418628737170008365407076481529148209933156145575427221597845796979990138691266688924836735404915950947278089945962992102187366970570807120631718187523351463615446436091494396426657336235994925301756482422213569272132646396945608535750945915024201244704550470080657130942479217281514414784273165719380078701886433006078178955118988736603327680340413206312445672930143995827380486443102199021488229157861826557048824546432180859357052392764211788874735835751588039381142902829926556966010187525842988294042953615136241872263763514328865812399177020864499063980676669352701448721579374496438392064054058930350581379406943438092582140463764874735000704716757107473392515995750833185700608735737360810649509202063210790956120788695735798280431638386896258475897262497294056173405871466296722930962350871931699177830893931644587888682675746606058571645544274399825691588962631557898507773246688926403173311197355600244470551614509115956461863950553849960530811367427601161530712729451645696997761343767171250986426121782390097498946066739682512689123310343554305678243520631050703843034330329127046010415880021661232694794878827590800859155319138354077426335036179440155723479293713494499542235069464333432095166118649758541093000306453135652113129982688026290149324457551859805903906521212210520907553561190385999036862027202221212284348058867964325952524172544441325682051777396127415025300834118947775785032313040217982516516944847564396757680063357478841504425596930401573735475079058476076806348828648399074882085245804140443733902457982958866239963521498679717792825019244549037733313151565845113854891491893593243973730105429105990466832983786442387631136576417605882562144540447353242863657345095988308877940134315869360727433938761970966495668360788850073155816526132563590851032711809384070194629593130131295707931083561547376880421620438907750438167679728512284794787059139074213974950729846636166053261844205223790024023526140089770248393469822883691580880599445321303419051542905803534181521955425540701534758925234411090490720552597427432128082785524074937593164978569861214101561367277484650127813948947123355335928955033488653555794814887723441766219386467729899193131685882294241340075981979884837938929475593951679391654142097905060659166662855019959369690294372895810322535404067181419020260073521318407303052068892250901363536573139167514102158820761099404988741967960866390274108878089920129666173833143968100168608145793082670635397787727106292797913791992094511028683818323631687432778024228998279090811087218379596681716659424140808274519075507892729189287352072562971668766814957286504801273769378628361381013411160834055703688847358199838261715885087734828902382447419964792684643655731018787363620858108039558844076667255176396800677282377625859661221813299162906597582536428048186673325237789598877198118870894404620877697361947770979831791889265824253007606929049424687210267467533183925074724885559372322290560860228244475991962012825048774325182271969372052988151904567575361557905804002625372598633053903450098598975222157846505047025431288358914420009492450629656159688391753413200806026222083267168971562396538420792974085238744239608028429799833192138536638332506971553692744199610977214447098843896817525123042962279785798601011185716483087563779890490565041914225479182107648191683050455460643406987339146351257641844849181362804068149466092600744680198809299961576493185273292525892410266068600290127993349708162963127868420718390083073739772275045051538277418062526902695338361712773838901368222987165137897354307749568309964066546546620052920515982259775972212919338296430860315057488669516130639894954784175911088965062768940689164742995070098859216613375073813791465622824973630308741212328679662218661179052427703481824904108857318961011867702521104241621371447623665543700614165953024375947146557369249031884028192216706672383114748043420509131689705652704357418078127746443733489638081890155125833491588438344812202998781733884949725604523038393972694555734034812946074630966179671688831931313643735562943606963874037445385250133179736342043964292395726746546857555044120718249447669130287088492268587357810095455317488099081534641983007811396186580116699806813692544226411031443013895385438362385188217775896840917691542249859515695613950813412142517716624212536749921495650864072513746150267109327274766393553864706517486928425496716950373978938201626789755536925414147414467949732963646247597602552271157363122769865065665184381488181523613857279949538045277919914349834597187355188317072499777973522141157078519567172806728941120325419637526858465818086641061051538285125742166637058602258000149499265563427560078807576306674133808225174098527915158642136559205289363577957845136231513024629984829135929191180945855664937998459978385310998194164678420858254470460812860400786405480707630953027299126360187914011379289408551539839347415503855096306198768926540325543420777228919082304635910857195175511323041876959702286683387296915179985340244317528771859729895383118797612266518592052819258891092325349751869524843999041844138172793847523548571253863903172602211690639068788847780559468436056625422853370173057962721898052644785060983955563729016305110481139518360102240880105801904666964014948103410527447640136648971430790032033927256548720233091117924948078930567155797369121183369689495813234642846592757340345973150321679127529083326442711726235327115735266006345513365283439413024697598511799453579009238665129709241792749208695517090181282712037704566472978234167179029725597058538958023539597829664253142823453684309451591332316752477283363745915943139148055963733632482338670205037219316281077880266051402736982066537717675514773377172908562202570175609146085948604701048374417960691008811619816179563941497249410266052205383317151476862691549904097124130139013601250197840467141968005746813782474851003069389208569386468043851434363821422771452130872705676093962511120261334693399407699916811845644638174450325341015857647948444539626267336100688949788096925640768126550858530533573779159905199885320910377903127455748366123190332916272850258796814259664544561702687911171990114896297895354647009046975437105391874707181452479158576504296572834910457550054623298962893940540077147019220939600238747055876390877145231551189134642020091850336472446237237695384664288634499933916950047192179002332701622147182088689193535003071267477417233919431752368933480363436645990198043819570554634176104664178601025863788819413507913298124088242831983744759257618423590813090706277256794309698748499172530288316972722773247570848417171490262209875674585558357822497720223567944914619260513215386742442088151245554659891703258866413814590688639045552431704806843529457606971778151581890330250961508405302718152532668720598099632940616799336175020746637975046870235163193757852010657876812257473825756443363985561375510176107110408313898157346866577264400692737928641803835623604183926843127099921178182874562500543678660345404255448789239936290490771786753012166477466705855245879272353355643405796490259585921268693589531709757556473366242878533964517848339968152898030128246761797233265914618103675777610460463139826481757825216724545156338250074610377550244950274398646423969374709867574713295177420847462543256189370533673001375504384543057637035081152709078298028543372072486567557931622127537260475189275503495491382633348831341884453997372876112854162818977359778734426388568444236756583333428170480917997726864330631646501223202038629230332876303587156549021320060687597394502090393626807378527278474845323228605752155156030381781212224932439789488173019021642763124440241941474430134917831198231335856918589805489319715521786980097357466115619649209544093796450652100830211875901539162354849762487365863302377960915485335970672384074640287958678513388173367847604561205071691360663427466671782089637177766099495421772294678672399553919463564584131800591757983985951696124921720165114176007522118411772397473261320833362370742300908359813295610515187136037731760387165039189384801677013220516223121794666037957326732316096084570130240228563597646614552097845348756511081619827727057297284346839318378422402117850252310401246936030395259119940700043604899972564384491304801206074824131671369109122967856961133529727806962703872343524008027583999848536398926365940913938898439106777192540012321689929054069878398943113564887588848666021578379809436433711632359485080818849933939364125594246504886189787051650840689152712395450031983911863007868131517079961977980496156755392963535971315715659880193524332039050423780158547531902154630638109210297252871105340887469436666028485589141071198133300738796305081446149826952737607349632972058920729625931960428702432061070632210430452514624737841272630695532268706669916031198320756079679547373360831736761044354134387856906965929533049492510214761418763641985704001560005064303622368519116720651312986195781953889360392881839898020324842948582194703439629352051160765568981187615185576690014858127595254318662708255738618192920436191703752678627000484604524356562371692125212984343610341299654401536618917515902543912035493620277144830022321771423603392571901358107955405627059424236964832775551144931152110794937119073663810726881477084272458886038691597413269863131187013124339718431454113886604927496117351369172024650426179312617912834246422532216545731929060128300897729578351348448909297098338861790730659788251663634355407302232814726690396228856526119454182662284099762029441435679817572205827410477709847985647903425771595990139057400600261575612124526896546321183459170548103967803422608658052458103216706832075729091020063437082789247245539754419808350735101361301205794950528750704474683674041949336698977268594070109498715391779653498097108778479282934713420605352498305248341780450984287393781017407431298612159037427498481417546430312910493296701278757093334464428777654022950407797329527217055221733613185950896170779138006135037063858285465238582982365985660566662567010693952763601315763764180402194160336240702589611846043132202131091946477205307872663513989826201048245979038570103827376971762120240677672452308852404746723219362999856157176378601222545415834575506823315284931231076836781897597484025742235211977248994716443072063334183738835423158919904482884979400287488834526594987320523483619454030403715703486798346786620455829115025764189495510858798360771465972515753535612609843759672241499167143015606329813137039130717967854018870300137376755987718994224409595261294964393828541634917640285625500326182665498211145882749217862746874908001552485441683735065956186510788923409795064415284347551167145913623529349035080642502531690738351693895708094541675454623310341316462177913292855838362739246903043646911608627269595686860336241108743706535322974472344865778482723709020384219779385396440197438980990354402595090458014417598061516893606805266161220978214660417441674835211280860482761709741573646115819058308027245957521742558291624372811449309972809005010339208145991365985395582591042711161281926216427738387402094074821803330673960986053676402471353836239997298319375974993899249293146639998791986498315735240702908786193765852918714220817982263997376218676681597480830916648595869075133249658750214256303152788524288124193779957365487858470327523280266743042024521216423771029694513448272997123090396007347634283441866710088816193170243404864751305160468009493893638192269289595165333659669967865781440015636560337394440078009999922502261344470706930388354510932980761967144899411139461517177748236498376562043382329874301589920457942404993678845145154357386696834444500463335050688325156071220692073968946131192634412671220034831966506940761615918801783509168547535540243618000817572112760902182547374761329183714456918915157102675627425098633881681987195913434020314569534670294062467056907573157645824719682738334306640599179643119969855808788366200255892618564228577209385685963835129726536602994959683121930822520784727257917042195954178948558481222135498009692774238165391269124456283280885233952142028587175465955643973616584029582771713211823255871795913348183780075763081924703414446305829792131040522847100063157257202260439905040711957293181050164274516197788611392463558312514591560331991887453332675839503995758405362362169300970803774939669057457977112539836312638427284215995432673261345469145476891769224609860756418944972518542231539439963752569287170480541303247890743311984376112261370037026976837528767372465534995709387743591360647200092564514390990016384502332178034534085862097776823976260428170167409091466089702533160707298730033944847495588063823199696280764258496323342311689073952516025203417991492545620824131723063574011897336629921169371017118788477209295826352134820932164768021273915273724213226027593769711117749926351623494241373967636812077658380435119761775397291737751828211019686787124005506004552027880028405281529713527940162119979235417981322545749717762214430839397622254507265786289926475205035326791385317030424188904483587037139569970504725970557689453220409332308876102146028793824932899765938112238415295517485941404594192148249552907874620340176695359000175558800413313414686222490407601102364854246401463959346161516043207905634996248421298943107644419330741091143075039932325707956346513676823898636946641732889423618536873876229499766592270811376221703145642198516301151252164611755509185067868318933395795274770160710974256663290347943568475857782000980166887537184891012112035116875922033326075193985580911391512357558893744664310151959280675055127668219984204094911631235491866497780639127248285034170486314891732894205844188250682420728845161439246990585678303773834234677158048114376335898449330767444542928986173821500907418205295246013483279662632379301579421734001678403066800054561654624192009238042499033573103845911841089211779394474944086846317365889868124394853073510144815525704026500529439627917558302557667580391286132024785186474513700389242381034762039444044162185526121825795848516772006038407617108135894922683819891018883143998673969063753831900445593370555536756438557311011887889429855552204024127047555441236366096734757426575813620838940051857609165683353597370355145322613490141423179253444875238208367436097965392453809175312402234131657251802131179343145190147708083419680601044924779795097302295002356212761821492923011277284951034452886421932221849689412136590533306049140493174577810034976212539955520079584812517175557446638329038615095680487670121556014677834391220477339867693091360948658186309693047990876508888213508369861628193402622624568376292890068815985191849799227885621116728513562740231831486618569415425062286725218593392367184750716582840097892592405265939585073951577564639361160479326361744798474848816783491455148928378385447102805283104809825754928301748544719661714180371591451342111506589594356005874927764285233864725537854517075371647557464498431428473894892323424125585270820355845729869377259845991503312897678409106907817590281943456394444789704010598034053354575271767740004110246902967206355842599317602507819141061782452364430883925273688335069274620034210997866495510470848251550626304582779091036576302539178077277024234146339209775719785854017327141498843932458012597388013178256578814260600767972955498342216177417649729501450728946726902945641893792775764773798695440118145726848202238283491814705917275498068080913783325976880366116706899008130528816499530588102626187811246025216972338693257425811106765507233667594603919262167557546650779414218661688240766409716290970731338446483279616629388024711123512696052811420029399877814106951524994790757738013212525098840523602794752538610106938814003542289690543968958781869276209370102295725957254417222072239073782323240549156596495896697981193114375108570922401370578191420075889794711054415368643894661441437935164695337920750371479771586821818701850746307551295652727901838204082710828205981984145833257089937191794775150359933440681995768848436399940329529837125525334610616780256616478183099189350113753743028509052568069169561840097087365781390992982604800998076331870443390238374068280783135970768421669628863324186549948153922539469541064660839618226172834747681769666367850105359904755848717491083845708612822811425282508788779902796688515469624907419180472392016628730154321881444816475481657177445376698148873539492909789956187310158853008657481571035561913108537373316476552546090279063200446711374182604564775263353879245351116874818123163255114778211729379435523637221754148209446955333019952193059968992472079682800296405339012286778485729354224434456351981824385999209907203532649497335081927518631776428463817889494953282784314650349282920215110943106323987954974807371667119801685895156763349083893983314216408768677712298245033270646931379655027341263424922286298686607727296254179659554317343180078563844672286113062927743777432131548688131428836436781757473923718206864016409911195635555604047378792974500685717772980997312153733735419149811426664599908367745465791311333916639190318137595095368839683455891063680738830946580285449396266694289930204039547548935555658220729115118442884208354452957577094394845764836127951691803047551526757838633552825461729480095992373620045156570534626686232929704778603008778860371565528308389904594473300799531925708952298776141520903598471968490520103049689993672292702737556792000427921893393439271592837031832877295181423283411905321041735056858317067963397238852749113539358371333765458749280081985363072594054860666039026982821412785979783474293815296167551452028353221836899005502307070388734919317462564653175085497104655956089638701023012742654277444497422806477592521890073658562838878898762132792756197603099710056299582113722356507815123552444606421467147629833790050707097145122192166674688124096829241112972018188926672314664027343625868377020229878392974172874405380622408329853880278279741340221964603837849700472046569390369972644311773802612911257231596775490595619977638722221538028406388441211370065036331773847511397055258683861920905720691978101556273395579785580293103066824940936447582866602299321700851269179621417683300766303169034434118543068274572338587400409178505527340608375286587502188805257729347189209368731117677829647229738200545307600262504896905703714227339255208630762114951561490773337165499947093525965273433291058782213730364781318315792627339539396488407027916740774568606773142459416394224185077362244633953842060313166845450356033555041215272521271894235754862606196729457198694371090194055377182167842600287692348932512553123324735189340072299470774133432922196801316686809534250288116684423513328412277619424703446215169869784847546112503796749862740301834760502538792828550594119703722311598624566384354689523521691566612934061520219567296535513138980425250089062591306714287392761644526720474753618157699915956912611953884236914248206635854911732049133537856418818276371110808418368655754529059643993754212621430206448356817459849246838077201121506613095690411552291284928456000522809817531067075832912130328132722019960189084461479184190577820913426978712248954378155432482118894680904200165920795809467953330285126979487286740038612059184809202838984246761834176330610924977398292484581833803083526070174292647081184491781812887582837623450304513658740298151194115976264805110996122387564215112725101303613861490739023156206610990441687936517556064790184114943707164978095134285552173306618902507140741020263904463269914557909954710783372938811055015460591816691018230588625774734641491249433239395320262514246795741131203014058653035573827606612368626875307938662702337748573911012464117672741169417946421937752634127833733699751740182780053387624310003017345245903198952062192702966982846321170614403283450897029458493073937929648635224313883637535855501211895158246382806656325786814429252944854548270629577509634760355319036595553652944773253186606971388812438023198352656700458817251928996096499541377597681405930097250292393512836111880018517307364111422474186906577489828872190310074572613022041275987295503735260411744756578388181391936941365991872072611843019476759744022039815235818888107540596903067344469705999118638005011342724919371190733861838227036000188094357653384353994450241269254117107785551950821720045717775603723097605976107375223619944868096253749039440479456895604200704241257185277689435016515940246007849396894419682604224061075083110799892177528034079881895202092784418072265280908229465828915230281536883952400533510036552314130325703673088856236684353907516564217995809997598899739002273412576259079887184266239146818604834306656509132833738450255511389022349966099855392385013909309963683447870649974630546313438284038214615553016888115574067884188532499161696833505143564169122081857951063698632016287715403682415075115712877494994845891254056632329529539367333189697194397309054336451313146020133183638838349249472277767797024779636595081506008538039913069925446812217875916207818104607443195934409008864733975863337737103821737826149776422649450105213988712008014691463530653219097742533225351415097483898169294895730001800991877751655099648447978560321740509238204716392327816120466845346026609227804868141571841157867887911191400575033752241217806909728434037579308823982944965921233501971706702957391557958694169102122551878780115098193177306046278259376941366813180777165134386814521316513030837790560528634078466658246232064151403113726342470733187807752347229527164451166570753434958990518987901958413278104196323366212002851109690244898866554037028056244808057292820395682422678650771712925506413782308211991409664081030841045996569126533779635976948856254409884302167499196492415909236282428786539114300324834938073505568351458464031913886350446208452411162683060039609439252101432746892895710957004722183421909696231694375865022974608434065437059457860590474156883953951623168815323223111439362365280371959745803711249510534675350477598467018510469115376573715999374603828530298161819305491109938079056985663345079597165843603759794745557245353658751071617631565606524861829160592300379658017450255772702566672631779673775833408309306909807609771746119541186419835282768260318977424130797881498860585113517998851860718937358866361320876933687213306516422093905697268273105340453285716462842592251197010255882355299039004410904596004210853303485058762114592558036748258537604697649168294006743774907982740693000123016853164772992220887351258042193824432649967423562459813599092271759156748194130967559005802904945705171361641523101588359634392367154647799218641987383698163722529915926758163176443889316334650825867412287686578054865543674836271153695969059604170050070413331485452581521310924744955931380651262367216475716691230328466583411844574316113167804121847512169729663958982970307731920098735110687100029732670480421620399250431960194876728203414383244254241012873160898455321117847026392128100470690467520491279853240810055623411687108412815847630757722518967266585242830812556669186095650303755011095330891425474688289211029151599668216015311945279973666413410668861531378332607956846872855365511814883035767887109999163184231764237530025024334322001969702998379589718481250036747117644719577961548331014820183615952518556844731573769832772669038249232275785792888510618907962220465464367431691548135581309547005195480204662102018809306814347042937695074893571956035323484183465771056746676742549706841857053774250733236317435853970433007589655781437158149518039459855514211533361810455720315340402289302712924541321980730478022229320334477325109579612821328911142923824954712703491903305365256240975831484180465719882853250641709425645764414000976629572942432150010676544353131399484255846008981841332749875945224328334801703232335693378467716796359810826140224325689967063937223169052825336652232529294345320866845218406435652334546144102443777938529190598671939265543361899855694764421357382135375769710759444440100860711174961470176963078506721004764557549100735385586883535434702391579869050271278896795862459424021214825819317579221008504729175958180839672556112911955355569517520580069998668490572409949424961049134328041364803868320823819891679168183733318575271759463847328780329140968915217243628321942224480129309093599699718812274109954540627615604160212212709231231373770548228780818601360904870538301232367977104589240503856514011902819796557526805429809574937208994534724004743575087728004428786822734462254195130936323400426490974819933407446431041432865586340683960031088159954132482711897402554026997286009271479968982161707421621579150808178028219510236743098754444467056467662167962481281160645211435573274204778432529810115946539858316310059446557427232984551979527529306495188468275393435212340743759976392268418240748400190374769628972632090176530364838366880362966896188047435849491575612497622909476823100325359911041322983683034900595144760215122770723685533838714579868697033488361184387775292643133431036934247264735883423897356939963145183107489109790965899548993991228914179849648692010488190247908980147818333657417626544471742581127929184146042924466121165812950952035001874101141741897596346708061651696450357910741535476221361193074373784783472480455441917393245092941627803727962384462551021083836617668205826122234973467049738036681017218945362457851493885948986528792671239132531854058074237246063531465667015952044010892554744403716112647007967130908619403531967964411327580041033699487208382858830880874636530881659270737802731184276733617642807182742071241679042985826602304496198326091676603604444543336523173590841536812836237705069028968293458832035047535699817416645368718556710091650899230388013761683304846719449328860082647585443179737521533006779570223096888730697881422502547234952637389560819793719585632806367816230823157077664691612862789022136020472058200448255567651415197950435297733727750156841709551715638438933223373804708916054271811848748488440427731285525660013126052413159905238029822564662599021777139629375668756655167654041111610560635077419734986498922369552707767319173848999007838005278250168914851874378757486098338726987091122902675375352581441144797687987418995058313135468940094475336484589783089273332800280287216861143675478986902253491034017128239492844175078449917025203905448767245169146048183416153118660028886292053750367197433096214328535080068343622321996797242640593333504974117921596523595471677752439821205145893211798292812592961074832555167869921103229161289664094935069619139638161338465867883637179677400216119471529486631601348844979670789938581020426950337519752943708146271295265877118631271812011321715583996682286149171298707360879135657440038766498104576008026463601951494572319874231382980670406794080562819631395395732079897586009612111902205801771856564714882170504813420019327344123832025850065225378738225402841262761312715312074396578805028970642582414246248945150142006758624677485217345847270901584679016061233098737980525445754106781156520317076585024278225988742529967598737563633771328134583020620327954338057108421406587893852143016998559755908772438946407569709471432604697054057673134217434359537360404173770895081224051695301521780131434485476989747863682328703595065081950133832412534517030219370605480959587758911195402178891377967159787928502954379255943905639219367099752259415748872804883925284188950990970856546392543586070031323331906078262319186315947555766287979689492033403589385946958709810268420457711294559331832567131150731110718512637502441531890309271279583774959172950781245082407325133206084410556058160540336115604714366629184550673758116254924444242029864219970269881229221723017879153435122507082048437131412891229345661563794301856063194156486900988505646102469990194715198075303027696444514408757057523394437509924020000149934301778776799866015286282049450553058891647906629724052526559775382642965954100178452523655957911454603163276050002002798786570020611825344261049307136092348479788349775391091602394643487466247771438733651930515271638762491610507398510947655682684084557573752287394244758571980242930357875037657899350356789561435694332244478885408847891073818742154342656638555216667856132369524975493613053382089087823624407160736076360515159930259821967844468425540549817387584699751772994869685538890826119341640770401524908406045238045325158478118254301147612027923385113574144071950231036195585719724835602937456078633813172712028013226285271219139923168699394229177945086723126678682119945521623027008990321152205637571156376738431724406160979879407827469768959753999928119073824872097327167809940122866882576303284571545037802807062136332463761141369117255128254977685050510870484405834910955467662557150450069478748574242443574209719070994991775463964370598323122662430849437612981194968262880208409744664153287242134254401541953132948565022398795587199032485381004520847359100847634914314240046285523128701537394030881610828470472195044571225166686450299040704698324317753707407952154772442226037999707905867765947804435551754531486763213197865140883737356191968306139454505870340912943462417175724507282914637140095389531633382823162666983632334304198352494168600489862873972091163285952346142620515364737416312760431031039465546986870430149683603584948110324392469352863600789607837726273002794674301693586288959383865389471021025068553600328344845594262017253681626251967611522879272925040565917764664656040203056873702607463633876270127575834817803064893974939035190446830203675715724109731064255238460146047244164373271391161269094304521076554474492935839727769279971123832165685510898490054345524081977203894693741025863302741192677669229125137975433662977659919859944238718400732992319167841433575714493152647102959911961761539741456028445454963160836847145048789144674357553920324480132338564864945937638883326588513802404473160080453969163644081936102008734251806762634995105833077873220451000842223749469747844309820712375208300044563135147742838073379173032208542314515914484547454804426730437719793357601954767151153026349251459976800290238486603361504572430827968440322838113460406762348725329317416056568515987918285934977761753421472325908821219778677731631883449577355860847641795357300619480944296631419990603260595433763790591607342575537754299348870514374435673889433878422197940927964039966273885651973875167306078327843284909524806311590358697839548694112973582941711920613966697959529607775043534431399434595228559289879911334989770750075339504106069956496283166032021482245691688835382204002045779106719044889313008568199876874017584728408432619864386987490231484225231766717296634265901155675608228635978345895015688362399338086503779829111135221194511909698672434133940693805211894283206882515083260017231817807906450992126087899098824788172411122969441441881714803949470853843221225544517268844648531845136053446291306190883346609494394333059153581617176493930191039157849375723130218355156465847917251978718310696984478396852717157396365574873275502064838849765156445601695222184919719762896513860802766767052509521919377849072169622429624368500514480634495369789222262580976162347760173943340466680951188656100832849880450471672757489930243416282401622287753122902182932320990573479753492200909461648771766091714943725460740002231122113294783397156042903155411026148675182801319064406455027453788733659109478759044299017114943859361754191678948537417166285125955293504277107833854427289696339807800879750112938670185068105759619012295170014370992732825842565514373075124588979072526709701726043183385636656585565641328835797357131921790715125589622982450337374922991727046485016900783178646031544470905311023182980341177195508365497808362257520379181267787221184480954668349201360680103315863643074783648605159456896053455710968453469253006098258769754823791239233106966651087652434428260705608439998131074912543906374429747795345310738528895366818262682383759525416487159488633289341112185750637816158614757318788156080973013788360810463084078308078348097352349418996791497571861208801466487392033084778762840797940032989946163237201463758832568668145160550796011322799009852796599708191933508062853341462523947232851052086238341433448170406525621218616980686551895451349459386023301602453801249236631042066848415525811932969814715994035771820901449930917935512602626071787668645301315639070698154082242592238587963684680625357546675821613922132844422097695016347053151939883226884466101045099690381471737070111484581263648182518924473679371877070090097947618576124708076698431973122714681112642891257806957561461460452400735161687909502956908954187973994539277898404038908733646177285798825970955974909210924296289169070339737157199009876271576410105405502464910402059773212527583540089078936829249963617593394542584687596272486815157995082473686726344431615367982674999050789720494948769993667993580857099075921638293239990836806059426145142631533519025576710427024166969656880445577471132713076019803616002867995532345392044938091277788715746712279392527377894025955633677462349934532554036887753439456957686724105311275225816991355266634669312495801929554509797005490745182046297043520648441769905874269483363463845796192941749671125808360760855724576556872804757830333984177674398681532585678029888397770930871018192303165137157365160948484529584926696045101019503298716111218431976295878807218339812971561195538421142654407146610116132851831358116564893374636942522491259897437279760276140554163873438699393432700618621036179191589164692535147806311195800160751787336562416310090177719707093071415896329670932881853110616803361618371131098160668350024967080451915531502303984068554635981923740426459438472760661132343316064085544266527683197940545779204304956978278908218459492720231681075355347264613521536419365668175651627370003640564535693814673818239900590392828601908502166489741791362483567806130851872420979101807762753197452471620478885895053767273562601156601627787662082695216138403902606894574963319783516414106938526827334812422115576929295910268241304057145236906854259215040802730216279754676921733391983895648580104277933072014446876207714890289005436734863993323103148727548841869401490220010930647675958026821150297981358019408355089203530761240464222463826899647346797281158266425562980423025215951651486888328656631523044867292384414448318848442745998222327609424019126527718806803372785374722754436867637232753085932370450876162160647456982360901771036006669330463475498244952544466077142080923803880357287466730270623054776519840479856983234588554235955537062012341613675923309993338209735379436651812091729490595383668518423192158109134527287142145614324348595653397345410725225325920120829451837924582132567886855588328608522593764946501789242429015289433666532712254261464043151972821672929137926775219653804331283651947718905289673793921607219004262407212684404004051958345715281335738326415549230867169431016466696387931554409106877187039043126577538311516151502474943572004528154126211151371958123023106237495226970490376760920951800842861461344582836519664989828203770522479383034518180249529297951837949120087316678386979757690822189490696763988489582300604392172829974356815571065949552084735034594104607397487969093186720462029678594292699149279597752930332840767702561717677043048803266294778477631244880952329853664633074978987418902188771745846570988536425913649425992229731334402833220257597338400773099121295940319528785889910332292998855170038512522387710115317826858282630682599342099706139337499971409712138947041945918399617574234924473354037004951571178362909577306744898929814954816573081587696021084608780356773268971750336594756192223134349010302729232465800930476762724575538417282422598360915912933339829847208034778829537882515283961932768160814702710134890821080836195133536046070104302152542938014090449097352771592478557729275725320150799231348702770634254571731080518064553225252358776425664336354931745338047591617053182976183169519011782616519870817621134336625170497928686701790369538808932160872373942353889001373670823480895654611956617047148270672349751052391001620239823889604885250401798197823395662167118399495950025805356536944563577653363487314182830410056662713818739205975385765381537356177645389538282013453783568912764971300914215688297633579533109931500152298657161321885570609441574849963946127509223342270374159382632519325886031646602292736992801175934156284216637401503677129141309654167893285606783963376514133955639732243388017029813430587983202037962512706935528558804829962301679387698735507430794720014997808951416946394860602088153111583689988406095287305977292363680437593821767827711273065256029086639296849996262684582072063992102040861884428364751991282255599579536485026824488728897721537505367820439258567288698514280302775743603596452749396618348630783341021006618399865884128236729610512507554650904835529451820320108264239183974946685115285609442738057448783097581338968109815148378976912857078056825639340621231394841390319748888742090584345672248636296219015437988868463776609050513412970804494572451781960142022593454742204247832278214885269378312490848521875102944441982133068663290454292800267532304549131528493469837105698206043857631485516676382208983740553044056980809903885953976267667271395495644588065419149840418123244699573357593055182736694800011949645658112358229502992022511316680207867249871827379141496527720408778244562780956316732856510034595549127230606592868363574815216994033997873147602743904179835074718461698787760888665595642445834525978349047434747835591775870693943081489335815582767285611300518061512211504934059784097861348300992547037818653265024270910091448967803373892855051621316999659705218142152306617098278115339700656008172053397974287377167919470141309399646659425282844935275331986100125874013142444928289250864563581391718436247285969539664147108919479711933691319408006912959444378830358806522722137915037227109800057711702359674880708096792120897376892345495971709598865179703942904631239481655219629834890131370025063052363756838694472672068636453663742926368365892755232328618024003389180786099570644800742929575304184454395404031854193463792977135657819902257573238108966791506151218865139661287682098051767709825146570126567166728505597554859895486434018859973126165960646716724478486663227474644963855905940210565120597431124593359561675321141987496203649438634665271099700043102315945041756505514801818413675327672149282459961942223701434328190728184640357523495236874353092741089129530646508555981598844634155660179898979064662011087297288685004583673052134252162284828703999716480899060014331759426732420059484033913414397960820966337355857857300045653421561639355380402012115234488644510289411201620610726524392303495819294131528295264103412571578995401185809246341939192119127223727445923438151975944821316124302149652979032873465984617738364840539664876092401096476065180612855116374351076929859480578329608535011550556656307848381146859402952865275811323441799301619021430188327110834712685520974467917422134514550337246494075110434806810757678900153836278402782052370426482733803156555088222450472638511661391368968857815559767455977227367885797251496385811112414238107022672662383872010334948103204755043349598075783508058619043319582426615491312634270851119873298657120288367700760057653688863524269448555570646060141277892867480816159192844565500290355720155811508223825471998658025729319782415543950531358573394363581649788473109287016899239496041004620336386428764744674655699185738575910848438821364070408275707619109809873337170584937344792982490012752406497017549632891308156079397871442409645212742880695955660055859718498625254160234255668543295614026242316198357316218325260067268177683772532302329083407796193766783241105549009609105203648120251161718241810966219745650975647388914033317716542466641822675260986290946444757794630646123462452066491692946298135773402520435702656195704264232754007008758549988249809527818549605559403679866648495977985789363281060343068557170687507697482695756521388742759555001191385530397932597193754791547451097001564744090387140744898452427335660928718638736644281738141527956988298877571711549617578313484956682789246664952597148284515886469312832888970930955161136788556640665098772170424864857671379206257722828497191148560189842279045615663439368274906705773523061866663737705730894027338169528341846303081316644203787790946308143490343185793309498433266396299691315625723645748707268656634754014159153118224980493217619363834846279221774448479069530248641068561715362081617811491718507412431679535703358398573698528525381453479829032053539050310129714872133446156083149987884388591755559381594603425099001072597968849104039115648593934616665984987475138914459359357557890254827832064964610644209947592036776303407962973345738041283133174591451222167948213408218636742059387591946549598822927611133299553431876516589313687743840186573854777565370799334991930584126005854335812525952552011838553514536347364331192568880357232456484150678975332552341622206298309630473748408308200992281295226643639573802741118867536704353370423794093093974719198541655429132685054422576405124881479246534238854895883669718612403004013726661715160353413208749240506577069734260158462864968706746278999220873943477825034987776745818101577444105631146161619847902936789230103922142350087428357728072686783016569380321586977759125907567476699873100673314755022022629002413918804168554560876007079114959473639428250593856946277171624000501590005810941276163992487731871218753840002001150512567548923728220789141937218068718169384635037022578264207804712199184250675423027131822354149856329287732475625154637488979236828405797961894623890240201913614996423723285752186532384133865890164071968098330445193612653615553065776762365464372619109093281349624745126242504268491398791073741715051259227848123234112753259134113970637037865269237343706858915529193211437762567100032516505353015589372803821945359996506887672794767747549312954133143421085533883963236487585746135721425024537435580213234576009085503723508827726982425685773023247939412929497474173291925434062068912522171182201502580602133919088015087871045319685623297616734295422350097106190031904917710043004176978557225135487402880790237171862973549463671706966315993519483992546217712749450875522039959124818791922456961638421117554264554282494649705080813038097794975494856889285027634985965398502188452281258317380034518951776978107939311829255848876736085340669044474734001255510987942076276597000491152212051668948981062900767000483298287747465807749982444460287095120309642558114560547025369549290963439938786173764095025113472636683081632126394139646728950218940380699344225782034180940893539438138464392432771450568553258309831380556363240828350713101089994770968300846107144727676696464838616056546060151738560140641872700055936325018457027521769711638432592299629515561944716624841563680897546069669946376101191014797509770964106242069626855647007779643670112633164416456853575943971531562155149390752013920532846779084089999400172077956015007175478635870294699003381245064088290077221762479947459729659741120491469640746810066986819406830142107797545728269628697788823580677818844896577354146407208923828782590482478184251108768568443022913558450293928885775662450532501981641919765151216206516656515152233480281698206559522572740593413971735081899247318142968026148533912601812795564551167456408673853967014182092258443345457817378017933755578120842073480416746367793377975261167296151044539331201973055535070957151778350736046030861506978174908172852965737036372820201965012609215357710287903810664044403207465110359947498530410612686713114208337712936358193166134866566661093272079679124837654797564669375065352437998555725047178540385818663769975151153672016617025272288247203180469860305271231857310064952589956265190287862325079373235516459047144902705612912153919458982131479365738778062390195486633710359344871491849624874179763433834281465033419331439785516863976294465357174136392289649058016556543636348115570251412254688709288746310854549029388927536334962182954294384303365894289318500995425934915627960736246882894625830544941211463845152839876594666789115690733696489533134682237304600324527302251325425632447089291033322277781550993921979635039657696651033390656903236827097255485771769527167462154608038973008997685464926002244314154030059612272087018507733255668304414008229979593312036932503303976859757673377293411917925892819133510620263977853940831886433374864115932593077758653222856354884560907045586314170644092786820114662133041533134768237554535189548516354898151746560960801321376762654762859916556238949427504918270331012564618933839595406489082679976146081632824183269725618880868666475113245840144834662527874876652176902912129147444568216080730430058830776728246417708557023392151860030156696405907445664159305710319932838011958539215091658996386536755691544444816136456733438739923738415573567396532664122630875484346884119415604454256099085149418549037045107990704590635635812939414401029133375354887299477176319837051701328642457156318185028519451480098178669967444537238295186125908592252610773074690136171064043639587310331224816635154127802953348207324008024822725168716899541710768942397322516191454722067664856398140160096151884558959880822298786909853270010144693083515838564490516697956170521534826194184243145181110409313475040255439917964964680274861786505803221593771571713443535188809062460349894808289326202751522904314036027882015653407099630103521184656517158717126398414869946946974463227758298764314243950656645841983472519495101670099518034454567359608296712457716143404896429735295422067630716777187538797697994404587215714368289316842090319535431113181070569721885231384948467434392810316232574424992594527130776340213068274636199501878204281128133558686266567565937005462291151092841126398771848869455543664324575815218806706952848798093910975351794454080550388999187809321461255515234892655772302477756825032710202677067542105270966335678934039322930641867163185539531956584290265911749184878317005225248868703100468605561900906086554100502396592149934542707625462521518131913659916706024064273469217659918222852407017710834816531691915314718361348816862289231037718078500721862033555773839422805887696869577903053511865941792524277521982644313476468514914649833229160668738286602693949593652697861762808536912119385784568781407209357976287890160974914410178787834217767156333401305093459482835936433672027817290891072100402292249493635625538159707555435275912282672666524462849783430722122398663960265334611953352477588882425105783892669657233634842653874191126591269677928605690009344337961100587399292485117602253006086156763111903793060975950294725240552773325789735746014569364958301368131239612712324137949771810243337287018118171130820385615646583637478666270466940728597345976339907074943662570227775068645387119705260946892345539206136502753358777566458759292663300762238716468053692280391139127719955350165754169113196728534260301825342752172772010700234581672548640067988433664093930313867887521176574953688323511662331779098540062257199531663243161076349885295841968197882467808366234151985153055188955456622736971727831331890884315047110637120479099493577944389980874002141500301139499940651828245078062741312821176870416285715741552448363179510100831891527210337603699824232604374517561692743462547757947518412740037981068865087547551579565744716021030376837874578948248748008196929178292614605209900743247268539655647952202718880645782056164549499336162285698958437909743927457631671740817730917833076246285703310456015346038303847445559105664755737779828426721301609109985172212225403883462546802432422082029630939404824369716320870583709328843869719845417952563852466583956186425095247556965550626148623906290484805114007975893217607182064226705458764084244637313645037655891921759942315460146063869776603664912896131474555625469319582201469110178518950999800880242128425523938453269168427565327231166515357434646222138924627840980726190590838710583549603626518967756098933503181610377493614230510392942127390331005794185749207477413682559485299569458294171449097161082193791768366133835056515530860457062168867902168852837187026457964368136783793052899170094831744449472527821760760201279545442513286407904570413136072576300293122973391861125713080368757415377229008768972283782982839621170541918562690904463773104473235596409205331914646619426771569782953285961369504136793440571788706657696196865638728972887645999367421584835338313615829644055528302246173034536103437933100428517699116357866797228629155365774921423504391973399058038923076334979580464488366788223689348122352444606899736123784819131293857382363268828011585272886631670494264488987803726349082170925715133099955276814403182940078499008782869528746758083729580782401054314661810366239252235849705586881434259856929986249255602755874964413383751122022941713832410918660593107642886259333685572159979019479388815864049931353745566235753024249967843143536380227332905560095352947490818932593948332033932280451890799871569191965751341543643330449386924864692530542627115700331472386622038185062281364494314535598355830038515668551111245732897338785166792041668064601852621169009007507880333508118778327407618907569066110640984927500962478848823581400267282669234009109940020536530512839788545036423577751804389587557236170339392877112507746330165604401875498214336313178635993943526027965542235873881378523603760692862077302950545299991124093730691980031818647103110087619878196535981534291377553125835431558584918419569152143236196164857171320127124340566068358901804829108844620556166156790104926338650526534565789936917739606192608260572927038458014468641698707305023690127227565630728166628291828144226878134709937239937819977474440741883069210656498308076367287112509777462662059011988392924184979054488940918436343521276870253123155675916798896706147651319526723515264147155501639050682541337405986070413530230749048393998457384734353328724475326783769942479106252948620893545127302306950372757579246632388781689175833972877192699212315443167483187525208148159813109179109789871927861651156938069332256887669069370454349766282101418082712079356043236040480126939026434305316561605025584166078940891647291779082668221830982906054533811413571527027174620517265611568812490173681078689593635993609028202823866099714771898854692312625165968938244807188992486638754907664220791207368499514848795689663828892861946429551870062672683934320846161305005678703501126192545812881201839866129870004672925210749548464978176291648060725289262154246234193476764328243487247330732004946408484295660625747912732135978035021158681416232194566600048135829991068902222607255858946077159567284957107683013936070505992511273847890693181716493760399383951168126837336425194077952268316187460498023110845245114860104374436000170634623342945912472831234307519310895178946150687368023327142609416310858291522152898489821187969998144439676617915729121045751742418920149778075045464600377742536470983133412539594577814495053587373039870576098481687616911764186847180835748726120714069857578044639990235664792338051381910063449752909322631663763408677014026728085188952937295776136382066278314428427333259085620879321175158144892061081248594028991902395732618543028022673235617593097239940802637519777586200675488399445642715913210417067252362866004942374532087442805329820255011870183095768361951069884782625087034358987980937540060947076279992163934950902124013851043769762049551046257777976883672802451685722300208747672701847023580865858591685629625345009945336930525526086152152006746623870906773925420218790051133288525564432155130828756955261557921248101982756373349734900853863173762496988624026033643238081734771989066944844590343069676343086020661352261766938603946919787950014163830684363899377197702422029283068937976799314187461402841129693407242372282051600153617091787479172885575110280069896326825824213048913742531131573668609520956284834354665920114967512604918452904986643930571465781993835098040174422908762630500301213598190870474518618510236398763120403731126660912471640012689902401137400151003520261739396904374562615485765218391530382855442670846404683707147857855298604484555205357202797945341294970739009594394271995770272053338942003133897489173019074965897229961683937791110026156639045827064666033009909192424059451258815844135200521988628499130531391235850509821863129174654196228355977649266165526887488817362329946348815724705700610248066265097323462205973990867033079168106180124559847343080219423470169292426626786095760663268657631647916789987540015561906633514908545602156136670127759277804527252680759065244678626487685692455113366453132849202298659276502886523539724312049781842115234080323836330564113443797320736974061128544865115102722830350086716271253944150583210750304743708509391383695051876676985173679354221566456244237383319414262291319344151299841400759716483075433410925931218338097407974596497059508949682496369475072707192375346965424554583786085474397087146085296397530275568353801477123794555694927379291430638707328944204122137095322009310272557091795671335463875145400540005582505994670946807498487883007688958184952553857238663089047626189051081353946347029093863674944161046012900042642307002797274844987715706007332254251489958504307238160937323610394088919181039249317849255798895589232617648149975692197032533399543613688178936125467046115673243316566965600659741537560670842465955072005664685078540214623566574915112223826859437141147498502520239208670677884651865606053746367039546417770672306700100454993803101594507629492653596544976661455821654080823095836189753018639279350395670560995094179836705958109066799676286431819165691705702164266660878143270430861358725220499744354707720790345319860398593304034980157814041691214977872817512785295287729010228506283259813247702723343571740984892895680367473170278039914525328596517268114571901827763245721074250211472718903458045651146695828084107641120495006492645103070317952695294382956915771113651439907762091632563751672287733214204115350918458005975710425878131645297083793020791693414251950612983347909504036551122083648065501459042396960414935236142459393463843003537040739380633096719738264838886597155911467438207171179989266655674378980334494348204244240210233721670943265170543703614456113797247024683047834133011818997185393294246138220026444943075857637051373502818036745969312437044964536250932913501088243143017489368222804169909742541140661657747330418045088550927911295179235512354094233921171249023525415096553758162882402782558295247102308682180918148323717903902622175476820699699853101685318390646443568627521804926236072586859951451559379313298443211924250493241677058874107566450071019015208436528651992155206710009762017308570666515598454339588422169114812019371972736139460897639416986345154877910715761213494411037056101834288186969524920348913081100877547727777102022687737866523570166390546954186846129481200554150372868039004447669961172011316215351881332895897143729371958308262373637878664415294903652384365049697801367819011453852114672638370675104973582768138347067888356632096279163216354659766095140730587529203164943535673480145399685835607665196077030748841051575394384701017030181945200894487076559765036992620457392322761850989692285222081787006693161805922756580052329551421866089206443918096555511142681719080855161653382390912453311814711654051006008951449251773121990259649733981411629512651244243881065018448915079429958435733077298974002794278954418971468697685330551020533828761951512909355689179109291847697175900723789165887563346977511159441117121255321536163182297736606567120515198062665572849575247858734412542193417514767623966442436796404950975860450197065169044730847134751977135030494984394264572337281875786757678668293381054649772021928116239939610678972145500154049525186657731226430447201083928112341300219413240754534737199795573752089061531013084545766425748164871673466744337391515035451930042434557251260888038671880585707713426113450455429052621840482433188983974585824282907620376887109035079426721123076431132026936225462774070816643417535071428130474907727441395378230617147272974538655022557874309868238106391666103211383549833806558836881102971945083258869156396887817195071344975319249278296380661137452306296040553011314240725573714240715381731776147699376308195046123880703415925934602402726520238259460275544277813125132531850813721013212648826216717344627469305556402329523957632326346219483606949877662423756012029643305771934357286654118218594082070840359339634109524072762551421869369968342179052219796696295411693835213927092898562382167346671642225376075348852063375663548025799201301251755221698829905129822241885196381844244794897656821214395247372155786955708468663265750929465453463073738018013275906236062050997125486947349534312552922367729862459751514926004610737022351457823876918439629565851983669161278481567234387772773939114894188191541947705528573619618998149622704162647703195362296607220439201899222131677728986729367829891380709913930767867907314907245671532670027383589357463189588542788284199755616991832034776544599500363830478938387354319334243026429824718876353949387784039107625963011756045266191544114389184903239918063836517428471090413337695644320565899430470515903255566074781873468368269321782057851328057848828653774077257162457353946683723115460907162374411478190028093798296773609952950153134809769681522787477740686585884719795894940690360612140697980294171472042913088383515990432514757627594723289651625850619406510881632336349465778521454313185794569441076383058968410858382976916887464728533253722432081242067728049700520382110785749384548022567413374925411978774265585274202426249760147473935430209765409380585419858994987457649300968826663981688612995124746666896792957089094183248924605924973849936031431324244679410025557073281785441054436136896858713808798489507245360720686464122055953838360528440572624525140587065797994586334292097940129691021142461090210801941140683516956737195392911761177119786031250475737254440243774377405014647677870597610207771668226613943938637632146441093209658555937844096583647578649685420506577133459523272831845626829886583196300620348801678785420968034390012143595742028344978130357384967378999270604827232912856326654232890440561178359425796961821548107331164427418315482662522146202802898649296862705062031121385142199468452946073450093166734231248489307508596464859918091214513949681582880479551248588665783578947758827603452082214539941341635243107804896059646122928821835401281850940367783197481467654202987071571086568634201943397326752936625953513627344326618852350194413003154277733072399067733652247513253566832113097548147590269738078087128160034230762043572551408263954728060510454803008099173122343487682640116486295399755862540037677663899955174351286996545850321158056345573616457643332576963944802483678414611194329576428613990995867731988085697924479939143720045607963209402275640883395844900611417458035085949003627498955224034446511823034871652121671332111232429902370027498257026832009553167710600105720858712290039946328010578841713521546978320065503723612448023020819423540802987899882255666262940126396599054682850131373209493437336109746240189359193581249944728190381288682825046299419929889151064242978290505596589417808245154458577160610018246163534716278669562875676536761593325954079566812030899084723955885570396820376611770448726337388513029876131637048108507665690042897913895217435721347975291279485802105479251837086388255285956254706912887564180419414940180458245964445181167473394971878478269819276013252226414415248763619139084896495757015034438389822909004923867503960415357964441000651322647862875621809447029861238072923697958827598523072714333979632459398858153488518074293914615551366183109333355679713637994915023840025607265921617387414088823837389626427135475306490218765407208944597906491710481459250761704903373901787795029592628366167756993998136346607146458414325865545655139698418991870708447813942436140900697145981590751331007178850469171121080463495886842955330470190773132486328406967711256552282177409110733337242908823096343963650971477781719425038490377673656795275446515235084438095447148178656425542535592370052043348337049038203074952354890158031705338205650003044033521960305011750779603931323027459388571369446382125021222639941935380409742067033589253888319300677516128209346560676327257299690028080025099520054528902861894041275176277811765705484718388049950258328526487223707476984367560922544484488958212220598163042672707921975838752951846614392925382482718322566314033305329404270845406268801693869470808694684507819680125490548378687584663872927413927199288430974201521394491529585194431787453024229349522481710660589479603335287102270971508137452347498678127640852337296696016097182558244077850660300155225402481072986191586274386538531279231961856472367065606600034355616551517289594966768364859604645326761212138368958310116280451803332117958299111783917450228717277142711382112168048226650994575760644793523445842450915920422069118397218455060160733836529014025090377676781573348878000329508697362936578355435006548094819350574931471036188510490936792311362259630323443315304999124642934080760737024703100406736835023972728576009332897924083869261342684481124981670629687495060075787814829384093933636147965739798554640134883587724497748190022981484008825002918054570683923000130758924202214210639242927715511222327517838128907514356130771118259142825445286482478295052224528192244880973771233436939872354971642490703745174194066870747382679550615205277489222852336215017630791408277518879254395781086286500479785145204456079103317078490696000662771872472005731326644218932628760865515992117152943110479415133838976897742919261943966959722638674971029928527330710522198516737897675519235070120783017440705398209272609748403568196622476326673040519505345959115220742450777755415797995912255226346224385038117954771933682031820985651186078408890244116358977818004332482312440035187247319249995840916767315421551050648705647013571260465571011529363796793202022862893084762357333630044920636962070722169697373584988250172442701185666335751822185915106059818015140511142726319205409289354773027980190391007229068071864783660791835210852903707177174844817911495569163388194640633323988523533557047165747893600904129429428705875409996159368799223711714506079506606240810828174260697110167177839490564477543674387355152369922513204406006509211521365539611868300560600423414641746060529170285962135854026670530694643012967246664072185079978920464308307402458498390743312551945968745769630299816691525623684303249537407073398786272605137131480349887547314990394717617358774486662430446469883849921305130506896411534106987648967543759608972253214598448712268925534316737071854292062721134757812923179964947883971970309944395823302063506026668173345811980755883890318407672271799509409823659314003357592400241594967944049242566114908767079007374226708567896275821371318002109216881342775040684926456900715732111698041830193800998448988695789398952254677485687444913359968012267885941030523946468803829691052688531853856277819560002128554515113432651217702584799850951291132462731467615511760999967649071983139159842718787920662544583160407449102633356942732883383727467619258733331086587204692144539025482758227111713942369020704204919988570173721888394281385863376268429415768570280836661902593062605905202920519984756211536026404009353935657298050005189402757252588671292846267859583719988794923792200530416143099278424503093518402484198993192367188471311187702883092058750400985534742546838948263764160539237748148818022461455520182459332387057551930307790256380208334343489281866818519373420090655054969301322934139850233362945787104802072439197132933829862521593248381157593161820895101199995317774587675275965605716246353545966190790617296696998366440996263326586786662499906926573340089430792533171053848635566346993199853984570172304298349360759105987989704156555800103251541730143751122980586106957108237031535012404428375220738523599592571353145757545445724346511437944830306295079962916353067045438631766400510616111187164193573787248214524812152995923076677060780231706546395031935312682892344940357238057304492522247835811607889973304303973392674844969033711598782412014172704240507694889773174315504712071111087104668529918615149600162293354850508663699118485687582315494208128394598558610703149905212179231314202347491015382277619038400902061077846472709915726085967633717536732082268766363951906672782158864560515175418768808361255557872692430609834847689463007960657768161270375499522578750903028460120319519202581840419270796342735038657877506576281337747087819148501825019703108837954800819765445780265490460029695532868792909374153834094384373569895423890701301976247387825794515350479282480581624745538214581647499450225878236206051242437132547884829159980857618979421253650595424268208953356730668782451580866784477154122624974220947616252198699596513423010182721954220437292830564320662382948786353644005732515292128066735513513247677960735021710056287334456949835165985416986058715866403929297879785690438886847949362402582821826410738826002977725928255258324140720516173773393493408688226625383265101019379828281392427570890809365051514061702265289710298969811453403072530135001853364628267151648774631212843620017956659078595251318382947229145199370846408129175558585510106146183950972957510674640565620231018015449236863319246664152417203095846598262550360949925121971904264469506316745873343949400706361006691149063428278840668848150766805199740669494238518816224838677256940838736387450384824808369168185708253774961127506715403299303513742791428367070879475602706488791212994833418517466949570803247443634614448861637391984475836108496725310227381774059070805294120641823583143715751664105120089574890792325766733100705547332220382996965545907323783244134730169689874024438188721216513621508113431811402925430237598790130364007576574629535446797241583552505813714594590333711611522585802958455820885799050691839700936871350970711551115144819724818389717288118688376907310794774247905586421796505644729262068023504337280671516202738147180250668449702509727062940893171630882060258176290157339669461020411764352136196566128031705386223989520693665762732209775058563003199778442894754947354972003558167117500189055630112353043381204552177355937102373828351067313435424326384000359784230620191727160770053749362662978328003485543569821688180772260164823792048052103837970708166078790554835161109625405133617617663101312809167762395984469684456298384402529802035152072251647227763418167873211548860781444054773423635371111955132941673342680749083572991631246913798182773939535994045316803036339478784382490201058611962782250519765427694345417367797200058041165526628880044939989408926776232639448238413284841700119005863410409227014437059039194031037343334989475054316295580701532704596222303824366564658691418974266361418048081271563200272413482955185186110717065083050051217994723885062945594249029630924486974028533846259533739132165195057330981198006956623849482223115974700058409106964639628986241339835246166367649004231574195545451844243078663913701694836210169502551024779502514218241940980692581445031861576731824464688570068892492404131777117692482936189650288234698429385208768571012087909288462820044684055190224766651973890776190382442150205776502109382323130178371466094037776558810252285141870465381407297591969427914214545885619397244778968724763638073506355866319289111180984589601357923868527292621003898817779239491548046899184420398758895472039738966504885620661388929759703180186700991558289114155365837740873033779891695255853587874551076956835282479408502217964045524761831285634017336700263323324423038127198171489345762907067981530157429127251618596199789970242878193483439489916782563953921261990680019464894048035322441144061971718338912865485177581433309169569037845875265824191236911816312553456879593472004521200309583706096675561061707694547668992022577817968636903497594064837811752924093683097304924872159285149218936441727920993738381302449942673149998802462672470433933952836538894183427120692576461407988808521539319057798598699146449931564412569058201457302351429578862701166490097955575023213126171325204638405752793816263480043060553219256921539208106098723275143638970964506546724999869068344615103279884598501401776691509038268014521709763924452043414723658462553137407069848942273589936924227907415380535553115654599818001772908943527282321134607549176442938165653685771326077074306072760583990523607769515032771755353850955918893802777249139556477761476993791342521244334827234680179615309831208491737286460712082722909800355138586253984879372778224865496574202032361317627585466861508030250239422012236988126157554087077759195824439596091034740317394048145472936704137261179311691005278373938120050186541182398858196433723903867188104832821440512268840466576223092874534745408258882512443400792069862592260860062201845313248846155755836496459692322527826235401052456431456568391928587532060926219700057861352431384209351898567866970434718993757866699123330063951514233790414709065684261465812956705122889799139311553206630915838608794304958209002066610871444680412360708124287491920874907739804628578878252772697483427054089351307474320946906068514293748694947566543613669697042708329431004542251902412692001916819256636872496875213866111333710849676714990795047431330044441095295586192732933319326630081731170843971536043361518043116654568900366261347537235615648175562960356312738504371833439583381899185081875556403466780265274236903804813736239600461701019790170079236377499377193738556284594038699407007482880352343593323557874022105700625148411856824403223552598196599946125335466991152014092389038060862405740121155699835698077869182352787107014331286226169107325854478321896515559127153407057489470197197015531554880950419802853216236136763028656567168216438560392368357547658452627587631265218058684122706883741684773109781522361079003481820935380759469871994451403448934326587339709152291294167762502312935320411500649441380310098015326437901279683779993762875930933616508977896342317108016439211968385577592404072134513241407918533030327232186643032185267643376656815530262352562962457454491631409318434154593798394934256780140768456850061894439151711500944187518933515387687927238556560354269631948544281189990676815538055413620863561913560797426106262942609826674456180450440880557348805422980632604724146131901946769970244152398079920036325171177796728469827090632722747784794725517974936745295909596478585045075305811567054516423716202964251782735746451376450693507802076908301142753405271580201787460218842543311318948029141318252226263810832398437021232531022838644625485120897373921214323245261052505791890657147469298966614368973209887793688376122855201259989322088360512749726927274039436693451457955203056030636320718361861385061472739355826302814907566986438681784363847665112535167140538442881638809142581653434075556984017836549057594645155637873994631126918321713124598408824861168048838160992655875333561084327584308564867408351509712393685150412941843746915045303588031111533328515853921603875181932131561451501219495839948017891964817443199893564394877930048059973375127693268133985226254107587092023920465444840654595562916393847073828217685018482770807019465629429399407724854800972484183425470841201531360703887054750705805843807285132219994346737491588693395193606248764269000668766480528946771951071795291554666307476743692198169132384699315703262338410670951542090841974066212567307718780111731022086111735669106010665471675959281478408211318103137554814508593996575244617796933379765004195872247064237644399021790915946024749766530248981499529082222252818793338213935520828251872878843676756428682669194046325622010203488765879470508431039831879444561795655708794641188827747822635066965903513464727573759265591872203067934432133785714511539130641837794873229716263045951920858987153332302611167263187409153415265481963205977255750213453606302123098519335098635119103183489043500162025228385520788485665573682214923894105685787452122363068003313818681891180709805892865424499761076745686347892493250437821697153520643732866184477864845082315039412473237394881720213796359719624508721275668277354448336441842562527080095307502532239579842284560778336712230758864867768114389682978914983479601455144844441119892603398541242378677909564232852540941873851969395205535330530774004292679140478738641039575719201479059654841549223596632361214974173978815109799970958914759390597989121234162242599532602913699538097756645499708110917996466024979737675702020123288742222364355150217661427721475531282276998688042217562769463382430523055591485928636699438186992029938944147925544620260224653322123735912258752934386249156515183375544777633835710133836174056851957600066022183113412804150315874072007555657259379047324780198343331219668110000730157138493121221346089212009400346349644573411826792136929262549432191759189492071884588424986966965043381437943849304614878908204003946747490880131834594248633959545044467374126288223708418335282066670520749395466091747379821075328989584692559781229125682199623058503256147125214398624049020579639199181767799707524082494139923177957820781633916188112667833872673926594016818239971300749608708448234417173947132545385080047379572749228375593099092884294101942304420702681349415656323606368561858894516797990372679068980966635128182070528010072299577697651032815263647791228091564376543011338868984627861199640016222957962138134439792163704797520853814906882601314570434193305360378716093493276432300090733598372191025384075561884329839206557766147827566212256184255011330031338944002799681765355149314967045578537388887425780245102673693865311248946885652013409488248600811909484026333157623645231015365829161214381348285752613739351430220666579692570090365674945165636707710220949724932066172341528274726367167206144667222421104240950336919444107592991767200351992678783782895740089027077068876133119254148984289966221387073004412652023977169942404905419706528967677729253451711742764391124728434263145480537471488228283266698344545390803097697157878790589939600518399085373175282271561771291925101378800656819648532895193093112252354649527810193081274094829234949563573256055456370269721213653559721922318657556358252636771028351643227482571609299081748495404769498821954358256409618834287024731877795728832200216990287227323808325964965445190182762490765087578926320681798109382422353825253184664206602608733496002223938430796550084225732699462934115329148354132465302451564510085065341273381739595211346373140856951590555108272103649688513660012420126769719254194861604467844543107802353731303464765424365643106910572339017416340854835362078605285115895259944036511604303372670709536225794552035744389543721645861041165344456506091227287343435513207342857552665470269835482137673923861820007731746498319335843947767122965908809881361632197538440313302515402800957608182310314479333183492723452718849690439299533388945210794724285821122694890666513622943368058027964191910581375988325761379892085082222996492502138044763880975360633482228880533528775188143548992451067083567049294973794787735675583918643574615394931265429448584990472445411421133463447772976836284962737351058173246999546423691693915964399480065111272689022930788902027671300310416024154501128921313264691733691461198398338903599441334746171530974202394145731865416815742201546957187770295908764273044492483097412402214390958016687051696006885659328990906504524291027738210117016364026773039211063018761927502247347175678815869138906666569387147168660912897864149214019291475359276807436967067170709110674016754774185276470072513290124701844373167937248605994819818923254434619428158284769759141486842426438880443645373058887224467366431192813473454957270582800232816954506388195198657213494336383335708303676547787249539719724918619850422899422229838335008502906680243067572583274198558371543764863309873469491437844534151483123134066668500471087082394197422655606261530067021475564272651106480534280735841573414450132572433211459409663275690524560378774862745567434330419178148924330718754699170137700242575355615541032819674807503520080677859989558021840351746793494577382232838538582577761935798841630078964756577987064606914150481317662759494351662508212711602361691446905726731964870251462778513809303073160704321017817311170613120343148682102917417713265671094057886503768932171855887319267980451766222674191359721163475102200815489411360140456258132958676720165916489810560597964853399965894983536311001632664925960379199686431278195409756223931318827790511832750379515242504264715516548128430864834181542571365489359613410522179309232360381379635740504806858331505955176509794329444593655619514778592685849039489413269739784021291517059237658581814853509683575989974001036092441998848841355933603162255999405504090035886498869499839775789427925496741506091404383099533224116000475277162024526807523589681947470612664852483531913397434399438423799730010801369340830923150889971626090360241918842357309820782867189166533407266111207258485786280792438036283037115918137702475727533688019923341255128320899124416301660567564227512816258194647322797171921898928105909767491521848587977183642592637080358758719813802389303211296399096935129471888806749664512920371082844967239053747854354881489928995751750632095652105765956115765928175438831461152785293945163345989249958712909558993230698757090302835758318968878058392643381265900038641300362674337423795137870291342348821222149401031516276758211531915751868915620245233362297003812783027830857061816373007376978780408752219125904494814177172264548200241351583553669329495978572203057879828333065208282077203786115369503140190074315993052497023158974251373418758229555738458229336591637052559572125512993854964103296117582763955328806890161227263039149757611577054544796995179294916849107002885317513154787442874754410633872808296712422776674240034833298954819483262340910252795820834336538405421380508713511664502343470695777130669192721508502680462361337431138278516089110387328682069561293021675512946080827224522812967591741144945824918558056383425776156760737773831539575975572398944057257037588663239561830983943626271232847110945368799655720551767042279219441952189006161056632165227438715351704436357205214051923942466695028284924741364216010919823372675997960907790097808005255195757850917286163935115563764367567949995611231786979115871857678159432530573960489434339575599303275380496403580435613300895426074591813634196996219145505000527435665301382095680580447890044415358376790998159508212481299057802858468278954244272613549258810130544710406674499197018086003210633890562383953660132559636308110449883656200225907385290971755440805429241987857013592039393511523406602543412732801985870455169806859635809457503004830273384356036783081045608790004984870596131761493777131740634135503714168071431296060548079139668436033022829716487064347736823329668253802167820190123769724689559854265469410734072794466657176059153641142945247892089127133182054636791254929182976504879639858729005088736553209643640599272509657752848052340268674927667351835913755722922277330970809408309290376156240018215515280134466224775168828408266238645181218161967401432182742004777644501888819582621060455066903819559133775356677593917021225395578750336091984874857423116453035268677745617677654524066363509699869131744545366818498819258111029928295812697857031552049415618350872212099030323653118306396841882491088798025315999985840401318344724653614003329325518842267231621455505629132831729567102204723658433864025765196187432429361283108166214346128213325608256655451784484189576594528503834766361967929319928955917691757897203558521905121260287895845097717201834330507023313868806662348488131681337327440757527548740724419214389922457614391214265848281835825808052275304761252193966188132748493617022204666037489245472422432963807901724711607939040731570407220505593056562003851935969881478085435159006697467910765431727565457160681083811598028236191113327779201204672463002882154875023607079128360912784917894050850695579884575916079829669709747904256708368913950296406712344514773710656820255415996133566851030847819416437265540206099543587242547053362726371233052159785136512143235942452368664920149948000444099237628878284535559832830803074034232689940696185268902133831255285007832041088486114377335515353550430939644271776506448698891115621714153810535022439140078383544517598236963854002679290302115398542261138400939080434479748319296571687855116745437949803012860062152726473782530478180472510925712605717807979646393992179724966905731920611364285145933903775474731773025759714062539394485003298344310309005486991931483142513942611603626896392968105670108808318204374378357282677770170874330871613942698460475489697252169123825530237202712542805299153108237717208820376170493387330139793450179988992962124164362937560240552813545292489011396794277173220673518742739762032172014155285858268866542499777227803667555206616614996864381817736578836784965696397915600524217820446214016708987696478938279819190112766791178645040960349529365355325281485405570913827223526174585522309574424377652291331356609825290168133165222630124651841390340167416595259766725494612047933637889712764180964011241691871749504828014807874681601258090942302703760772095760548319825591178424999811315860990001434375088784947727736956025906696825780287684904105589518765450524544522077393797731247352432086858822922693642050083833859582786153657979277624151367317082352020684181068783859971484444971940901733851539988406067972128092657314240933349825583273219647611209204108197695035177332891623347526449441133306698272520495146704458251268154797448750494394707362482592143463937560241323306864828395986607218013146650068715832967206310629641621459714917188490292703873023868440384039002243108109231661730036308215110671664883738823989115114077303995743530605180369341647780801305375443590493014488491089576257135326997931610566002275493144936188008321201632605787452004447293932222292895128487739809636891915129728035684528755208703236944807939592744949301977247024943142802703092535944441818617068850644502090788929642945795388905773244589261494615198819450590611749770177227228038070245687204653392121588015577804609906918629752934271731650695505453391432728957683407900900186554784170503395468357654775551545590585329927662324167904229367503380477343008637452385324432057811546516864520725560280114363334730751980104602888533540298655386610763952140663158161858972257130950588274366479061837806345296312025053288960062281233025038570665815249611566199543417248659346692609526391551556017450299356378546905677317380985332957501647689026599092466767786354719916618752690287485088666293701164947190391203148185177138909022763643696804376099479780218978997929653330877096902859728147161847247444435671731786440417670002576139007288536631835168981165982900988848133712514040205413610098085860207053892690379903069242054895073555842628355078935375001505357943125821916914710879598524367650295585807266409408665709485717236266393964905181754388303657136225838692112930631225177480570858618260817065032195436911466400441931918180923212985380777151902406338400101019411396591872121243783961564380158494677802556097677915354547731908105064459331309221958304569985152165984524592855298062500799889198546668595888142995048698939760665679398264557985179663736946283194659260827421038704228138945979180051410112536781163420174963059866534253892931636070874821605932959237791268282665424154106497580680375445822545828171599318636811875288880360932309384232553212075852883928666687736485773853081492935572182281403913373519319218970619837195803966260882164246756172050990442510190832915808870490307339826918907349621459680719196216230423042150039030998917723933480818262243708311222671637400481473554601266137830007006617747491823637809691492146540769620303736082897274931706656168913494657333407281795587376713720910492905656085069100107594724662469694060881757985003132951930612887987803379775338222619791376132617440666374495607598718076610874009583231424204906478923872148233652083115239330094733373589292314643330873367920927086287306239379944193560931966404308792246287664211413084911986550606685195284410706170561805801600825982801857431405530682513223027847073541239653379226947923318149450300232559660246091526975185939409183215708719772538568375852685755942008611815086404048868525761150292267755972788106920614493901175079730886123432071710183496455144652296203872983556223207305174527142577991971559119261984436020501857025891958683779461067972384246618105837110381823837034557895288854973132808115078268799459675897747763346908702903805357194897091570981946425674762400537217641368297201606241647364117541937721241395120366462564612924803845963005224103745254227551968444148351006993648698450861476726188712477087821864355451880830998898931339151803203137356641862852579787481064549805219027679235924318638015612895688301531877777791568655904545600176781086677958305169001354440024003662162051480887211233305842439218934284964945659136956691879394123548617703357337987868369386459952594609657232165730803419221382050065416158400390402790417453555453522010501988288861421947656690483333446787660909477061536312790732873713009113350529085301954540173112822419903139520318631901481173764727992935270033520527474937645991997093393200366274923288914447898741754889539007880538492587725853977323105226983069762777618579562158442426434240483389066741279414143909406894592559354402866735993541197937789188143156816271031328147579796894633044866740305513418732808504087729872372470415066253395667312569177044585542191996434194937390018866155359556669568280216631678220204403643021858714382577303281074242367750795647206675369299941454301117379563034241365977679960334386839071397748007000261250344885160843618455957413211125339208857873153728635262662336057452298103556112688757359955201884402426115328431424133923529253911517794297481051457296959268362182981873737718335239578118001962457035293357831260762907668500098063420403247915217426025003377052722623763081299784709594172443479666176546295538850867443139596274173265963062694825115772942832048499360895964276163206267358936662456226459507600495085902043801691642011171563863419280096624801066178763677482880655653040574301428756139930868875869493760980364391311112168539698847366598123984383177304539994155070452189881940508976621862531539209592206699391446422487332603841279607447373722719700150045000317960348065224089008758333990201496651181171715358031657346310733136580454416547778678957761133522236204612236614886139749368067141916403458440662451332854324472231718815432683843325253799362582095454785650805709324877037982182690555625810213656091164279592922530575919707999447834780061271043166991374033144682882389714362119232244678574537212125549889239559126481361574469535405659948650690601440041127656985742002213591638394613256062453525356038955105550061326409311830601812616100320987511074928396009219425996865399212454076893912766522730314728290285352194982950538801438994799044238046644670425874811490804843223493201220719678307948429195134334254427062847190753791349697502566568625480254241671285472021378270217183145831586491805151085078610454487155941142426887728333384121602772136245985219802219299794020452940409000363301690221799906439990058271380295235037721494699593077498252784551137236963511058910581480685327988638438261551176600922696231720577389663063418896702089699424639124114888500576042202092909935671396815167327100067596350198974620399537416050616809328545477206455805738326596333560778493229980349860456879271244228502506553778914715820988190208692589784652655013279979554833468639258808898511796609834748574357991426487025365793717390507981748091007585667437901396125660739296333221458439581212534554041572341605176094993458803575721046972811094239201501037836809276799373418323706488603186608363495181212013865902798002064770954260240531741516848488330211362235988096573903441482157536816194977026250023689146112075687772722135833162425481222356111727822158053971084972586446727831779497962953726821182780313230850716559030378591384686737888327602398597792359242593384303784456167930295079865366926055859617427446531647997330655725312711970794486853179901349385000550846729095085847498487455816194083842449062546145390790593711818571812067856207040424460086227378705537310563040051475359006362970192826549209519027284259616687902684785538000847618132054011021508880366962956604220681965879756579285426984639622912809585062434449507920978588914426957765626042764367427954284181529428179178417456654955895202295607760431058826251635230269414917760986043539516607339812990997862338007334727888315006174612509562628169719292564051250140827689994378077798393734020696540780204910316150364637089244671210188755386273852117938513877499332910833210572156730411703682819075000569678726290098134685513947388890764032032557931652443317693887886730353396359155491544777995296448254460071961535380673252479360513622764379802762753458776034150523680706801359956136108017265099660485841314808598578934021548405227298533235127351251456114590942308543010502766670363670226025765098675639490545573114504629657557506763731046433016743656173525248643438126012055623635123482671150327708471336518156607453436812372555941558535690043676909662210893549553086105872563778584975990611212014888196880413940580637612771493318135135198982344456652615296992476743668467630457749456469445713811432163850740735186134717141392182247666310872909904086225626239067960139832676103597791957814108604090898396703780938787721681453934559191853224862608579244583111116824007521148744770870416885567775884541144735219815570385210628652418290259108995239575676028479008104471932443451396697432376743575331275580615909215392300835874516937612612159944499185345774135960244199234439127161343317864208299778597580255985523002224681914760887315929674603677317603766291902465243758894017802533398230581103642341582948520715958641623515915283513657971454773425031340749454754349702584084440036589931160485657524438076076906391664200053957764204597199675395770245582252791252727572687529139247271532435355281244813348558681375605537034807979741411646677485727356238700073965099247457041925686190252476647273472337743947741909720412905356839195564781789532395185712504523034207381961355847790728013667177129705726178671859609183921280991116280159524419917713822656637890244094384513390453860906462283765933243596102690600198203450790137328716351845192386165834975243665543401087286344468515009687833991538257416787551281945727805557645238379966065878442311531199853231960306816658867493748755839749609120148024893628951591526670421756981355580310750021966810629425014119631902892556050052744905696197025388151584881014086285533990999320489720019111448026261867310745399060234883988891977569505364092236758332799754445537659888718992632207747688417755762603085191738176849678665490729025020827273141778286903561919865917750598961595628078635204023376336439750631923052081043348086364122399591083821484472902934216778866377347278505227305423181285518018504746987437604102245884811856180597384798481490939099213019079770295010864388920728314369230286343514807308788729325729497663069586365848548740601442682561091468581254609360425390917449655075971562587851164544598414172587725928825410382341718330757021339334549401537970397289970175818493004051249469334467574545574371965176179335848790004057693917998513020908004389618041382910392579842395572436838684291042588307762460901591291304006225762456600541282165441199806325290326844312879410607643508665803052047811097086976518644329896253005392002641030824186342194557439495516987966847117256868531792507696661268251909218254938674531292812311524829676471683095415546152157478800752439444056421005354076866756405709477009882011812065117815367345502874788203687853423659334109275501842945958230591517737256188048475695066247328541249769916741546043429334479680905736371748174609682295658633627032794874423779091873778517682152116090048978375808025559384852663371832202702393077239331313053847243754122812976696703342880958429585909227100005907889490829244629017131099044548264673520303615868212548213178974685834129352750502632644647040056766233631906376657294940016430407825100487609232215008223220936721338811679325597364625289868771278789183501238934631291741752217359604708027856000486102929084551949885136236702325361897229964890603239971841793748647164014420909003262938486474317616980232746124471629198177702384078317337815067436158103436192343181550103901152931557419862766889957609923812285262288852793512643189101114680197249066625502063205715154569843094629784733455621566257801095534725877815015631758185862587925954944403470615179312652906414939546548496835531312045979322642297441448114135432087425698614158284881699577809808328814520967250700883171794887488586154433788957295416148422186937829273734474504704638431373990551299912348906821187094548313214713270551460869126117302280527902009361322475532487795530911600883160623793644558464093019712211297253137661117079977765780282428925870042872288785494944055418677076769368885089087055358448468294076268280508152886429524193126524322106243275183232333697771195158059503217702527178425502852008690061173006862500326397976948553986090681528950531669532124238089538932171281128518003840035083868791376176956989141981574739853342746857763072495688448084835056723026719517856749612902539435505870566670659508092208502488313033448321442745012207132739572792318743121953693467696153701147854759936890308721035457728344931500683385704982883880048785596408845259390852615067992745194663395141127130981926848872106409195252059201447306957708116354650701093516131961900969150062586769960097817611943087184259802340945064904651632445845032943070373410639180840980187389334505548208996341291765522327444560116898585902988210547918931729769744691865087107940843232339438716370346084336904845973577867273033994063882363810199683202420161546291342211337591044196900052899871446369743523243532716460779842177653606980479942239235175482702328088305455533448893555703060137208823818181435168264373125405733287204923644204086921845315330660654210175696831130822304551227531977200716834279861991025911707525861034008567271466351285313550840980500456331073186936189772094779937064546944858420130271019106919164647379925819072624039153584164237422825576235009489506407959219859664461581238981278669976941165006081920730358598045760772096650573122608093412050438028950723084779185782473486652067928096233500355769831448309207742198760083772959210554725514466827516470025249050916737045701184542951374178904089649708719471252401635123876305422745014066427907470489849073142014727566472389496843599152498531695144633656726046008214681447213568142102431418247913777110422271839977728276568753271556755430737650674665650249626673967883765566285246121679155996111415170569458133853447313475524204938857254412328320716698448414508330098525230399555759415229280511922692640708117140504041613337722808165409781116780024322408786615731591813665603791405129117330460717456087586403817736096989978725506113154894763345242786977150864887025977372115631130248325064162218517372096813200843968003689430498133897716037168321171316195122889101037888880850041156697530072887791918898518233220212081367008609778042793729938156099063476988438059348097864208538463987141651199608184329659570065197708700464417544719537081631367729521625935971778512094930630396819539403630755976387136798711912084958191780872199593611402213286692890337501528083847488534607849058507207130996430892081706464366439061514899336183705798577038563158994480797947305051583327073854140381270242616468356030577282622490339379763953712176368547532768534439562660185664301287335935049602244024830118214208689809470619847885336732432175193587180624508544142219765542250765330992011998940487375164016788609704223251357429070260744007194853907140130948455728019149335202739831556094973153991869482248126900608514080243091983312179480892696131219370808763453337399342339284161370848712201767410701246299929494207964282359989252889601276087687937425026621929121114130090192073065009397792820266236675559983113476223373248198572756461619788339063634053479631742814899832604079597018226411484213844547574956363706581073464055670983521307329457147401194841223859444435365334525389300072533290460082339523243602340005563604967005829727716030815341683918368107140947354443616016615987577696312848001133347189430066543544409946989534216546118670247154640823151642451325905168830725087369914941821248056025504304545084292276531409847044422047407180999336023765726825150924409107687923459400193179567594525541048732649284805753355842995926876384436752143463687073998249017854210131291598287736617800882222465483975040732237528932647521149032252910236965366501823842248784869080679350388550146978410917030201128104258769522560092760210573251965439754267325777193871540959559030513577359587374134412093209968494512136539082961774164294830153637022937968884133970890962750747274135536981473064814882413303972913900061125745987344068526829864602381288493764949700957986892291018194009348580294307379254097564046820946645791746016414731695719751114422165152108918849258420745182879382038390905828426243030574613126490265595161099299522222749394191934515441168541325326071530154285053280674013143271773183193881121080657432028727406431942446766730810867773235257689698922624932583744848708781688801603045256974757298377231432254875144539612680284426212525875685519732991817290501180605945993919037421406927900624320290188928702885615873697850836022829943346541293228325081663164738715087949841530527472012869638201631190905156606861499297013993611201212011882287878770865107681597160505266735083393382464530623906560339967617069413438530553913980581707675172838254898398801072158982304947613444816495403252219165476892332472865907260972203464522990046520190403630844999630293507111891961425782176664650585066199260370385536845943562659725935706320155144874092418403502561110806297646891143752377994843014144421991835855555220001225423717277282093067761021851207793516515126959863875269321689222046465325992468410907771651302041320065240947095516275842988355684753452556304418032407536916951150272122414930366765392244624681252726667729173230224037333249739561636706813800700070220809803525313787498036605402927288403636057065934652606451722775056211217603136368648994506257035012547737156132659984745044161937431241721299196232537506445074405785141280561575371238372564817391289578403999595552430006711335961910055529142187460837820828546164521374143872073471916058770896306527534650885088415275436484392121395326933410950313666352789259432037457075143166539254328014724236538624397055096356152305785690818236969215116997958987890011269409657168523849420635303587444058755991545802228822785191982833185484601920598379565920572210002540750121240129208080877471817871157068447988800952578573916507166175376866437794297004399283805750167438787487573466275176125923868022871923944616627937428390797042567891427057283415160336733156533381307639794598863498541938804270918010366810677402249304245732751087205368012178951780464635550737638313316896162444170104135354193534220852231901270856232740915734563846289414619541180908714436492827251140841369158009292562193677027497892569829182202550168803938971568880634748366174372119512108532357300798829201519538825617539084802236669911472588486486412709439228384536362647480085452409230708118104394164831121547236962466246839981298623324124675245591427631236227730631569005895041170393786388765953773189168645041796959762282522556603442380865831443920179721063384734644426681838132915713218995001920451418358820406988376028660210367124036120678908112588464980770378282479836133447633756170880846789625103838223029450219153540275446339322874971837515208668800182968099339160067763826138693363199442782189888821421853476648408680362843612981354534738538416067793967569852852625723057003054811584005280303889578234763098002183773187031161097001548795182252572388997788937765184228985504972833783649792286228409762410824512964156579820178227847648650472369337379758266118139098251498068511701487680956458504171559909494574135326373257982439444534016395395591184984366735213096021494950435009199448612121346759424921930206226578867953048192689553250916682868095826344420395981931064396294314788839100089139222316519740411805771977639056968328960824329878091193375916974444484947234862520255027752567442883704745729453497103566277871878453948452379347115080586211474000409713050191426154044998752167458958508371287903966991229394092683296432099808516364667049573693690422451835799268387735043639234946584463946444006666348563515931212404860054565961911753726696601283877715944243332124040859304245780380290362550878035653822555890055358723388199191028294676640675434053441720487995545406196739236067823092517893065544343065439376066343177206099518456510787614773705551624993908002036775020864096576890406277257515028105286264497710911284931545266508623164888911668933026529159474959286523700158270538006214372500667843013497055724995894217002017919664115689530008686428320844861688056455829613730632919543395750870373017545318174518456783508971129076226143907433558810544008357448722217328545769286486913508947533096218085898147389050247151102230284118239739993475528074928993213488646742148565904030392693539379614196196158064071588799378720370236515158788885704384926361662844143647336754374326259776707101434507419916055457689490483884957334271982365195349615946926000184806263333875467589352534921163170615600232172433620032794335766426758608135456896014686385175502776866400887474301290097328124750129498443824789365941632938183018801144085058627493117789581606269278784386273914273579157820172187356604945644600385668538371835733604246691950556164155325177101444080116800098598604640673970107252893130330939106237777725171877802689001951118462475645535710504074218581762706562597221854927297095247717715193669983075666270810467939685849256401736229581415806213128001299240837677877697331849692821348329954374624322830065711827706230065085379237844402581369863288679006271911132244951829906954632634111210955242199822537634741396287154099007045766582342963660873084590849724540533706528298683017355815667946062313094161076787324808345291468014970439261210277397642590102565129135439262492183387541715162643777198203649866769835935133375525390152998270076697065590217039002603055230100057419577219725206175977478358301038342857933550887839069949002017671600461089252441384249530343020541758625470087993230662062571506891310754303192880859263354577079278705009513341389412111004609818579685234771793712669990906290994208162741724354346217187926046753541049063346431699060699732312458266422655106527103046124537679498601753273899808527878535835844337245047588006612114302563479405462015981817330577714126192853782991098177292390504250662809294426218767814466385163770504194197633308064644298561334079197446452118736997168514711482342346362185230332767519804236180046173852984659425675974391680201618742896063153236654049185218852698950288707743989116265089881167463452495139533445639163582357587698834671526497670283621656638851208720820560537751167784146354827407418784801186204084865459860226517943817923623557382093104349163529101707779495159846528203303699564553964153950171371478160675441798854023569592588822642397955836715529648968244017791789315409684035432973402492968271791237732892224630047033734049899782357334906435308344609272504530952596194455103802975119966778897073385509607346585953000386336109210733329923537504555638104788252901476224890999947946144171568215159952677779402776508905383828358249718306360467582047334397016198483053464561502587430988581775560691888140642720243571184975253082526431327756999315612378656599643691044245265145459127645195981453758291186672618090324228133353198747549208654730850926251595926103337298652771559766838849208664175631573254560873507793100904637763699521097427207371555506625289335141387995079070175125989832240855154107991479487520775243295340785540849728364042553829856299196324735750469921047469752634315874650145494482048413984900640719439322297008437612289438945864821828653941992616585421407075970289664725220596035526771981883314911501043461634987069108967068782882299799758035046218519907434710113043738587825828222994867624238783647897784336449541038505478236398060065067209301975543653403708951015094777496370115099013951746645889796453331580394033315845960006918619838676406909298501362941098400692777528188997850578400144010467983039401890067903005169022340315010485685721041080289726148946286133510829682277549837983562677265933235503388667763452349816918559596419272686485118243769820457610725956442538919499521968027484483517388218414018363146611095955791787585504577375748056591571863637929949222525971813689444908937353194156366393487784922455883845981439281548135835022006092136883659271525168265100648290800945418607578815786226957842162586711872352956856213494923742195632771044521159333157760103958466161776410295709528214094717490692529460814883732069681261336143922218725165683051111681093260296657096171386393382381542202859493444117666242521791207682935984832529937507009858601563363846907402350016554735285422047684604098333726839875201504745876763677046585942426264150112700951866906157692861433225340147485825118530524225442928891360419782972258658876946013638258490537947262395007154937223442843116331275418663079849248274077770186758958344604243245732017815455885240163146288588842543756480397316087201769826777293692482587670499013996126247342596113354691077339053360862914475576545575264275160355992779352042923552726058244491007820362158573917824634184969390001735128319841403335861607789221675435464608767259584456973202528816821423379908378604634211832232166605244486807411013329176891000666804337771261496581807448889572212098111695883959046466307242821129841962479398315917189004623560541242913503556597281723915557471108001649422420670986334040398548282066673879064650648432008613126366857235108826547367470532047769216362200399853398494680786171693861619643356337517274250144524086004021414841101899499621593109359047139284354736637993735362138045224072669952423100472777357014597063303036980120735673216937224942893196733892200150619440245856883652326678721649217554260852492330457173118943014806971564427002301990179912847043233202037126988225342965309259804869753657260255330352417681752256833086076737837670382654371071460365668931278428470387295164337983741341627135731859027684227926254427955083790298892214293217796950071276549720497979765891513835305228170824843037376708134239127881191490532075670091698812641879507225942554372686652225381080799763434081287991744052402702752195455024772995426816508205567746017124835653975578933931910974842346664728081124838058503931413491179230218605159664778304406045975986460882128791210373507958907357843636413958370154426427601831776235960036679977746647857696409641707159214686509573009595391602843475874303624508697467514500209724146468852461381448920053793415249190328187402608724865838868809659152362692206923202241956331424866809527279843632444888225816441046418692069261758963490886032561342716232518549758922073731990230196034087270069135518223648112778713176491602212508161114464623844791445208467366845363112520361880749153111658320536108671820250951232180596832300980312073114917703955551927606873899615992524666894852207828815664123057764869967084348351559274349981830958413812030627775383433442137108793050821341915080490016082292596856675492072255624334948362744305042324246809060008410499656101937348835182833558565440278409156192554523571061321786365554171471320330034172223820443558497979310646960430857682240504306481963541115239997746015474672599008604719274794300090979417619860853986715111507330315456142574496566887700634748267363132281494565963525335224024495266568895008370251605971032529376710867857162060388796986201195457934996851710416741554357610818628515234920223080525691536908929397456752697419930308341004527653625862802183974641829239137976119843165165168392982784430591973859723323647696051673102676755290001473462991213896737044361321482906546400177521575341418464862982058559907044227606603281002488656522982625937625202759120901647360402028925702599787067246639701095597537991369422787854884813112356675080843353495796572335730832368417228625817178277184184486191825991421766436360550582439918211065258088723168047687674751503883671819016584676015196607443754665101089411232738448886840467347632625904684220212829175443421877011320990912640711647728592704926219946901931713673985112459770527955688936319697827892203928496394803019215909322845372794695687803189025341743363367494535331782208507189704670228858707685069739114524107425246641469332578507990891327772505857322555237562708850110778707024147561982509880603757553401409852119355406057049850989998429777445906931203424586512708750250685363624592520447879234133978278882344640558449908636966460673790493435116719103951482170154044561090706155713601156190452395649244227390382388646825676805601930790764737553674181149238055520942632000911188666827975015308615351129958112006659704636975802224377378365015564386205369809385642905415972647979249180868008583832440651638448001940141535070834923883145221339779134246116786275977700259791104440296104165816927723972655048016678498138645593262047423295157012411960023688657005951977548739034220219675974468306109263035305138010085736589538762683240740381025460471371228320769481822261976772788254655331934552486724268967890919732176331727754909111400804566089754383491670854640305089215481865088517065824832698414448006311193096444393458191119380976886228702470833448835512812037012628613489094120705774108793180026575789713184474804662388675477102997512480714852230368644159348288111944108264482965243202104027630363090153080708071292873017627575850655828616037918510178996021947101189419945841840880899796221581412143432806346179965635589660158933084766993483830062685428206370308088914577573344430084183185079400251508355781427149638262243879185321848135723860256197567168545222850073339984399023488260037901354228023880202410426947536054511909493781314158697457127173817377875009873242484690249544107001982951953222112615481753578112638076421967452506904081256137675548287545996222781402405215763022138088509114280368770554606257844138324982116738874576793938966950958018947897197863010400151155341953454975996104554507627872193331808891199394540559476479281764662724848277954522262048279727085657318863280031962417290971579331825530953436700608685544316534159249779794234733027647344095959580521523896355611994776867883407839071182923111044211555096345100157552195894766922066456940288279670028964411560938301667937730868476964733827022500334876921852431940404420347047036291428645673309021639914326342348289852697373401277238458435502083092415573183159102332366774841925998512538135381282686521172350918546647504165289827833838937842347636909092171598945363352714238512531733637092852385425240034403504956954081098593101043282613783676758933701968777571345327120804465942473928277095358769502067347018750476331882351105661875422303627970222459623809745001581747229962038847525845641069906622142843229665516140536927023796096265405873480643828327788658187180900253705175521426953802314333647964582384190127069855073848711990858842555866425847417509742134005010667316136863897666723616522743338929542569920966819650943498852221169355966168661071985624957532667183818043928400771273548654763737596390694589287688929507554710308410992264204672664395880146713289297063006866357693552635341898734983908712539312937670681953380323658925829221558660740905815762298845453967195076981154097223381545950070152835417055971192947083228125927727369251048731966127029355250204221558933851610653781597714206279106388503638177572288046914404485061992846916322373860664833495331226006935291116502768819815036894965882506850601524612429464526361784899137142964487742733269077058916519211133538348192176987166521409872516196478807558300577087452591438994712231437496859171775086199168215332458405390319066671549146337123962071545767645414240811599426998664740355648532203741656171860483235042624383537103893540440089814926420305240356327955093576301563134900379314734096522051202242973093733489204141377435650076454356511876810020521067580530378810288311859112234161666897159371382008206095354880788767704416613250897664987206646915865866998564783686689252319504508818371018357541760505824932339398892329969723851043557888801830324607083739988874010613233783691426044365295744151431220222589730230965394111638246905203186384726897941979682887004986622686957838567245719937713488432747740919169546168523771408331800464294933271708052526598275655708906937035386741191077337669140939896057661571493634275269183615330919905851814969278405968816385873431181924315142394714989824179742841014734474784106705943476717036691516633261755872322836393132668600352336222541017079948457928654550717031330747121021860503649602896810476896876812606546444592309473775015310309218387238157142796789234137580642454720390501726291476577417831877035417204051731785146546046247718574956971071092697439092357290991539934678604327504909921193737021023282330916656435243709049311186083091365910109557774161507603419653962988556237975704115875628823814106358303816533819858693121856412225021895100676644679838442364637261115399375843693755889247487020656239032000141457766109685661630353252110870265208408980822448712896311162579337451854111262873652997790933047266635598640334234618634840507853406498065401477854866864200653633939522180038047481423220163718532274456792608136443436997587327303122942336897076310611822736131995565999995565118659045737797699868245449561481071221559849698136361612873661676184798754170066566311210724850912240206620682410586025006772980018494803228154818728426739382587696235926186739190246225950112265281408763261380740891192744974310596912384693658835823715155015473441968977139610716427892845161210842192790370205459253479497071969847084447518502302071026915448517581929164370626661767016468630537791055617610657289689492819004568622959580581084949039100220012331779998476424150811886302633624018145302781940479828633480923939035112479217951594181055101401809316852660669852343565200735194804403493871131692261506690991368025615178076306484857787392659125107160788657205599598760905504516025452021382988644233685663831097700829639159702290437774380977314750158342129018034502634559307770611861614086229980863340018316770217561039462953674456279061792308487964269456671806836275705320057195035196470843615069237028349060650017665122480996491800571762027052567688074021847364392215406931463443517358035813582342333164627240181992694302485748901052211107784573806823618169449075361318614240036863653822200724348238201665408880321719834826644988028470475069061739546755994647898567225710507068288112246887116296979506525578279486869998293382993338507673323392948265829821566036543581867002274787785136108721344528153010120969490227609893739492728673952257272553559013153958556203928788987076579148209816632795338073758367840618263902886655552686406747027635669666542377271841996953707391491906947415610174859517041178390152807402505255932225444126856898219754392576240464479346644178943180598930802635013666006551234020699105245872280724124128251154719634095178814892135180712254780250283931265449633791007002863712075727121748519314002608455035033333972714688156028539484182963153149251717397563155148819957705311992483743337443084680547287554817602313565761561610750054064871726369344734090754321081718025882379042883195933712829035114312248922252310421955658820281582773975959551946035294679587444543022206078806346093167122034219197873025954697998770440434370523362605037717288701603586866251857640646389634576214081238408055194913002614547996281122309603888344357998449814752294006338781926890622076579421765827901554572604328297703235465064466448959445128316472948810013953397000442633806200229473026298723854615793471491633378759856069634194482042976836872524110214160961432643572704115717749804844464347325285635273029117470151092705416200191145129749914747762146328671130244452579089633680268180192066759859471990399475791887924748764508067097046798012934657165089680970214838621087759181442863842698083534991278040559785259582960189540079809528186626066999463461290178616292766929863366566617400920454661829276855464058837432687295312573545989979445550562198520435316994467543792733938396405910426611281552536442491541522007793771678438037191467320169970340250654181511550074980712094434516029192448103613151011231602187541353190294228418324561633240825975369418604674247468387992447867840405352781329016599086403433846027463031057892184942545256049742708590984884423014732891329587012820879665406887852682650429415914267442122686207196240701985514668315893057987692903332499299671173215165021342279151067771975761205372143030673469552456629006877652960887040962215083868553668396846225842598316747698234794527157056501734316558572811529384857742961316066661642656447923847741030050303003299827574011167150994876977340834095702517011313216472293423745405025797699021259890425465344770900190922371061428198377341592724538199314855693198026392927065378966846043362085653167200648590943197269325860765690491109523893522829949625576421797501712260117562555862595109624448122813216067020006324335942767276991187521511984642285285515519034492235215658122324747198662709909262748297336075589954092829449437471013351136192729196941507444624602148740899666963298272602351760527158354148932919051925581287817234338846768321322090397537105004906572314387050967999364834345491450016123382410672947031250204581076536193599771548908529083548264936592271844353374389731220132927836245799283530991739430570956372693924409358233118890530533367663586626639849350441267878178164800920495172575179073076433396380132857452418047322346726625452712389741281776205828816516017380003119247451490034695942252088077976966869748588241947279499926618439294402605366107472680694536767823353518560180033523952152366744009978561477569033001919333313232352378331837323082559349423838091551321964555230332801909444322793739055247832572592239873721772000355116459638402499594978036002097497717003701117228245002134779550981903943428905076526079556629932411387085023963742307785705930008850690523073735324189020242101182735683272086641912480666301557610049116553196022233350130379366527157694498467096561360371247083343474693716989357030193877098056808247407564361079027118702048223405195519053353689127149756992283512317919061049448798615750416707231122612213788818581827001788182836713866596858763849260556561762638236312890855385821788993012041136843885443837837065197039841526845127796483270308166003116195620632853362618685252891808784239070914847868518773095999871589530516877473002050712481291012154000886787186103363129202349425012212054577238745506571307647020565897548144838454251412257042309513092836540797928740195562948535720068079533597554658334147062870079861846239896714582883058948736875178735787125060250220603138597826490954707319493417377367001326779313938901798988564236068675237787812420223307470248700798482992143020091721485126258543960923132619121437491913387739778278696105304513462758748308946278015527980997308574203618988955007293660107222727586731084801288892553620475622143505522728969465088516341472004852791028624796639640282809425199116886523589765240858030166054586504033951945260204244030421484741123331164038618693744869810986015359970961864080215203775083240625712678622249109984632675558271583195050864900845634576853424733830900504734285621290343778848127825344911465119032176841649293119952327073226172165818632319876588731755165817160934286231068843329756620990859739820264200562028492700741766938809185318360207505510710763611443600456930584555012353123987546375632210826515984022543813486489704236635802939040256505970390474054209866640696869445509534912878301841094214994934333831198487978523390427780863292311299487744442480540228755457132029526300064916653061085322174688069236391514451667641196578025399905444429639066034066193968086188087421206576225740180087825296297698583619827976908469464353681687775148844789621644135290724842955325237415469108439557244893360775764412801779456777844212683662821453186464968472581766963548019980661170395207828039162771083625215381201033310529197397773406755267517102388675814832469099411923171804192076491393892673716609617510275259779983651423040454422838725765311224818418729879056317816338808299954937089512688148496244695812160293150489394357495057413606796629751871304940279954840923992010643503081213075274199517599988537703048546952936129960839452821918113643607510650739164554793981325316007615234950630556760168074617440043738156035676183195405661219218382824590796641923710040075254369184784728412887848334206644828027147355122791450107461133925600099555269272497159705158528286354945723600262923267966565699386261382256747903239498640216606347323511023882660955550540369091911705795156347851586546226715319261829616520920450862415971881342609265618743773378345600507321113225018610727010792137676416768526856287185302535460761968615980871086858752668806741542797184045003145273262615269246798586516660024739993617293925901552725769733233417650992790364645218558738818298598235764633333991656879710710354364472757031258983919921780675084276268039914060607555152909040513080556581966481994401080972000278234988903050106363141693241216144572775177044511309265037100436819271495369659782938543105361951986604108104924102879378489153464961103810776969255671110392441173331323387860101024265553657623350526400425032922336058100220607824545391000175292364551497659482484156403336590884945126436916750160575258145691393428515936023987169208578968916667151442505869057959758826830379279902730392297664561221882611909090226043831865804973581520393525321447460227701596405857040311339306043556498697953401618411418472553666928208917653223945556236829383676106143267045298007466241632948349117704270328834071410816389425948576375805787813456100000599062602974294553687704047340084897822738092399640207794146269206682620537642111811544078662632188254868376101357904203039281493938614958499877771375941805489503002039433568804459495508040315977161297070963445455428726939920946142937883953950721900182134822248394862648698575461618685783866123175915444939596436885572881795111504097902274556165763070768298618443649816604525166137799400873255798430448929965527378576938142691977902094921457352264000429726217137861405696076671067471572857066086097480969652137705980053354829110259848499888234028814047361419705587989908690524919412179789983400801068906053104768850861562360630786814023072073838115567656421289377763896621946861500721428035933490998176712981501944207407982640416906026913721498443234268558195221614159155392838422653667778169143667951278691618620500382419391180689444374307897185814759321141733961371847908258003401234143431094893550950574240271372751662863802181237943899668154345898086474889529155639228150215187744259216953681854720110982658793210615692177918116007069621730738693912482240392530440555111066012773118008640270043038619013788812082057792696848987670805822421629240381585687041881318035744398107398018474050833643665309566132108657033946376434589065869435398817304899950960288141065874076506116762496614008501239427134989845074703575372686035336809707512269566888440527598630211292342226646664005173518694527599795840941659379740081553617266704430447789513344900607711132661083414728859175234222010472463216770176504909930615913523400040917984926003331103908008250363620308578748334555170351296819611707459990216412996077770118936351506591883251122537530955752939464226023169923839675302269458931031890743916956001753521224583369460377063150350062558408650510125525589358102523576947920993859767813208733032624155765034745349829345869513504948215839174503007655134812713170145944982242597629657465841962403435495882510625837073587420228197245289374201227470149212660066421153816718728429095863363168065179247089198479535299431551054950596647361639239527392857270300840203198863488280553710373120873837763809865519208935109798382552054245995593443230763468894474716157084078463881068896076330789333980481695018285436872792917978684343868843621817919584254851246801954792077566070365993085746006728862297382850903624208018068593717672676702885119130560581220088592907844963938765806489286945659968015438244972395638463821330169293333731699632478807219035388899281476452010269557083672822940192465126631218928660372916403547942382316545863590822606271835132525999242574257117284379601553837433552606324648853004328018567590372461279013245125711911737741416505082972650556186954082997649831607799443641670543786546334019762210698381688650600285744321328765779632226013516558695822268693426295923527142617899823536593474394185743126740436625770965625373782759133506690618626658832155484226414019944823850437938090382803848547520502023984944807950021473859014223698072298818015323564186857130324332506800487727635625892902660062283940415160691100148562762320506466976384818862773592696863508227678150019079606345561371515416466904670207382945299059075502257673185433434992792028752485368682804455843728890904234982394895491932846446488243174109127072343052162947401699425784462571224256748460663191934165792352795889883291186083052867706765151029242650206961233243134486764459006689789668040070419086112707103200742578699399281589183726129854954994609938353434641142269304701042917951888060705103220238300845366103216123933762931073511926802733721505589107843667707245995217633313768831685919876012710949597903038301409789858055440408331641559454955388191305049993191041473420167627569404461011818733614222022007158969910973496479635595098936259808790061347577766425406542600976048961240582323644110170549975677394470069273670501668864027477284073525968895586305789212599785875569634969535128559252263642437624689832242414163869073634182354960619960538035469909704908172207686351993227779608583862422688919017335415772399854752588684426309655849279801603688246703337855620495172279503328299739739405495249634766526541684173011400841956802378163252004680927281325353734217854201645820132204585241303558821206163615661273625874334997482175012844360262942801967713141028660868113139015992148157120336666127152818404240104071828724189182046667862395774035656626707816761231034037705228173055319392293257950938695176775796838469922152348514509125486609645437217605233242141537179639033164066437592035586542813981838424453024169937242463650089332353114918993651862683490784207181573536330221539760461049070275715322619565123977200052117512694735937987687080014753916345262757354832003650621200662368489886717424086301325328456416829777839793923599819535574892506444613685484693134036957172537364487469559561372135557642957730385351761663226609857505172999476456457018875778146524913619688620316438579285853876162506937273926674803871948779798542911472663579386769646479658499942789570723233760136054748753970889665647298453010737826273457998607839259472437399028930976532179994315109836084238375722055702596641463690432067804900157336620480317913501933794133404367797017964914487079540592255746065840922397210562579731139401382516505342267005693800786468107034033050602215942968969758037954423082001601014510429597790963318876001805885361588401752073390492672482052663055057142996545579029573794450127911050145823136642501067273834211388580261495261982378600665663678982862157516160820899066027231269826424064334869814314101178483155378368575266213371805062996527468743702694554467545130399675048287181163231463718859839144546812556286792666838793588965851020694250787336297351142078347775040450775907604267059816933857434340875646526699708873946462852349976936701697247017668291915345283629775557748128547028168021575012143421745285131348076954604620293113721306373754887504925429393403504777713990154291887706641050765103720784862552851994077334234166785794823007555286305121204950336208595897457075584715935333358176246078877578377268833184819247491187779411471543076598256300746831680338540707856189821322398768899781800533394968620365946292948741501357641450310520427443296105687807728946229930719913559279612595142941775274692516029781540794533035082583833507221767681674050525668811773167444065362052074199260634350198246695813288454029847760844456863754229452354612825467644860427795636390732231775248956647665671181618754468003094541907167543120027065843979457890609511223126178206720342209000469810445497693479052132423432610700213986463489230870632183875514893121978001573195896622468082789953417907859134917698028405061768103792617324354547586310429291044711094382299622438358386025011448388353436464944429170983357036304485876871770095132644534402103549228878784586412377273516941252582587123688616535241173506273168161918189553727934451290386906069900498893802276795699730908534991033413576776770657934860554324778601731649972883086433140558761763653214725603572712559750117880725994236316928290611603813327467993438804953605178918621938043324711586127023907610584348933115321624263248086374721730793419310992659705698623773395289812447659174316932196098433619141212740691777092020492570826782789509395224814601022892261205163411846816903994477015288291990513050018777561928295837256491625465367064037508850390775455358208329524813554533109894317358595275674131414839812634653535973567621821841747329333548593317911695215049397898788134360599192887830062639505966476593834933825780018635176347583258687787099903816322370471445147576269297611377274456073130338962206916696353658320736140210198781510726657856927072870270284308141450956432064865768805024549026486391746465834996724267580170355621072369218547724654112380492319770148627942159274589405181419662748009836156505340835452562976051768033788737172933631170676588345373056155119782022846549305984422687986987512782034536608218879173006064490442373065338452036743542304868694746915042663297350028889985157789814266859448216693427333461430758869374505920806950830480934211850017181209628157842051501508945144335311289338423975737304807788722381499037658092499677318737756127846994150384530898600614755247241869460013536038838854792701869250234077788290139443545586236522598644113264508554726206918617727393932389414514023309327244908580113794500681303843816000547853526056689838668864679402296083297839158373308674901488639352420093282932960277216965521372427001487099778877298128231782102502787057570560337482634826696448171467713690699581528592098299635519867672588206615962809591501117749638361819854062230698557667856092739196831897993154601593319246917024661209077617384476249282866738589319099316185140449218319051531429828897578115871617970495684676044777033682856097710062462975116452621069700859672983764689352830859403217287109140268865684790429270873377464440356911836899006419636091650778392125111831398774104190940113956537154294105958494567304703334904182783624131132274638867868069124507887213821385277869558074474111001811254342876074316455773345077161858405420021529509818895480679653125656484535071442475657343438924072307193890786395528525223973777339733016362002862284231584409059861974909497947912951850387574368118702351258118909104685167344371898433621372388237398002605927138909025997963345973721807002471742310831751272136828909449839990773616628020611188966562499381757832155172866529166521483070235584635555290812581813237217112376485608012305370489521481290961884380423499880174276486007658769752903752909984493202045425196075199174827771344386288946048510281038658754471045493748480568971245037925470343653014670808826382510654006619754396841112789885011705621793305496391429130880908400406866202917360509965259288556185582810686161041573355201841284795013935589869845641957732100910189925259651509286184723318137879832178894375069432879949979181467896724085925658801590190501658715752564819902210673929745596668980119358776415169120804299665468916390272448049978917452392337640149597246418568765472212603251473540733940195825791226113117596462515751077214282384901843843452037639126788896019589223699777475526190890361369054087471999318929858042558241706423824938498332853930832575250416735694467587480457597441115430121082293537960799543733074264337505039172366937960195919542430045762652390117239781142691339669745789602949253859446828314247934580847350434616534449750182270798356467222654128863246474360569865613998941412418242711692591069907329732167109957890286061015390822094377989269103593764983616399871557117311844952993241395078629800167795323061965288445726099713410605122726319181481106033695307261439388908059706352122517797729334006524993139430162406064221560075154536285256621791662505879698619648206121983003311205792917719384182405048555121048361354784349411441529923597705091710155989758889856888518450918167233011029240146797934853320641917108004898171016884245874843783396262471330393501491047227233253261813376523152365470407287016191715076733570735351810684837043061529243875821136361909715723432761504506472624433331855530011364907158924579085555660916069773959030717822166605626010891563307294429249761094381462727706395815762619596794580254780525452896786642168778860626211752850494041862776860388235912346733002562866396240949880708503073233087968649848550720363210856797832494200704080065886715928844153155370916635440291512736381443611338351794660764830172337149737883019957627169236904665707717697980046724937179706151512475247971018132410295949050800071810646669909036188010843430732965131631962699403989925162327558417099711173633703806995977179143967663547785678417776373322616206167801335407117180222107794231714337956281431093249324503899199111924852219269870274640488934110471991235240153651327780812870151441511375445828147329313197502447611130755172744227714534776240701000733765905838291313078105581848662887926373397896342760042586982814279394936948907883113285984501668639385746244546942106247399328480521072803768478412203868648687702257998714587714144416641127662945245483507329694501553933148186472982865470429877359885447024376327940350984562974408466438819961578388425874212751309384691199168078580161102113958907601017900559252139497454360853134293549242370889753821353180618530760928530422719184695682018076338006841246225419571133726368852837158279651468471336279371307014444004749272406220700029332529912935344268227509696074586812805638133274252616902342619416420494945362046862021632760518763344755409452046681029659075043275362079271205265711174162596961183894697952337114205674241007361475074296167697731099174893365382370653205219330459647585006434971403245681189325018696267393058065147965066019404724251879380067020457648609292265541410055107044426564777075467666568259437523497475143954912509080780607059874636859034395596071009321328455139575726979646265696144062780053323766505339863105840356523304621812473456682320390238237878267573719990785394458110390558980824829854354320824783332543394891938951644351897628993174037574502161276277608604593051302424450963226151084985450914620943970532037091674466784422706162766525490128733319632628554707349774353271943871097145421795056773725555693214477394646754624245030395118143258097386700828252204691663901603098770578978972089224599464471199711027691901758388267774204791504659629410369996728559641417560477780607289912591780767002643917359515977696490315121666072345631156123473738007707455900828238076267963495732558421725030662899696520189834637589221579270089810237672716541643823713614296412466183240137731158496789016990502424074230704955601144142862941518565379399509041554835198427062145216085755153357796714997192130823642667352518978240278037435692552078684854910276355845325002391718288671391769321385134940027167535105146825497725614437583315407753891316813430247843969304125959423011042344859417959608175252330494885451823425717724219501973276245458433062903881210844817233328519973970422816723230956495889343690529606964790115019741194255087596851703391770474217862513576452753624952695123136207878423188736171288934267072875303973324860988847834368199127460112103866827889957989272962556477151721912337533693465469814823705614343421028253374780372516184416677209549974689193212958862546737949655957659469731910790563176878921439690388748370392826979264715369457042794835312845298783552120890922322638594014126712421059422483260840247285523076041161179370407616371253930384866408759713108965007436163081634587080216855414011644367035338775148679355464790473475225562479970221232179453222731706844855577074001220985720649287574250366541295381876366441084820985597627473245639938775710339667188852453726807445581305707491174951992908782991823962530678323833509288505793682545286261058430743994615718008210333115635909289030824324219868478722076798979681237849276036899846274562461378481153445940271124630490430362442129788008217772425899225660523612182618690035318966549855691595539380407343722559923127842041040609501055500600062866958855302928498156685106419127711901482602935890685830864941707492680941719512564387904515444543847803638670134414507075120592256233315819987974184105823939160665785907249261355722062951416945777519320596175248970675497578497838809949023925747178060440073743143783669457756405044241757275694096742216530774519947562169442667213482129097650123948899205841497037160419946507429654182645122256828081442456494003486164754458488268128770099929313336865663239064001545489953276092459634977057081229043554295058037863832339660880019945063731367122669421725878195019092037375536945204557939120319162299179281481530061234758925678623794724860379384816551730897838268450175862559763654654213234459377954223533786026442481858423204873953683432570550368252617592619598649308261795532008076260905651099787205329852990387196098875446099924101554832970182055592304546606671141820000204076813064987163177408888075365099966293951371408790040746263046887987813126673203748609158817848673342986799586367097211114614712704115337241519402662814953236160381801020547638734740508711846592629910030163221311385948999487483088326248508161156968145635681515274746112003085017883862432158927763480665392775289010646723506736186825804151980293377841892354979076748487107418432321273237841792519083968667875779216016702291657054010384170154402609199157308564518458358001505819329435246369844622686086333358474797581273441954536002348915874794813080774493358802494175329134894846584069760104257781437807750272933268640599460530834887458902075775585502612186746214440425266231471162626046006907640762103690108244577959426481044023104260899571786380802648268246116306301623828963641072595449127118819394355239565690611751497120969386032682945749033810409747200902447713710170002836202290657791231745441014382143872007879533108714457857873286547295530235281128015955082347512688303717275453752243435104903644880595111730164045308895650965610677018188389150335995286546780550750928522689256711570113857921948600150289279589851345153877163659790593065358454155073578178750818172780802082681478069320447858530590706984304708707779758759264161084988986796070540646112532870360611925552926783666635490489523743678424047743580419479121368810186468913271023792143813442782264331706084145774967215144038194065648061614068389391616355698186728865802015792588457519624333404935872150361101314076599305762176478934708012528726049435827608935883641471369581502581109227093982344542782313361237240687719769825234226080921086305480058683406590114202439017095192339938137607261557008441851254701914149112042406586006920555456729647056611459435186483064963371793672024379168130560092016420553715955384613559702397455960467070721818740652494157271427551002415408962847774304454786517187841292072009505677588520166023078187968290847126388515858639393133467417140687763478379141944916351100279627794158136230117074102684052405258190485519784746826686301725998061636011973221584168233545913181176816931090683659171278032248840404133558606578247703782480041364732080730851561663773393952948406297632104863616035503108431747627138559562970761069359049979190034109398188142737387321057410230939729695772424665946199042622203370193739921219689674781057408220870238806612286782036569932244324086309797114967341357409375820209025829573119443711947889307590888300937645620329987461025480560920880393297003242434102552753439599101525075961702260781352476603689751972100749377816027097731912899627347771523028531990379803438450755577414962322483260407824677006504099444626435726803435734232649122144511372212160685366364063057078712896420954820794173508941400849356893934843817156751931757040459752965897358003054720655371292446361555017380088471212038313206634094545626103852222516245491848469267572575376361781770507790020674662072145606131751274245280380037380171046043584927768248188103133649169416121124367523370241861692338710579859583567444433964698760513696815803780517809481515342581534178578593403774268391356988423300656970377028170406790538653633798280774095705439800052953512818127470434944850861731769278832429036214548179562816020969018332937860627624362448385626489163574440446678224550920664107300023725834232025519218849115744790881751202875855599863690382207271246650626768654426583137040301477238740730047414647234760178818718970469664257447039051243970070177524664908673281239624902421188848564031915777753984641201412910436381325224490506888944232052147540744052863042145245672406084077219383777764962158373324346162236031152230076288504780140137384282594734861386335916959399621930239587834870560490954928480863853469557360000615104463719499009440475614499515425581727632541389544947703524182839416268196086479430118478441152030158442489815071513977642788427940782037977413358262141570558859293172529509984629711436667105907169198705573902924041360031945203579695364364690385242856994589966669767168712718200048133821835106041616085491536092072865780250220541304502885836275412655083779036572422537094345375730619600194521984992810903749689165128113931964321974084606272868868464468463643323360706469523338215867883206110330691832929235193626569253855172961509793288582405378862649330840362428039347458369279128308443567300240283919612620065175694761406298182666913991655315110275655909219727221733185794455974093479590430842172717153576724679117505502788388692616200669309411297610632472220599586163606922237237717958178482154634989101626442202073294200010924810957262100355870635162078109305305819303310650033090465237214748448254265088166320576070952635572556777686317276464444316983225527430298137571355545262904629339694644860731581715166138600982418467184612683555467764090570393707856646822375660708953504654803564316775760437937880966084358417025790839599347885892702885351724572814776710463297680201116191330721895019290933089645119608579658002724287125913480790805909793864303138704062295736721985108218024696401120434033378691878146985082462576240128343296200596003098978397120143498854520933862476866140403245550866887118624736859965411216858581073054468629552079189679996760657169019609952165037081763623182697414100218633031637191786319949740158220094327476356693386200920010046580319191177172499309887413807833265876270847912401404145374795860055085153046644445532032659207205799601433291032697575988938413408200521389564797693345873256535280942346792313933140080279057425813867638455958044335722864187902832840450023094568136837733723668663864449757655469357540577613448385209616755271606651062372480281533966741783488534907027346417362265410848351180042326337195721388905769388623882522741166187012532333323705477196537151656862009352612869909835204010497350827290982128615992856251695326003159646660151082592298221731921925121992162171067312963147241877002989599549697336858992941096277946943375951590726731156861294795395119106130176187455376425845051707363407193008756490535876382907067555442769312756659682692247471134987826516487416702639188011976550195699476326625763537282560265849298872767989518876794611526595671410843220192129381593008644745043621076969740611366380841317602162705151436676581174017775913077961878406643262213786710396901077429594900587297928417394024158803753222549184793734810558353068292685052887281301783672583827880074126997766169301192172225806093251937433803448873656065999813096928968834730280147693067045098472252004453462153161081870471156139833982434911681283907858298778333824919463167830756812806634034802391381066520348261705021569768069382945176185010251253662715676813840735190179769041984127148204326780340877356514598428302994202446598926070446298886942311664272641462509466461908363509394608999741773022576483639568253381331610050695861706660977605156465103868684260542309116596188902147528293847232934710427701540664752251877063936865085240907071403477858254859058388691162555768143375265976872429570101882915545117949147507380310325437479847119080552967803900853578505813673978517060011126693910820941454951690033007226533396532852150583758457953875928762266252549579592089514868575704463794974469494069002227998220961642984727330076278865050349406621063094029579269183271193662896576674907932260800241803869000353085089877898997146356232483436586074841557653644899304652275693733311709176515088730840597950033529599804066540557930625953820942681048542737564479672159337897993317563500950113326644226004841342480760421592912571117636412748111416749188200775114575999197921183229051790853450575532609612766255784836667232434422215450348326236858300832633030525579495813696412919055019621140536437644803814878106186251066757587809136671713804664005555011683508491576097411518107239344791020412114588827299519906598004735316242676663161621814746069227582073668338096355931307952463682472482779079342644175703081411113121147182752411783993851364728812120062510908818575712437915918262632889835105822851843346492978496091983634929048185206565179133440358298093194753616538817330969074708454375500616474318986837117580819409804913337848362475501062328062987598269820135314033628182132810934164641091736799188226112077286804297183739358771757814039256775865469192362675726230284549364098603116440590651904729143534995093400355924631173690420717042610232281478047652536509334704372593194897249491986487065367835643777864559172742228712409770701449949273131121986628895068812012701740955990499428230810834574004578652425340640988039934974542095516990649902839289445222079304950019497400486711183176728040977675818160681469129724301465298434200321849105481095454354064593647329234199428719632640056950603436406605977057561368143377289340850293122948098113145722591283649299463066184895867442479715437324842964647037989533401028870102536524278923288304267481475717940365808939719469200754288492481182641086506663374504300053895281219659616124958586067973313643279438010902444928139706680551172177132443765337305328865418174937447752734384143531945610420741781959440308565187864485106891560888558614794317772805265269624549553523021916557868578746807692062164544920160615518562034536980305775450610323119800025160556499545396150462526534400997329478733531591163844138692675270455373227007870684393850673665761155477840614957784889832312205470218531652163443815769078455469647534550349719232187516800305490669076790746223715379695756266397179496127519391829275818589764818164346165676022802531804802437766876816381194708189168388290354105427798651579744484474193542689172164591847541053684640263509007319984337378117482248380990381126883509288446886432673923713387808933304432549346567575843779255830474750902847234189684689577941950372411568384361160058455704911946975387487891586091183482249031202562293975095845939494490168612369702414244660368129624264705287898872793465371914732266471313263437626310448606733712138948535049074394342543458811912483022393416167157512486508595766582051133710716833466855911680029119766407086011647389006920154361223871412719551935812326588942269331229267089453441037086064803602909283879226571082893959471967706658522736101807241830684865765471162404172082782181442853998499650116316656988324327236603010120412239949541054856350048285401040952863749866665112094765487012000484433218216672101277927112737594299350139035452907819508680990753419709558027643169257590745920304515855343646359025836831514397400380793394505212885259444331622114776881800535922863084524753753465677380256815655968718434230979887622889594338207492800328220705079245955252075580755905602380229258682744598467276099401903074366434418449417434667973530194168494180973888089868040413180364453389086844335147024710721363090396073644442058643478881703908582488836154309934732728731229560756994883848562463849472991029675924336541667095192124821006693189175286891993583612105632649640130703259889011371042198715295972078314356688864562003796540681424276685214971380314621362120408062218428124932570167740651609379242608993456761516125445891969857712800294026457666249863738686060905579740714293151742020866334446726912785364103737092765200362374521161200520774088830749753125580258490327168655046989998744494398415960268230268265559437210281858553288660814958499651702379798079222772832809100192223963103167176221031900569986023875367207079304025203864276827861586692828670368324317262084283873065260568417259684861691454624424668701505010302589349218640318713854770320160108122316924491156239307443034620130815343304224586180727769132920452588453363888376837051634402809669017390274016910019060976653542441458914916806149671209873479332652663176023938807270548340437429627633929547746783912050258872692486714848665009634179333038594417584141761351281524475618049012741877848251049289714913101075494434655901951079564904259646855838706684575712446143983250270244011137698963314282581898093467390829560976353333239361081354872483415376724633645719097862399774799123276732950317933629713034856283056459612656384929043887246909823607589751402315118822421243548587778637619511382261024965829609875385777700586943600424081908091254371291236449639311627403242982490891502147685373364732549740424653809433521855607887981918194374096411661526128735829657360495361488967359990906400319451218647304877538516005807558553962007408626006412337742636547494637878807216163142133739662850443557716824257477216247159551182705738969992996892180044095164384476161101969112621036841444590882245014605141349003084081177703156563608065761157882508244357206924185596063624024467153827553690346862711642546914431603980801438034989388432835163827452479653477880286505238792527502154701757453395219760009350208905814383020701856499484491053543485018964002498549091646208384332223370494194723245718112120925941432191055351735665813632539002974385048122095703777930090875442358666628463667056440295566059016890869803636412957374978116007241447888493275322924124556168614304443592896530819882695762617496002958550685712529994872998493209933208953988604235204554845036308948018880158823533705431197459843682259400240148347743687804215135571005308299716807223329345970760032860018880009035274602383376091701747769230471708910340938332540920852183819129035401346841087114656237339259346862310284612540724814235700632454110929152401105724502684544496372145932082757303169274794081229147193317774401355583779151107104720815535571960527117496053029172930600950642230461280447353162326785509034490601692368126052692257954691485394374731925609214971575564297936931529260379940057854379037558668799538250200997192859009772433362283796981717263896323057652263115027230873130097549557475045845161072477531303641162461232131355339529360241392293650816077803400230959918393937712600505724391133661406070279595136271148233932350932914309629918751217918632313462195151442312832840866121033305025497975723944431417397645987758252792454898340035305798625057118848089954653503745155298193211709666613539019080321175192410968529524952995391669585768697116277495517652344473268893150776393641078863265715265108019775115135661445220874394289152446598726603012955167573563113765236146435692733408484615871211555684348019917741015812949891097598172314227794635979402310862766006450450330841143536384021916959231511290932028079918571897944680174493460972128585809748709090159682180489318891529832560744564685859651775129229351134581989688554790654592223091995190425991026044368613684016602962005233302682194015875484790914365906836429094998610659347647913990148344107138110912680397726359097159156972147833289438680600425702798690535702732525970593189462286804890490601406317562227091406038201959126714575020522878111717933242886882930831791598553052370963144476745673976620411090739833800167214657082411325031866124383394722960820292488024660404186476103865567481118679621215970249879324964440705566436259895471228524469051050405163833169923609908480709638528446482516221383673530189983319448370631541182778249916861126051356873542759420249745639654681805905840222140973113823418721624360923603422188035124532940304052823187574913408243545075717612699066926160011420930648197767937556054182195673047244199012562160258086154098458242462519188882692978424108001679257597451985652523147666767978631926113709164645342754614847931448672318322306673457731983285656023842964226246939989127883829605970341416910105509929586382795618607256946630099281585839246828858536840000541869261545489444545942078192309855664288126962217203998886993527401424113026272094927957117553683100738895531386744344553558913054856768893791724002056049913052321984959655824578423155466729994654874648781271968354485749340780529524768945737778325976178415012298856436465772991290612501024145044794156093567267622532236710259407300375425993533626137512812090306863872352249188903399483042984425007165252287935086151480734644512028700931303659504946619019111745026059775484881436921781217114516499260613793067562435907198592248720479624037797372508780941314208162165614964685284051208917061035706239300882483743674077306084763799749730401831813522595232613546341934898674560168294361236626706635253984941894273246163939894926573452161877832833853344014249859005398593029603943992520497512352282977212807761373190357805878783547648653117880946719521081333181416343764915592101853642570904484384808459781659735438213555679326675087920037281950295447747541457375754089671170945019473475824370201518960359455765385205598162546485397632203538946023225991118631870652240989848499009059047089117855231565862847904653763719094424604936350575026026969270691349280169104459835102059179236516838790011800948258994697760009843754034989727685017242297914049499879703715609582398432969027976481022111072256379847068839338254241180668612459999577950030476820535034437883309270838840059493481087213335495542526213110619666451584308216983374041383386788588516122513683386451066424519890062811309834070040463213261196682055134350172093429049166730088242696381682007030384666573286699849008051201323318651103133534714772610980311617635530782494394049731182625229571981457767674355985611477239276083671003740853768428909654670240324257789382865239148943836675780027902027096583141788480439286841186051085259353472606151485796473808926263007175841478905179683659650192516191300144780152245035962254429973485856496903106760862072484109514364122061386664782350907761105668030482828203261229131665619663179165449604279945943944270253951022252403862850549314994479858774389906417648329240997866099456027223888503379167329947585444678720545669887541072467321621443511312269393897975581491521791863057389449635622846548048207411910892874556468960542088252859479753182856261079959029159054110512325509112731298663802032118788291313453870947101494560768487294939758586112258115557529252208929763393311826351285251442144115189349219406068273744485443248181141745079986889121966075392415373010104675340240510192465300948869358413784384950892991585533568748264881587044437334563755539850746830310664171998302778597383411043056484224614102760945774460887858670717864913624262473924894582965561378661631144278418296289948367975815045216123780923112856045037743960764772792892733957597573349940170733904521120123011772455915177813573051187108090892343033882998358113807323783361597869991122964367058147798690943820117797965109951254256802692326086478104766432842252879037601453279124854531428184834809691174247718102937034177938404338625371922113620654131015170846732490096425936539765845223415093083249470601512964499042032764252621341011153449987975086840392190741617828913293986552981637745688919269025353891565086929756567864229571844622178168851295671194658790030566582483699434190519814535466223663557715247343312143820743365835177252327854067597953648915149177994884633261952970922496310812823225925617766063463980453752283382048627884617669946373859452398698880124622991969960905088589034273978191801783910427727008421041579028625845453590899548023935306936628254891007075242154908754007308861971137447902836235347924858456000973413926018857435758808240001508275926534717705377406529798641918516097800157083681713151101862874040121985395207196690759127927044663858206613880815228461024615286458958595060312999352754541253146161449773902053441660510346113418427866859269368928537114003301511556246303457922862441016951872906241422679456691860109882803190225060977081760251574397473978301887849712801063066082477875524658204268185171209587549478426131287109674640195805919397731327456042996131457913544616920790940368584103412692860884710423403339969669445854082395774479256666009171551561721902545810981302365967919826186968311268335294390347305470255515947089186977509935966660633371138740690223787808334478091688964258640901869530069458328185037547494774433048392084278523407140638431959669678153770265341274209579963515823858226999805996454250803958455145828153270851052503597603094804628070657072253259715187693156007130819316952441294586531307428381998691822820220772428338129402270670555215142199264473609074494810135668751435030657576027690078391687258944294067191855642571971586067704802536639421217987310807366349603698263223626826439245477915745082956167540324877933713183821833682373125520117826021234120131181123426396702011378563470346861229893340077459672810520289011798846444452741136342228761808953656634458453204878177774285059886234818509914871317565101141914093000891032482401040180462178499702003976318546711888328592850508733841265664734713109159652059325935738964290971226298786184788234758342480681417371689255855576098342290717120745797905905031697523602496949053144647128118467705587322037281479290216549171780739658101242463312133208511625088153636894269371305927467364950783735771551158911415671121578603547439041338665683971828722956360601403226095878874551304002698793570822376664699221164467375393615837065049586055204815444648049025783406436276896660956950757227628005611066748716317543769973260175658407966456841314185310447297201308775460075136705350050144383255326192746426725068199755707170510320951787110326640212416620550279056034314228309783135667648111962382849884992314802425236324113535172538528408311589664379402789034009487493813431226700481047462356765194804296665342132775115815627741537153543034901110384104734795435200119769091164852180115383328335469145872708050632861390943205735957244027645545437402046106220354048650938510688289778950555434311282606108126894086156642054029301268371683070738986295397028329208755764028371592446648587498864208321737057456906414060722688128379816963154159747040296669419215445177408193599111767323197633894913718648554492409955092118179458272787020872001461159533353073899901197484090790767722335548756958507397064689922923199291293965685520894359939972714102946950487751250493875505710233954181486856747130385415900108208645540516964662872822210996971960909875222573285206954632873673400693498712269870439858095849329370700587673387755022134345345213902374060366921183225928648542223272003216095502458336636550705895448070138780601117268941579629781676239146383308934378937147483753145189045536028970813657802692789499346792943002924687262785924604572874314237944929675563641249712475151766924581543951453215573587610139977566882762290880475520738248042427809143913137448351333084377243517705282770235148917286309270559286209411420614067235881019709667925082545962784010694182425731268426095178428763038156265787542130108368347161205013866054143658990588513585261160982773294274388342079046097737914623363328255840040570304220722137742356083456382164290853022839048881934802451045926678771570017323777811350295679200380402329688794862669174359468680292787640000343285384795241717211522361115571705005593441319226888307421772276868518776114614225630164851445370535239372728518760503655513635493992964637985386706150979547264524643295409596164506779592520214303167332721638415500830989674844132560807959620767541808305236990504904424368344096103977844649416018978924331363429804250930462491294887711389684219775240611591743120166393596966370079063375887382963858251000131853074446038089393395006699926199897614054199776604239777284258020273873554985959395036242284709536363265739883991781103813275460992721637873108876510774665923203112941920413020361745819016286692855599410068433958493646829418709054119571771609702588245441650321637693066844403805567575641572967961463619182741697797444334843149984511432910788802712361947170486180119358969437947677097750743959303711963131493247279138012585202174190560291163818073050964787813315108517911459154202804203339345322289576582247655128042674915323152113279622508146440876471663310652317612569784409685442470146354325663606498729315974632576212376804466118923615096323761311573284520614716385234471680763756745844888327604296365319066286934426360460030882757135329441287742261850869500348554695626230999501173223275742923461076286739192048806682695625752512347500932880536164384972102154727636331127106290381867509980544310642479350261449920344505522425371115694851553482436406736405794450451975036215684964825098715365655750624180873575709033330836918585858128341002191682909352618492245258861615959006258248435261901621210804129980002250555254177761343457502580608756161942689748332952277038006445103656514830175012529896522243439993939384103761286613710177285005946413389968060915568994167324314698034418421142326185632871004729443968565650716381085999777139136656523254754595003649973652566254900291322110520291217430668463376954340185165357982789591562403908604280967329562837011307058662127747500730485249781120818646050436632768453030684771040566097676018981297404432961754193981543301634680585333859535200760423901914221443634306784692276779799134406468665206612431538558417593024272600456903414242739007158345140920575396474255339596297021249747553433795800628089302387189633209331762618330975377074374123857143672076544789220344673288500935357296331188397809434491850953239097688324246535246805673394081019604468066385277397320571394652803476397619786317472152104522310818209264987872731752215559402881373275384494385512042031770067916393804310883555250373130185048412049729297951304203903488206616240841156944366311070722509001288868223352400284806779372019443833250008048675419677881564365468032357521964379206541914745523684304847804313155749664128693896995811648116768325729205700895042298262648883743788367191054386976374917537236364426121180721159353038698191674675726306509706515186385664425661747061672159844552757936571399283310883322183776835427907692546458571910890402706158943399258701941085575939560385590458812306778191594415512707991390174335497520655300243144662055738540081142585086741874470945900651460990916030401993152811919926908304013554821610374960195153184698629660268925612747304332830086549536312359319978341394775849731940031079801914260358411305458184985627460672797103961583047453220824225709336834139810556845330678208275040732853368393198584776329326203763571004255037804900515475931415545036008718610988949006331568890175778696101331173118438924293859055367602845373965582917303950621001071989558909063337940651462229216970406812941480433077589368909041466454479046240073580213962974980467561222868421322356681819336071061015997473125901692777374040803365881773389732896736729412536942411073202834647750476886722863616383843601214414547056615570554716167236298482632328669941704434251146711592214474640457422544616598348721660986733923220638363532627013669739122823200110410425335236485584732113684864746491041102999933412823014126332964677331379857208026785318843395727227705168491100653329355674559501782128179528461245783597898849192158788976396387469536133604202105294826419090045138469093740917019802384042370796984888747781639434348991225190000212880792813367872135379571116438097786605198102069270490728695935879571828621107536211116469964076936793163569400721899320416172800525029071675897289340382070751580449359080396570218240252984295830463161258537906825651870724487531599541256994968255534150622869292104514647376393020909740074143097238724517224470678551566054429398436444892048139137017793572235909096590846397544776613185948875356205987336713450012674849671494197248019533261239652066097386724355760979223037456095110727960001369501991454918750545618800012815016724734579520135872073688133643986966030426545279551008642790600564749476628636478938918288360662015319830527742111927091449116000169741423241255441669579720681661833004987277776213930671433639007782593775273611533143156382575602924448834957069911442853302484584518935051756606825043103016490823775773275475642657778190207522563506443720000829694036744715599006554883558533595542336283389875664302330318756485423932039298753825268568183695503686228006712264752099448212317051582919031705487158742610768551813594314769534755593895748067410987152091856925927596268897427882243430470371342239404917366493184945626296391535723191987919317828684659974029712985537780106392373901560501585413822394112758429712452695440462830064934926949608042947376290564556952241513298280790577660646128787613169138044526140934631309084888707046622594075107069411362169137270069055714384660951984128266200351484862153440498010018519006194183941215861481254253383904592808720860716252842823451808895367987401532580655419911281304263072988497862333551790196842170095006825879627519889457039045708475026855591405766060900073318409709436455974502677068751031105178029872286606435116358101746187445504221142294953249562007285683236596229463381819032663669508097929491766071707225923134106190049024914345497345258455314091994080511834352118527374969363377819421158168757299916984541053573281737728701727427207453616322817805076837489753398868136713776762268869546899515031223217771399851542040314120485747549242553399752344824029291354001576030163568246802206938742135376994488314407495930858444336209374600188652978770962919008689247080440676557062744722338720940200830842051043323354166667063613027694972978353699134151972343806678753758287648372264453025550991912512639224272783968663130737588243568332885233137083791084892590772068152022428558172116490635069182788101578292832972366087326362890040437238311253282062752910292381179616937025614851964075670137275214125251437552795294940970403765403415463019969710239023890685689873642719001055834801380159566965044346752589175544889589335526651931466899422324451349171628883184188999197585249199573073792744090729801359446387519551468455149527903940189198378724038095664947117286985870119882074899685862467761264233706209902676283978793217265865701125797461418776999933576213124252056679945735516002738866467723239209781590314158922047337716138444615334228526949049991443984502850965388233301943335440883687486001283770178338728585549058381688940814609176806425690574469632899943264725244921281106669569670834217215538650587640272321540913462980915332183843491428845090227396717920040307898273674294582982347846717318970022036686070153568881988658598491909671462740354377894814548717723816242168865709567968473491586860928792133163784463327185078217337005205766430717578473075051331872722910805404245682819853405471078084147332651410268209971806119681967888991320935388764324550138274314839111569816113847265827533378075908570690411135678190489021767666686168198774830926695320612767297353429803899847726638939626794520991670452020997522586678553669340832344021864712543929737349066303964041167748090143171772779292773905591136812187856266203248111935989487407365985046307952328830699173055365138666113177991157172001674491295324923469050669793247823695119471641328140825107430500810245359982973246033458689030284289060787849881963824789717661774944114301277154955380663619848354761738369630319032793728509666859456846289511876139772136206566827816139631001607170067296141144115806464348830033462430622733559516217238611787659689049487567314091495185708718112444217990001296340817920990806443120578186781644477110007871363210164198506121795067724343095786288997319935992019557756204061815708790836773772083316190502704379902542913269815830656305490111667736605679513518159013330308338440830097815545497368843490506758427921250224534977822344627446601907042932943550519442176370984699642291003699977414071940008683775754613730527499718981000228525799334167432304556651024745949359381977028214515962671378303686966749140323523724132303021069474590297308801884990988049608289020987172257254725635303411490928400745793599369199667720906180071991726834444272968162072934918379907086013247788039380159500610272791409637058404684209229030183109851242651494940290209693573063202872080184392980684243711711305188787257969537715158230018387897845187651681898716656954680152264288981059569272764879614122947586086971233285321428282566281243133416011246572467996229919563679921691329256086868725301860070407296353466570954644798720874466586397102023689438543698860338243201240193742343119944840060177237958432062436888057843386464220042126419584554352751408951362186998654784636012115482840778483512375865906074809319091310897383623890067662219905573314397455482660663803918275899814558932104600469756032231404775065572070879408393020201665167992423761788339907094144121229920118374144649342584695627395022489074104841133883904564654810560297632615397377706274063739221690047463068103578831851021459309017341411524326720908075943114600341715617281001731154100557394514146643950963953689866589499737105777962234956695972801482631363181818230632976764508085478017585894162222315666784221459943128301667674701998769397673662710345655532089928809984581776754746698983302329616664774314725354830205438481682775176893229494811974022215155272967923307130355223870723535468119555858081711807798063609088233332854758330233948472195586018301185543956719221815996771151244546353273495155717649646955049017136893605026828725572657972321075307746023625360322967320350368387957856132017567767073082662612340169925945230704492174982563231373914407070173739057697753702939447864198557084828692414815287422913669473109771760128983455307965482629547163158680520590901672605521559026227878201188477302083150576867788486335834095614999850554012049879687188974463214570654229183666302005768788217951729439936819069880562290585771385516813123359134215292035813767320043316251126420300367220977030474034439805607679920580712747477040512696952629976953778172178825942468596051051622400451579375413505711162785166324473827424678119249369124071928145067842153695805401893108388549589806730491630026350303348782130166549520787634518398461624186507235044219461125727520222731114450003762127921228746431530668507416162525342034773649560918871173832086187719861270208982893800528378139911048210872417604337430641983789577535689076451798570331917661713183008527921045076887671862332193449149053333312019488551421905416390600515890363251006609747471545370927241057539389009196401024552661015830272578313493039074215761351111622186086958525065924293190902029653931934219553001346632525929314656059840923682510606694032806786091541874327277542773764209843545463352160543005810754331910490900841538482954355526150826514804147968835121286162943576154238323774905869185434330315208754560247295942486023280452975423225946514032578403467222519275709921910414069330378983072922714763483180658038724678131098246112769280205249014731788199457259924997047175112118324182679345168150469184499366139972378104394369462277465649849865220285099916997904652111240346881543236481736495968966477776723655201957670554377834426798884602416902194666604091026196542917362994517406902269576427436158318075717610103421126924498318256919605277498609374197093808359765206321147423893232197778687947373240841390138085445679392160265867371962932270080627598458910070116833998844229358500913849900266863928292148961780824990047117165723902375939854800689102371453610433603798861205879833769884862124868221605277787148120445787501663328806914063963023345824757659182187693275803806582950109518326872035323903811577754509528207477007120152357807797541501478111509855496657435192980029203412254776094977820866163615160537083161693342419667323934113445828317714822096206007558231304187000371502419291576355711791233204743377052949544526597945135611447785878365239981445881730746618331956953242505802303627923154997746106510234130419554613772346613763792214059395374862366227906746316482094383074964507245398370039677739761932576943474057404218414070678224148003264070087870495036753605373556553901703259506405831889325742400681888331903594584422266037853759101659904786187297374992767271349403203150862203595915504452248102823143258542269742285490140127761380232394656348650935699583350565518657538898795761663733793020720648423132423693382319315112594500472433895887857825358104507556404192176090878927546505761244557525114340817722932618702613954584146074013345176627121015401109143175402374005245503593545268636786955069830951361478559749737303430949026672285910857483012474546311260194206796569101040106795944794555675088603734106042408211882286326294529570572778105279272162722333114393622159505028714968957298083995140609154222822441303992647763170081212030253719315113226496741892176357988602393618999541667996854980028737146489770017200196355680377002925824278343386413024806336972228787479279051997787781275498555438709413011972758873336062196680437084854496810540589977989052129691200672578371994023590566481406271218126623497254748918800296948085870491552338066040806913830209230291998093522232066030427597977038372763952536966564565565728532318303363424397364669889685588197893341688915481974828323432053318661445967387175894684755794069864633928669113993426721162425718440393418306033225756349470352598398400171597217630127724266227001473073295382684945577503448413526658426821163248238195669089326234831831849886607115145169336241563740168141296996380015424851283222467827432875520323749057038787413873185834307318373563272479977350750217820432941875720718467755927984045449327696257533818809604719446491159448623813569840212241942805724242858171758626874844260376670066658697564330111108888399823723712051607004799395050253413166053574937669448165444023707296129469428447595218017599312202479089780159045391449775737919365291811468161842549244211649066214432941988540601382600404260618919944527817942702568684783457945147268887666430024533175657615499768800543409756801490834423546767007690501676308263313088777863481942593406711870136815897952944335304389529605431890841782943869535183422008052960926049407808972346120940904958475474911788793644629902461834706993115733399414050526056797235709137218821488097085916723937081692753094390822935598643732640746385317478666353414429936563010173391444900803478604040062855794817086337229021995559610406902052272840196604558672206030482512675609283927326931230009404511591930841592095126340306836397780524143765735971536355460313713275320560361507516773924787194572785096299641635140751029803338826401605741069971680569951582510350911665969742111005222036128346869437798940009911782898127207822509951006414947519348416722462275376287704422115720080866504003097099346242937410130390890743575107414604197317186299274246899301765367705245528670207706649012276768527493445174222694161964032758668719350353493292477659746389373552426990446033806059880317140464849167666282145259770676053538421828988034625117565271964985129744418608172722447331685065592958728561376687153049579248362053503971152401928444211547161091777235880538975011191661164171621555756878786964105329511095505431714798598490670045263840854532667344485472607638015385624768593349268055095034903769974478259320380919131528124691473218723427755029009176844668008580588608598482202838997266423195602838202488784457151285216885359783471670659744892701744857947394549274187959833360824236928148421384534021730666511799518344530770314932144207230092994497502681346168037166180272655691028180073494261807077759749602965566280391807320077955864184212545842134169912061913038496102632405330552699558969535898642642792054410604124809993676851370167799788645653974753643460566069991105168165306879562626355851339678821471462482320108040987099346090976775159485540228390968769075940571440234938743198455150393196274060781784902051376334771094617248064091187554509166893571277883069691158330034040340413283070457814363318980286416895443085720162308961308516895170001494768095903068070033590334918234829993406405957051755523082919966154429920102707010790270638535256324385398184652224611381594527222263540782586680387903019480342015863802093758174911503060653277048702947666801222352968526949164758422200225273159643955301306115190239456446018649414524140857779259261053689895565389607083821256554369470898486900631437952281905439554699487280301618881423221154573619792275482227534352063561452125694008776565230974904753652920696557309708087751934727714657819275210272291650477513685579633918613199227580967310434466297183118621462193838077132310925219324258367195784506107896324161842188166623933203084677415275273327927009081593882668027243552162632958988686020203498963669402101689777667610265387096044015104461293648613617106561153551160121603378477926869929360202131528386266195862836522514248598903336702385066103654503147887056727965381068063701547281778556046371053519650259027290598402791307186981764242532749037464080095482953590083049980674605878513379512529136447867067857489381359128668524350317244121611163768793919159766549713430430936495618339883570258532397243257141623392562493678277879133333461299346507874439376308529601495235443370006551600436673908601496664727000159491286150629027155971836091603894578047753914716394711890913462996724277332810516568909765876504585638702342240967636295359641225444021545043671443315150462000894750260197297472287628476543287974198590566449676269869824298447100586259412928030127051103892011148052616672049875433267475284202584729952491339090131814927010570698034910330338575322104901019033152081558401584373099027787143250131232726964204394875124360848047922691281781973549418744362915417649258292909380432893151457087918526868257981379538285050941116130223624967234086210737222542454020717621124661195160593338504301334128257337421587276376073944367094990538735080801268293372980438173285704455941072897966101927037572334783766854264287447302167929170508380334050553703144890490063443543057084557534430769625412946395203222836966032109438518822468232205633311624470383507135721555745387687114614037559829181724833151089857902860882698024075050463140282320986711944601948437747712639283127432000688883752232423934157956026665359715873577975900359949800134440370578626278372792770074827375598096336473345937237395998146905217668641346360305699002754097491228726440779774748699802212206518128299973703022356421090977305404207996133293150869916075479383472183462067965091572402001019135013147703546294671448317373756983466513368480882794164236712137106802183025568811732034128997824339483804419778708158850338000786352699233953330457820060001947147200577701897162058709795630552305609373462402682333902490560009338905362773224370355332352619210123219606269704913698204809394888479300455217717982725822564942197321284163667062634396845741599038810466164614598082928180571320942101447566704627060250529037742098020977487541939398532791067182150821075246457119684990479797148547493195953289631823069829321694209999584704948475295036349984725512619642125477548580407580816788233646910732285432077844968304091339973607722638186517713463773222586184385912487346663006759058507499523975998083111631085337765062837732439277088399044108137317694841685922299022641657968746099305581528676738853872982626665439199507335248891958962382237724922515144966570469986795639565821385852375612733310170621077380851533387642508917641470811891093743569178340752607155023731022661196848942300652984697187427312568111722749784747553570962879571758746416052296557684201042147935297785078278018077579697736976447707401787766448979733687584171629019289879462466234929486820077478995148656841666210258625832115283742068243922303128631123611435148718802464889348283309085127762779894186460424338733899166040434359882687295708400881626353408160529962315710314242384958828092312060502307175913484575634750126216314526817231013162019824941680055075847828273539592693335831368707479918774778491351739520719158051286526782090065686277468916013669859425084776725957300284838041935655073677183287088998100175301090561049754645093245365753771011144385084258720612673128663449784013243845315139320672318726606043642204458824884804040253852586727023374990551504368536293695641209668837094619598587605383789057023047076306482614419973918979150566099125512595086250320406538956115206341499020303711271957188233717698037971228875383858117819982708050302899808526405508955123424859625304355473867911559523337550304377559059393282185141005885686253450906138519724610582488917901326815612234024201878205059836997848302465278305522997975689552495455159155358171715871971102559913149603062220750575833739538937086922767549447432604014491602923929702407146577523411027893663858282840722140393891513897849395240082186071461281917920840834721709062923424888723764981306484613110208976452954300266995387695670301192865094666423767383237236841259573095276971926929872020364807061492559455007783449025511353397790054774486541713275478070682099770562518011545732128119439180149977611075498659861810611717347328384850784612887542081517707004537771377170057574840612109743009280451335019197484636536983855041282713073195713064689214222035123979849813686439859453274698400074785408014504539953821987105639512596272858726808448765203905385533396712233874883212062928007297098666994305337489920198757333697265511363903572787039770428477199322457093133823885319773301343412157449335936915042916692512473505502361066359520535952774339835987137968240719343601862312526089838374522620078225392996594635987124233574252027613240710811996268097678392082119854735199404755235961241399935510176202810540459632621220678712296418522740100204671366234174254194887707741395008261240484678363195182667104437463934345404084537760042866383982382867043186304130036578845188447280132111906054311049110299360515712929876007333779298226201088329280209493957796077165247169825600331598811243370289887367542884734410514277820671845682397663021775344918646218740379294083499750562472095894530602677381202497559107886906411686071426716018658704671166641580258299650904920117939689132940365580359300995170139798233752065891863786535072044328687464800928548292629377032126318370852102856605656400684299026531683546825141039025712129038799472580970725829317188232345589697860428686104972443801657877792261611022421756374069086077858373160884433944736756799314090440311933990984934603319008489805024657414031701697759070830026793331165528396018954649185028614380966948877064660004058739741775601979521820851875931864602763558010889130270748286104744480078080642987698479230431360046045384269424624821023604085587547765884771282390947254035357837874210294127610923786756074034889175464852872156339669217589755766166722151953711010936891808738388308717901140250105595207932314640384293380784414584640197140260459309078313319315826901090949618025451920528363934027970116133885782459859500150029285916615987092840961770706039376081485491533729558025135177268566577400378519976065103480903835827170504457204395748840615466882731294922713232542767928572205319388903649054157289241651645509404921435526140776731485768028483035621117336179058603450644883234651754513914334601665692958472273284985665418326868730067773790747913278222786528501093200814501843949886383193764826735436053927611535483999632850782187529969263599437549583112062859363767396074941336221646380238557241801778010281067880691262682866628897972203432594090453622440577992351744064750168769416552041444189122042714672729417411522756039446778386121735154535794830870193008284818429716102515550972242525853033463373568049409059760455622651839079190741682809424150493562352931739673247664454627718053472411238110389881118048389880163724198109145811719630281129880856575415531460161662803459308226399635560019739395781819208414798723552259138504209067098507499932787000756072585712214730776208896073925147114093892348746140696455587018301058866558247057658976877093054869594498727248867624355626680460783814455182314289511141780460822160709024344171443111627517832485741820800999882429190727038881975695575819707315549469193147968694771719803759077030277056882003584877473743478633125882569502965407273155720488560134299135614261854194476135291621318729631732544761174755801078751495597297422693046764434059975194982016743346009562503206821912732867496668000317139562703157855543801637482678674304383626407216682398510987047492755550449973960798476827916167060916321795717060644611237355239907175814400068086604454342074547407168908706625537714248440894769622596677288100158365838946451382356303860047096312112946521688520424240878808624860683839118002555078867335918259860994068711344814395241158599263225322865584860496999523581786806213443335021721738972125503623265038475984592682088452865078301144880366192897632591797408126628555127711864037604618422872826119954308550914117498908511818714695709112160322830102466670127083804688243146481641386908892082539877137450756959653829373715337274479655440946931347532988593609885513175515880210137895699077452005887634673362664147065105251063857207938424196906259541833207368104473359611236352513810446651222817054457774181750786259184462818950204001980947961411429430085935984454262617336347842992493021483689037450453430300509276548662483701049382046168617196354818536951801500206697148712051260741204652101852940312778058339164192350732442582381949743597589005124730541767122058004804125480481737290128032766482913182697866659248416440574326939164366135993636440161369424412523213257961231205728447982072606898620735753292426283871921465355757167723085013095536059720425603235687603676102179802898003640068978675622183430296118785534940669289423728443502276951414792398640883825125322012533231364036921050543241630810118675671405708338011196805970224905267372732155459978309869085675075209196748429393811945795609489732099364798953382478158035731243032733336649290118531061629018633954357384303499008396109018864013375999958942655482161271508184750049141223185894984793217572543432878368459958506466227702379999114266474386394042654039401438872846799101004220002762426343698941167375683694277830242940000930283256899705851693351017546243992540423213202228232423157088116514029412704462854000762335794632495082442835639297222257178595430947883353840403305147271292776295745738845313740745056153963983502770285541481419414872194208383174462285039791674439482138334004397782715558483998491912452614127911754911485322739976057656989147374500872309587801005207720090393412642857402110090434515080003110104081548748465788196777683085556988172939465723269283679433068929892025751419305812673127355365888745061033414723979194905317392996732350941834812352853342524861506078119304229735308140696244762379575219745255571477199212627438790898758266117126952941360853620988892174377985799457818089512142082711643707636526008165883529406957407833237364090166321512460383051070171478325440200866334053473613262294931484791070354007673102278679648348035293877210516101655891874851510527007357974175984317294395024049620988750336345900816764145391696095420740649033313505289758577971412047214142468393910393609730159403617994854711848542094234567272061747428032379624248747400441129145245823808146758839408645206382593045446520861675515170258503293450919307403309753216585589454502764811607275133491560089377456020269974337342471466094326626535185116252335322967667051201610167857946100980892310525064261475892716966391964006621669872684678302675900067236900074484338865817735534726198777879034887479032693850916535932406374319996322230336661296647562770466715629737948621016199728529174881303833582114672407101698943691065491522989990513964518125359117716065557373964564178043840951047680340013674289242601976709514584266004544463330123928681371759933588787080990890562116737006617522553370592831804527980722902779910591804666581494694930482846152387059429111609637139919524931036245940758903594167345362695812732601208926479356931384681087793535853691089125401791372151087591405255361168254494497007362512837668399411538908862758113104079984027813633994478959362790798233459167534098754351198266531789345048947621283412587759689889723046844846094614604104932586188513579501519855732986133422158463529948876069672938703259725625576165745931905645388364616143450412346763140797557334229546167970471812387541523923538175187229109109977733569508908699148296838112219674667202837110468949892381478382028079192719563323080318420503315520626576915754100930756698113890964484787120321991603118129934958877441492760675333054916521465981578194387822947033973513954861640966226905418149017289426624318291247896419190125035589035762229375166527597695113306859595638202714666717929434740438418365822823647284663705410709452468162273283453565363116924309760751438957089275601383725741025766052993509712565313285509346643644584697278230303978202452980691000266828415641459270515751180681093294108414713825357543053026104933470963464901173819127155010378495190299841704160465363195487161728881812033510172734118599219905771077679993071869436840148725452155974349359671839183906798153909953762887106175046264316845010216434853888880792976357303232052296926454716666609522923744665523763698504984978279961343863793375624737033792831823858133177601233828910974552889635683128784267993522388690723842252316563880005192887946373576048355549794066963477283552476529303025058081936347825829581875978789647329002458079476599869504294123085105314089698531161985236327340474132830788811955359581239642205573003323536038282138448337912657331736615885678767641449123922750609936262547837066197620455534037556241412688508973568481051051290598973984071383775396540783347372833757185848623176728107274607976422688041774703498637982837810369457930258764430784106302086446890332827228886856543969909348693843625395320728500924328673147073772332145919763321445757189022580394272902139005180997543569426550378100333264632130633434042574443264369445506090586085195290365113176060544170240023064117803214540413083534396535199582444352867879534224663025462961460889303977169956385579232047421821398836299222161120334699392188315609146231238386921636482693580248841385420144370701913172581996425968855229187318254650132448161498204735732139943931111990751105168682955351273871606455407721669837929703569222038035331074606997928767218221735810635376991139587537225551373025527016563777152532890446585258946958848690882353188464066987721944393747547331518065478611095470466694586867716861018803818762632200135106291561178875556682728571418412234583644362988224088750646338898481219638946955676488859827938916612387445629060866702188241894360958092832851667825932142400619949320118563316026713694150339792213648618872686755138089805515954651969032334703329402117147336235996765311522637494014091173771475891311943445977942529825143221446638124598450417390760539610054177831904268131036285893520914219134574177140943593127437108065684808980308109976091638841911178164257114980743545158359839168530326829904965738353879310902966687373063792799013738402104425252360394013674180814568528362452662486225682402305629151432502283126274192156142382209749577455862432233528333632857660250337779029811361159340049840843559905081117101131166132521541640866167274227871490585689604857494123610482487858700671498772158484659268198626918544733440170125165039745703237351358626445896383300104917596029175078847898180200117005818251884737281175237817226191509631117973254944238193742636549990410674872878734224352956518962438892969331215142725733793107660075947875775317593123370931672022205190104413900503907687434390105376214492456576558918619328258974400434037970388101986496288351724251562946687150682103181517894749614656515352718057181362207519250194584293440620690127652314305231302438103963540301495278001982975883095010786019170548067862133014856312429705971038901182301538883070607507618146799153375683410528939831321424183788185950901332403677010053703411524141925193657849392842153726223921019812901640657487661329760254414297462328200914581294163751962394279637721850181621992310566667065711231067140147767876848710989142612646791351071400846163730871396998187505233001474651670836714451905364056896054941515750082771763690438322377034024007767282701816932415037901845834926524621187390141958177390806427530653441553413222302897450837937188180834177413761143678582391665785691940827626852720084053066319957967006254171524267658275090336116210796644383676825217830635025599513770002191466577575046554525890805187572899863976797458920110572521500568844747441346914894066622537223797141134068472582197532376232632715096261265011237878319709202808492333827276179484985391458874435482816949967335069605773463037692376007073947164076402909658747526240495479728377654379494576569949359779242973481240069523231526592090523048132327067078625229498426691144254252060252092464634358881397651406154696428312936777612855830394335035438726815224665239156812397864868873000067935216552689629112581599125921996762197111570118326690882628762606456916274758719380562322137470591471173893892728446091299960815335420293999927537563439015242860192617205210713683943060848941381789314283876641054256988067639393267003468254371012523112579211865725824214918481886895876884371873861743810741916501617174520379487712383017995931970981131317397365422625807336884997511064421147505026772331444684842927376454968409742980876639613073106381200489301029251567019949188812726258687400934329802339613538912169199807142961172874344773909544224443827371427026032010753242413717844164745601399263084349026577682117914296591555755194196596860269924760827117227374217210235221813800363166309944451133132087729796090700477936855905082358312516697054185929247309264286064274466389733539397481380396461082383734717432605689702337232386822191486952504752049752908391687416101696468462983095147949676744703621072565433372704903770894377370462370933259739449768519629360293910032747647979875517992414720723784409379070197462806113182792842565365835250544975305105661996712002245339603527822771542381126338940359055770756322861427158552020426740176159600683554952377775358516442165409294371111360578273401991694230698633822893475039584298811345964886762764309722363627104780331865866517210864093242846669069500521329037416181623302367597312773900406586306876164678045136855887031010392567728402293011769432073815218860575364942984765809026069628629624619208222614574878236756352059763121513376636765291269372744001930327872982882319402623136508248251519062104701420255652127160352603005088656084187751977494920260070706627160247826255766044907337740485208840076856444855736716417452271017993365703052105094669948715577476239445885228740613554299660207053813821184452127233472748887255895497449580997536902413608959276211152291999062254456977622095780307341446408172612634287290396481007000265271244131794134492303399370492310843740127272208302678087766391783987248742790915295586903495338560337423729808799533281139542622987437934338350742826181545658560467526251324350014300824686310254505468965769551493483841251840103371101369799955152284177267760405978011122934098440566122622686805989832782434332224936914602707607859764713236602468190886421957079856224769461978151216760506127431828606038802191980385007769842985704192929517066980373410239956702522796065947993449194745722486463588653521665310332607460990593096998243539167239569660565284299651480910239928767749126830557350501405825578991225002884685820583800030674706751970187220650051542665875032095110241803764235127105822713877640907888332978317212933589505863301477391238527882212111851914994544216451530297676469917355971214967967089568437702036949973660941102350405458079560394908621913269925696239361730428198766264416876065761606409255083261480814219395318707550874466670342821354705006140428294596113516432205129545989727419250024991719114563121698336755955121429632953014245477085067661323288130605613863882371393915753639301571496149778370847131537572638267966255721511249211743183733169479604191816251588408609892542589912634912021578678143774136370060254627907189904742078861687421363598988798538836178574452009413491576747505605607489108104396897385939666764356819664405027953136470164021141286242578451591248040667011285526957732513406006421456827142394613740452477009076580253628496085543818413459614267103215083991678797619527742530178349895617944061459656921128583895585723984517737789075123099502613705478095330986048706039161668190802062644329897530528077531654100135050059140386112839131053169390497539510618996978704111959419460220687480021662935244644280901818546123927036847248773017786101270104465064328446592725072319039035259333337481543850571045301119212268662167897890029331007152216581011953390717390103955765271167407589475913722191139197205359026803061328603534538749156070835862612316976442501600907848812053471655107731933981404002062805289235170758763085087799861459721692940168378581526002202735310305697541396093833142906758477431357722628582290014601052444774637318337880165392441682016256106996734371848775833044339942582797668456841118988210819554050915367237518850271473062480100686856584221368034008828459734298575439390400666986756507492353480822699698557876684060026402332370771467403239039734429952543711411633299420895742673680810449395341217252168421184980909814729558790532374064836048831554533973638030277518614680579558795930454742972916423861510759958941585399102729522642306544755968370432900231812415079888598718204044012865880018605868900992626805012420217358040749874975438982461634448831932283611990721387488467995969548509307377592275033025272278839034401290048947583288393974278277060670899565028893094908601381802855215833818983527154970852317878428513517525344554237438426730471123981387068788143489502393254458706561764877275492384982344577142880538248210905444897419371371757985615220425677743665553639275039216622263996663128823108717840379098466873074985407114881725078455869734208337309427799176483294031787294118212633748468395553805853452548931423991632276027500926307106155620647432001353876427172447316413619214058952543189498173682683902505916655840416442046411419815871751233039543381758662737588177887757691317486123242054638461482471580501446341641087431774141620214533190986110154432991996967570373107662294000508223628110883514056226692377697354818941632443719766050425733049670496460183350195783867852137176147861107668739121279590729723746037685146296631579326597527099425094059983487977939707805309824811140458283477957455086594905416803650739823470644499023813451939672629597205162704028460482804660073482727898450616689357896227144005766378842327067159765037436926194913939583133947694919916689411080289152173431818450325495157086383455841544418308575795006608155029670261234803464724203692628573824329180100195408497449006442567241211675014068577314895346403930812076741210808087293500274910929445416212653959839551383559158468880545267881091104643072610389595710876516108418049587007923926042057447220206542151377342820963460594973406834721320424211515603090293430852708678447994725583639536444262353840373321319518364892307627881411664333007526840072079152634632330207834087006995440410448369468895661240724522694857805369408724386778871059391814727229745775739247143288025687852002099664506550157597864519740774203854748336798267510842720920816000898567408108052790393171764614549423181830212356983555058327416746650258450817469431156866870870793737287751551304832425459532779573766879347074976836116803824899117476522436537490233600806192786376602896127348704698620400018134707823639961411441700093999438605170927864297008310715031938136304930316854860751539059888463957070068081781751049219992089320082595115338648463712823372012063416984811349212716557862516758894238226520226315744475120745768761749442528253045309504155247650481135977117480227615050267487663121872598246880601103578895178438548394870115582285784675857445413836915116047839740667757665359623245385409018368225474377999983999822295549517434355929517909865204693120247445807059558248095801070162867171056424799934907533343609863748011052939997155954863955492394298041277240378667523848712367423751729692055854380019582815238360121033679131708495183471022155637179279508436233546292924638530648340473585438973764536962470685517548543286106763211422920449479430169526422864540210348825100289589734501085379244435690998297854598605087721797353219990728154580872546977708335354416989894685542035810310147582481326966179800324736428677649634218908046340581644045720829514764946899237623148038620655346639805385831902460961778671358669570572359157359970116051186478732039606317226313738026975310285634295880857334666669063420264624736865197875657764634370947323204104858369814792179690123191662957836140005407641077847980479091604107375701020590092506541305898301908975248416614698695264800629545334441940715636448597432128387718265238331434499269832727590088063973414560622796181357387720438327342883521289724750491770391460665836680741252735937828211649233852120079287678931060660845529436115007646680582037330083070016930186535941872557388047343629489292287646948559170304769018790665769659580436878982163772766610053159479367666607291625303640829078011730743936690729829087447629946002872868107742052082827583392490522552316514676566193947773429777753472644495030089555039700584005112431999593225809014604873925475907227744527138573661173484269395701580927447444357254279936374977146250233405007267882927359468000372975122190466969152255229055166953789808762944596231346669531392954220301858644695575210567191386408691550755983540161558829490529121914077462878147046609714462199113564915106379545295922586941095779908271352912614475184901169639125067894126787467166485544353161912124767137269459464975027901150614402689779995728744073533913588139650316156506029066143069096797843193519013014004569759049098201322900581577439354703533662868277198179994234111974704323700441328399565372504356126432342294119860112735175606737134340549956288881663847088500329336981850865390686760942180859528793246426125174592464017306393793943670568202300518432735694987748771149197696414923154036245443086242495499357564483971071093553478698584804274606431561612611374183965470631067154247887308923727967015636394859144897397892864155411591514560906385166543517171306955449331856437261141932395617926216387504211584301480115722112365559635720844718682622822317650495669876285848227332769079164181507420532263437280983658246291179478523586127056550370864431421659920021253888375709730218781729019888210199236659028397887192304668010346108826676364206927037313018769604244311787101133631478431851616203367743875320274382270264196712827187968856714319745092317753229073920909471118463412451659612283049967058717429934150539073422661123008830856111310262242059915656894392370140474178821798940963677654324585181048860865155121974965636429757695643530975233468356110794520833897693696306639174721025624920625099453236869976572552008800686199794217080731081270019472141779155121256176755908523928171041459046914875721631767646844433215894925321325636446243143700970691765172110712300755952119760453918098842849182594413437487795746991207068273022369520402284157024065842374290791385658675345375849686843674036494219162379630463292044139520517666499992692665819839835463427312098639179864236620091157131483591592320366268218691608328297937332321353979366449461117991905620106021265869473895144112503475729550952852591901478820410515040066660336147101156659582550627770888560551098118074816187527270382341891582744929598744691995422375313392508244931149334625383870126962583468516938546200401862489510774296685103932830827909009636944573226052707445673001852760985860406352122135620886759005745156000150662293086996859317797639119776493123199769174733287809980694514440281622707638231191957737689745267966421232873368764536535465401240022534324240431763184517184482003174457391990264040506919638949672192050893789977860213664007746837022875098881720925075274395176183055232122866247054916970249590083914773511594779359566565309050289488734734069956874767835750219444331561725815730543734329295739986607997351348684500507742907975068258076386702287349063998760653795793522061765343205228065680740794450864900227964441594056394218617169382370875786413531403303368709832713003341494386530171871864425227603539457064789045783672124906351189131073449175218967307394832568300245631413285806844051022729987772471584259309939784692075963155736047913628345587251821251066966201439671892306669102837992717759084921564523755295280756486575818209065739756762266367678172047616908791810456983665548395181940564581006659398368767465635223359135230365947896365223001097468238528364616008702377086276615092052057044728926389577529523290671143715537550072050809609406999339970341531295456865760182616897516204345690135833970997791067672317508677628625068685855181595259736568231368063814806202307744942346772492885939194882367525876875150132728108141682933626750065568852863778611975861349918071689724573717406587475247112370824372838113496913770012007008009564992801216104964243620667923548241853558301973270092185785359504493227380702730126912536999682676617735446965739738050442840678783610999822311345261912885441433231827256696515823403866949819603008631798343632117952289880327426263003897681287792298617652561981855728475865196165215623031411526493087800215443884191141775630054442869005634377052321583735412111304900936765863377064291396513830678898226955187604381372241872560926190937016094692192851413471787420758773220810454967382188701573449276562830586597707390840315612900429501693157085669135017137438890854123889206714178227254033938087041648441983565998493537236152741650467329704775192639065840764696430905305541555318247696684756111843490281117149576748644373105269313455212921486435703247538584831864694722165851264625974472280055689676918716362288474536507171773574707927133883679126870547873028460893770688506152327540482836695705643066329696837926566641535552215687799618505402317824747861501905575346446936250246023471137101367681240978571169120777365712622157186194965131772036374370703168286932650733460030184301418415967945827609869384825956345726013817572413868579395107999219298127097554417290003811303975123994167193218885216123454499547638635435207150059923980844374334109364183454484494250857704054019148179853562777673134937001492233360899823866267478910858104100581338316742386585267683068765869682415554542510537903206492585767708699153587371104618329621089833754940057407619168725907061968356873326612900500191546980014075812515502485615832636338718528856721567214049024791158810469922184700222189047749658050600309105949648864724018798853114077527551791620536259055504143188917345788725588190227255177966332196838485232814742460850790113025251686618460431269791045397634731104208527833162753244145719439224682176905391382976167505838435379885188629499170952668285663965484754382992676473563250972512596706158864683421280665378378926771722764120256154671496264660406579707855986349784516317010765374913098867243634090002526573886265929937055612650136419385166808171598053777869940797658383356059451517480986382307986123534754726319200378769905699799575722545237293824381630305325018680725944510655386391117904877574795881442485879907479731728543537895407679568956762017507775652064768725833782082755228409240139695809877382840879066304655872161094556105561143541852292631908490921871658602660328239320465411323777937367257163639414269906851877473159075737037279329356760823366085045781554964481555333542392237499435812329217443044152169831440811346810245988978524946018065901362203743518016044095970428268100813205612987774782165693026603667915614779907479074055854046373616363070469942231512112767355839874263676051589149210602670168487133140319254663836952138885177720074440886918234070006176483272461644277973349925577417686418069843995570472667606720656973724360174202287929746214789821471218960351952278959170262324398968874401875478440228189309524332258721145391577450359581121363134490534599805684231205877876866716043128798097592380490313310811504584868718895769101325481096299815945465484542232239474619326100254568454297446114163671811163006557999559860832341754937397210605292536684293548488083394022464930592963339430362245283353238342474813759606812387103815589661113267667556435019684163401279601740271439713904919125591423057290479623009832129481638679139331108204448291360582879157203101266609122529120476687453126175338402623848391596948242084895158037708584405212704379471879974183342923389182705098844506850867006539076871408134829439656184098273587278773104666932915837024697765492574120538129576571071989329482352335273761929118140160789083015856754352409672742673634018978113888928733844945693388621195234229367391550902445694362475730237040661766897927002131594370327203387856854183669248767974263810764738966545965676194515844693566735105439013355669165678295241574480379821808029616772736733739774837238481339959265017475140565017692882978780975063217313661434566316265468719433352818339142626716352837919233854899238846721874882009548376041472885014838118745012074346760848022414981281649262834603782567948400545846722533319277697451776609040112477869395902177317885058115733568885282616501050832936460701642305586412822575363678997497624150073206976194797609104668666126852528735229234145572367796712719324448413650489231639648890219696120029316750771672193894475572720049779124322731981757864123254091888337108255175082806191938222213575414422619541033275853547331450513094311158557943288838362935432010086073911641245852043796062455591497516556886399046912837408526206733908186073796262879231028771008093653005700013143578403027463103747136013809870470191532455477320681366196069038893479242790561057970435856921804643287660278103923936636864376066327028072411479710435472893559099727299938749132647149643159828931893181962923359679892137150752304678494585546881535811511533785753771047276173339961632774168371917570933116319787467448667967038894259902317717675687187743125433570444609202511104832525278868377695040752989834507774161106062339729569174801111830403466382521274685142647496998352568281510304283271689115925381843171915523022168338443552205656360002078345482592292019945934763272322490194592217116672500318314028227889487186916459203944002425303304745233932078090107526710343461142337515577456710756596405262420594917836996254361952004169087717664112678577184661718798495450876684204985800914905058612028257991707088667306473569941443987546597027759063303984249738079464698297660398895537135361188645123645566472825152903769176418334615237323313689101054232074880191305314173251939221863520215604496271151318695800037981358438019631482615670430591631706864124265823667015242248838842603798339375120040755244147595318720717574540948824964259592923705687872213013957195126738238473788889746907274314960900819917702383791374525281810503656274519134888348044202408311085303202941391975662597693270493813844139460887147743498143287146163711771192434503873102562458089732731871820633633417632119851337600189948705159143615245993685451020912397700952804283873732721149170297669526711873463296032764031123140269488070726739826736088961050858585749870860403408966355456078496576951662478627590387477058163280958538037949979591461380213326607920489256195483808809503833978248105698857456754659372751527612736485519436353524111525882896019349517614407655684208926551202836103887571860058583039207574896612026899776373106868934270841738516845653785836410579413289360162639524754420485018632816067907961358656453502599692139144015280773837430101207498628369532649137142398169364819842655327320571961830389550908854784341838185119439216419839906661455392175734584387482689190426123039362804217545652670695011200539415259274919538333607158349855087659018144998222575173395580462775727192187550994139377939658436796315662196319073141491361570505466706702690178029266267285842832306911255256656446631477183206309299250719473271333874927596117454102160342809055401979790125966801701740916623721170973427071128053196669926123010751388080490497907743638685928635041162667818358893240521428004181558839279997957581484308613395478181161442199295444310499079302815562792906925354610638398985743958534779221649565119352281213192594477249365318000134639441709835088206373223567017175877958700961415586048296282148742908437245015097830328724129148061413242909642432102242104601141045722847603792268206911013555470510273364615544765861955738166063630480120948721836096222856251725519636254345629627583396098761162227800321314154947041259919773977790641764629200750082658621745381500377363887584408476988792044604678658425268221329367827553329732013116677337643980533025807689354098482261387592584003877058889162424017949738785290033366984803598415698607678255368893149482553183630546684325463246851535404679714362144400850196164590526139636032019321677843134844473653942674412389165568762074031702068232433867123562998837717001590752900778377177724039704121122516403205085876728547009219262325949264365139028708763023083657188449236541740594102435644183987028225997029185151448565350058890603593229268241545278049436794941270557297905054496602886878604476948710381596362962052568455681420536444648293980573996994227942653604494897545249426516273745299352143972960276745121518141271575128549777681596272260911609839453386861182816621939006850405768541550903408155425023782920011589366405267757826329734579816532245497920520355917618217711981677492204703557858540145735068122718559471836514287189989246115095859494681868280842125794806694394032976336313125453126423202889125559610262095938722114430931041332239724667078547192461966769725677567057421587167837188442455091863569529255011995689801924678643294589535909953287707507906346892186539226388074711734255000740664687420319446906584569817545568314687226404676407440329354764229674814414859974865355634079004255266712342860799574609896948770175055862071541959963398879668627674072929447099115679883919221827182314571237274501630179758607095579382212298562577567722576141148868499174131390887832963627433598388424166687126703289510198071558133400617992093174335185390294336961808063007603369439706562299055485326141596697646011047519838665865127986450736239800238983026353908689156966096346406355908131848353915520586319257317422056458630669647825996694051815466262510203906864787139843692772322468339506826585386603612259492155191158227358886964805830118167798376541429720075947223394714708262354072777262653607419499398131503181216073071602365407914469121455992388663787004894942487464940369736087930419445673232247051999377440348423042856159654832937012086154516996100205586682662554649104594992781600156516027231103771768730261188779873110141080224825928328082784942747843934176884381972713255108684942065254011035477408878557779314405455613698189208740565815652290472086660594352562452342699788391231771568862158223842737522451534678639687974710944267046291106683488846987157928102618882366355008041349919895898613424382431056066289080086474898155001540457997114313363800854732864543953082015511257068777992366224048871720906477030055631086627997400624695820592480056686109730040577449527272446964226220969378472351248997289796246725695248860271940874629173337375571649108876314311079054257028270392825252224876377337671516845088139789724085079941412015191344979453822321589729361681498660861078523171062480512350714214712963771870558352633303741772000293105107801927484856392100379527825221365792081298326950343144950353647627134226695031661386643009307672808360987006183257674764855937167189959449783301150878652297286698595421765587666581490589595255465171226429021887403492770013045159605082081299661491585820556459676000141863413364029625780634780001625821026604542595827094560741526941021506819917147305279859785039758048393416481560759722706509247789233301505090480146925244164071506734551357740578394657074541415807467569043108441718995197602750476676257270797269684862758678888447116696534073301726853913817642661970324536108243137091861797229262088347880479093224678941272087417344359669184558791830568415575936836181733250006412413958750581801347479575595910683009772099465694454753624681162712279821581268570559795575541623157242967576808194476309696554103883493941938262644307546344987258851103831359654073729704323881529229470844418845270668648372492707864142943512083232941957951808195388783344285846059529500039080508751243182460325648413416927870389467400559041684249478496749631891528390720407669115243744351196804846053397497791251547678460452350054502305348384549870960536104067656975102296615079055225613003932092620096043209957259504126825298415065187261429842165554673817429489286286763547507707648363054750799701927148438922276094670888591521246154262346448675377862324053492805596153367566220673948630332023200734250079047417614671568748161382685593374692156316805225050566040414569852520437393833725303900827208923668687461687595387497678133692232990729958105179844953157182527963319851995780632526127794011683901132506293976915030932410461047160504912060327680097629050312633709023994894886947816813319410494760939724640535453282639809045017330823577814623185247874219962264572348785150594718797068739881290143205062927901052876703533269635548995600368791197301511803237134318590462450689134224373270151297328950202479878103671544653243708753433079084813415644475274363709352162302852676655868609189348283278362419250235731985063054818830660146220562338978745495029513629920060391752743897411046107784906644548800566152684678349178807930994169450314601014183670108131527367196977894874118328159774415003209154321821217845000203323190841318281938102191906805634739599159771353573259433335876976802749916830062597459808161549407485279525518595373485118125735312907034967738228413797728105880223371054043846986354968690046060977629634881228904457227136460000630889906923050969663782913313557895303694641694936961311374108524847629700729369708898888291158544843115425508119490697813214789459010276046895422443397896841142002763031045171915634174323802434480104080462643007050820642806152343110797877776412173040192205823972022015552769048413967050225052899650561385226288015103694627410993922345522297684900847854589695016392036153459973916329484596983562139074374794992044813897466682510579413557382805533887056128792418532196886198245381107795516531566041888743096267887711327762213433244459820776557506805282882056284778444608617735320816633325548751493255569826112179264908108026440330123184170398722385371847048832486167229427180891135585590971499598171522547098614052255807639703030632606728313179496285551133081541656411524504720905680509188925358691509201994987768597503396841793353109262862143010131795159827125639599704980700397755443952419402707030118291169505007552272673963368801336692559305153644464728136772366261661007575891772585783838420136984527304777399609943874798454673586141854827349480510908281731275467909297531856541737246262183395529094384141580944696989018969618483459500203875322918241240273464918289749517015823034994098057235301668455978970932827195326308098142315655230815272077440475360652747943955759232164809284333669437507641882563926445946911914110719162647487741695680153204053056451165720998168371877213922418865018431317380668715099619396337731608667788458915294113983309795574512323783263367988057301563800699071650212143240514107422463996886082054098250333568331181789273148886501142537389277545146137972540269423909643269513193199485482927470012704014503952517284334608800202358177084772481639172185955357781247562891087590005102709369071304700495523491219950216806417052313420511916429953171992428594405781871857635642726955464786807945429666544463812340120308254999744208480624134631829962992754846164653514690572274103954014214619437983308542556615999034677545303745893505785800188244371069310221796345008171183361918790112410432878157063291800794531079084462506560801614783211733207137475848700948398541756235844963247872857008635383568041353214027820532651500765701683045132978011539761968937589010988239492022790976194745873023349274129497209187863082553372934799373859857043702093098627905567160858316773192205918715467376451251672206863751675625056778932533860219232311140672347261153653032715043000525535460082805058270095694195257780276411484816410181078525038805811272482267377897509296671886669186376136310091186678204136841152520043863309062822996786638480231326448345932585709522706020946061494417065849259799421091927766422738338499622703717476757551354744035068244977749530532979316655801943776507550805831092610524325592939625650915721430212050529509951987443359576511161632054356513055150197242838104564197995899473056114697822534234777076004616050024754840785275079765468636954906093773918647568520883703506828147404221069513386604349575134867143148192414847171153744686385821736322009288340011695348179596115104834855049687632668741507522399635196646508545611606113925676770729035673599169696722921584954625207920959629234755188379861853469350157670322338617321481593390157964459718340039878339251033309958751356207485040854549881197702079873298374932090886554058630445252920167439541727060746020483427783151232788149282984747362756981950060236663153305484881237480674046359997529419099871293008968720145033472488913879081112808905050593426794448101699974619719992463891497750460673662371192866426206116619046884276998466268117226918595701740408257317562663918790509624606826455143457527009625971558558918763872267449583511965319774540993691315297728152576058351817270149496139401887598011565062080802748834348679271919617952234755193973867949229126779453232007840819615612821814990741263243291917657805960038876604632502368354134759339150394286434890064220563032122315308737821082509099757042020594560104870951942703433435047286103068615600218734501523432412318275152361117453729656450910947754923675235490260854112087500468256040678442194018111134773758264206006536854442230536132267403139679492020204349371602852006314401111109248323519051306032979788818586214109901450007489505009186768085156107843367993619732869878507835867104864510893024414391914870997968212824200749219467017328043882259633179269007093621214680492029387333154679197864525618613589391462418142038430005456203484766529354579986462790949783429555778406105994036605285340507431087764951747421074828442074375371280023954172780450714518851858084037504186755053986078723244223475429124350321430851516795361315811643478115870893335116865029374721799273702325122115325545681776182084859717463613975575861990694117390528497838444395894026401945111219281584888887555497916848017087083714055243625503075564554474219541264365967712832545361037576856850538924881692910168691402381746054048856124005746698181622688577509203368736658359148549840930538068584066852681670769445235029572608244926774184909212789646674397680364359182392012265165040817530895939699268382926039526265444690998947287770196085927335944481488936952512278768015889101038443853599990626928168044468907682092598845996392735117126264230092044939957483532775503678716328140724293213330553006953715343964695343832745997821216149816622457581849106223384302891065190274331954481665434405607269454535104248555803491500888584547415650425230033320050053844280304332808589518892875053356806463355217923793474677482494223788371532914006090626090525001028575635009426541000015496462685510238778175044074675330492071863602846518361142185786775441631592740084424066042648696193217916445196249159543454801005778785439895750601193221145661026482629427948289541812350131982558755831223183785096633774575050765944394325120254486419496520320098073799516465412091672089615141266511012010574198217784521764697443343760619486534035627467272291080415794570793990382716209251760690717635783152123224553141826324859349882914517783682828551838572452938896738173630593634184770025125702073035755474332344431504032536737591804386254756005187320623733662081825309877626461802104321301973847528274679521076787441384444424095930937110582070204830566869254215176915262827205029505075714945170903678589371165685584972576895791537578796413504642015936189410165789862842958805233185353299905720907623346188597781093696086856732692778515526884225716430921160026472147759410221862658401011463181163017119871986341846515536629873975142574372922313167874924117550355380300021728271961735369631316668565637146605935442758066165991954512588273249055376187987361047584970255263660984107837027257532617570712249164684286817335581717385634399060062052306825937812380698224063311242238132686357726813952815743529980031237150014349919464091079207434250649061828317938862970069121309635503777793952152880900687955556596991335713011277668891512315994653730475175607594209637546527964421374587176666721509205713138808033655212390907718439009906676892857583775645933840963099620056794397149125263917849856461628101590946728864978379686936461835028193771273671495588095195488886983060473235797826525112021148892384591077728518345137346707513478631023930688625917125037056458330942527753526525242994012124999511034717532772053881497820611860553916206932843652345713284738973227699240120134040595744675610820119587415361778305728483631622115901766325366482958568651384041640709478846012006719745110602337685749446065128435768815148773990626585337306402781456110509295929696682485815471385600185492257600077691832194862670444788336668317212172770170485566283584437639623290550167590725856930922789539770776777532929630987098428049410077512996538330513175237362529505668236889382216428777394244922056060228974349702665093806038405123235506736742604014228472778499383879297497400703365173600077469177106696885458804438049703317690500527504305980709686960817410010473438364592289893357160432469650608750980613745218755267307830772940315020543802680964066164583020245450395094008800484011510299248856587003382051360144679985851716684611064598818146263207079941223880751709442610985594714509076283748456458349605670957915015913401560772909917223224230590130789679854656422081054807064640328376471015151210291424468767891606227588836107641356433989624120150527118304701693486999484412602262145036896103582783341612248594072170510381509474355594799051042889091777156330185075728495622556977583238389740692620565415151555893481835577257801561032632424444823546557735256738942532476630267083421283424106684820854756586457173850778009359594713566706546659374354340621740316566647154092960745803648627096021052621191929858036044925776084262045420336006275668775040020741352766321338666716639746763607123860715616632082624997854039521316457543854109482818428987847793203431815021489237054798939299686958750963530613022147515404856736565960191832071018475868640929318856242624381562759895564242955778497441365785304308822417266688032497907011548132360456908211431172620749180182913802408342856811273724136526752990116957585062809697881568586688005586970994683492460642357494162021332060940736898996186598783260740854134357176730572048537351459032473087812789398402467861047796421365377379329915792723255332196159545132455811334499034549152905122705214139844739987934955857869250238997100955249037038381156715185245726455963631248184258642324048086469387584872932374039264806990175801972987496238675814725784896056361431254107471488937783206222369281799312343154709204427064264470960044257214612459600197932988623256716402233173169593184678005452382164303814908866803404496390687124128211515458189532562976085357575845095878630592984993738089883363341221631692559921401681492008677570931891892582405145538514803207023807170007784403189638396533746039185492911210412997498678903047483897583080097910787257901859662900092314456629511789878924867962142833297653913976885741681344565196221150894644908050611567530323410989186025818378742672180507929683197077671033654024827151811138752304764038005993934194056491246784798862531698214004406454252207834359963439601129191467259348143916210346398223425993192025667723628842239282475232424697623665310757537444932774138932693628507719519942675902008871736322414294109233321215188125450000182420147297116290852830833399504007277604320560125452390478403349725127927452614457178582459336906448940017778807914521465479524569706584232632808288654799326389974168994973287265636797454695389924969119151026965065105258328220319361261931367567787960626197174423612090370929332405638066953550891929919379383249437688069256529647399907748264029233168723416309517101376919431346845921590486674633136751308521783584377047881180312184534929980971792716826021040348629878068130279120318767246674666814805840401223770865713416714815362306409332326927348920599869204631879108101286773514426800303871198485261750536732834205594389382835063122747284799323465672790006211668097209210567956969191424481411165778677973739776846542322167723098114113640030504961201955651431224427256190384488189687817309658127303181529705223215748102589504726734862537987072606326559911701838904282122539984818326213051948916686983629637979738987783650865501157596634521685770840359866469328221755922517466321167266694670210201692605663647038544980933600443836008680838070715463308452614168111253413398014766430565113910370938869561596809135685617563715234282838956011493477523568231577614641567282981004531498701485488446921943151737480785774458912080916276891139433200443782770501330397609455379146785141276235008447945758168048225053545097748651341888430345905633132063655717954820056661469043958770559676329670276891438230228972016933033026231700882567729100209634104479736337619361656488903367368099919915530704576613109730223330386565669795933090188340979756638869634457569858377321797252943559977927052194800498162041838293935083520055944596652455002960374109981073245666162194726862244377415713724176750791695409077181407308323082916392505832414267346113703415996193125793674678876982071041727593619724186557394393347235861453991291028575187454452760018957372032480951784349038165964183631647100204281485083991085944532241331368109739779754815278796788082974676232074853777853539992519666639989807124245191583790259640911867356272002993440338060009519984426735515721587633863270765151166245740240903839233127781302016198433824412323652323483814353093346039849949419611791638200282996740322365137873039056270207608014692303278094922187658273373794599746569559018262762070628004681511710218058241208028234834124956726397707066566515067509072615493438207903989340595134110639306283928581439458176873821621604972897006194939885177893458539950776234930560331180782074979527305842093866485770686357841130019011692471797075847771719925217622854404816240797833032305146548305272974875801864846878978779060229865250480776678079511386273690295857659908197251700948611667435655989036245126798913894570985013786459874974486771556623537775801711982298684978141803367917501333370742875330986607847263547218514703279134329409433780764389781442501922091088407751972080554568795138810789857838803856019516393622287097779807496823716415899355182886035549699289637246999383289932588454498432433742571356971061586988246606171173766784175092453101986214267764723244779611566742064871952740805065388850169718092787584533589209435514657572509786069981536372762728695642587513497649154275645884960902502737096693265661932129515152339149052102036733998636926753905565630928104467382437694463345445939276255394827312958385426845159033271360593675447245453392680713844795570987333921656804062278354802788027448279098319678545971475260039325938090291734759440571952556931512384140058031138642280058844310185374778354524827989397858319637695116304421638320182562282009139877658091442999791081228475390197217191174015572634137297534589399461277014389745980989255277893835957319324252083824734329506823850575149582533610773340798942822082206599309520876956571320486143527114285459757896850949657548902205124160301424204207750771013837756669942929866509000325647965602648829708299609820737701524860945012139783185548766159342143749315995840998374932510196312863666140496643391630937267120739673475805492430015291659631728606062707325461892612984983831937067272260565888036184604887462739802022281981419559633681258965912085182957711636190530019302488945082123206966788278877635177742801601385759065572563192860424729932670959656920970550981137887155530713788396219366989500068601244622430043121415486748044402302584853889706559098322677803698852522559662044412056391106322346672978728245098704581428923593862859934253823144156469854561376650235965931034364506852849664237024231329560232306212081735524871614024798499012785275623736394871793339546025073509693283358345283879964203693933978575251880460698329048815417294660691459318938271131687295805805195158041469984606081685723553721229518165740794869061032970544406741924294461325568367329437974034135123507855722914670321893940557599561577433742205588693106713108297470096399278119897669291825439744843825880625088862147722735835796410013090383095873729622543405456698431173389017558191172358957050518591079218090682645919348234176904966548208092425378657452854416025873608045554257709025940130764530227100797960269508817194756828485554159165115841864586402405258899049983512565079221923567999415543396948107919971413625683645057422970678751451460489943648344677395413556404462368044146915978305409473052280528250540541803863391653900577831823869628366218317926456359730625236109163702338383242912901828119526692691419663658188226372810181636533178453256321211745438885763196611590546392456394517247638793863507766825193477786301418198666674263437971290498185014058689581623732710055827423286052728774026922343635238412851442957517917948967490502448922856257943832394897898689965979843128860900885237471570242253525369317619281052845755597719447560930238196974682158514053399924338511788963197078011304893665553541067402974984518127366392438504621431336010563520845846509696687882079037049979611976233018348338001564218177948949452540650881438738847923970990178737951590392884363173777618202163948052948514044382240391245269349659205092315386335532973102304639080109816214675568654445865696868637510246854867035802795854909427685615588602091203480844779379521378933907477379883118215944894168041736925225883651616489733176045690354628224142556412672617829573462313670132276687241718449963437953351630320386883982126801559738508053726511392824705355099063905130822511496928027268947147574937454194453980349935080452988547600896801591581493079797113967813160561744796301019176628054777430984469407407093239746648009171619822189703037400727708149877351999439036444957897918444692496506216080343963889143381110635465798049347783862106683723551522224457443588699673804604508928167385039456416699187232466766668862955765808777212566422005371250466648197805080998866793159646905297234358170428803229024536213790595196468629705690347253765531447493164587309309128829077407912818817463133976417937662827715699828658398188136495929827814842798913744946323084528942575427841208411471272476546384267179969983382466270917812854756129522878772804889518245836868340138221110514132439138643756990993314325345405418553945722536660344518883770112128100546689340070655617122539152989554953720233815088733514546774143347784470549983693273881003546756304542361524148092292534378968125091110160702894578256428177655132693298991343075159926041482242574734298181703385963537429377170665826021573441557830679426279493458751485219378808874837108090807078443245304194223031610338001259622400414396257263302079419259734759002802784959375480183061614031192483140114527686305989971626705698633740056389605079130193065022725224677352932574559691562332284776606837336135773336123647829458046123106892571991411070224536540960015911866158147430907166366801170080605277675688764728757598056287314436440351800663817705197861070828807987980388671635050460531288652002671135928228393889252653023337977128819929733086349005021129692567292986574311218481193076199292203538470336732061618891693610708806300782812469734093013436706176473773448068920767685738528041601227094343497649202609565845364518034787124483706054595860727798193936365794193857745613199721936072850442156159415250812008886960145818998060385500739838791126827549390745369068413684751649160591226708470561446375821940472368813027415717697797338561184883388239820451058854298897092563858073282351565336346563233269566756821534158232940765039532810875629812613066164604223668205365864764223653803061247234101726226374715361367442372528168524334756725600492427578252622310919550878312056264282426740814180513815209678227965540708996115245635342756370874324993879762470201341772226084488782012565575485969926465510037812102364877421570494169118665986303858716449099388432089726605637931550623218264086094347968599612041121385495635029857509623952357300376788462279088888168352919278515631950048777409189491337133545344309370322608660500279270578046328327874578164057695973457971512625734637779161034946515476297465338467535781505566317480104406143197756638971618077544164421575420128152725395382416445147834293092517087903601607427874890655611269435278634877378989203974669929029321284304725188899876786794872502482801686086133743938097856101328315362125599103174396862535644890328433262330156895228013242172785745132775492088279601364506932640077309600076984823774850081985295963469609377604389340320315789420218374672544953151817625642329481666183585246246910871550510744503098984790421555869647407100311094385458470041499305100520884205342259756040615296609567505470726878557453870291428263751024795104086287649539806592965743780459544926272097985161394949181112440734714337419755735808206344325623027214721735401192465640639633025161073850332505106856158633921184012989000655774805232229476294599029445187367151415886090508447499993079206645096815006717493339823149591177272870934405359428662658151667335807179701240767835057976652612058428472476038956621402951001024231025718478984688842593323191113266029784609148751450734103283007887991980306443105793249038611105566546785323793209338109713063771834193702098584409155976965273987931895841142797132515843702676413779201875464169806510776041745740093497341561092719587741667117202480192316980131305107403367651186987722630911157965418348598073245490397094989027479608203774102579623826716060650368835942659671907054238459532786341570119569559260752791022615680137586799875697038086326300011887749613560723749282936639092465743296975818206021283220223428731822292658180890442916612241993709689422671647381541740140384785886275878705368137214472917502695156646456559851794663003832766232885655983439813678184458134691341605628105309491180296655469018279522859003652169526306659980130538696397298744864529635892027479126416737600242724734705123258744155458978812128400049608323875448427087666049948161839692942753504139844199605717476001170408082178466364717938372724706644247046361867135181793604976387344940409142900701713493971547074494018164038794995266020019861757155432785814621526248477926813717122475696205140098196080523880955299100265030869580605966804294644692105738061963707190982088725278334759174364695396274555777980021582214158667441035667274165931553566482027715692325544622561552433013790704845368813725931756718690766540940581655207456918314811278677478292587663525991197752646783189902325722539738579911337795344470083128040116471927866608112973737240668966838252155894316338498687767519175843672477233680087279595104651120582151317525980951527798507548382636573302632382731542971652018609627456314427602794270302982555424712692652619278380365911769396190011416060767146707675385543825032191081518588722255037671461458428933780239524139085508640588486902130869234259953592127616475601017945197199831678926430722650020122426383401347512017692461250670835257226359259882765721178862479547102956627506345231018804068198114997595057584775126610468969217408133620783887252092667298803468155439589032973012306466089874729443284020244378883502699462122695417628142656128787604428729935441268457918298936002539572663748297821460532259146616416517570069354913172287588319823145968148621825105166616376824831592679456944287152728685155625196478742528046104708600626880516184364524356108347590160482664723331835179615641648515394550235303759287064302499438102588061508655821344005613417693620560444645410548413982106155047264743027144447178884112892532609198742905213025843080209816872255522710681759119527238408593224190876057524281502312616970081880051743542669752235514879057632273937543937747461799815083592084287725500172942463743999208513242490723987539930562926831474852984011096102620354258270513561504975727001943159148017331118442697966068145689234867166882825697421246612134057286843312217380566750315431440754464006817973186541999565854280029859547974774804807669185826398394381423238092544825019568351222688368786507477615690245639070676294669633078398889952276674806836186894311667433983096567967816647620821424282968497836931768746192532527519613900165982606400249008341840806156096259407906685246755860589068292844779888356221969040715202214492568367633647268054945281862127882853582628568866133363853204006562707106702536649934303074531086942294183586577151505168449622409888934553426419636297455446253709355164058471966169491055926870398906177719263736738962563568129648749381128330605649873734092225503450777227425146646585250470418290145324989167220302283704383926217799668278054282869568716684418743448906394534317118642232673452072702440471536585383444041680420609352166845757860527584615848672557791100572725561924645179919041074508515297844704926070260832343808430138288578588786412068841062866080036722549543413686753905595433142761855825530202308613543168662554342645268428165232626084103733308334780010619708536452429186122775940972616776699304972256099821305516482789446940134819018111993619631250362821050438940879492278381247453403288250412280015220021044983670621469438077295268618067787610772568747258731490403237917087466385107203089747239725612037751586605029305638448948488123559272695951744389825037054703162420433836436307728751360681007626472072729655740867489627299876313824943295389467077040133740748267191363520347409986068119742314169731555029491680294487948686908043746651109985948885869773619620199272712820502221219826860787431949037323377419640359701897059696467285882413222882930073076550708697188381211215511584031490377618833301690831669176781853527131474904550736592259974785857529868661574397029277679199649075396185310270744408673062647736043930482031522081488902181087701019571264778381341249848952233639445979415751378454933924553599884818806037059282513420406474446415376120120289116741039787993040882177242106502660988860522702662648878299805031462120940517737514553902234014495528741978559970698641320475129289591875404359943110913692002090418010471696874944069340318672768260582932704333133828436743447344154805194257831921073043967778833866399694718204046925216766649603114101273815513722315916976794261034707519934010219069807650321535739530005103083246719359029698331394439469234954416661938691632573994936031677622597115735839393358694326692451369286689084029886178181819872686717783547277781459578095066859485637639270759387722655157818826472397086050800860114846689809441445656707655563795289310116994161881718106028151649765267907672282069464196895764344665804157857533697638928455890765455099713461153536190598481747605257928052906723016615327525979991365785588139984973457338109479779895082257266344850034566989824751696283361380396344126545975176825308962035553240902654996079542179447325795284399069990937123655785275228295394887672602513264139419082840331758443137417386009724799429988320763091612837000254396594982695673369206973993812791170716263741222855423949035301714404206409615862592416221320351489526454816115400554330647389547505587775703381753994600926119691034087910286949082040145560754116285188620839610403053110108131618106374819450497506898706876367467082011031670548857919076349827741027620692130270016208443772748481954969271713498668153836116834717012542874045168923898419476224219149533328366152325525104136519822173509864514260998877356701468526717795708113462596888058369857794069008477933377134618804810641105310639083715507532291834198043481617203134188669039510478489074311742113881161161985314686199636971268583583359713627768183495080016181336380351165280553401400281905904521168967609134357837262791419949435196518673835489305792433405665640101929008737856569495856592974830297224564081776345429938707312598320079918236562644918761447390800712676164290851236941945911958172297978158448471646886819893477384342198680427553873473945114861795110961684860329909346405477612517459745930325797866467894933300039196326128595662761640931107019302906958163957491403242271919430000570679319047139923692709705043171523486397352058163474303156799809930613551886492735266779590885533306098930167162272716897907036119889301512456716854859004462467431458130413324426705563645263601695373849434357272091292493929339831580928078908126459075638211837907407099442121274852285236972999970594617803597944583401267448885748554967245769959933551944684612026864737609638737458174075193994021320657525173634135321076489478408942316558277575353559091930567411171020839165100469405710390450242273469947935880283051351097209592778907080138899445222636182401353872989874792194899586672936002905991617307414477132979283893539196032968115780778541349406472479336901184917300564200680146641178891545855585382272375346284012682477668453319109576784120357200048225479276882209715224960970521128167541580882227810718880851886383632241785406373388710315711040103150261399645412834384482803882043281692850855381268809961107390675970903116993881464368189388763386920235841166084447359942156550387913740277610185198538074459529245489983126783918750339215503006299487569532469165145554696780217649378195419469395925979980679466401123270249050025602420184231982328229710059148784039521972870303723374957760218164460151423736608744309171332441618750996173439576000477741185792249290910046067128569400791426133336815616691748576930748526874561012514811992004107980737183491620699499591356609923106094391047347197705255865039884625345344502952271272553321147273512890410288883614939478059895956074488639734377605202717528826804654413091260588260561842073475724996368239243792860611289223174737502195844330350635162518442138984169246099749624686760443973975098496013513370794332109083281337088408339924627895803499209694804565797872698406997468201951666593495176955363803877256873236109299186616427985937198027161504703556370842992156053049684745909634523249041409018706944203944173210251714458202298597322472588516755448438207536745171471539183252055025297657903017238194574623323893191450176535997974011992227939925572155993171728521501809450615153004510291047237967469429258316771079536592618969915612399457343953946438402629970704575941826724551845760536634079831239672339960178032119929591694301297813157569935820344930164138799463183422798608546764068594235215761459107175698459574458466243076532439194226327292476750249239387809607091326735343285322776914951932285050330292315517394693883715976157035663573068654507144402112704112154117091408942423742550083409796178706000721564170166874093819370044163328589051046562548234328939553667852655038321915171290835315963565443899694542314849824092330098657874073178480521631249088620157929479426498378465329617857359828007590434418638094400895931586222785188978660079367929038027995546530387727772070233114672563481819395882353163325418798315014729899797363725113471736895996406802100981306910629481922206493666189257183310215678583666487468507700260501186403501340734303285957344581493274290898013298933275909342307513787190067391453169766292160560885271086186127765115394737031281836350736108332163772966906034927032804978616818711098957646022937306025561200168286803920966655829017614461706629153791678964372229009675048304066549056471869307980959757691136964479496701041541674370368464397778743904146354442134923378686852323492013668207984735691664430430838332559948532969339016062920649462690204762531267630082831184431397110931375369990960000333226303188437140153564091076520503427643065694710616197256596199220182865173330452455144763720134103367124698372477824896572290214910815736761881815257009654606884647097873654800445870084277627121496440474379475485288227931345251496448888334591471621072242071242393713143596618988576868036794635903123710055073747437716035705042630275774554392948235915595179924237688146543518684761288193884977772370449803501489092431372686899316498247120931845654547197713237220228608401911210871031633304243725727815018479919331247026850907565415994710470445261162007617084337974001693401198067165019852427630197376509722854479130048412026811269353002705406815662720260385028068759159510567226014049485587606295489552312553779309422480365397295740561493472739696274630806487617269824044103535914575577031593516261390119456771339958236934913769975540729633534598378122410669824462923447873700709586101371428756083797055330143652824995083127468197060036619105372720464629874367064419837157051803745715410349769323557599891695284179930720824342034663071146092412538762999389367839714243779789333876158921465354585923043949725086248017605684048820995750656296582379252710100265546349631700046867709645111403428041855655883235561606550607828052916996124450005657341462387916954764089806651739479232941711638490753001920174801978557898269290640970432461825817682594429523750606207264435974667218756350543109656350818125287792283300120698942998828648427687631409741017513596839092501074517192657120875929260222270890905668127242106739234039226719620184973237288369239625950779791819318396145606507897531095045243804000020292961118995353251540006762986859079997448456993720449238133996038598858998481631623313741098477872936916169820163996411944790464105833432473985616717656512237340090042459814574057683833958503563833040427001332487886376683356496486372557649705959423187341928611001332267202676247431357742694389378938382569235812209557750796821986465075708902479672006527289432750908459824542233280325218723298842790594332558889538097854717510785061250064676458176706767504333067686569389182034833947710658734498224623782014672350418608523224693428624688234678018076402128517532808146974576719988593827841797954371993325635846555883795531292866255285363303595158160214962172959298579239423096512182976836159335738360571233560837613576214082466413675674747108829798856593504752218768819984969535135202036691883316410820002910071214889344695742052787846049861939416021766349020736417595475390309611081677274353873826502286039955521353566167496744756020539494576298926756563789148078969106198924653576474985426513202938124655791004081020036440987835320132789738864505890651872888686046589052367241503713497951716381614697387534753360958123478506234353071167890049341135928986007620081236790442080836782811768786698867324203163313380341192698047654236726608275345731666278329548924567905987759840128510368597592862168272886149428253350196283860197452831924186717044771932849055569278808105900862498561480511783435510472814965588473892901500263819447049542871818703946876329348535561808942606479156314305294519070243730748578907776953762977749063013410709528501576871609519611551306478197443527478434023697888610842801259967687808760205503761117188690117498217849945866940029122828065438810367289307315116829702228214820466628180568444722802544270227581995070335574121954947395189018081978420063580175678700692213055516407252029771416064928300871182617509626942350936550846466451618124571919587148604128886032879397940537412476738281797899392768721904632536211897499040623026347231842519311604793808852631875676277251126047482528402794843479263385464483274714466472189630191935322576376521315287237975719484357497380087640431553619984497564572030663119144392389770923734141185100500809680661058657641631191269755150372798395684734335626576840880933847247542697702788844321244613185285416131789587858203843120645430159198920729825740409502821172713853955473056246539456231297903783444325750598660914293670656933206357512114988729799453324021790425808860695497410378886182290679538085844508728430177747191736806763114578255618474748864988327038569641270566141457956905717304373843317987084409134293317110481332442942643623350430823364993989965151193695056968025146595781375829146661183746783274658444785515627737912720140652065589498530741870336349454326477897765433156529808635126340017338678832814718817556691796458036956946376336054487914269060004906699330747397050066275407613786782660057746348470653537759765316639674023883870460029038301669929852089382038857191818862260456453963501013076859989748638727822616239444817171368703872373105929213907650337739750834126657289371159241644110961618543399617287007381755968104806571206716624445752217728997642810107987754131631501515307849715366098957080319980899790542492295277128707111904973682775571411372713031119757616439247939373064015226756484382552480766974590582097472108339200001429305547426536029786455730371399261761483494838504821911141704625859026147715428964360777360131373968945726346869058085678041434850033121080237603420956993798694907055198252426376717393214633749280514508959266791220587116654216185667135424660874741502749226623156173487780399922534913017675730483779338534710232233003110642746960981215862295714482186765111234588397690233183599752339628387142881780477340725993549094391781611393372538627993456545581117662045476198038741153293894493337133810074040619232518151349080313519179525823403340386096049490318498401259071760854788776134808290018208508416016720863572280068510039571476669236101347493179172310704742332693867314236985842927595441377562509681003600871494085026723017976347876051653381435368214148339015596716724984502462581096913004601511717808152722596155096219820715410130223368017158056884729266268227485354335658847714386945965136703966797802060966770095652164199152564400763534540843382679379953781980728902978027014319167103189092353763545882390541236081787406888169665802433760285812648006989677263610288338167500521596162165168058115403873334227885518522402543806819745286291807507244232096753415137302919637061300478975900390164466901490842216857396251997448147989906351186962678026992152165192903983641543900866178535591635174496669738222045136917118402557954660290643969112581254941951420931387200519493271547505142692689708382629506390853183627842604548708933750364390910787642550384869058047245252724982193093926921159020510949210507271027900022213186565422083574263834797030912620080415768762332432821228897946540907736531809932123424251628462082960512241125984145347041338428389304982366586814155111376716393465271806008865427817822727567923945494497042454344642096527349906528696078775390623578971559502016222626714118397756559990794223368207172966943545862006041965693377406455236607762758857517035234454341220723804192104963199859833369246938958157458866116406796724521919056052998298201976599848728303243223759114194701923827475179545139159720940674243883497480351763489702902552059805998219881517073432055737749826503046063244018971099512383553730841938843920747269173137269058231067747658869083806882581415947565118003944108364745809741370469793924020433033262399791095872293770189671151172468981466276681731983405390550623978319240770449230875230600489651555606773297213779841281769762679830586041525226781079606661569355139664601103615759819560181229730022155340849138633824249856759491049584234000675475188803483398221292562602433558646220486688011589412930337126702049688985692216444176565274561370438382377362506100272096159969753042368022597490311846810934413549783887686863264127049682352575297058568483990153369109573619124947885979466598509179837807451007424620791370347393379813765915559067668410064590600822795133912430772709770316413141638313729051005708494945809452005782371731892671298430319238133822504962161568159638259853578287056505082934555821581989078055756075646969496807184587649593254912607538533377711641933594353269909966314215708440620384204261861404186418409833937677916064766769940211929573346994029880951524292622905803520997554717216594535989778106623862333637774249400873355229068696031008135985576129154852507844943842922563887541267367741046157248302041378886497998434890474214229740504533301135192778187303292025002542186958540743198006326966006053489110638704294464827547374585919382946618727001906344471109381213520294543829926057972468583550878847787393127645481830314655642590496528645308612968099567163157254551258663482044838356070813459191463989829802176780793136202397836668397812628331381675028358050040271806844969667379057281911889247241049754846027935261465091947014728480370674087897452336052933895222761793928190050322255530743258765229233806012882401452332974902236815212794986839395535644470826464592025294608264242659377727616220502610550030674888407658549782451995141871956068319910061866704644887316509392650876356652391173793845731906685848409453235938416523222475695641136496545097251277279918121938396174235097438199275084949328082249958902998813310809222232436772305961458394453127071895930716354536906253740688484125207388764135196673911354376420394973171878900732903420307607194508877369408569472763300360411935169010805111085432640063248729976738831597753105075017179422107620497016433418371423255943867808395991112642246662518974962909093187571614676622061206587182564230650990508346463538567394122600531854428004375375728179118011394080537317605069093484894703277458947147605596256185314404682586665216480735710868379882086179377665002888396907503560888683467210690185654647449459268716510425473269234658942045738720391390084975454958892326384121119816700140646078408160067395579856490823076736487264991196825467752928997658571190153628935531470247912080854273865905943343248795578645212342666263728670760037433952352754356405837337343439100506355679967221095920377459030517695496778130497905712260958721167474222162996892621995419898102119812544131219778795193741986899371224699333783025462950266176508068812092867514878894962508965664029602496515369749906990745752047847785044999032576998276854932191799813751976507399326701548819763963674605661764510138093112677819815310843278604065057488167100586158445550658306662587099993942703943048199620880154242240388896986757637262896109456930279688933675720597753667446780610423540816267626668847556701736425280959575777207292782182759136122982911051877854498675445852606341577931075156034725153563083695862762228814801283144014374508812757855195875637533362465553079801724092438800971369878817609759488023762659550790925505006540962223728595483417254370365529157569772510321826714024406091787681288845976961534751002089776624443949878270589166345427288528414433676944726589751471799443115966057647679960444646123095964657784000438664810617833740087872297755187260044517199041899658572676275680299979482578100369183790242548570332114461743403305012852279844898579798095503408456665231176932086409968510232864202081063496659191079482205904996591751438022718764812983566774393755542587184121171923751562012078212616808266913512958510424581583829727304397660169907773362673969948503503178617109523656378875146386491985864037212325991908362366039403641307946389157587111895301072330037253776024284026656849174962032287055821079259686732006163340628433106036676552977462501928035284630587641271772761170561481017320387051408968929113662592960508778362823686335288771940059581681912733284643308607092226825823424981659634075681866123355426029273731670399464405442929298643432829496256930953591452277760846615105768598784511756473240874693144876336166852088708665103646260377373534451648410816332685464716229042047959958892624230773434116310696110872604207409797002306012328352700049302550291896566257258145848957821652985000160393921024510297719632842327410121586383781574155504992923075674980984549375593369604387432313794625681850209013805710016669888834545872419238668158857080494563658875558186931660911220066534404431119050887949583441054440755749551142922421194079274200562566026374928550272633151891037003383355557239737298444374969568763438332647487201609582513314215274041712507331601135963120768554493337489601121769843781518047082974696216367704869621059556530364261894677491407119976507186657884558482546737595660918668567539999635091986744184768584652585889705807904647237616238297997661626375720895435689787468810876524636010703161927559058529847871089421048702409007560959069569267468583947235104668727895849070298308132711047078468108026313496267388632402485209452779360344039430081836228299604772412905103077617241058989162352692658103213641290440494583381011055740367317057209505194279621087865324596231001434896130993076947516155581295136320627244804130541735059695461415465810850997966437046387186734068420076022992461420152073516180243872312143595973248384777536011006765686289599868063013505110612675345764035500593958218058422138023629287787757847084848710117699588111764834001309017247079638957782727537826288946552476327569115056625255911235831156806365269126331049108720183346910777066406247089598542100667826574034055598608924200025321918738783985935092893655654521655162541079707778758796021830188223296257960663281997101010313990727741834907258014393599310855125075890263989520875093114689344619173305853411318726040194406303479955486842802152174235772437511573392043288776222354887976741192829110928708561750041326543676223862105978615668802311566113643017335801302518199222324656104448431030541303977445332657365271294188552708430723040712996721466756669543758959623595618666213027178293211692675555446454787257210217247974050459160281928399629278897064250502399173502284051734482336921971067713106198444424153190091519244126584132082094591434805838624602348759109705749227444170552106471173277539299117793177776329482357614482466395259427107030587994392344828957523603666959190168533364040575869285999764171421302016273222290180430802048365526300673768575152855626771384524843960904312595266900300600938510085969070556619032252597036168132200998717765722712501977759010152817338619642785734120090927785382754196104244678948500698581030122960094660869262586981881770793285064831242285944684813766977024787213539803049394963541549784698811189628157281490672603848954284605275099299001488524401094796111449660217961382391681300503477090411239725707102681732025327211552172289964235079630912361718137847487951066577596654557399690497296342766468023755977883573111293315989567940410478514137100149540990556691721320118862694815221299381278097961788967227282891865821122782896121108498998903192804295762291915774583245279103365531478264329906222104509997437581756577009274796740552731116789963095358702484078724780794779518486824269970867707381718121197617184773683402374305769556120740071525173947951312162629443211857792292301290117251727266492910356143780667724328585513143654615230469969090231247661409763555997268668523325018307780671170043642396266678079575152764503388798978275361207986323763630566778215658249466859579017904257442296125059622989882212240811975399622001474433463002398442701752381831443020059690011847718509595468310843799667306466717221906685791050360150845221609097363562393393837789753598675404833140488789803908096925140799685466403332477201452693695401594954206903623265178977517581849561443481094098704410428733803003047107935955165420536285501343094668809818931145115446648972839312049353303598786154520227034202910024054995274148396971338944378985157569148925135154086197245843857277137186716897535569392488920606803847520191622917791468148326082073965911731616247622036640059913356763847992649886150977008884096243702285717229653258704011884286930522914809008817485729456514138328527427999690371058731253585525835349999798030555696888424612651507463534113555915169089699988576923977136078118346136991442216589185296992875582960789711803209497681474234074541242162606552328217172072263575303062325939040201030298220629816916899123362480384673524968868748480995794626780805863317136084489137619885969965136332903018034738822391174474438853245736438895854110633912398769019442760178947927580466488031692520318345247908264095931195181174316103582853570370349809681856308146210319980621538722071974942417023118000928112757850295381512124308621279028330510451043988219585729753315345396708472994179550384846408247014165438749517333675858909494057254045510661766991460422980068313835023459119462756310247602497408152746378824312695699667582947865769234646310075009597984269181234215779101358736072001218122966943482839694938547263815506366827101814620397720457025406319158049293655726597321272022428772618428977874441175725028335658392067319335993719220963039595997377295446311012138471086600176640268776569521733301297086251356885555061448635115319674148849646226074080766475663070501063212398807695395600082283814585852315305439951766772526955164488660015629605930270715130632533038166654843520220865736628812624487046840805737424188529851968598057966965613941431030042806474015718537863222596698835476300772367831135757332289514973174255468586595915294064994573148413285747651324215474194700540583252683884639520482494921614607771426617179246629590690417785989782654578086238245371841006647469817392965357326975931305426610262419991396083547229021659280371416163017294198437154414937615143938315895946098285221336360497694830220746615503306642954730690593317025008998997901648379527977692275020354834703852597457482877186547311454538497202487727314381253554388465128090855729582093167494553598578156047303927075784606739808245682893695577868783341862958957555150232328415806517841238021789969066275043052589459801096591886176000966461465978805032638031977416483087471803676619187409546157426459365325014986801962995879521249608823440439374031906464542832786861805830722745852146071303726842851123380958082267179144528166481144210629107068762401702536858377366879180555543743519248707118919370984625691363182726178997858193927106545665782889444253649534584860002677109011371201866079931463981469662576197664073164588162008999811910729220726872959656637742668084725056640861853033471235308624132915850427176478096522088755554306669478598561358047591014439140419126194406871527696417217780043927932125073905447510351761367185105827623859118686907236192023657982690287401546630570123850723356912434828262819360418314558025242865606364259402943962729451319578479591031794632091207174913162659390934218761460434596857173409839327212023430451844561749500102952606425433693176989096304636287296271917739012026501403230054997846908540126138085422854809423391249437361262515434934234721988160167957005301877146351284772099131412522069147544505724957648016878897663147922101751973904061947027226811986442155965585830771050668987143648155657958613635393186437571383013627583277406949570932392225564391932948977417567886353189709518367393018779527306349961019176372037844433970363080470023596584999016633340424610101006610171401022809798466178910777204181122672740661147404399692279534038061790816980583438981578850601607447152959060298262090721514401736594755575393706090433408645625107182433078768810057003945323178261181551740189678460707959493388217448550500553405158407817219577229090330973486487474677593852106833675472588567673989530870912736704215584383524499617207584309943143012392000063900301053667789578366856631115680514277566065520482321200907849014370662396035550949526722678007090556647702879180347253493731641683476067006005694999520043190835709670020028876210440609508887087338929097859428666933021268025249900756662562141667552947270578287817436887392164051749370942191577080464310721840675377020780588383857109769103843598049506088517567104819592514721670576048032679891706868337960702648421155216085764614626731271160111559526709770757643167461271008663838518304323967731338530084149499575906203677994285679083095765165048216533358638355437859331870582767415372087332057900058385835628049784699725048193945925701925036256455270074528844350152574425858933020113499199314756040039153764481132428158650126632076641117790443148848960774683572673280528646204965823810900630938940545705867135286847998762968017983972659134732387285990859236743891186953690902137281152736183051534774820921587418145726012704705772509408956184886801706901461302199001990850773799448135358624812185935138889999641297253883847670140805606198475522253244179969241855776455518729222156822967963418094925487672959639230582868601360295516116473810781305298761982890517519810586179613993762443152571447804846881905156878932408346335018243902322136003435292542742353944868259563729306097462845982124205756264984719859961979534663975132839122569133912773475868133806252598051627312280058812177480600359356532452139896900060280149300078962328342562386269775513816448626167867062544787052759094173219886221227000791096088726737936581002446815838815537534551779702163683374852403072311837283626636903168782250928464196445357390980823097537954397113595303386175685626207235649819759642726715582208599279899488015630295709370032799537550553852125139959341649296809060195214511017856184709129134291804124759272553756024295218662817152353855309336457891765074205189989504227535948069160798976199417645871638246789274104836423094249910487449040356711262961542778211206084261912410885957981769111693569580132596229555511165313274770134673647064891305273528672605026353033057117669361594007047515406372689874164963231117069021452857838911296131423329806119489028643790816070596540726147679423119145161617114935608659820302275706826396972299807472490354142420318874984410910802681025645814775374698939455723925838308892538530266273622101835976769205997514400279273834258442505518977951938428815217037959463524751326147279170012811580894880732654174611817370284651782278425175257851960300583839968249116197235843489548439873225191904620239933668589959764002779271734689722624383671054856516074949919666875524246612725232043865007126267897380434524865259210273617849766312152338145612557037278304659068797742997385650428182965857072593286270160823302460200919329110293989811004057948112739969951497434950092591630378832341137045622589412089960064921427899407451161006037655793930963868911518459095021980992779908589682236755959434194610475376184682559296694144930848846650206166358876135348188291911652540401553397182398058776186135412116818923042454584865484906825628748930032818004224804423735810598957255891586215773689000540424608966452833076722847387664742888329028657062551877881709368276759306146301498754619800797906130980013255176226041273688983806013943477638172679973315087642328113445087840650617087727226233234824894144748951829724977409103900459011967937627119985564492156185115622173254926459014211738308532401992537265480106048416155488790809109941216752824959820227113788677066432096897800393017710377992603016259356727251480337525182409414887755862628445175543314689578992603692925276863556864027451897382578799290134201353249697377525956462283652974397571812431758726076147537043336600278045986375766688310250610388458110092083829663123504674610148865019172557800365288503927072174741526516778879213343638628172717938820425846652151926559719235142579474209197361708654974773387972880122732523469680684740798842484407592931578896391213078457191985019561455893912110213960290777485850841963786120933383746594007446380308428836863732055978651343724485147203546450726618159902037417547547843946200837448111403120717338462875834147177552222729573171776630545130045522262613277850965044797570804482068081426679311726321749884582341689676922175127330188245754903783527145658705398206829264013295696394545277916207794207910404003056294658155177253519198262184965410989754175794065808519001694993217977646200513066025407198536528272854210098392987303536372475753785573476346205140183882964893965238585207977131577922983116159552560001993901191604517835575217286922763953714685756979794058388482037998952894722162797395879466393842044012224087442687034931289189853924934171647877699423352276958706266410871448969657556939521195876700947552892757364393166112804741286563859953996651439421038234764209561245161844903094161072980093295982488231213916941175571919053568021310283014435078486531718112890432007282441373711059450307075681753199972001615433587122124587156567156600000867368213280202964134427802435516007841084811331032068335009495336010733603735134591425650622873613189952324065614230991616774506721535876138531089917857390203904423495431405411131690621019441836610583051131589419015979193701400832855813508866710866186053919246451456108130739351559047710875348609212643551836399214810913741753085263290544745449138224401127767435514410717261689236405232322935899963239536418478365823274370467788128211825581490408757135945241509432250931157637617039835997638656970413907598712449516281105221126438055584033576967033891008561503128653356592819329682553550782779266789382737664711527504864147890413327230848146622155778503668305273274425259586559733118052773357769422987961872215003769526742761318532877820091915466725396387502452303617198998208066810049641519283687486046321089321118121021838076557803085865684485117829708123224417750513489130411003608048330726707497251710907259358616427076994070408704087781142797047115964822281972055496861736658531807446297535706206823732978288187966143762974425896119993387808294675299050232759292949703217188175899304233376530837987288204791889206331290669881983025868505925634987487426660642671773045743156913347793012930901224223651759302352078826951078105493198837947652987716967276441971725343218809850069698743847590315198688958814212189748878248168217209759924334005456914953403444320931372052222963419894013956383298565942478691268788949018550767020603904848486374472742029120312884751048630450439924328251547358071005560924758162352375006920835027969339897235723559304955294257191551007350080043696691557182858781355293732806740864886717067146049249112790856890658748197953011930371279130012336130862250564478426686111685502633753861977529333320219380751117093082843352084571208499655133186493230589674168845250010919464413112247448471464645415649758776894924931765899416821707240296216423789244390635962972159238899659245465910219662553568592103438759305258918337725867068950843316980074624341189777256466216901223243104753411178208325897734937404149738877981926489436840695102569032307275856266782492734706974013682590324733827791565586923764080903197222498459969468503580821603798504065602232465187143007296204677350280562786993700441477044995573974348708786770891240696066072679543718008993185792156985858767894735909881838283428591397374906971237536930197262339726978074837162365589523176371761180761170297950037305248098562274172699577662473263412594273782480404339807195562788863961945352162654208090679531914006528557479452619106761915122705537589899276454285398462219163959161990096848083250148472371559361514477738988122537078721434530295999295050332247929392597204310020353324602066278548375110610761859623075247916957757453531436082170956463671090619007487026515950557717886458738899405431253258656444321448084803445214586455153278538828846409921003231353398944340547132471094934506140358901468331108912620928464034795526166266085451263984768502561427060274955782768931396453917078693899639675964265373391573721354489181324117195150065747159945075755893905532613663943200046398369496277935169129975564729063427261720620870153568234294979004141055518605158720808581771952563247956008705592512778642886134839335346472099872755168966029933136902770916697980731911812460885979662455840671100155903725122598233568767194338017167166761185211060167039771135942623958808102691232746281147144493903392948179074815724955035765103048370936890851588285050357986749521215320696175008874925023215661102125343674937296097634324360379653835313428273532789439096018558740388419162813760772021725533105903509861133800855867692313467122225556596511101410251283043741461005619048280339968265036529345470637817285500998541686869373304864659464415547374647159444720931889801625663684229119714005028242211364038028268721686984502827157415956121779270642262486422074310054347744189249990956992153500768253266542396564921590146576442250231600286790886527787552894096258439035393409603697847412023251977090475687814652160221487520152660155953473925592258558387441807520051548831426243567992739829395283496018450961680087280825633530173915515247527420645163587866001451870136680857247534253302332248922787393660455111091242237109462615249101164736023609512473008811062322497592111058622532802237365772073653404622040418357494074283361322417038044342483709593285292775696689057475711932976149891067779241018937036960915163298576249584180646786886530614342064752659378132712439927890411200491129476069289000576184613782773767810650658622812781675898462622615160087647513027198008880568771445594222455234037080429430310404378094552729492250563380886792893279164085213090340817518370141898137753065825863777012664458468407547484447713075422668687193387833259856761925642870165991216750834056983306358900083992325028529414447844641459574316547705704904811466030747733533714155662534845820101538166503736821035334984509126861824095299728534760500562125514640237785458272000924106218558889619867208324672157402888902801903673955936018727202658324353426028898493956781276202485859588881376304602008584634950886636107809288339618314111834698174925344229164001701377107288015931854292349518405882840178861519671349582813057179417267667090770028996255965528684849684299115685020316791078682160629931029549833447050650164430109948038894877268820509373726645956126634958081027490673603687290514274966695736200863834503793397043954808472959451074104448012990580610281281882875293556022845887909681000867429612356790663998666423990623484696284952459896294902532337281294798979542119262858089698073756702937280664072207116339138880003798648955027367832273049422191559685540982986291465388092350940136744075980580715287069916222134686949403769452952373724377263817436760357024724149063425630575654268272666738976452806594766782012616002958008719342953289026096712518113090811862204851346390155903336850414690474529553953187398688387070241711869178550136526971104647067351072947486377325764228701255429896502494127471374366042769544139193754281862479652278935725581854682186816477928657759081414993883596454694395480867112185324315047814953174030264371418698901649371855814371492538330245779519433688904541160025872755281018098371185290992190250924480057430153847071438538060698736812872892581262623649481537388995544194263942111708441078533679345504499837957739959247772321373947476562813064657744975958043373350284088813634421405216868621657430527167690225159347491639566257023370843975296280046694259548403374922549150548396547862697267223528322074115756410858883556179497459846665702781185060322288845195339451680789117157415037257732867043877760785895321425595958459403153285012361937613529931765462201921834848529205769300643616293362544049572003690295078383280663615989452272118761407099879048283385535095927462307231508482533083741823084555471865029722269857662781479003310498084098141225265532930003819249319297880567296633371453615395915386973553145111937145442096356795843407911907077090277874000319895076630530419765968708069318876803032609846766918600430175417485961679474143354133260416007666279140395454103090365902047538070456314296270537769560591988497614782505862524207940191124781469620324393981183586811760603536231284746920543824910625692064906442046550369833008869496552185670047296531981409412996489235206890379636627936508573041490951388498411920394383094063683788356312789505528206431585522278449208784875252194819197687197108578586781955402021000024477125236063804608346013997088802984911510588236615525917855617526469404268216582245311217876068792864297215164189496866864866212366965701998036448292640271489514943123551594723036817618361130499680249499819144952782132810763307797059936732073860116513070869403746604591014667752348778909303159086879427171233667048855430388674032828685239923284990679855757834341567110893270897141401809007760743594329880545635264553501733150139965665648236856435218542555540281497935157217245137882642716223502089946416557421838494600937528172605619632341243007798137223300113244138204205838444835173116772634431038796592854038040160913846261447205842264818228782335810574429144402249379410248563802029069597437691877558966483853140352948856647522350557428752013788651782680908386505785253368344888987664350634608424022380017174698910211066952839978584874280291945974148124313454938789501147315016212250229856501408092145488003318916139422931996434777900944255492406200209640107304272249883793192820850296060267731312682857642550854609047701539051579027861548092566956453613375039204500428170194106873978686306654185130663312442767326732646432817178704880675359467106876068619056312467662373075511491762367459887791541811901212482520019620397910523608653454968401072938342956546871006841549457339666892350493732411701381802387946364121987187966271349770928146627118449496806038214600692583320051833539816258962286191979469264705010315310434780675730859987011418723305103219116916818246499034908118811623196764828696655355651977591260248440329221405232884411040029022465399968840247351198025706390966637052452698433454614711838337609464172528078729214013325998646271196932791020911729775736805362325167274818702201272641515044740490332850906574113967824582666924864051670015301782192963393109836829402476250815541653078107872371605136302624250730350164803787942392879377239189812685091662032971978178316209683577685840197591043041117450213192927487743860591266461084246128635392659471740783588487458153975155463665763092259406469717698094189687036732351189244267496201792694639849416557736965047630612260999222607818922505920079328321163714573164686453165828779804041576890610909798193341751865656054585247978932143453180128526853577749614847629114696586854052043757023346210853322566221687853148339201726903058310981419183834648237397444105151411098220371210330559656818717432439108333562437745144120300744134409174053650224247933738627501025158645040161733301216642161302580164823930997809386531467735148514892257918324499096846775110960684057886685645821537771742256163513451252177928049650816318158912524057231538209616239982599467122920112926018004504631676688078572161079764583901266825685364275596028036638762629645842330517875897183432945917401452482852382757457344977864797558363706493965958678912860862030755575463842640602838826217386356584005585807234330590964158188227048986289534710832958537051169579713416044744698198135489769136730368798584574581298879400366018480274210789873699052894140291008350220295283912789793821209534585276538235650881474742198177044271995162492386872364065230381743615491348814157362472061226403071958779930432881663817688385065957583591471363050548036266258533631030322611859913436618196913482245051935687054744618680342582513331787828832405125444110385536503397122171773831476505347881688846495941271042373301215749909429350743376978908922029955966045728473773757464482145137771911560394656001558007573624747783144390539156946363318132471830292783166803214879704038353337608236615230347475563706174912277997920222988338474913232140838530865190994800937981278945270048158216192890578972454845753986911620854769407952045641882410328262932881818189337085576715367408478534931951267291285375275254075536722911187119323132679151611237045284187117194130038650688545168218000628978456629642936106537204725871123318426058309170401368055881577081137349314578073111793455593075957864361543663135878309481439052510912985122856902046750744514120617708444717516870495315908453463507275352072658257008681496767688779012481122972862844361745701468049198367038051261622008115808507955786470342870859545260694044546096297862671428753856874513223631623970659310891533480510477283549643626971298621683650229438959172247107775702301577129060223872209053321343901990602615303054589908942816681097655322381799675385602017269872692646287488484902795202428920774880019989998437141325169398294532392450696052469112919656056190241289399048029553213014688871298284658619786615110298422235776153449230070142568724276929036247230396213611844175103904454376811466352315248586290617048969985989114573597059852207468509116476445001405956521269680423844761085685732975354738428702196372277759994743656109821018319546109768450700555258345468581901612016364954224004555290668479763912028789216389425694463036500827897416863001231702404987831243545765659956809758209614216045555747048948345604600619972816188667328864960104608508567128905273600539515893630580038524484263745233561135206829229559963215960127457395782153723550218968964103642668821265145231233693514465490756658315347544026740131319018698870890364738933172762384281120158164240225483316353551582675936749281834639108188950501966025773894715934625745785384983308260962811298299373262418749276664633877189150663766030066385062515538514848082701315839109429011781580525481056614852692151754863169542813190161597500018684724546042148690286981213292490833979591677156391424915334840763222685858761733603294152790116523398222629199352807692199778085188450680934557017504412731023177524307805346200402963512037664042126386904063830543933218327866833873379471892395316698108253105261895888562432232238409612188126876226872153491216605629398851682202264347202783530270709722098475939831624266797326661619844048479643530156014770358657838981866772289886322909636999058120365070169685591189220421721980174581838556343909725367909913024232448231278012349407595698556350384718328829458872006704291216105550828767564191864360899352437581730825014036434086671556061861924672136499467249400643102252499761896731474256473592819525301712886048230803481234558280141630712327387258823380237345851400676171942730930398958646812100344657229418922106572350687822412388950286544616913556916603712154036615534345253437818597321114143758450129103683819503510287183961889978185543997952373733553655995752773554478038316333738026924324465417782979229399992635118010769404313572714470625186404519629681910111031554882345274922548967962034156443518029759908345482382775665948096311059948513122148162769004930341768616480162944151459662516940405542519593721556287442890253809612284491543572814468375494762456244569724149875010046421778737499892424426617577212406996915081087942525163794444822543388564253163296028694843112680815189423084248048454516157290895380598733979390671529378552439236505236989862466841962510858213843731594287195943561692132470607993738323749806067239362130523539947085035725429052281717077572432905354965510432158955886342824256956147129648026639377255265641703895789802279865379810098174009821460244184057484978915879241062528049016480688746845154383103601349977733765021691552119886428393727700544037952252439931367220497426916496892670687443145321168846972684091649681749018003019138797844253078866453846586243810793536040900117318422381417820158587864208761699129455308940259944847181588597811170254343741237812024664883900706311176606950226606905327190144854026558694798998506382660200538976844582968917684920948357518290155406604772723529519597983434706887555368705455722315018671581290703995381001352396804130136538662105802285663748566220915331980137924168575725113421167879758279668303535127782999013626673426832213183167495839625561062627161524241123471883538266615965306577920981118134431310994237881610044135171449930442866167828012277364413056043685865947188924432393120146510377538832550242061901814810784496815534594662866759232621067831552524760794791069530657966130221179712785124467677111155355372628377983699873833495674515342669754051684564593064401796558463422446465691332202307997523398038222611825510231648157164240914348200231492188823837010420151570517173634873372123873964438363310671398484984498219278916517069740629149418941939863596429134265918557480521914886644035741219592076100542578636788854609894771719553205057367867603347185385304404941048994254684526617403199847193758104988440403700081767634080622464018165787856863621432375229649728927299997565638419941371751625574379964397497604972465847467422226544434914075256805328504049697580750630646168230096832026711450122007025278104029332361037345713777361219063664187036435540459586337313636321190657661552080811787522942837726866375533053992686308820491263320436232948933518715270176398625097780884699725718946254317773238014909470951680543357282229653893047538682834120918114895243227818504906503312649222132366865217715905597624642228196185512126770005611986990018022275681106286804367188495614478156028477918075003005931637382574610096873049696523161706209175544179207802980879618456722181361581317327373162686945023844309609509964757842412192085276836456688604384527257302618984472080085675854235736879726497240559493736120236406169897157963277494700257906568381926299098189258789066698319473680705109265657439096140060197676083909014783654936390661569945263796453007158589408425338045930791967942775057693161955559598517058252837630354144597255599453578024511767182314144159541737034631899940310766876659085182533508106694134413977321934729487848497611251258081151563945899322305592672527243227258960523910067847184330718508757880031201941546567119829089252633479725819337310187304584523874148280469478879099406935685195761459800842856151239328685450605741295924383946937877220220114346058570599217571815781463868613771030928721109896481586772254823291077030493713477080261406285374307512630340015046127385899371543557996004131995040883606352408606981666290730768687139780425612451707504236220427735736524251371374065792642826677356815152095812197055796022916182141192389514550009725696514432222980620082531849439944655551754096609710675322060282748856953186234080745092537464886850241700507231522545251882437439836564353279475956339808923348583054531333395497764812183536324747224938505068698998859278087242430947387150054765328064786833663262818551184624096264302535524566938461658394394347952130548352522472026177614039833473794121479890478825251162364283299788619883144419202359789165266847603075064601967247275091304693089988761891106039897084656635450243845033046702389921162611056053991459956110986789971867485031014908660486608765109146950238250042167350288499067150161796951872431936228234338726335331427249610495601683160245167903253885425730584377909016823031570473666389823219765199994079864320765058896827260870627202766765897754375995980499225227101018182886841468308716702981164946855913860500986050304247032127863896359313926453374805145812177800631504264226503786804347199011545049906293137724578832252896740187707928928599544399017886182494202855857304098739572044790968902375675475865999218922400536329056600373864947367093378327967554969211941087842719416306987754971144852910646509811431903600473762039550848435679545797236829275191554191731746674678500759400857344341690789889988493074834281292058662056221244605593953757228005502174800869648887494205873796808877799535862270284000419132179916695854942666363700946759988829036492567078264186689273063238059405856262723359967608450114828637884573267677603520470387456768103056267646572358874745098154109752473793303022428998083524560357909784936042726435001908974557458363652385043330387274843886807531759809134716852411134222342506170945722440623448823637809097569559689124108736688941135930788069033473366591571390772110803571336868200859711701191966033058716455535108280777395832195320058387546746911590602941957849260527006704540973733436284594806969218835264096697933752514902605671149418045033025132186047725707268886224428212102252932686366936920081958779471493502313134261172242711314288372377058132037510890365056981700110591978087478207017100376127918378848236439265970597064099805369529023268047006271016772557631945476378562406312462186165416535085368850133215513835573444804872660648069835588391446184975124036515760311801252415951857631418091953795288406839824044176745187037419263670167332786914675397982811136506777914081094554203010752508427359031493355081442747156340748429334887807142052935431042043632129270137093102234492702124492868289149280035686369806655310314508032620688463557988274039456977648387910427796301334094045968197275814902016836098018658353172393443688915523478684106337046415885721697506579302672661607362491144988056965173378051095428976453371269572958946235274553821487352233528985961282428245296246385414327516965287476277179333015811238533659468907074187641144059689637709066951776808573248979971086410851999943780430764766021029039198987484110328422171045268240577408866095399730152856584743102458994897484117808902240495598283717817222754333126500565174591153337037926987526663279106781797646172644822678345000548204354415935345277068900507474907023152798926237615338341999144511841991725103656563361576575608027111440822204071182144519868179911638841851705707848139134509426655069659428578727266384909392338258378215336715916372670727351561983901443583736063214269065044922862353347341327837973994537544507221833815939577899263026806109984234526187936791774061516384897804697792424667176158036554364263294975384141285703073709140246557604325838527668570651356070723939236055296653075742493067330525524623203077766452727081810490110002128517591323669613827648397115017080026496581950709969470079861676374504360700787898404337451247819470627566442674003131102824785130067044582588412055576535319047281045927636076683151847036718865902783944382650876335314941856801305881671702114146068864704801086264289733076249409702469776687086301020729632120491684545240555181496246009075286199317797630372018160354311684096252982922518333297647351134378278743035716195698833267803755236363586618800270811107690193076610444808213973447503361146062376375114389178332591515080481123051248220618479319805490478520024514880188303201749341962081292288585147797118127742163077800049284619498327870502978189582595804023337319593388645733540138633794052088011585289238316523030226036677076782786870322717706045688475324556726512261966068798870627434366938740821420544903339394603007429439636204351212288264495322030078439432553192810447538801402556661524937000272489514050379775298319779515762649369037662394233625985283710292439875370558202813377718105694389821270255473380226325484511247791139803158753759824053090285965708213556117447683758302906929556730041221837855895300243917833243979740315405242234094424341568416804408498119438940839190982458193768439914627529976858172571804786680833585556837428959112811272508704024181050391127362513026010964999385174576634294901346063494915069191329876294620232686426436998041456935178474455725990681375400417370526803197949958613747153514770231760577221519538637022593729821786341014724969055579169769547765359601589292203107735927179279318926841970971320349249876267444456618368485318253011345517071505333423735252406508555448039866906851738828143377702280064993118404018156206820381604292376626101044908471385958268231135061637066245585733054736752915943162185449589067616060115044094605070479167955603527166460658800586775580393896665588140062433902835291985790205786648641108382064672472001665211529638339163395378767107570168654934908125851161704546761049513165899045042061260335802426029738208712520880818144474646632950863207058358780449956334667714118244435053676596999916794041962008595709480860997190670544649402050130176239661129041181349490305546495508685597989425892107752836192506610078056547160937377041257016594459756423221233118434525881459469241551418853599961365890035266287553859909111196010908692979434058013137061967062240133698476339059191246789810548259274180166905050144567719027649238156447459889067077362162982491249078958197064981719444349094485505046573814857039386691104136970958835025273861038211597527689031922212431831566426651649399993604265856985309766479744730052044587840029625317747811326798201081440006709593275925678263196736585753638824552798911807923390217263893695731973979628334492194305069371924019462555232925116751761921110918719987583266422961279180960844145163145786785104880498569547045923549971125747860069789131987439046990276765084879273776759988072487476958823182133813491018334444395375442738861855409295872360318463922852269226354430064305965496582701379375839386787436966823550520426419421419683252765957979999089347068467765869274904832699008178889528417662594221020580993656239828113740320733581728224005914525471379279563546767786614042160926963524115611314557062332053306227639989199981081443260475288385693664225646804268150805928573550667200426613918816792922038974856009719885550869200695965734025761298348576809168604387818933112669237633280102621492595337271636764259387092534202900632459282623048608394566203645270294805716198425584903401718884859053978146348779027620267410250337365278009156220436962870114916587689675852240988570935827402436297067953443378434425513380673007223443881097430724185207822487394346087302267753540539940729792945479687451458126839541275858524591911502384685584352704491734805864339388469511156661392471314765427281683947929861149385839722462657861309662989028373407894546850662742420782872053534471662142761027427404633265827049390012845550079583867592111879981197483823612804540887418058774387355359161759800692146884164277996859050013781857799398800451684554956236170595700925435737821179400044969773201767495725728751667660420100366990314387761481968246826248945143317732115910523909297691206566871151677262890328984595430907028810979255568860794443494183789681856818857533944022668697197483818233000894448780358524695068114145635733756269980412871134222311185053909660640587939676443367521422672831836367061183606791479907008497496288353881592637864723678718585634920347569984997012769900211537595135283457385173489085722671430299435514822736272939125480898686106969815493341971937746916334649374292737533816128756491106981751760145363868408070303631679048606930593806674122370367728830145173397371003125565325443549332282765714159607011364432015500740877638012830746207201511934443543808346168858393611271644915386053145467612255800429467671970303476670335137230138448594342224092674000004732061983878463394532630291498995713035004811945415328292893480108736735341141270069977746235531207507693371767102503016181152484134126615082477629485422705148386250801568956638716991835973221191923495607082393357133657091084921737388906775525919531236560407956037009309242230411988999285007665169596295781973557625226297443735536835873726555389548483055547050470436936584410817450631540218077317846718219607500834317482952731126102966531642789409171749949260080212141298307852953540004056966375348660340470059201639519188797504785036770114112283665128400170961504534540287947103488518042491494942837245199673259937527852352113532922247742254652234051664132549008049519127390619312856805955893774464183010670407508794731982821320796100563433788144583917546304580684743948840621793881421387679605848190696897096253244156542822136293679207019017834470211190010664558843184243780320609079332541967615149557921128075367511761354906401937985071665891398868598023984716408806113994713718548181878254378367000962568047946147576730689600662726850272208268688718257623281951028501937472735594812987392121013161434899127666980394453240674997564908216621521311425656378024381211265414657015939671018924110436769866824294821683316123163796256311658505866237576997041444830651620143921847250131356177757435761763701550723823750117081078566925924147395490179628159402032534050314170904748009036831354910213416485277158579188063267543674054403042573651700006876240299901039351678203026455983030583966875739069994101405755528381630738148299536085300418730946711610695894401366413947099755754775682065414978692730050011918669179744459879337038293371489934289962860698896987625200203917620781744669040712217814771556003066599321309799528923616767110055301686360116839749022040679852699920619661097434190739500050899776033889444586917953823790746020904183928456044957476846427381076847145796778975194687931129504468335205309435417318023428213765225320050294817787714888929012361867705920380121835004510125464214507689209866116457569247401604105873214883949186606953577441574213060534381281330646783163963414642739102871830434242230023518808111374710255877862719750338940804080257864514728959803027995756910433962570846453730597670006455350240050103711418080103457215939423543867893830843644932494728665389181886917076936301996440358786761818647550743588234328625200189156327115297145208243261420743626930626437953876965601195698601711017575572524569724692149680388825066737792464056464292508375799644699141783266285932165521713298692411623435766692196578903789462958435608080180903677012429457257599220089748836820252338831141303583739236730233124926999000126081609196012941779949012396312253157964113824830251876013945213717226190041351431455745991019354890985190662865164267947692878467704203713562811336796671168171088000412233324648868353180130914524607063895302413709614672534971765273310552481791513090773600539103872092693134402922264185943676486031190078134498515810145258294184102384308535237302742500718535152309385881275418445041149302950377133691360073248888394189005482270361805881155736353626045838218071230152875488718196295897933235090544562946214537883048843857656759810741354908656260352563327251773965963337966173117607327724813892534006577097498507578273483637687958906268002741588155296280263992907470247100133774731682658050561702666121018957802390280007663308874941744394171837710718284394034760614008847652675082785422422576536019745602099655080262438364602915455946004193794482982433032746581002165525613842468152053537417035086199738712288343196949056529918118630043035795802039732194851367559499703807218491462958201357965017451263477904577066006366188266818932044385680823799011942142569312696114008076427016284712754041244641676026332489686079413790074781226342429617393814762078895253620999432921295931429316582560758315141258458926941234112529209690329344680093356996526190768827022397218159232288358423603746366347122828128515563559756278243062916999656492749075620908650314810637019574735612459333861832009879864461732454272080411235190217441570461252147286862392715128745264765918398410935721329675868497624284434739188093533445686378389536926814263518651947672735247761716105170698689788928449708944268773239613599806263043444920166416281011093973361270893243869623624496876431261615357400627611081923826591726248016939901696625753323920142306310136676731899203350437299815106228544552896347732160975102999164247762033561034311958240036268999136236291022704830029941965165295106794000150122854149362315999495619251819495657885865716020337231408693904359402893943398540108157698527827165426141801562226597583297906447773591065257645224280134193813420265010359640256494843583607048444506635683889574565286907703881303966156989335427220167229707435628557697662141227276481318107609890492110270877159310183198763049308264313928356733457452420854971136145870165430206463677720754278845174282291345369181315263058282405921419216503285709852860344205973484465509909959380226868235770250181331962531901359820923066838341127965477152937239643243256192977387304292020669154622800716291597673880863347890377280420901770200058022877214940502467760083019230966089017086459256537857393768716821394630918173371609205429178766498336468446726632723562520435352467278269206736355604804139974899695683145076108395276980251382244083535321583464207227412410221743829730516638901661875716420346400008988629088109579185252334167247382661668231865674642749555710149440380279152954838800497482840505475901447024153119180007899550437011005435843232823279466088984790670147858757973432344420591516819057523446675151529758547698384190266512312550658776701243900697660074297543473624112560308525479802560008569409991186994939471632558748545102828220308789060033126888427904624109942875057481753205065294881614520479701819627867905714884625097251693585280061963182675255014412594139934823818892177131658715401857910749079863208967121311358793124943964557470678128800385951429495669112180864237446883496208650223214532348253076450777628237363629791367831623011553101488871128205650180199579885516769205580910743776974891300134741083615971100063468177923822037570455798562217608403571962374896129636897629994029392126496148589079543396981385503926748267834041573493603870831521951831832009231840470232992135723699536823336833730043521000494297667791329379651388507749815697311406335053643906079812167342912946036567478466135868117788689227005548141985936660908485645373985278540864124190143672821002995554666562376540786993816115945286620810261103545130439202408897250055746552926360659279556936575227073412606482161351704543804512989993223213162625390170255608991421255847335174625036487827424633579045810059710390123079108362123878821534308364335311343247446320883568846969823568827411563195485523944268886865359383093939685453404921580148433049738951913200472130010862945313836080200772329819235621960398117946079435862054834059520447715282374696605080111487092839632885278902030972573166216277375301985836015001762528403105153182237146453629748798310947144152912609830641472649934251685402563514956735137455727245893609084925905563976728028610128554899243988042325641576065483093271761770731629742235408625119405982756485026559340744977968459512874841271695106225037096328632185344917791512036792424955255978581830727471394883213425008906742289363547212147497259602111656272051234625199061425286242194723255248840684294848291775328549408691010008994403942549064868641066643195204211797544475351885851190668888601130453223191482171419866671960274035263563942823705192975199046728643634015924659446119171887047056409428988889704538128782463426346007164130660011192661668209972975977023948839757807939447861616408867442007536854608712719084616529562007722671898596206078610284883199058360678933065677946793263150262140806809496945601233210407668036649846851850743927213812437550345044273401511311936370559086620847300262739837892587315007432634808077611191115275823584577613117378210589985290021064586482358539973994585879877014066224953591589091239678413242162832661145844617986124447481568548204906495846165448106981119590259071279958410130069858283487993863105227034056842418642678736838318743353961300538827351275094414394345678523899232576111551348189077059323438694199013421178811269527728398099799571302447035837459002167541074450632780247049360480392509842461716072771439768752478833823265340852610913264196208498580820308598476581221513537435358157788956422829613069011013515254522718365051224370042837067255893543509901185915228715878879080389653767532466585749101315271367888420402330300787149843320270778658851863090161945403533578984258422344987988297137050781254961392239231740254876901726110903643468065500774706424147481698551999810394862661880438590616566454566651503012699494930599255950442482350802963196422079595157280488034323372691385042396089802730242503999379031551869687298576506103571837614535193380552984795327723839775495385623343957790704003365573793391690001084901944674487112538231344232542600293537750001612246021042491284988942582985314472099449061423024657099522991689131527769651654767556395278257166009540638636518988191490834817335108438512569397796425086756013044945084211215850482865433067797830571260200431553160147726420911283292197107053599966284470813193652323180598950483193413121191634044722124715625669757827879576166837815807980576986766542093907604800131412560938996046580749145957080181914095863766469136899422640095625912766144388034764531867939892522398409432317768053115793070292051964291912777622627823997149697217069679576270415270579949011867575298631610226152356614337612275338436203348765994173241929629513862120813927747925582079811835258150493016691755372227306003632788240261908851526581846978004896767335500236418904892985793556899980503442275725629266857738133802613681914508887359399101341844983617280984768992582455777557535943871115446237450978887856714769178980823262228237440670639154506319759380727069684529791164968229087522542909147867045732248666187345196477412348763992043442999412249507882508995931832374072809019849541100984467555058326989552195921475780361005260968109038041052179265088544347123064631324862726667784304474752914488457358149097252539294787848420744812528285033681607618711605108658209794811612799394219298782731107169613668708942457847656076398892240217293382237196749803939218915388562260965776155271016218200480385042125612467058017616122032278471192424524414721065760020004218328642106575752061102253836693059462641614469926174281801785834533455160633804760589890718168760754603343766911715670359955164877654097420031376257189942710533608197539578554718308422662463409255009595837776449483258357280605731953365741212387493507137988275890035353053109790953985889959725857450351143045392417283754900426437789922572574198813807560655948407617821199331678881042183674933555370016194673087842362985085499870601970054803189633261450508349297866564200928090716788698596882793855990082421097762469763348465269750458736640322022874092243209387201834293159625156290373344706063328634837177143064934714719406638655450392597537234681297341239583985799120327841467378070584190081591463033924733865403666697175813049881335698761627275703960834929109890784962189015348861943095787094260362470764058408142308012786713274249594115789940787514041037113606517210578751365911441033933964875713548533234051474985388932971946468188406720549231747723998471710857514004763914336853260788251567949018959607496170346696917279121921592191610451616340526183923229157701053012150384592479906794935713114232327624139924775770439035256848067942650946325362881053150830296165662930813899144121211105896982786274076946806044244267589147196440725598347795499993988379272341678004504834291585274985696947050511445736302485027035650805765511537160484580581834900742153726788726718402863650078628581402782591568385734265393593346995138819369900515374870837850349865712616561814794798851161440948799691816152878120885381537868960470617956438036979100235251585906892105268963998758564754265270882353675616002899036168157252861321579573108105041028972109618183859222074450624882553634202092836219076838873502662638361013073402031012390904097142444813235404895309227590304088063642457057682653039206910702395567798549820038643163107551937486189459411954172907915918487978383090736978954041189919242133179771690229093623196992459906330642513072477546228005688810467188288482018863746435186774077004837778728993205750101493143797200955405518653452708492526409181765589378757143622511509378652106063903431537785079435661229017055394116651501461809496681047667153784223084595062140939289452018675442331584127908411526393187502818420064380146622761834396611555587011624717578495587954367629341888701825091903328404018321916422611504919131462203048832582255551168857169098697300313239618885739182482090052575302251437265869804992888395082473790567207995497237107693339969629413252195111997519980742287829268951388024557938392533694576959334110654189390835585986939078176226692692092817646211276208724147108705777631450952042399541143339147334769231252829696950157425715698181323885355112113981735139925941824242234952338721552083126457202384857455833091186608450536228696876260328325489724727913562826598039221008813051390227065548771788153133458096777497493131902874875911065057246828015539699978312784809706371288675589432844734964767384081218818935919919799300866441131842396549643781920536078737298937331081679365620249043045511452962558616066681299167360289503753743647364608841483952047039548195466190300530584043779966330828034681339157208907894913132996734611116653083412333843102993999743974617441812190383854917344007177324875145428319501856684147265960542805070749950025825357398603012057023354885428564534518215488342364594292345304330686917423791648971452410071771254532353050503394323889542772106845906140941257772156292821202413875239624473059527798610368739405805114130274464528309252391940173000298893502656806399811854189789410826260929776203613757439769471571783255834267081251905583458605724408771374233901800285397977218189523108565727673951888204248418132467178685748172966511392855276095048371053196267167117532224420026495848724245064413792271458226122348217437337689862354861608993968246701746650773734476132175074241662715564896912335284113027139653589488414518326969850860629885708206274714067137053796547888027134576646761403564703748671405117955979242902069125136567588421340290286472292401407469554667624738537147715535799665722491712333619532727060044404795616763846140884206534549690018913714680768085323879815866039645701363405260526089952204824079096689520059752847939494919396269874542027926160181969647222447365840808737260929604393288857248807006258594106048603501517220884653129687248399630489869447707812464451967265492068954073341476969141486391249210892235233792532447423964459252356207861568374829230341892446573020336975451489144564835601224330872883697409898134144699258405182371079914192356627420963249028777569345159559826216437388443814019757630193630614155066290683863331717072219336986644688816811145727253857694493903652895491194777515659655904630212770681678285817540902563002039536142931752422344223594804787578666002401187099429898807656725997655271113822946146160146734017278748012472027284526692425042369882858258324469272063043675787862236891679085465657452587538386719605442108465025681243825501523456217619408072389068771285903162392594389056690488778983439993588820622074966446991694188437396381751588598170067526649128705122302667357711933429409484807877185357418193062859817038359525316652170136400836888154211345094276135395569875946782772104246598735292141165225374683239005757588181288554016684497647971511072761498073247597194510554235213013474656930839470301676496888004343033524214871618351074619248569134138800484793831004879471478493228032240429672910653128742650735392387618795099906292575513892268960170351388498817907347661745460139330916499508267851945913144302895412458915388448531540801289940727807417435947875949974069357302478335111031778778283058195134622986348445537846634114217659912717151456156196589183905667717528609645868785477909511107742858404087290324029700528319207731109954879050714724444604951379277543109195377823061127789874820745618492813715689423061039445367117739114259723935205250319417078822948084497771459365543617513602604162518123600978304711403631731695476695532222134730412777200934785131770552354660934372164444003668672790962939164010015627877450191892533703655900432907701104713477671963941311991355493388110610311280672406721488678919609124340640909305237451625253839575773723604291769665703225053784559774600387447143158705371679118174540336461192576178814682642284261723136012246750521612398583578973580393382533824893299588140219027526235862392678036065986231850047940116327602658947061624068469694729980078940330390677068107290491169068570154343299769866810322950157152629095815421722277807277058727147619782141661320904329600077117460539567998061746416275212735999459894756360482011195172809534587405258117869883099849382884049359370709857774747048885000914583544308420052836579365439220999104821966955514460876359018604595086844793596387171016457576780434592189159924748314010642857568964577282404691017000977935174834065462655683832010257728974823761729831569091920211758076345255102162314113873395894009105261226860598572146399086450563343117003942748368315870689477606453586195141259322385881172728643504951941642889732554504559291275508901634148268227684865604927517373057393145202644653914925211641396294730667996508897637958325776706329107478476264844102069581053110166962596936451401439165145605757617907249107920789073559552353169801930262351772204147601996794584181584497498646932596825954259501405555638839249934769905803319180244901169850545442025869208677439050948582578383261145466743012352560660239053004979153643481383612784304197933063857420999791954228999869260549184487955319478999858942490222761866292345342937925315160173543954542941313369926974612558271960623695343509285615900261175524091210778530297084996057483045303001883074026681889535528673813275300716762561172585659860680303016580336936710504795952402897069111067603049877582612735513994789876157909161350017901770793425500170343259747722517365405850136920241179577145015425694655483085318185432634683818327903693118205952565585134754906878341101530635438237299236043031107779765067250898189802921764610305726904112765695766339680899379003723174679350937599518711743373529557375949567472085024973897326954221592848355688165404401349331162268696363679414269264603188872420454461299070036529243473588113868819373739533347628494447960063985967581085452770469459755639342223122063484203282934232153193557199000971304082543175736883905827042411374870941051359566945371804851773037888659372484958995942545046351919954581134197814257081147084002354356324901688021294211100706286927380244497446901599997909470800850418864573408527409558349761939457021826538880131441903901048163113286281807949111345097307904016657950336669723554552919135610171165584857917716650971707486265492680566778264453119648808229529494057972727828577356512053888933154154484860993509957712786582941677978698330820924216824892729816889748366709137252970649411641334093264808339685439234176342679040689856222244591958477279533877450264959869029013155126275295680748550914840904669442077063163752116355976475361073383277774080653601601449823843826769213331439674237879477456603160320887045271785063162828828493383666614745996231884068680346530317392613262078643154471471882403967809776239434234025597065481708387686374043567492484916617147837885783483742001348806087143612207421540367281623364069370766603629020003952436453202130116568481356961186763007356788352677344948728394759520120223395239346388754463791890911225016018055088527457057730168077463115609456709640707961522303131899744572269897236606477733831102782641218017373037327596866622120901139796423012843893712203312884048830571113027943939527689539685400253126057211724719165292364132748147387969637638639024613467378146767345680896013744759603009174635095540088954841009825575038835300752598456341017919774383673083769091141528669734190027148643419476215440360124205898307925247535267759598772374101004509549468641128019924699339963485999872570628823531008202966946535454902058548574346442511659192770130206746183674379717807814477931382533897444346394229138206428624826328833519851401193824480194890129690308223355340217525360278519201208236475791349814113309330160698885496597921614521714063844255689831097367569305077383290405421670455769845803894287406348176444318627334902913177194333313547076693698408399100166974113805531321318659351078987448876555161653688889284302664524240629582123144991223448889020361966804790177154602143930060558740936352246489031815092920579573888064025772643458338269935927392837901219866030202590237002741260243730354499221111898228806057949495279773884688419440226861289140705656399456886435849802722170057223024006604798344374458312385800214951308557441443743403726268404145875950074303004075722124410547241910149340162803317245427181249311354296004923520355921495460009015850091162825166043086933002670493832979296312740152492947249301601120078235689038802542903319466662618395996445239196551347517142295149876420139552509234873407366959339152061110140359564527321449246333534403463906688589354585372123385629656596105661528797884224360605071130053359193747048370292044980005942137408271329916269690029694194536259526051017558781081434926222381018633669773254030361399311394465988760075140503939454073922115507335852259432630837198663210489041261932033564001448797568685118739175521258378329434839682749710462246836312171590773441981703221308514132058176463668922579064097150406672088510494142019120723016516793528959969302725891640523464310127959032095227736582408264718179663820820017103753551647581870514272626909293515554468066033864346759443318947510540683672253196001986240980135713198019759049628364813902356419484247829166211408677884609132725759180654423671398196472129041090895657882193136129262768948788828146782983489601645088310885242632989360745264864953589846244580597617234198300235192367338871753542881245708970391888925818684279609367330384026669803397989566750736480329252607911690331357814292648488246911947404052184941540846664394838855506582659582965545466760590292401960328486040234296166732999080445386385074969367949568247183274421904745691493819828612920986835589877451044010814443211466139978781493082029837201710088959150362554475858338209206184162497711310477677134770442914005585380392959597187200880277954668372526551924907757947420372827162947054253977514481162732772679864134023139027806821736538056964903864905879021919345306596710172853841079959434116199356240367453996426874716007509242536264309714147189290909942249026466131389024181103560728059005882083388935785253035238375361885798122065058654668127399816963441769244328702451673323502716942235220246546823855697495604131172354315454354634256227144855069665003415194346971652124857336596214286627573549334186959616369060912081879234017862974547231083159290630458361819346869195269453633323571553197216062078250918062176966969408092470833664754412043011942652796655177140508022681649326080954964075500394619782059634425294711439969049593340776593416954334382801806106695411854201533931796269020565714192279789450618734567540020166458620965830583712584639459830424863880564964940138444301076847759427596628734539314356304320074289817161918215002274663360606851320037095035601396673503066108478288184238326252402535007258348466321046858692962054305889745165498421194454116345017046883220053709944746521168682980657315225125056253652273063694241389395584316586023667666659294848489638092347156963823169984626027373108426137716055159349425916966828387468992964987573406479764317081443500405026366703129648115205828815047356475078840451875812642334838103949722110663526674831781259770981896838538240671844064312152296102557870925159031054842781910631552404526177627803860281310656866667197857061405908225594512269848271111972558856599499952024448504987828065062538606073778421656815384266495116396976422506162458778667209357095039411543648873667103715359484589524080981941375224258333146557074709360902577255848874611034412543690246345435121176976045284236866999959402791300296110560514126063845524027034327972596030258565621954513647912045146219188396319589252264926568251625673801808379257479673250456706833488734834646002541413024605954284774393282233804112833314702950218357904555477855535054811541439821365169781159747816358977960458249960590234655503376683965545910058262041437653143322805075662191721570658787712012413422671646350515671050412872755815316790102376190744494059731237022567400686784753733313106432571675394529374385184686472783589307871455646864492529147689575599668059043369134598814097338005548090693420285602895158319829530232513265091209791482658406087594549732464401744404198300667786460476410878723635429893866382590873785389695553236970694593022710151425681649178522409411794656076908506295470400564421079228717594064593709374487735816744819438870971918961664626229958983296954334753387828512908331523021688298337116797446007713892232162603881352916726869289704167950830003680434507313361258921187097665413616661349160648831761432827345027887294313518916850677058921630373786649438733921571540104637483059639082356199055079252103740016154507087811076751633519667117219338102397925701708691692298662694439816281568729176503204075265079581583145352300130329598331067850225408059093035440754942820012274805021100746070242990085904338636151788010673278829981532455197463972893487300041690670079036158972470175150795709816040567979008930835946802018934341089900158966818427441710115581771774746979163710139026428632457960928585682900937806590108298684671749273165484429110635328717757101998804633072828962246597804489241163747630596588242660786899538147946090540788737513326004084062045085634531417343195637374749358068761006344020282328338741878207342827067580985103075996243328905997282791212185986607780063232125787042240032940821509931897677596042339649291361610893628105732545525138268854076570098766741693472113737327695853326017580498023373435234274128817697078753212297395225824119230729829769837010303904246545414611180138590135585412589866796218943793846125464562921090239667862686455681720293515203060422760197219295749812900333136560332547456905317961476668803092801115333741783662804052679986075308541110717169534464740432623806252288293013522541776422073714310838234634868012096145419354952334365944479322563720176429637881396742480444597036080788167493898348244393374284506464393888017716928169391667716321100428619937999534407234533496982571328391459972574985432198427169768202248385065741567549393625322856866764110533992165882289326734294277566887444191131166743718661663150408448517382529172356133424864392866596078239246854934245593753190582833310401784469135301278690213639026867479354314481539522663801787275015568164982076145176861253105953756280048160791418190748520534262766926057962589982742597703192343414293289571757059885862137286950859395771683298289030431077196728926682431677880298152683754440978325787251711128706941371810348936037470254277412137542446883233326567917262670161221901126578894893048950217689999040170751765044002542838495172594378344501538427517427166806710192983304733336847508539698050086159656787461841760005319674241375163443869754501135359228829333111239518303756781020710136138851001842177585615008750792438296068677522469176319636765101289399119175531570334435507414525247562306164508461259820453678565435068955876089349261322722630130041248516339261936786652446884423011210942909614927991343520338376264408570587142838706270302578824207133942756794513843310791282101897297415629580361534006638220249855638777955015288272380833696303571253429825036652382333415118674168435924067888980005387560073573558408927172986677619780067134963709885686055135726157485283385257831225623587320020114605362923432723220345720546643460193046602585920612834612808594836463235228647144078304098610015398761468157718440982745332967704153956162850407419939358944954380111603077203021840516996998081493798136844204677898433369825435167349287473736734245000948202457841854439302025261317492506249751185036214708063031084741485759140722190342997564327620517681191356390321354692913552797930942324536149565242839181129315365460067561841371024117883203146985403653817149767287702659188815421713317076239347420259751236627531114874129661912432266055658320743848243629364880804028608874014535909319297944766831868144053025987687686273083792602748764550766685331447157377665757614700965007316904077332280789090461525702180972240181290867986517252099540165704672820516183617979394986481991737118351081010161250289129778353794814528679515334143493253098392776962635081515609164037268417027904805834924879045227684525353020334267678660508408549236820302307527976780568181841343520730622889137959432074045235434201397875403307606729482509048510769742084472354441075895725961460597688228027435853037620260313049076019328810262443942888143132300572605602289988920222569223139370350785862181593247591563049101312664613476109002207036238701505271923432157577981051011685013179523436790615964602351157949822808646810703564228568870672859906709092708681774717654696754086403905739154033036769800139397976850828822974671471891745076751083011428878334953516962300638867176626058922283623550511711806074931267621292410584787802659509890771047824975699165046672477051341082017210354377372832797020739893032681930711469786620956730034577801833397633610438610327842523908522698668201950900646139733140981135807661695041549492693037598650985000021020038420778766220747541719770247470394311554244404532716923378252752906432676182377382619498652470598080547261592063964049795365825847256008171113934922965787061830958690327131923014362448966673248405716757082873713579054104379406955568234808914730208695494401081572014798059901117888560436769233174870542775562994356326884936771378250298186323195553114657200830499983163750295197700716892569557479996646989439293558424485040293993956764587050399448326053873673022573345906376425946557784000802467670096347181148898923151532352553361322395126027179659341284023244275202360975582949436183285951983527621182214888354763186583970382468870354625136773673950609465520671743284276552860888510992627461522286740491068668582863572894403109980566643260541644353182708745361183362499661667324741155755627014335638662591211443443823220019144125055378241448592637559721562172341701931431109924011449164236540026750578237085118621051557449404920620153076310400367512850622958974415469379829370904447694161775850251860233649586154210863994267262721175420978589874361512615036462796259484127215105295534817692617222314366517023610455890101499486506718295694488863044699161798633566572871731487694904501414828149280099400415526692391840351860997152600831676143738771390797308853040543762255416410206775616574838062709212609256527118979561931641131360837877029353669547346398818650286163955267858311466515647824590234530971696061541780583239762623343555836641018721080096950066750738008315796230935289347725649233805187003388610452684869450951766734467036176225888456394591289238869589236263992746222682266315938483740890562990178121441363009378339667301552933700139018766481841878855713343575334534109027011734642788996910201050035217754555490881406537260033201127258126033117485350009729369584350763919227018025290033202972469173485777312077477715357140120416583884173505092073925039673885991625013259990319185433186588992057886587509514192482738229783818524044089319190854386596640498173529026295850890464631864550492675874599346159497950300623483794611121096433488389407280462758224932835705251328349449539910225892627756482884817104998647753955183985197606759123042180400152769552739713144867329270641827433464679398471331011522056690671075998066759326652258646364506626342454889765378933499315281885877629499608297077417636209075334361204435530429696196928081865171954621066745268062447276338029575840630916804094467014258889703499031687602036598853216866859051391628648047162023822418892868434533599469880961541614214866734720558571296282398271767548488387596820714093802962611515285906647878834417150453777270520437312074160869963934118772561569484869910072225252378628380619990740855473290936280924760773213180149666037213945372989550332694686876076700373183775145452390551742518117741741515611708203425909292401618822718597191578035920684369139353204431536068613112183986088318626230730746556938425843896573476318692213504265971296354876431496483688305222253761832796545397807825382577767689121681159473484936765811212261509198324464060599464022603621935619038213529924638342177613715428649080353611451216570520704161490553761044950313469059167293228854572423817624741522505048390018515968246786242291056416240524487655722275769424204964235562021918000414815387162584879609188894851870516445585500689234544034600407677641409028994927152245873074711733203939588139403212117162893808632976971327765020525431530023848999585769682727520785363497104024699656278006034152070398132976813581253590318535335114269446168868161955828137496244075775057645452802043253711784864728343732563105840021000392340419360454715914321549866169674189193518303872765777569309285351090491119241667529280158529632013124598095777606140686975076899352017609151790235409338368843055718595330699457569209093528515432135161295909584659170386737125436573525255185628120705478064613394642155710948614092602602404705531101173852255079857253398140046263697520028069379700326215086250368205017006137665746230176768778913143355568470827080274695333730664318316047503956765618365238792025088225328766032108486230702184795009024396548326315760123698486385044987465029287462603521869146966870085125867328262358152527255249047362609661102595868063033702470540312908817399551353253184185150811598226899696271984413988754741262479086998460714280613489906770610426937956084659842669403797311493555676713627521046699669996694138763542508055597458138630986439753648694927925758101678202124347874028711218018168942261146526877333868658475823492499702936283127806526543698957001834123850775554506066866137456463071328955848410652848370840632472369597019658756875441332170985565550137638142527465790186222516927375161994175186725072174909516192799509411126724292580503347365571722515377899542581209140640640471016930723247390553691131827857442717274238104443790065395937785363416193984640781494188609182003134990867542148882864972726825791172769946669559717163623276792110076612592110334759271020483516921442526067325840572639889109136819901262022350014918253403814226689865653733915794377423228016067112771052383683517778697763657708110454371380846147588116372158167141459624967748909671998709933555776923197005747638323044436332089924423748191240578702291573614198619005449741788172822605462290899850235649850955432898518818412791931288093436444582988721496225663973988782124993204074752406849418708152237890530343199155290484571287430581272903975533117743309843101119394928741990055525697465369537143018567622022204904908457913719197971356471997037896333417160141570084277303407506838807952402686772908426142136538139870632485468781898428050016646782651624086336652779013036955475738221367202321765314175681763614517899249604412995486633576075845586086731616126041916608121801885561369693070331621201272196126521116624453439278279058287449039788473910067821900798624230054844219169366525524129354087632170585028691239598113617148605358283594194393419132332089350046278359883750422741664150809365624099557232774898127681516069621496852935826567804698705556841220769387460616147528774789268567712914885646429106485348527793897905488805163402775031219915473311832058231449277511391021342963257333607307170091393113177974192489073314842523839417024886623573880702983080159710793268085239615808628234291426090565276597628615654491532348395672327798773412481273442176728812867066812730091114483388468425436127061621304472243440875561203501369004482093002478039881514908216200602045222223549360047132454195392908415021346669859481986719600756795698388929117161067939204770862166314559316266506260463906319110672746243126273154960148774693833989304515002292453832192690416279120483219509175636578400815897082437826555576273504904821265502390830584041864739810521603473783619837891634015699516366227225392285927053071143550457505018054369494225074124053277410612974571113059705569425481812975178052261517793191441114722886158142212808697058181298073184782342221282347575537125387074143247858135938984049717426636589011517502146286012536360050504052609401215349259452575236250334586928680348443167968711926011700589625077636715601189937251862884505806624137496356530618760326270471532167096192695872086294209195237207630826751081207685111887751782835048668439755987314964063597289591223993693182648892348962361397703458739433027367276848725545932289024345381973969062876363568340834742127180172163377943203027208341557312959471371044899755345595121377887236777753523029207864254616983864713185435205411037945885466967108551278832613503136236164650040107020443624529521052760742767145249327877411985112615610406056229531949721548002364626388262309169526343565946304337220354515957946647555178221211055390540221098777797688892093688754393944125984684628615211244929418148249775126340642581757853092749885418027875017948543921698802657333846151656189355943908875697645152009665423989224275902261463469318076505735999531795207239214201026821629790541748756604493397745786279548338715688064021087547376766557881302190069218975381050237896474140259343349116859518125936256194916255354292557175678823452892089331488912521607068319601455116873982908039206301316087424640750510534742553543002276719419535576854362436578610039475525293112788297536977643316178325022657491155298702235608780854170884201552168655971242892763021073271726852822283528487416398617790465283960032385732674856139343107534819499962306725945024900134026327640633720110781853118732044351258497631560021650264257739917434701673308321288651564287435914982000720149086086712089819532212149859304987986873346777530727167285505300023322734356196761177058025958568013048014184556681100387920973210593061445963918453029106242790904568289961367444990816998978649702613894015602900986132434814943489760306590581958996402219800755099269948112173085452569041173914530723084449633205492390457841987250804858638032239501840452946570722738266963723199702963796641909446139865555519711401697765684913545336083129347269386360014045482047575177055890431839085562751790644058667594718707370881915784761417950886520116681418252259875688172132180761269296439798186869218189722987766014521985893757812587164465948785117373639028753545721211172186368527278654472665908740418410864884150885492088358090827778136000885713440523195081720098985985758282289853815967236821645981939777111036401974732603548697145760335709898690916209779117261890848638804318529691161601698305142167187236677986225488932732941946428326147126072718723088682386278399060320664392544401969924397185152783175324682279029868702073708014140638916734879661388741719653733212787787790557039227159227010841384077749029582454214458788846639073239811837429429469706856570663040624694361088175071392268337039081931566744859213506769396809986938791076967527324675366224103963929779632562865182572011694564342308634858482591215917280466856164301951871753277758667190151368906431995064714930275858484048814517834714554103232015204676312400716909081659824211707357521306848457302759751667292775067600145875080471275670272824444869686486510368632611743928829229675028230586363724145426044469044027775545986588563493849717443013362377336266359611524081020185514171552196191143529395832058706350897823088984921156562477383605750919489660327609770953458476727804500358960328703301636857540464513488552967912990731194488038834928714528585491645751442462729625989743564263249940526145436612009210697418467495213879697789230077997581751827804286481964298227874773516351430629637974181120767483420121160680944879267681493728373430038623688127353864374738621546566664561341959274055419571531454204859996583400408581380901210677066075659491005229912112175100136029980804034185207418575394692710351455438965630161227244360091453445164995364636252181603489495607527492946283772474509663460073534212017286701637359366619868811604797261444859907123216521947198016472780762119798701496115909568540377409755770771752930004636343176726715219847788045918298027278182157649775905054070800006605235152036081297944756325599218051152271943996048978174489264344138125162021974074102959963637734956651672480056101754848891544846185324366965274788530389190848996641727453818118508619657191474286532550897540729827244888884897868372160428210909790254707436480647044975466101451892014539285875795225369430023259123846128816928313189027744193850089010433587450913720480620031739410878390460453566493204565440766269332137258478902926285951596430467759261797345781728415137486450228645608125198853011808619626686837251200784473898846232409335689726103200243692631272864080193078474950700478832811170118295304359923594594068366126936128255423404619405660172087297860269318169391744994478573081584420425383422764196893725928901808361952954725270563658298269459210067273859767246929275975270511937345162525157908887959093078842818886695476254286322134685000139454518473816820955873528186159117518928311845967070656675623300004720439132693373761723984883231045477561717475986383324959496841777083467185424194998667744616943334070544965626649047290250447555743753145904919057415880586804626246738952285716228521184878075510080246252488659311912487964404019361502904834021979238372062486480982398248435571185432232442148905830606914639760595672977126048346090840363064346817558371953926213455197177774737256333072106479927110688687701926550734687176484073902956816084930092252578485336298333615611001813757631095177555532718902924787422418135763636321086829967273383533604955959175372922604059493902297309291492032743601201992380109646197497127539459221994508411791384082430867547791425872618500701750424610181213489648936604606156800570122160730537991772465720633117795897459651127211278490418389030628532348200028307328626247863727510424500813968261572437578551157804150869282075766355330445752980181922392817265281997260407044850472697813815061295584628301066185515141780737351583927502795328987729516198111697881504556484772652910552425501419672638344854459447161334706286035484775195255464360610779957590690800262512017729844518244569825245056916366472245913989088201885613915577997235869344627374721684599883304577225286655779959499058562373213466780590945311630524313536161830890869803985581976526241937618606922018683575024563673959090013503913147443974436161505993043122975418351808909516560885245479907832439982842224353908324081660569430067410907418837983778831783653044778307400370592182222401625697216748382942122349485601556573984299893235777524911117997586277006053140267311795640457429435541375213150282938674907843492048271751194388168223313847148522018492453243064233631897516107210906819487848191188407203867779016405358117418732428454768968919517969564897175260070923656376906286313604243570396121983350740549227486583770122121342666349062227593706771306809562745833624264229863775879486518038820594548636817651043223675704145998433158060697168508704736678906450618909407236271196332145885608792988444352212231490800720912506409348866852636079532996313513348929862978011133323417422101366879891521797355653529264725062668590903079243173941539958101326135139031223427782231657546547570918232990732875998950218041134458341017568818647261939103362050613866170230022501387616330355671614607926236953608006584256696369097779584575155469410226861562450039584422056703618475438654400986583149878699917536806671758003543682591973507361023205212463379656741119013117304360388361596847879672691118211218923978299518992637674200376431717408453800917447881748916173594418542725885066282975887852312326224270520502279349168652014625239005272757111425238100555460218475143252921355828859953783448055297815306549964561086086159107637080700167736295895097276120975923528460538814442785351290923815685945751430198249790453732694716753945402555241966168688704490595968945280459728044003569176603691931884138117803107314654443067891474214177083464820947126112357737765269162103834844696409662494378978455125329133947957552918706253414200396880497444161416538939486159446993059746602044396349117598414749067590952156931188010297149768554081770526214866217961764038633424729720307461139380724715921229677455382154718284794714472513387005381396098536775500634769020760808729211450511340799972633448800697650733464445560210388244863855273666449469782357578229953728411694913891727464134363914973192288170532570287829769278617666255669493067892004599349629539325235688622860467310511397020488687822997301276078104480230669219182919567852552792155784023885175950364171510044518071405905774586147642096486131370567305140502340677985370788829630505502726556875747143119594229308140448130728278282053434544802195623946138930742806433195845824161133784110699382350004204554639400447896424338148082355865627783479423156997205708012244861661481932735821873702331856023955107063774351050952545441609558538842122151508176329082084090893266891845958573207054833383184890040050051575722520900082369245074961370911182100574840943291241230932711295038060681811243236372237002865316210657924954655142305900582066700721183591724265205247187003562885048619526366698983750889532716822862947544973127613722927751617332170781670458512804124435680303048395076403077220650789547910693555334179791713780114127622786573267059139381226526166624171936637988856333789515635118535645690125080014709256305382837434454825552358150651946033201209960945167743341317294452616213710457021965909714299503044235138658088146579799536635125716410137300903003728648912399161624553312342195586987222888043662464493823071388995404180747734255204869726640857576429149965349698398876521820087152556304369014808975793807950378387496842953490824042959800042496879058190666635704736414137771571432940319008038235991519963000387518085325223990204770154058753642317804581603901104994160565154721209474846332607867209975968310227670841721188459587131680565398502549787993792273143187597071757502851981514947168755776626095506177854780963458356641396743119477988728629386278140661515219004469497090846824420021139562774565095035448380420826034073702121183251645916546003802594766795378398074244931311375493752527754213091018451963002660356599973349146964493843186368268498906331551430208608774416710129619381374268740799649440265745630947414197298364470351423465689390357962985737130992369614735185350391463870984740574173942011518309028414225537154319651081556682460078807408993939937146436636919391878587919984088054394354729592429214158310309667525049963805195202334046970470029284238654994112985412764388500215530821776569970120261557155617777848448064643954502007424698604939664203707678648706682591788846409272425098591893679033402899975200681812522990127657282814609771937706569340555517480574754837758635924001727438864510484855867730818295682517549132261985043230070744771349878658437573950534047087947392336172049198452009172058294967621601829569098565200212182584502828150304864719223971768692304494102222544671103949178695445578679992360634293905000038225502315283568338372137867091216941317943119125260186777130542181590083604462870557747873794530260311708575385549852427619108240226292189177624344401243937423485817233830242473131672580318489982524364487447482564968356921620868882356361168915675007708314108791415505196467396117698571368874027480232759872321196819676582529859558207857274131680578196468523759789507406659294437643632354579508010446175612966614032476962964842794506258368884950563089153896210391520429483258056761566478266202459017967512234093767962963883198269891348883593244951292471217802075670867423075191928312260920118902738576880182997942322891594987006656693284611119686526548576332903104778821393470099262629145428085384326865266520122799834538074871206883964323926810964200492250600119616985753868609611037843340138654699774333437595018791943951697159360916169820043463182873643690177150673068556380766387642569373561611609569240136241377370362573957440860923814445560968532195848924047702337211768749620719521129780411733486219713803592927485801343981607005047111113214057375111946358944639429346794654462811436222474175681211203311619199184422536941482942741118010598734705493323211409864277558235364491839186285656497968858730891216226772456458596845228829499312574694400934945599951739328022032929260992130714234324125449001307052532407637649656888104523782320983861857175315538660824869809651088174685939376207336104207970033013582262950023794341418645991152104824449967441428243334552251908228444884690438227094610305234004502238220045365826128705214972891011371910855186889672445069299198489447472998317486098523266404389254037194689029879260413394102055595638989409316647412729298032902282899058031801002509675754690321918156182449733070351719949446963041695738209310798347246923573844061864063384364809121996253360669011855726780102625216697885602346639010673567472864625766526577218905576582043360716698596473543150779388067047453263123719825275287530735182264384217453227012658034300937287309371902271613572315918208039483294260484544671037595595678403089707975761981802009956943473785869786077140011759643515422946649838301805038482791789681178220907699131906766235102570920356350946007418720278538548527624542733267613489497580899789680712320909017150394479902103053685604028409505407534838550572930083344716792947381201110639815238636766129787685709758003289639921268957095702617892994640991045466104084696751363080415370391004946367437629511054134481475120254084782308114326288272958991740409663935239970372211326339919891365052450168819179108887855539012742564379402388905178408013775389533731329976436046230118397162440005428081384184659384605416965796731512662293299888420393517587361268957118909757410195117302341412880032113574915782339111289043513686659714735019427500951734277171642911963577676538546777922335565036608101967928566454196096593470056566484127557748690013348304541796690501721522183005266334848485233381497066074295232212954346780295241260905798439732215056315424101988671001484172732402138067989586709887930496454290796134052497952818626502802518700040649389619687580939887626474902120731834068560990630610717644312750506420293994030132665187474952993461159165746131505219611955227387178466224266207749915896142698942466969071794734150643396590062457077915879466489252023303746919858861202223635923648403707193857299807915000793926902432322478226596652520585242255670365535363810943397741307474545955806700058313613424141663595927237634751843473369530964668122522448258339945867707658695454990513279717348771085240021069011342752763442267033474032222478072087756795435173719057098254663338157502635497184315369605790108706667718456889810285050381795472707240242940145347943321166221647585471354121030176545440867641021776698367835150773767446016742790167709157256764549596632687210197353555206313610794675197233341257885961661573196602807251353667294634902802816287700492109549950021637394591120625404565099807531278938701057519378136960995892037023133370369391629269432286549972631965040327801774088782944491689792128555165780900687983477638297429007838350009326419554295842594051841861130228013190233893480130007766481726544525462198283574779155345837023226883343711313952575376112626146287813949699308813065784875051544612942446038081486785733479393419868542065901539946160478721678763126875283542234634617903068119602635410167617628641352289780633029577173347577406537399213997602037501230170675058491426152235326163100182893986080723810720704177068275944049703349032495709158329554347559227795739500913008809780604568158833490542845986611029031748773424929620366390712297799270008491642486271951643001239188472799520386990486089952264481787627208708727091723149350312105513876638802689657979415156474282173932249927825705338940198724577451905914336006777383601191238172487390816161733244554358557853591307437571474596739911587380468911423198484501897329557763909813040192170607998779032322281718078803452214461898512443453013416290785295155988692836012909180148623671363863314207287738740601641232229098548192403214051002383061662846020670335203360221756963146998231869636924006120099829722252803077332854863752974262676183126465365677275657172647880700874851661012280701273518435452516492018576733001306662839979122926499847776168205923538327590314275250173843407690905226977366372083145495788397488355303339705201151788311188908974347906133185596182563184682501518825893587499664188852915082156792867838007983109246180724836497947864440151192620815947680026203642868086583976249842011336167827349120760138997103604471230505226649684304786043425594720086351302801740161093908517219515784512297443860481555315304320155502632803993545712810837758459302230370973949180383134784915275553847534539485758796284398444597800106027897073637151455970739171680488462749516207287620938361800942915479089882379098614787032797771428034150479924445372442515957950861870429322685154369141309803678362084810744305346192979908078247731946652092865390143039870379231834599942167101280951174487350357830608052132966235618586872958635001558927881560712203823346268731624947707017914289384367123068546008956931488787654404563648817389721698832787289002958467303235679155647299632746266806376089153456470986805990687152646926414565912542668076159590719524417814486021999464768779343249343989426200351586236655276420269089060445089858827581540806342154743652200101922282614336369166853994899852788362983655278048726294157423274619658960271238853213777268239101351776619095660934206861443656985668316803274246526993280860015320782735755223337791576665364133585782744544747472198750010860880610734404293376918587587543694855369391348879527650003155534640891929025792024082952536642196800130345719293915097681831617305092210521144163130030858429897674706103852678253099269925954968992684498367239134702656375918158103504161868158500075101815191495947330062149169521456739592357796855084836006357206429932988172643322240324536691617756934817400850072383579966952636737856832503577563517207386153211711704781992875315659978184905632348841864921463051626729976840874199313084252002653463006374576830062351299785317282901031931381441742002977017767721362099044320182305792623315002613360025457747370489344243265785004343008968895553051057281938122201428041250300655290602112056957096743702685149482335497399905660630626669189837233409385349786418542888929181409557038325646874256082552450108138992840324481743153564754425179795011828732439008281240776497769240750179084867719482995335749107193746593402834926581179547629730627248151691767934765842826959221793646813168216342577525466859132503393606430842585203149290868246170160296303527142187185537917102030403829494730409388718624531380938240635610101572433444374484016771841300749669470411826723065399236175707065468978267568196802764033323695265042246313693517988164620976902481224207119598385694046865694193983692510048029537538651763678667678330603244114193334606906294568909103960010712350147439680393327531994785000139625866341481426532161894938931536145526011105736755536006874812246448269652910899594286023746849745071286760478570879287655538880205386529256440921146926793101933209793675575815407645824055037551365701521632038853518974369393630271376234748036896613126849706294140846973062452896288975511030206818631023315058337472289886647106747940467034549037354047769630611256922608466037454786654343931407882182606936420460036428448120165333116005179499330704054110137295831774964991699736870623579863704837870381392672274901513062969446635594434342447388247876568028368196825122138461636671138290719221013611646927577336234943423827726087481556337403315984129558848083334350656055656834757609739535565851452333016638710341620136402255107913853164615079086267573068095099959857142367289791606075496787382977150364776220465691441165404879288895962970632109808321609259602496177270926735998220110992553451822308295855517847699050665924595385042043599445447596853920665140915340207205061389307919787625459742893090844354908481617229109563246636605222902347163474764322331658012362078070995999175653028242913672396842817503372533035657179311754945316374691413675717626676990197490191083773117137530087583441319682277937216511163304601642311780277085594496665065687201726424993665448156047422168004146069219585852769243218249531193549311269224953215100239237366936381789857328578943989920083575931989480886122962805748104577869386085866227427932423240651952882520542711367034183627765186853873489908688165864652093373850731262131164104090890271666981510366031177916845277766131206627472369966136793152573409879164661701962209729373776526549548988877963947886816199427792367803933201013022744820591323777306939347004136970432022507765906868541062003183531283108381364377622914480189089285207084688481975917172160562524104709601099663677375671245317973164554819385027642240202830368436635581673050705687417593104189335233730696669955794653506813525924019502227398775959352983663137511485465836494161088095475297825508923068854571127204523553873107757455673445020740406972158876335647182670400165345417181939798733982085387791920226869930207479877593376947170081085717367328505287828204029860105890102086374558844896988733114054315278348858952028503694356729703480122285862023896222737373595855842271463037685574971809633765634776662825179520400139272878368483280247761083791506044992099989453617118871849229434246187684705792286476980551721119072138649913732672846563687909150675501880502401318761896584868780902002436482100543374762768590672357209877176185721856493227177804558089660658939513601881029015013287688946895900459203096906150323147470718655706310332807488808488415699432189610561985507504726049755214325940002087639244081597901202112816684627658945700764718518499129637219207521478786999948108850906686355597867019957467213550005052625025837949761383746833250193643383805464442090323689193174378108489999916320711477351363676474544382525446955551753931258513020503996249741733724310306498329297530476275311882350092100141280150661377541644461444121553221935532935830306378587046625722179687240292108524970425800568405134162208577967811756553844830302963695893860082566773214749353751566538829556085385864485264704600448931680413113342880059232528186390311861268132667578955798692332958488065295450667996522113489423330745020957507054878251830441905306674269054776960897692974054080215050694133781253736079305539112140520093481582963530317705303813210430347687652537507614787570027623395885114841850830150511914261810003075027247767273431069247163126600186713980099308412477752114578376100331494745928982527277503274156434384213666287038369602158872866759270524591218375574097974941390841719100560726685178271975001437971672947056735331223984836523360934926034472303249867089423236573312128006004149377050158474205268207035964938144814338854641988386653263219748679819625358310093977282733416033954080297491951147866623746127961973458848249923356381535255854170887544227527547775647235588249459575884455870267002567809403318008821748076758972454522321672451566623188053062615620345364897077317516825778360307965534174438230338363266349055749471343897540846586572307434677368209656959702631169699749165710532930833679680796623915464156701000828112428296578701686232834721289643795171536549269858028645652644427835798116846572276907214971330452009489226836112680474959729496349228602712266460552065887449887443267548873405644895250551270274659386724038188501362138759555513542709495940382982390799718317921831479186796920234825603496991005537268760746668128472818935321888598776703761160140135620640483565638810581067727238079358438034822367105099895320301892138944416757020359298278627367267140327469620162623223555493759360460974667615445994959072066929783761525424489172045337994931825082419308814148749859993073492028148964436662244170092651794326303900561681771366936084813048454720931955034009529111707515420569772414681725570716434229742156493444017574957650675489868295484745400641051523115466429650765553629839329544929784554533272888636477774714401027216612865286888093063196120363545231854188506416920116896755275612444233457776768141914907385857178572374656593423227621477170401796931981970943522193979949817315137984441751058714070326475189189965085733983783994425439132489334688117653316032276031846788619116004538847888794701535494734845172803247541007156694531533361140282120888032712241621818674999601051694134386008976904243794898257432588080000335898954508140044971789974332081198202038587544217822559614884013512161397593709940913673942144008411012621600037749374862208715656339243800500365746153331690707798853744771892845978836646585188675080824237507443004683370386794029098651849051844183945931597590723609214302974476046459897816933057917375425306663124526653334557143366340268531617607581472053044551158266924164798414822852778869542422505418216038907065089223526196629201325010095805984695978493906435853432173067900708962121001995585957771323777228637890418076504254883725566265959387932629475529244827645330267275992184492390899578936127902808641128591682119607075949930022597565329019081150360085024111548216744083391671490608412845604468293144406251965676781770762533405896018993269358008647271932284787525100764377178586417330265857283680513653379710701933285804884431022910647559221512681001631812648706967684959296930004997342824499148997595877167073863669124595757309548802954587829793926195566993023673428382711424041990966812110153120598483603706373430292237183073958513866169668002684413312900924086427874953135007351421469443553433845137241257887567646892274077396981031211639447326249748008234849966727331661439458647275119762971375419224799252899218018901036900198829892559749671207654588862090408772670880886389341259547892528016345344049485121035919005769098497009491955174604667905826026888844931212406577990543011540372184838982646679836209783404177063452253015857262612683829641845575231611446338228097268099897588672622494093147975645165012999900676888814635595505746064807421215958558585722441724845511393942232474353425701188503003374124363182487738832988097158149670544701727872292142000440498557258073591875723122957599193329247440749462219879091489613438573832339989313117301347656886885638352374098040927705029878997102310872236784924876275921071160434013807898626375635036455686435201161536310225340556780968992329209270492916948627869721910912397124000138088720791192671226452386710894956023622422319189278426152456133051692692837073530271266429157447550918842566938186313920540351379763086020509415711719659557171831819412644385983692066294596724881070426307900038810969190908254950606503051829792193297602764032023554760635247465395204615168773449975037065273183480683751574219706565368652992266832832780882052120457984966134695919335098403779873125358054359394686926999834523667554454681502413035537842630880662485661015459183227733871316255013981777530107023959225662571422983493054462572150778019943592054098418472303279771880067969888685127169919018079587972477236881410545179814190074197851089188209815400318015988286884101284457359040237539783948517898295132653170477721767703285157433575825296662944754234914039858686751514509383771131592102395798058283076377099972094047698335482769025977514016994745632489656565556525730253845935546421630260728262414394230167555875290254461666611966750254073818866482441523014961266210585459390215544422545048541743650775979303634369075814049567278947174533065830267737011186947152627593894619218575608142575072418168566401160530036088653827880896341468751335315671232846410062894223369850532343252245804577740109035815860889602652784181116887778215408656338143021268792268402118125971033694196296976185026750000078640360438853242606496231194290162590515679673169080795765713262280083196431155857066651601308826820651591175815535564735326308274359304804183106033782654890897607784355294405373956240851324249545022785258901319360729295680124312830684993497891900734773952230425357039015882107052605440224392807583887375546686876184979181053268053692473977179284351225262838104037592430237994596177200898744516770406372825893414999393227171330430884839400669045030194094126070691668150681409224311074908894042632095718297623715784860426801694354725707012204155444963540410329884261264382076462610213603854104553864118461018628483178335781778180659424575447150384474870221947391401964546926553434053237991503431114717162789396724547064856423471770168378655110943163465242247683502515804806889165966245500602053451019382369730818260990500985130110743108922939490521692446383512339618269584168463935603483884306994194121325472780546413125532549700247954919622257857570741960441149363348625883218440714160473717526955593874312039344351203437345255998879835194868691402552011165825520779474992419605496056170199395926101511422951026475195569679387709728485323263831539655717587931038613987840308827093141003720556167251039038475385976967283365739603700357871711745907339451085460725292553141498744329133345025384439392981394659171429757009103321524023270070987911746249909499366255013517044605909654794198934633723611379940191488698796418696926015471917472830145202569274624920222310920865704192808277448475096307112968948351914305861680508556676518139825200615233743671014874758139865624235586303818198500174326704436433883271922169736212335953542316330071287033584027684465771699392901647581612333558624919589063517887257228362280506526870502484142842167024693855348733481776296781414013154039637356085832012787642958560408790080415334224048613938963134931999913586878249808324028166142549227945174663742866180858493152140422012948380274425652011770646144809769387325941772446735096053928720218298497614992310904165348845402793355838497819171210469407002131974024476522221792271143811588184273110961476286271428342727894856515194352880188335953264686075012911580523770611259342688411435066666878818648014406326591323619138497170012599234401523768582910544964235866833600415957910852685740124751875533716054514955955584720302105937594097092603983746258640924932252337747517192397703751244807098951999270830017649981867459359901051394206256398227465624946839987845459375565728862612426942499304990282755939955040194941191207323402179718561247375900581614289916103044916470451944190598558444819559530017646116466496352296002860271170912889094102792625998464285927305990585476251343475179388263927830191987009178204304666716326866970301612078309225305758343652585478710864563884252105501224649776342393834236906309145513091528731200568877088263666341675434562035246584293340616491764669977112293131453768454787374382523727839035350533691891308965419645850406853105061634368465525273436542008036509217824362587792596786930397888017555093569666773821646018346397614902248666482379137914375151335093569938435358176539817815800659139798113658403823721641068633676205734403457414356460911941913456277661776910548356697829023971572076789016864074499903430098947429078257733445523957831441366167528777888692436946416360555030982548233973799160415303716589299638089654961431167050775115965530746836767014946808840855492559210317290103104700395612060116444663122380258492286270841591402762403749362632435121726602081277365699060931249827414373426518714052717535271129240919068013141415206374787615970278416809882442324593747808957648419768335152069570417646925056897796940668322886768471796807204614817495978716595237272955090394870245985627929970823400690830075986789248523616209020950102809282576341903961849422916374315015665062196543774086421794235930150459636389471284046594708810551702299467352372516264600409125520332346336168974567578200969533316547106880303445760819320996026633758404661122027686079189909124138944513085052378476468402500565492798136779917786459148410461592343449899804309378111791841163202658429913642604773338949783687672959652437022194952796043239005948956169791546937088251312630457893373196366024706562781330358139689158864725126425023662173162669285588488556451311018163482673940604206004832729418525555126985354460890209944937552529634580618771663889541141075966324913858170174623563291238177005352206743899857905782792054804008578320666097689175161886039850017685457253394377527533030724342271212915305121709235772174659210492690010663698655631652761039588571412162053158412597966008745618306981686345822866670123166034421621303902729394422719455550188446714700114296247403513582097012533409080301511227286236557985695392956414299450675389989741782597203994030171396215702079228159747315571418845960815456639734422772887211632017273594226439113891200076241631412904732896991245248531289932786680369102586821374243069233268109575030740689253823945216205495381438177652723174367535465254402095356415635364348054301355395809194073337462078269041770129213379906338535930114932294832269416851083438078257065147220801735842286227161771647501327015433350266708474981483686021901957268625864026913605338705508501557274915278108617248379479580516440955068458649320402795588058831856352280649127921293642115843000783646902437142824935840672980313047184671722712525396130906680804495283130580909276616219700105072017722766827985566036956846353308624993787487600535150808204507480791261642042452868260074130266216160146687455445738970783642430895484206366894272435814215073199173449544526567885789484900082822539799612910133806028318615757936256224260353351438527016933072522372559746091873567314448997863493778296037265051945575858109854964976402734045446027056799481502069374757549454577109056802434910669204136539336841232646553790277824047461291935777682409708062505204109534701891847841988011514267271818362244679571488476454705722527795012430992487397246810166037869450390017054839261645502553443725447649545894817982955527517554321046115915028081308262101949541145179095225507341710748795557882225235937450546671407762200873069630192673352944318298851219656426519722944186295511623158214493406204982540024646212346550003929032768547314349982396069356311120701459525235500138321140513495473414910991612205566665519195694704261276095161692758523361713401769713773923131593694639738797573381708299784801052737239758521573809261379291008169723004225374552210701152287431678138748566511734595314228877493534221639761742144380788058219960556284746086739381585450199020083911552971705544095319959475903058680838609502985233484054235235701116219247047076920828691684990090158279881918075902256275945214127445959334433026720502903102893364160997410630247503143919271975175144962693749577308975293215812710883137579704664324032251286593868436190102715723289265390311289183941867660860658743489390096387265076247677994887457793763821169211929888904467955128036770224494296567797766833669713638150055304473141741559519457770908362003192580067228994055271798197559327292465323611250555972540502028120063017951168112765759873409880390500703108134545787420784782680340096089330641760764503799328197675376316419040883532803979020575046627349823110113909955390882858119516850875275518128836355736865577368411289503745045035035130978845556691749829490816221177295087412450728486583664428862938295718723501590278010504451863075183361678446246339092492395215352258603823064803080421170772562838080906986818651844465777291417091108034647666988018029061030186232663915622399638745603559491785627826673394939191673901040228603719678534029346981008367973397972657607721156990441577796812019674796753313508092983629816098726534041011030991850073057727023224991023898828506565932431635701456711428756686172083501162264594402705938159350776165435976896131188359212719181874916704796908431574513497233160649133597297357602562916345920081671343609999604478630728939385898968198610858160461008845479526463533666259378801752171608935838931834327132965746341764105992409323949405172039646306041403605762771787821246064352092214931803275304491770393275564724519749333003664153016173031228847536930467124840503850246829123298646860250451914523853719119791488011695705417417785375020647120516574238221780223422625326916736382586313732808513664599133130628262694779107157763586599334924930925807408673710693412378361470146714352073713981522967337448358740011680739262327815381206066786819507220933276597263010615585353927826409833447206232320818099352637497523683435312760744016621054932451602434686172309007740660068137263954252726460931713140083508174638001164105426195808709951176269779426544833793101350439533653467794348248283485603710277799141147748891840835316350131959058789203615072381317111080962817825222411320337518117592171558974217385232041615852336011946385899287959788066635523047174826254831368277943591476920654092869971556145588321942582221769718844945126692464004842901826509703172433070358804478839615377239610754228667100741544490399928506853783307355224154050059532832495898367818043373425918465091752791431244328019144444160198623439209834448492010862392457698722720320828062784731012081014002918269807314755684390178512553618851823777736468849703104655135145923592345261491238352275729603694602192042976880683481912812714003120458494422238362857519988397700342519988618746408404110549769546741563028758439846720331805342588670564678452948639357905099685251858964285870550392209771761831600912906312659268737879860326411820851512214543936414422880732048998667321909044172168154648357962062948424270456562086125765660575740364851051028672766940499162168924728966831163137097880451607447523872458141255153592530061897200221337212959671247426203123017740298132469600855476545358633096597772842506973979444462715871514121675645496351982368179762204767102110962920761300290849989852295754300442547224210781823664286425462761338882879029602364201446568553184147614715481817035612293358803622284657487784432546369202125515988341817179959510635631666825506430052852121044279787906343204486131253741083115107612158965698897947728122360295691738214741666666217879600276970694457686654133287380073829602342416413181412264044599240525553713805470326023694392070907219759474266480888659872422188852847155583378404093251669185745560645437474521827458977033999670582997677297343123680404011378195059612379690263710960037577635716627857071627050585930008034633418943676662933243693902918770244792517520150068696924436661499189290838723341641219776987160715925934415896950312474617801114114853639168125736668114318545701293589959705042846515392476038694100968730884334605973398167946789229825262685714450359976287598887044180477037944712075385045606969761627601421613988092284077657046595450124243481202809840106257785240609681832143851418257805616077779231741388498852938524498602491167100259155282287376715584580758753057851239193874655420521301918867899660362834715280739744743648570488942206942687259707032628680398966493119892583722593451761909523923941537622642733101536450442666216011698228311014525947309989453119659836233674546976343120018945087140226215031785914383004102762083413983396688329147305388353460774084435271157268869164790900697599536627004697144676059724433071154374053592703538077671269420504675837340961574743498982298381405115764147610972575103902818570979453081643925745687405083749034737369804502732697711113095744182649834759763127113091998956793330227026112296311733460046962083974580019409143790252471181086111142122259513119084312631122651802113331047453396939146673748960972816134978232952291694043790423185024155619198968574873432707577562474622637883600281550218308637753557754916389858153055762749181938382881041542553724244960478588211574304638976584651215821148600102871054776155168477501822504177992168385156706722023457431298552012186443078219535692779739721889605828047644521134705207569361698431968971659790234671770652801642802479530547765017723215401362401433687853068543131560666260899757154546075637842450104609930992719136813325564193924763117747998854566205521017019055418988677111059897204790423974025655539180405205022614540603393769687915739983407566691490950295313447287490387184706963371102431373438934021080979784224333113323219302462673067311419195959256310883619041680454919393411194423112567420824869634582363156557947062832666895577510013344166421911224822553578605746826897449977767921190703540200073169700137781441578558285882499972192567059989202591143459533581620085779234174838064991899863580375186167144135032614969766965085002360314172376750137864776257670325772524593423649418846998277607232938858165801157529300499832818057995662907950312621657313465038170678817992437222814577307341198071657843532511636411298520714765622019773412937207454243443724520864544522532944299188004261586347495204605714532149206368793704236158908667186502529753390508209667486087822988366877008393147103962443035505420691152352200835517064703919911794009756314254963019355069245925010685510789272265884287331378988428764552604680469108032529850198346998816038713632882012866639922148338498132878837747307892874712077144338337276099481644144082393212971493337402653000941371127478114233760666287504989230974150562542608254083969305385939052367238739076812646684163261751738740332999531682705490765460344137467746974164856411039217174939540239142742897750410173729669793030301401042062234589984112173905014858220611866801699589142602749555648896939277799982815194526629530562886007588110944297657831364210601079088350354692072907362251259997933398597688203592925625088612622383624519040200786098738080536231106770537693669474794438718487155222503171677618254069737391363677003976691102632438931950018941491120914159475728766866707302738272941610140583192147827108386093598621128952721586057657136278536445611948835187588174713111097669074184020027960516519441932893377110467898129624786783118385261129284078463039327230986645347321218836622027519618390349216220577624039459845542437558602793853304270603397880272641750099023200544062590753508215777742677440190626578182957954521127466004361018077792624160978380840073005298042136815888633035583272581118503772962710531928941898978039535125314339546196118474781428607193708173442622028880392677186133482771077710381710608882706722713898636495303701146203457472293960895998858442164129317005001920700874259043206260995169299589882278931794159809470162424662699292602277580963378349084135595372539587649710702003565589112349236178778891678320913110997963634102436033358347551645191420100410825820819185499494985218073274833829844498198298660728170465080027134437350268080349046921995017750091339754016555626004542686014040956353651642512402900467441876810017742765050747331076310103501265932610799753986711212798223360122646537281405569705496963572509432727476829239659400606960809523024523378301279687729752557213721853183802163043970058531688261171752954481218004745043379165799675533304724273167690055286439011813413440664663112150053989142991743087339600186100764507713571877282097117017229701576467055941519274788857152730418312678907501421735879485854100463667235094368717842684504492795022380776652604570073229497761523515874636609274227465173194805326110438477162107165358665185065324233130769827421857854067982955371961218124635830569535328257278468765241585898519851361624399432295943113624101431556570722996551310614801167283422730813823184646125170564050612623919610729083153562386664888636858797714105087008241947395909891507858178981310491128117354059110554164411968224290633900791413928669559480093028602243237000399366284555474480570055501347823685964512772164292748346206949524942119751298071117992150869212247251283136326332871394578697577238762496936203199987650370449316987912055206959736570888519681604426905043957468710012803111763348874153904070427600297735806416320228312853458229724576887070393827944132137159780840506912837338073376836600780527286825779364561501282763533120947531977846248428908411239369424776683446492377906865835677218136219616620435527783442248761598390957211403951575716018295538500327310720133082800787522217958575800660541939040540079737981536498931064979807320301399464845545204277112853582179568324960751772704192359920704410306570890575364106935551907283007720636089170575491774863673299677239358800123443104956026590135144908355879086906733147323452968318076140753044500285263140416864710100788456240203233575005995156804294641060490195311491569960038895693672201127483382709133490396958366361047565901279661585434603250644244616075463708179358034274547949380373946749623964860492167224684904474251545663670588026843266245610034199459987198351636533972430588573866583313642592245716349142002801345323527589756554502250112127498046918629536046838421108918127364938841565927554076671672091385465634522165982557874663270296003668190591606290095215162955711260869604736015843577283325654408471704818727531100657776286628766301594655871624691264839548229526849699688163883456416746320976031558458730526158561302549422592521945504408676795610420709524595810094541988235954037116817206286945103432855030635781851386000349602410265423586033006872571779248832344433189394222928237153617176191820538601177103034901153584838364488067941215680234589802114323922982088717719012856629761987055467964184615025160742475544835506419671742545779696925432921227649873057116975359285005289794270254499029223521476894867121791867148441458811074350963869098244182973614513240662505685680076806348964336345585963023437213872777971311713877452046780725037123780119344688171525102960196166355923434484503831511262792972937995518505477635472922242590073054274235240846736697611848547680463335174855626395979107090758975709070963303910914062565857827664135790870115919641935224866761409232599638568066855387270544079316419142608249363609342821642558760243514253118447361271344940833557925779261008982777395572282333152802024242433352775124330295447933916088676769989380800028342668203832434975538746636646227629166195220869712474097064768399212714589989245935787040697877645784352849777832269174436516522444548098934810612436475422821839173287053071374741890506213511734728617215218348670153472936218088340835927167300618842718930711049291536052247005963682234356553437228029030515762305898735146109224052939716854148151072676951996603321638734313725990077390305015336851093994860334429609863443269593929041305597013063872800691347470434866798223792705265778018074456726420498921826644243425805742221755152996652869966435160584753695964392171993718638021552030124875572978616517907279426804639655268159970563857471083956576420576809988577623432614289462026835480834735102112216191677915476019613726386124445481762369443540887638813053418196417458207382508066507860753810285369341940729977551702028491107555361623120092905495707667712130193732188830098749118860951110169731317802375202096126288821402748561373729845309313384887282866114154190356396768742033462643846341919455950709818622495126193745826075992887509691597380297288680562188710525974608248899197191605927625693726164670798533463725412644896107665041206881664344685333623751900707091493323768512796963984195482703206198024845099961677632911641549938202291542297182341124248843106916848405568909475736391769362103722065032853675937230984244971627906062941734189924969566018165478788582851607885867490110340807970002818743223926421810176463349035973463760857925220334795825986703153534442489097112489762657209585234889072021336580025634358099279869836613923411763021594486852971448424414255247385128751784132592673411500241370830180559869454371400131736139704178493313883018951615253459544924962953252348687164968119888015171232943201189339155689400466153851409465199724347815526043589349001803401263849801875013753199112221919854458234859243799702535417352029395789301213515147287047768435418047424391230694372148182845570118231120196025330923048994726838523700520644783086634537310038493681582804336749692465748257495583278108874305277633882074040738445266726561631485846070006905907482385478378602354108848991125983835489926620076720556561444561854511887928317812385608616824023607569953904029363798806056704203480609873804443000974904046774186844843380393397110611590127927501440129378024240120831914861506623738672697642851284780666922807447723064877934370827357031157895442570507999301383981434816785973107750884742796676926865104403312818579139538673040064732258474341580713879532919741415888775608135168758831523400733676954068303572901282996965173083309963200007322269443920093290753038428640396728991569054520582396513886466713191484288555644354990923032017369112116261559318976160620795635152776736179009567979793112809384534946513869342204973132705528095439296842745776745386674850323762556855781738845795017720836404351344382312645681936437127979752378709968746978157649311403948541285521166122954956657178370288088020209721013979937640220862714046791669799757772372523700963296701466790462610776491569902493123892892562478824083937996821526312733722570019219007071104104461816437562062805844098063566000700097114039713424868601453732784845677998970871859998452033000254228622771930854038335660068410473481497370054107593275056105464828141839010745371744102889566572805192601490963793654553363054812925433064517005799118780862611204088699260916809316399323971583162163150687834892971220941689432552473421767067123120786747959147835205344128603114144222945414707522719501118277503505409061900212019723790815831523205913596794861592208263838725266825700835503853324850077427372208065174957969432514764513591166623913891667875632953759342499547972713675934504247884743297710992459878827177874410973022281391817222434994038401276039593719691907404330853319234708633365307543414312208015618982139225533751039141391672603841740770869113726135885368678988433692196747510564730440963433195982455239374311233347422201867757122503041397644937416316777112447897144661995577699209184690288680791351538402868118612437832993020456280225270156455684343271690941458197218238647841963156334198618835839608841703459450292390026901710801420549814228986800470430220940757996315038665973184288337411458193509921508481437076410355052970118807955060661374779386331213891326454003470367557650927368674682945590328716424673739581919917036891791557076423971387168770061255721541428041983374203194680628590571231439195215169527182640963468049970162492352150124171332950465179028542103138314933119995694144967689582557173606264656889288650303212175728286671416805046567127871745587202785910484324143434350532033996310316303516057178907828342099883026034590279522146253773747117607501769546778508071759773685690634086163395171091599587344329155208250609099440226442379871116294778185562706594857363909310819611006723837573283117254790608421976158479040765054542048992508482883816034348663171048384470076557688950161959801248797630772713302737018162629697861302472961527837358329138864103075012771714599109996698418564344710823302930724161087521389317211201196505773936054047905164041164754578657248387834325788378469565911275758863258012221526061787313094693879371740022909937682636488385309014363841087929873318092940535065413880244183842427007708208836466093377484192959860613280351448389689732761940716535153211882449464597538010318189366467787735447010462961928856118315878033364421844578620371626891100872401450810679672422667646837437272165086129197350120049765300054685170592863009813218264497578372027061868871913840087978603421075111246314996931011728636883182040959283325064679734458011921095416602138063652883179160199370433401077124185947824033854986873690276607887695857939243293928280126909062595813202273455024009824813478236924081136910303002205246265138285237005163745352464533372388011719743217387271931355900960177631125472324469888781507503905518437074379748597147638337607148571867527813488177621456705975410308166324728251436780412417551858421190181278631147875800677292729639415844965976037016250320630597832661447547363698933452049408214396776107885878067270364839189780911798053958652677973254047221155143227756121445899751160751583006871496286863586129861247643878474039207398373222807393999959141389728172173767943313862095363564292074095560902056253721074446442225360005071784957537539216743208085368232061164767228197850587065814289486218464263886331255699232447724090182159988681371627673779328730728547244393341133618320468810865440161698603557640259360680173494764074399861281434233653384519687749997734393776669275047535841246781783761452550976109764303653251698192864818938499600050315967203575717124553465488886814787833825504135151515730974094427658618610946300385725519709573179540048143706261156525202543277628735897244277235934370255273306566035936179166140105050406880180661147974863135455784692452461103186111981678442914857044600519694742086346880659563877168247869978741827825914816067810550474083928256298800582231599663371846131468025845074269299827035994413423760149792832898008290286245155792669006958179674196368489718984689359114801129106859655216895896353778091031675966074748731722897688259939636030581312642832205353357676393677101829665979837452303808225419861169172218974956228192845829946660496740003610620758193572065425903927772533862277808719514606057481726018190114808658915667353899519281251991448177155238220779820002156334826415521747728162199010235081208519632274546722592498897126942762805411747100749377954496189456064202436641487988786363480480573582702691221603890256803771164443048022439066637592455329001088880628195373439551684152482910110195867607483100796526676690240002081699711199649190252523237704714698810855382127196561045642335529423094095473614634844862124137303975624765643192579860795028655292870001819481078562262635457337602972674637998851826821114663649051491272118983161051121745024601542911701122862828092066595136138882373234986421449378001516082025403412245017275501397881096409171500990286246279107152083776085320745162794927142712524050434249998419264498803961724652011036217200227624135658517357284294546888895796141942073763530712043624641006532789257293097292693361943728814194590777859300662454399295296991191941539130461457768266420984751466198082243605048834220563169337040498419213963378634965530230862170503815889232790685503712732146508502292728381138987340133702288882808901181238348995173117113527685249492021712879472881933753288641615700362371932423856352921247247989328279042687702479960299841002274411272781773781659308156596469595278378518693703802782578391868723006726639218818607746169636904994890300880286329909948171098767628847308847191843993934738245875222840143094278554214336289472776458022752484284958715412888344620543173523940653558341176309696772657415697002165046315491091537820371889201383450389119065211385496754988279671175053930622654241541149419781577483145038397141996787842500328609082435972758397861006304225364353256536870650968934901340827753194251743885860247913323470567033151365681436354579892106947683360621674844775188165648965184248255896477534124326043571801463106395763021833909068437998669522970158248502727470640157978081032052702417687479213533474498449391026095387854188640213806491659104732200367508151767274299732990596755013918729313872394613357153188641129538542108826299817002887050763336685456547014667193860660886604742573707603022248434538404309673487106060394032942610915470553930342273937630830185496956778934261179621581093284240457105587388115912455894183108869552446393154624875885741795653397802120908988523940647702463425387461033156860046148161312819218183507833841970132591816313522420611957219863998998623853578563359140659120125996344000782971651861439899391412418041826494817993953060441400147917424578178484286424244192920900417783425140399341788058058067020485800317687228586743413030551800629305015822871135275807049281759373931580134239023955302989215432831667271342210697024817740756657431254998886386048739908140824994221647314689975324674108469402680434836900826135802600026158722157351435187128257917713957493531328461610832140477485147930695551297928067167018947799742869141731410235386414505018684138453717035125114266215467693471204988623949918005307656583690044072802365405965339700326991560823136675213951937549327738715338604590028066859668038073731427028665982799622903400288123918958713872975194866653978298907324906146528255348050424835086132605350108723603671119652737669328317380897421472900182474563237214351076768528212089610076765525695771436326179917835486993712461462886808970465341290478693254765940857168300946765794910773398834687969317779092209842469900485626776549440202078161951927853284947118114994647375872894538325399808043440703404995777782022206756832768899992038073369985486905522968978318718942056611882521039415119302637643705959225664272914504428043763928323487629041632348919567496833575977833954437899998020868078294488678501201431762910360960088576098155416311936093217686948542206235295840740254691740701133650124251132499899669160976930033911168733499338408797793814319545538932079128603610424135897914199873069876871041363008022586019394707866096166257528152450351218448130924337381455220734236990749984078432184559532295438039973482461489616642682341278739953408208456375793730199347704545114496811628903886560257811270550431684627717220268031294200487822449713084846080989908863275570775102383450629280643556244031630568513607167750317009567921217177211297965621395166421287119360198731979374693759670367473770077701566724680446446556557907638233973450414566902014308986445296814275036013256113194588572467328394515899104375319955190753079092276193734459105943614517315351964845849137426804355220300513276573731551027445884512391927633982649334682722949799564761223620014462889074014431244653372204273648497386979231235456279158474061374468374403717263663935630349717089104860176368834725408319879855601649020308727256638050303633827698309749195391305539953541101595965945807196633853602839162634870111678037408750734491829715158975218681910902996885318467911007824977869392535618885329374540918375272765790423243884040777934953753691162243391268955872563929004736947086184291134340097308883743391955979935919261107166262630940375382988268543929000385075087656241332797268051344992429123559371142471803397672257181953887769288009078930948852744714054752494963277656729590585647600788121170737416191348243338160006586563537236159402674024701668853211391599256138253642834532340323124314172471237876854948669242690710554864228283814702662281778597934811271827405848994628385424610874061447165049996202269059397569340337890707809608561601688881638167218290146382508210187406456875894579686469838919325684519043366082383850741533251077241459848518046596038127898256009105053240334577740146139449421764518155667268864484552094473856161357779153023212756644349584902675207680992263318062204404240260945399075572390362917899720443211977587511980232493379593925442445442724609729265787973275200576626676308082965270788240606196011317120190954747777064026326210576922106114211775508420620754173045049120916179762028713528252644876183477542470304687096365906737869854832123434327593913918626979567166978400905561208441038839052879308429448328579496066166370550701953064009652269632922761947777030371024794284375731476707827090951171128971597356364560351608716401880820581849704304560451517574500495565280166275194915323081207311695081156953993555547121724379509691032452640616967461199918667278584324912600686802043655011750018428938254665421751451850586137699703083992693835856472525701470907015563197306036244317967752431349346054074443217157679284451813456221303713794899588923020075661589035156960818209638561203247764948230417026644369769029321408344375562982402611877768882749617591607771189218737040680073178190652353351739087000542755826951692837463814161628401200938909026642125405871430484812229042990410662700823444983646051014759713129539030558699618448267309049773200259197923522766221076310241492917793515767710732087954896273127734416765444765954219337843045961365851437533938819636068284917312790577787700560691352063509902298863893994367321679412522204194109661319703318978846685350384387632256716548342252715343116813688695224208413439661421983454870549182662137830508692345708676226653332737316670987217553243445222609882523190127696512633149638537435469453973198276576454988286658380044652662936729782302018066549502343409115760273021646989133452368845271532067660159947353761801955085303041371235286779701756505595373332581724392681157841092704717367871074169271895248978403018855644548152798343260740503346936161619080124511262435500200809136951349514793556496181748514646133494155366912469142114390771407779483368869183635852924689480354769657105930951960257318862780000942098312745163696824383277465557388496940671433353942647507206270396139851171828984006364188577433099876549076177012442020206489637768075792481521526585293895449241374912497775528768677992358402310752514268516841028593201039952342154038671753614302193446390753892524855929779158513866231861069765369084267278134117952125972122484419592855462492626926505780034407394776826982592382755372749326005050911491032896266238328619828106936004678969924164986759481670193348883920479971984821223498494757203996822340019609323093226274020236539125993438050298346007557846864203275956292361987307885955518198875023393039808064928162363934314802031410928648723989577677251955863416356573757913662119790367901735731336449010281222910713744175973418261229730883991585413165195189373761509462560909272500867016908463088086108614298082132185086095122743350618366309771169990573245300125832511651490957283164753537811050567356039499788406371794443461838811582092131066270010272078922835058061555528560928063494776139556911750651969126521388130064617055920567343968581460791444039568273849386835397627750055286591750204545792822323532071426890645031970767815553319292773686543629837112030519451944840159477863321976988352595444851332351055294960193689121528112285263624618141871564702961773175313103461570510973653796234227679786031119235197784784013519594711245824878971265450750854127969307782490612568018268459483597208549686682360566192546366995359605380965860009850200346104572131624558904649624543701206442100266605128559091491994063201017288056925242967840594103517690175839639201289724378703621832638239260484059946441761846268559935907174890222138039286995684777523334279716090039739735059126071620131465063675160552155140338060229369867232212245696052068994920879685448289805796294569578640559364898970405890553266699519357879684050131146636433488722860570245759724442711343890357191972186069713660884531149254124541102127973462619114280652102275889236747433241540538755763674660327924726262076514274127891885370346703909903566776148982760021817960967213660369980895140369907267852248868688499999024960775875857842392963080595766988806087433598948952271878784317233462696551790568806148845309243053619150092576957214061182893871611501063006260030416795852275477171570413059819513005332759283852974818739699754532251322319383778912386942549391611749873652138438998539634217480415995645832316305266354239585156966676152943929672132393061654022524343426220088343773280446568836195019350114555766390702237242713870881317126102298334601795695338309096363105885965486841731431004484610318801369663972730380426505455801011659863612903281969667343837137737105197195801711849514062397084172992046286023586958332087822749318957154329702977390931616007209301913777268582662940391321826776141815148053532326245825367081540131341627470884290536016205335769661432552090825721575202009661431784391266899765782942361646470887915533791678257164015926444242745574633676377917415309892710790055904182123939535738519904360146873785170904256510459926807967747231848236273831478154911510269094146403806146357431246762466035009204166745346393310076791333622951066505181764652582664993477022081168750884825843211212692352064556620044073598599027294526757175690787621480547288476191269806887150699493830751328565129706983038273301875608697098341789256383010158286152864644609801095436397479416428787206466360902795704208228951798638986040444774112163585266396620522669538762998701754957239706216058536088849152505253273799581810027195163265998584666013522927246408610931649787831836001471476244861220316844048096677565322473767775452682211029087805724542818927914903787009510607738483663602948003544510760340316751202707423779709801958176087271809177371573054548880755370728536785917085136676734278661657676255002082175515980711162515523203202945203059502983802718918596278593589846033360974452286725679185722121901041447254372012814021066483832914842863671503613857075276077984140276970436998115872707480278193633284271687377508164179537645614868814831290550296205813262805140102479939311649180441929088412549212694697577907889053837328990893389025330219873823998288387239579692719523571825307633931777653761017378144595297870455081720744501680680307579172030919637470477028582099434567408042642874402641078030897622144512073947274012760198301547694317769957102448799873675624504121619787383598470481943454062029553290396993372242275553043979396967286842151534349412845806274803923650749717712552146027256324443238379345456134493181084986111426679855597517433862235679389074140263827644567189218811188231381454491277927768261237154993832417390390177775716129764345603523654637699932143783129571067586896507079276875517341658423531630686709872311288407842844820551741809910338204047827362906454892528291201049724144134623333774783966124991817515981815687955115772951445556664801319657063632227831907406362350686377545602696925609303489215720484559144564030149923938596330612548304579733162021061707254073240727657319406448016620509024138948696705676787212371817522088470658004547434435438769749269931850683949596698630235375964146246211274513215346321827413189516430537482812701912693428073276509638175623657195385164152224790142331584723020094486383848244215401422463662094914080431851789784564732016862993571393744052315391546881989366674662311121993366098599086538885065555362534210737529694529109733790923876811330540303634984226554677354414020377229833014171908836673540743787611255194101130109235258451278680001622458772364078484981058599192636745489273698722833884961855947774476852256677837762101617444137568344165822531542854094846200647750708942998394713027063929840483665080355408966992120995697887585542607066581482088026207823960229052112736834563061455360111608166632254348462523337245386428647971727287024467974866777011514272140223528815300611604811709388240041219978751071174621568255138390348624130692298360828463463165287663438038945907447906552513068082972246141537154578490236318429962542493961027322684061925444962453010013698185129279668175445842001194715661992145798372298371769352029897025235564457264386792599475709180289623200031151925057382989491810945382352882374646647057319107857543367492120314672520204161428842053760424610160074925344851303249598760150436449870619396239950021596076172716344314565071318436453354345055806300644956612916668658648570096022399602017001471938551024256492492427340224339459555635600105598418892630517708312312555976936600768132959999959471339725657392218057861885282460083849353811238871626077309731372355528758638329169679440530180731625674575920537201489919400513067870995620898794523443857430921982424197415041719495854450188120491319573746020983495503275204082402274540187215601730962914937049292512474701874107781054750558611532833134404395600895708256371194172907186374791807773224916665407810794861300165840416420173214502894273321123246244081553749068957615726045610414532285280680828642867930537634613584417036885093201990122157050257717786825439023154143045806811471884505304023731096966178784965901353560115900530166574373658043470296149882533436648671204859738953445305332931113804829184256103881820572245675621204450851762931211853154984361360264148655236573133502779956000049322055345361338152783096604108349780614255498987387831413277166495205205543001498748841807893876731184307580742817912726122629512187213903722838362020459551876785306364506360725216978461052631004576104314339666123618595616479089855813234939258330964700600194955069445579912503636881161862477220282864168370368973905085785969682759653932937333901410900581495952858332613988467555734911145008350497801378262907141876001840653566924526271115673966989994658350984338954112654502609596991139263139481521002860845637349914743832354477797899617797213272340387435872430621965571111504582016059214563027537462940613507863059442630410444787243603270330294812757535859109461504172251092854926854793571842039787650520991862221060972914326002052843970308818369422085015572662894881508768192354004302179095730122333611943590884030971173363374202193262095034252199689645536266807699876750943575974052473139382961964220920549992356216877105983122167633458912357263765967680423093569078171152554080697458712108046118733007179318002743091348643067819679149842137180672646075080559898597221478212460033113261320627560136426456715250683323663871858651340348188144334298541047062747769934523075449445547646724519930990257826338239331205051208184992819964822369670605940048658940565244400438452750924440905265746402656368890432928125500368100094341254969674529777744023097019936383692274113777517665904724125147909351164599342059804226940351340172645811390648227549340660750025994958461428754113541996982814262755172089698469812080572178609108463853256789796690157030080217454759813566786391576666417668450223303655626990591781243686585794976526593633499595041368186020864761890716793901923875179740697809843836047827167634993909487806509079377665489213173407506282752943915046679297527476877943241573764512831561238095274127189962613791849327985314728358264120851974145034354797747519749619725044375588016182962477644694562471300230674813665310155002347964857527414182251659656650030139956322380285121710806234873313407034907209270550268798233416400838891462795808673734222093284865389190878906629309445019115014539473418669193481981615093683009313842245935089873656737202381732979758474535591433971918850454920564642990856119307016566496274512641881478985420051694003902641328548604402838720658282638881213811217704403107158794364896322680436917386867812316565433209349779408895714851107395260404427421498356317928187459975819270277133567207151515520688400644680533232411523361554925518533103895960497962776483575851707442793744756166431339651467777897990254274073698085062598078073409031048592903119545618168877819595600305669176270937019076505183382179718779260599989894528471012576243588692704734946179006022166001535713231633105084822812418710105803672193618337117888666874697507543679563211306659233717234666752042852555355056022791746001229437547494387089515020106404693817533403987425476909539543077295448085466607899342657540979061102223289172990910140209614856906769549306403069408750744001207076166075073102510750909266660190329373165246909245189630868635047188970883243710282805396054070412796738943030771211892846298024273068247047651037841461974977323836048574459947157234681141820758229103760652425300198465106878040463765406558450241449607627565615305284072043286872975629712897088257004280978164400501581811721800351214214681045005605364365909021664845051204257460044775571152621383152819366781311403655933893320439187138666047551551382553219057025983463109850640987263985862668578269741252452404648850603876404912226848555560087881346252237540393917333528116866976231600600430067933659683272606647892507008872765694259733415917001772181963700936072329868470115182086685385457864772730661553928254924507241352505267129363532628361629560592797156405371971462268289634952345289683736602622163738283719453787702448869853619149542848908094329882251355655081547636894037374701221639402239935291894171275933101696273429710302858690292700624687501853157999476656957348659245159198517449290398953683769408407006816450224723052162818726100213575289506095542328275626962189929376139363664177039327189523787049108676143505015467385879945057143308748873141688700421879993861486012965970389632915231301294713434731431010482918626413549473860377030110590392624857315330803445242978698416465352810847336828973091619322544057159710514649456547788713045187374182723852819816172613618745593957220103662457607784380985002998601441379355371939707844656955999389913978280334124439907586994961366162237426709565851648077069518617557616579920266780870589586346427034376728359633570672490766124301987591442213547645921480042864396112501679202410338391080573281731366438070593226778927917446226561191978696397907696762699185421743038435502601093088537492405073936542215870669009276643435681721973473667843037719486716631802899968195127376306772354122414740228806735561259509534636628445926224556907923481197942990273104284872674385530088072541903541000638954478973215799460904084944329921087283166361454539309087123217068692391607128134466261223310240338067192333038517214046013596077364276887557411822651369477807747371737347279325441566443661140867657335295257615201515453227246977367392349118509373141803731767719281813424086957199667997914066760684938378206509510677180550339017900670632985292373654086330752285540582869673712752477170019178517993413866735486868308854687857479897117142008776704556991697465537312380201587973472149237583766761269602395848651399742202367193473139310616389686918250475616101232818884283082009651614295087284188319380482377116643078635463355425887187733515303215901096059828995539811834402351952598646668904945740895198934733712247702192747383341103857251792995734121601021276230907320763913016975008808698478706230489580494500071969728203318254662558593452395650902853022410312429964151575602659432381074026490740608612078026254618514881290673921696526393353027883543734186460847923042562742022726430961885523569028948708778056669045684184069250058946019751780140188661870348737880475713881323347088747285839587410883878801129521642211717113906755486929960116064659803185586303484788419812747080125754797014786615533983596980864650801751654918757755291666148096715186142046389172553284800907808630896332778596902200813917632357617668555188961236805639502893101857700426048016618467058692654710113627883845210318339361653012796453772535484613448719990549238979012078818309115201328964378585260260052895586855223524996144193652848616473738323170646211328910196321869131462977638468532677922512667399091209006982607360773953386860713083010605237632114712551543187986210576703341119984265813000967189360269064995099158407181011426933819207164524640593636044935298303082859442332149944824886405679535354978643041444105138818764221442867260167852312590048601360813882230888617240038266283388177291752692290475719256891036761584486636542011939191117093679526246352915111527081975708384389950369169128084364150394923097509926465581156509827571112681625291111979103152861812866609406888243038471780530207430398215502158729962280444957598137022069908950185821296377256363617284699822204851677221560320731222323291819250418382818009027980003413309989518471323769585286002156581562710590776109069941679502795765831993349669307578739033084821740606285742650938227552862563870238812514957000137575855415882092945347509121181405051818936135267270391041254170341524332846751920319352512383227259642417994339631635228953192520358461607184614943525855550971063182181168903643852938887855806620985436038475971022066240264134207106856982653697192606540304064594090996405282953476452447230888597030782553625288531721575670877905783681008948556721443340029149385309872945858681858461145458173270961069971953205706792888927586499896377466185098246663067013034413489814138169071481167294272377505600232243167670351979127386963393810819790559815961833607261398893068983818870603431058560734432342801247951374421198603738164708970975542685343009006401324187832091116071637006167374619465857118794937061838739447508657605186601120239906017401606894398568436913003180534702035860798207896853960912942236481059926724076907659033819969257598803676399919901104903335854100009394820745532464964386274358208385707982815440087390793483702907660720787164603662199587977004066098273851537415682013400620993806854647855109842168226055313312835856572805188311970258499073906411710400863682682909371507597816422114946651971359894593492315814922100646627792978985376756996859201595633745780425533917627604488439195697693947811691959327573763672562998894993325795886273404123558865149268190555341479660164208774551255374598049237571434755086712420576519654684878692503163302307675856619720638819537291635823085391298685780658868651256220117238571167389788055262707241134765408817965178335254736570879892818957243606596379991980577454799099141297189293365270992519291531927165014231907277299083931726721755725098972493567153704325802905638417715609335448802248863477313939141533109534351203388127229205819849685796526469648456689076665521628089828200541683073524029670158328800161036234135730226183955333289854339521762295193144355115735744913027467666062157482880143831075489378343255008476594737889305177292468216674698215896154503392641548540214278093796117918162807297872274135532434461100248509389085609892584925598645032762433506937513738489814839696935126919717864964913054204256298962567791692106944588566498241621799387988964449561838559901188580517731898407203593130021633037721668811514709027462898469523635362162657167476181147870861041681720634430251993967199318479142003347702463936161347061433734135192957785414569300528869285049453384585800331635117894943814200682708929171644436359454923454980893280963352288315589746213329593199455531090032821454808620336008678382934188653083315268497658126599888830098053686544470406555603274458560709894326416576409793496748186658345876649609238961909735096334770231804326741735638486024975358146415766530242522703138859518868192034877362238350164255938915833160635754006414459230614008255045604896900928358876973307869200456933326052414995667770234904192865902974835669125510143830364009478391454637012169566295339267236390334520204070954597777542088210871086777148603519007945765797086999914333372212749146596782735227553838809482372566237913072014672775130320821221684281967995417778757306708065860044792003994764629656297970812836854720758132127136777092685129546625825405215320579833889725432614061027809120971538283696054584046767251715847886411735756261369548879480094200005460404727714327463986403147599608886168500968457583015609886609169674409970752436194533710858584804964031817092132798178490686709575043280369376248253277809607075846871918235130180665660328733211751565338090902892827331053565142219155964936963646797749910095372078020270204162271171874414531671472928031581860905545403475838753461842188559812788827968308016526068374999281884744839428154007498689293688865398595030147747348435487631205352299269891475281782245093725552837440423975218747711346903495442792590188451603588429932858266345943131478267732612809294105399033474381335547066260922084037902107852367259247198790826672594982433769628201562555367056095481297298519686139590306329114194168794898962388786807748402257637966876865002902394381675720620740112697991149836294219338584988427563094002978393845873012760869291527955775933272750475964312467333505266931801420121292282099079617809954855468925841858459999739059680447051898176986214398775307578479665540641271618801803525069588418228484438239470760251041901967540770703162317926505224472864502500584298244448068968479456313260580548097017061763175502308732669663357218565453379290463116440268101449711444635921824539887632210933338214477493558804940321217495399926099726247813933412223602202095658014037986058666467623871909137556569380798527385604103899012656528845786166863412851304739030406910862049247335377932055258104166579491296426832735924662931399115537226840801188585811574394342583040988280687071482847992560718258202285481978596543231551106120887639167965006836083150341847351862668855861989881584260984906199906613396184703853951201275357940794589107629668028927665869526136095657920403621804005559279779284553472147619762337499140749038581691140327474793214302800954016386563714789602417722577875122151532684000371421790950333409146600061946554948993647629280201096152083165470969544567176049395218898049578721610375749487095680219549191386061413047125889901696746263281855623710090267896854719024137029896064089197140586489639261867669108282278210193033096612169706037991773638390024789781577735323999799868902250248780793291513606100284386504680226923131925026096310569367446842255029570388381086674618039663408129525829538995151274808579041587592759373268325600512121265689911651574425893793435139098786911562881467214071358252853683490461817025348680062546521330277736256868851133164530385554214802410802304150508304176835732636089888307632647867891078441947873998296290442133976311191804612916890087373735398883764635209527969247697488275046130360038447845691545060800792246227334240049953651248124558219893850716126074132634923494625364858039575897902033694045993698974223111922701057833894179134814244640729007134708391142865437994773742878995826560895837852782499399793826589693921884303495881384860398506831744800591136551120150254109403247061318622431964808174819348194137971711090656566893916633223536084992428229888499689978935495643489077250774000134706670267252449766074076938363929015560282883496082532749949668942960166209883912907228098838224868003936665180917649045993094699004451630626507871164070490307975378490091951377651672190421556670770435258988252712503931477150576919165966558338713546192480846662540702922744239280828181484877587043164020354969533282450806929053056344324554825059909473019453118786749686569579064551006963858182114698716362325158477318016027035349228825949758155325600948012530410195125748308874647566706918155811567092784204379275997827651378556276760181573266145364008686684425364230324615271950470820775054457164884547678206105817088281153615140814524144848506347833574078693278804392548694010225397242886825372010716267452376160190609754186815419555536480161079140959692756824867438218059540517868338900741552661711053932565465920525923979968252849903485196587734177346585332230045301745179975823586744360628052838570690195186446467392558025760467761388729632140902337796540060735489042010337776627611648413044048107211580653060595110644743915264333219610604184798755158695960339222851784131137842434224043345909572721832673324963259073200978105749901939988766629044464905705015989879121458368883427204788611971546898360360663337558280719309968999199446347644373729843609355919709476783503753088828154697210551421705779506729724954055819397155622599832144193726991032520162665052646197338867238255816609771568444768474373321106350796764852104593780147292604156960628286341822506529152496531990399306254144770232774629275410474364313551366310525178833529189045166147682333401491748555770656499109889405740513782953135670382983375588166595168658195538896130323095978459647324521070272080640625775020055110866578409132014299709961994528294516098060039740057705808671803366323507248987410582629770058396969061191665589448242394061795124466222297989089402534669575372330106772454083106670351289643953314200086272933307104345940564132945338102162115082740516695737172103582933288745711994707645198079603937007107710588370375761730119568978426272150454406901079886941980186520863076331607747532140018689705189518433705685903939910201140432174932971483943843147368292656121124539850288953983169574861972068565717418117146320747656781294571192682080718887532802612257244434948047642452717275234663033520610508014567479285866973446508967521345803392480516160131021734262327965021666526706793291891150612737723208333180647948205043610128937618779270925669198688222755271076060089108747402689243748605463076083703271415412115259576038034185722439111615831992100915220021722272086502147817256018691167361974739920667460325970519642766142762608394526137802262968255133515957496938525385903633874106383661604405865982522272560555859739810176634266192289653129660182930870029621519937408793475929051534478378738232397922734300082260062640161278422381910525011143664056889062375285682205522168124866000089980856639669982253975891091929986406192259470171009062759071830646187635629532900837818302807373875381092082936104073081222428642404295831184042906399079392682059272658867092027493488336388698081438999606360889016397799539519207347872374093736269007833236069907462361331836355304835272971188532851664874434681384582277184655115097150261262879441429313232630112765214624157656846937143532892391796456752486233301887482970336858462328109622285224958764491922530642005268294862621411459585651597195957632335792372523906420896768458309807840638563864115073594212651281422726172207198164944019080937181295067091749562811536603148774222998207505145287259944879885711670919478373254501444298377112482936456695290156066983173151077280952715689829742409821285570311131938296013404172863260060751868983258290358627170105230963086659153479739896880344667171519456713122904844252446278716564845910118264371310074445764576920070869457293936412833728689517848550650307866091562716124427765070529946019133409841931972102045351298546545684546233370822481793703513412599163084224939937124005000924974361661152729037621960413403364818867265252955062933056983081931522905497207478719397155734848783076559182707219814854904920136637064100034458891854771942360893967400770255211112763681443357954650285112150360846621881656878619178813576629747571304251453770025442453556136292495647591946021475518710683377248874302640507049470524715135189885885145884975853981514981038724478681256245283382392464334829668549807777755977141592366198709287655928782833093101991376831328967229628751916543305552997085951493571347737419507385743368366397948098390067050384880555096613731578169478660891619028968798629644405668321813827035142598795327599204342016242058779033841539646777042208181124423444281106135569781020352913904627989479015292857134579661450409586059833977764351085405767029176962269037007763101015627990014028614891621578485635467993185163638492453773048627896754140202611483355154125098532304401019670788514326760482203110349566689350596882809176233857649689334395069813817118283872273975050508501984385047307394028512218228362369060468452648757403123504224741524347604349326956712398336711099059494939760906595997384860327022514064789626439922630739854064269036466307634517163790595756052977136945383099462493539589904288284822527050851558682291097814382480370281095606578502866960992192908127265623834484204450358810239100288493744044465911403661936925113038178029404011260525525143122297181429113828340388033975207401989924739614294227767973731195460297931043062386699729205885648126166366827424069188480028626970371029487330622961831671693764529206612170407174541276907468121684657935400069633595646180721483747782928427515184648654111328819253581938478551582969101257055311964886044835180534469634585148644444188768117727969999402888393358952603333028079926735749407026974375940654587282306450666887835440006153386898910278406667516618312547715364531118579999881463162685409710186636960447254436718846830724218088906438945490908882104878075941982590080070440732494023986266493186720924292242205268009180514275925362487245163865519374048583788659621435044571603375080964200871415263220584094108754983383571156125964018112763157693763231346643561419185122003375028407488952725185639140049329625604133480861620276679608908814325998023133577981873836212901541920620552762546235331512691823071380386761730903336856482877147844958196989976345298040648337143974566927789424175351011526322336493458457008620379781130839354512133562103742807401304460962274081706875011183234123445863174338507901176268498590774863480944222274545177818430628916900556251997270583798130655436499178867573824701919517768331796483372988186649675556287835383795962053581629329593401311779655529064515004233632439456295245733495359077837291098836331456114067452764478221954404878856344482751330594433900603537005159154608618930057813212377365360431222260167742467085957404346053119480627672992047006621649116227989436914971077347112885934538814110433762674873268093225441647945872882312651244193066331501587682710258949319713175803142406283801269781864336904117932028283911620898295454607256161613660723858506067577597709382733273947659218766417072857811512998430738943180570444237926421745294306308814302235880088281376336658888797732247564687579242278649879856835003120279443089366946193217489717271714533963195379880101775341624754733524335651411407007206533182316947440689408767628832865618542710964601578469578215595964750866657956684256115329884689563815151686912344996449521852719159433240366822836426275566907787565006895833188250369164123836805445123609663486220167620699729077228140338823601407034243081230116871712879670742707724029508319858488316382625818211117732375529093567210491637508361279383804005704848857249247100005084721497920981147658496625591921246552890697906907766709683396322119135213113082366208105660887742075472881217644406441520774897639403648474863686031447224833172985355530455211577467340238743303030499175922476370936143443935863117155683160748180053913037837092578840789298036314022977754422080290507072125452617038408033885832039608644369493014997511059403527951748084633965950887949446417908200467692878633645841093566680297927045161193212177270714960189780380455268743961708333174949080587077217399874881444787462917969688411835915470281205274458694564510688861897584199677961369069339525718233778462213591880253369272086662105406730594199374778919374729457404440000874987352254141841264909101167494776307461530450804075367686377159467030087844471642443407395402509656028419819950163237745174312720596495029510409218044845185671617710544976701570775665121857668303993942422163045394000945138316586030224857629375728307476892970740454132029985843817899960880212217628129685294220431033961304288133596184336647789462550982553770292827434361128591527732607803658783857958612188701633427361697063386255343582903514462022505156849500133553681823787517084707501550786994324825803948708719770511474598788675323148580161801861164904521082472378249699496230071715571739438604670423865149769421976177115242175287644008729454559425505767123357516900968591650271239974436392667508232229990166856475037535255563003690612596207001085188443262780795224815874080284031862970833505576389610599730703423985046768858296917949313602245663951389817070428564121445812820894839011644573645774716413694366240386090191665463611101376416771102145325575178391249059963819875494808874154378104407920129025656815365116746202395216873373317180890916404308143747312024634019422924961950088129099063641040143861460591182500457144148132127811624900854720781159836676253641778568409499193742479128811172719509144395521366664781388864249501028009676586601967284211287920984835802317408424485045696862292399737920040904547839032856701971168103639006979477178649494350935080897833403116444416609661052271054685708023335600965249266602210051775500286420835738155609631836967470948487197887308763436009393182814814716404460877575648321741408764663464699665524159893587867966837090630843587904109483041943796105795234426860946047243550981491946132012608156153796191881026336112661926396565326549542620455804218159075573109669575202723866870391413608446013026412518213223646364941518192176621291942974304127194155238220495318222388858380254524488770631904425116600401675556267925054753851335115328125446530462049917797092186790554514725649823841197030869231742900601279257658802519572153387150884382943191181378635095132406274591825683188876704637508692352344642207647741874161749384210963038156192638939283529101742434958252471523018927556607033006783731822862834857685245390014120612525529038306584061746662958647133301180671224516761428002506939293330639963230629478762019187616473405179570223778952254651278706545064597492240862907525292769673331108391838185730309261658071483469632094196862131564816873944301962999029010575588414151222298344452083235112042945119184329615898134330859969392171706563251358739216395416793228179095498998667813081047209025006006322137906211861273023675256459594172643329705753437760399555847877897689906000192449226772378283761037885610993312851153250121903052174964798015001825049970332969025189238576575823613393224574852471319609447103754130308928833550050481366120925423193206808346048340710293188244158224356497003292614924652259151401787103947750808390701594193734261859549157840990608903725422153613236065910673262134549478711827807734653042406937305446750546533120558498572339747002463744289782875092155468008535779420230371235959769508548117544139502422424703002014870409036423322746783388665932665703915309056284154481131952135308821604043897641087479346952414988094564499300430173333944491498768368670099497181868409345085702000125620080278175526669652144487548161201663718486599151639342255115178652541113686584065134056930566662637909656736453269393621099929159918186582973483723921970442252758216648378628110009354919750063859341170179631843376116360187070225148895076714617286219056608916826171252049278605304887654480759840987726713822587131656294745709583881065653042574046913424977911199253727243322462536271959507163524510052593235180206683823943795750427208154581192792444284210778938019113654691495862808963375420784571654571602174705972874549262114246781724954154619820150222584086593623721128817657927279202177150405841978631527701002518890617380595308058324133220548886122082880197024029703863082032260756360643519342864640176510364813337735564446098958779357303126236061862213814239892263099574951203234391134960721663075278314846134116795063100066662130022240743134839212951031545490241926465572555598345661604624609542686885685656599989703332907254911942212659037868009385502981324161831830871442684926198390715651149810520430552904479530189904828483219414087036708985936167011998186798046480859533886113561328165773020043096000054904800156953624757859504817461274051767167150923247236877023324417574061891010957545233844258369994355389526356993230017960429015856005361533339408844002255266418389240285996559796263834976835530445884366786382878466637158039415769937223483720161035844618388692036631452034826826598646108153374881073648371689661521472574633670305580541177442535088054612473568841199338545230872168183514645316545347970277884491021659266418988965707202110425068193005559783273311762800354989567025557563545862687153680611808053650427489603815321887035335669818518428587755619553751504412432626339364725261177427045541532308101379060175756405272638862207314516298586124875210705017011041183915906135399387362264326153794271739552332283178136074806596929658565483452976688837743145393133607826931323316240613919374901719584456339518517373636084282540470939088934582163197124947748833956908765001647746917447339900219476706904376035997303679049596881113935372676019160254219836878353082874099813879456144784038343957272692256874156243685151059942778911468532765939886013046742223579792387547051725964876437193307798469828361095091049096116969677337600316784288426618754330970400837130241058802020756652010077718530519507392394242617198602301332625272747883993300910694177289289862985385080996229816826725904784355304660111859980118269193999343178781370150867337193518765318400299561885090495829960802871073681521849884233204054341148062020852485909217020791862365596647420949290529893852821574496117589175660165465407210864024185247985536429494406953386302801119745328042370593776783487668144064314899855458103874422939032774021413209145561168557981841797296675354620003766937593568745891713844518735487770933191051849848453004128877423857882809248687081213743882174654446917805689040035255985218357279147334559022392883264621738673804668461398401331895327371714820240753053121539527062511242923661007825094152865886793640974246442418501311662475608684984632395140952848530755354350696277281459484036222374269295748898247345395304688282934548964789391288962245609532216831082322777812654897287986105471962388438473843507456030309040190398708227531064303898542236709679349214573708824988323350965282854263862061525024082123559566256526530147201993165811979877080097771747521498531461059136721505416873737499781087606082706462168760096934411718172976133494859605920324249732820020696085909403411398713501413230233202769012704472328655176065354551452024451789581193364416566946600374332174949265354206878421213972381066817416715588300909488024585749872367024938393808721565170339471155536366970702795042895648137645553766411515671195212515335502237267362477020128572599734378811669468450582172029417970320440576960473998484414062785185984459397631993773748649306245252832607258906666404684916920798146378417467330808554631071293244567031807652988628392343570597918154167348654006283110555756612893471133130350159607072653660404554839983174732344862806308528244326479460314102148808327530780452610935759787260329439306994250612687614640539148508594700232366122838034651797738800979860818544518412908887228020575504018797881927160920463391723032304440897330886764718822111729022303793309589780360874946811115339444854643225907945781142104710575370845055016502524674119379912478161572609287872715767898574236385042468676701108400746769644090690043340892291260781525381636637380148759136991792622485121342083413574409353112853764920610351068799151702430947605594185654116228500370569283805430025034912890682555374250908511421640903884485823653858830118036667890478621632917578353758602550955755691007724634085187828377047714947296163585108248975680323569581567414079962235616635004586867625618478547223731768844025151718034485600878986548483188665712550453428607359408195689393041303820141769557496147926037106367214232746432003448284353612304524232652696269549624147498898840143052532232803390103611353594234037784311736322300283368424899194275898932941777756292884102624123027044051483181000897636745932387970761091019697048669572296518147285165600947252825646179823917595259662963349084848761154132392582069664673596285072027209010042373278872700099653916393570358314245288547346252684004662772606751363541412424637710284950967802597489754566723296900699397196531760553241536414036094814273792057349186659660086111979989639970192996663911777586692569389501857213173045437976882019561041935599024453490950746946751718980254666891835631603053853185323011022938342844515969983002653881651173649958246945220872772746793314087418761459429597838643957159620760321560986516819776298242685581371426900551478129289360587608477249422128251244288125286981193940030054128267777841662029951716993554347243361785484828654764076116355689818137441256409371238037385036334514203874603813303469482830213080070920052755800432874740744402882374958768787397785810840805022554355463747831293096231763386873115873584163325991904115949988156627263453759838628451629140250052624846197378987973132295111372303109296955189539370631960717228348770650646363286104348583340210551306514733200166832311803496528334260554754434893324989610316777811382792813635672123873345783313776321115624280352498041018891874065435558766857192918315812374680257756354574531874663668944486175398647195239948974948325374278262552090091096964726915272894697575255192243042002717816695671588715377883855943680043670114860362444000642928092336238096603373698248058856890996058834716955895570151693627121293361366565837091149252725519720306398845594310595388537475666816701016892849700493952304060547736970169986956161590026459140981438780163188259484304244098404853552987373059978208074158013222063314880247687999209599172155471832097056182516622071306269777158836541283461697167935006790133358925292306503315753206791735108821619844618072832363617690781356112319846155367411572088981996251677956602825530680832326093847470421162898062551474572189191067414073725766677303011438978585526816803905325195747575554151623033133766726698914181667733113966883775315469915148176230941148771473274679338805112838205840195000513559457859983903040278073763278166620728922379331500832874897834088468424266398613320089350416983110647934547478575184046710753396169802170241800104778167755327942670046718635641142601750536064136997711410632128458699327791640311169425930115698846465375649058849185184722201838202063578154150463607379738634150979963262675658507866005166864258644868145062440883784036865127134823221854965150126889548166062630345098841818632708082140105625339577982642648144650192076697759411107862859485479074062389335951725612855186728017822561190849498359845259087404355861418533638169573573338291227389760778094966136463675656698793036048244205185719662560006234617212676189665349540300462155128569231505550890956355389012401694973054312268481318207167357443085462454340391683244052716546520609829090919744974469953941228561109810108960146870500752656242662198305548649107193970946006834776317003656983525443416566161579160532708727044753713889969603008707967013377815546929961649576680890329875615933148689873534012851365849128625992008806050330839611988483418438073483064982905361113334747843929281931758117515416721093098209899572209649905597796697254797630017118936893963117034267161057597405626920685418615437635239384832963734396215303366695617920510484360653326621173421913762050216473753100962322437393141255484422595446563832064323229439774629311049150993431556209790401293883168852962461896585295461507577480704558297487071144737723537556276637555657289371157029292875829760246327926532858982244871261655342769397168546249533529988219861342901724981320369340144106936061419267856156750682039519580743012688557711259480160944648908330802352098910116239405575574351322677630046722163906333250552018817881772971102814560262491810281485634441631737113576719819239468457467734889941547962396295183392121006649104077623186459393243354820879152923103070099483635206527788063344369175826981710017185872388724887827164310296425269712794538450449605755836822952480053195763343225281471501589636235642902972031287570268351011347210200731540779959049954115618825420370327111351538878683922041766191918700492664292596151250460261998245721944574209402705917077322870215157116737987979020881044659282076389003591708369204304274444907603123998897619337926792655839250577943623899042070813799117119327136505439485843809316166137092585557885003887510121476045853657269047236924763613406855957260794702492252767906743386065456242549028945583881885118086212735981585475274633701773297491018796162599170273805040332495063840468691074411521193320483353391035596876346340033766561913663178592167717741074733826852393567409094669369975595541854024382507556484204955572234749567657425812105525594259483714196315195755945409617432888014241339199763286289534747235132532040254469235790021919707826660527338377100545478240794212628868669099230373126431920941848894989842757965865530636781608937651871549854556405901092557333955184079752677357442514448542150158675604245815777636000527724035736899372338995763348543669869748404525314347830926121678260128205038551250581356952216187502545152352873413386827948751320489767673721681466922867118219853283883362163559509812406713303826353430719110319462105195741043502178922658125478266115056518089252322085656304743815371299057466356797104338157035640611994509682815799117997181154645625223218075167458858043239103147716728617415462508870290575340008988254252991513987064109577525471808525712363029512221910638574759986937048893038021140582528085280598300568484819911653108412537918308811115346723074842699047201339258595430325274952222025805528589951924685846979767197924585250880465921241924904598554324493852558986725660504075218566665357428744005937586326557283669628472220237979236281416363787450264587464118548660414561482508175738867598902397740700167199757304712270434653909236969228329327954460415543372335204221838797809605705224336342110184644152788359873742975668222050190546433593423053070758744519601644588234851212391191796547663108051048156836053768885448032624339678780934758039941961578608818853879535068260175047300777071915122584058597545937485338479007870899648840664014374243509073339955403227727278911163099532934704017351155035102036509707342567154688580533473742476516510528549044101556473638291344825806647630378739740079341212969038350785967171380149154921429747609694019524598564988380648339864743516374459557083442188832966915693736656378032120048711341998786735333081927075375765072738581295834506673616306462480409450036002463125651926596910916428344225772113572520162711604099487317052575590257233149472192249535170584570338930692161458534079686778254310532288795818217702388678756624840186013070592537086037492049503839244396693378561532446933027070379823947495539951011304426955441820025315307785146847408620158730580388082106151816969544926074860319625887216630780996223048642283740788883655342089159705142119245823464519391832938446405555932643422509968274549742985393307366632913043115041444875042477062988352799070743273596839460716449278160340711205640603059813849995801467563068303353534711272523974456125810453598657074802285466808776176316124928478939961812302132453874978937919406590199813864351023896924510978355000538531795483503086951012636808324734062350088978869336646082916005860530858334303440517420938614334079391064817995560991012192672006327017098211626352293828032027875195138541676151386332940009110944948463438642749414822106982678698597282037832256286613754774128153939532468836669574463591428496618419005469259079737074216340335369235130995324787865380592033178032044895293876837315857319429776124214746956080311358406769939637755143720088645477321225962871865882033403286407813863033428079405658219979321471876545967948244912407829981988760153187079954769891069767413666409232736179052947064753687386058311791107936082492832600973102960110663745467069736114666299748598141160062334946505584415842180600382143406903411172579094627121510831630333886548773988327966748782916678611598727947934355937479952600042059985068948521433129468479399558927547497000343393197780049267105154230798889264795317950089133083495733943539020432671045692552271510587937990830495841883086692494868977618975427502804422629296340228158041223609845791021864165927477182160069832368431453565255304063134616536754640699989764212132070638141872264927237340458039640809550998903955463128142742856741353002265748403815381907683384039200048850476506584006918864171545883948830748822105234822973298548920541962667585935712129350332839652724779924969836004782445062515586072190224679818220540750099248218206509771877781326129552868314640877350939586902759175125706158862723447498384078154985256709067509431546326354352818116944882247977998629508938874141475566257035365977153617028466899491716037985359208071153080725507324405559732345561986591907580006995178348313370649143695705958786448281928044752711916351994209623929070241633711154135659256606127962971230323910241734839662345917127211983584349638680852084236191516922115555492294115879979058296308384565853333330446016761269110897600500751084543609281958170732130514339367119315315229694324860208179640511882720180576143354610351363097817442200967020709934603653035941971804922240592593698146411393476710661870705685770943152670335616440621192168003294352817636856652016585041074941291628489263156194584430888429938272679413020398295919483225512387192653166835461985076380648990014332853382260571551251461683250459232187199461425686510517451754173648034069817297126567356269470694987413686364068360524554933595616570874202917569770944142677018071854128912305209559078515347462464772594818579363659767132646496796898476145035213953553292797553158269697486755630589533604303949202304774799612039979180309233271871511034164247006477961509641502683373441114076658593841000088453829085710812906630526424415315857023961562222847798239114419207402258181153801208151845622261257715589403235625691978893525030102851664869183076092287664569234671210358130226965838028986396947650430675952417993175397728443490093213473833232347196304049253747117051403025490402125176311318603915928597301167758902020732161155790000096612985790479549562907026297354114690920884159961364608912917502347593964573127470658102851426959467875046660637823147917430162709206414354161954539755785872498846657142640385579807965264568855771052915351092826254263805662992659059577279948084009062386611820117568295624664551554553585231150518438513792929531021319535911584069721661601899442295927335203128769493732605978442743515228373654298824943511948314110653627434506478510989953876760063009276587857346485242528473706880841279815188446281400423693478450937790950161179264616833368876436438136932104714938247998276281076566738966883516206951645583213795488850838087107481636932906619093469369488575267008902109683303959051071330453584518261476350578825257098085317448354166025631971628237428429263746762534068437757928072827213526844315876629126342311305924103225572212202900247382532288973952625372245646466573834127207855762841143933402287872930777112107038767648734145159067206328801972969622368369446002165551020619238368225434738425016313288026253431723543890974198632417888034133788128592736280127600116690575753767151960823921106594649146379191819219066876682552697517334712740741960724242213009378663896915237849740269675264805821916437895052117807628471805640633452745138119773173667293206170365624502656293274756612072490134954943875032714489751662184346484024550739352512045118177448724816536290052006369187774804756458827813217420610983960041553527486499714444976951483330886267536037763065656347191237901196912542632168323872894960225536178011987901189870869629158293670381091950753455962554315275801856759232567136745182428908868369960073318740158909462658924399594780082760798379978270776537762874922693986143174609642832058299755030270170404139847753733179809844525246026747625322410911848535964773344667253885879275440648122429979828172884785359776472414751245859777672002531650741204645814912289919416497928615644603308945342468533852947442640569431747681182243036886640243949125433666208628648919874089678706581001405625711215253163861525831620509777630488900255873361782093000341756719928930790589457106797901936928698820042256646743570689599905583944287841378083931150963407395725169247177164187161007369841911197554163643047181825973128648599174000845369270805892028731928339468405621245632036730596150984830428492281145612545789285435275882335825616537017351042460156000109794363396936617912032399703640585437573997452902344397607180063145139531885862169604013299945653928626798647558314538565832405443164800010905073616192121745708703720771493585142507442634869365528625369235643717593708370825191778338733463983075262017364598032008128550028027636384625848477449053632400237358830257361096718518784371173564888035285816130180225404381143960730349290155645219187320901459501040039332248212466074846975679946398118697378396731177909195829722649937574945066871981784630888800685359381531345147704278893117064745071352590518739633590792211026245953822174766792286943949467930375066016717672048617417222682310588483248409521102032532234304228298427307973303473278636128388205239412822123994771980357562864560632294724150179315151886518188214784567002610130253973111822482499236938822996560683793146071840538989761455329095726558516777858730442515863922083241115991038609836789713359208000296739411763888656809729615299777632749747745926415434750143989182578620669584103939193743240703003758218557816463742451705613130638672553536540924949335450164214651519892792274702014688801643192170517624926462623855501231805531941305559600503200394342758524875886513196527437332965342784335018705732127149074832389011350068449188136760837189017998383854256761141547656632040557903413892295172344038087948651781850271968136288934757013250552474051431705768842056570764737023394060830546362837849184343683128289134915733603668424395264281118128500973621811582598362249860480859782180076981027867049094507538028845821445830820617556974434653716303923235793460645872890506011444291538016370291024915597550109251750272542787852170651832612509143850044963284533629641552197364625959755126948123363877098351668690169906337465932802788561903847387794575250678972274690431813628550114374119335531179463580524011403447528507165806674398660480888863053323171002884523835439458633090927607882650488598498275801286291150890516623989750022733196387720444199001098042586101541437367805068241777163328127653407816777909024622004048355877136933626349388757651335402839997405232710831708680333330490254602199742328491642770284587610498057840594166865425537342089407351117346481130106681597039525794911984939488287207432303097457411411721070967769717329583596170492481944214767747578220016372052083489674257816606937710432925149172709176937117983652212644707975375679198237936160729475209528847229359911845657150699061843209786972011233707468437462102356400665295319219860353651516842317976718724442507977762001474505671021824042623909077377642032732852483946442797449472714275005466592128616361927229406716423313867344118124436640773097981312809333479723462855921605436342633529448864650857573037137828998147203863609688265341629313640764613713311777482507142468899004142164888176173136657043237247580649995174324129631082155088035535511411104563397669128878841677357041148221354417470147882287764000723538813943436888122978434879364033998442505130857204641974762133668895581702724180051981968086687937688382406563071992818536791682699411661227018609875009919776217491616070032668496774302106227639286112441007204083500290238890711849661985850492763390513616538946939202016802934887367659865979952169527614485326743600803452640941550002077524545718515963790521345992863839021911053035201484019201333184571107065749750052692837050095342973892748198864467398247732389469133397655279434092620237333192728120294706279023919503246733366427051793606521492685152265333829958635914868271650629767946544142001426033956321585234155408853300840715300851197100181998213362192335130261039209641283475844294904726164328967740259148721822049906191338311131951212697764307267800544326171934771353743315600192367052105693533715838778624227555160956088676430348402096218471971081778442039727400391363454749254142355791426444922813699673767257735474946874964622838606033137850965363675767023585818232769675269362765219090797713166039083248794414647430850564921633450851462618638847833623124702073642351619912609478504324614562832893058072273877677081020281153710743362012109026949039804387808399279730568614574794425870903447106069783657628882639842857971483559737302645682760132159419291461583168635815746321861521638114326969255507666194689793925304312814977995148697222217785622216607042796480677084831409338850866377711652649896542799864373015937429933298026625433576540697248625341130333298368708435363500242395493380676677317254461297071576197492210283667804634201539717557986511558006008779239737353987892667872444517778261305523864723505890962652740036191396900322771396569032196436361766345839156135591042579667250631415650534677093896460456636585366182586752423334786175645922721003378471298557947289439442947871465068008821942784594122033113682940003085482821552801200343985439101776514796977522807557635779275809932245274049352561497467968050565840868499840991426144974443761938023940663645637092873902051143090231066265655485359846608004339873425845546451151312141559902663904810227206678151307503058857282391950830702009874071120484057081360681697082280956168891326105072056239143471803683985819888612085938433764588375817049201893202384945302204148983043375326050747395714336540546854737637771348321670165326722208638452948514198978717095819934180711924450002249783367650901025066938643848321491851566090556316277108244163483416798322756644093621179985146879477996952863466175018412444976211485107995672495458731847056695230542396750252119724711097046082226024718778818467810979722200822766946217378483122386105247556885124703558586121257762113650135360122323269311960732410650605949961177502082594375975945327792349080646058428913571669763534165312153784359504982710979383763557088678048105339259666888280008346205676753746300221007691927015945753959606779199013882906853819743281185092262604344125832743540142416484595832564389892180534508426272987650149211773575339148768649485676075764316361098260011879794543583686075249560902545194679141710217027382548927710389004122388436216757334585578195861380909389378638266071904579037458134531962705466562929165138917662143870533260385040713732313687784808910369788549737310965362111034399799597866118837551230259838441974345268099223037788911351363268617567652768882604732151896874252070320438813245655133543280661236593728364720199683181830207989811008825544119826186157399987249556186959542227576836413444520679486302940646212336430172691119288119024452014415706955742080284495014044024133542266443287957333837463687704165987548404425837541933658805735882597318326592753761914232433765022915766665555833713369504144921656349742592430763401985215366092772096278705671470869004973275722093432420468932279412041610746819986146199844392633395600095477115810941496755560737658891895404858428310745718102890047346475211642604841526823711080175098021905025675168694384799749509661344835377368722910763559239639648464030311182033490370815397745513845565144620838084010800257824616320647454997986465029618365623200977744727144627973290453290426676956064909880294070882407253831671521714947687222136550534111527508210451261603469387405317451777284062081805536331339590682267323663951048235284937115528792235576986469797986993186085624736333527094293887673181568464219910589859442744770495785418243311161716684789305785431732939266931258767633964620834401787244716076098068634994886238552565822157263924369864020630156365708104322568501734018922287206262606314450959054063522225904764899263067099859332604915228406685602197845851716698908097745356996870539588531709951242420395990629510574312012839722830210801053958358956062696993952331161221433017415632227405853939318303375303166506731762813202583625444577301431489256055841152707922556667569658875240846129376448078579729953234516145847446130076925374015754325528250230813172841242784806277142878295207014539652751515808413296809407170816683791337017880984870161847601627557362652054849592698635438983047734140625675573892519284108972861937611057873331170552198588240590202865278237642567913840214020896553314814229948026065899164009608721320859741144886485029572733724635798840331432682182872076697286549471784322314170120086470803383637470527928132415076021890785074062322348466067191253755206338433207666990011306141689606697983869668830456539924393244259330043404427575309365615261570682412331824104436376824627295177065899209608505922416784782456762769527294235544565678751962844156716892457833304285504648907271526881417396180464007943210156370784843855882916599845984785517666840096447358255279064887488758554107272112355687621691758317101386142488604804207785890245490021296969475637381730418928475391819338261162252847594262570709384963591750671011506163845124249598732107274604077802143572874155389510091486619290668423722350938165453429854281444733694277135866828479823059669079605830246445592844730053615116789011640354092817468994936697776441373631869571174930873967783867398195694485397432316628264143886116405280804500643708165139567599987219878419903618312417887417235218888575981889842030970283152682589410495770348911385199340324651834476311543114731995964959736045448217881093040687137615166189794906599476901639687113581735610601017034269027626800510418040390997175289586521220505832299079444362131091721929778327928667871489134399616518945228596436204908748580547047842871587942648545432374161882633066714430739729163319026624815832704089426826204878268158643777043046272593381823894227495808609253406936999340134902045623967128438344368683017677336255395227466763709321790232482568753802611488648427391488534273428194872784567538259557525248671725804561343930828866555907666572061744056143343719535764942766464293819289959209073803023465132124904932639956956509904559701895334940074341846834224580920760370002957133988987914264658750192957607463874881128557931542517678447784445013607445864834628597872425329601741253274002883972917451453663477069796935199060272932183930225227466551333523450309640645703525439043037262659064791450602159596715472504399320032406792809392631420698229034660725490310782325664178268296802564301095435402050142364952468203058461790570525043095680486507057969937861912578416068299772256280040652885903613691230856817661245937183416472599205022571661027585521647069865471957434600927858293489657568985697673388184071713437710429655300074864228629307175171040599803032211519240910920993978948096823865658676110622793932475903942564563986208697845118307397598777772686945693848475715837389836962521219546608143365136253330583757733289240228474326224781113780202085968414200776875683752850513116412440393847700316165540940297971542987418181181995582445195291308232789899943880172408424145681467582374918786312478618478740926986013251542319140048810923891042429976465014798661909168121951845917656868814268650285159371101941093064325226139553436934080962432406709214984368719922089621117066578399410596856432806622228428654138803664153354422220785728486638063968369451161423620663043287608026772839940427990055145394224103133584801747496486524069091721691890857090561464185234815213852736073551931268987999568134588813195928622973023697047537980855227590241061698485865346077872825925320837933530100338744686176437427358205230800403554951885052423331478485202905534751541042011491947441776481889508968852264100159850885190665846825419354886457022813934023872124136151878676114503434535792077886590400372515380070436071861187829302593551675384947026174556829477413975675448812271401360305735898581393899224517818034341913876228648375752644123991803005487362524742353530270825782668112507681121595915466187733894444764092485169559168876174874309939809227638543177729325378551307374646471594888379533545720489319614597724466471015646273681925583889112792003661389283641783729275820068925432184096061862270726022318023767293188198287475259308957800030731252207900850552454649459927188322491269741350321168719050248220856248264684195441145082809671702272630465835195659367689761108547854447650499882610527231246901609385213833016141954531574298333144966847657643268649677531980924769629961429369307750750198337932310894452087385819071186258441992311222169681178921688452514946708400803525617372382318608065091075603628778502270760657073931602337808792365105345017321111934252818975029955554598378541126776350264738402269517239237675206909648631848387092272743712281620673793675013669572038346338051401516200385763071208630983730222728993627492612245434732280101532630688297151861591706611745175343218207409802138712373958350594217195399819043969404807143567507972897219532301802668157556882056338469716895182085541866059728751569845937299227153985082933854743164032628429523824925923559596063884292468679632861101984014029189602489764707630190016931774735203546131365219505741955515422273259982256912959375511263476504589115365852758333087092770519950182459323926768126193334246764985337090393795770225273353391466852954810540926019486623224173044050029096813939242238219262526444666887178769547659142271517470903686086355495693435562843458755363218903125848172933491660994440301965558022108416683056414307946150819578986484603024337905992431965739962688308656369258255075102723875514687265712837377260973480652105651601184671773244209714981076199673332861420565361605014212713147160114558870383891893108653206068989543134430952508547604767676036063429969290508968090291871566951582626112371511381411249204841280906169624575055394453051003872341208461708988288743297787453473863968781382013863258036846984925606400248641687754485040148459671717044756056178610210161630508902323861656254455521171971208103389711926179310351902344923389721231006464800507840276672053006686161435596753766639411390036605244697118112193129612228245546762100799307082679977780280476671295002353559657427358113413246830025210757574444998695984360480551350817640309062414922220666603403309904317458383751639935154981471093054448083751326358075085532513815483716558857529386627249216854172823002877540341137945466459643445355209637829862047874747755876911451561655887160368465577103159664367521434500616143532431122793147718099745114080825985129468012925382137307442997699703033596065908841553306863473163554889221244936890011004902073870781157684420672516738996981036743571563157697094417302890197751791568743901704305895111985694687650060135811674034855273237242770479600759202630189075309168613519678424998816822393157923902925586782834310924717812783727172211925377568214218724270727134995107008952516966670425066894790603234980846264385620188102960700567559441287012335410238735477378325380883064239645616683274624837413328568741059578766008694295368215940619857782298087968892454819235544939275229646077815179028047148064893519712781425315520084632197490787458863586808059771962283128374050396836903995814259165388974095142240647940768418248955152333785682411490914857551998068184924032248392852275869242357815236132964060685160134375025784333295905883508020773442666300375412039785420026512192498161590601185760945436180013418647426871379302732699321505949767682894638994979706087570692076817206047092982831684470727315164552072018183070258644176490723000133802197746570860260514023113068104773116370200011179642139369442258092057569954451210186328839929277982877380608927366790273315596279154281494796598311165969873829215475792454505167803611323643880419550169763222550772598287015026805648215147517602304928505982985525163761877863871874958859259043289274150192259594692967386123218672743509943075429159049240791038334061734353723607875613077755615700154357363393863532379419255809652725896120286302595815571967986848427748426116746835641195040800945360135789949148959464311389026395890562215048500153233687365845311762369715126248827098728736119685897088144077127731746557775092782301736543525340653434093684607578493425713185793187975211207231586643493696622260376737335172679767091383627585182829271509943346814761589627815626260202635859250258439877822124082388752728609416077199844218587628409336143213368746582963312329768613018455022148289450089580503281759700096693933617153400406162722654361945611116973414433322098442314331235772067708636266999674199912623537998517077687829163252677174102282250987636728297602753384250755339166299319422973100728975864639934540436732543263155282895278734584804482881654821304184032241362167337687313468421250595044632674328853938051373060806527612675774961461041068603086868163716889515411764127808682197805394466016344567286639477027653890159962727130584068998611353626148696639834527754812565309500041055495966094051996275922136646368039946977594719251169522767094957154133856408808580751431318432035002471148317727605317838729820681150260267357605339859442987083275649736785490806651303960745313087134224404339251070018730639415100687977698139325515723329980999875049737086707536947872490237576881668649554741832250466580266403204498568904148780430375119540649331945509958612698476834728312395017004410607303929339585961558494398487287609182513199540643984123884062338658871489950320025266281424080311458313060945549979569604454809801120842386027979266109314765499271664002951114102320120650604038879484501620439715693887297013923289149178758693679596529092393612489871984295494687418465214648145046111281657236429432077202611372436775759831165922078199858206767552915282316667527324438710949489774799340706510709608963417183695786370811379502545515433778457516403412681282466616039467474416288637791440547982423445240580589506075074800812760237897065800335052423189955684573134061647334632585460080938406598660159902110314766056402585248752324182977040044846157791671807559079896384368714813070426033267909933663241292281196714499072944281507146886782888419108461961063029902470316980463526050190348190669049586883078821040842442012093495110153351638396961946130489790358755432044253013722298998439468286989695052302881478009908861245269622060001796479764011078298489293404019969834131978255171272452227288735277476793168386010553473286088995338675544564149600905063480672361087691410402783932985150389306865428050033367927284674040827633681455514144111432631246324428009012251711748421015454543474058696484182079917599583202305495564066723159935169985571334343665690589585640251061681633731705934477244174252413182136257234664902225542060678810455493672292963158017970023269611805915763350527022220271112036717175968947063523774697728217848568013842584145175756065836514708319210668850748063431004684344521485633314103357423682869742650337830737347486054019304506216567331923331439773974334091014578785164923118275172056331978085508531621584287857744863039621573356908073596948666107103664113378894847624694820092210874789385290002967555188619862410864408283328694678276549040548710749663214351181930065369163159642787340339207448698731775391552000563776653691988546324890524989448135272061727643622579589662080664216290355077765918310910434204108603278786583145824827405239415225432896139465986909438974468785460623825718699188553586534649184177381838603498160483792434812825431356315799895453050241577419506873891732473964086639759126648607457415701017389286395291779665899910820973437619542584827733082149488370345855039327303828630074165457884132122774463933936821296140115551983157441536121506819942245007493477952405247530152544118800643766500568725747530052414731588953875749327532227882449268631465956759703719962581378485855836824485447752611884752987057060703641417903043184562072827246997838301710522857236790350670615810811379836384064773961407173765466132388614055051832810506663754929519537744404629488266203299551299656107818425714638563879432527551706119329188932659027884651746609584005168252206360181782041442389566731770720178082131739875491304838609561094170107846259598443236759945421371282481008928682388036200009999508373584470446171251058988532922488098799251582986824912859943017884644299214373266933625103375187927632585815035461177673807459385571800134022974088988531222459650727890948734639517567965803431992602623080233130329803131466880011378078445202728422819303578024308135737799255410989329284276586903328733126445061910704949421874289506738648723514270160117788706174604671991660088564408232877133831196830655269366830696354573296386721390613314734263323212682222788514665141013091259813371990101730390916570227484495719275131658019077535475021553154495151577457651369496880822895117162552541319212116603409673555712535316689973745791805859934353176892368522496693519848903497065500221689419016046466651381868413453245428694407677105705498862175506781739555794072330554010844825970509837612257900810184519678804033612679949213917983507393862088324149214259888460538330425994531551054808706168402127693220305155367426175816039101902410376506846371323868074594502673572027093425960649812260398372809947100713506785842521699955104057146761765779277218260641629151158901571866037537847744152976083658884831946457722488263582051239544371938512896794356221528005317180485337166939275804082220565566996748611055725699542537370946606032285919736737140537291986610292830723830142741942193671240408946377254530088370519930117153332439594720430978986096805219310856817852424793259277940376735826062177645718220420625562845887192087520915371889370872751394832327588342266034446755196305147591304443031677991698980481388098795298122974876729765093091043662688505231528920521307580441864376109147877908645604618838825293569568291608075593075505266906676397605155581380889852836247770993826236773040968322023820471577573997068821659816386188941387977045789977827418263041146278227575347362252108587432469414869194345369251074422853963712519579077562760634978660468294054254931988479540055546688788947069703308388243542683627229272469957602660146395309468822982465905917872582215749308317282173592611980759511898249808541953834597763589339733572790134742869808560571360816240408755768210725668523737550078526991933498497148586499085921024686865110277415363094647802444205122242509896130588534087755856992382436265997095409723773720555610120839995732940069839343889377105473982708891282724178686011439766967568439689420167050987010233035042074383269633998772901795528299085372599293269235086898193007655629429831355411446230631538629047533715326913282928475168483542676309858876570636623929689860791640561746427289092548926321934051237244559708552814122949593065765949061084936210871883704156297638471479398146146646070976285404735419213447505257219413132689513064562151775265951453882226751620786686317274733198939112696912616653264498112388198770121240841297157095697499860332729386080564678082903921648742225114819928726576584294285698162210134935721723310552244556394513796673766757392075936123249408084877958224669001644272696116177591810864619308240096198965037828771903115114416023159280399471313074860927022984368646152287772612293335456454344421829025977528553379510844189250449408083838807467457051196543517109132194090567429378652628217886400105400194135955439375618898981422537349874060494015791695457534011179276021161905831528566231912301077297506916426382843606129595261285859234750421055734967230887382153163581099741050284799564942711014813110713405508167264269824635045224365522305829365769482942507354518033852186570771701377120592172821865604178481826598817140439777227984233989942751412344388734035287627631014882555031141309000705343452981444571518691292134984807659823926895224410884741492620082948700594720486157213609570214809567964337499864800014463911537871768822032154647431942589941467866199129711601679075536553105902126044841954677364050603881157783119805581783020686449015015377805575038038039230090285684671151464615454179739498742453580948382766866735062892991321574668573718698161064833788373415767342679256868327756211931891484267769144211999395479482517580788850474009751545529499715998326380280303325361456890531375668846825765955476455331904102261580007357583014512188351263300012146540177121267898243014866761703623447041580823911669434812918474964247438098957296962320893612620754107494912261870118393253805699769754955989317232847659291394111733624920175152040537051960749703949973991817063074574952412758556021515727350325323382249868580775527209401367536707347408283278921005681381613706195666873273077557968465090704242677222513403198566236726038942764775365728588705092394821689654871140014307517529306643906127257951691986734772598324970624717144044506507440473090377974362826557685029266857809399579138666397082139269971335584040186108600719756396501167972293770482489119038223418072258212822879521634930570406689817748791392265422577258885224562966142243718932396484266654654833723098704578931261649571201125883823188866048497640801399213874200792989927250326857970978356582051629681180224722660875799377299880228139570599842359229583232389770255012417314721241791106342877773744352972147647914341116807037792800076021075748716620906139974094493555587036685417692534131546757309296149995511859840129095982515480134300984466103569730538012025624156150718982424534549445864394583450894475017101087258547887138235738038298821966976858188226284515234255556917366349568090680058109555343468240815836525065134449381747398713019239496440634038994869385384805647173729452640960377671186117943205607108800527723576611358704812589445867714443850959921067492870565422626769890898916623121360766907269432956342713404356803302735248810465871350015425513245275130157275695561355074391726637774401574854632372436758833941080264106303532160702701497326822416103565378328347008555351790150032977656707626855736915200089712313172922226269684680357048818940798252693731298664557119323103123550111815420731386944687600234006958745327382252696173906163055219928868170523379520938581773381197543773730882181363815010049583164754903229277704797917060754817017996623220094852229208766281016257551971603654597359280403189303219501503922994436722653408680784863606679799695836875782720847190557497037526533151762818054941579121230330645083831720595261563974656008261954352688236625031413777479786152807202038693618007596112354236826626037633550334423982342626853864748270817651961654314518220286312008897878550865570833209425553182383040060218201510676795681141124766555618683665733052385840682540178463177101306462338965731790123896332358675752182951249707773933133978663444726234726625328838202583804542487780682433615648578262873290850033900731806937857301556914449128315811539302334904141260390587660133694888943121056703783090629986571775970853163708997615143196583556215073885341749558828300622150429109274449661801927912899812539124265829681776880458131425680639919554494109702262589593398241307706771700569243023112715316850665129255145121636849606520763123823998101762183616282219906036297780952229805383894164915960877210155121214247039200413710541790072185286591191780600236388543101701206034191936365627647097477484210421087295651852295462934235885927388250024088738515123635244567428731882942059818492374182663209782744281424310055002261276823217828650791865506733716736291594234564251545629401213032059730175100980065177934544694657803243090230514648495211590074914816596321136547517074742945639064299786602538553517677662356380520248325070078931907703894645119616579977071522345179719446606859368156807042954833786154067860814829065964874097244608531639603801296686755793759302474737547990677507595450715770540499470187072085659042456574704823918611253724008617253809268261762491590649103400748394668939666494443241688125092396001306910434162112080732571827509635039641245289882206146855285119317356447461546855414959340948533679360837994995472452409546579688909573840094759066217864093197099784434560102185558827790233671857311559601036358089195069431781798491985639425451267812032530888155870064353860639814780670496114036338712183001570929846140831029922054407077533080592943178294420966843865518871483821699675150467512168801990083586759172386007315121173584297801699972679331400359628379250561167137668334096423950900450722402589378415165868759111139929085010654032545822249287207203697470809881141191181959125159961672883036002667398219480043449316086789130511927092942421445867710080796747966483432682147247599203644008889676387066002237509163257442894642834147259227606548226365022861522642898986827386090686539053065504772459570882896548594488613940015754320546496025819548329793628702370281510817517764526789101356790161356056292486609157542271784874101009465813016891444696242854060269286904636459668397111233837855873701400572898182346222070254904148827916596170781646201435224427062236006198894136332903316045188550213028010482465522655015919295894011729427803906989805464015866807534446302113985811559710749541162255514516016711136474087864539693459740844800698755523256634192740314014663761988453201077869159493265514377447433213694722245953590838010417914872226594973083525353127038688272555093280928234617708432015383241852900293502817172477640211100586522473434348630449906881421451704706495892602634390451600957490758990850357528767118620755415833493319876773964095439334228453900193851031440534532907532637551632556955628167686830306241124922513946710127854687520099012867848638886633765271919516232065174427795976376010317146426746952919089745324370935180708508778050299033909919642071808784695717848654531979070412537514189232462656545491307573854372527965280640171297472426911625844762837458261866556311648693272607398300120818916747577402860266165902146921176112519402585816130202637125674720896417717191285422769593055126456312199903858559546199306631087110429011373234816418577242721414464654757066224421585573329133506140948946860336104600602775507968000298680077362949126529791323371801064266403926279982606129849650330238752058126167913654720888213591696199842295906769087101291973180620409752160535650585279254006979320622789603721963345639588840585087056847088921246084438962557541446651897324459862323919528022930783009828255467176076316185041194999820765207008803649380962777917629766888117841570479421373060808046650065027063973906110392137853352900601216360223622466099578707956146620168864791200622508897276510639179085422169958457459712995047248570361839641607887473811361163184268861012633923092635455501337182522977322648602414178898428044230844953280525231376965673117529949502371863890730094126027234963088882967165702949189960618791616166491227994288964156932703108885447949121795789395588373162847012125095468246318588514089644361097564853526541651969806571390748989586755746764743364541248123127400705356419823833668805331486062084259936454081105913632968763603096522261527725404268498888887149965568640964309521339937922430484711424798127060713398935012042508319866854829959518550450034371262036638952000946923536778788099222539815518995328296808367293545575484197592555771553020181894089112426431794465754660547901068937711137456702891941816359110377674212114937713209095304254845381167510044370386155345694871829724597063759495856820194701810280058090467198568253886565758456080697951249459315306944895267656052506028810374901964367981961388683226778576254959623429966947439054329214714889927147109450814063293374425353042529157200460512511018228028672670890863225908499646574242744645881490150361412849624450002804543392712911927684853003491143449194676885683012795036094556258084082105002761712834119268322493859527064051984647012102490475059238169283474642093836936867624909850367135227174240118232478892612230256130418083980634418775177618445812473702114078369023303455525316613485877263158775584948078663365124263593675469592705107291981549192512782624643120412052129566162347447098779909986645889636000090359725047085353458212238849976637197501322604758155230931310987649322529205205144285526566092392617631898236038567166655377022083047609098873163402153820253401777775882456717274383643454742566697344267481183549857105906998025949760755993316877392473255250944443713968836060902345893975264414655102675354542806815085801702712541120979263200257775457635727090229991224224033886176242270239664017689831866144684786256787817045335361469856442500320762022554961171347309298161317437595736062628947469479943238472912708387488681176023449309604637714446304237118865673721007260824222520889619881037404364818713539880386965233271209410529956572951181320526449694874204661031429038859899762132296029377082134144038026210794125451150981848113141303158372128983620463404546686053376932879720086883433805490381474783816104360440380087349967500876971555038301824113735881204100394977215795083341589073888957649756807371959115139344167253377298510018933424372922592970446576397558639119293446312504743973389200867186249817970921791715510937470993930095718999898932722872192937103324866632671268795867389715685493919912389663489000002296178367284524887835133373200157389202023637466436010951138404076186610536526616346199210808271584651592253781912123016976236508139868672310305766061637446308923853259194219725232347106508926188631967749834807744785742416119654296817393726221941951117114320560789080490083255218765585599483748225163969992254368843456829865504357397254526702863802480454579610103917238927684963000619456445846451334888155396211150914510946630051883410153840112903625815882464591051754306075103738793596479893673879704091591633981355578131097597126316657208508438653775525329573023454401966282775337499851883766500946213534410346834100052725956596855539053409483197231360157271193258181913124243872600519891234637803400113107721277461643541462746446537428136008938205810328908685204667515153262060411041536360276262701068079609300594992444634045924049456581947465687767514257038356457597296951286006035387754510447722071522561626466233259893232237408866873674995494849164035741779920402782262813185772160513549902205327554509733356986203691518270319394533421721924771177612365301683974639212798538471740481717935225398472006564877496793182640401066670250848304537923080628192425762083442886019600386042141796240272914771380310463946498060051317828714293028346161139303623544517785121378843107057863654518136627667203114546676962064172083898761732296126499641546619166831991538773357256698709503356766577860449166619190921571019261265439310336461374716252264613854519107344142093001804108212558263345535765822382307876743521368945687458952234691242413155552845547907397714723328580758924665584540330828587190252360140150280538288723109913723839265275057311635735388116240353981567457887117225900804458883783842620388413162197597921963424211410331418296953310874275411150036486623703347729090829801477723694625423879349039433730511931723429803673246277657384128114567606437997835037252949553696434748513365291974225104377913356773496931686963568922378175520934072170375386493916676324744097248520419913654682824151134264613013587914972493735637079966641353390829892340043911755541030193136122945395197773435291973527465631715687143324127569921899715735787145240879115115575890207752123456705593888531746108795006424035613445794438661190938623287793099682905346642267490817597416195274670447566727340646426381293070304118254757348014253912407987823588055197088927104245339682748932862574418885038430025897627787688079045248511772741432599587527619983385275432125254208102395052732361920589227159088198415572987494550535822867903518275563492468434491698742997175945552030316984355839542256950531553775496696700631851103077809576806828750755122707186040321134788471158361670883487562810354436804489004592657499565746728860875363462063361050197052393865214583441697963387918180255566093148018290208761231231454713162863456073793472487676840310241478548893010321261225676329436142954966985892582123230198683344963193704506039701414914276702611386176684074381548439080513743998656489153293449408748580195821943305228748345775996448995564731011836880107662165485889860431305041218570547614208128214784023713566127445910702094529018676002520512288593557700061872924648168798613072779567501022618600996419228640465657592567888763788279437937181892446681294870150724787758173569247155400971619386097200241320575044467742183235082328364485024898699943129601843934854325952386240825269300191541342858532485835684493861805089235687345973819569481751599763511140328877200056458273606700630069091353693116381302063486750763355885892060637527946790889877604593833817858228385982744182018720606742156170732068637311808596158796707436614975468407119979661186511002829348337459457221023284046701738757379836245842351533462009852524439270274603196816496973775308154424711694305748308348730678288662603068234033555421356788187428863536108190733966971587332618675311172249073192284494771000659507485107753747884365002353908327674481594441948880288507097160056972853051209249050273878628567926170012250829682100748578066726778758716251168670016876662147004274255053542045615417459335243595733173912637216272096786507178289898601367848276333851340964399644057185767162223966109109018052455702551162443777942729447675465680714451932005233766971934695890399001730434914965560103497311839550889461296546177729718494798068128413231525786996159880654259394841212279697971745077452077645602840494213733196428831913572514404343690995488178579576948684357232320125793939666656339237364122753124685424977503590721946037916832170312879564298206941714382627720415527767098415934568482276843892359413080594840904157546698802352001645603018008529789930341204862297684964245207721993691878459177890885303972507134063851621128226007062456976891426160768724699222941522862775723844526717129333578870773477153860815775442120952293422864582200303348313166128512037491699361485184378555930627910981558616097083101056940296290097757160541752156641250651938887658321554596998969406095273440705619505134049895542099439999968509776666212652974770174080809434125825796812126399060503939340229312001863413681306699706703226196889474381239270632867094786667971398605144223465365872277218204504949079417644535018831996364791858911019843584321802369325012261868442998586907672104680598228274697314954908819175640520816350508879068987466470566492080851346589363121822256568175361176446437657843356792873636515831106598454432935113300158510922379971407652104719380523770041415870555634142852143335942946762520378321735652005530177391851403061514493343470617552372882926783531252445735048501135835100064987500855094703398667355944187947896661626384955270944446972181592301659866417062662011130605376520742661532801856939320036708139221943399680346281043099758157327162580790021064345111604355865603403743696772203897348941087059485578164897462094808973089147995244728854117031147868199977867355751361788138174755444254714068579338586501426847229884159398087107902038102357708999746466952300853079098982629069492034186867691928610691211048784146737807127820465756099717769712025962328258721890892399410469615553194868066748076711653546413350031160663044248281912421701949455221220367817824578761127129838439847277097925101034284917515448310334817683432563411364568657656135527962523325931684467871859771130986854665173161415351483368942200774514415872049112681943397276019012336500120881832566859221442373276285347702843404728947428147382030152332892312207316320837285157816428633124282209157589698971273888693685606646231239413829277587609144158633597019377019122855292723162175493865822016073809821694119840373738610475337195903524143311785481328791550764589893918148477592540980839684603401091295660480606299053865262877012518884163104524436918732063799666241679772437119102596991969406324198204383193605848853630350694953466659831009243358463952672352462772999908836567553692325292265829184889960473390875918853913857924259185694509576572334438112807651789938902639515385479102711259826982985352312371261603258260224754733072633019111084836555940682145675229198635368869513310149786918332986886836266000713494808235801287203269361264539435348227538171635511423513981187309035685860974220286351870593767265374378599813220643201566466694284356664941965754652043901488352824889641958593474932049547243237189646965280386674045323331715911841655891220626542371582928687682362948323804237356327389178706235640494223096571622682810537158299270080012603887365741293425952328075435904540644325551528670823629997446188619826710282992341280457540254068587293852455224191360197971716279651847764252260861366312151115046240452347131524498749890613067424974865579510695457807067359523776394711735445072650693230758064033611271083504388021582570335235328602007465623836645024087009543182417148532024189667941518616232099503240181145624010806272886822389967576186879358204649004201670713379937664844535075283236577648809521749802505353783124042892329145941373286794383917008223157805432357270078371917691858167764942401000586122276135080342757092925482497437534024564151638311230338857459136062686759012920274946595222736110580191584042161892598867528334199131675118734210819341752998834588673240464751335208709309449211059986939624806199305866108118551099707659423493317486600880231985497417045710812233905527316322118698322262520474364551170740477869953235002806952712585086150457396890453147987284082029828131487260207050387318071889572815794771794426432686950569201025423310372859466517521038143538768851135031712702428833893624286804067547823663051321057723854899329436991400784651748083652732257391463371969225565318660693891396705542832020489903708704741032156365929664681805315257349190474472923577292579175445022391181827671031051011644797119941805274029442539540910697271689810171033540381605723527031774466155819751355498481548221938411845666193065318726301864726314752387647103603391218655408531420133930444368105200573952062843105989326608710127552119397738884293158448301581337875181305109104287267964475718264253158044665248783316113042711462508662863245389560351185343174226144623056766621165176477899828769645198789459384796255995341941113798342805577864866853033549828786431893754412470538225215704430270328921015861574235831229988135879567642992131410796461098061544705633706141512003320849074231631286665724525240610826454773295668627889267885280503223019458705099891468427169562264383308080433019725876694566720812567269311433493014011139635360481820231951355984767394113864628636887970739933171282905223647643906906901451401913143435002966085667277610175552945452903604741738275361549564425603814423467385297152915790103965015620320504006088328475787518457668267068723995512979623504504238989133750354018287423766971390646368280815422814953127254504262787297986516296820165147080339573118464910952875107299554865495759920938062968342161187665969657598884113939540649754602968551021935533976827178818497359734608265649796155454156335501748708150740303382309250818191365506608981916332480546878262727874879848811786700633690890593301315136614517673981168531005113390632174157924577575711463772661639791565670824914103579250816106798929784310594835254033876624982422653716123090922220603683080101561200152800333758787756430793176039850843821307348460257090712878807105259093692806125017171214514527398125437153120554782613561305139126678135194486703805428175193470227852446358591818219436607669390965528251735957940832987464161467682419163820705953820773406323438152646582379213022080170947819449279516259601199539183501589206343959523627682042006168542239131755550089357458826697855550093804272455599248244852156912841091871556802316384431479669673941264630003138253418201319953582967690824955070151448339519389582672440045948952340290595821078280954015977555037702409620044895397201865298998793742530515801906157880443528207828501506761289696936553136533685975360973508878672088749086923807491409920156897344924408007699202511598418428432837216889467711702031956669498038123057205021530425174267878496425908606030044528587958035314535057191845805664356589269966733547711614557954404790895862612175799696928647720096871518949285319466451442507398082275603917172447637997444527360386036369222725844134704718368513448648453851271693214610830915240814572937773713197171589624411671601634499935284589677036385695101207844052225405636067657709184215219230620787453841664218636690343595889702206666059801280342907114349972030608384744249056357929805625158503140608520947695267434689237387153258311275924005022220292000624606241579045852207773938139971132346945415477985126006669485327227719298684671649810379590596953361511362170024711399901147427993688186017910284232945669378839004994158465505287189062747308033656608113086312079689956920477222477719767794687955804827274232747631344513800850520173068639769622021977866117306670567025620705689355126967120415995536161914115966792713928735746127870895572054129447226829967126446046574213896447451396884566753329544582236540275931893694809049724987988541108105170938454585135363787872817135999603187726716214658701312432322246541009481738275615684188667483652559236320624068582920857273426872565757245879992817134976147449137316214956809653357028906370961839243131019843617156400111132563929534003646073168504242686597613076362976240554086739202602538942860643378009875507618703530969143883271233114363941085760610120798932530998491535799374263426290462607908689639959382216502439005284166567445520185640715516193079010038165448670047226931554534612260830093395966970244456124608342182263413730143148626561448255978050430279519753111833862047587999129632333167635147425193785278872833007350491069055875962288778166984696532134399290917227279390044348420255371368741001958968814406548589933864201282012744045852010355879599459180339868260706607207209178026228600713510079907253081635969008788264630422908077366942391580952314787100697582565254664254594312358281921014452491736570130694439210237217616384264671881798964907729588338621281748112118700263534436900797937854933475395530731138865482974143804420919319766372925036132100322094743956044014160538893737817478358369993084422152988570396837721285218309828726212361812385807560237776266849841487853939930041790286128597199791176611326790635571949123432146764058913758730903673384014861133238960360614668595762834163094125400579468899672723945716367759718200846220739082340359038168032344209168946427889188006747270329637977787737366192300126198422482757825309670308105277511107644065533999919282324336149060858396015278458633692461377057092231665350409285251932774850972634143427982902216239529922970842847304873343395903283705790997064526798533802703467410822204942697273720407744481646883520521452711722552976608556847830310086718861288436100174650452985562259667915152065943099497328974840165226003719279982902991427214583151944995989665778164713438448747142403134598228822773719690562189685325783719542657879898189013341056577858973356941904277249262828859032125571589419228694884965389222606220181386270675533058941425455082401882023173459195222533340594226159409040655542427774591219852358015061425571209518152364094179213133080332079860494946910740880326208570398845714640932901141234947288682445121853891864278901303388661788466284920683294045753878688112808132667091882582321986426620370626361504276331839734714535141871022606847195195295924369972151948525907181533933325609771507315657088521955069438103117769360954124808460096842445778679962489236996053570876723666464711710479417332927844243793281322767016608080954898730460615941876648563207408270847416484730259919454981585450916668804073346893913020010640223832925308193240789530886362253816853591318247974858774286621350117384658163406002922983222425045434963999541439751665846812695236290678589875129138886724566539412695791018156691226180163241199805539139939458564884212526056755993038295051623780122780306474590176019392724804343373220231818803175661672051973573833446914033745702856661932589877279034422232698440557538299018440983393074691382471250868334078202654471027084459149545538514097365353531850236794207846577889756248761319447631924520520045692923605718053488052355121534196582437385294844284377300164690946572720494937050066564653783844870252408711600937601499978272198412062167916888287129455281078693281374484655810523630382794418344005892868747172677189629372982585630683912135718408143004584202390965029457710801156147971508871489959066230615993786157041865845475462364373814299599498158271383737839311571288010064292564445501440310926750469606322122307113981974456571482390484232474536385718056403406113046568398402129522258686169099928911667513271364131117039388327731967122261577447361742517325148655649467608549147753241388261540566306619097847753837784285268607548545944223878436031002300460980492796060678134731785437916473828624800483864884416675067329911305642080355840126027551185110392817650757695997098670603912917343447891598842937845793635749718538099400752615316333076531903476534755393207702572975836270054061485376246769064569617326489268229051792071220829556203436258218238771054138685163032812097254145030912327473735685468963040351804960301010870359714711415937079716807840059150278436644997936349599833706448351335656748134227573548719253125815292896222749214478425036227418403358214353357998789149655169139020235049853287103503378737420493316335655717257472505202548083963480858229971015020901537698758087333534082129852157526581135864224788173091552783542325906601991439139670661569472390717309597883650304726845768456073722872941003745946662923339549497951860211750044649289742852069852541874527579155404593802848485515949759346872083083300969270299066217496218401549508890049956737595552684668864016374395404751995706844710923752440549858782286111240482598422412496932399616454819431001419037926818982113298985167901664161629497181312715730569705492017952556262820024358552551065914733150596085573180993195877919250519496330237794703439272654642713733332223760444905697341601096218454674732542363419826326118865115984591842145694287095294830675981492444903626816208058801613074604898481732325145326383367971445950493644815478527226677269702772439646320322627677800513592461033325969085514602440764446523442410497355805937207026000542611875191605264070994530623333588067249784003588301581077168611166953060464507852802612823100800934500404831870746427468464616373678993491438086559722622184220014249485618534658747506384082914153435124584015044474328533272210411407594253866354789317331501861965955970302815930055088149950342316540182749128322712778070560589309215249105413513677001375096238949517421399828915570716087607937960574905312765884777810985911227997613623688385751585234728391612695060801469351122557965251713328206496907323339574747045410056465356333777222290655991472148913900709285243967294185010617375715465609561227012081864890880056641697256439343692093168475573916653104298719832708446404739503074965909206650996069509815562329366299976014985124474260998230015658090753900587813851758005765676656729755207531102129519045957827703139212380870219616727689509227632379109000645586971644641259610345684142561605098966963421129915794897844332600706750612884247063235959010900832543189080459313279888150863075768268843588790599494911638617853647150399327643969145178437095694940965418051172513869787474148363227630032634053315133906767061318562339330495263351657460093966999603130506017702901215697436282795754433490590212985994247769702253588060594355909746787744413735922601589049045344422704673934135679289815073539779186548708485307096706786254864345440286025079624917022391871792508949036544995803452819097722274215137744970187534871123497553635890189301442757058728624921329862061781342690109925316719695660310853833662314117539967562656596479629345929671760720685711086744665997655968996956072526948328941388223573513737243928912972406375862498325083732286781437422666409689757438686774962254110771751717617352453970605298039518738939447081857707821555851390548893626931757730658075974158734345605770211175836882571212918948717905458877044478652061845365952185903517896264013231895409195208913444824603567909953892073880848601389329056946048597192648843204748995710990196716154684531524723727352060365198599916900554256174268096020140618357346560859490817834442316505653101294363447303893071165192652196356619301403400550195320578681746676195636839063384984460696775624234718091234945314784711155904100310419940766199945466052134618625839345803304917158748041944798871597267959177870669455136741011746831588062091827932646035706770079332718329741877445935071923779855867289439197485682112685147873921109714850489819528162573415030919016213800484715392793791942926124365270267012837079728393061000100282263860515576320619071627720654459385683920164314120664318401182245227609874305273110300820685959129959889200641682943257456768750830430926877277763939789490945259649413121012607699537941855605630127229293357983914979189577449489872705884613417293279417314319706058232113191214279799945732220035882832199612611183125171827818396917170372163686793116348236404208956688640061857878821952920588623054104446293283815024593871844560018682455602151082316717662483748261063024716781497413741955865943330045769820167336749776042185965567636338313432614159896695977517747112119176198221637168824987055949450886671090022267679575248623385945127757594568263826133671516557238333602815387885023764638574790006886962259902459905669698915406750646695296089872164953731640287364879947483419490879283095748732905526338148091191049206339562406911652970762663400583301082347404155854385770043215104565918121926161291788741089372976276935216405602354014272384532716388805663358193998828649320479674595337221847606978415898950619676656815766046510467254623185889163710083376139168827505332632434042894564520451794956939528257340539762085409425608851370831101147178481991526703869179468787545264014936325700070420942892493451704383947424567628603471433144653917300713595500767079428724164936852626686501276519674673217027642651257286348306719597289538549217075689228391513008993942308765238800162319032668872651724191924480434086213998501469010036182491144744684675998138296659800334781439645337680218436764608874587996814310810743184267491709907426739916885393805372661621416083543200475291640494443234536196867658652233143874391662123943888264948604785589753032143832237798598890017356586237159494962681988730852095453847586440323517722909277955052345152183888367925554981589486444859290719465722509992926687338577356598663081001523587960039523266096214685179428931564233539593276013803214964353520969906080327062719712228728851888411326295980865687637622985615793756119907085043350447362163698874692602521372051133526816151360790423132399807304786531872921986007381405283309622756327135242318348352765483959149087386590409316186525515490872546898802041119440414125400758460728427219249037079612298703349852114719975926385111334501475420944749616574610334613427873576271938719518281287713579140560233306557927671827859079004678212732556755939767914789953876813376708534426217715785730528696916756069450171230367186848737239484186698268668903929027295042963704339616970017511006699774617162085122932381861296544130404491260440932334881516311939604538866915175447569731004349127369510609866117253248866155820486767726590719268232163416998493725548708509131317780778787748672515348024771722695759940939999174734668674513441130194861868863838234450563420385301406577822350527412313632888522092468018677290372647121144102502718978356468288147631359744990388398508961411438783462282715669441382950302214917282892963291834734125888029652939003613122707842027627167556959755617088198529356195567988125373114738175592095999383799754429445237155511576619431685287954148004842312641467494245897722884570477461358940115042904639359778464782101761847556383238089320704248259279129608892583216513618836687562982151791125150292651559642887638205742581266332683450662185580650674122118480900646154459642060370511228252132179283351431289800080090880006788883411884525486279433614479792310295047876823359109028930862871648901903234843739511878775180776954072501959712568581301682476612753886783445465156277932466195260922636738108152186789102737298803878922530797435801616205448416150317327711380135130416825891450002307064582073709517815271108509105096995393766070244349824928126589850147383050871018924892264852610884438460971530897863467551137240257902666822150609632137751713965411086499289740923578209091302198307185843618337226648763088841749686641749273986039195913427156280305644489510187547833886348803847699400874820946065154686764188241095316508458090404633334485464320095130011440348311037637098835285770224263625715460294756526287789049858914406480461932714710203955664527089771163635057201822050101885706680842358071607559254753259907554088669553366025907654886424600593220069577402456070404609136619818509652678561465641366443998210032754882940386469604964833223815028603726519063312920497975101013598467273416354254376135438238313541402224756627208207177521751807153165262775195913834025274811619591867433760947235444902571459016862489747830487038895990581014173553245275302496750887012238466755277580801139296728579890166192340091019340233716170579793800156550148520618119148898486707442055375511032558054561926172270042473325825584128061616051950359952033957756737790789355859445841661131455197913222676330695660421062267217558553320226728401791124045046597857389252579718515609895276072869251531633281934136288032600261864798461698377810102015390592989230099284127414283957294653111963588552763770205827526189029753463902305749713083961821348046149144078499513404896240342279853364459332077190565869906433412388496186127440341205804526427968062311921359494264867804168619811014169426337392137951627711689496168694455999691559553545668810267700603168497554011442145846968215026690522872544622913389566948719324151703118958758220426704836780389062623950132507979733028983001703410778922558613432826943431175966162007877590720526307526809856004927667163353656291822576142239739941935596964248071010624218073927622690889736458236922595733783605476366327134156870716581810752373481496806612500101711638312219263441853307306198807795839238273521841345598407994544650587724601099272087961190306476224605229245501649818492491648788819079725008843561853517904970353311576449330921313968708345337775932236565774753338463969074804162248405556470492459481669394094136811645052873058781122261726843754358306918880795829691583303193796832811890192333341957109940849664084438444768700191549832537134377749551537001963013620726362950756158241804467902606452588787771145082469096294495464467501592945401435824152646562814806775461243950312412443367824154525253925541515576460849721977902262413984676753292284842702471485113054222210203127699396950603920423154222672360804324964667886811162360790623144267285885799476392162546705918289346403861428431999190043040573009432438811614647842524649892118983662183380536834051346152095459889049586885841090774704945188458482305496356660672314638057542968961991540267990992184052047481647134933643187717314651507034202799068480683866968967278822009051298723141169071794162599920633987037479195099921959654852550579136119853748157556440113098373748191716969262797160091129748755379060252401847938745014586365430611298505504393671301401056865434797998164804276685752554402959408272378996127804475172606019778725158695958214352154870810434179466975921424471759348816097697377213986314240054875071120394141380914650585372496863430164226994840970816868321612827479449731305939522048827978532167998001097240788187290155246483720427528369916485947483782336344653655716375585608897409110642311974994018497357984034027369040725912102059140174981227603992216834823222510966742257105467136634402359558480893014709118448251206051701946273369050219317610704162378832485239657710307670558177722527155916105747795324348216255946088354671430102733294998180251450604528466516974170410674979757145288206307178913856857762606026595273740994101139125350356650377205078172014406209922644237435428857744748388091033011126145013157918288826131415160133677759880504901648382998725602070127954968169489766753133689444715919334062253794218183182512774611692543232964339369609083201533964826796892679807911638177124620910699368133379845761736052886712550182348551153797115536821870254650338920858124413744013018647936201319997841673807401393055576787068172197306416193771637251771100656649857837019669392822717176094395979338377669218584348496325387655068731727953291666933955403126591223951424162563785459980633843289571423812900089085219933899173439644319768905241381805033231427061466344942011551218290222701484187220550719287377507554991756260165184502419765648444884567260060537434614748755958449550224214161058401580674984007495899739941774516917706613021350812093596768799199557156921776373050440268977075097925649090262879664680287288456880084760540658561586952410862131217510883607589045455221667394181043732222615076164597440458686251724450760016021589544551837045616327176960480217894795035140388218057600172883315250730200666756505717778999926843115705191130948301364641722658177978181552527642053908045451763571366463719244289981583697938210252802305074514283826342842800359536003493682645207592321975882830965068698055959162127510627085380219606929771316242068450455811658217396146188411772079016468220220205773566687875486192725132320862338938836003576045242133160038019591567595705040747518143915800194776052556826724280597464004649542566760093206417700807846367456656318676884788336017796958267955494615496529643350200627337260627939055308466333409839728797376147066423634877431046401536659816208796033685872026636834054803337240095661122120346983515107625895791071600805962491804673381868375521286190894008320703960751080057346235997840625003291888536500357033760604756505197079904219594629947359500372959076391341303344052419902426345608291955842478847968920877411376822305267429896440688912101242422853191553062283583411513092036641249027680773632165132861471060330201745508506747955163704537922238869800012115096242008686267863096041699119759361445564316615810514128590800617942642488000500869687008959553823511821280717954059387715520688576479058985144934602096341373605184163632595789191346590925405967134980782671365794202222037432449039494426166703863489757295416192019676964816192902062111108849764777793130202361215501369633840606102648338928337417104706824591420956856556973043922460611479825277150208918320126672490875804823205255947749241079023108273094596092387100491468589984706335344447928491506771872348605137368120981237254965250920307835461511977393456576903443528217410875246921211234102975005403237915679889278670888585972598064870633747398177506383787842159102913504108713162411292060733775220480995788024499360504636820640945634249734692977608570382110783004013338138707715037117996882098499557781227971761713119772789414583381397159499811393252551465524029125338398256814834417735341389644494520296311379857716113258249406889072230042679544462257481696294897560098416032870252180681955650877586231270221167490714372308462222166484062838054161882880097826196971332071411436530719756734378946350981842370207478329313105256020511511799831276560639249072966451002751472058141490754490349793460746685372389735286945087900560007115625755145470779269105001645771411178502323065561493929272539033579894710805195105594291444825738142128996721479873762062973825435222821919828849665972277212704126291618537510191706370270349386252448616627767996249539537578114973513779920155347728900386721045871859455852543892210034295671732765840106701661212463952781414184820124852967469014884328379568709135275683908803713056702301070248419688653953920864698356684509191614691193592519230592916325588639406105473425108967498026613968189218629245575400534606889037928496062810926717997512411763675807895360142643173946054733738444973615758886454478968686651651678429727145728535143527883308621953830524675764740743513704141853197198272776316837381064531043363656820660723602016223188769756688843143027171608905777478991864970810562120730124286508167837936589224390100306627693171201816912937198985047550673307416414481549035114532720199305048457054227659516573176090005900055483808831647988302677785477368383412365891643596030066388729583684419119801839379078016581885717998229396948137935007455873074664427578149642741549000254480026545516594347402717120446353103415368742672935705282775551116052210273170567603993074032621792436884754308351224099888677609131052865248312799436556472802294876257323051918141975356913011232515323824154300608517169875632595331613327972328848187407333446243963709310891775222225178698996734371502838484060806304936687390727675735564743209536241909432218556610935152397128779701624879057877940032920513260050121628350273416195665662396885808512526689633190921666071777857908800905611708655205071364602744188754531404754688883449427025977090852879777248363470647131278345452870034994587921607769966083649844027760345230711201157139147088274132304936706504572242013396935374299561483388470168648016023833927597565310106543377199809327551213365279967968562880290652775696241508998419194511450992041873256049806728112208202918801016365072399143398733450466782683933232286668793935527362377938194079915144320579979256204870762143820915710811921836791183020094310368661864826363932597541890876542863866262644643891387405809046423264751060806729819590600930386529342827597935916837834611431885043094277737997545711160702689924432276760328615614074498781836291030524345123529376312225335224034233878448321030734505655765803095602331515412873857887181996276641699807617577224563263817982142323557819655849796788871050887721335055551602027198039933427589721908565610785420997927711387630982543668094189990617086489982961364355632426691576712789374466527263020357353500554450683901665172764946805246611461058234485954602856941975313156737719678501611999824286997977819343593724266212489909872785387628606580779469991841699432104214930167902981869931174231853290485475712209629904592148658573453980352942244438384783874370641801917119286350807449606554687650212016735896000633338125275005710791119921786324416945446683127933885732495061119524559375051690287562166252955977562276128505282546085683337899232468419582241413943879104661524170912173230386432476011909103684514116347112614724289671594202069982956572261803240591023286261852010595359900644243948069803782318487954788655846469247084362646073603037889917179167422709523410668689695244866096443831570065554487825044129461562207763264782605481719534709525678849010324437501556586613982378453425660977807635461860448991610965851141328966538183407320611825696627701182976977376279374070132586434998461303295193076379614731978972468513823627997285827468774035727056890915704640187703638411075153359898017500379109248980982879526066415134316527938378191218646203070343849166088585790799385049409125643550390703523179112518587047629235330015741310464566672763395126051871271936480053285848181423542086312549119681265825288461933814304931030735751475571430025892306247482499754543809729535242500630560473230194900459783253901030485988587418515923387268836232989083585406968637779981278846396250171237759083245281514655846895676215749285555509885228273764457154816823780011371390201517988018342471044018003706985233089841824491624102762711154605641482327900177417589853632637906769574111862840301108221003547247280162248018413635774161197910273211161459272307153680684303053197426255089314904283541306757366391310781403695299940937361036636642745181480412738779654871570628363038483080139457827788183258681973175674323009269868775173797121463021617147342063429951570764739417517224612665905741566697099614843061784032492429179704653786352782871660282421647680349392072351118308921022658904557117117411910321922604103302987280774455623109333746270828319769487372638676864762579555221671971747947638508824191658977990423687635569314285718236902024103948707566755083922099865561073729418180749767035777001837005146805592738187395325665654747662891358147777490760841825611976283804375434011394996102424739320714292867939483428700770343878618376529715217391893500037131205980258295767422824008485745870814130780992853527846879965336854465218446670628522097552195146985227757947580074402458224911245322985105991797911567909740418852323716329095105408425045601086721378942863532615199742475433160235313003499688152299738158833529753162117185224417299936251725707594285370338845140591806969956953242186584139389121203439691659394568684970029719605458240742726083180226700696040347552236078382319236016310447486167081119934007315889008773760151974103834150415154530687667873600406422353750760018972829413802392193617691369505822204996075471060059572873356573441380745163255363981731747685820419941615902761592514105994456902877790041690153104692638252497593048739357731141937769625128909971140312013277591334605681874491442254511526843034897475607809611430913941558480842802855252328992362181035052927887649483225355127498189869223130450154739510748489772814528928955870557418419877626575144399623752899251349997587914450768173734166631717749303111589645963997557677832756642226556654555658200017256521893424080423951495712043500607594076447447635820477630402001241188415409801205579077304326763985579854382692365716560390870187168889398827570856333917510781386890727619513152925352311528939832297663094509975254823158517380440912051517769281174679271098242141847145229777797067919327295239287136737163075659188474218059297979522802872936833975733631976946431398321384175819192722760406272584506147869835514873033936048117756398592496983851536194334828491910135915562267715324493493526256684581899098756049281932285100902586399498618856618230962740062034951542185588319895484224385767964733215579055904031134047528899372720796852620896879209862105847215306511952369950930813424732779643120517061795582156811697194841874873946163026279543643464685780931391667502404450895933720344867275355867109067430882654640607175968235031559001399692031926095706213295245423042713963974356599410812715630661257571627104185839732810174674707217213276190341640441450348871024897229787001170486144855606713657204295447929282100229887831725933057740300420206501880694580136620838618682828412308197010939752996852884434192389897055073782417907402356970802048121467279980748035599432862102806913801396444641600362762995790505881617340433396150328975436491066148625719534364536514383604136478011244951628452001006535030882849076696168959068351558781749438201877994352399787085846125033526568380292344848918412379457203270314672246690608300938771440847291130470432861741405508756339281952471447651475955110385197516709607907426881129396013274274867827305555419336200327012300338220757719799652726960553570920887691385314775966505675536093414388358236286205939890867237754612101836248757935772637059679245739835118127853325345603061028394281668735605050097795948726913531778316400970698526762610626831292246834231671460069963608313382162163570518709176726889305615153541537066409357215042618995303339616168407604853494274272716277369315196217518155757474533426180722846111623363971841867872222637562764258815283922818622066277626754271189397141059668805875449934241292740173956524156073113153793491893355719291765569487879035560307863697595015348506884743166551494103977192748587674037151932522713926284188377506664390563431043449387323023530972737470399370258055216912434668639624126309597522786469012500717498583186102703396500925723832345010465788253928273952435731617256289487603281054585718725055685555418780771250413814138272303981133672848746728166087174509797050673988252886113951787536336157915886248049842708897114794479074631703851690720067527773207491977514236463186625045373597975656156553455183515827963011904796937827128874935562226325194925044405922495075858903804534759436469585023008207034122716791151605870732908215276500134744058533456298181329653702568432560206123410865749834453659568772050139662859469851490525921844331135630369308645471775351117950513389703386024686699916491702660339352055111026638874964041523700864063696355329295302961631928214824141108680498705147197210057835026510971251224113005297929147099246865687229799659771799343397774386454187818982017840126661061752321772364918768261246757346418687583998646295558675012227858184092035881945078707750054374315694974294338927824208894933988643717975787634534771816741599700027479540009735329133575028467438261820283068913580264972275598986974863830957019682524933045551464509721843105436709719341838988234556797937458631112837861678633668631946251736995079222745353952312859765076060486166029518854805785723068792820969112725202677779924965836420458837765508115843712945222908545433857859868010976263061868328756745078352360539916445851737998770013337193513345233612046044302796680804093922879519057707013531838581301557839399220649876423664918299593191729843248072926756048866585891992216786200196496889849348111812639513876234654254980291474672672733183116812517889613715373379861295937012502350982641942108787087997585229107003327883517356193901643345339282664783070975838144219913335351713355808945274395277921493671229504437380151091537439738744077022477403748047777768773275345984960933690833959995345452322541530065620916624297883823206315824674354332891309966327532880771156249382877104787886045589525964261634816796482401413929622443215567207367654150696359812916989037626551029749068612395526205841126461067284961074779243222629363472739847725149219265571082337545342879604853687969149875252631341486262045212515909588796454372365531928509847722974138135902470293000109704082663968797262458772236266545901680510103031223343248217160214257978038972635071034923975139939354611500438572695012595433951185250829360784605237786322434307376185117912763177915776941626015255992123361958295806333072204357769081963452443573446638002226493109500784675115126443257491115017872624836138303303685702974096950387304152560994949217075819085384226317586544622401037638216833167340967378440205890137279264013810946086412060483066245089596267091544727352089372071766207647587699875360843418347599052513707707022289222393227212798681933433441988620062603364070651410427692159920003072675586829382678396849717273021663501713756975409169821652899818929291396203896907374426942202172468171594670573463133003323221182542054431784035760728554261078544065324882447733290479819267070048100896661098397381394022430814245419518315370423207989895370983410192771894411394405575756526309108731269623873325039684069989553367049454286199716884879890743960002071804720985815800262715425330072331418176553823227617815440040617312929386028191672990173784806044407475536907366960964491210466422422462112745655072020659382654026113101986164160689820743703832715722986683498008680047394866856975901693314758407842307837554734206609436382956294209024108025336835765955018342290621640762627554524227812554896585407565171119934374631754334489282763631758672002792854793566084817773449634808399408452302428388817675481899663002619178441489589069804223721320610924973507111101014165408536121457342354461393179315965772714300384789702535660280924546527851407867222107438014720543654556109535519374131197938380458798060589749883940582772068740578559439315427538592240966016450450951446661204094343553908270249799793274237096023789274650921970158428735137168006717153255341347033048605456472909827310967994984823528171484790814525195545271246448833117686462075574579337755711152630553276082629421369235291310443592495662596632961040490191317346009237842460093884649511325864647854800143271341275943308309911827366396013832824047639886315056010547286692965364887327035484647584612489933312680042971660937404253763353218838562816394005939037188864056460270776922385938036652631871851147803595080730574984064689506552712696493112591491925372409494578398921529396924878356994163468893245795044018648949624813120323688896126476128295238702142885341110165141877195711035220804514016610785333324060815536326449715702769527617500304974866413656689569122714886702977623102044260163097830559067780288126397838423267623338886893849062838604195244506045673458391044668122639735864504604185990231558226149880260593864207093854939002169785720496872926192254457958525506845198107823740734168671140895118973835801200993802316084734328348791880768650385206841608197153737768204692178084659199789025054892423950071081579312846570527906277266730147816829786983459830963516054815889138511022114834387882180167133031451307653188347643342595990009798949769309154699871830534917358390587843323314131260674833601537077797186441615254229389145951758334121269189083040597644361906950591334835082123431389626828682061116132194479517283021887299151024422100155386515314041935791214644941659715444222985462438056347021671719446767325752899102956989740298863904777614628302309481678172384634485064076907428100629150566961027502026167168027081905518433937521927437306434065536554020855034150753829647234219082646023030595283629848216266315411462366472672417881239106065741547785622077357526189459369854809938820325747166074719252728249135186744238490833621716667464023458968913180865286251333732572526685591290543127810658470108413145236258552759268284392473955404549839776247884216876809667490450580483169870630496333001562686757697459449933915171166318575486906800585539070936356312672700284112497774079751869345119216186922577760027593601889877627703429672809260300961191569193794737305844438806543068143880985491522619675933455666460956227557229233134155513916280501712907808878778682954934259920600324599005808358018908897673293321552799582617202288884405684869570696197284585089421323764789023460635721647717127133007850197507000732684465543764627085957777045235703241605455243495975832959531041293633485162823326425797724478191532969872259701737102057974645820896508498636140751584444837276311589624768264821051705711170652429423745894249796655627156667352814100163769912560091522817685472423329922838404613396508830375171985711065425224185633809819038808823650607355609785450752830066493547815211488127957240396725940736796303208451593544775894848049481567502073532950745129245470389902907496728006342969577641678906920648647228182559271264586637901971286290675586770137803731981956704258941219986935796659177786410193578996765003161525446582154969046082334340885709143179854578754247501175392248919326074514470998421170071030313872735291917670601127476721529616115945706418088516848652223147009199916219471229135869648614337307766772506436149685548391646049111289723306320387067881322693436323655387426465303125788521139117480414756320930276532684675692742538807304712200078490192340105082860324610174640185018529114197261738058604335490296034611749055556284011427386969094801921884256174846680407234935487436267704947378853334480514302077293934891707112727961594504638915288718855527718261999942268478833221931137598005635180998469263552642548945656414692178034626502380656772246480959837851401892670684567247477339095813141091368766726564021677300793989885209425175240403291391205745322439774014417231732761327633385659050754674578566766406649599215169567822757627704804139042604462284551847452878744219318600165523911536795497939859438456537056278795484755685326988995250504566921169465500881187124566093031500070778234971731561419451082377030920823583079206969834685382153077022983436884171214457061241527040237334098454000935701612935333688370165476062916991099867551096224596897020476464603037711917144285631763072337267486982422477020942421231056299987869490791276981244437929432351394652403661513100624992872513553755657046455624326368650608348357303613620359060356970191042522221958118931622637730690983480983287002904255680169612145587557820759123858197023992208970459544089629496025461206866901296216404322567411493181914308722697048101568570125583740617700057921224083727183064803422394040689268569986861361877507810512776962828068330763837873931924358795543658067974891340079220942149222476124769624202940774199241990267935384889862138891269797315371699914605269919260017689417460863966112600105433633107739428188511500493113543119198650578158713690071948993409391859272734653382991807497389173577697786445183339685998544703669823455312306153459249436367927589998692224557800227089269542714877329317453843135447949646858089733939655530127863116108511620322897395708994406107297697542568318290321841066313863556140627617237232292756516491564099140995893076322333467214917562527006753702131945265108936049292312954468840965064564466207061872706742095496309448835520797930013262383413589981343167278853017795938825788850237503179438232901889780547028482883571979800237165112004300408024202309409472058099169800900605281011088601043458134070987739871475759633144189964766147243803735727872347232842683410396174899697106277111878029760106839727502200401986230225496894717016064927494973750396117010756937909859145000501441806486514190629268978484341409323220454978702086378978609628626683067073765485975880885877517529087590374300739393570705039609242778906685848686245602262308916909707606022587964096256336831236660177263341712769179659193824462295951566543858002175800797261454708908292650568776959417658653401121815840373833660573804058152051932143978960455021870616711724040712469946964517924208238677184275926255303200453873442922077393433676480832869500051552406789503349634914801441340621410997790592306371671746965232829112427333795244997399400048084792199020714156352096473760574351367158516932598046215367098488188856532581927238621541348484625816155947170536703459263409905490330772656196063293934666747518497079670847919492339700979234498323602451042440292067391715156993675395494656370027655684069441976894520173400179236495433063049320353647269368999138475352717313767626837508305163932811495009619915694460704411058435675917077467713497052644200744615963026827312662652194269373007876739361920997360536226532949339219490116359183552027863349202801130102327493544788360626130862696947539469001315075624886539675210004269657801987292290246576332248606270549780498305816897941104937028564320085130233007000416148125637166037355358327584242525654875784560050555720803308040432715622810188247561085537491745833578832988189468768260662868772321248306160922648201446675165980955099227687018013591716985905404505164763772993831710704309538770877032368458634184178131167207473750742579363144619799401191995505665440458063756901375721944126396010737283843418967764588542912984359155470472933080697966081229427701783509504698892684046400720214432497054935187427079104034299480150142564871842486198098748791880812839444893881522475207514145683069845540200616700518204143803635622016916028184181187647744324114022106710706287506487183962045089728228754347420520394919008060335444769246819454886101956826175468437710742439952336364001069762093885296222656578229576190525711932287514152203234225767496767114350072093714057997933507457295120727684075001304171576187387574277331255663050393930079735896575931644693923702622948692110698295441339393243591511790543074914307925089174237645453841612614273526849723013967730006940759783547567467146211378015610709400029659913387650629801643802330769054717155685548222532464692095857770233880128782199134914014935678666710742683764543958966312115930403246957119053919290501475219500388147425857660362265702461966953535487036281805631032237619506995273279728656631656902876206579831502054291855217541614711405659840519697348038622769103895489765748198990397842252950637461671799614064415534326537194743052510610195848643424942591115752704694216110034775323064841665919327058100181895362548622897306278509198224411200475138941826874047744822310554537835071334721360444270015614134607641516358076077023273128404021366316344664806608045017725347532288369779092395023564738457537196297393584124777166421253996604051636691835731060803326991598344148900882989334998341431800159773805903685814338598226805043044650638487764859452190596317963844427343450197093540911520096293752069890534729699269863370599864195549695219687506308972470383272106433691167045003383754890214084372876566498551914704329043367649518036598452649401051928277096137433772784670731196266686295188499619614863952332514656695231650530964220894977876011939445265181310687431226437417787126992836894063456625247335290112957062127349145702764892828616895932009395748028990424856171192265837210505079671980454702235793754496736702376238011665579145905534132678615793604653564214479981168795873450867633704226943886241192942375519769255531068892001846545920629383320362858973699625689664682867715844067791909425954648432977210466546324833151536972910661442477062369403399325021139145014475178515555641136662498084129393274848938481466120333990979558708369393319582514575819760408445847220694594051508282147106340210980691862359972121939662333197090754122507947348090369931596596965634454403062190486537656581304360166379169511452000171631208180988957223552464798996343805734024978958748915622341439383394656088914773247150654694553814311440500396921767925440173915658808812683640030238292260703801615587170292116084887385622722258798437994761845035983347289133003186835846090243175365668278842990510129169297973488178730088353967309542367487321512426611169659728626606392315651465105994199612785639559217879931313242155185013391495584293049644039355990494074371894573293223212093269721014713982386750001224661470386832110198170431856727788132699844749987440044698471559161844404625055156942029815823269916986554554042526562073564066184187202754230717053774613300020791711829526514067819303317698753517471415312267908974978536446937593978689860816696041898823391068089220880597290920896948504939973088524916044504108137628779393332440575529840390317266542724401290528999236052945441214713808710657096565989166388107467705964218568507406326452142194938752838684177196203740032227753489648035220950288499313771677769584755695597548313143013263902064231324271383648994820024095553431114487153252050210475439764076159231910034231633577699221867666549005886633496311176710479951447671022888796411009737861626386120812704255747051661128036277325845416303114592240887434585332616370092342435055570537788294859225683688869875007407967752399962155283630972026671736386983657763044509620405137014371870688873495071971971238611065308027852373018814923997213832128234827927966679173362762358097214337413234898218499724173799742231566808858090619677566927041117583281492902262665244442132829684291274287147104620469706675635303515945986677780512961728016638966140020584926130553182764537923131443606981167151306224814582738008639430784988362705023942469377317988085562828319888399915989807146157260136831669979564243855435319428548911765871341923416437429910423561387090668041797479038102340508714862288988680536101543219085912176526248002330950219532347765602066541430879798530928009887505737401050592330636634921761494323260340914568217020614292350405848634790524894149699922394948685729752483201372217004309949616216320997404665470319586960662681721972023458729016256909353305490639072090298757511691273709812719884523515003514392761792797811281218643843192438923252672117475973178054361888136819601442422577437163260125912382993546051407256135854903905414894166152458305043863254928716528866958887460161173461346081268045283296079977267057206252773862427185615163489414603937471727684178939443061015323842004959677610451666855297174818887781838695205445845474128797077718277820722934322752347548972333473329853999021994010992428390289464359218486460053577341420352055187109737925502616038705942948949455288237148003405390995586992081799906805663435170840840244730591273154781472046011361865036122561369651540997541542145733997367638789081442633741806492228856706563231714407365699221456330964984600455123881939571245006101629080359352030577337275684584451811176248600328601584398010909561587485855101384143203876883225368183422617996307727920672104398310528040153218088673848752372231733667789321600672071892244022170623655718716644147566760793074535962135768228295339366990444858109191829786731732147461912397656456569774962521676274044421579215124899515742940180891591463800687263630314844587519978796601064236486651913060744212791377923902204492320204498960416241145206897569045545335283145122464858608759293122569615275748137574472992756679271577378346840872825830973559400963829937611889620552335280373442050154424827538455630207255013469990621749172115228853056642587079074854647075215070082114730819146504580033052890832906827823418155657104767363360325236473657617220467456385030251279115859263022154334420938856875788106455501590069373638358617141812642211126673054119941591209740945915507135990694810208900226456654841686548418844700417893095590104296868314672326082919876397970206173895689453753282710184873892320240639594921672065261683871750541842062639934178984305193083412521603178222161847321622640733819256147870462596856594573969865266105807606987317760345620152944719356448913841634751321374033609540612508371255850700268537384012088005937087300928866333941860575180131588141142134626695314653601875243535135769587726402140378691214501600051543591654249430894400740927739698019594445994003098332168682157958714333749709008089683316865573629009853598437731789372376034080528688016053604585359524140531335700454558870542136098347345078170909579978871530712825357475181391992496229165757765289586561711886930550582537522910649798868679299225676517825029772589927527717885048168496018082949781632623138661891976803800821441147279067602327138504206601156836262931670948166950475024937510214273740482677880195668980092839795066964846161147878673849324106140659558517903303671217005593656861758653869777219699065244942452607000963456432459721907571152498999698670442797611134348323807181231583588873139640881752749089288122877242311362507633970317775253848010388727095579661572661944368722369227503854910917590493846712251283109686922552825135050606949661324479308299876881424492109104928075500089375060402055665621607976630079664216381640144616126243574618518871729070167138150294044770886016653391462526556755458588031867265156844269192354038399489953270148340804752047897310339612209155889882734272773804785488078398619047608802260531187881044415885965552800630177179629857833489600177360411260343858681477137537437439902647500077479151911341287099647071921622272656830449622126015192124815290618019614843840825219290295250877770140352887920705614438521843415706052339826554955967581715076658037228557528168017669125687506631088039531280336558551808401943302726540673409721957094974941349772497880618776410695274965070016321861275885897231419229544923449714562850167485922412077970524753961505728101326333797161157999006063173565689844972560835728448159051102529855698829346497304377106538057277629937827047244198384989426215108611338514282825930678288519270742857848138902290064486644315070120793790898961915645665776654333571573742042337761047406267835068538596626753349102650517534447143603007694623631964716997725442656193138437982196910204192109480963545637329960857731184229414820421210108916342615383774818996195113252918409069764388558296218554859364356554186332307006984561530591592527561002155647592849781867353971614731350676633557145230416429565905806189771371704201768548164549750599805607608993319471274253437768995876382483116844166401448577130224826231484888633804351601363662874256914701252236721862149003400088797960907648588820871903940282386708134609427268932488438280792712278809812571609805338766970213479255809114385001303015918151137937086197362138053738624508967681408876016101927107233881360141797215382252194177443483810351731119113688417759828564600881907275968526012124795797031379252071674064164928978652357397390205676888298194376175850846092505445694076597741940007473308973184841662689366352305669509254323824368637703284241964519403873062983471527705379544591606389530291081009644387875753049098525649331179533883608010103277064441878969333285524439610717185125701353230109763494847335467069765738553829531521815799063260559599150774386974050803119581151016832189475168530262350324800401753790541645636702547928996321008958000007938004448618422497910265637192461945678935610675302693886530355696808102434200416761309991737340403942124045294546080233292182014211389737092362350660042262046842663083411313115462035199650383555267799695795695501677390407708303037154233650371188740300840038795691519305254763056794635025203892637973594701755829565995889670326628983165916831440881991638647433684558585180867805654330912232915451895702410180885783092257119416495836458269471832199539060487143823203953845811138747181080274878874972942465723226495347058778003790633403626601774708730481153605380612400143475993747565183504525866199446620048899639715007452088103893761271790215219739112942874346127687293090143472881362637858144681274877165896047662699752530564706235919042703075564845719267669826098699082246701568133601472423203928370348946391234789649623441429442159265846472491767940766301392370322846924526941809002190290380539489860223190395064453841546916382764648099656076431825292722210410105657794350190456630567260682399655655167261171380246869207698630363743335806620475608794780386424839304205245115404314420941372379575973029307775870614972952520860659120973176104935301901086683758511078933731404668602628917229502797682471844230270900684689179045660114062099458165175050441178570169288998043041030060634581589243540884718051796018930623860500504451144263414426762228527798113455286499941449988084023781442444434009208913943207644924900444629725561588246986447447619763519194246007252697964508294714259373412330950123768522329557599538207592828488041746211895143673093642716871524603238028209668305681209502185014339938081572815810327764506082737102022925615933261142418700808171946474891861669420530973922611522883865266672152332057392770610049989010868729863294909947398356166603709172882124176845055445899074851933985403898377631606936658235016403969470592821312949041284437546667898429514732663804555293443459950280934475588609721304955043873142198956016126398071345196768828364171044873416257411614200336551017774692443193409259647801464585392021773279050243707851595565539004351964391375715823301008956609497893129586651210138002784875230768762553667816505343407157618859339125368275932451864024546960971852424817103761862430937734700286161408266918297483415489444682744619040334921862307955506639435210383530974940661561562309152650820139359192979911427777806079256520836151297349417528662749192148271585086254135004059941470820248315284923395400726722234185884130498115328914429109004154246101172460992268066652275145564055910374201384184914026222287466662834404619848343353617857875036352323414542010231276133590365837794111434841517536292862041995009920190004553673205079459531640351334817875733394689955666342228106897283029850350337725394237931426219793787370082939635021993135253154765440620802760597258977343116971128240642074709779044123953309563269430777954599844631666798292260272917153880279045696077778386648691080364082936828899959111624693360370363673456226127560704321111870302288723459826942802202314696973278801766220955320561059556335414135810400646196921035404370256060255701781878604956576172168535124611351561682633116458251776740173834251699650504913510481849619194747078740296629595829201921590153862955069516133344486059682093136486607272002159720837094901448917009637976749863228275758341460600543099201413997520584256809026194610802945649717689739360085645041498020540118884546661097903025902941716056341785430177517690126312551330390837276366770230833538776799536290726258516718716658723938748720450795077004554624790076509141500088677422062790768713447593268897867865765763706836221236343244411264211192553204313397537156762998313157607274685495538400794931885517829055555033728706696055766201983622374289966255148195447099094310580571098252600320955377334432526377780095578771367414737100525663044766005012575637411607219693686930759760309961017912118766636523722476590875225011005084782760742348282499691304823029689650736289696820044026373049519171745267971625867982065939095987146443401608742458158221195877097695159320537480013964523546362155385247222233457852097208730663890328252576834020228166930813545804272599736808659466334661451270471771603280355661079131543969515616564736575891022669600518207184785061415901640676510671123698322996728443715206371618649939777896643045325581261617772146798149549516083515600039168301081219948947090040964567826739898657835865819380400160641741339283401757876813542402459221710558532283698607116332656147067999749085649090444437652396520409100315843198927675587834023722192147956497404479095183836402549915789935875168071427106531724156372076899090723572604726933305324260401326392242811339497687821360081627143404796506861968628729260703336428709926582830964380643489262857239171746513089578422740102057742206773306647278985217617754286704873476402955275746819108691130233973316694591911121798465356210613275343488940393252377527050894532779982903997555586218406301768865187155069704643936784062145924557422546339610851062458181511757732915232689424887917968088009287302583189690205442846370412426995788592478182814272309615132656077224483783015491946575281705558010526995477663060324312647332241102439238864458125857821192145743256605799167457852747617616323892289905527704568534342353357411956552454742867129922627819564828192797234754929773051028092074016813763675945250913176355539969944419134396754201984699413381218591084443069568974462447385386180357584016939332179228744108289182956148240380659096316232181733096483909080463892569492183667878464124489874890838031255756046169329969371997432668274226679136699586377286279511356566830998311506234202034861604745870911628500311442747290847516912726236244595798304363020861740844260668043802998743349136251431184376140139975393619054557382142108361001213908733345728464378590691341880143997832680091722691539077151444856627890511960228279485283157352481489330474004298343882691600875333227155145754585860244841460416995064168411901896403619062991903990192202249056841111334738205291575781355979759288438064593271510157404747162458813677744284294027809890908788256148912569150767648778310386084736925575297328503739241680641788494896919116711519904524569613504994324698371895456077898441248177777166444249623088060597299759275545002248692262719708826510943497208768950211956654194791532540041274993672523430142595248922044882567398181082989938383528587375642441847162906597559300088156710191054752288850746826796528018829725960331541534813023480075206776796591505531927723839716838220909653086299285763027025512951862284634471754408154655757988626214811442452032843123926506506800075327461641678773712980887527512655248740084403900890842443346256972618152363808308485645086639233148227307504726537038966804156753067597112359923531238328467423694043025269393863172210574979003089742406349776934737539944188951355626610359762481743927697929019956408650518423350251423072897271494588894193325419073993493629769859278265005526752004195185647407118323840590643291573672326969147764434283005846997533601267693263786626985668782240094853727454232791827944922288238897211274108486524130124129852007785122113506218865669338376895558519413538741267068886485661539663062032807594961490231248869895662229436381072908253134100489944228609585765147974330184598381168767143927877808494587791336979027170085057208913306888067190050587887167144727892583855722357277331942575419224065295556817376048128785695431024152265608514000410866757196296335261612165409427647916346468363908953238139779220148024165886026210209505807929130043876100022844038290781509934956748487260296604305417031572899250168828656298010437448099372264643312781951078612798287354894582320735587958415607021407031777159268118725962583698415050205076933089239914723068001730019045481500331034263781844670190653309457169213911738680312813477254158101046696197268249475616670364884463188518485939259997943939135384734184854035318760883644544403062000180276234520672007640611777024256411949718899286121892194161138247883751247186239862268779628541491175450756149926883448533622115167911447120370499306212193591550529629312015910458092645698391788363730538504778004398397952267944903317869615742007102951396088219541499239397449851382037766992475528797588009752334418323838083721941018734845801701766662641390864446738695272682465537690404959116536684201681209630238873017118704973491357122279427531188217483359253903867129633841847125799966291011361093864009076965014823648155003998249702632578729472629273581457725230593594362186071169791554119250185520045723730000445590602011486770225336936854598660270622920516503041668710113755898791390855857687942287585682663935223558722127702464746256824982554309551093389514528390299674255305074618619628033376114881284633640738209806823206802020704776283742532591933089854080365233859434427282941821709267932557383373918411328023384237967582531982728561642889619269080764826281969835887003310210459293740702774463967912868767281238289344776992716367175688665113699416838135081992921310544051104942593223752589816978490266193742437070002499672903716713075305637932316872310071437900298348482314352923809919542470952149167497617753039566766131673206193896045891034061038795286059513016770243492733380284183978398346212691959527367016115868630208772805273316664688750946879024802125639742157994818649460898442514767807802716054926643644973316608806924004452718193999844114870331843129597694343416738393804659648830697955792428827365909303338081905299168095448676532409150759640175793220829384169245374573841923156994411447430249503449608887800233477144964927608294414031592895867138875222518659605392772042797018803192647339746384973746116792993597205102871958178805019730426889886299645579838453718764907289052892422374242188496203125982834988768430029453838303212453782013189172302798152299788856511352012813626856348676970629374635706453834278961260216886939431913786815516636245453053216898785127030645669978029041794510997486647226917947851015224500972554736217392192715453123515598653348710158857973813879013413900325553288638426939707337815178407947547735734692680300124697014142826219602870492951788646837765691474775417137706451045818955709305284930502243687077926452842099983309182353805814140022084521222599040298431010096840220184889162133495666305678922900995194960791444940930894116248442516922825583511219459892941380876405181336213442417336831429322942853023065363826411008102810409978568398785935660075961806652703889467053714326904795508593741926512030389265660390063491155082601911712945775602892754568823430567746120317001039870068523317434124557445447076920688552295285379918883096305107928425037788216778711405857467012906348104267803156827786552456276197724026165811801055160270556104108760767523624123196822812043622821626850842078906780891166108141178405559835591941296600193002639375068258542656308710510047670291500736839965896199543904133331522326688884723831625007308735351063091973234725131885222165571439519587138213221696190814204818650974551050080343594284816397569079933778739876859539576474867654914401588294719135772784125719757106543922599399914461540010058531737383799078562550032966345660784389830531475973425741234894471750648840645094793817248546841225824356866129269020608452726252076808233214961189613049546553030824242195987303282728692604522320615905279657113616403861559945447887562209624377310233047052676590628963099958140760588397401611527130079698220248661278006258395075646824439175894317195041036959726313372080428378682693421336693556356521970213304859208243700780482596409361463850512020201086164284462256412450237227557476913409774817249772987805702657289415471357374373745433192522198250799473827287785267603588093305468919263453718066962044102235937629476369205840124330595865274270031246953339787110349225787568755833209703863799309015100261729283952538071104634675884183635112172518929963091340234964417428958396614467257423985706412287755003976060747080527470569582017432341039781860036184858831305916836108358825536558959548455332602295731121977983728427831953598956703860630682084628584627560245131957199166875021644208374915805474046301161649895276579905789560067573949004716201509700944085763076019486756193359363328063666200914439132906787553029564952357450382751804873801881194788348087194300064906564269913645049468362712430246580082383118350557184981981659930997980728586024520944982780487724501347544766051693181991356384807441207774682467529533327006313933452098942510070783702844004157445323754865834700700314929603822307684684221303791052297629533623414904848114095072664581668797321527473577290734331537826651907238489035208374094175023016602551547265305233081152834290018271224953408689296873334369691145702706631939450760061356963012086945284294158247743272497982671829623820914842596986712448715189730760328594734337631747084652074967427805491505114640383182273508009358751970983702617612086496857423744570944367746612451505113140520973199938473415940706593481241457105307519068796722017684575570876605761685970827760193200194766938077114742568206274382819593386069854566219931007517720084293847996400241449593762465249940801689366813485216562915527826830377790876484879867960265935633649424831995475089245564994657198242141290541392621996700741947882137017410564420313554043924806125087846990576585670394629364544620990827192986041417305329702877177512347590500677468414316627732125151300721712165991811910582401045394074525975949812773004858309196429557465580157551808313496120734501958164135355458436973035745381332512294718348815075259668490947835461132176124488663817265931136207899261846837761333143740346189030984688806834081332772056868093227396130107889666438153003479577681136900924165606446950365156356850870844940562439422935340084193552407860749084773953535066011683101610299720151525915495001713544907722652701303306925141673999983654371249968820243166157329211334216463514772125102618149940686206218254536648553117352069895828928317012578235873172824800231677860077125026220522966225545688364661422684996481539909009020059849793689600933312824158882341774368094549656462466197131033783542393516188625848245291660957185138264633325380787202777234921348530317622165408658046529800438727788937557589376471924322111485589888430106787500841010435925727290602147511823655826889873477169784588957120597538830665311633470747812135622989837102174146153271394711878710025450327292809655814851128576528597896884158218329560832978407432252695433135281579716278395331826324172859360935464442042380937467383748319094728981915907799099903148622422465550255619597430961528782277247600127699926064549798507267470586232561406220700263224051517667785849960855291908131837983127569417629033040074411905419074017585705374054238741041030206251677991996211931283633487126495533915848237296354178911370564104970190633336735995166833659992625214708688464272420322118812606672696473152025292898925922067545036538757925902485409827654851016397571603926491462600620614267946191618527670719608296515442742671233773944618502141023731488054167960565447084988247178926425537965022017632900190306873763434510513368486821611081331461641375913508139709886057315145320671444856612348744651453671489235869645968313458702966081840400600659786461924879971945024928043752991579882436906271797241796619670473575535864568714498194500807386161079723248956621299616040041939259842421227315224480762950308844168720132839789321680933378761294522691724555458733595494998641938540826387632231109995182052064922758726963404123496501002612022845745585862278850560347061656012145822777384000679236280478374271662904369873580442574953149890397916562539782920216659571515214378596000617013112094661629808875599682519603468278992407016691958366652703123555544040201758033527204979239225337501051816349241815626747260914205499139625658401341303252578758052166337952454917027032613343922372433178037284934223347913592166203611732513218100852776512280284592430793625195406802457547820508529644178949410600276649918076466340062103867991276158971562263159196938200147697226055752637014302342042042437520798079637575452017014437733240633602774253259357379324636652131959250822546197581160896562908263036637799935299926025031900092645938617768837110902037798905607124233165280430415239190850047133396796396707219065821624433357283334296857257523028178548447959558053274964995881687066812347196951597500084336127439390413059315243872908225977049414045237461337419081304901252542182666989501852945399449529609448213360410138305841344726984346120868176654192744772658386895171653979322593151092873867707874560506411367238701749652876520178038676103551384001319501682529358758347810387283351052547956180564989254814227128579977651443326312236878612066615505145548032222574588297970484322538250774313565681212548667098411904111807630091508186117164259890505292458106050957994299424685258652139103313768413868342959931816952816178850269325508897351940575031202351247068260565610862464973864710432951898923963963870219109192213842950400260187280208920269095168211988216741318396941188817063453196809442382572647951242319242839335076699411373156839342438606778730575342366483579632500528415618537144598260741010088910063532089077884285649490031468760360333081058672781518673302401487230966273634870798217742111896821125931887227994453986025512989489523038673008844685942935060625882618309953767880383210631125787745293317354145642604936140557124187912327808750680355119597233560154952533469547298909167153518729192812947829055864603909714987330962543575318243983794097903925440221515690203625285248554821634323225704885360413223867723019301536208861795100782503365715598968886524025269478734181302861468306633759209248505532103242289800143366565827217097664697508602483499549494608838825931799413006230884740462646319712089176245338410191901918576642759667259518638327294441498622034178089591790670496781750626790796047255573744398631168696005561774367458194079114266337286216199657953799683157109312065128291918426767180029093419285839822101193362602776376114122355608949512192217747855554213077820076469344359267983447823016064817709210884024083011896358422477401244564015750825902889668421408966704892483532376369016459506810019604067608001330780823616479505988834457823109284667161926185983798434480054326171183310209432587422078520783697201208719776782004995351243331703702804511671470469199904031433526757005458890410899270931112032775676988408525952316188067157330102572795367398613194726304099309206243789340846000744935292717054842159195884831110281016125975946073479351623485527376406185725121429747326981500958234293680963859271061235038681560666224959072747795685673426912730369654768447594994936908328324191061458038157686125300759742087164476878355276966995188619373145567910255180608450529441969883450920855136797327898698031424084848412457682872495310389552455960070960146384716367594067613855949815335756754830897900375446931464973773419772355763645195461247183517779920911044689599991456907059356551617789424654181472429349857860251332848395913530979404764085477115350049680168173178326693763072168959204646190593595552993430619237961462845732195450203405507952943888156241132486300856722093042234223509615518161407143715250007671332362447626728442024892995048549388822547116784595839247228326998371845581078937522245194692643756061096698427220985372701197448750273371954421947809523446312613524539160152828986386543754318971519805243686758598966337967971449058062609445507831973778182395558440326910528519009890478845656796317802205248949337408754569481566859074835250585628048151340420426798873681530986346103458052321237079113348693007017943057450549253055340032668763402227618512033068061402159493734370514750806860344682864335507009957316245664655434244509823468144993749598506283972202751261813383190038510046708206828378226654950208672347748116139369111302322535773374344671479480747411890295730142358260042065799178792242970658428877266134602733892666352995692188562805883042420414911887391292610995974335235774974213952304385521846419578538320112522540732065262468721052007620377793599934345705586195873263418141804588289796930454877583266897006265528899542821374794337867428966040196279359094017328173025433902507745294432925705960230193834983207708832431379716137810884004969745923907111324656881953883983717646551731842038796493703250942956514260254690835127559185967620903946150894276314561148315383758114421060384318779223928608581559881846724133457575925275105228686341474266223500752985126498455021009291561976732639375190154788200431995254088222928593702984980270920388761013371173549087732160597861282201687578891840304249865950790136710145257738371419432672357696236341994774207467220162566037090272482465255197271222809221987640584075637254355002075382111413456389855048319891668759516830321980252756991966788240473251432496988766653999235557153653376981016986383835732581934425761229765984158012695118102026032829567366941444410262486490633994784223538738292812126580067552287803336435611559904107594747700936577607897967089887492067270633363288258880589715353839964666172523504053718420775442757054613873324860071777438350270798291365897290031054213985472165848975740187735798785829169820653033410614584177618515899827729384855044581353810272708379644774496684875597073231104628577242225661190459843449015329901331067412477871186671320317138546395209802284104140501187355706367283975472907531178278812155265427172531517070841998525935597110916150291389910577826656194017078029608643702066991210121121343965925363811051693370246326958444154516138857314001956131399100948462963459341215839784285583718260168470109539170723661514034114686155767834170196484515367003513686886772425292846949660462578488972430930930830678017246888163435357734596811481872011882059062607082783483506714088940306508511175219188169583926819251881691159522610995963434917151940622604930959915641273564205499214012647590666666049253138931303977825449085248486188739623344689856810080883093522561729734058759698485190195685922367902868820903144603561294360677541534895374665018054048825625375422564021352990278241985240539000133808924826240981459430696539581126405005790031877741696228166758113844115445403294366066546012623754136428955221268409013255375396470927441396553872302262061036791514031533216909982625487634650223425544282342246045258464295049792826380481648760701621092975271587706574891667804513433037526278904173315077610433397870480920782106353035765687004407254824426288713322645473728267783732084624390511115930713390309578845705175775267154032355367254795329866002255432582752885710294271738238158489082641223957798105282620421223221725069341274884689072409417132127449832322358269632418567207043372340882528427494437503128848530357240100269184782508174122250099319278925410096254289111792520734582532366851176681857290330419710297559697781520487330706139661513245963911027097352606672622913994473815680055304692376199896273814954617027428983442339503828703385773717254664282597113801967516710357635183904877355512006045839086187335502501035450370313487489451044449948803755336188562214788042976099553776478894525904431011257454514147920241702864759135100584252584365127847682095414340458896259034880932512700666862070972993374612432887878560162540248077846988571497299769722280647001559278377017642507887537684553135946398510502851535631181720791784702618156982083992467914677729438124479204184545500930851146981952259239818657903687827738888214344492141271963883755805171249930931300393101066303873903046627243930306140866790103898624375912478030848285920371137039218884604038741859908428645124204446959059550206448880498764530576732182149442522113069118430524160599270060787886711707482572703232503167254714362881293997681439015720337414181704365645997196390054110520107251327922378906580810260777195012876155478688847401856184811189430008613699864055588216119178145781318275437686318566542856972338782491876649462997883563687335249685233351696203166945004291442652852823872743131027321782405026001954052178433984391812442693262647828445015987799874418919313561516678743149170634320027611512085937317337007203070232909459737710798623043205744739395900413678588987654154807138819904561193308939141960316720590691933762490682511362662388944332144297517167415802788440648170157256929777771883837594341202337717875663884770132131900693965190732483365094304514328553836782611498147109982101757609199258350506702295893610607276446676028908441690955592570310364241915271110176063970485094508834290677698001213354238996946204438188068508909638157046114367517393075870606419265720535872031689883085233820381610440431329724364073752269792047863441037975392808661583691890108921866123074867800601795119466342597449106679880529732850945962086448861521130617022764689867959792611229776418820095043632854741326612986999792650464526445000468078095901709666184095727454953656330256930000455024100582726199161817352120117269782155075365442456362699310605682956293918758491458506192841176897068314670502268763888312914000233952555668286697242437456622233571860743114000914427597091861399766499246245358780703673055641965576579757598661364019010162037252330019453196969240076868449268091612774859378025103612410814316607718417643888448548676482610441425709800901525723753940048269771699547667906349377324219316560336588365336235835133866738621701384968200656814766433691787591246609820514646667859887290475309812046791213704748616195710331048170190740213164690968578825008997265795536741870111731197483848274675659337889832793470768495626067622375611980455548333459717304128697303615748450817837546784059611655247876289358642089680170926936433615308293224570381392516693028926900018008510806907026271001703245244888302878699979319996692071861742784056812079963308329139475552341011550202100491949644640014256166012210771405598627910443406720923413484716143702244759934196261448742526711118660720276170366824843491985208850418936451231438523224004028422780850487400386439511314600766718956070710023452770690080655455066569497703076120394810209168157234229070277997348062962753411690434446833774568082004148875963912318366591489389761916393441321452534043713851023492519096069319610738318578043129040126110456039180401431441397993927638381969912105867770952964388271254819323537940259561281289319947009196480599875237189877068535726127561684905427071384104174763347044100523079790626201179309649454754165358465173801221381854511784750786125983109918776878017598922907600684207237795190653712008884148331713446182532294377942190455204501147908787540304745873831847752725851008991775598299916128075989649878074153006498397118412454013778649368798010287214131751750983543388085822605386967187182895467834006493917170051843318711916956804856543518484159462284986832031749133440965980672725099958022156052641761234350761325368305414643883906139499993404997815286511295238599961142327390819330287362245372193356794835103615646354388062564258851542183338258032926093592736403209700753603327243811292854108645603334124826392545456658732135837455342632190021449111822364653515756968210444493792988209382642570225314152302819435132845053354410545009519001818103596664174853269338036196922699657399921827581706590000302329218322034581622508615903361320251066623023067262398419944231222153326086459599169156215577833006788485841212902580247436819514189238313246897790505134254061878118177578681936083118826441959373534856246365725341311848634529500339238368547644566903162962063118365192286740131011104470939544541780267656183364517859404168933924926037576738472323280291000681568047576343568702721106630334863783043767775948379115167538916160910222798388848455269674940638879579088063841466721179352883388811935659973633882296958074723229720660771046007129107053309259685077172220479579491029373370473817099648444096015146590290058856507931735532306154165999298353045046959051150684355469557198124264263731720731188317747435989750741743715517157347712651660548957124486471539468130194498678822781473480771279052748207761219113109992656433491794828968795285637588065474312281950761117203549942005699251854751098791170978229653297616171067294508850107742644978457357740524349736351051434368901141582833679105502458304707437864679206882564368462877418358046341856288659860769132557292562413573892194848763423725597907448149737777127104964874461403233531900152282127766355190978773564284067543930282065896179681740760059346162809094599550597052469933748791227311131235525829205307919383784363786721139724095226481479859898294682615490203187212128049762969190463089381272134303354817760719117370015343001093482676566235332991230096305420778476851420277165895474742654479377193514114517144326735519246755133785355563419408262351578903086653235691238611657919194599587751261686316646618026311152939586312608669350321446596485967329901965526715842832089787144715095153130882370754896891872238515153934525566718179877512402440637869275531519356983619136218071825756470629392512160820298658384572019905536279538946590356270015101815987728701463791273847171826451897924261900608949389195494191360216662482363011019743599519231806458112346572127949149061868476597268996200090947504589784162905124514609465562367678933151894603201716975888885248696629171262275956755997568747185368437044670097664893356244726758937922375637720744943848304170760811989025470118336958677411381261765015762334824673242636013230680724404974162118264501650043663301507042438394761441612615779352435578491856575927741916758754497637986923810973018356148303011337538205621766841966572994762416797740618419695113517197985446671260851181810960548298239111589167804285990683276024622411214068453049520643934294006264757000111743228400764437637404547051070200645703155592406707352973499556380001034164538451782871773291984322584824319243781833666694028164538985320272174289415514413058261681629027702855376262057047516400254757359807100426580249953044070272013236053437280020932556144601970195222130606939443627665808948024282476102784651869358861948526507159718214176316934659336467541800864261881162479274683957412401043021026561697141126854589530981033224939995233260891186200356465717417850338766020953409351785433586955776110937033266653162775542035225209301720948844902397219830507484817334823308278648716281537970166942897465736348354035581660999548646272957953619359141351947032499610385903111082378299646661719678092415865967901023159462656838822897228857824081944189528390595326629057971738208735424073074159403130635738428970482339935398416979123729543015524667775876903322985737148554570365179435575127346875599975082847008470136319009991126249296915952726071031206807772177214181835757992930112759739303463986329252918130803547191493174702287399612162474672848506968144686148351874206547363026934143864227447657118359981786879240379439323662235329164800098435818035694815544441221425037867258454666083931947839150827624948630778053088931925525254739891196496910138207926451390422695615910232759487609607743938779044857305498864206763300304971838792644273563693430011743419648424055007413383999978317760525282375477745081453265518890390694332807608735283498235862807148723160247381898733004451520276882635068079916496971524421940263148982635210289246680358097103622903474819075577530624501404337578503270284044263657109701228505221165569565385660217170808763495881859961059611508340475270557784646572934519124425340383763212632097993054304891907837695986686248938430927143516417261581736842690458560485408414065249288601436687262121941779392554882719458488284931249282887634169211762865189311379688648144724923440456763191528216706774548146487765210835678159622197805888677152411386833767835474052600332854874516796284405494661596809862883856682599225489776227488925506217363354374576604290982946495053190303422988123664532515480651724316336333906564695867705245164286653997529039175130768860190959878773426719839219787152517274842186059592227893219762052212808827870147767270752661985800768387073090801443369942519993632751892579846906096440827506119237026488891646235193084821554695098743827570721353893908297271812877181892323713642260355829963355925542877677030324291356634806936726085968249135432243287048565990773890326970429318086438610267614238073346909997880124450127961534086863247563177960484333662554822646250968218331764749565161716912611723610412669814890784449353544949614716329025914224781692672016842483939121603340817558124616454363709497575173979260052801468836826495857033257864128883731822665378552203109739883532383961661173117915543348604362594787081340056419702788137668582419435762297500811005695846374156974123974435768953097160941792948313750504580434385838624686446740024941250653943998845349680544892442980882131885698370114749418226224750962612679514853974608314815885973278244713235684510582206080598267770598864430741578514308160371843403575842875585541567062502118719439842243767676430471741832496914627314834002457594607430072782827859903030217833921586065989095783604433717589845154440234596224639046466653001520278381413997468104291234175839406752487787875017196774006947220848083063913319745557315277522397272188282615500405214354721463743834452628959579719029084621847447882862003430711437016179394886631156502588455245006965224981743908416396170803354869045399146817236541695371695345810653421584807199815214746191913590941758745379581615548003782413422401492124576632726171508548523378297067768303049738950340017447624107889737238990066534836062606133100028326616187383716746321759950108260595511821823505053225996168688782092561417359347663149790217100403079270063714255422029979604151884835899780317972367920028750053908448829648853614237566688952237713114001764271636647455220764896019037541838965293199134821981510642979277946524512256377390035903846739610693349043533022445048195993234644370690119392392150023444837117320577964823749374125955523619976614698596868979122764997186728904794732955716065852067431039774891901920913369125493859847726774990917973256240336466909400545272193328461517100445683669075037554578979473548546627925943679031676329303879857905968573737875114237260071808590827309641779424361426891261418610616311992190097140780125005888066805096305743037589210163361798777234493272630094827504826831098750324217271725335487116848128177752331267343471390110005779877808381444437994899783198061607407281106656311511301206164541671517252030539048579387484610061475224660716446200359475631110838841561683232090194539765710732436301749665042385186340887618799426249282286714916770804726158266700053182610988642892337536940073412826541592738183855580328186438772780037109276621774268666648318384832152821502329139710300597337469641148884337376773825354018073735241788957732975479651903249116673371924653015219555671109074627994798828876165071849554520488368697585397840051618128170984610175605539804441786461231427266444140575414939825256962631767265121142210020466253965295116816786599929062859204645613163377780828666947694659126195035423666185111052030188103914963161793386338422381204608022811665933044090795800216802746699721795613153268206647116946512225250024841854386534919957450424102492409205356924343576903893631182469332199613628084726932088136544715748276648110884986086511067785720582128249399502594678740398705630263624864524192515499370652384322780219057241990840174470316848246387503627040315893171548319085215654911246801163117179504068696072530014813309564275577024917575311528868081147294227378995936326303525082075672030404471240053294510362922338281916102744013629200731202250790407357282979122373806791162824217685692236442863300831987562159647728656296869407612320441173130311295339671934592518227319311448420077315876620113215418980339406703443052563587611717831534823346171014202102275268683387139223381315108131681886914535464062245521782646276311666894270478409622279495808532569508043977809416516774417682652737904259951735104277364129255489102764705962690375029534547368295116621918946930255648463898168934510488509097348978774411259305237500808540017604650054753476917005901542027927007916222583839426741009999136729380797275649363792671978374221001113604745908853321383130129988553052274723624605095561449936005694739177719324039326581352876905656642857101228664029344889062089868728893337543888174093189622225631106618105104413798668415554499865593292249778215148077659170162886703026930936487005965934074132788993795618426461737321142913091673999610376864858614428844843897287968389249056893786302329329236757799673200902512963165438962249591041717596384853065269324871157450720024283733030015206603151016195280466065108594815122634080378208008201391348060758148832041947431829299677970831072392174487871294487485188115037206709890150067454348869635413131706755674777341660364649433796211181674917795125355916640345690930789930985346669158406180328989334883747300164136859007134186920684928706947993530742563597661429218321297375634101549803691092775275113722117634163013601462692590445493406358500748678751381131252081609245836940235994362476124204729664217320211632333824377545439995192270265380051277719184003669124654076028580204943134699272316437402172301092499423431218026885683353720563640746701706013436127271663092236786296424777579359954267295283461589154327635171225569905191174568643940573414718627510759349145220511137865033367300673462599457450262517692762931990530069900420988393951321611598955813885872010345011158040005516101621022437658343031734842722625618494084483658285378586111066577982968196742006268922182865047994836934621952209646308917924617757487891673969127425097506662648832360322461697161823199686648794398201668069535749199197293450925137611598205362509891823834786612211249947820753833873703347189311995562124380814492845353557395528415125887600205141847553729354594152476810244941091858109967316005435201977586351703762677922494271045845261283972496969635662382671308982411417809871436889097120187174448835372895063287692813433893131778268081822428695560627267373983979924515940225374230207889147352612417208981771336798643146564613204177882011772916792304991050664966921396083286504571124203465023136115299717044077560327312955035079501461501595814348007421736199767174901214761888561429343488347372089474056850128093470505590676507938259372363540720851652601451984473491238328064625443729274190944534784393930415312891317091293962038791967681454268593156103255212288573196801458747605018669534130669133366333287892692558202235452503541723419082630563312172230443081753893874553037222349451219533765023593643988828837790998762554247732130449710392693177776652901308182912621133264258663709651192760094505775187442310272772521129760427290433341656909183184436169693133282634836436752590432751065452750709282204323939385250189469826747484066201031994297874395356605889078350538745896867414134516799924042307569862595796202196140779835997015435960637449958222009214694451463070463340047505848350316170099255509201372748133704969642017703279241254171584706397781065129917363973809245187443674265960311030619302156822134510954509625738180246482248226861407175667573390350694880998975680546793412364458609783162562785533467015961891740467560809689505618151294755250387492807495187839813100308065309583865873668756530597003200659922954342358572589963095525072142917536105022058247124997705665273174297283291350733866660821414880710827887372880466622639236300700009689934798972346049769200422162844851308855922369127338521452103786882252208625022014463368177266362543645878973637087711067441287368047314286016819537556210042572661591810788670770612754223944775465346198231756072285427589283102690480800791020116727627218626747057276292942148361803205779609858200556180901097082985840386040386983626298712006784130532092918069319421458195973175331027119327802420210270140706387684405765600117589569919411662878933698712364260276192379940123570905513018395611565832570641792540596987785058312479963602118833124215129959913322841961864313968749420678440797310612706163271948352032501855273568689761619080678665759695832433817562156267389601428147150475849892361737584559222906269484379005349041918463677232559653496430117823712096525176600201411762112067509827155187738146344086870681186108401554141164323637449119554236588155780422139771672226366073395594770798148392520332210774434728189007288802200097059047939484012757486605431267261895095849299264449265586509053828918360253204910003133379072462834296176015692494981463364144216158282163396146577645137398533755724531190003708302936758873405816975045593838401742615671393395673837622978104949977381065929906911697457589164722639560573540596341258979823344694592006037719392065889461920555219159167003404145052433257919722199176533674325659200964497322524787586537536379415170135901888849499936519567037653705103446355279019675958036349422389472095962082954580103496669059160325798858931339748257136156416885705155182657440970710522123850407017327689774540184194099438187514367984425332597774336838072119080519009500293514710983191150721016077779289208957441538437098075455592585199860150023166729917909984005442733386342778625738904290621298773995333203371950069982992401962433537717196660321170995608897879148570806424394151983640230555659057432719299934570856866016000383804267859250315254994265966788418720161174110017745456003650168435653065803394467017012687717881393798154983696914507733403292602064154200183550023988579157481506645696541225515520294045035400186601240552999724210831094975247392485260534396966421136184135847908494916489751802962310703040784368465374114056847063598466900158133971374922244969244190380003555745701403521474952629288049332913307009920188321631207516474156311692181759116223527514016609142919232508479279386022099909247376690422459402875272995093003515679627591910781851579013213805940105609468757126958061048399885318533123731179694310501752066673632241383872678637753583845833727917385950842845507581531878978665574375445715149000743105928289552671629872026498136204982801091566311400891050998495818078795881355540626117304502000576903212048579574096528122721710572767896470375797953684955221574802175531278930084324377169437925296616070826622009819584860681523406891211700731808435239801123227639501724182647934047276230986854684048944936910037559583323634556629895124788551474940289602841035567565489708648766975495466577298908299827329011530345469758863103126574640890800214874913384491243276108408641420514928162052653253201272167494344068960482925976719767414941405548943530880718496633877190236111917034477606718512706496683244740470949928376783404082890814530982682709311224521186373968877774200610862120008743830754615303998726872247936347050453407497377433383670841885488116560178266491866269304670068083595401669457643552842896075937812922584099422340837014015696569102232457521080549415587963614747500554951086662583938075271531511704843313518045180131423757515713230918573884595874766963459753024403879841852425412048967342421490015789598146611397619365020350673609666559667702479314229798166741017564320899054768924776320448907306358308504115077014725084145636512283600869770942972819211165232661838618970051082687237576210843091314844692801550993938948559076734542507830139969931093508342224599311913654929483647361792421880188708594487525420520172245906719521654674046803519447523268806795685027001074916089012801888814736077061508001838874531081496463792528929809270296671699796159189829415494729152039664814706761256524499411441592477019657501472041205091438206307701145724989903399570247275030920729277329009808999670220379244031505686091155007391287966461832749028289064239874841287313095532921033110041898154821636818231122441267505777334890478817121560285196752651666133594345559203102580517613710503306126625571506197981245024781726347885380457522722253296811007858399868740476169317886108840409128569062385799687200956787271617462624374402640457690864623463558729884893161780059073270925980452026352122301864297141333260628857593947685191342799322244026835819041070270346484031801005029658762294600564195062597708638809738584079036576447334485251543049407955991889431408507066457077114236861222652396208788572209661735237288826317410664812065264575244179837896526676205034165002910409453756175765276902208887288700072306414280896689432563798837610570063140018400783812350159317270017711619451559455182070412353676560473341281695097703046055901243977732334213601608406201386684814011708465241610176100833445166668158152994410524981404786059618553054345567729063698405188873907801889857009686954770019429436342166865825011408971268386748268148933487576153885349323938994944008233080930530891813000381310765336207432061320054336340105354071927983792148180295689695749632690537926486774218169105627678970429772884969757187402802676902067637517733953950681934253995384993455033070446465024841773883999524977110590948063388099358208892025405792070605095129449509516595885367897391594665597528915693024330177299831555153595913212572031631929731084303649911400495669271066838686268299148441102526637934680105527506157677563659373199952377676524355375362121108524388623699222924188224111942177115050127260938319140441704260003104551486450743722310524921754706758169790198701075833456095065724522975873647267300048580632903393334934843359246002056622418613580881809536381699168958926817251879719009086650238860966355076910301955946831171371315881581115507568047841648626588977189662243171755885734040804411839689861742372646902024933543383711590563903977713415934471182423206858814097936616817158150095182758347392468418650310991283099199678607762198453816945857287995396423627578799054098657751437409784274409692753497896978430849399581707752540812372967007235131874493132529494134225003652471766444915955223396275525021432155434822706885742628616986934169544722748556041284126140276762512543462454021507376178893397140809641710637177768562899080343571104711730479502655679408899201521459097003046363650809075474431889588864406295305038241908221421945478468680308785022084771010288617032796059265728068736725626926289559931475818581111230347225907576091768708273638952136916390195871067886887714166542737900242193283516507404187707329945988602310328727219099281026400140097898996862006774951037920764783094701694353797649317619188421458089948181305221738153437762540794942178659629951263795209542133399917355709783086727884393908567989833086668081549242747908321071464491838442349264146211089511947327331357960903069232520723646540462118710700146016093685032553567193433553001430140447872128911198035410301758179056225169202780078441710448881125655768577019018511157952237075021466878446426933606744983502423712982223761829472339577600077473210402562352988003403306302165624615918203118264732920536288615861528372714826841376729019941707231979726062339938758476511154091278685536631301748615167225936809312358702846686496670767520666022784953403484359177380628238436670964468184594338273655135905826107263029285724636498647058596634315035225659386957812344654969634111324283181199703657899551481145911221540496851961465661455211803834347868786560804219369544071112044167809009068479932217486606692968030434585404043098167336293289063572447723913192585170749729062494065727820600787783660409150900709098123299579241198248913173495557916286517149472952025503712214667783402487426893492568453367384010593200632814722966486763006552617328643646809745196498558672155810452803101874005592131668964566629749200067559007049879026441962555602637183326219164217393395412800418334898796391274438563181911457267019383555308081266285312164897443706966388300233552509782633787766104017586591614457908615089865171338850514656906202268955244661688222838627026484188973543635733629058237145693518291306946932992157307368094843071922984088460552982411165799665175302120368162281960207574664984073141485682675865544057411435076377591438233359671637285972866858702742290272946813613590237124352855084172964182206735640045277365219554066452144492218894883074410362433972103611524176700478792826803957552381496948734379450031831430447805525823801863060072194600495919929066909958674160110302796982462827191908979168100341590926220479112658270562055267941582370721250697439215571266833712256257864088814865235981438107957789966645022338872966621158788744821668144095191668288210577958540633955463652751431395370942955493984544277584354237156672308647809780340884638720941838614624320788938389333033242513568773210086096979540073985366819415383746109626786195222525686904328132012154162797683659689266846438607378206364292681313187500637422512358024104469958691206164444974877087393210005045633477378250029974748260220686912766055336889504981293136810686475837696407009716142185800074430918112135437294231580244202956686112695141237997798193407907307117051297957399422632011108901580081779252030766596739958388747599975784964724153030303406076673998541859158875902457141503262344030974086917079873191350503243171721816458970767064504569786282266847504357296534647484911162477762051989382415314248936690211846466650053208088191979662296526259582337708093608823164119006064731422354768069307291509871957719853293132146063331078244255726974060248739398934782595027414819717956666595219689507188789877702798242264869106043828511616658705214110560728861201460499977091423127231422675275029625823114982583551938918480417278470241458277627732947221276743381180713630345095457497780223940959945158927796207615290842190001061015754589037919927903923842588283076149004909359456710578146263791143947931204550831839004579135880148120732621557423063104398720733278958844855567205969372207405912777025759827542810433199963980417411455291929698285035867104437248081064186670143347846523288044884219850063925240599443006053019355940059046508495001234466327311307752158791270736907689692511787287031035279443384069056235696399035576762418970166585425447995414056874414182283204006511709157380789646381240853512195857511076326641446524084566839154401383480295866562171565568077038096784990115057173809472628818332809466138806928846053543374244449297670043737176729327512290690633169196262287362422825597311194384840199468041755890923913057738127384198409681563537735581138943259807833518380733794744016964698248312017331541433401425679311922800469452419071981949839226196544504531615930226924312568840004692840692379277490031347294645739926419452505185405719484444197563770502199846008514760734077019721716317172751626707385735885555520032754622705429030344657242982256947401776211294352329611385447637753013711479755298675294485160221050925970888896519806445460664417774214684679920057583917741380835532820920399917868600440557649889945261410293847811097654383038417289752205138694472752228562523850098712627469298242435091355133878436452587777656657614596994403531601900407220023246837872802001189844368200856313267996174245125155210425751486073417140539883023378269420745361211689408314291135011081133390745881424024706915411165556481020219684477670519022973056779206914420311985978470971110666975197559684153618474199581033966291472183640483755950129715823218696263095991624069554027431099107333181329213681761524644521553748955299200251176638256324857819982912370485141462057375595428644518150059254298722603040988473461523597286830135183318350719789490415915579084665786398686939740353491136442636916362260694327739674457855249404144265633101541280160319200465314106741885811776509701738247751859427682196734233146616564099361965311692921895920064424919822284181264803369822137217431773125195427058555914275175741697229881235930842664015483427752258314146916743804373833171389828447195603985179531353249856458936832803476152395730391212893594064146720963756033443955948196353749537798114735227126759101135662535458960527975589845084173763296787224325084910810473171609109780714053659918476283963301883423218988968884973355781949689096070991409012988439614954168227849386730940374484442246553647628146568085282940407709953122317243587326285892001067523066281478819478052830999226266824312051032219902889980858427369026372637910045004256769832804989021581605291212749084303877183114863128574238114260221282661878198259809870289148966946365446332477987740305318673758209434883496903599938360179577741474447807968642086914582843969393470613862522780998642870284080257409764067557677178712955944526952994932607244425800954559339513519172354059906197451193310611515139417817003448989229168210655105338034937955756373908297898308160932278034349192839233466278650696249765656135911713548620774784872849807967554651404026773048964318187184773562402345522059491004262111473707543136312551821360411436540770103108373845467370487823922003644663704739551165264844730922244841921867199778961594564227861110116708645229359441446598432360758985742510312622930895049338408994448649880357655235724750855440651030456825766367196754620427653676235888733302251142417691638221459781802261728895606722028084947693245554775637390398101964950553767500891682883415991124610789839473346678227687531037783704475488026300500751411424448084891801884232162113153718907864306465859025609897664911914892157545136998672076765269908175355973034939293049442521090524189594030929361817247506353363822215018191736504346011516434629508495189081586935889897287245717679816025833111448777413090569046413621563698768387739718462034913827909694096952987123814674544755605025560167810379267701707863921422944522767417963445665912312394401741223095359132989794533551602842697443448001805527395892083929732724149097463365415195474041874382371356454778130234005854423964911439998294798848061528702776239758635964445749790023648022492518180330303251287792569914917693977052427363889197197618725340895316245224841801581061044375731641079299138305290137622921718904685361530697794935727684818711094184616942919639911286576934202677613013797389862524726420540198658178709760427653216193927170430845151489404275442122958726970180328268974784193524484516866086939186192571262235568047035831816540964412972845489771253107407886964430009111404322925283272168860300071337683389945330689110938533727875321445571917265664642542642443896184076002254414667157515904711578643363918727608017995442974882932101250326737204222901318353285507552270554801593077674130108548028236436637073641638336132308542352538808629212623231079265813941873216826112919532178177016308865476562852776198152555260463092871873211915717854421097341976108226036143611876905026667207954601664544907336745944692109650556398799931899333931519880778567381648961239112639896687632325350955551433790127713695363582352293822978729924837361692739473534040300087398772747254573803309164640966521224688653096338273255446344983964894885127578240886679692673076778687370370211557790187265676977343056334006983662681932107680736205671045181110544627812522260716613014449677074335425843522714074395715166397013980646242766361277609112614208136264222829396984683427496634935717693264999413650756607536644741301049605420770619339533410251442835377576023858213686905404175691158412151396873452896710193571909609407923369478097465833659687542518699055356970947303311327458106353922119689671829197801068444408171169490699016982505862500792420216622475223683762436276321158245312339428120756483944966852222347806311190266829674669306768525941941495181732042115250217301053432952588586287615570348594718037202841388786071848125857894572559469574764185629795176769046774142531549526621958023329414928626176922305563250675861939773519536878875445356522677601851005202103087739117070480577037398432839149246476303932205920663193774061520140762958349558384589299755475799717979595382384221814356981729801730602555803052912979855386781760371666127902200609843647996782895604449429901571589064368293908084771584766441090197096049645362086484051502768761314103954974593530799287914956948246379630173356608599872268145266978502037432392567771398363497726998003301707140885915286617416975096253816981940890088110724060202044419260329696799186752781537651322812168733030409407271937987815803237142401664170738876809963387601346760475283790942766690544464254850151714144847910820816182546617878678461326065947806451250428570496215704558818931791523598348658090154653529588744900340897553847535952484685072486920310596332112613489707609168493596594674485211418054587248211426312777590174815274577678568228991506844722734212803979702395154380414742421791140097951727599116431749925038025357265661462976047506624172378686853860709824819691867444821373224869385651474051829450567885325986205528537387842894114403723439686013362209915938260273633321926927345780215310532674486629014090523464836673990628382790486734786201296398099930203937794626220399923850299590914229424570774170224994546872107078779808376980609997657302941017747696740814243105301599392946619206349814731899286230474185586634162142159213953745361383904926873656478037384457166643478196596726743488086125514720017245249228872734534240537838307461580612488365651447986380957630509754280279193835336940537524428604375442703342887763841208823048966994097705366014765731876597494164342453222342516354192944229298430366891142442247668439086647946498577524367818536867875499837152802401942572320586201293998736146772586335652167119317389919421476494533763467488817883557133753554546641684425429107500948728399360826226316783873451668529144835650435891477717263290840761302511703126298305311740579889273054539965011601899845852695414345509107066078862466101355302011038081573756246846364987702424534162570815085002814893905659981713845543484607225193485317125745913717494917730353562563563130039312034124512230930769709604296792583621848182618544467562778680997191835607094689575809003926174590845720850736569986687920302307373138561446823780596471111211671605434756497748750334674321989124826448888990623650811980261185229289371434583281862059690122911728007719146170958797609732232038861370752660619271073325736284278214646861671524265368597217710857301898568903811759799536645959555575308980657830043580793100048696488714954607732639557495986758112440999249764080946545981079161602218680417320496703464714428382452923086056338350543184865907366900729843592889927753442242783934917117453472133987063116652122620451744601908747095445829165553634992883538832854096971534046452285267112228703243311599402125493146129705273910205621724810661242483079839421404757927168614849733834278441409810132198739353586611213834570524424946040084173695999437452251247949314815981690538491834196104441191924438996282078866978756810939261856490006659131509576677740056225619056765100287414586058756338328240271473639335642503178797059077925356661753859640187078809204762252919277713566827440815740697087002975474815483850620700438269028791050196547427556566913732330954585141328701613434069167996076344911557000419518641554148340857131471864261345186794703927889665840767406352141249834869132492552441079096367316203656672064611644523395806795833602656930477625947303025560043961305866412462952174856030111979228753886019741176408708898215376151643428564899023739295620648175587442900311161058534436010656015197362797483126190020306241587014477757168126895793051813317820661376428801066913069109922937116809772800428237670413614843107287418816392057516752412896521066507390419853231502855956616439389902075819902933956262151434682156822976552249019624329165822493474263927001041097302118214598203771607967645555791196626823353039244456933689429971378941006570238916484312379800576533403971202997309391579026887157033940424385399824324411485647042053345765870136899250146007371696358592294067518016957706715454242525726183273835616312591748535432170610897081727303067070373182541263987716086727127036876524962073417628114152696652413300796881807126005945176759775077810484853380935580729752445871120945125292669427035317472809929200191182758116218099194644976786951617405646449556851920587161942192662649124970550787133865687408543949866795962841161529819251035217530601069331092645028927205204451989926746688050851021342338608109058005411570342665418843807718656525024471859373748488688449551376345780889028535328617476985221418950407348052918744096575657654451204198962988919229385312441780868154977473521112594801652774392881603759511463108444304282696301572244948906596189897390761140040201971208360641165746406906081661439107956998951817395905624351854748435166235739842331233067846059939535830028246787481950804892336316471402500042153313605064780461871653680167709983773084938940701371609798845753776622002545435388284372723794965308295264576227549665772066348783589222079351280756698002815313243369363823382303615336914363137983909074262792381492844184049558826874711211258311271270561575804082120502271910864830066162548978194385910594972135550295465393001423862100447718986510885666024943808065970523056296257918757712063304133184941183199822320954013760360144018738804171549334788805774420242933600091502266664334101326284392623983194429618800987201867872700045849853733099035550884166334670715492503499826419941307027873598361986333905513761486593867523689416193272972881104545172497456994558715740650118762913398223855086703145779751799887530430727477079155833945212064056712526695955388920819137521032634667888228630186543136702415245090534612835661535407455007394871867157692383394925461755463022962891682870969821128353371241065119656723241640457379920691582522535228354709390905473016979087903642635479822348458740803804417357207312527322079777575138794056260695989702106323619649163605465727250889627750171758433229856681745531528726924665747095643527266096905420037286937045994212104987739781625257740095833325173787338847732923244009744820060434567231247038034102058873546286173504202046407909278238005602267962375973193850781802416303705081750923619904181796207274615495217571014280373779037965278224421539275280782387074671783461369026293295171743036772998809710110274369384582862853836905128199045985178501473109519732761658253130317893398914269413842645950841421216659550201670962866482095841772681741792982147189306224273297704038275220421012448578473952021603030105495265320821036811994511744899398221172581083639191339764227194054436079604037575066334373733060869253076252450950531294726107434880142371830098788196378401857775383676485265050081084513670483215156204991791001440969559803665527156988214548040365160879836637116726963425686748367858980774358635859256476999751397595008643784306143629152757088376033506431097007845749063458899550930610676194943158888744972818426791012037316657177948132353829268044822566724491848959553303517575405537202370758800651584589334948552015037694059712299148546558560783357499705675064988584449102091162330800674811201977370732068682795191300495780685316395131487224558990046863913191713092500707664589041197965724760675417805461226970987427099141894394396530487234418012999762525650521649409097731417340553163302240798837615950542268803636513870929219807303584582361343811012560866296900544121018822969025468152241551479424747012152683598647309042132779255936551670273737331738957241387574064017501033031457137760636100045289160934475539253660842613129739447392679464368907415472999266848845749447635847480510589273138690988439501985055213823002652620393753114540006570990962950149308625512189805052950392260222910986541643224257637334049418839826977798726811038951430715538170940518214575075377110434279555668249545444774517965310329120784496839424880650610947735611929757487707820103739071532944345661072845021499928254906248646104124016882084275566367942157742544139175026795539934494351784989779092294326887737646077339740218626306504977313673016684701399222847791675496254866120408141806225171935846384463227063514689117199211615557712485286544072101630316488081631612622718200848850544854554948495191142076784065711860319057387564447420272061496390136906601041161032454095123412711389583349216702781487061884221537656022895199459178720638222578619285338344782452687659774691330085275181709576568506732893782286688258892531475600352437579053381928389266082749322657969418726492560709837584726831017885900521334293905537158411027139496635611795776036130153097366422861984876489735225564532841975129387116876215127956657297907354913064076363163910323043656923885144826083484627583234860341119467837964639478117106638202377726647715235517217278020615265574257878454542060781936634483781136796292758744990604323140998703775509170556035604818307537560860735717756929274813661892139351937020512786816343087787844521123635188313217649881881580697231606249856774569632063164727964256450973798830210600403072003821156183793139391824837736582841211989484583602196864280726158656119723850226154192752447543380029440766379863669048787020186258426317382940587927156210921664123957395697369676050343118582190320526300050387810139642246058790550702045165706000593836089998169230147782605146294960238399315434497717351128250525755698995697858593093582366112649289887778927743399296772281337017504004298846768742616585648077673763479573997965001809098184553911443586620262470741503616628329674940904391525968617773316144485227664757630707974326337672261157063069719706754489473598582304789159471925561005723798468421317263681688967832393182733476058764720160996880960535837919569530550218140186487359069692366344710622315119898639148889510933970937394832546123448778320628725666933436924063575494367488826370020817569937251474665988601413656781452990584121057924470856904306588626451665921183181142843797014785814228522839621173694960962055783276416721389447362720147661330673418962106516904916756283119622136621802641143267615068150048540944863410928811939922949288970292805673371476725876566243283736857798805271905208294279883360733333174869685847402115079800647237887753926745176505756518265338991641009990432894447639793946115921939966627029788481140553399774503761907734419938556218804975845175486558912144357560502315778738436326322550143318274829912038947351230610073845981467200712201895906337332083578122726752734478343595093605872240328496951293937512810441602399919034770193565456024049629554858093658400185325970433116818944727257744513228510365666880258263209700591935402816697855948155419367152491544648825639533699087549852043150101096885059728286664874629243125413074588848230646967462410209249448928332403060219145336255913421426646670471844071261243503306870295729145482291764709611162035454898057237600319118935866043772930695118166125936045390689736978908796319116229547428796948741035229479197281396858349532840820734239621967291000441146954560368526644449052768515830008775183775036084821529212163429283739149199143337863081669828733643798633422068828949844275709961367032937950777651058793366298525726537325050175348459940589245291050737696773193857815153589295734067804474208113091710680819232221528375916430955957604098541075302596424975080957682043576703914804095925310994272360315087530068243492138838612101193279446971752677013210099943331024438844865907316923907303239960246305677444217159686163206565398042487646328159370305849923776031169334723150643936889975355443750725253997869620321043727569954103396957406346557899582381582008436457613390183508689375030544045268742021219719703029827261081970359685457766044685023735429098975026573048950372577573807566651198053605157987773325997129718427470770826994427669266756093341023079230444236383199407083329859217987579442891291720522338198907277402673507469335021338671574940450387885612622875587601433799828395842131585925898552852374046438705834356117695978181447633537748226838804436555461846684013017504928558745442642196289193712180521217470288521065884697695408099533871911293331817915159006043828055526361380900269855767743525644166170646437837888580108168756379956313922598090651546087278328776035971622316896381505573895847704682931927483208569853697870241103980036335997428095520756438648538127215672320639772604481973839383950656354504845445268778843830129810349424000397949966827294514968695683254174384973012326532833550610029642265370002768670006357686648699807879323296030090358026839039184973494711262655197848184716762603316265872803877562418358924577485681899720058853239372133178379080908245956730373061347658254723794568887732724028784184812865968049326278627410886779629135121338414966047890783185966289718098007736839192065284875952931052124352548838461977297440227504559153609042030119201091056978267979717643948549832306307430552587103296782295037673429841525220553804338387417044498424530719457181436420505974673507443694919670107186098290644839239103761914161885760748952325296211235009892718627517643446621051454590972151826565191090595675839820469915192299060467343410834967900334470032944260182314224382735755134267332516082681779945732330550251271003028540723175078316892320026183304411707662149806571193301780557975888854449497552143876890792296167154090417685979743260864579032128611079025832113405053404624791265729744879222225155864183516665593296547162024044282349337274513220547529622088571328814145105522639787221425949161311364482601805209899274229494332820498353411171837937635312829432467578832560543795065511044651551385011804066307800576588501060545413255751982143233038425143754378995672201438794186558590806602149634041667165010683433810348332034119768912793644134308305277437228428119875029678248333157305046132639643897905720745401886666237352717630334330793272613663491270049506744203411560547979183215162561933585240773941698149640154591004101208034871599296917569579455528979266294364715682465533361552112438373147538162612271891833690817549547861839929419984479436613808019808810547982002393081872045266844159566375012513088419258632906612700683666833175490327872973936225001498462030210998532625010074471653792198262871180683304776999450168349573040801371615389008617481817919086757983188328572958831329511699400739727274897143308076754641026184396702636262147114729100440704087457328623802014605743780000358473616250810528080197601603364066893231136843868195338367327365109644261396129675771435363036754087771920001745545724373926592131948091488814451993801329418009292515615095180427282235176616285261299949190279975495341318199473575713383381626042339094460140625650387813786883479377999745261372651508430367095627136730324464021484778795793510322991997858515648810300589022469544350340020169516483606816943530778545702985913444580146832404914219924034958018965020211351566530161959692993365703944404645908942247927717300376816709469651634454764400921377758456935144875233952415652711688986305042468495863367980868246597498309320499732694256376231443080156461366843043980411730225085250214073997327854782594219881575316011134372390662979128674181846513135342197991498894987913623054874324367179792501304949378829262336646338277858342796621789773406524051151786969607784122641875721580424281709349595449811094457052259190908336666518800418699127876951912736495437352376813899754839698457264145511116661835635891382452228408588394035258321501323995359132018328970733080774628076532200697962932818735317677545100072822631874963038181160549485439126895555696060358600858121925764772035101400637818274708315542340579996714328659848178130173413325878570121140134955641176924033453550320877735736152481738095420887723705697037632190969816170554174737244263845347263277561530715136048912620030405767194724627142263045936601735884416545804158529408268044531834732812173165246109064004654934558460137177523764597077027399950283753770992658603125605568896204687963139875910459718309280684823378911566574944120108893781155236805898719423001134412943583717871759232283844421743238981946643310959985644470982443039922407766611879472291880582810336995654597362826932487158701193254157703328240171674509627771887391276745260798321953544981750797585693032956416574828934116699572896409486877622727697064001515868215330815236163176514225490970607578190128493641306486132586976611422862789277219874268131928157404280635711043851495229320927785494206421596793044903800079740513729679740983629937964814168521782024139421589712143639804509990173522025610899557977734823868135459003080124489281514434484584631707813147745135309811213181369369552159846872127671469050150948464616609421760625737021940188929974511662526806218776086035033661565387738852870119414955675456021939231010269702423714280981806779988773100627802632737302901020450979125856740092791286936279240501150322907203320843035155000403952979904206749593270773041248513351824132105462540280368373424211100126911763571365736891032863852203371173337178893739963400896114881579813575675089031336631167803762558800759909589394959100721683512389851897983032731359988236037459789734594484797916763060518723917598490238841466745552674187882170764810986198538340002030628280906869979811465583473972907032660842459360423771716527744127486861169705930184950561394315009407552800606798271177611300930820062823548627538567976813627066631650235373370455921122490478350168260300381063552874385393692597462776381401894787382137438101233930469528453652609725293106041267630901129676402688043024531440229429148584347817646203729328968104251479116856994880977957657564545870688504412340609064824102205183100039952258305947078898891683410206406678081889149188315911441632447051062838568412061914775712477615839584065228444585778723261288448651837473360193651988033310920428295715813278913109567835690943128076286835082753502001315370335159016371768829833716430121665369855614001708692391365370755529288229475276345019571432537164746308353219167177270186108030214960573301368957112969383400330715643731005580253472267702916863250783668953271973935525834096557011427679166729416594027883703344861413667038620514208919777834236944030497091935166496540288674077367423584583630615940785027497457311710268186749036998833790692184089219944857297090512341505440502178133160993493461395425846563858024022120063151640578674068651187361781220631876580829853459017938855501079803084440082750869532950035813704561310118165352647449964478882737562491999457380434313688741712972485653200191878132190449019909062052339991245256820829633114008160975322684812298397024450120077068132104591017897691298001129512771851225268653882738278820138871998408685685602086224792518192663222955585966855476220196943318132007227419973422769294534352772277574668829309591816587325503461138353916959490537116066280651342467256310823840521179305359742036954722439112601875711859759843716505297344502210457581253706563870690347190789011425717504580136333297385478342302836666237923486592977682336001562530969737939557731051325606710602109888860944043147656902117473000572659329731980103744531978557320580193226408116283835263506640407730921775356144017641415516832002949802907043387565654810961776573970275425910019896740948930282043616238774299242270088198015837796128638953509637612957301658589046351420460832072002593978943920899996939302891373052420053463340591787322910144652752257451795077039706250655337917408024042020336206832773175650155679492495144828293853540003807175798252650691894521423531844153226853989200013336392431697241795956053304967031452486086842091571063114790527621150359966841982366473396293604555264012588999573055553274953512674883240339236943742180248696471582236242465332808683924344888318892032747316220537070515828650335025877156874181092635368869991845253765661706170859326521311266605642099309680937159088385309685921663834253022943272987825973237196124191465739447222248454646377293594955215300255136552265731146489953525648127103921738288343563246671159662178181699766886738365894775035077426011430743789545946327269956035536299091704788114298255145318707002584546375872472968050578209248306684660311803335115343206518330500467297440263897704372213611949806066131042020911035162746193004243838256622464137208710613932603041389024477082485010744040121626942954644454984994956032812753935604444737170801646259615431153841684130987102317158538139016279418872561061710987941691452066853705592764972628425389734229239298724758351481260344905604179231359403881720711317990121883971223139877385701596456199392350857906983225887778181173810116610349328464071519994571542193660747422135894295516997855627669843043418344028319375509326424678938028816829325394160425173436028455060462878157052486408775107341778795718398591695312369538164287546677303893806605495155506643110558608056251414910802094654256102731212051420764075841496792610804223615255073313356868398080023813221346811050095113843521957042698210583197929808881331357064147065704618071015708252514548985246209074027627556074380175051831701324894488607545118622286727819213104313914979517701544050009839052884084431255638352774193205091512384123076182957025055874143307750190088619778177887741865622843039417716086421638105928781467452074261558906541585394843147647385199765487354449282193582555165118720011090463924024239268424040594716506759463134218701064886342830628577168167576633634207085367819198220856407428836374633118001868423884088991584096884561168159373087188667160763485159158239390293668858178937066727625997531929016875285117720558997846230749296127294073084411874297218620877510381476269345133522300469502234207336028710238407495528970431986199198034598252715867560447706427928991817864448547605406754638165702610167168654058533164239328606907759082482112730557386730326242629617279393845322408619411858728090482718185739687849251741779525336085812699135823543216175096893493395984372913810976687139396043551976965386254932758416251456879048864700695553239870564377539255774814100685125824840051916661762534784634373516711850870064191821258097956628879740288653497127157915903000151036485412698429671053997301045086475857356795408615072315179858770123273186061540466595366172235003474586405297721312548126983611045558269497411092866155062848532544725813716755403510687925257580966313209518293696115020839842343537976229080269410582830802130004285454920654872066744807533848687606194170945099303340136220991640591519507873572111520821883784021376067879961793865953626320031448499811875326815398441434919034953632100360778049017017104393861776179230573748481415628377041536279380144558703599984513742030212422711487707437135223843850734303077492959379295187678150731912457937153531164910857305522848137725622740676337188783771605967078480116966612371308990027433290961118199881879439909335795455663268494740699430591665008613236067871766552276649871732827744399986639281962519089652195958161411695817537342696318279876015849835770611955986072074958960212708539541541263706840426597263561570778799272536375464037153333664130659772172348020325674659105866633536926171337252609405823768251672182234156236988411700354454754115559201194003411967706932926336176317176222286862659474638414238966485439792292576609840642210327767448443029067172407148939124922885782439896178125686988686719122283974587883145736305911540734220657210211288864935365225759842302506269699040402461954597914283456668157107849866428135315592410701164132483508545307278966082790964034912920524248912769872531198815632347635917735651515360878372238639903160007695399755254357228737782000972642929866340484377649488007414820977087109162024949708010755614194791090912855357504353686537699074409825674948008284075242555437495270351002137243305407294935461754043091621654346861620423933361840975160395208844669963971832419829136417904802290003611906216655976985877393956150768145807682711213663316377555340003658612985423979384507100378657821006962748136556070171560184387305674777678635732946000133382755382438913775759099484745754369342367591080669772242538646690712047292367490665779529237814452338168784262105509511577387361326201278225058592083295017325619727912278648214358572787229833978152795224645724884249759784217000595438039007047937720943974545321244729395916724323102491496892253404819044719508463214612785316268715369270585160402964689064757133041784966849199024874870973317716111045398470443874093994744789934568749234464429453770581229859409291692910245460527620993165879625646365054632154690881846263897679504113607615201042436923893888836837682601109266796311426928030519088184475520023673884781424845287190504806075704894164877985850784236426993488236738796236227835549778620915576749693613956945373247213348305216144564534126841412573544479798277621699212041876990495829331209956214515098108562980175636971111309079944665498787698253450017050715899235496714189370980338042857378998022200670238717777014562319047153177694180973194636307897484474466833993904223545398570535352225300457453143764551622839490155976561491700912395170006449949140157035617227751947337242298595756626634951240418709607847630392173961504108030344058884655676871697203439949127887456327535567957278917037387554425303326774550364709597084736423818094666405556781620547880795393283544138191539845290302353079676864343515231356583965261673064678957361278894897538269412637482116599543782726647817838629582619492822828843581073338840454737024465693876605282209784244293100440063811183862131709264110719928540070336766879959465377765403115286741982856463829923291003896523877781913849994229217966208268380269403408395183507313128319829714166609023111283670130512060868902569393311017547164372942690399211677486869331495156938673594283335370687550761041431845466707500321115970311085610682125822774680136269850399643385186425410544859961174056079882184573099479350637778744680708828802825536343806155193475941434495885064369298140298627403631490771901494554685923080123965999975074967344454205650830059053265085185103028450098606629869865347186785655085059665850688764838611577963696248831962409585765975645856739121192350067079215241843928465311221233775081139971030740690997167722566888087854624750306998535287502570453767992059955395997856233314968881605369451843539857222352035126466120731181231796230352501292726149049145623496505748863298471577687880804188751977449311713648351681363435316620498090297340388469523305043536576525400792498859980959443274162574398339734604548692987738987609794194398060938418180104714368352554955650663548768074176782476741252206575430680790064241875017182818562648421732967067845689864679041666056136351595257219752473604025668804366422596532623711422958569817117572814429437720041997472101037357495448436051280820987443434368854682219640371751488916706504383589762615898371646846993233171774650470984247814435161237651768764077004778385732626953856996948786910470157094902767714401667670106829008210230146977456677174201816627544367447546959269155593377632787113134388177869899816106540895072273974262884570345737811216718174424108756233426847915676007087048407680372047470862489914442717479790359184839194963565142342452850516329948456191020857865177946026525507528852695066549665821523075148562851227108795589129548697537424961282013008966601506867470193304855596669821697084873580659916280167974502309152269752514555386546524416732474920302321627812686015997230672585185003430790247900225701891827065721358057529215579595981580784929300136582101287021160125062002643883569246886288924297561811679718535428324668531759579620499218527090696052561186446646887629596337038467719087833166502488267877032746380700427310302583230320646620597077878004754284852190535936575826166128835730634062431412456049923798088933454704366224510383169858094611973642424486948253176615230879129006490226887234192520500080162743584020449314550510997306984235325652600761864375043326261075531309069526746790324427004277223076991737724489615675536043007145951712371337136832695077776701103213128494981771088895880779771737637322927290539257421061512029435079401675015030649804150924866412101861137958325037096048796093048658968125430642481643680708580725647973825057531491014158312464639727225149141478406381093553438028860244011157442325052807922484931340098326066086489677967742216402736286746512595816331111090948303816340674395382222376657211933621797781239759121171161582937404330591918211372837285016115026652574736467692193242175414479020950278985620893644232348984632426808283978174642813949917227915370218224270127557050674803678612589096145961979165813162754790238123363224956896406464780325124648021320691327431612128057394643928558591448003340517842312124737476974600674166472961700563987231312582185578301935026282132953184831653409961087537394958227732633632987403621667498148815592787506934793289611588077464078047998038632003705371948292443737312075179003494480422306138363044776698828037668508361036930835967840491469345136255165458794509337863615550842741741250212701669837238341947689689423698176118370397016075678444899545602046722899303628368462616814587149544039851310811703342511685111853428451475954506357830405781837280666006553256267836289094913697489291331883691259840044262999967903482648080316607923229996160564339853446250873286377145058096506989488215440409890952805739627721994165580224844322063525842575111720698101203338361448605098445247033157608185681135405000654736764350369824069380267926720478909036794499769535509518161254537715064304912788138522423347756389976545289791802752486434614849815018108461918532138236070845533318096798098410243130110207080097815786610358647193850164208214968681544913508294343204081977293666168159172565237993757720868328861993152464197169759067774004659881013156686369129981129852688426007329974923491965831253269609671458305486552451641485266908125803528429833024528524920629259078942779844798338426866576399984773965756549888113796624549733714954701220707093731349759207778995643652953458705417370991514450403671173922641691544406480804811857774335874681846710494340354694736379897695825735784616419432122609968769641426629756927492383954334384530728142779781633883149751650433581910364839082215306913122551785409152366256656457680175820241339901704359750901182808799400933730378387037131746577254512685707477638140825019177874732254177085531704899810271908222581367085212655942778195300542734140520227073472686388077332511265668730569128698433678208850202865761277304969825722381365995070142496157304701809824669417848703548560934071280830181662296878337925221738136728507131461969774235344982591508455919006531246656162907577614084873079921964357889356618298577942340013896995204112887020512530831105962194634629617905781600980436904181148480103586137146141364493190693135189163745722527906340270409114852256915933138694646669793088609404313150941174334282360173123181913621626444000731710357497532832079314779290055310916607370241326667889626232673696035294002151861440847379279867919773913208275658524864063104849385270918868186969588638317570227604897443768725768846405893926290294068144954812984761470818373237294836281590418960766871271867793846220335478397908004675114807026944463685536601074806489225715421503483700222871759739967743086747664831520554087874915349758333702620763738133184599887887697822036037263197945814927264497290370087439634722168452236432464633303336954808438872617018913909087561254789991415699748047398554174393994006084919869728524792611350708671514655524705370468421889434440192899319953909440512401372710733190668173795100821663016423971654605229444512559283829571470475640945803116103841253310001553136335389652643997093561231177597545154928196021904362423495984031485187967772907175972384457352676222241238142154728605186558628470952470815896160440473202885452401639372459905661743436642430547771052296081701994026686263898118171911771986901125521177574072226281191414676209940040223319276694520892885711553887131724990820084582763437439580797630541264963071869482205338146068604189057235360802757639304828040014056320351761448578608769754529886171054501684373446343454971494156555343339036216932904377289317122740443448331246006349601111167576518926768796178732789583147956075861394847358214332962346517499962845470590297001458183234258252270600391721714901699747525184767798229481425125563379533190447264261069226806632807791735098891022088551564449032390994603355197687810831811941800887460009801482472069405984350386316767702202095645633219515000241374017352626912614214028940967599868022209429458803713448825012671512325383377771976966205556439482221055107485710243124810826472726406508622410875321106430872820577196310200426498133939438956320888916576073930106208168780755254567154911314025134777119037452441806994180575065521824090626870093962566685484324567135695465342777634609182387400696019836501029233415020044599371553598744525091604722113129481314528180890988374695615139040932813074968166471872628264777099048779602383937946071110683458639746378119710375011778291551207368785985181248928550524353025443027887596804270200208715394100276670764620705878369208603415022096740978561423484074424989285784029812471081361929989883418232222696581905851704783679679428803505602964626948725325772093532130747446026183117975740687731920950483061950091602740523230886643354692009041190514760884501037907221058608992151416271271207515315755475858521357893544933033557463171557578325207133153142871988930795494539205220345495356184015071771671572299792790366194408191068888999241931400210488199388262824381817094898092865501188214804456782407109911751877016546114040466004567956879631305879358974797180943715924884778801844118273451601173413780671756983825251833615173242297463193473753638769435876497001571019941935732313711331548577767969081757861287192100704563777076623003203843631052863781783451945312534076546487329499502637732900544398094778990199138730939964111178047745271882447787702799242249764983490281435470689941587114074079937259700916076316893979217618658645367697263347583599380165647237593598294674381412448905122363824833300679851617378684875881788724762718309024906911694089071977186707905858394975178299017335622437861190858995452590133426581945215183695249085765344603667770802483964701080020303481409049448145777239462394472270654481363762264798031887737088230318979659148950604349053363151609641496259515696407144136417119146421734860500754269933082545307315659045396528847931758877952278838966804129393413847755356460676323436844732255890972961508448078481258599559635291672321050823161025688135263971417107164171305848285734804376383183356460303617357055089029393903505977488131017689860096608078448221056488760865046331260126003164428138976908726730898155399641315025188071070560196208845243311799550836304763324788169358665091193396130016967735603158917934159738817867499927672584973873162675736012997608941373820919845358970034820282261858056779199072278383623884438187917601305886058291868485799598234974384544602616805795038461484422986834202364531973842775687774044034882479640239168033975443274815359891610524576421855425056740765370162892227048608892452521316819909554129559375441631275860842268613529870202443584542273600800806006978190111765237865074586864161832616938105773151950071057279331373332771355405416104517064313540614057565783998194814512961842056808262481291988426035891260224757906158521960545052015630581280538382628606759493711003152886565501608957084227384379804732052105119071323633238350252509526768392089745245270323329006749335099508080652309368175884927478207365987152061609936021619857135207581042213471504526648119860263503248054894069766331347252849573302465698489512804784209298616406925251839893968283578780832417525859700685773031581255423567498851055688357359143611676046003410192997606804126214589220572839739773465280174639095360856096034514910341073140960562646289269475965234829958760167473779989226050870301754987196351004787572294619118468258031404581355687395550901641966894343607649404334283502967434061195716462718427769369247575039286822063678385954774134578747311468898768797785224193137148244100156040482653664580138232620566187628003484162131057472127125179686774254098298318121999005670167419673452181452022116817834849545878868602677594156989817175627027654043817270415470585617925172945449823317622167246815905735936951392275586830652539108955588956526663443417008761740318955199647147966730414002909810975101525821938803646957933162265160317231944049630020515033986977311066302016753447326608625511195193971985557312409441369657854818567611185101041910424923430495022294091422967645211763183562246551640358205006570737210201634012234731897194312481618562802359496065339626517885561797004108232647726187787984637284611789819450466841899666882353699075781472582806287548102970201574833995198635068314600580704908565391108716985209493339008032874271114615856782765980108564711345678770533444123338748420507149003555895322465651791845695999925849859217655087807831595459360190787162396475296190942754049380923881360696871126623318772253167952146009308928598434449222609153717420869747707113261884642910059152948270369163009046364413867014484555594473121537781116351542371245909420245539629061897749735378057888290221820782344827203930309148261054570024855553518702432127025754985800224312416992986132161503007268060428140243340072627846776985095050445668750116395791183970028430998593582620294665912710227596985571562076892517100408508149353659116685439997654693329240232860678834415515004281921590521382711206311655800787688528937848499738570317742877938568391928183514657766144572070569065025164549247275001248528992686150634176267241296775105541203395902748591990795827507645955250253682017449627633223939338487295692650479070582368637817184950165702345706889401541076336522622696343161116550428826439647765100974819238726213700208731726917176304678305087858568169778281226283891925708015899896873013252945561040319365494084652371040505903210816491325612694299603973346158370004208754788198895110412334669376988529060500767219648829534391891806054220630458631567892690288135080944614785474028106679451348029915628463064446306904516166718547950449832025599688519381215848017088161034398285385180718446798212833045831400098793485187975282679550991412649198978585830972126377090998948277344898586304173569688073084580157480692145287900978098125850687199007757907064217640039794288280170520360152899735773425751564739699390566435238074154680219067766013683669872755575347346650075777645410646774582672167803005006540495254178863494166001959089358013042819075521954910894410509697664620594888852586296416712198282931330448940706047949985930545882478346971432328522122550838410529039867970124309885002824618281989875863357689925665323406004702309233806662860183434724135951795845311844314746813772015161706331646541864614755915760730525096623895510577002929373361332965335179194928330177335100817897030534207531472297053476440272655568061822550085056706788065937647796662979436839626328565457455964972842196092045304412907062280501515243104128953199188190718811036956925285759538049566582161264835305992691685975611447865643566841132978041263811742630086807120641123329446946104830473530819727449478524750841535078866375384668691245484339552524260280745697004948511853643340051985187355364557258799578339663874211808183608724124172944311974517885573563296347365652271766425552810571457177276265604708674109593919449988855906349592332873330198845854806454138753855696351193863433023577995050515823310918632566076004736825985525271911392197792585661528657886273384859993336512174156605332083047623401284071187105858568482118518732854413204696343421587977395612139417991978379558113966632286822252047981319819199577772930903874026597957132462055249810633445677095219673208029564685548446896581153458075704814026779320282413492472359591983362757708097373520532053517940209718361103852356411013866765974149223974463891799746954441726877684809150940112953429581164677404725148638473317087497456525790021549387286585790842657938459519243858548277589916642925427283265078298678091755513328622986110257526708417762400338237482480187265965509057792502436527149544995019432683044384366233531212146943812982419739071594415836479943065770523062925178904904615808550299471956477288424050948311985201430333664592154075260509044185309382625950794187784250366196935251436847848301958542127325094257980415052014508192381310805855077894377728698683400322540097034385386038318303797338484133265068538459972445294050980134441637907505023374877459667333825926110315971909565466648318614554234331418161065983414343470167760959655156887606065810433807067177401826469526264258816007348751901304841819454965068102446223288843032161837453297151366976863092876299452142780684209622698996766425362607746294837614318841774074798227857197976002988906132619854871731167493682872521415607846330990288775559769473058674922043157553669022757783277264186614628085952519685583117947961071152350901852794029654099559023075371535469353910676779723321492260139134951536974514781604811511661868074209205980979359815366849152473158787527644516253065399432387120930486650253732954750342147741912490313067525420785235465227286213689324874088534804833182408799656463756192851515064985105746600278868043412091975247481418197920706064652790467737766062110816798258444643802421385705852139166312847179003294305038805326214196208324613668046469760521602610316881640362636270311440750012332901679712674673799566209215098132526524827370628005408434989915351598313621147536887800266445219075497600985433653072574331645114413485370857379367121912916688188543495588979008765586833702601647404538283492489015016566023059196841371830607918897833225505147877930480019761614186080100952096440147110413744491172087467404281349785744596529517346281621985082848772957055815950756639428633085741312402454117226366738250684194579715072841365775057783891493298266388501987215912704131070954070742536760014955401315164202454090921123471284977595257573973788181143516558973643306386203140024711167451674504801279967084263718276367219844013753271306218595407962727591224320268457385947751502299512942599890660021420132714556415508970078511824361658613213965465820538229843536189512432313294450524449853885347328950255646794616404488263709389720059564792040686811583784960689831322497198539524846157096707592282322583378521491273520883418817712050566718385748415890378112314827020527546131610371470739635455351015362255559916618669736589959924078715584595331315029272979970815862917294880990722822187142796504694745540007053693724843424880500957029156439186424998936937370697093481850741151273948385084541395821014416177285840393342576595155912762445855095357358976136736793566472301644285361932785392304848180765198905959736581395722462967998435264153475068131385781819354763534132990531876397468568127293635541810290553141778668747895593287293818978192878466233269005865937628256353708432651251909139853004833540400796587235562442589133016227822931522747664685040069824427540120730614165068829704376349229100485501680210525836224652204681590034244398942601653896749453741005442825276095873533401142093017838233519729603692413930155338470529688589824636849006098941471213159742795164260494281718557236879062306585428855409427650541047744072795454442326598177608266897763272042740494319095536887631641763470012537103431265066751184431694457398531895215232326415824474539797075784022876248209039107642946110262452699746537594180055249600866552302914887376559035906476919203244808884432800842493236115156209610358758751808435673170824360164662230290564294223478150530525023733290522818436628499357896741855903179811504304005016045985090104694752728644273354152100157966357456440745837709173810680696796126389317794895487344925281292145320566515796166763825345721488550610013750788486605503619373145295281633824187440784438219271837032103992771682415085214645097534959286772103597801812686177871365928278096503158650749566453140457511395799900133106312380344509054022063863613937320347548745767925529009663201465609751508695688277404753243915390733383112145827039600113350511419016488564866488663292801008237787188736095332023924914892987298292498975278624962665209465123218390944669639937241010904805704701372035491985025261814127503087246066847987780689283235496030949825396324783689481263421367957377376981738415619865945047851725978592258178035412485398460502917034517094309901405520965705779703104458401084908596710217575859829922441911044225471314084426623955512272721320496557806395379290237287717268047381207179764768575114766795941897478308504501273218078114112045679067431850394574427378204471387116130455460726858951360773971834337154136993490389953034757208062784402940595810572590903550865585496016574142991899737004632510217410900849394224072297885393325217280734211180705318396780565798340413442409778381064056770887586885872618694310786163138851434656978735408418635558159144893938549896729676027351550408559178149110052223125283073614470039561775845728603427343698449176721723926701482374191787173202434088010665555599868159051637504034443063096108414370847566657229381425463934852626033652733616607618228392780927261469704519727551030539113013733608027903601694870944467921159116991756434359682393353313957471946338283677694022443651275989705662091536713329780811009321656476245913379803358949187816727287608525315019251766499054972198714633648019932859223660193885814591161878345660648928603335579315330399465915357918697935528750754446790197835587467879357583344801297911204548901601440087219218300401005761596739161520242604827302365730664295224303497362634545727578365792642398207796588172347824284259605507429123295847585930149060848747196390836915474421665285680825790391502302883818573474203469621168079300667604313011087621449976757879362764330607564248480880249880453469846936036238864496809137101679776714586691765829331691966561482753218857026643195368552529581474501100595858599314986531798940918659538922285422652054686786632897583643096082386048402074747607940148344859732638601548648891688246906773707802685247155490654959991763118834274330243996918208788550389389802487310212587137848121279813871130830743184975548248293469957822491177444814511156930889010884625567147798557867378623650343319389273287780772254487461684966021593672543912621791557987351422526947160351784126437619282220553266446091761039436752938225651515080119888447738355767792914164112730011062540252169709678968397873124972172368805671280777266970809253369473956418124256102524510295899648291618696849906168774763068056097082362460491606561119731857574659170966092138948538573086406263381598559812454257854804501420745345815914792235543824077658556983707304441374680720108309554005486563926444776898104004369720756964062869805295528766065393902893121885618163676383084543942705545304355939610378193937050021419747433669106479433979254627970568780411822995107776341066544914857967404115792972067542353514532287886236873462196689834644937247653018400106339534442253399579575834662004996809619544378171173153969973236056046096984671597731513572762391761904344207710111743967306500865393334693328548518751492419401917484612826799612806248896844918324860616086885350075564497255226082117877408858809977539084132023636969153816598080946389424581493340346417918149278342434297846656393247101550074431609491139156114810572830322276945098061665878407173063791850137551706533680486046085036466761955862857024250260166310645936161362475770539731563134575161662504527913861912279025465713678216336489962950414336074229196545637279631564795382289517074930395837942494524554832142425102657543916733174405928773411543062427201627150200331795319920990700684348841441160804840270623250579551800403774044135221454734963594470309573544010938715939028945625497175356988024176174517853090768573815026341760219108046369349131726556337725852745590496099081115254004477517565642913374858977545939236353785191601964537809466067214133223812923736211595106906851051054047333062876186814677375273345025698468508486376701563818643258952809418205542679938801857478984680297003667794684120010481661169806988558960888051973314287285124127650472609988312241349935136372057446729627745846128171804864984711474774384879851139331313437458716014758183689386203572097567643361454248907660473825686920140249449482171704629885159966662330830001774240060004144829870580190075822705133436857866015622332945567738957858608083277754782457060353126148713808695693349801323788930813521061585471523736350202796175751502541759616365904628841861926501324758955515158012903346283025769777457179973525002973659097825472098637286930412799728367770276446725144722763419842639163096987810190788809083052619329086024767530091226499342962923998776755321360555459696163157201738377354880223575975303069855346816588761154437693229472802217724115458619857428267664990051118529364610652327467582559529723180019954634323375052019301369550870571300482456545205296808814130765315804936277934216273640885430722270773644011529172452955949860542944935134201482261411769974927649733383909491976698187279649966706803391362228638284542158415188489382998235522168109552982981585393159253437283202910961218547089255984513867910449487997155886758795245482498133209798000439473589448837591901686791107895520136691762005570878890046548819355170960780553441066446475459014231422998740233356124274230724863533283596471219902610122873593437093681983320593038473163666600979082010550993674829624065934379820313681328149908579346777932501378047014137834790056493927702370384165022619495874560236471568697680798990000073044538187707695625903953148561951256525608089954684379005448219963058174171564559082043198510826136610594400792850966735515945672815877927733036838029861792204695591168574865467522213893493381449183650414826886226315976192084714006371971675882672842388782085902397610691231298805913953847608052313983340439633683017481657405350829940788656778360981942884684513752760352080894695629285799441203876579232396427429744500700269815400338091378223503667698092423112580957849735600919026373663517380318443877923831755821846841825982472347512240946748854363712453961375738470111203225347645667645567374414486898688664237648758167464355202477704300586300658739485555266737809509782419441797408437237811041418392176976116437377752358282708981852027012816658510636012454571114159810678454776591359068454957051697070347093777484373462428204220526893462787083487028241296168641092140134871373863058974529952425856116001786036448189596923017738914646326004655918313260860862193127211860242473661363196612394581487849820037879964024338154242956009436522361630140389203893415791828436979637320236274039088840356957685279465368712382975609385026413845561270004674532585023183500598100290063017374649786669815874065629312241794000604147911854316444571759275260269490873610840543873544588658910949075876570309855618533321377864875340992467822493614617026838767482356665906808239390717110908519427765794824968933403092574169392894646647967354872581216613853885114881293831143370586623924116235947450068292491921178291617865615658135028559131537277940409900337022967747857982842068958503327633701601602471342156360295717450048333929381052346940268411808743054489126403907003565405189548463730781695777685062779696877274415657856229610512758617809904965752024010906429000426780076762292863741816011309566662903260995835915445970616578318113475255312863128876494935214604970102799038702685567697160543435510580946300691515641862694310303527223693975510958690292154619089829594468632997298324812340256615760431679286659126141356121323175432034016043097542403065246667798802747954978168647049273146078630447666881781097477233524876735700493325028981787151917468895344908088067235273285524799597964878806718126879835735346976054449965773857528744004146824657998380329703510299743762743538218452982189874031997108458513409495062465920045177724908109021657617391354042126366403681635848449207293522308936734920173782347948640844925703996541116453471670670817101799189911591062149968742456199023037364944572884326869836930401006772778027130356051993142174984538247763637258671947724671774389854667248293535176610844504257610435684049638103727463949688343527372866403200917779844045850553948801284103721763734741439072570052815192911460411974716410625775817505654633522718520161640866032224086296696666664509606116189058247554699842545621586512963179696274408491776525546999647228246993275258361856485045211632406246642915465293489436145827780303747647405085351905166154608831749674931638748570188032814689965637064021285011233567292470496959478238556707316640572427598341531823961358409504050961211591972791593664251992343771765039151517933655219816428361173427416687900117793018471516407753350551680877999842567365782328166749599287537823163177072429861183498078859512840948869353016459483097220410715363432917615259085713368772014249531893552093190949487158634118311813323179676959836407600416477052443264365416273767556939339200734663351460794571691625758378016696736932459736454114675928220326727467887244143340456931026523215307664192971672655751050156882986657305970854632234100083410730528109414734369141759095369554608693101022768724627120961188301212708778002032930453752037247843531152987569750773735506307775338814107400931537759033427230166311025675711749647497205228215949365543405933807164925795458285372440889924531509989266067053261445859610187274803969930444095200378797149046347577629485780274615828295094812071070306103686195427603936531013187816529985274777126163690261530032310277612197767195540434493123544178181128920831377535726349426492712696783078880526453900473273553950225318043303614514668013562097513057891526358035004231076242231995779928939374111267497620830758632918951198749482756491911112101212622681183245607145433395937213765254969833199118217719155065357262650748316003760468699482129817033495979376259327962448862695106625399430440423916471493115494561934953542032778531315829751046316723290502504395201784119823547931652790936682700205880545832320571018480195672712214562757637850201984909438435755552819498654560020366613012649316588141630923665613018949588103693929359406207832053647367426089565405900316961774003778493445011596355782607894859252932306356294965623769788983807497648889798645796115974991259179903746083940338763794789206210336902225227859023791875078402172571582516225144203552729785853695084904980930047808029641639538987396422641338539050663574471940030938541198069362065260742005527614719455187007528803294929424769532289824482348955181451849088332852680355447018129827313453942022868855490057574072915672282388421184219380633903675053311500632992508172705791207985974844262089112540245752875178339015756064885454068922925469692791482278800975735563099534937684537428924782994796562976055218467725206005544787995870440826316113971782469157108122601752044468706531803146067113056935657063169591906833070574255546330530275699822706523005417471558285140291599075021344087184815717270255138899057006816928211265224680312210202488606605762520960715638846533089626503943568796179296626122891697960234191263885275338098227452029797923259847247590252041007848076791398960525932660695460423632072327812396782745488832849579494654435012620387836810834402573841659689555446572496495482213054991986926478013530839028050363739529576199043687278811068170306075463371098476065465277733740295508635943452339201955922077990903856216392698346508835239982898088821344972752309767076368768799413342311274387370870301361235939244017669720855209921527575062661504747792635953536704952601642318518147767530441779569234803512314619266340666081583757408021256696872249087827122508055414856732231363140148423135572219656745083407621672740631723852534434621545817753225883521853682197407982301699714419487650173664043755656093951096501421917598639458730037110111805469132168423867343565485414209226504292416518024145278759145838617462320445335704100918331043593213653578268038222009722948758012235171097260682672475053520727726586344732108191231344915758675978265768896233435260657759375665894654885037046595933756214523571943597633646200516910527128413637890888216098036482260739549234249486298869538029958118793610324664499281259432639781060956820259631351828198630198886288292609381193487988576140154885475473771959660951504352323363722741840400460795217816543275139944655704680454047788227161408602760728760977939397012678129201638928985591946826673448855196512383401372978069179063573793799557755373572553777739233064594283565283600541944435604051040959463216768358449917672233589942882457371342915883693565195491996743370704797452903666025391004533446583477547440979494656603553710198147027845517438271945524478961069141174000822343794101386160785381387637620539360577802594361570602143587069912521415786607439114380306356184128860634450367913594083081939714454190755135980790894462561867031698707152538162711975219787628054406298068514546025209986313850539302510452610547476521741710545124803140205687242605127692552108992816944476355082772730039203673322115461787363214732171711906475506482015470213873063373579130997047639654522575325250832028917967566900256342227589574603829331656632200329810730323987060965910918119516906106960469507518377428558711051336624146483483800876943330879364224594106045018108358979646667147325012552054463449369337287043412625744309169614212692024912254178291298134443436526305450867089813499429210305646360215799094607738212114912811639631136959844796779282526661327821161166045753305266085417718470797330787785776733108841802545284558222816069763418489805473698256603891854769437561816649705730683810485700247550995682598772750789367828354069439820957138252966422556496669394977724676384214782893907637705258390862577986799980476241409687054178694417070532705438121314388235598116763613191763859055638229150939783307406404518435055957279854144079059139920577082805876434250358346859416505301270524886787558898269077282155728291047733598139941050175897382743862201391600505638452511415804004192417056494635765407335685877607673601446695918187485290742687052107801465742670381348430960819709927184339646034062525663530310386513468852864645202566455970993476204236282288372610338380696368410352509583747357222854537205114588100918350462960422501749291538036950450371018941315672556647723903463305994587429880329823800501085763059590580210384283368332917885548330328248510256994719502100795117767903612013155855042288715886523476387663594809697024627245526060450805021499905216117460906591663502935811503519701091536175538905557444991766186517657968891110792598265943767401392246964951143381058411550407861381664790933993203328455918990452189844716262750397010872933889285672152682908687946345641425360810326129587421179019909901156852269980440655663528397383779584444933868355348594738271616450415481201291070132285522833058610719308075919883263662690295950246713854220425719729437993133170539938246725511297109969956211986512676301879527253520072439012548615346876654814884201416466314506743699270989929860707591103625114911552775947568910149467362287710707116148230790744933454027987216721872037171895808947656855722506461852836394795059179286258623884680863524314979703635529100021283144510830491625577174417503876440116394098441482415114118581267871732543495412124613324398000460751172245889313326200182279220203728635714371425007355131316409773807489709850286886321872009395669450426210555675662238531713350056152648004590286548359471783025678627134758644134794594728201810587815760588873620433435858435457297236510777301630003457431062018935159488914265119774388284291280079401863185248460502964342510100072054331437739519280165250808167687936872608283663023833427929653700267850223459858308082882628486385619944600677422327686426740515535996644712120229045944994453718193097906603297974895731550320846217023277227641956066375737729916988197852834143572847692538521057429801693522061558743279105663958360124982053198427850507317903344874375168174422745985901263797442500059964601444840818586066208721913292187982758571619356815109778184971390476190949463141671348903967677185796263828452746191260454978824946343973219282033670031396907237263653468212794760222847258144941055610926718128891100859804393105744947004095427155289077462849260261119698019248187726603934999909592779904796076379851687427278819981665289431735253770900552344701365214943047926257280012740625051978558554188695296438442307602151624641598208440617913308215665915474658126171173746960740532631523476571878133946518335293087365184908334767667031957695251828612019661530169557244073800278204464227560317001194668697962170029956431281517563615239443524758046513017648366224152365098279657264378741360359812783953701525746373968888480213862450640105877383026138396442192378025692538536685460749509835493333701677698351586594491382958242032246923657826949845176827930263685106248268582219726950957982820391288825534463788596748737339754366512851592665731365893289214923556385690862142188891241496453152446453608275676835249530907485499362663409388735609262508927104598430737350244778881089445077288811005387545928345829149836782050114105326808722426372920451389600816964677641440661035793187449381473496931838057312023479440400850425215142821308131230842212573378889995718829323268765117458569589153055951953186238082367346092220092680015323741495284748972242464009525010162645356389484025310277556929885210666626536431123753686559689016566123074843180320761312695209276443844759972832239849997979877881688298202881187964143841901666869336240862562479210150999580707952921638511402306227602022539874117223969763633795030128985995724062904183024779460535062800348043333709255583101430301184616504704624380277020153096339148202045763688699200703207311543650562785946751489956310783979436989048198672361320731603826895947173359621128337592687740945222653729104880418746428584599136340489323066224754620939293414955664016277230722438220612404336760553731348869673731417346951091237356646604885234102653552643446752927553892469103523938190850392959969527626005127875464746577237419072516335316481213488147910731841853900750204137995713160775856588321146429967532949671052904407187422313098488851306355426054784140532061542937565335082899490078610346922272844657238343515523996503034895451369024153556055947830511497502122301878183934383120113865568175321641785519404094582746763016960874031200828906701936870887926310351968036013552972038212044038990115146679613153380016282270404920653636193637076144635454189786416676573015113938582616369906149945386309329470359323960834321867595241234289980545899882217843050731616333786971354718883199586645272442885154514634451186792872920865224707157014411536610869476331970268660467973047312184010120634969251465972173442855916451070824363431123718429323609825874452233269518880295621226984099899371287267108176105707999951467477223499649925711171398161644229453455461728152284517920129096883419763901757602737761952201169678825308616608777473416998485818683876387900047020881887679187345094776052893451959494460060532881912774480271012553794587973727021659517673581523527085575211779682215614992842018087655255176432525510163218343650742811675210817393005413040042825416818591546310258790288260387966310012776632842170313138671166850147125596153364270557267616146661989081958286186458735136935486144634791245992782767157474661171887188329859118971632402666507218426461907495020556165774165699355095022525343387576029460611024587494619327049877223444331324941762329564394987945052464473650750193777719162796544122381359808194402040689842934696307131689138276750776981372934220945843180938584013311770234332323898113435020043897988043844216081150539909055596038047080311940548118641347616765194318223845062749232817843052853329102672196919340866440694242720160687706053548765513246056942061668326293219641801922103546425945335091271253687105144687418185553995350358773195017711310591432571907211414773198739809269098191830791571450478784050348202031975025894489954749997137687572979001927235308240413780597650164864349486089326684687273706769378301758605383595903829555167268095431841712963616155309440103983509169081241000415220350463278044044998111688480348187394566639119080813367711054785763418540123512641306571490960292892149151918554132650123967408731870275142517225020097354855968344103966657699188989830381601168978514736342782315593054624777923093132517767445546442524676997298378767072969674971193728866240289386910917719383169039254936553820687440159485456394852778198548853360994135384172349681121415427797710245860688293806751822168577782562974874450319843949014394961477700893667271613383403841239932571810490864818500232529865772595122570601876565589682806476013724553022895288605667740668947523734778699103825901837578059946148626197125345684768412760473727824570430358115953482543873169497347393972581557973249208353915065748373805591786360420038998146751991621990770937742620951402953294941266626290922275293629514814937565727649143183691787429454317527084085036719121940491006654310473364724969240730327386325986911888688961280024925635650797257524165160226916986835179964578081258268331266966065849308395306345977787613283929802562688365720953853499099544800862778284230704674718505694932412820908102384788334769191998562418570289463052610501464231240908084948739984114862255098542804812377114688213534708421144835295021914111404013513517895650690753292338955806796141751551417897898100744386237942230166445718985447447809220577628744944720594338634352007760544262529422614712581611261032102467134435253463365376450888364369979046651205962247983252895734524432080804387541937755375642624505974826918496920646868192551058203080662744338821886110078381844117967517071726873619508891309665171086903018956593685750993356369436246047614015698216496332457821177989042538637631349939057811514704875662489557993593287552054558692682199563543479840939561802476769874221871291664035274386837173967002757771601364067383846390913034093243781927254213109190696984507829284045893753175768364712209100418275493763879045755122700472194358379027188435406461458858262179283482707575959085372982273826274422169729752042182644506462405009668540322069056982100662538523198480528959806112212246707710340458311061648133091216237069964578043947813088949860164270715489964217171215165113537977572029217656469342505692047569064495015216418046827238337590825987305538492135968189707839030623216249468017558092034283212767284979714790167380136856583987462611089767460855854103383588936939826524318282084977357238164546996917732996390542533767389445114116120414760815921286811526561045458783796856270004692417010151826892362706162239802467210396259430616309823076591207675840381811337367353138044792857755139213800595991299354240041695397555859439166874680676798225532764611006466364703008604013642844194761954273939991819841902093542166204965475841741080227128167024156779539687039086424575205687548598746710548658208904617455274582113712591242093743909796922926444557574057408203573834585105614607813843516888664938670120360063671383778041291482314054321976131617966094900561896727361152734256707748341198523527447305866122994585831537292402807643569483618944676701803595438353570356024801128918388553246020129690639528697591081286357809359546367690210727100690464834673004745470763160216016344809964935621377272916689307469123099784856654700053662322807419150290281887114284497484550994851371572693207071234202742036398683085459676829693644682267466135287514985448612361555562765255188757437137449787530031379852130366726467451674776139956313839848828597064164817560413793652893677962254552957187490629835435264088073940614880797580277425341057199625745006450201944436283145016891610167494636850808457196893850563968734801475879841656811789708892263137760377374853092723997140119217283033826455291839290487020053936685074876968921562048217226120272329920079833933099527214535197262042834438074490878592388971860484906143877114408778025413073919503476210908473034048388750286079889757171389630055451143520716787900488689957720499257015072137978975712922680875613159487944928290438477889217148212696085347683510103352336673543497916526176532239193442649772534301913029617578632158561654561226486937815424980307810350959009010705965788795786116803346939019427524042903580131584431516220228387102351460590680246280890441143241946302164700727396177379281234412456323160208478491818382325655974048917912509935387881232280724679437130756531468939062107151526642236619616094684216533129076322147930298757799756529201952536271282535585295014619800320147357909690647639888606836717196344878289400274769872964557218727772490250380413597146931437933551563795272679305109225043966390044103568577278200499389427211402247983012284177844939437223462710138672378420097146774411789396741099376108259325441189769742756577136583209835048944946937936800716810417744492879640231471918110326770457413919408160500217424334985386675789671018356607983847855497295931707951359268716207055019791083625878365636543225604196837804551726902718415487251075059482828198712182063120545827801932009761291895342357774058745523892881950888877527572814936214627367460492210544089024029709504123476305968930840674613944253388936406186714202699520402987558189900529730199670756262194757829774979340402004123717939570649034227413492880392897099983350107159847907544676459014475465985296603416710748928093244693462440483338094256502089933387941744762949368069391945993145453343506146816436309543754606360568875897089552459904265655638115014971051148941345327405030270823219535944136975477118741457436823966483342192136236741909461959536119921417997359813382384169483888207322973262769228160114716606745461527967064021910700587801909778862167196000193842251097569708390463086055401815951066961356010154775076517214462517656377975577578354478624299364660776260238025542165909415045835750692210982627012198393254819764301064418689497879740126584322377016545495074729440369805199383856768572173180712703813653977368208944856218611738447613244115121451672601311119052068954041867158688318697708712527777694329170273902162650484768848869722574413673482067031194839184112871635115837645279751836308764844764587147844332162160305140187529676481581879113727928459351254760053481056583461147589290344981319207755129126902567131103764837932732816846742330764804853075166297140512460601832404487513190504889790461873576813746085212814353884785202502755173647516232466748648699305256254307101210451124000109160137874082595306845414300235876613987975021593315338189491511702594862590201231063606774550102369094981543082511190391897923112675472614444903020187164672719807929334250001689640319723083641239655994217948406311397771584487485943952628340900177811609422109260566540428459287762912625737417177246661425586555534133395943592019146870307100282533586395261383883380765918251812967122592006490389597147759654729196412444124215754291458870019898557379553470750905689764518548705383916201440368727844815981756979165059504376385591057355072692170969333465808076589977086142929874153675298378448097447113869153364227842365486837121850197432905136087995789980014262809943160873493418415411278081641960826465779309001722162985397768422785668324397368431212807780403625129549328094830653856738081762498430253912329239515175573820737598027447102999256481570490508150927851054362300456674709386429016190925548330955219549004426054493801917605750982475948866405745028879075528841254156579180826849650139641301668587390837780770852622400034488372239034788470975777240747780524559774902851170887553537424974174286434143753738782067945428695013814215690290711101853031026689876916466958942895309725009839366124606597946706735696136762483344319063322581436195015268367992828868412189399762888576507327968618230154356481883429955981139874257555555314430474976354300564019005827934842486307192976297803587101058674344248347879550076112927120645505699545193538805726295564230367198473796357652251927575793569277620857666098410713819958940324131287483140433567466095478045270008458180768704594660377768721712435222663804213183574280103419019004260936624250313783058513736365366271462102207194992504812505313612770182658616656485522658088697542570045236309978604367489754213184009532382838075404202842843902482235298609775150154612644728060180880804302274001777814394562373482796307314490560190892976002407947525982170221576138106459896202068850337659285389210098684784630875488563023227567667650824930788077973515743858405145562494855249612850840762999404998985457616337235497208072153916061883328328151106348563480761838784175692901082960323891555267797777643280628206075031559455454243783274752120572658065730497128068503454676368615851785329994046459428557471405620549855434316526835426200499871513431536033220897114620601102267355290471203883917474420982744623379923495974725829778935702996824707757053308880999080593371261686232489804498499127887389709902873421623151629766452408063888393327293935262536076059784371718151728186352041794914209832714426505159763204985994840926334992318313979282267863840173538067913665397604221469620482025509905793462228714290812062898975235964011306968604269481396308337866326297784279307942464580956027424931370618627883160382994909181506969071947968147530341904258424916414361000879907067073106970336877750865880105287979147157583709345864569479961405650195362212193951067387172707459164511613865951072132093730859366183282074944147480106204737453711789228312941528009843670139202859435073695193144258479173726245578666909967773744020315051736294726091690838050346525134059168079075739660517303355084126532650385541888050325901425949790054149712076899624976599362997285610344410286750314701111804589274227446856998435677755828156783466660953779304068351066211177324546553462470818544211359193286840830088763858980594850871001312995721240998310885704270960461987244671944661321460087121697345200402090324551441640752684939004601437037859544518653146783295240726751401825284426296099747911134755441354314313387620117652372702784113594905205803950193439769032461250938994934313176724126828728690092443241914402933965665632251834975174614497736618594147000864961579479706442079953983345770000797695335594372505341193409910921194952587780008799885863268593614013102619386913854293646906333262477688444386731672935216772623969459320863544939473141073786290184860632082853625973514646486499299545621576004285737612898862933938698049366054835105915783737313112184381678738182565512626161701909683777023878507481523440068480438428332052849836992287390811641933528487286251006937007755811996234732358662013404332219569536140582952061271453861597425312098496542848455913304803035657397853237102283462759623665363637834161426930683526989430239864934635389796389394299926501968972686495346890967624550755545990195256142857545283219839896090667132323972573238883538097590916402853165033590917184537895294420911100568364579111610522081597252520498199333774944146953025727812603558063373328124706224036239748069707186597082006298623920833609535468682472346292414930910174630641961946109520613402771056763514735386910339476152515771997524683860516642630892411198425817053530685628632299678823280993117221225687019383568697970444643747402295376525707477808306952181672796740341228996670339422871810099204320932630722112013012426590820412690740489642688748633639390376824558283670111462516927878901636117070935411368455364140274326140066516789884585064884806246797427255561243453167874544600926665767434883884661982169834607496550935419030167935982327624204767875789326144977742302795531095724814604852856407172483842716465251846269616910293380824374365571748030848008210049712792407077034681325012966361553558110377962975713825567710112729388867051477004437219610016967162876532279529990182086658680529690252122005501462598031141352072619278014187142698653342699795999341113670478821872971848383769429097936527322386097529294592328418535919605840949218659988352277985496458529254775033604535670847162422453484407013016609601546885787192558391398229358789820515746742157586516286297131615287205657562284213874466158226313671606511651037074909418598001648731127050214877430163972674071182420683249969680575361552287112646052589971128106097228151521311443841878179214467933453958897455071551058408451832202513871332821476388500131608365124592449684565440372009510572062583235517382872495317854589089152860961892002446022723589959701383812148866961016289046554203249507629470511799885111172199991124248188144588472583863395928695492262325480477979216436864851546620647051773751369976167260111516955922642045162793951808403034532244402078447960511664942673274834227095535475576675472809848904826185706597259892274793922968793272406294373438826700970892464763898629538722602445847184268951714777435199810225305389430763859289273351418448811369591435309266865293764906196951505262988635183185679090961199028376379615662841283918974268438434670620532405364134412826094066269348906674619632708582811127015686725679586958503553996121238631070447601884029955568965346257239439469096586309629618044105510015485632746408481031937793149424746418106720689338932591245702486294002693338326498003738674702567150857885788732164583310116427672543923145317265078747166731929816976390773904306847560277665820520866534758242372128703797564847895683849677276307714084680297330502327719969842810066138923791286618476168715661683474538364195431682712519305029887415696063467462579073174535687101732030975170164999915193471370303048469422454791543409630313283632394074259010579930210209062324653324047562691654817313995032317243209902801665719655177343167075837624931992655900833602547691916661966576046659996078349135870839493320959259829416637915615313817139302941451047732365848330789795913998280353836641376502236778771011414331514300240907743384717642494312931226343222097362290872761198909126581483564013982732583421742628094871878223642560890748654647252796890627930529665819684231740576738970199765609920214433369693104819719392292555446521552959942547970192566394688219653602065417955080586362641459104553657246885944423955574673442522553850320238631846535064920705919745274649183121781069863051880947404981852993033484446728952393758729249465509010457666949252323566746418734802146206364144932794808983570895789868156507707578612924503893800424693650614905474517281376177495863345428796192514795527367928245714247609955947081035844775197661354518047813238299099527863069576887141602211998154106833784076230713744864053577310689605337573395271876857078033681655211696087690184817300627185640491292225892359404554800162991981056461226544685923235811877833563351474201234594333565192201390827361562217078829333736764696212041125135292715471154151519340177471698111285495416194372425777364462204396699384072638770242595675715306176122963691460731159638009971498547865313985597144997543532414176185846848363426261956825477112285978841639224106565289165319575864629479544674539784717204165004847146131504769929697382990587876067264087832782433812036368639454995684098436991496046121974233830588464081563139213245364583892795980925566199540769926734122734483677197386445385181097258400748157916502471845703216252382506839464571502725930810163067843505897423065472823237166741028231478309454716341653208216017498519949457372022143640825769401790967402234927277462032762283247536061531593324816307446122196912037661566521768047442183292243227344839004082449046780828779604904051944810821399666572105906787284763508426732360033612426265830673125191899017217694928632796648141849287859245861738812818474825879909083247464210577298311516228200497963706000912772173267276032325963352392502810337947159129185960434384509378091867267475511929233196224783265543283777534438065970101205576568461412872186031929352777296885121918222276890167294065853612012324186573213692994866944035911266645589091908952129259356638241253066129515305417130443920916655207034034559140719803129242200072666038893512725707122900780660848682618134495452891804872664720411374256406680583032834588738648611597776957014052119282816952050616591776514766372669064654516445895480599263929095380096455648645992482290217194376486884234132469193170476036609904307030823860544512092455437657136901729423427435924045128485849027223204395891725478799287611855658615064803431611750571446495110292456137360557130629691552388235411081314896079208918636062511912552985791890439303451760168739732746414986293946148524808455900131104483732220685371087070102107494415919409155701398893224851990109681559561292812673220168853764269085968447457168979375251490948698740712577492911493842162236800469407498031043919468910075633814404179986343274494710489600188036123633466069569053859817030311395083100966336217665101704439563672452587280802422713006283210858191358078818637291779488326730834032613430501633032937731704443550052267517875631358932057574106847836615461504122586015474256060128254767672079362697337146623850875430568518537149557852971367555157887034403213864987363910525199727075650042077311744218640504298898733379950690453927574288060952893211819533901894007278494088889393406040782124454829044949798057134496938164582117320250165517289812797890692215936850907339429477414113759167927977359280136199392244337509328413722714349655941010145636995766187853590378650891040395200058953236185580883102632654529593417449289772703973028861373845927892906974424556459376807812365868931864802495775102050400196839216039686577304527329805844004151530909122793786228383756703274103943297755600277196702431435613945227153261432231954514891084525692410478664217352543582203986630873421055517243779018082130738223137757233102496640605109051093961295426755059452113925204876143333328346526856271848526599985011705593655884193047328287705207893675548015135099975308959301903405756634008333411902346571193212418350980800033064960122426049676131554875721649375464687658455241304637276744445602630542833096088172659269935324787244066913194406247631261041349730820724946852265103355567730128129706041723500078519056579836008077878559938136791566388446556118833028049005705895636510998802647310800264766737924419350708807101163976915577522862230474930097923750384091105648255298842132952942429175998359315951783102887413010014004835225949662328112968658440628307814836589898334357270961528307050850382081631863420961545534873613182355863780634752368663030804599380627515961709225526733501023035632712891868339646653296406007820000897174358974750917315525968834889973185395974993535352476339602230279910334083191225493463876338786542666785758274018625845920218961408473591161055175155817946636031416155766491685510813084197929575153013678549728079150909732453782876357872379847174019923215969205051715435371952704736050300214946071561551285381597923194722112791134341498754704032037289376980138698854760980709708919200145243144320567352737421189472944944494456683391030079587048021126172806730011422325873550465527627398718631567444459855237579483911147030124754235930973739584379417974511682807157906448073050037266944702058295799242859766780884595572625226011637700782917638967631067561397966135688020924761438503308104774524001711871039513719857955577103474929957284610178736709528573511541390046497087743069910174609710736534152166231051316926571731346568686302178321710774523900388892335114105207984106515717481835764506275173771929264090964735130443086490884320442831828630946022665300385054239210360515248515499433441055777322155425990623166637953307556573009819967383304471320503189659301605085085705262201160979013877461653131135529484177244400463967782719253547082374258011341972820651048870932039655139903896043896315446452866058734115553234538229464626820434693244835911215247231501188142674817032829192873645851189974401299355085968790456773127145496526714042507357825663460068599569181044172972261875595815732765650174579761795661686807095262663734176716649987636013710572128010949576293311113285057232299967575211315796731846001187850239719862687301748601409251579280442388018579884933636110468862238488481953540101463915642421213859106838491509272238301220003530061553583348945954805980211523471510817787985452569901143249434374085264874747555734022167984496678471067366187309515183958095376761473122831889867434922321200321194977001252375212713246499601734707325265601070673830571609936587340331524085382773886234321720479610241271924515794794108114781344281996643003795867915948896957264530294114029559077406791799063540677793565513174168286042494713274621339552488716948868063585716274127034277238731388544498693159617992529570474266970861518478434126167149010631964913954183556089524024718801113381330163226421971088931302249955529715804037334811231344477967972630405243366591699936143239177245109050024855199207402421730922240995930432550293998919944778257269291835052716034521152329924946652615456077091412897991651952923152242719090403511725121558925760161765787736189823994109772663902841427628183047654481996896669050177711228570422202179429581789871175436112669240419718873635692401045586395190396688072286374398263239528475054505818069217346218441169132105598742685488949677483065131958779392286132651211788541101477127613904634789714979577027507773590451911284817801256493612621314459636144503902009358099647371267598813615239194909837768140035479215235906217855948948035179541254471706688964873457010504973875317243770972638663866045725746184499438033935144873419323205238104390402939126329194501341902268217248061053308710081196133588912927232887830708781133042270393303126996188997512775522255826537054211155698679638189291542982416202972795856261855000193751319298565775373945038318980431257235367631011248917016061625144592365842864462865342209694668421214013164880677641842665559140321949300895031076047747527777474884451021316763992950138654818096563911851308560544018375377994823850353091029771517724681419450326619399378842700660134056281541521618570252005989230597469982335949462169741970827789672835850678818539961763895564328497871964494806306161748941267163302923059066312128690225792109478444748659662131238089556428573755446758666418112002560200005643181440849874357811428175997442257055601400094631050042598395342863093359823552950098684088516772822325000954322397221815190592088953112528722187424353501479968306026055879350860484247553758594703439493410107654401744806943053893418605071019064243625521505361291987320374613542839353574790647890804196265239334625531776750152285054658930018353005787146497394909422373153873384651970431960464766740219341151928970949333464046999723252211433248330910655985573682631725466121947373167645043219369763961737888387987241739591044287341103435126300737743268887800937479771795966721868718749150985197295883688774040181202968150951040098685240760973639341865310760914637932791511657753976910918192542472065394842409648142783351335653171155318064401300516701438616339530125809327690032798321998764914679617449824694419789720447119937899482508714902629211448668935089435543513956088837074601657240590243742703701812936847531046354871795358267336378752354132612391876001863108048555154641408097574016595055013946632483030475726574349298184289055351471726925254344381372924902132912608848447610122408899435803042406877563243504572432423750611646440883167251525190355150138003163720854962540945527771720367722223836430384138329738673834183670764273321877329943031521434868631633348149374470223799566126497345987332072824633029161812106732017141863964488273576313234500664653999051301438764670098992386010349000411122166015000569756025860196557436326219643290544987622832473427493786032733695596933608730399073346775501874631306694796086493851979041857392918898853450631783671745312346655082956712184334462837403694289675239270589095999815723317381979730021789862125117494693775333233332176179056295721247020303240221375346853640071219390156882314121114019067054108490145125510621280378847804656695659605879341327997115121002421694223016577222408776593109808928440842266053910063961234940719117946175439554859236354158923081080541791459635827448018612064524582905429427859639462126201570845372697439243254206471854423680047975348264913979557049833343408372336791561641079872196094851067181492618334595270282461997477179291770090847085982643453558418597583385684059798790894637820601387589890151516201678454423289287069998038084648556792184441181002441073658184377442020278320946889404628759672038633711046222050158346998578105140741248975203386383637019885651618567898008976257402916202752257749390521195825621282848058716125298532972491928313289675595373586598160080700164319186618850295340517595309105769316064481672542650205781922310357657387259789617098876048618797276121642879577841538096889132243271039300963704888188930164451507280510540449227785012800845251397775163705351492800149889450199681029283268257319201735979065070428802317981886858210298864568865616018287332305116040446570594588220574649686486108181155046488259706774422008347909488945640200524066925499138214322872633144123675859915227322842320873870012371014881985432180888343645072268626851828853628891864175033853707126062378429268351045013289322370587360380531238473403584165198890311114220973761157723895332066930681083684680512691758499538481397231717744821778430542939822503549221199095419693217448286504511311090899172215968468989939230133954179734799916372354441126885760669397987001170757784296185712426802484796772192392541016578931155041139272804562351597530077006790101988661680434862472588315861242837520064462993326541126942570434907024445008788367722464507327178842825887880460956293092849523257619713057428018038122086079944957739049313581348224417842980444564668057526659089975463884667616703799855050026085828762136602275702872720864659330458490137028897004635934311645154608957948446647786675326756396467126739055394397556499297409036964928771559580765529852728719533637636153127624253665268898679174598638627811088114502326082394149920544456548618104123028831632139978305255366454373698150772890241136975181301892783239219505814306350923667539921302814349383565144270690493660250551750567415357858731745613620761807523331176364028565029448267014727526342302853962089670909328140355968987895377521896339002531066134460361195341526628741289595417216522256635226655514508944524751929447291340864643183974089434108113457224108268924385224861040277364240526674945813470969183112779324469040691130210715179377033365668711321067799435056718976135698995060249098177177549640907492063902758750343034730503914406447829983970378708422862591958545493906374294807354044583259430052045230917499403691114370185555502321943512102785181742641193706786207932839485678606514061401274081500293744020644806719423517942803540401243722326403443523951769349862659757443831749350194276445294891719331619179003379783291209554487848742531670595866964173431854852038482699641495364725721645647420184887452175124091132917934502266742882634008719330300870999872341268907200916107958193277995730552148170482827858932118801473686111884637712114775951725367520353570930108763171735084549220067662488921693836929774744837372006723574871578695229257218912026169069050076960323253158119042264196863825445894936025919176894552936415033032142291777141658934322132920324765490164545587620108959135290849352219221848291675262043762734247334960796028658658773148835165606014761974519358358812480509378628081293036039631694572396839437197636205710371021703791682186341787529798206404354970404666575452941377292771370709602983632392151089553825579785364551232909859883153446008547425914933971475068472348646039403058592553433995634660126687520635249039285571070075364790560146952161962302601296100036236617123846572450080721087426836246964994504201418010461718005103830496118194137006548826434496494567857782427782274597701416481196873509587967781946461002259124868557695266524860235219173074674401481782237008265793065697354998371282933674082859980076706301905831919818210313098946400235456200352119048635266745780451864907438023870567532622924087520847725075689880002200115053961493511261762473791377227279672220240391342323486842167962439789075481554258811866003717080902124808244340794896037481117268274082084020707315356890199177401513736102361671034646002052551322286363897359831522588338748603382740989092971099943422037930434475652240741919334318040185521968490447436743719766004918155663827048449997818054806901685213561824047875426807335320420160140567413035409053862130743087658690420354685589047848652687554434054112217459806348402509882605044114245423169190543647509067772382283655567234520987555017168096364565872516366523927056157687632847618871016557159977954932898102950605571241970235329211321047563511776191069355763642686031646665826444091976541824791107404606716655630083116241587642952645622832039581694011637397127637672409656471151551508555046040280766752718952398098755667186302781105198261162223183748469472548825172915930454091796838618223444584521579947949149222531321035989657928605061815212191989279649891727847326754671948858948358215648069650986351578781333747624711463761013925002349829925816091488154896908860137891823165276077404952542282693794762317822662067720161871645381888106548378797662471465155870630947811179913565236298004548412777976581122249260892489429854081445725207343188610475754059176445006415973684698360699401339173841205274021214475660008525693681142468750585269959090280848943709443776843353465221631278463080089423794226941862584114888291843051377900470091779719196418416152237517726364289433853744903363650291928499429738862782084205169111591933666539268246243803165315112491962784763712365230893031053714536724092543389109189290777619465697229859553306178712018979929686558614068177133469289980994725136051708192080564768014551280805753850510995166577904268801922605920670387009094331685272556212413417014124677563158451055834746338334000389507112170961127790677744537135702783415538988683402423208162463632285682061400840103773891054708654651382344007855278002968523733406288019882126515235685910477670205646144540658955285999461905854240244787768177267825748867765244863084822597599361192169327431911795695284769597914628482484444232138063805878454307042162056022405352370082201481967533761630189098357971458777022452384493942979551252714541597085822160849018692146524176935874585304637800179273851391203843615501719835884469003608627205999265297280062165569114164434736077691057801085991683062491743087355604660318365820708706334741667884442337991611999208791833101491150520222061315544051747691821033688191127902956479079941387647492642007896965055550261096832021524678568525726384970840755318717581758865946309110406595892174034078383255573267582122597731297852782771724668026608772831297238054251700129782482222741432915047947084801833897627385664905483776473085926230583077064421157643751441085511359747337583991615878959174577793181737531525681677413504082236780886318079503780845818282194115751790040833669112088539303209919397627263618733351954756296090867688389937348677083399243871469611555061285347536240393933885374850740515554964978740597691606299147885147875351968330971772608907458565297602827012884123330737803344616029622098466747455432308556756132856054775957451245955218037099530356120624083042700565503680303123600506421088152270330323589049246018448265075885915985334121942146088516903664867453043391556529395667345230080495919741712578452064014716716038099447377562629330293516670282379409009692195045838743324652878974420279786125756672796833431238443416067887974568677059498157583855596577274309554820876579715527848192176210256837287211810246126547196579878693858586334069620821034886966205998625391915470621893659203042376041758345240668931215746752682126807100884728597557919418791163329068395221879365319726746465710224348292210619486607414537495026659069099895985034061747479088704219797651332799485743851177255155365897340865851139050680985413304991755946666778855338162259393706982454172283249305673162241193880398323006257398677639310677059035272216673164869408730147380451334304086967692560057817326493504035329895057213169416031707009190583396208813348131343059499580173580391463260437991401080118854885394757979263223615405863114991473274204898779355753093304009282909811146018867709019883543094150415749861969647479974357346691676967030179769746767160426470799123487505589961352435078259488605708185341297496483311711480331639236186780295075539960024154683711408634896072708599065383067176984838645630629899678180774759345434890718513179636185420362433776171126077897349694121690262764738310393307811034167548162871095732139861127876225565836849571325357149649035013203165524623917195084141243763802906077488949582653032039371815494742266848717419790478979606231716281300513819004575816518118366637030675167328307189934486675539232788356363515609305918312068037331847584040038497958430179484693201263950475391141649141416715874190432940121386377766244025783265507984590707503502650941601070860394134446505270571427105909036714750248104201054379267636391050388380455921041191490645272665414458983701524539108517121529756350698693867819044106806044722991728103660035203115700394351319973328740072701361136684116354576400512829204228186103018908426801634680763853227896045844138859019917948420423044460694150655046324736594301101046003698589820176632745317406225106352275621877580457382378087544722822851017753843023376444491308932110648396493526416958709431841980030839671030290625603767897232210901647470387596293203686833030617953855085400573426192412090277185604970280301239354088676028174907879578649760186209099694399893137029765831075373547286368377166277992801220769912593562411032199885359112638415709866341884760293822376719038162680630941504187895357343301946356844754083196111795683536124727212922711744029900570608411417681800782505212381655507806344463036120491961189883795611496641847503975828968730723010918975307673944089292622579351586987878442266697541084638277645460255269915627480768950167532643572237670050327846258067867978436346310282585752938007094014880338452915852739082634750666065197528388060533758372352684639537464586006119567460645744221699409524908234934339905765788562692963302585436797995897791931371640190978582008709910894692038511497272243926337902688626601724051296872654825521396643071026840090644584041100099547232238209528521913125879313360940246525246424892380232679868805725404513682069701896042308609746648207118643572691859540991883067214998089592887350131598105332185912495437242867910048733382128596732330718555216702693611503702769788127503619826604145915637954048441399214338110849101914542799423988049630079834257829669621915712158545998012945030338441496189362402136007875061569999086224641608205253112198252770089006942981997635768430069505984220711688619519310466065612646606158876139345248115422802080283789303226589937284815924484804079687098296832254663479849193916980494901086348267169356822301180949022765350666444225796494578357418749984130225929365144596525399096529907102897275639030164120793460969103518705641291136057415732530021904603318889142103223746526060854561648898447812464581912197092137437438475683119008129440589206409957194331895376637165208246937653269563114432023774537527510421468148473477450205277047688516919289408902364201660232521210058922407588477296151144826123290879865383119812574631883105017067409132827539781252586706839624682921563252924634931112875082837706270988958137262928168708670642073274090678181852960012689497954638298658195392709158127128762766787350972841988049080163565485177505237864189115782507656086873864471432981266847687359587423974773433499743025537659274353037614177901873543239884817393837854028952137610778130612812728559876551429767215449561581664779521069210020015569972973463932606777246094649224573158885348849212822429799808533499396953776252987656119838365008283975454273322904463283222158897686947677735436476816228559778307388920623289041902580650947081079683577998685647709668584482805184520611225285447458631140373342029450123626479153480548217097566811997327572474014793723454320571816993636854197368456129014855385387141631762093894861840410140540246004265410095129417356989907010917125366238984740724662314634999103820109378439253768821208943608155865494039432450936865084151056431878258526555426080099071813608003335540279159406064270375295786709690027139670542269438838635715042088841117388393917419319156167821659505103687171924484246204723089243335620478459547293408143314658664998259226980779297979517479392220398650647311797921461607953112308421882348296553497054874373707148774168482420069907393277647238984948397200623782415854138080887699640868537023984557812679804176880684777914964375282847255587409448316332245799198000461085675991050942509149605391257999645331274339469976290001677101506764157528734583679258262511781340236472481408718294766366518334912203072181475673517628749375888118129947658235158925027925013326924668688711230261264853898046851388954042259517944196268548894330793436973436419874195934397545755639103002117520275964965760572780471798568293220910498463988226107978579843106655566673927328220106099127940314475794211368371422768498265908148347524856716290701345852687961224710482022846376309373218210847766034964934051178741980813432451014536449649373354932328682691736362156482923718539797417661512892872016182476788081053322678119639342278003301453181692136909065973608765742074366308860782055847385346716488000002862536675114065264254488592980134376276760081688704351105349036883705793214234886496256783206784017890310051572889784663754328705279439741123539635635903488546324156326414314785571981019177067025254136588147280037098646388350946046086984075360798480680719897552973892731459684500287454210038763462408824437845298457117977025702809696491042524511168349170757935491837662132807053781956359743406519323469222480285712874527392008066666146941039335683971118607372206146607785149330841139792394484883770633582480258918385475422348050953238012449496385835831567176582137595166854908982251107562447442427327474583126907610057564107516459580700477736473966105026892629931619913415809185784583749789531920347646181370653193256597249410441183327289035463701831742825938240144806292484305545123274747938285955545316928615052343844728784329443400265389422930577726852276885971942033451596177163629346832274943571556317647387541036515899322023231526025331069704901759913286576861671527803556631760085598340055178837366225166347456025641337263747841247159633430207219750826693785289592900621299255610386036342301731116710742726225509915178084443121952707311905980084026048720345955215870836614455130482284170016759124961785670196456746082990358804396592055900770207723643670492123756871406649391497167872003053339745506680021755692050854154988250922533502988255356088647050591909260867000015746994574899075971606212607060799296141390917225175999124814206860407712110536228055323538291987590086170328963056440188982093957493434722408023441336410132553810578532563174877216974547218441837335056250491630634200028727101028512007696499754102935054113062623751593084223105484612786223516460345082867684001731328151264074275066452772813064468665381633040242221341910412642172400388423561736360051882662291545581864608341116013444959576495372309677441504325058070567839301395798364188978139921770464643154831215179897045483443159872382209328410929062322931065757178240595889374246280596996919114690926561401531735599358947537401213239745365867443140613778938333062557554433116513769234753595520411235956801681610805445773247003140703940819537452400794405577839727241150644529335993660077090876634232597417230466274368651141487983146846835376044289965961168674340876720727946854360804619033264162389248379923602013096657414768894694372971463299699011213024156036825721465110246759268347489404090428792446321249032512508351549584725762741643507968577476298659954845329657693698943072766950817428314885987309140571857475828414579153069978338087283065039114420472555777526760788860237031819695172748932397370936844521697058885378060191817760899811332295730818393967238094794719782462518126531525368743809253397648136405887837588783364845722680043514507553099565127385426818356086567748389407087490472284443289026694838581116243695235468386881768740143783169458054484547147994884290835871174327296469922701169790588736036246148775002678102424172456731732567531427701522185555540528666562421643526136374263733760139853487161501228169634854350089674856190088364756059960279234473244319606599416221936053251955476171423072204937343203904414360857142450217919820749715711526012147476641746071998900641294360504010009468122822234129210413531357017261415474823648397681553010604080354910234329437585998232208529688304365528955371624954668019126925662672356856813440984725081003802359681660857713872691730940562380753401730612678211032488911565206613831038102811184494081482317831645470422760961251552599221735194196096526279003101617334512507209930906472491930012836578594993028758290421313119932856590221242464721534819957200334450658461361300501594466235340549629847858685876296189396831306727448732918464579658041747708576049317105151983099245875408305006939659390834975361866537351738612668363347698644390828441906893445629731361400687242732806864450111580434743299782298076898870796743683306537521829809780797882917963372470154330884318126180060590738950211070629184278954794072359750560423258291816353448648046614208137904940942897708016742419578799800222425684233178823048885541107044760321275700628487901048304737482958046069578173297253491600096638871189413871744399049673189346650436299860920162181934940969322971613034664770087074307735712674113989013711282892374923784639036556564889195400206315641093959032575363072827949832021433540708478108010877796684761140200270891921627561611783753988918086363652672819444381661331264285485104309028434726633779779582124864001384224279190861834711723594180489961375334351995365892735422684990812879730188134226342976283448093623157548652801060461154453535755505137456719148539719894302919973590009905273223471989094219593089710972446344159166640758088576893663368608458965560099883137857766964958124737248710171913790570718711819053469584587547198489820341221291435749288587713088935526423422924466115985043175500226281554204655982611048793328730436296195751172358177292619560614132810390172191579691874847708811465756712396468626410677845651740019098811046768070691648245782289328363428251619959840893853884519066867445346175732730573384021854576882091069289567360107611227593344539705285583157668534601298241796999037823244282501353735757063312130935203624981378387629873565741952773106878314892321084711504756573948350482911142452288932220621412218398673764345220102097297530475395132642553280918526938653667913145417803044947560679239893884293429918258548419185537239413751927190796193379261444187103537794244280325790574410441839116281328967519844837755479057415063403608293775611217246333398113406460153575174457541666526100973304590305905746896211252681486292228182659501463585106352771960880398813361646186301236526487597584721101197560244459434729685481515242936173541723018221378929728707803078302696502497334197160845662513618202410437859964262562642955852427277973401891133173828777762367024722301093345543471696009675484476575260089702814411468034985146871597462822117505722807189137263014796044832353696376104005294437989206585367468674924065130429311607767489706720537325432443657729560200257168598582275677500022063391885834502657389540266742215826926962157475322986190648876439986153616010955271503495235357410747747764245900873165577513957442779961733282115567361223380454453050777583825718225158429641656561940737931451605006429504850056507335818894687784034746716074002457165722163713342632093749801081501189922596982085719374691745390215947436323196217514595478731728995912469003212344403918681069309886550985160476362922862023953531233137645328942306105182250318027413120754191587535470811450877778421241225128380379403685886373668909699398723959167278848689515961586190243615627601725435308002741077397310991819933089793632668911710906991298663366329347367756469492484036298336787653126186568408092647970818434362495221725137077097885688534046090470333367348746494974531521315107936770647658037531648519304016691071816340498515652230994281782955092672762265006448649805901619222930032808729892889517987340772208241481859894386822949740387773169657213493725391312747394760859523946198846093398711782510554355659592503333992128459100809333752800696215027597515970312018313431489482288755459477684891519690074117190852469245971795077589293358412485788079925311979002799069041138861233432523242954857149402093577192971321723209550949379012489512490195049579125100100148078140166610240052995227221593022033303392096194216100613876356528158611036094109014950435508711020951928878597694745046133104649716546836471103130272062660854046783825998576572284139264403224263321271923139860256336207396833020800863435278055117432732040647358921554387486266421637717156102125444136060664202308393160944543283654698698983070754987291032161947329419564669474982024229627331827695076398248169544641202226221823076226498754979232886720875722077180605769755099278755024610407250912253746302821366761303831968309462854765130400117715388915605107927750010997754612759005008183201605970327897538558346015267457192501455931870482432829720644847878825665791674632660777055271862339714252449874939585352382323122340507410850602320781895785745496566726650879657348722453991705041786073053967869842898747244677942397289664673003011833476620750073170690240209026453288357057412665259137310762116400313397214033091972433735257815497012703919978212337941788252996255387151513863631743863198216910600624057432435039395761487080346175783426623252801360582590114266818353290479759450737078284923206916612848167449777179416347607103342197912486674248368409465293916981687413604786572193108302685382561412608776206166658244328345233282420980593432150841330757351670514196482305898136798674993301239198850230248611546775817493139043307696679224989669372143555689679124819499380852576080485518628423815834231285778696257867771780104660799510575880578096429632648150153269644526419044590009132923431519000262396413451226700681251642964135203435649672381829625875074340286925664423127405915911769206889167626806726823744678400273784043443267236841303176891368082982969519110177231361812070081427191846527194087680922460615166326449755757290165236108262797045483199421570430373853680664209190820739099144972290158847635034349441357895955071778944510928688839092034808161118187819898843200330319349992490770557793427250331106805860552536762725479247028377505136173974629700945391104656531468149380471319253798797502979582013882664354969406029090975215577768042498547277826348526163089561210742337861318578049003640391017673185705648937662067091196889799965734937758452788704695310743625715149620622012109804493259134989849591977529382897455567304730352589528984008731312552943262356875901894868759898708087071828257118278927072677713154509687206573971693726598659503809442348977436006025796644983696896681991977406105761716228897845661460833621343110318520807998758657877388063959848123199258135594635425388568603697029327661104237813959148464172076058697521651707467560287335490574709839360157678898881583662943639421827789089991625140632098514008797518564424316849522025251465231023248333552671224757491263372677344267086758600481825201269904049928133039114149837109756064312303211061679232840431146077535273160035475661709259602152794453202745028868255068013100974350396149493570672481126975102079970935711087990366599280479267667731629605742019509001242756460879549949875693657794668864773626472221049950127506487398758632626002417306632329444603843431256241360293657581076510325099465302624437075502070042421178279915670260805991787309213391153106462463080147811585686943035987130740637332846414846811362287424431615037491066557788608369226180140519179809805709336598290490283224855861875411266134346006906028105513810735295625452155110668667369210747987710101392738909503034475707349743635336417831132280540740592082774379563894804722590368310604524126665422035252768049717858337993960310311236840344834319705790716052120032407670193995622640500383333717145620895944760596968695602061644153415467943331140068589491226634807395256925007613124917576187999356995580237278744255480775211575423961631883802195300775452647517770430151032578316561745496600682058508070182950736556000031291436674521066472767722977667054417878359353627532082089394923702085085305116338327120818132544249645571082347779493949875859683182899160228356674779547977567321571421195930846138255590899032643217600170511350320363036247032461712320365284907987033874387874270105758495609424442756830672635600599046915533988318695392025655960632454017715199858819555696442052830437843983191408608015205143957637050773033581527970873155077547857915201689628644256360790460228044380335282910657666462029133120999447667143938018471014396486525518526227528620026534643522936162828855161833071337742125854935446576775299107928976268223953256438482410071814189870418692932573760982384390802784096646267730138205167896090766232866721227326515447586082786807920844013340518776742517726040626266242964996452549258778097119141662120611678529891363185580391099152688537602262764788015016738946392850484008419480806742622124342107324403039145139774635028856628975167920752634677728557638375312929666132026876651936919338772853093124539452842258735383119177802112224078924717669033076170542124334547229650820137636085969387002510497909537524684653799701583833970679068117947761446590159819843003681147403075008099440964533687484144379519535646397595206971388255711011759393772811592053474740850143598110765187419128446204078258093965601724412189584057927283260381608466105173735829171603889915507126105097752566021790379417170679623688015547885759295067889473911879581733433295220899371828759373628660783038307232126409566441219760021844749711197396567185847317937592303060006043615423142952262865945536388893228345644328219117623595626705193886903999868671462321428897354000833584843882981280723174514770227681425026675223205069827744656690813206645201906827123528465707365950706460661296241300138001404565745778471059471843885392704577777655730880885941576653173446613718268830354565169393885322748433277751923646237802406386459861839042651182116739941751617321774281782688254049142829716343130616828444781427693812280810276880348794990182256591834173950858358459145716005828186513251987975888669327001177835399119611936290161451871966401755513446769139902397819211652096304554359875999681220118639000428570115576531847436262638691524915709856417712908670189295182531551240667412656229329763075735914361700394873337662861112753223415657612672929578996755988241440013262489000919382854582113270147473851416266219007040333665553373043200862782475249643354007082564825771318376687338438113701918400879923217256269133073383609793823106635524651416135686542594362808501595984234586033921880019834616549504694959851952433085589858443209419000985681760441848993868139031609064922179385261568785397755200708582989546705314814185407090498320960881958139753771619720169971005890362302996830086712033703278136139240570493423194516414663841448807628248673320083050186419588844803517355992893595667393330820472677238281792280508364008120572952808591969276107316580210808809037263054810590484504872069706163836071132440624776007916229080933949591983435875942633665509230488674759918681632640317038764497295446033133003385145873783581565846447512852509248269379091668193403483001426395208396144112886993632998416803240446326977970891392877339579914498262809246732975563489417379615273002974304472216961619865400276228463992437272611866132805915411212802374126301709292169670784356346071090961200502302836131629035095788234030691689569128281670429275860681932483632303580036987434093423094307842597533876374037807316520791406798886879725340797504723919896614672055014260561861099757951119325819100115177389880001198719232198811718941550561595997537295520830488810329373227625547373492316842366595713922948319711589992758454654498880483243811732040446121169989895411017741380499842883420036162601340457369688544265139774202486642318941016818925949970702333244093982218459550623890736779616992456356785652039004318354002642190765550577153197417105652473116685879102184086055718371330520923475519731572245501630432480819848705338269515823606206862552589155943911792816818063397826122463132867535729097451079210407070472143257688102656620897307672254377144489608688025491871357758597861747142825863371661686275017294226695664268391111260824836159328631112485641018047126133940539170622851489260372953028823681164030589267901054834138994878613957951673889750604951619224172914990259056252337933071445286089061235781248912496551897171328416108317468033455741074801484409349674759116614211832538429520315209594106812670982369354607508411497991714023715193409816473750309889839583848356359953823474342680425719370876410046199621054448416199883614509212240264277275933938630731748884300029564357986768696403974252582585045987242108091866107417635492341429787328050084648168354339692894468103456131145154285831075863358243063091857102201071298914835848847744504597736723600761012192764113947548233564063613929298511261292285075301470132161449726122693250448099735236160741220529923161674105418208293139363858409564042342408534217000189486634252571764597827757077801848471158426714294346473645302310959683424473715887140240274854509786896933642782661241115772387151451503444252467661115281069414438286856484133423876398188259771714149538051174214701994780992055411847821675555620214146142669114187001333113944683198603831462943921146607023047722245120643835423039415979664577056344000029552574520265706830852996798156331800127520740228697862461790438034507480336545377192159405312526345611977254827780345794688398801525470496065649221614137736058743109529684693686840389187978613157077508796053514110167985709968592726441655890321916465392064078119825807299086280102428400314087782341263642809480342470530681560495326556445457022479548979229640837083493583647751881728911518177488944620399727594664193847258044873073113120444278574833638991286444324509218336877270038251767668268472399263671364649472330790132537579711501327818764963997803856863469895638775112610366612964038331137735244571974124447081273366167715103835325330631787557491888109137295692180554933819347374115654266655484000207690712493558814659199253751993878571010944092804943846582530849376928259260772376119504696784476840625478746730956189845081794987449084825643610951313493539366978471322767909265069345343506474068672068327932876401601670292603739471326232103055897300639733143271207799799544780498158587788440599265468167516677752328582222676489592577378951584841157114322859147909890719415850970357182491569820769779965131548516289263155793884192299012083737096961455917064044689770513727783430436084985708159977610874147894365328740665930514167982625682719808797150795377623694646647970275003507192479682063566941413436159449303703968424422227081293472048240555806601372084218250265002810020508975145525753590762406878054637978884442025045046518331728446002921302096259590998167429636667217654273943749464514500306494808695766898440515860922180832356316263175475639635463366880793424450490908525548386598546275306785439454463658715135114574897968015501988439174414005021699251792469462000278281141570605438257006154083822441850326457124204077871159675444565837239313448688832074527271459787742086907643970558682137103928203636460416987435773562779231140207249215212024255936096945945225326790561951627560009616403641206443432254701423623423272112144365830970330327862541218712727761590478271181297366001698639550619178756923151512904324216225508566649995263336263324765848481745143332755451330926396528081011469679145087145262173725824098762715270804398618607176293804915020510911794595643677199202393510645438512804382498716698433140760386074949799315704301001485695484794733689756274443854033863175633508622822224780353294692629323162416049986800182034009427332458847799409435580015270072355091896062973742114865105273166997778421490526057025175362223810084512612815790799999440504583957448012145408036538775791635908347782591294121274902336738670331400334439762413574656201964690193966876557954776679579378493852384335570090801477392793985361079934938849692530075612354137746267113370489773706323989286529268619519653525861979801846216413425322604635770281546983058949939165481364342257173989197882567416458622614504683412264934740118981113626950852599525131862336525188948946972764787912320957856162735885981000770428010797609298885378740919480284347305216022987888119214864518276419132815292937931009539100674773103049648031610671324542484584999229125577811638029548815518382222514131083958670508931650897737347513350287440629079275993784188397484716790604713945543642407972311435535006548031052438600686142439445040294927829369819935394440958602986493169203966568309484601471174034711939894017476180489345760026757994241417312926615044677796665214651743248951305781206432774543717154709568969156744420598081338418090553112771075074753290730059794971217447364030671295729849118979855562561517152941434677466749744044985538070884103759902969625855104309772666783005874357664196076430533649554525963269427798326586651170544505218848999217230090816732436525174406715023283567797481516970741663375342575838453154584553765673904951220229320928199242364851329034868691659895436243519775532223768226685227505801886921683574136606250714235634625223766762158782520300561735637166419767753096268116364643552467516930876085747904349961295007677015058207071709537248418052269840697637989198958256592166945314461607749062303535706544205293546054448456502452454029111439461147687138998167746500080876105093173265285291914370121690797351607171207099425289047362118025592529328462309443112827137744809518146410099598426967695872765651690383038137623685668366066177937019317030361627022014677130449581670809289071232026696232233192196247282452540111511966368859558898009468086668278829972131607347700332512271903407287329952281417507292687683775482234088324635714665531824150425851539576780178883480116484833046530804844931408338462909674024820977842242844741098487864918622585617941157679768025990447129330540482866879983798620720740175121039882971249823867651881649819967384148049520429190160202586961684967694857900187421337875550559524584793402060848933287547936104385779530793180671516248488932572470093604325702361101613425447169076063960340336321950154485923628676913967750191972112467214374470082528435237273687090534690352701440948674913838837593474399619568793111570185064628931660051150420795429285382308648522823413952336951815168283316219368378915460003507208620936860993664562957759730417895822978911151562860759148636108855630046341115496480838623056130593723715784819375477465360955971739221179473543650529127570081246751729378370550201786895992572137536341928115237544860404812334520291033609557146467613374848445878899798979836109159220224806436288142141502986480024527013387376757952108221984130028476558367615385162573537469034356044756762208630149934103644201764918030146733340481418199866700046645757773965040382867773092478760862660607084411843710886620386278999431239274720802932143307668097612539928519439697957882450294096964202053237876344175592705753143515966515737469555477444679973615848412322577374039971860167465486570048574019909169167640775616312385380021290672153444946058103035684166049541685511597892388087335827562646828403662672760982431994347148885144829536390956800427112873675400442137723570169410335077579206287731243253696936676718558702242983647609600665217886905302944497093174926299654206719844329130020466312270772483654442626211215176601117758906793145796365742218759184447636633655930203348351467401140919718538688495802180121077327139000606941263147982609688436612336020613248429629073695235610219940981684807075598326334256594292289271976197452695460432130574884950587743817321794002558067568961274452481761439792106408106159948150662768352700016146932932761162729743084399145045979325599407028808412971470750118493526516680224182620398546855106420315472800917719263101792199381193304622428873139848640318121927630193978506455470958721850598200950596743614806537030748807194718031021741471372452426140682323501388361413640209735067887912830727809331085866167608565425750975375220239610535759491046533970688496513740204369293963261556169745980552098952693837583217256538235745849794899524685746903452536645158518227102096039385657339943671225798801491010110023375509659034260915367847497037160095646699184914129913294296909797100225302061762234543157653710134216533117199257942712675058098250267760831612560399011399807867307613587826965092526579574075575405809835917526920977007425718616519759021007753942429304609241291674309938117344443289247822113405501555036914136931457578609983747123027541877989006150499869032675821995441572258367910971399601375100785122641490054395333070070792871265900140599475464531144881435997513009586341784965645157335023032178250466008111654595002068678994263503399361033506396803869131119247368036889234804937864279316539687021953349651685173693428719329539260134648376686167078746142953598401230960394195635135143868966898186385962263838726609595563664409477824383731891464152425667728273016490485091871794019878407167214481686051726580322163614196363767621370657529555521106571908748797108120812089854164596415172768086327404607467757206566429586073492825262075702808152288342488370038559854275338726254494701896623281894289489088730732102995923757251270009195208162808226947968033459075942762968035221606319133932551385672316411055140687022498676743580817522235148106711902021326716801722734247479369309164659023314775049194750661818804484248784205812128109554932463827479790921742117513988612407897014407683407007752932371858226114155328005641556707195783784126488964239876793275249148301009039047292923545148012293076815572253033510037780272753710968021355321029245416517114185018341646046190235199805035035804402740115369558932045599083399553800061238815145549651437720399687201323714575365563539605524850727965666000254747055098963501395962476103092356687409140707729196208133900801463103850244753874944488726097443976369996853430717533881947933760934944570928199918068021888189985485558470638118450106289703490912546688469736381832534228346632943720779934500733229955191259479404950537122488627738022888508889818333559673258189470905551400136707437192315656920672535932781109442403189925458760825062624555063704451661111561394079345893905652655169945772402200942616505011948661206043034206953062521146168779787520639252357661885559971486308843235079816451186221635675492888273853207164544179897663662625222466710638657196294571666575817484147476868596721921266046923426457185049444105571138142039068579549874260911604881062803183347162635416053392448509543748321976547377517810279730538141776295722646564489320095790113648361670588170661475396814705101778718410922083507593271379082917718150734255450145536456808253291625913368257128501625790972986675739978259021621948295983322487738998913901360129990356855214926317812076838999133962086571123055123925274633610696335075823188119158813731336283353120524772424569277954944584276544645379402412213247841287332295732377123277131464274795604716826993055521878925836221856469345508254979736928503591576000539583454831450239252964472268576552036307676590719723044524075301762437116418942021376156270450684541806523969830676497475758874163615675682544357526638119850882432317957114370368225923676814996030656912691553270152313148269719744900357354742317280534013305066327267475638044896305056500949300295277727633360562974398313585885802395467827389823123194088292660508280298122439871616306233253736431183391216208769302610108261138684638911502080009127160570950578755427256491394829877850121823735268619464948341290416355765762466894772995565006032375070735316707345565649244074174998562000225330904402056422326057488690885177025006255078641705673996315968141269520517696966854219031226434628925386065727571310464235003902713902581519768856337655816351042940496351818709600931453206361597938691077441516185851635527971931108190021771454517849142491177029231269444195807625971719116746411874728971691802602782318149515440318927324736322597921070761720227694893476058433091596084293437402494904055069814068469667127166973403891024837322052218001516507101325388583585128637253531823714690219768560005183784879186694541275413878591439928105511775534118285320599961425026189099071965952122376500549122103918950915010102980143145646037041369435087286712834976545168623857835763497406231946658391897646846759896116459561919140490901210245678932115453447659405815874094158843018599116740265970970676842320601286644880707521948456396016006909836884026497076860159351384680693169755607718969511776718719686593220996534046841745916962339624546001267175927506459887570759198746092861618712913496424356275228590622278584762303475417748757915333042434253982306328423176109259664388630052124952320275890475908223072266237745928558695475594481125104360395759448557534807657460182581086115079157949707158655394627594486182440524822211210999863070635140091370715896783538806381367027566948259147234770162539112409288128188936548719494596589610823423237319564370369901010112471595037239842511597698749424458252624036594011555886471660195411771099638425513499394767571595235350688290488835078974782922888660509682195095101088053517411792108098740536830680205954328536115503036290645093346219457041573469911409807451134728667530383421840763301430102494405925247713546918248260965672784967842858339361604823271973808923888979288568910878755102850726852492822241738306657960732706257199425963475476257010036208428731551994153887436026588489884134875864786617547107576049730561536711844177966566875890832684425118272991196244066407660161354316969538054457043606139630439137109312687212078040599447711837828861022400866822153428516062189903366102044611805591161191432596825197341500020465949305040425507967158232156436057547890607791072406737339202335254927499225708072498790840219648523275548773816132455252664162477283954804289738301111549608020776632110952832164223937437450998794059853380895984320513602480835433951115268044188944958193693433012818567734069992858378278102870217806398981423143255011272822793812311303067021086570219082354067733602438103124518442317948552511464492052541794910141006141674223033167168670349094802580168422576141262742111143778514624870138420651036840898837920827318729671647816738713434840276742071321155021994490811766444140180290895335058047294352646516621001720173148250640309679972237772422070488408549120403521993232627276281035156949390315063401477511166897807320617696335722540591346442451712610214070024598618158891608330694368405681079341040832339467266990916422470343960767876572593020819533227494575335185944397708815815978743112598774457213887450053256174614554634670539690987074639221272765042990439953704033318284000188169613011140086949818846163029498028655012486057530186347430475997356080907997928261323745539919083068905482590659113111784409051950549649228733285885183765458624618264172460780956275553948514381264052689114997055316816010371003278297067231516402878700167494882806957388209578316269201552708961264783277908819020951826025987884510130513027510799858978874709846504370786310071766925091331691410055226874763461684902861283674727538439260116318228360594010537552392210296191136119044584218681513285396875002868805064800808695326462812383388363275085899327963530607818762059590851382697320433596849451567187220525506493264770345164286163716559667912101487732337966245647350132674416338758225680060925377020032768526721108081736253429360439481406657213148919591622129864995935404293751670721583835583263051585836076367143424239568818505987523639421832086547284266951913890854551014941047471528584174385695763799321367834031455293460926131812222128932666328568522395615498230775313966385975130233262164671837879414256859390202014895519308623135648791052608087592572588954047970440127860100293592805610421555395412413462743069707424295165690115043970424460037326006145963256497880801862031490769821115899527967940604904663636276451844238037778055478891796973885419399653643337574597737079967241070309154907747681107559167142116880143283623058309076247169988415305342812630247770357673476236223970844608671751718950477976857298824654206164150965148859004331966272112044239745873246343286689341327403103962848490269521122919236734710127665289788114145456174711414131357890921197139782554625183850598902380410930326966052156007272615041476720172101211311127442531839773965008040198492109946756252051479848806574990855762754433548327329395779425062922569821813941203604582504966626275056217392346577580953709079787857810336251300077008601077090576494984757234755333708780352532428760232860205486372845393086193123130802914258591756451423426407901702873395171592601941411465893928684353197233447723624389297507295364886031394014212579789330666021785998859327564253451438894950979378814140021400241102949471539253913947302064777503861943449086804783792973544224041546983225636670872084708556566298179868445873268898494777207374667289404033324451200708252142878176640306929188446147774340407895088287029418045013037927905854339216126411800912005252451332749413917249395668201017002814909503674763673525758722229906663622586388488558152451791582697388182468318262395582365602681739948214424741008487954463728827026293056027129796302711911495190821846666201232891321173576344432988879276594291912407097824623948164540824678478878856075839736562898342917571663756686168246822265710650884894300646891550021487722349371256513501863670019048037130116423537245601410867316378407165198638511438327133152349006564702832543778721877226436728366186673290528719402783048599489578871244345018014451726080541245658814941272531044784017625760063903911058464013705724200459900894623671493737576224586261654463016418321081194496393685188035012199841755734737653565917980494784218789980816068032745859842806047722926221473501302718717671483377970911972658110933361205414438096244761991852801653305444776594054988933995648625263699228193697227910644195205436277285755920631154072278245257648096977606169364989114924354206607955067362416683340290437948939861660368295796161044569039541367546596160597065097288378620431189718352314813471867097321190803444617121254899070020734079582536269865335568911169471362493337927124798596765853058418564453651731279064458044106509897602855874744835700871374630135863076587882019781310163237653165762691392408591034394815458475712331245250535653263156976855369652116971733190029083689913613351862921801678806288723349737586871075975231891875447011600767487007755677134038897170373519402665014130051922372460434096002421740899453466518698693068715010134710496352493592196912256621378117504851595983972954800851410398825841560310303839677222828388268830559059999157290040115758859152078142412398273771381638803504846171720359536141870098280616627326118133534995899754268296343918555458108929351808330590170940229378056155382928450068893548213882532918890405151074901016694286740209933697900321740643818549631076709289315649453130924668444179704697056536263666074560802506691916743700918746581462101624746508794359718357562969935185795715137568434957903928018866628460783064476675620170622825542746925981777142827234672319310463508487525586860191406462001547498706994652232716253046744525489081601349626251423879543428919730165190058815420938282804692141394187613140896313608893556382344704722623075873106377933326062595662206778780107450601883045969866130750187379612046620984594832747763950084345321259157642004929036926140331468999714711528350325236163569780694924063511011705399935337943853725564605050131449436243282795231997749299610254805207233532137055263685409129298205845627150517723000375781363690556981859160494660478677085568781078407611586542123156436511781765131169978726451490740007357676927285845053434083126463868625180409469516579918635844327472907323117432149870059649987159487560342675253664963623818961293295850411496244408191753247756592778146747459648739480979786488567212456677858748993880450420382581593230948519384617997778223678243300061893476217149048000198630626849369336473345580560563003439025101928933560558136710483480843313637342008688055142346979448886394955101731380507732223855538771034288535218933300447703806205679770297309832970276326694939517729817736272666926423009576548502041836939687385433428156218034097158048904782953140938397680154233765717279855181714146043100488831949704575119970091776460043564673388410233953709716096518168228982217675795433529127775865962453057668174015276734619931301842709993025157336907448893433150759096544515245646824779620642015311798686510317650824342000230827895250698361997695738382925703072374926871800094725197178150115225846334726413040439896764199965948597245436883949530789196079699894270102842159917727515562749207569798046970709278848732946147102712165207938954569225021559417109842304965363992853060121340482867482730943956812874070665884749297014081130130206157850795452952072412461702506741969231546271222068692556132779714420609916362398233275818588969688572177116392026011393519196446996643132335900319710851280665683112738448042074084918972218637083636431665578499428397495867162327164231767342253172050311389524659162861837102724016104578646021946872255781330387538677667305627294784773420367125028407066999012402170892808949020983181710285057722190680975872034879920117147785677581463709189150518647202893253690560539557701313827426444453464341993077609460489332517824973203619344856367430600086799302694747952728365267665943844726892359661609549659203457297879212718911935399617858052481061864725717206220145274384225457047239001266939275135562513514137863823138529877731342128923379969567607788680744053709592390186404524122946258084419346820328430116273402787194568317621551453922732084384923750647490273015836660192200276496463931866078786650500210608847461212290127740815158429545042778395929889940809703609413520344903518707002919128642899728150422343720562719716073847449538337158000240817666400231761415825175704430311772107409768658421128060785003629369468336012738521893740163725854906074635674977879384734512985769612857348173301978839381982325749491628997511169617409114730511722073456456400266406652759560237472030308924768333260982410658354831138277102855344580704127993043922995081737669300101900378652211224732090289251029564879446605843161761034909476354811200979858327008805348693418651814499866379204060568068187130994381848420032742145221587381339336319927356024140842943106117360502097229095065261638140145841870427299005556524637960956868019653695966414684879017644845122404856765931057955924556429051247532834786863190383539439187967284813103749511580558148374320945149559621607784624807371984709031235603494583325432603435675230770966433949653110030335901842861899608123237247781097216181403475986846854913055994271053511460871576075415519588601790959991110546005972958508651909357057371717226071481418535717897831146226510019107708081179221761474744144797300189348909551022873210420979175295253050115459688527830409385183724193452060378682959497417229978051284395704638790740553632817193568519372011688750507428902672784518474169668262685930222410136726351744048606610153067660465617187815978657065231662091353540865350425920548961232524614243287955965505895927145298414185321937854862482980240243435768464725745298797286673546628296925631442839123014685149273497868189170382932237346835626723807670043490763957877397917416916281635554515771655592088958074462158695473714330720855932129520801265069436015258629912821228964847968967012927869241044108136879820815022606682561682706734185134038501357393296073428154877768263895351666063120452996030015665775965129836917557421884731968484591762133292316292630562358884289779739881502212477370539431315044507270229907210624440205478733200219358756771803292532411046958752649302994863021469142225227017915927974141722175326869515294146056849771439126855905944620594027637372508008940340199347269176243273937538654994076075145925440277462138040686300108796194764329359391205076308595674696671270832710500357808820093242436764627941630570814710688495765343651757418441100954354885864682441785471096632344031796486424582822273187737013233570581673196861552260381904757451015946720514653248703744327813740158290463726543650747508341979990933801502673647916936961380117364933597805245204086072596625689773725751153633760030674399542964371205528315550637833559542322682952919977181555047067737171382253737269398668559860288665072272583688039546592762532313418963116980026565060959025064437939307721340328673208779654119775473278687768565228050171106224435021279611138864619482640441738042573365366635171309401907691981801061194757403452778497755971842260204041677599094304298275338117490711475699223976507129405128663822114617148521267149099637554978621938010030479451907502456773963365078034814724165421902951612624751932820401996693165387471335745403871336008133679797238465230399373773181341379432041312886916071629074656375966307439404023937943457573854941889972860648187312234330441681863052542077260178501550252078688335829310573263160134658953907932291150302857172827381790145271185020165742251688696464174438955364260579500871288638843201919887425558226059576849309784310006148793273414445576604550578912018268116487181955195640953957148636276472997189612552985580078789694881622554074976801173633545045128806584623332585535122260326219891256365401799931771334317162849338322690556897345124705207916561080187509634995582838838323201667961585374222483884117360804643720937701992955574234104503515795475443717782385937086092926976398484747371809943650225724308551002987872396526967804979168123071822455640179537483488997951462083045229444083734645391844782966980983390047271170940153808992469988956038278314612117951806325829309558449571902553438362958141624521069285902863313051264058532009927287245666163816746731255689875394429121147698646106500517612678265351476705984724969344627307042898844830912579253128742914901610942342094443418802434269936744815442804167947905038848843288356052694188795716856889155657345012042176201928697682029183404177996674891283367097477342291619941772829570173555444979103319745040894913292132464596666406292513699552215118466747935943018195019334059443999752731951482356028470355751959690154813211146489095421054941884212778545122155986126342982576474476366290455049776136200845463268017079444479335494408424058862108125788476874186335370801150497657995454431285552216186655136268375702652905836887503283089907252248223476068050441955417425297527329948597677560754041993536362007558285123527045085847504504422146400760794488483296442614030383862729664400168326957598948250025293134468436917575544276092277573590915404373595198553125750195079303340876476590494868494323936385756664100714209782721088108189720095073592366089161348289450881019170288548140811199513035968539630828674499083382592419872884577181352013637754938568895181571513413000706903139419188701017962847488101334727378546064110724125208493905731115492940771646982684727149860296482968606339610198742543954788485451156106758550921848185752235846333800740900810302874561104982440257434299220653069688862517032190899826988388245984247618317424810672644983872509494379251870142284825508367236685596344375257654620258354599077100553678506034652808497151222563621457574281940472973370867965953405151168758592140796815167778420338585946012606918903349043175914803240018301307696742250402611881072785877884766674654302622216475388199671438496882868125693826698704415443020477563447079380871542068532482298315210922586931780602286781725103494056060104005508885783585508173962772680381775227157447972885395968098006898141315996974193771410784973956810197364991640652432598148618528860332209541691391306827562562793923337872385686839805616121189515666854007104009358836844614979237483716342487449921974218007758174275713164573147067932279917961036572621855812589611126687321493324758614286296952686703610873808568687746141312952160778247111773261025243194760538367796574992803464282705213093032911977978892372293018405375861569831861925539340997617077385948493011829015340844143267073873109346555662900506095558964240373419529554170888649355541062398522827843834058952304841702968541134378918321801845378902487247205877271972783808341372805364221806265335068184400224085744286693771755118178961809574918678069681235398688051537039617302140347554611311711687341623641095808379781652667884759426858081698251247306972549331882623279354040265338089059368825260380459005809457809260319834133062728397706453872195718805164673900965968787711684115617323265046412476700285870731516773649983619279893171169335287570214993613460198662706163642496750652733548541984328192535882788639258742438535212746876442306654251671485494058225484228987550454958623673539633005758067454968935762676686512239362151136736840289891453362177675882138408374371925596149638331485136376113242299576907630627934328960478417333152762291040060506140874900749055567459590636147144216624959907246780225815782837417903498054473242573435688296525134292333146193236832170770062264348167987108972908206109318454143120916078058776049881510670049538479221183020939264691813977555251234143390373611795286036643943092492173213861958926184246684630510231345828414467830519644226646315065378069395965381604189660724451321265803674772707532180570522215939189001507151730622880740254951196376274344435121853633897541155278113025752910705939198633225260053802112652694212504345237746313682349298512369673983328044054043468258324072952341821244691992342924613602599316963893183898369033595073840592445364125963956562762043351812887199173989408056328578542272135626708177332737149922654843276317923207958840925611372569929163663103895833688366938796773193297864695369972649986220072395129331923974697025152910405467966612219098350158436531939731119448047667984954863729230501107361518578753556318903434522379304493270134791103431102961029635881397166786762552171324382238095530527115665460031072985120275660015801958063840410965467549415283577598470606448148769480829091637893901285562103253506994077310125036638931637063380529509090196591903128036241047791712507103873940702182573485243210490640044671716392537983713878838211304260400410657934047013599442406737645934979029349247575865666599355299593295204410419851252866667032011494741835555413548671795945180590445109310526397765126728796654637303665013973382329902882243290265693497345646186337222294109983700553848848265575215159954545490548286484931517288581076196746799581171675504544322733538186861162634276463680815696209094998289094988908903678253744229046170261118700193367513089776547014599229259311381090646538756615334537800611081712379875678645140574050171796413542118533920113040472751025356020166464849558921458591687717396997856246234192452571398286416009301167371843802252954585633447855726409380568364112451500337591609859989598681181146164373250489307817439370692220313121695488888318145458476215894329144925058738658771384113042738863746345444498686781025448969917818177767442103408916324115139194884972683820657922442544733585976301261002560699462871156602436601574455727342318803740016135601089544295772081738346181127639554914438630927535675154804546406305419482024604836092406991253971256648281503545061291511750981238345527334542628189611028593969953470117516898885397675890815892267788144045315732694211043655654845045165864995949925874567198175616587548255942992890224532067661859548155048374422113574740280870770090763457690486775219850510483160712983337346594795385619678190037122798944571025144608148785360183864008499414437533212335478299218590093110513798580223870674335854776625684911882553633937802890907868411039469494687400692886815012565949023753271931322819296354114962822271367174731958538962879191396526795810527466107960150284250313704366127992833996935413024149232870944023393647556573702424547645175881994161738033086931603674880850486449431539967923699986787172376616330890066063362013251766942254792161123900002080540780195744933413596202225834383569814439501775287826174814787058200588928659519744353755473651692745581587129126882910214596024229830669757394126479654238387325225531636567437511047456609778031099512062372234671243807980720301961310790060622803983541644973009778950533254693114523758891323491573461317946672625731717839828755408319327305392532182626242879723140554832830694554236934724077113536798733710055890665854948219465514166602920394044661049089040119813651299195030768987034977161569450109631088380103260991984585487583423675614976230098078326519736396310832435752388890960087324508796100917086807237325699656913442933206098995984449414392775913851537658147131008831110225876756294732741844325408055915275415626693119253609217973882648472093928895671220997680181783983682517029541783857860686457938121755632165748375928058047382955676635643074654271444790635895931890037662916680515721025690311862639201819795272851247436651114215745715110748146394634728550963904255477401347114834148778160985653885325887106725304594015668922049123773948708860653672364035265739183473642916621361479270691027122275789631198245687689071278882376963161341803278079337506687411306553856224649268132477981748192812505634376427134214831291416534849009939316844940768542257610694563512494357114862838317986126709806586223212201598509461296693685152516677334061819880807033767753372971623609764975856712441331245071028198545241651324279932596514393813652777875717003125257816149250682943019972782788325821961049711585747105612470558291975480589593887741521780001259491668681077032501763542740311780145559228395999158011710609739014813977961612128343970750594531198731685459526876781790056090739644993798542085745959570657823291389105302138327279344767598570069037336503390384733215496281382629308377243965208206224231577591846528405760824898879830849897733211855996474399243156365200112903680694911944605166578201648704534730232441887266777065801198034364225781565314110288037308806962910992534941032392508510886394771547547622894890323018607644429935412020790346000205921835311469376699376920500596148236911145417764532565176253338972288946568700973711958903735958446540990941060891005105545859623692081556223822974395299993386458321647287710884846278544546922677849380359388571987442658548380352343877576967525407848765065445143376404256105121722762373880335762795928718758222344830406626778940797717455857932949254922672267310915389373699348447935892989261018168662184014772742149514461094043345484208767540498951636793062923903270403022744140290404672298508640799760457092017225546166996150279802716948583470881921320772319128574992867780248663971235190333392500698350434167750080683791216129388738010673094969143339904497519541958369738250653285504183957271008214849037572269891082231844333907439138666079402088205361336520153083707227569141547157783511770739896171437454148855257999954862108310127536475082407787362171063936944248958870872904349046682239667771499078604422105485824680070773738986325789509638897214671653503874876138258108835008703482946675011152030086784155373042139718264710364184375488363749678085888058453298412738694418803519934993678722951447569020083790515345717927353319477560097156002371235347951548896287236066112765247115464008605892072518903950812862658953716855799104632658102586455270019414757339793511136963676555683073486596709828177994828803525306528103944524284942296574094640832230822710366811696993419933075768792892949907125597484704035398934507727470783072822205014449092613094029686741572267974505468203998499647365444393176891359290879771500051392589371429944859639390560266875049222919028030854886272712769417895322960128662334166795931709032714432806701526131674858279649952147172280196494373224957054130603477630303649947020048427157684282094029358602017300814113552205533262612364477088344325050219023008111533545716476365796613678682374314599196635596556316530553469922607033834781692873366971734277369083098911732216596511082630363497440849861501745408920873885335484915240967538477448251911909060219049435937349388693423787038651252447594573190552180248794610304936845793858048356623124700799142424883101985795351616280094663932038702185453258264426962443754450151184916622951050334244743658129436734864068389909199043222147028694340182297220444931919185225299408534657155814964816433369208678788056646173623496551038341642078384792271511036279593988823300944901244678417443646680000077027686150394408973403222533715833741760902624568042115406484502146998803030575365939876064389200325568611122156155594570252784697404411305981494925817681402953355751938979086456269398322213390060917453787945204547871776836351183399149136156290507306043404631197560265623852063926077116458173732638537644177271057200724577646274093622579162019757380019764355700573722508983548685834257513335167473446530125493442654865348143735137211923285349107463116543349400146065673435933662965025057550985488371690747302084317855381245256327514930997550871134019556198823554353380971548962993641583457935998745665481362639738422786334413994354664292575507411787352009189918689066995538302278642876071041364441763781527810202909680117799758357228555523617256095931971034874068043141618050158887318282359874560509369763807072795432272480932543225868459890950276329608993612558076011202006810738888837764470188640074171217990869515971869456097718217201408310855134111893462704340503176106037501206036059665529338591511854749183173459424591363760245939722487427402856166994886483477950798180235129929515628027172391417047780259273038647419704693196585481658413878694996438535595714907543075617484814520257863414093677794371718665873526901434193842333713661471744801800744261547698157643342102126387005495060566475628382710005585163066546484924697892673460762734743468594267258299371880040539923530240132893298446558487010268361651495435931660306235052016362387241380252990013063771824884272109702466705944989137787125487432663038902508227253477911459025267691878363354350185092404372085181723627291785839013640577081828774553570310069784422064650509419117041709257302201809508795921774021657841923229277871033867889205564272738233832951864751886566744382377101162125241942583771041498297740497919943149102325874877451459739269382176823877487043300962300061193385250951358547497010998801880683845039895457335582045704611593222373741360405398221355850750531875332950882020048368532424109565059920784467570297337288072561323109069724925910058442193657181746324480899942704932632087679831818940618671458968541651445102661403585532698892803424908564142998445466128046568280563093287339740974915891831159860469820351996296742054968655595185277829568931450319327659936396314218289115695113702622145900162789808333356358881195333980182316848054588836340085284937741599026758391185499097408636941894646262039615545916761835366964223679340218116919647610236065186983435770972166416419268003730153099979827761661714277952048104269594857577210027771361861876504303829482264837271856512511695396215788997783146819363877819080333696760351515455973906509317197081051303539577146952474668561681589454672963485855543027849403789148636579182853094203795025806815758347097858165136210598819479199968826040544390775716806369236842423789986464871859017074227649276687852807778896136388984467127300003653069258844947177636133390715082958572871211288684206185068700279299193857871884043239450562030749811398177970307901368753195368753068869802487668281516752906588278225028352973080159359995859342263107302427012041336601913431604539751135677610473482375107666241275046352552586434019964173642683130897782259231933254640394129812816583453221829153535533029582662912286081882746852800267927802017366137661848495522004859444862330191025895223515781113226564662458107261029053697749163045533809080116962077489714516500525227379444548926906717047022477639242200697079939712544724641305918553670001286944063098082919559666423293204258701219974545153399089193042661248839345377596877548924817202705748556651990249734176295426363757122165819319771015510778418829649913715435426470734292050423501142040132638400020972780740223815611639978085195104764563451065548331754451975771264480894779044724162860850432689879288740259891742724145399112670515448059952177779193459158401484345344376695007798671565829729734938070730672713333414818983626361430521522617962113676103242777391975435059124039927691663027137941254943661554090854696802371674197892218702704196745579614022812403075703777054474711561076435789529547050691674837086737634868481741226124491753766479017131608640865708926847441290082771175905008337339744623129608081108072929022463388416604393737071549510439064462008532654117503035786762606076733356007884840034001965424704651148040241509749943279743407580948268121008341999891145928897578451283360932667601686234785870677766791016520236223177897387727604199134995643399797719654712584162697121859890957489304176276916501916104835420197227506371063146694495741029280733541429653759035371009961196917132189185648213090414311951294164356360729376653297317703456838720116582115787019179104194145882507557667285988579842125354165247379341339639786073108791093720474750732336773933332768306760695573068479417050745461643851852970219922991797314363112976877782304112036954058190079513368733763852631652808489919508339700036102079005068750651193982261256597391154598543578070487058137860917986757288950063190503491410883384766896696286810036210828262779786269023180809540613391881874531114587123059898595343300992535320976573933341657971337001131501552456321707691902232338653618894307436065302043847418873924832457898548668243770231538593818015583143530253363085087994512063023666764933643826250295162726631298958741778290688685192570779739115722190587697833585056643022239078494793190653364732318617845590465089998315551732778176606688902298701608373047149989826774651437125083061909388693365509681579312371724021324302441321627053114450614465220761372813826588930577910145035739471574783842178765685817088047935866010251382729214190604993660679110139075974062042850455744650351406788524321415475807756527664597909539031195260328636798532623951084845874065059093815379418174038597255374441338029359682784955226009734857909932850491421800147990777671431946176592126369010382049040417367843548354644747543918613365213582634090192829853127609973623343344292835459619171393633376354845086575625813867779916420624000849421243882078995109175709135538870589776566784572988134911121581612511096542481303222448072308066798226926774567051296235615372600207370572976314181788115872150631173393502339531167238768205107442744848509309382373204812599823091308906075697305978055352747290220562547622352540488678585687474133802330563695668978121214488372505227448942004856906390910874847966587130412204142839975272463997905029422358406254499846577318147334193771357031881086344317203674688633858288169174887643195049086557954046791348341209791118637696820961565897722298010012792418678496015938229650943492175747883580457989522378747851096261028988740184748076339531449788829736078454714118903118413510727760159624341627975795959965700467102134659964516300201438808244938058055858673431512584519231290298358368840912111714893315371034225860734137587199709821246792847165423214965543259235027901269778299775914726757005709332159749663934939197630828038122492659122015213131292615513662499779286382849841419822510861294121328135736561876030973749663930042722517087861709845134719998311552391318837493191960619523320910000792702698004821327540999122975825965952523975874888510612516447171225280898984210000914764185313715759996723776431696236896015700552232269617744112975220837515432494694072159297180134869177085568192063676427958800865656607022743354709442760311397698847333185404721003691439293247310387616896984742644391419439012519263450411017772424476243227924548414486308486908525686367584074971493570916910763547204182071831210188081095106498047468885400673305441094996084502840239486748981238569257221289224064955512683640958208890833978691233767347029453466009542334097817821033162884563786481581025734071674108729605836519513929221395148257763942848643575815447241031753797316723817984969385079357700686924969060537775816435993199149969294026805394107991284941657332410183537354614384527656528274890531215283103175275091644263000757109657068654681162631272121240680903947279658406142257245596748569824369039284025823014669826047710840430274387504021041356408060507411282927949653712852856468702281893634659897516812529014179269660389874352610617030907612543236865190699928211728157779707354100604858747070859721655220959590430683399710881884282992040632668912329109386059568506544472243343777801174313434363834532585031214559031518768054932409212986082614182397756482999593380474040275780656578069512575609647428587785391575395105449448524829236438484146515509062081513811639086458359061848152255732346995882191770352033379501996362798579855964545803370058944285469405460916716461687160463759546595407486023592613233470068747420608237417938482781782139351871457420994900587540364045790328175171649132695783613268422959015278887583153947056137013825060533117964640451841379925164828702787813595053068927032841986021771467537237902608682670250062867585777049902818977285322126702772233089168137760804220578228047397090530681486355793413798416457721348703942023906260586570476195810977175794810348834763840501887499102282234862651541677707100962775829528922438751309981376525436589593488393699049126278878313360958676963903609049463262167671334048459758549022169616444074434690141828020501547602825782572508855706701599188650193773698968954779050638840393678319651590175984079751247788328207624752798746227938995306326521957323812086877505897821395550805056455009614941870094759041783822593449585928333757142617723581477985234914028520641840040515279650162030804319949607827753617714973259401993289684676072517923426418607730667581732387853998524166859900097818906284475933895644780717808618233390024806459333511969874758090443532642355353688564654924681665185893279606692249347464667910814285706424365862616387027150388038560530871140733934075395619044874805070797711814005321560026760034400675914665264578687270256146458960983033223957899214572467707107879189305109449570048069396440363518148790964165965246479109102185113859875262736793628681011133351809182116187397334539191506847537316264751032691267609969783390568355621961026410013732947292160678958645636708143750105150100549423576911118866923826034884344398996071221225749166503673019633482183916213214858919486551533886369567028287218856444610174060582885620203095712149924952517683548745650935869451653743934515734731600379814649656697745845017401656047185244015576399274065715493061323137612014108083812703610345258685770330059522238206650610362816913301243839412669044528732536834477803276039997816116917030811290653295039435611623593210839178543209270522700109693683692681047135684214157805517069362635125179899054209912424017519169782434475781743138430608933764034605002562747055725747166603027271588150216303430523158798642967344363758068070468361509331955521791521219359704632565332595813129894420355759568389427649402026578388116451068094142471715449592570115028541880146715776115046610151205525254556747122891294432387081311253907502809746407072372582169860066362204389742083132446137980210437540606448417279840567260716724335169152345341120705782261876012922692053530500916472956281860790822789751652702242351606847588894241920547987775917851850599228857200077704435035313948218737081698031833377845422457158473210968062470048602856527034487719411098284424367080759559677435339073238111240683005535462541180565621378386487958784231912607428967684310393449979783997286468576923490295036623038236063746830281830641024341370097645021173939520856309009838846630271572075342393672556635890770916560501911380810629754057642420361332918025129032352129521422431748350415655814748070894731115707507974578158810649250257540275002873727545504771242379918835754312667139427197500097366256086731585565482385804481524915599637813510745969863495968322413538420648521008297563060308708744417854739714346242480772398206384280242130773328330178678626605383368448933495616312059663220969549936280137546359072057569498362078584977360612213271000015076604448985262002600104513394794267349345371536185526326748385631616603394607622250579634365104049892460553272696622941746892847020388974107572625214551881041107403966014405719167134018419912620840202077835538988955180412081525553990205698224347172163761230394212038603360661875240868581939884195781823974914083703069489243407647222948265518663943684270057137452037603039829273212410399313573643167140342034273858819262422780076809799227224392275336047348248890408639353846279911477943499388549774197279273572518442029632503450476165769407984225197985426082661488305107255758397794492572265735077737065640585426816445909337675233458723083904332351635039923878056460451323394784939258066123695759680407549393109123797551136074309959173092153802344409652405927887725539483696259357385590645612333327396713259079124049486291616710956907874511656974891181459037759593437060589509120755678663891135489982849363214035584817171438008251561326218732519419904318650939739961359925227054707562781107907585325122977909598387906898027862531937974538921186250450514094311753984587062186269045354516393745077885145356950497355056192896358608640582758212810063371457829226786972826545599468020731174188950567303439688790969981232982834634023705106529495041285579158405411563508406084428944853781585148639936499541387479969128541680562744696198234918029960120921142425966425494329265843306255919809241763772500589273703721036773904411348061256263149925534929662164508282523699252904184565977789427071102328843671183781165962544087419902408239762197462385811558947620318941659584046169643123238801639765839065165856155747168006960314119523633740130148504562324897698245713977946020569787823748564336232603063506191540054520620354237049062178849621446247690474820454191834094277942276801223308937989174326636125814754582615926261610354100391209929059557305313176617381882514962503147606211876229307534470849232536439463429764455318164052406672173614313674238792869942219005195045257239088087519241659176787664332820296005717198717340046748497429595635197985936897293586551838615760783409594605476085678564936389428038190721714690818741999467074531709476341439634254483991973060390940299021937386399755108092017719460010745018004918838698654552997720037292084006658028942982803035726830907410278677373222142523240753532374591492753482880368961357749415113178019304574488134317459546595622607037688889179662881449611796522929627278372689665951668016383738009067904583437827093269951206910992776932348891181200551874810460732702678960927286175802382993218479632329782805974271979606915188987692952275765410742934115707724537252645806434196021428512828400073905368013568879357181209565704207716517901751798256456344610368425763291500608836013017078082132376789569811066917821803314866375612922961008224372093370564584703685859025591319504122118604264583330572880210525432347492035765715393278404322137348502842169350978692067734520317574786274461687919673725016574820762355769537348494554759512041945084890691020714253628605273424935014796910604141786618317953089686346201134171808663642102332425343208817616391256269732398544365597869637326015889755575809622257185071078771394461427309936224513329859826349001269880466532662884167029503978802081424187679103051918358486973828187692148712948718983174126466640299837942330472825252639583165261772899848742455339333874517941446108353967980184885295944748919313736148307057184809881377743744586073396484522566504853292306967520561697568963813077697921734460463798495844291144453375931445392231620107294996951520539134378975735791860554325147772585954354761920745035455246489053942186811568456205924017876951910489972754346743898024283145951037585544020609422874241496179190822195936550337514521107357370585819812695056840629421326746672437225273707192590114713539724103046958241355302063934026437534600430270856949705867797990647461299963997904798069371954848608316099705504800574640799513665436164833122425803589177480636018249283586338759978631476697583773532776244273858484181656917048284312339058150736970326164624855745340710336981858672769325131411207186830389114989520283696417276514919755829575571701858228901611584548120293133198994293533801722761234455906506674168809908647907101574334649416587517595130413314547600491529444446764608630632426061853354218891482541214032425498062945136468904110971648154275506131011737081159862752442909514940967415434557534520370724166653992915161808111241533195388588772563751213913206392732662593459867478867751924728532570215042554026614128165610066854535193431746117120130303712232434319241045894564241975848916011013721799876788878788749373408527259548472959371671344215168739721734338194646683584927417630057744445531057003436678304096361515593827544159190942716619950208107665509160529118050947897734075649246090265238729563468701741599721744139201215102421854825715138485915399246788868234385822276678153879363472844658817625166263261858907577546491010811970853866928223211342721308053610621696176795310025994513276292981704325177049663618340451516709562089423709662839963905459114398467224140935585601828788836903614239094499677715092916826565723649069594382926206954127543989152547593654681698126920463855605204835967853688467576137506080194551696959405668402053759739251983174210212448655211842547137203824609231238797986511845685749130066633522650934769070957356399327154016014597457436077000219034815959597441276639777544665288391035551283463835058436930435974704745762635582989351465869325238257292420437222282455287802771915057344486376375266675440339845045456631863074203679885942275440412898022421092834602196373769075608752653220255048145661173172567881665720601490064955810045205675573744088889528797923520752965118151852046064035646751076744171192675499688744745889930231618122078026495072821974600696285338753312372943095242232421973090620476460089992155063701673930379962051932439990366742492352000948719335514504378076622402008341445265175960478813464883921428472704163974176142233719534716529822202293691969641494669883450569165288104622995356489284247005125506233243968096183080538716355944417278006397075481728675438230034859556885411254228646910380707822081267547097868927316526151791589138299658831935401807279072544111867888272721793845313812015674390067606660395837923751477431761501034203354861288030220351296126451005878177811642098952948317355607747032358081653235547702508384567909718314117851607305369870130112522130329937698173749352618244735440409527894372924792526627032123533726966709633990408276950057346376121682876643220274384437295818699102346823397136186876196868648950616702198732584164582193135960899877356170220356860202997304543562471727687213009086628546925548347154073158061888717694916991472403847308705563832445253297761666317139207559432212705377395608113959727597215034101685738005105038899334640387760932830648934726995941254047313522090551027559116283300908464269679685350829489873161362611556020447431357163742831257597201307764992935325348960510556632539872780452969455069707653978765880443053105849889374392391868279861959060421064695733860004233671783956613616279217325547102060815830633867330113957555438060654979379841626250457363685677410579280352048080797700207672525381384463279599637211983647471969774401253208921059433828953770505058473309836297907574756528489893382857014731627196146939736290777134794344206174616567452258219446302212121490579754673691459944778834102123140671498434998717929740317423532596424697095223221703927479970898597542367634737869711523900273277652218018176238184418700351571548372419595665744363980037150703699334627626892673452386895203346305447017550870953885982444949552276743033993246567414730295173023732468439730114145574069067912556400634177026979080812167960085054664513289601420384069756103034478537823175082836844893315031398548975511996547752201208376594443435594305909085564135025946504391278987378914322388207363558881442067440257516024838458595475466128670557858135146364964152860567127816675990004947416348790478928613987659550326809638553707241965883457047007126342841848274954882821130002537348220862564373930614251160562190823430553283524053306385052366025788660636077964455879074482780187440076668966762511094145835702418419113329306508640469448865014805093625675367992023720037589480063274275564410061227912442919869860263725095074826652025163045041622431178478446117837336450102718711203729745794168583818294444768208161541516300635226005160199885475055800191471522892344971121575522859396680447017212730766036264750807731884263345730074431045232733791031593036667544780065189116548731863159144111171170586409422411934171727571608315011463021527731451556150279714429386746851697290756604610741930282140357089595614933573177349879883574467591135567662621887301926608786216961349609923282683808287483748343790315609710131265165498191348003114412922429552703235461202955018094354897189770406776812984399794256870537996489744441451489672688527417206127615084879767869190939042122339407185354293026219361405126644349396107395346655840069517809954671032035241602964657249429126849446155874929573941601265397068823744043082016673669625979042646412213233449419013363230220050240672937770952460318886257038019221321808817031574860797267225221464031616308882432160593071848592047759463836308554445916111707895790436175604635540689674206830719695807139939542306476447094548951674888641397217929080689060529662597346080261846447822305807525078869706221730782369300410888406684333850708224767782343665876492451350918727831934202463688821619442508670681053936904453250798156952263693093719750273002920504209523132148930773992961274672746593078864826987851525605986512450087543595941060738661154112086444271865790914737275193513761079738653028911643596039993628100152145707579812167270310057693884875457162755002004728330398122856560605223570294031050461577996746203521704478993394482816595235146641531627897778826672959013898201627342948204581478834755267227491684996658950899673214365093691881474826493348915866873271244634190655903917171397688705426527321836857624559565839140944215764052860212037056389413885003034190042306285825693819357330176750676453106032031680052782887572618837801729007851958187665681873138981163425874669205691893970639307866998170339533701048018216504637638336211837098938721741511277135913555281109148022264676426657516452759851740358499068618837459567168520594813590150512835070628175711713296561650748645544160446284388373267462459815210563931022463034697166856111770431362477967257601371059011125153027612695021745249865210180962525844467832240323595106773827417016018054269756954999081956196228706267720167146828091265121295693493056252206160162502856140201254323431998044106462738228182458139914437939293325134813550224547559352074896912496499452111400031791679904103015555923552019256050711704284536427337153413618398266165232456913468122871086032663854456983623405371627122963351786638231070863771792326220110374117233039876313663784424444257883327535459701146277809826601732669257101056652436917100458743008368766433983276376285496574636870045804588129406608949297003029400870863957956862962168228520825030333330742805124851708558266078052298101399722074952553732677725650739248336134273321385056559341894406534943532833792421105371485065538618624841463480229724653704944670289114988114157254793444242137418488367699711823947658838230338483052036736370576858192098551407354966697175771236591596064032083715111131733955256177718334229948215814906891061186283238492279038746768176715990065246905526470686032163609979656542073586396222191680742353622652611161779056720746264254936153229505433868426161282916589546243264762520346731712847030735967464520256975303823977290106814977805659971664948609835230023239935824631564170562141363578835743624606689359399447513388109086196609282029871339553553628270808540109731324338075781634436411044649736947955897776667271818004403859732913329528659213268513167617768579949708011148405191990242358238902937428739309551325492232763187141773461252541724297581411919414671509319374584781632892316460176758833831252350571172531755514113778730957406862838278886059122027728572419361824023045864275861704003885232043373633645364388955391875013713408127385513258924362714636957838592847814030779314203622929686180121731828094271504928457593783576239773016965636732653782803907144334881301045576301509690723295627584371886452580111672684126887855217187020435323419275096955274543102301809477922228597985712540601683541491029292796407927388846075084218382548010437773197176835313139188957799801001939748796588428556686519885118252278861771055060262331161600516591331571871957756745453991784522073845766951209866881051355756654224409823299096748463860142506196515606170236326486004565339957731334285577927498395523405687560725476265791068063791727585319005732233643949035067428696392715345423710064296930111851620701596479695977151871938209668892256215240770298509155154695725445223377160355921999499096873843302842714325559668110062160659677610911085351127447294713599349988502141818541763393097304013465883891312647956152287512244889660899911183982943814380597013997400623780263980093758633170601657662829894403855334820770079944872936530797117033452065311759471334090988077964776894801627035993221985648975657942402634748022941342458734726078411586994167215562691676092949486514871775994245402642865318366371843237660361733476642048851012481201919089529061286902828495220146703208332056295426536424271229663381082114131716637363157958646858262216328271677828533828948128838455744420693550079482902336893122907919360433592927173270874653255103472720352423214028952803583649323605254078219698505375541762795642665634280600279499732852899636496690607273541010974184979207753008269503149376651155513950509487247553111063628157605890453360471236221954595984141220049498756845104226138950711406892926694277977560814766038184971847990500503599605324533615160991213256578638287675082893127410425807984329769992170016696379835750306701342781191364108990073075000055495065646645512377765314905788157935515809127630602218111664148130538865099076363840299798814899837553607016865962417745615661769009640310689809586633792080858789050054543848101381001054942754258685563229949273685141958498119531312053279772458176485664778833615282321766845583990046709270262857113523511988515963990352949903524981858762819962240097318930996417617459713069461169250138758956674784555847240503629517999722575144112327301563146530710081111035948865770995763622933758419075198145532449441323677703848380178875699753120271799622418243951937140147441647343368096224667758674879725173922569285184528912352034598042593370838792361972054890901055134195421248344578258961194474602728206360442876826674034696300511477246025644031808654369836166508925689026887218187035706620031914790409272565243358989519004694758006271629740023721677994649763751135755642879264434753540195165493571033245939754354004844483785047308395986937792612844148652287875593770889983825968635132516976720767052224275069416482717194686943589993995225518210480593806169893973624144782245628081893825873645334469717308080096318267769698710293940691200224936452923595988330008562870408892694651014477406787778512235529452865525953011006779707975173447798270708630902869473509278980371515646340977223684166006395850679051771825042833866174781792149137590989687744107096172797361008333478763746608682668351528357298031743695329753015172081210152333993068816600435519081920317854046618645531080240711182820834625393671652268763980401307025085187052930473861254638491204291062652098896221995793522061343150821473600563823808780735789712175978362024657817381932482810772114305040221131833155566732782470522202968427064639986773663652705469135739966815871952558644302136405058028509167164891449479340885419051079395024197624780900364454523487247543732217083471568037893796869771965777932263690923251305114201470801389589173508808708421649488005546510478749887861978006976875997135452665791545934299917996899935306489112833475602330925421083887447206883182926050589004160209160865055875750553037493598161795265264521214201330536926546934092935384177564506444434861441883035381508002265061020262224122290008824190857409308182572333405130055441700907226832343041637006985578591315868132155843630223007684350324489216408071928050373443021827266434247683037782898456698610912655951834890331483859407709585511597032220732452639779058351975035974069520536206626513088628124559353910459743885271506920500758564291386039148471353150331016139164802089437639693910392802189631335842497449547624795901832279402617356268373645152397852381986873974475789225379403394634396311842608315013986026531437821233555980219268577328006948459052608439683820823840897300792474230111943808146314770391019961301476253858517098439949887940938305362542801888283739191892102728076931407852191052329656986329505475033546120711198207738067569358185547265635430801500766858272773384136751001875504061355288146453779607395257031248092813746321342579831227243998560304318980906022159218118790921877473877601594156903471573406420254575758104025974863837383297244647608602000464481263952875039388570352817324876523428426051838766429485153464078396201179760719028980160764451792555263619814596937987630128471465320562613881723753487602771573301988486226940382058052371281738665993156233224157680241277750349630662225347413822960948376059226567820137060843743426987864645678238043693633351734506665253353777912706292499837669578976136602656663964308401005741944061129423763603130119744289076632203593212329545836204526426221499202068131230331806326482236513414174014345765126703950019858747720255696553455180116291845623318613330269690143984804209418906989506267703013779039656521786419439798385599867483225086591735224366232873256294265630295934555204191180781565939856916253287693924133914524554832863885816659796438078748178026664670245623700602313116096625335783571240364446596717437918568480519378311791825214602295969625866499471361659430371212200272451735606899485539886301311067560078409689363921674424467422173218032624613916747867368914280590273120572098096145610399963245182442926784317929844714912684332783709348984546659805609130937016464288242474439186808543413214854037995312448638424316498098500829504662969526599934842547204608927532186105258768770456055907808870653643549453776749118308093437772679318201770105232941499687481492681027555395728876849664952185503645583328970346851598605457231146718215963532704817157139370833970166683990284763609249488163682018869451722393182785836591725006017695087045244451077929858495906917115572346412285567033970350124369942151299257496974577960541498139512817571092443884526114088569505321273092271067019877619340470041372609742999464801513682349883070614727380023399495874137300062794676206179818855718946598825333726171794791912566230813132575529763440493613807193962200325994633220006183908066705140245391264308643745463924513075794475961365258076074587232459941764996145134380504669133469072151477134066239159869113311340858666912699304317326495013609388071480571453846434864652208999126742604032705954298469030015446261889504012300383260419144249366334137496970715750864252340449675024114256246064618258636702151283183641250709650052009119937941249480830836887563460349979323803140836359993642943084661531102454115885387645061906477094890492764552599150768441699982917260834203679095266935407350649958283597860192723103635542796149768858225764784225872842684037012897229243637426435925769527895253285137400864863187315577830155013006432529564311210835501444217846733268065308638773671041621493019156869346924280010877499276695011113482480448918284551760572290862430587117458588033545642253213319580091306300578072470417179308010764613641667054825080765107386416245896583622149589042622673505469519106685162211650208276334922564328136464742375562634516999524644187130596009802295538202330943240772552626035434006713507355591418041582207945015282916983501161324456366423841362406133949806001568572419605674952081677712475147747377096694406508667139681010491390557851164067941247585288640957513329670274153265278525230959251125012163781024577490722054868601935914517279614211037473801754018834001875829482976970001455756792734175436183386042515413715721083398782060475271638906925164283397934761336750250846708602178156194632287920648842457993572265771928787622699076784448477698687574778850175363226739602683023011915723581907917246975164602020146072595370978066739843703844403327658678475463318801150555071356694256687433543273068599922206650167074517560467765818877503918576281920917768405956514964683373106618363736266571270498849241035968246624916000441102507829893287713545475758499165866665527767198099839072815752438985533880494924412397707468243367014847701336045064614685810977016694989013735225516285535692246457079100883625317439369426136027128915606028699233828989285404525947309193395862207505215393129349270076521509505295257257196687351629451540324714262324206322497316060491767677778093314509375857836853791053090251082770371401105022403422187366891257929823268827580157877049736706376871591207063866592175636505379685559665851384528339609692806435120940659199944275739520576976084542185807833313856355453108076706310943011004620417470391347904849529517406299718700295244288870671992346966424902658432434438809866924206084887175842172599142345049443744047057787513940724453201999146888421327075948963064337080059063886750941944642074551493588864555218281222150992148076014024029017265878847919040131800860674989474446521602016767910873891467600323814293292927396023037172038590362356753135439178723273957221903623921083500140375036891515723138140436638578803183243375164708713104251100429965647878240040862912499152227814220745243672486767360604100370196712699368847310664196101675651476844952963510212750764365122731540281820625603911920081284154766925334623429806892361471493078969359220580006946966389742649317170548270036993706753859482263019310633591760275674975597206837074655120499290785243981221905725576296518605265093186278015023517825361808469097160357752181182472470882425534684127906524189499048622179015410893113634568225969539079257309866410185801751411798037590352942558950868496959966929111866264375172054495344592931627770729336965642054731722924729199116770305523465534073222907811647031810787547113492050473198157127421162935175044909726519210324016448465881837941069592065437240735373741993543117321015097616792358053215206634513749284317215738255930617834845976218205871497391934324557499454524337688372721394984536680007959069932141796674023521483052135369449315845111832063743411689852363973534119048488207699517343786006442804635316295682522681252442228767714182204900333396879494117609469213980791014076093547096070011307576883396977510464686990816953897753010882454007713193915516661547924735782749519833463875271899459075707104132595864375642525088551984563278406183617991728063358894079919044893569495822990546119943846346193470119762597845121362185618662128803078060688957541744300244542909026696031364836437639688082017645987131874571254607171867047820464385392337686629876157438543187191934896657289152581306385125416820809587611108148672082755582621398765198162191845910826139321476107054486008355078344675457657952156312457805226548137108343843200421887766754778577518068257079282877484442283792544163463644153882418608118551760093263908336618849005226828444848054572079994095405032311799092561110316484445346010086813987806396248480564198463688370465846803769722006877739578871367009132182739646517801839883329829676839358590701929697032959972795916032993517913417700750904629706529809290858068447947320110799309514434726191031672478611545671497659552640740240232579531848423994502695010271405633347664590453454208613731876515247623774060523125876129487736863371130067164781648712144501926129726764775190483479344878136833269860526224488404767470875877327521486665853304642310851671579343382283212709220112994876174971406374754505526652797898012698970397115623918482890272137942485099880051318084639281735468281672574613356955513814619031104248817258131133625411402127396840685541412326291062706315003810616954966167639326280053172960418205294939961636715046836920906454019148449542521160018682841428963574928562034127365863460167341371980717257801769908478916311449280104686600668923063997889911391060407196854475651250015680025139929382399661272735431295821079278576291224186643956432301491149988478662464324584153972635375184659693769536833828633438962097058010008636753120933604984984985715689592863962668759499263530029488309858177979040590497132915864216595498103154072127495290655112233268827637910362292712150769316139737537266796820271898548135497581272815782549412128102764744919791014118503002496167031137371373329825138045891607132822152122975758516180639267868890434628560460372288652540818652515598738075152324161466924343509480139812989033981957332230009506534129635185586108735985852139266663681044181745485283291435684303145021817508106204213065541719866004262250336739085651464561724086845327755229465615734742470944976582424208792136068068433830637733944673313601186599234378013289280047053522174709745064826874786535595546331202397645307614754233688075967656195319777276818914290115297328456846468371838412149434576594448113108788406720129369600899626574459146331576286076178586870911609780007317061609901991772809111987462692790478707923828718213206062967272977932430201293341593354872814682527156020321579528037786025443897589568022006497015984465602493341006227899987522228122087880741433468357970351404507921308420198093674582620743465474884526286695537277003126442710774660599082810609451275165649406794205673811559313978748373578151671545321112236818154088858512006043731172831406139910243770086502677077668611553023557704027730994382625952366154321615382367674799283529132993626250967488368271582191841258739326669261236553910612129902943895577305404056719704802997181378113046792682066441378460402181638379540762724518638331815354600144728999564109382751954086099863277395554329563332309318138133125676093333689039087841499975635799768510473195268232431984579406643241009547667266942988554315231804003497997106820774357831469696882453946017416964083316410884888583575575802825581110367246155141306679783087275595467708522843417035427628966243970490308553983658219193021349539931445070994513342176648428106099278967698820175475612957533898416175303536861530004991318822876640042827518421712530644612781295643594636976140318279843115858509892387875172706824290629049545878229991788478644400431407318672780123255205969845849405083305453881521876753608774351607654191387050977132683580938507250178051264552814051436757471343812005791282075436311524350894683227321394524445848839492948446210245995419741715901114899371402539259893312351024702381624334563079450539512696051164302698587657292499643645427226267915431018956481353277253356607494506347233012576126342828969078824539000776218378530684177851420026213258993152340589447724097379790142414896892430221064997192049031482890465352830230410270731105548687057650089609844185910287410334606491117192331912846511720339212678152728864643668989527776150004162558371548499088997152880184071067792714375007394282788546631086702400251021009284709418901110030490463351272626333287088760269465295687102097375003862212379467620015445788862162380112182336618431637179431689193022704559312302195123522037899298812048896780522590340131677002430945162574561906777386831947205956367967985429655824803287922236300013362454266828854607263979699416221192558874777562661683990064529594436085335204061399476631296594938260650240513210610685208777128721862812270349488519276215992612986581551648496982992159145988980396064617882050212172336051689462565434401469279017674177922168813052371052726895573485261788156477970651009244587882691338987849666824807373284124469015694863251679990102104584247246926965922556703667178897856185502328304780056454677222932980801490161959676272401028051348055521592354924128443228838964126645681703709420442823511371276019815731713742135627370646543016679336970660431722522816906937814344105119929406608410849559687862668520736642114403468075035541538046805289787263222791108715264142803178658570699184651809495906893073511452933862454232996719920747561018752040417059572772062984820089158109446677192757222723075939999393053691071303693431162206634524138839384697361738112855199431536971269606388806582031923708681308583695693432541351551652441248673723302165560114402832284362928116845876963822308399163148065809480346367301277193940938537800187469623809474592744735074464835460125890452973840055835728039904617551994871879364463173112902280959318795989766722420440959093221342330737338287480244644002025899593892367484379738270106109957787540906964663139592295368134639774457904126117978487580471160209043891372455697875417349102354468880430707734188688631762390696546580156047939505466002851776275892784031117892181035376677851581363944548469390819348476824343169286237898888649317389699063185637838033040319186810799537270952300360658337546652318857781239111206660414170998923819458987095329141301082032221931994927892646734618658514036150081284978351930359419912189870864990212812474692817229433227726522044660807821068236213944731435695180944325060735009862765618902804292014072806245689854075893007309155791778551500473241183155349293598690049605733645931963495361052782843221762372347420486194313448307617021485897073576412957606148948610600331193605210496088762127928145907607975412001401457752086479609619200728098278871490704309163664440147788543163110773210341996233220348953283008487341477099763343582471641634610390436138953435859430572631861681823998068953325201538489303487635015544275172028053770648859106210105091788514948810148213179708320334543783714623636961847868725185519229142800916915022300620244563749568482397187798389599142727682905000180591334784352801032160112035575326314237728991007965232627447895369574330415544141712256929273330367261844187837605186399167076682016671074538311527699818402327820372201250991242716946053832267811699380773785100996213372571581884626343610859674901252412079510514387656809018665594850303139141090796600003879952046891272207201659479893859868105064658401605786929622935391711375301777891337819066429040520137244490518539270222702329380840453427368612029177839917189253961452940133088798386287778580096289958878313343625170888933827345890732858919013539339442774925278009042769778617903269983892051268499737474613155111634522967041087545431923795067509767450008548539380676688684866623860784420980855818234905878704320367833299582501182788210470912347665219778892429012514619838361197095017911382068430080379974552152833849376176180848680682652258375618187419649022311566541802447563013762580583312980202374862987886035153275618693849304591715193013676386213105124815147272535639114040978746656746219485181109647649088291498188686829141981357475625465116573948578004139356701418822338423068688172863907327493546473787778915201729814578568925147868436386476048489928902994555029843344886619977455431704094600644327104543785428475886160893224311622553901597390832772549651905915416690390673765567385286215759285814598137511019285720948141761561737170432374985812373655463159319222904436503624250591886139526264788476068676348668052311933469573883556277961464854811638660572854423625168828384283736907698274421238468975555692694543227481252034846805412739517136348233168561998172640420701669306951217883192207333385920927967925368835144358299340459084567004541559460864773034051036145611025267343335650463870563525600545771899865411088290587591746049719759852658616509257732683283100599657534904370318833495064766949727068092135704835061972305721867850718548121058303853609471079662979277514998971270970300587154498186076986985814363716090804850299129740222263335136388830165820232566185444955735789122970876699109742514258068873752183758849624666263385429994592126377898043636078056812807665309735492314149623664919567345247178823641214476159241000915826586529376954497938861540291114501858954892590541937279182191690044877751467349960940853210613438914750666369918809866392617048288322609798171344665687516765501962973892816724556962329679720892922529560562909010205012130668150470915621800747659647769046283349293484181357514204635822993170817410344200153298803239340204267586632336625877154072107034175500841807195693946488587035243561627232744367979599837473355611989991505331938729152842679807519207330522170716981155608207765125235506362254653757026450219818830291495509660356349538202536600973908500289468725269654341942473754528409740212475546260991121415767195141364205068228021417387707183717199329458881787159265534933973488095913281054312620019938661675439959221589947257034021037474415008149846197776570659014137764401714322838237767844342774724155800445397648595883285997763303396004489541075588604653316300090703555150413226311107378673292237160460435391024149080656375255671503917582662635177811394375521136152429633380647762255331985820794760020921149622483215051318219537987573177108629623564673332935227146806849195384060481601029818429124488771811419080784085610982478297252964963016634935881067130516937710112617138398248569715082005967749469329119320598875276296788331870151513801689104015457142011082797125506502262487465272080262351279041946628006717187262532726872849222167496360265982647092865778819502668625297589481859857783153429761080000362520846819874245814750488020419669467028921471711250036825907423601368364840322186261470123347658679845753815399912395011102122276714990279877509124586031013634604238055373596753628589269722645517420847409883442201620548560289094426379131713361754701832024098448211074857646916224569824108599715389603229271520674779021798520623537088956086448091874346933707316185537719085128343761529248591541656508618046119877498424192418844710337882758292821940236343981288498772040557367380800390934915953699669492848721698998262829082961248010284105127250251156674756718039978027736485704724785582901526607006602397791498549437707531234539639697984626653482118404169497022139333639718312553224726050469199632129375821197342133196763255293366279267544505728851311822992231629969161792064045984794087837392340154563178351243534013983403232833534493462080340191989887808369095780257185151373399021542416918188851714926703515962423766270932476898083834469610180489445708430428917991692606205291558663853137558975913779275614692402772641803482389679930358077310462161022309037254458626759735047642157129904159876095105212768390481612981076778099242731272810790588614580744967660183136485189025916226731169269871660746044906485942489567323123418266152583569512527241626475846217839270322704784479264393016025718527791079776847851287563431934544243490107470263149374704893327723402176724300033074764954891765167881507693853691695831102601127107562273731600049251594465512697407729106225524990898610571435680997843591989161067059940496973631943854880208435588965691667954653574929813042979872525664354909916253470369672205377812757668948319905976929484001378399196778592568377132451427040666417305062381144568447209427251493960990910050946625467472588506009139182694564386764569053289809868311318564853354250122214884737886999978369331348652327387293025003491211255772275840231244387256390444008142402858641102222865216965283602956503469967958637095786509927205690761871252970593653528584607072219065426899255378740359136197950837791521539967626164716841047822483505275149311809243630038601440741980577065252325262908458544882107084860228460680625653983245063427809596113182147179411215510522264845987512538988844508188677127371070157388626370884859121141310535530521218109258746818730983461078334075269383520242777038747641903450943398422959525331512407026784393459105113950360094128467104628122546669030386901930678021332093973778644752074863197941515116414210274393535219693618740706523173664075821162032334601253183606244304165395099497622533878590759823227384189134544194549158699482828921299305538093298099571980285244058060465886411406631250624186599510844763514301248204067411078666347135714966503480913558131818664704578735560755771488848349075791075801550556637233922844958453726824152200058040800247494786432077552993788800424569101734716829162959393400724927672681591480790948183709466895309801727803127558873938102198408476191173886667314836295298011239281549970184824992431100789634644548347885988951071910893233221337396653243844823389186534802255858407660154434816859661265030105065722706919047631756218135339595898410009723041244776359125509294450949869167495907106933526479851557929809525086409524830125100777872531002162967030842084497387228070256292221122661190986599291910872852822390237309143876406603759783982562914820539735172731851971226436325702778470073640869758917605889478679948332786575902265730138948153317537353831025763464453876647331978874117496176117237847797995485478526650474551766695278719069960854899349393274219818100989400431534640181684768947585372378320447112180017140462870565207887297078668891201537004983741475921679883437302535637862286728545228510528204388199239717850667134071998370455513358247903131717030726985787381723556919389890324926931211408288022304346645374145545079936947248769797958538662559610197831634147044518718526307963681946942848516764461475113541509353271222632131115420937173266676017455224251480438133694465690449306152859494753135735055031188188248505775446298385155748479645319485469542530289202209581994223624661623613400835620661983859579098846438921275180718752861774912807901719110028814477340047269775218066496036165223269815337204831520028250983497934359523815336082121304496605660418470961155727167240001729235649169326719821802204708558339325824219525123893369752579190253840886183168972588492448060772113930367092225287965806217183327663086179544747732843141452527337223750761712366008725676519160925626269006325980578520069580375676296370481153067960998912916462660194406663207135031927349432087319738529122869159687820723149309031651568298491253361886625436357303062133610485624617227176038655242830764626580173569612635364717310078057213234427312568602762825579582761000873925520698340773453708353837196974915382753652879081510063174528631208662472173249544613404341830311854901372356105705765828933104706373301643235007814190199790483768342816456064471487549629325219091815229697660081177174437003321944939571603865519057951723596380531503640320362075624984389271665023902855822249400024724136059664670392047465062706390326687922096960847588000353049460412713432253748499821831042008829162776329020498326770371838298384573260409610333333583028776175784591117980804036588160898777896659011060748505899213138585347428116826249418084744197544555615953387863761484755352719413742990689732541650137269008641070538703062573125099875999905842073201479592830365336595589855388092262208082638204892095988978886058567189475297012894257889932659736284355600509936233343880007564591586317013503096436873320904194081202962733862690046314873323578354404200507520697832916055719667208183775495373218651260596626715281260759705969961798883345351546798387906927795666483881528467527785841152548768123492090168883934377803826887963233140187728779883360141318072461645536228354535662142928475888056864107538384160420171412699630701711144345169033421492239482354466151363659812984272142780793912185981940060812655045124832990431860283816073285871903770773828587815721138167127767200820836604883260335443919186019794137777019014287866325778134945694652643906998296781228264701379390961668387858488268469070384987078415381206917166771228388981577049475302346989798474142318064248072067870665704932028745434064546356947738668215817058385435317865684057710197215042736614924327312011020683466997619755931742793094030875982135054931296367806353853219166235902273385488875852025054732761290241620617930998064467879373311423209652109745867661235718111742926097454113947130555920603524790747949559785001944385315274747675134232958904048555397741070638435163338307611995748052920729229634814176491467590178343040436093884131332587452894412779267719986297199266597055687715780751129047916374500001798402810012273575443384400993012667882667249176007528745548063590806495887703923473698641634835041660913990514007872954504083407311728165709003670598555699964866096642707706970594999646192699606716545763267490822472060016449973056879471154699346681480126833551708347653656828997721454484420936190939160316176382111313501869931847630880709207114472821615464396022768359136693503326534877683727851911743355583715551756309366584549079702442892014228332977357364614735972622061451568806603339745168436299597250868515454627074705722730700484200868720861924692959555975193133376707269257267684996155739619426693967378226565850788090763307394918270237161391811451875193656892270012819805598857245100711740667538907145153055749960307369879573247773579309540662513628813904910954811467892827900947369540939423939876807873503382385105667521309719075857863935960819118247532439627041181973210790046643649922202476301716750127088180445969547097458689512740869881491779920152727586177428752892376425162042280406000746373899391610779375159367851222577051329246447619119107219568282051727804773723971631879900518747133721691710068624236205152778006030614082877669476709459681764005459531186607032453475140916876166793924395730875177345224798404576975393597929242399343344723439253562657053535769149985986928436654647449693257056576524477378892897628860974503157991383163979018673767489637034231034428571275120021359714948382051156482056370126840213559965074269061689303365919286185070048177465450945932094007617081276122552845305548637862479022884402586697650650240904277981164169093569800281181496679130667583120356791055814083252620731641108595064817935555529984230994740521694467812817544427755853140236677574727189035778856385451870769516723566959653671225822035254864527243172097998448068991886386120563982412416117842783766147960889074440389871759361681777461557254305920829051871664847342393303040037530773837921274021942116853171792697162568222529776646440454632589724004197237957845965351917360254838162774470529109125577824250250499238204907638600431628129194220217748147040375269484552350842007460198410807035886798522563694720886034041657210328240918207879700655445727239278083938339912049000796918346273212215408232531437559562484711466533907876891040527218674841208970348327382563735263091952316491571689255247034691161415779025626415820663587000233785597452557620795952498674835431555633442425179233874554434967517282301297719518670138640311929893168838056682655899356841167843318143940856917285081177310504172109268555745474502411747408843765184323337094335182232350686368521344357615881912258753344606473650799321971890883103511023935299055267123530667754645908106692885001761734402253338992219178783930114955110257156160347647824787994441762283626235116062656176162184649973838770191477919018433771719790059780862252772935191173474301347520112918190868310358502148949037230104117494458743496512379227663630776686384929123023344146654192121496463113952162102519888048658431708513390918556217813601919905321022766056968493637464047426572463843127005245631915988082692854557600218347374605252892735247337493602705842871395953850915077559275476467685649152022526239291377455223744435804323309861294962143717816751519450688162381221670588686303236455089385579439337493021222128807961371355869886553227530906266982610449810230631295454348996414978022844136640228620970590285004100165300727153054490477016437363892477641489675415977999255279572397334548426900783342680061361382600020617763645192081053771650610434482555746080196532786112854474803748758195269413549164187616600822983782054889479730163820465148399192916955838057354147423296314540658955758510271664304068094819525127811631960566641344288837141679734964216535483574447342882769176385051197724674243624769567825574649082609750090560875076361700818098399324455871584643669307386439204148368668217479895435272801734104772519361210503983263818945773467645277177279468223054044430783643838453743639597435582776834372558377277440929902897898174050154537723858039161245503673718569626343130798908209887268967082310515080841710272712886970704093963591276171872916303373141694945006684971683186398081795717688061807927896598956529161024575958862357078392918475051742190515100551119026859891982924244235578184126001512937742160859394207997858375032788183218637346212872049751837401748546851892323432080016410930067815398162614586463808573309488017433547108158449613281326435904970075802878290482566035128186196568879585456558858504934445737934289153067898567174808583151348381635754598327283407391432144613214915853393363123337720132692247299308550741176005593916546169169568007227552841681948525244031610880220459144332290282871508391035519999442703687386647546742093685155580605000406626851431732191615509052112743547310742066498395856074274711195115468525563943468506650607479094774053346272840004027263460663926949603650812799385477778001952745400835178998635629383189319767956755002979667979428818475835358813528293506470319000915928010318912931122814315285662087541031142268045880264533728085487846714567919682436173527975819853981362204483094502763928136991837040416155248407406835947101077944501094859870707473817835659562007608106731465958859861638788327292794091592773421093029774003756351600099419552977092346268436819069397499876997881205548517106373565272757625313457862389000885581648537375884667336384281239180763598051814277451874259058705275640140233122870303997346322213245607419237460406714333309073905874525101548449146306920190762713799287790134440946280080296729257469936928759924718360587379843568487460973354209910260183018368078809555746671403312064272926028756579098631514358204821214501709219511360703180741327234513798089761430461100490371807281047038118756683021196390464429831939153314820482876919043127038448981620897953567159076182915255570345192621803818256122833187392165239483519897446667744013694268700050775307874933053851730358676822327679929316592382398180491878383354596254064765934934477602607134399956806829563948640605216000196193273907380887263345604859284266114683129396910584926415773902795795038234559110370935869563071184041584185828599348882213120611977282647853531239950039499217943085735915598388833939187981533526946809015236461760318177448078965514073567726506624247098941861821825915427291409960934984760918255180352125946343629907885260711670404163856916853140123423029984889626452071690136468535580873910810483321371247575685757863851203887934901866638136192491784490245693720711381793075250135640139819282921450202818571646245511249478956952678615210774336705594648455574922450580067184974294677555131114141339699057042263513402293674238841486126706014059100255287990986773592781944406807027777783182405250326217787925064600211141584634013444998394102506413183277732809828667928180889819582660611653931177821529674594742380448964483138476343560093066377350739524064398668066258534701644113938522145551802707366072475905750700211696860328140951571033048969931537746619659298294260869019419850496290416155171371458340058387030721526218931109484961564089098297707484000033629452730208029588489428914193102340894312695267665110989222527888508129361609102216451787675843506504102375715088051003544533721294585281599242330583188007450898329431686780333509504665233774773032933668794020332860027300519921220596647381559619613163255004978842618086146232705721964363208244827440754407902635250915960313560805931128206462698832195487834600806167594122272592990203517394448521532803455294718246404305209278957263873303443505794585007759538773718094981545795452797094709496461960813115380704853980944721381434010541465438446657992289399081403812235710504737714825143298053329324524299937362247236060838777854367083279010921161181968311144499838181278097781858098624918329572971626297851266052472827002672605691932248852453222087854497170255500024673964904002376078223671052082019839152674123743010575925561702040008097672456273299849472112040340071139786853671987477181453197574063761986466330726554546938509533255866833938067029662178809682127191623946905415006287892549961814373742477147841102722048781369209817262810549955848845716986135134520690588844448907332103338429961998285605430754253520087254283527065995313357648766927226396499244964196158314672259620560915368467975290661664095909467937416793613924150141513940307952815220350090448635447136741251509937901065877829511132527076432135413083353034421347614541618549473537747390325734768732700829820983425130543616872375140302256794194106684099378628902023639082464728014154304376162881773083523731425210958721079057428868201810487074446756211878057275139596939532936024062468951954386171158538810949103144962825130526933707948247462000129429453668304370539083353977516631488918407227572986631270119185037009893656825991934964956069667220374690768091144272095729285917478641066131254114743878991472107638727353642013478256068803241899104749545290693640685661593818660161808324858411520502708309727903356893034416221185254931730852770165006077080093622433696945750733942381190330102684993301475781826394453669937220135789134908797953566223411522359942100741716144196816361634072206838121136660937577444985352166184768711162028390366512176129279261671600184590470177815551948596527954377248459186492004043454248527602170610022482970411204316398951660129745653521539903764346067739628810441664078589894542621503693209124935255116394645930561429078429171622433217792108165705207505635438554004061647805302368038618259105221166436891857817027301759007540524786441330512667269535634673160026477585285084181041756192567225365750503560819953890312533088893568700078090542581875084271637135758672389723537248213561079016377933948145330617266934777876348260492168332532335856496802331701595386911353166734378612020835232493796960148682522535411997608940166381643302863060404236271575755848549130934357557121158808733495928903911661191438529961505563480478159058027021634652359553090536286473736294518885237481352642795547167838049589367931895840138170888824482526148157552367354524935902082201584232584029497614705472555033229803558044635706504557982330788069345847572518355213610728489008322717136784090080669169902784853283616269031233293220039394660868077824068015860626296019172177971379182902220228473837344438016660532248047039768153129969343375882964357856350331691767391597207962320750221123977402042410241927724414088207898678332192521349649114120268191753782976894797977510449052515061880921000507602437605577506930049459305991694807459135468785470564472070518095842917664736538134000139402341386497301102645932704825716867448279896678010229008871409315724423863455160416973561158987759329780935726529429468996070722164770624017578169006118523419329492039340088512193071561964233064041268914105294520612252659026069418306686697345183979674274396894424133300215644962801414962194343389618696401388228698206348802817311123342688769152638482011834196102704334686866368412071336903106228242056445447574254476927983871825124313308441975876338904020897691755657711017133275979203668394396027470637508520551482091316971922643956104371616087485283585489344046697129779872851289598948716067911936561503018842544570181909380419418812757284341869406792000199882557170793001572306904730098699907689593804730890553334518385461319998890412740149110385085011963723234875651994945411035210369756327247306780460019768982601369993122493551174110210715033103527648793813644549430371055494863426488425117484617655315299331244466818327171469766011299002900615813190780478597551183464043075072013760841587683374671938773050972794189468777828877816773831753120668257330975268193195432700496120717225227999495279219933819379923114831032799531532899824132322510396109005628685898618684873410292189629075825020198693956308896326395211713586285558865285048150138761476072649538117828159013328737228708142288076231240457774680603053818827879405841926956566222841330602322886231544847103708970663281780829718716318471923765499859220334260680398323370474228894754129871641274363237583519723255938670150117930144366946777989336626701854510489953141404969550432109077198164338421254554673566025184622889223869623522361085881735708467534337283828950835975140424445238005186798016702311599021941136195793472453975694971092601169864701601221899452642614922806110503082994039536029800433478967397804036657240933261880226501864762600189617600432487926484444353192210423748376752748288759808808725029721643033527417499246815983806847658202222144430776954262141969613140543938656351871339789154362012803288549687835271083180745966632645852451134449079051826155492689743378299773891622594805217364856450090268379835750676877442913299981847528793152401602649424379915233228398419720966773925120763585850420326462194093003618835929220098935100919952473106956298027884257244944275272508004316903540129494429567559742139321130061383771578246223787066360612005779067559319593975861200050969278770629287496164984026126454291075993214578288004043548238553666304467579855224056494601660679101578224153585398060358691760745227132291841054415250213911845237105855626671983431086866142528293096470491839949617613131476301973872734722850444599618560428637636548551897655867646464175983517624823281249075277379213321329300606562958610473778300506026480975382485646127405744022602334246959066670166697480955529813291927311983090815529524528523183007325853161588814265235084147864906351082185913823629788002106268771037346911153820127406647328324504615535991926418356588339932423894421231129635138137243292470392725995214736622029056843183469280370119722214259706645853750754017506755728452104738385924224553014074408463610703907279093937254742723088550647070510546869791886897851431218116951801380589158323989574510793313988227931100051019685222282863353428972062626651832707708773852087530362801279819159769916463927350336185393716739970704656140644268733515384783723600128764778545191709495016439938449274735671368805191643363052663422294535207701722292328743685160506025733379818661017545287338767180833140858709859357285507123033511423012725118928848248564594661124996511431088575701684086867561530257625013084649002141325305927147522587134088862683680049959420645963447098221792894737393023952048526308958997688417698638104287083955617173333326996158437115151169285525281339918934048785946902393874433908743170539236518813828498982006891149552472742928465871522420965699492805475943491012202023519864927879293762087956170857104219963286701610624461736771508741665277912279342130297875190446009436518345386105459622927451267344005679322965062194120876653936103772019142862900636324562875060747574772638307366119301582173802280625897078018571616207308567828346211998375057039422025933190270427531573722491566282846779377077364099446771698910684923030553889259978070458618229710664194234308147628101391161467695461301145935072987134768211256261327610612618023399981510056629240684927655345975376866715923235782775646436243700855369694788322068904382028215381407696387583977655139064032967538189810167471617920061294478471592763478944501197866916793335505556058809464264159426422113778985379171828827236140394158721111141643554313919041027951504551617006103476985752566947357665628322480172259810326942725355302775294974559342629668592572804041886381458803276794716196600829676439270875949117030700742493128673983646833108632873938069021977818341605756242929865851646881959240399319817103074869412874528875915922689787620426793417962296859782818425307178540413548227559430980296425604400104133960194908258526731849833768998277219684691539499969033494078900707845132902625784759051408965886111425199308083142162610323949831958134621474386677600316385165661585778262335156403524549507157148630078188149797703649895555180206529943830185279794348014976583337988153692864906850558343149833754066325212290261735751395225091325297872626511221503280956426425400927150677260868164301938338229873496207176118035261797176815762594787707189814914109374237488363802837482997058947356232020417239663595491313616586655738026200265729266741631889496126496486619417967417301378825675482613802670808625960557065189297925341569203402408684926561523456586157445029661926168320611880966448434387316455334751909602317259703278982098060678074411125510363172315339752728266002195248546402480392394221950828233383272283570452133171178334950416866276091263691413599356596986659155563778628047886709404853520404703987054308897679895122767863062348138231329643484753905452301466855442504488096614031508404878706221718131689827397216780732984880811026464780219668699633468854423814394506279127584966636530407832032595654990597727139602058409934780431850972808956582134559894862468434883704380425960394743417386540903782258424143150156351740365382156392920296852515779080131579707096148802928049512817113483470106334028298836680406955305524744660713335656268142747738661340774015539302399071813354378467658920257627699846125766192545369805619645367888588674785674376453263919874786070129979351138065248288254882955205847346344641146382269841115129386277591599404073550586303774807749254236268673656973636486116229826606498240732161848194016714268167907299490577838686371353457651895383844120848510286518079073307180438130330263784490728664756515796612564691994327985892165626932576762022563081772309689653045750851023833451169092821480179326104154471831324944194427993361407320619096878628200864057056595335687851252783153766909060528657692658005771779737294134355725968731126157899157283303032570316393595537376897764782996343484619447679916853719814542134620594719235513996329337996024444738018237009169346698087274524113081320542770937292488537280905942853025284139113040758190029960444978077469222351801887559817286509141840524493674483834122569996250530423487640370916589026691618462645635651879947730732807140167927982722747592829674058515334550169631203967370251591797446224674334605574909549044686810966352784838254103883900379480988484709207253241577886890785031225867557917493559015868272168575989091233657808987051251227204637699960991686543038038066957827947849888368079721821593205063500444401656736379705585112140685328663953310894892797707080819056843868363083611926383225715998090359326181187862538403623822888098566094939715562204845974370955269604608625090511319134239677106844923844567406210806759285963440309833289504491256124964712301488076892583372090174930073370091391659986176407701763000703397928571792477498177717664876017069605334753598283461446694798677536857524623689029398661512698860379861185718710023345650373611329314874335609376081283085181025728323698992064063642725431758100052978555580487305497384096081398994390293439712307884793948223415506519064391749067281368456172211479330619936531693999760871947116969493018248198956982747316644354947954694077398980476476317770833526470603560198110165764533287341435935805986184163079545981157214779739054624735682926597816083759506734102050477475085539630410235573859435776291761324154113317549009983069247195200805615629564194607387062680253069011608222508981062758990104443515039969646654920488787746570734967352226694674856981416055549331755093509657993958837757244925416927515991127203976358367294362851252455975534213293073457040589529452473950999229402333613416596353250104454375751412778555850841067153471607012279927041302150462777778932339148122418003520811089738821525429467296198794448387616190396865357820383981079956966070638214148187924766683066868290281202943387873923930212669374177572910973720041058179894506747469856144682540607258833846686126282034015346553837233025376352453400071161726359937354300032596802431143918456349370149155882947914127111786637797784451128334645780399305952691835603095589521623978013655655559905332948137962456569579630677669925929246189940093135162945738585848283132178232731121291294987631334254470512629284594907978104565651102734031689000449000889753833210761106388051854780326059288269330853841437500776578338077857312296387421905954300285014413591452074711395201090628300325700272142782400095554920764380843916224009474461799445582723502521417779451672102320415042000959322859456515302825644200284034217440942380557903664496447537976643492459181205372176923890459848019668918623957099215962468437128006957768457435670326970971275545604107537819924156761107932162456028932105119052849336569911224642365969065822684010737753434877733387104502389562387048901281565261190819250739506054509134845336060020801108509450392394252045262546727281441520749294743306677327394277212176943747818138270348631494873998617512163313883378460569070979417483795713754830113992302685946195385064550821746056836959350275705960092328564849401664350690279867626832148303741767499204123362755474709853142281079170081727800218445655519173632061202329947946740477898346624060469028921264341101671573165633013576302364960856444871104938808971595141286549293971776326245843391789353766610284085096998794984073018745205520128600109607096320397388970985422075366013365911319914009670124547250031240933910023933725870929329343367071179401171365523659901251967983548960800234284834550385131933776277203133387596474461059296432228015106666759460773367953715216324557374478074499070779676269362884107496909725982656225010124647193077179888004202932552871972678315619155537598444465557253159294654424249687868010764552934191675840270722249432257789897307715372267364292936080874129815721111056069303959828699646073142093997113499482577676634120643298544059370591368208010089604515543575540134208767990353250069847565785222909915031896519334913625230167421558048422650281693649370450182918957824172193052528841146615177029337600249465503783555817949821209031577655898423305997245645144087074688117633683140748667018084284454082129676467960827579520834432548561903623313247367006050511636599469592871213061160663138605728402855072116400047543292591219297919291728948913566301371121842732799860921266889044541811461123201609841544553397721579657462167745965395091501543245983962129667791847764766940836706339008654961321035940526749203910067487950382631737498929207649937727039275051517905423446694786573928111900982190498829288374931460473265857659987800971938837362385861966029379420878960477042690583808546175590146116401148501305922231037090141054970475288103663469902548166607454497641386806324112398147512945273013907677016917179034980187834176125696185900088140830401551848363955325223450507630047233672439727020296929505069585763141348220013354580791896830931504133874990067418765557716689636471728563050033925739039902376291773129602738407925217467362694467193900530510845189263179188081706301068136184313343982492691203582670153878535468892173642551085877025725308834604363408436882216432690892720277516978968326699654406651378641391810516445350081320122640505315096049811506062076467730228026808530523155301892504786468664576991498900421289963591306976258945340155215999898744845073325133973164308562583533651269149719125783792848569786830096842603792831436215297574099742127228575198049073628469626011642227438059627456063642906497845009264878232402010468550261777660368318227290148191236764718001904329564724601292792449746014057130228939285607920321770902249019505269613443012851239213738017297371278209138591791294978738458504524172896239195997023609200636259640237568353192062030840193103504009572720402027839323881757349606668419760185701823490445704209181623326290451069692193970964307434865116121018812842713298800191682978446500925204595046732723937573787616106328663742220402793909130863921755732752169156476931300045775069251441200032313669865412955204326356225996165451142737899433401262776237807380548136134347123623252846988342284550352840434326034083073529068867382226802517530657924752794441526708138675809012597264264395432799057713029671050743874477514646421187578358444907153236518176638008958833222582165521390943810091698331663922279792202328271993707585147792733063143957475302068561453455231567109118331505313726681275077011989815318138319902907441839844557722630655579469384794389423522068615724011368988175207488712866205535581732878350389031325169412773042631520802114888208529710283871069298479418061144290275447065571594536845367326165353147151994541382720974893865472775557811562557124181495396643248088885855865089944643997712400182405022904892078731670933041449858438129631428006918667610988077990796707079950085303412376114682576249039540523875574735584914899162442815420753938306538045859603022901295422895588702557643137652151182150028471673166800596774078381933764156493732568284808335441364669319900508688130614164296816070358987673654715702244853008859007916722193050922931539029145775083463552941559748969408796650592942237151409960651546879136027882033873220014639362491099766933779771129399126142952657455559563197803364371768390662920264414755796691153822013819296874596152813360261610977590697072999021460878981952935062793697058463417446262445927401269042740002208145238673667578576179514634054973320328024626223591502352364653825048021875297127965980570228371119817300211111428708853806552475685005898685459906004694517324359150215596069483541930583838347528635799586961333987274020003838077019079753719075908590783686994589040938023293505900852725998441845707357504705826731853172295574935158659478976122492326324894850110802088598455041955955887965582224959908625862410711882675348406652941546308865683865095499337256190893611808299359081276267059774463590614468466631369938604902692200828352430279381847367637243502190056826141888157722065951513605238432801084604089094295107967562054961724553192493303766296627076323429814006497391495203936129277074661719373793356554261019141119974319451673239907191054970431339706515183803405418990741494254130110107648149571693825613985933481860767933022190639734590808649067511849522320750541484106183426479238035920928193077644608930823410643074582666925914572299167175364691201368071619794987979516605391087821158537643140483524854820559065263181020939543282847616948000930525048839168236534201195475424099023520424733017517607109191274384552864959902005906826257991705368832314506256633761111077660575807222825415365482149233058009598965629027579820284013066317870603804024741112402927265079442346326087759242513808106657246113763718092351087739873822023355165965627295723004154026643918947183465576114034918712586301057537551495217243313558038332292590134837497569923013298304156002299874275676193069692138651365593847816600122323792539098630784069430933442288999902960433583209315048667154545104346437368262150054445001349066380443466609334177036537817802591035785078477682449835299838366764262097622672206826477309223103562128193126445041983140958626102217404110592173474086662984541294989104107208985370241862423942389406225595988519802516804926481690201052800330508615042906036301447402824419066657765138684638809381395098548305755011023273038831702055777636436789889005928059839991327648801017994704337932232692068474508270508697815692168270453152258708489334706253152023069126151725640873349211806959307044877332762275823643726680371224774768922690879146796701351874248952815068856705674082693101347570442104195797877562535675248789905729105774923366885429237688581210066471856310312845845731607665878542969048944414380870083739266599387957071735673843510876207249700250327569915396029276199962214059912172710117232260121843168309161611133090620978347122312071614258216529375807337103243129803971729078803380976921660696121872112987545061781612865178800773117296057434855837874419960551675686579553313515839334906007684098904258482584517129382180355535276593285841707877678124540130399750328207506693573811246807614218965780728992679191121019160762928652251009023334056416918514174905789122287778961880138936551109182417148412538812608535182681286708714958799848242473083200072394771837236189460501744996686077866910516376919684761639505340931260495935334074371649419170189863518938087903769980233146038716537616417943912347745135065705491330316452078846647448061948419934877831468714936263281786729107331944080723601717380075270995498435615319204488431922994344422190216366654322556834417774778483955508358732429633639475218573798790977733381697933455321821672508809924230709699457154729853759121329554733309863675496148829987470503609484169264176417820327657901502764534780994176551660985034084052815792103115243445686219143519170536380778501598885493736950474036480633357543866432862755984199213126013067769159416299384020813893223172361370868097548954315457018744791392692936268503012251602213495799322411198075259310471188572938335996958767844450334371868643248647855723663135709010313805752397452165219681550191866739424794529407081920582989036456816234652290254507573245206520069294298336000338412665518502391411524828002494734025650261951567988764151167338540544536142923836741034821440187816528463146072756141955433530516347382462983703428046803682280596982865682682832216491086098382884321188390218321642478273148759666667850892688995634630013359148890207205494004766948685877546066951617424699860907099821360363194019207600805567801002489135177923046547184239885353464875048725469726716576439366379647731000290370008750069704575715354818470849127230724042071353101042687707942392770482694247332746294034903448449515810520970421272990651351752302518936799735146398023240342820012836436334072806982493582516692888879076199499591580388394281234155043155604283954421711192587026639976347001650015310034741734595127354463080542770608532939136678112442720830536942895537034120001321470428131869023761869063809275442685338901421339911602029169700308840151441179857210407629206379746043326871103584801215208699056723344290722567776655086330274743017128642914368998831797678443221676722431459017972153125692298403028217171423492127707019466167918096619223869351098687919683624334285741530250084523460137609626091009655828777705189371849803756632736147161978172590158146450336143571149597415850713562865801401635772164611747181487403330060517305480331285605139264040957701715152326981846946679686160645876767898960197490010194714448889255989918971255654674196657467341735161589729112853842956549469028674217673182634914953027945456354339287246896985994236466181785528744232656623949488907475180649060813227354224437469443425944884335285231564445572893215146323780087857053252437993575749153587691481311028583165647793093726412931006384513544279469724963594930150629704267809114770596539623213226192151486999556374916782989618933937160381991634798746397291378010127964907083817437035705516588928918920441733036151821119136302959313077568067281367199295105469578952924748118655794809234251828441889150198669137239959257419970906143276619473749710776991315620909653353677386288530745405161862548583385685947762054080724195406586149449629360875830252372498632104883908923568179835058905058386583214302307891156150126587976605915320491620624584932087888240705294326750720886219374864831128343576433918861078944662863091615612652698182398360913340934496076083682361178434239997048625097503045709334188402089852054396914309902368717295488780841706858142664702245546849560797272465445894151957273356484148206456547468336555538714163022110847502520343098837460715028630281684455221412952605514778874624552848745051428249915353297420248174039298103783955640043427161911315360169574886482496136177350640238373976896344356721741092198785461549476374440113664592788580627420950839007983558585210017895887806951154650552466868981674247198295942606689111775146729923487620329914547458283856724789157475688569375101948060291938020927709016347183070325465054162815258144703413374532638496721928494204441367720487324665713520015953137928046774944629399753820825136788252686251542864063027031219634086039802143458114442538529111822134836795447015638378773032873571164009177848171125235349183972363717775354538244222094690999983412311556876460339561172621307159566622490269402052274256609596234362114767891721357872982898243183137635076036068984901347820297326281459258819203543833938020716715259747040261420167369698050458213136477719207289262031952662481633479885841641564794620699084072467341083215372438265619701626715196478022756920949340177426319964319049370237918442934137103895510312945692388766697308317648667974505008498189744009962128544098550929683829339912837955739448923676398598305368843271273095282694433408091413873013167928221196571686607102848522161489720479112631264937467533931466273390397922861559893043694890922751957132089097711417780440054064747456302571474867705068417273262150265968070059269960283801315647255214580558904287108014203214543702464816705544867547081130248526050544666799595520740233618339856876448086965410675834275777433582143144498503300984581686664103980159543082616710882651937032968757156125066596820455996320847676814963889311540424665298385862629465179599870439551224306753645360075290654352415780929058493339356510873469726968424671609255860693973055484238359868492301208720162464860869760339258233783276568058073784071392858241559339663008352728084817425606705862626931332028388459376528590906636296430864782044531391281571033482579885063291947055543809332753042567594765082007226953315821062830532189295390019635628287127922150127452651312187397611462976691174129962395549634233384310587781785661572815523409611419526985913920686135530491543063024676827063802980154761998911550687054291617337947314837224504692299096264554813477833730941364714605205765039722462431894153718996610795367076680469313519478533419224689024352511581900085598531491860439065717207396374493844445767800750352740103509390289900497878851032171344688124639157036552630480553019705690455000369523238396526905790974506881428749187294504103607088053655828281303987770636427989026103025442840154733298139705364781861029174438046564348115895645534844271968513929497855465900110318366716894126225841685258330405328474027893312377908091922139387994604473000404597450902373481767066478501054936348734440122060451051454517946569196413896626189223691952072537035332967551847505250108626430594454024823228704636603078471193548428679522192296086741348624630120627319495947857011675738395233248046497800881357046175030208483050559910324779353278554358174616212598722752165402075426847578899870439960163956514400004410135733121500883841047840174374325043641536065609938999383377539306964966565724369568041702342749556641520034965945855782817133250862192360500428587411536062049801666299199433864798530933894297603882785312113239977492740732111762197166109252231200138525549201860014356121259328077796846689303277028765506023741087769213652665289507666524418962232626347778192045216653742432764733337509041384715242613862296879712165359631749720415976684965075951744249841034345425173370611510954001955575476365244225914615114620779962616033603803226372478701092978123919424173798427627579165140828357294838036321284719434487289502947816746959449478732952073916827208145065102980471799614892644787683901844531006067907284860876851264687409107146485837270386896420903980201188986671896128093016605387620922820316032128319972341843719252656305013175618600803206821817277716824283754427949625703393839343118771405995252834839842612486842602061806898581347663815170339852901248309974853849037861345370663676549680053444212957650184027138817367554519096810794546851693785866222723780567687842163326567311841991500050432499073510195912824153411751735284228784249949875570072859100744318070171452930888340219870908495077569887446065156042695067941979014038626469786351005341822527530594198125032497780764764707264876596201336631980772869068433789686549467318475110482199375174832506178349977460195453550047303828294293071595614757237241547359553953264511066038665925187358358678334527103375524364069788907832724950201562474786810488460525488338183214847217339512513632918595716283610595405206122749965719397890842858474546422098338994400312434241233626831311146667670512669579652847285671932322855952750484611168215388110614371623053311059109079736433764722987798312194386458701533983440362574019793173249075819935218371439874477799645931048675488358658449598506972585462476518278214996494666008348159669861174083476236365458082504388355196654251172907762262946174816799071171603181405314534439425026400969069295571996536996115096121855498921290366684792538434144967332953037977992833235837395219229809487466411884267781030406004522166015237359121128570804393634596030013538162779171943199874752174609798041348969143601703929557604221813612719760685549731004791353770580644973783180184537411208482131861930551737387425998756143865170134369695784287478003719961409210406454156720853653499304554172206217155717748817299063949096999294694047636893199425356012197546565052400775716892673222960861012433078009961591981695240084147206262662052109761752122036843876722892352207538186354429631096920788358741609677328183630844640312676209399292882098025551375570823481854848009939819818970976106007510050085352524304616054225927336447639727884012710429645994693489689402835172089259643088211867034632810293703301533718224052361057234327849995125732996721301085432700448894263897458322623990103533236507838154917836776104894826960184380471014008377493432847439934408513819078300992222124294062855057371339544118163629517153057382074732283565580428873985543714262773467528324979710632576928521755059305189333265390815918620208915321418046172191217106541017349018902779924489043725549740865589547708607569607823616644933283371860398217722649796349890642077058305492803430005363059949289194480321830887628813540647737386089838991244662805081264225621703380275063449126645510150132110766765914402114366536322267774540200979281255857823571188011394175266667809347458616554237019644787062091829994778279512389292798724724920770873170011774286716484978744013026201202843395556361498031880967544257820839073294065818154403800727015130066607507207613454559671356847427394988764619318735837148811842297989520747916779592117908061013576127578588948990481078111117731883243564606340673702969859267868535237060202234712468498258707953860560699903345888858710588711112115153220970828850247386239159486398578128621125484420128142981851376358065518578710352488602601862700011652657745331818834623553348149866131769590109942270049309178164833338705671648442295921481831930838243565967422559778071255485923499427526346709098127529881315577568866792842971540810304741417587735707825143311474961115902600982338014637878704505796950171826837057399459037606042487781085921201523075484084937628189011279328167798571128654490360956764719801659257535571123780318363183522919363668972599328233370931198717878222715710631053384700060876046126659081745750887760473989949796105409958426687803213454090731102910907189638572429452480941924112554774269081114059072703003250472089240386849861998973166591221268366131713564678665918042835403533853446692820486933833646166421425061680921574300143420212715822787822316730514413071377813321687500084918405124070421864905612983930589659743912630460545346540552831505391720107081612996641854357182977907726958833312895996100221703863959523831830124215532054310799030408302945144468766570681457949635154246187327155563988153320421076906645685362088316736379897391749267902009039513277688385142191271636254984809591334933261826821198500857829383979804015748929752935649250737216516591429761636398157414236454760318245916707340739335890163035322122046599861929251989401152813758348984429836203037102580885978842985638004372535312382762377539933699913795474601570091852145348139172558006393661950386784585052324466022146656533763051295460659056870271384760046170088691210613467633811966022716637561783851300264422277588040748254775991730349991829853939032550086727237103296934362763140873335717237251151123486872240672806633160772449154476213604671834127367211143775735120829188128206507017276141248536694883807160886104299962648735824583947743388760052724431693150863043004131496187669981860795651353528026917312896008709945495705894355051086185585578896725052702480821528548142883480853759069278175972397768237344446480959318421060462470599510310780266674090165920800790809476563814496941822214858464158986093981585867342162969531119728703321754843544103786757495977135470021319774668275893748116005788467559607131930805887825975790474895662961162467198563117074790847726562891447835013512396898633157026945068300512844268958821700739165405491548360375922048452986903058797711796910443776024391066020157250616543538957104094282943059784218482741653873678525501258012872967221725974866834237943732182657896576088314187445075897206251822790062849665946056957599429491043084584233935391075418749177178580628787146191273793964094517127357442727537799716668538957182611659611245523489067972301768332313757379269954420149173928888249206154590034978820357086699474052294204020362470889061858647927495170411012773601568015668667785937656125649043207320946918877975430609911979481409711024993861899747128943795185283014802851944273198445640372985198305842768545622433209482236201808630061281484170260908726906215397455623676580441208329184148548914984884519644172129516778758722699678005085121233093478061091894531698318197071468948691935805871908071596370083311225984328930133516795465365967124690625208146226730797560106152208141749284932440819002428751822414451390056996463544547479597862577097792295614870635370030933424192920454735189471089486884544941203946608261555658170541578243610307744811171712536597093202024021915617381738505224417394860882301958096668344307240428792741336011245891692222690466991663306738213840272236722794720497437744658719524296178437275279922610896066973190217339688769305215475419644414888755485684767469329878857880187572828562875946135348735478449377062972576268150350092589985379792794394831217870816547310105599712626888334912872705542134041930495440200090453710095300496585076859132660289070025149639870076420173160694201921757564846140906212143982323256526888280834093426235228693315540502788811878349140423849534287139090227608250367620121788765134425155631300828193681643960726113491627047433986736704993991579098341205207417526421752901412362767280485600537292711343320794936763929337298917307739986980955920925378641600451363743770874995741359252208416280320581556378820456083123700593981213049536348962328463199929594685013075960831449721714907546886377720143321090109326001997331336994568856380416479065040711401098988311614138117107146536019154992260826005367776714668618839572555751750288811433383786647867723582677332661259964893587474830009625568693516855190225565149490541543066398063368900226669968063927419453142839328431934717026067312809222572791493595838275654407978295135410605356200684424043765360695674785957003548032842965672658863671210628117522712961218489547396105413746083957951465712122004922957292533367578411491730027158772966776203986043974835228823920251180333925958470592516564022064189675336435640515067807616563242072547490650617133784627468928492247330435477591778909976324272461873710431350286792527170591771705898572139566906006515992295644032988175945334041279973567089768174879606901417856311255587470195084192433152114246364634613938934973461439161734253948895344400235494708900984439133931633788691998415903108723530295091415030669935310627508170170326203814857019341373623218078943850769190051596095404048263878351778247513080582485172439089958769476339115483096317091523679863650605277316916839732426183584841821270662849753371838244478583569918108713189932957686514932713922896298748943120543546074165874054818471138554067991853591096158665991241487807640070507745763526025663041602082956712294985294531284072458550805049484628575674743408817537071690449439678718272149175580419052757149762444777507376559964885388105232098332210963746299892657257830714107993546602395023445686088805030668101720137609430196677416446121764302702730490755522074981514671328841923892125478620316225034172807869804166853160843610572567851351013940254966379709802380760044001510895709171806154739528141267740950974059826180609355524317154810960548849751619273408217103573308968058807037283212640484818648791661253674708504912378540196929207028927755072066945361769932113726397764313500293521583908051241789809122481061067729073295808667728069034432893562448316073553055080763426855414572137303497692801397022614037914532681138470731608173481182829866562859958689117858609353793988633990342536570981312430984737046143668012492124397464552100699248475635576295397932110014206186848000640087289359000877336605453103543297488824524365683525050390972961426474251462165466283194952005305452031655525996248707427336382062330214682303992618367200257100345517593557697830991139712388249479520835182123445972852146276267589189947740596324354782620762453667906733744360266817371550596731041174887220557294453041408933069783384788943461629537821955850343804862562706045296810554119511029729239322755512619570930076512698610946469509718494774618487542558685979333214556704793559353199186832527572616918798530575541582425976829060427607248616933452746530199867166650643856032896463339419179784937281650400361768377029004507175936422189109484895280760620888361455530379149301190932089195332085133938862563270220450522557111135574612114465504791803125485696434515089392445976282394917697638137967848441170519799093840428807513730136397638775592340877602618756878045852420244363342140155917811898173509986220048290925124412277467961695884666504243951961655022237848429850235256281935156844113583962611374565544819377529076312353726310059605667146214118164259757451196746289804591705147349415286356205030506342364169319059041306608222630480851299754279824094302347326305507057516824997659641691947856365619375539735133130910576184686952654260864374903643670176499475892510408966569267032261330187221802007219166708428600535471816981283426296126766521821301508491978441374937661367930861999506370680135761383599125507013692154681775466131947707701978103961041006186243599446818214290652241141385357049058954595526320911969893943705498252139570612138120490038851304209925739391723851183988886058770563918202941488513496092275525221722367071356148696499020413012252604555803855771891045493173533370951034313450144195042789629315411567005847676520796365044329283892483617245090806865825795426022693873887804657989540926325469826068827314508272919146242000779033209678820614538919888866875189196863094420106876054501127991905768140986589749335293060234582757782203289778625796937676982757427028751231499548298059507930873194613154696142388454198548129075785241950326327611329790390561475823426825722748932529983871933970855683114463145727463987521608516740378396947549633508751861903318918537242640391843792087431640862812496121422264960016215121636456172768837495027546054997521581970895201542169492318826585513757475428127829843595679098519550483292749731253078377996151116097499254043210235781331191246638921145756695962444018944050209808595967863336607716845867341434062391692885911749092130258153477162790950699222492567989668899373665546774620297495821077948365270059190331412594878416667955491838121134990445754908973011677553782477426945770845138522777193086737862312007307191451576895538952064224231548810807205568120725780628683446248314244808442068933588540175493665504273481324247581863738990071231832982451024064449243336698646391966296080656958692294450105413138064162313150008789798219534936730653067419064687553829227853000071345762986095478873851068320363047013940237990083452706008533629789693592115901407838442922322297770174348523528439540579939328414124707265343773750317015564411285923959749995158684239258049209554991573446260177522455180077927263184902703465908440367793453252545034997008878290611399657445336942081183115094417675366777948529530747569613390984712318143991069433957311778311308759127389781743460718813113595721453895435406715660989111953114618921846131554164096248601039474761298428429670727776945527166498383160854539317122720967524620402394836881086172740833599222277352774842156944791255235358309197612289986281173171463323928449164596898257205844371684128367799355571767016137320359042726054969354758138704564994176958669836227059410493434721597009345734987424433459239329769578765080751418762071938746047112438930991643605442383187123777383598137933754482312912725754650540781802998924918650250784608070479211762924653610712702459010023202337964637560509864382028372366301089436439517110951511257621443880206062927604424615711468834477952912890342629841216619113464698672982416876834130264077968554890823254380566796273764848300301970447299355274321432168542087412748446651054974007843767733511103967843421552300560640307548634677502543628182425001508861013983627364456329412115169742887456545392279255628917252959703403085454468258306668445293765827824608702784011965628734399894260698767582315476702821534978260893596058515847694546066825401717115440125938040935751144911592765803497991749173306028268152077537868879970202757965634097896996369324255995840392769971512080686162244974525399022776923767918217712095329507171454324897488528989000836440298384614976197025737743501028160624557201275145463297860921130317876994645522694313914545543703893873741241190811970164261496036774529568876604352255325039765014479726929345866227904450990535763978144633816139048451519040342197326901927668611706817495757663978777880281867588035651613754702494173582085986945097349631890002031916915682445413187487266872343457299872239838873137569944061258103596602089552224521504653178469251045904292928868604944556541456717685587216443240433951958056302163812023092634532149050503788734788477169169788941107158215151463351723544857686988957809622060007623968713445858079342202892489692974025955823582082076239052200536097601260907603064725771229856456931550512717812325189420394923153239474096332999824185362740802492029233307255634662990803725955055177569497888958912062832287284179975399024483137930092912630665724493456498820102056555982749026568653919292946861520480742941153373147380757235807824351954276062317107417973965138359958867499547410922718553570431935424587968479159391405864507212993491461632416528940539040630246618876637422674522152704154170560990638968028847113099628447271806256013791907540452458164482350667925842487037897030339310050762741253714059475187919877226142346241466700232993293229485419119560685787538955325548728494693193069629787393128407545940350999717926994623486630035928774459086741711935025418936405730610104378031541108785235072294171792632039450349895462715723031440381210273103007601192022830364009532436168345004886802755438959931916028427353180227975880320853077302133065173851391642556213826690038572299104566218923955800106603763765329361133397787592094500557903078748789749460563765242840000690161754123647411558801530345008600113589113800515376513996601533856895868033864319891242830079007232833746671066534218704888618247116272393474456903351979066393929448515485486508256614396279069257175943731984670456615448380343366662645318442926416572063429046637082454912357762850154480284876364232174134042312610368761134420186563841364221333618700881804794048591202436223157668421347706181272535582531630588154645283018535758932178683966709409384869126915258635166304926075794290144774841500294830760510079812934145604360672459622275328600252208804920787145264484977049677781718128732122994265625656619295737199156690207826422178049937922656162423667248075028922081379307963920538995461976999243982703283100455249052437135071388869090503581737623238462619217948168455114328803213201432492273819933749937270240663651229347305201100831761028751682254467438103708121812910689274529108006778530954822119090257859327371567730893953368829307876741172410475977330664663059311493872813904383231858863630110439257502426766356423632618991809697634666338775934115032741323239560893271550145488986174278572831600092850604968716908043029306878357350044550930155161312265575119365140337123405399825020871801934284545402168940564777849103142571559909197110345367016881530695150053839379567922061886094308672060333834789933639148932288315346048920186414112469381081370531359776863576771544272208695539630196040006248336950289302214637427812866496796784613884884982064097040275294424121170441465044884650814221737450875165283324501398687556419352888587169398977463008569876129616178124782658217186703049456077085564819653761020326707379717742752567620805897040194820355404787027783540042077213741697516650527245091256060758592723395315670718553584471295925558380719645282504338793749790493375126911023683069577454388167523028923805357661929878265000064158410055362511226227324059800832718201886665914033105929647103429772988524441083520967383715163161590647473726430932182055587206690921546018659904718437535407032990347976679966225796612270307021259927159015347004832546274298691962633646193207427078208791812567354691173170007585879421918943383664501471170260797323746958743460994868351650249858109729010467595158575593892337278783923860310862454999180289248743294892044721124295460810117156816894193942376424619689082052494614852437125528377638994230249985424866973097025729939888030511545998127869971174526376794131811030144095932340408655742309069841331889919209221519269504201845128701182112470397862081564204144528345364954281303741800435528493353239040974834189240687180716844846280643027953513245120320499985178626581890996481179185015683795683696258827424880703542525866909263925320144694173710221906837364739708711329895959397230707542353466273830519477602570653040073914377470372049016138890440904335003090653946409769019769979454897584777864396429346802735241308772200036841909136676933079136275270041696066484302041854289355812743966861212317838565239775832971681728429710902243516021980509321793005668238422212375142933914498753497574746831579532861265705922507546976783065972343704296195694373333777269284157563925248133272414720427933758500388495432993944160098455539957718151544446755086495479687152130671297703031071514570829855492696750120237843578145115406887937102721472234587568092532490987936333902989827033954471547079307591529505268585147265067385467324264430116994158867119093465168834995418500221412897911078039805503541280946290733006681844905736544033496520147538928356270344257551704727942612779238339853786985495040215122667642320769490449298427541640938718302088235262014913078958827162313891742323442636093376153862298793715169132917764520182305141187844797579187723771050758364106374286665457966605765044643055138616663740796568012172878328718422672297900652482511635291699034075294346784174660260502751678991876249590546781383966555097708880341645894132222126341917102968817534102991032195338235482600845573696983409089530181394155662574207497744966026073958818662515903146075881743789903025392348865809883711303929695115523185268128606735810187984439319255819338530125862877347752385852681088974302063448250339801824324184538971271313865881963563774442063468083084280717198206352647066828717367845949522221253392437049279312599098380366078283127510575153591377374676375376536079546044415813707814755882294783491583231394917781662760508239876460092382252283280638866740751460350461442263725812951356763589632941844994677054411825828093143021387319808737508180258265316796185296878033850730748099752865816988154536477149360330644639452715691779959876378381399052997914248785680076206542220522488887770208341241763688184736848042896511856952808310104942081948853405676961584556537319090025426698806500672771866145479296896045244827252129557502783622008567449835840465319263713682344564627209937295859295084423541587559902099757879999013687618729157915643582851315006745656030585303855237332730018758645256869210158934399627739098883992032184823077446044388006249591450040853923235010017541545275685235667323641616352307162227026549000671665861369541100583057968774067537522572339025290314731907945375672699603040747276954614492816792141851439923725627251256722997883240987720736063675554732689994717464606006355641256126247889147008670630706537985644235852478643047561439955999540604063752609526361597216458522920685792098327080481405188993962851961988405126410523708376921096280916141141353758224702557516934261163181574011913015001601992306682006391122230677271253824492320499951944851111726973113844874499441566130706656642592763134250003630334175679735798908042907626922017608737169842912487983931863909277200620008173772389316372229876462721158895004664608097227385984650373972751897131393819693746173485591706260704900193517139835374811364596788666188538545250265346280895502515362499549890747690975832920861964144647153806856125871997814262742699333529363902538377648528169830190498207268958684869179407483809862472058393151650757458080878369532363299020986216404481105436781050185442590815291905356509556293950120327767000836100441389822411462827226032498162223161635960719859193852904627658972264225357886751793134584534527722262279417303917199207298845514338670011795553083991398025379513667273532910129263211490713828560125440782160657161295503760454271459547558376541270826198483953152102325673799228020722317265197913219535157605795595464938408906633523060669068758693488051988092687613345821427195921374515093245244921728539201741031785848809919365097841245122244660875650762350465274117257382167878634254328833340379631331368161022099106899411224255554923857091810900201933183027220179509082524165996945278298759418704332178606438295263560536791893311741807601292588753196653513627107425993675789243240173776318387584082526379476110113761228722692666233596708487169633493131977002507588488943221602793432793510616368182221262413713238376854860884606025936698906026493983426856796007878362198726009362109911968506601328009860000736549719704262695950161929515465408054961762264261151702709479196355540292230113946194485604511721905360144921335997320649239338056391088588352640972232595717105867629052553154581046906753403491105591138928302450357672868275016799812067829743852211413668232696889997273955007519299401033629587535363552960240406229615873110002642471144443979674170804136817490768346440257214253774096964007506419233507089220686921529233043312075395766863804464511177959526524861243078488004526033506787070866235922245733079962072877787111628877230030582550084532854749288803438165991215416553939416064095498122628481907558746165498467627784880666003118582685028528872887969803727425111987783635296389647272112921419066384291923572688096133122475942276869675090950607203864710910961520412372294703355143804090381817542351919289560392061405061963275242750989970552452473636709746199993688402221778510807679593348839040601793050587429901538619737542160155039317012570619986047858350905159385018010222149001927861616745918817956796496133978930822572760478632320062858069617728391984170904383801939931613468599553777814581383256330777705526222047831035524051803544457704278429759420367924452422268343935630968143751355741876562698249586799157431244334675673248958173045903929475716765286879444950499564287082419047198868293274763653340127002578913478384648438592932993205655061996836820595522152159846126834317109997085284782188747349073504871286339601789971030395441465664193748220968198180585616118257962409097543088041236021024431612709479015718199003714863466808623586578225897937485407344707891300067346533310091025798356727405353207782592167640057260905658841634864893776567812366018169568880323767724127079045104995808454552536308123324296740454661756995123383363020646718820266410295997120346901745061352576470481999435400544410669533200272152674594204371037299399449461087779279034598049067143886323664589280290106413259963351780140991114861102944818091964328416805096914603398290365111050760117753079420263798928654816408673320456980261797111654725534175244697636411628330348575536220995499105932410454514586111596909481920421831216536976694398448533628192374604452350003335609201253017806368106097400407895652987650222640310628513744582215659051505631246334852787921502907244422067452088145267208033216081418474612243736018857297239865142097729926584883253761517905719187953073229089948465890546965046537899473369530646072075507536966057933983921069177669201790456502012238789439458953698439303590430728553276951180903508071800361166150748465322731277288890681134194263882850593143768674248672128298809302136460978576421509050495521828487348856024873694314282307816656300082781904050487886474441829187950818124162092827379834708562673106085619733089302164390401840619990993660369990911282564252688819183205814031684711603656031488680499243559814375331164299562078661335154775294748588481609467022743110894879561258805558822973932112927254932982101366401507874825105017972871739897821504406616618701974344775552568929785150197091824297017732340808384203472035637112688973102247463530527159538855142634885852030341373353399861671218869111845710229183946730503638833967133518713087190721741577851434706789342773400141504802628917586327900194817029525886536744791986540541592834113242385124976828981684337416680217725198163342939768740711457095200785868281201098010242348100988357209320096107988949892789156568524084057734168387911073484251869564046914289081129572257717420637179954786931859151458989936650086468289148019372311520864275091942846120483426482669441849483137325052903341381891156413428447892126497238810704071979551941986457743861723277799826977516427070264505700837919978547910113564377743263190749379533427979814773764650414920031013284526778944867862605746760732693229499627156369828786715211925308030602155635981976013794054575039610531319531103859606378419603819800299883141569897897370922573982780264153013245996133551695653138660963694471696429579409738943957196469953808638777793214974729865710006786427765246458921375135775469000181084176253269706900763932342386459810254717311611721219386079836765666803345876713555222661353699524996559707634335076620610954597158472830052187956504543632689183619258224546678901132265893913302251192576821939237018824501384398982113457128564904557167555827922124627694416918392421021659101877185875503386028470496522858596042849609570191702626975146672728164986307878335344671980957402341035377462281995584587734839958631848998945273349420699180257041683611536800416525434706033164655788615601080543657022589666199328705057599991162859842132329086390732298437974683157804881608564757385581201471977993208521142229550729082498237367267296131651708103178615829118129507249809794728371927704879038062774781999140549009404248584339115637663020697091180635899324754908025665283229458323779732822368984781579871138687487477538334966282256482439245956128870289603169769634852805738150648600311390553791324687493376597379503543044014155782019767137534994930204914179971748901042763706873265260753410890595223906877152345087269724719876440497680909729852856016398349827318209707294369550784241507072454145963784717978457450342336426528255526794547686883385716875428773671547237749565398081168249310657584951351350240953739752831815258716831341464715691588795731040128891504906455762281795511942995182644384696334470599478802999227677736113038537344026225753825907927750594116293907608470107806224385254093356348980806733432661376277921591419732559339719756792834888575571363371820752120069823779768276877087810427421707734033867054292475290551531507497468358424319859577334642345481696822760980193074045573435230500042614413024215422884338750789323162688340316365232002155976367349433037185095702066000387306416410558380062831653267092216068957892572481818050341290922723179060342269100449735741744567153173708518422837382727325872883581521530247636454596875373016677193117128431804769435322908085784038269070427905307976490450030073333724226822889880686736113735376918318740288669928763969311922223595294174082959833981613057639540864025554108132551467798819372687362442751650624407466463954495836728900745905592906780975359876551272500408412657236399261434192137663642510868456552102335539159756710036110946568494724154547124357073454176026377068067640419990647287307029659344009749299737535551698662411587536791143054411908354815978659033960701661747811326417413509630906039159715192288584378731986889039071334002102351261155421963508367093793139097534961336434153962850020876015291078561308686329041261426909926048260738360866477407730232411196230551815530314394288559602271781244789171500191744647300116276686414650727758088507818540550112394497001405490160184365535139880472312822314669776122923216784128154801406272393112294162022528729145404330376442365831974623600500880826459683719060923461261134365570089453488406443564035468620787345048997738400148592690340457920085445358938436757008014994376519042097485508060242498766092508806727817003809321861477748195030457117962383066006965070346019157997292758196489487539417665523989821123756326571132111212816901891049167890336245197006042805975138737450816617904446178723365633332705364244437194536886039961645214813078054448171192624176409221714299308526098103399402599340527370845495095057291092357607039655893817118871418460463633691815191547439078276535747099724741243142461146382801026344245360015230302072956553248438079849139051746704624577620963812896893803609046565875373870140141556443685730067549476494359977462891194791382880221480482850134734524579523034870062711138860282989053414224381769356911865809495903551345087959700198968280034377676285854111021103356229834129873375184827499940130900034883346271945264800505472376711652596584461697731066237007096996305597316841979430371099207716199955290513467886524136974489595479200615392825394348336411062448019135725645433514843136350043227383916434921738993676432371917479250386102767939143308504167622392701828361920294930950942841867749917573855297316778154814776401488879153434164068203862361133535096384730738126781753146397055003120520445645524924785355701280431978132352611534663064726601540600706270016893104984143682503151261979548997955758119262486604784581566603895355026396942025022578106911498081783540441500582962569204397621284378672541463766164398440828432332661109387594749472023800657875215537938519361253228929694670692971339768225675839119378711779332851657339279863542156375703110139500302995140192750116657783673211438228542664720321462754875812002070258971291638603012598276827548149670308393431459106405386390699377589769440676101023605663719804913374995968748458049530007231799003557317482490999070156808002225219313945079756065312706360007443521890159074069867000454209851913244739613893857004170065109991691767270041962080855866266574750779918922889537096300241989403160307152830443609596727698002253539922244547356642297911673560289538941145093630785381018380123143568923857798526501664474954207529075901286371059354994973925912535123092290818863236933198428569654429840806903951423624011894683233346359237444433828565435055318582413748968945105081518992481155990071946972041595654899110014391119835595596682589406250999168906498625841093677697405216760025757850985883186318724426180644140659733140845785529532864461711062309645706301135363604384748075269460813784095884145292540005113471064680449605777501291353928157962594011641048880575974002467519768226018911686999066490408012081512702586846285158870261953195314349652095312091637902412876128122121148360559963384787598573023286099148706764235951281663735836091708022253052721030868070339413974755138394178006783618978795202093606805760568975676178923088275687190834789248563612645315539248688476012269783963780652083597913696722505712285929963667593712425716038465349884168452259319547258877191199398300571392358483611527082187657737220062162796556936130249511237562052661482871203714527946666628169663589335285033575498710424196342895692199265928240900587863291957034440138216297439924127418414665089266800341379293013667076807269228126117424139713943259855576374347428821135247468238727514716164583101850799838419484557556250160200463829162509975344036808201204299496119277439155858842484952046896937472662962725532641217070527975474859401372012024021402206642016469088183714377606115245699268369631359877266779892827770101248334743742869843135800455970848739146579477228425974362964063560311828521028997767278708193777633601525812270116451297601640826483146214165351655644586981162845316455865657285319876472763727491995542077897736069842738423007892813695139002871411289273557418007344367041057424246056592445018116319358853059733844398157503233857174618630204249168039549672387639778503284535815583184813696499491644178869568337613958080132991878708419220428946665826582316307415734270837811341487042968352320662636271961404362707851813404030158035842752220156046623975307149934008813434233692059936893453613808009269080052508227946631078371738271155735628632441395209091425152049401446757280272736549453710574224022605507423440860405386139957022540655058403798313258488275209998827956889128949903786694726462719183922169978015604665222412425617400880961262361843281011127698563279275559180518409126815200245639157004921097436959372623338373684399790847223204185816671104286294929219222822699497974000573383871063577028987483535211252128284440225430484175620995224063949622655342026787107401118073158398557110215651439087457458141541973991577598740563168386163620490190424622471839580018241913015208266301683503729364477066523296585484354286414738076092397379948395078127648266772778631635963230360905909764324248711849014308790247532912796577467707166093966275098908549995144412953733669687440222211329412973762612168299449814943771027131510997784056019853967389930750698846328957708424373998428383145657879211421903381794464855999584398120169560032464216655834837770705374111341026012458796940745829450700802566876185139956534751486244531750908125224226130678171410001110010680463539872465209551788082281168581016012215792363117573464628957960817882220127887439687580420033197906126441704483785262539165025795456728217198913540034544449314234094427727632357660898014335756003836076258711830718697314549935044523507684350869023529838642071425870779246832955610320174799776726728732588716874402126630304851951602475292874902276048459224697784497245359786912254550099831440021277694103963628137006540206791395330663693514260212135792643431897212449582450269685682437710259800646617771235032716786617986079967173884242583818266781205950808815099684399889069624742792868333856368288104162009706572569027162459439178490956167813452501828608117948097776082118775657824414418688995023541028017091157645523198410280155061591205435341645155623452147918287543034262795060554058036335271584047340352077704904697926422564567295476876630246116172895067246244678319640125467922555793696937046024518394638165833136185450869476764139437265600759024161099669742399234191742202077250373171998912711673081312692179918129480887454496698962534238067988048485283963422288993832642448988578865292771939432717694249151008858063389463835839549137211721335348682886172002575897014597297702753404667559516277014407294756992963565328541245367948884202422512407332161757543924046099746576384409348566487497974193581028293235170826081674157755402768290726266739828486329398429604590705051889023585451657984334038815102503360785679763071839075280696004940726124772816677386518006689747060211238632094903540403530681597421368851249954341618604427018724737503562320953339414471273642291452069431240528627816394212277131724611554204426195266058808205505106767499679118100402157288802696562905415280380870713628342099704801628534827672235915362428546649697838983912125694342954177693382670158212064961139841742754260175647064992826677366287939664650211800165578873362110335109807799533244785793009057934554593116674332798451204764754356812228422838813934167406602166452345045957619977574321951009449261401680649269876623983538924465641782134589951935652273202807697453344376393994796405525322684072917045062701925823851770776470462742417618569505829060041017380211928751783365900713248393733895412797164119525492038674951690992740644414454195958841671934727291531644484902025450503117779251519584156985959544073679312121087404746272395664697984385537725295345879767097997835837656360246419903046380742544852350043598103615626415084321149336720531905540144734838365735658658211270643359409113079829977484629869481910120185017796674616676404466748524804290383654970225241829318526450808665526967378991549332180972884106463453602456474581014515061956196074396608029175490877091992626620325090996424014467972871959880884556019659253128027008781326876387947651404236382943525603862424821491155738270956873799680482848745468905261890675608815159271007024945197819325170283699766953686373145903657282730154113787058680895608786054643519286818586009616023966397779210699553014762478003200858978210104230201818355260710575870762005374637525461623104953991243083908849801955176548972680586895660474428601451307641385279498684833726916401857066198496095887988331721172226638911990737543807836847011234063162058962969769648727061179935844912036963880597424909063445846103968830620825350201604781702920198470956132661704505361546168241757629988467376608353786426356147151019932484442294080527303446310342043381307760399122171763221175795698376149712225578508944635852318432549600193799759249860973314027760002370232013384947903838561379351625328302990339464635378186976316599437155246873290373928396863733945028166716401156297469628334729804900269344647835348451534350849420415182152326239859970572675618757250321040136023128679833060431413812382233774125578589372935228852897773297388150427528854848330073068206700973125516538055827083831536259981565161054260569665136096811713456857470420772100324319300007235432065175039990901947212062208764352730960094961183694070717122180848508846403929393502897546145443612463125917674572436669566099229640464903436084680105177690231323493824799585114106922646575953156740377484330526243149277250203758923920926546567650647929406045602468647299975418344582968053317433629244345312700619224457345813584055445640987563873799750856696350637679858353454627306014691909111410922596474502476773422914138053887539665449632273269353659340657593580127726303429991570916503727156253850292799738205295587634277613314465399876489707589396381551818191541505661610016207625193471774614889468364692803862529325788531378346995050920185560669150789264090595053522135442890638863792134009688587929837859583664846655052762244446942536845334995061844681269385449851847303643744907857537323791997589970440446958867341242719543378009717399426569275517481736988833106567734584231809686012370312179488352425547341800720565840451661454154622791646965520155196766276533611914832711244339908795982034523074998323322035354855424446685228614806297108557139375887065879061269772365463483260023137070400710813624478794782396525710880142234543755371953607422804114724937143296557733105887874031742180789264786760712565287805945606253966316201563282536676517968833714045601700901297798426800048963557070514227239456245119247178440487832027177495117768399760640476582986490510818503921104675920044868626580074564636799768429040541336310413870584341969479657183611431172379537380233799231129665826518163125267546264682230575177399077846428930277499180776403943298639240165995136421670835145351050584705363062590095806905973206777226502002378056350050729899852544813770984730535251687176525981002110591716458141073622308866678162757756401388944187244142912203854091620866325289241553373918305693981554827139201902897116135908433544230032488305337969632321172099005539332899115017639917784156580725091422015480947255326492248238867967831826182350593126004195764166838327185497429563569670417578159476528399469600979478473816566420448171184511248688133855957652367999504380681325839037056094844120833972293857525384376459528051638541426711416404449409264924911448630340409132577933614100409346805264804353563570302393263295899461202243886285994758004186333959818589959196122161949134793572565866956335438069075761656156092319017337449294597975687664137082889245450642808580596005786123972978575379858159916143392570282340931274654507891886206904205003658510616425085871620703949518398090780559115579968838383025105373851473769782540498534297409905731262406379900763980397171527591794894205288438136309424576963431387247402006678028950322648040730700543183356761888002850446283614591614914816987948210822333945773370952629105310897518248384709185714855755298714594547033669809120910566438601877855308228609390372937095617561480401058429088047871962247611469408057966128741514016523011713722218505012488538813388151978783041479207014593040767116685866737572066326346653046688903941879139325840140278025449291360378276395838515996075457862354179929106133537140432738084502990123986268016930490787769457071193928174082368180667277331347385582647389339825209569177934786191025330666772763510137764697214871500536552298628086239675459621009656018060481212420206428770485781828534308407134640650230567941479423432498464995961114199710254174462879884489931360817484358405025548036434229978332713104379285203263139529050652754571924991563067464190008313362158403265697353356317998385848336888474998378406785429140369513137818161156914917473456436709988277661084459109718574191491153438117078508470591869967323472876953887118510270446806794584966422197560891501470231625659326746547666714751203734585678606235653217878200047263931041046928327790201171125029658004118977776424089613032337409938045957754153428917749426903150552791044747309167409495296012026022782482814949590698521661449698139873547808622706678193633691083302438753600627285308379592422589356514946256418487659184837900589066909963006930628602965660728229789025842651335119656512931363889205679819687902473845700142462021689334581644060822861805772399538268695981208021838640149367957337785534521451220157764029063710275876512584944789680412485708858773509491108183594689770494125833424111874475145451203845566946815343841802430653044922158673901456230308291252774436550908438757610226362818482630883984753273258805431833230422074056710756394298721604851488593296255506229284617313416592672027415046707160642117173421441095793629671085750123427403052900677986312009699319412021540796708691076673088300868168542817417638983460314021022960364857101500074219046696563289511295659649329342420023320972377316154404827496030745457258517812446697767910884788904039410967829300235342099665471308458529358015832367146785796948872303876558202290827000834342661860217795881775857210369448369003299781593510276635859465757362900079249379806151173632902880947195739903313343684716098160202695285180098108125737832252964788695750183331244325842499996830968687246178706201256505535314626225969124112169179412056884059442818765589251690281924177796780288629503672089443775693071773541900855682371177300643478252493606597032691738070513363538998666497302462162181252103784248396044573920437744599734801826305137635617926125093333947146303446822926072547964591378756975597434936566609273229354669774669379288659874411695129129616245031073232550906057247905924199481436432930905607430855938891193856834961031570143392118999166985071574297320363463146866805650944299907015362296580217029724202431813791641296791439665804790498824681897018989141650690762658563562338726744478462261715026898003831882721177958533051449492815875216516000759033076308844535490292706697367976271001552671631301475106973629314612881249996930850133542275937830547080469254672976430093671236452543320007564226504273924712345580141913546887270280492782964051507814996126192005910453850991285630866719261626057220619118424134350112504258451608212517486612935964129198833120558996451461077005949831443765323137752743239458810931385108589138125454683086792719609444661677436754654651721122952023517587209489643990884610722420768700772621694067993118787826636486230782697631794898271054361561614887628886467524378467665113279991533081972055906600491944889696217375285160042347238535399775759935041959400398254165496566096016894743260344220990987335446321486934732413283956841323250671968563244172997866202144608174527095316945218030194880405359568281023844580954826085595869008093123097651624638700635793272202074113182654151301316768874323511987289149069750707595905736552908482370465405072457880081192692325782802501732176509291542363741006593106627622240623347529224209609182603026193080909014421476198292460082322387401154414582161180261574648914371384706231615699058465960814623162840822502688260672194052653344084573330442555225467285313931820611374001608137325629655337035832508127763594976924781127887922165973408225036086459958907873635548018814670873662890161652841349709003065878671425559826172603499069912047977203012428728428912719268962873718779961967118271306384383162570854820205106120216651220764440181844509406181640918423001963530703326701910605028575618620634638742906481796180457723331986711228156879065851905060085065003929681586278348623134363100168343892020176018559763435353467173569861343465592254996542794948311409474790672400008647716225604160181062870848642949162385256657441456357032096066891594692022734238486402013490749387089584597562199504087263837629750652266306909051539404541434640027810828902047940567593710631217982914814620761140775665324819202148597401428764695739280150182686183311027747620464209785034429541239574288327197887327611958432587476235275128498479241322002323735699969807061027625289895847641427694918181659043062953789730891509852508553827475681397544205378518803034369915195535306186870739056592763665418671816701371992390308973051642069064324207940369482205991601115674926425936321995724951870304502666570735276233397475769044345025005232534592396965337324618939111356281765243228608390078910163959931778418090187813582373377395851813730103552713004554450296620038868690436526643413627116808758893055928792220888671093277833195583761063277825127581506742213679146096890295471890357115410363713318861209067372875435840107707702065968678886679270704059764592787468996958985915951236790938828259735850050562450583200774453845427954937973271673491034160624213728714431448618933006357997867189556589759906404922359915996016717224502411060916160029455371089973912494334315954366476940840245965534889838288363087104231271274595497372058005018344343298688750216234591995897733710286271642657451872299119598381464255789711004289546885849179672590545172786937805462279134382964209045263707289584184836275040534516803767128637569519635736085677407756276369710959835726269550582252447666725193724643582372194165785588253569464948705137012280783351184214321891055724190612001680842494873108914871381389528628937028947112438100339186738023904593371346491526255723939034675830440695535212546553281834791430976094634195934824597098477958417924607498851448830563894758156450665918247815670262031219861054229071024866979444218086668139843336216615007911644980510407992720907877336963194921106513395721309561358515527323960387017724809929275855034478409121376225910563612961003389815112571021295950550253955901225981312934054100002537793018774853100382957647871594831982118956255475429851388297697486030275159870836997975252220268130438524344577469442457816060310654849997942969810957966918952008353424015923908988375972922797509792767207390151278291451263556751472055515157315664320342805268286095898856437369216789955817691914377700074015706586727294084920231219757861518296619446816206564127974007720786023447329301509569608411390655696208216220694654989333369656138992351214255415240584794793884360285208493686950910599893588812543804565729824258400569100150301924951138274268821308443407715944328403332139941621784264299363383396302845189014401346936522325958333357363305901454957697431766881181167980753897317696297565014729591268498245616256103828111601345573851296917082611048487458695573921319908806606567486219896845897529317011895271481194696605049909005250042252152302084759808499969978049721227163863678556737609176217494446647302535531992751841890552389621353640858394102838106473176264731288272259554972090150440346682912224897046897515426988062521787936087440037446170406238790312095690124014479039303789227427883748401001731981712367057627633050273914507154523900554990373018523243007018157951180976293064735620334671364867461888618975772091844547962061376800149519055912338560552036342381387110775593201939620007397184468759536580049220940593999614158289230841564186128741779822764055866800238659050232235547205292782190087164526485879264369814271589469459759069020945587733056989654249445333954368666489447089165945557306229392902067667706940141723654700944488329460778069739327400340117431655757030309423622660212009402992176754038702296029354080374854312437323583521998676206624984933407378334424397402609524448367823411508173583337491097856475879913487435552226443478916803837742726333181110826882920477096937735385873815960197015025606610685469059721467696715538905469528572918614608020810524274342996652674620735659602579178407895583432411586071401370368956792906657991418470983768015840174370154633870161911692903122962902422264788113318568732651185301174440128988594065071695177379547164205911297005118834111341293532827203082364728853118854876670108219478522664988371511241480079735321668513143657596368358019762958381896259537533711070763592388963085477178633125345934410321036694111847079841643911609552624755646357302200327853964860729520435520572512248018811561462892175190776423133127940972889627755178502127836836811871054049080180215769086587221996217868732471138458851197596933750474299966274612340199339625726775110078353330591170873327815180535676590634248736445559710722238365029775202632756196474834407635959922466513849854185643262890395595128003042465338229816032764451733055913755209896871623832312970739460030355098733546978220318368911639903213270677677780809667448698318840074417304370474413684371733841076414447000664154999867540302886997867358097263851472267601635283637964986478854344130832881228833994594209548705264048247932668011180293832760892921180838919291546105421249180855121370405586856397938955464730457411274486002373182182241561187417968435823284535947836613781147380237441490390974810955371128929761966390126073428998891644782877881431147994621910228528300394880767034954035045673381070526391459498434303818622124450675561679510942719898566372849730312881621447625026347815190222155837090173784336141902844931723647280249424087471266844252178671817491151488476615502645563580393651302755327839853106738147407407183434745657585055737836580535740862063965785938086914176167308231427956983931050849570136771591722478229808868595164875327171275267213267125937588144134856751844128472688349885235210605685588312533221389154979102917647373306711430731898157734762848548452286166450269821571392682127831161803954499384566682818337539565198426055995125522389949726701336218540455591132469203719742429852535214103838570195620323578996899441457057389505972878393006367652179409935688462423755442776197436987223801400453242546408498154696414127445126211938755581974338761064721385789321778947198791732725989291301084675454643531582669225411841766755221757653102608687893778691505958208392921027529490628401629046244552122341437271162074006853713591785560666800219452997449050413444651046415187505759931114357058278092345660982657219230946794550774415751064057027368243729763146482399642588172506991020808585702298117586333795989118791062964634058512978849439208729225380263549024334557581763495688180492010972589563233461892749949031833589351566132378965481093277430918378621591126731529401675685866546614436164370441143149366685543919124869724405689712935400688992984928156818591820260386856226209708910989416176525598833327929019930125472575362711670632655839266635761375436878445256052730822247719773531511891852326131382285117631639272220495011948187384374544110215034753362995464734423608706449112356849222823442226095863281756751477299072352577260340102444812771633745868381043928444015402064313260592318497948539120118561159466466515686021252439115443163389291115963975305079210746448414118144042371432620913437254010742637422782656289427887377478482934938529560460191869965781857345278888341073786202161083585389261101141067745899801649946354938443223823248332714151758470400290059738510832185456421339974031823083662545603494059949105278625501751843711553899346132659930735146631424520907824052248329444232901863116812066826822424909492038805114745015103534271485535630633515287895424376607653458643346367146391035597887167413251532634773404066831389875422799961029765380500118647668927691343375762795546347330830610749600616994757479436825963246501643119976305969320878491878741942889156572169601016036739098904879935547191182707887317923933325036524815888426393132130259889438162768228430525279751630707703327511844784769939003056373888639017307255933018549297123916138745717453814416203325729862669044777186587235468953600809014835369696376213598554252510858964805619909022563360606936935274017579576180641789640070005559944738005017488894359421020843234135238592653282580882485118824584641616487896503806065522525419889380625798860785431715069272185260480101275147244227121130349507241289299664627318824354579788978060312430233564850817791542180110849134077868203610333067866376254174204942025286994422277785398618233671136440585691953879813677249457654115476183974730171874007643427618422436786716181617730637429006031775676656527733063459700824840355219073313158036678274851814291027172208839454452485615927764821244648562683296398856105548399287121577877867505667889846777528910801738009848866876080852043915688250488060787160689229650607901207995256247408923851625245711895317429137039238047036142220238069697678402368776177651569371262595938227660290851927449703413172628124581755111029403816872076411898655143045790469794311832362581783751335650247877295496091658111746956545593571145369495791239323881764922991338715152892330096958521732517305337015359970178997467697458880986638674320624851312920210048805151045129694773123269074737305373707189727680951803258988181621613687002530930280867816581330526927260830674677042251648748514180218647293368314365577821719132962378870194535689256220721069827450218263457547747638757355715540833388154445973906528474367161484377834976407164036940153890703466226507298007381311376024070547671491826596298303687639869013166102759702791227239383844766658639411845603013564728491455314466789716863945809665377559572126798833644057780923202470655690792978566352422843654615928129561596875214876493616372780029025399689182128530643860499659189621500293857278635723877372849615124171328885176729954097184868348586407387695634171697140754902903183923269532312566055953882186951339161464469375408340089099403705845083661822466087815608411163484981020861770674882095966341542833336603113625410415600587146207716692147745978011593897051393320317607561240467257062554243173087413868364821167847010239927143199693201684048112981696710518672541780984633031320903944951041370957265322888625328720781399514170259803850155693486034725883330811204443523843165461358028150957496212094532259692223719963960754709901387739997396539131887140098755716615012423915481849305758960402654109150904754401508739906012447300868814434629919677106780800272347154215916856409275633677864261059731444380458514758038930305170331408313070063886641613349826498230661944826975838325388033657435974831783304819987918739957290833219976437550449290122492245435623746390943917955185621794686636445450179485207022059049939843197727406586822740710124673555920247542872946744588070351458165246169053599600948947872683228834001401908528114447051647042398525387739679536662238450812324037055916270301009480703972038855134724054636323167328888771971901164862102750065190620245921070796467669789839074208642313663784563449247300956563351712495871909047985382691611155381904092216783159221783129913119387932834259856626087673820066297665249402745264403750766600988662736496936856297449467633155948121309396037305761623392747238953654831463386619409779840387109218208330283817375394123943670283663467781452183796945201718258508953469630123133004827197976447397281182424277351769992428177297760337137365199103467417913149675325226092800360270998561105432418597301653713527364157463874107616808618411441419461640915418095411086609435579537991253955514388526190089962953843706871961007812831773061658475123587819123878510546235200600978359608096684556603187516057529289085399598783729282634096529705098934261824845123890282351442606391946625237477620884573935513077241693195311481050659360477418497514518264869129552459784376792766191988177955154083379082969299158045643666220719194214551944555511283719252927230602310311896726088992045591262899034994685912430068427951193657382024039077703827755634954713712437035975994559158939957807586657268647514481962447446044635163079859882246907214043263344695552267409416978913111602544746579286616563428975617148265412702173638668828092378382849606712972868537447482761676967533015943747992620028040509901062750482846963929052823963779855219156927050076772325375493012398173789211080536212681470145509530026216982541522800604869662901194773055016286797177414067495051463572317160997345026606372114653517438887019827814711189914886896014004813307864517226822751503374623533441172053625649164789633407754913490683457811810568621613373129280718761943171930965159477022371001360906673971321458766186271310963348284712339934816933981648991965128025808734066643708526518745979148704514061173003020536307125509922557217427839895847026344426714988836004723838372226648324323811414725670704709559690804296397232965724482826207873017300643015006898725551505611222015839823753520997041047206934297855198700859649056029358020592399571500752231062164702628309779915395242791478688534083513983566270873804068566041003394085093655973890339792998978719984828871500085706061518573111287166399156191478543523134565100396055087563350210702462988317995578421339055831728879933159077515504505342834932784228714274400396163369484178808077835052352412764528684531496248706798851451155562784898640822197693944985176491235971700048957006840768660878059574042108278473764113418890383366867662549313487538778953152622405164686958821932294682281798707483588606162766418089882145251813150347282115679976846357850043987727073161370874828409757315104497878284232106078533329578570517496344820728958561002860511723071850562818130667844556181329793869851724389226562619748436222074798855716523062579758921865462123674566088284083696568215728952230084936261188724780384790064256447239340228355242798351309364615460710041194096175081947970724748649308078246235721669613135578643511946172746548940895951571921786451827105087305942765560389116639034824851314499789822189311652886464634017511797656349917065167243779768740122486393123406189063358566305721304718065864849390711012067466776770206168411802092172208700952191737239807580698617804106571376469634845202109672101582597983243048526805284570530647980720409144615445508856820794878869837758748261915934572961717825847872295023206352400346937720908532417603557369257909866811101193038608313149937092320805683998557408538380605500986073656840718408351293149635396468855642118277179890944030082887228641344046675393183483552461814125536934672894786581360768005718138179645686458292385853183006387681760548660022040729918981860569077826118144135275559479620261412976358570587170748046106047018860305083477824109964364707676826885542945936281558420233536751156260066937869115143255382789120990007837108178501078074803467458378950564925102553503494125970900373656748901170807702448038708386139560605114395962312215409309435915185292199745749459875961018524316148747858053753277265098050541035977297350230909893079272149609214656885605759744021045185338751221348221358020901654364089374659199559547988440418489609527209420167850609852882972241619496903858403515411176051965454677178351762842377645656995501495046764185397376763128258362507465713803768976627909682306174149092300427309407864864348035136964936693279738209435025716295090932822006137905622838670402933887632795264445494436896192983937259649756224209467140186081758935909137882547900054373915612877711696234941373819803568847898246015612541240605743893588942906905917007672586209606813018044803459584791531801727915690073632782199206420854222539872644560524855051456327476884459451509997619918716721380703521890729331096445287964793113077995050899332791858086005752641655050612824355345425031746194494307601644709129917600242898837961788606638680770518792861546069074911770419493506536756314234487429452402937882365854560728475850420538418746520793360123828595871944947694548293201024190898674415877099307125780051724209543260122139711508976949625319446667754075094614419148651898273002916913476953292933511648250284890270763337767007306471945906766664944364805726424540871023603578205766493901228399186925298046865496595750855253584370427259716486493795833829123961396647009499967876602949411433564834448695700391799351301820837616804779710410762610458994598879548820719196091420384646134766727956564871528710762387693032414666064115392524305427331513698895236139629360014540986188260622152681798529555640179407690613081600402987149053430537071354690474758928229021861652139878379917304489881270834257305250560268817736001989827906440298420538122491166586727622584952082195431510934910211414680479746741573748416805497455899683818332149996790093989907872783329835840979395688423700308023381730119848602667669648418238693106738232869304688769202854439058035817923803717096196433099577182835746132301495776113003382838295509558132190630998617794791807823535171000264203816477054238258325855664460554788872370983159523977856640946536755884969164979755176734418257684945839491748964659351229176159425660276490445684288241576294060912092763261681413838752520694284276577421055747882391900122093831709285475853902731478725932956484159765041912225055773282009710918626095817873663807247050989608708522010476298343374103463256394332447474635397584362170815148477847799402398548788091627409511308629869224548617482388374520333331252514930233820663267650565243740238030402935038251968792838438751526821898878126019898133674201980339396292638985609522868382012896500520223826837372603701731313541393256217412271878093280470132677275631886433730917371455506515916415681823001694331175260415399531029558446951285874459157109716772593126594614755695185382918792901450647248814788054624528453860865644885923968845411923319038563974897854685211293240866925228389206082849521025327802857383555510467651601061277511722602256378667219758851180476755865912853824754135564778470498146913143293831219880167605066862489035576042209463075973215144944179607471036037284857712526513121484936337800193740225360093414012853917983792407897123958303869250221793764300359215069507967261552694655273502693500999810014912624967327846391609887554819344833702183367654577024947477156686679360276129576726028880534850505677947433316809934923587151575029537953173119240787888829897173285483883936249025378224476736137941177895722651766521787604249132413317731201831327159872364435921844092753790826056447445477128551000416567860807422511474227009774368036550052527568310940623747580234295159999113241662542766069027146150954848031102710424493100274623128248172496365174805763561522316814379727993097920641332931812637014946362752798023796096800164215004273950254566759145805448443401315124639911851369514056591284751287417688347100918221539013041203964286972717537438066333434527578121251784192909466017884432928420460191382309022746366386185759208608421987274147807605122548923190646100192092769798722831432567966976482543583609250056348786743351107660309527189559495506920382029597076115714140566878565591189550538834842957188599046417652500179720767868801439350972249556876553186416165040449266404773024169976566495633489186159185134197132423161395936506693769714287111579805208384890590470663433034194432706838450865168310821185129378295301750612132495259652180911038397440125176319491510751830441795620406786723670437607003834903309675887969774164932376227191186227055804204393097593558219647631180457080794414288126450923484873539441748641685233219535023808093725444713639503305305725538227591308231568257322086195680368103863550634764566598969034438646427348437584772067295580553449365738029268903257078169357072107332647618015739939843933296920825147743181319020946175175401626155972085041078849916750972619565568303096485503634079706120985776432670986966837864620236183086289199472030318556468046373459071006439300579495596927188122565688024969750455592108230436904629350023124295115384118218758684777291698880629207893236934863822255215741375864356775089311346780927590955316428172689229778136416244792549476831712522442145190036024719595332569266468104557288546058056685041121491000885178444183814799708689736683533928789209346761965250250392768122746095748716655103063009118890400719552455917911849960306926835682326772013188434126595154825462740840575592404100438498960109805879348562213960160566612106541047077410122340134348989040949197508942435967177224009759807609156143366610267395696388212107717748958089337977831800595608740545569263666536961258307323052329065501792926086371584905622416407410233923785178241025695109051827819418090125723406132103057637606922770207491738801853502399603795496103416414107942215238777418584242436586022641879037101722838234223082601675561069210643879203255432002995768693564918713651193868532802005229461741544936528690411751625264290552936550876050133010647317205962894097896933219129373985665992607906281736633152510793538731330595449682347093574126743788151713313660615165079277770653796991729788561204224535337587458795846715689889423355446085740657523577577175269982403885546168758384238779709552055360217398746168677612575860849007685388908060982758749290296463170898423485478963879870252084300661482135795587815502113374713910068158775801186492195316936539088196751846352992191847384130268898551438577251932012965903521609296626688347907261740623778609519482228889309697362519013317574174961850424290875712477250556520204567292961100609668304129169564004818793402414286181822941142017517862280731927055958751468204372333044807369181384047430469536633494405169721978056200870994691168625777068019739729958861348463204813919236010330925900433712708058930502868124037287065848386920851937174191545955582464850548791633672491737867234502133839722888841868094810253130768924057422245922213192625868472039311171958140254461544905897509321925747205619531915866433042194603760187260161045697606703597063145098515248710411386986516222369138924848470757201882889293532532540608123830388922763477673830835816439514089282061373801225844060000939789613148283437601219218766676467773438326757545990996207184087004164876371849339400621740407622903974966680584572314670484664862076642489170424354996874539988312142801023796595895875713383146486177553137074544812377164880120017379117883089877077756919549173014122592089164851999884842928844327369379711312129727053485776947993670869257480381627000803271419394955190775266297110005912857921174579043818070678980000907519728583768122420911527004086125370486379792990483411581646319350961375411615671807643680846884700465081558436383455541127305645437279578260734344671590421850055037697918979733417436454917087306621195805096249413926870557141072715395116968787776718655613597271966106153241368548735020197688061647339859579809117817505254867580608684223365717441483226101604156965264855686307199027692975908534134287601039224875823904211541761640837354456485999786825267661332017709934412106894838913770412446896909441680593990624909749327907974442511004278930621617567137962646688705128215288914619713932071901608193204446930948227876528082546508381495940098642475580489662149843294456713633754388861384153860178033290037555047659077308288817685430955937000123015074957962497242882214370752220991900325403317624627250719664203947866165383639117729371640776161093697301329849586997642018006971663552812018284595122632560242440493214136883646782603348867329929418647433752226105789191992398297272297784304350224470718853141180926201490244017536601570384239143719747291556937997412416354556582372634060201720532657401741938635958430328680450537049836968016960788728026800054611136746672728776098011442428770711931355374774959292531011638627293369520677171896012910120405087162475451102881233275375748498976884982082121769116734860345911250288963407843344707632739813877483524798685734124790065337889546480741252307343713059670360528345284704363780125368403347927410269504166525686686149974934605311369747111876991560261534603716753016651619602373154641066141946867060278855899896772536725950025471703880936311341006941540632666779952211695104613432575291199310171440484153761398409328961293006462300532221165553917763906958006737014371287996888623221158365185558172275994763334763129651936858753933066710629347577626304254587320050254389955086036545295944641453741234663113443569022818360921460275435874302957849811635369573308211047356612506991845234059614184892911548410087772757890866748387712819977028497434125911757070074574492318369073856161701705663294731775255719001563346164567609678857869815987910338242480772226617303303558576981015534595128009320915321279363054050521771599642510562182485711494196279045892852605950236658537763475024153878506904924349983472161001962811703970225508024961672420423626983755756083017251564833362410853005955988595088083281573602236915589261553570797385922100024459126989105733192245476030680545593464876982981855885523028488698624713522562663444295790146930333979263870348857105781243099733537799877523056128916876641890501310980261390070081163034637616310718907569339567051433873461036254652671952438241892251003376826405917634685541773997383740696361431927179186984761127844151805714128128867762208887965195772824350619145486087380710963331641897840874664548310163547789044673847469614551344760295875114055786017038508047382674391570159504895511153464767965427607123532436831323271114186702560901590990113673902707049271303080561226297458143251121548267635472438097760285399051528601629029500671471987301304918156155638927975955229857445118077336935763013686017349071838408325610307258586455385678357041118515458137130816920057138722212391154443138774634458917757318244215175071019066317066100600235586574386244490160689859541938873441685373787265989328652116418607719887030457772260435964805692735624020052559053421444164796248470965904004205036442429402586052522304525725526387103359783127541355856561327551463409819414985458831246640142508869365992332348484940004142435135108252034201283651357607683631148342857804260180156090456223532910934563019222855301928647538746173019996870707399067802009447916746268344712314075631633151804506848763205581520126482029369221309342901974578840552738885145760164770172667264220512544873652251831019436927514346720609536405986017266209570855737089896208537547734344437571798551858254194904857346115719494279358541882445532263505121979171081463906881752739959951544743927022245166509687282707726529716838767279027406050737580782028937110808665768950462677609134263672095268510727858620883064174415391735689447299144887999199514078357490042645140832321805262049559810088857780392728487567049959887871905279275594687701379977037300172332964925584798658153820377850750372451592335963280242781790491778616738388385134502449448531287836965696517774905908755033486165313274368593871068879840757368245482484087075847683242933158409844924883582901040145312094413841977090328935397182156802255721026831826974272545829632149840592896437194614032964052273200189216365238554423627613591970486851170474092428727325369367262718347366797135736097583568664213543570722506444011751356614725466906900842426167869920612399541294965047650835376539980120330813737059324966653426375302715247095773485313139478911826105496769487699919167343738034614505495452219764389684033276524663508044655144726542722781873840621516086483450832658550326169512665227657264383013734378745054362890794561613087502750356272406263783861068708540017283179898337609380754630110933150145806969838641004432207186121132313381544144334872678772246226068803392814486764760384396969463395155590681110520258441654779650265618891907200604728105203679414179196249437382884972636485160703136981156833032469418354522404677074735902220769670995591200940768288894545263731329640935199133877373041884268389280595937188485983410829220575938537885255030852696841197472559736166879121077629638478788963541336350871903641859942531992133946031315445664463514049858255646136418157285573351475791029055416742006020075306784275911986933576139054162388416948198264847512197304614518561105162935615947208833323149811942531856364056904707861496210437314479509973138422433711275199698160557519636592093630776361215300503705481337400214191567980185023049965320767056806956213660108678482083461897528901436597267223360340184743770999343375025791509352399849297921534535806352895210080755148617784528428604381964472339678879717371450579120580218783225222193732907458948755072180953520690712666739475142287446690213419742144304816460108863473250396135914077707425703044399638123238616475545488687876176376388839896147379427089171512247665720576599116542149135704462751427417667231861190548397660248716664635566371368826237969157236868158700011455464186089935745254538221863423179061080622101779713212615119982199747504334670561745372619711218040381299546346487226868687001809144740127503044320717871102949457638266501956454457345164354985202877788772805762044077203040345675147359705200732708996067379901652978970781000964053806025677884509212985127925217573855728133068615578390909630907959316860388683454010215552636339600756700116798919818373227494931437130366359131709361966874705733177856078665949730964461913000766347076315041234869318135059993441407241849253473797882924935456837307397407719917260250906036659347817255091783156669998238982742990703010469439967033624861649015159847579613839946882706104682536562110636174724107264779174415109739894940453525986372935661387170140556849884674843081525553936551468289610441963220820090849518507677930980754268078884161933615326990285047025167908336630830214851872726694470665382598501515278179860899210576206587129463941591546584698174486820941411242043619373138721667728789766891661118714015300908571125672747862852722419617096172228354880084502850787503607063960663157786160432675103452964433548763795832103232362713040001370497707630230484517013890323164684866889274570621658857354340515317464066691094913284322185636037088615889142169961327883476563165813422973936716936082972043122389530744017319710531630380618272157009889843136285099837898836481561896634849837039964312564460211858451768285451280967600762099008728903011855928951337532834375739749520288323705407182545554695149619392485477694928093416576487984723643924298908779871204583982648470374902047925332099758359983353589731890027630485535585514552648104770228425358806620091789239818715363463449647718967157405599164754950293000583641760152771363794027188695823065256284227009398415076295864009350583165337940578694025035977476884079924119758276805151373307098288080968459572051905798898632866458404859037948222102585616661205261061270785613520596662351791761429899259288855151247015967269004003433590209810817385547175244438092240857196337434705677129327460413460383284336851721371314476814211897681045999667315057327385473867586380666149866065900770018689061504635897536365730374897208126081724111717264275235086029611344162269198477417758130726467153244916316609210689245268065033699893909440000451752509636110669710350259981701647635356576176256071591589261593133358743331961126216626439687629808581629776699086455556302740307473239013570783268375676785737099693840320891739560412254974028574693564451932380037397825666601480861552982174070080671826206447335426210103199730593250175145031052782711330020824412605922913286632897869784533963546234283173197268112894981903266281158311012820071672265022736056919916187341380729985545373083106884799213237359398330112828916701906265188024561374171495450951365250280044954303404824713855725559824746550289886848687731622453143474304139047021423957278182629643584208658443503988855763869482598307818190271868763320828434085342613735645601073793672851688631764112395996136819606912663496050180916910105487019815120303062158604524753248218587807296589127822177874185864427202977518688541280474947190058331552626593981539928975689156610099332695942919000003145114334840797313503428141302679502277027351472600662712217044801643889515571196028178372182476081079365411017927388517449412492912774158480000584214239178317803204776695470090020247367409067309562695226117033933125640663773658046946427398632064022689798241932179269224783082088713141112816396266588907617930882657381246929925324960170650823757682587454698698094860641961098655009051515918318111992553225602885256135163569975083613251229920034535237836691247362926044129854997115033877879258215956016901233713923847027353888508030952708934560957899916417024037454412858340228969113006890724780193617387983350331382034024924934138946575782286523303748845694858595058843620717533255152943441274253904450526744875897000963215386515948874960555517722169515477782129231692661426844647216898359863087508580380931997854377678997152741377932573207835097259883514345409719058718196215638725855306572261658739582237362983138903325405597815700470265064445427915845304149797232869366238986603188671517113348529620757137532749136075648066467691355185402199774951208525877121345689591357475633129634481581178774309243811198542353349372220571444199849302047948917303891338896862449050898428655054980468698362180547550000870398890077360430064975242963655953582100584099579042609848687284507519228136039079726984297749265045329425851413997593710733849135959733647047694067312146054242649891019741518081400959082609016692396181082018699689995188044811696897008435480093532728095963659768184532740662065116529234121847033731321880983615001411194059643482134427978220590721538692744501724032460048649705921417975669182205124979957168271914930363482918595639260651321620751096815012189249601399352662017039548120091205131819144311470907046927820254517445189337454507434287241175319197652978654601208399176197565017330447404812773947934992819565470554662338294184604063138888969484357458939649606786493660523392779744730547726046305656050593411296568213837124397304909974679223071341170156678231038059943208472634299101832262553893949054516718125133892927452192288582689149116040793131868407980697866955430590175362733671806107756535621374695526760467161486769327761006929655005440283580736260595556091524763423007676191454202955345771758145192252873376012049780766983846760405339448158128251467729491256820810553359890896953827474352191424312229051929938565442606725249602677461398717230579695781674291998248788818840912469373810640197010981828859700000248560628748877237628194656791322590989392482015478230747477383259129888686567362194312389724535624996754812461178620059264619118984822158264113038148667773261767262500882635300820805069726807910799275658842694945016125625382142785428075993701245455953561832989352848061929159308193425122601487733938584088912466761093478557233591167156433995648154846933023357335408408101923672714124987191918456016615433479193666967651901309724415244066075974385481713902234339719597495721562702173582597323564007696208005905613852184834710248046895494043717568959290725828218003334208845791786415627618811415679699606440936286278736591422117075017193116175870284793655929760679349964603474815719456021601097577295733192349435091775891873160128890142660055322402432765809369549005136255700929787145471102418684087215842694855678725175712436440102040181749409511181719828469331630248721318791856797684685096398572228970633145316662304949110531488889663936782375273546761062675898139090530891590516653400706239014190126902472142613780405297342386417417082234582009729371174931401424178334858881887842050975124358430283397748058729173279613900613322619061413555934204213320605269658029719641869001349314037468165243302541703076915512204738922272519529539198732691269311956565375222623155869440139507295853918408281745173965216354392816877990922132432295773686050081886578350226165319931440934195477967592029529396393952077109250460814020157397936367127381754368573581035480102788770284377219151141490703372758251277260647798494097475813700306516445648778426957721848346602121559105712655013965982899647799700496196302034365576506123291379269065258652267960875754413678446661168239109170718078039563048148990973008595873446039216347447195985505941646272373819857127559672149371003242386926655516937065733213716978604880960575070582903858888684230989465154988380310563889214617925684482996890014520404905472269392644212162157634412166174209778237816954176567329372197013753308125415320331041841221409234169560102008731733037173669640033107745639518537664165378785172490793114262689324322323213292535498687491514874137308729807372946145211931037193416010131290437907523911677887955917665752428028439150982805324566828703244968658849031601544280158373839369509808675317851579953077315476948953838971347212426420463770707182104445642033102471624551910300751200509541256587514430664384792387112971572883123818325031297667791916474684294496159596767941778760197412241292344011453516319122423171125840321112028378902363892806621800741782182964133571299763441814130209177190955649234394743287874821820439588231951921853411350388165813126193603989648563548832018823692275611601470261422376877632202013776439462359033960499935364394041297515529189417662832289492559128038844040351403174328450835757869802231604101321965370972710975569248045873216473640633482582770299281067556878270069055901819499433031318728441035471274106874628121502067024458269770221065155410004384681371189479347054213894281724195925431039674386488709991084387552869940561512894579915959596779344180676619838171303228050301200029761352550633192570040910288351158499401592333705436367841285982381211995642909042128901517144350248002040220882775389827691757439732936222057777159182164187295495649192943889253592117117083533503989520536494394290134667687892717708964553425177707721642221839394499232684959644159322462321876024548332626510693251165427588877571387009026631185441320759021846539841492268533191066527457618746191879063610397272866569463403119172934716400630935892307756589152053896643438584943560435732420753434024177013565486662862757960473537545841643457032498025849779086237981658774284572921378445911666009272649150962759750243578689415068417843687981904790691960887018834618479537030972122071695093147179173478236243614233899912399314963857130313776329468775833296751730805715572290172788000825027458429959971030507101315303998424923551877998504005919429551207726070949901040123990151645817997250305439252920887358678215707084031562601758083352284442735418056207807513922668928321662438822759141664367350629980931215683235972674861104760896542990237993091641214006518014897175326230299052853119536445879680765152031840797661173650170087185486672466517969312900348157639750519499895650412333008497585705473217247019356746078870712844529792482445220529738620564670941720225075710991386960819801344051160389352172643220577901604160767333155126502782796593818628092760610006484041733489321311859575716940209541928716355353950086882645503032054962980858653465622996475073865727622375624573167682428538751297640502798329070179462352915114473183277257549462029390240033701496760583492083556165097873370116498789440363059619797280830920554955361328773153262146833451626776629951265659275027261459374198902276968675475078993271868046310383473340779718082317423319638202286148670028207211125496296115598554820147158392286403797972515491252289935396522732848537914825105458243764774484163814442730661843361419958211729736154195020828925623134799012109379647685225263449535854611863539374660358587646300652631795588461955268411923611078481714410472442743077849969941035501527632605847574968198205612053500633901650758037168180433281144985244507921402711404498694589529064622598711319155175880160169174464416144790378735991904838399469267996189059957929900023841534440357560863985821740036810176636071202353432060932178848186769495135765430033469326345151526056793274667266926218204925308223067458471631918044924154225215467474846255102913745364614131986698728515675790577949390903073619787436127924523084634713183237334792056722618524220679117278761238431827467246069073361967520147237658028780088254893627181877445147994029124827401723628752507286322776242147141217894050434733452831126824229439539164607297439533880521415838449665801790661917824955745422907631364196334713519091656378099734407155379076111633120891928063116896322292402717208701371559749867389094353260203416600036586729309237260218608503484431144315451653907487955365863386152744074323409293011612874363601130114978402218208548303163725997120074292252370131772374883271917318022597410425724374017895855462079164316587400638686119692934930169356332171863628544620019793190284262679357247326497657280931672714449277663133104554131862681538528076407870038997727835479164918792685996912892488733836486575607781281797639835381428098315597432697306509930634383445254506483190512208472313160293157404211995926849885632384897084705074905785908155040488813816212158373453700608524610422880860266020924138372943379023288497195986885629648256094528356146751989770064162166542816203398196329470899699005878344392622646890837801296791315757069363636714357240597241652381763690533014908378843432619329139324256238177013605593037490051801785993393742360002580152573365488995898672426908684901711010313712831778116479754244306384824914138499905066748835698333679638828533154136876807489339494840966683408964088841963780285180196513514927075108108403474447940572710558966893501322009486264208916046263453715263814624421109213220965054928375525670997563746039611480999584716477444126014940179579791406581070602706049500380823724285503978329837375638054070934859024799731376159855598997729116327439091692368458894310480211430239238143885418848823005825808554019507190336574973518449815068136123474218370296854564090775298069431478604796112328759509898127426450045438868964067315191786406002290907724844613289439960688242746765193375109280446698422272439150497459991571564907684533407688164350984066650957558935613603911110877073495616072469261007494714409890746981175853116952788401835971565017103262572997416447041801030703771031475514065540883584187333859553121535303533553983186739771117696117470486906563368702706953178166250366017356548833822139476876029608331058502304244622666729535183916451401381332089485675786946065571953343866269343264359312904360248725547519960762632339336481474879318127525585727941231938360277363753093887811303656399120155928685756713541613667826362920506980308283021219350755985696669585852773264177777348653385602929897336854868766497089990883305478354574949991106191164125653465565764366291437958939418656026621614644427736020779441808887500154091141666854288483461515196854492110464561695864601061618385936549212526757169216984843060478364221550078755211918354062237791951172157684223298537731634135609403694559379717457891958091040797778293790179530025762984432702374072501924409350614347046208519566391504035979140695252005894449623531331036309505593119888202468934062747921766188015345047174202301373940142050143082756598272560724017863270631799283976593580028155510772700104274094313260863690910927683944341266473190616157159116588489398511673436910978733000206087180598129941684472977663061430686013695777392613261400858836703667523621196920688021497344770429378589502666534412530743927322920240918853527319803999883002450735674779178504329512951720627643048460922778701127071696818349232793665304292750010185502879967188932938409229783543378594948988162955025134642386953308042094454211754820065805203935907387978264658308213975335956945845042023145634883241368516405868588081702707382690850439734068007280333909405567295796220686558472564268528489818773486272372601982875716871176271910475204089405900590143932563665117759227402359770680874168502257639343072252602882548586488036768622585718073616814343573538350435906948154223517244573509256634478279793587565161177273360484604453680456094605826962356655132257320935441449959239393772513761487529016440939615650081265089453148076849145981042028067320420889200197984322734606324219704478011248598808830440691535554686767914663505660973698169823894842230948921976199867506292498114213574943238549455891835314475919017212628043017508772621329766038522550378280064710058327692507136269896484441419314728862594235400999320029293454769083600608347365336205936028558399706230978299753387065666579104037767496093334752498902777336072308401548339052581686078128284310759834432964516954346104195739604948520848034194973020619296807092472823204506627445442103527801821113782349749149194966170893321481090153809618057584160437299781022455540829597434956476842754288308195792518084536415263739638926963718702578949439194733370616226791586345966922221552297429361963036968117927784892667590670530141342871666994114658563745212780362843317407189305778470394911281029133012089364668613575901946922977539895454097282361727420296368755858144036348967277411331724293937836989824478968594238310395605336011347232990199816919349349048870570132732984282935737408193426644397979196453936236427444156103452929653482820647838242402809353794784663076958155058784219072559058360275197893598137793761410137655605224694726362924425334893096839966811459986721302968360932762197262500778193650940071907830308211075277238260699103506666949264044308699481979220793004937947241137545941319733127742921516657896936592112124291459141142053670618749792491354565227916512576421491743819375070828576654871344683747315437967215600224198301388589466867190863938338737028858585976229607546692342764694962617464164468982524729105086176421965080054057919380486685406436835078458718330276692287319882753491337126561470475261741128366880495640957529146950026107761572715136066979725241814938556692896360636388753264707957454389558550833294197665989293422791061436515498657559205938007051872604716110223026480014057088330096225008637163365825837558862052152970058565067515487001933641779839908965576543668939145442030389514616919608232115370409142468476766529662458145831315285982931258806939035618441433483190392348588061792524595749717152185390179612676920520235647731349460675302876415636683748805133299009498783662160265023288161880984132602447410089956182510860084803853277687640006126316505883496953167314227226379296625901690592442038380251643339869924065195188403147917851496038890832829584926612901919714309522854585906137796180439875331423796960399712139819198634470134317273469176878185354317002636073499757845041486172973854880593674622864035411520685698047154406250074644772622984829618075232100629923339860701628678517570160762228529726843495131353260898930991168804511559554707708244466328491256065903481411513961988672953262348038507706025390321868498572941080259517743887173111020774918566097114415030380449330285599218806677316038908086450323345469973129405031490191924104395572559488561370221487490329894159014964807794564263227706299667231620947537275334625837120595693958634215634749600740271633016702552104381528745901826628629576692500599306195094944869197960642535583761232504409693337699456926678682719515597232354977619163620167152760263776160508688716365438080584520792960588977922947538853971152110192351662268836459918517619741695435877758472755113368288978977165943990744653041378810272085519408122343820316298459298593067083424339932404999602109313611019663578330975592779182393602752901228159050744122859514798494493321678199769605025582902742352616048157651633917584754147638686433749181728716016495547927548344370847446665439052436465506478593737240020548901987067332360994568257603317969134110370463345938003264531255709794266766738909814076926785680648565667610610516894607819885541289448176906656209637905785315348982537619942963323602892204650715573817027059957107154613819890722448250390380302641634189077330286418426451600384279128272384337375231635609909449742908082805777409052898168784934409376976466952320716002173705398961580219162330997544403685984274931615151895868652935350020124622778771274076618502246866420094741637253569374096366893472904340353136747722941731044055764247829887222444826480173633331216218490475227458879358559463827587871024158875532475743312348120083150256843447088357908566093069931873933732606368518410774770347487236366408062536356312710057164159313795486199970849416837394488703659000377648552491676766419725802136615384808304622332954310316149772646945537934023218965828617255684298867621525055328080499281352491504002620337186654430276315422383025669683733429079895885494664094064758346950549839875856056280850270759038381784399291495046789349590106685644650909865923300607846242349200451401682753485844233715335505681235794867696204955094180171375993150544019332775349259565178929107146518334398760368349231453645819375758186249865188199068629677355664754851438486791295197656461206225750502565333011650772829946745967449064457595464646325053218201779535312241535490867565121078116270733348003418946522980034242481471154528437671194493597297208307172872592766089983642788582914187708311702584787714520163579128512801733534143529105363455366193005564171231870533398082788324752344503500423805260186408655862417146720947104832088226498291375985086228500586807798790376396196822697529726103379163170965951542154693842024416451092397861480724803625760214647557639552155970755161273885922457079576913921082697169893651561520581649569957038509109142883266627221452188258114327440824887285446588647730999024158289881433346744527505419304102407928253843743420105584786647420917409714475902594646551625570165540764438090311246652708190284941336114126363563934594934170901294199406971568082251201757381308620082632380145496080095882774307241451983810823766884132928595274772683946612080552968727441039219168255469314707181404872643098830078000767347332527554590564603771303392269191704991500826189004623106301937717813196345670235456945201748291044296104867729173330011363752501225553957295920533551591367184519540480644166324012073475646723170024979277124174248157650804011522415341804745634636370026227215778742185652237112230203834693071380904396948104709234056247195477922920443004559789967362260662087522127910748868831896360385902382404231635645202285476462479689442642822469324689495802766225841476862762094501925047727623954397904768008678219014874483318201912074977084381218220153755891965069608230011614564940248833836345911706124513700105167055252946159488312707820408613444473070307610440059971065240975561640734050008326229719597212012811568817988355104623082760215332025876962706737074298604408364003210142150561751600775256400927699268890906793876300565767468446453809819409752219321662074911353947992537072871017437040439250277255440327473615043961593395599401785562385066006473346648970074825558492012134737673528901918594603069014447285413535117958485957638175139884211780296003372354843012726512312169189921823716734525889610524107809240294359007063269091185048313875945648525382460665005188749537362861401159348560074908019619475670375095653806589115341510499374949635066888183392005092277953721287782221656743696564786473215478201717110193233820727377903141329789266532664371233166574074294741500769964860496353425651361978470473687580534291368762363757449960977460069411507364085858187819870892529544610218805277759640545797201152556329329122993129728645549599086873990216798213588543378898434012023080022879986022668603958526721457282035357586667689900968592976589461829256145049712967950830230428667414487737843844396021533258302949102876812588337936528430428048424578220572966306122115478288320967461751651119203124415315092421216920078668426312781965581001042709142288240855246766034221577969769943514902597202141049929451306246579549577880233277115259407072644683222142141028693275565696697653214270369658139975946301419181428800210644141378924162503442258450618840228119211475708142221119259022247776422277396406211811461424265512472645037242154941068635577443895032860756141683567523853728508921354367754779323426861139910855821358233186806987730134937811435721327350285056644834107529347925591244199392970616192804720175298081969654912390657416569240506009528060078692735025621049424597832188661272812552407635654282125688411695160654614869301139313350331478401351044094736372640223610767183399578859166969791012759806746649282155280190383976327893077278767144176318412678647526899806643752474787722208749755135287492293307042173756960598188116676919140813338307935430864398041174587304387457465011938472064425531235438134309006301221096954871170004729786616462587013309019633806040181353396488128681864676529946781354262486960303279094424203408467804326741264410580321630986240709563498248572826594916338831986073900040712853434594230350629461798591925235896065593333977134501073055234029735301962681815852434614835586203297908962198981134340905995860174572821589594727301460752680621910837644311797956200523972774158973192099177299238495726995619436826527051643308238410128010729296036504608235630500379772485267239186188628385057647747505411142063508307878856594428984453288737836106524217726239414354018274145748218135192432257229306031409544904632964403065104792187976395949277393539454802542821458747179592115372718515226824391603302785573717297458904141723507950707728647579589586027430851607302255703691436559883523815131190695776506824471645859467020280043514515106389516238498050334915311187703262738475665777039184266551167962406996339890752316021857863567305395553720529084933504214168444434336513235445397799278653344522914769801526608284566454353157234601434882077390503035921248020692611789211411487602504238321673663594037881206144367213376839541194832973424607566492991493743761468405648822588572173952088868862467851091393023853889001635191537480763327272480515734497461597940787284541530744862710586936279177507708162613848016904833955344101645246269274557962159356188167772896676698188256177511018950581240960547292900312388620654262452892661509146683114566506999437019320354601916662223907581300760744466898914930417739657960112233720397035912890920000117567978136082396243299419833489803530321921581014165038575032329243368735624048497810636663180848811990386945543520120559142093525039287260564088134981795292600952717761480736196194007571903786379865008286075619586565548753760822155229260620552530691196794625319737202742722172063972123184719142722676709860451809919442839144685212573039468423780088531377305991239426819264424739154552503057833086969005941592787000751078966050801077516458455235098078076218279807007329941850529801813001414318690449163682242854983464910394857524948023367312592306683354442728259571138909058590871379687544538639725743967665552472160350184279613277504766358898812706577188978610241162366120874805197901187725823157296048561215097213929747451446322496967436865252411429599272068478899351556257513907485983203003735232828649172971539797312389054032325723534096259244417212250551216753767498519308295669972587868483095924386407203369623264237383458092284547786998382713345390168471640870749430842576572184432377879809746581847184306938695541060723775469445796634610313491657188946358184522002285296295920033766440092436889253878338614825733699405735628854391671507360134353232432383739503068752466008935377382096925554360934051983187330271946473635380091829232776908948868901200763384003646863160934297417734516128508692404351214043138302020155268364443301302831315360289477323168173452476394925514517164551630829665387595774989508536777955483673021265873208249017933857688350055993059690185374871793892001354727632639369024295440689349549862490688506864629462547117308048118534501693130127923597491304723008028537829395947722604267304604832819933086981569750342553815514211703736388337631191460169991027457189510461457056737481406406110348698610088808406464567755024494702621405466626296451971066802747420646587199019761881677512673620413628668265590601329890975502676617865279782096666213239036965627862316734901483558371929555214092426618816585038259387941123319737646868800780308487564737025488803278225479140460875460419300094897965673585479783642428953198813219304473461448668615288878141403621581448599149986976676617525013374514341224617962081035752396427483350735161046595660578051365646067083905814224210552688512577537575055273333147963082084612178960829645310281875357580384201208876793394416651340672456356363993353386974352645662459654731390995327819640637901601798565882137175395931593419434365408695038104859731380339477518626094391386396778087817901365303980347274854548176110461214345739710880313304161397495521612341855892651301514101707445546601137161727250412673633804867906317129697407891910049586100960368097569651468334806493372050324287153837461038772007453003357442707492317641691614535296530773175438399203281753540993414036284460050354063970014785624730555535038677831058550156173048277008866694027209987330912698106580884003536926646826881270799090754117460945897727061350660827805810427467376764376229435526334519013023628083814358374275904745962661844344149145549975478327200893483078035161271617608649222210382611305445902028908542699032592518492884382672628187216461588512572060368390043356664959197111547291738390157754733570196155922625581375141394924608043918711400762317561090000850046556364561348580911683825634611535707242446430744705757371828138812215234544654639589299217586480991632298684640236971927157986183030867207936911968351218575091867565591302801153716205672937365127205434783141638312594646766426397284796398787651881859514309240108942468770474137395027506478888820656555608067337039944395591635380549224551652286866472065479019620951950451321833390366261225939595899026681275663866245656895844791682558003246292123816641695238372993286149127568805560815278799543978223267009140937480576567695443584013798793112446476420472235377807549370848423571680880975190617393151962712005929110585861612580484505920042944535764001486757084843277670060930985164959291327020566596629190968219862457064541053785791818542932931985606346538834275550187746488908525336624295300156339354756945222033344650684834884231194460789734674259035274187644197368326403491755710182033054024667276124802511759210860970889888855663322865621161680079751440102598191495817301013694514717855574889416078881439070902151821678058397551632155486441487071670474123979962674188043551944082102370633404092120487470354420692969529648789289200270475293972180257226785996679175950005293205124410295579042316104708850516937554771770021972873139177619122900674123434575831712382501138909590958558250805548489295746887606007749569039997387696522911087242944410603811689178107706420012598006629005465690158231435093784026402373576041821985086297354009049215562773161655461362833475242360676028959079755339120271666484834988270513965506121934909596481268284891732159573728024196246848947743406352833512101125024227772303201317788555279108517261189042086962518509579400942751835766397175718496833083634609902498729433882369288821304606767084288599169566068549166623733403269799344551128194432850158431495909381104507821519800345031454995364467758270904238485311327841653206001378794144942422490998868770161772998839752922695926865008330760694809930489993604427337941609508244372076815275380044702988496517500272915272257004199970610034084179376434971492345317836574492443893616919815756927819987265748604292985291656398940797245698803239411555261340046997122220038047752040974651295692710900259926609183619397520591678795564100926495875059275209767265169857921151741704941685269268042155274132639781908359452763585008432890913918561166438116578405536718470237018996038770971305713782176160735972535496675094815166065167342903413740171870183234280737223248878011507501533507507723461003775548655652208145150557166408085650396637786543722972117139786686017848485501070600302187613574169433440500034490161444891825428194856636416364505947235045363802938745396378867108193765156196668166857244306297302249775086359737442483341323755318858981384434440508339815687787515003480029070604721489755458342942213868577004924391307851645776301570447864575951664825845085286430181173018367451022520185434962934666436139760749878726157097337313960851629885099346633018016345931515434288277313117558085387173031563862812743699299075102927271571279722693041084887450168878250078629667795975077842989703570998566959162876698471237965332284335559601557708115940082591004271968022253511775451948189422402203590528744259951342679077671752108515232926917365596696925187799791345131033259032711322749373434473077798828272878722608951079252358455288694291755312773073610373588927814404014187531632841046479747479808334303223606049489684795081346961183036215587078604210978167890676925302089326158089378902921989893594540674365582648164434324105839913829945711654760855961534369600419668647323120307263895851830279195935852778629431505776909044603928511558739107022750804370354277204724444827294953232187457850193516002418925225475745843507231587768774866998457297073343268527411470401973792372653311378242812389860250061251851568832332601821644470308653434149627708511827673447635648864101209281898668523121375105425034150278106674564004866781890827781682568941939332699326564594530928818784219286590766637386007921904750222229864077748744403762197409591954181582312868411221960537762292822138782218187725477156009318417592866170274436075064154250778299849719764484316355857941251058158084079571354667108559606278831272116266664724062452093502737881522094046332165072135115729668293158353864793110988189546617261420052445841982819226987250131146312708873654939130666023612050265764301840583768589773607606703217936483174477358535324594761071262490144315902998392725033616719719393793355473949177041354008514993140927912543911787019224122220603790567115805908672793261262851745515877199377296680501967221663614902280962840969972357946875826226511618224915873661912398018764856886997795754827519823980586130837677881595444756103764488334819352358078401709634110818529944389176830710103038439454410631329368725831911783175415349223980586539391920319070128400144041859533761307790298348249392416881773415573151900457620070984830942379272360934392746144080199200331577811670262641084586919633320488194183480557585808238126791048297278932656863330261566068654802391892144350202659806544619206921544903030397805151945080254593402350456535604992033241343727807067213195983743649526891501455904805808187268328746765610572160598873280223458565870280978666149153430517286618776764603130190786853793399772425332098098475592392559680246960922743614766704025488153952721867953683535175154299946293696427241461874646681825557303667472679600965776837538540258363640777949694272705053211029785953892955525137712604551986255743978830732849601641309842828928027044075920751461908248655543209684355391814888791523821218157960889061712931105361827294377080575086868379622004509592519357936229933180393436674775136951882945899247497653018163136180527437931957368879413766902678589732308124489680651976710310224005334784181467630795270362675030357153274690306051140192543057234149298857062540374707868650219207427491616200072153274613331265415325486195544549782889987119563240335121294095316935981074368337927094544240752843938630093755502337646520882227869238045754148055104465051495805991100846224777460934609667935435180603836240387377863426956338680906109169112904732263597629078699027178633580020994664929799361053306452603486168323841174802128510922281480377094831405032688593149439144142548501327312884935693344317088286977440505759009726526832839096035561295262032767795184224351017102709148454592356175132139474882629522444384705308023573863722441863349798205102916681066813753463300681317439384433827818355958880831692927574920712892460084467422218737338418549491825924056339904818893341049904820765011446224476160517706639011830637179585265759840117486224788145540734965542194929754740007173550304382906482858628878843177872631325995125390413143466375268546225182445721772733413098778730688678105613512169125077854003355637897125535548241768943033796674397175085617488566952548938894480226196662560094829186267009117851442096668434555535339674902364548601130126900685732119408983643593244223835378352428715841695838970647970824519113597801780262473184837323076817867253261054435663623537454477092297767121686578230551095934145099303102132805608866046185470520021363952670681694610360987212215759178016769744774980804829327594937731901157402656294324273311651118711827151673961968365952766004840730858147125425558894877528977394456195682663775080981070538725515459546391132554188533959819588433867237715662730329540764668788803622917142622602915757228282712877764424830456689286706746872234441679560239013271664007311403841604467045891042132533469093024787168843067500289626067645425003270876785497250918098492089009827911266282197725341164938731497390580421442745300613748689185627638790350624130971591114450161726287993665592610445281296431011931510899284205012895174926016217601991125530377849088967999550428490555211334189543038703070138011736791390846602814701630439939306020692739759404254263714858248929821468774605373355012825855613515795538102320915071248405375392000862502141668769146887478417039742818344624750311706749269574010735784977094680287381816091208993852058468629375701976147876806757479926055183758838946029441375603580836620047123576712538391052305132068926955076009510955072022941060435333685423436949656077239556518113287389958332464012117621624436618364336741283220363540974591825824342267836837197580803239047456152008760458810939890111879022418555833776051568782610368045817606088781395643558094986408103486711236684264582541110405457431399486490654783803915350298775041781125807653768708984875949879457165779158153743901990330323358735928955283116378080395546979494938554109104496046089314882169586617588836407757699311529619778085245263168724665421547175933068726263937723017853790302383229970949101347888709703308970181847916130145793254616942990150138028332373580604006131641762149214870353634302300164577414462625219915184939245639307370528179314453569371755899459240608998421294799515554085923579431721644874535798132120888119001864043554582425807154842252752690770763481175367407313696260516461364757803108007801221366221576247482980186202129154033452844167532665211680924783072716695707972136514629225372389049153901489020701618395882651358673484823815839436555790414217775436992015240044810880765318432702480449150121842836424446231887518587607559392774469566881516165545035778231712695477744616644257567807987572969204532518729490658706009565014217020661957800607438354882670596698743233685375286014270801492265115408134932442345161662218931550038294799985828110061184521918192119807458096196477716613720012177232538203160195183459352364519716092505430660505129372341533384187489494120674806318970658459218503581416220725166226561866568274689287375804845407707599032178560019079147329184070865578334699304943242216854964096343258119683675136577006066162193737455426368803002076143395305367056405725608778718025087727010971383514848291459912436606118956761212172898378616490457640747859539305681857561404111846318163537976918643882611771895081818441676688116531264466090993460807333994579388705165989927679282381708083872905914287272519587594716748401025165739212852328341077528866567491971284890190858850411381528807978786010497269275517571551711178103498874010771042093931176501299213755867929549076496508587116724779456664266737526429156919104603943633167941013522320560245972433917016031249815623753163244283853127284286595171497997087910291048386603164647844062293431897465415717838208451536141786070155902944930968269019971718967275799594704794512852305439822591030742443693063250566513056020479255117102806087196706317197742013683462675310773009763226780687203552329517831100698718970360146656955421385981653489591488770841667798881793844614949730839842562405419112583916684755252867223576160071630175972685973343800438155058044384716285890582144466996381345759237175837827912849933500437865511856025518467415185395479080797034768458177350234120263789728125896016232769415918205965098042491456512408498501244803028321736369733465782538594297945514203825125715166944324342311263363029489667430658537213580448850785192322699998798693289542796822971760452098494225436146595056924614164065052045583996759618451081334485121705892589539100815943985277759527717461778576780564839491799161823748135431727523298116137366129334706473184926744613349239911823908402291887413460497661642143198484725731004637846862242138390343049299584788942159522129327519713812028553496571194507816400398209481572426144287911327172141653017490803102490235553496082802589213360052012101887639017579782585376840565489712690413706199530320636306825844001928532241653468109326915761264115709738968376491707819720374037311967238932600962253000435198197804141284828510174325000777477528881221332346219960183268618988247269651845719669242968751904258876327226612926764865923546214897674267199047824901110199548294144662443749856015151594574804280264704939059987104857155761727820526211643603771078179496919308481770417725252388915117473821298345773300678041777532015657070319385773874734534845373798179703776635093173483423884634701962382605790080325423404749751932618028822626744082661044843839470492935771850793459614088719731181155391283424312029948051445973455798460086307206215338951063593920497633294945628598124662920983850306302445383324509646586045954745937315192633880613745371310075055230784082083049050478267411142658656143659716255100865664669608214562520469172201183293129097749257460819020722166959207743848551731150940801756675179961845103757933478616285687909127467324423402872003305018597048496893466730687250717781217267321180174794045465654835662253480993670886535860593777127393862074842187605075713504180755705982123148694954491562186532585666784312259521942556625526426504536383369979314224551415013246917794124651795971832861936778906620166106878958526895645781398538672970168115854632334793005271473557959113039878609269165190288783088294454687890076470847929072450457005930448677957695979387260354311306434408648429915164497410565989648009830046494027216624114015581067394766662753372180372743135948049581441579158794038890875752936203476801764238333686780501197604102029023406706554983941268801575775007990214078470065930599700235276387418536409647018331463379482154867033231719191454433914298725571840215833510040933195985419250438142973227284702940927452228849156625501906475098607888999760842864015498211048589140935956759621169973714787502945092357425920383096740804593991939906895273074639660789898201112858963734365049824895094621694073065890381362666386421078003167698744265484739802998639319443799804571546985825903036169220102922802811347061129724120273907945315637409727579698221657319198734494144883898142233114104447236169918182554177961464699039666058664337274839955457356797451705229580060444642513370053567400776074939716983712755529751307464215841901964677235449322494597299661190134641555191411629811182831025868780363414644074632423301048620096234240925111387963080086056579320654246352609063781207328565025258821227090500925612406945740600214393669967221280363897502189190556965289444477950788097421747001289712867025373932801031369665905864040353373982869078237221536267926457003497403026283597192950944917761715724581451121639355987359491303980589730536368073284731046331601489320985761602543099988686385418936473961685371170487441106750307183625737283715787129135972651495106675965866111181689547834569841712987522785858043072806716011119453048694040218682575003268328994281322612288049703390915433854700821071044034972139959467951270523552087123622646712194895120087064131070809222157720994124823080872771419132213516792875634604634918735217266455523950454107346289012615359209277103660086600591577999054976548079345662522866834009369494048484406569540903874964365504153735811244712176468380509322616381758912304747613824780466356726583116326823254014398579648079725341232382554610201062430240236381245719041445975775057778303070611826518664494424863054784329562361467258850306714283245711055896637318962597159410600226255189886088756588688363105612102612590236306126804502449174200003310074648441691656082786589467411516256131860750835154505438580523085349462277829969355904753947241515930595198839986539632214925191153058543518561654876084919725839802864804779549118849164543184062610743885748718810770310288148391837467532718617144549546618731105703049918529555486870789741940315581306967702467524510514224127582813821639641775108410637923196713957149271105964785247011840011184078364220826693263337802468228259689337903927918658266239406410246543504695960669643983711531624811066318011251864286108144535416346189245224132918194769846653418983154596815342365576858029369699401076872107655764131100369000676626173615573088731001463456495614220524618403615607939107733140815640270947886000610204771749276583758983535294631128264759153602830423113517924761221460849049230432818859614280512514862782264552269421736614888236646292880553852985896521749565591282442375774703900480894640171655849392037076847032439269653082235720058587628430478087917221965491655281643362718085171936220404190741241888021385204315467700901049528703060148994110797656089164085373282342494547885625191895313938293905411535303625347601144862195098593183639069684755828352558569564307733458989334034769041645448034210772800832205498063835155159018699892670736338941424658210692280522736344747735603247209960557433793566533238211561262431937027141340183510692886954978710519034897659970381035334148329228353149648833956055799069421114321898610146363080252202064335632778462060408703886706387807352882267798596197492650826600858816753122930543718722146892434955955386066818482075877049499328754310580306726815586423474915266910722954655225538170224497097584963221585808512707967384202219394458475691378273326586770983687738490881075132492938016269161347453979780683888698031842881932350770138857183489822603478459990976317289021410312046910552708596792230437237510484619921910312460319092409938004009727508029783809458058804557619021175791490261405611791496709841957833367505776160225000903462684785700685636541945442763915142710251042747070349995096475987429640490552716488034461610455482962374685630429593705707340326000918229397685696759862490564208038007899852356858161824010017705597779349803426887223837865203060239271307650407128243577831735870284552972661936047574957365683895616537848911348107097476513702839491269213747639773445433841627665829218531640789918233007266176893990534469096622786504231355173836216720252116770494204384508834111768065454679629532265689038437238160348950770543564593138587482386137199871279164426210242692079723345442800126842210660984347019473632908954495558778940307435415999416281937572270276051397846956002846954789707598865342967681976806728468636004319053177546725784508994151447555439902490879912448203246756643134255301971052728493969380973399808700140795619713969327283187046800549570660324657107487060080668481168802900498844236687308686531234847372578040810977976054769371746034634190713742990113005146538978155108384934635456036656894342099212056921400791421400755082124226710114515999945655963574045953142845761950578290322952573842553450958719806937718859702405496671028294857946695551296190146690328408751934613540642436032237916413457720160302010392975741604592951150099742574163115416835921385432058043385879261002364050663122394758682563384727388387581640733914598408699554828306557265966942076703073222595563169731202879248497279425936099190998711628728423141742468834444172139227235979135972135891429047130725032664831985768635935017952160370965194161517765895505087998446958303791408841340033664330504592815967060788543659464486818931757927988565520248176430558374361942685683911758813034499631920419405958139810255088846226699214681175817498048644334563115946335662896881063853729817088310216869591922817767524190515292266980198318753301291511072542429252629046861668359239546988651658162612184821262197048037835889886486750854175772884109482257319656645047329646280145574935091656515314055885947943487888455597507768067882657050178704173050653703797737419244156762938480062747853278936765273488369864708241495059377757860051499810272901228921657447780115456976908822826899545252530379713522396871380158731599171808179055916716709170192436548684446620004666912328401052257648286653975185605114979247811458462915250428936073131848838870462982572635397672767643946256178031987708350691636405819958619758204991125671000119537686540720806873524733407356699616029779093939853191814066764108891085628554203601513130411474443063055416401135710457514511892290572000950128203141151354532075492471536906441760244294615428554926776857450523175618067671607002651663097668076121493864674916040486079421777864345289539938369561047446025328711840906733277636390026488977568891889004037924328519260835187907453159674105856363129205232429402128361739739121500268126645911412126526018681896011173718069955465118329586198723336154523330930810114865604738507909254522167281081604026010377786180228576921029494056727721874227011422299569352065112701385901026896586541690218391117938909055443431027208963430145990557493985723086016204427486997999566447710291652595599005877166212373851315661086907709398665761477433011353340509019999089617794063916073702978021248581135961966306878720564869671991240944353958822621641292173300226134545536619513829558260315677847046295564703337285581739630224470613638001474004454550476570490817021456082020325130485257206241854002938357015543520324171413855276609015219066658157453634106541936068843268245572039938688914221269835621577627838785622427715359027447556735750615421502478576809952482539798546662370524831977175070148852607701190710047292805535513968488488436437415382486925076105491425210853016569108231514489883052064259778393440910577531105788174560204174596239035475905239985438623205011321688108748042399731439179550789313189486365363649154892815844442167769162973825771325355005066733203979167449274043481779659894522163039525023300836886764067090431849395661481027423092726686803440771035089666013944760350832039715092757781482917031715820112698730199393114889474927991933191060388723033717039073287947060217628256624244116786378577096830169870874108067570491412372054795214749282119648112451062974960825494051054916630320397206448972892208035345644567807754184873520979208454424660456303924869091204104647047965965626277396516802818707277210306607401770530331508260231158392936006911155383496911991272681990277138995197653671504627585385999050406580261274894044760201887426400024404063987776974739790606925931432159296539103716892872519075343200606890740054668156731935410211365574696258683915832941197270033589224965678176619565472496327242848984131939667119660740137563492748990352366514523341279236026990509440202092333294352277514602631355238554137113153251946869074722673335410649409863905382838465426500502987639508420812548634017228272445626284914177284692518051269419466525006271160021400612919712979624550282713525993332580208746341558343592644594568756859654766485514621768976442302723848069720571801894855834901528917756814120843975268202376543835581938954633911324779181866047267372034763338399095282079317369194551013215995241081670625511508236705904957865542903377950456053549686467636401931017252404661096477394480576933692545514640874799905307674912065882860034310158216701161417201227434520378457121141288044280533477653718301008839330586933505223407723781881940533774449224457631200774289110545256037766898145029502790372472823735217049194918760446089243216188349147476749505588808125140404680956498716792190823640214168001539624293840633608813569939682600372363600148905480996421225272146778418028559376495017015005134597130533354030285741477653788483225838806999432077192823643935219772356433704558361808691915541505291536687939116090483678788900430632751389878320446136713598202897986591476635626620141496951935341787226200533930745577536703753829290459556129711867607803049530325522699710118893258557657301679213519177056471859499398281784865718186848936398028349557336787184516886191720089910220434817216545263039130526594867667500094756333906934236238037650021773131303640083278577948214092628010068918958364533408367960531783681127742312360173621792408736220868662489997941529598799084726525120780407855871644965638262027519933386450944746414943134675501212920542291722748429484571806010345958028074206622277726040268450694977969613708936328644274362580568442309754056400296599574257260469308219460388226214557832678654570870053388291822031078189825345232360724448393927695103821401770842933629882933795967896943920592754457765629366738650018532920475764005785542340305522255986127855124748543080945994465610243191100897236586908664323306605909321373231643099681816013362146103053209460285823422968664470546843144364534312996861946325356446675789705751015652814902838554367447929651216930866579514276907613689023832058007422864879504077952511795269701806267113338765976121105494292403292180489834115342710621382920076446687614908426553336931866286295481410540411520246722252483864682676982569633265532016705960331718102900795223332132479542451003876615615771647605128554397376482487726412758777365621576537783763176096592542727592749394694832758716088982006363838730615813401952830709854252859629879597873086443701519769358402933170523268464414463275434879982653149365446090936896326566041227654424156762967788266590567199370690598375700366410068773880507145667418555458678868001517538456418488478701635391115352453483763719568161341308187978231819324753675643325046869600913470916992239720427791713487939015115396783935874481632807662493665807498531717524868918780952391452638993075419938537906315076416277688293260739226710335855133969072998039711706869415901324903773983454518244488967063596478053810260997075206974944581901737091699964879213555616175482460606038227205540974928708018777408166543711773329898875560365408854586800576839252489479372973557243943575201837051131755921091202059855247695956104657664340333115115543505464185391092967331047474666121825070442321997014812139245417332245669350427609542984996763989136615663372700575420387338603414593444414467073500130420307437700801637309544291564965482932273245489177335205142778658553182943761681064269490971145295868962101144341857001258023396158723435361649855083244195832277501865822765523086316920638633392563070701782544346904655797502900801353053013885958857791998922521676361968795779922062118284325121970826493960909513617329713236930875079443391063786236126024334382239763034591426688109984221099149302921545024017439940282798857064392501841860711126297944613832901014532585485177824703001579582410288128944649418791807951428729192220652185134668244709386682285625254566598031230727790800335270455502648160895851533540678736288442389760274909171151116954614858975931675582813471639811297468303173578600998192861751429113923648908404848236209881650639901371073466130349644962337234821492253569932401763823720433904256590556023092648317345018816578159701924883472968706791120391144451845094929721989425496684535373939293149926257626435346319956320386836274198900204443983317599373430421791879108880723665178255566263653939983038264716649017654194695834301830608273096108360385569844228809559460744366100730558841310802305128083872401242881143999727652878820798216221012740733929513688787341561679140517284447876764241004919377583908213752494911858198425700014724568952605955584027774730301815524248047388587017785106626986161795620451250349717034641222568062762015937902039180539575538540995071204024813126700918142291068523448968407826749272563943775402087102067998788548397293225929594520599003978187840300207978709185978798299912425261720986761368826120894490283574972624414457957058773926552998914332002575985454447851973163778456441071703972661066868227634339296289079565238622178881415222026316571924073958321485958923524141862896713360251443508478265757603214958917122448122822350262681084458810004066660555579777012591569341231434268049167235129598708935110200792398473231429580695467985911709910706986449142315817719063287353387017160894410559749729336864279562325868825248350068698708437612572199458420180072070806967550288078890058893123232708431014017018479700239605073056256140242807021927537514153616435196467720733208737941888117092766862191869864109064906511488887250088994298209734030114525752449883270206018817789115630484149030140193273342770324073110241921997295310297116198595637127833640280678257652947579397606851727837494073273046503268716358634861758392281732367950077037040372619277604712039364387977631434128537422947653761017914401889157969975260105431679129623053211314279686618333049386120096478395046442291529448234401688703562997699176185187887164900621687993642118762792310288504109950254293691224331710698779239656633294771582822780341406997832440835634546424562996840561320224391900865967947809495842635944836184688817691108548635188656741090729699478843095517194093483277192233033323038089394802136845542196591384255469757108149368728543629806115792584022373093518262890004268724430703489317161026463585021606694769323606741866875541122713869776778785731244124804589489034224625856240297366989299724181066478976218092859499678095270358585426985202135732671156747117932196425557765092356502066259442477730971796843088828279472808910853009783038318242145309306936740492361094745531567659680866695876314470429359694589589730824322613882828298412550400152873893415386169119043787638251037293967707212054682003111473156443338693561964207537878107355451884701404724231594489887361261962382505117836741040151327964250667254805334503265064292930872898781602494273464225943984626942779203385464982711032798531639339369699692898069654028141181353466464167632282861907128962592474235601704714515714374615058469020008737665469925897445814961677172390987816779570120757620395135921242759412324344589976786857780908048194056973679828259106167816565029655834847591438209516456969044003261717978175327003192349492433617355240871114072106015498131754574127102747140682190732360470291827786881786613309331108211588105917235080419706446620815598897190725686190252585011071353728432767784862433049568816539451711949878076881576594893669488357546156977682500228852207357060811377476295310123189167825958460339725021304067627449776248062701960692789752183377713931709149954657233232681935382003593644364123351208216131107111623214074746136143597618986068310281145901450540280952542535547585933934511275376941314106570846777255374559330782219373456198309309264963950124146208447609480613401087668617932224173137104494303458994130318273924952712336113728182570359094178057243828059836180164454249527388048803920210365909195688796500033923511949866505176999771687974931885044727900755698576299260743650546838997419434903374864779522759119322674082961033810071793988653407819202634426537034129167652770064986070528113637648735171398705034165472847140890561717069282230801438725583225752733432048238505346538053031612375876820971752064109838072067975635733351949947411518258356361778344309857954885561746208298403103806699249941343703441653643260587607701115375484237654295364283042317987840495443899343044137728345157056121829503510982814658559899422834609850376842091150112140630515553177290144437995824130684502282626890980984866192397101584919332321230109845633148233526622444758426010132645677178430898792450506974560171143096324804582392942376790749915888530569002183905833463847993947587960882978536834023724750793788679205730338636751733392117047674003182512977676575389517808604159583219543842061167631331266110064751863691272540345640761127143833751569814052158496798979858295164108085431260374032885623076956110139574331599172907783655507109212309463441449246606768972079972848939690462709528414136140491573721518650422331879806589151243748891752617026852800778345412513110382577120954023931874942390570574871583689745129957385970951673566714698475947915457987787722084373543301993229216988217488208322682272522132289104161653948188975716557137511066067288251756603297034709972235882854208344863181381113729284403395865075879219286138145006406071369261426147458905205810043442087074647508749163235762395588068355301511255363907266831553140663061895124272270231309477940455322548814832771339912091071455425844001414232071026970608278934313866180546138760628449984138028299727926241816417907852375306656121019218957133379217096131759781426145298274868853619083528191101931896402919479657956518763735450163999892860411266040851972475742698706980335545083945965664271427980050061263293077100077474386849311509435091847726333032324556788803368398081448833264796511684063643962046776544260664520600945858489073078971577278010888904545689243355498119771071539256314916009675475443890415968068923544926011124254470336883086149157992771678044282367451318119989706959771909909968352614390089428432599295944316198822674880777109884293318023620907730069068047921532530720494120699377413545609036368218563808457760245310325098623642128619784172232833424580699728068563819598653234777614891181166126229838803157018466142305450891098591208841334512634365661679963720183977509743481362506725967223494113022011071585274158638643942266680965665059757534744994324030603538431019709026369921760579608867284249833911576588525804686171879944402803394592936936274181042914351796393466796250182914938341456011983966550337347054076852208091650145852911089080666853017502320146802496109720696547863297149761117626222697804296124254352867036615921959496614213068190740665586717141079584211251415663585578051325367993912443130207405982708797979533996650080101835917663007105601181367388287875344244462874233426852523386578945860763843452243031449603086485290675842484100369617858134992750749147894402867399872437248818326113292991767295580502228952149085311289379171326084879835120149966772699530993718850960965120938511995968769158169298833613751707713503955130573006798977834198285853353374899670764097617558369002544454267097704115316815968117077991671724366452961363582296397561435033802509491319699924768578132900926568883946644719513501969610917906894051808577992498274563536600992960060005977435627438617476236402626837746904161379467494904669154254087275798278600008070257845576676240199262481081108713627021309609480162652350845167388396950848097492464374040178059454955759926587281335691388851043742131501400941443645798067961574302740802369982504298006145064782910803751061391943476951626320303955214187118179728312629662723963340062590078325261753011234059942897628555796786797481823906783333571781469328563900682686840078762149307728215438197506200443307306122790887237615100330219082095241542062339246308504797896850066899583656008932843545694115865882009581605748852452575747030749720918305762316456964147932145849922090178118968588020323156191895278049315821345842789675992361484244091146804591151985105543745752132187535376938103207081878659827841102932497600110609949163367262383466686816232406231561511398236139985180890850133695945236900770297625488138634194384075522311879393529228288005912153503980480044789569684675164696038412544607120022224885553506150217916119405262614255994479814248503549149017151043286025617212604262170167860257591211100808097214619941570665581691417816547849462096481498316080827798428660364776829535949701386007117557429391739010894001687925594396637651556821751001469115467840575857277963561700935769150749341424636278444029468448656185721677966622226568376906628104477657495965692984676885260997059102384169058888406786198021370708956659843661283897219827331133063231576320729773746499467787844550817601675368580741373197535902791029883403731879243295699965473701124346799634324517857116022735224055833506747673246164861612781588172231735427740344330148817580298895321121763149854909954003646301982718471527747993885397901684843548554332901746576389542215677052448371141972534169794311588711666205810824128750856780384021765246767078120640140053734326316579146463981640184477180456720901027659916567941419262795713003028529239147810605865881194465984901670052967538642720950706641533788085603682152864084426101168917410685336921825591108627891376315871972974924275916375812756430471546347254177400140499035601511993913195962494756110916588051419326935830846197118033548236783697678349258682890605750910039978402714765952163570196768521561020405819745634854348433566253377407309154670164764363734875903310324622707324983145663280306829260864981644393795224124438353058058327482074396072697812459024575487821798665518807852358402679615526008014021226652280308770630293922789500742231073398605501491481831016180444069184115002866037767669252291150842895807305313300265126157353843639882314623785822887356259264108561592211485057746336400423227011672311180900353008195691275937903753530945972436462896324754701760117601345956792699923314818151764727149612754095574929448329577237155415710594490286135379236563830779260439201499128157641655131599085078396997838662865770233543043532090396580976229848373795822247974971731929595369549298154690164758704093875613753819702203536162934295265231883621850357142857825222108760197317808623643104560723689233783840351176104527591213140590801860915893356187313737650568558667920560277191945151584435919769063372469955315670486371695694531636364795587376475817673085196443265084599000589824560378487915323920377299819033808398924087020354545606306245904949581830444047453401268245045038143684561236547688571070881731254225210445594201913103547252591767054745307110291050602684565607572807372393074738231917424786458850879605858488647544577624903101108235597935362999024013173939298492205412007006334378342960735808568072686254888135235133581917023854022799314886048042960227907073733060065570266640569084846541374581595754528627852511061599171294786272029272990359427002698466412173586569148143142315967034711549012584530913354007828876706164188061290845896105695921378057308827959950544792061314725257142588395733504439010557282653682548788284133731322656561142685545225948483034222962117552815967369355248565320307573558016151598888951421330593641735163769551160638295131097127216036739645450489006846727408584746773193818857696266731300222232692654292131581616248219254107785950647075033702700399630152014330272796571770967472667431328198915930824088752773633173439497842178041822097591043125084886437333314292825729963793867034138304006722731720391031933660699634152447106657039742201136056978314679366205134835736064313507686160098013599335491830465578863267157627718108859638728356421036709173482654419184692122353202529540933569800816669201459520382756436767827257354755146868075811241197413799462910098649746882748997809641920653307775231257258187698434993538884902841252896708007968119762013675537688946194461273585628839231799930967488302316289457150118489287605117063539685062501484350562178807471031899964108579245958355663082167620167930774523894180724806684844868380780600210634940894173793084595143000375214267689751045332363488662712082883177893090011014214731628954137764632103965387121553660195175567946423600401118572553128750382638817718733966996005586035810167595373008459599934049818259646050253309882175200058248832135794253090053354187491820849031359864187211905383284411632899517479057358036730228168184236482257191771074170203507341330876764571262866575888742847257544397360304910853004065191924751334150325757415777363008650613512460745642460360804816733116626240134966032205835834309914787806224991828793443577351196091971554334989760931132123102143288265015412049842269568186114290737351904507009202836630284565938332840557948736897515319559558106073915209883317860338155890330357774281336893680102518170595245190739119030066228001812955146016711953462433922225386922635425775582009982773338184297760544885540144920506805308592822022501511139740597527097482573825902177766746838536262444403028283333163586701288801803741236833308602713684180318318697805043757423284351636984879102203337862884135163999502504652523569192782626978699289506742197923993153672538564897697582464528968757551372877996239377839208028894645349982686436053461452725053370423041507449829932394492527709883808113495229301855181643641714330309019882336167315513869492622643432958580327615216762512161944331252939479990717091711271908424848138352814118692004406040208296781568767897375198798027189552196172444408242675904216206732805573886217225610040456749059689320586191658976088674825842332459459535874737821133872287573444189255052872954354411096262974948885843809822638675197619739380375811376604861460562792105685646945072254724511544395088391114643877503446935579313591950263326893085681814718119149952273909831204007476023046897735586275260142335397015427751414209258614449945828369404245258823075364003328056640744631739126390936004938888694575277397574515743642168405464645721985732086298194677546375618997320557562686598362686197740998335341845367800902883115997146975625461523586597119148211338857314376611086922029734503229902207604971944703467187379971024469911133601087574843176913613581201359612902564215412094260576544378865493244752822725999505919362231450177457387694833805657775143510499655116707052548010010351946532270976519082321967241135764877318799142489938780590155472768294009916177045926887508835819388857081195413992327681398841126543035961169944437904826850823404059665714014524200435002502360918553681723836099321749426146424106646397289984427411702400063017857613386856145582229689297299234443324364740874133263389478130926970356034468069534408059091129233913336950764718364688084022180025438033804506565973214458537123006185717648364248437115908043342264629381560487568784660104914977029628249565342017598375521172503331401829617189749975057920070666681125638142336892193297365179925472902526411945101647922816622759904794720274265807660254745493784939662491516642713135919246099826769065023874935268604644199142238871157317734224315544917599798318494552586479674863018660294883983911788394666998817716516903726431270896189119024593760865802050875600917100694482227620615573020308724426494152113330277880722328199319137008594280481719012357377104430052402939623055509823648860617279038362434563488356743034592608865242581106303752241914853349361714840089575939765291559431391910756677780538490090855932068434049659812536250593252641232258994799792442138718617953046320088745457343319177988591487384653871443298771885799810884988004274982840122289475533053696238339340263057101978109935557301240710899094061707148654682042265927538782374423637522101352872589677507335888225291294033955615463860972784539733398529162836448354409031442661328074584656914077316685976231271817046005806348999932582506668103699416567599480027262475092603777891638230215867925731550468978780968130616857156451840148262091063466616562647022258149511519378613087895936047039521755998465427775116595925058188103873684126152469886636296177155399757445961830154728322949097741880136363405416749783896109803259524445497540129350537558049710654060746914869315067851972135593783659008040155136269631484900215073144556650347674519442118354466617720192344102015550825011517667119337315106424963310398317367165869075494827711431727586169798471661266993023258258862661221761474349046859792747687596139675869903241440245519265889716561425096965909198007770420206892843588593043739313072368940614501424700793336272202811282890360511687836364148360585469661469114233413815603860409145351105493883232344896201893943716863777431870983418031865637285234005788762699157741083475094679015187818907813678431123935115183162726322528501377497272061577076212583193017034016187698558194850456280440313052363741627487169330776192677633142879517421686462696348596722377141048426566860771687171468182260008677718602922509483448237806879820388080143584237312111811049276971191823868441517078385110524623523660775841248752182285779180856187097611735959973775329444800586543123408857715067160992319233681894047258959283390589263304574811048924263210101022046112562789739722420036416671079934957432496679799760663734766386805443363319699486558958961504944905360640984550649671878035113166307748407636271747412909455469235810121688054523373989038250702844873500673709719116226995897106429347834745672434765360347546145092754371263919386304133069529169545194488072660944825877707981708615549523681505196159170535913425291167642921265851950697922275537730599803321306488764424517157567174500509318463547735729127184046031075664926813981451221850613790242731355224020521297555572166056501555764875660731798080025040171450942952719757203975378469544199802207142154541810640557994400561069754307947079933039928992763448280607438948104365711214047986495763335685955072543584367508001706697967362098266983137965680512123168021175811928385262475379930984380564496978462999734345490376913918597965117129233380370141011441270784392455622252590009875276283407377004597273095618558886096317266404537247437484537126650086407031905718233036370578500045744037687283177727541636502572350543295906654621089611313439525062028184390174627225663954846150239269392416283448263742063950418484526488708914267982107992196724613431845135984361839898516222493639524659999235879078268198640507673449629137885925330873409844220278916434031920984204349139809028024869360015398505757313829053937116794124157754457799971956510306295476640616975507463540844579492169569765293463678414061327837671096013338994256071542078358990706080095088899389524870873294731653766612112411789221556563642682121563190177944427021072804165095583174476263797184486852391931528943478215433138655006897856174926908536623053093012274765642306068848830423516581112966012361735945219142626208142581136913070584217500823828323261947900462196790140806646310599139750100370676994232718623390753331675640408540326967234405913451576865819145269376428290395260847460390958321465636032313328379145956689553285579124706186620855875536467485290106656637815280900593598760964405548170569691147135599249893639844136008557275647870524826366809065038363971584920378423347454921637258217977596208603335943476570112161717422265465691465240042107645588181582827395572626890484171474760302891144818312207176660712604031206900058182832001483204108836631085870772186408541758807767688031839729873503055058132662720028955840971133072934936113101660432360590958140040574734508325881422690947307719678897049055107224671905930496170024659138151978247264273837130571633160836003841435858991657058449046868892189946928174064353602821191912191055770934297153173799595030997018245603682703862018902773535770983134697852149435478618958648185716140843416070093359297600911213470822266183959156072702890195754627561475495295908237915766634944060328633383302178198284464763907423894977982449777958316679039773860881332823928616299306681153778255631430716878847277849882622819398677382707722579345219792736468088706267649554845867236308198671023200908657966137165376824701007676555404585870925952099334136450319747902968836405043188961339981363201644938523554125515837278349027170344612827306205819948196469490048129128415780810535601712999313868373754339525486122638729803991091106327372368323506927656490047525879899553592550337557252022268951276394661704842030865900899114190862585144807061441968136276378475333871774580529281674117180671476519345298260825113826541750934136041054475770237895021532847153576540319887735436856618426072461219774154553779736683504098459763699123261056095767682099237548359744750200310779472296102776617970382897214838406234311779823170092413267655576999373196977161160311239552535280138764847448933610465571876363361956207025261593824203886788059333307276774381890537909188294461094383848484234024613595118535623993888297161822265173700558191095996537163769539468276551519597264574691808220020201699392307534645390289402233972493480496859831015875172373708790687543245287452600603261094688776972171997586845345522790782955337998585928168797980109832294693093088603936315904207094970359188935825372624817211048787806414920353335350598185701085250169819513507951275873990907143141185051459398871158127949701835503371169218398895173818760390895929555811040623593238300750094768099421545245496407811848301147735016774936042582490207266529040528786605620502407830263187687362848535820530404780443203861702502440552682446474293870780360614902944530406915798814208786080637308023161974691009907630446847186555089802460905039783496898783023600257337588883431949681511538569824358064858034581207295274967151695746760678063799712362698396480489394309160487419377711552496438815097996983622642682309422541544989776416824200049667354803444374640182485236559217769320006746873406522792464612038858576520050225720371359904377100535184116200590033343684071248032477959572920659082132322996809966443433680258033748089388386043606817228700855338775774841167491509450751778944988914360484279297744813640273275153118960006157834598173083743646299822358823185881267732093881864408355127390465074064015437867733263300116733075213290139881782980482478145754979358009319925138271897698003407048214078242747819204710503970117810045506506732486186533314500424222034078139530851919626215558856628140565666969082501919385066969192942386196275749172550464641647554138112106622710286665700599364275147158454271449071847751396383734495556221944068529540501475417418065441759674867520493300545377960601644468747102614889963823021026097951815290751682496011711948010220950109490839315582430008205552846318354037761637509964131649856388389494172554341995181151193032528660258814252225587095298716358094541131144105902743148951348907533074320672698348684066910162449936111386689234686847378530512876501875385061525871262072417898230636216737062157514037155288879916388413781653875504586581147011790455478190335411257389369343874582628233065462315925152153766570455149078465570858297732672301389774946172618745789670784187895751295590250975212972654438433853651978952363009388376874298192641575755063720798116466117641370983711067079800508256004577849400766062680914938805470681778490697382929324598090225097949023626952653936284160906693223357576402799342677463091280382822081869431914452647569594837136883890557202408867471650303463664900488796166300887153472964053860659713219233236393970190931520250533894350416300027704755963756765531048866099124268402360136414829283640722510474841367033378979417626293314177650870283793917228148918441465129525295867631565640884636848902769936608847972762291452945689193407433007298918349113151627154726564826590098992986729287548634755143216519887768388735953962406313925980865063094563149083397207462544317932969107332671649519683205827504763454191569757145534245714854880854960679902706172972674050032322740197763886807971111860984181603970009158185918413259960953119871595793290654624826956619061435957196583573459787313994758787823112962997824462805265718998024774777646495120057718763537484212708123297946313209622735110219959460010331214838000822085943081545079871080454890574417837074178693752736999166808436568974349441810675049244215312501282506130024585564370797700285302953170379454823759014379739067801263048523754460294571334734042275408698772576998662438631487208595064108780486734073337736989529733988675730347493282380133545725708959077372043358908350324186314849045980547587431656795258941813534975700441045319631597772368363346304306368381670539154131862564155918493078771914377478411946701542431607874359591735777200088644224133876650799352908584629833037244884828091948759498289564493137536753492996011529536089905043537209035599447744855216120976621325938809333788569057018689210124271040332399199883975073427351621480182574284748222819256918797837947403172920369860787477806130323806644569859986306866586973412146145977924808212908473003657091486127724901180599396454066407786808377418366429813122942117932316310006986753431712125884626547690522114314907574236223503828804352972267692832221179674133698769280184137007526386716222236684586825288830310011409388856143001823810758299113319174222874993802370756262007518194647786374606459544490864932174811679832236230702436174166684484642120278862721609897256614823804935795200279735616490564877532525020136872926539607438164210757536607202060576403748263550172723556273615720709078634881890569439006507798414669430393090764027554665422516046379167209219558718045383327545153181620009278148648215203009620824268318314350274646289882957716420688983172073247808829005161846640623449482053644256133585615784024074006762626976092642919352397127457674300528014201349184901935485331058080975111461627958217390573286978420738838400478272423070440142139416927916529796507998147336717678867375732209977105567422507400956911653534015234953214166254758756313569004314898257669144544010262019293526628677006169790117737705449544319577563581968221629237872983996727644498242909333890228615740302552345644359114586379162368933996605483957374789913887077711627952258064877083111293906638499298021467607411597648278722374076921327822553850187952501850951625480986149507917539170361791026119008575768873157856937153312711060033173867179591258775972378691457648744262615128999792581115660590691908600477598833453762708211828414697150875100336359143120822177565780923515873818315631715570332753694937020553608255026571855700373815495268970854020071441583006163979856330660871651562666646969783042650314728143199919783123823779608871519749579532980488366511141644262803000540477888130587735986893018784562496942020746451477601022445566325141279302275338161015344389663889437828459138317163053103464761285135394642719567497700561855821589339856441926651096671141669233577133157012401045003923736245194189570509554072720379225374055184864269154793025954664148162902302356467625994784824468154510424986812679220748934756854507293139854387018193142438475019145105309527876167467087345646612192961873370223215004784626986462951785819083082384729704125063140578923114190233306488504855473319790862532408937408031832259670137537318317617848577670063703300412186409185471045753640207879910123137011903993878617865385810988357273729347900822061885527991724623787492605991164102347037423666042546856972709481129842437662877297788680068738296801888781785737299159006202544425653560132471132084522365752933544107838794328669461938753541828479277331849615214908264102748471596324718646326301764912498205626329311655441258286117577614679090091610296632970287568430900453944564066269654988505376777496255203050976806377676356340957960383553031100764617996373653672774469623368935973836529896245043772305876132310718212988478217286148568733997707308403428334741192071448235750737577770298942457689694973138989875955437297611231887869673135149899604383514365968835102235736596496081788610478278720005381930327780724566656942053902756170103439932066637677688965275339051752183765900525834883989860557578514194255010710168928630385150618636115984633971210916432331418550427913855740912279118449407842083687355864800106530164516944069533171628229993590503715311446567894488863688134960533418368583565796612541827419938672309655895323039763865894846036816496446918936237115033829542063070324536338858326383019136454682625394942801428161289224009221267323212556299714109317022672762183531194015038423232953841799475986767840701641038513851173406490606309361559271969296973799365712895184710166961910865124909010743573575329932894657902956195723164226150073082130940906969028520990249845641945052133845165479798170824389973740603670355500935420365379681891286771148655827106498506240240013277196570794635882781362989767239302040980862432678910693503329396445540133778857184195782332830857562220087392117760036583489500757360427099555022013422701675150639791260608305816230137278621430816653930809283669908516247719401372420353225117934552554045451257865311095174401578169215541086658711565780985391727486899678994822770371282594154600439697981733667552243290265295374469403655917645527233591344306204211427441969638898513642736585400724803965781415748342002054271696367325726232037122293615154767992078939673670793624201039279140606837689798919092122269704383180299951187553360163253938817009568282688132804627488715385057761952335539754435244936018070517387956819432110125130323187350234676405219215870784560565278583122313137239104963707882384847110256152945080530415434931247969918361055390698301425244265591300946764313544371115548802516946483599883196902649235602441945790133521675720030761912684926284706414455463480422562472952239079835012941373978465412595628705014521928369246771622169899640637516095777932103200879484620901464354744234990303381024000036797392443810304442763507579002638739690756965500573516818634392704404346830742134950297252624243092273654761664239569726831169106508658472820024824445322589486652305174433704733689937231960236413990493660267421110618099985039066396538661383559560945704035356305588690410291964711413797415274296827088306437860912037936339728475473126119428255540645443093920622023976703598896443225250601841713239203478040517663725642282683323575142731504062992248573118476914194227155418849274753950813850018315679980784625151829225248567628449702206144908136513990367444572951244423148320696796316233771981337634936865916402441615043174870544762298680280340805271348611945785643513663782570776448301539583009867525810703720680716957421379239701804076724403481253871679164046413525410219693263187695960743444231425109645220882902219517024667456312859354949027756926837344778172426919969142138094478320478858164003423749464460609584113534683712007318243383606553198437359037120908848854172166049943819170676075308733212545624240514145482872030227065396766633176116069008892308294264031127554046975561546831293837289563749066149400555812336627510734437551557807581854782614922602686339721975966826103836447779223149228017517107796253573550843263300235085066503542465280182936311847338947591353903446044527911907698949152149489427554346555423155815664286599498598868268567115894791244755708184776636487983750841603051042664251774972929127992140593257276917348601352835845751347641779269336811533757317264366988739583078989684955542857563953442483071192597643196272289416345001761079050266669704562974773360088753892546814163906718653831350380911863783547533929460625748143998101476746338436612981482423011934307776387180637961206951168313713274829399751790692948200745314819397544852530257193368295747422841755812019226322344442164552539357023729184299136670541736744672624379555114649450110715189392914184288789348839240986333930423577000533998765822085880896093620062131724317814875773416811495242947118000823959447418079074456344893514795801750052314519981110037493855426194179590091391995546853619260841740210906598424406559316966644071537442196020314365765036756288656936484958107474417473482233867356271097117703563198984699178704282963684051086814291343556332494922924217057924969515334944248736339059189481673120010546923007694002006911904333277216616216768884580512365819897158293655599510789453347802790102778409820401178343725397891317392718804595995949508382491737997715252672518153420620983810381885692536024306086748336942274854395279202185667860923286787866123348346938983202727262112579960193016991149587734265241535756540940201607373841689942564746487991789899344642566313560912186253442788698967207958892931382084362333212629223849504513788505118197365015395954832202436150197033173454642194932815225234158240264963054194323538646667207251473819008027153423426998546263957162619401225968786911591129355166384771161259526718052219813233703026073746175929068791380466181845776373723577277595654889145849756808627910735263688144791451043067175622205616330038486168340626702109130664375438856611348181638834830641842793715259457647173104374648369659865403900697697214327912156854083389245476018920994738814676984291443237900541104256753523647274615883073032374707295400674469342789049935163059635667813219449716672445651893066506891955386116564074510119405990664441971992929011360114783998037436085453306441712588514221735379206118090924045789241516672600188925321817469839151373131306006035705742197170068055066632788598096986871202761468646863486887215093373045189554183369435987594845994854732619349705392819140192378552461753219740054744043123888340315167314304804858778211224938073650173098932109540574332594952835760167598845157050721531388454862652744546786137995933140788538819339573353934306662004765436208829434833581631190840237190026625004441909969558247685796940018540704574434917020263007027063157876966548297160449411578809282637875036205778241658606736770541700641712653624251854107953614935993325248299300541656670282521331165160035440854017135099700703084786762000376214281254174250984743595437721957440943187248168367482351117633613064781444225114616285797159772186912198934445189430750490227359961360315003661570598616774592311984783349254846761853983260031973533957173011900803167763841272275778630140249116594466957471897496559990582092833718737037859513488402643484980433075057102065328205978023591920476289654500149925051202940827760037194440385366826738706160199006516842927315411265996184621526774947343224205151455298752276696409954904497876961797226040037921465513657294028404680001162503123641666100847451550717205644289511019998031782009908319243584194312739942374808306257386875716189310346181575964854780546501854031335569414279109859150127090628897283786991279257577134206494282790347665306423603689599474480537018936813546652478881444378538716718771618703691709416703686753114033679620249708338279393428078716752716608165931342196194728816115338650464908381546514049100607694879286558593835757116394378135872077042801219238155487032659101476630094767094358093729419626608348849032367421172383481190804660873650824705474974557600810475874437039318171092763543945485965512400797102195541401634166359255107606766531262345190685559653956540156756591715367974712743547863092566133215023998333621266402656632089112514365028672531430241741546506983811301244872116946237496189519734962937375312895900287311267218541139560323601877045519785262642908929067815836028105225506605276722130976356709157497582708290477509736931079541827798455152445545610681656033816697670078060922879307414043934785842836418888186154988843639722406293305933130289362073345709804206867259010935681348172254616828559855163738245692066462587680040712404819070938023472876780654896665285954218132306527248732147108077330087708239407500919864251525851525122204977680418935172396116128334163603253189401402813333083653483795392402409967710083337432784864951527503558001041043984951785975621157054855151325132017927167974964747503633579559727440351979079699815442256703152067756084738575866882862343462733163658228040365929317636286356551536210678367959858450110283682603486426809016510792630445690160145213426910512263054780239458138898723796028958304578052217680420842799876416383350231173578079662916468571533089163778811592420342233219390354583227925851329427653421016042614273828468451003737841572731337274298363723827569597806530950917829778066374583278106133825951124526075080274481626221610766102585723065099171875509753326246157274150196998764308259583921002499540587897979103437916644703686937552767878911238169051929943702890044848365817505378283097005475030427739724649708946672007289011218914067717400445135042670197787780053064150704997085728801104625078376043298498160161647234326402655262093996304213433558981220330346419394021579231476934080764438997290024580509526675709774532307531820184606342844676808238064590148689976559861616737746240347677719618889559868416394781607218328709018320059682384017702645434217249855469968099795768214371973557846861985112743204846802464880465104819008818382954521907245649581578437644343152242809353124238375650023304600074973122362984296825367044813226168475559897996830085403475624543125174498971880892354301285731554090769305971412920744098522853130572563116841510212186593530022936559803470541439218539058678275710598987467140441211164969958054662897236060543180130069380095652578924360533454472859736783933382156003027294455625919725614566158088424674475521722819856030210963293734301641769042459039537459552079530542500090781380955055461109426636116960757498291590718402257392072667170138550159176801403932796583084815894942816961694803193653794336620970405054123397655273082414704167037576274024579558337683424502002618806701043908337525055733740485577979893482869848830387901327235736280774919452889765318172610440114629104858067730837659778974619239384518734207773356760254947736295328093694370774520949892439201800727024894896063777978026585813279324628530938108585777580652835864482011501566615449600732160392423844964119340327409355946546042290083622567320045184498194078034621596394550843553435953287877279896242939297201054969848247747820416426028675222881110232014630095330896779912825199895667270856877047784930494639346435813924940513217359414081655725137541057153227053655497678912537576548304230570876154157184741685835215583192769905500364903339997844843058900194708693073423232016006217449220002513093437529259024155329503228830005701293272918635322387860028979701215664721148462751475473337412846027729907270848257193030762543730728987036669702138807937068366979105368505848468100556554781881229285091258639201094371528367019912108509723606742283876770716148749422646789038283503597070242322720520271196478972898125761906418867162139416570585236965603127679697935144462526725339124207849058215020088109927600424240422652406728430547950028529476923052314414632884855922145996111723291101434825859284967694093094179368115722500955293742482393380578355645902851703863661196316049997567285043081582843543955225302957619897231791509345858999578644267332352604114436847710988147995176267959150982817866872688142672866004870791654884578007482579494097295587386819728256622467981970717112622628471987516208178346061952931199768791178978689434460036486460109981511545271243755397816548930599559589081585904828683753419279490245274449582159285634452352153659067139738454865842683192758596789979218680824916238398318137275687424350916119715059614148979231578228885352201110444479748560528278663926480527186577865740669067799069576738886110106635566530714517066970884047193721927797505608797679809260990784830669158572496546964568883782553229595440115516652446961890997185593729780595138626192435282045265224283955878514705988360810023579233887341189133773499752997192166745298753183695731823219523208928658547860096371523253794563924630409186146570406727464260751657337399862279940699566417635170822177816644613771998158278215004216568834269726356849161942302713236171328740422951932142559490545470671277862804941164761823184537921611053830623430050162952867567871331665516359462140630858128236867737917928339462381720438281587882727822805623014582221552898030582076485037611096821391115514762091572271945059041033391944653445965594943580041501485536970807409947284524526788997786457157835678000025989007396132982548579998435183785737012361947064852246943932597322942227011526055662378104596106764064069104214678222223840818359539886959886026947678571134681608822262820813054683560728899875052953264525257260953146421385142691166323532630558296866257985937501722148581906604502046930757844919575602368967977815760548954415372847157528652527771481612053300297145962214429888714587643521720763627223661533733438728604438467780950996423446219717073571092824692279127577648564689099076994910723811076316460008040915511597063488294466011708580648410088166560827476794596191983797033998717704173288970497774249890397149388985253199332816486868695846364935640509008187897189675688973007673049828247028935586612137214965542945108270742091017760108149444279584684755365749923744244365077029232418449845871525838742681980732192790172058354309131401882274838437006234270035938923919003920283928165999804057652324581657542466110293027869791789331469680634446649975331166044984629976052863965253941411768719963977820321797402329852861671514286038887077597233022142498536853370768701350950149423304055349957162875497979940529025039147915753298626844558819164891912954861947790107831766541166017153869273871050602646698277219724693022608996496837172742652387443302955636033666875113457633881888283291014362537554811311076785658663676193533052599629832913956798368391301244952472807873947239376872205178429847065057954926434612431626207743945993839383325022855334914908324728667669083701276637903943196434448656642745804922920283728556475907196029221078292397334985325319772650906586299941892658883860732283413420607345053816367649579193573020821687740101355247552934925260725401527456893759349634615281550994513253888224788029861652598857767625680971229853394438583819047329626335806512370923872468567018121677887503353423109438479912954559381779980659742152345302898583949190457715977443899399739519306197802998734838374604913480070025439978643740650740753926416979700350535754970858911270265888120312407838112956348438316502955445500308398723256189739404107563160997498955017600661733424760081360291290044992668893717318871496062550688123159929899098321485626526332019582744724623380789736112581586526514208970572307148869781593446736431512101828902434432431187618349296711410550660047115888082732499463370819199532415485602518091456943118125496407205183631322338307065888806909398332279198915502309386264991239022318384104891418752682467644289367583868449203255544553632993887761507776346986146215815258452663385057965196607232972268222582759913727194617509056554765694040056088352589176729456365356244151866488905604843010763458765364392581938145845655561016420772179167634303776394353027236091207877076374502409475357949423878025989998743237462888825330261560354845472506987759347393364103009057718171102197188195452411671257446834403222859593751591299591978622482988465376018415440465922984634365438540634167095619093192428215852212554557937145422655951526028960763961203610833748378418768349077753346566104866463543841508508942287895851464100275506680086009713659121774945882180423730228631716530547636835529144529474766126373219021913556703564867091799157252205725455260116723756553658445273744961835498210319864899160123393952350637674708778588077858177620173874464340564356389059237058292617801479412300266412571445775876086889500091479251872814199585565845564167320407665142228379928606863014385506245153159973502220158984638307371499724035707006467415549836431507944887024542410860700873379609965616639661067878828282336589162572351359359394681827985461160700548765508813295773139987291272810503468188068314083706274162225066120851558400461593273256945384279257403541057719444477800188904059950060786467089143995154181326584157164065226313611922734654849821158765517750779331499703885062802157914187046437597122311492326849642913549042676215963864735953161436120559047042594523038848224704729517698556713908588804778862971325652348133575291148540166334797210200228353307055922071642419158147053755136058647586236048791531500548272436020345596947545983722499988718799212781027485250278956452544008728689587047133978853561227005832077352495803432221730645007428733146786057870660834475597488627615717783804715826289689826271190675812883808002379872111838978781259165456014503363647853552229376342877557105275259524463976395161395511580705247354508549611770099846769645358315720392648168927858363734443355634630909212263123019278504719513125814789457835334624610122422474730015292820174037010067501483532776653802130578233029019152339179926217078432701207803662289804172298762025878379223019333765937388698784146750017132693424308122740996822696901438899477925637070458944224813067690648756565874694133415402057392167302718501998717438936358443910842787979509021007741980326619802203536165268664159814386107614309037118153437784577270216527224129358334703276012571797593625901681289426394419252309452090705860832639270306252549610022923986529101953044088961241615768513147657885564462127834571324261989452361858794360074045883181936673827948092961242734644262932521203584200267135506524243871111068245226127676991620962435411686820666693579783822730773344802051590090306743769678600699633852546408765856741005843824136291067225279188715939364979463946481307838666813440726682042305328729163577238474013238385851669858308439494994033675998166041036545808871775551859335914743730860203963095281208393769905628200898675477275420713786738854085260849576485113292298234587743370116046168582992092586088626134576289444638826815561330347464557473174574485634943651532084390992576470658974547900608239179694068675028828904478014391393932334278007897698468156958377236434978124911204499939630500449184426610741386494859428250800659580717363392208635150502584824858584607454821463940380015206602065616413492256648737788617828587631989544562037945982603509290089983173892255741973802590870276048936200121905579787087010899797052492711432750231655798801597103569281273742623344112614210565068127304082767536185318223818205790520132390939437259838797105572803932635000386712434149528364934352576345524109309273935778257277957417521982960204759884252896671403148161261175071059041207304248853533122507972353706899302262285177927459873718093022758251920122170330098592530445420672628326324425468173903603653902837619738102237998519394107827454868263975839073477260321762157100110254519814214755426259842493588364564956420234436455789885602735918356346134536939967510239535755845600110800700035166039396918139875433432366373172063279532019974964377401003640694403740730482406825242510377584431735105666680530962909513189325670636023433186564561515816901089360719345875052136301255977088935895699843940022301392888454959727335978986800900812972520161657019580522780681276824610303365865595916929923965598786447800339526312465206676048636080158606858190896923702182912861237362640002425354326483573844018480886316013352517408916171221064347650708395196726037110259042469295675840027968159050649536650608591528546610623366821284304439571767312556498712792004883544163708147927016556558064960343118639644212687825935713622409578093734523166706324812221619857571363946674137875893609268419809249992580315410146319050361401004657289949086072074365606676492361224476871063104711219126461879070808649781154941701924500980459462441473811439939433155438678539511857105152283408257185437772503712175144117952090768583280410318787467933640276364985309231643659300131086947702519087018954585966176939367651586350289380853124028606500671645835470278695472805249792626269893803960879122340428989476706238728882027415281504144982315656445011308555686828833720171562417000028218291599059329035598163447196309500667934715361138453792226440385350482847939006881228312077109052222266283756463264837266613331663851203909844082949777495334277794146087555804048454933183457354385997112415337664563327398123321695946914642995315395284435811506420109813071795474134613874194789936763939824102035357403287603813949901663985034828160104731223857692166884596644193214171523069190237851414726240632971362494578286420523463439189255019976632236265472075585077285660368064186628312571795309080059006225187983261171625052651264964985087836217082096327074793534534136941441421344847921468490522404293547754280435362532895104908039161195208623513897672367920096887765766111715716846359468973941349483009063296178127841040327423433997702578216974003012175903012926879689773639938861747286630648787272672338071033636308991877664979120492681370330080791407162556728101017257174186291071795924461177343328080138167929059578940144418684258649177192990376519746476238029799200243779811464716077437730944629402942565235179982366349996413174439006705822204645779415963786245184952881971642939282220107168548560657329559031452830998695003268630977528898408316451293677973054022465634861543622118759003783686215438248335941704623843623625939803757211400871871878650813576706168768685432075326950408927652202181927390717479624334392465372671701208039446574593337078307522553641320985998329266658687208679270608761232524200293864247078661136526605277318918465701448419943674975298054028199442094248065143877805110704835217984897827016227286911477835835503001146951161992087925979143394143593278798080509738924082175328033295595235144570755074921580492855317886934585576529766132379829019255077670311535764875803930397258630695234876355266620069716923659574261790304428561654753482406377078371052735448103941801842916501213842117703797113588190599846334884368095169700870997839197274757380712112633850042181707527328994773472784343387035769967346731406705373047729606493538544424419359942001756519228201369823350726445862192853397330699678423016261733189518293943807407498816303153770441388187170331447453595124589201986204765764080397614185067003608857473373216355501899762197834786572738933388123644162141013311113341607180050693189520338406487228757116120632119745444757330408419591424322111791093967101818135718213690526479934228290907573482394321597349103528886044590510795322376032477270407338853812447490642108921502163578448715478020717802151973282329194694523911775596505649137054704375495270208744520857493177819176669845120941119557494016556391821028431022043549631914154804998125156515266169334704582263765012814568865599378283366378795100528385591715010182066217937334119839965483865906646643549139625227836954823521867743020078149424612067580855274369952312137566590788889811353278694109856602981990808616589611706712452382956537920795802042588159813301208139789906053608674205805541657785199482085463040091320005349409361211298944804084571965326594194072529983864743121594192893510251170152999773528321244860054809520610984272166919127524348301053747099654996316170329303312027451439989781086951813110742540889577712471798391845308517269933381339276797710855171224427322302119240844221112162788572134755642017698755316143542782720013365619514126977773938078700247715592240689687386337275967003112702433415839386744550819208598066277301233055843821118140148734822751772065615425757745269322723619798787662717783328286836147303561709772740929844433021394920895681489682095662839226949118438458127137118643304401566733350525894160398878404812192310042307648452906643283272703854420372032498912057707431827059275196751891840638431927400531203834895025363573915648022442962804989414334101767081511044814022023474181867190954425568399713160091374453418887839055166072303829026319287636694776756341911311500758688961652149569686527261963549322067243523799459679721511410814319393039812641856530905889076295614070334359660873718199075047771676833618664076315945571868179624867872903735055333935884092085765829150805036524187990214269910423287101727315939724536654862176634178766659618929053358186428428634838815226972200376909406989314274785223894860313652148975807044566865512675923984605281929285730217687940282634784906802191126260176195194195908775001804463613508572035980844460533778432277630701304267280545472857622783857764953742441157202465253531541684399437620151999108326745788312959676644602964094046207690432585124384338721942391562408787822765665077371996743319443044412953397789132475860832827467269788260347922799846225521977876570093861666850089368647493338947238378243643253777882212967184326576166789514325953074314114925110904699438433414586680144074431062394776803907313756013677731771690095021455921385580898417130369220318264185995921621921269939305021329583213345458217465557677484975853951650402137003442979523919046259540476177316769369462775848882314842502752012634504579863404182685034296445639019744086798022798463019533722753075078915007502173864481446380147799885030408146209757955495857898770275597799958830022697990643564297174799733036566415723880128529834469283989164547176552075891263920569568572182189317305901127586802639604243076064868739165690698228234980967188050278935193858815500137458234608577385458531011789307702019472901595893513351768945064265309902883034349209964939283087706700791063770208575545157319736955949522425017772240789045721887652536161642854519146711198054056895875417890264070060616829019768461466974555614646315160833777320286645992123544995682029315030568944283878979921937911772992653472498010958062385866161609570008929528275012088831364561218414628072504133117989349248798054299345254025812267067665913931357024624965904127468045520054436205430682269461435678481602598744962836505876484018007667467682634449697416963550285071851180416564210260023560790569628512258123538701382595598562128682739649605873805215230916430074850659815518653843915452564445589662035525239308922572612198909814166580717823799913343560270534763788855290565526753227014489760959389007044096781095974875696585203997440423247270441255277468743368540396780489864040112264780375162483305949859748114885947673467286897890497601078151315731645545871718266352838912902935316485050405447047843499089614732125574257037659577742634970381802492107757490120915894124843278307906702651664747598782438975607443060563008102058886494895537518568448840057115431696984527880951826737839510925458422761715604601542203073108593606923701207770356404386752625610718806598683236728639267184535336802930384662814283421663493737770605093187093536403406777970527388166068944830853143524087833871840976004272596434051353872917527638961360411126440312044922005312800574777144820438804517478841945719472433605106936912263622861054017827171557888512146609330749115498480550771504138211694101175818330056445616772415519947653374513526670120106294283639220458647368171964191853377247568214692948174074066884313854202143731463742161282873414507105712879080882472443996571300502740940996030241912434391789156811451525883484763175427335393254012727769290320423661780180041317378656342173754420404832132344805176085497531431090399204603900460077054466249823861390934616593915002398640438183032394818904086774243345876251613319834771213327216727216975513258895698962065141000016610686451594299826990160408736625255541025934215738130897212040274415096368312983997052170331518453654094612814973868038077518810497523124674640920083306539698595442752828267316168114716047807931542656390352139781024597906900108068782374625533629966873868833492677746276661526220528535434344172696727413480622158120268789621095641248331099908772007464521836190682639225366588444517342672796288570681397940758812526103628250033449844410555394573126429128071424494728004257809194912585142530864378754640513517192016468187263845205455219801445861410400134346567385468744814407344545955368893302282480576135853565323939835021595773520239265524801879952858031340776730902378058219216354714490187383000810598686771072528886889268701746076324581163295383516907747763001257231159175481088010364513924906013169156135757365256964931754723317317043684364228426320232303008746507249695495906415667095763642973123376588304884534873129969675220682037288137814487712797626375739793979707547108999010416611761796947781861284126285420609455127268787657763200697650830276710037662584051681849426395356849048970084035181031361017335436270697449930959798670122058554510654169383485449487757176725504278628830925760288039634415826165245204146466638437284529867506601131375403891520604485823663710526391832224399964239335504653607657834010499580384716996665809525980443945419329093520331325904516784876779723968983036556730655372677140435728400933902158424371825307850083465575330611954953826971042678000658943407750527840592956315991854832687757792427268368984593638463100475815168275875969322288131416181970667142426147573416700098777239712987617803797525532369535447124961393943738742308529840144241477917734366624733947435773356053511313060591076688006660665228189181223430935968593500112865112938689144374762037784879660965839001918284636037343463391798524347139960049349676250014060367187431478064867312602073322236368713953488687511871944166544410280340149731170178201560222012190175518149005922523132537013209226603006692630935967838024302036718558996363656287064532063634262812407077339685149837271735772485362141288717141981874927087004671614986976499737090160214853021808886095256051870440048987299783407175033803496027750816201373630190854670829431193179489397784715542205472087231613904142375652403935606240231630047911928867746685301102202851098212574266906340249240832723149068094780179857322272970016923073343726448781335737007488256843212279657713364637069571931317458690171004321424492462554787486129479950022768471444533048362546202697376050281342024384601348085925079479933730098732665223594539635456057232023556738415239535200937954292381988311069505380192055751922350398532092071780951960384077102550138503173623509593212266510993627868177033761113048435656265041618342736101929480399168481503067341553699881305896879899916180086833375561706690680184056168237440028032513547299869392435068545718311356833789221588516929132698270874402165460950672565176168941609499083315481961964062284306370686490570130134488265893892264950889986317674580250678702850844098030135395671113028757129378693412770546859365928888041467216269414837529867665074867846062107221883235597362438932613198215079982166058669420142884611019875268733098739470466309528326753793728022265535503603896008750272512401078920736707734232364233502282034850447581255271469595009374789600059498721538316609714881299071621256661987001177243470536651131247987653335687051090948716962331078302547938970482219400709457771452151243930832227306341225598239148584838147037220556072084850100175697138796243742864749796615326526957853373687870746601558411712610720770212506479325164029743790964260490557742042319280667944968861306568075106705718609978929987227137746532958929831239476853450667581543971726906150805165916068402756509666253453498705794794294725042941133903096205013823561969466429848538810281351743782234201649307016877679986846684540832901503622847224856863166254339564917195062159757332534176572691588263279975518082719926053052411661870291621401889463464468905374962139407405983485771821683537094019929225959520177216033339659790137645141629563235483078292463878687306162547362336610419749555958641453822319445799631348077014085367234772438497220725937507677449068325560029309076694283672840024694156653416556220176738834356169998975723126591609216095192978966060409480842963825788801848066436640545950040929637293332294217911090385062707085001183087205262312702529162320640527274121105436099530460005490628696801318894621826695163844015717657255513718525756654614613025630294790805330024512484622279700494404234619779881235260974322926789279320347379862496861293927911377681259217269870696292456823515217250250411264734691817006431890330174690958824163223686206924497083540154534336645994994112987797565871045743174663550976227489327988162450191703108025961453117441062765570496438579014042159978556899441758050715548587461464876974874821599161132765755903155090076955207798276165661295922036400628612041693275025948427817221293199336673904294653044541461438618354939946845446086731337611590562190987658668935478394063064112862216917411863993315058541310664083842160207390583286276541722856822135816164796129515763694961984465120577169397343094999509479977008447165363516019290254006793767476378517235292403107368274153213919723757971498090786039909230005976817076141097440013379095946264511281604592292553579145331504518773826743668967055912497270731613649755313191210914545147168144857845449149008014510712516399456720398793364710005142739483339016710333608621304486301729423780022254536489072506035279806967523298977578426479996905886533448205975155247604779602219545738261400152665660300660263997318892027390561276574375364187770303749523006855814410734239381042198634819340688793180153981309980342370587127301397238976467180260425757351668960487468118738625747478187718820832077950328850791398761449588521538253214583389907299566974791826295899276596164931120788245425231713593483045449041336999391735192669652406097583710103039391135291801442338834619786507893403365577198986166298830550201340002848923441044959610014383033708885570947233974451392643107561073419418977302487911146880578566946550219650431800228598799904050106809128839506011755582508552060788031036500514057556739172363255903832570728153470648556161171797776861414360753552032932268991247885886223875943884204665229667793283276962058610173197520514933683206243555154848667912666259468475745152923036078102312988358652769289201898370102887032870949932415933440294355516749683132948403042746385298832752358921243977936961756484542701895250543760005966023442288568916253204736641235621217410035738353573000124923547804972597788079303462967070267467145053114148643978945869187772594560328461100530328247091060274213647359679134213324510007343505799961371413170901254200884398935377487379842059743095425594406491163426514020341490825419094496713906874716775376104627003902912468342015053196365012671266312743978932916724535690051034165756353473635019570595577829762652802397262244726777537728406167843460930306980835299516055177076793587001141201604468847003177287904390909678991495184829490934415632381565967743359533655463114174692354086247232724236784182378426608592717400342413933721130138307160925162385193136356665812698574038621554821270838873799987825806456355073552373657904353109037792658937673983888671971871337171551039142447315445167006953807603686751858505977512204527565425226340700828062217698511203278035912316263172480637336950771531260023582312933317696504006321948654854104370717566261721334664117759862128519831086710380460862439337182919613826708468148993241387105837561435008444005698793390402133926841123938913419226272212901735570738241667678180027024507631112475919019189893704751902689992359863512829060810874576346802069857577434967117636103026687558701738193705573608816263468228974475865040223138780773698137716448230195523903228928514049556838321948947767434793771284061007636361439480449694953761623948825864613040752365330511731092179333532374116494635286173499863184846468737293927366790947241963189600003793145773109119044473117338673217293874563569896460045099000024929021697872257599663249236691058237407781460031867291323965374540367583865282404537064670829793257344502982565509188608311110770121355753644410197627629537530624787826607523772727224737468128283230407534494113872900013571775131064272223149868701409903067840866658674975403785336457878397374345732231591327535472265088079713429711699617158275037478646594784987308647826828547943146131423118884191076742490935864479324587637194314542930916338065910629295332955813867281586396831605408410099877043519023791043209002154165262206448438391984723933449635460970441161516474294068396941878412502191294448608533152883324886810939069546332320873197926504205529682293292429126824393236552864612534222684486652231824751733857806472823972030993762327272702704832710569066029294076635182639488077811320755151894991530466594382499567802954276600148827877202318965381894002661945605732031013645199156038737062924049670996587876358513963958798632556091684421190630696597082596136034316791018987342662376871078243229368075010103530941224272890174604106101533219660981662415276599410215664511983298418655254791984745599290782173248896416359360845848144138136992786296181055452420751692695915212234611192189965247712749194726957854775574487717332679635090140719997699579536489366494999055222731239073300028382878498777930572646236567929140816961242716651492552797373629785928663562739413666393094341344457936749901794727655963532277381371712149534000572472278435519359912414481999204168967177819216979030366928460601150448108335785358393238355390613810591458118461849214913649914780950459659007913325654142602788322584690142729302795392827759212155773889180927352503890916959125530058556638106554800952454915457013854496078632247649424540080566455014255982297104493563600199546201605038733513013973583680527844001404431879785166267471428331886014363158182672929705561125636832169603218348339012902934691326735442682826836135095775446677665929261436479364146356002364086033050378856253786335809149307085667174358915500003352598894879524736438426441582485457289341301734200165501655095076384131829831174881800261198008411583227993876076855967997560403470841907807052332510074599675608901857882785820082827796536015826046369261236915713904517929295911324014705784146057701210355819214218691887090512365091356522251277900353184454759264245880575065066685928819316467655299642170212562340627792803952499732866196538690662295659118798188777813073921648915290706786195638747733234865934533913895077960464509821313062004202857874320367080221255323484196216263555386874943823538639662031603672183770134138942773440128123521465634759804082174496220495256901545070672045048010494152091738661481444026949535194605243236341632402912577168561657627126610894136201778533213748719381786708478996373352730745277671312482665108099221996676855123006200388785021920908826094789094527402727089602345932680271856892990947831321675663945330344761640495691456564619254692501200623586402633477206504667237241082359218585914785935628800823854408667324528318408740686503991995453347573025840602631467562389470301258343950711391975203488137921498983264238629568134947650888863713258561460350026827303779982569218707486199143296609727249252256815112650112212654628800842146360659650158656780518397025113639898818029799875908425997730503963231921238466194738777066879977885122584202196836863393861822506669432891110939427147908889339825302966501307091513657919792614303854929389612506566375273205263112479131825821843186777637452836004382454286950901701107455129011391192922298197041158404100798078829515350786035492299842018103094194345431061103570192635947150289025508676817693338763038333186419938978452128431921210110084218819490921823157995070220823738574497081273325036355322772230912359582394117458318163545513789848562504409690476415982276808294294592979958063148407674896356242152896073982588938098637931989109958386202104258342573434878047841145114549598899746174089919913846928064106035888305343905895058307645869297673716405023112358775957890381440350056160591182980069217940420635939169550094783021370775304405995754454054007392856205258650595617830229787497810039577405611317182549912093600983795891570890567942191277964753692818018063571615347703575487439921692311315068961063559354431637936750043121352963883754449842282315473871994558844612181789429506718803698226140029798552776438047249054269286173535645912274522287908431302269078508578901530274235262297293994516667198960340346929755436561611477976813575012507069297418863151793965728132606650759969365200764116266463691155169807421095741843365041234508187781167714460102463139661764134223207549717823058837978477012592530626893511435069958158382067354565169213888105248279738080767357378633210769609007608887233464841041575753050817712452162877161344292144342521221474498660351113629631542470981376368056513933955461769994532668317894214582280501761920973627097440599873933588133972996304785450102842348872839390032940493921830910880504129063114590850521745682100695008934831446621756826717853942249079820754381428048480268862170833572967944740939103023507306855276084650523391253177990325188275305518935883982780139435805936237270163125898671983553239231525534652191566655492988046893959821518247248102465769496380666710023367243392303063210883493341457927573688138874539633492732445842703841717418435701903945979314490630661863155800971457028381642966551063733135482684354489856989972436914868205272924267039501164908364328342743110369702247752867760858942426576340093909726112665169331403835879394585751583904881543719124985312306764462386749632783406057465496883550103060030374037573361038456413930746403433198784904953126540053150791769124248917403078781299691041524205197719535156311308201707056703582534878966752771409199289990130862700373069291996954627815634990473860815872751445466406067106609930287989128589079938097426210052989964188884253181514184745679688394795138541850831477581828769995412991126993829466308455062598306453044174048428706455310404552293398688126718342461998719305378120611586411758686320861292105635998041355789076641223438701818364180052012239957841191182351684927176227259506256007378618844509665219289561792742221901015751374330518041705294419278191814522157138559221556418913369129696647344640721925699582116049092584339155735915515994038610479917998398179530497228954627700188412418111239284892102433490373785902548395414008981362174481777984667754342570433554983983354140930188592976194762137645754591162436159718735437540788675351711534257733985595775668464348659085361049192773842253838720370958396838060670806854529399609451518569812117256170150576506115827787869548541281168932315250632901422442351686010896283928964914559526149433597152511737053241322975843567096969608437029848271994907416898229600099086032257838009133327067438670848114936210695005488304997190554245848031643958166638615130386772405612620337123098633733938867700347292506660165920025234602543591853866659210390011487934701411374563661314805265398269507224574600432782891540837914611119691285131075110852806507610145914627447785564176728414664622312570756707558541672860032756875510784745595890911843496290807612652942693547174337351979665636287129984038823720694218613726508651767604453824214517716951260340433114027451172845593089039246450131265246753722037155884406165330396647718855722698501122514407990158648932918394900764745447211595814209618345735231674744210979597685426705260532142973859480482182317600998678372547949928998967896355749777419389951904107358821220194223239756699652759015379573329403569417516913112013412278301698002357632501743494699204321414253700341037567280895872300353787002483537723127759713033320162648423672686859729076519462319879924682395412514322046798752109168008837635886884834000026753440863530152300810428762631651368779566898910906931613215749369797357536550864154143622484815891782921180607765179244253934007050642376644220471053462445105414601722266892786177952298720113789532995410855879469535137867719159502876660602609424225992736725567740247755471381411658286364449513033802946073752941858865050392485580402354814513729062728647333421621602539496554830129652074923189844595178249003571416656030312301922050573732637565816536290140474058332970923989343017984693317321851544990309216335619785785955613958903143525030704882598546032511462493557864039881184606389198877066303857430799857607807531045598306157644040554242323563847880379497624598403633876203399539009831197816500321807395474727034466593557334865515333740742552816276864641743172304019429327237178991945685742442222531942217398607119657541748248329740695849636192056462096709043990069345545579374202265559165091663387768894139214464231756569948500279231124351611170701214582480517903910059193302956297929468623734654227518617387217674654779287649027421701204972977190782744507056397368490293649876847566645322557304928422988768129141887137905478849614907375705286083786866990095137235869134968980720173041649666428844546529497240622623942482857375888101832494314819442242274743635501719839459477931662656177653262138474604258191038329248463771260776414673329075559767567615613177203525691343965856299054013043579614209538406526380643376121861047444231339245269001861565704730839053176442148071962938443479645009757184106427297373060891092427695180779233087109498291690297879071432456876766320043022442706556625624489825087386692993260290220367070351251765102732104938629296251723326177116840295639534760907327290098632337632023860768629121183142538316135350020003103362818924180345850716898902181955274004512607498459324419843199161847856680377706631124840854626092015351054881705200683639131446247658347603460501428872471089764126817851898766601507661380329770939004832468222523196807218938841105703994432783897994917695068104681992720084312866871707632788336665621240571228412119738756217084697257945242820206457675539091476288135165336411557185250602317382359727721250322032548956808812068935476394725148846719796099598369252559828224940979667844107761614274580231083481373068368478043146314515377508729750506912592992224434993995933207599951377843870522804049466879122710949769114935567751928972585496741550836450643810674753182636415510535410582224278279981720913491373040994954500884649721402370180382148711163694044906500971808253306570762526973508021168306468413943114807057524739813161752442694480403546007151942545904735489704722705404170205175590802840134200772779022231589551061184966662716851772219867233842657437137370120996834971098381569809344679308009761127968363099147537974378005719116143390897780455612541339551493361702551371885156469569718199064797184118277931040488284140367192986537654518810397095310037093890454832376251696269276564041075664291179637986807545779227497581304947066669601625015618413531995136398941407062804924796108217145425433560042934576030877016148104483859274042935974702962061091652685337001580461750682895375128814645803795999238814272092993933830115471496161086233371787841383356708240397545558056678427007694713991407053728412657107317314835667709052358301190481922228711450600828115819292544706660095766704186639906174571515097199071864106120244840246235519708368425405746015612718231171209987123617167423700081237598605055692446419820358892147154167217845111353910328402539428900529605413970564385971587435416920451910590802856276825639736662920689034391139267344657888096196176148233513554043922197354038375304343703788402981418920333607186313193004458956708369283037337778820025752236566700074199177589332633662388832343665343858347000276176567415417371920113146764106051203067374229446389265103878517857014903723045541147310145471328445770520051138659436395406746294072254182317551233629611809308272462178600399129153496099492723574321458818278005235558236322183346085958830978489100844358354653173957980740481489749995550234739684101693786265805110004410890314348847145170999573725253837080280981266931519709726477895579474338805924250668962564921707126213717289317160646740325031025803837116288793042817034536322633201728420746669799153301864333113857692135812195388876288436862811632004965030698594659049867279188220889956146142037650701257592069813780513362720682302795019965756074760588826388763130711164167256166585051143879391152669795525735814807474847645813029283735468552560907274444920763488250790830744319430109381797398889239642624875535959983263488999918787987501930831970570947444170442268312840694266614407902292378686360870813922217281851191120379608526525121652198615788685629329035105967278759995288264650578976157596543310096906668458077067069378383318809777494948920565331812525007803934620354009378678584613462263656992092840086820081357910075962937531012430795916393519452858096342863163736104265284196456571064014398910624381364503163470235763314993763653701715366844421406909131320876617664808186969270004789425677107542740987315435282523368086362107492246154054800362817743295123088810914265000603658822317741913609183209310665080421841613281312526253780123176461777012376288883003362567077004714808346448725523287879736307097606533680626745835494802093014656163359673465506179809403538763232396843315736378812837532690591866477359274713796522097511934585820917591298367516702233639262193893302560914766793500948322292602981924413714572847106452108358517649582977267407596329504653038207372428150509976344434778167271541835729232589066228443066055247440132635245646909705311790209601868541360440414446242647123020186897832527085915787186443278410759325182882916447813242288636286957238504687915080430389520755331788798610450944522627618923445166461678136091045586224029696637127422479469391980668441079207501382876458907723043032278456673499475569089846496252901945679359654877532748880834545795437587573411437120815431515174352742828569844169103857599550449209684666540989726546576048669646197907595531688867781438245926762137650616112191223716501094690606379427066613675439663578051831564848565646681429293581430960076482494293968988375120398229266274640791376888640562134358046805281211451842095735872702298571310302086343308578426343327052126123370828895015030687228581338005634818680875531635565063556444387874692076678156781689299987519000765886139645494801827570588917402532106883727636227393395290932768079311086243917954878722008291649911052465774363989319072738992330555935449564798929202532333170761957793128006644131802261766493510111244501811848102035275338005631603374805190593747260662456756854226623304729829101580442215124723495953101737628829832190903801419739104713374105201616093238788306770187090204257276009741556164940164057699598716534665426607306855688859195886908419375474777622931263123739600938718097721448352517991150939025490812492049458648558912614184499873794473770106627342136774938078886901104699674071647045985426982122023002171464520836210755717693653954602153376151844376768751907498295981423974609526356706409536954930899991775257365600868189142190709503773490501210532303394795184035400378724478947073027270846558780993510431910090972651187746079317962960554083878540494530861788045987108163485039310244899194760204857460908121479574809658629229107831136852290099464993839100603661897069600554180522466020583712462246503177417985568860796031184190190636179518236292317069405413982229975403291453813841032273252809268969677349475137316305358696241280655308714637556966102706065179765857296069205528087171345599243987142494687433168302392202324557861800154364600923736462998238572559636548364875363176631448582845395137853413315414072505448339450905697610078434709672342320579363071064396683473553814247642107974149788612559352320300841135069711210289035233277522379123765031552686622212927304395833694643443105274673075162577905847094617064449149738233200016236005739819266753273421230623528130865352204276707816238106528440081029022474037258428824072459179525297076966115338314638117750484126335257069278825107817192244340211982325822669342895446515344097018730833039827373793293503517965510343142004771061911993225464459901350551369242414719261361104127753583198893949032141942221611741040269521441194029674277296650698824617561561558319041052980160756056064873521945597739355262452645880762830940874496672046583163279437657973111881044471252987899410651239374058138483843530545196993769168253517109891414779630761907201903605773567963890767107367597150037176681477870460535000904356062480063757273791009469391402184032293885220166370809845365523786883148458322475770384283284461157899556140797360617679522281836284946553724286580985371459127835837529997716003352725679057598448171862107247059539527765823195839786780101800263444193109247592432816027620997921250445304746099060268203840264611022854550020232278374776163268442983784415728039640646763695751717130304592015473144261553777829532211299759681161440526713715750966829814821072599136898829229567727369079494744491396093975278740987640289412302368983400578308654817312037386371327425667510726238110980102922189173793962466592516201120606218588084852479628587450432769451490684112763679537156567323766587506737447945283072918238140520957298165748979365286592660945602090982997312326008965893020032210761938072598056091274129971325590150718062395173788986574208321750998288350522832069051399590077493835139429217119670492123969958879801144852434106007355422532478356592147805205912844159900730546837020345075124797713796156453275810439137301858574060032532733404265550143849251163776498918785947234410408588140227824952490083107031925378352820109176564239936909820242732158972808246945357550704923652829082069462497108320022420347959836837946448844445024050000499610559249903679741815772212842906552389330294459888515943702193896679329106242372507742986800136520578540501791928708182503456883339123128707663957972354386795700057076149975608487985776628344176332043875586297372445254426967516423763632807582884034290353019333929011323641281429453036695512379808183099878561118938461290923012852541791216297732765230916244571350489657470646140484012111639513890723507873811566279912880393559366478185625705799743099123958898623614044998595431367541682718868680943926512889455727447583687743546939802471648382814172713025438683097362491902285316129458549887437945293006161380744684721017123624214658125885509519819413381453020770413858439429046341911074797175474717487262423025512627980898661118466168193487566462693049203713122813350260565136121409687980755614632929153747018432065386115943273871994790963244701728083020625354686280608476629514036231950001621753413927955545995442683585973316183241379952788616907793325298869707407527488416957383396769477408823914198748497433487738386503537239114769237369989423793809356540830637533792720790385480106313120040080951000360518110164674670012064367173156928677614654197746956875393098337101195297068994483960719617510196547941866407658846119560618720495777581350513015219044947613649412125379059955369538486469278381533907548765757288881196136567104457655856681642711555751548559593823137532369171176547426451376650423589573902229173265194571104702450952757715766099263115964277878416179167609236056986641762494706116028909231731237089223625659287900870936065041606870891563359472976964763705363803544739195982836958052554057731521255643765713809830620715621222471753835558668480743559396787708506734971717402711451457642779737614417501994374728352797109571748252826850972249630917240065679486833829283332943610316259364810870526483202834337478605949841977308855832738362502664565131335392219355645836028472266989092970663270263419264797723585958512867614203062353382930092010726319404549718195038196594950432533455314376203855030625867135409283900931309488134058992322981528444684788865529225293102253950116940815044659592614026885768156658903100948350107739713087023036355452965025251068262213376360860037491770485067292891814351175583156171272296347164546785946388161469953791951775492175361583392175817789065910081993062859405296973333320002276051130374743954071123032284179172177488907189622463356761823719477898926807424967772657537989090615649426324409160330645835962648920732265504782858629450690713215316882351828255985207368357522459130272342174447919990120716766640015516531959895358687673124586002681783864366965287051714547547197751588267644117600996971429579662068457789059153428696153162039824077159278022575042842950657533197229564239346000996156261122230883345839003150498471161396836005929684980079403762402309994436887955886905979766409688090655482024493911364095024918304212044988287287285795449283937093129573836545139819392633702463373011596884383982237618215165013394712059621818506557422612779620823692857234860341741672642685113312626907544243052018750783922267745855576691853543868524040289500230765409153922966969328593218621454321092223655215697557332634084567320768125534094030572871438791581880450023854565013831228679204995827192150567602746861177779490402629694103808795755559571939248734659009793838745323108626151229620217274924834314008207320294171272207996944177898379656882655884178430801121222533937507046466463465014243126374216756050909188982451689965403285172548168215521367601353027770668641861092941416993432004714724646857712964587268696901106374601544291668431289103321764886654191546027609525184594583419981544474860977787034003616635690848716033280012749221116926256604122803074777021345482105607010154514055746876891222630084412645495391120330228761935507881153337125106436494390733206589310604284227098310628500604416288662316398556329625119434925234353303228778148951595321456765729110042589049358463867097327564138453850175598773942778832918243226090824640905736569723453600236544191523269660148708047782678164928219543767297636385483780789379580827722757315568753625283394826736885716116164939463361285960963623783842856817052878982989394359312393215614760751166504405929588649585800354536883699554971695766204169550133862753896576808808952955077222562839406663231439280939536386828052460590101643871670762479784914391298325446235856092430511246416336236848125736493191850650569825345995093601903484740522804046378565201473115578397145398229042329809175670435064510302264785386591546831495827039258403241007266120966483202013435305170141903129045334479634624123989825060074582873229662914858803756668428269391170516127142737318766777212369487405655502138870329116674049414352004036633949101828870544892841596828785864995190368587815832058899474838906984468642758967447053780901839578045856299134565133568654936560778768726748074855997675023014521870649889679208408182994486130061106496585808729891404413885203568396013660592913630612945623745976539382881866008313690479808596654217791616921829967569241271927778953033425709889219034072596065909736372777439170445334853647379687013995316744443560271996825708106560621569838241447351517593900614870836515652369426129092328653560778186764605665499643481984676843777120171320381165708984990999830175550020928869611657717393889187284520314152341821706053028121398247737782178153671520773916617169637350560884434076449302302777843939497354390920596004975746649715527380720981920715105076604945612299384030025614109270769459855741359938441558594952035331999523655498786890365272225029440230044663469253198204718772278540841314520800851540159362735178599368213433547733899804440608963277686271742703740484240904435324219611730505799333013025251488658438406321164633382373963543211197885506802020236986107713701750814339054744172312189509890452343868906941956005021626618063687766486840879925986465955295914589205039602455721117196986968026565196811838991112087624505866410041589598716322275661947534653258596481309913959040276015616386459620433171028096294651843973943588299278840198461355727216395614105456504945381935299704284657519913816954584437967759704110357699515226724850810100656812263450892174216107966035754461815736910056785512371296003725452204039230068373800548895118100345046116842288413184122178090586265649600501655691705668258651677425146389665634331351960563578746117002883672491428636568470449438250767797788764268854983061697002793915674084772966823236003845368623860702884957440802355881925450012276262021414854223182481780051210222386132308930515199847752758027165697120457883139011718165233286394323976911276831690250092056166939897041170716371689211358270780197808580443399462037187285137543891916056647212756582601600181921883570995085389968732579927168476655306055872441738882455659891427326281182672209544330793084146093519254209560736093347475645066631896119348839939208248932869859883165920745433799733827706451277028569049753633333885091650121565372532914504291509418423804569774488051974478716047836579619633581485722269735679147380175721464192802489351976670839901006949078754518676108706495999778420013550381528997472370772089693892467853391633826746170054617169895168691357015044587344882301460737257132852115267135744358655675017938216306217541808643451456942053299969027224545033492738801049783452107284404350800340688085938848962912320427013452849587864431940044450075441681006971795426609333240716591720115725457653597885593863014935218499931212517812035703824464413633872828666861082659742227697158206014763288838432454691100563880386357511952203277296553188485734167434816289342882027614331578016921392156601579764067146064150979789220158031294461436022237930397638772606774850690174436203321377792526590990423756424310649223079582549377265701461798044015800039715125796353719920264126871063608706280182471635952580509048033586107381496677437713193389678955087666968668832738704122820741179104323287347750383943787187031511509298590179136242974762014260098169933830551134434952356080956350623544829267657128569691630270906650599150109351779976869947734070704486323425834406373636130802012018632193361115267630906232885211350336741353019459821137847112730651487201378585258519530429716069046439895455050660398072568386969720248452261500483347772613751323375505267716123192075751340803503660237321086254914816871533982787606735063042966279528786273964011384213169945871819787818155862322159359245611002576622940637257311324876510191642383961035902420642603001689639525689849722762052819525111442875002558162833141186666026109011335451010356373766608524615950115262669268347989787704313818514692093283032988471525757079894139236523112865963836315450092142822760825440677232944398369607598488156222139499649140595487721816259063994055555350206663264447429324482929754140565457962430645390669890464699322409973189234221827420764803557578153657984149783512107001014313650317253919616775267492521638930259445704849337213151845141621209723854242906945321315889341466686591935563109911077979919707200278363533779797166883886473331263979041267214917225014184758039129990265331972032931306189651854572299938841226213612568371257701429397449909747142004466885027338060990076722126698067082596424022291984677362723156778944789036718153114297222606268293883906455309765720960889106495023285488897358590434057656932692800948896990353007815130664368428690990497446174958985898606114542814571604639678563537705265738911941390046917954079379246812071645936654546436067163004994078716879776446553764762607004994317252911284380660664794014986667426428585245014331047598764313568533324918445417515692083069337368083248219716238212173819523500328525282253537484758531189862837313134643826805834138107962337122459256662697984658339418738855569076190657673250043468808004540249716036213391652745034497233378215882450686830779610666924170702216192593632624479239918144558947653176806248170390340860435355459427239757400007790710613828040064669570360933845655136510557844319517263772300315902559985709588701979726708833340386713276098510562470143119196029856197266333717578853469214388401364957318261207792673155145911172393026731205959807058951530194233651152062610438930578853017420618872580917082629450314783343394082250711945642116336890878569047601300573031309596726742878072974424009066410186543698008433545115354311560336402004614573138226220355232430984846502348153456243818868962610125147206296928176194590083809880562383748183295296902251663310348627842548498805639999423301539192847385826942876708683042283820510189087006496241861840840196564911548394624609107493049272034383497821945617739570216537068013105271916670068523063475633958299698121905110360462715757353422817233964299471980323108803524920930986200611949624740644794373949832291758821011778688586615285320512788019436485484054004011640269416971880737644460872963422911812343935790068555083063539927869560862571502411123271542732875977209216294966108917462598799970427769914577789555598540914787921941931889318158900182572336601735671817361726887713383009307057098862633972193566216634967097958152232360289948570662674858790174607858375222556529977845373732298189062208276740532926432832118941971681207790203428282054149361358522373839204262121640193922908506116400465186467462326987405257476549821954416598968643122411175476609296130896432497872014683229184119561218838258458589070110975311357016932009952538039753493175393655566493866790383629875929728529086881043276010779300092607681895787131288457725780934493661285827436296807614715812706810348995077125280267260557782390620329056775192807370575365646200422608084491255693262883107411296041291103879057004507863233931846670313980421785134496449331438260515346917616671679941794894780782614579610488125100691111281133472773436123380274907083606951173201702142027670836472934578653038705242454392279383339351562990461504813811679285679691644360656882128676197084871141030635443262094779600190295962973358504060939430597551159226308785546049414364285198299798818993979245404983835236409826485880868733935090518764970072472027281815090280773012602363947271856993624427817946940305655844141023438271090148558997459240664049363361281502554607846442515095191875230648225317525467254286811576012238045753223675216793066798290576776668103537402370213029786087530355277068953071902700905314728648469795478823635449525600491313207149875206637721553308955943860852030146541098538502110833850385155620030948614450423959242843859873260656771036980507892451598925232258892766600217470764216033641683323751560195957836660012596328756145669227583819244204454357601794640141162818619568154464380182383645210635399573719469931456445446620717049650635592453467166564796925267521447981779246760856264972989491528711309415154952081200485601530176529819438546202407044099494859747604055299534886460022497372877333107753126068892775081237537416510108044931536027750438772940347059839299885298233858216424966932800228183735249243184770464943291869685794026573939721394713993474580431607449925447028566489132211713180452191921168117650184699619092017532460743742764849927173480714229279219712297649004839983360653979730228825949985449968728707258638160424270013437397102058689154662339958553248453605222289756594112513715446005654315216278146975276283035901161743595208353867000318529438625180143582297135578019272722985109251267804625889207648343302138040682043258436776563333522480263015822813708645185575362185283279268294056018779823430097949104121991961344583106214835393660311380389108724518419435324940725293914647098213070909531438891183914489775168186470128220280456093313263092623811530146764580020696300124966475967114430902909012951471260607552354093454544160560211874995724255718424491093824994998301216994422970887599649880946805709918684177333549123492910062457798066668822151686700207525175903647688968303772270543958192877602704489371897234342021567310259903019128900964245030299825766372335956804373453984812051453542252147904011156545489673796821767818058572604295824907422951336435162022370879093459585275243607951797623999982838717438347717489634606043528458404728728914790376059588172532204244299305770373238045920165458679132764072641675193326363149426488184729008194491615954255239865143276204122804560929522122540964076540501458820738226027945532668790115344233244540445911614892209661277577890646670387286264651938586492076034080536829052951616751468776056575214367786268599144581900098008771573525903347540229843918159401668692450700199326394064527317957671168823411140903904265935087776757616752448502106799764077577169893619130925579392618835941484548872121017673099608321415085172341194077112745758222561454641913094085798848291098952407331496487182779542448847381129749511497178217202692181237460585006282247103262126003218984629676447943793663507704791359233639085218339318261975152777223403458922862378529204172545181173614838900009276925870704029383320222356855392707647931246548205313883204095618337089187185054344426890895074457909253054330892117662474701849807505183160100611830743938435211857942116598322855255573413922800439267871457252533184788756724188790052607658105251186863773640948875920932716243927096797750150006093047431331538580898699863210720771427493361046237516012573151310540343954979977273643010087525074513703914624072172750680514788640651127474265308638788161136842933940238980725516393795161055056716560917098426446717598356678888492335528025475267915855046883238614138412500525528920695325670861451467922474030977744619278513286844241428624460211647754754396854981602888367972281316253419044675352848865161932167412345204062111405032513177166317979091575444753709003107434227986441232956306149710037686719545915762341001295769264423369159386874458291672874602249402939873629168600786073796986282441345028750583436792263426792505797747507471950374386606269316884644145843848220865462418364398305707219217114386330446214788789600234878727695018622279941615616607754280811737474600087985355704998756974795528152090309545951369094343596332940501949851338371698493776916816105851167167176581822725776904740946937435732312158320648923853305452316566158175569660037441945769048938586555535247517713872983502290265230920115253331018085132431556419956542202990802689009068105559515447750689524317950044808701663564252955515652543224970059833224379431402567989937356388965172854367377463644338915341476117686454741096606563092643814073932489386775591575743034840242012965570977015951659920117250507055400692633795797562120137743294758777226407845680359141446843588384887839361600122667858610911615974279369373372108116082132719916222612365260176834777795746528652481448037416523675969937065038548992823103823679536183412630813669314660761757116540373497632605991926950701892777523537805944457568415947337576422379320083680267278564423317550211367269997089836868395360917808556866936870135602503575957179389021764527473209284713092662577427964135361956897841002676610627681329419453855749538433668383297312097404351748596141560752342667107529319787464729866040082402968945097934598405049887510675696577576559614341846564911355103475954831054823355115082955134204299898113957734273203180639039947193835869242456800390303879166852979834509935379157512145966317911640120508250710703733218169663207105083670193092234778158028135892723606100078758909059495249859494970375840367414963675592638344427654292751544634378554705541523906285543926983947880249767262376623705296512395999384599095325696412409657821401690650715870041680762069838229269581837894040066795797295103359813168193390188682155681091473812435289239615257814650095690788207519492189522062116380438824566797484779306063872930887384088389597926367196714903585825449814570833108258719216191837279988974310410704219952431940382362798464356227738993700799090671042698888390610305329966482946547493342690549631197329028190207259568398292152494998108188019729995716012016300637875844053788579987173091406154598143970121475795712684810836385718653694915600342977078232374334746069114293448486274404706525799299002363722448973684188744105591427504871225718074146591580836116253020719532030628375036814263191715637118861078007535274846784174287913257135519617934069616645042246462389004148204825008519249225698102063025787846428546412822753274643938456898067919578890194615078806744639763714789989405611903361287625436997339370846155343287073285976931791872993439233417641799692268997585108690736326794494621022118131116625258997819512714134496386862376834592763188766759753541808264397314913314625252759361884938928936744621805911287715009979055080664606516758508777110358777236368166344619212653098483227854895385972373538446910667645910736413848821458619670590527576861762137409221595390476984680602657072772208174758762779147271225666918270983157791631651744402260486603779847131455487629372451472933465769073237687145072842768813082029077723942242365325528121042994218474538688001296998966287485851813647997601508854021600890129589457122982632712728546632387830501431701959052828050907685745811567909807879249011389014846089964227757391913652421873050973199242869715514438652190372584804812428747395529246631659041600670954604224520231855699622728564010155321651922123278768365535917360201483589848258183076668168902242034476686608019416847492956940185698702702542936142466131818657023866938847206553989773579805001931921116535873538574358002234067228549776908865565694787120681242378018381600628674346447790903808901125625047510313917296926161101030405900156969320149870202321111565416465358606792651288767335502779388312079329018975966290293657413210827342291435095928065402823484884960485758513983850616653299836272312689023918374010514599921948292710848521769825407992949623401230321244019187511155921611127099573328964143820099993193524735224669631434593987030939416532119936596471733725964042234864406355809183046616207900454458284975495074831490804407918493679467362661003067643141040999823510343908818813295714928359884672979850396938083514972481588948185634372864502298168879413152091327973010626559669510510229324271007421219829470152440494690865228624013176312068868301133727325702973300430217741289007999058253277052060880356426239362129213678064799375161348752435819217160791748091219083891478750992811329985843836604568488515884821250437640930565737203078235728777278080574723863511928090192977568994546023149976707082208674931520085811383236544134862833905047626442180772317925448115435735652629004086954781256266888061625779024813200994690873248919548216906646002814890165990494467132430204683174825139008306404919729631579017110375017200712191833917420840831002607581563533131710646657670162813618326005391724934999224429439060646344290490144802400209756450766263898023646778351346194271099465427452200469643848847892697350517553053415451092191315544834735784593867051622179499959029816621051530576202229320852867895574094802741917261537507253741762147372327416284345299412980988076007698100995819734674164411400031732300830354364915422485488174894215666909528308224717460216206954492133804058816079443702612570524054235211311440348504567521731661213112575622694689738022664151892032721875779092311378994401530019882804129990275413102135012900020053949688541817867828250427138980963017423113256087151362304471144858842605912587544757054285151040585721364781391101760930852127816048553110368033170285360230687137016669960566220703311977515902763284297914375199706960882965619654081403766580823212825308784307038018003106450128190796163665785853984461411925617423310427352995810038838375619164148325626587989768149190793479697186683505122112437110312454384145053039570834058093272891548061622161370462981252676957489663588545962012697103953635519674867983184339191480910320626071865144835054717848578476159030249115640079493547673485163703914296126543406186328510004261137946853719524575216274050538978781961935659014372324543724305279653538644444928022414619629879472231311664149101739626995995411517796245244841368952236115071858716196521212472615576506807224178326659223850813133576384729911990051746723888878361362825350223256817900325406626780348897697511821934774842884401944275816836981638348672258684431157097500381280019146146184511153153052496236605900595711360305937895614788612506433949685916857612148625454401119942181321538592798709355615108191062340184136307787657435923343064868377651108314609875007491266083245773985513461472038684316842981159713822621564493055548739188247210153905442203608533888951196692561161968618851266895719771863666442960946714241084514264947806925305147469433073280817048018441278491191238664673630253935059655078064447352824991514679822901504906426248689270883082959509076627096538093315384020886042885420551822543287904335221588249602399478488079037430292226749888423459161017055694687071543931676172238403973001029728568563054278119115291101256917884695989238642342881720080100250414514025725781941752132429228981063722060893938511774006913266352784109757334042713433735775485357895555087238289677799387062447464770526849360897130655378843920565042908053780182709457500143821079402240387204060155881202781347983257398381429515656430688940835192464581512418850305440222525034602313100747310290035551221497844092712725398907116861547524161495883081723740080025682901366337999384186781541735110150577243107968645544679415477118905940904721811788713880172501551876671268749609403065065393486358308468656968764759309985293728244082137991486457116922020189453975584720225572544282291300676173795462269757304203586890575183691921639245807061191999431532530858216101107954716130877714165391968763017561559494857220135769590977826072171435771577622506376430281671228036561009311359873085884058793081432811494010326524298805345839824776853705277017121794884266698251056409486029577165135492067700076692348463708897965958630777893520815636545018038704073400086669673266950346417123648189943567495024794023183784337316118555173385776408939830783018744128394408118775424218826529528610931509651451923663165557646921829479695739047907003165341600536592082289925231331608539419357517270504722367000296458209093813777561492146738287273307380613898019841227934439989588893758252679231097861836884075169698936427326877780678657919665020108862511256927378548498616448556444357568483616666223699580151368913149378302634968785200645142941600632358225112783011351302692977823051763402859804264088027736208556672263688368951541639159576024638647314581863596437747473177712860976671535819427579582461206068065025554618691237921761125767820957308849417957401316556215510635238304583673443494215861425772657680725692541443742306020834965255751967148296327983453186669846267461595302461930631080587871764573691039310302269115457510791750382105893792927737665488670081775569559377863423480103064039369496643709541843624833016928541485825663987900388780867660002692517880493287345372355486293406223132508163996149767785121150146847476975792295560059866419533042368739136626390769812119659781076768053888578421593817881291088656580721412404081058931026677458820313043452788084208185528593860897729164854312401726795724504637558162964918363682467652297956140927129209331936782214794176010655402049174557548428155782785147999217495264553475437081476383347541659879937049318799291303659959794382545136626185426410802274479354805927725906652141645507395217403384089848829414749181394085020628124345023826336618581938849929096999427780962879601313967497431980742033155767347659751717684547405112173688401389506930381801282985804473311843081896438715076098456890403916005271107924098093251054344174899711532920300253128605248093725119169352030394520911364923065697272102654915075844556046941968763939482733864690449216712501713182353003639273618682304356741248566240498343828302625634969071794927330525364443115336866928816162791132070434904568790050673369916869957027952509457097807056437825765317933718002314136175559149198330093724815779008817173645683033906499108380765065292050124648638705806124204883051722730187933362347978815522310703360994111173504017696663832647311056441349772249515606542364062950013506155221266053286769236819619356022625021379686740633223893443038687297839526205377379305787178999059937194659774766568862755440250252352916623921693770973156738795942826007660092843988166631211624328322566596267964630763952209618760298663002197720658721585551377999541942394013447417808402591038834035842109838033004818150194317484819684449129863860758206272874058103076960269794929278296622098959366171088395394535378145413982332136291670975774077542965583894866380165306642961880545170545519468671154862662816972986439360580560238119332735862936535391616918723853133682059277805025963300543176779085213677847830499969434527578013465997208279363650636852177288483099730773665832579318876567034313071632323473397763504544953745982778653831048129983875609264577671032831555775197936938175230666414074321307507287282423400105107062213151884856915486574363777251648567284728530497356143213248425484814283768736460897497514540480071517752907167471044324583685083449815044604453418677910901247026900896529026453392259810731755008739700122658182135997260982499928929326761091613760911944444248568706256646886245097439756076048132069993812510198030736666038689847131062531020159646148389821647488607731704681354544765688898925878144425677434621059635791334444640436593625292360225452136721675383158292603709335134403648891405613105494341309613212784497989685067284783761796474568175478034096037309870472235734128982110045981204127783710330615016685852118070151852697289258876826652703911176590128281550093041154277645008489271913989826848448652975951735473440256046901510513575719688121591467700902825414574948069308589221552148992880922218668941245050657639812247389864869318562958484388842174421708821382672460668682490617463742346609103910815845442970219850165812403750305782473354639547890962636699633988859705583725029232944424164759307128901952010959951993498497069859551482878501142314690542112430234865107327622493051626734568926295910945949090431692882466612119784098453456572295867863055264621943816683374095038925762503342304492141755454154664968452448325817084933293596085451486845695199241497929156717334755488227263759351366650488269560047802623884806562834792307630273471720693933817728319674697287103975716541624285792472145876371031319535959502599306344726039913018129422197177011726220468188422983852052652131673541347772977912620565726066136682950496210391059989710035256555236575390044838303420813307203730411842525785332485916497700968494144203460892551490676669562676924290186470334224845708130234277582345680836379427695743723739908583693974684400050812979534634922014137107839995930961580758440269501011388272205135392035205005415820584882670493287519631421898074553839381465039074131932252106697951512896620336572018435945807360655814455105557833892676608427041092180793352582636232287964002709847393897517845848093129710366186308535176022125850728237156006689889577309132748663598325816888561644142073328502129394523918042938112963771262434052066034179232077351218245037198600034320903448381650563445232274086590241685333005227919159166593601999067173353814365799394385432100233126741774394558032397176979332838271104993939022691621214146966219464940280709604784801911159383154175456624111548262368931878053094542472852632306658367898477945122669624857714500286458738748795672213901696184957505583584104670647654926712506560431724419216594939170941782802665778021717933093669772353994460037778741606324347012474971747399500690707430472747071935397806179525072866061208498283855603431632951745286334454588702203358871103386935034976947773192146838049849561378187060193927519690596795079942569511300249720856063704991520811964764028836271409415397975136667743829147749074712018287015060359254303263764382072108204798241991117686411035206755815613088333031088970194463654721089106190072370520819853872803936085062009685479883141333960227781869788059816863155657041961679228645079439024361321535188562069083743550306336567505946665752434139075279722002113752844687281940149045152448523015890939794828050285808825087961208354748022706427732467601480953011712632902725635534480694156174961145091438527075606154401856870192516659862560589133464625738023166759683114592631821331769093785109735925546320157740782695377099558022244406856241704669144589822438449908289133849287555496561254962597479406639633255515852127711000941826959594508859588315611644305091655536288633010855087657711474531131462667039153832553802880825781213862006152681584446007985159393121803441615213992532795041200715612433648802129397802730696489150129938303461864034311074830882639430239346686779203293502866515782429782324491446029379769166791877083251193464996309100210876105287273003025470303997634678893889940646626027777089292084685170308471281395459659946963080808678056330970002157947205258988410863894695110709824021170723605820712956321762179234313595055055371792909751936399251740574918775445578006657137847984067952727342005384832660849013981605362482844941936217172523485533052032587982761983178944035182937839003815116491954167018976819317761765967647581514628596187040238578314749245505819773704528437485056381842830779908785737127172319221135561438388353940526190910977469339113526448184153154116115280630902502037928926739174349351630597499111129704784179458857856730005820628647107303910014648596348210801883939465668826421606414173541854694053023452290037298062338537588641213728263003482884239979034096110755763434846033213349091663540706905443812704838071251686968208619765306898116247986546149021267208334577332710404694001070756646247522759987161847537688891720945173142140444685257998516881966411672250683305589752238831128703057512288487725578779547933295258216853765979672227223814664181947650612404620554883509638991509351887325683522777996918349419986964085015142933810109634085982669068842031596896488179154124213179628839649071006815496842311773675409381875844591831667043952482957440655216206374097091638680709413083911893896328118637586047818450642767252422098465343949374862506590809592419176723162000169814300625198375374022850759450968314600399647055584689802332667711050354787082029343378615960989010141795232698896543848819461794643749803399676452068330500097309992510722089566228841849631218107608124020052503940698989266042906499894460638283921212143337590141057534993300648865192870584735676921249034778059210199312118722034048458952730459391812063044149636895015696721546066351145543340589020506924900374250203989793802292172126983618293369339638169287567833383605096620119614851845137493154736048607582081415284135565373911597319691883663530389431016879304454765151724879045978162452623951352515900860396707791474291042933583708962553865222872970128373396479527868440538816324597125227376538452225684674223046865510430974439452242584373599500283959006035580991813011283141390367722155810578904734884264963717751745142490668003299972846082936559661283281905024323499959651532686318826056788406947804840041606001138693784442971668944192524569709197948509921398442996408398514759251018493429670232557861156916149124870203868897545101993517098286720648595137827698715947352861588210802038875043243285078521253490290214949893103557945540878362677454362136153432571158203269702246166690039934564817633407080766145381540512654553634545112289871794970009785346427100042201379030950117353800436620272341662951825906322212249067576987539317527848616053308565442502650604104672731697332271623927542183111826075871415904499062160937356003882958453321051276184378442578411201389172526122934250368482918067163556512859924025172305355012263960208953077471157351462353092015424996725594456434094428286420568731093186864769850025063899735821631383592316466524558627008654404864839701141348709722751112719615644564431890849010396478394397439327774215681298198576239769833267411938820430005529449773925295533315409000083249503686399224200913823776252962219419522812791464327471529512273025100561579036821677360095500663188692962878942197844438280337431703770792957208843269141775158455861047567156509779582397916414783001680313126794096727281966317793650910326320407649117201207389310312023085820428848586713584610561399726335056052544601861845056845365968411471725677492537599425291449839751815137053045416906669289074667368957428610836854037242788097108986056246243411220579279550455791557546292697410426551155948729431817095092972276405472198857357618060449440712182034991008095001920809791448182767425900588459156470447408642933857939397140638794566838945404541725320097949856464318176765747969104055867874400613380992071568964259178338795519944812241002594910630306578258176179840750213194150054131332768111890653238392685877447372405476203311048679122507613002758610793252580058391149373476892142537815648224172189621252015295216204850282036068407828687675517658488047913193238525143404851569433908205093720710910154773222280595929564488862218104664838935692149871210933401390835580045469091894792615981463931019238270178865653725296227169542904736703177223187217127774957078246500193084508195707662936482671136080911503440493440655922283522746111853047902691680168189352217584888789620275556153659405909396302719464125700769889741755355517965663970219392065817839382438225558616232924941687572207843311994326759866118045082990190115395344758728009741772105582208708502800702755742327149482959198855498595401823600963907723309894273839596251683795948304395724620110058259300687973645945078478427588240898023846174459019109927294032311457353379411161474892018126526003775128859526369632458539982145047343622450737652011739263791736319740226317269158992702870355928962927453015239023379482040573731205332266009457811333686452084196888425724413066440052534678462560910942445991105112066352829048057223970294996364252292910596386503457808775818841645872074299939698931285237803557439761723147964545733906028558207004908266447489773550701851521595543390881346043681736011280947482360462629996164091545943177137643368158913230779463839365626073259747978353291780327225604430798262605506635543148446586851177026596433723466702869140701020588361871826632802697163490236747468742177335093097976379768808560996906606743015586982427384588917426923163284186456088008621589784683276582184291494365873766535081532427134353758372227638564658876327231160087204616544696073363571803135386014332941204169163786836273787981693080111580177884638050256768390710956513133624124451243814397999115484441697814001715632831897623519002225334976775755413155982353752403985948483945175941270075428478940541925597865968231862476851065014468829014250221527665820322204900405294146543444879348186399138578397407549796968665599026373191298598845604904645367331696025954814018688610306666943826096197751996465020336586663329490430257759288540161344416652772716180414034127877294085728137495650659175751064828934360835384724856082520265255513323508968635475191956152074506694711019864429270475428084012418947129848431174553294817075414853545360706756751728561754959810949215876597860621343440180555859293686669327607903792053099398648297157407871253235912007596857003800762442967392897503216375270836549497029565225613590522054629414903192561901108288914942167928751277487421573517585295260726059828634278591313885550532113683092466712523363337419685769246665529904945850009023190796585561226474030248043972433262576414270243285457030323481087637563530339210813877101589725883740369138407512265610680820655759791853271980924455385023546748613727035192906223770187523331973143775473687405832503191942168874021110505657981135095483551987833430993047372372950836082675230740738985847717404137492879999134749686659413792619137444442418378619014163299526335828676744810597474086908580738242251123801811656077563465083225319982983922380207988921507906172394366109349969588901376233350395494896033467313444180047064388609433918108614930385097659707381129379216444107581174802113082653194554201447600705795122440198197540056713952160476247113218391157762299656532675478066227705552148126123719539925830772003112958498140708014664261747274744417907796240932430753244714441107057523182158138751319653726199998696783656512947402456800479336135150802984604374329025477565795369776264739385616829361105780022488085689799003855077522933322542368697079353131263890252578085376131446716627164013382558275093748998144085872571062879050023250582246586616410498158679694754559416918577254294734626844072965828360638451222839730641379230919483364518762171681851427887200351905393842165139047132061973749638510742663971585103477139922864649927923916871049277423167819419451141229189725565428331513205529799862403675315999012976320782305177306222067531365736111542951770542481485552472877264908331178778449068845971780318945228565307561801772138841517799263567496763248123412405250464136542459368302198997176242610631244885577410824991375526525334449023014990692095068736340646499961896134603603872762790278133488189909976070772025345529274157681693745499001396425662956552918967750451039950102462567131547774988428753185870221269298382766916400527034518951084086403188796334979072021724600068219347279376898826666262103781383928608557677129738230971568527878048277301243998262125722126256673644200074227921367219401404856422394935115000092376670802667174021785105872088230846986289649972431973256774513309215036536217931212940174848856509244963749551198224984287643488890233224404888340833178671334475032081249683164870144905141747526033237052877842940175533304500085499523047736715467903162326491083193986742466444591615534299032918348347865806036547415825705998783952616284844156854865619486993776010364641522778731725985867806718653002970806429242675445381955883486205974934267914540033289977093631710766074518376597155907741516998619521759831969566076229843649001382576001603824694998956803370886096678418249222943752561953308378346505413091955289347379192115878039443754926609220874249215840521976307400370778433593285114439439019061311230583571700645785017911950336370139159199177734247450940131129802272294771406524655254793296215739565049216879919829810953008242426813171444849711368869889784761392161161360568387967701582029474350064138376164509152814040474046174155554722453120618908416415596310846340217418383734065210659901944479467811923488617501356250857298359001379576734081964082954478377838443785014283353206315578930603999980075609583883578253513518521310393999807304531066511481329428330209110693162716249915010911097117986222639004832872774016946459263534558610269805937149798714994359136647155136676357053839656523522811245117563121744005213076112323451695482874840651511986688461937090318928612654810192495285182147197688983823032491211051786073017644831097059190470262220436935467565228874215662827681075866358750568425628787283530679220501462130781983099722340826748573768409121467596286564262516595950268669637037639351710822813928278527944321536643876980034940729373276793970544581986690005883985882360515999215612079455400873446891245561193774386199186947531551262575649508569467297769141511274574945782995068085193347754558369913173844580943222258334570508068745505728130102115727146304498240111667653367555524858944542865345491714014020283201088037035446912323209904282598292640967111661049544421096217539894933802537053289645018925376192630733052419296749055875821147111151427271021145431336960177375339061897894622190579805612349467474093150510800530995122274380584829765320130617825854030639589443684113351628809394530182442160508709243644522684220781419904149829573777688008030846285716409853368908204035426889957767348238459286012114830222823812807860464180272400399906351233691807133408822902365343561990618063657617975275164448592162255626993014211448045836544248133863085152646005701161207664053723507843459248856152620111225714035687133367125496305075925948208885537850256305154891284500122404908374808223646056903955811256633949306254480054624055640583894787479099845601903687417084354871052356907829901186178842862821023926644685523195520736026755832036485427354187158168578800367224494963025837845462567181885782031077529934505485778829057038261931407178005614100825418318272168379394374087206386728416689354393292607901118002600975123220372510462184379565793526143985247657720315892692065084611447344096522184260961094208459251170111123789668469702122213091176554487304374167834176699316559588659116574200941956249312143907133569549922543017546833839662742234302750536282563573308710816453800161995514794898694063872782551639273707123357552685752904221541385818078026224092982287935793501983729304888217529262061181604775529569314128471665068943744287293761063259682700977720322308283652336215936968855593423308497123516198111857622973068580366763796613427879762247067889558113206342103662968136806440896568003590056719594392019208244068666024086705774847040013001421032854877796565361097245780975598783741346200776696191777117556854331341771401519988650075172527158513042774019408564353787088359341574751014262076590984443444087737815207405635899793992390309041946746215348911669804825121424530382422808357471234141011539437747005633109860346379660110836711191661488575367264400550950805502453874364213339007840112502086262987265885629751439516139090919339873908989005681793669468638271129962956890645569247637591769577715168976267858301589536077440387693308868318567994929403141488910308510689875896869138685376775590979093504983803990974904605358995820411142767024051926906857854327835677486516425955186227407620755267824985530289883439772155103365111281775849111525495196025789600184612129760037354385222737896372739500556346444411557280133707681486882854284037833569106805238547730509744908378278456881741027797454765486876469222685839463872081441577446755014727294246004154905460969651528730792189932105429725983058549990523053539253977639936294740385468891066345899977911079310615180468101260589585089789083078408330221204501763131345633545131039894492210099150785880294113809876227859077693466060072152494162186948562550012895242747899202300361121865233025615265468670700076016094668936038182498288684918693541005005449356279264697609620351776146882445311885861891146753662828099741640264271604011267816735342394929040063321039142460225367619190153668608554171635789891336246949677371799056190751794474097947371113050781774162278405722697867788592300761475200154201174391337181223021630037494582500234482062296789208100888855398509367476948531829668448947177767067588275454956300254828552666953319896733879136329597351804788970038067873523278015557549551722087776464787875882924676550212020280825880905190484756148016343452337847952391901863983795756711797536047619402411498704776221500615480350926376777135688026060195257940142175981587339943221237437795299183058659823250589393391748280849681299468983262713809886592720564962855988888683157041189946590401017703300856198900832769881015654153440845602065379795701365927151211721804580587023069971908009217608212739670101716731131768396194885448906076402602013483606037974905581308662540429268398480371457951946650067978962588783311191125952084192212951278254573122551491950303660957792620402826766856956297970986355271074027495432164067664604991692494091175361734857101984591759902007052935635284773944587885021026675457270468318434287776654014794769356231226684377159358144779422837141962833741844162922654175311436016800271085244942614890112956128120041522392249985784894448312597172465985657222241991832484992250518813376587779901625792568579565858807030967788958730198118967884904351000178005938095853151770315628240024204776619904103924653666981657704018609421495629330811873232080334826451330898989572266355400928445876898131477864686951775305616087757682544076017110123591107644078507963428172246494129259364507664354622681623885794914905236026514641463688794399434813035868529182946387422485732526351574325437059901636354686470863258002938445898273103313043156340044375433360228062921694024282269476756586576715150347097413076906604811523770540477728411963280986233324904996176340862560028043707648363827480613251123770779069113347755190255206850103163099595894555259724093087716626154052980275774217183008037388867384931116111677782484942896053515084148058965033551802045831273977984974812251057932107802277506927259729360122204219429455102362181433608610021029277593893588608135614769534014367589701981064366523842460560902176303839907975916212454209534139888043138635306638704100613717122993344350148474916834464989002899321140026413425654644137685644091869542002091549983137606000437645164726329524031158982168218764650989859567609997530635140548811155645405799062765623406743447170264064148771520243504494140162874995556653999573627547454429050754044350903680478323881068463215408006685976992124384112119708187374433225102492842850913229943255278601528095710617818609107121847986135776287599180889702860433850289580603958777569589337776503502847455852974306174973155191961838323553740627113686952999845934390725199185812155249314093027975179133622954533098804787716009824405095123870358429733700615431728648834126312101234503186603457763619523223737484452335928480684474702047908873193556490880830560944777644968025304822927624156556213110517582885124194165135780337933420471083473500761565747086891346306599724351361268505528960899265807771494470061786487628136381515879961200594546777767367539796568332046718641841157295923711769795213113905349637423211924414769278687641946299532871292405951226468299907121850075722371714968970969290525463225316076225533853194918731110203134345338935049023552072574356654474323563770418266481172473281439716289936171753819836454388651765819821877952111815995545159872229390801540464750530230330680997680654672784991989049103567511410462082784920060626444092380125591950516256773040629977183165083559927194381766482002178147560345473616599106683013173652458647547708076514067927717279781130355992801036641304228531250634144361431179891283622340187887075595147185509292862788120576449628270742692632199792752224374578956042638109008705399230133692989767471000687239618098259938847353347059600356077425815030343476734793679738402844694822991372308891056392226348793588532637340702274428983929263606155948587865961212212058858450104331409014174819934077790793091047098468581877946335770685235992221618687798700693655623417462568234783347481225679541146734349038762860480788272858243588888523622684692282094350984829864356572571081925558468424455932379729536326837323861530903151389268428034083260553368280871540571538505349163249274152246362305535368694456259783536828894556264144727708533309152705442839884579600980012901680724258343659445471787897261736191473101967754684380976733614465161858479339032529180285068357808344700247394108244651179022225619361809087074077714004597858939506607732092129313522172475964375377723864403820194927009736735662855665341273336283033691340362272078325846521190948165785775182729520697733600274018778714336508792754900440333395773141671795901268920891758829888662083675801964858856182582198341240797520384913690855211209471724176836869752639816493324786364930318358242140797931078418208097819086627472765407361079960581442958650706996924773190662672837283915666629234987054244465136823828319426429315163043699594070111148335741646261495789206460110626220646453273893598868839540927084336262279086929262564385770500036427936490320772334237452106519275367337366719223421494156762688676774176471274265294669476093231941839035207468492791627610154759714523442488132102708339918536114443843077685449301198660333892253810266504197101935412937845564801187511144628613421405192017715751232601514246144594424083620723812841792806767127916154258739451995158596335439930130514656892207899319047390859957380169448422662394860022179481432004797138683906244155231635541434042843650560542374468639423932668265540522877891959514451869061499540641485379057103096334279848428844996855301527820604469491200593700247645868891493992337444689377069713381973595774483162566227041558789272448124681159700693703734953022024202690798710514500845144951655370407530835726853045112482736380166907230740723537910265009319120937691291504596278536982884857202140160273516601686087235235998225394334738726123079425937696306186938360823072055133499481113825184075407643592900996735496662015370016371149784177018636755538553296648070078855245997954958004275893439064839738718557363587566586815209595209676225165330164593567202070888495414960575853323852470554691813375278339647773431402690255655471464459963890659125967478996462682382681841900516842683152675021975591285252058237614759023457811308294940320554399771760785743791787066417011373663563331117611476383339023317657725688511438653701133694724343383348333590606145487588095841375965045767240694943743739353997540541394752822865811755685731170022839745581216622700864934012864727726032688836744076954623796633475797035775466673768558825595770089578904610755729220061509312668130875660734581029717452721536922499058801016957323846974442181233477100160851500638797704847180489529356357943146314195339737407961228403797426000703186633575431750196202028012405805247464813115588962563572971954898006612566101543947406702177149933664496145520639861872914589846369753302313150123367503218984228344998797521634218052499981595822253553947645521376195183299986702936327289371762069547940311068435018105602712096257560100277583626955892849954907346281000119350165053161152131804798060487161267553158678531164942996777092047729836015507296351066442856576478818270808888025005461884793645262673207530092002355366427905172145903541139917811544758113431995253770694421855172726314300162022493334746412126949878824465145953323009570292199433353363727874897898438807189533968480670491812393778536396245744842576480098004365587841759175928969214403643454791546544422349419575092218266133829547628351087483077856036676278882276928277845688672040910892259265920631133182370768271393460182126804725087998420180741000724800702651072302213282299654416543213935707474079873795981863289043330158011551308770210312769013667274832469753769368666674038028284386912127900373977198306706930753161129203720811120679424134479827250238279702552036144374394631021576303490138690086775490783759910482904666924779789739458337678384165682718275559972331240266427039338668691192483278243716495697084297169399761220584182255302465036574824768057179721762205238755572824499434562676378911643401740884425145710204068401239022871547028876320056632682824616801511689753770734562028634435390744613978170949644267195244239384775985020697258000602902107087249809652420619197297049700292194371752325301796847661235385171379536328324484970958646949598923745760864137059975501212164685700040739846776320802286142110882637339167415478663049079927747244338436470122807480752463112034340028168939969529857103967131665169312829280061707531323000218130419553085139363901733179628606877333500435965139198185989750132894054877028356380609196157436629508801257133570629632047152581068028358520101093655230177838177838011887567912796549054942358773019914512051856599783566622699754961107567115510506976935386933105596063852414943641582360811048878693707380310240149229282096788496670564265333020802971486195078375799822409520170196207782971713918097339591755830933506352095452407825262355979624722598228497716550802120492187534826582202223299033983136837576950873477504207554684179752765473818970564650887943288726178311800237624347048495812089247127990377135223776470159458826728838165525038533714991059456696196014619421576082367976003097448945006728822366430052405460036643518642554237494210951594897674734796454263643979506612128815065590678573761320632533487193675618196081723602591497239025832989880399989116774213317064324781732387379056366511611012252281628876093944184481576349541749401700428031983000895069175231357738031773959113780670014406179770369172975161826466395693110708357682974104548221319546843985216534724227673841694950185354182733991658806549318509242711475788999075735928081260411640948290249142759500823797609251299213616528367585481950206576302753526954076014706177420227963652603329678679013599476210946806977075298854835034522961259762171255960763706661089989766728840218705860371911019347182004068832923101505374658257179829564088259860749783450655106605221323660097792698275062262298533650149052372026479815559069450037904338739455652916014883206159685819302679085050275184474950214597544277984600714598754668042234031297291121546862554203870265169276196955245658827429031130977321066131814636077572693183455621203437692586490107541457626775622317254048395939696552977659952923031844723849738251245523148217524973754318755148938485747918088344466423992770386978847169109529315616784183337083317171063467664686511029225636470180638959078387900982451413464434582708670341635036210067752380062792119941615606440771653848786474472604553547011927563056033853870679282356371633121427257078511170420347085734128822633933603643345730190464365396094336551606038645043061841065374140740067614100751086347966954065470321001637983002959135036731285655552338774759079172426281925402291995017160341070314181998447329166737887897707999773431663528156300083589841438596900654405915332874237679738788238930791987807122529307998999710367847095943925617483653946297202409905648414788414952081995907853479802871925563560450488553573402363755691746108914360553148640361505693164813066728676891686751543838241901281419129089987847136276195420941914814129986645824413344931560643053858761019426141747741937417714734053463532672561930830517957429323578223666788852419771351140910862481092444500110781866428926324109267561860019296794995031552058081536496669119795375529574650975600400860781843561822738902267209881341034823696357303826638641561192197671034413090257377451078039900915394151641102633784036524474761650315416006837576771263369093549762164878542520228476930102863300794499449706277510052481590584497168302946024567026682297279555055365324989364038586749890986552622413428971005257835159953914966382809575821823135793733703864066353128757940455334895673372790789446538199254926237327530612304492862183108964276722444957638990214019284814762460545605248749466972223907650620628391661309506589318391450903882221946873122476711417191212993167101333608749456738076031172078812199898836933844720500105832640297436774225912119892908559258961306556981217592591367852022838899634511889301786979092319724697623290962793585152385150187313385768283846247869146017307292107897577888774873528269168179769158626343324456988428281319376653753436145068374239152452169707501735338866430182457482182378414209262696211497099760503569047700057123958631533707856128504414894501339401238914898484717325621029701143731155080322229323965937847081399539745785691061077870543913299297632647073424790004463627247997318514033939799808764641827506020489423153539806046532497822789476719446677686241256072045930640651514880078717363769820080802258073737002674792757221658227988562522613528737254138448224770774935722884888063411743918049855054059983322420479684751317500183068163643078265068770138270147827874273646978924809033918590082369275944185425441049547798075015884644773606292813979351033909817783801600903637685599080260821158378838190488575927098087811595431114325347372848245595650889440127398782755489660368490862002410144059662249056035222390539700129771883689863150761632477749550163630190237052841106796876384705482712213998184202014173916343358216931409391683730247003705782702824257666852589398727558190591490078103200183246131932886551321535024432160349339978901656280297620674869722602782559862913127036116091175744368735734381292616437363066499621253489237752774647947340461523872594083737227026053889904492988967454618015344803625974804678464537369899276468644727876863990505309431712441110256247520971799292051531820622374632540911117115413211648360785993500018794039191334978356540732299734034405617880741103574825368806753583524573561959106261698786794995936693951107061664563382043718333031675546912675048428408457022934723179990508564513070097421445205292182287805145390686503858841941101882842736789732161072055816879935030231136414887932664157395891574366630239957208965682049138925702259907512821291568424904108200077377824926146538187473323036729663151369009362122747767206263189561119365186895380580786268481212017765816383722477435984012308656890078080227975913521277010803262358987438103375785061068069452083443953789670505652745565668876648132062250589495380165774687060554540882613435265243930759055658111681620369757018122451781306227835076451134583100982992274287946462781863347426551183746462935260335506924817093443992254448660175603446492670880438199426125174444771583306017775831188021575830494237312589744802655425603442530992899212342989277532609785922811760098822773811806086706531478673011480892581956596484463832293695034045736193732972644915944075715306267989808411174575998391207127127179695699061756784184492797414850153940447445721750736149223876642174193744129175120474841210754978294998512324900549158099369609616719981297173703060906271604389147338323378590878287254341917438038006621621274480822189977561060008464421600740937615311847275650810260045072795814516919719970859774283745210232519142875067015369128239964049833837217765812889221548123152931262855871505850542750302204538943281939840103546874094586232597077424606390380898639596257894919231741041221832968981743339296803576327005010548909223387615202454007809002123543647271339064996633249724061064422962307727680039783658076608120827182545509550732541236812098821528551041964464776699789829858450455531604536676253570010996906894738729037785589303498695915124987783459415483999509869780830884723437350639859387155571187930286288989619705236718339369516099541053338444241193457062949459282296555193022103717361382016921613472764911542907362314939860475408077773638937101226485679819898395466586294370177018073509769092792386842369330685005544869903823367547895069684287910593004069096299819016336512650539506340978719954670568455176606693522592443751023135670362939777901820171071176571672491461330003921185376022513635169585056120751565494698723653163050975684115468835647725990146819857390751239031276974992590624309936402786535072787950482459920837438227868568565830634251585201756617816969318524759813162042555905980958913585573794423540709821773554196545931012608745922226367449006893514721197276159252131552686581314517188892569014757088886537042692440837828761239548407206442440497063114604275030503000777138668832926016010610636050100103533076978128214211394844197951891711636989954052620992438155949248061429829374411018614566133894598217224801530957622156602888965569869094369435909180750865295448933939415309205544873100491459252454417349560368251981607130427944211604782773428324639720940643464221825734812537729627519359732856745734462971480520495829302690514763970744607337473364812628479569740271721364506889347832155477461344254246652150184262963522796865468969677486569266400191689397021700606774002765927766676492862646156994354106845358815735192756915273803301583410924628118515626296607954275461174449506073858157557526876265327041781771778469608047660887908506978463634602616041157177909031557979543097563364379892239379192434087220196327812589781699148266487242507311983624433959091296597376522124647412234594490690144429461607861592685951202135483409633793096237455789158905454660338056183444550497271765350192843261141698056842221800002215400014064170567787322635707158049835834131521084041958264666897157983444888020835063087638846704067435228561574468722093200076462677168974064569340114618681853000022239890419560909055799718983474863864427804691342029758256364199186329701257602631616068625606418743916536633771219130969154124033023278883477614862460741390607570145243907867462354800310529438535531892822229212235032989027196183471835946419882693166152770823539447892089504448009586753250131819430033467393886809072074429391344016493270150018545901001213927582921769651730737786600138717220230160782973089875448741740050193219352613057685868662175857939837130614191463553991591811785376650258903839706417902395606843451842300800070551885323137926684485564751511492705454522958624982538487586253292629940785761302696623880773033360003952413391900024301502067585449942327697715160956241089842888233899119770923000685775545878004974306631523406496190458033122154746297845828443262388410935540661236895583892071833202903230199224655733434604137285292960669583972787109375837835102100514616797221521745489286163575239825370055588996664005786561831541168086207182911588650010308263126195144509121462161164476873866199283556194507401134517933697825926877273967368106452702517399650613189524929556811731282227261240762398835954338765528148326012185436113876832525099786066094198474960508852361595927637238874953706034203309873052259948387871215463825263400326381208417432022926454571363865833742362654098368164708159895466545206340076731844260654917654852749451585234548738497036646382555748302356565028492527206931723208076944327894517238693359326849929103342327084150627586271442015463241146207290192831693260815664253796189099508725790371796521828516697114071953182224946109647427556075651630963291082800973400346481132197390055973528681686791871676685756874396714875792376783547821720130683752765881786716512013342885774197423672393717737103428430418016524656140558123169052981416285953015943271304773255018526860816880652366073662989219307027188400357852454852696542941542584165374128342176715329764561226562908014911041591717386118523973165925589428619450112209823658877117607130943138723718242957473009278350673480729543902509088646852873112387613646513389913723329215684703871631279794133689531277309656999248076646663880130112540937496982877880550884063089233298897840438612856699776700990583836015478005923236499724748256381176699750994909087689918716278606808340580384089250261679418066067709184782228816127903477001690112727055549320108048956605215985257892255247281936835387287215628883786549584860648536205937896150462640329914961774566174773499118443609318130896957239039419237646775106967735494729960722386200578439967571782954942944273321596046070171296211891060891315020350820872827368013064196183451906844504005016034785967874461218328837617034738874332150247209387055123633210878721851634858231186808314348976793576074387249476314393389513009456863107415093387687629460956812716384171533698149860457695413636644197139167438985113293187786136460058097351705599338217845715043661945540568797557521280848298158545823573662789742042816162156598767417323065564907070491157502466200273945927981500957695769359158309183973400513965510394549159763597978295434949674934582975718371838565977232281280070580545048154732101295576393946797661748788248252989642670729850202997537332928333389886554305248990794715067333951183405317688431221182609373656802476943550046959928338674516759520371719123523522747681410944203311560394524258066603139237865426287119007908994210281122703137533698693484284905792089377650955326182053265351708586371113487880017565378557438687252346335174888328648421758830361485308733995950757250096546242046046237471156900162649777773669865467840031340486424236540609324037359339997994561251367764080116687551692019654626401593833890308670123651293585245312816441968779457691611641867773036384200502376217642564965173043939084836620753498175223538145156453089463298270348953421995762932493365600178786137482266079424853490327072420563548953783481895915756845182259601912815588408288514560307731570895842886563338302937243861996827058861456937940136491325291486447198629497155317772100544822756492037658713806259172070152724936790530961617163380685542486511442371734415207710109455205769882127715364483427231956827006262934809901577739651657446161737153577998475668047680314946190231085018053789656588246691466776197734053660946451163571116883923777649949955497437107894066397947730185263373259990238729566258983090453656416538854565959594095085289751460485151556543289270059118475614899650565411277524308997317235327333780883632776216657963104688786254329216600491084554840884838691515057720162505780745456088644951096295118734064155938539266161156379945915558051408059396580827768274223092263913265501815836789197440029945158757791984205559380733612578113465994117075274127398586933219958811109854893995612038916740542690487232368587800619749848386176513640555985989418065677942588013657481883453314384229618932787724949217353757112386048175076998459480957129968545045149014241818964496546479829567672090109171502973034922778496512104424725612029444800710095739819494130202616760743656795029375537439998842060365353141944906432182254150761253055563150904316075575520336087236509003717235199709494861517814510135343761765809584475724809774974154290918495965216209963336333245094038414870312596583059647567388174153094789283396056916598432121498130171786212723145429172220719459778428925492303762616599822129931490248918912948413269627843396535051723142778453391008737616990578278463353124318254310106322334156592963842304770416467206999671133610768170033583381319823244616209052852013266549850535651879509603958666404356981897113146053773667112317649272192674433858154266373078945475940836726116683987203366802544013954990667497798862013820005197204022960499208149530141114229787376874328832110541169767726349783995104234824911185786353468119283176772773933140800572903781815452783026456995535919255324800812051196672799479568713918003565195274759788732546803675181499118904806794594151093667106736894690735461288250398226765060837387427950906293986375447471166918819761781258318861841505468046589389970788356341135273620151924607089596418456391078392797276775520594203050807461877207966757367427806082956418730262390507879686690706705828685143599627035311029647490867192782140426662267617033277318564666681824868794140372099964781093404883303352856258600805598931537643781728004487767996067165113161052692077441303219397332528038441480341466685387523754280921904001563562705015032230241879012090105247546138424715818363385525027171695063479096072986215366544442899591115876611708986585929501378662026646359513624902993362476984742828478748373190939601734431903682046304179221108087717586467586612326153608128195767610484194153686948468612584023487773800620017475661208790798598717780967995974015930602552030098388361682719929460582055791716662626989367170173195736842805481991869576459565362833289544606835982799107316333762068980320457021489779357686515816458808720093658967044441446771325282617364831993375508061918030298054296501357971743898170944373444340090955425501954004027321556088683316500111344145686302258295821328018764198256035832673453775504811726557765690990812648395053207821091769877528317984387458230451720144517168594697700211698803589923418295323350094466043494289319655642958016538368795634966852675561698485008475764974426481288266102495645289187587784201405241077655137272762052782717638451801060856515529003699813273566963147216207162242726087069534807036323525601922571442604008226102395322117748057813289126111850749844501367190418229008369849218198188493553184963059150127312499838648725395472340741907978650550058813406329213880331614733704803332389009809318596638811075483003757944189228589460496930741811061114228497750204109729367882294548507455957926164862791817669137518452848094452427819314581432352857775438342441483793462290594359475259033016523810765521795392146138924893578060112206481315311001300175731667142773701206785740875509970579088881781354834707721301036090296189570585792804622371522786181657823496924598948211254172038243238284566121899730691533136902428333929825908928392460191412290011084638712772280787030449825006460103729610998390000845971530433287504729742942281089040089586069472326725657002796101195090377834503414357545280693046532265846496672410468241811648851328685448534696845163580963730641447413929407395530990234999485396328632950662610113470333690051769700824487168806960286679107073193923702545261975651177177171321784419032053086968213424500286158875870110408259674742991278950397113182509720294921770625666880105462618575627936137607240420154328252960931143104739562511423224965045654445388526321404913792422720334623582826030991604627532840705529914818469178003475462935631614613159876798001494060773349209017964978962560174877035529274207065566891549769321799898225156253431001043263434047924419313800293016653650510864864591247966888491513110904737921626625260329956808549962355282893130538092304768428451385082932124709921425259600625142053711388994013512641090829596892436818251145632757099421229490206190718166464782706206681952287389864980349814604346321346387704288210707423120880606144773711110599213633145494577118683742113807597231446404316188621491881183540558288283681511240906091045220875610736479833723789375805842492956607625256122874243640856073997995132678631719735883591760764661311371022143836039514097224387434267611958744177537866933649129582880599216176992810225032524803082397132168929844153248101701613332669406737929344667088823279712005889091187069698993974045047132284363490462262415737947300576389658945291446646208108464014990885575060595777566622078632301209063355245960893527562755112272889132484492131107206753157387228854224543189454699060008071672068358320759725332415532684508795422155144199414070442144551466420012438262050226306734554591124659589960193130802772929337133343290434823935164575525284349241008499498732435993800926081824204425744255998706726804644958113758995545241674771052220617548650922408157868544930696242872263099409002870911283886362755858025089486045450614323191907933679996961306047999269902179208569735480788633542301930110401828162794877335108338734735249374816729971850675723765051914700047861069095375143487922869710845035824170285229428275151749405127899506009976773362934533957626941080383701744831377523522751077715412135596239920124316798837124191299297409095387654058134838090762777578690955491708923333937210869273231502128270934376758668460862850766976530274354035713322247926238803544850679302261153199782744592124831055915553018986035501528750964343949700788884919406003303020260875715794979638760067699215773335335489232686845251202876199604881284169187364158512925237646573147388185689745823009060869680213942956526970722607285708069577565394796427670686967277228333898938709970394009420195168169707937098461538629405265999969107799295790626789680595629999118543053912636659197524872289681114683345406733531242174647347899012382282718215188296236484237504483571211602543600896356846911172362314836612553832552534106426693913913631835746084117799013792201256288325452851181142490858894451621670133168215805213841745385143472600031468795517474329358871829399690642182173132639665014221461264910137706549270767508861537109260284083005096061864031136141257891419509444413432807591757405098327149990957317802745362544124852638619250817363389113298908923670001612934781409443385806810070362708394840152512332058792196859942043525614947253198037122804298458124488991815546665498264428862031158360292165289227130146996599769135623372277987850960379773837313544797830192557612376277199758097793888828052780823211320360491661651782062062573966359504409925491463976297582539886442951706662760986939780842925220292821520090523565611126256265264595919150756019051377615721386194697168321046009723832077335788559190513627754935834495147180893063182030682235028361171188629937456208379156782428549055096472128850215291742638244793343524745924403519720129255291345480079603953564740441556502182641775157893437564572345874101772981329805574424477458472638290694083520209414159667652742206870132708933171047420887597421303265194391709467641155731402877091090578866193358134284801968832570460060680087918875709303631083946571970538104054517071402050640142033650517868152595263407315035478093637310879222401682692280110904012784505035939588997171411323781613298858992194755820462171119755249005893386529318646101958899676157416658106789001755468657796273171964975291686007704523534483987626641742997834489670960484346109160755668600258620824288778065331031408160216867766737574310008201777343275471917069940177240136667479235015927724403877660697007180157645427637661801178219509169476086849587941235726628623955130084164818449648252825535132036723327840135678777776757168816579663015253757923570772161680947408515926094377355785767534956091109902847037218618040296847946291399127515449642337198500966671468027887284143227409018554330231139257315745562449211675261629078738511767918456921017770239598394961950401630037913078429229546870092200105133126710581406454403061759402756928096648683344612409386552932704775104446519699363111546157310999959767006662360195837466278291948203911526670145555490185786433848039853165647911166817611294712587467116322711463480492839336910157545820307919440417746833846614008955438527994209520919068155216215265634543819618966211796511020462832154421603512734782683100383782750996296614453054287039532912455486120239895859336432794366366723419506493458780033737306073688502617837021055709951336210192713066138952912826099552003702700807934403444282903945599796995421176144488222073492738589398655943074010158998473811759287091927207747764060522193613167676969612108147138069408468396447078150096532304090638859599752604161500267408709802151843698431714930771468043686919814339753499145163829965561429560182608571551199396175479894179559868207755997477316552745635749939703382177427393494849891654619511177803955783542133832507943785635402967258950958021842321216960516587833697097047159855333341328418991364989902736573267307079441443689370739842152252247849569052110487597202817825085381410990314692863488533725932129364319191160944842645062773915979906215852262917386597195709886808818130235460085965354993700742894404690289718978757583629460370497872115816455562321434632587281563167073536265969239252847078643512652394151009184891372928914595600837577203115627115218236265384345351709054976392435557706872761244003423178628541835167326413431311365790196633316312818725385065944433199100628018891768577490980530709797816222561544042645273655086681853218847034205127305632923698857210757896258785841918724632162172542677283541741300441224996131276426735039733059589829688017475764579214318125639450798730316949339152666259830757318480926936727022261379437120944103555796634038594502035615828302871426952260364992717518988329338487642857948208508422620980227192783967613707808247983874725168388714335104515440346689272872928225742390469852748077962439864028084349155552257052175619189026931649791242175998788308751402431542463049368288632373700963560672606282979270305758416709298413213356524336066877127582163614900418405167117297424215981399890368337362264131322190399679135083634955488785741536086615597254498579988231232758106073518512609143162144631457825785023444383856414660058832295505481252507678852703797924175606140464249886018962647904697392982648324761646595894959055247951481765722462715424362842244135234494968351450111869777235957442319813133511823707686605516995258932381244291420937258770081392269619217860611410571144787836791903932613809012717580476359496906414801005154295312910531697199182782202198704961904848741046468373772064844761395676325048624945200184594861215159066661344561253324671829248760801763641513646739232476693864241862002260125437492782945887250229302911354806169467112721040271486483187399281132972784486013676164465113888409669002439355885168831319582975918667298080009677978919556076702072545878641723384873921837378825069083056202504663942874615501882227140593517544341960923227496539337359655815096585870122085917289416333265881160197434181716757341551648328532337471085352939597609822332058591340073954341153925663536979197747072791130833063929766837965480258088079913236423177273991965011063294276149924876248809528923764594687290236754615548060943912092133727894832109503314186755814000959167712715362801119606918496423175369709475959852698225838956312833241141867040164178526783723648484601421957470231798309055196373055965583197396734302515716854270410067352559754697596205813976956518216538089598300482679022554995557955648888030202329330254798275611867173774649105494930205500417490599945133336453953245005996450193831812052950760744299852742037387510017355819346708361650228158197094575017061577130389021915417712599501887407650191443749006233533003491563458569612655531988821074912479152776678224436469881734168451814327899798263025898401272682977113856432641345473847036432695491514414032864445415340264392722919706460420173226812990412462488690745690018816151068196281999610612325997852608467558877884841285450489746684730352461861209053157020676932754504036886067910059258168609577104122519581868665330099160111447737939399053426796083214585324004752045565346992105749815940214814726311656699569584735516248999031977613395737181557427799630267132808601821295523928124520178163743135990893211151568851317381634416244004284681062888089528103503684100279319431204360264037523046224337835760455079595243103427283649380534156973218355363824747692153232471631287676053635986988809939155000368250411315828513783073388872459270173252979314613647698156708600058430985974483904030904007373299797746932677221687269970838272670539640268762182810435326605265129502922754748045942644015399569008137869050843727769907074489966224996381853530106189337477495518397931018107343865806457825942367661845179857642208746314638925447425189988001658345444061590427288630994735678421982135307609191093756932822167761635309299261729611880536406417610435846253598072237555932791854070117581375089396411459962125001595035723172847789816084455415601399124861394411519601412116522647514475776943858125970419312833700238066724490451534996330696406181932444739041431765196798041980832778084130450084138050185209675204383547364736843255982291799152953133996015620148791101789542325713160988059786904447853667726286634089986897732934777776218146016179997726862098478199635299207465925153444087066822839792330703041743760773609465642476697892689706882236195523751723624035687910516181858136747774633496755886228640965765777661744435873351800116219644204906279364218956615491908220996442931546820609439137144417877033518939655601566592716865135299752838621369879116196820096199114473464869032821156461441595050813945920474612367574964967878484185694347844496853548176810488638659128486433594674791308199657616760322513654100004318172486612548625745500299022131033976660015134935842003999775466991093394279034729784054716865248439210343675960594072052386520794487658376255218857846104688610867724012656069095029578102529742958246505871125754851615840849783942807583498422277804729559278583090502267129933555961538852780180540952847552179605987251374980514824426320703682236762788954851551809826746813042806803870577733780217227810922368026270022285739091803709513170720648759331964609695143997669899810415746529316895803105934587895425279876665439262037183536574980624693923715852481106423962724472494624951919227799551493299921187838254811126129945461455286926566481077688930379094636199478501074194096521823155835839576731615901589415767425682278719912753355862633517191449168400535070971563770597926781712946072976515995449654418934602916396349776286774119932465645522627018928214322768012212239287694320431849673617246544935045237125547371006051133203633257992236105965674722547952595358368196824335762297946718976802168985074092933445444310531837842306795369734347251696282819398859028663255743658918172124027876278998986885247129770118131430605406627922280568109111267940440031978024541013549735531317877245505501475771360600017331188313787265520616201632380857463961959653049345286842736272783991522070876678134243805071318604637786135454070093102063520851446737815449495962683225191238518158685211172552229416405694169681290438001783853964874151340455800296374101505911989060140502039098499806986873929219481927274950317224921584173307264686260795890610552011609311346208029808112915732257778412216359174560077598899207692619334862368728895161960179022821841620171873849681269139201614236188009394857929260799999577357445003506868636129784300895123433432407580987655184237276314204701577616878542275026625930814812603272093009466562044982939082819152805815970838804486457575478318834211547032007768951295089969005039509427475284131520653940296182324591497274271532914680640883222997065684734826429550281439703385014216833262376244315099621733173893621229822128015370968169392672419193137493570627505978375471322034982604372091923570635002632137630747534310177857870482710209816982963321467630383452795515116753070202558747984839177650578576714380240568825941638472785639790776333713249688714019781771549624300327051476796667115383546987136678448748499205223483020970954801593126581526624812273032635746213042615823118494340618300303344638080515850808968240990084284188763474943360184061490774395724124866025372553088445361459962896404332653819060810446377208407020470435150484907578818014674967929044641459097350567202902062888573162490790001714325287516587561511987316235961829190335201941879938123374205107031241930849328744368934808542116133579120910773637728816548518546889378662641742533019808530485432266342199523681201197774669957238220240811334936245937163520517607745002985983394644305208756984162669897350663468688153135666438186236757673709392335056530686923161745346745325009281893937065621494507849235399737544382239346243337942803025340951310999398258983184056241155701112629133182597817083053076432394476207204547249560498156675702763777332816155520906915765252685065126927989165923407986377812074122356268862071330206624233148195271840489169747645796271085630202062316156647614671166263995832475845039872001421718100725438323408877879776805219218120261050664198572565430413231189214366950174858973076694976141509509807078900546904961134005269041401740531007350891919370850458974192297327033248107571066660167010782451303637311328993545719087828587890657261449166551691077698727324958173085801793115359241772665090280336597727648461347589417185584866840903408286951510678058940417965744537560083337893348298645154924918611079572841148027600277965264642601702402331492701818698864831535753011492270673779361064968469771697574452391685775129261141327997392965108832074977809631609338025324717735681515797218053543171783731886982698029962914680712492986907382476646642217553534753826899122231813300649293212807163391074954154824464569580956145741857351488015548856980919288577922149197830875652776088632392189180879624412465525939080928901752427992096113528030545929635961092744796059059910013200377256478046652359281213730542341296789310039657778681577225401746868739529197434166802913227369277031107145311918030414154143142765904428405024495465142897056698257950140880954887703282659789577445383105158331341015898452671253017414338815178842590474602040286501216500383048943546908308484883121467003544740270838486353991347764542921950657093841187579929236860301553742856131402338199277060388831081484151044532641199522554187729616024166397646983559463345545811679843561368530271395622156316565182582840962134012102022527826660639210535030192447232669627399932699363156145467866872168660328518421270570083098920479347549927854707681951770338355405799144489911218177066884148969062173637342145986283636743129248692705186869373240359426846132559795621819054402558761481257348375168435075142021992275222250583077707047552752610181839862539814665495142786172275709659467753036434012436265520087992711137786147956615060477785402878438480145269857413064211325948345546029229716529888915114501095064718289552931972671334326597989358234695176813285933182378334536830047796724171607763153750791510578967761144591376068490003581714236844731022253538908442208276962574112294551110335798200914562445415390980028256399586428644057492643207294492840624343046552863162890113782915482436902121532394585696233281324277027233868371539291849640614454860847421960097331265018720560617849353856889058181972005781407314049105562842860614017795365175866520192627476859230570903974607562478501550889388906198704592773054990914830624659831022741708131249595230557387129983470962291562774530374413250770887408325803227341769110682238571340212576153059056062954040913657073631462436546680523149078893750872621426768645070390405521451137111988515479968101585566472956840072181913092964075661326761096366776004644822882523263037259755654958263744956308479262802125746242364690273999557359260549579904313396494870791098841861214123466080319347185678271120601907672477275790190085931975029909103896959564773753269924169681351245829768705563861155486466040385268725976591023582796421457524761623116611328382294412168700268928473137946522575933771040177857962653355934606622217997420133859933697562611602559746374456467724925990990472224077962463600633573904002130514290100033206687403843457426354936259165738515720051860554269056823767552989006894061510453182337508919893962512656374394474938777414451606071452851902441130688696916256193580671689428281351754470063898386156225653347352865785583609495757725292580142674675423433042112522653927710848583583049621775438783936032856971290210809841517248691277745001065319315837406021453626732057935880362593949211975424268440267894432430688637608862843816972433534852343419511138221736823313781877693961779371061189398859016028458186504427003879795316656727110123502097297681320257512974853108889645675019486091475318187449283550494452407169590765310328694634274938364091466485697102453956118571657571250553004696341918838139307602673861970640919895849703475299246215556129077917948667219430774125866029396028181042159516837646616181241311742455081775636275377203836477303057016326403414175561013340812365419130801552176919049151609393795188112119795518651357764346517027171251153999723995540888822644093463828862157301227256411720885931365596190174666214656588897312228469937383367152931326538932828778645958026173927294590124080725639863908717697570358266947117809993744715966599333241237684408773182575552302246050844281971906682995285622278186421958694429783681732083823794550614978108133940851562278253894374071475476073075587982437905218766836983791965405977501627665576781106807106838287396383149038567823850612326538445463105705267288997345305168831982628403993979871995946796119486094433599247399860692890650639637188078560245409442840337990280161867066529506044410663541014472540369948750798970315341188246861594005685515719173030916053897518338229108591919360460038689443223947956115101080054216005089077551637593281404518125279093635022603365963474888817183416397855892226801828119448549565696640719322734805019366191503652289236658588343133933266195240138973967192905077855933905833925315459274288356466178941374293809823942605448262257598785843103183003101161033553079536495259451469260136794862082435397025205306862340823558146178820681478659604423567279526497008575960284525822520410611050835085293871529049864989500937219877394007233489164526906921602987740767183250633810947339092265368300422542626079118943772770515975935195847550894360961907749644957120959984667544866848455668910153527241880025883672066471818981591088256038136148196469467041518181083236087647211515568712036378181248928596653564322195553281335339971519868524315976865551860779572302562207528656967292153696081258115877024322352266656485902989026998281832515617585073005411060768030684889422326467587870833033835124469227232204108701516632669976827466774624150467827447472935577934985908788328269132982877892531408739335174728380252115245302288154457138655869462113134536879712393818115879470387166211879759361104952882481627095483398734203779197986631214865718620437122982259391480647226155087092980575283028338176594595532870147303074738640596885620143558981212083364383619746780621648316280964617993670426986058942072928619228397379392958059085685776518124545183260698090221107700946424932012107833699791944600102099683103903035588398551696683268287625360185311672499203412195199879940343498907324836105854480247164366832094999975799865529843927201067928271478267909802370361407992112213938655363273338082362490655135793597363084396952470216101450159704460227714781773226506173082171177374588388776596997668367406714003497438931947675070790498875680162479292798439363565134392191145197503018386416342080735116461121593826051228281690052494986004872285543776427215189026703580579222222906918470261505438659144953519146777505021185940039221954405777314398310359559587018464325186272674306417983690592120470592604477728741550880357014296111407646910275720836084254820332244622310201135412750217250919544651000656991258247019846046450012704433963543310540315113211035535420334416815951578919098006082271390836137908231735253157143475225264577115416497601071101765531213937780724816360826293943415727127793984214385671017150122538978342962692210508344637089031432081223954470326292418697125493871413198158040999740379268418542720701466150664567891682215644109969121542988456184707745112694009960736541072248726799158257733720485320739633161065006527756665699487791867204113266572451226229531231863586175767532077695948526211124614139826081587533200725639091922426356019094577244650103735182488929646300864253398864876891315085269589729481181529418126675690635014295304616963222785119586295814958972250411972253565107749805568203871345594632254620915485533396970579348339314586173718528764829049811153407131327398178964393844216402553958374231081661570024321180101264574774489173594391111195866643673824411989393149996097447516650986489251701655430829323770418265376947547977877428993607859433459670655520227137689328695119895864485654462457083796847296198420043475850205455251624776062782538767908329863786685558297755320574677406477622770613886672427528736927968749461909658974262605973789950897391152198793182598715742509842867308557595986933760964308962289258494001238198342784899939322080049771309134707859599895778499480264403618338393577654093735545729072882338195035972781549461991305718445712615671929027573403570521843369460937661580961636027210022790474126697239910372807918031898914373409979167344831866254757666368084613971497138055845100600588627081538413058813549842755118105438269567523594121441175235515534456117268472769852002267942397499432541645399286659740571176616911985212010810958437334402922512263243854928450872242382400573921220470559397441174402991975738516017494424505763428747554255704026595690979061749804811313366585552268670378162981549074920034394363391736518416046212989191927308403495187300774420987526029621660341832458944711464512273866410620277216988209319713118580805873847681974139966225064555416107243452353022043884312835421426284714114136160612724016036551898382055311975174292884808455111381115539933035916404127884625364995288107138107754761763774314960103198454608331620894084910122968081654470465470178534020674855070372047714122418828737355532603145312420887104312470595829098841021906614122515832632282276616903936730400509146152553572064220044234454888564885191558304684608768890524986351533525135607417776974641260607748440835959789391371543557919259603193391260622062546506217648501737301176522444494075954922498200775186051468223644687717331413392293387745858930581459063191023530109588116649230750780916569868715116152808405002789173057342031415039337555254361484614577642453951779622527965262863516110633560800265568077866908357547202199896986113069051605101275348295236444720454969991483762588265332713139922640350128440880547650313967177027433257633809035317570457147422476784917028622085818088192225849908850119739518377084628804506872121263936842969855956360669217005620224286553895967099778346424917134697035291349457953650811073319313306744084132482384645585330640545988080147835378921125133280605309844887445375262743386640250486784590304688740542535950252644833472773310661606863989702494061891078054441214396692894755644967594707189358858383086500172612627017069061557779324911028592033379532091261225119041604316544571533770441874672705332407915494184213956327174942628091154365298079388701650986326548650522189312776943295951633581668761252776306088003524004485468961731805967814947778577210438812820226053400013501942318690842730541091619586841102606808348781431940038379172724644506227625954896230606073692627302100627156854600613983464611001524935043824153572469281860981572516910190319284377516296425750181333494764622064502411948943478684406347559243308661505844381483797693865560055033638571139270306860690044651685171911598897175414360247736408975040352700239898733794227436007649135674370232185787316199462109233453206617817501629218515071216703023832580159094046792862568647622697966993846891447227456034114530724960145111152571835035847316159295963261261884965412623793207362894278947062011589778305582677600221856332771694898702534408146171802395172849395849568023607598511454251095131689151580138715383446056111743898072741787117291364270571645913211617501703204627000652974382561458604820087923514611298131564366102087705874213311576366017995956646285076707139622011418939309791471024383180584295374827426821916227033768767115428353338205268910781219852270786808726151851060066584610194100033454110652532004963236817594118328003125018987312896342389311098916940885564053825727776270667998626871392773125117905393785186109338923754600243434513041998273699707339273983550276444003034257942217450717864798606312135487037836342165586907593802689384078981615558348411513230192345051335820175042855095722641762343354707163719179664658890013597537942857458084208009773957751379862989693240041374448515340916734372288196107160495100006067641223572099326470668857333104193199560397887921018649034310998286330544658112965130232996712632158709007070841298550642894107702434485991362486239341913300869738195592093206038668486774146919046729849306828557994019483796832426408152124088740589908809951317153697428432064229441422311218134638951956940940469936165895214790503147250238704579937618115001817413969951581468618448320499470446992673701641408373022176077631542786894105939115919259398744590105396665902751495450117159348456579562502977538224976250006763418162757330221818009301974835112054671521808807532402027786428326060189954733459848147091830194109063426901886312855537070521453714124663990954732428657918609430834737792732300459173682095441941969624439015080573876494300830418427538124295718088441934022326077999548069636359550507316898142098295598931745570883280305244907944683521183475969165160618948623906864430574970326334529802811917794898378440972740941688492884292071513178746637106520073966453607354414687938563518643572227942065228491190176705758298067413931932214091371560566636062007798106171237205693245498398059403156936941121192352411153877497133698199855695523681054871629625338232403836195483522702435882890557573082452653552608648566522222849779249076966452112508303442946328763068021459317334022884314926369926746923475979521688920103120709465552978208742822977905362905669817797879174013426164653712170743429453869314705439568468767182857131379650100435246500890182232559001453538640194667805532937135863566833952798948958378601726538185542250471058774901440946886326820412803786125934215246623164865078491018455623666778906479648785268667182469882054652387572587098962052526068426324336403696064898809071186917335223849628614791166526465065104652001072314434095193586910075790740299567501563852606294988212970030593842756625440811241052457024637426228257290681163874539263286843819762022277969119084777946411082362057810306697352770991642133178489734482858376994755984024855931518176444596403278689225400456901128635839038368947870760064568605092190263309949551163984288783772119668251468000053078877925375424126968064201478216965069300631125058299277396640362700397570692812079305551847716421483882845352962755226922667463790000125416542880875032378718388934981277087372105755015979802726846920703569029807219867881644551359542309595689361584671315722312962468153504371863444941349975042467001727061652682234405735948271336203516139687149934150217317116966274149694307846078718291531140191506253118994568346574577570435167160665682449633648301788278649752455234731979934309478270546021477876819150561688156628966168632290286237023229706775033581040521947674790956458202162816909650416346902635205607397354104422460760070398805066819003497220285999428267824342507975506579842303752902834250349254916330352308744776238213249554539396126614241995324836821385365724650503884368778154651603548643055754789876729649564051962378350716027961491294009255260445183542750386436500228328541943982523404424238901586563514804805207003546689661139546259188644995363907788347889442125875389609743242621400745730826138506531238413745728282027442745267555906945562038722576851903697288872538878519137501468333078695611071543935122471121138267653313228496770849972198420193672267825052953556907272057398868793009787241013194150041404710342614270818331242408371053798860231766739497702296431748499736073207513643962544326318681002823997568369131308198060016346452841961686779032589815024485604135825804299338669467093552467587706790580698107575431592596144267596348182495724400679529499839239601445976795176717433682103032751197478777610705609394020044192108071946977248333074352255487587838442878687576468186205894230003023331661862948340045716162377694455570568405229968770149818720164091699101274228087856755871328682594633742800760726482150726802184456622097827685274154117287432465011134017329006611135008487831086089439977222671149925566043814626975433679095805656719156036780332182607696016607954145457074661351518809575696055369109062950160617460316298834975292339510165974710351501626561698418928235058516780591145995856730823314622989602409371747154897845066188920329981142133387008654715795812084606899191146705630755858775955999521833068000745647915901923131609236954099687655013220670385481863823112312091112124709224523881694888629731443223396620248520755485478482150215880570156164329812087166278021098865936448357887415814340890675789707757841605603613153882651549559293481879113665454441598835196209590683528043609074400507401348320362163898661801315454934765065203891992818002910999963333825748793339463435555721267207318813494078047329322403723789393331533868163418370759454294167996451829354677060417580103124372550367759123034270308237932265661472852629908489794628731168779649867446318493764079324747157254025432648263896584081913145934940283305835639134934921736532991652232269766938849590621792049490033708933334570162135199071249640134087260769729743722554089113953203950059061040454949036210490727900929629854249165591406100974390734740261958592885581523309889524281401172357327170570644610571149612340600305412636174241391305695254466803822808309193542772352510095205075465667735634439869425069789226743366096217020437624343468400164746139310403162365308080523825788222549312477231697541355274727644320348678373069263596864802976849081996213938681185976686225480569192522553931791135355210086699325109372164276533604603688429368793636603609565395675637091766514848877719621983514933164212767143931427764422403534193248184050467409957863056947112054308978231646035686367443276974781143727396191700176531712795264191063627459183457317260708504059114375609490236912041767479664159727385749447450603424819475990255096095773447010751338465315599875563813579554484665892206529049473300514203809142384836706113791197495678835960829655418191709127157225829047698789835629473554679425786759729148781602945963957653104999447906978780254897537753754012164233719650931814596340116160655044014587121533115888273481994498251580093919096257927916285054016180476335211635692594283148931916583672475189133208078314061462123933215229937429024822809295332409706386455778508697927910249092219338405852278133271783895569427079256833158282584272141793924983344656437608251973195742530289405288873966807800276111155182703631823199359420726235157050008875020408480783207050390862333959315763642968684610384778375771258972565715684217543086192134405076295004744015997182356440643913983008952118894713477396722364734969485697687133993115167040061648414207864469828393662321347827174631685174828705772392563034641731043735326515893343107240944195721295727130825989278183799955797785885137805020528961313270292667917627948252724478504536572883385906751638463752480201471034347629934386445916806917572419657864696948070859282288676971531534175420621331308982681747372838563793306036279469321948939421199000421839214693053298986711382908399067824660526970346358133711623568054540050643846532100890615439790385211688563921540839148485553493558846972104407378987150246066008866828750341574655370419885033266590885942777410627416288111276630355580596349950446658744274295963171376114028450808891268718106012897639921038790987265970794191928228557489201678494242692397605915202764161912115145294152447379697720364554603239914251332983756819208887184702725116481443837519398041223554170243069752062351968476536338897351112374025871390948775809490952763153902385268172473636974083587845374472038096977365969219672642086303995995634487191273877073482053808644167670088541613604434965779220280521917241598869708005972248570161664874703766132957534304698477549654462061399377909975464962095592069356810616877424653761038766433055576013656476731771000338514815141187134189479223575501160390717202408943062003943914476261791846407816273277994745179311985415924397338570299605724704943276393218301001196603677656653262290061780492669683405325818127166206212263105533434379460790344879117676336287082035222113989997431180104064177601088925748866419450913468143476429237370638535317985280812642275022850850647763563301413754068121958301176420115057798322234660046799018214014588180275285825222778936487291182644466046456034735884832122030946320764260391225072772967862197317709656650428968722732362323777219161555392927673873529852868556989119627587631838587033508586036553458280812459392179965310364311542675216373474129997088734959008191649038489347416851611161331063797380617655010110683832388220306978048074365447395325810093810208027887025511760449132026275164883643508140390279640752942284893494644276358331978057262145306356506682555293729543228665326226916985810959003582580314413401390215728992610961115944327005409835988781621403654885815561848610103833502411738040149323017687729798352681771282433238462196482620948791900633645899049729774504682662244792360340309961357728771367887113705622447255542715419357927500467272591637201332546894057806651026814349774134999973859203955349645852262185744015622625399397181012669734228508111379446011410411362311831503923208575250623070428568930609592416259162553794848525676898345358897324081202652018325609808639717246911765421965863535086478285447410132519839420591913376331831685211079040492586098395685327344427812726309377266570131974002752090257839468074038050531425679886388959361477866746266649204782980703358540347689280248773573089326104663237797439319774611918435257171101904491245320759178980483343981600697840082790405146780579981123024987431682197543789409503957797032658186921171241954795508856205628728859912869815347557842210458499234688742587715571991276777858542083355723098646234842261457806656981956215098880856339298288655428236028765211985223978750663222555323199153455305966751835033391226270802830065400337309072613458620593219152422791270025952857229988324863062521693331261634118980853902150343052281099370646635900653348686491817925385470783792813130400962318789687558609057069151627781656723023231025144729970794961612473618332660499698883006053405529034692330035236694139697916854442124565775348109737692158432540618962458443209496799339233549777681021905312112805958289302285789829487310138455416469490085654212553258840070673659708334267267842607990076553547276727647239638507353460831933626400828431595818654773291298073057717033629604505713860460426372107902658393306916677401844584008056607330182094821195062760798395909159132034890524543141127849896273180027630803395021151693275857891140769663389540667102101113363922406240170340606155105663902729586442398818623809458773641293073947674113258960325354390683728072202763415773392766885900505122275644008642806868984683451779204405618689587769624906858944928831346188337084991561756704165461648057475041320017167134558835644354616675026411380736712266548602685674840531359321141230072355424598301036330399222430588270755090462231219088743953420674971007994881390106261080846585071137922774662340725687734237150724319386331754333614316002648317169006982850597210432436169458903306782653685682060103501726147918371257446243765750860893381967023705163108320708743994034941011167230018273070956102658287912017954126668346772478545212647420506675525407879931140792390156135202838209969375317353949991562045896955169964626364250186782419630578039890981762829829494816893844706863626714701202158577390238552710117567096488922662458549130817083301852420365973305849923138366402833691758062272907490214367109455906187984902056098710315079450834880246685664945731734311565829174967788531371532887104300710476559960622874430946536480766725698460886947663221409323754528827430366903480170770939459987888033800654138312595572449089979692835638744047107130122301326842987448042239015536666436159309935758496573324808885580646835852882138196833180500243825183902180633511666061495447949148652940872468500210301314735795915100434056414434394756456023000608441402143109012974172165387169039933239984566557329953220399481776502887376028276962537256590913550689401563866840593466749190914370322880502302447300820478200593678975236833664763352634167557181481570240204947288854312046561626588709864019886331780231790545484393224976965367368319832941689326325083494585017491486832958527056938459000327765105910241890234123357385113350201649641904625915127723625917287081368047149816766316960612759311756660915830311092270874536925477963637246297586833944617590559475215667483192626973944008637758792638686468624772824769567785046658408385043664682740200757002283698177556035111096811990936805545306349375202726019860151064190695155404441405411983785332090405967370883225409853563292713563257801430878677168381469668683570509394327045036272596180233277245232181868450314418083477435086720640958534528647695735612894811587296525206216482437943150985782135091307521101323065622748398587453627584908834594684252660266833951199813801683819565939571479320221950387708380623879384196163126735750479162352728080610513838849028506540344249274130709560915898080988473881362196584879748445177214915043694254770522919866162053008294681428517996969592853155321121981854506527035885446550558342081081716545272014137594741782455761507973527818179089298210247378444488935377140023244176693108849013644188462926098790164788648773670471376050840117114554003977588870624055413565300065787749727905465247267534983694360172922922120259128926489233797802023948488436434384598437444415880542659944550829269796204385079701198138610994763144054509413157728276790458824506183033462363839906377327779088713815855944008036885890076544750010938602459943994109264437753945577551850752982907757340607444237470292337776618442782039932162854707747455082955408413799454974175815203468636917813648497432649431765561937952900030251772689667631657614397447205083605736215843504629549845472692620745321621080712118588747057434141776837358868209968698055907850085150964588196689095026139310877113142669124078232631151270818434950009175396138648125229001520143672089803290944029469213041236105916553418358298324482854634404767934617649061162003702286190636223931306063264225324324162805021643726454153794858225606661233145733480842186081798874813984245323986354123554561315181640117401778537277261102224962559334814763874847526171036928361367369827522863471152684763296582999605814914425853975887724687660677386822136093027252671497528577748979684077285419859355278992312732717569326308936138383491137463655422766166279558776744818248877746819098099549324147214724976992542039156376550863542541654018798648311689883309620145319391951996413179896499120692686510168297974300332309455270535932239348863660386204349546293849896156537855755645308025245391407432833410871712085510482485044906087063971795174697679714883754395495430233234110946235780666727196608247447965682874444764376181811178848906110794454323570358538203450861265248675029754537610619561904644924245993431290494868430825169186938855492261452250286393917023656248204357368370276564594927439626899854037134882067606893531214841580435892415328608323097106732354633970570575320349513039734783154757443167053129415925038016248336385403330473969778386348165659884355012281733016003402514049416535980634031826227778491021225934152473048513103063925707108553233628200788360903412391565284223031243259410184278967997546225500618757690827056759362295113165283318520671692940181373022243717703637527630116553369251152530685979599346149046855723570425756156049447070217895575749438206620580125871760661767790322244804865160041684008934345399262418362403038708359637821498233212447672814500555697455995390702803350046868069009276603619864815610057118121450426966921564816478000813729110477073398746568749763354440786929265064704705151051288022524026288779156763050926025143149937916963573590003640032520311197980424131734019728930182692940071731269048183694068034337080004648725943823385381454108296063833241065702841351617303493809706077252185092193791769480124002606255775766106593619253424453618416591754630118925384802611427262943268445222420490030920995049765687992153185760634773421744116721183186445166850865985237122218214621475116399411172424501841435143516436246263833133295227320202220361774468839245606496111327138226138614778606148404170757265228826484292336946806338342323025198811354565807683553988775632439814136021522809497328802098163348372294487463139366151087258162641992783638308276259767039415012613044448921999382610372110457804973260623914011416992963819342476980624664673010645082994201391253443701999487229303288101832753336677283412806656026796749777874583832558743273124690780061865943570927208002284089000901127309269892360316099872793157064970507849065608568028767251086728685012899874465709289965255456235831862349635805975131874892222696996669912406566018575626812380979884043649202729033493731210371664387246481721864796714364632840374421763806926561742445941961244797455095992057228706083093822011344871846668795394588233393674932162343878886289916502538878603231350522649017142539682234765422106116490014540213814352919017796295949282723114469714142551780292430908003989267032776035791890208503195379624205566396720379616086090622486583542031072749089546359026341420052404038771440779102737783859422099474333281313696923695244981750459468054734974853809268496220193289113830701123087604888488092129937410535867103464875108417028148548803149897578186930105100378507004673152832029599561537725576588515674748008642288088737118152984108953335411369397015012751417706819146114276246361168607512466589828075564451435231108259356605424985117331801544766031260137198910700098570390309629331609823111228517039102164256315442959846955928071321735240222631332509135972090132111543870314023157461695062664520503753335178389137729914642376881985024315633020990261681002983482329011144888549986181681527421866129153718966453542284663750538381062316419717477809131893198627002251871489517063206992697672814066748820718804334868761341522359661713518895133407193136666315887003167656082762132745927019104409198093710469302717237971954990534475277147066140564672353381596801867379468833503793042616038371710062624075165712142949370903966354561006606866167613077568212796308223864241059980532065948325437179638035586713226148109199012265329633067825266447125987608597464580968655013749018664124233402371759190686839102432044706839683942339425727535181973918661667851608473778650747276257447762977043559768524184997294219591933630577178821702674473580104165211558999023059590997016406797015894376514490207336045167556315492304071094691943947959743209377483412081578425989965686667587587177973338644236120596851256978608625473294913817474452309719236258800096743108780076385469842486327843040151486481729317842659396460925673839495565515184868216586702579908568028085076683886460073382404670959682450128677521648314999545281720076513236690472245491943744194716732195260776444981985085148370151662837474877948402131904852092650557813736805622876534081506345319762832168694348606748158436189544717182266345237262001263280670317384408260231959052259694553820530953368286493825767127206871478530877511539332263112531994350065996444770228623880398248501487751153996973751111881742532435980444880041412855593408519905272354733946563597416328498289480786539201509055244078427632100585363488118285185264366706806143614977227932102151116810748208930227797036778329667539868413627509066835723452023512808674741092067784043065021199629037087447812917602778434900768114309934841785070136473374487354048155423042852709472895660035969789149147012356290885388217216852440080743712126018796674587805084944478024919443294021755488113937031231688679508907741369663519207522615397721864822352437594313949127042873592226750520540732592848228766044104174441916978743664987917779492966700185360019602142564864678994090650919338362925354485276963538725474181842421504498834912098061808187325940805095774322503480026016036206191529533381803222704583963375162538090173260785436018121882470977823386396344776609055950775391129059213055015182774564475779144804084789207417614982019051416352510771942441022779330440594223214456582735889363327442837692818958238203711871541606901469700288366238709977967067863955224233346502931139877673743372082748507023846944584908240214595684491886308951901421266096858769660269541747852823180046513657073000244798322874875135621249674791739663882440761155221800180419869490061755605317051842116897175301981885529368812567164840903960339784528502995010519817223604262391229733446320391045180871273474804699982842965891865079093493153568780209669177840162196363035952903463319333419631187925142474641723383709412338702271773377885028478411179858447669968191458377969705408283324833442261264751956095582566317444884934896379935009114275821810719442434903355139456152683386100393832768378948119887063119864102440957092223141396955798307007578028295488302751322487917264107404634067649105192573280777903977126767183684542740699458104670336086333504155902712494659306823765097381571625250958568176425860390841638583422339856742481189316755478330234669349301008909243662513364440555179089761064707236639036212041819345665086589869938449355403131243785410254415018241287715744655162450484316470929561980015491298811612284376109471739444229253327595450274491633641968912787970131198784483003800470651380195743048366422690084903733992107709352609974924527443492469162786359476621995263036379497025501625827481531662011925516183172113152948187324342233571207234608302317374865777748147083463626678605551430688579195885279676391394471338636866057746336863097348621953228624045227963974074207297003972935271080861226897551336770924847860923149917007577636341057749866098410111646871110737425509371306968259626174569793510943663775696725062862544307560243971194011415453024942470257920065353776448679821086061981050390925872503252633700432418560061288748277620837963412357444848316574731996244840884941063679427094233135576046791320123486124717664106824465137286461804868807872955803989707396196291109202157256830903228307303672852776179631845700591211390144147870938635781024769758249525526885046526410801511632470124444388517020253483039836400798355968108887860317823182761018790195192327510819435247641797040174438170114969033646275877444610815439118439084405473093238486635429932360514400140653276990011818205798489756403707520901539973235646962829225636517197196369935516046447576074798364973786994001361471772214271030211862842759071575013900299547894165363341516158660024596070721990733408191258992058147882993248543258621598712785971763540764818817068139442509760808133355006721002639516814976944145581017327009841626489798032061886592614400044713154767283211171966688401994808038964624939270147085707248536352646795275354000141967195061835272939751781582750081278387566180787180049778207514717790751432310006726945438958590324800047595519355851027902445619844415404039453576324132391900973448238610289224815079955311378057831452275018194868900069965163462217713076430614352882046757132237716772448639968061361989855402307756046185430364630864827738546012948281110740519609005169024080718533642896982713636844323507964581344638060237946226479612163383253356720545492613819541188883044770975793377696479535877836803587714537706837051365132640249118358911559399616307189676940335424301977948955607284494021475739529323875848496192786748724586408800974682054308583511126429654409195282837262935489232668672446336474056835443439141545394537836402819754472571114519627278150601479954351057939543256839945775653136450785059605467793698421460763158311501155189015216687885811145368241187476591972108137654785966389860253633659127021244827822690827899347988026597518370135956938661312810836581507832196756628623378609498500727736007064331443009243106314297359618389246834465167746346952554937569361506698565960036200908448533872691373100146811179154436539205164774597579526569234502775337919050561553036448769338538926484119209993292813810141455682906497263321270840939844263395636339851521722085839057965832315850567506336316985217845732412283110936630908485527915759062434641469038057814046390626936388537659321538655780819787993987856389465131883594872703800103222133747457983361395358798493772483744050308814626940161926197240381104449417662700605226952192464507489822816520068083667132303400233310824528440421316327538690681318048325254479880138650194681820297562663079459461014023504412016211886900092868078318950391790907763302422706974222061103390470089032372270723557930403734662199590623676042902835181712736722339536915474746982601167019389163320657065977674703468054985958535352766493229351216326035554751542982622976007364183596921999979166960034228204448352949316594358531216350294705593973716297481687996854920284414940848038482905419903230322078726576329763068103188263449131679850925140298151324230660342527062772560597114522232685337937952502612111067996006969652911847962103475353457303155250832141957996751646984686014413673776341599415498785491883835511692820661088033755275029103723238493952072570659485004141446300530119854677411900679115672497593767266932783773091656900812208465671021883006369684902786896925441717852704692864351324019079192794102149448089379710412752746319065454907020462756497307978363317429452897060598167136703685170602008537851647039045810963767771074893075615997346544668636749316575968227417588181712036147528999991921357809403994634484922887804612538638685993795984767144817166655149573784227427523354503418226304924186917930952226589674314797345213055405990511854642869410889915090044669085312056308213033762093802071983803998015843805364682246266671341435536747605572575753125809965525502100046681634559463304710859921853508834430968490414089892253587109748133231391538916589924728578823996064526857383161827274958693375569589066111142974739206603953186929477121868295826850816653787954834287170375183245039800633864106161887415780386145295526210261853742971885175574566410131581693514304184912176121151755090492334219560619752697128728960966718388686660520383071598869627409699843318333294216588153962940242922943265544809178866728480933758032114794597023581513799383823957033131579253473644052281709966589993235918932656906246183475920095711189132900591861902007591363758929997764717170265790278157637804467927933750967808097586102512063632781055940302565316879388410213812526948798484923590761412725635905184764023692034634629658609386462108591289258088783478122139558988685622084569226622863779734183160306856568021081834529683975340842081476147507119991037215068185894925060036024108564442710704839893479535222902397273809056745307371272325865782846119488352869115952591418847264925979279688401947819726309049738341827514121327150225054032931026997212989112745784123341500652915609210624577581440036515184027503959214702215490189657965117550679078596857842111746881231972285481086318289873649777667087199588096498920853448517514989330132196389737748251434219243855259767279067016648833466009056003017025275615267340708168706523849178046500288681685278903713725573016127815479593268851009180607854917328166430516662334066013967813745198519936868402574034978409582069450019796504595902380500449001281418207047216716975496570021777130148722558844591994081892998462263238632156331460951743569977123395484506469160571256127772251772699452768606310693375564175381221345970882136955182358890848975788117634625234138228281527297400451359422291304099599454063070041562456545661248297092985810247953820732904899267527042814290609351819773491270683589602084880841065819855060980124081005372099764498509230729064709910455358203098310054657367185757097762329711185034159644515594175783660455024619869436895949184379326427593552140111302336997630416679553728574278559399882005197720317578224235814649329977566845764580015490933691283374006053495194053663442247842119745329950957855908954345162671076703652585495153601741575030241440846440515720144486197817001950202164901528158262792995203254421193232477725207649560679723183225014152648477108428542809268079782586537803401695497789672223517415632555427003212611489558386676037220263464471090017015048562168329324048273138525452666179535807699801043075720046953301829221373377719714218143079970509727740732897046199236048263261989402986780500261247386024132014907806111171051387383053166438495228971676776205992768725490631088378030957235021744347860632801006088442712222570612029785283634532583474743558630820708947988235547630929432637178428766408849529701768843017718897988048156625115747125014202208591590491913438690254677466045225015686264938518982935181192814285091910669027547239112766598050311644757814685659540079052195816576584421510509387392762939373350972590603467338682955414169720893869926482241350488272422316589091756073799120107481948827619404716256273118118027210365363526498938957407976735679001227113843095560976548815861510913825585658090138452153527587396279174000098043799240324707856824941879811321775618451853975735716204917562946764780923710104528823398930505026296178477431553413454986540619501508021355865056792745410760620422671809753849978395028459155697185378167899796319813426884239735062271274365903862201990457440895659395859082889338603404606929299342221962828949433608531383297565479868345378910783068761041026522678993711274918715223447509471808769972365136644122931047262547743734796978390074204798705235397314007396156617950439819251929850705624555030722791990361556054876715561195265363470536846006677860531851383815364653855508341966628808963232316482339583166373123561154970644711700178901873807134893022198416219864352274075412254784567037704708984795010679111925317526842427651598900113154429842015087228763213203476983568948262453602527061277652793925617627220825794465385651648880811541635732249772932651933693003575750638964683814702533008750205778424085974387469651112079511580287925378730318651798348568824087435651146220649381226361337302323238158248242570213769922014933377390474977274545004385346758731921211816625822992511397640743463975199223372793431776606992334729908200494165832044074238147775130113219559135632220053065169546318349872303461286776015464572665138585096108742276782289822346565560478206512109618950239981615130053873936666555948253237808897347281588092705803377195804321993664051756924628732275734681917708093024892963808257021225225670089683856924447455667086120811609255796019523797948949878903129933420062347059211613922304266329162705821164482936501978001596897698587101706277124274413874659732862175701788892473732582079585671388123763118369860488660480923218269666479413043522677635108320035029406696645858372570216055078429646137409631289715815432514223488291509775723991960187076174743713464738130015773493149373079568157615744792599261699874829115499737835961797995608780489158577599756855053398364451080993308864855055267207637605150669734962696878046263521153041757793689550126653109650326446764636574098772770824289057027034128986201669391917225801581928720739452389668529013543571600639977447710191895518638581433047053456952664986028561445727885194745699299947157413456523923898237826460633441424788293179345568205599742331733475986848225932717341109170965004169021233391546185480622604312456589978664108128521990190526574434184790887816650210780837294239116170878056980764615999157022525728703161544145649919843253954225618633347479868204274269216238197345150394954896320749162705800173424551648203318852172991881483112733535718994944960610312035688337057929221914375902476380240797500864378404530397358787043082583336746208485702553298548277235004938783889323796453300555517441803698870199300725284983203842193949059713815798334615729772089382021557429665574552218786655082607873016343039384129756359095711758847406740407613011488928836572894090487745410745233078953024276744068925601819812166350496053559310374302810314714811258791295458171070959686456070137546222890149816758719224721536011388086283306950686441286950238088676444048515983642764706261532928285288622526660621671982097398460683279780204141735835516577329290935528743789187441132808778359039681596329911784846410766860829975813397403976798142546561542792451785050759787310638497161034332474478994365769325350201154948405677094526319916114941504086334237245789876446058039148648508845333448034749407225954203867076105838684428615974624139380371910216636568325676704333347841010966262560878455202600275917751490925762458946782410764355440997683509822535446558532799880458376948894838851670794984325856655059169918371738806412559081337654531605880502156200424035192516864101862543394356343167028406960272175381787726674285077586995660301911528054757773950199230997052165085815307172190705062418604320799623681996300690588874949966632221710062830115411510512055390284461364139308032579445278260737888223609878405663105395303118574155626133337638745832479781427996921719644617064164154102352062753630014061878398225689627829818501260041479809731888483338288355102916762355188740577707558550644672932048013435317402389348001332089033870171889317269346143914362255034165052676085514650861591387617149351104377329757269031618715593007348461016240173183155995105502019539980643482021845116317043518718198479000337207512345958018214357554732782793922695316878380192639673554381582484363342722007645875895486868936925090682768161405556382113693868812592368273469985025649911369262397554778824517741656874885329604820982440592338500653269552659035982615299811382652432892387920462697873641216114571924600009871353869110081864909601644650408207893311318585005942308248240497029211046534687636382899857720176833022990567832822988341356336240866362301666766413237086685063781560919367324419290003131281718407046464473176452509112757894902514849976453876855950658338279808848185479497889518924130851665747893815712962596387487191968533885352892384704917428262961995702770401357846932509634955051582803180831473496287207731747755928608567577973191834191150122582349724242956380594958842388607024764070614025330073905659677787118104600735903990225798697214378838441316766383707345376085096740954373511577255091931632273055794385467906782177283690538688348001554569811498038435883268383187933652082891950432574000796631945495436063644320826199799367583507451640758000632933977063758578885111109752483101402670229544019205439300525609102940233494558435182078974399336600420853386355553095213264560363396998438221989081132999063524479491634383611388182034781330533051556318459616620402478899471808322185062910840648036803256083120021220740360862153700095921210254773807068464528688829934159574265533358500675981875400865217642494511848238098903725822015872522918593016172250123544045379803134987262524456139103874946909094226813069130697961981468692511483938586628277971748701512029290296512876176211999198932668481129721456108294458904075323779792744419751798707224864003547957055313121161153391199157092560115664328384539015753930221903274575787804753599921309220243722091840315986400474506602357195433603800405133319050845792004080413299194188564699379997054033401268125827396363034282354545491065989381677692413596199634669441795954676252414558788621899921456794162773314456439199481992594562978001209445670510841107388689327383668436444946227840901748267383569818760232080074831883386585570346140617183099167976001089732572047112142008130835639654475006484708101678372168294291558849926257954568289368562852193922839187434736246298820911339564706730813031480988210836322561932220855597183935123740644398497029834841257981331969667149299603458766662558381585514361208999590112473602483516281383058137782786962799511326353249116419341505852331139560033565030293858966846947179954246907316232334877456275442874649957006425382052726057432726788962813728850885215081265194570952036837854450384952324807796602462105990319920925452563745700171447372660743482738102093286484292881009473651279490584511768182003717925941100880464885539810058952360924124370280923857320831362758220609734652237131627050916900657870096562155697235634421595640076746630230189612702674182004262190547882896468079366296213737747940854634277932229157382032088409085247502559713368055816087669380070481377655368657855515265557842101223759927746925094588749861342241610308996468186586331934197465971613897626282422619581849795250604379088760321568989714567833910793450361067448580513614988274465483888792071884515998139470717693800908354337529069311373046070698267669204289516544023447891743775711593495579684454923320064657591705963851365279280337547164026372692645775789317696524242825427531232325218346156626360769956583007505451518431955883499462108557275114820056541665336965887637592126727907549959681926464247060577949702236286211946794541860025374953025347026455089615260613305967571116947246913271258428165283043280221837048133521199612453094595981797461789787018980267034003323363403306742070435548360174289247974544996404251336884331249774791329777411670195921874664999523713559432238596862068207476846936680514606318485291509238988135173245289481763160854464742625292219109406438035276256033359731153238165082257967232251718825090093112906677569023421300450172495060033267899955913272204572302777837584677362933204807460597254669955098689649858502997734757597663348156837718729321671555962058436824186304640717366093311145027401583993065725440915171697307090738407318390362115954552585360718704428184518257211259854966796899810970729802161655503147364240312084956517721920529532645315642187665427432556396550089132756315944305776201990165401769804733988394407075826150857114095999835098002083081701608992554146601010435321665352588027176590334085611942644130353836849697797469074757255805496494172801332650704869673518680469263953477326831022000562744152064350012421810933150751148667779911170275072678924653546338588530807291681756779261538117649350355836192940857392137863084796497021365759337066782808039547864886837392791724638756111636253625804998755751052999618524671143039030460268158882480992697110923134846094701651682129119866247332895129098847255383394589790344293073968265241090763074552579737480763606515187419831440150287033997590506144124705347475808233478703412410698292563370562882200900404692562183998780440158102049888949637772718142203111459203214581109652756034690661533199910324756866638759139115075963585516294329456308648552606083533748017349985464268760041526042727907404318670189334727055103385137410275254548979764370916376651717244220084825046901771463492569617351803241326358782508074151342600156460796117611053482502280326653374559207182334761729789817347879677881060872606296465548973681039031173790583233876733556347673368960057293838966244987726685514450586446810668803919362376158205090038185239657326447290408944256664576944376495350761590932898251298014757644013672556310048613491380366369941811014505554902580085602672600454827203011162438926527998809589501470519342418470016795174980767346435991710069860398986439217903809168852656621788437718567677284151574765285512115401192283148003382589257439606612293221205097931247842635521123407936803329042480458131843582564698650620473116338890033353348834903713067301566252977319127592285568370158593709574044406811729097211798380034457823697552027268301759788386609824918079546943566398362082217290859930593578786376483081906808552759931144614877061204629665236180733141548180117749714187372794550065064583739803017065521480445183083028017220557209850184346988068304101175692805335932663352105335012616915535646999946190948885549178956275802900644297815529938227891990032951115219825865581356303677239632423783045144491446587277307525557009284188527638570233306349568440337899981255881519746633896186147895330070773058329067694818102539747627794870326415723027482432515191539655706041002966868670714039500265943234301236917180400225903046403867461090770334395399410391985002379331344626202097045883356822869186770870238640700191151015525014121737235526672578987365553949426851061531055004280134882237496854235375577676827644143460513689131535460080593336882588189129544258749073600105332562267719447372389986146593280667372957996439761601196821889039894152856176658595586101208805799374967514732954065683817890746307578202008624962695763081506669188642442747294744949687558946916001342718757128045092938207157286890862015936261148501301376166661056206747004675672862300992823467870137509584279487058901254812212486816019978741465060896313138569562854022578510585618660739764472110601485013040489933376695908463902948315208344099352797358603769538359053869220067061375415214872936746978408331835245838279697391631384451145719371178647053835254153242437386987766246723160876363412085273026233601917101453329676217932380495818605155049420139159077388092829946750572867222844652277158408134165728713864274766843421474489714779164029059078433845565341898777448138587768502193988883550934949859609678962550957650728169526719899685720504216115947930418058266181280774663138908580963915943098738963328618684819411575328846007942216537512074595559115244379056780812973304689837459968414986943120420741306225599771945561071644412095145915286051084435562712650376221104013443695135110041719814870098808264501383050938272952710866904926121117953885366082978100320850255686019867654337599417081158037039913507821237809349992705518079329678269349100005549710152738108635437323960433774471246287797118319043309249791437150205914002208550336813331765642041041938762416346375415346226417360113622196004665051287085881269264775621174322006575796387016845437076594455262338006186037961287576113998144482014518968785502080086474322768264453545710752073058943278019151677263889082648472137136021807164132186424630373633098772485951354950897059929083334455008542065420762343687691942523519750750748094085145979604202415217479996168471406756863016439120755748467566634847896028166236394937803297085591342738121937368970237402151622475222674362040030382810898431775739985792779037112803693037261003201203456444016538872395847769607154204803878011520345259286781321770859794547529565259220500967922747434294066392489543176239994800144741681519598662161421715134853146719642023055246597339456120276471145441037976318081752346254794687051583632555963996260708954858531206156465098949426120936168339062656664544368628141883015011201481505429123082691550544562246002519799761559378214871412223774699027951009901238083160917691351601478471432536149923064325515496645467308082776542234349210826726449130889183896858077102040229319014615534883577066718395212737103313591618245472662063120902748649463665513223392855430095443318093303419121630939285946778209099846529953759484961695813309669838964209603815328893929821592280684527800481927318176929863140968103583570677200243416401071340406358894995728838264874363280906752896239486142671431488391342240818275796666814144414206690274840372358477927666815543109755830594313435014299830241344833975564980804639664363777579271433834737702448103435996252106449765941378644729418976192639528638727823148080681013430682549115377048168612322373480132500828617653574156161800130080247579267552873120868505154955334314292751838972276643312378887602288896734251461327612641765011956160342773740911433991021195152307696290982792354391953395584374744698785370068495826213258851085491912503058229570247354032290045818319075937836085667053516904188627890916484723102147656325608715451918078396181524917874226713077755141269298551231031451438812029888116336952230077217096057855519463764879359969274582299853210417985970473532439606910230800578957643468436504740079805898109605477413161197165859713279715821030393644582661425423398334097686302992535497789995994807544475712508353615520368355466183474607710847454984780810740621109737231301222644401120079408390896332078691965732208385693853467609455753504951893350138990300010661051817328320990166213892439278679148343890501247430155166945529341533264611066354917351711890737838951586830007749069058994653975355341604230713949049555134328009144721141853436956398697246729550977171119692316123166877530371532435635563210095105955695610199879542277011932981790979386893403031279268212292330258758175196224227141141516278325142366531571749461570983305158174985043176989221110010606104999769557513922673969716394261422846481289161697743812333817180904037011211033830539079415652001111528036519742086022147844891944492874660651822698932810612953369641185968196581386214008474206788413465012564932071372131148026401996210278796348096992144844730323364504461147190968751100379043961156572774183115381123131834384656025564964630166266245621145802299040396393004977625687025578973894801402127602688840174659544650320220342903097264880065148958856847280380820725398709678821751688979371180533413396571785874601548034530087603375609016850931092162954998790346782824562396591598760930470583991652776566573051136887946769526425576982008697019343444493381352155048088366897001099656806607986101861702748877104254829043870390158003678913759076886723074867170338376853463813404966434336279461019527690674042800259604049650183479810290249960098955484522846063148139121921695977126207183659164542882581169242032779024507851166290626256905228739768878071673084133466778575526142726557587635919786740295646924037609253264257748080911243675989653887924189827759602415182081232370328743641611514274424626373360277879549440240950661155446753459794317017814877618046221918847026298077810429659451386460991224695482991600139928559538100417270838476295579252710154280170233224088715161551805416423921721265988924637528205782784714207952769170372248470639699802755594309773182575514385329777054406874746056706619340701065578216268253254729596182318294615345582311167189115345819160710925135272877032580417445210557919530839413064021593225445793495420677639073827603678967150331729692209891493306644062233175938020812400862101704467149771246138952203292162467397492141596165746780970224320541709518136032177318195615728606201019141453361689670438440097765583627390673354796138024901896359604697901180115362149522900963819919798537861912074008671386014236752724160654765974756841506872226863130534179656204260966065162028522534300933600864551097700733424574343966919508384166685180379373401875986443005709253203458857489683039163585268022696634981700372053273792029024506664887727428938988558647620974117860487829733070943790850152312422531195158294832682386169340830238306389928730633656619291961357610709299854905244922276780478148540145863309027426845317583930699543153422510666317243316642541662627611381341491728689184591634055539950650866435168683618708651473379468602320313796191965795922242714354292984985039271276478833400217507635254287482744226619884855668262915170348561753061704761388230956181044823377233038983923124732461050949582015968093990199133630540548711395445629073215436647172348810132329174215747841930717549461418208940929238267345249311609109879814571291492496419617064641297801910582878457881038943536604818398776349474217150684911742394103213860624999336428884494933835761647856634903635148770460069508824856456781673097811694866468553048535903956580617171847620419860074609798341028322057393346099081543907151062179735271475768255123945609318376721784427742881645654009477557013706297625269175743297650082767817021272161622858920876361812241602838326395289932271490987363596746056968737609256029329435477490944078480590464195050640958013566594403778307837085617786051607426945690295424492200530019722990025829341817235359410785630600943356136494826337931136612640199007327475957125015888952231057599056646881810911282176088911309586573247319129489111829677221730139999674404862275303784858461382785070886887232634731184310024634696176198329701365118399717807923039328328681616316490558123028797803431545724340203338126238617254589329392702616339926324801832140395549327017542309387639212281631715603129039573037935268137114286519782545805234963783184484429165688544185510922916924801574276856557375076810778599087998640583834551541674533918086945313907165596616121635164316412228604060713825592964455634404525198401591338832856969448092818060277782266860085687347731049155063828054924169200736730160508724021200619761228965487560544346386959891675697904353923104810089705579730727024440174293227582357161049557190967495114685425964928137372110621468227516000491955360135598817046580166110243626687282626152509141877373400954767768804510557059253537006854912239827763595168048233451563127972946198512585199170276191301630759346257757082598518154676995989473751896559843926224903266213959061696648565852179477685351087029730006546441916151142344173297226116802405578215953720803624456462368679862233578690986633443496552298137119366304046578586487598099632371042153034310645706666330569131103921884712125867292739760712504398966462092334459938246053019869360010878231306532236208984330207268489189870740848714402427871279386937571966959271593331659415556344267669481684638401602570162160098225537759782704022208513067750648730369342037518993190509490674168536424759221772766390856449836659434495345256450465744502379045086960337435626081296705921869210837532020480159844728315784757366130836110093685026641638371671061997876140805260758663337237929812725877852882126298331968206195502716066519834992492624175994864770013033134486533688976901037832431198479739859164767574354648944689899810470405304489232395283739275711024144590384993752777213770003972802008803019317658819894083012202364671168644884433081682853758274009212827695778470219881234459084397278299891419009571122685287532198430093303399240848668260112347619112642151107144264231979090526216503830079296771640187542445097576364913495171957148794249916318689892416759102283064053428108372134933214272836863021994676039089419165936815295961769629650391410831850514156995655701952587913035306083126500116839805401714312805511870325104482096553449938974968896270038255748650182772900807396125574346535351392673134724082941588581966022111482781125599692672969625262330958078220043174506209508787653968053336019865739590211438163809034780592180031601455313991687925537943824994311600067376754494494017571561555229624028751216360106237465747620454078528758111787138208452920704436445775668571619220735956146149394789085013415948764597370712156400346200531680969481496647414671023702316900963060851734019893008355480153228278901223393343045183085005492925182241364191318804755686105259735587144779018046278584372628391192246693519156949078338352936543822041465274867176136699164864000307765587913674281205716698541033684191916240763559206598351748997279511295536776609423499164173383740820306349151433627223515098061078649645959038517464974304190609409457113775223107846991111019331405913488151785501972336394427396574089532834410293738508878077262528601881929085444427224312802645832903711068490248912318903403398299325922032605323943319401961395701049663699486895890850808550619704241036375509660747900572761818587990943673127682176160739620448799960625271154274336996844878467462355447283531579938183167280146998686080515645593929335369561606594467468013142370246255693064090461814351414468233248837734366461947107765061918474157686653017167889256348543219648396838555269928716228000538581553600647624488569467458838726039068858389922942979629162509964325554722274774527611204813503667141395279788379422962490580254089043659868098642385180501772953950872154854304401277789407674745608713643610719266984953493282820437390436686393265128348086978685296007300674604847182890519262713777680173765631039928145968268593319908894494106386758947617720980850530704605193544961779583795179509549871020218023183571430222544600568292582775904185608067012974426176200572027708323968126469018213776431153422168059728274014772697679175386880690021811711783923836927475361037421373089903300659585672094522583449668620780475256738933692347128047101679407375690625426649810284157274592490093919126215809283402461995293795265940748860662774779112301345575460342311077077496893851778372318453431360954058546217320961202018098116035812201109310632802802457974653862610738870944547209280362808936995661781477407935664112402427720463097270847351512076302842261857676673545116451369192760637150900763634953482419013888970110376471998867963514863232104081553218022690171872621435089046650748098873697067811923379159249699505838939180947451452625897803433645182837006004381557583562779770216677610096172650096068609969139907531857590292075255748670328124645654787943583714393507752397735614855892294642777997259809709559067876788850214159813373844399266682989825753716952923738342558284721007983515405934672218899835314945327155747513135071683220623564907213926479671457942735514860963463297969790805016818232371410283179603463656137896346718136747623552321514194275475121528697102383674632922744925181665631345628238667865109840959694383513952158425018867820703878734972418668433688933607932997086072917643730897862275415379221502397582986298303154517447222391871906358827631696244762307085115447632074638292210215577791334873915021803080393715997021989037359661167853617394617289980417592712293813393965954713789166305554707158721490155168785575297798261116354874269184482754081870014634490806162681970531977694138407167359463057186370202192778415688029904947410840561642745574029513251256784120214799471877131490548775933042014511188770676564082988880451241280840892231517344328815950305049908700838978554984421951876222490243657234318759934976597946599719969844588400533490175424036824450851460417313144603701895660035448756200628728736831567652165051608032520326634281038056637855284911883713753532102484315084566622623767278595298789274404765164714538279316287958937717970537800652618510235525966859894636327310605953105343525222273740094795920116165222711674268625642479751782540063928799268628666583915809974761569538498368710699289120770933098145118799847603751014343797169907703920638110951522993826517634179977460453162939078981642589328145979086451267836067440410279359074472057929816826225358682277799468208269146287354714940332797092940656492951657622120002338030480901248657338044961139714146332215129542427759772603615922225368657322492273156468911637787627607754499463248329062282916784619397308864351522964529537125511056949312502469634074230556587620669619376696502534407969669217403257912129366332070939765970873607888498891611280857444078668114007985812207120380557501607443080373908850225335061043926599057607028884175415999353300245342867585324359453160155710958493977272572457568366918313077849934989803681271432406621013837949279812429206982415198062516387173827848226686441678324195954174417803591926138935072998105956641812564262571501029053832021695581968976147182524565727056759474147195008668731178427524233536103026684838166448416590010605698995057721292448028659205870358032381002932436155758105825608442517949452519136571831984753481941868249217483734664160044728570114484874038451769788636687919199523993466270315085363813306519091356248400581980190309952354511885411096812567008804687301643552912366689300461792780702763389671701199616615733609306002894134096265918331791596412086718336848981012880262593296684266528613843048787981104528735964734437298689725282157843706504932055682733574486215877056448558152664052903026926514997176269939913993157793277478308687081927049592921720295714142870176237967063691285326222065317841383705884562568665944988666573991051443142834394281886189027169498343113831113062092969797442375856350219931661221132909493217904315265561812446187147666162311997243819058346198769851437462834980598512673687566486941718163938029875781991087814918102828491902788244387787343593521699116374611653301331119204050155091135195896699164417387667519274142009064591775728217592052016967350706407659972030145304042776575237766850440363949682077105802257637529051611514855496115963082910427229100807203544897828926675781458715645347085380513566757066954046438849726720359517389319760584918408955870917814258441920724902670364137154696731034955741141442582343281662963013849573509732181061909823430053757073455005849446744486440785214306597345181742096741162236366984384050979288362876523197684368814619894592971478724768279757902242528953652611594940350854667453527919306034728470563614440989893722197429669726559066982956443351201464247070497172676780509749306303361443954044662229269433556446418240969327326398307520630859079257388763860834474218292739763129512129477624625146477346530349330289351117525078006671729510663551086497625832502496597454926338281866597351221425071084339179976460560253151905895590964471593925407610446171732693471180031415973599105829868653715843132276053445455848262597211443608467748114968194341478597870291782675947159516894807188034735133427942062429974071301999061568843472491852629527731842854734067914432266201570427920974467438625311727727663665083608685946490860424070131486969288174560818673343071869853757393167235263658497718233341705099176434227787594315311945395590693998747640090289355716544778770761616552867000363635742818057271146371548455924364469527496068597387855842242301941619691161052108134265803669066100073214593956485101569919402595195114981358717853422921345920422097218347862437523681069192000017849299264996870435671112247290287456286852063487113442950970803466939263025085487889944978029218669511789823551315887926527837271941993633723439107239143510683211187252098467879467430030308400033745490282065429507466552635866718981379595973106898741440264708584323567844292535830045361898478027381466586677068315776161044323203132888338110474033393441879239086181388658200930720771324240773101374225320843021173179005449680842926537531996200237674987334591279452820319168446788347614510496535661109584514966697932813836392251383469430037474652624254054159212901609221354075882211748522003126742805967117074852894572428478125263239340371721026469892703985384883964603825853079088401135232380482646613552365420955008925504430794680353855110969705125920152676568194979332930943387623584938289556588983527289468415173912919412987368838920017283341500230544516218360634881363751163656083948086090797766853806431312173078111291145841129616867409695556912950785832149729899332582605728560684327403835958478528625479526654853409647433602978495312648084312617472676980162110633302508534736106531509217003465075291417793956913948765419453269825736874829051445987749840449886478752327452400233652629918475869304511887711256880667569124498195832478427872587348667053307555324372031002846169706505768748654667040952278727880894750349682403579939600972710208423309504659802180792858957852652111920607919771459282416306508794651327103286897654814950479859289929744971920122098006212787862996708565768353444701613535810628832953514439482706601506070305733593569006658636809783028295139790488945114455771046426205987882331921863005352430577807562461876390237042083491785110100512668034758881899056006389783367668591033669771247820272042328489953581657568673720151276887523595355731175488968256360435676847465672359595394573629014436269408844216942476597095009372583741111049876476666934173098246986746262992586259142791994232773606533663817256626085265789832589506722428844623398025364617819111357255692926000147442581836242820829249183698982531357122071043076855804324112515463535212389267464250559313219718810416185253137134015439127764264485087721758064722599906780906605073775200140667068136349751482338126854232642364619739964499061213356211060499106770735883263802305881333017331641056818969726753105085047144818309904822049835730436335466891655464770182695240669413777723123527412676128836679528884330500379757903340692596172757615930288288544024974643672146970649989582344834798431823999023129291393649305648739169861494850422124090635937641875276134042122306123489544012336891176678987561580819613925170628758475426386025094773914725020797688108605480991473146781178559335215277609062925162423736720406399320286727840308562410372858667975871647913425562162175264130188074042265587674617442503586519158987056731146198811688547843396522226977564548619775743370320077143314171012487634671281388706952429104177297141786395007822811831268416116255919654428451224121047597978247571833062252005726509193453290899128172623858215089417157869943692285924470753750474087722801288468042085675683486809626610688681981524225211077502270476938822194919303667949817612317253807965620184271571642851773005995429857082037446309429926438243228166185257614766344126488457954587794163239939725597397614629081261797006719815851899584759685956439444341368625254052976901390077429680664987544684027114021961894377185283715947183761174681909137247339171026776179728199361307548049038386141241536576411686794135637143429753879633729536149113920656286142152164450635367619511227508312691088031411955299217688041707447105336380749149426825821957362583844222628433095355521813658082727804471107647378674044318300110951115553421775080328749102243795662667873549455110833974820635140590923161592927466463240026022602598011526545212231565443031827360995183039849712663133253365570505088759098762184305098038282278505459719179627422091092460533796563392045645879087713754731222126028475400189873695308537031329049076852590352843920817934839886278166001141069350894083604458668253925981652334497485336771463497558661229304021501050015770726508830358397376868238806649449605012864713464287559377464772926772147448276095980329005754440141855484675815235254073183923804653897513621576604344214395604446618807578269495233920138581132327897449985166313367175562440691768060470651962949598445223946727834018924006712003915331292360214268984230073083933589949597558914840622283549338546584098093169021571247427879125179119145923939100982214439181689033987028999865104147697862706437884884920284093806798934186023656847051469604966496326600978430757086589361652755780706754461590119571366393510417657061039526334912888337304204565695433578516704327029632947179803714787138968631485865498346342843826603780239568015327355405326393690859533032610441497988519487433064289386130254133648307858936677648375984277536967506128559085274563658875859006940779332610437275980461911070152474042315100437945689650535943707509765019462778058880801002320821515842774179338948083713854922465221836009174659456967591768858594004267562165917297322688976700023392008725680796719453659674555331568937673126482331887533464792979726877097625883811702203142037245798579483197839379487285451774873364713041071401933345760172792558259506146636076755399411943327142822656050245236504796886256261606123921907302477918895391870874717534194431335141186480454443755769320135964981925042373929662537337757173264340476796997194903764533936372381172791012744110097598753913973746895210026971259502246461241255052596433972970285398550155946098336964560945784105994106602330883401135076774358033758480237008900243316784475122220561931506662989854288501516606395313231820971886839972170444860389669322179905542434384506012958905841990693069325686267729716622767237002752136933770565619486511248217625352141965316338071491496108407357520712100513432695614869777276241612012383512998203925722812722876463552672214382330084570584852776099069994803753876515789695223300124450027935402012194810546766124955533821640434537370534773381540311555989508313785569723948645172930902189344781195811701616616299703310862586979519045004340562522204904250876480362842454646907534099730606860600623588027930587866046814958631236136256196835264927692812969610311301737637131648845347237077679702553993278992965924952360187175643074210836277221667944200771337617585071306876770228837759355515602745369849521791968308611149084318100102542733283441540727917502180430831572105471504676840014506446754382231959580224221038025353253878856214048964414194027833650371545507926464616386224008648488867893878415382790230500651733518800226377365663458938366235020713452899558867694665538563322811870893693290281822472065643424403402795771668543118300434593283818014247435166840535534595318550708318733331094691683343503786730672474512073206115163491685631162180705630626838400952635439803874326715268361557360525155649162820429602637765163037697733985828458057906912893941757897357446518198062588547633761077543057553333062994100926353773522409902488284554366955650336931159650304522401814242258801855710077203450622369663339783313549513301137073935536578213525140550574351538176235797376576203063545971286079681420537042111267272501263556039521497903284388101319254157979227373019947880134884583141598075865944837211744001320356322063990586077305378125026010905601502557265676358151388809512968175390051217611908666653982733705954517344328729063672973326404107127213545801700981270458549683626241852969754001258347691864311546289976968598504590160746461370035576904304072811191890404727696370354460133404261089066433497736864125129269836526882304222094763751902335468358869000607583464596733998164615855330601786688168289071478861649547805461317961504939698306737269773268243065247583990210620336796177684098949559141919945556961314445370057082992356950451755226953653174636749010320214187826931940632251766004134367013048640107765781051539958031472722546721818572959950043901803567875649642067973448586931694948131409329557035795351234825939515563088122053485622045098854550701086703528447358213860942707890528715980241384864420462633234750152525535927868387823052963879697521884109288508113275735915149255867239592012071427534142487975866462810056603339265900910316487988576250760563031774048914272730277919512138611848526837157029441202385140730956325772140172047152944420640517315929418784336807949739972076267777417182503183473653342987396827489913312999829970021214226469757669034012518808479850229438264261212031849385500825875183297320592257383290681201646629405367964994181516715532828666468372608316283355136373500277395558864984611391724746632133185951257566960506491743244946450807006019670314046081932446412552734492238756724548972248951845936639877508100915339128362337935310458155060674036142393750915417783555885195613943369660718125253331624527610999464596490808765773594783328569029069095423575005701192752445544169709390043104493568081231689592305234681397106595674472626438980792116694793709188669500228394104531733128636505738159982600861208438070115991637942910682925682002947029706032846801929643893282913925504214787892912048021284854890518453337310111744713395124194623340194180866998211477488971603019436558561075392446253097446202793171608740599352619610687954666714295774499969644846764960311747400978470506115365192204813542741090967963038923363655981603768749947751691938003262564883280890594079366227049434176196562978891445464976913518932586315026030945808565811712416763262420309715778319536145559286692875007907249137512034511911402597627454442548349957261407397958782306833607354067721586462175516138948318230944770013655405677474654382747307704878892209240601101604155349225115141251573717991083217924092256690204995889992185488415904329716730236072627910975166881421193187983834423438217572923853904220125622559456268365447721732608952432391110855967180037572161875862939636704023313616973259587018464729337555016448719824191285014677585511595642080524937734468057415473789067787597538644678652356067527609671424226540607515612588209665340160220214821846252325589281655753710041896973989289087674445865661906167426974312816702486164852702766120678973192953292555861589024612068930387486800949733049920498280159093937495384512996937465645642445130986013569860002396595107287178706740198843764266459672390503870418140777370177503972100809784905662683245385794320407260540258429428592660776694990631497254643645701051089536880495573063878260549210561155514775811755859647300884417520641616681801104040307969508987516577858049520201206883545211900705277351171672658389951742380521966030204067015144800412512475523874313153247408302972085407617277677535361026822049706332103341712448970476231867369190471697985557793249245423034527266669967169037725698857178691667344849270488222883752137168368478212272964411668756599961482567820360560246791708266769068659828645653199104322753452832003500738539556307954976907797146654229666169525205754273066592533771063991906028902543593602911857506669044155474715934790094794393595309988870003971557130849103946993173247949713255014058032175965517859791610541246412917014307818589723420679158184211584770453107983379155958392670807636988920880526982844358844216454541674293404089570557281654792003769033550969477311253107184198097226580738505010739395377178983466628338109921733024372045522083311720691926565719201924919390593182159970745369959048394681290020619801564450409538858574211234197583961200123134070049543608828796270738210759042780804221743467728556056522049525530861237989357794361672598002780016538801151421197991901332415520057247118682009182318989036711621015607158436681736267415893301544435304813285707964001250066632123971154817089762437035509525126263677532611238612393359921821367308439639143945369994494652680031189358012909421436093350920854589934887894704716394296244144734653727273181069927069869694297067147461112370634994327671869566378257982293079143431632867975266617067247635429262738718200251968548487064465249127783770316107255285392392376792381082817943712361440250387125567700266028881807934735399627563371519767437814027165112937486741553050650309092443750861403033252423986840592245248139235325873102560445449688967348022304450792200717162061200486874269133128691507529311422139280520884047298058802148616321577337786262933765553836321736672582195989533731787228731249720991568053707530245524709039837553854106417134443822023420612755330664852265913506291380051007712218380932968128756387482940909916548547970052202724682734007164397349306180462954668024361119532974453990763468429251683873804821154034504586093653130583986374377543581389801292069360308568323015005464537610844529518473659545098539927314343512430878048041071394032933794973276842093716273268106391175146769927382320747576890545409047514047496480768554579440007875142615086907210077375277106941862380971528607173198329936258304792497906575232598061985498005075813912914862189192762558136646656789461053144882633224957453128344168759981736727858041759929445904391430192590746146996280168836829355522060275061606328761418594681452654064168217757100915857748879943353785280724344300657881925682618799474706925472323111451757813658185407230325545366548153208435468643546999343524450938970428105572819078704818176405279659032514305007243216778374408319120592091573492192262889446575536325178435277789861310688736282800417248857813979990468216215275910137438396389613033684984059039738716086409759052984610665400718475311613963235200646979694850515309796639477665163390106867695412599010116564872633739567656871805676680000604022591263389337228825087485302453345782738674807487183276677383862285436700854132714282742303810584032452597202302638011767277798931640865079139158332158788644372391692207828220544492610679893683665357317279652643653128175793312754795574894575505258481099009768154089870464872285601538305445132296790282295277018901869054491694786778503960530511989705022637415342172243190300815968775319835009217273293855053728441014792223118216290269513073411789866245478330809807405613785863934142695710123332474274152145104311171309391908111315490781635653691740729809356259966587354998314888839205548737133083817353885360861000743086317853957074544460038477621958329045926204954146022264248660783633489729541677321521279974020138234751738787901240987289412398818253264819902559650123922852097323532501579722511779821763092930757982503667643950388618410119081119421464806949120630707233922431600822855565212809007345250523249793761849009282081459448099261320306205894682374525123420820958447359189883274556493348804765972786965737063297179904318457283967893796681610857215632624537602526179815496293917590915352164371528849331397455974516408837781767876478477785856883943569224794634242104343174207373540495495394259458054191002864282154773017151635256701479014300333620808091742309959543032400969760526187198685678394913287603714313079802882750716360321044964810705562104023960015727128248126906142031480547365872835397641632037402484294022724775145736462055617055424616885124093794882508461876113613293482755943577282912151868653666831731772961775233294146092146799714480705818669820253844531705237146207080524786832670253823506438775793544905914154348475510445738468046652699337233425015212422530931597994477604058617099858462414761583906830743649812703872557563505831831997440767033029105358329467737130877513699226696216569464722052767872057662771529163318433192561192158395855614819724590902745906962328150951539831805913067758513119032975464167803675419219538149040453691862766715422172324426548511734578095585123475881431898088783956265116520233596836258829007179095086077780996906153762487625967085251508717038860116592477825821690071461439321605879183929672564446379318934567457494511374357270806631825241188632403010986359590395800560615127458580014690524884389048648462662338944798438758711213205895265159131337327836339014986220751648276516482380268324311859561043483068147047591380224624739691734898898968028913904539331134477848936001413455262585802993507862513650716506023340190966149550068615339116961940171096437670699577627963693430765661427198807523778871964919781065421481654282679488258602996081041978221293172599102559294063708957216145494232678260540517388643842667471522215857663290356289786807485760967210688934861854635055657097758189194757069106761329456455787083540826015790397198018351053079053943447161258149161515361548547688196923002985491779808021214881869296900194475724914763829431080720960653656559299177464650576595997487532763425593041587975993941135361827976955500174871178645867018014045920425084823785589955739051683687913742107558465868868948838408218366441735267742402493653811675546920407255109642992291680397980515719061255913381047490944683087722421856785240204121619289158479110116802190106834944367367738312755060769828926764517247197208988970637112138039846206530558423081645468491640279658244442366191528101367457062774790108928182359691493462847291073239714975226713634802577144053347034212383567599656993561540075763722232103863925314896343018083414694782993411130422971128147808150924330575429134026313758921910648121519166837684781496054097360532570555344898420995570473477873131813923960717041501997043031420333169972103725357387617388847374033395215035090406070510466730860719453934997957338955733647330665246435352810286459291549584766943975115223073047799520310602366381168512759304702282818324291057206573435104902038210725119239147235612136126756118066960733045212281554000296688775875942855943893882919698224301535386628142901031778656172925823375091789074937959046626240887856443177353558857132650992618264580656932818795591858567962057494512051236194612055394900987820504859688975963406693880448778752066904562608162429458233624758713292487330349605546997112981760550590276440817955909528835969645414444533779088868527671912797731067454409399270869403426131363265661881281774063162841572805818346175548087255962933668648795497408314664840431485824902006600779478938041894549635002886907359977439959748004544719053590176866945782796031239039060143012822653345560402624888293715282648461633261829307753839266478109718547215494905003209839362831358848078868934626831475719576952480195215449486404135068436902115919553917134082233264451068112548791926561049466662670275955908133785191953199770257593763639234165422093004445489200365367681446909138695700576530479812221352904219597023088624861388931955073320217711774039381709788648077478700872494399607137442294493560336167800508330077309404932770725324840652331749415282313020086134609384845086137334217649842441279287883567491184373695775055768368400868780397975973933522232523232401073810428085797518856550434261100097495123401448500687929801444031577899613272636110527105797600894541980395315813669394942242957193040189914006486921932133081026607299380227589540520472840958263651774337579616131133731483876169697951636540800204504335230683091763200226272105324376205405062729190159009637755940320057240001653130866792926938955278336259411621374107129155190452420224011160094927229745176766234987667210652051797035488459310113775508136440020206895611525491248756820297476768522669865303848488871810065295079089803425353615489677192237664157473472506981413847797142189952246058465487035738805869438185840436857564193465987666166352777628848197045144826773181560795903593741150866085267300603583361184665663294163151697730305130799276262927194690101085863844998352776540412606954120301777689446805134956969331211695768990869849327675856027309046891324511037570741381329867898786361212591985753737452505351178961689511537794711387223534265096959424450957347346627466767870382918628203332098213197863625646183501784697412719084387529325106820491629426904753438753423006234002062371062739996379679146301802729606263704197743037992765664523704843389364080374823441063481055405474902013041252018427652241748859140131472873661798287052419624067039621376002662720637783011399108950089850339755707789635896129380086421447347460767998113998721839288839603326651856016429868339892126629229974684204671323977595117042680227805628341739794948882949121880163685722485193823521850899915985532246546573021569784236219002056103112184489852191525859341065865578272963793350253744160201627967005182365235330492680540816055817236569330209413185350405112101934881731830482519716504636219043767280471552391479967333788714673037779439970349570448625731955576755119877759928233531909835545586001266391931661591189752700097317412688862188553778631333675723285545186741261391396720865295123144743168231448078172946547194245479253713127443763056616216902118550398939108819606313789602453460624801313342389512864449524013110176562033341387496254225472236855507535834459861618941611300840028329908978471643846244429623083281509426139783411836675496110385352575613602448250817855787115361250234733944450498183214779376798020557250377021848973374114868386796819407817853327008212302229058978411878974210625609831465371345285819478076925255453182857557320470535130292709623244452395115407755493664698927202049293564438122325231809102532990253675988322792839678205015434419848703948933678067905948091158904553916897712214246898900864910767233459108708000372835852452970714368413124492990338349461280503437733644210222710881404464106994308837206132026679214752210705706611858836669733878241485329909803043211969893446705336621159793656532126961651175374322891550541254268132599088382864605919749865782259238926157268802404213544526508191672493457789616775473726757181775476513601645507561260933254736608446266116968628476841483503042112330693218075117015885575402909302120326059578714419736386128756409764624911883872803994630538145912530206628321383491498446931499021196491343416486805775324794867620144761167972224906433786252535867483985343606668881188488145829075290036993292665183957915542580418347875369786519161931233404734708186141403579965935575993626617260635392026567332708115449717858586086648949039292658077079940668028285051584754519081036517187179470643912261083836847572907376192282462998298619951309657715164498053717417247900712196960455917245066825028246921341766897927865118830494072905035261874105122786391571488523402821536332599812706759637417335867985993476839756458982308244414172403802321554377476523744002563987277374481316966647356759978137065421485603528592594375247694986048821802475918229745298738309867198954582376385700686354281833789886500043626091357755455860227437548905304754181003795163299507864382950037031775083970326308489039720318443371891467412182459913408949888203287030105160497398916353378966562742026550100580652051939493456017607790813665256364259511138175636314456485296440102150119029973502049161749587221886139360429649820503852446874875224751055280389560250332170566177672681186311756932532860583559105080937247250933164667601251734116937404297907424714756815524154510487791768817912802075247815387160565628509934784203081105822252752742283348728327922250412744363002061066106473449953979990965211886574916045305710379578972106490137111610149036104365348006692624551516698654088388201071787971126817218349012280482394078733468629008597574920337763389693163313940750055989740582176433468528920780553304457884226717929353915711264175673841290392552915877013985564285854443273079939228980086472330289098307198525303938169381171443822594492126128146440386749576519801052002085449947725745603597367974602406376578377613486958125947173642333421918342260482555328984402513877841566195632184606742058258092647579708831349992377934277802636774893180144997026639834602547152217485877008094124310472280532898704723667668727129577109260353822011082450368723875115415402754667951501034371237387444178578300129888882256198116423651541483189560406277268498342486982899381573932250118104704877133534931835515664425608057464848799181894753211186324935767570621248587394194306688010932568996835716138124305886997579767679162227881888322108854647426408718552071731145202994644154335175197675453184180862717330611515124434251279766656982255090373405295391628226214785775607473350739297785439553928736481306968899170163515478394401179104946179572068555079612708394285021548750379522780574060472638111859105805805102129855352815690991781689313765277898944753101641617290766066156190496897942249041818381527390726040546231571172160362027684666916885355330190018097580472504030871051063127149923860873611747082420478948366433321535602684816716439754817112455504575586846550442761076035986631857669619295495349844170852555938651289237308917875653197260513174618890318819609831103474895504303009581840596920094306472050103817236752468172153755112859503208719919154683302378987604218351278273522335624338504266347823351583611363690826793621171178338471522866325664393789958734647952746765708905179370836351071590650456763369694301417627255389104329744011176590951067155701707286872953281767931069845603611776262331280235759892427052802401311342500286825807613357638397978308285629232434566501849427163856140058919388153240171307690013754425984133956653125475443456311871588713102344455209565866311080953504851902448900343124806210031428496199891424344570107294558962993634538659108371206910091431253987862759843820806829441231339364603385466113251208746635979217930136545756502526833287773838936884515500850073011506545722000238758767149481850127446592825546162951520043774634528043516048983918384788681064637579857250958175903224059549786949543597984836030443791270858441404146531784366699870585467002755471299705176437322336414281002664540712421876699880612179816943940815337747771493086094870348584332687163822701106458223896640796915092601483256024540521875523508431157180680065215049887695337787435288185065195268141122058036455459440743222629054104476666065930271896603071851686023735844120976362654171935755870552000009738745617634962272930481824658023848586357351101430703943356727681063437615048320275134662231436209577158320977996987009002949100118138218697112690344122952662720305148927897319293519431346406086144502196683539074712255416553432308515263272133695418959376092664928064049834275775284946505555503549524586883015627776594070722532950449776195689267238435256413580217723704705477082472658535943888273196303453868375112079675632131630979382366905804625366876115276447623561778980338386823414050357372068929892414926556965967775368043819445449697954416300621260624113565262978140248664037624666882871547422758004186670993913437727686927190272823981862448186665052351370912363063356857236481627437423970898468531794728337790791370373748076235447541544430628265666065628092664412326449654842295094520734623869696207731034355287794675727774635420812780680626779545938084518963483043506432977909353397269690345127387701764115521948361951667131306471363590844989004216540856922111387906939543831617932083363258098228532700508777591446401108777583334643770358823359437127244055819171081161602591960248418420570082398175343790840536022979831604297870307552660437879580137528871237058195707117514989879817186610381385047580350709844510931132705658704032879004967199483205874553222196606920794669332042201634876220603238778808802121610838712654415726635719203861280453241426844276977777457288939176137719245352403114445796604431578812272511268669553499349888361262074094646354052155287211235197232337447557668573980849341174148548890758491488711773936514124104080645826930384130823260504299010793538508830506762086904278680859890402675311954019655067402734256070924065852888587487432747207183308906713111565816535278033327343121451474095799509740323514132378604181026517843149321774984996969573670028921630354349778962434591716800025044790733298955427369069209687543626547979148077919938324047178635723962797474739214406171073425980940813692359887199812445901260564270431490660635645482059781729378269680974892297862826441755948775776681666234617076734912284630482283052198103664552445749374274279917058779210859767224424302263982708905426060098844821625537268215148761435630958547077603195376749275617842779491815228199977229247933847031796662160881374690621035465057712816055611611587255484201656104655162268452495122899492498320492967845085499690079476535501356149572924590777287438138182306949667861465677264509594050686630023481713515211297200687245887826140182875269133878445595988524215375813794470053630066804691813098523260596216149548305756149228546348133433836322029904429976077936034418814103726860049531555341192198711840720640666509932825094296707679944121090780026405464891681338362323240129313138741103402712978819142933047616828600956006558919090237042000596059938104787084933387544514942976438653647763194805618801935978241929376454106952184423229833717228329606107748754735450000837628826786005972836246386998600310340597108546209040690839145184674541852288246263172249384478512576923453980571546900898039969385297393112746099858314819822631359581808784927160171228767320057548553491436464272436584764340413090297865398534026981611753970966424560225745782752718858161849731561498414194069481620019822355766961634235103737172437922597375107254610309490889448843564672310046252250512886319756966166671356478112964520329614588280686710597228073437504332595294926569514045940070252346241537679804489389133698333406482635694358470890435562285428868945976572129595356840809227673576319397214037870632903208846665861316207344018262507547534789620355953170074479736433625993810506114732112449548530919403132576203623992958277257950919340843215201035892372220636872078793440457843392537749763599823191343069516768590444595841864257549200667834309102521627168020850340590001215675937552224212447370706844032045757742326006031668342543660473096790903152056691416043656810725388047829207635930242286766034509943406910418164644473423480069250012052297448233956300546103535389107064597590177133763139016505162735958826596707815993287982957939427931947043333953754633558018638040030183662799162564363414130786175421264980238114377865709826261953672716956723710452022428110709459820997259104721246793963448834421610529250121057444631492121055284102090452855593820391661815151556216997223850531764671038557577013306938648765033850074950693174338973334327036389423299842564275633276387627519331858800603152169577237090482346642848410073987224370127366967575952635136168447402838622659681119263017673482179354884983117266116786644779260160442709961272631438718186360141034466053108212076718236813643412691426848813576150596708609182024971047587739039753725480262665983625939623952973408234467257432292909115131331948504646206149065276068432627356267685565181477692761608703310773547852168472711258430411728218117401782589116895144797943276472962522745549619272214500267693461467937327454394631834152827337650189994491957415567831178904532168794715054876445051162724574257902857714318446709954761566409715489071576637426595543990867659231111041281035707283257124931493801311622299912771421149705784945390701046003311064294571676173929618031134962110801820332204896726385474677738662941853220780293584151926700258461589221383618632135015353685274985246375604516985303098070502358035062946517392802032629869247722651619039328460957797384354793667901759548886145370431704547439301570585632704928252138175152516943493113277288821235738688343662643974052467152275081340035445416784107405107515507834886354832830584439128874426715364606299308953161311755617833591398903952812172400442796767808696066830024859434462416269692481949358841917851783431582649350192429394779521059653351765973943622982256645030782326019163874374742170642535874391917665862593822744531360695313659328543612387952677292555872194885657842652737263724567370152724305620381451341317681032611430809759835518614706034968188748018811707579074224373106779931816599341154681438120424982132641051863318997520482632681753809276772684875533565163892927166513834065414584210577599471911751661471253838121757284745071413569146206914268902581821934357497537972491067723068422082902237107697058691543849803214373951511014138080695694736763912986558651551362683854655104622725426198951804169844324653301501886988478846343730069220925350422606718037602301537589677231315298931089657231366119305010578108111380165249459687342213207799362869362046776861027425829027297913376574266615910181873743121721087096697375758007648924048757145215927926720157958499194175277425586300230087820626872897033624419899938758301249678407289535565098829336763164800412326991143616546185251054498918262102860907882402309317382404607260964369934990792871566125351077072729143908479354651526256762563553283837490635860931300770447005361283863036335312617296272642250465231686414967320386822884453807099400691062794165305998313718550317103323532669383779665241960656426621289326090089330690428744717477480759554977909347559228415475543159220167454756886510159595931713682130953082742585414020872195474372364539657557229494580604088695008168004281273917888124083097750338859641527370824588519045010922515197524223277089739680536513873758741980916505995998616743178107841344119383348908226985164380542823747066404813940993495885048870119412644730816973483718815965503841227836876581206265925191982415175292371085288032320016748068095485525201151264413687270074093553324803296446797082242312360500595914913088262711944723686331424919669416703957005129003783434707288568818907391832675620114156728425770061601107537629025887030280120068940818530205101617616257734680840442107848315299357522263740511324752308789254480819425508653346942589241416095559876722257683832407523186400442023465959173673107667951012816144134143498839462315296659173806299131728199188353062723133307309986219059046887702228768154317163359295447899353326438465286016915845304006569596809790751871940000803017623611841676566686635194830568673441978201343504304099263979441533694343468196199715859906932005596844775390872130374644208321649386743488797499308591764061515286603649126084151001841369187753831210420046049957276284404902311825552270515166929950711063368789571340375843909015146439655484255831870250804539488254235757397942085897241206220589065632163364252589053812316240324139119806973163161521410787818364691122868843057788615653416596978840037447402120680409630918953566253472181245441481514368411587402871485011418649786970907535461978821474024903338437193360824472627679720642023086176538375920230869443700078891224797198126249904591336138603792276157859075408144421191935942075356130577568156381497691714699330370897346964502936481571475129377862503913291641325772633337206127326960379087543751539037475117514513433814961541179737694192177720311376969743317101822793032793325978728863602818919419690246091930505081982442301225550829136824291760256818362355145514131037151373021543908777390503131163365987974086678124976279572753735220431472935937264241435915111337782688975164677364492410475935489289114207009277081095590247721886138567572202634840299109779294002709636318982032898750238967281785756440854895109329820620083368386572959552045369136647414015831535446298468001264169899782143676130702373488059286031226296212059676859957206684079307990112125479518261877104258276579263447309931183178534203307653995132825609156606115358583409766128888792639436831481763878568506226648278016792327329896174670986352957347829185725362974828234254697409535097625736786382689402221189654507621480450718410946851029889534472734786677868468211678624335596428684173959342156324893071704203914370992033175555345310019905551917666657306939739715232178093305036834860165008469638112595047690585657710327095646172661714233176435151218006036830269172831274152397419015746164639530338507413787922563749876666360819505940223416866659671189824179438326046334936458027280600190867761461585207185267252864329971008266606431124737330090850561265023626717872746722478918904594466156901343031828115846646120751202671867471461967136573499549187433966042463126527697570224651705592394119147502325328647119574721970613053507061272108847943806316723656957798309651351780843968549131043885610679044190348275626072501314147881708407253139095015900464038975470964874105678644041537313266846532553357070210790836042364764114503856618106827256799914033134448147828586624672346754891485035324237031119069510783694131303073349928388695920589152759592136471497382622037885238423850624927879904785676868217317525939645919663043928411574929717681493047574934412432285989437045929385050106282536278249118479526152424519785028657703659337147914095985478776641728339391792285623910450981906801898441283039621757383634518043154004154351331378698120645188156944281810535886066287850385241355525408985538256340201419610224866371916392056499316392784749945844384233154712192687576027724192152620848199030846666095231938376735502313286125906833893917980326760019659396980251500384246458496928257796722429594070021560629736491283503882967855051200031400047409013442099995022165707037128396335477826558588385629765728582405135702083595091636569465479069493094961767250192922648244658196002883306541408918541065023184504866405541011477345646375324453066629083599137104377026990810629282443571306944978128811169001009558535072655949890991461518387900643192049889376947692936987177529769065260297378681692668252259477314673637232735428817860135821257328955026605066831813239190508841800556117487753237466885099245728640365312895637216290118279844238413659157347150296984807769096444605760992204555022128022418523326570667602457330054167064283907822364733564994066468892945374950467899775704056392998001604859568604444743419135084255375989380070583075053010014078429288279804044936715701469276492251674625638237034367619608692505519678779603560254482967948133897149957261712783024228882969143919489876874307469917142686134637888238418990000728339269384220003988165885488976045477706948448360168759983618947146963717317888328386095787031920482052706592994511502244491717219335601800637921065167340831167761193038664869459918045997646818998434696879890440772269415057900220542143424486478546540817126389499964041718374286877652528334131824306939128830919350324061184821082540909891762353424779753944088790064683908579848817123518897608701096061222699961904024671800764541575078240589097266879126029877892536368594730464339276135130222696581787845822478019951085772732705361287442283838808316190606203709728240258591806982394994635972552644516733741124412746970930093286940493951838098433414351818774368029310579220706953002443191351059737159048820729255794094385520709491364562314259527199281410990337885789150735460239198098634156222456101006580319639196836476609917531468289728246138776009491297471573504564343360792029002275455979432844273177617514312634263221023622569297483831007481171506962680381955543017716502159065486123170750180587990375864388510690393220073747078139799538195980134956222433260306174114491974642708374758676077685505121455936978060087287368580831357045769589423739178576334363691978508468244910197487587067256665360928116751226264134028225422663307171328490360657187715698425133331259204794599985647240907239560520721494417672200015686672593050562723450311831942405880036292267460667875173967987865454276811020618180398610537154361101206298765352052138038734680411285148735087381247638079884343553228735959423907460594449797995868184129021521185430333311559446939476524586917788739927410222431352006290094909468840664266687647183534871862031185852239939213114870368510094052779292776183523663160642327142480524448532326205231759476357443979263983242099659054388933383319490865759967690151123621184405650800824275016342730548518505297296080302825946834087604833514080386660365286458480336908132332685157879004965328469030793647419335822422066682933070366752343682732915403323554941434675670274422626598479401334961940010071645489614004062045149464350539492451154164938212244000977157392836601296098522334626401752560994437559138104562892527598221434338105441419111406550660322104732554227134065260804403044512865463008938596699429165672964565727800255499025972887241428328128490233489054164239578754797931549419636105412623003092023021508648499948665950993426190858836399684529714456359448694653577808478943228672106674058614893514105194647892532956849396508985005979119866454413361338591085197451011156540332413773351857357185328696825765955845939042457100857505495969474376615469697115480158646861835263773578753002511448073394590484701939168335043394386930168353075089897229362250635715889514754996255469473510661684726844889666769347524725128159731257498438337451202254991886596236314641014758758826795641969904577165362694001606637014017700023060758407931444129659453148305025658092456058022375215116724402174344173540985310761784139790821106302779494700012888467129994626176488653350325314556316768469834209468925320776040001266499642708187312450666124777508893532621031896839642486255667136351336711070918299347393994298240234794079012388583756613956923857839661026662357968130960277363613247793177749684616742780716648444831124507297780785267889396172349037258620021423067925469928971469960222878313442651987748297689327468354452764328640709673830276939756205371735072277079632756375775128963379896159375156528021498554222841819199664134958327711364229558330709916415975825569517334112532778326695674517299694726500088298497954882969814594244945777590450793292628566998840708716217235256749150873094038471962228933942990005648485320694261350398015157605607646038900451624851168476561665950603659237184582305146180231846004699776610033345899310714536260400427443143257834470227643005644857902476990790400135766895909863049432135189109394740113827088653169738243902499610685512941695337867507142868834816217528475633868004642003147349701728044085446326178668557824886985942196372585261134417573682528466917143229095111792055351351928780923318721011873256016343667758036990396474916301975960152686286651646844844598849174375938660507062568581105700717598200332944573075311227184371032945266836306342686986249136925059440686476903613121895334918532332720912121038875070212234490824449138112422938980983045321076944652458256336520459287303514691939337582373263976709877301799333155853341689375790739084531160546139313859591705946470215782033889045887705078446528369932897131319615906703159885869949272670716215744006970444483020973357966241792404792713622731304456028578484486523180268631646958826560051589516752842780997581448426521785557562165104102474339631489011164969630450822010745338695340054515698273056599043846664479117491103141702367892870007104930864588898096274935176252663793315235824203916527578220797151679834914249402847457752851803476000516922336943289364357436035118870172048966115605323589675796929121363713004964478043017574011505254451016470985932806778591311323762634700146581646050588015847097477637530928665082817789829230658334083981219984531193439117908564342600361228330147736100476129625391194211193884559176524449605359421473320426626889524914038986160954017411707947223728375289086239216586906459956870569163667129308008881525722804199625424223566802951389343818212985551771209096602381736264974519459286576779568217432410838405860926543170136352630552124350133018445745154551841267128893233997811858139356594152933250469219787957865836027395129570295924162875741056573738821328982075144191963068943564427733400894411134653425659957367994840909644075445129927154746101821148802829068210683229205626291527554535090533790400555401362753778354066613582939039167955736087184401999296113489122450996228013741905575937881135311047335183078839579604888683473557386431960427356367582121803884148300936119345742729105347584059959577184683297378481981827711399176290750177068199281454307760398967977504457552212230115946014353753896038107132727544520582708193513159854268681572251934174173151905137552649564091746043591942171539700143448171052167255136251988025249829063160547083635505358845449432614287964549389856572646221257244200690246977248371338818778478201063865274722330523852896770040656225124571906263291258979637583741266985739935654718581337158349946087057770720546054897036613765984655253679626958203301385092531257044820218162660754769260798924334556998150273281786298303615252918744422766762787977006809843694542338054326703309719324877889756710924690879319079010489467856662858658101196650835520692499187213433952959099199031276602289824032081811823868660852539084918573871529974295262292267285547564186953220588788187352753701606157909059426389833471968522721978386268006296659294302199077263020224270982171795733090322891631758695983900138960652488447548123278825154782559748253770881699693794215243355703904414177991578281859109094419169170977647387114258171374656920374122219773440640556352056436382379724337945935467552354233388085805967874646203082127047733249873387609153188075236857235934024941908955762148219050800970023068456688333948614088029131018341328559613662637588165674973926709668040275021703154908936117824737814186647331518594045174561947527655013173585129129184070240997708597856281404903903979058708000168231982100166016097560152347865838374758516782600147570248962928060506372232476833170887393056203051737960926171881098690016536771475608996293050086306270043674728996536012357125245051264481981246402396100808789525646221026087369364460940743900468366185390669260945837801272221473994042148545399490860135058598716926303249971930331025732208637143147904487564308847191841827094880571637090418192146835774707523858430465209693589970155624040724569312074481239990492700759750618983484018277976192869447419105593047285701601782594185725737368492635950034650315241845400155668102555578936043049351510283172432184126051773249799435636049791351217211046315533773009498575886725045996837731193660758484227526617840897057987876209819649909828535661310825250556533271371950125785410687990927884303924290872359418505395377537310911886716180996805566890966544922511967498958714805461833639732537901576749339355254381789015758823169170453333496460093081576517926842713274243229009367116272350748790594092861328272832394717425197005477646834497059926955121164890737490691314804608160691864391129923938908018590395895015629412236709691467852353197984065686011394680333202401088425996234431734233892051369493248644592649820396058465478301551479559049401420673662312959974991970087177294649473671755687688372218895959546909943250257496784578765295359617233144314666736256941031723234747934292458752446368487843983220343267312552957833376037513632319376649106977044832467943007677639302350154089995597263575475902418344608150197184701091572631750106766758508429775546685648849014255550083221678277922572216754380295690966881618667295899762355501356405637968627429186722266548461542960964976866992029658583514422102550105760745953525691919657453637331937280643852413159615917484927228505186238041451377483684367284522613907307032070038968219677709144485835017543846704481252095485744730697233324284063809314288645044291233673829590010452009521982831615719688329016744693833952743925880727022491473873247025294452449667637187409094678484441028100995025606294988976889887749742109030693111867398716822484609418000109995010014173408578235944044770492459863665650556725197424474710334457297944253586556307744840931254782931275416597321070536974548319438783884983603267033674489467042955380961934896445904710498351054194655583657925789535747494413837008883527453134518410058618025356458541985690654844862593716953265703398078307173359164504412259904361323944489205473629287344992907294157624575753740985937620601040748631059337187963779396204771403743830481872587428648632401713769145207610661328515611251346143869471918045858029583630327113031353946434419283049447922146322435812296132425336928665692874198807897606317151296730915406064681376351242178896103056036574759293911224836560332986736202767126438798368085354731459305805085168326618491519272822109428889487610956535434071279299702250095343066275399161698101479754298818631917648615609681118384884082133048994129720823283716032574114072663860834166024543977901621951693116479952662155351072360104054514119913475381699226451586257451144833069266044100508857115889635510263216819257715851795333702901543502920701653804699584867188678315923253861878974684417396166335023358957428376344925914346935291091294927632154280913262363349066266296396159013280152343908836657907043726055707791926081671883166357400048546486355305483843974188471757948145270520984557491675986842380864683955136194880170306495264437770680909809842035872474492204653237463338105063819433632038238504578276089049933728906410750992424260036230017352263462824838369346956242716243204269248358277614111164499695191655126833042101315788969038073999069218083700122639213097098122620096600879811296672962336008934712987867981221842856835266755168836785243134518532116864365194889113458045042720967622587725504981661031905783650819837635759252267795287661806237648370226397704952990576162416352891125266239903737032741165740383366928906290496073695716140708065186591018597832966091069469486847963888635964431016515682298338923711707736049018872714107482067323171797463280922668517704383412428514342072016161544258282198884790888118872824545555799416720241805937010816277327684473579827710074257478337618892421167541253576292909655625367948964323331312171935784554983101121564105785184032118332160901161310769826586484760838392182625126400917471068704948148723524841744791716607792404767231251849755438588218220355057606734672902825247749081848414433907327174567350439628472339075871888342452539082376462733563664424366880859170009843977669832497593253794235630210285749069840345096922752474958659953828952092472579343427845410338508513255087187275290303576492296415202523975618538292389947431524400132597345896184291164911725979933589942320356069201749227848901933038082813423349679814013558460241336804833696579064024790336379479731789158831519642385827504946858459387078139342005660086110684904620963540498217341218891569311617087716497742069348098018881595338136919918204078355287784808988517699808812245059360225819798053706675476703738204466964439294511339353020521202356524021468226258785376652044342743964491417589977939941086520048469666246994926860912648435856616207061611144890313552119832894891444357894547562971928853116544213311525538443156675475724915062942350944433034387435277275561709929649391267370013170791714566890616046550678969941293612257589371547880519132072564440034124542180281982756616406852338507230104277545639865822443381225112588368484585980801822464943762663348286942137630887137945958979383654686987453189055413568972981016081402998631815660244037516412888736858040743597027733182802493836546003200554452526141481947796449425867163242013975800804121300563285851181875973260218920268125556620227954235198877942745742799325847545204710833219912199676471205583717161602077426306545047028104581733877851507789400507548694775273029231907367969231233090718000186569706255070337160879822619619760528947261186731173221411912072160439988886556454002177929907681265747071316870242933399275655367147779071883913892951091214196397395309511107127599914117072425210534358425303872193762596267728888023997256676366790921464077701305664253312097708871110764899442948116541469006635040804944733623503427411547226013798359821484749493800475120484375025797144618729019939431709390997468797737608861630183282931457577037296296841904560466754286195051252548984347577857856176029063255753610153342130240640873402301997914843305221377267959404531776183328758931625335581161927744661914728034991746187013037269977112465023887168700552698206711943395183241993087370068439196213489049112073298852864757959781229406118562254407056395200028719496749103367575342065275499991619942581463250743300886646421617921123129654983273684589040403963478227865594314774529152035069701749008500980863248677384645260082167675595554598768369046674210836355984998240925868502188549487937528415958558903537862144843011696631710567448499639567326763496592931137462939393229116236588592014010919007429505952223353133340658093661517760159644286251924101000157283708405192979325874100884900870392239360788397632143183009428511338538041904657476406839281825445430956707705611289264574356158433538588517448948608225089967170787580654541969546913547137648335408732807658136522987004487527149897171858054911944442709255096804953410975211667507615142615228123263088513282639258750516841600922908321678392553179449691687908362515667081594674887721149517523332002430094883037129860683159040475849503361157033903465640499852586968025041482456608777421386458111787076018380140051815347902180111470126389336713320723100110735163700101146245665183049576155524138341639531888926903036050200872596207908454982190344002776646608411244843264059897144025612789132939739802524143679722258489050599286070850625811808996587636142336396996564903419992202056235908392120159434992224478343095212753692454886624988323355605072323419641863802506785672885264445236907553261613580147700828276253671368471667680298207405994899412553643792730189322262236754089003923971057678719769371999405706886507096126529042155995128381088595947306895035370398184087692239549256194413095467913730913126153091867657554194167156894518836812181041184757926609247864212252105482496864865314681518800375966819933687646911656014255725510834276075230531871875212280316369907465371177059102188282474640654671534934311140212973380795653001796513830739394360712280730508635088749822220572289947995388798688333014474690993980586364036875068117306644981486838723172662534989525083047178900185324481229708935110164540380503696698590527790790075841424394607550046196095909864356822337043377799638542059270026062928535664237927955871823801794205550280947369726786139837274324516725000422120942336841834017413815295257424725386604685212220765384473738045618612611756034341965085589307871006584362732644922403449065008485444440406125158163782719508128236086288884722035329241725053155532744996770710563530464669614297267854044120466696685922797321531604383094355424900031310403369619215587338979038155860031820299733387463106363863362149056422314293201094492226647725890912186654556822650080829280550238609081469044086844435885880745326097330254232824785943567830904827853944943035551286392369769439831987055587360642044766623805869717290361310628141205528647330787743853771080099713581364633397171899622449267610987817422903627099481661968729877357696789220201767207839999019440929327273991555696197529944918136803703088888365942987363630798449222318437648466554019188395207863586320002265070957081220915827540751292675680654832886633377494726250371331770065575944614282035047188968572885844770833827954289457634746290306339997744879117573886855586393317160234610683077548723850879155025778563224081998467823074769539098358853283109628637307414683555426776387971998637581704553029622337669005304457472175140006576435217951986928290423282602124190199544073599795302998816176472239437914350654077946338001905743725053778698189236148819610847641591703121981384586170465280994168050875516419247227510231510094281579713884188098923976295534177280009869776073399055725055245916900921998248162656282228901735090302529257842923861602747371863342111646619405068498479268398629712433999281236220748318174421943026748933332896141054509222875437452974010409968678948563285451495726354182991621701643509430983695597973112169268558983844701278007084499397121235005382290756254357683910023246543697321346500871523307195520982505993533164018845113222843207497756732791813271403908405777064081935120409506996821705640750979542074636352802961688369465646253316558958442906012852938327513535242769787141839806224680918984417663362635749367037119875610496952547320341117144327021368008497865247895201209564498948698555034243179943383356600999438853551555932401102871419933791927723558960363903907157418219756165271209856278662809495415038022824640678671277752585488262600110913010723379054037432041277272099513868049350414567314021884288096320065416810412863332287826954602115793728883577610846492095726610558643320194472468667168912634198300567856681317138813600846150539911258888172941027227715798114797023379822741898883774880363880010518293201586459070095071619874887601754498531829142084229191942043977695897166960042872916040547079301611287526080585659301783890772418395388452519553921039665785413361335058797963222457608674033341271473733899823038805694544765123685436580071800797656991991015920474146920399246246678506781819980356976280459777928848547121594416416468618747553884765693649162807561628088520092055090249219143935635536876911060721204505695705082352119037017744128445644143417754196028830264662488153973493052788515890825938375917883091752171951143411681020728395064509662120126562998487568202695923547443747340716405060325440452771852771757526337136877251151817842866938976593667720805551714914689088768412001373884779302954993090982211474584941610015148339720958838637577730221640089700477880035846086087773406647260363679820308199134917497054738323954022359690990153247679132077586019294420908752403844160680331345706980568017450392293401139089939667169333190633342210815974939438167711192068237328304552855706293004674133186894570005930559500455352794161869310723559566610965465974792138186262859766455834713540238902978950189172257749586658392976247253022067702160975244023593116478448748340171743392472742659843967178043360899280591258576531096255267693086763868373757392647510430679460374079622894193624538669709231011604956521875064425080398262683574402889009272565320481367070639587871422043573289497019246272734497272173882164892814896253012678357273864241317080861574048611563441499425735706558514551077377330019600591531218640692165117762765902034335627736619366690406399709060182320032253205477508178388261517964029412827052295411373049543256128102804340533924250862746475871943043472116315968023289356753708495986520526316488483871355515988363019094298947269268272450557451333747457275780230021285035976761524691813745754499508784010688209077357389036854115162795388864865502142410542429804123595866846536573546469872011158878851408733471564281059679760599472796989389562513947559590518860698388566024193345120523610525319084456748898992685000866710846842356348918318506620925714648073068336186987156701506435064674750868807291490805946347673998020883974010394648657505109688117641404276587685379314592622355235969155099211386808499326838337489443413708169433134582142495555428552543606667904902950224962237276172376721495057135185632090187239345074965031138187227461271329675614049371121423474340943680394672246602607445133171699755363573782118032883897742739016760163370570808728838811019041359166814767591735310695741722713141713735456940044656247312383661221835163832086977785085223115480998437192379997060049208751362691240238626442268394387154849960769898179235200512398079534020186574265584871890582252741866230479805990764749835692589525183698680693394944614142593881998033440199401016651686664463771812057143496280655388171965799495233294433169944376529876279275633234329945497389026792256934601901415093369924879580426081225861203366729915745185172602443098239408913351276148848239778779348412535945554500495472738083507314714097269617333850291350951901884279474357900520996171750817332378576919741890138223170730335637568112205345815968063402876689549206153838074018329820966659089745981447912340867090786747229875665145941619296154364040736854590468814164566015701805301629960211338359128479071066849298796093554087436567098847356322469975375860450119423815461297089492513548912739953635969439190594180166249163549721922813397368097888482944785341246696196193490021027874757670593130296591936870029064101772173490777414170492685894857587029128883299754418891994422405960069693521151005947294968661385100713017265284272719120299073818149891822761714626822439772019324631168197494460048234155297262022184095870169211333817265015125362866637918705647563934344762769055192513462108073952759029615847636065536847440691803159030037990203577593586978409060321798431730572010202046570133543467336515187080169245433579242970418730559067472670132243163398898917287044312478331334432307930825337015759198258602085316597218341374529514105810889790864815522381469824067067199198093119705173867494290397823759134957493634851306344472650351091857913688078232259576798557482303566419603087023076022331950443136992423052741471796816649746368149171702118164875026263447118538808079176964300096828759761225711206653749178007441244606755850517978732544208508166983252092239755789015761911500892592576126524951412885183366076582492355923275703458074552252424468099946428664648848597416216532503379745493158322616585889931642449170020701686162754559670532944961617625937601189098161469116626885038754395932142675178095709795161133627598834203230017578440156515481999215100154685383508614653685013487276283559175627184620519971524891195764036586936734453654977202070587567147172350238539256935350798623988719070034586997097725046755602331138193770685710252465541149380596483070884690032861353909986658721344355306271690676883745431962508236577163978846642736893607739335643167242668173268375689916182083668108618376138631516725949237587699344806497259016118933416566880402744533146290971894063058623493322139368888088905666700343178713193955209714215927244508297142460273490844205916435207152835502017775568465841365094484881888736318838502098541819878565939441733011443739565253611166922072281049906182352576628142783420576131596759515681667952179493851902611787119665088946011485677468028654661675441533253544448733805593561786911492834627558280261245492182823201424450008066217843610891966286727309656699245328167657172865577644952844114694734311308411501781080982225101114461039037639576044854347801917106742027055085084031897531349612376313269824739089528782121383025942392235584203118948457018864260147787440951978589971466439206307656141577714841127747702733013333794691233696976656378261492605140413115809480473592606707728599422134364928026843954588743003842178145317455859180473537405693040005138991081810008067778420363503140006896403103493271101794435920696730092508675751665755650275357958314845726850234313537369195155837806942320800079032655273794448834706373318851838306498282713432226642267867321163817136116169078517205364103703029333906106154507263801871770459765332442770080325306914691052844212362699523088082508844506023156554811631782515128951932814522969177837298255355961537434445017057692164634045726752926689093073636321164510406445615462490483035923743216373083380120398964161980549003291111700976007240892469379488414559417359468659391520561098125546455239687153082989292488210437489261203092342653055208411485974912683297858611037027596633622807294535563126734408176176624748330175979275827031615699717453588422427365358272245134408157494414153992177371159288933781372710283789169761825392508039015530550513932509693880144504463920057077289752045432687743549463354199931552668158798361888918939388411064995577658589672953133653307365567809171977794759666582346244745148364394772174919428948899632695114265099257623716120886574115995341556945567772462491389251344629234059723702635866970357531165358279407025435117583371949136099900797447731496734061488226888587384207847584871228113763665209211158982764183606905802118681523172193494333098153559728107665624835596425548666063738206523958470332321211995773986133067762844221288471057985396297426583029712342645955814061955947885222174874721924161135056870899405829563079322849074663501014007941978807542725956599395626534909006505513348550911395298508739864754637344440412272099766681529125574572508891244880182420849607065818176500250572849371924675308501345801965900958078617161035008505898383345786260470954805705945962226902662651323679348554624992310335522739337847957664649515209737384456551304703941203278821617890044796277811441618141574318095556169186650378368940282166562660690314251197701456280622856231686883013461879235686718746619290491985133132271834654138059406598623670716675168267931686924847006559958183196294679107739135994121278394289748219386289774559900097724196891587629914489292990409460599309241283644399143098935324865058963486258943184015591761169343933512099629975126301982940616620368967541494227182815052450309431805150350718407905163190896724694139354131703121578607672671048122546228845725904352144191846341849411038452217916432347596313549823958999094733907200353785101216135725665679362796146677881362726110197145484128155146482921260491728751222199018886035309553059606894294762864919930940837633810906982965439472228159151076506243185761345809501599108209260220005013454917967574616621753435387346522985680420882293903766172202001341307360871573578541037627910285190659935344963219925414820786125528628462171559037812339666105764205516951070675860418412430841359553843199976727963830100450713468005136042011636692874260634041507266027158295401248525152691800954299147636386685405226757150962652497648744967490800729558444636134002523719245770314850087674748429566528846892250175178818107941580430856322810404643959298099950547033850208791483945971291412661949203042596140205716083967659130736121515723526888059854169896493649365463941881609426287422434647811290702998511864402422402284173471105038085235500685983690851704432228708440955042888990519507975613438089178214680905477824386900934267349022397377907489669407768775639708411192490457304532824916414100520774843624191362280048836895937469495158503724098952658294748322692915988146547995969714685824686862013438252667612423106986534209469347193872066377005430634179115569174256823132569376450319790552130125571512026277862279783442892520344700871333884174979333833571727402415426324594637454997718996543396781813862098828953838702553538755751826069597339495084874034635317395020256997125855753358672281819323442961989171671901500499801759370570687689140615627181516992467163983103204891794884119675781603108063761431154210681344697319880827112601964510892897310796030917716214232063209019981745242345237841147842407404157786539307804899513589841955706815285584142835370436646330842035188507480205178789516877459595468766983312452323690378184191428855219594393722955795439991533940772823217579908516822436172709277063380587986892608182682152501460755103086587795373597852219714016650759624377553829159897620053849341718503264868625520527912958723789641640892759941248622186201572324429874688451520244533446742303284268082631812453916708513856143894005520092779965042738459686259294829488885423158062853708642519613090489420729898688416583697455778099978811586838998080688900049207263285631117628854669956948756131350161483832044550468673556472770685985668520133004889687325276157098644130578534288603722476759417986209957738582577034074955456923484224290061484758624333974096493608746609486901272282597641138867507335671829014527093885882981600732541618085613780258161332479059399135279752844846581305380047544085840562792169437672254760581792346168455187556045394015912551887049260689629059259174590939502106652857558149717159477805788750894387206019975266035276509521253384975204001291103417732898457443190123757250445903350206824465387439055055761168220979225737517996966572213424096918143421385632823867842991210631876040806878437276418062677163833769004241454651856724418789110416351488322876943417318645493252580573248977821607976791170461109541611635336460710422960600894016683278130005853204502108255440427243783006806459300291435500403508750872621620313288733875733020038870322399296505189481547935036595592889636226100883585588338919859092131574539118089421367352519846342399448355633152756415381485889810860715603041889267987870087384355529420656930380467713816143645678965408358057493246536146893124716834978076943565227179407375485199549192614908286522874552910870075882622934433181220917328252133250360831139194109083261725246065024036358444808894684671781342862855414066603397972043380796895218226599979598518556581959460248098526245966248645039488790479449474384056987292648011727792260189317908431233165256029657301330549362455109826589414163908310215319859854320949985491511173997029382313596165263948113257321730368455269323540945849446238048592592630096431487521583015375723687029217611364051425994173530406009247767467304455231904759626878706686782470677559605725142032198491649120585783676995474918368551944364068431199633880094074458753881867625798478582675951650057800354759565566015738550738709943849429973059775265556144707558223068311838416966777923272138309559338134796188389301941518773104442416000600467950613992184581169308966157770717497070907312399149419805987967269595824069675475937642396251726046454033588655638138040873324667432619502949310395896406431523608575431153479134250673305742584542894017044965157064782752059551663815783034592666420669289113090872062797097199993692028166508957441432060660752311338396864195575423718262774539860448807049424635375636614564541097844871076954130055339308958769223985310887760509468096184298400507380076499971844678873940877823374249798871087732486163309468738790828589511589379406482043832861834968326044025358365106302009908864995283908085414267066429103214375908642466888952124092352227790428989140090531996711838617131416522113468199567989022916120100840584539886404708153483755688006543687680860779486300127336504395685723746575573557631679754584983689432098258391686478679138051834809500034285288705778936509594562600708071576298783591719343661505303297693773221552941766404396284224341033818262702384520780435671016867150567441097089035436918648353050385556905254673680611005484937032927930352509439201435151516214236483408656038963315532320452813059356656918497178491198988535634567369993216119348968838820236775511712504031329468201325841133051144806274896580929749700959358309500195239800503307456466601276593663430914036700880100271423259826905117824236173915600054013454102640520574350994718390602264032631199950933412768060376646864966518121946640649274003273371426679217079300330582418526171524224803094140104964017056832445411762869127992851165321281351872403653217315817356593726321303691688950683798494394886563662566686674868343735244484432007937574898829776655338202657623097487514692109769171788988170000804836781890504997316079656451115518042578320300836605419940019151409861461432342377747782611387660278467340355115825065658680341785942064835453851393270288187019666520326654898326286640908385821935124081025729629102123182337181542525772708935260945057507898989447852538135046881676929834971202685802669220909696301652086143686925405822522932969619342834058413849747168730158825921482163652638649662407807051952932207190573552743136436894931182779151916287163356615802530203532570076563448231479413954672853414340224362739519060170214567696289818442741059062050674788122879273065802593635916592609469379900433715858056980273305819448074510694547216489430537821498597286985067242114283985110624758793883499047943798988081285962046965430640844404549454886013509961688925231811572305870697220266728900181746100372806550521526456394045006797717845610546334895146233533852583286747529503775117227502956042471448527977442396869679232511216186126952326080995632602110238662795282075614022050410882022238122653747353912666106704560742978902987761933743298951366629260666841242382903821424098119037788964346272117671252927285136734346757264318883653291132764115818010952622841081230983521494915650050863080496861657903674637702061050661500841674457101760058112451339168298103121343627964500039158337248862267432901596340580339455533104974939456238912332906448659095240676268574375976119967975824703400917612089756498938783011556008077900975167132173389873390850844887979641099602678261931031031311943811348570428549147679313206046725394836441269690438626437810598317197624762741581705376596249966141710369592552637357761672379809249774975101711497648988082729927568321218096559241771895478508553716764169466489483638937327625398253584228101453986156646146691875228861477244259799565148448391308094413604419797694980788630509776668235844489185416737243287839062597163066575350067497203376941371031014025443572296681517959848436599209813369632970721801892003506944565491676023453706146428853358049238262279260572516583581150143943963376675003724251877512453162512275359300689852759393243735855933176201485036629653806104899238973507496098608417026791697310069787825593949071776671101485009147585870490787033135508275823050322253477063850209255203124628591094678535663620384388923090096551980488492889418148768813433880300488713310453082098460641169360504694296848423178229551979428071164104553006515760149114152694928435776745512113311377591285955667174228981608159748661085241673020408133570533028966462223403911410501469198803874972915174413216071074948280177094459468815944947564712802341334152660187855534120154780915419842452046288947501832639711881372217662357920104740008418296956383745638614707188426239795069763077895942058145705237836153368417881385292823152209744260728632330819220547928386249549259970312001165765224923821832220892026440382466263204311881722080339609632380999547545274379555506834476673331476635128296994388955242377933751793961832294947874825099589919765050624315183104041869263598136766068882202403556930511197030278946335972534782440248375545141152813575125481403989639378359933983983299036143626623275883983281619292794626330855598429902492403932295249862815089177239310507276058029136000911259530811026225841917395062963144474221666669117598877197991310581667288554948462598096279328399383014601373641527691551811360946337737831092650905417149971017899199740360808546580289877299627475599074902655794934569776212353610322279434989233658382168704262059014192132224585491320592324955826140908269164785312506588482317492134836329502410267752282529288882576464801794830909043257925195528802101065309791263124009952833238267819635841042428025312263609075191523241862650712414621565517012012195714709157414787842785637782424475766720712420593094578150445718117768348744459809037661600749992578181820903764376692951681004209516612874992568920970207208696832290457608220067769171876646417993369003574204525757920822596868851797367496670593366020796830717324875610276039010759399726383971074096248506437264840880653674123252570687877567959000454563390991583195104622974721395866944498603635108646642604833756426551303652466400829397502910028904954268798891403133405002149955701453874586774489805641813135610014515778722220990933187573835815838146399644183074693742527842302351752754702787893844590019778801172843737493692118758356982600130865142904496268385842731081539591538194778828025008696342338991435864448084131150856351074417916709606683981327179899310006569203467617927822601088794654641790123442770991961204886429233013846334231061886449479291209815899324837699523007771256018914274070527965169738141550848247337270119607756928702083689776668193190169132852954445943387831217767812428909193267592375806537921338924845374138319208148097885263511771038085006397910920423796770880914766263610123173745976705653600399927772379576294642118934947407082563334149923367231943447289856274487295340688319688673066162948454720803121054539454847278160015202699273962142370698313568651872312081803591077115558474960593482970572855427295764633701019062041783615933599121993252539843544756514586884243406065841565870152530976327400130816772340529992376837416159629140419425653724757865849218976558916062189920413099299681308529012230401669820132990274848014611630752376402560732030678327045546845199924369630468304350109479762446978829669355110696198507662979721504219482360641516686150267112656653646507664298385747838462462162073472135183397789445261741547681571560613839554973048815425942833423382456633592349816879760954110557365642551188138292126757632741247053460336409184334922039538705601072192839912527135230319415412236523878341725314693114072179925348988247496916578562666713131464803181751416965950128239094328715883067309409512481448490835260931424519135240151186771177570827729755966802029005934494791811691793437568389973646685627292242400811908259027412872716209028561358074637315247550621710652040840998228766632050318178649463391307953704208841718723392856777938740143611418688965417126233899723660464774333782382870755159152349775060262038683066684893807846832016303726438003982221245792509197634055133596313572395658273045523779051015825896495588965516097981189917383861177875978840515902114965944716501567506924396736217920346268977342901406971339557489478391525177085833005763437836578483605804444785312997541410913362385597778163846925357931364379341015266582691985252138706666868090359513243276731676552240597964706273504307712751310810398847089269556570836152264145474665231739703962508472801185782783505035746693248684125457437434475930730519861395913579900039719050698234796329184883941961492254764655297863741771628591459731210017418026393938132308228716688424095658180465058199397428631630699781339010139074118035365122233416791611523708043212967493764727453217899666004831916555958524246932943434414754127096509881437721192014762469870535809942950237791193542195376624661094617773182628508759225538747495809688847486014989838474401536023338545025348874993071245486932137422967924390315798625579968348243977075003970671946956680932382295214045480182278819881961423700945914377431297381868350813795497688748927959426430702868044986778723676904477703762297889610666122419740662882428579402273992496747246383221717736951466192452168710860700548342599835067042984531325647876338660532484213393563224724199109485739412119663912440559486552561194417102293709846019977985886166756563983861955305728029803612116144151464909434928412245167331763640369501829334715546780286210745847921624376312512961339031782254430957452195178172127092241229015005434956962068519208206355348053714801376641795577745090649810268265971563405657855291301069439833561138375037837370538394624988065187828645962707494252799318760370920270818991083849355781155989997274492250851950696820915299534605241380341769882419092273908654515354246958538865057490234934053333069457554196082779808547399468886825048297169827759397878031126627987152782264134744198792087263696365480225491609760427555098638653147388693468234055727265324514417997305054069677974141167432267012894586319255341654537007534851035309624927848234636480248885151323026521104622413125439497479108488821898616657360907951233317357555482892690405176801515808405335845744904331059888148107460900758202204566920810838798741125812971815974787190861805580635247609688083916986611237057976575232512925890931547558600097153876689108177297628222446393125408432362399200134972102085483866505028983961678959304555855948182266409674098686872624342281070651141025674525513619400293689125813670687769586820005872198365050232822694890274934089165292920984033729782682640637249000462778176144022146934047198161546589691204362552798862883093215167677377149398502478277355059202731735978376410208907584101454725348913077994140646754566822210570245934523969364222972467180311913960590044834257462684399076041028760530164473133308126940034754770788480542183280582572954085588703982205766483516990439423828223947312411088885245269232503646006109391450914746496558531947982920871285952005359675566600762389654723520107267599182793587431320937598073894748616849342752876153004749946743644861491963755519340704396276308555752049291339625783699428461917510041179209588208478418540273456169848566171786686083125029550492591537821370333843726891505306398583961883935144353037626822381605398870878129332824110869351813250448869025603927434093684827444131690392854353792235357495727062577919834259096562068237258403997092324858576948301668528398379106058496484507717688184037506856276109289865410780532933999758895149043212165266232973005947947926506181292768554362178170088730894565204170484009825671714705327717237218690606190597784230306169270503247536681870160377324301325756142190319516136943390638124206567279808550407595538550509174513055987385220957942692009715028242467078157509902192341617215848280508002810677638725391050765749968734953355902691205115341950166572924769925610947553557210580657363921697051929342543811178359052159074933014479739728009856376747064620323658193290761703582406694748015051503597673763789243101425078196345440525787199733729601076518792275723492402637950016757491834815062957541232660955789809664070532438227655887955489123783394097926696563433546432852432924035890951892400021259491017933849038775800462099572447047098923877359107017093528388291255461529523800190536535669833945300427711507066596381156971836002848853984910584525468829773110810502798932603943553036136107754889843686498753682289285181414321149942945739436053688968657892269603343706458478098940374385557167294401978313691391674650507100635989415126106769869490936614918401263039271502454410695379814656750064873421818797846222470087174647363691694942428409775614814922952369329866843670945701611718363611771040095200302039158140516679061430338339943242433694800491012084678785512820635096806538810043311386376882986769979781824956042441486470748331572737150485150555629226604271383903456632727074595478426557188543523528965068173775816438038338230306409804853542824897248730744963249794580470168795190583924945729740036821158783033693502947143881885199348769458543688699497595485276043903864588881824487253557956351072737470759843655091457123495428989431304540164209130990751550390215169675801686944496101357331371802018761933847143329369951595946924278390516632511674731765792893163634634942901045181422081932750385673475947592261037665695240999477901253051882898439498566828766697693531787885181410715551546342187092687408889808637867556564492190844546046875039695519888071239635520462415416072508338572752719610291852168014096298471102515479028111638438910776931994799468613256606755629054782340552250870568708253453067462610833273732414468569105151776079028668259626919730468821284962931387193453483380308391429580732854764473839151599245614059591253619548305756813867779189932184889117687542556870120123788945711158472281203764070495068853767160476233774223244297934713140299988603917643463058287351838389046002570471031685659432486525629095976423412338782963657888311699869365752490924762910503075788564565643291451678965311361568418159946549628987350585049664860977133029267763718830619092501778521564162595556362379719875065401809600222429062074239152307224226783820455550711400233363677293411106750139455199694642968510194440576641689048853141457143177350363791917134588330672036994534674685322028728294380994861834157999075311354015581800270524131013723358754277474915821289187052184761081379073888957773690695469059369489443346408085274131693185189525273566370080862362811713290507329926758472172506856934000504449486153544363504541641023326812669218920089967393514727202032587046899725340509719067934738921075795277381145151815146967886121967435537502018868000910747494704826021002943383221560633166824139487473079375481468172072087045522726488805429940457131307148533891056918705918477916948507748282602556133644180802580169430172987835680417746073679001721490030016955888461310613407829354926919341745024608800811658741618461805390979098728077536254383833882530404377744183471045375077978407215792695899555438099742038358498295451282252549817616888410238127643571833698341181444562547069974328414923414114570714888857260950121633554297374274059825640877549231050172025234391074818474552164767590422357137734436039109255286337362355078332151301765370153962140562406902284441747942321198153520508565987643241780559692935158979903894643439290438167840543379795562223323159936379715871236114418597683889343947243709733899062097654636849147073693440259512464455862672402003099903151174242616585157354020306813225852231142617231327627562876269527768742368042670072183096162755411825375722181304139410027265837222821626423762169130026723209046652377826174613672370340108477347814715070279226531991795121791850229881607675246804320819267387879330228481407508867382285764510184472546491879648610578537760940986828823137363670367499304197649078880978249148403440167945416366274291066046887216998029963617842824537342492130231946028070979122533552349476178275653646524158484304135973980935727423284809255713647150290358778450078880456282819632285895835538475908935055235458647115243258227772544617035990918142014073402139510215380348352964815848707613239443777902089851523203742253397544026474005711271088865329263470722364643889447346355327575375226669569423794458796843351756057804999450335275709956950276715923621660336387427166200305030868895519949451560909213240454237451916086416244803388506450138639430065837924029460577528602033481075990293033848488845420702291078312914257644213699445227579735123228497802490291260212321807028633018797809305646842815797505348695156293400087737438901976653657037277614457177630959197447593530026892325619676954227873243811919972722828815595012536308279562419039221755063961658366150805163571456145569480940641118344900819844789017902273277654351020956980132635809646737839340535190894635571069148808378727125142121883854815688600812223027945321859954411147396418195663191691918985074516702607334905527169930282917554274564489094143229997043673884574744640018236528670409159825160850685930908812481720781881786949972393955447100400692259163918912639169889699344393433474404636787508190744079060882661675933633770680515414904732159020679618594071260960107577111550367533757783999002594214499765705553048995948729587205668240940052124849636313109182086346564309615666646389287216085597331122060101522643266611967133758201932435118122422416030868815183272407020855631461974961157879420806127396045023650087706937587593418288838848863539135856237589953974934827950915090068042004260763445133439926831753770242934204643128340917568371882546334226414400759022812678515834127341915787303871421269806899477539271947720860025743481391845148404181085277090120864132012439844533898107229557945149725139690601651830511510652684252395472818481011269687859891234485187965555366098131419257747679294653380366674263603845409247757415530079742588647444851194805555956535160341533262532964668563687048561154895736818365752588378363302807070807183837107992646665996823026744515018231592121693113402507989123846859974058825581110177612231460759248393261528534989809062476881579099475830147784620969506438161913608114532810862398096096259626524493690700455121902437663147456903628751672587827367991503680081071198664724693434728942628289141837629281676593970065853431139905034863734577968616763375636834694019148095943806139696810927027220553065370129467528883924817668005942206083521456977950562122737333251000571934771986819303578816778215775045194087663750598754747626053887658480260265250755217921798186015204616291635001280462252084974553467356300583680682016801290252934691853000598873536420114191499920611784518321135775473412363326852700256621417978789610452998037146553395939348950598690003592275340988726354576186687365043896739732389864537558796216547493309489301148275149997912954475523196587242337287281603694853021377258228851734934115704873027575760004103989099607051849230034829609816751759158103674392393769129011140493921162281554819894066907303867872349999940536607080300485306369451216080604359068291168069226356343458489935688206201516773945121312751454454351295112353803238664447956324143512345570523424343117910108028480729053185397114071857975986775858469309485524259974492096745477139831362794967839068440088297631766906731903595345565619299973692144076195038884019436210360159537198033369306252587614342123422584011715168131171705317554474404775563607539389305339047402748327262442225713845409876412432691007537412721120398152994949491907117148607144874555773717472883221010426181408104571935800093529838011463247588435456293827364910083478353535718325048099041343328244847233059174657370308004135027712067407274584596221251495624187285359793006683501194448069434334971111994302041173033401976695218486011785623415613913522992543016707741544262802918685946708708274405057222498057142905807881292081972485860442716015250529390762809889716200409935407414574289952667788809339864568897638261053707302154102852101033946783653079586293005865574633139957933863068744705580884515571045716387747244888448685124239079614260004550156060829365589667516866053798706511726481383439354978462429609350579797578128280533333784137528221709226088359029974633662503997401399989290676848651642090271809610782138763890768523227958403404478529403770073228507869768633084900321125027008833882173562966968029289026425782095707034270927930913401734653079886132111585229292880749731919446283123366665417733497272134063164052384974889156486157406276272256129602128962241135815551166386030650954275826173201883849236995255985760939571852298293984739538974060533005021678760849846155533323649572014584143717717845194912928081145786418770961290455267460144075528165286721861759045915511215927746039253226835157626104441059672827989930763878950210821814432159365963999440303164168358589303614211192145673599443039179551288611409474909417087702215028027461357181353663915560026064599956060166617246263652560704770312602664040735903331832084185465898387328140933816744749095493983599518283850928350746979182482867287846179150353963710274822668060185486042953784559131346689679906195250075593653379512022587972446649359024609902989697582591570528032168885014152229537129500749973561141688239573214203517501146568941823607964694580419334813167941008341037134172993598177229338609480385624709044511048536639549041336358625503452889120990715933562123228367078786327526673416031392065962969580888250938018790068706498073994533818919426642621422992031689931837171726850863361451217776028901033206510086292995357796150163308689474389641031858786949053242932292093147345559476706906379071065613128465293790849079731450169987643704353726206821144860768725170520271493635541551654087375483340560869718441930592383259402505168975057414466965179588600321205721059995273028406293038831277132751146707266799411661497259943837120498690366768656816926966566346617776132657456117820632409936422427834648445836193246792599003485361989788842026431290222474732925173023992747913741045927271943381620057667515093257125226641113354436542698006823245482690795287194173898146814932302163510831986522103235561769262764123811216947004856505736478662645513561807632284688662272897056260548934583576612082577967040394549075442799178052757551927751242051176229536620947153895123342471180143359175459013830219985522237391867563349837438774340393123941154557348787594391937711626577962187969477824662130536196583880014492579897293347244348840031777491719905149550386053189316671814842605747184611131135676462204116908673117723167379554087693453517673858229490075424750145841958037302899401666718584800747537726986122133158205170929026719947160659810381124830849527839884839447924134179646906904749704747892173997324199771232054525076397648212399050081627465680883664155032920190989936096347330589429265564961427803963345662443258243726335695427404620912645349699864031267203697659026990324390355227588642231412687736034084555603340973786135612016614589629646833498507569610456782613335927259342835276027203292054153467361360757187054873026112142377245354719945291696426595592161960246377588840921167979751912708273871609115490725434603551411681075857490478885189084542047277431867941585561960248403698774421251245586673351225532657701512463456012779390097607859914007474851404763832230680647509738984984941356082550483887963532995402411210040618947403769355982467057834331408846699957078711744874019499370432443505512082240134295209025610555268418479659442270651332345718791179340472574036485947510180970950969412967030905355716557794661075714273058540844996184129824997709326417410769626924577694366270156526794803014976614204058016984651328134960678718742393940743321529829036949167511926101365662002269964228850534277222255177586063952509540593222482605961706642488195310163094655809016439982620531434559234653532606626579892400535468657791387447489750149559391372754169265949198755694333085975564056412219375832295608621360922403006884822503090474882483941400363128475299509114461241137704078655198422207298494959196997754110335562220408094735109973129889477282328507963390423264315769139307838533697529034117969510709377367406262479661181355858347363310824873432012121199346888423603045102783589003552514908188992004883495103834718423127805999666092463878832582646589946947189079618165530443996777822896348302559002266232930449028201276752466234415758190646028774595922706921707232131453437285435935653964250222086759568923710257456659506240931166309833090730531922081601620548720136421325955982249490983800332367563073201944923009831083631340791188816287341964144200807403246499694252098290593783294835209559279640596422607662784245210515139975926090379885368429997545805220861302548136676623635779312830314464961102158106464548957781865456195892752600521228275071381023508080641915438533186954512505017357424507769577791906985672864945137927682005974274739269221194801175127837120747172761591853214832769558336900463410336267554700388806858774293201499216725190076971169213415492771674694936457661496702275323905873643855381256219697334250187904522558996997003766770817629015440057414676707548263828938315574817882366957868149601833276081977670119754526073929694509293620578268003207639279080874061984013166997417634377356991580427304920560046173173881376434364086951840822131077556879809234391259962494220890156551738179817779530222528099615595238448431002639045621391398509460927341408345877373817846047464542450759848968113522012531711430398711215483895475619542605862860397902725156039151090243986147284911403633054256589221069831924613170900760929197702037014268079300288157847532211563253380395212150539254558542249524610602321914199602813698762925858302902825382799885364234637129076911067662478740054985605988633051645365037083128432475891531216843627982646026310138839059417033441365988605352179443561135636040187164650611236231127172588354238046581280975890065092706333605845643638156804210698320301676962382230378650479784248032075483330444849775423816590023622767056477181487030787863461698011978969956937049570221430299010413298068183377637403526002279873380826201905723773710232397409277399085189048845920331419603865906251946640207660710164504025502709632999705161952237445618495551951087056345281157323967578731921299319556046914623475423297029178913923669713137441551628823034744505256392196799994100841919870836235290341211353184963165471376495708564371206933721814672071403495916874869246257164866916922944533290296831022299553044545911180682885933801625473573747445207153406643309921105808900950098056139242262292334085956289991327873451310346035689194288236497823722735667995738489746367328777098930245555659204657449792817082443824296922742560439491848062284778085984078555020165896008922197510757557750025554996999417737204798785719882121054253954044340633283173411706375001878655694280902567462214603159712831344717725152013583020754610708479888837340747471749970337386551919743840902074057965366261397781681004449214394005204452953998899634322299724777599279112531955023679947538094129434725604432563223428631065939699947137909244364388859751442940111949173666229375575387912681653805495348781913210649009953294474051979627768154227076580979996524055685041020599210424196649494237530939226817130034792110101199199116893715748024275834178738914163934310778894268480296223248667203656442505095226678807942019788752555159979446124387005651998020845188671668029186261081608440334378685453983558073721139939841917936013711980904820261942637824330932810923675258507764064144790049220550324249967334418248611289974437485962436346390642714178171644205707532214194251687804255445195859131820126810332056490551091101803312250397707204206145440968350344582235933406177449719199219944427490412471873591078580138154046101106747625952991652037717448689898170774132010745395018748772034367121020760683696792637030047984378727860629489428897041909122690726071814061549696878744861178701037797965955928703877403223770567220621462287633331607667797227340414890652734756075450352184741995103935156715014637728010226881613270336110750143932219789465762214040968274301171636959341750282735535901828528680942042848346206512189226517338623149652984329292619226651516165133490601301994751564293786039783326099026314081791950911896000056760553471916389283989525596251673182250896980772997512155091552632232235764688269330774835137765112068756305627934366990378126036958193286505389655093486000371975507565817887313107596215197967555579653720905880776231137475438321897246362342790738323617965087258433345704872389308540552121637386056286164247055901896904336909189144902951123767592332785089164138681721328734033912531266259396081768178576802370954030568854364097859678851302287606491751533883699621678827319748225689042772777631749455212828611813982254722844353554003330445523264721860443950857674129132595158431308476736863085661564142928496011606857526878604296650020490378270117486925204668877079314832196436293687202188998954810313417778823369667295436729810376358806907549819887520022699381327429094743197981755993456091039407506680763321955885155176191785366906002459490115916183323965908373999445011865728087694666549722646353556713706311685397561103727410738592754089446350486672305689896076837024979086366917423495287418442042355229958456883810891151762863960571669467255998468231284618323408841721016687428657682188246949622736263141347510108764992530749302289768021301371698654574343976331810785050772812693649729624865317484679959710694472750493707264433389125634881743171258444100519259244993668735061192827746437033318489609410828366834868123801853690092501008207331548187912492877342118261265270622349292518607010393243054243678768906298052999614069152316775707162834656372153120217034952527010860602999117573299418962481212375330249344323519295098190348893585345895448257789577833449016939510706828997405328793230671320745537738874055506452917328530215403106948171496704477309384246367834765661109141546830306603225976921151215866745647216810958442191328905192384440400641151009172674521132889668831438184504805954139850635658664741102807227226276727819647114894832333652141600722180717220544826932905077971825892817416276413912593193338230493359630581454948557933246643936521526160818785750976159710055446508460138539403863390456815645288593111762821341120926463217126364878101180240037952397656478738568923366113184524511363787904917164897033974431435191588647787987915479763527187011883754173618633231549907528428311952761926295352319076609864883781701903012294634370438492393662042774768713165739190886954494138325221711929940171565975392876715803729926403872011403443525227140657960721252508525473987246152142795044097485321628052742642254156756373095825150944037784830820952077360519627303308582268658612705189439781923480412374920368917251049278566762051496635701905959082316117776675318292289701062819841251696321978768151440396262529188538362077875523859350327171324944011825082356507828103121003663073905691782684200934097667736287011381449509889199357484848709449242216647484012640364162705249803882367194365066141883917352301787630059843111470741576382786046932502549256266775479415973602831548038884665817701916895636674934714737744826212212191009721711349258881836891224412996615980861612075826667395561370332117713353482447489849872070479371290164326955864240975494332118777341917695514401291207901699961221285170913916095200753131352966103748769677077046700943326325579998317372094356827519783263831356865550562482262194114337912712210933052897842313441379264683909108904562165319897484038845082570498014230037147941165358861958117478149542035713554837289183358732927152995550329097895866790023416893192215269074175425255448872442466941106180587404626791052079977502346438994553257410681835175801240011385403490105389912946455937243882018252389289996932600571707243251320631234279359181557208560677926271159939518128802171888592179253213470265522412381803434589161690367837813588967760114476413528288586950830503706086779949567940990569051373780094454363208159455592104699581221595306484584408229689149112626692645761343027181703968117398336106355357105664087985774349176715219893720182738490622657962800932825313638671197780223860399973869626264658376882785376731963012907347718176890119662890399345213475370077938829242447219788505148278037557947970489310642364489226292293679620884625341648554006572400884404393355556067625985380221440212209849526225810649462841319432048621805106854342282919998675215914769904289807262052789518444615773858740077332126301444568623384642694319600991652487212532913867074780290752350234682776486274800720622865217502938805621576717437001266192333246236331453535113235530841754059219801024676441529488136928378629375261064949542811762342437717608301703073523030974278904329142232795035773439111748845695621916339289507524360554643073784215256174585388805978198067853143150499664128503358992089606024074509129690923742240895930006397276482176512694345805966313582502000460315976752243036330710466013783369698587675511879058684904218167263720447915351870546968045926544321916955706941601404895986908222287415641151772813557973541593494329094399212867650469293092965239766472092695325550364435615611439929771892076965870274692524592769691999881826016597455291048896692458865824315435986024641647085962895275766226082645690297933491507913546908695235138071600514671529655302077843823303192422443421089257510863970146716566724861132610133139113231941501604526426838764502617407427854534578657367712178171715964922748550204915446332384942828537748259624192176721294091262032467492840281064922232221631331493641472890176021566283363209675435564973292475465581958718803606640618905701435039291340671234795805802092951953675929121703412615087934498591734603057793542786236419414882170368204187423273325915392991638529574066737669353277142836048564547373565523705327806659413852010215331808233349436648206143258555542907409638306608654455148685096925793094136320404058198906644486448517389002637756888583608585033076068474572063928949261449529952546843535116007622792954629711708187169378872261518192178073990400299344158333033563827971229001845576880339710348142942402761259942635013061994830614701456535410497219443451250751298493038747508404735031591369898923890586279880981562583957996046618456278711616126552673038312653874184519607514870989175846179725196964804139426639736838148446185252728125474949460699052798837281713187074676522270636656216583912268128811023731595712538540891488972576675408366725702351996694382730722789881022655933083103257183975303025121796593409063115324987064694627602163476084470766786474058085268267494003956794883986274394767406783765083089243683301533849359177254945710601469864655044923076956374003385706566251932846837802137322789358712771910146797197673486329745636789706057274107523601830815756315856947219654942507895683067603125414679265435682964773754071042767278110996582844768984569760116879882390344156786939608762268794098231306281293917027298959058336910523041008829160184219453211142109772951069908211805965916903169181369083710375716368498941550343777254535174522759682433027804907776290232311096674913677853601261990542975295611679140820335593612169103363856395516207527234114471441241703837669264459355844163387468919240924185594097890418929143339847021056804573316113457277559647696951076128492851218164443849538582015755065008980505139526523433860269547985246287887801703274363345628200012578625436126333131757877031048743357721031173397297345299552667194180432469764907237064123447438103815835611815985570348876481288390687569092605979126071291048266844346096726542096113863243883599237049893770507674683063298199305869130385806931726709129264437028088292179354103966779790807711481345486561727652722516464052687745018803900359697172823289642003528688439420723168680212701126792388682920276182256927348064531513689279494438694664499543867944706330444192929755233199529965313739557472111071846951036328805307970067397466040012501912460166226309348898119031332177666076963034924975145193103995009728250992445467752174840711997478968538127657979349382604955616975521442454237372800932285073061244852156933251572863455811480020826772485990271997577294079037634405884279508755412852616273996207430130031120841869382676488071065598880740839146092224323582956700820674107844793456483102545760968354143399764281033363019501055222553651912785338431555318549095571701891044951208234468004567284822251766927058693789182023418067976266295768038541840579298982504580439547083974499442012025053578725111031642750197553140866409618254784108878074405596109835636024856043507452920699796926350363464052543777096558883372043274991972097212501296270088180291155207277097758634767682894196930552511579973797855893435247667374026966646769430540815825613933100588770943921344422035084448586258690112636089356171380940483902508126198404761357045291631349625050814738805769368026825009871411040614454033108032439306487032842336109447034302530591749303275521630288718294652967885162860128653835076636617996759710638103146293105360068707978553090144375548081408183250323781254675513109774243794637309234573847576823797741028021319086664275953699651523581786887464721725492403437388173854205810901408944748369127025458364686976845164356904210848295749833686685197045807089073529991467585933229392677828980291885331601121770265209531846140796778414206535446920814407533244763405474414689182518952130711060746147187117055477578927462718784265826253771178701895500212647195116402707858388919026011111799169403973147897062654390424750189708076591033234543775584787389568473726130106807236372035099101668630563235274705286185928840527674222782023801427390196773656971205378661786181955746526852452491469526771123481932105147741085741508486976252454144505649269917962130138925295060115315634184595732324884469718058095228779029033531318680846502189770353298224312586867630746534744304949982411121822685509665303341645588335001915099797797458945723652667855799793499362532427500240789836485054930660794255541806495305530345358379191367267246464943492485407730313190582594173714855418290967569539183249527295871874758461656472366659602686728686658428603532318314060623934118230185981996698333423817090042992657201896620666993382379903078449686736522097516802177953252858991742667780394108388060859978225300724547752766949893118750123804196083480890284593313454832180493544573271174921049084347093976146996244848090648709245495680278949730433766231149523584443641518205414666271608684312961400601927413150864130678294506912622844685963380467918943976871900098806606547212985726748573991989425784666651733168276963852195892212573642793690073089695294552392073358355094518665353470178428997563236576827659059021583704281788086450838910766625958185841814444113720023907348423131125750097873519015341962069254161133055865092557832763632842413886121410348640902309737698543098653649802888215902327058005996931716436985425193492434645975521807200002949974088526896418643849338259168704590186049149413134208550961518124673075569556193796296129642383665070788062220963897727713596261230955010425547939823220887308457652855281197773930339139533970262552675310794532810950383304062157249037877610771289678321450338422641323946243177280590653856372207322147644850217908058290746060420027287626320692587905525520083282560391594977200049506318701143967915681772092865545868069872335930704797342617801078855211587386492100340165413063590524562012662522415878020026578299029109214149538111249271582858664949276477692659467049693189974477138419088771617412505154872163378799692326173656423475285937469743412664009561853965128212748188176549699061823321982432621686145247865393232264978060343325447763409425137038883510411668286704112852360888957508526550948083002021032973740188958374744485441652231340127780689100133383955653613796444988364097439256856403626296080718594439225055008792986399447387900816590872713460486660497016450094842631387653821392505647790731116968475930911489173990498350468157503706771464163399700094103039891722124359997437673630074900362439940196231813731149476554674051427778315885994349060929803642356501645197997387347657769551385013812133636050379339424915220742280440434319760047539478240952893938696933447597787547287543996160730058311500686326112240091706400616053147706859456847896264678037831284796878557748114599961436347982700394915648378346522661597921158532407163313206606549061717188846318525307125676656987150016954428104389193901747753631419164201214090305044503117066803128164585582410388692099541046020289085934153632429715090334595230664237198110048647084588922143990081854400362831491877320468570025802895463418022350363873050025924987434668961820393096883906624796592442454684368370368061299177552615035273467079724445079126083409387481734644475627998623411742172862502661912845759953011111280887651645708414957647758631754428727705142107669553279316137617673617697617518686140036187680698339855199936364679966560390443603891092440230481466034279643952065326122964344534142420192305963553077994145845637078422771939041494789498199623609721983793166115951182638983709861014141558866322767304003636893393534472251153767332411028844886263136260679874086328016693543887860996520331484311668999479376055470915991646495612088712250878464993694476836961461733788455355687702540472057143217934460059682781478415851399428975530627244936507736261048864632193799141539071920733188164677650208583924019580979458355385343545608956681081046876386768601351542487427312316139414824308301680923352571620933939184108201373225811368276586465758113832842355209452227888566406965633647237391688272582497142890569633401989947397959569751514629024984515567726292027968396053163384224882898596321543541160871858548901392962994164350396178532772911640445161264771595312018928868331331684494952459134351519317083498711077316205039065144898916034507377963573730894697385807029458633939232544582149638171571639928755911839801664999361246748036922712328419351619319652638263935479107286702752253570224381316806970893372825819590307876866147726162736243761949926382709046315740583082482248815714668942095041889177654006413837083886730793135333094273653979311236706867441421458486733761119828674527200827507401444730068547762438211535580563099395679800388103715313282374781089916187252995264794969772928882592728467990709659041923538140197311503365863228293177392603974535724412096559424637606816043607313641900900654396983474210893421578518421614171874297913821212097089399830508266150240681616785141421320777060506568299569192509835023994486872240796187371585194753372666605558005823758767404806091674069376981454029499842018627869353843904156535439017071629194421436600473716525637350829346363135194559761026760656245093502100594506682508277738398661496047311468305649158473583117090738495269189071500589447571334619520692191416062962705359699699320778146727991484926232101268926724273737996711543807690719326326403538703142121623686767453847493307443172101327400437483693265345550150951748562030969526970954714917419406710472179683186406942261308923500598033112370374275959414010750958267235121820775583114635894898595465962550898659839451123026703612240980545369196603871600637259500245725898151520328436192860045159814661829311220796610039073458224387149879017009223926330800292060331450304556285395897197530616854362098468456378223523997131307790528584723152697350927575785089692027608590115608082392765150362539982740327862722083408555771254796513567107067601116143895676491584699207339790710099252372036812332441926414500976396655009183282379650038502868314758525087510619622602597192515938771471680102724776803201228285249821588916906816328665478517261416446891629546172577687159421570677685050659812946038425604006034830589441084949105148663032245189627023645983379620177556347341770959701518587043359639911591538059791286658143263813551423397075366166203180182206556958388671518144219010452378577490151892115684596305907425741815921649397700338164108683936042594934589847732923225045316360692035416320221264983912417737366343130903709262228983963746500685361400352665235981434331948026168951677423268713271619436231875147653425447846339304003659259926951518784251203398724587173193620180493414031232690587498601888003605537548388452313212514490685546079325938139595659704249405169304046168022325715641560462828629491773930367342645491719398431719712399820197275203017160028496747782461280893297349820363147052716152658912897461943485715804175795723075778904838759661931976894480521256789881054088246331243293761111877947485015716970419859632708080566119153137117138061207684417234879509636394553991601685368863441584807802051289211899045689423799263939582856737200847782742737799306936720715571067361676712452497450050662989967346361472727453682203519194121204405694250443219439513938476322207274529691373040824787249620145516728673735404156747283543755040568446144599601758845047120592975516832470469839529461214016333742503944296132486976410431607610430959193873556484926751840754932486416548389419752220046494283781538124040336524544631641078804384257479513573005977036980360421911465299576081459902058241008863011382283525351000691980382287966217440237485412891828755707027137130092037881041779118947437885682579379416201764636910758043760262648504675175255960702998710335254818789344456518770929751230365441072871962190276901165986991508073958384324946781606562821985488963928518025473540420672384971392864409093051471900063209689638538012419463617442445125554948519088366579409727532221188359798352882501257617126581540148275045257576662771837676493593672741948648344639420496200130350717880080691341054577958865410813269619249963247452030709688325529662414044301600811215986751034813637044399766459878063041024361692308085921750970200612205739328797333239460923314816937638213577233041890280451104564153581931198586454227099510452789425762878410428247012610418138833601886859775800529193752053645080805507754385143620454595193497470003912412864438562293813737108780972179480107648747987811873022644119772936098570462547566765854275039162074303337851532459237173465002032409175117387121573134857831922823784088719289254402339299536581798641505628500243123962388768772812372050539914318679140656072359129226124874120840081449253586781374022889349148596923718546351389720036790716009287399167368614222345181964065316669778146677823179420655558753326499657561552104734917849254150011884065030560374398139669423556232907522411038410990738486736597294461132950393315703148979200280297484289615115907990776695557760661703948086782810111033860439083175271392248440379806369220811124641918145608948724409110652471628198868528932683870574444206672065802360511784517620289949151617107673716278942121518643055001200135819560095713251925181969078829317727526970469002716384121332129654566143687439508151716684302276155551103573832678494248108173089377912840235698462059292806888691676422855762466685940592331588286089600081211228463672128680529923582964531966714732484921209691125282472227837228810061038004561366178767159300328201510798732356704334885261936761530455518485407285632374257661782972146569680233134113036051683086694354339332017876827648625999616251390092392102924105023144543317357942112625636416145384873310186860522776677146088605584951712854196756027936225243783786075910648045161957367259426100830960292719241969847384012115022458701805625367610831106566653863018061021901133827863330378277904032494640536769006991372763408199317985604769411832941118523669855344634027089439527916033147095696372303652517467460918857504530049435515262391081956326993217210346482701858074369831183058018314988383161097936945520324057649467557244993724064916899954984383309944809405473821672354087417853374271861352234914864246220981164368409859610498091181912952241257964791665144020932024080263358708940214236454752729831458716526255660075241254382399204595548955516588673294857596036869983002082369151486867763904221387119950788236824796795532421886260826198300211770080505652486860962209900455156638048805119715776478379631636372016116513487975923276557293481797752060583454204110615417572961789222136775256834859921403859361263088235481154674774319201844059466928454789826060045678065988384470364403989279853068890927717809553318244564789303225005835154076563285148720265208206122888006433514631065738162900906002284524722326618130161970475745484818843984568297920214658417661887730713580130071196013841740497201506216874883596524583225937792826077903732602299826100696779140066555815582272716797158452483889530360392054153499889244611889995491050343215741867676020919925171249947291569874301729234298708472890102727712799583831209762039940689162723331296634939857249543315942275322019450862481291612999851560433963258286201418340259368993912438441469521813985041036506428831734332178253865970673028753352618727430402318698691203660828741996274146005066815548785690031323970773148596594945924315270259515235379042550615922742510631882710634583064609851408617732269655630816199382795132466587233419272319283735616222848869947346953191246513281827707331207864443217462005889034834727206320997858596869937465514889705015934568835523191279547631966530763909411624259597830390469185756303862496516448780311107151716983561560427165147679470586616913715916079604498596177719927013831499329487467183906863274186323458696299665410036935887658121712351123580939671641115764036045672113712237373881466571934933400206953140750109338130902312963200803435908598916622077571132539310266729610822367497060894009240902619414847884074102476306510698672556594150753848474898437658961220830509578675918859265115749402698456708550090663164734803425885271404477553296804866348255945590237504358203734564812816604122288208844812704859545011469773645907970939924635766326288801447820829435280156210195004095831893631562455682796000925733413446668888248453128335889936579661657545092588463096391778219225442124426247122478993143813315082388274244036661027568200947941688102271974185688265867232563106145990682357434387681963930244426987849319175312779926792970424661105218084796712537569879100569160290960798496472004095826808476814211060648337622432424961700324886671706050233472696968066862618270813140915485931187305537972042459143046184822666655916893882975604498129271185542301561255936749941430268170055171884256780968444841465196243991349816622287406933293752467419752127409145905939003599570173208793356090131459850595566932716804555242548132241858236379634856385559850229667895358514969995710538891535908783806915963511446237124206988234888538962543401176869112740895684627786119895927893631197696752422416986372679520930862061248245807477309473831264581915735568980110171546504075756963132461474643883040682580305895281165612652678904380846030546796422338960839401849257323331593314875299300774574934463088858933135332558942578561162466804893960635390806090023696547888430900899707273773870959902956894699054057164153841587895561206056691287222234722809465536317162928516553991478645745362345718846304672293956770557332796526359642338393728233181470402229237363748073295430625329273752891459892558018279850653165198462822153746068426261936695278358925340518123922267079632007221023514735549984546588084490083007287569676219109720768760349875846082617061059048739682067837194532868824969066556470831802535628408991916524169062531582155455780036557057876696495397032808101923507481726200017784762605885416936041189411207476039370301631005453768013733968777403802605724843037977312022204498183148754707974270691629219847393371783111353584530435088523169810016378063627677775498951692158878609688081739320332181202833866322123210219743966166889984459945653085311814096065554337904678166003937506602448777632871024367892441042386962956608561785396407257465538966254362093327453052658463783535987692266541154004025840783407584653623737805665832696430500999458648070427986237402959794185528262997975253483501226392402995288999647912735134245487263336270660980395830746022981726505681277917580020660693149299453169176463332266202455603005558347999073254318285836085675938604922252703417685750686646566620209588236323807808341666052844376550952445441595551755980154090895236386074217931044881241374763741104883275278941266149646637262481664975058881049468525809942746455711635022850753734764298484077022389143301341028334618872959907999151754680325228806098730414212924611799546871726014386879055983639296709969297375446080748117141255870720363141812228675484014765156116195623268412202848972232662599475915138779984177264540858617275925073693907491367587560998340645117758171645688912817322167960548304668929319970942715793308543637544204578692039714276512766193280523903166323237859300407932597126919304054847836828686924129868183504795135447190074215910941443105086608758619830001617710725298705746619795687376821199699918179872830882797167741868947191040669164982217388819726106862914429777215279850594590597792475883823955153629580920591517191411383749073077038007335924713204653566625952283254624747551961931428010537539276857386415540598709029352863092962959204195263373369970839637587181100446812362895313686321523762932310544507677676213307681887112195746327011358743205591966159308148773773363592083806485694175182512493433889295580308032774584899883653043617639303968433061870739886629404220041183681500233782684614765184128639858480184535081813843656128848441249743114768352916973471697177654545020533294483726173255369088011021784146890039352195911190985873643335911156834488312498248790769975397692624530704093055225532581496782126141148975390947374282407357960421257577130249370235744231959073191775777895662696311826415272774441138050616390788039309620350923957147379986163933472111755925492645481833064079324316104374827474139743180400544176360855044171564783225384658039429625058854004040497647315185755848743319543102590483756895185288475345782969723118483040933760487886979752266126675801881436080999479492625435067301145033716576456336119740600607211331126089784284672226661064543947920314876680721826024790427897017511561782569133667683969911948543054993279524543658674961420781010562283404887186191614938543267982538396285107078102511743829490846736169335121672605668569662108000361604547388908372840856777876464887154886955428285293023427043263590942650195887461367198494846853163421916888228586628481848460300637349915961725582757015823873109736191711731558910063325698045656152392448470130575647994799359561944662171256441704119584913652785638626179633650082604772788890432509933063318060889845532553453434971105338904925659263548859451636819340230047205409408860696529177719316927454194168325717370914769966417303096825646400359911167431452747208803311193488679660705305097482032479176307971690750841480973770552359687658934353271644503467484841777512525026326180217699763836915096991081015307123548617239641095948271398871523235013676805671962817364607848380606985196353266922258120842681436446470238005538094241630926995388626364010308978005239073590713929161961835730417417012756648435880369573846761419555295631032984283375082627008697092812311127323371132586140990558123155986131138839111879503421673891397131953890903066687711313547104115857122820082076669450227785658162049300587658653062387491258835649195685763360474453794330382062470580279596163216392870900735720884253959966018700223343697561952837569404848192180302905921964293690347458075336725293137347839338700785840010149592042597913738595078558868886382469968269862559516247497450506518544000473901582162920720437452993549050395925002700668347917491671306078666052632012902951113523865785840917244190262038635267437334505228509305521681318658104892731657300952158505728507012142340837982932596825634975314078083784453453148557849157150891062861019839757869844399441722674417476925293154455556688077191928039869190497858798457168679973583776298059719727428060593975108875695900593482865888157608237171928695170433974905943922351321846696242840114505030612586725289374393017114407187092138336066540544805566743291568301089750215192470743887198187742121139624807798545837854698960597606623063453909314799753475495144639102583815097021222398583332200913349565568637544884060238275680726574350497899960701567590430654858550818405593018206649925848973494985364279755502224688875741811723973103898038028859175092376802702639406027392259287298866898929084689561834158552127801234703393360382534849302177961181764428075731368339256676361586587422803798347761143615179263664839047131676393983941191244972466649760769939589332645035549105530615464364387332785769073856242256928571008368862551453570344570759852128823594718374370572175544333394005027491530612729098203272883273973661528714449592203632445282736043678698902112539244708544360063271723416004527496515886125637656392141595520365042756475211343654166804004289054619258869215588531368478258424545266960514959477239303238796662689174412390819101378140798220724228096528441308328413999415043597966432863906846853567371649472250284118047871570707852949487198998323264452084886953027134481985729551080499750908078486879172701224981943399637082597911679593173193119073498479106785367048968739592608724724337700258654862524612930803674127680040670923233022228584780874763052341210539916625601385784971069577254046934079636575576335379731543728307159310022251369146148282209138962398071217808413291935978296082605198288097023821853408065276756456251459731626033361637040824642468771340565586765358274480295737653747031293577941441131262709124025097604605770872643525047329197770256807678050285068542732428476164922827949007751330449851371873777264821161232798678450016065222809124937882319969480950455361033194451712989294683500205742357152217569949453851166447363292997282869886403351658615772760065168113592588186891549164924351416768175986779020525834849732366519133517793235640684631310083549256619378240876533553856657151228937725090894214165284223273331014472723277514775097020082321768931543881623830539214211321899446149765932669590541022532047365736427607195063980004469858765837965503861385821197655567434545337906759761725470251646742472073229222253356501970319600234316416724835751222197883472629142388258603536877829464596913570523835500018391651662059027508552077531694465386112965965760644793295715518367523073208956366369649675298527752958910636713642755780096793221085544559193850742295106573699244440501496480841336525438870928359027246074194855295755956301273567064588684130556642583433357507379913151907071045555332738723886969233770239775091585994510017538330950209054857788788620726895470158316490201453723812540631135746987172226693049577112599615155856944883147481304010905206884697774218419243138154534872251959229010806713087539183503874120848037203755741887489226284813910904551232170778200915748412560755636025222220692376218671122748755862814109066937093574372974255314436749088420237622349823155306271304600356844140159642702774033052203579197095591724614115136966143109642480379623209146264723844208006370755023589464269498852729053899818909731276465563338067250783302133699157995573925723015429264688556136435886894152726305281417535944056123961319598013168721683214721907688864531282296700117131443563232214865631263064868108681077421078363451702874401805070993911462826471723771560725542260618000100663191861535631741042356950362113909246129241802813769297937785932312253775210639673594158325860260306776859785437444433797250436270876525272388063772738332751948880134593917914792112725234464625310539405563936401854462414258589064056408412520382260828032200534015738899787895963157130503453912034723611179016791573731363775145681649465218439572562025148293239900784171313658435339271599733395018739241283458080624663220267634246469113156226564430283699848923251677481238975821207196481898571848223213440048732454075159433850801514152266400700521329728927132952015489221875878038887384009539057563510754564083372551346169441457062175737543087603704216302711256235458832586496545981225986691046676787381532672959773290503285211058238352143703846839028812039120792824881834909940170114237279216918719607574968548902992514642453541151672088855937982262844090252740103892179514675059578483160132974145975375220921213377511360263211121633462721884861203794274000724675635861545948673642048550742769474383420614589968361701185628957159510732856066640865898972025522680994214975909775751852039904288035147050997287618671441562116941108793443082298852069712853360467486906985687454604825751530468033821407825889976410298926803164519072565229259023208653550061705897127769729020709088236567275070217407565367418348685602427622161807947056520977801515665537221231586873723010405923671084919431582262662670540705633982489339959559111547765611433066171181566937445242281193569887159808572846618459358744902277704996114097845702482473811695849936660832911741875665875743863495352203375195087527334425472596551558171256246584601220357023194296147722661839654775820863793722480099283918265270191180465114168992855016217567370043823283644926558184445693394831676598596594870221691397911040470579843140822930622848657365279365665852384602580868630322523409795184775583676130361702262409419139032800328310922076108897893826966383049331152398264971517367808426885190641184402488218920082304136888134319024818951183186912475452505383054082924266205688419893039864418801540758391291885973217666930019886699305458353931891130528758471973788014853847427567435171386474132708417948663249562133709275792747378918130843967205160800022515827508920200987674297090473628556403169311089050055122156591071329323284662623618981226010725433867411731599625826010970501890002222088100716024902325225942789759633804447571340742354614252951144208765490015829127176102316912418556551099878370583031243034133230592565367429108929173259334646315845877402367702277201315498844981723324714437903118503071054266971614546798171254356280684978713229541186716021327810959802713376326288958927426779370398378461576675235984847031540271936085487420770975616810685643787103646748700092705523960087819831406100082346031116964311920899231262391197388543028753134193332633033651042789329063292171943659288928765614015405058116494787489213547672497451696018261475490699703316667483728832056318411036442175128828452592097442329117062140327016113201239723444805653673472697115669091564229330029089061836599416008927265826666438857706900958969038859503795303139746228467895193814569860229879428193124763569081605723783402289672496859207199428067735641953468296144464396455970765631623233324186850372912522855812704779490392558349278469531855720296094494343790777070763274753778936497846548495682626409750010964347309016135262748848644895580736591648059085388011453606043911650578345284422309840585611580238372768428355003814946247270266983802397259221182628033748473145219111007997255918710362103453620399649573437275061998038366227884033532621238194384839683951300946711552161504955963863435354636407813555281000021608516085570596272097728419305682011806089789111000242700790855346367362724655178180364967485099557788961973082084849463239660423191599829016511091983684722273577764826114330926258604706394686444932506696781233146823954176647575628922854526122911718908801091716056382360824291193009571287340447469251155646854088336474248962950963434331416424121528868173051100487487706204418580722293703929458735157473202015124172782470208973211491897358854110209655712819423276964992923994184849219123662530225482077376488627930918702670523654255379059923918407922251379992364387007615218912459397491134706591498502019694492349520966894121043484230802369703452999187089678012568837603442377900728515928404554160398977076411745857929703777017174676198637727619226099221139625695060748751470208616416671596820750902368349442565263633004172447898049264263507697149219413427480447669757389015007357035374669458519078979618053806014880939023807038944276398991628941303352031320617375732262501267720109047688565697088795119592407303909092076982945959688168819638086234723892691718651238126073427895222814162085453764211629673212792294870051078058460603456202419583702161865584554827023718407589979556766542947493077282572681746292232163981755698182960237382896746865938631076049614654040492227500853824203385136002933349412586348630879905568589290590772583787257475775328978687921221380600829040674135637941008584724197985493090533408781497231138144746712103847181262653778546337108547195696104486900395597569672444922503359453847426640637075172282196553962971517729816207258680678189012193115498346489347760134504410307248715373036989469968173491785759107841162296780566408901617064028632982805723153044715261297511586878493202499385195522923850067931463122358431311177000146592846492442209515008311508187284962342511822539855274345059187035372340901988297241538009382544481331978453346267208948462539482732055066390133031078950810584892083740114838884519470737791519765075506812319097981744339755820754159563197381399770864294752060506750849229092081098336711810915041663073262077337512438791716412879990703092966310405273321214980099921418549517511765780030092483776419373146982054207454055324010510314429909000720489700142312202699225201176779726428546421604437098043371701964357997965474362344061343415335636330589480775080434203723412735501013600637358758406612947566884124306421139531611725093846438240844831605998728636263932090043017629402297993718439736415739352185576867319421150828657384045259068347153116748536155265279744186372948222990426637246022167893986354930424630362069135068203827221901355761988223670727364724197244706445517455870414194200998751235568863222311261193860139340425009068721817842318023376029147417485150216685512409884840176155585125273996378255535733963340241546636383294234562513960623411146035322824745850835754621314649043185141527288876668771313164307044911775805795471887919462592395284874422321120259639821615893291501633885418487128201082817981641915794768224005922641637956079146790302664673495242383125832266266623829761247105057632624227684777968504210926259773534932121648618841687811585962643623049682219887715389856659460522008733302101826183173854566135254823212161078145832675869066809400818194418168839972082586726676680446098051593736795958310378811243761835123402701449150706409345010400158458424893588833404601246352090366328838292432852840348930260232636024875484214422103599539916022500844032165497911089702574168225878094727049457123919094195224998698690627225281139761064516684158131522897961503926139284812991323786143648393886632000458192554098567726783334434184846205496449232780783717031005754800898314707050293032179313696527440188140837707236949014246490276669526930951185865570117969251587621667231418896201676121106848943218427243311227483886158450298862979496988360730857029695691048378316278847299229772653361344947033578970313274540144395135152343769109123131135432469077154532062500811385061284312805694268686191190729770516327658167762575060763067825714201673295450681397812204861258187354676315393615926815175127097676269571443562294620503798529673362277548850299862258411234185773615541709402491399378087308175090299082996291582870678460280985890202171828315376894540368409523329895607683484935643392772318113875710661236480987735268984895654849685414384292590817149190729211301776785962015224907158781965936587967187169926769823619932380397478086368785149829067125284986241749474484665312627289334840183938063847249030161910508994744917128660805366851881607456439936930000947784581217845992247503182940077782351036221698112475624405495041225093888481901497995659776586745457679091829946811327068216911010827798146163062411824445613157972807296946945751369486110921928422560136744653438556846016916801810379295468213724311336685318894008281607179561012639447547132697920095380805772537733227479123983833311384865539122657410227448539261485079238238730909662559394187433699591481317870877197029343318695107693206007283653037352884760408397469695989148116828716561618105585177401812193838476609846414430326181392836780336224520087104762089554496194103162022917189847636541494109819135014105669782176638188597614335249314723567827422109419812555173522411764661583028509658074186492529389775201032264778997863967163812402920908558058371720765962452073147215759369145756063793289908063014014392526832327316557796890786567325549982431763020690025082939445431083137241142166055390591058840045061201116971996596499439828147714623794172965468331342019932263773885112446147577504989633196126856079063451897483443984089227556988010628233566652507713208026279348377612474265703821126497982300485094296073775479827902002810761479012015935650703683307088549265220874837642388750250726725343667994600456524820367928316597142000549683491261545532380191329216722873024844680862656970490044349033505141506411897934330343479974760447561368739774724289395216353550733340842623905921717143063608093924128691832328798964025193944797785771350142605474568244639323453017664613344764299770971517858778826069098402922651297056785838028155154570252386659473405712123782581174283353788874891882567564070334709268933422431503021572840219006291950400173584055317534720714386309896850147644371405520436392357535192255358724781600474122007100336396015267629801656273854113081026440021278287810951715217089044773844256476012517925125584723356347907265539704297636704490668306638097458746611289727165721149138463925688978904469388134264533186935706472775751506901958912439561125507364770375420365149616762226654632743454761826037200026773361038635241116841637780815076767102398112551786771877205253998404402301839544121001630751677333637556872970230429008949963281975488637370945394556117570864980750123383466324965541736393843381117598958376361037656894816697760769141895431623465660700952687774015244607614439718375068311539261425626625309318978069895463849837002077528706105961306962516597200792080172850517496194954904415908302615249223043150928591369404422715368407246833102492339106072734052567246462756897799321181330169537456345512934785198276470070291563647298100982186708488353240666515540542475528490990273312448030738175402569180438718870158795828243021941936403528499560271125652348255554625906265209979681054500298257213376027276627726861956919240696890977764434159606859257058911633686110858667442166738619234000624054167587527514485835356749220732977038786213716601811621602710178679897378485440812709698262399257919288921387115521131602226409272424982527186242287902743941942842131887668137599108962960196162639129570076829204224354630031337485107882173255197462129629244048620446117066200168839551915362982406871358254605226793002507139094656659539194391479985374627012606911857520463558281221120303436492175599018445664263738601462394566888417900624010627229981403452640384309185157199975931175897681703492251418485014587806066609812687029290712289679112411473824003764344533035144080386550836172493336294427456991909527449567472239709987250795204934097614155201447472860861325453717487455107910536678761468244297960381795653241968062928353715270458710017728976922928423316561004649421974877814063166214605204712451098800424461066447125797102366315932271132124110163304789204193432743067375654386094650156106362601156940360785903946157780158195100572800216976575367243226014523944740624614211039533579140863587041808522335468722878433242372083337031959242357000642493679119322965448749327542751658158442693218951904347674064649655439778650220931757688189499364717019715935016986666255304875599510592278847421304391468185904336160436788908801641370120077539718400765846079303606745183254444363186683781050520852270160611975311178016470790378715069959965478622000619719162924460508404024687686034151538207751535648300622676759448698738820591137886865795935304854247257684573786827692890102265285698714110594645908450526015275241522222934709987096621863877116075089311845103235850652409995567455875298340644279649204720790406091282354085392105766572438497170002413334443041239877665284277484460379033413162159479280613942471452526460667860776709340610069675746901390468205743318264842406980699198606945568437295472953502191636491857007659740525045753023480860482291190229144333536944087157731185464043252574204403739806669354019663769625930493462889936958515964369068875355057365393525216385250535066991498158447631919330625278815811879518534465955144143899964807341366841548648991715855476395339276319242625453930378545305730315973594826825464780184390118251960417185321696005381605256540335100816021321185134149648547249278565512928266052905546714979999920922657354452962379258643664309878781118990337204807075750243896174440921020668603389855143873687107863284265978418852833924498200420443257785000333495573554749063820951883126917828006881696871992755054725403088703108093428282716476571347797832212136907720454920281436756039459695881573307228987776943161778352033363998047651990929504401170984486168842025157495237809718655327173232718062604283870218218289211895174770122233148000028347072306570726389073973785692334842504305165754490420151923825460785785479271427638542112040809875003768862327979078498007073237499669550869108906688001316788344373779022353195712104118997531054041069175690731336586876128221059275112590824404122397995866692790293622929465173289136881838310538305827006468700987721247181619502993052165049915904528568286983672162563031457454134216285646501023082214215822178922604546495807773451242181911974190998648396921724931727622326640104938629955423457444700084314740029007370458497460796154029073362449489375523470069721113454149456647931158576283112716607153279161157066555973129360238167218705767927594264769885378107756661466884708694819080178399714275234463828651844939168072625127274065520450950505620820133300011276050218732749892445632821471245364128564191318232766399100173973886170635626193776991811203530869415045642376266563434764380554605845407043863374904622363538053436636656702019018396273839033092835524680946766484808085258437547716516441984213464288796037670516845911571985657211148122998571546720185976834838885664724433885963502029303818266808522376156900420407680996968817885518895246427277269152827734404028220906421059795687657433227771700412920839003411676174378548512303827986144836938901394460247205621950655770691494490931180576860219317256805247257644299610756233467299212542375757794806695307166520478560395743958525391572459087306892670009162540357308017983792346142715447593749095336712145102484072594374330173177490480746977909453520681307694095086013680203010656923203899400334644615961452972521067540741013430029572753633306329774615038077059415747469447836025025650977775939838199939775416745478771255037399693694257136891535514583805542224651142097386866656341598219068556876743489404917540974999699906247399015306727212901142764315537643453259250777076841846217482877965659063043664092503679352171814976860316155175331946429345722271846069824721317403561827349778062947981635504965049536216474324600098967635490098735322709951299485751502145754521855825832057509485809426251776234409144097246710693427973816621833708217649251850393525726743193273713903536934050908360846263685699699686325609307556891550110336455630109928460373050398686879198425035753624269580654739697291780268981624887361598418076747732033889075422880050866358589340349722549665477015329468469126680514667207288752766426888888041196130806388051680587044973857651284347783750771808195044018773171590908319644472178206335165352035493990862151799505224669118865817688290000429188649021489594285526157309025445885703279030531013861139784482186196191383156768305481864644439447441710210110128221169882898742607933030305597870110173790171159024611363183077356569390230479900776908726718507177169677915122538971327393926055585592116804441368124891822875542443738344618513571520518305579297433074830497950118047952604811636354126734664833522292708374696644025544156636834570611587182772215774064278016475706351759407006527594125566768582207614033444617656984536834794765428638252076879464203632543343155262203797192806596024581037292611631939165569428112050231621342121418417753859476314836762655149483607855415595010836672755736674166031608153589758654812353426882570393610030698288403077857186745951113839403033152634577132297852945432449804779216596091243368202902193454319888980602180512790857636859397326732728831971746134301421261795313065854411808322519999183853762984569781065464005469277988400976353805982274222899493954409060124257771508082394554388778646789087280774376543196076821007054503624511214103618868178925963002731058588098106478616055591040000136425956736426033639857963523018745691118011493054121606960257866322279921271888469735531249685862732701498285719058594078032031549555455704971277604306802131762848591687943832969458761942363639876979377277986487687725880353634236199124031636506968905495225345961281142004958218540023119690876384181556801786498482906943409512752987907441887713064449258748007615125669447829099393523329218232268443304089775752261337698301547600959402170161352187130911233743419471101249382417275176533645633060947934923378924996857699992676083543232240670488068010904367529841538080259539297414025907388482737073369328897343797486912455434457999156882639228464062823114612948689254359103935472507565792179943428097560088302348370156062477740802848147869208468716346915448227347978650959477369976337361414570166233488415481787460561768815047698022633357697149780282082630469190810717037113745062804493470923852100083155437171886810458340732013602042009125784018310224795991986976441323290071121679611325686884311202992927520792308709685410694624465446595338649790437112486160571348562652098337859674431080967668673756467982108613100682075924498620550359206879130043306543307422908603535017320194140001094436239798093429328576816288056360670341329817914458347808492341260841016078414857831033820808896186328806397718632269740355211770836276494979227759133775504308989286074694690670917500622293964036919733096616503557239571464174310688473579746678649119030386059347806440792346923991416760967194377686620566337336660236535267650399812909320788870192684735151688991832690027383491037280165506537509165577812793107630758179729031428622028868664758948917369470641073012309732365121334754889493425483096277663213591034587011731358838588920040557985029467778321989816072039393425829268146743457176186806445565904081313764449908946949306706100033163331997472425267241118237785901248179394721753034058273831737672794970130302737314558509122086068831144413968642266094900777527125385551908641913361965943655169132516281066339209142786192620311296673539814667252379019493214977327869090187059458945011025443676474736830977603421482289127321368322218938693228082297597705981057646272110246479795611920501622202152453487907334935950440228021057302600172878275252681139078543485881107362696200153346912003626515097284333121734788880957612268905972335149192469193906464988194739554312471083993463208891418007109542914292447146942392692843775047326604969474681600364754240914962438677775415450508246673836836242559815955111026018509267296688963897190367031592112499397519164884608308468754480777767083946082930305830079066527755511834074601851247804784034193054042069697675262427526960521539043804966883272622392160294045336737520296090656129001542153603779401331820085016109551809021906022012331815090034152926797540110481430301468890399576509234207309053071161011163484897129210051693997198577509740923114921350903822820598970924070502079386427316490707303597551181737727337451902478748939484573116657310841777235946464259040263220254465097813466748409840266905992421219330591582421520037748738348956503024506666971872863248354436070608418796665758509387180075168204794306074394291166200308167229485413204416609663991736393743575072755936913808157093451414684678217973038930674077341827974885651472641913130229284652423838133746162389348858322651699780215669028957746557424400361629501190158652608467126991853872444623542424451739445131357493757317973925255686653527407277220083185193519224896978211545894945079185461979494939792596070028100992308114410844821228258898679882137047842606314407431838465579671755446742091927405428547819763931698026364072478117265222503092227107462863940201562359839116863808858945675809781937695354344483196175258632020524532402761326645649516792264049912621624628873253375307963994304641911992215496332044297869271988393333193621726401609680894643606382628262325292173769610070766704544145640483372656035805719281412121527595949274835740636351890690583926405811708848869317984807320826241866047407430755319888724783229469327240319069986458945441872531589153281854823697838152203363696887474825465947291713272777066763621115351813692142518943144152146007533427434428784952657943062536548821164780923282827617004651810296385135595585072554545302530074704066690864621545660974210263077820063184136437744201361523196777242498794374445484509098194039752925315753496804566605304937735037732179448320180348521814199083399104443252977722338655693487799597745028180692585189271663915175697971364240757632102290945171677236398068910599469386119430954377684826017319814312395278261259906615534247696430196936074732547844572710929500673317542055539906635884626078156691640286940802965845043996768943856578499268886959544648217926746709463321431792560600876131905894144581870832772685934921278198779301740539668582093894802872405501434959812186364373067550315695041189857079010671881062343165999485432842380715542949308387287489138477305197415668169263505561591131466244316766456277311839004523598915235825546629715173024255351069889370893159627200697473021429368191804438023446537717054426548284409345241229817698837885430614483123126369048927125356738954316484719421812870919255728553469524454741718006989534095912878718068342512564858407809149140076764425958353108045942411187811887041822080405279258792213146630131677734837079880004738331622198065381679500325125117432005475010291884510828070232091706942018520347810803642997993470391364992971255636498962175587449803343829953567986935727549255162575245265116769159419754088932468258360550805387146583747497610299606416008877053161797735340099739968264796732232391084354382232985649365972464126463288438620305488738994041804064847488185765410207727561772005900579432778951909835544588869841835032984872972776746648462912578666120468852934872396496207628103809496290631013680743385825816548419763625577546531640834773050833588923684311708154685121713344060301459947940311477475737323397660757283455892989432617307064190711559666206942798583021012542592985310839379183273467271254075887550086691927617289498550355728150462023679281437333491026075287509135576844352231828846376987673740423266865184190494630707602421891241342584132562157831167842828005085633339280098698929869511388583962731283383813243089641706251159325246002668152007063997154481583655232409188499609771041328794781030927159933842502783313171307904336487485023599510828348679263551241492141681813372743138772155990465252238360234860827957789706920668657893116254292594809107077611573366057919260784514733580816284599757097954332706902429687758335036739484096354124393313888897939734518175013520923785237765328723744762422184851032989206299377709760449367784407918430829742005547711136004181571238657554505780035035610570655410406697362440782995786324221567746599745933878816178678566463628405627711711354906250314501180797680891955973350035659019003187280921435775416579530548367276052216163068911266395898447668764264366047531610464447590665936480524540906166692541391364613000638231371978715958629337998655429552983930144651271902217347627785673157749216540122620263212696899463583302722952796180867398941444457414282829750962311787815471132167605056349413924334441398781783350923220889299124232144527280392625562310667660422295233041715147077171035676056132585912127332561479421503781365871792929993330288305479860036101282266412476752708187906690637657297921148020627430478405517483942595977965955600436789947433187202977877898825030760782403677051510339157059524694697589891346578515489648668098633404914235410888208992478839885287123699095268143597691114534027993332679375880209808509582499407174521899331209168934370253760799855876085924209919713587009293692959928390212020492732057736849925907020310788743183301554676871623405221307285438380818397001459184241638376187225672754785335454683994962403549172664640152013510475213662098634094137470910870257947242628088306308678875635111119341600047667535975747718767624256458586133266325493300085975224269712092905048939889445784887513251279078658620181870396586771229302785973390050112224895766718366999161441771701840923537524002825832692994761946355971078427352916130471612105853680891337857877520344878217665257012470161499645527406778121101799378861888521857591224721008594826764660580738858932463767181635989105475676389799611531058735643891092791923067129407581993565282972037653741207119167257186936726388263899948434756428387295669075346695545663806540072522991286311991827704074942054511739683426542000822652014288450731132804943794987831375664999178240823845492625499887238101393096393754388089907423818090308823430310651234457559306105121619852662025336471086623114547575873743083373970673741768612246504408600142063409998993593039514025488878198523396185057657830702305251400519387185807702424848196522854453041191109730606038439927319980558571773692912616171790470746813020735556392287983561693034772339381896826983080857455641767840484618932738820046842254500007337367800996549174014557949457817063579785156993585541451086276736907764675423411181309713603436347834944078628720156667896909898347828654056231296689686585475519623180173068499965534015557565873584051844064489953323732006133295450955466576985049735331067101686280232590444387509093756187947623854333760542620845294383236698559287473473362702369375707167473962602035821062970639238791035526523270233875022178642857249177383420798970437722359632277402594372434906077991406113858860990953720966225262740452363840990432175089542656130519174044859982648260465882272051032017873427227070054245197706760851189048872867953851680916281888404869152801958316567971103153698560294451746502374422255365879800425556007243552913421340946160414515040881746411729402723616925690478702117633189094752052560924539296613448759554158455910403202991496666241725151258437343612608973485598066782079249942860929674348597402147828048295640456049724970018888734862855220943757131768153394865302908366116623584063581771411776400793808199169217954102562222712405755400373010229543213446652034665586893188110411887681335364708807869836387013735091170020342361906705483958950374583992342267578519032449512456998807882696267501193045942056196206447734338748157365492871734727951329493331116045175379975067757386382560668608108185341927093682820483075112909200569697084908085955210903130025509874833552912432573662133410008986816451974815020134705718807307444535812511973068540557455069249710999351757364312815505156476229759536908573838392478683322439945721426192979163812711219785617314065296762148729207202009656646378891948875898166639179719171197627671603529818808169290809257004206427851444848467488349851374580868267635880016189422329344397881754773833085742921487062109235739598166448711532688690794296237488598595975091782208018272517899205980512663678867105720014834858871293020991143450855018326119441470545325833199793147489005101245359052443044991873277256854290097895668352200728403095657569249448066795637097871029227494555200310717510172393980360775178921070867345456013686026414690528585891256403467221687574150916002750066297846386125944040580841812281038360077190829336459015351184701651232255328824194729309582594884967912094692855528236646026244296774169478657335599603127124106380743537406803487343787276690867165497729668643369659053880830283160600585043924235033208675285680026465763984297101394041706481585019782195909951222859279185849660241470536167650607514101930706598931693621797035105200751001335924668817918335635144598074255660368153960538249887444963364773452221535025957028523997676065959273198341126553529329105736734090787751778340557388807457608399806939612831748341280729035695938230892910850264661911891573049165360325825974030768835933907344185264921679599958194043052307962784414659332342351602727249963573135407848456880701571075089248041732822588854514710640320981252304323220288550735927787175981170366473710114694171021522221701621866600919352693707729251263601999268106421757049097460605701217299163231522767581113291700701713062993841604751946307356689978400856083582661759256660922263448131093154493943979924838727756801432114905872270358604275283519371493701156822133856315887920361302116997941162616624302757682064271562186018206004221702193948960833980054331332442416300971555732692327210934810123092555424413547510948804965562113114390231875878320952357713355216720042566923048387145176582864757668260948890367642765972264016456065954948759830189573759559442612058309920450022059080428634424899455079015192236017313156496371470463792068312572321974562966155084438222636287184438272621244983912358083075858991696615783529212271748147687581836993612601126035801613304232339399328943331847610050163041279964738291629163580390098424299359401328719134770463174832379601974980554748097584250779992034017017135705850851611666783090073054282477356477816752346322816613446504013810903877837153150248045693715125030531941741001417227436741480288864018019673194436878315772940999350061895630599213618704239405612101171563936419263599839254038269500983727283603852935056165557551361414013370757664970535523169538644403440910253233790360745492535779684209932671950042336873346626214046548196953429276757176150605576096621439940573781220411349746349207642237163580055985946210031855606404442793802395323454383362940813301024394156761834032709481362888719836760069816038361259429298453272210960536487348144874666747447575166892932179365695303218027301342270588983929523930240624021650513807470719538141693782470825026628254573814673990787335366276866265654962629570111107213239813426455877510768216178490337856140402308132920968599559127610698027609406287958162022518382595424073350748067661351851524050194575649878415708047304933657878161950134561663732286832263760635548214125879949470313632151063670040216926284233251556366902411948122678874119145897165779158789656592447443396740243246012966828505202823631795943547272402049880743487383272235526888719167141829310961214684251549371888435664374118428616901768063935179081125606747609287745804210753297223140259871019454930241856419294151562258342189036260500726552285379832813086788197567995335986638432299891197579854810881830776885841543514341105341634554588802157895660660679063060434706158291754123065819687988992879387123964364931901075543809635812441491367119560768025851498853664922984681400962991997978476870579882333968673066501525264550971289498386465586347405939485737340160072400570494811852376919793217427351855883671570145300088941671491816122387290122596987175965882172593947209696079685347316341003733414218733760279223627954296447237367823471655558800905646521239220311942562512907320810338328846247400518016910552450325565547406281181922549280866955523790153784453568797966539658830277627065058632113042619818774333000800033903398679660188258567832811494557354482895649694665301822508281512463693858233071943158632587397514928555024858402781975981437639915287224871987021427876855695971241986332648706354151714787791387073902184004027963310681452826540205889354749835790540319399066723723093135410507596870341098711702631500071510784332094263122051503696927696409579234902053579502577979154782397709812325494544078063623723692861801301394182583580746639758251245823399532175077948710895231355616112225555381379366207234861154147171014934940751565842424146778701900413284029002942481106882923505324427842765577130385363819668677576300444863499638844046235518764425907537652627656811704040141226728634871869762313997348074630003502524767501056561585877447597219142672509129614089484546621368781351063225179130283404404105119292364911399910689913144661299786880094359174404914640804152350326041318216714986145721636048337429785741650916572759826381661117492576887144097361858352767187068880744899416648410813293443773297051793355823196383515799868744127330455117605668350705582143142829735754962251417655516598971137068266443195228257503040546068971823736440640663203339931362768906878708812887340186576864040886324964054355862576769479850488013458533894136211977534592611543182787289941871764247780715552654699621847838061834982056021236761672622401590568971687448920920907768787253821369361284632176867089317632953104942313865484861882658376709995321026756310603841704345467574650441093989852376547099813808248398576971843874102783899290641980764496697823820680533256063082393774758802432638297185657703817783431676719800059497678971142011487571754971082848407234245781554457566787742354578856651772671388782648357895606326396138491301387540220486785932630541441308191932793345683436444866693711613436082489788145780694558086394870562296178881378722845967593514325603653917884793909578997067276575419069223893997196366000578166798339291967712906163815879924157568230697306689817793735233459410073329915843338887059711627764892124876709665902495897984354375066198673011330244953033618483153831638546182937270243274592719013551805335992109789398520857829812990480651246732099706582766747909312808084044655540756783154023381684125109224397466564114305695554882403045835325402671583610920177901817471546005046879368952071136607536550277591902769090415542667092957952865782077951720896969524491631086343197431035858038164077506027077032291800033438124703789038915523720921041196331862064098575658824740047268369595315025360937889512487754593219651829105126332566847315228678901266590190298915021015709169300513478782179355773231901602411196081489548732189069479912772392030493700891432002850557747285968820638069336787287720321985908141756550175244311419297498486804605495661624031243097262236105629675810809973896173862872334114714346255407881244210686215556261799553153101830892804119513154540438581131427777946233342006102424446521292096639829297914301279666233745211469750251694256771979699938395100738248334639313032519027128759669068980487560926242654095840575287780584616340058564388944251880800001743500127316506848870083594757597589200591854143417668603258271384020081099603688415700548231805080096474306724992740059770207668503509296352336007509544169812861329141007996492161508630379736488349109669940942067995026861895503259633942011819452758448841513896279496142773565653201127939236164174790389906707774792153755704915911473686975490035362410957730870263606044483524076731721165421519853348370786325848870191577666278356394454260903999833247453020649725892787151261595149828117737960623150996143949307540152321358486049127744939265924774734058276882670893604595961881154613752107535170311910657980177901839425571492582183818837863139348697171688391043016739825575452329294483824043743999723295414139086977739957054734428837363109041171591612457502958785651561482435312653371403765169544556565827794865834707967784311031964223597003525138891935940717492181566637179087293111299379110352022653970146590376827489272336561498343378201179986254826990538873853295174290886057260917047315785557887624506853105206431579632083777917006540082141178215169585215893270356327717302521291023605138849675513271371667353503367880878655520529890426673691334596096214723436553094323672263743653755504714034807684722191267569108442512679721569165893161997814913530464545036688579247762476242363051371952697760927882985173388838844876995367500477485408946727213732295472289488871219710427017720443804855914322216551945037679894392909839646639137052675179146983712462340749028717804849807560718595107856343734995766067051160298878972958069188660255556366817349147506899130782593953717128020716497418822116921486082478344580507769096769383907479681114636644678462388774235152663064323701281523628740360140265283575032645384466172740061559669603726354846804950021667118340909840689673481518728327854756559967319524606889572285545745671211777813564174757529243587585436962130421168922017684590849508317064810152133276447751198205770450868344747606720669707742808169168278701464826250154752590981174204045577357599578765312955393165287328283070853185386911775061799815704801480756802758111151985044088168665243703541980256965745276850391771232560491694919786955882172317417420044653571655917066484996740975990470715111970590125015586509147300025418135218282500657102194552260778917606006384155449953848199417911552250264118622006198061951079799992961655855814673338850260077965062597153668265118893692430425015969785260230455197444574445069963813668376345072327519257870633358106967132991991212002779544546563836681372233470611831979177336111223206052149264416476944699262617371110493367622578010333068254120549671722716920319784752349626141923870436618056401413703876587397049191310294148428179652402459290728177917800143766299226544547700013111160527613558483415697976842189249158874174042869349745115444185803518133560809181427444697187427840725777136844545522967285392719332210207057674441464021138926323159677006832989057438769134895586850372510118574318948424250040655131101459709697821578362220352616757861555064728971374810647552908957123044215018630562715749511668394008369592264503066265920053747915651682977130029053559421142399888771347855970663736235831534650075642890101634186236416775408792341436879424666988827613433257173795494492910434454499059945462094007977059707359143758074517411871154370989798195259000461107570390380211782673630655262874071393721367770135846343513606998165560684775373141953857872545206895058550193047172538946995553667520830539293977025785326642743284264744256487506362268836449202264100323887148996943316389118320504602048314424573801776322826135339804910232253710345011476730395365484490163832588867744806123437430659409866354475419488203669636295210591198765212781958858091548080035754649595936446018386111426112493863376579321813353956503709934790130559896086518975119797913248956355675191779740484551555614627165854202073338105827402484889953561386378013427232093693774204852418762191436194870853262746891034258959379032191125633292470088042922355034720175227620573869069823694915582741739814876164622115731789391879046909038677676544220861217953568021867128170823624336426971924581125771761921996467336488263521988647268232088721118987835342911953475073353738948062761268000740788935670352278548968820754163480432234955614078821562023425054793430781940472253961174713085170706651999212391200855446297867999757595183525871080471270808543640510272829617186820962343527814576443101397342109350105686706679803662966326423763460988575018204120708839318394465703133419884618193761306658420247156351606421512634869346912909090434643533220466263164523531385904132599360127221527365947338863893978527393010401463436861141731312429542761478826359826958862823833409273218592308888201212104527536670366279771792701964387237397359218955662596868175500491158360009841889718426977122921208998638667186047219198223263038487981189591898737233030195396911039478726034546128958659826225389609223185670854621883423952963820486349834994242914404393567689368195630209424393185995206322940367122538012166375479056883749319549723115377088735316860034727597503172017022292564886965661526715962167382650880041655580806682044991937239205510821547051893058153704478481848380335724025182156288477743612532371318950299202977653322649775478116892749062756425851030266423171947634341390143581919222130850698255747273620502604366284550879785093504211991268303421893832451461351858118077532304617969122445453382955901374608761044769654024301534254708660960246998812499418494040113453742368869408419451938219145767461054769219566667578584222162114539172213532219602290215013918274823062716402235191235599238297159030574071756009759584430317567464103535118907134050887332305790937813021824791479258046469681595630191824505784338094963761207981906708264853185461302246877168261842047486706567320727988998491733980816340349893821479199723655956495795228516991273619454514048874525772745405028520759857046562124934292606756432082949041940641964406524225687275472499892831050057251858387912780590972126577770854671883062810449707429498513117795525643152674799275887721462025983948311813711825423543397716646503194408208057657146251229299338858744042433731345082430361323942830409033341885017880010823690038791531244219693194336640517866908956934325711058956729039651464799485002445273159386054585887408612910224216094453806578809753749869992931170016714823905661381556757319849238053740235814942631942300755881932956783244206970378204325505242979882447779710921966669175926885469117720715860044087403277851990570499597182650625185212336810165396581876325864039696881306617542844632075796737944577072354332614017529556491338651286304969643560860717498018577422747878306052539956118160914976260755885607316302550645186810832694746671269328426317294059851662974794869605042870016464711887875028876987595590655841043563715132218167453098135432903062584767141938773942212300236009986447121166198924118008829799492872681699864349627881318994807658904124327096309880752902383961342459088049811627046137658125174867377294423022898591624656621031529169814271642437305301911320597293514611235695287239368341407480103276042029622845197634657947190857614645887501933951327765997721405448554585377020809775461990896679891390757988711098745685540807036604089600385965557230813167422453566030631387712409173147886880692823521451975823486579938861889611121325691911953959014681935102403891072008017841601131367034547647052905906156625355825226907903490682381519856841839818527112319058513199743497562363327177104191458727105388352429982542754575627634815446931531139097367608214528999894432728970742464394537150491308126536763612717569823669097427462770506398459406801807841068333704471366896557819256176851886832818855276857956365212598952504262548553912694717020166658400379435784464318501551634960951357471504479768602895809089697833473208477385046312940501126232112880589637386018259629563124489845800954646589360254703028950007677671970736865391503694483109723035040728058257768095977616937455609205707471610525701528518024841329332569524465551036150417304543933309193080793301672469066915526689042578272567300743447625027161086317017975949610060875335071568948617127031346294042280158064561130210829381075878089013762128672787639858314998821271870836168784646860530146252198225456627324609772979112359700871457928202424769472411507350519653685118211400191710278147657086666055172052190738713542499254208992975285545054523358497561821196050291674016579820991508654740522905601441947261502397005464681389010111738150787464328868465080058771891688585041171680652382026876746926716252985665450882373137722289824147335640762576351186379426667994260494556193978451139060265290304212982045638910239814055162772280783931641080941593702000151403225801032056868588366540565216172835329704870128318301660858000664334852558134604422414215526262775666399335317634994860809969748954678523272933160463667486533869158502845795095653826835235840386881993991679450590441265905075339151806995778379584908962262713887970365752785595572784663855319519985473175523972187065980197609947609985670200023716640399533669289466263494195538289357512370708709032025688993073932267946271545950760654513215548352057615875868033053329034951051187275593785561229637462740094509795041996780288716601671938014294264018412929352114017039278562894473034811673810355184556711105472774085235187612593161389771034937085988739859668679634300426516654758786792993915760573147923345141248734101385210518759890178176506950111098403568105569804318825554253473845165744935662743931450275604664331050347622869187195038945325182321800181274399767894155284588604482717916220900525742468527652841225053837370925477924036807684405455130928389621444197427352596513540413670127996569006998212095648829318077468687823356864043056468045068336850542332378018467003690514764959620305710178556148182646245123917402324657511200597750329989921080061285996562036512323452184281886270050972834509502543693317037471472992335360454369074218739506590301514282492493144190235370995774280433179244104704506405239094369973864237110068538925243145716470288695754790649238906747499575512858179344780113551306193157431059356578971762208543158780055282641039781240941910190562310499425452536734800599293146048725604885587624689150894804444458298629846034633023066412149413273521906041497914158767896891711207962702053132859370988683099334331612038696992287543377311451386490614613599914592772144206543827986433840616660977513334278608848500294187035793618814332248188421960176030868456128102147323413146067723308124171298745506445390380697325840972755391957466524059273756988426022297563639121590919063466586897517894523751502950619241893064762332812196228193708418938565125017571561982656284208287742409232391314707864191263769391499993947379864487761271591685363190894621080736163010854800311220297144374218808482769404331965092136847706423920708325057640816250161219426903606935644387152711687361117897113160627860343588883982121812888721323305417972401818663091759650867660125387936478434920948357092289662736179753586394512474831920685892672555776648578795864022795891871149409649032393103702766422417441517944558078165774218012353722590243039246262031067503305007984126129162330623082794262036439400230333434747332607006219964975723964391384098800837522329320819415576859760527205357815880724044460495441024549791579284259711109829534443586052627588799087591063069265287953550272418225540940638818046692560237963059517073961568844439204597203305301541126057104152408905115454501480875134271281491510284515231871474328964902304841402610935004084971337640378590782548487098865557764751551369840750102460810134369292192856630814619982397034952051454379525251199013335394527786334789857893988072849910882851810984499968982747575427205217794498309747435521450490000538232675175846573365436336090057265757968439512896784879957129730998538716446522241647716301458662880714849599166173870291700021381614976878869394477189337231528009842186366477537502011686920891529700855129681256399882889472753772699344522106413467978798368851390778063733586170645890065727645317778080930416939099476967468701966930243744681248211115133455009548396267430554696402063908540148320581833336262969403032157485051504085555742322971888399892646367508338900510647297392714565248775167059274721898939327050090909297284524431244860622499346228451536187936038603159533864952357109854116916128424366379299800871050766065207891054524775705271970504239128846991748277260876813620385310281716211546411912100501407233271213671109369403273327028453139498183828903023160325489014959445437618700832517867717657777049524066365501554543500196301535627971877468575633219635506051479577677786505527947879303300596496574384981747849854879615014038635963637259162160095758501663364050903938039367123317214326737789063064459864618480110597078884649795289814049295050765190249630467746223208746790392400850089712819703748619105940307325930951476294299399650886061605252927890014787501751097622657907057960447159325596583183160508779470841320125376469584352177504000047147551825389619531108274677760704402918265149519072356735222219608203258075431282022485122837026686335756530597116749691254429652757061141311420802387067931627471618723901220849798743709544557743135243724352913940271934965099986908382414974432410080452174935616487517077365080813526822363798499351464280277229186151368304153315155949733467543072760353661937729054277174922277804171108098200809809063368790743763777924232219900933376631734689658162613435613773162483862859393294038194068349888826919191833838375800970598387408166757987367681014109527871218688297538976234029647791000931007142869512337126030511914357063576388341561136501253363996035851693659740602327439199002252395214240470874846784121154529102908343887141824354862774940992101301045753486510584566371681457025839146494837722527963973446660128126378287801819994560020897893009614101290565905968908464666811404648445894976047225915708784968611639250429718169510113513860031518064385600937616089919262992200195140194063363100683496701104604750588135444201434872782395761741014448875075099538906391485298430852651939254149248024751705302551100586546566739074340831204618495908601683642026916557598983219676067167532559151244341973199834689440575151071994086998771985133564344373358402007994313159236679995209422067150434618480186656777420063078464301770779054555036427935330830810610118060160878669962967962974502142717489430584573128992235569548937262790181622462045268254177907212565640578542821078897138395690302275072195966621090885890204120997447184572742991421236691959026965758958185574684374141650061606073385430813239408097834355650475151691347004739485138195076331759247035508551779974337675953217489354184267751388086044279927664539117190333550982502165442984552858508448280499388126787892107467730105557930201048786675690441509370646147665745806052182053502244133000766226439478321019690705436508165399851534096533398023156105930498714418590963570061022841015274022319919103460835215280890265201064140324011545866699682869017558559481873100616631902655135909534262145504220176973151415600751889896068022446028805265663767051203270045133245305848594457198478940299757038731730356118326577156190876385475470028784368382128191962812979728821220318824269930755019438407720694032294352737710461966179687745090412442023404993863603913264459408686484079725918418573408964231020261863044236556642265900620196333693902078150463418955223679188368685987806615223676140122615463310123137181854457978136471363506790087110827610122672911484301376288521958782125174850173519246079732849694475454804541322530616100549565433500218900499289209068193369159964719589670586373749721293693896570426903175162379171535359179138344704847006127511504013223983196056888973705967213329540178113994503094827675992280689397960368390178515283267069855124600034869800798575868711705586882226507292439947017748577555117554664776082622491934231253203499441925623720636605456169588185401445241075695778631856583851880725372242931608455206119755095334295683610866740663592839160194769162373325529922687709900059189616287348290751994383059644896192024885414396760490521957837667677232522861433395704328540640353657898947713541198847410181787355211008111119468232711533502290171892963721144499256396370528643397998502164057930918499581931118408628630920062099851949915013872402191441055868321752400203493101759584481130351214625386001693575390835764373279479112472354641631361803947575529825050480351677408962671954867039899231823053592045327050433222616593013604013335096689549355761401840681700892852964546570039697387516114523703252586309239130172611488385988958487530902055717840867748597033043104315149365355444341977170851809837728325725618213878044737224743049166836644694395033786993152893962212200188860640259472127724308066522965648717539911787053064768126881435688014731515252580662741271225190328985513060972735373990279975794510388979612961935133499163802045847476709346909451622787150549570171666571214517983948567857556287034228086215495408556465859976578981052372772295556478730236219878453377859056449540809432445257785970043525710254490841989923391602694721847176531921981823790383465885740341523230470733097494050500922674671661747607699129515278229927144483122448911670973463367395405964484823418731529854613184415867434232062759635917786847173169753287344704611456553631407307236000395567673612701832436130034766173489809175403875296258009282608903281940729048222520613471911444757827081299655354488255644561916742191672939882016641493226033700244027746282722038714275002312529471606007265697194601527106948343979405466459365140101034439253705517342279476673561946691479660334567709260335284077443356980367387195661548446935337610822148116364874193638290608090587136566989358413988474165901529906269091731654925670696536128786944764811680600395781369070585320612031846322999452530580624526904494172209872919716886925541885279269181417440778915833747138993580105800241808869059748541980562041790340886353041314984160417910719264239573070491861369205972686527651374406643597802863940699858177847868722506534884627186235188354426508541365116254101228349706599880449362216178726409275999184186741836790450009740347716213345947480206412312868027007091193887210961936328787707307532270464488617519644209980313251735834280074700493856239496649180305469225897224441115289062235688581984994494775918433766496221920271424556065924907387714734136414747954379645832992572444823529958230352947378610991374260313584615966622468947328888869041298196075475007174672815029406600705545734515112243337197703562732619144048563605524366113586826019795678496385928028915780430986487830574255868978887031226044259967734922730291793074066050848384133986447010270061900597256131164143528767856014196229507078159131067858265422463115670320724791176066079479905058982865773810669654930639136311012871093019937427253073068594244470847312748732980957556671749576034285412311705702248050265700261312537500885966760386946035262197898251315567414517757681079305924709874157378639971495951525239082405749879047430622502309572674423188349466137640261562084218338942918547196167803625135422885512805324548200052782552637234082136950715959921742782938054391977406709787680977879969314583337095697204569574970121911645175251774145824947186333356793014376078484400744834691544104455561441440489262431632642138964819401319203129769655430743169579412479860701220520122223210567366294303306973676986604342884171485340919707106201184259632617913895229469260047229622009041453274414067471482062096339725207856522867525478682730022351713696188820281752037346953918978104884058748368852999249046804032361915491434006190192515850142154420396788581501982156024638904581673642916606673863512177378535332895416282013920760383953647657034837220532634837959546302156110780454911469966484062271057397062581298117212628423258981350728385374389924654946601232203007838806689951786752574062089925867107119241745495422163459744082255121023463004663143573939831192499287232589554022804620512145092402920554948285355743967214634788379006696191431961384437669523234543814917992023030941735315602287820384257127152981934400425821391017841641822161895003910872079463851242481825954774527568902217564679019823867608848909568866386627598271681436266102709812580216295550846309948856922969113826436473221951778279415762884566945405768775539865045380360707482955984437293598032955343558488567369936150239805854849751022957741574185550946095083603187408657942179650396005618216119598393904379701284694790133209316118544947204843579336786785528047453455556791072027815871695734083512864126298159130419129728281546401750429564872192227752248562806737014707444829268008963032594991457477128872333183011338105718620167066107783031261856902934678416390809264188688198295010700350466208318935135193615431184737314245177881233343275182417250030459324979092796137327936432087846575770262459201521837057862399381225008229826859816422253788480224534168173760594678771884142038205177474092116082111867841839950652948305123185594702498987553270270339817233129607968200344479919012507670694153424483182134661677331656568241292302383047352344789628466153974470458683787727641242644617031241407647000974512274153394779444173793614835941658749309355459918338183799240990276182077534453184514657186757488470743361971127754468047395362558868576221875100935950014855644418552995466747020365206995016499522359010418966947333250842361170216383151298367604230111122203760412466368793862835126603863170135372171549972963121960071414037371427372778799409523565158313014634925896955077998338045416107811580427099239858929749641926292111306534179304694818988752886194787703874572349793854981455876424074783664838854424263274315806059294972015942886113245864037067828604390543779289681545273086532363675865458496384015590818867006497766786135996890740215609611965384030111626152977808312899441276523480205452192504894671140675491777944466049442923391113792312407683193491006669089304899329338234055412119745556537990704361876483794374995558880405403451471932164046113176426376322190040992549437819528422888929405172093090926971569201145192140107190025608725401140965983533374186943253052051576293834758783784568557680390630105416917143632813581240245570691494664823471410170513444122409677770467774944603405901101287457268886203733023218727334686566425145347036564743235880527412953738114673829689410341917211035272927703948657539977306680876297425898175188144570430441403198269466599359665229068354999160200508493076236745288023136202249559626022914267793377400715297185308669208276522100282582750123713429048313020679914628575688252452092725933621172792086487603902052678605394163662817200139295082250298409010429469202560293994444570873645551648475093361038474568735988018111079904308457243825591128056485016219688778567917079975781576403082541596474392619813784548098897966618168368646853440467725684759911683161671719744836433164589994227990081817460849107410344842133010148676451189766817669122806156271345383606154754148247533619692752257711326898481901635433212689477016409910396383260500513228316669535723641851471383101545481808225504004027930732366318118831208035732193252787343587522390267933554980827731823382099468160265910405761971236847154352675908064894813043020741424581253533396016728323616131721208817232831268844045785352223715030800606976673871863618739466304586320064401930728214126434808081745444086990926499254742169487717487138955104040991496275607927558844541357711440569979214127330395700022392277522428430976632980708421156517953297223216126286001617422649980219457083180522288327122625707844475541510939246661101742456831978929095898176448626038925784736153015283188813535887705196062933351141487839402843727510757536468179083497086737205376959151068594244357446522269460735802506024976714714592538765431816529346097279823588887334299067587490793777638543040181098445251828119844074151770809593751166352998365921481936864523115317260615847725431910408718183040081490765864186305015901685414818995830189939210726418346948362446779203191455332045562396284262343106394072807652791345627804963988972838248699677112194032958359449937210175671419215644187075610901085701062545241993843081367829445511336449707260700182838349674026904932006993315295170604569772384607239446221941930264728793126779417254845882449652306902493605131480821659860335963211429734286831663679694584448963292931243804271171778995533587489715356534952476137097032055414192009863860305749574088835349140022076618746137033624932280585263659955361402337681389732703513731645829895427747043790792089261955741496655438673583467712326897020607639048712849292789125938289304125620637968790630155138678245957256489930335343771533045937786418885453866270734217808263374394783334134385299859039848928961693545038572479161004122728113114290506498512861398006023529901539837524208787008097598504598103378769319677842560176542791171860767063448946279735394231094143243181029621269422671407168365193142993609268296715107751889899549849861722450386821321875353965796762168854412174499520176244034454006647253523625705150281173662700548205054268594957825809920054176175712350024336597746084942720641594122694680282022120916493830911631486148491973344109422912060032470129679530927240750466279141815965778458614535412605377761048153337977961728467113297814898538973388275279914042499822853854180675996146416957564859153683923740668414772530845166255464272288143358102543206084248884040149396656122718095519210267880196951349004757567358284259013391364203401799931179786183098344588868042176705060223655013968002209421929096687664878537362002528223202160930481186191733973963226230604151189754230939703916488116155841067435148814528216333841935880677724670653713924841526808788284228159761158640187088373010482919012660835763828972089207217163877036835450725638778394534017313113256579647275141076112615774461857950420304261130926803581647584261162640675111985872582355584712289897576055514087833034418873009107898614910389162478845874108942000802431569154869645534564936559474745214899997493448770199067764930734467481719763685398065881179670085704657078046483976078174015322987085375207714338606461979333003085666386039706597724988262338603717112861315163958686675003394136975074340092596485007439330853538679159711368881933272699673985843332264681144507303528094433388108035102885967528238754976818373782783115473645391911560206679885670858916812034355640281973343458799545685008565397086745331368757513223478134421587411426145015639638679736179894854683118905011646645660554081124748576801364947007773479728159567322199864082297383206242176029865229165298692991430485844381213716679312444615326316126564798392422325503449902554780322400891782009831553678168952148049108773876892276443790898560111947452337261652086855693173122142089432970518495713423921606110251836380864496252798200778955359004820313124063748790142463746246918207428539187799631828557035595824288622908659301917756823548785859250205612041629708831388512313449085900417433809089628360593607135685201552206479550910614130466482338059439630079551998863112719013510281966075090208291194770535091303141430700278965358841486047541688453416454919753748125107323490531730693458722868899531342977579168148570368063476699570516770673913880136152474390202143478203102610514571463976450110642125175530237661878930033042484025739648786981949701640165421103770971506552941772133739836272907055368340353020214214181113134510585927306501677606702212129783685544186834667545503040626362915294252102502453565925550399864399228457612285054420139086370115471859546136839814993184484834968993057784712761506505382876211588460371600854680864160414125199431887326560671983200085519884779570140579862473264639380468072928296670663907802064408938054280668637546311535857889924913293435703994367071382682598415220207865387889151568025695991079204606265661045961844589602380561290297054188360952586114491827991193141801602745036277616814084821573610203169864602610359957512413742005374661364687423212353872945487738651744912903329413209570688403498659654077471595662615948200729152372402197977017968985668326622521220248517926287808900551629501889013510870367500380913989631191325360255208974895188394950043222461885843240617293219314588600613244781274085703923956561813501034457339180781383040910287569140677986021562509118067924304573322511655415111173843683534337067781991757899663155277041832264488968956158041007196296721533042089002607888638194797598960784833791325441348809789254303529853597584770978286973678176647247548094982838005780059836827819794823466572483782467587442341440105342382020347121159974855482265790504537876930105052129354136421876926552208189592163242373478138789385431703293539382345053376044055297073448473289330202010494900492251435097800712190193243712152602558766925511948096772722771709864108667444398525246856247900654984467123188656764775231729421557612028538182797286518760040044847349112765770306690328686034732314608577197773983327081345163634675438537365376081393858237309429032889020727544191988867783051147092612262013449700643239536522226375908237862734159375702750618592218722640303269489183617802448472508781221000216559536693281277449739345170342700192178639634335351312789221852883356031459498763368648755362156446569836233328470104590499066634532942024276999877675324530268808321169889898341725992713778150718618706645813194247844783333060307771078888105360826840400214819009113723253809287313464290248097344488576675320397882635610757345344390258642227820148239876995570417564911483163758937676023688829306600679052867290464777038102387423593995487909302598071032905962488299604278557116082777736999006940988924892256303122477075834177098878528242293863254492032798672140154320504905841937433131416788123653389160704198484200492067426752662050000434936794673209390750798365571487340280303256629232324095573064179533154376513479744834971710836574771880226996392832698084161183423658073611217807347660270997591508990904490235834244224393202637131007301357022468582902788356222333453106448587610552485764162379131487013593043793114997690744786808595384308135419666902758941034916875587700540856076779415168551010844052551663084636960578473317604472622023952796219408772746916401201048326006520300350050384125301072630885304358466488649569176003001671926594164768605410293539738476933087851766743883942844690338297371696978862897780033466711449086585774418420983205211045258472750542948963355275899318295731039220880204361799296742428299149228394008297406971840805914930435681515940014860753767217801624998336673210157241375048337375428376758209450155363538663926886292182065941972308132290036512577130549095065559300066428789196307784282140107007768886855514056068354270555247176685708380012518724178981593870157657854070726499818586563696121999484661101372043683584477965287357984777691681587653083154012701711527469787919534239850402034865315891139866466700586475869929379274893605082707191801431096240030537179285728679658967711665040429734564437225769711301048262289667603775271154584789111689152995589249873865456726007199209584416220897504401160932155113561673059259187234105835375568516899461685414453695897269527544384449850696241666285038942736618028329741459911148823861869997632606764948994982355900717044200979565200238400186108144653053574642659188118644469403830197080973029582214481195045131516605632226761550427959350639939004990862089876530357972727005415976866203702700304802085524163309609889844901083573353416595253990123433722812968809732172180084333524894074481464181568384410105101143562533510143382170554678783839714324157902998842083660610748153342811525714682904333653686145944543669882634988935420147952657867944745457082766758572416918151885507981487908175211955719843912026574221120354218603827086298146131652100518943460458542856308729327510857272219531132123491632911346020759953628529050874996910447653108358183654502083006291690528590035752381580168037886489532629274708775163916029472333441858102955314957592194780686013286323357358613274226563693026241711900821444244554149195737330816580056552246174238362653629727243530247413934550158502383367639168288518555573742818830703897475094311065693262426157561798153253338681889539482696098461841642262778372199157149718259616217314326188925936409989875229322424846625058985824413902352745993528833666402916738638421995029169721134992305504572896736873781044980236484488316001650708723311386452565587384624849793621199019149239789902471422908439059621742662375986345313975472971556222523393044420247070755191975824502677300023808771300196860978559894887937700096763267527711193051952652905514925056349989346326082148904862726608855530063556155292137001239485817379734001985064676914112162085289321931053643320899440071354801011647754564365578784887276997526329184806537757266464085413444830384681653041966276185352832280881098396351823710908191516383818105424428702427497676447766536652714598680711060110311955366849585639380025100676013723961891419882403322885648161565953863559428224502889810756994837597068258067945454569293016134282778735828744208954028313033636889884442294651237067280448400869232795909386351039416538315319824135021938560615966742898336988877052659561002215478763157348518644529004287821125570762218526428902950690731315335867886304238359824354448440334258251592088556392517282554310719350239490811119891743233645289435940483140026197160296193922630365253106778320738517977528016130873994408074410498633267168811191896902271873147508886338209293038595274337086913763349069588045258275909954322764393086035412576575353092356509711253981128819189153181407282410040007752697695612616434899000026235570181981152601684556403851887253883016346364665416440357269118691986050855037463771550080209480944829699391298607135286184001410162622742383243859359933815546894203389808498233649060315082701989635452797609757655910465168501896274628364404247191120502516368553884875145877432616693591133966714510587141553987332312021367345867088861443854094954793864103518151169621252651241757490735661706842697754225382648385050039434682273026949370936582772602526859498151651292573965553265571709562014658091526674194046883445233621229971681413866624263957797499706396986493993585437394280216594509587756681396110500581111078495977986897154612070926836378428755704927085298670997143419430075540795272150426601884431007796191139303615530079169430647185520817913607171544999695646787866997033229394438247980471442684155431178504928554949639041594982492669420406074242283098957462324321264531159492530175175228761502734104392067041853812179872529774847936869217222466827272810752573401535579662230565121472767820720958139588555129814445173097084838625557916111964507135319451783443631023974001453194466944585662248647478200029334783311480735173867368418829994306493310466590888127297310591370075131543741448947729852970113558972572453500623528754757945952796222762409874547463981985865393756015041977161752203219705806773123900936087035649645608804814149249184815546693376046994845810321039683396738402623412993695810523695167883166577444554539705918875952858422815181413770802435525969009982456272502637607710381152663150930466145970213634782903732989242725753685110405271996994861720160339225676192193211059410940371481594989633618839094783893132407196159592865681934344395333116515937617475876951256050107149402378823634293130283195015389445721250753371865136239506625354725249454162192935504142158768810853433160663846350536915190892568112534946184537207981342767685564110014976588484626956472945759202148707289818550827747453084902354233844244137285836666643173787481654445720146688086033211859642635403000480638518334759907587352663929423929161842341093977334943303778332493499137654121763718895996198851932676823862178534932915267144531908238992147324014779697376588348335053787413721762209698885909324517694313812354517122570252565779431478542500559606570526610245990124530611307601661927801202165214411949625694815755628174703470276001516576878884809889274342506271281074840875740596050108888449528222189653989789381360467713267985815064346498235418265180797081165612212771628488361839663583216435819491868115825020832464330378293449452378273942268926475468782491320459515650686671971722744388544376537856851143275402496085299454766921333723609138616884864051802568963834881158843301400306510460745889052737671215983360983108251781049972026190305621721799740969348293713838132104932188092956871747468988980205563683756132708288710626277363739457163305777095891753049692928231373510421384847231143473085322863307329511679716860254981043813734042794757837179382769017111725160829650657583111149091480185152939568279308052219972479438879109925042595173190223533288262589121387696336554775126735225323690000654444368114823187524719415869023161440095184672376589288902976435655172754875733047241216573051510057762872007706489013632554991344964534361303096582708332632950034320975743699926846251638652668125421207733369916497722619211915246219820888315336328138431561905243402490100168669113154529369634791987991659879102249083487140231590900080503034885329270015455535104205032233658765589506425307279998518171093127347269669546573708441243251253811416911749522912690275935993416261313527709145728303732995156261017655914463452619441041667709654247546545511610090302774136789942633986266191151782578677829287859050785874632472471691695630400993324609729438278272510290798764837958823247463804641948841994382270815191765783055370373731982011405719841680679786918074337202480647366916237055594679077219505763104787827849935015702441562411642159799451599036423451925052256078062176075215621773347847932711097273826170054744846745966795854332427998556389404924036075701919764308259635864341128094554459995238568032359151016132408792818050167627960434054815114674187619523488881953393377152327415217828982230809606573536197704634124088785724142975621172901603985197215853914134750324566858891921220069157154860283518386073039086577546432145929164828357598338001146484396922525495150280399978189492696436313335662977024761038633886064408448788734479929258977633445649373645492513608763118294784007527084822458955925350958209709535119056897324133169552146705445982278927218003727824750429973112761928992238527127816259197744971310476304738402344439224081431766299433881832554874793446071516428923840999576479478018463776358385349730510277241241338847818770046794218920165265512933483607479335535769052336016185446697566399210542157053668616264717922388171344045694318999694415946740967964289010766372409953237722293094369579631294170882722270816206789300543443841131567497372062746291212897044866027793294790574208261226993629495957315991958206747607556196582431317389885493544486446936886132554000028668869012949026563167936410893303833365027648693032340104691618879491743423835880551780221502833003127723820968709816675103916518161506935171459239253391110710006149867486471964167847921130875801808289445982864222822465587984974013403317482907710344260042650825574558993200811826244134943618644074203828977961521482832006811843023245419935171759278042121681819640723923758055515081054112437663853199094687828559891072336034798017915939783011565064368764016789282366408107768358710205839766867955299473099026210203520970976089208172918128941974244506012289967259211078127826647436009613151240904069761142060905711630669886375867932877278892536854351423457717514883175771815272774809677776679059349174242312569110175587517200187480697737327085463087070886512889599313344113586615033874367933355781871869856420081462809803958992174106429372525477508572856853436160902592013008747556941104055468045520498685198401333252555331233162574884643864391625147551885982836554325018027557814423262105386592511628488664563796230077007375863157398370251031791255430403980686451872798214966503128086776421394872111448623705823320816176808594995260946131995176062567596839928349397377921116911540443374459455151378055817519702480103182464960098245262417264977545575705654158845176313191202988701185383555221025237725977750799843643841044598385392739346926584942854519316896098574548067409662268818555277960540420528939317035553546624024382430862670746362151245960636509203483470900344162537452248961198772156754990633743074244965775297218608613567762039109380657600115746393485403443072432500326239531262979536144188042499401125486270864130259145402826877780159885074042825771042388862974074237532555166885638422907633032736306862756855881351912478165942344143604767183166152048743667174218425110012683382688311416127298670887062220218116643928352551276139819250676211846205269827814632292021506660681098665207811208965966034216619000730260115437272976147696978866605812213083324393042432457785145133933510803102950469307235294565194315755813887282321372260795281147594744726101495929963700990102056177272177647218801855848716917166368524779435338698114332007614720383854676467002588942503200823507826717565152930456801852104796153331427723770786656208491180076587994176611334351213123826310341369091698371658248541662493615461163373735926964613184147361170682369115989381256973964467363057673731990863408839384981344516448939981226283551281238439383149444033463354605514019469654600093980956586683415319597984990080339844925972955949244547450773427441260352615758805807007093523687637781480971406350788320852990948725655304614127182541520353941558708004008608359475597793419671105668690368962129582803626577719586264092495714673686252614638284171186438386667808037824867193730701975790069377609624212091879942135507504339336991393034600220347625203296462049464052466061823834796353113550676949777709446728651592956344212220536727849877569453385114482316522766377874315493790056620260087940122373525045109434548871668779895497241403130896214946833329431830113884663868939095803701399062425677561956087316523612076347929069523312509138214830574236687483164578699639548599580837514571996122202065134048954354376059284343407805673184104112049746649868411035539857255064567442778215044247155236114495696623357745414308910740224439995703714279295972223415696265863238525404740281181761312778766454510201380045751440426109599798075726804861799811426691860725021500400099711987253293226214280665079331112216656999813254375066451458336729461398121357306382751591252419658831245696096411975751971197061202804218030717268603295713028764974585146189855309921234734696295306080242573376604654120563007704330334576610939072426252289271994014120432614616464969607340752861126286981189680739531301828080931596112951724020713373786245951768147571815739651069563047677391500371066631134453241779712958212006189790577256819401701166268792105666897775173967494818629429619840536955119263033354080581801294450596614281027748815174034538915103854075962492010952261582754264214782314561890561781233354032947331640094677404698775226847385250598434966440353190517955478309441249535762336096794767199148534991594209128315957908247202820025778893299203659472641723908699262403828329135129266441906038095422596280609735497674851999429447957075748883243723822647201491556165290115029577052121423174347618128251157418773429095221155320636702846803051587173752201181090722580254620901631932082675347127879073770899068664452141712535384511528202453408490299331361601166797185559393591113713648415429925447293915249332079852822874845007898529504019075129919768359442445182352555844078076324079193496819076638284793275557348370237531660342104709714166970268959779825652875658407745436205228486775585723820794574574304986735384805465746128610424968684237583088194674046264774614663207081982421304281036950775050133877189094249652111462822016422201831731043495225794129976576618933617165579603876248403397130093099681459890651818941912964341304777660804666395600825764928501334046747085761145171509524576185272095825517531333511775957374087066505100611251777180419724341279751606800642497111374671884371745712649467426363729490134317619981429194577808829814126461921166031383547727272577134894276347323992016423392567686118705387240926775758159863632997003322909765311071004903627915924097634056490208954113528176759338925631589880805724054719519705023141351920183432164293718077975143202442261406679948328648560666919676968518994227694149284895256211242399293323008983221811085298260043763210987887150247143236958195512378110488782019291985875234444632635348654601010462991301836090678769461478819006650927263217584347606346098236010960727147536959567643265134142042523281357463781029372533721114101175394611987390596961354414300002263711021757107675531008735361006917171274024988597145028846930773803514621431404757595161997482123128983849462159202762887566813498580807907988159062762432795895324816281715969140468612403930608966768666901746677780748523664727186585322937375498779504106448946703069736664801178346132511983396421587996587574308174196108124461996833774901871536106225302814625035639322974369715177965441119287653960961277188659651153005571641194446946760424593239207780171168260768248313117603801693329411854877049425534396047946186849706732933545594179505966255534906682125893330173020607954755076032094532929453148254435268243205339546714608146492215450130259444854653715625134260255967070912326792921726779917338062197061038099408022462418087250637030197458337029035129181875643918714510755998403233792953222026245075944819177953727183846014822811364037882552290534730000012840943650287596574379567331530794008327196770800352079410400732157004348922176236267509926724098062917599011217932134717728251283063155521827235506263619531697880586543719673931137389174119508184731332641161694705614504105054693225351375907857395887793441726719938118893526423504159096552152376735193611646885707111959242486961012278953271132083687634499474777897097859436702023758045628505474110739811469862216083989633104342782110957486039565304045238482638404771152508208986333939961902950524181709835175030316547098868030670254562978544236240907137323543240999227985670582822354398310323607232908811049799944658276685135571056161763255841297949037406801704204895155068959144727144874993043343508245622022664873200197193965193513943622638258836272531372500061141826020459904447194947551333909783151885737939383762058366978684861984008229612897733963079650992035176902883631197356786779889925408532780626285043858366382341892694748483468527597394464931773831367942166660023427863177326005498875950449904159059568130883334656103152194647543563792399812928155419220780980464781778733737184435783740175820809655966370210935837356476957435867334081589059433411656524234263508297995176183927892459477638934900928578121021954386836098822747561830703802311892928252540934781200840058524979151855654342393500934906335259573782514802104254808916863874223529426943067378179574681470311529516646437751920950888481767580531773916073008659420915983775110162042114203558213070931217561100168110198437019539024450144073738381404635603455496044875319743745904349886236051850943522432594920185919541046484633495404230284458737575166946941467626950940926005216979806487279705937510363827917314876083351702034259418847933754193593921899889537410144108821606697256150621829268983593111114710094726279068723876091365878686572026229946405169427288345819658313076219658287959221784306177223050063082514475153526125944629669676075842556331982705190649780390736114806067243480064538705265270961030879431325108443069501218099367178346955100680037244349703984827348222420644888307525349029755415218561979471719463959922933406156331731659180781235484239200879962613386962383473134887211656492303121048310064560615435296672027608983656500072588684941391521419979720892921590865784089991959821600906142453201607096691196132143530380968027586453635399287847997521379596314852423513869998285140969622258229425019371369401508730347768744932945435861177847617045448685118790233299199035919796143986354733430557135927268797006137270037531113663814411021651258955036004288089953214793046331468531755561183904740994314970624535186456223065388719109124701293600959161371609971009732534125583053774278406286967564120856086091415663976856856096317773985664464240219056994509106364452202207014335447885583993618011526190439702169849565863883816479258620170900823711269603346738166513632351620051316908602160013154874893355723559340695154551866539068969349061858208556995006319365642231292787691064194764329416044259273254868867348057310334533166981025060636821232427718278024670401734090974877236410350064837373040944004079915855903995548912186814962653243199796442873840987812680044582344596110681132568199865125568770273209726913267576447375484412723617791523701235203562320134171041834197754002551004160303194621525395046488710151460991677170915014230554825242427641002018736449584949501058036333878543221101649633831521685070092334307835078238766405694657647402559003748042749058735265098229376809161867814878075019072167695366642125633775152162352592933625004482496470997515771422472742989158063473716492219282676071760597679483171768055502633047637185030295992546717650656448470513308474764225898047006976098063339059035610718039593507316505497299024359349641899175334115503103607094630120534828292136507371623536308749135619997413592685931944643757646208093156698019322070131679857725849761460815463365865638154140552631789839756769616240977301153059660092648980255111298182300198022936280809611339774690977529774401809870340647277090627956925683956232070141818470986588914215420614782168562556626278781004557719641783471598030542578180005887422423587609089036291772249504597771762304162838467300358439914280968246142621038364904325158580104862719158752082385253967505312471390654400340766673752881572213827245488536225504320221123925211527177980812515576065231963923117593998550458472676450533506318096306017574223929050537244927585557862436627785491993659388066416788230047460347323699035239218180354713355257421546773859725193863882264421940879699337765301927868382902097676229020660042098298493834734372486476070206376966482039092725818212589721145663011754756016256068411410501753633867439857505280984993042340568278206798773259477663736805666602571632249013365994467709417875882619116847029752446528950585066762329739412577601357034890350391921147242818452964153353750800191658192247049071083819650084164724614467187929174235508783051545023790751879727883839427749480498092649096580339154661995824838215598960713045384967197505839825626523308402729997770217596600437640844464867596668410560073472638769827294934313059254874410313542021519824858200877412122525922085690620557493765529035080087613461580322563771035948774407213111757643027146264987334989786041230377425244819962474589336974663560426481508620007519593025256950579401541594282994358926215222632036683826919660705473518889668037350044049937230531520775876102895453082074210268469734424260450578502542970682912083607684432654525024627235186390806625989984061061325658377924930746881695707348952569768936611898214526779544331405240262725367962221618735454116353654537389004927722847967826769888937570937699925624282924296726669911302308581712306851636194839831818580631501464301225464959635985479541793735832449769790882823513954119689981219956812375590853501398739882028919216434998366448334842603978021449141982157136903263318651889402033006019505745546261933994189129204143845413890234228615354960678541006743136442982514098023525339305297453995823290183759653330732028445608879366639454906194233759469484378964979592222896310045866913248099666583651868619864090752659443526335030298576067374913600494923735334805948066962734572702241009108510534999267736114026768812607609615822539108740676648581485630018214495608791494085240879385159027476451767245023265771686222765985832223697686848156761895654956077507637253569522867669706955065755861350508074073014427890307022131617632628717967815574600422422666629016887695478241154427663691195908206177057774295930180500374920817782510519446783574049880283154452679684470787889706202433628320094666109493675228072273557605933196180756790965217512424895470609101233244295039463827191673248495524465467235670072403919130297466300359433643574029096215600269771634605069047140872725000808978709273492136646268616401306612208748429976399211755486446391759318344453832432977387306359309622216434025812919890305114146218285694664182735416882883996914417796992388703623016220836138670219422624451115607572827321743274888562260522492719555688610859714658706258241611999645743410732138545585643823933035454027173708766036451996978001920989398397745944744642959632598140905330909744114158446786575737065253375802097970103408909098265167794213604443329169126224142740992138619630474704282411548814950815056379049384788068976104125527443518023167498301339861183352499961342627243290752614534828308793322373224391994978745977991083135685594802946575874743410273741876718078437224043862510105077794859639707065872073534341772973699203424598675193636174148014034956224192845604194186190294922672714796888777448289117643723329637672340533578117642925305264324447994149831670270876513613011345057673266173718869775484098550470819671491499469210865235255280246304715076815344461106404044230291977450139753408295581712989817161523187546966109632448743311416005043605433343894625529229012746426123274337965743350587449735900216529654519252986102692199139030729118594827731867806091225259063816272328768431476969852407756810183420065716349891895258635243325788476897383868439478909254989653187282457746430490009632800712159466499133727068671269127395499175093079284610796551744914586293418073828057811254823221166211185982409173409460536160492803300866276921792221606430988728448377188789328238654889001433124340321667174042265616967511518654712343349640195243714877210224553238256886296181610648078145541921233749916873306013928689293718093536879851928223093245024116932308999724716670964243671935213904349953193934717282971309965871992594988401099948417328671996012787366087123935954526392768662531643553947572218328772249375115819575718491935165406945845368766928229302443292174964624158281684831430210656089029934978096788847283800854206412992235948456346806802003579082208748647907266717506825812344790521515554825106254867145715438550071414191831300671084974504834478147168415123600119218400840293386486999944781140262913002807414508841395970157840697889532801118379434885277468670210852439711963162159897798580264117179837843042732462327694634207344122464811622263018039473619180200227475007654555300654559510306435260600558186814698759768511488643670613206851302077825235519833998932141534133312639428708181451468267013151443813511211769052541626166375607159395042274437373246471945192369279159554084054988885348198683421566475237829453723950695174466334787076817516965254191798996305225103654013245680658380280331269987373075818319430367385065758189952943495919868407752041155622000436209484781105965444667652386971853620099619728316340938189465365545467164817043088673733271116561751771781693280836057283004488751923554287165191175814267985551376595560246353342288428493689757322994109651248468565418753057208998297915400044292071116913933585173303424132602917283865919819368415161001618420096117443169134020338472769251634010932209855751525578106986427429677935951554869799123145728866471519046251755153339691427650093428023736550828503739038825225779722235501852536772973081861547930246088523143019074041174444372762855465056813515004268728233369494201319482604001837213247906727246092982923315548765461303563856621313369572297540898007369438942895224506893749760829286474639765575444230771392364959112302327702390884149170157182904129843841688617981821487437731347352161807761009109729783077702439784934883438056843633753934697294409342987403914625321565950019508759265489475391743450614984298243340785049855797585039798135703398429661592645599355048832894108727977884840772861779552211857812996103802872820193108698870977115525969855348812999891502024213978107836054186241805749638210249223934322142916946835463652615148903107522645431237066457005429350926985351080985895321660671544458368952012961208066594393469965593265778387973780295249584275371225520102004614053086805907303347816730753552032907639272818462580237817520472496471540190597920740446749164675064442454785283434534379292150248065616074427097542504798886535907185538281241491785299720237212912554887025080272925195295863247954179345353355028391445683631774346945720340172907220516453059920939491818841401360523111539341089107749248819630029602362449334846301562783529647442147664650547541528913462915446961801169014889066998687696084087969544404396902589050131031562256274923334869069384032518429939106457642139121282630977209786510682590904290746310422565903217222574633291649773659569988186273549012129794068831959132489071391485703372195747685578555234086525748936343269782271766181687718138424967344710860922440730390021603294831693957387568680680037069393816674708480056167676189485071294846192684668423405847599046655278691494789600539902403032193089193889592841058914771347836291150768519568038036373041819302388409138224526472096540877499273402548947140737548464495033346115267286617051944842775592101038057132211962977686572796897755700732947105851206359306357061444547269272724724539569247619813781483645074315507244566826100491134474760993469837393073657657092725416900562112172624667356754257537659432491241897413858978600036983882125628416381580156271211820566592272265455950571880904252639284109851694995387930809457457687826768231604972174720714821941096418859058387616147496880960553394566717254630841886280550415484321540088101085536762365666086100250087887954720607632143763073084128718661589975976339816017886841582849465422892923919439777560381734174906478829834623339701626264683462377373003256689620745525633142940476235226664024528222994210035314365489993086536015387923532179799333782697467083035297992332531030176998734283469967854721254218134177876320712076019015729388768280921458321253081891093308095874924286666364600829964304686432863662416798170479974426676190375214554977641989903390875569150543175863119540063812753071878928353370407034196849246081358128497749630998804268211378512656088646159067546443593578227863985619592745219105554043909806145698946880375482609337621658207572658651564372490394367989643574484384179071097519748874525748153027581064652801716104421800320727733185322887808271422402434027938841550408399070982272376380434446927838586737932069227666539911890913393409495643382432132664374742896063736376340615300748062104404980413800383258370155979209943349776655244856868675446938229355632449228984037893571377784957780306721096564047471656191338940785091908365202178860928401008969227978858462338518134934530962345232400967786155268803228636888552970554006095632873916485634084633023688921689729631597969146592087338022954960118374436346231473306782751948086426738973661342794977479539028887911187771074035768078381495654250609961753876921316593256233832998124279331863945486753993953350096063543184295909056135438576701522379825064393703676528972184559196175408844730262604884705333940202203384108509434654441448152816085122379200171908211555236073519952157024698053469840034059065016459971411552139705752062420954886941147148961967473477930976473193864488033914705393374477619513155031080859832708291263942224305179482810257972387071817276630155325125962465028463022629429678948980133694323647348115740221235885659464317837664041600228976822162133921788912459764906968250404054684428540601718150096209708825633602772041341656732562395020733968265576892381336065494437769063546465940320334411282648055095696226517069900493382890654421693620884792046060127455148971389747011207465482550089182133132289675634002903070564866064810431077237711109310518042287420961783832125629823968522007842708570923440096940603100948461015610187635714082016893247500508289757373051000697966485973069168637816369085074359172127585676249543669942549043068944691714090904884081200242758447457608183946248684461506695542181955841908514301901855153223311360408827852605019967447382047344722457922285466128774001383992846172280357311426008057941172562846117199682403841779336245376013337352524206766417776429896379160559707732499366734730503334361866224632151830183112520670791989722880393892625363321741723148543169618048947392176849468273705002199481199999815359539732800561815318962166819701244997903770828846889090222928953898178808102571617281654989542349719721696377200829051478985205935581481219592073129851128702271364622090062857084064862412767009199856422466621859135006526590320773143109545982083068966931091721437536495274988376103257681567459589113348107452072004505880293826362544510112552907788332802110121198723768925346213015017593320461906891370872618784492442935354967057944513717176633725457342360023373430135812229749981404865697359723063289532569325908132663861153355536360254359877881579274520575920409827305380130825446665638125341792598659960373582218029419306379929496926783452443218830050977202052822469010825496249447693246726825972674470255228330502155279832371476360376873301639991601357520802654926116994403802979554405239092324674444204884914958254899562041667619470094116317369772952130508275307756556367949728616856417885482408294463822507810520791411744807137573854888097503235872906320104981977759188220954918997867653952298395813659503817389773606682304816063484244839190466626380897726685616332477739233194804862912654253016689776590979482364739987942254919350685994295393508131616196206413931933853913393245802222125450216774986582605369180608708699483771549461267014774643324677451946575936063186961074047281986023160861397943365224853358013980822260682586266866078037174652827788838940798597853130601980143499292420028966335542790246445263106771902812942919650787824247588506198203557597660737113749826035032215607533236884107954002799668933547837308804055867355449229839932523768523972031061052737872366577390900489650429452617807053889490682884717221734403683866670414984454027246980634507333309117083705923298171612949237691724163900309076272353775019535950507764907805579561758602083991550073701226670545597287464734910944130465563613119778387805921617242898258351965557738508045014850001704096212652081266739968276949701310543028139957721162554061487786214518360564102263115605906647314280605479899507324673054672645477706113274179022065172593918679256684413158163297518658532524352417882244608895766549583466514996839815826455328661408406859880880121903122854137256371668023013327168903814451414262105088072352508542179500404917653519854864007637216113236638098353445855251897613711982064932522352099424930991801397267036941887050191593761159068919158266107416521459268935178619248521798568524791918819080611090505067821687973292411132910341583799605530877853779999060484601799105997202612381640905004004548098382853547851388596303738136552898804469660231564428286904485392539311468806519571020470801794037027843934871990924075658951407734816254660604762929747803509096889296212544305104879027111225971455134473142858658704382637422474915079442172554376687212091687069418273085938270373898720640418229865386762877839430973896561279457432543103549278506211750315506751601618640805233714576864600294293382983688380727115484307752616894131928043569440143304802004317719470645439173978192025766393839678905571787562062361906090501609708662955477889911207278935637922718186285956403648225707963513687785791760675219354060112870090362207189755768922693092428932490189368586864572446036537895745486654741615113438752269962346422278975225178111324234399107964825016204340959793003315342551332286969823490918121656401408324344208160057827007155287110071824203812347458871035495011553543493820738861678294741324092253237837886126514807181001506498299815444274044153878725496792911814397563810236916089875304334976347363151968996967660786456688434560133789790432555642814331676882866703741836580742156173697051696573252527333588299764817015531216557729887637011423604356974303522175170062583047032239293796968407052452964715760589874825793946741951658296456241906681303580710245661028692758127734182854453774603560384030846258380882083251332822196502499395654812057797811569138023674510082660226678563583085753985000084430753909983809890782483163597347417173912061798425179995245007114356721727956780410993759887061562387306277231491674673668836889979630996306671530028110673939358276786402207396421240271078819366749646894175845471648802389214358191483573685848187590249075876007299961293213915975279472170141571160483334837626657982598856725335582253540423737093512651220584266704604481829834545815387304070158577739306584103660676343099385252911580560364827487817005372864007487219871585411007377963945498240984188033569484860164878821661349918042599044914611894175640381971688118157714300280571371195004940437852250450965322007956728918701144319691897926382754351111838901366167865028021340432126757652757187703710353084621858149983395572120517943948779736934298520012729858167945134013847061836989999785655534208573477520041289057731650420773529037946155659140397506137779714900199897451142646324590334894038330962036656002994775258034200701986874120985300324310094563787937495541385744419513901542367956438109067932958885426970040264887585708915379601340147290759845303456313979533997042098166072677895760464274102020934735902256659449513671938805517337282889559161333941856965101126055051879457302543865102159548650438090051229892573498896726612023365810864930269415464387113733337744664094268020050376371482211639353136809748781152672326286746629747341192196970022042407081694918447703288568535789759466657103029482541102711801251087747580614566200224879656594195524070308536038448642433658624881323948792770928541001750384224046554631658166558416547362066433856102948979737163672707121663739583865498460105403938300061358325065274228692831078190773168653190872060254667761461675222580388115422767348720062412523806261410407647931785668451334465397988966440686925625743625873420579365781066905061359916205756745713887012041741615633925363415460909585017144016587656301701514793832775774674597565930569232889973780034898875587010440115756276385743270420675496462240785245709975435410909044576382069860295629622487220888706435993903777005208374771410791189129880167275113224857262894866073071815609325572192328391726232969419722822667822534807542050747174557386284977447892844345212848294494279024947018686996717044232907855400096596943513175914720618700874326501221286687391572021645500945398776018596365201974489403720892334905582942853136868566817561606709635595634943031817359078889934064897102926297901445841906148425886213267762429111438338484632261216659518869209098129997111199610997922622413808670385467285192124481616048987232964245867083843025029223682711023476191924404658241548901095061424031480644622289435735201980914586178465076967212615030361491065993554454859760525794451641099769386730748752161733777695029799718320030032186126381093305496118716924529787328715590945302710627376998201445926447080854501544720380601807928203696816476893089683771058488492309683632842209453696298330407159791970877213506580527966885941025916069063513878852122832017980452122390486456831094202755313201120351571626307172743398136854723188591543472070195660819932446804575515836016104258617156983741024014188031048500893387240614380790454321156058907425341841604851811915233247213120482739768581450897824440254910354710704587764622591053933942943182786005673358129104927909957893648019539897394115911296797299745601209509098991180006563397671008484380601903368582884139893191680704485783676045627566778835168887664097889977655706304978184262501495917223022289943871897579016157493106575935470089538870972585249264828986583049058934443911572137942096004074346352709224115108942912351074354131200293796109394928953633362980272840671878192067111443255335516764151732576818689586078929853374793306910105724743989060244703008847985014103662922048502734197699255006036765749162934849924923408159297075238804902570229272311556691701506156244239471809958153175830516985056550937905053916166149149855077779890549036507322094363124608295976837584090314452866844955478655841394308899465498324716938123137099066445990087882646189376899224068822957151142623808759070611355182635125874162956165079453107776681230184977769408093296392055834988723013142647831971508712329188397092818875085942573179709998596941349295441059319231598468484969734858468790042726417305025015319595239042885517500536092133280228226246383607824387348714124415760172908816746684892076898709719558853960363223667130040886345310140714112400936272987417306298201033992087780013885758722981823448313360490267339722631649780391771239017065531278378091128793541515604079260318615176049862796852217440974980791770463135656662062266829705255821848199590915384671826169693466932416136165870759669514768889755490405343839718797146762664839719272869309541428735151877465688526753835250193402250772369514482235420958068956929297691746969347784168689661270115601191535201378273227537937333181890370867426039036638375578901932833875026007689242134067570769424284299780778098952014723129062142851068581214894887042209657356148466313527246867312324286074159081656050070560840487798802453678945387294814114882226621918437809636986797507304203989277013833760411219124213052249698150807337919581032050500419016732928840265486660044980622709656320345798252687287499321842467492708665008274343319530182563334513812292545487666077573447989908195635177811528178814684326758359885526966861082757050716939798404013203789698129866555260374176264345750794238361053809631689912353750874129418218551339769481296892488246576110800326697761609873153467748308370240114690036026730411004974355153412555369592865193187939320793328678123071533972023814954440770263044552188995486251751828976790160393888568096988627071963664808105194190668493768359259425269454716216294276578846356774493477539955059328676485558424402047593277810100880183003075571689998311593369285485935254146950718406539526410835813153913690664355735582681832829616266039667248545243606242575347218256067421105512630695922929225864065396195777587796073952118323747484827207348282256640022702290481589235543778604584520305474729753089742170452724271603804016791545662181450520381917496575938566986022839465233828002812409713015016321274236451651420540631916500003127969535576154435484519312331177988321889601348809642300783833756979800937436734698749893070807963845219578360852754815897219203207210786986931884821066571057323930112344750506616012518972014673322593257901216367440637326914895136416335825626847709468293506142473910725024621004328247193167970663193024459752501361772005646596629556037952411293484222293796977771412460908204136828321510263575909871870174650276229201068433437614982985306199392925129260317207253316751121713336087144536868179139005653008925276037882689432029774064424052422473309047416544820216446295797683826599372958848900226330646045398335292694342025140514572113302686894178345018893299392763714593713412394780165557874289881242555929932513127950951362073466986135838526147175928007368012506629524757678691994008120917111575709383441833233941698992819130990565319875450507105182290111453849388386734900576655344539087487859917357975788477866700373456949942536463496086598717405412170044165325788890077352861631103267118170020104307870989806028218599918052327913824801799006729631593362503247213389731382823193384786015845799313378481869791283499619927448392257427685850553469718551456055832910115866388629958991180061485966130516545465947761602938458935619579874645027890505766572573383097697204900740361227728815704128457486804311405344191306968020804803792889645318260750908290358099823722431188202861728776429489302627592054424326320398875819145079526302079742341646812855549479999641760870116428803325027067574001966010211699103144712404177221401513466503423559757292544771939442479222285464205655637161923565872228953493954394457318132793448715314300750749092339353233224693921763541597573356977320106829129366643723574856596984229823614054271190892657809335775450014055022567934644629024553369064971296216585661821075535096651759798316221720607902991225418235661472755876325183746073344060515217644759451877961804125027787040768966874455828969615766712828658203255154646840289780956103408763882376016457547165619901193970352304639825963821414332238465619458475086288159009888252395371205346351177193780704291069400782596793001955468026490346346499641048385319178073800424423274554453236574440649760398333961007914145914512013359423520618473376225872479042321093455757158327967060429940600982507992775753405551190431034036309093437863366221498933018991128565693719450059171202240069647899353090107704295808235096139047994990187498905770366748628326014608727736057457897043118429546876098033160290093810218164226758504715920742408988392109498595239418966451531179541820915280285587434927587958754766134205582984022191890786597833175803693807229927225034370745838342306302741284237839542402046599402858354097143450173169577626536779370865458824437912060641718608485959061090870365403079403290138148205134810635740156344444892455958069360609826424965180781605109290794678684842966539887401703359323554926419898227078222470707726225456331689284588215336710338311985789506445074109338478359150229305123731488984800322794393364375467908387684094582521401011818092925704366632977708861904477419533039338537376963864924204209778687323159716501914589358919854917252963001257674677015070498418943185518023614696782222694626372888572512630846707170770426109867169991765842724745169347515995054534743979842572169933408635331075836594862992344590257279471553032132317830295954944038689512730436335719287052318603819565909546073701099897101624789094351225427678898008479425984643941041673667673763362265398000318337945333827209422192500481459930244090064242063295101566739599207205787273041882901410747539991558522142647900738138123516508530025055152901781304420959650222064384281498752611296941855537040813957727882653023764579939599106428178434380052230629834064187228345778869952457187028182265053825731625867682005038718431422580398920670047294391911742924920389257450140865612850125333447844798782816158419517519510475163993658610573031033156414055274196154717148364952264827314911414429142656632097956394381210689388709948288368394840069059013361278562330347622360964671053058234323635482715968261711503663782426293763017791700506682277032674160106321540398356281183280933499612902232386664643636787372787685900939232147193177143663206105217144508683439342084009745176829027742930347827634852644361511764665162225466153882922668640957762902831397264166605105649441972141481461202959685339367050838681375803729152348509690179812512564276052126608330696099286557422506668722691761595570058432196136570884455870440736002317932888086967491968550442314752920685540170005360280369430142392349387314235813803801821319283379756218947901741247195259156746373196999100573191778528353222620171350957486050378116220935998347759637636334944687716730293127234463064492863946568824005419202087117101404361373868819632390855526951795036100526883080019275089739820749190523982367127534456015063831994572681508554811661153527158107472210666239098297444573805674905981665290072337161796119953021416952931742889667364148021164431949843977041763827357357699498473843445877692495331393909051611299831525776609701319590089733721175148738228357191973270183607098001145479028669123367812330897543875378716656458697353740030031059241091516088432530884281442831961873383477544722559404636623923513657319415637648682678490939319382518982960030534116584545432607914145355204637713242038978359658807638186547423202137153878389375382865362067775005769142943397422055076383771495876762077348036409037685103586502972650533934594672155331671138785218517626792417970774584553748529668921032156993137753085642079863708441361136958405536826591977220839982245409213374995016481050034979346243441264337459674200052086071670364766488761973750801612921105705155339709385991923108863505462479063418190425913302814346519387923113546834433040675975087062884841141363911047462272811949566407396711568672320707040825889010617979365937769482240068556273764579444830421660623349618692310400860695535342275571623252502549896891493480566160446526338765061102965775586587056645075373536518685662893604006668961000342695738220968140817270169198882843939589958063856196658039151284712823150576437660977486013513674332059219984963034062474025802346543489400989716047107787601861326390829911910334494380576169894422650989652596190535517534085305627228684638300408064675360412163802260142741542502582397810636906920342506002013518758345123004472767377693397174774607478046396525206205351653421233296816721884417405002486693654594772399114264492601572527307241317343236980832206739674452572501633263391047115584914603736699626367937574783352201919852921708605215111771750498941369889130133736426625004275888973801141237111602069838330177285523588320040938186499339236591916602196765182370302332755250871780447231217807904045707857082900686142278151014310154496596704251406227809031937394150894463665328504133057712341239232435584820727920954059990215902928773237143251295680373612129768539921113975054479779457746296426313351235868505511700922229186657935381413849234774183121391765578905751658894321186320070494866410169274599086504044023469789789736893506798278765924556768789869573428731780637484435733617167795242129670898314437512916791341425188072878807531096373443267370439444714281651290101478919926492018115706247368139189482156206650780301346965937586081946472800650335485422347075007844507659362974406719276248654643697147065325203734938142754617854410480992712756454476098236490641070814335677527631037906456967854178044264877910570804077106282050358282427680428026742801848729400115344428668682536591680396906251183306290838326386836550246652760993027643513571609589222004696475630694275062649871093056244877591893570873859649281427216924509733932187574904174627094686555681087973750494287759135315340540058333771264362275688736769846994064033046506367045100626167374995475376299048511864679363712296425120297583062276724374650235693618607394211839123585533904530296502597642584996927687819591068186211362885163376483359148439582123212862488618318776920278428422837186952799013429936951701071720675642060648802503971439204965281588507335549007684483083251277851341148307283960330022333002176613994660408677225868796855561178726165966733430015247121451870711260584945479286798962385689042524718575274148187467274810306746823488924746787365238173687351305431840727410656933208541464054682824061320727699974985530388341463968976006413279427801367832776665086406707603604714912132957754839316782422751885838918699263556871426300079586496565818772977443308418541860162018813742971810381388885234302032497929058575474207570327915495066667908050254288931301481850718638804413174259607134491125565501872703835835927929702448115263502451107166754637394223453481016307365313465435603489968016914107110490551781735360447790073776723790790444810552318764588894055729105027054011800880732602097498951941947850729857663097311071811309165499056807940586033705056111822675518601816929747073387309017127681331326621591378802522365599121606417447865833423759487431822209126604728155797317733855471269287322286540523066935214680780473659657137288845175702334416280744048758235415612568168415499999575974608493059256835723520549152925290135461599113426804480143307622760367658312924338604317483626206953827820351249340421894525202010344180900166403454777351960299853806063340598795812739664507247300272814403607039075774221471344034959851443650371795278871587905136790612430437608252398897030011076366158045033089116336253770024071200017794504737355693174448660159656806202211680320396384212408482650827480864834039376744681161324870113452794473833612870348196893534237507069048372268021028204754233135936259657857997433041340305096045251520623479732586054244414608575563672496943357147282723073891301383452420588624810406333548441036987877594462815649461246888731904810291746919064049411261905993762853519769359790613250995441288129246132411041002591935437027826318333877930680970194506575651346970112278304150585337294959315799891236031752194335355328365152722632640583725897103078932341585440868425925591639673706028594538748168637629728254092134942113677265640363440455685123585538283854684494999234165457872042934112695359684701840979867638549074513630298477011815583101139960388915873221255635836478468174038283660774774325881116687357849545685298909718859241944153157518258758525727289535042563664307501351660387525821130011810337676291051494958638776706295083709381622388924378528850959673104360458535081068073794142434095012491839246826417092037362060383504120096954384861131620012200503496058780528716054531169567943385832670241590813025769150680079961715838924932920652654253191200451336406021672883911869815213899895953695806333013039379390735182273640320523520972846713437224256259395759528124711656845913781584010102623356373246809132517939324372254624518651492829222860151189158645671199655505693929319859345022301966396604399592673102066049486514273141226679984842136473189062901559802900784183778714923046202592565108368331145845891971115541439847317496681689447659218778896953055934714859842591497594500838468684777238536776668682751725991076001892167270017275229566802124251055444225427737495648237703739169763870151537466180435615006379559205619069341316645750399512998973401898885922811636015514607295218796574227742467195164501685397721071943085605402657419039530004969979148174756330276353189913998950652531992824029951430902445649399151803078203363688432747278922180794457451133963500876891235413344822509412423833618845623637562911002012876444498835582120303561627382169359398903213538746068067279909673481184885533200951317140050739033144411023879540958009521948120954341669028751954515540599840641972901704930790540883568407835328460834376997079853994772550552708566357726397571836220167865720413034001863618959766680495876909307338062705447261043201217346984098866882050648590450940534676930352014412550392323634136041161464526825019976900537802709289040007761854768294733247092072885981884529768003537482660030198033043517294439775247068608934503485809589025443322034530500461149451711188423238603135845148385529925850578736590796857919291889136276057507338429739012351783489343771911279020610814807880906463986935453484847800866629874846568835237266252119628586205549120797519995660974645888974462091142777131002288020076099529767052438282540150789000099471721555478377943304889256502022033950764118218442906932461516352265337961330991708056815332378069830084287824408285108479157609018474404964087623515758342714495135159991006962218489516383638083791818908492261864047513516724138815240816906074053702393566297631279773351777432659381556446681727576913890440857709125309094828258360317800378391601179305470778138306179849459187569418209788150383531341839032634437598223421157373426302461716641092888445139296196121365773886001494659000064299429199421647220484819205633991064921012331438301174225990966530921571034876581052465100595868817535815603691218373285520393700578821967508923361573072644019003182935994769921216814735740702501465573344237654338426894591798851192301322962216878822156024361633373686252517573428184099494235857174373811096881577511777270417567516533748901129622082524827002453494850290969630922586033180487799557435216107513808592280106615842472043504124284580182038518701146529658642388555110200213243013794612190970407428344920626968499333739039222572180377188081107072580340997735603146222160496535312344464961318723332524849075853515913512218970625047302185700052214374366035125649777500694304861056588916521747651843619281292176368837291082302788980292606459367547337771507276481163833852123830717425862834860282186990074576513136702807428888561722467004743174721931255153218316624360257892174808339780559332956945287070895278676578937912020425291049029232514250382264987704342487303080401160743000557125728782399954444647287965198724715559439798175875549740005046973269026520132916198278766030849854655760773759209578829193948920099340680639931238503298936078202484163405905433536486132296982708322634165168675907317453631334923227379199687930549159891639647832622920060934802226315344182593842158136015525863157700134056892877265336752889768455974720233540198241016772504158015620610784109778819960141154905621238692971067017971885916736581270725553575791014378849328226526394827705796106612371438618732148113090593708626534103359874330783703923445268323653676498749763815775794483875951182066826027491721492602112473020837010311026982650178800786926919405254055519590438802775077348858111773722086639575856325243280342599976962406011492657348965782065544602505541528013615193602647190748358254554851628757716943701225544712362521386700064943772077861738205712063537220633360800733425380573893926586169404573894034146063285691028166616131220409895358212985266934471297960697227708846419326717725276950442656732682785498307155316838003676153821976564461438999721527882023353829069873644165314509367538652124509511868376633271183362753843512066635626809761817741392481668628647375465668792055079579675767097365800594452311321042597825889000202188764396019799017497423024982089504239819583014534559647257101601873891533450789114058131710871138998680845546348939077039523672109730422865746015433871116780800732453255913330960464084498624867373900734366669861958590871507496254095193915501812253725298631284520978526709076811856986747019530935617383300501781231106175663017599105316318286616589099484981150458623284912040884271913448090801474199083612057066287275463929494959555962538453356077325113576048827195426025498032712962108875711158867014910334175219523910780688843576383556954107098087477010183286434533486990347902351792775210142506164596727070755130204387166382230531643571457131654513489650521804354515330150948743022915730337151938282863135870220443544457406133065947788053935409255524146119502478770663821727963803635480867358620933253796721656741748038727433153645837638451738510118595642258170524164513649701299779592157326597400375719289282520923471905746008910042486937301798599869667674277661326530722932518279359922677635336753179286113183136322076648295703693203486049322441074424690311687464617746680475820375774337798277173930242443852671760506182207792816654881236573364317199898208167365487300222490658130937111519173894696878445438487776577941042424614757043727388088628048352392350714056262005732678962702303409714899579897309157802493441456554120411602499212486227671213742866492055314119933429132153048538106917651831751353143859218961470769811448398872584725886233464086106083695109529335876516970905250294543334580029418043633306329554025606189704532034458549536751754874912876991496366090372635915067434613848859268700267147342355251867504937905193763684247524541225232957662800698381936483432899541293351810596570451617870937830811861405196049389065125734410049567007391737703424451798114214060442380815086026588774228538700024133663256932450100979339482613594795038750987597558944295651880438026192119176302174439044206692277799080280703978858263640804246717073187332788241739782257705896023771070756738144106729302139524475748366898060430982601117756285903341554647678984014656890107424497191576642012743606947361421654161222505525577154778352643319546345981211833056816276528991154631329989527623241253211869704084756855685865996244605105044200093128764016861899389019217420744155529083780859947882057149950058555533163146078464533560436880196143682873142432288292131558961400613967176090211756478130297576276634190346823997471960552933654122061403294903021670603479580017771548427621903584364054750931255960915410322195427261080394624804709768601577755449518655125327649381449785344791939838093586011962939490810485163912153148052813048137070530378885156071275052886948265173093831334471628957338358303717217271078368054488660470748302382640985493966538825787694740118542986726166488826332663683488124557192564293279799405723384501427686795191968889901729938921096041304494429868276702235409549796818247216146054926577598873955259663708377332526095838102280616951262370767811628191995231874910032985476016219034189680799410347607326809192178630021778756408957162905447853508528832824844791652524173282924242785567233142509971465069028603208096064082929400411314084599861301857566110313776021006364315960363674998173470331799073267246185274133285003260445785707342169539216563233188544605898158373534152247267596798407449765337194419326252139224034861746364171087304389490087846086634995924773504566100883637967184305709779316833089520175748373298141120548509868984868929135282779136048617222959412004246231117539414227071103693211851566382995817764555617419852685769412179572591916337328704904681483220042939257382324519325641756440074772587643542623178197794911008124509258307928364490368021367721244515786285097512803780790878467939689274931492960688673054102486931419205838792721180440705126781537523302286798672470054139334943904356886832520941881184020583345841649404111138376308401338270325298169580210580038810327676405996079597293911223667982221461619139203412974512952310973391829992315540435334344446532836694203956910115585736288243043584520497835373173613440243980478991397075683476639181407319854437572959100819473617943601858556136899496621299233097972923831539278617420608013701339449936901878516646349989931109781948363465154553563996520179677699793849456911776538328604759482726616617568567421470897624478063291109792645478749306992524562847796838944038231957527701734167996099799661755128882668642154253310982234830416325009185256846952397650608384516977503882073556322914676472181414622051881274711859570397395384934860187062957978350809676869830298132554825455811760570354246713878361691029361847005222638387850885902864139698955194913327297789369424670583285722588626488476602575224106680236479653070821780393243538850659643954678753345999839513850915590637775262842770015568524092221326501852522920338984599151830463555784931907616084322764442600962276158937931101009362171844370870165285289846799053673117349025356321052654942652650900831237508464971725401528600675540896205378819901556952010343135326545907860907867120645953992259133713158652926325888258327460625960664496495453564064370173617296824063648364942321161331858955279449245061256391735800837751369880376013382675529504948394433411480326591451975005790611072198530392133500803726132055373615900349587228980851606348120060838407168611515353077580453181925297605482071754696342269223839312554184431556440173401701504424699937093517223125942962144760485470892670637360656904230764604363152442950476860979565060114096496560045690323531822032086418035704667329760303942617784405979601508257736540310172870945470470729120110896281493484439508741833066912295685537647528915577193784761294792876441160255198020646567983616624552696033115727285900485776039589520120145878988908220335703643086235589469085847336062849543260771743824410230787362524500964406368964224788817567162489445323455781174954837921380229103332364301759365451746601871436541669947698559923915822084950176080980484075988932104411156273630785011484165833573701383475512377130694922988420258727995371813270226569601767090055389212918666753167407495091318059568123018859209888710927086538486571138970740856425717989252453602008747885840601094384745426296404755679099398162417074031211214748050189412501761025504627176222798641462802505335414811278360251235943657531691825002221684434488443669762950677835190948100420189941791474611868828129566918011502105899656140011115495400414329281840250393014670435356281483868093790303781864633506011804994156083756554761815206883326290609615150097696036214337250188825001996647000397651415864620603822573478486817613404353027864056963842131771209005416773374060593269353232151429167796902832184733205897695841239057995680448056699025273157343890227343672099156871318331815433859483171824632914958912420238132196702137950529189496297336460558954459113477549650339615017565573598786274475689311032381354741426090972388713664852644568805665507610585018120153688421466708772322512453908345611402273389402433634094904402407963019165800824521726360419380502087362651921815316180891545834915065816945002741810008282341446319217893096413647365228529375059920357917146043802184801160192378751652608507287143638733664410642320567149275988697697660611081026997849769378466846255218666817051223050396765108423793084178862402216856812160066336816383837150963650987073126037998415266185185515258496350710400701343932761063352129399218102720071144206313139957511561795372082827344557994314308417485437946466239420697969474357782579756320744716132754869061195410085671638221062433144078223384050900234959784814144477262963711129404008712904613682415221171668730569708382200263373687201872795825520634424036735025608880623129591018587687215799454347798657014481118240619311153160343392267434375943243632264050110329950492373573840512031555868142954314831528463041542514492284264257459563601855422183091133801986680036380737385143567176783581405757998583396355146081439378443291861518361842818510650417555158751402858367233241433222241613582643717060658945870976756082288956623472096002178552302120137230921609450589333257288824134063936166267528736750745277442208533153857499343460973664141810891117706444422988768577782669005566567454851017868708391153850016460641333202724780117501749941780188496775832466964199295496709465019644511269053730827922493204525020039248829927763027861620002777767025044278578109188663123571115473031200886737651895570850897950357899243680796693571447355652188526401977636286866819219486865296985641544221361250640770705043633777972351428282610837603577198115745763551056592553789843559987506721694073445862459095569288376798583926500303731157674154877484454634532161120176163767077025628684535347763535152273775301201266628456766584897695318918034358139030399163055157102751924950039062678764415862119877699285345403214696430814987702457228862793134725195100383188728061547343822691739755973946670578510483045294054554442358919408185207029161716964076139908415953729745733830842564908698555582344743204884870967714964235513896445007829005979423876364772237752142195626114113861185989878547741676601692865819261800541138748194470346787501182912304791621968096500773866557865334641866329482684596988808834155046887923811275494737527989086507967440377509473683797792264575255579323147669537174997640944906284830257055172240621371141608586249466140176176041360108875554896760228620158721455222365149055769847529077983545742683200280857929731687839485469241515643631533885920665763688634174730586229117401656203072260180961891529455117004613614304993000164205346053099312090436023165499424862286535242499151693809120657405672085766028124116458109007257680437170207303902417104070972845550312986837476137094802096721417839833607108406604420075570705625123923315328682282721536843474234233215901180988208812193649658613617550118502159124789237587285253235037278765102149972696770075623654144603260512545349310181878961039038282938264785753891422230588850684809190610570866736371536640937926498250765605147980243767389447201962157418266441535266576153872096605188190549392409130906585358658482494196285766389693266708217759761723856484996696015750301315641018882508521967630738525590087629197151254807264914122196244088596101163833777052998390899153017919362802163089948803373202478773552258327862446005542653372443705133644983038404009442084308227741561090137721470339753343108779830430668358119456346717219631078787569966574876035576189373643676313621822758079468996052674124396253470931066884127035043929876437284657808556075074431062483078947261941530399044226486873112343883813954472111640971527456677799574540881933513350797550276958487311568818684413575550843008626314957620145657487627421199467616932881964237896788957022296755449095251716011851336778762848268055199094792678129234302820852751260700914379291510814293875696157867163521955680299381578565690830285019719744129406920154925347918747699880352938295211694532577481873487430208624854258247861806956755566646421310395249649814964791743668661281633356198289884536246209233564638095884618596702421471819646530850622617536847888087797999433552066878118129927378083341785887436203509117276150596805774293999479511459251849823449561830510988442485648878454431668097986658815836032289427320736729982304776647653414965242087107860454736938684508945895355875370414724157751180168006243724500245559958892350358569630869399233043354689698419295590595850608155063561924133780131016346885019366131808327232617418739804102893402962641114228391706381081385969059011294833499998051073617953966405544226899687528937723103908430808178096272961783100583292465009070344404867260328517632053829077531427679108261000283189668428031143283472850224235641035511490048368980289148887167718627809277279203524042514180866684078510941468866773225123365587421526018477108318747631044948360883689307649304099874024315470847270297164616078659575687413173838973226312184391508740654200516535613240672894887954502097448577202207396286786255693103050742997411991506822678694065834048856381711962660323076169924341742135440320438325781956159486163257964020929294972647820134450046815890325286852798071489382486542753382546036147163697829248550185499432332898167197597483884545326852665239721811767081148540755072159980593458054892687629939347241651176677286083478453927508055189540417011329130221502273901938041564813731128707007817835533672746690338324093449469781880502954000379460278058971219503367472209694171131120500063594529493064590879724041295846800547779740953453820663490929939702229298434816412714773273254073688719477438446538485826901807999706934488941263169637857132266957204650680110792692755398042819687019847495478152087071457418622511050492051222111793206060390468238731100525619034278899430584570096669188610820593552221159182308138363384954390318802165496498492926184937917880320874569811846341958901546020079148040548921510011986058666507605556107624295201591951208371177450688035641026555288110560449700642731111609133511787877474668476006867467956381796667863746884206349070241946327687957488477321134950577639580835583312770667223181833063312189753992316720731395526539830120057672105691395062571325291059653173144749775260970866963682105151594056426572383667808292616883760976037639375231264006286335350850319131061861940400097838231230194468303441140598760875667587973619388147418287103644682585655969642358715315132058642304732380006821726534318015933680823677894892256066526705895109767086251006646770613153782700815316452752330849845126146200311495514078098167098038342799558625661398199358451871965465030209454295855834280440009458276129731880412228118626500147036393474613620852620518400776847222114946873758629561706562650030362070000653670874252911976869526370958745662315734660315509774650183540809954443089495496090089080220686824438353667116552046673006258961555001656915285263869593529462714486381994083745162768873817390102020301251019896498018524119890113672686441236515190758462829813181152109773051681028185796452895369418372297326770669968291182888697948611371263279852893482665165835181035981703987347908602399199769810034625094593807788531868200963723481108855147707886999302918364341656465963835660490630579847533117732984441255748871931613061890374952316956131972802442248894685179245892672189734778439376074702110669992758455689838170509060785553671821925157951019479807161620931337861813678957075610963070505452178083863930263520529143691727293150417723230368547367168577382095853784853519944804373342436485295908468918707331030963672315473056152185136078451732583535782260006493676158212843722748136809965054927282717752047215743791034310949976976920251479119558392844350878315286502269982869248947922946329848249401288228136707515445143091272192931330028412502695038033982136883479356942462252841300139014982828368206904559196011879084111469535312673105309047787706679376104947165174316939850255339823014158797261024784388337273123471387482159580347415945788637796425333393059260710993461308284276871502773077438822589581747352148137424483478654924031274921877914905769336099804059671658601259729410514447657702244653116510677782823063919204542245648896456967132738355565733838437979861807250869089644881492705236712489690907748020839383184567876114421689943187736213566219211864210707335998391957198918927265049824859672854245011041837869038093070230276463215372059123695369887873749283856857556054303545992872271658718688530885998933634060789191580890071906577116756641936761637860678486066081204917903951753033094066347873866609124721314718306267189305969203652803409998166153405872588538308410599918317731670854237336365445837437495024007875072905475603682962193189010786188286140799130780240169012276296977117491343381336130706460058328930865848514031990248567197106522810407909181107379691488264898117848295303726945382510616595565268585419056421769664646209912536862681061617798179801016392677995790565728784484707395858912548374490483419653281670163820498054696395708228853277769182885614566086030401775508288293996949080076241310736256179462472535598405792956218155733450302926385602601469608353959100477552775612769885518144812274607240142868118489715728502395229256746253305060245187150514787746403371289622099522193995819105219364453537044747424330960752620692762994221325779707193423397143254647822598181215808309361828987922854088583507059228926424686412237463239120401828206711678869541817006667418074851335074773235172211531876647728227248392594729221198557181858763052979181686626184849844062288404865406293410797483121159722938230025925942601135976932016801781591407398382591884722320787067417713224518998345357521594133055249716660486832941811819743474637641605562429158578072840095296910644426298436582161229050378979304297336655244372699151696090506159370414333455328847439662642010842049267736255456566065556032299818484535729106264609646261206595812709290317676117598827979705136371957226446563642423440901745182843569185852314100153363632067178397862232387897452875490646817920975802656085536493404577853580190479554083079027253017322419440450763105611797143808667857684253611455871266485681384892524228073299613324258607194932949266230505077472302099317290030427150328221768269059945671908561859269108108298234283515535629526391582001576249670640950752804004602526892796540881486610770270295149708792529268601451211494556369166247880846618036072697267175240799821873874402618437278843775333474079684798751590238819676002748652940083231829396343234454954732580693202788957337706478212020719084972382808026817141190211968543664712896270550834338588940781737558725473198567558418910526270875253776229398481658012380628073993823583773207310098939361614484985434569759544561487215434205499120265375469418525366106949989276467359449929048691514880028582915884897795358969330123798575400870672590114333405860790147627827090267041902076555450091340860555045531408071901993814738939303693048551825698200181225954824905576769112089374513033626539755692657128461326498954297211536218334438603412438699900741081719376569090905198885044925620931289176937403384548323150085959624874153593759642743341697370018357406952001476965581922649385051161304762544138303470133353322603911852040995200225308282697360689474282274824549100760718760202340417363904340378509003268768977814495117380085996407599627230182454114289719700799053309878342453285644482056289401872605325085480568234440515962782821071116842238847829476264896248143314916792367275749494436819818400084215246635849738953105773417874472842899443668762675140090853901798446412207112342448474759495190414470707918871817469838492696408849110441384559398803527867221358735540466532566111083914949974852553346051611041358750574426823466268180548659925671083500381255210465536166173469142741061696688496585321141429277074689569078045446753623915186452826782436603937143687445518087926235121070704842190532991095709919796168026877786197335930896342171135642558798451604341547158731981678517383073484576302649499800020850346188319112408387175131109400720323404943497055694208811021089202312347055074710407377928512074274602717288657250761292560850883736738854569526751173760673222160274854454651864933779799071215406725588613283044878627832874020812403161779922404870328209931574141228001540084937342585781754953733116056787290554730643661886930543505851452674343563395299768540715999192714437767860797674451335081665491912804190953099436071411054260474761268950247581386799388923737313556245769533339359965977224567413525469253323185226472629843240561731013533889287645455376038658525712370234835484224020700058944528300195259114993865593813944338967622820407272792144119029118435074893374291345022190357744968213457222851963168169066575692471284560073605301367297440643600995344697157232374593446316353537059467083243260387575905595626057908264133339323074744725141049801225108240802576827924813749919535480228996107691278399274646553629766004804067685094850096378865414796636890948417424070338509233898160107585407045072568951695670654177520137199562971612732732120749419644231110302052804643766077978530523359911004564139362298353668951432447741359469549683766067510637897728595820403201554173414075970431854260126007013346835001788639186349908434319567683776971422388237322800855604699747157068792069380537583462257607003633385110027852432526369059207439447826712988011840259394273038442443822619694768559833477186976842392080290662770200704167289921157714257521232556639775350345377581450479745388912717843533106969660891708896823423751410828297536787024772802608789106132198304245289189601470940630633058018038022068222999156994868907214648849458767665734133059880904398104896790050826513438228103947196673219315718248530426438410124085700980519235502901707769222326471707246409682553978787881135853742845881638667642289628842804859547736032351917123095917979704401010269877024298735266268352821098047728276135217986661195623597190717386126138587661255928668194332120073238963249046047170038988454409687098175302984287363794888598432133390588429405415094121040156550213335518651150387888462991064888208700575388762079718986026499995689030235155432651593916653170297022651751952916383215414241637632999088973973774648214679594244415345664702155765670167569454514778378302934921555102960169425592849414491259937868223008171955926675495338343435483583756085780650352809410360767400879127656190105438314047021646635218229478044432398575837641484662857522154157519259395539506944086581257217676750881860219074628584213913488271987530826259963143252424116181215898945478132336407572383103886837216312176582401332453954425182576598746459720021728760625487642942864735304101614740441817910261183797912529597959567860301396156291973315067879396540190816019115139723189004052200467557769374576792411870451664433532657164312418899730022146341797184565285174506981120224516135225526312996446783109676462966422984392045796867282794691354960359187355414556116935630603700836718305771100238835731724553003112645021143645029163885533466945540507720658801513445006471443852317027165132082961926876115285244422697050080287981792402005506579010594259021402626075756611705301217100222658790725518341253198771285211280705071584796107531207504257216923660288900484309319443164533958480098841706301827654886191807913900860058539476185970105731694891867225421332918090153474481831761065547905813105181046774098446517188853087622768455888129880155327015787194613348522724247874135700366270707783940011253559057061233281020379634326457475636944503250666210594629106485520015139350009668668238665434385968667898130749365381860831088668081675844766048222532639949875764639390897619846721705070412759020199414135897169061462621949612597154250786940162433418422535907014413125757746008220156833574902341724406375930933919845114054108204317235526861851847773338832528078737269443447195698421297026763573092841815057228355020752633087746691315243921204522576122544026603558614920616709272379150493552790705627082096222029029736360800819550401738724674518402462451825409045598785966726841317375388943226237862015587695078265165787126911132247416143397739832625261438594797581477633364723037995934321236478189523271336114742080650305429735200310415945087568396051266414295906217796623144663668080492390521020096694476335444444542656789611458186046357164324408882579252688346555810376117053238308816660027547736143544130992712657221486235906760143772813326581411931350594564659733685141706529994437890696152945281754683841668719473171050624682150102631368681844388840727239008028966634335927359622007895643070028393671637538347215138335979168291086505587792512695824071363305647544042238941973017855777627158332991877342223781610440774118661445296708050754865710605301354045351885398013955245969816106169317421047560840133780642253948244416940780029348079598546075835899982503278236659724751075703507198197296925149372996406171258669098677825850954368791582724607924158068979258008121578202122699763802209881825934305899032117741713783893782739629365024827334578507714203375876243359975204850556632444364051865875249456039530372947953250378259107712058765117762197067269936107980934739375651495102893597159369171800984656704119605515678196463265772811511026231074667520467101755182143198269362039676529717857250120636567983030396528393471809631124548092889348273110085116015048976814371209993429888538836280415969128942521702504775576825715335413438186423332919886919782178500751350355921175285488473572362298747199598987231473493055958307868315484001847683542642599061217178595259386784448760519535304272032629272337063424621339029656090150777378792696239988829585985004199940939222432458010569708204076563852680639661804774520836222590773888077342655309152057950900275488078401831309881012930699107433842781732830228409771631175863201450344664574328431287932626240809990841864202336569444558110021704481374148580283999910493125452817319566691719068787642495526911569410925741183506583681053439471344848684666798407207235502889799301611440490042078487382746685409139730136468881393063380699732431743586564079702986951391237391598731221863496610263230256988515209006868948870595282205859324660466285794459327463442707595719623906337943179807063417288414679672289663850671358415782975567874840850019099581663767380060294765036799666211120482033588821972742441281546728364129755755662508930752435325074391547856548363975035039108967551539375102353828174527058997326102210879866497232446191018312878664350209246965621990127305749084044942427422688498565285937126507623097211672694579422344895177917238313173221679190487736560982085991391292930634014059272819239084467152812330347254502010396495341156556560009679593839223644300997252049213673659627126105940744142299851553101467124099713094888637594559799679181806448396565999035680117615353824187192102582756781062866269165576979798039849160403218077920493492445490537694905530534242078028313107884138230213751477268381108154378979983417433399985122334730613249561353461929601389429432585998717491194931628485337906372220294357187981111514073467990011624653962539294168410782786248476370348371577168688330210543593096660160546220600931390624944382389535244802493501399648149473281052750317662369498721602670772603550367430093620309823884788988152269785529771230942338220677222725511971322204589136050406639764522793438569018064554527565690490544331112115683847837864660991916188850356784431697065273234657023287067670926949236958860779899608594887148731299269555571977745330249222277676090472539773003062084575896193321247627678092172821671610908173238740597097407465430055875718161578115284205074288609721533880504757949178085803033822280215156973486376130389496707614838357278977975254523130867534382424454054998823612714822339669180276224069394488673447259245574073327397536139050576026967118421486005747898673250265642970232552365388886050177293473571348523983987822961385125471451779361772820023993298292173161615470316032057865026648599587105044731838311103266623898500799160724084637221125803099876468606617313831309517215308399656705965636009393436638115257688567420499286794407567832476666147273756019750746891961056614770929185919159904011481442758869104746689233400929745283153563288005073617905473032653518587864774270641545014729029258635267660477366596135362742932286340645193565954731756941555886443682458321383992221587374734593918742236003750931664840995210636153095053533900901384009737674537905208802884960132199822812086630212358412343378276197553662989543282369716705511028633890015830830586758772905174792752226866534647160085195011863238300112759708195468883270765082641474042460569636028256169216264313180782953367290186864517135536082956251327732754942818022372887474803437028403283730630159825060329836809309187713955074045355089527039711881855556567475348424346730900899683222056039384551522915630923086257717242777804345621971284869087080438873501441374219173239607012802448983412424402561095017909814169388076750595159219382930224901041011249668366691912429235471966231298224655582303598237746864343649759045338639198938489251013152710722275908171417811792415389758730185429545104968850167511382671066638242944499845889300199481677054981158346030774367591255514209621006580825930750274698803802243768493677702843812285961132807703134236258746487889553519280456809160692601802981532279555981723682235449568561002898020252600107042823613321798588230093542177145406581386355227709516101881336749210657657727268655170088359957668790407779112737011448946957554305583463796121670609492023798842613283740574806297086088701480078036389055425374994556782100832564391793768375778241732755094164542016337103863395684343138575883639371268485515637606167878854397660057355621268882482049370473047683002505434692701015503470044996331194290956461989713079839649948621806046681093112809031533750253525965659415729923482524649359999889406716607483971212904147375332590009019321740405132950924397306664044635751710275201325635326338874163367176233235035661405378785069471008316473355514883855525320960405228327495387071093764975697917333266913754272812019496682514857953526185182002261640162755472821031290918253247962790023330967494196309466003029043891803362831278576121552898834324281090122865687311257714580200081878986630717645709920796992473782161162253486231329107761216168603774160562011178762378293237928592510960974923188495460518539647732941843738005786304543091484071770046505394605759137605836601193945031909307663811220005061247687237230171808618304673061639933486458116259781409279966106154164914127000803230574462871922831779800805888900677445011935264030796458994262151461000715360089859247465911190687768952518008506918045137963185346540036013297991391071704204427777994389776273123697927018000739178071547083278968721285486384583137893269807304959783082836771866746865423292861052715674645186963736024933543650404125391939594244417591363512522586201759007409311711144057327934729025328403588863013225060174150946831316665058171899985214841049234466747864430627532547357137446330357059511479456122305820928566131673093744965490493437768839134853648064407363530949413455771109261745330734903865584169091771872620264017562075409810805363234968074571109934592012960045579595222605989403698587208649185839211640488130755922498616674636362749817779766315053062677671964680770741020886667563310147610662859033979611650534311042121314621567796273934648985006633417384739609794261284564735292584457493861648541353748288894934212623644725635583698197399622243629308887296316121277379233939073515295185745029816634616818521646780784144588009768459041606256163511454290066415972843413053396078933170697484806189020887755206939165464308598551476617620025365440528290005357273454365172924045538255929241260744241247473206919029293624859592726788922756697745985562785113553514487085522359638778974036767718095585596080655472931757767837807175464889740207127709256127440046404268657167266953602966077854196297342537090377293510889175270253220238584365567841429604620738542937715064965121047482803645649554671597885161918367911073975469457900920687978553612147262779603944514736389680964248995232731571329883275388441762265275601067478972488051365723051824306002127845230986274187818959715769974018309411349281981980809241015044484839267119773354402089004659305139513549439670444644032108432491160813613023938993818259543134431494138963589450073143579048103110108264066623764229641256550726486507788926005059035124786385740280557095729274287175763437911429987046671383318956445982336136355989697326644309804965458276369986958338328326560592279252804671081895854624495012018063310166771350904453890674786019160974814832936378819363172072282167182227657206453735786063211141485589773361064253000899686490035055979389918325049165855985013978411482825160861731720320755815905274134614356098420531827991929819749872251465484805302846164578428892986003445068736276063050120597390255823903162462190555375944814958958977959257192219904292779459491324048722709514813302963365979304398500277516911992502402007601048886334710899248034516033459202685047856690275878470681469384338795971380751157610065024440574770753045071904849481472047319156148974233041195302751243783789466624046240558571119253730081530822711370973636451797409567295708543756922525440628648383424179801212018037752353609806339315769561004355849036534496694884841227275611675640128529192685826905135604572485202052620095056367332860397753439532535721182222234937079323929685931491579822815737669164427799533721266881603585059561618880969332473184856656969241505655023427876063598749816900435115960662510575129087125684944072111013677009211403034388244934869866782764915915242035361514180270360524675464701408164465392625351294286846820554983620963059782449028615676456854302954717050285285807733993758842677807940509491676463225538985157205014999974992209619605827599108615258338134447547561061972686886054828676869171861691478428778565389725209779406014594060668322943994923844528088651757110440039896565056844627628419983150682379830216629983734488466206476524962396836545409590998046401116755244089409165854415858357309073328290146379824931968805745706902127035314954288010927471833964665521964243317858185661803930497589130927077796356477714932442827538278400678295716134894940389134558842830938974435832095986279912135218029746694095898055966402927946562412796902799747632153632187932337052153478600921926483256177491805260801246244718994265448489134903761102782052509508825433348621597396013757811367031603412318976638595446017589310349821129659649531782796575601665563166127204148700075464016711034864038742917738376277702280048876618025658424617253776861969109953510417124810731198600325764422383772559785924118456466018462364627298899128407696583418848271182156631676138930507518416200318318290254191696574791369586704744038281467738626156561033309261340498396609591233100999970155521294711695447430563555392282770022500638404038935907591265234824812655900122789095331912539116148865807150533767427312185747754318730618701572572536468019386303913997261577405568174491265270712813075394372732259966796495168660835620518689749946896862561337923453435663202807893966256940310942106995793266431314747801543393533934944493345501033422204878649222809508470411157027564609513804393209913301992939482360805671567306172597766687631125962249963663665925398108947094475956610481889608687584411742623516146544658203475968270664455001299303507261451376536859259959202222519795654692258166529594645343023230549166055642598591563039558862571911277449522839832218568053449788144164411489978501577052922946653920697810073787935146907933801656440497723982676419394624585729052393007985689991422842765823724895324671575310467577937618296184642707610418616685666358954007731810157404006744363999700094646435397093643707900370422128905667400028362172415482671450900793775325920709682952984651018765706852514193955764412803162516823665451965313776709263493390731252436894594648544520706033851555920456675432942207089670308841835076655511337750727977871093274779718550530349357832014381401467502244335630802204117997105978089930395891090226548584721060950160583960157107552245719850168709943974944991957498766610311175472562936492433880158250870578683579427909366027467198591016161753701027163616454419419566004939661554145673166721581386567356172799407998928671263546032959395929316262108437351165358521950521106311435179399992267439480306352806579590606695662542626287991003256729784019102561760237782626173200647036102575916500206443445981696966294766186409323582988473908724117062840171244371959815120005978873961053524320523305281931691310265549903686871941278398236053577556305578895848093967111009481036205846343049679465945312731797251616026374766508654626270882667997526261965139854511077343069262542669912040566156504445897059129992213157701954444799790364005103957851016529086207628036717616466849846622301999119833315112467914699175740196434030077250392452686023823340110040421574494760253498858646998420538116910498718904229212014789290327405114891078899942290259438314431640702231490821064945763673659842471109774644635225452510068156611574717031551667515027893046995094896627715042767665206981760659963165781248183308523245230185912019116919741834680585898101637912237379221430875696566404864018423164412065294243288669804253876810925421532973881983628667434894958327650014480429294213693191177814153302579449512611052566561722424665606718920752691010129596302480949640425244376078377439099288547537511382331475946959173521301011821537263009368846917406087928613121790506901094814992821157005450494534733830542253154424034244536965400018830869430762752141574078859532827121123163299014352823621928426235053381995711001582009242772649151116933945772187792923123623275898507975789133643800885814192852088657403003007170658829437187018499733899633843209235926807468452508722245186207650373497178740087094160950371408666886956358472335372440440425035722976332056705266924740754138733637990274994830982686099048946833240795346337323688272850076711610030347074911293254346328027130926933205534834682521433103935948372972857943041673280785955479440906936972885357017596447110805067692943609549562061364357346019908349098616991637340616330384152743021699473620972224695009621240219982290194211507889459002849519499646022791240429329243963138220450898095852066656697032556775534190822398699464345644356252225045535393133508022118012242621914090342617735692796718123388070882806741290609076413311486849994084282640497063688342174883221070696407169442965724157158055718439765893428145821331792345644888325182274784963670753734480985904313817002107722629122777035005348863290439521881899274013619533362237322001728531033412035391644675488419530191008859330597053701152278098952429378777509370833349457580312379119874987225027666915499498681647418004081700464552919631593562137879165405461992238473502638694158212938191180615809776098896725305903483623552907136241404907580308481050478360522147797121925274738720835685647499317873883165948911378601156053711681913936263754868239956056417986462422426167480836785665401162617485950125971899780268128710479229025497376916529286576259227268069168071589290421329460400897388171330103172785888614971356996561765012811092094097938638117723268913437163671918832669725246166345628557015896195624878758320783803990643969658538950348339820853182380922297729219804065794755082287625374731971241440148421745553980890614646853522848246360762935443650624721135968188202649914386853704556397886389260754213434892424838114536599155227595158168166706454491022599292729087507633496605170124001901913985295305866209586251917112156037201704529414568007268233871225818152733544262616048616495607309444346178075724143085208042763719460913622154400392842190488289475233299004611531159095275029086764435537804996626592017161219130679447718120097464811621132627058097794653982819181944923557571815630826789585597485481618429179109780991836053093503985700475987401874480693473641092277137251022626192860274375334022553695007991058038174568638148659679595240176961406904385648617836154662844330103790482116322097636062774217885335394362728094692487324886620368773491409001883491009697249561509962221051606317537499336675805457066208483298654017240312762664158393524965474869964313368823290203208102802658073525750322072394740361194435741538193502473118622472229720246346532594696636680503495522411039502989942788308184840673010064456579624955345995148465845722005829389203151050538434613666477359500109563989143344264600429700729616011361342753132023921784442698585955379621034150118670870541759259297726651329114142777073503561923060108112551712228776218739823725329578973834316681173592059084332799289159067644128243875129936090718208209298902734862999302208495480155840737531328450696527217603393149848544392307745733043402192925867990598553346217778260207280151161493916499223951971289977378843222467025112687054238038183795555879109670996665951894953064674403416132379010194758223672787953882515828783204722505876345732528456021195363006894137138918304439671047570295209535172612322672710261966109173923347017507712008036900559905408493405496521644413386326519798456081795411484759235545897661541543533257612769746993667243626282217193276259901275913442081845335662844079773440518537485894533703329815602081180331695005820036062227938147581483456141701090799352690508284527590323956124189942014175435087148016888690566308378005282575931834667681074442182762383591833297869316496084964703720544842410613991220424503891394790012187315743067858463692802124985244047266706036884299153313753811647893119724458118809540538584431250584083040273849369862758685938787789884189237927060781104204238334935244500753720244459942890097826999211822357288572638771231656726182652275432574737456632233960525351467405718334248747197388664349510710576512335306946777750886093133834096572056802972115568952117544438796057512407430010847709847732299036695855439100293008152046055480839641082976147271295408351184033780649715291434034509884905594305330732027905772362911699743085663514629189863109347656349676322883463737082528877377688895623438783236251614355729531680191774074708880570640231533896733612687902825850610778373076468369489870174041030379137600155952941842032828812372535397858037260374780003613504577264113679261995168354099194144370269284703936946122492762393690105663095050147289341490507177952272349977085290584701517991967255144711155993360991348985013094556562306912163085122824083164436055445195096579751861786755309653027107798710570228860714746854043655759917412378283116236572396920992491392314982596403498193542269684124919293229319181559414327279963182990365724814416745859141244995607889921687428520978167440359938668782127791604962707469293129009646073607418019723780901021267942303535661142344327256316263678842865139971567138235920632775029789386864744252251405303627343500966710976061545487065056943272424785177000340028728553262594575212321203128224682231586518470848559347668469355690535373180920302103637382136698749115257722534727716073507336439238704893353837388377941514124179205327202782055690970623487100152015360155047652622330074777208160579784056104203435041184803251636501579326051618285226462478775995629658876664964088716258944117643258637172240507238178165989954764610836083045986393914797577947935409635787660170631959034676364006430171570475456087807402568933543474217502387615683643788905008531132039307957067893026440555919573186133452067810142350816873284911856451247550666120575416623397382191059217011064160243182933570920929111771965135192136300915804669202515910166631633944165472347783536407358096667013809796668822664968071576208557066210650617089811016714543879996890033693761265448413246786120035803666533349802201235510922142345947208002824642742895170041699706450279616984773232823392289168638185001351927544945937809745479394575155610314554816832764183446967965313384860617078618166746064470015628535346967297562658313584509991609924908810419336441906052590824868694390910188225495885111699832880804327733967916868446499571453218972567857779208849706468338589464705616461940010443973492738440900103308278768742432148539099044046066678470631542585116857790420907450167803289319974769459831984754641737088491853502343514459745558199624925219438082056526630391820309391748971270970002090842027761077032776502423968740554095266136785731131302925994289549203604612960952027210975450243477748648853066110879810229110067373062012159067026648987227669308907072964218102260037694072174568793145567087253872885308238510062640368529348503281790321542120072661591545935231119601089856418539009493398309551170223478769088065707343538988079212411623358170236709875297064526502279617872591588875002459411106662597129048627538281905940538069255283609142052246165985921195120032731754863217173385925198289502055229396285859095235372197299314524184488287729331816540164531794603204502999514514729989973084662416277514332634134739447744483198222912475529694567773050233360596148265248984156099152054159631627684560065880037595882394682233026632545226302924041813882189153369310918915785696756097269056238985653011861395990742739737134093427646454013072192650101150729537474091002092182681384158734044147274546629467775488377621838099925272872968363073760948514636041900683222433604010757723113506249025296063270659127066186418476133036729398046141242104746471256993270761520493987003479471165059903624553841052836762514847804789000007103764932216579128527846711405391335568634441352440036323777653459053556015899123725460985623169381008002832198158091128464807052992960783089962266986773741809582407311422978976544005089794843746051169413919933666160858208265836593286845984114299745925876289637774100827944412504980698277035969572264539623398130921760191043339111180822181985119240578725912631327256783774679296970678851216674529159714772601671708675177707391237949339837538532011892623416380099685180073832534405634056291230506406537306589457784508367082584446793062490248961694492813501862367098216251426249750454214043263450035828025514838908160192422504527169179260334415503727842871702560075230611906637117989247098716124907374274210120909680721140798303223915095621722308830205899728129765706476026180570236782418776110403676766456806078224185933891756070642943896353392859130526656252560456508953044569513936406222738431333047048088875874320676869524774083460471609716926553830718749215738376201782489817933516491055435282988720912435837637082627157001465703676252960405079083392851646974725404113728556950041306697961916636410265499359796168867110265668713002430028446858508573661291304722545916298322933172589313795117663662315864537684503572821147819770161019792094088153130286272451773369918748670267495086218808283233885987963932063542978710355708520643924044641841037503483343800965416024725842582302969486889961611366808208971158543576296776945842947304694415530631112483626272241185053371214649323045387071439902081656883437038504228889012249887266047158946613280434916470271426746010315875063044193809455452535701342999191175437758380541644443189140380918639410201001308053830308435658388179711846754743117351370239690534521163355057746254024228432956038765432290816129464824775886665394736628730557652678719414422545615095684359472560934199991775718284599034036309545366852126681327067159410340418827563202650072187549482314998003781494714167834502009041157642487794611122463507760180670375249040736739309773191756166722937886928294284284217205417765866747967853483170337355952603356218971213536435142071896486601341709329681951999759033190358749802407243909599984418880266051069744340094209949627236913260673627994336307770410492556264187482861189921308962509926039293846760003448919159038108455505166696183602420062517469034963676884099354082445569005592650130566117700500004818781038719337776542035506632909969038291416053256116175256364729209777897794569452490629142826632194236059720238151749091806664155575660629637570939925665219795546693169108795928150615017793479602502229671683790635074039136020267133337104453816655023607061775899158440810662344733841234841814213043023830358978026090227764376489035011970495394518629495495807477278937331441593939642367856286848375666138227099026071251165168030646180663906424161037651168116467631361344615726916900100904814123730383421205691105056607871152330232680478160072123203704247677116380506075129233616682400062915214276563368877839696626423062012852720327298769058241530639742825841435723853125461333580689625031227793450412815813598307169112485897786944760842603061001405179096042010380580662915427724999565974783751230307923867574788597045885182105871461451046954552346144687298372807339791324009344673900817631838517578419502469033802191219077467392119559486460101613038305112493717285620137737617067998462465195547700184660557242562403449706339664691186330246031475291641840127509156399448783550979217891659285377179675227225693775435850874078334718620531076535583865135940397378612925945649819552131982206668197108222015036519786157330272812186793643746150223140577758473027645968563970544186500417594374431644568326659282097345444434132123358724666440973212572141433299858207601625282199985793499040193507265988271536900946456026927054174787533392448348257570912063114100169738229383452244668099357314857503196197999032945003105593616006832146889796426715223464885119356165161015841019685019934035764739205534498670907289935323051921190258305611927991440541001044906097384240457299096217094485863550410839292963987457826215745991520091404784384179483735854134600403611232791752858659377334578802056908133450484860489980763502131220341767816373499148699321046572257343316783169829728824805385645187542486045595507742589915841455034538886200808327411715683512924721927871038702105880369607312294090687021589396322182257321183663374652586217560159670520655512374170660182999271411114896563294355067764262869451565740387595736038895999172176115415751615025611288197818045192589850208582412046193194587624749926380257309321982137290909264325056034127808717346584035339886870196202769598768366176391128254999211650590428817544197498400769209907571135125467001728880197575169616838758296764021367991000536296871666769817101051953434846280324255615100003171089986821455805499703087183274171832241214834378780906397140921893398511071309030536427438168628355366222761719606663358395173903810154323465498896778887820365445815672470808377595014393782669653031583245824549873060356534012713957525108522789962886661992518862452136590498896737404057082268988151711238874486303163729920367990921943285066149248263102212151458746098873141407347300468307681707300617640899763243750359713669496751818974417577409129663228137637374248060377638186148038824468830018257623466095343774187714530750370308260113232424767555316227099153514312297832768325694581975416012128708727539963089517969489132914992167075118434930427244827252237522997964206036021306831067106940569902981230946661774703561094693775367872706571780015158408567970922191543728672752176996658658868961847254601001293777458437358159529114958649143536968754259531989816364939139028857389757282456567609486309826586683438388654983179942890589324871581946583315165102599159386767559491392377878196147586514333739809107305796005222724925556589313712200182632912902081985225976029264410113227908582596052088696863199978029135738504069815535237423185589320374391632568230472365716724335960317198985954692373988254726990666504227330125591900481926938506207758189643959959453789780147562955277823480398241723808529200883926242414194039511881121063855606507215913937864279275230205713204397005162929792213396375999663045781936522686398039519798003592229249815242268898872658003656014045755535036350840539264560957236039134809659970926207546688961083891153910949523819746137646476826186449477715052462339558453290805145520277513086143316510192450269573950959054448238783125218216379050490015042380317795438055742980474188148675647795964502911484584022979100001193624677579286129211439391180437512358764467000345069786967504620343818371127596651010476459081903160573973760331858330346678793139972856735115559666425632223005259000469451893722758747125047263035439298099782323758184097573728828491569936462015591196568514191553378115480708460424305394952326778225159859243415467163870543254668208753895967992542948044742490967806052009861434462690004313349300713487381555138994549520131551605362467425697112182484658944357874373236595211304191586052941601536220974818005660517430952772840280477011106425035578975245037655152130027105750032463066897148023009640069874617461564949989509150279505125330803999209470575122205415906852450580281643115931688801644934715693148849002078912022562787095965531524741642541048315107891100778896031382731121188211122300855979069930288996799473160904695777239014321724175368204444723528596275590593468707701875595825341246194298700382735294380972185532130766069747637840957654012768334143410730074977650270130249844330582883500907996831615844733666650254140248472788692987162107106854705562613558331705652538758893585431966236342574861816184282957149305771623028487562905096691226731190396101265367513285399010886101501214295270918996318093183758649715744172878934567820598023154883950472445554195670308222658174871194787834445778863737646398450637664035497374541503846733768622009862203380551172462906996814830565987156964943638564877347198732024047976148358005587692540763758322168481980677935085901827538370126555576724350803297361317968341397612636347648181159807278459772817216777967572934814566882436567740151032295429988768104330337399442544051387005074404574818890226812221491718026386979760698128855083856900753867148375454806119939482317722431439141377402285649568447674403605272222868862249970766014907260427248783339156111165664489909465734538847339474132032727851216481199968524388933987478347248868780268036542985695100786366828619153603202643620888096704450086740380210005143018416283615102139994801419117254906696969758152559888294895424562586278194900767136747413359343136160333249730685019859268387549254139577797963187290268229843779343101067571113350833366723116671876618869985410591107029867272983231002662993632556851116859044733795654145381830811566399017008199982855940566429555744050377861810578162362111118388651752423241049113755288825030554759606301789793091145099981868056431822383462786041857996016020042212052372149916927482918861820182294387228014165832317562928637002983195255748101213472191252306344120757962234500610951435587558035909220926389488373042625628629857452840309573240096277550429103552156989643530906412253183950737160739559292978772580121505820386591929136019197350682700028585539936030962857607889157666447087730666598092643347265567963785962637801283873892475672278072510201035186161961338779115865529483157152585451896796666882244942225853579341594012673205565276924334337098728182013591622934285893534664503050653256845647733699847447506473308382569324711320487065308171084474190206846027289468260119421897168597151367408925516197391350360117762315713090933055929235631516335483277579021940079379554209624406488733410351638881016047917080296532468273823318384580761018878995005672570037496871104559023891572215517946882930260753609266934231979541795765603337537413309970543100357086592219970222143212717323384933523812719368003207448884065027387227704945337197713503827297251993562148333289236949808940645990306565206770590987249096063394793357794885582498819419743454384976463027372515943691978306685884681964829928999675934157663374388691774477245467433438407705783593274081050795856466549427924598105017711496847354533568612451440670674535698620537281140731336376458071211490976051621650194803000653823867045957263886265711861547735423341578643990851034409013576763913841027156893098939869907446222571206720385375736392032176846445614678327997680557987533497602732602503655534095826468447297014783272639550508694534108140522738754981405256178278888052203816845301608392235691326978870853018073598477565190917039256308795341129824731753421897821857368273582211890838507655247820030570121840651043455819608813199109402473015854572779681433241710279368916489010181551473718185419302571348743390378984381488876726743198319275423620149823165899145957339934762305643727482186944362242801319474157642204704884574836362210780045115705303339597024933002410679681084567667727950895116709328091656462904789276121019500362179812403000676372152013595608972637022161581593441179906578121922173291970945988510449594999387472049897611490812452832027067164964211564918550243342792001612384496442151463142934352911953887333634609938245610435303590164572692220313139495786860027130718107224161515378567969273310141625575561484385469363666656839037616629624241500724689716543174979348734574577974157578116183698551603999271528399213096327903473875469450365522205817467010294521237973884971569160825653423058934829260109047249192304152645064918908214150517337198892138638265855872749935870364347339346016804533240043634294898557901924355557555426276732020325881285276057466916880086352344667443631867094013709549999654196454095831841127175106516329783049943335271912345460373921783134118857352887638908900677920034567465949546827219530915802572288186031429203702785337818685113073469789207230895148363102469970034346029013355179412209848602642790094613223695750978224564068533334071688669180865709250330055580362445438281002902626978075062025376202814319263289370988299902916702893358540509456948412248593537606823233604410491327541355657597053336482686012385274461642708585955833393875238229465151029492529605801073956168855315231658742538760768675321797998174577060524149268929573416632446272016844886185504960875982282107090785881040540310295211186534951508562921661770094243026565392650172720833638757783212372046561700046190844776644252889042703554338025777323006311685088155596996194120687119987569566132190820339318392249114659494791111081993225980505672400426930530389535676513738185085438347900972816275555201186768147258362585690550962656943458527300223239995674305068609200377697579767943007416718838845509033975762672699172536414632145507756733263703095428416501499069576015949684853412641476568394367580830005065520144116197417113418604567681262420394941604975652128681531805219123347301896655785525671992535802005771847895669771235961771719143230432593735640548850307209844478775652211282666758686047177212011799533177496554900481515124078054681515447561001484645157474940548037023395840436335221558997123511425756079838237984827747214009129271819995700867899863389051936614319801709294535006595828950318315613303239446004293199986413520982728829546863815125756660055565011545385534630517744719542054086880164381872435946874245973277529678746356609789434876919284237895526796710643986018158677502080235123344014634448804540825869821080062296924959021240984737192324739965694832798304700064177870683489801101132104078094684126908921568222789419560435586641546471278890994622674142740577922465119685214318655690580726211582105614013470936397065321754681945624112279477573013035956301183590078739319884715964882909554217877338288475010889722002058563046005646512305068618904736721130618026096787893851576871267288747782827308312804407671703078809291796003861012393791468044450066543579473053037258185668442301372019290914682558872989639933416151575176849101838943069679399901125564734056612075885598565002536703464925468659304616685481474406588961049086444364062436253082447385384048681649327485253515438576912128654919376823435557701795703314273171141726668474069263403693099165013322225026002697656920326438791367793689256146373652276069623480220624267622943891310815520809661814410533691064551083424953118009340898760832520111443715573645188710873878887389383295021277840916716860809376158493569891172585210383468293336998925705950955155115009900124176328502382719366819316987346016571949785509717851085414363822773589040189324524435854724449008654650448197688949853283056635852808061219102551088667243532553649212094517347697349044336092703107774543998770786465643773107583764683971049895099108970189883286911200146616572366032390312442344379108774091057263887652977184061026314343180080764281316802116931022558193139995260217596858008237674589608210790124191625217438763266983564738647839221362327042531879611413956703033879973733545256143538236727988136253818611871226573012329409373187479281552008273359667419304337630292085757389975094950907389869841299692070019619718076988754259422474894807774433181751732698306546733843088164398859178162568137646803633104545471861711285604458117358758544176334179400097915670017805143461132253560368413235295048928838519506295072624456817116155060752264636007187397357780566910512766481821541930595530516573055590641671055015601494084607251288931592861484104937103214547183642289669430960448313028356934403684329901668455637298702771959737382459083166006053863711415996460424906237638879146018637002760431232029758632554721671104340217305984912936157349972425312448987739910870700054076540214143679071851745924618675151043322463912002089618950077198291935807168273378326198406477704991762059453343701382510315177344075077239957078229515973243174334873688179642621818305894496568787178516121404526000314567336910444739584532463561107287245322158198946290592770637864136690612343048794916162442604328749330022284803962912629530495966271041104232528200178035453443773035336251032360264816668036976327224865471242482040469927119973023083725695739975123385214082832878245636766421844070587086866453129797743793247605255712197938799875530384424465575009174616856584800945593667487495678168505812730399253268861909981635318794896155001587719668771961209307820284921173940416265250904837523896885420551518238723579181894872236238657271134201811773164665373195782750853963445630271136926057165425000413896153303923193110006423594214512055214667330246761316030691429157096715360213444907282391953291938244687175300554980128279616296681468407067846200683290841106842371546759391141538068498122309611647330856863841552883009589689502306484185969434430308619260878928034301473063955621279643856334926024783447316268731192236805554700843346240039399399261436291701244884831123037464871305555654022958813876637558828230570908991317842847971468636466700589320729134428188226139473250628604486880638266110136433416487836974317901915721547522243733009806683241715989361218285812824427984358257930421608238540628656941372158033744602092889536907214773980816820325874146655797731286624924549661887672977432455592216466267945934854920310720380808621084586571479029000140113261787950879645771146736872600404320044180063668541566559737048170207282517069651892554825662335055817406745781309618378497276612347307020098832105673641675654203360819141170887767961586312881679493741024968873467074782949219169630715342336021072625376455597236292153657709861641351454007884871910142496636839829078827086792389558454894681948584958602533709410153305119110266609804632181069488462281085640174157055587765983496338583388181676805969215943217078311777194640165660758403107003552645124526590491449824587564099756645299487971385286178456898754960756569929448556711918384533535676988497599020682077969290185270560164154329243607292623095869740408709352502149385091673593452015177790706229713856459026682267481973079490357362511252075816589049003276153556620920139854610423479020725355851253428993400258477983970629520566614482827908558212461090962575638712151449738742601122499576288498044285283260281420092379392138548832125831511157852767265808306323079108427965555006495162464360937991734023827255260438186107650537392433736921060289661805912828130249850680000447054181911614957355375234923466885015797396027131702447017854743928376706871220447454122378841735239146862264344938512617029139792830489111996592990981898649906151734790566792235898450540532527804172450647681152583805192902562163809448485968229950687364379496578388556043434697053136369156796687971531604022358532560465152494319752125150922344980339578718299669528923104686407713600754403211487871028289834822560062387023443479397825425120284190153106130540321578344486496304285299448256176454974075511548320263567846145461289298909332357117429895315754887996995664395329073849734793329171073052907556888552160411798190833776272541634358791507647253802735656353339195705043685114343017895981171253818260930838643384046629208210307058893793996275157207798572513820125040921318925883375994891772410022384317810616304105332435495840964547133839866535300689781431085370822066610553851802419230803214855823942139144491636948281531531800793293833703382896722617321118910136956833017559104515135009740931140058192689623172745795407327359822266493791291692661223269195749540648958358264052578548865267518840187188689691884055486181574433100293778166574995966811277977080076604724581947843991558124782911486676733171361700008851646410706899203197926263349913487407329900733903745607267116555120715294328153997602466877041481012269676584054284210978550740911540444315795798463318204747608867465657403408914058930939451808716610272267185356379266961952504641019973829929127829710894470092899195994992494621918019441459520779764313422107198486811841056851291880349613033603339025505809722282534340281078032638654537657300457779078018114855376073865269736620580849468230698399506919020245129863191963247501167972336229666972019019293012316087347079847475484678705073757741509056823459177796406008943306912842241759973760566575344327629900136275952587043104049971456413610179595934485337248902343169085509957613773653659656643605772203078437257708309816008435233600008500668723457498053684215567978218891783026838754911590165822082863269072430848134123799476010426505282254998445834349556829572537082942848132966651966852833660246673250614782566664954509251967386231775770228201793750410758689682340243048252507161367471129962224467362511859621406854868960462742259438085953911700114310714341524587012994341251779240714255463301640065088454416934663053493394802015575236373937757714668968603024991590926141042376700149636805171227244610996515629190551533345885553566086512053413889593020421703573160468711233348102552657276885241194931890769955598773171276468023975970009466737648800553451079106783955682509465846573618908600718649983263471420135749744866980450691720573779153781539794902466451558915125954619907452484834715446146446007091141211470601069602718016952639792599266312175745747666820397562658759301986964327518975079556985603118199828644692733132153308634903659572758217068436174454950620996092610217740337215431644001944190874690339281026203244081068120824173442010336707950956222165550951004425126859317937742450682421624738293792940965376907354888540128534541957831766346618099556839064749867237414251891806095416950570934759002200027098296759099499877276120413409297269129779831288866502243616020246765715753853830507711914279176665637906931391671595919826015630849044005891762943351112157957995059309195629304105250826465034091908491700764290048348894126029327273377409933753259660584573932364742029210393666059185705790356797586532729213194091474013710350297948550991779066247167486067620158323000839285396370193681357908034894884869124390462175013092493697106865796874231928973653557246146811662743213924207800475805900855516758246858093714247167486215676138320348626766993919489240133140811053771220855135726846905304354315805662929926471982217555121045867332229979303127605997741124522436638490701981492581982248183522350692888320083850362369155608142247824276700448622964035083895873265856641635600888210133387845977489678979457180400121062788816197339454987315203845677964812515565207642325975936699139365066025200633451734558619881130585401779273089947319340334649796816184697375765282591839556369566557326045286635140523483398174184885511563633913515001247167785785660952008452532992553222938974773391788269127333605350800102536326820231505990908046315671502080949138617639698862638552415503329748597204117259284585082868162275203095673178395873398539803400690802619097373785897095138391337880232073223882609966542189443813784096566055959646995799737344332199197592239248239746956723109942286101238058993330014421745743379484836930840889730632731666015903322141226907652885353003725816883580134277585707805479607918892970902350728570784638209926601896029998812054117066112252836342659215106329058858469340794039242665573297750645892145631428129135145260877186725782825573881472566921858527178236470490366266018876757778546781977518176698438089168426444900709496197529223577211338557854700106456723678535879456882208527378008282234166957962014128530874258676590863386622509617193770122930204951874411889188243020551106150261014857943240147119437056771644269918481451826174998252843993768534257301308646447739728702765721463568949284592651270070367420849447757955106089462001082841256951298216158689971328903030795155607841509855370617747249668427728660704547818082838669146368699881486550838806173491746049511692019236417889444666552371833841998040973160634595445270814433326415028832873443834399937379560095961918563238093022033083355758632945130862526330075021970266459661669155549829002025077389888697100669898512094560096485849250987109933697436706092864689934635611856208676813891876179422464764755734394179677736207449634533738079553613022141449495946268436500396837254147605589564971304628974985645008472815111598374205245236070689175895238794052913891059273428003587423968928804170136402070219797914678108672654334304159240715419115225722314822099841073557223422527541402090554948896386980621210900694680978044477560626707364063076598865442752314028555150979763942934085300264963808574203919373288232780106617698818149934221459031024688175597660982531018160775527949207114175106462109219838927246393960282432409732453020400836530466820031862335080361938745570498368560931793852394561348613182194382104170766127570534405815464364171693687992959066012778864488935987438423258922930423810401565061389759622353759287628434026935930473862351211145574910442725721148878161922451403261376245853080070026577138872700113861104401432140417443584737289231796240415354528709698175218268853628703828425568720668126919925405217002084647245284099501827639325454913511311806897117404468245468259347300250985477272629458250425188585375307336249271514464146490132533751277071656478747785912864301308109758159298399996708011816898455398424608010974199093703315281415659897027428970073654744993087012461477831478184892136068951350703609100444466355083682331728433077115302287929251754594960388495865179408734121275081244615298192834974540612322964412060101479324514171571350513054018513297121401093030293903507187113791560284036919234852941023839985499150176329218565494753486944150415320553888977340418733454254380300010871422197646869158255755404268486568147040323699290997241560636487889975004534006009506138848311510742329864487068435895240256205462663160764069164786136161768610162350952743134963929522379615782576738368272217169002178603794342539422720289736807358074175226878939588477714020829090392147931199972828254763364751130032518073109312053898568175621455273188872469613452534426456396090496430760500876524934567467018007936454026292423224138002408121749488308337193915285455184283657595051000840233880890888804605667928935020572667619811366304790771066990348076754095904798060233314086501420640151764242283589366943297312833722625364275623863687732444104148217071498795967132231769315601479089634111807595790180075006429969856875543772051015960753746895324136523151259566733385907392287939544625902064741906879896912993945330410030527906462766112947401794014546162647207865671479722728523878431874547769775101430543063199279651714938122419866200049068446745613339225406512037377059252475149240753691744443437888309341450804021469618942865508582364906878970981563055525163505560846219723258656106676562953683370788709734610958200844312856213382974822638580427364745438467185716349159333102976042936233503904548921319771067199129165015916504066655785253916596774908960547560036428389432792001333267969049012880143014429011083967218144423109640751303313810551295355653562259424061290609598273448344550466915781766738458696531314221464283375478276898514328040341654258295417479425969676490597126190659558889790729309992475909263855071723117822051291856714309852651289926488113488588215199165529630695260385489099535181222524356370308691787902311383885707875353827237015572282162837130353628765259177327052759106975846233658532166274594569254143794409218499549594396744041977483168544581394744859557790805416713515962662185653806687550246744196206914217662545299317991492089487761949872606579063170355136996903608766137904951425747280154432225431037148382549655723881172560505557823323654570769037938454963468440531776281095599281376066272158574546826091150627462158117383761963616885838128910222814275914434643977932404193327486584132743191991468903469788190589595022110054541880476400864917148254902328376301039023208603880008250639189562248878523270708458058019249174965019702410854626842295942711040419333130099291169685831079857591632014871961962881247267138361478322130219044968326348978177244771902400746978693170317887926951628822336817101013512354374637553587937834586765129248238435379912506600964531503763727463506403048189834633280601251272905122464487608150726244472144613541072232872291695224908149283010392322682260681056940132972835211150459243419419377673794036025745236956414765735875527991071529683713520167928283203064283226579442698410559313752531211516634160790687941617984117071656154283330919063774164250351791432335693745960775860351621211700138891700440736832512901647215368354032792940650250805874155018960623790793923897058827904612990767502235913298500555764846450078082716398816583026672927062155835309884577116641469940732810158890863629468860713343428987100834075030513732554522399581597679839813381767814293658960918124228430062822526390685453931263356781932620945203634139661384656431760388044687600191495688829726806840983340119884222469315639780815385524691576872761304296815797568989055752809714800065658112459433988584681565164077165476549085230378521855194973066529390144557004321683845516611570116404491445953859450112743725406562201125450562439733466813737005262614835317771798963735177248941369800579990628971484464595308921072355132656142038880482008017887106040958559499470250142199117715358212978885950631015965120032917946489375701572720907974779476933927109332360623021401733857695340648075981919924736072542897510761327266359878917991545220863466510618182154752386099208018084646343140639624031313621976854297132706714331128817911261239699044594827386489116284091073514160450049023444752679767224718351839639119929047628402683882833562967507354061296586586829509293141359866208145990059046611806298981004561631943837404591345915243394214651793207629613928423985705202766661182636890209895266869277295148927410509915646287078393240219449869034997561613703500831373376002537336541139207903424848348688853436168040711055675832371099746531371971442091517007909865018059826013569887557931338207146834323862258825763460271408614648741946035605707955942122657271054317626233113451598934126165341307333393099399459210354316793127532420375304994631331789377862500553144489173408606122165828542533688969817089527952192931281577331505046894120252951003890100528055415114001423440726290883140732384052874963293901683088581333820873137490284215841330886222777234063326973773952095548503773430371855405188429954640424203204014473560833190739601562081561296625214806577397445794221048441622010686618667139051234229310637922065504620059881505753805488800076539356744965616397876191554546051126654865833033560682519052788231162861089696697551674118272443047478826038135224810103173991987280470975977024645055323524988603272185033350013227636592807120695306392323768144525635084202061406429570523202861750577343422017701210999263416550829079871915384538614374326890885129789601935192289455250679141453806171660634508436365717135552845009488533650067020082703286270599003680530836245005467042356073431094579212349094431004521749291759953143288798210083908492824367115218353474868391805188455623152485156772481111268714967086188015044195797493678908744977928470359855990972716766903641401297842040821906105310283371272610593386525754198657590807435902808634223315249476838194022755467306610350938069284971437894656606861105622424460420015510558836603767119848874494296789718091057521518118978636958798023744694859758455959507869611838225676100169649002776188651783788376176966326639575444707214469345875736596896208444770399441873369609933161321412418908599660595752149990016859181232214472821559263132031709617855353211322635804027372015147457775262281100060661997875012341823795177579859122362166065335778146371603874810434897277264369601986634308931387236574552908364772018179141445930836878816235166334390117846754294390376018710876067926027837368805168331964482427512594580579728669268940877656896407897361719591662144335223257067036009757665566060998005224500672783062780154593017728715412248749591001465483667453523965356152651138982769594026657952998346918537069407193544019842663257423826553896781197920578487565004220924913516227987263009294626181738342297734265779881998671754969324083262828127344297539065552260678860058044902713322607286472932924069896478761151381873102647292726835849669358668186428844513038471062591713059002429925685062555839245815876596459623664978859353852082878444374481194272148585033982375043413324309694725124942600712361217595972972522168914717820776439629709065357873313999895958405221305876346718725094086291038435276307714555015690917145898444049739147377583685177856574589827131137415862793304357286164046873358897647615221788139016646765883743233553615908763976535653668480635133552422331986598813373014693901238068890367669079850252947140234646701939828186936630573483281057729500433055109406174529046674896365702660500522406708067471664332607494839907545814538316877860368210485240944721780306773144011754714063941899044855137645390092931967900281222161490987661252745161324316145479421231336671624962524674256450683379240526893085575329992676930911269732338894623321144149952114286021621700448261457458767441932835535109918243763606531659116921400732651012783147178226113927830287343017643680826775206267502536941503851783791285196343628729894468273519817231551595033215962032498781560008797966432867465047841774520069975014220904899769780039467239744559162487795416455218504310661821057703947780468900249410169623327679520777589077297714730183436374022652725396547761507416398938849957760795674954309168636156858265985710756474828126272593976852145911479198912409070054916006336613158619018096300304599596432193881102762588972846306709270825272517014975232236549335942443250724059863509156790664802131220226112967039641367277106550864862450526365789207500810455159579200702443859814303816246172352702424078588811241309119187569443215164689812847013873787274092357167610808912036974269442841914262315419389261448035151847330982132335225382462688690077629685357379059181591860075086662093373510019356432976929924444941699293302723646096453781483905418795978122702884592502540901270453703612880893946914856392864467864319063576604406860261258143989386737920975683903228696950878222231779615234818094011454993019532264280224439531895343729897127780534974087775397886248780056176165422868556181616371324218636034770694561055131983982369582246327466262528293304430733714018911990946818771077428864137927797054350284989863240003356045760816784023976008157217003633681113788586277087003232216078755037306475758674902292700438353902657044270444437580471763519584016233020827805552298742455125304903090080281438238147076325011104115750823007514791787961800595450495985958171525325128333240465877885771749095622374750614587687627639216859225389932236671277415210677612204687474665345371963600678814697762176319430526627021284695532135793384633678176935891097009229048704720110226317373752069026417184308033097519112010545690210520756200092128785798660436089796576890635002763682073692875236755676759751167783009700471723785373009572198088952779740583802068021581216103901065896573450361721674188935543094844132068018712930954970744764688971503106969109243321306581527033335277848374513294329156737010670847360713638363217018078770783626601000990783965214652788194030093444243057828177924982070745812097485627181605113056373294745360402147919468687943835327642792187339489407813543636784628330413883803589356872693592192816749410973981101022578355245908923601189725059063916336778328586631676439771912379605584058219072930925225186814207889464686683661716755203107803301215477648383000046213000285013623320772073062447984452845523204687252173293952793433976060130379026208594635843894224741670824232857774748225128482010544663672927860294582973195949734424021494740660697322582532836181252214756857716384077666056019361630200192966021955023438359365322327076734721849687562528788944493228010217501880455497648994806268199054835190959290353783603482968510117299620107785347046876434086941761747856417609425987092993024336973624904656255227427485842225610656293451742362819164406703389213212595849360334914493555692757924429356896243443486018637965265022554757556266979978337597846683661133008776923759916684233247323184568798070465822864955072842743212520457484562624866595273101577006220710225086990715513741688632201968263680340137110916693222534009086262217819839073721943416406730646160084732499649340753599665485390950225054002678535678224444787307234462708460016667779224856845665300185238374296522143549983341297366813089182274540668116197176098786160993877364889307732612736603155523633576986122663768908805994361045479485469459244141028104128676740476701546911501239231439216756854565787730466883262560637448799766778426584043292559941608783364404694963900083701574913354716277450059610352724088360365323329726153942211977605526269988668433342551970514837993385221680746771660450721745787914517839139632706062454669476862976241454215175939824730448994620311351392081329714282181995276184431713463991420744418967843558494087700708847225583341629829571520110955981147087692964791327661568269483166477761391875088898220788001326569277324538196184949480342508870976557305271562788729177801514615966558700720494368225288363574443082844597560552011139643222670876207157929809778684752317430021432279227900748370374917123751690858720189451740610455917101400763877103690483482874752443789486061601336686933988110572024261438627902155009059295308258666682669671423860006060425018200844607730187325675864423582247835738472464781946734623289850555931496371156770065683710903465282710016227199182094169366817784869382287342973548165906568955005873380338920607149491992172003292819001432854370635391313465484261052176742217820571795005701447798177016797395109373538513947930683678540196103076861239561449777517351398684904035732957757701422997585187399108799608235110984691950290680141513563917926822226209405790118642112720273684342158110017957593993194858540938040003045339022663710382652365729638417330672224617271779805559980078200022194400484217718159206843284697607586865155707209598565614723672830740475605197854036319027445438398043903258818032302215918368888016101511464696621951646494573425640453720254050492560122166690748034110782221028323330762100314252517105902039541651578078691581282378101390930087274817223183350565489828442568436869954993875221146533629673901626802777121463302844282089875643555599878043134962269022258416951079171682956235207037654380680538195251600981362900071648547945584069336311122729045058341744058107093938567656958355567664378741528461623840826346814508498784748037329678165409750730347780479952608530634242834602611973431265702706061745478356518257964891162893427537886776362109090127223776902421308530089282719725283449015733610832807706739641401337278503086264489458163871412701777106761150271619200394009363713134767328850333660990167190330389017684803012652773655026889630175397537238484435688833318974008647055749877483880350002989760358560101412905254303403466400951247967858196012231258807055240894004172444801830273311018681998330641519508029429585281583272092522686207205023986310453238379420758010790065765191821222568041078019854099696730622912304310570797083706865154666369263745091405037076322613241447438035107027537883736076403185996200280421254531012979545773273373080613081833704238928865913997861839395818508288692214215705988769888178011041888286769355492744042817251707232314617629553132270323672409443979283167826662492563058286716199527974984740671424727349102071986675247862276898068045692212855330877763773883290989767378200174465908360552057420422707148527342402612166198784130228206963266176351360832037043896223881584764677813002659114412219746577291930978423390039431732711339306345121926203228494174209940395669925342150525846377568677367862317380208572828411396967618410719022290853329107243358515387418232561342769659046325537722531930805463825437525431282764770228002630912904794591278486101953380671542523719452674401952899164933371546617682713450931888176968581680965858713664759822504573933026575712733116942172210642810505007938576005594588024465835895736195235923429744892646033841104089485472832749948601083511257206385743456684414732569457954367258350045388449311852430351029244195352527372430975392553475524588449524348838098450503315321033246272014488225020876293142623057476023739524535327398959933181964418159489743468005327159998993242671459713318877415482648328696685296516560555052117249337361533863335683537611827197889443450749554379272364430840735716787396867233137017582999043333315493059192448164500751917493007603419800162892121366131385828433969611738279358140900557337265397406508543992781833218632730935841065471469406370502750635436330632083078841018872116719366452435018377685218614401332843925713957270015704688510559003629633943341738706188252367504210208011045875696566337203531934223692299372444920379105861072916744662751254686038860896386254285260570975256511852909253276463637789239858585616396052896086528412470537668781923678422660848379679852339522052064931144104329871785144820998382071406966851537146861264423259675331713455435733914881626201789826428338082595782007856595514645872465840103821904529210705077715522622260445165328379503700624368040229627725598947793801920894371003031507562829877180712993448113410285748753408055217617127191511010904712354231352649898624139479823739588224515266846953526510801193131165418473656920066682402024419173655571772962182928046316436480181044085723044870290883421609175803872924458086966589802138665694281340620712217766173726062203261609598312189343931222850147183983255859917521350493118864513648998767753758897746339413323735774505614788395157311943350279454780892350798691659824361312285454003538183952404183539852582649032328612532199300672264970872147348123617712329316944784598229787370426835716091779051330352241088144393653437214863689125320276840408526088696546911043067901428712812002617827613943574729894438372109850444310839006557730503418772089766504462923351326964872991887906085095427496675122197475272402195118755604747543492437700241259743838288236203914324342597052740721434449356068287116107744661552997702370791133792983580028704231045038298610155338803538188114757624180650622582010481377622899749062845078594366825126342811361084547219751955856307331014621033126895386129362612020721095312554356987112326022284948009308246955756345566339075799846471164457179330780474729863934880356457626767828579623780638549954619494354596929747747496163625602694687769979007247890748588460983064045840002762374189743752843075834369992254529985148775152366852344667724028737028097806259763501424847300739927795166999619133559224643747807857364831159431642595321857446907598222069641042179992404076643852560004494682488112768248568131076824374940368189757957176376078148846565998691809726378628269677106437180563926264877863538707108842072292934058336078014156512300533806159773450424314143124427729082857803077392296904889600388175492749929838997616505598987400471740483951079374669085581277988640918801584519706911089488210290163230582868273188803954325824922858824359100975068768888275112554791033617072978039616409006565777430557864209414068104391909333287417058782216639804654258285759303663437539905799941756767043947066397385952801677755028067778655337782670672214607583922018377457626625687084531529713904966209352264854050732222791971531421039075876861621309229038378062458697378087576945317574252310055958290249741248545646293656605896684976229496770867304293462828238566502164807541473478953532461998603480613554755851674064675575562453406822228096829620096143829799068398184284074377810714984211798434035012095240663602965648155568694554844986352777282531188186279112952814356885653874564607240649019962074595236067608186046837338098861248875265996402087198018287255401932307627889171037576779507268397630214530840324441437191274720156598744759613940695483402693830466177388040903182323992418927774319968106978400608923997771312389973785858762079753474815037030650772922777064101301373299967270188416243172771121588760541951652443334841261419051148033097621108039788517734740802449635612428245221190858550513925598510275501488226647825792973762037931813967794003187800666399074635329555071594232877165075036724798855568108031360531078182444767814365785516777823010044982844720755397580935152588251558341533947786652488127467111734484911215542452254721794739961928532754356481588330636376884940657975848068597773813303763208650702863582798158448063316015164857328546217161539200892705916857479892527865019298933034796180462454227772097547142797420774715481673825285846453127857496963873914239304059827698839413510915880444352979205002508589663985712361022344985388865838593201040030949043910613297675080177138592923851690562775555673004182308651738622100812930607888838330839043834178958370142403983804009511675016649572851599541871674441107176052966680011519935008523733412386376652899956619334476922682010320788834133557196249786576529434091690312035559980142570932240208133587556679746122202280564136161180223590942532260190671234975968908508255732259807921349129357966106933075896062690977271438433895786462819682388963674887054560191648352177905710595497434360704137402983996307998221836032872120584746128906959128746440656402753237764175809457138471726172215906177947996817868392371480403219356959313411853358455105099028033657735136130032848389549043912581187386791901427345561615101471575889642230416484287889439541062084849235235584167658056696407919004028318556843257907711935871008943975952480080758148432753377032182682248135415737247748216982503929422717409289506440200628052218531385282282980993507076360044515714868118822543260757936390978759215639704082834890790867791614724841939130471753874107458627730193016343477997683224989813345156573869511175144044720362814665225666343197580705311306604354763793144826150254986129380806713723205625382674696599210846576135825981192581859701199564914441132618162933780042628466277375514389151414081485027332680452682378982669609898101660436081274219860276296099677581051431286856430983891364941567406527096259659198818738114041208872300507924242066164308071900225515513875935399192812537152192189278811796748047839168929090449469935302795335864266908586332576574733530348165854540790751980447431412333601133619327848170258872792483350796357967312260620407677900801159728934400993091900955572796184169335289575990341355160508274661094273719831374514394277598210820701374284147991387391580460960906386824228191086926920187014980643300500340683669259369003127445295557991584671706881824333759475476737170967496174272194279431369451274214322055990838456839761767311661941759880233453436945416697808704624589410182287379988201961862636816809740713259623446102095143588120881923702975971151950684020781065024467080115020828721866993656483271461905671572519620774819544819202395716242517684646310581746713439676818242672635639471287951471228230164348451033686939005415749292749134179673263180484433973050097075088438241473432558290614190953171429992118215087238475148904701484795828664028346068689946455295543398970633645593777220055371641458755503026876179582269342658721164577171265352384252655298646275108903295642123078424955159143679339146701317772138802287196425508261648589354005958529382778852079613376552929863936826722185717204251194246183074133126855035870222321505379736961488293918122410121242388336550268183674256496594047075278468993863310205930811647169851340531427482540499956218155575220903493738963108179603653684791740495446455384422825302802146975366066574616684351884920538496297561884144709907185519804557722662132056003108968126232896636534288913739888149922811541248370971810506155017211623774055148042180972348675080397266314366070082165313012825712968009148388713579237838511487313810021840107183388649710296660261570277944336610551331782408595257853722055805330595486599282245369417498335166338154355034918606762516218840864025946430263215058754298559556442760758094472103089985541551149533052460096925330801306394840513356282149245212597398016033152114612689160436271261272340490975787499088984299229431178029324563357475203834580338299617852393396390121477945674905634486322922695211121332964090542047100138184885893721715936332655869678031156188071429646482635027484432349878237934262500647713645803749960416065660855476239889100494653946850744259492911997212716694645199887126964127279749639837890155504424919567149126027071499072433625231935009115657121570829022874908102196993186043647826228571913767804494698131048239626981921578596513789938091568658056528467015381357932223546849395797494498745134865327415070579091424953753518533834437365039367673597657985176461881827415744849355498073268475170229278723414273355204543504446322533292733073084811260366317863693506205986362857405311962418185229008840605695999465585453729331185029437586515857386726185846178040160747526547965638731113141083598989616978367687486677957965783326036819627221577299373681996797741311843817115638840886876320942378692754156547135237838503274029566018399107393720339292096857831903209547464242508942824352808652686163477167396830835293274763796282069875682353308859643003811042625878060116331089958468982370676190276701977017941067575396899065969378983967134653023785170805185252773293061145826233566433299315187645188631017235121341629247483202115184550743375149032960675518838637285363300135084517966928369939083929052682001302178748423049377556723406217149186410541816407105778526572190558884144451691556092650717474401507714305559812002903244432620184778578554665091537676768555113660482106814050237354387787924720732805961319466888606021342068000373370524626619574527468984657267623273306890162126817895448372940503910861101669552648712340486687441310722227261164370200270133649531225626287532418704751635489320758388223142201502594201727090518041366460496087780385022567316096413994247081970006706352245076650435018437979563995643611545882529845675880847785155374089882839697151021187125931607094476040758593785567378565174291899885556192028195484792273104087332805562843205024702826402786621842304840289440715917059556887677093683772084378919419803631541590595508983482805947431387808493799481211272492772525813830728360649831496321358579951349667676530453044400318835202462804266483207422241118399652208317105912762411797393337083944585486359313082823662479258267147735449253026651137860006965189476345298154107734053097837738764006361681739619211881685711259558649434016938753073499590602206149143178086480953942922143179857758848913602607271955360368743700993774337389706943044734872614159256273746851509664295990127024098903087523896118217478323144835902343861988919767353636137943375384533812536247683999135356482995955620866865955980210199928622823433791984782229092283147883344637328924330057033816878878658122298870007392472958673729315445450015191211458876837117700536805780393271850620078174534711497832446537921346446006814876196233701749330944050794848574374243382927245848520621312803237457052743887728044773245854609850891979183423187848477834539770252580225907440921262353220447187619771794862586469554661616206702064582825449509111137138152750173031074778526343485493915281173561184186524898340343327092711913266233379472431583305688492798959834574334630380101958918507129346020874022502432290555888419780247482012023108256245615349479524950085562132827801829624384619315001015379623525690311630501375052527897014053726565641218976616989419583511666771149315006132772659161438850517350415513758852519653182985647802338683190063978118066177880806093971330622129946988838398462238364341949362346454723625811151527106813520108796378668985445365985935188810691649588281627540914379090754355453770970373833111916364441520817014747743871256438235346950537621371550493680429044898279845421548842929415258504231943410444364657258262942020875697524782927679829833544342314378887185967658847565813730572586686839530709650753580610855816588586089289038120504773249280107738430497271521750309231898498763636621434835925444015262007254665715069271178818624493600308424973148185843588974795156702612219042361234513538448922748513593481656939526850423397000400132791138846992247006132845097548725538684020456676828398188822381037481423771205824773585175686823823108352621743804517626491988760701793083436760302156978983876501109165159431663155073066775740387392630107090645900108822963321305752506079653425598812767036737655403024191006252677992423094802021763235831473721034502206204293105656861008843156758331439127941640803891022526817419330511094392750478397926340058077431177995482527772874295525315347503659822241981575536757326785681500889143188286270597436006691869948837657686961060191587347460451492095710225093938095720492925906248801055484306822541108778032288020758674236434136616659312487934869735961645968669260546823928497750829427084058396851741320317592766622552833261870099481587776814580227698204477272028114141604229520080691096785240018881171426976652890922056479639109416283632682447450351197316538713255626223227019407968891939047328936859188624086444695127899394084847491931336739878512056707352867381736572431348287550777957539483541439640187345811077260718552401231918169036542316065830884619266268079443526297296646947225698119986292405298527294975959392448350721998832637989880586393731809129005830540081660397926697524671769078725619916989251522224531357697795381685122785323447609693742631394886367175081217877779173024629563797631695881561110391948028926579247915823999367719738566197068944520498979860747261137519123965081468284039862217664779381500190599396573558844316929937071381073711089493010577617816276266692120647694613149788661272770712084481015908759670702043348157228789140783715072098155418484481958447713708759602081145850961502453445772063100555454132640608714295213642612389168702371347377465833845404777185162081399130846286831518124762590028041347599836265280913428134375442455441562897342527048938814491538256822320896492800876800026794780944996230858373757817051090850884431861852247400193698379270432954712936055381507689392201065547329263213039199391213708018029874323292502707695350256528019824491629480963913016873119836229234547679327456955125158190631115406373573847944605572756969220820016731530448285239100894821078855102839704071611528892552047765154523593073858343590358022203295088031651793537552763931849513714338717354279191097424302416436702844690134408861281801011994901608661482040510084881846540708234649185584133576330382550496756267938936095573537503632484347175343314528714389630047350316144919815737454254316492617904224680934048575233676199600644169807182294492828735234359205114784778475753138319434987221354605194353982450369145794603074948823588078321106258372594958897411355115926067560098265222408635845236785440268696860977186223853951168464861764843939412012548208888215060728512059881937666159500164155039243622160884769015247652777269422363730350385445357846602686481374238189505072147913222526101985044165689185904738366089502948600686065931147431684109737270327371924337578883172837388742975610591067122252050587983391301666707358339772897755537896794372933555680007470435906395398598748507129591727764352396666545282108716363119139294716840473915626258249365557029409794625538443749461895197872301608312103994793204866755109356393788184638623606843781236041512732773731674143073299097670396619080165619301571656567263259132949673428177240413538940537887348349380827149768909140315993265020351110815414685577010676279219094811601294217937800821890510421334400797450800281809772948556818989041706217546463546616583914143076798101281915633173686556864627817958796768044684501792609923421217938039547218857983463886500340310991819252693444001666863359099938350423968974804348739737420898223721321050577890347078185015054977034193044663696927440708956156703829865760284273214493757734769687163313764695507311444290213149942921986310640386902012692196583118381802223568585503850498772190098192373040469076734286419234181304859931956027339217949717476287265276224614848648894172156671224293140359557921938086530550193678275248707556825313314411593175921816640188012677015654653274114656558211023597478610541389108447071215220528871902958922484880658837749720068174294162389803938593882570702172093471221704522369745920173560678558218115487747942763831986349529662417947432271212644406301783372554830153240171704511844939504302644366548207307214654062648872262992278189439645345436881982391301770171292154995523797979580971919986179593330758567397947767686877137367088062238826985465384449538638782555921969646888581678078735496961560927498030673282046618224167613161641370733000284030217668702530470668505670074917844501866600534780865959923101319331447853329942643168945867506181472862408869382132523874235749502396229241357608710779526464579052420049245895062124016759502085071891124999466216944438130072000383133627348556987361310795583562035984201007133727747415631825879372653955858703289245144897951403179611096065343675918138246101774986158916953778467224745962597958583771817840825759968489020436672267875575224485062975155950434917525071369618191980638168609011460400606367849846104572122404314962813586732215568653891598299712745101273312234931522319491250613160169783807401584765739803115125787283332173756944312824777715972998362494972679424709714914635262450494766784203105926289340489132751659714712023517237823425100272833514423117430290455010865166058426427084259833680683363573069693539861239873340750845010544579130743407718151977055303000452565134260142538995713607463898781224622905716314273394240820413040681469040368582200167183331104830052968375513809054281242563061553754864663223986738440646304539141814371850429401141322090481570843638182789318609866806756990537043489469338466463082051180586871389413148200271647257639705276984786965356879271072015335185588528881117192499668606632294150785960899996127364449482737298530205744635586132451673106288593259975272862656999662150464013800356699304592225422306589132636233844923305950639201508732664046882996712902076271674590305897283521287618386933559348185600866742849028268294018638909194822778726450263596554531945993062259540927757799936818322091082835550939560102024991311187250590377662919780180895784771179562690421316093761976725189456780463976765871837527261329622893667614566921864382802824819041869084300095661071551384514684578131526714169463524096443268557854007761760076798393428500804507687313201103554423976528853843765514253734141836747441267866252315823273402064921046780907661958792964485513521913795223603900442081099031064087101722980965547169098325069262558562824215038124774911626626153960047391418107393595021272915990134744272882334218774743042552976379129275039610182989742110423413667822092230138815130708333555301547063176581650688690658456074954236534236227787471076014953316502512881145714858616456206380493249410679228314656820117505364481975354561964203037975866688619943828723643229681525710902718142963966787264779543234616073678733426989077814979633222749146226141104813760687054490992701292592334926618183001017407270154553243053134765875972389773761461799581726655233464987065401522003630124909429924718810275615802708541669900316711768361970840104366464439566610781417180704313059370258111507444030400174597385676433005585278766650222981201954243357540073241419002149967221024543312921894947908423960576227143671391232202871023179536624076532884112834668875549310862430444601788074045977720834715307444431208205876678504337770857925140434856477006817931555844601994209564441442741619390493790195652300911813423962593460794698312020825265874469965591776664087505178746889295068640314654383489463709238147596760820752312912480013947607988022418804450971249738763206381195654574280226768130537919080893665979647863854526234986436611663551034075166903671392311479617326646641259682372712300016708177664709921885165635222699710078864466052685150746459739059103557868020448293618180870521405415059580894889761713519630887842684471374030615871040081416198513453993238799548682182876867747836841501933582161268669560937128508273680335013326402026209381698561409729801923441169091703347453244293242127753832515529856506921759492328895062068817054155109371875047893312801099090647957226623578856351443873457388055438151621712639244882405093444765021112805062440604270512895091675470621279612856756679740356616253584596049149949145195894650088655497830097359214981775236650934367483367157020998846081370371750174800969615317682325533561076388856575661415849607921109989786595321116204451309798805034192951008268259754560805220406669822984177209429423828112364170563265496273648663026685295053959133920089183261311469857676283896967162917051879417817133917835432738961724485634239215118415171599509317066301059083487301404573630147096706586464260385995904151340131243616322366151133994614200533668126565434626442477750577105574009912859373725849650592443821255236366783054167468987155523899483850532399592068222984401756225188754142782091948754448413039670442801815579300898964027124340489929445809097269103692693970859510854389706488643437378160799032703181448650219804976310649799312972895358575749525458711925745699552697538496378108880076356251437358554907363573111442570453440673240489063757013535829982301020366280679281166015393192439082922228662987145667312583600803454450356435310935010038397055856758013196102413470344746474590663720673489686825389234277659069391670275031614513010840617329418155736501836492366131637324181248456608183889402953019942875411605878722869154836180919375267469068451837775144114750992676429519508300686372643716067572642134448396487012212258252809263144070165161331191357350636965269517018934002357117016195492280087552335027672834418040719079677291094260846734585238015345082890822826312579059684773808954712920301398689574565709407006479232500128228917889430637354738643579129520146780968335186662448364089882277768498173710253602258352612424583880063985631548817609364378281332881263123042197561359034376453221107007251215592881427754722173128454992007866344272550309856829986365209327096969502555125580756206733750148940755707084791952250556185268282859914063193944086277459568938910259751292146796317978963630864686508475823479737814480320954340297056971844194718603911067742258519178790849215387820391029547361833472533639383281869003655006347320682104172013548157606145399846800521536479685770087641227687728787676380699818621427775150599425772071166751268543712854048820672958710645181002881038301148038390464277171399649012395586680070026897588064423252574905436148758043065819258157922651781451354155815207178861808256956354981549115145708524225662503796578733968179910688879132675509305964466072166818331512288225724485651143912634081459489314270785893753046843292754262791962750301951373795479220632085527715488655944963213084882922365443502747511488461125455652463116271934141083163094155741873023092378599291705987991098668067222525756784674041582185921322171113455437866320670936525878585329716628987684382461231437946799047103491977347854942393676325860368303245406436924006959270437363244972544845332016574398397279220973819609252883915651917411738538503816975297559641847061036436686406992474293482432061321064032400262673000347922238249823202164227678977744386697445267741634100894307907702537312424598723671336173701475632622085146061044391106236387130943712409646438633187524334383638572870880848532946266658641738209266620458153604085155668047733263641276019564317059294367053858221761796483722334939683388805643838429500428883247922270867635356409853049416152371849599650878463610289155936242086834755168128171027831356121229947036331308929523734360295489972471058660426046704320668840404491259513806418592782861214297068605696381749557743480476509085156601910089264162719040009816967557338982393872663886066565785011623648116993864322091549715418562043835238020614315306785246367218069833720185388551437643688000149386935013479015676183091941280540052791833027707401887932968508326142419792965625158336363153199973344825079027049160388477395741306339611219060009607309866846209732540232272392005331521448218740064253906407566881397558295154629794146012684094814321162202632048634572821387610074487343389037411257867552553114021484309356136088506977794911037991308806925172041167487185891439145517163254550051699836175416940845069403301427683751261555510805384019254493843027680567407945228083815904939622985282504025622810722407609746000382013281588040783778650937395227050689753194755980833742460086421225295456467443331352807478161654458717888381994511377670861346028510908342242097629976527015793219285267670557505970931006518325458638581026447236269536014529564534647180265521737204137996807245115875076106655359676809087620906104945347069322236920356165441517251642896814865298219416775091231693228602876511602172641656954743650518718765479609592785522259261913849830138387457868278052105866161648107905385191644630852510212056156169633289953086184277054818717751559308897233724407068716677982247024611658243041887706317491985775939470525421328966067641676679658069819175505092967517393184411311151731192169594796783416528999605318664058368488308093186241370303863083565811565866569140819128028671686521827045687234631023982584558721348798318566148489017566087680366554245373651284640932817817705643726768096964993698072951699907391108537712566764180946043250397973075137868312381469571487641051408940789382812475493985451853822367141013390999057087631001626532309602510360893924063957309486992273165161217349837963668105020011100832519664877276439839357233384406571286764925763315310669428889775813932895364118559929194765929737310604340877033939544339535219472270225859606932215866346227513693126589260386337069549757931083559459205385759478872511668873089137675124077000571697490192612551572572511138411920738875914229019294690988586736102427464065013773105121487683748113559456719164940327883818958643444953028052624688198604026784182098343115878760192480051302167681595501222793072617750059184597255495507568373333031228499439422182069135372104029884347715871670419197035046515553298488880084649344974100301796046776920176747582078824436292324090708397162611015016884632450140953564260717349271270897872544993388188146224086116626646623545968290700921883789487374126396060716095914449735648698405886177566115055792554855254398712263429030735856676190643692903120557784333655318415051758047980672506553967015866088459869447373576219773317283353784695061282219307753252220026853553892257056439618844429962936004626781127362527309418614537832852970090872333771808414406221541809540122694938092716073060405492026636244332008203363448881477767746147308985855647975676535937025292045784509979429716809716009205820164992810234620776352182708249205628301550780496956941047336372816843381691631755674299350031873602123229881218820904480808551763916630847155538543131932277500651776012903011555759123576766181968316681495535332498402199437622274504749729653024327053011406556120664161330061080917726770402065709162456335314799851407713786285958626116421628346203469649047608788448043873449398801683140950900227693264658870284270850051176708631551631672176500622851702031173946298789730519416467215843866123109826298299881518183254305597871788490985983619117326806053059430785272480745840426438974890580206213843826780587896353626478353890534409007310096581966549441755498023606458158460056603546856029631640915456360604872115411786256102575852099314144240304394844190184826486191757821446454692362540464354873883734391488166792753989005241835460731232673527568359965747572888820955879199588387500383473555079002752147201926644684286240497832796288318971777846418105051415206732470125256147886348588959804832532163451719292586717756475680583700419372660346244323335310487784550033849846299303503383991197708888888596663861850774801200197282513039669982917916360488047576689372577000855538954587041694900019595787655897000061722647780629261350808362935108422150044312549897542845814955675816307281427559792348692374217028628555541560957072174955091204760609307237347310082001371556070187141600715888057257374471417665460519137467920092274264572393651465383840191728040264041373073316540994878570953888890944492274198446737012364485822652976569225082859880702060573846808068830707597375100901346365573608512860631939663388883572795940986496523043940178021554160681785489401364628023487165145949393169894252195242973786402755946389381628676647823246144336840691868904244704446623836814815823948857727956981014137372516196730720765300275320470935789981366858852057443309699749713989854768389231212483757967654454280851831161545972147692829348964049357187391545215029006333028921835558775730853562403497243368426860981151544510693260672398013159108555715843361647193486018878629617510950510801432850978000656360736658638059107248876033365426996220821664448535070667317350327482224332155996874744043478719231147913921569740510491197080398220448361442193853986991243906892449898752761371155454510853051660722128805857326564852375489668110535567861340481507268798490472673369158686631231316444475074519392994092766106777170749019720830653272207025096668456053465183202163591773867856880187138805607927030729996036453675666679491972121669557026097327077645965258249229747628306354039006311688818607441260777522972363197730833984312172691351025850988403092498073614669238101069970415218419766981883395859879996962610878690698154585013064553240940917251600459199367543355530362522659613396536361463564909071772135912027845686585132667240000019254600102135138927824102288718678987455317370882858792389690164441688040498890945215625946047647058038021693084694010753296897826882822650508157888871887443358131377917462774033140367436481196381157874594642379495750013773425461003928127660520079527438717996291323774134560980627769482405166405765732240356066665141054201929725681457945637486744430150781249106256922979487030516843174136544572593065376917468934362767211358674882848905815647484132070906197437230525747271198347281951878630951880997065507503568195230242951148041813696037657650093373860537815111757296668211665848434228160409805413615803084647889706112929433437593020428231136220034385187303765172492810172014119515736910722362153306831455069918615023912829051619098702721242248163661064570961965868906570421494261856774211140473836636057827510250423798855048442439794275511738420869832234693913523867025281969549851638344431855119992876628621453491760871973161873862761470633651760411540129369562483732008338140423239156234822131512146123140593866763787880046496552082167642662747848746379133760635780742441213289343075458314186855704259232603785078361880823778371552155900708066435735313188143878150186718914904126255669080180335204009637869689622303146306671594954588495520693146310843209275394009153837688587055285617228266990927453645197854504453859976474102630433431580762543472070367516223381385818586878080150132646877000214547697277574603439647347507278951020840801001038607698882246662607384049135802649487913134878816612809032929387568233924730677973621538987157466718161350692747146379795100051664609700373031069033016533057924654317742514702822332618783548275248263338861379362421968500717173121186634846678458402918566864018090489204736052361301958345949370180072048179154291156457802633518327676803219567364375147947388428337480236579846276599872844418569683013745757009186170374177348362146161182892576448286472119377373426334691339429704931036574542598450057665554120687012729417857442778587941997450280131515709007769790109074660864590319941647809489060007040046370126456357906504071209961113125955172686154972599972159211489493160774846335306585972709758766075658037277155526455906815530735699346789671676733600298429335782561571115871401478141994221150566811716435359299276316719773438815969220677864413337403775784064817102924563973679278654542929415782666631832193690603368061142979904171383566851548296413328827552965535060903216252604291619690130566217044157585901449083264196031235523570707952261566068183560870406392516409436717167137023668312483111466108321643467148327356557049971052611746088716095914942544333425002386837225170352840029563479281390684869869510726154852851242877329006867608744743156433270845307382303657211173317908180990193590379831115395081310431457383704797940885912078748416662008966216145387721048242167094593535039683046580743929798645558927507319920702992214234963102641088633540596370325440642223487409972409617546405767664881335237023413001970778646227313446304301045048818084415978583591509040587995890548449266481624045957744152061775172446909499411129723770927774021427420320876681695754238760223096855622723764477648646604855726391444086412883406712210329008376153611638749648451744955025366327326654077807110238709940739086245360929168901280922163127666629739113774048005320832221064189251059859900714684493896277448898999580180611599110014056033163769444519313492707064817936101695405817481311598585082414004869491211771833100729474030203266882356563603061700325980998462006303189926275834871246258929938214758382262686189253862520959610631083126666589631274917377380840066252142993866377581327455314112090117317587993364927078182448326724103797481570158673995527729530102871883552145601894343683763508392014519380027170942709910995685019013893179538817144168316397446249570068882244545688857096847753263785644081729461048096234867920503256451010307024627268107639100583773900815280271062401066241936257341929744145882944838012487297272384343875476861695506455307240623714051408534797485418081973154322112233056659035285160165805038829825983364480243743885824839825739704473108332328456694820089087874170743557485896853546092597329930145974182900696832250161718885377813896999785305630839099294510598203204760656602450644339009998401102534402588800811764107195936384338368587383655542015046262726183357971200371257028118384534791447824324552784609608453200503939942503460813779069048068967639412613456814831617012624166128728743668386260493658789213025412877743411498086532749543799700824675072663056379775871574493438716985335992666605109557932545056873214588079665350442345702089747677746803482125019142289960794122644969344860740873790415922937601917212908715499457188346969531478316231575429455233390930799240934459136508449498985008230609515402223321285564134078355820423705300968627363139441096237514221023083355606112643229797977544260008103268899047237445689226789435339469220859711543420787728017548271571814642292039885861515081436939248083147891207176076484031193556642451690913357367522251014586666025607072852321272076284583225727451317662611180728473559247016319535239153140338486974422361875121382846634411471753529817363427328430827200415895115676219424796958647877118257119600726481415778968656658485060483506843291013105077480276493121158848933565334322581797532104928602860110241629124064008036950872752611331565825946192794681087486547464293809246318408466848126270411621602627772095571194368442621241185983320048679544938033330404425191632747889271678428046432773150063071802307146221793243356146208819273210181253300953653707334978571936250940356133438635708270119554449992819279752739789831578527723440166893535522247085900806572690157749362294372283226999643257997535160600874826678808317701592338433700550869378101781350878084331197574342008219955575077737692371258750589720523149208503481833681402415208107093749574036225983830925596025238642121776796435825922485062408068946660888668968578532650559899326861937194611588874605911593608220837217993965835320235059923408916998902753005616439887352754342748258095607781054856380622452998771916764926018547636823989526930549272452752597562544269468439370310646369591108710344892581874122961011834623344681389148055588642383888826471335262541442195715648196836947985609078375602339811183783472826135495341499618704235659457048533457342831492624598626350869072018242446529312629139291075483476531905926732980258640902906221164079439757984891683296993085156175071665058383532160792555830590814301953518569010343450303720264213449142729362188517219645464555941518838070761232379188805827131302511999259907863576597558074788761304903968093342411119937158993204971376857082754014635035441275514061189034719386756359127147355762919072608833705218837728642316466741500919996224101471013071061071106276026707985961982593036798676209303288575568895641565784253314161270665454121896449597923371452569167630551594123852087408764296436909972967954973943992372699462078191435464214684877768936716347848329790705185347687873452020805988542854855097173559282392582800493170676987735789481237188257427676287258491056054851793928939118348539995574882078019305311238344515708622181863370362613479501727346725984665316368009506764466386074207031436022716211060684995163200614928934953402890205808324327948350118417837875903862109556357550553239650416530327876863410274696591158452207915013469824917138889424088134277993872783687972709281189228184525128595802656414524819029947409489560451160332777455544342557666076997963685105119433291572532996689406820859385333178517367530630480148335820716659926894507774322793208499290192974745770462078943458728201132867507600899827852439443217189617789416592941796809574287166978118167541704204686184324363696939708508908716885904951194283685654085396194195284711870773398480339998302044417155213373746828289557223389319334075304128827145652528026019114455321664738796013605703696176978498886712430484211263857311996378359096238915234838490757792202904661916327713387149269002542205414946558320272791190658438186914293481001359391918667903052314269240620865594434678843495912234395165161091548785326143943083067322341597835520163068563196698525216226866393420452229314938488498752432791856345356674330117431698442631577042134671787433283161474148297892826667348296858249914110152005688527018841448434541589304293243846332132049581545344083504431665711790404821783270547767802819437577712106877685021056932800023300769136781126295047829292661189673257842055222854112851293048632550005081181937263111119593576091527949899918719609311468849151153194313267671898847789426288973966869464712778543079679728004758683948646706790298689967704068909880726989438686040411596486947083233242248476304658187750343456833584379367393710011416576420561434530669020891092468781700373532176460679951972732189318589527882881914211703036987724452051446674658475918962308135266357829632481718315727401503266839599023280971831142478063689664568241514594916698222118668263012471941056916392090990663393090776969169229066409270218473308094030193144481728529274664612068384328190155395255859334935981089117023922118134065676208555657794234280322949704411215212214506551703030201404662914446000893562361461062117918557857476616739374249207989667005930791532124524683367488369266224082526422950797278276568104192726024016823175977735835254778176288385720656632625414953616937134238271362144223699755988671634271907993627044507615136378664829626948467117312527659075307852013300444607578764739198781727392089730476244046562030060199947383856031740184483863494124908765212605779520106304269398427936541972475819320150139088324696595484201017904209729903138777676033545346301760997960022438329580283200099114204341374347645404446418587637072046148915612520938037190885386061291566561186562161759872739172421909751601377338876968153058038789447310875466324886609489017802186205931123937861154878592151356220360293487586962605488423042677442418384344406058769323357362953868674450472674942152368217992345986060269426889251139410279629179469027757865481414638720092374114933380127631482797794476615771413394590303101422758535216022035443857362896877105043580768315395858166315567953229008637839765979116021090822971666960118786048808927694228362652513084875180348677005263079801064457949685111077953911619157616544487470957968369433109789964723201101314385356365110750424202229385742275672455695956941860933677216855200440449394581978403692849588650235858527701231414139835887773471862426058198991688286883822440109438889556758475675177366506133769661838117031247537497501106127669383313405658620564920695690145395459773855472548835852641125654514749181501305240158589770742583157719689179041199145433292769960551606001031786391381925416042874894991216413026876840270341493163242234104895942988578311446944049660040652913066747995457117599681563490199887209637343944800045977143513211624869619023027210383777963108509480357845772764109675909233717084985854778855486876292342934744032033531996054723801973162487271658412610769935789376893381730191108094179842910152151056041890385285097890643958109682098321791106686687773841513707585957427838018473223856970407666214772389651895245927573875829655188027799646148853754696549879575314916224187330483319456965478803021111266025377290972119739351112524223061165595530156987934579101064112851260975245516929331152918702450645756854151320722779221945112162222867517704078405752835959603570295517891671006871025449624493525745501588279272823266389356367729224486969412131019849233873559316099255975246195796567565983833291709875703847717942461160444354499895766112811067437851304301269012275594315044429649143904543995743546967211607574903821381774610985541199988418101199965192265572312971710767520601587525501304340236814827716170100037479106209589554413135739159294965415953695611145301048386457418896824161866066451202888326571191802504409021690034461910458555574179359739397063973435978369872864264933915511897410497839302431748901930957428252623813944216289219054934547588599750458401481871764385282011882948124995326121883323608283626669608988887798683305123244540090611304120659738881674089758157325059473195828654404508166199671826118884615349177569873574789420499051700290598396141063452164969964444493439360694632768886104283122231125271623531900911956444390493700787361794535881759747319896566133405755360895671327861658816465265430238393633217232883086703792297008827168401060823554431232608100827384321111058057355762935382201916048605170778593661268338896757674200649573194876847348690775760253247613978169900601498074862624436167857310184568495808412209402131783762177465826881104905506094720609952293529544426133672889686293064612606822187299449548888867250044286224485819617019437055478332362299971247258421863771079251529198850520627978461519122047604351286133157387413706767673953583277399794337218034090780711645956343229402080865094999597351316909639325834986731259731836120459559748747269400265867717255485794510058730594041569689845432268043892886181567804747479901967140520816539563856149874079280087942422546517462950478368594424032749159480681265787851376819089928151617838753770477684726607530154441565130014858464120658272916230216777271262745179297573405425949030500420994445717513871600457121838002532001007761881472999775965142114080413796715274486257962908283193708895967269505433959284603721555733605928064484008028681785126496524213782654876434332405371801340544680080918679437731261874481087035549148214634955295187144803995662725614396216636194046832413059188822347435207866376123906602872005496510651793399054922288314602604595870418719805681595519025788589254281936730953779854263565193279159897665076246788615171514838240036252240497551934285508761814867217294521367148365399040473645999473426247683678149598612008994084597155750540539663029802878277110302146102610797516980085109442109119132563992662773773567312109712697424371279380629375116278109907719639877470307300819442150147614150925217167825838707366453868582873315611452602557256031975721964006348369916727291056618079069681002234649571845869158666881863538786653057894441269270025276132563258415864228516193194839454857848032431847117650930079759657926929674119580806001431677127122605971728384235554584301282852495150704870008191042883662182964409148081694145387857881052456986478158565107878970445650122077953105395600476423646026184565578719203799133183535856324337874378642705644266279689105702090388111517920766326670026068539764854352896264992842563945073220567735929101386116054876218509566245689638640720199210714732286927883542404149020630659126002593409121471959320757100547505406546530109194162060151731040121704885955647358725878005907250701754992866353480836629848146646689789498849219339549551756157986709140364890733433052507497310546252358195753608290744412685866037483724395030453321441455102519822134583275747226157755390225945005198436739958112418647065428389150703668445811793547348925275210878676051011247038891616016067772891827857938463058958396711985316052416255113612377362805130554274564408134481004504072222819078764443047277475189827633982985024453003929335952153532789700194433526448594071688355645890565286360189729057723358186643562597706612141229683188930491612678942638913879507700833770114702346819078350538165388348590903273602896279504790733931910062463782991515769540089689700586859548398891935876327089029274843381511098495424450363209427917973279422899896318331943864137218739696698128956678142919240522912918346594137041778498104530753156806850615371092335118237148374170017236703543502893652663254833561810293080730343035614595630345251001904283919372622439051594590913137409104008958515243260747087031394319493037611121153625983322750290864499010884116708725711710672267581975948498001901299192916572055308427694154758736769506047380723363347545776545927803550045853178262600798346491372135855255895829752140207087576775037277411953706263029204031508895765409664522914518468736874874314986063705492783406559215261980980656122653462658075900663359182878942284424309814437345574523820099168679222706944601618299033853669629526402767582565070922154713219934337921205103190097626842934298686150018123271259220592533528995786456874491167750106627972662052016219792952894451921538555165450638818640472952187495572024145030615118362912524503836638108281508645191549184954922366107246258028786270726031545002181516222842240277295595462661852733313833471015525651639847798715516153279821255786021649624162388115062289271780776627087991124967944600512409691666703578169349646613238435626544860652227312608156715090312277927554994121549327027032779893526331757676292155890300225682074347635510547572674931445559022957100349750096649196198919394296977350081319210474488254614713925683208966828137233215866362945835632153738741393933943033607049138938262927293354050296432507467001170067580215449986126347074594094621553088746353323218949964738912273760210492136444359132390218575682061019030723038570647195709251258605596052901149722313472558721411908473340052774052668953244000007188693132342167741624779492512023547339575548371961149119706238549131553748378448203436023265532315639139666023763807370389379621589810775576021747880517276989057055724559909853400609931572841477578886069002729266585211559076468574122794246262897223348820165401975571404515034263308006555026748750749180563404635705598397250486561700309051588887138573778824831077659445298255962820221110488860019477731019826416080630137144225161922945921729559024233289608887937255340796524803251435983199265174751792583596765744181449313033302904419517643567739356012712247437378780051810941193549299368861513726574310144886785482806364686312113269967052005154583454068797567752939780935968959064351538827028852758609554024269824142482469107926109985082936851397762199493860226666264620111382351221354047055724000911274992441422224428709083080849814906043254059771262467363124797165858783296525640755346593011051851653535296439905927833522126208338086713573353022585789118015569991977239573334861073591954891510930656564878625753057012568095925939210478719075713852179842716315439339634065575600899026368546317280016692170615048613973904181580491761778935315945760995876165646717407651419852486524817696162095043863188197063142517464585342909864435312129900851894187973213819789249236595661330889897505438356702333934628350589340719527699314973753300506455383464238452665548334780593102278518708522128804909692539520166510656042580297085048555728383773773678488483634621111081374052044803098646007758875782968666148570132092381591002735608959541913221827676379814135350611086103173290261619699019339372308813991065593367038164903548874813032742402271133085551456268658125924638255976191509663454680487622150589808693609739813224955485971284308615781391149650093523702410411613568607260751758934958235622018085913175583976178740375362451823992087928159581480542626583281234809645421470516863845137913316903700345998341328609018279760059915543896983042924063029338129697664276259524709802859673824460263962951822831555060916289107478169989407387430544117003786594883356562146147022058265773085563060426672712376673214253289049639095731903126605366046127266146703558493897838157868898477789744213886329954226447061388106042019918920702820243598383860581739088578903881987391319978752625055692828833649230231793150855146877305524656093180332536870813653989456099686611537610221526934580824168757581534524133625491545422975744292380644765495736818938716230230734512727120933382474828673349072801846698365183749259837005035527799516997040159556720956102553690307523209933825090569594307247955547483133532658994973707809784609822442719288597220352375957264496745744595487224137841041029733033769200116784089493389816429277374663368912445444816951550253987509606685192244107931733982888694802599359898719068082280813152573079934709523506762638501053651038523037861346204640265894725704169265519755892186589813440029495998149479536909201585510455121363445869584821552170837051059338800655182698738881314162909738445428192863300373602288723268137666922513738374825466048380996146900295041653756106263411884450771474601279627517384933484418689550571975245083616507359557088079962933636430307238556352466849090668610525367404513727841192874289086655327582639918880547395365468278256835593433935344088004660434609911974789247809844012105426867175336662030161505296584530042885423182711365565823669217499346309649024873198138602227150906119391671657258350864264769235206885887273534635130459975775287440988579873235847933376528965036061883960565718698374337241415363572234993667010912737007225312812260004803567690609901735017617002969213403432443024378841169131951042930215133985358169358042218281049519043192109305595324469391648897936747151037528962233057456358981796894332050905383277654517750549477092336888914808953203517300140087033854185385421591904537789992563150043278168588725118828762573065033850294252087218208599636446864528994350001343031389886000775613867920983939450190262851880850200654264911948499275772584851911944989458790951001611496362135146566736820986588217091226550036155546550130580306723305553139592895636193562936429928900149663797895263275570028967900237575985667959122916766465473125811599239972185474632208528887186884212011500871537347733772504515107008349815646794886403451669349429141634829687699956638055937964902078155745631893832522624559374305117201956099504187551198621901589993189888528154160578394296825097393872628273212082337399428047495153159585701377334404380090632241384317956004077516399791279968441782989481853543224824617877447695603910440338783849847290378029423539945288242634708020104556191702649694375407493306483851809719183363260344893967959759223679574591810966752846760485079022229306823463643484513771040582692895507438208263471403284010397763448252138012555395894866159507613403161934833716216736082095154283614020024071576933071595037452542611029237651344590514503147657417122452240757917687984693249647072239809821546573181474160367600128050568501063502008216200001311550911872016697341785939876876248193812826284285228234167948920820568894195711747320506571422342934513366783710788317319336403821086930151247234741230944723034234031269190069754153837878265303295597318696477004808862580008857602643128170462615425371644221362887516941846098054166212337456821800675797174276105777503124306566480179873862677633571890320899184388413946085401826447117126696661558298442102203290351835754282344085099523588159352960191282054921616559299660759594163686633804127677365515907946761880438259628842937732779067884277101621087495139472177642040565865352014425582603489381152206707587942209178321790380591729132996742828447580329546164685039222840943078968735687898002663280063948791336378760459896737777031989752272189800755535301631531046201325211136566447765679513565631725206410946114492277348888350530195417644845412069893296689578398479427003233952953958561710393705093623129286576852168339913148110264855902563217574016071127144149014824229043288854500793911105021745842782100736665412700583431663201236895130430151848189088044735051485559396345190624310475971139135077566992106290352643667261455067557129470385525450812041001776916278893802350253951318835535419838695592364756764367648020268503514349762594101258728768903363507287179475387745053215460909218882031218276187812680410550155599495310946021835670160054622603941014486047327517523709387753998259690839518340354351958104297060700200952549604764640674507921703745016115633059501202265520520079457647787057884869207143334531157166297017925783192170893782799465704226398827901485078118498417308106235719083158262854435431379884084295843833745606916752448891313147137781691007394254219958535465002545314985017654356603322270420545794171120909037493231267408426704224235214589576241080719195777597776264097615752364350866443624986802354429071203224319112972119068944401071850883920898474691803031890888531387188715463984369165156618370825072601419596609969335516489337845444632510894814115167788560538944746581710674200665557061136487378022588795240297751473006607831578562678815099858186764770369968115456636321845323734505533926380892354533532250670449491770574973817962678342599894425661191854171992426134967566827790783403271926795374094109242476882847146201370781648106074371599499993098335645528647093972481316884589205333813332504121833115588857151358485144041032082890630607945096576897392997399130580279753271957621984028193038060024129116681248241377067546959402378424091843614506684653762886101292143233686655798371516896646471562993859308312525348715907120442267090629776160757806377815749057846367871307806884985067349292384116309770832560857373752266259124581799688709995083168044494383025118163578299499677710444810758680581805722112334161570187441836321986414306209230658053692389710998261639835338303206023305164411029249582601173203829225065280612841771989132405549406250703169346032377349791754171396826847924751773565270277984839649074723381298837533542822097890613529074957810103914171541912626808258922274757966921145986517947848748570175778648521928310821458086907085381654419537088427219997075435994074708059202115255209751601834686737562248467214060145143815012164608480514355469951304556498420726359448216165799532140587515956818154587245935515400684786429305771458559873015198209773150284795679899239733437583665286432885450195395784651877413305006508876803525345156613582257309506549261066203722443325168670640897905938438684293150580339368322217421303239459847727723109684252940764092142783677936615421182340673923599381504928462615468073971322220053129168620928866066890999375656626778912719742079225866310184961378348707499566860784207510103592695634083543068251370061566895371862207665246171924525673358804771790279788537939273346309345655540024918964499810962591849705393315386960691294527948510220398275839645734383772687562577962382537834756860038124177461227050024289884916516254081536723801346640648230171078400937311250640560121616250120487966510828010668087492910578949119767119673621122638241877419476557450728841882984208815103320635987221770548639575926514026270583319786267035229836454417047845663241590035778654076199767885929793070426251364140442713848564136383665299912909095075185006626869336910072643020835503412492629959908509542054340897663677610778525255589258748681221840543497155402982653124796520763803273644881059138007511121313184900321500259968926471484842514778736234518957145641719388184861306857063890190349961244176557567162279211753087655066375449843566922029364685887138488478878079218422763191602104385987392866982872605781987309879764950574242478557951042875375324233732022835344715970631152066983488664267850409438422084734424116480390812950912121606350417887871231420938143483917187440801364176595509444541162258832295640410388292044048056781598517137448931797199167536413467832406115154921172799055984769126826298524205459672756619140634594579771716050115618914116300647955696389829472641505461930702648558065929411664056330005160517390206245265367749082576765383010820410893575657339420783447097279959394803082740887608263931779592014924488976471262813859870546404423219699248120143844112460662443714319632432092852482344490941005396946181284603843444512372363195573156392589762119090978999321309801309332061523702202942713532286128015047524994398435239036463938181955566170619972082991783511899656747782786212745755640591118337361224348648486449635130635873326120282964261898647173508874813294040458764976854444430066384325503203919332969005527644645396931093913703403113031604840985556480887164295670401497100493020474175247122401993443654692231930735397224237705735618168303637793442739803372841427660657512470955316217786060961780730441535590255859461821384955281408614154760977622546477092157481794177073055402179127420572996733878656180172723083669205483092191777669662080768545638884369978386726342256031164056412807352566593876440794535883336898591258838647103048097093660383012307485333895580916769454786481542869788960583186764924109660453549930946348495928171990902205412321149431831540144771484592121114632170847093091045856969202462157615278810380578357128019853037359947725694385856700687019097371297731550903662447813168331765454855259950553164635829449431789682970377903900470814213353776840729522063122532052044961871985519553928539741115263856938028752000981328594195516737438474481445707083465357511917622583735866022381155893625667701207260904039213606815917376347538609926056209610138222138084967939543203990423135543852655685445681441838081787493006756115418587991061564898853015630383592814365720587395747125098440267090632504040088750062694802901100450143334551758874764202245663606953691010006772518060171150915751704287104668346920009870819572738882695031347118006484560689483615275844124989983151162509189217252734242379013908666947251152783126933469398088901236606169375055957354337089645955866464993576529079047682051047859140291151162223891775783996609885400927462378010304642121232313396393835356870387212645582335486457734015855065268285606651057219517630194247220231416853674266945380945690486295711747986551405060885990347448280519742973618472551898008789880283626547048165978765174590601669601919570529332078816821778949971260950476078120373678263028819172325867269164873610524038392309165003602075194086328196351489560818847274289411736250175965690941721645527997936739718860745357102020395906140812309351403858719963451777024300400738642659994552827356659048707541623373563719097381806462286450033587553466282459370957955140867975747079686133409754440773955706913100631996683527038599456518370346883175418732528130147771076558656690758253451392047328274603136178652260292961038696230447162518552511387667996217359978425718566690844988787884839338888635495893107849744506166276727759676830000917712216819877617841603188228592169904266112945451655869305577031580666797581595768720364350211308051767594994245851127062957466561186415625658628605401605005374463595239781844130086786859742298780966092806193888831785828387516565875815854282332663395517071559995112093287979629744845380787513270098783854091403734545099052983456972219132474853359117208377085376937588371521770429534109448361487862009542667771803117802473463191396441480545915440670467426180319162700515552491170731947865121612890906834482333982905399066005000460090195142307536779564973003347114466297538780388137217553369509209305524427760757324552854377421760498782362968711629832831281971688463426182352091308796387507547288422043005360924990356260413105925376376733511115322554265548087619830582694026129762572559304046223349005156833432555544385028935724709817277848853498725665214995720167363804953082520234038804447010923891115704536475530492034592579756816957600941020312063475631289093573957671820219063647691455251535163968587392319823364648362743185659194529734333908457510303599709723259044772118703795354838266035423728411010616241436072429202809967709063076971421552602120445491673709409186320764084013758620093418253482808523593826680042912984967928351248541812367343224857671641039523494287842515054768688798820745576179408059169882618106382431785174346204019909588637780854926335075094305976110606157584578137756194955578183530132401761840514770692369543904391460211683705126476168367434275828104789060670364737918148666133618996753339233982564765487688273225781096653296317853902637963373800266441876258131427147306719084974460240498422130676092304908190800233111764915727956148716946748257719455575928621582309519738984587078274316293855546089008191881974063832583427432909153094176507566443793405729829413169533258013407071870041605777534033623493472483962199010485669344583724927275216671367845098563852308920709898087303856583809171110340351024192864375647023520540045508722002280573069248359280378049766608344581400179639387955088984877765543348577129128508323387000894274181024397168728137244363496817594098227600689406430693663160145090075555237634514081047429215635524693189576575746403274671232516652655479534204411153362384757952425721883004133711866159815851937549795848440874779011684008769386947673561901815872697776138122651886079120835143354685893454814350147888404195011773097043760226712673691199713348263241135926530272428150000818968712441742769844768143066181227208855917938817033606923694329288849337915133871442336406584659037824092836854592663126742574361367438882740984595543327193082048423121914237882613680300131018850260025667305409241254185124355507250529328822202841416720579851540654294153776370406076490496211038329434747570241854975774666051099017306943045072337954645508461754306675523069207877002337016612667923010725569836979956487147676740525037697455787238845372427739330411569309796199137884575458072822655752193154051118118955786579151666190281139458914901626124259630114306979096470149409501777393220467980685633797868560596005961946792519013725164121671844547083724117457604413037733080049118681853574960503071601213079375940134496118318282650688147442795862081144003495720491266542178612216685585659151607747575924249688561945978837473768392335526745944268753952533197450225806123499403708506594913556174742387835436384334396230748763125775090130257545900739382506589142367711038460815005270192163019193391122211314425350356793884661942642890083709790494885940532179687087720854942626664088904717480592399669675576064637567606757813879970777318283039754407159945823296981039037381057014608669326823935345839549433264119075738785885202932200012869688860595957603639638767263542026504771912984487774775664034002208431094462380461972068791949648772908354492349241227351666664863184216476169223554152072232460441557812516398812387374784483597331894058031715914068313049729475448464771875315233448073332688823189658768740808064868954211675848012205326526728134409967953466739092114321230441560858907495580018827269297147914056941438621918961798046612548838111345333995304341077909116013381215493743047298781595752666491934272366475452808046059857990154759603650025460665276879389524630739735792928095282381641877549706658314501122354149079946380819524042417079536273653364521382776970493367211795731268985012865618753648989923382270742372911211480926087851687779767200617957986925695692677022851103073039292469895180737193556783609723502481732865231536548427261102049035154046677838205210491657967711266343569447401576852058982713467761745099616096648567394349994644972613489869191560217250034884099727566966103647487361182026918899418891616819958520887757515630578999348842441523895274628842047100686421118977430019467040662326435496949368451391035711058548741245721474714038787055316402610595893441910421346352608481615214093577579629349522000550126703547091189229637374261300803924317490009691174518707785452631706013146227024312698859649486600407815728324654960866528450243054563858324086085655473373432084842371074139816400372904507146335700418962166907535506923061047240913927931160225762088756383506417540249947370187646433297159375773157229215180768645923284995079051567237865839099596720104189598551943251232996493761532017364014475729807019222049126842344513703177180211812091491736155420420802561214791155888399182071420227146724391017056782441361517950751374590682650389225913402378870484233593378615253559419383893659451451152715043550777265711061918637229760606431898671689914786749633643694761736392562623707962041582801734192150725846552990185267004454601700142551760086389145787324356548214404852199548092429444500450594064025037474440761968625557836591430810274834204113603782555760558572795551626164971286103435989390210149666400085628687952956978474033369194682381808734428900622050174424202560703141703706958047657674879897976099698920916798153422556632553610453284734198909367232819312466046406751083999654419400610496166541836805279250297363795538131396356364675846892661569280076094017746752108897032166248296080786340921911282778045721380088251507141868086236298290659022399540715569235373828857418560662731567500402172496193384166728358591933717053030985668958655738992875014541912511854904166938548040165919105008348892222920493305603914031365997329640749947913748908903497490269319504594085586200133960340222907098859995214247367626512197629263202599702245045452255992696619694949866672709489432218762990350397491279933390451325426202212837772310316488905314176619623277885041142581794444568376263604309732913724147936728958437044286745725580336294709081690714024991447558215593566351446871024840359682472443400053027193356049489780657120512767427932687846437384061863310075636324466159637416387627481494858485982155193223452801790329597138319381774124937267503448027213143043062146687926627431709940659684821688100393335567183009699520385729231765028884318177860129998809727009329074139198977222217450930439950004939336972574069896466287770422611726274445750792307316990747162968113568356183992544828452324093679411019091863977322653714836052997736255232335399462418312662031857652337322445529241375289950558348237407805612543436210637631023649769996780165482012580053368758989526657888679761382015237924923836970854543796051285606322960471855755158719240725785405687308701436171372533154431227545202008791470046225236670521667857329332100014564721840337370053667785408634614266301825536380765007287238073855267205694074190061110663910796558617707941820545742300835152927692939420821727660617884974962766846661462512424157814130457126249371776169011434601847227971960644422963832562489101187008343272395180202709793193366726212726814397634890250455598881979993648753046734180805510174934496262652908978085860608842592579292263621759649914211757739562716456701227152924399156608484153291103305953716541571906865540008740007041519247841647004093965080544047176712542500619934364332600659491216690319268493754784061897669210130766166266985262383227530620738091921933137429141588516999445279645307391589519366606992145235679637089882284379275181245055848333276298599120994102235852284012947949821260754020349631831708512929080806558896216725108599433953500683261302495430887913763332089454356165951350913301447485868052746431269821173271107495904803745629369670196214813344050529627432453526130639406680996831911167602390607063281287310901632009815649117870808711840779879560441065537275630417580150239128398396986272746960839521265995689761829662678443071058831144375466759423053214358104774425035384648399565205117008586721359769990900572485920633484515528093918117885850893285776909787158051613882211330656970811559801321026152886354355526881752622495638861912657044526793004290572060805253548229567234022641087775348422015161290451257501081566709051296079641335170278585262344586278603118638812788553748417132815672961864672902821195220610969842721316245663121786662188788989543684783507145865834364758095426759684006981929436364528866792264326672419124488631036287163632565276625351040661118818861841808486369307618176272828882795747381365373228150985294820249405901489211189509475334873849155441144747732928396688773665709317467768520663479716466041423978632057923120575440242249041000292325246290521933206659773171014967016306035387131648814909422488476536943183194172773830561481406978538247550019762718282079606846066038548405310097721927528875860650056498198196264180528678411002312219510917128963115319703158169556001765810625173002751826368195697075232995967050921361294984155231654543109125193024732403769676987535183812031661903872571891810935317888602525885097917589619278881284376403288041091379720809394008633641953684969488937975498649144475433215915882965588540188348639685812522226805860059355863352306495990848660960621986508476553654554817428193872981989858716095888827118458823366931572643673796267929566668135228703316164738532133244963656665912150086149714389418394449691633598058450256536314750737765402744719407835716896579443036708040475348210299092263029423685667163509885338135928977219152535537558600986232626586015568411114760727860050270623893582450266176950969313452185648342546065537554919926570200653731259698396909502732015652393826501923762877846875288630166257869502867463773919053431732396648037420407286163279514132169428158990856606363986513821347919650078105977994257523846899274823499806331641486990164482263415177417166429470036955532994873426439552588846015879473853118981291507881183876151704448682862084347239606776370417300426163434935319616531242486065200386511677568515522959415635062923538094007597758290830281701123751871950272917935073191263733474357350739270469899127323739596438592272252450418074886123832384676134268051994581040406806124297930285576806579686653235806652788021378117727268384550614080796749684875970057388311479761482358509374518418931760901984520326692312358656824229444191010986611351535241195279992575692553901832330462163201415718144317846148451050217472071575629184138368779264167674499915572009618069346666995448446004192133278526366894499052712748650168018303947404097527503077080101006163869740709239939129319871292120553484917188391808354663217579523993806709998370335837744207514676172900872248260416331309762895566844967386744237430371268375306808214586190505210073064824893151682809925863761288565783109634928451046219207547038144004324512416469433302072756276425568535796829306381851827389622392455971133405830564429239067075930723879711288699432432028466031642927769106831896065074148377850485425100644047433090866209893340538881259301319280173907374222528585241468273572203580877162215277952647165899216979938634478830148628498309148268320405156920272330209511475378827827527540533509565950328601878999131449414409014308894165849888395325451333298812162257197781104459618244047721607571287068270444441796170543790518145114340108713862503929897550054754090029593335789672492958104803412212548099381228418524591616546408402786890152276663674502652997613556048272283657020707379291551882807400368761891346808703873770573555197295119882924636353321743870986318270114757208213526283326946340508497188121999876942595983620308178532460800965071274546376591557147567353111853007015869059326392196334867766476498486033242259392931827777379025610290711146999153386518305359612629415280845658014438641334354230659120627868681929785107709364418878226341636076513761537143127698877154203801824254163395357642871923064571296168082364331914375842984211144474941818285485405065109068594643123748561780453814766720934068737121019063933570673363319154934637832428514107900046257606683307115646598758552042141035015590306120748939868175587130835741018872352599753187085783607460591258505781512779158905450518014049781726780924646252247092454582322952457999303127846619198199387717497132969535365549002106411075479377406458783780665879749318159119961269264145868784270688056421249870898858523511469442972748464011454839454363256776649507671824948045556713451258381930128424353544292360818206580737150400598434612574478864110074586185997832323857233705610766562949701521175069730530837611375374260332821145138027241092114162597203619406199711487834128509612223617983111379103951495943624869583881925645003034527150403414875079449511405769703741576945025544973937482126971575490255852489470517375644536510111244140781236918690221430091676621076745775526751322162168249802727634548143262107162717822995290246374629655114763534744060268592223761052308504175726975541934433138075840597658670794965157967099913448433362531585567675392282313370339873219502594758897339228099051596299370180767189356455330431303408619227260254423836686885471341734132560361531167961327316357058364323472808601728550015189223140597306915752102361380208048315332358633154894071997666568039845310782741389130215370048431529264088487134159218843614365090725768055053762709709882533384342026038887563864275993117108271123528105343768198434263873024280145426074529001163309706659765445703591881709096262180988747995522225294289815398735230680065305735113761121708837182762602413129121688087899668808163852069027569348548795922865300611731319827958241515435736556991947542248015962600305212675901292597676688539570897658011838823335989307505680053320155114591305665373343770110490478370847585391989392697218215285513069009681212519904334549935320736896930429530715022820517416362254264988199168748052676195515269655757115256174148093471586637066810021009492349940800031405834523494272296322607963819931378143866509751853986127062831835947079718914530217019245086406110728757912453027088301017193909126288953638839718326073909585171554129731064517253502719263798397510381281507611712369402843640399439324390828841020103263850045091957687810233135687598130791436262631088842989853424196063342853005361989409598531624909669641200319640280534352995583556224543514846194132186670796777028748801561987616285917824750048071802678749801556208085153505072749166568885882631299465095168547786913467584641609474188876537844747629979759852983736437543807739240108445148692576041609210924938988468906134122154114702123974033614536048585840881222439788728955861024666842006570004413347078434519228609410176078512202147375663361717015682672084955227638109155338764325842270781753313290015365583371282538974855860547727797769216526702297897027278103181961425637326281872461815312023579274764170687156042864457929625842987373708844183416975590265040164084706446178599038009102224748206593561045832543948380445248290373807648638940626756037992847078055524830644857087331226589670629594545460377556165673538547283766225682225297569447161818333120434646446771184952598052227293289672330448039764647852186592244550805181621318923416311961860365741528559060313877054052223002639716294251938739777311084805791095679338787569709179820376585250096705817945695691805307176930280434870284981809835390957981781348601826624962816102511186943353985092616914123583961224370717522700359528330301531758913246254467874289631539709313069221776014917347890247512129453264006290141421915712415028683744623331583228989330341672770389739416735366442541337145434830734827851986210574030101463378792143619332078777263166155713659950394228958118490939928794580771773199773858396291180681058183969616718519503333296646418597987619861115014177776280711592777426014657643157933828614361605316107045455517672614989411568616295529775401720056372949164472131310997551957941255198974661012995288747214907203109176805386101060621957571067168659105494997090998508030928660231460424480590204610982249380388925619359116187091721052863724346508088195401755635202408167102262070390074885694515177005883779956495593933676360796190006170565010944417694068210565376495751194755436050078478529280574046827546390327156908880191859706871364692012581813041571155962271359014519776688856786438543552930511476417382594730288903712166026941858790865809642211979858474754456258453728414418100056573013484830707043779981420009450193425239237181505081261731770551057311698161272702020584204028591896611193370795571645169657125439030994065948240881815500042575596337109371441064895862530479307423594311916493033913215249779826798705305449276579597776799609917098309866362566968073077750572379881092109020722444459299518742892243090174786542149543604425346623165663406543147950716474522230344806026576645299426941225924334584846343348577251631329985918507873586881535980502035163583941060134431854990503468495108350607221911184021446738895080180743589666539066351369003839711937516516590489657624137020286755989666792116330144975133257607066872711222252562206775933275923797248875259783387749824615529524776724579162559325238661121935481237487879194568733580712992571150827142807516245618561847683868502463802061265072635482424209727430256148448812969831575609318968852894020927362987906354011050981854626067025175469976650513597237297450616297034566767840455813125850912880772049210095630939998638504222287035295514795395316360065400647715770562988240171666650808108641864402521082470437349353405644837628588907257920106494068705947232282314390357949548615637709175942573907045365487842790908781831295770255320542385016309833056042329385901345597834901135407637333298419480823166202215621757389422529579997472334182473133439653275734421316018532687114150008815082959621754469404580552143601629339981871171862840398736468940234790948543312367087004236445596739389447263346032798235810549371787134066865018977322359736266256773131817970222939063020673169112407975198165329590976252237490149958013060099669793563244106087348388577643152768841126850054114655994376585494908224516868929326792491697864949503778316617254933274470656071592351617221965964480632695283769275189575000731940115507044608052312212631395881909404864962178561484963542181503114166853767515778687922913080634244992271349546157611722608282237550538754155943555871848562214486903759123195248826171159790116927269095462237846779997329182675391764344132671720048712262311442515355849703139165035433842023144239799420060044730685044523842113894544201166177643396793876710023793395424276567280195473974849008103274555908078326126291243990737511822992766384185489412806403862285821896822437791320203007628999023199907604854321369619071934680564423504410598330135554858552852413786407076928282205400639825575428784734909261362053130136755638902263458227176245637600774974349512584206724942073890718294702434154158492169714052350756944923487150491335920148177196997004881241121533150603516705278193255452308169714538284009919415746743753529860193151577166506945356918869274032367693055955687572765101746098194387232562008624407211146049581069387202892444770070827768240059582129307264507822749449516131602925218491234921242661850768685131553702500415251719110023682763709540118077966857165545578779866592849512626152682790292153244095914976569405363309238608244451290167290461665076236236637965570531624716793528714118585231143410829369553023190136830509089187116161877481754192118135221384318550354077717575912484984531056672683155533610364044399670551913567036775717520289152701722203541577408573481552603135219671205315373371522418478628072639191728187694969155575979700366673492629566200499814676110840374520788203843179725978572052067040430676468681804957651958243028556888551551101778847200704186470827221686665666834283374429836846033036276427498782534245250555585069258380671983676431244269568861615000411360389143875676872637496529116251210658139479174388131075230126348439140210060147128301621699443826909546703637891593697065594372185693279119251670288546249934763496801926108582505450726139011531739417801842517528816827825078871719725259203645854076186268359061792458636918841215841794452392946535714175419088231296347401868131028892864139405940857252598400078228833601329111175404811365759123983308320544715257107412412783017655615611360090229905236387316776242374649722325829553647264000457272282742318468098214194946098405982004674376515656209808591387130512510183224591076052171689037947309216999019533621908803857574654750213104814785645629209246310736165589007213615081920662883414882903486664466080751314385345050400693139352717944454609455409844083525951694065971721998129850825765386128940153770741584560571090812642582935814364297806157385350322055251490889813383578900756853363602556885440471216314189030365852977627826460975275603285055576574325090634127772044251421397035160483077365499310333045408926327602389905887441899520244022693968755729983593030955492700358270665170633807390238671082182121784704870290383707504445983533506835833119630562936646053474086079660900457119353597905333385326969028849191240350041324750430771285846862984578878964506339420419263216230932499640785270745855133288879344642424730888020458689031613428796464404112113236654829437627303605165846520053079236543949492684917265810811290734751168232188981563109706094803405237662677737906459521510777625516965915512270821582846549703005257318000859182875389250910178372821798108545097698552538219682569200288770365117859155979817575574729783807364287882313299838957182445926085456340760802268292466677682292732768869852782805898101731117341718145305624405476128994257303252729702054434266169004705505358239553634162626442925994337373372456351186360739084155230277326112975304587583511590351511603011274743867508197494822303489171816318945496026589247252394378233484830380179695991030111242769868808765381683609607314309286405921503635003060755327283296036210602694818975814216090876498765857474449169708927819590180413926631436709449614645389416314192641329006027611227533646839653367965932009274862818961379138404578225987849344687381095065866681216613354739767127429698506339189655801522270660723572743155577026186351971828480918766369258612875298154247921489255389871167917305052909406497947414052575003863338449906969338192009355096004619226258740744631757668160544648391977905338069236952118124885398257403763518304091837789914336698831785196193490703173241810059964622172256829618958693318664527733666971373106739614697012975946058416028198704253719397623620729689096744847775701086421989501588058237573313761583192318464232336402265244677299607063546817936630887921839616588149563652853217103104234928537534648624235182379787502323969742893651542674593430767318025525425428356073198929634025302791239102972326824297809492623986234810966126369101465249185826364663800109915032567628849941094516822812881657352936238804493358408060562178768708010010239447586314448844985812162160138635973577151961555253416286502180050437347595658501735762552444655410850924457842988082338342726450237891668549268672260370850026597911824806693380306886608201418031256595122621018157431088780617607010256367170755526722960137123543815161895603804326865751991479973085721502674986256130936125221910685010033251339784454661239754857374563690526733253136397142477217903170180858323952101658827892863330159952629377506134016445286401019691593711502693043136842479051515757290552109352361265737276297975499206387945271376371562388465050048341854697129668611223054197492568092169107734279046783872269651643835297675955915274637110010639203247224505364323474114197854142595286728074274671818922981548228682492642766135774379536324251050410622939021949814542753366992103688587234362033732213809252872448418598241018907272957315002304712136643544918053735253621067423415531731829920216901826420656036403910934748002763249647840663791168337667065269186143589069819370484802010567954201506365954373913420390561221287492303050070529777533263967060968852156777143397990422603289954792049261469003601884142187510358031708769311018492365758639778991836051040809308916166983383186798503867294364535035984960435867757413886754549759777484793108499148500016464387834534815976595919915367865077715466787241627899952428374444569840457399558982553171015902499680575618681104451855148371794678753430066562312118150861447480336625313391357348539778641452308917735519384081797791823975080558389988150739316911703869118772578335726839542966533070195747823793996893806881914955057497320819284545898355096307028860934292872308563338082069013162582556888575539538733187038315649836194458559564953741592207461403893070565518384510867754052867517578618268056956435836719389640876171180670066211778676027030292002737849769835360979070903738740198721080352159230327522589097527790395882488567452034794853006454339812224584265382319663702932865956079450005844202284669798791153532988949018340949444432289248895585264092103570582625024821223398572723672161448757484725820563570125752527113928557917502204233495121239579719256154618908092914379152786739751986572512746283267386113873876162499916898540905770635441316490860891193870082680930014858326641386468036495149224119358878843136634981071147805114716114664952785379700372519395568323041106320880866397766054006888003529431882783345345349807475730759024358593057453558170301105551813854389386692439006466888817755042547580488225543820177091057430971388611755139422375705307779325041444878564257852207603699144096153144106229393405075403652789492827340489715020690794070103294378580798471728798157865424083728280544300714238341006450515462008265904642612398293646642581351212917380060229417627740218714509041032364976206043218774621413338243144983926474322241856981968790432025180007305087595241724989333285223885160572294064396744785985285991362257966548374436166267521653355051746241483003851888099717762415930408617598191135759568722799768760687535757904091885192772655632056310269123178924155593778502563914881408772279234044155462073396553362111783213496962965295097768462414449946597479530707735226712726037820400868599020583186673519946201876008317387905786231596417369623039334431713790885906694114302240559615970419901435242319649628597729696776317080743247886336779208720471692111679235070695452226516495132504659065651872464169898227713206056230272975858282288720546111668320979297099140619697141314367578053021941969437143846494476258868698539649122812335042773041907635833046880020908619507675472872773499086949858048479939637737894665753847658368103017597162394654795300211951683943800990009006246693597310092393903804937948522984473869859149289429139692043962278400467252381057408353658843891188488168031869938205898853699568710544600593902807759861700880351115871800618504810815091021907355972508218512887167869404315853937265768491378393711079065530291416760763737271931558730226662038921021646193397114048367722842158942030674861544794752413042927330243922950346857301833143093077680692927797812987139073189277310046247243174344212020003290244469850017370729281318130784022024047235100132097772458308923678593978939151078491673207543251421829455709782558955710375096929397978518297213440077849562678798936708654610140654875110602890768036120574394641680919330938586995865152876794162119186391579992868666145951832486383208845513702727081218519704834676770825264847603967563473869902029352745399915410742752757366260896846147605266502566393796675972197520334728691170424605363743529342616142316510251598698747050764923258710118730909619755371721672462750244383310935009641104982610518272385885040009391632420531034712658403613683500881348376023360935869129451721647227142517494301193223636758102197831086673492119802900965794997051491341401590009903211161393813975090148753976305755345820085905280798628801621038822516116749543819918602492867727083582693544416736082879424419791134686686644962170396393947613673627211100202988045604891427925802419662753260262984825921507611481427623691552925018490686604834491574378319904339352269344290666088103805037891014277921385591524352278426467192823069442272469498156743069450222419601001308620806204974637748790816476282809052456548948399706610542591445752915876118424721335911019851833855698866630612301221680401207213560658709882209921785492477652836055315376562415114924803946301788399218414397500467278616064800202267551123152572572990522826942652888674058201201039631071313360797469198770089310311526654210052456621327357785122156546549153461886315429469505059581799830956492726969473079134449198098239270085094199381778681564477278596133726485987336835077407100778494150106812175869787983303666869631500290585517074630900684274229045573478491809249464983583227425900696539873424688861244471899023859515222039086528197931136925041766211287645841005066843081477681877644788033952562006972898592785376803508429833021727302284728170717098663818532662478300404263590338119124863146679669667239022478862782570527916651619696150197567523539900827591477522487093423430592828770582008563491878277435209077883583113729791983154366781574791782856885256735504145178241230116535859621920795721199990775560257129824833619782203846499083782424158642532884230048634525010219798929397243724183188149761274128217129798648215618854993873236486868655495787189345103247019607565396313809529825150156998526721412039141518521306987525253390476887261637324094216959787860837564854137142134423847012102335122930426369646116678147094739996109708026406637952152978167212052454916124099310571408118285848469151084861705706128562484724874299309366637645478785651180656798965153591608481728299507829693748853500797712192246284851292139471090179636409480675408384828174588176838358386717050997849686720122029209041828391909863528972166041174198343081851235909118519748732120340520563273672319303498547714961717157787475881144148908027427170586719929956857448053900959862279551396918161180985164393896589309860380531532577259880654403354197300404203939504126483755897454562425391792650317461803831094241264124296264346705993018501858047409180512834078405196316749199421133107480467641884104374979540188337010072861085043236738672587642345434280222689339763215156059493010859034342895097978849671531489841800921555354942055323788214646755053267602905123185253100735196235597939837717029078095257730415021947134092745515987682126921002771956456840615454497063094905603297688389539945262044255880923259717959242456918453980065929699514279409867689382398824243765796714834376654235740582068818831365756504948715866320074070559482495521834443543146711677359205687747930955508636137399083368409877282172333766307206050935547051353057745786291330081762985252633446617403520174970805089606269335751981469005538258141252514028342569833908615359920334023026444441813385412157618483487546625351881583386615268313528744388331203041990469214828147771640324194806554909658955470676861563105379286563822058734146059039572434411970616442533684195872486215423799824992446268216358211360641518983084983604126344225690644203481833689351054608010719250318853611069897685096237057988515288415544901735687235182930575229401151901877282861543906113912513178483960456361740798394503453874532324124235727119357681715145733418250344354746188666366599035966590934439444841419464454125511984469868652045879140841162540603877240080362883737115707742690761023658501814589023487888330008922591494751547604676316534299004395206529749991706725502952129024613594165106366089497430136265454988217498255219930420649626396210201992070714085440480130862619375212533112475363358032189675843818448494938398612301339504235320223112128815149454089815433645894694665810847997957843495518061180956326916758307339165951297365859370094781770083256464732060175599993944412566805247652605635092799131694936555073278080178780807268309230664099576927779235055255305823732747870875108030317140496270106119700634448257474279405854689886958283313897364221472769449583127107271065495663533030136939105948897357847176680018457801543154351127554157953814727383742002811543626595114040202833721763029570411691530363065212930035677215321208004406699966363985719943070613244610875666500890852494440235190696700239813014704216365314028548763256324255915991521304757079120672627472174238981227004881242503439637910956731162702335012210669000979176566456609926035168026150369835639766781066606875168850481624832605257328045411870371992251753265301964771411440039104331216015167523007635444009270111654764799405738747343127866937721448983062322024758252700316056800778597247007650856089202455600373181759289548608047999946951136628509786800209794335927014488085866326386742629490734644850076205849396016889452400013628841079151385337635621174770881564835088406365544457402565317675319895483285108527350040034952445047601574530650017134415296938215385263092960265887051435432100898835999827451128177647947545664731024985801577693534472134793458256474832805947971766835842516614707705247561400585143117231824393512046083576425323597271320291883163311491216865488462807807210096909899970765937244380783661832502648905390747112285498650155329861289938980260998386689447802460639947516253473996892095457987011602555323384108461515920079080917601492727430582450132869672146914236943831434402616892745322275483111107544242150093462518346587192172956428768630500536523283838039516131440653161367344150218998783213685837543013915637864758831109225458481695264954246887767867441855837891074760669226767044466194827130972455342193235804413406080594784210502495022633706873181575383479116011297194219677264517801614636751214901196269166172186581761444905193429136174291519730373690958562224682986531777628420496239746064934789816212056758377607374848511024359650660228323102160630650565224929727593909240410545604827374122690817924481458797142411011151587141290473937647255135445330320612429610542286431815778722222121143071194159851369952889611153471356435739496834552614781637634325198351922453780123525650942235937792590661477019151569803112228789167672472089642953550226392697401730062322608348521345472890337449795985187236130478784010746525336929036718144339068931503729431726501928949102336231715276931455185526605340898441067013955623596225857167814168511590968507176943920382434061620920750051093566511590314114005803979643583182819900513330339084166196635237106849207247210798481022262108933055684018285760065561359577894182349359368789762214579434289326706928969374102972409386083353147326831397842898239116735879958221616333954896271859828131554090468452542479313686174765893835669318297053175074317535147466693445843312978773029523925437404696660512843469917178115742122766311050733289481793778315129188097438463513433115441968546078946110248974230715674701899742242638399691092385974686573008800289232380290677874267892280112255241929076295685952352343207375785254677535254976916456545308310907659571481901586834558769923367851861171806267336784364753794961264345674730040990761185671331645578849262606679849545488390094568434932309461475807520062669407819056772609141442961613932784935437120517855250238245517751251003968105452843172001093127449388075592209586129486257287362793183086738713576922106706160195427947941426532929366559994706431305943362544755373793846127999561223626649724751629744958477264927933113954027443673232520251717208854549729331229502297585353614024959804780656886586633823679188785990314174266709539930120000987147091875940074097516258812207048304697379833758251125545187029942957873572040620609592713169740805971345821364813100879711920710593180619065193113963577136143801543685792519279963068027060145107998798847011154880573364852208389726512214131090774008598537291850479277114376317653768055401373669203998490951665498260220109262776997508031799528230595135952976320554764707671338764762767756701344149610152150935058131349709257392760370578424267319249482690307711684637401393370545270403355763656592055174522697631172852611923638045197144183791255776195925943085329622998419536729442422366179528645702761555330798472396003378479421566007559655267741815896636049844695182660920271710487935771383501511761071747714778659298713167330959133200684744981393969394291060037686741527206076940793504668336717539079543832725715469978308108354607487720532496338300940966903490286570233224170237640404616265611920717942209547025401953888625511538235102671750936830650069007653869822779758757814688584857818580589676935012038896034260778566582657829148997135596024279563641251365958775913781176220891559824130209480398909123381888464005728896588796787018711458564986196237928099673672668877667911459234617827750145077604137443515302506684602565637804450277618651880658977185329340745454268805999954310680653177915753751254089725749659092193940039431224311039056052677749968646322491021036537054821461222865066988716554282757483900701903715975449827501992290130644354633296528273505059581380824264853123388163421154049750023911346684600402621453045295720458255336554027615071398005674511821229532779390538052673664813979917691828015729924359729332712701977869227388119499553593988417411984725843112599433477659038986712977854573939618153861256587068711947681274923201915286182096270100210971980954784669845411025059194248361530119761539977421744944722807749619324351439235274228946386258993329588598903852972697979454856827676931124585603488319460553077261393225286006774534376122466990788907824868923983980298773559611394545454075652893800851082798437903349352751417356493141351799986485714328258589021911717955075781579972096210189589347268295295968030595186362808306639716685257345935424228362100668995853653659809249678236137727687962074890026964039372030807450282517995921809811914490655503423253075878913402395498278314847273640129101564914844168530757926901591204690636403458494140977736034349436813760158353956280993654198306412512883655223237445597525553832638239390451289234063161549135449172262132045373723668839304567348583700334946907310059570388131336829755668081031243357897871164555709579789339941744676738979113119910990712772726845688572899261486319009939536869340355469278094215025486813506889209517707652246235048120527595707256401970002532247864685307156792909950528197602327106193924337326689322236011649833686966991510154460180756545424047573375259734704006006400497864263618892951590067607260577158405997162832671689154879992774044482317110439442170751521814645769427963756128647059783882032145384318093037267473575506265572012843754474987084122021176494998023544474794720629336547934505336786506743598723960940280751522678799466633429252454447624780577073571073393912258252268853494842663967211029468379350093325210856607092462619979912680087253542650827525479510432481274247051674322301656178053016394185877326948962842385866084892694372501613355869517862312586293233473378791833282497534418373523601536393509283385234509013998007472450022874946719367272042673702784190628917066929100023924010323098968441180122616006786643856838553184250237410524569921454458555761867161182073218338029820315224607797882402397482886664217618375220711484508575704438123410699170598091556006869288729716811706446498949705084926058883790912420322878094886211098216597054692338442690335766138144223504846489032798085237453101099034678617554690060522956123891134129105615929178188529582403283147628596455065998392703347673892425188154412622388157328591820936203969703825553986624214898977922327693550308668775088351860708854620498350874147207761129290379548248745957900156018815223689369015297051019956358394045064804174110123354135386524756545660854661593912714547614199749409461948333820038365258753708331237958598446971911567468395941051176076975489397707050637954661740106796445022292529056438293014491326617752711101693041158106338837973034603051967374213271026230519251094701822015593799761272968809919211202069808635369621435642423839771351498790008001250113899581478211836805864521367508421452833359171658262242034464293706349698644917765581996835992757407987147682386483657288081130772787158969872519835162522258159164129137964894119872134216493784327107406613319532089225376441269926256741134869639498285794540265710419505591741706149831083892408338380165118696721067811722874319177408600598760825649569547916856384924217150988014626258571498962264701890154227571153796671421379978511633463168406223659860957896073495382084531966267981947612827631428572685767719139348662471636867818904485192020671488626227176729540158867673937057220911232449532168809341075928884409543731834225371518145494038019843719374011988467607272735720171471131443369232628685649379149935486116384111058670803518233730184060899788623810537256818527573214820715017813985273612269619705404024295910750545130337743038164075323642062370355000383119562598073258440697469211286542966654091070446776855911491469261829364045700305588192580390481572303752568564180735711072454681262835415585589578692930827809051854446339414134576019711789648483330530752292386240052840923876250929049892570974618085548847491262449861970896736389209447136198804805718840312298803068270108257455554716215872456110785153468804729493154363779479421530316244856699837186962641420221971622909316295378301743030200793550352949891785995332369015808177531001269593299863743665458150429572150517095266919210881072089471857847369775884234777696056678158138580659692205332436072903384465161443060481431103751024696100285415912119985216253447588364483427505997955677437069609799241526503199378124124247287418190673083372118203543828033262939334261316124898408538723562384481570541216648724846827301352246910830454357806311021133108087066786489171843856505937176157150566415619336857740846380630880095328620879609170257594119089779086471270914100538348645985098945146052615218839363832792108641983503116317502624280649227215704544004747029550444485045344848432591326549834581139305553719423944251429748448758553136463011923284140449343775449759163377716652427292778656442038109370218737816342228182158853516950902224618894944521222550439056115143298262934172891570579074499494432903808017107861816426311284627281079871531421876457441990955757329402229487815900436835957915572231742653292560102408913816639061440009501360234470262754274851158615841273985945708960435166286249001891563633794419135636508818393519096923559615664031518260306448314832246075544699970015628760043940049650055287137673189031949709857169899231460584510627926628122978770822500146273084670731054019731279191949198067093493846971490016120569151266320570738862550954486825325685455033924990554567011102904834558646454807417490103586398068401784949227988278546926941195707050091963914677275946609237505575801081133375041058656408161716434665585178720617855938485306930548469162315283234668802517547614058563285400381035962404993875113553939970195416855215999131308437862855951255747145040983011312714552560751416158300078216732941552404723312492535303828562935222668877509174533282240297178143609351536141175936729837976980358999672048523471572154957290444646270704551209758071098229264144889208306678218781633153375820884652369718683388855930790199082019182244321154445010761961477749022574032547073254778511714108477404265134579509964316966630590749313622492123348315085062836671252187053287819504411345633006367454621553213821325539851001471663755210855258944936640600588854565174153558581493392579875035296440138946087378692656721317426750371159943440808121834402043486667507010257125503702230122103411266049128263584149239171811269708607340989813003956471768890858596644617839483300306696428389790114403922817466989661066320870489503224612136986644924037454335846695107496417493784735214974025525585135270277225741939706696210230605612979102772464239898357648051580434142467184946866738232869054394653880322739280042093788668879429795943570394606681813743823715790412200792146084012001415626911202319231658168653994649727537186917047494652463692591279603280656351506851964874342357822856739548764750104134084916272495784871769674412301283838633644326523688782834209933275148241542541280203694045702016965079708404717328514902409606066133725258123920956906603660658879786433453026651172135265847042885495192153282513327846360084795590024578770333384320360376019948213442579382950705984663860252914174679373253412692028043665595997712902329202795993161082498051049626170685500606388205178213012897844688027236389911508304784513336851917391276078512980692239652493821139785533813812189236142602873057563173604857415588681438467569808581519884243308261915236462086283091750817299438758110044244695363450189478883348062336549542293461494864214817123108078050077062935202812694462839115576147319697921459673294181841712836281303507871990655561009104670824742042514773672728690428331216174935163972458330352690013855614564245029301327936695691924507173069969877310813543057204407715969899028587654127257286980987445813945445995575867497299154494508169298435391593218876208237100865409902568480446039782022076730935973313026493226867563198010793727466548411427265837943761966612165917223722637276444214658066435468960090449879556687920600961594426322384955812227959247630980305192064399075832554103027543200355999643173337307842821377230083976498827825450989582898039064602301734978242002821906305729668942257722917351479022442999685581996604384787355805479263566523946965263976012103521664506158803198673566503788205281118032594752899508469719064895165902379878252587647136092624316995860148709012280929942076785534692878177490628569668698495536984963433388662075096175431043127664514361047438612923898519713755918258631529482483703019793006323754945884966660818092665170992579214990919149695079748165432482505332782774192073088252194389355123542138878464905678009837187699457519732585979721282686393659800552801252689797820158050757918820120457673599385705838864452525959688571928584285825336774367621400666677342680536210873858883198020400499566305162150746036791803072505811540795538473837054699888425858971382430530789085266819402869524239917996294846096090695549547398357482590225403125631671311735628651765179219969243628741541955134730573053951004175116097741848695290843641862743492133678437765733040360421661737828690726058210348198792219201708068906603098111960555986190995909705159884323891410769845836072344817440033241631479600885943918074710811633519234366979832894608610665925421035763252977438998703762633179768687617300835693071177530828283510786320260894239455219267649304845281695157382722354711418811528181899728141901818022516610994495851884937116775879121885350360279691201851365068269211102794532789800612328004217321487649875795997284500141291283668718117640207411477172710894684177594099257018833110257442971495905254309684387844912318072577295822959226803794699707114172194847564436528506848533840357603530344854361387526776613258608547223757945239808952433710748106009043405978449603557534685389288431813604425575686552022636972303753596313347561515029702760374782724609230415825593844098617320125118299724567598286851115317334703946319052377785964146449119350799221876389714668047466899325491960941194051447684025299353200132559019744709971010690364581272599835639474317146644278433351654788486334134156256047053267029977730164767030411078180109132851362255597244522473716245049316422641745627989218257137596719897178882550021113331396367717707146650057339290574473158262356365721296501552239843773061229911465395203746983512797763601985581948885484791146884459499425981636361443070288629930856825176262841783534228847528610499466831211018027512979452203565661033988349316311820060704492170142378279097229244972202940036975984623822212497120253279597613361648575814475731799215380172201252529921841593121473724324144498204657857090271420299082146174133239835581516866569320540833534149722382524489245739273404670930747101124002547906095973677988577912843415865722747661782137876587400268522871023966934328048509392649455444280126753395574457778324129854195038389555118823924701491792198976017459926934224610583260035125399326574761307489615260396848306822353406199841450972910957041569331844728991988134349458672080986089852234123401349378816326847466432441580645440201073634364631512687956068099822079844268900803948077387495637747865822002703710853434245264687610549807345071785960612375776787032801817064914066217252001051978412142461482583191060843583858891339299348445329350688984637440631433668794533672259609399784643422885082982204172836217488813817576656230479829454784731804799618542353169839649796405877913919514408487314304854692251515344101331654481088100164885858255372780312957334034206518397721142010926915560729959354369508004514264181099151454722860055989684306780355565853143030202262711219843123192467444464838811036285398883085589914662780098827785820077169871949488331966786236983262823632949053752871019014668190133221841298715651847470088337860928734291529033515016146437201356471822852384893707360059457734733305562741147096192933606745517826030648231911431556068855272512692691645401324811639759565586384425374427082763849706605364526001467920572474207877284780560955457069482860647729472402671124581351125855095180653444733681965778736738629649772306084163188086302979733487332272574086321498589201478592766814548036045691378355652712712922122797986665550540078860720583083573569542472537308126864298718319772441207655991870935061105314284600486545008868078418370510353391352273760707013032761780405193891947427993694880743856748173178703323288298342993313335252678431984904506984519253071914137523011223820177304329220962786265902215169940848767987401210245511103999380806194767814798575295624433594523059457713839627546796347293456652700158651592437770337723174884986245316449467504259411576654177903945226203929504118017598034156825681492090205333489459522859620276732536190417054250121525363530852482607476571592169700271470579956314320444891553468050330518556539958779242011027948074137996553824695518546228297521464191577690257445142610852080135725733479430614203728418465026722476633245751355961376612093497078335780838325590450410608172653641147649780765364794366814529498243140409126772545037274567044268811992971991367063235193409640107830042134103031358242592221037470016633794402557361538974460918239699128372775176938151553511383008524820825743254268237650289638249117337711538333934036508561076162872152759181968394031505392227533161721870445484169764458095637715763859675141086435768111941572535548750876244473868763780904729378264845210688750999391701479751466566835066911041662439396729172340441280972436222876309770186911083201420666329303821176898085784553634211938937335528355171943391990291689203568660096183323793152876102461227068694725590122072011501918738875469544071394490926668128902960327891465842436331920247289131547777776891511631913630881040933261395031124985348484044758943101413935267230653175737281674651715955566043976234800151714328702979701862701756074750365560966527044772012978994507743353988819890878962338727642310067002984956360855864623471220601203080898536999957383099089847899980083318783954314135155910570924863466229627397373052939942104446186899060211345478570514752359086867022183643761779377969265980294837174791296007527971101325838032162154169676270928810006518855350759254059547743767227377020211627673004967134008600563870991368140363494190217761979619680642929414699142319037667616102015456109183906786124588283089654836096881752498333681174299444081902676672855183429714641222336638393670354701713768578823860289337915341014294161149693636952340862363953774640768798101641086795418601046496537637832163092514762429989944604686615592260320911250154144785997448602533973992599422047896962246349530382445460739899029543833913888492771280451949405989258707079877101975828143798920606566492069300689660628036175165998079610836974569944632931290266321254608371231874247301784012830996257979183440385636320529613246289780175200238751812419193722670519994781868367080414224608253678564685779180950789014882710951031381368778871898268719487596552972597461190092637188188130629289979491802247555674620129454710989968674534391859548285227679981404510867297151184947833733457173163834841756773688625212254340010852893731379178587227645467860200368994029864326714571229131414778963563876459859867384842033585048743625663112057781185543795286830680928530612981478752011265851377684134757250513412989248223091889804504890133928617257473912851859434076165838128944319965464634208356700952999204057200106737649717570466244771720804526749607709504937547146689820085937116069126649407244643014525407706337912532133052299905808993289664078320794430007909991005532238447354774345841773429235929488789136215074250390873440298335271632713156474177072454780397091176771525283198803229194297549681273307453953268634060557633594609588763883592129644212285721676960742452465024257115982226900341168472897364768843199888260533979759312403122412468718476461253678882749043461834461559026710957907118397185258686560772496660000659365924420347864370555164077463111298707857324548003846634848517621229214375081760602460890090335979046938288915793844496209915981803244481513227685597804592663375421701968223806091891842128047182217432978886086445960354279249126988900401652918171476579830469034126593460165495213058248247297787094362586284913797078579309785391690858920099130437005385048376457653698597655357552470525120490784331248340359449520669217189698339885243770497833729181210663491883751568433598824178738228089794467368102279462653368963880203849032918686416710468990683726196892850458681069521385021141850296102145303965984518123346715701046632729216046063435056760577026604173721855621727375843939679590909800561983619224357236645109990961409390617920480622226529715078983249743670956720707146903362674938416579649800609955346198021320414984176679483166152246558837112528106444035382094815422262158923282788913615628633970515949202772363996605205628483814281356633415713807881892009249433843503577282162564179252110851132125986627130541997543568604448632825237806397700875970264246064020227967409460360387167837001179775500223483682206155987194882455023397581196950860580773537585957216801554445396488349052904486512050431614987695895083557614149787634680260198325349531152757830746356452563631047248124223749956369656579751817196959512612826196848963081659350245954296435163225710546208707435522709250506800167645491863492346818039326355893494702007059896246894063601158809820922565347558059969724044291922998556050696718110587485860931089194464729072667693270796745632505823643836998393134784912184127550910364856039748161454590952134834299366469493340568945170396371072776582506694850354848103491036152481634019882765780885527481663536173830889224973513012956343577948654371370754307574522554867607250039752172882265293430777225318986788526902867377089304290652650359468110033891879724475278793585903588127153447896699252441854319678846071599810076548580364479555737144193855701583026783240083658811292482598743378504178807517325481903312615537443772839163830326878611261006298733593102499541233849565392798951769737631517239860703662731555884809423810599049113326500304258886906190319166133808014877069730349402228709766838135553309261837360190742209502702399217610534023680884286189664199818627936418036344611431489339794598113185029007127188865454495389131987254740798487394186296444948371677012449771787805354873301348129216257539736520492118143711003290396083825982009184704997454544063747655722517506624612922705028824103165508442201278420356964177548740750483397604685273874441251980485739697658453781931143222412409799404035855053533133371947618258562606379614020636141021325161212230741651009902159703389169284527671636696452513043357180997652711104949260837747539119131522944908350464578409237104541363156475293412096988868246124661168519656873180978373598983655637212223472365594836294451435249757617090069459550997084076761102397817751355657046902561010883963785842597678352962971709199645351891100178642586764835237354621159579573066384909022805317763623435264608334158483100026667398982924430295455662000897854619017425647395077342943748958232647004414539317674715637031625612092054075712628675424753031860930141507346495603497482745451789861231257245044499654381618106421302330273218277096160554911790092076091673378014807731687447434881508894441515383658740377885626479110646823350235181976500156109639192608276785724858112680903006110728031226560433017379405983140884874574672112461133796272000327240541177762536530595611822765136447995435148863472930643807713182807153971212538007282518079737848981743881971286373348720024360361595800513304827711816184037935459568473420589936611687272473080253762929349888942446544807907223900796795711098791992453567727910423778144099362739763258184363749206665975027480074412460558285662012930459900991435008780979139170385417999061921357191409487402571777659509496377364282390266972768126631484157508618576963748708723307325554767326739695623023686662021954971249569492397329121763225508481207256212205576957823907482837314414471074764051032288916736497241720236940300639599666894030007081637078438692889925461142080826028149563190953557422315353601917679343642320526543333255551220927181632102861828509998763761421180622770444061539029922000584360734311033325180779901467073032312283310554716706667489466757527270569032912520918854568874308550223424986565802839144441802519127962538444063771457661697535334019642623889651222552729573633421792935972568604962792163667655566699483009381611205434253466818126070213438564883697906927733290750803856616417793926618383064757701579055138911306057675065253797840839054240222732330452757339136513855534671258440643631838767216712903204411867256507385381685033896517798857002479733548952044527962037077150647862080498255910161526060624562303053813628715293339827294844972514853220591095099561477287944916144470003100910903139508621031555667578625778617173323670215710151010392081009502918528107438151544161034329743060418675854922669200908142975868922653558427277033550737511867679918786027119295707448431247800204530649160746711686382747204333541502461679527693567039361574295849263191511201124752571082433435541545946131098278615633442485719590231483842565936643612656270956260646394626860899180545543698453746801845502365519710243669655422090344130111993964281026912957178453794662542309501688589747132627668206074893585036646003131983760031801889258948070630392435104653264166103959552204329468266178169346069672455506210888163747593124164091720222972458535716594114362878022109826056268668965636385028933955513282047902328129148793396750739216746030137756567087096784882666223252695750918451504917629344295821132038147045886647374879498484964736910747543069380521963095377210346248081530645198628899829824449198000575101610865464180486050750828301470943924932787542209655089568584184770984635327013124804437809343062958613256549076178757985893265177779532776220220973516108741643432954267660882791833251691172803448282420943674828266705658452329158272517828323257409418773528100346075572479687834906576171254257510223916931307007873347856409036713365518263322012573860211186978784423867508837563347261074738778306731480617275399360505988315406368245623883482584433395053936950740820547685181686616159682895884002031119716622560988763490405604876820145561161925074597540658296551925610567456208633146716576463784745310656424462700318797800054845550467415135434672271859029013512218871855585575173534060075108032926813237035968145315627022624838518370315276950060809730807054003886115187667435146646731548411071770321679361054559257192391993223146874812485378146130881150968769964180329683473461948627666742163729718137113782132437095276459436265116663546473109944824015290009644218382863265475552055768113880622192941669807908330437122855116873190881952803662694437561250066570481023257125831045064815266182015250281026813741402808164245088033949951169347440243159360602825993692095591659352535654059459532165426661055981006161586764404562610874874146890105813126414341217300748035122944654331554768120365879866687708192925471676622462523687064944753295212358642052478192987684309882712075663746340580259292920833538514408920379608365085536070207853101116549500591580684503507264508023236306645798293450472750036267968996318863905584513333970907959956384389722938340517348555171702665195114142185563142043603443018449491186038118522348926799972651569515103109510802366044997085483160722896353452016575716208592873662092534164502159401007367381302213782567399404430920632155270377168387541629460881236827773431119577817978339026759272546430498002669855440191116062164645538469605676818017752120759981659708213146706871933145631265346448701587435308055610138725281138553221425650262727109208891424534915915695581460443763945691936043742332332402095586382597787886586237772162882459242448194667087548666133557290271843839156621828033404818869756122254239855305647595338511116887995954231399809253147725669626352914832425110396537145713337625975300237397983102201147122076758210128932811053457589086429651507167274575090731948784926214130356169645903986854903888933936703077533332312770089549828390077780375828172637552734180703537324463847993560492724965954798585660129343016138465999082663138825631483119325169468437993393934997539673992745093465647576751973735770867576491883517268945559738396391960304516531296369240706550038773603398400353692386012450244288146909158226250567143835794740698951367275189624672780146778276163306161384203403245569245371636706687452286191834550134237769167772407690095602545406771659009744596044094797369494649529503939932697917377315009074804530411687877324128588624267000097199054429098872458507374508689683494997685355618255519750308003986596754539288426559851508303028961789380742792642339896474141875729300941972313885254228649307070982610842757005633716993316383900983635151399160159370291374894136605449721913144976061660266112736977684101470248348438501049963150604366325363526404862856702881121132256355860434514005069045361215507276567167398778700094251204337471579572979731526692921584303965791733226478874194957328208030291581522354965563530475178874161602092270685067820567447824983484970617793470020291387991066870676370896684213310684318741946416671606713602185632066730579936905306811178698968172981868486420173429189244635450324951343092141081549102262282146325032343215876938128665086865453353913074644050380739117882310780540301747588858310781072642104788668123877625359581396601450925702888217720490133174687930754526319520462653381876128394642584290767876034355413855515893181280771888708307500549227470234799377276880866868425233325162481702229397911941955695192767584827534958350052947167968589705821348390868347479025875665112395618011878757487662256632608676444276206828772434507857963278924836778442803303771064104328039328116702477670372210642105739012327344272936061187089059605360755387756248905138868561732077128281521035536461160016146521499847379864405820988907699504919095232943025707319762270353060463315582436987568819596074004504409237213253458122179494218543594033559272210039116953916276134848271677752316599479721838683182702319464174227446616358834757384831289649332045007604983256183848265846884834312536935307291198890624468582950234298608040928608625249433316703074001820524211203029441781411869742985299651388708266315231346831884603170089346839512887156570130092880563111810034699069425718436582334809622583111866499598858941914117823395722772092823701456021491991917746233075341774643127498152430898207401374802241052467749904380078938818065896634422433789392009158937296133952430039636024323633936908397837435863934344855701734064368671255196035403621589076554258147394415495664438782528346686374556421607570664663782462932570077461463924306633233880294359029690344158789803383760397548870904632691374684550366638109793505718691090710912118368107237965446172361788894857549584988145313405887019547590900464873396325495648288911201956682625354411220807272332024107390487258644591732565977782397567451132005825873438454284986866766577955896979291170595545154006333986378994783846356058538860113361951355378631162973365988288065468702507138908451677826959426889710062195353779325581878214820081266247264395524548135215746965844014160414127880683835133778584798881619142589576854708981276827556305397499710040512360921562266643023948254370201401039846805949309363385275576888961812354659879093166652064187226767491142279039515400890597225875790438200777572492092090980506221052218363245746716766325810628334553087210155795255066449818771389504650621015642925407930006138037753869866448665526959719435790650960448103815013864496998078308780813882417541237414723146566095046511222788556589605979503671993596297729731064887743270940281355774638400130252558094386912196658056432358740536062339445138018769714643403587066451057876649886706008686549146919644260009056845210953457673897279297256246050696276328980519260375903470585422581450437900712947059916793843102360805629534841345022190087733927112412131419020319786115684441920746115420113164687841490372410590649605439495698553536185556572730432007236940989241784142876097944014887687405866269007431181544777402457136945948305933790200195201790873969614572421472101131777600329119757160002648715947126254171299751375150173152020836704812894166268278837446832825431437676999137473803732546667312416166383335321334255835032634050041296925958690120336843481919121785111966456261782217717325832798528043696868880305534078035632169512065075285213688729801544511907136807041683160691690378194434957585478965724363634037332587786925656116145053784257652789086713229840182652896051853039589496185393719759027584550953275000577147537449339508096637413405475689534592909377491527368398172536028103959098602786521251656363093882956019324897388902073763107746849168577117863875567051487867567419053789364534223311275949587091227998298416190239670775030261041913964013512773223905375676369745211960517357321033987471456727946157569322036854841758555348834877947396446297455560129933586118966645344389972356288874383979821273357079294670699908104087346653610156603919468535067119780670115379578657020257119596159811341701587207239954981005718108263789049549354087440567845107257828734958914174451695248802545709685263743505255385338140014484970508292003939698464064868837609670352018497740897746330869375394306701621312200757097003496790110377748671092727715606254147872109795073689332710404554791034571145557640593407464700535438005241924188150779025182750561031700848785926250622990180869643987296893907554405713650355760608334403967973290231292852740224793350472269076777294132488559969873974314295123541756076050450154323433078429500928089902548823610381229617736613269877707309125387408455854443053489637709925567208953551256336591290350276755768038517751233711474922077739775356654212655583452496273320975597353414960297196923012753323316134006364602978073007563942056522408782371085015412725700290766612118511003862842307256199599503951796027595160052895695480524500419754003971539158951522554221088571362208507580640382570525798472971877096417346416665152999097281680101084916797291334120413551075579344158362706627815623711629635539788997639359489529422235995625251112905520928848862661002253029542502616471325213271207357366788383097996248116487194076527499352016294002127206327583744987325780101436111781435576822676802091701647959117869989137513334745281393875470081993906088848218922512275163780419732585924647119176007436122734486712155387242603381054915465654858817678101414402264089653608764711204674043510137110898281252615624897203951637612280099124112245879485219415189658754732849398890525199079466415781347986691190195959805189335128760478855261295066509858319900988199028814168931295444734921237921245306720296325372449407367226633621104256162933979003745424910845140141752553969737184838736923478048852516913174484798919051176906059189478320045034494414056889563532604255539329784727472278744404335923600440030319623911033707340928347844465485952882509797029239680446252159875612593784300611798102284959644896364873273468340387930692024307178265667692493145005969182426810867898083194343979581114692165907497153260927569959064954124197116944742759173322432127270398154830076484373490955493696199348764897140954619575995152624020725161176693493689102382065333092993839174998871001776290871980108886937015123652196356958578345078321684636955165580969575788128536647172364475325089648468150909260495591722023325286513836040190899145301103180775186296203047663462064346287293040182163396266226178427124611661664248313138908260874553171010830418371962767641654022402197404089249151631285380749383190307667498251647483566737039353054409199970055471686280500420561599762540841272758994502464438691245083795935643060720990777511529321155919252983027070310397167808383001848212791961149619889881665445625236098226186024334051512259275757653367616759163000430419986994685029872618811262519911460085262547140821175730708945535966262904749670284755963964491780362656490949423308108232454726274166323109040501200096525844151745639521560611531939800013974846210718642660474166890922584958875397740173010130405829907479885267878831015177881320591622555727709027168958545410988702162369012899675617243460687281832262135217278690001543718822919840366232747737618031726387324498773180958663564221643392151634158808009887149437447224439954685047694193714114545108247653337868304799788518989401606538453040344310465904006093331030985601620939727152584782509023060962573437033711151153818540806223316623361417922301189404106399400784028262168200859597324729251651035033835625878682936082807409934420320902047256920096967699555439367077270132144201227433104618610413103984685336872656426340845691012957084781640767986023057948558432826846892887965024210708972469863016412264756843789624729045158939160465186287961451576834408067654949461697776279291709597932845366445800818645398543726951967240632999324650602498697709247589942907527752521208447860112811199948819235879631217680266009791018010368499317823237863143092210530145039711811447377987878199890513104282008544807652223985056190528676215289030151426986689961451005054514880152058619615520411296003949637867744496994145716828989816901430539108053970853847858767221023513887253797511165927340005789260187226920886408805239004766256362729784380912000841661768820607253901973123792960827204570369827336914802367264975623027129315628794443320614364445654791508894715685570110664573217856034032255606668536059021867269619984077630696955608500679131552375066940957199813707876922403898539726682472553967405736155303491800574919810161514449340766261275178319402038925903638193599752222801746955100093533681174446849271327860791398014463065968738062990950827964052934678066819480124663494460232372318528429835327657297580434557681930305225013746490905535882867063885518432883177504716462759565794160576373259680982746567596742448213478971943878165379378104472267182946659968447576105947086905832395966131495966855386549036131505963185439860838341548687988677501936835474633355560591725998832716434717102959959585772063496960247185888501395549351767638969895399400087558280498143785172775156245186056338009673941288254869038578878813527803092281310612011393956105131818994027293114643501570304445691219011349539009506884851899562389817941300114879326575144440858629919337164243277361846520557976946841348232720224553873337194451721006874518897867224314150007417678007134225240861685073757392918297217900241105704508767720014454334587745500077684772676951016155206959973539048998431142746061338093973585181964603855092352607223903689899417347028571313137397571785892994906602449096417546358431622852396052523429647432849377729913213347470272506974687877229524527047923772160828224971229655887900694924367938134183919358968163032274778165424355915321038931846299954754036225315181431165180419000029781308442302078870204553325265035992372840188188670918576650677767576228370935687111109341722132302643094959098553256688065000131827473325245824025885074503755923357671809731144574938979867085292611992366369068784979522060486089405316449788922490603722136386107736049587038217372653884918116373786767962313864824566098448771132425883203488301098778002062235525239053553057965922202657568831141170479806038211099766531604817840916169354140533341794525073266995003327573680641414315696897363844278538114724014520320593798731156003777757813169371932880642950852517103093190536423329434103801719064604605445550843141827135297637304824500477271109636503747208532801606300505737542549462287618520658357066454634364218963634957652082415670628685746896462025247966124799285526688423603032620809197879912134091208323716065897086568590697013827507583399239331683448015099014407115740790290882965252962045434060882438206476873885486862900650684146727497065076268898264310648766829766592667262462018960813006000199825620431020101547768402436970925403277299564538891112896526646417571108757378677471249317419483703518679897666885429371847759832376728766046925575721451398058879424508989414579021028161810827080265374586898159339464593792769191588076156019438257226845689076713861953682580938746740818960866219259953871766410897724459093304278494922769051104244183406079700484334911116376282618798042860800774449551982267443952505200045880989417272162012064623249296772421602561200967050953289585460235028448780839326130754863293686117686707574499438116701397230150465301064904528125781566019386048693291140232417985052695532001716590180867680098295791015497372409782508631015342212786312202537117250180756757166983926289956336172104273555502543859802353981904443770286757672568372415936686569612348747824931871911105513419739031849422037756236867759866356993785492658994035958496159579727506801194286710800177170439454340297045537140738802408529436016796233834160817873405457119983027588939523115600909526375071476351194671245132989794139382495179572366956860616581663539579383281678053429642683854667746972794513244189395563314596723130447227373200490102410919567981231481883630688644846013148440834501024645304971234927419046969679119131457235174722022309322018231291882995126437056970092439803669849911877245347498898254493133159276777490643111006463804432877329898170258791202830931482165174623449823255864874780850620488655898729452470804789001959241615924961779111983952001008461455538036168128895435206740236226836666864394009944866774006610404496734603940128228605844126377687330041561795162516745183546149144912627619254015072324150782207205439339779571439042226435094000604586781398185022665525607545110709618032131910003000447739535721059757634803288302290106040190359122310473799531240014429204178905648170615131126169445545600198703123013450917278433058119706822355381111256004009960872341535936930550988807907144851491560220434516811056259815593301886335763688976145077158265572151768588383961381013693025483292698331409382752676301708210529046411281742977786424031678103479592900601004999155881911297190729080762623447189266510544364315421130702070187289069648434520820157247706990294886732182516632643986592931347874924747924325718428369529919264851128536634826503328720671362222733190059203995453565307299788355081070966547149129264357739763482821732349889508225461675005632760645068274627768931060630939213321879126533825253705836740880773385484856606119856330945107166228080660345496925811224934264093294600576230743016894845646104921511689907427137961077681032758286579059320718212083315520525003720744845838493152002867723703078846196788062595210120696037361657543340386932095829584740559600680627998187254827972260666370146017108238700262655062049428063131226311492148318364543968608117580163666599488983872060736978956050347799600862717389009683573668386898586898835924430885063540843165130157366443634825915348534993001158223707554335697881685371906359571852477365605159633183920877968954140205651956763236663056235768185343444008820554343473236933426988592553464317589885217649490704910462677263040482527323107612707508332292321888531688416849676463104022545378590345595786328949514563253663283346992053268395322737762065945356521197308799419961051039452106042818715520278014576741369752613332940442727585726006790269641114801509331090506688946699165415749341810839105247311723529171482028716676011313156466179641099637926047254469113452829057923477527374901603011773347624452102722933720712365569644852177813927961922507438069057852715681903119549915330864187445822845584639108004930279869722341558862873758970314931736695983273781596785964725990382779109634501619368332217270762437345803655069118022482178706454059649242322936836022700393562978424259123509168436249282679637871368791547732700339504443813330687915646311267483566964917028467450180647953825481127459973236017590079861698467343522008617580953535132871026671743704146273616225957089997390316751314769772872723918860563211706155832375945644625892983958937155709052840727537594355108986001471209414381025120341175754423929791977842537311942770791349065038726895224593964106199210707593619619472857876763818243775798937908046727082523947957312166933263490210417954335214324590177201016863229988937306550870571334345544712888902676450012602445322488928855305950302759817818644978913501048576809879855103399788609280518223245081210974956046632842622563905502668975773097504212223992622347678424259697125897113177974495872607248312302796522925152640574676562805490259415424894387975784828636289537100087557117025701130751655714070135281781546438749243077456014095564313002839756337079160176436596670200293042589985114330078699202794962147917941183630238273385411605807771006349519109988288342510338861666819663804443895606110951085674127016445727261796337586406091154499915524318909408851239092498656007492410974387393900336231528932427688852148099774251077443569474811213127988578731834656015748179890482094812724139640805654315830746262754114685446612412896596369733929521017684192912515056669875264031205275728859135362089264128717639362555160143648471412025890806184010335214036961259362993997584736759645393787814073369399061056156472865346021404595558588471870083380330059043194870619892356800003162765018831033581739227042176751904821849056435198118819559493777233001249764254253227725146767876401169688673205331249030228646042816777249209545115121157111819874706640640010107904839687090123947919463704549674458898568363035602125635788900091445197653694006976632074172558842932236580335584276539082038484546993980576119978122639352741918981559229522214510461130232296629614719763265815356251065753461950250943988049546591520880105653908426212135870203042360729593251225767033467808866152452544168088386480119044211280769508888197767149238169094550236632402804408143083307706868805470736826145363839510774627391380195146893281406151692516460227170306794476379782413224120872439175391975102241902070498931467347764202593256690500801509077321437141152986306247445275209028581469810830221359939587000473396671182012041909942134803697015716257226170945033908172505283392366335701976800960415436300357142076051176787831033818241863950793121037325518421300569417146068844437484925571534256515650382111337567617336339415574207618598233891632088018648714579441830400796773558434500013400672780006245208920784510515663230947751410070568278527300264077431344798844663837136563782104689301239541547962996422693923053909923033545430886074248858348871317198802484411837108232207930148720090771858014116827227759895897869017771155552116681325245481409846673263122814542089233091246950307868645699090658241521835828082682882503296654910254536864699490328045253509479110954606598594991264373358368636829070872347887355091323574583858488290755729194095645726657506988679512771221075356126652029934048109788164645480718044603535419399586637350165607079555141566780203910431640758634548182910723245890998901042397001096736258863214332642371298626227553718030601724471755384154196210926862221806547096584383521318830658225041135231635140248868811946618648784322008805552086209776177015962601509531026098491839710867828606007136843314206437866322366268033578278106142821173293088074256089450871379957100055745631422968909768113043263323280484902961172816726707402773762593175817448216581587787157078939257383741146975527719139102149023612227144946055118695025877135099298042351945532892755305975819899423892656512007826309797546430037538702894885891066699822430513933657396788832804753375977453315832567822481792715975992463688999607615371905610475617101633913421428357818468648656765668748610876165060618469500897863382598688252500664722833728439562479642500126402859699702681618283793215108008195944268650907666646832999729636255567771659587960792629566943865331696950608156290878388145522528133003008217731331172292405489244672987610961692774235629512761035534202846625443723481318829279917069249521990602383244912359401456759030340892258251581412899370284432218217468113393128543775449058510519770504129368685189659067950058833358773906703743727321736281517031456137599344206379336366492034432856591208314801552801744771917798570994962843812315239145256443468463669360189405134518679826665435262154492974187463113318942440421804647354203067660292373947807882172855252430036788616116013910057152101288108316099836724103620458054225463555379684979214477955955372042021447939272201515054665393417751862625570105442248078583271456043383239243943733938636177218001706412230596027413802617558645036024477070667109252039697963183732831965969566249008408864810208425002221227182466851030003359131324390962047249374915989747762283036548311599353836065704204286755802916142989058052156445564761148203987381428819823141434449693336799792475978691561151750816410478029584123125518868523346173191098599151868550839205398891016359230467817923438911215160958159922077530069854995804200795103804033306997237546134024440025286750314724674568473199860869912782897202680751188622492386628027953086116972990605866542870814901610257301517472757499163195483340089666928729568529423838666234268647638150613427561449804390514245554297024767057935000806643258650835215089790345676321178962305727228597896917104445710794113032131855576706484543672620927759272848166722413819934326229598705666162178315948937229676614001765208528460995442722693773078229610354217025625916146668029887385859510642108495403185627854558905542043343860048999683569195893575770815339591214808291330182580267396048588619937174056197780463873443899077071913022508789817026627498082097090812730123024746411864791214842387570145801336118025475411593442376299625271659409899112920885654654874315148333694744750807821736211263220534380287894026439698651172286519915039574445050871656602234700906454096767315663668420278165607469060522451750306290441482646167024480401511654275241860051005446360026377693041743469474027573353578007507306747292002467337606701415965053707508453993180954826737679594936679323551782318271607080133840183357204738244426375714674867607919436752119215918168547557366654048175656363036234057767643334625253896447674974448721621369705917116055739471881052903353355139432406625125563402912480692128670224947377532530798277882076096331130214581395249970373361300683564071262825712516927715934550023105079982320626848100824365421454766556711994736799772019577344473776711814112172041034536755734342547928929388945299121813734772747484548421621159713701355075201573065752369418422217823140462766277062804046138701728252159519376083584871449966097808804780182632166663596087782211463167542864141780566260005347074866661025405709511041695887287070927384857978669032935005076092984192380362548811670457901151321015371350947294061840231001813021499578894748773510552323749957447897217574488537913062553458482860891756579181377466943992585280391118560034217011592477930301894305640830079695627176311807181508496297720513639120067356220676210474712189613984239928713842227639157896152516456847116920052703902506361900666205927104280341760597214941904662483124586473680518726093788286671046594763832578918199889422109889295143968791362144403643425942634071552335576797073292416300829127215673706558547597585117546861601797565196154007482130379082176872446261169590071025476754114131974265011412169518506391375009770062487040954036094804678203281291812262681271878850382416569088756957159112221991941509303424014253191387079123451675613080348394486633877147746420385429595638249160138414530610057123406467175341866974802359454940127018447947029479995714660206189733797692539704904542289360999253768891386261967836764495758911904992450526730825193330677642135661924926895465749758912745561564227941984187967562178814829208376332663274202115601263993060809646340463860042185183218607400465175195883649687276490445705481714940189829993430254730520309648261899296770613639037639990128458215831258751309341819280747254198478870995931966806244491941500523895086321533014968113991937975656882495831992613402842086914391042860285480835500658769877954116360417116604934311079489281827409069125166371634266176922670682095448181118004312269106880599014086569085459041549684554674754844452642773136369740608810144083677908753698068533210475019743888663367956026638754125191991518854866592412823035683984169052535640975975466538968756791698223362844167147082144866824987576197087404943559495175047407210450273486893276838571655388024086417284479196105937514754162560505298801369534080648511137326431957194081858323390239957348618403358880953271196097007843768751082540908273316203967879692101972936155738110304519710040499966269921536965081708538542225948024091897551181666162586694999241822654853882969915380390238550233919983228206284561588241906623175738660056788507880352706995047890773381912727749143127179958802701020028328619749205232445307816399528807897029494631166039847759739241344057192407940518018468920569870742717717697884775815828398046362548717405924631268577985993946016303371826937947653153866758537690936031003897276870895648023454253232427404892980395396785412792209556023320377714672528741704631026088045578824464363811251534527387209373005012901408673457870207906036994062480685609903580338660993895237149895590634032670007879182303866282701115324113148635967820080062754313965447482074090845483845914213790815814384055181272296885810753970106990367876387779542918736318079164533591964200499320709539759957906560554487675770050229327582991764763340447059901032760040917751000502487590559413186167948846097729712371681648261058756078647110792415702973705608835031045035944540877359612351902744081785112002785084544751976988478046030166546595068990135007676208606919477236802356208422241360709095937105291408274458081290956714290563359309211087862800950146089188149801503904215879029783501470260407693911599242691242867136413075834368040196350088706435957381180391463556787375546442388142324383139449323152106980383141939145039920560340281665171793187752469820399938439279857040287357553799068671469536460122974621735497924997531670475044137725278442833943592206775978463393583528985961514640467616154596195562275201481027255266607529008807263190868110919479981401772688184275225836222229200435073543910796551160909295074372522841488328536390999463606478161846576606835777127389693036322032341551167481841072378080537317188027662744826980751664464991883733954857726994057384135090517381663608120243954496408842956266086869616694915809298922902838942939578912937680872688109700327865006410336718166389753488348999252109198019144378067838376728058837257334415321848760716983515632100781387675108300322236711879899743848734233237747335232065996543321755592084186103013097194592963267202579360426677022105529050018588804685035502473914411689447203797322107252707975639074233059595357232186801911606149404597198643315987677008523665413001937404456118311585191040856105137495938027452255253216111342112225778472087540227066766694555989473930400655401009493744730320574304778714411939357410600066790390983066133428572006649365104229811976868018607565520040849003913416693132384282796860149743095526452898567203000521778629467506768213802835550273677275223168899054453803364048348335219991080388746911799874319462444077084227918714277263214319351890596661924828374624311061235680400314459359167470713431988324987037620985795396157213463178585712929922170393008966226840689316021552062440700015529170610250354552903228568311486929813681439412046217281523024524479917278399811884142106268956339825679604877667268264969736063835624059951442982205947252906486588462492113227357369126014084889582520890267354662768390603109081397838413321555458704711884473610952223565732285066624720048823590139260060566631471901818403858254240944342621949172086632303220369834645580282189312361685398896106830206630145180797834079119233227904841985729230139175042287204208287077243236459189930665339873278558196052218074738104759913711155081753942274492268422931833888790261967362289156536588024559358870289837230876675451820871238159854661084601223381986782896771961520797777721411335194306941711766471414661219045689276063657002498833812854684877367295257421963792013804350989119731016353180452106418844340862469771183210230479170083219384681133129893471388525318651535256261504382561311485142920128585449512935679650133843288630957893194170849201810596274900143277680140058106250288749396607069880078857897029180674771609236097527392789832760444739859549202534095114149698871647981702757278856139577480430641760372042976694158228828811435606904876116348026991731310443156511756161965494914351950218754697931964350421725290384755119476205175219545998127092209948061106526348090027175860691753091910439057737159873312725726439268978302536258220452297322148179376543605719702081063427810788596648116061902636604825950745148018017230467477749480699711238884101399963971212741151883126798819596620442101499329480442973977285675901863946705452793415802688054929072649202561448316995548848041069959027175393615221102765327618784804548695082808661286729617030613606008507912616358218980682813533606567780750722987687456168097767740351534510676591434227562455850186183749597132169971975905317572167236320620058742501509449937098008327763352808050686166918505995402745793789493613930690240479940650212619602707366034931329808845414356543001509526034173243061765857068324027653214622695138993709816614601322628833204024184375717561292145844886393328454659495190779693007371166989538282760085124632468164525640773404497972833452088505891498463716214839574735773642381695519686811110555530579293272039117909912520848560798096512705552181280921466948823213368812749324409618989671463251100409158047947455405786615487035049692730788372939213802339544678523127801591185889128680929991708091091138575782805496555054600889174643565540111965141391466184630456664057281315500277332851186573072879396505115910070557984422308350092055997006147643880496458692547612274051024206831776266495907353670190280477922696539173733819928122898733078058746154830809130849717169667487618086826007167973586405638863373034255077626296535189495057717049617740359697340330442944558515834335131566966418647521941438182423017431132333803678064552579732554380529647695559912620199905128696161887782191726604128618137763921391423194597224041287401317611086610811338396563622080149070635735177063102966901267993800863028347381465276882831590615985570073563749022003734770983031605990524379317868466166836164756227141738497956045832045209975224225368852502711469470996639796330313206563776731867378902859217434519907286648049009069348091054605817762397835096566774778849676450273198738277066426628108764575357896439330477259795480383793804936036606298737331365752833010937782521250321260301428834190481514730311869635376083066325596676434032340786693215209096996057397545643945350371182991330543586219205296176445807051376025717010785813071208307720050765635937440498837418201800257238334736922562451141799058211099052403387377597330889588002085172592801636846823036881311488721367495104901267279216045644093406160966121212519291274212212604545703125599957711260982706303790317055172812110084811144991124020849900876883331173804019297806179967948117553898443291079295256631633320960053350660276425983525712730794387534630094393316388021354956944966396301502699515361488467998428035898140305945713117588710598025782735790271164501033605035536455843018891908138888241327404404407152698398060317379968533269424556371652858921907141624874339927486747038657033042149167552570315136901412339658038985435256879793094051289849280654426214989258790224562442350991386631889345060912497291053674057391758642596936643641853148939645909267914791023947920294420945969651421785649133014731404577047383055896277794718183044562165263235621374461215988897145793994751508623820011118138445013897931372901181925663874606021794318872363065131667752627281381445965231837703761245888786841498888059611666488813866701410338524860913666378260530862545342711584382747052977727434113230699917983046554653748251804571581553618976184815270158176026499618439526234699331377647532896371612395272217704231235243219440371817405234287194874703676144330911990223763943517230227009986913181455340011465729512959091817045040633028900466934970958611022997851031815636211438782823842547026326112120679032320412575014674803885663703761097814803334582863865737584400827671446527219896929367921781436055072455743590365567409552340901542999926840382747101535608100595186671153761832591720110286536797799987650222355731075045918587478291978368582099187838194326430889941377007215523202431710385694245092969255548209503051420583814542419211254388957137738571120110256708084222076919855374177214713782274030314374926057573054136197682281058208648123599814082306537710011315026036863811169095480556492580370947611517910072511441623177634518619271515013706412972917930465532179255824583505742585979478402373309425035639972508392507608755877036083135292791326514258535365520525949464123987653322833998391555112200289179320950729433822483112222459966489638159481139976936224924337426828651628496084634287380445045198094357993483795970816266345509418596024874407816916045879725013565387352424960733063865358622710964360678131169579787834897624432492066181277360754689688049048696545414282471655369305333538485756945524533143405100063593585354223805453388886603165665602636481953031848144623928061345736810203768997644882068717277834587810177283000921508725694179768621508281213879012489942906965586657406265869184481115509083446189120677772389144282252811830918109235893002233609816538557304707000018823377189245974681702903481934104313399140418313729626927494856217242650136929106484915327798951199828655927173601949217209127694620428701196920669158639524331505487569541496302961768898984983910764854174423965246791385893330832993670610543087351884652652086530145497264632281041778554724860397970334636912906893806788519769832571367777768256755185877804222924065174431532650824267050846143746951503656146886116595578644126151736298885960563796099830091460426633201972420299489937392985956246315714743507699420530568286230786342732410424148603619628812051955925047115108081181289306241649634311842426950868428764190055938799549590750675431902496110939142106816471241904254539676590602499301546977248044873323512919221066244527948583758475317442859293648203993134313577488136314969868169350754098304212811181197144686446734000237637426613444293490085050305580371938557517776849057660182132408978858394466548106843994596388596221955603584755077110726233334223446473814821047032478629347092990674151383008180558203908343737652834780395880240186739223190346366228813803494736099679315430507230337600749962279999829602551111594075544226803258443834755155967435731520204637634694043996248511921299596168895164084890661969085420588201526140713784941174070300671511866551384893829338003514564480223906052475266471328189606046004851030712307633666311525121663101875847768058694745638292769677863671693207764936972359112830624271636340692474812830344635801337336257473630405302566502977572855919020870536183231963861354129637935153283856228193813504842022471490507027675495773562825152077303127489049815853454950456039817732168501546299641275550901564080797368265079917183312800956198308531415006515115590481734010686297212701486650579019897114028845787212728164556626759033648132347229273302511302739150787158226657512308028663856247532182881236564886221347036918045789124650668435315038191870236561323051887390328338314184986138717202545410992444482666243269854415113573907633774832776798781874479420850940870778256682555271293101642912061656884356989452320207567299378247877530719955608890182761380000124582014503340771455877410757276153435280398088207591744115384963923930275461623757497081889615010490551491036081563269732930125809080556761973635763846030944327631856874584054112107404600123296620994701175660952831963373056357572019377718195536800906280729706510995724825997844434747875038207273691949400934967521455461611240986478538085204520763031203954897288084667228695297959287503422940929067198073533017508528993625020949315993608743980675524504754271658967185803707861490010661574350075040970421547410274676685227361007114638590740403105391198974249845273876074189780114922827935812939154148388620885687009904837736037276325535284250997859664904828302498008451248395176453625837678514278059881478460844206577909623804021104134032968505443148977186026006189802046584137052869307636363439260373702807105239875356880646516110771633617797947724425280668765017186820201969500396778433657931724837880911991174960093858093152828012841832360903176133352807779271921855370796830398873663757309335397403692962964033097194080267816932602664119795068164279978468779894855440846874865811688740939337188557975453209538219767183458311359131786810907514170734946113927621936221955611574546396313784708844387295325740592713967592866856684473153558731850441436885880930056230050977534414650684023807466211087972884606603151689231027100858427476650814022074475824684002102466023209101931146848488709629095002205420250781930461948566097840880335947603699847077343439791276780435299042725913745939292537706336399518939669399508708135778307662471106929928773190158493534640215285749813511416885313373503249852142889206411705113663226985038864816306750634299004090471123798962330434268785308264640013091261850923772839083678113387133820788966265879353895928946596812335613610783787726045279045803517583782978161914968140556117246955871503784769014746337145655763128660285608451213070548232859766068878553417147112901087159400880254331565401858647342333163643367625596220190227510509251079048215400866292250455622473634898691180114576713134704268697564768372150655052003937245857238195983668964147064027793861173061139370677467014852328068207570565966372324602434127261666134731338847096756219621295318806424060860848577378981716137340239199513272124363309581219923885266307771297948788079189186429482488223937595136830226707082645675869356551460754565651225121905176877734310497894011911735699726325267605043107987716047587786152771577660529706184390378902765129633759024983125124915390826142321138887327703848000293586613472617667604229094922674384552817934398969597547461787952174186845573877395150416108522936808276455799955558921581494157508633438056073118607679457353340326294828524592742235855946289254061956276000156567261635807002255436098609671070150872096607444309706933804611519396016638260310588438160076987162404811565171577977675000696552985035858937318478581823555023098950645001197550423262872350705821524251409239592933835620987325318522318881530313200132651204627169813268520527321487976206380846437349123908758536872823718787171337730043655475638239606855393022743654029130581649956601043859970582969798520852456134830482799150940762013253718816056524456111754463497590711654413553579192109533067260492656543033721270255772284747195490473341121239868651303438053120829179734143581055004987359948077297237287158170046514201398151975840258546880609703010062856861452426916807513081169063417972477434092302363570005734781902120504470527313233315571447309052704347771918297804337956511475207344386076208358830155728684711861993727253004572919937834714921830419989497008398357827761094677736383821984074530116819122122138190204114227575900210789821936463333025383075079059736853743856880730643653281594267669789394556927889954067536996087694958034410535904352548292116705903705667434131205303277052353126839888145826287724903721514485952885204080651546847330993762115149925448750047953581629735396984402746081473868886347712510031657921402259542708814222648882639481148551226829295595978655791450096483940734356081902480008893614520056907273300633736298785624734296789578374749351305254373749030256457018963759879210734407457157154040299333627476520592197246587126258156124631909837248682152376523161558568803001561235115151131958679226480880855488659153500993345493359449276738468442608184783850669530749362026703162088903066362222852254902021445943054361601104794003464950787900459969553490590114310284496800118683202390910136487318795363166225817343281154796485509171481884637044696942711540805375841901783023734579657746495841466957351297676707016801789383374337676415710293366308709194971480798616900795332435611991844193388274349009093881640424973269157762691458105963519326930598305475681901941302692886041655627519730003236270705666604567636796090230759192557177458856622377438404579341822978869083348567429963714228956150146191125083113214762103188272153455133183066673962344208664124553261057411043216801174525265233538321238555962826324807146671632726302293935106701407635955952245683204792580244714667778403487019453244212321410138435234287781149139374243638511834850186408124576299177156887013157489806474041046174686550027633796933839915378276194612579835631355727692270352827504923258272860302951926034056014941631983808845083908250393270586153397726694710899909835082423597423346711277142731684394619985298849114689290171356088132412156715443375796252424943806817155241718247451852171560809291993052445059512161659764791763594870017264677220688751847352979624114640916872337054782691151946563905624354127033687147201596041627064978191706642121988449026971334384341283867332256758716475098809832084957117213554730583251733877359778669929216151680733170746423881240783520830896798240864272746936664112988712251700270666985741149660507308694467200995866665539921382210654920692454829946791651345392175557592971195752489683214205772812917645397697114497635701437662159899052136199726140040329204166123930457896588862490267289698737817862643119666167717235417597477355153309721972086524494121408990265784417066810559882700074949014895462411993857307767728395113415555981166173435282039684465151252700985963253886209355871110581300813277490086069686229641937419830968844663990188516807312813741940831425408368699936287982277633829011100521745187487947702788769839856144934733002584380554474326899301117786438072670970348611952229465454020124937365715581180410041722645399004502025975050548467879196145332833276357769939861415607018842608720703458125111259861709443884163642226498651597593794617326589201547726742179295706640841715553213328362456457418618816604911958666071073461873008936352464600851535967607736023191303346076020322564974897582533073603517629631259136031732567981669724906906795128167344011393684530543341463189108975255623409160468204422226617786702938508366284147773944507567838761613379452384291569332213300279898033758987423592808963361952561065031796258617889058839222130008213917484958084247654235261396380608855716101393693653917366345804554860188819208778589897569394443252804598849920297713426789500855286975840253976756122014964028678494887815546372730114586133196940870845791755746613212187468771819756556925495682367563378300662914537799493597947818415883024095592173779634510649187213941139985473356977136089381614535600032168655771591251009218960238859666148437206211025069741319761329627582685071658331505819840221699481979422584283040425454456203668097154620302678302399952767449681124937165535113182021036373215417858986352376165045805618329079101520902361980766999732683168356206466546009332287480443310585292425383763721649704953194937142940661513271579073123081097796156117045026201238409724277384012426634914813071929206069045530013363678376632636503494563562899683272679630470473569541377889401375162934078145553174254463903671006873234567646091148810790770496946925310550587972253735580118466024067458265934275598511820681052795399610850923448286038884201001885871264353397650374726388581174445725699070014625535952143275141911815025252368548346130679251509175735177514088757133227539510330186753647045584034195796622117030250238712212443818585467834323225534525202665951021245190744933697093281218234480524224384639775425632995321988893256039224662293271215540794226823406507369095667188957922988581171305827536318601230089562480747428020865054112950222677294314679044133768235281895819943471553732382214627182685240992837358123319111915584517456840988317227671359416067515409424367842222255995319035079667526476682988541594182670883195522634769716202871501424931335645140135462570702245877232693137788486395909281083682087812342554682586183102324524187482739884613081824994045366535133276724436587882069237994475408222434758859610175332278247221542021614511829438456906882571801148413926670587575641526854759986480871993468917885507321047032971795514820838740903635245139317603169159784350590452392802918562701196723081744613476892538102601667666049382100019263194076430966235623733035201006561299801511876794841828694673042682177717204787728748080739469554344325301603695661496676421618880598675980903736076753325606138107007542312819427253080195446403655987455672427887472774001571729172362761573401688930025220639776976955504052324929861762083914291736534115899706876149428595788069043125714067949940642323744714776942232197565335846521202792991954856678349885496680499590402459016683010112275848341399742679101649640409476486593592044961167834910070967643633145395297093175641824332871218607057042928241492412131561972571520311947952269040451881503335423090117156283925346993408196110056567934076644683148360601544905161696195620381542516321732269876318029392185486590385922359578294167479336919712573925024575342256019994774907284813888633226198399505741919266561661554880693981254654184526961224676070619891754064340407620231224497044393418936155394758185853844384765683484301148158270825334780276965003180205534019192537089280226466627874271838034837932567689535230295261820310510438947041692592453034479897501546432578753499663201570808576045675547634080851482941458490321576492784136964990292272375948914280415023926014898035764800927266003078274792134453414303119886610419573033032993865251879326861987228445783410100653196236662531747582894950970005311750291063878657197515004671641056933261486376626954048645064085609330822188068893218355847918538647295959620689488988562192153514066227373498536504342213501193684390414056322501869142350151029015660426224632548552213084451842496784644557555166848370088972204583596437420464273711611947122155722486961870711884339206198511126444286238122545143146495466854380033687667511989827135085450365128587420109153360799436734347076370584705446605221734138134354614799040717421860126776250565148000808157958056224372960194496693499274384561758954395347045317746483488795341875907944068538308318916909151580180934151155075246919734724545571790311328119097116821194749414673923545048871334838741741736386884190555858513811563244206221661476374838749215652027380882195048462738862540020152729847198164130949274000309952451124190081676833791794044026865032740242681778008188608760803555586248131983437557891242228016047164567704329969173434252552204318987040736281762968850424014675158500386642114376607522450060016233078246276008838996777081208258366680587051271360281860875686985604400244340421724044487478387571465861222431423661938101802839503158868353089085412350541138085819056861268690519395309552053246574553653645761906467068220274064274252457070792076877525501870614906077172317955246966062009761330841645076289704623675313244582581130918726045806565983828178646845674163610439976595885115370055571055217799061373763434814227159850364396578548112174071130662337619873561285398784408931935052974537620452072561631840088179902589083584819185298696635168684018275967575086149353245246741960566583912586387471697334375967134533684388960425623846021259887111236912086212510171695579425449791649258773113294334117889041427875794129920059918263271778854694010654505605408816326834044379801769878482593335454893465903072027196454050792122465378608938303142765442755564460270330117339270874159273471382339421539575242100368306292883772187688113164733577997715840224688934026932440865020909070769277905114749668482236069043538434275196650233084161424014259272196984943930698291503892621602504778119012626044914333007188119478194755007688750513432799394947380198380802964270472372119243431687742588791835249872239458391213816299373117265257857540135651271588495284140495825593869723590322931110076016704845529022114431438675396583218206585459658944465221716840466207809104958154165089146542414836013392488904503529345596023203589078414286217672072512053512357494278453281906421172134578343950779049323285445870661657325255253307629488069533706630875165546388063439843752471532185662348657576938810879360558803167634048789414652712567106423142574372082371713957944364128662439750465966912362644394154316246324404038437817015099585309739888085606306945617277759694682167789683459867009513989394760449754757216152691971067818318800572108509690081969984034090063179492910582908228298845112910196578517871906142249138758999939388554740454475253274089040785862515530818797291017420235945958492754762029900400962812847858077323232700947523139211050661653049920123771393984186331627885171077323140772156306388014159423199528261962483381249284060178995880287097258541098822491628065988503159730319107533027309603076481802710571216304846291214334702255536623279900660984451870527784727424254228410426779245326568245761685358809824587141640266412986808895176221179012782512752427925498383188496011813300936945657104559964196677847196011681883932506917458516362495959987051093430261606588950790584084260965463187729847054942711079384568974296848718568888706610545844486344261718062709107345616756786024340852490540386453264320315918827299710581763726531563957475172963578918569488437072876937782102252008173601380992930356896881142348254779628454836203792169384815723512181355092267709603164638371505593501906737219613110981419271142132159704093195763749670968278172115142569817271143848976254162228941533854224589375650869325403468962408845123430063395567006188666772206577939593004993594610990113419949962967900932935522535437961468155514205117707276688314870569938183615330429405714486222179755529206608629666699208724554878218914756789302868222969999112017413341977969771495238502845597976431298212006961520117582849001372300197168194967709441335168866854662358519933852844216437271533695172719331399751696552323296467897553248511366067753209159783754842446085571319925667618581811085601557000505682238087027902019166056235962015944397544792557614469526585115763942356476136981730153210382618645112609188108599819046309103800055495212512504666638019509574956176050745494921458959344610876439994548742784190547649997819299964378482387171199117986914328164335323023166635974393131326604832191338073937196878746648270672747160217055705332483687813789377202141526476208454254848094050900511989555256635014320566574564730646129133428785800098157392714194532763061760217646169929548659116162327312252511515810537937476880130462292218923849735977487280290110452878272935768470871353045129170862572942177794400622259104290355809695434004546154422628239502097036477813530563693187275837252900369522478978414795260579702621225594522228330706395878895302179637008333056037052602260466184340816130989432248536527558985972514288409912805467926637988162732946147871378897910556213381484677983569645272125389136988506630996371449029464817461766013894353408671887806453416359547041554380662859386365724977592472693195952992993749281193612756234298441294353137411192387680716751504157138366438377251427036410190979216890335768888784753807758318187578075248306863458377667684873459995901582053377983591689484703153135595631738753789323763176881118893078931440469470059656691928195430006252540747539150135767650313602129601884485427177336919331387082065722709748711016354221417242434156274392293650124931820272575645876898158561177825866588697409224978581921346295533503524275645854063366192216097375063691429085359214868622589761504204742907096980640215875633439852863749799754598778345041179798658798712183740539617571863777579913098971226136650686169301937944395824269637381408853347201116721728156653465455638793527472368476488782929679486825303132923143360535724279554397681725150876477816929936256179274354383899763670901104533588173185020011170313220402705785952303275141457692753606206247434706781079115988299217769974049969793482080389331616777579295852421585277665037904392274605870664433573585414412426804918186449992666951852520659426988380490134920249802705033421332880807049685007080954951645377022349491109208707252392065554258537843530974490881880653588803888854719773911412218443354982588871244013383870978387608120472621385572228901677362281406808857730675229657254289341297092444461643083179427619700261013489392689192760746521737500557801029421529641041817269067835251367909929455345613189528656181875249577508167109271825889238311865700319214131360216052447186586328500874640843336423924622597930670439739452394193299374544462683575363447255031640281041387991855949090959940233153814314095275222271310008588711644294802247453764648834491035439764977460777458614069105938615045982851641511255767309159207677001569130052812166558142312468402773020191244818672116394135992671340224842635270279214874067020074627866774680181347732568812084012751343862914402402657905408021490534219707429095372803571312180243202419783577778104861103298062628129351689651547930452944137926026212522460379107913037482756668616874474211814332442407550676558340216293264471604903564309593944621140726233868524844727229722958024523259493586958820641327769588635015721009514650770931220491602179265868865018379266663785322331707225014871344053641747056882535999044350465486861448251062430796497738542591734403252788797689490661515705354308653540180358314081610359292098380454308782243890171021055145693697850597712751197639060128231050499057643983653095653117241748089358459774740492662536309269484895352914606893951947574170963606751198537914035857124522965393320498336835788981666366860959923424800605597162093984740660090856955323416637097680457722242326286470146991405982567922200547865886008633531196553907528381954463886575398386365012307425799377528282469781186405076284497585739230153266403589525856410927454591603206679899987668550661805780485763050423183732940707568206199705335113565194785197466132547211789261596383163774457085415848660703034736672804600667893611945571032188027187663274256194518743120277324966617676795983379800712931510520050929129412591478461748111745085504670197819556457870192561488839817977497693288962508027879241318737806044834772069817530191565299230312794715502143058191088218854983080496894551866062909824338455796585491719193903789583188213122829487380897711167444747830456986934103936311332184425492637826645007539592904063293685088116278273984604591504325954434445430427022957383182003941914561981380906687383785495557968104864421510851149827023172877964368722727530548359869022701418566242369189902548985272709528844219019460055357270885930532143532497184128934123444798298697988997999571879019405420596751257235589042320951454554810078179693765746156286998533096270680209353128627427703512018688946254695471179984509067331103768658175652955103602458065538481071924293094988119746340621715496409402723358398671336008801979250225279479201055928533114065722754143502830216436906843456748507512927445419623908460984246946372514901381760144861730437901434415176801903332211746000989261913937873027597648384823360363013371725939066177413573403751423324849527007207938621647443255641856003473833029265962188603136626331498405142011091388347830453841495288087902553161937096487127524340194433580227070933641467750774509017932902851438773796525141904850600856828309039658968650662218811035689779726519769425261040640842850542859043425132608555551404223667056161342340083999652248285457944310145774617949771856679001918955342582961277033776126159301727686082535192727813863306044577739024697762071191806889100978435237731044046931144865891274622741176397278004676999487727152480849917277974869515509431681619943272425637445344660842217689352474859573145787453273096196368129595076283822000927683856066620088447172140336635622899244851346878867173479895145523760870606830489786461805939196164049685817779791301318247890759629080109062664167041790558075074399282197598403757833435315455243931871990305295805515751182470813042124032814835410012200355051965160350395167646460620229764768763321635919136624301811711910125038362761694514405728388105007670523613053891754582543079150395078398155643183391546951528771812458104932033590714529464489032712012414840689715498285907448596639989155619578146176813873099650108456617146672693828044801310401545390358387291999033414187473930373049549053422550129250642340256221242294081514747143880763751944015505886328531171604147509970628128928029085123559188483943091128244881869029976849730099869584337326053809315979209418721895759333520805777540598455457306924685846168399223871091007853164382335202577974530353126704950970696954043075532014155747781636040942571350351732384768119267785715853997781754120195456174274995080049023151964769524740866742153913028824861275816723136276300053708292096370323343058137314101953422844338486601456912343817299832053598457551279485481590620940417324964363825574376535326527124445144584309554225955185739854769354494856895543253676146304152692344362187014666539098050088531761016547949167129102553819282790792000947769885944596796981811281431902167701737033657255650258806075482162988870207047652139216140901815307992908560984132095561256589418372345094039230085811344420409707353134577530920353587748446806134731219228077544320825897461121756490183391674337023590140030460967346584959239155781253269982799265584890285332367205723667717852043848201112230318459532838760633451506555119902726730085809968482415551180983129063887382071857216802551230759253726585987729934274445597834193117120999232091273391310009394164273576676211723719647655348356600506947547199517574192055382110007760707218381571218619560307088345648825792825579584685767330893211140545121404865873262217012324528800012768818155540308264229943551527763711797203567871089567460293252985973450772562685499276633013956062185769426069768856860250413576719858004361985513468233183355760100158692467956473175668413986371258167506641843081836838654593264110449210458308285843363753592192704985020577337088544234222530207017914088689500564008849913043103345952971703914154796667197474011387544138797523606565599270924264889233967420003819153276505305079449176694151351447916223177248403081050193063279031930120262484935983735180577659212900228251851307027926979450876137701105796829234582474255913286730214827512509398044717500835706410784353152929188155382603248344383899325504453149614051288731126215325328359103353457132502445881273699861651641082801902872995356472070459296806407414096911916405199447310710067520612925284124066750445124030983207019342031435338611190165601033351622155200627577523991672923497578935343500288404927039996050590161177111048611632896745559930092187947059325223478151366717285757208090392495155554193955808128847092252217537189508948954496862082045803292044645467839700660370913649934208416125101854986846366414491956887930742820385914150641101683103079014963050114900686633395794837960543816975813703221568812462729156402162929332302429305288294706831437863174718477459664636782703841914686198733943547816056054515581859155598281084898390994218165615690750783159811708288280126706468927661018944066620541312304130413192311300411956475932330143401089916529338913701162280145642294621880261662038347029238139902284098331218600690864997787783765101294690820054980554703861491237912027932684474314356229455469746184867050188686108737952485217744163950151366601383756300800825200387345118078174705011642162437919203735923216044885260734990432152129669514623437535179272135983913109168830892014171625295294671830906613387202421579279183754194585027356737996803365321236325452864494914997506644200316789203459926123900756145873305762365375901729844383077772680900468124171581272980501746103519196683431986598826084498600386270549095960497149908515818101842173951413031255097672210960924066466388966823631761747319151568692796620859882920913724452689791021084185270741134434232615955633449907667170032046588557902617568925198252550633902270075245110165956855353047561326908149385155470191204845382804958497954750676909387292355498197157079013600732944872888834820157543605159038473393277513164395150137609400806454046310175716924532637917674601612603077371773211070983435165103348119982153481905942934693530328499844410004935506978576750909234529866847230497903755745197979525321008412437021759294797254039610428050157782754913295368911032803730284377491463103129701893022924415071597991218994335045454572606542829669078488794381519192519212312710442212447678377213556314793487407249507685591539800491929684762610209376786252275054990753061586767269542062731276283768527301710774254881750791164120303564548379282240416366551303224281838853703742100549593690991891934635355192631207337483555299745589920476944114004671625406871797470637282196445688671712515228700071084138105162818260281501661802606500266193526852654088106922756011549356673045266433129683526262372220310148337400628811467875421146650838944111909399383173197313097834655983478200061187297758694882016734749566280134261858322196006027691644846562037706835193254615475357646591588800130430181876318544277415484077577189610375410018281460064591902747201664953133322494823928668530464343275574317659622107419569221583819046566922788607518484358360810502918982219132241476408921049029720866820469928219391107380940156039634069997032953706572414306648046373311517082043464954119192230411697463595294665843276259262030001320330493470573414364086661973753570419381300254667836043872006730497062174534819255579871978559352752218419174689533853315385994309151043154339595951253389477908258894039035249853254850737254212690992789182991920313349730609499173917789017696834684063182937389142172484914940148551221476828180722883322341970876015363884729111470825998865518731102679270930695259507117840379013338693140518612643706043622955797945100885784226921861478031221973162520090901862373554444991698514337439046558852073999370826880708400006733464570178774515833321460826630598033325576280598341470888921835187105940715021393078726091966958194079257619167394582002609244442195332012563239965150387868638051875293265684674761449475476993577306689262782963186996714556475861470992186050095297954421615456551680776800973778189487950567296848232705404176701788716030997709061790342585484044126002890788364703576591422585695616951977085010017689558737113873060303743839335684687994879226814253283258661396099660703466204277031113587125609383341363998428533214160744735731670242410339971765843594063387311909841613504321163953170235227838707024184128302327173459666746911477641228812120468863647849032210847843714680339122846869717868724920609796155556799264291629556427388786720419561956166475597125586701940040615372616009459065987834868025904602849650797397539693251697896648583562694324880586509081950998674739346581075125630834522297069969328898481803031352911726707817487932441255533526224073229440007215636094838050708071916603943613821152101855430910475290285403967591322932095241560410491898572123963486261687382695745419601546020850547027172645810730237774545059329133205644395544246140637240354907774262695583098440558474064860753917583905447285644049185350127342227067160147890776161844109654805739199452310273326217878976813079661810520911969492073294806203000762530265922209111353760838584023819313598334739990455129557337392908821718757598418214253756931034646375770822003798906785968734406251060567532906954695626261134408452349514175126903831340554645896514471297481359377394611472980597418958166081421950809167120436205842265522307168303291380174273661128047506051090182495689466180048777474673417583777984004188130832433529739087091277136973799476894705165131153948587259091040651199685414472341697652673632298908954467325266771546597906232051831203898997339632656403121196334642007541286834702462175635630127494079283621819724221652078622514711592862894653482906393651936213228294469153378599254079427908403750857755710476386647434889913969707399593855699778373823096186007788767367392195107201876256365771089413306596807803879913539105077937669273889673693277102046140933970957257696025525443664839041096507965300452984229871532761999611408789757309340286724276971048868054590018842848846307040829232960702876734204207397826965228426093196649234662520744324010006266459824498239371616071372488789596203398187298840260272572313872607107236973893094705441921307470319800644780475023202119450001918223484309675645149264004194538564772030118301209126775767784209473145900676390514569832504312653720968175973106729435082045790399910442533146603531678971486823929469987789348883910319561964063480610571756583037972550898881394538203166375242267284561026376132688128106139295007340424719392062195350663509819754422069699242352912797007431084862590787685346781288144836203451770210451724881049414643248691772347732519482791900379883480458519051347098717590696384686744384247588051388683222714997929207878632100397954031854174955576745664450570337168680389382608869483377695273721494080683271716095372155062810172899397915054265194457603590748138119397714209079097095198103224896918834987204366817172635691073382369776229286621098736952599714251048622733820669496032952005806097712371692301118476259434769583751100731327465060469546206102326891525627954042170928918912933939314769809487755421075481313466868393115492649834708829294095709815782371116649139570520932423801897911493635258358284197128886085348742778273363307573169280679743093003999833499068448507446867576994092730798704081519883323825565627200302590445043454291324491945618085216816802917113690068832209451184281307611983757489232241766509018592618381536170371094833617521483497315506065080944896032064788206788912122901797601058760553491941660856329247674338986636396712549265454473244235027417352389649152019881562651683627535262432099540777654379264255950613598901485933198807476557342601852688299879898189896268354207785841108091985875307225462028830700738964947720724400833301274764896651683283472880208751837858353502085802602837354715723666641977898531350303201700890181366898092700468272216153441954715477657248753079280336724905968342820744711344977583739780498368609237352765164396106117200397505484977158241801846190310312834930420753006807993716881700058703640354251388641906814194508760925241554654729546396528794981591745016275258081602834871454161213853306156457064895217710513745521887843861398585325780899424196063974942014357951019277069119008645614695247635230885193194184132915527605793475423278100049735091804455045582604359298032913777355630510873809037499815954896262107298443687019164108626860201332794420989643844484032800551240054978044046440909876168473593801113490012017165614620019749643537789705418311926668562247875840819837889046181639744340221351247552922096082890548102399500971990773340707459109887395269344842481785197111150519706462578327602050251836388288696741547100293256950703336299916724545660001257726762953226792229548547484057821596041441055352358458449577716488280297130310311058504781678915676226408750090532792948589222783572293888463011014292711538563843977587677296215185184855662654270834514766175244655907948617271360990431606416381754691316842403935479350065007702398545308201013124712232888406451588958590130399099722618282757704780803788901169666817801324414722458638687953759521266995317207156142040140515913286849831280221555381610715426262444293640024532238502816163610997374216066921597846327060394532232515779295498736568210476320409480473601054625070296902697708794199779914521063535623011372377024114533809983772348437678337175197369255027868483811295657370511071996485934127519525411746324965727652031532696145666445505069531443410236727987995580022994431512047880098616278286002910190859414710766913308405865028576043379593153406217874660187986702107378778081012207891958544945275652623810929036983635360787016802560609267540153239059711022288545327178337542490346320671950995463131558634584233993320308053771267367241363873883468949969444921520558367823712544104911924915273720244986241004586275414022458824201421002368515240276502330185979436705461221461310753019365444227232251480857871640129846423176914914929130632484972037880061652415139506900360678575675973661271567318192547059535497101263599548953059324505533242321384337619896981277622360183046516669854448169034954130333258680213082631485920495169429599818720126475474479340017267221969525124344410800576196348134705622410100091936299849555716501933561940936220638691553932544065759311789614653894812136232374935754244522063212393235891075933780047729451540659789638108257951181861488962312707459308478399828946609339870440695721933572952689681022680960101069920068725738361867633404916777866213031597680563665910570476653719759347646847579070773585331604672722030110681267119163860915018837732925342965842171148892756688709016392337263591714257668690508056389362152084473774627906316828845633000337077035315102933658254874424924529238386585783599953867335176033636171269896197321650485144435121191820793861336433152207407619795328649861683390570430616599778637190750115464936672915704486580429468573559421112322538747997898556153491981013772933382617189344590523023535470457203975857390267991907545077520618127954176768806542887956426096018456751136561784402589656579879330308133159791140216106979016592463179499367069211551796564732060934150079812696282440721178973362731334811240387296263938169375996019948246437361528685036423309503932752362475989686402147034186826242031835092970733661147208671540845846651545100917774809561757248304307400618539456101230463487887075897431728561023805644296174695973082583395696689337351178312547803943588402731658959248436616819728743982829543848335162253220869658703120915217064629881567461237395330821364521016606414666465662795064534747973736096784384374313362631755145195909508396604695019482067786253288576930920550389010658023103302195569446127609469234383643947567894375684649105704110763201045288720284704439412234795114354337358318189681482936322495692861759086683668123875531237859332916885929035178019164399975798823797837821356697334252022361893152642566143575669178132826573541825751590170021374755946799540944507687477119041802859041156083683973590926944911873355770873148298173703368748437767331893247716221757897926389644750965442595323590656433523931079834386356596879014223657881510100624904887346770663502124122254800668790619383260197082560473010613366683956226398138695720655941528933433664376908750568756287737947821695341401951419347636657617054104779363602377686598170992909834920346056689108893416427740304540888769184886533632004876889992042301978079484080050113891706924915153475287355785210470186124718922980217596809591880578182636485153428431204662787285464232444124854510168002054493909978186182499044113086421190925916740948396788023056931558336208904768279237830266171723218623756597040795248329849532976295678561645983971133320776034911479662682395655160539859600265754777501558674409995377546431553934135073302625576677911910686172032782310795572222509129354117111025256694533974940340518770066840685482089339523201061548102649245574776609013980661608963398617786452981516898002078774956998208023954790980261369561782021790227669219453184964156204535441750645099449495331764461046122964584795849194756457713729973483529974470829407508977336299746254591203248935358365999851158820466967422353824635160422031445461324187402421690530724996116550082009052771568065915753821308481625022827948056491244773895016216351209669921802485133597653563283969486158016127005635024249561313169920882938195956991555256370585638620416888639871310938635119001496806113418198024816693876989534481965186403573614210567119886746428874144887190441831887776881858168128973284467266649525963312504486542343548171098275604395673496119595945735111444786119749209483938221947476187056511499082777535628041031295273086467333272904968511434685127309533920846381501249171866081051579739413253781167520832026185708388406867030489389982234690036035638015141526188028401047521113638060929653338838090153395188971573807752197466025441306717169921399372901279421943483850740489557331704483451190833283036097518737195676274546806787924377207699340686825705222332473416292224030133070487378256201675898618099013416263602089692063792288837294376923534658051635554555171658418534615194404870316546175767667633555345402365383347345675006245484241927729698493905776278125755673960154934190776183287532568529544207808881360732401698380439036573416823189626470761407320494633795741327392496558886753922233143319067698745543485981856576630295174732263225928208623361919263002031413088705083923217048742103332460795799755801463888145694718373664961803170338311062492171390753358826992411234886627418289816241446680075880096886771514356439246554262555690214813534314334111219540619646018192293936641534193714426473224635658589476378536234539381126293813493222237484753954945387043813578087038606796543053402941821187857171058513433343708096446972760874876858293459481502284735978960889462217829505904307678796210101429648256608616300854849252857331553692491476543750766743703511153567253342545208827735353954715255693721076512526044843999602789327459873106091719743253768995881039725230536447737460940006472270932242304972603441717354460513577552923516773063061201757037683105130587574919718597691730383771985471189353634379016110936166108690087696494757999556763755410627004143769821796137787104765010398018228465305111316831371367969022788696569390865760045141668480144855680146616527283085492709962072299095259922167919482197300701239569698363439502299234683531713967109706058734644883857296360080201616681142436410130550165170325661133026474074412185444149676664450658576744053265481214558319566682772987168549231663452128013166408948178809513917374178666636005302894983826683477871782908278083523775279585076983035824157766952458650480267478104573572445584140278601906289089995155876691093617758944226122508866787295802205623666288372553951215517203323559797762405729940467748077531675079768595142295687274935295054741885786331853297055773299172351157221634944047183585328709179431158566290147121338343746259829914893388893428568908058714469150756201109457125992711716739106228678435311396716846397708747542055457544574926730034326417754945177490749989703882868474138326267813949066754056581269497232673712752658770166679823633773879875993157020884081932290618758756714205129094429411350516361154608789944426504080150888245453712993334264479605572126084572418882070265875672972781360409097736523859247981996394778767959224267399763616020997930046731925481520892208743644183366893849620277346592992187419871135707719283486135742379221709350592175084614427863412682714811335329206729969475444217028678666271130746572542758100607744815602696783030748080054341590995864435114166889516739880968060002382090894521819450498214074934584405662956009799985461209005714142880000473466743414039924596673091227076644208813519275366409800518214893407046060236968293404628956852731781170716415803885936861562692528811570839276356408434881229585423497691925960661799323349504747482719603448549564816651885954376993174509048429231871599344280640626618902330553262044054120377708099476880406601434531282491606597395818074765520758207548105151076678704769445244457616368179239376974267083923832744834121127093353293924727922650807368209765279641172257239041998685810211922056399721070636999974051249851451462684750368920244492786179301703295641343851885603871567515824319227802106174592934323298643653530075642572811011793405503689730041903517284053102484953110883321936094812400938169277860163095716769237799047680489859401163076269411395749648648596810632379987719315358815352835919090576668866041477311868962903163041680447409723025979547736210723705843138542307336043645130457077097022252895714880893765217590134321106496300174243959527053781403311174908093469881672928919383209848785201541450874165070556178185280358831961190713146651326578993890295424983693090172771062476660939201326647112663874479533617996993706561168251816986533042030166538515911111816847065748804542632325340212655367572157462552288333714676590867682199990129849384639659763699167011813870431473505429710241312898034934502362632952423692783119963844430332213672833785369124071924103593354354524684942224212724712855468926057032155947396129735022687595184541684263024329595504189658229075866165554874638406563052776452809011907724368991984672967032753643028242618166700886901844973269416465239779857554641701614521974037807767799688206834357734617977903467717068045881893989111037720690914429781479989451879794213596010747370065040134949982654016787409100873948458752126908439868260791008517789630175680467767791952362532603717107295188557002994733178186468902128574424825510776460961389535082366865535258468077073696971786295992016323786908136309559706770323182907707639168838628910857308869277820334545575012985558113154981780765480483165610332779429805363821620182986551146233174064234588283678397607046776829909597562269988160962219400729721839338123795759013923045735974142429829996402782112019263166941799153242465910113871770030127745246121601846063690191146841102116895550971014596245566290236297960216708824278121686442294736895614422110444325670064095848586172899369717346677901184043529155669288382348457380124517742535297789716160366632468810868297589258126838751484973204625244579759318458123635430863464917643030876721664211388895730551941744857538530543421452327533430264759070445846672777703562081904707874592732251676683559555718992185836731028260877027174033312744916241315149959787374644156231591564764913937046620443558655851963814311920270236122966811402962697907806899649266908032778052736914206235108134121391653106171180986946872355746323247293120738911845397311483469351344447428752402358693408131525124980002071177047925065872792149576546902666266114977470241004908649101034796787701487359949701526490560086002931201582907689179381461490330377729001895995893350405114243099717592201258697858881060151758998101331337174712687780694678409689699388728746908616426918621652542886888030865916700596738651265563915567178728244043526808121053922813147825444677204553810808665153418969619178096761951658585138401305022659959476592472978788623886693774923291351186435338236592770587424221027610898624579114900032392002146578865914270410125708964056247225465857390470345943075320100903816958607978129609313460125150851983954468246368014479502555334053518517261231704020618344716660236480140963508173062697521104653421697841996254818927601188571207766706710713222435296443575748614851927789339489951385398308319395946026323589761103316468683694790064219524259077735750013345212146927641701071000773731005533844784528475921222971751050517547693915107512114197381005998400935624642120432346067570208770737085545781777520754723723912058743273161633689719595107612781403841751141560218715505617213644306537030128827883377029713518546721064944201240906630673135524457403951234147583929771172516462135332422573628429261497457254757813189213114429900624488327572072640736098953591692430660404773494397026978066762476103268811416880108245060699168569233236519802689021098045621781019976894656486530002940166028143799458470129220225058700739123935306495563732528555276841259151702411707327533263680507527944847871295260863964878407092679497977740975654554521958455679057450568708352872919737605975761091847027225187410826947190263927589467989211220538711908080125747713851293350734711165529495275545636595770909403430809814827360745931056128293768236738662016682737410543783987393690986029691427582689048917837185380102962715298366910219298558264956279173185281957456720991835647339878356093432289705367366685438665758072259054544368863705686442315172995554841599266539719977635089891996963398794056300712928941148482760375897373783073938224676893832118572164318057692750931575032974632687001995254627374756865653968175081530136277392936516283220423025176924079179922753910289884370621362184155035094320720997388473724853889217338188431641251073823677826188383845603828350000022203233421545848566174750288314092482944113043572612537666900170990750097864089037519403630387620708030251737839276051072424192349637295688105710423470001564094797748340302727848317106244902555786329369269872197966450194033260428053295346140283608843258440818344323159298420293108902731233082351217842437557245949385113998167270141385998697896679798519823699027273143874942397342167295943540133310429216004319262445009824992262342442496038644718210090323882538807160971428309070380140767863892778616914544802289989899883718090292589500274043388929738745995983919565562537745629619310225465108187977799338769090170824154236290059881160230353729155462727267633418691970748037961549995583750151029718804851513353433771636954255260302242594039000898446710829623400582759776337307458461615959641251057103652655807539626831592474352610440763592322942975239029380244522580091130006335813338787778559344252576767116303794101334277397465235555082375669055243764719776862235348826653563262700753551860428640985917637681556773327305401197831575541316883977568966775903800707166611324362170667071476300011825097981255903840633145254158432000461571936460749161329253599564760028742711728968945225021417938438149256133708362977051861623221593144456116569603138252916773183555692235382902522350666632479322439698335658563830916140140430829135465282737930039394075119120375188749660494795226389855261815084456644622117635338248386784871107384141685883466850637259743321579316288784535528001115474889277264764708074493842142517009616598764279416962941657847396407920679781798589023135073613439243307404294081631384603182327466702382560252082759504583850459243843374688259459083767772762078397785540799320260122462351710986495547614497611993454123044482258907366805923113261060661481789334784281160284393361225549376448148595490141004625051608224226262118256704728309734851358721945880079179985853846744622472591597289794029748252716545285901825768052758710748179584232490091849243122553277879909285399891067183886993285808960819211003332332076153389416911481904817733252329899437757714419638172503864949690054811734662534470385690413164873149016599046805056595972460965055880030924513163247999133627838708870867540297481974058798396867887259965750987108639276756904829330249973346871505193270770881292596537585666874093036822828294984647773711908580857651755734025198533814232745144500331972664805237124835300078727723079571784807877849529147451771476548212588250734820696888969765159769074622176656271680195244172588422718046933461341602597143136641148826185577622631791907811404933310858445983705224042341185640934619353477611974340023975956972886640608391362611500447412792681429249268111181779417966105047687465468078666532437770903957258373490880314570062512156679730670653276713131245384902291993618103634646186544033968481954822056170895290199112337637489603531799249419270188234174894077756014078393616724026088313530240664205612015964749089583455218549987815712695011962381552293180920247756797224829024099792362756705490299031024697572144318973654146326839141529447669682070886641024396425990424406581288195531142883784650787794386958294480886515912976378586459387797614880753781243595585993533201195959083791304787744538082061127427022368408531705726618991420518548226026773707929163311419625902796341888807207554636323891515518652691816598401653513347157125488628716778214232486108355567072785138641167862082817398533196574703858276777442049545344416628654015556352087925829594615445578073116069032722874976116834951292611841742941542030615418494319731816355118284730035625020570147280653208669421201390949783584695874860621429469768812620205560806494246603211115657998114136223928753182662395386375949179282336063171006994423091646929171086643974653447885750852669974566566960027280580523609115633173756731156143065203129854421920525205617270485907401233581329369241728100106044780659376878274897965611152971084968420381569018850289405279136456957850557639197222682411345716556591579406937851758924092570375023251662431249922791006836639959904532510918235695703850725743465527878880854711860658209292123938408939940891979061223656525054034412884594418086172194891532145195755583071278530036300136646472853918089851504119178631016060058160532192687993205443296079855322812760071550312852981537864838045443557984378501466631065912473475598508249652533094312311918402193926854022892827719837190097055136856404794305668030766781057207994705373251431731000435172663566460804291219500291468047541349330664384883200086701379661320000310792948262977973140260384330406225079763504856861220797907365408912337789768455487268319803809473959013199241392962270468775288804179664327750126459601595517303572474236950831877573281884052321335797346193295777875572898689765833606030096969445650925194068331021902294637430461499675600642959112108070440648834247232818909505244660788895342721206311027045568383133082438317240618789966477983377281636869849817396924082307684490097247213699481553763228792242822768599584816099239849431367494650667501034116220201821856265511833405776399408851453679341311864370551743814820055213908648381304680150714334531418414055517942152079674057918795551509861437237339500594472718855718324901209449173418529921187791787276426767389169552543901317293504496975683038164608152763380253726028059953201009379572794836676949890904309226336827993010674759227977240270616239445631199031938919951446392648989405051139609170473551803002169192273802840897074605957725349509805706854507703829838899488487596634187767790187204701464175279317635269464864793723188328904927122079540087239333009315136947236912659888048388085806954787299627640763463175807410092410842176028156385940822019906473360409775288614088467105855892690325983626787559297588755850062703213737203553831184283112019896450824574584709256920373443995800512101764777292551721930343122608298991025633003102176923776115377906243779170277145366303976114912035462787692362894072311566806552380902186132399458015311844567411468589725742911852698120980029736677807699222992934510253621961563515264182945593350297510457666497332200974828235451737631502596863096516548973600083925563915191102469193349310758661226460549891597682700918083720567442757205616916055565757384876144529952298444539986439409926321637447039727340359312142687702316611087646311971094455016686085233751694824123995817445589460732769057899637254181390719472530545250110278481429235866049088589233417534649364840779892196920436018743053861543455446329998085391317333570697243669189763412258857427055935647747868749567021358234473313618996108376527437375238979633886573224773987396278223325390864166211795820981943230701440396378253497027191208040287587796716868255423564063125156813510560919380392464705426900495479425979757756128258021971611471146107530828727223513272944193365201888193242941527984292287953270456240479101054828378770176320221866038654341456522271524009311899784451091234715970318383875643955205930570415151010706141868386764187419621622184014564261151162867101198955257716799796331526342310888214751231059140751823156415477703987174028607919018365306779837446750535536101633914375213000071413629371795767217625888589666937103239215171904281599834559435119815727352876875565677294020414072483820914554358020216783619040315779004650724378607419298120104880759821532594423850943305418629313418395781488056945246652868820275138811656581500056835704581392252958070919974507761488002649696916250624783884804999681542791932084308079138420463503599184902255680950416743946820001748532010163639442541974186291772988439554586000603580946775037925664740949150964791220858390755724325986699012512262901379553778777753163832935997453834844282624828669390022488389975356965042738147417216807659436967995942715277128070597994599327493548382981431961577387624522143139654983284532098568161573222294258104841033903880345653912853006031084543835301975435921752650696344926011646749191739925396856389547000527689567112311243290513326070229038089644354085566081924559316661636808349662722837066848058035020915690822222544952330065248952786502756390618190863229098266456755888132658277474633542787465071573199443635408417048602448210231616068196029632150081520634597103985818996104831870863919806264686354957294431812444820021551770765646742301654460890208238284901322883415195118576442102621404178045891645792216442966023152419637260063642562127910951762387235724992430647323964625685243779885156934243993779709414217186946995330187529755037869917999930684977793773842966358783742686970070082844506285759365514819111616343220237488059658161136264410670357416359286632961621943782255299396710823930784518976182951444277692751916659956525422063282559895661720884477361240589317146911629443165550163424889427772870379605279844597191907503775149811243445266968523237322773803680260442034336770624464568259813794684323424666062237284626370274028902642330315131807171419599087415092161792744128963514266313702237398807326798368616835660581268677366908882562882522150868631565856567044530821267185787901558266210680919537556127486797281815698847986142694933039640686475297098576221905229774529951886151566957872907394992254445170639855143923374498102713432325049410421312800339196078608442868917296548355287464994692616058618030572350055579542552124902377473401869553484182128188140633302633831450275267353753457565017471604953592594687478150487484863839155412733540210067035107548030332302083065614185003439031796183779897467444672084463443025132954066258661856990250400321371358856788285427427037615618244695127197580116602438229484683729030954884632806763053686285072502092280644876465743189955829106359999557647368795092697321164752324510371619656062599741163798889601505382411468917131108515166464359938365204699634583377861749758800316276416512033441795250854434970896630659237160447083726158098889647155664491990939304414310093990140026585608140188688806021543374606366400413458334470201274039682356016488622394189947740741093722090146892733813359467659228858752084734672528985144746722392049307593546570545528980385991807100475682117104071357680384342373335157670435445810327473926802750885722523294745572608788852773452521672449486717180746402206300521342567898071500267983608875340291361237985826016399955203079500866946837328645996650707611716386893144112202546989805325604382356392976510305297397911425933340254925391982002050433745719359324724915946460166537652577323449378388931455808073322193654442628103712445210767247258787398516385353656770031003103694375973046962752309032383822895799309460295291908833410268612065344181782843195311000256521184734375705924613744551760061837457223340716736093789038400471200455043928449315412037344733304378278924300723415086560920700598706284504826408482161723956339359951002798811186886999211681567482643182548682834591135853945276772553258888874485503665635646904382580038928095983932651841026847210497270354525481756796001265766872784696202739488085679257947413311505393586409164666332442396800220880285522941274397943258359492526055612201367097489147430491305466213143017912381756827771319269105550599753207652407924728786629519474462765555576857395087450704399701479293091711424381483476450804430647657646301084847528190312640310127803546345187874224357251483740248179460972264312846685773259018808326027751586761765690618096321179516478525153712677875765663324729899610740242108368523659407011737450994297817102735641900834083716975456993240163914800663789477848634880076872784116935458001112511954176993102107166587009603232903319993329374967060776769878494870158264990112132474822459554055762071893177471665871740268628646223127472943683059105704684169285130461736465908124121062938556004534095657194222178539806726427906129105049664645005509777574995064552186490061297981191432562872568904067966523412160382159902825214727640140896506400644546622311034046137726165852325205639748294294011158791601168918904537381058121044101174421530334159347300106381043954172246302057749580493702034180141150161866050735691716851204430134687887477370387343164167795410139861364844228361567267695423296163801493701088436986382910614181151467651823859125910944947694108055604942713315636612618062254532115473361396670764108416914525602804753109049634352644699237685238690058608399980404809038275936682129929083837871720911117370327779301032311491728345047118692400502716106250924898947804305055868627761183559489084260923427462922291120650807146590564487562804488045944035250347929174351375810261255182599141600934040890918747330103532166241014734709280033811115331847687601039181775564650155291203241096491089040916822056573092203299001524529271990402618967278608756092172766614180219915589483545516530351007939817903962563711856405419382490108770966688120799835471322496516114235892609955505963869399759907025879911659074910006892594097460247094661438939001753291043967200756441281070929092975081108558878695448269201349729278027768173800816379324034776526920633980469959730979916790490743220623925310086230417698677480953125864000674489459070191730666404873012519454930327598323393181151985840588427040120364625983765152496604933067456216620859979060516926516373918788397899355016804377590255627075597860451366519616851661855823810857354717304166573518862076260843730870252289761239331459227860917712707102248178724176178868699562353352140766995749655846114511607873282111327460196173532626016518590634980982776376981540746516131612024809399089088353966396554967904672252038361366548819678866087053178319895398225944216117533056952854557664860223249812630004950554720443920325655286164728593980977203832044998923111447559759303693792584686466408756250419830981757264789526751505189797663067315825169032271564881367663145765621181551931035496074308693067350218888987305944678161836539070510423564858038886151944643712625691597444316941683883383151025771550854040467309215389054817299748091972592293060932685270517145604172936742921993068857601947599540268186341071048779779875199066366104103500958847190387418226871623422004983823917016527462306846332431921698264419647325661249810613380698479515572083208266936391929494575511675711981666465247240615353513252410980487342774648369788891251303596996121621256574845395191252190276161435679618956041001850024699945130743501647591250609928146902038515078199782929741257987331448769436980875749648521308473911173761746634258322429001253902974606485320537219452389286481063650564645846783496833354640561413093681010151134939053317173374725973182267272557272616680874970617463250240917487077789547473998181982430073938251671900388447730084093758446522840083574550449952043513992028097906327902458469224765152741132675824108463395529543403874537071644686525800452217148920788808633152079769074291699346668855200212944340146887761570284614398905593012998112658540503442149118897135580000488248971806573050939432656844722233399940281242680439234524022618001708108151523076548746361550653664995750662979840049222049666176234998596342022435571256595312164265241338917723051804730556111892041708747351751364184326281103246210210771072599206691176559414194396972190667993375163813924028235090573797132643568648821792071519619828233306389519521438282320295271642317584173795785236010121647332302465198986867831634593008694620488060614436840918931060608879436267296190250328600813342009816956144564876223526996870465541749364193711195430727378489336729003409979771459536805678624028889062458290016724792657511664157657919026839956269996998048517802904443197403114402997132743964791627338044268940592688998392085350847517961892184738279388678659251302221046867239627279199534289790660817821305258140979481712706962046501390213748989643737177096864718530192751347728639445948597105537946893778403106221897197063291159288400730403289327951512346265101508155641206605381783580096043413001207913488399921517197293380487596428421781217393975277520565140542352030423089442285838247265157284644511394617973248507867077290399051026777584678613787798639300313732378775645088909786249283321669576231559197764342983507380993355424283522173253405468939088946672988994376301186250463019129114883945578225969009502140523450322649025066944635616592458525433294080743255442762346683313152473508386266508580258560698704809942968245728748860861812930958427988759308993872210342844763111647430798399127989380717309419948172616966820882368086905764259885401501161414948025668482759746067412941923770858804141827019393610376831236321588512899372061217687044995514779283129909168729273554654597276107704653159671892753122329330515953930374877095539638006885075102717292231980747359575869103974400019153111225024866134696852221256086637339819662785528759677513878927407601308111909177010459544155975034114363608119973267990690420544537915839464570037172950447875295685659667293973731977004325810330030315622286463994529657456640012250520623355974215994229949959243112738854898371295136561735305662065107565128479478896753553300482159151147597803009988490661438527586937485384128941653094683288425471456737853073344970648394507322237456764989749136122696317808816957991742198372092680728120227212606655539911697207382239057757049929845358521861952344227376398278993858662149124147496679995967830790199760369902346996556630245077030183758818772035929886291454141086497210985289270350546698385085779599709744560665922327975791313042141638150578753574824991788181113868445561327318039791609252719221479378917467928266284405352649426678573645234928279429959982661416333329085203752833087558219080367620226615595042353161697448431704346775882005965325554863457411370471593571827628084168264187639652613766546320586918756240571401524640180133444289144603176093906163330625181010746621662394091372023846126595609425955926418802356004352040955435459395297937743031748778275323580375495307963558908623054472188403256971424740526932933488229888180205759954596983526977335378366392694775655232405933846090987564066315306807051921836520086327809737503845388431580676578936520221319307393675684021465680955946144737755797294398025853754045406478159399905365109601987817904772927901345815038085117628450504009509294866271559243520264691083945693571247613883408747005080174486082399834633555174339621244952521962234732339888635481555115477543412615338935190905315166201817076976743030248591398481621797940703994570370829909314563785561553502646479589803841682576717135886853313742019445381235348435934335435822309531926125101473345537606737569253134464193024858046530398931042930820633864968641758734241217534942181304596827887796621271899053234030034834530144524011914574890464547677630355450280513214733853993776868115863803510662452990101930431997583744376871529074759825492548089272066536480436519098408188684694547448063584054673866490064105171126846269260956978776707223342261978900598081577273180962913974641041283007705276714806539760721313686211837212216333654943555938447754904193185796300116717402479449901576442841549557571066438575838049048477834194439476198421202502721765099580936667998361207561681010833095750858103947017350957679624036329725001413636231419973227592167828848548148101075758323864210756753813900811532554378091817987395251111479133422015915179718046717329288678352300003225255793490876817103772242156656030241929418483067609479888564312630842814374160388634987708854521810730585147605052395152444816296769066082495961602699534844862847222384695202099931801847030009792545475468047631869756421760169289822432595065166744746257492620148615737346319476112715485524675528301380532581217643213691172470823528160260162700738184358162836850851210390465308376986988089491477672046228836048404681130255703985816682655786675687719005573180879168999243947718990774006007880929513990124707065629946190029083610627596660396381593831193816055470088368311290720040238063341194558792301452766916459579203756664928445414536488497209657731798772796549036107572336391698741720260553516279319182250811793881807523977316927145846502121459455865934136702343793063233304133117295322020040074385869495422043186072719407585231598046925555962683396421579901693886797224936197027516541007003759519865497458686401331239559188235092721949874767237228108704859712035240967758802774306817114742139183788094507472769762616856478239964972651439316786417649147563455302988661945198935974151733617204473874566628296136511484464203789880885558171697870592436994146887032612542734242278683009225697196360935750268065157560275434623845421620386390626819105371181953811206902519385084724166354857671612201555641469337726448422870226128449588224563209205668315124636122354632557215061743948368329681400124743589257433733975203351245851145918750086444153773347752183722363893718189660697335875351334876950749858261624224329332650335355424756768933782572088444244717858609561879995440981528361805435496754370097327467329187777112792366128934787814117279906580244376565336971558892502328538177730746728405041424504020430675359159130201898805063298831205346325312317293520102646495356083142145304614881618256477958607714828400999348192489922969286089004131696670777420736045743508670803214094390301694932412661222926905862782634541646481332866224469156910113265744910088757763427481351865753138191475811989436084357746178141426485440642215634487206024545570248610566608056397505923652939345028520604892764372006696578165002416599757064998936854440504879423831803053374469812310680343859860286231460450338820102939391832304379300722778832425265252867237594763534726712655888739283982833397215589332118887290169936250528006266955360283697274740552543252098779755833487460220238002671580400427732287385325553803958676926775313651548486131869589995327925939566675183940971321735329720320478478704304437567163140176382680177870703658427402198223151482162554237889960516559160433580809959750895402187861092970419337102214304632329016665342221811044581020482775082635484916569942439145420747490728004593560929599788547532794106854417501337940589803321139788686817831667647017386636102929800284414146010560960746930960520316991676348315623757260039843972573424259428028488961064335842655822077989655842867718280745663571256482474883815967613830180471251308650339152687457652958309192621377532246404988139435068169442834490337388341868708609062893381093700789182596723924988475107087768714632950140689052300111611893949231343965938451515954293062270544002201386983756242457843657482075268404230448124810578836959147939258758778208180527170328015406461945378151438265928773425481937973847443305999975099731518357252915428204462667185682268525969857533404987518713799374079280418526626370467550011788886586667516694281233036786950577476633283025985112802030197554759233710508750309834056310313578719306806481036836793199959138460970245593419661191230826421205404375344960640030848117172032755873629928585707666436097744871647701438691742873391307729846449207320611150663116773084279105960050219486600877769686597068861842411218763830497001037428649031436030612834543754560726124827082572060560858514868843046847229332754373110665602752728810264524289230296509882198510330568356749675345007472777676530978829152951777669026182895989268947356034912792202370403266316599950989368231969033840054017974605798278505859310142331825857819141109158738246561261008811892060470504859042523594463329689759838675296679265825980760500576591726212516037402264795616151172634470841424108663426672510431135852578441311426871625234481814643265466773442138149394798123538677292177293372296936022895965338828350456094793964234816762857891514231093009256201092500634164333276196023044400978431834443930604232806291109135781147166194013548454883636344720085224649713925546942623972683066387420331672614251266489066705161754995905613933803224580759888999340594756081776958841267836612195497238386798283685238580225522889749492775004785499036201518694991851267713765368137634890355084943554610074433647299829783715139908832576556503679150912582874725552795241806930914559358560197284722194219841799612855905004615528439291083331017392932719744030777182999837360889663353804423842302255580622612198153105126723995967098286503570654843037074250355039954609094929320778562023494806466417220876456862299931305628647359871857705799208286037717216357667147794452579052329772385659420187540654388699701006464082916421944183768432731302262900668200743377066882756064650538887801443324947948760308988663226142910540412642457539419050847064880112861580785729321577003678594578811933742819776810987993653401614680047228723274075972585268878176531567619344756743041699787457823639484053640655993505323029083124782800730876553220678317829329483479611835605972459435828163392299009705084754846895666255071150333577425322986530939035176714798640791879536589313727599513122084267984960213710580851252400530152275999978352417166019080637142515810853948084309605653216083419524590516523510759664820956351687743529963291955530724169002963024680026093739044911945655800278460168232688764766377756065469261923680464615878303868127288410304633349436145161450460465455739472052612485007767862563869207853271970977868907361970110093074689472030098962757055998751165209811024510226239028036800280979774520209666641188239885472341032110977148037951888620507040423750103900047052936451170501094442792587031282133008331157043950288850508239216620209115985042460767148430878332611312667589031792800638629246675164192714639015882455425279056685949474510933807942322284044006743127103107471232593474629424879799409482403528545319385274512552146194426742119040105644919526415683404507319432501265273894660366818433039841800823940310238069506442711140780256409186877877826292024646076806164306014032451735225070924709140611245332127025990276839915382760893895375958053953190602701499156939668064860760842496357664848443117692853109688272604902987432002040982182662216468925661537761786295772684868343017488748989760052114057845009738818647828129400963400020605403199030495061446906434315408382896259704220591095158127510359868909946916112628810499839953340869394433715625111664428279745329930036746854637107877849224847786867559461478987435799572154026901375800861593345167920739533347973952794216980967875393215066350044562860662175970168062592409562439795666572422029419442236709268909188520185661051056072101165649674068617958404987202252020621824628265324547366634576893624862119605440830150169044931121711278372215209541636092230519131827137635922345026314827130026316593870579963404778678424367949763479235841608477955930173980000002320576520340711963052371488236217120261296430411163023949573595291830617893183301498357409838139900165026638358002940239044271088016520199157461005361251861314519950442815879464370743922074577403074240564158679233811433958324260017213904182343443149316026696080331993426661067749893404802464717700406829561959231489144266334371674433648831111592436113418976695884615014849546902533306475650112611344958727897587353781658658977917524621300686066418411871071045410902504339977225373890698928706978920395726734470012189968887961888349577652580885322321488462809541743014675009413606169448254671834427205464485586130052196555999331645095844237869491967267939997091062802232182820158158180354789808043146793578345154961684188629842907254077458666975684514397144502783492983001673113198147593706113511218545567288312799567182090489909093431376298915093356756238777739341593358442802916845853447168088696579135195228641756078523597297516155801295361414148937685712321015637911129847566777536044662022374553103167832415693445574376385153509003288047738884118898429214112049887629661761790876380403706094790885653616416260384677167125280438616796567878856397443492078505292003841292481922362049271360375454145494603275839855136375371635288145842249804539393998682568518619128748280563308353030546902796743049595192480308672402857850117314150356769296892680684787619115713907132197275810903989252699163741411865109185397507902751350132595321358115883397116142978221655726845756839095409131028363331053112114564003852442707783982967873417690568174431391985918234956507828249398277803524129320957655934920331479552844944160476064822987159093511740786271683855843759180800128958686399866198976653837634002305538247944378197203641743327942866147753950394964463396958752016160808326625465718880428319476027726671928503812113914382345183515895426097827087931059597996186630831526438459130320510380896123889622146108728507740070466393683377482551592747592586505477994997708188573093732533931029949819456877498721456144952524605522013224568625996970116734711063930246672850396496223970055313121665297523199052657575882053214301864919706349688062385037970640464994835599562144342119866072017516452380135564728542005133335692230574175250758068199637108933971616514679531757422308800845782442047839924712324547165658587024823801222725157598373462657962824864427640025704649418699184039763356427545379296829989977328559580041226393513205919701193374251670188262184472051616616735562635850520481012658519883716951455682188160829453068068471093548453327215713073977980785213326527153398414335743516059698069505436705972910875746586344791257301922916720224308092771777017683007877071122730320135417018972954825684895442784455761486291432199553978369459366401827361894116843105411090085496737140710402129918898802137443962809568812679243176582652747425565683461690362731942704977883461375972972101280970253695146376067762711899662643818772722653169765529807556186429570847863178892446127791295689452818968229166315678682198670605193900460672789040109032239545182871932680517078967492503789585648704704681251642162252162534382922476016621976420274570686588872467538405603780232770772508277297377169894842153960729457789884755275382257601359274615800388623663678018852506416692296596961870064289585755369833511085193754069814382258510934098216471023856301615270970116610794624231141945019625802713212953218008036843442557579543411385406480017757985189732487654273303591661084242465075474201270326807260086165698445576248375744565435173469606324526218783191416375732298832013583012815511060173613874899905000144715836875925303992548237420304382582083782027623882911660519389704288132933783336561818092394714350234810275785221835254865951348411253255178766442143147664779186784937701542605235343300417144367437019591148688173038187002814798287402610432879228120844290248285504707781175672575266208056898437920529465775510915942652346132859964411998202180622724027582451775535725538560195672793395773492331888101339635495816797522740970407528591021560421229807911908802300087200152996874140806467755409548966327518166171606712909176178689788499411916611547477333340180214273572891101138746879059655633716470644258597500743844117290905360273570125663501148747304446491650451276637033156216647109424903892233778915699582172629664672068586434291900376583036463704447523321676497426177442078817510682479072839398474061631153585905996224489383582598562881983595681790937042909660759703836326568432737269474925807202903008498011584492107388623334363958864085374457810098986619079892088129629338756456456193387173485317417683467551378510112217488754552194393669707572403572970959352729079321392618765829111712548974737312783447527506444481268282922058184002907743761273061717108445466586661207972202312605493336718091043524096557670357384786996716174760796213367277003280524896524051604671118176689585410818885794154372567949807749191740044242904495937131813086799764284786332532026259520224070525687684598636180781353229537172923687430390603018628892798444958529580841671633935687491287897279592724308257596635208928143463389086982888850214303438047130565744370052735884147630657670826395257668976124378962059825426132947970726840248253727028454313546255571903345001767530050805184450481024592602218353172631840790662697215820100816120122470677721845321957241415644182604188527798084991410963258526996664370355792761009385562000815781435819396376608927710561844964113813068374848484573181986520897115695778719176053837934730126975778976839354571512577903208678008166121313303234125534061663261343844604010419419193821610612655002785727782052318979961299775743875634891123117383854011399569715871846307454766833619430717007933944118793201977904363750785390172038344816175449489557174941074322745751140246362910434067170099336250578852355245886151038384123294560893384370583899878848223288084653175426452531149864642735850124200474548452847016063312655560596773720530933465276558818029357945235871181358819139999921380851824138946574669880371670353185067727703749770488807658447859838505646882554578696099297033165227137055211081757972336469984761936959447561585088916387549152144420405722957919990557202617109818412407333564119534957804621436353164860249599163485909568789266285143015899470587311402749097972229795686722527110846187970309794622514099428084826906935118313903948544429426225789528977596934336757687525239893612859507439927021229463093124210034131317139672189808388778811903369893059898358092285237739848770744389389735977960866362448609464612741389210763371063233087396430040304832029438192246395847935387952339423575391003606790812322964124429138927048906712776772798648951765277323192197407048219538504070302040890015855674905977761431815779634675612467562478285657571304302278999262292098403546252234104132033958129092239461780623706168845119463240844142733566556331462659319566712829399568986461895082413643587437394718233332551288213828857590799696207230792808816885126189724557634317949635313236561303879039914800170404442602980547052924707885701215040066587045433265824140294740829953735719644436692099119806907961435146479835445744481703949392416286709062296542708291643229506091480258810343757393895524840875895800151390341920094198702562497756370644824326962214368052987151443184170109332062989742746637076773585277731136763000377611320757799239830456354310416107327913913168029080403818258557283195183987779035930125578676143939158568759520954475164933190394858309175290256900458679511113032834773299372457440397269093297949427249051817770886699075512953710490492206896214557295511499940491062635692324227544133529012235375781641942390746833375611896168869783566694680923166918277789708389994482903014886534022686137650237448524892321336842593018538087370451130729024652430092534251466744396581792007056821341098061676353458286699491768542527541405282531390340915976805149817365091769248951243179460102120830588277207047204258257151910946633524223393198475438680154201845489729886266681419177858525698840073409114531328661234788287300267359261570670141361543573169667331772712859265642240675335292057663652982426529375766304202547944391277707413426229174504786190267524966806861994376379550313356400732797407243178801650654861423793251684468909182340830858447543292880748898291631787273888507209656674762705182914462574769083474135571705458807829582635588567368311286187697344049990048241583300939776142288121426614534263004963753202186681287619353565665292971638017990296492069898170384255798732525338588505068691601839300463666368866785737439742015177531202313952508647221152659760322143879461810502651211525081472648544599762812836418220805718895463898271431999186435408754239213666772141804165732635588434645612686527335618566430794945145380130040867902884108317499854199840628088990594195810034318415332063619175350937102398927779864707116462797594284434270240856425166204102587200321817033232843410917436012122115442956707122671045064008134081050663302128631294222624906553400852518955408378985081389222330859771418952017681965912621108108783571615731007325783867843014884379821657043034852779273957071785930600155165259935541965472469892907149072358150277753914262551958239378391839300736754098237849653606482329029247860602882959724961130945607935753210130354335963050390362076527195253784048978060681188063125666291118854661304326187235289162823520506159627403875250074885820903016591611451836878971873252384769351297433426891890929472210176253867500663730054426949554616831717916099179425549266076340356663991664694606366326414520655452812821166695543617649820624279221051110039923084910369092154176938511462259026591861494745836576167172254024231379063996967697402504456772392838602817225540387210511011796117559418770083333660720044663902075191578184249377609214738837110170342120721136745524987889041251667758688449741971964231338446984802451015648709683502949687288567657548418274227390674274654430487957639944020505873088424928610968832629751293335251540197561560178129309290511290284558083554551432432756531457408831404458229286832328153974463134082655808588008369463714502231972086597526245874135775257106090607794831910904614965724255781228232823423479187848270388866666918426294528412703566679696088098262098620128510340878011421689157488455956084671322486942878044577816312670556948851170706305226067612582721622767846917552910167459193151180657878454023802572023666937290111753805798055841880941924015863784430584990380643958324650885486913276804703172264000781129268427224754035160367755023896376463036674336323418350018937335018719691251608811701225198283862987181356747827538972053577820789251270289326701532546149263330732030067187237244797327570949830860920257992046939896029172046028668884347396467035030231813691374571367858137593554971293436241405923739990046323144548786346339913835702387649823009805562904145338514337995390823002045910643548378925042870411226063205478661302208426392582474516275266809616222139869985532208363850036425264977261696887104278420668461303624936195380289450098256283447899734959775572791254079864248128179267998949305271246396091824862273448345647298257561280142344775746228384069575102962002497142441645294264595163798290606044537828981590411126475277546927907735972169307071831889006873862096103392874857606259702361662639204718033666374790665068370606580067864883839175577549858175561372999909005496571946502081957708431737055164825515174426598775959325356507742785383012423995345816093645246972129334644528742362938114448186133075983641375821401667309199845700918078500809447921046777090628808535931927442706145624006569446731094762074701623531356881222398382594613218360550793509927114317460865825454011128231069720241198511844445409929855680259342733585536371421826265661253782850669880898640027344762751546423102106110741111752932723275662774746717932322398005155217707239009812605759075732998258561641052647767194937917023595829548189308985344789671857261654373245094268105454955996506541318912854350844522385570748188158101458856640793263726375380673270460687230629750963719019072166980133183781948077491591163670408733038094484943212146860861669430603480812433192198080477775106817485868271928501524445369968148120391432733322869361263010057692826238276337632105621465488006464838873419132440101984615302672181393843891941093148368040705943623867371962957140857736782973353378669794151744982046687152495933788795706024582952579507001606234479202554280793947465039616600297752817520439134727172436930726980980997489177437353932528791762520274387764159501516034226327582845121694094232037796603829468367812467720217126623704151537137617978158388500334443620216335832866261203308462532182554152083320126525959046093143481230074428274459137988880645074797528075501547866764753596589680220027106790429443415947330649741962661032182715380555204017168188636621948359017828516645151945799039672312035411837671404009667805995963424942216242848407364629697217026811273768909728514631663598206379330944461492250438935373909308321178465560091700811350409770976041095034192662787311160950853780937308862803451460052965843692731753279567540057275730298808322269691396213613317732249287944352662150385409503443127444824016193545252007190317572466210345991794780886426445203903091663661172961429875882306352787703437815679146587794576101727428184782127333416559260506344400934243672840045613261750259988213244923190491667768593409022055396274216590710343445676191134389851202620250363651664845202084971745515443489929191353588103307239321025588691550678842280291037652818779377944013650913978607881211367414519966322250927300590580371262582314895318419075330735072663236809344459574747573221525780045831466500277916023047998491959922046125062181299383025067510565021384214701016608729142292252939871998453984995870514876706481845339380191932309902873979802121512144720555762699726598429072275510214287864960743690918111354759038421535181912268683753268114848736149297068688498214875940149969299694202725349336127202974574292057084707551201634076487722782535828351979070166272750232323398394266140522847028065633318200242667791581441986536458142105488550643762174664653572270348290813815144630732031890162590063733431071583082795045999033153727741124277428415163606972743765710886185050106663736435576987008189532198339790057542466820118673541184485916494787871816266499377955576752477046950800849795656937242064683068864817895474268329142669576325468926305703566344718252259982442500405214577471905977389534836865021392192079894028144868113910527260624787864293060200139361677906970051507203921082870282141410963350131925091498378424470289692030054000598563483172486432615630731034798689743700120242264361078323915948839985979747973876031719737802695255054506849020153550234203528641015259574960245685997920863645552469059107913541424629984116924930306597145810314137179517558574204775135185249727327070247644753966427615659135251674949788429358621052173399275585643948134583678528883725388729821295558748921561724658557465165150299324691263747072905175061796259179369103397579407940353123084918805058350765234857615469926048880898599378424574359307777536340544390505319878280760642355225966847856638786826597697180663877646238550386362662203565697165477069650289984632546489456374873088178238195939156663143526484909859250867869194100192763257742050192184525320522787108926139107629334644064022289584006165652556304185908636273507558837775839248932682097238530503326279659807799744511157331935997741800122862589107415769404892273605791671857195933417780072465016666856972336682656032509206098483310169265235857258127756427340843508239852894596741434721732563676362240063380340745681855776965634485238831911865512387981581631381187802513564472342179975821641483568784510079726702798676870506228669960460304554238497528307679247291095649283680920275971675067213145120999120164876748811073828579004923476597919206252616477670364229953165673169108410586845058919875948315368422305017162792872048381563289812439880064167090610983903778643679109336537974282710591131191578364172658344949087350005644918615841737298922603394942569851588637223600070347966092700207839497330234409512008067636228854719707017969575350465187975893803814926650586424607955988253586303358393601520437912394641084357579791145978003114362660889397986818254789389381126972264130391738534585060996358266977263026063713995918325806462088478082314936504583607602143747695967336460774351196796938006313049728102540927835797445205007389076933800069272344283183693717783734593208621339716051064783704923811042686340950398791558289000694120901651362561420553813144605061856267805319571705302094325836562692212728704067922524905870570392463315083292951135824022047696552176248032401114358152204889712630153449351609592359965699954112563486779680213894861038630603977738019222324170582587814624178988058342688540452269927555209534446034448458966575351692361298856788523604935677444815279104450133755030039678315959828107342339461870904756463612000466329918707096277947188508150565174306544910686066623356686207636251019703363562751560874526299381180556133640201503551339921925616209626631081098553615572333388257262714159610794111100063472128055245120781059148953332922731192137451352046955738293322518972872386603250436741661327795022677638890012467754137863368090800960794443023839896829137273998740064344343686429384156136305266661519229586011499380084887277771987845255047248005991003475065262376049620463939692959151301553909483029668178683668444647942205799700725902416292942813191260546000382743300812927106847019114341193113934125996396511624871318583620991498055056607770444647724089428270903321259922968459756737634928039381470740302202205849679997698982611726358273776673683806807007108047110476908993412319427067154539556373144253282387217546299046194766440380173133067517371327926222888890550833247881991783289150863193896132793052335299253707727498433605406993406075739414821074852012916675494084226741734479129824217789655800923481237609187944997950934365840259826265237955502013943650267957973167471543424689678573516397479342332108021900253512156205599737699695456331284497340498251855566064252266887986122478370462961679550245342133451712839016437682429990823623187494350278969188593047797545426559965026522074844451663791202124369228088465431629306200327433727291536961635127547425536300154729894094724844557975937988368824753566825866697139168084929086587334089885085159787645313353748432076546553603274359970042816879857832995747788236491567647759008488607493060981869062827939314638088210894650988309601257296042013788356316319216702140768841686328492686543289300585639915897133452828950616012454903605855276233435337752480392908546439567694118312279212271679904518547935031341251806500650605378639824856824580231152035720987456189167309658491177989804972830829998540225969654511855528309787980886725196039713878341106843235368234318466100351530706738129392695312892322743414282934404955989251837567417015826155396347900413430725119367175892624040106912015598537685112479393990402251397491518142386159221287435920658235555979134879192436256960007719437020219702831708213214457505851194059352605474697193370652578267693216432886576446400513004813210023952167932918952994227031992358425723904227987919639240818852049638713602369648667997492329123477088040339300797124176386643046427665021408473945873590364551885222441406122503760415301982657560709025798193333194819073527345508520555202481357999722248140317302105968450732570783308729750653593745656696378395727795800616249159785532898457380608306529811911436042971869593723725791361302126852637668966235903320135397115590637210310692795435336729815405435228315929190073216805300506370149487370954018997612755430911752779454454187716513089825336135596912835042537334748545052270472712119306704649303110457421850473454896623791198439941660330600823437995122038080562047386427527945241946266779188621251742017311832231580760446248670376485061912947392485544871650366954825649749682276916859593698931196574906980717344503425313362700082159890544997618338840503411983614515129051839999660840258939012084555717767199764152664577583802215716638013766505997936584002400939768433856901245830873241844190593578239701106659471594671256977937521683495060097434371542860506639776024673802633005317557901845406790257633624684752466714219426353984023312310578266001649149102742996466552197148714692311868624962871757135086942717216242958155274959966895554950875109559549204181160140166415317047926994611303554418551179794562063010678439065194477238643290069116591099133382233745801213011701622792838724227285081626914874468673953473938171157490145718890229390810637087009727664795918093999071160552788001020765778144035879209646446777253006346103922948901700844632095359546191771048428954158742791219498928572045841612954382494848434640099626418776793261358084838956006244549278625529810301695566298377661909470404502071206765147124212553899358911248240309417135740491790636156357596024255653095019371235058392117770811760172813471070239613352808118553903289323353328530502260122436736208897024432438108742246453491986419234656413590062867930212375152987190782671644186398052450186552047996734638226155052013733077063413799197679873522277417797439309725973783152561672275980579509497524043200950305562725098776969067030674497797361427386485149475050193898315396641020923783851847940285543653115246102192293268087761532697795910996475169541629793390547231628195510400873202790821918180279138772812154582876469329118248304136392622889515255208732030652244951362348379320926555464539649010451647277791346419417596885021711338544262764084546915553170248200574004878978669602130608761955614047376470685846150254615710785398786533522110664916349971566642553022309706172308507685734454543300840105633167853408087523543319815818075144145206541812275347408816317050592968743049474960748116179712393672793907907611960617111319672699258531608347167221730932801349164274154917083308608627524683603524160780255221656839914119278813886279470484030944646029495516125877219933319113571940130118293303890644042774683142884843049165762700514474934473663092000730797184038020743660194323456416409836282570336311331763247168884122804897731296696489049490294786648092107603070714834592017402100745540816517712289000715050296686706430247653453833848727226733868563626550744117628793061104828913051215439029238368659195594190945333172436165168935232237451960379177796743646284811089505587697109919389188575112418340344673752869421893492423641162584769913385441178105199452684694487434785474669544459337487893662830242546340638439991151027611055500872524116571418470137999170578931718219210470539111900783521628012496706748958539858087074983357025265136951458342240747755773715732813097333049661117695988720522637913353370099792089404313225554755781624816916843646329401608616569216378894569191826353882806528570894414425940506680319185824960472858820185835891925231480556608581706892714145283883137894426013488587200665544072296947349281320007742544668220723618074786445527924740409019453758532549148759160579678748181758496049401291428404852399176434122812207300280533376755482532088010404750663091007678120253267796623356608915800463156401261789661003192262251047766205330170975320139092348291646515888333182069566633788291561461376296134412756783806277831248504213274330255178414381715188600533917669163694802018972672628170715522257446066275948973249970368076331281844760925541999538991381082897157243451586393923394883466312619769618248000159023426175489956602746217829741757516502762618360673026180801930703942354982317063715186384959579326987915599215550697554367275366576111713777215806084613655597050733475686741065660890536629458909054913747898534647576411877274312661160541291458088477391294022127808406542560824880583038859406968756918609381098631581083100225675484678007554830609716348876760702941236746195723547196483614790084425648054722090304650612244682249607778421326356891639790558353609198238116959482985764877683862601363466750748554264109904506032946919141276212185113384850684861121122889173877376907100441127002629113282626204708936117544495429390744823503555102334415846936451895777560678167029393908624892158432698324223384511498770916626646939870748472232323186536705943263327509170906740310332246086975272462072214863856921306406964837372673616410601940001454895359914488973484118591148716472966662988507708079398407606129126594782776114286209040718612107337163790850831867359598815602636313973401367333906283022153561114307099674624713326967195609564384525736258535342907143755632637033468243058175499347807347509269728012696709610159031773511123728544917627967943008621123027535115738957702217098487271621665732852445241271735532039569877035519128244430682948938974482641678683336921646304876827353820680524427769561724410323041438507856214322166609457926310010653165922924808452578226811776824627335059458252251128940880385426705676185098156280321142714020671269401951542719865853247429732225085276892300623645279256868443587829577840881055836423972790815075632486925446862412273436953876878403614663387889816993064438205488328155771480714072350084747281400597276525464780859304375471210041127464221013350721113243278017666924628422018525822514269317422231849186068787668264751753688445318354887166682032584676405859947043904984809147842567360140670117123030306884287170516945314318932806179583381408885538087008257170677355064344939920024413080909122111829792960497381383748111675459752672411612076964363232698516922257335565629497937276916427222585573902361884868863349224954831604651471797352631622447916962116568509895354843420457227678442769234386901892042211667037917316639792988799748841655921018033392896272757239511371146929988826197960461106473307682458370166078055427514126481189291563203222862250822542420960680779269067744818399205954174162212994833819915425965660679339512510661276419532836759641779700717855358542833467494658296955757553569022497220709454778096682095050167838317732527504069076239727979257574265367662493430813027857020172809954972990124417302607439444185964349854546029414096981556389239552693650229085319062322977001758871763549043269517938456574542643509127780087501814363337629549106218268159605331721765565913971412669736260662972175194019072346221587479545991249148176275462165574527129826849277774513308003629515947294915895876566578208639706145532470488457080810866184178341434031818151478576887333925774537058012268699371866620230022964104573353216951001613839796835355076814578353492903559839922526116046578617055782194163492120094073047345578470303436678705401722628054350867705505699442524329028793521868173564863572769908138645486880281719074127132412921976342844108447850731597448910043762824046472693400255778831009185572021449408609559920588634030116999022588236508252273032256824015656503694175174842715847523979501842939809248517230723779284864701145737173025082674485167020852895358033882089932040042373164409646663542813319364896251615413431930624531379598197715322302365053639051582969756049901656225679537103061270471732092598824707928079077998464181508466824049565262963192724676439775405174202994634565476976333745395680199119396638175626719583719787058969867503982825073880405377282183907095612863151268179967681502492692211468353735851328581448391296442203002124102337241451975050073937460240312055373528069298287573538373670473068308635389154968607993175136207147929485994070196162780612365177432983388550704120382698817742470069828142508941724219056900609444582208854542586219391003213856470334621988415457046946974376517166300982762545706365174734636344786789147728005792099393640195661010544953313146256557633628684755238808566776894710547209622058617010573047315513392048784641529077320135372812994633235398220038370013537671273052368542446562270158844153248968231456211417939880009833983440394346005651709549747366935101812178926127766560547898987677150273054966907741459752838583850354233342643845845059179091985098646567112432655319502070594506206631257737687937288552315569440788842518745032449818688474899745770180745041831964254351880743449151652977031686633563299568144966376825527265559861876659163665012714756511774713214730545912305488423988137909772081410795400021968497117157302393646942904319748926561462129502627297395830031516343314612555809412290050996510868090324911011302046680736725557054465787953689103335891829800933719169634961814579948107606944589241926272205326987819545662761694848814458161598080693782492167491841415498866110689567445153265846139013417466993410477342767255855833068754831455711976566673771493285456366044561406369388557386817732623953816002784005721328657203664953956526242363562722680717722114600125595937038676104516653916271315333820495538471205094639662064346643903958167758843154370100189143664059681840304269148027349269948222330655692993540660066033618772833918708231484566261020944550832294579571787955908003150119989005292160495369649130210884190352087649743019947947565641614299908772552179599438654659303404312428851778275723587900260876795169300610134310464265686689833657355265582874060148249642164940433610868097041662621482248694085046180354212595692094581088285623782031874994642758498391350553167238457664759278556603389828441599718961899387039467197621441930907130201020921528982155830754865170684271632095609077403952062280010142806733678719786423398383525720450481735856257389050990135969214419629418064869839040344350119706896418170331525189107586714066506896058619116094090533892549218465262892348465476270321913692318028457852362386780078973216314972644517896846397721677774959978278727936668723951315686959918849275297496050974493284374448127984808378713752706400807632595801925278919521901349700276264807379401426327098776507026901375759279837711916528063885871384029144413939316320146133783355412371421987969090073040547587943196320125144573745438695569142355899709026716292447212854645212646310199658355408704289656195048704781092462098009742999630035156753575535302784695931863063299799727423625114853345580414342035638311667784834207845760906003711143182626041110865255306669820867906337450748584485798752623854310307015149631631286566229049078112478707832799295229863233836260158675161488645401597752186070623628171060502759240667643468180683370953089051834786291690905018218325265611522738387452420338352723102055944861109525751119807911576639850174424114996358649046641374258357472210495029935050990151866011802233587993311334220387810206276269765328063231762501797719438775641264764999790719933197832819206546309994746668384598625917632340233196556008045457080268247316230560767116969611370624026780603382687058919636234612293572035486426728063474292482001765495386918054500507051405522762625615453435459737836427613839035110475033658017612163991042661930655944617242697711943731502859872100239254387796335986780854461650264240620338501021394580817549229569723464716475733512504980447734802427953305520907702018992381930926000463416597608351451129491277432078311134055374116248767834128837000632475921657259626947808167888175797384393167001304813703722776027449167592683581731498527619007061676989533915768126877786116149998346624826475880230461378437226157688501310384579335367067506767663465691976727102411024249204766457544762939539520580806711856280117511316599032654579059258591933109229095636007506711187701346059051140477663756445788218897888488630431840404006765995971283434766606988480274085873087604378730565137005996189326784132582514057564422855035459875797175526135669051978717995507024493470776431229058809216307637756991103971527240339613514167846702045472355175226989399574381065468579132674519445898802277810302642996413221225788820430069435996505506884740357225079018783271185721417753070868936067720531113748762204366535049875070675757520038761872001727638183727105954540316228943046407189560995172718311357507307772803685530993049243655860741516792630864211640092504122478288114630878617886413249300584462369191491907362734708466576138304893447047027199694177368355282171311832518210402005872203180260371368425572021185205080730962427500826711446973032689524631327257175279027729486542686187077486244091597278153069343843819975426851302762861161510542559152155168003924602229060812358387128102403882340916741880046488316926735029113410644846260609702137782070087707312644852575625296654869987851350024162408319853234800314904240078576619483031159710161349043974818509657171422583057390889462143221752378889722602650016118631135849092056675302574573838023600298310616619974324768277360401886769803008933546083978604241846527601396884097665239515722472860761284272432183832482935082740081839993426919497296455994682564715655090574457166267452718995715031247819807525024447866124828514880393950965475778333120624386374024771434699759562221274753396222275640759122592451947905778044364657191468538637121036830101153528558815216502346267918486143140454159362291315553451509315323958013955872516662861287435331714634765715847543957187218104068869487852934942676480090771443339554389026665521718893140847835211373632809699854753747090395524706569825774169919957607314548744839866052268746914960083491031154897456759908298951617477157996454614955852302564539431034839040178568021643145594697059393397519591406514960237366122237520990661314145059655704670423488186148189858881126765902183635009996735674282450112159689143570901009821826355698916701552109940996662821397858272219815733878264858763858970168780389716345040541430105302529015929972215707139561606573683438514912024354702859312867411572155466414759025657360653028317921494290253911979213082736543335217093235155651428511378805240285635445190074680209835495720647982503005021816304998125453786008570965133387109538412573429273601011644806308667761171834640104959814891114248946678732063122404198998383120361466068838410861114460568758662837110997781948694918283522866415371663823898656678148074699672189523975363883379884504355710203012849858214432561291581245945605851942576694887072692901331083600346646270937391473410987471278973484027691337328551996074928605556207530461155840510226547396208829669623265502384921767022541644628973418654441743589859952147223333717600423153250076463275037229448128795091768236452733626364404638052979154533878001329852612116237732470483705804493035760145314566663329679451148793031287640555209155191320652812028679544634630881845403674791326869192432776985379569347050224796060848876500650782869385061978000057253069920832238914619699532648244391201491557570062038136829676611706111924519380146281310935577140788439219896059210274933167117606423487078370634945188040498234635100050943829905289490826181758234262537264334585162173781180815470489182988466763935461270209032798124052817030220136275526866961332099218043213264236747336718925624325965307027033955564661853994946077620580718819804492912751392937141619313514350883510001285150503404818060841660232712211028149027454476570819502182696256078976940486101547652630459700177941438815992226090578999905654623607047212769459374344216575247854909258190641848046136050825800050847204828642731081565536238921605406925239460943920844232183866298866193184415977881075067896271477270569143846344701485728693239195332467559406510047032679673560633062536142952229648939783491729631114111012082183265925368548604916217428769922607691976301219680064215452406949990773107564896653167836562778026747628976286083640562785898115050771414170962494145621045019606075151843178564345169905763068042366180025501511680413860387351948016750040533029529845551726433802947514440963353832603186898394404056353345405458607362343349154780758889402801162854533233014654769041064409707607851935717213960294894677439970986399594226149926555680026185510683315838558167563214020833312747838475712410754683483680847939226527219030344150950617143659608852578079409268083793023272141662279721644392970496506908955719060972266590442402662792695246835530000546557111775235935330181464846830797496039740574513521667916304354320365349981739149385789600319878181235125658941267948482598475300518695974471425978060395747825766732537353022854639254102167096266646040626219860723277839278698307796423550553056230729576295295669495898459873618814866794242847554873143861219585399264777138147959797675298287584515558935932438747409961101033445469113859311415526421600227098935417034893973610693419257117881548201109360929165938546586262795368830702172533310140860745946016627980976708051853548908636233846476637080540198637778194087649812073003585073211605672978348669262826343234340488998273164578663937716421001242349331073155116229209875679845783950432320953584523415739328883771804466501811720675818832130076014719507037385885818012357962361445326877018812956174523784742625471801187900693174760209266292851943707445668808378762083983956842022056847804836457321467802638360318513218481272916612508366666929366886505744201863591784937502685824278825048373186717825084535456667914496730189723810985131230256231795589806968557723495641358136270511237523666465983131694950975542330223002931777386145135425776858016469761322311719615758362520771501487001918099677553149267588710573341673745208263899699993976282046802173744768796675955302156421208769074108330364315228047588107350376902594540284176639493227231171559685315952508912177073414053835370040583285249576140634176477183980042896846610341129835836205018834743618722120068596168781586008178285460236107623656570198637769254550569837089512448955840720169393717951982391759990889781668653206229583116011474417572962161687616493866735941429212385226787665065308200070371951449427072754861851122265028264662555042415625421609411452119302318796508395082805516260134318035147395762764083089685821563890445990108550725424168867703691410606332725216005880677542349350634773349156959038036369128583773863880078526683309666382130970841929758694852242867438927462389308953003744693322022843334636230752477903149697615882666058240589628321101880404247937174251683765774970741892197681910828123778799008546558986295544990290078541728799994470486836278836810815562710583119449966321345699890216329181076542299659894900862058997079507305620507652685446553738287575581462206068433877948337108311422146551676093915647944565165037379331077089115030971782198362615206787861178411390725206778704408239279807264564105762800648684862427558386164361391794753782015212174649252675652332954157290211662032394867546602983947986738634447427499369270699336852001138544415145365889320584386565657039361615770429091018158655602800544681303213019717483226683628499452591929592574259128416633595836052441210276387224615681216765896503439601619625518449188172910629906200470333247148551199415912939194442494585486207227485984974759483881022281986813122922061710311155231321206898885393461993015365588196137679613788910745932760904322842884260738866625151369154934480238819622915329849261795073251829457409745987239408454175940391929455219957797505139084099757687486507368916305788774696421978077818451182048854172091354081149931616104726991401543546361702334471789714803766631011579253538978219189402184335822218981767158078562747780474034500735444817362715036398038633923266804670551383186307296283827880792838234137629958818683048451322274888061679071193612189567456215020057546253751472816229726313760373464894690924178007928977815731516743175289996002464735239291486347572887777765130663654369654459790742685208926307317087877683771418055401842053288778905698624727219308611551615135292938438262812058829565609533005228830011159226924265841890654434747903045404808675917101163824463828609654470302637679020386896468000349853645414407142153999468607103685403358581300921828406779443714547414961819059657905295678967820236023852653273965656184790448889170340280042080858720823473152305097618935062442613224829375201785819681188231963418289780163358469600427158321203500741042596923515365256168917453599717076786402518945198964222372395563565024099396251540641403184164244176479194588431318838365892857173072563643858172365458002135323621609556093382580332065868769359559199166373185687755358397450873945461889097812745455772902156105800622417503028039374945818193509602038995207171427593923214118863102537813958141050329733810007726702098784655067061225517132829921599291289150766209763990627228337392581397711611760372815699030439807879111316938326036755719990834747825070939156260331987622609107313829951552264735507876080182257254561510943239449384179302454799734098999628259156779112135743213980975298652581914290487257486507868931478633218375834373413815364046584129216462289001703627763265528372805598718063540469409896986727554961621734857511411923803453350878760851291191678827375166129818526756624453740649099082214281836172007698568397387608525910760845805698792644248896965378741933084220984003720841090894092089029965643567150303292760779355292188827568602137357419194435725613178607650733871854262211622502488329314266862651753519819281691750480243599359231761045622649864706343966674079980820421734937304799025087754716009541129228765908815104763693545016597326483424059313862001724344396485505847781865515960164165032179563755484056635387385578821095751572987341140288765434023627567045923737553375360893601498879362886102572911508728448927537830561108301946415711087966298226590458990207731743484819431011020036235223987690965432176275373058082491506787337220206258552650596056652959508513568162351455639288822999442728578375542663139858482534329778312470282370709212339716257039445069570555832243155086642411956753816096535539713250802325545262930911650674341509774510396586754733151442798762973020591589057555542125076980622474222401793221638345801510642112113106525254720193242897004153349864672940640395681180470809932172996218116357025639793643356577280097626256675748609636535611959239780734785469327222936531574840060106302149051783966388854601789435008798296055471605590663901144730488559997467817880713680097127038753014878637231314365460602213220472848423267261342782643170517777242387917757891555663644240922548334556393149780498778121636439106332686763181972427086184413077813722222567138525492012463985381860261062916444986398888217324255822982415330298022790005706695390654280174055294066953691543301203328071357832439587667839238692511759300435168690109489691662872426480582812131498744512173810165853248487919106759711806301847192030228389883752289235282573569804845924436522248887779279978340507682400588784137022561467077076199709747310675914596954803559881808045268460679482490576320323680288350080446574082917526358887848808483239768293391608863556803104882382274591773234927849533062431604126843605484177397003389993556572449329913761692855204154272307222122713709088312630418398075514076024755245473526506017848599992782094244130153923840275944619694139954053765400676352664206245603033441396776976064548470851774647250389429165814348171329857300685333244940608533147285091078174485937678680707834046062985562299417373520969657981851066077059675119468711951994523907154121221868848076818915360494316396435303139421078949355270429371826501908847095177019864258026578416257471312627603038636240162534466830996759621779767722512195434464908312763202040735276097057168765540110978503868535015142777575699899360297194152360057289954626005985830211734640590249512632681595154299458920547226215880939244188051842444309153876791599739607743072083677499078407283159357105992014635733003697639868095564219750617113924505759196960533460241519176169260670591002911277939861334866736465989663483972920911057556471021916729429745353148266078679203360473458685715664562256295959743023828016726713678378803878665236026212613768879269345500777954434921729947061669245592239104663533654086104866275156142493798128900837784743215139596340498652065991383381253489030053781701974573183406508159880116785137207568787040313315283772555991896127174682365929287433460220000093958266174448698373786294583867755830053518389501344599659263019882638661050363905738602196568758584016939811384932673203805665509890884579846920032201115617453457314881829824826023335307647218851892187266487792809043566871942939716771540176565547002081875548518524999986500158840080084298996857052643622237804408589835159628708666487389173646873944375679994903265666901699316219825480267299784958012653661003301641421278555437392246725084406109622313769919694172666459187592494399738920745028868592399391722628123172025009995926616332284707793619473837902197128280979414473042556025755569152250862108050705125521082257964629679361419703199834057850135023455292789382733231491703810657586473387888737953088912564252600774658479739673824297693016896768156622124755994557478224091697428065194950099537085207915589272035543811942214133209004248480100593912351710372033500504006950708780409225703060925617532609992376655522059833816064146963974191321620584546351221407345325634002636741144792427710088011427776164704543634860410483193030873931148567326290180916746760432867485266686887998006338458911235101877420918836937205938175162090748045471591580821848012643763529901573855202184295480432933810421095135009445340711024696330606857338537700685246017786059495445839042666133381156454123058322544526608005714982341804590243093003427383854598725636060007645505317962774367408945026652121145857561329663316387423798333988908069232185086992545010993053517664912667941209691184329385145229185563530814511216123876994884403180231933404022987593878756493373732514378129968940432648627259749782996464710806219717296695891769982525625050026781906388003348756854105741814530513324011302486859694062039072024179343674143388124785731380018665517441424874446847472306644401561389638929176309395630295069382472682290196385453096183690862382895487287313995907217749817330959260435594099931311930203095587944847532001684439901960423467865911229835289013721841647040242232071473978557268042562920563402786975759561558638544269822105373807490438523830151794424392739963432263754757653981852977650347317348989582185171192232492104436407118684864146398719507771593054792322885239641638813400984454045613330514729088876085281155064961007890545891483086916883654269772937481067392939067644740218118745731337139080475391354245660125205957422050481149444977844919027100123361223109715987731925425898450467272986861629381747859594880358214872997755625674845235425157634688664127315966711708886895298079104764937236046280997975127498095274926393982779218204312008373437342438325153533670822942527559211368376464305240179913002071543404497145801021719643520557788348218718838038136077380028116957186623836453357907706671246388081417391098962972092835536693887614532894753722214628784974381765590909492870549054096459905851905384343996127098482464853210241236036111032660841568832542807416526578162592111996500574908646472873423875466310196177400901508757284307444678865404054314564654498918519557171068179636335077223245728463268474628684912940730948863748223850242331205622182267924240618215369606497647352349240746189422917245998071402935297031583848198234379194868352994921474084488432213397746367702483924631977311848404248045160503902405157622183926560247811891821830905747862784812141908870914292367522273929588709376067271161597106721670550706600645944018600680482684825642337475887625182127045258788483573795874664655371379378145883420998315042010214877977055955357543016619556918901171208588417491504253785325328348917792081427002647639109911388274930126551251914995619769426903401734887261137014604255339260416656334391177679447173324397696958255761272598315182295190698780457694247270976499954017289254153721105100412969262159186466593290015186804766199522960710609618141686545434989115741757754553167639732591105167695236533123508820877974494069292612641993439380364764879727408852581496474666752094107078470574152571839835537079557191314982626341485772288922565009534763444254587139351592015716519919817515871198587845907251002276844596948933302033379267943772019029794081931660727805363213533471806024967904261368653398620619739732770898601232531386017829451646562328673288946872134043426582106929796595720808330687329952146228084571895386051438370108943094628185486790031100329783942107942498513516708313411241697575493918171102611454804992305971138821531779370263135427922567742378268249808392180341216410830855463379883333637810233300005657902648835733027624202093957284076775701806969386914320741154879843047057299633284493802955699506954707976133797662125401474061479817698845069991611969492303362402269958866726113260284838824905820388717916311357258369951344146297261639567796915533120811619080370547086437971920003949002236726260130846890252706618595912309064438172164133696592946046951312784337063976129660718619604937462556849019402593718172401536574618103545970449782495698605741861672412243045970276910763495401146680360788695248081534236304766866265171002229516972268478194021475893283220280405346340341345374952097972781308818178144884774440914139261800368796882015526071878464514456432104675011555736039484782399163316750389478148135227258893628671638037472281215845340665040182299059976490994914144033001108845925966742514332885525884122701961366822206143720081409877421925008601638029319490741038022344099035418564582530145863085190675967420568789828409694569049850562641033417533359147126213610396206010683399806798860736243741217924987313607883952231195592136953383170518050758743869353190501568567285620517207178341102089811106582957080917128871306333903500851371061064664626985104271134250821055021894825038632980882720824329278906311376961808310315666155288223349033463885925282876788629930809673941949529946288621256218961085988238640269582640701988018504875594287705675974005563175243411909141403243186435813312819214428390597401905298918477306141858338730235187517508181009614829685702037227757516542969615163466217033223407348916641778279532837327213083053362954102260730619421233476374052282850985712272256525271505040705648977229423093148028956740327067960989052824274213978327059123797217058742516750743694269790648066063408027837475862978046302294205717563643373144849770633488726620252872719687414972054366069663904349413029954996108647620541010535753012027781530581513200547179724503810530176938727881538186008185008897087176565100638569134101246872604006072973785141674920959477197288136335103917875445883895584552175264243685477213929527438597254535723104750800387389731892872455041567581353583731357947038401863551568638068642162591969799982756214421804654459395169767282701735937918616275389110491719833375063757354506278275540191285561682966358819168102723706220848993547427272076595374709860570937135930401766591251266009942585943553441345884594444533637610041642393023170241670573109862647724928809821189590934753450102365696431599123372562327377881080487387694580982966508260869687709469929976191572165268190207269777203655346215857043283659140753724256860636523722815812632306799124142259271123220671125419398179650203998393251351015972661533973478743721163661736440767081380809048403869811046803942085118575224544769241945219834806742388659957067860162804265143749607213196344961199227691633764152723322467743856818563774279991295720102993848811317044345991300464378844846392491172843293236168692433903883576282705452425829416888301926032688454244229345055400251264557409487461511277548998894714959407293728421873026221804973673348229952000917063926712036349541726541414001981117811737315241939559315118021107653680172806416312365956242668241074745553473399312697050952605626475363466509709258342514316644162090998565118763920493679885378819098808496584892774605918297281480540029706330539053958677269101647111420003876889491787526136508737052900118243625673661993473208964632828628158932459394078711303379060968911863959268878509388702299947369324959881500260477858246451469165113726129850815283900307659855947367329511297957066373718760168311771647218237408457103025590727760239598394269202703290541994621527294070490257520435371606356534784114925682701250835659116433656822906696069227891585337155584965136872734256766026351290926288759756402419481439200020321196187600940036502141979498806104434799867794006788030932804309310056384022299031331422713736511516562269970470459284110659047830261688203137245421151308589142396838496711924292930451417627102416889626571956344847344319601349228028271983558392847972297246899939823541913823191350514886549113155743699858010392051112215086943130771012845003790048924058820839222844518343001288270652590296475385161265495854815293986262890653334983952837813905082748638368908216506640267064674246340863528300470872966533276527563769883607143378101458507918427654082478591483369335017688949266536106944966681258871702744178141904641173326031786819515226903857568283950663510982810393486943598956107712061625408254910480220220844478259713965107609722816309354071357163479798373492980420512805509411190557331611440688742754256339331617803010229650535609518010757948498116788468376056912436125594110752023349312122398308474380162271418599710417932588869109391787613184393316088139630772551690203676600099733123317687432834529065356957443691715343752852381195318111607398628441432523656723125351661875943031854198867979294832409530852597670908132158843249946638898925237173975946902625993979488737409238003335065780906767495665953666475083706424927607325091610692819380903973014410033933384692461372923341671264817776433492020753962780131409444179724034834504791205407827400931238917797345052492602505011269362210170881362846138240519177036994040007846182830945741035311146035705083327974368515198128872688462770662288112758633019172634768179966133508249620750712791229079203307427295489516207516678478652205206624406687924622130346873970116260168704236101567621014214159698517934152242087659950071899620859814762287433416274467544220151494896706531286917544873852557911520716847529985253196423736696284404101316196282611925150280315003595211071097795119503824339957968161320644185338799744827544919374082072536905439291819837426738827783742198057341326515956604429028034098490124804981773572623390453999933904081844370607953502057566171611445414711522339053042652356621930510984038643590814795221534984504751191894618944233468303442395265187516380727419012486677084025848100370071884652607449160511453221937767535147462084332305980349786530327091373527475606053257580182808725816213945895300974070810378663421558707636388596319636560154327525825470053397369172284607874730792508635428310397782668339082180598162100226822648621589386447152955094143166394364945330071036075406610790774524614651147458499097000345751261533868829531044488653220616252644715607933177042096026223337418918112121619213467932224675246947683233208531935412837368207011048823384036703644223425889366347624775067563192879325111841506108761337980597397815551855359437703411628489518333905836607707642912976263381786105061649513626529361981550047708631047053013999757488715419523314031972627926347055102650699535321583166839574208848660342067701460627798975760499650792513526204580576418582472377590932374591151566414030532485221873085274082581649750641919319772373643659705199695642972947369097788182805188473104472635434289182860213195609884428537452463424906263081529016930648098037904492372221439011811495366286036785802714116481598563768526267700679859362355629825715545615311963110195727321983795813697010953877944470997097565955538779716546195381912435997463947863495742185160793945130920427437060335803047802149172724487128551784051246597537528408324022008883530250494724721949165002476101010952783328591520811822742321162084136639434060350032330644750396145862242809542184105312658153599299605222016024514393809983084291510154514827389528385868900239456543820440446743592617455576227514991294668604815374629130466369972728393150037081217872911490044111549624232913165945677322499522255683005654629034715036468639409962818209802601768446874669482975540054816473941655711912663056692105119900608450801053836582406859383996743754874058165742851431845070984327116043581102729314204424873647977661590681807870108466952535699757583794646215314304972902726990989674364504456627196364647603393038640440639805812093654546417378554220960976394815239021620571931477353255744128451701274538908377021237705566503724151232414730077665339212269027421625425829318368682541419269984887817022818268239521530664017481065491808718420612149664886170054221809033828418083799257453542420898948477994357177997580818921544297912051751788200589263782177319763350194537131671670010049337929576284046368971706434481847924496419464806390019410466912429553905597594160838848782156655146539888286204321046673607997843870564158463733099886609510868435409486261721922168557290572602173698436650756999743102368452282007201003599562319274973473030739392032403542705502703474808690145555382889793610867442620762075237610980952910618997783953562449882870281943033898793617843368940918831444491240735879504816947709740912045739052484584022987689802407295085839646821447238856139232912770626890257176264583003396562849961653264425311134588633899947332935431197733627669295781051579458543519191693472817663123060407417113525369961796038348073579375931408305046620299148839995296974678238819097219113774147765751994647657841373099296124322604019394566539324460946583992377273143726154549821670181141442259789821140978733251746049455585856149058926589960936891866086162400415443300507109666681142644938920338032849647727961944630316997209209512769066433859106148069582345256337906375936370611971454007800227141034703868540671410664239910758495869232191647567909911775980232610729649356493913965194515357025650923206486786179111268980080693051420751864686145064877931908103993397154148227157645495243086664855191413203431164971054626110299008241806587197585442753112800596405985450725958789169383465517001267010422126949070260392776309476148326507393103893092907543595064367509573893173583904018812742015181901028973455919082823088374779247257378479439381646765709620656979566908150117251070527016850540976941437025708164387896087173043166214003980144203292420752077783779798385833348596512964779276214199997082496258581348027574384746120366672310365013642057409402009544469959178161642008384557583851560775797104078947992977249673734531353167523396211083657847743293040976599889303911720060021294385359780804374726786020718032653968704709846529826455711820473236610996222208111782448064939161834901097311222262235903850590997966533385996160793335018150230230851494050109522731934208102288539097057608241881201316942319291048296282230174788552645868575598826599520492448270664164108042522601634022675168452016043168550626327394239462271638678374157084785083870652679112469503464203666921642756939928180942644894528714878478217289242409403815318515781660128636434822706014710448568340628011993956793695270858012943050089345625525032617741519153641614300575171450867343340965799492256415107287295329484198706236560495050458587043788875991470114692074325109973104603250457586848527319894325256670027706605622320278808451261191621123490433321708402761095802293748503306328813452263901019433992338226167606863240772937436347557420904707984732137838896409934827739744380457429868254295089431034028606870966419844224694506281096790486016225773301619156542908716209387570571762611675892565307741312466332886085411127256643635361532026817563952077296980040773545531104999198469895677985347379652754064298998936095044458456295172112747248233677335772580053327186914669350556573103398815716162501930919046689360667187274168133648584746790194963467676416955015933948971917781391367826371102523525114752561097270344126886614109728169852500418933253263373340651981755224394092978688496150888793745524178941626281106807541873551948642593027406785557080072559768166559251017124824550624684508239362879518201155176837144908507221282858968364698436840669540902634342149958607818411579879162103319788758639203242680007259654499308962283341878827301789938569531669374541317620591117920800306227174608658322969672138165628741685932447411296374780692667910957154712792615605259133837198039518855425953762245476281977646935351327276207730160637458953276558276909138682173779629911077718659416650115571981703070692904724899696934841126398922004499806352806120454728008809218489905882192060720908715420084159650439720475534468514766548765175266788940871351670101189773930478844985426173927308356676556177743253310227906523867849653923252859254892773169195148996294994550289561328566549538926216261141159023516456543418627271117280097828436055596669404138861208872515645782895088540442275010490721342584267005096306145115560575570838075986395934935140458891854742280329565352331671171775076757457242969336241995535056004193079104386411648362672159065022650501042120719415685603005159795762770287066943881815754605454674624647094569331971445885197168381299731097700379559289582420684928724874885908569307302598382950177886212916431097680673234181198984531842030551672209767796856227326386262961522798950163798589753998107127458483583889484783550320781107611098490650113144392636326264303599461483370747790611743515917875369250919882219505204959522656473193109142538958795825877897950106236474879466115866145209430572672908067596820866684714081361684857598291345467660244688623837177255651925990180778303849413795037384680841934747861672979047363264886529660269219711784438749572354093474583454499223610359870280588687511545753005235405348901432946236970730961351318524491064356334185614064554812556072881620353972335694476793902574215449301584500617530799547014066615672103980102092453994255677906258684981590093907323762840739214001614137823385408408087163287949907498450652977884087042779699939249756850807536814765270761362764932902515564466826244860201766448234558426210452753031376426942798601696977540270481451901244563375751284330703840068703269602390084830515843585880297243336084803932093733809226277729284961972703182856385124960327572264046130568113431313835918118048352615674156973073440462662898197695565908050446401440557150474078467974051621742972826705810432147640372815118729559795583668946884820133571448225477860461596281437888843054860437211528500181299146666955991263452443302612159071877329741988333846247550380184043811579217961083762031685579416023187819187007053430255215916723054030074698376842827589001094699635185334756304158998331348874531627914310609957532664544776537297912897394011646642223591934143358241533409379814252491924502347801026850060746418707038926362565504316470513092750961094363757892338538519067423168859565484240862313405282686831526386151963162045695456098264033048705849691709243409126988449342786476102671612777250792642247183564106600825137290033173801456707189058867827472763100046832971458360708000217742262383336338997436109864813656135861071091612846963553310322522408301891920189673061041526740993924632244829457266004569674031676779839391686626391925534003395990866611084998774316756636412419793468618391977060359761281972043058035308478409293279425088649317988076575990749827282916951548952290896187814345284822659210056285931863413862192169581010239993484072994787489619318346162827047749990078483492693219477821532998163400519501942445103156452165750370637851145249952842102236413006350072070620379997165325438913086273230853767400605445814395384802747166908968140752543882603842637639240904528657393698447589854818771566010101396458113027237142177363195197553307488888073115456114522077762477260164986241540999344988642827908072655703729998614884038793327564234561686187025475198483051172684155430589945618448780600570694325766544189943022539874832447313510717800059400137345959228155589394599552368905510843006247432168963423218786825302412211257755710383808970027557091176158210128491693805767878275701467931416081104329506206226077796623188134993298874267931859280714985409675322897224537344863201874011143866405646356225663631393512993674743375143987152814683765998003690505984783227576868890097507434096041462234780080681342973607101706405988790959607445879330447260304604268957576693011423370312794181942936967366594986229283430668077482114251863144820068308696155465045644115989521319940751909568789795816211630066166611638593808204541829972127244157914133437115047825727897100261945299934143591517733565616248163932601234469878099892849765725696236682147470609943280069339855720560357817111662534348744240230388845505956380253530812477047332826438671179522566408473243870425528015939620523907889731485458596425991050613343276678147484243176632536771118963996128716749346042753815049832264147644894890395334186300333634162842212357761687268886331109732008547596774396711225706166148344342050233985067139116906355419889775523069860133480633614796670608526559246644982771039631133968245224566321853468844378436523362009926115675093918992994245222340468271989031312092368377115923493002715075012993863227858633805977563089420814448249039412874625776123318808451904103951963036203732631347311506628428018139770921094313615213351212551912863282001915373842917106185845643156771363065320236945788811918211182964020643049403339361851646269195650538808169254276571225598275187197940649161714291423912906145309894825935015380802919646136713684392693413501693575218135182231783375493358446401888556385176976828046238333689701685385583799708729906688449020478002191244714898876788594456988808022714958361579509719122504166026019647632413386835333923268206968401571742839785369351054704286930744004705611458811313820212533629090896935287138097712035186706128128453653848265545205912873345608798967472589635552941341087493342722167718517385275979440848850803744996043239978513420797389914533887504915391625120953640777082629897218170313295915537681518660871936341571364606992465225795319028681571114269123077156343817604725862135696733160543206390475268717029850531618165962647052280748728275356556469642739107810232470065390532359370706498766147695848926819223353895319018385388920647012718219147071156668212414624350004889036213425806612318461168258184793543703396960566973564526689069360939544886883482220450156518801790004399481524119498198849485255599821506546725335229836408806726750745150659460659255069208612743040983734533961140727902636077018733216106634812541694136156318795949592622135711396369481694695815000213013002443404102332062192617802999216945491326150530808512294261514371518518455324361203118420668102818779600282927762237829816247057182166175899920473672254099700078506195698326380504643631755410665056976313741495968159768204422413116412823462213943370586744506369889319718479810137502589569586271446634221141494502572308661323723374127406553820261275309470865319390658250880097997234784942256188337599753521517445948250317857336781098999978715612487059056189173148199804876706533580006462308450556457086866689393932391746058001975737029560865866733509139299582335936079250640023933910483090331447783423524167910906290055232731615786864101891699152111708002513780015642401014979056072516194756862710293358197297953042038572013211651401660363962216113909122651581017976026231216562313582355756170648461064393705443996029568245578217206487933110069184629617830039946800952194910210938129532766799079665376822770810289739964047266402281741881897318344903452102703891287671700922472711369455474357167506274436993474600299096934930273195724156177069584781409811239415503974989967579090333591843321695396725514522913480493548683189870171990108038840997201250777837647528049685906645905642707481015588497357494856612019865682783889860085923512886229292603346437787658194381382863291270185129553055724062927854261499041208032685034865609602775669416274118494888242003526942223316753863542000064844547655755602133481788701019211071744412139592892765590732013906193736223086311383458996768886167025179311973396196380471717750698319337172790472904079404308245262223520444538337977335411408550822329837733103699356598451982702380131405255007651597432304678358995433622748940695794222105106600932050565073488269304075461171906142068423883800941111565810663762418073048036732417727817105400548825176068804793891172115530504087511708323813321600729033590506044110843346346821114051812489893509761273949049026646121472233338487878760226040316414329150656171175784335276127655034370446048490285934328274810033451176162452455408628072209685163670680229459360741524263159685282115249596277455277291348785515366697232719457629313756393801441628253067863418235057050775478602933358683678589576545531999776516790697472802281903809819957657709776417801847264171104653076477129035274583031933224870581701668942513829008400759263334013941653982667003475661063593721573763810917447666830445419758066608081333605185809341010066163039260410693121364824690847103707380100022765353410453018401714233402056270664750321156232640319189092363775516238883564666031054096807165563996905802451004189527269047082296359066597183336937624614294019977040402195395631388193454995458580007403296538305010592439213202228957418444979061843278312295396112269557465294411630990411439283545949370314043547320142678289989659484612159708166918563275642287446585261206458434249415694151060695045261764265699715797502130682570489763823889025446478012662367720804889787036924072390278680473641661752091657270413572140568489830970069567888950523947321578378770343497253750979387857856831104096906851403968291594227861264982129151650192512666847455078913659029643706838353710540068741879525013359149232779075372763964949140032037310129636624277472852902445852769676751492858138216793996073486552375633808549380364781058599553327768032444818742406739915601866080242421633842678024168211435379913716491650372790343136746364319459142782551792192379129719601324382433280709609416571716942407293414637099511023475138658741414014029864057143006540153182721657344854719161504300271557178479421201613492587670023033089766655546991830756038542592049350606553480057113291369673033751165137586814917208643103255748036459474871064730580438591170133663196321772650679890475309248740245095657649800777316289141831734346768536710749041729652088063692389821006641310632199499250785470056244165991520138942647667818541754292069783884397746409667028554271404906160195040269114132142094484770488935463540622315305523788571080239653553728482796150043633195538110969522516715084055583107962599371317973211040379069335790263211259196764551336342197055861519547505567735601897442110422560363788067530129700923787204953081458690419449036417992793207489691583043444618725831027546963223645724534335203656060829782226440331160690183892024883243271065318165083568530760840050160755301245486712747885984645274950069380982041440335233087086476071385718054098112737334018802161656928518437159949471807297685243917520999526437686313382818916588525884260760473922510318851997583123208288124672973286241674479841795404781087356558140749523508711477171275467778627251052040691561534596176154489946221584702965290336546663878105790887228448283992678124950238946450645346883004745405511757546188088499930361558993630680592306136433400279890055229435518783900468334513170960336683410984418248546858297209455099239814003761005429342625380376212074823607520561393827091319483495574650462172442494761205999436980720671286071367699817240162359876159628232625624368971144139571743369712621774377021102549615199211907486388603323730789869907807978863671386143985561986958762284365214295225891887223332909108417299476771470454194543097554154585439048514630611336488424475807998846063801108432375545126334752623463404133529218583800240215793615340856322025186712764385243454329089696399047629937895289049573353477885112490652011971926000160864804672926762658013306486448815027126940012065326346971729428974316513836839540168620334332372278997806591473459443509917841962736683312058417504048737279085291463307141064721007140292141016942025904847556936143116738488401794923616609391237174527201909070989282969227140923438372968108399327114382660965264928739922894700298528954744159652375220215511680253827870938688763160375655472375123949473875297894947629850211788379863459753312788157125384099434789569663658737632930700885850677004570804151887801400429085661006434970702373506561771383810044099284669369363411027695619711968614056073079063606109955443921917941708232509049528273863554398925972852096611024715177327917242724136135313129424440221642310172955968574578587456901679134754093502364240155710066980008183249874966131559343423344588822992916194732670379389203075271062010963056428277514724040683058658025793065637635591194503159178793766126575426288121260521599698306097002502842148873213065143602933492422624216726856308793684137906323039321138941091184350892790851716922431645874069172654566850789911477499967039735481627200457100904599241431396299856267482360648187366073544104523242667969327378448949032420491915106730961775608823931122404837979460881154586833497046918073257103454737267244730830112361183661524051218938895891763005842750151462128741359321616183915054274860784842669740699519079834125523304024309885551543537614383261432717147032749157738181440217886105185954707618184535457164011200970089407304206730730113916193409640164130577710286156362141335652187559280505159913816806212452302662490112862967132959408981611322041547126527898126436743653131917582048728163273883954203677287212755303168651238261689834018791134047781216866294684307665612131711745216566982882040957387856451547247841939002817954941255620602164279433435034097147066747796624852431452508430168081752711495340245151275620889915577769082469666635300332783539762812381387228752015508566854129158757340734263724720345033599952382434039234473705311705234272719374741409472740337183752600009343856396782297456789432122511073611984905557005937728318551302434442143589778042975262958050270738038105503764075480061642966847775296441808427048767365783751772156531156635730935199138799252337047364424100927892327645479943779070808504974652753378272715301768886000436107875791577567998400869858494256689126704372206688060255085819903334561461985385757593425815611754436667102038031602185368185030387452810995806122838634826187193145490338926380188315457794487306289259014647566023029066615090140325540104200563230204171368422360544169858316572954387683889305763919753730471746659069832384476172471147965251195241323180073196560985422592529778510931260142469426118129067071644290368763958615597919403783851556920540609917363658717806408321799643768701299581534753716191875851335501662949537259654381727320144246302245903464674272994109376418261291768524050669018022443524516613486129233224569533786918460527251012908777098873336170763761387405791367857316231904486716283601794029241986621813194911104039445270991948506115482236829044571615806582717655251121528233222388978367204749618680288241853700208759429633705540697355501916123593542513218552745929960800059547399079276181221079133011690361037348021397464963838135171966394685310094382791956119743262788958098972754458123329084204038973895773547390352487815276981561705393344875122181163903545505931664633813945988571182168412403494444077029844451553420692671440627522421083525067997303407360152798915142602242918231473039334946198221644071210847663262953561859605752375379156162477629337539066290342407643743985419710341134916577107351426253569404896499605356849809463316593351255410388586761113212586145327652244180631500649338226784560500016966012050237639444766843305016333978327379173234091348731804196129153568741387778553310279764861071807395113541821823316294156765911039557666628778548884654301667385145986983501141606839110922165046975641283625046973504724092092974303808138755477763244630985023956835278378165904250236151891810958890900190985760483460830529987725885719618739604710055039516170990473455890592122020888302641145740834398563312525936736949592105622275456357857860907154475701826839153611883697861107439725030621326892571922018511543281329007445412656163555887579354453641972051636830327529810038490923970608642058074196478130065796073130797817307593674258087261769474378594845472981776387627212468403078322990316886558007668972239697653651347126011183078565341075452597261822563699323489098053767480538930565383130044379449794906335191269516301027247559685325174860518482213752363693643564385046957897236561664448915468709136226632686777657373517128263189624193974855528627875449979760608977164054957862569817909282600774810760663259109561826066749186183351790355318073112684890945866949373992288636960138541131682562229307600942914046664949373525253399845218073208823429642114248877251063058566681528801597411154382982133402455741345238517273808505464532598358091257879407784075138336001284454995136118381377491945667604825967916018666072285657772461473194288760511913641909784544871606045260636258901111557158847132378046095480068153328743979457352215756214703723050093582072881042140800150724209249202787882576863445360531996094815208454097371447021913269014578684597129743133350669450868994508919633815750438354782388953782467672895613978717255563253262490233387282781796205394354514556263927905198260471845701233016544873757998130966616979449898752924986080149279265343634824761022902920440086552114685840821904541820150729703312930427297003053978560569566641078958297668178528814372963023014282470795132685532372046600778087805047606457771890325363410745188334292570805236515100800389218174671970770768938116344410194989683989096787556139086620607932753631725104499555060607698323764355174235500405457870065729615066808113011148597402260592201674588716335581774858647609765853722488516540478387317435036207844237157727744679143397991175212959993086211172061680166426974685103671880669166134619098893469440373986105988446421159918367558912122468601163639100824603151837620212875448668060529309499202766970830042997555811272005573288526979242770566966615590124527753107068187765369253106816240542922631613294357170930040381244409249477438523522487332896913460380073540229011017938205980251087443397279032440938485000246762691171974867220285018197764675291973811904348246204697969650218329710053207175922697931954847809750271620357828498506829390388585283420039019445837771399043041527334925498750748111954849934056873358400209028371844306996396064514175824953461632630762425741926873762948208682004800683470900406551703453885819276187345285293523285448363102940519036712316669956223771988153449026813538777869097824841883182486061759232592541481121774747312766576236112476708402084035469265630269451196447228015827586115951300524766408025319563413833758191411783642879275472174613706499757119036093950682351384290969749091639521358179349703210315811439128395186561384148569852132249123173692337786480705775502394022806555362543734352361494536371271031925654562840998497874464800387182881274246097224666426863890678705842781993852353989050363952489449192267893163677369283589789251713399991899982592656913767765208722658123574777123514804465096982009135621617211330727490026525854971690160979505675779151950081522555610876840297070268092433531984575636040615027356535565941331697745330469371628798162020191164688569796857233855304959351323217971423105786441349027123984122193820557663582229046639676470787499217267707657542849370082249969966614757081300095377667331764904390971095452415338877593210306567926857628965705948562750691197350258411326973699974867021914311980633353482715159134811828147464279103824010835491782150582670419371523879399824957949264520369697918969139644032892195036628643479730173374189171030221591962433470196357842822392819262145707835026545894735320247988544177250320117012677309756285898329216611620776248299067434031258068819746633356644324092408973748008480156074730076302191315188097744493496612152761653221116369310901357783195497683789065708556605680945173146909486115707049365299936180696783525920609809419418052477095229724487376275321602688349812890361070367719951092900934421261130225505257607304998729381590637183738229399485004246138421198345764398251039372263740392622253690003469151484112143511070120853961008422196628647750255318636011222444495506216693376708921209480807772269407832935034895719109090842983599903490037293378383134469748472777922008613483416962736763442633958219154034655947100509844169229868481810145118884800221943961341565324354554390494767732412423396530766098427343267033907617853365425183302075319417193252061887693236075255817805556999866462634113054048780687312707894657379983189054419330424205775733125133178323235058600927125490745710418257991794153909597030680333633374284593316058653696270112928131858193675212454270571716277563430376178884729648833684209129000720038903446496344153192630131094278159531446022266199007286143417528602453241685653458636067127114875622060346378765670363819543702941022127889216360097171479471693468423312533965898844557458965553994474997302704232003422876982510518518326989809223603547663614712903829870521899655259545307521364856654383284942325989709514849004670877231117080971671260660039602686679687984335770773866019224714301748278360645464208177772478136848435664884287710147379737124620013025589925578336129810777395169502147385955916030109181129185858412033197160932457214630553783189331979059329983807906842631225002957696235641312980206717791962593754438057760725330156831978962116291342852603885868023009535264808422231766386463175138468405139615578645176985736776676965811185024581658192368487745733352497774753189356496373889618534514214737403447429175109325553667961539584763846755825310365296237693594865235247994616391602170331152187316485379872802635259360905811509346735733687388478564545955475954724153772165840170720938375955074121573357788551075569897561944151186769386770413866158798290380848325287661565600065154968530860643008176429427126739175357190474571622050703729400260482989222851667577268748123317095169953746021645834809336441682856284545392577321348018775943618510773856659253116220653599529296620505829525684854314194211562329664080537509261805071406777417954188084342071392205856550143408634268863472682522370143780698312181345205342241930546310353501596768624233660203963447175924376027606388322852723442051550305522010251648614972206303374918754283675402105182382850758430679467744699700110909357348730579329806351069087393492687653373118164416585361063176403547183726606736223014631298178561354300763653311801869040537408464163528634254324656082579964706785945670139334353462230135934955132424951753733482715434263107631330425619488248896982130298866408926241898258804114250187363390097028611562793757262945725856525383529348605230826306334465854839660580158027973861569651515969021902167873123740198157039157303567753564882900923284099607781617020355158236582183567472506667206366889763216314938440891940614791473052082507646143626698718036760858531884338521430065707233409621638627245635478726174371700600664990063593841169634980021510760707761094080667720081119287111448627080310300801811470680993869502046280985948294735471566890748143110477552046263569918646274999483091156895929388110732912540870735299715479567895498509237274871599408557122554094744425664616572983896523356786082665291421725729962959423329767512051360237546866129619786643507841833447467991211549548805426380605618593412185214768373809254104523859013793335339335481381180520104240461767474026476808929173448132390026573872777839255574815363754772437142722208164722578505323448223582035784241396687503972208331394235317009087174594474891472055871848177531851083407807391490473636120782065663966381023542618474548956103771371561588675460339974454208838329123026111074227608128368230127808833928555869963964929458019052904638760196471034851746597109740242396135572124787029254007336024750059160622176871110529442280208358034650157420197038291946003326788606595148377192510223662581977021079022738686982121039742391411760562672801302548623562418482836848066152773268475039572332288846054260657802658439141810588563861859678104644600226206693903762700821100878833051713676574896708994864853077363801104366635646254204424723009753375936219085340561989010205037645702250492669369676329254359440871253350674350015292465785694574322625033533444788251855610146685202529025577614553269967495009516711695532491650711699010698787376286768246976751322669478997980747038982292964313285191383873005572274489877220994422351121883345367580086151751405893958109960003898276281904030366020612436998015501835699732493026414423326059124233189645939597717234931566138356393483489514480222835516552959831942413768269568534362462912361141905599677652555011077984782049382359491512935706438192892238282008692266843035151821955348073620257854998392139560579138476162911377866157525382392815100945457610365716356847827426501598251991468681177391211092427734084743022516894110419159297608143038772667463055062005677077154315849510517212529447302155969488736847264610297562888655387798155461124578543879727974186114284866692087644656715143790525137895691207257065715306879139259477985477235120549550496935691728543775952413938777000675051591037426825890143321743334260850654775101243287971057811952351884826717768125164969270061965350479790497364801172543976180755170648479776133037604936167944817845312269716496696759645559794442882667617583325051953308688144372314595221634900501114723835044337041064236935635437948945544889859880376792211812497631796400740422857261866012331353279235414890347327215542229811731140457825008030307607271245688574035165176001758651513951363697870964546050640682044289771046351278621772513134292978503574623753979214416762526279507701760456475714238289391746962875821190911338351322914684110400046103197674926869849881648837736508398038519648191364196916128112188149933242585462346191037489925221330862271370135416456600940710297305042797673073224057093867950354620708146355687894717096032516389779636582673408399320038414303114831353908745564179318315968597913569876431697462686165636628882835810681994318919853601743206164753692417754940568805239571611125789548947808687816928351415853665889796835476006447565453746135600454105059425797224253582026946499139052418600659363127242438878164452548639899351045907468208408719259599916577284232741779137154242006183675067030481157956384155776732043836717133467754149456886694024563383686910544168329235589894801012630611891499049077325079684570085418068145649107184869141787573742258083955229637733541706405638327830176589396336200983456346683099319864939894207436415848037972014208877377026179568017990509293624134081432967594888020309443127974418291897057610196096065894477448249727804458995987904789247076095709129858358440414716969595879058772222044308448535302388143600375612709086633983022238687528741810623715081010206423095566638407438660287156267337687752507484067726105771297380088308359028218933954327033900142737877023688590135336638397548855500064003323437607036746242728374234577610029636876450933048469522994483622023928089496399181994147342741850383464034205762389252525031491746543348539535885191743984170096322207213437050027360955104189260013657235236509756646424391741526388295971834756611920223593702673116025473156525174641611423647246010287857819883142416896828253819379825147318402760516149938176864548572433987983050265182251875175389071093936568619051411376657327720193755151745354922060649088209576762905010445072301586257178477563623898909356105661705581744566859956827088983737313898428025064219727019896691177044595808746974054249443442872692304054370201456043735206530218594116941738701054208887314952287003356590418433034115651065157132804853814307375708990898927937645272788256948407512421280708048932936005267086913585816254233460044331029410961841413982188826849791110241570638137443708383329038209154377671269014823006519593224961752193657793566078427054831416116353354054194218284250889868168463562234561883359061777943396039403098981087316950911199274682249071035412869494063920080989961434092977987777691989740884898663280174671885911481961466791542666589651575294834584901639341902754572622998401367413268525968269022751931996511583403165022741853784631945413529467956853946879082348174719414703054353150681867613913645548070646656129526683590742333040582329231905148151275679407036098298235579360326394283316317985293835144936349181378779353776451253020707154982010885667589972316332570463250853279803693335928785421611386292931692424025322849105660533693084197351540663540716842542257784788959854623158483492148433272163950017779687670175161470810439855113995686433701738196657466958653523031334183736080488495146770443526248942853504517117070706663669960090141645912748928880288855473564178685901478324810568139696028878316095891938485233729198213207460019000154954728435650538134426598288949048988090119368096632266490970546540155971195954238510081356439582730624950304671683501157622741547265155014159083664042793548130093211160087262414562135185154697599608679579507594025822957012590178046149402738118461133021566202214300086628094787796269688368682272024832254513595443475569847771833871706124110902013616281477595597168827045533349759800227422343343277684043823280106929476378836592243814583612247589408459754949052783746060265054031634960236743066635389391251012260115026708227496827913936526169425047123020114311086054865857189494910740194591250188950553108944336400676378034011475277641554728594164759103439473532738096362613707278019476674758544090350135642167810407967266172219323487961265348215401014931049114645770309192068513211214245381552408809805875048751810521104316586343218607737003558816722795462360531662155578803417551516152454913257877068901092324836746276570146577268186232574478510925469519028899480132019836858274655858814521232447432597741497855112981087094509612218910533907341065555299613740668019697588040843571547351697426315327196698652317312146225304867254061001948521915233525588468343236859337670230468119945900809914973952159351342380148801062621146077224946873705853989901004033444309252862406456029990435370290726697607210962110986233998158017457880172015700654632887657679639299631882416008571694511365460922806032200851381634432801735084505125218706309668112480377285779981513909812643834238161694528765789040634136134043994468807468437165031130960298560198063469248817878982014646147903005867123224404321719959600142149807918240750664646032161951836274202469890020031264177968094915707094758084360520266662835394898242868155609028909326318262294551489576977245337265885450070917514749213043581484081390629111396405852740426664872923189911967413000097594014262547341443093615676337821810634919911128636101769062779211092798110175968675905757365651540346061568734637983331004754906987079438850523577841720853103887383493125546940433435812261589412717195693303607207991026445493770826600811179523846361909076907490750827903013641397683801866129927386170677756388542331363528373575737414181640885342465707459488060987090286953900428436112241280553374470332963714449651288278630107191088809193320367126906361705344207008888871473099276182549157231697088538237499412898903155030602183987805345048890655213897816203955783698929359799599818729298788789864181282432078599631669735420231853739748059490948240921176189047744606772953308140969205749986257577153005384270695514117779310099361976817339749066708132045675727752460268675271441311073466441731985035814997340954993751015148652108871745478633589721084959236874601413976694885468664698379684522591703710451900241851512766910087459853015991952496567744440357492047356672326581597259593679530529684399492827741991012134610737511284431557379725629436040106362000238494197390975157795166226561372493588599287303333043490759638835850481390277114876950606514543634757485309902081590252296284621889289353486358161133107135371368660502328512984654788243360242343227593001002914780469701116950115805336869531544312833984731990109341211728125100642819422422429814212916893803758687400264935064439071446542157679785287219222531897376388294800108767195504129979665344469794883733699405377731300885619052619751858923265824195700844579725538990533162236007196565293311472615735128184696987168561379814556746533587898167034699739815431870979056444159578956096503747304764787157118712068861478293307634600770852324255089929542208018252057249073543340620660280447690663809036711225539186535224971787575394626156955767584183823846461628525645051179201093975466721392373839287261556471838737856961850856974353306658439098173186666424810388934325871087941825621823900017822437745870967272115647700026615385504187757600323149430145182459179246965820428314987665323290073409836951662425958917094039368534055082038985387707434973497999423769877669696160872227308432694880128411916504097349477881431713689553532658378351158020849107519748692188780543152215967391137776201262456935897793775877277118207227498281473693178720608498125901178820757045591137177589102059876814860420795063926740216387744935689512636854766804953563880781213874361484063218504431978849830661949165067115022828208739153338069307398701596780027105403668110586250340734566370525625019204157714323272326117863663734555708102214157860874065527210296808710920640918677867483124178178400623458565133653131464791961470454805060949666507604279535210730491567944223197109741667257389537491206913530885412515492333770022587512850479694634124981236607051191972269492433332980230098190962432376724989219206853306481952315895434627560605961692509639616435936314770522301568560715128816209722801091099624600378076861927348106176206607450763378336869051896897979982786788469979019505643582385415764019972785985045755941693893858132107548638910261891777682314441933560390830467343427549181983702701618624840077686446020709435088308848234686784915062749224088975973047075405502161013819332233251407667745619233817361523495694089461860982479664358073389153685653114172789665856721072904033216430876111020004929803634858751103249493910956968400904773574284230509634906977390889959792960540237059435724536990197525436941177767051318213081470101337802714945302943559117689314372104502807674500198144817642332786412937009954845164680477158106995417383707847709006372685193592640218758356280740324703097065778040438836785409620503124671250269360798166646508218993196738864477131069706188988038021576485420803537367621422383419860085532615464801990830081456566774374126097044550184476404557137780215697776824421036636665483070565498229075434377255942833383111671888475973128544746266530891188510968811849984995025150393547955256978800881969442142651403966824398046787545924628601223220356699514869834747548874973659047189511802521878916659610942156776549854210322883702086027549259580591397648823284985594232391412254075971887692788013119708743710670295458996919257731709513494508095555775793580167114471962379041616828222319672950112880702958637755346953117114282395548400218675175315894140877330631542319600387667296824234953143854248754412048570829925428066877203521445799104157546876237908282382152337042659610808076655674979394717829348656162853193225633357080489480273151913905197671021168522868915754937263337830339026864479323893014963813915205389482902542023668468227247642614274057601372416454032691007859664395515199592620839736121862371094660080767077001256320523808807139989097633799256779743628595885325226304993466389630134628219780102147786455814081920703665210109414772875387511182449582057840376022636911574897947627183063365003855609219628103055057496845368864508005681932472124198805275025377091263194683998817859614562470045152964645816842182144078088470602805007530232029484383660658373055027726543493440091950417462475111985061057459800374906592926144453581555622483176505770283412343729969982840293885712389897745917680755386317598554302042400051864127032399173471710784436967588353155450524714087581348544991250047276744428138617983337344206138817680595916848741810925397469296773911802698539237377312154433467429490868015718656546413607857060118754079020951821913649163203475980569769680368794860329727538367068357711648322403822994510289504907245585195434270993824025933636654617979042072336210475006680567225240005719442625363366762653170902838625924426019174698453847303122867471730240053625162118497954744964202796260519799658799738746374887810986388315077207640680587194510265589178117971240319789633433367671988828876795023727878352915828908082588893054343651247226573123077133766072477527251044522155935986269726841677712284619790577045168754614268776006053742373555067158463312013080289013641293139250218585203337201409328572128945851351319563652543858039945538803218906821550929618216761978108138797047142276299194296221321627552915737465066293812001247863750170911755033128174063906249611239620054171928369707045470437498453173002666101108788630791408646969029425873396004265379942227288354993718939069388751556418189896477156350438856490405152524551360767770069776576535849735839443868016009580098267858701665012708428376669911846622505727610971087077033227726628938886975568392638771188161658268733615645375578682322438807077782988190120548943072434462524495161026373134090411133108448295738227328122785330416101220322590927556517705452285451647125369129985831384959098444394040386192440223022414733983191347305142474522749845458679511321918311060156421058022628931957833743991988927679523541849889211828088101046242833991932718656102365575156674254029281998408907799318688906073698936237376084707280126661213090746144306847718246955318991561692985537907524046132437098331318237259054938399383961979535210329354857752773087773886155634109321757161572586350564788976194577155990417387775696342596272197416197524796224178829423193252473603720203309334975297667867537132519544881987404561929184969353767883304741240423223101113606423263409537059412707671261725876799592614570932011633345539667815166861469226867286306455063954275832604450539459010659778441538357488311963437681328721696947222740070227112838243107842937671965172963625160144590922755836027899850191204151884009246323785821247184696463264841835200400218266870383344541675118618025689190640184894925752848925042100375008000825576639039658843259141656627664394982847057239910103700653948076259546514494330550794099401850471253829756576404653394568502836113663421162698913096546118584859429834078568293235077377104187703379623683869652425125752065896661855933739062087577335883220686409402802956711681316778463515314693845266505026276845841426169698893990139199242452057223360317394612338612438224010315608858026099157412047463505402597626022579607006271327905348686776202127634238068743793425968390162074274102695446512202959451276831158285025033456577963545531164246834510629418180181048545244910041977237376220857811813098581747611140288411112680468639937011159054012153530695115072120896532743191349539383355398229696292543853086699145784693007201390307481134384121947288066114008283585931500785774294511987856319528247654170609764630263914269278651867087160608168839501044062203060276771063672360844939543403691714572668426069201371290858401531615930384731763050636893984271696876337290530030218919943809175492752299611805623853223054204947123975441804093676279910624248909257809644428169063248583779545301391375619877811608427698114770374028141870640495518923525940587841026107052894245457010008529103141889726845759200562219477361803517951624093029786168608814122424976502262827542811338831348384520270268331696414133830700419229450960055253121385688523498190679039935059579939442585279085793992828232587620523462894676448338117083731156743373630687603092769411655336497355852859388742295979255713288938144785643473665142205648786620551905946627190653311125531333338796715726393084448173750291462596680902734536559130737315536102591330141862588287723496181643051047907578027651722926394692442476925734574196021172081339076218117528831920566006821266765841700738079543845467305533419211737853360079064092514315723986329637841210171072480508354752511620191107850887695587229309017892584244484518665077721413634947600109175953095313099858091303229304297198948377715300773411741323358144557848969866071181868339812921073114291515576337861543773034279408174080692293925866944719178586149219256047717581261208488465719585110430804872154504974616897101819039813039307920560716726848376610991843253542657455799507250746413170116365027491618217683901633584168973250510096876832298768021466806904807769901514676279570787903447293439724338443758653352873961710321647435177447283140870434727661339952749488601804645690405005923698657140261641762921671322521858861575332228362890044084888578816522943390165177143645043186418442992124874986739697552079314590874409495123091893617677769022446681012232506534172335493315683117386475048302934626046467783205297854269293185039444746535564500867924840327618622931173247561415444710427640673349624112556467770887325182411880601250563489604354157022535899523287821815775313758188883431586509759322397030845745961414646339085569214425793569732177958273304935630834579815286298582202908543420453810991923938845836036152878674069067560948657217293885295818644380212431353450385796739860988638849540540779593787693748806422945246972942061644882185073441707838883581464709647169079307549501713248293989506420459088608864916144069751152066331355533406801797630329801398136699503893721629357560297715716460235112591774282750381331969554035660692868419650189258896344095067897856973245537255496800120432942775280685444973484848744260365898838719896497681842071242253977406481769810926720336366831502397424723828883976727410128559846633913073566108398887971983297036065386358610511211001127426101920986841019907211916036724048554549187504559572411384907856930621668694532564338011668527790882922695465262810364426079496525255082975632312218360100706472502851382169843519411282379157959392776359386196268258763206650251852649740332347763897632413595291102808444610475847937508384184213863316466872486105597869714355091482802428632652803720135265572158245521901227057172469633821348776984927979463426737895968052636848697925949944757268446130915389371245094168333427564772246996283962870169258633905653193048098247359184003495420331441526468880099976505000293706705261227414942021065079533100878004275919588058708807219242306953311025013624018565415937929432404466393465397998173861794800174647190455490073717388682909602949666827321570948961181425102434557755309548538172968386106708676924766698201904559788548194590889759240176605774333779689808985183274593273215661150506157730294044647639230859883631608998767464966869473583476074877423809506953925397498074507062165772989879170180802729155881371477368255455519031962665986354221083638603827988034283771967054199414701036762350451846931038561866580253598287414177131714690526193956593284931595627159396541824759254536582530218908193354936735552344056895099309604915159830065047380159206692926689924584019192383825714297246695612569833023480227165935369208781719323120692882635772858671039274179129640158724445478361536734124877516617780441380679120426728950959795702036567795232159090097474639406536317053377244704097040217239871413498296467214622275163271844189896530009342207462484024245709139460259796011899401460857733219853862973131312475006292399838775126257437165607940517582986634328798732576354612655656740488394015609256621166336202028545219190475397370195424973351249499924620981266519113136635084069385684682798521196880769989153531760384882595739519577856086890610256547072704020265657395401483413686427205013250760271989916709062739021532166303194716947588328714643084822427980031960155280474054866245981048367470063073676787341019793866976687310196498375862807993320016574941572822666229506138253675236164136252212072189082047581513833948485471234338508512311306852724637809172239598802192713251910629265489066984256663610385266529408590827369046881330518134188569616969133248043333098292854442104947021368544635666232063043082396555683279149926452884223140318747409748562922299283210042649046711361482626163229485174788831437704478531805790201761681598336795826451380541108069584797131569056575657214450810810274451884487019704439433809522466959629504421900931290889954221749780052663156550432082354286794796773106094459879524775891419539364248656115125597288579841399855199859502948711124459125781445147614108735612855415303784365338569605736576075752274741425033690026289499539986199558455392912929774426581893467441855579712608560329200331706477589568729326134077560420421058233171756419778986451623892340252706868426096505191019066518885889255199002076657847905417354880349130706364461801724770953173802164633906597720726015343729668385284446327438899233709272417639006887302967304453524006445809763589328688629632041198330849416579851011523902087536435805593099280021043132444119245805459644027815153425153239972664272380072420906928022212828953730705969915273875906198099916814509630574448187796397280319786753522460503654545921434915345138833340177151559548784676140444366645287536794762660704635835277846390445747934521660651889693300779009064405207018423066914128272011393208638191019194687178561692052933169122459090241126809294943098102759005845420401408330793762338169594051340611874925176525263825521980634586648472381730327657529460986758936672115810988102413730153066978780408714710168402515343363070448820410700777521010933049514708959988989328065615041708988987091591667723490596959866534610582507284590487787579227478785769241109628872077826126086735944815877324367863661265437238819596458712315584809955817575561877756588712290533554399689106154662833520777922568181010006621730937598840624798430332769843616806930255316439063770788837008751917214400466338098117825199296730730987850929071948612058241638358814521892196791513805974907478507961529671183342861988829073548455975311375554045557140012190455684507099031708892483862324581436470216948883188041293399886698007731319798181827147997933154081298871965484662500954697868004210450918657315728442942881037253523906104965819921956635923475668918504332930109660187399864501778985552640366627549439400095172910005398990612203838587094600846937768312869942494947564548958142950473657281516916126794312465099370149952804576681604873821785074737819456329951226943237008790204709861663619501573687355344424926108380176215659038192964940506128344836567654578675979858096202380086143861751865551284199708201070821408372121450161831125637717563974429613826164199636633405334249535623930553441912139677437002444139940653538769069052891432843143293953421864944558888187504868404980280677656098570258603874908916505687284302992416503498423664729453116951401960039171650459807069610796199818388672093798617862275071094905467823049974595524078129561988179048162836655327775344895525440429918919483974847181173331220686846548072849520439199546191026601112693564393714282804456673771848244134619717576380729019790248709022114262855751804430733744966597255225166590504575831053032287924386199674519053566526884829245900100171653487088404726662114204161957663775954579196830258219825949560161383487904017506272064724449044964278653975976325817575572519155264505630975842180095124116354945740429573673093305245629210259287196431306584976344653895571028187398811244226075468244198664218771326393831162081154910452172112925235799533426294576572623037941676676510380973528254080229961127785588569491884674119088401330618489052206484649813470561766594264367620205646616613807137712916919772187665112326861180472950466579870327610889365716604815312489429916675557158608275779570344886906960446073970863968210094804382499410182600038118338283957429831380301386138286787474806243047933111352709186361001339975803917978461884394852817015294465940127223998565948705323999952998952678234073263444737742038697641078271287901598785248864123760575331857111839885321289548109813287590390341133261745869263370628375070314227766534635126879528801790077788489788912160335952569985120888996145080085472885286777821180054943854070566662272253266802042301844744140419638426507263936545697663973087967877122876964795070998694353495702869574391119269322558411577253797793613532495895159633171533044968656466892739153038516731735741852322291533216967341160782664838060391205252620677371191895245100621376943671903923116284832231900929573884136075932066249642249759156527262409900460734430856271097969862678978550337687078051730073768595902356431317816356429015884541980056349757214618537688713271808943150306347327467017426340659555434224855975742799317060406230500551019539899161435906628244634032777339161460021166623342777253369649461933240513211218221229468558894618706529987714497754623316878357430618439449147460314500469795029387212066040369447152431008252896364074920705974366072929831951199502792453241706276992997341725050848832447243508981789549534268604532835501039139252503337688658861329021735461855902382395245390810422503442654111821827719105478379544720832710855635120051075070000892036837323960689050560189888193764519142040058690340512595077776110953705752825576394785370814297924425594952597497148420515263953928913663775865533175023855526055147422811468336615537227653635061134770267416906754039832291284351572921280721517528907071191465602241426208784540613598285432626175247278318172003186518599840186323059917805161712147208010173134871026000997341306975200220314474352010876691360837885266665146598332636332529789078973314864014911535706653180003873913750682113244478277507765355183556808129545008422340332770820253752237961534999326590293279953435688492056123793527775255500653481194561529892057686082138303625682108602601849330087217106988662315409574099315220450494848846984427369817832357980983134924764806087001628136803444987462629965305544435035947453562408951287218135916734491239237472379656711286056387611503928792593098687033030930393945089334855930711000317300609572929966884299196313092617984021578313599719118188545510770625005989889614034019449199323330523789043062092215721870755798488406245163005002301637285568322623457125819885843078310048078036094405304908180194344419883361409778310146398804560409299382189428633835464208401858995546091019958367386556908011250130320717201482812909675308730287978738978011878328440823943849342261126213755114541354496850829623185133874979869555759015847154714444065684109168800039895355527695990658873179100374257043202326249327595129129646285500021712943951831139214654230430073596249387706353548172966362161220361231694820451460203596391117862013491981597201462290848129307537475410598353563855228884771341319038312067699419995044499073632260975347551904590906545017985628391041696269455722217288786858109272854791735698778621969597785781560795173564722465431137419558058548076448298992022724364714318033531196543545688818274969299714665106949761726286469537323005118190104272476477480316595147263681268153174146600311162100366056480329706109807564274896981888069018682426346643774232811108229934523495748853377192565625235164696505172004528389846921160447939337988497182263111611802341012766368737209147520069186219391407323702828125929077844359781083662782408430911439101432817383474294584548211640977763282132600663109885325359717829829610409578743409851177256087412331057294452691965801496220547069546745431632317745541790976003464119942415277070137098627571113668911100002002348950402954578796450597589813438534726148406254227127912014538443991498905666778555171467091440037897392429692792294652866599991651931129390106433298073889979742740036158025915944277774921326057628403898591455996970430562089762475493221594283953439888772497718223099742579829500540563787197690399803251786956017741479538616909529103017972182003213901139791980537153240314335207665752693785507926277325722078425792799751802322232183652846876805561243601429413363631938921510042794242224267695534701041285583645868474365734047734363315822044775704316333329298306806429818284782839676488453307080314278932329799673367912659022110160859516753893843788144591300325023381764976364147507060615942377003034429848782779809124317853832357768824523099218928710687850264514739644082553664140741712577124948090759461748630033969290374890861255450453257310485034591659524255066025026075233744250561760657344418292491125480757019401709211921971816278880934034997243555772947460816834044130332151422321068934030352281154186326393502459408904629757913791910516061638155137813853127252750258283061505522060575632311395926706033629478173224668135518032374304960137476518415210757209783229516677448493514394889945270477788385294002661816009668092598472261963397068637308849404363652261200329446888966649554715271610332051756730858217019421996002891791730422335450774525961550909334726380156445965925337626858705284707211404887529380812507686892396714787470960249095391469326110776063710561717228559130023467168516831182488161477299828700175804164957584538989646626657872587166054033439321111073984452743205246588706134816204596554500112142348536585931014996525482042933119590651553939365259869361256318815805651521629878820806218419560296101612863922499992183224727260925380842598531506829152698841842898630109529914563189522236167058576480645705638266564808618681128150194278055216761585653261696199410694634213172005619396125137869562448484774902328136634928405216287816904284454447222640745173613767932689817795723352422995218615333900360771760115613419025895918733631736882799385412218910480462744848605061247172542280057716256513606048797436282161935480567613326326675480550669922373100292738094137333625518312589175507417011725768148010141081136585482868508548896290443476704123613793589026026553330260170413131566566053278845486913580957375050288376075230864584670014455616338706656008532744537873254887925408241729120951469070510423855383218531102321504473347780965806436809639838789850584594219396700205068394707860434558478401503075596896342386949584160334373993905761170173698676474289556820433783660749050817069625923642497719236604150781539514487319944807670696478912906117163428054029203760896836083205121420371252616903226248909345389344501790844404212182089028873506523334917020361340284590985415324891990937742301839929930883653690192018338891859619945250332850228285030640512185872507097283805144291528158544976980654601383483711673660518568689720028133780538667035053062936051551377371755356075158499160177924188429533413757396868773994934585736895787201651449201425188028028052645324878756934015924474359267566181078765293977612803122590398180069801030043466285626074111316658819337956223558223354004768612622831809380019644344056720720188600621883164797004503005040532516273349374541216092646660335589658397208002340139232960814276485966071893047676142388299680744300364095269284849080069217615058408756856323612244343218127076394547218815708175947635811090994141645928080749992448482807564918192983227569597168585525249079434136022225171508678657697137122363666435047580291859251983707208495021942510068026002872741359864593184511254002224203219648758196296402158143336762286428322991753226032467204681148960340603874380486240244850864169207622470631412172807738778293464003716097003265276706630915763425163658535131482972760244826290928618063221216316710586215703017087146411963754003418458609043235947825074952266916581485503397100735443011732984726960247922512243267421453459723722223830863982949670596630636904572015445132272084774873906819324237293012846910598484201806757967656705015991815840572690562794131450103678318145011954100271137851247763853165706825519836890921788408844538069822966420985033191632127195041051024758868674271023479848111977559242923248258750187661454417194448874028823350911798435808802048710284997770712369165214537760508073361603796235694909618476825085417958954279035196669849285309627308849987016044445702328935736173796490950422363008509522403173711737882230909146341776562969720046313148444455449429334576328395398132315681527530588073223269692924679639706905099822470414223840619357496609379655187788288328974424481479051081310798854070195707036828311655363678857802140480220356661912441056778757002387923707678832647701768563841261247726850538323483447758467527956148865919693207450697700922288692835389937275390180184376064011957751144294856142526522920792441235649868289738590664499628388761745858218183801022611020966731500289414364821416247948620209834913829819309960053505124945428570588885246372412720157788139779348393586984503714880528722281713393880833740489349791543638189663186746084026113309704572338465222383929478517945005703853959083919945911004014177758228373633195845254730336211050229287340316142574864375095525903833989264556406911297850740369128519239497348935423641432523254632959733065523897219977712103977410891365869190312850156522787523653861898169177462601418642356997277121653836293279997568190066917059569810031413176820780491792777667997120255339940277416909328593871593481680644889991503537148560853949739068137850194815477380561309359322406394010082831850484805989187324594555260694547052724210290095859588488377592558930243546170293779382721804533604480941133264500378445166879396583211406112335471651171863055172244465379718291024538149769192062270824901740122810967028162054821011955602833314959884402620348777456542053217509548601963050816320082788841669791487736804798136088684230907608080439685360423329482459589397382532608734261156724053760560312279472067382485078120175582902532568833145371107984427079380806309300566454254350410000437367126024334341977477739534387550339507483808933395424714111636130129411887120966720036003341489048104289682210661001221000024390430162984496946531121064682111685109566728665082553916067698314027791278354736183796695550723084221434721433473018862431937350719616403714028699915413895451023328435829833928009900799152816578396064247729395568635819621350924084408866511207877690295334963536391818232657947461381356676799014889813867519151641218139378168928611596168089498155354867794304989244027851783057629791633092448603991680469136511725123565520852382546742485939175811689493280621809240393337452367115619033488006510297546772614982250757298866281187453783714491092236684938568997388288549248697840524280120316693289666949357785063665770887978534337924350296776836713841217830111945070504230178523203431787483600516766129957157036124464855773508281738098698972363261018181134342478590360918362587520192756723401716070933373479575135504433686051288859878448343099628380977913633110809311875882642715829761810825151446618883777529231276704033723832955034095858504866468463785943789355367802482493026781513000227115154282093218357039687036355886629037821690353072984520800268468944723950913683113518139339295138311966704549367762279299818800094426782113624914873647343746851292635067981918082107887287866474728657490992266839191862417634040325559730727670620854547255986189793343629787548948391350611535819969409896144392835604254567693853237314605676260114712254567407802012738282151606230393229523714205347937226105253276833388619681198637273468152605699631234592331404507365182834507473474846130434238924117607570525234107428093655263040011086289385315418966100354636746675543624861788447858549068529727458489309336176815330533626637873745209394171542475608546533523489748449151782039800839532825166991025940762292730645079155926581734137904086592880630581628031182973480588974950773042043856082649194005659534314704549008528689451483694440514952771936427354039850991777362774471594442821333844389636531245790655095242984357017552637599102711437399018536953386541704779849286574820568764035572015790270161268833117181029440220187100489503131026926708184545009865615272743479356445335707529351295224948001019585923516192647136011439230022535196154454873752089828946359958536037769213847208820766837626762321346752117466836195385565808712413275092796112607752167709582234743115154466973207018531176748763123671562334202465777092012116423003290903899441022078043522447053976244776673480117632021198544504772856734073915281849540562007753765211073632775309787164496214334994548066018730979864612547726816386775352863224680995821936800946993095747848289237538832183376926757575129311627340494956163896150433192079281084761281028342239445326500709317526408434577990573855313335270292232360892398107571846109331209131266551328968812045903769032274961074911208706836286810546161010642933333125849951081699470487870305190500667893967598910796709820538422217887543614450888214860483456278812794952010713209973629667547537775498017846725274569778838151643257694753750288790876503348258509502783902119271941181879388577675342900758772023999983591102157250729605550139661190265857882068998134918675754525659396981424552089975576601418186326560201826886435893566441696076301913123263793469607535946238199997240904170265633679752597830264884110096505635744400410459302122236567558910302373521751861549930725736198230515284719989416463820490650500167758702160860233904028834060857675266820325328390440912621363606392455970589989573467837325987787011634279022026946240034256853426252627653675800965679885008682281470837679916838703379262666312903000716482714294800229612115733644584933157995534517966677890794825575294641917101709101455081224617658780407431803243491764562911401359044126981719533343601934359265867517110712676326597191601004850882635759389626492048293019218544697440260883683742139857378119695464585884385196104777624849677994242073217380627815383461731397810537512770906654958885854515677212469476967617251638199769316572999708227158280985203775522186110796838713267665716371413735638254315058214804824705099169290045851374836909834159791112814686532960340478671105565424172685687695310777618856101325544201737295223892864246330577305199520304426527048723615106548352266341324075385445837953116997301202824640911376461605966571785913939160346160075637847283258496731886707567594857868282961798243815694389734983291897383996282622856150096807762699206286035088351275457678484947704931599171612994871901262269808932452854307788993155052023152166301056232077977344662160745555339011304852445619970056043162912222765849235294374426418508705309160340084275409376152066665808736091041253353555221901528061566086528338712132830741439460980146918508460465009909597313945735353105138253402329268343289519128123173745498805794606147308714731497483986972275330584441960170126471536003639976211035401427224898104964247682313562193260896578586454546277415674508243223409290593540344439460462477367152852814610893360345575076639346991110986311163984574280747197545266027436808162591339704051051146158351366128122466480803758152991635746929740347774587751865073068071750678618094190485600903982119021269365338648997815310211067528940735180735735645044383164906786604941742196840727737518582167215075042230666503228095784442135844272646128197166521101498901752717996969243970186187099648947955249517740251082509394331057274372643338200105582707937376514978285421578464238918949163455888295700854114620177835664141557379694872068095030286094895136392949292781947172335464335720202868354464388252223578857230613521265007068504345574980646875449736500957286462994404202610492249009023552843904980569278660276824131549784536142441755121665426978146887513282163983824407288556929204831954134757660092208021078207416206978405046402295407429443435756173349561148676542104508156898206831743043687687117457753271392593307133243831939670981093205581353022529183460732865180036662453530481061950733638377765091498307198795222292732967038458008975353382513306760854083149678608700540433002245631581334884977160291777092275016134664288488410778624941801948780898355306617440478847937366719333333449993216466299815047568412886885814957953744661011412706099532548536059592997748685655247371505477968457349472200007959056446749625505163514925703239095988482142714605603478362918194258026282243978294824218396679722050677748973991672135168884745431304421850388988042520877167328581796911303073474177606064695034578831808380434587730921610309188383219242974958364180883246035172934703045299930654569065926656918651280522896337459117750636479165270659072634071307700001644200552097595182454612890836713317862023216343488865703987705753299893995926392007156489075273836285677144946966006408082523735779589617412949372323523488415131912180208187924043336841600410335125244259588738961042229778358728229216842567578326207804365646972632726497191357683805540525847631012083744185150013955443195244770224863342187179850994114554144610937293864344488029502731001527235573815229109756463834829494361304528001724236179708013251080730864742888578089106741003092338758189406606538871328669334283843774426324423448052044333825627071166396509264100781942994652777106774113463207394905475448529200809472585486472168485568025064382412558954788844690443527307923569129690685952157899948758490774173966590111758680578621663872623821743377901529431139044648249099379504100583297982757402697859561685283469629109879415067661290248833212437866428964784793963641787560584362640443103043423387099764910755603302095509805237608552741219429736657712266098195836017814600607162408887892209778937348975524687370549346772525211942616302243176568482329664123354686160365983414911941330088705667287955783419277115910635918040474515769193426594516301819313781079623459165412653937249012077982360549773330213503901477521277955036961604754520588022431493708400234816558164261045285309715846551101186551570576245092580888456628044428553009882951026874231622405164300203657265496477630961644126111240091430432511337783880261006428504994761550070327075867734826016380157462630514834900277099470422237610953293150126038233197164787600183169731106796755918554571197736209614866640658367893798996064684427745363624680129950267801576607229485947023847809583616265428857962571932612561608015412835999850628914370079265763606135482268981819698615988247434195719402889400580298912517341533865686937408407738245522304994872995891315545176941566518466418064048273450553963004984196400180182996882881674474899877753176003010973577825332511535422066712724250117491530560300623023475299774665474689874510965052222772095116516816708404144518963300987572728005207958680849932322617208454248573494108066749517831227836351077512304867763021692378159377353577855129176387090045958260901495340503894429935776402462436585522776226788640881441500883123353014578482945185862010526743894681110118950302948075101015920630116481108138390738905336261796153650694553567080881111046410746799496230081169363614050864814112888997832909684103964396945636835743295986023181402814053944268114361579685223324316680359634584088299190587514022595997577568493198620821004275432797007413381025665858251907440244117384412899270186228979350563641242812565313061399245231622673520447876048972221951615503506651780805679270641859847502285926092242144064790750748781346898851773265644436653816385420059595839328617306321135680822048863749035644195848041906118035774745818732958528793834513288619871951653304642344320087773251107663943242895634338138415870487406980407534921938967032384059190335114445369810967244248150484920723444128870452958033655744786490179557998275716092433942287455139854794583173505473585269081784710720095179339821944726667114788780208547992264549667241833555484646798500156163501979406949588727071528010880237050750655207005867050007478159789751854672636132010436431046555282665802630556647937927785646697356138729829219309282913933050268884387302066190071076275158925409487608389724969542292427721191137661739705316227623355310060001154208367378492793796385114001931145429710208116989453893216536387768119016066493331714290665112765778313666140341103644513467763977499925337087061442103506188565321557594242704217791358289531275779471154021982857788329238520134460385400053521308177243811630073335243137229740361768293220830782059194256925564190672134941294670752638222567291585998366397390060952227489628076364581603032835863747211288442353145948721735747805852381380594130851683211589056553851427065414635739037919284207555424748803775141082050088922033181685328271796645878146806870892611245850806426305781684519630483265467473298112044161667148763587872277773847276315855416701529171035178974959929885993794770712591936341647102061549105401284450424028512418215376027403246982737842194045209791974846359364462179682018452218490470854291674469949504874042356057796430917419162839654412743143819598372233891751541521450807384235138909369364598538131137249139249790284993882807969494755930490021179972602086416149541415957838273139722300786245416225276184102791575833954663452915958438049650809090126762632831166832687006720899001788721575325591875182183565048484414582973638664542744354268966882926338029313031264220923556792288940045425092775194038442743798435397790761962324745588995092841528473075821617151966849063599149818608450786950556485600583282986764131367669666647332521872039725467867304174991678285897098698914041702778596322582485647955837501783684609782788448087779103960039309141903618318160175330075122838735567901823495503230901481658196801467563022497737910268582956735302212140099201137573764864279196053507506490673147272317446119054124402094327585042051141664848810914038789429587810176763311418042109674181270574543341869888457374747830556693556354056155906096976705976881671596750014190964086098397480825670173620586352121718599190781789263028453482736871801042096965543595335942374651895994956226352527965250402506100358051828472195743702494506596557741287805950765758868456860805198978611660901006307083538755059750651147762907958504275892957490927552615129104742915237619814313370139526403938713160697912834030303428852725151013340767960589944417474099032979377078208821891565636514325655215608356252301754103469035545265787519446126194212948193940210876327851348182115434407224698844976731048262840959482068608217496978206576022425997264554753445882410627480594529537980536152986255623131176397810864309331406028340391076950253057522988028720940188585858029635775390995812069350037540804359876672173240964603489267249889076289243103977244366914321318674794170554188637082957234078365679582512511290425060901005062912211773927071409560383965037833060103097301781688623668812659097768262912326203656794404969816640294246954949032577965455032307767567873265609227977304033507890180448814294821556986010893750683086960901020649422312698212087795081165080678489695714558054355629348085014347529521381585396781194136294569852895177372771886886804208027470458549460075429170259715248484133088523783101703628883370019423893548459168350825640750699994802654319309382629876437947139953464815569032735256066056882138083204313336998673670288589745205949134280931116692907037842285983058769755913619729305070548050106143874050518079102210335692503187987770633093656452318998018998190405846578924617948236821608828707514899405543262063948045646953719565763156257613982918866871350646555309581494952143011459681400293321109018391107342540057443219681336737300407280120377372747422689658224348553011264882254163872969997749379570326623415730758589929055268594970766032020330339463333248627488248406969174684671413398686982791929990989978349786913170123890768593125131551386017934074168888937122830902064332820589769886702318454711642557054774083747286817049912782220464144259474717522819434576661476691996357880892179050226903296565434243247875066775683445757327798259739226668754070275452222700502464379928543069936169611183284337142685066815953172005328927492987020846207132153509650114526573758213923364759549962255586360512811034386118100115219757025427511088521151040321935215052278332450871885892964735875494203274769630057297833570972695739067918655713458876110065758174371795953521673068105413492650095561666394753060998052588407571985258549197864561466179942053015711182321700477880917034483802567571696522701754346803214826161613370916522681985343474838445594643102938790818682544460274340132396595711669009191525195708073000445500754980376906163325609803348474120654140305258597381042150644791559261351783311297919268485100956376493443404943332990106072851907152859874417093977956274895093155753800182045678041266595787045483038603414354998129948941500597837466971322254259393680639468094120037074533110906127130967292367083739099767843368581518872377547511754252660572279753318035794191654013730484736348642623348948235684346569761712708434255416402605360871725325137174028559221871927710185367213563921371047427703815486402948270121303313109605856372225866388721189801783483882051588717842012169351122677482276108634948007710132627035467059140276757501372873307396321836006849320159423774057065671579593048466298846279118579251065563305704241571421201468891113913274477167621010284410024057460168048940775809832712958053591975525064705983512558398040083717476023588290051389619555644627199296003435723069526851649576131855500005716063120367981907964748154791414864298573982787290637514145648327616130160199314689194378555552770061988278594433156153857483901396414616424747483355459341618481284309097196533584748887512179446975437839618840904907921381160463982281001553153398203926554057852120515143614039051037462373508146654327941939217052635073827025147693588932227838283364138932790743599669858138872291700686049169824205120660221257084587695383495102375782570236639169813850187604133965975241580998352037010320213651107658828514469741926706385708302150424803950939018356521457926178013951916151150866594241094003421506754758113758597113450808946732701956641942911010713854946570899570226476390637324784926174875628242657885491496914331302793575981086466306560372613036782958230485331170114887457154946390325758982189161721130279598536628404056428197306337933448554084394835370928354204582072028072671842087727374799512599544247955613649247520225656156057672412387128593956027835730147593182726531101624050489440609702914769451764878554509750083934820892701089723481103857360146231773442951473992152246209483522107949957302530475910998542017809625211796982857859774271451138847682138157595319334396296410993450757648091324909439667344720682460290153490605311408393250736302439999627015949780743258785655537847312674122327288236622676871982206958368225435822514140891860180602299519734918305630779095020396292358963698358830374211145377753864429736887980550780242661219369684081678581682202794921387953139318834725765581835281186350942054251567256080459127366535169655487786761159283348388316646262861489122414166636191021103340409898220819505135390551269579529432967028172900262381097010450450562813038699851100868602254933160053973751706709672389802809870039295803854151622283713002476187594366795870615731665356913712847658674958995763169480554761805564028526272756585875108157680697132065232898927013309746409864072968938298067800397701742357704735919959599044036588608293476312701971469431017984991831558949147262261301118042788383219470237386296909398145354491995417891126264750538669472158104569690347848076572692426913367488732687267992718816485574490834023444711452254339516421919922996606553320862548155584904106795621162951729399281119874383081373402747577255700390405825875263600635960148442784006889356387085865511240133813330760859838366171422599780677199633285681948090525991382827038478395086033431316927731307700404107421391814131905858194048189786459972568610194124990490892570222900353050728730941263938379483860352121257604293981963735362666007844076941888946993125255645586972511672458264356932373758160957899228292644287250173700101764589845218979711871844567297705209858160926915567831103755093691893174521636376780552008279957433066904657206463882923124662055267415462674897942767744706660073717498692857685913241465455002389028091854160009309037485390783500167449839404025471685223336007229059830338652237933138186196566924139248221376483370218652799459719738503051576047022584093387919941198192435965584312416760537931083244408261738391250998982319915442684365003126097061658896202714108495623390422099846110971967645068444259249608769701975479168989911448443691216997839088267333126270186705510418788593194183309395419564678820323687437253651622248766379413161759271141919968279875555216269549067388402840841400050945439798171815038747197126399926892411769970615600920103781566129567538063432342371794583832465035355430332726293238168569459187127056279087310027446126474242586661777548112550710941617661697050392227610387300419108081025604420524915465564427931959931764911054978156137936343165001132363771212520714329874090086394293922454713928786870553275343510190426680393361325354661802473818521962157996750648012384158632691308408545150555496609787605161205117580992136390919476374450720901031742102212990824823874701482284241461436623346513986667308561645623731148828442509914840745923834687338620882678503443821692973759874368056957234709860342161142467190342959471950757144463088289374997218388642480301178842835138325929633742580068342186292399483878981619702250436720718195808922098384653971958476969289013741248362846994730848628604915548294352163870903666871906236687323375385992657492268038162807523702302030091485592034197060993797968939487153583741262786973894042048553127334668877879039937758145526225177754886900566059743501952178452153255996901594758703052659134620046056912558710342635057867532186831469654745109899756649981485928043094053937137289176869663494747326624783270757056720119261158401456844305938180594644959261539771412343247579614539161188740162584850847817827740227078371062331088901229148886625985182965005174574124058556973641469916777467145581609897804828490776420741546504953355643305891041727773440425571446562905250343513459942846116373321331762824044460151879772201921031290804087769672195630836840622935102686966275131281505654438742205581825498204915323741055202721056977284612413273724349116474242448829662081627881658295486737527688649862315474854603265346879050746539430190763507483384778603095204572167469450805167719019168734159503420123140867134526447368146941101457944511565851646263891494082790676345040475888543164209774210761167866058689695705229430133149454315255968756837982209343431723856959126487755246850505133042102067450819392469802941159800686465430270432776685258731951092108749212068698300617465767437999011076652260861728493254349815045609278456273344925323465574198899228452147363806763573222654262185118511502187019685112133391677820485739201162277565319847395685921636525166513410762340359123411928600153755346798687290959756792486357153589460371061520059010004169426418512649941457895607841203101338548473441443222173598918036254912999522595668422162610070729495015310020995199865377966340332559340377727865012023315944360980604723065096644142180994446917563959781125612327017960127711545859322411499195967605733084598239266364885606229634088597883457228697167361369997232732482148022401024276479446607170111714982945301276553194462562619438220922508273734040383523831621197873462641612275593807374839378656611187741424261132606776543448116061092984638453953107563356293753768692554165530430164245080379774243790553924515421739852524721102948407502371813534623141606173606280799613303135996456831192708217010159869359721617165013404820103980466169462254934680930921253548568494481501859876269577077193196065302792028068556382656328921593291552384411121173976058943209089766839215469794931729850832864311879992334239024283444815664634867958371677709890774484065947586510718753578206149330403216880045561564812241538559008221303735665359029858047196042513800886604803547580857411668557769610771991144292278115019630840524295008406490676404929158970542527877746984076981294638645247000555191503518813443570897248168189425291930782905432844622522514988703273543988107443320599088777473639747306570165005062978046545423550608953422400410089181495265492304144804711112767693774684496549247058886184694371912099367718702803248071387290654793986901042279252138199349711935147278456432522487692189535622643404858618652730327016628730935088766699114516998361940991984463447016214303012051304368191943880501821038494799373317067209527520446094711232269371345008063438466203403095222313308356053023917381674818057994464399104628836378202847712551591854569066087752661478615138152776505578156638176924165438801659461164481089170237725170100801239318456674605176003021396620257508652462451700965936679944533284597824363541563262822802099435806028107584427255163792098491480389466818331293907236221844058050554749440485116770091942495509737925520939451776733407342997295148460997499526691363945236030229467326718878956078209025648062813747570335678977632901075679752833316475587179228660099579889248134485007783960604887204216975950987044365449901308927250840223381428836662744751362950904427131416585243607596600941975721409944505406165063488417024756532626796264737561103465388516417090671591802583697687094600698131231410501036883496964811972929319221215554562897373698329597465990470361785083006612938670814142538553428562830993455970409321685011969523617520549345687853910204216356815421925684525826881584882479784733234915810374166926709392586661655314155242222142766299304859985464040505820150391033789249458002817077382427166259020305902573673784405443299991069973376797703388038234630678780572242283947389209854575462778822226302019321874734530749591749150779698291297272330792926960717101696118190390561862378747513480023433268435104699051773164662872192985848614989997598763670582032891072703650133154447330643456639352878288342515003497842637540978608504953677914154993556628874551652335711559724839417956285781200164309639543812693734885231386937215705284669056024857770951664822178933501942830451667869146513737795167418251260847172423170006482995811282430533955228692574669983242817508706436189616120807073517839309710097707028927345077328897771892780343180530537346884777864629290645753423991920081041623778825689207627511871446132833500184298557585897831551664573906617690259917056012018849781440684345209228714933558328050545210213704424538185742642913258187083356785186726667863907183896661934212418580017575891102722785065207142354766987105152723897113421502343474000536721640555661294923544987387063263987751993334860125158231785508487153769925044577746767864136543548880216615594891751232181459353543647569064509818201920331830008427527459784763829078746673805212301617322335479779556579077381310085231943162758743098807421602482279793643936065829728266605126896190278645386847504052739874960917501013869226123494077239900004744072848522746036786408311316737761098848931956079678944816984683124080325105726172613704005111955923915738763302123076457662227749724573690807991555712281652514667757039912938416213946531017554513027953436430251899142242517885438018603061996830195389360033716430496575898581224329846095304764404511109937954894610909751607797656161616575319948843552194331220565069118078543703941660128512452931782967704429833696366632519609747411308882051181109806537186185504001011465187063612817185025849148045306882767738224493892674599916474887789917135946743051258843114463608230980293671361846813297974842301760799387907485367449141854839868068379695719420019302701358274503875513089110661413100534366623072672625024481047749315586140213835943945784997553876566991901497751372852233303312779544399025858081701184229044612267106258731855142254265665461750181130910856339443233714780598553970221232312118404973370467519379162056256905281751200288559033867794968573238976851788553094170755576483715740002288317514618430806509070755678573950297806512059616303266147382929424378222995750783960341779344424716637391195960098768196056468551102914882641777273895230362978125168050679794606023925354620367640427195929522648408440959536110908772687328255119273624394184679853028883589998001698407117167084383695758285700220858006075028801509600906392253164670161522195830382852858323010108707823497076382551179443520587544005670918578082877957208024354797918053178320243381529595302839881594336575736166987262685600832031746530775514357633347035343661920206163264159331339906684176009236716395042124495052634296097060357135865490405988850541499759056930359650471633886403685515205404887208846614578569580403219871637069938514418510251045923892611798920325760533929988754910888312666135002562565467481037919657924241440108683616279951741273537854850234881800240518747693099163992956073714550816829734657821615099188066396463834547299856663962716376935809407406169619990946082245661389226111516905824079415509615305770652704218441005565510897413537420794077113376297270758459977256143524072348638563364586618311751292687402967453771683789590613040262745047594442383427553974813739386515065477241379250890251252986119801245539357882600374079539415897968175560533186359984989031073167938005821382387475657922245671570635506554523269751528408059842744991519286614370375234305960931277930130401185811387616207914932896424818499720815074137171217186872969909742590427341843643485358671836825805971493869913863646798654339367717902631550607519042405228369162084756478640944704114624599827300941111799275595034104638889995786769677545822769935909383309023016946622485142990366339008576904650780561838807944392422595174670683666856394161759726224743678235443560794489783176536805423812567747946586186487280817653606730093232901024466454683676264800456154475174190925598413552932888265935205595326745184506816565488779205649164773557419300704502234553771063541481379304306016047250503259882567364385428321499561824987632766176452665640617400378664250874338441899488559908184741238689387684707215336330231975466306787958576972911295920416099542770213502486064901309229347322641985319217071044299786003453820278016156697835567250320473084767796831229261179132826604987406180564821294702729146854294079172794392071492611233734675251404585769319791143884866463830853931430534434696685660860944893976689761157525025685556728463043623693829048301023797314980104858445781679054262931746196964002093556935473082934884452999457153763869393207938199581722376313919231138392569202466334035327626495312712426144523427028547449497060760018782865043986592622194194523019627742519680618597729699790217951974723010053426575035940997738953479588386817579190071123207650691257428655962657825435189943268914681239700091273340973606427975259929251311007200491561171252894573757900050103368318050441444374676354807397639418712115251839054981671270701520001908006423930332428813523742681657442707441471353183433828925668760318150241700010889935632044890850581127563313761096534102260002956897851947199113245738812370040352868790429142463275914654896062221033734762348705618175477317372886845635232120112921506470765649034370721517656426601010846453569477499070682138181721421675063076426984572756589177227736799951449284790098396456053605421677656996262771004447998303387756386742770532064735094919548879983945515948535525449971450393204006367076310684691990005268569770937497845172498380720493882328260894665334260382626958237699507995864498368078219405043618784835605346960602755800853386260043904174407628589359393602085001372163811103690640284634120069677633744086260304900237521369719178873033382017941802863959120983270047435871943602398375580633838911392982863807999265106192223121275046845624486433404480315568167468555777430925891950696151048643202644514522791255942650634303607170694356117318045798676300598478317944551919700483822800784921159724511301526092215819670088832223855476273317321682821571007938435291792612628637763094522036771481607111196715397099559219375141597832537630821470133947641675042713198308951799949522539516212737800525698521424941216549740180590041896769889716614686226229031345706971859787744398890939405292735960856140278182042661111325946866626067291674094959060037622058028892118598440551441172897126810982414245612411757889057103548905583639922308267121910493889494014924600857384308945456904944737158443486925105772416721220607933152662211119621946621311001326032571370581238591344309606051365157259020592345821188211238704032705465274570110352774927167840150650838412586327604006886985753768212710103467638945480488492031402505771582540811284443752085969040746278317065789544671383801457845587843133117508893371666870024400128177999457587043295187702592113256866480177029346140265912110486312194408774697287094594205789439047137190918989647027278837327211940034083908905362353138511914502491715352104739429760815847860538034478079482799664773778251657306795044724995305952277003512397391520837081038621071104570968350143891504703774530270769578419793708943068326919364437975586274443864064475974285147500697085260298433269668855078621865296799191560895897225054199154345425061473466333582945264924534735793976733228842869357664122295089674040340048737910001524625919273151418837940854585244217753757851600914536718723470936809184071842931501407171352220895622846474720543970432654554545858881559771796451103955196851372555156739811648238843131350658875295542360044060979497048675679374834491095552033993577632144987860647081816614037047093814284319614322091578908684651835673187420265229192837056510112609390679575939069005758187829819489396907205714523559646664387020864424955386204654457695526436060377110244534671636993782277877827922775585862539579403529980689711382795048629789387534726240521697436288615924473856409790050834742571899771605365735201215286987839149448661552353268242124561315634750907119143062532831683782708725603899847073529593116917385712434069936643589640476323199886118494205726130709202331622016128942689635576980966163794652376610398419470958928244102907906786040493329674942981594055943438293868998228000452789725438895068964076509565767224916684477009452041231376101686891856754651633283821026135677331228317356122971606255690784605755694028794019002809306321823171220756621438505249705042129969689746029321849000056421393509586558119752323333266136225326496458621055653903359669266628597507950587371663571156123775650132450473849533653897640765797378808799936770563876793732443567926023912088636522775222940973084485979363263250627437921175026663190085678700409187292232390159233415048548734154052803307014761440233359764058029026576406969199652051061938389377162175989134214638537245382950489912850468309489539435733807662441908109849899580272607507640341734355639600752156918776939576322723033688285537117492426375619870214978691875008034797298172392179758866719133001665899637471440043723333920085153602954106366949331894693337572083275906499844487713876820926168310534349349396912518755853648841712872334057653373826350922457326677480566545946731608702112994984064911494886787530022159293174622035586994809283459114915503783473263451681930124846896656394960618490493957213571202238815706284600312725198803300828617051709508600100232827962606484258700619604861566950385910574289556941048533549679054938802961587220051182686108942362886142246830564307485593727412188290740060421054142562500529655922766453309192397167617426514879738696408152375075117143099861570293036221191979296169738374008450964146636478218384419075001317268051429387792146400504655757694038634716214873175749917438423510829342699690802343563722210531483252903121351555794205241931038065320081456364818618954425443766689320352988672580737736098108812632328712214164376939159741873435720593741082286266674098177430299824467547147380665405421614838563541256215595115982168653009830813931177377028123055535268204985040339494071383866721482780486162971972668468059312182621090003231241744263353393681514521884364820521259660719705086467794647944711023680469830995115424862342696139644372939507724881875377136830631314025529108987737327156640178202837548404058318629906484877498527972748163957618293618275253435370284862385555479792634404666490270228239114331266914276868409694025398561761092141139328400853608232485173101909746017774793231536587539656279384110426418753764961272637743983977044131374051118518710472478686499774395825540058579371883078402947230799606754408545031332005434251350508052728717286305399865740134928845252246724324719101476519268804850739603416916424830923975555623838903444406291713379843839263589658974318837951952059773648297605775777773570932788643744555553413566463022789050665332180818271132720398158899379066354156695220985674063677900487057767788793551114371668205993399434469844372729809900134821244616964070316283445858311465457521975492956128370231561359437051084916103021045007875185498067170051698851746698901222215111199145612821878581215004648068872151214004078634969731774675683714272055339307924194803293194645623551950486115018839922918423235054570987389381627494253343714553705345400872323722569629095194511910148032189796307541688418602772840395837353905812395558229145635694634226072126799076582016683514018282185417041595206573228559487220767307096642849693528106262736110295881464470952282239957803089462399289662519054691371373398767618788243194523993535322107342195939305193241073879507560786739862365965664980201625917263008357066677441255402487110946150878766698656842483174925737038592880446945708392102827754314533436738255861537188730789246686616507570487154949663870081311687584278471730174911925205428677657352903310371112261742117843245920368464519689597630062225409326521524840361708374963388831310191206566461996134691654677824054871415810561208251299702666620200125008220848064009810969115836275255924883087248356532881822955347390410933727904522519548177791967287179691616181908172426812548448942108733900084760456161492387937610065318556925360637501207531465071354898208419477638722565004184771697994563348963544922277593592789025633269776857520013091393582162159017879873975395714213669277218550640753266116982225958561777145599396625156681971019857803449456613420304225137112946384635489492798517793054539542617960628610170370954273955317696861725875278980753736573358066968551113511677418826319015462528756427009728094556733233238605703071129430614853984120212641667592184561758237204158704249777177875074653267445858988214107775186251329779571477177712313835811969008826989886646807281866129567666030381655443082753569650691024833461967143783239817545852141466690920657366127491621895768047706476853467695887429202431287341207306376321410530526253572725402606606875743350912223016698609805196984177052338807869089553198491080111507178015552469597427316425323660461824734659527977125475264406819110483736168323227303936883130805397456098369212595686982505247825583616937437697047493036231328264286003300695597601187117298062237014878103697370922598650195494059191286219234653399954000859326090943254226019195511534333898511142289141534131504777859310403952324271759139457389335228751338688034098660406008594626517085739994307439655941296767191377482053600824918451564755313022475399803469181865570516870101082448875662602936710173027844593572108713678089089112844758883699953841186690746889995741133945391643501844036391599312590543463963087060257938238137645547901903865128708637140314845071437551388811698846176142531267092535574925832156756870473432550245794993891725798902720977299549216808867120267558859897757640814054816614284472366191246519013169924888994855420212080362908798719279000573192609186892664992624106110852911283566044690766182840566478212243668155893802626383755254096661433276292724540128836875075417773213921710470298483088210807435499239260425138878725169023382491411669235042970777161823850815062835564226776806733786465397251440754133651606473975277737577898898139685478355329984550947058532291697492376376335097367887827903450970088426405667941050936443178883203200657450448249602116577227898463028904159452825987754349145446058449407455277695761010495467346646796640701061540490008852256311989311842333560563565749468335965679693007267303429466048075490282478630901454895549313142050001548650629895405166319778222926737016377764849470968202980744643548391560250730179611966289459661727639052523727870932423904448689937400893128154557048354368962716731576050313366624994537857397287698355554920659685167857660965687527017444661409997580668286796857894097497328436114523686338158850337831099772566457121732658615515957566150252379069186619733109081543193205466315978805433846147152393771775179043159704305033920729149914576300373774990462892183442464210554312401825635005348444317381421939265950778533642058925887428172194206287146698093501173002733774854029409235494479932842491354781187142402090648689846345261001986203009497592268445731665733308876961982341043913088986834174214892366980383227962197762992773636808811898582849496218678630452291125589498261089688180167512355380601611924106055161350664082569820576991517409171932839510233836862826291759637515288648161571314466873150417815477902678218444725308314664830579301354572754884582276018759050812096856439834533098649399537402633864474313175704497369524118257183907308722230667985838575924551809564275471864205284440164087336456946066520219434417073735304857766877731457126125761882376015242853314891244188977328208419712395267926491936149501242608904598168465738516364460112688886092521448445774906279872338637128839496010145543845997041504601141422315732510375707362237728856818515853141202196827809315371865760062978534913311012110684987449532300329560337737886705551386022162645631045176391520642057726126340285299101581657017110448639057806253022455916065560437687518108052667209916792536478170842905558682299932700906203219511174226770485571457296499301972335429797159242841638312488131122639528820893989050874125923893608072578270085285081830817958871693784897271716853851615317222218750915484402525952127778909407447723512952319779514337380220246799301744715980508156424028454321281012505078055259459825803554842553085061728292412144577005349622684319706534907748292412280657737890889190996940920336971779297493909810119041217871223277528644385514974894053818241464424993439152617256761768810596622557551950189454810290236447893131536393051261224457221596998732559952792806457940652902047553906044710625211342802228999598480851223990423561285844118528547529637141725669722230261092224604300917128342363755232685155746213272520562095430820088655202479335600855501850673635644909304042669903275271781896768265147001989098230623633865637340751130482369839239235164571898301031923398499029884276169878054411295143729553643513389312462703139945621931304803928529019868075159257673119781005342577042162969702976353493562319560689379790000190267305660872846412374469656060243719971220021293541849903719047958152938510450029399618177552710798742441774850561067859680579879789850325026750877678170708690995728040990700204594296244789233710482286604394419607227312423376171006573336785587786900896698345313288319431134628175210355970780751863905091388105791808155064183633096210123101998295997403170226444367184418786364313120290391034237271125345777533672371471747797005686253160492102562743775247717647885514685367275348568438139881376112214766018762182332491986294452328331712639253445187245266017447673692334388219062853000881797816368572495035882278803127678978753854574545117620950043866641185800657664998327947948830792641210767067054096425412364866990718360126134269234488242130520161498982560931435677621151847899958904613042616637548658882779697462848989286590265406367204621291863375356880184753977600995283219368997481213530353343318212968291948918822030876952845366351915983420895888373797061121568388194694061560031615662496272483983590173461169370704940793828048176816999044097432998924040248279894021344411306374525593384085749533066567212308080284077095389201997043285314999857263022196481358847591701127801296426639264751048636281523778884233553599187731087286515056609322741160467403172394540577586198442269084296226329941568232472749838859329966414957218104511744870561606845239915424154560346094587847770903883719858812996531044495387610149175168062500430825309784635238954939143712977364777938947821169938926600736815120019082687504920384729678839181837694807516238389894994121915633014130631827071490264215852977499296252645911127187707202452895940516087314139634121885279585662962858647510667939146256271353901334234474078473785527933452120778536048432907166841563402106643903796692823351711411450147043451841457348836560111670534968446593109385948403881792331055257510716567388463664301882501875297703179208828915716293553856319700472005062825285374887387971682368535769694554103003514784885162831227589480385297002521407170011488113301401695637264925817857256505360698616174337473668018084550699527027035926194972792755505369030037810514979224286259508116394242705653215590465620257959145567080999576626049743881533095618278179241854172992601876226017535420054725135113329918303878554882042422573588395059876623043907483577928092507417896571284835209276909749834138549741977776366512899583812680350936146119932622871782880233089155712480601003392882084447994487288910324549004363527274112653785634707484324198603846952908271480727627079375322156861466854858535938859596289207330543538965189664826842482503229737853809604016684783553342648086697010957324192524404952986668892348907628244546943334535229215767757623390695636142025515444190104873228674348561475234413270019523437578090753007633868921360148234634062257984781602360441977736236088580066430992814147241600179250247725892661832483802961374196589534088557277819977682228977168276764023299993702951904875573470209884135998039195692095030458966111610268469672977623778408119041583941859601695094887651052512055787449167052158296155579850974647762594144411017374111033123350770444236622288973428024024639559592289146078024666875895926547623061864179713705027794914904273425991691480094966655179339364419649251789839931893297774571326283049247349338674476861596670444649004788738007730834810513287391662705483146171952790808773140186678520186163585556118477594312804127109663902391728660527505216504658326358908116635780746552167985375587105931951989935943588997424750462979248447772441650893487615139353371173556990086624352714488893446765007143914591823828767005167989326643586734517083917928446261867856987772056790391543957843184248145808621033648412799548254470827394698827451225042615526968126527975674679567345089329826277504688697275256606908026229797748129121757305624841618367816246937999013889499895245820934895310435602210594878572115318011501766721598818896506633947861208694285643645188888199471022918609959804792979331682849719702446680909334734569346301465275722659659759932702245836796179913369276576017776398883806264058303988428889400433192109908690767231853344970270377680210557416888156395465977689521841711545412279189899031207316817093856918406335175838537604749041304332478100685483371070223921112180995809788463655462888872826760859178758039150268070542034725038562443124442281907214376383582869184097957123595309641995982491814529573800729861900762588441464225297754314236124309377815551278835854450064914151566047767989875329890567988559567172335323001158771469515434785314628870532882148516527899504050775067854849777741563876176786001670671388761841446497846382090970442175025821461054107488032560592623895418244718748450791143561384428962172362201177394735971392744841211378681009274546745899467322864979601790281611065639555888840275481822152756648792332419568396469078979985503497815280345397323291321379851487380500809676949377447443029044412946106092772786028688859846493888833710598365803205242342409615239082365740484011675279684146480440803159263160890575588258922179589271655198986761653357934868577340053259580161421591418120329971616813236555664840258903658613430057078137916405846926212424439682847528648299769230756617353681918661485081569466871686641181093149228305626168784716579897730599865792190664759585932443022604739145740260468836929849588236777051878303542536198717268632509727941302716245628128758333223111820048710217909494485430641156741438470141483776274423538790378586195657281342654916477895675123991568886071597239612295988861451656300632582014655843589702128584814846019215604135212978264121834207422749034378493979557551555871155321688521658162365277266010156488290852776477661403059016274295411560358509549543328837512051919040188526424066024961643099917627287170353393800760025318881159084615414826393981290876492260255419757653456216577254185349515462145152074861775870122315622749688506805034034014919088515139808906172976067314947493251216242652361546320922631516366596915195839337202971579226211587335589998894953755591460911223882750321713654457302627420335980884137370025155097885345112928027803413288596121613690430890677254890761113574692386111990835833385160075277280719521823252018623490163122648049053735549228861813908446588548628175122035758588470099416722731021488227312656827413251342265301029449798472150915199565569203379800256881005131117766767261023244559950955300948254466994129172134666277395509714562842183140479610136411260172214444369643490770097224741894791109384780669770654462899720059243217758437939586331496728005066179359200465934218543337357784182519387652550813718446810870109093837846944413695387692332571640877336537158377962719777950020006412235340813475111422491725706791785303896087845233065690443932821659703679333481418931517766445114859735089940670904722220264185792527530903050959731156066933820958600338339567475905325313029127652702445510487047100232664550340798030601632147965332231073474395193747075560101185676938219316318528176138021615026725576555374685377135096740675053834062867778970157459184456120774989071354251491855422964871181765689132970366335091185300940746058443887135534770642809893412156774622795557697942516094155330155435924687920853463326679454699841515536230697806624027060428482324673434472463346257433151098835643349618002097852244879174869568752300159379927046151310031851116404200279275464240347886503719076156495022185095630935317967727518334095691166688588431472429519131186832796724838296180405724770769509143316679886562638792966265243006745500097667300883529823575947413600983183704583951727191254689249522969456415418197175246180885450624256707214431827112853130411803915461304761963884914058719883160321891234871108147185818755066218987516895229515551015805853015551466805396255363304164460107904784760545268753357296936305933966487993350341687067032255444297874695220093250771666223223208483559374750140521994909700771944760531190298887618279086288484659155339093514473708509038079250511363233378130664110967276159672244985065179144403448123785693922464872360728407799097697946035475379769472464363324181991875365110849648984799308431046211925976917057682113140628903618178223817978165549927672593382707390286214839431142619111770310823661634493997471444256934635397086725958208844132710908270312610647274551117343830305406801425831254845960345350624381638332972153834871127391911998275105793893025658379647856317086246553804708530517543833039136445947246923861584140429171767974536781176822615909706601348495141305793930125204540011806531644552555701836460949071145293651935815797774017873901994274519766600292378909222161168789293640862476415544419643371093441468145961620344144015585781974694494950720210432492203334311369969724792967206223880609975406911886695139621042210960156497381103653694583306129309680300587655870274219038425436248554514466932871267621031610123050634001933797389913006084380249700732294890108148473215345174545933992613466638505639929558874392237196001934107950082042929898065001089982449236125669842575748825465545445222650313448594200358140034868293811944017131203685753250929492335776378772030233995120785044665917314424748876744967768559531718310567817968427732705131670893761549368972141325056643163180814538880699163304939006085136556208284927067789740894314131970004941151937232850133331148994133919795194760996404934265735785541266150098058076965714418483586348656868695639254597989478558265153386694433522789531841332580393913365193928703278635018776463581671270767658124379393592044312076527382191191613406830056981843574908939054186487478136790758322125767489114138480553958154351333854237129483429189445711057891124772638954724671928763346061414873748936084614909490324345944854552601334222380582040376388388964193398790790159449660275619239723636779659112149391391658123541041707825861844069703176856658142106783082852288018479882602198578335422306508975783044423996564495882233962124707004217643141703472241904558756079220047608892412605438553913936380900902853321914458581156789910366622959676804752369247860590846113009905701961603143420178756163599078962886121125057278264460915111903198288618885830217492535322529826177301606075886166941751335047161994029599620609167102288917261252513831780711799177709323266710981109348923572367647679673206880944161063164004041390408870259441973697912705408731528872172827928077846228019778413884026263702949048395928195018771228297840560576223083957246432560876861520411826183299075169754811924297933729160626648867392238746779699945570297517809726140918751188117241520894061488627151365121470209954535746711831670869274566599639780804200476786813513525104720841176785186877278377300036347761227474337390402611018569582706498123375138372819527881982736976437634390046595881171234517217718879949352410016836291427927105543970331976648161557394866254722879779427716903301948702416424183928214038931180641827842344284456247710810331996172620358822242644919777966964502400948900225600042499822725721599441430770572271657407865563828714860226293937988964105229531048987729271152567413828714068171067720023501608524928322334954577413741270709179093474961958818992437829751141381130118153074585450991165171203435481198365336744943402965623782048458216562537615109550013022077473021861976847374191773199366052531160417466560700182123960826212620532706734221507144164855938646902040894348842269962189027918472311685842082965436508557395948446836085734173918301665278834757745552762265578797887507561666777176991284360265334135244837413294400211750688328856648721061272558657123112516732450378066034026565205123792340501314632001920393332379855255623047516402209771738121334315932884101924068913377155681770531632717150080190823944166810291580410096921292899206112185860039387681578492090147637107816111729529653139955460835571707975280748553348982309303937741140453920573628897937504803869643614297606015922328976175942598148035077319309678403959978690261368441370788192154399703208437455644535615427884614092295440232498257589244309748135531173552607557686056261694656541727579311614007200163210657959921852882738874114462868205799608180166821120920896764492941306547311270096976011014712211238295945449294073456382688308204508740673949318682737460104194971438873939190669663852148794328491411593479334295895277387782732934667532847949381107272016939688228626278303539737650834668698360929890227684321541203222336060811975992357770472131652658270064143225613815006664284063797278770726936338775284697824902522190604538749932461503177696407742637889513375154733563276950412599540090841416986749034132590561079150457859919713679062755597192020612831660653993336315394139035594741235352073728894316598048081019137060192570794170959479461954487891010293765921293362887394825620087333223596374006898576590638829706506268536568373753963261701416770761991285138716730581155498536110838069612836115801184650068195416002572161722656282275320182383674257628250960777109436617767269377903834080245202410371025014210622275423239720849572816399784585991348648437540474882266742763026848931323256411184035937681920101357425145860828632602312898032011006703366845338097992916414389513963127659624657594069593700573096856124056009945468524046484904938135582369163963795535798748620245792580141351993862880252932036775838610696012660795117656494138112190168319262320402895993156963550245143230772446698891457085077683177086704109231793011021281700621852748638839280215773954557022238805670248566956317116476277442986621168860185750637568253605897140297473692578240790243241896542128708460581577347117999951262939233002596814802700256787833978156940563363159533078119732847529736880856869818625543911111409006277757403146394429912841626953527648870948146183631906100817397538694518221094371030511122526716631651295344551147937638537950295721953544920556008505030429517614572273812961023457215130556198118861719210336092571536759692013749794475421741646943048344936200498235283195722874804495082389348675675450582008159301936295527068318578539391551714758453777214110675353942000079056643747633774210042145601028957936714256925307466873998720595521534724026692712636853221894507160937164855344305144818085894788413603384342711139934460110507122158872078502527831813366254247668069650292587608944713610090966370193468809462421014222558370822303417938165307569073502882006188135669372203969853507125883294347028314890091670952965945418304961970543055953586154580073240918142493936051119462445410875094642002393447982020946457509073110276691165215810650585029284159070307936176586648280737766181486575622747814943300456509932180487776622783273110640665518592560687943286086051950327301341075692734934705554113358842022418169796488992106917841758399851769921361484835141564807631468547494970950160770296697191554790794692206418274473265454851731491043574808279443087193781622162161396352445315047005402539991501950234422994823509170644004214822303258030763225612398206450850981068342434222479435907382960988214368239151508182734811446065318319489216444509529962245074466255009028305067448051159462171479670083965079988855489422378505103216200737828128531789976293600250058773483953640103479974612889239567974340876764171625922289839058482029620198545400146302133262802363269153611802368712831825330772938651743373200719813288358823622562397113068833097028489621082100701833710664908677900545185934054078504143463746971179384540969885677689490196723249413011203284468249238740171329438701700319113254297260755948392190342579191992777378697833923566346070884317099314981650481762702804309449481628464286076659709287069154501676155314136751110025606731003360649785831578688711219998052176062764612959374661674651975071291441341974332248666053681223344079885972892233334602266188216514714581627756750564544626744758572217608720131765484095879285821130961511548286776616655540006198410962565773336982061352491574529854850508170732081312022806185486971523340962706942734278689263413561321190728880311723560231211543622262751510922810688029712990353888463516227051875063948679470438260765408862353071698837680531135622672660025973626217282045068050965151774304119810717151308257758733131126873721873730942218357683190551745256801020111927891662137068317109127318998131097545799428517225994973454226763418403452895643027587793985906422132184668933767838171840546906666661791860943107456234923893208067468045585882621790458112416289748666192850721933213930017051173867210077499223627894170206124331136384862716328026820788478023435912585921142622243567327784405557729604672643770524402565774680578851379327883626926015095177768483647128922007063835640809678397560661290361123065677005911790422084524778568424982743899686457437034556447808011372250911278934062112134210166418402877864157866841964125826280504811236442711575713871201586491051331477026756256148193368660133200760335225758171979945139894477640509624188460861281276567370359407403061291960430079511319552752954107041330180092621706377454040239605131353007014566698435791749848690543278390450241601806817057871999805909593053810465915341059624068822041543061990876986206452389358847426079080107224086267301369652607420838358389847962058321602949652243412331799506051616056972845084130636493888400060625659285390677012672675678775558119239081338344458860565607336083944343840789548707022986021902907569435510329385279825104329508628107341904438088859743900146119403908447434773504183280553510887241511233004305621173038327088734374493401286485354116473790663268724062103115542664645043641415444893590227354210482749226989855464907166775254784915886832033170435747363162430055544355405254658600207567386282842595011700810473957141816024610816353287819159319332441161838322398377118198747423129368112122314250846263078525745687292371208972197309006796993623747064077332277321724088016457955026550325763565318979804583292896604499567732755212768068182692383856827732252667870844615547276792161732738338442111057478891070913150139361173432637408103522281750990454607106949707099187062237344557104164518490441154438039427749727434152339299321548873889544006630651178861780163739901670968603337834595293172954807906059195766648606286913080007612667980275849274078306803765274091794891914341431415854221318275709010273111144496837516905116641573751691481162186283474732815680296169265623105333616079116621680535953115009815794758813009796403272413766131389137689087642468445750725123665582767110405351973793735696338179312769456648357177972346619240028609459458757551671523399955200560553011752681203338568669443364393588117736487843238379698074335619521424461793395397437849578555141905789866301988131691118053223232905793489098346278845251450701340258330368564205457143301168365521432354289688226790475198944127374428546601945953820366809798169339524682171349929312997975117507384979573688181128611345794343180986171903138353226394831863563298045116956773999704418597475587093515486440891648332904756886135417935209208685820547554025507813199159401041657033879551570092359839238581396887452598814272027522975853666453889210270040206844198526739901044538696212773012166630423098475813193426992007925509783607323897756401982008565898873349703054174576236346453886416799272481852162107173338289554140962866210452920738924072317987757300735830613909627668741152715908729634553596163458528123571634989253701424727223300830691110476261547569819461003873719093719985602845516736267773229197642541471580602889670197042727053554240515534310431678250301700558552377151101698182993808962588511236260827705602456375704524873078801377031737841834375693397046916970277303136792287974397128431149271551840168119901519767845646369479571593317734673526353948654172985610558823402337301593412054980286195499091451455445424676508371182588708986858750037997214227738239073383738360600549326873068876580486355854580581326241411010595576686310880666323540899675566992603797201548569572834824651972547021421259166213783558439742960695195492095218609796851167647115478526001897153839660239606990610933194954848093858292231650183062124927048797962095558899665028461346909977069401731140623325949550226009308028694437413779947635722152154966491495353924076408773378060079941002946634733452266833575103472448067592649781584958222279488677890900111807221111134748580646549563332645605774117967503164881977965517217895070714773222324132170239151076393808126539535429929805193679588019934132285461395772089536933193037189882038177425781443484348450417354459421272183895923066459437152872504704542985924146719426194905814088355326649689999138538214821594243211024046999986238241438801923180253287518261646255213210106581381938462467545364965956640125750316226252859240276971259862204014190750327286521705495622358175564461063742302087032309586113207636889361033273661341411568118518546186123130351066737870017638192018215212883903494949854809789171013286291294915666289943529708823390590759139464120754363305801239935411158607560080478462394582830541184252466263935408325857569630366984763722466136554835258402963535450124698302575803014641486481859681929431503612589799343642037301171032100283942732051767696170612052249355797502659942467537487531632719456406576459733544700012930863892986564956406367375182970773127967069241949874804135763543154848233157903540760331026399726209832841658115201125325695772864015364888758727851500371191838901779917825913018677177163896902139374301918258342914366165914859003349313197011110314560048828145248694575431451101964557820220997196018565878115510012356818163701440959749545914067175745633661914722655051898447807417009632299675888702150051101676851562211503285031756966489162998552368594167332251100593346449970872230024842591297022477962952285494409502354331682734397496497597364497853318038831440753483337828856747218026927018658605613567821208850674360201556860243573517245513723142805165833015130143504731438510779595452804139571066147156890528742038615902779910563416872933001055680323826138691378800079294801872104075796819102004549977304950380470047372357007982271097387148419071405910470230562613194428709623674973557695390486020958969743733848919187058391645285940188555764598761821127278696000227633447784159081779520874579930227367458669903526437499461913682584301679774272540129380558853099140282351369703470546792851507054153048991076401215492737839184358911128939278026629815112237076645173714494002998476334788760075891050481806132671009407227066280306684064425563999596044611603061601637952620594624478426180730385647812515318559105608200689209826008705097846011932453791455250497737605811397673426604690739991580492031593153883619970426294420917162240404260715715239740886525324396271905166544836108957460457913756242443065952111739340816505590687107001721813890281566704728777778558656835735803888544820174614493592442672792956967584179510932277129505303753556955503029789742278447218690825938474719264658484662546040867243837970135852106915812440267437115846177654855360796315236292253801674243802441465031695370555373776172893032211432729647932802313046035901249819126537482860814532905910753059540079023573231237315033292422826004657695014767462748361734545780117913048691884311457276435198543144265920678898601027123256663626870652736365332824106363179693253374569821433426348047697665891967230430005099439259426659407729912507660632015351329258847942108666049580432809345992975801275756534215876061211222204549341589933505221146329852497363702099832026781195920566477483548527217961802746376043097126361916175525319264454584966118024365067624967310985163608352660525968976164667408938399581300472007480516445797411128421846955128458660625935005451050783158534717551834361493866839878921731205583102372221053871089733099439102917385133604726386029225898455694631518065637090884650554121902426277675934976550513092712021396811911217724678378415747486736454622885494452426768338585928745607835786547454965941573679510101056144500392398822514678808734356669216016590182695691331783347403505920723370831344917269261584651918718887307141552618895213637807391452031951774659101447247250745212594613998707549026359158805454303514706284638874034934877967508629407840096036016201031371218947312055801072786683810898758919614211380561728627428675681572208340510637027268019524036258389722478602397352961047742227438336073437175631467484074713142060520465645862664790283836337389772165369431589708797324879792229543976511500663699049375434762626957820756287568284037551078555094498247350473611098646353344752974991941388302397835671850501513379952577864004334324458220542762993717718064800101842559370422742297804604032478925296329113578619794420854123401637523151347301392990998939139634352053801737380440569933737652133541403301397497176015577191331892696560216874288957589038604536915947051947946418149650976769061193751324672554566889010950511746968035131927520745649192910042272151976311197293751044018971945006612453034169049102507531526955049604235259667662655990235402981255053850932903194830472326805389829133231787654229616085500016321069702841225130373339557067022849371587050448046216886962704685779392980713955802094547641450770538271769105095804681915656152549820397965387417321855652576811373506831369960200685386462711335985917037599077106926520155956382542184451328791625385470659428313632105594982649124050277365131860497473907798351334783292794751150155530954631895556796474695733339784608365297666009201989103353707855865833232232032739010273766633387349331914298308688193182564017738769159780635804308888016550683678818361475434142928328545825950492175838813927459008191378932818450972995448855886501533890027534601177470745834406834105127938626083586363752098827321540607082690074258437398573008384703274421619325664576163354495557157119378201519920544642868032180771951349829690081068747563983111455959014391427631660921759995800657998066778088506991763596640429180042438151586324959884381633746132852237995738349325694329907507213349866781079507393628928594315451432536775435981993076820291605278913110412910067789192625504126669068223522448844854277710937624660171878111804202419119914156238176040131182922604927465968458079320547104561941567820823705722139399760470662493913608214958395886837368811940861861414720147104969486920100049540421929344000994873747674229939419645217871977869126210241652981735356525952245879574083533708954693546550430082297722318611523042976569583597306968374410062886813994830138757130372634442608309568872609032163487777558473754503539221753792435669453567602148389324330638462223637984741153537138437879955484931977182071408477543113337189394420697484434503820750789816891333183853168571391053412254206898825557788375943626996581594643580723039190276385496621213576173675204770999379811300573577518027143834576489601600111705255708356629720525996875723665479174001681487040859258793412779122134993532333897539073239459173571319601178598587899553419750984633877944338393826531718938601005692069056097611791531494264892665975199651489901222205635861349685989779755827590115215575009473169498716777720246919851037393082382506377190306788245719562409730867179473611761467623346060871072445232766464931947183864959457764129869046729832037841856419289858653133290119960841192895607496333666218381308721998706830098150871194926553892831172278695766479402457018837567793422296219043500253773077258879476544933058179309621570639028392167481456563298172675189284746229443147266199387581641559325574322388191565519919527592077942743352568476349106370128391751151206797916824719190507118413833317873616465907907857887931599085515217250914304996523617098111811408726032889002623146984289621000082605478329242879058710457271912188872917547146882085940998567180845312830577649085102207961473180757212191699646010780295873021388634766071545483266715028545960571560091152117255099267346613146730625236187836260269469143112600440061468524398063697145693946282107624937303172541556311523606687291187883998872255065470774288089593420041683162462610065348330744006070656587383815453448171350713561217899296339803012270062223091949219012473179893788093988615995463475438683632426328354919677864640891057595398402157197883607755273096227968847519696778216047731856910437239103590954075492249567017133527096420457903031389567373586930018840003897678986533733821598096041912830359786818615498022880878583990159927768375065427240532754203708971541781262274981895003924253296771411684696957455143496407999354666145226850724960771260465395896079660826763407621200142824755800190633774368139254045777231077567112065500460796008171462625171490762314497525536059834465513249725713022664120276552881515269412947212628764537585916395502140968985649524375614647135284432806874845524081455243672601054413107348629820476887340660069202077549029508779127196429205465599022481254289891097691824402774078190277522211275891855453539483942828329297380897248967009845193333165353965637655990668578563463887815074971679587344850354868438646986296550166037145629754783794224691691462026014972040637403078462891408170530107955398172959125635451351808999750143067840313258058035317931069318477240058832545810714783625493871082344479344112808409098412983065654166218812277777954847390772701211105836637961003678001215213562727298782875665399587124255687620266253728277847175361113504749156067921692541494523558545308358709821566535839091813093305672526550752371665089245177758243104762318723904479604668949212214845472231915565248513442524941476138842860340753962026067655677830751455219883774242549805543811370357628572357549040238989522286549787867954415472660856380920559341056244005742620475772652914943375455655740094826335998773477780172977676714795598890583167098555004252973020946067276377142099493187398365875495410479654726013662985342969791698028996025205835470428121778137961396298990279752262735061882468584739616728200161965310050433573373376486362692170155818518577053386966675989242067737036677556854010665098879452273138025199494287013371116450824334842663507079018797485513886700922232958071904012061211930036024593411225805465970505760704901181888993261547735937856762977597641834933994182925205363203631414880786502330459069379017620744719447859863466861600777066669679896040948010305673310078616848015542117893871610637023050694859521871575069645461535001276572422638641614806775846925758191601408642133045752705924451995472164898505309089312768413737904059838479956960118788033605793102394467478877837321604613630283198833539849937834780152317465789405010319558599830706314506321938043310670161168838804058449577227227895015149552790058126870276428894263268465837718381234390543473621345284671861163842132555210436351083959662810088825617413707062908245681433019323368211677811171206426626385256960736795002993527801881171540617654723678064479205974450584349444030438442734338544283898267826061347139377736727916885565641931008684103307342768012428749963860370416486115789587028224655869867769430211258619067526063614277251053686136032796933733341871756817859252717907129850822220762717092851404296998146678496610068759220408261016616826084238177529833244050242001183489288298148702164051563293645758872722328580051480878946640563969810225264696053628115834001970117403304413791837983666295015994055272497731533073127653806659785484385240070850389792713657781772128395146193015884242201960284338202529748989261556672970465848168491595853171468831200116736840693903769081978216740025251498679611399121133175627639799812330743605872852653582225907125078935872012134957103187844199235479536031272835943251469473920551811756614302211923964014116062988438401936129129957997955775396377208748063264716136336627658207433397384362186849317673566986120876571743808412449665995806683419881870407977947466569226000377271630068788327550678516688824936497945500219293933486635241169511860538065971862945716719644946012721381268325706751670953982461280354436036218235510304183428816372202819916589701365653232707218340237953673972335990537846597067805492146477221233158345810922449186892188385118107016682103323183405575733972566256445243671335932574733400411622590655941941219264055637703643067687758803376607448450463328500572501474885654305262247559312227226174235642462469590796116204318852086606206136819379127070215791407629128758290672671673014532796252075149701713907622089651084668270385782881577819403104774249540165772405002866144324269858010816356172373487549988521837230070079806606999064561340588903607477381543556090929987493887730964385355119240499702362082753813652455342143186157344822991565497178709155176491007981490446297429737409993207948664766879398703661870261859478781586853798914131525658157819349354196014591772588461837655797018715595678990979778102404483760512799289737215530561504568734836855680499235115878146781662605760166691631896469141557479897404214019564680093165545576698991146141401050671672853362732544424542084695639049011367303256460699383691866806190543604803268734681976910973945156962394014200139801822414461907918268791286850151169794143316006476255238673130196139909738011127177542550505814918035999354584334198012547357070272977817717383083052797110219703756617769581940317816948949306851787771428084358783892521785472732395146297622187382514238570130173171802411349063045543490582947423066281570670459878545724025056282484535220743963265919051547076563363202575215866574488474519605536880525807443456623321170269940034758843662238842211695046815450634901536837633011737131157220457119154991433621632008043601779001499362222964958910150414479803730581416215574241945198304801724623734333138195131131005667284379902070033309919076622069618369639462116890553381856429284416676506392389955564578487718238873592909096176938035673934811423771871959416263520684587775595078018772171139219047965765504956948448799779069047171781697986737296380464712670411469120535217738064485221464289185025066599894507200390817496662819459982598958964360273584907871930623066405786546789039754061226020321345384818310470108218417896359972144887633907351502243174410700935403094604873361743935636269353931778246752076804203486429155740158951965847545357472657456550324115936980995388686772266775211477663040083057639327392863170923788802887944847522505078797305710209454181147043525439381004429849855568036703454844620031006376778749404395411648320025503068665002664123969406893117622613470558878656913579772766638764847903921478103952053000744942011968027375646763462449210625829370372501503007672451094541775168980110640244225943879228643804241039002446962471975469068900340639346553326447962726951271263712260642025438402724160094067399740503358476295638543700150944781506577356582107550474840402884461913459435517184148211021581005387696714030731572224389529006396473739756739838948272078586237642498289817322056760427547339537189897972591536982282864003120010709047017072045396300617974457726444816945634784189686840048909316214143598578876260563013573620506449672978522916497278818881251218502639985392479872807047449586417690093414989148315661492110934190663514677106714247011024233120064909547672826576472868774191935392488551700192566273283434294607164610189417618843060864172380721192622398357017168368801841594902321805572462811900158373576677837155486862202879149101559671834414546656009528792539633299962275218890434835017875636148043777801596903557428120130215560211572017982693667793855399461190488711304405133358914806356627287935258296753104615313098871784338472714904199163025406712288223432860644789650585418726976291273103296359946589473036835293341489625823369158609886642542626042699244975314587618919095931595908023626282850731942898524337281163057362832997939497047892653497314723422419495757140141868972654119603155162468790824688521492209376148258682307565820937868648037567196596438574583544817125913133798446925133463847612311795908715996217102841335793486264298983931108434418043171822612610700122245760473205278916194266055161122359049313403714893914121647543339896943491027677873155358664013216305191683411754285100255891631780356732081941142822691095858486539641713569889761379455804598035623696923668697961662914877096561580263694483300848512608002589980096885604298258258809098077597529195543964034498806735260340799023442457962265872924791751574967102339871279197600880615437385106440958796099464882328892511910918638668706320721232698152870806831732674249511456362440544150572079704082841853977078288225090535358362282221866161892669098484836469336566218032476197595897140669337132667941849013784510746332352510181560052763846051807805718258521928593860479586012297595049687124357100333348665770359359865769918243890741431358524811280892494384623590300740612220385896152889295041408716448930606418482724495331058324771951586828882444322322071266683438966942081369410090473106716887817508094856729835330136402058914584592420823651510873399815252432711179115805806571481842193347771172980888681900788589734473351872303137078578100026215149146647453219714656942166656878898839993364416345854600780933637503997329861506808284966112949256447664713672334568223028902600469003590126639605169434469859852901498094816888740760816962665960765185605370245463424100834582543485230555992626845461887627851711701337560656201736455155126174443011838711441247326354296744318704769898176804716562293010117597334526902105596352373411852081435070208039839063037487047929198831824409868100278585363386941860751286387651797839376400335467616376864877047246551405078617672207538001733222372902016475954818843288059289696638922953936091340966947208383111067745481851029976435082955723811161287136431264261414415428226477159540590216026259971093233700957113025717135510194650617902434020574229436089025931094267743515498956375794635527177025606862270470472871362454386974944442873451917205023140002860631351454731042111320215554353418709454734832963967412850416610993740926459026373133729490261172278048299104312952359215938639397331013653545506151133854953997760789699267475633531669063026532607629116794668928305811638339512863876229366674351687091063731092976434165130552329027169855738982155752691777720731153852699429850178512849494473803734297519469529827112563109881228507550195710545866830439153958269922872929590022716215225982975620806979248231708120642901152567653333528356205659155104646355838856567050623372145581050200731303779084884927746214436017144128222339202941325188137428358169498562785950696325668781067172268578933564111168552319782416509416183003875133689954800793264940962542758679492330471384483886996195394094069993640435261035930982904329819889164573119717471261174164766553308689295964831087098107597437784039212038361993926245376130192507525911727345076850064571076983358660879134574014593135643327197671743487524029511480404264570339433487928614037599370936536150810309011635781868315479004140400741740698559705357162539018853072008780464091184077210627421710483857791135526808346538225181576267816594056082656607201693543465255141617536821728411545747137162392234500073209188833926076513341214369553318561383597341358079412942139358898425158201916863497467458328576889173462384393548556351525590378229797121909376592381035684841624629594154402717140433706857223485146391639864673508979076144210523125914349433337412631848403830013091255817019079020237174628837912670125676586059180040264979487569539359754598222024412907964140507639512523136427752143726757387584684045716583534100698905943664852036297167964005820092846825175757387943153701585010911737753417205457848330644907429095510726408797558457806587663466067691429841426450290782715214182451769748011915891427761873049845583501428373325418943024910334347508637625155773826852533745834002061404606394093173208100031463756035820495222231461891183068140238097745361333411625785705239356439431553680870258957160973847930882031527560978515326142654005935398346918732090557762908430145337433104914299980129353076017891003065574186253396629246851761268203931853841600041348880805058290961122862040575802018254189956516358804168992881239153074026984276389719591396379243767008529578040701883608259507821018247538974325378071843100383545876370508748794350697224006250496595230001033069482614165319009034877347732687511124713108554269633281500799401900757487677844883113085939103875590875371530252487982612785423030314848960040322556288929515117428344495850810402652020124752012984469466222940572293369275672655880467792323157020535214948768924808347809399963414879792957227291118720381773151192127724377571265957949491385722676375041003579194903488347370889035040417201197665139897485414069491369260182953889592490221778483643724523533508398371045919345012489876368801754761806799430131917726972833260333491449126223144463891767669126517109859572199191543493397388838784529089009820411256025128986491770675790355312794055185290600570354806837846445513077408099151894838341441824654576471846113299621415227068734392945720308841311470362319606054658907783548474902964347383753115848895707216655615432507177958798351660262531761296337048957112501984440346829813741403421758725674042150184984371883145882249567343352241878408755037533323476621686329762982758975374972627367376358526119606450987570953741401189828547628416019836274374028142275623935839880903002488358932839973825191501242473887799362954941714595471535843799348606439932810451111948776480647370250993604235574575131149567612907192280657642217121331299882703573550122222262358587422265236932375812464468780612995628590086951502149312238848399594633556517376128064273052266404589313723874717180395268692622752757249560927106128833065113365528806722563582792369342445110934611717318003317334792319499724658800572828784115819196751555623779003216971427526247365770530152821349336799160858496443080203450720293627927977737079015297597476048095356937839749644021859800789978392987775921757141727316516795209109579091505655812382653121167959842518732621025659609654666965252866980308884777616328557516987331962399156004091996975427730478300006332090257695102859863995512228970136981626632930773340968374677489996635490045591186264793745394527571637977263403772385579407853836900499783387091404596382975642029631397607507995906962710143455177862708202357224080708982799713871257824264672971003558172264621281038103842031135820918668810414868142472138201479620656598883204292828955354004423980004162406795250959045304790502997834465912066127333471632590654385935457491968232046608631074263243291744588752873168223077979351226785440355053831774756219530023681858939348343482651404504355239312711701535556219667492868956375696381335314284348591801082175465843873308318547810274877206144805990009303705974249060518919504545297806232835313975993205330896342231965016992581725564984705512176097972807855341678935608032775602767444103793786448190750844054220109316891693139443180637093579901443946703504332876349152572284833519116530142581569419793251786194326138722749586704731382988971893792543941087754612860730659913866677289238559135416680347168293489470643144553775567157596731716822306721152827728710187430225420857691282404730015243082536331349981819807509151768026672899934765989499772755816709240359733933223624996474231320222276866989494611864366718076605222794360416529222701448115787739937194507105915318535881158748811429618379923906997336631598938966917259241819182109136626633098989466938135803125489326471334293789928243330379818134212829708191664238668517841766197574570677593093920602805631111077104127234025936682875491657707047188238255101742002008740871067369003352831345741120557014413458832208347646367291413010998290410842172232273735901605662875739283246422883708747858004187632605708427318386412809779210513221114578382370735488684835595011468815745686761440671578053439499815604539563499214955029903130065957795595734628037901459088860232012634904568004592516947213086620722129626889402957771838690425524237681802851407477152011096961515099560853332350061291517813825075777019418599278752787948743872573915973785861313173168373366820404125103028578918666506218239152709576448346187984787603964215118860662587004036754149378095937241435639339937009797144114801853150367752802631924126346570754349729799879595306885476521577045462136882441169083779837042107297230530191049211825567849296691676445548670696159255244244520349959776978715166759049927190681629191906164494319795227802578584092616317927752111574377170673896220186466143448669486224259463082214229698377753584123778179194601685169865911939866980039760078235246921123518999245390739211693844323292588873842850178049087175898746677160811098474395190144123510758879648481021550339999685711500189996810932735836602917410717292793347302478149804970128944604361554816346509283878829288800811674457133785068106148165144880676907612642361367467544210463909602951101293353353786275418782423603720399153913807222649586071083132621046427078602107394605872436739287362912551835413654288608992941928910668640693274515590836729572752045632112567045042770702041387616511798006651676274438715887742568308448627394917140581113288149924587335237624283110925164919866586721228841474397062479045735739929128418875836732111153471919892844991480500800280570320452513156117643887600860088600791838343808382382659496940009495104624320683004887514557042480755527243519497419417118935243736938112687680013485853220333838944248819029863312650187396616785711770500776065941721098264913278486820130749604746823728019104907274034625622303324019008717235188532846859753153510974626605475439564122029166121674361195742263484602746719578884468711129766355701645246048228761847405378625467139435680795338877873712808715059172969095378696033254451607031167956650400959635066070695033325329804765251373060891945933857217255585201569062565260533172808159180401264533527087508202255977125910510848311164621339012033185823252778647341209256177674397927175195893073813600231644209489494761736648549619474734499460093514785914916637132563527884308359046132389697338966937471552076408393511018222172692434353240735824357898996162737526097947038203109804563240440488526412853602785784964707003006534055983162306634769580675593040214687222497069738218334361490589825558388556311182841502520668267190138051302059187026429833623539803187630713207884900288584031381609436877107728239886715648418748169030290341662134074948061819224541290500939342454401238797068601220693544508680077711706476767276219475687794210404926864858868707199938088935312366383625991470313507938384116996429960657772203412583549079835802670044870547217973350891880256983362695642980777199729068566110903927645964102643282543448057247623990638482519683416545657713236854440027201883191517406268865539161485758275045809041016735350809328725183700137033382810989261765539575955597807840375382212366966593546064460317097317897815773636082488716695577894019405065527376205453077517871397510169664284801157700871146960398587607712664063745177220110563783039938034852543894288630745870978950101510302524055092029232655114990071849062728984857272460206037005400393558183193605724390533338957250863795039748711073278182735452656866216465151000795223158661808792021933129595411175518991669347361507410311134583472147222300766204121091225949181009747613248785889131739580419706544286358154912241781286455211486432666530541080035097978719387754775891518169089059260571877161009674759951912204813282593220655003865124785298255577145265952311548502559378655560757713710197786853183131669542251407047138074083775688394989449891728725520873295901145359603833567740881949203216008443817298225492212605030916927287551529240557973720508244935269682873510648227447904532620907876550212451325014109704032263399951865056941707274695880705535167663650649623907705228392407649148312674175949171015778672292371702288055368682741355590014456303891990696491742733546963563833319453909050286790574135223118440233876773510320852272265144454118939563286826013265172412657126205244481016604570876430391950370513698636889404477589583669399718596178093091105351747218006941809174434531673032573568150711840088980803337620084099545984356797455540251095295747111349949252065508505088585063775739610722247586266056822222212426514040293448090403671501716947322903891942776076800597082981032195056223161569923739587070451319885935507689302281906821005639853799112801557782487551972881544326588010775457055962211959517432103285885907504578698311074934803499875473829269159643316196230929009860551417821056372831636476631510768506344175931164191328101026546917222408387799408020336271895536624716995305916872445344870720707310203579916811124672943541010430340981271776855361550151244865769501855765152705218031342548221066540208925469572747755149489140750556897464538975796796895567055559611545713462494408466840346350449798056289680444373804385285399611576558958636706686289924753323282810287607136740410984383337468911585001515248057824135292447863450153697322046621868363194218396646769597462511146287850655776990327743046653674647017336374640552118997942865017144679929382700024391806539434121731279554272968973321552608048520597376871251352556872742247952258046860893791413232921570359598881509048619077064484029288043101678677916882485257146445426827401115473174525793903299070517430843489247715416686230240307549558362954051482981449914935860627912874444977674873189218295435974640760853311474408127620032782841859632202054036567183590769754425826498782181388674501984747776378209894543950441721707162287406441909241318919038628801374552588582392013312770031706891696398881578902805977189080981479557706599234506553635723407377149503768562743244000677275683183025074203244105814277055940211744484782392396659290223363596052543259937167547693639539215635415860424622432946580013873488206525657166280987618029775326215063147913283367353325265032066848073129604076698695977881455213307892852244401603782872822654587196084287137221199169425640819361904331571881881851215201073369084106620077305176926406994093221109830860869509075799043213592829002699463449079252180785554659745457197479417028973577468688229404673911705241766045661259636567933820251675531537280290791307365792567353973670655981946702167942285147087576759071321647550565152552216817003234488021458128215198055528100716324466241996642944299787506471544926731729918887601339007774114706788468242220496350747648902819248406154359189926993028608327875749343259891770215905266513715103054292448335258164939469603774675695976388819829182634568009996765716689825152681616854573328586596001027549215444215639326569483516702832394244802758562351677130350739646387119971043203236474171423072098710187993360165931365970112486526305765878280381576242563298888799189881030708939219061438141050035426904707838863502710058114599277093472191847344979124071476461939109358019095746780425311530281791189701495994233182709822151039184873144426422442974985235769293430182776395773150416879485733889614484643076793547537001544459293380392699533046201978285880789547572642213380423238269336974745807436304507361838809863341314683853149944624908815760861586841233063442071093196661922445678088815537430149986767101510809198733053510571544188513211777288686025695371724767740122569222604415424790602447026885884885230853685384338511307288079336305261964532754056369558068032503716868964282751587851293265519468299969728851013292233244913657553812569338233414835708804429884192070622715747845357892931810128417630581748592198462179401181305654522504626983773139725172582378767982629784917126468253668956482701314021674354478120855051702968695948411556887142527699777813303614035184076377633833571086036171090816302124009671173078153374441910077627909553932175286778448637057364104081074887894161933067211434999316149287325524724444705377485126887623604931942902664313848096466451182012298744671490795435474044002309501302879818336030488686063747216400899846038346320150127960094146968702090023683831706689818083870846087855761544830151180858962381922822648582889954878504880523658261815715108267455212001263749098312692140816172373219443614115734957425381944351382098540232821215498206107589760717488178702667776135963356240435988539407597693936417343454303969043207853897055310477036530850382094785133572333771979705752383673077598753946237975383545307630591606334185016748325601686751524471128871713922817616676857518277065149474164010059587075620653270144972308090069269362725072796804451894799580105903953142089935297514808320016786970206574514049392683123160673987425791916222336569372290974604088884624340368535587203260630039094641948732820375323144605154005607881144615534572437159301996683557335892937870001748680630537706175319772805401844294028276569178289268747785525927542354353454737449213056720355138941850081581564545911317326864384618941134645234519308038105735193818231948277846369879587461117121877210347472140216801650830517866872121477587063468422005886307576159357498242059137791862684800234021921267967759135165160496406795359828024888937562571788188436286584169518856334553298701285051077497899721008137422334101766031794949053676369376214678898283381511969528372192760859823804619947887987424070458070154935219263535719543688699209501425501944654527249180413772000649718282057657243097327583548054134592550588846015899386157057928034631099290014634979864718344371185726006008370232821942064625786437530380779244503600688863910297667398426201419871455458208136386816527056324572221014346310826955553104353382088050196706114751169297033501060317515756691255577477998984985928134647121376051665571710248676513144401738448023160859810518644412805935216355266843427287040093423155420654518324912650024830487068310176361942465141703345755388522197133849081788492545818964265943689835183537808359964645664094839073573934529258548657878517860167771053918741456988283720624096547031763088808464801252966081395632162973703206982218208674460727406461998643659463506457284229777518000383089107757048813335652024830692605081521079587197835335564970366033194160330109246273656326740529470773928161587465127123918332864731515923406914954041454381301773848188319851519933946342807321005725028103966105809664774459683870966370310873537870393052511412333408224748278048305716002301426488194605852658264885528809358862703880110816497550925857401880437034673639516286641401289113471924556475667753009239157578769439137066516754697445592125524998853287945276979543792565090615211326119366379045915133799384313088670553682531019877226330820303843916798069280170121805292884151868219480245753600525673198337079313937339959664894270501242883889881102155435243735603310084761463118335886998532526646331654155834122580634698721707195784304597078977005446639755411671687218790946481494036109402342993896462283117890108259682934036197359193182833546176831115348382228649221161642844888045492922448352947028746676687640334699985277630924932865641182057005840986541832613091933493967480973001815287512659517826033677388529273082577639647094538548020059105149293329235963659431771401672113770663379380181097931779433903314334350601890145577027983016935052727473299734622253071643077960414203980731968154790699666924550454558172372010355583448461071218754151357883179380245981205850590829167177481602315859236505441630215332944463714938456167394702725727678649857879277910832769927252994852771180472840572730248877426940481042572082732736555379253743609417903736985728530247486184721044154705886555333552385611009303817224985543278204918077607362432545475135255036831370792357869435702064247314170387370592877885076354169193935880709744038781968934080777264198061758268509653847564501106264040266578141526658280456374131384251520851060431191356393531135211497162020335296792524891380803833575812963109111536415129940750946209279312580834668873063946419647822686724464909137833289791537496817766571092161455398716513854316799716280787829915106347959141461491715815782761349070435635442331731365026935015080775399948923022732211588205769980379170775276813197830728642537369004960669013026698739535637127999641719539981725146865651854116180319214798287819411702357415522599296332380497220741982934814000655653531734860849836655849218723181456035225041091966611877267724333980104825704681823515990639103754382433867240651110226664518566113697653388689372551873136085676277348060889415429570819889005702370471542603675257459289083585373757929270870119794846415807540253762905954677843891022758725411029540518072181023875518925631173560497090215250927678194788606921816281184867947911152473273705642478310679142411192566663115408450624485912791552183462868261740876285048012557100816868424307371179868313513764947808772809924315562987720845898266022746866316172379903229309119778436543523829924081252204077452844116617066226494831711273359650026438592825247619858142080753942789366857804816608641256026047934345500420985702741077660688595043797920915701411008811453013995169097943621649773628064412920411898951595426335358797304815352231049236127124113280635038574526197355377587708246772788855934147211216010407040455466295266821748739015344863247630290421360118732682469028936450866364205939113901218095519436027509748665957778539482400052868562134592537108065255174094838153064450546470964921951618470634107992834566286236442846693786535127968383506759505289734448488024275794479524626798213887825112340408490615324239896106934091798725366395338632300873886844575298217645383664053508122945857942107244737221776686062486232503015657344266363419258855762389269295662014192785764525993224717265390910492827919041037822302027363558726210814585151310612623270047104186136419995181188123854127368399210530301206717558530755826488114185914813959756705891755975536012258287742269393711765581271076480398160860850494126399355556735494335478640722515359738425395416423219928799750697451252141995525791496103029879655485468945695067417288189531908370058976678881726800529144120405460683339132586437667874954446706557064001665841064824980886393609345751518676944958654892336140912304117841082442383655152560554799858670069116700689137945052082112974918158211059310336178022514484894951546097924037043338337276158480682362461879427025833268985930770196027839138977823510961107145161033441446390335120872842093230570545967025540843221642403090112674367783580949278885030408840513164640813270094267043899247457165322186362788022884529762991759732381147697972987868017255933798009205542499959162363235178200298607417046024264807010870758077047032542080376987221303255651513911222126008538662388001931249781630018181661877330326578542390955507891604476111989504392007652407623844505229253013462863632497851748055003633745519772223466718425723477222562194764756053437200419342178428463763438374679246630559141330683423146359205016881070417233490976758744090449279345655163962314971492449367599588773527029667838806954385163635668828101430006933240289285487888177633636386501658107246687585157800481663669831649255930766907988704167661064117144836641014325097002424848205746006788327129953240354642569995556758429867513594370476518805690845905212265628816143548865709245095095828988496028250065678549970750863311145837931286591319244687039862917978762438746467361751009992112090488232137048183563927277472289350219077533551338456557016172551773210044602394882081228430222440639619092906779021189298198458311968352159888017789552873812133960339101797375422109911098971330209700265591386285702186745375950271210794147292676184192680976579773567114781284973716350209865913945364497452574109027065538448560360627325969878693228311270162609846901648260682178192922212938191306194721304544231078887342674813595456128612462255651032576698428967666631865379500166236199270083777252442509527254156958209554181088594738884832936993962480036736938803576536044299245482278749028892499129345495429443833505459321188283889554266633573768898942541070315682458059219555893278630394107684212824054941098333921428321129037849398155254220078740582407905653524045096858904959256645573719118106264486799115279597435715468362978447296745391738254055718721130314515051499233174520674223480029929905783206091048604344742665676302084282211637318535086486966684913982935502545396020669943616737144459732037076467604467082916671729120670189476541229502206596014018643714718538452701561511217117291134910420746879730206239719567202407361690019755530099818062426571666721806289454573822885936324244040419520009433666421129581011409087182400379906572442279073612468083262259415287944068355467991198537567221124684114942918231306385776627628885158995475630378217145200629923121207085600462660687216291190872910497083480282010630484104302843752899536264785760233908480585441263926055092658581463745792050286648537051140503323944745167111366612378211803835997456090787666140801210563586337521084174581481924291901890712371257935283147775049671858542803209055166713762861922237557790451829297973240401816907714732783411772188502919782196895728921937661479113127972861425896133841146833201927085768700874830194890800489450884526811311246624612903871113995718386280993565568216878249394081395074302102441259193542752438078492728677924181282833566106313911954905608468337470043901398210429305039425952454801460268215698955102022440743039792547075241926203749077568078098862441765412070556498476505975960663894187465249616365223331862124549326309850783734013402718326261873323613175784521183914010481190785294357772924109030152671782415019109523728305745193172268109751518174107827131773033589225780347929983775091557558301848601690046711310430113294424305529670025141981944506788662017781226623979321125978902873341449366178199616824084913325293069011583760185219578866432068137599954586448833941401059511478468335930799399032836599717057781689939894035751862022948212834419965066319333528781645993732516158564521446110992670390307524309457542870395681474047686968398315827778675525148954170330550243770147411755804080280117039664657687813880005822596902893017812108543045441623577446827668501852436166216293557510563469147530453821785991318555036072986970596105554231438480960603947269997489752110290843929501224018215699172850485123973285064755589888381542130977816294964334204583039258810733052927513390697814453485087506545225847414544543031541418622509173013617432775907451273763170229625665705360545528516751390894235528782307531665563201031815482579416078206136189644674736738740337924568856260900857921103246240173210499701584310950644610014459897154058371891661400561741983460976514728174550729472846946734906140595092145143790344525774898579276575932635155515136838013145726154213015106548094085347037643554126909384514874729091891082436748673706576373341427037895685617641991678032369027429854271431949618905118505690109554788668587629529420473723464413476195361123913987210638803708604930664026051319262045636803230984647367489205460412772902401091040514791548660633512296205672392378823195739340270550269249884351618216047930592993648266402175203124749448331954568579462319600062058664062356782383859381666460097933463885870259471329981931701559530396707224210593483647962878703427381787599326995378543473232635709812765540213576003688983587155368930299720543087758043596803878902825353006823148194428652016596764341116557260733261874168330269254037434311967038589380342658019580601869717237828864481355428431360224803884164730005083972305021368486079341801008301144651125492455713415354141333296946158796403435217888625266035027808462305317327624256400007181199333840211201270512395975023968655064798718467386935093402198341419891146616280754354910263674888611272502135108728482214740639334687905692640969966368864998806206557447939645472832464691854845137125436472997351568493776834417987569410356195974161188662272351457029122236474097012110796223011399069682471078589349780085689011180261280793502071609424736960491272338194466880346522171880465504745112388157616026907276185293482484737533874094585375654660278229143509188500130278914095358884361876371049386384219967653289422178267984193343491260629555788883303207593238022190201167325988560020339644018992960316948230384349108544215637854882234858889851190149010387975911912613698388811791051237149535568782159887399456955724968608620634807932048918512665031697517998892716023779276314152909165040201647628132727291016508191810850222933877007678546665494508493372857104410174294382258044642950664043467393939797931934070351781937584154308271037089629968040096051597043262081914362036234156949829477958371445788097543420905527705888343176386552629014109190804232636122788507268385686679571951852031980486685402513663413740970239938117209560570479802484066121209769452797981512355822385368884141735515465789520840937756253840412483408000118505223211126371844469871828556295980683430389501689009990943893660005854129086973246569360659914368026803233362008580385789167655287051362627193231768131159314974228331296403300673300744839262296861807110584879851116792138385946893451850262303938903431615738611644943392280853464507291040514500117431932115460153875946959598392784096499447193491412389577251919634044018860982949028646727498420448640871398128599242473693223681625639570616393731832514943668309437042216908655661039563131384008478596819965317622913390018293070371967705356950806648320097414970023036647600810767303145922295994863321632354403845796180595641945879634090705728998965637543068335224452009109364114772543265810178607088008333385688061474745948578279983615608908829393638775466104104516813154262106453049855185355282692831626532067143975831955182248759716339345388748151870127141687103827844337483467393181182434444405209248928315786233181714276091273040008853908430362473335865450553919606521185111766437007020932385368939902370027467254164476070701327966102359613361329034764834975431467513843559188146797805054750674368680942554004698166236293762517804108762634076983939851382924734162360225583444909439632617762737728638514038551465708739591336913003248708471236115507950938401436847480023310794183188172692793965671761159234104374640193981001915648009188273912030089673495449953102082842359165457308270949382817393549770530525485569709030992972487671944341911141759100694038204230106898687719688586072453979209493263195518580430969418428727551206110928145415384993798787743808967362305279608319601939647694077447247030513326630906754808436924022910557563802656985172239252746474268617320780844282559318264004573160542333170321217836452345270604670110513993183611719160742587942850135996570901707262385509393163350276475606736427413077689241470442087581481086227367000977577694333956846314429055883705467371821049629973173756843082581094009186159534046091401307630567583373159779398060311022597872099793789446871659747239406938055357843595012629987257434605245040101312621938286593532868887903264596191667530786020719064843875797670304018638106121930624549319711972630580477321417092916859762055175451379478894194291946533872509765038373456483589117692851512590465757128864796914564995044471722086056288235483796684621736370662152351405525856385732484899013609330008465925246701004158187231619629633647250588609373041246490351739224792626362326226945123790394770332794659594829903406025472199304182856819502989542134430628485560323177671622064243038987476652391075849473626415066841230215259763440365707142150257838469705078525644654190127402849734975551566503665928220156649285185390183754535201750141363396223449089304111478886489277449880897997361763090451223884778496418919513145940017356515009464266139659666120662509538401108616173221766512382816332177080413548175589380381010464537060321583352228806415591656080602317159772547524372795183428717984638334599415755837971025235985266620136233473719199028284533125786947279309554243991214536832742368511527797959420037940527398083179681338891205919503485025715031700091264664647423361637099202004654553418901235610449551585716491467996530200218158863463053061732226354765255112270038043122822624250094611847289883425228551874858941011465509543862511666238084177902724834768224321925041356639285395620910078612817455560194395574222416442309725239170201282521855932699233936943682951730364549435102193838221623855085804859849562311325096161360375776717198740982724375722158854264688208484602888815465900407252442245245510992444823978000598764173831303578096253399912828020161921888788114935399633963126247029909569242084104345478508794109072566843545809457455319047602358028543384925990562430997065095281949977968485293910137634043261748074513910989622480044776206037336821785404588421319289486107851234493461273266685603657036598170028592323130179848873186060207081747452387567136189684916250299208099335214793810044450547170411246912692629156202061683265488305004918727209109089553662673478721827737527027042092237801905873609109186728783619568931274999216038378741964944058388108973419781592083321021496024090313256096699682714077175851942126166444772666378550196184301065264821437285760261830268771832476206883655605994989021038702723750198870356795740334292912155909372526750930960896627491831307242649337652911575724653922113022816423375358843603902187566109377107690010551047388589812370332830981215678451745881319559923935864904661058614178029810943165684882609169605866304853804972336446377582028802925620617989874941545038132762365108083024754077876013603022263653082265308903654629386433559181204151926691813048439032837786572096753684573582332284454530114866549883945452284643301809036183982590032642889146299147337779940227857882141169936520973746285314204111875946281703983714825429708914851862925262264020203005652540004619185430094816483733053081066231701605875572742160915982205496313567952320379729130308506898725496139045578602100974546711693521274977606800518002833810700586426152831489956885555324636331696937095837059113099134014466663256504478155917271456339720935788775846864291577012115449179035119336734076001708974463091949981573016493264995587072536551126053096765254330689421881454108446788815694165065975708273753059780161117833887702891188051921171885384209657751042270266917250097894223329964077450315293507508065569433699878302910449957209950637329144514251671813221916924727982918983683516268623034397059166323290402161120998680861123506462025549142035321997267095515095358637915728494490966045194880422591491081989213670416808087313114560467800505804287250448375646697656598989641678508823985813906956113527367051727400902243232621989024571098200066216622705712464902489341502415963195308194043103973375275628591469804495854087912814110048267059861709876280096189537941977799590852972724206561371421296937413964774866110181723845314530746932742779100848856699040845966094500530645726041333703764689564193570010977024757493055425423152811064173300700484200439071666065304842303095794311185763517263364613541072382724296286096643794606421571233325259492168581553915127039677177842624723614294271381505541772368593558552828926599539086985404169320537997862499700671257897904846741114590367121723192866391721720473066970679457815691999200942871463951128762653850797196048033399343320820540741853578006510638284874495982466248965745010815032297726035202415068364909679776532128873962342040139819520970202303097567907514275203515237037644329583180991444172939972377372614405579261988116015899076210368719619623608809017047127288720008586622064119286132494406256995227480856240691294337297097904445503463924209775709955961347684983551682770461852761767115474677041617050799338880073966495029197318218935308352542864955824938533996689085766811844345989153954240358682507878779380436498559188761590403130687932309971059005342777307512685915905934084252825225694133699135615611230064693340574710808114982068968505659255608853767722586343590815705362885072856134473129292962262701701299977523453786887293953753341925125548208773015721803749812851180329510730600226876362060188812073504173881152843867474043051001984146301443437035958345055729193015153943985167528276639485735957820607122950500196873102686399724413551954737687455224548434742904592975314432378669527452134769884472222812542199115401755119862490177224643134931124490117273914055098509867479172839112794602901183889761990053943378392087412817056396833332714318454034681617664103326695123690288257516128707138531090917522838722445696243502185930962486103618490854507739558383994362918817442483536503569795022987797464293952840555656023404967466672742138526360508578616169961846064224420406602413240074142588682810149419887844472291448985562365329196252111597481895011817295352761842840603402150548483905878685164560395691448484307695313509676564785758869655740611334519725409274775569374548299927550504277708628358993225242176749813814057194240623812050972083113365253674650850217814453347588432115760447809866282834131710578604816167861679198737959064144921464122168334948263050942297634628210515654887268721418445328341568867599086140294989213896262654379649117559544345875477135983910145901073892042600971029870042569088376939742550067469216953187782871458474705766142965014234023751368999200909696905606502265405566050095371630028281463756337559534230129114011957764889095033526077630678090262114923911745761510609134788940866930848500159640932933541895375466087260791481934445638811717279748640488074167554310036433052049410117795631606814959158895616592557411375218489630537452322243674606489873168091864789075746953953396267713808749068305263394950299313566986119778910057841171201238284823105096377156702792991974906553214683434666390746678660561895336669286307221365573646478343691682715373830388919233705501950663074428705249122989583549553973619761665349362941701994080246969629806184338176964081547137094138894620365080893517926078945606244287206681958149536171661887832313555383573046854159838650433787211167332702706001181617165166180922773416876343807978256552227724024692671979576962013595764312419323052135413595799261118854155358722284405806150025752725466762198630196251938136763442181628050948271130238024736066009008499467203752691275281166842018328020652618785147065732140503648839034053284699896772262384176045715336358607756651616609860371748488179449227412595317004367252195734408414094393586468738458096185982937122813631141094578659793691114925767236558558059357753105464732892112205410675750584351319512105238940742537486005024815321275233626629731387037573779493812339085414965028662976206727619857093499166520130507340628853553610707270064353885421200134763402429783598264137347682288429649044635012357103311852295081382671236526275099573509023425319303730823849922522552187014055405725444791074667140918591014659078016050596162697907513925229710336013515859378487023101776366779198201958952742886679880684430832685965747002055644451665325315017154016156596907023072594442030639168322232927495160413578741625086276724045674203408365870649351127222240801088360255801526797587680879287352958232031618458919599213067840077577408804213693816414743049201963890010649625748385284721455354158305710974894510613072249839812332446367291155753047065578319900609046834640845847136707393973340609769950834987278561880256870429594224687545201459090441391585735250838707970462092387153554053069822760699638233582197072163690502910556032583258090249992794559420238282983304058992117428847720667406911915209497138312795452033539429569697215420800322201600041425099986715427116285006962926763933316738390087679376113473194101499983288067591441294214962405769984626976808757292140910160835853436525996753332332232810575540216650725938054574467476692696298154963213020101535681514572336218686906910984933749716311699190654573362242282607010469567857717178921080990331100035645014515468359452516035647165289492737574206556376477184742065971968846672533790842768286665462255189431256669039386860166363104050525646282215719229682603817975509594639105806155998373746236001560008699656613027594309649160582329371728160552857439874857996961800619538060724106682544443007555295017709092219736453196222682275193843914441014395033387983977918735519519298129285766780071865382854415663126661495731465597057293826756494509356660234927964010534038880504003814971155046979440338523926211583568614958859009579677392494911763025021310146951891098341458415081409618556676168659580712628124351249858156674575471843595303174860622334035856623285563446866002966551862395591726374810032079360679468195370882969614092849211684663489707660076347455118764568651123520666233568979133146746907514244474204508462064770942015993124507527639677624396119029880622463151667538042744438419764784942544964390314188424449894817168314431667643966498206528131142856095629421544251141194405277090834017368247514071265750240540401028130473649778909193502964687755359685296097741417090735386842272391217748680724535100935610127779175295909333595807218497804181739860150231169260772729403150282383397654171225421359993705950019331604490708659142090801782496348832438593671748800797745612644044936985700825186615475702979800852037979344008848279699103630090657296688644882096690426250903715465192580631658384460548235666955364680432949362026867629774753975393267317834879811680111481457985246405561284197296763411073601543366125538808748872071082981160822520894766127547919974551923544416347653631848979510619642332564329896877334529636788941562306682979992469952958928115501780042488136793338911606160399348351150569996666677785736060881652929899210170904814764880410041456337680352495124495246052068762396584335566191369147321757284734346365163199931471932891043909000031347249387703529412475944352136603217242267422792396872921442205552001571163030917638443694535589287382938023905010275357089814339593447831756152460508493600020828002222130627178727108215826935833796858701474501573010955526369453197244643193924501530957319852846023429718063244705739508676342781529318128274557867568880630920587018067246912883297553860405244547820265435059249035599000178953428332608411379284853362273835407305660435547956668487686560548819664318007797866408566180893618528117926679531924791561794125329556112265475348463827617123309633541637416557522123603791724693464068510654698211193654563087681991296942349492596976534565428699588752760047530341884554530846745980843744011546077310865884517493967814539041003553005645502932760441709242178179805927628219179508092448681368624344619310747797402833493950068871360852327275140571236653736892657071028084580025246868176438890191794035332092503789927329497036866326456576666306104793601541918409582994293993485485596028016670873663677139866395866348572445985846283597962882667146746881658955977669966826347630240431345744277965370488702611824269240339968608046484615802627973389080941792924649640186927647686745740990280408655478497399875769285792510923504937334526335356053257441372938016893940095743706424463828437449157767865515009231804763797218390085694489775395527350961106250505646595255469232498185709799756839035709258223385359159869574860603972633038154576765014083739155129982023120121912944687813856083222767523351049423325492243653736383700962045391761163232271334615621425357034071204565166938107312950120613471001246549654137287910825775703993415809192899768939844319099505606388336123753742690270604249896536154073012681722075998335813113959009679268961981120321503172164494614288965233772438082269713290286514282587274255365757682519354602756086149192882644023927502697444338480389606452979746196033054944086145967983115910025961327463243495144976483106028250509599641477251019554109718599424967680075615679884767652265378429447040070090122186236760190420645663618834344164503318465505503921709122510019466916252453175283747276643934968162098272635015360170370773522141665579172932285537340135495178264523928367968953297449319117168897671093788382888271569629468180339089393356661728644299922388358138039121717266285600128054470503649651815484183378603165999110627641697681628976042905998809676921933923996521375075072294001765511806131175177766828987974807748381803656889136986761903043991004148913352117877803795317991862450988530997878095300792920159461910519436675254346828943163329188370642764936623400564505640886588063893145659082062275740218156365921627209931282410508576102736114392547325624012499043515812805000269497880282752387320459485928921009411039945578735639447850630720459661270415574805551823546685016057119836015705680134967533920717173960032761547007976146765109492960666479871092459329316727214087343043411354458282662685634183924982398905492111813101922118422686475360095115865422967618486721738081056013959320319101120695650267932402848661655779149283587087517049583417123971224109115305306986395529841631361201586701808205649752700083994425244750688279974237880136815850396429103219915888108443084530897263455360609475072933851857716948346075656513979754123045344411887090914013795415872088202368655526012376955038763515046789427895324046867095663500983625893360909993502667932564286980950715658875587910021630007125191552630346437923569866956973249771738805237549202273048934815520224678042595091918788461832415572300871566054447927446475813597675751117043014252957034031202722109841178980517426872448019548556897282798662521475391790540772442183454961087275552406623706578113240533779680458933683678044991502299413192585166181686371023954250085593903257204912125888663649095913563224446667588773790958872244040499129377691142042591282573009901347901860920573633517621177457942805607024545450191328668243274548498421880933351308244292937557360416600255191921202762052185877052478353744115806287460482151321456698689123643025500634812954734943304604526816285125977791586990323309221291448983731236714071368330383380009513427348144116885997380780797821516536886984824337186259305053159740563852400306215853296708135655296514224175828924957578629619835691568098368306747577363564039338803107930124170696585163615142390898690043599904071007235775591315372241859247181613035810087749481888526236316885208477274943964687166463584476439109782931502959064557921311199793578429152977386612710087763383870986426337116940341796942181305573127904799380869011445947983571502980994326382319050119570416143966026238894312205000025552175684632500720997656401888086665037790930420535022312424507386493957746779848859914938141829654695674489202350552521861096110288989181000095375583375443992444284954195011011898760048515491628072441478588168136246395082105306131086056186460163561323115713181154617556749701837329212262383440888659803507871256496844143722018459594866079894800088104281786496347399558484171191037378036751926991389294761912147866422293091255870036849005716576911188137370162928343126581028776666764361325164852843740267580434146772475980094825700487858430581502836116432742648186051692290880120331780226092470356403178012541457069825324946193946137388620215124731756355791060791952731702019272562601446037395408470061987991750620106842730639171972942530666431672915305516388524321928467212689752064470280829631477415451410912261577377840352100978482755153988375639996278482943866094421169814443666441732267910711864457384110130830770537730819809565198207316559927203519620426800961383331867789337445770867294741099338345803625826141935258424774908194412153064931242293332938895282597984356351084231910110531325521687721633219576865681892061520203922409157694313108688894395205984538318552811623080666674590849870585317606026375620316387533015468033238288604897678136917273467096056329337130961661780342019793986957563927152275520992154027011788795742336452560792544266598717151945970382459261289007369275365836325189064299920775369412209478394298384842614464650993026351416676449480778330940696541944612082307382166756688264436846412637487098095697986098673956564856246886766573491614472311387995001131465048894879252702573731515370392712841667727031298900492834468168138037169504039398992752284527172546434146992929684847391055895527688916525024320668831531439206412911616236225563114005226701646301951708249389698983744237729773438696840857760662730320076415246000860670727452681511186292522601301958681371370189344437242483812043392263868658578912357679725549306965589605583022927862423246533762874796224146401383914795571275249275166389964104388835690487133364106519707845970063518708998933775003214023594184511674044009730813511375411778692203100149649036812084241725166516269486729244020460503842116923621327408057134135703003237228903436461874526938949292135317371970466526427613579251202441369042763982876381824606912352510607075209067846463032289357644779259007170961901926906196864826511344798779151030018442880940934307740023593885463303905263806728578729587685058838770030619948400871513295032274691075942856388575864316968003248725599844665961760262247741640958995960961962683384188707704755030735240125440628604062939735412231571373720027181954097971989995083226623754178722924709545096711724575568591880168765133445544028067782918482117461558288501194768840847938744945075634145907235451407743827440117198430912135185901642788176489477258925275086469234612464116095486953064496520294513731645810259596828573757648747233922729283742478667499150875899866641049473390413332520204746511364665951323461784922958471046062654016819309115106807285770930281173562541454339688032397236599764954750800927984141226964905864517519383699675596407194189294011259202217039832140354117483826743727469545379710768748668019214050031538184526906353229280862045393717948631532816908105339605086010890500559165609911563266822161969909147305482257029257395329329990119256261830714235902395426035805685320925518074875000310671892770354624212672929541791633314864873505676293623800401218185357619872763947839199081158124970621300745169330640338109533384241994628706657539623030146069927916427927998436427226175430080517864903832713866993939369056887245299322989201889148882610935511464280922792833899261502949904814912541920372562291771271302017141317011494606609808767746779632278410368516023236205250687729736700729299723986854654014821420842079233539923289694975008577082961430337806640996134948174787232519624259088948513453819507621327313903253403064430762052787106158712180024420479356777110473125188951377671410206128431031466098251128469423155795242297656983858364903041849266356110065990480271026141095473215197227160562018619336410506563402734250509313252805361510411508408817513027281902461745947231583179547699860955267068843189033219099097559080982398918720030464537365888198902702091034784253463744704914953991270797526252701092793534353892082900698878473160227233094103703609255484561694258561725003602191249226137342571683997843151883839188138421033061154318841005897190809247845635270964450814243294569462496234786335170790325298782294541264418789134637940517358773812014790571200934610308901357868840301851972107881653992409902603905408385449044833465314550681732304564607745982973725966898225543113651526817422620072867700593913877173786811361252983585602828511428752618534033925129681481885094339259718812192399378072025289662390691991299968036772216045076152057356651370339464837890922213530785023187673098976396541367043387395149452456766668813153814433204259828410271527245311694452381842840657199257820055751572855178731391034122791141046597909969770140933439028894630644064164307470728989781057795449269386417121004602852692438406838863497619175938928107931692688274255707831338489173630464886512457621605208091449868296619714530462171021975516259448699070066691472673625607841024063249938386832171624719314403984680753021315759833312352747595081056233494031927161852278041656045836344581691343782242889608807790904322881026700541825174698478682279844403755243625788257571855827473965363236932604980125487167616449522910265638317667632978068964433082628032552610582128059111024773896858826301907233731747791108602239435293950750560973048922676585545509334766160408732165775513733303925395837547049263111320727580271929915689724686319791430487992811353498618864023714300642809188597164176947249968935608253372331419299049154617838160933635779897088046111288541451157788399173569443704395965132317604938174542107289203925500444443493916614425176403867933366731094922618643823898051413146928691682650251855061228410220600009310601039820695060752440648794837069743047782840948292045894901505538314362683997273458015748892503597334197408805145989294360767183440481248343448578942237057944282902578416841474562567187644400601211520521302787380496512240957917811335631907354457947113718987442471627522601679669594362977565436111509171580589349596521426773456570449611214125729731135709074869499759535769012687575739877289123094389518624246305575693562841999427821860435891893499420501329361848644385536464116955638045894256863791692549048216260394974397864740897228687924401899001076474696046437936024905484445973938283131284000847929114253354062793978324739236672234733707136221630035030505789866524004609884018277039410691800535291730868477759018026649870972115330370735593949486038448554237274461328089761408946276783059724458919441663837180739757088730478559723391961528223574458734679110294557823266757441257918228377940841753503628719445007566811242760593445438889268867053281306315751387954577993561178216848152355462230303416935716406792316206552199810022605798946991582892563310474770090072949743857666052742845905055667804942167048342261927637293941061788697604332556103463736456835598625827869055707324769041492368104368244765667302550087747148455411511048166172731891099147909162700396060072170366356148585716954295638777109305979883101426435910839973378858483512793357246371855676738591356927840803853198057653968463447539120488279899877748232031106295307735384931454062699913321121405040740479717848446102841492746181344119787874007373616720169603251566092870052377353627016534977800087650878129863908523045630992519346293081548193594649314507992363296353208445008805444762220128441527473615042796613501915835731418082209246664706145597998142517302443186739850522138884788584282936069727710636316362435934452085432210557332301849002341161713561842004660092255109544462209310555188138253528688991893552349138946476275721007912044505846691106716245346807328448746170787149794012674414504362960209786706142532846185994129471357974951796147999843420046163944350061912107367575800212789100618774251497192096358371881076089073996414533588120949611398730896713138039430617000789096499165176433808138292044418292774444883547112154875626317779810066474397180831221304139978350165587745402215776837741607807295673032292009557906193660554391938403506390038758392841599108915676630119820007058671988612903197322572262535236354603752576014883473102558899392485176367495410404570718828482490493934390476452201664544426358494791672527379188931864644754445282524976466365227563513208560562548744503965420227229388626689527318539469967697490241520917215334876020503392881801369592188873671919429347889789567308886648938362240559135955231746413745584866351464049237252572050769078942214207355664906633447433359910831631232353500245040208993856877019103289645184824073957850691068741848217464846298498571401004657998356963713920319653665811897821857546462312780103757176633037603839216628514340099204927746253240719126799682867830768381695586595785896404100431233733658033820440539051866591157221655174521219259477764292028165691845042105453921477536694935595591721089643337970858290958556217131558572389289066994390814104083217830006410082200814134864001189820603789197231920771306112478621982086590376437804546356754131536703707155297932887416328836780206670597074379215055388314574358390919945355995318287286043452170021563435325448699141013492699664766232327592662199745591444038306338942128663017771077403172765128209766425172639757130628081202352986322762944031003023209547478291289870648845706835632010404499809595685708744972880790024096597403060544458554590072712762919093363744913799065670572127316762497920048815615126935195552694540632684995297599012385562665005237802953706704047594706662920709476846182982781503125070655626044518432403763223540869464496277419009961637776669723864946597279094750534516612601939198825634524970777976395121557121926997041385311069129942190488572692944788297791645329949554778276347919045023176717167169022774155929782977682361376595760984796555706292626792459368654078307406611284839101633600918072401899913269943008847077863099194329069147692020716126296057125625686840105361127135157857399934977164461629894056152842728889838905017086765402975319582071479507110421547685641008658846259999319559558677903242633806016401062740693963993101373799013641141818976802451352998326873136068133917470086317923507881665115836385809802030862564922943819869439168520621606424482053396669266979257425897446744088027438125614510465687636260706267334353210782433503296355442033730574184593672014333547692886564633970930365187707763937198759409767319507093819679880097335029041961650458134075223413001841150536766066601265913950519611380851453562793107598880506735210197128519579338386603186181813786683441175271454086342918076147016146297777664628352686069310870052450334541348099557291176039897407106314112899781109289876677280083498466720419580355218880088879941366048396377037532566458778713814323670996497429013415070926524397823216450542277365425256267154779713245835098314585873629084695538682505677728728635128923716778117267274971592366734261613874152001789280606160052480329554026493126206718801151844235656001272258540728408576424159204565428220036385276357203973964951846503733447665485629446390063760989158822953178098889094565681409239793751238057987048777226727261560198255905272200409394679262047862951754847229303849972706748432346267803102671890488201096092795161015157081566126519270403894566242129614267924695109504026196244644094085378911832140009842719555417864151745576502712611675708893020812937981786613287677181743331957104674450892106644487002415299400784249540564614929660072603148864268009144969759685945465339965895113038881658515744600325228508891412853025981319284530899073225175851097562769907123938205092317366514226203000061198586755337227621194254290026220684868076539190024283556810303909316857414304714209114967026247891219892129077932361001911717014767284443490051656775895237043785575750506652856954512679453535929225817948192086246254406031618922847728018378100684088086265226587169458956519114961885092466764699340191535886813905691002070009093971232243071842800386870190154300157599430796723859030327137989704776852391092435434665697860120887171584015981642841199511164316284938276161522989157660308628580157365244648426520027645973354637607952822196299280214227057172861993441895825991735812649252533681164366260539142932182833183829122659795075261641680068893212375713113267751410763275090075170338018708564648769136726147914680409153217804439702576684130268958786062577746574995768662715327122201269470578192282006751550355824648157248669286617308773365594557172058410551000492869529526448329678892872608996626640198042225861088192817497658203181643118624566995988928234772796278884219292161663047279591400212308522996366621036004519126869940263470921729965170443717701407893004656527012697688927365077408001223859263584215265632972904840493752977600465403933413363394075896397076390531404159505201682340780909158155869906713954285630128814362510252388980401782695767625587014993493413665814641613462982575176121639080179298896485298257758035422089051769838160626196997648713627124950967617927274530183826212066687290695200967043047912079254325002693365520240270931414370134852274893329389690216639372428762875219253439263695793845210609931557750202092266376646615531638968736163832074532148185477381195186640921692844549641790446907033406449051116379298404590342067696069757509726489280575995051526733214053515750223339411792240003517638189792483114476523220831751752139175162607190226686623659254908417545468472928252163379430270978670659411194320804389447545405324423815161399638993728089113870493209725620247583330771274485604943383375323050747131189967934430044239187771862648426074103819455623855175625584874912209228647719868224296363209780033641017111389178629794279740231655002743883818905789489732536807016718719903896071248656838490717850891672172121600957345277430089108200568157339127249166927222005545480858861079060367859082384787669132042127864669744834027670058785913394384121019339811829177338479309227380822773210616590799789884174551288560507623707242009842761748097264036063257041122066801493513892869668309002676402289617440599598065211949853631648593165589908202777861769133195833467599013397637352188845820536358109773698623917712557022637137287275394276548866284956748457824289174261597657166626204206766382431600783886537217910203579201816285595404490443119110507447501236186804021570336232892901893773271944563345827459400048352929814393452228152723958814999555299617374772293631626304810025568428657650233566315926631923844544850693235223682142807802527344335547774952884026997590984381703726614864405678160722680247459422648904233344139202880807819588721966856661249900041154344448750499890746831514513527986809712634176468628012800911014652772833100025718032595222110593879074222099457611477720110549665837489282766622967680630387733710304122608594343894969147976194518531914709141229616993303942761647186069601595895616144903254847026959662016259210102394657949214901845496679197509381291959376272954935036270826823981704958705549661461624011950091025395660826248215135143793635608890850344275728386492967065662313926232372574148113157482681609221160957862857300115046910298232109502784969844164774531151779894524437237234181758620909651685791956081198691408171770986481527916965149755466385264473413862091184460067825082905364666507127253188128860091361783764094437390398333518857635742394962511216386049036440028850704719894047009021852313560538676327380824685111543807132581454617887103752543562814670184485201813812331617573203065853177463469344080247632336957766306666916895183505278602565450414122418152295084842903661393448158078003581334606367002612184183772068709152317041788588845388025748307235527005584202486835602770970237517280590142506170490145486010063505438619580358989257431407904456990544541991246612812225418955859726798897153674665832968906279403422729247811048236233127392792884461636120751996679489026246385068476000567322055892930112563873765591525887048305139481131808417012568254577703575067443032305346968373276636615262048039853399156272927903814786188957344011977510155552578777384152147770114103846292011225425726375317126654342716569046045015282392625551748346236934707464969626497732968683404320419425021826402491014867203163555987184892820363940622201975891400733472462246630591094268574224412618962124223067801083246281701711132073919914180342661872203204283316359985867319772219859485583262189038787454937073077815341290365326714672984820889379714516539363866225415731320354469742619073199426649719201501866988782004164901508824093434580460253871076992763491371579999982391833992214832907587567161797543029886203904268533305872469975376573700555195350666161396701263718262619715532524778279265805741327606561584442201141631569153588635683758441599960543331574243180141870514336922471259223890946951642359614039608149332735804892637818844524189862860123420349585682410825106516470036805096017322008040303028983936477297553885087857460385796288108149848903557591425493840910872048376534283840637719477249463012960901742827484567095970219417595984745880289670928248550163649467546575633722077854611486999930321084797155509169200565170966967661470385956189060574232953570429741125483248404436407591045928088169380330687019301221915545909226908431624510148994729285128026300477448241829128807997361445054268795786655571673778094794309903855131989485372787559385750619882114864199225630877740956849976039120347853751218990259842883081629266710477355185581401042828567922425156123993348940071936017800406265549077504956329769321684610531170156918903237366173553652646953572281798835703399522094840272027483082231927957747165485331709141724841975051614283752918599643201077210457525324768016849404353566277012279209891356501000391257558124491500769281310357197610594229990477342019643071878350216499874940272407882701050049620385439520922054909191445106596600283839470285566888666760344812286503824705642455762258194806745923755143944790363641983934895972824280384652542213696722972800512936230640929005788767655726173818010195615786596092757401885496980861696606586539552216806630186168517429153456936665472269528763889092435063503000437787341447658796818815919597018471236965265094586321533261666441500949883702156177195849375070376278082017298553141987277275258329850453200363768433562080185773972671314146187151182513612971161259913740044309295917211717029444137220125054320709264967131946527291582606597814769824563165206895325810537910004341767741103040780476883427742469860544441670977857764672554297378355112022464025830500441601322789142141669365342978056339076202641915289812527869689721835120292670759974021519167579122724510211488809845373528900038454792064621596716712740521238703182062000669830265242385162959553657981521853522888575784830618115905175736024112036855701043430102784170962856784344844665315295768671595606089387356079942271211373967363704127688638092588362461226633385182405683106538283204556314316141524597362108326487730747594620804487633274805869332725948104750289913951974391597181924317544606471036003815713271953014027321737895425546552927824762453998469893531131260513441920734020477894209226823819201810375369976462509190865612498127178455137722212154160888130434212428928375110565882489397021820334363913411117510657051315632947456243769460273059345236077278172516752769028559748449293476880094326789660497436184770941940977787568771352381639000373539460038665634264247950273735672123912751924039382793798470440608119039545500774191296219730355655886444596632964058559790727664212628922451749188512909989184888568292260395615387705910563112899433800678968438332549200534193927825840382152521600154963343178413331313026665883286888187068420415333731353369909935521340556350592871257576691825849804648529917602953233289152090915860871465437558449730037528945218910664933789291691078914866990889951127865053260126939800950050451854756602010953662729622970739335958959554636691751479455828654909642301203964872811470694430887228862197369699409540739886294905563190323354115549959784902145050338785055920376721013625575248357859386013634222330355176906544666621340681302645196737076700969110645949225663208614496265212298757466553189700521793755604720633197820713643525075633755934541614935963860369558220573050892183115926639947751998860425455717668266057632438455767599610392526256681732505777181305970542596904172666079360192277763587898898258095106688811383599412159258929783035973408466781724063350150695827474574118542759830045597148000318505912682481270906645319537764059493852125671121597538007277774959222595084221185116669307243213034446299624154611628149913358054087372581004507876846681944043617080227113059050328802274818058007085752467911491877001939566430454582529305807573256880221357215448108517197198831174176084433789066672025752644012083132007254703111840994463681970393832915805132962492559084088318431114522257887503683134780124497175264742877029131145276727277967663770434300965549352912324009457886278716355645223142477638979565936908630550905071944929561622493354843113693696348493412102250937146573359666878014120653027384901307603880434432398961643938007603420711473757875698721528606571887300567311099747648199761878453729225951948009838698765245898603759951315030565223926449262030024026898882795870599582218814643754642083833981277261319050505109246693023109292629211210814475177372611810002549971107598772061140401337806217261342229448269989846120256953854333146047062805475036604137160442267511381024795246566063164534094546567607218695368833420447139948122222966506538627994244736081880500688088289128463551909725804946475447499103199142451158218486277273114384664981326820170777893485708610125803509099119294859641472473830750844901466200169153961365646804388059514636069357927107429968387480544328439221553750195411716575311240475369424077414739068584686987543435386001614710472527264119476619676283932250703553290395361455127465972581502199005676258954346831259321160774411268741778989386491669107586487671810237065040274098441879462163343106646249658931917406603804897930009849688688980679982384835904214707689654291559037878425734878571557271577804311513784096487648101929617662424340291887498427819776251905714350824545913070613715000972204531656417602639795083193448900825792850325401693001000811237573041324428180531525091891106586524207421771685286309575055557828859737467698096707291069066580441567689254726215866434894039779170372234476486287707753093996619620231758357441232603534951653652594990496757016253294138150267096043909598311224902177508916125692369346618860707332055934833313089804632779542104118229173993682026851828073381439616294553647895225786638936163072500744991358030616692533889647617435709565684651490910892845723497631035946703023014592742228261390863376972605870561767129972207162124606984715094980817917082946082895017233755672182632081394426596148444886474123578061417739490042213487174354146941762782772947446601175527398264343635180496614579457375984790942007774527203884246985804519597787088862497650587894941833733904465881300921638875407666061185734284797939230425652863808344118263339644834450366116045349299967218154739467706983500868748586999539708562465568612028014320927578655860976068608275535541134930264313474695490631709098752453923329949618537071454179520963667238607493051242437412764365243507576085589096926673975782787985739055921320053395452723056358270799548084623876196451024710722107523373520324300914663450634297448962114106685882578298501937788376177773611083502605338788561868355491427282045767632334775235224223634624023356821859045140739183346012579220342182492034847713804295362210127334401000453262032514382229258195338866653053950249999728550236724161807854555052873705014899143447446053934694315220538781858883546494103184127992239564368157902761902110078076965418908543487528682385416378345889134600668793884019767622073922035981571401698326849410482238006916037804727559001634128562588581964652775866278712910950133158862357620875000183458676598736937062566223677697116270335362912876352605832618875794471946062997672612647136130647398734340369537529380942856731062278331491187949174890263242456999288830550272683618716230971073047473765857096776088210613016952987448650156483043588421418158639864946939638412302792149795220580059342662616533067824087924243060613479420640897825846768248750401984149328393764911857821095284389454074067322364775779709338900515620079633929765055745476544041802736393864008747543765437517027603914138412037541155445557805233019307363975995034186010076371055173169457960951584563762696478670515339600163289142731188558649650643067079994956099993055572079125678074799324680075084055456647826173121650691879741392709698653100251683399603572123711841561716175970274114735170179217289600168636269306971005166552467609571687857110162840778330136097169003724783841133725052475732702408352980249869955000444876960780113326537870353659806363000067021681506568054871169348718245675107962789290032632752663750917482917301916307904165404043012485565644646995438135317134097847227824829175129555574819755633845402390875056860505371433753300419455012595264064870623938800683071200646151054186114248711739215656427967440826740511442648411673165585060150394460480696379713223353935867019918117124992522331738129451440946344475734924497064855998477978555689951687902642714550164463718218868629554526991478149439311890820128101222208159917950655849070396992343782328324501685205009517091137202101685303853057307090261672361671186157356515673906705342726962421830224227744520825095792445154442532390490531802206938413464624911378867754494996511387180986921392412665144252660315281290141397427963115731505975792898320151562582452913796033462987416430019568397964508557769626593061319138587073945948726854044207430982543554919124369368456791689847820263717540389973965570850413769191070659258553709201102480036642057294759019119539209725825711757251378323935690639227715607400624581303133436049241510473433882333084693557131409375246524022393439518374714109335570014269029304395552200070172589587107541525029294507577940313214070467844220829870533857566171920638892140242951284641978164003098158014949597653611458482071656545732347736560187202829581701164015863526339514822786750771000276811549521867937282728472210637680599833684196471023455716040683782630057708515652153963098744940938350393418673601658652419805213350927308833849767077367220430095711761972564561488503993287490787864633981447311873023263428565848267495744167485578391331644271601811070797046147091971714683427696488550534394705406729352554649871335963705676603346901126301153506562256689297948504619228470822103296595773805851909451110769996187883692178592779374404690011754131695916852741194076019856505816170222052979209135524176035268661678091202690057223731087278794626650998302477202374637185566392634571888397355687784220071381158570084845700599891952062032016735830531829579547821803083078735305291400474118886242165072155775073199204526301715932363236775919825801086592294099753775561505419715518217089783128623796859995914185344347542839764603168339212000896785625734715911748293239498037108374038340528295319488981306634269796619780508496639415869508326146312871553438167935058087819013760195830030786140790073353624940968951416347981830722130954635528963470984997067702257764308633470865695682922346370303122920555399803608347252008018444733119848265707035726109453864590117315103104403537416852176862752615032648346110012461958908885094133214719990274197366847651518876364687442009524556013661120951501289664605336205446351473506310786616437922468736057121372346960547992303585173378214433358273687715667407006908385749106694486155111445609527312772029162449768558892523759530020038466390675574150674305881492665294521407619688887177144297994310339942763856170714229464352690631132174208226252286991882412575985230537263819154392400322666241230642884188597453582291360497649519742760881485061798193094014110581757744595898429656013333693261912258546332336724086605298060727530520306888017912668743950371856703299661168785923458852166319149994065701253610642858752178897205361106639277195829046167437599086781313307618318793999165385046056974553197633579153631178077370713937729572100762344178453126327925100530715406962333416042101986598930840738182090381494380147778963499859187707969591675367371210977025944411357986417767157129581704981422510710031996559550444313809095702978161502843450446563851306812350848841580363055599741145349437064846490061790300316912448476285549423320184987396255175218463644850427252748966329471649133435746859402349852154158014921907864798635154438872292385673253420653023516342089667254928598203488567795240383235895187058931021409597473398974868239223789778450265417559928190816283614816158972016059447878011269403946425420443649359074364070139715328274842776464255593891822437690259445131912420590210719224915979129426114015274109056393941492714901076147438292399550426013540625088465940354623414420375500259344561963438082072658550218595118541176709144608189318385510066662592165137927781730035520855932480178094794018023478841449584812917442188177986175913184235599768316051181139745905538762232735076752300158960575132491797719100529519256320626212688556176831354474493316568556030335129022904252757477710802995253430396720601446014495611903221565998748802111090415811344482350677030959628504249925606222045384645920703766599363180421871945722714059770061280637337905424075795032824587680277775012439863033469139987543051679237690584620802521760973626265960686804186937173342670703185558972334709875588758629269446990029788269955737269918480071537815773974254724839254395917984668160042276274202029673333962776844202559132380333914736077430393259717411493442460369194509068261257768715609491572592716845603683685130998662226208373754642607930988431380403404645758690362930852515642785718015885642838056883311189520874543142195181383428408381580325939953694920810846617586940146063179958174372841981389509107008826158535998621128754886709850027182601376694599161360413118121598494845848611387655373116890996936585010966969545042330097290206831992512283019925066636576797589986890771289101209861220540178397645873252971759556811489017080051957894565466967734059610633121759379740865118472617693116036411414737398360744114595482245643190980144385464438474507606980064057131222790020382766959586061690890100466946667478317531403988190198810239745885243682298743994963465659685080211849615170611820828759902370398801626257859664201153808980230655937802278580967807583225872938671423367393737115250217880667339050717672522241129419549718971708443290725664817664101225018070485088540675202572434070864310414881255089074272001914533583794031406460671879931452905488887870633877167330815157711611168944159214574822761947481986806162708911986888723944404536139264507540661696414777230489092917136690987088442873105941211834112643362488564155453896104596476181829936081183868838888246633320997661226572740620583152831366818793004035166963660469034521883576590254674369160882410704455184045804792275671474826298104925365298313830607591120035626481990706069263831596708498891240676565300233704626295459396337370080310137746822081954410222196292538528978915356898589753921941871543860539875153949330130434682769789073316919368654424520968060466805730584274443384652396267065727710708979129554723798210569914384447186186771755771418591293229186140902584717080750668471324286917529131767201148443173708318593708536509917478264723650770221965720127345009202002483278898077328171492552964875581383547816374152168996989844133212588391117212425780207212604605737934407289158789327733365520421889981058012717064657022153699407268373822113205861447693397421918516379112510983826301098714870449511294322138901527536171044201326060720916341572880023906330899890371069038068477229964158521722086256145987026447979023332408823919700795271574435699233221437578477882671469989394307767931574779994873106470137094634556051131373005895085189635735115120409388576611276801629131156499774699130006161534268997693258594768656532210947197001868640255670625128178558040780403375045021092625968709277284139194989044398559975475174857146261865349856792402256185997500693380508072081487309346425548273861158608364407590091818691711237732268562222904613131638492909139310578456181253474732957665793046271150687812272653638929310446415928925349111682209568095543716462768514621222155865917861447550331134763794597168469872592612687228502249286978487058815178176183989350268034188060650332106859340470613718446587541258120331018748000678435780209556736510407445524873712395878530606137202424469716952417506645095062394767654097574664171629369059629949964425454344954252144902135554683847419838842597010886858734489759195898799407861283146803008179330568479928256617116829701396834413865691025514870150076933536342527935441938026940025549360065304582073508757651046223417864666681897368057890620410784445785143640428857850037964559041126615199558281214636482677491940590063807941894239867454739387754056075128113211086840595012162712965403845596710838000934829638112322131852586892905979668831327891470772588646974682392137922112245235456058808428422021338591132156342146777355512669825122059958034973019754825485531214236361057295345827942369532683244832120567074529117449906509961746299005224281024506369230522884782060453780132506207546279745866705077642746148743867414866131861034634202332923827394853262005636205751876489021315042673376596942825764990864037779157084266484834154038898390350936220322337078396911724752415701039690125177387469444708360175502989009468986178544720338904076463299062194801025647132000853810251974975104652528616368219481654808477911394037808505997427859145724389698371906899587876982509004385540265625653155190544024383815738041511438877492389598252813537989087657990902472303934343220739123366690498640643511565009125432500859818623814259978922805348772935294526909820548123015851280520037877228575672739766924337377481212406033928740275914837687538035764953091059741985443215275481286496299608537527911149067123407606190707163680883699307603679255353715811574392390682267474770668101453760222480634952213233747743990749377009086603787376077427372792060762493626178940310303571004669184922718765840767726788476037521505872734421894284197526091193813130424776799029390644724928601926609363562702079710710775291489227532746263864949621847097865172169363933900655369378936722689039726924816479731507265189322344643343609550444399807591243378376609814018050423347708816379884830482440791221626020618874598352881183458682299735942200398445673365016742215493596752452393125376877778607779219381351462695930604773856485916141439667029365329822916602881011608456707085370634741741789576981774921908240625243588873417725399826988019706180759657674076053490295117088377913126960794729494532913635936904107140880136808327592126683653075225849845191903744265834846636814980053611040567050644832518579101730079593690197126267294841907304666570210566201279656458486356927846119398969375759304485401096120593304330928813985567617339482237595174155418879664044266691268060490960071426522627209906697785586006866455101208032051813379067653126532060735905505259752551248938259193309925692558312453669537755134389172952485338420388079276821305980788111338951533414475859518827541021440156286204183374949009620609359250065225883136327330796649406923955185612369753439949094343205920095086960135601152764493299839925433452472449915923052092695312919471351146789328083568134159780147243706544653386768775726139936827299342126689169565087451692201165463108031835510096561248885464204735417607594383315166363622484874757419532902235660555488353647494185196731269654615568059095310236948667432180077280572564771336046115504059827283762559269615488578165319519803241113036422783363647634448708450137193883332788324059187458638761669323637489880095271679798885942534072432151521774081882957852205378774015099761477311367867748300175552512343340806158841636324059208388222088972343936397115625195086330786755721724711012470688345691253805534511877167375524875952290117436277082009891924327426482327711106417369597083231811471149128114684221084538540255562112595806384553391288810607828365933248839570121806928256462578162500479094182104347258962748303972227439290516899366301139381216573040995843752208788230714434806172090703693997998197049859726696237686610666793880567009164037861416002234036556633477116057459675162827297552309043826152206506539453301537542279823768957372669743696583356742539244025066000788035891728963531704049753653904014040809764141801090529727772694405263372065207387074292777366030104824453045871922047777134271610211543196308163040517086666607564311280844062435045486500847932907874816122112951835328803095369050252480575686974389528852500991865296440362711733269536142526794980995178135178984326074481728082696643390297625868131974050268302524500515500383517919609155366507912255509483603349168461210622399183481153496615189930169569579305784958556697483834875972764632484646845340709179059482747220800695629208062736900608399233272390199177380522051375494965078014827025287986000571936554609305001041133230096280442156246277370715824919129707793918029487898686597925389986998672369637708818861280509352413980356443027120554343121983830949650751095999911618448712445426006336786795888427176320108780537108129929782254444981549960534442974543759813765098242091399983341491196327538612084539805861055377501925105509814260274205523141125489597085399999316185641723205131752096438377477883229670447722270530864395378849714598540549566833208485162366829498273687839954402318479420990100919222273139582566254568055617954371351207072030175160465597020645021036363271556698496438983318308145488469529124913005451162565294127669469144475990327370984071776947596789449698606830305600132587806916373691129551502725603120864492709291198228048344986842964991917643544427132759706071074108039456594464271634826110408785612493306987473691080138633015277290451938926592531650592935852483057616439559118287643112241279199986463999048209920327807648883621793214463478398777047841376914113745835945537967850787232200268400528830157655710144430212213833513121219509209410219244890155791190508286415457623906385177097921117709596781737784551288410735720503881199069994805666781705544275381824407299354996217737112545288457209379037845164861109369828566929560812393738568698513529244556955177708439455194228804823854915137331224977374818695756359709728381761527771822251251325523105162503484779088893175971452035362359036541128275150657143192232242842550345929857282979225139379690918530751439431578637079670690022396518314045260573629938360941328203935106110264637718894488570199850789742220208649382262100379437761238237954790900469293579829188576712830423648532710721177410833574881084016161913588200430467685458918267371508744705437246393578136907525891179537626982206930557248166687822472374406765593044485871903058750797403174628077915769163959169472620910848804650999035760342395352658717549910182094649832834213484453908256060086009776894322158660019988424319660897392877070709383538840776879930634766713622339953500748163051784429241585820479524568448876058430558877020711819351628409258424953587826428535865101306764514471389432858139855047865495105913894411845302862597961401143555333921303412368235354939411087183714491935790650821061117502725125017825429462652209737735153894374181445644262717708362343498110666801189668808029188816409704768812187255034642589337755469978636676937430502641284363480468146189317827810891041517824774413457283069322498923928401827171480690280110098743873369301404674174325213751494268867821061685549294952410427958042765275238556142980135006803616382341945082656872891705767276099013856980259447357101929478180405284995191954767327736483673785555633379512920964918743524053316206328403746486500621180801583184947725733523091352010727637453264772990514353536863167670565681898188464766865246154323851453378564503860280504675002537465077051752485142343548870265466825962407937774489764172462034122856329005992640999207400293889568964730003096164711373237427728544829165295685480730545198203681381433449344380884835642472616500664598260803570331104194357789016405748803998469771579771006217998907543823426956363530092655954134827773196105187054477570520150943512238000261283757766095229893143798500082455330618985874067536762575641615991168391129592252200357130465014093493990021037129229330279236559803021103155760386832481485163757271433972700676208330497960101944199693446794451159722256788670783677392320148875476340033530345186385427635299730348936571427145390322587552402342329784000934428135289690261716107109657486204060237488791236437509203629332087684020877116766514791700615946155176758061439064879568624396096670050486898035133077048429330278746576670436739496265071026781930681969278249256124174153681267378772215284882981984551989340951249887802378908151966073935886876411606443060817755902215676364572279535917627984262345478937038535416227158481415102852151130231832363605102217843374749416205789300385873323986428306773130687025738898648552559992034847185901337874375353294416272073372454371896898615236975900431525011774394875203734841729320056011047942176671779019582005037944494207177229983475129173421648524487302595402607220991396705347349944645671459256096780103527215653796587093052153233894421566834885491347730368174532831770496182947347258174863198441608256512539695887538393206416512669285977134173680287042485344043417117737929802019631607461791264150233226858884885651018586958714666616869961409048218418404654452999078145644373582251329811791933584662913752723907022371065776478089257493144971761466247673001656379072717282720304160379715731822881976253484862011270698319931665723512415129346577492687760631289665016206900366608344791677065009393262510631121328551274997378998426932345802197833934283786414305881832510780813465713705991376443276221880676212287078503686189947868184751764070530980831185531894453129059755561711274782747365003451050029711019260898797820882369446237288169954216373164793933428055545623704394078418770074153141917533576935019764641956473729064597285290647504522961225536813571088369462644135287914565551420754517530474566498172934425605043970629514073771566379063866229580581301471226106847854148620933161076598690012377916601725055863263251165392403733471247279740166263552564702946873772825817632194629918739777464430292382925349366564322604999919148034668603586706491671081863156945970805511497713352756816825860969568675778007014313226925261564154168377485936175137980404252171639566064641492567398092755143925946544051538078557017203048695528832872364484123041704716041823889377320460875013001489768731222167757792599729432370403592934016604414137685949258975149329304000302233359902036960258377748899107971016827384071912279854998501545375758338288503624253062486654280050046309593987871611113464357152874963001706487938369314026241936398756876768091497289163545790287390970044041242792251707227463816172786990683286219766524944744425525731119164460184785436316692014308270208749973846089569906078279045334375033620216316027203389768105439478879117291316577280790017108763594397564868835531344488977172505066648871860650327492402919749733877271803113690624308953386823868852163801762504139948477800234211476490930433983292397976575091329784852660825290177712658085148005216483114076298890423246227320140968618847025627050987480318798823768508930751662414574250539598171278766113351958422146113104683496692826605804898400858141497773243207808642821587181618451802094697429894041440566000379745377022378595263104957152504036889631816178973791314950211055884285227205591227668046325172885028971182762870928901637444082919278158951699175985487228767083283792308465874660797153122568887280610867561231011321486880460677935838856789716021066761660611704197321094031810758793121404204941650356562493757015255887085125672209956140987942691953824518739481604004420435571861385658445425827657008203104476524783431797324495116277732667907292674355278468278085282006961472812361655967851058689736241356270637608038320271784289826616454831713436884717427615150622401549305198969769513053473538546117970397402150824709173883097707602366800043393664554250683023391864365456775233110499242384736997425672279589897670373285235087973233922642676992789494820538083465620944077957907491319637943795163251843269505029292362127998995927957617688147559403789209112458718877049890088732443815551141077756940970530326754412569749300639059116863022092243248181729094405556483616191780856670574848461189564371847516104085122187558906649166911398138165557141467345982195539985038278775425654582301277879068932782880312414415506791623205975068892543439402476110113956156908709622369537059264756967394318818599096265564355073022317350052986461054384000643193581670447871234428409902877536344838377940274175331513533829170320881552427486685792606905920420990979815429383701999581951538625106802127712689579162593970046361129799407520982118672183397887339010240471947158663287012765849591552240309495186481319701002773008482678655243652373041160651362053696200057711784235607286632279422231039478559225953220670903647768002519694662815007274963136625130960142802352069196335468397743043293862181746176274888891240426043155632557535147714510391572460200378029889201116026037340925502024900819991209923673337257314039029473061199042094238291222396223118042515096063133897532965919557254797603808762002605717965361005655533057633256790948425033278181428219608895575905442896683871259499066266883822671468172709358322328235367488344856982885802427491786056350443716265424708845101612048922173010895295697300949505540990473007260051074786627949972446927747749681523136306983663010658359865103317222763272776085702474624176549838366509938654934199793892576767395400490175218823689637376941911924973185464120950928873389648881428480815086317388703792721023728011234081826771675268379762988903361651737956509362117273970079270085325545606573331494584083966441670666971261743313787108521840094803227605518059068070452820766982964126352925065068851827748693522618054489645910839391020224541202500514664838008091408616451239112737806162348501833707281298920212663228595976124714244114954034582197789997788917000260332257286631335354344063051261808273360024741879295810941458218643568915987391009421614137758693465555031208433809224196929911137836989985829756688331764341432718225175278610603096646468054493550907365905983086770101117426422775864562419641080321502789434771632529736027704270594244431035428385317449136399566939601929911235959059503995860566737455036836269473136325588563858961639740252509599615077392671066635044172133243117401765478385815857374866264379662591285424828883451143822316853461854707590830275442963980697824931154319694506350101037512453809913026477986524448349157752533898468401458578001640519771087565980267144976933149740249701317995467518756962571057195870228243324827570428651832690052592527948036927548318318753628853923798458930025743076407390161665880148925002306863294317792254100553333716840263523233431731627253996205181990191535443672329019528115993895714410588463019464351993072159239028624828242648852504236003745349601982324309143418702503908779118784102808968262264486452412400341617777472685867610539955314496377254929401318553054908912095164731671256843707736813169670965143035160385180826045834162251163273518609175731585944043240093400289428633715661863969272357745324975184859847876455071981532578330197846137832335669046557636620913564209344877394238445843532288770416292444167625331951798552635071137358312499705307274213567082628037474768700752605376332773904377755620743416152890694188098099663025032776094636661826384122061397396903986195445146777356587507435896416112102619806732719801966135059094824178853343980240937042418490382922568103693395751171502644196552808192510597309694596943014528933814886150739865580549857041589484213825402940098388879136540588292753019322838008010027734343748693422530147012291874089246241458963967335428395615583343802158042901132515579957488993644060471985461443791583262408289261621804813268189354874902172143898384622994723359081845024223689183726328427088180249000037913250051338419861870167339468792993890133805866123703590383405975202404440592352277076949652035522818857564280690008464156237760396537251443284307807235041824613726606317449263798627136083574705585860030432041299571080617798223032442385510245260900456479627605857622097027923271714221713533589890057498336136572831461311856646568290451028307548378548827191716318871749334632789134884018936330776778896199886476435101623823357685332807168688187305332356679932159797646907829800851848772229824011300157629226295873967356186213025082886477696806518296056152052191241601626108178709329283860491530369064983725194875266309962465306972598808293259799738732810293076410679053832754488802770569953275997030828461771017829777895611092579768959713309561896074205986431659495668881968788544417351394489665555758911918413685802624595567352990250458282614263281594201150220629047398263672142818523266694313860542139255317569852366264018575752121340485854065210574001078570390566365741303866688996012930915160058312954797444296343906741367394539659902277480900294983285351115453869988485489004725810876208216341323484753960917986910728687140709022307354216720765594322331176725537731564323290937443733920889603652519244986549092410166280148459412109221627047901176003032031542069669346775235268571679068170996148172283580528297852766595305251567621920071327328537027659968613434822691227826402921553528954446994525743132710834746967731880505826526701790276394780772936484455982378172963143202536528827258580323993910487531534292947712541459623201928284905873123496676521071852029029066415748704955592369848499742066820685422639378766780415590639288383559762784161200995933143914452644718799444305845519358402304437889889819106371029804693522890596986602207642240995853899389933029971243636273193471457961050194113483802137879469023068952394520612219264531931794315532331145433098347135429885554683282749243644819314402373690382557726051825930926616841711186770200040155975687794752848648997913783052349598858877655002069503294594651329092966254040360094516385351008892737814799877937454149959888737271407709171029806531817754707188458484145319366494792764760850955636717912546336780753705389149400330721309462308729174324747767594272189184323264802150291828860800737440058554823697088164635876184254822817924557393490931516167486429415023995194447678146946149767465028060716416944253152169371262881872724393652210117256997867658510578284541183465170011181039441307117431485532401265747505802047351617486808818903582629197528526455798481137101730432086538695576088084678129128310817076334703831889536725356493018118828134678614554988305896809978214984749650961526829977594084369846978353798931748601806183743128837882325828294922620307882636828689370293802743316198084469007350684758251509109192300343054953809841219968709151812035194577205910696049085358583073744152703083370920123365806219026016525716889468465980192501630995077322081646767053275631492150495033003897658294023225241251162207818706500804455273440174180201398089165294651733745543806465575223747815727563609980212217369462105200997876926835846152291269591394875671647899397720923478029575265704593833345026960281643121645812226074680134651168483332988020498921431379758308972690548332400844559330869614441887054492061279986682165554985658614102531872174117180289467606762122776799201112654781308708023748942366658200896282994772241831113101335577451770372918092038321845117899927602634830754679856189721090213655280075081788182248346661081274142028356272664768266940048578915617035307833970774989447647873017205185280537305477336894266622181359497500633339435902924198108566265980057414976775339897238819239708673461546902687811489971216212415998775353998533118991150972027051733592907985830725345449874457787735249272121482073548062766248485992432279146468320996264721688078591538185706325451186632842122160484389440670767973102174958955848515422566256206942960213264671836437617417486359050207148877818618682215784275670787545792957905635467072387587020980388289664740630184734285873326968423543524055943591214578178013203226686349013019409481644457241650059517649794866999278332733939326092446982391814318999886171621901779748901892084259668230034824748296193282110611902412583957638710010120935195085742227846215063220722106182357187383073246906315835394878951272670074468273372449840566004699396062700458336018987581312081316943680067398959367275136485659480234474543215432019168103418214797279318961947370773396971576256266621217687685042065098355029798435791316913686522679189802326718945739779318002026857671687774533455890970995303887888386289592663015449446060421086099413596029242146469210368860506596286229620403480212225479585014280653713372940608946021917247252267030992071383870916506693424740734760696574835197278218722756183592389825135186824569078411606675955812902743519618765127519182980791078255208145347561438051055176978703920794402744032645690702083643820516815359082163005245250463357106666285642273133362558726281412441622209693530425110419997409749507280146245852302067268786677845204228426001476242115145952104925821206056082468018711952321764750641785899545003292190254737703911910262823995859909476989698874235753729934131054546921538302538188765090454567355684171748378248693660302770476502285701779884437794473124541309963992694412483028474808279006626870771949148295904584752129033746201164395002888893126096979715945787432178142474267513692242902376675713789849501734835251141961205655370605444451692189522075186897183277111936429995320097916746758440311249609362502495998139473576896345216709318713072268134998699480070563592480740200179039876592912991058058014672942738712171717203015181732570494086640424826020212106830803306949980388822508129010134047182371050322638199347513857038089480697907094643727940425563290269695175877555583792990676087681676313945701438524393631110432278726422725935367227135844693912804259041784151893261921394769926417283520039556616602142698842653041260126929515810401365209166708319717239891191502979850237997593294529352826722030997965186888426645183041465148576233977359371270518032361072064239607365934075700446597327560984459031803405320081537432046844850683054624560963408692953213333665373673992312011270689470965836616757945365227152223573404158116613121595743465982175019283829152074813953182692581438291630690265880622558722957540429834685198925301863827915764201860471196697399268307702068901346815168144757274063779319183121126275134084368177718142995336112301802670688731697602279464678030925701641226637997714507566936582224274875320618534616078269928535154428527679936890373277964550201070938676492331659893345284647171927612719724462217043279742307741064622069309720440966646808989571859363237975675773324166931553582850771773520685684723332079264231777233437774583308654515374544539174526397556502745897070890376419769904551222777551194054378978997906898501939312885571785411296608893590675268474160417419011754048343037448142846666971135506492660623772513121972894473645378198845571706542620532698168206531132429903752736513084262515124694346073581369102752419865405730150052172154398845088712017414123815871265519494140489491826211424510089648805621408920863606324706836275654959647863638518385908332940514462564476205243278118901794800097349834143875210598477494679411390719832130968695751617115489348757211429629665770913615389082448958032326096072950363606463205142549067695580536343684858245529457487766721025433126320917961171579316529419446649357118953391050695171893118237150132472802331368902569707228030983201930317120750286673488106231873146386398556443198977076105611693845465401066814111680006988141214361496135132611537540796307062196729595341257408660803578834322275747123556855308652686690379504605263517363057321050366085978445998994210609259408973982803664146589851121974808845845355765276675121194638429422748401797163163366564601052150036902117360698577733739582585470997716112035668091869257562183445927201230569844178320963393902765875855242140001895974590646762349191325335113743906972893992907286444071196027224448477447192370626809949268676116633536569880685950906482789871147654548128345861034149923123685091508921150595060192921995337061171860178644439512993948044477467405601357002189661209596661863255548061080630164720348418713647355989337761964891587741866190370864440246288703074878030501640496748074010193512029683983649855073976938141069125193204982210866725749681728997587319638379050506945380248296952690497066142029620855259362252496644526880008085753338761519606866956137831768379484683596350453344089494054940617502903727005674206065556728475995760164753484661487309392797740836885603566111889104746002729187882456794135296425244920058476771805700230650620884897928249991497944685763094505007050697833116380228955327670842345055724003051062796095317651112249537409624839048963741402117718955605267567437649536301043493596250057338822418344908259493068819650482907607763624615233939591455626315625554846307366009257944626528781717747284923050706905840146118170279741436498042890049358846853631731984781412568539209174582796663667381035784096600419802370163768437536858292081211425998867695201442019229455572822843410619723768419085410992181087069275695185632578162357534421247170698324669000417616403246171478122634330515060401732427837220960598309929025433812754550387984167834868850587157912715333445834254017358169368092175126900637181147101556791545369868762434926660513573676480110852559718680702622467279848816018574538781758578888855713179605175827001626306075202440709912424672641078531586591545640052051638019530992176720013570364569163936262910500987890849714803797962267019098916908272072507382812052745777011484883819160595643036912315730052704478334729590089346503836891700899420162429842177986774560174372133527317505109966730370995282902679237379611000099335582745285666392000429172166493743717046655349425524778555109889501418370340034536894514839981049141004692336529178319000442187600610034180243092360722803813093787512750163518449026298012700192469598932130145214781766017970978746925856435598770240794793753715352927832418757563516783926653176533027739717500445301201340360119262020286903287486781489340666935784928037096395540345050177533229242636161708434139203774869660881631931407097451678607750857546353649551591877595392735216985402931678459323832910021667208365595883492191385865105669710082046649905018968152285215800525064888612886806400632685371010229024861418870399925286503834839044749048347252012618612366059397950497596484912450625709556021154292659785291699594523073772633306845130658219913793131315397081477341533440182928093232001876398682092339090358533586118586126705500439344059665449833176526109878435344158115286868341773264082006643855626677789111269244704813201733420378117334484803794721947438387495243155259094470248298878873090537019623668041123463004407285950989004781151768686688300102607336870607864074948373266333258652725504785334073744782854311169361730225535881723726570499738412755114834996095797898814600105111549692250166167369627490832047246595987431545373343026773130738160771566670984743452932364998967687525342441142206949627382227111120619027365611652738103269106609970449442092936442202130437708606272269321800092822389624627875731282059381168593401293434549442874792349547812323194698254302361869244853531480845891626996318849464163311800286522982429584738629014054477090434434407792147528681061113482173246017488118648352949212039462114604339664852918429615355834643707552346268718304976661405587424410765144205442810890368572089076243724052474741205032052277285595616389976592867115936639599484613271441612490231399604120959998320995776802905305284075916134045115948868560485818048675291173640731760458227868781382591413415719808412118335719466475532116718742872708932295742075819099111075365017881484846938462535676275928415706560992518643811575458495559042149016567624748295566915562399269536859904154540215515735557077750815270944079861484303811921834320866822971612176271216794376534252240647435408848654767004914685768205312491241393410086839609640533456830643143624639826021706569660864445764505395326984993221816348276776504201213478296022470723764130193534314376688918305315073895595634264851530977774876991602048039777365869179443132544027482391047298942835368827304691205434606352371563305980964652986727853140926874900730932505118001070940518276961747094928127123204883730641818363641043252433599281001068125780254283446759281876236636487183234910050784616288584164006115325584207076450398000393678314533235906792484382500661424056123247603152122903267258745661293628472001743759744956855154561357558698032076541930672192832486609439134056907896472156570437863045011151666633210208968569307655322661036171871937794889113779666535776299170229227440727896269939870757020501876955072136357659048947553524339887475391899315264435908934015754459349739249518423482927070984373168696649041380511408318066885227293953189596395914532690619892121710954196224646571312692952959252128056617972153886101101951438591606378337359737177936605007842366777038568432337703799750495406973121052374529089801790736858526917940435517257568877681713019235902351108292502738250904233766062387648798518662919137108235599971578642640958834278226857940355871045186992978153301490386971206673179616821663943318067428349981201474521020989156207836130039399595534823729789780958341419335518652726713876302972209027655865207024922531449703630795530330969228701857491984467306301209764450155546527044591647017611954692801400640163280869799625383269646818396970180868651963904903735319770968926272823299484344273884862806556597699927692672696661582363013191308228032940164802173237910254793809620175444372100993682905543805312885460023755626377631733376736938214280701875760883115617982789707784810746202558691376802070089208255136487123595589176768815252225532346450960734315292596620193172434427136533329315868454366879671426705350446735805845785756940630280106881671384808305408737051926226044507985192267903687739671058289170428811392602236019952303404813135971261419289813096189188959112421074685645077257882639356050419981704757385191162718914670509160705566984647663603728166364924158102755241693248046414534547742976996543675466945998100392873105030025033474203086507329543669545500544677767963395592124518229105656490936226512447266997739286241988071782044236593474890617307222406405828105802021807878092016591023746696769694416504227054522793092490168269723151391645438616277425606896705918632297460661616974069213733908351348160412569763902056233485381778899600427503280861927907787105430665288876971510585001015536639214051790536390467744235542714762747614203156529399596108478308090993812855280536113851858513754668525309431300660436822683520526407910574567556016187965312649918951103401794012890222556120420042145105465914583201609344146264009380260587512381175871937955685451817156408267207786248419828215082360733199603451475907004979972710302932645070529388562166065068890407684277970019716170135264479224374914450952536599998124725283068561849087251688605518739321188873823498682619756803081945055938921180860586207945150623276288703713041757187452556886557486583389913073284321748499894682733889022914362164650569555078480535332049108419353192091638511611277398278184954028807162126736965560267285082974544634161841209569703574451210633477163090059305878606301743844424858675285829551853527544882474248833288531587114926042042350980987481556977334026630578022739585547714477307041439076414996788890511111555097252295201855110042995755937250653126561512284790356249619708008888900035344044337822589628133657401357973362777307140076212366728480962027623448092077090871330162470066673907578022154611459011128964815842016353711062237527840328267547210582543686169717244332398894264623117087516392587956643697736362511618084500752725071194350556831299013591234012747831837060253075595439836434442552614574316152950505119444805906672779212952148045049682648951572150318998397023460713970084850465285337383045277229692304669435204032758652754212828939145228506013739738623431315203815246870096326223452050268765821294937993957857274141536707924453207623823120725492266842978992562478919144018398895645667988233203534188074593411510493884729528899790293105510252174862979431358133784182004650674853571741742619941936321272215783048943028358524531260077330238772560052873947586900444177801858640345947937394516329145722294120231865546371886169487908492142713822208073336285701230437858746709949325128215352493857450421638353435683469735086428057263928401368882683827379055638189004981351057940985946005089884811528288929996232310028255663040635176582759953391817983228975830598481785969093343276542907800343522500032777855442520963405029260421065408742591614908130102004139339791639980877749603309741390627085060287581280506507349351400151543169539418359497262348568052749471696264299459898477567016945626118885246076099080238801256968374681119208630479735885928306033463562778957287098862928960220200565443403570205707754244304591343492538682733228968678973664408098799763519689117413587179287879965843978611391346270208759452065365402381235285137808635117724970254002470162133613051426914414545362385557369577126265905823015185020285343673203008283836378855846924803324332253274020247817665663489872926758202767520539127876016204398488079539828143702355983798948649545347101381212034856107176561753011768611717403228202106594192657955905347914337878600743666797379816275932337891691745233003457599889317517982961115620971484368216847942941142239463083798098609849522360182608150642739496013984837998971352044193376767200328627460548179981734865367108298276971086414385386853330509788050129918990014461196307399830338032248119572210169464659749106218779712058840083577581127466902236424545452103179740291127193668250058331053434899023047478402438494347167467536127224013922494789895013263648052655010585070844857729658196936543276255078347644893020792439489247506016985282076117969732443642122000281916294425916533473821693850925856212738356737175150643793563929310910996620653583866933470860624572165930386623960798289454805004631057757779388389168252843809801035395027022050799785436553151494323508268533675104198031539836301813610529192237005068854620162501471778388474890176061377341892413569328431552456175101060225844330547795369903981665764166176781309455858942507417833495789098939318579693970435781791418791512381966816660635497556301090809151737648707024330374385967773206494345823394993242832536359402230391101184642017019276678816056529128379216757358553884671477747313231601871084285126665930761829631784120780379283777602589030080702868160336458653894476069571804083912340682569260173320156293546479283548754757196566916178100362422998188246985611600916915088860209843776505302587251460680803485396313912095098669848112418420032826718897817045251937861460776911343159940470265072872484004729307274520164011845298211997364487466243742609873897638511273861021621465961536448911284340443947418132807574149851723240005139856887384999822825516263393506146755580221487572883058644190417567327447642955892477754319112077605811362833384632357262613734083987990062774127414358870483710782809292541571216383652584733498911034396782058127887361630951936666647506636802687974557699234070736085923596184598659140399318393714471348861749984786796161247475592713610928065533693705664726463374969923228485238820898857009659992944975660166333439211756662416575664337828422369008805128903493551769707680833093649030760841393201090731637743503394616969453929266603676200125568135379561457810396578204398321362030250720720292684201195148261588326608724043409874208360095537798903483860481878065684793105120291200737192611210281359675664031431629478006290463147413496343741239367355518682514075249628043160279920085020120728888081830221904634065628722789990454710593517891185721620539726605839859355292895639100436812785613927409464032716123835581245251310860353623717828438090232918230015492732644078128726304139018252210525094349385918816774631719945374791808889829335948619511667026126925026716521429305730495746895315418334591591848889325055882153291077462731320766877915715058113423604850874730229991601318027901048129596277847339092806557881385528974064006606894698563145040963888326366985418214284452062072492339894825229469275328021802261669651781677014998772911667979526743479717843847430426616770468512898201455463592144310007379277033200702388133404243654550255377586415215729016813188366172498302899547031382754487484685365228468368717096383702946423593559983217943197475877498231681934425658872370385108857557912543659524765857408536365611676860225985703575503978459531398379451033320833951082124690362176690940532323067875739570984726095683012587747442781510197947084022670348304378619411249826258248690883718677134010192076899743521073762317931942341315235694510704641823996146382429258885328889631957829029472260877492146294605584975735355006598564747186286877070256681004060662221952517015060754053925802009027476760829643999073968682805754237984042045984003030478139222530754976888295266324375143660184216798124143075898732561953748764972317149608498992060379149617513756545585590308954856047624675179384438683842156101259608086518246773188202266464422753344812826779318910908845622982789066355728982138709381019998412147792893337583037607100580013003012099568957999828226515535820117149805441932248299969152455116236555910956708553579843514235061569965779333022677617623577770009246320955575187396574418471764166481163735017578159271639740220692369511592370813432960770062792750925149320313993124903357597136919657132131317284340868739780596179802822757277074070121167029311582634020538439596787018119713589323717882697268055203694513881101226937280494672029637727194768305879360369219357180899100480853748719471307782531733249772580498326530633494288948549035584841685962667635407830041944193927148329283858616441602880786461451290701085823158434937692779298204102137678959244542954364027501703756836473432457696232478185127954914787345098197211252662042995279526314494293836577254892049351525988012403071308359505289890639263057914472810681284773209755016353282217910718618861159520460528107542788412535906800975325993759435594638960985302875717181356790831354776885538493150508874844841172439156608318933684910588892764757474079310068267708660031252007182408188642940751395677504444583895238355072883817901644552497149062461932313956967985128053111165154915373628553715153900184589162168554453684371290544507808611517373679411452400490892469893220585353171583598300362800581280181111059431665761944624373451068424012205197334194202998175940438697056190249243562474979853653102222124622397477361525312832161384724733128538441393539802092745770878579754816412319639504221029226902258193276087057206661863137362725195373361133484170473287399068229647644890204086362640502631312550533600814709779777225216602617774394551587351857015648311601437316644068967686387816733619926319906736402616029913417855919836582155629079682796806135750623590296798780824278422269391886572224579179527909067003725112520612211888468158454013518213073114748050276754584105735413647492910693178842214341849275104274688751713645021341375246869004572630218628321727857250262515134808081959791768033471152088764304369920745432359119650190766077213545218938067384711883105835588543640448487681025273174777771537915936144272914864183180362676358694158163638207468981451792112752193334069703592092561470110235279196777906496064533462051175166104033454192484273621018663562339852639842325076894464740113324647692847125356236001876775001439949693496170260692143226750215216302202933410289072307875136504575381342879197790415791284735104299715519422315637243599273402059320712971056655513982728226395798523729953335442259304910201623190119341558487447752671373119466687780713576714480618995137968967919414757458002653315055830859581167716128791277608442909122828435104759987305047421099303324140546765625245369707745554607586345322254344219392827257921849462582220402271492457182101387379094238641977787786717218634503955464773864308917682288266380706127659812350687894755582467182717503587601670566938676520557688491071533970461159286220492398458466237243876126569710428185935730754575442698298718544673699210118730950335962929992984024926055237479349481883400928773694994378389879615341193298893327392540288603733579057336219882070208482767406321862600278630770482971869821893915752742238032132804366262395242571807350493541459454736379159130293855299034028964429975249222972384208295150009649437004272338338034749761056741883146199144814821161287189204729315400200445554905950344579261381114377105997375689562636413834926243696808160033494651326780950530870215043364457758503155310932074140955582129948340122041163462103199799829147399237096577061998458813084524919051880462662098702098176628693937399526306803315521833965255036628855549757995343367570135621250369788817060640395036892025232425453011488937155916428422740527047432119551163651040894845311046858543624559642808437322300928140101383043759922030699277924794663018585081377629153607932544224633833017400424344611874955397469042441133080119951231955945307455941254398770368346985965678230620079626288705134174583746159309131713826300719207274802608516924955787937126811198523638373607473256359767361898170438212680491605269354475776184234161315252382274724711404502712338704969564906735849599496225987961748569024378100756074399900713616086409423463787821060039106685530343513933762687112142200503392298251996668088054821536288896908210368735008079563070929412018413681338339518412818548430480248318979261362359864895189122801950526984821670320130862431099079059552551522773141624245788576407884911177544687052078379316037512602136138950180932420087675934108218263701568088512299943648515912552472065490619061998410084872598140174240405717387385903480880061307707029678817341308199058948973583684608519877312767654107258875595303393699383766083936180817861157285089180165067948165931720975925429278720345389073354955540758433984602804647301840557255725128140768909554882424801917726972987736608219164670878618769568022612894949664163816509848289504896091742402141414555664580032820632328831132039057229371881285073536478369983941640938409604076929193039938775898863773982611687458722721006123751045960316667074478923622175144945314155243879420267897993180360040799837145516339044620080883253230440383415488922678998663317650459962298691505639181236374302094086101733295137093775990158544368581301507974809362924594213403777768516321767848723759936290807404626890336534213762624593666454061041435351886645862131986269706271558436230729257423421311288966137505561446546974457491414648479006759245479032603217586686837366535361279163172787789767562244730083249720998693550092840841122177813645597529452390666694183039086266522940516310788334384247898049810659515531891006954701629001162200770008396533346131562632094408934779950927499097575324928487592882696307112595127508537517521338040394922556573136915761876281292243264397232183475895123355859725167599294108251873866360926885020366250294257774102476970198600526474449614327575403848543588089328435591751169859510233809125294007862351636110184959668991224035487475817295799963935353151587937578233588169811838498029946213936722569464173594491870683987490397687744232711181783840703516625714255190421655914380866827999767328703989859635104319929271720955126395787029393758616404918208444552107661737857088933975330139515248496843724578781611379243797145362949230526398757759588729184565953188390381991940305858630925799687880369794541040475596457970621664708304723981349962793356828338247150905100625249048032777775782504844016412620759150246152415695023049565230252766991273538947170445548234716411214716004687048313956226902859433656927690752281958696842802739523492021144371512502420142804775523460486069281966357062430190186279067801150735073972159291575429850642896853755221079173314793526055959278429651216923694315581273500400660186211637589805931590939394679634147033583808430566933833709367054717088989082995083392211739317940066271572511567248582784754820681585749351417901583134225738207129771358298076591456504744323472449518116161005683256819268739004049180138741783606994328680712936334938139689163310467194429703433014926437255332888120242870832115132415068676089396650462558962396708957779849964074663494491896073624659038307379806238895271929788308690645917658300402869720795923490225197572379323109993845022926830180511964135616627746679318080263943305645505815797496171262378118605293990465906859478876454505166241086006808451147420190754498193369732181673761764682192304175351523715958344304681587182013316808281154943760225773876544615424301285202555265148668424774346342796373326098710079344539977947191074083524338631929532756101925308539731533354223745603993641800833502172285431211761141147739378508855740075730858943563830398812178748557845709918349336210997901004431858411518764392231482058528750678368788143222589836941616510458108012466053909900060608714673291557638728117653616479563341257833383542780630461211066249464045771814961333278962588695690253272983441470678682408473736040918056187236058864600155313316409596242228212540419137033766787416628893696096033978346768215988304585246480005723460363859242624942680521832376346180263350470019961779619649543577841753443675826816442338938539965131194223410360383207007990396548965299652637066909593364626913532498978024146469891808629918203369305863569700208865906451127572686334690576927207569028395391283510153026970102684598547953701864802228409810308347284944931580599931079979982898829421768406485730483394728991073682535695606153281823774321024360092624462970676137635415706077784846797079107501602763462973540813832420486882833494780750230216934930653318417151420527934755229366654229645817009306672130748554400272903945795785434839984051843942415132429874720952638574214825175694008848470868276180751183062309583375143017107019958295278081787167707441860167599847146643815574589132390578492777545878483011017044942307845439612864266566516746747409041575138716916537346444070093411411621827113129873685574182542605041089176435330152396850055320006230573696119662461028526704962558832791845625306658728503922442917909758183279414723684954111722641819679792761496430792575368159233609347720754010661459349685654512057970132776722081229900077237245999254232218090826239561090763648129063302462694178162738873769326395444831935904651424441411831273186195406869889113684054298001843037578145677261798151486101441314636856084349287705847906297083598213498697966120759765236813646380099846727600712714658549976378263751708431467060023159035941745184570358676115453980752083288123464411823767042975198436730245267147714638964188889960599283530339317402394390857735659224864718718285253329273145771459477841371085524177494274038914041383050515238685777729746679399496368381697491505497158507415357301236712431567094210380282495033597130608875097463432724255522120547275908913115400049306097956007550485185450835443653320277467553525846061004394774853921153382380827501045525864079619814286220361256169546795284775448580992438386297061175226044205941471103442309303566479470770474275450859475277897263610654741753515763712695867049747447311441336753255247596573359787185246708939738000117788789829510793723899134900058170450353565838032186219718472838407671241674159958540023551370810317522595821226439360225695143437856655259091280738565546812478422640324737141648090214922118086942305827292063193877154508320717697384784068172962323030235859180024872823617311213776129412208440605530887554244776582472130551714418743387005115475591188977396827648712585169197020976524599786419824213822883655202038214400079202067141843647555641650442542183394314354431834517858516669259307053545699538064292858699951854101311106617982714126535403706983238194366726745052353479409876277695372434914437184964455310546051599414584793246178781608692959901997965325115746942386201086278171045906058027967051300034735111684248337332039295968440119551482230103586636401027031239913988645490698415451045131997007247453254882044424177093954792936019723976443326570250253500556183355313237656337383373270766601494414229916416237832291512065779627057696987494396950994090341696352690463944763895295468978366766910880771740749928288578602343669136371177816719956498158971926416361573446300836796051751313017136921411755600560049811870142762998236033047943994747984223009809315103472879325583132652961253242112071599087499615814035640090839450223322842322722020776315331132903879158429177736385804574402546300181165273653158461076959021555402099659128452097555086275038440023405111259507601421718394209934836490219333635168092371145439525909426247896536671459015523883124260706898589449782482192696777509949494190161164917987281898481628873998642238584210132834725441782736783830543405774544944465817302669689007511156327044067575288589689006859737129764569545400517730710135875986799635958626863294477590766588953841227951416676627998887967119729496391748443821900709450174632862762143210872177852915827418592173265523420216849244826486797289174496329176915718117905919127883802815699406547218334047163149867982981605814566020391903137979970164747431946313516551858786896566362624699377423668011137714516228538064969202173070273403950879684869832533442067828465818581393796046375191570161385735965782939561428528942049643210099970901094210888209793511806739536039337768371204634905965922223974267743899626216729696754863180318961942419415908195383999972972863822282554301408301873240389448593015192900251398928599186963644600611706118169399417967108469528832085394445706811256709530909329182434155729247723999561612530539592808695933229385969583879692487560467379770663582362025304165574327416238624447125267903420407302280049596644737786146646367890603206258443619897827861778279039317974429513614380622657341266106185401740404972734575913978357540997483064778578819133994512660588167272007318782318331360735914697171138223387900706831534132424876410359605421066082933083588625176445781289540298074764283185361270538519023763070538689016499086114681902212365712772067245522379695668907393523335584598336175135060688004985662476077571884245543356965118219734069340516305896151342951474085505484589618665164788881057155776293225557528547035821971925794683261454767586860753826347522993834601222034154194166930881135664619119337252874047916136742613630419299278172188156700700974536739230631508735572264925770252121550690950912494533629156012529510970264581655004532327347058190218012860864301329165458430805126220814888017682421757578404511480234928629737757170727252941492115648743012731832049776044329150328708677347304483265471549110623314933282558862803701399695162810090759370598483325206350187664442910186736582769061992218917979227367490704355510354190971934406491831011043510092737058617155686653108366629750320393191744769943853078745981821358426184960862408148561503865785129431156594034412521183848037863399881122950491542705825201204481055904398883309668906102731425003293363082798131253778116996380971620364398343506956122799998328751944922497667080343090814541980562674621010151655240228217298411166512550170694493191841961822867248176675483115199757987820433182102278176448133791524578881731673279783490853196545564527902786487476570783091397264422831571215451116729504749612446966453901294917504021878065795570226495357001145887902638689198177233385767109085739258172974868888265339825978025659047972078944505501766938880111897833769366957011228965903901108387310958673360289444794978252808322282465341018875481315798021015622803633364845558530895732817442987361395299108332842643878250468201752514773900850269302999101153059230806652643318305247457940649178239433837171555916541581836318444351144547874340756377048118688336424816995138233213420425464199891275101379689231141223192991014746163285286508470657026024602058448225963494671807212019655141418282840452738178435593846887887419841483834214530614824161276492312369296039325587776391533193072181541241027552505222078287906615289810912598055963791737184128072489392423724506810970159644654158311007897501753486452560522899131506052910676206065603196041625744386880286983866637168717927844942450006223295997427708110732509078484200373669529900054988222433816178610106175335014563544801032497891709790357877494038305593306443423907522813604273639024960016407341175598937108285906371400671614164758647020693103922319680214256007234082285691167823980063527833881385939426527169926560698073069084015677621530443925112669289802852119084176844300412293653517382927957209530969747588081042958427136023940093759109038823901875790303493357543944276665188656604910790857691843622530823508339667389538692713593784454022779423956223885443095865543632111171564100232193758800324017164269153127914766050763663977622339377339005849622999745646080491777442187557285161657227624173241107630629161794197073416796026942675742001379179907773771249644172303882958005849774846693622984256785789654246919776930580350292080175907387471310476195232143022274939030253486156000894388250348706314547087367049337299719758347043832142120152066956611153584847820521095557487882139788784226473897889602166922648758089316091481374219656495539101418193125519644458167513967178488246499294207020890093604429005196767486426753036804162541874007837451717745290606575308523863213745104842044973065548453868171637531481864807505015428068761458675197662382486738794363905139386263807788766790605539671808280880934471565532974871503325178383845395380237172634523437676387718219308184546202486209888012353483406799270050342119228420305709794985573426935390867584163965258529198972263852308595331783875074622880690305235526306797506655241963772520032666936529453122558805332874922256444853275401686252888537980685221954646046284089190890292610847505472849290535218934682234778294692167220472611913667802737055361995950809653446732354358406424038969121424051855960229941286607283970157027412582186213182387454707419328896640401872249854936605369391113439271238731041646994882386959361762252556504254967718278369116029239843625562668900664180288796004505642768636556507003433402270876387886737339199758359820720903900727975622920114979352425762645091891197887176779912538335538753635970416966911987176246696081234220467206090373266012425508079329866389810992669885447601567546015559906432587541037424009437145719297576165837046927241108225113564170645495611013086868168496064946499696705551891520903911998721828797199856688532790232040686788183391478398048824580564484709316043351774988501934774259704921339055146915648181902342422066393491243283997900386620627023369181552473171582518297327912620838831652287628029163360349418728339572300597093965581273182050305330243997924379044017145531852023410518577061026893267407371880766741597934293534347465369698712847956035160022088620059581301179618273624786610610916300756661891513020866747866604177609531372093132166031134146803301216672212875053236192476450018084708235908741285350959788363457627597517831434728365502613658489025274059132007932786275379706113110655028334870155612133464053668094808518547761376938849077311117897268742450473263211374500019795670104740817845075397602526602739532185983541089982508765071742737760138527305887120589177083588075929150874714008112810739356342186677523917416979977201478985472789578412434476058850798192197729496186570461903119137470614787675401141840653914114481223097420143146197783503680068607842387396422035597448966075168772805400776330373464774383099611699859433896241923777309917383412314691629170726773320313801151255326798657980198332210134153705045083675705662097768079778483878258500592379214212225698286208307405056200996830546456231793739451803329254231357154016425361792268894757132208095079935662719580786940854441170368511783414273466522038721501730151519310647358787409519492150455192974112836418899238248099774624460398965156138745076671716251784235655624997544744408912986285890983560958752599165862035916800529416924000930946854321248315480793866485113134774511274151829409893211296022236604704326603444950212577263372301088786401268220756978900147926368122806888077690201152887192323770696072153413383670699023324171551910593730945234950329964835559503559044507893162314370277259248075269305161098020480300638626495457598588733236319211885461060876999128084990103301049742955501103486623739975095269210636754183623499641499287258895028895592059786252496049444843718575452565650743903198063378396244905338313021851932227962283139562214073787088837236349640578384660639361699313384349968932943933433597920378478625843012274198554896458317540821188049848877974754226845411877344858840358692537254941098386648250719741707390722630297043545692120897828757632459959560415426872047165712979761917553648895596033153051708549516849714396210107584042095092121994174185396363531134725040187970688761720680115806674259832356942426483622566856441079113238830330723419159807112864607742264376782675012997332002173936746994286236752900699220926649644398635719239882521186901606161692079975401756046306327869967401476471672275740543414198659499234731689439187311443880601977347106142346915426184568948143825006771403110553419534403487478765786848897737320972036279709481761171976700058635409634078851627300402525500282820900866143039215668938216842558991047507938391477624025540459516055940402753250027059850885079728878757871598611743247588343294941407733999718240475864809353821653300212111299179878726988908312008993806136282907590510878725992722176233598137967807898297104222229449009617468076571552752822772313763706669679337316631141305215810186784953536853499342019309460192977153872587156999171769064303818448409131855241446131276826110606465686700367218220829712229276047612041858628378868354507980639524327251887584336674351137968403604588836083175809286173713039442480142078312319694556497481088595235157328952279835476734046526499188463030581785912501721801240052615468781106751651518552393817377270763244096438095964551705372702497392451640294378809891392485704975581973978263047002598208782281042015466925208013952096260341071936214496699672428819759872104535373220909124286069786998295918060647337819062689939539650253823675765848809213304344126036989223239171166704074056319797503392334809911148456663108125001445706403328710888950303396228433386038500374888502878492448095721617142367911594853043385459217338946584683930623123154215625037085083953157814527213467084219057834109119997178994861623374297196048227270301934076089081169317180996869035681007512267654681926727012313110359641532018032952856592124156574258331422470669598163061613126311267146837732052649256861986393621456050863350766616223061298066740275127306412634843599038668131173455813667060165107719231597662660149043527398302082365541378998147603816578012608077062979759826892697015204796368552238700471120786715637152112927757603704397362763659866746268000812493708029596249065809598867728155737505439922120983819682196305226631334034731598061091399156449272313772262402702863018530882447907228689021137360272631453439586136256435531786700303607657542156438932975278410177975279044348940063604858312297906519626740018329663771813543811468153410754276541644277452899485212198452551029142505519673165062225624402325306254019842248421528526438454955575172860487635731353773331400577584440562415979378058640011743976667701895281015492802757655826237421253307006230387268789262825801105358167209774100774732083568640858493303129423798106238424882788842453972773009211683246412366993221938881219931038343279545994084443365081012604629017028233685892184840282538146926431994171106166172546201860280194899810568298180633217634455191364724913835260546876840817819655981509317885770890528542669686754063324868849543240659696613283781175949578670941211431062381349008950363238072559755486329457849196377291240593016195884469329070332420932313905119168038732187015819578622134559938221308129177670720014668960276966352117147238411167498253905618921315133614097905195245392650514581386036758341924314522062432830166398969005741086824793349048317504670482505319553680256988144227365218295706984852892569870093309884921738564642713973134226100990113709122621755281266506000360447451232538178883893880651728384320717659735953027337303295266163361185575652575156223676207977533033244189377438640571606764241848465610986320141770701197521424363183705621956058235431057601573707012134169101649869190700820949924393346135178192028142144551487238852194846152007384014478172334770264716395713048366379846296459563357212274171946291996856561434557910889933808978771334807914948204371857737508460254732752331274525752249895842586492303309965985580356450339216852500315174600491485060132443037249154650967313908862572960347014081968692579270047918755595972683618133390354285236657476267519599134238212608392154276950257493603133258203017487890441361227044915678456391166865267067711185977366844601583260396052640955305365568085296173513780886711151449711672394748473610723793591922801647661934101576865278858561083255562640368985470860564470661294474844507765199788476637653521794321447183550183231492471410818034067679124700476042869629221766591809328507056597359676402327412325128936899434275722356156773297275713347211124040947523159337506048330264331742080040783550949204540568117488243873705994300495998293844646665505421925224749782024130918672835101192414802785119867568709294142278327521743508950267158207143079127745357044574483893951148136510348709011579511394465065807144073713837321744170026068335725245191361010945606312141964434169046329997343768468439514009947468673982851001771017874420908013111760474019597955577930749759648358785143695963176756287475634280174443892000792582788985541331843509049149462462162306695739063841032044289019792825484380426917183275847260310581334065049827014294937309921397919446050181869020845279657554873537668698366346051395918293155944047260972556339316768756522676484215143897215506102875543175440651248549489329053768811981938054492658682987947340548041195422197399174974784421726592090625263364144450921924888654273759818093922602377688060034906429405451132787763504045595438066255101343159664278433554166317385693961916464076531466153061670366798275516070278528833195389165488343587332036999157106243487161632096861049811337491926268934418264263275338689896170273886142688706492848887465327267915310457946727919857817692598533036446176172471449576213371764725844561948660135976986312872570105543189158040304086649756354618349659877067322850599116694096430207357431559494950908668904765447288601085374177808898234041772937946336184862421813311305257873214364994051714223573013990483726683867450630433192309732808436363975684213656779385066752699023902650622294803547000076708122115547241898097789035413999175917884055828310964537027723163267235841567582895769260057850544009062336681520526695508564768625511524509606979302551005174871490957491535805562840588005071572075278050490901960771952462385824609639331768848696426538127942957617496177837275333577255086696397898744630431108489516114768480738892548964451883255718363609199810770406995293691440746293755159113395962729786337582583821096962270310258866646665976392080568149442128702189928336004155096356090980104446788664509939437227682270471254825940612681792545918133008688129421105329757026984798787070552060496471318736302389596798749920492119356145698198147552911290644724511712642422720080821971107392920155395988054453248853371647229213177397901146158921984008897816130494045745826590079990793358943656384255182910206742015583258968332211158676917955513605591031198442767413496499229662767332150137780620099791070520623161110314691735782572329470489768277687474038085513879343231067803363241242687722495408872383984618908868330036928107909300552583011119527640798475911100352870887569680354846235284592403687378549787582444225002000821021813849684166165233907266357315284741081745919951704757868916610520349882277892371401107222140202041710214326788816151076017046653098758271907841828373361408163310840461647112158125705218827802871969649872037420036478061543861081513063240187013589418291349588032581376469968756909388636457563114914679005080926378913423912382731230422022871623211775080329756502571694586411125032223273240381275725408095098598033571923578145717114751285666841156638905983364608027678352992893694128207540321227239876983396840344587959103866725744953171627695289524171660189035393354633827788958713007570638063934596379054627572479664646440324838367235461775486081812516495638509727365071112876116394633663442556469197547541612169557612822260401611814149177075052681562928041391511872265126864509728020232097004753607242058881271660912545188676979896739979526955777122791069104018856299089745040997263788656593456675654852563186524144479422379512194167705309665689657071211040967253966004025954833358580410427172911718884694855613488653184382352668292722710838850664867011371121001216136159979132197561825229956174120686595506387038387634334191408686768522856485327369246754936103366188060228159143363206807522101522311326472653325399746541697816447700030587857083366390448921948818281831867039188117802904716113405240565150768425667980567028309901015014163158953929394571920595200432435839734474404905523479541608584885272623094435022210913521070071325644162357982889201087369766812774262341370570091759178835635514736331326593840667247413092902154045868472178459661946152652688942901126764280938511459053305414111517055679436433859060329096872469930135821953499461294530299436522443587795731117630272345546621703447046967701089383002589708054038200090222893216997717334452177216261748268761252821611788203515586599788739638114219470921980628665170660692072922304191169813753948977595417941402789252716541928118154319922576508155868201630072469637095225089870835815511166727676115656673266248180391047193158667404388788849467979914781890476103165674953004388074488842606160719890193492533490089283693898527317306308684728418461748951659243208315729823213640812245749199607353642209283487106895660129053912511273153827587726506799759920796509360150250689379901651702762244609369463483440653604695109256573769732850864732260123064024386351582510290138059513073088668095677028993263206693799814217956737402222974795136593841234785780743968563946549013528791890391993219319984194222600540328185568726119211444598158757488275569635787655886296072115912735072911461812489605114316513670862826886626539234974933282381830664483741000225001184958508060403331955927540175526333986834369159377473357385562970573736091220037632804994483577095003320292331973752940533598930485621772141470447260162193003182009670379899416299087173940068160572216897867848447271758978161997389805472675008331386732529238225210868277863670047098686838683649199483419790418199367890865427442561875558319146953797652094546404961553551744697731681150508539760279937027808819704373032762495832656519105757415948982463492101369442325519942397054466027001876057090940748354134077750623258227582353561039256597428757677590227857157703908657130116748845011527602603374201424549970303511441608380919115586788442877975394069275076735787604634681272693030885261896220975690151170121084039449921919272897603457761930895961414899741086464457057846927856712828629778123309305739053506090625164327735311478772893291762558784004998221159015506700441442158401999285330655641115831923341149802079144666684590736242570962572667026264533447392141721053808804695339501796433886461188605878876126229763331816643856239254837360524992387495665966371011810443205508208314191582037129857428100346161652781655388846068244207362076577621473306525752792297262413304412940422448790063777223348476256904876329463706583301597626626924515972500745532545783724288991785789322191883020100450348290340631350676056817539041215807434865803569988796718789177651278789839544003453795934698131512016402913196478753184100194971689913183937856664428049361247112759685059318163651470046327534715175290748487710580705365834983867041956971911104881062807729890078734727363464185210850957483793974947398913572063428452807067340178839937063546099920139140909864945605833211540781123530123800034607859517160998167687349890447309305905926416315548815461584042065544091740670408796016803813243728082537094393242618912493107925226924333817389586444683498066821468826907302900117429469756148214782494819945032640168948626629154490601649320439539788713818919495244675829868129815290993008133656487621791555479932602362727645270148577635499465217135292223960338211294267801509860796168099663059647285708973881861143150596390664177958217235066044874958724596106582424887748935410569384204869549500950103244894868054306743459381421610761158099735862887386172663982171234393879302339888167036075108286678709835426027636706082416902972374197058961234994852567160438137840573554677832029216936562183469581696429536649491644333482956268920200193786101215817175656296669397781519147818570404818093086514751423765477240828064554939188433834792569193134930611382423364234982562031572208658751437436062709684569034567632923729012009680319732433571966136586969459690665648297877885271648326446986005573756937996043317753394358338079574316465359221772478086814662885788194941101769220763944634606459398349693627178115150464363761694919150973779927503366052132132864078450779781581321335519151233103628654552655643674436781573590924419458621774023362271302424240188540812524562203590159770180704935697543882932828574947056822515608822696652609504230400664963456200892836540719743693638080846138813012959207199586229263482769528967314930250008509569592677652360905663729537514067109429309486177045683034629973722309938264496866804614881814853718039123448121700831988264339664702716865078690889126562700615513094864993077465587060239504189903782196199322734574521713897102868184037357160702126243440185995666298662834285798197285641018588291216306562553209112744988817590034263956753918180140079460722511274300038108565273775204371507162186072939192559955229174549014851565097521320444044148156682281724363145731724453798404607595921407046271115257636553290955686349953318996179221247862804115038778600576018235048542989612059383108082087101394402126581599188405785672167830649272639678055634329339667887507166839236077759401135729898649017955112127469959975929730154604629460010930830654196803647063138216251823147895807697885311110252158185298900421603873446051744979396558462896449946123046583886848019896201911685256433404975789674933088879576114625664809254698845305547841192590356169482637686806861437535523870222644420977316270402611739707538397060565011509602727549519929957034629805395686117494455457114681320806746929206170538024197442378694693642460881759087337898626118915905842270502493612583655975499617484489332509757358248304358325893716262045774800900770640032293326902246119460582992922716986978218794432626682128985382288773418254503480272946569554662624960500920967827137924388721825610129240111202906293610254361639200746264685826375272642140954384614290503440071725016585284173683635355565614718153937222321116683223788295710687972062245460052752811638391802712029371679626372980205835662158239197052839821695416658345897144529901966562259981624401184836339374796040513130210969638285852549780460364258800197050408631105690782828926706761577051564802089357383748365499174409220566283895845642360174143018339932353034243111451177143477696303624464590054881592829444746076884435458655113172884459400700018854525313515553757185407200837911005139587815574366997260966174041335402588389070153761664644194395451488403091489856217010793399792595217910971027669943419247365776500289616866573124236221966105179479881191727754953880668873193991915200180936854768871446433538074831327808042643266782177224474647519269304756141763250778145058203669912831790828651414427087373857315682318740246924877141163035413896948424366364088825188419523113997752606167924293389320498075015240718785469166032562020618152806284360217280922841498269666649658138236704658355151737588628903214125433597768056982019841634255344262510741786911231096745541004778404967722793338680547353007197175508060626496077674454376733751800182050328994901009056356266928178531864639019231561850960831344231470670326515325271891562951114420111666682638691359071549325557335177437391223272556625137393883635184260328232235811946515178514768958096609271541408392781130501142904568110796722573082386074957053188684208865434478401833403383596305195051738344434646234180414725190475855127791420857345333397974110569249120545589657507693384478166252564818108368178356812730944411633647375868830719681353969610210087116582231762009949984946168149827718371438336690224871103302980290914965899590811624568972746510589296360651662536192969642455376501746933001641985526262672392203839040928244670536720986052445574499316486710962529563872967014504124526041401911468252697063320923268129634247535131069849375757213107440579444766163125785716666160731137764741332393657672835569281172011161850898593574606906483907779884223139291134224096368274616670506951273992418131846988164259864049291245649405670970331477949115405754976409076104763532518919543367472564943019259990525902970045468887046094980784258136561915848311401294040480576646219432732977788976036196181725510807307330093110267173724299418837584995667670292712210469303892255946324032443168654731111402020992184308852319994784545155497304128351892748626601484238711476739145649144387761842408476645917531924974486158486531366169324697356473026574974245698556254703976045044271626208562100157762956663442676137014336202041773658904108964558605561394364344521857896099852423692335983106645789432443437247056284587204176405125040724755746761219282706560964781121431162850163856956161481989945630156929324783210529161561741695283198251533063751905251543046388401606710567634762662224413303770443273397666446598969640035124931174597737665466422678856803011128455380496191327057386908557720255702237823833898325261205071188171890384292073747635049421416559010758185631376683187557920064097932690951262316874231673074036928925825427831934425946456991133414002130781135537341293063671646322653804189966796526312012666066267182455133840438057197693754477957041401956977963348227583814997525102033054072595053395803131299856067618127444076388580010075440860842758166281186836939542961308408563294878737430570781921183452731008345392017354230309333655766732016035907349359189447468867804718827938113527839127685419761057966869954486807471306677831871186201342795691560131154586417857402620775601979611479798340092023068101518183446766583425782712087615529982078285951714409579305019260753318985241619682024776124248827356681381967194075006468847911624395234739386412083423556121038800152504736574662337111114556360708176173116403705682922140254216098317793121489119934743606758875545930413526197052706962514562761253368034376974708692604593100859928979269887757407488773829874709924277158486598777033195350401112297792351867510260005945871529477873763742485754824886144678555463585337950924348410794948590586442207013449073067026082887075518710651719079813585386508556771977649829723213585451169872047725679299806167376569330262697180464092855957530119372534474461698787162825044867254219367653358897900202870680614921025124622734133416646032097815299394659731646671177544924558806394210533473288075758322140475325095848817546696539169100494720196849229360430274487975050821678472100594270096385665260732903714952079276902261817591050150643885373631512342016592331986479753106579945730159194586433600256042553377484581115828911195632163576600727752628719859239907772255991860974574047718793447371347769150438594375290391200465343310416565130612744634630437583603095865751774967768342512748538136144860104373179845903269791883398731851731130502040141295014845425099955478729032871965563035484750970957839102786071396696487253643871388347769679136326929989601825871970489597366108155000297052072939094023343825311922170001263715813590304292436489025143465568897159256741681600382243329425308030032323824996297676211932246433187993516747956628497274327902335083230370974199229526287214317417404579088432905478516399626265215462907073699469776743411948437337672511231736585766582942308989886527608283639204454292175397632081691172911785291792087332047283695940777828194655474649972734173248913211279439074367694955963797527111420259878141199399470712090654379512586332326382499742089328713827736836337754235527022216263129787780619516849769672412236634616423386501464611735277355077899299008558458583324853483014536534866546791441338277375849721024642674705583052287764745738795140391279060321876214556814126207347560467479289129912386628012751247678037157498156577595333133666781003759501061270617898245097773156438983022824810540481671165090356146020441034383276828534817562609494509146518153896922521037851349883819053209487270550962550842516851068011808273011589326509594129484948688656613946196600442481047296637207689601517239913949878298652257380159714972368197194336718656521205061015029859407182886867521978352018672659539716584166738637216298755491983374829271106983638239342312539509486024557228857131130477091991223927845371040150981250760059594939964892629891499427501448486168336337078644854355743429727245515851728677101112746386786116459152085956279904860272442660242485239923377095771234723932899302576469444848604670163523785751730564488037555533486458709612501293559721892936344876050155814940782045483068033321072982690197535639887483583844690266902535689974607505600255142391265242904913172776565227922913722231344010635326492407530431622812295901675024330450093586199262910809373533164216818646277676111490361010685965149137852596583401095291460368523538303986506246098222065184072917274665176508774580259634914625682352350331710802454117346827395052154981030955841140430520952866084512746875903599849962436411938224317270584249021430400125560793445207794952852650328477391563946193047652149520226890145197817589915316142112283153273087809936772693000487217885571604425840998632808493361328435545915015872877929538449600010978009465677565455884164961440255089269016427990025563141258634030748641437947175083023404558694254831897587283599621821667947511962596310819091540448684406136949926029320363210244029976490139490935706810552478107599075702791211370823383653719452930954435681646070596310185605679407594951898125581147894642608544044030513973430377031194536785634520156250850495468048758891828340584407308099651864278924968510503557567708766838976955064906136888737762054458831396220111772548132058062434218071586419589704271082283999419080777231304972691678937717105554867907492863290643139085335432110254036350646648678180865392923290000562985623485220236680038450478609879225312886409306964908400517364639990712388501303272761936972549563555629447808469197061751019449156079131964147544847594056282110587428251936184757161102574990481166643983511827931712414092703833529278907597430047394631564082839676606533665475144841100076797346631588297501252817585817919593238308798762918594863361252750691162220342824895105887717644456801713960425555450715244373037812195815305318899303364668306786178125436499775903804727970606691819523242749657577609236526247396265533019510596942745726754986054190553501262014744955690156041058800874531159377236214720465088040029475679371427410033763405545568744106479114831481840771125268671481914809348383293946837339811994449164001083418947721407769422089535728617316165624705468649285554292089834567595302646467324706273997288073841121209427194579634697637508514069550946750386788152039229837523398642756118254948917847232270694142184101947097694012349708022230899518486695821761848528795534164382932448023354938482097328298314227822699908206063594587210513924288619970651866902370337461034897199746100490225484391181441581400735897955589880470070256492185123629005828669534702811789351065301130217670642991992175865061023295774973113651690002165082554987438659384599075826031391247199341051873399196332878008706988728141622649160720072860650984356614519165981262122326497064950096658226331991470425859460106702805839750137572652824991185156660035551780375400542517214724487418084995887043220710010543004727135873578392099616762182741184701484837051910010867174844427079014047142175490983239201811207797211624933406936445860950147291449470766306869003923504723370792161449900935036869561825362638419104061744365382470155166280342648248335778795443991457238610012364992064823970556105473535908259657940262593076880797513445608544364015950572418019819060501188320728104586068032177926216230567213933113918048600798557378656263060878192635382456971217503787514284352915334723657873508350375226817646020598012170837070217959962569228907932574198444267668745227350988001295905023674684134907684955678100660601939596658617579101722126968666481820739787595989190776051486568249169851149397160483961897498341083119456798676894653844495855489884062063978353002287190274984261617730784846978070737291876208603024746834845228349762630093027810428262836498629143919730204698328787001111869209903809350250348130165580823305197483028042396143626010828079468106546994301251825360549216311674444851231386469541939700618110158324212616961809836131872226585474687986310673459477309079487161545029515886129695541601201006252907007933877801571736820517685181962446223590508447549599630034460688814380510954215324563405258105161144997833298805115913171085649732802003699717020423163654377915034074036493626463872502230495529542951545411954730725381495219740990264336873339252902231051967941625015960058388948455252853854715029328730610214721283726487540262849405692991610632785011778183725125204052674871381388712159233972397528825755194159532701318317111522472179175730673765742576482259171069907733710226240459304403519754257975733517184665589193827314472652867218336909181988205341707461467283022517328968303907125104615390714195380498333230102265053203242668707280001975141128397518003226525530107617500666191966577892922268404995931478394267898475198297699559306572564582727783700351042884747336309555766626771333234463610211427619933448039444202314742951977021445006008269189460400264188141545893553131256858112799095442168312904686953364084158077252731127610332412037508745444385787392038067840734980008279652871590404469513311951665039451617867278794278548314951314349695547757876544723345799775003189923751040895371622276724939499276671833305094433265355694519806404273584738806518392531873547535894446082063201310756985229813624707941361525071537001445209521119156979023819876709482787167858624335546604274559686927496266896315925850005184300796012286769248466198120746566664040858555297339808997595110052555773187922853764136411258875443391410860514189505819063688642258530070331024463864703026118268233069761560140011297725268268652708779018752181885664113049180599295668430255611306231095717531301356210278340149742792563330876588148838252203903161866847525582973241680566577005976820915126509766661128398991113476621243811962828082447079300918070594833202162245087345323916926694762230433658205557984950414482432572714732709794076535153296813311905348538480027939840230573055164920145766289120622603736267464822204432331491601332829794148823650266695582075926945588039913944641204386146922685330208650047165479141234028239657924500075869167335172355966989906271637739357902231381694973390254561731318345726406069297576446848487595509627466749449369103305862370006443520144114431425684439523469833055122149379010638403284923941111168869988671090818778017475296931389580366297068719162790401913010781473203320554174744479479099022932907555801399702568591986940083245070346444803910671978207176493454524547623070712246812490354970303190620152469761937148050285577444441249259692433354557357900726076823782689305296897965756045535521953444443536697415209023002983662347573255071545047951935111624224768157923497889828356718380352637340428723042947958105563961712903837557353999392338316228520513046335523142735843399192327846780147482438822657438315854076145800504117811191676159003525901606321676961205869685961188554752766973671293912717056104841023650786038817955334829478102127653843122380512334396817852960091656230178773335186444379534419739696064161480575482554922440080928622903631365502477267193406229551576781827799099098972463250244856375465853012143945533332099504948360262558429459033716691247974160998211676999345920481927055156630544623176186186284077865506096782002839831719812530529367965087200905184796906023741156739166345542134436189648122531918292138805329802183390627699375697531947575708728402225125686334274375776269176339019128125801005226906260419984692083580718443741208163151569799664785892845737244102374250092993319322139730737855071340034947821137444892502248129886517339006457481382751507061063780879454704952933504376933855979867149776857551367047329896892490456389226503637628225656970076800266607683530322676550398696563599453382707648657619331530694706240205869426989580133076990108389998079774065751594664853282991600227989729463072955414385543361286761220871578133749762912087058937561488684619724777353699243832636134345331345285504642143708671571030767328965907389438505320846066409970184164259803119778306771934841016005656069388420044960163085483001239162446063653498534908454528056382363976771144658281977742304936854458191205951193952483555404826354923389473314410889127758268717014025828559978045168402474882587429207308298865694626314045527977954340076075782711552080592823175197781182737634971369066890716948923333600938589292943224627764767459122619369799140808542935414282451452236199563766875547473516182762757725147412417032880547708363826620034856567454169965279434082753636286779421780048958271787001678283892526432624280032531591160403544024291169337956032987929533887054595209495569706143627293213306110150514424782307272931818303347400009542008251128092636207512652108728276203518114569944252761667854836052918879695647125302198984007297357445509300788882173120121998461142580771084323539533716616558733306402083562772519233435363074371316536176591360554672207687849461442020585087383620888950561361775108553447315845629827711806005863701739043460949368110323705459016104220404762017811655713223535448026328615281814267549116146314379385989420795044045185038013174003138482387062241784349513632663603221395780611463651647904975986617764417138251192990940984110804079629811586252180213071142442960323692702452921610253486883128642154621004376104937172620020001011300626588204090274767172210373750687694165360189086684724782986178655929340043727210495944126963800659530238933813255614434473072515211520556870653636950200798341835160278254915953934185941187474175124653580719871439582008523785722100773691781039238780290520922137146607494402538761563561807807266295253273825471083809626049713267724867265826561311683669463735428984185178385960311543070583980641147794916505275425108931033168020481223391715504567002702840871802324477882129119019658417533548959398743008040901312539582930474162436377962145409046989177627481417657253598277568549701574839603320537299951850998006750824202834691617675491733196858247907171083280980846813107068502496994934908660557461154739591441488995322690750820104837266884323555018885832644593249032114589578683007033386906324697565789337758304881270521792726141410647069794224028500033522447205743303887274366595587212645505327996616685809669189954338579836983993543077157240314679516135676482181454046367605985353788300981336060433185478639009147848335707428095240653101525377240525133119676321333730639743941909134359801536074712233029868879835018462684612707678921495473993007254688942101914243830260577170319104153863695724066908931337189484815691627436930633301588641376078791008577600063292863464592485920932771069222641403431381575052826023904564379667338566684211001597763049878932243405338254976104511252091734214135538948141648832677919760108386489267974027762740392650397849458799931543128196823356192595941957433150890443822043105975845549806869898119182422023288554680231945835559975151589826242406475387497138128694338320502091140572346198108731156021984856783061502370226011596911410649548353870165992798981168672330746846612256076176682975352693103451338510018331303568048465839082078864394009620537354590326542990513082530582846802945491839910365679645972184208529160340373254117592321988013837739594031784251892825492348523843801461481034183544875218931035177988535288143711480012455152160959897651562716785602835606430390211679643551633978221996854692746272750638505329364668111341487636851393080231424601271316078247318912766717700385690270447051425892539036988171036944194726299315063263769875296702006683722129551146204881288268052998624381782371825937345425940867369588513633483323962408404619093151583019830692436004471663854819053442918757405313150974358501215718216911638497826065354486620699423181465408602062533084580547201632011820348157660520795289251606525112683375263663783713385606287818550641506492709815714810163969372178732595994476801400928879820309051612038649328701869289354570963071135600593004304234806336535839330856970978685267047481359785120055605053663592493121350109510975627040167197224971110576744339645122959810188251866630077766520439415337148692837554896964614704034466400380109881781638456519413812222552481279176480096660921288935462253937780863337696352586190887200753724164868399506721697103342710676738719189589708838467944031138815692395054100410530459088117691702646231480093292000330392810363116798155096299285278318153804553410490261168242700318176471718128088498165390994902743043784029897299057988206098413471612955430608030395661856947410719802655730530586733975103396280987360376786248025319198158853222353837609907489331618272776002630625579361832575805446299035289330466413631084006864254077972942636789773055382710426072339365834202548189994601557508710445404842955561229249849248049201457074358922776318699501785416826623349573182222429913051786340656339862416582523020200921000437480170156047743302732563635608147157529154326500619044756283945557339627850710336483890145849431210512905218744044130977136966012770836941247281965316270814940408441035339221401189319920006783426768374921722153813601710917711582016208825202507716651637223645351576483821501526093825195282908612892264675522638173333984686687404721373397815306613070938177292531799843376808992834250814181392403935331198046605712123237113860073574515135282174466951001618610835791831996078273246163830494034569523968533220816443783177529317504028165932039643498262401568884544667578721660220057347286334646160730670596246934680007832778177232132098237474618823824514176742143145056738906927521664033028227845034692247950170721177343084477806241770679418745832517327008968358734208366246609482551461305601636825549478114085682546995858314651600822952549524723499946072134195192416245821509410504932403555335757850667231175320064960810883746550478339207189276627940116842630082724083757109360699372257150091684605522050621799637642781247284769186390795134096499701008816667575693506273338505820317127223563832224479217536634008520762770386034708424611330370831584355545139076417188121207860393499772378519227207382207145512413844367423459504703796568307412545887084494026156197134440283538849964865342124112169801258029766063351337431700761183510972106428858242255080427002591302076518015858741026564138678769688989245461157960971703327243430526814928912198277808547059529825269362466667297885646130379078742401813982392647173797988865226953057391808753493019295318988049484312909503637425811364068845063523539426492978936053814817673327887147853856099855829956454400368872501406132858662548879667409753605037576076647942465748051448661654136549194429132104250623184386987516741754071030598424811168278154062089227552381949159669401582776390475161643651446422131704168335595923751931469353308172146538868654518014465711545129588154584429496210423957630489846464468006099094313084637331689783304921629390197641919650594967091646980935415641482444373699568184121802309753377788020041015098510574420570956175802179819288293433813969558017753582853102747434249017839491928733506404425968661963305242670445405937594144111946087875785147071021165736348740023566671332190637618165354281757704517973584079546965764115085539397118461957764173034909384798284405023844145251849845702470660115274573633915708835977126766207805336577564346164756521864904634719812133335457773631643275316386463264410643825040619542095662697695095906076113999570638544400768903208517247819359683156942887719062175022779381054942953086334904312924174338166249986803575917124689393470486122034094604447434773531332384859672068875907612716240518099466657798234747416013657998320958165273574019750211022506202964734833895109021541764642419639299859488204678566196217060341203799432079839720894293471275591257915297746069327752749617583583604869421891845794272435686820080826233328273678849938796779443847256949567670107962689135817717646200640333304720609894609064019233831532219704872501779195298718000068585938876414490189712412807340334883785272938861129657918584523620934436538905087554628387437941624425170363154937013431838666967198236926319621073619274857368933416871575914947221741080849860386198413558893131634672363010301753008362140488929340953471142538153146519761926661546548947602305505243039985902354210376135150169782765274643273140396127130117422642924398487416375773986342689731819447772436966983522598499191681999797991912503958683114987303783925545771729874084595796486537863069874696560067081783940095536970043444423490415506870822837135699144152651266788239923243125720880797706470910210142079003603982264060386957417121478975641008221148524349187187883752574418004999098278057567537448334170986152214910828720810332910396727922495180869187778304750305729587091464985912031968934458098538148593745228629998427809757000335707766358938482039331086530693308084975085661962499246493564922986008518322305878478496381287292250593936995054750258198037411378829610433186112339753894226866148040916107009597421421078749985240940843037034274184704290410751097217187596629105446636933211976314176035324065162318249535446805701382562321760238667300341776599567072156145168375305874430685360853060354364345819162565629187501979883061809537751391990373861468953949617650992623108775970813890496017273546136772952831496289222151338215821373839034050778155147411840373733100760161128683339956369498958269341853119186398172736035091762746608588672891199771315911780619371208553417152601496360259068687006039930004762663136334970415288379610046662228334262091517395408161912517775067942314905333838551895997958221689927955568856198747132025446405452006970054797578604274832627770541221954521656880312187369101632026459916401635106386803574929097493793518643477851047842495969839412584741037589945182378517452535722795684663599362248738753437901886214444877085704204577201809025066442608963955876135019299081467064974318100728790262996407332258442313603217505991051309688423176884601226196011760678676232691861655912852804580600204616537997284421486954191097782186858567826804687807560411755767133307886277058221647376354428112828002308927385579497740974799777538163415721309655499206908650618733167198343219224278331065353409149684628430156316014451758391683281629554549786097703926865691495098438750831911788854266552420201963499629089365967530624669723355548036686871270010516248728425037740014622517342308795899285945183920559900722433798432981503494887383267724766581141963344787613561235051584295106959301249536877818807178859226261141228789398323397466326713689399230327813777152065342455061850981831476942744442713992689350996268113735849712117474167852082816773486735509439775013053097762049404302946385338137556971820518480072514963059064813046765704267842245333747078617803245690211872842882259967967452480575590044077378744796562909376432920034842772055950190682962429862201514245957949523822849924550367098813189529149636131284433679882186117046454101827632308744377418260436008311814736681887106347955260219189151985943422866580501957891729952261686796681140279730009363067742876423935433254953501925750395943054059168908249051089212056816150584090969277700009592251698209671915052785442387078557984281684426388070496012125881062962077408224647466292881998576493479635200895321558111190731933790526395083003308396383454408911251102630732350540520986415226317176652724065082263429911582611897504684547007669359314090457686137995598805733015143943676050494663178297703120929775706368755333341045554175522373006959140342415771249500853774080413786659488111087494463515494810436505611331803292503221733557640071796296845045005496376378325489107891800534824407439874546326814595584931523409724806355410115585764789803218764075594357646130349501813998727930866353667967621917795116665172574131924348469142455973610113075294895527554069342092322624688225409220017307826950965791246656356152892678761704197465001175208250382928093020438905604719675953564731690971751185503759336596807924659223000237649557975400432313270598082051440080774514377890525725586529882770757755525336655332090500102257570409083619054670354023767229691901840214749387259296821848576120259580179817655374275844655847298953091354682448366131641124039045894899856040336527659988163502932699086102435410108494290394444279717388356513149950069724564442778195880375774400055203139809392953805721436719506971683902339120914384119944488787697005824453400088389281338345283648793543209807290640295662105978366140663873269865909328366297929159296672837755151791739300246206100655461961224042769574613436554869256641460044500642240031135881497091793144078212359813206326739863052367772038859540426855879544007493469029630371514159852410955365807566336420473218048353464047587415626224156239095961266709692257831982067666718283109286867110336720177008013501785057569177362302391380250730314696078284443674725686660198861940477632157784499423932208629491143220231408446018209547806271832513365738011402937937203416785639698145181162662396153560382964172189453480958092562426011387220421432604192263636973581668085678429799772580189151660302111733561664295087121375962571265862210874678149431702687902015949601064038160991194773937923952274885595545885109462203321617756844782015586666976889230809954103397451248228042795400656569071294755708961070824237500991331650175828114486695513860058787101057609754476254484514968882603701381748136644703071795051942655140197893176707793713643680996323322224506648939790814906967234762039723595353325792618710045884597795910342371090411200792965362335399857249548902318066622070709778196044515899841515039312997462597346607990883315515353539603005723892834141321018937689490026867909609165916107851384399708922217932253234373235384322782983754054446211291053737075532009668631410503797736696701074773597730597781047905917942673993740865764746798666266431109004694188758133143464093749937018202447191016043804540667867341345410673168571776269630750586273533243906091680538313534947297183534584057112736302270605728733402865395672677970992299541950396564424972104804676336763299442934708496416975951217797445595880954974577621714998821276729078419913624045230078194023333771701421128384025088212561351223370414904917912227632957255948950303953018414683529285184733035781743536508253355406739531316966649676029089575793084292245930264178200694608218483738034686935099309348680275767687715380377035086134969312305029987111306463887608052071123147646551336420877225470827992697021081417525656131704101821294808885907324067648521809928646624431582246128928691379488890292353291232295642624648480299902425799491885470984076016976373513854512546465381007592867209687159656685364799606015714185081706351323453692989102560790604555000886469773216556169670925473382890442560514625109948819080770593751480772648358419990842970768029163239745226829508869286746534061257720987521567633629161293241404974663851336674160701298035515991249896521448646607152185139388734734139556184443003631679568404906833679298477279369872511981420160542803810095389084126805450464813866211388075290116485542133659031951396868190626669307399178976650336037660223049652399778591114189574840923290581789371716137053107440870960603474514570730880017505607685387907178562734369567356478054804191678066765382946138899565305339826993014269542906949294593272635809077294919088137941507686136985381543824513428272169267768695902556644395395816323400838368389208579039286486090830391173666289272074302566377386759586572884691046230599716307167980504831260913497507045149288938462080888992221010129866579359527880722199750285520334890725825275239917586529487369001651880843156744592553582658952725634182653228279310371777965194864939008095865719274597491413082198102581041820805571085837404289743969753003829801546176969013900919916606765735111363632129388992539745743919695402852414274081668670881034345480649491822671212123207303888429099909366805205759455320599834753092637020761955008155589634945188088630718464883471215561183857932251344703139638115262263816161589169831672901112578238031176004926001308015696199280176481268873286250023340736680538735636146344603298009219883417245630089700375992554916124170519021517814446146645574625600522745589127938268092838282584633827704915478666487745868024942780933311017576243867116845923611724088808547937296469851124453525413698723390301133142911282702194952200666106296800793618784421848717759646493008253737715540194039753845562374583075621047909626428281202659854050283027164369783171299099315420109352638889443881063607552666402111977386994901088010829923401992184314022692689477105137951240793739932971390929743051342223975634210746468863470065584623289308632788080461530834724295500617634377766426564311113867381879479835751006850467137165454178278272676980930089547707195715896536376844980645420099377148118535154296683701401411593071423072714156244508838719114684494766983238001887375146003439719564469837987549088548889130083267465620716560979761876435351881450933131178209297856730653533914206930316379521172081050300785799293049745220126357176617316905298538144857884541478567210433330146202342638886809349021773846280924957077420769023890855582846177635922191133807698895406021436865107878099056375124832390723346011934493842202729915174464173080273523079312852640716041078032859683421852306242176412099527605669499943272646436796634091188494915956647528896821247259147780860532284772431471029028146846201138524538903250549312892129391009823190038721011982362694461306775971268336950723424123850692645264579142129914090017954364925889916195732517595161249151233303935580963896675801693679429924658021281409438963211171005880219132056189027308969673477351340055438537016128924578360150538190026622852765980844928607029506539817328222904290705185360539529330495917872243086681608830257337507395855288166740331113423384330398397264524897873446840422033544701404357622277199942216325978094479971561434279875464511913285352677340223703851944752362028094816697649317998383331570373205110046013539799235801824822156408327501534824644320891391724030822783856884147440422054086009612742458791155922683136194078432381409241964816052823245961840660334523604211177137131192287007290627652150514232498621784674574780193150562185727467465727970183609788003287444430986547153715683062538992143251851170455055351509295126397890756476971030239509324760636067073727644788138921650791429023059382463316845709594246136782393399691339286546646825926897883553561049259290734197719270278273829459480961413228853802294693320945145512118604489692815677034219849789874378227252731117151705154420402358456872015107133906862771511210701222211907877364922607546000495119403519720410464650515959428148205227023913751681691627627212234736310956318530093356509697961712232617065458070590146113475438742591011051160434827406299529119860757692715108641582012414221809526171956841743305401762590345718081144422044788347170835120877476371710582430275220444132638852169764683067263129151232814659765615350713109283601064709025764243564227685586102853383569332095645950176721429508974034555368774591281318841673752372930205663310437191092953802926062747097426183274139315549428510792034964548892684572520979554636213273525583197574704337474508546348920910061099993017703813241012722218841072020720050120714857116472386272153041774613851678807108593108175077916710247345980520287466689174201626116182200885859765268859362218568188415246081172609833192435203709667011945121571192509078735063889007692441797668046227778230653088754288336013151534137318574082918771648101215347041459899295361349569675017453885942760520057878236931651766385500436401380648516920094880753731840343213070507620132576967596681175531989755332532856477777093816171969919631368124154244005830075261437750631998379471407338545248466003000469070133905346941094575351175862667380335247155127905065469685663730539289925220059547559804650927291819661435960533353337365998305164379388936870387353809624682997133161116374794367065475790485793479977623343660216733266227917397649851604690890907946352209096650983526924201886853148956077463812303178485221894349042393169680549094434695799101567409505050479955727730661205860624664827886232192520858499877405133744010919292797572983158697740284768830023215068114422843869802255055503178699858955219385970327099130627920215035221287790383806850579374803059792281934578962695797736875547020753554969892189395416438016340676605919892496499405657803894204339556241540653123276477570529663556832252093282454569368706132704435577188225904556310854057313789984009110839933314545779815031379531399364292142446254802260999335438918946458513161632269510447838452478669083717055017448509825432238370440818231684556738146515551133962490154381827343980829386676629916099552372946881272871409067604346141960679918853212348576162952501978068915481817159438000952011524276466363071102969174216866974878204931261480744899521197572774833942468025808504095047375370984408122789176162798839109780508879078071980011832885311860693511126361287290415638099991495498216457023007790466634931067189171370788059003470018158709218155022374391505779106991311320306030534087088214506809726348247911120183059078401642639640985667206906343779830856573766265503526843267234205393542583650574691289596169947446109483510197254963465428394276471036837256816103597156149709647976169386074336195031874883860940156121808388345578899051828597886466770106922387758693298822096234798953248511555799314423198966929662851726169409399847531623166465450115464289342968177673849253782874324213968881001506857142239195473351995543956456859790721135529414034259486137926879968493230920502326759352913514789006634735263563405948177714946437504865615316544688104334030739112806500144863633910287081081608265304293493386507278636518490853446690013853665761541884086728698550645699077468823384744318023662042813912924060410171891337546212176676204459187725497315585087389625285503261562236512366663567584261259959293036936746947828779965434425313566659582744111980089795475994500957843463013400656415957985782640745786336294381998445855790606112290279967214923972598416461167991469604902059001335259181703794697972576041743971099206837485582075588425498229222908096704438116592119890871078376263635385888500278473587974090262292873944095933424964765024649510195782009684114262743637090654822860428789890503628679647559479707786428569862657743165789497622408428445543976836893603809372615953881162708516074065420502019071138183527006582126655103427501304347170282343255029497981629312904936305055391111079384154298327465897500228390501981021707213921423383785472431273125807970058244451409510494885226046621954288486146411766433325673467521765000298192120076112957307645887140167267710510120152260085957161305047236224556326493326568474351872577521536187843534770029292972828075940578639221069967207315752145193984909743387862373012552941742627411363155845499463367375535597030735857053446679467712436113042732360726811822551508802099402236852745436348635744535492250031794962590145215041080794964401502568142787068948998423745814510705139324168498045819830592310704347816618261265834079558270002386955134986258387597021016796831892160256620886999635121021636613919268541396629559800687784003009975402260448217136176503142771112134753635141602315262578146698734272723608533023753363103100816410765990471725371724505283201019071029741102122256453449674630047485852742038729939554110930202152597432138295788008453106703798655389942833396430416580344022552300345309110794766051123704840943898661163391081974636953208900451632529967535973839512080682316764428522177173474897689326082244379254701826879845698943772554492481865645093041253250242690738030438488421940552730156986759661088616817739209450767505855921774774957025949404572128346875187935955939550040146066970834533184009380203825677319496945695761571659542661648012266301403338043657903169432530979181442008864670963923008270021877692216661282275195316212328586659394400989221800752683381759316713470967962533654061903249524793413766856958012613587202996259253139670135753936973598633794597012429232225885007495241154444328454572924765823604250862800475582408722340636392659022384571718235884768303045819645317987324135050932602996216768853346451892443678442848200268823255109647548791570666958696926654680391490097598933517157708116846817128495655059405588207888779188449338531586569704075771886329012484595799432092875617284781237091833809455869728459339426668749546547080475847034628467425586693759140049570027529947513803670766111495960225943417250973177035325882533830365506523497061271374029191661481577268497612368841757075920667802301946235007922473808537649110374614091903546425028397716394375146949372277683057330555137839390255352542311461683369718222131436337941958185991407815024690238098897077186757082425758253617079509089353899847890926187824717921245156161035242327097699443395716723297562551845265630337614209395240561963718176897084356791653204373697685746018494632586431727608875370974538858562149509045018584931162240070765005102857532655885743576419547216450394405857230439778157138246200200343534270485825236924338950514598627232984848986186874640834439114182488568195625644967364797350229005022555556971725173368048170141070620831721465228683607307064737539120663854809027538033729023126187141625115486690789026389745353841913484754847130007964985090346829919415529182818657229224998543734992798830110329386897472644911119807750579057389474527832963351908241536713125231159883533473333967049828925689289648798526025682046264104142249543784718923747351311133159756109790369324577670747651476912152194481300184929515621114250486290010291702110330114239691887745028139847378487826766692533365395214141475779032828592999744158196636163048615173145370175920628192343942157937812487702516503605078165551160919749411887938170333972426272444754808386953752828520482712602754849824939829976187048784133436330218738085806259271478820542119455033182444060521715403450649001830022775299692365451057889219439170774707157059286936774130194464347710061147351705017775508960762153199225676233767933641696450851453112764003673146860631919504767682205003011193589963264497411284005743156125737549462466275171993225194809883593172093369485901251274825826694802793600788110772155718644219576263167388884146923084275000861784998984369625526496656407059113298372470584414770553109370270550111240204386192222694560061105353594521159943064909722702591541647540905810627340870572034913761782741956202463432398154966824430736262477202648445873393387470355373433652611060566643214358696152010189727382815884594725105057507449064275656299310933443594618111313942147392229858158573643852566550067799664547334506258127571743646005880600030028053391978985703484417148625855951300444242223789121279656497605388911182839785250200643265826947632446302688815832049763810850593457758888315665818864220620720744837166164471100357318211156848100577554000847260167765552738155921587676185215562428067926402163122405890623843852300609652116602483991420127054006845673714609786849182010350767555962881551408509285502789178502032881290136391923944920947557042311089179346255683516475808838384797885998303596735692503453081222695007776788403890383261357722482474189882873366322974451711794483288857325951816967460845603844096551796051356255296972848126133448831872081126789447575810243463461168040446405550270894644523064444043897318190868798591212325648380710680216529009976902300507223384834348509768501806178788076201386313322146500397189097985833594794093206253837771638683399467323673659293586441794205611030552180993154468828781359097514997955434434119213269634885009988735022879310975398140043237114382403252026393400798742721372825026230314209779243385984258721801328075531497238532230594010078505802232514007509187454234187022117727210181680952664841995503078874645225246017658041470418945823461214671461253154473808680890795618571873686022201101045544783754573780532786317432497886321775020489769052218394813349520960172368980789048262951284025517730493939621342842333930353407206145225833118744704034007882069922337327942823070046102650136427535793990744331318640300529422363205356482675832840304051259957788948207718732410820806925431436325466912232090495276344163091351802865156971053818986617921299916435379222878910381418028658191436438069343052130131562328809817594368386168875292960517993653128078260643041866522570186405613977388643332543389086069831933395855074033235037952406524543378627657153799834340538250152686403170259760450042310157140702348943052045200141821586101959323756166661538829776415532555815037878501824997896222536912306318688346532258810074156942135747788863127293486415580545010826384246813989441512857971436243152707803466728193569424805459511119719744163752755111528244753066257769953468044204492278113748881008423318504643175477477005269285382848282699929147989055007135204751428513726546295410019551885865616080639754300318954112740404509426220783705099958406642271591435861112634717539705371206125914356184573195348373181350748104596512520113573842700215362012100381835420256697611182163516101788060305335884068716438096619192483910410379170495412367239159802377165383105201203702359157512937834086417214487209135043856131145452092108609538005073395773833170608633595330990946416455070633507204782618457099749290301124866502311195872427505507578286741006409351439197515177230163160077252846357315969142881885262273189067559486346906022612337275566746918350959199655953870222221506534647761357085431818348151911715577626986153481798183763624773191461068315927676211440369472105038334146249555139817221336734212578783617097088597338757599514676854523611382935265052176740110757256865083837175573341994909840305140205684052019415126471958013445377423152975542917274163601619526271100679751991975512635504800360689953495075916837888123687248674994461716219510092412903698587781258293630136944043933733778597574110699234381062911352402006389634937913740309906262725675786392037160541943137248042090073539633256734998130816300446659461364776735435615319723459733634379441382926755156185114235257383967284112153112481433025483037906511100989566102421144954383688327744432824744611936272251726801887142144413165500181883265049582706045098663854971218376102383664894224281986422203212727419527511997792173479458091106061560142550495078018939485372604376786910675200082797684300630765341579748703553796384516188064098749426994196591085950821028925382905577017928926894837036517707329853130591459962025181399802486243689653783026706479753100893183628617058995149229806999390408521667709688747100187638114074359424216805035923198495160483836449590997361567088167635512790556062603238151691427598210487163906366228379586590607637794640357510667695454534934414147167366920065624925920121312201788567429508315492762658774256822183573570262799156115215508604761044694208670229811733902459807066182883129707327997816206587398606291245628103518541730602817460239694648201416066930396119621694931202813499697876507214347840545632358292920715451475351714220162372215181760530121036338921543727968771198645224052083421883773513462885307213587260074255974356578073736265627987420626576489872533205835973796868939503728855823165495603629256882978409468556607239631664005262854053879620065239486418802458761394043856915426116687098053893710001208916977809507064281100577215039055434523959855089146618773496733237109474991074777543979631868252222056788362474849690134088201629483494966438185530803595705025471434728355631636411525671833186598829348960542385202271977499433395149185955515886485183032340822618177971599656361734792136082480250233539753984003922492250418424822345004384195494961364969816346949110794810499937824161439774151287464755930447190604528123254516597384864550259363855972873201418367818863010900746026627893521345177107469110817350742713146675388647936894323651283002645669126861154957914387616532869607278887144974816613718640080159434785476990809919732014659217376031943312723671057729805271916770053835574611286256210138983714528404546301346702229520309227818883753329012443090711619646902872519676396759297588708068248085808041871017784966932794022359874077343874507549742283475452608862107289127900369396000225159130422336880293718303214254674816386160246472878388537304419719213687380121946723509909705136656689676920595248004704916159787009571777208001388200945168352859892809750770832684611459143260879377822993053495711973266624853009621039986384804036481952056934343174436343619733318883809753826710679872752384207333221705523515643446634695309875493962602320266096715383214252944349141557644697361219585589137033425429863720352288629447975724719622116326469928122241359785652831883543196585246094056965713187775148327408977498382478022866755074627685796502037491040457241792494921001332142555820562165229726537878921791573471842381397001674727749359226882734140450211735685021693521463296447315132340299034294337757319571490386947554673354568426574766024772684200335782222909213196186697738402633206500175015067062729178074436264166580701976805841385597704159163355287138415837838516515052057021192965767199442918747287357977544707312383775161284748964957794104435829193959675673523016796497856543912484927661735880139718569164724271461793625484510255256317804890707895183096238144094454345198629243399039723440225891766896718308140765176509300960273531763660453837476155009317908122702653740477564327462512385799701644184777113658667671895304344495835935463646184127965417968113290769298157289535521907095269741328549337726145175886114997596721808431877994031438322642126187769128348555424423831254123233802692094332186988360894330298335340761304853560352343753366021088349210165007602042301745706236281445210328223625265358828036977619434960409765489544103790432905497574652980446450139404286968361706394691959439120330316410112034491343583582663054938433651608601728166313299897702015591205520152983506717214283846729412569598513896696624289061026672067085380558589688042311252481357828044641272313546593168321230340591906654898011037456054462068021424482017137605915218078475272032388897160110987387146150392052574679385902782225316375278034360310351561981376361421232400135344874316111975688835574034928043909891402766521321883400547969210882262966732001569930556534763335010130809344904374806354481926736720800718419175208868758480466536885803487544277789136927122388493335674093015809605025995261579571731702076902221396843951879141269635027576453798011603741976216463011763225525987854853472204628369103071828546285254955597008205114809662904599207365194493655477148842195699784786288929830440441825867894634288892870062083494987590374368336433583797804257322714890822638110832390196192000811191672777166180776978499296155768403726533492286664100785310348052827280111556020811927679268566702946480761270976848536606756467220828681119917730176879796403916764538529409329886467600774152269085334013615089226232309708015411563724799602108362098818303713921148507087950352287226363418005351149008120693493602019837573901603865986815550082015664290867666982182514601525439514444044355684445540301030071383202375758589144831715264222319809476148314761174542875583754854173699210521736728007927476136877479153411803360047418359205985943771477261776294482157090742616369241458805221456600323703807225420770239317186273643465928953029508538187340973995006674962603313530004290706597880153584033661663538772296447503585551245308161300933028858063374109670143883597961689476556693601347197430990802570362012736351832640717514118446644818386988135056051104213056907252883801561548039054580190042509691383192175775956152297124482105996020497865105047727004570468991541019937111178779485829844105820223009446344373735966117073605273397009048388270365586944215999421867169112794258716645928194824187950220303595928500401627592300385167186478829193621593644882706876378006579328619385595771325239002988051911961661938020227734649532670012299847975733411514994474895023351218259875128003675733057298948737362267802547074684894916978360325985123493985419857893690989955580024750767854012274609435647804847279919082249255052765018693059329455417544462124361274338380656218803446642291538736383920413885528484117335085107989621642404477155756420997862904498607854298442568073690568136243889309991756102128536097174842455977183477110591568959495994120774754483969305358335824741169512621863968195548326604869680020899746709311574513795287651997375974160778314093756478482703688350520852881875256782500250674650955719928832060825256534774912489543255181092911329502420743789187388142212041771218591172737789828010577770704392259759211526910566678664999688917869013311916320521623395367922339376208559488210826588320125990804634054801478890368199531649198060399869578555376002261950203424106589205068130062614680029597015202325839284189280030363680245728685806467390425352800577486627026553326651603975327653252228063910957802115713284948789921996748464482293690615865155122809908697452967744009759852621858309059501004700137782467709931259727861942377288348974423355934512008979464105778109189975642228179866701398196901255771100526400522314317288283678971323717093676304060725226217744635678373439822321520820987783442487609792809926222147198881320236841718976876416553264902396300606725461616808354210937018743714795486080952975848843354707310565889965129651188547932626244777023419850619529620644897727932440059191417937683720986165422266321497311043872637229495519937869886622117080846778720731487634082763280580485502473991469923482363906856973033230339389363689268611364106681508591847053262835711021177797515467617836362002900402244225387700423625958196455921660139277787381127718966045672386808873213933975649425520119887072086333660586998740312072557480017511207180612569354827781878593447298128905541876174859664227923078103413166571019959358629679774642423105510113667941377560258765041672062391459339988494935872900844625618584668439605168311456099128957390832281522514797815945804613385116178469366340163084884831252823736328544792504276506702209313639317281363076411971430003772841086035883003147151589287356929966411937153500618831147495862361359886119630176665037074391988789141728554772147176307914992032467467846601467699056282636786789079498511953817984995986659893645532862677569459391232319737088341148304975961992091836487533675683097434576168333541305975675611269702763802457010744187033700019653853130505253629247319302316934007981523007940354537233026375233553683193951827995659269498391185382033355821520498461146615199342570546550208058061073036673513946883961126911970316891599279406798595211975021632185371878793424905151501420852437667561049230766827459291972454924073102867482476131005933685872262097161534031300988910689373102227225797748388049645957716102763196871450505238205489728016189668428114585468583877790378079870122813505708243954423524726745263376091781395882859491996883282029712046871543293026241997409882395793673825310968323131981218441354258139289158046900364524277116222603827190744509109796501586645254249297336501568201394736601435339806326547843859521508917448565530420416227614050638352949314616743492911768990779420585878698039555201212772597269318766024561803091819861994929384035933655362072409149724796284697757267604740000446409687147786083357818336621854326967822596746385294190716303805410441915122216353142060210766842978295341998066845371990874198670544655099823311003928325780568824127031898247578923868145288558705841034369011092894277316937418172898956280756192450049738434420349205296859189717550231091895057069922091419674093962234372027391485526624881517967736719820538004639770423707370113142601129705063005689809496382272098015482582750068347322895286039022176181464372133372934102886142664997192472162200541267750896959532613173289357741044068332062975957081002832980515779814276290465397757518436323689125783201901831938364406788176754586558428620752474843957480583636595040744319129896653458080820638358974609731349025724678478173308899095103621159246021638662057668004534599240571941387884873334132758691607270846287680982522769352719462962737495880861660308177082084261622898391202412064351126971714844984385731877743531103133624515373640462976383586655806808673809096928487323749044800218171344897468657598021576667324655770950972443571204327540014704737928572216016565702257843617332217515789510052272581067049807687712977742330819078143226674823011055504910401056354423159580688812958639784479187313460075601185228357871184424409177885393938038101054420614072338470407023180546581716170205152667049490269158595474493028904131670915508174968726628556690662983104209788292845000462301549027751868977438651512675059855808499302363372481650864742691711123686815843553935539199368617373647476386098132963996274849043576627871627589926524021308940514495434119924159049136184998115488103242469035819157982256688603032541163899135537666171319305111704491531471911528011884491684912839337139715953200651568610473625648266528341092686243495394513731055124124101734874819847273957899182407275320494923798481428482761763379476797843679247628956795554262813214674689053948112010275064333420178986380977084064811608475646482138838962523188202924529419673976849425746599517794994597657652532376388782592214087740336263536126474001259083001962472538812309775792647765334403760192759457342803601384444752038226140330027336947606478879055043158952099799136010185453210868585876931518776117739008327112431863525673794445173807861922352830700667823084658002994113911262936599550951567119801555887668175223760681569317309643587368429426260432682111836258624006066557983742946371926767344931929781237692995680932716049440203999449696094885149107220333786509161370698690423077445004334643414771212254034873911241233421382012041505191059131240770575701088168644702456242057933477583976706539182233217616311257679413820391983171885811136426472083336663670491656819524599509294575122533290115847127755259562133874254790868721809605659684625814066036100680788964250955696486244039548563714468261942121394776081873898670417397003685001780719515178948795729939866479047474190375367630352321034354594371044261620946107332179502922116397913881403658064229401762909813547015498608133787985010846864192371985966247966797495700435481129147268573784122409296761453473393549246836093658917628773494678799718723606116276334433857400767593446982526467131670389723449422601446301135048708066050263000896402309148913258665851024647081965746516504035893013390759392723764636206274915558464015006304493799654748561522592796562155950917052995927150697921760861079726607954205207933566276482343175754111951742397818469678418082389933054287936823586235120293407692483354220984863736101484295380304921002221314442320080830303185914545171607410375856625274074471182518854000817846801061119198810764047788329948265894209288814076724850990329662479701342329529419114218285007334032672290235137932596373145187754473484602550894958518551371141632552659232632461947357315112804401838651792171764479788104763539957725257181144170227652655647318157304738065804767045160093403102477832407443016984663248651394000694712314721120716886826102816076652249740453099723383660531235429408163575679850997833341827654666533756746002334150502234526876127337977733514983481566189369297429685672811257223559249269492727299929516590377438688242733146623683935941985496619632100233279954413982975781548171739254215433894439988161592156484860876435251654558609036411886725132446897864269678136637355050834061282745367842219871015664574687331360905387616476635833157627233138660465474674666183593606872391676098507754851316587307767774517043803771325967976808026095478632800443400867908210079432465586799826544334287641568810315056871291277056668866539826282878844568769968331802007469333104447656925099701212726943345807106672093927962936979973678193725952990427587900100440107335369621346312986316099150000293360532474881498762150641810124535778816806481754184202286456318554502494825349958599697030394065106254335860846526669384038460431775384400642235837631476920846728288889874926653751758008659129031664462048299438550657499310719286753737197926836096414089424562668456721297502782692026539221553212405743027229373882236831038434525692609476229288603209654287810823547521275132877539257885572192062506576894843355226470104154826631595642739375673058411387967274712558742308301605486604724158714408648628392637445796693169902802711103884227285999687766240335489300727525904485266223565621510792530732413970062321548499325354317735555237178304567113231385528602517484455351245615651408540472419444594239433946334362991458960169503655642509380927309467820072797901937557794832509202550020732914153108224446398466487947622178517436460968640398831116760783964911598257704616386291300166393584699668287967308814513370696757676763773833709028747313918721642769051710337657593449837388263416410580287025891818163898778503058183426978839632410961410707960574038845613536234505530882969989532630209131876075787363498398974153330192399049316023163398224544474909573852457054005684195028558913288801038632097811912773617088501503083678375633494675418751733906147272692885643627104832446620436668427140403876175377543804816991544598693930471228551183769382187575731708619820753962434941579367286293710308395805989032476202156252620760810090797172865714385397988841915116577143252696873727315774169863521686571777006073896613680059782348030458862378062221441917300189360505844877557264040557877274339227820101264183522968835154634946369480913834056661331227348966284438652941097448001968528288005250265552211509701158056683372625585308578089772109648712277564634338203139448529883430982513988627796280543346170722605570496677897681030700191679505632413215883960587255356309566026441732938828286980286689169682349908134176768836949491072727873468318373179984514879663923283023846954142893510813990661824940405113255421564568121328764839087319421463470369552460703356493131964247409908246791324275190873525289905906947833173234923177026990904522675122073648252556535952850457915447820217482380785800189982391069081466310107252004820860297696904574362476686461261658673892409444758271465097057177177072215703791445628222942152265863747238885636397277132345920171219591242902900254483170079429574035311401893905090561032226868715152020848163742148031141917447110599211743342186555073971988322808153961603136155749039046939336303075664708200830349955936444185565406995965030682076917620902364353217829259677528258424494711292430451795927040190924802792240856125318587928600763269556514428571697960084454005800682837380071791918771575507220303326505039139636715142664232771979175622107378551890453146578046242989390604961947133360646563212641316955203074787828880385687003398757590939388163402146529927229167003144449420566260645981611213162360410992029515854294356409735599262942396010355996463704810577013069809588890035115278556702242377315518011446407265896406572674304887748498812380879280621324096021313763377381396367944740809062812957427212759332679681680476729117638999105015552622289009649081590911246195341270848169236953277742386620835042303036903305273164546909638945087332676461033664580580512852838965319977355355355926150021573497032229576453693059418667437826099079132315406007241913753809163028382980919725594350591048649185137519442459147171587470708116559495806724574268400491304588423587349258359732097076899048039588789941866555702897301796119012683248513165465830987161007010420661912720648763516119160747577480273397137880856960168868998869728235915273977676013650087263756669476601426435464998123223646438239643536363896739313303521130153768556387563119342241805405026233959917652500258483854851430466328631695948436494920261161691316973353255858989203451856133545154729220604641601076477419625804964399154775757235257478353223183954397409671561449660070698994112184848163344632660699966207181550698063185817703542052647700936394261404938056980349640348783467211691115615189923263869369560649370008130406824377975578907507996834734118222682446306191772026845211943314311487272648401230066137802444109680269531948952148327804050540503981041090447001012482568054283210964518109841154845726810036603990594465216638155158613362213743763793138217465269183820563239586914728995808784588670859385039924298987794897192359788804415291524684217429778627113357957646287490488760097175357367646879503817601567214084859457290707157007888499038331246449244610975906012917826945281404384504712140520390663200811835858003344378124703801055469071410020020934486825636687671074657818483421099748328827233789718526017741154708488436438380478996953674793696502852221470551830640107803280839264316783837221297003717296726828103938909834462217061502921306464733013364162155265068247091219216568921747673787556696479352094199791307761908335207259594734399803519600995454690694152496815613271751636412872719693713545357919526005890942370447245703388469904270359092295748376838112393214562971922062661013853097869499791736472468130469979079475524654291704463704921957486336593623243622566530586345761390362998182038413394356673599874511099275988949470754293772096639926711442457290630624607438710250761681127005349711550305375922294426189404504243137215852799924705401824955737057997847502314547891113853793525525232271391113052629477763020512504540264797292438248285922129750446708851288839916520946282188349020818333271683706794066550981657910478407575022798429625302397092630402388620310207865984692726871574351615552994384504048475617760046288555428002767798554988849531674555969933958456013413805357743525187350172389892071336226389563246529127666487372724065438112024706867830665923038352829392113669042660554309080697075875986471692808976030450993405879651601994114859985921995332054784144997535583533094700988885799176851607126383352159517769991960381356371609515898750827689408106947623021625267061540398763964441750868066291605801049992073764883024176755840451883072729609834838652101257248654503801201139131152285701205033552397979728461314621851443000205111629729469253978372762418783176616058852403801104603636426478207654522251954205124597878922598091722203662248569908186962612028847397044322984792206572312821892265809014007242571452603605143256110461589829225873686327201599608813909331698242946887176698853819342963601092511176882979063170913754189610211806431812802039880319236813217195873739889273197283581514080187965144247516372155308012874518362106170764363950832068966712113669204415651812545560983392466121981932465321246383478980249558520832921931441684087818200451587362723250272296376826396795785150466336839701588244229331202631002835342710591103895109657614145073286104175606494490428777213579288409467549234396029031759094225617514922564675063525350356161148720893421774674965035910811138420513323408336847057404501444698248282425314584397311600890967590042748738655939355244132513239078447087176054976938100350118601913687897222279733377910671620649518634543691703992349016915674985984326791820883662453539727152756813333457663873496080383580271224170495133183359244605980374303350414353119218243746567210272543491931169904840082225961666406514726933429392235623460155180158771694425788143949695967985710884846486971867955834883261977120064432669749274554684069094404728054308850953429695472955410116816083794390647146590859624614970110043760299100211130023784585792825684027690473416940511717940795088465010520579069290628170592061374650553376620870589566332169238187371566574190161311322866513755966886488039098416852424855551696734792171165234319841483521031626120066400235225045638938798315992274508916589532086123743004419133861082170346662593048446826084629791515935335690255695186048813082871372128498741134489751845343983547013506173500713616289240696926938460902960286327511807544082899940398179437152242159265441258373363517699460432994117020035185826106047151736254323814352120062590756729151517947028129066576029654101305416756053001410031789835573738146416944487660621068536492701421179319073021345970667212723788306966454154909596243966064521432536801557597810383393223159246726217365183019090033285195067698169213007105546417727900051948448952010538119485789573417712051547033165609078385044007606673845359139484684927214643152599609613097389360012889131264774910249826094213299836576330003074013409886625896988843472349766914307264660827353059944668453490582463221311262438692095656318726888069079658155553857548858034177519996914547496768681775795873305167395617806447471877748172803192879972074494074426666967402127487804644379788116623567514102254045315464771530183393459432906252633244233093238560043553788770493591336475292635458586935290822981150214974374002424926918160576994670480305899800785736674005197717313831757515841402961245108108618872931410065510457946185685317703842061898177545494972442307183606938785968742416270215676390701065560077749697296623361493368055069889834030162732421023583554459179253729697092542559413143283466230894824585374972331531350804659050024507920134443710854591525495826615175071521752238811885738962160032436056793514389751710576522342322794899314593651179493917123666139512757199124333809721181329465995184070431552826985895005625978140799826655845298012750082702269213636595365786739983240205474444227985447805856868237323104485055601604862396019999680338646861691825641054996232315415928961327832034320643742310100525026742622827388962367452965477440517799067716606931534977990270034850576911449733932265142217200322074979152841556985003989196996059626578670574566938567203186691523441830909468591983014177601547555257169782202110967190249831792161500360017127044396328479247482076096901090017237873372461862340821615182073218951786105537636683750656299854391259168800489785638211982585948584839829342931444771293327017656333837480321338800459833904530262594384233667409844381741876393273825665215268020803974883323359907429054705054064608777260503405825661162325974910441157226998497458345137928854804387753526188926853927560038986843294147096042543396842236651358897686543776572934455157528460378987024572783279492898588335445175818579197388091585293703818476260585960987933174476655137132121964712034958705612855675976092375624901624536759691484617479790258002951444742462424267954598190705651164861141735995475288963585512469031569839681181926598782707742947606757172588801001311498841489664292077002630044032374784279329258301012017805950041399543894154668296314747093584204130413255242887670913703893043314063972849476306818544822605800053609046897484410632075180295019075515523650716731759633990871340635310831094928610931370728479139471033783905669080070019948816052520404329025148343202943091362171416156350221745338136545853937936704450168469352469130957189551392003844284878611952397675393018307897650758857817853247379789843786912131912368563784614556279454323613017659969510748241582945370943390567765931192507933577019529538664801749775905782368246605552913772051903961595913909792113091452766568584861836274253640420407867167613712658308820079424149982792713970764942353571265778058868948023499681232019782905404201823318160424306750951684825452274939456942492237469061459140535488249809889929515757499421657978662110298509837908816238512560931029269294627853198706748507928448274773824268318833414998798246500010056868046278327081919947345393171201204859678498792802254499588011463534595303817572819750751600216829256449178086817107105212907420325548691252826707705100698733201341115533847994516470382823808070764081585405289357891103251461852537178963144863719493704909630657636862333259418558464383336150135214473016265543745950231757530126715524771226300248522276665597232362781721317745070869674519006107029617934552313207254409814235920653442335502841794969983550398024611963955387850796506137144303480005444806486707070274894508228211081530391991251318768621520520281579917813396128668501693218104239536988715225577025462597032676865785231801182233190670008224081206233094677212679208019568118862251096397527476687308892576117980639406435455189189351394755561006433372022480452612239963326728827000846772162283869769951823291554286886192785888525963525173650011772765123732255104543465167693050018900612766213056567208229092187328914185191661777066252284178118485976409598059819081009217204737923765902334440713697546049164498676160545049101005406910759010117469793636499192773547443079020427995265286909687564124694809781104073373523430068612821572203992927082844406337933027086613331634982502267542301554611380541161828419530775534902188454466170903039996516020197510775763264740776447322111762769713445858643574926474949209439659596128346456488939320139523351615573317035577023206479374606915535033864002010304667030993872212788423981203141549509609890273142827737167321596576865576075184932621419376222073821439678482338589898986456968173764030355007930048627305785945020249140348538446935812539843448699413859579387205031750853235261546468750938542430770301332040143470206189086995255846658009230251286255118953577794479392236804604431443040122231193522267431653647102905723582963822501298596754882510712495839951655912670952530756141174181028086338044451841886113849876154010738413962042352977864737867305534618748401645610452456639830196348782148586910334719847268671645128350225210387339138271523788253830799482159668151136048726706558994806232262291582899773656266692699148524376134550380070706670547404185544002904556633834454337300903581042621854739307008215902872165939804484701723562657791545541629874504630354476433271083987532851841828576765273741933131701025221473229498847167200653331091812747010214816454754668512201008111101835360682789709743707094098880965526609787108083800219120475320725143939317428531669312417421559172625236687528629591527435149286510796385618583965022149091083045348213236849182053650026132691318906186776855297881554301637070689176407701352311104031918518614624185812241682613038324544201610139342451679931127108167378355062630331075701732154111884962471680148981323399144405057470291586716858218886223140858635752447592447353220968978728633960753635530628567072165098006603777871787588063007293814877815346875957567279281919256910968751418324617718330945695223076954166323222868812870159174224066506209890265491379016886042696014370851328288870430452928407914463729319291541975414205434736049392905731253407473615909158592755934969541889793087980919083574546529613522208763648976836199464988232268165803193678571323867965286532170625790452719404247671026034069507782924910781735603858233831356845536886592475266495435049317569703809873428409543972555596095918098892092240606729636940083261492752406625037794610263068718973031699736514379186372466379701345788806942610317110336004633248597142045093515514269305735883349360757787905305916415733510448425569860186380235417498473381575014716847177419990047322567887463383584257145344970878628849872130139356138956800906793178698957739495799781821242802423493406487918001765557216423819698241581627095562164263344005720673017441663339910953942465530739329833079457965485653719403753602316266420742418666853369943799644714916864376277091037531947112760236063683310497515474876565873339263036521168886649551455508535975534046164048311269952914407404071284521216568451542170765949260347110242424129820764604604873089351527778546829238495598181766285659964257001754373519048663184952470485912019919103973535770573876131499810349814621272148939423759487184447570228480029728187542570561350749145595358340720611481865044551351345184587116513069617605231314219818836785788013619343982116559603331113126263094001887796214411407962902907523402224459787926711662007296489283531515807420058832965179900464943120788627060160896573843826293831681430949798153778529180797258619673133200003898852899450924964531367228991882036796645857348667399610987230302262643845032148020204465063909826166835400432380284660988021792670236257561185847257290527441767636931380779250729710351155772846365134332962058420115767514227226894660069079788975639114612146625174990084903527835431404121124864312468401892807360920674099232207202621791777402879761562187617398257591031370714648361450988556183905092574957931953050104692230165576547597367988697346411077322405279077307975136786438069363566043828409250061080503143599102312957548051322233063725726574856852100716765716157583289243819072109859588331653855570838407974325879984030816695341327774771531690630484059558200275792319060282196799898840460592856475868740234394708706403184205262113745544900851935234376812117927464227599269193750854176352021590450304617673973128739828752596891559486589297269984976386721078588815708346780039000088834421309511440307505509222753387334309529379324989163822917246489940658170270650998640115355968843352338866869460211050839055012087750890782240277860965317035001641438586567898558965574583146771404397351508705731548696181944598228910506124829918509876600464326178120442393843373373004364016963760095361217461603829104953418332122614732482253001991513209174698497285716407882496346013768402573660281578467793311445858618428371000523261101471504737284123115307034704231368725792604181224383842755617408251316910569891086637023875274686694378794950063498357573233041947948847593041419994708340054505150466711653325531173495048674161392433571634632491207702571391602822034555271249285952747468798015903369407961590027362988686583441205053247602359777169791014397959961401710844152350614177996482368685300695460594355220529865276829445590721264567855630784978908269755366025788999758781112909474916256931173659546142891016526174187682328424019444159791728479909746178608193489657929970228321594509345426208746578258061281862335027817999620504659786934500799488472989236701375037288555422229854987811034571500986824030202826669105561127468542401296592360374455096642686906039744697386070538325415488836587190280102592895278978278305744472317928156051468385845086205704089399753237837000105969965038751264447312098560579416996442231788992808560774562688300868412842575812784006932117059253082894644611357698050155553306021520396543075513020987668814378015461474121613670654557250871537292533627253133039026386076455724970766055505658177898704618067427976207057297813646512718002581057474064863593625055390729236574435121786041039812369419499417696699142928910293142037610525298654431638787218999726645306084980739266391536230339672736321085987508635438734985523043705736485268185123962843495550426530682707819457946699806942577970956310335560001326763784443796562138123708132035194207249383764034500105330258358020497787796187314641908747524328722952360953836924318784113306553075694849469238973567005873449203237187722783133633692316244380526850700939391946211403066383502475107462039713508725001843235259070237710344690575715214139804953829205522951480695082949858818810408604855117419058356798897004703458453228540715818000898089696631099768543837054620297156185242666053742950559936529472797784046534511319694626250089954174880328642956986597268477087102814471856646176696730445866918131278562479047569989837605285754116623144088985732296663696816392265105113233245180679337519936225759311685572829834077046112617146866989937400527638189718155475165371086263910884145268770448976075152493359302968424735576402217387425888414971916954444341330291489857958992335609216723825374647197427135960502467393221632920948879081300524821648833527128550484865875985518480468847022996119837774775922527663097347644948701311484748321177198917912529552585495906844143476773762074927966513995932204173146688409064857040858675532492197296317408278360948950777603457974454622350473031196843446796700857802439194783142885864298124267410714555279240092938593150147683866351659742022892473762276366222929159746327129332999679047992913299328953273762265945764139537986741019469746436603114340953352210901716990114551998873244144136063546996415425385617359699770509390578188834201964860425940920520732773443331680736264661022017128790333660411786624885545217458465874019806784048634100650417545285161445670683106066724486469459047145371126569308091565122966376806816118914669819356407449126227784984584439454668964364594127421122758372809758170911978462546733722823512328820455189235516111393133793176247218733448618928881945941451602040957282804191646071373103657642010473719379159855776508436664518539845803258364563683386891844901658510662050943712340976580858730957349321088040190942638740256711305877970318963547998207898191595413990840263075542613619525022022079194017098129352456208439627126237749031521781472425559417583953051877134226645056360968406686898225022756540921297943400078605481586489691793193089242269540674694765520195008373016138116366689287637624134144339917995762669212046307377424026677024836084521981812386597008295318445239756657675676491386752892850886555690577402451720830648429850438848132392695600560438628172819857827874623682916996769988605625225571680834736329276941606643876535185045091330059839429191104772290498699517433504476299695431008872629531115763986549743833990512041146175304851518440797417735777957968988297811826407662289854374290792513036696360629685019164193230133502669965466489231105106750255980481737079953619162930883204690140497832241592152650323174713461779493059860023795790781731545007282164623489083134556414608837952740723982528975027382001347553541129678950719137242818329471703778701767976874431749605410365545858394963376935298350847106508424778540307699472772847133987816148805549020335867790653507660705037996820738474343626535957106081601986955924976880865623734727258480538783896236452819221036946411225457295726387387548840566256812424642683084149826057825561143279399358113116799069738810959774937690170641855451340367824345685649299984285886437250239887298114477088262076797592004918063716685328041848145225641015129770463052960294597323102656623533082701461005785564435820801879506087969789712518116311611866838494508897567993126157699793632815738797890236221080099692063583602752293605417932347442171252821873092141895796801189794638295572711198648928212106146045096132057999746145643658128524070036415053624603156899138101027037768839481883407512904524879012125514418621754777214260920611584281323266237669213674449461624267273193814464949882093960627552058976906295934196552394924225993635244393905946663351069290509269945133748140478795828706890582294578009620516549688307647512370661996739045237322979257651654961548188196217651043862099267445213762471919782932245040180949481389683561655683718570694324303553024713281891122885076496527702454893990897791640436243190721772213058345429754658813766609476499172514825675005537437912890734246008814139652581954050742529170993438579869372360600173553750089849168409181908164294665281309884002756358067544999959305673295767659657748403919744064640692914651050689428834624361094303919998780369997901544021299620876717935664723994390642447717855720757736947551404663564725879067147353550787766271652511691209523048053343013350786605309270951670171637224841032937415235647128653425647630542727758043886277222999263355299258971659279094683930989455192716666414491234162089943619896026607561226330823975655793235571886712941598059158481129811391567007971199718253676586478937321890230993441828013343482423072689745170838769726306587994034539610790750027840323111749312705110804810824150391207832588115775132930112029955523580540323779369698171301836898210822986998536482350613283870001594573232380605674391592657770602636300994627618939718586485997627574271739555017965910648616425936057714496367508191616125254880370138056155090951833579958437975128128570895967696577052266870951836595137980258495773221874545439442242172789702116223279303325481718666728383726765864091356812479668668945059287118071121105514810692052785063413474131533860264151606985006961578743971800766115729715856824668012847990119108556511481706323383921490151134213304219108802595193889886887039928781846550810976873487390854101480421801958785291926862651849179210437992281033364306159724448607670722069281186904189257424987622958978757677972439136113883538693232991213355938448261686797988659162034729805070987350551610925556338151939024889730431450788097653914907246851816830659036232539904288972084925329850654764211314769273591402863365149091976979653344203385494397546463036868953724096575708708539513896042056310604693243546450210174181119441850697952389628210964064689075363981042374820289892254097645122048422007930992982912870957147688038794698672928781862087238539846272454154052746938471205662039480896599701148308656261168871343097757010209179987525195323501285647042509317472174115013986767562698267617335375660455692219031645944005070586650328382918485591739826800214320123084450272306644712429386915296682847200095591371556002406828066197134827421281269796142747939323282429230412750616145948221496531358110241954574022491067403582277565122688823692772763696053613230541912117782993279527557395870279963967229336391336812528438668081266703437622512779694155745029590294305490847490889634529695486649191150062048700683309132273386237947085366877510709769285440967166692579312945915544722706391920797050508332111568102252839834122199809133510776524129808193186261560624304093476493966909251386990712183371533238705450339783193991553887551855724700329982254523324655583049167828324969959790573439907402081553205837054686210281456779703446238245440140285612141624981900964338483329230516746996636625239739608530568689606768167193232475881560028428070775731437358619715654351501003250729949873252460096488845948158336885654925833810035621238108773375013520674020200387130067737444460344531853964178687703513278394744634974534143571548556035805656724933438449249057937781688290037990423134130439926605133412674456357791812284671877353061767869473746590737281336065829814984350843762741255412846976433496844877321533536540487437775277421002956936206617411145051500717067859964380690184906924045653757896744415986493732840891482422357931590665921004085221867495292633913114495707057053720647335163634363148754765052229003814565108966682391835163153902937209783854596995776798822807092528110637290156620374736748959913298733719713048481627413520835151630845202110415139861951491268477928750099551350609105514061932974983854895537649060032092719836671501522513196158080612807644118415870382319888411078855113732805924396164452556921055409658279076580284917065028976322133227999111629290747068605363791452390220800021661898529740923152957882125069844534679533573103785793145166392414902123447723566089735085245997763467748612339925632939483653487017526649957526720196767546401271014659932257290465656394301731674828076649514460855798554736536505849241106688757153233666284817067418772132481849025135743319587127420049936963786589600235214765990458566312148021216903082753832734445133011020659737710270766174182477916955729642529117389690111208130171081171792009887164947414918628897453479241773641079996981109021110755923621882872739187324646156899276743869167899464419388883732085299174398254354838957712780300707425749714783010183137854081241957316090266596364539493545393682356806061473373762855138703884649530889463501669940374509068620050732417831149229652194546185873828697174158136917914904667639799388514645966988010987813435079035358894131549714909037434164569370182221642538477515214189705588667622616196480231587158111786557058347147852280450185677508218529039688617161689938588339402942819099223386685098132393281605616938664898259283437663180215554644898080588203807594632298973760136978281974724457903726381771036946062510421132086950379930773199435609850905641118299151873130278413519274885219396793694366954645583172373112028001215790356493173125043570642777339876128819737257945824913056578194548980850983181042692121161181440257227730641863832516567876708585389971999670535676885964123537018256098234646268800249856265025607346644397376548798302496081570771510633978867768723311452332873513313683287966378368710842529299701417404986984657847127050484674510899247201180646214467307899219140001902680230259460025984512619904125646983544418212492657441750029978815348565017357475755773400085909126022734076246053022360126680516490502313967290640008591825467752894123069369474208024343913902787056527345976825575014355426583591279977913883020502321667751677500607961075233877073326549812979623528017467006263269119253126629959154771358763353104581519384013413401191161630808470939173473173370264067948226184296668042949405058838435157593943370889350221139740918458703725395247654335066475725657122173361831586513533934864704995356071955583487113342497657094975804252294641158211970502831824279709785380361436502788379880930490379764225475765028729600728708270861290905510997144313660622991849135963437508370758616362332293193401362668811317871302884928536334045701450776577044547986889530417588138230085549367626848524932870748083452335644289656665832049157575964880610567956122395834707899516979748907059102020716243558698416746512376007917989176352279536689577045369780768991647642286095005381155239263455526226609383587805424061221941707188808686438802412115487737272115834802414493026441872418676537168116197780449143738404311176295757077641254455750974194317086922618333239552263497041568007915393109580973444219101161586048617106307759822261398844528466198954704753220986438193746339948550841387641661002474663682647244601614820323310343780774089215513404574817601530201727611971755460297495753320710572243154778054418905724673564857441137401109696695914968961762489533087904831617347746188844900216619880649821604284636782456916012057817542876223587492529352006382061393998987103591829272676880382706353892435294146256018438777044467509948517355889152983194883521312329403108755407725401466319122755200014197561645298780301737002242543759531394990847109121903683386385800016250089829887230657126176263822825347121994770402298498871819537960436933195146319223206130284842966362421337830302464120632378890592878725629135211606536651333356419507367946931946031288058693928588851253639474002755611688307579544411312058820093809406914383762611088255282617732354056300799763887218281930330707355134512122596430208240603979877527382714842357466676696118592203225621613460152782084467187231740448580172705529684495999013129616742469490843173882464185002151335593213792537868826678430410171113367828047258132610576472479844779972597250146402881338034968191746996263229367505284122072766095531163349539019034165003963682508133666347969288606032146832921116459528194285297771859405647766043054061751281983565945380437158316818388266574127845171151663280877362748423526409948634092114460478634952968262321541258241588055479828306602851346667223002576890623122643410216571067401929061048252997394242610731884656315679106493958573011889071438029269313403909773606692119842586199149457467495180377610302776733227758173503478876004146318331262045623282358261828885919416557444312468603298320529082295341926166996764356400415397628152725874685076689859324565765798974281669209365118962356425764670725698955828279331160733522079989924698444931596300724311304406920544785401419876211250307095466928869194803940817361341074299134492511501811832980899157774939104478130390798607552361518361758455984829077352573235158879888275559350983405218537554546581797401193975200712381162374036931058749803548800327349216052060756928496805800557344873107533197481302625683315514899373166470040523992683873271533502589876115446784216040186044497393797338481480445991789615685339500344908015550497556483957428988195325788289763090842280827359994566483991792237346750498708627858546096607843484663345744080310131145251995597804497616083112073852151915917476447102241057473221586757211711618035291384766705055499532351953864464625461321142711762611219277231282978322739724099698770023579129173698570985526580006418474190310600468389868615311534555005129180594602335246882234733858789231644805902278901271115308523454489544504357144774226279487308451272437884257128260823238541993570630161429716724674345473911446309984854071704184743020960315163290406051621568459912233736280141378350648667074126829851988148359758511784293500552744027020856948426209714272753612186155624182310372375847770089273255585854499841613014728534918604827764713067923403085694833172962214721195290689391150565656814707364218267346546724318913035415839528690298281718790864476163260551352150655369069780380505300962018043046420533410609246885638287284543753839050082426985529499742976179987685809707850541119118444185109489529051788105995302731628380031292137434495182503616495168987050147421623630167095698270821061685072966375696955631478754643883855958505240754548984486524078330375970002700235838577235291477588727898989933263736833471965006389026808399158330039971351773213145528707666619507707432128851045399939913150262555920646989983527317496711620286551599256467479528680497585962375826896419809449895680106224187715386615056779536022111564146807512665709067513621393728407004893814851580576348872156482338715077763552973609683271607740911661151339671676447322419626959012940634043677728671580097539511278905217153111844215691296884910485263140952908466685513136603439176422661431079408300315775849706272839705334978760803601520122238372035247977347979635977664142774401110336529530361795312651271719909423447310898536449820514903279815648710541345054173873083538996195023356938743913732265895070735452658277853334159013308848490410413664296682689195986347496274804220111056349043876307809969212041148060756035005189944886061037460873195222751027604781588904536670260973957504873629832770090104672861004060759983768976468637397348025747631108530555684736028998851801002868349252081073967778945231406065011544269485445267170979501071869466242108660854746135060539791484333291815095243997511325227287064180116946386381789861827581347168002584550924115314543519176232230845144521377479212629139320739947243436134860765372137923603594321410432981678507311039011538519756217560907002598108108093158888422566643867686726064112902980648642937889397270314710506000798922159388556683177821751304731361660675633307572313066074154411611632789144031121174269552764585286536816685074707143217135013123987537653331981129632171943461095112391638743811228272115766083019293607415156540167369586579092284453279954822975533493659049528240874404551927869557087844454432935898449684209556252870820460621454530834953651159528641550714945016653994784696800288102655054787166923880673435582087033799759498658746553964601797560425356079802350563065551148282301758185349239954361966521246762430172196358057825667244131947859772725181272700819668280318975126540266125532364785366958093773371346551978945071318947900161169749242639964213958630799682023566858667458392847774177089151382571990032305630232319976205407560524868185024988627726032109339414250574033171078331830335786712985679722063940598128858333662042860546021685637260442598633059677454527502197716457477115818712418679390192845684308632265371521163659242665710268812528662664515472199329951946326972707084208428991144953260579963738769949876795884802201259643553834416262550778176898467896389895842273344245282054873977731367823612668529291427724666735864621046654362681221753121866542986541680651838045319106863405486491379951565226130878779846875802291966443744117697067231196989163565316216964122057646594383310485340265268516569063018255533209524199024467028799266493232734829703641082642340719110824035807350305123481970898855040549125598833752452246153654568368195276204091445985676413124344916651960078310392703160476748903737169402316092216030027679670177340622132139057874113805737049071604839082022918222711698411436811693264027464614202006090447081996793119299209451939070925665360175527820760188164839527218801292568733429327149846500403708260014577432850938990483976005006128376435267920383000706871733423055887976019540358332302028081280320000824501543148032165218273640997937748182762906113339788592045310269446973160076768270652186656232943265977283140636149926112452451060303725820689456228548436236216114493487488249362289713511060057376259446890045364848516131091621102182434851710138407207183174033631221956122086143003656555070585939728810778600338713106842903423209190908663190016283550587813334552854823061975107514156381579089947968210983079320872521588878594632109595736092979622975061118879486587397425605432441398192895955807097738461442799315815142956585686456783346559774210937674812747775452002499692883618658069504485363717255325938598372340390442444240017976420837434281359033653588543602646120235242455263457296526470074901631341602544946584240539635915303741049418104152835173250359535013243306989670924181713608496777775372672620924490381589789669478397756064528337149125522136439615763231804083565696556383285940806683990985779916011620346593470332177664217347759600222906663941217599362767634490946498331274941635503774650826061419223814046706634660967268457071467815074907072808344306190988000519561787744262417596667987564478454750915490534013911292038287871295723604780538360810139079644467724642806095798588399946159983353425435283074536695442709071751049663198433624711519834813408147802949852804625666894254006843949892558191019334461763891505815788429713278581470869977113980658565477660666869394093923180794127616367674395827725184416870877603441361805395737608848963946003171834796841397989798309383374114751564111218466537579371511403777966949201946146583437211187499593352860484560373701070878450529724096258321241204435674748566722979262418709578292856921119052717361471170774768074993661436969821168596324254485043014370375800457352977638553896063151072115852700543878727072820870917379276990962272725226096420050231495782890964242198039190490585438806363527401394533424655824057513487006457035237177747904985866630796890563414495653134122719278804591746792483260257893096660455775911682070310325154483022931035134131125532338066017552060984337531445517946118620779091723145449678269954754550182719273729507643367773942598128262510997687976093886259427296888341599889528239137785353420982396606311216287197384220141797446434114821622097780552158200958036049345640180232990691236975054685222676195297905746214015449407809735718614752580358372460574513590762592358234376685109099898077186306106790025828609408593700702074027793696043862208194602164835838740606980459314603227349859600676369566819777641514989854792700818046183613175187159361169241073970213352412245456235562970281474134606507460162645101702147287279715612755892442560787472183152037696973474967420472461735020617131914202201664391484748764095418959372669288982859212684482472063054260298450640846076724922624621522130005225768859304329070654580948890944546466751527429822872844067847609756891947763376252116169828561567233938320460844554469819778287575577124025271030416066395862236819187167211146161950568698535068773835092472822042773700004035250434609616862724334440953722414853816762011023559569894626451672181862177345022867661104102865851419798436502848962804918959635482136104309402718382897496074385380626198922624260893130178614041684164291632397155039179179042615864531730518600804681447903992528540728420529521077948367517351864595087086384404665033670900274384963847856246527611469578783322967968693084965341581484931899078615441273020790911311726154053735379883280008099861504983156696579936064426211731735253197454072165994602086814555006736528912596546194778669160446850180205897173583969127232191859256689126628429186348457477267514885872740168423235695780958708167518195689079956661946413565810623193371596514386025714038614408122894230531281933941674669649973734863313559793972192515423706202983544403267296439235008276595446458467596589304587503391267265518724461215088429819916024056315206572023890600019575184286775010286202015895578094616405290426860886190909258896015684325519651567544790451797692126325766994310247513889935606561688506737167550775463911345038427022238533901971070898356302857714214548897970109223616986651102289548777030867764895147893239128588965184437125571047248254344312367531490895376025409634090255165896435426527656441779397783446247502646971938383522633388266059695158842222561375241853253333472344512963865302453694618749611109841026322592432465465519487648631223736560102678283980380855533589026076289636782055188835848168033728168019824734360067563050067193044769266013284117909428611217517353864773072295823485838315483687528481644805923873021536741101841308786053601697739936441512485341120658750732440400638533145780767795726862685867240167283369787974976153824171823677604539557841509295267304980616266242921023637735615985872462229603173891933375393032074451911002900643513564416312006052999395625835900958727055399222197786222208781760200573288671808829155345364826219360366738430379784020716875516509160012215340315908105380312780143631999505961349113619180241804551407501134960627867054757431096016376439696145213366760445672841222419358212393125913083107684576886170385261620592277506768455391840146540545929018256821250392939895418704176457313008656081973239901361612885986944688232232387920054470826486861868212274448145200528596917317737917601752728605313841580714938492074744557348326287992388842409312287289779057265378255853176172611742972792415318118975606220366810021065462244885906942055797132934387178835487802493518930891241338351772015457756276382604521911281615973573470926357265670120455105171089323942157111797451110396363707744902519832511841164435417640176834593279695050003911190121623752875247459371114233983752416233481038255727259571313261740631399054485041914207064071256254961136302082785121740915083429588130590096664814883797299209591358371575332969030929006576543961612085174822013271742931244493451791879864579559795477746912444233510202738664492914336906064365442785306470481073573694568974493646927757772677074036073756446312444816846462909615221511543247132548296408085368073899569892671391711488233629107863783782411960696416148456521562192314078544397664003563721458246090564244353677587559859986294828116928826875748420197010092562397629757196139270104740923351824610479660947494211396278187825139842045991698331523735847266919827416706723546167598208323944321724514710319806701867893082197982360480140940780063216279587325545202980643905615871678389618799323069807055267611500832975755874947410786415962682247355776585827217109962819701006991661028205151781472297597377039602314735835328931573923393301101133812092145347399576021703779071334835309769988905999992334890854344730371434038049129154002094489700997692027800659658851341060859877684450489399129114205258654397547453495523391037821351658669465920720764626599351168048971171074531621006060471254818712908435605695546999975685384635274610441912962385718611994090683758095910099100599758727467558172254342983584766639552173843002402750006372153826795916726439682547682221408472205475913724328138988675501126599182510874962615038591352684950155966327593789075802860523619196305755685967262439385805649944703600334922449258764232555968531342064453445734718641857365300373402169467523644605181689810720748004452066098977016025042912325386081730756863946109484359067079554052460901532917152562050335769931252095925808473021965407300029419234143490007876221380453995312582591339356763347658038843412915964317943848201521049193739698777453794510496145883720242864632937432159867327582091549939887807421542298096971993992463235458883833901068669510360216152735073487838495484246844280633258268165747904264190049533083668219367622262961546266004685793214331280741968122181937005839359893993678943671770593710786660336232078835960477589352062900615520704314817476182989404818312116298504340163408976932545576950239054416418036743245689896983731024423574854573316216476951460907453439165815607385139419447747421376084531694978359762672661639063134401195825576015845499640457743998117011791168002474499596790008963508116377143674079388616764509892691736134324876097326190405242057522134112001688252637667612616507121414153456062518536293246871942400515208615159438974815043989117135659112105409410824730387010234681899511097598636418061396407103041100244848940498751256518701041037833302674154799524724108434711792699630789377467142963036262230588260571865361035370247625372655194060104577722105410285800916913615860630846508563746986749977295221969224115740624834130781032493708158334777939908163199074786545408694567827398722929724206918573538855667927131380340945956569296659626499749493316541955633163145483526775256959201612683587153313501615864762279144048565459902972409722092296091053691162847778488146890840423141157116295078114278626097601622622340387377966945322582886750220167755003001342421519162077607206473014633769297708047734609953356641640497231039010618040205164847343729756030520850425411237376153882706228859915184687793675220747014733887094310442351608262532641452658227359505948578284190511728986114394111052753712307468573728800976605405973200658074955624748903706536772138887551186849967020856196260155025991938311330887327748530327653699148672659428237739831445848242281998742528238030682328100758689799903222654081014780575304816817709022717826790366460726628075492686760331804497349792775960350620080692082863890323289493260273149243745322365798343704062792616445715525698365487385585676661072294793051668817718838768798630986434683574639245517012623369011329059482428855294784037029686571185306871633616328614606357703615071191811687777487160704685558378595387103095741173409299422499076434777662034698042283040097476395827407651085038656230031127410962774118168244514301046201802968244768901820105002419596368950460888744429295053203685835909616175435512653294668360217975340197429829473422806928739584004212374735399538848035153836388446546126113973677898306236010324709260682835084087252692763017380667945778024516474177354374521823095337639141032692916210998361869758080022593041255815313360308113043948532702934706316174248124579638845122605412141584400005973069407740014086379076910191282816207474673869386020750725905717326468614908259765247964818086279589482090457163764809391599272654478500539499743597505490712532531844637279202584991541980023533222886294223179032317087234411793366493889082443944404047002016254902252928220833070987989272322517374563842730265883352426964124868627244998365844298849105989851047504000869421972121389251209079285005555043889008504952969582833058219429395371287324499316266787729678282098587414845768773336642899453183758813343344554550514658367169792174047962706825231435613473411640110032035681407429499747515447325650071305727236323830851281076066014536196722363006266898341182672532500536557365798971550001801908566177486874608617311654478928431471234918878376164870692375523799434316092901674007129561791673862116092878982297561257271632714377169641776935691787521528248900607138328804400960683751488165190165626387312486058982735208774279481982695412759824194301351498118339766756849958766336017057090075261542466632755159462964665320885278363543357917148100465010966939166957726692513918215371686446341362445934196173272299532511538550610791691843199846818142283805810680206054419711854341670075066787536832458195141463510345283564178952866743368245520244974690967694843963246769867339981543416811042533174471415793070376503887540255524747695555324031116210162494448634111489910218697221058616112719364775334591465790292420918849094264056813124128688710395623479400004807553629110795490115185697767114246247227761520963904542041817751714390068204272504914798706944005848193270356725318013873593551138509584862586820187059282189602380196585576429501693841201745003863538460743998552796805161468599612797071171939725051479647208805567264681276150910646426949737164828050417881994498990099707727181683369821621072493220199317594944216920504364127128352740093489908873417891648901255590651263873683011571796779132749377990414996349306604309849499896687486214647491176761703897556693252997250788587671492942438801957255054547968056068995684288769084021959306560521378240030753765319708446680674156433190716937455196667129770652949991313198940577697094060144316271392945332564718213912513743081702216517927385978585649490017052443363587107006935220401201470410299858751782563932704300191470135532679451298020530117606376341310688895187812479872483418715283015193226725810572394626177343493611842855001930313885500212193242763411872776738661232157803000079442941927896838205597773388532660151940483866375778974418028537901476937880853968031434446006058386146685081789803510813586774131847505403819596850176166067906273029963615248143310087653250425356085109402311433125438220086077517082175139652174743258946445403707414429824278155958123866924551271717634569932738519563486727294627561428737533646997416797185850171776471020207775540268393010184002517804304979207582271144694066266913773274378879577507590112668816008035329743654985371920182132363647406365977589200306239373873333765127942224227311462034410118875401516300377186577569300077780582469772115836297760566336748125362182531435754588709814407882457879824879074372260018103227900473309764484913170702551058793894577672592743785858777470771117813188769558249470457011395384519051331530388358110234729721447169741909543055608964294894996140306010804697551504456783901821841513145608477617243382514254817894361330378749077326050700492546803645162681033998437286935330694109049641749214689386986091835941377124461759828369727130811666222151768288135163618887009356585443106007005131264732260345113781581886996286536756229064888187466586007305401729764538529561210641724540487263006702352803435912571282445107106250161286082849464134437992979466083911549196424239509946049774542327014166212118023804817959634794940394577151167885388070986100974908290759141329797623372121070542432440589883262686556883584299780188154232097782299667881093107529809179004377832094594479866947122713265289557314491004532828400801122071715902235432136573490140244976456611881005678783795613706659440556293265888038490939470274888966579754104557038519748260386998538728774790651007507519828263988900417796997909335790616632835734353266456549177788430088416743292722153465936800504091219842323586470777552953753918750026899073014180066086263156323222504872578087425829828505200971808066225884517338697767726246343328777708462448050451449767510553518846562619295422817982349124467657410307681194790384611576606908198476396770550207704595822516290654568944664619866846235262122210805520822168932198263507197571562249666256375185762830053446053667022910104658933173328816857429646213433400091202832247582129518898505321786199137270178532106557086789269182776298850809121126994390806372045523049942633014863172809107086562727518517138715693474546956711029335199187155602688889594142180450897151152446117013507711414962723889802256923400052042556648618586896790646008300999153291258575458536653075226431617950794283598893476151050765453644625100726421319537610193999481251711359708782851855991370428418779786390654203570577938325528320542988208980166610098108886695107806907924341736457646872179447167913837835206186633394129990381772761625294102308069843705113915863750712036860122053996227618579284870882598546249377676317594326280696227439447637204634024438896277433220186052366333282579113830684900124201022420036233179561432533205027254977316311035443640818182211774589765383325088786845705925402314341268138307138112017575801939166897413600907176563450662857737487151923886637954606275741242276372141355395456154900640945310782220700543895403045530222688635755428756930684300018593308519965855268489953519348632448998756298666964369884347405856778728121290028969544862558185577900062155035937521298275884163102466752750374590354815394896836616224394854562685155991049415767067319654602677058168280012686497130977331358311962934020307054283615456309730826805061123490287121526326131621568102430622307518844683829860602871195943881424631146814167756449454742931361568850752318430089979736187909122289665012973613308731767391022085391248905604028162270973296770291521122510910239846512807467396108974041972160541191447518593900032309687399078633622919335895532076515829412360860768760392223820683445713882012392549292817693516837402280924321797604633598353730721428090624094573901373525430645662163909539356390105245000300686754643351131069538588549609436765145044974866986761899410593640424915433314970497652946178553093633422462266017667975155227688444217446077635809831161254107709293942388599397009673151807355230539902285569303332746990573590510820036174668507455458588924589043995944706994446562916982782913834022016030656737872759039760148176725241028045302755132327329449805098444005760473505370769397436194871769183775685843264595508110343017098611403242631262543285332938379080926899098401278776322542908533628492432140616398282899618761539746490157383981640528077146865866337418500766812345037825187572108724591549313886676365358849197910049065863030731071251511331274852644543215472644164551515851572066068100837663507064115611103388521247024338637459941550327589832824359561411698909931447711979442258503969531347592948584815271806355445819118999553608780674404805772742917085720980697370744418615675330401598912998505037809024686131606367634405664313973162258634045908305692965147759652875411788392450922102857090975477932488323153335203531532778378308513726647416795049593375539623168730638148947812225648443844533217956490483140263861014872567775535184328718619764932513677586502643087929531638613005363306021259988299710063337016612102732774119949227340885316133316560949569312532678512356100917268232907379418598984724957339060306438571765439644052870335693309014737303233928231598273018791546004536198862938179956139044922962704302124314366115664929103661429646004296483440253626597018407360597405713680345055545958934476808747361604177245241866267347758779483089505488920007768246708811136543807552348388147913550108962786301923354243068234500744700714059668753746387984115240293058334889826271560174823523225160700161921950336387862546553261777166454130781331405546733410607535714458282251115883437741881677757919663990398742847960219564395320064001748590414768680932890475713777741965476104627592939240669367449826821723143980899420911929191020764653580429256317337146362529017219554221076799551637867586656922156090320339896198676266181339847736272413011229855232497043522712294551291180559524447749424211693250880384490692704116590076738555267431304888245701234696574930970122173429805025178030371249579240846567662778193601665196556511279710888880847289299456343323112734989935556684831363472670142757083394132703590680711385819399467200711528010809783916984321213420081834065461747737660939874108091982392293857521469669011534167601470903937055716678824159370879768411300337986309096026367567390466338321505860742255391047810536499520950522758160466603407078554163810085755171803281746615140583040601711655916677103495837523083105489348142594253160522487632345589041136972704147322827307214623598217127187996952761160035968021184794667074488759935359515307053577162578037038578229367868660802546392478438713062683336846367909839919816477799291607169366838213408991432768934352291765598477482871823460483664099536578008281224758056741352698279762056727226361080089722135190136535333008418371506454804328034395406252001198278242839481948241181150451116376656022642992570038833222496148478435003436065706970325991149193731276116346010740457593512322986612868341439393331903578938700170227784986728932916905535614040713163142799426538601223830142740385514659381333468406097647932505681147256528760167800082689509339172115927282903370334695796611134855565330630324000215869365525265638824496696004171083577221728355081446088215599518553768138815837979108872736734043491782717817226669352861608533774281932668022784657276569212421231693664023617267049305058040189603219615172868497303610123898384686659083403654862295569042779668495359070300874831393281662947213757245730909076257201270300549188788118223950517151967554508074988397041701508454337633548910764284630383445515600747404888078691591119951161740235122902605383119828403008219020805648517344656908168181363649118143130784563504604403553751574112937797353037581884105960609428603206645749567795939260005623803996661125757887724194301695832249667524672583754164875679675292117629226272112610458434996594454894767407893898278634278693809513555216219866251571179992536749417317047783442103037198483869570767201294001115328986112050886797887259558755381669261559291377642495136674210038929218125311179235820099178342624185395238774352056803862969389079308350301152598074334881757927506474337308719483043229811310002535653103623092743000406481829283522166711598302126679035446255568498595307774481114770040021025634884634911821887516277524087023235398577656269621026309585619454877400488735152996176271718059233361551263312667857363767594720174063540153614286285927963734923189511525072160662169361466903531489588705210994883733897510808577541967409569188178824594565003632944887238136805763677288313913596708230345622764554028889846272134859007736168245342849792286895185758902621015328009852137228890048463094287023462467573132167437099163130673237861709645153686035987202553621400188596749342101596059142524199071991012784813025127489771423279220209223152138754611653812072749690436719046426402613217800515159813047986867126149165252647502440829430461109348766031728328969905056698191222367418517494854286772601315853196319499477532068395239672379457177926186479858194568879940340831669314957025998284585682008814647789883612502992018283900081860081143441069948108770252252358115135791960071403920697206392933781907287165281607599671952411748670676673154055608507635205505889636412768655914415923122258329487498685659437613108492461416136877084235608817626314396961268991798451409555161532602703113297943937327979045400999947827583233993504310704303016337958074556317418801161494625208608327931282770788743514958794409207865861345913147169597582480493163138371364735111635910262523091055646453037980234272206787412551438052066339278661870345753016261469783077102455234427176033056985907013317641240960201042250906096215397776453773817308153476079103709286548781884174326203719282872517803035127840816128153584567964314372715549174734407817832344450692380479124904220985473964128049312158274724228439010652703192048893352799166332985552258407682830070424940483843340803639751838308794221559821284109208039996757257654239882132970337880955948876161891717251753947506761174515391341932499411047096102616367822918502219397723718783517012729992162354196963586519387387521846145185372768198273739223485902788370756953325352731604532271044367300318808033763288705743407546498115179619245422585995928872584483327282243835541457343984163230025638827521244766061573809628209105717612407422378277710940378393245378848575854998621641968602669716705844921369092847419022170751823649913769487865565428316049665302873891537068943891078835337429601316125445964792013213412222366296144184188618910347305046347244205383755101354074521498128037399256192690896879352741210717999769790426293074597058806235571334585143978811806614467674134662709580352621693007143395230845689759857816352076783373831221313844817278718645950935528148929095546001922821748918500728259889167248911159713903803654848395167086956093185653684594406888654359776716238184250516884477293838666589137447950906984393020675222743525985088575827242824343001869158153462240537978963974328297348742841783358138185957874895750005164646135213881536889590520522276913243077205054692059169882786945267870931818627008569526544620615049747705727233796697961685456284441573979610475875479361252219219413139025902208407644841406409872707025813756095910494443264070927354324432769269963156861016541901552872846118953646790666480208647751243518523630705972607742483455262205289598270776153900173378957403748949399578304925424232822430779106332026630730782212756151315662193377559186085234846664168542477106138708720953606850250199891199602649586775898372324632688028019602415228281113893775702485058953931327679001150341022396758909345086546246680817558911496782585500749650329322880101650626095091392499233365078580484519586555438162554240073115165360227758671302723373070452091843475469275001488049371152878586126328086194958962581901040053030448883853454218033691299271031826885840231307262636908085164417941358046948876015769580919986655756690849012509811786340306674428207021711225831275772131377632070820659554279618760983316385449204199297984234232155421650964698062576319212162716844793367519976505900329349599341513247500854510659832503144262292666876262452699545901907563063695708478312949604056893322843269452162244085764761935570749643835169253597219360132375617926999449496286586368222720269943807380217150541565434842642797697726357872405322723049788583803833511092239420090090487694248346491706237087238034077825281453746884576372819668009509044634159825113039957231572406032123276993211557217455142195652288493298887952170396283110369744135517746321679333082027744417549638951346603049162221672882137353858241348358252879215724596996404620697331630534848912250657710965352696052967902913600351137927544637894571888237580027063853192772255514652824570959582502982086393682332379189326967895261855682209131740920456721398747978484914301052246969829433431517603008635552897408136087371256897074929189702590979439644145827230667448489558649762581768965307858233871266197572761006951340444733703667660758183481685508336247150425757133349729110570197026226391663574812957333718441573780374788091929706622464904927974335534034273339069184403521236889319344640301684473163761396751583801243860625425311187343786438515741737698109006138834175058381980752958875039866779217212667588604761450347831972790529475452700795784933313619104655164617056879660904447584583378362644328152667796991525098813576882644649676712272265278408009348042507004353808080006998850055671142818957418538397282401865319483623327004879986789184403611823464495774068403978740221297461339259804116374627952051273819260058817856989626218893859687873159598715726335218281806416190019079102574308696797281535875368338060246199103577652892566209079556549307938626771112432338060862406966704482097807779594391313753996491887300935173032180574625306093885307875150926093693453229324648717384561984046657003951858262307565773638822368759245216582684728857877526001395931966294327305712567237150733473609336286356804398710881446436361724662928280899722935271175225590410757054045992250108430265630225096400785265372910141166816886789434312506671687631073764209655227787911386163564790785273044698477856807510922354448739192474793189232137271301691841210842173356288133853963239972220196331152354414679906163999021182622784304665976271345097030975269920288551249980911827207063285710046175956520801425678001013212808882203710319168028173470792724504047882945714080437445465086295925705812521623183329261983920206800689063638376912690534660485074192094084980298653701768612973016549124283649748275961485993516189866996462136191136817539344298611952095928534497507930329884180880703613443678721141073925983544479254358714686867797394244121130251648725347212619111256039400078584260536667227110214124288312769940422456579435989528896675192057951902412500267828374648226904598088970631924502467642177559555423383941873164637071648002861798239833778747262136181727180770261687464942024217153398272884502863174200850960346587404073487131270712804932726954412722100455422545209681731994423437127631850563893841626198412036158155305894121826823012818640980301173855448157622458603102206343393001618943122737498237583056318770705808478938306719266037169036106531372046028830074316254359585291165385614726779828181674765840336936653883310965136478142700074415384469689097079655415255468680385316287356765105628943595264211303647064660932781674474083522049350908203735994675380561072834527456551827046940049124554234220146407644871688836047435668144356441016200625568022411242536900795442219896400038921987600578898989842490033072930463597200708312134646386319189100485216845620828868581302457642603398100451611592834652177940187303316743378416399755864228745048832399703191867498218194368217051739361888104084167043801666020743458888046877084590346893526670084478607230584391768333575206492305051507718394405294076683918682095306115460697939375591212988939031198116555818743443051661144742644243376313138836033032148228110337411432771711481451242406012937152155160625583445516960169898285863024851464704326371747833693097866005859004902321435261314804434697796886514659877860677096477025371654450823967908815478207073833665803936454965916314702088889845577068941242674847146173727263143132285483150884020483487934820674075599969600966281076880799472083494547738531101806398467931013944671936321469459431710135873722287401092855409153393599537480404218250202726738609090486966919715276018951495901777315020303489584873853778677841263649209161239140568263920836908210545835889585122750611084329598077191386842728664387903762359334840591641773636193964768259389135675633781010989002384147550877227203791515568152451375536329121997353089270321610242238413412212608032405397114329651905215268761753200857639084355273982532808342646815205041349456056305901272162788443981536168765836687430050841883810218244084277334496891956212041773561816135991471209670568793138971363848001898628730266741984684775703576791652271543921435686762268861420286404678516235792229361903902719887216127170823810425241796629050978275765189107066261735843796514121652640440221148733797982565523722870661088666404285894044786567659714243331332177761803361254182634559081849687749452631880591570843256241329861167648420709843927551713146742537345634568820371051881467111929169245642506442994598916195624405589857315190995080606883941594887704475758272375216058002177051878840314421175332188403951433605726215041889181906272246414094317954962855822283037797520601096429923628945166050831939488432832527234808014294065833624162436013603988395032363388451376448404602052106506355596220023904508112358288831328163902209283837376364006209991457328833006211318631876954492522554384514713277831472988899419968511775168576080695027220096800389069234064866314439424203616708214499651684182890969339471409075532419513938584506619308673884133523389306797390773053418449774383079409167848518152549826060967037972503398500486164931545618560285651633376550525578755425611577567776174931353730054941610212612895334992587388319932103275723135428125584256790713491842102856645079610535115566222244420972301323664432755838338354371515361311485746819125767055776738311287106539361554835337452411704592563640457472560527142813798344751494759737104706877827899215132352930595033444361983310345453353100755013423331002093292659795187395670537243115250587784497418615189718001796572981474018883097189417515980722052302448229991351992448141079723505477491740900663558594225489663298454081692748976837965621375613219848571488991791638302661057728660412810106654432503388699666382090567090211118095330155765686176642364952558340800116213601010890955085550135661363166625033801523384298500400945510182077301537107552398915872257469158738350806505248077168678211497178880307024557271441810991228022821933729729151616887053433708694067925303239977798645178321977821860609778201191448278275753402417574905182476742643223675387313166844022322792283257326739766084769671166073144104675643233625935308532244414839866365378030423741471970903954138849155622711618400872395385729931127251107128695787516196549789864847148344731369472830124967685650617400809213955509157148632026163983148861170256145330603250594893692879369506250713960466240981331785778120857425842935279446872378057233421542240808436161942030249711023858781131607826535992381448614573452487298978082063081265305009511877997414349822140202818158072201609607870640684608118830810249686360663975623832548353085725372741084686788630422589637909148989374706852624870493748748066711306123707055329603074633408474984011120176128575452098196092426234746130615867536246824892164235652611035393585649902398114791377180030015958832643179993985443453575085773414601563747339765454917604621603855327474776113692343106779223815018917557446250830250814505065188995512100983564773170307676705798492088294502816795188104957592722750874405603125703972175414596503099684180397695325825836179589245950668357376614839945881806660621082979034938967619954579186233104450195169359423451440784736800214193123491511976752783429429657127315638476971837216565271974430627164509014569170950212858805290416004446613902112243924396335443888502814265492413203588653253304231586839991937710708624961613394846907594743317818554558721578139988578013410983219581430094370818463880349724263080372790031435593843443754146356177382909522733023558478024007139624340421277388647905307235566656389951066225549186906625859230097246508689638440108003696031239388795107867325684927954291202887798626959216197597818894195527629008198321739207703181911168254382229283884236119588416295201358807500403859400230278416734877058804062615295809107166536321848391308240297935682621648592718699285744895734979456362878511129938294473609275366298630973156835431918047054449226790034095243722152592103250982938241616219092935029117753526733688943856406031775843983041935729616308931929060551120408519931153831104831569175703896472712423566788480305646119003101187527357601927165592787178270876684129551802888987426637430387976829920495146704789095490008215467648223860277385082979783311957051605909545924905449956947871758210388814793720475130507808231221433826988308843185674604594900586880350894419131988828086416360440917552607160496438506624548140002929886822299415002783481824614781445169340442190013945378702129612763460540179794172113927569798302626975517818137618315852525062741883292186510100878021421538015912971466118614521108440994817644294388076023987833512671084968158376562338825229133329409566137567468177043699975439760618068242303077205538983898550170784354174594177936308729359530983900076627583365930760896406796630964167571618103237152329276682458200739265846565129443538201432424059246520169934893585608490381095500649496326283716166282090510236325160480933066003341897856445712010496376052248263692186346562959863736343011237533967879415002626744058636391833756008017150231851728225383823882859470883975807949632837982416114075549735602607890132660108149823777279788202488341469878122178847143641086855899389584687693937285511979851562558348396811051639112941277080067483060728201831375257456111236374634580128665633517899075926066090207078553986847315855509108377395982370070579810238703449442838555067071384103689440859185653961189519824271908076263467046673448436781719235279172020126188253089185273256741818571956486127209561580270179471439177104594864877217501378410558063652346928698775559291340319949226103385293799095655400017252313720954376036668553536280828992864613517585475388292884226657662924284160238705746442772928298036491546677383479812676944272131600539102075410085668480846769254595431789141765984319884251990810020482744198828313051058875862934141068335311214484458685284768622103226633383215722004463528263550400212500464888635134005089519322489884293224231645533709635261613163436570024163444483874805703206160083040720773811647547447792654417538964989803708859535848662615052760561941203224046752200462571987705673690805712250633189301932996806118429675714983868550198683736044184836146268383839839734095662779080431026900282065208868433259583326588745064244818764763614612795438447312711467969375948389838065900953324800562309879573506148792968755559956371484880228714147938043885828860233124365032713707724952010967541576615394333005120799915999175230108266164340331429913698496781890202135991974666294151223602913015932904452009926996459120465631921539691603460139852509700545440218316798033340816550450362757515707222951670744047342717810051776665990628913348485395211071026866953407975244084686260696631634556525976193914382978256238646687555164656820694196951611087210523480189819334327727153532702210605221559642811437347990638164425819962560131698005637346265136729737026514207931780721113075357705257745554904315551065592628070098322530336842310047993263570177283022973682400402503858230536622459335431453325245206687678152404646574864300288982024678990492883661305430711134364957798173343128503533138768650242971099955216394093838494380345485520622046907355594758320392969873161562280557709854908031493477409107979524586271325734161223332403921283434346043757022412497813430677753872080034703938767110809529136810088785730314419839331964158753685409181023588490229394095069281826082512632725036837764428412897896989779380236976670691910195536049737955452060744980907560353834924114964191858053576260486427964720114567571217711111354983552700396723900265312710548297056895640051680327788689466001483648024830237030812671606458311336223921579622672024343968603898593257105258089109877361717995494911401444416673451058049442625514271036662321646445305076499943970790633843034529872902863029843014338743825707451391221700968613986070629188827032588952430573719635011088230684694722275948616635237701788703010314015470640537639933760681808949863398988659604707652126633850973843316225514386693572019527165231173952338365547827803749685720769812864087975085991825923679273781062096790975504038789997404542109975507104314132095321590583071564903606996529209822520777703999725284272213479206016625952332260376132952637889336644132757042621452430470049353243999706102051233595715007668114482066217503936371079161772775780774428261036899415503928054579219231846582714426419346304519234052085701478308137410396442236162030503832748862121159991113078163737054677809485786310534707155139858782589071370542093435522241282064533368909228016113100019460210085299221636962501081736477077863596968635977059794492877341299441697735408240701034511267397668691615603822907092571747056962112487159246334352119631386600287819568615143481669574006763753977288320457912403304185358496464145743606626995768209985861760626254427872195533107699687940631247450933129398859741568383913639531908229899839971410330399854830480986003268278465555153820341042117631745554357942160325169304987962162509844478582655876068933153312825133102202458771407086305008868112092070716285188047158172505156500333968126693504194933846211539033967704494345185996349814456204302676959774542813055315850307135761826478456985262135235942901900246907847844665868087395042000879265443546628472598374719168722469590871960468694712637577001041405438461323117489738182735748006024895800011229490098423711316409763898851405756343664299517179955542563524043191855530609134663882682135777994107284623270308453694276116826705559835214455909822287529525554866716173782634651943079642443918794539564901381790112247390923490522145320105968220903593694767704377915760827726703400450180908380805642499005140262399838409396625934705130691559682027794174047788308185002104402480396042397135900838695385032256728665690855980030265244426386623749583086388540377826957217663708501116992909446339007335457674093291506165485507025876172581493289669496643026040878702654416804328281509547094679036349459844265919039524825558106507993770963966661096666085796435507953642081261276178893115125783667503884291397410724511096270906669887690921393613177601724422176352854681557164557285710094759843178204710898392658635512412121623566120108212118150867546813165314883047586344020412264462905915305404231189847880622755330351310675726348505462870662603827940162275958664086555789561638846503811702852861475716719719108143035004830359822034221757135904762175488139612419679348268214497467336376085503438904722266963523508727363523148931249500064997470798306576862206476595293978549988850331856732453101063878965946132100978522509264862051044998580423224066146585507954730239958173389688196790952509719721455934180804048480823631264473839852887459521479805309441746278226991326758701240355060482519273276026741331060693119941362411557947550584735318778593529754503963661338991596551080565868652256916324885679262943342490637819106567635286447981242396896992653780522338414676316109762787289671014947474295138252576995798826391206100273541060142302655503849354690890310475957389926215679017932198269483805024710343160172144846179968303720472178679621197969644797008131063770124135804287258716811732108328241147898112633474713004571641185105897902445136400337641499343418103062579607951184691755309265977461634566812958881738421085251504082926103863086792574642426748539294992175710033132216723327338881027353864572135208857334188803830893813470325111098880949511533492865359423196300657213459164704244256037074730227236173468612472660788854296747023636399480495560853995275886369641933170783496951703462527362993881540812400711039841028779802601201258784640800264583873253770475925499347702897672658297915691598466603058133731011060804105985883957523204681253133899593663690185000289465518554740911466766745148225091364874185037746266670287438599478833439536915065472488390008547246549728329612310992179079436881034485085201718668693227534784126629143424789506761928124403673547532481898608066215575375316408713384560725557100774196509621802357098056502595499177658636237300838462303662174000938279255431668960866733204959191447528245936160069234059824042948907181177057558315946595191158687462217615445208489263296678868037847961397507686826551556624995796550091384877022529555933001347394357994877568692817323910827934315808359392579233250804107025629827191930158320654206510761151993805344979919877997370124872024804660523340249540477324106620486239717925463492362374188980608378816978396600015537028282396382414789878721512672301171776111790094355021122830435191323190351846308668253700519678197534489636956299754740543898801419942451295522573691137514444372039808445995666977131861178350967262551558171115213492528586042859192700958457814517534927732761452671146991409482634720328764061723673343446856620958350038904211792747443662007201399680254227941975627532052163998352873221336473681009435796359393653077918938182328700823519122602788862941258627031371628401772318926631813174774185320288997587680724175050328048654526630341686162839975603817898204888620282082701339340455883817973003127610324655043533144953599941077561410578460408324750021620357271863037454372998830049808245423656654262938880996427074749254869330199209461334869830595826758028360948519383204564450027275784379722310654876587699286912365616403053532627543463919006840775519872623408139475627994610842733199796313227875339596982363054816992110969568534453096768159954279213816755173335425552434149141736161775177876273729013657714356274348920505962642537753751193117867333230033826153285294671243638935673509963156968583589585458505836568112946372385207901647974329889469500427092578418773615231515680944523221998772753342909483148960034819509678670157588481259355021589335008205664165400823779354872326547052369914719499196528692750698316491695057897575309738365253471193088771279057905921793788287797168770081297301444661822778274476901117508194876818455068730656297124362967148411265077774967530340187677036285003803277561652968857054275899193469013949037646901809876761125099837497536746946470818691160273079416801818051472796722222787856141900892822874416213124500337269162823638455220688461807876034510409448435171459257646846388812700652254687193276971680073183667730851535775599502713737697330737802987604534456641458156125157408666515607560998898131503984913104696986549088520751738804753721088933442470420020113198843566243234046649421705948031574724854676467810201113962457473195670985379364673778180914778559429189034882262979502788878454461523240963640549957337811615495991895859471958383221797720275200619463672735845567407964724347617261810690059077247939479753333269583844851992528108725710515165715163934600018741514948507311811271689758775046652194076761722932705918896582257421140976089544375168500162177622693038489052366436466613341379893315191652967474959383465282741444211046799363201970776761229749598427011965001718539831681413430663830606559298613505837203583111645443456338247503652457997395741275510329748668779492003306979839249605979957750721802123262163244136077823699875069748620568544425149663505851665391218144189185071057064160657654148632523873709956850523852615024257245053545299897903032202485502461106394882226556069570754722874491600788234126448539622875641866913315111600806374892487430389340731437887513755561908462100439820010292865959938535924560436998663702069216700885374604240951404876523648813915350481224936507573724510753159027912316314677355599692373855714122579514374950038070412896242897090716683122733455335905884289851283594959825869894179125637632839264366807714289273480842676703963909617987171772281742840226536688550048888667500187994921468208264113874289726220856607980523257684330703274802629790462770048227967952359010563644146375436059676348012630994235169471706901837581255647056643474909219767911224247542856962068490637290426519299630394313353781934619565242772333093275600891278726661628436321223219258772300949353840137262795173722991371286355091781093162335801443954651379959107722696380585089072267576257430615053469651472963978839119027798940050848760691566398961739064304094606535100173861949991689123484337476460605880110010038403697033058315110539181961983169958384706428739591924305549120879388462612123937768469226394497470261397760281542592986077270668756421507071760058548334717944898204658539595514843489760630873842375299560499302517922729918250452064627261327549803604821053080829347208867828925844220002480615098696360000000526377881240786240030974124819221044295769821408498668693693724756333987938030161572573894555709214037060266770994315121625786258214217104384808109743235434608773498004411879391488163332625256402176799404433753128834572438820268443987804801772730490937623582143718695841565119319498201661504294818447962672459157343335682781433331563218774586911740297588116287086723602823698920316230873004544238967625265844568332024071160176128653807111012570064133919206450966476176544415796254932908929589716352246686748732478392278433567098170512138034479127592710595897296948688240586997254169891532519797347002442722186446698953868682859128962292243436211855989090759254406425208566108061541204902414127613209118024772994038990442813527744411741712425498911729255770752825049162494494633802884644490217126054470323132277016661986636445844297088512749204192707396262129352874024361331777112994218841632246452225665471631228315945671812737647936216050431139957581945928574588631782409392186301701157569912762901796130885175400355840745567292870697911040079105089628223580896887233197135803630522250489835246547643637022641128134443764158080351758035700139826416904640631824239682671432727226923710809365963178090388789297519449902312039134521862677085156693109839901135147127605708492546810709717789248474152100144264008244584784620989358184120081246589253287205954006118436596913838332615579609820407204626269783839249408912523601746751380713464171113073982063987152107560087927196809797710500616869512018905528561791483513465963558878565861020499414715335310033315805197754435808045311352444010915496874425953358215522903702352879477438014793579899377557529088674578961561995148324613620663422538014960734958133696706836187172358191920101430451798386051005746142695793692949689894420730644725330813405645760321209529748290501995320611105468574316920940236505936646207284052355965075908783560548372511792240834885077801202422282668971334280995125475480669331083918335844325198502854386467710915573376013595780985663508356850748355371766091236443444648099006928843485864591415258058177713161334036672632874159000993541163854599961333864898819233213425214548467772603104827500777102473533527801348153300588833426783626274882498140074744207088071664942413648249263301222878563700803349569610852782735517576341441732109675648644823273204723216397364962806621294566328330115191611092595371939176040472524672031041489918222509628327791084764877956763346007702555876577452212686803094686957644426115664860369261717642973575260313839477619762101197375210207380106406456194455963606537524187557520739838224492574264726393265825417858478459474286463918690774667174288308887591468804617713206128982770344769064680092415998448028433592034409743428814460487602260433479026637667790287503542768399155712110695175198939255945294817171645072026464123324336401570567801013398131882947387592713603875999349947855589475401169269315968322377311378701174719811321059230158544723084805275031741655944225548247285567177959336677147587088181804799166555086127560708915550576584465456102311039852796084044536623665545675386111949503317572681732948242215011123291738506662075241344484205083857283194347963673418992031849652026786178884551261766810386638060615393610635584126388781765833816425851226182899258623095061358143436354379734859720549979987482915474371770142622581310440290625893002606561694666963896791581643069838304238516650056472976635718753681894879607643241452401225596199213455415706762055087865832617052020404817155949776782396186682617551273592019998761503756097812217836238238512777181098633307080305214773225357143209231710892905905997113060215991762026183877787455390471839487084491452096732292061222964290084957321364052677787818163315257958500663700670026834270768071890554871106924896225281324324378935088821551624705133147571147001579645912027876930503082897314322558457652440377735680357886448804535195738716164976093562260870043930922822181187846009089165275689270379053339321259967915223840449460393508945265812141665975411744360328514811072930245343519004813201179316451690333248158791089847867442741722070119680204640999953352804604460436709162382404713707268828546458907091025335668199793778740800130897473853823530384187884512317629701073265355029274743246062864531659826030294264046638613659988173951451227833123273147741155181131990206685961707115736144388239648148156380906005364863940955250385825143946091108534152169819795675498530538747814527564769891140524675501816085341069454285919468419853361653591319991417799363157030787997002536727209299678054957786949243042021660011299888130564272743920508130702395713666252456115491206647635984236001813488565502045223537968017015651416691321590047423858984404809602096634826445527427152889568074700707727009348467594980832402259676444814668752324804582176113128302046359138376839079976749857292304909763276522527426191071284079761313142954126218297348578396948402196237192825782095247605520908652891929000183165980587085369212383005596073146720838962570356479799176944243001624284894242317043330040699297476053523051743480032815352043563639113172520476379301429248675144642693540574631178616179178711408119600379080126299441678583502424056431312553723112425847360223282547213636703409326814694379143988427925348525085324337803483938819155306168109255285285537054784201399337447359722420791247777017341467300587441780885520655168011349383894233402028057136724361588537816517639079715207415516710889575958455671636803109432494588806071792085994408491159233790718234679918379104759265200554208721094296516460033580927507342021249285909096512121814103139666900772049321819580167719506157349367747049702307660632558962899496571495955164746096544327432923241935601342183087687353217024661495015866152514450409209351681069740316301107948271788535893797554618604794378368358694031710858073824976765305474212953416062367780506692697029389186945817137001373367792132812822524695893638710691876830575673402287543568345936426940560177355070818230329191980403084811667445054853232627061604203399210397077319883965797043373361142048897824804046629992234043193731252607320870346241440216827208661356760893888709287056949917808637039200393780728690311480588173235858389575597994079814915351600390154915910578878701313951375627808502408087818451575848445846603503982138412096225357846246601680681470724125101384400190794500504294517346416277339650231960918687649818382724996383261884313948982963674252888610959395126105216509827414787844744804097450257770867595949236617246760688874128676437387799422970565353940147618781764778312161085342586307911886796807275883905193877699407353988952898259545144596749262393017001370219338476775242832527084879310342423670339648132455742641438819902368339489142527090782643352237919713899153309542115785568581023445496749519492835956764701464505323863722747562049478896017765747998636966371223229773052324706717976165689825776032830228541576923355650252398981486426395488671066519400337783422779165166119733644560921772623027695490439051148328089819392788523070294301749737799365536008281899877047053028122146451043936500056972227048551052607549542524028439631900139876428267373001292658884747245029676558258800335196742354924756679804865032786163966844489310173889637062792607080874197971969119874218950765262955109123428904312885507153685215203485110433315400063391376750415977832300281278763249580282805994332047275269131865091891130851103573385733026164582383936103135194749769962526433010661679165248426544792908597802756617993061473694441683547278073910908166295522317849353692816439153444106178122843782611493101713272733026450076967102340240461082458773063454526333362419656401898013329738301715575868703517649177825524382783630358761253920161851109084154347445340453138982294984678888471594172948252017525520903395098354805122259956202990047099740032183951528526466321520076554040566468075412578366242616777965289627162176209670888433776770345096363477127519961073490428322084180412089696634453016211739836689959582028319997466727076395447487797261209116333751537398822735435215199641519235819176212980662775936154621795095635021265459614369933942247209276731685494634567161560954152416448777055520773069633761208640610685907112467571072157504989816244881083028032586033204650327008789919940563848562898062554671892084400580619749558221595997033953824314325145200320851581090056865805265852877321490887897956434336737332721591571891103976810997476362282979964921429851897851331006882941991454863460349113342244836541143252479862814311700430017536114299637020081102036392080995023293608079983858910272411611867444676067672247519255536036826718483486100667056119991709052268379372504690963492641356563129593257020510014255521260682814363552067417260361543100947922836667607550888592042512007073612061169448087303699175119237595137836873836838569309989481743744959965842462050213883325846985815625071653898434113376429607439051893012920806026806740825352565003770189223884718054514326433148736498616508676519726571708171795743751295103751171753471124581525083566110557516672832069913533927118125675713230760646142168252848758906799137043158768171047444819313031097914238429689430811268674987176601564332590348085789101732433124272995797868726773027057654807530395302716519449880652877578839932500645879208765267876385451810472725555085540093416419790270111320241202836830375542880205393633459338937511347770696517731971019398940568958598797916508910346239677030919041787176591571460706688345579184546831050176749865707546597331607485596251209766355118000392997067564489022575929509498823715052339969057586824048641187174529459517505173186823117611366819151939795165129681409760376110674282198683099595561158308123174266264150707046388299195902543306978676672155166968832221964409665493714141789200786788153008129612103559398560582586042001135262730602011067756815075179843203088539169178377644988481299920498960792561796059754424657842958477618451664666552793410459062280552264458114331052227881517054609698783734840724130141774004022338784345081572338374287977554630382512681424420973936489279224454135366957955477016865413211580227758084381149930755737110975721552889671569140723932835394659017904180594677339365740361836791824948654917389898580988269331549170902967076872020785209766115429554850609349583855531015961030637197135448166877164925597194829786951681587489098047653407798120775742818966804440887362401573054567729668082909079189892101086963218662036179815603982136433094818181818504996486093122323409009631257459023877690841710297610596534656326875423332996451221891653791480058872775857594427095480741621544017661876725627431966658116347688255929652720447201423963062817533434833887520553372028169337812170959152221117749074165516954149492187868221140159573407094131082453521044956816376119390732706266362166368956998257391072784252943899034476599202545172073901012540362943493542557485865579825217924406082511445692769442225449820960957538221040691839717561247011224790581540654387578542518935119014986655675480150953238388923437715142355474628988302029545223324679319690084612021806431034766907898804977838407365267045104811461162579583446580578058252045331936806275236402797144859380536513133720766649154751504782713735580874873055821948929800394636154207701763142920381861797510375872365614840386190690431864168168394972282939148005987181370593175309537998729321095242463527340530477956798295314054477928991588561204802428605576097329944072886848610081344675420406920540683947333553022095688714286710265375905120724837163239350114139620966332780712221716964665347326137066510908536996646709814672884697104179524931376566136200529285096779580220724944946266916717931381483354380611779216230082124145825183490829847764454070973775940351782246287541770209128553429425362171482592927785880945656458053155339680931299791890718233337064188514463061222938822257284288894827344675063628258474179774525038026059629993342321457829867656414282482878911637754377451630659691401713317526573174886538825019462210879909323543917989603721602218780030166079843150071704331875661734083215293719530445922471879072240077705628255605206668899457480456066777353844940267483712885644912393059808861350040451129161955646629096824860912511736774984212988441636670204249029766154554874923031341452506557666986834171217431385732456639222488460540809934260189201608579567034210477207537980362889182154187109224862014456692345075663518390311733781391178705036755460101837931344133679926601655010983589766071267635552589352757214107036841522646877838375917792741152402784912240704189009554661012225869238018772598006781758154046602442193601165200588076499769064958918290579119395843383717790090403394541802011966838489718791176999509990710575996815571882316435162517890132768460690753511229252462598056608662313511403649136160584913928339258388069335425218974534840166360894440468979351005528346494476434250649624814018343655832933408164062359307884967934022434941017773014886058483203899946823048174790345517605421137067723408727609554946227475809339319088750004141480992112225264130741504601133187462909700564062482773430829526209308052236835655857707403042612029695177688901418452068447291781442987664410476807157105417048705641427865286964056767460613505895159439061550014438107674127839744980708366955042670022701818086090655540608615413801522538922112340957908497176876696412480721946199437105564280193008665468719515794500634394230415177621792857835351969858631275955242756024058415131058050319823499610015028425890321327861298555128131990647776062696620059386177578553914549622273407257441883466015881811898354084082719108374168445029185223734871523468965757965046850179702564632612465135572032312066926645951654500385178606419003278056955420966127029642033761337666311130659790977782860358651828811392009567982940628300418480327602789215172329928641060313983892797438060860525500615612383525592320883396223793567072670139707765334914252871175482646444175755486520216501398798617342191590380318799143502467539986695132155404774143459045214244864828321174079631316941393645034291329073072900324627784354990778642282455375933497554311804735547002313374287227705884805061020164262979337104048600120258455191964120818238579342744557001431683527666034677755296607840318788745950723557879699936798563116115608265991930289643249195588535375076457791955944528568358182675223700841332141879169135965481367095995733894743289454705302051059537660023991961280998951898500361466890481504793398152194977052840056533771301735137261008145427995131533070223591832204016939625121926773227130480767422800311105610275979669348870456315895964769411004009547737079275669903894616776187811681320191981259081062092632164979561540354524618407871628685872984227294254759249730865920116620214944183294676816638466994645674334834128434430652808866264573316627562365385387614800951426360372813217560745587992015519699675862560275969652621249615318554665047310768613886131769316394125285775701704110987281436636593564288587337228766826212932155186811537002898329546385239801682805779543601391496953065574110447595647748148634024677035198941379289021950310908375660549419586775997183817668463688587136165480504148973042942118746788304671518926638507488001081523818119028830289435703287443859663017817358232109626105273363886260874760105997408475206986063611595731697618007883843039195008046045183411940650018970897527716100260449566404414616924813692381430359151166304096008608263864128681237612361127836943443673046389801411018128274341796891181620270787948022121117857766378822408471987119695271391686831215651375068965391277765754255407174634501100104301084693583110909162743778848845842788085819031365280236199903855684399742897511448882716249677886033517557028694264006389514512439545003421666307540444376626594922317779137463460142884669046093886501979468850577913357537978725585154729837571653548546509350728956445400994262401049603759682283567861369775411788189454647500875525712197928081567430743243310823567232438061332472930875565045460098671986989040103291715047748805773574750884108561589550105946907424782383049205123830386718223731856653691150182842927922096478285013530042683812449273476492853491033715131208164178926997958372824462535888177898470089055220050428107265212049617460908168992266470355294732611134001528041949268102825283285892715640880240568188041669784621971497499930795328082509487215695865040960658806448742991454358610902419303523871882749921459118138135641204930550966267998574017194191463623141631718799369781086730619414809580162350059857768643973548363975911261168062099606979076625977039269197009487617015228896157004856847071201454334437769072100549478950975123606433332971977881656080303027558811006831923225458298466493814871366736554441725952684151238409928031136960063573835435749055710746361759491883613338966832516285458684463850973354722815111703317381845980270287520717383723123534380471979243321477074934826682317286525180191840907088558737727407086113321551931509994097475880836539221076429336452479510648213629696903608892076488791407273200511777691850438998004685454247265496590668473135250525454932710701109867262430893652965782799677116438021749108896813788496843757744157062063108159033420334179829239951135557007752851609451386333270410170673672355385956530793667602306385577185504896429979105628424644725777110283524254247841302937521210730892734214089286075621312231672098961300813331983350061843396029860669893712680377852381366962322843036769772632500873188964722656198287767727675699101549276864190970914567137057963647758187553387524753422671801428941035446515117973124704104017144804299341609583785602961524828372913330196995976354766688561786486347052133779103171255453778844514336111980180931723283495808844380943157028591013838871379219011363478940035858264721245507237554732583262238309430862723283072136817872187699847458746801813319417669639693448295962324574739581174124350471772408810319594922936038723708516235306258468842443253945719122791972948904150876324242498085019549605082940121161194391342017851076611135303394790971365023638134055359199720374645762034208477317376895575014013074370694639159481246547675787715857013905773520200554040041174887062144306263121853950471082482849913233450276224865505204348350291332518008608042904001135287109668345429715403237442050616193396303950176388651490790232301958552334768063820566582130095660049355983144810854269103238219116999941802687808734465533589336608372667357576729241070400768169075158344948673240067376334674914464234153049009841063517921896938578582032794239859922236014722518075010163961164927606611634876106107148584084901633866674854445789983145113362153570654202878879834309845119844491833434036343299900711282978555443717559291238920932789075564915974666661730230257993539883244188535876329426997007039627504255343825490147408455361012399745605030608099983888287720799514010044817740827811443369495712794082348637960991808282288914247121526355013852984567751856850189919600042174671237642083004972431422982970803355963118037935985104278064156177656481158016660854751541934323300260698378769675202930108481713057755179838142130841204825973521678997640124311022144466630295899126882500891793290780396612387225924982727589324372761218105979560834080851615398668167527151690620337671864034047178501533912622496729316974317326915021352549631140085259486859610297757185742753170945339738574572158029951472214758682406540059024070498453728601488805276385571292314405946812205633522998849259569478555063267253231048793221061701234555989632990219648411668341938124370916824957900862865161741989220984396282517874283515345131196116149776155731001439117554632025948386493013766816568927029807781965209161574946076565689771710992743259676766366437287964490933214812604213542407999969319236287187159085972437881281160624944721051179340809362509771455012108511957073114625903893272991061510533830230887012411899114847313578346498491584152284398671388405428950035331764534998467434389574532675726676214767798717547686704696823081928104777813622602535176676067612540267725445093380755789402980207746639801675396392593095496005441010520752642693213751063008857739035152634744424612483957105731718263122075951859911606805956312373899598978684461861736089519032278582277737590724913298142999155284460792241602828359612790062329676373845038306000895010089399795166206251008887684198732293935450669845536958024492486388528292700864939298112220970923395432585241200828239265003849129370897353834218730046400025528823179238525865753894250108220408343924598193753130414733076337685752857273631392338020860192802767840638990382269806473885749013261324189764756733220546617405420595346179813298970221967140155103114827840989447092387936650864998746196126493296934997286365289426936222020463311834554710706985623318714820299005018212447068832469805600343584958629271078734796822025758797414983211303551024901541673010641451879393806770587387569190309168559862591602008539822285757161591314013329737530088566447816845814071191879248769913703176503501417051963187303594121240104734654277813335590945692664492935746762460987939898916771370584226515086127410384148548948447361002808515996155485472326201748092303664082717205317900669117036028296584254068676442241652822719566977431255767250742872970712372303079981415088058775109325129217462754570114927596399087781387004118836949784858055633251956059777150459636608607225012240333985057155979720530496563889855104697409971398120328199248183468554451974561390686903946589566327808004785172242160032112068544352523464433815913884441448110064250699713310967664974591382907950746884562188067974003716459053431283624331483498575331359725692406879739025150680616682874190132078506409192757899380974078924565495635241053221942887302603481851468513768107815059436357911762138326473328349045868105847518636277497095290833058855374122198770176173683302505829955983403727914156752226379608592496704002388404467371718406635243748496641407042440080099798125682939426649395293285962091201220706105238039441439341262160450750673424525976756548772906078411887720775236551944853566258897414706845382172688037483326142678456663571868881201580543057849987237569601465730180764426072215651032546220445873828499569582676351322189916812706622667751999915926887611496075039527692564341492830678672198354872601432819299356809229767027348213838895010325007108140499096743534481358037184846779025663194142407079794445459189493024616910624332637376742085218606809198951510097609135662637850012847468015620284611805617423883085003445742394257167151855833473310816142340094483678369538286774939789061239620841995248617436992709163127580470733130123263927149221109255214069439018034572881359140699759832456910024929702759684212715105703468443358363306691108153613422505704020528804560453511887274634920567065407356672881102239060112860818684661954860995844032581823650489234093914156482634031967534225729197344130321363896100251817980449827648773861559344017650509198768672214763080979452687457558375473163570332773698652006772801109121752654916408425857288163540119016099913320975726695211469977872245997099799491538252072339561946133029811813847571742353753887713113138594325593812076168823680883317904436311658519529338879998563747044393123179170341880979438925676008766600895799256842286198654535291275439120304504455567862021623495209285847632936951296056331961224341572084934036438587828858407130157982692895734172389147667966477206619548030648383708904513547542731234849688648955646512223762829633821462760252421388161387854573151082771919243617917183001682618533741995667565271035699959196268895569098483695887645954962314893388314505971912042465339469253230439873438929831877262994034309753706686278489916045355098491590488381084050145447828877712688318316999036436241978739678963305596159135072478924826136604808584175062479712117044280701553172743763262373548985349243328892058570394806368451391883616291238697471494610794887889687606005071484448508155149476202065114690809456898988211601111655153811863378030182270795095159891129352687944432582073371462099371727434508614170006666089500699567764267402931684475041486196272386662718126174432204432776908983804507227664604044294033610208386367498400177462269038019631515651890772775198324533133048226071526550268044676982008657409590477741409785099993478439150045144172052100347647533622335799648991030553865640496942558317885437389693124482882997083742713391141483136381352475041163748624661543909529101652951535772930448981555241941681106742800500493208521912671170860655023191582537240246149825335940891609201082887612501973272972845359062576511122651178298537780323328492994240771397457399898070618623854948491648183714974046959986687697130459793560039989218976357517149446874456052052323662233648950169562721260590903021351963346422889172736006106743616045917255357600861553500024571302903992687556657738463756029268650276128472238588695348536354840604821203044334696466113370203856238137623260640486919993348727215493687403399205276650365548793468722334997311351315512833724239986408587978013014196841950202638606559340795030832301070564223721275685585478315666502278606691411322686639050171856122782595288313370438031164124506904726229702976465335984475643550319149949265019203026867202544771555077631316758812200994115762342990039377873492103453408493215738824956355275109447420163928878282425037283792064131393914734337864936842245536427151319061645158866635731400901331982429433828080825139739595369082550582043498149801960353092968399805511291442849863036124018121435788931562715715210966375486808397304813659881411616708233021615339806107287642215820599834313824780433431418103735994584406228963393312944521310864970838030941052026506638146812537140216571257356882799335428266724757688798368777399091907417435299829796398711955848552367841484927961922556114546324036277827092175973361956178049081999062993053395095696015878804634386660736379284916435128279277119702182404624444825482130113081761801703867026294481227294313549319955554363033410348474896247608485746873891615809912077216539185229416597115041676162970738898652379613906602506262646976095191329506969030845189389233817450048555473327764893850271538950687269814649096019096375193544168908055514813683642020372711417386415325297660112217570788912996635899105739420067074002984671763750357135440127902750389229940652928555409596568023144067728272322994031647999452105929185485719143461099976140869879195859952948901449134496558413221953159244497295999964225623581344194952910405534070479554455834906826722059436910647164554930186940658613742921177973565374409664802401664550958162544355431891299000020118962542081782727433297361650207270580132522878926654715230101393256107781965057268575739666907871666734252096068402339555396826835291104431544738332237920544762287575370681841863424438216095730258540587568771893941497394989098313334930378159248829068803873774824430779584992212265610644274311673174690638693654459523537809996799478134539366933676330572498246957273236739722719754428052135786970093234618795575337973423045538192670726669573291848820338049823757415303555801028129826487863199093924693101046069868868676053507604332623178606566253541996394967769595748730388596241620506050366032438385698049367581725437137409474679219949377908826468364141963991141911315481738473459499658418566947882158984787669986724410794734130411595355495675873316763317584072752588244562568252479846038337304075377922704559341419772439321555757372469404397189361058801136791097014360562533386323824330826603608851916743389039013270094491886059514727436596591555768801964813802130231611097097836227533613378828867863439124301370114350543806786224330023651706160585430283560477345111066111532795273261647826943041532197245931051609988890074569903769763373003235372669590131814076659743774055170569700945045085945225612545148071145678469482928671097352406712662651651526276633790927246900279703095340809252459363524925135723987402931476912512668372232338517841092328174165156742938920064336891172789385696915030061293395781298017744111800223146540723967224286037255000512312309621277806492202445995730939161428178015573239285297730139703154894273200540769176064345951802656377168123218044612193111379874305027105697890435394531324777383689335537089489996243460264319410710662413788193649462612733951689780613448758956477424537931474731945417432244354447197972932081418464857898741358232786249813387501805778688531444922543677572911408367697639158528409450211219413656311837198318438008629812197716458097627011084857403839478806357978948771898026653166187109377029440064842859505150977724698487523456603683305867617007237453590680096480088296068643605938543951497408020403843501904577376644181225256832861145604335302436169392821601854758182089665496698201608703092784983786914508778839046399654228305428430184629526498039812538365542598401810694239283590601174110260623091402340319578481125934489376425641644231727023626384586483929713198487735075265938966449869268103209041987611284166989342560110279355189960738910768726323879901853060006483935325477688990673759664718163502955669194763238334795083548644554645847201476567680077402479507577330260940797332295927614600213761035326865953257417979363822578827076642493833511868169834830853042687860978655280290241932537175580532743108733433656825251212083091788607162529190149809849646362093190478530962849079114133387961018223407471598430944596516742186736490570925968549839049997215324108336370588788897719108219551945316546825059937676368024884738517929761064705482918834941449709339117694248259101429970228977620578839645938563069391523751225387692350218304259505655039777564012822115425794147828504715493271518548257601183735303519583614881035321875517628855175227217727139249371548037285242273363754253903633604430288246651421781830984608912267946900278091619869381251162124393161426925736094132535054552568998046240222338960870232979419229043738181337566590893552616473391405832916973810590914969344179176870820720480947853409323733913867521863427506253006074060871471322493956360517905135262120946424599041828742490347654579368759973773854006884510236871419611522930230006145124790175207038241705302699428035755038855396047326908330760267914563749154626588416582480367488855643569477218707672522693120130307326305457363164895096201433043955145281643363344226679947232935023797843795030809881893971222143351962392632570934147742832325924839449426412977836075546242827902532168187024737555534451127992388124588990996922722696650299873156105925632755054133685822098291456830577580984166088938182008945681518412400092149805350276233938940009474254908462704481420469974571256436137163274273933811461269279700538858724122191398143934324771564719414283499739544074631696747057226875201896958973925765431436094584026517779286626142972988619126284920227773398682011829022360015508494220027501577217865207544946774395239439179994671211833911243527638154815824431024181821069181890183468644305494594778120623669499158741812196938264807062765538899012260951124197718696568101348942312497283134702446448679297105585402860643255190225418380349742168983236550152159070681343119653851358063602256628142092294499150183501722575056838646968565509099555379950647623255932609172270626280319785707003109975998081782278261893732688264529797440872144474215710266007249067520137482477633406288103401273088774289657850749575956675508119267646711526042583747044455899363463608219292250668916422850512281676181025398575201778086652153251902836732119728675993534124027712871283709656109266528393781363010746928922173975972119591417856266486807280304062672132344299420769924359373037741782229593397162372539585155334665719668396133870626524318390920233431706441116264812295514739807113222752254879890550021634215215743960577501599188263103793850862291973943753695939506592654898070156527103963211930689361135417048813926562569570351422851249297267425901160670229039715311094903698066632441871708690255428661124592723516940470294177640057702025184312689379247972986144616816382509792154712163470749352076034849763418437924819498441473287242252811212531888173614063387438344582895727516236183002960400305004477460897651057531387993241209724756851108289328966878829473897787378612431985148654005051561671490080714924390357263330297095435451235802452823456982806874002419999528200105179420177884227879372640638475078100523361088090394194489073261816753046404185632305748572598689922403000149598862307517956977449639650010765988582027426279029880017620872975815221883395292077390285505275733008286765932573323287911904514809274245083181321201840040050213646924495823448719893943377853885493814486383114261588745823681176967046148806657006294341217998615847287436479637536743260135390643997835666882079324373475730477335773829883966855054344343695653375246697264009789211610630776630939906629575870040901210119213064260301122446706498379103331495530989097973850403483089522604100605263729969032361206763949958665114780067353564029961441659092801828381459731146503620500982134967697928407678898120199551628315691041006991517634136813064816495580578532957686580379964429109463463426417605066928195928836742719058879516546419446999126333576611845242541200570402161605540650957115113781494976140045914370907076568340382546206964740206697456363932431619638502476598852373675718381194082348949098658845429439411594559141389797740753255653989435786433891153831316198493640271333812506542347000772242228488853004661579171744879832958502233437207529942188647390797594428848651715316992990364388046047534477327771049411113937406120911563585444435887113628753648504100049136313727405226504507293645228162910691303863491244576662525581176478751470573145195355925141444280975656748442600356305416950293812450331715944706221736193576088605686809287601976881503689071594232775882366397990735242827316949299291130791793477653289359382801660384830628322832002580444645687632572000920278923731959755125283092771961160214577438738123535383731334143403678190447160982831853827847698402369095441288726516477041832631762062964391394274913857254861581848369032754396442715750608351113748986545295301716783156507513253461285065003421949100637873201651432116740290662234175790428606915561005683447604226448439524515890612863131696162574729581149833886797550821167271184834990024715941676551653764999365988232286669892128852462521794059185684014948831519939914450386799351072255124647569519967095641815315350601760277974192072422704917746975184069054259171499226018543606938433055111335894050210659329192224846986699814842651243717294122371675173779447177496179430536961375033533946143202654094964648146901504168857055204995783634620344467575388514944121580211524878586559894357176564803034352147532235602838234895459531716015189298591934437133043097306721516078525542951030103560415541130236086368099197188035766478771895552307243281358308997143663465344805610210561378637807986774720482931448785418418658012969697900622613881867615476852872018638802974874632748302464507207939967662877860286435691820379316438296947050019668114312223688182119437718595218295971036438524494104338454855773696831600795064742252260466658279798884484223052627764209805563530614996696028991403946731937489751357711203241146208499157122868041380981791647986607732692692868193055100494886349844806058895727277918138753892501302500408064195692849041941133975161623313230893177121788811621057142836197828045495224252362196445628823180980928286210107860850907442022077825007334130383939497797896117014410774953373243617122819814961146071448244872896063022796299434664625288277039178011043528391592310233843053420101730385845474339508323315425921878880899466936121748167012357301513749624015460692652157351011545027314963065124259843923375905941908487289055591735234387768482414024026727944819714682217292312816678404240907865508171544634847429401431743122624464357687469240189922801567581746645387813095272839545691830547136053742895675043543988603762296725568438911770044941757711798084375558548694847619365777537466526155119104154880475265428193137746339127662229593343436538106678310051602976491642525554537032954271588305724671848423470533595665962088127283135992791966519715091194075138158934091848279222106177875263953196555092007734737365370483946602898264838731192007185391839596953628428318419484583562396547091300195503755547274848585924883835157469939037984730145849508209824447581937561034846754897631818204183689601953998424257310676404615779675744836526538158265505156334400342732646994005627861078951646346974580563237766591072182137213375964733109435379079243111747157808716721980693786427099338440739300242211270599253902744975141731033670243772069211309627997417052514306705874324347072949022979453623784601014733591491473171798251087999221894724466192078358937500913062732683055460970674091166520909665747233727157329972404294238055190517082556228331932331886186011171035917354515472716349490332291347358348335835303928756749483843480324666514786004190816982418020155594538279292779484037715870730598100203707118209793968045029020769427154442071339984864078152102196742238434462049165145835337600448084100215906752860680114463077055771243738728785203756834748203978055512345357687283352284563667437702502446896121882824062343928964549638564550857379107202591984795142835187013083342814332083095425551526824043533023131552769419952651697981849865484239134099438187008446733073053376720678548141528219885309307461362275781659918722343809049855727025374666384210657467661264230960767287831311863314244753232109167006473917015286688981545296769640773493538863794459461973770808474913718044424389010530851302422566920375495381932667201100665877958965884201501130021395914959044587772123521861714307305509337712289592470765456001208543989684605890940187930101693816600547571086023622618958470483659899358923047896096372225667607497055038571065496838953232993609171098681290791729522932163104414450758830587746043273425925941350084332009552392532032905168591069179378593642484550923249962578534910760094820520301920537516530668889905634944196014171019118421634846117687938709369658501984774635291360316829673116168659502902941410052694354193231490969316491301352560391597037513180334019915408893031774602396076681237577983626805783416131736828803325759265044073929206643901853072456372489232618190682624746654691109711024494542600256750270969147447903808721342008035901793103747864778506982705016325917686428354568152844050616782168753291677073189300110971725423618142836226655354926946187595016537044697293621778067535301323608558674892738835601936535757830046378923804414208926342162567446995638157532181492303022266283945980153873549573752112230553800294445750761236535840703944352987233254991777461716647319211277386273822035881850346129601046124723152276259676337436036653672776417031821346978641164541589357193999579530535069450387073629115899518246470579122031682586732507561460842800660359774572314403042352354250036873220903178522937814572113718843144574224819705154558861378229464479406236227758274681739369057115043646252923309521566173222420519942466141435354190032183507133350183429456965602171569652296970080441511866646265106436193937894853829632132411062107926193037395071049345514642843850404153358823573471237231391732620320084782443918663224702054059931001439958809441698740880779735554714448937823930971348076011410964454088278630106182212694820408360336073101698520017752872502242897166324185357622088457848227074047151737934126143694679559741163492710346034445270310678971249075498515769525749929581598890896854699346172185825938645619058179551857470158832662351835953234935303479608813040490798059299689088491598712984660229794036170792646934681063284000622720882024610053441422260203388595193140835260162476602673240443805553455171177198953178555019523577785367729509645212991427305036501217084192788744879908293010507332299450234890007957633542920355588086441884116194563116918368050356863984794550369845852501364579618050107105355308001888160947862135226774049393518038789897541304533767633170239840554902639475110341188467369308791759468745453501908341171555549116648685956332291591922913888841527744147755616458385196888862241188984190967547592507279876601824308642858311434675945732647509651349232634066600166195324043923383742825826962366226511960547341691252474959079959392541050600480276051044349184837245252475021918256710239274196696468128994231611378710607761415525873809574327296705927601476555325279913777368465966436109435515916770016155096390647501186051167614846150128042202497936078690903804573432618839066395665285646469559342354052795226287205946823913971310470477223842965749215854302999069408300092414105244306490973226148556385201793814440745192732343196489636504421122434075522509225878178349742503062428001175960748187900751257612273509929080481636614480019184955717672658061174464852261140947227664176517318125547176871474754406385740030203043977325715229131480482270548897711957765572915431336621594256092338229595126252365425724781843213909466745040722508527281798754938880803441918155162000947540206239125958716633545159050379246948551217769167597585790289899138964757165326038377784671726366245070780576852159881106573819839693168082266959772625029487630135813860454542018450069024459536865132556588053525586576346245328478018119180401393059561121897149923739234590944256734901784921710676948652366777774418873977051946282060648082811450465216882658866326138169426245044021833076644227444522929887775426513708219226325328060269231647873667270722126038137059316302003983018209495083628460349892222697904438237738736820158430687053863770383528184474910976952405373939328630266312372123767778069326257343489579213720944005814689066764001453727152777521678392663644853181489082254322077907634390778604665776659777633842973367130675199095351576403963267768057712414623005773317078292900374030342440848289509904769657402396354509140260560376188468295069015751494379743910303394927855211310786269678153150261499939489152431148746824936602536676760147651246960040848506696731943711102618756073135511663431789072209148889536354069719896724030143005465563472562154242810823389973537039823362621760139531630844832055425772622617810651132404356519533907271416051933332197466376127817279622394680543731979242598563726326575594140483097479533528443473093928603522114467569080678617623184325312359585907926690010064771390283170359099525076072042093790338976563131092483426184225640366662689323671179912060071578932708413416790431617837781791525709402588803755254690445281698351498207528835914742040348699574746197039941220723864348441112287205891556253185701094911708033135263337873735693533563377007722474177238337824864053128644750863013351192839832569516634768195826712981962443110902290907177302657576276347709321864543853375429187218707800191803798059639318291560535323820373131825665372096691171159436527926723367027065486630647755896210080685207782012569657515197066091945695851647371086488903012202459674503800071272577213617361130841931683055209696223052917252679594514978715066414946589273042642334180860615818831105328340863926776310941580455577466773455134727069561650708752665758703572077370106941272156525905891391083664193364391322880462911408738728612186556392133268008439527217315317911717582305610866266052299418131578432805564834300049571502456228347199495012249411744597959718022199233622029432535832649456686217029840891482243590291386259392307080109318222258267411433649014011053770058572501358162803528440309010362503374062013502436687021420383062788220703123700969302355209305088704496175533758768266764869235169692320087727933987624364210810218337820306662579734565447763660696459759614783145068147189683382833162029402400498005090724794820848999158637990855781282535527225963605078736550105283244920946410809412393247303277416569320690536077564460767535812464246939614152377121420219480877379677807293501840533109513420481337537706259928856531826822813741301968092403812900229054122617792902730639097310913788590978462741829411766506618606075045533280061120303489315855310620628722505228050735461391118189982664684292682929247818871860119868938039672989279009844817718620841614843693053776979736521657960226246213276517745939877640127052289622019342406573083435843134165794744632327679271154550750662284099599265471542240045294711286105037599234518145419631934416147202865367399455972213526729902693835671169796474526151916010576995017151978234348737173177418874496643275272190997095824235673766575031023793410363819083080660158022754449204545952637371953379405332649328752125910847373554979988403948134565598849127108914801907736552043512155473154628288352836783416198223970441949238718482578518207341822594572037519318200006358992425765746200862459955018019950826157112342754366522721456085414924109147175876850175880416566882392252042101327590042611683355775016358592229005735519433538052734376012407880243022309831777027303160235946676603729869207237583060006835527744901633390672980711268667269936939153512888830080818310938197556880595546199539230820080622618217266935258741674209464577113399726217430350432961910038488164921708624090272185211087053230576572607789552351928447944770367995398102679578924593391182967480155334893162423768227908571360311474859495179408071005485810976126254179540758930856575008918874145429446713114960958879991326525624748289202331786041182590951200189755456318088222000613594410589118230080902980276820362571158685569648295216597331495114093411095037053918106824502669101828292187331067742795169255757468119685966812360095210191498718868805597490687882859720321561384360246287003373550122593996581288010943708653687781100866592903861153799774206435094475322070846690476356606216579724374794531098209974235635889227330647886852814994030457076820890408349718883969542551412335206937343873461354257941056109227028904367147018394734036391260014354676424935122546981305247105427563265428817425703906999306887310361360781266965560823764334795686551444539012604377173528415068923870776318812974309977649038782562392683359906192724456659971665387890664837141288231955921028972978965297804726135803457836862824841283538207357394926147753309318631740876172940412914137151730943618079554836483724489139688204970306462541078929884913324237325807220591560800544454998402693547747148045711824748925982176369711620437272615462561134740047506005939887826215152325660472783041036147707716888187395062131114088579872597024101331443746287699742992545567705422283391589804437954151175676904201748065510405448854221886686164460835576588283695588956451292344296083935024312348835965389306625574836832606827382036305766976810621867486255241968666991299135603746436445624907253560071101035743074556501318808168538487875944573474859240971388937101437298856790184819397680741937188454026007291398834042132671177166849878696043343260783972268519874190124450213660971867313103326380854191004802962135442577350432731708457581120212107045636518392510038659168170053688131348269418020185360604930734749730339128207115411382392866648137779074677375359518704590665166650630474529630847584503221515616221842657029507802962779862517502533957564766659794883763950026735820452985020431112035988532048995173105395452605312311354917097104618309048462136500332211766651642847211580457059423897132502764934923359465957536832076602978340391092150955605241890818064568457148565410684591098169044172939150639286874565429850415831377371893807559495877824512965322911093490863992850185986444740583713555907171410807624348809948219439488795366439973354323640265045289073790350135222162097572627661456380310446703999274013098837761601505278881100474225366230765344048826103002536557545198904078351662100967145672549562035404458487112193802091520191603405172671701269698714646849451629619857170478174005507285729212593926797369329178922567629585580741447652730075610047676736458155711550259269087268375187394625342407477887226543478102388909215152162648248843977681178029061999952466067432958212869071342313046113033131031499878042225963809168410048499385132995332156806330561067093009960995614947711163638765277763739596435260249651016676060940721604689545294766581904034350250987548580819839671225025356720708620078154744190928959278009798166741985247696354164848954023207954519513447626160099076506884593175605342191315466750426155826132929576201164455179749328243843755833839292113400138430604748693495275787048117232682792600956484048107831061523972158215232444635952014812588051219300684254262026122568675112030028362903940035588603367278583304835609341124065008895005661467558189252974978315259759236340424093275552855491994352433787141091120938429671477602992384574676946982340223524817426200495726151163841554655398398686043052662802246863128059818596032855344639106910532037521434216724493241282433351086895910642853494860588097621276385516476224712045819351352132360506548403522277949653346825873153308406475662625603194602811124236315591659262688170839790340884226759400831435461969161318264979129189978117921784929306443940822207457154189587835431529722044903167894677691345705207513508161713617350438518704552622035250825151588696510600744006795097774053901681956531726407208417482642186330737853304718378300136489628975043197048972203449133270337569295823052427579096363439693500255717018220841444018717446804557356160133820764839809798024273394653611865758697543687747722729286359575778536938336209460778674213262081558886200791919877364236171160354430124745599426384000562778297037056883672487498072003744063056000186026254362397793591194553023492983962797210875960671429529850251544784720318687002244020422043231869693438620834207462321938625005554360755271471533983386882718571920557197720683112461725582329075702376898548185603454562323156604024619126619657954554467322759060621364389311827288384424895301692984890282043805434369180191882336921180641559553996270025774054180587470510520715112204552187968372318777827664061402352951111797019310696833446271055097563412278664431932415131776239762916753490363153384089797547021685814324483702406446315684111101539012291896969656891299815703630919250604550477763280013514347848562584491364540424635764803606972417707059510948334906310845138199901576391742722335335849920875764598426838822579484324234001215372869264279616545647115980288787315426481179002071708326792677753400735558296485871861612547435087843843799714340999472100723182896199363724776423078376174260913330731796798367598460372193679028865876049920242527228669440475073705150078362866138148409734663362444757989386484923498674066577686603166761850722511159417332591092186497780745029700857852530994385285130404350553492601417539488642659242933550584834557846338197772394842829073501083308566293500394716808310357142546217839795149838460407796222346446239966711292362859326552043147651748627434385334350566965326965487600496203215529049213912662951202337261047872765370466044544318507199764281628808399367344380123452584906739810945244064214563284970358910057243335072000469190745495383216893725351657674122869262825177360471224435881227081046929001431144017564785120536356092752964905025185481661014294604316094190789148710958500539854634021485547477659932465702892361356189935451214314644036662478480749219528911941011186555222797020136748324605841759565303983459882243135459052744141152190220122028546208783003388972932242649275698995039155234696375183589935643901623808353945718619873967520240260066216297705280090721708478350718331749667085037335641652747343432921650449167044990116427743095162296534516536631878701541416675113593585787637815698960231139263554075540938976101958864392128304850358611363692958670370643009534468380913525224759055451566161992313812865877592258716375780895037291700789625886401645970389190193754165852096316992326878907875378336527271839240368924800088497750552086553225385251246743821919409553308753716448300264029002531549730166918023097906018621796777288537069305129215520078892206880245087351594619327518208690741311319356940040296368291097026639814316806261856660528101315625093152931617330685021414142578676459588024260684028665641486173353354501358320547768080673653476406399867228988394230463580686101952031515397216978301187410783737198212137099320540846604196819174643779145002036183674720284383702546015645417814472108871828617532435405628743566152380009688300722948731143370906834204842866873708336002837894288588170112566339570808901310088701213999224009690014184629592765679433275767389046233450148399313556626672919808407530974109299953844513970677792488052799904644472179039714451631415829171052607521402609211969989899973243071901024696716373053944171403773635864005269006828069572667829705902007082074370850085012305760352456581164637890578484808391295689573816685901209514273731606512843168017174507378439007098946082163890805173317782952136258960440596274229876842825696555974970647404645636061520188479979261039772523394079591295698915180170131011786646114021434016463959215498905071975176892606195977344262272753094594415099993850401915995544705374866832933312749855576321957847865942803540372400279154302377574688072242078476964255116244493379366823352193400667980942486279319315692928555020116238805050699791326529681396248241355765338785272630815817416116703741344166635730459849327749797678722193622629160571390194488253788759320481714560510968267819340190878931132276760301583575192745794832559203567811016076450542764019361718591267067283279203378398486244385440554751631865290859528803009265090599011299849234880721383816996067780211092043747282682423769882887715152303214555098473322716825895136164090275485576065637012782325479649455000560153841765742830308476206695550474207081325012879901381013223093775853292459127324289605832484327150836645154137563230251214020547431656996113113984825926982548337916244931181959497364584937283459612589701251013443241120465778906733092559128352373235014579139712388105511244966596350112820184372490288139492567350306824014865582663822760328212420308779045082876028310872636637106478144359128516544263061196663090663390373693289500807668234969854669510040680629083252006741914042956500243729148065125959803316064593190437947842370206377896581117615107775510075499396255379232043947810005643249575510021784689870195509072645951410872258298915564245504150795454717562695143312943270124805727951383882144099700522371720485414799832909155945888734032059469057154231633119355212267328081979272600016997944432068460870119682572944828673840886019103333555606238347809383476662591494028064776402631374518723687268179795277897777202517891774695935610276112127858200854093224538462616872769970412377556774334171908585775012458866223455157767725221257302941085322896797440062877791293323457673901423222266325050071464139201608986334049822901973651283517429868003829765276785898175291052593282588337165388053615343687712934703682062186655392172189442663285394862915103826624103903788694514534618480631935025385273435679459843796870606544368676899126564233205437661643031926689834336672774889288367568573466853935858486993200876102454602666802557934853686318983208009227697030906535648044920607153775321368965473656988051853496888894208365791342957836700026764911143253395015966447863325881679851086436240043816666652904908287893461745003337248168265004733420642922844463086623169160414832485739600349276630898667442762543745665242717453957813657497126313007627372179828749458666295728350698620286256221786860313217533987536510187494092421823108238222640303576789065670324928427299801409680510237530500405612943704620269691034430203088280860712181086501171163550760465874555095033427833891893035890610413153541538457651185704242397208155352784639632898615698622943228728793801790840122684753151547035579616021800746170474056308666799942048756345703624149008119615370890806410107774889104538851389697870443863250603459960193803340588842075560344930105158110280274692930875565571801528964419446258672962749705170329159621641177063372422885692885086373134045854911195658658536400107247369761273881407977671502773779940434758222403300389208692709558054301061899296625005270085675246755936284790293883642997005672242388458360167696071806813143847855592567446776568917220198732320969621081997142166131428771552059925518173446924560989826518771150849476340756642061240217811570459384733836066267887112181167654785789487979628640895960801559994194772497371207084947093831860650819165605747168104286266726472587846151787746707636666294345197571093578799778777542030621873147234011804491885355049352944788240993923971261293991001936862544093665853658855830848155357720339555194223990652085347344829159383372019480350927300595213490622641707767264516265917379076712109216539882275732617442595626957482780248618806728573045390192872576434629676339545568798172894583939163402555807214628795365573616862628920814972819031862312016053520861704548733438318312397780243633386117355792845138962255517291851023983745007141285340416462294682334152537280093552937301315208401282935110173002428126840064699644370592164386094191665790308195772710085025197843448097100824357054000724148706210034037877237535716466215568509451492568104732589143883250834726311798584709678473415100287650270589554295096885678762908169126258680502670654426729086058281724956168200116119884581811233074110715900994448420509856664865398239880525186863517440414036379270326303071514659118845821150559859983216963822277751837417000036725468590699785946229276348943576935256603929594278278172598465265009215829225964034410776648392934503149644530234117289148682922477418522848842635230897541595329825047969574881084603314705839846173504633868211762913306286818086184756601362970413417445766321189475679258189333006595577393925340161815186688981496477723801228272303535501286668334843215144103187636447069929381984932936128545058755124844965593644451139917391706336484452666164710006773477671864408005641213660796984466040499866068920494041579373639604219315238614399965681033736190955746008822560222477003218373894238923746218403459018052872300306697091999221430414018409748433103756062633460423310833783203780561476046562338717975915865315204866003480551914556640718088299191318678441812196410901930495242709021207543442078872678646260395484848806359337643636091232423707823390534849816476290570654189463284079365300213011415179018413186622301054147134713093812021546504946601746190979745006409588700695155581629725043252999318868991945823905996878509410178322311932295282474135533854755394832682511348800313144647171596543715178973248771667720296821491350894654106005803216149770509349891491901250728417425242815801107926525223545389462787262451988822941676467143295240305403714851751265209699724854738989617525211677456364193431064513853787715842782157975154744111347698147133670530822138487164109463918283580710420962058147477592437160319785035502079863994349529270044363765871551310069622055775293420873186355849184008801271088070431057864800645563094291907461789202198963389203973374586782051490002332370868169233486963403458324995554700987533667417506540076927789519532097008199492909537496157781099078522773644695588734181671447323016977332905025568476469027035421136575130097535988078769275991639864523349088733827308776894523225429143275294357808728536778736103408476014916645473594525027401485521214006087710873651836239130072235815710473587407534625629405042775669874084681922639234826764906936613750823071050704743168449008254390842244841504880221484484221294534677706262054976463498418366110585904004679498851099836019576565102992657138969341001954414595956466052844353599775711434439802552043562373592286517879933731211389589384029299101061770135952582023103124251410746893458443512366692557199263442005816177361961304991896594120304010855106858646534581386119972187422318489083769710711496031375938089342683135948842402787141281618257205652216174997895554742931924731966400176137718985541344583866002209798698374204491737717036456116438113673740400777126298199057119800453327296090986473919688077454205331824223388758415592942570788512299772976276352210429041233206028022100267511861219171386681354172119342718300438249228286122696973139783290831589971588089148951979866487802489529161491740749829568896980417443959388458408794751759649993328944326759027187591915476369223810209636454266686126464916463974532283620288345445114828281819550390699771888475206152732418341608253383726569821786574264328112277806629311240085023883168577387945389699176695004997753617963623163567698968602656056221614815029938920560736302578961528989672357878452408023614322244196358100049830512820190695240871653517517750449733127572494682311833793784914735898780376583593488192518274830130316659633194875064107433045064706706455410085332335971333304190903212412126975728758757025671633195820678578372229832759086394128872567590503112327249352887015115074784731842555832502260307537152582831761020995509716072670069347195660582330437486630174602935124614625690837734247137902318546808860668244493231579452936814378538367916784769628405979108132737305247458783554912892993328932694445770282473346862158211917931694649211723584298099385555390885812474849916553112332242805052695127083382067823572923274094948966334977777667051407074029055537063967158765829735711349705126039241038801602828674031398348395688768973261705394509820860149712550032006493986235147398766398104568291528374322506962901126895243809135475920653292279075529523714747797754358201981199838180054682176750001860804497639397357824001482390868343089148076659648217189749322116958417280277109676328040524862523261422810565198463761551611792207607874206699864215412757016702913565082290943124929865241115857333484506339398115412289003826403500916080624270260060400166395611385810237303746704784388685157488503145723786866512039173623559992631950326331017210384060425887719790835795536380101571847939049268353141556136431529728212229787310175531963544465040942467724572543850668944522253741377323541903465216573655299314834128926293839150687464639659940591318074972035899205165878914147902184067007772197659626802158022201851428100453332394317288191893630173593399461829611112617540329212473200662202786390677674432623238267934293344252588673294380689110837185288521157480493816993655716223296287371760448476143231324043313170476862695695685143234740072746495792221739072794392478073373984637171625504647435502371289069850267370521421402572966114065812766593024796935906878425584563392908972489406083652888322318770170827398504828694310530430890091860039931692661105079931136972470985174571302668655913572520528941626179954272082036849165393591523959838146536985270210864323032530263010348503050048464958642766420532540123192123751140749372300626931080616475296245553263498573653390836775455660366406257045247365164356465586128685069199389150840498816656164089116334488290835705505451886119162172732566824795003824684250366857862948938249538713163973734093587964440516664572471919309534804319224490641600986154460096138743535565711119977846179427233909781982143264578585419782697124208557932393665756816914958857097972027988671593121683773799499292432692762559723638995540130016163927555227674436207793082213263510560200695399538347846138585742395502096051787714549701394181344651988684620753795287135829038434032698714143514981041315707080226771426699350952367371030393402202170638966510705504289947671462134609054262455023236175056096456425227822655252423862097285095624218957634880162774640506103464979971813129104453713310340947602821656802688524796891829507810289322486945571288341802087905805104505105771862065988557647457395939140732559742598453407165367606213660681519855815866126595190046170837669250532756790326589287894294547202681904576458452564545127980815469014848825758167363313499170003164125190100102370577428594880651355597423297568907017560736848677168106930164936132671974141736495088671744202223702317445641288806433956715612057442807411530263032134326786628499585683225779180286468376916074161524028623368625398917647913084441295277677866747399243406065161651075184366819310307370692682368960291218950398602007452931423220494655373929429697716530857514443769151484942188101489735276218153986924608569703310798069269676520284259027753078213138534747618087767524145325805932185491334604623293836080943471883834446684516714487958678582621092903021073692288682985069664688258734118052897970968729604942016244013400964651659862917223355548143623135585969122347000141628754384839007007240628717041075259711593439212159324997491426395271059977750286456117098432396386428893426186544826637780562732103001748941734515688876292988554651917266242011857015518414484618782360747931569512649785517730908642509930283179418482864765789800567258146914554856667329042882251575053676455264875375956486137448480676795054769611240889138241166387570404263792045141607017054153825078957386608584335078704253011975917546175860314181291260586118659179675270258823109868736244609188273703091697479848173489443232790704358431805698721940173822347621533692823848883363504056372603122713351960748424570552267274789091157709418892055497275146240040236742513569516095517184451277608107893409469061616399615129373198800294214354490924301274776087548172097990981160677447692232803839504901707787054911416635291635464025671817392456796383141775848820530329734234045020552318797057727130886021123784733088696969136007937704330557254367000946581313196617124718904491375360759631755678484574789987050281425543589699915706269143560821897718186290519860488137065006336178516777505671905228638215816693521273321979271320006496992622366110617881214739987505346512099712177616643171358346089047925830071313193177031561142975295277371474899934640676839628009369525294369990223288419814977030417479868150424913227292965159865555415539921922533075958734551486241177010292598516906055454942203691729274617101203098366149765546974908889107030228056282416912099137354307282050747400072086296865363262697872690782739484299778647211729672499846201371039260372393520968993549923785562478838792835300547443861202119961610365701962762209408539153627721915776019423882021470043888092259372387626032263223177162097716766454871648429825669178802238109460297604611735794896412520022970298279038162774982381470314505666553776085442627121865155670483127734446330009497823246978654138507964341265883038581674252519184417690055355261089772330010830800656935062915555897921531387029834604670532966895731107725026578945044408882772419128732677176488117452465768085453708318572014447498903976271491521742140196427072896858211589042734968485278244835936091810839132380705631473202603418213641269426908544180228481224636423794221095223010178677306260097176370531579359671747637411793825494825793923586894680164071888960858205720323374799246402941894216727090494284866010621668416612507694163020318240193015580264346275030731373620192702518764270236104871883288125715913749172302580213372946379312967592751291246658433357914014954390766437384255899414511685755045499782762464746629611405725425083297399743490821056521029290966727902345714443201850910466149455254623532828019607128889322881044754925724550031653703807704759108805940199689849174108817277096594293533571117918443174721881016007880263433109960693502418101880882307493535765352364941348257038646395045370867972568991253405219744680613226368481848593557859460472456072346946961990690848403689284974384425869088074459470459036249336414051655980594288281845727725384461863961201755915809024625941531081445294136219100244614421860659124451757664247534131793170663091261161974216362555234825131849371550102133552954245885789942671334194917179767656675870772573521864553348417506593682859921286883593361600072467833569352304239612921917026788705470082570383468959068099474652794491224969254744860731711695389059773701055147594635193908824305715351489684178573751309005935361218980543662567654946800216228126076797709725826080088666745259218087269629175958195816777563951711290751569563755103900844558596714186133405855520958558830439255359112428717894844112543590899264193469946156062624987837013069237613582861175409205758103115275852908500788308492607954309213865335622179241867586115482226092741134237780625787868254950739899343977344705876160592393227100683257278353215269611801908306300466744816878675125213482960214954212893738217495346888990575945161185524477840395189318758768679099632220746310822544649249857529657966177835585998036880599306313883316761133964073368010288207312353184954701176004519805843775463574860323102336750227760187705710277845071618953522026556981743836910897124933496873132299523647897601570179738490190188802294935302553116476448558780333591626656818349350096157020111531517302263595333948237229962269743302428723815778708437089480740643312332758843753973586664585705877780990609780226030565268459641631801642456822786164424934823099759544795067168881759892715596688731456308733968878513958426813142848127531129209373702940779044956207815277983356922314281886391194516157572612473771915652889434588478012057486887945372062722671696253952745048707940694548159559358978586100060985400506315861747401944856843661172631205647151613706094553009214524278099950630638982856952861164043790917936973935029703467943048317593259624200788085800207335476820040197930511007655911806927038685964210033861193043202009399796056602791272373586134188795326111707013055542548178504723261654354072064644832892475451120489248963831969867528122050387741195021532709148632723534935642679944088852538572083685671497379428423178465988484635083038739555603933454526958075967096767587581655595973470405013095839928847924676946323731190442527603099285545349880777724476056990254957005936959094863758073495790288571704204419995321814510427100386741148213994849985520992614998307301121467779129154801279923656842196820318820063471107432594682558735532324044208237178588169497295847370226050858650495244680073584352754304322190805269992857792136663942346379214381319389058003764076555822753993096164358579212382342430880448170816353364896505851289253027579638359409726367865938074976473810946799089474215137530711100772530716967232068584908190083271206039640107728761104873086632640239930901834778340235769618271330348502673316694539409848978726362520427072227986592702534495317018436149768119239542253226562750107381296038336861655598571297191311113589182925471693821599250509388917073897674544441323213814422832241841857011476324624616026909381779949826204661364472215634782815128738069696450315141459463693428013791632561374675973980071292051190838739378630016494996279984485739118239117183470997371057430473228306665411810498525240622956129721824978757223254722070259384503984276748367760748288950941461367813650771525475014897885601310437086716880121889298344323648989486988002248696302204597600376856958801389154025869577499569758828231841599956200676439764240076282754009321442468239025125718802011327467004982509654413855106596510360202596278972454243268276995909925845409696594372487582894557185821368173647948562473848392335801426432198895138868452016064625463825088145259847551608155162755752623186229367736650515672835921299552249984459150144841050345015646357540057973343907203428042657976417919613250273673303164257711280167463777336057250849849787536454047684750121371827150861316761167779128989716697811400036769363800037671639702723911392920661015830528547233165145509962291248241165363574125258824549673067779477322123382888350743030485937343012354954574839260316891717387650657940038984354289947667022043420796701754734404365199916294304672459852277050158438211149387880679194429352413037937659528219397770841565072498210077354392984115174751866927040162922138300999205851478019069414323427959086336493217434032008698630198617868063202319193008697510440710645944406739501932200778885229736999019339939586324683600746354218147744588898014030975073823417260803449576617355001274040772245042444793332031303137810231716712130247972641036639836790137276860365544712435431809646566040155671394909332994260173731339985707184348058159330400965575464090850304366466011467423877471008588831241569108587129979177992609066394467388155731739352650120980687913429636241042200434332381004558028818810060857430489143737091671509865675752433452777610517337456881108941121135665653877283524294166766908262430087549741039959176815232426793799577290022803979523092744868947992817766392972852632356132243158382280855567324048565775432804083089877363105247226413846264713282398682040025789016723862668488014980251282618583937218742045281030664811718261931645128026201048768819350919916148220677240702008926382664176305509155368963379392783833265300465804710282966242418645544231036002155901829512287641618430636202075685788724293421465785317742967534307732725513180657535390996163977717337735244709145219778184205054295254269089449100541881459092443570012151187907236969780115864730656920966848373027487722944575423486916692990704370735689611397884912732669900153587870150088916881339325348456368509212152506989266739061064074351960912347424980668580122472424599020510288321158556661262634070626033553921516445785425402708493114107742623429425931376390656433940242373277568401030140858246310205608174046451046273412607801961091132834560173738899413561655690212399926457097688065742751876806765488779317218756738284620679968473050999936793957795612502321524665168780369739564476408891690713645722852678220839817328362334542718029915116986942849068738888353803547228682014378359389995799559615433326376040027619450849170259548862399378782492145402973415164166896640928782199652220412788014404993658189631205183548872316527844282861066233413359176758121507551182535306969643415528663963203003053694837097449418542602098256995533931473435907066379915211335983213034843908791948767601553860717839817381252643777095968865827929751526979437319554833688175817884291688528864987819034756891673086552218913631894465089930528770343767985609876428734789127577627710210358241018511422024704157042949095241795546310632570802572862816951943633467325093299387620337109865043622679445821873133532655489947031583900962900911460793367937741769875567283956217753487689954383627516095772262368918734145737004033080382132974179608141101210509165090569045870175745487990822043177481024781438549768733918223893107513809950550744636099831656526828005914445362890193041911775807086708253803526880351176583216489185861556222787042675519002705591679818289363100614655089883299521670762753794135666047439695065243241010600724785476616242768357865737673352262339353750368694278165287523290366262505900237153067634482470382867623477614108650016814031797755894926915093294443763194829538254126139997287337742375186402246621593888424651376777128928883913513957928966585976782581016129992986945279527184941874156838474637335173842381081549139851353993671892709258451485921344384947000653074900028592244870465580780282675394535551100227765184212088094933690294560587189635015721146630209843552339180652665619142923301456403129943298307787456620159261799653709409872635555596952014146934702894575024635858779692984384037113698426645873824670950806038730998217144615640921267501377767094781456627116954568405475676894309293403569004996644428988187527016078775924485910126534381969525112881458167037992213542510014964801887507019436572474245696722013893996172838869064690923503433229378720248099360681278980724470373323519584078094117311613095633551202045037370726793981462012741501868210587052179686804720957986508400671022673582122649438841216223552245902759235070677848210469713721391509304939501597101897271722150103165329447520563583940878055320397331571226704477490876516451223289213003380493446015469494752568957504705387837111088390810321003117361236275847793628997176162228831637207545213323012942241970929444361648464229173744657802385543250419616124735171044536963843954321317546206454898778279119835074541386805524235837586079221393858644996738235581902641415686120369853152189705220531521317806072845796814891756264504432123686269075635984099575017104091877782556467934596407933823734866660135211556141848164239256007575757761220339717402808165106106596327715029774352349012923568417012956223866708169715796149979392203571231988285543597445557889977457642495626395539518246801290543599586608304703464605803620861242626477136666683056774585000121316205329350328499011627296643000056564820693937857429551942809614580358532364227823334197293142706793208491723377336840229919480004453208255807233670447942037782187463529364058791977653794351213028367258859531881464356239758107013366312768386373175596422066942020727799102153757857399651036459445371826284318498448142234283978793084974975768978541237952664601963341121472649882558922212280225958979086435179758491639724475720832711885899287399157381077438379819224777500220852493994989728946823812057969839682243159856414099021261116489573280576177295571583368233526425393102126662365911880154217470746278624292452079178509299620947259745232313955875636307196229569923912621483234105670785586765159738494819215354494656303686434257068694965079649369887228385136557617636396567423717669961498808426305930324210509630202573847471752213753868203828480929945581110467522618286520451980762900789221333929526570596661508890394693924712907967150364626594932042031756424701002353178551984766699257828393161940002057674274354657025784591722026381967071266638172238819804650117331227865757898998201112745942139411111981941853770573675888516753138941574000112951973336916822587866597775453727489278355717524503091620796929093647186663410205729617754131563785181521845921598289459893605067840036597459663065470710806095089355958941060462553282571160271404878693099247041167077521220313943981548919975152889840859361623182684191104698618559617791060818067220670028614778102058728979522361233495008802053269025085597044121284830272113422078510503043768503742917852044480432009500752705150630737323272803063784441492946429021649331290023551444164527639059098802682547130216204091404256594166021185786269794052359407288460597908315608842693447749806824349257912619680088378887612250107290409561246625779647770331290877900255249612531615314605984435810269102631515303877251062288298474551621986898961136653564308430026355604045402355988633181990260205008803789967122852392317228500972011138558337311929750728030101899834317288510133938855513485058605985595811110058472197538948877238013625068475685648630308568976758825834653410351657341852682603779347108059960196440530010278016575029631599790838933081449533517152912993928271958620078417620540367616950929768121745874449768799201053182105122865702527978298155915273369444303167658091192720939305468719920822344620396856238823376171694697465052070148962218920770023509241542782356654335003575411090165628879043081331310470585944390309801347559874129554702308162277346789477585026457454404114831964486561034372704471785712370553610553504752227276152518047271303783020832467927133428207999786329697989915425303062623610692539258136284437076759883016745784577072054913916910397554433448570799492442740016182368743551282306953203335765075426947903460052156971080485480817654371677771184514094788391389365662250010565105686182945690912990183618458784495036768260594053147020255058503885648673506041853380150368133373685032804187704304539814315117458654177523695663015687088689600272815944378125470324007045383095233007473581509007412607510926158944643319277659349410445627071326762515786814239893630748540413261260521554296964018782061376191646915948175969419792741575631971260542320108545037774868447822136234761951129213434986375580570805269944302345430062669869650099143873739563496465401159580229372002021548435610406826534963099029477456474743338062012927904310126607355172239888250058391877623124637661886741224860433892115487391826874721503344547995970971317929558806764988037601870766079852382699459578768582488962121400933628398668885385262357683795883391422311825821304091091538139387819391906990295739570797368730285077761672506263873426050104232899971852626129940293165795908218436674468462101720085903999056707260532279926372205005189795477579359769714439130135383144239723883927773468847756930433916297629774288735630172807151853566962066525151349921713699718559185251174542674039838626706106271292260275172551755356391396221891343391847360261728052787224970175381569558004988447256975506282319866558009867125191946417641544758781350323499440886002952255550272908964978716766471672479217661600276124977409548180358592725480597456155563450811843603276687157929340430960006271631866594030311987124224380208207966749155284385326264256753434730912689157165397086404349716463449481277032484871507711858794321183017022530119661606327723894376042629882439742505776426635482677524644534534791819293500598402515156478935363561041247330096228892197768744781671006253502434811575821241934780000734375825934383588171400219984090595966197998080442662391467765197015760398957911606856126780100379224798094564780494446491004246555811271263046082377769156743176031346231936889015603036332247754273758389548510957343272402512243093046028775416184391117560229716926253141945675494537730727750508771521074820017610360532922649162801651775959845988085051807644584877739058793972586989646188627981551506600780397343785154637850818094304537406646065098702712774008030200702742790677601558458939812741041767734532417242819622909682445616184432543243953442654218228805107123669826389789925675488762291527832079526759699571786561975978715427898682895072160090204236202935994910149154220837575610844292309261323829719636293626979055023582517793816919695703440558140610289990533030508758200316127437730300555333787400437980443971910268617523235271975986271005926216700702558136686440597618718679507579544428522545749488681025033640343693247668502816172688651672473929435517535440127148128646304803849479801716710790500438403122172606793231745467466898412264369410127201286888860652964224963583378138864019904530654427018208199597449681428437551052419898660241670523578119750740734881782842229254493694318317833931320559508775966661765975240340042800659083497442918423813696065078415126661778337353778815573906885998780235386816688890805789239797109070291501651665727951888123586475581254010684921798590591367092220347283513317657189354153664109821452412400094564246325338033674444463630079297795708001606217673724358583673565609259568004228390459739774807013504469327802564384733924183625024435606683771332847281212948725689331092755229793103852690127150681082832437404644145119297344966543843782012038014654603113868396707815264072436398330077343444722029891918676650061491339222634517952443339332703662092314679212938587156695854853376507022435109843488878446010787980438212229940763334917276623817626098134785412711175939957478850315112914637966748137551072213145031307628445776023078667390541232142123892051589336426241625156964077819234511695596537824717589801989911831223889707045161659559250816026977607616477838103757430058151341218560696699833426293939374383573497088247887178720264791433284254395589464617780787308710011406371847052489131416323102579835398437840091774506493164206928623657412694094108735820614596860929055121675539849050944420236755089690131209467134752705177404242784863727675803158046052221257841837170172242703559666661847957163708516539996559061103858302123477963841899513498550603519628920764459041074313881154646049898045207199331765618667115078770431860597831156237242395136692990823906855752003772812242633098274820636896612863127346741931809414421996194057250761442338628300757967911381154928526702414194985292417074112599821624168957469250008647132132194326869047323090078925036779431188220117657262666537380571918225462202932535934117197670027843920345013521741051377243547998886189386816115022135084449237682939034881632519779892165360360814525623126956663958166442248521813764658089598523281711557509559678004217234759301115533688980511597428426805976714114656749748666666230263994953624039024047408873865616293934600140991398438572887108263959296263506921898611907775872754859575580236006546635018293526622167048549594544286499698959540000523014749284188579205612967861830977076661768152118196136336664092777247315721105859843995440185558264189614626859980825101310773521067490000296874592990369826742412509427677121031925802354667244203639815239850730747864046883397300743848781321426367503104907977784974417772496546839728798457265480277860496791587502755416109775145947105825678556737621934033528486149579580387166889342016160306794437671527183758631780766247421683342590047106728629580851582720151002959641569843351644476625689051417119825864410695967608738547898864548880764971131735112496449764965296209051488017188500963406851539136559270692523000426516069904187826838554949379692709386125035657775424339453058534642160998299559031518037785993447598883226016226347446434103992291634099170660350500291070772007251566971945382722308953419835850190771642800875683911192366564521169304429660509769849245864549309412862308949696353310954020495748546329915415679102167477077279506086824719120888345790359031643522529103065620781027330156573830948773442722343127424965486928408797440426573336108523977067521034306220604121752085987287729372392168001377759059943729528217901204926744837315748145750452366012148336781618149977000415062674413961008013112800679319643142799260674152957725598948141649927674882178634675275468031611895883021831989469526911883271642328540732601885832862555385468618284505498035108410032720679915788638478343892629196263605083767559347545360897069785634930283595459728822870249358231052320023998359647202591149169698362522660194270115477656226763950907403876395645610326813942525919742190850036433410292996431939191874618691898519001131981387493368080618134634072845483610901464493737393013928027755821501813501689750549120388111479104576294505637420822093977646952830153059564751661030074093890714144575914977108349938867294028839820055849336894950428356491004984366134523351403480837845812164878144409713287299796229939379301697728055792179228356964257438589307975938497490027266649344178542468295243245604056486070949679173521031526807213630273865356216776334037541750588032357615887743013087810303630411136947583598573529307890923710563649129998415059474272553474098651161334281771644908853734071742049319193779373846995047228903291372172692971439027589642205070366507551306208044203240654307798014721598617401664170402375141287761341218584292309938825614681828090455613916381389597351953355605254263934865319906070550623783078009315447862843619080594165560370552729588715324031878442450743606580042342819858513071227984928757235100258537700851648110325896464094323818803716777113140277303670110881737211875697648902651681605264803391919288956985991445749036708943770005885174744370221432640720799911510824144522423212854496134790551350318642575550873671901154029739128682554347769842639402560928186143929404500930518673771763604641509453034432871205804849171659831163775641499623105422897666906499606177129956723950586943658709277428100302416287703926033962288324172854672574667981939118666919420549815607158268207911172671020213333379842935896757143168894941267003962472599339766360840070681336555944682662880756092984282261913444126064737762798135643447362100491953387778085389236012163558772992521336597811644147417800289908590482768512127474920171315509904645483107387445684759206889915737501001521181029271367657712434588611790396003707116410790372639069271530755533427819850292255032648450984190294994245731031546019888854024143813503561675434584618448018581512976836843048288739616734689917653846898714749698494821480666854299874159448047648801062325985877366042318131368940061538393881487500872976673996202961977758935919755011416996431619090725373807688134978982851727487011850797566529832151309367422127485149163954132925866758150593280947156077711873236514741664017521228836384660403960993585048364130895028508121879488667016588746913533108985444191765278922267420607130129854065352535405897392804535834035465674850889796096446156899642383540785358668687455570436168921754749805693614125428489775976351251912748089428260459990743039723757383975673671220799445130331647781886691041042271633861441202678267466843668609382460770678980187829284708766671472335439659446869793160289563685411600811827075326336675788406242149501429398511071339183710943534684055777997849147266295090216037852543326502729093557527580459485951227548562986994453734368322962980993863401040531835547805615316998536294788399231303539461823834279558603370615478378711370391708079291439733531077241089509407451342038958074473314255790921359942891002224043597438698084625754378342527727907765419794516982002089931966027262765521802644025125932412673357698127423382817466014429988490009461917185069810670842657581919717924463502670260009463155694289366874372134924767886174915006766024502830989178234574577178077362502826852288313498103114143813472044692482713479902129183701464185668705817072315883090558435031668607972497885436989125769219300589506168147974947728654251425550440557501276808880489266901338040096097785394742151057516042849512327004040399168075445661212055132618147529271010957889692803660663136107693908841855040771750108706223948212686806221503995883975946289650995747976817306638531034580982061297559727088186540567684354863405285344754558273865433524194823979093960045295501772826849588710142801418910451698865253786279904010942702006075200826277575600651376865466486186171094990733365638621934442587210575157999749483611524841926271903615596563356174213252895342488050190910242218152256518513138286428118822934494351977471694023502559674005992135222240881004619751610965588335056659929207566722796230089583415973294472351958960872213968243920290726238392231005090028982298102849243956146308463058970444184494132745645813719172335833989631865088485336883926502593483538451360526402647300897993623809314312836579893583589799828413874862075332816017145266872134468401268480359315291925359235092981368250564167130835154683401545605898195801751154966768554567063423495163501762817590631211661359405290762740741550501703797586525130306842158043628494197398309792624989927348027997864013655476217366543226811413381912031181500756076678960102985674578108942654358160406197103975266547369666892525363969727968371811635799238185828566783128678599731052353767082724725264708317092043212913706250034351176894963207430995504638144346793396370534256196256686787525559935992347995264655011335261267957104816884188334891493725425071118381097533732335281799110424488201911045633709654001074053953476698039236732620728723537257173689967098174711980563868405788470763623240860526940817498815890210528021357828706529717246726518222632518091914791161390775616179644887856658076535892823943398083954574410815775073753258071148577746292166721883576975305935562439306645486628982494436611887081247666690167789374283494240090647924064598778877251588446324860825596472952419694562700239696283658436460141082828748504798634660061646469531519447065813523101148206066349255433910267765739351451710332039425213525377276080971758836625769551591880333491267542598454178600639715865273454923533109348016271043613263626934552823206328104125311065500241143351782830239604533539792035514809932166028897939388004426515389050236558845635766739168525069616970135083659555089238987557196388379173033282382612825676595377801677551414422071463047223992560791320699071397862175084712531253110161321588913731732924663038697089394852280837519490521717800335966679222582787030739991294239523776675201752796686389296998401817680257053902457605784431174687679895903452547005891697100690131784328478539215176070593695107745242600206774777884803018016542038986370841472524137100887047330100669985207524613538276729372093651625969586639011842754615735854697908466725599807623092373408919215501219164511676395052481437551919913377336215759058776822864013179126857538349808268954454522816330862371958204240413582814554147925575963913618801852236447566328966766404661394486093303847704319253879677002437286510979054094683502006011847973303173369937107120765242473321274062893941058366486812497322936565319804109422601732450849648615329972358977083601819516898623876979006890681805341643392176500699013286372059928302618705005390139907189822557958877140459428417535029292860027926371865033331473882482282163631064990389748486613276951406779837171154925037167541889541404946584053127559084970106205805271327959573347626585946567931871028578975092382224596559175958977144955622862832708611546414515696263646244143459200850881408810125354585486215479624866865443551932334225554313306987612041516122647116894166019929219165106178967030291726211862532561696020707573846485555335088579194088424879378368476960050803768773510916891207841381185362415320757450847495891511964351833617018102119860122141909763816257370886329842693281524363622738656605332294273827132813008927165303005420541699269407103155078374164965607521221587981804926262429983959817291804661399173369773307356430360243535286909960268720363396988950754187545485807570608348319982317643585344929762731546435552134137540997122676804826493399176478839374485328692729068489093615391472012593998392174630851315871763185126538709843280485652903114161413807372128005742448578191745946746028418678374429295862473975003355649875239602821978481065225096276326361678150489529595576133510747552164941162668571815717243482106458503956751436669727995113496092979903176997368560460584855415014429656741710473821895552686669480824752868020018161708037147013016264843398807337941451923416719571219247542101125543043836165167324005577560812698401444337691434536642312551371569207562992896457712389793690126559235767560094305646487647283851077602106456725796576219638578326741300069135331476315140916033772118244993836485389570768067304081215464678486956073755997982955261528498284896378306132395783330230919421903591913388826953474985035322968516632527106153300834293828126156528478475274264202161477302987671213915196503936436737023848369657762267288776967055994452157014249994647169164852796080161868131756201570799279497590006654440230077349063168648690493020152135490548618544634942755222023174520797280288340861327657310632815086641614689237585297214024012111394754894837708405216134829582267608496578095687906379420842557625069559234527173065281587719566145483116348092551582433257156419298536203498126577243309905644094293988497391464430270741919583547231080110077250694401342298442471482652163654821415954839675815175496342751010261825315083795822622028369043749628023479896958425891175687695393879664341840767187329070430642116579384641060951165698624828456212831743071304842850276814277674593480226109641063499532814563959434804440230122679137263267658096472754670834740365440434040915627523925620834166741103409754479962327038357049078894830398677241357462794125860554306461361921337562900652889420631738886119478140821581434776205815101436376532060057948467599402038892133937420680939928162547906753705365770197769861240539954941925843438587740687177734916742221653706117047506481401182292605711053998989445205994741785413629809186195707887231138891039651835188619812986969155472241412287758247212071711135124713225080297193193090309174339841336766416235663450332699403850541462974525889666388242433447022384964892599961225504239995242288284779498064796894371593381370784096524999028002295987758265183986916723140458878734111598787572791564068526484013392783349371285285186855308960941810082076713807233718695494426509940914450281968281062019958880587001544809733787665375951061196600368851745378745444351774138605425029359130698771361504369343217825687302362289474925175042218334001849310586833851958343258584211568817176311384931491300942225561393016290341906042946768725092198587721196088538878173330255380737007509839862009549754118331020329633944221965136103017630250870315321731982566249304691688593908986571437276426251054500184086614248800938855706874332235444847329495691976774449325529407993424305991268834913505960730562532614417267334304465629695353628707822481263558269305805529332829955461790111796413048435072840286021875058505861259505337243478023216025173100554281817596351041821359351152505862158829080651568342437296228775435709625714457564248085816541034855223376059117450343988636080500947356090719143103359892812624421553341379219766295816093015508895316899660185820386178588078567272999315845907907515694699484889961286988453872315337268354837052252368506003172711752637093303334164179509349092014862149821451767700303856126450264978713273712876736345795512314678791544624919369398625172994969669440711424456623297889756393209796536962758474822999782810433145995490599068210740321304028154156528456775616130902699842883262688945776086065920851345349330497876078077505128688577279400982767693824555988989462276000432730476689270362464712021688665355865040020367484544154249435134544606375348958850485409189736167152930404577998425859388675364608998759589838148932569009533114869919096973498166675871651537517399102504200852744958976200377840649348897773675342813451674731133011211764309429554189127066826763485417581679297123519466341229985888800916112744136276449651659527272855438898102154396074565034518464967201466460468300160068015950071537460272235457310308904178487576394826498134069122780677480576493030201850098939300814741490301051769682550279860365311509232823139298038098269160160904097971125962037176704945165304280815391794253460313780728242742049140199714611760098601852995773482613067503946169830344795801188241255308411527704327432947063355958883157523423335301743966480514808285212014337355512636821953694809176941006529345900973211540145077589512266153786265614254929754992194257002563917494523388378969481736768261054871016420641829537714756524889375843694578096562418115635155911846946604015498390173055927321953821935758302999918998107571217782518866334734707926794138290851955506254485290986052416493436587973064066432467979369860260464322283030161523544972357924408418838431420569143861887212672822217620627178696432761624645304869967410289701584798701002341373235608206750903054236537689172048784260286525943748463412532474158280227521837490956734973030422539742256508431115234849738606681826024032907847305648751906428035987730660259377645759800139467876026346812973083429876830140594201721042528524413354228295548146332500891819648211604984935817320121703522559755112730470952803485591367159130799328899978436828930155997592121617087324628389588779483661768244047804214563950497103402202889327534709738900803698353818569042164558380359834018002707493380401031068732161915264658038306679506590429226484372697107846964963396427376129123790255331600846251133747565602161332293981698113366265992985527875586643356659781904009258716904200100965337682880320382516607136350241229458526592091277666516300597714176974830923772780031731820667254397894164528252514397355284070744130394466413859987616426680907156453177021498209020413422398218998634651324308571042062874652702183049608396158848729157245187574935755978389450402888380151943585503820904286474150580294890818015007624854377493997904553883962060888651909565173037147529187205893679310348709276756365012294531912926836892005052469327553948057187544795118920966994466687100126411580208897590989000261100242499751030363967765919995588860879790016775530234028045654258925408587840199940188031304325128100800496679738715576572078825465809569298738962839792168329171378237131891325595514485402734429289726208134263536609787934859999214988350161199905504630536322184586470250370379549095317843071812768569003240418703790272526097206909716745105981377815325080138363388056542963320845091350269328524686463752521204949444399417310145469479465995002128680513102488992733024204536064063539132334360129709641521781853112161031546119405810262336315346678019561352403728903342529089784910742169555706080249549713300891665588521248049157189043269438206049832365846082062097186787664027851781370611489878341070454065815892048609862405368166228694968421597687446029154902903447060117615439728243882301941300744291219286855829366682291959828891419784263177277515057117349582638516188260955805433762121502071143291898736738745874122119474532225339409742658242964636504818114107537773066000756010611541748639864430835188538824901207000242201826222751070762618401178414101010628453117645197009734862144798211576633659642239178253739366605650974269919172404523368245328121625314917523668391432676800162146804719077836549274254671977504013116526455587966756695995783724539240774810162063560825011841493829360889527582457508068109483146601012418304800840138792522612988636469322631742006759653538924484095357552540807908640657571407164981544561493417194219840523212975195652556255599827643152904030053147553860468467942880224175534337820998176730712862332985497512740908056893741564981992178633059179540042124188383764785914160044563334751982664674769157289640965534822293153038069648336946208919744051263942179822970607226165587299874024776934317366814000252550646144352459497052081187029642140639300857924202821757980315099032978334267924716738973986154540910075186237751138835597817582987204457332095387651676277427704087185145558998745501426406774414830510651020032855597797410583625325462719864257505720420994679389494460919192551564048975934493121500118922980643241695976867560819469274049688256423653979604845221388497963043209560076294229400649513392856397214044739837449783833261238831709261006284252447095391804714653208858561345116867220826524830257586402532495198834326284459843483896837303224465743730090390949490293709681302277064203676317292199325137218308881948290594124579846174299421140969211993173866917732445950592809034616490652069205573616283111248723028907455727461296052684882021395995962396460940040622073099378927500965602129138003551992698736957080084356039228586671064430960092421842863775539784244157908687657564519301143737419389684292805406274705489394368731617311907803777959569357149898337785395175525204127273459468911840179453075731850229866673841236044688045589741714751834779640073874122464204498617226400191301899187781839784982348081957209478223404916120788265764441904543117061574656182280707097621763656029799604278067929721727858758656716038374820129303417216067048580327952651654857114625524522352300611814482575222183883711399536485237924181581863154006525681379368626072660645363765886029010019812807632410358884320994581491879120869662232412583353639029939062220514090067876659499342015915755535008019456324241569121877182257473959986066758837613050044286656870991339162004341117903591993382337964523863036138526578559441252197015215309254787132993685788756790943176014198342177617444979661107762997890625331228856201846425451713907607510218984456312866510129464323124942535036667794795229059426932948626894618675510500441742285306183962116225818275364437089979703253485427005882400287510682880889901707717911523572487337671303058818538129995784529415177707180615643967077702544499388317703877740297231891920733791083658318077763628530329772602264913998211144863029737612989470465409272840101548862102225275231398517129176558645173888610901280251551119812600257627003053500748080703045592517989190765350337292158630434442728856162851502880323180727620172432102913820283391373293164180304787178255976840421763581151546439376317522197045184096436134365099018627227897884972007841991303394462515344010681362752163560122288296031874941361972000068909125649877302649715903781815929433379885096404192078799579240349676097027481639146791109497794707294369505990831029710521310515509754412282319969795740305405129396555977723202437592730960737863905561931137987677170331468709555595710881857543906688717597227427587079506680613310076543883577653897375231786686627789651124908318603137395371466510072919715697432892475639765642079715700336670399739987150618621912716693048825275220573186272653563914352404769831710793360795303848966085749956760420757526971717322219235808343240267480676906401776466748610845183171924574085911449842900791758310941375167656051002777066210282664137803898290641008593637097470965189504571650795951806106699641879577154573179541691626197382495761118683994296815471988975445941459475336509138468929442011461286523759866160972092966905726337731977998281629417799747455912229225368060004776505064904549017615680371634850842857797641362997090945765491718722635706841779744544328011896463204708545967523833427546814508723679172576390685845508302697640780528647473217505393077275493860599608524534733790114839212977101399330251402841552556913471907921497868486648248107015784458305512325645641934331997709441882935100628996189067877844907769964117052522964791152141198271221905554478349424780201214542079517357676201608372028138764738555221880330595147605966338222475486168159644017041567852243292013936436212655377604766254784584336149027033148294705502037655367580188013930784740181240138736609639826051236559736261877525698930403011614432402392438067476708469257588961885295440479730953229706111573927648962039082269702530225592196666000238936190624616097913918542610203274385269568864221498889060555892392500756618654654608164712268549804546342598121624630403778713920991297346810124833202181519757004202031994302138918768011424538099935756504139094707012260687681204068369161164366587924478939669306307882030773559661591934115924208627197321154325422477116556437163629665092816569300258885115330642809383614734941319604812012986094878404710451958760841788031424305901555784658162328146305491822612877651205914588397891487193621848589310754253858464347538898005621903289537114150148567985032236689986311039777634769818693686158148605748686192006552566497287352136870145075537375616169151871578812157549759555352815679094091048447919082323915132063431066539799346440671793877900135999710478544181291026415004311937378396444350998543664935152848000071839151090479544305196001202479090085060136256335972416587140131254418641546428475585320343747647559157416048208528326951668219617208439729431678715461194830054957614821850572105961904368358378614434336653108117834201995666066336696283745347155808794210967114381024638574861987021922355220108886595667925812046928481986917331016685575162882894078713195463945318849362178763229298956613209001498100376640252394733026873943052830942307166542697096657927110110890882236026560005173937205684498806243227591341106002408140620372129771098838531999117898119297553480729625936910319247998171083623775135627633794392805947600449670782413789080415474026321477657851946053666809990982420442784838151022434190199851344704544785184180015725991337320391776261971332967281957645183427869791869746058817846862342133443618473799280234688897718712562082536712013210225913830088026054017599539054157255738265201453693724802846248629888692424933503736507309270639007050636796688011464198564399666549029168265375663305340003690048200013381218599682043310059323404724947609499268202146599490341476861437251123250874101297021508977684486507129460506731050531706468786929163585058177934697586059451855123373768920498480631743246129768397154712445826130100086156400622679689997712601589882094626362226660375380663738227710540344974064636017497389722266565109337948647558609919381613473898797696125801294915377942848108356988995021770390693110722748908735737655097897615181968216521866993636783318481068545516315883050925976649860226762338975791855143603189845582544439128030807660482080398301246816822583247847420630222045964596431734871496604616440440756301171014869760867412180566200742673578710890980815489193405819154235516192190055447898535353444687141888882362579866790353340847006230931513983085083881936266475805253592770863324432184277131799312509989864572892467441407595546497591005794370506388681210996605128498951065867272424910838770863665086879379818968592716159535640637171682915066920211615533274840358619469808065926209776099852341500748692345303483291482277217484460862780128357784613327323341579521514489792324126551939580579365556391302968678444002941845044010181672758933705293362602831020883800755891486026538112972891394337055761890851004131510107508725282836815185752689335734189182715887557368452013223340840517792755386766058435797766068022948354056221163645872380495901433036698142617341055167394884530076130310198271313009804718750755075300611075893042580668665374168835840072275776028656497259466955222111409857137931992544182403772483913249524989364819344300691538429999102317287584279170794002027226147802171905512546869006051239681994801400684937702066604487099451070470819459463296734534660572157889102941870364297718959477045334857789898523762162416028903293640290480903068919782349639969613920603876099186488715108691445018306880304312161664934322329930962471330350279238262322972314866634592627819817030827166627971607368823963788895290055046641924027224509710069240664340472280957231640638513405562067183154072638450753451336130237204567960403920822119619222097998524900835162095538896626481027538656803911523902377427077632066385409311003298433673235013568131905708223798816621388783705641954158067038861048424611838941814544748114378132853577519339081496630841573770495143872694328154215933184462360064036335015326841917835272618431864641930996467457082139512672335897528893540835755552128721613991811054385392558583072609394457053127544117238208248560641481350353564934819110921884102058829215224620426447328236929876235511167593223705187925956609683276863919806012639092600251276372601885182753064331170303090986461005226767178402347922627550848980419888939020545289418578119896266588118100657034316014467276258237733236931780032885920589757125257905286008992752079742782526934881493980062849500683348363021308318099805603638062985966460652323777235078827393283483484616729709294904196913769220768706775722818914050129241077741383751319148697694134522904309687574389318375439884348888384895795006916952794355506150266540243843224472939918331320786800459521879447630862516752248893314767787205376666057486951591647282454857962014537430062451091032218521769975890439242725553809639540711886924139139523796525481442506050058475401469496064648847691071079580145416676192558390124229095732134367881208910230625676747985449864040769501535157582605561503697005539972909607097972676052950760509748117850771621946993120565116989937236677023778579854797929381418225279553951597538773841089554955793815701403904243792023842547887920170336479112843122112664228270063870187741073140550145445924778554356563473984135487631863249880312512270632725627199641850208235028768829322913188094675981501107564091923136964634349549277099411960062999492998160332116110411745463088093457084263920707652091649374378596443482481521711144196433721404217746051450987355247103165151126688114334702663106512790878989858105934869805396554444277097613123167985078082022101696393895283658978217756313215925574154770258581408614697116113880341267778033685080124264443682713149833509117858431168650777088830998317186509299542299239467318347140402894484239937594757421731299129981604073482096044482122797492213204830473867049103560592871564981809424282264740939152249895345895818942336703709548548961827527379113654567675421793094754944163204980371358647093923338785126789555636864877056867545145884068152477683763729320966068231153611063009010966860927851536933881962757786423897838081552292858753813836075617085514205291198662009627132651913388459920764274323182068362844074517092565510201634962011548492379071763606129641746615843980722765799371789416724187834537505501734192782110826907614889594783961467613188946864850318928917037675281874472218321712293740128535253935848051567505615995158083315930118428199753195031995627789654803435494151142347874762061167141698565679529827706893594554955854439729161326913527427809908828378942862759638096073884819703562628299639836590819989823147682015240329767226186225711628794889958258207749742922177259439594756827390206300740101194871473883039248321524252583129583837248163184185520205510049766958265322556785757549166409702410419049240165802099233953645190113253816449260092557874153158765695383691083598782259047471561612574091936067539787602344766295784868315736682515154722733152003220493690850545224060435749544661515441160865263822362940501011654297181591352143506311175535640581390443251600292182010977042603572029572659553825054038788792387465728204745243145568881248057270719060014383667768282619511802825340321915514873620947567522906198233240561501699736647151963650919198775673632433845042174753011961225204541527574854487446203064992056796062281302555859021392149280044194070024953320988412804198216337519548391384670308411107485092379226091060792538407956120452057682894911999446458941212889969125751092507179676568382498652278826774812881512488187385567678965581457709162895280591042565889670680560308580875585916315020107394433791494746324890262815153830694111794518077834935550511304889871728273836996810965625214558254659751078401093280134904585779440019595109390946988612129402327736457176784949837328494947548057894453230530951766350668123778629127542830719352092762817113217020970260666937740348166022974796817270299756043678419157021983991112956029586481249812203008982061645778853164735462699770879905666514997508977285991426114457581309495579003012073546196726428966705143103077917355291248779095461896737714214500953236877190250395724528311534129393125562798114935710395214353415848808708382059545156630919927802943986403147968935821528449788925520896842844643839477313803059637195942643584639059391467717012861572685775816478209151914923075939151835876050984991528888810035322656949395216803866993525009200277224975337033424116147504332915503087714007942528188202584085466998247509210548389866544634270334295880293871566414668754265169532397334269545825681212363766222417817682218534382804051455329739849081794655465625068310072209810259420554373634701552348626538908867911938400563381900629766729003001358990627645231719252779497504099292783218061134026044516430219888248777615525389903410624136129471095940113624899917464164080541567942413865053758258691980926050858889228430687147590154367109054539500159157803319046964416634830796885139021296917521952601917876163179639693935149739670332646261544719837793626198460723548524418493366482149594298858671801290138125542649745424708202006805157649990044162067350073256554245548421954064356915993355161689164442667972128776229857560779072041691249492166499139900290322156112608620678592160900214974840784900371606130724331361645072533017239196294726397948179083826013367520117891275894152689933552878844794962991848453200011298061394213966462583186566873702104488308163683829392900790362402588546431381111024420067708902469997113903669516801821619462452741049838135693961697039228525473214341346532271596376655717424674470691601010863472002173273292318157956110498878159711006554922685977306969302786225122449243771327041227916813064854667054539279229800237010198695250366373026400291289614813824347708931047241162384950752456626129281477669575983510746911484838761972208329426601224803104985051156708950579892529014495655555097588730885479960170213216972518946087039954805725534205401637381503611967515464503016473864504780778023508316995373897149285452596135877664727446932986465301335341625913059366603531444753278521850847895631061194229764545813565343293612277647765436204913957385878426314130133655940131677434886407578263485070255339470265590080342014461884039192987651980562679620729157467624050921711413099235811456275480008740317009039923354082645256962810029498342009372431196841039165654612171806564615217152337553110543188490552689525037153512204441194892400067339375137579812159923085332160006734144016028079138573685716528829622911466245294515975201458430054398293907819598252081454521761639647003097899619124672535412051397893908056404963231364865998663011225120581430159383304903636137515508372760225514657545363185547662122646166673897523438948751573757224088994979437293165948540998167290712005124184722837286305247102354230808535420114440044534427533201690471707442762045270491992625957987983658161367110666726849650655311159107384572342040826849728392550317576188178157073477117923323651531529884991270355631610442661251170152316467789110687411967163616384002664248078308476453913473277063551163512266680504251352604876578688379443920866758647598670042984577438262872868163134205316165176675004179483442206349068994389618214318441349585175739361113916886065531269145175292468644972098722972908658556764617883250693239908996217357170936532474017120678776253206601157759328121975651862209895043569822837292485952676754306635052205419149083250140978330139975089828895730192977282395582635181747782890516187734807196660995034586164133485374680822519331023084646502750907009937555490297233196147745252203891424721478053824824092401805049959933901508884453281808799515667632655205007140894979221391231960980302933502726573565701789890414947395476935028074507890942580365061657243121743960074709581844061369857121393117628107512830019692145584572053021423339090618175747602524427748733020651696954749251561646493984282500671990460300151996467124980671862351305539714947383908234927611982687022757428804389635527704897240905721834861739435898782936074869312733226150868703808932255294141667147690069423556298181120431560758852063642092341962003066953709236572515536236788894698005487665265771641553349096509711556561723598798608784634834566944162041470519865013947865099394654135343716234422560740425645599089028438984182034716667929185305149061972515050193872365604836937976742259203084310520901761759103565899401828845428271184748662035905773666717318441149907949022468770973837622579547918450155644129273793314769226921236126644614837720821606200750504829724875804469819977759151269760202004174668351268496026939246688676966380616381576991929640684182561086500319335957283686202086708246648963813593176007418706963282632975611208849844043728363888431946947600229389089957319516713051516297268738794114366200227306544233874526174114683961000604071659524895632554507434123982209471246698643809776204858751063743209300119080145989692158132393859572783301791960153266286149448807088218662136457429127038074001263956669204635432084835355221962161352840215474891926508289163542908898514179245314291536973635847818912275603789249697569850552395408088736763528238134634882163769528786233238098165515965424800791275288506664665346441672035376364663147407600762343587405264903611335720668921097714553207029723826650090169367413846176684501088604954306510210459775431119434758954339696625823210698775300386031549012440015908711316385180723060400391013785974398862728001456947078562031492718019437646084233616213923212157443917982454141637603345708197742294507011408775608279325768063208442877528720296737379176281711941723246931878297436682100169295486801852779464466119153117554166861744893699016443632149576946358015491880888670138757738456725436800572673992907109051193211749514358194894576062449125568872180959134804983376631872597435918123196537550070718820853124251099442680410024822267985975042527196306078658410507408938089797596909299097806713796848773588635353352671314654419634722755942872518251787382717308154612988198617401893928537014437092607159960918083223329142410328788645961457249843092134744811987479324547883919073466277519159851829625291609892558359835542803955841875212796229445957416579933107826647870140741501395717950294644972146375206447378689485048503446668756936565698218525555785018317356321831420634020257755811495409716576162321682633946555792592953773686884141850575023187566055333090705034050440093876324777229280555746455008867587773144007688320877191527676128905175897867648243065710213073231747146479640241130815564164358081615095260946615079740457782124301330264239040442301183211419051546049659027281957434056942532898662698289317211322701117289570539152317283454104198531033961610865317951019906253298363576736725278480196826403972775363138508198301570332649059005659903439156453144575686841797535828704027207484368112608512425858321875088247122522405302064696447180196914583877572619273836550132450052874147944147406743926639034424306980248132587335969452212461204352353142632935508412267960620265121289254890581098450483280834609314875126880594212926402314336884460889995851806498251924839158276705547874325568181870218478112844176640609957392598334277902823889355249019790973395875475278372098358171782271210822907289423740088315322737340823513887399556317003525450727648431061899899709322109863722226013526104654943361193661819683778585259727526671608353187340002662758512482379634558359811622462986787866091191565355467675154967523689033378668450436776032674597237053154514599936951085372827590269076941288711576557138617727030155731112893790743307811181007081831811171867857606215581714527050960313665913536277963691995788524126218901979201525680094386116484013521111198064807415824403596400229413288816792942961033120675573007229972699859035102904413514074705642638734520883885628252743760331913733250843763574319353945843452629654765052954515260048615813556041456162025994950318352774164249095499798590265986694663224363064284860589785642289702126828079150185197127445185342726692008691756007485172171109095846348846103777056139947472350134679845204285800307413927171818584873834983189490719834821303654394480532449012230177437638955268450679597156232840723237910657591996260407519533079928595685053117366092683202969500264790098834181898187872672860086810932263062458386829022875290922024485412261152697257714262673129632727097712266501102244955268637899904834445680932291084519724707183179994812988122686194541917515119977305207053612091546927039313936704732996584298213718391649052676058025632701426971772994606199158714507877557614756881890105663306238198092116710401258629731871241038876349115641330779542439621165031818616025143282935846249450875628402993337728775208328375465376583114919007828799695380951489885294777963884389001138702617757184605891332510086510931912283253112267063552596925264759947191389417270243983677994488354369273944044380549297049437983501593145491705674420719208383449963442218391950793582508305614842201300781956466943623786629426532047243874628640335066110149095636092818126872795089815409263476302184477151370403287337542869172564065421705045534083570187228912446368676197723909268160327346954766308723111701233234605485201693865700490147387747437210274043989552529852103173809798869016954863631654196100749668926783469115486703986490724703024225179938731331685381689943841136825073766307180095058795555733757527700772422440690011299881739230350234544044554762044753445829850427402275105950099240838419586316927640198266531731170718513206981888893194571619503317561123967022048391976863241717655524913230376474461931496119062871545077971270719216460118272276985563628982944606732783196919577596895731116821493787373850216151301542824516730372931929674717936428622832541625338793997268841467851655711164911307168372601335725786054240737388300546587073462352079028896253765612821416769002532082263289354474264730670869035860322293600540457516787549854978395467620269099345753072667939424167704540607890526289799271465932021917633993782567050605733852665909595321826243428254034544687411128086570954165377914488880673008591984740951485953701598822681539752838984721141411472950694406744144215027119788265402491022566796419019630000093732598965136533500745663284653219569404643633512644254984638694552840039169758002427522714377188270536422685638148081835166166108311571685151819053160605409979626770018030793430170898668853192963615477220500967319598759045671287445491392167793741443444643587480603271126786127123796747344000111941020075409315058887493483172860190384233945530085220724560904124622866035528273129229176116964553890567971893656685803522168941428281555941110521116056586268626683659790695151516350608882537634892121008927507374305497536766782805685606634577552614646903107774751354449822579925531347121439427173715236893842950618058482140894001295372393726249039818004696645752208472184069407446794500396613550017075888616803742311619136427993627065697053385539798450207209302273679270512168584000897055133809902591351144089918861340516312410871085188756019941974437171157453438796308291578890191364449543739292796228437063476305964622148063829983485666150758580149064527297577210330978720261701011484574929349834666030301564958113889282895622380066987878779423521132690348937823900303870592503056985345517162951330136244304246808763859066883777521512517090703601532850456873765611688226990742347766154569090145237095732720759466628199218016533323197287647319371590189163753387703020678339223705132209809102070265070016569692676328337365394266954713328292552970598082677544774876704026966649143300270944527467897585530825956328197109368972411237693104941526652327775306065838713393618900897131459218958601180588840346325288781803324901110027831377907073928807693084196708539042163693611716875434453190553634993884691699928118334762623545613679765834633103062527794079478442160386162537888072847187982399617714570937916394092144443863402506463502484773813369167548461134835065367981348396936033548296184745375972183123297434656981617211414754370207446725631293074340406627570247960587313674353892201430958726887769058428474786026200000351956600443833793043743759001558235093746361700422034575927226378164502732932582758728257770588837193790233999726185103880398484824947403156100667193587300704615878144905275820610313296543548130353869324201667965986360611574118397691576671285040767856219045275859282301842856672164544152321258005985765811028403752301202144117245831271754905670005471929691461568097473663036920647754591326721295250922187078635068303854421935943129796653002827174523979277924588197048496944817325613126800962093526872234542304994592339159437072868524476076636239572436093422123447301532068889059757759023308891499102182313083819601184691323121491655150358595524252403671596487421500611077084647351697584972874287722770755630579064582702098146952947318130286888770199171300532481118923690734061575163665748243471561614300512623424419768454466549283683893877934917049710149817593207364602537224714842896598195189265225273244434843109702327770087043121507963166792976203142586790555475921485660767731232664399673115971801400321181793529317730196835539663506888212940508122304917736893917722825919359077882211923821444765308740534637779110033686879022882108869937096952489636140489851871747978104195596867431083166607150464770688141784671048568711683584411414310028914478913247909410148008195458097092578663345371694673294519456819017171365536626747334157433871922896391197723527915337197751637818054667533041133480393411033729870671850507455415947102453660311350920868061684520604673883359657228931733369831646330418776437670655391688999398950358121138082584433521776147297069125145614379984774310066161932962937666257247668355089993459593693493209183578268767448911021990191372542873600725203226902222682693994354717887652151941977922253550462904087064973908053329718340236302730229471631687722757947779344668534836431847253996880872368528540972501575692347641567129515199263820033507890771217888723159716867028208585670828894027925683923169391850166380931056485979628899437893518881184279887829106591856065860244218810910528946154828208388841201785773302005296513447416285501367503972630395070352260936043901838048351533808771099720000248869006832842149607979790264131375251259716992494791947229644502404388910826470871664939650350824875631158287984959851287742457422156270188151263607192273428234814219167559860759936473557065936225791968285772381317324759456684802201714157899153091607769835998966575536039532619998625774616045984655181583621926030532075390303808835898125828453850792514561998616247318332089143114975715650612112921599547474114965933002799433924293331789021996503318596255201761391594627445205809156697636948700367337001919378876005770427216621449558778124592011304446376664192447350274474422732655739458881332695962766799041724449457624980472322963550607497617219875519006934407580036023006797768428303345265054635981117371022514536908085372968769753281770109895268585299782530007806504060584696754796699299165845993760337563416674458722707714945591006680955795681134490401741524685095596365014444580302236074055595656968275411055941893285164508220753737353404038356000331291986330247654075418080142709857352025729123710939049662820753367897207607477899707168504778465617073147403602053463040318492377333732492782170170826908545734532642939670567860350850153197522859725586702037028048706591311830067408260083145362655105852240619913978736211491662154396974633840100585358325132807433539811852956197608473304899905062744237482164251664909827487280831207354321989093948254920265470686513421654488957993711410215296253582818909155013980851479311028065754297994259350865268153111647741508046459649647737077804307422629542520446714432139215227254769879746919473429625682247791282993562151039021881537489778704514254041327070706931791710762519547892368713145331728712007578366138311066268521684531541552203143528633155421568377985503239661662973953695835096722808165889433401065862954375328990255211316524720472551958455751906509619508991268867000583618224242840784750415902601546917065973205341051026189817524970993681136673035920137261482586325726655748480867003425847356919182939576894840056212274500376761144350396533833775798516642178988907742558069489457668327199377041713081609200271090639734016674635316143543097064333780647102421870628343334962127910916503458795271623602030285052140327901512404525702065976178661299151030148057355918736523140259167483925793314736164814224641587728978197764330399148103980730500972149243024677022148386251355525814754785911652731607510316131281538788585382690964772478559688879634037096553231865515965388728784804091466627977633434539283649651427217034931018077692455297988737361253910398740942681561489203621101383773004870368409002225939264608639335166053689501992376738053444070527809259483769720500649075596337591863972581741727832720549035140463357654431528433104629892964956261342395639988308802290530597029252367674259523045406663604703265393842397138435471494848650298818816235376978281858118989658925289224666723875581166493996591870458627281975375506697185852395742790851685141586233930460636992740927241170336794857192620298093625548250962146468360567871541700265294235586287422171490945679993712799614575272493301968451853305242915415970822195124025379104228808183576450801988619357684613412398114924860441953989049680030829955065584197516489796330030747426329545907366622182722760254967019665499702413788746989391473915272076964564496878747325121816813684351409199526490330499441151364149063292019243764609801623171166933638958692882501789069695062676617533457567056731208368818270386934855104533023296357402449203107521709772728795533970579060084720987420535218837016530561355546908525831133292340131551270091281047366292198870074089674129300638690074628614861252025337992989008386462814022496976805856586054606612885931197215895568804181192087573079405617432168211154325567063793395010396668032680514725568283139280062400873302878340561531386325997588664219986804907200208958563723242265900961504540331571905817563011716685953961290576376690896484913238088996507703313166180709928945744489244641245643077637537992216078145554485447125182192219179429177084014457085387574932397174603910264197642199740154093579318679548645360335004396808325163352999368546980572727869450514120842462345176767645085108370970358785408127809077960776537424823383916739008022140218000173785372563198584606475083901018770731914603090528926180859058791853270690807505716865017074920289609735984599747090263802908755244237134198628465044740337934677062638180793275312985130927988193825845331240293019881900596852501507930472904644584391097339351620240925027618857197290819087377277295231198319168301959634613477742454726212675455456102961635363361407948038228457439477584574997329053611082149601772366066947800022763283897607372596247807804002008049991744581113712332921058428570370117060751300109523130934859946470790796559240421325547247497828174895511686515702950667730454305069275903057641436379501174691246178564834477695579859677622777464456455550434278646810218140573883791154292898331477315511380755227299693785764009336145727245790744754585606965623968951601990161597267801463366244427859940928695854153911722634959945051491315781719970084999307147735315405951495268536146253592673767367094104682398861120612045501952521185193650785619836297200580838808218871987183251232705250185035016359332555911239720245252443435650854205491197529265919333495180506202180848223966178224357241053335720065678992557315682121646547452036147615675244908264953365060927986853628246223018312333937166821678690129618409860985024091876188408865931104619487294987881324566071359120221411470325373014415658958142033057408705738626126795641556911310864634725736862071674494746023018799147750594170549628485125349749649786496689091728955797091313638765688629988227183607631178901620267298369831956541326732759630065391368586822181962134170880355061981324580717716776858887704460811109231799574022655764240994261199243955961621382899355671473919216530422915542057643853675619618282262219211930613566502809412884364120100818358587934089302742716446549882556145920133910957040129542455844562290026916252432652435027965583499928304122742581059458278213205531912388751298169037901895978596478130688231839955309993343464414595211386493411806420664442530263916678803513082706081094310663412612926539898870482957182200216996311827610287773853944193410496456400496004382820866485279873209390793761104609717096044076827813945567175590756244167867423473625863598322168789213330696429381294667280878330959965239987020088347682960501157705873077792139645562889936854174901270028653765206608389726418427372820324608563543159484560841133247642002669438574872762294357691632235055836303025600237995966265675664089970253017481828577852185608688761785036295199347157892312211326216184778256226242424767611548431014784367225774959335857699238786241497050324588073026664277878477472959344925466901606907389326261180253510417015183065930929513064485542660465861316252345488147278475298655628865855042753455261009875144970358649096116738847947215202015291700826399932771548505712126473635115158575431215472764406956109496204287992523112010604060583599188544493158784050666135018966402839405368305837994371786769168173737780251569168987858845231929391468089262594657218221767194343625391150538062983338007851900190556639295797634093805976101572066563071179430636250170881324681396192490125232567747344242126871705002529884511116253744224745705894917634038033862289148766439141116315885019421061834911568584946041129443502378074043769484944810818921839020672293313809179230599396525634194869139058536945631347161015918323559374073763883545006753466445481827524972743997755719446382380997095970263388213880601352738933473544562889071837245866916932140388178133107293924708264858727330818572878658658663407314207128792462433656393562577801500218474028771069745861539405799351813203663460832398751774103946317485396284606487652721855108881192606869483056283031093031498325574065327023527441770814371716388060270714930766440585598407244102733621671145424395858817973919219361970766522709601383610425665791669840319326720448727982447158825552005605994519211346867898473753959504641309154005441316041349696022964396450002912191619712290394437852624710056434651619859169724288683772026003305684126485533097715285620833503777321088515875432540920479204257785736784321246514883516541445884001542678270730110570339657561382260465361901289652566253653442247767625196991823864938780584988356986659285359809641656434619129803436773197360777333658507206626666641869817416106015148108393673772116970997191008955079225731049250179839692307332089172903087120534329176493419481414146203434359096058625026216233967583116509896302763678713538833137027796031227211508546275201079084920662382991145372684262192144370362785750348589671977710108127072179029995483225630911306913873932652193597408188737862932969684706318610168020330067501554749675027077416790691032900154497469308498562416085561518846025167403448865921365901781468512242002697071398364822584973616827567534440175645144626075731052514153112548783395072909584605803993160556861499452786651633778078438280891593959400774921819860129023279464109711060106051713336801569132788831383473719243606448144704376201591285015823864712296456396265635310088799988630220347205600568848767530575648993348710089116274336529315619046034772122594447786660053459423582820424603167297862258646104198014099783493075298832204277474857859923069766295634308395504781778343627411288397142696089063658247922228198388836156577875197073560305254504855142497068243624323690371007733732870901792432884137401012718867343033410097679209929013247283049266650228476398815448382773540207811690124419753407709579437710730154113027705890369408413572747565213516137153347023673002320198763947269597924734133181918918406895436234466156046526047132917598510504863993386066442120809684569073214883377891555976056245198504936533232311482187179672562572912590905687788266515190062292512636903758528424356742145969669034915359225752134696585078386014194437143128661035452211629957415001336575812161531986239253158870327803000679707062913445723246087412152341776431824622885341684790279296793286982864982266596720379214723654650196880101837508183790962623962550147721742385023609395107106026368673106329656597637032688118722983150022325473018307816016708239714367755360548506393369235192113517325828401601715760468604522126988184392393029045235506671473255034902627150668990619029319721857216647941750407993526497528143121581446996579740999396635041325321116456640609839028424924208559161848722230856286796855354530119607215577244928298365106085826707040625062973947651194411007415578078620623686139559276618644001816141803146679303891282124834552927807748100770592906502058036192433002101302072784012703277433552419138362440083485858360990331373361691324345931837514917152568319768803907528610433116292393735489106588235810332502872748027925542394029151377958888074036092839535726779398180292664787391906918680259677455968377439309342852542268552211162380725179706356584745591085556082415762495663190188527746850274964720592156662110796633253647021959825241723384517982728725725633010677158626302268729652689157951989530666737320983295533516297528463008983152018787708977070674661482547005098339515695743122240656455537307089079386960235067582318178428699452746563367023405368634241460330222809639035794370132096813505251694220628855225970084152466573853835247563895090819251962274709866687474203458915078480126239455030013002717542257235031108070118457078121451599926432248092864945381804058223511931778098155650858747220788903938207606127342692339555736483695719468107078558536165074259388405712537502533344591875132604392797734529489095326288932008417053941938017795311900101338283410313096641929830015224894494198919619608626584984637622418810754616385177344905470494156403399606484676809776647099029771656826333348778538885210221049536116086245884227835067514092706747526780239624429460440562553886324150935368052480473018474761427691883983326339988612407337848787081138819075329337926583644199984922664334383836194301906494703128076972722363117170829379038493009474747908928792334691967749888261624510455062878466773782855067498004633794315315639295320986509414221349026519304021068532736320479394741468830786245954546508881990613426869666449038585737234986585335895221191020818970930303485766764794270184882119074576618300618534659227380742040621893001882737824336587274398032167855776861963707686363305339810814871574729282674771336424608844651300199335776111531262176741717785371755791420287600744080829781284871889774130307207787883233806362792036589488765463393916998247602782878747162907048696614235495452596815782684340937363988907589626375464878539501269982191612867550642257094060968927202205343180174854444501206172247872685690467059892742292892476243999571657371531968423351306700116422119187236122906393780806739153137945326568558549120512039652240779967460485661286235217701522404510064153630111134286185250888726678848709607885548495470587005449442055346855515701255883060458262243753830124850358312300794041504995758649204060547716642623424217697500744963209270763717143739834515375529199764666678707306581550942945289791172751810937404985695451600711622925622150043646036629366829351025562857107818652871294816154881682285411068451850183334533153031445044524837038670684977537958807754026383356557036141377049051703180202558592311042604671863985167219339227142575722839777772560953997865055907986889848799201255067992588805897779183383612718379261568430536392303274341133294966005309068199018406440479775355778821117764752734022133961273933135039008479025402367041230512633194799023509449626575512820224791240689598946280863239965852703318724468799376966541056230623866125963070771841521845149031382223424173916230824184992935655641365451948294958341548501563373471848173770344073502430268670931500877026597643946515877950147493669258461272093734333391731768420571746549607058005701810807561200554383115100354983645452350315776804240482067721220000089793725331569003062891547723344654725869531056352690275259887412883219457070292988663399185705966081722576715542435626345368398325087056256594771567861354643404408112115087110840017270517945287273977772606284062580435261325147825179747536999079296494121494130168251439294247909921781139789227088369485022404739185244919008612476938094470687897663381748147305752895094192877833317318582827437996015746128698966586452393312011207443038052765037202707294491564807465148817590589410064105225390318675673317125843527839905868342518944145130977189516768878759023113581201593506506456643382207176317363838445756792698822908555091247266591760649388828756771660996423525845506072821039314203822036546059763835504286586509231386743289088677777936518882981340352230981278874284797102383133022413950267369367873564822585636782101913558157061269433067655545081043449350013958798373813071157834635593363393624592775024409155850514422311011232159822620136634877167587829682649477581882895067973727548348332199248928224044432206129357484523204972007334905496427971609899275392699620213717186812300618408870978872333767010703685622577956488676556768805670761810711088593336922458894655678853247298393810127897730213762045181483997024196844114162694962649544330982693520434247771052317768488058338173582297630904864270598843142371046810795923341459492747690335514844203831574759134191663439184434321654212040209625131327979350323943896093516940360176359715412737637460698266883295160759242718981574576962984002448750147738151140326153444917837405559603507157302077408197238569369596813114819408777739087970694580672288795319159585627584268796558350555399000028554754044996182602434215843185532637903691783161412896993741909702710115923112427414274584979392140809369991986691605323246465171932426720105061016555016972366713814962451474887255390659691764984732654940080921050303339029290102605459985078446864918609231313440143185415908306821685862297633869845610143575803849575738974834346922788020944053937952578414654288667303990655716262982677224002553730524893920173382027357190987765111750848961607873905022785901367334428581216912932649972479082241528903236342122694695233643560700502206378059525658142497362520914052060410103598094499627465242578890167478349907281304888935057254730291267147094968375718460970499243997968491287529969768455961214957010360969387713653047073964472158455806068095013657748849505239014442379784355867755762372924584965211708000190047812483966738157276827871827918547004159538409960069971996006791977716827489222259397853114326248474314397146979367400343643225955841183254270498493392444789795400842222328553172318457404303405201944829381470531562159427675599058840762675972422625763405692313457836148780016273615548137853323458688231211223778726804696608007029204510691158218347822269408389732123626215689618481635192420791200243026850657485962689323135670041255473973074698615234225076464464677484359949162888748910550847503696900000357822901262875625188598571334974341779436388567610093140538724758419241719702309311134568889722597676565742129777877514669033468052433414821700985457112313102675752684117865381639897910301016701832300453645481491669431224491889944194674310783600864045471925915303782134594887834951542936633538849384914663436809678311421399515370237717913555918595591960268921716645669325127380289179026152606511174168285596807930832736360399139517709890114168994375978945477764695000141824067872783258080351028219430152690370654944529507282031721931705580660276329291093236934930404057123533007949878928682277887028679348907318514496189563811393082313026416305534855317485270392708142487091110440333819432037873939954921910787632348267094681697092016025603473582830535203363752987032341549945115904546333232374601649142493433623912230787218051731034883946478831590882746781151006827188659597953479034197379686420840851644519722873777025380229022032754849600675126677479354596802958797780589531034553604180759283790539292266755424897998682125561044055151543990594581515065302721292735648315068927076332274090002199252982692644762521487908545202087756984882700753814708414873071030655412501487870304568745983213765665753397606112511165566068365224711119414406829228358652544414185733789920691725846336823128969823832999274837019612364930036559272521091361659859299061525969445704001498456283056966965386624041413473743428046628530000239801856072207094077910546464187904788369408038990761818605575069639614455876629281404951949434702697640847557423727270711564389118926912214002097434693718551286993096772212881560392570849693786425382589209801133484863185243609099999910268625715487304194023401231018161572129942765686161051647195186463772294939920463815253440473785575784057949419940784353966894587502700306107396899093143986935077610146940438578705341015617400191543104933658160849022021315122746572013040607733061781355329991770854179610828541992431318775964869153652915165657253648597015071732083377808834084458878407891611258313065978817310841879157192137487961784773730058654865570800240707527408921839797934514111723355404764122544799809901192747899504938218498829949175121413518564581017086890963417363545025392750518067451273221968457529144735766738143377958128267537030198721941717512169821900314296898532521834333480153559788740495930968618031939702590941785917077971561873491918568725479928088257054117083390562331265275030419120180854838199382770533745851117194169154716794135856822504057181887240989789331535214719991699419049054363571739111603527437347715883447142789304651469829866092673240438871895877248451722607221277804479422976011681021750932058465203817940426789635747100393236853749833115747764718958434534585827531872911458469132279808217800772573691750133252683552459691580042169749735838220096374347116067713833866231778632793638412666292583442218008465047485268355805440308988206657947739393316892304222389655923561520942059067447924217552345637193080596928741162794985850366505180735497252729430657778317780491892474160600457825072885543930836364790163389095738748703869993975280595361722849901865324852982397791856561202408457304535009144757972932540630428378544616462892966715496166307202635146451835655953459362436703045660294304599528020033209790869357029855393966951961992543591058149870818295757290460192870497364758692734555723224721104149550792638836223422464329232903011534875947491997067033627827340840435347534626802830210336611458064920280393723827668063908035231547750293025995966093942547028781220615700358571565433959317041493754763488962447364342417335938911623760765976312019861724865399166451289392213173190244328912244986541720117233730929067103114315360672312440933863141971129462526160776944384231069000585616462448119884345879176124116835123903005364442971891549557166156467165028898254094054213034993333904790481704847971842835262646739701029166549160981974351866467030913596876478968322950009679458974433933262110614426114208160417126632198711895836022992979552728105517773451762818146954121415708036472854664271151881023653809571304043943710162189038907866774341718578092593612224680866645936819493508277139978609070246078620926500027376875341277113188130574511858110533649897775114378925986494239644223263063123787809558845471704711731615444980250768653364193729380500650649508628969107450724437021688523795010442100869469242744163046204623519306904440729065480489692278753800408635908659125568818061272614286406349417327665926686602380230313682953994607363098429220981570428626689121556297724699406168756193319969181019903847942569814668205468743784544130192658005972305742968086460701759485566227895619061913680615314743223575817506621424212552314571560973135907570713923324919136767520023672157804652121908483624843568655313808769389716683497739040733904889396954047462340718408431381170814795721591950056737633054913076265383690121443820112382103706062436022950666561812209708453654103616590587955042406104687457557180797072653219450831784777814262751288317499914760954466923505540475084685111204753936857266295177118140125295259178751132432094930846176617828796142802340334533067822362918260544180007194566797943961325673025656230879837947495547009999862240874597396163319931845406823493272955064093637459820285275400417945863183328283825171508283860934597830961572854763135189867165484357522252798897411682197734461721161938927259740740060743502200167033367015760939502908749508504987962748921462413700580932748213296300976854165766859150223740118767089800005525147314437495939228850764422682044923390406923083680626877550628453871178440768526647999881331995168182507307553039231625093133175966564838316257836122122350256229864776541312468129363690874527102628669419952460659591783664925617377854757592397412544109959520243788399468666075267349742302683164354546616468362713354269164300954574248901229938980754853055782998725718589719764477474663351525437608028381901101968743385296548362986960504026381496512718963089062756316407256993858046714595425331183935863878495195111240820190507528884293088474548401128868020942514655725257012911949808456462259680781947771476011086473111395074640151626979883704600327755211265148719774794697864703350214575620568086660839110601145996206709210717402060391578548605544884905025887961057780125163710277035801392374177051485512480520436718999621402434699095088772870409176798245988964712685553459679863259041880028447570389279352095981538774899771634718975722484792672664775107725873804694317123821416634376144304375512387525172850612338868876543144031429584114736317297148010852142528848945166337377003102545826818024466088774800634658845607808178619867166356626740730041995728025824290484252607261022715727786070828806377440802842276235013152827586698964591247829663551194346312926361327934776790937630554613154894666235949509965484554053333595584921790394401528939569761194397037464949312109309459501855887544061797860194545091380955847175736234853511312819348640580163359320947171797359802204674446942201833090466835499584130093569015214951169106703976669461854432307947232228276096052031261031724474384771492514399244175774520319989799811184856273662306935828812087451984420688906086851706020164082688717849285311225919031253877117015838020925585964275389559617880719880442719316177120303562012986562606411742510351979056280343509407375075400827394787880864875651267794478215617801707387425359633142262009075962051030392132818156463263798918274863681998165124011302394760223064527686790586800986628363717025255886655159572065457787384055013138176534122805501199997645772921289154689066211801816663969965482060900503968490126387367914558289083279124688302907306001006153644003893200378925754403523955618739298413907708811787950153651172148942374423053624636310214861466458438558172139564109958324650385769693817683052778639396920357141933005452497342963040689162681137096577480079413422676582731279046610814052906712683719811445565850068900372735770395779720384165744300915241783556386301236481018898804400113909364892927990837264994293900270847215640203361271159300087631692368963743064806211718061536310595408714881194832938509973767643514636122838619822977725127644962705357403043532830157142790562891074762063325371947978550732381249816827519715151700707324438470791516283095019426521871791741028314479821010294350046050098219343110597620678605169259766385042268125199673789625773947120256655227985674771798125735745776099799325439104148015019704108957921921521016580698670538337527305603445929942960222606050718884249040796008630932028287406294934320140671343760180099370755089825731773233468609302911346200331041712945229365111596490082613819291711755046263880292301524374502065598061741246239424435431500352886372721897751266426445048133484818612438509524783095744763362947436919434821963197182868429970005483016294396725843853050747855872464810617349105581276688472551957072110880018686962949134833565214706425037381187128155619870876888656165821853257999518340007257392062135996915706827874321905554843631682359256404444409703084903167712826933061526114795361371335326901021827063232276566402146808844357403161013857541726059317512696249946663125115997053017880621868603772331171494861011752033110439502489870801779535614613660299404404457366135779059375560099727594284250384661575315255615897925577755329245547852904991078536981920046774497730338335535694190950030530927156868009509763574804600792801944685786014020310744489035451253246622442880552957230258966581303666800052408454624063497252933644984695742177635394025086363297205497881844430534040041112843502056863793257342401035554484788290751464910381979894647432648162749067224988937955362884915064499769836233356543986915560178535926923704035923119033821556435067690822735467264690238688650745415112554953124032515654973471524860364999360154374288642668618022841815445483618201117417601291866976983742875644167502954370906913170711694101248937663072949429092250245740722929382807003570849287374150754469862856972857236358851560446355798846690549418549730879699677348610076625617432840910334744606502634682359721584129757216899755035379692250293572713185406722026383248839979512155312225850250204303940068398984010058100350542469279785765115972753789539249186378873318640173804757293907412418770762439072226045533207075059940932283528521929725415085235680378324251083158866031485005845604930083695388690601605592415247842765195244097660977153913006882925260768449142419509729407639821479607225358552177347319186878439262856904376810723762462459048012907595849708588625272222565922490305216058470795742596196464253848322396232016819370758213404231958386764221788905519691515897428544806916343638604075611677854742856736243061181510298554026341951769819968122621103534063994215165069532616583599488946294839114313688010608180640625108774025220967998891498062167468092721564111699894765127461047121489762878081913105293036501625851550361198041295844972360182253353073898823646233022887378753644144369429188497575609533016385016191633995173633982189008798589370949586440626172769397792518205490244710721057411420361039279634590369791931896914448186992512952469677947980555633109292392434033701602894177895197464189599769550763671393190405508139219318122154373290439451073092128095518852675359188482160826323676281763707409864549466687323794953757497313283427860126838187516353933991143112582205798780525221515450990516774092116524688604313526491989685795013058367382749217213422921777650732467582639143784824187769795094069033049429530080176949860324843065401694203335231462201313950690167885487726996604433066582656205599633127803645507357358057614664965486817043367802460063003791568974511307839236246956514729395616550204523191595593078017415495660418178578631155046837885163837512487479801704483698373437898462569469784771405763738122356754045346675308362168201120009196428065775029531988828036447106196063818334746944936630452960657354732367470086448162236774800472609239094542529001896789368593110562130937654799589051288238729094393171256881780922566012502554891984580573177610016970231670492050459444797322792420301651243018517024837545896262862385765364630431433362223317734299110254953996349808770736852799945520449254913846553578371531938312050530780249840009870306208885464132036892776683402028856566589971904375281181249535519331788304082927495903808864717395263119784218226300900633852576432419368948047072738374202702218775486356195176499258096488162778573661648659114784953643424112635750344165387988179732262825426364157394052626291101581434894583791421483576495532005885211131006485835559303208945011822882208408807031349717711888214655662880742765701633579703454681064426956276004129890814722062151003772554302192117204428815538402467350383322681225900106451444266515287280525824546814792731543524838190840317449835588592776972169657184568653839438631646742445381916477319517705743438484277892093741146375620909462475184119526071554320837293271807112523267609847535929651232929802461052213486382785474676008336671263895302461231322585437660543730708732048053245000179611693343912071765208912832439974628078943194767684435687438555731913424260409953141149722690873725724595824185309492871410910879258237146102099154538746572261238843727205871865120057458448746327459651677139489051749271934551604937468665470304172851472561593007493995207498545521341522755017636813269594130284975940308845865270416287885719101391727060909619341041947573809015927726917239081539573775937103577747336754361563117465505956301531070260862709528123434670440908978735455598192187053914356597124873342546177938547922205609294312497144425242248905007420896909220588143310796191386201591161055271886569352662056741040666813997875731395341038789293588080827965346005249669422711775870755977048578987469796857793731996534296631377401918983646649287456890452602517498549269110303298617805779306051234038013886871870127635701883376702419548681177466340621625653577951744598988791951638202075041910995594399104772259797420489217406127019435224189283272658576922435250500251596813328573450283536601444058932401643710514981599451292752225416389007576300588127855752896198974636911006331888499503776691320436411530455032239988320789544343908233449553987923508788505005100112063874574219815850552027386368072674581211228837702244811744368114799667869139614386449190510960474147804958657710339454494271861978446383033671399226385635998839482259994668806893125929227485700473597880464284804474935251014257157612221947510262252171638253835332273422848951936690202728429737149170646130176955793294853087444435721444099771047272446756164981597328144231924026129910820168466093606783538625099755249156754666417386735793939562376467518593538097243875764131661312603197769825768603809196496883363627233998147599812770192891714889194171699924533509360057555757453719833952924589215915171482337554363858353856998134067243443771732387887609564311261538357516538727872319672837327083200253542927391356328343909946439047383557176761612820620809174250147175529192048316171692427890366877595190165893061977827104939898603852035202261359981315251725626358429027084016346449093797922492543685244386596929227140429331253154629191840810626611016330374338069343407351507425369273308129061893593823773431412537729115794717315763097160962563329703601128115516481843735597789174367762041789250282851088103261540349816319165491725138453019149401295859854057213589839527999252183279992391563509338691035201201976420482189956334878524993666870323474044218800103765613326256063652684539424611499279214071209785828092122653665967182856190371480046401313122525115458443848321473672363228616900010225941327194992883448376433443190480184820656945933069798850979541230753999170693137337776303572313036903003912904860334343441213327652753812958638532194387078799549751588559756707249785182114638977082150063416450278906736923503427981143958055058727695001523767668038304790012177978921654893518445389446127255717443515688968058511036089112975826552459406833047942524760862916608476015023618702579909582345706528923564286672627105187722772795199564745815302298774924684235689796623456555991272990702500890353711719193733458365260334327800958256026513253108993959535249391929001688492580349239969669285665057285447174884957211743382063116855707527199827679195310650445412285340209270950050739337683725248628473872475964404169404496432217987370255131259723384991866176584155745151502448905032286467446204039087871580376734485654306007212910518059285659992576440494930792493618054081897188347394739190907265680013475647914165857576686618641486873499882507304308981001447864432739085781986909179130688591886624682617182872052789173220404453277965574466660137039704290771229529272250676713498792527087337345025735075308050446395710391682390873486283521132427787696458140291167208670741849194447643467380220194625427995107821172510304062440315840068429558915392430252696583571104136786010505386670678944695720336248637329159850346999134003286568035842805082972123859172408379081464670055934588023486096061805486353953744954881306050602187162085354260590994957667260611764287414156947449392686692664747205687471862591157236707490043750086321522027040502731372657603464479915698185490191968071986697401459799550767009800517281725452765488226823275231406824513722966479912719630385997211506765987213075375158039083687353824666966932175672491625252864053100839006093467116539125423929673178773170879203630451872331365425409254152532666839392016049603985167881695284597160412116893291800642921051271416470898951673029635258376196519408601391910096625394704452841894688551689269585287472834859680225624017940399217380309983625023351024881395393565680008190678521788728115223149733234876627447986451082147936379695549249801272027031428913843156529011255961279662654297844196568131595924682886038477599659043471559581634065621551660692422692820336202770581423131731738211911992145547281874143544416749392568413848424982200390569006110696856277580171017148818122639503960523292613102811080612755787277115351234527812429348613513199433155739252938436572869885695960055001901902920771685794844027043558454747678081461091588571904737698745370549790518043870772678441510520715632360001728330794729151119870825929360705985156550183392502381789871391740763561843003811875617601173999394307313465373034994270286121463066816016790025521463372277064424415594069403300808820427960725883865050441518043511528229987865889227841449204632753371317571658845584252826393099523390636424990853101511210177869373109629331905297322681918635651319963454078642349154099213863365235419472427862972346388945189039566959123765681083762570061945408926068210233698588903879140358763871793675530328163142131101151220829819610387787730500466757553023937949284316353805196522738637759487367194301946246840616974405058997824220371996739344918403860220902367444423948830787453705729760292862689704462081892464124384102182099484019557645066130248643058694492513052503846772785498853530988498943803763742569724979180799302083987213001797199405827925092156499510893945664539496863919419918904416026001918580900726273262785673613202573434290865434858652256641228662467082388007067190412779461750052097679434395763268973312632838130533365896534495427096625767089442660306139093093532870817725863119698158328969696717365051801809661019043766722186344891081360672619247462909070924795207591786704463127475775759488046153725581195414472194317540813550420557998016280110660963165143840040205100893136914045237359078912593620434212406498313300069548360940014920982712959162630348847326357075360458329755851861633186311810526374606017697815756591188043082913312180483393373619754931265018159316514951442433671621488049300417968045445418954237063000382511488019498133177970544417100819917012339541191993704274230635920900834154921683569866990123530437751515210547368117657295956803816879105859989463507709889968812089824103198387842151519017316180766061811890520001861370581599113652679906477881049120591116697038237823048942781877678748585383290544005584466758688652880655321481272144614984596342242286080282586097144142768788880193475449759886230509700255245609681450982078601150351885343841804362375014036439320069606962702411700781264635196778706380464596922508845391701818479022492343629864029964471409178786216596191848276952612920780024252511045872976055472706274595628060724557937336922238734569096954003363094361865093769610752641809936116517087750421464328345819291588172882074305367362764327956319459051048476725800056154542893495432576081856063735213830698550259873917412814599090895956261184930758335294596666788266661980009854353421960349489950426652617733087399036903086496638724853078159612369827050627259115515235639136406070960623591098201615162197365986984488939753042957626599965601629697426142648829686420068267146744292622079745842035596638052531774614303916040233627988447627830771365990532218254840597648532239806662300914208108211384410532027736591183144576484720725383712991272188690163196596195861912580340635606405714461085110678662765965828455638465666467660860815801065778021556801294848764330485797700394021690171205317443138355459524402658406270135705801366730025185579134909133584442074660349493177361985192405611139003243485176378940338776516834912911742083673973837681234084134924954479816909633724525339570157191043738672637342474034333444252154659349705447822388706548983327706545946366085896224736213157689519789076793575880091729345978976090123900201082498238030471762515340919262839115120795177919136548192881778228627895677077382751963376209767045535242559893358171816059473497358264893531685617987292624978646473727583704313688829692784351820214924923789133298148488674780982371221012898896332809367420050948169464664034183470552192785992454359298081029108782090242185643103958324424575967521687882400731920848707387185391900793985062937878090114794730080369621120943141659490347861273347741323268778385814530939143262248653168651499618257661720417776430664157415069729302180336268912939106864238054823633527001705020073091952374329372164403550847748254175248557028915014446498768878776162204086945250497624756937384200748120585379284140674636657057685940149631885941092567601823345259921273657788895423971818564875321391331742508873968332488217373858888977975790971291306793332290417251224031449952751924132694786064846315324928502070092674092093057749309426124466000413942593568453381246528001914464099136067861186687965804771776232182277837536475873240324256244266659184096237448065712503583132826408932216798321965547036963904326738135509342212579985611292988655487405500632951341029501718796915338616696627751943865866292493140668011195006823660296792857744146079421717406016490421714427131648207745407071488730215506747789743341899777224039963070371213401099041326220811910158529051796514899057136928562397951840502221321323085982823499953730931141082189106797861222089651232191429443805399002585894648291132387120740234721938756854188867189459029132720292336797875892431360011517399565374731139106186558947495027967928583074759393369830711606933358393119655726137131940184652720846188148242505904944848110245099065085739712347683329073762374213121077828827449118628551308038602891148924761380989597384373937159698163930351403818079385367354324739499145859412691653770214343809122018546582199462575243323151701737437608400083056057158600290995820138290519639755272703772820332434207831756561199146726933156248942008060383201437740636111004318441056071453937839468951718900237990026856224774138517361061850750869458940917961810614237377051247626543856634482111567139668358549174569167699575393416489838642824905398365498913013171954196307613476479667955461617456369513533645703265203994414555896436809543698429701597143707199872354991761402496247202551978279102951798591433862974878513174046542999141932775469308269527017179572392749467280069570914051484748982778424019630386321460942030449590878151478260138334162443392642702174852866954688579040716701467409645264431236345055105904247399179022148716238222172626667957695457768815166866751384986970181946187569689962236849611760910831551787239398559745495713295436974321312634484789197775681324180944524051041399245781025889674255313244892062872329237844290931611899300567846569312601237113694884997974252166063945120511026445902413825668801027063409608963415289203692940309229456955602072345020372908520304918976107398711025157809348673351514100129352861224216556243938403219325981997898839879307062742834582755440123120775966297151327716315269217476018743285984754109750562355756056200759613233360244328239263374513992571750082020214341479337372564716023250095100485381832470666969956348591892647750413005665769351314785432965117740212222281208579453842213937311505823971491470526782397721341729895706351061812807704718404102853736789498016103374473755770858179426780789332415349336471926108866377853583681116646436256195633795550316761858052138091422999604991886357817338888798130376649344643579046981912550084784812031475859466627729257927659693976645650257002305188696760745640218954354012868492389504582558586022246814131063301783866649664120959335874106579883700200122444556806680679341341291178823919252573544823797029675187093133092212638474398710932297351295302922652479480992923086925979036290764816456576783597497757974923257831147662630431067858430778018489235864836893661642600256844400230863476710580480872447822935144074497412598980923195968821272045179864912929549674385288302310821100911002994365589077589516014823651211145676296153804596678939608037064337678717289045724359644537789391925155157516334605503678097185747687538780868741156712582730234996206915748602929337190840358373062727481065190355522659252284913076582274458220501241016616640845978490304708085871268233619928144771746145315628139253679795770352174425098577208166047580719529424426764253897280406348468173725360953970039813043960671663502842022641984222457216033181167670064230246138746811864207382919425873855011550072365702304654666326766524127275571277182333963339646247016113848867211903778959645013558923972138811610400406866308051437457596602372377819724283690163968184132165234727377471122123911149746493970291279860062457793579923313038101970198437659284400156885912552780120837490330107809034105589075335551711151622499418209501878748441961153605154611707951635553185944308430649226245742175594334767180083089751555315801738297553718110596083682767654248451388085583698566787939522317371979224670420197639319902105312177080004779242745391648713180875419007326268114113879454968227758777435767951151837681904684185428324799440771154175206482756615455939584966873203832994916326806639646414162243666396138306591037991818350511174747973608757716046994042272052093696087143510499760177040397168212687602532958998106610911301816993131911889704083287699634819644252066453814416614138062312735683652195761851587593075481195252926983312927550589720986058159140282204856127781962381513844214666671270359553367109802314180165478856737089371232538478310149539934932464942615759737856050578622293739935752703953378364975870590736023495912460040878399664435950790552912574609369707455535338919827591265656017821031996872105627981998150181976096274478508956794020277213147912331912011300145185857686295089372831412934469408889242864570324455118118669164244316592115040406589993292935675223653230391966462778148639836471462335748809549332775483295051105399170417148789717561205909385738181379995150394844915383084692875137025822852398458413275936860495921224644060632684540534449182670990651493771630520179257093827422801064945430457260090074704370552644621263417674864066281648672912534968612141808493486404246587696294235595524058242731269185800428503603538146112745113814006692692591637828318081175621943192573273504793291494554363111612196554114937452314696179883654077781960278692050395843561818389945871851919091597401114704739078743714753236777311447159792148882595122808619002744108604951996916039665989798415545279880413052843701062907992003249704547001604399173161159340249280261031404729842166782592839635188487668105778499476551273408075151071355279990055278008379704607644306914173188398366931089793161679757684339916366477075259631843840667392838980589613996828477285141953591474960218718361921419559518264947314114184203228591191604437270564074376862192010945922944751594413730689366154606808345489657970726203258482073112256869051462041179977525729772561702453491936292656800105366885837328069055652983110611324111382932249557893656817611119179913785849189840340474603496818579389105776317628225668763512822702554393147059816383033609031059497665443202455054106366656644486351967118662920375978846710561119846439516305980064371631547708153175637102361972295712239544634499797601214385494400001908925494745278252238165068877760591842974515393981072479468228375447797971900112731749266170916167646162847628891603577652382185722798749814873323333080963293120639015578636410871464109165550227122417795762914742386765202116810276095612255245737539140202856654929209945264423752989564204824035590559247670575850385715484530148991001774054208148173527683684258219188605623808869087006336528489808419410311189380577107484865522875568181836552515835034192111892966283144380313903378494411910618737506675128724711613948422855833779572209414029720968667367784496608985091179590178027436039066616647475226893132040579455770744608256800235790833325364823482968095548729151468196111268200135870614700453049773031320847915229900114570928857288975703797727290478590124218802838428265330671285688293032078536653067482905949255293622093361232638397690676507133729320483677771651178632520671708788888651574663126259196727451856879256856621026447539357570136420730889649787436696530741492498745678493082794022812736754375962938963777638967257969961434228838672661443858310996347534378658632849139956789391136604520167784825266194041603525819450882408005714244226172067761822617756820159110791615733121003147997674554695356144762975949136892397938129507268861601971002498176373424196805642007513499557527596654494139548520578208252336089392164647172649166453565187435330309914052919096935415054083425928018466337958231085677805753840553842123029915338172286634304320846540724622996692362115960853846951888389755132600069740591177661054001738911518070393152053520670169300907965327946197229829070911689851052035293398123584511218453265270169828561705618226677417980049286104205063739667445981029709082160280442458701777011715265269029079533553097516817597177454286728967723693217441177477573643361286416006123891834317985735576042666453366066128620554976399818004201206295518788961443836437801366236070872399694232819640338204896585047943198840170635755302646298366756014482070364759475368262606849300216586673322385837103492954115434955163505534759300561859144828515309011152709814152174671199039167747707572232106854089307825771574677233567114216887460563179255310057492142469797029011657932314016287181034527678234906352708914252533496219612408888052960233514916700758368587962533066834678002007428160363977844376488547111638122646899485991424916210045507785540833347965079348275725835935633687017925925727400092221095319936073194321239423178625146428425161617726574698952610629072117450082768469913882053264709533645138666975544229953900328295787544062569891716508118433246141727212088148667755549499957095828666637886376639457600356423809105309977324696740637129160168485434233690044473510888006455529892248274917543567066305109610340055153783513626342888663633198309842375117008991485513695847879172859445222603916275374745010824576067395452973241220433513097599257343960779460011133088549506077023902145860509276876119291771590350196940668556552759687771517603374552230505346406567454806515074892472049271857434428234066166441070319153636256272391993495479247974365016663776344526739165960942368668445407785526770096235131398823640771374940729794723140294233342722994207971003657254780751532687383237357006006334537604478354904686292509048277514941889055866422442891881778760344430655343328710081944778410533156295291548750888968683834140366531786038127610544168211089445499124772758968223531766067328723669066497098771936781669954424919242450435259102147398574049237532791368703130025683813062010417227888060212649220087163359436167234127477347297792971815456286041654693230593986898303994292294118892704694995506523491780876490837448283532506880513204741782468282455367466541796454199279831513060874317268153489395959707988521360798804975575875324733956916379225401972024298474007726902544614750538538221036424612959218882521535796042805994003398192844505232604855320530807574794156154776182967640986296439719107089003347756273035271187666424128743599992298814843887764584955168575984655530809751279239759117764225836604113860275548030713421248017123213064869715333135344021260975739810948487817554053980728750920641680303208359032339332164260705905790831738715605024112666685982105832363026031364519100318805303026010148079534852215935821915091210634301935984075008546705937457149359753059198767531812340286967918579809988090025218125439969736371431197761265529367436887953054378387741886394111405153897125315228968852328814479462947949187593577441871181159577503543893944601475726833111735033604641225108954908252396576993769536912987076409314578718853903237496090121919733102542505434268222932635616163003422050511905069044253631731564970074544886496723773910976263104933103954917174195532546352840418828878636505276322723470985865403304299957452526085589043337006122706467112124849785512980993290341533797923785466426829055678045500557595538504875917079351318454231631857291621986874378968152210640542000375131222295802490676686139645982205449177314817032731683676322248484534065223797220255469772370244444096507564792709973814630871137382039310849279372732935124288978330110895255400910687710579141631801850530770574693514509746808263580473188646248841074100349647161918061794681906823839977299291785812265985760475715548775816937413443656469536271866670497877962910626633389229962839686831206439213255829225462564646518161069603249559960880932852344497541892841146610810316826472084128175463836981965019429945699959254745414181210447391253841719578757842699830153593976265985108488666029775895132082405126278935505926816618627783747292142231408900738354732164106621741368405020742163406228261348982486129488894984469386003126017105173333823923931571990969606202625860537213759375166410494623852804792958489355309611394006309933038232018021863275868956645752157157530906608490119011820862697838068725487908064899010085294193801097665931702643640330416081752392163367536474908332956661945602101846644709506232835359101714535932439301949753645587622648837133803668091353508798075040265229245495236997820400838025856850183964356299932768616896213349394841890654327558295959839831438065399845012055247223662823702537906234770082520001624003737605281563118786629977853603968301705134597354688989492961151233838808561968818120811026933291800228770830034282102660955283537293803749653685067871064909436798087978120673289232790743171968105673698191622707333265601445614362127929909850408815463045351756818558578644818516396852808487824280559502078979119234546660345554497676328111719575850108986153469363179956015034546187723389238967058594086850848973206479404385251683365193329302776609098382036445410814471629365507070020612830842667667442617243943584735644115041635446411588103094745717612235665737470456319716556280157493993583819862337784449493487257118684768431098740239520458665824224575667807905151732144475421233804945564653513097917716620057807074156768045368105659655180782814912193376897026728501016819155556551609927453566420607683808883464856322469254864792165072770049894018475269034266445316466589300905032658220086797979937790173031110724621135698150179396101136947274093634104434226554504665049419890236798201418958868435167824699885373803899623033763379476965503517858207694838590855268885803715055281946487340195910726608542624920183587810081694516305601886581646979084610970791201596166211539781982795657795511598910718065566171135189837967778020988347951165391438151823903364793949545026043312361850954964643034512063788024613997294464763060912489454188667958252294237910591450474853860733725693016795153380195078904334657231755635447945247301551471439298372642071729010981461917253671787967940984569068020476565963489896846312202669218429935973946992369969424986598686076639206997247512594762948734361819874307227730981479995632589637114477296240772434750486371752363324719240824281875944130342730165306678457299378742828992056404073384463727298561525715208504314907386369086800694667926658594873702468120957251436424575443981661057599328723352222536921987386423218000060024594075027992776659131231763046914423721570075326268269491438821389345532752651538019177745709354293504239716198522212555277252655625278034946306048292928693631353156601575113282853406087749590082807957390246687179099954982871958473251222375914425522771910012418604390392872579883655780470912771426250028659770798953926178742845105057231398181766163184965483905993584447015742747253556365745196988615668287676878182871090435804583721293958100106379683469570408908058252739242317510970413172699957306038717842674480656236323598278090974644242635796976709031391956318896302013717907697160614432923274652163766267415215739809874080063339709238902134740437726655769948376791140213780527782846402168006263854945220045955983925392141921760808619580553711174438792279928636802323295627990535729570245316856785140600137410140272940694582559478391691203331314798768460668851046483060092110414364929893822747397437024162746058042852035106362750408781627638862923530904515733350484726564498318791021655650213324979144419291475516589750569678208707979585641086934558209768304548635549507541533252512408570121102261112669600922953828316324829258171833972802888096441578259929827734546814253328542960310709111805362681236271122687318122302279249120972376559811589482977196351521452609557473574629179643052381280742715814989337615336454663968218686857324299549699511162410258738602018893302990295750720936362610315677587142754576113445631653238978470775826237470103781318292402592266485959733114197098078477995536632486852067287186004479105621221308875661883491259200390875625995932393240308180428060097100004497272269526127587909053965150336070721925116626126343066815945849381772284211901836945921404815232091989816002708860486705935692019045545019494434082591768818132552436805790836550333662731877057804173812989408069339668216800862403717882773398355720465382552948162192070732595317734113390491414208138373006075332366347933818344255853344277182856639756797692920264270147320498247830567435651806578607295855559733830037837911423632772014047252680116374922959283573979489248291640839563533510793704642709447406438941880480317634126120076142802148157996210259808078749468039894491864669574538340686696182550311733747086100461923399096866119582821828305083123026245538440762044385661103549275804351706146051303567081081958846105726004250260256846852102223406642230242292798023483144284610843554612409097546707733253975424647325431398641345756260940486515538199825760708813025998768029048599693779592868394429508475711728843106032869161762983974634734350791483229656033844082167726617434150932392055871630636256722351374186986980662074441635549781843180321404727362976080157575618187652476834066947877423753116982685425461841515140753786881074877977693590516962759245325377425997749971204115651203053646345855705077368614365574630676171653109360566701355075302721950923708985843593152417246544777851339002867923233678752945717835603552721177652164556130301665341224140379463240407334151084968329908277550509864148586138376567394258701650387495635462177442351479396958858570732473962468656627400200556786852180138065673757659546301225549147829590939810509880921170254632164574537160381628329660396163335517649409439065655458338253120329824801305038000916249007293689804019176787543405511058385781531953628093641118560256174905606148548209237534717852600598845307092694701670909706210709530782579300553647089672063272831218329084749573377744990590266722605052806957991252434532164798617469927754087551258373711832011782852117494311403605082150545919619370598618055612246958461742539397145224710705271969840838785167174281606345847269389163735794456734069348614032919504296104670800180261649642702175861183649568395807351541145978270165298976064858886463820374151538857259041498373205088315140767607685694993773759921477777218652067183597920375613080914824447992821833171619957158438970946573743975968250008641205231014675036696191110735709281595369739428858414652532472314053823862243692779331442302672084396754128203945558907054671865869749402275103753860818213066196783744690403079636193361391453156854625426334737238599724747524290369779670643689460998225030930587578832626963289348412955345166316497199824036770685832100280764946646312575249267902469314048127740013253262193320732401609337729600833185590985405043889742779320963881847561526435917399085922712871301652862631380652969682094454326360682088467322608933401022165963555815305164333409837958553670309603912709552895319964762676598385128409398855888464815005049610092272734610216734100644358803240401211364721143974912248273393923236652689566540718074134305422811514674369466930613907683385252214474124257705492605784571099794381847478811746846058296488323892340697844325619542937054348477036257852424794459381049242551316982567612406955587591437046258691201085855373580817217187425595985206380912711183643271649783429654458874213487214819706585628908692451686810142397157788661053604800394488623348408070848368173364197959296719073162576082891960451831118746969192961021650283030949232470702448921766399818392917129014087786881275194404560004153869666268823111302771593118200200319168000682233121791826070442465857142050505786978080103218106473691607567851188908319347898871551420119625057175525458637652601613806176234772159780595025586222827248656682875297954183467194274047218293790624257772517983151826252526201501717987870586173023012807445789093033456382919265229855534811120569990433888907763310840741231239277037634976851210459666763452852600809045040251250376779727596167196992252320265644304342394250654047965537908861191114310262545237144981803756612727683335578171825256589641607103594176775828745862186938573607669504385319550439540873381554074671899584502235916842938996704515418720632592295174185205001385347836722818545170572475223428799095482970807326549959793119580396314473544895681754999512747881168227206339045678573303740591227366270394499464723803592672829021452412017778029729635577553542804232341206314348495157995033573150163546075067660257546820161551763088942736956429471747890589320612136468011878276264445128477060764193734771408072246647000836431763708695234543022657863503558015980450371478812608682657508037823584212951528327507815440236587861945574164195485536126345418332688764610325171704323528209252033337737272313824759383385196353684068442749286374985491364846082474693290131781550034057820405707931786424146750767856362647258579751019324160127377761223481656275767920647236288395611770883476316064434053940702995091918198739112586305658343760477298913670508563289194171191743018053588594335404436188925510582326866124563186341595826369412776831554830314719084850916550195712769693814292243341256448530179974807766960382005393511429992995029460388510245065490738166421266580490660045359803240824975066912461817358520055763060118831667594930192526776866112201310725445416898603874018261903769106201104892080979734726357010801956092119150729394826215463718329125137205002876552792823599326284978763063249987870548690734703819749388386962663824544919543108538141667783454543191858393907231319117644535175459926804046895688620621676810204024327954114251269937893122485599797527214806812095129976692771904481684286569506726783110590109491517573688756720285903489769242619956372642162275927218454640613976528295094896032334570960940538738191454863891224199797765573026953026653479172285230276477816843335732881302891390563445463085660268658502780413274208092081962007530363028462339348698624906373977530163636826300906533604341699524191963477770468959940898662449774163496021636593373110520840060327397375613795322007048089967088285602520606709607706150213974320710509878552544286163106699774888955294458007902818475872857800221388891975169242042987383967262452056985378363644694651140006829338473605865077304587774171211911507532764554665679478110168179599538494635500492955586845665041052380706992124966647147526399873812330366830750933435554251594451407940892134687042801819055772374488785769802672354061884331530008989179508004641841201527250620245170108807885679920602620161190247981591785884038896489270406069153646668287355705191341739728907030506188168445442274941856026825266445404152896321634115472025829316567097580420302856804965213234524614978932219588205451165143462260946950998929974322059785671477568050299811296131869656747373038189692959098860712739139211145584392085917458562154255547019735454895657983196660412641602629593859743136279638871107352526250146369657966605868675673052869027621864793580671172780027061323682501503585192353478088853903287603303935029211213317557846360520360957078248570926650348589425453119591349894288469063616962535819369697578062733104826106582045300243623765505828158507331228817728830312187951508361013971599867387533700873759873183262198994088432371484827480593571794367870922381541291068469390063191253362861452258124211269330337053699538125911705498521751034557845281515581618441714545699217089687174368528213528131871300572786482037261332826367679883792778363877318620856330577937053866442555531071855450754467762201475283719327754082916451876552611969841337938035314403188895214638460300423326367468911880270822159885132861214252245329561170705429869391220714740302595581746257545773263752468689935096302581497887866098058067470381771222084535807818663647428349186699228401527329590742265350167648704357367035324219719484535907678232867123225681441546318038676351949131421832704966379843894845773544810871194140808600247436819152051983828381243051282714218506399548651153601534326356652644236409472941714185940568330013722497012240379237194393200700343758074288329853846267288167529735830039652264984473724653109557401068758588006280292731778340330932203302674290143238032326030400004307413669500184482325700985848042751749375564376590310914833550138916178468046794998796553880363874099472796943347397731386188143909095461824761549571055785889711094264525506174182296862166812632567207811531120461936710440743705473288856828544533859583129498546741980941054279756137883729835648380622893604690372403748815571882055130187905701466061284315405362540254688535717495703071045491608392513035997154460457410169633441937839064531344521530133660438531655580731149111128580073527149540516999819071498498172965456116775148102625705532119456689586965284180481404458956555323311615078337696092207625366464707862956643366191391805238969984920873622774762405053310216420878885365554934340575830406121008542636867009833916127929483157559934230287572503410296320746451714443179039426416796644106356525671549574611168101769296269694799990284200396926828671903954078023487393507910785963998974043139653494030366434673156707071955507271055560422973802096443550278695759373979237472697328102968660654882743077589667789954957437272635964846269439641716499441947430609390111684027946300648559354503663316929831119767344190382263731811410567247708615335381320101693225273859938926775321604421945869358044769623202629353739003550863723381321447151636825970820090526600387515257296030526744368955679735582066759225028736559859649330427245464913014998841343311072012620428009193480254035576851736919154124590454167334091237940684291718693794413631142187922603870429938488021099192569038648505544133314605895803740312176464522466104610672892561149723660226354546946835164847350563233797305449902980384822319885792876749687809072873615566933205029415240735402807791442545228603202520249519728259771957549550521645933901094672526044279822801315375142574182809975021215908947245234625349329050609758879498719419241800152117801355251374355230535514975732478704572258659302524789112987030468280072209105429992614384756791586394890649404420312372516779547644074692500977086083436278488921480169543033652423168702815372097832948280409573290429763931713519998358218062222235867900842645729748169040256971825617907737588313645055485330741570077835403939128896661094800853381820635673909553377709452834523670499939097258939386672462010895428842207543023919856940668394002238697576062364538236950578736351356643587739701403934032659182448356699146517087347207920238659772791760474270428385064577307621647319068277090004918595099058148461103943591047241871026574682255876188106080755431426674629075592463938917036583551760044437986228412058205356232948801192805985284154238707811072848433802921084256817480341548139002080728343974517772803800164703881419714858616167596953454565909119286572109690364032262012404825411069026557908289684546782750451613908729346214778045956852713360084440463957083599100023225082730786612202855693131164054496305472146604253080591843666480160637194273199200933842975796584714625547927528944041073499677907225703164485050037340160429641218547437079005596471407666065506501047749947240166789684568927319882967185398359589503188635858573851008091119225047974205897699611455337570738712806533421343245040465330510073124204432155730734249538140972337505890678589182519612829624682495441048123962488117679493273714031587911814696495975688284786841157978616363793599161552502324675688000340790042161731654155100839624335342886899283866247611265681733079560546495550777103851572159676739688456589597193331975212469744588409888237593549998687421449559858979028000421386891477993164941305514682989673280777551993081650173581690477625673198589009340750061362924694324338474936689684043098301622547445581340975960999747954559994742028213906638925576152610517933019928994565403305432570948216193859270518567719910390063717517493823451967421758111288393953047930033120348263423860737653322251436526140893044322997624008819203854239709173298173275308090394277934424477232533787705160861083945129502088251159421911350194124190465124546463370883662593758104229827529585536030212043512394441271493184683155690006004309286058027982522139762762726099936600248828566169635891225936184592074729552808615486243472013387633734020594294453046349251346127958036521874373963845908176280964256230480900113576342454507565458051826510607365712938084134774599747975242477707969059957545303297224345010749467030071114687588101384888292662166536108798416150901890543419453563121328489758533579078384494473062270462137776150620109230403905405731846597978837347320983453549465112285315791104819223545924498114310045106839661386283769139326269392494941765627961556108967907451732688604581341454616265415526945417898003871434323276639822911405329327392565848554277426835436538635120089574923692102284949274926194312491268453496630001372412022784279945875719202205207155529098046983335579246602273170306294386123040467670279963510774554294247885924065524030279698840024213713629312744271681984821149110442234220989973977738950607224941293035374230418941690936200914625030600096145737036733109362619616171774084126542193442478516717666729427800897462238167280434702626311295913670771347221842493061758989031123201269229149618616887755458975171889434885066455353643251756002583570032522700122067134181086142337082199047559807786517304464398161596374993114503838243603226460195386530019104644977185242348553560265369233731901010116475477167211417523526541239133583936003476230763318416633431985882555016975452020881242897727923869091129757403483995142566234972500385511888800878397660596368078694875947033493401778888091422147521149313581049031725706792756249198008682321968488604279264217826736019609581082892286339667024907221456522029173907920164935220744876711966673581109084237742970898682059060911512992828265181581757334814281174579884231521621852658177878914077712280580224597265132312467056475200221475213870059242564724206593501871047840336622970540887590318435406201117474712877816658894309160333738200497895000555094815668783574722121761696988972778235658601747224487696224674328867590845236551154397809931088920692578075976283839146547459599199504773187684619126910662528260825690970144261610555025819371023694281857435427942061391562884056137393971822141975168447985311787428180154408343214142272797627135675072360326855327392327762015401713689342378287288083700716274180828334878131731335026545197129654716697059664630006222806901146130594942436637737130094244545371802086948691397716834091031947786434327966000387244955722267835439663409930260043203265934899109870076762356624078537125912077274937087329695968069640445120666212655219847191892502033603409460890698844966992012227531116857796069440761104157653617691527653124310593434878195562070656310061115850665258634030371711746239000841468615328908833044361175757450412759575262580672703803907249830898353870422802984251643806816966987463217301652811654748373419832127414396603314031921516314559962066989749313618023991863522467419448002952327305998207853936548791730018011296522771916807863241563963557616155337683906098237543298582707655073466983988270693104987673221825052233351287822908294279729508897164556460441208689356061654436386858037240033674115858273670871422861837498853938670593467175927188425527314791004976972928174311006672660477771271950227564505697841917943247554543911922060740821659357923482924581207573413511035816028304800442638683106419494624675901064862979970060770992973103905322764666966157514820308116008127755306205937229144566107596802101903971720829687485722414640471837742509464566701902794732199928454172644741386413790187143013022809340410166370552443575971936203388779289596500593392234845110420756535788729648490709137418414379632153178914189336884796318000847035510311431879332248436734244370798686609014415825709690125078822318024738449664888985638736871860217050302362684610515551784501709261493233379073775265637480683599917552699647133131404290210130192228103852961614655412927881473099117135515384626847424183383563103783913108108467104819608099250507066575547733018777707172595810180298553497602525648510609773208969245034888312506597977685989035216760064636011536941241564862892825575247628658084691894306960085858978550558595038674789731474645381620825484270918925688433527935363653311701664247728509614272856572234446171629422965480889897544665233859556654224873200542051458103640028339951622381353368787488031629915091521158777569098598105313861662254091267437782697495909597041462804622620057158787986490643052526366709444974235548982596755589254256293348961143106895967342406618228963038460066430801776850057791158610398858304279839610086151847256559687910445710792263049235461895326767333887817298120131563961494432345350917346098442001557943875704624160726325481259408059119041088704745875267306754157036998113010663253188297288483467330215018406404279670675602682639894207543731720695337121272127570593972922876742990198812429917868355526463108173314650881161253715164236489968638005646416975118748792742164317765441755588997215084997335226406403041701213891264090555507301385769135502623216010154593021068073810036474081597183667489135568094961855170587752778914729177610009870301697072553207137910061808971675507190784478934036259680619404797553420003679097606280291917404452703394871394813553199698710925276320481993486240592921004341200064687791442682269465561450479514431378940171733916706235844655903057079307720592197052699943007298316467415870180206418537034329444569803251516496739475106249790125958273132694446125582772516383662604790952092929515547071526362222931730495292034306244560369430065401910305938546449864276560024314338787159530220231285504751293604701024822467562330031847533622141770408186084748293582492121607074343429007273445008676186595047914153044000152970729156912487635182786158932340933654258677031724509847786897391029633403174187449212860435689138553117902617367314363541941429888821846517938857703475218284305189841991471537433902776236733359002677156804210036124106045422239993696473101471239977998371015057997960533116674476098246206325503244988461581539121740134995789641226975199299234690734706255130118420480433074595854163756362911400801904090826245228749283587111539112558702692067145629805520954359788242292796700712164207034303079219704861590801053030548628159568761185870197926790996363998719833158717280067802830963303867210280307363772070555997934876986418945521989073400774411179372823214367329651363853779021629800445303316225763130926384230978513308963826471042153889288842930427021698878940132200820064867773031562396467688794482972646476975987501655135064095827069182120011470853169477156502243938679055343087509739053019423556900852471359375726838880390240619019108234815893303716887479868268524734022313226811888817496600927274880566622884029218954000451481323384957113015790799248629705698516949444648859023376477714310935075726781195281656369760084648817046253627231100885799763025223059568185493428950641301408785128994069884839559675798470348878382942255339895758862141338580662797829549788978294255410907967458724281672112942487650898138702638582749279711800230607774843269175430679024670660927339770390509918092357950247373216846437249070761559837822976165070911439094415312139487591978960106321848024984910663284213259354495654358961128254902039635459400644380509571989159069356835224882266502216024079305157606188091403001727322358598047512378999725888398347221334423903287755977931555147273905015950784404499578341127029470672499184281173589691803002485695828738201271919813390213615210345895927855648610961069406376618020778980200244140674006471997278196219410007863035554635564845949227606446254432901131188116991044874716100846282152513867218646548238319371018888211064954589336297823651664788227448996397867368572397179213337328650378518526594708242851929889319890501035887540151631534428528362293602796503108845925805697043276987441945391399700045986399627852704594516106459737229157115655227367099504253044838802751975466411208162129996929225072026076712264411534421541396065328003505129587924234521707839174077326524913607119169524193377053803180580865161130212404833437670412686782243602558762060637723939037923196010636034805335300603736076774258519340576991251960706236275755079744978922669530603684463253039121999739437109147670171374764867660904054337507844355222613038623763160905538643097861501445104956834001741777920291523047708450969585159211235162946126752817179451819708051160483012322948862674488247825244629177461247979910625620553776281540353437016337421834030600538543246805678590991082560261354099175086675382895856499141724646284188549077369742961322127991409490097607618082523124375857887962694313875414695172215483044361601275685816055411501248007882746429222396008970234694732317577843583599887452003637878565435042616686714654348562079609570035571734475326208947603383927995805510134390605760850430158030589964685443468275821858849499477390796074589946164174479689802598966690035312339749026849960567253249728255362689971940192919509248964930573026504050250254787242254314627929265792569293231164839186682356742124132093095616338119573946444010818077921145737843305025334778373639730378535591883162937396039465965465252997775070676327050769377285059437356995287935454394431220638984030173937061528844893810818537673264099548449993232641048200240815581074183564353616255971683711188734721765102975215706791818572770426123557186363408688427436390254030038065784429044765652185396022920179520111074642589539228093419312585566091282160233845821189056745477690971933607274413851848347656749060985341605206828319056162864882812790028379542174327638200210182504793923212156258546815268701132649551690165162396915717565220459875676511467058702604519739689433475745182548002157406896230883353485326306409839163147656449262029886982262538221218799125865658923622746102357692062577714656159059728908670108370504729850593837957730991358046241610943527593861396353968546215210068142257263670654012449300967647781653516489983631912372825714246754749233152758732386392262214545010198471877122599206991036532181835449208876107796082577346436557989151980151332018481470911440889195877516621059342169757862333104784525056314368780579610428206038407613519077414896131969808623865509986536254634482605946392364173902006814043115914320941090621833459645514923456576001409686464864539449498924902330559617212962799330900844955911823107155067699567262574349511837455566790199500632223500225636395365060009514004153665292451266375166167227627379915707753012765076538136436889605263677406288574864631012915200359978177404068412085781398073207839368150500096216793571163840214345265825310150472363025631452469174872653016751223294656512003807894140472589117330596308713869549831409439293742813462453606028992452054420197205487626451727883969232750613616676969511630273796370537739556769163697615076369697099935207008368514161443792936533304925497741221595039336924142842135599693004330506659643131211695811043477850794667348621360078294489686844505150394164092543754955424722748147166779065055685161235061796965953536954267611068345325459574118477333744695581475155182363819288311166807076253995690624121024426904353085241647125343403246650620129505533037138563555223349941667258627411454130649458994221250839247019710938805770139947917592436322556031066431353884572625298005404303708288064837407571278660433372175042656016166838366222842879033577794285385647254107585546730061107160355188767648028198183974952646146405830096897978872417467097165807862524798742911559165387668348795367352164344162360710152377799782125541130726579261351987577703947374707201517703484306213071475303913783610166231694292221237918983048996325319600490422680721305670496360717602693415059465382576516747351050405659656103001588252046185685029437631848356581389597514581462455903736779614683653554894063286250993595185068962001367109864745888835471281116219923025900478209301767793102262462808754284952909599794689787221209925074402341723958941816628229732463046373506077904988207590580121471198694187254787655273720133655649179264019297700312576431835006377954918051007841987324892971612070780883277446877148779934809039709232196294018372771055781615524610289426746212017839385074436970977883990967159259506826602051010733512236577362024595671928191673064537400017174103698027088733390289048059028418947477789176442184180210591809385751457606136664209339698652931213768921619838806785141349434964170772326232054207678742834363926617975640223715929923936821601287095246067912294876382850097516654189121359435670610684503777734966344792788582130817623969115131331348734097631948360389921734424436426447368828280103261823923156458445659595557247059002593341960626418070772773334054762004397527915788133620586740299236724370125914048045980568368603501634781026895798209972735510669887635187916140970355669932801337985382202706181395953138013803212373719679187553292052693835471745888931584227839595767712588480030214690543350074127291517658564068224486453773360675062048647236642593514151641951871210258848593680525837266219193270057020608429763977640043837371608782791186654492182494318328993492933488690710033767480976630838976064331839249636933733452556414612685076281061724179010782955863610268076448374916123388162391057216067369233325948650722950968809489301317285735236248286087383583197285436617906464332494882330328859307403759659244946532284769354801181480489446247132885951237758881076744394613422552121213146414695865074101557414711026163722592244891605165344286376703458269425077480919979259713277993241744855082790472808211055622405587715239744847454696548068824902561758581804075423300110997261692605418640941838046426386251418105725521388983474295351188249793386897581153546304182182370048249288460911867315373984396917886093966969073325746308609411696949323256613571618859045991986422466183669089280343975120427908779028934672906681861426370782098679615289382216169106036833105238639518739838584995095382419982320996449633599474355829501851758011430147592885896937986475357902741133321945329734456326811306217384386445481412237453323318863773266251302305869300878837617286790932325822245334358070070623972498167578285194228725185566740503530510987096559409426377603270261365895331606091588470131678910253794931238749140914405889231980695107183760270074800518604747555127756541802799854486393656350155364430876638579774347803829696928767754067839713348073395989816002014616316474594109809815064196784963140381960466956290853408343305830745373518315380404973090539387974662251490231749990627852176373555902272712792479117616891699373594320506773489286640955928543679694563717644857452681492728006116526253945988959842521916547981863637048196255632186231419460153792254274140035860933034036124081169901652946632895161717464108254594090910457227419871307135615915448169560640227113131443150884826525885153574054797334864911188939529537087677095573374486879018271408958878443278556731905585752739658228415906218608155222722897437763308561406536432178296101833714203034006481505382540022409670845152808076967457410567564643181709837633382081671659310503594428302143115957284886500253402860600608571473099196072608809216103490560496302164410634285806762929559963862821967126064998632402642060593763070569052199547179394930126013895032178453776798592918340062657093346985439076132906491378773044405360526670025977687070917853831737832271982701541448613994369051710933511899346565955116095954134151858031194393413111679799281467289482189143200204924567746908245099456694276191219330994526033049846268275981442904978533744098402502751373488707132557548988652147932552192363856929704498172851440015781177394646646919605777140186050347314487406081484519225008163181282339439066196134575669135233926599272578123811215001591184074875594123221177791090844400128947717648064163878333438543650354451067943557659807579339234259968514301541958777988528689660648958094465153219093271234486572044091438500943753837100597407333271011258247278009934238427301103965051079167054556497361700348401249599342973000739831395283017556359703237127339319686047319878568277541544349269851322135600148840288811352768111385338583632295057227819698557294438460419163296345677396654245286668023002939973931487144120332606168290798691567209560889761076118032340926917702882346512153336640545958404070023025853059738927645345668995095009861848482999233214864027272161900494383000749731038006225035951566795568742815076811726920981981978689599531445588770173230144399737237405177558609930516142201110854379568643820564836185536173309671871847903456547431748295146411583529693518007040000852771055619546137017513677601397058872863484199465815594992090738824254843710091286727975784635761707455615356538032439288686479530710045464685045775141780166117710259984565508968020438077378136624647899914992761536407819998816960853958526817330215049647654533089406140468496200162943935658758115190627194930969004107285330106872480124100214262568678036906023789849086633773995570707282559950534807609551091546252760559490284999401523259055746895604387554522298835967921367779243640140836346182353458734673553117149519888215729995158224324721293145357214630048020293824243145031189612441736261836467370269206570344577812301145150746926390674304348879334346734253817036790879471357813151953251780803910564399027501429234391858822142673939559950575221591450595630272504833867922467596730223543641363334291254896585219517276764123149207763420159714448478681630469083144131662055229167088652679676641709921444272286655101944598809754650212683751883091111588255721615499157806138002462706685126329146365859214145461751107101258701975323734658803788406845108256300611350264036468997785173387946331504784186349256205836876523327962771071200249998340875100682585702908957225094956085875946728177784154111118575596942870800556938500853832171506912352689685472412667826380211659617656780748424892500516712984127566009315593583817408848935394334164877499376130523390820399421693508696279006428512252752137837068780155172156592560613281876393408546085319211284517030293666675874657348500606017730916576117614209057263861154960224048805324097993532878402910499914513072381351934075013020492945456235719100015106695569210680168315993350849433358116552155225982348671356570481519931105500351746980235610946263273194399206670402730709612427657572346659563435223872544525614242822360827688502945438899447029523509742152415977907105673677778261746904296194020631441077075975080117844289054029488732697816415615694660092423764119699978952586629579185751096825612639598141889134512772872989117443247476230173365249661862132227347436698921015840236211280563666452055307423174743635990873894986077240074837233134651743455018331584028056161022653388893940534848364884430638343216449406833261690482710520518218031522101575299998848912187952227162809612231269887682854592368158295171742365458221026549949497773634141512060702090078227245530952400671457683084620321705098645729119253369365763762053523024698901255577471269888083757099935890336315706381826618097153667797421326551085181675980971294893070914111842317865949509214567650938300613391214398376340315166329780701590158699254536818428945545349900127331654358114008605388299173880586812488626467304986120141287910552865805424315879360921758756066644768581065129343680018292714731609737227583572986346745692911161232071479397937734632280892157277209156650694154806744249996285177788640231280155192934172323339818988776133519881224283478799689910393503353283267674595936537686508546842279747347747175518880416814875303041559792780879926136461280867322972450045946188185942203796387201985026904028300585293917256771614136384219656620293962233507984967387469882378626801080213845487819395985844968629137015620556229011671232170270312971685709818101630771006006074499341505181799549372035777353287301805722369652234074785258202492893562563304589342067717158579010409535496315667153285007962003573946763701539717565916248325371110611279759271536781694770542661182348357545261749299364446880953734636882055407807301813414904988177046164237436763022032268736608175867397558238247970764979092098673707519128322532528612526274268029230131560782078870168141924833485276924143448991773192955918991448889138594331854161634935481512695636085417516177075072989855493206794660622966953012425672708059847668335041646826421279563717823919470701172582702544757115957242638277369395250224807306108100975727287790110507354038284042757610231127968725096166328357717271298070411164072120400330710048586625191142025307744826608182469385991820141884376395671471089729365011683762994031314177950317392076883196179956568619357819324793223024503010143430793486628228981322568743502483502884024237477158242381171463947328809160795340481926509166554076682406753370162303836867485921302271099977063033741300564196972811061557499087661423710949347015718489091318323756118747408285570192149790244813148823319353750869153047143337017898920283680821339118740337066523693696040905986409676483527718056753914385208997671035343730329655271417769254982705714847286526166556201333997841053917057284005238054844621617358133730450223489259668264193510043768244220140722507484931153617140387225685954921640254904580871864835728721418255949939936048545890819312314575204971097302066609740783748276301577675204782324629424442153681103014533490768287651500901733401975355917973042661306357668527146210427022132386451580150027029703729897739553059408134761783335737296822910250590277561709554469976534201096548105735127991137499412867343810515627877727772755033330515971930780702454983168990043980188318114646664449956832416548328290159720203024142611593242663970059228210285199907879436587836035847674984748395324329332180839727702548509039210935067549803445937871856634412668760215904130482833437290900567838414283981640676689117521343600864310700588676516156343867810651288266653750862016827639479734455636985761102487311614120501152550946383775815113916761719826535712171551037733449841287875252431374743578037450062893944209844566918116924217236495543319490849193021672871808878512524298124277490074351043524180322021977748634146057899773710114949235825030865462478364015375433366724490966954144179029887775893106170443510200330926763263021192845017541700118483082800352171696283296290219201704379498046510487054894137098237406243487669408211681883927146412688148213398863729057802987861644218912284859664534805558802848376641961566345920264599777554530308611557758703050139768528064122412538580354918561735883817428085245290028467494765218870886018801725597816508939964080047242313376004389108207655555653504197572771057421174809676778057523779062119731415041198443752724122083910614513666870586264540253311164878189092630387957287072549267485306853393463844872836614581050650875993336999989742113920167858273631977438157829067486598836228895198673814301828914391282963442146829813757839134911267215812559625768337413074264592210535014286208528483333206794427346786764707366795104527103746187352501211742881921982136390436345415342468048483699156382861465577246005940950964878214441869951934857443992940947911971214176838847032336786908629810505106604436370016749350736422111901324731262660963334891356863437951265456438849732530085530186113469442568415470748740030282778292022563152897902861541377473900982878595141358917609481084999651160818414275393667017221039076282011063005790401972267464772253660372968977536956435254904570919201299334688293342354203962567026412067611950057270475605492866557303276517561000480034490417444491858497317935731182140742837866954195489858485072519417606013753648508507495694233132756760044543300460957351670839340349225839660246638697739187618742687421792800604286517365111453229862683222173909796314782387055907709199338414845840529674641445159306172063742733389719223916526816331201003230567500384376775560398562557906554436279805292396841882567390316277112801183715434308390456727894584573009728875609826216650706355157288327583386325139375418757544720836182283107685997890537914820160881418950270875390628768853184953903067308634014086699857151344864871215120412986743336325959080033931338236850888187224435427057016211274135512279467116231308283516087685966756123009533742805738860679435256305170719239550012245580802858646274962620568076219181984154322874565145988901490263649221751450980537526457755449522708391348572705260019572604246520338774159329174369180030991298718454119365037580878247093716211612925540091460191867438922243995388840731460683978065541421185717047845216288293757114107247657945805732635441919508702762596407320045829095290384620433898377431090789536995116039731945287506140595922430747928235869377227346826137408429964120048733305278233198250231629343641327437849765316216193508099086856981286318298681604049164896139135542442249061772905404596938916819762927496801678300623001352415906981345683004335861163996683905171854252380508189672052040824503114844519714936164113492555970000738657290916790051455693398955542582727465242482174412672746127995892399483216471460468252457879803591289646396312558775794211225165533628062369748451026815365919941742285123963003711962303449043795723568289032260037567161636601222321263299269044254355888021380995387752242422611736476558979895972192659754194189484222216481042206284118335844454937872628393258895906728658437579781552803861158036603235190785317015017845547906943769957144229954157287697698652405185475851113580569403213775606673255905994756556863740979145465671343323688531153787725769319236003109192710036788767329067472205040709819507456749732804748004976092666091213235197751987547745474363233452598517530219985879716872456737221150990443985806455294449665841265574749731565481815173800331930755932973168200420591787808754474941017214741624158721996204318226657704125204502761687642333602758398804108521892917407681596765368292090538823402149612375987913299351110063946520450056066586314161394736176619604924649363807652296424076530426192196827162278874099929310371446623179169658273141569610114282523673140393605886450361488508517975840089999447286637578014495543570831139297020921458815608868596772891841804317813362956765745318126236756071050333999647914814422412302663108978131219040358713966754240926311390391341277743960221611687567623407520458351425191375727451305290452458689742233928184867123785139061507253387753224257791387933237404584844892017091875123781721449033450693550677846542435666913692671476614025905059592861010320407406569425853547778692410499972633864893218826336354053111865103672076166712361996842485044488694758197757101000258014473820207869959722263913973767833007119821114378947891639055625351731168585819616739938451558170666113373276318281767046504428672001580986857230910534536624354937564548117001145307587599413398557677109463296005899513823791512397082166575892583976642447337905401252099308987802844632098621748657606336807413841944345259450415773287359813206643476028496312128746136522440575640167903330407381026308071755211576411841821696525888501186328595374699567713048591254883907785560557542560154933595978444368358055920667697451328583385298297302689861794719184245465843956314921158139209047957313283212378804057450529775477927414463934046001961799485146780236628633353240788255368215196349713146589827391829501416583746237140932373346952760880733899803254237946410001707315470958241715968754276641802487183207899045407317233600992184679486047374248522875901751689907074777599481683583946346327890789979073444021040132246451080393111505970753218484524477910112916368883761490457519713950952946879707196382333966183647689068486693241923347057937339509978891860363101342159908260362753246787085561076703036764355103672866409245615062320430505611437870074272481704897277905529714038586676826941135798291602694733147401190634326698240108206260363423827816462283968168269516212987602678852648083155694015873649015435069265044332626470518942126305831197156818776310719243849694680622859900700291743606573587580546676074516814221371251957370776025230036747192483075987768920987277578962791785290233386309612307144858213371293207939729255044553694449209014728802183482513968621594292803858423546164063310397155296338103800218380497641237399554569503089239492105748501446090447325869508107450118825172644903192606341922518887026754247771240353591422336977423111299585169983140994110316278694444230690411939791106764181560777629661032865292091308963782515832295742536492384678327241539285274022656248403157600597955622098986453689609560081177537886325406549273111665926431855897169827529240875711888042054005371065493334327056959709827329324500933585787478521529854747015861978498128438984078187538761169772520613636598661264768758453568181151421735413609410657572937197558796367935884383695456636669379297345948434135693905480749217868662433708319171881984820340681914767340195318900409677339293028120070385637375712482693969586003723659209794947149938914165704319084332831541190301764834566938669632343964218088109376690904814722521160389981400111739837485313560775993565857944791139301723629671600522080235072031750275595944094360501771103107079414774679951517339149652694495189113348758931765598492723367620229705925553390664962540418201661578256120748101465905849214527549826740791350307135679153923961336541006273936136729644521482390370234653442201458530274060048617324587414706283567197046294750157176600911522090745712538590861222797438144661715587954220037386075363087771970405397772043245872993989983608967953187303085530662364445229011928920179340443011758653107534887164051478298994898439516205016801213965226429671095380001119650928687824451519615194711064789225798756792545517725792357453797333265055894871635067529492257152168526109470958122434233222239145574436894458551670049612544556326756970050911110268326870823698776078439465247210144769482445515845840812145864571588824075136817919833316578613542711142684763515041583918864372659485464864871424114094032255156976021738519832386977718792965025288130323765211184257220245339934396600722374429701896626953409397160192888824929511807071629876574973063758055002338485629521553182508920133598995767734277850733955869323580598957150713631945435892931119288871641067639680579751975612501134392213332092506503499075695656125326101305597873529475904059301626762972815429081436358486671830195187357739299304735818398033127533172751977373749719518089880963246443153934930048379592060929387130865761303306006983349366669464332031920806850707838045998677716736789403857361099435215795658632207826212613940314155565323662127904714911467003113277567272345482104903887279968823759145846778184906338029587736379005960170708931298235349592187446905767741570124672064000688626260690370776123725776933439244505217769439297295958166256644565292950251733820272018838138355016402041431381410283572401035844051269545856705713036895556745715935213104773420549982975019730886102248735083902365303700839629551201498753710377316890520117688154031910006271421432325012983461632673460836904801638324686382342563396223348673551080958521469535650431839104541849322189255186895917675669971153536652671083316606906922286162877827804524174420322149730147021787812202282554587907287587234179390518562691905891506100156526734935660374838902949571409060537567800181801150771358059063253596980271127535000045519993948827797350408996464992166727089903162540521725494737829309428131707837379358495960477243883074920478162005356999609007275608219434880356292002094826018309661372163601772325746569191087888351326310617207160016918673937534344359111533768711869865905456244944446199499154152117855520006153342500477086775873856701559612072416774387410797520609799170651703378895761127406094600063468675338471926650156992782086969560408243773169138629022705704404818747419336719044217759906706491233014847967228309815800830533132221672769928640258689987772428140439782622190756313895809639665997171278071453677616428444525331852403698379856949503256544938334264694071843828864667566742736844512144077216071326296961596177689311312984551001338284635525577320652412994442028410638736474201508425886719481531051170483705335993250680475897495789859698647565684122988203288635042719723850539627264255225813752963646322373007202635394308868242546290911452783528661236918754915236426746800914919786262533362892441095722057927791236635108754526761285045951909383973106363465236344354258396808921414311089126432865085810208026317120995438497247974644440031411187620449419410456932628540136845623757409850819130646732446937023258496044332720790111050903537517357600519045012195546858953741181276441217563228176322468812465668775448459938752439596700497156679996989828306706835551833758961695610127794522131461395650243302634049265808005389259129187183123260991366188201948716858316419050175282754151035622260598884299784273847637700581648087404543930716906869850921503272154448500940452884436353946395196317662437007048981241573881678214352872191033715640346960443078003319149197733265300707126693015807694990214323450002681423486619847973203646280370614924705994627460738253254352861688000575616436840559724716550163769788758511602350562652012750249706768621578775136197766247466499852677250614428364674859578779236986459059665507842910018996418662063609429418761683946631913962343142691887121401691121492453897670187997115639214847822142958941572495153340538078801770192827387732250161984489519420082307600719195243427689460217989663847598817683882389646098472188085806041573424268095202430740073510409476735006495808679646177105895603008145879666796996474878923713483504256142524781550823505675656473608223011305190187892208791876330924545825690765881155699440498225111150720742909843747852959656277649709122208831363655956127861259731999026262853964606598073298452474391820786972267602107893103222182594998739996970703543709043789754729291748675323533452782645892489861643933239438332657267744633117256509467364968949914190116836074304982488222739898746258238561312206629654755493397035082273962120424551701197719998051114243707037281785795686672718403308716876562028557017663433542596523958300136301538360414389261274668004451479160678678679815264545033515666714765712598299861034892511967158819224159337988931116091794952142763998539380120477366240439453274889923397356688776423334725047504056752614938023594701887828024620854582740117627541635482956466151823811156164145902302055837838745150069641988047438920422383251745767657462776774467330388677913445811997360539683114998720918022342358332368827667986609939849950230261847611058143236036282904064659343058580019917479083983134285604110842917959042466557281282332707167961425928552040410429495047127783333153516351241482915840818605834173117513309393071049016001807253349074483686248504723258721126785424797808245453019397495694204916843112617388274278214838965053876063444307453703010920577695591351642933997746611775285998627057840127804789701010758234321335370244336803031931727882070220255116191795583568941755993797351778801388741536087974242542646088179008457017767475038180723126139338192595366161403530651030725317644214395017537569782260756860025611795736812305506100016861879714230708080873042030350392817710844374646796431835035103677743878335128501537379792163438864334797031842878451952980394653389736150144845838577897296934995632961374451369084419841435560718549328140527653638746872763282600404491004296902898143040148551825060348535285066752149002774803445198473959765963166073124004565773037598420009472195424068351617750913698022664614361148065093700464829856422519397602666452793715756624915386655115907748147547144972520834685340294373532616805499078873409924056633508528512170781647875554141441450461680152105512283772275616586984447626727380706727348744543135666326133427292589296463754831506755048023909572786615506127319165336319792091508606779532154903185704119323250458958619303635854294547340991705118168338299137584115146089820996020298370536378518909897065223757405088001473240910728654265118710727377057448691144520516311043593880292190858547061449495228787416804919442427233518406742309876416188498663963602188932945830435078120059790063618245609217473275904330249605665074126128944341410512289756930364043842730650925809447013537077699903905048217764301624436360085388145330847879558418500910983245655720450035199897003235957568849455926113445174238344446254400974922861057718458870160524573100005665139566415503042002102964634273167243657288877613018363863637824641582854792077064985113347644738520885456755076241948436150480399479969226429476953936061717822878368164480561522078880683159140823625225348333257487840097466705979952320628728970995112586543023702915441184921262388728947047417013684657446136176406211764179001038912459872715594910963446265332719786192651000919110549808668701762024152934446483330322662458525701603764200688594774560844235002043653280894016336949547874219287409154675149323240152114021319299945969140099492179314083379439608427661226040021913766025619378648195473405394143757483083370302069529888498853719939393600340170315553563634094421056724355086609152720401266101371396294947059608576133783994957228190461879816173604068861010741446230068629887657589931994427434950832471464631660341044651172002917977553210270619074934045269958301609547057915187956844867966622682728399260164234264491564901130380617088043733709941309223958997086548311132714652411621035160922637740526065415052032788089692600650250920413258424999721678376328399587948521440503134830910665087120484344687241346123854690153430921620750836872904442233103666748814156806785882453855723318493941285034639924069544190191619681882917216578422667739953505791723173922116591814595491737578139826317687503390514824453706455700930342555008269493494402637334692609150026129582958748174794808472532832013302787610879350699536113197534374110708948770315060133645076129012112694557106387955405109133629418823628456037811570448193548261765540674938773201745621447996387174322791087616493507685280271158375124552054714580321286298416284005101349099191560312416540779261274048144938977320042186295147680055445253876393381064285588176725516231856187964885967570168341977078438800005245879207014652112055595780058546107178656491981687098292217448131062114031229413631542416501634290469447324751459869332457934105034376203701906190598290319385960488220123214291618434620251263494269014418153310409483874263771222048316484821838946905056314826583242469520166291074228046264039176015728689877893843227767723885502974098581439231378829448592855827310880761105291981761133506213952357471257457171547124616402977724518273395929383925884086156637239090666685378374093294548272106111384280844076525086099117958759701777360565924741688008871085850981441800988498703239015358577137613256020419866755423944649691973760011135808022789779454354474738465039798257793903281223790188253383975042525498879788932883917719058470490857955196703557396880425016248470847894096880292592718688680326559095102580177169430887396345290385260631337048962640395207843859675680258010640751846775759448765322834515269105950084579301613139456878744443890883312607220407258032235580950234518229682163781432938237156390651704957670642644243404857914390343394773908349057560778634134353782878303149128802311401220524509749500281126588696278633598061864565827664806551292473990230206180382216287544955664931453667338460340475306788907542526125782747163613928657575805021192027727593560562787587548760746140479731267286481240638357204197644265154734378160248047695067660780860167608740925202834388900847829128042823175276117113376418994975562394160859133999402876249363287769051218766641552474107351321092107995010968130549215121737915204884085141754353402671373212439482292855210818008162225344287689719991365380066960867034473933331591041107053386175556429457012182838389799556718145186036078923919204830706950603907596398720597329547903427029304483009466813391144256617599422991197549083038290233338721526938447009380527860775653729950103465835407454442769717380055631366583213831267741290467252390755597536022587269826657911486707112739533462618436058038566816042402462979665989035574486823697155457637014851843927177752862284649824487192621444509745705591033901143837408878894850869488668597373507559491475616068944047383035041418616788960584328322764085416204834301057552331918890614587485014233308308769786525267425028294228981584877250337309193641417650682933114496876890402458505612036081542452712412115046830996584464470036172269272707886406025602639366031981540895390906241120578385057619468116885581110761922876223343460624409138902067946473607265683236500751833761771427010069623519589901244241352117899159584017037206053242188574786629066354071384722882077682926508047974763751175142129471923725844716330861537564921126777820278714004385657506573592863591110030972485883838158771111706299918053336133573422742764263472549009723058540667709553012899742427638800735197898263640815824101602948644262467443223974524443102334660264875928088822555198607889948955874792425262593709693729020676459668268650710248886730413948479250566313014185323582080946537901343324011204984355185288170868549954402219358319531877938525618115262264253449846937567082698854530051612675971130215474493354355436910978659106580135757505319282933262109812408325350871042966641315442706071692586772222041049179127717545576109614308383824921352608276904705127569766503879143447036007565742231677380980657156171956526472821025462706154777308125907996102438400245272706739029133176960297113919234894703427438930244731408611385651796870233980355296749907067496843471458551142842781889869467574851282383281493842299096427237517460308480835347550826907353660735229652073310007499331556056475025750498794971737441243537792245968953592398104932946014138126236955231223447428274660194216228854725894815832444329864527959570921183655282529649697551724138384834768403175176702943681826440405745850712545771016237336614458226457961658042218950092698597193507351033883496688609417153796043178192662283798552341890486862004091381880551353947621900234761514999402881219768835531902878628258894711660954834611345673057257847745003569524174336808766185160343636479883204109170589087599610566886318499372280886202691517442532738616785536609763768231628998854573003701581934716159295962347409870178216866089381845492581832548980588754590136825737719318940079962201022474347890088757067251763452116962827494169939199524615856770278405876126700610104498390875174423988156827538235551072716922474580266020710521919904574806235001363375720445123628872750788001249778207676269545983525238728485559886338289347604590368248390827160569921534094176255468002232057380639814599844653351288255985030571413248452415038133881025083169200384236947660891102731820744637021360452525223373060511106710655408422433789561740496778800952861488306308171545256392112451883585470455718204672990737166277027716959271795265699577506731888535566679612578204575759331587358131892538985755089240510570800407788838987601663337440246258119402191158636330554822119004957907025778919693199082600267405610588136424651241583906607110016050715012950260969779801168038001582322824080311035605679155387654383806375377183895743670609088537114506928577181351458517611137578969558848767684097497340333249057470812294650315330691882389617224176268748254221795565442729511690169800630085518912120267057146178889670862949104316289456163484411840128123485839419814357129522752188887524384700101721412953402539133791227092921978637160413958747935188519912232457612127599279971314895048785565374153279353966712753686593853248523894863057112167569302641978966069294081567255928150339309277348588251872373877826500479607534863406525223590485064348559195597550917434306754204201384187790256884625197218400233649152235948742741096301937123330412844866576103486094649282316557352602861854540913021468160741979162765631843429910410236481740079052504220122326828161144606947002161773972367296010053370295640629056600881480451002278095769858118519323644261114690002835049732337351413362976944594678243544747094701406220718479289474244774968818570877919430373174782153294457392728587567495003937162523047414783081974658383696801914880343038424280505753662949404722187543036545819182324021521390130913944338777590949266048036790515078069806845679802574291954110152197089752515918240610978612084083986777239290663113647165731895087030854694365435106160948601837290290303026345463616962549528739611034898789469845714550309527658628888363440103459677404865782503485999160812596500051771369500313916836905313384121342469976844929704022303340941524394331572918394534695428331165614281776962756094062143655523418889721362763336254351256569653260609023191813070303003532668034873181102843823208794007504870461374755996670953091569059085083042535576585715828511688638983136942374536425270949969729591032180598993111073541291358956242743946487198380065589851294553621283717345929538580401102864248740209684319802050207716801957511772703138575688338452835947441220376730507918061816007836823163634369451869724198159938506410721683253198310739346371697908514770427111855520200207183409435010756745352856443796585423699552237582654018997073706484735892618415209324299423582508517413574664524594458365281869615439444641777723995518205321348146058201536948679400811120053976923599001607330852809580066863683086328408383384265972433001999753316323789672567016162905667297246934606626950502985147226881447562054660137437428163040123971515873452904763829633870154579929706935935476003519783995584328331261783732682839095882214341624695129612414912144791440241528625140486857361978655562210259387373326044819452451955485289622426624390292738362510969640354997301573349250157088604138558048064172493250342913526257245351584340803103483563848864076424325782271740347060339512859555146415894048708199878100492619590512270238281527504770623540151880325139779442061799310810574820399923461426582044265762619122081031088579879848360524416769445222764757837797836252892527928837523487651894889449795703936996736733640231095086494153179515302090505279912789155780348494149441887471268926216343169549256834547650685323370752468543239687532060767560436402410624399884791480800587607883252748390896966888190756730426564645268404649013227561910332158041949261589562142516372498689360947576535368035081719888592419663805093811519973096897708979647119186609321701152834119066389354132615975283780200500942474941718307580168542900899705283046660761119769118317670167808711933553789733277816029516641909478450935795081435095232004816508640857729659216400038004343616553473600320977127264055017616683657442955270151062553794974098652883347317564157523028401388270685736010421531282267692735945189764142507789617814321594706690665954736764865790701425803934477789956514475800584909092827716216179840661882176872800797615678222488252460436606918199142342150786192129317835839314152987799219490327509689258362015795675322458250948720188266306621354175231212924638768133419931814257355403660618768824729444036421579803364168867386093634219154351152535571948256970618116135862539529066942719408078027639924490630595352744413882382375009239351721350027892037338449230994645382767510082058383502010390551203279019859965867063228138010422778109358097090383597456762628831934304105055858318977998577716676006873802542669675161649436369370194045888872467906547775003396739442455823457899278748789727811290522587720638139042760755155162573283132977197996166742918476325374830575124067698119587723931999643212949970507137577629259151183156622222309652342252806703893714448346657397194740070847871104472304862829211161201459253099601202207391324155486443041007312038863880725338248668793176520044506937327221747721496914013583245951297361773137752700284619857028932399540912015265230305231868682450148357701895428575261797859469217812157757898009184729999763895141893224401375953360658198638307001972800603634577659679815246534030478047158253597261600219619277398365374424628695674517546560289694937589462037924553172944349689632417667506649762881306954546171402902797796574935938166153190241782914771495702338956153496591393327316385696969686993546510482910859762996571958702313897248464676021226610319536863307481777872136016023052608017623731078519746862410418267055962781436505961609224672707152959275359515975950355462477039841126936963737573490932161392837662934282585354468774649546622708656249236583964506301785145540444652803299660262675858331521182988592224337801362864868508499488449236261057126980361721434642489640847866242592690010895895149942112180089369135869064238747031154136404956394558777287835036281692856164290559078591157975767175425335219444010797307405079257617481473065794904585001128719393180110777780120498619104440479266130725427138691277519512410129219182016636899283753634426285685361291266975490819777310386674433729940205082445332836829344819406490817015102563782964527835649906920287306841534204602729481373110748527419952401258533229224085604905849076763012900077171049666436170986136336536995681420936801312567579627474136602541628429656924558651551849859474760906683656009040076167688313938362205753281720572631150489351929670368242570670914709419629938213603797936621062430374337179328398179480182994330709197586882326941667825806565787482513638347129724620455307715295336349167534043485992705758758224537145724187542077506281577521570250862391638038035852184046596165684718379554657490227783432502618074108270514475423324299007733240591609564735301705196854491274031745978741727525184097709114666980954324375321603952887371181916594972860414054464516503706187475364657813321182197928562928807261523948489164114334590222978545972924619937904728197622456437067302512179171855353718070817891156458522941915545777289706561201607794293729208487726662480497478449772702308885007851457858364094756508179056075653764163286655583512078850686779090404697483046447730662036876679104189346857290247634914433762640907986878968438301064387315607843425091884550790864373754069876921298323445917652010894069472375174694172790307010649447636150361178285540720920242812137533584787361736060404310524505718182808333798750962235952103927924476728027182071273732525292018550314149254484017402847666532696237736095141916025502745521960073974530761639437955453600133629448493297543159908787412558129297892199621148989247572431267152121893604985441918022400579110243547133418070276327417687666785281121639590716549822311685226179476460982443577540405914632134426324984286752415288235078064061918454309389048300507398583850793203134875542983657718151877927351833824120477187032788928443754961909905236238114391582891517829056383012588543304630293401869222214371637473419387846090690082211635847714463213220481798156656860715164081664239854001551321809388018162260528256428945159400305169218668388059229637457245735329217679150513440169040003805751076810646208415028504044171478180889444462813248131202635550086103075642617890068408228099653160309313931351575236333263792408979026313104032257988937683706149471955909240834635199764426658203457000819241947007707293007639292997837044727609587377614617582816684426952933275478197625901131482823277433511673294901783668424490660152399790043933171114951284890665621574800725548813928026251804498406795308294259669055145074778759367845666561961760787901660990302324891977220763711474907461942140935353795702744982918801997259979315307124757776933526853575751660523686006074628189324923600107390173000578286397124005881428236015526795006577740069597780436038783355504968351571530561015966047037411090410078585949962483445750073486025700123916769369172975745245057497426703941465107486683407106345239309225610753699195896682583875698198506986907632201824039542780687189095577647328498678325812128959065089156740427842641313446883544726385609672306832334549848438983489572236541393179050497510381585632808489851742382929948399026569841111672948978489621671935523536650798136398031560364187729989837801631192262751949893286672389289800582251468715126922493167263536463624933468006768685284425832552876503164093642539381724144603303687170813637585997924137142196584300509859759641652062087805842383667215782352768106862009392898878484256163585278279083218989747358119004391405703473604077330917636954900720702434098076004925176837024070340437126646639463112370124545736450527162736396799013173403025201782051256241406659444964763246289206461020583194753010103422265534462855387651283514695674029105467074818763550993618034284451602201081395709003610180930643717433253552087724559911456483280583611403444764115358217217158348576178288355878176140255057743271210845058033842103102470410689134608173375785936580098968625388275540768719687693892691866462169137588606149895577592896751686812533130521045765782782188558455003428862283963331733154789651125779144032654540012635196530025733905158194062678549062557963775340952504208893028273168287008538758350979785393212013242107180484263607777654490508100290209639604964695185827041782615505415463817049796229391263735289195934314105391915653345206829612630841676508853608516356228797084295105708285494365652158068989851619301286821867338604591733726626091623290316302943901376342732476309042568559770545524116084057316049250294095765897898723784006498000655369868968955845571748550735955162740052113777174820475394061853462226953523200877753735686044092998090683092228482954883881499931908432780556231411631589044502396207595162485665454989193545085301698015648692718211940387590514846705857961201263985980867536819079629218578984323536755819367088914916929848185386056306675862228780886507767931915689160473644171773131417494077116101181181611138044259896667960688897713751663821953005751691934752693854085027367527080509317025932631981067676950785707599967000188609137737313910468445308100016928361797811704878105466383385197977879047902897534977156117849933618355626453423909969663039706862556678403705466726574338013164156777677516174861129702861534877961919765161191205761851042986947192851708256686841866480216398700747064122924902053463062307849281814159909443375502964926701276290953381798999757326151331861347429184424095325013285629608667269412635085000222039876304427415677362795692841729379800193273372458321421296278320407900164609263354992704590737419544167487677524237919038457717600915509759515928836822671646683256656312438571276245096378938126119334420439655231804244734159553235310152424794492067315405600249693422878952161934925998782112512847650503554855698961274266664297197372293857717242704895044376964653841153368731031328841801663982313971092797141419120798776721902904581681869588030927929725507701660245331489133329792717061531899188526025356213193428949585730023815174198116687328111622342460081964241572767171690274874089404793247330560267396006395664109767413222164558139040207284317078108945241848727023824249848544358608356859964170095804085302468936095939824390729948093986841955642262497549594952407786632048810545661747768164257088293438878543887465601410151608244695041037509575783237624351944998318555495516015201179654646251652544255605149783008227077044302207926507062817142597960247767307979109793672497258848476574826212717976602716360183578729408327921589692584512260852397584227693425753494599810701248818188247084161800296536422864784426561657237623768166145557108723977714089194339072893828307374118265589103016767204038103646171192825600988499751687621817386221569018304167698020408847245793981085930857879704803041655517428101981729812369550050977107672553927128768470088397999117993375540321550895638061959456513100777607088047900918412285035245449905386562300818798277977009390874628423277029777483595863319676116125148947333866441423235187945627325817450874956577827096218111644405806321843539374552374259152549598910557564640949506636374257518344923602019788065105126834605480912619939465547642596794811794655579756384244383118458245565557434055200201858571200610692678958617652785312968230780937413673952240010444222213018939573854715397788854714208897201780235758793469218445708967227982967063200569728165707331146387234954704573025114078125767801113496332953760603704666994272889110100449162732372784482422170597289999766908817838497607047042840124455450234777509963387738745867545637156277203441691787348240846896803513132189260636656379552379718345259601846826943695328287862293732904896803075541996502500649841760927314397989201055717447308961230192912286556854312301940628218784567601977354023077443985860856443138592653273845183975727700651561469072548468124254127810979069745005350363867353541315477462677296094396322040648661466161978700093567484473265008138421417870882199584082235840927053627858207617908478012650219341306661174817117002636544925260450553134971917230830303406857740201173391582759230593020693444868348611475283398107238037224916068633289213559312063117570801261201860574410041452275928823614044803770628421837688132638553518143358848572375356739312708528421685296401694726364332218473770479762173744099512737227273281639687776627688468537593555391285714453723198247915035307123677269067626044726638126538989896362775885980755869868449267875996936133174214857083073744633952116423764705654507820061472701230956745105198402572031203225983016061680113968856620006008349488692527894990245207079894693254822554369950584443370627702000570817356689219172633016613940341112623673033970605429746051687938799452457465979594350520351720338846579451956213006078461468817007580530268628927414493507607398003830163749404400253527483067350314513706604495591356507940089828680886209576268662511213809118945133000573607257571355844375098906735174285126548193667822816640984622884786929062868510139635485691218297684516910632150280181219065749658881134933605064977433423047947574390126194023802507317039370996126584492333839683079794772999127630062249018769468017522130278436641213509603396119416986813730170841271760052840973256384596095026000319151851670337239733545122054220927820277895827719301323512213048150708970347959066245994149834062146556792709476844518282136686123198544446859836041216451107836457222262474445920416635981402393451264939228957280137249322849636391148666925623552708448244236944224223485140253322321083851819595355218840585983128272686139412125183641282554159662795461934078092059304946843537021233387247557562319962562939387816808487189014921620106454245716429914870568923123827665913126313164078171887767860446495094388405947302792475699118702149089480555568338188599001561936130531519504009922580812662806270291643036899389100684707591173727088512374603697207506023188685848427492941067837163334540116996004194371235924239710334661332376345342793327060729742902541752445867686433447611451071640100838322429285093878656092416261576766646372318245949018016476715748263544321975867353599667808518048842741274396487051498192085319063767959521733020699542968667897401512552539939157812492852722870814483096756948627584243639519274002954537753562932318708829209448823738462874559840743279439142347816817856875897110132528886923292809359278517506957553441383660776545091117856928776336582422079701822785945766765269627281014821996488355911115746204628838996346696478837329681453738607104256712539194513651473428193248627070373054185668943230635877582202476073538165157658283121568180661739429184256392950389917508189200043812396185040887992813769311683281946754965362582747566022227493957272737160533475228866650957368771197407135280541344601331635000283085318849021228514698100797836106604395929923047218981114024710865245019128598709975787622266623086236266701236993815867142413043260894919043323736121288405808232893414821088747707029914556795914486974333975649939883087900335730136680364024321757132911401067149016449333861467307345176114055297499525199722458094281261382307845506540109250654591379303323876832648580499159756392396657012030817455097811618566163905740268267702430735673364348675293519745502885122852459652057710068239229474269537940373026926073445722336406754676309512488770912372981092694631905375024047913068200432361552823640558016991670264069719710858606593037925921147374394351461454493279782506840419130696289560111889680439510822653206790845856732021534403195987853375719098587286429589132698302198556366338866259423294021791537786506365537916750052770305753957342155886648131415497857148141337998742100307652529242018447607629958938320980948822342577952866408374419768600548358827993031727609853794628473463680176048491428472927459256184422589469092308850739625660111312831970903290751656032300673425738855133558379162183141552930421498005012353730789956442738673316014399901792934210418392095284549952023009714196342619863030900984683566436742811527771415530014218812457863745667461946887887758882949752255556419328255636884398392639727296147369722873287529191368799990314283407657815226006234834217765876624954190266547892210233986473493933369659269362064847805122393495600195248792431156515542411769940434170255882747106660005757313791293105068222293573039898730319806443018827675817580528282837938734155073579589663139145149886864699367124941311351135193503672890748385052613626844898385625106546827554157580423374141458555018650128002907733066948799331054767678578888858255519475277988883032297931247358184705446188744377473078770466011731582710496760567370802303837854231907348859336889948896433681975864443219200659711783491667265403243934712425480496041047562237869412584013895418941970103506175401679009752062635165454582977418659504713507041304412705713712104014763745266562129330878722629254775217050948525923886000410658749692517373191348381137133865893270880142580745721197427014092321911033946138404489162044069442335370058449507683003440637813904125685633271526370734902996672550132015219723342247940284268621945993446547372829095744528640236936972199961602812361887402605187419475939530011300289867906487520471363943946487195805676970791940247650807814001318595632351829878871914908037644621234468746213762180335106714930598549433582306447005986653295450090450195662690121499862514648398082735386894126795939140726846442870916282372221014607473025911102567164752629548640929120912147550698167718232034261689835768715196032862935796854015987401940646911827171145067342122635734249095742827365159256848581820362741435170134915213304103749919177765535147553783860922637472426153202174108056895101153955078400253795261272987026005344376063440691327405885152869606022419403615988692567515245275224064027145962402651442259056707881373525450436757787069963782542527380836608808656988279562557369754778773884875948993600086829979209816022375569474091133492331113868017085211105730142353989944652438790281488814228545488519600063387183613326008337000704928671568401779828307936417717102338342617276139780992585380012117220991726471195247419653217918840690637955833980591301949097696779409542023362839255150003529164565289107748500384862963192287361253919373111486467582437254444276129063852271783844606132157262120175125726660461183038595576734378690732451408391972375513452171784920732404459311237055782853730950331910109728839755564637404068307133975761978317231916018571996028093251339250242131217238838402521213494316945785503290241101086785330204376983612450826775135908170942522998151511725627082900859269999796031503197679785946403699615481613411981786398167453398482194624041142956617006916795889334721399188985502088109664312274479385022830256831228348339520752014517767065280525555838644620556657465241060456510650729134753593134555932342490033167732242662399300431574271075807196346900319580003380229717379877363562915466245069663815619380884661762854804469768295487385758355028408078756894457135934640318226219471847077703462267051593049251756204268747587327694572433449121148384162230689015506314504062039141797591669265134791043828150526145820568896849947604756704869084756662645044943361958999943004201929064186343297023211340616370957333085837442848383962956442550711016004480388103556812524560066536765513180204405951678439356161676160561435107617219614859512295242057069164292728869636999872531157893030078034490221449958388034125154407258350737836286848684740832032819071398899103950917392048101260001924949977125539752067605768169767728976877520533978490683669982938220138566084502023289553704816583652320882248233405770472688281191217920940702203868967175873163060171859852851473500061307438906361661561780042774716179725860097028459569475424248085352536862089513575810490260565309830207836730448920752111664606758395473855273203538297116531825520881122773496991731819550321703270630168176082991519035735117578489710776018455388296395242977129246964914571412347771247728607684634351857769602433486662019496927682513223244984884869490482658407057921842893981041145452720636937426559169443585907262039175429857575220998637953707233592892451542065129872467963390271140070572171214310306295537618523059079284381555052115269436590257271156947004726097054956839241224599852703122816759786629148731577800646827616930110478241750197386511101067708268702890877816244288581590561698081807312831901908341468831542613599637538767401692354449719069402549546761065747400336269130910947648585218092985316342406925282121178666706963724759696782553867826755324838430671695240265843067938524355837176744751733660007403293455521366967515630306091421467981720806874407725899173042555845987909867357974171017082846836763819088086902083892485866479763239131446505329819048949371369590757556865010697293906767674469260736214864593919610457120088142960505158382246070969946469064012422210617421294983349797968046445859956462785481592884174961582858161879609497992927706535951801172094599616264140352087914134184254224617337128546793617162477611520077306697333430031891353055100930245097725887153057970810053338795460516138253190828168513858634116535787406923398282047830522202676627745250296546869327246426253230775669899848624902586828970074206774007146457626071830212514315757600583536255199466997784855675417994664204107369967228806040597051737663348025477628957829725190420194959035382535312907219532176317912937700077183802859242129441278690634853958641728660401121094814953998356498818055347312518687142400444391610416810202576217468271252009682809984913776829199486747453875354263125352509704633736861892258509132906398213694701207049364122928845843196930600663356794640284272657429047627183944778698167578672635342965912144707934672042622513901354010871735152809476314996934468989620348255110244071099189837522757327021607225941452587833681163564265991127862839896917628803748008523509424732564862580504201936136749739942539965102926411091242144284418881770845372319511113504921506139800396584219256402048526196633935478917089408801720423136839121963006510145368239140639798797039808626237790437938878000755555615872720447400028807071540110076162240044109425521747261635715800633062528858400322502408723261171754680477422806051480224565193350949247716065044114250814835612976602885874856090666977114399423138492499905307512051838797917660536542865140645694286182848587439907401208917276885550635529846997593184882136360275048523860233773753925833973949025954056730694453322306710537978890648385554477672189113758297039099898663211232337211174985798385633781657321932715874514074807281995448285983366119446807566630376280014923204235047092445652198222506507384878762768179125365557035301209053677156064322422650700890694955615444482765389129572556254223808208827924477502439921211031179945183170022465638013126825592578828807319451811317118520195524556020414037550747365981592178074428388657834572523187441408465029426596435326726249977773280458194394242913003809854273786845150090636238742766985455290547200475716943601541372142422180771676539022033183338740126572768388702791184699561702207326036526020089038043792981913755289183691922997449943229604540925900111920989138158041727944870192033668596177215814059963632115001507623883669257217669913329443973315868401713644608499185643930664998850407007634052896766413440092180751289184823537710332535732937623761819868767847057277132825782480029204612353443252125533365711723854431009408160419932852744029444398840302754502049844139556400805698806671459780496254510024445271725056829516090119313579557157946587905367423264836492245207117715466288940225664734312459928961454611996259461897780132878322051094287267837885714391217383274984117308614490411408085246493020150119719972300628432265648025927968562499154114453093216190635064599290602012886660987087908571292695164648677903332539543182601996836014062060005701735960665893652100166271379218996575073588787519102536395977753978590391224760014267067210941325288719098340464291928403265276775697884109285281164983117342627038036683690560589373497935078359459086438177387676511127020287050285525121234792952628680416866960545488557919306606331918421571712675373898799072304440155335867212455724325821655749865468186661133281844394273277594970970432404405763257716618484230900994697419946806046370036144713747767800060917647904685215528275194784485183482913581675726423973962230784954341233436092772965056296591183373899061139114205211295210233760634123323189770145513707650978588966269590179141636333858424842434323587020986651273918769358233454382765143817106784284351559672046365862929201026567001792080231368543679598997400062647554100400300962962604400936887895926050888568863498497691396188181801586140876757865495457994893390402759281095006031202499599206611496126527429407723294996407512026151213611875545294463521002682662486864872420398746242574471749820781094001493492529781720310109774287815523331898454998846608193401873780980476390367581895637490533149159255399743287297249671748098097947078271814399207408626656890163556500479001982725978106696310297201796011774750609664411955483054178659761907193368539093944848629036554734963435356374037166930387102415017991192293658082789670865487671768001882512199954643875010211705310097423123910407899593007607181034159714431900714245314211720832745250765975523575511302042555277241276939781121130190611454183040886053166214144949498099949056352521847010812046688315791362806794216900658966717953572679122476466215201269925253020520921833344398641280935095436645434735727502716840528693518665679421353816211611498184234569639945875020621384169533219783386499701861161291547453765503114903184074469364501115577346324180367496776146687487541700001120837268884242385773271752736039700351365098866365700605500147501624989630553886180231146400206745610784519876150852343114550581333869218579609822465127780457036568238900990760851730145534063859298386573715000009112821510383048281631763641126962580032848021526944218342026559991375091171640795099200258206812567684256483835996418423437322125549513349520154192062002860539247229618908395243340489464736578760634350208756749562382477705992022128405740778562549205015226256446065008634163802807316900707765616151094240972351011951601533027026974200962534420288543614573821445988363092878223189045039009173189092838017399938854459946603587828215537509482342721941349048863883726079625128427458352660390504934399727592878705984377017276255685273180550972080985043983131609894316303550068405676701455643674525490715672956157316217590270466669474810007757159898028732820000880003887593414537431501734220683892545151262731170014133651397072418128923433283988747308479619575875885416077778056759277900418941422536187040920558198706497290272911005943271099251156456019187133453476661565863468383342451052421840624936364835011296889498007042298650372263465255786086664359596463695457602331681996427201243474111203993085807880938586903016854057148809842597976667856993401121286471154948328025734429090444775693765809432233137327731499338072503279270824598933980380483644747936163110130203009046240916519198516190688805591690523137134292916400387550450709406913707643557892233357961634877591322555221566797883698336273313564510952470496136011893643837009124091594883660313536631848191965021336144268997968835999501669117028416025153732098605526336297086676789684126793725363264988229040780778629845394100023510461468766646323655095068267697611600169484307394232346823029568779741190569337107883210935933531482116162447809709790396371025064660932441640192771642086113007826339750678736433468843588711701367795029661952649549365373280392413253710003816369407620415230804282970554087833287468293262132892114194682921500831967384663458703308140528173278518548651599476129046262481291704011260861859880019259176779535076758806296698413975251057245213928144799739972605095726336817908901270828114539167154685421535800267641521422295431104782772751423770067982186471396801439894890327827993110248795326241271252432574666565562915937465589348991318756482675005219728307778571051372898633129038962294906467313997949127196638699540371377385905183587943906467622516120999698223201755815745027554726984619847452492482586741938804385493118438320612640318983620928882587606055421955726589239919517952913918674801710024526874215094352333568358149343518926339150703188514785591422357653316039125992479006993360443175560801526653962063812581168458996895761766141298774185086761947559954754786465698128872562913962528246848408422917455357667023261455789532049196019148120132742555634109780119537508385568652687578009589006177783738542368443005245994411681788292812749156644011952168859074690255917941605030520815233984609063901229450617085264667057060816565816398620793316522577612488774027634473193146592662366765378428093073280653020852616950455663129208304471456967792733455258477239729489593605308454556833096538740927639355838383371246987997025189229976359602867509121192689037056525769413439224884884758576018054690866949075497722868522571381738163852299458789293236796720994631049561438381897838905341498182457288011303240956229590000494909918893869111755921251032771811004539061520960116658850673491189308021383645102659374099964461618130942618089789822797274140788562099545153877046141789927643467515925641492805119022538616486028840324852001183074012452041441025752825674126896193983160541536337220005656435200919128420721761620603560264618096502761669532524185115219614648909739567560211257488257859932308711513540747534234731626571677903568331387490025141532079029935902705439638988606484013671768250076142875261837128890515073084205141381971737330853373554464519206395386667979070693953073935694728189636130757218440003152073944475530286290872438090515396285317631725074436786513596231798639878597368242215985008424334357807121705365031841445734141175098334663625800255420890684585504993272813363079964981494989478163149001377259473095230958688058848536475492707988759826092177721382425830963065582578169910367699924418171028285347422865092944083365798191461665313447261143623948070485138590194926608157013437360946130481857835630440989670246351661811660283731817631923646359186121717704516219435709770625043687179996606644838404765983294494771334590817274350249432025610911812400635570287963359075809541645028616214748560161567440534304313115990002285694069983581039778540033154411530581973055471986108036931755514285760399731209657550552414426466652050587547208903813492280822231622055872415658366352891917489778035331191396643410185157760736937194093419746007110445528746813322905327277096537629948701769305586327544378398055925007514430303065146444973516085833844022939606316140067640375397867637486389266902613746379743548243763549429318561254185667260489293133689337323799749603664561627584402385996636976709525456700219497964485776796284924466237059099893073882744768440811217811299372120067707787925209152038433029987343878108663503371346679913374183633751663240275251212135627647772216059091324993235329453010170051580592855809641092634864922549543406375217132983186785037099360063310191625082428973582313966406992693049260426747694763993311880960091749099744804465693600842696927499815975916849759748399407203887913985702072982817028707612259951533653666143159549561560436453701257277498181289732290086923702787736136538136773519756180943652767477736799453667132590069159750816704259727033509500177534276727327823445247994843030148848192216844025899012063619748629754231903915803714016843267751430749965120851502945895052624721526643942384798649608559945972037770222720546463158887929337509982908068348597745670251359837692717947747445668195564817758291752816632240630486097819128131108908945308235824677703145644705641894762447886864308570231363772951048700662534075361094253096902522204727056960811829056071012751263747200627416732501306036705431501408399732783239663884931753403244085313798897172482362641136713182922248737000926260154746434402767265045446319832983895616110509659116718047292677950586001700282105383789230133771429019474974762696534186318192889057606084642527815330846051010301290239388874675343680889210923482762673068287088134249702604418827611083399771697305953700300791467976577067484677239390669624735414754533555502111874846181016841655151614541895922310042750798505054915819093245690793009018301783093420289220833784549594329738238786293591596098935271700454557589622311399415174349023393244103441991994397585457934866397395234982151191700785624109033559322497151787918643193124210406323394912880798690108988364164236300544496380126536925818120433218148284029829652743161859902721616630885753177720988508020462710141323773091046562022564652146487489067302063335819263111889037456785085104621487220399588644117588472429507874709588777180824096842010034563554579917409449755731815108055358774171158080637237473136301322699573486269321781426552381766960751679612047204997614096331697317521851788850750120549857418647513623562005644290143326055059618127329505106802056945041032894030088288366007785930680934644312178970387582547218737088612097715641821377449367446401847376057274802524085892209363838631887310532294142965952518128540435162180337252196239486053684871318296544746484929449928749250456656146039810548197817140756055476287360234044477821309906414424224648546491752336144224518004309154209324721022984571667429063316349080245552647644056216834105378963542408156937126300318760299184465779873013307690028282479224536052221127710517799530994437590059603004953400753379961445816097709486400770172290343320546925556370653619543053986938597642910349639284121071407287958758886680846106465950801941647641667378146797245468203430702946457500459433470183766216569161728486494894353492049738764450905828515859233603014372106972899321208553172509215704557737771964930755351963889758344621744782130794387178401032655365453664396216996553936999535819569426922176428236626590225142651598043599613591588463356126415161658566551345909782793213461866802489470616465260255840266574200997708291993387137196039758066233672816289216944791475859450975170766263903850611532658331403898021949976760361243580943108480625244796520129568942813254166119838514315006792627949800628871908639969779308036996287950758093496797016647975850676003498649623439704958057787950142345789856565903482283642636869878303681668627438304336443091834778631093741995321715367343170439039792977146607400399210174546011785891600688661150083533045346344511452799854124896041626608189091838613456769001405368175592786887229700679335921080336552636144564811174743063755938574886182091640076032558867393245145330851207087847310758047417329811944423671306295267698946847177228663255836783718478836780961859681445474287093787605144643012757410773118497567254196972982771733243811887513202409347343788041272531845928446464258036757459546019399497512067442237474095267817526496938401017312757571883198754134363699412782107066489034193219403982329087353809096751428397375619031700438928605192283724321916447014225598212071022107031677327726325068109874725714238411365542228205239157218092259477007826864322934285032822295444390036029455123029384903861406654557972646793643108085185071908945680678276616025447066291566582939477133713719934363871671938907331789862546395468340133437634956297876987222922342849408026992464359785629732265049662252927165581738937292259834678064257855429178866867119293286657026757362244287625499219562476850603112617968650442893307843373680213375728675321585372963803173843464715148347605930814920771554469591639963647642243394353809320776997970986106901435194441866161464647786494096055323687082926156351799013232103713529947798073135463891591379760601764188187305356552978643406994656892364121259673785637442733954947636850739462158622860357707463609328409554058847198455223927126030099825568800851459637859491186575293715144384840639097248732269237380219626902969941988093295041595892459545290041915267625410476740237819158596084340529012056910698961199799568767405562771949843277750093343397476309018723549649268910108863763488548674536526785892177766226255702133091978933054285740374451749259567345848481745240597493637880436122773287526652664904647878775121166756678656011376624568290305255599962214739873754855618369725978269217292393029000556039633818255101549833946482724658678995804362552130776167096022233477661730353967231382126112120735130159703801017391007252022008952515275004961187418281283960146703946022817607154137570812549211164141709995007140780138392490054608331615041560636358128931571622420142111616143942434057244023729864554309951957282906170180679696029642523843947889086597845885958027429719124608643994892768846858949704815937354924837036727310675726729067421920680914850990741237891590794067909233421186580827484932339856726496346533481471624808567192380148448992691963529170559831436322439354028062977333080786988440022811166458376932261551769613676312937642334950629937752201145650832766590918527130775506091679413973286429372836059251963937101904228833879429816769201928473965227367859695568293535702949722624790353016882962243874587591557971994800753583018560633611230428750665406667555067884189434737238670943841298978626594382068861735547140700166666404473567670869933328853329553374018364121078066849019373896389577063384616876309828298547976539977784408327313751583046064466716811198167345029857675317950144149648047905524703308773941311748749783685567123199089902020186737914317366249732556951696855939541312956625918509087048946832144477131629644495499248476657932204962621981651214620967952035981618865412558561013189370015402694031223665368060791012910607381045006708432371418430205597184167901275168858495036665612838250782444606699272083025289488771266202904586906552745681973879970556423023057209173242035154583096339786245166875306102168129828786445778741588488951229154325677004660126630851356404810914925674561892860792587478668506683396359050322969399169720228935959832797524894236589459303281088149447591482665240959806751545340857048201843866469676753609835322004913560642872370105611120886710134818178187104556565764650924518657532183357134809035509841230425488981870973246388217703979042743876994529528466474453503165002495626861684760087168087321994812627534212920052952569734551329648175845619890187637002021086472287887398268342017098327966345375628050208808221161293910494524251013003288110907106978080454825562203400932667811530465575106423491595667323845655899930467967616185724464215272024510944430716001900145155862629332077974552252058422235665582389666925628420918284219511344048927534578308159589308321723483050447497330974154266591850907150356001420946043843285863333488961137789218331921407575421709006930640991935602432964419705253935413580317547353723445788673705801091102660504711708933477452365100065646563559758206000158067103164729984248457020278946831833633582811642044373348092275459071727685062186112962071636505073213163572909742977896482747906860878059051884625613157276257392736948590871736189368395652157492429616511519978577901040929230455730115398510537154496456993863164916735718341729633432339589970594452769581009896548782808552288160164554719177850778989131308239569683686095038745428739629531840388348747878296568132001147868421024031379442424314571985435147770533551399772892734936625084860820460323057760718476905912858801648136950070696346793791694333256785142710973902420817655984963472926191459567284901576422601691673511015488832113257299843695623434629468849650888448848375448570853942764680276683877734796985171107445317250382104694643868097726144031090505274368544071034704847069798118164524301483244309243578344966241988717953564481670045762001893097094519472457379756608312884860620637691385410514373981107719167012254880916718639154585354205374546002361645537963146936205001349180017328447054209584203165674326190017263813810510350110373528552965330429733910804527430891010507703397801665445240848869563502858654020391947336538970635616835228073245005367090084937155462495097699518741508727933605680169416086428381076239174580613786537847152690239869788970442530858777476072431659724136003347840665590400959151884247899296961464443841768995644638568968534183389269645415283786220396426674390375220457774001743893627614435102591998392099680371027338717632330913400090259491521890573426313979397385355485995089424358396344608566063635724918010580641586166349132463660130503421998152497957930590933451561699437690708717485600843583230839236420837771061517527885803116666477274920102270188647214928459127801088774276966758962579602013005539775884926226915727597836754810600426854176196382096687555274200467928014064566126372810506848560647827609406904635636990160312424444503793886945011975273548669603995002427432373176407408523611692578466244427043468213661762772391723218506319508824519247759466895105125020389216255750461230105504861117854379001029435009138893995732087272962680682328332807913920458232903619695272733842404933788050173612533030694680053582750533628367635042751050815640944084874059932219197397775891509892238365976858494494693987003273160595376085894538748464227739624692542684459016411594994945156103763773322745834610698848811557567851422484930048318280537239673666831662411307971074968753016391362004297108057224479437802218117611074038278443302107918493349622339899769889008976560531428278647465449534508795399147570050779585281307509869484338428217378370785358196006372775724898413364949146526975072828216059306039062463532990964140340700972138649307778453330057313306389827650708742054278102703139221295251917876289524243968984399647502198726905065576996824251463930441373597835487213926720221514612473834113414596848524852789188881604805374050642125934165470443935420843880631182866589323147007819309193340344016631384976709686774893844658853068726627002391984157713165856715362380172343136777441547207171156475501818796333479905212476555445294516587891492029265701918468061713265631663836228468053078482102085987941859263616774440853634739226171900620622017096646322185863254831347554764921808451963720381000992293005084064437350968245208471134732076788474875981897244409233185824715579179757347931669792358450430094134721595788987458611893311278226571051436360557734484015680556840243379101661141984018923215344600973991488274409532194271908654086086316024206990612465843870575716470315278046575711565957602926727487329616302299728391166364631595185261003536527246458964087343826409921092871659345440122031043502664903109160076671711355420898246752590136607745666349540434729228308665919806041289253585824385039563178014503703693116553095747077542854846953405795458911078433553019290339999787001664173973792401386121032448213326802584154658385299626893673365893708811301459836331168240572754632351505629011655183330551921937007873959982600714069879960633571907554084871565205423675148973746118284396770152131337250116028599243961735758259400902068355364108432061825486303946939299733349883454595156024742351645482281751149376131475140795808957276594437169043182573590115815059218337253243207369549179436611485402104371688319474581507884052110993119278277671054234460481021949596424146672729851334642413419400416630434459548005790605654329726396536047894507023996408959385003494524448476997167772702367991042607418538576643973725702960576229847280210776102187805416551707374346462667519209624393836449957278221106333751715663843883694534384728973629202307004247560319183487342251210805837103209370377962634800456689373275717435071546135602745228145276988155888443845870235727718973626207594682249734752827875047535978145333793386395158776291235459396770390346741898735366610665273030622084502129789940712960261949736658526184954669887448001688561409115843014102185064273701848161919235477115050327955254007031399844584808628824779487832963746363285764692983988569491741686265315163549934935766235847471728518792924142578696584826707850855991990009569930395221789032746490334051009711507877720352911901874209876984834301891722535520873602409588382537855266864521643677151016920902479964562690453296629137460126938528505944866386454485591349034201237462156618363666030698172607491698502476743569790981510789574290094975789803757550116150355529435894121420866402565797118069437580515187231956272809798207076649281007040898692967950677336563498908393637344505501902128194173788406030629277833052157962797295344221185114621510366743955800835676311296449849315670772084189799643523849175535895880786318718703061614240405450126870915214611877878068069749379519730791934783062114103142420014557893699698176942149130106016454779558951305101321128102857818701692021300095267115712267495749475768581641339706356261738484514691442444746732545010934491979941167814885356714441633192807545160580146443718700306396720975801104761711687357415919854483475521105078915579262016595281706985625237874310691426595106391751029310724045243188363439468473266978479000007295973475914216250604804624204329629666730842342116202538363469279607523774115313798595801352327300635095977498640303897463903332536458955128312222727748963346032032637320513226136370652225900888634338739459728018998729944745219583011649771948089388445897514957217626376012672461405774461997063085209916821659803175523012657497152145801407370572461663801004710890099714470506664909509905510469144149378030314820335503393965576612696188277039606269787828566369533750728700340626877516094456751315988920658071413589445047087710973770820664691179246708706737623778976574992178251719062645744788748854939548040016771953587911847274790233040465785766535637551925545491126530505438385985895136740522345322011178004967351429501619018169900843413041357139749766120558674209227185433869397061648156334758612793239694713972273177448153989260393373677686021012753923405820504819823985332764846234851321394112250356596850494624020429910854938130140167236254918037539966972384685182957783023357816648540577864103847973587049332920673033734004734532471300228453671915306823352028432237362462169537150124862965298629323699989513137307428760917746798304476315456645047819943858699642723133187182668521823446189473614071774332810640673232265974628038631884614806223829545624030112180335806927014221616551736671973676790256484315033206855236748884344232902611841503724250573692083249848378176219124697061927989790119015296959492635340194329839089233063168585296444933475384187245056185053795978250868462537517079923087130668174190665286679295659996892488054185307305023298147001121423319263029389476185774291416975469457277095650891757053757334443414880276531390644232600401148440162337328283546590873437717241178689749163207252604878946401464537129595883287336284247317288157739479918571444020055498036924724573207036880304762447629613194848361694735494642838716755858236216218505774027818959826679357796756538588089952043782071528728813801164581615887292899410777789894661585879023663060761345285004316107445002232122507088231272511124611238362149586754689448769884859347052632147168887204942719946189475331470762907207444468700050295945675829323755772559447285886375952530730106898241346786711444861746676171803908152563890451974809566253826287106050254212303843730291942056303552150368891999842828225697747405820616345300028843837124158367803008430619811304259216669813569025389657039459495575392728769851378978359828365829312874252982907414122421366915235767610834276859092401262986510320156501339697741188626085992950257043454365158845864002040628187984872219827806861122756070494258961423432481832741213371284473092226608074600718799278695170614208370802172161375099678041577833622696958326068779290380301978920408454430363745250011810681862785583408220126523221641941367619209799746937764583332034278004208945556933675871974028924639119183502503830856593141061001082898765613318338390886008524262065272689496368499031877690827976007336882921316697579326794143804537632974378422884782561257853610310148194193413002438536365412154765148218985644698638657389559318249207615009619045339302467333824381331480207068685704802948577485653134123749419765357354334933266382577144208922083931280837776285828904874036496120295482313210658007752249844807979365345064543647179736504966990043397127373417561729729222772200770765836793629664637114264977289995712452646898121459412536919931294843539572762428466408419254396658949228442550571636894845489621267149897029726564867054401117255704290477599895159445123262546147562760028503098209859806018169365791433374717629593271444716067755633232526706200475707522365470984839703444297487339304217003056769315006975897313599149270932571673706224721513802266748939233522100907962243332975918038802950231687720927845850881553413972133990398619054169710919741128801853203903078547383916215514258303707217166312687959458425501968425435869617229946425661429456508586739420499407639822238967315708745928473919624898284543551920200704704689972861257649755474605888238549734431474674073829114997966906805309263900735981293745451259597232665749313728046532056036110678578564807496483771406813165823883546328026453652404183801380927403079056915748762408311885376729235466039541348582565347127165319075668315147696218382869311322504745543884811753480193087576322167871827398712383345625663657902360052911531181763902638546581488113324243361229758322098684196848716849246390452913513690065367151852426159876358087461464223218281578918329868478255155864459902862766404460434473368434417475505866907872109664733614160220041132171504757282416263336513904685574394468549483755849401707900899545472189216908476926106144866158498148510996814947014883344853311342170687931976428921958563179297993951495525447468223962393799914988876815040228197127097649159628695481498489248036659275162837364272422523266623874990679856195863681789387715077137139325262894579761970875797952671990852755623854795839083901977894691509236097627304446289723347928221807546144668167461528445072073037329240292872386344162918966379874361399539264422329309007034759770334379361882588761540301038375319976861791725482644843193991136533971167208695711928083453788582900305302125718527446712682557619402980440845809173074632695160142090012432409969354046898946558434156046460050455730280421407999296476750133983772955803951824528263429549779968204351376229003422783161754631733950693233441804557373211514513371118386581793829192131450597612525159289101294974044842772232746152888035010800338478594947911449750662337847698926245734599366907280397978027645812147913032164827699795807437147935871330753789368310005957012864370085131163966709619372240322932483220953230739405031842481419808161984073864392437091220248435379461826654801432080667051293865021114728532348017340533824883635696569831905636785593453821090934946426555817884858451704322744052559801253984878359276393023585004851408231612479972734341702085430083260932711228478320367788626065797234548281073760852520470998971936963035092950441957150779233513723728353924655618475877635378295853715815111638571160841787911424632166995139670982936546825587636726919456808966647167208141365050051751634254729268217991722161572301830746629808479693435166729093521752856161200308081178926576900991441502391695976340214594657625995929408899357102130998846908001398529361160896490866302271945298614083178803120091624490696857928522975945730614700602182750482627959947263601358872377819855293299308509776176127147153646557816132884547452544189978983403527342298335921578469625812163775637371531988819755175476998743396166305689265860378497403562929914534637885104964498094662951304019170539866573389795244259851076700416892017479457627204661959783228068275524931198074382430247469678176603491539717325082340131975698766617000220675743502066565723194320569765439021487027615172722149131129672698816490386904652594781605160015683587229050646562512518568388318652025568594861072793299775779966592471628949794641288099984797588091219901538370629698533667865694770149944021413838033565536305112414043809587396159701403938873957251565669622351996615298721423734031830982248638123991532337127301384956446922319095231141319644357955767693457395192456960413633297276130569825497848097280232880385247918141691606046743987955112789981413341477078414068455305157315517863986918130321997813434555286516171867213462672537934737326515947518047669996835586766998257123633410698482705150004458057700150653443721658029645050901208669103785646174155178251352626226696190163401452528412111660987163588201738336641620949338536204320080622611044775212003294586367567377105922255850575452758038205894490316413394033328684836616089968966908264894662362001210173005869784099331958355249878051558996634100905583244016080914045508088407877326960973412511910237627611348720151226157405766974195433969648859985191968312068669759067640791172068764526809028649657091862846270182584376001807678695634488866736048615045880901623629503270623856189230644913904670123359188825899787817585181019488833333054297288004997509985817988278594386635136479084232216025983043207615192260152234615454824919792579863735954272451426494410227489281392574868764869444800031164849115573625168070094690086704157173202726431306152278262867605946066259710773352848821379993317735704785759206769288686345606091256550020103875739934507450116271397045976236248465506058841900312247778952978432717393782954338419728087830243096964807711059797226774391068810519297129279714767061104465651759751954939974764012994003190326204792559740786870158484719151872159139814187763098466316591453453832820904460232892681233200922633904732834139869389052433437575670844478542549725504277244890844603166574901259189134309125163798743827941801540619644761556941210127352201311046035538896704573183025801247017864919593294162538691097099173440540345102883751271919006156597770339338248071315176350157076699727167862993900314092035887079154113165738858704527939631908112872055178342534498676573433763725443687250229990874611913588683947644123800544862874839253436139560904958530470723735472194387240371618772095292273580923866334594854415188078188952549742842905500017723257345913768440907396004465541720229595110617749870623023231578276504097588164518676097659025925661829033286222700685568469935689995962252900588122678830693458937793735600556035769812919347359132800290886139316024437589238769583687510540146754221616248958087817620062638076381198076409809747316822990805689791672936021147319324269494539012846777314928953606018596276742623665759211998050135348515099971474234171243186335183589438207903082182791551370388952972192828530027074541074657173673102839797898604863243565784153443759828317442668565293511142099582185629132804226659326183531905352132611055887178908377033608237248364740728288039184615132703148298054909072522330002901689016096255477070873837423381549730636896011492204207718246114580206576483740806267748085926984475173589571023439674248920161856546609197781492260329972835469911887063303734407987073313479675173535911779034065710211174767989319177155016145940838022740759038048988275947689316795094797331292498658484032301177937632983590024859156396775128020326600193296736510121128995220854224428890195399215394764480580160054779107424665996738519603714596415084077474744699026128647134720100363122667953816051073405669321723799922055475977126087495387855546044329583876817001391894676885406554811152630708455344613446296856958332041412431747398904681773783361086709022083300479783378018461533447975098511186534604753769945226381682860351165847534702476428056070387854239794420721973313196097636004526819730555102495664511742205208926831666729819774312727776152037722543700583335385263578215095676539025128614673454254912713782106032725582638139031464871871602621197585566345089489425898029468288113346333201144616625365612692011221070458746517541332927837009310507622212300737550311060522262316355489742446187159363354323275136601137474756253670545467698450229115204128532468377033589946175477133100144015479007539460827602511829002098167537150759093485557527191729438683393820481948880808308784219842814879215735089453485922045833364495211893851576963122009549319992676975899921130005678090407292073456908652651169156557357415117110526565534795355794115292940119509607918888175236920512222850916840473189737141375446208477394687677318127467970652111988872280105591006080468649151676344325665499065035915159534950520638764938063254197423030237730690747074145897206213886996389384395098987009447608607801763563913187188135713979806416342941097481276130364202203571598472843823990414486500858952019753915810599002753601994515236450955620983096779115203016222900837632650062882262459079648814974322450322189518307338115658676145468807739702613286503363113114046803110194709176561189520626390563108962443655200398004524833676545661127556211031312910177497668147051430636184322687077591437896037864686258254050777861829110606773180115317751450138018712924476076310663595594718842737774262088614290528913680874341590504744710836592424327164821555289323865493953311086355525946556145800916429367122135994948251912817709911872584145919590081213023913957237853088497791481590193776817452389931461109202411040077635396770770772640989485912169335392353366654042463326828780189236406583055325910748495736860012616216486233705701180031037067276267243239006270830157061909903571845050758215177515976740003866244076451299418288599366618202834400784926662854936975742959019572048376180720741320798860030670587933028451479095297289962212677560469673607901105541266268964099480666238762019217186654995174539685995572798426109997200990373162411336152025933548602972621104365593336816723250693246598939750117591187549623551922604532787704097026975003746083966854644268105325139955016029350454122940004485450846861125533561946330263296676114761286918630786934661820540400282166524298483450748458993957682689192324184956983617365903744860892527536215351082966704103095181963232879476171896622453084939961477165156962710923399389511611688363097434212125792140947234808906241563505009421096972006717924465906108817723682887444534416651728761373659117458282674593864731361805760997132839525349900923166085506703538072395785381859123649461047524229310611115952046232583410571539730510041361059170549541708284218014693695515164552620943585847585851111368214869145559592912161553796908344552832952726639262775646436504419666218876891449506266133779646014745061488121501129112425801058355813318175427350865754901561831719245961484580607614280865410843864425630444860772590604144289819127462104321483335148034963098239781639920066739324330261686389661720322664107178445058552077114696269389452748688889186687402758524256066337789123465002921411249313685966303830716908710170694285158840204352405806753812129824355760046586459855100766742950472282793328767567091810913798897029942981536579730480299417782348131326081428976504260345810635011822528113972056942423233589788352908130205982693640249560372815392593815429018298978610763465863852556413688762235795359453029561368345396919040957049427656722854140568347574183813818886301110993332760844354028293356259201696279327854032445782689963126405451281388464099807302956760369927258190636079037958036740582381203194144083504935990685481651857120641762968833049746874470955217657456975600159990306194730940387075727079803040777893649892942650129159342173283490215092239635360745947735757855712730532991757740829887078642710750481129955155868724648133357410395804368807810898270110478767095961302812194174548759650283885260706582187923995515737361807284829678181198305923972744085344432977483908862895543193767580223639839384136595223817331302009065756714159769959809371060218237413942738965474312866921408859399763304785142846260591272869842559998668782746822728441251306274941182888017596700692739033776318586904904992271136469133604626300530944546896491425224713726006955884272203624407335139224893344087107932514520083296248353679953052197409830360806492947530340384305971510406817637003588420442092482735737723370456342233088988267037293331793198163311642554969678137490656820586070642734405463329255955279204820325513152637583723065249641683282177632761232651404130324611209128908063934553552796427915246709065031866819539470851417069682550999194846676554696424829289059670803724519161684320428995831585077643176950503803808999185406771144698208062948919489535311968656838920339114490550866285312280265282061599358487379907568194052394212174719132630042425701671694830530192661303001148191310557164489601302276092332803641635939989119221781671201803916760106394473102122758566478462622393831017384066542425648462854486284387597410921755392191073917580819897515058190292501713639055609644714919863042074135380955761126229194653630274989492831375191668321389781449657328067012779581323238219460831632191381257682884130989091848410954032119299098899150169368106749087649446265600207124776636434496751803344817312799124938405606188924847645787908438214568589064421975730731128338840610714175017316591668422083983399955776129421545560684672047910132806105834637910631429099467649800167806231658987727518240400771275322250518910764054747943306038984852963904122645580950056987193232069263732053189821517917306913956950138496154913060919079689448911134236238955858796732400888646496112684001084164645996231203282258480904405594435198926208373152869567707868174824072555519902640627343695098311320785830200942131943536581947018409335995932568139068077167322430207970191657847736923040404177856973852095744544630027127792849577121241110257562784302697635336788401842636726689590823877429738189380753448078317378153058675023921817090267616528819739156937406090422177589935413097404043330219975543390224796842743540505504679076710738832313595036356691697586835731202142630866857181934790939871792922810184659893929716247095064077197547291180021080858121273142715993646410232330626869590636826051644041629959808882954537787436896788634969160408703721586024067857007555324147769863301594414192452278288186354130665052125855702769248350686026755914950331251818688611490565886914121224828009858739050604562647546753666069381253744608687679913893331943589075429566889628893905196850351853735613196667313173451123354424558286785276803453014410434672184512583982728021455404294082004324806391730352773867306688615370118602465550353809894980136604352588977481993934801607112210858327098336103453639372444207630395792729127419929212327263365887118484909429860578354730240133381364305318935966139837231520724383871038323855328350024042722342635938801328774882748996696086989362822814686352326554875075603735128546793680472123968508310893474914678766781504573863486839080752563781008193449960966734661238409907203353398582268186757583334877418593035682084707335066963964651976732957956933560058047552684592967140886044981582754699208602359464461936824652582381414403490386212570326036529400979903171244662678344517282983371461342175610298023969734733991681969659003819855036421053924735843884711548059890208782640045615252014012670991217428703660059931307917178682779503759066634483585857253024325789766633921467730168331558961692760746512856902977018190341041136034462686505741696939591925856974980241558647050452006090053601138556295043532923392324261732660351584691215008846400937206359648451261850652957110284875658261646710360212896041224860103226809201249419329491015976702774188557622361206111234629690499926468743935378066636427030689959120488387981042212690571295910640905499288270295103332188131909327931186314461322790841725235206923735149337935696335685459291371224040687697514572241624896346696070001207678862000982998335273701167767834806956609803782736802280442126322747707334408805660222798818498038890143272629046712237223046593155446698413554889082721907249874940789084721210363871924965524090906209117435605146003446537283172650299293113177111502080405738893173869499729442773621631200622986948495708613436610289634699275489060895256384080799639662698620435695370812899163850571840550546261693384245775359309853363896966882426337972207595457675562818154318702661690949370393520814335489235717150496432349213755361325784010889261297200257796941172730098849747053671275881581791455068697915007154865854842516986816440454582358406289266522024954970063037916824881969625570574494156661150440946649190647897616273899745802193694330917872190643890764081580668648194673305652024798117782542602941417628491347674047966818071808136088603877705649607498134425821742075647065895722778777806390378657452915605668771345030575615008778594451978684686192961032924488862742519222858598144529176716836754587930175014517084684961719628040350514009323269121761979181598265295720536499356927587320340055777224495396539997405132939886969506162353456159632512648599366834768246373116731077832990359416998045968050556210471499356240803310586432031292519051396486467149345443079224373721296283339739339304934688235222045481123283153172201837698216484188210914679314810633875335964798065545918746294707896237818726998765513177906442990301463438598395087819586343151049692195452951497974240450731443856803245295094666735480710128428750282594290754725322413272927244661769777287444036830758406305570116707612399831489524290647528435998079897027608858433216718263195646046501749060957655893737864858959803324250010534121696819167155590997698476865764577899582504410744115881608668409819301289265245635028330221161465741408794565571876007868342522840878324886958565043692837097187566242685598801623491785777281879087631759523870304209886095381082401314502039410761436981957848574521601263504159227882835589527244492981397951968008554705217547628237201032175282859925438078976455451668902887280062003791747450074430946812164632622795847198698838478245822674523599331675149819248174198489651758581167692405449134559210439086109742584713820146434142311627737865279590655709618800482052749555104205329196507339307402201177118659738393628942718549909304192691167513722010067566753496281353862950565248820057470071869623639703305462381931146609470113922971483770667246467247430823453865547002977262449982745206479133424866892561787833889453419500001450927995499057556199338125226668453538886631396717603807797740358159874077532567916847731299754220758650420441641198556353888864348443160910481436893918027135081463622528943652401621335730351400748670765978590727378878311771246635455188580077660660443517324378780022741771318668416503136170449741740205028874178683704557324152696673668763255558172874656816880785492336580724983719673585526373271849912555376915159344255176397662317014327058795864239870602151962892098512450702312775210546833558530514552927693742656095925730516001367684115853923414371396772760394510813358055637565862321622121477541289107259167519193493598965066563225087072950442236325374316264648175435200060514959975602458891137787521711615138376015087905471934894003691665423414537205454874006836993633246407916233063239210826928554852779492479622917288793687320528163810058229175576937990223345032249837266589512367214956479498482838135960010698958007588877497532018287798453688896247318052616251025204425236496957707112128348450615412622821972771441056515165269386075495262741845463536647723278694035271307824428437218266556008711361195951837634121212565380780108325260278862096675871397057623123617087813296287749469552557891436973389695960928097610576781996473754088387661265193726988168378136942112815160475026326829946984835489461902943596874174880344902577173293960091410223363772368670782544784674427971763273513159274464800389086321662559439227398860802457533606253890659388277674531399310951238059390318175737484516778243204261088549334025040042188927601471719976059964142635127094789566198453901561683489229775786578621759266836598012813777954576572439303021673419896591257333770616111268071496592134222310133809654248632295397868998391832064340535155588423586542221799004196033651516948546797412470385702261664551104944718711128850698631789646930633731212566659297549156998348278216099667919535645242515189919300282164597300166956346609043836008904745546379103143807299149516473627031197165515807701867095093712029475514232785184825561637605500307460161557829543278808995934441612588857776340964110196212776774608484877798551967369198577908108805782349440386462468088528792505320670126600632189204664849210678988904673754288147407074183787238990737106335801380069994569450662381263585117053665388229792023328193354893223981521496931063087777460470603269389707495922520343937880277570722301666546011239952475744878013855932130593616127580013078926344531727563968527096948700930978593134814668214795587489207525188464476362344277367774929602123313044296689770417681716338417624653366536443931947891378875958026412209855915589373397489162917196240103227563567652093403663585458522376904998371075011469640145929085055474249225301848284401581011472705825017783394258669954393402572456385366250291408203508844867605100523486670940786166091557932207571482094846422303211519060520404137168535163103588754070233237296564397184403889806666848912757557639290665878572693831878938921160186684130536409667499971367796967363066877110509123740996121273660995135656716252198530696185034634787724457616922363721993182024730323507654424628110716816410268832232613250388469774624331695195348695988720993003891662976590511069214372319115987904231016488544567735980653042956487067958867701954121119391272445754140627882875248504545830440917196278233652183915804505497921322643215275115249657470754050787460328792797982193439075180427837314914661317069471832847471671418970549042513665678385940093300687410496149971954711080351860977376002051502525502395368301942437463289337270691196053467814972005636885563403239903963777578368693639422294839184315176962107945012010880630569944093626149162699452752479834536398784409423213852678170728156397433716240806156437609050476416135854932729150701872080339176355791724634216158718659435535794378780643212572688454636026625273804075477476319287945993076274307780625321947892543760672634293587875360998406854029982713693791974552899202758483246098724017338924189938754122849068393527734087576591041176278940608029540699479613200220418912771529298039091880912708046641881234933797432451410995614981198377758741083596708727635206043544385647887460385386421864928440289217932559095715368914398280569889848964924105972486848827756098436279321483330254860888454834741340625176062765995662910428474105501584613158755852545908117508290805512023027670615391566681414316109923935660377962830766593826979569847056141799614291742313737159778750624833273317669062368102243349461294840829186518660867301218541747256957691654704681363535134650343568207906254813984980400460436429051817641703157722328525878850458470499904102753090078916997855285281839483324271574019041528296207988096768040024239650334073555173208733685723461244898345512961216035613331847754017881362529276295611580370293977765485280755422581666145454781891586017166429765084889426157154303663914762145612883542511162059376338128553855929593537934517877295582264117095942376354091816299557026385064101553596053480953866073010175569301804500759805324206727562821763980128237750744509573950075515748174460747066630384587887173588369931152536132140477346058441620738702779647142827177925346413278582349662384690177620716623096387667618693287947304988029148316651955262182734064234174059660884086770190698308546265897939326953694758588320260537994791196342446663072851025013556246962955362339874675273735061104912655921657594195129185825441217487414019655914132244395823191064743985613865556351302378626635354597852897156543011493937746579082785401297906618607004995917455985103339531699721774204031915524465982254129561707561053055084633470332406758095028146530387626457912896956385481058363091989860076109662459288991658455333519416922148660061831399016190433790740538405215883699648614033663929697854228172001725048538976410159808967097694874331558084335674197605294750424618859892784317738642790144255409520435629951140469021918909068067190125541979681432471453794602738255689959227809775347905470034341444993439444138371595166544529265983582636629042392849220376131001273736361452563839842763597324690157042449419364557120599624661258561603373998996479372270775645209528703709905740542597715771708106272616754176167084232186411134575657001400892606992142534748611849741497703678580532061432862469659408925541873043715169334955077527368061129569702564902512654826434191555483715863519056519972764380207597141208767756662528712697929281846373654208890587977857978431562744205929965121328524496363106326881621918376769815751117596354812067753210461289016166234828509320223431803386770417284407812648353725237444146369344123423934557835411656722292505043431349788153938758308977657582768026072302098294589871146142509301256493407042446436603864866068214982754390583008808483695681941402772128099116281996188559210942208916838510114119104761392747561948129356072010701891062091143938166432381450670714679838385348982030244908487295987757427867050932803767409105450184057987213879938496553068896061301424032434130526670934184347413396998627170840771740003177226688984137700343174684930145748998282851862348691621706028103716287755407439768518358055920992913149518008189975152457683038226721085403176103839304971439548194230438441864232656823403159204749761911569882029773900493557063751878937036425894352757619890436446845647000329880824022427731936282578032005404526674508211058619887668176923861567832807163566032284793755808575123223411477358559310807548823716915438602820965267961714513165179782661542376323754971678076208166053184725374389711342541988166357016851899251353347967691587024593594049025090255041380660616310033308407560121031426316072368043252873161978688664035761146960306015684839382348684414083828128780609108919962566405533633540998138985305538901942372545054996046851795234268687721678630986196536253916926699916729316070963715356021190034668834802378840165089746009102693540414687705274354384170105611859104206210092492738908427014349862951581898350373000819458366276275049506716815289943570526290835232696778613337452403480478412489766624126390497299708303270213920923116267505167640558752046873295989017170616557561565036666865641518482492522750821675066099864660384888678503792714394992812735170695249345531740727660896333722012718300720334695804065979967851625286356281406828394752324059795775495144299430433421173264859106458007674763267909534866426976903474680575307045399530290590646145489313826026810491201893718784994025203069420852738792697008623516987003433014837857970522440720180878675530273749123667627133381664903671929473169166676910304687925638262301132574408864937746115517028868806699118160165873394579760909505676953212339275742245641248918791542577452099609810532140974307248495057660610001210139014620236974758527976118841194144615917481832438758197836156127085713705645114069805509326526905271209346000727019399272634454998040869658677150069534425250651812699690249992330213658886760679105251778210316373059661160256893913191416995343540015759645340161391539017873149071385668956602108893273389010750618297306060356508013676996576719212710376169515032952796619374748822963058932625156167384700860450446257373106264822333636388114363247530062585230146860597042635295563316047742147519510604182140543867330379413893527321644488761184698264377885750100674400490864043745337703318648442481945497439264640885942588741868248289708001265702131882269251816099116828130343662897743192011421078083622078037674745804896189186818586173084967533923423610568769818166705219317373325269365169334526480740168709025977130322349873798743936817507316473241962498741539904406437962252251229478431091890325860281299423629621508099081771786205473524817959574047661649431968945335264891586407119917428180624041769428739483272494914021969604280658599748658879648470385971559238784018275620476454717686880175469522457284442289511816499362262261803489089093951717121552117065713667664839447880992870008812263179101297485254010808959553495661771498089194898722121818123202690334395402799516981071578503369997699680478536572478656770197959582906704810978951292039449738171127529364088748638559486930981556038496868181746414365646519894155230390364012711153198758600729061868732581675705063325391383220009370183968236047807240010475102981855554110024851930917265949666728522223700834106069667567210980647185086256466648516879190720741167105167749347065577838767255033645923335751099527543342446431647812505020862577225786833116038724811069697775260205428059594900376464032320485681621114886713510079315708783924394932525238609598770453478213515652743779280959743459782073825564509090276223012917267211106461150656084982644445212531345943448237045224243721380115494116610595698103773983756161753539018787463902581476202384305770750920236550904835812699889030603423703777987862929199285299799276795864915375637343895834192698557029270661261984621297971224395764718029006533590622359572337217650653151194280426918945265239382746008779690487453096090848467111468429726174171885832596957490222174433922075650704771864753862940546177252350955240574508122421949056671818789045371698020743344881894342521770111950212995047177992567196236165723024712506684215623465492462903000564001320463217938974529254000565245772960503777780213983547836951439217261476086993534241868537175835316349747940043111756384671756938333163979506724807849749936309897792408860731435622761664118322681518914957958410572938055994539320079147426675810525096337505512832955170575729834079744747322892397171672686823729299310765403385926901735139804454114849916797070633043721390003352794803861804192537234293517614519535884145082994537464621932636028754723269959363714207420318783854686681129931177566392612990999697706625437240767120590797358166248753032512735114222700993656809323310988497926781052350398787576744791167015926763986369228258662230443332085096072804708991250925400313382401342459091358795576289182852137641605748869173015416434328862954570930057483442511554031093327423486123636241441226226462414866039599990069337130294101576469287909556085800112279121781969943486042342383590380302287189422041399764428995513390051302016694002875029436137760490842606921703298507539970999057919397315185975521774712475801484035697404684124936895943818275585957983734025476047253737893846855652853466606765890384179720679469384579424871095838440928355580660807636389296156422373707280504577431779870143222700180356599610664457121672283636273953947687831846747490665248949894402977854530268368526918465248532555679384239665975603917763734389963312622643506785995236279181269756554611904494565749034700349841862275007506281596018839071586020470561275284379366282235676568137758701921914131405451556007255993081682223765882451188059991676844520132356802250019035717908214090327351413365814726698961934903002390231274011227446840440203049714934376953468202377798029453845561241825218063921095992253644993806075058468751044436407847584817647663821484397236107504628967634369038527588174469022392168452615994231569215665598450081474382815317221731741241692282548076825803021747983042621352863126440507563994033569349456399621437758668569556477331784683275625870872215843538107149824741646006170606362069613383589486362943403354648233980379681018583651585065367929843973302948145217364950756408197483154791473785159238598805421323713293693367052758679312260774917154433287991222728614203307150972176067153740378847468386578927068301876776424747984290885923004620385847732844220336387351413572154258854756347768315956389738129528964059911254112945262953135527502434066463377623260555360615586752125441637501358562510479719408207597403616033680843235541224478407998709684993158113176495351440811050216451306484332137934568078220852242223881796887776180667056724069070143375932163914157141756107685244228508837087697602858267718684549674520473401789502488956986014127948887414898505601225549995934185359521241072187645039431212646472528886925673466769899610559355520449388357014635530027019801505928884961156626215922931280711109608214803919930871259607219088347655415155730334445201668341686379820540110150687763106319794425637191035888480408231619565482143610027552624220707126537199729194780045525978859192006973028093391418035459575991258456224233568135761621361004900950567786045792236160428529133717017971742067124635760640972721244537749310009183615069579539725779101670441767037802385880697735765524961615699760573885414685443892244120851980482244851758859897723264267893461465924427682270816673533361877484142137948902340898324356200485279623270185072747172189565198078696691323322881131946591075325563344764003911019964954082740264580362515395964210843026622428807978530451046135330011007715065663956585925636673318265326377481675692669301511027356050317949368186976189608799586822322060351276466921791940902448021841717412410853721481359099301765968172359090873747297822781189083553613100890417895069584241787806451399314056271177981761977283972647919210849982968336955019648065249050193290611258973344422207626213065167550944591619856271039988948337336792035802770740152168352166352448516509794036643286672865417431059827400766688129782319448202804299097410698445535970034116742307766154814022765172323537598758770658518919687090946785119180473744868594487674128051761131971082996134634268630662935268814259781381383662618291698750284604984740988526509599054764480699037482398105668332555222466104932019948661377041075134478371775511362300000500505875194780498806612472581231592312392792390755167433519850378129411098074168786137713207566795272876834007135157476090698428106600884415194180601118664990354023692495897923272824261160954808090105072866971459088390606120427305975966846578568039010195556364891108884543242150771329437843604808316295575144932365868774447144103538143526720920403375345165422863836623090113672168609689225585609733486267227246700888240920034349124961973134001774542333519076758281300184767207760620731929508261003677845464649094085508207056632454836876365513925070773075607554687759193283275723199914068989742772717559102236258305997369225813837981543349517351126340408703287275471079653102800799485497107162942316621065042706175957212240347568481348490362262638711667894796863934946901196328401732797708010770171310075101894278728998661047249915470215878211035098320160434627600639269007739294017669417012453614658863696261100986546657685263201801878142784241358069249654619957473135589713927080991841842147675559751316584347153930170787211495446705342712401306279964097418476971263565738905832165230430415768341720483346074678166526079059342914924005384195423064246829569141240628445752458785906218826899574399422089764219503011364172130013419305396652482288930131354697079814970022399028461400625244510078181818131688858466261252472480246360930173606046617492433623001767298088042279887748199041212083244625724030605407716162043637667884491455441631957365219571571799129901671595627069717328318845775832770853034215600562934600651797300065055467345101669860990310023112659023946606234515293753468654446508418041703080459433937460968727771729265738866425041693105616608181713885737447138095149156059612636029789868070056171962690278049731420306151389147924825833300049709284605865346994882048395786524629720844841356882538960243720022551689083077705138372410845954212255142729699742124228736225091384123877899362112591598527871598223311693854381568488360008477833780178232425931014784194793897438650461249910814590114038168600678071187721785266265811873955561312526246586630840245321339299440714834629464957979237710815472229199573944145201446781230895216515175552700068121454536975981107266782487903620874658613210717397243460731151197950694756092252744803474823768767454116616224237019437228342478110678715758744543425178948504962204194893882264895645834047962574273000383394805434605546047523203216406147088324735109912012926917948648377731930501391813773399331185848191154798644133189606746450093678086211022436134973256490803569247567981665528578148855857524959708938702896432897526746433682192783502813552551056125653346653657230240553072397368248698992002204729738345402509954575163459463553731491881711977759124525174556592318881441792471914753359589922059914340769858615386649056783246041996834662784876079930594832793520256787709246630442479204838173946450329096672260775613354653496130041800517301102420290659318158631855866216592316764737754161706648710875653029812555883468544025314218671164501910155479856241441330202249314120000365593226104198830668604724015954030370615879411161029419800033805458318787236170225575103082101248848952312236151427007249929408681157448950374987422810387837641766931173474302526127920857330642948719306557429890380476877605463301784352569929758597927007209982148915324415079300666848040850475756741642368737482024064402762748341337140355246285766936487598215516783218819847212420626687854860440300005186934468944729538168434161537656783364436065658561265771648687875071700642780395280697865920685498640757152241537153155514378505476943810811255090466671982138937899074843738937832422903261977047272744470117443228168037705892161741431672052682946611035540372094109765523302930899057615308884922570817090694571619271592701739697494653470649121812245072562217278696248082378563979367011596263639806728542508281029373227300809605542263133601642066920981926619096023237954524966492265393597022668078942164194402243699395963275439232257720358932995502395149506579530190587615443204841674031630880833999232504645446165714990874763577544214723238192863185455284729704460317226779728913715383315232604409011218775877241150852655382154903145591245991891442374476810934095217046183194164347964055278042204522126658603942091062709022636434385367061094174250469122538447559140925158888923706765007539020651986035945084160753539153195396657614735126176943502110470672186715143818232432135572184521239905221726069880662236026905340901377343679611128720340708843479381015908354829475567648337138047063388119507338159337474932050646216944402378363168202389361393937395145201122872561051760790012662776375979366645030203725105803634952598024848817783169205010946975527691524501209174873855209160364733508205512312954123658993850640799255569895180447801811747715948011273307272086762536246977759227422048861179655457678758075863175473191225165543262725681330138942782347179789762313325007227719515696442436101644884717849768669214300582975044041684366248866030070243978228465637065289094235961329811535269691874143736380890787688280620795876110139958635493645255921882034906921333700913535073173910934332604925538152839231112702237170180245608266801857276366941854961249010879693380572690290302328411134517110648577672138286736622487459951284341904139713697464891504822983416673545500238849771064331035554430775082022319557825718295580719634887391221772404827837596523805412016102024113816219722906997109360399598451109387808144728074072975149653167005486335423475085000552915685180235860555377251726883126878741545092917665505128809298750348092898453960325684971947530851455365551555844315195274233663529414180607889528607580814728031983937680014994059454811410768048893030713475669087339255760724715806436322767726157717060730020647464586112677405160277839056268470952251124987157183273791453470840001168601598149159030403137396602907879689899665603751378638539941505189599852809644654510780767240563013676223446932884911504189849228545048454557748858916130072724424194983664262361240872814825605928960673943183184034200660746967172673204066078784371460759285575593754312506727897034898761794333820855397087378543494694917720584097103222143775832362661841526529471466548828574105643744164577944627844238905769046095053117434397207300636009521790520486040308812184020259912798380576155102112289359124725581063662232962479750040310785168092908146972768077287617127003169183723957437362699532312133564071775347061216651796622721868643830630145663645733665799812968600629302690864588637269529040779879025705048106405589121584100252861928517394297505264184065294167162921928920181951649397409284433310232076604444725370933380509218439688660054762432655464699822505535064684472740148289050994847082257994616820636400978988315474224101185550100658095371425142117659603877244382285930314484057540305385934745149124959389161727353568326185070781857501746957102382314513051299795083836374047208132682129341174750918441341650376054183519811949558695525275992111303413231579957132431870011563424410910397517961963714032416304176929940202551218122899359528663862438986862294801384834465243250569772062387082558900577322456011771319459272861646916497571801649998115848660075090809042769814373157216209275764451416010058997461428614973500921192652951706364867351784556248142459445876719841082545568476042158685513506668709965599395956382870194392579121412278523673019581681343172322484315757339114186550287762068403390379494133932343189636361906913329552368242578348184946887309499357473523536856497199745671849972400017246080416962983895036893494988623387981510207568723996937092740358891399954383727284354774946950497185803666237059659940192463372104736981392214638114359948261483413849515758185334739545582689842122619555441725977595699487448003493315341020700278548163142917993591822879030117965953668275609916341711762100029024580583555720224412087623271851498973515037776128855281226997125355840352171794179250599812207465373397678471678144941477746305916297509269850760558803159633548824462211017055210370512254879623544357124317174107503080285716811272889650404078712446126500941676688239223010974774424163917137586035401571927631862303530955644881751697308355521214586810022545419986459950004890494670011686322150192511190892142904483470299537992785330789920551817416901732082679485277002782053599611276346024238522247558463569302799816051129877676878794844508217480999427505498580063860433595054860425564408813262243354390409986411847004194137196633589830211024336964083850481414872997172151586151073836482631671288785405149087276183913571686961250391680159255712745313907201198439102825943481119965300692276653809532474544674993395668520935670779330205425280390784141517629548822632599795567157590812107593774727738583895353738724840484967925842137981546842317860559090234394792709935539338785059943357464452932216559219771307137581215555453796920448400458556655620567255247057609618485536571782782891287382159543084503504403526971134993386834824086583301304828110313825917024904954626246423663741050683420289334565613444968850092513189524748367496652274485928256477254457165563676597355034465831695505457158090531741819002956656605016421000034833468572468950009708558773063575108060721882019535883451915922058678653147908281746169309891461396076044701683777774377579391863111354951087642670554032156052757035403617071613004484066552095711475889519085181710449195601316878534460048862124669685286764887533924424492896388373129486866166654913974508242226136401482562877590140655583697426748983367653370627374384740894883693673618111947060644099309675286166994672444873353093036547732178662630917680012900185206932145574619786551754133565702372386167923283107934134061437415305274400923850251421750814888368054683158978389725813213481760369710010449577682875349203252106357567651486149532564503923107154422226950838276732718620308233231712011819423755703724707422020154215186029309819781556569138480321564848629155552883876261618439874014787445204709691991850410241453572703596626406647519899119206588826301188842960884204518803141485252682611928681230368747284018130482932423434469663105391222117560251415521440635234187948961452635974243571957844133963640798751205015996343870738985988908572456291141928251797863580884866212343042751941160979335105131906947334404895416669356003537681036857741269409638349934569882312251185829172391241831593335534140015220233754452644748219337135531456286751156810348487518140539196102181907827370278107486252747887918303692643547778405241778424971231989707621868615981038143399422759189668783541975619602101109559373767594198124659784650131667545806059301630050919945719563377496675344784172826214588247558247336325354136501405008102330805819797206082943341417092341798024855455502730101576464411746497391384242237199583149900447298991436859152754175411233634836424872134409253320104320442872201046603099026925617548151158536869584309894108555843177672190093114140379387420312562986980962570427577370110706639899716497258827718498574661476361536689836867643828526709057179407985805553269015777252530006609532923820999314029709729723842593765001436121654033275923389560038615297707882988411896395124641053250268934684234229426101843438880553976403262699256620933880103534749593611268404167159850926990022796543558952807867129610736613069645128379623286788510310130492941370561253489858776270434892391752124369079951446850191263744198620229792949048383097918989935523941808902548441326909330916582516701759775480931793968661499342806333843892564395262334253444390062739052067766211743124530003635937360208841115758753677339940643196870145484078516793518832608231695451528502775593653569057188875846790812544581364039993748082127405552561880243317504940938771634038860278396917555062141521726262304502291969488986492431618453070973271697550295697424457196898967798250414885567933336419827433569576802961406623373999496934063868385688692793026089935546178393199026418638525612544292348699141758748470461069524308668034360130863269800870005199235124008284468161445043273631612925722184069581164352635531934682268747913195031220456399606711690195037670263645377285041875233438131768665374762198529797056476058754535974386306018701049981963098419311501870548256673186567227801179587654942658438728597942621381370249411486946813908187955756046306153274671325864746928820061855384795460103454901264154186140892222679476324463341918956280423626287882174271378973642101122188383516028350690699708256148314739621891232442841986035080875121992687305828002064133054677280813330160836557286778939822727861719043217188794532785985755935968074040406544335571446123198202086240952964088492549088247478864418769075392351172128955397059039638677611013811117671175569209252728575974158626938025693804312639535493840185597509497464798062431653560114247018168229690198889221754153073201571116054769705166194062241573623272779053334934815533801868744482206237045834944582643433111343949017078476894430136678172960995760305455536089873704203445686930756489620469200645665093676868576674047069176913839775330079991022563502238058765706496969211330661455558848500617391530993120156815431541566139901623791168736511645796269035164311634674208952874253975807915642708292123373676251344770744700778637093042485718916829815604201488953570624473434951868226303109556562717269445210662498533934182802962840477801367717192685263024994199398650716852603978776983590831954018028560701746664942058513266654429138373192526066704048706946290822525749533769381917179936437475433562280566028247476564861152833658665247387409952574874376782951805737722059719949361847820616062060899726677217650112797262609249744468943971183690520934661440395073964810842977085029905382647623353777373158151677478601590953037384758683338358402777567765635065006552285357526182331203486611080429943657583644137792564738406659654424165574474989863040675004863673139305983494748822220956124569814806449804157945180756508881110387498484044311006501649461294648136079253340688862856098218074160255135639732502335442150430028166188843621755702066461329121915753983681540259878053647639969996859043017228656608158679333791014513200191414806151602274915644274470535688920742666195683757064934720139820637441609637035022705672595691485145313197192137676947912838352777648699154666866000321217871664076748311174385166793548597385291128071885583415556186982229979251749663296282852251173476154606304240642498794387634841047385863624932579255944260547715998656609454696837759774012780474092442412536650622614103613329347477997760091253390780688867104757525073753295780400497447075907659694392586850333336332376660040593241349699585702428660294180300002358748487166289639609434051810175809215121399007786428476244998426702629899355914698349431130788266213773169360622024783728913556692683541153425678196467761243945544847089325867607384688846641603062758878842493748163675470814009174628931357981745688957007236963310414637322887049719596424219862674514405387588823578915806800046731784801193803423887018710625485222518768561551017212193526486880540876245903617348416601911185935672538379725995117219215664373041754305197584692826020507386273522322868292389667997198129847581069060348577218843703046236114963517146030211666600064040876323568151726548962714654109135291481358073633006904953692797519346253134804235535732293439984796845930328069308360555898092540570285227505546734445923735235797272395797042212906306583074991813057800986340192920289239067354213682311848572774320234476401913090507123923704989466917577213294670481989309855689242144285248217954726478463649502973944284686775933325658069949120458566655834032055582622344621662215400416876845978699030498190955096320503649582684391166815186430116736834661006381561572493545157974518966659168130691302953850937840185799989403477979387367420609034334106675499252397134917819503590983646482331654114437955605790309462170222566056448367093494860182838138792593332311026143626347676333995471948016148154506150818138058372537786028409582838509312623823533633871545931227424173684016696063408293544155922086181236302872639671563922521869461061388550856795644621894990663688027027935831922105392242648316152904052703729065009645432777698922028822135598692530610920669834691999929800954760516287479835935034211491077575826443840081585109918044869774778357768149742272515164251697767767915821084994576549885892616950690618553284090324709226065967678175933511860878987276683607474406206974194492899880263939225272594728240414994159099019970913829021718593467174958127029964612677732841448218379919302935384948885331250095795708172206868948261334038924186794258251859859959184829605462959516043521956987200562335741846214030471877887328602978661744323730021350726549800140964510475343915096816648191261574557006131895611739932993685803134550151172209984871366597310276929399984493096548163643010716376685830696026504957990151383255273461243183265805163895229965035840073440095483154012069452743510909992204408197366928854806984602455727920630452861033347059558693234211759486580939698682911237362812315065744030298917525702385403277632102145880820172727949023097252340735568078844186279218106143747783122415698847459165607865921882464210409102435977654923656835487423644289452116667044481757640401460587825370060874951467985224609425922794514817375210828325227604317796575962034261935919853910189835441199362557296542385123791620375553006039693801483206275358268525416195387535743623644149800495269685044878628585283127224318333491923432294571328314841204535953728473087975402702198355379278791797691365405262092201450846984944019895681344064026092620892637806440242097696937599856132671824004736771352980448379008476479654444922731655913143200608484867425199223193735625727108240006664537624716254334519241290316421478184154735831198291005744874790228825613653199649167833319793285957807601495954411489566694641625967824882092610197215715725411075195057877335181270276617277208899960827314894736804035272201136046676839757788086830893974315161243202722031090482650441753909413898846036096908541624049163028277361345673451948936310404279549027303395125446322398757701779502454910066865165300908855683919334949047232997478617202451187549108127909890239724202500318335258533023065434201127377246963535344191926360155908976743640360441210650795714893581838129759009459305496541795422125387042959938961891140668178965213805047255042214506686020192604906984524618526324689787152965720767074124518469030868501683079686408802196243929261865189274229773700202980979000467628404061219173314407417324129507829810230182539133988284739023164401800451102909067031235276664996633503363944244075342345152719460681525298051792898179492952380965504244682618389865128525036980181508134023357295699269357222092626850819541557005151380867368738978247188261715214012195153887906054579426118397929518467537833074108760824449708258612394648032634510889305019957444232038956004838916680312758684454287478951198987545351118821868155436604150582295920323042143967589525791618601413991552492774468288965459558951292714816707699938556526102366782835372939238208983129452401291208028660685460584371008323933244326038235001357512067008394900892824147016965004824039052528069780902815163388788398236059317459545186499637436552339226396337685658739328109512204244268124224973572829120249376442793078209785369497619592757163287904471691546046211838791099228967072058034741199607097067117544284272175496713855717766223004158092437285181197100425046406103649577650229728021852917648174879864761441550446875655333802659598698455771234277770214857013953298265774791985188522813520985549082080670959644301786798326346467408155002415285178449435521936243724643908482952456167817753439093924947237852797572795112405534017932848499775551204986360166074611989482946016925833736165053239235430754760065819235954327159652151677790758915702470129332924509052377136660002685905032178238500857738973240871403752543101986178087208222025338890114540798612298433150899341369202969631473994705148466227727573209885677597502394229788391086531965025553287042840440462203333646072999133360000590546319734702239252126091980902298831074112874685442416006821363703864054186763252200554345090899850137283694527308314049248630680585458471618408661667042910939130723272871203846886389407352612232907191004920844076669659163713966677800153014566994886262888981269802184668056273477945594172501237576683378446226313144278183011172254310206107323004946415221439652265313835457470744355250609991198642244912571690685129337832324120232428334459050380366595314285591310797341872144527311736773544337494433304455764794601673674577308546120406448133708421723559024751270114739522452890959431477675657313504367889735883557515359153598422610970990351878439087643571926322099539379023419936973691039085069613595591042532970031274542831509269485612677074738397970685642411626997088239059379875858037106490255358865335570437420889392858862607007245219473593658867707705003729028898942866913049810818563246859694428123632393727465802767493545227376947834973861175894905625086468995354395415985954485781450642092898422778346212396177306302074705842359360371489337234959380501302071092553369007645902081904716824016747844708775923176472484481648095395767153222416621333794526131375128096619375289169230394988666960141386720721764043486335150291163532430251744028556777775646459991890224817957362913558732651652078681965247344905952770685457992289351326994117386274146814893643340432578673370935769191344806748569542847278867189760078829208263047030420117314651651952057117584098668143047168438158224938470365251254160067653190662265037069891148006102436055243189744316898109881589488705271455444928939272592458025470924658851212442304429083676725000159596342488136569860245865035347693128673439326517006445094144171622639458900818051775352519507387307636200700279098005241837982597636981220864163375218680982402891325739858457319096740020527262072661546169960691695839259096881007723293405940540661858772596718197870676537414739736875270581132785155792017669683114320499827967304874707169325099635479875438851963609523770477516364136720467804183119864606528976817360586199995669421589187934534992667987565720860831300181430098874783833830773702558408759737917344716699900453504310169618091571298622066803548041920677138120356696389549823978645911693315924062521794754088635497174578836854992696770589964210346670081288566690151462902789925944829813158756907422544549547318448299256402393137468701347617612926772495732230497159715370481466359678496574422719322949890294360438205439214405322614219383328356936431729502872114607556854348834044813707739129960338918242460407837772140750516157724050752906022087765254344928195187510985242971671578555837827412708042223740234079697514950511841319328080395540837793237937043437223218472011741176455894690267141577906517962643967364614568452941688001079736072707147623937585770044158370485914363974798658554765151294596932514923211391466441560141206155073636184091453863085441410563104400844714896118482337627639518240362088284855549821992767377774589536171237093397335308698878946444524822088204604556880359038543718763484209636039311251594527714570564671776829245618208191802756588624213232731487588166265503918964592171493900898935526607268515921078267008181673382406360533035797852613801059585859867083955219579033851625590154294428052854431629988289992741317890647313074034558090719326082485871690374967201769644054846954572524490790444779180008953984046921093756243076057109895642484683843745176613632413981498835623550967260474493597817318645215791318654936391063617774646417843749364651971893164907127509326881734952293554032670707988074924417411633706133082413849316345961078263657315473575816785610085391054198300381384096569749386093735410260253054026897965574794790113493817982336440637428151370074116268506173566344154180654482004164945339625755823870124947277044857368329074435613496153230223123620923433469117470688549802359071007224186528502257966949619339109678894309973714164274807901038084411043814706274895479181032944438412814710891355002131684489750100626303602964929787195685457851341751151081633357570685272481068259260693521526443908486782237662095667559041524387772040419429788559449376558584038696762849326939193306362022026824655101502478203626449635097854344924716442045856264003014162421812053859510591252980561515626074772085746555777104128613736914161587350488658014137247078503682456955089228182138113071860949204721070064767616243542196944863688967699539540277673430180442849588771282637439224148398640508044950181343651994884106558683808232685483591163266787986491097727048523813086307125208464286426338005171259679749713051056473128196400567835492061351439673959944184674560750379719407826933170371494663536224033636795554603154371961557368003427919308678561027873419707671952941618584365248146874619280728994941083285186780602735935987151711703209657944750880961579563122635792132372790323334526420005496345554252236938975622473324718921138662449388448109199742794576183335124255796369405638349721594256427710323160357466155443081661591601093890184090802681531450054057180468640957455013385037118213664935261784358621623231338473405364524973144394485611809290731686409957949671005720102172104865204954842260153530585723136148709422622798597508630973114651982514410562398350862896794704004241797622762887016865414774077660301449279274378817863596691343547822005112465328568013651391739007405098636246073708489879322482249257411487670508539892380547640379037233323936409818956020598271321248658397877812786313296813946012610900371557505584714324833786681157754452889995523450687255681322334131522794858217675228093425757790997175519677402685008809184977679537874050511951620976618735187904286336336028032902089955776245214825972647276685193866045249584567045904033158121459566727512550139614294727063152751158319654427639853065762940684820583074712409514283524902668383532224051224638406425889106779573447425777410704995682954675030060730978294926636688228778158115872464732983922272890570868801700620430650799853115391586743876652523090317242103463230968594643886387180561134391013573531341098739049460974725711474824917385650793550211872616625557848915196953914588148803619877099308594724151012106918881025628523688563841945919794622156541516989005119427773686828059811610756336993111235318040614310963446427551268399818569440888716206710863884726821289707494332375241272787330476528508351689204931597792570612004164074410807778174302647075714001118939759690611081606304184092157721931753620941050630344680089807436093377462334050362186423178217440750488337106977100963825934069460886137588405794937383532950305440530536799913307217917254924306285039187908868008053146644696014660531193285711917241465902717322853662187077919190707340565422818192385797154857330856553939316585040774700671522312421988772101471320545172295724124021676701247613551126680896219267467687901958170831888792819959610096202889891712124422007832963210715467799726442987888415550455605860189555667070120148787756486415005522192136168005401780280369878493387816758996232504315706390653675256389924533197166204452982128485917953616967177639196991112543515562322579136338411269619134332277696820787889288948569513577579425624017323502327562277362497593348632644132026088659472291140028968167434576480863597727659136270736599867858269774551442527709509374246429017292098631849071682822444809469305655542125326426055460078881472818531721530914958189191960148013462306544827981678792442020189304893176082666502688808611878401094458229196441849872819373970575146506986151020475808802136931308395090630413350057391525674976957368170526230891382954941675854418909830446129845729185163686519947103090201572563852664567672823448064234175211007008603077697137995407354304686989087937726140997707939033640252947091434728519334865387258995757246582378816727910767087780241325575642955096147696633112904192825528490275966081220100489245640926417132097801211049836437598778990630062237197551727220661812463975804448503148670493012376174556296391768861493661041027898217168486777435587106952595519757144109854584226599520258134845043189279081413042999080486978257084509635911159769686764311214616432004954189506935510923734303332060984963008825541561103972197231350273284041693273487267897352096885001765325935285566189270647365133369582279157397280035685747585378041673003171198652241383112102662868004600038982197298536293797017347199017269510397613323543826793836781194559807937505701101020653032010591790289846860995241237207960324552867766617275763468112125284124796349387867958138610963015106585483055236695323237479762828220747852010954746841319387034077438465653934901505286768429511689822671120617907675531388172133761765852009467776296148055686661088399503654202083176649126601704827300002860496404589085915654999168543099983934816157458312581178582254136733353849558075437369264233837983066242943541335143121518041407642228450510069434330293748512328948778421300634015000242111000259011127620369651622015996437694421010259830133072108694739219506284008806940953943675803871248045983785720272708727600751816737459211502274273332057747835747434020548122198472323985695929839099302237456908337508444466527148251510454663733572957642182584696096056527575574301233896785160062838006841618318614390802405790923558184895392628536362596455222176430278965906863814903596303679710652537447697805718675530044876602785497183536762868684053097457598252633473139113499204524269495352783554584634599140430168891691236668683578807721009889673219499548022846432594519831567187077084047908424669750768307393856882933147701153831395624067686279874516172800204060246710810354873350125921202979296808129796840640219866719575955257249497376854640348792206691632395943534837550954599809386274689472994964443471120098286756331912431029998698204056313587464529635450894440494983001230669290403994435051824702639893022041310124563186953600439969196334307504059176810865421076688496587742554827056390673307871664207391163884806301268395480442385304909494946478555424796822741214345927930817202747359290426914592547499152452554082916445584168796055820255104040062205386058598772273918351322619972459944780322754735073862908483248559038774920477426843448756974357753484566564693853310457169705572778618882918317551926160851494464539760832431324410696843263056130589745567004687974679961678233762082000511134033804691834710410904971559906927014432858991403610905439430043196743800910296058002851485796916192341999862247059021495543801440720129640351047130044986723755608457114416610162672324264739776442257039410946948515771564432889098803482234685776540848117748615293527119213133582884638195211001983237048025080019550409791875054926198033384761201776847129276359321473879800868037604737078974617989375657876909988747915621145440767262303688190017542952999239901498329231525522400658116939091332072332259595690411543669786527077411339836693791120230447144524506396616293133984787566661666012954241223995710863313820777550566031726613739857053439867983678316505167965841161248726128376348767586063755565737834171035509806459430536773455502473262475034031842154941982173555123794938657032952020807085802701698964832462290606510081589043292236942854976969905885954724298937155819686280121839121770285910862306956094120025491139209812142018859688886524797325553543839984502440206559434781509967482177198477527810225258380707039425539987418558847189009595278156412472810585968661365312250255913482264540801677393043410515482680281889323759730068159920851422755490408474536782784090880834999439498405682354751525890843092659217887776797026480338080605467208454357048949041884509347561289047086719233987242217862668516676660502296148215863682080217118846048509276786344833876656163386384290607536446746097366496357496153088103918992995864238737723026819698465224938026369155580280529532461403282262784833166568960066317394578679741353251978476280869268394619515938285623161924562685402945495921950212783771217981844851443912104939725874813206393350906108451509593605739137182102849541782207881569930842138559008951362804975612662881439901061750613856402058119540482037482727904479676696744566767555242850980370676403159590014206078863698328265127703594637741376134960910967228750750624181587018983642894168474375383819560475218487991219088160495810288238203207860991120923342355626364302498443488238243691816284315331634279841919476322406322633235851871965703977815550714271373724114917975142025274607967864355211609938526553906667712834309954320297953299916362029760766782497143380702564761532954201835521280979105316709412234543602466960660890323102992752441337261035577474683543849746289679757719100087612729815767740709861897203089581884452400424385651972006310647549016794894185515572221893301271928756172193197564396430012636122830448062233451886874721892208017602465184357911471113971335381246834662192806101193122932285960818762692337262794661955474285654927690850413729191610943821147564968498666578816549956689838758137524659195669200890886908432241400443344332268463100903573379241433552459886215198997519559674203803893585851968230685778228395446211648383900946110455948432233969689794392594649178536714435834542243582552663552113031393883119639371833239176793203479395259980941082149916021669293058535094032705453322470073045556017296598174728796504678458292280955026569992934431536880997035538076657198558631092444445910985736412915956182610706289778282586170989693557904874980752151021530066129142030462002737267798062113529168490919370565981821846654608668034704924620218818460174034309516693468110130660558739266018512948300076778719291170618737621171795690235824977306514046357947501985954111807766388988119753256121762343119339642167765776710482373159775052667601370377952507518177110766861697946690650193081356394313341752994245376094602509859600930511857878222990000445286061462852561611446160239001765353684425150055484762125684839773835795532132479980160649033103762490181400921108619988495437116482795419520196496555513032828036059114859006035689519900750146322159825435232949949245621227610601231626292316781552163962059718848943944432776243419274118287010662617369895221088880342369174221050595413960279988946742026784037243418699695121088418939009026940903229078577852818788213656866512536315090328281788377897746432139522216503412595945147691483329753678545335427736912454266378619711574707184366987239980845054339210902132408141960413955117623794792833921635351667752561544623201481255259521809227841686930408376497495540773149852707805029319849866844739329540876832953508722653347309424677289002013964568111384172104341642266300416145181079786905620934581438738465300237735694572053646669549275865600187068991540925303679442946861884331232047690852179079860802487296441874116274189670414151917954620024644583040407104442466614064318459264678208234034029449537521611720452921492853866811775613550403016156230465558262211788078318711986786177114877169296093745027593552037399081158139729561351688743605814281478331064372464319617472062446075022272099956171325557533909288291040984659521429498958617120344648835396501841541080906456095435296600864222002920711305150929943727364867731988358955905806929252429634637277715134837661807560282431111430298932216304320433532023612355754368923099365236394761592533194050003486707952980416524903708477225704688812952961344907246255422236219800643195226166856373657962450837531380811863798807053791172371653201503089989606035349463678961654342467664670142151763927200012564423573910087699910583650838271555924029221114246836562130970170488742263418774673572604276966211496111245600908284768370670588351909021417508168298766009364896447223187627662754835363829013247129227044707085924062726802467197085570072700126852657284879669351649584876851833664484203396499538778102571820325422959903620744854556740242449202326789299019012329950468960365189908634650253760092352730893711287653881920215762181605831279964472466664177034355498336408335096287435385120792565864854643650079008023310955817484967640182968328754744286853905866752346361412908464176689783851846159493818382114352008973211379062285917947276035899351677254611597450190115715972708908206124394937085155958498347742902913002486570191500567693169226129490561169868124596429154023278934240701797838902609293744276372467963440328043240588202143056993482082027971155702008764487317884172585535987896393172203063103252890306450335334621901148811008562245898188660270838486821782076601704210913320990814426257060463046449752605007591006218796382531916600604017600825464034274480250041071501055653585519397134399393946751276813425340433389854964927823965693979997379448352862546797784536583675745180453776869975325665022814078998162675274594648910954990579283626973576344664820276218993334701049514302074076626742561214952547755156819841756749222533131785078340502490167540844542671696234934139353947442193771224415526760667909080875319672941216763112117890741728388803949911056595387940092014090216382080869648351145905728620613791935390266924769343523665749226764320666951289606932643359156461400114358333218641625678163542124626201615295098695781408746468468905562701716090934240705867901576173353252372759202022483715971877855457787382447112728249918353523575029712415732894966687788633998147711491816670240849083348946970093633389440870925195296759079506305122514822707398900925612326680076506367550081969483732509019988348034316405820448718597719080241015228078203475384372205115969520235180478159792387684095081585769530107753047368497940166338534853159072806375023626533980078381402263871565854002880650576516326511121456048461358384951475870835450499214796586310348396212244357554285918170887393723765569992374779644347705669395066052129039269535600053860059477610735190221762163954495759877107193128763285390932100033092865329573224179127995506582557812821586425086809244041448892380235020937553901702830274284177206550922791869617552951376793763095735478245384809117932355899739046554793733430273290502996499766493612112100343428320844048279567085752108102520891901100497208055593232446821541519205493282811907125978586879893534395858985858814334269442778653285988769359974163975613581454098390189151011063143725719857077011395556408943759482455494830373304034661896950942705100577970849044355543951390185913865581620287592019707044081294436304825785059771706784826552228993069760528326233635998207020826462690816376894155477870081053042627428242635008217472146185603977641720873760770514478684791264461895060564233344842538840655124124616530693501233581991833627010318495624656653009703496236095990423823269657407469755000153505585328207882044663471241293281970806666685528103874102126805057386836606613363436636508359509728771499446070792278314987184047971701112723933649388492899597304191087812174071504170231827423963265779847046290293146444387073587121215425586757430818201160583262914819346626119102262440563123037602637174639555437311961806354467665657854392317630625200838586099966343798597548431430668898560008388226212539693679368878426578192341906936889186662724624996020161447407106635298051962757592227113016943494064970244233002322612346552567332653923429833771040227006844601054374596558357464320321692213889777939533826196041367692497201415852354106445247832817055917336536495845599151522278568717194550021952435466581610286413404932832209919533028528035309696151503305340342303413049964494447110526413539449575386925290670985339338088477721213248385670475742471633437821539182508487258839921314359860090664555539711074298377605602262885220702557960181950734667890435989617695612712251303665276984004702763277308746640006920484082784377819283518363791162478402308156408580318818874940867533238843503803766127043318331840502820474788334314473926270717106911362269838061861262565349770974254190287713496119085874477969225222578535750855516914084165339728526761870543725171772757892996840287526150555833453925816672857375297805741046937863786338125768452772265862955100257689654321142413889011966793930988804056146953498879945772011806064462962059027145014186853489944245696881936791166113910354745738282994339337565555228079367078931658246822846062232340308093778257302209347182195217561457974840079847477619118080662405598083490089827479537341237165539717078639102472941941315201612461922156075791729775807969378646743538381515733736722306659357929994841856495676531676689168035232937218492541073557785053371998404894207848657140163185491198429234721139706063639811554296265625477906976864082618369100608119843292859476323243737929734621325453314952630086134622407593131062498035645136741212209969281489813803118093719449223670268123134893858966026364724264263528992561996538376735433912882859659173603549389528960232479839195929456929033091121207489755266344596769237772380156349378509150510284998228653992432143380948722447939473437774981919275212126410231316353648900204449555802276442022579832963062622850551406617908938656990006748332530125165826272833102994497543164039506071495613792646661330967719272017173230085758035529952917377944706344854787689665902658394362295450143015002850378856602367833486093027709723173061199067174837393869985501596314238622766916387569447313560919467994966265043847175302786824488863750076396871671213657047285374116148952045807223856902801422390659760218187816324300578126828572899816737047227902447536726249223545463208877772068891523982553544864438815848015156430627601445275259998448415787639658005041149977315390073385648795286790804683957079553335288670237221494584471272997336011190153273369178305251303440063187158013424011540230196146319875033508384310616104652980844584358139941796230201052017693263538699443358834825174066335831955375561006952693991062086158970410052376590373070006185053574539247833764081569793994881729959018996013235578282872090242595837040358460187256125270895059654095524024746160720527930145050945695767093021972040270249166111940261886351461425474130072079952675846467913536424762767574833803440832881502951435976587054166040470666405029171440529238234842087376365114327867908535325219382413997913168406078026717796269790637382152770337697937674166292246757753468906702240086575305540963922137120410079226345920122700812400873193982063479640187554102511872012740576308580208306744994493635230702526105858385516098820419905754588604579336568138979782030573217922778564524554544319152756358680552654930427404846159487492415277910115712825586900433210854557691600659144522256942589651042674249930636773856707505955535697738672865051119952074702647064871707174347342887439808258802230373740659596834398051017876891820435104922218957395054109102212378117464422822526229486677349394354326144443933850688954203476800913550190879058691006943090044915485196491563597583787506748156422910560023682468879535108835150678277276677258025553561533761009970800558369910888778151057279532403767124642774300642353671146705930632384393484079230498912398622839445886930089989346775667581909985583520386366696358283164961748982260739985809193775122021692408483786592500344732496275795798211365871868107636085788905177949870986790774338703398623794176874564862535947469751315684125586093652452711303747385028251189448983142519319032556230672642802685424654086352118135688537897762415596882262171424097111937932562526369652876150835880320364057023853919508532627857430163520874202119040251808549653018973842483006501859569206801223334398156910044315049525098608844506841419506723093073471914331117691995352291688179058314728565685785716040972346094224527461602753914791792263270366623121375154566734978593461708146197378598602725263558071033703812035646007617660677552327715836565997278921421070150516241138509045542141718651852034162598906731955014739172152128917409823019102078714738803666171560352789594791489623822535498912281926605502923661844504775635475361737889405450396695912508828767538481016000448956236110757239822305954673433146166109848397516690662867452732039470256761751989667549449593746927010420724444213914723501144667254874468996778816807384961249985586622689733018600573425317157675716992290413466147450198490067976118414559903358408144831319255173190259753153078965946976479163879772542806948051197406878337591071176257090295066347382737206840434489674514125772396637167467886447490425147889610398176405459807874014192946168952134152693465261561089134661856479050536185807758365558958869541029071288513889487004792473870953102269596964843147042014281270602623316199050068224286991310998248164368837158346680635351864785543746439426406317665060995019161039383394488946744114365009748229217372473261913129230982991388279475903387711960701087087014298966730237881777694306474005279718643160666012848820895176779367210371949112140906021090162129849005502847311691138813059031945246424760427689263278658608601138542338233938058466345201679485079993992460155836075252810760278246691677457594895489327494237465255012100020837007575750533286571699296919811426047496698121642021649612263339567943210480376488892573269767262841839531286329819254252067445625796637975261639365809317119519091892069726737080855840005686494504074408830131044083361027474863689369512672225904462084123358619381224271234666595795262376704556670406833670438447367045992682290200990167952963464390077299975250422518576925017888590287888280765353158708770591884499397171174757301464405608512366462689808414719279809922734688430081024926157649032816787124639164814719472386234695848893529318654075255360074699157311472516918519472416718120016140991087074473259905409102562537891652401466740250158869033713917620294428152424757624041263134189780174471026092648436605030003264082852953055901729341547041356235127735476078587975124369267333122511497909130359981310221653929756318388562418951693141356474317230333771163588043857351358375927834786891796822058516371591672644480555869388715994431184367086271588869150573053254454657590552088345426278921057267814159791197694809939912222734267645636348194052441728880680995097898747749964914845409288545386393663828883713972363680537239569907501202223970871590918139660478607766407923291957021327650381172152722548207973267869012064451940268584694011510156994444256950991598219349331644858372760316656164529871516842284402540480432372176200196800782337093734355010047309010532797833596459454938395011783952130687214336932103651094832203858561852240225188106524634892692164017406856857481001697429923620634433433584707826069842196442458765027576121831048890413074446803317636971206976679384119330776318225489161216825467100165741012331503523266482515160424729602205427604411131912776250541462968859013364541319890605699216912720245517046661665480390095259223919742230796561186279578590135371012724616703191913281414873494740912829296836729996322405301346317791730682965321345156860366146734827735852066979220533887391873657744175891551973452080789043135563887219728398413456943275055287259191496037296143837833402203547326612172897243141240523004328664386324524046273231611657367832339047827083942437093309088426676020994785651514667686077083515486666938032164364955734806970146390381021521039479811001417561048646180565163196661251124566295964429109572548502959620237195465885296470242305509481096192508999382733687944725970217639353617929676650633899579764641790083324071436213898392406115321923877298471026462570397047710889275607677725909413853102727474732037580122112092915717194612877566669626006239427189034263925230918489999595044939239439607480806362913673406758849894316551979738785590287298513968684504070124055077083997390226736770938945229295473855585834441502247337399122733307443248689388975233188912319340877398197763802057995177261379522978933349610868651713007499869191479066311898691632453779987520430645180531549162175580693816488616883742922562279679508199661641425924216173996821526256478769995165211355488478413324682304183829366785732943235925781871224722665644788902310108132642770785078652009000179163624539807422486002649287400731161161414710325750470058245787935159048870427355620108998522684625634233580567200497678883347574449783284387231241502011370894492665254652573014451046613736977841481552894582812696277903657688995479205082082598125590474308513166293129329236314290033900773232226168419562075926149244440827758561197324894768708013609519468597777640434539558059393944460846191790502898879143078420918304891645894068900539971202182642237598349762477704106905409462345580217453184504586487609798826997989724632766806791104009539460711167529979404512741680749371371809564047922337798848136461003612226367461541397701406750251308001288791813130589383053241013011753454873449207611863491596166904045120981697174541266842506156489322248123191830299514711453035315347044280795899788492728472270449032835770440792149581591142161006392233883394302668625726013642759411155953859913412805690088253060884929905171829356878507607434460321288903868683357504841743365939315953999355079980903420829050408351638688379570743871973178908058858962385451474957780711735150309066688753427778802272357670297603690284207320507709422976576357494650606041337279456869659838392724799722623518283859746023308597379057552883034105586667141851299777018963446661977725158024133736403703634591186101838439394216763819737648511302436199137673718005571453506142917871451610066995020467228526648323094362587508869785742206846384822515842193693374431429323470492107492162611145140141711793356590457572726315231920038302993307108983860840782447682615425864963644951881753658185162690783501303571952444760286678940705544054118569930978124363553867399501411317130402949521924877361456408469624121831560352166576613360602641079239295154707377175531878493459529069232194537191012807269321922410553881293547733978518277284275050272801154376263677046380802758651191149051116420657823139023928710656308003020841229779446034552415318512358485492240170733144547053256742311933873404636382358581843754887449469642901900010697320714399287277755052432109405355227419504093501912594403821066779586742999843354390021504860003043322003194880245977738530219839351412221245489995113372162967898562767130237972447025814738637117101701546340545206981619134130638790162591577026957754041023862968861478653284440262799373176422434895100420248720257285703881703195622815161951766942929803086007472888243858093707825549776778390034212403540586001025891509249002637991215307339717473789218393288648748039102172441564174222851630558361408812271870675149953295647075216065384478318657823586368520289554073643461956249227465956397194272653365039019566212826034030678630805566473963936270403261468261129577864681361821412173073217196536311366356279139498033168667192193527849096002502420343291559918278344812065997229227900385874797107253556422652895879706198588651443758192607073710051515134757697985671736351108067842948012851765784837843776628675270893398593200179276535623507105891070563949260185132340342452272685178793215940752144264943859364671714851674620167039001850272307993226226057902324557243602336286994655502715432669152901985922511385889678789062703469297642413525520998472393887222708028319844559293712446560860980598314840675304635912808245825347943113131682357855099119672369298531572814939737954552565250531822805659171959548697261450083955276495476490363152973103403296049351094548678882391017298119982751247878278332373747985753458049932015313746413191260131787826624610793870182141384040419988429508079033864528840536680345045217257792605334709298626207157215099684422395411064009600419809587820164056255826146555699287789284217691183991643792486147093911264543768957307570962575897438023511744670482946240593727768208011842571271274881529050647440664804788609391439945589170843369878749795146313063625291699959734198200116701459975760376031453486807717920193357303457278267499048139720269997385038719813130109400723496825430361056086733316614641077935892584153302869118049542290207002027090833792132881588253540117075988960874314888288336828442998622988909115098837173265570099824615354037277660028737106676349279679013423172114444532074667020250775574350877264812716572122938155626546356101960666532367950625077311348956496378698229423535209162409616261405123484602548637498101010821119460253591232836216653241939233938115410311444237899322784712396901926449623552245172497330316875699684079895387551299216293247591160949930906508443159404831176774769220035509544168626060344115890658447934489882417008815836541331152332401549084543618510757745700405433524849606650436016361281346136768495672771155611601287331347433931802851696237654524656948931969373305069144581411990951840198925398820052662883538703136535736750540739854830540826797120010599070696577631085148033049200984075755128460406578794054733403198148861456206975595290429541071499319371144839614876482379450791083674361045037724336851893205841407233027045851122284607630413067689732692360021718238075180507086473603139685807177923129031706455113700077233684087187281039652523314398416825745067530933539801049600053574311394110477613514186693257911235395456937216872961641110871251817691966869422583317679445728497994565422825912797373913189145882229294351807173134641033567467610295168325338756213603844279679478028223435890904185419285997661882332189176218006876560721563315271565233940997223739342521400227641107018770226581107688178297342470542414561862100583423027324075821765258037823019093251170495095638109247386745057283800433087522624866373414202673802011300552498228344520717910945381417329029165153756686676524527847190515788870755146105451560527272714144040144786244002890327787049390648687753909745722943675624690001728078109405602760878275368642633922795548311862958546427454533138449034463956604127306669978370538539611176264890992656968432043037634927515244138207229415186356519938627233601553922321879531403397549362347957603378771488181161919935607955479834214305044445530905684765281114064608788583952995678124996980364684301996787843772575577052260939473564166171937622508576382142965535696943647235120710643704096283395289730105963635628814026655342765030173170247334863705721697023622616035405298977006705701565164443528344694732884478289650297609375087974839223541034119947591066912842318842199589375830599118873594882587324294111995955439814971941703091103893992236136565690640760970344838788214466278737675087129778469660305143134215387878951981604081315215030649651978587963974197309011360592856519354020584988680915860901363645391386378002905817767509803788706947792975019776976982635490356858821495371636086772231568703363653685370385295971542586842810724026047771640989186021615693666480886603579389519348820861764185959566844116242034505641496857942965671976639198168902837965587040293071994308978932166669755079788912735848455194596348417601113613949608266428250319205302334159802980256989933339921244712289502110579656071953003181194947093450190840719299327549169471225185200427972816668454425310521771768600097702142521960525120307164125626905650629945172937114889624700846555017779022003616931627461896028789906033368491639469148844850915467269329175229983197817799332845167817803837684761011269378462563134998205778484945362673326178801270816457355199953363601867334525697028422894366324870075978684262090007784967462488233376778409130630011892493442397391623074880230684840358557443232136299791360390297257536935212328525273122710386492155060362360131508166969232388800160608498404360129942522358457563829951226233147809205158740892987468464710764428422655763267033566634546240801201731980641032869955675968579905260233612439858699558762502278621128262563256929055745435581304853399901307644993534008482238801908588729292400604163683856001716444946889833028025602771660123046727465410064573399918936774259106098449469887355453908135568160742221503795303785611177493684813766168373960227121940815611180887185621051511124472831539337786290744341197655101409259544319065634908847762893266458907433170791559725780680280800375563013227591958288720136651111562083403217394348964959268455168921373225708202334422018266619665863592194965703258808470883125513724976804179582642111921033962270961927497543465242170109294908343468210080945840639747138959378970380119139258107760735669989190675380495165370053803910830718287513209766153346567097217491822692319059330685190164149337970137188524183369003287674387317249812888830528937526162857764919924585245223122983298454494058098829918679154383815081839483607213840591756416535107690546094560140677989498036014048458990791855883813084579639209828759484940456275867735858633244727278888740511554030429367362269872576583737555489518905933234774937436246158223935183049091448445715443345347854633118890112103215391422884313214514420494752694383773759907384535800342862112222109464649541864747601069637251034552973198568332078413025033892214255444923847465931823027439461168871663297836596981900565509232376724474700192021093313248054387586174640860316083468999875873539738070203089707888595107927553188371418843625010384747204775397166283100328292724260621454243984202102523246055483547757961804537132976255161256796129055501275097588484753145996902241739890547679042395500332656907258614017666170444478567529016382027924273361271237781614568367565073772306925374270595873267965342061920209716610692304985942061420420068262658977081676050890659243773967881670577004765212407092705767872329156685095090980579794501850261714173515817800170351038516839736124812694874969562974193175590405233037240955462161542291411980943519250709554878991847930383830501726471046166436324099612930655084679062158904003744900322369503081611941280349200446139224532242000921341634378905143569651449123010622086194098464412821939489162160937141581517991621423246768514933531432404732350021284900675219603737621297467027764725681195298077152900808540347634387932575388977184100627853701330821761687721259677453233469261324422140508677899045939121417363109066469311570741891720277558568593527252825375502558698368308542753446379848429731515876410632485473622706103429251669088728161384126209883746700933085656701273396541399351170663203314397805808410290784448676707941971331315479424079543704080538505924725398523932512485933039895951098423737630110318409724621685526857098170231013056456407138526641869679123935867680736569207672477290945084478807017376323904250460610505349067675397869344765052006300466201155472232886983904329399243983091444503336981922943490060600654830244780819661327868413486302232164426448164926719192446784465169007593854516410163772974056180149422384127006406185624061666195435166960335979610077878444288770926329763608229878768845505798558853803009300937695657406380807131773088973500141203079724227111371983269116119683655232235616324560866685733336304503712946515998108448786781649757702084582241335869061733438815897852366204803481105556517965506164627151688944275411092097934886527036939669999173797153835658254353453901452195282828148830266109087121377879962155332324257211004140914828646520032995604826933558716120836367104968363397018933225167185709410012318377760747394875061830745393663199780343095959374039262719269886623819579335245007145938781499762587135243808422554366632683398530791385586104604764012520605184937115059619340853777291464148778428841831851605014063184307979259202653813288220505647346960879310525922337791213716221799236238116714813867630467863085581308298934111391567125114101555377462197884985937143739018451436807796415630530018224056324145956535915893579787046476463657422134647716911209571684236505620987920140802339105485940194665148676403809897811074291550765763853581512382727115002840830261570216516468927827149825635016239448436783884538824478059494736578230776434659584948912392804361867416242495665390626711816623898429735549341908715675734125260189841961280488464295359144187157464402337508355392207276714840115321682313384028482789304864196799928508544871964508042816684109896427517829502482181224327510259054294752438994256648910687247304754358663714917314776200156869896877659805693418774648463292351383736801027166859207676789274204285092391664436156656386352989757594715060973547708063263466301679269121710988166642685663694412233336507133570201676570829075110457055639993530201057003548645798035217074160067136595565592237023817634138744158201219039842962949301448155880433925260629821584563441299958236876193593118828059483816621200722517778518220097475615055914685816558272984567833413421867610352164305225691646423848013332036491369252195878149352787034799347037180590399188960120993165464269485494688057539654398338135499617140524736183254790178585214278547170587899878307334860677811533574981172224305143600668505587420579871328537493700096953987564912145970600088534014837033311365706595218854901045252274590414391107365974154263654692490689195908055643964212812474139869406366436416275333487291161301356853078058653012411200398929991526928289855225003314650568540910392838477227519932294528755714349993560564376385143373456128533165170283805346437340284373460350281109623493916795092778903789277003781843142959184364370050031691600150863076958100264890981675122151547967787877006884720701097708479083229879563658021607196304242645551492997139893368697065259344248692193211172155595335736112706166711686262747727907433424802758546814153539430585678847593005300673158003784745079388793466460073434799239349942823420939712327003242061108651923442738933916456670228852656535145091689201528761763393833042352127294939103651056321269915044349498660403639713537014992348911664960062331195220054894033133487917245727562217446934363270726442567243719290917836218070534850534034252729348382250464577287935538694948559607499075982698663394317954106286055594549834233044462532324439091011853117162157119008727562564492120395420303693680349297789951122405076817799967621385211047895083347256413041204404074414819258195100997593910901290475734307108758733421456013204558634365528106180218930689011211846112673061911925891139419675375606790184199453404606748877631197954535680448722760882147024227403219915367936331557452859034523053928756343419598360538262244049787468674297807308697927825594675261964229419915922348300983203648181392851810444837422642248276066425222192376860644057628914921325704970922306597122160019074109645703071763123475441700600643472146958248998607378123079893365290076809347187875787660360072747605304392745738976210141247913803639461071310086599116843287842298094926765526677916317463612211153449456163951766592445154457970664808208111456397448629161010027436314313404152691314001804540244229605590502221793418889268497455983518240116085101084797422092872789123988822886002189047716398355225673061211898686862549112477680825271189809033781227644682863930855051567785567299532533162693518205954491299034840506937279129138192774982393590696424242122937918764965002009645410862764637979123980441717533079027696211670650151768061431685842835338240314602316698850900131054337087516012461320640255787692527110447363343893225546923838804763420694511788144006291023340573708490076453041562212905843503103918065687039231683630932754343616670417235475124698726253439126775818487719897540517968395820208660674107181912892369101389106251516119576353354851573488207777641679959646134950204020022030245387949552644803715399663507279654001908781646295462250167138530298127701043140544470442316808463482412053370231314760702179868029484639829201043647548514483057396169898432138724116040674995442820860623505109623939322479089708379633342463400450946558320969550967157794130951524347783144548370515604963574522692223207293346138662428662975413451425922767258794968313000145631107287296671180201921669604159942361215149318372743672320384289188409234978474198048610019552022639397111271126108365290974486487613397134012983456767525107484462789262081307350333653824354018111012995166158007473056608728628504398569159601979140912555486521388652274036205214743859760002258213612352843563667975318035325927252155182713294609320921921043244168096507176170177465625341768549453599838958844110353116116378500355169862235038016353457272891325695648353922781190281289789220878646209692424250229890318841759073608921150447625518133791554089780532317138154971075806596908612468131565875519594435971591008126871202923330245988047054483098493992136936853214161576435637139843331674495332176557155444915195958957504289488955314691165717929277512028478149389238283407133122318400544462368447345081699908899316492213262735152632836416105193767737001665780588731266197592937677956782174108971959599194029218834696414362414995348833708167414528719568265542740392849306507729156869439526709345840953077363413861099970457054969523605938663975456787992298004739994681497771334415835807885800819286825225364526432607394075593607015404925670014941208128527352557203220500858509451764268811889588439305073394232107411125082853342604228220450199704011143934939778519272958660545761344033005109908008528650345151506955913679693566562939212349845366831242841294194112119014228157168483434423552133573141964280772384933932529208086729646724957426963695128226430451760571455368659532009418368487093016041802163392446503423647248282913656901716693168116981834276985966042884349623627417246519415154439218664893166141705720553169169943099858745771258558444758965327608941391883660950799413946340988593420962914516143771972993809517832779314884870819063183812592124607613263319678472835043899838332749298567152611750364230974852560656771843618676853540872654728786330362487753511394482037051044315580999977691502232968108832618513086576809925439675531996599573585412544918183873522653056854229391391367880865386510089280644766284110658173627059874933848808435710909955153425971657763030203365598551377842039945562601854267542175857050689000985786368301335527938798909024544653915491147635218662147147007204352022963221509129843784233071389367888114125629289344603161927538119230830475985582341456663034870049066738551497445653032891546157177474283703743335816400719521737716221227475640464990290434425747288552553299720665399979124774611755444871140289687790259241631898291389922665711672245872828770897425383546711589324277846474058145833672518676087989915332588553777971201602573360122571351316101902610087742366401270556666313013101842998559344360428086638655668306007567127451667445368671423566354515871761724237193067628227806147296633614573364700934222890834114197110760366234962671796925003708100971083875502701399951248947692562875565987586363144203104280759150963038267014451712222765417274623099784864520512586877858498856504909677337923238180787496710996330563881419501367620721494734632188661265089211300815172514214827614160832941872395022999255669948155346708577877442172094727765769747960635262645754592295480309034010158209881886113103563481074275033684684013826192291331968983979597264584790949222519803650386162954658719194318920347812231756924543996965337434227966009584291652098047886120486779534083073130697080045573736405009544910426235853321412009963311957003672147923539851061849671812310945890760670574666425973957066189826629801050990198051526886563200989308985977000631501343802953001662206337608268777451999573187486557309257107657174712884073028991582096739529360227422880006614030105869158182965215136643810938607132692748867440934379417158990671626367470940594691421048319753983097180590758400698799165735837335487439078882870483222530550335147049237091764701256124636295051458230116757453014087552785663683250560956023400479079553362812766506044619980308648825702822116660506303495526463410682252431963259898520814316905147626214783234801357034294044484203874776328125064644254974075385302710294410059618469580154753903634801854736698786847199624299849064067700745876823366725190682718464753615856304011388238574900571984285473796581976716822743686776035445692487813210938090706906854907530658170308925784103929410584895432966946452550618571240242872627657782457039384187279056255808011314460530239504615210706869583331695382130983378961686853441119427378768739094053752323180626355041136516952340183916425604276885283753894489748161861646548630387804352840204786214408066303559780526090385347655894119972149543442827711503599466917236572608742912344116577275698508227272961766490703727264865475780698229762533491487887259233971123519213085307695670643768919177969689673971599353550290185636768236933384933169396255842468264955864869032167516744948907582119390076176562098414171984421942042353172696169119979429828177879639193687242329806926711384333316930320134630986620465338938586763112107486882495663598569599669406171444523638666088228379847088641471897502092661677616975095985845971053250574835817836806050305382108524260897212603790718644498448754243572271778415248055317987659947640235629823022547618730428832393076946449432374401523266996761694052845260461142989148535468220828572252031959476295573620463968063574702213826461486773972606340916976685751348555612083392925637296595482385542434480561438738882417194569933787884408369702402134877051096802915269782121808517586770011555242132243995558698435897171807102271620169580399455228407458783440842021785968999915387742647368441553194137398259357756982578457975947581003942327981019200073141020842410528971446083725213661011881781738077079006946754425956597472599148858744304513259435628002894674318793358645048717144738765984282104664161923336425490449329429445737432658144472187550733994892318401304447176669191278505909662287337143329621216824322733826171032987700598688394017445612933754788365565858758135939251171784175801415643059309041285579862829388214972381367724858114433327911392667215885988895250723251198977908544955057595551853988186177816152191220628439708117851307045106651818984355918325866750390137067291212188169916068272792017492011179151403731142247561283493928343316671427050187587397459502648868681372731304403599137219412551596795114594189533374987793696892971663905022317873597383058268260312143594098127124430337464155217168034164061811950409767813300111692957749769979927033629524403736984431429552001145985773605619791574468486983475859295762166574568428614906465238240497699297020897888702656609095667714508239108784928100881093883037602927450072794423856105969043304936714767061113056441176311059171928828351327641597419280980887333113613180055100973872596680278530890898426684855571853213218090201292526015609785108988118261025453831028512801028934668814791684457045413586014272523805173026765521428137904456551643097122380957480142248342722706324617340957320921336648184388646420072225679228327026999769437311858979235511758927540025298770260875395003637226726251904899100045999739112483857730260259310477125524462733549466807811197809783545981547090019630845044108364967808998226954804140090761099924343853724121658510362300703143199367106903874768156209016280218180771308996819091647203157564462865395762221834030781313377635646753926717991891590025187251032192255587445913680710647919986397214094952554872771038078860156919943190962072588316464256815825597553041215886325022273739863924134441056455835372739396462615651593662731090543509219082788057404237616850405159538566419445178181486155241934497948648767302960154609140570798238342600318658853567160661134294740544090614712971192339815071539519355676541977898353301138818587650442236043532499554366042222636444860315410309883159286357700623848754146912685977439185354847277616322024778532330493709242830948617276023257699200223276848091922136349210704948170734375122154674546845083643210754366938331929412939188187575234662407830601451930677353981231450140337603000175830898760842812400539376099770680039580234384361260014105213663599598885762752627898452551822339734439747176267031490833729642235923535280791893778908902502701367391893667861738870037509872254372093864453578616636560844905906406430874030966440401132080421996232402169536058679930489398899622673835840900643079482218828648068467628190719539072954506939288196988748851662888963783585545837221314410136342715439486604154742673888185067318145076296777242112198567928168396113436447208195745385112398006987405906891003893993304830365010931040401222873037556265463024705807881427717090991933249117454229125927560126705200225697553974417651217414623337430011148300096544729065457802953241684432814391169327717840984467084885964432310326764013051795293372717273827856733504140442899653065196737293576305490161438633208001939828622567774795754258664528632369778637118503079166060208604616626918048335647684325160351404491089534304000797208036600590410870299157876553128275557120881289911329402290454466778854850314413827002496740507980029107255316304495930760188359512368232561639354259280503859425726387575254734209734563893575613652123960397807893216345229350829954160376486631282377331394277874594108262153022149498841661393153444969003528860759130341172776170640695552476652750335103136359457691407790347399567628691865706713299989018650364793493375245556496480373317359864919599947858315260921524146292468164816199258351230242077720039834155310100345421397240926646640683329323252185060156010816665077788962261932242421034607126839039060365976798018012514707016725064962781841449062218825391474125848429618862647370290813299224047210291478073113521982438668496032806252033329165438285042830105957000675120489348996497531523113044131770452761896186284816314897966674154031806985368726264731239172230394372028691139713695686107799468531438067593485928468441368036210554481714826409824712642914483156593763882772011157198393367367996329911234810653437078418422145991487201514304043647685275685394230947711216680959163567207524191016481148496145012452553396678745864180783583552475527470631780986895349514708323515917731032893024307479187312456348204630623443787239340633594951192029353799326677401464781990888346082845692498416270062414059882539731667385444050901581416300912776482371465958046320181042600950610801742896823873204471342214574930298581909911891400336973869827744814683547422365914474869166096604169868814543558785964618082632738489509017097387108506083306066559681714003187909410721055272877430528462899183646742217332649077187156661565941314173800408797003669651179314854901193673145031728336255685635550562103071865827930285190062728367573214462339807158170643906987816115693393030766938931357600555894536111759452019241107956312497462716010239525562900032376529823520267475953954914830245276160114315738263031053960516784980260690737223027511157189143848610288641616871228349557926842307338687354033338219511645125929345765581762667253988982010526838113806445082374355440261948835010681226589692266602816967879075810426642022005010698504082909632587706885332105356907773099540527543049859031189666002827224242393359882266080803513510893074186722326529053618118043668830820411810485388657619180762138258986336394900663029408135578997283012625274331633851961807177781339527394057295411301411132360013513949159105439751733653089985096682508682233724655705667786187201985602693855334215055147478375112042634558803461513126262412057018718697450207588623542341077523740226631846428263874687746902991791682868064226332919850284723422828470224870312877762754690007236478339253520965788898168032610627900282964284850114650181246406640182300896634673319493694107478897571681075383150308834187245148070798116721831377203072970972484135035133509324811820448898864755601187206704932265064349343577678228951865433214104361819473157574344649241454493329558843238483608336269503732303666087376181420469847104921093823159204449110816111684655734652930866501952646131599755336878222127524687887297118983519011856779688411384785369964790552699133506817571090461814338686335726133774784365239248475554730641120682383402855344087015645647737490964356216764334424325756035652186063343529278533914978954639812160117870731936964873106110634505051974272402569648121831226348521186224703600112483701994582352248028491875546035687863759987779757555023602707452984892018217592746982917411321121605677078262052116504954472182582851777528764484347263819123316144745839693620028462644230199061574498898163296182121643366345761927268078008678816445407116311438578309607095237064460229481747824075500468254335217194508025569267524880633428785114016331205207758578529441071445029492097880178897199564272052567670092432132372986931903868890533337249972989635220896216158549052189779197104089914797556274337802904113000066170521284591668676350115666587181868398174064452318774327056371592753712009117621964237950087062925122551835560717954071738830360934445259300073674963151151937192804264308358674787910267879602837037838302943764950048444484955233541461490331680447508071429578014229014039825958411653719719998567501613862960576758653439376777810955924384440459089411896885030136929738361364759794770628199595448308025934949833009086393577395882771443613717836278520396879315839369730388927707888288335385793510824984645169485963805556028805660526076894199722114761689862109274494427425756156653300508483848118886274232009511785906432558510112866153303672997677307444801020719943866062688229944299523654723349698418950945377726605881088166125702606290328895870408776007146703133536081734288908808666445775927792008845095920156491376593030827385781892924988634329578443259751307408630379057242958534603166399158354370179318403646740366654201433989637541940932151136210907860079167719805427747196306401977369144067359707322457837669037902468755085921955189314562106959039735050429587302045091529830779241968336143063082027333590433781122278182713988879941491483710544981399128124993679735922442995706031423840164149458419693526395361543143433701944324563010300505535019053042259895882168635701770887417223643867016785073303914268201101752142573814523455832153252798185166368053261446871433522992172700893348954981563254325585172861977203932293301572760353890383970935373221915738409632024837106137536640950311072198841797540331114335275715666641095329544634929061896380178446304198013311482909057341606583346884017152911359829065818472623842379801715748575764662384907335314121423799835439085542374693273210825308171519114180187540105363060597136431229064339532909310984481744332838638243730793331485518156288882621875471961977330148109542028211601544624250490817792425561895774289156718884557551306536238599163950469797894508541200953262678198303903792545657586620432661577174590009536947215061579605876998639300847278538171893968592804805678303445962512478783113443781439953920305251001761843724190180044431701590273424854754611952431091084063840385479056324438625845273820125977229477170405703525986642827045735448543750265805217046709653641723586453640455881482945016853522150109016467482028548470632036976970392904057732538019254740506049120285278689719598764552894871688742268161460080345447207560464918206213484106465881585070069130758074800470946966511843682171767504781650116592303126193670754829347539098367438001130967267781265055429242826273277332074819983569854326503433362557074012118595830084580027874372670316589747259209961292884690698168123683087145139352600270217373787860502601729442548041101939050395187805251223323288237623256554095171718322179562110241115387466230112288540343446847511199616931221826708030897344225570776247355319291729168551175581987044295466054957010446488342977586790667732773215188572257072922985894112133277259514539704547686070257029386338222318012821053033941472375290385007559376029856246291746676763173852544526309496844254172766502008419339165568991031020961143015113967947850910242555853943018544879139193151604970456031317824055596734800034336331331695149314431641493622628919852111980953554987056438922369969307672045909585569933725300140474791184013349732839467659788929678550563718714819779794465723487301214988357621668371249116386268381137691506680887423658440018483220794100845406612593966523329368452575771112735260738561506540952290900737496689261948021908190272414973304702166186421337565983666928873875401056424844380353708552843781123434235906206158884167537447200668423061670513511628990901573024864625650518930862521887961236767805956378672314731189119096491685433770877808379577388363559006017101796450478213207643470434200137147407535213312409432716826215010755192145783312641283273291216766781240687287637997360943247680845550463543026890202408101001074195919570561070856027534860721098124678515288665447293310274146579012827900069981649743379612454668431748122753883026504152574498695341723175087308090074925971281945073706569747639777560868635429882285663389865332249641860618527343899927035869874366315196596071535419159503539571843614418912046996056673002002946763173615092710630234332068431860230593410129463805530844388102533830917557785880159293716278820424875705831764021374676931273627565185830760233046688437234663749213953089145185851759891257922810306386601933725345721986692193790082329312985223318312569087194676320028362107505147160992363780990133679361172662597209045471778889857121856205044522965976862130493173688629467324351738194934337849310605060699272517565022708069290078573337361780567211825447165559258893228986047743545038705671529815743070987598312031872532722637020282864051212360207781777439730426683296934801696088167239180837751237008739271151562320865302480879302683785872070942911238106281218137076818936635916335971423455089302617409669183062455803710655893297392807690986245712992382548929279403280662018355449805268926919189204400772243911770276161374696704544779615657648576725187605650949947747565062493578567816751904641358625751891818281891409256314452317313619428117216478523810677800112752927278875020395373296669025641143711097863054187785463756701203394226029925534728019652771790285313075603419901447167293812701455170811396557916760407659032144749976217382893813704269798776999668556089576140232592891136835703443568275442054060000383507332711656818343150796296903767401549118982695352572319773638842811401375907845485655474630544514364603174588051163000338353692522336919983119266757626360889954391714993576113078106378176693294884823968246384475284134114904655591070421627814056790289227548521525490745695969588342062389911790539794322586866990897922584816707332520837944268289655050594100284469003774127748828208038418559960466579461031531056190627369220844179143473430704027029191372834691043027242170194095369183599437738896257691913914767313997142734847981802498549428868216449859330608130237741392305614537152597922492649215978486784180265561458140095238917647054828812396573361824454311112178755386914018200746161051645655051634746408304113103377591338841736219385284439953142579783714804343132766506354078288179994825739521017085938982408195203276787599935467844069241525518675046114705439378531980925667705174940291146339670478551921308909816414946321273510135644737726616139621185653081305521160676541105314620364629134474505136757914965002227229553807791087237832643732374075007341779221906705566268878589796865741460956834330067768008563153454751129016108208434897450840404965831609581858246204732306546664969895920447013238280915553852926375955873838673581178954492532819130391661355428205359135868731655245719713414940007790540491140964154158014739973653077835782852774050783696785947969264859576376421896162829928322353984305559370871185557865120942085252353678418738057408186919047037597878452373930759938681831483262317590397817718186436017933939527681231286272307483320469065998693879124835044362345600223817600320991713349968018030315039265206487064680052871880247464734678923148896498278752689151695312098858478216340045882983204902904205696648028765048652308553367777915157955197923046180308696801903574628193342747699874360416424247868199225555271766046553518709480895531617336425521111098303262613863148409979383749087522795362346756322126179879318884785810955546410657086485131962659429383687572465005045834866090466894591351909270075072785107181782224744785810006208328231314626595161644041718480336666030423997317389905201484697609994724218276418268684095376091679603715217980826488141247240872280476167384449162091336830313560307749264874376599540446701553430203118865270408223131699318237607546424724218584399333929081201735005777849931667871868093278657989761482646393550409641436841327230847173479707296386148968988797848081385936574893197151373908430345451379516478910046280988886184078873077661311289654016689453720479979293028108207440214303358254817706518484244328785043164062149207160049871980451243200245581140349136774960634109853043158343212213002946236602650885080793453430557957934634912104096342239687246030417187753627350834904349830803486325181307170469364667764060398324008378421351873418698860769303930680753127461549503892350007619000232551838385214483076880898062239454646388218579951126996086069233797807030596534765435021874908415063215641651882995632041769535498618755165967193909055227255833936540791152621992606427055458132358721700581534042484169012920057635514174766985840748972907759143967950327587700654914268797902867523386055921169270611993141790569727021867794904009112293682341068366674610544617822814604783208258786020243894355079633924266753017669989822245195932101001186171783313300331031253143694013168565257998658442734058649027994143223747260803297724691169397505058481692916857987697180018269660388989686993479647731635865850204487548478103561221783265182613063804102363621768830420919688240459386286826155523043165333552626135871607977995524774041273612747680965856536962032927109631857591017888491400590787973676038539905259133017266326371838674197928323202244876658040726387103457013809729482881542261280753142848962881198317041128508404000257769651259419035491546905765301736066467123580885722682142638796848697467824514746812755579829044977072891140657739898753804654208611160978359012321516951519682597848885873960645190586283441635042267058429399475752243125269607020156547896059786061152758217799397680183195209909008202155758202350486034645745668376187249683453930839320696875894314322601607594825897181687200857764481470224176173449866431898807231502701076944105667567517069467123411281014447330296820511090777353045282022741756846606334259470928121419997980889867022933179159972190524924615672177294817266520199758606053276322453318086998169727069146670782500646455844265852499025665314990509427869840113249920946026110992901580509179016312215652307988892109999130025060708553110132206883727987167856512352787749330558724351001456805694984072288508734029932347189727931738487813775829905603383400389301512558598794522809632617809639550176236871322426035746391414008103357142772127388031446847483495538396313108626843846790997209177592783486214991167396282983939375529697896110890933889476104341927077242303139363900976531517718909487745792321491693774222287529871478113160243794703341907628248254731170364291524973374352534946892437231642782851208744807777282741019180545684519652155967545399262744675361811094223964215576051091740664376412324243194279872474564374090715631835863479927454947251283880244355281145021256216961267154634355562990419158526206494012145807187612766957262517911661590094941198691825982480741255348914660724069482956792160596051990952144541004390798417990878507224599661838640560278514087685991956581887481430697011051497806123810866323674222058362408427658803841762478076044455613605346680198706926442599119511169096322856846971366161308203445110352680201657723167241874757729691929809259597476795889710204508599959815817455211548021236524270864703079985308234126346012061589838895935227459503692615631310145357956919929499116413348874153572607022671394080868382857800391889479543437154167191918922372987691146115485802914750266817758599071555378112551098655036470837791164348540801246551009183249247241327391085262467839231681546082830463034874478608128356179162906700620470609598063789249851071838309054768719413489851028401973001415296167717588447198364349981504603170739761980399277093039524382296825708427865913828158299959691193969315651469951366918441467695655556459393430237069273394084293309115318770525894141814242210377657361048355324624111633219085051479658970745889063643447779158928225273124705593520114527592199432633706597516617846930946432029939837634466425595379981378290081498889548032485214709031076500669531432739719940196037868349408949736931054961564142814448558983785482053591802110153274046340298802240429113978768548956941395059292151214322564425296869853378663998973591931204472076628730245120973731244110988333148694694816549229139496626407458815403013346024528011537581242712067662537456939692884934739626156280283574207620876771230147444533483742407056804878615550622326520587217167087176083307839503735046548706187827850899765889361616453932222486308007404943547217598050940307617211248510138869394956286533304830973216425931353752241024875007103529429442300500143458536965369949153386871113001049614232814585067281786904354875609168005190883088848801156068476212251009331245050644010254500461798883983136694291927555791666737601840700739704138625334631526246470013641436918474218287719192164592003316259062564736436310587728113647477460767148245650214336285485957338976195487358297529977064721960459681140919633411008115630521299679815075024919506317306317159982052128059351896406609333006438952755033856659180457163033486046465325849247339183733775237773697352623987838447126410790571208427090124280350782121553461124858807272078764489720211077418204680378045263789936779628598377443380737271002997737269124035867593374888062958436064839180496623698264672315859490212063039572737369213861406771105799234615172814423263548511162628059691852570363355491082790182894646066165695975030584902295373760084496648231628749413478385193698823308313817894960899034685831178898303736310766322102590886404286763258585790783457478989600201820329044165508448257590865343273639484997325943663029600516172193761287525863000001421166382454675920710729411234580182426542318098344579972006553094340814542564893164994567488781562563263169460832627530737634548888190788155043145516078430281827272451049630610926061865340712100699071108031543055417679001116069739380140636771290405476565534927530710210284202010356328644940619432908447116023782039087413984332819633992858479491823309626239886477847505605348065620276222469887501950721595185274811618941053294761019401685166879256795009165867575771356895255147022619461391123876818212406524577022271986884755833978462636767873978392467079940250525166573340135327706007654828676954259214727079601521928485563963387484168375806257330805784484614134641398748263321292364906207968198374029860962742314319211993861918783966158355816095744138606220343316403426729657663859573133582315349760842126792682205426698955685432554364552436510535813271364763769063738523344979871942643141355297329043809150155153631088369228520323892030785202496898767996558844445576777245742792183773800041698736224959439602131717180415829671684346938293497900588174278135174575420948475438136053018773599180706172548022013024572105067020786367112832123959104329009639382853857790195086515977896897113522725091388698468667269783106373942799319077348836921800103992496670215457490806122644321295252608044552866752908047388697877946637607820737064679589898798014637066307595275265811909116166365322415265590967000745524902029115771138347316423649378291407004390278416476045301756449492064091995137830402999980609150028175166154293688359503841341239594883776783577385841777140058054849461238654407442527136533161357999580346367593350025589583522868870925902769063408359092494352733421531200778323384083977675208993590786132206269551731980544352066117615345186877888897966472561694586714214575376361152132401178342370063683602481915938557679385353453427993038325991961054648419532189226713893249184480822392231864000501188403254109825597285488432408506134903745868464870462375574952420843783813912728183317737941783661330961668104231341357615508036800759187356854823566319568013077788553557725799865316179647381524199186718656347163681896281661565040653979904386161090820164352801678578052415801583933409730252209100958087495344175554929134057714128110791608134809198394100465257359763816145506686484235309676118304710002337010962008868275918964248927205906952622141496037540113505394842832276752900610679526332019692393560038019869127177000808658588580361141218039192075868287326724803099505402740053416855258807498428681434665470411438504672996163251228953807580818440763426076751238052625926519050711188274406112154818579399396909983213550154442481257657574953159402041569862279838345415712694184281211240969640708215370681918782232671753427178379587593742828859364356108205962229958230039299763719299383038628323752237368674530004197032620188201161643046688045737577102575564024333695836013935968206526698061207493432250990629552455766683255834020008448043423716188822467151699603591776217290749776739533135414673520653311441709870680596069402327859218451809856164234416770510126687158210722389975316660983760552832366824306975215354197784153616800367445707433923693447678128212825123454250534748304978617391943627006708286061068070784160173858606993476876077877026424003048728697432558466636892101399580562631732943067246719944530867621507922926981374732614481688309531138663171672515679249882980526538028860348675418595073732531230590372405210132578134760489403537360024249619185704839674283950956544206816891252747162170230638723864123474328146939315743063006922204212061203233390082638802608101369574348745519584379685592537857793253215996991945113693830315802952749472295538404398976146783803298382291135574900746053489199382738114391127393573058014784438516356034387524193872357037637809176615771077920074179471478572764643901399143618668656800555202786709668174016383888528311115196209878988366565315322298122445715785608643269470245644355218194431770404288919060135238165375193480346424566317150786317860662802777949559642570224211008395325059353165290029721046858288444717990658467998106256912593256631768199042323843245993991981011291659034104254339008094130932341865891831145213415725957643427198115703132461556906105306896729243073573551624490017189054626006767913203014245637348349605326630033987022089206600055852636854989492759988029605676964825256971326558297657715719954643291305029421704222825476586357738735018621358252981115917872082770331143501255708486632494366804135803758333977866553532795100360189460542195376531072667617335543818344054195377325645566215064368595706569863103817974777471987108587016142078157632670384066786004111503118687316829585728555282326428497121505440567693707092448108761013805413735325390728908319747648945160564268992353535948303458004195755694509488525729981172201580582533881788226045133853208971002095191077781649011045324855418999769868914492302732757260111641863228348209352941840486930727515240695722627604145941518670552880376069630893939749969711093166540094332902733514538582964310225787197107804047137937558837221114805590554096168554591892741348818278373518327147766831757262982930572350474440338618264486759380442259900535421892381401284061158850712102768790104653517971287896400009104134294588371132159051012400226385865065850891808237212853628131293541430914077328271186908196459245776853575815559253764576703229431358463520076975627332487059577778612968796987110622711937204479769371118232250275410971548018525725418765063249704319104571940443443757961646798385502254975144089514163873177800090797238561841674756440514389387140995376190201734779650110394658676491010384494131501000077318481811167122850102691777161006084047210571369428889930821274030626804137584226576505951513947661034322405609323983860010777581679120369418435727262891478264073289564541224123239714100354331167041754904314473480387309263632074003847136361440965173272666874442722614046890221925709365332488898738345574332665077552265615747165375987350090086349059523063425803918332609443088090704381732583019212404150381709506026649301214297348941839273169483717189628445863460821600779316924476695882282189529429962728390635221565963377473526103926295564014092902901320278982829427295280270949479557141455245424000245952656866119345151415974749617667299849681064571918125504069385317479684459471903045916268580625645562717049101278173124438778654471621896885838703034724388404491408352280072539374694737318624651884661085640951402294958511553170052784457211005055505376872837707280495455129248265032623530569059956773987636676363231382499787255592628773208449663560823874299035528680404534544711365922197893082972203463419879181939728977584593105311569310353768089200286498641846967094960420161566477397069630090825851705476210323743776681513038937020652711373730534910064964845012790799754823181272059696909767939799342588080008748458609739047924709350756807170866467632467844927267138090859028013550423264080603094699559224026908410952443378045378528136302088427739472612837060930773425567140577428192660213651355684131625344229889723601860992941175463082099089762945463449632131000184321323308929203874584672414354619519594329361046608844257356349855418615351677236083300585026622462752229126270181421718844608941587289834768013430619841659057300699568395030203532256330826289697646795958629448108542761743213830931390269585727048462127981621810499959381142538472210633202543486548374631483168380116109160372288943875987408861636144773080059410104091133117462384157147469764937489871723866654555762067326297048013280743822780648821857337822565244589620281641073084811342516137692045316334000519237955813303445490105462858246849992808983970074090045273940991853484036593442084322219680872323110102068953962889334211208193291908019614561081983554921689437212131956636043870805063140198958191615922259907906194156084568241214587695736203410624141276821412883552835892437526379061950151662461586947763489311454381808534310010849038662394433292887548220834992588849833018550947248791926698561868438250299482435923788321928217670323202065248953603184578376766146780144069184432719846610972345354908717687669541433503734031629724899424187212012914329036292672205291709210321507766920700235051794645651756659019183224500957990271642973576320359160030025748644029812510451277851305871147878329581192360938228740795059960187769883641766577997111140821118641376989817957893606330055714975169910169262351092022607017985884484414910122835018681791748725056131213759929112922087521142134967199567949585883229523763924862264146181767494897521246307900957360920943380722647193002121450986271027472574880689306592893070114891225318221860078623498890054100111598093753344149798090408343342741125441256199276189581050504740819094644587465992539655956061187709263539104689114664481260522528759451188834177717600109445791831465362523909553168191296174732874163069821631512717930792684263449628511889929470805733811064815802921964157382400644414962304957747268266736836563761119996613195517504840629041410697066113330976003492329474813233783242799023434554058886935190866246482980762211191235315411483677059170687242698369859933761679719936904095250724517509152032655935828509646568650156214257679698855069143622914098566567582400344936933849476260459809683098551667080395365665911548134666686652629563338762173969918425980210764347209353742527825580150054822349083298900890007085936903891371937950709118509935205040947115396950059525397296003310631626440712363863570893262099068641788023380458345180101623791548866920238084202313696344989090564692912893228840576169897011799987905310016437793278165178448747887650993567642302374970985215466687855144247779310109149232942257447528348024674735941668099077236690929910068119082216349281014351803382431177392231963185484694274472831381489304394027854256227652493145428047634747458580949043540743555711220562736439440369550279516769957309024652700154663458727335359798255185420489397650699839048270949871286416977661826651486809731734328597993810685785812148200456341988191341561163351829854112563661766460904354732576659422855226559100364379838182459140703531536866903749838642764070348503351959399671744297539503784359319435723445774375341935212846539652355844034033219546130316720832706304969502815370182372211433973151252791436362408926125986770766908855901993104758991167082855949535615082962113572170343738681146052468589706436248537795147823213591620751105564065825708393487253217664879255458730026120145681299187278017815426250360860484424418549936515949690463859249597900399366526827644843362365604137833537775384845306495582318863972957113567127994071131881883383631056946096645107330064231267018581003101819515447022474607343432783123992428985412739282446762611800224410088695359673557680676731658171918513927893617108866440749386929890781157014643113118941633348204565744789117405711349568898016157850646246256300043810361218108234567583256823914819003249789822183288761789468103779805193784929929090897959599782863525528996106204294349907159958610956591110391159640066101595294337781275085651540686849597730715604307136014898265772771056369670593747350246394435426228128713788618746953292385144017315665839778389978611092959250594594824432477840242282021929902836519924933090708070701710139618620059471080324923424183257441741982122127643313606092720422503214290203256214160004042607809076312513828152009823475448896621039072611745670730793910843892579368834028317599664267712295966741063171855868860358204228082993172595944281226029002839201173024468082830983137183659376350622521208577809984836158722853639706980056204606225467679297259550590392667824288968043226094813834784217082657367185366308245983199483471931909381808834978649358170858111451744761908655372945631513715456459057632862154151124563573022539955943374028972403313067791965456927952642349754662147081469652257741580835163051428692476103728640601602492654508862719099709457148769162957564558392468933781840463301293322827245852235126683238043165671831442191018691667001021731273134892382831569072840075204408742536198838487184458363687429725997710153649368059634308641808192652177514471189369125806345343703892275777160226277592131751938759132421639572160136291913396457850681413353927587370027441933942520547926871147644610262528290395722048834115352051012177184118855530061787126965798382773334186671085548612422598158144964806512405961225948294734012000909398350331464249493467959692935231543006896253296966173280446277187078630174988314975626914242598058794171264878914731375410020719916266932414487020863551021432049430082701593067992048436432505994813610515916508009357106465570842539000946513737125211830667528044418324649848705480251302583177700077709955966305952543611699768100726864433796172875843982352380391865332019022976939909422543787222765993663756599129101793667690167844448888109531135661363259024652126074258776978407700807313095672709309055192018612865045282869590468386523531173089397718961983655576940191593482724592014788143459644196071014102879611535514835398154891525491684715522877698960091904639173744860975623185341935562300639995629815685879699595717635287426244338935100594200676438963778375095592282181138982947760193725644710960642246299592438907775960216049597966850962284477410728862618598856521501039610099625551978822465677060275420663425910892950039842698681109118428165656506576301761275673459202554065473481712687714852101011047909979498166387106517593256602303328898520284443219933026955358630924334878479037006717419209161403832480762118471513359661415926701283822501389551865732377574449311859420055890500306263927014149934852469560969895124135834488170495672957952434637749599912765506177963822125982374429253236324759448588277559160113223193896172570220629693187079307928738928842220444244707693602772576612276335275849965569125578072242747773233668075729150220653539931022252396255902294418042582470516073656388989731562270181614826742664979840495512878362738757335997964387191501703788492136249072293947683223896373745908156432115577412781394941230680439876377639121914612351380168910528954950825150735780974294673371608850165976054501862802037648139553427578845828871392690142330081637447110201846201368315094235760991163471446203537248031976874466274193225616830360056938219519441857499871225050862951996350184301546066342802583877852297140412554748963714236868209686188314132205290951440741333517363709513816686810779439455978026697675223522365482963080312565244553194599889266042097443584000077137626800223931117575081061000276110973667632366503743305591712604548382765573073084343473359563912465866807936901672230300189152666547575553795320286043726575706443356358660037016680003973683365158462992996474878317537739801164007617839473034645407767736537183971280359040117107294771715840216421283990986709706330240487608623727011844457798229776303418217848334694044319497663320712030631686853523601181505509808234260625951449967005001885210229660650609901782765228901558287578053850434887666087315146090518566746238089478163951659239516774818896455081351957046672016742965043125150604936426677386522140434629495857200112185321046064790544349135430849817821079380308049126335864244268494002610931016343157162062686387205175055724347657630833282844144651961028726851415294881815524076669154295178103815552611917660006257696918499226705865332261194996853393692937920480272736208731567513895658894025597640149440135926747741648314267524150771077140392404343285139081142526147980678795201468132370201827056071481488851814872712309910100180412015118104315270187103473385839881621274943380745917195167283341978173744785670043826246654002012511937010376707003482746833706228471390051528334151677216853508346188310741081018469028873206833376193111878487082172113781430243431214691028907782362524288181686000714234687799515867623576161310175060731816867436807418908683139173783530772587546691938653740905701170792009039714818138671577367859015140471453382149216399315194444133268152939417875177870579387469137960868941656906928112128981902856270348977947751512995590906118171078526883646435119451200043282086664584755430457644070563309400197521642603657858472964485152922821629756670076579678097240118294128680142184593854014090174794443409471022684666494741612662514769729068735066207646573602799770444607110833475948828062189831805415050240733207269563891179810766395523759212787946756805332237553748034873151106540894591615622123972273305240723485111172227156497918884126878921472319001451311961922297303962289160374596346562620439565128824485360237362583825362718235203093162444963743586681229383340413557380339970847865609206250041072224572314115399230999335960184548226809458020601134038729853228598911568550820628343657173249901331796831946329607993145065989461597650739384176394901028314246250756139356272972766668279406021920958871291536892395099636213645584236639383570134300318058747506855526151589609956159716026373339641325398004743819975207312560150150898492698843562612015897420380339227562638668101140891609385978556835970436368358571018827476626713407344105879053852815746882582433826342751837056614932802391926687642292585264373520034361337127862577353262528878432803754332614134076048426809305572281474960219041741912474735611083949482680288017406122062846513302381933583784624275629105481784877172445029807401456825872902509260178379153441178252348008074252211476257996611016986497273241983597942064331966860351489030226150907124609775277967988998763537864078068695966338291324045145399627910924936129543351130710958003454186974866589712533265562133110314574312374762122814849366715263676859875458806840026573167821116311859484554969692506760310671284339674498185734195479115090041121994123622200484072177491966518425961198579492066544000055708055689859816836049936025871441393041338017683972467398829689520100491864373997905059123333256402296740157882285814794106513415605807960224487673097559774727883192838099988520583458357908582710544454265497648982225229606139968675430430017674648300617461005850551498710566909641005840635893778739294700169073407358932590172609307426356045196940391022659616583239594258193514673680708195315015595089704206354369845961865372181812702352354961884118425415015999863922140543531113286072774095043506876333938278119628164598423922178840335450689628583850067308801945132944254718621404117687731573472305309136569224341230734196318439619056139499838406300090098599513498278292677601389819060020507847080891100685582170969179088114485800798580325082484479778324195862028711043639663925376637381491395970972672657586765813603554304144157909537184927975320781274160306849468164228354329562033161454604814319461343071741447789961153433198642981380514775617365666303294525014869434187539909447625249914510831481412592337674400635889707766564887075476640160000947562172672968908131341766768695371799621296559255242536851236606010795868147198133356383097504982531147544634692571495015887127628257026030569309115434662261509297097765036804578116231828515020053019839558126157811588438986054349485276879367051862499455146687689310664968681470098106278503469188926367156045169558945608082485469975200337411962266949348588013611150128253995341512592025566920881815853582572298002007183032675750313614728228429067271465763204834073262251260124197273064136597480919631456956599291137958893205667423757403064117349524188825987258224932119720185730715936726942700034103902339450792263948787200808636698673506634435517163053900918297697764658808990972345014350864898839792755152288615116468662405245803560691019851658657777609245465145915682900770833913296410989294955670240046238979913617255534104038721967176655159167548157196664628127442144418262523897644099321555133265001844421022453288320462498188506482533507298792618766020638020719879526554715135310605535861575553807418715096186367729429260713572666251928479425655012756143960153016309213502728062808222667530040623364925416237541721907499799449808235590127719938487528913814182740532079583018367261396059930758237896450739948726123849866062536654280377954528831652338953802428589164229271834478646921658661107318121800417654498646993605381954977620219837584270209185864516427816530730585401373994982047499370199945815743214903883680902223251480582504785118137807917392582947019416141271359890049891411892895627613421487992206854639445996439895631577053822220801762580144639978326480279606437109978215690935779697152507498679051223964472751283118696876988920888682487477793547050371687924552262804412989827752543901579442418156818311078466199263974792575669654068763727623876817067073878754493091412955419381722034413335601186774619247420547011247437512105189587468090658109736094489184405060986962229257781001543126538387875262880314721084936445605657464254187950506583951988027941288597927518854393260161907302085409014752830746571205187052312678876854798408770973863169311626814644483745392927421265773296648053526096117933071178211058545442615471531554966523779542638235860522894696294829088305668481894542815699049716998446091607665769845350773153729346160785647289954019133863718575658169749036874805238185442598694360126838700828816831932570204870154444925190526379929679043877434476965978179222577231041563372873564282457320081269402419083730194995796263209252249663533061428544468173017426990031867813807083677484054560750632552827035370034184306313670322947842319150215664477347288166250375896048766184350527838418406606535592259647844113906885817694336939418092026185706706028488751045546438099737847293630326677944381224265752799396388366627421054922299609173986162319952706478027945501543164150888300775213753948954282017937370785181927008086812046832702304086896943348937383302345013898721244337128711456896777415823989390976038975307572634194992423568660883829753001463286386897717992993482019162611418016886221444918103861976562015369749274144787465854585075036830936814021327665722194723298099022103311373522471714135491243109738309735231719755087923096173746643406945328730305604882870171548199936977125163462384848882977236556552246166927528544215714656562137575764512265345501628955701670126566619524713957813142911059545337455453056479248396544876827749790461180098871373450880697782776429811802798578069331807673471349413626001251726038755294345463399028391859089357718070243319637539798998714968239235108304199088673172060475191221074601035826557498538263573599294356910801421949868209440356450246516142737959525448537432565140800622145131190294097220707876336743608180500466448818930271831578169425255334663450522719528630909755531243847173247741196744350809860636518937431206459393889015758534281429238124944879549487575030969062188055818267975569380789211851213934530667341637228881022526022085991674862674748830598847431770447109088225891562761315507836212412268651274469516305682036962189235777334047469446753088701198957926614209005991314124557293033393584259817569493903631018710365985782350256106676435041086261144329377180192399546915727720288577987658022605786145670362384096960009801098113068094588292381094747536310127871675008238755384480991816332349779270489978420414650297207530735848039775242018087236027502505620937831732807329541650001908141673434246377962833088318983912086363876148090998132834407709789251315937534885916901151217542777514703317545954243391235641716942569625327907954146162757113895331029249479343287177434638700327551017804042930896208823788910678298566964388332749931402726705188414625694413133979507100202180932794388153908898369170270941027543995730629718023586572648952347903610372773619690056952766134575786855915236428018652620256925731869920485433464728283278103350873759593188898333924480608875757716795153123819545815117307791703978058686196332579320704839642570459308358072037530394653152883702526281283847184717435697579008555763396056374654781871631380726642493693551168780441663213112988573107649706844062650835438211632733172216016386313880798566778334929440388188983478528260277689922112295700593035449159951415488616467792439531362174187577376369510822645221129896090287267221680034824691428997638828726932089590812642139101753438872846003732635784398754218995105066218160684859823379920191279864239464708674733234563515813378649481636302187882819429024351684341153461558028261153357461329225161345748790312282772260578848325417519797687693762121285576460979110159394974846312051555774247956372462702686680201163432460744755059509438332771691124302778927176656525094104647658391767218133625241630040032823615716552064121422272328485865823777830339855267068566378362526757612571688979236933734191709837908727288873796665062737139925459644556543761169142439591915006587640656905538730887690425227524636516366359347925746815109205475986953434399350476626136190216544116846754022364838964915790209363161101204824147827384727526749637902036830650182068867052647338480914655944633495857075867835310851330474631926724796100169519805505814299064985421369660673685325844118908143420640293300818812898126467800411443826349831442782293627569820306116943984673214215162077262991192214717897867032742986878998636072532384405620491101199972404834477301458767477264766375226772245109055103055867203858761497284994588394563138003118540881007585114712713274312168180416398905469626900327567066638834195698086067783520380579155819235374196632658307300507608065179328811092817746751159552038851046374931357296015869841480223699538284104693761358491385676059595384897531485416821862166460133773466325179429832824403122539710379040965382264473442850300954035777298585872604883964255306734725099942580389155405237102696787713703089671415418990481648140634609861501162652791090496706681178307203610735209129644094261767869926680453479577057263827476887980912674189129078795374849339548599803228275437027713870379523079537507072750327229097751300596084551118551683570992686241341395169511774859622916386494251792034672122912634740921733194406336298244572202751137261638039357905563175861626190138108635414825802871028545638015760801496810836837439975475147442184424469189823559476653925413051272055287366206738068983325932705793838150971179216028288245593805728139453018942872071246330967990560215783039967626928589470126603703084630100657236707609246491048234925501563377101687696375938474917778906184085631377639212837438443172943897365953811866082248461606579661725880605626754532825007270997137215415089567050003302842298093274524822696807499395685654347698543099258502611665760773118357448551107462511528702478658026426027615791838693864382147875907775888837837613031997849547777740871463714725881163164103880250958705499742748698136411825697916972233696997363727217774938727660043406983420271821127876394900124079199832958863781164718753192371852700475427347940637005575925819051099324852594736201211962350981434102533848387202037723179736983965147900015418601446850399257871357580909265292900595275548738915342849427616174620811168425961312187084898545468169695113446907675696494437849885800965926667897170504173686514153139950210451545700216188763392290482278028117454578272792520827724236957016526212448051420820184654151344951989077273714458020101713201470906476776093409551307314019751133577461847593704732122585307690018180890102832850142882181226150371474547289969654269573475029358584506957550862309293991174322477214182527152162545143646686410253081510498963712025904499235618069661775031847092138385781174648720673569875322586208866745508194717454969401512530318713813427774153484441979224349121805247676576831533849581608186993097077651675796701424806397222133587611449697569921761294502857244197838174508893294653034901229786940182853741847245652915254480982348346337893414572387264145331724763497326447841469739889150721838866643907520574403106693217223813614421250633481796074471798688225687467022196088326432005764074758043561142401670705711875141468076445609326014586334819228205434277103125426589422060091100551537404852213671530449942508339512486515668868985330762923095113055891317461279138640424249307195278003294611579380398041413569839384178992044817766936482575340897755621773447063462217351432547459853196817764848071715546630833377515145447963990444820225309862068374954500061806028989893992944207024036473443852523333755386715163065748530109480550608509726567448160710722569839947592556992225793543188640751666929669379363099294843757003206450057744158613521211673430025922054360495011572615965186166730352294697957391689883795502002116470512892117131241454376778133182826094633234660607620915699926888226800779783879253951945530740002507580296323412347571335225882497511306235468305465105729272744496394111431659023800928982999838970759831144151672729530911455424399380783684213774670491531201519424878429976500517324783832217491342038392275628608890249168669638575632310517893363862330431357629189911672871988003065039943275939801371198487452587588621720390901548836644079442572368357837191751650850215216331476795352212104746650147346848158266410009567522715513167941077791798676698854562056898753428926234487592101838521939036235656497264837912225497310621388594046714612992854098550532365520115787313642659267882918614278367511040498994167582043458538413831595337947016867250877752487081658165526195533024102381749593814561920542799112636889572676573308117782900422162259053963934987664908872247353221900695480630069200834180821264498453461007624483112168051668577257371996141997750218360752613722937330552312465326320019495519492482186114548340119677508819964384563948675714369703716514218116163438382864785427014181340995138883465826199465976031673425816712579769427478477821571023080664855588482637550088753241571701971459787290214963634756348542531350620272597180777956327495578254436601278955024891905655758240591311841965092909005737919290743702135452070963845208157498164077182374688900575205859604146240124827230356106147759110556369483202841803173305837946641374236131763633832065185137417881534945131249921670658509538159511846857900231637480631647587439125604585893946772622945822902658827070148133840354076769360483581673619626717934239960543602922213888254917584456086829164370489618286103185653104234711262485834763881211478619939138860342442808340559077865382590955270994695877384671993751728261259205492581130656010397745519760043978113868571172295493405730695884233700099511849861168187390892877838414146481868002151277826102897116681164086896827815907172244882622284196994879197157230702740480317508958987032497367544021460039019189814040899091894820406125594208296525985323040489635910787078666794973635712422229542529514854971848497785533870996296534532470241002189557329075952238706133799579415079658725499996557202310123043643038668604705679669267432248238015232576201444238570765997879536807587095775943458968868697443050356089457506839402720879343492557646327547423154368749120094989762749121849516612459730594634637230523790585053672350821969624814680252998980923176328431530532736177095351735975356981913273166042727020761602101175322984224348752619860041825294218636054209610583142131837932271451430560276290076780049422672181431084865857161703890974404300305804373359640125630400676006536570883536545005350273163302596268137238261043568197003991603669283445522423630668203811153533666696885458613394826500855832013261377413195971337273046798800305383630816948937019447195806466986376457885713435252973944084820579372110476618624302870535612477825300886868930522484212924800596825703282554963856952930353591385965049752007785015641305794905562671566914759951160418851353859526848370726574233061176858005522704449737092957689480930504817452996168541655108455034256354506095307638075518795315241624829499749168753671389576900339145818851101440751656242762323413190129208216495981403289721334944522496081601160144020048357129642584022601864800302928707919108732882918673191388671015888029416095550191704784704544051608699872225912886706394020196233120429308851131313034006039446137447920232550948460733480521712603103087826841269564930778813407303489752237033357076004637140235811405144859804648463386137474180689682748162745985825520358247265271215784805154296791304114610199666244286374360196988775592035293193938608846197077986642270981442723591788648079238119208275657156939728005311093908528607720288902817575451403318308547320798657131415375731695683395298819735920875943617163490106700479035023632886053856189372926687018152411510703695288426287252021710254297874988374275679840812828467110438008815315366080173374380933129616941143910180913368410102688888647461840524984587620818836642261657322940181861381373702647142877982002787633880330615255172185083912397254734313976540785082273977306543559671444162699131008537203788378572133508029829978925565516644775599366931648864648069849624126530494888497017199618332658954577164720254666604773452662063990298858007084136520513001671940868585872494197171620866261759541999206896724446752702449649674158137470518111829688642120434024806794998731728411283264666622242160017840480575412956890676035547861409809494983324745610005458134559947492523803442702158443092770323730734108300524391271428740461927239906442709960325132231543739711247742192760534307093978703037894495920531395982024305738449879282909595286018296313861778301059447408017439224397259522895170290328301729418713817109573913304647610459570369008110879278902642180136721807650222481076036499267327201901860808541239332272536394136867486549461352819202028445046124237647797041107202737765598967160744555535847109583166821833834855714153654259829474631613108941574232656393893841605389041029385983724890208294549394263202233636028897470588603470217131828771731066461678050566548464675410707325705135955039684985078267983093560112973017282575291483904778420759970094521551982208051468349654136506063851351104535744591434673017115764916116528444048330101650155654358915073009674737313282143441408734811650319960508887388736767660701794768328694546441184270610181360544779296054321396292891376455910617601318437619554328285156480660530445218986098691991882029421572424278232202944442851333043904044452270991549606031619590698825019797637340608431138644165950863995441116537317562777315638458441409611808601507556399430140199183558126773720690416196579257629671760013001865451274906834674923800075456937200751076522544241936749746619806720222442182368194481062048744541908170267490951466653350746358451319218243332762019053667554101108870465383984382134530450107477938976785133486952617458662814265624867116486646415108313975168866655165343054015344629525148680193877075290302680581972063590749761025343202652397653301285432847609059723104121061040060702596075842002151586682080876359703838197186658270120503026073310285967447558739912855554233697617578683679608976563199840200260359865136627082815399258628165686816684354049692967125207240443034586681447304922212769602105873995153868861162778014397140755503532191642614725565989755851279231071027336317246805428749923179592486783888049620886460212117597460660013240554861793724920076366854941052811363325666498624784344399909613505981994858141710531513892975424621850384655103649045001622102939049051601460543274686894569348553153442670782621056676568723053675550128673702962896223888013740980088186361376741337727044172157192120465987058298191799827889378109215480072975888021083785359634629621123515913352489187766345570800661739187012523888016438699265481251957715711000173554219169872592532909753163420988706325540241755183936165541963156808755041661336748704136351962687889119398587374907630771610910557083082466561874158655159725507717931363716682635701782124271370507043829054026213029004100697994001039589198477883063637864601385203501446775948426763179091579095885392869026819297894076572368723805275435225652900004924878476097547518263983928540664679805941705434370189947236372343043765377880222715703188984743442464329024162568056721884324831927664839744595227126755676735934163259621803674540605158628084422279302975113423687602439563802318476504072146923639370665657805386892093253231430074384759064581054405805266437875903107028935851215581274306977834513485455226277204781480726389872370246374920187710826608478694179791419225527472442219501743596297583702535832880182932564327625974711213886438322702169446095452323093144713396359541240690638403739745171502715396009440643974165622766434028780772178324559152825235430391420003028349978025082542518521524339257882372475583916588046478207477508193262326432427564713398017033939807888584049754466051993897175490489466535662102812265186324773069034862721287708722627913773350057512051756888743411606169065409301586670814724718012791335388581729677934271393210727480254103970876515808522891548952572664207526208350422904904419879444673085263901665957466107447116802433341549142282082028489866825884834937114006533198032163243160930356020300680521168530143259522270196270819269818472834410986682809173861007834220383300283811127975951756814154657329659713581647518303258600758117696650508797193612456941243069507244408171784509073724661962764330110852849687493665847800494166325158803657128299515373724091555362369474878159490537863446418082644287729635406541661392869548203386999716312794509564612507054781569881336263785430675966454249274270893976838592132091109448000484145580369892872936863925995374251874769454620202354342254919339235111971596744796840857653959181352647214428806087960221838529304832686286698734331453053221977466507588401276178304637479893663731263217524706072887757344580391230750254552689186009435694894179177997172961046622331714823526405375521441039094665702894937643443198569477319171083903425165772584698959757606010319797240376547937162698249473906459866901666213281825087791277612271501890668789178815500393743960404264887084854661107227362505716048335421366529742066430986527423172788831796849199458724780302653458656502119709142599089049189024437987391155688758671000764421261619047826306186156953889574866959899711909341606568339173150563420105333994459768841005629563068860982429514606614075110736085341990009517380927324740441084374564146749296589600502069407972894455493393619788441031621510535187559892331134430761231764438928903875069230010686900239727874201402820156503851308792528648709235968635032814303065661065341401511448023912963729552100825459468379097308325848970788187762701291505193768179177543332279793833877932244336417791358760316024296694250203316016171108699729364441417537421505649072533003827860599569133618494816695360060368759348046876006401564846582841550785767793321983601277842391878605792851520820048140464078182790909596869600529126977066753911700887198135740832666945852517146702031230093734528915134077281543683609307255939322462881313052988394324628500246279770033959498624276534180296903270078225906513515627614337056841853077263696964772619454394273887582917339782881991166975478688747009391273103083724295504645941840249424335318150728483467901223148251436114409309491675335107617427428840514484026639196575074911334796060621450842193852965258268115083429994536219662984906450288683140423623834258409016393794036754657440049493486059146989958771047040472441814685900937175440716840520020926317557054627459808116294171168728030790517878201643651056542048509515970756510525486938794782238807309029521037194706039256781169147455193406641485858302210630531180316603038949219884462016899210289066092722191612108714746542811553578673303557998928985209753815239376643733719635789893662837563225040871609610906266425806274638953301167872003057063004237825637331369476118299633910391574599518362892133789283552206790908395389653752357148723218343741268630718850971521979836649984004840539713182464087443520780648463192219360262832907734107021155158444327614983363156713280044246521273368911879484464284937735619635816206930241257338774735989698151699134950210796167829506266676790041858431793312387467924602645072390336072129176131294566859650608634380216846817491299616299167245323462141959850505509826873344992354315078496802436206872228178994501042653579681853601706456344529389224727782587709068412079581549301684239595236345504793432902281109584343300480769187182145721165351366983721858111751266620710952300210304519845627121501776835175687516512503111544091154019459879825953079507627952848351896269840140235066925114428119644456598309452948941351364831747693055778996468153945731241360739730556671067425188905301308430986897734944318852766972846683001097046216298873954406055429069810962979498225868181194567595745577541063127738443908237387625185430940477512404928283578115760761262377759284262813436323019573822383702804299723571451805348870608747291881410447851108057076141572317098743982601253436551873402097969748638202275560495699830578380285749725483275087901499755736058679103724704490595895543081607598867194936237731849336327610326234152722465108222907071562688546114871086430477865532208030325354619492056762187654014093909344720553392111940017347018565512360577902434693227188386911861168269030337857182357147263024608195267105588280675771259583034513604226325881019827978277520984879650284527358205244068834047355947996396227879629854967591973920833871328192063431160914050923081738009897190305527991191453049107086995186686819005671393298306813973697415619380832284723453804686470874658211604911175519439323288761249340557458644927288435713115716283007603984910704055098000418085206866589116817483208132776265623423598904068254803555381106428553144715596450671144015038628897586478927024948755756949180263412453795456594783026408930910087903890862189773012483544651619007563269609823534495709731146441673752014970659944970590526485221515985046843561129026679814362149692021573834217834107281032942706586488488841645062340812051852432105677480076311942261267779427266900355797998909122525731681013653150529436969532780494740552998982606708818286554001931748948853099821171204938760167564162526107828094519345496422263967851869416995415298504143542903846318900825548923013886231144086082237745070793577959819960832350929773433662442723936651202553778191442115614554418424977654780710952347864105484952625826372121298547040697992708110155841187840080319240852243889331393428604753359357900467526359967774863665294341454537963168232917849200241484789542800351349740713128551240954635502745189399459900754054671257957218840314658913850539657103055617354836716063223896267023562864601843211280221773953013546353037332560553324941592408978872894306185042942773745047117901510033781377720101426257519307749731286070371526116526141010052243999471548511859049465088018436407063822929064451633450383757383812328679963200172372269620851621250069404994534645531440393245261503731432306788087533799862620423410369543258871735346903567660324322288508705876663122712500746385753735882307416243502115048604234032098689285449381423646956198719919303852755509900542542006463819855951120936849467942214842381046726065650144285667524582846879244493941762229030406177634326744857067109458201659819903192984066524580324994696624109558385899436481202125526864578594687915490322742888188077315736688380727848370036765693449653518399326043519127615750248564685954783083981701367742850955064793488009017367133914033114433179629124045320811816704525335568082982528768681604853292999919082299664648480317213278028303982581463055672638044564350733814633096407895126500590763504557329126377202690921648732730680791403079178232918826563883987404249735394495842583464714155527994793811752406411430203978334078587347292339103686402375229396166914079647300703279846579585484773074022581109163613136438955884377156749806700851423735765898732983302585988551610109104128885430155766440503460646242615365969533318012204967413844095646366821267526115437958665482810800949853167752523741286919733409994840821767497937223656347096601402462498003141853104726020706540820324265744670736783129188122896667129011180940863480622233602417378588660347078313840258662618269348066053422346548338945603526241517351476419182185009835790584986101310460337405446443274034290126079091478212225202426254271506942025420122895650036632152689328836298668261666844273756208274119515527159885958725683933872039812532321044993484898955892348840345745465733711793389542177998120863882601269889753555961549275879174499370843832621164410880529873452651143977947293434441186453209210107745264522341450481376228891122897796906405929164822191309367440403076995730159342232647244596592412503343142453505551921212633618763458469080520656796557392188598124720095946326243561937174337620585120746483980287393785375201368228878488939534762403926650427176361282194249464733508633959150528792504057579610939004600956971927636510681319857557303919429061372505451626587814657830313134364944904319912114935603253678850432945557314283103145570750770907326660920114808024579618782122482149653592781144307758997161845606195219056629485990259031208828604001067680623658289248097141700393205391003062757230092635549373824640445732308043221057546971703604142108652481856124284382127442474518731121944912778170397756451643095000992963287332003533341953498968843644821803528587309484776700154722576762297940855005831395644874926337887414640919620498213211355450629738522021467700032572011717072457821378816599814220821171774937627856949916711302805766531836719434177878397079354479799290890453993488430809379442549390671693999165673754759277403899471754704873205757334885342391090336965595402976774800423564679043406508837679478891013602982927917131111938997415919921306837468279380387279358921696797149342472918002373948246001372729092343470582611978943566760903522594721533406539224958863155009007321353473855366660222999837569345120795838510273241709788143461805574138318082354131624134244595979273067217754420815957564224018358847586368550538367487576013930137852636589188010182601068744130219716568077438950459771212224152840037710153167851055871288239797870230369148040840914955726988949842606396880956960558617945717222875290261574159158848238897055645496726708978707734918594460782736862449927654450962286009018372500609319588827393869453339257346347744127177903299492171250715289913981956724634373641777846489216615944439906876151830385891577134677778330623763884176490488518513470502356392405553135725837397264319603513153139557174182065377118858859899821169512987854083114196231188823820875853887398100315639149843586099335078170585666909223485378826259890605097760391456921111858769008872089091779189332621117854469644275610195694018241757605709342641972542737699194055309413588420977787885930674420169658940818990673665644859693681903768251241161933527310925346376081820281158192607571653882976169653328477309554851024964568899857726896156473796864354413079846858799025918004238867304365323657685574176589657649880856987738051424474703453927600861027121227500820268447055874952157873886200175262093590480931988073139479276347083335185317024702292401561857136099782974868956653414082987792997611425961594619969238133206073668632841286803559254573143811005045366928293912529475526842146148313380863896161060151440599182116121576768193427870132500332119598788404705890434842502313939836046807483078447527229460763851610996986188690022206480671269851619116171467417869068988887186311278018608105519454177643125157561008713765272946806360655208796141789098140572835317951215959127266071227057495488076676152512857533589889827525820158811457089551738675847410558475874977564367046716521175760133408037514095699462254442343914315666221264210542733989357189356660500141508885139780487472242919399978202637998127606375092847586181921349187835401187142764551066225318641009913860924367523852576224978964839565533880780404646081301509022036180382342861105609832281909032703278340134027506408246952207198645630792078480551257894098780528283771509957333617149295176886799907711579510633535926616353399673404884536859210742620287199127257661546179820899389358428553347187425148909822018462146843669732382746340763776880711815632932499534601587729377442428179183348190055477295595144019744643576285917609814629612905854331741827516935929882123461504609412398851982329509073245035371855315642848917632600893903867454952470986738860979367713353716171131932752544663192054108270919901157800760179837254723116345717487374340683392788287052676250733203298532353370354315749515546167487310285920475803652751398559438822808302591779093860305048745378033366743443120146534468056547406227274662539566114928038887320416459431222562544044588414168875280400875969010108075745890378093279209442985748957391531640806828048663882021858250322864350334264695268539820784256251695607724122379696001480626779203490465604993582409449181631132034421758036789701695348988854732162495865921532579361936947568865900762377681815558762677929607035883844511696070101275580142336861903116429888019162833794690554200663707791843079471952801446929621210047923326598803075009326486026281586997911310938847569707290124071158511188697071220277547711222822176890311889330339728194097613788264500366478486072292815941168495116830727725073429237122953630850830659096585160883995026394855736959895951449771566344540343135732023282723550710534668319266375683170024230683099746315005349529309121632249773803011243464226991663041208237483311857331727318718560379542640802307347732220814634943786479178649811339339037184870110292108888642699788581639092139884327419546182399753027350477952435883522459023940210275309474106989197948490197218603868914247595073497787557779047473978376284664454053651917784262944100993313938883152435016404308775073737967034295943662084842449468328650871649104402878722513571712471189466736509363572995765615245740034802098616822901321191584872264912601117414983193214103394553558635904559916643028955565547144427933989040058640395315046909212425357080788694774516295710982149212150692374469348546890895118263878380038060504122883185624744264905649314929279888990875525463977050540687574957677459107813862594696939910799140844638935839762610708755407550839714185299748675185572137703839111734452374605763501472990940026700494388526205721365744555935405875679919785100554256464353183251382002593574603994491331992146710045946602035832282017839811925234707427570199079952005588006409096985175607348884564509050750928510600965055479574250696235251599437336569032785589299443762736295226541319034743443954794652921136125376482365504648506965140817861038037121139575149100814035939766815596043886620388829670122195752562297052998908977328901676094647254128814123012205321935526878287401897282422328656409005712593933890918801740361588449808246382078996809470158664320721515226521396937315822141415841791566859251114031361505011188119908220313371950807441448784008884821097251389078599719342973606830311192435195764693438162197809546558826892613492175287595854822741286619117537887864315932283537189770004010865992974352379441921235905577289975777747763953943740957815503113387773073886852803542047582680623143540895162729923821510551749838021666234424301858092873066470381775048102515478334967663281378496011911966999789027659526378267061039957608025815974741108148830717861521497002715437117849718672969544330358793056555162074978571708953586955761262252080825613709446369814139110534576429762130346387604159102367260693347199104054609313015278231633689535282601933714601054107789374956728542956746919209868578998921061937008793958243692975696170202528158894102206168289013921309721078552607705233568562688592698123247584855146041764895890868375997884861741332358852006377116047477271882796512239896373053368050280534996165414830371809484139562266231413693315022079656044001999118244401326633647351447773631657922842507154521229747850446353950883852675955808437266754265649450911983731920588344109775630101494824019745276150447002808795799320290821914924435999422307430647711984536919373071814762705750111994175236833802784868963050151704966329604137648925774719436636094481087706197603752670204697247627504796263076765580939553260570510962206449417071045088617449686103708168024894810993684280131472892424563249075510425098116037477411076771413466890565630563252989937027310221633016298818453707425259638142831185963160047077887560910490966460621534296736209841802734705873962394231128764194341798055251541681379861648516773174397038777066895553385042009067959099272449926417984435697373424148269008181142660010967481864219249343471346975138209741154957981695678785275033337165646070427836341298740715379537684071310926409922697682864602367876553528941672648304039648606656794149989352755471880031443867545140757411381630083219933126699915550729941603429224182801820849009274944236572870234221946326749728438050777454924205496407977697602305368174547505493453819548725453300186163759570953817631589040173237097506892760673289035440781477773230733446450372016995778564361514309648057174895832565686925323915013581457099661977697592708618863623933722341931094416468094912477881176569359538558984398815550570874222659296036971006566231523695387545737136758436935747277272673514739318887163374602309998699978735314051735632959334664388178272365702942224473713789002025186532802284085730085365601843311571750596872203488208918331800136066386103541201254038680393899618677202781753830512128783373519613780829183363414208465890208159612554680063235838354681221188963452371553647469399019936971671971229445498245144745881987272462910327245285838790902191303037025447089015876490127470630284707207540445968919661425849999123237629236731766421188006607622816384428758770854439818865305095409533918398868238129374313024163724703249878651987024460428712910230777007001981715179070032668360599983801060329142438680217909296554417347864048975573432227988882890830127117726488922341712817297815433140041449522852366435581424867336195936373949809096253166835421515993014319666058612858734434527197658939390249366675893701057306582921352288989625752495612000050368089320808291849548535127191510440890080609836588532469912134407916643452667983224935380977243942243514533860309766904694338892355667559698820634854170055301092539634732753353457372844705433268868006673847325667187568362545645225982496320197480164020360976514140668464913927680170975048483148957780080304358037804104093332174743153956694756138561097087317412515990218125942889581675221736311831326931893246335619833675992599318390428428965512590509801834900978583258509736051814119171903667222932669069001190437127627408272942121536767669434782513697179350617050422096880848347860074305569638921991265117926543599951567209918207597315915364487366666640137240812618540857277967970582230231561856539545040869495903750875687570984237835811428997153768953662236484879062410164949747167563351748816783277434851624826915407816706757311169318405771173907833529234121169720387084851339685054630171673428538080346546418678299311109003780379795539112786825313239220326840848712708556329973432648914478359121771464743836596215150591422822855610814181738700054842439019388824186089623425144809147613108083736080712253372381346339828513499519589141189146387876279351508196278027584639253450492232700859979988205262640991691977108321530166667287593439988305933221469914041670075929830891099947396741489705949924687382320255837149926251606141914811060040418130095311632429711965488947038138466439251027867896900961683053823424267357340859755985417966060710754198337459534915190936729376969543659261089320275525195610445771692865093573606717959222588423178188387789866634050882091627282931032851038192474298834275857545609215050983437468878247878713201500010825444436609349387689283449126262003686289096818163754106749405350993512368233135561079056041591310095118503565071649557168706302006733179033008321839532017992058322123632490162922089928436367063689011571377577086916781435366627427700536421550942107966703410984131581921276896923969502986432906416272047021545571269766553763808238826708012137309467583503723396719898977346695070393524622204858617067985564412125909126171705555761191340123245335072542979511690453072853123908725233382487472966095011392469538152995100862851117776180129959340771999681093784102544526491291688362456766878535257968942311121825109934946185142244344095621226394157947718905757195555796298581179400534824534738688845209523873743546258081804915275005424140171868253486715999486714282733972995423304249828518019865392860130371339269240083448367251385410280283036396974248930349301062205000215013778171288213033846849706604680936698048955312478870924037627468761163103872070864145702836153498901781341352307832399672702353065786570325313131015943287854324381635086570763996870613198127701380890026561866278268923417714423065472116942251763445489369597908737216010602391808434913446129785613510506948836997420413281930302393760775555570203486173063616244027185122666888861052449560447533759715752897887903397613421213966483246723397269779297072488557456784825037468161176006406752672500577159014432182602271327618381377162580116138596359202293296181428556419486757772681603226315842051808928344335298067641254623229264373094185779828103936993225970078771881756633343886253571096363182409276806844561412907774079242414503178743464982802443126315124009568309302968610026097333005768655512236905006890231727893755446781978862929888173259859955706330218894317370325231274876318906142143161010383127114021561473364401148180444876973573722825626678775867526695722962923386438883832569442380595775413823717646052584823066395391766339264658650779672190472486730740567602389308038183342970225902618993352686027711925919476840324815687415342579353067423087691674032923552208149263233670732940885150166646023642221882820093183557808253029005919640450742482632276733433832348652085020513392452071219840344500101898231648885953304590208304843674055603787629385180715911438984087304289816253545542946942109830891714969850855717424234701858583840912647004399757414234814301892463068104722327447269859731938775886743062965537005170746905740674934801334960425230699307038419750214494586431127257096940656341877105439965975324450330300848265969538603993319637619403624048482548092795782983610951035948797237286580221955329681262965373891244704491627406563350237323846008677637657673501589758429131376086077253451249066190528080570506471174231497499919734945483212837325401280091089666666794754613764250853828035391282925149976577953525493492080198407696938317542552355803762208193308555276219971296752809523823396884265805200501302278076402677056354397900548096346485975218978856166037650286012926531024876147982447496788678591754540654276683973381289364292692215942752951463609908396195065792699967435747205468257917239704469303152293619674699887275887462305961781564487705353326089242889542237059197694444573535781681085924611142317641495945856095268990859584181016415543541479664427422950149142982034643168780581303403256626804466907044466814669915800735145669637063737464176549178513130923206204007407256510148284452717173730023521246510781012000943735224138017679961113642405049206086945511410348985034661245868585478039735402370302324182987349151559822975191661061531659558762958865358262389751354464630398231278595878277910359784336215868723194379363788753768286585964386249556938320982133969766871517937681404721353174242779210040473156603435727989282561141438289179836210453656431284151849204997729153599796637952859341541486848976629102423362941147399732818148621062501931504731733431877124991876533928313676837014385848934756446538778503246287287543428504229718557597813125815247125073405931405219145009586934380088566830171600622579632170126512609973158791799834422066312714732596343492990720944347234860145575669648471641877386959506792032018298530206424587125632257488056001644819574787904995703899665769738364269140482491592847072673267509787362514085695426112400365407069645161693783232952705252903158998416217827695000818911476162320399890020054422886139552063913161072311692539032869950185547073399804593505276989949466161487201145072645078119955024182231194143876025705190821371614966003502493745877478567181876978274912571815111136666324635329836713036653799251932917406796931561962742621638091766839042737388246731888410702202931437263102501016474516150845428775543678020150389918263876718791019949362846392285756598751541700438402072325056570289969638212384788324581600622236620023644740343790426094274962858498407923072096388984594679518873728517765314817951079794448575030828424551853368158531254722268528101371023242726033053791707153838730890374756951545638415622336152107840469298023825148973394195466543359771388354650693069464757744533259719857206612213985813456057411052044274027536518094551880755177067254615393222665027382373469366054700559832372427885553560718872169731759276813404029910900479166551343175203821395615119872522565305841875646294170782133538495991036962032530817804367887638038452790954973905639519788794449540510620107724060167959418728479075832394178257545583111432748929523030532274713248945892341020832584655005232284070470196704066627755093632901469503048112950265136805015102798847059883377671379208242500497886402443101217983347655937317485857155912802298449743692796267407263329711425743008180385934571088162761364381544618855633160980413049898570140786942033341082586798435043109644508199374310330740499639976407314371263431049426181590249590755161754186667168712560920670977426217051792597452137674598764941084951445662673936439422320274086982185863687370680062972439919242272223766509880075149841758409713632591013183146969081357210584961397162956677919877202852357132418360970170289976182038383033462753092093881313588895291304648832536460058188968066631570359754902233461638399053857153267474281581184415519577158546208578613915373677483945226314936239339524487492643286813943818106722140674533028518768363556280944138710596249077268412618779869530924394499631640753222511359657753073039847863669652400623248283226801970300559110119701728134901592260215750349453924090412058378144596881857167306704452804401219277325500311527415219599931744415448560968483446488549904794436203212729401941337283356804016032487748457914553233934426983994352933861504870850507162392978184214648530843488586532682479793119925353791349209240182366433754414660351153358201447115301023151326130683672030472995007598199640805687442286986895725040984607341120611822361344307704202630795661174035554919656356666846909198876095733560625940414147370888227131571283505262853749276987460030596534854318991323962450063828724889865619430840355268099799534924911722541347212058672330088439027335328561180349396825041202419709593684899594280466552411929793387834839993532123684319474309146675542442676916999767236525407058160150908122705418329396302377792212085852549230025143957132354030282200676817707948882521112087226672531888255393206727529628812585406280071923427711820473420581019727924461351349833338238512251406921787931207660315971365262587350444668105659618017064115053501077584358434374353168876136895282136120528635463929191265648629372181453796015228732214487325028646797198847920932138174330442875197377339832678013644407740222763309674396950512038270253590148372094950618582250795972897706770044509735848734863547249895101351643367478013362863503068079373841165913457336006881273140750732046154720090791821107992859682567125792641976263510667053170311147626166698280065226991654791558343156184436125989488291669479991075600485945775069849392782912802589116731396941623158514076899009680747287899138568136528339923030232673490971772289913112404109321339328361707868259265258088666355110809919838686372330160850724618689354295648363143416614915938142165558188954996175954744122435225925933798369990397484764583393019716156406824699128280207998570890469576583062701418571225448215020756636628917120453221134788974934822072139521754490565641954952035260646596452755636718765571564863950719916855100319041878171380752424937824161085196374776927749962112834646079292205592735310970091690586058643815240454775385360804179782733791061349509025309982705279760994679669017543015455231927945135967596658722856141553680157953843023037357056106435061836608899535923776510147252050397800533387605927596549655441931629296674827430455035933794346524347978440127000314780221851841194913655212138674244203443879499788585173932967394193333737695608035066211501175206780073783260070164610215375314857995970579105726243281145704643911397092679666695690808929566587547702799668824335951109612047517955965362175868091264555535089623980976294083706494258039101429661965780923870618630676599118689879454317578357417785286416922544753390162627168165916725092449815854744085298769053575972477033683863458762676091619891936747898716855088869349291483454819251495957277316357384220149498920206039319958549584534559117318393629335252872547952055005651245252447345680942451475235662156640882212957454001464968964445571435151917664811067979100833284423610490893243340142543260486958690213487072323916057584049493675256358154877374376680050316941423789172970330636468683707743919172370575064955033496943667279108587330319611756541658766088965948060565720721289131148095862763559219930610934018403123044140627403953043208102718955227878437278722182173254944019190222187991131515390693889519531514871303890867697546937394808769409473063559253935989678486059853574145229368491670293384839967704004622734122539353479978116938920362703275025796989660608014277445036183257060698613557890142861881139004241099863854968871926306556775681737395937981479159507142795819077336718029696182298917166841845512562078140573893974612377993410946785334186220360637487008330888709796487933854908060331662138216991425884671491157868797670977476129624607385676556307237241269432827715453492085943384743817266870659586350751156505148680101561067767574974809947888154619194268084958626841414542214308436664174847872593362080667576467417551165090484797097016367471470458406574169566248461980610523837167945171155774195515603457355500066889273246099105482266942814817704799127262706430630558435178408203735366554847186338173671432511629584968946299523005740754960405458471192679828022999655813109047400119702305887102399786809568881591691203256449044519623307828103264804494671121072215495596661910909090980136511483689129783303209911460702116616999742025632781826519995027898883033348339231272359254779628120959959915698876784661128248957388846131816905649276183207115660454514310442466773966677940999741670267146290173769383994690832302731368156826468954200025935804454747715090709809297611791631902578007791250989684912958694356838385196623317985652433860795013005193617608848864469432240698226148122338496760210389897064363812487136631741655920519325054617211876873620998063055977763058788716718552453750860677657662437854275240879871236410595948911335821717760933917673942472962791070265834243436337414497006240714013485570377086775268628330158535399014084770824607458333996106811574786072096420028625379225200524161444583230306938903539010873168019352686293761810768306742910195223769191299455378051864348051755605236027997645269688092337098865920556970673645618436825418549020811861706888173533330352694110943970166086031980467480856839248152588407433421330645860747876703300546867948031121840850846543370130305320340212037588858472885330160100974022699382880136908532426187606326273206669861366539253555378707457627845839999537691714486863992370955826290730340469289445793248696889749706830649916009652867602028993461134226294595985970923616831752759803177497264747217662477917097708144520440681118862143641948500337896077210635629862400307230158164853908444738513558299097011986103454632130278648838156700751141187015253759067226590668951823160931181060029024284365610710652318955136208909986096203063191922459160056247847290808515396267343167084513802537533333260969568082506908825165796404877133991664924997688304718353308593498729626261701643016924140884859399233632285119604945595517566039694134753817859086395135285174329762331563138573817154103447824418605468404040149594070346570578811941557861975444917550272179625078771853436761824452567216317003783564658502155764622352729131318568103398334820862115697274050069859481534313840208972792823430511370347110059734188701175702452695729877092011117219190167832291110453997288606252947895002005870660356888203507986522311139332351533531816801922112518524110319137964516811730505229398779615383798477231506598209505174417975293183024654831546348815785825619358562061091411479684091002084364624901472507063368543667031563202495628348940072350774807062771725834543208742598278226806840255424482710796663193412202346896564282435579415048036037372896823796250553584989949113883470472907466119517900538407343532168222447260541062550443419930994384630423270708763582677902257574898838059250432314647366688199684857203113912551979661308095836221742019775310576625171364562397063402994193550113956095767805245038303597757525435991757317991791895226505356105327165603990172204001220264720193377966765685231249305274225406217397070574375751808242419002989122250901326114518709918083263531389433982355036442692649945190115539092407629792327261578850613532076409344450039412710098783392450827239097480295725913928120314380458912264190855510523934492893743478784409096992781179184937639145034359322111046657305774627736742484502463448927020499116842723440788471602764678440524638539747351932509720887119001285911285460208161495218665680267094387771411807873045783951924435133439321766892045221650407862086484467753284732917685126107294633677469111323333712208806282443124851080124291789576571208011486485833943521837841461500533583275901938417623034023469197699361102575073332577650222654149057715845888314825151625105811095774101189099725070340948270685035610908877465324868644653591247940927780418205139134103157328113211312289808676135739688319412622303564754092886765279863593466606939355454342656156081215866602954116619488768135249486436814505013524526333811873911907727172504146003856470429454003691935823287819125091537960226286181863907229435072146443294559837671813471253321917333804631876361981934735314462538033363338187516861931860151771724631309465708967811081288164856565950185029287516226044195436714277822497898634523538957937110931366870711988265944500510420119435128494918806280342686338525765226338445591367593193383205851323575465532989660676612754308239196372096046266861393816959991559916550238414745182590000488374634477246126955593604738405484598772951308685314875703012950428507037594230757887022993476195599675609876116212798448647387116788778542905152065926927299408704654737863276175465526232944955537934104572661483157870583574557829289915633882122737431842003039791223648683737171612350715644256045739369963190400043183211547193099728148752345923526100703120952623635214881375065311766921242497856704806844877727083570497638403572109869044854942302064757952806654202420527215831254715009595219857159605055496182474764913710921072162168919865077854116847017949018332174801643501916768364167420423251850714410883931595676772828640170294218789132925962277109835915642280564689143116831357252259537669417624196990414879136841803291860780739479264849065848023152005109226890858096435194603763997867121446866356420428383004822943528318608314979923500829562844231660740884524338317397654387976915518486448562762729224865235920469623307551712827904741536253961891108221937002184796816227930940550948858484238283074199754865947127523001360299936190472996004406935331978761095834262929521594669997217405764734624896324416304374450287300420707274239692104171911380864850779433334067702653076731485457586533324208811113123001744490669496339798032633431263739278373793710346723752809415573141420489629650369574911171309498552673007105554761035362486084672622121218175008227935887447137876876797988787507853877598558874334045798413224625254727018195479550868898394781737100840604292870034513512354034741149061789422090580436279517269538952700762083726143110265903370265217618750510486600405463363990945809976294671956476833409092996062573052344724249902169412779476123896195225162294020031507967783753934117831875747104185266154594314049296238440445990706887054900624268852653486441080278625610104319317069527214131899309973332309445040957569649832203509016403826932927143853292966986338240580057506289099863701236509652868170861102855788136602120786683839945308892555662378900228958288145467972756199572647401339944456495225791642810192130519842153789323990725299527929808966381691299696401536183761406058792816682767555792724511835019327872897222560341589577635984628677218662534488953376521504904875000649572216157597495776479281043822467345234452979254485070113262207281748262553778935187369180878789985721771555078759303423911014225146861355592338163939223339644918069981340610833807597970395561946824168037521527172635996035782197330257399501179419606944164244756255645735409142539697338626231346967075567182263761727748312462331073261329360220043434645750403265259088651284049498478803233808167088472104928272691355342531240140818928530120753049318310283701423430224927292838532126887153793026948938372152207685520954699763782905915610953242031341528764580972024204388290200221540193300390847278300507510335372062246913792938636887203910032709653129655609288546872070600652890861882580635898598474118525264091319014563132579274944644899932855753215808911935474970113053353128400561881559757504224719476272254307021012624179256724340570366226403927503906662898830385084957982398797864309419236729374208066293082951071500404183439993192489839293174105057373423897602562196533531576207321494303353770666074422363713343806988821848096737999690444887354715714878925120256272996780307169555696005804147317907418835311093809874359270490215295042898814466290780876527049230428654546604498832102754373391089319699216197277866604017814403444840376272058056650074766204041723951530294985564698789197678263342667467911930741600631509081309956661349476144347614619917254864417435604259090045800104696478626063107799338302386658982148977361911261307215962921998032078306314827346722485666670379847741906710611634944653493211046656801155894404913800100722463278945394207746077542221579377701088656349697991451122798413550141908600895030745779249818428540101880079654300150369226629920130724931658047102102088159577372318511230924471939176863321789976576556693858918786989006421634630212487252369041843316037490683683206490445982005655679975354153630413139232892241266075574568538707254224970129442595019510001353440585577647343201396875956087479035787981120573537937767214113679374321479460700979578818988168471303725946597999254899736131117885748917185897885165053044012882513809690370861757700096977988657501539275614468771428368712611353415808732887725285678122594554950153262523038024110452807463797764132703180853411341466956533150198377373264408131097131635675301203490429407222020403847880529733124215893235735437023028168395848018516137313366822669713242010179649004840154498475964309702748300401707712001911851179902156687897144558390428394910238885330820974307480476723872184074632816671198798190568697271208193072118662379390437885918014428620246222105481451784472812266409251620342292719870912399518181810015593375775509626205729752186940117334713178582114455183757489718717100317402270151417230397424956881691205097027131573798707036203663365644147257104311638219601411586449032658896620693023992710632980681052434556080292895932664307239501305445369611412185951426290472422999879378573803596588516118477488647106522948991988083000453633467002480377505544035766618612128418120483268605741390103865631373112803365716433124859368404947616776099538632392373581586275625520692831474201256689113471856897387391388452594792994369820514982458476347694687915974524391487946012700491887762776244367783428009220591583146110956223852691488449437149729025891824248260148130269618228445391503568393400394728315505626035376224745003052295471539745681042144666689694635556652839412116138094253767057506302067652853565305928097045826210968942058675086081049998204191417411554048377508238863494939415816262897482361672953584926041840361263404235506182906876535229500877853903355064980376601024259280381431184100704272428058632979225555858646411712802513124546993926054846511153821857251495722719834353298919788668259560088093214654949545119879811860999202058549032965762652846626393321778428616539054873597434143587186552121845856331655448833120321835178157387799725477948214705277730798884913647060921884470375368972119226482876215332306900072407309262795598568317903999056896705438058506656272092209024701780780625695483144447468430441669205755807966319042363958509150525074674068453649802638482148904671612411668802762134099450679912630659013550872609505107516922781825718256708245313634984799814353801397998121613758736408849908334188859894212801118695290557742139109422992559619111084473555801310564550333499924393419924342968316017407103182468530729783677195907059712189378956508886011010023493779014099602100300564462796830859408020273388671487547000109491901995401162888174130940984653134644809472635967910598685932147974642195738801366041279537146884760545525830472196664354924180109655952373958599096190226276519314525129686401619143994391918394830318305927947065080232824677054264848438558093704694644582902054833872660567714039639830102263321509114306736157915991212520758250910175864962739200260415836596821174310480122698981794101963500074050170249773580647092202525798563797702322524292804672521115103341496110334189676789422521258258835629907699553739781606858971260233129644570184351524252943245532506780874942161083487230089953811645193555180130627345582523750226191809531641326371810546505272936214594475920590566533152598029743678011853686772525409722082545062185717145437827637520035768052338539161751537985976361563605196388493817209945467786053013110932384302679061175535243954371317760660116521406375008113798493628380117918915315895106636212985511741084181868759188893120498069282702728986239760438164360030556341278819999398572757113459102652474833549691614885197256145130346877643055788642573323866748123253170800960375988739338344015674405705155202677178551883652990701007412293938267350517772368267351365145363726856042657297895412489838095914392617611853250598281062639126873768477904542783554153847614930043442520117741441263126621023281707852569876309694352796346761391096917863893853163882612257669093856209667017069510742651495889908921994297296987040757497538515856742354304025368083402873579910318163890814669829983602572266917945685478471906334519985285449326499270370591958726212030489770917918649261180975060177180086164571859503235592675105946773879519589528721727652261600258865076413144877401469614702081612989015892084139448238139427125479398786303545052314402926167262118773989202573753570096059154337172455743517343508719345658637855164738431490902002158723537065198674314358628269055720537113820999141127839779999322022916054576770376941444014984667129725179326922780672536957974846395100832572407831806050872486143685998212167735497218730805445724219270186790128529859816985563195674118224961783715457515169647932034024053414533456026426719337583587174189043936531587370866391349762578808792504226659627469376065544876526767668326656415042681235343799292458264079723294374489160341965013908701391093037145125297228709997535446509373292838218495773539596135256325384764424525039573600834161756298606207096199127000830017863873107131288286235247305521086641364049987563854559117702832649167779094220321318922089536359627045205377442276139666971689869225215703126571368422943344999193506439115029958411202096607568907422734347262205720636036552479203411840174941345253203015055508528548390160685893129325189523821233498486385286939913855481148374964992653922489375127696710610049193343735945900793068568900487940679523854123242180631096448268023581109370776997023919003468901327613218893319840622287932009622121186589833531410976838220893688433471061224811789816280557105923732336738906072365799836440037309722287924919982775931680238755647409506127337112853809679713042978033922114197232768531729442860929980818993744320387243486604565479184442406592083034218424474796014824679445541394439828881377820229460068125436944976639810712818388864023653703583903685594338164691210820078109799390462894054842739927234667015210959775482945403479168349732477309675829124277400926318317687508115027044205589082727489677404627489523281513354995050763159040545574060409108199021532111912249782864244913066187696944017518870232617127015504981218011486015079433293764883273893806756572181842691769094705338796157692656702590356145372793787905411532624172585871219793392584754766272269458854044924155221066263153422741999138576654717906504957975734315691869491307743001525999304047576247720265174423997344248328076070179637085458845837469198887782239441032760802988559645755994048778097150190224528466719362574534811561761714532680956469817812373567298745207848414591512207671702699675528898597889724357828157951063153802810307890580558070127779248805537376752113664522413668824085417850630986802329088537749983471961589106764642884472447013129711315320822129387154391231754686548606661095219738452262328864159678449997887581369615519955404200262950786240873725548136542100285631777611082019871047021977905921971652059069147426780100983387411887357483180223527866140350768296600122754967829694506631874685909894112402550852929694786293112339876620236416596259818443789524747567888607767611705807794352210090754950508299084178669848499717463864339589327184147624697481089283125777743812534250079334937989633169992633348110853009421841753631024249845437927391476830324561674062333422272479409078644000877301441384166290217593162352887162236784341609186964603302462882626516364019532266654444374356111036996237857673807484694998983371307387138331482506261428672210193379511534345548524377370367762623773371196104387201103889351660600432673750696285822530695928000897120934835211853633445382106358355820899209000342342182342322276435262319301793429384601507670761987592094341007687930430783581398020963702524060299806266743618865373457974068020169567391493920901374899991653057374344829100309143571732083494309255687998501979233026490400602736570732221136724789810877589276186966214602635977255615618912475678948175624926429320784614978897125995777100535297422455344654911396282648093180872463841426168509911680486735371823680146848058190683066705928789145590680419552701122282865687937860940088221415325604933811838870278496045749262432851111727940005504101889008544764623107094158699591926054260719120873510810092898269468643280294392847442430520224047240375256914771321373202208535164590626617174269022042673123366971436567241373190442120709046801082290488924209554217849379127336692799994850030832367095895746099805372125988869844983639546670326963687529144268705580946666147525064522526016453277196884229526378989019875110173723846600314408967787820062526950668726194379319265340226649654846340439654903515623549785350533150569168787385630623168508018879715789877256034722281073960887404831952648871838114308964491518969188651225518298015152527271886413206296376884048903299142203213480105959097612561533190702210273556036750877078396881906001429177499716108796585673946636454514485672670386996189361617566859641255292838712571513596131445488518222702690045898730041470779323747990770478872814683915244846660456426156206113741192676065544500819170361291940858231032218091405581037426511831557220032569846014635888168146693588771051406962154444142216773622754341224204119791845191645519844873869907743077178365949869434333032683587490518434297272727070059233101570844154435172329219844137504674828250303366267262520182258037021471041720457795566628325863355696590463302535336107637532684342952329659226425392507399551730923528769928183233469934192075105305182347225132082250552194096843687051679944208814490056542499348782551344687441185918411533354067076318037367313995325200049185223879138684783431724527616872587123412924927401585714268942103540213617092039934726964275584623625360698790829228407508928015791624515499011367433684778178597854260442604865102227254030854150564800113261130765111948982223526346413721123934463533829215119982660122375169856338701151283484143699258239895054371228120641628017406499709648719126441579759773490228428285113509949353204805062183082818368359913960416938508134563748856932282719094283437120543781924315280838431149143903189180595513797172538445882802576672538901810509273637931338731575141590917833512755634665656038260142904083794080140833406219647642146775848831062317861412149192423915296636730815117089661175667563512319103822122006733137835925909017381894832413002525890613790726274720784632821327926289262813759067387163868018853878929482565626034040895434241369833727192026626827508915061824174045562654030436295733262773043398655419781463789362775083744422531906848903066729357252996936484619021299075299719531895103905003751484940484313659624113226268534378134644108338937488985573327742403992208892275215030476004255053686829409275689263514086075393271354128069758661609605003853086679735779553291051347400027469928710863673047139179575358541887998570353052702863233648769748376133750032001046403935521954550627759837354292663192423043966643223353982334610069067642803567008015956278514022332821439276897167056159420625038387642291567390828335889080387384424575327309062146543371626382616264807869374942329169987600029411738315775136767134301472257310685095778680912317055752114032523021593989843123823597148931284396815778381769309793685080934149352652925925679218824288733049767105719298289781939629461299385728095489760170511528925414287618390169677988200024135170105307221816317510301963948623759197286589210273046289082403131851691403514783994641350410679052978541896864379805777296334314187708725838557785898259654001071700058794785579020756135091596851470419416478314594268759966214249728389367092854343973256094717574973634209312907566694286587134567728824300413141498622770593330314632523851760024087544853449057607194673878328778424836609668710245602084018873453296950401828452091125660900272853697703979928184688684681516481073433263235744439546251865317471950571600018552088953411909292660578237203006393886120833630925606549451173818861841611906530741662248392585487385608945041450151573230675261834284796863426296798553553125631666639595661297727102872342850462474326800545910977479605692539801690924263148033396779715274553188017259656232685981069343328667260615937782873871368118127552307393234877992618703560149218930669689374618356939095070324347438911044092872694831056817459455971375000157036766492847679908955689888793685372550150118980892754487322548782865003728435504368129151144035089742096701399279845039491867902273189521118486381944502075387527224366895840130482302083341836450672781433468592415040072135015670233076195109201492254132675691547458676706677439720949066312442880157771824035904031696241265527428676562100680404502357749240613003178986187893203337182522526251986525346413134812134549413944722465024078183077298343942068193976477593708315920330065105116657192439704896619907798675520734912482598198462899546456509810375652318972376343699521143868404693905727478098374352286624078751572759789075735621212233973208165117107312693034910847035315818335294244953839444732541570513736353203824991032346329655403253583367968744069714114350921268815283631340449355507063034165554121538268309814725991513260119724825668521745495871068638341409981936640320230964320950224807074801431489663853786642015677222714855199176682343491102895222479287792374472694143282864228898765012858916049407835530210261888315439068888819696105000732630287161257662036730492692111200899378354081566059335308304344656766816785680092982252702755087681361691219078779981680220537675651742362746606972905054149271007306720902621770239409502080624187035415702755577458847460846623032606441573657534224499878349799556573984820826872690582235133886572194311561001063752230973105298198686578232784656279167078685120635519938189701472664066107999848480176357814268159744522497671655339888574554746412416579345509070799522577699174987771085703673295987392053521399224636702880447134986110304167910548242708550929868140766261654528301117899253440228267143033147619212725922676490840886587459629044833386526359712680698522663580720299751140713334955513705897537756969177517162822915000704599797849030747429061480832194960559595634771614458025111546620310096780566629526880596983627809012215292549926769234019709318910289992241685740016011675928805450242457204168273600795921234462353575728004175365981824030330183831088814365865531060581495861883799971698772350229949694697759015964883887168690661677309383829609384089925509794173541164678889021349591183445337165178241406388236864027089979289318369840567038507009354552680614323221537573828165200505022852499117569035938724140272684142411721143301072083418241990269457207673557800831638205132014498357285718526025132734902593758685029827716248087870191776921977499312416017995711688589351042842930618117148449991433128652305917497379000954579697494805480203196436175021988575174487495775415027039122832565228143770014525124266062101779030081343668548548298463286893566610942830551796600512648473694715820778232113952385895966147285769874514418728996039165233267632913058636961551656194723248329533377859408415640430702945209587329231412341276633162861939529732346846471660604551044223969534930561679885257966170124196386481876455297614864192483896519033525745959741162565994986939081571873436412882513264445855104630515730676871447249916773910197043983481707803198153544509083972921183462163661152716587108705291295779726597634495045627051335545177835613283868923300970534137856715610535025552650491316724670622519620646918378743310457738238696706374804973024281050498242416853260145813398643291826973422811926730291433187713513768826191666739339600158028171882473880164586528054716188903943241259816411187632222650862133980846974302760314118061869249656941349166784062597572980829344705318200348275884597793232659931052824000751119170315185016701497884227395383586427354943011041396937173515072636975838413281494452262405122799804652943920762941848970701827277857277200245440397392185937054544707817923917003502395844666719518936044551538153485720873962578876718026079715127059500612383882396190446211423637999974286607705056275850609893836355325277527720477604011669466274637352250047839438633930271615075959414728622650064693232551473895476353118433777457865295618262094388538153063450836817206285854572682499001070297531292751512921201380767672808595421857951221940630331871707767133273889965582330668240136754301406776200390488446370670979353048980572980927156366921606732978606306361684072675875435631502448283611630057895035356823071189799170033787230670189762157122547659900163288451820404890770144288231706585736708994565869241482350817852902144312807744406832993691583519975195129315431786307249435968399934897775910116980274207288415506808566910990189972258204568083794901059559054388217123535955653967972068046023655808116637732892524993319542169463842379935875971604651321691214727378191551555127449868548726982457325152050772458596173783169961338086805203280675980760087104363127775725045217702174973941083247781776724610096646504863330398929107777538040489159811002108315187888515352169597064538854639465139548034297651030580485120801479827675624449865661802076625470702102440777772663795868110092900864985004419910981392848672121069772642975201100297919297381965771133052763998644268359404647543694681129948399814087640351961801370116032613241793603478164020828861992723350131397456071288012926786508510986326430827614167669409233602389719670959576287339744058111138728328931555517488616143791237058273876240028348181216588783046108086654681277894276421222870459376365283340698676718033840008545562581971944483071781750369886432106550197104803923464734948291655711040415249467572547686908167447668624144646846131388043279733076934992815851797825865427074271673323182063028011292328120146291608351250581044022503464830386631727023142535957649535278749647767190953419358892813600215975039368853469598249205674099806054655972311473604010715723243049753607815742845555087107177632378292391080579201323773601979050967378003740552797162637834525386487736554180004335211259176399502497714918906427949839614985049865379442707645671929272778287018105174792070957141967965327097517260335392358483442759581094534214068132261862108376436549182277924795462816115957167504290602848933792601736314853511827127429244400195033416322771058689689534677519827911878274380566961030393668583060917111327580480046661967870449324088382120616710087666501389548764289316706280536873786459607327491690978536281379317103312646849359091998831839606959543179933044363828684866590004843585068355765932810999410769606633523202230952529914779918543264942232947804640149872880297773208827352569892785338636879773049794657951942716098625227137191988555396511433468033722807421042606448401306013817090171181350994521164879103397698914394929179336444773993050832679216121139337900970192932299787452936548984239005467055626909108580264617458472505293928367121890590527236400619351245188206432121970007796715686438305972956039609248090995790707665915020333044956504000852683388649961685216526953089291159680484500411062305685485792507673148815786349600773586190351725870692042557501276069100170698619002722603811114177377073132775883149756036175464264315509174667916906346023786970103130120620488271769153006197520373318241882183687893501077369805296791438325823598255165046927976657971221654398631987249785293543487335767671765323038044834656912107149837918065108072410343397366594138348286588667591380198180146209050481498082775348590239123909537962851973700841998667696113853109535610431830108380196527262823491851938667262035552387959257909182550611823450654741990431009673956456917203395238681751398963979317176795003318087380166078680312044480350272361311994514427718894377216126724364525579740151664923515167177645756429065886437727591269049664585512350092134742490795169078713367825104797937452863952754159425428854597839749899097331121480855818102042589576214221388903175443304830465127553577753232818184291395470478439158931449570310749777058531355526378567821533925228176077247327685153900351187176352724734631712178445771603543890111712318329312009005929429053020301871526479959097172625691166932110493487921385859267459413674549271741900221802785211711198921487362219534974329794902752251970811916187024831604753184576119406668313471304487437544528506431514767110009300950341576395720404615831957941597024634547995305749724446851276341119325357283796083334794815346242486236547957734676417492205418021893081121652709716226701263941403365451198004317260352604371693973034865790322582702227934073344268207105756098548491314092474174056675007093061097455012676654710963781607643274808701763157891027774754343531312886928537047167391628803257303214693273998287728165977923190515445840312945809902143899614982710826369810462361148941585101990950393192951757165327517897829001088696484229570559251539844556182912671659636074302723260760982236861207248939924745937265619161634324138858396043915974990936706118650698005609115876846552876961259044143078179865223792869224140217039119730875954528494413665393176303734706401512055793647188272387975900955716055900475669923204180583397508032186673402302733338515648940663546025166034677022023804319718528685950739996744845589292002761440426929226032921237179364669708135720669529823203668460275177443600886989651302965192312160933243066081119780114408032044538826015103609882359718708822472253691058375263881734514519330261189050939183919807455769568213174726440860798056611317317705846556690504610224098476076772850812964833805861507119100295288730942452241599258110018489366595601788717225999087676425574588815587844412112454301385406951805035309235341122310624240356202934545092702574180586807706247517908277788312473557854124471510257898267260704239927524072012673162811583248968070990622280355989560125702944909037069693113863493372293059761591732047926667087561506321631994750377856568796665490393141573180900599141614586041991102040029142558569694363613646560004381003589252309924840070127886080467214113474751299959418127502160714324601004165549441798217500784316384675977956622915215824646729446396465661382915604498906493607317413881771002076792410295755584378795710285830535779387072045275689389530038676468091352473355410916771518562999127769172454237399672275357896412540094997900129915054178478104975450433333113548346265968693418101844432170039603982794931701043610812378454712855663079703080825242789419821556930680785086264017678057305686148847125726149724814560618677028728608031115685190435533778087828611593421783899849604483788348538848090293102291199205347526466733545681918079698731034797906967904326266509354072215458355355810594399410438879114549126266020682437506920483522729519808815669987324327895544251425999301973779289996004248665623140982522110015576510460473454058019399756592978476851585854923754238417782134102884684122688932382326955822520355244175470525382246986206146852331250964817951371338779479594728996117955482086329987714629643002976291550575638602403843425421363527417742104256632709852039263288324976445427737510418421432805599676959502516331991210623246362415875639671725992895079636991843417467277654511222164870421501700082482652610125815650867542125263756171163219579831093013913430087516309095560109555725517256049969037698550335358183068497757590887963851502660865616593336819003479841432084664280824860900834321827558090216980502057663698911960882134884846869841711967302930440087673469805036676451247941722271274898468104330535682820266132620081561181722280703697153645352031519239904209254342858675848919490181618548227371477754622433702704956120337555078060584863125004635659579742386215637971341302294575175601225733045280351688457811807940926835529302887600694628876823809394762840312438629991709676088383271027752460500549281386663172760716857954220682761902409083621030284084514663292950185392983990463615349994665235792623986116430740071328479533762872756281980390234732002331385132170779636231297544769636263450922252030517468919403736646751931379769016330528787565355512937630209635982727987536234719496992771430894343334494724354244204462762776967264375175335564650229492603025674850365301518889150991425267919074444808299224156727713708211160215990229577308540100246194671265575433555177889444767614983386148106076334782672425855158282376923972484647265468054005652489994012985333938171407804376315316649091984260800090182178495627842700588393337419884105291014342104760822906192961926944558616929583216551000199053568787136036194296044664592114839793502238603399864195721818572572443735269142466210082517146275478695168675174821097428917657933968824798238553550750691339260847104804949806441728829749054625155067890801713828662033756268106640056668514487717878839198432441859378342300552717136294348377475756580216997509568127780503657542097915770360559901337856489874526198684078510315477663036186029245965224210062256598274858766595567989720467733289114213919628794775110553794767825380824858002425461633398367399939932295671180401110052449097348161694068113868972592646299385995400993723570020683391401697064659384605520315230405529033650440049830473980118094773066172713068622797861202878266877990419775755457080379905360946365305059112765760884797321401245500837420145609206079164367380259543346185126773975432850038576235853727710634207582409636243308097316188276652227209888553654694642325829469582865734959841033741500676018370736501997665479105650102675556253871634974084010665110809395446321106852734329125264704939496460218378736684998019020209443396117486259268597455899365447351629157215034938892705704948752860620497162568159193013520040583635568019822236843089387149233598177287474089313845469275747520582809187651044819606691928359720121775388814235179358918676175186079539356001882464567571157486347843899056930416689374994508544181748075079269721496760960526406984122159832379297625982286942662085001494560129161296623689695678469131255690221306904113253490554101915665994686807174322519349824418235148837752507512577857424664839512803611568508183508360861025381113560801959589779111124919502171588479265194807350458317145629420772865771656497299672900218016241615506480048759421850160788221491023539527558580556110167499994928358019939421929797088724588298951232231982360012736503865292823698240420205022436170694067350316348028226707826653947704834279740039256867719925825802706380317916924979165822544664909168144424086853705553245798686029937811390854615791682003864032538797798899628184593176009723398234136482060921626443710180822086155916114152832024391514767386442612515104386729253001872587506852114998636285438498857546533706665887163983962748232359455835153326607882216249013869590377901415334508041289097979006988480357628105592966927621530309830244495294117106742650071183177288140138213855347530008457270038360952108110785391750413585281998294807616444972825026312572471034690444566112515357678468633947498139765406315783381050524803488404850797862781515332659297611213369459332625774995510045633965691405011391184114243147495215818573734873409801868323316093250074779970479267436136011458352368564242811475346017435522018531232602725152929130745577162463865184006197268815331382424722940849822846939959925678897725119491372153622419688237548269006350407840256702708285628886982412789158180169363058186075666297529119896258974314589676755991941120821066329392100655805913008522253837356802239076528895677076235558945116972761722138658541678463184070581637063140257255291744568304427968519557503632902095708746353379627799619904303177715321952107115883132109560788795892796088006492420248970287947749513084999068580456472215433317748020928682820020906992130272949337591965976793723114472614947850351059541695224228507527310898953188440460235982541211831589581303752943466431090046700428644342284919614810361106106754676983042304705565826544937102844286405431976338894467771526509221114854765693623696411292757215259402198674322831892097943673633086045476473231250408909898566149102647145557218477090541738538138297947133385337861411856114065101650724955003224685095526014770247011457261555358268954817249358150347448684915367597680334586328986796119646228086206815851309300782942983771787449863036818635968531182659879992200371324686624526779143080112687104415951598016794677667187900172014727327562760950878498113609088074324051449918290250071940522886874875848571279122564713092931661999557514937333979189872321953028266012360027504012527298958531571690860490073276197781517141966548758358316568497209813996610495871167231373726267602993079392595123997756206430924160160728399181953322869908946901801130825421574464999510490898658428251880496124848981006529143602428374593268079271751842346009655262052629333935169489622441948649645931507636286937491332102169082868028721268692104001476572965651815664912567117917168973362695741305346762146770286558394289328353381713901850574303021403308059738484920582329203827176576297723431609980972049117120885213836043351099657920038464743038711037735419568304130609889466499870073530393478047161741347273689358805832311434939311219165680910588302690433702218277158915880767116665430340323106264083935684163927419048999059110864447209029286367021262859532142927346729388446953832379230961899564987661972629232058475753374085338634931019599362161955349655942007269874450883094345676076405829609316246353312551733828059224364142652919621133879318145006809236739026959667672107422747137030691631759398140369652648499112858265800621529019635681218102859122041293688745735030240937078217547451969828858519849138996775615580016530148730286887638173394993335475662786005577592155609723030477136956808506783622851636967349946170637938899945442393331264573412200794630166361486276256746424560519421184591997429962637333196382072771017040862043467902578333079263848016988003704274686583938091161734643022928559559168933689422188507241543960936486599153896701670566650149400414238703425182429027294289469663528986034236126017917614814246793744693115667081908707841956635780400929262924257832389577956426575178991593846706492182624322174616358676583771374065051469634663293816721736414632519592483781216864398788450866277616803507653006767584837791037677442521019455657745469763291353844355370030207982929019989225676962327177686209321076251871896075551892163814446911912849100646444525201148769664900139340640237470055973111306877809581363991645961824879617904849163247804991811834666358169927576493443363412561134481580818963857964561606513115508702394414727613302989316160271849926059328794818099423018532928117202021522559871603156981839046969717872349302767030374563375477963924228918404726131167636856185868786330024524979093516067451004378551677658204438315022317525667311624038997500460118244023548933660105926526508948338323986137395833320462073353023544260152106065035509321659042766165455549008891368896323766909559659375758612664754370764570431261781770802562373923724476850233076436476878108581917274364074184368559171764266768412173159080381536633298979003166930446784338817097431262091237272140315805235807833297561285093798429049820065405972346606652930022340169916898998991380699437538354435122082561624433979232759958703468068199956785995934713431564288753834002055153602951013867374032443992434943858786580477841354514964323311715009456887894955622929383573967335793395957137780657534652036157523935127373762919460295055906540690744950406137671771665630951440061718580410177639671376436412188293914120570161070628608653669354481612268674336384875456043341052881536811535956952318450713617807725088550634328974799180982736490900814956261251302170273653072633797495275486381957853322898516730421936380018763849133184576110233627849409111752676490188172767054570870248128210360959895459407850688092580790728959247679152634072439595796330163673155268320853463120954550504260766508435043338819440494828843859659490788690180177350656265512234405759052676858332629066910909903296287742057463049012483473109625391344401196805432896272665453376914413474911182815014957627820804643040156228071085193721155249609280717836168500827855781563485904010546056189997879800049914058848805830686939580344151278880813557724930743899185955079645021516364288658154226265072300696686445772980346750319928657243455066628524494381195684369083606630217599768463992897231523669924843269264274669862195818329040167747349487746904442747135368815579478308119133841308622725192074549140300510271155173071634484399204169008645657459428017821082155465253056390139263010063269098285938778344348890650556560008219533438097948409358530205497022650330550885776594908827770718999744738413054850951993428850197666852908333770743633563828741151558451901200778852327168946737946116699912380215516560963553015516713702644485362649763661768585314960380275234661368305598705156055982952706523649622431871815909526249873887451662103467518813499754027578956210750098840691326220480123171363600475472175516994030904076620252554520637549742046157738560011259307542753760541672938659521456427839950753685614432062145562437380333292385162187044066796738645085292991990605774706912029107061036021250458708446368980148837776558744038773681698248983376274605045921773823620378796767013659812436381741036053988236962252297669722735317412410174103660860871714879661424531016002642148322687827910744205936870551750670176665240975466012750439247577511867787207688985338707991484713769836068930848623950288860686964292443368008516659722181555283891731948873411985381339755263021495877558704167410605116195799665874895117532612237654418460550406311488880259614092052870415548256349036472135098062744548172547474386279965798544255231411003821886770601082870440320528252610381850160871870499449064684536501974449511224489197224833155376007712339495421647232359814693382384809854505739685155891427630569294658313643482969644815200027812680661704070873671385581051563781104407186069699012323256401594715491561040322818684849314960179331664590051060757034302723819347536568504619211412914679046558693371393626943487374124454672314773317183199403565563247558113212499690264857347038841102845855317894776069758279501238368421572534409859477581407545750588815631282301977880385007578233917905876616318734334049932905718099846265597147989474811584054002815604071569145007454880226996271412644782401372748587704602325774354934173978448936160177181315865828408420044793065794654548856274216964466286593801691593833259144620339554780029290683508820882402748691382109799546690450785187178120516904339012871220360847991550592269066542059091774585122064619332904446266769015149614605748957540271434128502016180079807132642086740988375661830859588339477365516274957704112709008406724417485563678722247884049863685411222483374560333243969851446791605102184099387245473355775779063523009161930335744061678138004032204312200830342710843097346628002011479770207315689114400396378257877752874806480061726431332231947499880040823954362530901856606031313746308848004339466175771532728852284893776933297388249303589211403410803826123757532738259272849276090396155729941562139810209778311113181718875489515859766073197947064238244146994972186023538322580289432998207321478044213492243279956194677345568037048415986676163583668874616102630539099312629002377409754205793909031564332240167111347862035481592508148265479018203812150454485032080681712094030972364650476041745452250600115654037383911127116828519862048126820811665068287599732130843447517859289772534744356734882741873828137454938520830075468047386816316013340521752601291286126464612285692233808697275298884714682014208053440658660226658390671356401819792527986403947673247333611992868779338744054136140414998206243787104378001557392810417751933502467856546041122998184598585371192789878754763770976865213356385928451198355731802894235653351254610369192893121184203103379456886935653440880403079538911327958066074608659185743457178850553568435651792484080797509317021013524224049768705319506128538995922661098904968476897110742185262266967811583629161510597626026334291353380990467200393572976671235392526680888360633768678660450638234167784293082156916772038437423428002015420718397715113399787885472488449155680076201504716453224904504530336213493874798086317792486210414519732606650299805183881112105809573702330636643307574110648012691701825765380625328128799509645750874706239956425321753983369999524462576162761200703597544906931619244262188957479473323138867126755243487547258462136295061180644224749645228029597844627032415062536858305794568369879566979031755846532073670799714734721358229189081257883041211223763741192033356386613758101987257588323631459695350630667230654089099479533529056461558234410473883951810686011654572988193976754731090029617862390762297571755206715540848325221818620194149335086201476111815945449747021900330451435444809805093619152840240512727469261466287497520989556455082650681218058610702196584758229005034668363432083721532631155592701453110341691563262513888663922234966780319187457563077544003851212525995530033860927912195869938918129655331382412993348965400014518929888139025542328818673723865905381049858276189146298603188720354234512184932379955831114478886057021206176799362813148589012450231754799394859504844635646416876755162314824869101268003554335831113057769955947593360788889563726922464928991623687068118106397917182017557683976934588678704891238717379286676583911715925842193206727535984472312939048223897871714110668699896632734867443599141572079207202528922178971727544498153555351992321146954740092960963766567494798242596919126511806377894728172034599119043793554266766017343528863562404548276516282878291595552030542499009672730171743153600114749148286363715716147777547890685712516018811199772119980763979095529836036463675396271175678105941303072285404700283636822174252223449898921418003672123373460044219627249979829098437923308187615235849029073506538343187357780565976953794329972698240396625846179721009473476774894741661184481086117516549273555662609181411235679837673840298033731760760776568645603973775116661673977837746875751773216616336247173068752938032854217102569625600792900275776508387000632552901990759870556443426950161947205497461828669397700586650963093156823524330711275969920441454574806563032670764746918260461415557874462718876557140489583176862265674528680465464202260207641220022777089703690747601324612322753117933482662389300212910629835912392447420266863554182880538452461328846693221251349540171359709886128585873185480385291483926118245082897582585264567494395557038332609974707320786814871898420303109242800825353880193828728955844739001372314529441634350503987673702606881526912378036837170809489915451487538640239048717483921334068081472271904157210339455709691279187208753121377562149601587670750131305334302069497926251032243314453374267034900574571869617151193899478617877831655630658541313754637033078716114783355822498998947389619259798959703879783055760252795164371422821333685849502184438810136109795809395239919163284003179339659099926522789856565079848604193449424282712282084854342850980564221451760483107571280270284237489426405579608607384981340522087325071294248826316362849021692921206558313923793472256027267900597369766592901302430562885047162713809445230576447006475724579653476711291665095626957287633057874964392767601254631172099975212151376245275648502522520459654583575292848185499739248045531267869128018190456717378530670804489564859733803619432121582927682001154187139583643977686626611988387044039197913848422552640202496406803734417736505529404753644706844949215596729309969099973991444035093176693740367568279617439562471408687586425851061392119094934283475654357880456018992469457689495306877781798869525327527158725662240968277222667983896794638103386971917868293517769157427080326838973136923331580291857665174236768604995766549090654684785304903993763559359163363758587661881365196465956367737160808769854088485396622067631381881413842247109118868082108512004220239767718756250079281415167903083031201660354041329790513999728784106990145644577225369762530751329409756480008417339144525042021123485748635145715603492642328572649711692060925004411648124631809555487396532159777838219782599173536065711626786860522891040752022284301043629412704388970018175487145900541386406295118410929475882900680162101756088342256525422456865489051471718605066116472095550960507660318736721334440950252160537987029191373553498494773841162600370100804942551030053582766363322811407490605144184185790057099530257087803553198022134328858267689756048749599461802093967162292592864458537942841417719536309562781638001621620474587054204616618144281658971444270799090487947400564983457299088135185535377234206582968538781381957550663246660570157495900403919806608061554828456895147535187355211085495223288365740697243811567083725344307699534898705618517969444075319685728851494011847330341543650136722590942972697418386419653208944302371892056031132786985818980043706192066963532580810843633750396491546219506514886552310076180301430496672139549451850240117492996375548203772025832439919854308781600215051515617776673787310902002353785082394403706689315041902512406664021407125521276987985656482874470476847232389832003485314597631297769441024876206837411780140083961680705648784323061892925043142506466510479259546623000265016346134400484599415673726929986588595011833985599751624561795465807879195000561424492646737779840596113465340441663101994503455710922424554383215313402807842338482251879592210572132119090612370785742480281921766301254105315549411787975326527335794958260832069386780340604620991030028190237671694069994841342662293858862354244868439888570007892655646176168772109948569402620809919582932212509128234392224532110615073896150486802560347548244416813390663267704445815352855969473943994708077970286519880579707608370657587260627852517159373784394408481015814937444658851902239047690477071404032822423156543503590469124301586012743720133919828763869876826179968400410630832133377929203801192089335494159112011816471695642942780651153623708027544078836985175756463631622416945787618713241302784180881854760144545713500231321729676650769121268265723431541301150443328692022435563401577335726324644348878537578327676028817581498035013838814142242933681007399797616008065075392264882320062446677250270054033562540547653930408984205178744921791338331646771706502533567784231669414080556144048949971345784011246323563152561137914525830719628730646295306446238429827941448528748360128840645449723016919596510036445471283876221080989751368776955325979560583552006441520192641784589891950863949606741385739810412606152102633912612461785873673775332519368072809514947329778112035194901132227126483321306853227586494034174791396953665628237616339747650383785558989760384125202559524220318740665343863158699307478658276220641118285554974169879641217710279313289615254063253962245031686530691966907220531638085959859954999195763139688455599464444606712189588090436068383452572021277301548971298987007991407069851810557358232998359548685615574917034531404793129142676126122692787253818662047794902079045902328500059814099992026301439128556436961199213516673714087244206152662395956644138359375275910332028215854781738103817754966362821031544550400182130493851420565922762387093233086032474770442104009959940122825855162429224297356853210191497630927185762584190976449876523371471585686603899012624829961603774343327338662641303355834983312552005781022376511731208500335516494452555036152000330467930623962949072952234043820558977785890787505773232722038008817512494563203649646372769298458680210849113395672110909123257192244885211129983911150486020309004646906606537137556107854187775129201988918878086800584933507135490751025438839449369801214626635199728458878147809036375672732867677066875089636583830753451690461110074135380711111570558321735700897526694550899786872319373773761673196512514284579659432778097499746444508734495683184094074316246789697122027609990815358542962771044196606486487846334083045913783895934238142527580830332001453018374816934617529499578622901015311402170087439058716631626710438841207859085507445399481273501063557491634049926549597858693228981642802411477690931667015254511025897943978184954341696989766378651652495695597474915378087495932274405931465171631710177330850322736323612264771511353060160257274732297369778698834994970307681829983805032104378049239288863452257086587797141176313496857188904444567823791849718513838311382830780925560367040148674462676492885015185658835204061879185045191987213890338330758117040747755058626475947019273356741655133519393493977199408131346219146337263589063436721488311973969243435530613704357653544789465105560792359308157739594567987266965102435611820993064638413101058763621819550844657462352460396529998968548643916820546308245938910450813178573384990226521012515004570106117414999541127414422439596820801860631851113801739754898323729130118914495697160886838896907325018167897031037926006295175237494907972984380091613409939120779495538772130274805970923734053298654386321294665889480486471422763430690508887041932626945090502499265166780630537664462942066958347626716447947499153892565614077940916586361796428335025366824089420307033824941246918062907862192535776977931885615386374742066481417377671017816314123394805965560253242778764315206816078664247272705390016048520549305607500664773850242746233364070844202883483274504887669756641925045107351856327453249918998722751590531566716431793170579627979333480063348767757079709396800101045613296963766074253791769281093713717563209395958449977707709499121000730251507236756688682494700209520090645997968216736028775033731865773847320421766011981443064700176595510967872313277495613387365277023840557561372119068330610298619830899696326695210622862603407205853696549430403924474273651587315559653299075242970543899434126981755727869258658398325284220793314388327855431130348587582769787289024735945464917089140417236668683289132876749746181419718549352932728766103724519898778896659129566330132452052450107448700562777621366968282666608226670315935488649234197105088441462129009816446586924488872451370178788336216470612353262724108914622047741691023337301496531199461719284733918787420367056059297644842860472644670778497989886664030756979208999913017515509619036434886983257109927058377871866820307247984702209766458286016576614980022967479867446577043439487227751326900152071085577693916573534764532303062979250589040005139914609187069328094851800386721438202783600143167312801442109695324777117084898677079413556182694396112709418874095568626262734677770584621158109698496425756156609184616283111404623074941307929123191777082058851936991704495298703466003911724527457012996037591345313185777807031798196292830138104666492183075699723923443893561123668438283904350007840494596146989130525755499119210295261114970290008116668041475397046674094012858545798021896655829388773204249813391581044940549168082303720060613198368007728756547918618868795878898381792440217841547036450589470181786052377558410001981784128782159011033962296865346534346811455501808078515241232586367162163316452379066426281271810480399767244853985462628803633568644078227664498545529936592711371634627710685005962466025037662884212601338837570715143547532934356217895268103167368535242210046636978277743486854606676465916876536434085651925397726241097378105674365274318084129605332928202891359717202994310575051505744518418499934062536521799588887736990689746763990195575226481866273605701021662735122353630103097608517524842527900574017724679526628172494128082450288304601763501947565581710176523498546545518836059661832619930654204033285385812531245682898619724131253493221768054893733656276817822854974152777253064421349696366351133991377577567459767412177269804847835618292520098844671662287905977182631186319053579114121290388236288182084140835896393627390904242174237337922392485499279774826170241550549661999652507279835161418563307959107698676488555112009552834687150528890873835459773565018929143598781251598774227833329474698285745795409080172526890011966082375467675859347206300074554355096899848512197955333894332108061637579915197562496048244074568261309444708385953843298110274258006794620512901091477856522720611241325174011172738327296897732270321038989510665255967952726880843457620177710315751551389321321336416783009022531256852128363449034680087123205950015929564185805358717956046663544788555545914464312457470808266610327573985100900871035805935983939818370116037738599864555687544248071191481982031945712202520497498027388522165947408855288175257953181613986516745517406469483644545141815489314852936965296443125189286477200075585219551469030587713586325466713681076350927009313100571997951198662934027323759101396061031675778323464155089941364922008809516539262452170022311267832446486500842150769944138831581318649461572508719965962109856061330522908539071125295945037199899204134354743648614407202091779160763611355367958003467728362657003780759040988071285380014233002433079073987127505510259806850967698876564060270704279843693177589927776508883900424703690824868604613107326408141807045058336208092460170691711134802764287960797710258637128835264938018592798638164250211426095630530365318105481124171266966698572581762629348155874076310042649953337776143109809133028544927718541069805841728916459748021068707229231561428044408482774139212651119396365168825286516648732658694552857586894279648158774376492956331168444086127388819263401475978195621042585468270402749063848959099394053014586801867414948935073911661363293296413524459413097799400021576955594229100192087857332163574529108000254439355369579630431164948776867254494077965588795086348634159410998938034259117137084984145300165252489091338368947997739980419497088524240749817529273132294042087820245474153839524741042943894933306742447572846828969405401095938671363765621867166207539157539373777503765360741905543326162587200647627226276192105136281371042260497613327153534012944151528513210356257306637486384437259081012605224706263645057244313178944641786306851026292898274356441808391751426162963322997255057993093754723445726064200028864475107829028670925198549809378674362941799552948380190793629709277954366425821173035780264335160433599246236883046936558024076647052861742026030827091824166666506257455927819332207869188656542184865737245550378232871948751474269691406554015559391167869723038863903297483547718039447892239660971161548452936651834925524325067203381813989260403800747026178492554120354887795887626008111050347783892020942395876417818113881341602813945867377193180139111770299675523830216365843421657916936522596857562708780397006606013380678491018990831106508285288541157619827091460974631961964792932730388297427190581975158201401454960304674121836280303607102984574611713991433826443109363057042414201675212834009515281524213610140817307245591381861110418119386405799178294219103924786381184703643089281310956049699824841106375322157998599325674770042386868843588594928919313534455544302240718229601763436991385168980470744622260772656602892767636603362862645253809795183729181323834555728601211099109123373706352556457432268420999285459309630471502052671393699382523640245301812227861638610353539071712251478879374781530028147804701972610578442226555781705101900970044376509420548644735970975336520573983939142646110073871418183617540918778686890989641557948367981243743164557638013793418606855672815600875190176067156740999370428180961629069065485391451443626213993924774733413934168273067928964979067910558020162644909005524958313976637576185902630463821318975299785501079908516436769483937389976912916408883174396538326707588514376591440452485594569976896252951519732803035162188006805702952189050578092910883272711659383957981969029043375692150108236552448266866386517813631884012191557168315314943797344546143450332101596901601834989778671670274873512962887725463776832566952127745879813768366485427552303982802835280590371606229258210029237893280919270710624196284033091926910361256359999103500681151463469901328579974321765114562506732458001142274123511856868879620933479717726325438769656691047040827750469587773313540742636653724877894100651559004994824868973729958915468092018286768994234279528044196961706854850529585262404329648953038521446675858802616800322126188295750990372405545900370874029877349411746100358665943643374983034107903379034075747135915733843110958682890038029305551810634896585449468443037551260150564264036614498002569038977168242717428281125995713327964934447564870717519674056495711863776776924446627803282623258581312886961467691810173428572077793178324774083107788278544114169612236944665689164397382507116070975101579807518375305975931964845294141413973927828311726506961749390194704570868030760243881467503918337041366828937155254253124208782253979828168530226105434553186692809395060858166608356057026954274041579329994218154929147781769720157779499201149192165210691254579801049422058267060824089425498013406830233237156716322723907437843191087170466036081010677754934447646803077435554210947611814971098097930411014143759768491036397586192624074016631725246268914156367635981965782709332028175200949528529837451685894437619766849711750804026976958224479942293874440444208252013969291864679971690624144073044343660427217154219280505327216497768025015080996629113586164819507208950762563314086886959063197976159389833876570098209886204346774752457865299601806949481374150221399949807919219342762087497079106558654312669173036084610434769804640183526252083424328110984349650598002152396006695216779871778173131986710678311553933570068313988228177516613712008743577847333043061911528039916702278138096702843608913136967682303740778913784291354378307988662298610862350353859841232868479204936508398796758957432372993481293454208441156508589423786155872969774330241158357747735790790156413021531722426680732686736508513320763489118043408947877194850529668869119626373958867570565408935884773578219061087349603381352360314570006100321239520948559899627766606787192141620048540713411242891510571436838572884874489904861115821219591258946656500654421970769834576602769013615638970970306629434683802368495667778994239949170874151619160550274201782853823184431390066987087392469657974102049346513883917121121114708160378824092527698878734360230903552317475410051177146427113603412719113592806484428360032296476700842221587464981401427603011134837013176927473367279891305249909515116238136860962311319191984068455825724484805536909121444348048153891591249032072142335426867662048475693850963707598113318660597817588485730640901349202556089397440347267757564902792679710348700659556973519047210688244842454231224548363700936202100844029210690734057381949240169218150318655572682211058178227181807997751759468438295141740503819353739581430167371423608871032535645893984846078651189720601277770852528319924349173224198167581609707916316901855465426612330995182459478241948616628605735712418996474064683252465595199311089173592951448487484099530871554405211986921514230979830075033977962411592317675671841316375276603562507503315251543342658011578373735759944351512057871359542261581071710037961120102286944782999831206823357412977275604558646969799744594686885941112393444444084591932237012977131472703923945355251629119944805615744240381013156908953979579513989290492258225471261393458239998391295268368579056497149534378016478663787530689960357432178179421099098225212978620643678019696532601181517528486376074326444267195605097511811215467171507035722277069374095955985312841690159677194327292090276723172987487569854253921695541626742671131930599775422363405114030859325104658815951499882368050208733267699446872912314052968824180864759502931793120988534094544864228786146111789100397568461695174898043767970501815737190848564486315575507393921968439370318521350593268085934928882779719533015914342435173063437053960670212000647633837975166159292777068516048999097104153098302175067517906215821839214500197385552263749120160185748270990258005362074270515270245940045714549981601007073834464800148787741658186676895121177227785237350608852845140298399581602319746258899682519821459559744491371663145283720747601550915553584415508649706095117175338389894625665628684423018899270018286993008858390962145779608354696910656385730934035502393657397885446023600425257435262057298660262351396048850250707209589482450820485701405395338530343447587087368414645447326038284682984443466746251989052020062377698840904180040671459415453800501613370373926121122153283773249556313655688233608633909377221925998956345794979040706170271356849632860333543690867671117366507101050392261128913498810953006920658177131705221443177738918744341362781114423052564419925978152893983838124018386674715096243090965727747846469956737718100419143841974450091094529082174143131810132168259673863864012103853688017715068123516935323715950011381104635845228161257463930833060120666267093228215473964259569036827913375315657742648364802628201037110124149645673985161014401703118028243383429306042678955213559724911742715684915496947305421308732652978851320045709792800384429934506678576230140692745576602517203608283324349567317932253628159781054084497806020219926329965737869511992655848878729178422797532831868718509447264029641233967662309271602366947871864083172519840446487053177120626644303317737435306464844575008823192078103450180406115324962999472888235543393386511307918945872370949086508679742292436338413226483427271105494251912267450451577576818179809979264963280458236102728407713179463217312109715156875042623632587777728993299494439025169129044570095441829766100331269233693609992931249302719948516959043795062710228739198992868093187872295870665798347689606480710285056965497527603238704934406899335527530779517674766719770900348445358651120467516608208312646156171457218681783797726199846354813679001839358345108913869959585120831704209086476466346195462972887179310758807582679194305325227880488956129789603757996960426877752246773097030542235692132557504992422188983538653171816527726430948268289079403109927870967801493851030100278513817607598051945317001635202829572639151614724061220297136796430554434708082120646036447032255856156437191676700140640184569212343219526629386384448900612102402899402325085653046821065701800292939823569472625984439683831984702759655273025888159226983126580767217493173771134303850160794246902420240105228758805059815686974996446037173956006995888978329083990118396751762341093723716536360162783975897221969519527233199713106862895676307941102461505938122517411906078386805884218670176153052170275665084970759302938019813286439631027648166137546682892831542078665410802642003021654555203641681146415424796864528547206379979685654165256311188246810685050106061417559844483083567146731915154082274651240584762411534743932336394463253927893068003683620019075865440348709087000044651337872431252599396148137487509184966825593723676593076233368463479668249027733720198091171368454237767892893732405857242116802800319619648900201605034502061087387517850306680198247902709401375565468980942379648485640682811639031570145477734875294254857321710805889205430563390952426188280604066791010621099409784579781660602334139663186305083705845656339338708583899775590371038724215717578469735921647361620872264918469082661008957660098465550008919604967782909047687637064292501443035757650976201471617699252630351898591386355921700473036723034681419703748321328513796855624804367257841107910113779435155433930687655462778017275785432698326344394224340741349939923870751080780836147021335349916399180438420636208681987335292212930049430125259067688338038010199608739653613898268370657114125792917619067802264895643285336467061583039666663044969525400212348268089232346860708900675451022628978600247967861019638888238369986020894330166057750182320333755396754621951305919551395371551585558971097769939742739836923499113745863409578843514394642018729599299119247928961186348964202801889632012405126508869951574625619885337162015099165035641111776450141094837198380713459456398562550302826381875341329086622525904459843901378154604316474423702333234211757030959121163851581198449363451622800263657884986322559054715598606410146512071017130045014564831855266216235444416308286525088440704260411964431172166077212988043396437029328050997407977343061752809680859650615847516143628933516222694867021628080606040682654704528536708239571781497001222113363094533708083458529082127173786538486219530073916109688851640065131893033883164587636574618403994238105658043066410087801262880006578321639390329630533936430941257565270928778646726008368468757635938368960497074814033755704154592257604635163759053574815515573934051407715057243698285123764977585278530578369583694669406614452653796581411304647928019697288878375682980830103503438978264715290653445617298454550704238987250785359774358892130924700866865439645610587125020744906583114731448571488745130812521217043639333810032738183684293460490452105902388007201276677515174618035618339482421038649872713168537735680050782356164979949387010011850581420524599807693391120260978380595362251814977302760308023545800996604296690497763624998630776610884882149731159743188756835241341223485514978934085444873042534885573752383651279328838103411827459231822348486005590925606452218491518817061779065817459206868970684237590426343885780989269234622382656120097143586018389977436783042750147588269762570999144439536202582442008337317821888570428557552191105554416501603223091201352281137696178617025998962956624879641528597434357866398605485825947014479181451654867143603501735156486329812838539993720495452650447397881849207536972976070475320109960470467285675888160767554283169085235642625926829382669654187552136243095602149602370044872055216657110908504691103321352561810368944732674509662466577509728571485548409642260215073126793026241228778170253006486154610635018024154997625712159454335581773942613361366464522938180239537874638938749582450983123404475897425870796365207438006018226774306364412652408542556399572424843776961418062665570668848336027814706623229671305436996849512739375097348583901425385888317184850686187644667325818109069171360576103026235063987376637114321751533161838475930769902037884678696644792505701513325624289516714930267846223935519484223869022759327244058987952559493574598115832428520468859592203387335452735679368183227886858231145657813110062296375532250405800457297055375384904590259045163593072861554012630431047497104781420217255521825651363649537688819704274149384140102055536446339883622460228607297805145660987517304729598709175603647979079068276079191978872550687583390502121767243341776560175575768944628078436274594653153031095494675406777500329536519451630217555535725712490151339989282843586647198838563094296514789967498202628752540587705576810524508677864840301168987137507418905553469918880444175514250368692664270764480720273880604183516778816427714916373369677152727067181549195666146031887107424982512496582440543418694877525216808859242617099171398455948596944614195896942373128022414724843741918086593021381527942387105009383048959674586568005144543696316565306801367466181781496228362227342288272495516875183818387429277453344033186886283404446217311720354220998753807132391197835802167381837538524395363571845976600590839302072598107865374409045376239866686138406420482159730737466488005499996619032008041273970103909370507377751712697402078081109309215358527454877760440969571310593946271153428149766447182931982789429479011251189286978343506918739548454696391082751109511143011536537753924680152134777221381245226802133701943149779546355871967101410543816757689902054369320972669117610464437506947113594576346084830150833127758132986191223711422599368969226841722642904018818823777830139381863489913169514637920374935855924658230338386515085932688273077924938629320419258482594505180847264191371640208133963146756740279414924466509184607164522989857672441741650694218980402845352720168369855857935179161159098752223018965128590121779700960247520940241395771939711734498535545445993964987043102044578981588642183772231587715450531091817272479636605875877024293409603638342717878373052143428945465662424688109550430618421965655133856648905209408578628251272704594273544638093349661136619758276129197101479670411829545909249974644777840833745382235213187609126194366326722592363047058740198875029018099388959402760067870436026728775503363244366033158127077351390768086255205060137514452305417040826996902334132300605765398591808579594650663368153606797605430606683211054202528418394732660313887485174320210521189621455308030086839600100461128633409574044775434164046268371698874110280348869901616336252014395628358857292869276672312268317340586347403117466648235600389112535229571440572170413775091848066294141483997030486831802651393324919118966871333729101966693614542329274960936388189405813072274835081703535176464631053646298414222820083804307050381155946736241120231644952986774373796987485900276089685378653042527049124880022828512875094636883965523205823877772617641259725428169060862317833009564994045217641934335001042753196333332137614763706187719094609897832651181754975703699895920621844605689361192215404356794292556194230561335041120057032313489916761275459319304869722603614947582116509223250990316749341493599507986315332445894088718344087563185696909474315281451847977423662213930360383467111169445207158288883730959171084295456574863070363116079763190156974990281396184479811184838031309163811107700685579107402790283077965468492927718785355307468032460306467271684099067475181090219824041553578857957034577421344634938660688438750297344138974750607265153563612477461549321798065086906703956244731177636143589224867395786535942991533219846925741260691187430287566947015192723055881180027186199031590840651678768749217881334441760683785194203861988782487065348246665100095880210485422505476966242354814474402515467511422469049433363394996970826874427849558729539937593682907970621274357366858470282706457846770330279186095118017114747959672617014328993215506144298733231195463757571342810397590010327344808318054354073763864353203535078564860735131764768040003784453504062536955413105937979378549039621863133801880085368295070764597127249879745450036546059318848625350333069186271780925720902668717587448982275114957345751385603784843195603472198238672070745689218062868222733355678110157001487786283509462242321580854797943723530341717109865416548727969961183996933392371996077358649741803870371640798221636873301659989844774675339661855925298258655072831006530835410368247634695214485732758881096446517254639165923280441776017601482909081439375934537315599674884086089594143686053381929054042673259538807510751999173136684484993612329233940894818157909819021621570522264036778900164559952704278296087731059778545925811527889229183020945152844125831121748975530132959067714734761561678953128381906525067761746925617924385748576114246555792261865661312190152937081621206082646576481056620190933687907944387664059432512924361076870737257293188717891607156289758046890842597746790574267395488445649139445587684360182126064395173334825467855324374327548582179649792997016649966396755374650044014030593317122060633729064850710815246905685795627881679091167069603409026986113032300558110049415897991906378752441336337502957265394623573002534830713900767837988602338997709748174884988517453006308442164134284062193718376012245544754747925274918492614223923600508113393513590410907435171772503118700105572069706096974373508794291281636688650756857017943599371211868176806292778236502199751127869506456791514828427159256795166927585599913035387227880963096795198172423665528390229950691931636238393401910245227180929257076911675735572481683793306694346285303040904792468719386086965998474834476714725893373309992816637235956171670599032492786378764281086347578879360679688494444713800616934831571864653485254490860731813161633217153169021185147347440615754345843953881047796696009551149350754249139407734508825490810547704555558624947707226282792042504579208568845824853043532237466877451207651510797789044203730323299007096676537323202528914022365257718719910119693798138629330249900125443156254318744675631483408730156619093906848392383464860539360798849184404772510452814056052211443233244883315914555592964600461572184418818866829974782938692404551511361959841825924098780628706396053062567701807250000528625072305312228707481678052138261788593189571752854909144375285871977072771577944893309263538940586423929519632751861069788113404144767532044945130067606283151783558640858442568495401143362451141494131534392936426411476605095811205748232206064048302763058314084722656632244096359762587302929394414437105364420438737648007526162784832066957484392865766297513961152780766506857354356958575143428026071748500954869406207198380542858295018519300651016282643713378714154866240491645883722062165907612686362881110573196084017046506335757981101681081251123346805129731457484684150692397174800096014463987962867670273644786121474894165236438919825267582662108621001810258578885769375945858612630324255822408579502395411504125838969234752443811067231594677636100004628576119893117321059109340099121436038190022422607196677699390444874457168567996391478732533342400480504443810175939293289637761346446086483815597508875123837382328103645544528924005967585950043764648066705593070961753115012977831992337119070357476193568027270481620871728376649894808203564810728687285544944146677042647615299610822457492633262563962065368039542007582480463556258359185479606738611910588598679971593104337446761221376930856623063400941036203310658299254642930150011674583869878682883043222209388099244051459838157450254330985173121385014832164488587481199829595152298734648566954724603721816415855115595832862307659533037661580855467385565527759443353362616257842872956898059838121406958573384122000809801320193571666801883193280178193610513858411912301823372871993043460417975659169496274288275625121007202523157736297962953472210481932092191669704119767576418495624396973040260493811693434231012337004722973729017823546057196227940608310882088681430937933744845185810274565468015111276716739728247006039651196832258412101197583587778855056514360176803890559554563059186582676004660866236593005356580981015836979654947581470960787946902164893602559995461934047958201984631038615559662676609792654346886127448514646177499947772853907634020327182600620131007180758658255714676193161787853462444409051583067964171943625896920563236820035481478718336759798924561644761496995277796110609450301287831046989035931730420752835025339505597031185274950967588493406583732133429140637843045151425703288085021795758874528330720602486897468223183143358052091733282920243603059485622323107010696535964218665127557214935552248516629805353397786272498506772602662339539606455641653043700316364357530973118310762959911256182544881095320235655807884993586716579300392123308487756595748199395845353469339983556971788683010751564075791224883793622756482334043994558911423184494023422245358641138020707834524085164697406356068216959955106425445032063995255336427265744160876534729305859842504036460383256245841162652407508804196743800135245874053453362480655192441239234244254484210461140868544952875076891593207266894208945861033753485189312852638022141429443576798287390584300182079094913776763794861215555211367530599023537266328164300699252452085033846306950149989121463447859905391995324773574603084757148977992841498921447291155435475043023492813458097104565158377871292815345511520364196228196610243580414684500196357002462883864056355877520798197361709463750302187432876525101283843021394504692330282465373402454555193058023478246115569845632647722821474831050837782078195837829608279079946494197038555639326616483611691826796252038553530093298681114330597569717435526418381556156789800069496282134205832597201485199291294529318608511967134791231956436561561585174360775084475857311486266041514273366049325953833458435849509729256367656122511292399043659939242345180211118070446992169533096384729197202720262733573553920010478622633534504779882244909324556536125760147681357382439237012155968060655759643946186504646287960782554885469001090273985368790236227768304771190370822801238409415681699911499027196675739617590036671978530930346976230958379605565828731890731395009809106560730203281492109502136137183588083371749979283436730251021261994034241962300668656646866509195594077670099111702781641249711400142230555141685471443889867568991689031463945774263691420388540943194438993235588953030544919170821523162983846967533541775026998734608663172701935246851003032674579228435326042217109634926133397507218522626483545127866882339574443725293906737621845831542671633297814168809154139232377921315046998454770072947630608086594496244312035359077326496528676292353552771328406855836366684545038644594904559565551907917799497228502877582716827356315405603902955997250077554336556504412806550072343380451561792935704024058940657485749692554875610965084664947866346258247022886369022272924072047720800277756085162396401677136569204112369708474391293422946045443420374690827969312907179304114575241324034039354669190945378677266459717490129993967085250558189663518561008612363502810960281164456667075075859156493687702616811435050395516381385471951229198930513035995584674311361244047321492998462200359580564213264964171561480297677602258440459214500022613613306829738440002485749849108923323821630059818208025632996299208536287749338615619905133454639642571755590698326393144093139453089618382091336872167759200540792876378562326650816620620442964342448116689230877775333635627775653082018821878052285277620334431414643360130168635874116011755438168285094784035361319367098832036555279655250652993494909153537750594182755013406185068571802143323637883619116056132522249780112289155360127529769229685379322709684001684204448101308519498060704754572252343239345629681257977664643572298722648494079571390703727628258348030828970730509310668607700399141969217208695599001126720187092552523982568072365977330578747375900721599048332732093571082490558902944566137046833096478725377185573972888316785685307336891351429262240559234071661894490941998131038988706782911495427934672995815029073192322159958310188168241379263356282662417898052177651908464896346927582073688230646376981850732608571322354728515036773051371690910362063926503937201015030610073299138753416265698933611900462518413461946663602204504187039011422749887743810069019820005066214453567971356904237886955985569053438918107394803510173543181793198085664592258856745925676329612911370965780722553409213708161418936568690112053777048113330496409876183734304758879679863201019960206859549221171858456232083040411741156599236720550760528475710150327389654132276965491915786150223250588465395243508150330123300547651377372613834458005883009565866954217960623862556602713948858902236278135133613377388793644020905212280027012088320245088724604276078667649302973355718708790942280582346765612539376305691900277085459248556925851486705476804647455705059797553131999771079984955372745822775142328867214813872407791459186660571302283781615805166755466146183101493282430004238779959018631468044284026088323184764298624992034544469536077327043893230766147989774680182366164989053313022270678727458452447112351805274861870177039030947803087038436477195552880653976069334741749184577501398154438538884346532887794476113003215117294808960625068428198691322494814386427388783502882331627380251617546246619707934818213189953260641459786390081904423846103640212638604376082275147054579551954111141737787757083332189769646859584400761833117798936419929338953882859540521952003648708080619356997079842300475805897132570635495901552454940354331645229141736967101478476102945558957462922515566182959524980637900725189806199195460160965233970137331052686862922047857271625818868071281662852294758871302936120896567933639446252067600733117843666547109057430606473470618138979033015862117476592576547072667803046754859544934082668800380765872831339067139772704343000446556890419872160363014947060576029335333923578700932263146951296628316911350613455164377384128561926564251040188342008384736952697212744036689386092598795001693039563343577966322482556308796805749052961540267285396055436838316982247801483767814906162636866695087041228575158801908441165516589917144747163630422807116758893523662179104446297817650388882654481916705499137803815330657233806570841539119232809527180232061528585738077932359783520530561072741707798894455281039514188505381880452099547765692341392826374065869616122563783440637746483895801442922357592209689371256019901855565114425709711764588419189684368513343937105060167330037059629841834313653128223278560016508051503862117320082260258435744768277591788256257247234324200127992559846863624335261218129944296787987251021551901001842423975291093365491896411513859139641369539968685496523432061715212671573697150972582757055291114851055345056223945255185241291865870482447661711606903901070851050530956387428311614915334657434779787497838120614049399134501043048387364679228175879486955764795826808196979286861866344843462309066014343256965435371646172806790289524177406572891767776813350290229161053819250194885873928781538985311493005208512064126886209229540455472679321786593399654183619895226878266117209520111744587861925602018405794169023292418245322550744450016582398366526409652876287582936332160720759284624546474803181351631313911398502137855118992939262214297010577564939240584658921015901342391305299705527001953919689684882244613464321249441241373079262369402565769142819550532823332636449843459977685319015577497555839125362064479133967974731706473066469700270761063654785586860933691789582282669741422879017305014042591282566679977781369907654752539207284742755127624739044452014581654724388587419257831441459707895946820868132830171795135392248163588438822408388048966380583486918923627334052558774807481801691497145128386940501840063274601028656624911524071609718081944610672008679317387654544282986597762808404754291009026126968886579377440399284636757125253267989336911603212388009631736139269158084027839961086645239678286427380826315079959732429335049826884101426083294615842707327089390726361146391821808018402396468801685431421910474180520308563383796316407375744667541648693523222268308723747368554075760302885222248154843849203268557320662457474100641536508437284965403623384458177271037795149587576855899562261018492802561383200358605789142766198144869066442150581035409185785537119998055190352931149440877083651058187121683889187588978241202498861368415430693763922158044970461591634177853249863287616860496040299989991269317773374808208860384934302581575475789264395092009113648463084762778012971901621737633226053978799774015088962400525596110708312685534144952537605775298090083763842603651603728828760941286656143708225985746647724424722469810929843371025956943006583422428934096428372022556688254843003037473922496893201356526957762304665712699023174010218568142410003949731583641720597077687073368989490417212281836205392774832895372786075687162132036427849635055755526474125176899594126829803481853700145697953167383146889990813641722300869541982708947289732385186865854003204650820433861139790534627674825103030120972737790421849164148089468806691327911557429414727279902931861212904451171909161091564023172248955944566257358915407019165127669991006559348016712373105012519633396629221481698848122854537953675959005032907527239350405390741821141226674093014490619998755616346600361237703486860462055272096200889190702065747619469770654790832794713175696765944478759572052126065965274182893929509280304752568640980057573699273318231079030874886959757287102638843974055125143612411439747863668510147054960785097469622346132499750213802783953635919542738031737601487878967295429600006206554388563245778493170614766522652083284231627013074969492734625984259491032389505963563994110248270203366924084854629562367390526598687372774501324836633957791116948515980975724341422747963238008286200581287866498523658271281061457203052690333476590447746059007333869949142105790156348178645225997028584590066777065196426472464277310071911845800207082939129741760528244368277905732794625969166565267200020169365343269438102801971249280591400925817028689588031498126098053734720571318536930037983299852035172654097602174928314129071319766383822974330538050279956557725103722500978724379288416778666195000291957724110842003626125194095662660863523468797798301585218279412484152814226155385164844141739130642733853052194863725197566431163590807774457167875094685952004711277066139468361551094151395870628376916276065308727979945589127009903486007083634430785215679350850712091131910689380515526993102530586002271666376953515539178586998742314320697936665351795847361566792373491711374963582755747327534841769280685055928846961598180885498141526011280547895848815215857443754151023015454581908002727837222755249019780854056636758937292519837770739319674737430958160157886354078120230899924605763926301259769821367646111838448316249054172693617341792389998017155970459284334745299567495157298097321954159965542857803958223790992140281505916832633234698407377380267305486706664109454407935855377140799677357069716367860007922168207844335265317062402604673336140393289279893957541561232851234984556026600350177723504798318238745737047338826978564420737900775196843784732277965603584083354648776942358801939388995783113979023381411827847225502529342880415292997014953087711437398543387349918091729993512888435938715610549979112445429353523998629126739437320204838012028278963662361500768781768009980251312091714187368490234026875308262155386845096225866832659471418067129095940715282174474923499410628866743372713153645102552449449892206902269320272949165436207131964909144578412974414979030303316598229804186772423184120534000993632187987773868604367726636422698523852560664798963768134340774198618745247942517039652024562198276899093801253677275053205654370420060044534651986389691956732826774484050498939019986772830216350027135215061351035797270643313588950923822430924366326618398997729279825275172009658872054823402682081641621777946791720979309163155431131059839231426058211601987981066207318436915849753407883343963029153815531024154845569819423347997117807473834458947277717418982255933936668536122965300066824405235591623927051015963852519098608542092867196107499044383332704709568353183686158915850904772248426219591543588312563723382918238939205857473768195673158826696068257588818759486185747639459243771013361108474579265614701562670142695192029572537770192935355653690401192960139615180943543467357794923964697558478523080170688033877724916979376278874428903692619251536620698722056213492738114330267579083030404575256096646442808793118596505143089575230841388353575141912632219480218602783479388612547515115259861621067088064301425511492864851722001029747441903639889010778840448172388744808948575171401935619503145484273914349140943253525182537307087423896713667066856136642164394291546955207547376798223402643324434816783466626637983643162117808422165306808592190129113856256871036815295717383992306528794358496702158544922006329543515948625345096538663345135160029125655177963458193591659604181303374619268629785271574710492771495361921447721794931611830246094702742421771102153967744478422066358236523762939367422237120606406731340783505346732803562854636150116883840819789512849464307444872493326089423918321807394189544032370906159026047124526453645767937270482572904037119655281232609023343966261702000978867730653263022974894051952861952717813432495746043996547381097547291775125143723691749796929659564609168377282130534479983379483408102575554683508077186388206919164831300538642865119437207481990604205683724229294160305936655535818915294738919006878016644804580256225585844846234972233365669557575564769175363673881974292941684659395989774589516737432394274188499200269021386581398966087975342195401507146018996932772027959888308304986402272323225333323076453692839169011202009983825033067525392782327667344420831255379210159256654641321226961557971647038623937826123821503810450377022272227759283761333963026652600194512546934580535922511924630402497626035689565075044374367553170264274356801580655050587914479333471015038226304302027057350807308528982788940269867693449564410127437767615529964155071081424957449128103026861451300822662103465600139913462695658619479112671349183206691778391423844333590713697592246096445081328906474867106140730292078784032334001199448692399693336854829456016386161025086544349772104437700527485353494302371639124873275892745636355182525244291736373193056533579960293701637525672875899754195664039651289198544556629118154091200821211101640491040389370729700133699458113125593712101719381512743807022225848886588569471541163497061162784097867234770211706987186556374277898129818081819232883863802929707348112325395459909112812859293642980333341987510697717697868522328719514140373362153475011270999935445484068979295886222533556232300779869913947532262634597744838661303461387735588934785548023417539250359080354354974861118287439339015284913153306396289326298725897135152391390340023459687031692245959541847983125486940395650618501324599986043375006129375539593513861555693960764722640175044703027673395172413128434009534999184610152199461988157727906649582178202658768651360382834856066679882248048447490810480979942071173653605043378957258409701525541373466972694346825459120492286910996099155817044915155388621517915026556731060591138537421114811453546426650071904641777520227752780871386366116152167170581985139883928228656800519119440910446291099635939139025883234354885630280574295119258205078717178120336202107624652787740547315062003314058354686105299927020233676486686070754429467091127777143377317314702070407256965948985934538246575302282569312619929488504399905371026435181996129170472368869325158958176921004782901300565391552231129730128625779466521302603126589456552739429006652688875464431779494660413247605239362821950027695062554337611087962640492253068765678053328915419163642135791051578845051039093680877816019995904464364222066875090944996655573904583523676375955653865512611318375494871420697530299177565710103810784094389794170285957529634934434706435760760855724193387005876596599835203458059910152926231373005445593528432454290284934509115739045683091163374476727913740233057942222641107193730081850381137311629667554727597866636828516104743643963323855490236610300363310407437367227736009518177265506421241338768955861645912182263982195784841311663556584019189338164710051856563361155480015343467871464714582843586981617642854336057103428808330748931324577901031408240449971803303827245466227861037588481607697109441883128809507272913487494118867334996214294307772167226886202369438944797019885684934685501117153493108173226531741328537785466373630858386509289942308222309122043657785582697800138551811890761568366577974433519190602615237600931618368343766545494662768842484436846426914275595111539306195219071706286317660713990135138823239326940833283917016834465125922621852291057081263593467290109375396463701382191433544216430374733774988195478456051327940517056300004653674989375552302851918030010708883764622371097886758223626595907631185886480687005987081961814171842231734033072662944758850374658104974116241138897353698516221465718456717663091680202330041236867860417549223919439646532546311806035893251014543799497296757934290565007869493477512011911291411753459566807031413413641127969354393901389332723155674679916904017721522822940072477408426882514175486318132184525662788768441978778580277849364013390406761742793623632623657972490354097605384440553663979235638003421142201569464107178660314565719866497187516925452029837934374349565148900014771974271144383781175380805969498600591947181061325430922269431424184156435863702539144319585756330816832846951603344965378913612454468745588514336798380416353217002567569592161125612652784488711705541215840487276345978362783334832215217664795834972810596418389106316399197355772818234599916201967627545988918051419277945115532264715744004209522857596201028886914484453542810425269421311825359413753549257997540167206967293755589357254619130154045571434450884308076910438995596502976813822178461384154021743551395567537828046904724137625266721618913871573708231077285309813681844932594223126728398046317861289342577007102780210888388205053472720712443421522666531756189278396876490489748767041596254627374145354110401955465059135407174665871938628317317134500319418036953634811917724586811250469186499783709907149399916589766878242339934600551520803447678485170298780088577979580764184253357214247126141335220486973650683756091472454433289506392124528591918186920891066027536800757669354693221658412255321701550224359235279335509410982154239641563843779573067492300546967606889257144142728781174995844229596439655893017535123042635999071666584011614715773739179976831431331657327279993880572370482744985167052387830436264779368980894888683673518813274194949083876121581593291085307204374936140710358391622084744654588976509475507625732408418281126379053817234111175886084897936384181619343091504247339893982362819423095153833336434162783689524348708284292247545836265716666176805143477392408083429516115202849657973880227737678527332356121965710913203167932659287790694087223379667950299207336614629040314099350736016559254886583748424511127542732768652293569134998551558826343124015151573144277671379939100769244454747089139185179769983802670371612834310940989587770730543467328375741462979951548860215713437327846734728138340999879674449609456198224774777668637910454223283710790787859751783003572908739317435646312851590147485403140497678555683192064347067593915953724244408787203961006836151373099213139474785864882691149150331772696744059175780194552932263213579586109292635335962345088361908268281268136471980692029468032240563055039194502741741390202541298439852464640985558720090837183775555874092391986280235259466390770820456897238909426396986947284353129655251524082345631626770604262528349901594289895281064545584107288220114616518661129443098815729505464701860931409131429936418670039596569438532875361428090677400025366899902857885466711189597921920534686891236008759416446282591058684542775607063614329279101543400276086984185694450252620746831822304655509496731868122840487265207156281084137180209117635196450341206741700626704663318811106466916249736775634758576930415681183218451528383960047244949232202343998917667992243720711384520549921968262076344501247991322106746653162325181522877214157999742822849274587629379173422951896155900319345844491955031605355837009152124320661275809051258576163121563528806155150321231073448630308045085328714055951729604535368171821174969299855690148759419145413129847869128859986529531443803623277493084654075585781531654788680307427668690375628635569416390827557416529978515228642510409325751293287066650349417574506089633131361263395508830225073049643748511449400622516170165393406435906473490326246762746056002939019006873451380576481123912837408868627634808337759423726244505360452008606621379224164847521394219339909469826200361479881448405310490068132997216729310771666429670170488658458496045990898718608870054351520497527634346249815918293536922779755190178809334815597467268665891354202013787986453147812166642479197713391388408433275568219687099026376756474348630371851268650276478838127150694620857537240650122596282066778688358156318324349186551972098712161185787600570107176662884528209019461151089347385326489000192498426074164640673698513191585208826704015898902039680096463214856136758133096656010599730568367152230863447371008027652978537333567923643441794614059889254649107743706812146290593953252110363080701371832346900791861191192764818104230151400662593900732895646497318832588823532814622488362154532638351230098132106036962819699396583347386136869855084985909110022508831011347287333398877976706460597356197969147335654517670802671195848694800684993589692440462211853948701370809546133648151772277152996483560680073639106477444681342564941296732690515411824318769162894286676199082328211773319513312014567772826743697602217331455258151635909869001021733347193881259378417651715489055239162244371967534658260697974739713354363396790980624277827992930877203970472111201701047740038361801283761917157708278406887785253506095196977931580064977318798415493025043537260988188777778773136294822201214177980565993489761534039420349342681805496456315305226353459694607787364433115987241591500256403223650081942453135725381004832013444354484983149403098675533833572301860444693034028038665905160084947048166942695111039223318607411381591404967746529992813300783145177092628272897086338947441882802346187756548257953944486329720023899295021924529474762446930434863690948161558732998305019060380760211696941470153429599588789189308776730047978333665895856683847626330620001341966555716373389756492642809988263982250951954019166508234911258106451288661720407284072536563547769442584998586565085549483199671253513359015813533677757539221984549332969746229723135672155910514464725547673084300377697827568375876266269401383110514731728259554775491941744591882213673034923841369882400012250682631918681256274153607195116854031834798052948692602277861271361160346861155010616429343766932230417727637548624556307756074094577601508098359873273504114779399534835990815867969966278120322413794022763023007211686336592936410942189172821775132557078466799570888415269556514935494863199054450846781339941627020479026387343198160390650545845602092771871796962122231593671276175053630106777661557203656390231007391020428950581598282729443580147824001785143487295144724146164299982442910453992749523299471628481346752113574030507596779055229932866752676280573591873331836248457240096391828434296444833842534156561349969377144159473466487214527778100662844613955086297736120678314764700193861609841390583815823795192993393329019402053606946996482765535894831636238637990355416202360842668735157113503544559447908006292069680029354214532470423914865552253016916197086080032924552785381430841303522691742709050220053576997761405616377718956064330161970164932345800714119182885060416732514899468765398596024428001626671058010257496891513259492517776068967849230092785385378853033837235738306498489962692783444587053124050578987253759050727261038135601387078007069319924864114376676748934770439140950429176862170383347427568616728843552148585007198578155441344542813094451896933942779075233105374790441163079622185034536027644420818555744676355533784169626740506521744926059187040997949184133846010709983052832662600272341777095897647588932767109440902402661652554366188387112657464360181738017279396080624144630268019977440130540693244091016394800711731419819120108549037007089730436591952532746767809365463737060328786132847637003403006594818273170207165573037933528646342494264071611467205352639854656734269299260418924070373885912513919199435811694491334934273738644334547619965750075130428803814286092267814964493591271822449806353985181317763173566143431562811243400805858465921903847377917774033596789183897100404673923436305944742406372097682744079413710794318894148306109785806323949105372037999375146271345397468522391947660508812967754682589981986652371814316218299764944829620077313494503916021814599490129115350457166180062797409977717096002644286413455771217390808652844898258003132792061778899087281476098533110727817289819120836667025030751146367181138135368278705779368023747888185854453843859748746166165182106994671202498470173722935542740543058749344366244394259476855468544891532336358865263212098168618299309516315118911223444697189558373882254534713677085811445887257472191983469515941262580256037574381369131182903248242730754959904871577919632444247871953326609759579813867505602111472494976085927833054296914287995228248399851083086486912543320594816291502377172337364592139365120205886971462233040544500702653738535102376313896048390653130166263598339936335985221028273810618357047639303495134640265858851538078339075771460379138264873249093885244476578706536119596683103915531543768367164560037776876865189494074246454353326707328689090902212906351962899425559333976404468309401390137070330419235734689082880084883809996862380036110307224804620135102530114878897341621718263992755190998272634253628600581654041929098811195426245807219451532888964005898656892446323387318371809191678309389354871154676366178922725618907356040509179084995255215554083676861712807625172587655797113437164214534960416436778629982516568236726674922381492927750557221945758545439477953733970141674416069381078282325994503143236611264228250827545015727611690501455115806071059019041072419666286139048865507741148406533868755925039539234363046953457734915710991203764911616402222108145143135431595638118419372277153700996473604357608579334105712912350096623659626887079002035662550409549247884227568031776073759004117853517115724891910276737440665100808438727328894167602989901076528127441598367454030349044021223113578130648400879648412384937264382488381886311322798918471970926276906501735407004209986364628455658290462283202995850391263623688350329174030932660829912404984685482362033262664604380586828355316246939156719701056001591946262132871333505912919871990058592361400575094250954959548906541645004998548572244327130150750863076187045501272872476749919096820971132410157537546732636827826269577181878758769382703984489745962823822523664350558477557414601531982128884358954165580636786950509379384327187628739748492335311495194887796064137291568461338357363146402066524718219230288959962405910279860925354492028905810512102494807904640305533451693477855650513540373157343650059105609604971081070836974789476704191778034439736411903572632270989473389929365909516610377168927325503485837229251778579016845284548286226307456037410039808783946207772431197207509226925806365975831450278035790171089931140496585633421241062999808542132197775508751167666343663640423345539489892431734510537787195402214177060395198340976177782727779339867182765055197395331475549591356633122423033109508510324062337470805186788293901457271808931303298888368591765658587806308122461644998070792100947144930064189751580226498266053543716522967863336038914843991268133545617664209184625957235078333613960637870334461605909069188113473977930052112247334443470667415969975649499740011305718190136426136459555255015273032939854603453201457413198428735045600155328733065937255505624648402323524809017036941827740389072357606491485063365817268584848844834375558664675680822715368610500225519843946022161558949334597684944274728979501370442760746412858307119643862204583714387182131634636288623055090934586823814476747496022768671954914045742859880339926449466277616716312111916857966813184081026842358044443968516465300442316078123254530119514429463214841162429701840304697799352147939076041876570868311844866438440464697356361090112089482192099774798250160996434204217100819235332212148512810958920647368291652138991997049146662927944490026598257650582494999188492171980396764305625672855696710421612413363609229862275618162286633079187282492007257167550255077752694609293003425869221476841462734954517022684790786542396160389463062030128803504173910840584704695549302018037141156176682300364615069033151794903773795647960665044504211931290089333696298785162516494425173780596431578375598949220216482665312931166021426687923816262728755516797827626746602007948038787012482587422977566827692759440936446154728970696323825076116839052008174636434575790073132714540044757209118382634869565867661053512529788490921257627554670634156954324596161378437675883021681737154030137512840553991947337224372988381705870967421603902696999778838933645984329651293020968464206265360974484272661842854483935705175334084830739356647964360865439848332304607979115697730283548643667645363534209744073931504320535570109768750108012058399866086885479661646416975988376195684142294063823515135691500577290607007139659570238699959493542695756673458592731881034445578506458844936675724467783083133260365941048102357824845712080083410227005749060697618779556579827237315410257426876790598184293150116722103978407089566507944042004217919406737921321926662272108632664981670171230032505111457671238490019037330634035228971511146694573667757978562422672353072188080793827946964758666735177944635918223088639926099267201106426302100205887837094837790408059330488067512537605708129076064243495041782509485159657849186038838269867124370593129592141750396228705569228007972837020810919060177157130195332775845508670137775258453741824043066317618296558167459149201565645169789135103591731307352602869523440339675259145241416288155949124998579810940460027310735595671475189263933401787687009251183061662595183442488124840046352958882627705109028282174527093792327154436789685873393782746119121105989251392321654640798024443601018176343001755580950854603855612041598121232686342233479639931291332228170260230990254436377087340457605231799597320928965009301178832798305972398365140962205103698463081030552470100048575010193855166161605985173649356079286838018937687614020792898834220763314521476397380023837420457626967068244513314174458471976450774699873141027883212237912825797984343233208601593066097525071970074212876607548636930258090654592572273439097081298284469171401764487483692768217853799550917056058445515675252655385595980959404309189271977003586560217216208122075968666326280185613927098844920075716060565579086379673371882433354162144271942372773977234541576131828960617854748852115846922610836586874812876265235012796370105166305914258445407083851072958845524094548219285625376461968514866988698242118018762285378309436021755395875728179443878374668214393248192853290885858866610738066495488713067751242981302720788462436410144052077385504189117668583114603032359254243857515051571652952940206802410388504438168819028690973751705183888416049400322260817202831723327422571355838507078442223445617974156642599251360737522826270288289720281814380216147287840210078048206926980995298752313820895246260105039461565620553090014205592757012359909843062599940944947648053734467292335115249616490730457605490420619009981193118676187720487810104434557938216016676542302775852798997285003247222436224448391885529758856443276458526655657033259589007478836144433391984271039132755809913598904922440191363480269789422283442524627604070760123970447326282710914440014145952584983747484262756087641335086780253687182859738848213528215650170965656562303568451021881854504264038661770401419602048865758432660468768617681952802505083081607273205352516177569147480980808864414106426744017426248212820809862607664446251334039446809724227163531665063872594764353994668479003012056244893771403745822438472506690556597168348160378220128079712760875108457751742035188375886052582677906845820223317370793740437228174140288225429322963069522931502379741628183224157325933261070884440193101645528038456447422767144529656510437692724258128422125760127222036015371036288540713786383595233584040057715021523103547852282340934867924193174793884861105169759513689113444467160578123930313287602088269595542767500724027949266080705909794830645684076691517530490930136077059561599967168219091177208370968250184663933302650855205791092483151901543893906004006076195526766674883255062750810094131623338465067275965805305290200110525704916723607965679475033491743682254011312269084212876202696161730165978243193501129006320788322306358737210916925884103197960862880192036180651109333820322211062406579690411166475207640345537993918107072271059472179158148425011349270639838623361620839833037582320524669107931768248646514634661726411301891224797630563762321386342630686502458926098596268366565266028316645618254654758169861272369823449721440660248221870000785945032565523429217765249862727263452568002108740976749419859650400244082809772155515419126202062944754577202984483061976636125301796425202228509411097689626229356214195911462064848063230068794535943802668315220320744976596885533179449578045591952053922628931126899377446512135007669713158768697808416452597694434015833979702587217514963944918340884479058240764824744618480164306525912676757024761498733148438261383874504560622877375467627324893084314163607284314866127253872257180763340521101177893885888688794288613182538720737137629790044153321087640393646032633439422389607665945148057944673906361449920523087217865136023416248115417462956143325529985153842548177903164203609676212901960021061559852651167296422951256599589987426833588283941146859264977653214760119979566644974394656554216986439289081136393904508510167240807560244975573286806880996759882560328530478893412197800994282757863858913151530186586617844516668264990016338186752623290350661707384071120644710321198427146462418175398460063409100893250915177616999873199931373910121027748289157997603425049208514693984583958170782574106360406707118153167074241972212126061490763435107426470629716263200285123399449381404313741329163325114771689071350544416556220582716025151013852647818810887350956682551522050824072960091064819039037347142471535683703816024692637841204086301418825630368467844749228731648952492782482390885677451026841697651895146836730335874240083040351754691769752937314833849354120190782830254785049956174968448864986323322622019684850679728099974521511796232681806528990454719887589663194253681703635955849038177207651698695570365873310106620267939317589477948026368350836423186590121979712566877113185635702993690468756630154470939688147967154133066974557144999451897561081484131188098492386701504395119592908268011799010875598204127188048674086211034323653777896502056108576016394146402606439320443467426128007728103404975585856823667184766841573782298741076790561709750354939414123452732805742264920845119464111553381942546711307943102671289101528598352340607059587128123825830354608008299133357801510566475953771550161885712609493470954068912289082979982597812518438335079655519465018498103692569967744811285477110985653468423431795635750104456389464822223740222463657250276410234177147376754497159694241970979632803613299367071300015940081084226275997826651061781459485977708315847853599386927978548966075412383263243549701556714495178796662846808809266864618604384657998675988856869358052275124296499094317548574690337351533620168260389286639154400683616186025981777826068206223352930887080788933970311964305185187778078618650238939119625178354000656106705126369300736371537910098860107243696310559889521632717602776831486606919231612811246329721883478423290095538682407415030087169087317772023678620779303146593964230123182406367957567611251803439858280101394606059445545356941557073796270902201012186049226207177090431975882381898131962295388021966698922420087456161021709576112954685372134106373007848645492547363212040884213587186336549463248183056577347686418995296708425485774104190287431172447654829076315778851645741381195070987214459272190208934620763026007326573645649972801761585920534139931119842589428574779114283075982153140502631048351898507570657642280759534322568650711708441800926805900438149261709060149682379778356307284558148620979395607824456991377257275534785803630099656154846434977278177190964843787053939488655548466348214522026915784993166411106822586872995747952410943462729003970907795277284842156298009429234999869160241272633235818791391464812118726511153374521414622478454356372368480496546931640856509039383417193232983457118123807488166542576621719284195988549255783857083016614653467358179330064822700840805979956185453751904722890918478408317245360980308861344060345688251510657719121667119876596769180444698189512641809511086241520706256961847933906998581725868745351374657550217960656191900857783704072497061584609331656410379429355976504196671372968133919327933884139984196142392481328523787718570301388183755650101684706330317552986870206389123877260897088947840386768701006704433605091277409048908012838307052066883160939047747046602277427686563149484227897795721490651625723350024899486077929689304594577804814919281407328236424067291633838555394626677956674541573270639225434960525987559203118870835662808529019365323215920243869712223299222621555243682024678880983745744476817918597253512867407719856896185568145709310480218927603381122736079041188636212725221512097251685698952873890784503526909504489263460918702403241945290269702950187754636976070129653484757506455555436185086461667494569485735802447868856673086624658595229742653345075168756706564581763115289321906172972078192864531575961712255487101472330180038163173192793586490122131604391855467992115638539168387115682099280494273383488570926944265185263772266417918729412941049364433308055689321403267952026872182064346228782019494303958410815883569269922414102015284223781640439070071860550251253667956743800747802068640153968915359509499407676122697284802382370352325828251831650205566812475141328464689692036924681303246351875018856608199645897526158300736943857684704748600215473136621596434441314757810701689433909459012720051442232910931033680619417974164400374566448158137189545052815448879881721368840517598238916665698681584101248612070627515217604256974068330847951538266666657572185260781329732842217722074564658405195528508782139085242075971290590853430600094459332566400489471946445664252933425487540946002544013237300653386963902181501382615866125755954859195491861460505079039580406437212339332442007153159695695554891575694337744920859411466268764282534230747199756309487603336537106238624269774688406433455908312799884761343655649875777741297976235284066446307450043855400034010878372706677275711669411513652061490272869999060053717227469542697146184523040507004925020327593496174950355082731660916690551029664699739116681228239495397885595154105705732077042002299664010327525313833885411375499404541783056933048686430851223021164132875974188465281269412847780864302027160896112092517672750981855944859155106135592778574932971989723515388861628410128065404423065414100949137624159046163600336395404069303248946931276347003059846504581032518878108693298022666360466639661953021002956109501472228606917568890841739887054177335037195850155763113376937538236823971164758491520216206905234581931268626773648244520912106769059237920939042636202547553614951728566622949766649580580942249485269189324378620457066549109218386089505566698667397897633590249741735622554520255581322507600737428100633394517339204333763747494830059009579729785868441469270056504989825338005234381936325647551709675159225619032956082895033396811360021346858374151899740577323685487703187093486388210949976069955376214058250101305144770334346941206516615994653078002493572357871732370666223400511460543001472973301105359791821176219419277787408710837192711437733371094335207135683688812608725385240085413323079616150632058007955804754833640853051466124387480473364972644115551132832252901588011560466045320507235474709475829675834790448990444031634932182100171118124394900982954651917448480000703866416300889278265277065286739860743624194286560640566494122115953671747174865778080860945881157583344292616220619901242096004160284976019402123559547894191425201124728708783268025874235847964706616264245010374548036328852797787008857999185482173831278327063582062941630501957236148697565730664124461624777650174904268770002852549938876018300866046060321384958827483192095982622512494435472381475913102032992500205226452773898727591481132892461579729643843411085543374407269748353463029259492842525465077526293769408367928712696932595107851611343384951184786283517865745952352188335667330459856877852114825587212388047003159597217107853274851463323025042054164855593887994616300419219450534823274991115852454449534197556825882172435649131221659410746968430055558571161324545516426923133383932469742426393617371168704478226606867272635547398157880047013985484212502513524251236527648622568801806241893556991415888627368381828469093266771889170547063452078370883247418059330725104456329615062768591308293332923687207206400265724264799063695070676948130607465025739720348455318223367690621779429952540284256642112770378677443900358394287499566751120359959987002412345789870021902914628390054889935878960604797378182493557086458041048025101022619991380385390148615476022369779600017986693582444939355330209064782627135149761761436524260998970266124965494598682073549461230765111034856173289232083002220336417886920882571817365330449023108678766205404125718066529276578153882901501322489986519745248936441198004250338657061503432087521300049111434988293859672896819992056749172288288318399154602906635289404352451817114903680882791518539345094573838835537639578013369960308953993195035421010426071177655250441976187193116099379471865845143796548888462953410507864978539823405894971950455455662867614997416576902277835175837953651282121508739287220108256330317798472897660192792645209617359174757095680166984688182892695804455637457253981114283886318886323036722405655837980300904110907522929551870404266654536590255107942748792157580027247095738322602861916515548360460203937478935138029335760022680360201824475887508906674258425576066513187717405766746190478789108236191927023909654625692009175076144829715176072260551728941437567327303610638854055234761173928469181648481361325963593337296896789874397417879156987906526630389287525896022656195632091594501042647009562779148439812980324116863670403314484690578804026772441621226931581221760968647934312958714907762967196746951668279667938226164728831429750102257464939187231069628012119345676091252634558004484337345142030706135592462698790406463771940818719106918151410366028989273599892303663789587835857630859915238845407940625862557158827532270081023433642369824456115227086777659095519163769849579962046765134489720864801771126254508298072998492376791763022032188724479086377875982922904129971351000541515231111845514210411930290688874741509404970283132307405296763261864651106354146878115398804999008486902329229449490560199956413408011820817873544914107623505067825643954346710319867745401399876422503606336824859230848135939239560626214691075096351218149931408041697437786532998150214703495291418575804223129440832164944244310569600615915739646377672851424038162923775848938897461933492755697935512829052333972444579995559977810374366808838933780023653544820909247644290364641859388181158701884277725682178250645578344275687724310348988467120758198896794302573227270516977222034102932616984146611407813197771730462761502308916890626229289090495054115901065844820283407160831950652882934196539757709786662031339690899519346682519030345059985351052715481534602753918660727789143208372157802958578044120367397825490481769272856024097244824454792507836998533872995973033016833293483416675316792182649438452357810498744534619336373964613647881736692465377110978937066023147996125613738709010876086283787756166042860559153700629012893080281975196284308319485607408888798615471747293227823675509192681128235497559695440763477285794083113808061086654088146958612671167996224763643905696621328689050118001026303582595995992207176609444691538962897722700298984428078447191336061705840363380236479164258424761930279971787038035492027211803486043181193136250609248627505413179196862583741407113255839642796522707470590191502525256810627777858478614596363643572021383325111424564449654671236671763563986846928887467343835922902861247251712394624532282378382980425731837356846152008083672938083919167650002242451451747203997816536222170606968214488191763400386195337878100481694930369667073262021878500723991636001636752602848065837114042088370455788489135086380892522473207971437028350036767461391978321910449544923476858225278640321551683246472923087909926574288337174259107874959003342047927563257759036461139324090952053788943951845250939912975760510664548537392716814224085324200803024863999568947948201060264714549626482528047823675893423705311000142830574905431122517547083953315698757184702143787839162797168468877223062990996106806380881151909311049617212493394086541036846231994586462745481503942466247681171059926298699733011851176014154514413313874609623565183692879629306441088746352785672469887706760035640889724579126229728993839843634406197984163640220589184341989827574195354350284202160910583319879576416922424609783235268817660822629450742374450598361908018893700338366219069073038255432107154832301019486818117546562489927412724625872562970077816161622582748840233197343462277032144567876587487166366178790917597718930924227197650128348185087735677813835097073090028242994133892841736943879493713457143695627765563771720979639872175395652951273665282903491970016669662773803669546470279523827587435887463071652250769033347545343861868481440717688800071190532581377450736993215740136880053031734047110780653353888663653994658413941848401552028823144096432367102740015863582105440203714124842113203999940495386488942612962267642551397398127845527113716981734331249160272277684292734305815063478433003289443825425186436745133634580154268292753220027599156469234438850736386392052185514633030240691061368422381225697375270234812232092524666394573148415979860980933194095952595449635969871253113511166426540342796995813833027679059849897502260575463555452780223619222709419714446700920590550637875623733530570173579411878382997101971756758710055178168529779093857130738157664518470723431580765748755076064511672488862853761635107692388149944470123757731128925295816345630192529521599245158461211956193218307185286476250426713140738296752724274299864187736494169783129533913007829551438006311711387076908219854348583403149652676354565377070691186334947426366024085982807291031743565172481639128968438060111325616793636989193953288700286766696802175031463894173032849324632290749254171072981836891010688132739378575622684559585270788273793426405655383323780638833672130929760788862173936221716489464771075502376547348307045365089208146490518318634637377410052521362806052797569566093229861910825901099862249627827453189970454197880626461439097396356269519695054256215598252592568467785645535490118122195929246865277762216388507688906142353895473685837584493495034744993667004133160966952004286436508026342084214462601327791944892129035376013578945103264877831184502497146650245235689726112740388410781233525479435302327168532290053912463659118959451401176849441965731400015581279520640311562650208494323435239524179591479330080986981180719976843229158131833265282935030474169189632634773609969694217446005149686807209063219102080071412484520544360126341784808556986373492819032639616878456013430007644378387379420987577102145324931361868551848062724892181157093610067623028586393590078950399805110113152506040478996780518413254973612938834331060476105979263255771690049000880756126638459869481230682431158479913997415658288734575918589942271747874815684064641048031037017732923296841228549174955907224526432344771595218066195216972874023945211998099306835145856930099173810319345210573260184976089298513477838717461676049648576996629997192311144689821691807696138066434904952833024838836120691198321817042817350845661691391852979575148858718864452412533690548393769670326474398484079994569691830207942223322479835767049936513064102063196220817567497474826015870754623771642788549170090215014639252114599879769903095283292760712699897258802817648242054709625319304452928796945529801008948708022149981762577684192212844949128747061514281709421526136404078705336555272587802898446217177476433884436523329367754611838466722648658271244580911825023695292874799515711007512623648879100547042937509210235283389576803124559752842707012043456097820656353396334676921770311067729569479637432651576588699695523342064433412390370590480049136261618370657417933900975689784416941409488450808690607244128066758464035639717988155580251477880032176934615055246354266364428761348380974276578465236001785289840325962602544942598860286193470469209939333558016581903678843949309690279569437069251457514995527595367000154803849830396353753922101154573581440476655554319451586128760037529442179616425983373365561914568481120271242395497583173037424454461221376724623874122961934045328167641909535474149591576685512023342714730709105962797370668246048838744590180314820156386597806573949335179385500534376382505900853910059671383214313126291455003429649895107273228777092680438564992029209924761776029682862435160557300706401210164586586368273538386470260922455893792816029965179704381182490607182969226786104658245115094229895012430453834427877043351213654745990483476767031144058121399067908572525246585972101528864447532186410693932678987576027225412439963276561086138057793340129339415052306292182480509313154148017842889031763979273524447948488507114020417566326115298876593138105525060976194151348100034287808867826067234721145185553010560415713618526143776037186904962951446218703885990437881181629680815314139376745612467602730563726008617410084141526844042315063859378108034188615399728458584956225783417671567700826772177925865552362220406148910845345062418235613902407184731090254732412742619625263107982489056281145573784729566945154461140286322073518789348174758338834736261633653395972955826394450903245351794553225204642731943556471017881589267335529096049796443445555535397409853195204206425135681705491248035069603337912557145790132347290284792956859958244724367335085030609260627967114618744385443495446180695684806890743843150444486455406749697846494290632817445071499063651154715394991168583558400218606127687911758696425130881623766631287459523402767534968973011638170321441140516784627888003567236646581279151197536374436401953958401753039664260589666811039538775214135575128020023898586808818547360851230378725053837138298833145052306601488614493991858506387753367164938164255366091355410006719303081947171871468302251743191928316015681593119847821138739971602878490211255751910565808983312621859979086440192461557309201584491945266150655452609681898926517161346863036269074502869583525438124083280827357006395163748347254497186034744104184579283635656085583828362501740717091920540024165462399752779516169409570568355741210359694734714744128198485547254931187727924854247955534147608551156689047342107980422669161732002461440705511647049719982660180173053057071376866835781412152567187916129914885530947466904395544804301129173010975864102699984630028316175091885773724252175821149931286041632228749867214596057357402646226484980304697856288432612080374194804143465621559468619260605534372588473800986450840756823554493418141557422607002572295252840925599766045959770682095660199462611138382162538853784393979315656450514185463118434734428028423627391029796865155116830879218555943780004459609670490202467210092464140086693154444214075819899423122850529146311505350675508664744205141143092861083632612719293193656480702660115792595174959386683372104463703122513221015199632900993570326644368978084225443520366922231791037624981842384264264135348389747135305717636903464621444645908113937038935494816003974048598222603730445247570178096630564447277167092052583102137342413021373039118075352057952063284810047808118279786144793275903792627272341942185327344148582044314854045223114068766047878489231535850051138048961468198069098223531839919193988430497466790124474428353510660022070090240461021167220601050361354457054832956735627985864396552866427339695839549662775503966741306963012933822401289578906211172192967201915655333610274797834877109015081779455375101533622924035256698036450782224366523409099350920685014323197423967821955647163180013369888348213907234184767620455280174188911120139989228445106197986037636397122626199404164990435643818713854598321608332875814308129499971680240684085821847134112218328984661669338664789487654482214063203159112193167061061950101647274092239796826460935100564075303862088257266527916943485868909585962238849164470252265263433339716469899882090584617383658351835401943534480543344283183144901007665016094196303085099847956271023491079162977490729968378568085953450050992998658453292246620968119762727506417488134822018971836689464304710224369224441289773242607004548903880359169406813507964708377881946012340397352520960955744158452067645493752264508235191071296287118716117107290330959137488395829090572208783359682187345817628415350524753732314547806706173846468357586539103541239295500212620214375377208631160155943472060199148684126538798222623663100012424884447080815514578610589600905835355761877541704833166322356745864729528502823258019742114093048355631270527308437371681360213014634470582131851910077260754193929969830505663589941970476082380935571514793667730625400092830444910346388057710187298247571514182409610280525480158315484665608677559252720386404279564793306443366435541734929024023421872483314740060336246435511157427248100129788327568235314349596367273524956278084837181122403572816533725909451169586231978647864419279037432446887602921468813975152119051797721636547361298584389271030192746242975414580032785414068991235892175669118780006052808239045722751263188727339144287430824964046686886889916778262929478154063531617129543780966420836118558179662199694427728178479934605566938798434218613033480124361338572822567792608850956026367795605228392479867494085550384149041835986677471581230177464241428093552582391741387185664921779307715599561881054959709079911634753392950079548209173757630268174132210914612908657903805062136724553748983467700476027437300278777227151077406623589037208961264904875758137818991494567479487099771769193742612032216399246245975301859766453565965003956603625562376762441327471353642976861368500685850882585790584626073329196580198666126226683534241390125436193079337667427647990456569356694228863347938996541419509019436175533756226140865448593301168197647579955948122434705948923997114409062789906686277459478721718004678996776185254077320079311807377833782393116995574323737907657027934338644863541543966941914278118814033491332819065800942863071512715532235698002007685260035230380143107635138089366511052084520448258487712278522790218725261325600067049508345249823533900468821834148583453367005947944494010428904319696584657964542565537586469745043808157090685952611143111796052384635783595193406685409832987711862391149599611590290840029235916933664334851305410470163718241312705749154763698725268444527628375553508558354886939503896598006802059611599224002229023471323737277123117902093656367382841798457805835541708523754701377965768292926094419286767757549859224198807855104007229166155497961537331940118787429829712293751047311524318690422303458790145982566902607473357206539157212727710694888203501643517186100861581082074776143894140290937996078262479005955793152457198579203854300339976239654731184859882808298759841388653111371794037676207441140279029489004266597530017750290246450694886339653432867341076839386613396744974631640282411898283373764891957305991685526301208631057391008433784273984708635710080105164486798074576153328918308831886343213768413024009273426960093207045559436909046878831399085675873026868343551261186604931650706926926015101710538707930811573618188492429821745544356707005053972244485495017312836767653817770319236869917785213625606786972224189830850809028711005182459412567238483270477572140815356567290098660360304965411055928733280225172735699468157470598419760807910010286334698650233578398158900090488648763488593012744233693700596915301349828872569643580975712255528008339349613691772296162280006095507818980793068862229629561149293802983993344444824100988604005571963919277612874914300335158958086061503977521458548181495756977557836004146917289527584586433285240180092385771502857921539636629261946713612284099080933497079382547625233556354128057035097166491537800856863464749691871525119687195571868985671672224117117191878981236208572616935598891261861029210401118015173249202478799894161849033712028802722172725821225340718588063362972853397595718713758370913326574122078085192649346901276475879912189001506389295751015643513722846764869593900382779919555499593632292441355995738367718689564437711471661155514774226200047242128082777721884525235533313594269365311062544770372826114453218143261148519935780156853123020119145012062071346959036260396277571586345309718991359427628781203525832366296843131269014252745052409624794770667236648539438227982746513054012865669651719780876822943399108333265223367691104398919605431498355799946874153944135572230042331616593565525785755421324690441704846088817698997625006959559720579054663441028517839184586679339468485453634158751433518115571013442581880166059736572218902463504355546313669680551248049313499037977860031545581112776553104045011101250113130541620131964236514881136512024756914630822898438818415636104725560314047947838151511019055253000280865636238354057282323112774261568564273104407844060382595319292205818788094944656326483093621063241226375679367614348489836615665345512307560400124365665657410581483004898088750590235631925637654767828924465731666041088419181221951679901969924937586664395360274529542062702809379006175561555335354871752252600384218158163229211970871091203184712819571231224501914578854837815511300605640139344738407520504488465909096365303197115891049153506278464735368066735598777028937050926467660083751533222518320560222911593849179162265669400176939552675266087539898620536968489701487983219842155643108484092322291670592347400150235111638109963752456309794716748970663879604094925378126304250508208661698481516003143410902702691317314595652800586233977184039429191443159912945107570902357016122874293105699241181159731164063333213146818168579519376471048683115633226237982002655611486556038068104400591620737047039336903857811968640044320589585845322017767455888600593080886726206044895694993297725310999833294808003980138112806729253179974809353943035500564658914768888303408734533064276181481998448290206399924440972949442712637292372890076929980280215370985553508551300592667706450754964090928618487980268950568709257375667045881962801120172824563148168682497395463991713152069669154310638415240235975799876976147124485795472837493331470891554491303755574173271812374644535722988998333003936364828676339774610732104547059328885598127075849122716596233133558852160909937970166213317288066811924471554726274195713103264100118529540710670464514111681161678817197149978267820091219604035728341399531526992122578980982081431781933009086314755523068546127226983853438405086586647082388361466666024634385061949189094570529716992458599733708450607691335052891167765413755511987834738193795355483229286144365802747561769253775093623663590503560893208838905596416812232477107828617488038631004776178339457724171767165129251088105910405961211740405664258889954635363482957114407631374190638642428088825096278180148440166532737996287418152389793382202357881942040166324891911009798272816167197698457076514963471745924078386434964405194419197830375746080321872258359204087813639047426188488040807799597434400410702184840989263614444180313832093560272960481722748336346091224386225444294528765827949180153220615177750149717702736011412273071681175451817927461123612702609844258086199783328593494876196073620159980911215738297381013334159558820084649957139482159168401239141086780901784847166490036888977384559766217007263829916234750612674008272575890642420441887478849323035008309931938262659621945640714263417789162489994858982527757177050475635190827754392336123725150142467449144206908027385676130892476262189682908039304265056510437151241261403389565206409643238878388978560320696033450721672050995882135368002006602041210968494677378552222168758995666221085323463060500098041825882645044760619097864112700406755054043696028184469880012150503354142179948663633600136824490117197537573144116232507152512654454998769506102500707969713610579734290821147664530810567350918576190785511270047900726563385635321798659065422608805912507698585381391516298976870051789771183301860095165037516194463284706189861471415145316545024064768417818871743689836698852330696929868477529251168327289946752732620130891797470710414231917269160999895552378893577788799313226371867779634468950209609571731163327409061063755900181715870391442947352165173801839458426109471787350228576079406393944425545893308934417838736881248719969082750479967217492033800484236275456997374274775527799390485791114914179795046986431499927801665677066112885526498849994983992030780068038675425786234739846941264985516740313032127294093700195831124583489131171749196951802157793235396819488067826899258957995288305819035529755212080385122948412833573884562246131578137078734832656674796946854966058816686716035914458122915264834102581324840862070756453828273593275037552741828226804850990637166583688828332676292463214793091344760146069859961524794056752584910161192702950172844453974034022849265108189968157079875053167588455891960555241154719240486624535927109384385277273805558150487687282470703462188777682231749491960218248840809080101144754573405513700457588824429537569800535289100958428780902095651180854322036050804739729690230105980787528693220042553599954125963175028943805765992588359477180253078128592131157164647352169849046309575109322834209078732166926081855308613910706642906618896311241767882508238110377121662873197886914003503973398544855837844804384303685044177041752284343293914319305546306423572953732606081652157136633882022700096850869987890449535483013316162586222749025486453299807473197197278471536516798507693053465266429759076670693569455019660591309708586111054239970698960169887413667561705166897788720377665697040368591660766173374079249717223309223422834541597371641375002693752663158162246290981973053643783011389733387004633201571659426933024930845822034377092928807257691661131788658457942842428100941649228699741477839954669476392127911823614590550058043185155100324941362655308104729383717266277135005032433558211386264974613592176858335289825167303946910822403042914677455769912516697549169527470844342542394342445111708573333822208074807581224910294459671633669555330249583711960234536176570555031263493779244803083379473249513851158434784228127005458650366793998553226718373024390139656227974391055737552703306270243603621820551056427400272867403796236522504040074596441640706300882792472220907840355232413305067311963439119837768355703305373873567544330676762241280587911318761589793293192228794149219300114047297637336657642483480319794958554324860764164165012871263038602114311028594567375359476294275913528581962019028186218262031415463654168241387133140362894864443498505827395592362336678023099806524932540524232930960266007285332102350322575951720516216965369918362002328364778567127122248541151544992246215653804181899538295974174727532434449265417335386480954811934757410989216234953007286702207129705841254826663678228145475936774975156221182653884688504173568429628945336756128664966365198044227887146892336077362642872814944560582261719090544157555354364410617271153561786146857205464542957608865690011397882252245861455571955243846756445083958114432952439263078190256240439359490910194744742270214660349241246023267020314485919440287513143334515844514333978068311665847685675847070734772006287953678290600052469788374284565721312024269026721067769833040482448219633129011235226785148235686970633569715433893972114357794676136588846139126551591529303597911921664830477651269935117778587053706502868672035153188748595471992416373258149766675320917519219385638851037710708981841094078192811282045319171328511877020851901319342990840608808512305021020051776163594217204254180986963362051013005813950786953337982105015949275026591411591471671394457221477403403707032934613181456625289122485686074582373442674819128687914875698414341249141599536659521252628884775707972966207482957821854575502457239103120401869736419604631597350198209496468833056254471538167057541586102126133747621605922844665824084707674131388376822642117211271713619808580789783656926595994137095708133251691426402794922845393701171251573126985026576678739228319083735793524064864856524945029698923104836195198982175770419654125398021868209721168407383824152623838108735218489508420856133181709064631613313591568983131854084881378868981011941744123077062201195849339744895433180967712052367845400477217726937711126566864607469198707369060850782882419226211379706288838294609166248186365340992136602582488264487947007178194514945496382755789066792126813754908852061225654103984072635672948018457221745073126211632016921716361230398055609091754040478435327086801276715031583084742068629761382132135200671252153157713894966468336533730647469494623296523937592012555164874559268763806762585390008772495041077422947916826512327970143625125669825338921562295296039067435880789852050102156134920352732085994510227120485356986990407265244103018951314104650368465126712173925174643563583010298910566657765924445032156695282001379916227915820319419939129081378241973054646150771996602706759095289231353277977880707911886763332809176343249201124008289183673563384286686243604358553410318908801420984439316897385047047869353962074442435244712833713510939795695450450196769462010493851080404810010019612897487849306401609208881170367349238409585575542652659376500680508103064880694583844198622879960343443559057077915472852049257578853579205244691758427012540621384486021708745635577105844393692004668587746773318618275420073203332585268528408126234129032475057382765075496472172085350460374486822970527298139145839171470044245796503459239606743837557553557646519636629273035956468075474626316035090752098684618283117400112252432025011649959975848503779548872572424320848245523304464686002969431969131782360502119519691940997111468267859616947955152096826810485031337916705455683883111023235380158976013823067020892424949828049217049337718471430659247467737496153178698257375435261504218352638390312291620731472267129962369871785819646995703395060261942207535995939436892486623689024501066600329075550483663984536649670309982349453009427805948007073755549021165556929598439657281410328603764548884520410407023237925219559163831793578154950793501587749941644224190492092683420706179538523816297115226448765008685876913578650733304806576636355616098162688653238354981630456695135080195158388049106390709043317098010169065511696233744648132016517518486493467330909193259449283734361654980906912990499143041467647966626001425225022778189424650164135097831615009617884049977265922027622737915445207110971572393881126545237919470612155208618052408279527774391767153928973833340724414300261054498551644825705263430289396952090241877953800067767797047717415949818857086176597840371646284844800805487492702404729360447743784749552265989976066125972843081286810237976888081995132510567119347010359098318206585374199962517702040347704430378539791214510444215743545306241169219152698331390541050357505551315073903715077664847602866169356392485641435332046881861842763682802955451633676944958765131349179541834434814613825531719766713663076374426423711930510858319339223661279408662966610935614097889067043163715181323795249600442122098938885462112534577684400527580819709940156713435502824721742586885262792595159374696100352073705194134376812841522773317537128481841398387421117619846153008181272151385066957929622586944147635673884576810497464152257219414574691995382017529151106926518763272335411888028046113365103270017911348174305184792825204888303061477458938330156649970268113993626918606812874300322874091204149331966401038416451140584257934676203842583403980005602285751798894993427185130150974831713545411550081736672617724293604416582267478558988116783729206800663107422526621057678654846801035102323729501080536707525876660761934589943589320006410640324412890089589422630334081779129627720129024147512617113300169289250627568148245920789455920731627789514209830819820934197403648114258982904774206372609917299607540024113720386373835065860799837377727544904635089693882601476987494426264014146017823533607973911344510316303117090712122594630138176676680297774771506403144873544213794499851910954543971801642922649730430308773256887208115279075723908552957682579212879160378711529382054931300696989309325112852005125586036848877770739274883083375079102431544071113205745478562592819683083499002108801442841992287712269889309867967522110830199420308035750077232900873869826714440949583769643183168288480573086372801346391824121802150448670503192742024907226479754988934060068280264945842940238958757848835357226910690765956007002474438702518445497126428323196499593769473568434942191430843187250502360741544948286014944183475760679764835390074801070477941930822599784972635908966426584023505273323351345037805930661538084199878716515892728419883794278248960328152007928828044674231580478362920766509064206749140888616870553093487421405587184190756382856900567113210904380632250998549532870848909866057755025252557481714182741555345115220261343003585972012863136574396423842523453852362021560575957125678811692129699952498325806846411151712694774466790182138111169591395355567770360937091305355857477700793405394296392807316353015218271208543336465569827968743791526384493727108525950692875876613884481183955058013775452151215267963795563901006918363050374048373253478732892578516109362162800219983670537220657598485660394854805017711880218973514105437227611476736274867331499619634779877999627038338605340294723567447123484758413795841466606106693351174555596816632211074594930400035392078473351031923902686221184020939813624459688320905196361613869887046967720541720207507841311415584202486139099452260608768437878075042852192064520873669161394649794858619473149148507707024140866465479760897250271673538443513951484214276232379195601916040199517805512164495835704683780677084203635394050216935791842160045542060873163598693276967799903088137107518245297290177994319980567904981181046129654306404587250909487173280914406419151410076375555504786229120714697747791036386914003719047256531424296427803473020952203787916999770623990611080685387847640167509802378144130694078195703180763044798710728758302742459603807741417824478257625751892406618550884329816468587879906427281238795216952157154716766163458521549950604834866135793859991390581234628302801690887688048246666465629743995295313106913807068182015860525352285214138537275965059607902624820790833751815802194907032601910336323757026671953522693743146945692764520170634232789654572439414569784342954690692023198447046648058807561270233267694711343871903801958505265421660061093843136346176658067780337822677659254250558739897732505813616406040590098607437024632314704593833307002635881482422862804031258142072194914645689274486989591984819125219128424143097323193372474772499960473023911720868909133667347352541201967969294563887915539096829520494416373471386503363168310318157526493556138095141491717037263224788294614275699110711357496237009380453331891122744469858034924217612447824762332462396766977478992588210711062021857470612127047061696633777887936392899118001685229756504420592295496483274011559843742296702598944772679807740904280209108978872432424381231083264681107068854904915718711286895556191543264465013632727065420397184510458939442647250919950377530997925692164912433708969810742552372566196237965011293084543792511330081040672420943506732059302034138426738460077370015478897739402776174750515946999084367858514846263177068055750016845504152475750980956963462997878394475079428603109313121138354980157470925120226318710961025257788352310676897142804682929281587033677249048615793052490290606563154144633833941404119937163106052991830245231343295777815279687572969542301245471991337571168141494311614808407837389919046282744605075396289544090810386356387313322207934186375017645122658662882758390213272307167016967219976878591088036230597341133429960215035969651412616773496627304837905781463353360761298375977557128197106257043048654245855596423263753477634651108369296639553731650433260727468916229135056133547596177007806066313813783717371368653809531455863449237269947111948936002391222200200545012219586762419235595582633697815161503122219885725011405523474957994152690715171190859784583309627678246756574120202913119065348313117877022803266311877911981908622741378975760463108982403748108057635911261624452954594128174640882957384122524230303084049428224041048632104538252561896647526608570017517745096492289839417712988868282031235690782094947096719958214508796970899887310280343274215623390954008113327130112767788139710748899515520350700787763858958768672178679137867766852109022769223537751541414542874215352283079721927660992364780957880394408574989503549625924036532777793191228615344899666875422001964404964152160438519109988485170421314086964606860108418093924974756597283790579700460532449710816194810821397330152266071257375841209422492785128960918465758913451424956651192307785088416259885282237234681632616645205078148062430375993223228227754625034403636090053632908966989916400537384560707210682193177310461679538891245077541616877100821129105635085052844216672525266186890224088139027180169463582696289572586585142049611973500040583710045095815584307605141890223528992091177633604351917286151158580190910192687969412331336496690183849801616621475075354463628669049828820471871733933193487213427861269557948676004981358512969090338098840113361089837572449113674737324100463634472118297898120418085991149117750880157103754750305917303058692778473051646616382050297543084461951886208448469342905486629576113003814341088784189837362118800654728574216463308376623106906130699038621605982453474008108366710344932631591591687253340805822069484558534363154069947276614916295581903631748460757676652455838521061205164340766593488977308051624336220790390431890264029057944792960347094460872754582296026702860245627113439217448903828598702873929326999356131092030358822027020210277742824257738085018473366079836729227408000274486898900521012170431082647499805902584191984918884367584248886926776395067394878316074618786518682569579247857472606160723901022747758112152740982574763553339891231916802088331150851952923110358626976820811288425559506727358876004314443740924528762230092895877676299380814756818139994103529326593199897621681456124179999363775018155045369281843690135637934618459488183580124310775802427197473475534034886566703718043882670468361467037922285227388682173145219448995287018514943046092798037758811525844512065079331805079150425866246291505769966728900702510431335676308434173684625276812114416008585550418793815170063241920112404332788288520971681920086065335298540739164642664493254486904737785096676984044304560784952104702655754055332644854375726192509887328857390896780762320262274315675415896824230244848274380434996303739397532541105720123629580143486471069273068721973298616024813920964726373396063608176333047821146194763671052045917325485452394684576955510404383437781184285640776243401675094388668235273244694167625750269634367315712373836332376718536728236179309834010073246754788708324824051998559695106671511083707729746299331786515349092945491130189808812177932655700980730639610767472027216187797429616762270317855076433437804285992501406358617393801199670846839029661518663516231534703621621651075689871670354792612061066133353472390696234259120844637080909720083564978018463504426096260502998761971939505801266143585265522119156010286315194821629552277842036070752630707431389858820906476469143904162613898356595995176514008630762090251627482867472301378005970332452014334511306128198389681596154496630433999996488685899525786555019110375613541632002251390510410981097385297366119871339974816417133101770132959403195787446091341869969587928784734704662428668684389192355616087208767285853448391405951752411448595259264231638767526156859394831298780634931562394091024874584750600304416121029742983955314338130670147393254017012670522681877819921374502279541760326718240403313310596880463708120541784118781581011330692752503323579130295239248018539110897715147257886966787165401811763641249398395132139803457998776405128663606548883212729320657475148065301088308441020747637831018078602258524304453545431334882846233884244941771844972785358663499540922451741070288652088719855698516573359437941865885355478943976757143693359184555724520613043621444079082506129385413339579999158982349139033473226248909627238562832010561283975985878871664104555245124996772673848148754851094555020423028157629163922735000437007199316154976425548151850967767066876228165943018788349736304422653593879423811755757776957242280203607599053190576769340766322980239429224203011315168156894686689355656357065188474643478492995744779942918962615548115813497346413692581802935152835803500415010820358527881526322522749821308760740610923307934637300703459011464057453400575980886371220118564287551129145604345686194620929420118363259996336134264142099034390903022672948445636059726935191469922378268255508463449891210502188015205892023269642409788236223865054001238322757410073622535140773831662860144790435020245615312922597346662848062196750647804513652862827595893684650026250254521893306394282964198715635017236478055753063270557655406565497572618741503194912700809460274910855815417431305136604782783976382251668640531982384585805001888196381698618465885037409772781373487908493493327489422779965299101875610525772540030889825007591245594326993772088682247341975012486787470480435299909542602258491431169921035800154923521585514391836545100361145618821688472301800900455513866680025686660019739879669279860555630853591774566398094475355538778092617052259490901316655726117533050924602127561406361059757709624949534999614243692195288116377853131227119885748981697122068043234311334515118768996438714229839524532344418861836384103597166203815242540789984586705658142170404806670409386747538388332804952417142867672562369897831106708348998969022838869945797752115971915043264410673537641969345214273019118562485517435712014421394471789585988866852015604799226852488848450740818631145838810838963116467564718766540255999593402449133321215443284716834241404416544808283115491626942434324431393347835746488012710218038393790339622034830232211183140954821771921212971270426023203942974756907249227462909036548374446037645116078903227084072399829984435412934028391839096750331636904099974232809285803425400742165185911189950319424568989544630437877056185661483569887353020439754736277199469090672172293882401267155700099240637779411437978896513595544782569938536038580921556974128607745792902412517798911681155121600987456347083609367325081607636775487481414825454193088444946827305143850669491531232815214240639477710129755365833637138517124566883167547388480669116617731039005277498461562086868054926587374441601914155311354589217828048747138032670851343577704093734211613099773061889608880586917007741823312800542190370172442394364034654814949070644598763999172709566062668042310668926404130007976628676944382212987275513036212883516016783541087943009017984855865594200402209523945439230877876539767002295891561100722536413024602598193484219671451972110559659247079799501416751227090186843341743006165354022512052684687835594403743266622136427421779024786238757114220590565300240629746665111359498575195444809887080968749977676511995571099426322243096304525691325220523849747203253513029381221764955582038177078684764000114358408324075913706696031049381331773725884743252798151726451398818911648436160381509317880645139101572092269628438249201841421852890399075723445829401393660825651892866916657399942521371930401693248943038306314821064724441410789846352297524256091442984570937846000294553851167148488379343738507879302934932977217868326477651906744130569519665001338347783067493293224458870008864372175556177080046234714918341100342663295978211191559389867233413249201715116923979716610182424613151510056954138048034534851092845587289379431367221875672077084746216630565015844637715467238784496020190094966831993181765846429108348438769104291062323792560182600853408164799591074494960158127269549742368301756525732295828974047758583842638069275175196311308969843713668144015306330552682696047079610781468237701684464324190425408319737535314057679877582057637522997553654027776419637390162944116414539520478250545400672931867907871212657890994303721112280425537521222354314828450206301939958572477329053075625363481297695809956161736875767598600651591337413498238992739768164822053976662978247810692008068605146160462143411630377151022199474320692787287431175637027843753646291727029514323160615363790610822263699263526230562724683230379278933171608995138846669606105661683898089677565122490591571525919180766501296054988848465853425349769942469817938796761531606761378955794739260976524056893686758131231174353869684933891525416586508479289764036837364841143411539119092198926537559584837832624866276100764951418673808453654884571284088592750057050276136463851386931964027523412407521136311968429675968632220887242534927612445509620787071970366266325596768974089730072529126476213642561707708012228863369030684412940118325940338751908663941242842057987573333229119545225740196290901669731925539804761002085965268200154904977280452623470093546957125526956314550323525555825746378146857803858643099761565623649065768388076767224619475547660239482198414120404126629636506755235017255224958403142474036892683676987468631082494344722322472564765824640804763132128798761269734958159282865279425943660146698930253755554317146154630696067717530938998869886782841342749380102675461816415051025847564261657993319938508941691599575008200760552395921696517789006615095329976034807149640155717281502154867469740026040014455154820059176461482604090699111630813666232783878053213468627799189742529238136944623516387269398070700598057415833959100322842875841069257306821733986131149279362642859432293889319742928502078676388503601525804098663071988044698127184754593736421830608994482996290845447832455336998454350035459271505989602117554000915173588138594139217119479070088196005959318461117294540839370518461901917538343293449987550167035445926675529406232239358857843828857911274765192424467885613145374411305622291621581185566020349252520775520062522933958585438908058532259110909166056218223793436498661146882857608237125039808360023970577132495509179667368529553657505280708223573718566095710682658956816861537862093360218417116169921095896048088434993279563588891373625034465994332807540592597241320615110153715858784478168041254951298325498282087912650484613866922919108032916030904756274529650724963993089654969352003148643181833107505473651759401866309920561533124532185008200771121136828210814168459014535545754601351138552805204938408421156183489658941930398025954182673374914724457603383573455006811761682398618353920623278880503816050579602698616834178115924337873363442131593390081110957584544385198883729639942542840102720737074350345618336335468763974898849098948396566546089293815244927710357908910656596742608838205888678043222962313865673646884545364628906046089867219012431593384870169132213733434479926660268515436236576729991880201921497521117929128289078015184819028623728717762164943035569197492984887225292380098614493298077155455507524697914738723025852764410403908790362353044843840554150771934107432144496854935086695768625676603407915189645317527647115386395760262682306102592937148097400225689162868967148275776271298908880620386636712243439392145483214594198991606534812127883989680641043974653229097944131125950240999841361648442981470082972428991454293031088850331546450966211746289307056377437901884226629010867294494621491525619087696918102083744781551951053368905703209209725714050239813973628996812112655604827782757988817062255892445299452742913418297727307238909596819103414005253390043841669964016197175471230549380228261071139662305524342338242328936626210715061424913716133270979180540676696813773721605341611198926436319834923421716354893158856120308863836376439595261614422436673103511861245183567430129667052204320820336996016537898599219210808694234087602955087410080688487910608277342228659085698617086723685472239871227460271530258094190817760696824256095472480731371441117979689242699236866283725802374131231215976690722476461984934257236481689742730750892565247633533582561587055174375045769200182506396562432080899224457140233215020067525898950783347550231388431453574602112131754820166697218321053878618941454961124095162441458977183344901634054300029763949989447235098593137927962121173902055059554637336126488248298386085429934109277421856659080905261652557778920422402051436605551607232303025967075805682911455388056602840554901315448636512802788083742226940922985374975751140713724452391193862539804332730366157522414131154691431237126423101162091408936926266188699037952510538564396628946176122810452385058317489656621032435945303713122122712741110762902961987067866296679442240585665541092878147423839340165192886046838431735867984822674569379406952213329417595245331803761035335862100636936873915549758439873414303679868544259615622556657390168477728363749988980559594892910260303488885641613728010544305934415055183064273621224670387406061338388305302745409405540539170712143483260415542391675682005504872042513843309123264038566505210284036582340332897457687287764858820586318488261365322217096027594562869235629171813904055925103335302218029308747623174936143898566820481904269301868892749957408564378025206521132194090105467120921912481881135339303471614472495678597751169941917084131282223985287990384561132660921332129755391411369357647310176182617918604638163294487641806716681069576526681185590769842664064821578184914654391489548934469947646793763341001380930534979850945053298207302019475824666106414520378332788085975610330750574931376532677700358868915331813388533320755091531366969326802337264423496646641992360383664058586828105306526341715124062599261617395434295269497412940396468364129749827683215861060619142481055638443267584446700112335946878564824531343228469277748408861168884091545127186168735728937288999418289833967727407112089703481837426687443565683749266351855245550629644790463449204226282796573004656153325742414864351092340860968709209519781703146859750098795721588666120802768870756254972043848334007831718714915321957759519684122245009401315686577999398665204419262890080266523148443209821681072162309842607602034627485859784472046323301212232487413630290895641787799988981220240841219023367520704330871115000333337940844180598265603401317914183924339660513261528669908147724903179019612408944251118414179228552060479078606708245977223308379109310635924562372708884609202591379910264338817782178260986886168143550663861928175261607271747103578491867854364810222713241911462148051540030213107815746188488402190943009483751193957164911704051197154831690253382659540428209963353827192166611832161946913180215913644854813112983097977173807339450430803239467282896460280915297925486973894658247486617661687718375642494973675406317537088539461605730638594315793922856690968490468693249020892498694391139538936603001457491670685535631201025724717931663305647820364905347933794530173042299268999605136770504483764796617573724502106319969405611240654698262299362339902728815868456020988564375878173662876460059824157815342598497731848587489448222163745901948148940383116909204462751486490598496866123910804476062957889125591988960923043361952643748995514714843215730201252799914991863292616487252231182791784981069773439954039641696491376147143987236997854470079999537946865630035088815936352936492346307999611135831604398208485989421169649013340338968390950151946603660292630547925049013058332464418464416919267661610107589606435802408492804776505339964494303598413302258520159921951742939330877678099987056332669585030298763388037974283736086090842556294226112911163068297918834766286126561859032230018245920690811198835675666867176210146478116818777801593965324684821905453873187753866864814948615411535121172226981706416592869632308416898427819575176176135904611025667786050406356269784916243308081734060195696335100305831207727007567567612041325871037014893019901597994976873981003038470400458259622765533182652516725931589012648186571653478349453712747387172683323732204794274133099889882959951267970362331217726390007009106914994594592745489914691858142959803933150114705939882696442623519779168661437670981290664823389927943350949965721875184470379068536394606555405921757905714629522355069810400249254631054738339671990327207757206652961572140160124513195434761990089689553007501466649083390557142196227658129532793725300117041301681006491672560851720307919126241535615462300444903988179526215686615707614418768291793101438015483853756452425314045300113009868828663941622024607202512536960638592085038712862536252676764070596108284197605309965429706726458354945163409302017408663595428436092207329701444535728905296154864289133334232205570086425777919324931911060928456651682922323315052422097029638915176260038702268540077259288821721824137503907311030883655691724953359364802547632836638195766087058697556281797852431324525428441328623794154373229573258643576961548502461559641944370967663806277382458195164285553192902533149001739535659075027015353528271658244684745069990627053762443448693884691355869382168774667754063922025891022287413163323222509150401346955747057440685809424300293493111150260429482636779215339961106348330516373782193140885799918607379091520346347848676015394269445418059539195988978558522196914385170513873684662298327399183632344190996759824370169149450115832869990953269981101792409179880865368451398327692783094440087349794669452210067713965433287150698615427966842233726682103475778046291163452885116992266901830872037887065938908071688860480370898832012786864800161447327236014166785358873471562930664158188213128198966483737449192853118870218021716977258737476686004289921488870726534161366369493389146445048547886125875302688791432261355252874281283327082192001596872534087950464084754143414777947100026974857602588937495850558744970311057444211144336920041673999056179012841136704256224571945170300674523366163920358965057111412987716323473730879878133511981916203483616262065190978285728417265074228426986535802515360171960311575818509824243564023252725815315354706073045038000816233213656165049800703796325834250240944107527275237740235078423528902436669388100289278353186195917301291647811166550504627838654169780223873510277937817696962914659421303950971771966139755273657323934837043697855145734123996331262067822687395681007859977529076113843837383372714258569280889468008161385234390481474240179712169932776748375781313700068268399412565630351616510425497890173233459973312690588763597709596156106234019499457227178332874471292767430717592048694140062822821860238330293314491523503634912379338695609843605857367300512835376095591620284247296071958534694371900770162407479291441879685659472580054334353750785880007830258242286775847302165787364381222895777309195169515221969927510992025196888066173066498110160975005156643525837630657841022884288669070940367422190001041057456806488558042644761558549341623256361792648734568610250754640635856427545831133468420230357638641097924318260646625507106350210333962993944683859884544624696950981505784707867604866340431302519457076972683069718951851375297397882229315378247184100666245573920963440840271176092908617048597250609371148850059470676164462566508861434125786186970758916151876655502291813211190787023668675647977958093102285208410018528047389492031102480947364362852653044004149383725015405289225689832494644308282029556657939074506368416086429331656647565699237547516189085264439094585389747852868157642481579835125475732095020764839862166621670244038249407641905364655810581345419038431239696752980156466951444439015633130349593124652936072631930671018560220560965163855255336115989865839678007295699605876039207824259960805272515140977922180274977988588909580415688576797304164720303878358745367127127864853533746756231073025148261443020367644720312679211578124020313237291529286127567272577660407045907791079221788884288746538554898312764043764899634522078015233427988310550955438082213252816295944560834803508317580778679667692005514969210114873004180424888849361847610200472561007849529491449410416552878084268062239458937458351881428328070302512269394195761276181723765800915503390258923689712217772966938487316706505566120157606795213093613615274014314292576303956566127982391260663989495458359857321488939892904930521443347706476800017222295243316196080051635748937371861261642134972252287200409413193901259728532655576048929471394928409136940534718230336181396032672424316229926459616940023793648423267553876085148491382088340982803112430115170105679167146585872525328466140372950383950044928585566626303551262924402448339930643196352560827454150041584806260742392689954384894275805842509897549670779753791823168888859268269537466287777582598217379021707369225562048029304221860768088314462521016232114727675004095903281155798015952462946707566354243067789479546104221093748248882123679015744276251926576227261665091952116154764568150250971413180443762994971759105692538373837982160217029702291895894623530787330481794882229396577870394897009500636280300789279952215225410390233707914255413830310612640970986513198221304655910519544332016386665805168629438342450600903665201495556165085530411224603341957606584083528230902062808615270034026326420717498479346095550775872403636800514632813770978351066111796250445553693983397172508081238640326585859936080566752732500273981776903726704896971620493801589900890293264901236291959319162492005690833522896202083547385306415956583519701755304923648435036353857219308986750885859921243352450000186256829571457453393636398366748194617713419858696862958702052243356205681867863022186751811853721871286085652062113465412363342285455889275327655484347799709860940685627286688328192707459063606135740160008691219208255906513546802355473664055676909113089672149905631793469088867866165490300566988064187080913830575709591485302075333130601461205624539084712019718569675934614827911538964326298955906242952317895321692150516669708211876819558262189748230776295331167216459706364925106275255033228811075339771393413310736919699185642126176413887652909148074952636133108529436963261839459071891485734191185786958299860285631250460685002622986899671291917913340345650269559888290630981313642992440206774563403525179769005774503773689882845165566636291185001388310937276732954323789568940642194870427768408948640011629521658690049726735930619433780281755200631032407841106735538242416763995598340852985607919092608244925804307089394881895302723626822651354810708223276996179520413233566055533176532072493064714314674408018739858622500284365616339050685192895079039858350729158435136619373578729107916438571969172311374165293759600385144957038000934171587549053030137945851409563307285879813824132917043162333722063105983964770612451040997346769062556991845501415654230352577986755104081468616706707632625656243642606676534803020133040342908007688320534636841850757007721232047253358167639449934269970267942654929550418087082732023571401989713871357746058779069335095251632282534324544428243977447872263289899657106903749873177894271756334181961942095123626019429950233412480718514394520195589810082577788859000220775715619947351065146350349690349267698757567435686187665394157369193532668875382343591818089640116515583981625964420721599650196859472626049599118767820836530257399490423490805104781474942677340005337811647789800647220502987870552526579482784697223404232084860171496822109088170765531855806500078279761092217996233791305258474711612426668169914473135202813422189424574037911726852037260392321196719705146970914835442855071326188222598570630688492564867691890837159028148196627001488307161470255581779841764567792506451140186590834806198164295567702653819525087263614506909776709858605352454465362487038135410099753333103393051405887888166241889679867644792949310905103138312290885208000044293150188763425441094865142210725675216692710466056080281352572340830557664551817843922951228173459048913229465492103660422198859649289857047771701523771782828816284998481930312436493312353759957394825053875939730218135110524628135439642623378945738751600938433893611444568180085556909985034574933213340113053549399790643683172856052903964145009087098443272409540869914870144775233320990634243912887244372672346531877289156338990084336036220953423544141108090971333400412260726923733551713118645576525248578133910118501145761639700277525325151073107506719893642780660217527592634329607376195906288194655078283480431322765681525461806456048867730987399661364913971740397618509135897157189355225355856923911425314611216123029222026118214023629835488321171693017316449376244948625054258784831359491626331589347782970784980650805973492632737787307702481838015662608567445665378050611462266849478286545401543554794661772075045157512185378489775223828551019029660540020801186546256071634141313346750119007692773556051191317039207115813721842450930151706327208280169669822332868414751401637981183416965162766131402775179136023888287625951708343437098625504510924604360693260927378930497199020632282341109895983132088101440245776675199614019368530476458916051161540186469244578424351381295460774514041041379039478802019340654034416306594158543697026127785814320774243310834283641355824822398148607075395701529941783559701377197814887502250494976103833875171597590195378200013043272437383534752204156844913773057181475978462558813699525063199251974256164233328333489794609920403601514872007461698109577398182072117365754739589881892264647995750027864689749884036413509966934185641042343345711059702399164167891332119388453192861772235099783199450164296010906124812666571361697329419960960027971877986059919694472290307097039028106632402739659185448417237992978270986667326261872054331696087610679379684336528844032961271994678665565173733450013746915016337642753502055566535036546910433606268235518374418364638030259856557954353303164704155026567690100903050673931215880155227798631097880663550200885400386391279174921213540129577935961859080003798364049157044330268174066378449894318901883810276855811967455556931276025752269611691378269548426518664065533407784742673721161205624010357217309138413369861323208034515325172633739110456065727581496887496453404891476249658869900435653169613544959433205240006788651281031738248757055396987300609073306130916117720725852735456465707887419061066841718271949102388648987122989060812778001492075252580790785807009502621732160272480295962495240942052001663383925148806711465580133267559891192917993914766914088460024345344804669185858371288821381625393552461996585702619869812718873093715397971705739809090652435470636333128094602519836677236686006648342996982070930880311602040938356055031333902762126264123785068120542609423588764382679346727278922632512108204809876435450731024739769772881613180511834741932784257982615017967722593543088697279647765185199778273361349639004745153678977795656346319299257806109546027753873464241590606156751244056835137167124705537081089707274957398779007021615954905864308935700002404789485968508251723656107606410815619097583364919018008651505067849218803606763013217591003021869801797354936732752703219890747050131849861630476696422222914947867602447006269180144910631739987115109543039577756932700850671280673437418837207627194306556042696632656071600035112626994555869633136980989772548575506956755921636561743498504295812997576225226305235434069063606322656634282459300150078967633336761751825365812945742246787825571707567635307317350412835228160428709459626239803566123911218342603191693094539655012998424499085996898819266848396216715652910833475858393784599885205954140777210503662257698874903622887143381554953231447894000398883793055130688438202394870875127403001511476919970148391545511499726918187800464210639558544441404411690337891920572280118790251493845474388937600348750788298473826500550826825130934582230228798659024426190290819376588591853921401651101591537036473749218794836619462941989316244512171677778876456220273538757150986838937420297376609549727634267487548897215697865187800674354875617650608248775864838193638149178008005529943540149874483424379963148300303571955638822910651050418831306644100754349107109386082610616703349401945509090935576845627224186065122294801999864316472365913627263527917784650479078321518296239615329422138640218596690774685793989885100568777291550032538910683267220990025315201930380673803103393463950115488770024569555043100299341640750240749767099195672611483445665895057628852798469773390624004298568690858868917432409891652255421281140165754501134956872207798830000253844373852434524934341749299647845070980276032485740805339671589268018754335248245480815544867196930342605700884678655857393700390543847183937691235124352564685837031219424064541575133643675350846452006806180303140105608725166349897945920001288091753664447286695022399722652504627695062807269370755766587474321849568646502734968713835727492869688597295733059652918644370602325387511245943986644639874099370985751887870391119394417999362900206371771403262427725675348342387672519746634460874444231631764012899400740117868356145396250088093188353764054858047127680538928951528911218471956867844856828038437891301259158901977629085621088724694955769536002975905422905825884918391858777499706441509654970529122507300369420637727629947025285493006018963618708330169055056664629709394231326480292357376262639146466057172926766831107244767573229802688203052266540326264029139527496933248709347823317029356442218731511760543322027340582070822608409994333964689783926709591700106601344784145854433582332516581155162596163625827118808405270912190881434346641140273876684090524607185421691498610780686086785618722899026223982842198557990812457779253169919390075501740533781255517545020106476702173917192372829816711343663680950584665147502729080664589993997639267597851276308844200896774614335795902583573203550026299970890692746638908095020934292663699615965470974334276987901103415372504535597829663292290553713389107762836119585102623762649184689333681076526867709408994789268636440924851362878401477794365391318272743337456754597105566073299413626604578812460481925369387724683281741231050868797253687958258703430006068753933586397084045876785328871530766054358561461556102922573237412753910689577986977269339763482868893333269599519717587302482726510643095070200339685482902701876150346353701230694103735963639805549054638637291069408137554033721561781077218810658531978333247357646219398157691243043169222957708210852292685204075104130393177140330830364237711045657475537567409434319066715185933135959248111097635597401749322900637850980551230599545306477052843919850066893384239324952404966521734089062709970049607223402840212726817610114308571510827328923760603725473678433618075975130044611658947985946453823923707262501501186503167772415229897473568143481509649591948192321331190586410927860421634787684086716669594211550414307360992325469978545760755890289880149036410535264223333369430666395028607726269461722381465831368197560752833333887489811120141188353877822679485127173060562273277986998799346437799304106659271195152941699852674159999528876794095905089686541882551285464471408224045589884889603443304112903302468062621393606144825792390567346534129528645502483158085225604970408777142290384621768184892121655105796329140429047820074410497326451232302550272601011006508959157841213100159448862517639238415716097282156832425063493028900759536372792144538321298445721756700857369887938533702319164400789358884693653030809558852939665057194644625395629506070572628810874099036604265115999021886933751180367769886548565271638233802424959582951583371565565023065110213471011924053856463815575225725238074524202980987341386158857725446552667003191883966197098277628829172919965726520483150470214601850895512405485761893610258294138603414574784238334140236096785733730519573158117999501634544152822600400588229142187360160768099081341278627315171132515975153038334043958060161607654204679133365867328643529412323576394118607405171084048162889552023772737264260416076435617496568270737642119922200600732534387616971143242530316815285528532102973333641523010866842665294267889681378911674190732005027250903910410488124310286936034533442891209826976587214138003637616852020677995555112772473895309509492763267685599137238058083127205914001771874272156830184336738331012395221525297890165805444144621549419043256668015500930975304190172172865106398909089149681953322267985662344959054917330487436895077574499018363598763869613428778780678458646131218271904477005210793563517249387782899549114953963285289303880098037423482209313726781820807570754430052170126068727107695686816540373534830568883600680850182618335919271157757181730058608711854506623362585491712403554860364850417686723845664822139540954242029859625046086183527574554927358277125219980878455229954214647507502800092259809649048107880769107655007827290634795694222346157794382127905626877036710137070221884288385547955907233672239309663400486258295158473632083397210965722377024619473884914432603133586371205738217699185414031174166422511447680022898221808120578679097798477341598564647741378456829869829880335910043069778301753354844869476963276535770888780537554881364312195969837388632319788018913430234887347595927562816872665144094563905031799155990828932562286317916126350558683606018682561981881745594046595390138863555747148781216816714102218769550063216429321801176162938680859862598495842386831478617577116834194521015516816366678393436426213731065203276647487578286113525192032275605120493441884295545343101144017783589069904263616871857396609674560446708161133464219958174795330331572895038899434126063042910736817671974811104321959049024262898974566857356993256424429353005893159044240452149155214469300055326543180832934876680604622560356245114794047173357774803172542653662118963725113401599602220272991316916152809387443747661909092023172828326381674327827927551297933339331268651066687421252171905967525011622480740693065330141853416966573062590103570938038240091380023034418326772967348459086337167876923661478949610050394399819975458761623610251782814643509152951797885235376337039428787650880990023845504184728996235759225600856486605607760282969052382089086593987682660308202769910178425027702096604803634547111232182306937854342080812660479075865235169954346145301861448009083276251102519039072450336254447969101100561563051753820067121627816625185268810946743746876252677093608893742819082979004240695469147210758707535350353366716261273518699850035939680984601679672454006779621298391881928422247588323660208153090311218678483054810101960324178462242535622589956044656260957121598270247341914633613645360178257430266835050876774764493456830287037843067977293780431860392791267698802751189872578125846882187193069047299094242939085098454914613292748719055815184695659692358325542121188748439214553743735089914777400147966352517339269896256818650380817499438117739809892859381170928234313560108817619399491998977555950263263487375191939804170142145506097833334859114481919796358287921313661721628149681395289303272505202273522022659047265476707919429247282597860679617963664764661401280674192766929178691137856838080115226843378059361261511674130118147564594983502339986814578256381344666806167951828521822916576785413225364913733804814699304961318679659908011861148318973275730215982694428516487581916213927235417782095330776818386103778685366644416583722501223208518488249111082976766888342538332717386847015593290232681849499813741340480364809508459151280861063371878950065787465104346755676786010368060000522756410576223551290745782807198412435765582738572881076233918604972375477089882578114055095701939841887192959950544569126418670320244341910702065333251986276287250214936913484478783118240266310620317132005817624460449218106926695355549209561468207282783256212467802690309021041594378997993527396020973847832603849106561770808213901292219995881303398704204336675931293908188658707256453612721346490543272141831157097689836490380556830428251171874657343177089662016093588426185248220234064488560252509016140685938357739214856262812341990059710628776916618014324561253677078952679933319407735562750428308446922653583003816391442004408924699642889075590195843843501608658963736187331459046653164072486185477104742706795965796047159722978878365459386145112048811345290424419124010913312323645443876338161700819835892223809531258185974790247489929166510211071646723036936913829934742798909810196442007985690700432760585721900669219980857328679094829717789883071556156133999148889919729650509586901586837235600679739448915128800148991765222483168739567759214257581454633601980143589659357995589563873625484125670867099779022937413486502131042449282047553975545001242831643841790748125513592160154554448033751821851227229982775505332250779949092291876698953948598204081992999148553305271348694560874586820841539689327027837833482136518230696359000281274202787807868105841454901764028499588231654255886859157060003811010007445903195975808517650373945773296408539440231068897473669353053423288520142294539665211918301809713696776252670273652774076675353216376669638686901893884336735701184094920620314808777501590302088814599348167563282145248130270759514745348284597562704373547797120051247052044468630952675693211049485885722948943040649328815802150642490444352950260156336342811834598639164277594515479549286253463390057766007648751512618163950636772331440115006075856774375577553996626375384469885052040021897807784529062664286329023891421400495953732205829274050673133482927670848843999016855130508644298844736620523222984963525759451639064075391863106981087889894912174880034321354167670190475035960082090031622312372563001734591508287024855758655982366289812442198112320885344522913110894977220877303301399376301085677381737827387047789092760839471959441858462999630875606582194323986200397581660179852166386592445988633714142845127875610488351436923921361670505280340396323489409820902521935421638586483119624270884067480288018492551356392088358131433511220165033517870525051489663246808006791013361710798630879881011240089708951854842700837117473316637713417941999872673436947024542107596718646577218441234409776159731559350956271783706915178007036271062605014985150892944960691821023949353408840520380698629740212940597657458032991704038392905715596537516349529836434877091381994222716280026434198218766423539328040387273994136716783125023466222139358437051938440105133419289758855014962547004139628690834195728222949299909599932077777037258313827238924946530519750852025107150574623845717236524521561381433965069635361538921167088996982808851778104021925503480732181116541406782529831357038363341606387005289994812941396520544345024234791379005701173909122854643357149452215420702030362533571480644065099168775664514622951886910215035942386620252715633970957327131602030911858371130870790277394431288814735376363859146735740885444106378266055873676797014068274796516734704738077209959149761088996215622718005982708210473467181167987852147714911112543667011707047979935887167333801685127798571047878341447474004458150567452137731058638458209391538138182072105794523153142992875508612671036975159510995837893974196673856728508193619891116802503042624296187075621028196452042547730973485833427079219914596727917214292694894026772993669296705791972071673395397951286325210186905320140781073195423604949006563125255659049800023993247299510939781948868468576413818408159607788081356047830816368496768642599348362884050706646373796111647196777662532501845463614177156267806541294573652066607729267799663203832045707559380935098455897673140629105323075846777934613684814518421487989223323269323395190156279708227469951940976658041578751992424015586315164438206120538618185824541008889084116066229766204765711639481912834473985873767984502240574831942731985314639513851960375123917577365326061807072882820530592947307066133125439825055104871115532060392151105398592949838687267293606419180765220060451757232700938014511637687938813278187666289544634624986187989516667808737519877176417069884389795767521854909169264077205978534493823432713876712253512883395281665720915398012622341499507808433559261858221942840824942742688542677334631427214738571857899249549345620196811997296321156892731873296028461221558282432822573822955809397270758361871547858253404844731117346998331839542458201996063128428458096901357299583453635057911062393279288412949941061976923955662591280576313667122983178823578737717861088438050441175917464802009222139023580595949071338250778405422149523115185108369622965732810341696530255798738451161003454769866790572293591862456695404894830785988231392320368771455297722139961071812125036712153632152021926471989417385586640120129516799473177520936867872114863435186014747042296976775157186756018504153892494600529771720526801685826549670541759307774862292294535695322454131367197897424862353736109841648661759823174852041182968431782752384655515918507043073272240372004935093914585600997989429526853182466003438169430018663457579632037426902214168182171715190582643250502750184727801052863426110145452510542915712418012834329118865108192349144252297819726678909161367821190383949220131432543306597430654965575580092818754066486943459202687865445141980745094801059626156232769927267301053778625693363866608849094859157188429136042343919075167832545894900062307386145822468532049045082988329215560443070015437236391678637780720669714809605469009828046390172167580738152433440001277048020389453900693638268361038320034961679273931831538359400125790441351356506605412251741328551588384223612960077037563767265056378554108640127309355737008658503216601479864234645412445840831794517489215112271176813311302319507554326068697785675054763774509227003733851551895811549082431038048233439410527537567668267066762183009045418545430120147949088390792485889491453668838596694215445639743175827159119719993467005612271978307476477725922839320067073813026952703999924245354250701621724548665666965002738834262287511324969802490015700513835445044168645452666529652014910042773768550766187601228539483955688196769319821881438607586064135764048824344402280397692096981104260301652811873541953533673657974358421396960970553748640093811017603688758530366175782389135652873766317386452937151786108646553568046051642784463891121536374241590012362278545957763811247310601267113905149696375595845166214661298695576350469757342771320186471600721921901082450475513478523397024375622700407334428822338643029864606792525432368114308984792913923967157201879820205469821300092502697582543655057062225606919113693551474112637953431416974017852312441568379376829098708755933329762224742530373314969570965583503532413775752870494155039525717971115020345386422116351847086376494053635462278997057398522266216567545406465980493574340994309667649302129974832408713629898757464508068584283059242981090828264005781676945645256676469218525122592389178325664534277027676591502180581720789695453950758921664981496287863608622573329979610582891265792571826961840728852150076247513822087261359964656557044015370097846328780248095937665714237547268947989663756521497222685010420987020444114888507755175524060551136798091748504562540902729850310125609935995437171068739773702705697658992026577917788037586416921569944404085723730061548516416855057582517699061128093983536903692870383132504397506400761703522990526346305462321848208313775216842511823505741635177652508842238126676586958416796836579203377864966792413927991695197686508133613249155826971168023142028875399794377336173761499299600689800211140976957196251978431534254925643628243315953806192065058525686507769323494811373733921655197493286210568385507146017560979040243640148334887459638688531608292251635822399856306398308272727388930162587296029764533856554137182358566889377459236819263713669370727424285879758872630072674585042278787146536594875081373462378759260239798866288306659040868646390088238625109043432287020808743494978837201094828966935441890725153294441154597428428588978970699774540671317915503844618654447415596101795895572097108140716548520312060978879373434717755283467025046960265526692688615252871121484492889592651345430980607261201250989761763650576010253887357651318331675195681413416610900949095392201311116469823834335749418465522241827462613909714075231003168933878401230243319340270091132410844691229723157551585146572538799347903260477643573437115003212621271929781286883898264854086746661027841699567073273060764453516549535113552512396483200604611669440628351943405437798767193902748296133464442427844587557417136069105790757350410332605368216332837250316296894436690768831861774934321566976121329256999794324984777163434800117557204538371024859903585988190105219808885957299858445383744940296159732468700315481251425346390598657476195866697298171432240612336276147470283635315975629587608044769689020721822297808395717439473379867171048313532740299669831754359222081946104968451985320264711719393517716766985702913696970917278956491690431734895605200475018663761636195553288407098346007468326377151275041123697402978291112929066821961655566733150904663712529086991105866919508537000118798535935509844009408635050854465094075788621193770428784919633208043199280126208852327254276069493583198035510966531553164250759142968039385879200945074871721586937206665007302494105252276803027847591585030880439594621864413325278361550531467761919664369441120765087906020595044740221184931887108438842610755368978243335276542823273074518071957107968023465250870514576678599107153279483747484649695400888534012611700353309295918597493584814404135747681108858915429703795558167827673045919157753959913883111930183293590713141641117511139988049922705825957612927278612890353562740762175021939187022355096551062195038380992095933020885534949539587748450342064217658712002903757476652138228481596870224224239926360934503730551237559186559420345966269064828118507564595596652041692411163017429808231761841418015373849279473024546164108384100445389471710574883685813660904223948868377159689491710171958840816671385932211904151524424768340358714578186695583490920418099959854900297722563319439774962961126794681215571897036413401531334743649777471423454795076825540088653657599543884666370234531835921223801490771547269734620559943293903565093542711714491866732064306149943313649860213967045339143630007625663163372730042326744229229534175200519859461392018399710391022841996272834116545953138640769197101487044272588923553763545586029551299639346785809129795955124172672326969536249460609022302679814486429518014427188294909439270305551649084752393594906458217024574653737862771888995136870793810684953548938981858084712796692048713237521588037721039625074447086960868284523451901511493582533032062033033247646416967304991909493498460326145309999303703092966081197062895107051152285793104553471893171853292881912603433792629183811940834737258558665006515639099288220603513168955015218719209817711557274292363038676360788939777033804064662858391535512647213249781564273021835633512623338566713918594321192857081805283696430262953350024933562979939262617080071394453697399567790403204913872510955722483522746562123181205819624819371682625376056437622881426814599006341919151027314134047204180338086520897233569555872431710539467265610803381492215091932766289075509443279064425383684751643151699173558477989204237492517470049884115143285932538430117982376331471544044035897712448933670555743906451863740097051827838144192711259815291019801981268853273200380734398967478616288525949757465115103681319951946535764210921847249332084340836057163937857537224882482574261132446984138896850076921424111081802029452545855000806726351395498412503434390300209034054268582484835310043752642297180910026087306846239391633550257645177496252990911969253380778721793107712853639710193725224819831986867010931090086729124070815812553858275432620850787198827435909005366230697992049059424772324206162125758323637071617175099434278762646782442820637990064156915841463776787785753243559302132030521193721409390680753931928596768783174514844180794341961203277981495969153582671930052590937284870872198022825081386286950596643141672369462625803429142370391977402421062995356621301319625256182009077085939490364444040441187532848694057616600758553885757361208490596840935304418491605625471086897418664735163578232129739364045063475614118425633022394537121260942076049322734036704104338945243012488663859733783477809211353195871518817916305577193392311051256896915980934269628126468779266915700673225179617068150944707062175482010461268979549721026521756087089523023225995343574208321249920856785549974104728776125831240002178635148436745487456830606747161397049058893729691590218869930429156484078314605766631657944574247766941603130903200237797423024576710268681034232787629772094255625714234003974926992028579900220098479188292523369633185802833045716101918471367975099970627563701558343781645007099958328025430897180363556498056991894852709297966367828946444511355734254638200281192282419915594606061261170576563653206987711004760510684347359979852835617776486855685044520041096673340325417269911184520876358620320615343573198814016510004386940138764922527759293610753213164269870968531507052695437242604179171093217274754581613710905571571057506827484470848868341612106653130569834476638877796045110486987169781386567772056918474695513020844381186867978802094568530308581092785499892536464750623715842039844542041856496536259092417516510414324173090823972519902869859175689138561534287942382636691784349515635834865860328293326145846249881348373041207839595548558062621967328247978390936407533924410833897521332550113432183410154104514191686540521304418786243310020296992969466597106855637127382725116934113184853170137751606628940044202012292336843150934371257301711463689018956249503781754712546113946080229766069590686248708733570780697481112259037679844693389396876767878667745197446350885453515316856143305144153798303724781761187294331760743023827253201936788889318669367469634249019658025324040088533618921787290023774118433570665361601925766036872252463470985668645972993405347818361004135603384250164665206273818701477346883054316722997503145642352060053062229170739307102748485870325520470111156436615670603521208302704403958458540611880275191980787622161909653902761864788656337619413461607198620142137302767405764455995421169797278708995675956985250080417732571416164598072459768037932343185934742262531649485265117572080374296087342342275491059146878635092976160558078701027047139396943570592803727219905363587529906623678922538138811431887525668520386177495866054452097807421263641222943518539820061404956610428336019883800418713334782999622968918693042102654973092960653409668812334040563380652399106046323465381895160414516573866785673434176263178840710169924200153609585871892236345736780495972642259988647735729854526289724851119365897809218615486924980309916723401555323633948313377545086219766415081540353911446679114420097388794414027049846012863003807168418986963042521917374656835587963645075620197734271527302365032694520785081667062832277657181909346613281692949385078476751936587917714341918160848357617558698839655181432160903086722953853733353364794553123933685601733042815857761750588214565102791637281215056345090663019355275962968327885995056361345610449279916073454353072468446768194853411967663206130089121399181115943579807831628683138058337018057507884002496083196281007019818755412852839475237682428439040239318333049991741982454731610234531075251920797643654352943625270066482591611440596539147334503788857487385980488595070937725986464846573204685098793780849268994457181865447761509866585206425588115549971845677815454044499228647250669382453091529198421690937348651448328906937555706850239127237985686997024153349609870118576322698536772482633212831074013451259931373540256543237788507527470596369614738599719530375358383827575456668007594557387637062908079366998947601900832585933051169692630415644342164224393142711459000991323104261963150800512844433166137106234173742370904369337434962005219112339179497843820199791958732920961399193145164025560354769168169891025418189940255009331312459669432159693656919953013699658545702969075585096462713612478777443629780234402513572181312898436994861516581171799299635246942091631035970477780753969768990463367854751598336171761792086645755079743758666344393862181803849008665028142798230227733583974211268905128909233593526476275144062127650823105704860202608905263202055738145616046854793125418270637890693015077938134193796580639564278922363793996223819771909406012476381874436062622012078885456146812700119799055688819281431848661652241182662689739701159647422495691310140002416765732501271319863692883171162354047207572088581021687262072522089318862257661876859984930933935061511984369972537145760593253000148854850410952836852275306488122875499900299387422043636992996350848573984099894520932642678934591019363746460941235036188413888309451182327431528499919680637706053295759351115392651486981919320437429107999310074781505000060852746339520456445048578426144725921764393014671994813545008403636421160787644972423787120855800024737080131340635465392894072289295243197964231086563253627942997436234928250945090466590465239995846504233926107122334461963278697113066442028438058375827312321070420282104269308660443703703006667064237875057802379535967267626273784059115880714227129981587878907354952747259757726266669818090110837288070591182654604510316994116605800230253666152939757466785455871347519778378196691744062770085172533915621648144353894446242273539784949938762654262306165548553929785696512086421904158667398881444452389999439738675221043212188315188004275219780416669143290187906457150987992232030562020742789681984688248830053988495987728013675941681316608330153239604983289282944391699157192155058166247702000693722561985347208962864950714048507845356337072629040898904484495468358646393871271448142674024967324841963309039834359988734240548548193365977434413686333966949241676085692579794459134672533608372941511243961070488099928600753536834868585394476953370851358839489420499855654446176117224383735616079553662809477234716849697757556782040568981287487121777107712387552320248278118685764325697636702651495959488868941629874780702573151030543365247395821420425015752265067497949289561678052072087498583471653572736868515200156784778132223168231221579418589732083478091209660976923568048289056800939108279442220865492242404562431536355095464273237008831316165894542704654397303068536177629287526346093086743738919964584342878618376030315458381466737284486819971461103057263292487065609501788705661257565286451813241735402468994615796525780505825077157993582630979421179418326899262617164904790857154290444575122019443538339537345311576030699975590900855878788606289475062948165754534375992757542770897651242615781076440769305816437759238470224239509908167027291401631030394199385697668912173644478337494612198638361848668009728315072789792064908918539024322006922694137784304272721154804766000058131762504293882608804227719733189531755851419531853810807483361976034189551177922932889094738615788906507083813221387584769353860060628681510982394921559923385395273089688782007500571834259898335643098594647254309259452431499535885477222541823522362803854167523115838216943468702192539491933302267158566741103208144362612090887582058625697647421938265704906608154759349050216319223963781148160620118036969927487710909478357881953103979981146990654280176347294790795124748687104049682463057575186062580452004528615155747624055815486246635960621902403184355496289107865992481184223300987661761355824266132124945112389683853953720729645503620973337257424756540311549543176019852249934311914359461117679830511187139798474991191701004501990233270450562432424682117749932205875456630331152632772124068673678481067588998200972309164876542806574726540567160433097545959136764116480423783769362192301262841272517436770121565871255972523869183346367812926592271571957703216656378470436097498126732996293365546190348934238327277124545382731878807642057072972573100395092845097486468952076887367378586363613914720179712855913052495892465826237597844789133970654140061588279073006380779421087799004284894371015247509076089931762964595327814228556231959612286813437783219327884070811761737905239434867388412624530087228816715733027960651455283459286702957312339065647155308553706053116307901397443690053987713049552978948478289595123136470607975135115188310301878546722137235072166672950348581244634475467397093002437268090153550489036479885888190650732173890303502218214023599814225319298348249822230177416355078687917257102109450022764228577524282191151972562291133138462947627609966350650139234359312601280971670466966009280481259220824281511353107815388893499712653968773037641874092134618711383730183568018892162307305241273898298914121766570283157349134469176993639788405861671549589450604649505205474067298991283000593310141141643199036016103690439919786702410601689943723808860348342345849961455764696938211968324217552812822987237464835773829636966396876731641012389809792735551813480024685556820369010636349554278232708027018209478795264104117332091379801316313261898737625291270527333676079063592508449407484048196275160221666925991886734501511657939745292936574052317590372159696925178220529825265357411933191359590804888830869960910489148943475899041641980046463914838325862292116283305004445778453390199914557494485064054670247834482399293737999921456710997333171997363344828513017211949619969070870838849714552604969257085376228866276609425175468424687827654661719004541702257332124896289064350556224821890158203243529485976732183272262372855270658004891579241559765019526897043367066030018275810818023902676651898222724469673302352364060207417371205043612411314398328410847831273988147955332870657038701605226685750015458401072355969321310179151272357443013556706068889436531107263891716296892692460509271963778723686757269232330367727231172507454696937313806426963181159678126819321562106290006132243481142217864616588962965003854098812284057864140103292418050901135439860562819366272650426612097349392705031706789754790036019376594655041686780903339369850852978884507801123437922659145780320713882889186008082533282881862724397929010339145863259583348381851774748669457397790188089610022445335806826307227411704843264945781022837000974581390032575470372884791142942222197013339138999280457608761843440959303663099319408875409552526264306182225765766031867708885476466993367899638637765778330178567716896276747996777850244489540104687753376716822501382001420862362291371838570393321638834865491347596746413340124439534059957457733063309216509034225359139278894272799713424667585806708136868591246969307417363211873671588491451900079488766594271990805634876300502857201290363202871388801253477605069065350006698373314076143397124694747882458158578355647002305539694768881281051091392883905810975426035626895922603877403106512669897114036710362052627395761491291986987910775990889024026406156427528140546815718887617845339779287574715466909346164088766778911289384018051173895254095519115474576895962525013276052973994584112640949026933054432346762038373296081225378216232534820493353016273230125751770678216443711028267890444420489625050794349158096104536034829558770301053644100855642654362535189358966465583575789206063478325937971098365966412025393274152309631913425811456112175059035246362408765003119199315664392697670111111916333960436151992651315044217395295979040462986794841852081615557773434674160071881468724212054090803878181994149176442052362831312207213992116828329023725908599403896711793332970301467307795544658727101879147543014573769016409869421451428649810978179777151854192171199983290533079649320913401746922567135915600424425499709719596690118222964564143134211113238986274654923451411057907733622100514028268670301125678095138741403767918118930522741287786140214258834533562046029094147552206162330748015832019833868087597554436389014692645515699525081358503575314020377365754687020792615115057106644186801444170289869669134867473296251326031985209972965098550675278299697319435903070789511055083217564106394289766467006274642767078616154635539633560610834626217392061369266666100088463104335946909797946936698699741535576679366250002729507787412233974636611299386415219475820725101395116024846351971050306523428978446814469808220339435009785944315496352262061922701091412186260815528952027774809102224192138668017381818165440865774145721633437106206555191149991248037253545220592132348205536796384441881827756627119734639733861746902166186293866174387051363638215696954484397579657805243123237657105569297792094314664898793655762123337662293562993742096496023784108929987063302108211364504355985574535171542699815149302489770401186203430724527188207093692430934722549214964259098957393543054161023346755427916175876172658200080283058295722021435368783239544040319575655372569287559578087238389416436929303504910344120113808358029015940328363207036075311453426543852355322276202319672909856946314668025912766193375629721297506485895153110911897543898876128725001329683117593685964211014021101063186949046241407370616956952625373882861678609677115555652619589163772327184664770287739180059394369529972132145454723385518874665054812505348863175566560529051454308789741370300602535741537517047372220953984720116208750839454249098937971520059829145694705242277567071850297855342350779522027550819675980389370408169454997603787235404595676927240115846959066970951275633697272013891852513416499999705872999967934191420036915275501020211107966121430311023133611802792779312577750833336750899642033441029533812175663543464287424360368024013523096400359893481630941689143287019074040389072331781891421609515322559838967862960465267979919272860628753498715428342406823400508418709061248943557526913310872055273135057023828991664655184536821874258962415956328916084228292282620817166441890487985232082080536338729035274669565978839698571322763548412781859056061109605331087304839085883425200187423947833377544113760870695831040492880793364290408323419331284693367669301880143287753994383706341843232504733531391521388069713943435323458863262083050411691947050043739082706735233961739331985456942706109753941921060403824111265177660157244459252718671005075081743254935998091584672997617375418451981648276666601001741799514147066692356621249042720967654200686821724292710639377510405864257257768707139180618127459039818170691651346450837743869664495699844916197099587072084106774530030051993601133068560049260085868518259806299142011398715129886334702037524920634528542368763552094049079342549621184233635683625427101524578720297971209497435140975547351437986483485639436944802370452282225702326378027672788374411498926726289010622785753937171996853150119643489008087523800746015029083285642996072985737256049179486989814136818640553519773048704825833541785325185744827862585013119307694824163331371571645705076313762207602428096927719389655738115200225539716378906090614835417246449442229886681305534693222285297612372977030583777323585553232139343749931817457866228303602826624330407007354102506198965828134700679748444923796498642381996777346518136098832333550076190584975604044580177142962581579822488561978103317548210382463995130112581445359300557886959101015750804077331093069756965107812728817094948581895309279069782830983390385535528980878157003833164656509020636030088041412882388198045411914675740161373838593198699353152465976228237306728271257080226466757327652298737941261829568517087630043592977459086654817314373169231894982905448334271709962621817239448801325032598806779030771455617110731695909389473680537611972776908426669847118058170720132461914382708025861544063718482986329982502033716751820711366432034822362604035806526755856399216255248105325691490190961681621219472661605801568100983269379167730790157672888350758906311437052914838597904529178712331533577749090577905897599264603665026316120706854462915709806430675696442169494369872221539773681632872215656843879079059144086817370899101968689115930536585851694929931725812622659907288695474010736655938940517719075166690869752082834357768311735090282955778234597619551369114735288309748199551340304819410742708521920923090043398725193485422311830187573119649942594363385367928726205665468696709255227077187538379617173100962595443443301628580412333729983583850417239399831525883277684032191242938065362139668140786896323257312707901531125914439530859613456115913136504512584825089345142776730585882600110860352226757372112784356108639546477972213799414696072973257212947619732249560372492203078792666751412835460836843942904683306795540136258585978750804520725204283719403351843950327669432372640184519913014790107775969721507763700389504982194081293408994162213640238744139021488818796164314036749459588000187949241243805843803660052637463884784620598175305586752093095200785025569325144592706677751524057619180581023861091014351830048399411400550297307938283832936379687477931102222025148703861058825500165215629643509626949237054335112959590900857225247017170294132482197681530128983329178322910789349474588544706259494704450458516600296912503960159133026545426455548965762352602303113009828119507456767222624865415148660218932480760745800135116886119705528600820786986504903559762760039706813347384569680046743558298128112486402141895283572783702068200665519628116332876572388535635491146032477185864247782795395464518233588196024959691167169242136823767687502642286540337758816762881717855818715905270006414734357746983361926291069212412289038890586191257562797472570043318745644571676152774599018771468236022169633986879941404330744857313039642848535119421585683730395848032902473838289445998473319051937876426003943098273961720774125784392125523357764409382535386835034882661579844439007995535546753565982383726209959128095001568484774665483290302096276728870450006312605264048927007208403192755288703681058217368951355877783721598850498574990054904721824351309438735266544024797834819388047380217644407435214382992752859614434271803029024812914599254012925629225622278490529681686893305950737114423039337190952521504165347261701979230202462563577494149214184625007707352311662909037644065754892312308891453758822526733618088282440372406251632383012487259352061317851737590006050937545648611445817197716319648693665447805545782247414694999750319752995312573189154738546566159786084064313966332803318611859429665756781552756403645307324422587013786275862435332601647717745504859213546435786560457126247734667741716729134499306313318186969582602276782633546607403435927515935840548862886490126619061095059457221524478977746610708392548258274648375175228921320020530673824206911280073569827535547300129436900579465863504712518753563540159992809793357834615038604332211891831491331347611084734568333076013709347436337614886070406586997326038438963821008101407240104487207200522013653716086466288974326514412002851018089280331049980677131410082294075479965407656124259552141948363608775789259399340460361657104647385906140040871492749783296756042268793716862638083474071155042109709135509888884657860376077245000797392465939761531197368257427882382516323314511330225515106547678712484758666519960523043881612548864484534038884522830949176310411964743258227722266319437797757667381466040479756200220638312669353948117782077803990031853741275926288236413776240448017220614136488295198415774445858997988631504244742846857437978251253998071787511498065285553337581629936412314624951442835104168802013205091090264479201112997708379649732031247301973099410585381510892484553725949626933662924129897130383638155030320868532460651243565524602232082731305256293768324729758364066503079925463977060931530355722643192812447715335183080430021171818026622971640771184972666441161723426967808391411489336918572942693513317998857336268559778447605066660666796677581658605788902185930564765221115242081205218044970579674377305201370717795970517831626110784790606027184992041128019030445831684977950005506760606796664828796629899140073355689589421737880844307107096504629281445792551566876277388408833176904224998033762910353400719855743142106392656649243198086483508508735808780994627797549874865770172820454440263290715641137008476716207805348346450728795325899747753322555522552527971162062012924110828687183207635769230000299817213176363880202127065504262602868561236750720800165558492826314333291254836866816113025389534236602160402574366579070535279244264471490544057171485203415216268649505148878761768236450116302610180294042991440240858865509214843706035495202858393909253045376489625042657206110196206532162386404511133000405729542126765022143087540400934453632888995156511374887341335597006549008369103972131348831949407322642609644774054315140396461975657071669158439496485769004817358829653951105356576983678112850837725586162775579372904522959124839852047253265289329850832821435366496037016056067721575463831274879084847795064183277254523405151091661294286444977904421447194773565990286839956663704774173969381323889898086079127168016769213778418705519925097941496740227955905402421537143737094735432728653533524635866525117714629054336472354597713818596001829917482098146262421944965925514400054559950268311021128706829117639357308635648161018071484628415883134880834489312366477662754005271408801177936583037303132589783300634044794518875253129360580443104769915192648048704913566049836403330214897490510650284001640746469537383726808911338161223895340972966419382003111307247728692601956554459040152335240003524438102914014109242213242247172856632446128875732138210435106968888640684702623737565733923590968779282942443628543529386139599655846235149660911794422647841862253851088574263124034521192484451890021721577705411351944624203491140867668550413336051571760366841709017469662055596694524690444599952114760941282833795007740722595691841723973662364621474499937814365474303267271390843935213037468696407060523147231804614043779137054624538315733008021598310804625966456586111538241407029167173831046796145582725988226377865218481502965765415850292804954972803366345303419999137950136886770025443448700677083989088344128734417232567065443069408043929327880498403095799497397911135475235941317880142306391756416794454622902940529706025809374958491548406406717059684181315548812905691248857891830139988933597859425495255665469149998655942340593766445984971928566868209847484445978417790008073050055209903789693453700105248056455478389380434126336014141134952956620809395185272398912298822549595597644836140230309963197958622618825301771776828524466729908227560707209394880457253793470639464713328641687324290074156973936434819966555314505751818241970822772368891990125991525084460954763937095400128771001891673815985576451516958777608141962829110582416018059056766960085071345568472088305630921774336590116308815446856641018704032676643139874924982866321286330691058784885893786640069601024555976935995002397200485731300823044314805477357815404980620970936529243630367741629275241857224862492048059386992724051661105925682948126293603308553363102916016069293361629520181736704655807196338158642376133059637914960834691197862190964947830684051042297544862922198027164090827605974861204608356233484833961669309187963141607283273297579478402093093433748233335461115071128189454756344558809591114096789607652761134097837578637282462171091809366149792643971286053260752304821224286410283365347231421672913823638730556101269263197203436171636584943966273980761179260025117633790418721071038725676850614364190833747370816679062151130030666339985493556632846037149460307496495260753551133989592673869294650872193307342636729570713417733835661041214300994672430986786808725701243821730298420859051641464963520326901612139625208523738558414389238794547973201828231931111630458081901102129796976181118237815984324425498866516901995649783591781882865387114815111069900903339711568680867816272237915402263374164888236665305017473893946429158451719555039254887875670167068564325603097947238618050994177921545765050053231643564570465683962303502701615746036958767132311360504979985663072745355773354692513924008630742726979284182185500610278939477230158398235192284878754678300890001881895616224170205006204907446812074253157523804980010122398075567783989387738667101271190192674411445355840432319939633470378696723940812334052720759348648813261675618489706177251233360908909562371415463807797494502109014093830134242238099435530568454589966096882005029647451167313145789078575334212504874002868360919755874600770169123034660840529962485017345121866062890353891830838463021548414448387428369070123071402112390218008621427914842203720592774312819996877499127968886201704752649753501800902102630253080828908038491620345812923594278259359736686891475979757844555383063830469087900066431846439436662717345198154226524781090726752812241466734249658554187810278670063715372698606454845849413917816695397542716441962225539211442676495944648405394642153553033349043322752476910905976861331857141103009498862726834034327290031936118382908437507725971232908541506226918426282585389647704103189397796201670305241375447556595258108424688719990445789788833938541620055746866401908954880868962915055292708952047349306001939906888397486828146577962347327532942979217091767469389272176642884635534381879594288072048749609092661351471416183399954094139252821778908262600924456859697605778768439099570906381789510230038725691473020865514379569257612767209520684916670762637603516351542552471476981119051952749798235452632593667076982086667576096933945919919960227613287005705805883608521327990496309557246434514074029485446352301789056550395028879293944556257494180025959754220706001596694118699627439313635091295399604976231283715975233219311862433841456993936094207299438167429914035794545466787365354926531757920643574312883262885786970592519147200922124290279993413673691596445098173172387062945001422101947647452803486546530400906379020946144263832545775933874354657362851100732497761582447419334240095852657099727769938295072258774235514237468251378305215298421146319692488811490532472398505554864236976390693934427559934950982754478690581435351626373873772010322443613968886329263074436492822043162216517088035199356609624405116625624171474921818566325290321911550051817804524647686433816223334729968476527866037872423597217228048726941523311636336250524812829450421079411634752446771789409984599519754526516053719421741678819155723104608468888316105040503309780982389327367178391962129013052343208185850125133827369417609109369677338010465981217597903708964723712800253794974622693284098424933550542706665744182850246417110535481457173712904441651793858334378722219811709111288461379885994325956526492073883170254910144284693449551890762279183954884855843403849612485013789615102136516238310656640607644347447840722502711673892352012221532666381774783788830341490881893006019855470187291052803382062042218618787794300837014033955513821862482293635262941990118615567679679852067443073756218252375396713539460149545083162249098784178500991635016959202025699561723802337749187988578100710082507322069533851808741727638838223596114808931638404626612582090600268400850874257452402519183832878506300446806710404451542997343336837477925755073173431363778988828174579468478036012971128558346892570432453178489961741751253822252105484084281360463122573903186039248697410641140608130885303385710507106056038412062000550203031093178685460539345130081587016337175073277792248358879509470556525031182294465344485410517223961341774541258488412719058957562467580064331035647492848299960179590089264411487235448141274593666633507862150241388856337289138656532037772802185598968065265414531397889645920956011308839758014649003525637820022185600557659199329803476425955730260088578571402230552873721308650151352431953731014327707788823573555891052777841599679246884610445906087721786027067315156036644624088799292447633502591609641562758823510718795343501229135428419627597807085552593980660044845673549861443784661802359755580414121077103236784593327626650882913324028765211106660413710664640147653407159819946220458881876353786819215437531474359558603848881806851900263616979503792068048487975295357529346053894278894577347173031068704997496476953353304452705654728320169948922074726135219655709069744135282717189087572361973457762137922577165189906681138431514242319213896436414573021095336370768102251570272329403119052183695236205775519641367337268631224853049542637471372946588809864887747505623173833620984263152437472205074214583147485487916548077326798731599683828280352835977029038535067579383684821535508574603495852679510603329346024584543124764642954586049822224956204201106786120385016624332460319040338576369276288682559992825215357045158067923657766529025534391843012202239851055196193382306984816674704768458520901359869054309377707004476069729724402470332341305144236090544166865002873175296249951764028244803952140741193703242077101459439949247346963266147144143037458217100875958362609842259737752154951980750928943667272107111684895409742372039139710218818179016783036255172009124620567793155071722385098198196036395626973805100467285661855838669640567440885961936046170644629632079832666989339153526409112606625938479620833330046287945875986836621184472371814790853520777020900467244682522260181030593528296487736323348195902605050827595055893046619510311835626110051989344707817794724082227026869152770353398002866562112144407728052666690501146985456341987062589018477691571609905639306764723102165849574037787363132571951407440989091562209197813632873379093193922172966062682335136822079931103551902121453389587707634202407758196551618404957188511250514320901873668140920819038783662945428088906685727911857512775935704151332535881970737643615914020737419527402044279182874314843462101973461731386538683095723274744232606607806248097705736297447707002297864808331611702748279378758294078257285714722787142143494571999815262915775759048386266124244352651978821678637436350229495718822605503839607677547441749138026736413245334239967038701180800122954555506999494681374965222836203443228851583326573506906305843226352292021049378691517958668340358735223569989984848660355021683415297955936873099846908110352140888215123020109369155348074370105982966750568100841165166949091749393180293680662228844306379185576098831989546190621107237505954939789043584515980008961005778036964744907269352514100047247800873122602309216789350392835926410776034970900877229587032001061673316140543423667274166111327509533589175269921694371379755045238931005794987000996632438178986022265329812572375795535323002333595359965979391614050702843266611001670184176619805388552093626830024237895541978586410519198516516117346500927872256683467003349806013330284049852831534400501841975911312232244812910140195076341308516608739773842359155497542776096084658126697577060317088916982999173067309957882162478050930132359253706734043108730788832483968183381516481910677569232799957841633217289481808597549211686748620496135436015739908992868055295116428866899570978154109148443589310929202018258630719200219964351916275702707363685169158807981309700897846318880412532484363020415710947119293271616243179150774152973075984415643668752070194628325720444350110595528271460339140579237905440859438771910163131100560637364533557506705463924894797265961588098578922153615090967808048634399602089473364997220819768693303401369364340663751129355318894577277649056728294984822384323685728464304644504903862400038027459395061734930457257321839767937445542074530299720606005905153687011683244288804727891853784154496560384087992279585325117736110759845617609481422814251143751051324499619580605228381929405094876138434624664050189890242227913230343584709660112400561747069725213918804578710241601382343714273160538667643465509389473322361975622132614403912340173723091744909256204039824368990207101167872679038893953740056536078888498332410954267765283463674790451328501016059091177093106974775543522245110123913473632463118130079571636238636704100208260216459386040349000163880684687308057995010967659747828295222158958069752430280552127856808645567208789264465079841805953937291892356916130582330063984353728063794867702104935382380221020673720025413868536399559695949721262960762267324494826791319319785277662791589782944132955877890722914203459787492688250644609611790935832120970945694415473972822796568095717436607388378027170271017839581261723917959067029179226647690122262217987194506067701855832661442248473568880806370023192825251598968454502089243885683236937080339959774883847251533820308269983660852007188357742087598704762217512085592854285463024739159844089593410137571638151197544479811618938491264995876455986645655450916781223203627096004330524209651637708747505686490336929055411020306998905045980509145534683612474799046666133908038324157874183892586713966570360552506142797314978847791174785842234014056454454495290202232213115870817222328516280974413033197399396395466331447734434779082955481421565329218681424241523219011404946766128630949404204209634656115329816271200479325702417726135161276970217368450320868292117135566970281757149889363142477837978549826804628660586182763583789217383082035421572691951660389699449069955497743010166948070682056469705950815745004695691954406149732782202225611811791266398691887669073121275410788684282529922476653931131507331887761068292275945164477858453078316295911613810563203464422635295278772934353829734260353282915997156344482691071033854097019261538693367721531393559068377864720693502143478503729292636513473174480914559842786445527664221002710899838776810049090324264344530069308678928179737851060890959135860967982690566360537534691847425234640181429054566269086994745457163439463409904709645463180331150331430176659149708850312594055113395842513571830434320519947091195509206296649038865746968670389162383920122377076873255998809962218777073145547496305435221145147112538880539459104024486667822248050872704157102264361550785861692340748592142472757837036846419297468471264723237608252329952177754725224418436402818411454560608371894034166152910269898334385795564138791196226566533304363308933725598814031753328326188803287135839623704708573218398784262431582539287642910068905794649919277799177015632766680930832288470468133464781615333429095228566585109960410293836433201611394092995597488117270341006954037332096338298280069735596296408140362698072876740125371751463761448278987574141596426015966987287496284755689116765177539900502813730696884783201136854695792913619984372882933396128140894360487530835959706725357274722443225126102252272464603913969771336240137800532677896342389720416750024134827451526167015246767462170132050761799922358749184215007310312663268678715878588495176038496657008843591277848339946088264793614103843767229137774188262026859119479083548680967667653716047646827356728289474562677125516391327664054908795076843638542187885094846848777346863028898147540005684686857811722811456584468186121540526963592976872101018739882902906592763936823541781549843564367603929083723253722462104991091877319046328281708645766997776361244522168567765633117932870497611593991865237916279789792599063810836717962263387914817673361151291509733256858167304249906989550225041869481022935669883458394016150995163299077775454647560996640945403712131373144391740841564799037954975809252823891912569621894096024887317093960764248999431190155795046767891770742252024565258136052260923164039383632332565347075198691283059645216725570219448628882698040410511964291526728589299575605686338327141369130845910169221121724711301892844566835714627560758488136999865319550227379900807672894615601555316202279814530768001361186652195560672689292742013005882185924644500021474872346707882663564123356453886298225539877983018496887860563200134868965166313117374563039671746591049206442562941203735731643647514346494905574786226034845044187407019783797096652869171438489330718294180204828628894622443610619872171257080253972366242040952091839220827930014782703458771588338450031146291194493709280479123090276570459155224447410387883728825882401303112449895530750253424476649307769065089342630703068880892887604400567850473920636446044188446458999971550682826230289992681455422082848483978431977581843342887141953838929838252999683057415447307752976816226136848935791273251372495944284188655124742109429659546934348915099703882582591868337322019740760802044278394035771018501893152585586628997870166546641097509420569733735894639810478130428111895266769782721188421489227816810471101477440037694945882301236981507144071410406531592473969625542050952157514811377948779796958946385622180047565680596172616754679540449570458504455798688078625813648700475922597892251908646811394081910280644930336741371346793605465958803683478024720670530216917602106773721028661297050988386705963601715296832387517214552619440312754313729993422004909778366368410273798377910801582584602961999971653597670176182369462816719958267689323408442357413700021369170615064014969578073744945475022816874786731573279268107523383332254196543280526648691331024622651141627334828503622721719419928293281900782144330481369337208913483774699625567277594403740719573587452847655213304410086350083345419964725367702654247968399803842714852724272965156924373472611927174566033643276384914487617414593567458244405330237504826318625807673227667900351959224072647906756848917953588629183972666668303677940058703052117887395368356384436079096020299279162902745770978343308030596495068170498615136152394345070296553700351555481819169933431205847804911185338631575804734966092818797040575802727922678311130361303522404326841070236035103715603833660348921666982290145447304854365446291178454533035850426973080936417492995227152566657490679868169107122224911348836696869265558187576023404137458952738236542628027327033984038740199039651983690980827772881259618964753296786861687689549749299057974562066397691239524462620747407837006268982568021109023894289515716168490038716989256549974407583030460847430784238222059006224313912802120275803781958573228156693634000242480068754600850475078466701036939160846440508052947569678949017811740528774637260035164728385762148929724871219996766159274621963450751354905230544682577208096287432460379911891749121592527922026838640731356017359126896036729994526694987101034369795737846260225179619485959486332732118265332767902136335185022374880608824178762835989334096174784768218673317738254831646141519569713501065541059307497443646261790586362109060390138573267705674967792279356169266027106684079740830365689376839298906512671937496646939683937366486922976953196443026394443414071309118520896907527282926331214269629514947676365512906981838905779634799631587867655090211458077377491352919817513473497541292724740772092357485268954895372350516055377918860234336190229468458915506627958571854773748109733652181808917122703895318651500407367605683816867269061556351579441809071308935131378418295124861146929637270811486227744729195310095642024794561927021753492581491818934576770202647818973203746460031519397622277743656299260956145322405513789196519219305305481722576446640282192173259501058840506684721592554393865373070429582199940443825463647600812215933096036093046682263939873639692401933699814378603741908665818667225004208679684324776834116693925199628219809116650465946204780685966469284896161340769339205140098852440166887390975839178847060045197415990831654245707400070271313166233673396422849049141523375663849598725134249329354243864508984107473333880493781145353704130612936016211362226423985048865422341145906358015149093732325523483706369213093742722570828261057146801319640751394801276641658538899676060319492147372876881846243396231454928103446071264183543143399562944970245397500555733598863935757339966768403261716082128207762475834328042391433383155764320969775503923640404324510099339992211234361756359027192575172261161476932451987992010403441060383411396008347733902471008728405351512166705099343567496727698492090306466142404182191609449295401883343594072325629208066623252228565913171237999362705540062051835983242403881878528239822206325842878463136929958128900145211866145986025711257329882065242419382105471348265257771200344011812237417322396053611355602089036387992622698744872485952919054862198917486164483467554226012712451902348090645206514247422448996118756501649039282301235992429577442661193847837945704391876871034379977661717786744459412951324848718320343700274155748424474672582241373519138280671525119534284079447787508435511816046834370762318122141555149953526216549000066027474072629030315799349553080846963409945396459472538208468106113072063139920062461477208534346996238872908179473002449062062537404358040341218248571753810778026283827153501886685103463947402733021306611643076444148598490037998391698851469081069524414183337331148117221521068121935193219888017807467973444131282948545655011203546424877724917140699142300283589389902178942078804292426512703987793801234433405960499802776373997328362785408985944718529554633557235839595159580871811273973768842379853698175286527080008123098724408731281293519807517584132633777610900536051475792240845378543167590125722850849569248862026058524060029618762821355230134949050412211739666692280535448056215826295756490717804267985680583996106560530794547907101074422851021602953327356665169377042659695247543304337085364639422729992769772663802132420526826585891226000425542569851009095121429981985427318183836216901681666843718345546558860598993708190124107498410857282265353390420955113176798793976653597597649780195235216378960276924822617220250425086848497000682964235660814303402281867354417769334257564831430005534141320299907979018757056051889457166459582074425499024868543184392993660654592879713976570439955388890969627599785665771111331285698897201831596179868309168935023984312124642173654430786848737532383627612501951432966852823511315363727133991942988901125499327092312272004059160504677269772024299622389473645342633908730867103913886390840599014472792786330725110945242550368171714383133845900487610578045164003409291575941974548152628047616345168641474362267887974509356702836497672212571428446604464094450811864324275815601753041098134802676092473351642882993742156329238553995335310269812848259075935456740827066353961194677403773477893612548786997794643549949397806565475713718969838133051041962436076443575509348110019693440349397472436202243061025477585524213702644071978780388974674597539752158393823688497604031559058692541766688369750968785046978194560933451163051419738722972629808331264719550743470037312410954019739828055060439600820515922374550062881719568503859715674432691629886844340623815935394379220056287726238353058819101313159236692782506852669208201799961771152865398878957289459680850185115990170422829681074759788380124371814137127191998142028164929276366445391889592526614536740009489228573191484081009754482637956002722788365483908434400600943927286677432567994043251311220492289094732362226693420857371425699903145704585572348203123820036605103527764610268398914529216836672019989073574749048985851135572306444815115741004402567360397775647793766135684163514969026718125910994619321459463153089358730587744347889819190257369775792574869766075122185406114211098441547409951694903734449870915111250304604066263910314051246691674915192815397939421830690065356980249894991175994453159595170500772220056469889510881958577250137928178068066135164041813324454097864431737646720710113583128901867274474733961625522981905963044504494077240402310331997400825151994067271564126934868391620671636870464026858982819854009041064536834655457164090948640993752435161708182104690117569853540886139356887584728769299161807803950913558422571537779490346635924525942775272499426353326873832449712749202450709497221451995881738677010558975705173744329234512481671906152568259465423829534223732356002778418601675326663727072457080335519137872174343867348195581604837960878106324442024139527038358538614822428317490613409225537550039317059686848349877233650482984243101698830402958498219015817762823955996748226969732209158561326430532445990304693532397228614073526514209053382184232765416097158431457642987416265075048354498793653280645368235021371061759523681632963708774030546635502428070017439222422091888222095930876676642917025856450482616494037021263386760126993052792562128751798490596852752649102860874045503577816199451181284216019931035065195797726162974909030628067199258277978988182753756473677137063373776527181886337452904778572086437471181989054296638753236776523421774445972056618150457915128791595079854405303775004951873580429085626984908775411565063144972210473669491863024364159940974361220864243663822044234308376283147295092319721802369646900624291525240512891389111681499719562369910578637958609127695269360445731079992662150141702339121558895864144846230943312389084754827333958873302761203091374655595929057375075532846753755715377139700946533950979252978750528429145157529569955567928318881052717228518873556875227409395922425354521459206232740863443864712126251688717120796222385866437362683878795599142601056983940517439654504357434779622444751278006454154802340158520994165208267475616167663447967203476719200216205625961167582201183385632668565165291546516647082259717954613257956066146601187276139406143498809405440936814736297835533740163865431285288452692329980308911880600777310333325643129417582039624323261856878884940983022008546685203279247762868594839989409055842065274082724032096563715973468586932675527170345411327394644195247685935799157990558586754318355856021425985776456492747073235345440985708910236917131824001016821310775430595397526370259698777826708832224928216494400187323289482447802878231654280589526936724112232583358673994543431843551140898213609624313686325500904589734646425203779958698203643556985955889571547401544767650771306700108132246839784087848304008656949500270367868247045946981261692606772436181516625209237402600046384655268389687432325118732912897040143237167129847162747174562396853329652286688471283514998919639420289052398835873452276044093841740762761267351227211661562320547296004433195108965340555317330153520971776837500872003292052538233130663272777797434126357774433371438679391357398459146650906025310315471150458469512376467707108833082139934467288861050203372574766464435766062113669350949204684390234562426608616567881600632614116545166669508830075841459977275074723183429478482108000903665315293474620690939638789292772879549848477865604887351678462780382689222003410700971754154896560708675931396547654817070174328649358559860753094692129170512684400745306167535403829083166291633519480231482754595630560484820495357641503477827256871281015553750081801318294924776892137021670278372206512578796672240081099383776046155585902185116454420025566198727222598631859657972045332042851500730332791394497883563141559590809923506294776481842600788999544251397710799425920890888737984642813508865138089799624059268841892123244260123993182601507138714566968727151935363643682725709179233554677296793187417397587521338254920170442570344320668240555001362741755959315590027869636786839267855531471989051177277029312021606361741201618668440965642393561736231758429860024875454681920174813549107737590848817081879951078192797298593155797342530379699558356612506329626324327190435693745090348618252269579424716611331532028546343260742620381578472544162596805492671629315498136467348518353000097660771187039729909396299775437235221345046083610042389233108984916651383889288609518621093283348805965438236204796957032467546408840370083342313167958688344208277930645169624711266536052956178615300714978464725573737102649188912457502584199107008092123151768655139690053082933298195909084940134245240700031026622614599199180705660216689617886587344041030295110079212333930786613586865772355154167037927220204062482300114240229565366812200510946145447562210980966541219781854780040103689884513267449928594966498490224088081998408906396159522088861088128089159295368193938093311140346368788678522614466915973746660017442642667419188260514372749258812933734626791015876907256327132908837306990955927041305934896994055813015840768897030230979162318449148533334085619478179656801351577187395390150965986266889782048838265912218760314119576157878981113885999573772794724813682847366073471125591224860212259088800465290382208971065501513044593119185964807991240934861293633898625538882496324805825755312972612773891149655150944989540658271368129311226117725413741120704796810571716784602366753277935362215205213882845789521446780466820564231549278429527516643061062546187887232925368917910541157073107347288338910381654670770856667791574512824362049794984222842866606727885215265269513625543332168032528482986613209824232990119278889922710727783259890687136274569912848468810656259897105823930014107679999680497867464445649796264411953680848648682711987926205295659620475461175436630483653104886200818336976875345498060751458514657641344015467514915207022989507762547830676242377739923028217686693833373939129940117270680811783091094239033931972818446362714534987185442691215265010068654863224539594267823208639379141616838023399456042104732990126665976361499760514861636916820647730718556685550759462549173289644079653249119836115699642654592881943326664065028428515088219124063790958219670611506684075264742324240363248063734943898543947387277562431768501553948286928227574919890302661487160021966148744274439502569501153349993771381494882853120695182833138999928629939437821777198947134893904751589850497677696789518752268170987625085935988803743616836803153483068085892748199881201228709181769991337412540268500408432188656743380569106751739267715748121631684837424327248963684881616889753283358047314650589567128154926099204777843430736671987505667761933935753020035965781481703274355922206722249547603232680982043685309316547782043723250786097919634219909072966001269190428250089232892518333408223412932208041960932737412681492090997819605431461876394541877677076621486348892513900983130634120108619695752634819364632136312243590725992761704597281535407353305680889209950197709132884794869771111343395210301376630840704440895834213850668793930694664323203945248625742713938105960292614017778110721812915490047876013292289250919049647228419923896565387899802603826911346898310078251628652576390838506001848480400589982257983051640354636324291015482835723304682058061451626618183458296793563477718393222191613990602991319757624869360299415522650290041487712919524268701315496502453441802104521722324272177487345370889987434974602010289560947505817482370009647418582569379706893930719824454725762854117297393754426681195110931109148457439238761708157207635294472206862954015806852817698175672110770474594394999978024920648017580396977469097861413282846296701846173081889703526268626758604712226448977081850975531118226460265770375946720029754363579731077722804772644643970047696656875116248452301021530271457405035945365059509657294572601635003059216941805027837642986473726078451150616686581603469290679796114007851427258166806314407742246416551328526417649713265580085913048205942003019761599897858677708079022482940968746380657121013988266332325222487733806616608935263015563274588551839415342724147424393746786810316727914823889696976847194187042724034481423801086453472927199068938736268937616386144445368678854969204039592882591710344441002091385524259063160855528260963673571143057880468802862667548979261809703129248267415140773069589663931114208065715405549029609304561862779009274289956825965455563523101791757134501316051093029478850020574313313724168029556157522579244566476425207475617667065565821909900646880082239412950261140581500943788631976670660335606426871191609255133075943020402593168326290266475625377739754049810672000460073456141629032726608255314310636536717186695792416620255101683594052053872587408728097948457251970893340055596034226488019506470189481271736403405547507749079788163584436515923960148610069713914801200295358875731330576034065327335059309415082842665564539804907962125777023610968928031407022201094831870345492722082484947464027321682783805713312938326194685126513118256956207422850106178637795794190273198024199529106319939934213201495653381332812017284999716360876909462893101726003698092892856199726987642557746891105050811038996750397395301345797985986757929402920670276363611737945551314505737421899368925323323061288561350654739237320535269999761469121918696093410325965398177375936438641959171071264401290118570311281342024738554979596103214501525502719320062126494166327870407238531206259821359349943776941589793944690861018383935748968866588584458034280172145701687682866890740200768462036335111241552010073425042481395054265287531649383434551412500087458338029455071098807504510893824037509432372703243458386101338546110794264750958431816544421944083057624912799224756579016325938858401710449791895970975883319777797892835329585838361096409039261726211392791460947975937021031781599905435210585364721353323000649169429787724525478059705909945317447022803829045868205792324191920523335998740816217090650741611831632578005172616024495128268632059230212250550996021828617431311625131766271749510208788649938608985520576851133982990939288376197077772076145054651086510723609563007139891310338526843084696960015298149792886841761097631972832523285989497743056565227484706753428004544440490621457805490684084306073833849597744061735252464066076180987942796255393706817965975670262967830124670112481038539569260452991821837938404864080938183447268529512726408556101604104844842144055276354055023570416340302518849505082089206346064933480489574399167177126702760282716387225317601386011039735616380898445976293357983568848117421691259299492614830677652202451779491218192771003613579812465066397559301258773524519712852008945195602586040822514886253329070797001406534582140969921864003501870779995187718144940542064808665074417515924800294321262991497171982371198485272163030803251770634478719240377851177752164265168846203135786569206889013270004974258354469921661984680261065529743454367152392455867104391589059796860579046860911617292244585953411917085435337806969524181241941958040759598218168085285862840303474104668092206928000998605276688827525241239903452536052011994910324718783620330475890496542027130988943426894648579642498205535060258806211620376564587794745278804738689063848702729767351122083802622824117880524986240280691409642616718004464247198093995941092106206793271951678918628704674832328359898710543226077639185162016271302419495185194756997059198343814995131837661518653086906895434390516650260023222670153201325691572642272445376664102812648682261195103864456600187918493890182222675764983655357076762351555633720007860801912284648124479420098344074833131784595372818115573907738455839408973298130650288729706546774626593542973289815123778255146112838036797487776016416553214955996689185850493088051408531833891107588917070224053044507764238557838442148049639028186128418932193040730795738039238740353567926448940615348526970036709507806425268533010987708531647260663354093281285644502805900966381166375843739293476533944675038774801806107915072310729572078042592725803626983193163741401735148560699505713393491270466971528375083644552442185434268785361277585422423687061080117628926682801183256850678694863966134299257756176539024493670025869367945491731361795200620388451674584420135477435727076530876141632495246286428898684253468402108104499162468572112363131214676685482940873623701064571920738017360150630020219485788393659386229273972545284053908613720601168307515890773391297528176519305972862141563264712449184534085446232418624809598481454291710623147532920463409037057422852269821811749916354390586632540331728584623072908646676620009468531121396471169570833159577632694736862468484668535873109358613622663802569644128420691801053784966851803810040667211369768408393597581249456816226682880054906684471100677243467754475617338839228717449311805673833571956024204452898797055831221634292797604551072572813840133345838154716447190991772206180760386050030342323594622525648573926563872688378199507421258735585553444983632945458413365804524312789143354919852758909007230949061591262649058584671720276459022330505164645165239034144397974917655959543913333225602604854848855554368522476419237682495083824104970461023689910347828238210567938595850261508783572424884295088379799217211437339783160122892339836419988907000268177192438698020450519779332503883088337866350767130143370466764450078705315478578271381851022922670548199394462437578940131614779989937429461204650025936337515705227678887432405979442968464707718622451326758940745231002948844387278773340013446112187798933503993938787585960462371793990111723235813432925702070757841517125442670165325332288720032681576088758375988203159955091293256007560034012227252794359672692352343843077840285528171042498038943146678588265259045241761338738055603680239179388467597551632588010470331516887437234807623170418077529991168839232924606677980801623795185336223492353728914092498049559261562253568366037269477829896694020774023660316164826221625516167827098460203829302994426217911082631943994572032730534987544969735854105576748253858343875238574363920463314765428337027923416356611229550786894555788879750699634661751785025888052691895137334808473332736532149283935908061058668673299434885530453964969324162495392011433031312695103740918319940162390178286253415648589099138029971023845336326274032341142036918789076981564192086275471994537630832505093743551578382786790188950863871251526239155186119504108896576613963547747186356599956857896834417096279088030004756528097505647281786072433126678166423264634092869610044366995354702456396146844560222806196773256182253037221764350834801056947583615743564110589679893971799885791420096474657576102120709865842385511837782140106431804998111078906358826071885759473395603097207319117577772215712436945018827038173909806609405251127072469674900677454883686282318394373340279876070009801348438261974142783359187024902395099800854509292378243366869801336136228741529813461336241967744080897560267636230155721191202808943644286940601668333878697896546745498145640043408511986984281048169775558526134005762977524086241110775517359563475856139105499464310901260797336695945438386657473355219264154860831737974859789960432834933447269642432038576230167464584033139119254601511492066564242752055427156696079081314183517959616536614206150118159076663190699300952612204280719066519432024496261429466110226427589402238931434892523537934019466487989927543137590490778203144646808118225079092771462032857409688518124730153061265532482143811470613672444385030977763979442680817242467678762490582328064682242233468271788513691414320791992274364072363045850798727669481173419987587757083787934168798210487964957033489782370977600366607430985516888073806015452135909305165475117868283371419806085460868713731736900146255374144924891667357188921499141245941601642371479496291383750854409299293989962074681633063440031813970970539353996638365983306018013066751005526650666016190618738064841952579761849040386637222752772618774652347678384365414055463290769353779193990048694179521774627177709808247833525804386256089146321020555567545848723365412178286532593798069776635377974211658151629199022421681203446281969877159288867527554502818732374463605037298497836571968379531996635486276900358056289056322853326070684937374683940656108179282629181233306989597109588969472669934587786744081966368422553234092517778992107731200043185378593595374512864495646628233264476400652463787524839622615910532456125124646033579394132369078228080452962642393238940384091565308548109435960952262699325564708868006311535102564417353604539301530929541646302805347564627603370337249917000274057965477244959143025716838713953911810934454341326307913421779903974802466083791741992202499443755790188315628047371796313971726011617744038289434700586983066823578524679789715035466533174155838443929959317911760409014782403775919964277255134013140280103232452808881377627911831759561513180312286510855431277292027399949380175518742138097028383834278973879720822391181532492230832625885697923933198552471663783993091206066047418417275338791028480287431975649953100457467025021435360709010740795198114391554302977875554846748262398087357353872669226891547513290599131089322127188842125389367896276871967855767998352556967537682792141758267828347975306930199864366822864834284803256832185623056323367408387794910364265496766690771628500539737325155180328351341294080593424271528815246834036484349652266592016698156216371141609464174354720172221974113718842035323545451841461792513151452264610125267698919432596382024328363367916936159303184983392251334233642388530170112478644801059798615132871804496708131046430668179735113725763552206522782075223946148214519150206609607076610271124120619910009899688961274208216705930836339928062852916996000612720683374021814922870097970857807628883371955864670409868061891966772729939036040733903120056567967703463705936640548581238926229042353011971085620415075773570210706143567727196899742711345007773901426973547321361921630748024090467604972365707948083301652734769917829580546572183559838416896670795913183490392794206864096620510451711230388584106634937383945161717203676160528474866210402132008509953600456316479053900475606544942291474449796206147054157755206588210583116451309141319602289275596129490549960365837680838126104357321324137621265022133046881623862134875097285976469001165654318356151002188044275839751200126615442020073917552987925588326901126435688441963046545380489538525421129018892592683724412800955035252600757089006194900528185779484193311102288006016529737392143732431415583009888050910606961976589266451796899545419627431463517066165989897354713313095356173774330879634577928429397897233857772972463982626182603554202426121942260950812037570719310269492559580487464437735911347304234521907670136011810763945753853235766739071906282744870375261742418175464737957352051282022241695831458650081425439328231271257391527723180217035770376954102796849453907226441526405114225583324289749585979867474320120536656711517028685158684880805289421489393811449031990447260390711146414534098692950223634360513185223082262792155728209728556232112732422890707825055251840981186735655189799502849100706391308360012582822531825812614805674246392652719128554409495331861034876196849742039087342250852428984159137810688149261971772808522594269132876315365627593435209397733924932023280367575269324356882682147923880981612999454172484020036534467489952463658220522360639819429390676953248069164985276188672015207174549758773792437692019792367033378609414230337550424232078617547136395819270668453271877331283729684965101216940413956187630720246945326288301723451727079065221684248879420806064803137518397116149689768391410742438617975835411530423914046338188752110295776480070254023821950712542052680801717130827990231585972006157387122786703051921647982108754556667042474462614161750397820306149196827182782156076209989024222440022208326688782058429047277744096195600937001247698675191435530051089528537972723587054435350239901400073470455697197385504492047186940071162713624388830467946695593927586402181319955477145796547628443166934012264925031542639123023540852359627355139745878145283344770615547304463356071839488433362938613326098250287019044992894267910571517195858465041883191693712438944022562350013237005600021090706069835892658240592983406744501612814785363816551290313041131798352178086936838320519626344179520979982712667821503415992977098674582976370174992670789083818040207630065831050810635371681418423788500690943913712727471319132012137078223257839307428821187370796893025945887757724676192775832055011316503807393966379277237405204359344554667954729140114878958119034827873274769423906281110221015365946421427444522250206581126627679362505879718066592014381462225576532212918215454552517675683331485773761688517158061681073263536505849240606470819466501133152009661647496377647101810902216972483070238379954758297698916125528126767970725139481601369557407001923532439891250116931229054484298916221651621823964468277130570099797545087879371266653997564398751309390399995710600202505159855338297061918426042546354224439058384077191229331898917263983797137299577131418026536056951182509389714529378575616162981062746390776455179688171982333575088387064724007412999841789623107022705110540930662675002433117945646522405789532463531971204518598154099681940152806834993869336412778129233410816074803091140434068851115923834686404633335586948622477244502771130800406577255816249822668091270788856344525204699443495414112399306137979632745054744479524507527678420981277356680144399723291521634140814701246708780414418883161722095065961437672132159913487994532214789999552676890938287961540540956295327763853347685345622487103949556653789986376338406186868308048180559572811536478919516908736647587351723220124070206342691513997038840422142206695616176350875994382819867175978364292861622727529032098671924251936607436696499223401269049933039692608293091182474850834343034166751747049173711103249754277961817675633301489735980712553733376876310968383328202002553123414372522163572199565242706840837395890046763776150825507431399226512359960182481983615104379535102774284253698822267957058679352382249120851059867396501101843346691172807123874900652559799514424661410447805214065157105211901863949765399158183427473959448811137757953352877614926218456752334861324245991941118714033691081000603251797027496916151547972997372915819168671575118791078700371441466090406238967657649807975729826285106542263691330940692358890552944967155064679205467054734267896259815703089614111878573366527711595250113129212508477408457875324948722519421815448469229363586631242468975321512268949533725642744569628427528855592567873267399761652917884363531472237046379322339404366480796840945750114630171746068852405742172749506687314472068367547139353900958103526991831656170184296530707934592378921050151394360725314224619265802470665273145360080892859526690590979599713636172058008994512323124326461799267816069437371885112652923508902641863040064767466641436677263424951114874539142851934513226600751995794945621542818807843572457246484385087460305369443933031560401515918359069894604783561479014980692288880025177118312895758663090870936528575569940153210223629596478477377987747776607260296525852750015679518598422929084227091201665544752406807984101355667025292633420056451310276172945511884477008183892180725702328551236171634764650860291432550974609345357143930782234597848558397171072655041130917355461903421562973220315042285025250099788587321114192704183543104184477077883657852231125172212237508698897862451564423184822639657113606257004410570274521554707491700660337131135165219625463644579967468981248349115343730892583509020990162112424199128623887177639345215000426245244036078086217199832733636664792315175337776581900255851216403622573111250036707654777279965574932779416084427839089178860656683626835886683459818757649059429459146115147426883274004491153696513560448986590040292068945873372080768520107073233773029227330349288204439063112498092594065215761769769488841658458716198181611143786853963840922425074315881684756384673560483860850214501580266147201726917954666587810299687375213891767983905101469243794145954611758603503151361613382262322424976460982578895465574339006049660479452768866534341128854140533967724036060617489567222613596537452975079481875020321270821004539005866277097665078888341434980904168906135392711719528690956345104778868348581617568466709084604414783639587532709435346370257528858920577910904860863713551703841269784199261412997234570828431032481220220134857974596006175332961598810251193531466128166577071904611956199624743991402993593070492431581425692448234760453103894587844903027825207437182565544095023302885807927371174867494106764097283912459571827504733579143718411422794315380132968147348586898785687619408134038840787520796266229450624390412225682722786844485680684169581805580209957217396807699855770291721209070108590781571508016883702920801669404481056222722913638107285875970290204402554968980911832609489010398306736704701541509236496477595148711649526507123637698326566632143106414075520827989040032007996545368233648599158094040868125674033362584702708204079156858537509474561019483209951299249234455579906018506289532608957168204192823645888121789675069872975440300330888988617033573096442924972113788606365523939463846756490281347625842414922762388036834208285956769433790797320985522461572293261128287932045481717101078806452076836888266271476773880950907222912609187759129176515603658076063339940311222597739232190481946007259258229301886389904729980884769584446434721538566188888225624388899697571109383245170688319605587377723720446630099504660120752407521365158044578384317196603171925176068819395111449810254981471442710047593975472562738835329242225184971726914503992446106454915193542474161257555192479839599742202952582230542839800312702714888620958952453896358037105253027820367574585060832172882774313679790500734554145173712883594797485942523854009903756458167231023859712071435928064211249483379135354500483969469633202164139931256445987401082493528778276966904627466131842977242283656908315791115792577725303734832883324377375600612948427133349890808401788974068419180585798532935488462520912684393941080131843378153898433464657825775150352743674274868400800923601748054247488782743085456036101190550909878618548571144771070471834430930161468341817435414022055978516892156978940156531434658174515129617659361197645010476605896648504460791959291196379702119865949506721042114608594148286166179302580768263762930429956264264450596635442625200444233489644107835174931214052000618618016494162371176987343762995887305383302166421617431889970074840529090674800552632052664312415993293276047386977907577364755731868999400889938159020795994426803679525811561258587656012737097834953565872384147008725587746690726332722723179665446268489565304071963102919320618919104563898549463478248476266347507071300142151262733022768253758991903195178279492493915810706300638469018305144286464918090304901627201787236334262240073750147365726335667721160582512888099663495127579640898024892436702313713487078271165649036111594371345150850914744087159293314740400965869511188165397045831311581553311024921145865309472541310773143908856483655552688370792719845142901095703326203434188895087662060862742320262216981676675700964494743067700435585043643641658330489185004838076492130111489403592223348438133186331270314018004218106566509364201949390422145506542539485578799277417738152556549848667788889441776436032062964916468974584770715987503923316519921822982848815552623318479634586173969044471764428856649137563462756467803457874944524018694083086707191377405845562958052073283120029956011792177603414803048978776663468540619634852846619308766309651199048898674704336516348565098167259935364237769699053017985313190953063620486703841576757576447012111915143148161387363455965616578855649321752939619013537855657934405371097883113912390435560475341733973152013489810721856374746871315601560636321867908191340941152655516559185926623785488806638018572813547343228685149622850841281808368958573344526901889969443882438654823945606883184703742962503822484655561838949488308129984173358039974844214441011992586418465581557987449740505465529888195054171566229952191525975778380643422264278653222156748171846931298094087790383061173663646478636906263602112698177065632187622842532818661006956381681493480100500840475044575088499593823425917215102858167582575123962458576636317398870568206818233644017778942682325357735327597031109161754388070952767301153402003432776649610936314061767437500070162801410982267866238628188059276883533567408583016634857891758033169173487163521409312201465689595103471472743624914012385439260615578508563156762122321022672113560122301468488575681171391986497079573454840227630689258697314334375153427183157918491031326429489324520994405378196081736364793561309303971192553190478747985596331866111735758134047192882419246079239174234275912861636023384298127676300256127161090457758408529479408210409112765250349293860326401732250726521213009301745357450534931795192277992722815799100714424060081308516484385305856690649509886766957045174456454641144890840669633591518107956934732337790529369619545821518920031733196074482821735914172442904004342704447144079649754901749290632979004718012571445584375888548982286607723357050213866398249562347079001221738576587538184261034889875013520335660803310920561507757717230176274752946322468506588122263007444273280723335094143780708163848655814772290633497606951796579883351735828580356286405960931425171971264365257456770837812310936774451935762344541013006862392976606737213867347442359309730793659037651521143180108970481887321878512623372365094766674499482381225007549243028498167753349836192399483652256973548682728430107913722758014512377898826983236674729142634489843310845214878321802143776877293663173254650277023183976126698489954944221264223625981242055440024370457121251333320176890131413613844416424441045295050833545885060880958001130642913863813755213326098946196394305980858717170935358616942414373925952633926123009954166439619495184927152993096458824172435530370506711650068888607326740078813997308237792498871133445688427493503490580492964506904587917767970517744815749176243301860461688245361879977382658673627567773185722898554099285684206682554956802593292976658607930287600693593330299152287604734103404670720014806593556547862958941347740853695619607804893581518139286274054693480833674491650259902860593403614056006641035570956928688169961088568386731334604788623718856490596886272582221378374456191858420016748374270074043382991865397714224757772909485127020909559170695543473330566588036413369978630249658079743940896929513085159219331467938508043398907283739325264667514466825995360225223523250975715973296734811738557659784408556149957830743786798985869588375420896258545677716648720833119881669173131884456739037366150064412474953752939524808492109345876624574291407189849352402823733784525991321593553812042767913326750357433995571325172309148854856345602322531818593090469314925626784325433170327106112781681339938352761668968689777057682084455601527262420174388679946662101795290711441693294256724037840801376424408448541548925094234913199893759041986091029872428613572766169221086765260550958165988898822170670797771776215293652053219276735848639067068129014559890152409818117551160592897769026980876033117845584955702845158980927375329747754493300800770466928282293095357349452038945617139510081913225762016477425866073561907299449859626212770568572575527920292220386985394228968192200286971453369094834930567485362286495862019589913530960622576593213212682649459248400677315628673876542443673314383682484845992386850829736968511314059473940483823956484520713959839549463871960817089167584802319041304070082145009654395582248848032348750526001462179159392056241354190103038698504891343104172388718484538147293969024588516254321550395462959219230031993029708045499148926463601186258990767775824924017082771828960847103615647143973063155653763183884239902932621911646933736496013186901661034785785766923881421269288831825264452500439749434485540626212694370893245302144637451921204689301039112231924652897382009996375457240600135030885144319809395002011366212707288282465408028366103913026897443359952589030056889244809864652656080795235819533265901193231836097008588531579227098177793461265488238703376219823194202193320859105843914934784041775714839083581779956948683200841380600715931372452197776957292563199447960031446217932240047763138622334839870598548906141788833679338909262358541741668620749058103535449203171253263168142289779986758287807117072091996952374847219344661692215652976601399837905302007650000235558903281668380287905529142917154211158641620229938719461496239353038362751376203845659875946794684773557894633776284204482213709450245676774898336615631222259016791828419716681214532441760454096870803495009091504603253175378216453658757217931940424053630518579031040966709278617845842129986558158700974556800052900752068665601921419207865665096316801731792996976620006199462110306614144424888390460086577702583214833281170159354662985420490668071532353502917828044344744118085134317222872787309496346289882907519137830613497561422679276550861654081930148880687468416872427467955817723930903758710987200228934767351121848807249185833650756920890348528490032213358895874625998873691556173500639048219690665739793845441080298107965293237816426391373246008819939788360891320773681613173763951149056652371309789611685425077742300943400566692641426044966027624027214278080694583185267762320124853277835728791509221201245157076963179955781289392463746288639104312285281510886751555059930694184057632355299247322284076888891217518554780308446172039201710843265323013534725744183627348592209212381239335374486721745134310711128599885462866572146971005491606805158402555550372427249257845809223300129862925968750600020109363829198616363848976229247047339522422331592815700983771826672070687448502238180831129720798862956713305627476629045119947003106749485415718026717244897476888908163104385108937085566557256894898540097555193433593264951759627502937170184529248892473423095586409107565117342441161361742629339471008325392345132956869677381759003053120159814278362515102777903710724792489504422201650889043671277034205671657172307972322511751478520856948224990570647473882077381884918896543771077912754287545597443897411973212529885931580417909380592569594605349848201599206797268824125172891890648619292369685401907039940235491381552921864295205420905886923185711733588923495274594962190769046398992096861744446082763015497636694677689462006318674141198589349888923821505085364230485812555968310798773671618051770259309667647768549088269756537346118451917929756154877972143421817989492146271177694158139430566060143368403332476011503776415617251362947278461743387459602733819775117837304380381343779665621850255047712846503926804016023838103743124878789907681240019238196192211184196237360016199800865026706021740854709306681503103420650594160917185656941583546483313823666354392216478446787771635571160724802739584135990980011264048012062697375570588577212701686380221573682678379600635541157645082055861840136812413501029922538168598036265144284082941256189244037328140657024319913872855605797633660814967732397085394654777926002039798585737835964550541365039278326039116708630166661229897920136073371531333180337297248546012801947498724963878388792668159488498692427737740209905843631784402623843246502513374440377027634352627941917392224299936539147574755746655723791071609830470299960391604800815699990433230548670934754695097936484089682448649528751928227875539495855852050705714931289030402734191312032100332608868035896316380861591859222374265682521419446554257507537562267594866388878745733665188122489006132184545969099112880095589380721874581832428860704693614621141345178439146776107392487958695675649364472921381402772386106202627308101363671617000289432168817479151462576610905349883780746915410331668669194537050544691742415258260171367761095609707640787093717569038289322691230577954657812035458235277652725410555495156556164361033460814567455021267163808236270299143404406277058451199435678244004572576253525101201401777921412975083491330227242613476092180910446491197249213439006967411116453785938000780419204379681302451854580777808398266598933614805408568557541197319550583814611429598712825678637541899864504404522069932041603209890574868671058979376157094796080905901107249763299838624669455779296088530924092559746212405854184666464951982753502549085205477684317766253108135448279935447762647387184089947285902078717529630075445749251116410234428443097712570679701824269583029180524704305240717153971996132647328516064952592813232913688363847305176627985651283512966037311503796561508551931501647010756145045979745161864898449683137760101885390600103965846635933693128590287686100927700857120807423221746622660583659480996948896373538574962702074341350946854995931556493346279476366749202585760244326547682562062086765497852305365531744717570744600550305207734996524434533936883102267304351848116527440472659697919367380273255595380917953918919202436147270777707366121316115158968682472343981154830774659814307295714224672602181674439163397399312400732549967307162373235248625583595642428667681265457317703524609725483153124573818702304396547344501527291745772804964725092935528167645520956957896816674746541619980970209323851079865284835485840099416866110865412027498647694187028832693138570198629913682786167690334811683055517872535028419450099465163137073768380444571846518928868997914581884972077044088779577465843759557466345767398265697731181790932774555003348191356112820710790641737539848495299137961593991049643545080757709530528072598430728890633999803680523490175752124509473936371691284907408001508047040924564203540807853745082179866331019757067219448569737897375732238035349445386972713644886863855041236690322017069999245852784897624372130061348648347747489066754199037659762924675046518599836733533478930238814196715579439102661910024814586906366055543566980500297430081563878899910300141600886667969433710471746330050311240994565333563807204993884335525783210972559558686071381986446752935141215280730549448213248569111896708399230398360105035146651780888064109078849401932567020195011073466605889366571287762130041665192350901038136766767383697257868223397082666957570270132241760734555355450518829065490373250752282035277679276831622460103749156590299368305590323424517578422406053320797501073454847699851142971608859666802317586626428091908244613499015040094685015819946160030922867754441318006361299224614442566037763709117044111696801305324157084461661486588187266881462625571581445167506207599255155788554910594629124138456689119078301635876682302614891185433852958638815462562997667299382006919947497069541190781206924969971531434932627267926185572821949813153040038040713259586815599721300440316414476527680467617251096924013875493755074194975772418005085902849618432107263260666245374055187361726690429963062587453887445355345315596538396723424644613838487535203809052129977593881270311697959542261894680747440195805498476953198835781510294735224386586067775452695446035133555898513474208729030751366704477750201798905576096708623636259502902793010746118538100731588735047316454805344534535854720625378248410540971354693418654152121273154810801627949139723376630200553544902064068303766584347961598261048262983277139904565475496077383819484200294813668000679100888907612253668980886592274307061540346075101226015370730457939208025582552123362729230756899511333656850989734298832822974772318473212523542873904416201738760564086811077242248699225639234389429627234148603954096318977637141279838350896140544990839889708526164473416318516545577981145381807715018624886047169607260125078010017673729060712125151644132615685222543421601649959884609307074175250078414595756096714990455425805714792243441911059038790171073893767933105201172881902149425307378403901644786936790661465319650703914013746924688074714812332356746190666922423345998732062003081091450208122081934541959171605885965416918166795461303027650779520857939066932372580124821081093926846178094661571441201023914613572832629488062152145482285417871505668639656489032503413202938857677609578503359824270306414327030866845615464644656096133653313253048746989584779437482491731200666627678946521572336224746474409855346836324694922474155121316985577186536222563957825204498187986390004013573069673081537166808727613794345894501530764595267274998525585097091273925692679793531938304982108224339767651995076727737632200907209040464242689513999908886707850759222976815739190864520052144018365941943897208549476879851224037712353931153222780003951944380103551260485221729001796989627452934990318902194346723456043573404334342423621900466398876997575853966688852660647033634234354575400667483471833876257090799574788528763080903546535108259498158349338632467282170650938976146078525828187383056374468396420204720828109202289492610475424270762553415813327023407234124527587299992292343765525045889012902324360621743256224379475315635736199402580839610035828894366749525540497924400296403957957090728912943633905136488124493160815981272115283966608858546136555911974146105829625509892516743600932703320469847227993922941783771240773108046117920685242026919578867515734492205065857912472956916832717196285913202286100808984615444796989567252008611745814212314116681625694062816194053957805149655158707476771431578877001170262289549756360343719631304166378515022497061129651766142673759996847090186835436184100195658437620035649132003933726352977115215970397983550794644231356699650798987554876367156855099220271656277266339654768551852292281952314114675936404168560880640024190305555413650807784241718222717231823669281932624501737608028632694616644919965721372372809175119761722293510280927447527910687378382461997048982326127353324387905021704565377482661956283635993783835420713042080740539979194253725638425166677636750035172901409046974787750874016604266081718693423421336451222653601008142022594654084530021946357660953328773982187355945346414518705570081746306183572510249437827766213726502221071248997507067681126551027213200823331407626827822930867230833799822385287781908796013129313711231360687859968550950890012761388118016858555441168868935041446951784986655448561675728787180846068016358917453992150020210532967070681487620729770691787903312597929358926075014119513104284940851359877015772091106951885891845632018587620842854363845223930990082093816603636444871888414999869417477368994958551318472630749439865844444491250245855257382178133080354467531905907926380334877359472771489954672255439629038540294715137835179682069687171896773442088743811804171795321403479955061980400411658461233161884937180630654533271428632232902141493042572960564410762181474673803056271429876982822728264941396878487061749858103225370106651027710071587341513233457802898386745937444991787448533792102458371365887793785043421667801883999969110831509528635393864369291530414314913921081057978702310142996319267550332031752413299352918724769671094003312645173973910640817450566405908886000495552246199063554122246002989086955224851821380183749241974438247819049844212518976458173226348103810097391456096583916504834072420856772121154651166135728442708685579283141257342822547119597781991092802630845518433488954577559909790260658839526168116540901507595441756806856051910330250995493761007137465282525085671424331856577555733587525047743784507067122459636172290869905729630894910014663047709788420661624071748406295350563056448583715028620738897568586280193187365383304119287117727497660225714462195548665596418943230962638537801040370830142689917634504322804607136643263909330439868760042783176839332049125925228705142565814334303133344692592683219256176900107181066660378009951607972810026074912562050554577842133530212339911142633719751468175276649628751077140709926123649273243488475896612338245523255867327767609285423452032108717138345529650255643559488007600512624811726828171015236958592750363993823414751141303301901249729608498463999529127888924750757135902978154412677360828009983567042867319226600903738360783735574145474247407725400165404004910185757368999699459197849805869588698326986326237798077793387460210906842328905778592073298193713793867677154983051077664431226881488966235603356960539798549214589172211196328290205857838292481524479372912026217723350664555572967679049947399783327257835680987112317032897790534401768827521033193593204969530798343182327364632703499498596433761039054441414485773894938303773347384622225870837268066019737328496206875171380968756104482321721220138566029981230211465521809324224640663548221195840290563600344753066053911635579113094360718909548166979628889511537456627756672879117414034312236018681862163062702034972661171621036546653585193150444745836689149640834894208672364063334699964991810092551233722413178850372454508359659159705307272045137263038060295917486557178594966711546366929340800466175714573066358096449385494714041791940376258997947840302750392045095839501747232597128465484724631793887794928537740442392541124380643980634647716878205967964760489563465112661347134012387514237131592101555892427042214440607306626286274641692099928898597370568683151476449097181133541491443611704387777527996199876312148105688235878120397858274669383283808424561953806306905856685953630578915134434682709698115007755378313591822245911571203602499068940382991890994310124979320926518243595533769597533900817312455165929283955324356050595246653099755263191108568845504023997049864516882148729563397866477274201505256857279227864156087473418330835670644164997836643837647984978320221981011522589366781797584846885555989128219830263472763868727407236149382793456401315032413808607939780510571938341241001654447305960336417985945723015160597063393377880133178132955354926137802173158096282734463925702427282180874496394354807735464242869905880236058868712209001223003804988916818625733092526616932422597116581686182112734301223589755448680616969170377957017339022046916441112250943559544069579288943206380272652455908334453596730890150850533635829874298844177257194802322487602626208793937312845029249147835355271267829599194654335438417499494670392624481937957809068746545800670372120549229660013705141773732634376020348581899108868435780539696873876615219685164566094789214969590923454565459260047682183708608260468843303691000941254065060624997111164231885273372635402179900136430774734620025300141418387996188864016243730307487426901047977923695365373261031672132389092002410564539164779663497628401195841216705223010315408200312522304709200499035902362525887005208521203604902779285367078389315976609557533552535844291370825337094955824390527580784431433193940632503035122602247527987142415997643340187837477817138585530890789229380503300548445431039573344325511531187371237634704977150165511055656615432631822311039473262772958996469630908627209450903537022864785309285948457938079035715357176453709384482174543342628818636982512421744972942290044460379856446683768243110964217276031856872495259026227077192433587500606233586078520495497313218383936414331591655922069471290092182104105871491062493851423794521277110623139017526417917474362030405730704661250413231144278622174280526274108621364071359878406804686559849767948009259864165014119230291533943836548967646526010310695131556883134813543239789705049524446621053462481702950992616935789409900991193481204739284275421950771283188824723368838052012231313728179875966080642357787723765129362661299679056962766283353112465720399230137145584068942115772597932574527748855679368292730329676819355709778509833052292308818285491701941007256672624561422581039163082633887119223215741957886438225636970114588218400586306135797057976155666805574266518413410259435181501030814313181158686857433684197751985326188395286835079838575297472468828587680868841645659345246226933949812627981703207475500740960926440103541509172743507807576130747951450442529120180119499572911338582509747896585423056823757059712933347198439753309174181290642496746001880587957358891462550023525667711590003933676987585965692041986939091395886010371948836177648461539849018739552110781463068064261978411961143073121020618897284566536212805274862734662984379475619459982043400241761648185603532718021188579320063915941727897899306424292237867301340357715283837700457595742706245841207379258453978945374280383294304760107102203710723223650506367269859521988520201973449474273992861138787447249767434338306266646070059040942687969966746106276548622718197156504091932712131612181693628050912546937334445570549748794950089590719432318277409725681732245102486120593722385173983150492300976464068680610943769732307197035395902987979706384045326441277700468514038418466988094706964040494237858051107072207574535624442487051140872228873891971469534617870321697395261620769269759497882602843888358896306915455392067153197970656131743996843503269313179315866483772184869965997893783591222272777690247038839898241010517790995062434213606242906430812457499760330908599014227619982034605694500841298981905477912762534735543882432040025218527808895851779755283124245450771245681589773779297090136438943297673652081565678459989022488941378880514352947592523986590580851364847467350709235268085982840290021548452656848501048246805244380864629567988436339284865189143645024241551347866757662140959233755551026717387410226645894745276853598273588151049232550665546136376997220685892015764010796865726718701511464611865871860279622366041500619581303283473243777748429503045278760172919108905228537725080736595559051827684607258371136515239742935306708057902627625049691579389213403403765912347715274087211973376752358415226036149767855846290574189357680337329726115835627062198824579161286454550674044306333373895882898951908952368603873203752317564203142576752178555562327044962777799081737856757955158293467536433459713667044060923354988793169145810692506140440690088198202425626487281289970432784350748321138599984049626153413898825828379596434925464103548181100402638715186791511222656109873506254960485331799675067303985901134202807629264442366693324364100687181636795394606169611761072071066261210606661722077177755311136594223671320287103154352171845399816317151412795287827275230528734291456719751028172925493892827290974953114495554608385275021328894552488377076702423291555002996496946654340025624048531783308601218914101241526861239162802649391573907569304544357597630318128925002005163027135384542941283728900498270806963461067010000033896652663174060174594820609655835657772123656426485984717451877066651483425335262294650660080986954155660171068171849182911030706418959451847721362127087117893953436694375084584079300059562448330975417109950781283653846062867260945994739746645933907063628153869833216242881902524285624571110581117837145194575460280759060078994125050196221572494054066146091399030121795035165670136162220875619187019564681728907577399733817550488757157541279478223917020698607673645131470876034715788958327407486745152899389609098384507984947634602727872301942882443834406413423515598690084885247653175331419032208104874716886980561365156546256868279417097329489437947505435120562092843029769819070002283804716265019078714188350711830274536409736086779574559091552638629816013580706488100772234219482646128781046393790704294545519632357078432722231962268466999102192656908894313937266880581960305979929329813786952750140256531227135301623809996330903276282695281564860288745789142664739365133800806794494683153915369576859707385363845109285564228446768018275298363534753891919576584248163699741642246979055121136413673935036035460348416064285096907019722298885535449711180796696506356720521692791224438092975523868296881733203645761243890393180021708873396670226458500817538201130992396854736119134012701389808946141539050048862834038063025185932867387607548951186399104215589191284967527262479033785648371562720575366351268642720636423662138885078344355882205543102481031746207763593521044650866381267338176985096531548173524831120118353284336683931600453615948239625805551136604793206081359898106815714536392455362380637577331043933327045800492797692401162439480386886073019151245061263233627903663316251999624652587989465346639004521821984330576013354219353479382066716658365707652848018588465151964107012238097201896564156006500725996638854255358428631784976958162114594745618115827693257631524785057447448713917133404775091262292424005316919836191815915125518754848602959036999122075549082654615505748639656795765422196502243052366619006403544997701636055761850996396758329813918497006017408305173712120228541966309680980555443802696063620503086104956150447151660507667594023494397057888183558156193173452274220469086485673642160683044383719820867407391653534484165088899333118145858893354171789851153480371368902351834097108237370552731921418500351284570667185013393990901922303561703770669678546485474221614599680042430835474485300470824578777807210217223181583220040857101674101663304557949562547854317139784554168063109174717807512914346137315058220359562692772872791099014224204019043753311889512525703684142080966858616128261875327568874466522442578604779911776734306386703608926820549009437938604741576333079794108686936273040978086946761476046572220313721568219731542163712704808654012101712583526887006880811055374232143347696991472760270977470005460424246357300564503599270630500212495116097589975150953211496050324396380415253323328614910862287874797037181223840821881403380359871450247314975970548348758371815998921549298394020166818587933973224047073023719720944297344268975804655480901269469474678749568457652140080038359168329698003290404941393953988953194224188306630367099167804444177969612606051641333822043165174937401704753831482919884861057484103559972957564769172081111611988415376693073095064885648803567718290076017448981054910133575473567203509200982995511874866091225740405625553525641812636533053414528446390543025840373442253157905411534270386839885171722793753972545469236536905944324113101452477810231778630875376451294680978559522557132215202285925246524274053619577098382578929865832578433561893417720593653849619916881453314833296212028507622310511999944134625355145954447409377958220169601653916431734431927677123955139917193412572284001326137586429584860696591523471265168953783434557094242376328947955709287331887610012318823855457933866642443146403396465688863877127117947102745725539089698396139661119571137649788041489090132892202172056543248875660350242992508888149137744577504520928105915872151640802765969702619917636657952317662302646776868439031973252052619832430798694169742044881230312319804877555790304368844567965710858963758394166911836731241651000646195659591216749165408046429970242488654993348400838780998301047937331545221393127924939246176845245877601672576422178856767869345280411280503836298216645371769981846879864936063497689949342797742551562917152751693758204852317344482814534144260299803936410503978393386491693550785901452900092200063397918039770688938276575818541031579695486147457292053110518875821657101477092560761034717907469788640952320138548860087022067376177721787728535426493070723074204491738630635770968132716555478832665526297838589398324545236237891233109893603645912269375102260915568641703355588167517419589972289551098624255568408907157433929570716556754004641292902625138192056570396796485007663892900008666460880033849189055530128432891516860661609051974690755632626931138722597866039251099144726641019585528076989884877318081729013431781055183028894181869381264364226821950649075180314695498393538056261204797395780453688634463837792995432263127961333155006286709313821664874039457923328269368322370195621150779164057715052526950536366216623058011191732306752969955475099270265950219958094600432052168158837754563980196624388297874068346396858148229288520811188968588551064618433095589723109109214059422954242627353182811173578874747859761427093949351357449567637106232838754722931627243807656420408501460685300708258178122466313851586468455123039558167460606003006827994904710774552633098089003426485027093126403812085392426938104968667228496610521580970756392093504807048031369819331667239271105517884926442983083201381237231670603122716058211182163614299081498336584294209718370386624967374349579287327887784761456728770615901128140669509848029819409973300492255557031353218502278096356605507008507749835619517973937040997129795703998040288787156789450838772070484042365486820113027526415182240660759889990054546180376865064711816409082119632033869182988793022192312928341764665543067082739262518461153314070638454439725308300368304879200772400575921013718564510599010592345869461586203073991784579939001222336885274869453177587978522699620126564038592385593374506009561499074157345364765945225710187477086511079405484174975158829877646573239312379225946433592194454488523417220969694379203542177659450253512540244151089274802119010162419657285352453528473276885966034504281818827977863249085650987804188645361997606621347024547852709186972066738639049892302367528249804008753854434872058267307668128969992493988552392237941601082153723741899821095304947146932870152871864188431949125152377084131295669515585121581781307886415823594111222922747989212605707440621800399845044492777981339762342271039745392534957961240899654937258735783952642716564370436478924151808865324757849777261023599639346936612526007176570034432354312532392079919350967045195870468753514972897159519183775661208462212376710754267458035768757363225368931995138233350001191341427238977043189025964844197222205648880199669772738324975122238116233522181174169830596811611047727890234788709859182260476931795515956789654198179441715498717032412666946782467214132839499947714280617766865458219909035601488282643678573655699489410227640271516719903600673823715881506803619398677019415677800302806794695375464139573330182363661240321548775530961566937074039724708315888869290989616721694170509137422007398524397583621037916077724178578994799067516824161138311831661197954862951112005860473285111950025424498419442007456527301031262256163660162178418258405200105713966188170747648844992137823078645565983340439773486000705240422996628884132924912818529556221238785368332647126908058179860313676137375586330507091318423898319810340774016995586428492952417954584396384825425805591795074851334270198597890004549114412738864002605461233618998204806395629857820147063157925145916514588860512984439517587082723835973213923556675003522194227877499338401243973355398910295041067200969827240589286597232160817266460308801559334778659422984907021951754469130858797275145911138309795402058931098850382003902001606440648872607411144449043955793932534202840846838400124708725661144388483404839443647378292935690663896305225408036327487549767857115450446976662462969589667827145030323882376578534505030063143606890673628847916663625294115399214433957565066437566541330960703135362366357917212179785377447947053955247339116587229211961950194500662760151647117447903526204687130252137506893862378367126707934454358845554310210926155732503631143153139515648575083578853930851600866973203072076566031972112458954653571658271652403079862278198295707855555606028631667228750412834679291185355230791470276180707542789950101521606274575515086013067357915335487258868045051813145153254826140141395202051909053166394257139770475632736273969981754367306071309478390740429715147718959253060616831269942160678152623419059787156020768424832977194133025538680704537837867079263266310430861574099927832322485699409258128685081822092275953441273203078031352635929630786250759277290359631132389296555776980363866044099536097669587572156886234505773920493208053427860420256020925426582444390692769642389955729090591731470936231468416616645588577837568798406430945757055067192025243853759213563702571781096620028307780135580028237263188067168389148544393385882069410522418348380888350652291773290864461366050826421510181816307053186773443279088901596063695846154689528388821366626195299560726990293330986108325309273423940720321532612538335132697045279938729186312375259978056622209615537926891598724354102340359655399340081167408594748275798399992673514788959060783021315280246439758681693774475313318586996535635923126742284358247221357180616212523272993318246000990499412123757202557789348491344128149023075674068161485562599331177004201598575284890930594908596527713831038978929464559885664186825156923121530254545513355220506923515751591766598224129001591406573528571257765915687725832472164086352509294395951793687365407346508490291219135227001838298485151436853933355029418015073357062870835507386695508744844527762444149941316535178839419886841176294056521032133131922111833577123332773892608226995023269922335787751085447144158020555412481782375210040265476589100712561749339568987609089535504815154604380060517171829724548977628499672181111740225008506456852117962285503071638591885869020876928529726661876510848307234338895799775554632252363058496431131282822899865539659014439034244718564524096634255388966924681674358211075420246190097641589103995811511313133960897179176841987715694335697979320731840597309546271025208153381010102793481934892604528277689623955674606731202068328181744904496269663618475805991559937617868174685551219062961558552499056109689471214174593930735213511367259874730201414450365907152088503234821260286746300172032537168430047559188953249720252439686479435018941390490271225713108771652187451651683317943462871835824726774676738598557780518130304573885663828132681489157862293036801465982268274620196494338504388813347274765192374241855966411734379211710596804467632330266849954580397330316692734410067821195436427261815992610254168142255845627430403012349228697751095775063429091384346398943801904309234264670478971538164945062625514369673909607550213476301261571508016620641784141675548035102971172336577878325181732496158711689073451413231225727787178907716230961864740880253718538001408118359766248416018733272374021498509959619055192484842552728041948930939444801364722193410875014998116632415504917686243264755774612505956999136351487995567135542319157259296493764527039611726901550961572342938127469830819931222883696479455788413500114429912752045564459492281279079774919733958981453580429547254755980128864569408862399302146866133535744288447113235623692163060642017659859015036858472564745864162998230604298279123755712126702192126412354511305266090756052748915376131923883089348278144416888622197764719052650731768449170908940662723658020013554394985075000350377664696412542545977627006204551116993477847723718044155153866056171187102000276998635130406829717587789092115092692217171474546510933362824510232872351971871077954327220173133681273721655066712263135067020137752077722078647553655027315949116266503842376822620766692934160989149941268424999064478204107939613912014507758441076892139158326604957110980395293659347435478516423802042907167853390698187467955048393631552341566995785495418224040522919114624408515713898856053311184619367799788156313420640793578736824770704861714584749618987471606643065878572234068026172433193430662684593536328254144908153970272182006214396443989795834404816270091946347305290292597854420641885030780589512166027535590952234204365716731271147687678498752410958590994350429079162034785240262171751372066810149131200777808213934149083093663249758883810006078954389327694239512109364198765569020674980048677809776225582034291402088812936183243306573672877630547787022534968570519351096189353060605109337220466658235538330739394511750053667600466210649733852196492921964568869454136214827467558309763888723250413230123971072085267966437659808060863297365101444754095152677681404907629989700400590217449009163444123554916941147148844532490529241433962380841815520654147038737087096294119900657656302861202511113032089169186004676130558263417224304866940732298318767220695181417987815908183158922652112996309254717776519626965465651782710557983761283463362033831235620730312835956186717285036258020360132510014134066037755295036187457231348180891620128930341550282938387309703106574880808417719510868394286814928784105020909070085174271410526860753004647999020913585071607133309569744929875181006294391222420646647371624773025595601012356416436321335456910714105258787016858793646095824770487475493389424839325463551216512872206493677948749473250207032588158338782947500212273227524161424975071197028608205666250251887453860718794986759515153081042001380611101737293116580500850573361157601874148137899217452737287280501428024736361667295132559869332730917275544663581283352794360056640684847245351499920030757075423183081776809611139210548734483052393733740563768204647762351256384450742124066287437519686977974993995078865271902679905161359097517055859902522703797960893452928310836566552174491601180713173013762927948195562412029483931604545501789275762566802350449655994124246879410842564119671967155203055261818926059480201520916751867875574035742121625931030357517142506587729832073836190496578038596541363209225706901556627084332046556603380447950191864457207471026816651279669927764020852546619216233495802756139178475244168984803034233851205254458411617639652213067605485547263968793962664861598667694186764209474504454617908481986744897863244386822301025652266631332126991996264816262946835274163515897633938399807846416746377845282935362251198673342452757514994532279389666227970547244973604488011558802135751866319225846506216581606210684080189947848532772364712555801885685920836051328922947144978851996286627537177010393281667247555309467292163648093355644195971814284080291077157363338026158757844395613678468139614756595794775776699328765403590619007401070781433159709693948171329103940529074292620905449386902194375513786044152727482743173281795676072914963982658995607375006496201026059781321916373083746703768367207927044169610487448540518331212274235602278573747076429769534940939872167057967974247688843670337207743110010568842174425533112416205237248692301105288584345423501779647801248760989828233476737707897956125207859057935174010854159638184540568756798993985218020850331587566344154442470380332207869702778599796076122190697669889309729375658506137586796640927185608662579260526536035855968440193223059845971685082809003818449403887501933315021145209956079078878076596229853649941261277743305918330703808410306022132523144003904631345032068599941787003234448132686764587588713960579080643301847082585789267336131525871964752741738001406996279614267184851016300143520198055604570123106290376897190301125179622066910740249946900373713882928011827873634212239167784669681464597103933656313442066977954237305670384782762994852626303173989835949144950388526522766164738263779897318580596484362259827286230349284065332885724082345605653558170310477548072316229128109466911630470552135812188896883732502778812421249130571957860297728211406983249636465176109779354887717017043245103398278984017394484362213518014935706871637018882229799188639025747499401136641782159772654279195470217181565412351347809606982847229580618245675639381682953784551921700703784906547589038643006630208188854041469386089057561498401713530283386845391830822133035740025864962522778830274963292641323149923098931662189795123153956145369891737304183395389196199978654695015031178292861959155167160797497887857110995778637756427040554529682511375188473434086659898676018443460779012364692328302397208596920351979389672395160703349335875830340702771532808889321615568010105128770376175954649272400380845525355820925136846885703456839202613254326743872610648660964417748242306752193962700314253965456825802195239389819468832489941768724678412108900708949889929319046345113620930729037516743422280135929565155912084973357144459341060656883403830276298867149094903168714636687130804714636122394673148561134351349571114890196430290368411095246088698711754465591757579086644220617207572368977246580155875044237012271717662707157626961621987907267982706516776239657410072518387835536983293026162937886860714945964525844804041798548187963252725269790053341972833700870198755977624757480596504985362059746497533874330267481006352707399701550236658640740995055607986728474264392521611009855453597062801382607818584179393623149858238464219610872388770044131266729477596845420040932711586506875241512185738879881100461895801622928413229019783675330264811781942802590876284650048244688785322387257949232074639751951279970790365057861249356722841331414952303021870936214016610846067448411649875113636065458135307661055120842427980509160021725593065695616465376937142696154001799908315031592806827453084719370222929112470309028142038991558616344371101231770806354268652524918809120783341641777933933972426314874537490180752177206116848634392116824887323453552318998546877979596506212192011628582317849879986834087106023059920707600120473974601170421407758736410257085545747151425507686104444038396805773676618902822086030548498555678084903780380147032043576040630206385354771612471874879627813919402264780619266139506295596424862845965542859525435201762993450572849264493743164592097503957694321686163748436995905292983913917910579456198480468499656738857382548188716349500604510892891221531075416368549863824576244546184803922672580474589795356352048413483191263823107264843502768789646421022316434797665799071705902981237371980261925007464368282246288380561458203742548126899491317381457346131518760086168830439096705856777124836355231458614594925587370003783456327448277314396403778923325094518531977268903821965528990458170499719982414274587606234393501163154885879738809446434312044824270928067530920686871770219275168054827147025591294307198996392512115940755403291424566790383324397174414634307958156888254297440493037002837343027059137207465919984558182318092527134359241609632836941275898731816359913672271213146898831464384798140100022659344875234667576055069172336646541235996650445732626735303935589968759138928992456638137561015428299041326457926533330737602740022678591377324222483369431057754569191647419172288536769128287926474180258809560708314464548426907896189256179138752352578685880681417876114568851210838500953045549304237481604279561458856894186970311133328638558629867140507410690297522474666402224497966825354656884329239545743784528278279856982668769287578435135391120669900151526473887374438783412664067776683111051647040798304924901652793413694708962518010002506257911437820785686496737683704756531785103265557937529096127234046705606004197411349223987316644186210245598132271128446950839605071781666271022864921908759183547807339786407653505699225509666345267636464604463200778776157146403205282118289326782143954106234889953381470967215664434801518717028416379155862311815534155159500585428937271130156611215266098070799636007563651515336721190906808941719660896040109737980914844714555684675952563014295253905395391079322977512239525894091847304865745263759877518456700997888549694819753771353140543640408354747576371105861248816527073362397549164804234638817505626690150617809809543335349270582779828157166251328410358765977238807838395411877569236878832193712155814824611985449168721229681493126413153851818067733357903426352685354481983050771850930511859177671869922733911583450519496314949231266640424280209578432265289480916492358047563047731005537053462352531503285948787934492341468373768114503170328264943213134751051722022376510861611922230274143575749053873546363281044352949705757806718428325676582750464978479451971031394668818075331557548176750781932036609327581914967206092006394967714910251695744806350695721622274982549238127886146041665477789732198236310885460182085068207497541829601040827093829662155852990632233021431307735863031938338846436095146360347889194882871110677629820836773713026089963138577583377376440516754263033688968689975646979916950219829623394272719474758471526219578469010028090798963246674806890861848389433158480110056091526742373954248383284711839281925389845344183523337815914423744849022113499241577999342828551143541420424214309554120522254059836064295750098454614208966134946906388972445291535159393446258134263071076836809527640573427192880494908423089481669685994866374793752171733750976582055254624466785230247741646849675143631022349901967755325226631715226864057591457602078845199308344575743950165046056839572601679397203937947455720265664732777945910483253688655490485982045212237295641063967835472299690959327344473455415874226266342780797496338067892589891977157820490372751652233158391254228618894067071199769943892998655801856790539946689365121175420053119181744000710127407612404790831121378847072423064441435829379603354218836925490092519419647970511264316796882869725920638016994598613917624047083367961409587035282895712325151677249927304963885444328492993615775583926782086362759047852513721665089396436200813953292197288510686606014321493378143219585094280622113827906949200072063619570472451194022607795971126630432209727174926784747017639985173694351732515863741323452097423315888351619294468722836595020128130001499959104812163386599235624625314814251894259331116170888595644060147115016701378509758138639131702556297773593536126049292800618713513706495235582261794093239793234361182020447856762097101160172143732869402833325573723895939768156627273037684786735925394640208072615781367971187030467040941194955316744796021132196629746189306606488627127668251627183890832556064764789851773985132245862786054244232700669734624165454043669355705501466233609466838964062184797669309500387294046024960020842057079902723443617374598082629348222029603149357157633412735811951699294705686054076590946038280126910976429495346210266577007585810601116138780551637713978075625114793630159999905936306287878295194932394238673659638385611919312570692777431082867669939288629730405546408203237422543971013917491007210184810414085374324193279647231471226911754900872811412425293954550550135679658266477667857532272911454962894665062431893999863899503522856053392556390023371919702822955731729417699458095583023414633329872747326992974302908803869901976631282861471407318064493476186310346059296862702326397872362434627428860865205207777042517295217242699959818993260440796426430556738459572767827106519121731741313292940357685568113912034430662170360750955638610623927850300685111818209954263663138417882624130128323635009849433662371921490876899571402493405766440171833996012034512280593482195606838406207384432088605322601599218932635646273320492709912672625956302292633272884513041107903638910027866905359818019633223161018573883445979759436951079883660605893989324875790927769543017113539387651482338692517569741135446245217955248796534210326587442268169684828950995477116556701506274123621502100345471864993562582619840305016882976528765460234909030869852844917528678457818844211014682141788804739634085586479472851235993685227212647496673122698646694252437891890084217495697489748554687502970104833858295586610805556228485516507326929571416447955744635975075116630621728374761124742912209576391930536901372961103208855046622966435876634533387833728084591100444161522869914656764166029149066553446939044118334155341765482984704705504471080453625477468652721459854834362729839268926445875187380544871249353255137396529765605687372433155390517062652754647009312304184045317338861692068101732804483666391368441496028825267147870240349392145675438499648178391043052548643248216843570801842775901769682582238340789926122110263863296151014631094667889434426100338344273591434204771590104370231755036080477653244097968523205027337272360245910282271208403371660613377911330675116566583240066065786915989561931219338446018545430824588712981860700947723352511160036796415620977030424855632206268093709079222156448380074453645935257214197243252606672886165075943518968815910319437130148085449585117257990780955064964584232524356294929549640112765397072791286795403125952917962025267891599505281053114176694720608845125542694096914708071146041293070194034316531639667509674192810094969733625545590004220995205189365957540567427065013362751039147761054341133471939707471544129398615805133943376561760136672502511237391234194671860975494454876221958838261893640288169254648473291791627821979583597023870823382809655833844073759286178737358380118455064287912273075596490245432201598009602658085270524740569020246045272943345445066563056390027238861382808331085192227115698405162797253990286739567522604358055936415501833868751363726533786218279945779894874254886937596617717366411795044242077894402113799444613210048803340469448657270108597796300061310906273540905364727550933639769501338475168808118611799341578709186640579626684444228802854304355817248910528958486618850871175825416888745012293495801123921591203497741061883854805291533118285469358818731316174714133755366857239844435280084608563118861518944751929124251136818762862063505169332450976997605476759602698716344938921381299024200364229765968273065852457146683495701805304880861377136821874475624155505656528965660538573968448027207131060151898415510334527266165250046635059771086276485361991846467342399444857956256275293849373167776990014369565176077121057152489128067077220349008306495546411720000740566509724311797390147630594456802703233379309438516391903973712873074425431000190287541568219498683572448362507250242564755134176938266444058626864098351194723472406619212902889431420918466817386102481115177467981840502002253671059308196469061479341202869709338574612139339572629800998541808396935544601735824416021150212284939704666804321634301626190388677308444882666716680551879027703230433897866365459164074132851076729338964903318755412250321259384414278944414857237705345401586813285114761432009177290761215824540047958759508398867694683978699331109877738499558455744367786893282040332550315264223894438719867048879148202906360307359581855619671587455738400598327443553513128879631890412748778159696604582815774588221044840283783883295848330144988867217568220832498607567834980169192131531857305042094446945722029495369868551674335680853689371914847124433877763093807908336457306275381852603918748524110909009166656484801242829660616297265126610440746039359596030662622656406284918232284130040632404493344047799295520698371961903135460607492573383853815475538030721983014711552388531001265256874651598650611642780734702960326532100581954506676125432689791313470141381775465857273905525461500722421491937201638939634627428919003513863137175009699772735145928939411887346999433903992459916980066872375924998885758924604785468910017963786980939766014620027146258535630172924426610150665268701223745371888519519381770152083320215921661170541522245360936300681651227173823714346408117312389343044705337833372419563989085805955753710907552856221879059704458776931054761242603597903189442448744169744534617191591855234803890158916546570750585014888529980535392001384633449711581253162671444369171052746062948944710857327407388778757272284117424826459645786031238617742412791624768344419180208868720652903596986143191898357572829886960233102834447431697536570375513581441821383803778737529758707323561607804358011401062688924714787661022607415245990955336350260557303054868053786603964689921256278388713518977254791965534225531499416479105961134728077364304315995164583852111638174839133986964124442031489092734683409530808579556932272469985123501718324585280724510702645707258401104173885917074162953073405034039563668986111209857305623677147069725396499007684268277694069118276762416401482509910733694090286374058919429522895900884133605876098765990127925235886743610394786888523800403672286954152832421696258956676227565878973153371108057314542333079490484679355215189772412274215843351856930192159378462855132397884641286215351851933434902803664967002428373360179204351897559698149742997559258678880770170816640938665028273538913692138284822595261099356319090427213836604515147416706011563016357484990221343618374266583219933274962091706522131600158814205506894861655040981772817574321564100825916387998361559355302032890091270632585548644756831026779287186648649730077440310207891076026458092437448435242466850205815166438409671870791236717612989807769689805754592612600841695498887852864588021802519130237861560728375374858120800319256607985285284251667004551225928370059044412260449223503519648605373910226278983820013768428525054433591680128050481021149585286216384217592675247557873398674530294362343636276968570189287755099750086931950709736049792131365319811977381592900406208022775689473462100397894090014351267968200762202714880478073216264283130085271029905152627955176654698488310615736387042647337347994322378394386872543101251710914970886591894330716717052498688692874589272369630168232536843974066098220422520680996137099483591286987914555297993461473824213619929846809425154529263667994500332249963497958148527606427129423461028640547680590141921288079747661520667804292709638789180868350338764999413546059503715199259703492782436249369378428981821131204760916631651990770834446125343965285940523659785797629949574279397159109803396365996528192234568467959478753114003211480843459412648940075759091942118426182239620894189099415180371759169927546252364902965261253133527787040181299955538626720063677793535290148880263945928470978950081184212560580403824423676003872178204941702610512813315391749395912732618393913326790742560147775414030094618067844456832883977746299440316691454353250138821937486410735520196120437907533059898417145016916446875753116916364960227711397037890296619669968589378672537983116554218312421026415632714315393272479923600443815353240389567500116339384999340861242119773169161764714112505760026437006827434335712545842419905662514822628782040973635633308313839537645196110661965771397975374416939028078619184557661979477365113342201473123976887302504875405290185090114689972509443611242903823714911401248567496670878662821257293115169738757741545873004846124622685667951875386940289988992337140180491909235288708130192967181018825343232608606137036161043918902461715116981276107615710310232187251423953682345045206424417583327590780831384125346181683691655287960867328178194370745954961378569399802205722000118216581118407665962144084081642793846048790891235939858853443646302511227670842286264029600037158847992666911476942608444267226332702217613560067425461326798687004222892791206780913796602086795252065817529212076793594088459734801956804519493296074740679324902056291557818167137212548549043002202596714238923403010219447055946286813076166001287626740934038102018711375648541430144051222992718664048490974194200384104438330474446574757721082561747106285800800300734890939420187763644297070336867166793345406820699779584416203516797790307375145834261825388301377871102727955247761031073194319815122840994123510058705434163290236456048168911370553141009092861621315796727745758110190959588362578860483959480933058268570698977957761849800937629952582037057158336640631815611206238375938728156829156157700912652946839832356025072927609793773642357021809058563882424448243824983562514893034905033040179123913200113769029995547150939507788249419859007093416737608720261608647683924942533697382729092117095293504774269098819460180171805799126379592993056050562098186572226197909230511970179676375111880831405848907726599297214131160323869869226429326334255317214896989938947951932619739102016626209422837132825648743252011185212194014892080533534294791547363198944317168432807498036462061797780213696067242102286242324611160612775767364670836304702286653409473712396118244520018297616725450140827907658393349460201489563601901270583895516517478486835791830181459115026592270802861292905152400229999570025612731492349388370861907000720517606466501467869988112096309075880340364084142966896071372746878816162207397744572102235159838057137797648013601189534111623382457459976342556114819110749009154881472194908787837049017544144264421011920375298059800157209564827421852464177967086824059495468273793800731874908381141215107765501710136211737805159562632749950786994606810955186631698996207428098220196100463456209650594926669177644286488090655029986047197280720965289927570543528229103193172985532030634901643156182164327801089921451178541824741831271019255788954061949143997774665629630208130120425519526457955788001157766830725171790350177101486607456235073484280885999331676743978119617073643965609442739858059372793865995317086024320893988417537546656137386156913993110407288133700675907573526503367541473540455651327156669715116330577891477965090974712980739061897517772597058079055403087782756125982194513020427334416664122564737216747366350256323036027506401785936738610353346118344005259902303296922259067270641044976954363743924322552001146390035077678079936008056858934068035449836997320919205788640819860282447638173508881520422663419601513826972026996906623387662504709727003670299728563829675886192673642218038276931056707815301522524962973118678799386087877961516925336099031341038829738471504474307220878192193362828466452594768985994677406254750804732821324500854709344715492199474495372754442190756187523347878430875914260191471085364914345101413675328591265859430327941075684157343182311554830129965201868256276327302695262293524340906512498735370985671094733135964435232383800165749735436222502076380816281470203920888303318042719531957019430543434507799125868342030174147547746773078356040295788382288244361953545549085828870376290109837822590751371685546818200203333293041627607639270280864658768023263806963949045078707424905872996750115284550203555241398669198086288198348630681899961097460713149437167504812830799866814722453891995039781796227217427912841121086062164098031998141918326604405003678311069031462166250935782505961395389239981579046654586130044975305863978948954567879336347979684504600742871229136113717941834082050900307712532449403266947921350176793567632109065522436044165142560495429549035065599166291383104826474243353308608449700039731189166478018831922898105172269307114849380017907169544865845867972809488590145969885743601459760403989493871051521577829533026135156786329427849126880873722843743464648695451542561162301645484268817977319150160715713508194865001611217102986836404495039092161743503460798876050659704765740575468009572087188797677572238319143134258754556906008296302607495255955681718804629500059015919857309984097199446713993017319426954432196430278598217568537051552138954600262555817266678541625177035924339388974717568352093705339751702972194264952962407470009474011011356625407504555993393939378341233644959403090498188093894939375563468295538577410561097312080033528581000143978024558749409438928903200513484688429040650949706434326652230554417483270139677291225958830536844574005961184050878306420090761352817649221274007376376226356620922467630427262829942032386771752884047344406750276126480253024418585605621744975611850785392269607733067381574041349586844205047987825828026995194970624819092620596118753287768625208018782486889656975558477706064310949607523926645836419461860625517627547043502504044305795252120755349378982254801461598143341921066719225458581931954080324261102199978673244016714153717792567709814840835774503305880059966845011265124137553314304646726706388757598985993773182604011207157874401395641260166453105002545359558794667946680770911418356688331924946872005810404347110713419475073585837881072608734144394704027538003330916841291870735740670884231177797323621341104036153779743274442459481145573706427008184653950605265542193481570741845718959127106315578582693596859360851047628259903620009571707193832392509421188225237379702131917101243526319612847060636679259636788421766724210476064887815514588241960924685780000886462423110370356348275028521151742499211743043866641818375924810025506015775460993495717405880824420428400229215357647288325068254616484963056717551970203662445203591918527885748055439813363746187805553714750771815425667877105841820801939947574884192804979213823354373313284605274454042833409443533568858466589929486045019497204406207902619192958141472379609351306282683421306073066897301627167262214808630682836499202109656953703537642868185029917247397631486271506541769893722380372513857941971301766019024032765688402997073523677782300967130913832518080992782177939480854604807708201886362937194097402562691154177879221733055740430812106427330801025161466531825089579392878085564426186298240861535553194660798732572857417619929419275375476022889869382148321247600101023821276892867958273334371092344497974723615113264275003104490408340391401699517620949306504160727321333605695733395134372329274576380972713139963778694076239708375415569724595857516271545457921316695605212189758598483597858397409959936925852552111726876198962804109966723486588973769970543732025060854838630249815339099261777078950475361605088791321300377105103595720747247459927096812895803978652774685061076705499714003176861113708220687712444175819683419348733981031712719312732578730912495459556939701313738782702895704732018720533500301860647345010967498102592586082202406284205652896243175718860512416631248787859779903642482841461345824406693297402393849595772861705224448233186170209549666292711985391628952484416425453030600366696037604819104227367443923116298965418893213020780597048791357600016049017188373372662469178082469786028149714862174528902908877842545281456313742126099629020397592078352491546526746257587848062369683900402237653166991252487846301754416333620396892084182326722197015000294829998273741335071698377900172545866630891088786407977385628265696635749211632543675276968180047356595727648932687479476147791621138432971489219756059857747588621664313494874839752485941504076652700218776714071452670793689777356729192165265644103159556598878043406696404719294181397415347329361228192539533148914421671367683391650310006744760431644446289726444370799755304947880640379812911174517014266838225755474407553190646737434470440725283561445713073508895929226577548151130092237616962682946515827416473507008079166675361030223304895362913264180680004991512161700421012854941755277186716423039538775829386666733764959127290409921892251051832101313024389922607753404709671885871454587127039500397822423262230848100678379005506858975848585353286692496748610505680478396123726404007949033722496494558286282443579828928170529806226351468651243179259826252918061888859377983345469151247305209081328117008420823876578606413840963848076188255377100355429688437469685505513592081471231331094734586654441149414683852203055934779306463500435391076194616000744850811135371327956564633845021278522654225237982108483283821880703697463546563856863999671627052187497346198307667625326329218206511538537240493673379674734843756676852189206585576984377217017094895715743435386565178311785733452305438555113946514906087490279750932366481653458544781014916623505436026351507974365099693107888617209993444663837616549175310690918571159079288755218809691929367148432858754364267324350244628928308956936548760003908023930813543784122998843823065279049971381794065181013201128413133116796073397763467884280445815425431113638065448621632846327326543948290480730277029182867138775380024048869373257410665110538066954833913544262849439154277233185470676306040678037152926118338336581183065906479590756979498192055395706447542456151764031781817768194209842564023131077668178277868750425400852609829950417891664463993906554862858885337695124967302549631521702810312366296455340853682784420796655348132609865196224218623862629397294080413927194282896074302444810169531460838088588206802390525679412220983543645891672992464680624907134271648709520382932299521705638815191640713940396343461033191152761167463792700925797201400160609150900448347038084586578816978786359601712992920560370868046449511221170918494117968971545439678425827576386318210290209592443015549493712712561600096708952705113585714578845842144226481458755491986407525310371493747979593056318543047616763698230134303591364683753483344778390494066880650189345826967304068810447354581743062108466657021234670801867426024749933121408649898988696108438886926178117577070049101485707125202575330955665688098146968575150208952759671503450388999543531871815912870977521287341497883863290136558609812666274610142697142978335791614509332634522657792452881957381545624169991797748974035941225087358664374758924713951463490344867821326690957033908580155517679939110543810762610803506639861861203494657389849686363368908152545640351065253182001857324650117297727155184052632986340557186961953747384893205196235859786567172416871666851500612929295924514175482895222361746043188966393074034264346210469907045592837812756150919294923012161032486611521431904660406695343044831178676933592690241929549775213371223003743323075823749564924858949063014490998715391005572506483679406364713866955311481535900232510729749450750076073902457499803279838438546795389604554719542853462759403345663782205323088874938177682336814515097379689419368976749795591295381794463806901641616328571021605414957081749763860034059053657075913719224519906620152587992357125715029893329990439514341341428165711213216543170377358364311306909384041027223535011206452040856741237981037368538829240524986420268120816462310109381939470323054255888648845622753877345071552221258855613599515359858284407146649643527483428158278491454656419715469434508339127556199897970361694127874933114673219474386687838551593057219156171328540741930941677753808975847333909606093869433369794954458990299484316318494401642561750149961799585495713583765230683079944597993772202524842245742078605995423031319459020108738061127545941857148679058555266570588764674098279923189843421929430804510470255472719364567082331723825961882895613637680823328361130903418287873015972650394119763484559458042939942570334573193932947002641561898455144581000750335311626599979824441716688276329767283904534967938389264978079453104405995200546837483320848875407812548540931738918305518431265986108351442298349734973289226121859193362415174604751033217163506582680040895694660026921304364539501763052020179829220923207314769675086520091142108258037287441056394806068077380217883841126332442385461066816068481641652433457500842080072967704954431499719235989867224847227627042210966129679984760149817343759661307404313310680618033823798388421484370435743179930952611244520056037201267113179946122666019844704764233373883390014341887490089917207837758844070620451800389523908748534890913808786393288843951103479038489779458275353505974563989725736389284032015073436576877284144571919352323500241372323135411408233256523972419984913499459819528199049509361020323722135042459934259512271855240219009871932451694859297098378640123927407695188688574506659768688691638018198948748225327394501093732887972184446111478966814036244411104323859207547089045449116000432160973846554097512520816128543467446259930397936041395047448809987349520478117307913025946320299073234655002621933963947374654704481437774105605289510394056320812056042358910741136988702215041771340669613822681568076672684030638782233373189647969808249863879384559033439412919577789716416118392945530055972459456197337856358300123444105265572792777957089126175939843676528214241250948028618073874698560138449443503055490453461909942430864893366908431466737853350564351462697362111600484678877870048744629833846521225631334168115397437813528480037423258703563832444424746521825459343020306857848094710486320131446957869237939762171891084010273806333308258571049652803015486520909943804312623500332127522030650338529542428145507592035689987727374175816015187048570695961114243496497382751384043027927478705791585425754692210835523491529884143944392410132889948201549260596906502184399927964438597457734255897591708368552522223519263216848734860731721404312641012906688452881439061383794376967873753515657160092844697002342526720874002435657028529174067562968077777512127024090422527822276519437770324485361217519785489794387521840828313520407040275683329072061899049674007982120124525468657991671699540072673574703849945664251289878366549426790296619020544806631025032946463381248234431459002964487189411268898095728480508225309995169796785059292520393678567296692586550578903282955129338554712331897355717432844396767110000880164022628922244593884951403613802092271745908477826375576645756657277071085692931852876822647819443299442845952412003370677802457662450935047236655866242827785562213600463479842021429636604540937022508998780099430680777928517005838736135202410832062577461655738393006382739050674638790121221581582288425494400512885531253879850497526143834184586166581834773605648674222587244107395614605223499381779225440765306894170590862873662329698211119482748155997964698837348559515197507305847236269597977515588132028420530710102683629402666125896587085491006005999234059945488390225428382882435971348803526668857829155657241333854184988789917041914318336998216067464005830641298022047522119856188062571868339128796668115193674560495939616043954328148772245401819734807037636026778580042904565642146984616163158743059825962290123704610553435489079722532125027033982987129012500924859859307764903866534891626162762052681829565667643733688315573504986302646761834709503931048315251995460514181829288064923254989769444265901769068739340103483089495394043085626247906980422005502681824987709814142382370546313685207273449767400231041352998434447171124367076265586838659346494080989091426261132218441613189654718503805589643384842356005214174727961750558579059122172775910491230950591054997666566578098746411970676397041251781404319470885769434063188759676112249238150382381340516694154902348264212893674710697431036468979122069513739013902179597962143161698777718910999563543138843876173073165090077648008726146072634704957649748619903543015111750620559184432834373362628118263942845634834122668165533391021226497010566100370060350899655082059099389901039609187202923507365190915321806510320876155850084705148612072144140571351315662698652227552381506257324283079532636312290816033454382510291942800365151607159171932280750525939643570507519313617534365892064540814597763121441838602855728826852426653925950662665643000265123511848869537359281588608281270660518845652520088538427521704116831279706086832279007349534549054501941792384366578935509946398347914983776642871423411143781133476283109712685772712340513833544668914305451664928738331321893905958286821129397116480062661051522783856523374330640481738947245704732092231060012556431939766022550148633165180289670631153813404479865332658840801275940296612853528365383593253406759379113695641718886976110749456918165000377861812550546880163349118471881719942288384981686539462664229746811330935796021562948964845838800453142167000641665217532685060971015985849282762152390140754568586823455945100171997679324736715874425769509793558111573045168280753313324811255371538087857286737491308330689032079197326839804013095179371718306130845453768591644145508574871503109470869651672205019812572266910797527277361792122589974798261327985523678991805453000680036709713812985782492482159753466288983194710233058328153335449716440373590214009393736302792123501854030418573415885573010912945623802691028836415529320805576317494920889671432327612147595029881409272260580367336162686219357200894531086143430535835446425790278288100742328709567053288188526197844079178242797847226283099283438763334047337262317854874647864065708215842026753713764621777702973854096733590769894480168016108609459334616959615564436122383614214215443487580405598085979874850643273341940744092806823630191168077064078027271035474293412096483350345054076128469495967932957721036584896170149859431783781652545148395472394924176862618213710525204207246434592358080251420217965528676670730812950243018598253229082502529171759008572971749687935822527704237010900131654298444027092877691528718247917958670020274042415344287136083251110345708063193416865110506669253990825517309139056486017105630054572323367776212179298783831903411561085054199092812063753340640930825233095971594233809058060689751354187491075058292845567180621714734461046973845763563400365597783023572249411451183536544393960083805926834976909953389627738785864571430537525289827213188284336679778825882115413757269816378482547141249868189871105088216924499960997450933422601793768556598359642393965369852831970777495836361515642925345668609400605024766478079332363365581732808968316755085984196309746500283206255677746413315013298508218086108944295829117175271349412085986639570388381115534564197701802648521988660387826735353619531192505624273645702488020996908366549261487383252011448013262890752568931182750474943992111475026984543915740746403766495003738813930299307085215017421551496459723391516154391703393232631389403570535766775243166591854996704747315376222203695612888559096220689582010345875695524461894233742552374901259089402673921524294569145882282497030567599612963651163510737641409625488855055829531094211963782997646900649504725777520570919583054104768532348931564522617006603602107827761717794000599979344642402360629377686624619266175884527298361612834066139202381171604862019854694741617079815579261249990011216744762308836712796334035529673866193116776153631096115251962070602460713197473613390799624956359941164465157413513926469697352920162129128735034581661266376843114716132370556549123226134515229426738698727102080619507263310339859465142693697501956581464712219389672794462719076903543484966468232169799373695188317785311125295898488227123597151899768232670200248531484370887017578937664738886794851758001545421769313438409159151098273614316975742390681659292163625534156495603889168469083961420250603202594926387843081830646001486275518634331108921327596431845522809001955727258715749487598307552393982467822838618661252840475412083226639300633145509617548878944970264652810416625333390538310240325887395060660428036670386230608018041794791363917652805439159878521924653276975090693422849212340418339061177323872352783975474055138869192616939253559388496435822597354110491674826744596170030120350957962252800322185319031426308958037117891138855421994204063060671626463678199873802328610950629600838067501344068602897335801165042440641169139535533387143454602336602316728099414907902643019384278229901115054143711738755159746175394507459235788290163298188738255167421227056265141087370667933744678059821346260915061817784040570808795786509532268131534481739978302692474034496203505847429212331100064509644647362249497189483993285848509613199682653086532226122094350916580369725562899741583507733478246177733446315948926578931320675904525916838812661365681821140344732810431291270813887641916511953008608366876475320913742112345926016557586447093027630734629360868004518588057813770194362198360695234745092199837812207213402286197631487332939374007657525555881828153773371379544233238444457993067387136556015508045638566083147556237966505816471766318214925756815001018227310877352683583065905261505591209657998894688999083262212373385042130223318831745732604358489772734126259951483103034572771967301235736571764939155854476077709537472506093733934547231440291716270873987865676500144028749242398015740029819370698814951450865129613475548113287936470293137632231941806811329757959671245592694152688968092179661698152015587083254915960075806702705258204806752381932601923334111825135818490858951870014838887879093437991631335323613303115089804947714115300060221369487479515344739892055640779620754212012698165310821922276691318730305015438614993035994990782446327059931378353585352615603240833172924027589375873769713849975708657719874890641670412268272076562734083850863077819735798318228432185324120020829738214896120547895471761389586084650651869707117112827153020232978164768203447574580111965898091555880419710506056880905910828550265329746156436084739607320935713607929386507494585958438936852676801986996794953861200211139962675475923394319482243235944405337538431525375113410742187693567489417161495720538077624942694917352727071101314771011637011512009060982823006293067655284153859597623808008291510358119324506697618220242410669334598705034004181625028541201074091478862061709210924366050223898188451812132956146746678377557309964112189002168908191573645023754553128068440384379892218739375074100657460197589939177214599442963022999723119777567462283132972892174092072939174363422104491775512547107764556529015338810100684966916234206137289239227565632241415832808752407911574765286761896468556552325427171329753132480649288642527447885542907576911287373504922857535575269044212202141913423238026969234695079815026453029375356902085736152840294606159631655495420175580623568812854468201220470207060741976524897967840839874362936387880734916118201183863645359207997002785115565528933321918336526856966753437749603004464079856716225577656618930662998974599831368958130429942690397022910121332538777359077814814142822510232187177948395726625335974714917300592481587988623260854623333182809788804313488918229640561881238616720658737905522715752188016024224479453031055521652352916301519246625572716132182823413424276048453135238106867626622230261360892513406188863433966001022667088911451837648815543903141958231830622729639660790444810049815670733976338285536251013782106818097969972148041758796488682551801877896449771230316344610991482862406857296380358010270381933076000937297863057522691910014860983664487344418572015496867865095464285458510388734747883940932481202341166862582720992217249667018685403648560906046773103974700136928318702546581871111193158437338387244434017793196365388541318734535078112094790025963588358527949668487591844803829496764785273576679925501355521546668372812046532215205098285131866378761501140262288205595713699839273502546172521537313067269063987169259030938241268866501113736743254156057697916109376887170653949508307136384711648134459482780499584757348172763362875904340275441011762231218941749754116133720265373966316738198577184115241635078772132076386425045535647146512483696005250047315250625280608735214802786738219584304242435461614581635926975138146019673820787256305161620034429952607070493388718564398801145292290353150790816904958224421879297848125297664247025452756693319066122893522338015249532771893437712973385213301685179865810693777584251675160133248004183119984932860556506720197983614665191558661577130328819623759973523915424415694135655078863330905824676465631561975483695012408808268926953507869392427973874592281198336143495578283805398500821006874240753548734665986923558957553353906199909230541154598181040651384069651615602066485178222423774809219116511143730123816601837472529137231685205143349104825672618732018310416151838893696578994389599154163141121869874054239871451449675431566235859167613329172064032748410686890071152665761794906367187400865391394756509233632237680751585299912296898674496585223012388422071655067003501057161756600583172810554666476381191035051095758025639735927207579009460061240819662387707483883943944398942137840357355908214188730305286119835491333600036959733922320324990664482978281057233609738096238408941470991979516283083614661661419742093919713782100270639709856470036209033114749394175042941653398049853444173409501430260410701356904068798247757127016461424922118972414878589323923745387948109127865617912995721649693387005936064961805084651998117391738708195938767823380625464475765900146095445743462598779340728100965801632801791326334420571603117074451936030533349396985297287663717920518763088447342282633079256735718829462255857854311593563403314783282977278236162786625942306547474784949423091889503551668476402725721052627462416658607941634805377122703219777262725111511385478405914788592632169244863904519259535342961052334910759339283289026179678257799057160801353999841599724872579606531044075390271446492741717483584221154114124105201324154727421173102657604321533521342172902067014698926041734421402472503801072029448087181619659136389498757255724320288122032793632672563923023032325738879644065816613884347537190871218559739564416177193873068192872751438396734060505171570812131383382426883847201044314141377474552919734530435946264354614255769371441770557806651254459409691069470478638115168287178848017740369246187594133525910678855595577133845187572428227166604665731225003535148576110936605063656663293786552173304731029439884676463607923228209880762243002430093045859380880663039645386910700400868680529018776593900473987282929977622835865027173745840617722387314591023985053188358963805135288121780920188411714811013905462639425949876826197775464616623242318003076592552529662702346635917736938002507148705881443308774943516353263429152535157216197110640391832482449833516408308722267247550151960149578740492093046776296054258953416499962961949807549308198725286488845443769154284925828576400492536761234388594478543507365472653814363438165588695189285849913729293842682824130132611577297014133852671342295283038083038431938592647710322027439437267279805462264018121821423618089406670683148915462774764720831924849957175858028986004241905979224922112134705440326620136919936017665619982937030748040887597743727645280915555498649435645263641607209885502138781344189350051997498750849529331008871632317558866390022770646043761299190200448111216826445678218884053756652412705358752933400803092426517845363537445356844801073284663495888313042815895371943587292279786625896352273774081284917368589149077817319618469700356363167821996446723373036121633461369515639471900935588610697788802698265953195107159987630670122501330359050774596204341437722897890552761500565428653234588005350077198843631418891431343640769787555703626064917703936321645415676332005268796106514932067440015158730911398897658789195593231171274039852541158138296018814954670987150631302143607315666459790842214198827910748898246923085802027165967813593116721645024442369754812258755805157200412480451089019724582648652542086651064001741338117382469298927082423395050700880365162763916030937625350340938944324252898385748838133678351451277855818783183563293934129453867849844979483425198529919189716831842921703509398922797798293358318256431397400617345836879980105535252996320239272246467687263105861384781176775868040598187150285242192355414918598484518527812533987486304353982538718151549006691034829869955454944091089078568378022196549978540356602157165156791152247001115910183322944896064703723681188513385015334535851654198163659881339989234869606007840656052788088792948530226996060317951209342852457103892225461070232356831416599207278942640684720011322835092447981954451652890170070533038512417564855046404286414998989108001179822791667880239611087591444225098795990980919240415719554678928811332051256948051830116866193737864122457199650755675604152208525156750152684942676735818582202110641258376747693956424367801389222408845406711884685821556451501768119582477468797108960051286089736479882288058841100425367215794206916948024619979728812756001036001935151844503039914240913866658967294248825141346838765426925750181523502213755059924394899082310909662220589341598333589089733354939066584909497332653892911173418399038935815372847895274516836594983128885469889380874448166855469637613669323790109090029331575174918946098109772072414066592146520177686135303210398895415253626593045763998186080127752169662636114251037903925556894384331869790412741960577093727061770185238807077553408479507457717729306959178469802090487003153632445974687060084338727760673122650068881565394085537821427197384223422904881850348316217637018939457626899483581133233465784425710260859978387288582252292555120706185591639404208912032052116285111658743194434078555622584704639034783070470801003761925549408730373233875931922765642327716251944085174263354011797746481398421462656363821449653110133139814425035319089820828727800568023951015938482211547606611552217304904241512773136767509761220473920100037562658841376311747638885123502116211490949482098108148116414008405509318609023156769832926774027194789403160581692148914124559772940747700240047714536383146326926915220416628193409188320563546273726211555975661222323687822164594345388836996694994925527839079108531409665991681150129986348567628173601420343041141602986957940815920035099814468767459382841486886293889441558530874087105673447243659913480749473813130482303066387404803890606659728908417598516053220435642076360806764040937924134221656404672057822194184183877390708593781319000176305025013117922320142421873219595974850429690068825061325060538763381381984634829609051448359690704948323542888737246971261234226137486540145911238455047449248886099223714963152594644316417660157610714104096917785548013676952570529845986538249282599985739366806413437232374277097683872194999364238907041071406633459956428366000448203563148587973828434618951624355115062734995278320838243060473333253483725014565466518250836079498067311502493867406304576484660775415843262557235658788509878112330053137574719425645469875678425791883929227767246910071409788436420082332908905723843151109751643527439947228684929353266342939981405945619422017227810723008995798773804503385134260861044074753006360984785643282979894238020633434984578976654352735081095634738342287474017737903928890161962894443187019425213939348476762040838716689024112213138453738440001348139626669091263358459341732585690173333618276986930129381246149796622749944024270093319313051408110120084176448091136474784220641193545547515223379066491567228147775839287099245264614628968750534038984439515581014054304102577537722492904517110940872120196796558703617978499720339186394538110235716039313921883831208160469988593561833663466040389212971426203041493158900296569840381202717318465790497147641900978156254969959055250929647419766725848558528534243705632591109907045218578541839042841738326191612402672600396482287459063022357497549800503428876398636841195410603012832365860610754975896745469060810232373022020122477647823309463564798630123323569810072629004593041889726486072606068500430590688110385212217810368525055654011323633240200184457046623034019799280537277066887458814408724703884438859744649796253909054073070406085724946178424550168745881780097439859219458908497889325720074109227619965820828206672119845366135617982063806490189336823953990250577178972359222050433337336386114372094783948186304604924124728058140230766139052371788075087681570665822505479071904915374909579960972408150933792296390868489962552376364923013626081426778627470248454569245311179951262646061371844564971968509482431913097253246253357131359420989776176808556901393030745102881655659300945088604384085690295151328420277660419368845671676347228080467843131796876659446691830933108693160323585589623159180386174970539211662091716688956754273782418927062747956875220058355975454324216495483126577470667982533364616445031411684827476500074431907703268057600275203441624456847350493904567915251852881647240857958032291939246708363029378257776419314127005030951262455723445353337475792397710263872582257689742064820340250126925389801538843705284081110538074033884962215776627049708527883025368477227954047745334245277656707270545466752312668092393915742094058871324649252767201134842864783703970686411232321687927587568025540205163485834339971243934912525441852859249318802092480818227338316591536198710601818864415118497326933520070862195961740074941748722517258435526758291180027103704081510992052742842496479184314829608372688385489180735481508095803908896935914478868449507969999298177201370968771337825817283233963557137270561866424517349091914108534025731075189887271442351751103736680596268496212936533033900236529402599515160377171758852763202621377979961152954202306923137244957659006158472556363626390409053292475953821707577638560510322533663801761057390279350022655707591963520529784759619621984301356308829931713565404834417954299095200583752345507228407510571478214419705331119869589714632615398212271048132786178277536785284318523290071526591405017023436113371473424480974650312748737239686831744142385033739504703843486124764410542346488996897170270811674715299060900455192337309307776673266254960054162463918441885004299104440577661456901475397378644798640345764225532275086456570298099087200954645209336252193654904563331909092720693195113618234932494077276404074521385375012865240961924816509215632842140448265281050756097109820462712905179793671296868165915030763645820955033988702019509410417690277092885847407815075466070171467712972651796426846142333384349871727644918397429192550866632625511089201497054933906162510321755104069907318940206550367030391031009481274234292150028338344015950832210611206137966308054966955687827123156661732464304759095291175337598144841363686131091976015577059658151761789852353825847413941795282466400017903646705635424430893593027010995908129144622585045915364518224782743324107173008222807530585958680041363429987200260348256672038141478734218163716386675167414472323986107319928100494534850496498506178054050927431538854686507825360591800961078339564656955311174773422481617409101409929786114974289296108065097160940757995881041100419584209313588202247876457567933790380159890223604119720139227706532979453373660001840830797671267959145533184099993882569170672621610190923118996002904397280853259661816466983479379763330670254489552261292844346530312829128586475771392791081762952189710812388089477117387342684436770263307239281314396254275960796916495512817100270683793022990805789862663689635612571354311310872455543125212597009057040826359411282027217518663351709506354970445713961964779473168505119614046244925488814092029366553113002519667880053182213349121328004951014917262506661641720288776085378805393666195729614663106690510135124450148245679702009144619622512064453974058880055804117751651710018697325835392685993090850474121976356838769673696850595863453497675427555973202707803991877856502079107035912994862239125976958161697494300208840530192986645716175624097403229212359659691396870350007661421045788018424627607457315779699114652258611105922451486544302441136363712679986435203755094785862824667898151433154971681998231573901306717527216936940390661794490653081053112255037918356201862809620085683677440561410770145608467416849361830732291749920006855883638693067121188233460533883011605991788811228110665203361037531022432674572054587602241312589086959455419725868572254649541879445546412255165128075552705597617237512945212924784733444325450529219413529168091498120990147000599363951947829604739091258198769293182882669819801306629982053274737046783842886453455785995398696732294969368305084518148156832822372130246969067591438238838922138443403924144760902889152759974479184071871253101296444247550219837821175266778555294875236902247227004183184068521948182641825135404833576220928541474029285346700253163633898398363773147225080248190605945313005834967427299530791578563429900875654409008652864164834338448838952891048530200680462105056666581444150122083161353391371573774885972952333514289620753897397426475590060873917527208981489783775133266817115165870919370881080931474496079453926226355558110932564462886993133109925438034313308095080518422370825698187411692052910821370759702344409638386090905546953734680822442581256737224303450604658133762483405947481956001912056685654489885979440550731631475868589221932263340151135082180699909088514516045939266262410491626860964108585034213722223950515673900915047239536339807301141130377617230039791860108229502906887612052411905660492113670429101553525852972460758826802367675705125847223998560426673900790766782243461384804663166951095581181525376845736941395991672527129215217127050440934997376940089661021362097608369803884166871020756067862433700778879089784144426881208743533315623288849283653079460875249138807267735967739615031063921315021310177814222143872045960134812836028423951941968889270199893044291537714440280073864829096782326531997042047818161985024368365554288091636608922350279674930656269361092334786049129390073109634287510620321269346165806503598156642870559554922233431087226779688548043345705120024590695502669982029236061265437709130121762169756842181427106597556417342866054987888490903183595475518525049647324283475525511093815804559838802997695705934415220032643199380967417765852762300005758039848189354409111756972216499073161523893980915705464112576510910820787789808073060033393771842019164191402927135286194839990004399720223798857595100113564881115752580715366192813159552379103877131839783696589643749643914162930753716277541991543547376343872508957131498014203543445961936736726304215949865959946772232794284261129717063896111259080712756243764986404267685197537277313940004272311946475379332376535403549704351376914139216545903787229019366010832625000030191598373769259449835717030247497147483805427729189009194113843745079154967026330344581552482380499485566843183074058999010350783562345582472637510235221661766293193272673338197132011769649471319508241265566938053243368324306414431173850976642955915658702859834412389212871113220582176634623281355621912364494635194238774107348451427029922591845623191680411734219692188378374753766305827938095140701359377268673238578433033344641892260929714493460012411312699060025033087343508502903649221437018986156642891338459718150017468126362171431607189711504748021715798790779307981229358278229631288042184655509452067401857519866236837872683503690400608137567948350241062021181834233217541523855892331298936651539822980979724835587089144418828120593818888547837893287484997989142740082381880967597231521302818626674456351096242699316079892224038243475864276958766665594870358419854340098219393851940808547275168843221590213523811602332914684695358133060585920017518924487376463025935516639475642382510524027498360149163192549595100910089029121022194352122211316767577589925519412599449856476547394745117720912249361861444659294314426189101724240090337123012288271133040605860994489024282762403265198439958048235693092188260550968746420874211570060695965362668973059934221050075322685696967967364926172020130313660102750204552337709617868831263117582428298778668626877340493233296916698990387706783982117497162942391392351104151128436062930469910817366912760211782370543480632260031123591593481289381209542461674242628289640862772687323767388975589017713367039106869072273515515837571882356586900115158304494195743021260752411362158595129927927038013577710579856866450009940252250112796575941224940543870981440200718118291116708363175340943379847156534470465642305751025113197209080912019245320473537393560097455573602328095919717507266665446569037495046346650261447079993828213285165879107406701439273996432982255355719843525433728199755814565443818745016651270356877639721458531641938191819695542500731485990909977099520490051565722071372929475223248640083518707360607545983665864550493178567150533827788693734032642850820285720585671360415425108475206289928421626092243830735136076152374671842773496214899756350917252789914127926855483701015525771231807412869783446947532943794957748936608898264758666248460305926396556077737368634714754933212392092952206756051934168447553357270449168446747210775170572611147342543876310197380165589487369399941486515650090211496773938137999499145767553089726688598741678918170192152271491036215877766810989753675028815619893522820906694336954962136922429394982351168052077709705454853825722026346492514389417469321913146128936538162770135312378897029791773150356683931237238369798509191650625620682478948593236273208438950765841021825495683977802238415410653314476848152864084846122527964833990427758630839583405600454042024199411075077956936433517004496509784801687959813186528135129045623089488959689641109376646805221409096363501993440045108618968180202366443575232854849712945651903273730731444600263741157950631558238735241046819721848563260368209524388407828978575935145736975571767090618773536823752896117056929945960030812908871249874417053689519105812384119965038742566597638883900400662451903194694801034143972642250304537682345584807771648453525726940430521309498624503962083055459804641185107370886399243031249473772032872814534948286544004693894611539760544901011336061736654848820496382633841624933003755412578589041631193538467549173383576812603044527106617266164946141380686438772015671045938671938159674765107527836469128987021007944054825800965285181795949487786998905812991498096824869024387533586902221338509668788216493546648706822817908791630476170959803610830015497140108949614713313615425586572057460364874797180460785678382114710980816665109845947377387909627842248532902322677637279120451495121695538294663524709674964201968519642063140874519095964117579556355600951873840242973926529041790782458160788706982967075602331102799618308951157767453497020959165060026897054315747710147508718661282601815912982016962342293720846900666102859870387756052674794806431837425862127599088636015858874847823215736252844055104710620950314305236948227976658626611360253823576306855559261773060196038186666788787972717620251475018330716312026533927692971772340321919290950510070982795372347239772600777382374413476705707070473813004222472976348767094223045674610126589661623617721328221012186227679396997155199950730822112539301350691571259376954092061299969911652300603551058286278349695384146738195427765869662424101396518294582058085592371807283650908205945426410132166700660425800681174708201493852503433080023440712839446489920720812192669737465691192457386762528230345307147651709098202959421221976634913544263433497796003735909441339159347236267946497362981289471071022680248894432372885839712932862285758497188549018104986415082138694911359638365905095255779733385524417723547765541455859108616997997627629488929739377939936173495850536297114621683014866187092716655146916875919279370814479004318775654433876512733528086292582395398082477105474136809597551109643020441170879100964372790295002021123319878932455315767043613475035061133156490291056489640451908971539970043989772223233422338477327269635095072378564310208522336392431140800444375127723128593040411314503727622144139162952132427857631935546424896225461934144535197659871620970488677988259183203690025763330780599460693330457613338541044990084987073381818511013816915210237425758638272935407008147770258703737889306063433542671164609403837330992143448208310659338563540192899085549182712707026796439163460454472268643138909729443838032528504551204389196585168079895395390023628299471241342481414760016849519120514061204654266844150642109359283279916838232487813920882075515124463686686908285820954244712116668068257831737201128103641025663621054752215455832336532572305020411347950822519030942292002372789681127892190316033756627096234416913634422800249707708864466972324144454073164145762297443225264500038403646491602455482778716044881371571157345826472584910873889045709592211920556304373782990410868078912246025086541858300627639266405801836665483033961730138701526444808492795696838982974120551481769748918694917117744965711750953948530138280429130238179016226868842200985237198371222760120990752345677717303940077394833988766177356591006443917490764127555684501484192846993270344636127334841453427981207524332846785877807345600560332396794433974061723153687750924927376446596978338041224960589233478230267652118968762975052200253399796431338249152424148049698359191385920006448656940803851538916717815662029889749000576514295823395115714359600203820545688552043059277988823892456588430709431857625367026706231349827642256142324047605968134942689441741183911389442872659119195181022553845747671920634665271054059883990753582825176267662781915184205564324235901206591939310601994795568816420041796240726878136895435188592787644118025246070085546205723866703070226917961733045006536590591959241234379340770953037494186513248552265930044599801333133294069485123837440347348298284916326279779199746812485190403440878945105973837818919216453475819025128837764320079595982891087829401597179418264084939710145498942507131344175111973913211585027084347736586634429654584127908854299367804948611482088150034611118623465099604635866859935076220428998365238452227464899232476377523051121058465090893071916706262320088552016856264175816148905598109604620238361640916099957654801116061493009531861036678577420364175089222551155761274855809161320700129498432260111769410408528952258374284546711166276764010540812334021723575502159607349047738200170062390625779690227656718643769780082255055397388178983367467046172628487615930614130768920689842861230777799324777815542441030290978793012988475269004299122278692442229953481825326665245969289149844621704400288058413087183515414777521342098115435508708080466396157275857368232005928359979271738953365654005179343268685734560724416135762270118755251797564725595922169674998253599453870195227042135247314302135144270468417765713220190381162516576174651847755614034439244979588490007504644846214305645164720881225350996722191063794125052817252201921308979099686002508932766216088961716928007746606743959146204629205315116731980785159996751752686299227342897272095330992008824600787898735997754608250355572990499581874054483739740475571640731075549298815959422727009823342259793569173257270713874397238973926973043621253331235084056436232190393855152762941684307730640353734615321174778212917597271079076295171082404272833737007296811153085735731140331120834162371877795628105049550055870908536478210409589275411150026183165190597978194663339655661810096999871511504144045477046501823514631033110337608942002248755827650175396728458333105826388590455934947075968360714572894189419707994966853920144254097741686621304265646073918831496241715754667199809530201663295603371398494414528215947867895146311713195149030553712318651194469960666233167181209863242421235086297083367466110990107890381080206659901129060362521756938340070099957243149857371007053954352444372301221158452392913784499192131692427496048739479950228602985664405947672190564175010251249527571123943591833641565148867580558655583044557143965214206432750108612565329795551771991294282640849737760907089380404684318581119266996191880278197418487545406918456999093238529460388876432601947342651911480451263400587591606408246775331990234679900226080406745541424117823099232427628299280937082424501733634076986847314490359404815545564893857252523431679150432018005756298869508241496905178414259441162651281664215784977849772086576640578229272848200521793364734268372454610822491050732411218726839138693737413609400919401841887908799243899641504230705623367353710119888323310462096923099117148876552498208042426237156213462231242502636668715949993773987620833873318023029641439103024700213446498591095257155614927813788571178248453945876886621951092822966837540276263289108009275085656459695087226034198435621746894601503752109681189384354308498607751335687882084718535567870370982333786437431684583623063901232041828511931717894155370489263636637529490641205448495181230726503674670803393850038342304664112960751357645348230715816170403640136842253524921577558961975493764527132672752858830209139406206919159202256879189760861935184721381166791953895561939043019916970180472917387308062856815291933366758896371151063826854533140188586944987571594852993468085596104325919394663013943147691257551947020953442701803648947116804906931160486864149504161382289333555527614895093297382468203835713715674627623334846862237696354391786303401839065137069366615403090745268356164527089710167333577957058937360463757810191743721004119898612091643859838033153857010630367459482638103912870751085479489797886331772872186276251733192157858826954671549311478555687525440604192083032929685350140502881790929645592452837395408507780116318610655530059471398502369098964503386133435121919295349192958761183664616598350483241906207600682837205171943020021899347816346518244638139260508912437295553621351665061741358802285934519884876358528579559131300100316998390657329622063193287417211025774924039296533717513555193763775451870613096586781931872816834011121273775666419651780303098522184827041838974879475777822553820138047067124974289606473875000574344002613104045238709851905631998738326339480053411381321220656178559673356322889024199131340864057683980527616672965821201445709213684380010071359249690959972603444516908180604081978800964947735882245059450002027622026704957746999045449728382264779289023372404375206410831121518224538155750081194916971150670045593948570145758186188277148700376393905255628383940669303161327520864331544879335499904583055834560682390065037246919555299288093504143950257070378773013064405329027179349426942964797876059269985468819884367656716180873359749300553114807086851752237668344048285219653946118863295760731224259048459467750178641839040652822006794820021757161630307752449852339146531101308719101002096986781862370051246541071042185083864408260851446435962058545928348884981458098176690849928996582300679938905834937121094468656712811904574053896713783526830271161764457224581662328421080826562082955416755257056467579687235642812924458157428050790882405491726793751225191988720949855153746780534670202767964849492142498323188224175508280487825108353900656446063995152690236859170749271112031053338404882181782091191379965874532209470019979649791016755275663746524660643869878773533223400983501596161624073628947655240940877011487667693034116792979253012988076257523652911302923210347391466316311875919686983399046667610766645117518482926984996666618672721882335767021520963003499448001483195714522694223934121810595166431767089985575507106323014285878599045024038215883912573591682594993983427414779008801700330456795880548728333786513964793751184763247919849220453577457066959516360814201456253621840512386098858850701340015060593882807811911684616250822278415033526056942524732763289918853684709402941637853595037596654233966572529530837186916996225073361473070379855252285152228092393696189679273626653304752690853457123534828245222818296437358955633215749197787794590857317426738409977203711115333278840431142106446005857889098611431928905413695536920352113063355582638184737114172475696186469828046757226031831455612520179544787215678358632664854297934519798736970258751810321062946318387411506871851162239629095225875748312219979613122534378256273202448501525441121396909116666473945259289118204101597857633335982770815962544056977544291517578282691066539608068965846064127831125301492055054535959947404876923522660604654102893891905058832398767581530486021510087276914443344391869492138390695124532898685458338649540973995212082918990590460147969302890173120652896097684896316123550551900765676660672601407198970441841625619142002561170501773278516967107349160284873245239489444250688185878053359359894806702773352258820150356262199749586824821411348235942923631104225676214941048354838831309618701311778382922074193738167847529268690545042006679713661023340677222652547541835005406523699998243373192957568902662892962487595099898883280017429365597566571362057978312261780493287146796250715176829410974971503707110766581801120664625234507861887268108110866913087299733339631876665805395300386394882067181931871975271886013360437787513485503716452115905074106608188997937296940165054278452853252124326514719312170029292741151655724417657500368810080024719007621124633797930175710197130512853812276813762094269979808580850916641009856866167867176970885535209040184711550646090858614277967728932536121950826984236804157662133867628367291376356414108646344343441379939895089301277326030068304756482905459101864176830964580606590317006908884809054238266213099879003586209016254850252493096120599283789187181318347994184784638956393247452075756320467171151919056600957049541930227602789196023469535775647204628237506198599813175046944788137844949002776477290490486633964119655998018033492564311560994076770262663001424644647573947737772756015513481591445954163835741213759405671290560737771915069597802314929763781518883402683564036971744100386782876621844616476377055100092550788175623377687570884279713871408487886475709775458131927320395017588860636763981869669598519413397197154783845595613386205191781143339532898012622950764793198205497231636614442356688899980276754410339438231036200845342758161910944038205738684209201103390445096540274584683088372358518188358489679830948667889297088824144553902709477708665614541903971723192967763431235047845676624347972448697774712499853743168234073090638664179985656763843760258084603635155734040793693851063479293564904332126054021664099706248950405734882676161542684615332696411097185931465222747549710531179135597815610612464546347247907329288087787265275935910173419730396998294528590725432001444098784551360108563559694422279867350168395871160679986010244997542828084759175283575227888956380761727068081314190160719182995659849395117998873331881728543266253811069282931862323156258534007420698491364580117491661094828911543508609566618855683419914930484284914661638860034380356130894576377616870465495908966552357390072892449060010672231378815589915343307392894653460930766707444518474528654696502936116218149602932690331042020450903312628118211538308195631282230331271092390201055068461950800688609095769564490940418637522494088978372395662830474508855776328501109773848134115845079997193879566657613638253390340789306570784478745340775269280752550672341278438638292873223089823757684464869987816305152917101487337918831640492948266749522433579431661683941646497811605088418299965778016607191234746331275011635614620265145343867162386416942957767853356580655492051202686990452061116223654182636381234189703853615780768900862155568213843493319223398480852140450984010804608335532329818281494575554344988959994236461584254817086798904851573660990764289215268323563842723026831308290268425065733198692215223070962657465208970241319923268550982509000098717926180532875864044383483253238238254903966038460827924698068823446860883189320318744838165591742930314061828479382589989440481295242438660281143960484375342583891516397931259914031662154851502928841982586885924306274840426977460423970616570433230859389396089985438851208620652614103674802632658044774526492271135729162863841814948593377968679951201438801772942646866478318003789822955566970434136388523680063734577214867997345212754557293414914517581319418398490375121467451708405089908084573354845790134398072959219080096871666320836768027127184848141934387021055214402750415055778672527249834794857206239513103861815474284004552211781182416167081230118627500947071137786880039513388566136391798050782643599445613056941069775936804687454036783794495467803090235102788161617029020739546895082770809787779006414089398422955313009478785975649134859315203467835523759663855983532066376521416860741742834132489644305292277438046763298374894071833681138166892743539321474728847453869058536159245156662362386580729677810299796894170831608295798291572251755596285919913938483774413506610254702862428494841027454505570691254959059830870335018889279811991275656026406356729874170187516866148488412531426852413275222795145045812645101474235131652085663925947689381382567343164013129398951759044569439810455106839990772059389512753085997370142008050068219221315849724024602160536268010197520185340445186830379524389749585744444207738199013224468232200190552889689636630308723824632992921507477539990735714011602230191674487403993033079505749820468233451213167488767194255490185628742782395504769552866329529758390460368962552023409362497021927625083108445430555065886730921444192497026266873667763831141782434746642232579855607912763211043479424911596516764907749860638451681410330747544185540916084730227043095946330518792028410288199919311366685700578304162579060897601184142530510545347331960634794657486701441278325934201868094779345577197005776833106814922676756937496984110650656856151669839902312884461165636283337443485906993779412005624261792041717253804402339716925860717483833402319834059658226294811515926782411259239902189171785006058114840154737458127334072898063032169301634222715742001035021184712292650402274366971207350872313823253768296374850603772477853534936116406345227731718600763073426131623160696506658223931366395349552131653872340293391219404959026611905917054089312724756137791119488692961894303933666226231978941058806898464205181032088574638834810759722985513735740689617427329632789253329600824383199425905502490280996776817331863792838671789475236573943843534635029411142910218741054652874153405494171322809109843874211671072144862702990303176172008640565534723246074108838083978100343277087094707826341657542683624433944451041601491066826331712236841831040762082541616662821667029699663718447527992840744013145738414174348969553287277856725813216578853815674667798349553747690861615097613355174884569608909197840305533774345713641740947955787176312884132839607762081764789553814155034813434726466162102277351674567354341604056293353166123255220636955547685920051297322224774913933275271525138117981737584722172706690494601826804810987165243858956595855690621205350936927179690229621167455891454903096735191447922607140608152436829534709356552599001543184604015615281140752741721981799964255414900424360873877009775768133844043383535674645559933343606323743837397177088421861508307596154956251988542994087881022208515663152798132270465092512719880377753922780256110680451416237734777034731394293075483852850622083883812963224798081986438799114107830482528373015178558109653117564314107081430627696660390362725486733149841376900913583699581435010915558105993118351463228341996131586516894072438400043688304187825718944162156878187669920137194201588328283590416446849258543816210504261198623256001936818545934665758685842493677327044017940781215768980530977451772963967276434973455453043725261331935624073038996987237937966712256662073191318231964505333461100067564576850530371304613153396443267909407617177931873894104725509278567367274384338006721417872318533524259932157650053814771578966417538363496788635738417376630162517156519310269590342567562714063660887118962634042786159550740789262996392874886682903895053986530899245862498043498619593115498658837528946045397666723255654158732686872897726229430161353885532873914698401737884854687674214165473425871865956455532455513598834531678857560941339158509760343151705899742752677919018850592294802206613761451393753665032180868791471668546991196776866010440885540569185919880261855366319001830274738342431190798566254998978858821947500291788470042653605264080028390930861016786988601210054268451734497460958111914779676362045760732442424816066670017812314203124108689284748415524129716020385712748018539465323500721969879664110155417043498520511004253821420170974969058783737891966643180487474497109252302806910536568270425693234964119076338590781080203432835378417438297268862456191155146683944131583486237663710888850017954024587109937617040593905357690833065739009839057183611603690154414490307036279767271789318630778075128707881928225628103709568282441546787930036843550628419507893300782580566196922958894299397182877039960190284216368309141713567689887681599815896221960425307116781210723867278369406398573905752893744306184567841651336270913935139537204222400084876981379782711430383217874079662678843978500996223982803438308630178199235963235120290395457854295680997015221395316105050128527578984977073379979412689546815744551619601557730625437871322884189432201839892378936915697715302488394885589586420705912517877529074283731886294537384757833472698376413755291174101735345416664294837532576215399945949105465061325686363400426930671887221869100014996022493880680290664841362667201951998501874011352593483733178913690811299202062610009117718875685178281564491497509642847217824418569871908202235935876843588016867259212037917323550604936238343308930447528963932537780196658372400748786101188141389516915035783057124623284277310480294730859011149823492052753107843751001884403952682666221858979468422721044909179436643083585981787233564565837864262403624437371281935707563213605404090179730124606651480528536667565979995426647705142181729027315373150095958051741956866304515847363956088437537880457857905389207118985559099202812798576675596542074717701383078883753749624855826314237692468726925687656344016683800421867372716864356834592278567895062629672169030585134862048445809143327927612523370492971138967418115932602472047248747009278273488108895123188254189598363205892434586520225270786932105569966231859788926335393392608205840439344082252321908156600565408729155685074549042112314067664551696725362617186669278694557171881257319812529707057528197447293339004228514650296587042930714323662817192365699700300919898382806440350608932312891664564485350934134870991482911760369276682948244153106452288792783502273371098977204743703977658500115153897326199631868349082137629762152587898565890423149972511036850572213775909485083099902885692002622873318422432053138515761506209269538164644781318393530429155760956805085710001167462009511791075319397907341684591686077139196404172414762494397111417825550714814835251308508601263294568455515832058379851712389273618784161994177015636878295305103544734001135444880608996141621621460107991697775176911622526707851735178603410129286741996149781911949013195849921268564028062466303089177993560168711426048869966240552681685595585963481756926767254612849052991302859874463861281727383122368340250229876223985719601611042839179656420340843383032548410007665067234333501627249092295011324714237356269519382191038983941613597769477508881119095032593391287289497792485509257612846205520815814348198505531004397437812378542243053018559200797990484273071697395922067713135860518942527232441251615173153965440996635434616526014246611112480201325894365121740915381800729622181816282460032263770427344713685794753711807069948023422238019998854835249585236655772114371860926128790283896477717877558773186555832240544281428550468585884420305139287036733343978795935827851693531214131056216234759733575912544872816800604411339915666390353126781527507014453744592349742065739429786331206910331503523128456012270835043341599962157503513919289404044392737760504051318540795721059491550486729594610625638860079210829672068163736601917838772871443074453366038796044088559659603474286488512322953419567555217600664040010023439275817626861849266575693521041536165244567668986715030460577525099655318189027492217113197051960214492842928258304700926977726768723988502519715567805504304075302292810521336110057056248043353291485877424155008233619506762508491092150462415205878978498124262622122637484617637909174600922632665244327531976066865549881563441096197924919217236241512831165136246469431265645306392044826165034417206717121587944045652362659650201834720154796761909669024002136367600968819388225815728294114988311186185725451860936643975896107803743015225866385147435635029591319924145145955021885283989669985547666704939903210694032367333828965163958178152405335275107056134872312041978183444400361068412372222052590407209066428238082176665657910206590681298424206470861528804970169124223980060955888602251714747081111048465029299288632407440712034297622349469910423085792306311725038811822835292765749883021171756300606023013360469460226483362456193300719661586870226877146852116755479720842884115231663546811186604781554766954843550442084263202807601496313681781899935901522058406435042496623816386074442147101012685250906379210124814161000686946624586889482065362866279336052517170167455297227398927276029023048402542747267948889206308613698998654789422198177235255916617793359217992110456328405558403346877318551723179961478433242367917272476642558373943580894645875417691825032844575249378025249263261482721562981072658992621565918002203588053598161426810644347712228932540405945288376875534894718897202121470997143559487681405053631033652068667164519566932249290372313173064223461439233514634643529567095793793685636515273750101867821508511351952503089806918333296491617953430331685286679568938012623097681669456469417475258193857997441715955634848855379134271106354169877824424281068472206373209158303137039697679665949448801930135144075344134274147028918948260347309797918792373983658635851306294655285438065886786705766167959186123313358185928732037690458041468176863303408309513054794474769979301022009896436894146966883083052758512287283506524515063721373068736889589561408569757247651234313164344832390007448897541937797912565284060765733571876616035381077996211602350716608719295839831856919528997942048828345685235158706831012216765407368572388092175608177905374308112816757449223771269218181724405803237835017656236727538179964520182112410262996310597487270768905845152838183945518549346787593544745958234893477482319100514894798928508077137177897848706316370690576363280226441082818946247579576089069918772987713572334568706215997688585760825125113013597018017623727888475183964474412109724828827969563777007426263008258048747142374302213163107461706713355624416449295830655702796047575512830029954530795231833539455506177457676538120096069789164434889581155542884246699877043104548978920755203538588399529125022096429308837499817489756279348295365885837318955873037334097934479209256917109276731594916558943490227882337645166324561011548578549273565284022992964776296992208606280809613781517496237450430620304253138570997205241510557112727779945224658268038317057372803028457262811581022839072980335881244490324093441167988244425242951189762424780888401294197005395074998480885483865464797456594683891792971071979838526003482429913763540057820181884041095111050021950692406398548662329236382886853509235766574376356215476708519264671016447216695469528225099038931483038085334907813585752392022895257233571278282624938258164765422317113098611874202851622265052787644493301422670882045081145407653763102187947295809337772143330931815327962741012406750707064959784716140703879574631212234929415351955438113257710593007372409144859102986270731794596309508391192666507225536746743518780803154699579225617304113343192508299484198019746428556961168275844949347054717912857753441156367537832916100648445765197362300284951292842616646597946486702682985178765920143373060518121969256326761106414879799785763435744599117154145289136037650866661479511458340544482869619067847924349300140857632166605823742835768982784750747285457016718368441253382141018282537321721985486034095362628975672233092233696491503496693956436317168614968863166081775087862852507782151344200663339901625222350244003578796959757458213802593255292657341722045209418051800674105357026726607798914540312957910667924204745336751578292493321668738984548902400175597685868784121365337909574466846093234797140849294775209414479657800550276529644819770103801675934712837661797312456390758900912088338375620987399335173078439961037328469920545236866237449154333876825729448420209329372401490945797890501366387019298071533647758077523879789259436208904566383094465263968380202077947344865487530328091544771941315184518332565258804797072374557208033568544597576029655477668472671029747916361106864601303691267249734014218983978357309264462093435760674965576177541712947777874979361648954125961141280301027522291744814016502919126433362910786315242858666304954775324358429928784954499002726602830465368548598607651184697639580637145335575233899995992463535561203510972197107928678038218722203822327319056884901753075643454176519562405047424678194713411025358259938037505773196969220412607890299136735446148282934020514483315988902195701503814251054295856386471396898605232634660075716080503218746845726116279067333451395164119480251898686913717513380463750004597322847225702290959035181369407849176652605714312831959457624789763838179371726744092741657582376468419874233066161767410809618576688865257053974584762900017905708288793849706738983918777761523914581162948877051685554719492876833064842127292545068891115481487855130614609838904508799965461484328892659428182301183954867786149069138242015970707709584342185161655938694628497482351993508373499102693132905373314252493528205756418340091022397932515774930020076671486793547231401773971611004148918299586848949442542264222028607267423757302211197363592052618101543759333601991595811389121034267010723242843560093417166074085406844463455619337940262275176553764466134415778594803070936831201774318989860533061917056891831824698186502152918156524007669004670282372292584618013501328667696067347827098660079939436943917742251590921331657191114469019665851056153913743853113099558191132980665068129185200973023828018622974081328119085858791755408374964546759429330361557863056276769646324693872332458251880962641503130753106840351022776815282373980542668447966537534563024592367753235486620139511884630647095486193262699704376714805951258790782328134314333330436000382115676013349525806981704909743890116388828103936541817401349654850489554288569615270094458490242898846890956067662069213700829828481840654820203935387747874276560093771604724365281087671373574839104649505414000029167621814731533519858315438604440694534201478025267517200337507964618455256411041135312728017089795414996875600350590705238658813473716949268261792977444377866422810781711236305785772113286162882791149502691239271433490589962076086091638646924125886000936030257372912339868590968147087818424776759742812040139597388322910908416961873160627785155638682343249355298891457845478893565305362244154401146316906980006115440000490842864606199852205693410181105760092093100158963139562225066002524718893507268965137913287324757062742690937265456841111092697077955700356432372245607323842650094591811864633164533881682707898627283414091287921430718955379135317971385372419828212422458252930759092265422894186945890073428701448464690007453817933073527073420597538016387610122075465254420827053992428728474556951303351826286657366812459865279810502452847094228913048130828131074127711845037600649783505091742941567931077689448000460797137055086721535962421843927582054750105456142297876219850925654156058518383801435593673507750222428991826298867449733898285010043700693565168917753019488925700346236139141636047213630948280727803824445382009653926380066234203140353562058171602376182921992290495272429164355886566435000462095246136008635062174303043843297516625466342323989801039259145283367722828126155517988979825356385263606518942748360868984104663063823135845947622672937326206828711418861214580711060636319542311208562319716843037404915637915248594331786971895987649980469420874942163454259526572873071151949836942047887170735875002969699448183752681439640517944168488556272175512389810442966273639822801201119127832220483555718118088825585637906487937390289996201229845516988142315078245603482142680583791263015448333850817351071277706419772068593766447079690700335664447455180052543394168546975484763241163016299237221812522170727400674340206612332211447942178928828797519453728149809628742645351603384603960019530825567379018185021251319301628314059966903590988050301886939160827156607102830368241932148697874366484127869461043178052791565809223558525242186450122647520905299266977067491384973687714914535843354967299866393939771502224594384924104022135713683536367751697134742156323770284638385976778540868934525195978346434892326493880188183366788689048036596777953503458925368620947653301453755847524794086372127574909451644010940854867432356943412811089077995872568270207589396874102143061792522315371027654530409487698415893827981826628270521833003965080564737674573041075116752698126363134232458808229230319686010549030801848208154215401008530815832191605307784233826532484733888681069351703893222272617844097991421472056622384798666276054516667452542001346124891611396275505061353159645249213204446054036840147045843426673985996005704471921197671316777416708803405964405935123381864399752467845905447514049054628753688234770188012875909956448347750176436963091101637694987737786078205603408679788878250117242931679942569454834357215859235311169198925962050825295874938551141039909684984906763670003221481492759554437695597974085297938568396974010166552293172264367974291313172151723869732688611633467846321769670272434465901949954304817791295797648432816162849182382912207670505519315925268300545202643885024164112425509324160635972609943504681210333026023144788452377984450927882884266973812854334017189113256095593655104536870534892931937625406847688767024344814128822167315046283504743797065907909240510844702822084480367693846671462181216430941718003150340749222431811964729239780371099589733006348515092298161391994800058316636045042863754839651729900859285750391597566043745475774729202777495587883692831768540837636841237564837702724821108344863328696571549296721317987153873964532411536613717908289960055824969402156159154691545619970288307824257051318641527618349691486093963293281277922234183281037494087476760863718707182905239698679309203478829330079239756439850410086333120176124275084641371452880803248865551745226705892419231597565368519362696527503122939381467617327812955027193180069802917942932263312274975175732952298879810750422930390692746232836214843209248614523663623780626779931142970285655192287647697506669113110568286721645899064547742616135373635328785520744181248348035007473794926629575725687529774950507992621697419123782613195111445862552161268356575818108847897574535369736658489452904773459336272199856325272063991752988895780513099975674016424805025616488305731686652209419448153868116680652190646184526736870599873404057700628188841741099832611113479742974093120673839819306309219698544835198664579715475756535453017452212473396684528456163660942159303477478407500993424895090227635616675757711272760178979717111267047969866433006597846172328897457889391814293834858927035277364430873737934580672261197396951535104673714291453069174039191781131936195942799660434731995018546969770042465173175123348131183543544472667296340447322726094470937981686948572894528406642555924659449795678206262116900303152363515231674477084732213514454010134797435203353790981378556320458037878848973751054669215840610751982932751494042573526219760753742015745682413322389770268123732603503435132823687103623945179778842389321367197522365479722949922370600102074588070213943820024895559549691105662614268661142002189717943688044011245287644439611514844171462685445440001108990790109067213335480883058636692572996601901812121975391919547041226593903666978046426320914732310508319492935878635003257116903509468108629172450344933514471836089615416362658103072661757295749824430341837364020241013716017927100180899406152190861454064788323668250099850007677066735460289653594729820403759757461899792638079221001352495621639754868538327587691289797310761109335486095986389357320226758811376343404690369295865522101802390442349346595312189977441309935566675613326380582092286212609984657182584716854101929600376666174443394808983485762231035037103272736130145949204701214008063829133975432688008005753681407447557378496070136406873353717932360500934902365868259971545510544389502189566744976183017158737266377094147848330121526696586604366996990234607764545332952650937616142223961793516502873528028092568403267980466536796147387301780538808232113083141004503611233201868582552665506318187912074640475928235299104534525892510191559793724666657640196908116422966354934908280786933839222925425661211359379285127062219119507233476916276512980972040930673930385335050636538994139787291912100584947624590566877214738167423991719650028351184498098888353969188794528339013287629807175141092631084568890104815139095117779578481970787193050277340746180916760766732493210998570506489092733040715395965102464296601653136480433940619300366901870612196095296828382539700106095180480159396562237928531668982862509038459722518563657721225948970598074204112373145763633535706526036118017994783583094840420030208070208069936749083583227909128072787089802622970520693188359733810767648648186565795375774009201808543345286262776302873626060762120025143242775506732958457615529989908587218469298679311092717390801233352655358725719159824198165139907654839796307752048075541349604191286929693472290425256720437946703609448237242988555903283283514845395568555356241338877341397205003014753188309301895387389133006391602513389381400418805012645519247641096045386297646992118632982037004836862178328332192181928855043552722524331891877353885316329253371641294077876186979657160567501509920758406326432707159518301717277133568272596853532292493937699279109496794462147428242449435640839107457502067195723142503218168817279036936651744574633853601237334498849662322281139680486841739889880627190315248800218039335527232638457905859510364517794597258333471893172806829691999436944001617973759653489374357285420678534000898302041134270208441792791108340282525342758925518268239178493388027506726804422597433955739040203571547375324992969071221350330408813183918761955107605060585518261718761162500529444214848278530292270068386882206856973520767354590948346129241592517342153433962519405723223396817808742504651264482995868530737884133485622689460552546476268323820316023520191476771770702032137195761277103227836401773388575816111261594652574410146455726823404984837886387723600663443954100027365325515159296098027891257043638349534759407039729037533650990451993348531022568775861516610178078250116256437902218923993535958586340044741561938564212549080354895679993138080591460964872297199286479058560356430531730963376371452480457068904577343295086074618409711751226012526179540848470251920025045680094674308378750782006165822417086797080005720199644027454137580516550768263881927545899171131952719133228320974022648908664347702706859732327795447642051450943208274401284972767569607451045952821837180982067511164037604644231702355911676071181664300130121711387755286803196269828580128757052372345936946383593699119866496009891370094745617933366813237339642214121157626190898875643262221538714771948920662855982399106174560541745296519020523731568302381574129427930907040181446152684189439404979925112868280737214135838649705569291634721673675308879797340176485947352272449946979393192604125851337412208604405177269453983959430457474849944729048124523222019325289142410142892027944299187265321325798845714869549835850756278744597360598403071788233902960439067649829978736420655805105369559884285998543560293651792435086980097934219703780330081230150859635686624378833294891264208450844587002067850696437987404180074062854817518118442319788412649293636760647502921557711727628876654286007755936952817027962389525000292797179538818719476675917528941638160532720975476780641088741595486600176118210097895725176981690836826827611466797034170532183786937859037456300766373389643011988593516148858312744251028562893613570212723785193404299437972032376943053124107853146119438446482732745567094686303483081867031796904022353618233203939204916974472755659389727794447653787943414639880310281768914134023021899483853776837795809851759318880606002218654078592903351521784394817982160138368302732298908958242429174387027479231713710070784844547266728642702208710762466665697030422851954933609951940076880700359388811847927086672018680487860591334352113898645785669336277081441808656220907940866026524264056364528770185156817213023517163159558674327280320391410763936941478800325433314354255592551597136834986916987986699975676415572819613448387056296691529065900691428799359266206146283898645793985175901684872173814501709776728579711901624040365073678119671411358388749937463986761427369606782007192677092129806947793293851906343303565103680874209087928759546032001329055837150702922346310527845190127446995646498606826160692832855637912671879107527682485304563915415442265344516019563983422109380005520749890963939586088945798672138330399274827110046299629838310937735542045891974629930033905595219344434834536657509218139711005272732146947861743201728888515215964308620802876115948418436041249496545989798872561426667494356242117915554316487341021878610152409504728583426077017906297188303161579007025655029530189359521908721845638184643398311802154791266176759333486222263591020992246184280143482587966285121732312233119047562459899719417420588345026577942798087014105496285626259654205236054178585962990664488225490784078765603427588706103805030823529689013777244272874920582962316838909244701872869484824853641622167758356319029273290733179787823170801404261564222392473619675087754666376355767444187471908281960365118441924557147109110303833181623593669295513779873919346909598467687239887620263190197299392991433180389769923982306699839306667326012455576438313029498080383018328724748363368718199593859908699072059885060946386688787672665274969817178426172753949084253235652003349547928549821524270748859427542729434537394949989786144096375192392297953558125117170234411984329494546821815748666754449390959310627362846690136500507384169357179559557855862407941405138374198039259265579455690710708439705646109618992853732379070754133930814849358833419443327671903372033013269373423933575834172590584711366939391673343466233360579773313367914432266468114304343729477031083131751892497642754978132113478065707492629688476815898887880119450470994874419530879131031374383514602028915522804283661422386772972400559029041641391688860377456723865467310244838442674660926652865280220736211991433566033078143566736765141751049381622462586940475184525367683798674679510333096284021158118321531427634513193545070047805352406478228191575471091082106247410277765811500512436037930298165472166490320727640793591071801460549031925985487662328241791672997306796268251917854001966870673647016522261459324514091913475956325432143073632707604588500730991565295419113096505206766337070839376195046248473401866885884522240521485625730587912773101899149020871236015663917560302894767274350577820837431745511762739926748791216402529044435461686766826179673428074575643460208810556988139334739544829989859254218408059364943276629151339107850697816171335371752398338895184985081376143917856330099918813909120063830148659032319169186316126336419099049682934736745322934733976757070629868709433938722276391840846687213790869419551281618320855028338802006299598367472005691314059434975409460687071064613727647136513406562196264259072859281487180854566326708372005518474213475244009175927577755774143760914194063013652205361067589729808776346936364366503120169883242759340828446207015811928994785218683394648233946713616183705000133972988508803918422261512657319260866034064367109774086405968951712375695971853869614268015125211521286959471866052450186580621363957077644626930031305477593033143061394375995619483524535963533007943832945728535106314554560050461643546435007978486613699896181708914537053667768990502445548698747142467446749824413622097285238721362559544347918168031856362095253657316573872105558792930285146735987042633403555725329803212246701465631043072237998004563975480013882179162946959683631020497041302635899804476213229852248494401422278696865710316958648974570286998536024822265030036470013970923721021706253504454373431496148739724431210834517413310258115508329821645137542280365476162654142895173293047436033755461337614707165017207419347161189703443332227216158924033196950253947509431110688461358609579698676298908368975715473074149026387536442630163544223379803761873491543378342916539625081477525222891338309183347823690152177328516006613842791214615048934579962724649991737830110306286154423656648333909401809751897775247525423025531214785070789616942526754195861349924362656778686984951282582708751626006744373946946602871586035614793537896820408235517308822606998070581291660407768399575919295803795153225551551894604502482296143055372478337118316090596801701120507080096326833186611317724590006492813733792541013684108636810325731667682927555656967210234571054363262514866892728453840654305335567630809709333794363406312033471788515646485418301273692244099369761393524939161487767640767535710709850248887037553810887005922338211875286832192253077287695096599176357187318499845892601652898506777558758153548750079375099393296089179363401986898626125368597496330729853562263885321328168668409839752638401292780999986437955114698818140635259319126121221716562449086096854557193814639034990035765295925590970746780190379935112556921815095752148300068006679693595301859176593548889652925487485082357437628576010029672114200514533921345044192532170004370102065962762405650603532482875425172583927542717184229799629857684991968614768915565145471651505876616672516375668243866529362707569579553823975660428413992433565698764557734666892136723672312401425576123154396879056989878289414855737269655068293771111190479469832756299905423551678125238416395632059132668846392993453631185971100562896834459285793619530747590240754295876261467409478698842218067812214019553525922267350108113410115863983472116240420514388759490140048838349819532798591066907483814009892259916699486364693009390846192210971439307357843385530053114772431498013844428779532369101074791552165394272415803428940778593533010407409063719310623556783450201404798045027518315621119415690049593358114190543864087057515035686092239964317906429872652520025541899467767168423651930023975665448574233795124839102961268212161251977177526397045102286513240640713721077818216386272504335122909568829832729658556400963187892112629844851683759910298167997317654397180034589667184991303344241334223898632495691211645711057643874481162914801863305092791624927279859718917400258036354247507665950856365851366792012497059591823008324580295082335921179994215277210147337565033713828417473126468686339630007820339848509354829743072559070293624104407041051757136118345968812561241274487367952835694618086393420315072386995384872726207854927765171024932676621959618012079617892314051118000188907186080619713656367114792087976390655387192474727090192218139508252027267170830491830215496995846113792910294239535312683482672275973017661287180233565428903635011184280685306282717005280799386641346991950665294673940303000941418967332048730287602702878533966604829809034934880274818039901006087899711276724072146236065088895218990018525014175880437835014313054724831955243653844030358523562194169515491561275732758766796424614196211916413977110730154239774888411005270870538004863082436216786972022300955952112828826351168442143857805977754807037616393807362886728210110428572039940733471682192641184311131115826342327801386492289965591480941000670333069588447393991024193702478371761516532660823618535215505139902250192776963329235578769638935065966546938590810828441975018492513472092461995725714302700745721353471260332537535530969522757900390309988048486375997574347506574307877051186294971808315502422936836844438689549378497415159835382836783685674997190038207966759828086483361058231128504492879513326311252812300015574880143791359233216355219886128065996671372931070395913472402035992067096722878415007464034999136945663958600476166763535606626675214425062071694923859763546034018419695977090632745577674982486357530900579719798860311398194175147686722509000067675013017967532175806418512003893220911137096593526385392061550598391837186056844875107354133007525713830593139808308494867627238594198992122964720947735937575156721034976932985136657518471847929396752622988508346025313661539546764101399611205743148460121751077153964045484654264713914181280187674016227420829364242350790106563542111752790436202937036527985217296650795795120609121265989346198293998751765430424179139376459426209379899751788827900807663890415855672547986317073192264617436874364625103387281259899770642011010918160030302805082097034066390736361502227764629929865766772326039167914243913229938114236707498902763436421843299052389983108746002456543099066594279964341792675347025751024841049073265904922247325049016879418382013219944523213292918487224734249944419926024884058887755552354306440344410561677124720514191347209819698515416454134381139124237993902119014870387671747921778515524998071875047782238748332036425160079450374192070974834289046412703646022407942212067431713429795262134604887849704722761928402808810143824634744339691645153671807964998166091465285139164874589622541610359548514045138601805400265803524119931410178468670284909851265666797406840267899722397992880360068643139053505079995543772478096613873245623001398084263583191585837494650016127675889720668188341891554022235304772967543811184968668880963008858595589814625360305339636637912886263635305386526454927246629555020704064141181209649646468212657584298831048359582883388578887502418186980902253294421783161993683588915331272715726677828699692458816311737069319373501610278253151188281081930026274010335697273732102150418297726188102123340773046468610532506368120042811807820404426543655589868937893643852570804903530222683358691892903837616439277816589249528896807441372331526581784930369400206686782267525746482879802872268841447875537828483565662408155080693390857653212658907327947045635133259081537476445015286150768375616833105173935435820218250986122177546795368702334430801539175101238788551601422177977540414502495319128837561101632254593290210153241266711147186126784687211014276687063647427643621580497491511147385551544341204596250396990086850597848968018961004150026561085244625965611134980813621259362860596392008982307533015523942533966339922359291219013749881670800345147108834062584482810298785032965864442689282097143304088052270141415456300794115946849112609197924705739071338573440560711621520274986079107587453219735302884578662635278119303269823437597367098184885671168912106188869206504310093547998802533649191534728169721971390378177259006016499114578302455277058714756524996387734097005773139233244067934289957021075357290246858858265448382120605944367963504281592377622223260967263344941385006432096099345453473883623685257318776533231730920337657027844827794992343970804016357406310374944837809914690088944150933138577313874910790636680159519316998387088673551615756550606735540410953182346886876174728333038401493647436733389238727777095534696795869376513116790239728825441648068154095236511840981271827052430897949040445683467949772777180493551387389639304135359408477204350238275291540562603053544627715533830446167060888170355161775291677899270807538719040835960962698430366636674341927401955111076944623881250216622840094785325773188270795254998264438776256898158677734142822388420598505299257608111678515750308985739620201142926266278624204854278283109208612754684916790712572953485669171484164375309856265713403117879977668210495569290961189345254016063530825330715907889740919643627652073001382065478088089860427983243007428854057718655710378609919161842535043667302074277540595470572266505248522589488772993797823747584689243850923908148347173796155442533020376003627495915267609023074612374031512960059985883081286864266049331151663501331650169962353034778658545922063226088631588882607723721115677235049955825493089318993164834045415502850159720728596002918841284136671089870290473816832132052202308166947466316617461640339045975289780751278486236849711629014122997361084752218025168329802851598274369313461509164206803188959713212648016128691634707212115219339460553858779238496574388619294488429585556709280408150001821916350867964973530917979574840559909680052177769155812116751191672249253191235549676244405087014048036367834291553505571974777321451478230452402094939353408756171922872531062033201262593496747717724946586652765299893364834578245090499581824448805093768843571397936055784104008268340537097616905666836091228621977403387719795386490341540501206652288020048167223484485227424264921248214272055695147378494237411601211890528751241228343994145984707784410846392591864068065717740076156637321430242710930185494396883674138182052549769793215469612838138490905279899360007967862862732359088685092843521435293303848934932356419471232249328118651873763348034710890231707212243789682717232202350558046311269955533496131104906348638554418405040343378220979056660166729249706406793470096544338921358413020208222501933551280809386727276479305507675832592754441298716632382302302712739295762964858043735389692645821160678129188269902787587127095770278122820275488501087518836051856119784481719787502146703654032149105751361192976859510104058764514957387007218041500323780975409382689251986300012369036897895059245258411516868933213655708246092410693717787250740108187507853753875821318761147516193658824874559176672740298575316275068162105520833170663806085777617336983846869551463935169040723829509066239570436787034344746447927475141825486518926506991688336598640145125892574779884660618581102703297106746585320192850663040767510052984067067307398128413993206883680911414809865417027553259598135405671214363274955566467537405962156810320173419995740957412314969852118903587122820304416194485113382559745609442093581055736075227327732336499102547145100345480475623303792214375250918632110699842638789537721153319079924714407723827556015263896494289818786647093989844522799481479071462323217030014623657656380211245005289899227723083413993722548180895942297826223260811408846774133465666607348246592581552536558631090127510860055609346712409792754003617315288564516987914087301682989211787468618824639120577364741220677327008414572889318079207607239801423702599563598854670500684534357843384782084124023877463360152894139884179445267705030396303808590605282181915458273410118315480580149717007076959585289406197046958505912809642017027150941223136027838244014405204497301483289796255233559813065327568184539278297492342372074442110533114151009781074890425008185057832310971477954438791252516742389035130683112531628258145699480131125593442915114681106506602510956463282979655456578716042101888869314248382895144723682596154016553306171635977104693759063997602154652338531267281299761185385865941803739828322381130511383171442488296062050843249578989305415346399064720378797434900041957687524994772563372796372796673069350591625001890023911452250078283968597887819760120359580697941790440079993051110646453877942984348097179934586713288351142723773033738161916155685314815287872957731180957491589000544532746174961622421933568846374258142465864602857557450908012333747292698557382877599856828411208405916084335015473658468416455132554728448411915043284189336422597956449574989388164649267524269997872619948826720214330213059864503600238505961274058390505779528526063159148552445252400115552620531708919460997183380967963949250095154600202759088086425320624982188411497588987209663573071258172564891775418850662318736519715321080859420037703745400592975646378054729490054285004852529551923571654334336996534423608733208843978166394416702922056514243180840071393403323555214884168578475023537077129223090485097263527508282453308287160121361730432902676963461317216593692036575240876199649881354743565423820960648275298374011836928100812431451044433719606452387487463667603938654265203327459763941050857897161817069638957978150223967378130669758131562208571705634213044026701225769007375946689597768324896635476776928535875664501164196012246151048048022189959357900257212348855221646565397434000598853338698203008740691138386956315600425657506545716490706662651918995332343410755411926406019174425194656079900921919730302552363438093539432150377972829241378965719971654151518430544964622785852548048622448875874125051439632475285861080112614964801877588979762434597171066325332511821840086915700902242521375084137472336096323796528646274488839324533482582975650503867536671434604315328929816272796264943868203865391045512799055266781176237557931766937141564407896698964281612464825828759163497091170275961582237112505929289459428943351790937709656775588858021292837154322146383702916275827851056198381978994014119096487722504551271505357604186833493960490390349884335109922158474698667922861171171751020854565339821659607504390931431633960129004246009553617529898329870256683191600521645082608010142193387325476329947732073181867998208607262005806390117631736941136202134432941989921923429679761240585151788927174249343525257493955352797363998450710794728622112119849771903545245018674938178990959366127809895203599272637933588794140142439774273779457108918856239885002768278588497976057096714103821563664977774180610162413620829476538878478232774536439075506844871611512810182269755788796644778439678285566151818260379658791439158093313231537374348463625877229586829027673457168381118923964716438303732425474272410581641660917806373972007944183434682382148433678026439261699586306192031734761261228611110699573399529196928380629863483132324275423874413444710299485994266464030439495397916672441348976745438300857953485801769033820265250971900238800828416890807690156554923364928891760933347582028768811219896532679771135454412391613062851022947327882227104119706790515537139338457091812429968842691867802248962903885943567525475383575907685715303692829688213416795785203119183116612696116845285893433396447795709845542449698063966459283080203047858096796679713729831843186704493924567465113411305369408295460724101201203520657377599139373058430654318109691301812187201660619996150456699170536294290222385953720628957129830548421353466639319215215838388155551406117201488725190347313892851198327962797990349059237155078685148277164318276671858330455449290308510079437199036105527976710759356699983473148910372199108060713234252964164019010887642259467654639593430850316297019374411188696964140075369926224391501033756607389796609150717358531631985796748357004622687098944955156913462971116357793480571452930014283771340013637367532122577999448068607933401845340954130564956582266881086298101417869748743857295242825098739621463418942487913583106616657216043672883584674349797353750601170682834470716554396956449349147580626601940538462348851061041498151057692834858989864120772951388399879173584490431128926580299160216481448308056595877956275720531311087451206293043036861855943394684271752267962102452233726653914332586865927243860569973968489414805393237610826724704709917725791664927307906188212999429306027313884191877879535464956206893468304596106151719605960269039061755972951228404308101958148107254080924121501400975279220585839809815120458250742820024723751555680401567279930879919992454808677535284552434708813609640281522503695689685905462440202911595386999352360853142114961555609302403783483904962568681134593598612229170564025788152468265759772651087322363285028637232037813423081847678032612794218487764459843238242812927097140883122464071467845212650779260855298770717768925107339247505494476839207834904863539743697584969295903622338257213858146870379516846410797342341061818172278948517271083280529546330267827031826673673330994888898070266566970269943461666739699571870122119435281479942105870963083947352636433273567116489931278140588891862374729693397187566237586482210719878009393462641894448046042245357224756710204103739612207225823646178671747932803669188422245233862249232097449627051326151883774471490313045076163472482485448205456498878729081224639578945454509575996798407646770312073876052388683584686023824972985049699612869650459350689680285223367517384824339194328779003051496864450580475465696690223154712239432789141811950938354776841884552500641304663282478050567340609676272640124771896020575980450193898532808174021375163522754134394627624848319179015249315380523725897336163106031678587642480718467546040611967177127234328120384693245068108898230646484525246868068727763893855633310145192103618305357772326838387612074969003465236263315947606788771701772100957561253933369087813341964032731970627585157162413619841574558020392493963104372413375034067927759200188017674563406932259692413650545941609417448461606897079133793944914709876197100272590780825869515071262424784598804439216537954885159724836293938363108332561759968614171399031854945475498102581570757901654675371932783480647660266736356091742165748687503813094145498300713399713972584001133371209203785423535340324363891874652271210309810252380169832396049728927382714670599691682031725049377911522604624838435385827024693828308349615794763902483436627369002260655993823174366994299074502298847319464388252036123004487319591427938593705187726846794229858833242810190696634473275548407207244704058206798085551046375867302262588484803863382020472565360689767340124925680936787275557622500035918507021875594915324799692440313005278653573009081302227692517168493941917863465052527360027310613645724782147498870546823171391137014448210389227314833245347369214372032155536925623441000253148722052580180498194129840030817662716163792039457321167444606912097212615027271080479130755957384854428171428359305250689455808219509810853018171835866449208212017301519843062012929454517977694223747603995961698902782025816822411254393330539227403062863971961183551046074330696887793718971156061985749612509684550232727296554025629212085278154080137356075120078108823720296294378084556624575040857728229884466799913607718694987118102510862684892351718293351281814055415204683954180575907942399504684824912789276216645854411663985081429495632075625932709262121821226138010644114452730106438684308970847016473403063064866499746957942294268423973125651535548540150485832205711689599834197694984885818279546330509224913459346957041867146910134859909159579586416775266511924550048459285308548829993988662596723714652527620098799260312193540912973110658676011341895354019197918200792052542288667940682159577010991482059093406244721221725002210675277822747054853655633360127970365466854307762402971972595325662998254986772205120682476426611541888701568705770579606969291020981578463417902903312475706067805099822258566343295279020842398917672537664157339651279341170119985604349383559733136761752655962190261157929772433524136373671624731970440861472362190415762513355472194837041903791138201731542735280183382150647077919566465037171357007614666313029121330425958056003458608192005814265047130817472413818301404064376274994076920560215926424880480526592714493131604494874901969596857229827903151010121302638994908397131751632783824199149402196926270869071275320545695451039964875388305228537779609972250688649253411177052554208406209365831113104916009921566911903340947750414649067759143544050037990640866655399644793569461218049446494310227720047747768938009124556373884134077814433455230733177269258834910675485476077215959471017708849039963202033529896322977979275966382950630470528007732430994893750560474146881979705988433792475838200801030257387299571893680895809431599991810096860598247401920096128658511009428067572656729586092242347112162541405112597327804452546143749645349405296343398520957777669788981950918231970784266029936935950719238878518708571008087999609674612273531522209729083823640382527238696161557315645039960076009224994656670806947614679224847189422202641859987192344423251437612115474234014435229587967302808224064896843233361155059860678691055876484054513309950525653750505044588145319716496452997427430335771359254430593641989096643641169016294746075517479095920103462119150817621135075038841088631133807135434078517020625974607230417852190070828914424312902233355284483334532540238579902966002399086170374626741656007043943340483195079965234340100443222174832532177928814419496965777959396814979313687007209622355067220418837878249652495477713942604327723691139230253747617076075488803655949721104104648550238274771683788824129242439863063757558562361288946717345362799720541420440820574124185370720143409006889063383687464800132221000773312135972701896588613990760313821645788807996046506360613822866840615861385340476629003616075698843646213817617641923030255921528395455053925929616999759274320906649329121486391787108339827626431341824501094760917078953822863408371067681334686885437286381386076254465406322713841720051548900999148192798167134351166641555256363598472662499090761854852545107227349146213595476613966878493331964052450456518352910030350288689050984021017712242320048858295359792087151254253971711750175108644143515882383444037516448439384836482494007505375608997413896184842374922098229581028624209776377851741417246184356481237837181540214676034695045620714651643680820407743373268942890322471928969215099074754641009331279427879844251764663603989178173556822371465875943381862079574236308417073333425542327270323481838037124123089391860662325717898343573183392731333524348184854927754548431034913035719071233707349225074551289748759550847719521056227243303391239571420245988127105711456344392007452844090636324093773663385099915820811641044509509562168508077238485715351389328494687188745206694464930212035129505057024277171172646991808530638350884161570257395597363730138768025035079162873286794404816200584431552534510538279537276332394661401218026691330612913941695356133910609665014394908178638653058770324237387567033176379613762639310959570282488414327452360265037088850789346377066876047140451243446326578228328662417865217479034648049558129771842099310664600652817107948937785088545762508645579529042836326568235666254437612445562718496273051065707549761490336005567978240123545003988695990469418645811752308392734792598020095377537468981567264136730934244964718935132685439572529764401674611961947493956509388731953265134005363336090622611631737100461240220444061445435807171844576190246821291615004338132306435336705849253155205692022736810219286896615368587590459746556594911092913741069626663855070804903817645205741593056140234255678487038717792988351960553915611788211484211748166074545401148465985950176352394883975097639679229647754103396568733482113064772750446892998938900113566498299222924616078247898094722177352092245729044283516558017783793410218012226592609098462120758245511581083907408674067504528944150370914720099270660002015850652727450387394633748573243079766407213475539117086278307193342767722487064963293694406071780561362139130637184064482971981861181457692193293040493232917633138885821926651926744940433464607796786329709505838495230874658083809644684474754442836810150952184113458878580891258298042460916259565886277109557390952485142239146612333134150946811101244725517577777380098842198882341340884781993671461297534876932458281590827631987250276660002115404709301337267710026744694225493987083664158195828984786986618663591658267644340716665075204108453991427481376133576844561588209787798935029452310417498549979057884774750253684681751335581881577472585572151173868357382869524664788838030538804255390041151713237206838855115670555449160434201308615477113076515757837951079991701285617275936098760396561295259116078399192642858115951668451675495355546240416157557748630289509736933593081708570513508027595081715143150930536326884177688273411443760179928662915573378004011865986085744340769590812830084558038176775719273776701066066613906574879966324664578942535263735454918553739793554128365020850827894906289730063690658511390683971308855296784946863615948722232935651218737176175879883423616164091005225266586421217824092816032803443653872942414406872282466621273631814124826816781759291400961045376074179053112335625130169585103782740715060662293105061438383380782631689521276656497743245064994651496266032509065915227813408044491550894772481213393494183883304295495547287948666002147380008573068493965033221190407166285145387749958801900506039376262892152834667756057571872459645552365738988807306541508708383017451362773987277665481775372432884458940075307358503713342341916795930910397622034147467479673572508762555278813407577468607024099754948648733444819708213573956360623008346412289884254940063538865653144820875845776890773255274768513735736410796942075447150200449244144240866017622638609739742479976302314665761557674126955059829320050131761618146409789349474915985740784320514606074091928916864145618775742305646892608582784234919439040812890074343142327632610451455132660004634218760618544900974868275740845745050151019424006708724012739839399414691236807977528779924119329270689999956625428539904288152945716116935271128640056297326780904076730716735704617920463920543878186161870383018558426430045807021106128128622095909452035728368523987143142499588820601930731722493208628894127363794874302239402171262814113946989781837486979083243557665008977098525239007651861547193327708088752590500482247993525093124331428115020610437335051393485816717892216051690393685178115490731037411181768153290787011647003499217535971237828034130214267188272624232210838613116627523795692763797720069701422582222957646749483355854335232890068841318205446094311437554835563212297996283436336823217588348448144215121644037815893309351421994451149847620653322513678179495558497931078987766704814158045756374741552829892156192627312898991488381593785945393504394286630675413305731905241507436719299237143120910775050875886676602993032635400387189345363033973906680045581302861163157832449391091226389123000794779896199593562233455003691505719442698786193932282358856568744426594303600418269174861841621708304719125259777174443753688619913633078179477867863275730319463378383258314648550585036633401132109908189889871528308908194327714225615038368544567279795929769140436727968954474491347523133923918127317842991462420738318400011586180097505902211848780229682969651978282476549655124012356339222972026327730899324316479730804601075173265020307581806658206783566925202185167415815740755017663496549310881637782413031374538354337184631748703237168911841136372445735394193235888987430307721430347130888859843150278573701944445947304315579004373040942505376483216275288003426577426699911675060480452116485107871411551882392056623297108531000588033916610010229461264624951036522467263848044205718913250169658968932880922620263776051872362817064520056383204983569721074926416287616244412513461046901820599437967888045420081771534962884160081460748937019769544789936411264380599631855836210530505201778314091067552429176071392781845232299953098449987022576282215220932399828288714294247371400950705798496097998492973865082283580218835535686753950034942802109007005656897757336092758650149457250639888182508301520345761976673043970156031621426085871528905974115842594561387851518474337840897388169902200976555481707560929671421246063461237558227164365328134822502483075934248784943992846437954778737377467778224761696699817763059387321458372242718726801636271006480312606848684274410207789460337126003392393842052416536653866598474850478951372971294980196044861579886260602180878191980512557245006162243414305243418062147001252433922733707555701063392419479422799521465844718081586312984778182802750487292074266044829145005231233220203225426201699074341977406640824220463740697644044227863628569931274092761219794540490007489501565490222248581795810460819804964943129826715412569769328392724991168844148863507944727248622807838905864553286041058434210390769326487640233294059166783329248054839946942167343996442100601537156154385944534294694484308379031579351032224010199896266992002100677049622047486947359126458564918080611146983739350614895280981918959544852461495423736616076424081390287429743421421669827514335155546651356544598527776710007003715867650632738624863214216550163853581224109440410971872557244829113524805311881310137467522893322444479900423815438911279808996752511356811319205886437510666248069337465915596284644756579978016557699318105866361595799811855970496823025136158805778080875008139182338877701674004998730800186743191377932906656785217977405549436066663346370625922767052762933881232956706808534569931198934472083213491565776502750633920964350145348989159364262377870036455650249704427954446985960087489656947077534913221141320073287798769507702640118349158229012254463438335136207761852294530595597966941192483083576274940918117979619648346570480204219380229335058770551638675519387984040400342384813492980957160909082478653130967672906513700160553984862428879384517226311753506249550380776156092451238007752783995818950791456268639660395119382495376779983818363300893257689665415939842906526247699639412146913956366495209522792082926522941633291802207233089338607557838243483997369906674330490282894746734919969319290623655845027810230260729220202807366967927319609100571902442671331830748430712538693054802906880699099251923851012533137951930113087922526173854080362657462854483307692010123031364271303924654046489902672667130694316205169100420876430807528238378150115587752311642884153075284802869928954560571733604184398588935717131090231095108862716065075829589099059769227227309980006678659493680429878449823135651737407469739949937260494189350702597957936185618681602453299513387135815370235283614701876974232911296230789440649087897943111490783859593520793763396104698911770031443253263288401405566156844864504343535248897642825534075696892725624625159824489755645853583911002803294126204126126483222010308482675380627835148680810423040484335125858439733783996167378490538986853297256203019192176621171613707231281139978688970746494646622307675602742559310347172529094944409416926677334930241686369723063376631338741244154384199102229384102492452869927829927814238502055922920459094410904829383007411192631087944856766279554165609477589503128077734552302790107287100453859081303519460695021939118654679805592442179076797668917236032793406337345849703101431245960926061045212121024471295341696955411900444606451743382837682149670246926931965816478519418973866630949148519192918233558451615327974162831422870452754640960384035520845264813781840006191268243598372757544451695531019935370655457943680322449877858886702582950421834664236301999400233916172141660953838525380678998127782977476817194107240786626132044018526005009765875625705519813390697281590176412661075239516955974908975174095924765935808472243413417530117257821450710339205958036826202635064481708268566942296851440560245860001850407802050090877299020544761748055386093653004342327244998269895199616340790749486443290815065276216363304871772443042575289684167121737126704823018891702992935391533230826179644346463307848141529117669190229737599748254131808349032648486870111311876501283278733849682819156617362075184401846457643299593549786975422879266245646154498223200233197585428291352404442994967095288354681770233271036543911612816162696815813203131814719456093490298429347097052364106488355740169050015179297217192112177297748364024413974556694726720840060041599043599503452692112708487939553288627274426420653894994191480250667898880303496453910121025156072724999501125862279971325257386791340134747019795855347643640307706794301375959740891385812201463501597003360460552355725886207875114882160380179707598649274371521414291486754715212187441007383513869315174251233712298747218836715430789162686076368391929596655085153809282264830695184895223952630586112131905569028450406986822797774683255795707592776164834196408668282377613912539502771898986950450040858386222405900299570650377575564949275131687052486804406137956894877892862526747658988859315270863134209926293335128681939741474090773222959528036224333037691953165247499785486393637325345323033139730932178314104478953318839410882458427967538167748923398156175673544531024055652810202376320032280502764931923830149141216013935123533380025999664023852306765911543097015868986740283146582068094987030054453422093260014798547522519105305047583596643397361253870803563849027798983503801686378772817829265943968633242572889471480066715704580287056968491083402224638396773679085422023976973648487304324574890053053073285430913974678281386706419288050683660645806774181507507412617802667980910604578962345836548674721817907499780210740861731109582962611003959685962901183374921558014107665847163071489340993614706546738594459956230285953120842448838031770172559697351623663580715646342064078855754803569132973117457337024660666345998238265586230056006207648366027799073239024215545061109021651261606147545771969021795889853712604378935004697934288570686172571405252027438697758687319159742029115821413593023429154834340938287912065919345828707679112941399988082021590075821443248963848316067473012303524355155832455878677611204698050812777102021076789198303099594618920356430771766994415174027103559283352814095992613972630538514604368545746460974494326486503363578168389051157580064922523363841709486625949333684510714036126103980166940171702745155679389795769381024012591752390334760982752758586076784754047506961624651561130778338858002566387334579156113138222635759467111884373064274853005843324874603497635658987617615054438042746094297172744545659389008296085525323195248435672823663932615940352332579288661953443979217121873203096107856630688398501992496239924593319975062040734939717145551156328056011483599307153986442374439534943906957516912615289270786418255350769682837144974075027956010925471977428463043534969833918882124277314225831278573017512868790923354191933063077454957085020656658156955531217793479921626691384931731170370002793166811561577577283167955833682514002804501191804437756537528206284617783949215593577396995625907009791594870448310897517222100136631719999349891975338870454346890356074261171551562765911961718924034772030222354054998906391276111823345053821865287970990169995957326193460778891219214380936102015362768976091606962916756634710055287494648158151707981614358492854969696814272221220251237085215646771227328367471843755330630644662351497831151999700473588280415914249820961083708350521579703501567939384027392719323491210635252975769261096569569142165021486597114952641528857240391330511784581349853883889465778397445102414464729716351656728096770063706607869345832488096467114634058020064392335844099655542564800163891985581560423891954815532736738285399999153224599198961827771141234428073328789240054166074447542030071228829359432388449097514326252170178406065796988964150443750330329993224416890244955583768901827824867844809444043933326869325964475087451450157202256197252463954041467826078374579154034891308078027658687888214151453754200295364413765863842339630186652659191771698663425885230783653222469385571509388610634536417998098067616948574813774965738479489547707002355503385001700982683566907552982965457492551588314374447279565582404278145987704423076481156844773956468204708615027478862600272805202887296896267487469044689218233679684618291621303292983421512546899573455230508105086265832484967939698365024616075542761204644637832749112827193829413212366790300527624259192379637068324447627646736120568525221768040108764907409508569347662761949194420534723155028289841431812831033833571555569885903472359530310445233268535994153168740420374979980403253205917589969869178780924931874133307789509497271368117613484990081604265949863952962022551312481402651657027250173819763142072943277499357347964176692673076014191978988594984524141457963314933443447971115356134174643979242679149915611508889335114506218475698868143815310081055532869565755808078581639568966186341314431640186927064971440177459025784358948987662409752359115842904105432801883273634346781836016651239967328627932264772462362052668566770901371377415194428044329084964286087879214037086989905365580233833438125988320678383911036331574041201675745889609048906409067917722068434587657772914039666966161217768346997387052707140556533162895420054669893444900872576232193922245676516334245348529019070947618738998733916605122491748394029150897063921639364277273108064527651544207177096190692409240319718506981914803026080053821894895340832875358264886528683503223961847422995302668070411438971888141606652933861728423168234181932036814976480088061063295840544869103328233786301500333065718611087266561688170263952205192167380844943646060933596779726350655369604731078264153023368752543045849437983612436628497740506348758065119566434026952490830138189181351512176937431077259740664020524177084957115610359108706958096844267402308196448322283167211971442305972888344035850971586045949688390766147477338956609236253165576794799513492323518902712265396162974113078453713798073214125627533473301626952491769872502527819644108581844037556221451874134085977814855965613234797040952501253774965093841919834050105435535609992242532039962367403938214269797090376086149775316528089828914127837234965862610306782544733292052785211626293630869064679592909248972406012580973963221091019327910989010841171354875912872285775412742120621607111496023070145691429549476435464236046560367649176759913212771346669214255643945942264846782133912577758827715824369820850948600761362298518947340016653762438970285833713660720274111016500251207945667413077237251780943429144474706279107896226618262817244739473603217809550659322160672689291582332834820555083574668074971337056128144554418580975144393604071781830303661293628598034021121308689739657772228988707196348427493401948609393611073783284047860498444123004645658093059133962578406859996269680141306777924997681843246395066507145458250911967522042863479514939674946548937980737226836943222656702734010514155218167474853685719668173413304605042282933943907876542794401428831958668966469828827571105670082107267311257218328044067297479310887051344653597657939937330714868363971006369126148873370587763140017515541451396763629230023723719665833401822208697160533419256219074471757054637692486587287917241053868066331815664573365555837816930257667351100229647288376941831344399306552914935599571122301336219650279348150323455582670961825267498138477801121212483446354886999391949216475249642398435787968912312981249353644184661311769509390789995923119821388739547122283970470840480795220679139324012562462095319916238100130117868922144932762553677268478299179075127963476860085011583826474013640557694918258345818493937000809636890079805123732440521727123559906864221614766714820512740595760360764580770375385217834895935149875512969671178271817453091273128473641948433508877493206037196831987462579183002146762602173626902037402893938698579051839112002465897965352081626790850824651561514309284906160047051237880193160926340187151915384576849105141944069872752555543415142900014612217591424292243823470221257788441404281537972956017404655401744552536708254472916080930684291775554733675992798327576925297755205012660262076752926216734309245412477464889857464971819773937004684209050929232927469553845053450340149084601051017912114340633057306054408927309398637375766029484376018780573287242453900098402795065908813274021697020728588305284804130506691433008674767144296452233024330001347943449068913585622760800233913945788815378045075170998483342272483151988530271222171098786152509718362856065107723735452614907362259565440576499768117192859455946150900640659920977758843173451825648588043220908105746837355611243435609195489334245355676996451223558975383422697761730774114362828822588514979164167844735843410378482685942727991290067068802432063827252047658580655665481394477244900258459963031888521509542709250047500799090634144698357825055109597682467105310801887722615881041848037835579100617935831975544565031955847176835191016052765730473223741227138408604224117573796340158267491664010313904247687136752928252999158701835955869080160922157170898685165667927166706522354133197970540648065252850757606721300762015864429373755093114177859075972295212990959492077686766367707713542403001608147575908781403903054890644006776474806820731004244823532789160720094808115647037424615166903551489927176526934545862152967697189748488674981498938018910138269637258444126260549768926181365444952494429247235473099834646609003626388394187013978512856924882713741236947601489696495697546815735482115786700548969046048367663289237038888054414208257009416606081190501330938832892730289165611720306229221078661580656073333596075029526043175230489270960514890960734451204845459383089682398632105189690957771189450966274298679007963632221426263848872668900349889015124951498662769503100591769437533090333837431697376328498990937024853888417653423748559119730720431166501923684109197516364824683005378048454404511568750073026866160388605659749851985075678333683749090170606528904200482898985099228277958346424616840553002478039639352362278316326668730672657577402448474185075695899073479289399187481379766481905852427240483193136900765809477396475985077225383120732630369682139517424279598282207994214215922633117639082857064770370890591798501395408555426491853337547973541712471418403625018386642089445122562334419569124653306546559703821153224406910643601272253369702727343735338480256887360413334201958887280767646905370669015641298653543962041213606523071873704944124230618222875180176129819627899452167194670166712057653155447212535424335339285770003859569706692807666944792325059571344773678466069685118478210208507354421729374554323011904878364736428405731266288994533695898091010647100032739197745616008501180767845439928750446240610325255460071611561530164544462595793339340963377885001663439834206340293213073819499582497167166919555984785420723378769969566468911356489185552326681665841037083502427540023963926010686529637283447095440765150998105585882040977810093973508913601214100380099363344589877024822322229353622863274445091139914906555946830174507123715166053496985123726434034260930064205523475648031586248291123812061291186944172428497469327103266626425060414954081540705867284034865498432294609061419129963516174282450497557595013760840923724013993397331605744412728767023763429635685317758912844935096278641989938738656508740792610734896154555598068591885933469404378370481433684078325145284635762275077459258938394566429031059580685045077533979636317747570042357967739000418248390030993507911664738119993517854950277556287458740437527609588598049045564892032554681679425543419264080166704654745430127115576357015547048064541102452356518595107897325708968775374848013776650168083828467416432386093979668278240583334317596251437976016082229424077710778330954312856242137453857694489515283621129479746586064068780288822706026456116800740170317938206225799243905407125327522254941664895178874922312215005246731669731805209364490929506314249230263360705634839390980184021098525407251686080343679289938713486585930242389738161305681473229726462220113454458597636031333013555767415546485720799971886954048048993913445792696871993292072753334270384736264275405474819303204062344046967859336033253390536834652712316822500195483877208902335546180693427031971676732269947021133243634207806089514272725018469053341307956298394395879819680236586100502983578895814792939384471154490500315325676338453124039329013316897834440664215295401268128838949248190195304427644502331718317215320785778687657318078531424417105725585602029217911985680029225145469184882273638917129110656576945257218632743067483669064477413637915791667895732730464152692299321414990633449040722327431307813352582165581887522506641183011649808098047227464418744719066896226674819388905028314317836410534761311113179255415346317538700566032701601633523587243162441428603859933718387329282414655941802269777139489953342561223541444178625293069175858893287629616513537827224895132025044162460266367259315981553979916006409784386791432679728847065321507685977014111278597733657076457682705742471465436424594684265763544114071125744444910371546895565753970841087272556278950684073016872651588935817408526546904627445953142556090129131181962490394310156452329052713238405620144497019539744564779972820018676362785367860633213720009670341352069096530059220103629880946399947833640068418127092277781078267645782455459424920275400820554829962010139185492931970191855092252504438569449886137819027414770375266225251298484567302977837663868092502227415042124388438784988060960387956638709003095331466556356764259624663726918557303239112540630940753893812353042219491121152252671851781603103027995531968617105482336227445728585300478286058122428866836425901766407691335371376546099479496273637408143109863731982766510009390736189311622297655238697591525759190559594237780102424362738543643334860565028638398796206964090607971485703507291180631859528946086033901259928282045745285209814927338411802415498277605915804745624667258824987365653205187972633987715590072919771803694626671872051372146019363732503055907368878428011406730900903938774130109406095976863688718450685650208521488901373306542698562798486882732217896577686976130754153724465753375802591750365964339215708635955517616714063766383815197272147388891202605882479071965731685685754641159429763645332570855938089135984769939924699615649197266591457325144653847650687163899116284023583060270954426307068044286115780087024604424192444039268039437917154662246743537725904461079287027517969478235622814110999673807924312199682639999224196381916481768672162572598801153974148629067736328246961735496076022065816908975925027711796201013834734557620663218031958461793113322571750217474258379234201817591858089810788692322895654488117697799906282766948963745870595347274131751005330176523917129975576904299061945479297971497797327326797027626331909985061431731200015526295864126486585364250425860588051122553230273090818532957697377617080584451101522428257432351684083250414687047231419958397388206081291968338500139512222487073698323363924764185441931279476115658325993137916565118717353404383819447519780812009183787438585114870989290479122162764859197718524709054649421668081639480262653648894703492424054811745097663677280286048149795887474047166109587700973169586642270581872951170767262610644253997663467857827984323378804642743531609795123495886965735715462133990950605128462680810497503802822432225540340500164894270470256932223521620871246413677427311960858909253082607610547333544960055034064942805046543642904201423924501510895946599231846652063326038047436415975029419305574207972201863778987580747840053966276386510909498377856683566522776859111868330252362172832016188426235676352344409378548467847178446961544550124012457850069953604988611971819094252260650510823235138361923865392229145737336753677316627653915505541561168955923611122750341503681786222913883548515795060264043509360934476749529973934702509433241363890050890545916154632894907677715639662111204225934499981623254948658615501834815573286962581035276356957167822564004295606479544547371690834263331980272367492920041797146973168792570309601678635264795153634046959243902325938509728717473344241873189128990714485677588856008684673550223367170420793543020760690466900047404297935626926923079272708810171119433930359928633727410634501204782881325485126578581762442131741325560104013702748153046308887921430405930594927551659139874263029535387605253873206817139092108380881699043615178792077029229916335405782692944846939039353037916643482447436830883519795978886013461469788271322524787591689105826704135124751403585757595593987040384011360284659374380404881823931973613372905894498270987198578766014288715315566557957177294496936699840174322541729468229226572692928709862808798207544990224063790412524161233796674420406719818437241346930049576280417960191055290625932759824073479343211345718601766762369081206442376449028983744168846736735816093442090096712890612501393814397248657393613461257677763171151303125128547439721925737109247481366124828282138493296812427581906636882617923246833659681305580432649949427354503800851310771921738671092123769042699740318906604826571535471103117865520369420518482619840655325204497157130863408883942631274555983877283928962203003611368301440605692509969580714447406411123443674008700234903667607468447226600243221426255933611737789959903518357897576695715088191952926023805908543932844198463136875515120494597362787530353571796177997466594358020685002931330346705132437050086317935572402659578207540284693480806180870720306214407120677066189993607066125672132912824794510164185741416318437598422347528510086610337552678867805497102388847422112752811538126055535897469444863061687551543148818819338063304354814939027251709110993254336756510838080627443492878520150340955004500121804132279844310079172658482473575412476785956656955720466814072842185200635289295559071024618183801694715569040222410770391722547835635103350616464208526206576815856722609877738586557764995478817097073172613619512268504544971152851074370191880773156454675137475134654439070591999025113889297652897940920653726663894939617545239010980818170791869579511525648110260423464085845505491182148138588704751458176330991618158697292179836182730725019880462410746420456812195427957839966435672710242722199916272282097635927884050733895507433584406957659459437742607877113766419886255709568056326689308750782915617862886796787209431403127230212969637667201183292986941343807570704198888380328767924416195816298984053202415539842247913459966002348003220644715982778392527468771262793355350051381612117908565629846969092958900545358788475306164679748581430355716674713302724616574769133586548627415739214665184009790800459107884827323864343545613190575894039226050450980382881651526873648371786480232561688948996805737177938598096228600768176938872308128078633141041345251608594561370987081304336162599380603059599382151270846115106175933435558028334071167132878726207001320995176090082957223631082242489151472576340911640849706952136288716227862665877580552540628408160565814305360701985069619650985674318885591477192496756747075905657953565048707012095848938795219538825513126035066421803297076971774062536961038852464244173421210743813289553116024573902210617930841711869706896396446007926902239526646703738782997086969502904021544969152995862024438997288136727483284080151414746344492869934883434109493842398820930858263159191898278262008109647705461868983989014621241615564107343235045076894742424181931098410534002085974904216876936329746932476896806671560691963873679594265574794068506807336189674924388198334507864501177567650594214999998432315700892495975246183698891410564259270628691715750495041306626593508193376371302615682830305995524023123669889769991670653339395943651421784117038202678380304237108520722573474295229085565061821869107054640888220511259051500951719229998574929243379281325403080769808145231667291137907927008554694749855949161086037715672816887893669044170369052111525460664547087185193795181088997123118902774277118881759551523273938541084410515198017949558516423236369584937798460586614616486607435710500630836912395744917960633031870604316932962484603717642392964728275720170607819014210686280352537548754062120644703999633751038651051525301227707153428325622652175616248797037327027265443643294242837206965903519841835671269822646649574745963739688854329661880281726197692221415455868831316713155136421792778849645281365242977024466178846399446850526939297519152315594489072191354046627365434998380848223824053890306603742792876941349488779272198447488720395905018686680980863293084383608982703978119763953590766695815736012586263501994907778116238933303387970258908560923108108029583787034237446604581432591261431583441481622200682446580190167629063749072705931979436978573084917055818437218220572348034932221395885384355023265087130081348047282671925246087346504611107748645182830301837260280910418685365226419528188745869381351787038511617376566414839506736637709374842415607104522533423122256787564621715210438385028642887648120071471637253297982688560031529262635619118701815539117939924715469811453704645443462690472363809124144368682104419856558629052605064900764493056341778818165890197984147004472312893782055931614348728970269987483946416094411800055102676271114795896443219141661048446136232857712422100669641707492727147493796884638470660482834346111714509813562130331344963142636340208535398619937451743460501798994099523592950086932460880040223031857531991077082758610217709208580778551128836614909972493708729274284345614391737570536398357022608842116862552221219852969756569665862706969457646493355039582348673891518539146652637861042563078982542360705614722410562895847609839147206447341528311975269192974127719473206535889332821321666802208317860138638182563410823487080922843089597963431145892072521734340196872406645384782507828836428839011499592493319605772692375610559026499271896050056916787753495648790478087617659134894699393983138911888998556011499642514778388383138277029326284147922817455171515441469034774600735445723119951167094499420183355358334399301572957919200920448882498356623890055751153791749708218534578889397643151297166898880795594320769736914237892506298054984324573998343608920142460152557264484161198838997094871061204574707179737579914867342890901362477309724516827379787928673944635607612905526986466020080511342546445049223691671373731710517101407975261790472300383691059914333421585994800592205419298724477360241556812942481062475178036908803884315025588807569607249568298399658042521038393809990136892759559396672080728878234555783400205047331439999694744274762742629334589759330442328989104494486474405087356939274354616133721921366225842823188366081002510612850245406309745408049506336596156344941026521379510508543635582625931346960000978644209292606092436296175329837784561848863780015495917702209122526497737228911222390835681348725568649773321479974471027000605764585775747595341498417699751154900570685460543753765031028717890634887841671274754058566039508061447901391225597357496457447548132930665881119406579745167266889965347006369561241871841776404129897430760919688896555733752926972744114662497933321219190161518032411372287307302431102971388123490932498369553411634277248527262262204433323927809827865715921786128596113189263288990334093527922091291479979285987488685599223251425563901078701025654260799825735353223715484825170153465543291454693074681780014599811999528690690048004651416065802637769730194473938025793417532041446928527046898372685235849213184474175834116053426157314569058249342296526868151299169585164685849930114344798092189934455220027891396969905906424502286060755890295237725007634219086518366910380732039600156469907118984881671583403371104442810568053327225498033380163352158760869663465578443869468802731036727821984380232793451499938363543294850037276885676793529454543341686792340239951766922449245501771120061767875483564109373586699829347200655019257914567943494501642808469239803334739166397501482791579981115884612760262759930237741582312602208333103867197802095751468248629886966453417716590892226165859675479890441081217610170767575853063839764222559622747897194221413833471248279612409287671364068006283560254829966495828429913117887122596014044744409901449560043314266631899245683152983719113683096610911838115934882727080699283944696158043828360491802303604794119076703230402484025094965826209579877876361493890083821126764459674969261272471120597293923653192190925389926874735669209855588244054403621083748174080377494815786307514441277917653534883594743527572977718479900728879397318579581256323057249457301863017896693586636171755069070998086383585933803988728732058884353334605966930644032590725590077310637574620963292723897192094434729601258564371753108247832146177438154090731276272859301756288969516317061084855559608132434767377964754331050785879257820843203100716243739893581208645369308972134161938797583929303934344891929672828386227740261195269401181669582383925378638441297903524908065736452146961090011939865329825096631217481503662790516882945894704227463201510641513329670297101453547143274639733398382892746129630954188833867086031097667082960720145453208221616398811982136552052353359220103623112404466169876328630635356983030953702413130541438853944907003171405970360494242734107281542838612320407849619795442754479413391752341557822764890705709450751337249551343011687063766334720148497689252751030275554090090723365763441550582614526306829174583187985167578237956868350535679209543232402849695445289049587938609584977834174614969223387904641608105874285686595769854744843650007390160190729826402379494898901377218597176838658718634866432164769612638242351512589452823504103122580414217816863247126669385647306200316101503750691786670948044880603766073814955495229086802365153224441154927021262767690380448102713078481337785733125617742265040855029327024748189825710714610905450392596899528308319158561162222092270928272715737523804839847582076113257547480562775631848921353019695662212099776831202196719254084576732005458248843610459087942650946378811366741954676950460383271078078676677814311860178500664317557924630657342152416476096411454777151867088144967618978359880933919933233270300150214661124738573314424470411915265909971786090990958612892029215532512440609381357749745788792839870603056090217694822776405050985344983364371071303740331369999824808740485979558646017112793516809522066830166042271874936463378781397215050280598259662108378372651063954320658475347338808571504684695824896109291730036266578510317468007002064830330910090643577309139837625324380184574595577574749461259853134880836841631281033334121539923000377451833996732568366340455072713892779055490250984813208254531421886714910185512296794597778587210962624340273233359978985719896325461875175770446142810402159418602202498848940904034756404078737192252258338635074328668133954160385010852279424052105481127332444015733821388795599766792711048166572816414696541451900566915744762174007327060754381051054908816233827451017632228929547024382271747053751694187472824377781618773409870919230096390518818093725932238926801461167741800130909689002231214143870469224997786154204489893366081707272212040028076619018796491987400683408407451590198741593377974793049768313640531973463495274766148722174517148088786772650865651066246027678739971896107377906713933533107912216757276503313022623601836649795944826203901257614238855262589841992429087555577214336330768307846800778954793565915269782692394165873226617034247123759087271161637785446334017853358604269073567951089090246990097347313869776016647463045078180979621711400417978411517898631337359367484557738721865623027806307509167384864384492271291623056393571402141154729924296873093716361104363306246107790940630873190941062798371105812201743196970285566660644153425447781893345762683126947750984899621665095351795603738520508268785207305748478970563300579117730327138007405229343297759904545078531410000142738243337919809452539580313966224499119505480628095784564872648599321189920316089457709797758823483157643874865850366635279370136418267406814275606742436646172178004158152058328110486510997942545828368614487183814410439408418542706208152083814323735917268581466807431398176217809444450344042334133216993187050507688685332235105471115857433339424025854857484260206484591911662275969814347014632307585880882598418375207015974064479003026220207456032523085829061443505452655824433607709292844223395669471485043202764716695995395253100462985920157247105773651082534500136207108727773691849764651966951915855112421293310946504870031394252063648680287477437135772612602811271604858372588414653804521245267441891295788833310898596183966252283640962584634870909307859897594800118286723532892413327912492311675356336685742273481016913243148156819939811125721059750044557165131627743141027387079764267612462597349181287886744614273639855714838387403730646089186545240163983690884105202418419316117721530758717761191558230745584339149500555404633328949343752838596902659713711147328086751242564620226895452674203354843961988428328145992954592757786761602236942406781621776581634844318774413195532660346838230205803724597522314177795708804156684524991963291708321123061567761941617887346610160555893263716370391682106055968983879017339215677657765096028598621813626104175569912816339673188817023109147489498414648760150604095460890089416393582736886097921466193569375023049587859133567397827153767551593062257048152962261823577913191073421585999121227518303289313367880048197612344813262918820633195667019733813873953922232763118491041675538934379533610229411992785134251278219763772296389338357233814699337726305856852218157474380001668095439561409833774288603315153995862309510370509773523454815179684383903727927023999007598790611341003806733784450262399337451717929786020111728301021541481058435654378423778991592950298604938547002264842570953321346736484500097260718692083009943586025473769849202856134430149926949377172356836891650283348998962979923582219589876013013202473151795395675446321349067806547817567804254780766773604404028570841612294612841524668854312290033581474585724652501241602751261210569895425797119748024776362324445458787599026571159724262735314796907808627532729659636826065274815595523353291600795965345078753427040010081975536399424303856333495508145804848499623657881266890910851378651675299241397453400303012015553863748754733231972802864544792757200580742852515694178772013194068006013977872078794403049246835865531434941727026588226236138364199655932259368411198384251420987863519115331271459346248458258990530958838669052352520688488820617841433619597201115936613495257060288156448001902578481237943525433628582084530485333071140972181491427427649243497171719759421976236194951031264799409634779155485297065335680266945429834587107679200402948309358839379255917574815905980232121844845722116321392785848338718663949952523266721629714295408687857694185757455772853297397799513782394403690489337598470851258838274013717723369748896132439066956346833812546258118794569582105490448706010835486696339939329616128374719691607580407102434958539988554653025069817360247271333497522775689214917978608979854525707831637236010398811384439798386639250642797657719709493700356117535919628681222683858303743731723367626738852026106970527501455014025258711707345448391388261567338085758372688402038848889804397020108634481354084961143712858805431086072922483811305911251657348391688930211090198782662252036528922150253610088071981245630065304923348125174598976630804367170367403723761600944710428451536111756766822218454125105031162632844825798729852922082840215547041446345048960476672760395922231637180820045885971327691189135808095036250427166197376676445365859727637888616662597513610555035811850349440380260581221269117940594381647801272737105248877642812693756247826828801234569647553028114870777965743555804417930457469379796804523732969237946068695499205282785429692085563041173624674458071784343737752170139238633311404055277310433416609014958765307633500694199326876615204302979601727294781497554436907927202439186263916544970126871188616342322936195988955196898760184270060433872897620489212865521283619483666889804255006830234223220757796199688339529235932534404245810460512814634566060766718855117686213372704258230861976967407680951737719155457215978642304650245294321193242176088012457616392028518894679733533908631017293608878531193596285811688621107224881612549973790604362727707020132154963201694568261805159283704457463842344800489506648644112055678995161667784755560962259434521688309541840138928992682409377158531873312444958340205388825519531899762953275954573745067202609662200965692277658385977489780462060133875731636005986493087621618710877029179657715871300415348266092548213159324094917148007576178465884738129877012880295328190454880034779053464518137399276671793449689753763999998828815845857332902482231654764305338413869321830508073560151923946077278354299425499437120400988155661842995959869189969812885184482149224198981309069495443293427602016635442909789405899836549743566928970249904023456837379324302776029388024375707234045089918449548068661915836736125240546701639890218524632066849314330909031954023593238599227138106793462888161695996521186777457551133058849727895571048956562550100988942667888982663400438308965954440035791350160716245298188240286886165985205233435137997544069907657747687186762964992262634676580510566380899453992453683998981100097811009292812170869097136405044797750779902604562982367319236331014047365496821065659006847981320122705756624998886650313203930775307448647323376588574462925581453741986604002109643337465882078200155527521995907249956326240937675680721916148511189030007553288729920311902156381370894372025791727699011503979173594987432203012564344852791522885291238666140848154187069189800995305852233219805781225302088191673969050057754453573136894975179075094441354580097935885906693002488468203174249470677915785279499341073744202510048811433775801719379332272927698305685751892278876967134191932961934407445101392696091815101574117710721183047284710749094871691111229008133414464154788786989523390899426638117684965182435639936135653989420637612414548991313416072039471826086656917221820351463385282881345292529709721137040340272422827966769423737559252374625179499939686721112008303504023215068847468194608028431167498728173137363469812189108896175344557320538294643911981185454722670387977635704129465933924240363771061606037519522281307627094251926794956227207913875479910406659545828930527841663623308433429080619295276468768664075561490603946216998125327406882866739774837943446780919816836749052820778196485617069328066066067403155113644493944792039932376715970639361442617344593719640030391071717970525108873621390432383321477350711074475137405555984109086092795207967224041302956881681533869575283624261469945784783997072735970048641297200074866821981612494192811205640605631748196665461247657418732698076503451895781792926573300087421203839223356463940223842334029719053113007857321761656185776927227988331223675251268964575080370407127688985851525046948994932165681518124887541821679492640922215000140741875725926005301562251899695234880603656777086893138880635215303034018541183461261376229836216173138200853077736225966401948387528212910182001429242190266335834273603164873947718016134551122876839992451659897956974170468987407517178274781628672968494508574820354195694931088531948217476018418329120411784387347885106150394572620958315366610501091882011172101937279832767210232644721176889464611410474589803189170404165647572616774777142372891226588742970414880320246513894625522095455808401139525051901718362475128297375939635727010806592102376058711261211441714149735388228972611594442555840850490290952135509602002647317166134718700561192195047450511552309483406009421638397342879389161037590968541472131810488553018428037892121912841813487771267383544072416311345315233557433037693851453912677489682144487634017127879575611299027629352294842711354240615648757423286988251088451827204035298082413292123380488352421832633622489581338050284179566556094241716847953344203867308333031530594230808342377674718104735578861031393372428542200695974153911250313717951153754444266272997155594651743607391377444031317713157339869139160601670129530644584771801201761218056925516907037516292989143158215947506889959555299935655718771002325720792098536289539855864622130952240519287951030566348811927021279490299225607686877139918915574209062873208842293595980750533780656269090257425822128025735393648043549735005525144952010574908591152350460253586883912276696454752137753417062385440098485059667325119305751020064592070043339943590150148210321508637174819194953611041211878798855648570696857277806383763614260609282961616527233012511321991638461159119785447031641464282813942996558629080274273726371771256309776994326558736967991948322157051661415314287874569068271101824481381945035476928527663493164053989041430351106350816495506628752489039335569009828093478760056657734305126549354014181701259331652588754559023766325724447328014026651878748541487597869649621442907346068369020294049586220562503703948275990462914283705795992950779984989902032669936859542133365613167131360602665632807819014884518986768449324022890289266539510710342584362395733055073258972247002676824275295954540014770255403185657480003315238864166038131550595561609433287120489490606950269524923687694038671263145936857782422758390710188563871716265822483375791504328309752363039476833054559148031098393354980590914813805513756934738588994851199738221663474208338161453789313176532423590564274699893010903609277264982408317447504298860278919490965330071155380437336472921124483795701390839054828398381726518298327329234775078852715657879392813870137281418927127082438510412307937407379260415993544240201677152370024454368637579659787757398829258685999074592435590626484595366238680429219670220391571992855600478253703790724059166125449837615998637102501563706833066887650341561615782846029332163119564090018526023763858413290602334816932926912138853521956175992303273336495418816523488235522434753369955224414211776817745123205030460092854469779974282834306693748691468069598055384166267645277879834123247046100075820347020745136281007878594113824327188898846741805740452830528532273228499491619372077466292518682087556931104961418841465305095286263119566799296820862601185057794646454841612980326087369989298414571972700941564878074527543719880863750495643192367671973974566000208453102329635667159784662053889844371570242905128857636246973483478805522879903246488273337957836263621046359942659317472901012782678717954951307027299023000482566379368359898559725058522051486847089574290543940511735920529424159543897084434271904270101006390508586281815655934295379459055127362084097798281975414946325163484095503555937708499168313752126161523266518108504834545270656468639097305331851938330660002226250141113305567754963935824916245974356135500349236650842925574427961160019352019360847051999952123711250964421301641076886494025563600784572793932495659121247755199771240434831828281775198593977423996676095057289518065096272410547092234803487099384273433774229459454943965719684243061794254202974868628807234781226580339717297088340875713462316586478509726326039596827466014610209824303968787683105649615937928313625005901063640364836390935819013648497743230630558675504786592381482400221666140461794783951317667123362549109558036367813302304142372885985443406661518484975706206714898009531549051664585024909088185508346994109340904017012453782162641234018349424317662800142153254360432724237031197560338703483775899824541135952415062579888409293975228177361653299609063993520462108494293394865667230887491113134800283594689029851014328260981203948111745102877711814964656901628369292824049399356369811001527478497328759061771249006721952830387568840916543383460109418115977200461359225000150614290298406470587631060957981910784353125813787480884141294395282907223671655811845108196413173276755623364900989480263569964565869133627056267058775789915636235303050619789693970962864916844915991252174880513115183900765715077138720589912763042543597636019710257146786523178535906652961726800798164165253344652775933890059786694438094700050378367230293162181908956531912698164287876357802401405876000205461634836112878771565758436081439630643425968793425336072946677503401049751977398510554997606724926660881697219093710223026445666298370604872642416112077500494561356094162705619096196168147593307480435425202343975661884801991988510834280937354410010485276838301009482800687935313464670415148500978987765058855282592435828105691052846815738663217366994897487727201639562246613734735102372630474992274719639028380831550215347179919683546815256579502218208412910735998138254303284161731350759326012690202994747852828661031901928223789924325699088883995189909828674845130095363457123898430481577441185403233195773301177347456986805346143599022270626004310806293939524132899495529068551904869328865972900293560640580499292407247506066218167725625061835641170172162072792701886918258789676210644383113904061688498533611190672714519672471564709365030404837093932688398602230008172690227846738565531231286724866859548086330759890395114186182389980019840105575075313794635998001335509792420500228732496249740147301444572274560695293280510726939427735283051041897991084138784290681375315237326975852121796565094552279314149031599255470634110538156014179592267082359874567180388795482966467145148696762643240174145969832949820024157831209313083318929009002217895167072002376190385397691788433516670381146876719811079074645031841294358033685803931706134171442165089802310835940308231288523788614129665064167410144423199551548448253129849970063162730494884064398916519496710795432229602460269630250448048563251266770197057250288734685388983718627387337635921302994580067660008853002264313436476349612031957797668240683586794341837151857722013571553538766000468891708362321045101360429124423262359326115047751509867679156478995464652812374004275498597928626121358438874693841930807623709117976824586026640527519715523408217038706422728683131393925011189179482777741147750485977249009670125663627317471621793402633429049645895296472871181101293120366312682000635334435846717150129067230773221409068006143183472140744001930747691144041093713323126830737809879644608827740802050099908189409644407824498345958774378780178014628224193208019150238087008989381563470885643570911598248569610326568396216264329752350366300385564230426930608789590703540494334307038269567078976001355052755446085198242318100557385107694333894605735221211937425366687777736392608844102601544230531917318125743708094051355299559730020333655303994862912442598930691858920861342209454001271659869026993496890454150441162718681346283092627206609519308939733656339733181557291163878727669399221528539936337626955666118256725583983887689671187553764168655781575123565957680244825837335851225320279824644665457714506296977873638509175431498153483502835355141724752876322153316387352027987643883613702061844890040218317904037396565650389381800959050307901379768102324331373948035728752504465321200817827260428993830050128019299359893682274595136161406631834247449013265830273033127744087397701280075643534699368628064458306347544885656621075214666885174850656937215991330430094848859685608668893840738760878916122038166454300067362552946602467322276277795745283892442955424605283641364327484657403124416240049621221229993167033503592032999889759984055006341253860718465049821077326514101288268713393538810745330036272448758141594610814021396234672800414220300729881110016715488459807445352073341523238931089716401860092595229986570832375225506527666094833716173998063391684783815668283719176375822674555515011128575552987349082319628104121267462170819190764398783804795320964571786994177481379931670018774253969585715900436631977429104545211061064176737827903504530663768368826678421626819167726654615332041884250596529178133565078080496595362807425511017876048922107154729987045391851404154990082319500347699415022638245583752770257720778350212063102222228493922091500990041829475476124061491888584082929283918784219466061807737795042645673588570895810431754577400776353311437292779882990942169848816152918568816959756993983313159974685454931306695520387556832216614709489699395621606295080225309924579015362996306321809441908294770622181994633164052079576553795639006791613367747466962168598762902184122103220290637461914485959276881818598904997518171415413796845094703137267121601616685714777285921691214266932521871487846221337382029893729547729695468244954743330226100757794740630474814693394640211539584164502728753838197317061721651448843534666571394321785552807453665924860183710895916112412005200536265607765959215455286256319251818472830328552487636841573413653289835090755239903756202664585167806665167160462614030733435525194092046717599192693466465709940036905819265924116616111953614850377972499215392223550682892869555452987394076677421035720491710304077367606154033305301819279154260851261621602522413779371353772302817998719827348045833606742038102953314163525012338310453701396461949901114287694223948346488477273692596834511554722234153940775432545475452161499001909489449614282856103191430821495541579552441734867845081087112389487691892417527606244999686578791674739648094343848748857460101097088611866161587800223770956297612162203157317690933878884404222093740667524163804112521687899529539435376192331765274886982212170516221855692316431949333691465251891126615076710445462151381013873858913925458444312333673744821164953048056513368884910306122118886057234471256583782223362229411190223315956605497384771031612051253510439871344155424114917276334623410003588289339758399160892913550139490185035349992407777591573427559010519297884078254127500966886765497739331227172734182106664211715219193411159844995108282941845171040388599359349503704699252125768046568647110129268280969684618376263703985682824358383677180509649100314441919999348791827232548112868804686387932933373434823636673786282215955971126405338302609114044321718320374472035035495037769333762158926992695389798672145746832059059732074303434161155110785920229209345425231210341531258593892545879326609226867695071711680609075038361452891158775397254200987390076991706019285870152316080153245460879781428039558021304972673642784729776839470865357060273395137414632677188303219756389706299804566124439258179043349028382389961385683495508193088313310424029730678320439836547092669517833898432861645761416823402260436888555675680159350744317235175843489669797905949481227979287651765497326383324796101538611444570162630453630572837756986073829041987508135718434273664041741380326792433458539008324971721617354124595046257100938336604872927654992670306288077088432196640394476904174910440632098106408958889889389305863319637837683501114416895387074445514278019817162887978486393531844051360758605349559629379036432737257445276459905938708526999566008790034204883078272344080472669759767984233630635869274128459137195971246512589498898941721130888383364426946049562195472803452708559296672888362001233192288145875226563874607196537895789175077936986338911238105817142477938471469128116182771055575761857655408127047946435118945461172203281849412260802558899790571406766492945401655610467886804730102072195942799956658573184290304246375191216285736196595939177491282363129380887505317270400820281333796504619900127414014153024345604014285458339686186561602443114814473331278757665147543276441894777073173611330103175204032151052083358035209064787739151899540754340674338970469468719528023400813846407200382291696859779587725181719287833351422442095269686783903193089339913729252784419091685955678684715322842392399341977831075594149171892217899121436432247214606097713159810690815884994776033104444744142683856398162891345570210389406019013257025669854147176827628746895717515139727439529156855481340296143092297792989928190308799514914037692406230208099909100802055582395088554638230664249958752371577222593094448382242282518531721759087875367997741121687822917194042104598132144947747204211931540384300586626304959425611277026199032427413675132379232788613022270171078211492904407162248724940355069912697493938362592419941982615943212741150094036751512477814802343305768894086664167192034467402432469247456555077655397584941374325797498979451720978876931087559993644292831406404602192028297586778586141897995752618003976420769999582471501305312148083816488108460120795454657194627879571663816509279248731697052754402753740053348738535686284789694234368465168976635247007611294197374778168221457938622182853811639334636720790508556732079742491235279619030157613425855180594266237309390372891417681013291322761353376193839661958906571521808626781673202984145341814788144296546158763900291017116608401267264205198372131790553479628972994323653739217487468091894775889992951973796858922864095785404849922151591347404586298964302523662171468179082023169465061801447134439496774416268826536306975036375648927849640879342971050321999806211877907141082750553868416329926396866659043311946063995975950051921969556530107540949138244253664984622615917272688949390248973545261774215960335099595748372967987019627975701060636745118132847621414068213607189424209167935385092840259241476726418981571542128752056010433639560946138682355495988074221349823667636660226974391517628332981026282688594702626405233509381981540546087656578655431437645685239180610480834299445112727273595886152902808504978249066474817456629905721693421866618500886688503939450596603876180499409313528841622116794523635073538739026737322037436850117246043623629013777790565210760184615381761433973039852045154036984423548039614830716546370833540418077220121328870296418209973127610699728659314138107182538160388848933543305099989544728180460565539537210946191776342353142329011076178717732669865210374204256908629982098250214287851346778270736892943318726625273217005919977433017370821476405222269655717544997346420653544306783756333237618577556991892670650947133688555649947369384441156689146211147850931658781996545969758107620060948632228016158314541610192043403538221151885252855481903189025059847114099183460680239144877997624815419048505041280048606686089182753488462778878223486762392286449446802252164344961860935449858909898604678512532385606338379953606686802280530931344901117383350408809391728613055613801812491331684089867585382869988832277397730399650227705202610201373272237427833407590687253619327498076633928475621030164208311675020225430259247791601287051648275042105524442101848184712855129719280811965677344550777724608826082523987839813209074306230016093219060896067549611282687441458683378490513298691129210287334365282010522004484462881146726392950729330062205200476099627951307789460599917859192758156292550132315126061025685904869830304419797327488243583375954667438369421493461594850100738618554308172805723121129096480371904412164887684575465671831344093916657504773809290296765358644292960158413144440367476235216375978661124186593570793636975876972758347409719872389784470004605645151168644094230883551835345940479926658907778059130873882953547886265512127791548666825758918742258418211289924626423279592299372062437150411825022194891664078217288227454705515462892474779663544712460973847908738839122326371012338662606244367157680775050500338712288224759617697063196236663930544728726372789361456568981124692419228598566003072046046837905630275145253121925368502400887028822726658710027311629955952956052746745296241823574790567504066800774177921063494461869054184452567146324991555049996836696148768303381740738815415964659451884516156934493394086903948205661604998245065585517339842851711903781814831746099665568442421762134634241050709944352113108313182287934904266644015780702931483338355203120756863065601871533772168851476330052037826734889821198673115295924287881201001415610557329281768200592531942555646409463810196569502599876849456905991498044817442461712081076608564046510864234441836379083644495779891453047660429355572759355835604057642767342666430879091108229156000790103240255426676963818753130180542194800666310829515328999803205954346792564824394422284540406212637639937860270940983552856686324771847393320723397829062717670193188405936984311042294488744397689646399968597880433331554361979937785657573526163506203989640146036258399011198415369375602435502849798114870754645472849825710266636245396970658561666451094775075701006261493833857352009193700478101088432165996614270183012157942320669214961436985754034915878453251287731596997421673963685998100311799935719885721919163668652626005888459120857105309155050092938624972811771393307433107923430806999145052411850352332365315256859647972507533270033652477913876737878808894513405057887064458738450441788093794328125617777529187268245805599888251163562301207821741407842909672666636552459039861344178374777338191098110115377055762749961988366731542805765086415731311508541122178315419914329699695171396562347029079837400597002752396530587540110513455289121695693150641416547927037424024069726768372279855475898926105882743884905482147033950623698816982220819108903842023270817305501987288820865526108571337961092619989148968548944940240122229536354936699808612070416148735293015431120705637663111874279167579219983304710653648604627483919681700649499615551782826531170462936731716568455092773032619438843444968962383750997618226033343403618069788949439201504049444641312499950807007770043461240307785191377864321830819702321999593880278848519395731802401667934260806803575186735331829839609453660285339204985079847517658688903743079113180317002799389524837392424557982635618295862425577480709390680439910470956781992769103014962644660688773445234535337096841934108003275934559137150632271641901470733543456988940330165239821015856700537881161727451391812124094997304633602330678050739130439963195960998466471069715468225938534425160514530374467043471586496830700887211156202498123803894468187743024221210977492217537597331827782933636495874613700936342601692518933231369191403780815813447906770652628704297381886926466076129778297315760482875721550151928498092142906865174634891202954704575390685510221056848277124306154668436004216931117349165743528135602142119901926577264299641228676196629902455854266820885424944479658772390557605582550298540332942067352498408749242274448382010913327794637601775517188298839545104070778371009270189129935259298433298231431677230163958491383192970997725654448486566396957006315641602386237056028807381301570528882965349303814873110993392831362720280266117810127593267915005996991438728764521594448867793649035430111451735794422302977865147954722619003343886098868720140652272099914957566785285280375976249589073471062593764854128820315306060555918346427621558887192264685265608884110130056246492129228152777553521831886682612603550646752323153274884460915558214467560860509619009454577584920860161773868308029024808580599807810060288528008198394166961617289697068998005826064833750990086782525013387683160546416498585443829195356408872951603664546909010770149621565367288792958378312445687584874113287866321066879607358136214529469860680165111690093806681416196211784022619457455198699839748138774476934888144540424197513921149447953079716235707189402594947777529241228197909119366329096313765144425085349598327926011535657697061478165639907858805302568647810710172102316624503424252655891122302291967605699306009064637396192217972845312270009276917841614693771712694437305292727400596030944830225051464419219038208752292296529750549465387234893139060691731066371603921597871212258840921915958324268759755771153336099138595250916358716337493192251654313857927708554460103322048916622821209800978575420537568339312676197919771086340477577958062694489836695253959258506299040207318145607068430616422092070172915869372333712102940485193811949829706453161110682544498644246584616602035211555094851231028125464857771682853696097037331089598919182304607310684952953552861882410101819163735807391596839265929150623069462832889780852781577655572162340817419158510917235120093292708961193259053134080719959546950142587163650744260515419661293864526463208268367722242700430288069470322692703942120073845485420570006928720086166651930472908300102238876018785876748134370245603975783143158253439170152218627558561161273854314000029365355423470455828363285823461348206547056537719402270317283556414418817800428659920293464237255256923065920647425966098101705562589758022195131202841100580604763955577896103200136786148372215801987155247028018480167053351629786825937082657531457608151959021621508712925936254015550787127919755282688816812020346903369796959890195736073218584748010712596021867530475576953140421262728254535876726354968132263331634903904356253416975591909215254671616001016582457399022748931544500519835317177274855845808269144818463069876517808141814105498158789201970001868158383493264881724344032674017081805149469007084232783375729593856081798527785373393438362102284389347781254422423877722645636464074663607688442979659854777408813070493438034902250273093456884064468002880505423282873789092889289780108182329290433313529798077811081310374158834310616322702422639538192355879649939111410802088456945949266734852483878019542517276908687542700884396617038144168157456811074360212045121661176686265204594530401851163710110740809730139869061267370393016920105849357370008605097958721431949964465324436515675582690235820854929206473824587110737841136051388332329165491606522435735692290037214745655812329398428875055013095401419606140881913642463019360609799581148114396796175893119918756224629302249551239051191666028367410125856728284159997090767157489480553835056759855915589036443217932087228867947249647138343398990218355107231801285071573807196446769409238402754826225169783225083290427161283311788819379360653644791892901292048348746849310391685156211635896527778012479574053915921092382293456467406843211337105018870321247660253875165364607718056446507425510312336332386562156695053396273772381871214527906575695474448122279197066784676340823456305045868877175028302087426968071137803187991554437318572036165850122371095391940910760423410368408103595736135956783280614331717280124195134465193379540540861256060188495727698374275156645611286798325615299745699131244777131294705139267695926804912221562890249579769470672975359179540829670056243557704742358069713386228505877030731165558369431497511674700046702957783918358984145462950547176268209965070234909677227979119139853077769729767289320584635536248016026887688432116191311708468369229249315751435805874642144640516700916413837109255192564519601474200811848829042597321368452231478718774646662341285186093591394619505876653769296274974605104625465373349386198299505515945060952787753842349152683467079050049978159421556916928477134182946720094689549951684155819854026200724776673183724173914893778678780614131343583204038670743420061260449785143864498425668115388211525982530277291865199655026664373297148461468725317504776868614522414050948781167313680599041713397139197983901536237340442016411648649684418137288451061823331730995888422907004712031976833570802312166021459169752524579436764686025415254724263900564332983169429920544065177266232317807165776927929466823587226443326407598577374787383421616651775778234372810195450191263550697029330944591677342420171126593703803418732916035559142316566232356873947263501137497181606897950281252063618420005979493893860839506750963050709018239670562784810896953219206428478832998840328197478671117721678446558446817038116159504938228705378076570340673059048269460525784782252789884174737761264594844002499226976375144202693025792934760336645061285348380283512832679974066255680846433306311948821105028113924542520848206736610126151418655434896284851606765396742268738572711474948859014658627684378227288041252638193687730816084674672937616146817645748535641494245677463774020373940747552285977427369073764217848543274726159857128099893723389283415489866927817358881639909019032235406434955519072141784490044915297244518538583234343282591249959955789513030792387438219044903123908183477058444167451635875222159908764024533825304752718116013087404411841881810613207656998548285513504444822682203146797315874435128728151494286661991187934514577554699081731988340512878171194476990070424884102856252997345366619223907672607343854329615322374390404373374637836784710141284447151278844525665380293748963346046672615742295866230218469029620306788857832910661916704502042956418274177735196055065203496816370330493805696028635492441671199531491503767581945899739401769233120777702385742289046215488042830701281525887956756493433789580086545353390571136513429997217753020384330220786418309120031764296250551893349553338405360276476146018788373122072177873412333584467411744446660218638602241954522555617713830378686064252997214141927038355744206374473288986880336301696940463784764393995849443204911403525354038384271516977367391151022187791097770239259057977396062766807731863125511831191413420352355505307848640319515278434639755281946760708651406140634424525391772593069484951074513565938500935137255598224293420909668467100841058698202035138102432478564889732016492623417001966808849311657688054921626571313165533070487556675038861375224329549102226293706716950209631150784452663581025049893518427666571048987256718396129689354239056281421317401413122072088259030299690089381380400280858660922637366577122905112631575647257652701728465109014041693501817402574084582511708050887707809517343889124271210154079137830607718881480708001330468467757167973272319701939747875438826366711271050643319644265740080328816179816663849534409457999392849847528044036346161614884788091747619645501216621010226962842966508456395395685028705809031176866610630748260354206134277613341500502016889872205241664985835225620454379018285236418456723090589680861937338690978302392010352273607730157210255835522227346018258095074123885846349654940835621861410269476980630169518384204841585287674269424483417965169565132816932505609429490743782777408781607006125356373701196888229420921371222842908078355299797548808874649113368560069825093457774579106858109270652450881724012726573117501432282921463603375566121339868561673522928403796193296881534043487017288387168663434857415128490206219853000841808141193281358217177986802009465479006356876709515671861542963280635932743953317150658793253664856076265926214531861181170211031471969676384131007204017259730607264925540375421570154537737766873189360347268677902301932856883425089230646751445965095731649718497377924797155658908504184331095048831003487906179381250501842335364605564828215835503163470144663684288113233739734483596518242854719380622771771019062520538505079497421124098211347103733944796793953893231428577627349732090059451457028688672095085773187384882370008665984473534821023791305526619205209000269861229790529581670752049720185301521902290861832343697890832915704666735354655566313807492774938219730823951390336726055366710179855123701393687486391400940727745167191930701067874707635501774801840908504097039185496446165472517476885951717527441829193958971489382973268037420041000612200128679958182295333754771917909434235537623415755341122341286737191133602472957489753487025129563585558456391977977657744237618625651358398475881693544196039512313410902983470807426220659204453496937202316967387145868640309124937078079557516655438752695247801536662542682755196186643017547546717340848649195055178003531294167161867822290426378253762170885448953333872056937384236801190967185910691606931161862768812039660255987103250571413995427072567296431602652149147679824146124639505697983408203863424060592564114309435565399941546173389833453609840699752577703944991433003671400976150957518915217578446002268006739891115827425594915885740614389739781968230591886614150194508440879949126117284146626032466553000071266205793370801549866147853992347092125690896730793632635770036185597485994008344880005112343327380793369454445464055167553789894607565445666353272697453489369393686986166996409850100575324785756193806911984519744862408383177458353827720067341154973528310271040565498047322449336937782984897684920817176835375035918492009664684361418667771392579751532837227214919747076866603700956265923946472370149057483720283532353245958783555046969001003162887592827686399929230194369866267542182435826763008103257733694488516649013839584995970236575693267436304905751484469436346196819909899707358971466811301786937300434830533714180137158137550537911764047107832850546013672392053507136871283817673361401700111162286831325988102320715873492017065438995493701480623441655622602906205523150159773164288873075734948992186426513127417589512507530542124231495974825636233351262441607765505415789565136179983712678416682467915414510138817607009617451447416640198573123917893920399068159368522636740399447483324637084152925356904165230347772395939242055138811180808802086271640534219932373991176735317198255865943518178925656216726084005678170326278942131374800224558023633795413795956805316186411726432844146447329594282904454703831518079100944717621176480982086145665836568362049239820756155312941837589227793325798002204956705317509136349931573426469275596548428709463122545346660772917816497298496978433619748077299670193791988748704316119842684905130178456089708355975421070683561858421961642535176151422857787093035542256636881409105784289001164997610573544072840585013821974908443592660838733333714264367410230103837439814568556431252384910824791855409092944597945208172887367707917702430784197583667692144493122985202396567155880628943951868943774917495180094362392633983708063456146373600768009284837356966334265065945936854420785408482457406431188706101056424887652204940580707564007451035074878063095449129125205591254200821966809019327006197368825538918379619866089624827289993161718686663174318954592162588832641981175531027230222896818618930130286108913175874672166431413489170211367478811811583595486373747942350101883121699779488601503116814505762506468916362772042543171805492477267548368721195357083136749795378153738015480450353777154471482664535944071570337106326622285728869156041669260328913132395797519670805500650373208311589216163843246028068870465167120393547509505484504789531221807355647622448845282147823116224240573920680508918278579939781533204478750132338721922948472569845571845348285270852255899459282575382326863766074077029320352197792323637219599940451739777970967056946171046741167338907866535241462812595501852292349863053633574709596615281180614951011877127721799858270748291814054300028304384772228778259069639691534016947576618440955911584497852283119077376834940209705746788658880855806687545750837218247874657952655585876224644754105256672554473703921221432442479555705835858690090939141518400891238836454815402475850026345345820970765606589893721612648198554869196525766806275571055853828191009425102630199635452583488043093419603602472981661583612814759901720316126185457091088099055693745025087598828188494527725258079403620700282023486288544025816725312821175353569881584396758446960141802456093485125445224935367454766162915417206038976655529929732980144836680931876254939988410018986925918721557271687666716448044290571916226900052328857529645717725206544396276594305058893622332740264532454381779712915689506912064107616650632840196915001263938913842323650340440265347095442066476103877678314286020550123569387397173982657203062335121228358402783828109858224476790743810940722507241975314759889091043418544693710782438944340588520278912805052604776042617941808925435511067872304840553227459741907648916170048909294450348457938700145030181639387892802115462225390019056995528497432318164963240874219290394325225758562087744829359585359639886076132306588569593841037999376831009874033102454937551593443323581733433033132682224068837742705706606822174126201522718516011798751027865793432806177115883140024120523187920935132182172413422465695019011493916502553593408405395819614283168256880051663393991791657903929419179290477842705882222721619815984228286146149235034739990375651341056761887831923258314417315419094765377905797840336122821481724008680977081884812653616472017363360864002930250025141436138085352010741414492981138333786381866779507982489221443154304556580260010158869326334038090941108660210919545971209582828096288751870907348274700867779245536036318794003925734753861531408594492670038597952079740695169621291506592727221393628096044013699205238119242633019773169843868738920761516052097937834325131202836643330571021164813199209938681803854979253312590278924539140389450948923430984600033031051742725038145685782606742336558624421306696418269481509074021054848569816625084798608957610521401841223787482498061590268329570318411747058184026313246961968946810223584695033840169203705736841060191404206981051835759774824858123591458032870723244497560370817761108047580829544618873098621139635766840873333790432874099558507731917432988951212653980210024436332453415055463716214626878616706819096893184608710064814613994182011741951999208887815213141828683719667185286030953233323318957463404350782980367921827551636265280902744588246225804130637319391365622687696653667094678474043174364099146454246963299102763660488457389462217377145755026799163611318197478912907990742746860301371930772475508781566825691989841899341921607873568269654118343163763687401350200835246389198809689391481936214217761573585692887036118167203663369876927257475048473413791560237237714334029936847432234144427117338632377731780286090360951344973187273737356092621201601053021781858209287636325432584951602489538531451150403390069348523074074175611032045497134142194569896498642973444949154122843999475837330699991939981761479438305075470779632550170820157104591434685530618932433319730630807368800365956503770549261746580015606082361563931417054306555519379978452097259820640446046936573174576843975051932054115485359548957098159324165525000978654691675274369059003099884817602222549821862614229557853123535064345109107410671925499674259885243912597928968944907869686139661379374378996510985896397786794439883339233722722260247648747170135241021201362544891057784417782359192902044474112359885677150056153216802674156428205064127231495364165442612365308880670271974271352793821515302588769389180464290262750402736167781880173662380681483744756390995410955282931995529812683366691675813235478601930964911950322580291435473948897754314195198305201321291731701559603435474560328584725484178042366454027177335287606072656562435353384379459699178289715010387082014637688647703018947146699829986752591059159476196145660051581010934939986938950308820653134546211930319499369728898494237297662656632909156248534502808933723955861290185690267404101432557347914910179637196981273088882937840845302895252799411601413784407692463338687370463242693307701416439941846775089232682839940895884993754248673969360868438355232327185908404301887291006359296621072336239204476105864276740156934676756138950752320074445350361716991178596168991364263466965469002249981163202040297411154049032502477234703809674336608420496094005464797909062665757122581919207394522663657937963725925397209791353585153807372916675145275873734903885821874314874931302871532502314981050070806468914137849518412679463182225757568679906926817137534451065710327962183344260324770161639058606111357126070434162980907671525525351960812005637007510735190528550269883769073215554820546662390166836322890072103407544168742025620095367068496100189684896630691152961318179966021609722310592238099566661289597113546149809835865207908664913523164262246629542144272310196751024814148241621744687724562652084686488194195037749807755824842683456953727451969412746008153162634802363040393298407141966807443788033232987771127686312625760855065225343820431806394815445002085331834655060171536326247304827419680471151993553442723122001348749795337253467578928288854299186102602676895434095756861046514343044699701206019776713047198195612776621482176121621922770664283426236815392677998982444560412253239512485489306841922186839253343129259372907412605468820090326997175205384221265643130998993293789253228142039087164741029197499152838865358186852412374270822029494113944681306716899209076935529474587812596893145938624349457737964886738959116472323551102776127176344545350040591500864703093405059602139336463088221443150136195475645620566828983891020590390837742376890581977406873373340185484906702655227305274173730595695956398816386751292334124796594951336243998371571056678065072691842461098655906871941349091047749064977053182778918388081318289955228102903968841240912144843443134593053350114597481130956842152721615774904043101746120953252035512322437410312666443623620675793437458357777763803922201113274625261886277789449417689397988403028714666036535514511657022082076536958130684752098286027078672621472050253439730928685479133107955240052217331795205547964310378565566050107593920923619380295713919732812189044828890942952394248071174926311048083839076442155183343727294711903953093796281880983599751080135319820206174677822680276099710961738692668103340525102835531466677583861750854455851229986717870289104882536602552508682210473043946180974088936592140688359276561929496689435393370292097358809922092912714438862430531562127848229336259724134145563211108083964340850106794498336904852415625859964430583254591809235134396528335749214961679590960902275502747018323802453369718951016391016132550528914766049647516023613727626634301619571492085521020314156654793902297199382861939034714616183830866051385816765359658279436842337667553172411127984137984133037644715954387456127146797555573169334656443163738127005861055905725025589865639849927100419302966291863582693656072463472495283808556920995494257275782521948486554506310145166326898655334084471527112366954097684942943916325212023319566052464819409127476840805778629728498615729603634802288206313600705453430504105015341671098001381853768241702886905172114313870696923649968334883823876237869038602063467498249587717601823242176387114305850164493492003468328997963657398173125426435243073918244151782795969999278426203743761023957345216145367692783000670934058212942501851293324879198818704660376649389654038822971584967092956304691625040974328763210157189652013074938898893838672858621104249493667779151522194994378133493652982347655507331481370632552931162421836229168654678300191182940833442742012660968719820434436969368195874172450556147883736967470718650661669642324171268876193797909368976628046360955185007221204969506852888657998561792414372169613475895830084613779915215494080531033736664232389946416854610338049885920208830192004676504094309976348328122119226957377480403711474137880034935770691141234959095496434466974231263887525314621363797749548931156393539586368279541930493737423613803094248628693809413255128841900356028636781718981760307529724742314014670783847952503000631630883764039117623749996829340514829825281590802240004803989009484558695551868786454145489204062627158256301806001633504232597475732173145185338433044897553543970749606692960526725721052983433166462933473144862400425389477711589744465300347588628715604377459126831848076567152086172579806721076177074793089306454656386445776421475677755091605329368750661974809977009741944524929241300889515577657466331150082926817115208479330178335814761942361606709385790731726121256055464968710218331969981568817930482969622548083690887172213094674785574970225165761610688217288958412321567923772323332613653859098764996143139273523395653237196390475657155892824865011667280697765815507097633334339499956186112091803745555512437936187188082396662953893066263910217236769995450436795085999740866301728563020714544571130718135524000852152704466909687974212764265899208031690799547626115965635542772823243760448994862275135747802105204311572179379245315797564264745517705249746505895534351616947944409113846020412084502978631032403828695875834070158295499313634569297530364401114955900344966004269707271482499165342409555410422331033203526661804631036671416932689103589033678079282294016516928720930178844178209707379352698024150102684855873669937537939445198961207936304864180721024579503143925196915091005091755893408835883828012960963374545740939406471746367495364678794269406865255080865736762200136510915789214596572941880748080063795579783034929706202241875898721573521898168477617451224923052779073082205697412670952469349231861488008170414639201004963061549473888623379157700805746657565774596466056774218807044998252160269256673015981777085044025106690316156165972058081304891973920951915376854793465028811894037915812670465492608714864927248541144999709249467170931743151277334380003043096172851137719971545443971511268179061789642448495693902625297124907837933265170162115428269205750561148413590944586375339052593521886300460609911508332808334197241697225552999300003888052569808586513775767525227486270202590220061387792124938599367060779377958973046311353767863453968113146111618203463951605349908180880407701743737952477501517384115355287991913673842992685628737689941040344107031203487499709166607990675812186921504930718756917871652846368689844290795763989496622259940950464580364504674428849019562819520124755549571545994160902210067144242301655169085828489962684349983367770223653376829897424646635125313230390526000351994950539618554826900509980449196988118319835106375354405897804362200078326341154358654967665449972446856585337133667292424018741084203334396168688927804123233175697358677058482013995579325565155950614210875105664443477191543089628726079134381400463166457713355909292039318325658720044587520094961742909328334336527298064843615500624214385038066980106239400063636951444586735431366375374374946450990323282626109122965565342185149397240215112958393252671644440453373332018331094263623102349472808146496524370257084603026725261704444242229944548742928841982146174313996807251180891798205704100604367909829282935308319070445663148734961191949389311723417701792271989408141348023415095134229750067500906404088230879820933594116790278384073969740438395490607332765694020976555761723967334251285602877962430289466057870258295762272123462588491050420982943174670048978440954030798994062352237951500041189619647717407142557232185040161202455084805776867381794600597388279659043415348955206008764385849073614610606698283851574004959523559593083556503988621421895270234630316574071501294656286818452603447214844390325840380760217195550084734661422515046795352168000276693307267270554016968486557777057627279085484172206588242830324693934658139244689017453193572957105150852565599350794841776069360895487339066971394487494207766190791905384630271460238440866062355076385515969383458508596315341932882223814876436309049779923452011104293901584461464642057066453034060246945682712926068947574588022250308295136709649734349961885320912374398007533125806076078951236009655857121756170309580317990951673412165838812456240693432979474786488961121178488838527465769438259260950593790643961708052227187476000340472963343358530453519842687328132672677245337011717852163282528686196664969035238101701802215137255618492931958631297158146571490998373749670609431603898502755799035727960805590346071719209289221094939842850809748130542047953408995758082936262186399551823581675154186692553908970820663182431139293334747158708527918895249758890409692396838593138623590850448638126592340038438918521232340410036751750398639877085014353715624944436592284774341573197393455916174752359320135727176048137377014637798021271530659750409672989384808722049916766267811168962758068268102764885412851293035947855959380736980465768934279406874240792444358858657530093770405680091195933735946804137874234409761242738703696579672307597957053384037422145042687779995213011061047145572941026645132673658874264803280202100157064113879015666957182517296816673045745716809964107324872714775991013833393968450066622781326376719245929198470171372820428545295262817945801460079234035885343381671345771858460403305061953107304090618037462394419320907940988584705572851963375772084012325991464878975772813951555667551088729259950632784838438507934267832788020375348705076797517190801111487344100726269644514134309322423069504857142156955595276323009823930509294095728508791037028913537172059612097549401653509720856239103477830499073081379983564879585741817186754663846775072284882839714235077619429120568911192514415088202888467966046381841950177327379018016716505572311854739335954380707931063556435076592689298286836537813344796545964602200946175466264955388668937331274930101261848859764407394018303137958917416224832938439419734629393737305430319936580499844079145618661856526132712094620137084943077882726571898369493095882119084361542173888629154374330784368425802545312050851808110331954451060540043179648218590767540179038310593748584371711398958934202754488148192415394452147240409259605968188616164181780595069903759079579421510572084902421901943291440782957302458782431799997463300950045187602232885033932929286550849791285256838686695749743771718140186601071291404542259485914667786669835131978596534033417286492290447554324067682469272629020655764441217917451320804921564033845567258772136462553319703883745649004227766243171533159695136607721127256967427857406953937493356958157383183931586481954005199363647909522946335267553691586372205597394869639851595789022758793289597084508424765817751018170724193697018342118828387053544254270631616879697904526161517081087306937775525946624734613920419095152627995605303833554594605050191623313249752278126776009404069332802556213105125293061945175316159783026516792358792105532101477165777887256869386980685829824144987932429760374312079949129849546721198731653516230249970486577062543883540283105518163311700250389982528055746913155635419422705957402711368562789301085359988382143685017877178501154547590310106796631154618486108629957081203579080633600132323746869622024839618660709398616640140506484278369229770711966136420255206408731450276735184425962675462047301564767327623024963296645473678280790284964307428561933836923163519314586091890209600457421700580241858489646703175036043922870339350047503171463065212261596449368474342685246424103092595530609831701487088555439388380010461484332219472714333379101918515082583547909396933393155138710056144202724254207877423813744615379609128648282544532742516430869916095843692872543681229753781732133353363778740006671482002907895219263606978891693153500176548286727230973191774363187351399170049049434122399125281606310840609587312277599282107252891506888168587338432171501522388996523704780405694391187894814734943082969004145391202834384947891908711676376190099719223435368331607835090622933200985525407205811120295514453058920478976126300188702465136683787374885044444978916598206985279390517517018729037578579053169819265006408527607060896969203987495433928128348654519159403723519190233913338355822775097468081537355847569263282305260820831744173371699678446305736183457299904563675000802788365617473042823607379979801874499047784898018950750987400996411220928359555667443576188977512138642418377474676434344104978474011356463278052865611585176307535149289976335978160969399541661866943447752415057540699706596620748967413483661029969943579061146486183956024668267223553006204174709971869788940147936018454757168040539691880251242579356083346630010782540020929489929833068894210129980626494187733352585581138108691466192534991350393227528835686994489723802535681594353378919041045843710638319569820577544223816757279196589927145791096595479469310495516821493232172278755252563066412755649182146139088981180858993061861737882282486331933168876169688630200834064440194198375125202320234295676986485443216826678649101740731424285449121489188853615751909834817179458284677080458335502790520045574877556069312636009733718576929799814236035945892135783461997716660345969024707898401243174371220042155413980555408282189096019978109818819374251202000579447298517737445201183446910614408744080246359137863272278850619104789413262332137210472493611804326161081133453756559216485116779812864803758644982465610961225977899268236192350343629866519068268793214227472318075922231406773403816111443831349134303103319762144504119716906710597070984713160528147648427248063813197478565508194431604245598612029540075299668887291790316016092029061943485972445802450880391125767868266705157573383138460505132581467850991850459707122992699076916967301864757780550897379416635259601674297674345577127226764281098387850553800341508144479932293363799540141621137625868943399834530965928618695948594290393615822854671064096127387305395163860507434149284702584971906347276416420544971158431767463520186523018136516403915232313111445209953980208016992772785595387713200824214291030945031915977808551485337144026415396468997354047511697258132728369552357177387133101298421064346944461327150469368079778869783161824073701373863791816377836222149781434852617716640081152000354010715449855148261170310449188350295082650045575372865623131425070116802420521492518617372093784877336296196785416284691889634154458124553494742857890147913194806037115970129162382121185106861871097445927169531165404960995964615444824559154069551999234017094889725383118105684474749833462299952850622925443992267718765370175203800544854469097266010335119507445791471623895491247494226936401968982303301135905356830285660851563949082962385462487659093439198621556938461620450464849481873139023582883567423600764595828305496033185758722620742328584577158322127698057729451488201392736349288196146332489489018511767398406350209994175094561210025808556167831488843683643739179968073884734044824855794495190618996395982144832843580980326847817323673396571069213376641049522348118924196094468889186685475698596001931285944906671565719712793117686462761147637230338352969924722057548097929337182183716794554949884507871669748415955955235466909081581645238053947965655405436050868068239156051519531647805619045993105537169140631974270847212251454147674704154468204463291437903351651903150251145617698981001696841427666247364373630210328995985231641538250427416100244471326758192432179954599095731847625629712617561270481294725195482407797617700595232725613324904290320656204970236883073187619329544773210007424214642819929779042088041324850923203476390279159513984337221857823843893249024213496366319868843513916991412613558701225064582535662901283113174608717398597616655995314572563826445732847849819834611770056207580244052838684862098338986314806543542479688759036825561250815442555880853611964942208458202153271464217480877903574004157264394988593751927431260170763607331406892990446022137381034111715136603326677188500274048874997514948942792926706735349323605707665499989279977586162068245320469488653370297790573953867896994652623604727466194848258235287808870399038287167656723574952283724481734280895799942708598466663572781210743146947332053895826798635868757848124437686603357648872850168840715215520156335449396995074668808562722676922002290088056420114091856057689736696362376370503073885363255505579464219926578150098765012045898434519012549581547638281197087198950647423387592993850895778103429290632628706337748830528622169146218255682174294686333763019262002993640766873665188286359568362325725410381003500101977429611306510001691269320881886903035754073896264814391895855451776827500967862440525673353244590967898816800949088587152649884802511132479878608950862509402198857134937650127413579092819753372345989420871668998493620754275642462768389485055005299784176816091309419695072391000757076743355175714243509425722603027754371966475076197783393420807967704979873389175486922177427557421114261956545926134665937694563388896035897961785079231319138960013918622945053956756084638417860623812689301105695559619928729116119937383455608090803194783553078181731120979023803311749629625046226496044255615400469176768126156256197465937530126312671122434964517611055915581187942170526948546361263096095998581067796693308802009020251938377193618998172764612812363021258495160002247309742333031580285076437037336300858155250252847772370413800503831637828232169223538752360710185223662993238139406520480488605717826357398026372310935947130425217036814764075578673260893667805437134501102242340620163548009552722625745684122772834149158335151474324701339080269970189174183658628940524125589054487584369282979086420517412278756865636213050395096655216468372898965865317531765924236684769861734981409834814512019066934733266083556471678798814571701711186481311448616258078462977416082014120632199825653479206157679116697789584182956536799229587719020613443337242080376307500494027287888329954705189384274503604093079214646069325107305670953736334230694445289891953677534439162747936971079854647181119838743646297440070599365533517966079480439783606076726470790237492307395831523420219520135730013820840025400251017577135592315946722214726848035172708296560741868538854359288269977844315455553678271223700326189455319700076454122935801010408874863706265854892329513899911067056325362590956827264844384142333540880552324037252547638760990188462534384791905354443952812942720748066489027419340710891424148673860672509752777639598764856178188996148445015498041694029120118596157992616588316778597927285014883117158175943893253929355255283995589715497655233700705392735634374321239500956960731298690205752767036508632283795530782860920592097906239838635539025622611564368126394441920505154035230798018510221940253349221106567725850166798401617037455820934759661965075106136628757487798031975739721350930021249932038006965779829441010625316028604350421418040159495629150771758501522032366050825100644600250036875760435052956315945920727347332153908326781870487523013689438422343133635750283300404754638061165317937138805886316099548050422080485543803326239667853760585172275716390525764723517787801119819300034706757515354870203175626487366580570548772464911635273064013361106026340086485077954384289946220058389925895795522950699960479417989462221512204529160122633234854276175547938816727195861903708947294956277574318748795307791241344055201743340058830714572844743948923673051008308785303139099091826208384117404129432721348099474744237392174550991912145618698684618739799183712861471831925436442079558190284080304515582417691212546848442274347430213004674771785853332617000669777864577272240332387334201435786581631170932858932556255160506992468600860928054332904837342411178545886793128398150342006262352081282054091000518053660700760269430960300695678545285571590394514925114483899930681441499075289454105625273153791834011208954875654605643501844576802153956648775756453288008842187644044540227153521856918668791177801679966533623287836562372872326948577846663505201903182587609258070979919527066056512391675079104177549417837106036254436988931496698624112110940371871343596817018233618492520182631917281483161721368061636177289487509813035355438522173551291436026104626317833780428140139056666135560656026523206517841062424136778671969433416877728605330012415483173983973546948049912770628623111482080427731345493130051517127661230891183107521249377989542909744140451037890036288027821386972040675723391673858027776368128935039318303050323013568876148935373069379206863782312365253398601939148479355581116631779266165791547779297964008412730865358186155624956253164117866492079919227665758223322991232803749507436863561642970163344242672437081291056119870671056403519456316997087464816877081241125942447272389173212291007472423716609396934798535639699041208971190060143450520002798289716453084393572840960920450897447483943574407056114506149045137248633245825986982918442555817337434998376462618348469061910250040693035254847368668498592421140177705919416742101550617843192134027372649334890407930803982659858284767277802649388179345892495634919250438404634708490465149734450789161547883212742734518590330331138015769045661656371959421425659618217142879471176136165047271816089217237383455909481310457661221634797707796984603454596207526504622219597106199287218496587303551743022638976749225348845557720741409897382559122215218362724764002306044278041662327176159746659960519320886084748427814514648344629982092919890099814968141360386902152939259099035420887825027461802190779301534577580696201574548390109381384725580244658334643714159544736149181002608328877867809314378278422634250686592535085441566201276732135226687926959893870512437691155088083281531366411502009726687618912446246939209323576011416870442982956552943564138336666147559736642806803571342595976988885936605113468374177610342585184292822511267364017383159945730983061345389058191028176865287685083948134605403869201115356312968238826069671615318905516381799874283408488458996869757443244733397193589084104968647158934693857341745513588798183138536034607573463476329998754998718535527004931172221128590853053577073953718757923756592243667025730663878832313041692605201566007709061150420880201927149974225942900418334030526524160534878082307572833299160611052620138333025683072076640669919158705237722418993559964306983165553794462904051386939515234023076179088447193915941507043086270398706658017421312318539641637152708872127755882347851477354880578276131878614737265086947115272866722119676446402173156843083433762995838494632725571846924532212232478221982661323867588693776741322519857122975553542303938951282326165890600387520207093964344571467106464669018253357288326168142169766666237596786067544969879402310592157217543257430045721372270345015405898770765987556011429728779432638347567824506633872311928056813145149923069959410911355657132560725618925994816516803337674469058828083211409225235440471658344018253443684619639583140632458550408324650691593821615596878348365576224938849697991708940078889738505041342899263439967126816691105507104031159289751168610371423399439176921523753202677444475577821700763447435292621725651767064793495835943030901374247888840139302694824604072226095746083802005260040414074600337033118803416880273238854614805751065407317138177183735303903881552849005792256153703943955674364844663540903377376706930801213309903053503578415328641311455543764635571764675166139201315850471826997179683995494183779718256484635591979508819458960678750217801225605382661896365348007260983345837449758277540142279567426673841539336820487524614451410537402439312444852580790336480627209388989566812300497106251229731736183830183000012266980635794340981056581812842752547845767067934420805575803790732093895590766504138230012018219191031063043314349343477197711720318127919395971661731526055650032849619525698103283961799586082198238736532412321394952494887284742660618400228016182164571601857117393820616709223680082768417329074141746524835381743705173450194772800229951327819680640746689204306788293885416020420296606555983174119496628128013007563613121226742659629849952929154381699237587139201160907334762536639730146479799435572355128533421423529723384688328106761852260286714788197389244266511847086854739535248757201189679910505167589446854997837438373297585534574044562241924977668512049140480145536671856153722293949313380900143166374031230164858098346592450371909137996351559564317820025523598620007179052593529675205833028860673630888428494765821470563791697453035229302130517719573573728305194402261537596396700747796851795002536904609286734589525929650490416417503478664717538327237158885427333488227810607551065962517352412533298828914009413905536055796759442570231353397428165028716562833918075601357063317703936403866938858808912907582824408719249049138040317065904471863413409912704841591334839736061077691369747473615601223769238389042994582090478085856137155769563390448386579195731162438021265734716279851868327203534543995645070863062781022838247642841004495711191865451328180104846501669897037612083509370539163247836103712448858960044321656887551023888164055367347289571401080470070866015505050941797334682214200780083466896463144344840349240428199689469498042314581872999646892859425000197444318638429324321678166391500583511763926105463632975873816309287354496707963278136504634783479078338520307105208427874512151151892070231257397511805605113951273850158603294946175430238353473429882334180066245469334433928468433227523971489163764875973624786769865181166050857931013606254349614018870318207231104453996100856509785023100915464036969370012909728927214596215488904414986597478549050686847097953864410300725975894529612856259660699195247785673961324568839233123153022778844916360441496690099685035548702533168708577677642680500456803819660373870962878612203316046310735862061628743491778980634276073525268605526707415520658646013996910415727675967076153907460939611447311501648374413660188404405544544972991749075300314414408235955245053624404461543742653765700367958254960737907256955536059061167207207263922407156538792268044727969436996526551815667871234085380628364028911553699821746874007352288641210857291847805021506243757763144795424463539295304385931709393112233416860313982100676776554396764613306338886332522671961522875320500488109101951309180876756531049961917207494402754258359111763042253787009952197175910560004660400471186510818488783300272060646012522024587041665815829511998938426084731996678022424433992086376312020929013310463503741762633024987750815308492774698730118148137081538033142774806207757139144880539882389943317826626627928560333716346506798526499954660649404108603591772291738989650115131986383266381457830356958478608681388992955064044931890094244672321866116543898882530516306410575907399236155097082550666543830380412197191245259760419834156377369705375810309484896379166266379770541605960101653259531751699330012785759435202542532472768775281620903780023819133493298044337903930439995072474399280686174773292486441249636542703771508949261555456387815500892571494044363589951349365001433510646110882962247030361704218755670778980094032642929670605117044394950047134826144201078542880859950266148865781111905487197559476575961384632957010556584933720015512350746516841492761041025789515734024761030694775704603769702907061229053718347485976512584985418088956327798345146437137179593157413739152058912294652438302169112880055015612201731875862721390880999497951401669518386205375237126199053693302850628915823519789282354828177864859154869699768794106311099700036564997632009806693618501368609753285965996191335517674892983047500362002058240797551182229839362240400103924074739754722562549408232513842410613302963760273301987553694183089778091086792048480196145373305869927424694924884946329031834129626786255302124073032925215257379605946167384719284998838468369275646058731168241164791135318682333674876769575526477894580875752533589228073235424209422949421891261938884404927486263006176790323343013255175434741960336417584025097720405856721107332987946422987245970013435526816328602088512914988166577687303737405139204617851779672065414541973020737486341337331432661807879096118412398190251802609798727196696081809761571602689928794107702842365012374017836900182383834715929909510190519270651677694308125582367223694533478362509887776092755513047816699709352941981667832667154984553970039053185975551292403341286675255697771483189004019484935874819388369314668483777587098811055026169293253919018915266715939450973723556165986558227948651298874692971608256362517020452856451301646557024085251772028124823715831999094897073438607235708301794170389847032652904177039347855413369299521541911620904304754493120828848297456331786365926476429925962071171065842934100362304919916032521614741146267374297248155362388653170526962046094533902774377149670837096934936901873821404099179504763281754887221491799533684910393328819108934676675615934170636333994210445595892874066798140830505546031054913506023633479812609336674175086865013808361355632796438176737324874257860910328229339804215791106612461761749026215736523588059611400497665086696101548757280052185469235568980919688097528914333824873830010022489913742961799533295627437678196330696591689460523552532296662840557580772392246348496736811144061343608730194447242247308448547373228826244680746749776575522117805490820645646568239514740845233231357150504471334824562935454719110697543535123758510655583393826196018930541612607720109042641390904540598623329377159233163850534090886079374340487339128451361568743296933695624773334935231482673737450513316797492169834978796633692706177806971081990722562416845562604227681518861947037553781143618994136929017895814495890676231099956710541665974318861828808322006491197317391187450563386514767128238919405760349318445324978138441452421083880912546169953843327083884457377301004872627509534095615575089686801905491303934730903745549891631332106072213105018507629857350954881758454087966919180269142003079866009488254666170739864513318359896360428895737787064751389654249264614165090224651562563536491203958370657483513354226311976948880703979845655473607061430219461234428657465851759703033330236504319053270415331283727286630869195274610412996151760290741299842482833155225883531649692289881333493720420532827528835815418838924821268489251816231381950704535258045372146678630826463103983064700722744052470222426913222815164426591123794846802390402718304081636709365409021009449138401569028085482694317669456396854739184196498804006474660535954825723625423897035580705598269907354448697218283897336084609251192899234348965872819549635696650862808531559775539372592410228199071936597562743614803551872111592175275900381054087168647001810665460889271351992847547418609765593278022708676194777122726571995043927617917755620580752630141399852825542494702886957397448905102525223684498959651465464158264862416070687275567322896712763010754266377192379995946444020607233129476339642112478941638830366626836268560006082503792197321203084216705984131279251935795010918862833362734604332389549026172477113795754569237033843096699812776778714154317412683623538938990207833566848620554494024328916929461695679837424914207590531819866024861581098958629066498744965644521757657625918022983233047629924266901488441376884133581512580221881594783060171833702308603772383918665229489070593164013368860019996064869578528772310474199690510322264729671675683783365875235925723020306719678809958828621867535620594085185430869955126898021966182985095407529580451621018474350233521778302951942087988560227174774534818851633250402700230342068048311595606865919065407874070358596103959660970116152037548472470446478541825247351128369808362569540158472220056712233683845677633619089787777994562093796791011087189135288599603096961131811106555974088289103225364511705525912577633642564741293906307619141390074442766975369560582302097305919143143698607769173690309308850721249004119470135539460985194507347518899516263853104288658979346003090853324179296551549739328622722762705562373003068833479157364977542429156158193837607223652832211648379821036403916783615510013319865803241094917639074421144195325123250732308502959474146462953568201741942499378317163627182344679311309111859360999543231002585453888761881766232365597916476631280554285869887605894773647642270833334266373732154390655559709066876012038162084702326929806362766084112239731806034070433437171416009586667973211452435201881756336908488863139448573733172725004508827995814055201362063302421615511104437548276650264805510510636895068123452229799455018290168691182394755890095440811538198041124541435824885045631642577610584204326281266182386816072498792545333683859862564675200219419325377955589069879424415022663221765464041584345504119342317527175174858911428390173354780892655690119766172967106108996635814665263242269679766417201995977193423975075070041561909780448442551115308717054576186238068624017976212312809261976333024258657276575873773847792971192127865624083473778490845504651304123053459975185977816386439901383213968998569357718579970318861259163596894891313432803680889808527797148252804142450942303558109297342144970601247697212372878064142358237710234572200806454871126080210219634326402697881235569752496573674419482575736417971871098330695936837873018147497144619262699976919607294768997965810639191330944473387113255910163167994791058206848277078754736732297965463591773420814971801155993367840210110069949028914868997185719948026312085477758464950007527434935671098166937669467285126638518261284702289983945524543457501391911796967527296034545136563252321845624572402412593154910158125523120802171481041748523573247844766281745984453225155797749252845211570953440867250084440916522527020899675406517812459218805177445999793826263600162287558676543271528635236130193493562045467920098699152052459044796076718720406514023576513017295822028311354344357707464221484427309685908592161750094303931378265059590463129176094768190916371706631142052793225595028875056463133202230137333400890762427354193130563460204577881656517917955770218396779395638254256801976717941920543897760929962172807251908262527443699286776643949077397052849537977398295702022523510234447157866028036223737306783003428776606477952150721810621465509941685187518082148111161965647085761425337324246631566142289577805593766357154263136614037112467305992545226101046943569171336201094424494648934913380921708153463856439965011627866956386430500326498709016189256679500955711943654364825659947278470852189979460977022452020252538067676107447997172310109826056351891750985812445570421663288825189205922889145031266256195583145574068661380550783942781241863360533011148534875739632272318449481708841879999144986831126493390672236709750403914369954705545844839844201475419012254447528115714529659041286057896667910890988156052387632647128869561823111933745404357479684876093748245984969055072194421220326367615525297889361518468637470524975900723554875968862128976821742649225362166739647640538100229666683636809326283789311419617910550866249836006078460403449968063558343040754419732024410040025233893940226400883117076310075785475877760187411630898308051403223781869655297056273186046651346366368556993739431455253457623692474698212805544177831679833666477346837329409845951938535861723316601107350891715238643177649345876452150284941566832040177707823922932682866492359572992846938525230738788812510505504728148385482343786693657187662270126856959625749255603342690983373664905833901302542516819520721329842236644365162077028193509476906917459929408315692453393180746401901921346421151288155576531421632579684657300505820580766550568164772050287422304152871608570623277689649238310438679411512007006501714542335596703679003302259257784653562363693766505151214130893263393407150230591816269826090515346080108302484407854973028149965413152125756705166531329034108010170929477639215442376249967341659510484673473334238932212658530728067799462554747088368803737329807113201360073025828846735756605962526736419944475446903172924719978341177643818066728932119582822911483916516160480671289891425769085138176300426345570489354875847645673779155623106637715454698120634650706543319951375936062496622694907852627889187107281546373715721755855982463527350616497530754066322332979412703553121888104213528363405700536527606840211512066902374269946744366909559307775122026540993623343760016976224632838213753075804653237140701173010787558722584794375888588436719432349841525845713186694186099159170282516225474112201337532130774409917164869834488768686666270823175301028002777152076597475091210700566599810949513035139949846704130961667247757441396166032272901381206696421272178533371318065433109664872391094936814181924652856169124706081988880515948336250724626247785784079933355114292183169753410219190067014627284194071412884004178263682056601247688585175882583580341192134840611075767106290086309861989117553395134574127831999703244250717292026100287856011511098285855606086691274602226195209644010581684828707399108074420856064679789538574415970413202418986640776323836122173227848461048260517982373623594016782278629501625460525290569075411857406839230530074642238287622437738238995469967171399670975399987458214015651166484078743559794653140483209214023685860472195799521213556361034232119654766720714448338322654164009731021711082981087469763909338103484172948893257208404118666891872449589245764437207723055208896101023228205228971141888885735610061609371535762978995519730989631515567032336720490056512703282076177645000046297596904893528503576051840048052120801933922036255949301866241369992294455210785137421920320620433508140629622702911928645906089200030326624024462080362211053222665011847059887475534886861548925276512193851340413902135317635325545788532909049002631236153162207676840842996736316130021175143981633765687912476777862181799897419154258867578664869322842471386133924054932269310546001343330625449842956855037524006607414015776563386217022608527881888016333913518950984434484475989180852759786722957347071695311995104145955220220009195235102410392381704339596164704285523576392978706928288378228998365640409145841156157706252681934315819454642330199466019154625583846047575319976502629844343573327638639080014014871996743959057387516869274078399027564716277623948492430653024425549751054504941398925353156013540492992052944125970811104643768065928388409421445032923880987894595378703142897228915866845774279083049547158057775746568657513718741058608714929203820016814521140495485399328242375407461397710621495009244639480841920398225725664052079865789792307179507235684168028500442900232139185883317021096458020566599159563881855338777271338836172109179834649019487868243543301993357863559712133366919258364567834323744540151805533559172735080589903263616218385512817597314132725300302814498456047302109866917609414072184238058314107405838981150111814838932804343108419082956102664148148694291027874092403183131791638494006615844604636229935287464817370354132016292442471083903951809080287160339279298278846650967436931277338244007880152202773379337851878345179351130345516613912298499454302784927205264703464893899160931112635985520262269246744663629558843215143442948815221806520355437892071058138233282542780139721804633793864301591860186994741118855525232670111275953666226730097560144071815285786657318685970030952376025586305094205910281578874617148868716179456511515127302205394947466595389318185561651225142434347648608650305966407024556059851081546273102236192253990662499057731823750913662877826655417040901493218656453584788153090044180055914031342924153962041028287429043664219156518373152322086464487015309155671306009754491338666175084804583359982449271666603564316492382100145452685107868621826659157326625188622939436985647582479703274238007692499816448896843613043422367142337287776740943812098226925028631616446221382691033769257945039217337908236849989290618905074002548242354506241020139553377676555513795024338433327474116595093726094050351119109009169995819071220116184173300072522064113058462687702023260361467841577477187370956713314812179763450222599617927687573624177982229196900106599527700822149446808399011534738322019269281216483412037723941091941827759299203373647562790790456966801448579406568868801372140122880236913706947618103597993289097185790059200132196203315405183445293580474086277006099497992667492261144461640916550390197091619601923208870039831967279337470761191541397853480173945991408888395311218851321466340269894410959986160112001202472273136099247105212849442879731870283770200910811598045617413670921587082023733490037952913748912443026759961898322862764879175296173435659878096286479373955123206621957036159779469547924597225588873789534153007099914946678132890767587206514582297081493742607507804338786577696566754834561143674694559897095302606743132919160976179523106168936542988996326758485466951243932430346169095308462952001873517362680944503954271524235368766708536460069416007985945061455268682815722737572934221386588659033020302231004021213349930533719958910326782988871244066422802388575192521056003228818213479053859269981048320553169688655264694454102557168705471640017697524718787006438197209712921266268058844415412631818972021547988403358561605965347194551343250889934225808218781636492452353892952698238949959211245363089819828100018416116602947970548498988721873743922112984555783696629311215053493392221768113940375639535636162122594433310874592431644989251543575080287758448488447849153335702153605424812164555146607009177551175365547628304776806100266613326255363743785830773983572405176337193401596918260488603914219003468404365020094465475858867018883981458222198969944905080646032851485537169195078466669587537849974495537444634747596294964569297518291264721459832121084066411925446749073332283819259201237093799677417337088438219284646494548116227940146765649768532820390372567531739887695494773147761962586116467690385017648721314273913112975351486357700092530858679704647750989652134434546576845831970744078340226602378399471928363653234800025158815363159930579305523394383043949643612877193904193169911676555919541400455411974654434273782362285610499943645442224832336562891125245567394699677763190316816823499201269857291518555495501368437495606687709306068492848196419821865740240151267810969862601469066081430459518777687656171760772795403301749745815791826378785157147783844185430735245006447969418501347304809950297037390653720928308117034396574406530510239276353915748059598596423533170787293790680918764914345985873117020381993540355884208875559627365714802008164900038889763759222387049040648245095809221063182044295781656859556881358163208169551772520697715598836244689105667886966712940372708919354106360714634094379917491958697015011134976338798917422869290760190105674105592250569164908476300344436959002661642252505836362443085897599769561033975160432420759889468253873012357317894283008128818827410600368645226238998382146535754127694074997359166639856582196976191066242326800925335058143195310780527123131674465206907707308443526098410929773100950762738664922810011235234420031455537885476849105185575744145828032374886192839856704637480814199213941204536412602766804161966027808955181497416143776605914047102539738952414755914255471029337839517510452283977385883619231054256133867504121206864412016386330751557208160666302260472124134779502807329707583022584142253347470066706836993982979256755418585600422090595367453587766187914071531412702191946907683013723400259865210436186669356510302842182668788608623467760721535436326286301824456771691027906991812654571578759811795071314253305058328204704881676834265348327233061356297320926243830612899743601395121414597821846189885699896645664608211715958439973907812790080781328100223151827241334417246739261770982077847611838015987995608556477101048956100855294815350558100701802044828503061745617945935644186382680296126851591534916410210293995575700512589394705921525077177985481604405314786949998325994359431439184887360933575781305659128568954472142243587113162712294668091669278523803128337975525969159774920338671288477790524305487543366329884368533088399007594092060884839250547498022541674541484475674246322754406679597454977693619939964569781173049667329896633912295467006210870956572024201686846880342236463083645614602498600324344793194114638559042531757209390717717437521426660260433640282788009027315447961679626994018300039759114246457062427984064831745240750227544715906186221763090037574871810842140774490783274265416215594053150440608510383076797273424874326048935736530514407467077154636715595104480124092851433678587082683889707938877827792722093694629887911160700530687256089298001478106864674413800215582968597291983733019729833178211331028257643639930896123686476134549466120840756512917891778733929245184859436935157009721753220042287819206946390020088633505724651498775948384536328477941675059240814379948317787419606051799577678167839456751962137685324081504029232727853965117974415721454985288849972558045089583200936554581633681344461421720664743099375491705186156480773907891643471461453130388533076102170357076994077303976396785919204518677649832526175043620051995403230203563900402863570039046044680607551077246722093953480144768880494663406227400550882753096224235229262142565362499611422243876303251495618843254387698410805504127858739464230604041160509156847876603217164759679566336289187552798580794084299835212229533646199179333769354398264040690834247123921444249662087157717861412582418532690170335528858538431874023316982781554160243907657941861397356963144439310184242242070595956200916924514486110618132218225201557055640423207064216879135794490556331826621584358971111980688499918297027430174901290803604328046800699902887720216348775490117525604312626303726318425518592939044771161126154743893424832495323497789968269485982118783740793918816371467225347977077656679219702284456936400210896761291194479608422999054058231582065002548729748554366554839287975163707373485316662219298539670456513508898486205706698015435898294473547539637594659320205648176824515844712479354233046473112694641166155890500039740339229444677186115683015344858280756098076503188423223438475306393367142928026907557675913192918466644465253168167459295619265551644510347167774757533331430764164343240762215604670011700012561992578262039090333604868667900717866399330614577913809083436762664562039281883571399524234489723131930014708109112021565601504513991955063129202885058517279983026030167646472918312963230384281982281500607344651879865956646608397087940357983313786130410384809206913873436399270983248448953287141684730700552042509337861793673467719772590282106435000725303151609337586712978078134219318823777301070061976731773003127693830733521099366417412185387949890134056150447913946504019965801347103207087244640546258599140729165560788296860204031845012593470344798037106598624386070143824725266824609286289620046708514087737433234127339375773131592729359583437145436316708812674798008337773827737767271858874261685126508544672595557016918473002859371722372650772479553045892082437806626595460244863883746988280448093431203713426620575782832606063527512659713284394626097761890381375131462039685289265152240285859944666744969026415179707816862447351271874125929197829328886718741657809152732917361000399308005783328007469676644072552382994438825787801241697434917403203094689773420824139209298325132910917643004382923950703057347520493073826491251866179776510575052996292230316829224550412549505264720415780453076775130254504595235477919505989796527357845796419653785252783007101878629426463276248515200834330730294760410774297283123692770744730426575326032671921870711687622727646900804894926006095803780329421113455962299452365141294808401555719488449119558484311688911732400770148271923359672048536312102759016467922566136805928427132648045940070073171247228602631405944830436551238233582490550075515019208662207150156046631560043133072213371304680779904453621409561091140088925389668280337052164592217902330766847869976636670582105554449035548851168984179578430055865751943124848581803727514158648105358111006176592402897106823552662634241616737766779244224265329548695320618963903581209309608425554641007306090256162938203628094262828086050348391282708503122251034428276564871966918391797070894152719021179191564245005373207535462972720588270799860665829759495283675972011114123726032541626204614609334716095665899865479398770461908174293387290462588354153010578551597585890867405033398882697249629527527305745249573026332164295043914000379310814897759823364721633115713328369817249784881902559626020139035504586260970304634078509536010678589552207314652001304613408430271642536448765314146761189960910302748350342418003120581608739906665798875904619333312611511731982206963407721627457406190557697874158409620598288119958343881212132309583781442253342954554760149070330013219967839475155427125322280801475972207518774641617045417293798281451543861600026020217657209000236069829397973465196374563703888155781117708776511633587752904912292190185443846207333462528408777622782333494898999785575253968698991153927877716041191949617102648102688324709897471086088414537234179654708548870837663413375742398598713835856689535409580925643582525901731080712380099228990378132086363247258258277236441298564421246268434266253253447529326270931177499131515066866136199685198392036499131185319517241350729561911403421963400280956252359665549645770699464830943620662332111230137703656666069327719435426810599574941308002166529637519013016162055957721523786509542916581521189458534964237299351974189438905690425199254757976955170472765048258884000863827540928276499616002072248738437108827722405720369813212443111625567204907459645478361905870216100237479221122881280179700459803663332301835141912628387695258688409496682380318990622477845935947936031438494314082453908930629559913295351557344523146311482209708466125514486639742095213042205022195348293966149519813475240315072986242180810023326468312059882529318431313317158578672421007062432509965275421568504287267234732708769102010301804556313682981980246271466999859267877214653293064117462924528649948414227655434154429742082148701948481095590318090632039567284505822320460169232179761535374756788518670506328126961605780848826125224118962343903500781142394868607890574088997152588389735421145724768910095361483913648686665228781394762927309249060834079871937488033612138396047407571139314734003670377852118464598931851458621914889349931588123229029103792910547890517336688118661671637074249182005539976976264448746421682320287224435701988569376299961993739851789490119230869735224684942324775145502199631951118041359493893659087918924542221205170811704355998170310183236630323658724690056448335557614991433430005733715091372283564667058763926100595391116041070844314335280579292068610501652442465464265469879482538573596633815915123277003048828154558107788834349961213867483460937688044376846874015436893123842971002837178880851885419927719101332570053094141739934926919042929614479553514989331833418388316290849292700888353433887011968524095818012605419090958740424460677300264487485380770485577555558492489164579064329621410277144003877815467451463706647955328688338263821946056138789513676542256229882811650238624982937800168310536373363725326196513575496345044651486193484837378838186837608744800984606633198624191730895249701371629716084401257534728584983029448004463493832133982446537435944748229915644317875478021323416140095389490910173960647330729178826875745363784137836906293282762101075476001808050050749655615029799880907991117459038546071076552285920382639904046269196313380568320627217756807308912731023045441455758653268636120317133770516135994065957496549832094764685644479439261752083249104927399567628504722344563442111419513393979992485124274280843264392565128860508775144853029782624429209793604650009794746409158741024955893543865255737473539714505330301869768416142127465996006339235492602444936297050810061465682519059761292442677287161546092346762354735621355426559400648750834865164143410848662035932569858187587388977559164702430327430131214573467781767905411349140659857208060808162712182809766269301333901869642937980654011644155484256504575529149015289884187958857662465251648249599169870687885960219552171301402140370877539488314483766274261192829059950690067637510587112452144000653645704059828925697601762259064512433902458439870018009920037978392773930550909169700185069750883947496518512939913737138072677792377489329990976920290627926869773013977405572894954186659974230114285321954419806187029245586780992519988149628487101338745556973122197775138248702408107478806272075093557154729951125890308120198186728396702095623372382199403185760732942852788269166471497075645064986688951764579671100692097574330167683072925949842725288874230140933396494486771246659416828336768626377240771151026790452156516782521063210922377881887400881816134025780890357833122009406730897703155602864614738915167866213098950388343165530082440944816542749131077345754026093776901132378065681326672508896441723560383300897260325347008734473680905781421353447623565527657551682047615558648031966914435933122209548673393317657238109695827813432109546621388939298164638868786928496345255514137528129061499537562839277538534585367819790555621318665831008857699837759390507989444828395490214563452997043573814599664526756221411838305046049715208272659472500273577509005758121700202056004660811216180844673618350910474287554711345755166248890484362692682148071627849561470966492545088502739819133815253166720567470483077214771618536510080607733966392240222631639343254808738465238637681433470455653910124959292188625294198316954927672462321507139916226949845842646922718680118200034373893721915378175772004857709172996110812540826139708592708445196075650540495503280746247192080929103261053727719865909165349739401488067059579418261236853123077700379382523303894011567758701997404494399935565133040364535609073095079605439912756788076439661198655970055946119339022593580654376804018110389427939237189949382800612562224648778813588575460422685116632139062701574480257701079024724005630754297747601411145009744326402444717559116346775493168661231090081810029126148984662591198649577173277430940589404978494619808548694790864442726865899668746296422669128630950967575192231794663412846434341507280724510613636540277166428390423823035485347134899814414170384384471310634681986947705937115106715569559114252169918745157558247134381493720623695756993237154106685191100746413727684267837342252839649520911021123401019792663338753948189551386746849423379276330895692949131323857525471537792047290037934698300743262599011431175205749464875501907439060240497953898632302009538818776651574743764976209590690921502968169238850518878884160489795518681834621859152402960231806377634064993211701021159739801009977628644766941452931854865421955895706956714367364272778898362028822772852239492910014024174671504414627477168495583388141553241265023019208400146163184822574489123787135906692644942455994046142005555218034464630195380734823152638677190269920369262942539374309372192645738380472702759155502959475023828225886624822448572090247997664793730748459157171755473396013182305511798632550602691963891670596428965745461228174746811957317013598893879111385599158224614728442602718438580901786972588964058818102436884561519503786575419881286463235732409310539139235352260367141319017245000595182261757437274073365831824371024972147942740274322765791676195542685997311118530738629755020587603328359938733183800203677178085480067181782371936103542756077426383865469884792895579778738313367311499630485533154843120885163331111355269550944249233784321267062270855169323561681893389640512445673001140082937472879162944590132238105115526387914271012457852524019434359649211474511026908409124019461744692134591047564410428384244706754160269986527597116362557717142192961861205849334747625541794064264978032979229422841571643373742294831593537594106076185518160160153213436501070511402213637779171511573863873258204450578007767573733834535771755238121158304973207316184980341685198619459928429421276467682660854341609747403594208412010933146541952712067450168651933116422741026008715370448080047564755375616892922182272029107397048119469531100333405556990246625605660378036946293923332105458679620669252753256703616903729701815594788144802684742725070021048647624282383809148949104869407474071379757890681104011632902579104571574553951720100811970733076303980751226599740381447256054206579034595468028128913712060393615042881940175463691073297849476466248612233232593379838743514636878409738414954590362348615555359053828042010309880044692859252999475881616119122441354520690061131713436899698801912875406745257631034105963750832249449222499533136495979229888394517307726622433574632094921885887164734053427111615458378810644485006661127892223018241805839379374896070590013177356019437202836254666825221849389883086132673220010328272310749216405029883617223138815250002595760176221518954085355675654288346871078506592219708167917762027274954583462319363747610189118688946444106041785033241152207607401460737301092347194331023384072688374160200037254440971680595421629700887145784889211679828092446174882574668674686022946809398477142340643321568802860846191351437250146928464215032844583018775973201264782548581551488682584915447528609704997444474221134298513711602368317373689543065446951824348402074417603035940185607206208058550700849576788304377880529227858661682209675575169687723239773042620547742962157066027841133055822350103894877938702363585344093382742714050537378697600398768847826754110729786545334765713203013064728828060668798641398830328528300656617596558248259608835886252489336096798576766091532898564185829500949175660741078409424254744228331127188982711991465604586807010878148591621399453337898173917158644958970878561096926568899710902829981380370198323808797287849704801186207981004564193208553873314934237213043777723066365276908290499038623160579093483319301538062468091529910846679706554113126597760634027798782247593966987638097133345901821943127386718705526868690635064271359369347250239965777510787213616822199024301841926920841194334687906142223195852912810176917286839635970765860353006004340881319324954427190378257592527170703470893066671855465148784016168965841609279858031725632937458819961230605532655360952477534895565695378365587217506929248180160103518929833481415641042785573998353830497472265603978964313787181345788404114637659757189897062112526835374133165876737308635485655008128156183555466166166324025010403556597168661824627089905019515864008146599678086047612281666883402865472509485362123603381146570332906722572609312349412058017490458181711793228952691994091647940769680100650221797814385723602254452846696407725725803199118021128936865917237363178223777966817668451538176167149160700554113871119592625156974948384303778956937427119460419253571093731166835989533751657679660673268025210598749231983796532309660182510582830959638568736179006366491247372308041352951231743786101748161888915028360575789343644998765214234676239104010803243445725661248212239148079684770370106637459627506653410093250469486983880170209908251864088700513114970737825583369159491683476249496731965216215735139176106862138445878004307939872513986987074905882732892221752298487912065595043575427860832456490019508957690015423331995086069948080181175805915398090595400824031031470737702935852488782733123802139390112781822682480628086062931506184546925669621396285872804261325210661590384532764332736429481630898968830562512551347182052685796039180189980031525425523531877378466597923764175110455642448508813913255381420728905702182849609265782039753514195163916761865818477596911254392637564533324482732256489183650812406096428409760092132469179134001914350513226789688016511516109989055748116426060991218465756728102473154408822230447276219776788471993719793178288773096381805706470365092249472657815353768877330111879015326819965169883234500028345034498657701531306996909686750846169504344127547828942869815262683671000648680377781477505464390737241090360271223027526608747611495337234204387549156868992888990147095903566792194843456523366920614444292155306099750289092466173187477081931819185387523400077701462757631358091335108651064198832659704761190150546511015710228650856263016300803468105503896487989403153786212049013896341192673407550789670649342248824183075057193668723040070777386653746498414143315573392148323421907916686376336666313298551873053674509023584623587022285968022205456356012125043410086903103311914288980572031779812680889642163472646441627211321839078803970995498447610411973690007989573879295739028013878150268776765289367899255217711918952329132765044387771236237749185119925228504829575890878750175197165271038582786936282624739787491375976998291444051765719133664520146439042388318949893301284317700916178690121447740165151109325990616195303986255739835560453139670160900364931074216136445472016068552782859262372105717794859280172511936238225485337443931086431539459807174417405910828081733224621260958778677949435757445967913539177117503590737457368626504876022301371598304606452214245511300381106364416542734067970833557804967815975425044642961574409861655525654027326155461775194848108321476690729548103308384429252272893800091357140642436228612445260623977727784393426374872989238436901781256718417413728962466503201087075346484904140777205540541093604555303135066868647375273454797640558599792430953163066573231327868500429212681610918475249731506847274568150171194130541926137292802451300684430954755816623784197481307200554114261116235738772509547512266411246260076553434573049888682557718692073187610219725046789034452389203615982875891955420667368725764716765012416530195941105181942501991623710488657432498080341182059637552193289018642162361178295060887624527961216747308486261986829156866416927433342320250742203813392349838905399402379219698468946651444663427320507365668968468872933880722465548596579580116022244414540130872388861158303021168795982810311771238798248592904622970804802394289825125322813374004933350104054260907105563843674708025795561816717528643221371785973606209376876365720692617258431469033074749967304125369861807056542323984575034274277907945041449656919689918249066324605673215314463158491027360409093668013552783645970766198255307665193064620923887720206340500030571627794877987787222508595869544888450285166713969542962772300658012466637121189390532764356143134179258654320292311642207065270283660832844773891758615714521031352130478519476673790790515828347017609986040083872867327958972487050508697159445267287623255055954149511288466698699805580280416736996319254870182441233805516750430973297160406656435688875514889554370639309302602018054583491486680307008477087643233828527931467352505118472993779874266757264825506747844527874027318037834468656164550486007956045951448953927768688812082047462752343319622742729223470006514751537571999585323880589531979918600381225018234672748665167932807716137845785272081520083579055506287981076903180829846914608177495859644177474088977362094025712550735830589082768723992391224221199153909534447929947155185752857408115213301103786269044696523747970872031353848692309073457422930825475706858606506728381474606744674724518924107792793893985041131297006987788242188712554350452760724790091363102577208826419240836825611423798797012535566612655343157461512681634800247209367446635383768246729005814456480426692075466280697998001920315856981391938401204566335840332143861175873474771871103599886713370052700811487801383948643785097295898990871094774368848997646664602654755962690361226347103640868386513220918739949226180205807196894294396586363095280269635369736475306876410347165394984456205852798696089590749697086889497680123413324249102006568639686749912042390459241697101031107278357148262197427140781411687374811087609784711842843030219751479773923016076856663186798925386362725161233593978975264427075602187319813487732332042934046811692638802128304696690882560350031996007807036219664877428445467405311981945624170004199686778598703889268207068164213440355824121498946494949716696546488451869952511890817035791852850795156644529051677487322990561152758141026453720432436319501093509875865133858457703003898528671611710739940687044073954654254134821649081446676434298137339062620688851812484126303179445975660656960274024672728666992036960905408933760632468539462951589236276987888893771946096641776472768305309329113466987558328595557182753326640733702670120723919576983970887583830086687560069977407094399189372380994422806850028449968226928608512610219798689101486313653438749500607489048998036632340871371791143325770286022552239458306010554340317276327646630845331506366488068283234500782768266115458990633314009762854947321836724529346125909416534687587480841032743288604287501398833864997947948171298867317047654125427731578927924418622061566790630136022447234572489348084452728776911025660284879669548440510684838607685984185769084857950818953091429340502954510637425992086180401787357127270984902769053073591115214189703901953954056704871905948034800662803743349135000467010387629328385810677516502304229559513881275220062514378685651600785363233375201049437620383439494292664414850418353878363033944564209351164336957642980973027934595291043486117898252205101075052398389928937751211859531882280725591611164074294487423695774284411815253178850024151325475896375256426881624337560227113719375787815993048599150889365809237239318906895013054360041160059147640738730452492960235171466332719610890356993666156647752764878137997134338007807426231458019492043418655537233930741320603490499829200648732548802587757823264278953019213659968535856739797366636032903120208903069844166785751082685575411490842064742262897610336895003866466856060739865047624364434285553874358021520721501777863425842231266007525775398833797514850578428957822088808234079066255176794880159473838630831912329861808205429290129678308679840362637693159828255938467960296244877237491951046006469075608315241061459765594990775677138093317215457789927782640250027755626940766727162921192423005281482842060042247602617354674273833731932630829237616287667365023644452085776536869409292776540708129398344146069323082987559270419563928308685526274651967530672733351486132223225279059909102418677094504257573872288775577514070380297539769627873179769195058330355557946471603882310549761601109448986435749309870240332772020300694329349417953329463439252875043558532842355773285630436339069888004643250822862339348800368400143062044848279220361607338477883577286258631993174320468945063949642609098987649983701018874662106361886629291273384640728135539224224282692629280639174389314419159442092186915839241613660768043657684537755401810202239467475721887748139359007500952602995491298431088538168574110395585561010941587318088218139396075355747394539156248356246985477560208749712782081487932675009707091111353954845127953500587687685619117719540230190491913461096163376867580568928440453623045834754952921293435216788209786286753789113314454090040377329935865172239342282070334916159841275845417148558726900645202014542119050878963626085163902337583166932070411055162991679581469464334165786393126078979567971319936398488468031372983777133538688715462645650049270095907362929305928097602629048978581751547792337991745848746801145072483058531338300538541217240749485625123911845335331150092634672962160448584440584501255798081160143866677834170705893766582199594683661366468830650930726217464916650453202642952954117377954488069940476055540871948190517931098562098448096782224883274483453966058282445520820087409792463552484526225398281455501476216581325063607446438089826030222360489666781723963661942167624984844813809175512688448693873674007055917400620189047636285560913101274807572101943085505098607732590494477801207192658367569998822147222931804230391466016053308141985584839119003755458883915261825275617655039100581258498261346489990269598140320152498099622438950601054343014533531555181594800944364607611189702159737604303794646843002119582086274627794022504400079091414050526440080079749963364766700210138931538832034430910813655233284107588293119120185676269306785712045917011664100799993844623766582173864432517870663180921772906212909647205808927184071073854500888585836438208161268165905985063884752130288569311671851011865492474583762511484765622124880978171956472210660571376843498942477494166517143488091127631158768299822685590642818620687979417926601035291556633715229062197595181955475373020973601791879876143494365442230513144134461335859163174427664747318257716354504072947662636078109686132569046356800063923827890215706461556830772237081753821730576759398095054876587264348576597188020948441921215956359806998014841087944116835544874981610037886334222835745651786440616374531960548619577399548773488918538096655045256318524935854440511537482193487245709847817240630764821202698504241134189681122757086969110909131934351177576244165175732079858173001916971829943823101492293020435399727938179748813666545563158246711072686428541824234661005023444119387247656133790531182537846924593315282690123617159542471112290703847417208709731126107769751829070665441978325754927880374718125091351382216517785047836727740045511989605273992430058668056288316300101359443070164065008122596109480454679974784873578370699903053831234999254904207619712801549104137630965566582073937929633653620307475887205255637112089396767922410775483498642654550966885829146914646588142257447731625295534294967281816078917851472180946879558231612015358293064487916275375678320688080659224605987583128982818291363960169567175607708520523090283883371505275071408650005301742812734990412906849558326895758248714618342573697325666530919639837424339488811234507994478809009675188690936171510379470823712079798962310689033038310439105526862303537326855577745474752006096664512650310139063698711143686495769252010903718666716987595859789264441995217561129729937774946838124235035990651930786130995942668044262556041166814301883428757777670501914948536605257560250357884353401710087854930165499283022655243972991095582446121371305518581953644232167238831018008341202655800880089982873020236109744004296517815099396945467334021720283504950265635775837565248307189228233598049587741433346056321108863851333910901240514138207365463934948673072758611532464264180097156498160957472857126345754660051172447626239013053134425978926346990118878289271174921272328653167733581128350053737919441017302463804108321905423662003778900771998526994145090866688005373849371097737143856623624357095992657697650505972650073045117850387732227796874752615971802939425281632489771456982550105460536339190587315637406555405199033818002500041225364499091826294971990436867161310389400411799003786504482516249712371865133984051121230524290828885921894829868079424160812712416559122101955604170551804401339094327740290451749845551302892752309328392539360009306137059518261026091274732673359200822250148378409226475101561486515154203318449559193302024972577061663545102297690408152184186163897264845488373648954934094449863506408678960834219216191896730730077481761677682506255862320018073885984098843284817150102621379012418929789420845473761926195593158029958130369735626641375049912636922775167812734294488665404781294355574046492585449504548468726432615621174739176740874359852959697191830724845680026522605707092924269247022252968504274976262762691179261810102411195692528213657323675193637222138634211877174889442541249533096900830310873796651201919583017829803364785125624836301676182675518428199353201939948182473605602732629595620202903795269479153290364533848250382642094920074624398162109755733772341150333378704937594050534654470802738834998321259004757680427778424249856615986504689911526844247874613575441719801756444628118430278070329085524193643260592981343228695278043723226548116110820921331325532245834463583627581563155372699217248763368066720118132489429125136025680295915225081255518715413131746736409377091039043043063896844568824577706163581959430634574682784040477245877420117325021007743444215444168833323868636510177573984869239721137355780592061540112846433657515565713862079989224544902300899937702524714622649622428020624450601599054531946745780970111048685698115973853156188562627936305043673663462975572006206141100951308979403611703651110844017657925475421909064946526894540134018853732702662080528597905121839219170142306524658762169673090016485820706602814724990097898153512153775893321851137412529380057405859491509243831229520333354824306867126349293280714041727656341257294125117768059577392783696577511655355324967900549752311582773538985381477475853058880365294080467699511032789549395310078187231860732946650184877292304797950519065565642996878408285723259849448408560382607363810680680398502657731563221327132853800257961213756951172230419648886574539746837835559076795248104462232363095910391856331769716882423303068737270472071899346040879061905730572767458620719805235846393100288462249450073604180875934611169747998455797910256962622445368308958159545668646817980698518569491480488114680452826876243240235669090648018949506021733910665265500465528853987614993409912924420722135268572327042049653595546762678309860212953222793370443977877867726810476020906549854625334667324898721808132262212535701210003331544123017520406589204668003079044044691029964545916232006706957828208584856539435595465853952491380983812718680788304571860539604434723241465595244553812711655574829405532094483882580869868708691586112924696632105239332166848021187505718729250157863507663749462530045707721679971726119978065614021198221563920836604518756786491514465792398260819655387963640774692036278261645408149796542871178445351615871291548931998396088193604760511453421005083753160463840334294768073763301853064908652662360030623056674424099141659181468881151080054571706325628296576641364624180323479701487378549380998210580715465933671145964856287108157313763408902372516002408447694543322066257779802173458580906171549430513245612779108345205133117008496816604836783205098108503696581953307129200422977647489704494749256090655248334455023741398083749241711423458821409108332931164093069073834395595654655433115762254644017938648851146781102505322706109378936583603830595527793585455061011681477251343035582373101664799856121101108123562766167031188560022351946151549554033690450587071397872180932810074524054644272571789277449390809529722899013890121022301672111165866206712113248386262278646650218086948368478342913448563008072770841318670642363068624799223601594471029333807094954158578170664222595312602386783671914567508532912074232987185974912082059981452869001236295900282224324965862798279495266654265058469921183034949795699858256666790463278346219822356401810620010928256409526983607042394538961140550438537251287425329217030008830002348059090239234449059218262487107990404929573435265992166542178448421839978394789930417896524082292708462257409486775623811057156954510430583655943785304097631619133984110224356763126544002850849749494674795335709015045054568764197550454977814461575791045984087191853178618510109697263226267558544258229880323607881399288616325023088818346186443034736667713246972931978933889703857146132890629565566982221680160082043098488855276831491770915637408374142716028771206976687539975553096900818733503582397301159729627775506595516135289181699108326388857050920648654997000331158301912618146828314508132148969122738762957898783668777271083567470125285526671629665927953655886923798828058898651718331997822028614986356171642596312328393668958186400017788441244295272821082267229926884272836623969799798566003224837562188903991609172812315123699385063940475513412192899719305512128738174396225236553034445388238707236000754076820721843107115291605068388730766778890735762253623030851809980782801280034036052057302057882328725710130551681411399074764288539487996345189601857125840481331009383917655834379403800065681089397029701591660824237762269563541225374868299905848214387322705003370040974299815792611111385195668628927763070870656186413802710290385873876523055097597703154967803238630356967107945793827949896775872171067823220396250724290665141785824096027355989597801667128052471552211096745926727553471531059189899190534850685528188262782948029024590414218210190708995343385162942854252425906379831038731332850224958586856146567015562604794815142759476411096876418909146216198128144727553815888644688935247297803676000775300941249478260827397767634242627152186493943703365610965573154647293622249398838908419296933141431400315605755646559731153008862345890977585609539625741521074283356409522770631224606610214248287507395573650923648319081296081642832566797842029982217613184790651992227713533181980102715948121676058090007673823229764014765731509866876473086100367325140987095437190935541942462479834770077261374103840791224265520287911488991121200223789015106235326091366594488123971226743793341213952999634307448629605223081291492727631531416633368469694184067789181483492778697237937137851698904636445245979373248996680382675272752503661242817036521279137862900603248183281772438255346146061375588859815953189231653200453403598970429014007019078879314418609872126641583355588645358799175556288660182591397474748133454966621662624741597260732660280088488714767725302707228048681461478096999151905465218021076420837182685714045703486252204740441493189010227074740944710923082083283605927624480393784172210877706575844562081683374357232428940485324578216576192150202471942740915641454942450832382580235863127359535338728010347564322417411721731061895343735205429402384956284558849585297801330227738311825436077459198087418615105186913548474458567101822482422693652171590810940608049349638040640989483997238464614598570779169779639324684600966878026272872488213186882105643738736514058418315196463035803164233336458941018507550662856849756748646912662945254524844087568393637767863417427049773238178547135262355648391890086293565320317550259341120634007809502136978138858913691987591861247337490012188993862885159864399955989125769289569683535684882954055037179580767574487182273655236585656755398740251030076052771077046801221769986359478772024729374196436643577571507343530402394075205425482743321522697704088719884731485865578669651204705314029566966322680245896893224996384817616190918241426244623948303559534644343413429255405734663404623472096376206923775275310386180021291131797113516147684552997739001449744896911071961424719935440239342218416811905269716644035297802084235365738485275377470502391621037873839829801230345692071184513830307233818360858778961444547079939016289703374210435674619882090977847630371766673748461973631024944526327537572660343074597704735384430967462876735863241931559676447520418029919175497504429415214320779048588427560691962820635625916210297565384343969949322274289129890342834742095507394856390595114431498788811488221650887725891562921617557874467456053021467414286513078976727592410971819806531389022898538888463974911984510557047529027901804615173829874134844305636234888416691098440264080943565216493548359286500310440877690101161722259603709536202485019265952057787143854117614304019312581926990596385044100722131098793800344095971788220232108307282118768099675904723702152213340282026089254993749049092316658986171349953979783238075108406486127061800862219209908663211746195239360671404553078841038291747576687373022024489162668310914393732140636185146715672189541366458057958020645814422880117793982611516799197165492521940704644333087233095918639513968519174512966312760617142534373915264930776956923084845547127329729237554639785212331898643021344481242928142147676221382920592193592793854560042338687175265403821817982130435695667627815845528583936593906040160101793941096356308507541885583275985057537793575787566471082499855263930197727782973847818294508191505803055686274327949366393496408675557541352256221032668318223233992697372145683692718042138627171833924942887557359339153131899766614916082588741294037793522654069369212805558106201697442110614881736831612251449592155412333159896419928567437664468893848418746576820257540724837081081778185240195877998041093991598400987044443492151323171648571917604598882466635109739217966095402563176524941979674296598958190615017970860268106787549835679423959583860157021871136977854722524015989192075958150409581292070873511156961543088281539171215384729101671434753679580831197228200856763642815760029953542055691136525578646916542645056732881606527370189261706140941920316415333181318800130103689590092364660894244582475922992705396304521488053165328940886569672592845974791856232756850001324183901398914634276854756832411919043933265247723881122432298011616345007041609993436340571101810705018148852771647088792518448713110916017025656882845358473033669828243126679181018641983656569149531169602270983679830410258733250924825935574741658426137640254891401880108978877388776687353694111146243860219323489154990763250300201718570387834424318020397205908537636100596331242393259796999095089279507560827756440966823768095723464325203985426790719451159183762274492372933765824138848705527223837972259242577697035551623158710633625876231522707391656715544848874250799378579276983334422348813428611312732740059833536157327441831169328028904036512742999603293950287378574746519109004762869931794701692509469139521003422124030873067355388684746810306250257147628136905624632558108465569609089143292879729028307670389823930372815796261204014908194195016780867984749980868017115402544795413506243485371904857677131315649202462061426675812317985391535355250780556607638771580556094228447833986980368684222210948646121927217899246894166518182876388404260927302603173410610220402672436383489069780801904498824545576511536174446901092835441183515959361109842935014781980256943358341066465343066027395837227848017857528245668909620013891702378117356276076218598262484260776209257376709629815025937135093188961467930002816133834920424598224706314317343810081374201668762648532723301507591184718252969616997140732253433829743238759857114120421450801921699620142261829587463132442092672628706997017252588816874607875107497773322891386901159937743940067746236301555760980706775026929337051859914824055886613201874548684199300551544845845049873659762588881900012482131667368499377504507751136042826281767878132718355489091243442238328776672115547580082958289097983701763209459298219044584598595053286858826146146355271119268358374132594164518451194809117414254581877182595281702464206850337024938992991373978594441570866184055397572029635237099313804088585137380874681758764343017450484139157434663972923232526389427733721958787472728239942051028981856007409936303872204504262654354113721503772580014486064212353548478471063091210203374775791233786366574396882996171326040312816466174693405248921730891539196100435095930149343980585921448098564904654252669838271500924871953648693301635240749003768037914610296031755770177228558474787343232334278526500461081881263639866600345860746157746573646857647894123427541455472786436834823935946980477387739004872310265497236029048508152947229370464578310773105646211629653770034194086122180901178096302074641738319585390334614762464035542695278442092140716077146480992044286532689799886604682370641451557905853216389719101553614272046338832841317903648933503591154000971710445376607331252403770072420236104136637945624397286557252539446494645026336968666108721217199428203493228478321810244195782362090432216014159671315000615821672181846669577340511064482900833498053848800275631737291378025992688450505334986672126607699240975104135906188682059061602116962241531414030605715824779366783726674233474091897083484558737274295517180628689578050175783944682984986969340284824869041283085711724917921481062905037294453938221006814911607783024517736834346453032028874737001622743059793328254317012338971831190406771226980735142801813686409952934875693105348089016463534501403856403767513890417905895072384020661812819057908064700571346094503201264966522548504508168694346733282564684770531817147959197041003335983569279804566613361512688287164100019433040695941760520211927440588686408057048952173030664191107947696121767547610986140427368655415282697235061307437692452552360311892961316299552399145532054730735764908560456924678975832184397614092037127238662106312490893557342262637813476060370196711772786543318819924374329560562892371314068335272318978194146528551597169825574590641846485120071053407860663556635569593471974476881556937533264172257781211040506130932668867528406501036177860893633538922199792809462255723379621498641264620454217773681848313612436438011620031953183088795929845938559125733219740852572169069073109533992753158184265618176622363499525777898266518193629603983227998504331287635412032432658594177622321545105226442944024897124057437627964687152753524763376050328526266051199768674271859664389008661865410264819170281133864122008117661071332994374690946817777640719740696473756412278187327689820223404211406073273424702313589544884100593627352349810480557993830569323485189964198413560276429665692247862878508399810333131168960320449084226728552112642180430330883521928922147171505062505961999349998581502304644103333664529199252395057553949971027570043356663678891826053480166143788869661496996842149910345758153702622614683692385769158882941677060258233805490330556951737482771687138355878834631359936809168365124868745854668679954273209787229830001564787183292705583118875925199516717821738417930735164393623779319142395288599580488258627716109758218476498525819976912736712922500671315322504609606952086777569418177832300027153520645140039786508796199629023095021451654056636451007112661189185820567657279627871977449946373873479895787977473641050469706584313465443173886746935510503700469501597667795411033592369909026343056102142262623928957200426454223979152462153967737605894781681163933112576584785854081098166519184969537107786204393360380354307351559575910689120042280609634482847780340133250539405337257262955696897903465653736357334852575217914192811006877748397557223311669237097780607498436981255282056358961947488502193647710152642854834956870696641158000792948285875916187678192652955260991641609454303019010933187851167373716622793090098032873308708421581886389424260037351479400621990671946310999474733531749851271196010073856672144885840269737262632712903359515643177287558795776738318032239541539887465398271454371780624531826609930628291547630298181591603516883821351593008453841548763147798883561792027664256658805275897762580677700063968271740097817665254480636983236346747259727006988067855088034292648584336048436291404282982592430789175695977030152262048992794455143802696493084429353171654925836144517429348916036767483280458821870581788789559873955592168055351067249053407547816560291430071295181510253238584824790681158880623998451403044428692368515964393552288300650093089007984283471617097256194627265560971080579853239097524441245467735425804246549522909592756795257524420592141364495035445587079155773749192897233900658712719842590739213129181097506104857432074987065586267473384142083538908683382617737719301135416370458813461116889412004112243587879384867726854034436515459751451921274763872362527022638918169258392858557881732939372864818082204774699000065899825936965055875545524406572964181508806293497003503226078425283465926059596601608202514768418923632920246592640453271479832722890202329666330748116441975111595403357413338457337844705026797737308097325534274675767182450120926575298806429728585640636958485906099502311180010212640945989965333881817492588440964470513774022613294317430881531253333982285839251639652881937433487532092297135806362769770668238345652513717399821461046386897301442989448293318265190193039280323181372793465021346549898650370655364796144575812533582462380320069213595933631380346362844788307880846844572879453187160851515928397509599003860828593749040263346791299181116709986873148223722747688568381287750361160160996753744210800572031818371551061056779492609383519206871722089649713825764038460552755619077326582520471708869647690861695754871670881358016662169319478727285364697577394270487249110724899585419130732650289314678960154757886542928586025732373254016914716386076610001548101073739999123295066301125418625698472467354964579366386833787092419205051790691679012060996990969100482990949104531112815552793717945956331613823463581554821479220893873031822900413626607581896977693673697141689267435853772836423432049022815683044651623113668402592241909026731848099856707827594494109520029541318675552799118274158567393365239472004517414281869592712475877749508634693812237206032837018650330148827936206224772375107927027468733605302787527582123112124224649011959833428563486419589032116389298903232060749122521818628274631316466862575149170554074851827561161436229988634411318200316933909870614752985933031940381552987628243910049222707958240630238142807081460248150669469146065774666724529367433419751383430301466127314151533674993270559534752901394308395596701534144643372048283062435362064769348000655959330680214853489758629874468274326262750747031330732420061935881857197904322167303518044979815126613098906012659707647390107016763757640735414878542383582717004341470792495595761284122545158355421724940123627737904699215996034773768725529080403274658087213719642415330065836580479923135821437491283082297422465373339859302360289990851708637271053293683571591942914435846214194999877294180166998056268824776214887747996655916986282238765814119475488217929092387128425567357962476388496565676874849533658628310878053609779499364618381065556859030298147931786285907271359295132455237786046018939288336247036521044173638430906130598164556485454269410855449365129798386511598576037273065286843325734859641439541767417453345446683780364065374628627578843071447456198555185799827336610006422075055742429966751310568894742426181547210972556276395064970325195346623732664530769226444427315875044056047157184336582734244933984468652015596047533516219642387933846015447722441607126692001914213269935179064176398130381053553323939844752218266838847597898468119478885014611063066024412312349095646291834583934917381268660179415791125716804171676824307511094499438315847364926712881308244332906109224734437746424930735015278423911169229373280259261836832082436793047440862252711395354870944539516757173966317507384024917532290839994848858627964440434973700151563130585880384669267598920543191807691272439292544032195158162511659437370077446251794983464307540875518770235715587630965817642294287375410124874549949767605620333118735098304188627157141887770165872235630714297435920925343074051007234355702966202314928090117619731603187979507359390863768949491179582535180899828769062494137653100830081786460253348748827061927842880319860833416975170495723079117668600081354878566402086422133596801177458449015173865295328487474879283029908355385294430556516933952478783136375581944590800263736446236772204043079978437564496153472106639943634669689730987116389635057361900993467024646314180739314370382264541937605282360340045652934005548439958045622896183846878568365863172640178856251515373572047445629001934400570943263915960195667745020655420197462925090299360233894817236311801553217020548962667906821481928230138565729507741572747199271165273472115099579553673869398313843355291267466866918704938402578508616320424454874027407288117721848818344818736578545172175231865116212988555318588179830700090185960611137817824175680682912164642442501763904475701676536388024685550994893702061131682666790693585794198710510702982178509224083046554538043337557625344879843545371287929122436107254712111904246266888030523233567294156569757326959829673763869168896247377216403581342193665287601337941593057311582124095081323081115465080753228869250178977754923604926532032525183598955884074285572186192818739005809503702439683076395838219490923736763229178379876645363042430089762425970526199082812276501517449915002149190811696986708189344886159554087137497022081748654478904989096032459094992297074049030257150487854278105124774211624146853589448543295360824177940083645232162458257812524885566097213583105910833401193896293140828379963036028676944916307018691749072455886721764170319837913223559819158110868955487126986406551636598963084838584593768679441322418430995610266176762501041910502924144209222780459082562572701829567708142425033881942035613793168791770012193034745044542359336399167012330112363801008749128366181542844027065029659018484091726964179483278427711050331655106527299386629119411448701933539203949263334220720568760976694289259343773579155142925552411066429957828237446897237788529510412781309062898403563162271363339110348862834598390117419056257088312920416327440161246194207550299430235954403713499927028594638390900209368335845847356603242218311361236390528645520122216762067882289765580936966459590453679416671185191466979591280194292821864837065773453911199903302937941296032743395792131753196571374523167003570249274800040722666514073654819644232877837148483485517252959672537628649900742012468993326126794625739214939046788072308272585090747969852958891402308715820129283909585310981759402659146144743584224356873939014255285842697675329832167390843744073636222717750594258422426498347034672204402131480837407734972927315713240033275965941592612019300187753068963102072602160929461897472139016962716273864800486966179865820138655732141947610661240452593108494641067686530708625675877805298463598721110235330210061097364810802318036416025948731497967424083132253314591743148739382325405284382692792923653246441564914545645008412938541558457286644946206464999707998061500386434858412183690598288519292211148779447876792843385531180439509157675444327009960311497653831574849882729747775630852251128205493015389039179056423259010718285424629454130775932779012160701958159376882056075092957526801925483246315485232582157493352151384156856658759899011965721487329621845858041510158279179792912374902730277396314946499659589328851477698801410050302309691685119613138951448511665533381569683429374293327216595252275432879425817630595198136408618861449687849594778633252687778955439918187404583521443685729164693343749427293347672828420537738026683656731288265871809287504317454032041584021094809414691589327947619071243029456210741737186165272351684453171148921947415093004925958537102720809339473503401380999245465654509923275071589235423781372173399188884510160841616400591986834030427767082809339005820608852270501658871784557866618572377636587048557889815846881009252667531214929406075823633467758559326717385013565766954734196792218746208317464587596489897432324848982764650082794207027918775640657809167869485111368977045687115682922794829027600595650801494020731161390056325587335898037371872019473637375855489523972633793467687979387684147064852720344805495064702615569715168768682204395992409606665709998434571153976466269104325961518361703919518424971923002417190004671579775477547115350493312255477737842806455396733958557828118989070575129720432259582634564488234473641747380410657567458648639880004629450830058505437226198863343132588657959906136021688760858472114637225699020387110789070329416649464618260606374452787870676496102012858976250320904514907720815056766678604762905520229757881368368529764722600271553791377200267286377141252850068879024971114967163418031929715568001292145661625789166447298206392865064082470310609466207727489202689466404287386117944614758515637243766475217212920542159104243858176828482611505185857946148541851408060762362099173485228993767833703008222764772101613351653033316708762709321041527987073154982019141383007405410733146687867700587095659125483444987227630863178386039295580850967098023108951956561680098761216852282949220113613246120908168495656263234897016332578353037239960594776836397392108331979487953823024352478084336452121611530228122939954031100819728877875392376986870324231039428600639632585523908641352188226962042653975273725571054413562638730403350563723608712612547141517588537811309277992039171643639200833338527313717082150175712584222828337050965396706916483001274631143285245830374805766208865986192307205598636835085464020505694194956573762321417684642757843397391561881730066240777433805911630693033551972500333049013548507624555776084556042313060070429379979398171743548597650712189415944857131643243892455697842852293561707884214429741569777377948580313731367968168041815900781461914936400233239781694185032821729568018299071102531677708536684016060642281660182451856136472018126060798114342072167629045707618843146120205857907962046158429134226947285982734917091607533400514204693873344084084604368713130976068896442011995719349785603004631985494908612467609478465900352005996958518731587935244818762077259201848870882606784531040083054496060189661799796760223200870445876137823924229575405165983228674671900105537966437570666397114690810206078292417880343306348112916430790995700821694336522337941998374685284195516137575646342745524368435694019297669568242298634822879932811684896072927721196591079549291004829838977616228574066157488747215881463823880553035420116131069975061540256477704469123116236906931523728258398697713671683792969162049466909892126997480387410812052010304442584843789359193844610569026794006116029342432016983469813605965301589379067114293834053585767483997207876782929008951848489843024076120832850438984035799271024194947160837695342875448574207358910748681702103534652444197043439452066013669215776185343829374474835107075808747524414791581661725985999852871690008961121534958082640464811152526475093234717797225010881157347346866744469796300054422769507629361267925061878985344764808362561433124503101037573111091539450196455177413255007298779663012761251424987817206416863276992553610686563668957252732522635959870775327587555636636699552567768508856773731493145977844165281578479209797556671692741996917720516952901739274775321094637128487831004394809911344030902132970070416083879970949124507382286342285951563109389664329352074333829845190125393016984749091584599798808220226851820697629826752643929917469572907806390529706641256275797323611040898921466690960912508089790293426157827751096243614706220132066175053423200487371438339839607024121128664461899769670358592615946270177200886378885181844783353845892355552776203471647991624878791173219893221294886962276441309851799789418093955624938527392018022604889951558206938314889950079486974056962108510065048352260574809939722464965335842162447990584649257177852908536347893429457898068315968486733579422425829331885697506469835677335873286637146558762887461953447526813532496629357082561334485399415397800939249410466048398216910355257089606303075761612823151877185979390735403761557813429679425963674920261268583915295097666766942307833935455138753351830532442857113997048295107343127947073193187559675425024503305669845315989941277350604433904180246535756111347436587968812748647746782417594680952688806080950195853642707712278955767493061651964982182084677235736699471385962802878656192122387460362586071310441305816927594791869492355644660848207331787960232733532875202387428661608476500816985648383947334348445845819372295632264895304583069941651058586507992730604573422494799746062855249129270067855650698273685338434812243745263056167453374714206993514337019392746084783147931266172181966053875108825579554037228623358942192469347678207551114616490784050577052603696798298050655142710862212721441732365409881127143913821572608090697384518222456259910685076493702357319703315066925096457710540071657286766205192767979358238471049641487016059756079235923938177295782616539949606204345720819680712197956631141109650390057475320476414462105678703620103773432026041409150106213025414004474038868414824297027809327563205789477870605539262824041013416059800738948058601526902480221476521959184502594541870841282415881862033926733604533662842300764831567404739332621647741680411439012206560374076888708326670438057405382571790240834356776430666279535843947511362580718551370487210800537956687769467616427526689018833315388017897392536121517912744923287942035326806879786371115218478017109260557887841737832261383937528445115914895980882241592474882179210524047229123760292314222034016120169141353037447633790476394123349437270712101586333658019714483041409995098262935956795941946478229486768608246863106920566505206527424399623023770546401359171122853437182880051835019601006072449337426858746810968403977257115284297598891214202814940548954935943618645230591325794245016175609731351346020035550749068687902933567754090795858291442595308106847538488224969495129425305098598859184690201175520197052129588739408053806099530570346414478525437290744687308392594864754392889998545420754602310448716912174118715338429779315150464626667273024117984960415402711538063545653077068170361068435397843552317465513059012150428701533007833333888860442113445598541434337504023264612719002896762829491024419361265857166321179343016399374995158670595748797221831479513529088812793523881490483743052874795619507474257112140509367115639017793635994809711932185379585382000429698852493599356685653082485768546342285015896650881157872349510048142428000817773953052325453286993514454783569607569417767522306508764557530323370920576012425063511547575822652931631138384857408651138254536955130064434133923684373339868335259329035486544313200040893476173876175054825686261491875680940108615629889879517899316065572954614123085221056333613913377521943476340098773255718038865187032345640102653950208556962073590096619447955850913546057854574481519525537553723460938665559313780758167838344273100216184121847313768606346985093702689761640412798864717189873625959553869709213664577872589393748890582282550332082522706824008056421752985955084295472789181356498802019391212026042073516764671524915354976683154511544367833147755421474911850067051078125791081239819197308960949230186780649655209477401758806511978515550880741550968832886892524033662611804539083229969614068955280281809843491142800378176945311680936703996493906570874779926568952948612697501878064384535362122041886962013869169313241615487328769077621828768797976885920032527775932531567048306424636964290746927161419721234606122154253431082934551456146274045623798075500598231013581390274389007656476841759223271485853103140718071846216303998079677538873336099280582344629761339960291879305908101381930226365158354798384515204695284380063989630421355214962602829578579148432053324986479022977473016860824484367377554656190802842403446301696951132348725935173558323655588123521975272924147054298861555349689436422155800826626833974354090435482666588292222233306071383371337105750185724709573131833245090754529139421405852027268853843172287640045232138514142108936935343674367364267368129267137642177618515981020817456383463022672895508300916679869112549558454673167905671414547634939275184136441562843783322110695009340126005713527871026244712462841364050653733416984566908868231743760582370869540635184871190041593734348054453697972872115099935659844340119632862719767363438312109390252433249643981781983476172126310875973327842303056009564789347731350708715198526859984799475872124847853967525835532758696551700457730892706171922871734558495775554759388413528427656318343340498075226086192221319508458212721444683160230276185702014880898661778141852272279280057102300526182665258919990870509152758476089682827889142346711324862414559458836014938000430008385237032672527781784823905763515023357610104162689489670594511825889938600730592392229978685808151742486547380365352347922253486594859323398212404358920993629612254463982045736068029325899310034498213671840561420425981582875924405016508908939173245243599743568061802767404142649643651840342592359168124643551546312892176876106211978481236238193037061652387164076675368153452754424582074069170405455901360650834347177413022343979793695109423834811256918488631222139379392918975506198757726536969999626971523571259705577494897068965275089810396977125871415461897699485949215332638804806753079504254625279719189015715037127621372201465362016625283655832661437977052805569684483600152293039086243941803675786025158336960718999157718025159821315925285385454422981548389015794355739458453143472215594217821780100911027262444585877278536518732840338293149356215743646584280360083243949699539310116088958237187075413898886225460062283909831772869998354421552840420086477278235357904541682049615407933269727648437889955257534707448630056868216163807010417937711143520479711094573506315088757316492594949477210324032917219668293202875752176366826207700173945329044084198776757671590799970929569478638662303521942556183052192031273972314161236367693142088395962603131743846891469332988576682670014920146364947327616347709266745472449085154319664198934597126813438699894161620881409056873801349342787241811225191991458638426086007560612651482532548433575917453949545703134665125950060482003435914726056188408307348030464228262944449383131106991644199509618340611725998033533022760703772049434691933545583970946392546450892764043600626896771810143796486905080693534226003614155996769515082697563753716498785881983618232719904667252971590847261386476176948472359991815696106762513507725591728387729287031951334134326392430023016132893975430118607046937276329785389742400932921275970796579047623743868435655210326379490361744077695927809447554077845730733115184139640481356441105974883798165633030001792393450205763594220613039887858737926638348411354210176657290435095458949494189924507363615216509022947414061587765933726608720636525358733117857412983528136663328258161957167461149904686763614757452333120359858455349264588791534912220849185292219938951460571345284568094672668324476263249373974281916775933248549700652703336962315138648191663981798261396746150435226196642733108780923804277253962323454633912307215949858520472097858661867444591019542495435598033068880067565428348057554206091785060596770473922615626649050485636869770952199883141198077533487607607170462122849036989243975182514817058876835220148636741524653358277387377537111640218558914948319520064018203262947076159291607345759394210278799012218018048891548616203355100145290303134518303267847445277674489492934903211575923816165010064091660431389936939558628553465920956625500456626483840153518852290043233567620014132891560966272005332770899684604768863861735211922968798876894395356885115239768335609140394854670172341270185576858427605524338586966270815296223703387367070148076949779049594683716576876949505682427090198056949595005388448415443438932339386319470716234705161021574166583140064152392014731872101936846801666426441828905896388362574962126366672115468835040240015135890323571572767123957125470317833758906774140378634802028307254586257843278479054647446245850218208209053557561302069167022141136826411769671691586098996206186849857099430797799204498521907294190808449931822002549896078117039088486367460879127643005219939772128289932175093545203061257653281116908883889267677902708679966182197884727785673160304033397047468767586897190556488073078653541454851823669863366727268084313513017891230555161527043382987010722936472170389050570252629344884465779755994747913427885854614296016920668720239549185880476059916858398574222999617528451474636635863753346602832199266284611671528707594249332895101165502990717996044662396724575747501795162236246929447392226690324974406775844416151693825170611903768830164189197981555793259563820639052317528269706965959569618655395738889195646918934104738022924842014505622117895672484908843284406515253278299197634285595783389517643953858498776220317079776416614548195074154968168091553158634197287962023535589895012836005093769058675164606270691864128604654446762960897591232159022845921000022447099215960153755846210584845245101507230472803832799023748320482061942714462513091129031092393509008783345953060873966281083577416048644365295353235006955498734197023376337171502957103997727532562468923475643821736049483234728217657802327491998798031446179806472484160493041007808290473839969457134734725150649732534432931043336722047105941044736825948928446898072370019077456663145292663258974691840374802928781919015249566602676866471588233937537519150195427477904286046268789624982644684731045088112057744356374007088889266369569235138276648999542083382650179021866328490567709435267665222423186745652888470311791309458489305338793910561952180515177450296607093102742592402341029767331414066393266952695151817162959617758567060604179659466574218667481609958291791489261248220298668167857529352940605517411814159860814815448785849388088856293046176203300405350711523599592268734365133445347776982577151676058906158973434880428117697613010874357532975480047835026722561742781154367280085240358636930685821421124382936328016758783299891930443893855550870294292819926258071266724782932585875857922710802986668158938357875300649901740593962048417121588301134058722593511123789092689216679587831516414948477089266003212276030895691299255996285989260755671567958660675392058643704562534869498286073183961963567393606354697536920510183569449477228905765814171438670037804533541344317276688453783296104682986483285887300133880799531664919918641770607423920148430731296703172711611474119543333886340390694369244809852514957551959444087013875419645764607552341896879243213657937841565316495112321333378159352470617197649148997991321367638075718351645483610834726034659589479155938659364082374110523937416371595818781856968493673284742233039971028918693148689194556149096888227699770464392120263005585331760237246190164552283389545605452221849035532065658919763578848701015521148219555966394492599347125034035574243715759244152447748067396026590456750302380280311242020834117796301801112994543709320121842938000045950146920732260203359194765440930339227356776228680918165100141762838062673782715336047923388327089717634321473672882775025730214225414482304678711250940392030636561504749004210806082566974134311959865717811563388048765270058291122705713606359866387256905421872264531958522811426480694017086880655971752656381720094427781061077403986836353329130213662682879021139567990341137047099590970535612509081761075723394827815812427187045173630883416627805303880242191736212655375640586047830098133194886893922566110861931701081364970014140128119724288794067366556104808888769863847655830689329247684565038088205124186452076352292907646735949218775010319337402876726753672889915586023207470759125309843796141452452954544244021958549855697737209459718886471543913389777332990549756728307141812773796287126187837643265401524852504273053623131046102174134527484646755786744097011500721103172846283144055285994557837951401104087109962955434871550783187776311374064411069981307614788301424765966196347864562249376389874090311255768956786516728087854890529844837415729495596376549364490911667098708283252577074373282031315781585256444110596229527701187777420407011874723070631641967102769971905067691946851533322820644403130132603277134642145093878226892577765149755100108062146578182792126470487267100391639578812930054225522170775679012975430803559264467467862558115363790344227096174795947738101359893077815715561887522558501408442299487909734383669825060596099466422837865801142221261493633577220470820491383277810718560466391152233582910495816237524210054208591919892971334457632738714067588890556189299202944202589159544674918585373155555298595882919842784330941615972369711164842635372565929180362924414378405503724478427822133822864601326572081602618443802465846138821529043576216844983002421331634115198100385888962215474283608490142410486039593119864302440557431662554427264851282338045193034302039229886667015998966343240463374838556201414647724434769364856964779236948677712503017663958524715052367764191507669201795000469125472174847090999312147570534460840492153098680812290410328541180306018125304822903639481725779220166497988648976418591561226379186748303025150108213796575707469815610938883628095619005984210271594616129470045309094584641781494383341897623252189228349429380398107279026898425558337669455626987564105416903176481774008474960609708777114982565006698836731634464941773083329141920664602129992719953557190818860730083430042841482277927963278846820768613089398064726331149553995862429044842541995798182007333490822975295759035311632178393080944290901587710959955024148088854419951562021729646494049357721782611032219270797330493041103706967030780226398717077371514195855054155127199542306468014690686999913953616726126939148932694557680642084381485274631619939086160433534370988595160049980933822999309403762780455095868367302632403490225125910680319898888626889910597869384023180634460051479941765817464153597436631660963851343270318702666512932279187296642924075043169986903039370757682712501317706915440970547643556030298646885223802638697899738066763681360878290239582124443961765992648147578263566585896022700602843565477511240532001487052430862284772907397184059282351290145465437080111717633149295943604818296957640455397612353980563578051248138011582523249369739850888340629320160237081516944979570334240078019750837009357011033371357342164614683140653860252862725234600326297959435757945655659069126398649316393247004372027171989657691938763857468908036984759613870853980698924888159347477556808023229719432586506806796932338154558536727405131471438596332320536931807596766669642866866999678221389304701342123809140184285619704767093449725870592174843667854388592953257110350116261267575650054793159135561289676204334595282369451526129473897051543786166721488377126310620753281551586484063690630575055436394855734220836399697820482092078957985423774188178729187929898032751641128422636987798825124452766494898898274066766512209934292098864881168641829899756359768914380731559880333353029627617691362192440869347925936670148606599226481180264018443833418667060701938821963478708121680432210259909502632514976089881521174088407516698263272925295184619269933569468478342295603597249651051039489657022366678044651731809088066982003974762786004482007595005533941202015287711723626817082044194854437566789474509652723311913048714677220498809681438662996088448821446104350508104080198742027253557521521284317926358098597737003843900259955672591663286834053688365276417650774940963182384492009653455633258574823526799493878810700357718305039545118226102026059270367119255988261794354396778507976494484141117831009833622224430563295961114108838020904295395567480872963569999323633959545791453643069428231649925087975708001201556308967908493816949064226875865186927234284132389240027916422596457792198621311871248422920969693526960489942569241318840880940870806095080997325163961436108532027383595044585222734450282704361343477121389737307032480516450737779470587854536816519677512291167635396375527701949116068856410554764161088030797903240819171418491550386086323162642213160694329564324355361523168904652667678485472134625998050543068142544043751099458360417449515671168181743431489132256829480285422990363946498778911554043224408240070551825917139968131555247515137908709148409496455031229294107033301632897138347159790504342134992368979070594949464614437551740940432302647201717667865377601880482241808979264316008027307558515300913969407073471987687095984907481140228875395402432345799265314619928125613179363240108277054562110212374949989091087890457568331114174638737586625546024017626434937346375150362000541349969111542118266841552404171202966231133867466031914462812332223469217148690648613989812564243266149859068444691448359507337723026289239601132848024544434790856492874294137011384622238714376841000459312278361208050189946766785181594813572464600553249493072421647376528266639296184441023371394676564960753297327032100564000601356729631683423371397618950534227193399530230073654350190925399367822440455813523947433637895719044197292655127814393343286571624205322788691794366695059413595719183253884160513335579800643633060074231500047490879801496539565016704097624484324128598926273957776653192612513029640929177391964330886396472298581493421044299204231534824825766609387369383905649691627239115652458527805292197629633757169874247672080166613384216060211216895339333861676051967383836353678688414878790962255003006606742485046705793981455544940035503253678235702036528886153367150016330296567314619042795432426747331506567532223581043566500166673843414738687334227747004148750747114046440535028420654810424675160264683932025614709262985307300705327464779493719092565596826472964399259243151414914248264221808582837600760974067467648033611685674107176238220091462049244649899422871210461655935111836925062337202703750674515995570778364569702662866874836846937651091342715681462840942354346536556713428016127965996974662151507263394199656502589433028456030905726214944645156956894068218758203805632721395928679330049322474376458968938029571317140415058991332069310442538768398486692822847100508556756198942172277030883270331603571389534605649679075338483062315271368311811348688073381358609326453953439247318087446619234748275131178166210655478822311517045411631929211868326775284506973087562229950126783084617272191235436154503992201916692411061792241774766416805994938076653378088970767963066546452866864544653207445138002829939299671472592005954724563961849423178928581379756319404696811401622437248329801124748838732443724585131716883579624838048434590535994080164205001764484827261329488044042849063638132711930472710457740713024955994690709728563011633796661297781566690782429804991595005249502402038098923698143564761648262879923335011991296610774182260993818252402631891939887919040450863742878664040426900150970434293187979201747094171871643291539562699946553217656376746890700181051668688693268549140368633879966284829360251731263132459938616976006814557550109662438287855754069549921228404013858838854620661546644259929516567717106802289410254134181637594066820057462579815487040674044153518736081076016461985350921978800860535900338716046920432539799108744841130994751256325322085906344948532182103700659268534575211788769037272140427690153258028916621054022502597506343598162007536957674085508599848572222009346914385958151998365775954241342942657019904390368757133410505139996072153707821032775383510832250570344985961148949491995044589998558496708537385156480535478530922582492641876796655953262628295817222358195570386695596270656893461250124635882915975763730277026693990009392360392465508650366029851014994637320175678282593724791583257349451557692614967799096448021498728320882063198874860557882122828200393624439903241259939442549792794804348606002750749985016754350943434413810401867054641024058029728684470260640573895912859194029452297634524655389089283798302482017469907646697687964292101267856753581429269714182197816885490190941153048749114517440356182881850301760978394320511604741781826686692555650016769414051857568428310637681034510657657692282284700385512651690399456963573917249389589352746441503333926964757832155265786502687318770344369752521262299643237985713209934185468699727507138447096594561555691174529955435563040931527781751827227534028197765419892382651424654954564594140815541722477386875218928627526892796795005568475720310562323265230590627488975968147620199912498255084335896036416199774487587422191691410109165058222179705104004287280369868161812204856111232404363422471402419476490634393220763497729076832689973074426593817501258151553179367014037401674118468798885883441358016291630017219563828981587784055695733648077492242329296894055925217826302272963777146208007778417184244634191100440653622131041191400855279918535628948677263139529170817878423915502291883439681590115235433023486115663280248681563253215444361659220162767982455806449800038106467942574155180493757349820401369795136541332754213043504895785326000303170669183552054130010177091927305038369812790264707646382471128995795322597962108189383607661271545152317399969980649154941389069706618059024978873718088908715874597414278352547663703987462121164741594720183887836349110368735516436914118282987283110497438934109510674862451639179408168051651150201172472542653777505211182922146378169871401196633328682967467578248835186774245452475643531877442510407451654245040631391059601422074466930996638930327105099898250850764917082415423372287707328444288183022860564480747061490068238352423341154406249560122434037477680826494236556365125699100393887229018423336102568335106625429185735826222984799825727536785752955208289174703265213773123584337757262006902402588971451718079118856159591912579667321272649013800714922252137988109137348551680969275389244090513224413351844032007814670819922029214066116255996046259220369427482741128521152635476876252835957953070600003852683192751321360355986570035983529976845923038908539114837136624994725222819544808238612946682933181058459649429282906073109347073368180021268038632542931937776896493274135609963328244424053409210054518962045222185096565386682358854078982974047884747897601490262474315629769672512606097941166596149860526579835270798663604406968534506610783348560819763456971851243080971124292745226485227926406775644812537406621813790587309255897536776110662219466375356220738506224332043136119631348186559647762482694759252564350806883228186932246799342971017809492942864185681718601058752221663320498486988898980594031794876359212171206911257770121205881670328481074002757721158382558537312391528226957865566242838297547094939952121841695194783288536829710348554039092426175861891526403232766261739334671008482691491699704669448006396493006511465748621536747865116156043617270718980881911910085425638029097891026437004512100675245280537833268435602605286249588173554470187926167720659651364023421909082879341777921292351298584875685426875794882504401760491964091005773391735468156530066194941525003877808195527040931174935141384667236329384319330606207290852330757608026293656839471129196490245018950131584871968192208934287844451733075197011789947357375253727219831829744844571839544890695014994896661647455876567917496817473050878135694496970542702265199897418540139009742465333567826167091013686498402698270438452786530389101504328624505057719244184728249555481595769448785181368279146355713456871683528227883444589813860257279394457179882448418882443973988233977067910150167473463810627306551663627249731767223744351976266804696418750421750861309221250444289098772006030683607428995257686638096824340289363446528333578371961707309405230310597633880266433563064960129206621890391818413417605204276879826203948336863153972086720499487000729159605527868075899764234269805195819649265352480922899240737017285628717248471090265100144096907243587810336455103697666956006464030163129855131532219689823943184176156693453789116758559835951693437309494250453700134233135957194745289757883306551609155253441134178498600243750105637059313441431872018462171969428057293762902315607505373409127737710506164430677774104130573652850839668403250623936518641297076542163440054420619898031347028783305611914962879778509545754885673995142479055261013312134531358058023692114412726207222475296562305122151276877546653210862254205330158238597113515168621749323335893276783743396430109809893049118224376952603112712831619878454779384994964794795609856279555972848569996113375947331582924986461828387393804844231768439282081506429627737224621961511713939887038926233045876247727227196011232615132611983616004716376998994662303270219727698447073886247850705755876845038073880338399248529438163836271556314111309414373379983344315177589498822297491626511739373361915665211355786629443319530478088492114093844252766587808872163655236445163585401151522067208432819722966800221158759979918134710525956952319643793824170701045107252290030564315431048692489368869236816635062494452177934731625917167724889964342490582395340323671850873192216048907098864174995911336929818458604823012255327916559593516915579891470506684639184087149763062288618269982727566147983806934006563535850755442313651834883365853804506507162830037940831271588210004111699872138867998111575229114880678532033168463270656018622611427330860280079881189863419970688494982016025040627611130437267665632766665020503002078836136669532646176918105691314941851153367185529003335735692606599357769242539805582794545907913930710642883859178428268842350425786781964946814559866743251475735960107627956075942344929704906008435912975465361454997078292225166479705859016804925049030417671385209585066653471393586675811690651870572681025899809732419141217880032707650005651502772892977198319473668897809629071220036101758929485245266651214887691183476765630971079014156480829285079292515899267620500808298815520528749623006583811637475714185445256490885364503511169628563571681479293681329769839834884235495546244032936308510816240112004072523647054085147847663413841015443742996934960037678291608867660387503948697232645723538270414429210320781229708059858150166959497028494438030096414230359996773772191348964374635336378598322048574487029654478420659157704143334979493022884171367276299145717995747576363092542682542371120678354432307897766231489826475895716951900075957033756208086498094408933445305107034055583076654034136020421739677455586280306635039747168369875105666136427312368507974540985223817630385529683227568493115349393663232857088680202599890604278536892253345487203202219288596288985696826673376865695522101303253145207764172762196820721208113238421726789133106566942875641280767092411042044850174007413068657225716153305745416411118190300152064473426784855102295795577042969323583887654531637090254675365769558752692558593104956855504650239572041031575925017895051318712821324753615553348756256628412597858625219009208726515038731654458235405118414084589206697263857335090659116083731485552561359146833849763114637711720366521899746811681077604139462537680230496190026362596097679822046391228715359013587141282106523667958023471888703903517204037873358261397003395316044404185495496703123153773520889280928669152593154251939124132993448805940255416979284714413955540445413609488803133778508865520516820290415952571199001471515330724127396775555421492112302674153503529790904698921776543749923148308768424148841374425861361874326216341693327228934155632560798415496401493652282055155705203748331408176929239346481732973144319799832815062157294649732688291367116515268291510903387093313197506640881501650634987436008325749466511532927222469284039000758544380073187492296390869934635456760077474434320455995927502815489476400526897775245652157287420364883837935906041664880782387503522012578357862914904713344514584241828346430502366008879145466461851955594161964597741558602884558362205089310853899612131627261511247080020716189879980796044145610831001524627087358818067250413061344047302735583000141031881574181858389220103499394323536429859677621911794940877830782094294433182477841079333261125810799118078440588592609691317180052569137974865522290683856682483757585178590213154147040339907800583111307436100857687662802914215440031172179723234174772738388700038529339913989154082969160321864888974187833858783197583349832893694595733441117537357110881055680518650542654511020798665780785666534846133313624170457441713558182071467863567117199683837913851983365878024914224310463915636559890492213324490619487173398060400838540936467890272874904061392478396669249980685617703894594722075597291289988522639386667097162498727586811009423928003276007855241097928273518195641059410250804758580011180269402293779894767647041102519144688374202578814274064306699534753796268881848089672392155304672367941420766378214776501944700253487252814400942041104941990656134985280149139138024276045009247972651223938049373235757040232383232686322859102840266840189715615912455010458611674416557922639154747813839082549063175486122569762689817364556396761318846857777151020385484968573284830049537115902352100732882124769519820627958524164369575297257197345710305546166031689487421700647231441056339391155070445756283594257861706506649418372446811724617588109745821641983766098703699649863006149066505967559417766041287084963525112312172123404717792212398376586525832742353435929656532646556037131442262777092584532985560322474063652686052680886183468449726909495926430974835563255434914781875380862568949691847870410696295278644857881786220600794962367998049587555486022139319302271317403932217650554432694500308113138816771024573797366646180128546630609558804714721079202839129987696381919573947283787754418618670963605253444080027235600882497531498995124209526342266695385191314463302368309278855996281326952314521223255382409085712076871794392734822052474245610595499112929464460551555665219533794234948841816819697971474106836956530456840907350189479517274690795555593391757290606359515411288561403198351054464887411574637823292463475008872444377752397593076692905853626868314646761125728675651198956672641370082489182013637002653099194087624388938172072769241909275282225962413594405785778368592395413836637045969792471844112265414426838211125161288408322857382872599552888729686272279215882557728620430638771319137292204032349965933767812089591298890125143960111941978954924677847120857298283797542803798740172635741071710100304209851728838338338731303783166251557416361236217822295942640059674620975827246115540865928528094278981836671728059172808833402882468569029284306480039553458983177446854633425901950515476292788592615936424187504631501403710731625533747379620204604950318213572094403742372163616859711610973065548014982674662589159320926524625905008223774231767456707518289459825813484125226087376472737525228940712518089255149445955446504861318145878692290356094813329984873452082266833588642639522790031166762290265214134354474999962380282861588883150284398332944609833333584941171216571235075957042942391392529781563899661789112555843611011333223766514650440767878524636617102916797587057232426388269302889332591378008529907769056198072516767927206159422300235407817898144585994641539868467264055301014135006324458453072502363787915246993797705324300782610545889219358811559775778338073341991517866424288035912320875299349754225341809679387409995141345941596292226392634205085181773374058424426918059168859922412098530841875573864067479262726974459813623131506579069831048818762640522086560838663074116672603524829937306461959419975749091286820923937686019181692504451921652814723502647529894571444958703228795165550203307336662670159249731555316882266271165848962247677161792489291588943010726894220377888986602363169616997538218582107520064987240841035509214150753960930868670072575088861900899012475148404756961025036828101879705091172816326059638142630057275962688042207175729162230275432966284098070341040412953878217413695292421584538772598389826368489418357527876223182571403467165498699853326291089416241488648524653523764274939756026184994732296066400862276736059366067199222749900586973694679493922734005793188440412451266050630881223038239958575154060785585652747033998718406307135733486998423067668900643587544645127383669041881968361900652196106050189423306696137828383989161274588395324224681618290616034807079326878806820786812901971807808900890743876028208377377886025634650932592150036845500400796667342642728054311886387315743557705880890616786403196743074555776747731093474599252921517248974389399842049328588865023144178449603486337609176375637348211833913579396922903353317647254194782452565583949636945137079452191505823420693939181334409920813888267552547857864449796156657778897415522885002276745724701106208483866494678758268054179617846526984674978485554240912541471638368396302119903442520201588500179842722883105260445410739406711406343974807891179375931702487262144392472901140048865372886335057781865452928628983504717706231845740248260589146581887218113097699061244529478332452396295913258644860122826599574133798294078431607643529629467363049835255901152323125045592761530144921706617836589224048342959546867584910122843087209234214012978578605860802413887342440578979620009525999250828798742921050484731157633749581656870863138051963573707047783172777587442810324247830486093867841132622106809535260132753903471814042759649320941479473424197568983621083275632564138407239308522235973330769557234028176309774319317736288252142851230293857910963097022410863273196351001574634880344259513059888275091324256599826972729141691529611999442648976056927766180189696420410236392539570000001611069645018004790983515600177607493458032657548664427413971345349411542449725400951903577671090805384299304732336125818171473693555046746430787244204418882311451848796788455389946787232206317086974662050825421034051895079142051022166101172640664183026135484656608215492559846751713658082729841486228763789262042893338107445034752716750926406010839738393304842780567656695687998350915187154568196381775938909135340200116477687327744692210243422627350519451624332930265986376724273609871722583140611402301205648620409635967137051932100299528939183043478655967945360682223964383418843407716816973041284675318695234375030307924425255709278523905635172811958113668672394662049917256193134870107034517827711669156034527000446584687402229364528496575363469744551891064406764022624177471262598543269742760471717449575445659745885113348596876109386006135034211785496729580970254466585669640356884908009022699918283938838408029905299861353162557582489219936273297052677652582768875231874815902068031608398476079512812630405368720411853069071200229547114696022087922997281892972101534696508319992186778289548618847325838382414985721861108677141143701727876512890948247144955422526947597193636197437585123506669677656118778072385191092898743460266897279342025486278905152508094809853962096319610195327327537533006529142502370912662811304681227268947705783398067931239136463903473236616987470405461895804268633116503539073398742926005869076147706925625083135014898189130252721252356441970322910444420867741844622040256065698262385636588236378002778487213974392126371820589341332567522291161280033273143424206007746267044995014142148100463499517138191099403344552412522769180978321745039869390208646885606654656100166276819674647060537695987960543973787213035911573480052808822652477680900804255294722370515888699006501082514342781040867616811816422772003161432401570026701579302586322411166785813157453521145956596733107588649998065139822881792688051487437639766815056384175299508315828389769997900608644136094454104240047321876685022086156220649583431427894853065677361049015325092833210976135406765932051090998398168274399725720681715621444404195620810253495479209283354724707592861808042642199440926284765947689694573344916139854797414780078450630387779434515978354503378986492412363147748967470348279594954973198774073380834138135178528144679356171507522592945156751119817044386018794117560853365847961598543101678561805079079768834965077232425572270181003666225803526420809139533505676215034341077176037292687243083949816956288069780951571747971225117591665538281703041101983021604174727544952540228796596344071810389573021528886266586550337691407722268623938968078457623842538757137485902476515761171189840041688801427207417574646559868200107138102405372809905466396137420061299415828854574432171237902833639731368457405285229193170823937177618104687179887281487858234861890917899760797859183462616766889188351070243578446612603780502161590607077399615961268372270916381538027039043385724879533210787197119537233603561817811736319332761599263438677956063789245028321918801575094029006233010414937592719441673738836262290314441124321983641414011411594955094823889998922965158948187120220187896012267232702998805922105935013251236687466871079225634757258742624860188515823895230598641434827039468757007742846087205985139339907844669346104828872656732508928625430097159498637103022274486317796344453957920420383184248921242538942899330455901841733489035068482555354690489862076494596436807229399380935551285051468222163620912939828705663270097881973860004796664836914898641033189602630196611260593687145527218024827017485688451709781400978369240191126913786086746003259809936805901480828957986988863347193395663456190701434925563733306006108665232035907949636126984213230010970836971370257618788002959765920964808454748839577871058176362940828624615251604570070946223490197437139795195611064894006633491861385080959782341871628343851466618973569986955987676125190915606866177885114272544695058158230222455378209271209711072849752791467480774427339748093523253611241836450997393953506623377898120774247411854752437325824303101077274602556140760669701073497802958728479241575987189423560400388867587496778798794407417727978390372542098540606278168150931518283051365678035579848322534186977279702359564683044536137946824189974196470860490800175339900149485498298211369662189614018665423747967831470812518100871033287965067221208157443484274795319257839613325161322516437188423439008368599606846378801792594961868077396016578391725556077414563844918886941667547940622089536399447415328566723083737547669153366965154800698298479925303366721069034024127176935253877075825020252384952331502630521069526133021728043766207986144330768149238583837115367642912295566127703192035033052001254041703857495746118975563987304465777925162981757144112689115175026189413131267037057715028407056827287650740586222634360304749430087797288201315881270038410011408838581528592511802162191478323907439399963104167241759624380298411234058205322082114039555455471516610330810853479698948426295995804403308956180872680776671459808726094180570083596571600376780113349116196517247999915710481974729498112747763056506572642639840441049535618872459411267057818354446482002921032804426762448317062300638838503795768285715943742752172080965926432728416020594928968514078765404065268957928922703341145330117978333514081170246716730048802708010624076041258613976398998327294765040284527654345508856264545156046317733364886515797998021661775785408112353766540792413847546610085962220116291386061669317900826441023468059580264773928323269814776003897128120912036387767091070906896200957143771045581068838642828727827877213914197983218729867676852163135134175508433188962845719415687531495591117316439028005828501328943359286695196034017165501797571110338496573590511722077428114326884034830279390690059294641924100132455245558229027376759841566461699141506584944915294148073862921284427765226499747067408990731898719961795178278194714132507553598103041485247861447854195815533269622423677473613179541718823055375007669800289305134773309155620261435885782872931197035193377415417573603503797285068066411994706577028527411154715761769389339136377815252010688957942870732631712856649191437752561606901825946494016431623175019466281775341690103973610700198812416668853939916432713650285528435740535068361571330045200687224858292270840083508041571763423020743212094806764057062532773780764468414830880869355449030479491755356150764744781592688205064846380003369333154172111050651582917932380419863908572206231904760737465144228773400898453358826026860316842984034645568499638573014913296831661805481593778361795607388907473084996846460341552821790418025354632064676234167254690159234211785810402589326889066844098206143332946141677167421491928968344982661233560794341066223952574612693857400912271386095375094624924955849257568024148649053824166562768638795718428371707795245804040437453633794972360378087997427287167430461190749925930650901175204484892645984458280955986459156622092561537599721693575821684324888402401234828944328251383252997523380223855649232610685524929457067803923699312587978553162884744474082687063502783101680485829678297434211191200335040979974292849176604265241651415016266494058725512222424489341589955371911258691216436253692663223712896506255723584154929364625641350340348408955952849426250447191905871463465509300142632719307885864714168099298167436290513367448041964336669689502692822631357724037625553420190668584719590462734723490759474905805911110419557868452433111362435673077160935847358747761197296043971835047244733968074123738173638016855209413463985171448859303057144976884362518523167787651863080914262418891296097022862431273077013730205572921425159989352606618302405931202724457789502922725650505893606154423723510214302819753814103751212739077614822226247156409578934252455910439461189251280832326993454781233858663196173473675529507605426838987145143549346798361498726206735219116377989123811494448672032717077092826704862195629631285158736021550793758519424266738542796270183173671375374191959821187059121709826776244662965997540438728475235538969446981334510594937329236723066224835506116734415474410631249090145083770140974540784892227663304293855701278212948680412746967986692509976973590385819176866483069774373993002051442462454902447533678120994574671554292361378497701084769947096275402367400697285505586959607001106115300019541959932257705829894132847655211275289233708861141710453836257620012037545462146407142051603515057608892703033824046907302062846987855854464518445298358785290469340774838942821672132206145590307420480752256484716140589939914802885864370185438074337976212230407197617374984102016762679624096067561495894133665048601489289589592035644155137287180822493589127411041972161078496363801511663756195289821875695658610566633244447507330224710613598418888118304454164122347542858668279431996646822817727025110264720024838994825956978221728788076649867931220799285619226562348816247726439943122353401609087113468394030836063629728512309174265682979318607638224917625382091363762259197450035868289472275174578702282631824181812355578827251904365209379782674207238308300569264448599757724384265179589031504340758323870490099359518803776166817638290967149564334247199624092887484555202864603241563041840766966093829802467656083872784157649397983205926695066105162562472279585291525868225312779572502657427170251538205182833201480190071140617713507920273197304739394026703501198270346130936186999997995029067284283092667720286205556473408212361393744995759810510489728017662315901736269110405146991096728070178917602233320382875496300927481077439076950324137840326243880605902265418273805921681474560478643368956114001558161898665082912979064746208691562917730879725238848513553395864664667691803104045900417083004181035405666238631307189735731114525716089994537703625339729070870651311515980832424343937674770171333074913481163245011197226868440007292727288459433306294384721748635176335228349033701044400378750332933825942640160757047202767289774192232105338117862073881929130456110458517031621902025165331306804450217977507145223514421833021097883998617263872324344557761388014329785923010895594732978766788241198115866025428125619418219478714290112158555027494895444258441309035514230890195162980835200921636187300166919591138149102571142275489900141252409622424693872530293846140840316023516863725223069716850155400263898324809672434160005108273159540190926630393765975145018227483155062939295948147074692347680624610052433131029949074996127855109872377103611068447050429808872279928934474994955869687463541818618393458583448210843850676964138664152246961536732510612484150338629038972957716336822859387229884932805151405302547570754601536994933185002326784204082349584582045786810936884655222344204374897558922814896703822325683154574409319044676246875411289542923808479802582670239993363289053805833769722003159130156336646163287807723541381477518998364118002290043000187455808372685013064475319050737599402194002113471196312090542152001338347141959487232123190949773973776279282631230705366601729488715832536676813796819239160027518268065580818540800970572266286096337496306805450574390029743751011729166100843679217505041488883940414794315066226118280238630542179300594540862299987456394424737861018513855136610898226482195047526939556662646707570761528422956783441490780767796806370591709771874770812596537462054677875170260393542456276498789160015511879650270485655493282041859095204125580076536154189348351976190696688755211277369438096552965624774573802808060021237589148072552920814826004526634735993761840056090639791010179225100615890381245930781336086953206164345961711825373467788243618391416458424966977201225673883585833676886302271285682802070964295161189153135207327227065155938872553218683152085980231650259719853870978362896910404695348100274124889038214630869891485932971326126257620671237182723952457092775124446367829750184317821207239011582311484581326636318655926601153054354100538903515598538693869121952393715238100079948608784648194407908842428390307525922382684609894010956059083843877472851522034429130180259386701186743878734220597946503777149998503097916356855892482231007228863021979088691574769799566115904997879626834936357510592529536422657272848302438829382946965051771395412851187282111268708767396240345149771426554975144721877477484335323630347861500370562437388925737060996678760802860592082043062746481397254252581752052741658627327240655115952704943800228938207085602561709790637003289294708202948035319675287093620828264368822077173658694614130465050912764493147453280701291943237671847145453086615103423402324616944922425581561798316538881918159298729982895386858582929434345284609693131792723202364866128775356589591495294157171286894134460436035401846039314174564591995733935558036150701588687336308664413092707132351478805351761343939098599887458741470729635453864891526760473788359194177735112393202439592774385091627611759202452509365923151216490871455290004042949004124555701739713951996125136824061519005148662539465600365943011932170877042737766058392138150377416190796253912741134203859522518455373928313593134548054116470470285433828989972231836412210484587149255641157826076807153937490149699790016001094320196325514324724911202999034736666628516420437589457408047935396783426812438410245492681385708328065027569451599545984353681795339517190090499454381571782432004909644147375288710469196501369577203133485317529799392927530079127231088594040775018064934473653407721426605187955672971819885753179131994422181875853072266580076679833413187837873204063381529497581873286014769096971069269898614024836918460447000363456101122284520628408619754999870970553783858583323386756405317060694851906251079299306153959839471889416538779020821261640056778582693682185046381149948342206309311721725087037541517912687360490312919353116585966742678145474338625124422173702937548078401665697518070448572599567699519500159025192481124971307977247773140016197745320766586051705444350642786680794558013684059580147203278573741857484847663551099974756778310154507389558142303149782939991743559864806549027103785815950189509593058389917095201462705632634869247551295860300017097984340602602727435352864142245094242549866359916450225021970962672505318833491488102279599371040260299174453212982573506987741431082769737733541469335553618790455927446347262014612366729101126987157614428179421249553041508923538012438494498091805416727187201518108321244289467333666492294538348709290782518261198149399391813589433466100574869838841422064680916541791368282130623861126785791640426789021972256228858630163988719547406312781440153919319378220912941879469553942678903401986631728088926999017633648488530678954913696001102868059640474939769205185069080851985609030109472614676292602834512943469098243873119101650850759042408598299392506735534595312331454611414890328198517069142278229450012837052103005150746673179365721111631953852434434705197835515269965176422876181806742668848321380289442745056570064964225507630415714897873095222913291702048175615589872814033857526408539018241296478053944190872092830624327106911959536231876875881318401173940643469252823813754652254477259852370972039370341659858957451861594275998017160190358816188296174713551727958578717558709858611489373901986659986470383532689395917060380880457116445553789892682289325753799359402675600238527565157351824591315958994519608114545305811534339231254774578934008074910349804731402098418975581076823698107173060798356600115633448443080955577929313039839660260117992401655489869120977590080629221113151985920470653160382907231235742395972727432383630763813389359682670762451798626461848239615637069072437266240731312276062208229124049320618207138400776698219376267007277106576525768117957074487456817647958943744208084965091877499497031152303641610827353245063391774997873082666537206279072814161293348325415466256569689911693779657693977672035290780020845752715099093484828860272546588656742687091716814734415857737532346315031857865594929823196880807206224799203693863747951429618288144174703699890588423205628227292561373224390652776297582387953438583029409804994551488191115402090249802704406471664972564792067588013619240008986270402252666550606897637124977171284921158993582461289285546614850476027063032099382785880104615746572357718062763140516014433112964138950953058256347288400868540268352372689488669453372046022604384491782626446759823844782107408253138484503129356418569986998298581863565109153572304670414006837157392464650286878993688376718954337885691381405286840075690336895872792912666758730907586051849570124425936632615741437034932646274472384155522736524838343944666235399102139624029556047417586323688589386460605846035075356288400068534472468138075583765770887378357155203556912101600293088808381155128328721331803980951381273419880167095213501633663625052148559753580293044415618803498557691843800858154884700637660355532968546480828109789642508725976343547663754650498502991830894513029826623183604896296495677708420413054645473482080830812723163428774279112551107245442653868807189262553524715742266252603482130763487664587360072189238889778517207069353523421249212690498678177726369388646376481470433216274962536254651218332499556899190482898994183685856095536767701353498891315521275796004659851872486272636037256559658334195187289449626791130268291772680402763950890143615594331657202321530637174617624127048513352576176704161416045331404459838502174556991133275622019505069580959140435527544301577685058667207720134939357948506508721193007550714642654383182983081599645848873974371419491060357594418545829503260343804364729240587434933554631349706358478040807440201497806182304641965526986140290834467927653769254319265417643894207946118275995014758853170267519458134029779551209529878143710285761109108919678524645329154715533974984239678702742806455915160200198079140101548103776060253978545631755569365969021802020827998325260279100043054803580542667210301001614980865534092583888698757525856562841010140873655160299141830626809796323187271993547821525522607287594232080498871304960017727585857372881680293783876730532449301963840677631093688691403267790655964586610326718787741371685039268479834011051114124427288104828484737742489575915153967032681992522517854810107849713242665074584536394790629188505280569606613411482813318842513184233559628836120162137021537451072832504960694364565600693078076399626711958088235868608454914999020372516626605376294187084364415648291201665530754283105369055725283875179390083640043957464146713241820305212260189158592329130729583609985414106417593211066278958305895352171336155914295408784316124191798868916957450993450633298312123497052681239700076003085678590757691284422018143523370385464144804357474405872459685067416924569305184204534744948927424281635060745784793231879895544710399471077705909906067382746311570011853577112788583589900082202148983602097366945044459060296801243941576508670397224308152444091303819084398477165435123229285474084849147244417063022738969420510101511925869265651919408391557675644458701576086975833303909217029488132589302930985935646690390958115647689767646026413055117076615976484605524402207564523962236685688980859696684280997527023168072163533662214079211090203912290002433966471091010950086210603843701106052126697990138112238638748034534531304014583185661664832837141601041638787856344018668029851864642624829491198605377819097290427023236317727961172148843274808389832257264839703205445374419138506772298972737651816012801528063281218247445821090696203360315708977136552021704698386673619715527188261720663252195103213440934682484656168843681963247077359525928145669734851847402330828155090974603855168314946279904564084014236938852146368779581298957484891575274296535479915580436848682998631685835437995745516121443164459406961217406089412880120770355254058544740754944091841897751741120308083396438044447066811424987514053729396761480383896079010099174065387123838250093220874654123382105526484634018388055902099723407599564729668809640758320368861129278802931221587253830951721177801438524850896365402377010109662839117334777040498967169624334251663591118946141202882172898441779971217814118162871174655043363396450149636882569349051915234691429238064981802891637657795001106716947347254626790467080056636977720129320276663555234334501300089447478116255366908126240091359131749466472145216655020721826180399268663989672823126470106650894672964667563456479653891147479970341394851088822821756012060442788625977321226580988971236171568316725655376002896508594579060840081353462206754031426517410824910636421505491391728351549844287986511938428879874097590949433575507014190568030546006740743461379564950904198651995405119633731794716876194058655233765479838801383873781881171902876529020267248046285522479163614967916324227658196340866753165152043862391582015215389041936077330674717395214948800882196360506547791050641113453686236838149571684782882120025071693760064372114996549113567882371738932248177399025232144376076422725914182622984902739722646239332878987577945900518251450847971310513034948342407195819348478014730443093303703325748576152467109188716401671057435078578854713994441561847896866414982949824144157081016158288290168797324847619492299862407674859681865784248899424076791305157314407707815324052923543929796576801768027256238756729597296354354157248859435133422941479019383131887284493635749518005142394295277769380961308186444043985848443371072923500119571429533623697268019459132239464000876476320869701547839693192919869362825296890177625829546439021635450754660288447689165149136791907115385959330034259633803923589741152916034124163228978394659902599365736857334052903289006383284950541432946582455643860845334945925435949005461660529932722817551068261952341048599892807056708260822973803002219411362193790480223153106782408889278720782205737171525914988097794467996934647431680315602056243788656907273061607418717520613883463789191369444381240442995925600187299323307582744743013443669305150629614274023406177994601789875991025437320628179096398464344941244569525454735471039493083912357797547962307996989126497555317545446398273846898729462781442955845858445879942013290573329915601178545943265335750536490760733108308244069896557600475342483277792224431446245127922189955429694482838910558223849078589402571068079317505273389626865477099476689762033887255281452716731103218371483064140442114332490363290220131782022926915491092966530760125496130570969269103171889338506931311959257297773261687543916702020605886824330387000651392525501169305297886987185424102781897881496637541915747159686658271719065378766132922363245272916689904585076266004176690653499939808056142565262666810517777326875586710887233767400206170669524522377706320929889361202616598255271687492082762380192433977132710474287579260611848213740758572501113100192985655041005809280056513478674802029807122309255062151865048946360509218025739365792568636672998173634288508881128835781448110223027606161611133985665082276170846727135601130100332178064919817549480638399462871672777803500788844172782254749217131263182769120700554197395404311914485590417047773244029808395996582560279243053463065042399624580375330146858305547063694493887812436522266011322455199501129448153344776239736662610795377361326351240973567672666611023059864827400545275534792637427629714793739271631142030331971549681450638096913069402502076138035629570011030057286629951569823715902360945771615147827908745257251884100387564155841107759104113616167278581768493279797277467583368703350806221958079719978178004952991043951072321156581907182448759984060024700350984109056195904932573944896824360091846404129976017913638460767281325084862435700379334052714254668319875005201140796256144937690109335670470586770375845255540746144934409566561644207453931669539013998461337883560977031226821522001271583449164287624722074164516286714918730301344066766966216192774080566814768772560587852280639311779866184205095865564958418658720494400165016790686846246817023419970219812054581090635479108719574340594745161170680798755077836287723567923015967574609028794245963589065598825050175682080164209619245553147790179705269202287416180542307173792906837330280718284590381843582740590593052912469787034596167689326795166588030785350409826268322702289049556819808693615120929775269644922906106397968049964296569166776168217348730625430912032533357865162408420948867065713766259089060671220871408593352661710023576632774395062800450856478723489311917490512921337914129865275529573261240143072861601139625892164637815175786100026935486946870422854591417501928415910481894968038533958735314087522096852614995072355213650625564182771798602597186782684588515082298292160364554013374761356099434384145767598497038847791974597106391537160136628142185842661590683857556600565560329836860645782247683358162160218974760688274249981398393370657317349782672241868242129807112364488743438171245151800312497394710332445953693230911982779217364029682415685667121607589192397950483005119658569269866329851669376244156742251681934800921329185058971473237909806755971242794652995757263944296395402012251491079135797379637295009520596352428885794125344052058201299539443112805628436914535997144186471772407013947179769454080018089459243310785623964184190670673824568813868264199815873971117674660012893026923138255941839506929075150299475131213402986800070909319187462808849589503887000024817476519963094599487134128049096402403071624913720151221037338749787660548980871390224444508017899040593561725164021822419238241772604395677772232498305663782196901957295089055120189414984772462207330754366878080114404404553282568073817119917707436064209903096119402464217472372297608372293577392770744514122368536051811074653413721888036982043451947447533399153437212420045763790459698499249346506275521663295331008301946981046029483365919958461121379393796160698339644925844829998434084602540686238207574353707762519316102297211881857923858331604521511664899826933021756922860461835171160512527581134723286530646642083998621721375954974880795864757689456569276771776617562870503585381157933538837790963985336910108846641686454936746875883205110587785702459244177563179618947300525395807678384877522280313481526243195415142203507439493629784676788085844690086905660341269002682413321262698746402091279384005925357882875288009018880869991472082439108030970121782248574960085165928282928764483324333292314884360290294291520093288197252161596628708384923848539364917479716536729460662703994970506309572306888180341750375532448945556844933245195349604095470047939903627707928931276782284739965651272510251766602559913380462618069104888195099771308450452278194342598440138122270994793177738929863749949707801756094401047844038412073271006879499343365456821624628814862627360927611634215377032777991639612500246101533161474822791709734053454945485741049907803868884142863219105219659239621063448465545516823153757336875478094344280613546719444561406963132346429116136006695938554904840437624742191149349282444203909289723580672880671563946459504437743681361091088815162423963212606713204004081093421712535898508021298588520037117729903300142438962066850201035082977054997120420065577936663762302598628333348938624819083685418154164328066861266183364203915260143014645189024452918769719854202653279487820229510787248035987475624807765762651314102318194850392370589060465322605853962075929675950155014822951552709185118734718014138852441704188635900426307910644264359890417382689420242932471381015634272057858386359155634958541365626874524414089751851661613982978458869013264799811664963268488734674117651070614633756438713422862043655800343708193681460787845880490688899219160470009613344999020006593157393404414426687328877888499322720360016469402404429234813879772867778336094831633227248514586016874623873534154712872783210931310654430157703319070935050081184258317513086114482254224051132852283263029573341324417736826973503855843045972954918302913089529836946506977882792549217899810986952398083240130619489962430769746288066548526578538121644706512527682039124895644327801584370670280875246764240062705704411796290199424352455454755272956644828493267892412641081251108673276586756700395925608431929526787696337336177117087249203117896889105683966344979304157222626113843192884215448498030512630252727123299501056387644279214341988669037127982548665351389746797859702620923143309677276271188242336866788783832070641824060768816069389158983298237888032044414309587512106861886978318601282226424318329202343628531094441883581376990129056801257659493087451723983227522808408917137452815518205758936364923385267987393169469322481808288396200902284508609273565268354711884050014534990890873532865489796261791764811489705002142187535978587849305093935940111125171585597267929493031957193324604835160499764031791753172729256211465921143213381210777826881469250848618394594313988919282332010206870067353806907413923790166241864622901680156157271420312739246867451939894584268172405826469199140506731015171492758668072642956956820873649512665869563324352539509669634585502097527071977512888291866413679985009772275329975099369768217142183158612475006768184675335451077729578161104551639150667534854221756825388595553952775584364111304056882694877935668695275016917008559317422708872172001266758873325122371966205345849081323029836716475822669896031140248518571206351706812814155776327631089627406606354973228027866334938107664913123275951677077530568951648627042533299229231667489185550778479810983613405432544081361338471747263836293492562351421834767748906322145047568023799293852901570556781830348108715627467988220680923207183461825994089799573811030882584680127386632978128835650638330480705551116867059401417415658102840612364928966161870979786786267088135012716811888212146704224151475362503423452705747852061435341677731529931440630432440303930940885070297332392432457151836462076145753095991841332398922809937921984740415684243470189730658178906769994596265656794675696908207484552274385417285667247084414832717314928756963162321588657035725336400001809466071472385932639994208235626316196924671702601859740309101334742866863433606695927779773232353087284434269885168787783450424916824250327399722291304216853844688787301664183053526193146898566344373104471675922441236491758847140599990529582023588147246588566646950915319016116934346979535898212949118227129521707773414550278359337780390050410708003757504540791099886074366273295021634570944440876845021446448043361641855516699859232019878477317162025307434009591130067570905389617706352903743734579631032893426229322877396313734020886084704740899469970896659493946427580777338494992177775271985582291561826159902671312268419189049101954849570808946918992598457148787428577854027227573558713370471050019080118573450368691176982434612963144818070956827728625103243964634099139593125973237891457464523773138725879972174548061665965508197571203915926054169067485369248588934278660905706784646622052518831181248818383497062368093378188993991166623818469397094454792891173843181692689127837673536606618960597150284915913512570539695507043327599341568646486653674560164464613121412947420075934238411623033242760490802474186840783966286854229504723437128702133362893141008113494288392665453594522682703615392267914762617507501803414608315391345383970724254581515064515932248377910981561182320947484493317266952145951557530379402696389757234574840819984911274596865656736682731295010360600919991715757001643665173572080411951540908372128362637516400905900428277038410535556657163172486394810649737662035999638885966936396256477062107616151683462445334384350459100082040941912319158985373613988023063696288548172236581221862868308275442807782260496513696600494381579372527571781149285075267155324220920596226233738068942139014809133300372659389829175248754755965211026523823870988700791907583413724032747626937103866722448962429470225035364533640069612946384064593204174806268771837068841148724484380957995868088460373939614860128600209262861025982563533871607290028136861963843865745628120161374534029875369759588444563647404328419127657253265190153566051235041566284753229309169902945970362376058843971616591695135744953881969391531827130743069479652307623464140109984853872761369108665739448580166137086270913471348316144457472381975002332867629102795911291950009547288306737193457096554551469096485662237283273869238899493540639054751961234172189970621470943719126679573884560428341112320683019064954671328530060591579995378555515785963971638907183702136176890394109180962372728408191247565455098539147963260682085594182926985707440346437762927516481095474266889663014025514515801207090109213758948077002560383859970305958514249651182011749881254484757819050185976704586620875766088051196370611103719290154190436788332153746084122265540037601695617683825171152745761853880611310312444061164296363284502696669759444684967827995207298916693498718013733214108235540162896995206527900411368244085023477633336739533704106865487470944139023324546282564714273895332312364678979263461354582606393646392636077500881337464181686605484269897572657444161793752246515084323867336370920809833784944389399171184137937324872392992490667694446235977555453019478230321459333780063009107366943201805615704901957403463640138514049711256793143846431053281704917517211669267782647628822877344205718320285349004311407251977900236215111765459543462753333917192235466958324052417522314613468203403315251790570137569124670047210862488615363727327172424432858493988624638634282677657662894685019760119936672997075727150779406462761176566775065887304325093635931253090733329463235261502653226614029099902069802776196128982919986622812483073382335349461911149060314398194371259672225426740346060337133433724399747497979648225722080191219981272825372540567651246918377860299501545572589807461456966793605405403132469602411721074193641164603374207908277047164167159838877192562995861608944393759296560208093098520448250501494584326642488842358731791701801250691462397424595441090562797368180100580312415319051800239045249351219786835923877148642625384505025705901186540621741641326351624915973338377510113646871947164531592516196917625788078081003690493766276505452685629788032969258920227090393301225866023039688040216694539689490948691866047795001853888972371207958674077861222945683710964344162609502921214642147710996482728348783110119046862127784668889187449275300409796987409845074926912134739946940032756310697533151136497836591330944533485450559669515824711330018880923325738580492927446302033098048857575748081301275758293613097058806745486388522317960511395999277910453486201426656575934287686127017233429285617976280452759978362464454720355329868526974223913740756690493193173590467657968028484970913328328116873413000370461955222387357139810370835200859035661964477040890961098606660965944051376892692032269501933524744691004132559195408697422460041666275666553394171114347397412940346920198560658058407239907567818609138732368511500215601912816250789600628854653747350428273444521210552886664908670511112438218786683785134538124854211306697046884072186406918371001595553796736687726942444246578398933202517757401654828774535672778433030063950554546428380892496267337713561628312717838608346877677771487135389663418749339985275424620875072723716103777389211627270339390978096325403778873271683686085683937639755460185036386604689569269254880750279774495393007561665833098975071129621796777017101351973635366630357546366333760367438086330373538247154099102963751162056849130393699701959406680463017220342706501411360018367822263427234167704712329599395196722383309478379304499968259921552906058420572309614140361597777874367241773692729455178774966763544281463914862638462801851724436647925574912037284569339227046395542351664083250344811506515748592130784091079631104322483700169162244130332908488584346780712816104201389808228547606839992234185753755510425544103411059615877464233089066521575000451492694771263717523901661655465694378240376215566497384247695947502195642817132539171132860894747655738105181926058436136989434494425066328345905983094735777254953803230600687235558073365198812918996968627100925594397277645866662401537971229799812224819323188044036883273765636928555239397763569968178235548313980078396714279217449717933553689545494714187528402865837969320006151294234471059107342947954283033860561142397618237862681300393304139692068197222801466666749403900227154026699120423071929206451652148780910004111597581755244167829436063749806632704290943681822062689119314700033256859737186561781972657643220970705826360561961591226861438212741558878943839615346328574116519576788472746600322872240470670288191995424877471321116230710702705408829404769924433360318008500480997927638562058641376102621726803075199771118807122661664373401128254757509809940464276220256362594173579405448161173485781334657428090612674888602208902603064904386662300415455455272424335438137740158028225425041993720035807093113817353935648896791928831767725101798404639179058878006861488463255002611718547125154979037453329397509075078307542381044095780794665768668457839826221542129994276130838786170514042114575679239250326716202822413069789382590400450312532617902459140217371563298367674608878625765483254417027576777128470387058553538136317148706733283108347789451430583252592897177036945574084874773445912952000106351903594667828964709506979690260864873169642563621035217106826829794105455254821622456924573298504453451603914362206139402187823283741468094371924866091880255233807287393776988415449115282877482180629865667088833451538068374722162935949758603876873720005260226276487264862946499916508645992461139898329314422303592153649742842957497243950507367881272621629670641469497101707530894053928315803128687459657932507871116908806066952403093893741728676478736386730783364136336711266778338786396253384480569151919321511873261692669786457584315137183567326629544343864696218281845478784007329154990079458241839870090175229493205948941269520473025724678795682577433472799258228660864168081458255448564805065210764556349060099228203974374438183295789221264207239436789677990515888796256059461303345342930411010625186460152346748765826256530531423039509328471776885397897747954429584202402874949686632830052406238189866997163122256812962843144458866074687158725229049047627858275156946212970689658690250358777279853621446538045606380538712355729938158175451791519101808747407513629853607028477247803158236161198820801638821580324319602634239705955950030316139918948469974179255245363714837818716617552628292394778827898107694997011952427677263451258857968555737926909858073210529152622673316762425903085245618704760922949549955075900429489750801121621490342817180595058373410626041000733977183836804184023234927860244128733114504422199862820620746332827024759687171158144533824970332930475583752037085730603607656451403778074288698379564253855647218987687222716269858607433343549384835296093242451733657457843782244295144607345718047189427474214472498911264135886672794273329891469960187219161187484346073852709568422504865368961970499533371315404307247785091574865350784616152106069434475961362406246228611728433617001794401684397685915083976859211372731877914605649834591057699241494001125413219256068814020619640305096868887863931963550320020793286257579483358385575702231683192427305581261904629137923420494510469703679039898778301355166343566079904396164350278533726799889917189168856667913466146291785617013302971070990908959291440769049647318977290460891879000426888438729679939681255510864133116212936420622346426259828063192597043489119846289305582510560081080090516291124616848003602634167804470540343118257431540431829723049466813560244121417292423142911823668890917619632537183112692128480152126072949571532333960087856554388410949358774016304178399056915154576504654922013527071326494042618829397606201482585004241667084151921181222047939407917560607071329654097234454954213790305641866154014728560614106599506183347950968297438838052239519615813732108545215662754909453070394954894004197476941487923584662657328976372931029353608176075509864729350842051590589378608449048054241638222997107847731281572982484798395901698614659231868990378726133530613368744582766972388951038411353549022244791789627482322995650166166459804642058969493190286801441845284751640861289223897444455937332569069260712789234255410012444458765093047705411711117769802249881732448487842602518616007727452423412532860120214579875962888740858434166002235098678745836062385341980403165821542162266638189744717217615951162013062606516713939169391208539160999070785934343354032584297540183767377902122869723871200840364852194245977802715456516947979020753239856879454482340148395589014220491098976307121459111070900956143723272161681806047105092099527368063409341741596009579819768195209605498014832249645937403172718686760882388869701238422496145874354163553558779004743891398003175784389053433280959912461167773875275509935385102038156073094414954525988996484381155345721254498771792777263707866086676598042054455408033619180868357083416913841006756259384132261131094580541397373218942341362877257968454911090886623547212386793152692178175552452547168881914192686346720163470326574253192226866341668098701770769449581642383952497528778796518746273080670292226582565323725415231395189672743893376366692409283284172016219189621488050089665242719593075059513708493555543692353744081924324311588552487380907115658240752891762490796965150497169466786672357369583928215577615987611868693510832225237140492250496087758643093837772756955115641853732600383207574873710235469345007127525612874047778433893233341574915636642588983318803516644639131346542381019129078696540741369101250052147635030850797191836045052666523386685674351302211116182691659417277469742045915478993175694269552419374184874616653282362656721034094007614869584353608815472137668026558976380643825136161586877339409598855258296011779515692988548883416866218300794113617014999732099452912594171757670338276391972283444572870437762407640289894811384429946240773686257573017470742477155126384935774936687894386847293455733379014571822168861869433784481363054610199443763741686513781685296295899658847730492005782501164240434722506873299203959173832208788137686654301569739411843837371966405164508444172496842066954080151789761969479665300321923830704007577540568671202481886530083945993820682620092962802343306574655552489786994782923522842087423224980049265806400331301230989572502958994666974282238050792275888179774008515580810236751392198841944589341387258449940032762872890189569004937794854136750581604641005924648803021446707840973658945592110072489013326580043583825142916353358256628728827021326479395302450565617960626160023988042451374990977529970884771529490615728014870989429174185366665815791028205369850539735154447391227976701042190189581362790324747305855378269530580209691598176348496664423067928936164680522062808987462881679298523104130591061365942567202302062721208306079213948094779580289297769356257472888221192648226927255798420298420348499610602739181515732578541571655336789777539132399030771734041424343144493008285547717227207448806140394275471650070243743209822541967492669070281909698332722695827351123800827311226465355617757985418517243787890227180890865331639904342707436673637405622237929944899158220002546506860003444353911795625587151625357450558943780959734361237196763922602531681256104916685727325924100522941452425104493906950307818657865637504582187494730805293158914448724882966520309307189426037882194578261269716825342138896413232425005317024680592069458003171917275129070029889640818523619536060411923717623721279422008172654416618081773549110395368237912653315028712439066896420694681774841373958312840659971739065067286212950204408440703516228586903367833604661003053314836892588139594753821624420861791656810043139789980818291387739473137030835088041102466214848492272488760503384418743971481229090822788771013589178339716472724060887818356504348405213282790273557230509960736662384654285219394840363714380046495858091282135781587980946300598927772377482952291156696601621582842687247105558335426321766747834102333027731806772895329630468959525030697657997826464701508167271004042073034135017515797833662074349924397309342163219824618148765462069550960660769117300674893631761655285155522870396051384414402568473738333425540166192005421320170213366245932848501699782188656213535673333190649286070826094035973905455092532560773199534149752768972649832736218649400018747008081239563505951462695710727925603473604786890497144659136626427101999705167365460892691431962407982618114997551127006939400351846061789750146891203785620065927049782638821199123079015726455812715059977911757175211940469767736807263031742218157184903651824574601298530703170910647672663762635272943116890658119428245095399365803357991801961593492796963016442828183253917733948665844362481527926331001048284748499218536214360480451513325620425328991432515746045690171742754194703700872167176479807661786055459647692081067612076290442726010551297711074918798311099224204976202791559398841030034586268660137937441469730646345894208987102831605656181629734183052084218137059586287504563656865219527564237997284693685165800407266593373978733726826024190638696784388410241171079031660179669017215241925380462841596533169153725251233566980326672157196301941408328988310096153132902391711448078706354283490512828650297839258691815439874989501576182548582581553860570228123169521417307811019907163059533494025456214841060975999989769314171196615601521914805905526642240776602231268535278630619792596299773903251808029034249204250251032217995748411386465450134155775029141712445202809795142332366967922274368284311575844191110609214265925083305427951909659310395837686874873653441544751825408020476792970518725735311492174716571412067731409722144945686701331964756381742343207473727512867016872123807982270611358886438948627650409783522298429758693858448387847136287386393539787703821143105352673672106458913283877428306164511969837349803138533599427961607786106031836141099707525030961186275803375435974630861442221485344568448028824251939975544973818078077968892018862123589541859839914904129830944835707022646417085310999056421021235630543389550411988798775699576422890523501698196142554990962913759094537229808477266770397763795796646379723354922912710398088234074367815976984225224191404244753791019352381544215395153519502613421957874949729448997011177550011639533262087412227967909342664516044578863090397751684472973163778062297326571647903520290951211805860207552125842168419155755291071787680230667800555396153956084136257842641914379483572116215793504940086461132240324059148535638681233502763726784546893853607016091190557218427431825996632006208785764227065398183467296275310062342225571250047225993402645426366551403767662446190835742187424288835644194015456682661255400865784841266553892549265209165117724837096959430849926753671276114419939309208620364423183209367819024663217967657019530929264664402391480490150541597518293212747511140281975312928284455119850066120658112007652589450532569941874500947985407068002013556948870439352926460114976152033966628724074383579088931405345803206142455560665031885132997399410686677200567942399442891734104590727748717157471143641127156996307693638897902139104894252674798646973488665910808914542969670297958553696466621524667400134643495165523273373883745412167796998080332470900179613034923982549243524129860079807953211585226597717178176875474861646133760706273176953859901851690240359085479242376787846266532820207749318700422140461477894238880391130623147336409167511923496954326112926679445289178255466333722931282468351038567767896995449842468285863959357222632491158417423183230689847793968168510988708250770473347406850602445205473654964427318806391411104995391749067172289880062788076547811939081027505110132351636814973404518863492547115306850147782472764062838682831553175147941577395455171954557389782087193554239397333112002376806442443844226931804702227265210600291113686893728006696647565315615395674862207751668045657799243139504510549774497445720941856784113592454133015621527278409571666136895129468667662728325544216479062978730852008061138386115338417649980322821036644619226501549430451672765332045818886685298661330454984013771411525873218234518216532547314288394192867827225685443920963486536824185915692462941512061682485298745087379538788090123179151771450891660524706922757793902113698530888975096499051232077681756584121847640147205630987017239857417546714326211227550112144899624922839736889167459337824090202688500030845749071967232784567596640406536885724261697080335525981065939711485152219957561887514960332471092602488800078988338980138333949308910784866387279689888146641186084719737069478999166187133924887318865546410978007756090613015368673004249297499528510334422523958293719097023747354050432849985832520962243914980895247326951772800605850634805836350425663272453505266297572941274120385571444116276179182876388498593724243153474295831669736159427906492822474711844778318307003621936728767748758646916454770437232837689964713078240227322421788324740315200304290071609825179358099266917444802878079592690394778587421731737742855334958367587632451185430053978182087721656922450837307772524388614806681657799448962011188367677846707518525323037652874627249624279767814833019736984665024557930448318411186611013113557977135669534721034067595508630170229327401648292893946511960177661687669372145147453905190827517539618092947590286773904379580565541075869615257728590073755550207028127220758148553347697612458983934648908495580869448392894643087612292379033443018228389595649297588730773334184417837286045675928990273195688610193287221285216854813204925626887890704527917580809494064202636465885275246358595055604262579288014712224557019197048357098742333059024444560417818802128967307223942444634628904338706022274454201346699062752947553009564600418545447129128321035059868340935112612850015745163993553833437773470263187488810531815187383491988115465843888755970996942293715675364215827277690044143540421143714011780494981598991854580089253319254869738501143308135409556196880449305874760403248375155509148540861933758753858574383577671839639232401063610310362126703117973341247325003659017464387271423544386924218470458658866915455392133794953337030582755445035387558259284578436545283443414673486541685924888951691464407193743119385289693387227985155834668816749564218439761550127499914310483610778460652436591242410430867819397048786277621376104418545170301025034216482386705530680213505034327677710823146922158142741665072392468018580663781667578889812169534300086524892589181580932758107297237881693932543564591449914457588411719578105912286059652857721265354716146676799930995027817904411609738341964025555338938436898661197771753931131956388953624435914990626845264171133070806749978656532152424910217437000143065159836354703237200571358276605846428465255068169029814633093165104388835324085475311805419760819686055015029766725017822998448947826739181000296313434014117832061795038170239177934139409220047478688772178269323158839479858799403383797003688858796492213313655298577858530855587441812675815711117764005387691802530658479318931239906722893939318182671382110806148756850306660324804910679968779374342241954719466261915928986127607515535620380288084529654491360022890184162766923495950927342496245529028651361593931842346852356137986421529129705120872273436068630413094444161512976305577331772663246271171124487163345838995472953141828848688505198719663577489819240313897252096891691533294544472535256757338728727340572752883522032870116423258174333123324425400918688899403019776875779831222342441674460081819841553816938181684749236957384033755681945316476395454223399459633643390901046561860881279111894679225143754240033276578032663652003433992560719389418398673079773556061604356353198689591048090466969032239169454798710938581733700600671957842682649049581903811733996117117731673035198534843450364591373174913036892444012987322738080631202096103951389390729172183235967086223610582308212151598667965569657542382063769556861074619694014041048529158818506520308588775116943273042760036977484681125007364565193156740920880382934419767081246390452583733134132107849590460333598367976141914144883043366566917653759157603452841175913122308081628613165587839897519616046840645222880289367300844988795236463792252488968809598067775845636746670057163899630257407830077087697285180216841990372279804346473063453784696372992188307384808753550869920977355191899127742818282702309732806076291047611939125804446030879866420713083290250358096371984848632644123171457104157549510338657495666635008290756874421069656772829153025235155693972270945110596029309953572312086103448439584196934429224705775340197770454468941790434823087284005853357891811948735773831512285072534974553308950254453897822397021734286727466400747332719277273682489659421481349289547408018499221897621814314623201986623102119929017153096276219318784615290909871378793139388220969094078756274648358981986411702935140753091487993887508496763016110571794999943061968882708013975161207672367216500572917345357273923649822740587453178214711808047664610390933134089424606797114170730545948040619161583590713963264618873800358449547499042368158696321154467952563029856937598790170464978337253434256918589632033539360612450553227341923914845939920275280741510306977429089391515162231395101846660954886022012469662316620162810799603845712863681262688959629633568205014500045946045661920621845841027463414687409138592906159476372803382461459280636446794500144566641675268212879230144571056855366547037694318284134414281473092894550991797342618790684341291834166388662281588112959915652789453458612706376423361471094584970166808955066591401839504792276511550983932613346015502239685829301164311593384929948899078520152298167618353982412120628751413842837640244120923633443788071990411408170983791180898407270202418202117749291405324590812657790621179646906777784981012142659674429906051036728278385066015907256783083785253668562404462589355876551662591127738947834848001332560788164562691744159313144552534972239006042765512222294983977747268233582085987225801052840054448895802751642531855198758681618078679416553789185467462569738225991266344520753355673863175532123194727120334257682739923177325746146721239715867072505251528670291165607786649593402189622005436264114287273779305983249421507501283465699602719928339897966419106459188594726586737601460882320159941413284778352023859630480299726626602467450420605938231446062002605467145087917992346276225881739568251186998612570948038360911630766649761072020860940266904292716549934996547943301826578524159367400203910269630711464994039871074041149372578837039418376646849235590634040634123522594738885850120976558432322726492791504613685378677916550920878615965671099265496033463468008539778585672092943677351419371150839714744150137954780868694971985185621219801662820580833211075727523103702068223174438852363608405742906719161844411965158610029680370075956013513574193624953853901435158764851327189919151427758310349965338324118207673918357082763273292486411505567505443066293089168062704059884719506151381887500555668456920414256304131822619882242787439674265020359385094799826556779182988365725390356778838911050374690454746796941998045400002990298532502832628398529593818647896252075915850383525867156309104984395600421268302839791217808812582087424921430953415440425391558870583498549926506899884171827769076883799890737962948827750071160462277791181355807008532142189089780229086767874217878123381065780788919321297547918071898799396971702577975216460653958124153058893116269684817572287545491889542887062859723157251501171618008341867909317942939131104563049167893055783559590206394963645514688784843299850410724238420175773145568906011950581614553318626327434458617408868867145659978582560866234729904016295037861160082525032436621851088266017435775427701756203318684770175035440597230944030900501660141909793048164899586761046466167122032270216983624269143048905552811621015088067826479783328166655711197900095539665303954063270657457388363909043275499150083667896344641631171576426308376556150478641739177750740543623309237184864974544671376692343784307204834214302025941148238677007842086417572847851422956622495966027598001041629438242849832298285922418551696313830448326075518938775788566929888754509333139394946291073418487594009973956915474252643579455317110358320567972225648388820743774032977149143724182939522659080689713153713402769054218029371647119258753513028790883094390539774733301892125065546260596533745065178363230254959596317265582256107340658068045475065574873954605836518790078324939378097831618834057433108550363173902135803826268799541597483706286667562738275630905166702476068576665546562755894213339605919909522455225756747898530537207136961883179584605573892907871911856785204717746883818824172334227480264491171935397886905459257834407176977548057868227109288871263125803327221585669024748984512626142950355907038291908113559086721616472030272904455377546587359951514713950492125639920395663369596745655413854417609257296228897316207137007340709216304319086143369561166052012311623448336706739681875414415584814987199458294857702774993482739140120759905666419621380083677436093799191709445938930064941463939872297772811939734264355740359264768421620617961532671730753458024209117572782406355566567062969782950757554413014653626247627610395614497692681756716273780586243054679947590141892205889767163514486244844548109005019208904687995579617257892421446488852704594731303613216268850641668840938677392643670511518727817220792681132860865389371927825921020689898951263874971878474914799671620703165205965429017827150312903138099932049602450933877641488172115727885304284729465786978389561260926780549605871315433128870390096264767918432687711470246320934837610735329820011229851296623440096443850496439392169034127913432054604323735835358823412462239310957237687851578318116600411074799529642603542928336627502471180428832989088461496367439665003094986693448299761335533935461882765556406091653537524917608570144461177528109479311595214194971457132933229299196119320520695227389894912379521387620815695858596970954106412034777674282840023162363817537689136896974290255487271796846502336121603800999967631915507325216462760231878631306069952966272693900397582837122535622056997402710975756443122645143786008816772439473720738903186587179425463864285122017278139232379813304553594423056864497290143942698257797398313351830314319859100740550069159483261186210061576471861483738087281194773591457562910273572775302379695675822669520540304760669404411500514790087044838364843467052721947514333787323325023229838303920537018350238244569771792161656003312633561102051055695598005727307821046005725081260199441444082025625806594337669695597862736225493349001904217646200641469885170438331130893973778422628134823187394176662303310623083546310393462883500130456185436643860416711219090766936297524741624848575390860307605984416751286363707419118751237621604484827017884983421637680983391466256490893100951279461438671890263947015719509889313039191602441258026737003588946021623324111469584041995531215345929043755729840698849385613189522515988355327123417584650646103384125479332870096323121292860768258423470015403881904836566518114697466456672989599592627371880000773566743103581389734642319574751414143236009314544386797524509414322142875745015066324968782643596474550216558933530851198186940103424404847160091204952238941847268301644878299216538113512611117699323332015961047342962233132806308154676145832999489833526146596504250447083011376461725154868201835918623163900350857311725744464663888804028611469473880584077678413904743175980599120837552165762433004600251416362678262163521327560513607559753001451857160102895813479157018645905071226865773838944084315015920416465257020000149536533231451386626244409195176038793610791862390349882790420592301674514478462559756391171865668882436766564525300057133467296559659447145004032289773297740832765638862812621290933340894183575155995942856504526890840492324371530890209098101937933696255371526166089836366054841953507408577871051730214315493343225166604990638846791468432135060912362106197606271950228970160838434843782677675843541788143495813318997435457363345533756609908466511817512920105684939410250638959592470637610202827244686130169627771675110181364017853266536880939771655046957362805356197855694562825480031179512653610695810179948294028184501284445753992799459097262018993909640278880531853238875861850023592687252710425370039273047320935200850291089262786631680768661662629170827209489744187525998059540471909970220919380733019321089981445395402309044187767628843373541766459647566268175963571157290696142784025857826329085300910102379870065374565898893925302737366991673925251962684074652340856464705278746363494056980334469987980095835628017907635184637873536422806682059549588787829581563721588316582162069699487231556905899999721023370588135054691444040167764999933208704836338474820656477553683385821430774542352377272398097718273164757016836507458592921620309183424581928513057708470212136779908763763897820466043717594394362559299131571678873460326161013441525664299216433270853370023311805124032261462691725107554532407072067316222843462161875387230637000459707137585836999886044511485250223941302942528874223568642224285285561491588615566080960691617864789515808267187903066612116910580304245413135365738565345741201729908266201851229097904981358882794692692501521889505947641576357163964756943259710890800195072813643924906110629734791850568215622828807172190264363463396641142177553901928921988462754428559411976433278295347425907915296686228800658535849361564596866261671726292003604949173066554355032543493958553124013588626422585974361492723112508605756901100704869698454944158212471320606640988493953666252743041269266940796501688511890082076766466226542801927961663458636490873677181206883687731294660130896343260626811940292914659269129570236164041335104742131306347209378358999497276198096433007015269182309014194982504577980422034229916018708618204463028932740084974896914820549528357399220114830776086433515007743165203118042458200973104578770191072595137853485308182329751383668856352186629656912701500056041454194447719557797754781531600773631935876008558311447665759980600132904654277179044668366205556351523409186188824130627292216638657145366635372583664794785922125051763968636210111013899757514919764696079845605718412186076954645707806404885537965277849552647848787711370752475940308303240053620824936422241871161531151830589239384307713703854454133076890885388923459758638720477680521243819603022522400737112973645159941224165300421960098974359607512544796658161348616329586800906728073452234275545243830732212602605858713728364572809973047131770636080748441254579631875225607768737700816574068222991241828266350915293031764826448737528780603909891267780984833585361572462358215450325549655192944344971098807928159967256186919982299693369304101592071230399622957458430296424074807602657128051668324753187609177173736953089804555161870607567185976632637206034049165275043182133999059696883638110231348076644369105393031783238155466603582175162563939852749897358180602005104704694081645512751079516046429087768392276923771009697761513588206622445164002651328087282322357027232513629165625681077078172752985837745682334805406002051239939234136537550218111764989697627715839522082684966465234613407158197774899578357603961067421352628240449424229478804098063738734228117613166660995584936396001620396584739472362888961634316691168873077399392251191960061390507265516842746717440576792719211476129381790660029984587800093860589185958788047905344595653094073792152207469497645030800276304675023998277726589918644258437689949696615602937255593482546814370690866774554674647951664210802315217267198795352666433880490879750710078405335199622557533191899964246084520014563386852663634062160789616870188213011254117427556577441421116566130614102499277807812272013424915650777101841886779153452961104871748047111816130665231533173009123810740052015488324274908244306106771608526272490875660391465196847339638425068058963748372077206099964743661779367598463103948740523679276086847948109403167110917686729620947177813367512658314867613548066383501685181733320955158500785559332872044359767783577815865740030713756160791451023292144315037868141654764816408012447530850581181223212294624462594922674584750940605203702981980875249702497699403305486629988871068541290081072664835069466947054440418944300674815333719064624050044666304869149739729925329516096110459843871834813896740545321404393257397673460842531455221400940464065224381407165573606060037117567325959845273857425745178920552397170823187481802694786702242380006770122432678667191732942516373558978235716545821165557702037874172560624182187775440904241101319807260337616219827466937010390241340886659936136265525937109544530668972365538325049417698619742139869911819399793528305090733829155318210985416228348961001777343764570669220647715230011136028630002042452284326072384099999066065452642530669006373877660934564139582740271318056290591731549629649376267995412708937155834372192547741580285242768759562635956747840147022308898454120558626056960238406431298809337375153130979929864724869341290220209132275305971877105629025202480310714893229100241632093088714362770678268459545039151450121586479922011764076700717372463759498340542365622076851888496004359336944755907664686755132277091134276992707389147117073483424620616785233060278321039391621408217277529714475976036545405440893944078120191736952005055183204945886968286652585667727313838752770169051802638525168427759578425922605821420218679097892879292124384223800407328899521932271543421373077819274739711143806709110725915008607483025097621317367479156913290634142604891954669149371295018560437923586243945938516115637503713293757677495494202890670023117339837449972579407375549563608127541677332830988908499364046526074477889543157530012008330478660569273628781769869768690618274835416122485690671339603960521025459915667486738315248240546744362390309983395463721104490519751587985955804306600938046700167511946100567861502139409923381593907304755084018629787615419048715864915600079678708384848534175722973203362378970635359404696008284304834537545833706238571402549233674926999134506062294111120766215035930597767934467287341991203581034742021144749414178789067467728414102640771415300886172767334125236516346237441075851881824860358521250388562105364407668842814732576846395375495782418148577400833379734593160763253463536647394134518316155247380692414488975901737006987186651988850759654097916082978218560092770805257416200906451198798135783318090882976449505894125053567660918393587957802572602238374110019457951397209507296771712259660624505302228355215183190002624157138171591435206572979666708301867232393942681747801475707405755099604250765275435205836311609477655934273334760868590415336614630500165057158064747735557519058257334129628642114145491284114941837732402818701733300532467670792192509911853436073653718322242781832698727462140470309632469865959488868956636659767741126899346585322907613518084311367727242411325572379677745097880879176502846072549230847590987045285544243858161082296137490028362456470278693940995093728323630810019752291698928917562949382916464571867764391538287093309203575746679207544963728970256337478402799135713504834880485688932971172182349897199310143183696955811909544771026444227889101722729312951137023335202291273727190069141924169855967143574480660053047989354020182859938225352348034420926490525834651109451177216768670173677231351395875466824061318648780494396631173912285204941057788099482147268258391969973519537475287429100639223569447803554301655761165507878261538749423061292343388777568115786913329768415604685163352423626310097402362522933125742054857615697562905002683932427679844106917208769604514291906747372227155623166632241362534794357066104420382535584215489669908972049794969986016446681375798046389100541910348288007908311510265071107484116354824376569575758787891758269902709981778563523059356545185605036757091883283886348880845779966097276258004172150305350755343192453481294699156389589082926149800495776729578496421091109428678126134000744980309904990388041727075195301676994276796730314869804494824893555056297944998204420333728449930357663891151987215461204379536711925158071042312319781708607695397242986283174004572723164167563652257091161253547051956697789938458194832706999911484405585411197627958588350587891265635094315492903843548362843360188361261285111460287869078614407102068049982644386713353459387291416100981907911532010779144871161955425390909920360940759858890900495470207510399170229538036060726241829549778142739961891615517120140163925872894679001087765743613765509082509663449132594221219939283573710613747575539937946574011524220458478523450409275836554387580639386336434359708266603068986739650448934589811545369257175445466672556233246878951277839852263596842549828577196280258343243252900328346345743484118847775096004613194377577520596531306162563311748778815538063751340716267831268036796979470012074425991749574556120991746473502601827939210076921603171803449484315497366355082326582245865306045377100023900493061507291092817603521551433605823931640616036561394134743778060118497334725384737007755049809226146454580408852559574720502155402947477962166722404552150519601790470136393116057099927560180693334322351132315048189017120137628727101952922492863554999357112662707965717643844314397483395823872114713373278378375792693789093398752557612913560168482995017477959356954920391285818172719438487038518576436000270086326093556268213516902705315064073620478749825053777391812272488874636506169028449294813503914131818827641792780617466993787536163346996396734832830279744530225460620461066259274341931867091010322688515243218228741590018320653478890307039050080675194289162026975667485922559300678834865563425981204341499339288720499916782970775509458721558807167901309753627462343826571566104837920261753799257246009089137664637480399394450032647839166016945819658122983779580846207790015546227252908280647626523397527912594958595725624225515099942762230581755942835371683810331334316161573838578058402655757552985516273470195824209087681717435976305461762971300848331843346425447115516934136395538450727512379638994320825727225315236219875178831890702372791822717540391278281968736173147245380200664271467051757488716815117451184041881345286971824853542206838565994891791052433319846108389706918826439924382133242570887858596590545579323034261486468029967996586765653580804938979582470528162389925263362331301268892065609156239905666056206371538223009625700438159067490236915782695375710603652546404102186285971756672672369442663122118866200275214711189420264688174576572893521384175755288352376268614895594990562906423746714362395454312238847209263283433328676481096657485280114761557900467215748390848692649217440438480418695874310256289400997312111610849928297790772042121886028605597794194150922188938487788603214461917617474211833431439299726845517917923298213403220051510767560506982915448308509744097999817004482170208564859529287318182572826832316698296906915487143957209163810746897962498427130304862439500024462368764127671586071524202690470635971098561227681296299004170652244499323318883693736127874571573411139583033326730647711895514519452431462234947025443470599793297507676782900576746514380477592702110990492876421103030240736977086519701256971833763139557305244326402540573775159087448840502885939476516037037664319338307473961487711378484957993327749491793224268007644320823511779470834656854432166086112183633936885615055729928821632656231948193813846419737605233926565288092590878694455166579409423351373438335173752237601076772628621860113713424066700040077056515703096572793622813886727469398591160608154752208925412947875870561860835671031143824958136213625800102950369633550255424168261569392318887823131352294518845865070265627328555293412739302555465255682826918763084606346450192383250927306255382759011028554404939039364348462116034523387923452026069441653675102041704341720139146337493286344383501600817879173150990334533753833414729304537446628155529546184774803233750299900163641964973729500600348301719714075572127896971199627318819053525574056737815880764802569266988827166820687910528785929124432271928549844682660096796402399993624402763713889856794304185704131376678337926078766931331156121422637839966972204327292488336501854806321446830608391817024945182176565766380271697365175101293882294067551298938114624147160313636206766909250068533153159563090864219093848588345845593530299647534609833281833750386107091464352575807313211440898515414932628324696599655309966537958797599041471007557812061106801153901481990124103491152014760202313506341179775639298359011639390793480470825341703002814536217638828479606164904527213625992657344430910175528614285707733940817781001151876838861518994710683461951272659864970502664009729258071634664536572880405243790822061450813774395860682864488502330880760423655438504019055584882117692846335988832222921958764574338252769134950449147885459643123326867186554459398315596063430191119051921479700910798982217038988250279700535563276413408678350576482792047366795123843685728317775536208126335570000681486570473969384155469053088770847873571892233203996351782107649493282795583580703311942075591038117837029381217198592229584551725168153170927139090095821715946416341277727507089657064554340849690423167006561382562795441218952509271172654273807590322921506896968953458650098681581397612862791129007509616692694908458644577262128191008467787067167612654115701933392938251347413575831053129950536016553387274829696553986435903376908805603951615424860145266864428735304613285986901166048361304118696825379586109777530797981863049730138218553326575635876194416310208894694907582609473662041422498506150390601453247445859447684548525566624486899316240982399811275523045825467959621238861731382414838382288252641190544134442312130453513807399611612267674416284085113993591318629110754537821526956691341343287466414744329544989280104286269571217571309012332584943946611000427901996356898269812600133238944159016160569882547863561197445917003312468984236146081997311306672716197267593978987036209748318902908119424526997473765864781496514344093155776833713003512195738721670332240181630231767512972600961944745841069998312979179910097763534794619946663233187332187016459471492035222708588160585247747406172210804607255678978921927665298670553245369515802595045925513932638518967468573658143584279022828387487788182903962075408766334931971472448178368614548196712019905448154932739272538423984476040737021943619329912124402123294460019383595405775757911131061779652889642408085010573228736277137997119541698578758723202502546011493220757307967045823595073899939747748390626788772334265496064889924974609585184760367962326766609565840347356095480486563136555405481446426311042635064672402353888418658517841254442350483298517688235692568307954490241003922489932870999230223973714080750196972425954528775523093162820527552552812422603802811018771549369326889880667596413574352363749883142561787646274851473642428726597149753558235041230039372257239612704337027749255073184051045508197640253684630764546822965095910524261786432305312702163797371403468988815737810660693297021245666380211596300733701477440970106962504115524050291058488108866816449501850320082954396685647224069970428776516574009989385252901951659162021284932330577582173388991174596293885727105263855749919107745134203856833515285052709127285808154209363734159802984480058842347674721264048664141286899788616255793776795238232857206473637981983583332829079557569920951822992235540832342698797654733219913180665466904058721507827825235090219449912134521238103929831052868257695480607128453140629938504288437531453228422120065459761597720955668478361986310113550196917913211892926086022362634261639175373744298311303413944217535346652210315982487592904585873623049680940949337674113403731459946951382761391382352675568273284360001802594135320046342734926398233683341005992820317605607836890935973265323288420158008568612088165536164434238947147936965227591468561443901398944183789621806375706537925212381968143725802565618039824061711013479774052080608055346907841052051986498354453387521463154432745811948298284176824470611635894035204160649119125215654699766191922012959218286996212880020276749451785990431604457345831948473868602819052045025704450439201599906299536688999172377433552899596300114827107158251465296342116964732633215374083909221014657097626024453471178053101585930545339000326003605750747045305166063202302206032615039976324087405257656598855309069540215027085467932222429103055508137913471711994561565479782797907238314413979965814276798154133768785420614597435798295193839093429652741218127178408182308754652838156333499570637200298274053500113397003542880074184022316012042454682787901155219469908758767877640266271991548680646344965572814570635380162285162151903816722986235663187640212844524352869950694347664604056324081569107427196578173325175482054248696673306756328979848687281367529899305945368325642410326027463456846966617687153930565722679618967575736216872004497856701840700295725055632712726857228822947725885295518703272568854168484014492182492414627775928082356560997109050067146574565262438937021836702156902978728824152242925081290636070851164703273955693870459686808164037074143812184995335832148571232865085055327610953914220790884498256578904762671538370815907258560385276944988747105705999624111335702051382825706322614004206902793862168420476010497743997892216637845201736688743051834384183023721096470088466250414038043980002377354394148702980374737801108365023753118650269090884819268449735095272251169821432077911356900695151935435659397915552049253532944918611760480040213044606311507065833796143041102952341647803144445839497108023489107534183768800710600245635258625027461721663721361657979739062673264026469518428158102312633141376483628162352886572282115498683494655386770667318192430981130615964931065377909787852105785031163497717311461203062663400006328404681845370687824659763738647579152285684541189499672288147736921198928860062434423886502354334867936245568575862328312035986363907975869364989820826973637117970446776749580347291862218156588463634913964208790396694862910198205039750823492842630698035599790262051095917711434235458123067257606310604463872227304188342125979142412910050860901160977809663605568267931465570990345907830039183744801370595162546595179354830854848022883083677723132728290969221927415679826074841988129605845211775691958259156332567047397815100099413365821746783502356740403798406692343104277221889362019213642100161466712302390301631971054169341068609508196697376418026079316025387650926419597354643354941190948862417299290351471919405533131645378618952065663547117594900557941515894301071758545332852555045511005740124269401438323217676288415355274328570702849164446264334842461408827807426818033916310421484239317391627050201292062425336948659757781916084521192437098476123576483662831575823156184885666173495569759404588259504186061380096834019371824647767967218754966553584069958500045938581840964373413365083037759072417087952967055031846509233288037336115522800040664626860027632172874188231536422408961243029403728290199280860970748648494916992965259901840295622624840704577567146719423554813930030865321126233979108830941059523958284350726661977012045091290991902253001869488535399577206710007032470256500682031194955647216964580023421452919480463884225540778678909673603232967235895309679190643123137993528699539352250665982551012623037227235575002946018953510700834521316549310589163527390836487153775920457489976117488226406056701054988125927102236217118610069392593238294161000152314765979248648630197685586178769125256632225859353145784086473316899089287528206200304797802271847937674058630721574179147920955117665695941516624239788322748416401363470048294620263921583176785822295630299725320083896853771200645969270503111570840342967425361248881264467608891498750164195375400656716978056047290658878757817733661573775148817022619501139289095816669875252884829782073081977985165083168618509014117828530559861253935917315119443885837576458244942618303879861099943133551819148948349570954663950621740989502508185172850157541322113874963190071930596920408999600712176750801533492837148227094110141464098108954722769135733082828819605548329937546348033346088088674860999100695213596411983885773996310435550666697786075742441083757415417495313492924954546507408933433136106410500147836288156816446124229439523310192556097024122577273455442559192961380774695165770798253475261000926527744107167053630450359887304450893952198176980960612367671628563115194055799395410486758672632395721903559396500955898384946106692239907811775887343836375234099389565928052965278993416668839449798720816948399929215030991335332290358970944341558820059710611692214198208020513023378545655387742554205430536414882864008280731099901625642661047433265338707700425153991317352410515125727219381831914998181686005403217954330177726673851048520670958830716420767700939898551633114553021451272904042753052891919503081163090858355940050436709329777038678965259208208902629414586646410938255893211380609110254665547352239485729684271837070991876138088923676698277786857835713861331717849469828957079934835625117569119897412742342988959074209136029224747658212893944692972293204031425545700823664092325350473893859317615351767487007781054734386264363769873892544791689518730488835492499761029028531899772281947231016347562292274447755317314727769276558319789796563582210204809578566402868441162812495332584302050832458688631776910761555829901225284257751285576275917502496567897923369553286108515297685261924544308694881240045787280874528951790392760654235017778889687709757991579836653881610482618229806696846750094850065298954490770186077161353310244399231000608579314655861056567486837069107797974340874647361600734753538626379237200686616065927515589265438001085516345728921413363637758653968812162958143164738296796083206188007581228717191640893521754170343497301004822406148357748886716464862587174369627043148604366344706879341409843528810184758796999258876985871044615525688705977208437866906701561133448372574867000969652999669074322150697152285434603713890280056520384835274855697091475545526345354162838608101480825587863312739745927093831438827895498117928483901177467964281813735879760201249721944427120553334617913755328866652674575052537315882465574996684179802116346195223749120169401027515803547714918822107740361237120749951169506460925645292455943505144053563240581348689163350243939096581504523066196490094488667030756894886198430369692700446047633948546052350099390794355385505750950964131746467517292572271187674220218698976231407013864654605531473094370940882484067204890981758674666664827715015483052274976951954710388793534425150438107796994601313181327645327181644448324795887659317511788450705538837352020201538498241339464868005972380925156244939102987475705359796543837231911460736260625335844160401767825845044933060271560881879296231867790688857963627960449111805596553485169244278430661742709948744136035655466353303246188637651734158906192020813177527954851021597796814677316466425678909808484944538194792421745480236739644263926431153440562240966698421057985541220589147911306518346221605704838096266720193578043172396033486873266787105554073077373735069183944825232882134963848141958115687330362039495044361536523208990499983872792425201381203269074302077489625845173127383398772130898940890122069825437509165719632048038996837534141537507226067713204688024339327939896240492235235307538198039008450077788475949582855639257425494009898939790533312935703508746760533746192469715864540248623927626460596801413873418212415959163947797553481561794387282716459463596900425761610788034337738086258568160681238793343044891671335097724049827800794683617247423957111676796673658213329839918948877238466045707472450257058773759502927384764285363052896943996942105443614158325969163924257194719286853466980036191916257578889998368199814973985915633222677816911235880781603534873091359588706359353006666067446751645522150833271799137019163740755851688744818091260727197432513573599960346360764329271021096599567414625334851311040427037247985747277173657210860093957970880906712893040199887868309349470257138387613627023481071533856170452298984926156062921869164626877307700379088023621955924820839653717226116227776556173421249409531745486206013134225035186720588591733473005720248322824094239714635403367729754992595957192219814166670631642042821807235904731337381624474191104449343670316673195106674607779263693914041277852245181463726480236574784020551091377259013665080820453982189555599839588348686913073068367156614735075364914740667775860422934579903849823342606572500514186796787571222503991737079036458713851517468329459774257424563542277702576352724684427717234369684906445293452772497000507898057359074370840736050282596981452142148666622597127924737076745436348535871303440947396425589999932734171513378104783277544046524423573338421508079536684511319082288553561678351871742911906865853136969597591596339119934952934505500908176305093034130272852100684426410179579364278934897386024075635256719162277325228368856606206580401105695456971500557988850706743940479322370532443032452184128517982837209753249238780921748795593150053109819504901951280450506952246538368112731824569348444005667866827778581767370615681230616781718227764453682763786923574326358684537658359112845960982845807006950311780977282795240372018460988791616398889404341610034931654815703076952869107169528811747693421053206594418102837045385947039975011583214421418911455614062671428506747409738112807988215167052001522615153864933402282579002582494676621674431040860257191433125067416206481686631894081149084023369035109644577338099682226942224203857080802020419873340012777410826891200160105886053831383292938802131029502050341202235221140086517893692139609312188224640555676983211425979517638441614317311912910770110023777377053664955413940728487880854380371720768504651342681784026301771659817679315569772063060458720373183688761610746238817111614494126725744539168413668168285474478424739239204745514243675552261965139048428411612636668587832511098956931983783420388199642747443644039194841855580080686906193001359287983731375872271932630611399859777286861624660296806333977306087345145190652631931284449504763711436787751249176753316537084448662604806239967760658912554719935796027090381391456340487921371750112051372048382490785378879989897202424574033138186288286476599405096541794348172530414441346638551737259661959519975782149969852415488767515293993356815890185909942858610182721824036533750823059092724336381584599057945853664850530403010108046490374226413969443670307548766701550827207395652771980823332991439263307827731591947877074408281294459460095149882010448893393341486972842711964987575395046624531166565171494270562063903745076157550319926251036053069746953301223662556652557924237785816740828068007581429806857853458861113063731928435026710681034478332017544968696815438709406756854081631398978370671758502533942038029782901272760174236091930528264485161431147670065879757605093450098254735471603844383521831533059808015416602461747107771965419219200940284101799132771778947031293426617952464456244050752729850933437343606183367940509351638767780357615021153126343747759191664115794197765128640530031845412328169043980668437464654079801860286482013603578840406325492976958865422710483019710363391500194789851830780853749490969750448365319428732829076551616551967195888117600695614187070377073540110034788861922880709391731159335743179217966946285915362637776480890188927358741765044760028737817703250491223563696988218417158349021592885351594358767712242369516514692636141452295956536692385324373838352295714728246942286336908440415230933379756492843509123036163238435669997294118961641190883451305505956382459723947239741924330709235622193147735726904072586420699195628659199506152241167011562796476264026917429049432204666633906729696359038270159435116863554076947090226910033466239190165285392731929002219409854986448768087150956976344324848147983963259155955165546146869166720812162692212724455996498943983918901725787609466143558116269710171615225413443809754693720467638735091834432608351707772933112424772955177267673896471072115279376382376475602731299044884051021902271971176936991153089655846357284408439278027814935438190098125039499946175306809382733279805951057376897499927552971927894856096221018341504556163935244486593005590318860188855610653166337029963659363672622014437422632820266672549806713416969035093396108760524288843589247043940031997855847796123027758940883523563136093047422220930980316985670796327119747545333609140320405602271610363862700269017105059396418859473642331302675606298328261112895366908544905552100752030669217213976085158393313929992188433909270273228852454731975084305451893674500920420528917649980801584661003130748797337613908053939811623101699013822557544764106399523152489307772124064636898269107976366907000969070823217872200828706059631765728413507300500579440034449221334380482739949254789595964068408869000332230886958511428028913400949442478886357832496160553637796302517819079222352754610450742977279955123552011867297969484518531529285497365873934289925284253761758429122213294155096357095140485430991386212968500897227871188137338381207432280974015078415431304794177209111806238834271383928029848184218414926440756411477885734978670954779199717105346120524943050503621047294333110231730017165900783206112890591201727638547546833678906712205889095283710449196565149414432626387857321305262042178329133868847074853893801831709691240275150732556773490147848804477131590096103081428611322247364876778476726320656971641634844115819263493073001772979533010275319727904770521169305191032393339985925028028965101042584658294357644713939164459824471352899914645136479746155050042350512553729982839867064650457439402608496469066379018062920706512449862812415581690225125031787907149264944647960043326058270340270536212868290848627646510955202454910329306118752297908991017511916764505748280551253009581728659876242165475198549781465622762867593435421596702258516692295745892624382826647017447096673535179097494072698662104195965136514364239822106403183874087716238322249038853439098632170471858087805339352687564834448543242815016938477139978757097643027889380775174141529704964939723690547517191253142317048331350417892370931571708319224921006452179124699587103895406887287433351481117458776686891605719072591676356274324138918979652561417634429368566601606031971393753082860815656074812108809800503659293861979120156607582265061553850656690670689022690810170532181643905685855463207752861513175842180874529139330861198687765252102013695060461553562648907300134943291977557170352087743917565168428085363293199757010833363532430252014570609917626700882008614126810186190275577067868688587176603459473440149660551138152505218743198691357695288511522478120260121173993736141185347395448404029266684622602529101969101678294236531474147159517792244041052883560034783542857326884055547702410807766412372681165523317213107817593757688387824779606205722744549812646853574171541161616939181802172375270459365295819028047403013919877160207320546555936873223819964976222998367248453339769834821314983751654265623110087531457126842237538396556473170541846763353127255463376975941854626176244461327633092970908043076765318990676109004378566409276675085687891695880168385947477661442822100382706914353283240806759224798312960498955164027882002733513350269382168114303605565563313679264729906083938098831811115462412113608316023267765029666742909364308671077663457434615977459946490709298489099597635532031047430685848569181427376868799557718054245318323660416138067227346154631423146934107729404350857347234417597332307963289987967636353095107694322868693773488780859207058887127871164037655303056027379097042827695590301811987028379900646750088237615259781605749017813452691479431383714621262874288587505894782828223054231003146118385943998331188642570142005467618187923596285187926840073119176311973027023421103966275820928717374810386368574288433519051966692182984455474185546775994314803631856349035721565352957398477421045487750950813089386909421941336886203424997684840672247301764381002747060843365433620419333775030363566052383401310332930315220340085584650620876704434475892325541859489763643690026156390583449227872466240214649937372408968472772408972303597266176492332181606854881175160396144307284684532547219033709130212183423191217829637614411262090409014388365697550868653642560118408229263617558208637299614026155299459242630588815372956798047410553293542703261435815572977104045293788478266437777537860651900410244219103136341563315423754058055661956251583179360242871839521076925012257125010830491206781803031993045004428874138307976293314568830559933651861908931551050613004456497472179732549503004177480586954698071571118067658190045160175000695152540942985456175590779266390590675865626884200981820308011915275906295365729069960072734786954001269487614735443853016015969693017161758452982287792917516732526821103871062955333849588838574010604103446002484076829532098824706448544478416106912404641600356557149963169728697191745062910662468601594770012478137736475308449804176162783011559156947485363912636732761715379580882010234435324881828685589170785471442885163466663713210933346515343337055844352851812907538391073235786784329023059603514681659085393526427200416673744175228080790678940743956092569552468173377646726377991848518269803994216382782605964931015023350443548906863619196498041604306662561415921544511294857538436891757420919772639467651983385722894167141920053388968738507792509176170470002055594126361463107772613110386959587617321589242967142353717942525960096572049414325591938078897501896793623909910655850876001427810803988260436493858911374233774074936977914942538163762505790295883783683410526954327156097064584184082165810935405947575045112789841274919631756283001374818694060596079393032805787804326889412691826191967104460895113027226529297381713316783496107365421423945166560286838454411955054885494615242223990618332730440744608454378673134825452964411859017799454185208434719904226736366983747116575864378765649561465723442526673862276050333494219119059759098018189291224692929173890326223874868982282380881825773302790893769309022521599191629148027474782898000405118064849759951005872091665940028178527777732061604228823439123230605645821411300668316334857132652189957191533266103057298816100687109934693002512496112828358541843318822348521397910445830204016634183641544656931210926552593192611645296619962713385513605354353133671928826317645957820804149396411415583428664860169328355805028607745925531492588226322115679121210280658235754489958191576984099706689077670496312146560970178101848635013117992349815246130647158520740037114077725883720859456313494485467825866316969597445583944898753403771211522396612972154331781941468176382115427094281156692813973568677197546296697913302905984222729534818763566411646356428516690686700634104262099256495420411009651117411104418395618462588056272938838405107901249496174086391002693671192558770063469278323791865619951278910776763128789328069470924521792914436275774007144597424908515746691607032253797855040008268294825026905611615489218570697065499061264891626033413267306492850673634087754301899049719177849045033989013145926773368848209998300402749178106992164640253970943965817760230879589671998702381290203796519484793137759257543057477884505460193745702872284183191569404019781220268139864769861752947749670136994344777814517698374821335244236095159851729116566712350355714756843834811990452125995153883051850717169393417264885294575872605037152003977477910900962539858710427831841800455997690662882540641837315890145633745414305399986299603714917185615498603864987627120415359258546660139082588969462531945205525287050740726943492304893582621833143873062432344851690983666981057810076697624148058129474817008156406406611947502574331794886060109134071919669833092852752139569981698346766391626358842070299040561767276460715577276059328077541578092951937120400444290692236789277814852074825382454192112195654493477169051348033401097396634767529748026394816601834622661235915855476736261876538944538777676857309463921088326243238233953281830378425218785512646269069485669849931786411355382797519556095893572160291832999287428340890354203078667544807128380206143387712807906752191671347817705136822175573904180709376263279196945654174811891985327774649175121895445049705656658907284869231055272931577525957395618129217015977802776248943324241846623191619042934577935595175715980405282440032545070255989861483140134021227720993289149681667561490845946586458437384064643756705758834852439351163468071960389312252449087349997938175543473890233108756555019164204825665601162000271050402885777764323462149301303048735627375241011792091575282096199649670098421965361455906022905305023175755705102034972822601849313455437603979302977973950407165550570805615457934214282313437159487528266850819648714735085428369430794659586122545534953023805106840512447100149182935183385249780123492637471552019059724783726990901883558269521486648828590762143034107284686649507239706493598092232985780518118425296415956683407198199022523850465037587746066767586635508275617115096557294100154719684916157455283006816774195504145051605233073206720354305622250136858392051477190236946925122073655148828283890287487209929714938622626026253142409648308777397956441672438996057184514728728703743281560224222472334225899315160585533499818053169713045131078399921110687485645814008999192972427014518062042753581717640518664599611691462865090525725965687304705627466795854978270268753863380331612771200204372479998724229229513456880525472661279241338457945288839627205383320628807736381069537471007837587106029744754553264242052950168907037131839773274981883337183937355210853493448365213111317999212257550730767411431729773773429396328197559232392013405837260570431435706519128352242649204836774146088230132640592880152418144975113898612180941394605259989821945071398190766626776548599226252614590091350197546132936144552662799337813469564369887604620288381800111901470658418426879701965031229862931290659488150988955907096528069600526110888670820389515838323122603109583443281058824176183992782321769971289494396391990041853919214118341700673529625178764936850933378963599917738214610169700571445539601981298151622513552697541668444816946296625459844042735540898233799071511504512652209532252965805170092933706762047877378155006179981363800404895699933091110749931639870830649024013787203365364752485823831378964213510212509777740928245302509407211562646763594053522030459806399521740827149411329223808594321506466743201235849784742558432148951564866269066992889137807436676721231746158792766084059526873135679962830075424218061131663910282052603017274010742692070834739417048611356731219928346710261324897186658826213374287042740624863587990652118452007246535497523195964360744501087271232713613009761130112020877186841801163776164248514614781859855490097049718977617814881538297243140262246313287793601217692092311783790534060953632607165183887472339223307966315760472544274010756784188329880177096997773200292588106432928078532782040420744597617771978302631063638920550881712495930553106123417855655079181554913671434113485451476495185465276848118571075370038697169260588353163962535691733033586765404048553316504624402260717763894833604050596680352627230423536085172644573051166958495401571287964457603118928639593210581145199184560232578931552125509160993766021047475862205378933506571759587888888241150859704382587018661395048427380862639819273610163629592951905412705772750968690066116146126955885699607033517255354817044561626170300643387314651946020137770152257937274043683062501639419852126451333823862301451745661066891278769841305485954860929709877234708422176451459540053384828650507746330115765218307848606839270960260110333011010421896042670218574197531695087676900873581282513324517145164614986603101613955795443543956578162290001526444670072527925056129367028216665110050458168860725601702139412671028007567705946559228629459360901550722883629905530668226555475323633475914315524265880860575245931287014329654237277817928558950477531521823825551718178924950186444479487936816564294336603680214606499852238023823447225366474520846725090644183875849345245634358232222222607659708242825142110372082044567910088842084184187450890336625470190476857657687369513428449233996944675896264400543946557144349691701843901740567727748870185221823067233211566617612228565920188205194634050979825550003448218996851133971624117177621369194181944360090881804472276968841506070726489474331554340864214527693557433522485082397998970863394335599988584139369067628931599115231927435734525114704572632561773277561649917053546727339182869382901952735729783342017817246649385705954044681103942706071895373045213115395072779870106082350628055064575000957092743472495787738097582881410468833360265699507731918702315300655012454675694199883622596842264587256359654954545396286080855755957456955601096288193685103055958788761879427532749942639758185926081057156245659033198131050219369332922537624501853896760009962969749680590529049984306513006414690657866595840399827626986001774790772425681683095856907907726520389927394389416573173398796829757595056456137427351968028108973320825609589622119439807256981849123418413754613644237965970543859541711614498477893555705690258706930267520822826123626977954989062966834965870737483221276975997363765058974201016304516048788468769583382980796257826442325097245278079328858863836744068922493473768319552864491929181263830960641198342513324636257401641609466260616455395666157003559726108948819789451912336205657131828863808868589173368021261485884144240120360718319071140150993121892786351974711504149761208979775855479223678207432072320312964669566474400606164053201652461964917473720191094571566043592280391782984938311802569058206701692293103393687836730191113797957137296938585292109479657971560370608268627497197092230157887070378770300603077527143259681900751530507523374442667597305970622967369535276176542707689229443780818599156935519418277359881252657396860087374922468569592468879549638937117883114122865081799865822025251962212171622888628410609180788202915928571437187470375977461540019805796360948768107807006968161983338441818820574558949243871663523489005909141205914952352692677236542208283295969339332561697527549115747041878970798333897110952225720143452757521367405217653780003391025721439282834310031188230729697627512902745635723466000383863119171746913643134355521246207935589100672346791578962104106738377815886339045299010153156372485999048135362900405263428050534316349321104802382068117653875674175777488118921903470598663754654484636606762977293690587241394256929731708298046650821952346753947447915504658178102252210304571615975304728897022300114979172140991766211685787629695903229149136952057796657924637900942249876220670584094590503328159892809236828354530307802390935828891211649221499677315418105209016497574114386970128159197966168270039011602937724877178205567660431345826207206131257754140708323189500777818241877799334830289288856668671781976702463566819813209412296044565110879182849116500602620794104113325376150220547258510003176273633969110942361965475861827678590897883398987262605121678817234313500650926388125096671442090662620486363819076737943730039830552556751969099669353577359187291529899560734301766041575826640759529750085850706398332764052594366704450620186583622268640615497796917742256590069495362897144107814941918523385446034773767371690498506740278303244058068369804130374771280774801658463173537921165123158379781545937715207680512675971523200638101210452803555929286232824813496097908848695718147562690633026625826299961439894521916268393071837743607560021052719127720600081899660093403923066824306511033595055584743067015687402758006673816912846443216585200951757479992028155486929806594572472667529634045969345899165146078801380607381385174840732289227092561256495693430414376022151367164379835366064369202994398406167830884586109269294630998196282652260114320471536568642529443146891107480727256239918787886923579396223775148315316318663826186647530781063901393957481280993462007420545127263567050592180910497936208498480527681594935791980104058539033355010929939720213537540965852335816330810494278071217361632789487797955823244215093797119825865678963182621519944954835461773481257542401309706373687678298891270064491088234431292548626771134503348063434601809273099363692770182890187453289846832671270180852513560363977173881860920372428687904911277286366088699429717072700933277814541576305241692664744561258639210536440663621418009550786034355202813325316995135627439779699974300069385062134840217871900207733391549400092614931942636967687183264713553316539350761111226869613027614256709303347066805496407851178833224012311502234119764937400036905174301854597935190333515973381913519314911690352865368012708429811750146714436598540357212735020433225632894422107408146521038036064335549851895077530272802353136709603468368801672879420532453115025981433880110289897550793609338416524724289120025024506158207131236313935362044119839533241615933894570825768124542799312840503044017066625768434391348218298490227859592324938344158638050212595854637958196018859534983053947658565285296013702048119715185803876830658861509281422602649156787626756995048517893380836759344449566902549285145571855488519714072913164856903601411191307265377268921489966541008521541160238672545499415898061736600627851723821849379262496822087464245951226980627014343609227927790088726094869464812288156991370463150366872305958182178946009477673790876015371756493279550852891584059162480733796458416754470329746051968141586742290842473582971656897774497641639313817570488672768738774349983098309191639773060919147196077077901790956836689261885044956972587932915676621970080820736592248097397316564466848228220563502865978034770757438445548497560162268802271676647421939255583011205495973289950262831140153468670846061370498735456012769665939772934721893408107990910657908936964368192339145937002488277739192745018334924383703148559683583410084053633827776073675029066745771464775027846877857013148044896982350642617852538504309065297286969009114388901467541661632947626674194332196592987196664173523412209534380285296777187111216764305039778007408389814204889874625521931489612587578026849225139574570907324302492592053916539320663936932716818208161670231376131861621631680224487160075540145924519608744550652723372635824895641193016596692989407356447203580288463050215773812408095432484439586891275243542819539975560490620579946979260478511275707778153481618675667040518669775347199764015109957787256384938499536537147435292553538531038571501096649157728013546863490128299644402398883072253568050698106422568920896770253618831656875084555045323650145676179402636042911105558396963895419837039272461754389820336900092817922360546869982832532909477106659205707558554199514651797219582444406683617678292192238180294002639251738214052111213235762611846724648326373174189342284625708709361085273166260898714490416796232855879849034233157360992087557203553061336043856028306595548351236927908451095157388282618769693112226305337662073254215659675185216873188051936246596694544049771694823704670690836274007019385399841216737380450505301144528748011996623457810336053444246046661750339466952604624186203148347097674153407361907705321932935627795373397771058631154789475602537696080922124605487397603772704581784196480555290935255147743251824095045370991889847918251677553842929744668271284527432978234643338848601030672527222749801998625593726960808447054777273098530561974116088824138110342574738375950772277837342042771766795977265392707070282712316687248554176831150042386215688598660263826862661728741727555161543430633494266456567293898067722042551517997413402454233657667504530356958218928858409655921134655518185899604659591017896644637119105728525898570556829022341199519397438445649631478068939076703829731419659570245753205704428572901516335674021351258862997226385315817830099512122083299320625395902361254296651056444876764366664207228229565487606550297702956073747975952362605862652947413836153827077234952567489194797842177751015407785148006024325153058182072030276166495334030411819033099209249616922677275982296149319206988808381337856772572686128420829553531747174956097200817170210877009400289175276678721923084804384050196221846529827997535819101665482973380346374017683396974354538469619344212638488426929692071360085835831540738508986127223870237333139552654670087501215947904074468222654822672651124347097854492810369878610034215189945647139903702547051004354830637062018544256706680208333887744202201456442687194355375212165015502809871492432404873409302044370954157049775611106647621569594335199636923145992273194820806942682107522256053648984234645804467333878786487900645545569629499939202614506703651737526058600243484563342037462083841104546948409796254181110317276724823480864342067159444874385504685246679834495458816408481966950063538058945944824867320240546123221767279019432084380420628722050465478941332412086087145673030892945362931507752861354881727194577495534708203960964934910807324335605028389925710136078165561024985602520396216301633343679731143484687815231239235755915964908287050344540630242822963421222305236168799785796612878699616135200810793336499368414905650752621833660103451741034136167943620124552653985560699338494199310038712510445941168255771252839332206022541866659721032665976361126767371165481674611610400892991910709517927117564001709302262883528209604641937793901188214398954960525056060300145988392595541105117472674570986717956923739604777032923238867395163044764921803887704945509061882596744000038458234870323546084555795668074112925361348465968042758717972190832455879019774528945763500700111048646535889296394061595893807383089758303197848177827848140946313873464200075467775024476521608743516165416815241236062560754341805081741875048741077003597027696945200799127317748522632163803374590952894844740378380777426360558348726706375787391102508574944345398142510066403639637183547125755461924439898398890468480496682145749010718594828365454696532980173187741917669127291472560953781807150270374786202398579534557305318708230779159675807690002338493616351331502316171535207861516963732743217908066184948228606239338805094496941467121948083143067185988741276324411458515855243396742877734601225032125584323833234631947217472889079381420334267671953108996688914742676089981931763310764082630627596904432011185604753976584812120892964250569999820994900492204528010542408147893462069321221836103582417122273262473888593133997898931093888943186104526217591224194243079720242290572038655723613505935550500175409015774165677344726323277199282898763074411325960184048491757247233168426832758596341858915902846879195559313236581555388507790103894798019789398927478521353990459772057916132373060260936531714443758147418767649615204175853050307518471783216125443618930299806955521159192523214156153581501628710371160845232619520317791161618883413574951811993805614772342893413775495646057530125502789671408453645959591344676294858306959803502395360302299218578187814844758727244150522809681429758051070925934906634908156159456853886490168426351166530676725495751492494138428761979025124807982136378340372640669846311122906804198734313128401557125782195916069522952641469062396588475136139287774847959915549866273324045831339532965267097524655305222809568596273871620672165680489902172724679686082790707467603743248600588055440984754007969105230796197825110428277477555046474977274784297619562793669250155492060315104486421985552738605126633208445707120798445645926776350248439448409565220511512778836790818797755588614441387916622001405550469485152697098455792679710552792511316909482765145002181157936473711657187053696434882129784252354253267910049716292872510956021136613734343552275301244610249164511547293589781457331826981194339791974262452889576434384712944591591159977886271843534989322688867357160304903147988302882934111866206848312361732499626769943053477870637496570684484583601183928169938352555888045877795254990045060074138560583200852673844197411823435676519430479629006563630269552736124547737831231871193178385889259576528650780457298293323203072262863507935373422580895212801757741904585560729546574843805046099414004494885444463953874132834203418624397421089448400503728294086932979297206745923458473510896473140810169850171827700468527058997264449304366568439362612515683148837277219160903078690892815805078926778193514271329123724583653188387638553339979568392962235992289310561098302001218995050685500828955247053753173803458037917389976401682710263159983437088602772751610498170296620717769809432392364760307174094713982640113159266859194407290528193913691220394198875958900924304364074885125331906331403898212878413154493653750196737763813879817066621147963830709597860530861251831702714274925614577002010046146504439139603600470435650261245256548702388908424122562504388582764501329220544189252254751128334060502508092461631409877042663067072708696520862506476431731220028722075641217929466608082736990338064043471572407210591515507143571223571355547341054889069557523938114390297517293670955492855053961228959806107821149926031779108791361886309770861271328661128077052474390547118029741989867523643007671000158512061220356057916265358088312756779473694791547193044569725918660892212641124831104642456498235503221995902135232898108362170410021373345433224456565863229508543393535491101766543544580987604549875505638782251422065111721035010104656486780824615838237295667253031668050745506270947469012946772831545993442485516132783280515506575779836055038895479876120641802880905423714839687158102940155586760081243816031555532731943228085129773706020246160616049435143640693154758094533253468310613844130667872705839488723462418722649455634219770189023625486990032900008606177915015892375442485472668530745494298663324266871997712232395415278704442401560139875969851539546017402296582592545589157548101726415344786744540710752718351359999058076423923457304783005946708061793470980588109108674255034848073063052661408473263797137692370819680944174441083035933976388080685379235208878721125965462912986590919882414934768043655646998550914417896791369670143975171112336382291018015175149474761682563590905331025894203387970808595741354167346344883632840303210523784153833753253658084993988871820608655234807715947956240602754773823117124053281581706625759240064082402136697865472470367267599547555222146924408100808782791227677131004857175904306693149078642672724638584880013904349112069517393586052729499122817400624051779115300416951948357402787481478708442984023965677318645624153901513358807711781039062987290466835877727014211651762457519736989458941960172528314039223116740051318565461365014011805025473476928087763097524298663905229084333786803766220551030459837732723899670870867006637295461022860784767180328183074971629821678440084393289682123495807756814713158025340529150805073239603523675140519265782787766990523476804369251013038674525180079819787158883884786932329940571221543937963863404452075357679404199036322926873590903089807035205216122554305625810272691724596105549001421088110696841312041438891683841523320723264813971014258447133153926765495312672598268568424860936695845903167363777393680809966410127096284917172052538864172265504212784742754898493011753999180107953290681465182073799742574326010512893765353354617672126927964047280354165118756856089579491814805393993947524721822693289645867882720851957428253038993066456597605199109336982466539982199447369185710120547199735657320349739612833482210639502031766470669226674966965519020978913248415352031171883008136825040780724062655985147836640402461829060216340822272097731562135075404587499726226083102268066936680052107446515908038171518988744501010872905039157587323522292000639991238636560976077561903001229129761885545323395382740332342012429006578402967380471872520327888252571693039214409195622922324559165483816186463691890821224193444946555881050269234015382919188695149331408470800222205659053335322093260599163051241659631254724641898627875765015193503121822513879093082911651055544529048031741281466030995391904561519073162869521453466943957047198864149861351437184134746871859389860708216659929993392443648251834512828038862583679829851360530133057504242712919142399614268299258965982298860842630213669155705595777868416572276397838112546344530888256451987197460856388255789663645260750365004211673703138869984869434533960746568271862685844338785536177140271821278974966671427264689128102658914078480385178036093020694956579577858182586661572691839244985022718735099498134870684388838636336604275168436725215447241274359975045472027032629429904768963403512421302441509734981978606306929880738218405472661354880132642787907212936320452714611604376272016089384972950603873008082704210287075619722674412037622667623038540196675865404760936205215264584779537536880426090641203726554113532577530672447478162974787964040341633557850622736278656105483419168978923537627075280594493295705310094100373491140501113496591281119282096475822972367296867168823670381680932758821032451550863630516263233352537034570147875053037763314299957134097853011112254698246020896071099346423234059707123524650310430975709892210899781796964918757497003476178471697587225658711637865788506965343763436312595205121245281993669752302964033197650359076755523673411726069819441930269692770597644269947621480712099248612839307111447278019537862632880197587400318010351102715112523940500078590217421227364440925630581338242867364844618464651041484425853733542788050592665125716709752186436018515416475034206057517432616377469148575600888957202013744656010641673636912898189101507194550944839326345139109732972313107036106463100132056482123459549983549157227063782618231842075439387125877650062940157305108793241579890531053242615354896981773600500536085946496886814568789059479862635473226788133121620281317022951239308105163622047958865049702465499489871326970218729151669956863075740316080029028314455993654470630589589234625668156947930714395281280535350574156202840903510724907066058721151032383583194620342856622087544065511600105150151803774184449915723061959992104494611777571209791944687873707445744424038154727245400367718492826075186006539522168854155673500731326562743232280355511726918139601777705377394378632844142857335299320548528654247511920201101902221614100778914600789276035379953725825476706388124820604177275768995136510203759001418833201931989149885515788303073663443460525825312598129250731218874153511969870355162252589447100961224102628968573237182123636939408365404131394634096580650402999507512072705548672651629409353155859699725144534682255706491596644886297876732480250012924453121437606638501022105942373309295302718333708750624231064524267264421340867293716223219593455491973511714338092648664240674248539754967054851413448827958538828106906880768400306182021831790751070810543496121819602613030381572790795502542343285141461753924221236290717611185850852474995968532386612787837031802146790732962331735560132910799709827972322190997375390214164082960970678372750812236074335616577181611782914570829078452101711947223156864146661790303782678586566689853305620420167029770150216476901229611273043231421205848858756812052487649330841875890596528888172762768913557093252852426314465007747153156042080958939926338987794273657535314341080084415499646717868527580848250489267216436738543463511969825661052623997704175488876123950435173088882964814679704341428466214188562921880652233340093612870233692450350666070938606402268729488278994020153902386739561834819650480376997487076399446430415405037414088958684792345447274129698842676522952885091720573921708193819723689923733749967839900377061173723554583912477448799607074782069678989888525119938656238084242946814023242472701724552961228558460989546782039247055179386784983062179714623040272215951333634639118283248922464799257404835053429962067533420979570313127863432675452579133766785914554754162899668595247459510603093697321359584583752051833202175247768699602354172524460117248186300681985066191770932382918202278049861287600494572968946860231637810150008115217472728623723487589239235924495477342882616880386537834009693870924743869525575857016348872520560010778693926197338877400383272431861361196332391387612516428642072691703064985834169139181300177287710958547120428076029164385820408966974047325159578568874893710239855066878999463173278609362940205683710804679544614246722781843302056077386825609646627418846363711795274492020746257593963244472010192568980698469855893288632682512053867597751990596888236592795155082223145092880827565654549278647456424497797797637341520570595103023128790755989941965772814385273266655633316328349959664922045258673463266681023321798205020154793458470743775111601122259519148283177865125175805707298375834043409314624229354669161689509837562712659572752479116463859631873381253126723143030832883396098034937158273900554207235735248658791323176633680873804659190033073465044906005049443157274533576057168365867606754787470313566292361221435068983881452664193412943979164995962288545143150130417850142773029727472543090313114620101124304396071148180441310149963015734927123541568559423394813090282571839344773081302500918066180876822848584101535402932956637031046978828596793078729099064624354169449967059412599025809490028799738541929337885215062216562408760314003034825297455141859251801444013719849828184540307895015266051924918644583799975068520058146248045619015545770043853143982235515039258083108660496534106982368181294181319355166861064405446204031108069050312460748936828831984060056205521961714207976895204057412098123721519735450556700181369611076713817883268221151650261552083788859067301356787254756406548722169544205932857432582257514596282543608232471342079715661556456016599355580713344752502833862833070803201187071420541955852447961351758755081925929429112565753555131869362640950787916723492325902122269806694741357197430440637254481276381414866521639262410428607016103422789367204873343877821567210574311320175648865424398950331784525285289723673045968408912941709724268377309753088852342260018079929592713964653086950196518511541922960310597771719050825035512139735161718769610539306908197953745265715847868219477584539681834777275671782007014647178145488696989088615681096862997361205078529804401330721066086086610174708884997695516994816322102623578473744808583922243235307126090838832079492706732862466086493259297664008029037017561948575401854593811986194005926204855068396347539425554719232655540159134261789117841718106022090119431595927121038355941385434300812644855714981133342599385555304712409868963309151205454688661143250471728255627156110368157782865361328244708757794139078623346904890339486188911988089387234275206336152938559709123290507745207294277536365843295860010388901135614657738994465158360504874533181488625907873599693151573420878687984731516411380974209939211913433689370095489376131832478146835407855478307372543142494560716284289771509035933606550290590757460901818710895795816399818521423070031098012398163169508677959653920466061034067590325189380555982950481065437881313056765496239888825117613378773732310590279776252366302346259955398745355170282749243144366345757031708532305238484766339320728623461086814565388643914974299140824919179417033864526840267431715229831310590672952012506939309938969463624651593178519353563323691217396796734519509646267394639328664022305555793536415365004845768075234960203581690839894082751427245317978089699747633728075715350881451984847669175529408612003550284337446808141241024649080663027713377718578910357281829716345010777800414164917279922312410914710894180923432328039969591059370526652730064206056667329834311247827321378882638091928197252575723890796587911215005520099867915492477442305562927388180397730681359961243341563945051912650684781069777269938637898457340290324638651804848270885052879019216302699621586628579261574471049867592045538938359156384910233869179493923572401037745236840973387754720768873265903813758623527948025019983046120402957780780680617397773197689881698429175714693950137045525369339527293678491893630099632709563083824355502685430866631325980692581312086354371613356814945179206910231265985683026955875597384089693431185694293341473919000558712468473835764046652587044437480150203005772431445472037673996647148262576667976773771304395984586427973441112801768940585415739691133358871357980482225249531606132296650832719896894104889158456290421623106127516353991694032720241277176710805401218602490751630459007180685442849354068125562688919641955687701403292424753454290490499123332010788929179161472356218788432077781338225523044933411381573294821849918051293558486334279684200199973207071427561395455285927600954949847450393186561200433035310864287522656839884690315005067028668967633791575015700417107577463673528523845036701761708322959732500154480275942833214838957903778924025414401991509223747389267576048096542993668550366485942487723979232963460799806641242587975138332528231617653455603906518302278093385128014706086244951301615130828741749641212290308721111617280829537362237638813360813443830237236301867551125879789523717100522158975804383070980394560867761019126329886880606822269701214547238543074191527009874061048861953361177896176411410433603257105872895865445007523531550320060768878610728844244379726609619692034849336220113974097970894053146489567193826953951929360605110674874825630251645308692475315193077998681020666082131329109346058678883640110397635751884351081475763235627941813789990370659901683027058751827906377680699027984769459910455476980779707569578863612079614967138648689552443226489373240330789297720420546144358968926854987726852148246145425719164679440389570087965037213091268976220810393818987505116454841595021387901625209166824018786610875302376207802627904842405815894642233619369995689232226279295666420927499054719553253177017250941653379921417796028715935438524110420914506905224850971049525755055193407758077474106160698286587499430880184600801797644183196558573154974819846043289216990666901618002244233091683858990864350880901766770569927965835450396563173799060982541604995244752222559990482508576050991835175762111952788249477876085615438576013670015300675569069301371826965346403224178125739688446985339242982442493571922526929279311654343703605203556666857009170130829669517590970581618708340586644406937970369050744250535055516948855523858183940461200345901669853232199521310595684683432115612030264907055968326997845223257355796121333400471158184853249915112918672682552549128141150619836562731866889054177772722514155471888327172664215129734956268681403525815877240019376098021035786051321567156332646801802788573038535361915880988960516375747230359714168008324819948656517059804543098812403979088428456889926474315926424908613714029508783117087378338977399370677667131380683506136292991560301936665407805860171778102725263452520994248642072802158336760648368537691124167697638944630405100279283961127103390911918697415958237508844213871744120906531199998166448944733361711503699891617595492953941657427209363702879148501476766951329748719560881761317914797977326411489492215547484683883267125710888676748628486510840213083950027504420048368877800220481353361954094811326947819214772418109442768404806859009585208116547314487828512715244956812032191110334904815451303592260306506122505724831954133212850319712565639585352115247159915991781723080753273562775565709459764273567232609526598630638201789316375329769952587758779268064485546386858329138728028967485007536019402693023394359631648846457174052745193034567311330763137150639133059451375404380102235995695923135323088018447132924651474990659803599609846292382529381634885659029264902728109462230809306235822963361619711108042406668047343950816399315597490142863911562487572577517071351685488836957590386552205218739603903403819148996913232472809513456184676829654127437399209686344620263333346057233466192112683436960970769441595344322397011062500663588273763171608405011919950347044960868403781432489725216557135359548290387019519948854342635655101266970717917630202245558422186099456163038083554511357827053252585924017073410121469242931064993873934029395335872290729260328583284334790054663825769466707054632460314660264068033170951046141001223197568428998383613206664005089438753161275188159572011904337741006835463247658010189093766923249283199148288183744578101513884995338934504729822955068861646678448345784385578827747371774465766648426989813067595334080831207520864303388335883886131201266526847809392225239683672024400102550290981784528883088821670221356330099791478646622991717257117749337664213052088098749735256257805732361190160041848624106219423559795226985688930374639310797721407357414383806754988673524760612220754385691142700841467775586547299347496393879658841851002878840097714477043997257292151472618611968307647374485111176163942420232340257105758114958787962124456028126965412941525608064874813735390154274875458214935036579893885452916487850217880057946375952083926072310975741814085422497995346057719652028888055167354768751495265252938527483702534304880312648365973742894525452385153319145105769570664222119308896619256489420412921870771739318067330954483141998095690910843412697668823594524966996110425794906299045629380101809413361110113575905693709433224744094975543576662980366628332580046252702429458843034425549444879113140581518282584195600336910356985175543483810075031428753987337481248784854525959449178074774183923751860644133569144658393246289360572500348506641229161248903967262332799615907611810337614432584741116478693699971571381608939225007687386996958995408691885829416244022583004174105134835266004934284220841755501741197227286469482477590507403014410325715938518433328749443445675777984142517263633740771451017712489652855619447289488305828549564209497085497215047564456797367588288885225911208288264665790004524899238111534238957015308250664259762413592667146195879790108746432773795757100630843334923955041729235357962898774939799293150880533816390643967604277316838668837180458942532388710329520060182191109981733691895079730713131990244899444710705581621960719485679618882450231101158693581031085601236568589059819326765169029992123806883445192112806002731515142916249364680982785632167199179780314057532125416029547932280309129977351272572374907626586302403965997626698096492401249238924508313153242272957439641658688524863222428382288528171008171221782822537263970131840932669081754100158367503592670546303627790702232372238255256293576613165321995877956332359504534153679808054552878365439304730165491021634412294175686330974738265626987216878543765007956284274724483421597967753473019741637037584500335352379941446234343986961446396933463775355515788867193772564600040354080439819972050641436682013858314436336437988669983639252211198761734279357810020252251956617730294531891820328673274297576722739534220556623561902023503359871577031902041970216087161895858113639955803119169396237752720150660559303126695223497637821922027192699055141160670499947122215813295344237381267820660212934058871868052543964563400077307771265862068082032433548303306138857477446824013314056838599432349189994166013519917287555318262850331032824626071264288678318415968605924956507845704921698056890068341209824038450967681502843088315795052155060569561602940947754894942011330474864496758529983021905236456745690260679124566330611884548146988612298200822444623233824477274850350886469912238732228276493701794825521725339272369792700137508862318310104649158500513337921959920476421589515660369083349760979891089385410179164171010728497158621707393888287769950426965508192774126857058125606597084584175989823684758061733974216287348272539895809778161544082843108853741947230192847446966655645661371517091682291941005108558376845354371416319757977719084555369198242115847902678346104346711000700262886232843089261878423294602566612104731508501614198776459738613612921356232830361050811489395807399179895603636706774739949631463634119105364462253969739967260561145874957252353494210717685705418007923718705454932137065637065236898080683404537202906711289004376492426369944717318649090588018855002365011747305487542475552147571295857968496677104686334086947299437890326858114290148507410541437725707436725738119398350936962666451246453456930166155923791598448041833181127859965036500667667369796872504154351762178285310350296829596181127598291114413132877371548157293433325887424965413783928180258486177867003232235715972283315397787937650204755376462102456003168230516872505473702026898066102148748737120554726135943210825462750304513507844055616161298764668231718833716358623919188384414932871062146845274250336968183396855202022960467966583217187866234184695112847126301962883320028477917438383123102930239964960018413312063462898647399965468992223876795522351836170753478052987124743983515623262209408512368365270242024166289858036786051954939717938540854221372677807251710438917390309768491670025052412681696162758842441526939515749489785198028146392598942326139531379384417173009466542851991075510823645261233775978495089363572048733784625209331794823450628232472782461671442703959671824013515782477369248869977373344684885284980925691394760844794941155059989420701111153208188690100855303080556676267147002615698425523753149937094645684805025846057844430823143035860667236041248279391542637716389184207893134397660442350528083397744183164521469774432268802222439981569962832504134626794054393210363282522185201586270445983322000491239219974228102960772832774529074589191052121339288753913474567207036516806622215250202479748769262406465895695753976509738839781813589473129317245524964768695246461992379084622342066936463148913359663151238655195711638105225966552860592103437606436614726013252799021344242797576663645260642499396492358020619361042079910263597938146143002204061804603624354284756511332655198388979671375510304831658589849866175984326002127959326685127064272963866520792337296283069479649665669184569302901478850451477926021326382068030231646020204164736300688517899227468682019349018874517647014046264257392745810757929230967678610137145668205350611256295372820226642054303437475551465865594406496662843236573919284765575444343527608109028542901730989936196052498554988970294299404729585649991288527863129707273077343895630073021522142350050239097538565445087543435599461480775185512946612627555021867800339832558843484061757210615164787905239279719476508485798503650216555190511948095062065308652157852448818709612019690075354550583630704274574119513718277305233282737823773622920762078107258158701177638338853659168694813423389660939873268964227300209116156040223591270566939714083077258246182973269974069101320675431686045846372020446249382301302529322453863575214617005184383273130930431569619985289472435870161653557972486198446905463620356310595935200188372647278635306874420500803157049649540134047472952150870231564898141211428713927873875433523151349148761896275589552878736885764364732658863474909471312729546993703193750254180784771220197161686351698821030719001914317009147755800180547757137195068341735280993377415984469651964195232864045757057179441453104103655868431866270109900316720392022599360961025993820195415727096090192592555054676248416223249695422450082933926911113667207445307898362532558220112282701558411595621823979571120206167237395092352872212074982408461629774619893107108960511399803170392743605810882132132089799983156547912352302331093142643884785656407080333414133733727678115902811208444395189148266685437539448932254490416407606999162272351869979184721340884253698900959502078299286433369746364103083916889017056465148657311294097812384753572537165341537010774991478487557005770586282261018249112804113428874983596212496288872629736283740339748646064525744723833374874333102224493385118249289822288404574875602691351515985459929779172039878659208792440256831290094598718707778818976215705401639092325471602846703220149509380614778259832188723261228202961878770290353484218758496380509012130932537825473401307259065675139295601097666958666921820844705800105871165173231556980261953162976529536894161080145682423982769776920416082589932289046704354315239114550289202127409495526587349852197912554570568779456659626205200753054390887865757913054203948047479331692708149732676240644375446329200378765486048619958344186405992317318548347146078348070868567386838913434795927453822821991902744275209272315950169315703616791655838609297390618957227938741736821044017791286110547154235966133569034634213575855196495910709306906391468772845089758865431693822055569406631760741154012390242047764044564662452566974569979263908751081616753575207819291398611120901405150978619238583356300067016509627359911306381794298316658091693157832752411487970364231070406611072611492710832296644275220747825159331464677756525801970554323134424255464094558341917204339703973795896906131105483329353582255417096069112361199321290575490406446733915679303750318247447078151911587069768422545939923372830496389522618363424931842658439365760570023903074302893733673013199199562521811610240689752880356504521044968186671940605209529803237120181792873511691971361486240017169472954076312237450227413069786289862986344195014319449283378010907893204931664728861673603049980262965013234108564308448154894227728275934115451609298083237791084101560279261754925166269496357325445705226557634561972543751749389335767713948630779779875570360571499907087847871205330783663139341383266609220579874679282085447112722882473550337095572086477247138095568708301379249151122501535394439641653718939122409911819917402888385268555581902014386550688622377790113825973292902872465235917932881788260532165369313451776396630182797706784883730708192358922761454300724199436551787330088590000685252647516859422283240109980334934540115623567256612253673791268889557914869981953296574023118533330349901659484296984164140311370596806008307108707013706585692328212318337760750432771266323046782687170215193469494741255326518896164731310499062192245539929087320638546969850355131080816367340427651386050641465326919022625898063370610175267385309230316221439376747962384587296765449403239062542266882392902692757849560732292633855464016032688515195507511384338965702635240264000393109740015487547152044381048970080525693011668762354678598122881712412564873795265306117292355086099380018088466885300797830268591331132610081906405366429265314012393855201546145732227695461965373765649846464981245376611926078800344194501546447165028702367151646326431048288188281548316675864067234378655453868678692410367587158003765930780726663224326147827156079943731224249555883196377411498528801764989189476239535706570212178173841684510301148306371923502941627781895581650364231819295842224629461762306616064575091497398952935210721274086344029006753595184815908553368216147297196737589768514604917255226088970518635914440988545917018736206759467250425271617158141499320851491335900965862771071466916862012653338291875080145739547683490756595455721019235543835280768765480868904272867908429136313285639657421074388428464950212022705388514957487989810732815687706406991774719528038428526683098302508531031815761412204375140747806130382637888325637663749649311626919588279276657574299837160144026510097886502291254884444821968257399944497205127227962388730934290676079979170308634523485395103132861906328049015121477714043826219680315229483223092197248439021359961691847609575350065371542650842350447749437537091669744981654966158122127030057695910681387568490562844778358600230918909490399927995337381664114393388969050415680459384084085756718292118904966747411430577312265909903417830180661917351673142548482794462675760477510379555592178759952637698177453123438740525607045843859679738710201401345502758794840970140987968604228684205939928347696494237525964680428437407073433558446668482965501921659598280428041483582257301100570272328713180243689599711635525312540892200341023057347346229064653323113375309758293384827740107850940426484848111227315773454941234446654164772766010588357247171157895511300899861971762141436975991760310945290734368405041277546508920669555657114793873696991257985178999062365727931058357088216324335453772954119792029835924163453291869503341827968343149527948083564625093852258264850206172739480906316158221407322616091242184211455263422118353796802074412157278981815090035078979552979844341618811337866120182499794451269952944695285081697747087825452090675555247293073580849470455726319616957411587391824234182814726992357941954819246956483355837999768708946627637228040764831861899843712662998286478888187546733316836286261078892866629510087692460151797334660204887444503565693457218484065713143049815636431677178629000985026441673727891538479553094236083692467643969444679227479361258738172051672589725596991715619739588710584380114301779675826294753296211678148943544235637267158082447523864181953195218080526391510738925196063440413395051270349374742231179646429731029936125484746980701429664832004092721041719378309974367278755814289585258147144261717859909441886328151215638973537027031657159193223831806634608691483544408655594040972833663322724386054590195538934588375559971628042052809695903232386235962446847836852260198579755096694335995690874266015289770366639734439299911639149950368866197323848566059740894659834971148400902621097816507230769809925698018082429572057388370281135295384938213550101595637893760830923358701217759789925760571223079707132262017674125598659037440199299353099245360422199726548257577037248507216212411325447314609770369746744639845235335051297437468873304410009738302635869908519052999446108185359146221061095144446516081929855991530258894482569019595261337648612155957254767916176467620570819762033049849607138969554549550986593321745432794350719543634484058614636731257748495173035277260035821604801392889290583700678425335334500936800061917013181269298917774714479395538320935419060158540901322365089110033739020890696898228104205541081656226773162347042920647446254686037251069459047460333758627227467348513118528513572133467657531593498694282885291812393708767044871487814351448790118459472730792481109072244307240644936051505101208964010552043704662283607414437220982743164270629784661152402790384156709518284543929652011891923080858907320610582544080305384884499580748985367746230895545979342312021079602447578398023115449369542876715973736277955521584867967878623594567327627554236588070717153820952594109268550729756688364911392006332064819841453561704274986714048425017198404567156709161265326108040474411682992289040027902614697634229991969386733556066711449880428660607820642664219142161715998604169704410902446185776332737288330157352843356080158874411478939462205798909415930812379809794022324037123820226071597233918400570400816129929744493737976720502350078455558816152864807025019287665830426048767022578631443172744573788743685897666088146720142785616856493760973951464047232019342267407263169669052517902352006637699585272412898795884499402917365701259760334225243388682405195004444296675799928143333110357604441759928191477223335185453868040125527567441604387935487130104094011497755730237354442485144907093457381198493230750592349823179354918141739440790802621962247232686243992782816353711809235143377516915457412542729941824405971688936159882745933347431364767275330914950386993595182936943325713083968356926949968767477938605034655193467279518577172246818785503453354077944184442125511404043690688350837962613800785807922445023488795984013484847699124988399041926859247241371589976158865340767333121768416592954955426115676628241346889262320121164435992245340377658859329630411484577734238697732090081485026411252142756393207920117022463781701837958569376489421200806549725324766230197626040123982206780430418369218365640015842528323331159130869244082570111969308926751366699601948158338548968801752333294211807001748117502893250128812942086096900690420927023553097137765089568027856450490002668754823938714372855202237363948804272192257348595420791237711770881602851664749017426340721993874556000892705008258158608723644488995030927645369698974734727527988347319728097007971143724068354272422831672344475403617816448266481007081204627322800967501528773990269193445308493647510654553203926384773415185339449193294297856650402056742459012191681320482919975525393264073598496466022691096688983346214215815480467529965253351349964461607057625417889530046232516607948136390629454829294246369319054348095518059282156480439504158391510801275241537207855009657104104400629433631584710698537139999356625152824229764271250658986522302157187628160926710679822342555454681095836239224686942554744270115959989437889407266105424128221957167420476413017165709058475088280196151923393752629465719389953809720043576307571238996483829048551725940343439503667813857487442223948668008592849200218821325042602846902846755407736183965621475276280191951587719798023370633305038376879615847800471925069722062833261796597973967320983243385072555836561083393933346164464172666465105705373690696580803581864678754695882311986520142438033062521770207627014484096049055965687734368064553468591900096755078345928124472355422683309821340150247869665512089435226757621908845138297238966456525439101640169309347318650258622607407617066452172557209465778052844866861485260870549414065876224535640342605689915071187118947210737279098542076465924613130973028902617036619640294849304459352562189278197895745212913447236602568880438399373358457725979809164022347848533104942039614393685597954958604574384698680999975510084733028144079567294136344748708975625419387847465904057960219915545498104734857327770131664478892918221932600680310279179175894682470833060790632076100532115212843823496524901584458529310948638351144167904270163707744617454371811576759748207049390245835508417468678506763468957817084009894083089926192701998099169953987265073992478252319848441680732857108430354177397549243536515795526752647006557567922091763340038059157243506566069433976381821813608531184428697855545070833758577445701687013573144411320066424377621620216466921813044969438913838898558477701170023083461331052429353671328074848568567565707911094720195205174222911132076620017198864676065384864517303807150085919137088395982841699880452180318163830139402704536614848705701938082728687815974900813147355405437020519333152132669457692862796330784845223209552447863759254997532888188865291425422419777040422095006686756703132268474057653928101102268187666492345562179314396597615651030234652196233432168504469799398788083615059263211513032395879402737128730961561636659404136426100247368581502923535513068445021176851276786311966964166038854876143178232146890358960833581434084797736496101651573558058288293779209775367280068135819682082007058633448679826023289775727560826081724201162919701997852732993200893345785235731791417187730639898603940051353338868939433434672170020674363093550776039706840221213777823269158269566965220998666346842326639954949915640695895140271000889584643441926140492719084213300150900349192694606610555781330074200518067232953184144930375230783082024510293295299079848371679729653337326739282270039398836876732461642027942984646465933208852270102447735205368499089560694855457228901134549537110988642200355471469443695652382336868181734700428302087564701783077085522085230607072944301527527769248943759193439883879717617472641725840073274064279369595355548656346280928550430565062508576489120993969818233807801727473774409516779758474610378836838415843762607476768904798431417232524845556549362278233770129725376707702838469385482982581143879811146025405417258620907573207365833786232849289768139834641717443568727067169709907888449077277769247793784121321976663401688299026028100717118768623167133008733061879551236327025554781223124785650310986975206243906900554579185934014476772248118394690315129822752860128169910616461260484861716789679470159950874704266738790338570514001983757574440314204223825429161647856174124044615149704807558416772510601823546590130272531230490369932282156581785224412157133118076333617197267722428837065793283578388203089789311587038277561680548618877203866890219591050180194075431161935456842813803877931860342148641320365768191405735616936545554732592219286117705348901785145048383830745208204278340108389887316686669077778580123417133833902383772024667958970002864443085888289546758409152480655557427127902485279928412149929302740496634267566914420000700545197936102491913652390986900255845893167895111967867853246809877545775962544994814300615268117632606857597688284687557584772306980341901001407060868628087198275229294537389171582969930330359563910150934041148496141563100946540517970582908862941898556779925392564297531966791900045617315291831334541833508319323169389413614498333802320669083305593403636135792510976926973774433473380318573682386481234190785950663639525584793821760557653674776843760287149635310794128437466988668051234065586297695915064431232586675360867858066824928265539786180282585031375302983517638585006802897441169551523841306625123470404809017097751803601867370619178342109019474278808696975482517337733146414334632572181790492516298950574706331911269890092144330484659779809152511178436772007226657335099621185083268807777836490554327172909485612571904395231129291019719597809832196215367649767936168186744664987482772914136710584689525846985403213717994032709605950689439552499215142184146689218795198774234800852758081534771806560802950646025296742997109972036542491078640171237406187862069764505228528368082325301863731954978239273937631120810140969786969744791563918273420276453528392874755508453563752419786555310153306844790352390506605997255357972174184574735440336708076322639555996175853118866142680923688222523549740534977797891660290187438728425076148433672561081587478847565539700297129315619904895825066471072125298226622017815417542870471511704499133094628937109954903692119827853434335695376056185073095097757142351145106893865152035948817515162113121604032663433662533204300569698062343409740252357637768619867299955451065178156754593262621254995717572836314487209938550707405041962711351108174940345351292337929550065381968565006648317300294579763461867065211621696648006859164946026403688982244226783386771967662333444003783730283367180024149438903095570879879369254284114066921486272726636495512527090971150957058312495483957004878915644289202022745495313248372001419450513127488778088037581278087965623676300949606015856669040238321628656891371901547934389096143027740263438320744126175101346177173802373994742574171781053735996059742937316794139526463266376131695104233665135262846106697943470411730472992944784242814682984987111486851374285614991857139695851822362679358508828907188828128374846359412153213853784424377101040511325103412007716392291355487002697798991617819539375579989934764621105560085056532182594496640468528419540010262023845204518912214371165834463380059007327857752878217661876025802921285136555836643369484333185605774870936135972839981238265866428844735176475715981115770005323647210290886428487358549397764192700528035323354237059612880098363866695016027680659176507800959134113011654076354598343260702789356955068905296439957849384669904542838955809136831863124060200049967636861681262090591270926081630869192562757139945893158733708784238126449395950651061543557016816679356899942770891684265275399931591870100340696996182793243913356335687576437805253958522451026597924295470330655967445112283197254341830277706580093906156089862833421482220634523238170881967761002470383761516342742867127958127553462059575368775581226093940322222750766294824746477220317668387175517996379655507428846080807991415048033495426750534010647351885366549100081463673158722092509981907786363507313462060426520610746291985238857995164604781565609359561067968138817444424471401558548154200521616981054381164871843823003569328569034938811141125606673235863811821827729671529452834497726928309851863565795033459574919401199841646125565394515928188725397285444602525714949937613018155824322822661661249760171718586807542796058083872332264953397516628492340438223450664240066460094510735329535727794489874871871635975565645226745875819139016706312112050369117557021595810439419054248715215101456028613517765080523011446098424775211311859792880202142455255008976401538296677346781151753582879857821961601625207583584275149548800877768931491332725188547089127481423598464399756675995896916574711866180494794628385264303887204549074722131475066512052073267187025615345700929095543256625208630062185318908748112748678926725538824234866232269214277898169748685148815744842053628156785812402888871268248732126903615695374091493732629659767516025131792587027389877216936375974479400798338065920399943490377756822163462467968869441105413093037354616866634019027381475024457530886259703485328230607503237006597948965922342293845638458686884670256003423213323137149157256757858975024795768776026752870498260518766693933102421622616529060371229502253089273057650320109083453289055662261115821347952048752799008838289001697592774635845964982359697093186328436837504955504245906186921046181314774085131244728762567048400379434047179594014559618143691061357203191820997199004231235521514986734845103169586583913284496038049979938193374009095030391678566800323798959862503286366978791482563234023133974376889552307631412339068457894335139402160514586019272618152346648512907408752241567366422548114098119551852058934183819682217762647935750594908758496277629589320913479116207688643341524569777997349331643869067514546228622195303258922969019923914501395289943323098680242075957365974788244707395374839123762773978224429160063573124591610763695857742218191302628753682482456208428056258209691201854856578240442127967430187013332387591376746428860402049539133938806603010391902887143950461517680125502638941744634337791902299828272340580252566400543566972249773949855209385139352096261759319858825168618929148941550904530662060297163815559276515039185174303702773121489611634885059479386418447144103130852409639788298677021878069210984980217759269453965911784752113902521900046455584814350065539946564338700245209656291515713392555080627830415796914041278343639540521619951737532841759201613745776916008949227607612824739183673782836946337116150517399504802979679347893947410552759123787637111679327269986554250678456274888499733825904219972692465835456524777387342496137401967349341660738137523397772296807024970304581339448933152377831915324051007485864332670257878937445412665606990486788026304202001842899765645882457228219926108690966285601002978222465494397313021518849282905425619982397922237767762414393811944086522128827848257215994178799667672662500968439566243684407223222204014271039198046155331304019850500476166348581685579255595943052635059277442860439836565087327575284116051648446025805584849643180033885787247325744637240726084215555008620881136391383263446529799238250801709547712576399392217669597871737806511698466888077047741543148731635745615180763134879497050373789725431967572511899805311982662309899190749284343999841450797004751502928952708508866371980745181810239035287537385214945588590073741347195557573677191992485088326925474966815683760511315607581593865272978795247184231302185308401779695284361364896022613294249125564601505246173457413387750012238055025748272109153652951441490864412748673838638057705516502489403846316026021085128864401943129519395864601024584283766370284434428530438887774582592669647069440055282660552490509917307346474764011849111468452304585105678065874549797324905488996125139285184226569787899678765300872569691075125291153875929116161706970296992305651300162975392164976763102616963923480280553347511869215808173171172917563943444932245621592920677400291217947798266541748215318406044956427957449330030622130717805840782103017864041772491497837306939269027571412541651289288561646946133653419348465875738583964685684275817572535274897307171364057830787216710699519253510752404403868406592411685560882959650211087990926690490132778300724412254555701494914885078852957589203102272218553789494789686170267541741503287180091311898210014450102197089712673062216966285656774689819819430510517035219712451483832494179959118752604898924510792474505568199962569134815423919184647510673676594281129572624689534388320337588165771122889542314487628111322653469470481531531349638895131267446747815657643060574934210912345861582636670757054265291870768613962786842348862464046042756283361770527475934532959114596370653372580820266047477175809316793281261756873201239711966325142972318833740306375250292900644674611212351097155603612724783531671147791262776569684906367552825739258512422833798186413186218436822975793861892538339229224949492106782439986915279822505237675054841468356085887337777758085237703892592128608621179815107705489208958517333305488463677182753161587401354688601033149267112222586783137552010397874275600770853104410122661778837294944081429698688262401284369733569693810593556470639160543920551795176198571801670900307012507687993077712828797858387789333238525716117533302202161117121175257653169111362537503443105472765213158331534609158385966891014796767100797616578553143148287193185561541207814772067720941045426240390121816873169276243919855093927249981273130599331722294619564597831025778739003093586386432088458433337463102999424813768661254361277422025655163380346086465136247283633847951499425116100452756734167423168581200667511677576723106483332279207082303557221103466869335395211790868673557896722517319428901941294326907685143313163824970727665765026382967008126136239545902394430183392825580449603296421156588214659139524454873639271591082129124335259069485288236340571295713951420757627739163536847424768643976236786306749121764189576409706148766454584374066032233010076138622675860579830985315203853757905140525307403386165867001184567320358527205787588076228660258726993498106052883834799509045279068558410724145733957242977270423434893589188339490938364021157192676559570330922933118621672123827347464025930539107128732079894911700794017583035651578202319263805602467656908813260285721517977418078313122936005105926662200244245337172936164177302396374985449147297796446750135259863220540268936706874474725982082652661731206033663989012529998561323303994302609340422149467464918872217771692554250017246664618596058055102304602781934999166994930597789208246727379893330948196986865675697033146445470638708048156511895714990956162582744644388375827655834902894969982329029859738942932354354548232016536644325421870629027740141602278503671617004246753554747977696477024470181247341681283592502657159925187988659651595500013327945151321503380308224995789670193191031680291246244672989093787086428913636929227877481831537668540146376334584460713788401701324004091375551955042368745308770124479247884830799744211458744215365896388049787504179929922064575484497641943622505550696712676084014216328736504623149241296392628436892762054695014086718390381395575073065127210541652324654991362902903568139562166168106034915972078405360897042289701611416979072208657771611968433462496469851024636623003668463150140802509956199832222580926895824398871165199660487503472352472323792251951897128341063921893676062971368642349268231072688828592905698948092629809513651913952160280617877065151569922128297584768633793925402348704503416898526271186443481934541391829706722396599329067596358426274974347729716146955605364721672928445603146789811024112547989154074422026686054663596794179546101614826230780632004368626651329165591071635958339298749825338695334087193557043387427598858625091746263926177656673346584597912819786985355825053750069867080224679647423337488816874782552670728208496498362253618702670565394143177538799326170060517934494462578791957103080841777636083007982474989134169849977316052879568720136278619338472927601110273874378734202735537404261633921608348898218730695509799561830735893156732389725127473092105930432539442138597347872500610278506541852677266082518230643885567486622022715175755587726816349042898163294393047302190045564798569834688995039892761585463896993978028123070150789595510956194953270700938763871751177609197089341655792786656256163216860963876065608229757575312568561638426464721607836436234728217217478724348402760199359040567893184623065773287930858816743791118393736405549531410916820603395102667727962776664575857195525927638579905442950512221939686239586844534472936303463751702979151635191711586786800898181239074739198656718448021688630519989395895347849849198286485097748219316126222397808222507099764136800538780632163752364320729736394567927130328267574337615029430641937010621105751394175208085496871986368142393573886595299897969944251094752888869264441096940859915345561240400435081548924899236019741409287606214744151518521960870290628063486038329280313259519833414855019926937260272649193231901663427384732118101846472539448869231809152224005569025313296335153321408612258673996711356174156479900263577409910995208944609889212533012287864481955874271231496888225420844349865692086096936853672592683668607785770550353027365472050095170018154997503594221179188332858031921366017620802376286381977142417289061548922590726726648699357551340852308986446822569012869764815741086920695842616780271739870315969371497134167857366666854624212243688406764690663241497444367330516603031607963486821607921953046401087846921265029749407391383613503009184060294821670047952690188441099593841937268124051145151111845553471880328283671914449944067462568007747050416825232022522281953260487399054264541049906619228245489233073929664938459822129783667182228439552693056536227045818741794935121991072966183317413620540982241012553985684385855791303856678931617992036329605420654227483229708641759629153473673126848966030224079445218418274435714828352271344835332409293509627956492301481177191539021364917931378261218610297104483365545228544391795069659562605194727554322596177630908716342736177971669396445434100018145047599297115803408464088973809911142759137661015731631798588031095806984065738329946018361446908090008960074805719424108069009475313036498570136642441366323120449364729564785998814297966138614233486049122063810973393381209552869592666967940056560915202348568188728380902906388755372521423673941925906112315003286973865787527840074011812287666742704520434754442896638083749783270585442926406001768879208390459198505201096467418311106602279074574355729023488757053316934486906011268700574103499294425877634465288427818691447483746685212083667259370159432155407306234669199382228775390409796267875294292679480149790429603131189145241113020152720478346320029123537050102976705647594027833465412499909461558331703979562315715191033751319634405905334184717230688834766587152827752235616552492598426519821071421136431179066867441030030353764849007622431582750520945586669305071308886878194472416164274553243739046876764155804190376817226982535056300367921811338100126331536513201034264384142345821903885387039828950055510932119390125203379665781045936071681363355586017252652537925897990851298174186181497406427264438196482482134910215564251124173084920194531990751047688597675768566814353800668840222721876705346988507106782114151702145415532699398060788976257061269430881861026453425567670199220787703991674003924266544444802244477591605446229677009356505035974523486506134142835036277140335106549752832416324722879733885799334995822683638840276749431599672637579961179210649016127650776491962723817442496563000025473742985990465678984443612456700608846380736186670998593688265125242199667473919292275379051483298449419978722932232077503259171094441617865469234980453913267408941119206113772140346060319487053466024081640187595419858956549417716437067880894856467148937587322028138833987038499855388033437122065706340747089560581509373603524981326147544515629951544107655061635311996851017817694935489716554857755603427650361906811944727475386868141795817801640850261898902080079000624878801259610272264838507332293265204358626265495107211051394256657052337853123631811993472201660885679424470179731055244774681109937208720879665014178095531312796096106080167734371631917716984614727911480109485263747369792519554428765693482406078382564453155761308668625853566485490482079437641492273876850224853241426704666469658236351718850076998264285988569760671650266105080580464469238308434456903352114368516117898526813714375154988429702307965039831898530755877978290217440740175598061788690005842968985864997286240605700587214445598826668877752037954210868162130072769198944543957459786850583987335943934273373900967071554427725201216923837453396163672374949466363233075362648080961751203024937229245584173321590036014949512966218167659594488922483225909816071179873262415129267378482947674946006198746838698525019930588750636078110736002235834896133003786599400376129473442436457357471286362153370447423999445329987757016455859114768110101201820170199948162210907709272702439825759335043604435020996812834802961979441173122158371428283229124673278892877465432570681405615282290857272933531011056279234195235273707580612547740174133067346173010858862718179991787919255297211028138546115765582950032068060815641748179920557439932269260062622142627753948871165121981182542984881825717160979653382026257236654424384732519366916937378560502538242216726106573236702781404930485115259110550364273889004688845908553207532095808916610879901228800233070899925128064071014093843712131304850714447842135486513983545479326829264036991378133544997600044567442626337463076119962374241865009561983402528669743615547745159788421883013116058795803290405364340273316441122554200747544649274651347428838943801217946076906983426047669587058688872966990668492205788024870393002263238526991570058315793365723821783199365911269625182052446192939893908343795674933500227764483392898199408808906612407012183636772481370066769241623999243689803167912044710870836452139464939091478663061118955570836564453403686476026598993885638207918175266625037354579888511813056485463216124277761957405544788950093354084425981529253534172606201302971631082017857830876871872179304515589189338433931281272040550959284979006827166048115914150013559803464122024103419463634249490140832429005061528341058382686868130320817439012089038799888262966529032347801748366988890324712368978737858170925642315441195050998360884229494902362788717382701242813912815966624760521897469721386988817126761994118777818284392937072584815814799285755086651722816979531243568754914200369564555736054110171304966860832488479310141207821515565606109894751337076028035193146083503859161458184770757839866825849994338993396415972358771029271852129540815844997454735262214795461745536182230805431861980512435396321769912025994917465407570336990925583937067609062735740387086257711786618383933625462241486095351411044943393725797186092574442758963651499808926556397251663018335683786448960950332899347080409298690408131728537027604785696117229677833634131906054862956222650341739414109879086664435138421460053599619596564819387732739575815181520467358453211130404006688808141189295136608790212716884332568001531027296055862646028235940828882586612563546252555147052542560268840534106989969865986049125202413511557104500606248025816888269955682228753701687681844494943029017227257949501041006588887193525472881941692071861866627474150832153467771883373579967979438355412529164217580848781401443780821532971790667061108552648153263746770851953102728889429665638175089422695172350899301999035529742349381548991342228169217096030691735190755079324068210907505751999340458235222793561913250964737866762993710966964072015887832484290498790015820779069186237717870560422622204559803230728751227185380298089392790707733699593981354211482012735899019220198579126613075069339233765030771302926995709670153012819514826789116727249705264323693330810645319872451214092382137898382344907298003879370030748234375723312600990079035756329510639938960405793808514466040794654663695520808844439201854322410606202648649659841894048718813638276308752699403904101502779977468164402684026095361966551886039152252141425583704110931404320036277633169283970338335327416013610521979227659538069897859517418593547507761993554297502386040644826974065569921595734828288859784579418271361006744216928077892407617022996758492522143693481563186260185754687867366515667420677609706010109911166956701816188743731649657840523919377713397857414639919423046637230039685907180393837011516365689972246523791408808539314021220981856697876285158681666071689883611059676807611988023936231142923255684057147457139837098936598446200659370830963161496560173162885272680630769237368452123566842245708181830626290771955528897078177617540117304945097262477326657144947615203706213544392418734389780184759443541106534143767126293314013660479909534802378366306093328488850721699335397706894792686726031042640957674575775564532156741877482772151844356060139763300755354281697565518111291057719709919616387357788047325564294586958053151926284211071960736336752552239965571747268892033747859000306466444780681763747383234817102372951017127112852365181007700211373792526460720994977410394651311242359431523189984081660964254622743839534908760050949659780187361624398211043529054895276862424141040447961436535199551013743197558665403986836788254121284428052408759989627107658446400504799467102379786335265636503807814978243076478095394070411668823667168888560833199832892909801137005762108541147854023860236973675451828849244359965239304276178681215442546143758960581773772513555344540881178529864786872458829266581852547555223555378075197577990218232364390316007427623961570644891700818243294870579148859986446073056370691581246265234607145454293897338097670467404659711649437479825575762370083470631817673329182409673969536739691915136253327350356409754979427004574083822635179142770541010836279509017502114612255181508477181492937092064403767944486733422109135395096746037920752349110760726415833061731400856357539856946629853294300348400367195027180750707855127042611225181619685871973643375060675739453014125409732522260077830613567728841666069873958751169546240096576239534437812433211382981495632147303053868402320859646675324556275069701819962881083052148675106556010937896447880184763958479922540834433941701967907447686550852266177342421456933284324901992499298958042873764168371685951506723738227477563651534024705280592387002695998836922139375470447292611788963585088310834358075850693146174123580785820744548907622340040773132589974934561838269506739345957461635403818440336663303131820981684868806502031606747014170559585244179115079670736051585626929070773848247951397331611810847942982013267904060308355571011248539028748129784098588147449880319935442991729367270904430744092726131168542135089362491801439411934888813776941994875784797561540337163144529612246610198768356456720516423402388610297152617432747042755592977271292268349566894089457974630549716857528139368005317262794128663609990679297852662933853542452044368878367469779467209541623949020624560349438874678974691310187755211651150418489994022102370035065979316956556978618402185599733971002916441837135334725350760981947741770017725863432769810366592125534513241874671223793187293270134381430476209914754010471957703102135269990414934108765760901743798780120685955915098006009793180658858010758839080511049911690690788937229195178032367739674020712026989496070840513661014640441681058817948906656375326922173187069995765331045822889440984873449436053856941038332734679590412643481870543208558137163722513316806082187528563193363446500487521648996954617098749926671396307114176567473430762438396255287166251280936575801621216376458134871604368780654635513426529870055062558439009762442801154822975974963375909299430835702922148820803698677706312347281574248932505051035369270097107276365873722304540175146654190454310605586994529183326984983039711049333307960051845673712436597518986132953312609645474151082008158519479574886057393889076410422246466395345964862086330299007121156380781855615062805879834386176289826285796623029796290062615844784635778653649191659160353433002349884894050711839188877848449618748132173504005016743594620636678105648638069234350433175626211291925662372410907945414690020293896355938168890268025635933238565894278608252165991048969752732901137263727184039253376758367537000921166643725147414835496505827659916953657618318037198340954565426279500567044175057430504437528748126336102682111273034170167483208810639202076274007726896767072471374640832291553065031033362209691405952789215787287008109964115309632523071959648077816227663067964610069828376909975533883902416452504429381033727069785287576652296525047484795639410891935775214512530820672604779414755875249113083100844135713842937786572475522485545478175131329240585357461082095770629313108006039880580073876090290438248349863465420799545455466221111118897898303749459075819892394321306439498746560392236531790482587773009089453727427297175090655787627402747047340806333113707699071010152657440063691368991216952423185389721287028033963554097563418451257483974435262513509665831579680074650476455869606474299563379657641638490652118652463226811437309033631021542144240113132944846210907723360128617277043227460958935272871646281889279317129006718980693488190559926087924429382463448303944018714478791851790672508265322534919860982915810330596658872017039400396242968850861140896344708530002019333829805331574600244347040600552042955620756693009622655082113768761154786187968935945121227331148908669655038511163488731293082624212995179949204160941086510156250260480079425892746957385615096698988460579882943329667367360527976520280765866090998839683055221865833755970959693965093378002961021266776461592603007582778867563027502787795029771771894669323627070121126924599975785078745861399933041610665717461861696763549199416735737601298280996191210831799519748242136072618342498929092728692485042248438790221206241830283737534497599959512660691379976359662826107468445765372089682499830454231492395359050537267608659328247782079228335092730166400841195265695341000021033865351411125313067293237788028944022960545977312646358224956713336211621151645113759124715757622324457972646646459072968348608072127859402847898005324905443546980661068416327104804584596293064433278568231646765232472335305552085902711624031006266904575093327403976510123836230459873051659765692557426201396936886204538143766100841074307619706844232085290629843435465282466213319603284028917410343672046794065091251741696850307191921001146680271686318639035190092383048333635813817562171264794432844721128115173768404692296725526041099260111006932251088359937029103889602751450250107272091400453973370680035344763305613123470312467054535645740599234855774268109324979457433046362479304006981230236928915174550681102468791899531707849950199419902375655167443520624483034145551024632261084386976160427889129127604631790355219251845767079768739763657539591551636510506606942599940864959435177274378279335926296566293768279895388695998746155172380512147620855307188259477199082716944163180365353403732104192745564540650954468806429297979829825977520276270206412878059531978860731468028818103207822204426173007864936467649380694267525972987800977657643825171866560043735130607679605978214225694079569599308512727150920284182693306209246318751058600447082027038975211120830090701331151188476031066602073092950550011525193994054911028783648232105833632931180573323031527282790882106347654628293010790059509189535921298005450164300988207843066328404323609316912789754680657202474903029165777541209055259310965372015394168739171378900607888980556999269605288640724407363423283654572916613880980326744000628034342246430176988605397149058947531239221113180025006020570790536208250717897998253900392462089165630995837619631843844800981261190679848160980954836454238313479444693529765543087285438370451829650584700330048222350300860123063661975481698254960847068514495647915614459645816985425661562748531018084627162482126417110940580024250546385467476601891454024420709364519477668027956650768904540078010722460070014578118649258972902449297416162633869913333210653357859404231710232277751472149161090488175165750573558715622324594260514354814168135866431836845895089601774719293344915206417867153756766253209701746384109977015910034236893186479104883906160541678131474236621944162817092809924635852601272517599460141556942394966019419871509747835934815410774230043885892176177901470170749426419183244416422314849350901955081245297512098514317087787087809657994240466060127242551725597326656798048520151902819663799745861600350346854486335267282371534990780895937897959589665799642996291333067601865279634050808817315202153502000403707258339116156324260658480690181831931802080154922085489215822172384181544495833037427216898985081026071319813737388368716065845565840478676402855947353323187986031752977349297188885478136943350036837904455491914430404974760777686187755604267021842577862976929139107685206799398792645475455864622974541198499435769613588807401780396165604486772242244019644359120826080686057880954516959001345605258740642535179784153320493857472629588170680960951307305453598108816142937590089064445825336544375739842496667634321951030207494379134946884709733646177129713298400094033740006675643823827111763006121848443953812571503032871102529461641343854751000874721662016215508749376887830849284402651977315060124602081118172568395890565167838258218176939111180634548954267574660567613391071963646921351121027300398808714990550529148256863672034467359096861211714860331686476391082056162029124389980671262827906703945579831179776301543057037552870666008195107530471189123176262445959676612374457900352557647452612639132797115673305130608333949651040431010635616773338260307226783700522381448732431245475996365906344289502777420351566605782458601147316622111830243764676516291412447356597253233854168232603708390780875342398153929914065078853864486413136196407649663892268039828134630176836439108382950945991152252975295478918022733791881280007055400086770168546313499239484675471744758428561671788717552945704040760924703433193182598600144655093645920791377658660015411629060857720134523919829560944746527024751028814287945368284250389115660866287556936569618160077773030232970901507273242743287957284256651935959382607159959948940329521109053014098735383872394654932786907514989888932573820997746519538449673332918707657976907014423739650923899892223546757827474186853657664026384699431032855796660977029037989614165880559849521471476372740206857640454534494955775828652658812874622157893028774525834851288480579664112459315147939228717233374121011519933256206176745628792364279035212775428437625723078324642728102907851485882936445699875656739179585703678743956644138488293020888610965546847721044110436492057832507952242345261632893336177538001544915470361428709312391991997042177287341077637803975044665709136873063516285625502315855526996299698863610716865890460038833537070177842434637729950256512103174715655674502001416855226385224575738856197946107885568607472833479132532091213652338995239080959111438964875551370807117701057447753893661245850881794847319955893425917924039838662483420832169409579096892550575741952848936198612639637438826720699547385282800329781070347197884224627208400315506838822014900833938900977606629107968681627075242124623006434801012888481865608255095610874217566775443406883768109092613442429777005169365955786646641410835766990185569472989877279056922459261789580084310273884378240761999778816020163679912303428381869164197149651751637785672572916442346230827111562559761513260218572056490836312819559680939933015756903347643075246875102107396434408894469311234844727532670545734826409227433533113258417819283544413172794331970741175335072816260676569992178389614488743971785065115670998518066077385633024534059890503208214510491064483956956752064957877358411885770127314828699484685848578674754688976633240271117128999727600116505372382249864382493752447874103504783797819132379774525980785397462307545290347338430553635755064455947748553639106396782261092191708381024853827900096745503357607060628120834238298418924356354571559119318945748072003454998911569980075324781248092472183855706207328392003761224772653023010828666134442692655473012933999833174308723223311180250240097333685666642671007211289064269375992671921223071466473173471802222518237697390951741226947129292982099506308895428112265200298082866849257561015459447369577371547443376032933615614713091565185373632460367832343442149092351293293666499486846975693522724819260456747217552370736301414573114522514055011415488803373008353126488234340728731898928837478185473744351117576911344565632296415052110264655761616561967898994913766252027257559011189927588276110810697132040737560515999767931973926574061374868905762434585025168438390234299340703896974450658683440189458043436036004755076677348729088851062508937394698177924064053348121954972513162871578993892249552918698264050026950230298527329009039179370304963231978003324031027635343767619096270918223397187976326024067043933608148566579034934640832843735661051150339438254843222149751313783928837074983606588572426403781598940807335622866774344135008962445535878865027480500240002230513984482890547171947183838642477837087712330293999595700599346545550113232450654538476005555629069928707425570086439116744860790429966209242097125169980378110983950237248761215324727421134851490781009035936992766815072589041748635416529355719704884027763725191309990135258772935578984343016114978527383512395374943294202072914143810969647438135362200075473257977061304109552343303596188721959178244014768589363452606743479542213489008807620267090663497630348166529687574835772799759986511858699890555972534839766601867422553037328371961680826414948585760495371686619019667469618483157237537175350331255481136596989304301451307419370385267192756386092946477048769691617316538838216486587081299885358975180513633932718750323749298682219764978296066675440855005467367828630107185095887836253739183809366135836967463686739488739401466475723330147716824465031243966076408059845735060392616687279982448128249584641280235617789296437289001644668153139461742359376578166211423363218598797254600144814693329164504954784289023573511238151480947435893281151025369869908111445223758886621575330787765344261062383659988983243710704887021414414339828964025908558516206325596583626031752323955107746369784438794885864293340663953638859749348675310599155880584365705350277499792197017421022891211516776837600223936896690892915548886561019336522368251356312244573701242560372752366455923526203732150425873038324823750160591892971335031540131646499974197835705317095582526898587689122913393289864450376315267333335719721447344760724202930844513415169643681314409967422022696840881535085174913719224660188267745851893498216219672210887463531029085177873283086617903986062102659286678218483930364258699056520318060664741817129913509230520494693020126324408253623526084471394291572447120653246793195375085820449712357227155109838489217906169007275740664121679983442761400580105115113865904641487646934820303522071405264200378068438895094340228222750934597689861514376161041509428364049252590756254333567732541020635242010795518109888465524356938543830118837713960172090111351575226046558568098114848776033407999282740010982804108054177239769694832092259486369608689994461354963730835415683861945074468439392013718394438340756604367651104090400185423472960022055533960633855280889609395855937095181343641252244486314220791821295361115001175459209873740396814179545156255868201313550137110694759877726532023316923364806214268003493515000084382032982778723410425465036375439721578466726828873596625313884604998307801936104245018511361178826819414425255284199138400013678442186635303561553616576406587376275461974128983666543350563971094959640464902271017648539607680140885523862741441953400495139774878086740934234798046262852685559434274089098133274546857882066381204172309934459652436258379301086334831460656535671130625819686655195436739933648292986128772855250113194949314525369350436711670515178929231922666025868892106047569683323911604420519910020964779912334133122950410606486362565287789034440055705932267527043822925167449342684396583793324560762524327145836795145010211850904892890957644150930187330405605926310266126365223638506353600864320667223377856372737322303792515298866278372873182551957827163250414853194920759188763572344256028883860319481587398810010993789370467370921198911803111301574388837434018312790534314166410447714190894064534339250879222622345031350388268319310646325457844942249282301321607393767660449602381943431400531426137023815843118405373470031271940572881898369840804045019678344393240200922941504299817382802267330981934882060508472016422230512175970307252652540903528320980471705816244540436209861975806621238226254054231884254426488398332993630507172729460385677778926370789345665148350805852669615931875987226339129624969533086982631281266786575053841604536920782911464651393158327933304613864775125453101984810062790302948801172699603987281465263598501970286348632347604973241904937965734049394649146910287049778681906258140541466829529384017463368880652370521734992703329078106298336606992047663516625374163567848678076832349078826248342397332547817256950037713195513423049688290465484223257083054198555800022102802288443515855096172464648446297676793468191004249430709318233676904010554743156198382355543768358459757200195844078943389280575579250617763814531039698848791025894347485951146759701339218708443292852289615226160100495769083522418095826735211717137686099696449990386385057775412431135133143292712654109123396244756041950533562919595751073979463177702014224627426552595565332525472222657805248601671004046634867188539484409260974449861338322018983446695023931436387392414160995098477223186324760740001626237277126308241985921128923938868870512494372957919310111762473593005502968550318422351448055723610579731304832202719639988944368369109024626051906307184191817569806798449658211816129784917135368056486839964484028478959269784154729354792554271185637528725498851028198187474552379785479815398986511823580503088747165636912928125737018872273145868501627679844504036184283257807753069808844183611744714786442969337405829437094416551296482681515384214331169389473027139579216300873773763976765588396068482576981912555790364317421275744586413132536316974942369374040703843853436370588119390574756083487098174057659201699315061977240356273201899190795118061286442500644815608096796540897106836908117907738586812540658771163084892700959196123869855293386282037137358623461173355703573824483964472332386060823888636588504944095264454484984749522009293621525655302781719692439708545043973859991336212324910726788433631773771630131873280180190255800990687285967684740000274546131925109947518836467553599082916071348791525861024159070183953986117790979209664898047141381433600795777587430137926140248074380424922854920015792845210428493178759118700799214559398678559460031055664463767984659252002132773780972208939483313374178060024516830655352597589036394117500330584565342408770152666907597829708006181315110873886903394723502586855579549714025264540596479020308277267131386284502009387007547588458498847867802821449325443132320195552582043240175858364266056120958308431449310161724648715511898825990764795843526077290956730550110866789546010718167883386612379836232057692986549801871071861731248728978347958149172621837404348216095403571821581573815612822718353489929543726243721443773218925108625452842971093865531828764464921446584482411601439899122076448934644205300274258509026749078373937143225858446451573789264011169898325815008660025527626133600827931922987120505636410847230709991991743796010642941516615814079964461431310777283413371579003528202892656679516195906268881047025334806808116362403830199033223295077253847278562906273248024550155702710475853007647876320214514408157371307497571664233431356703038254456587409810307770490988307359083896254968786586255734607160533240214519910635633357045763722091631446141494882917947971670578975202015804043160675685793964972967727308414992301852162220761931537522176313294561606387970232959805321383916722253531257411966826302642583686084781488560478065730635320226085368930039289999642380313416513632459855827715317033519804893065343122377578495913707471335771064595664679444071842314300161036436496886522338551912193917939740342879609683739161565735048309375597310572792341257289882403553550398191526262602187044019030848084931965029077840519170293319719804688698706636434846756921280552063418342472775509669431388029370074576949600073493223908121700190978809184509478732128930496508752532379536570148282012591275434011479494786413540426024084254531239902926622005716447940062174305486812599590249426259887010799818016168237586435205910395111335852186975668827240514750791632268464280284596316583013079774157027286024232960833493473246755866985852955266641751193353526908602754460705992084597821000490523477150044767521207586575380733956871529377072067076541326429233931964777799079847965445240176772015194316825039074540986642233454633709737643132823474043584418758074196888809764184209495486124900495192362997711792478665001474060903485976031032611248313564090000666910612301318604079928515210031940700858117777858733295992446587443560507840771154212711107577703665988314380570027137085703462783272799219319129213319912005330395697534632554078543262407113177230973888840648219820001973111359520237415886368610463257537018417562537639045739516753953722791313633568896304371005741641680974852560459059908148868002324054666989712587474763703933570997363786426638519452712316811875838327476995682374894697168968418030073988496051922467620730053681679774302263678879699926691539912784100791764955303368539372514802148435459402372805719547609478510640404581457272175237928241226769513110038114210274895025701238951329577084731382801736136811548847768888801495195690530211555379607536577529918107034665169299500803838802016424551608626264955191335478203995844401056130018344124092103031420140253012403881674189554129968738329936444392558360989194626937458156689869977623518700407107726173157862532205198545987612936783317724658894951257106568964883834665530490711010473129522281459420520784391370952752042246580433261061534867875391867110224907467190626035638663148626255536913152610561712998803487474440373622730885938216842458111065425858409074752629276141053940090072169472151735418621818085646288760694263799343340436926060582770477258374273753174060954229895797491856111822725827251249376517296182022185382149894337255041056899054451283635995370198645965703454474824785493015507767493986005442668662520424742703982513615546624544848290226671029370458859233878543608016605916841595274473536578900196578945145785158292754880002778404440317378386744663211828934662812309756309252039916869773242859703205736297047612106522672182536207761871429940980892650787969060782381960317991751632728359982058918284911336878216183839287164887994139071395297181608687590589725120728071923369406054074934085549283975734443894326916874807506295691120277241690400656883206469527828326479806234673402543050986054958047169056066721470091035256967146659130621000593031198066145744227779686255261319756442874147418691357891425619224954561738580255783365504787612579195093221803878112617793164018269531154516497108535046726342651367468192217018486979242206424902098730740889605813541089792896378531005908179284607778340810272196779410207428501931498938345620077785843896550131498354345017295638932535658759020632798295182295756893087403167477482520886067856737184345272809808001227108274235768739637410557475521385884914128129879373225705504311637255405406062618167893011016905331734798609345722474304960694676542348787331695081385971920763155579274740583609722301001463475871154786694136970903358124646691462052479160639939469195659271718183976850346843749889831037195255324262621005078366111371725986337373210102055379247958953571964295753163177227140417359739753645243091697981487084673694749903383626398240712928673401425308561450809286512939187066840682821849715075618509787023628620616816994888632523073620107786575210913039293716254725727327154988399970479706773565683494727702516384809559960742631165356291487405167392075791670295828788569617223549687269513457569321194136119747865258532334438796314936529723197603401927052753921659888262332723191146504829838792614045813050894086620147946044219635044024808537417885913220367903965452031923915228864250029198203724799072372245066827027803379107147749852175101990389149348269379542214759232886522673151225693057896094285379319141742473779587558034404670183690979461093601769531511088073420752681976482282958804564226615133464420514488197694101957755212527569792977900564503863140134284828863318554119082117338737903837725635834263784044920989798224988337591609074378898114677660886274572012072736076385712795647190324317908653954186851392716299730386968520944861996850821282200119539441756841074110121011590692905248475172186510067065925771346547992731633451836287871870851701156624926795277515409241799218853099938400461634797496670260152488140446280864935922731041893504941663561679339576439825676195503608664830739130322893775522461784662045695430586836933508376855619137697287691939884724300814496903857000694283347995638869503702091106888769388945089605542682999182687380456922613558461022904918049315008754224383538861067620682475835571024021308602697855090674956865714006890283270408574535275493931286114238953964124742959712946357679158201564017808215618523930544952000582544688012457573450527309553744857300606115032501947824694586586587013151585238863052127901378165475660117950683542563390451011341435674536343613773701685251846518053851275244336925556776150705815695496721968314005126315095426521920729656757037352874971357550997297450442142549622326034503866803264816514889181080055979678978822620382784745316847325159681317777147245959281155046378934546364290669250457872227457829629544689505364303897633609792447638134238583285714663498662958619620621132430326621408971991136704612203052971045438265720577714905173324879449166986714899945408010593734314355453031246691574078721124082434526715068864901215988836489829682997439878525220753246589421901153003539494587023017034408695053450996684113064405570931438220357296981733150454123109831239038726255691681260832551970222621137941076422564366151759093354972273980577143123730986321515731900210256682036808673699228620903715199354662202154212845807543909537537681273430940664274356950981294059360823209001044254340800758230932270568325685942935635370148354875538003505596554069654884699859185586037194644620830311876567460395481394422171177902677704119803659245028800350347785911762338513893878538445202915722342893273389105428358579771258266736408738289129521334128559726779453112722086513841570286393468260694199824093081247111860505555651611588102508089800403837561457757822365008062405401117406951824272991385290506883524132299375552368970914963247468307854961827922769494471119742996737318088445876748022281677329109962217948940833877907817052879861480568644745648159614808123834092916296602663655479227750995884265362783147145589232955704968153149393817507803520347884777837691503137004655562827007710185162733587250150596626039220201248621975152370554430241046744024389102352911552687051234215509157823778046505148548641430719880408574618863483008673868852912091455967108577965986991529288709846795244492165757948921311567060754365677878336236831046417382302240183179415759878218924058751594805601489272147643379767655811425994528119435075336756939135699595263354252138629928725497014076621068005736633202966957284980101639622649169197654489104721084884521602951139433101578438711907950885794295556130726134242256606356115706447441065764566653160993240911928535434961962300213492773188469529646017748036700772603391244070029791630356248182051760946493850029455490591692502472434952620170158947067504541806130471897651792448308874658218367681235582265682499720607206016399961618263453445737508811248799889915442056288291233971983982195267536357049916940067568563174363049443955751920142580600052946937072007114923529833964223269973049275965523856874944979291272471576209093919731772280209203331751174721660099141830581583440584761965363234250095651842214381053014506934638652591681627387657324215241775815505577497516533170505535247592690098350432749697861457446723950604675314623535965319463425964709379732121322440835505218204828188296233215792044296829098466304166595083311199334804054160064641612464037471404966564260049656507108691527083421954108510833417627938446219030076432719362957743090461149836025481669237223216717356135609937695877333304433492849142179348524069038458467383967698759597503554887929174852478647796703404860857007320768084073520104748262685594721097600894288625827274440446378570094998220010228480721381122949452437851773812196161940243075316483222170772228082788313739665652509495938724133520206100658225245479726377327716058086578655272439262854450403700124494099324552885213295135981440415363921572525712066891540195456743442198002597929135644047048603504761211399146447301746877648361067266226273562742754973257257547107290099681873173654514874764222274140010007520505132990545708793137981944187297256140733752342597152290784561482746292424908445396580140858014632614028602332511815812908650361916366939902017833888527527909816367304834479065308129558263160371395157440187893326521137494515077034258382731377856506954694502627297741413990044798665474710415104560788283086370182877035193056881009371752656177682790483763876871627518314296749624196555253533215337797806972822577941668187567169117545937815564076858299570038281575744690038762133090435849918996967730289922743849699882714784672889284854407791788958792092210065537992218086656492517147680424962854475356071647936177105841796010388691981527811857116737705100434274825148379982825930330749447957214835423352172633855160331618814532919806464253347790207731272802416966081221849662424321572323383381716038232619709172594223388646480598685471444995985351301210460255590403787610078982704979669456170066496122592296582929935188285306179440094729086819271207219660588488934322951430819993090668120233227264858848659029631931828912747051581533340932700878855889627147348262304986613233515709395621941851329492567875469241738202729983146986022529075735623040108407576327241749871307263842188273412286493980168149224868005723209288680663525260686596024176964306582469222150176083586753687789811424538032278295125951732489206279157742661373785963727836709383442020391403277703644374303636991662729307677824709234825144780076438637862358712418055083331019317261696904816257747197369208651636767241334549935310655093373889030680881621914199697884275124236660490218639834784619820817206854415624805873164667285672187459336137267761966925470993572073577102595622934714412646083461511804541280714721388741539927429135707310073643140845881756421372175082278134362102842242641089054357640223203014439936672155363177684244474724030710051674555409193224501201129768998821760180926236554813113573604467636933014804441737896866981856368750273526891327477843359925357629862322363270409207715408421111344650496828886230723663599382468512400787307848168756088275380398791518547294392238818855143253658825057395722156856870038218883111059440102598239539986595953314529297920105514244878967761920476629185349714389641717747424599289332247619031608501553641495372289452905193766539914674193751975078002754992097146978011381252266260176906592717920176085166054450560034724051075580701896219485004246048976438449858671460303292803774059827102031820258153851460131095342904400133110782763505881350974214454286135198793767790015602759806620424135775417042275699037712946623795481904057112065669247894187610548773363320709289944397633494691907178356566744806479025805876069774847540893345757914906827184061399149758400094721664661629434511789396696083051947392251876512835370487954272777106724517164331223855428915922406309200140094800796286366448127215985915630418165862531650336892469117699405807205384625273506695639063654753644045817495594141507513474780273692213483445128570330314963469978935608295760065711199765402590253754064028094864253109111046684940338133391491621843112879272297346262933861235414654526903963246397562197398541792262650497632958871451240469947509086617452830361311298930888048887490977757387323950533818096099555378490785156354344186989805226180104746657662717277883486132001047425723505732835859049979683678916386803910733552998478648472541345929239501798369218440143160281655647395239675791948347890818859547943036314348398403988082801595198908403450069103580665893249462601121948247322515986060740513910283772015864355202948650331363238828343227214426162673088925748308791762999337522970921794124871216406753937840078965749283381542821381322559912352660676241507836906479281442921004633782734002178303551538410488953829695993789612975971565970702802587159993138863279890803791831451051514115854330692089740514377522859627594279626724045154456608315260653510415529052354784514444353397999783477025886394236140290624856015882718478098637345328124449690143049825165379512538672787324348716599907534297278975037026188560842790772134887102035344189077071386116232884070872925659357889697824482475809252853125263457966223488575637262913358057115129281505455102324850927236938142491109586558083089568235427472505442207117209305370339305570681861716431467467156096025558356904278512260947950791527205225762169701944083925219921987665145616342595224915961462871750847655260454621400654158885921385216261581055068905551191051726636149156848199613522005497660005186927249194579367224655570124000020940297180536241919928532004388104269669445838804631582814990771976934387275708011750416098458417126552282493068577691198174026506781359763316075545980004358267338995134451974152402578877388072774956346894585508751429098009163375418010489596743703314318296527482016543810669508626653952534804093179753137664104500955653358506535228135629399033198094440302183523596816494670251638395082710214969744982617462975558503019920901993655376353304130565514000272083866293292470310516145303726677963516199855138776348187984089005954066503392779378414579246589349332969787361427215586175985800642210126320493923907804936140896071041630301051721697287336011308446096639741115297213833895199770103585078291622291784225983568900921042556801722022923515624668890339109605581521326567841899726508600503229297760974953321723412093007775010052550035800860698089313308687882620584107115470678141326718935937976198671334415180552675721428893657848880467858376117711967935293792749662419770156161481303209626621971492152383595240168619167807155678506253020498358425431304978409513805431268150086565252147986414059834847536000522152345603827863016148073176274036634407557221645480540203559917721469268437486151836348887868637673896897644378424207816947127273078586066687926160225644170517876275668607589681973031295608010959275219277974011230455773085494754090263450260182715916047641397852498220289648862327270454131644942775271630528260994891475318084217604059677221859565360795225822791056107653517763704622362205346361601437294138295947681372715869804511075330653254925265603397595382674314932726166637205071042758947961993062281631784996295951108625468654996661866807085856932212979402818281435420384689659171664147201467838842676769091305566384667541067930020941542012002084616409259351701143546333558931378812042066949659524774926930210156306834670002957106518929946777825314681149687342209219229000478571389585302534226439494917751136010541984992979662037851632922195245102078940816015876190347757868035955791062893892122261055279916064025971032705786590373154860954455475493996537677184863033204962032104125953819760486256664763704371621556409101567386237908489361943237336692436258132597629313690805299088083803278607042093764430920150997276848433671734258827018182296310508828360189365355858459674997758959486432709246366684995974463804313683904638864584769168506521299478294340837173348113493511978448326626644556443336991533360851384474716311423714756287002697082879325751851669593889259430457996898857872504567421590386636481364694012336326389265957051111852899291718663210079715603305200075285019230255742065584702970219334162283331684336006445045637585095479170151504258400252687679961538137595004539170284672809865864618109102019799135093517082174804855383311404910145862079458552999150815455926476498462999516783269653537635572843050788318572425136825770376366329130813590470632174117489397080935174847198701032102371052567437407029239217827329088004748689645925164490322707183865478453071356371824823526089789758019375515716685208210029686685229482027593210600751769044158700280811495011980353705778462376327549307524038383695476534140675762533851933850597308085937171205798645879353184464923359535082498726919372166077400393591142985834924531725549482131780789651706973332485619178405140927702851490391886578266549703538307480515337681919031238566958034179935452778534296860664874628009819946010484376543952077319578471215311957892997471161174469434415753870719254364797231791205297985574654258893830222172939772888537575369417163631166827848656957602904123857559155544116939588331033182660265285212859917617421775762722746906986338939627317297999321850847027329752447682490390849731634903173278335044085481195296542642727165003742793929246674301522345689053509459308098808555372304734453691263733536900157714759103270710691388217558883719626791237498896186110139782888292644694325538386238238297479629592806970774247160489477737394263347936452392167435131620395173313693990351151732776000692063401115069778099628336505202776935824533952243009021228363989273097128841893734473646296140476949868386630233900975125700275543200483644417898199562326279350434717423407367558987181508773848102499710976063614792352461118941771500524540800975572875167011242897198969382739583403920762488636612261395836570487025073635106650426613964158638163911248517927172060222151011288750981397243779484582294036179185968695581590267244178845181877538146657981797355783556700398357259510217018248856189314775490640797784668150940680007010672840781669526985799283445448662588050723081711711424642581842883460914801828174340580807217853467221089491957961622620244330142408601824069692438222963659102319822365531547009010652083302436272095102082015709671442503151285728265557176657297578150457972591904896176844408379922399209679289344021532733816379278992917421476944572815832097864176006924970253229270829332057976976731243993502392001380232556267181922347973929980421245147203008310132163113654488629568436991175570926250786326259477986323463858460385707264769467502694512328344861510805813985284432259134285699351212285463346982426732941112735967608506250573275082731864723957945546663799518143169176225330086290371717506366996694348175081730457962022409358783702324643827613657484351833936405341741030911637788457391091008449949594110892485291580987096717951289021147643150842130845678530310265383545677589887458175828536491484100910547747848566036998408779567737852578963780588356936287224855317994743725970754970796878082926004755517952672877601770965792030561435933312439225580563519486704053458589066650629841979235880771639028863046782191096499815871713110088527079491129965879860856973790985574545666264891131085161808717598909022680456520855768404509173910549816645560289015751713326429870393754255544366466656108191740377978566178198103257882799530703538976806401380332269097792964859426029322801919428010535491722571920314235332140555704893108846523353658709812279716608398876306957229217828474160271854615740142182157982977426055975874529851966348266476020494608995093256623833694879452390239637865107683674024510058056542990084528183080510064190400997194036238359050602249528695453590380073920983603219483375274484391608959491941544662440261845190990466471499177605480717618586282198573702935494111609580131218964043575628405063196690344022635541330870733984167144836808402468669100244536010980474840454924811196149181481662554856060906684396267108258884036169700113071688027380180937287839233855432462893248468390482610575881709399606672726026826898071338009041040638559879780943850348591968427249512845464974393844896510916123322077634668971839813152042458713153509606108429217334578200672035784453966094373183331407741958154548891959173551496118383309355824576253189476898802857200568720818075093529370777461620681437437771012154355131427378050175472515668422553665439702238074994650570539677682403316866344106784562559118767474655102370684993078481857229195026211653843307018166879501367023808230344195213406856739807116642785994975555171953293915791652717604363902431864717243724005408537121894447652173580118109143584231486527387574932709267558468717287792444572700438369195031165038327545687396347156630119210877355527679464470966826880044823662770280749895938641020523248358933365726229221328907568349598437538360186617280545212523118030480348144314719525064289153147106881712323185747409311600563779170903570093698228991986283888244799717913917830441188963468259627164905163536335365708276138374625548486050087699626299209367880516489104978072768509125660962415272104922144808050418438329809708110011639036860645349475511588439598449307993038752433320865299760181359151135202353127866863290903126132658631754211691853941177701895768168933586158932561686356982593066494368867721385422697529485502509493224042560092787973181057641759927220585966798291727499945340666992640462920506332471945661438071055192922445848185664238292643671868158875978393233083398605745579287809215390997434660521459494518518896837723498921072195250501569321295252260610307992743708961472590820438425390580657746674757716819865973767985526766820481215434556402275027215521476072699460048356594946856753450155945916592696189629457569925946684281556353820167341786881166916679030701234321751148002661389243101259413364266299791675705296353243209139652288839108966556349862777415423362251661870161743724451674239920337294028222755479203889312832721372933135161340336553536980639059790184253778847573426683949203805244576755962121802406263529921210161551916280121760250550098836090386033822245390294499178441956090588089494351292708893632861144428659097148573561449531042054214876150427257295583525372182660173415624143400069363086589854242686704992698864749116822799375890639114183939994920020666060274077405559956633790102268266871024555538948205317877356315783681159343008948579765554896460844155254464747363716424350947560911410052097420490580376636444948726493322801016612158974685514996569467046547462773702405851768368643512469730639478447425473869825936654298493373256918957482188801128857451470890283438143290239464694589803156138292348308611263665362801967295559194327157666388736564080163342680054464443526075316221630217050213473002782834619283512000063208349918428023956003361088965130478356114596173705619859399639878807925914603609199581140746848941296753081847663155164478701706460162281632667906795340795181430648077894386394187935071572963301265161951486905677613865199398071256278057093691872452025475722555050569326199025190622110931450050156733040478213289057462741571562877792749720454215121961499487622897951495710509143464725758371624454382141292715360758796277955072187687223800650674835408421498448886016594104585382887624187286755376405133191017965425230918233089875945942210035512806732710839810768598830658435515327555588344466257175469778617297569601632367435988163246679205533192342112076975985925501327535314195829921964604404379735893256459089253768859569165707353089134254407494339542202006521133766640630937151260591015482485195119564583486000565573793352319668946269469370167070482742113436366160594052303677903157861294967142109931862672811765620435633821638530081758343032457621792291935263857637715664648059397989574878432386523378941378582282577099607236576773238877166287130043880530481500357310976048862188960214961690015212399881198111891209871941180765133324063522705783659071912631520045238098182937460926083236955055305080072308923685318792555904513107030229185844781036847853644050738027148142430726663624005214153076725764943034091809834455275996961704335302997590389998150495373595578780094637158465269328884396571044528979786757248909492489487557577142056240959710717710239384212362815291818277726979384783270366448385555097804346124871040409734569229789573778913814327634250791917198472392572041924211701881774191573047102081176867868661870407932367339943992791326942356838505067281571201480029107593060860096342509001701258824176327697518568914166544415101336765079384125208163219095535403976628028845832650682215107195726979005484560744400176784411231168679899911646639679421923744349986989752061615447174139367661211339474214084622106760423365298181969672475662679865799001425281931867828624114133366259670904082738645307826462386218672605978519407062480366363162986974212599067717559282154225973702558293785612794545409540515206064064216510231403276796017378228624985990763801147768076904953852598777565557485241336441024254544989824615712084164497259674839462672311490580713933994099492984575844114903823655629594613508327013167628004125411327266937315737977094596292656485838064185734919689182695820630152625451793554863049927461667330167074490531034703182654457847138812851148967523338135633175514112010448909187459355782750945296827299763932607117881064369996433645761826308195966569589202180378432397187397394683610425548805643122670196094465389200697476447720840861366460948331501715585925557610607530877309604135330843362364071778842199576506335510895900898765959331081228603401548739723706276428665252372945328283412565366237697406951439317853442094479638157978398008388068389365024300152386702523115927878350877768625476251032818510593760927085460937491636714885236025984757972394760118745667987526270148332652627439812822320602294277160347981881403064611146379155402115859682378107982080305896575777756882618554195170738727859091431773325749757194406875572019484062833483621585178909743022983732299570557390286178223298767969297535986357907779909117361096029618552234025433703394810170610386079663828312204409695044357530401058364423497324906383446151932663053770267325991323378217590666782790059791129462733424358512886740141893309702193787528072730722290210305635197860883458697766708162722938758458673699532634718461963660047759363785405846370003700077042302087723974449158745019724006601136632346943941151711928426274381896639982518261312524228178025655976273815354248505120546352473129804495291653276929457872232602169381574185630886016271263148112918333593836081369711778135288058616608952059482229322072303833823947809777236461260345811837011292665166936331458263825380836279251269516156438143732167936509846318860241986076429354442976846224712126517791781985443508508523686396193020611744458675179428490655804170416822026379949923007778511747167973168910377220888964374526927233303378881469428138570113596229436509276839312749159768349376846016448329091696572139534848765662362221773751812149252890509518013353864879408397587294848774855672690592332083288456334791091868300973699823597466869812882607522406794455704275084151154139695958941716916476243802225623657682133283477147661398867104389273473966929846184171791200808679123707570238295295974653270547998246529031751214604858510396591755225527820948590851326666693222226035444439934983282413639099620090845006354901322238257973632402291462903300412754431329385931124865139873279221877980150870938938480198338141888447720732470181512222293953882692193291526277828610934221681824665546127145807396031098648030806527764192082246503215380007217381889312201421860160214773676267543216260942737911050961017435240113734857839251946593066655250713637686678164402187251530106712755308040161924261816855507693576290105555402524769613092349424431669085188830799425392507602658806230643228096756156368691146506228307272766852950671376909627611084959537731139929501244851264113172981892790189768901199544546607275910729696503010335374072431298735710812454118753679650132620569668993185188033535470444114803380945631515028585756902788713090226808071151537998490948731778302574406340409973330188224992600761427083883870505981581204077652535323909768287267553780638647983664761186952676367698619675181980930748104551374975253940169986329331777526175845352246981834246420160207525669353860578352831171828777204599845296459047982034495084830342740737698774852489021080552677182253282881240784522683572034035206800311658193460211682968327186224991907018857266284702713908271351775548454019678259883710722446158911189820915413191359245558122853818008462815420069691590541759021207793695162044738842469114383013416699630934277134921876092426476399552091127638850584032847373373850912300389751814335010934089601910944049615985968620373886058417957845451191047594733266070842666149119193117674230081673774439639201775067224833002597391054597824725422011937807640940400368251637870375592353258884081807130170341099282714090576511918935258448565799604023780909593481702798039317368863845957562888785289436762807061398307857890091859291448909345115815079336066490483085714592956392806760468825297141669742455609015004757956179817937223587598106351283370693777745696668922658300498446685918394748484242896389013409731209967927910911952570384054352041994262232282864771225677339543153063766427608572579312788238706645854582157585235643903127422139273580402435401250982674276193450522277638663484579180590579335997610128354339460016943122937967750942066777969029631092797178812037026955669117231720957620939983683108408706994658132423628645778302128725056944072436287909177917453510870935285515926372154678531288501830130573745121642619705784290132570168945847877156794153434840613976602998908002781464381555054164666609980427803721054057091796503261209439800793965484237759781526556229786027944893937400333267862366768886466045992546479778052496547056049990018436922002899944537750228709158140269839660843602430786751878519490772084035986955590897772703942704049051388178186924524142117276959260857397972568838619381233792292444234317298190334383357064144771410198457758031098818042332447801109295934056592225762635743583087244657025653733445931916297297770801892059623365140547839327076538152543578966006246376182748642171238353734680546760712993519196970449935451220917434761183364023016767793090641711851519132905645890966300440033876549062990856731515394006564213501635055607198256798586564856249046760886356755522253400221593902987350345501402630681662262537204039760027748246850666025687183491016586459602940281072264689724160229287426931537685825918367673325946365466954131939286172527376339140946328509109805362450627658198592078457443187273437115820719297059402078565429039739126513583179974955323249854170042808164716737123973520126951283586486447447224371486228380547907086545546595041349345050609711749003546744578961403948179275259089700854945072429350456498903743899375255455187515501931110633225076501400624540843695134364875836758628818734040026636462048630794674570358655685835438163452726420419366885016574170234966896708005467270268944589338245399570895304028291384249771508930315133993581740469190405371846224189747435094176678884423155801172356586440348565960131229506489953003739423469057563976334644941833215699906850588506173559704290178311773507383703365175214347439369634154196929473778632271547312663267044972344338578165308678933409227299353291546332089623211887729368244768454328242102615414891925726684641270267333470474876207254163636365258907469110057468287997920556446228783706364081040148429796868805409540603578585057244144967132298524111769295025077104484788103139404000861487346443970282221673882959597949292445698835895569607020684486528350718262266487422486599626098658234361996157189967139969182446875053333841296790686255259437322378389571627756806029445271346990001468284812917138857514874802595883442203124367681928304932880359649393750284285512969182218872449853376645918498986496966707509263414636547535159906392788907741855859483323533327487260879124518594823016554254684558710753771696026464971440287545064768953792492432013738930266867202619000168634558182858081623566931172933886262210924746073228907392533935584174162751439507962132109203123121718077799193279654357402854321318131639290993448087538597203526656723644353475541819553499039578034119116868650644861023059217444780540274587356143597768948941475925436155156857225664566631130003540343213539957430908536330238403050184929525898803555348163903356444312021285433787451521362574053771908933394779195114533280619326143590257220898101655934335631291712571905630362316023180012131411797234602692698027677095500825405044107107929183080970672074721070487348131729944113025087035748554593467657601230348187507956732772696536787446796529558173174745374900662549343400056877396714273707211045104908475739457816730261984588603003263158071613732229773682164069746919482852985179567087958763776368219585832881976812565097220298068685366533182954954349624239333027781810006311187302537883183226787881739387186293441869234852215918275959883170907549575465845398836572677201996396644902890945450903078698233182175533783687819372770326984930960802231955642864792849379561495386892510694819444415762916961225005864745822250405734874589376297441930355139306253090672701471990647599165014686687444112749978103920049052399756252020723843545549350138662078445580646550031406951322079680486701251901382103217234372245457658788982883562393773187059423960005900516616851690163319920091656133982662276034527244953485962619556855952930672991146957660751846758674961770304499879405977136133602381205574460874651662197022001809357908794897882603994162790458734865062697896743629720181112420551353978052783238692815986348885325437321751497144724485387571315729886798918696253778535083669557470844415840698640711461387741238597518441646552447099008847133230127614558275259762892671226589628548011902215267689609079368359374098324352555715454500055970285007463782370759587894141044713437339610356238542694070489491517847869050482735428542655864026057809858013701847743957113295865156779513730684156426633585104241559900848702646691823558764469647564521436315077297350227769341824649627103851302942493443911529091576883572539505126715166369197328376885607414698561983136322582416111272244788342564331702569488534331560116587738040234029642198558917394536075514365584581647292443200555043025122730546418631736914185159904107841259748917569148724880965092532661869465095032429566339174127388980853277278446159331193233970589760404394100815043809786048102018992418469976897375973391045411281077944514293197750985925857862488788694670404544997582916239518044131362333813031331107741774467526216890599566792881128569364765141826810496896903175693922826483296337935044570535729602575282056763019731438408361166428542184169517845874929969966080065286646350352223063651428002753126353102765056641919313994821260419499113884462220802112414138162902438043952135490547956913525662731740340798276448576731087885189099068857189732300618954793921120796817515004054778427124644070502776588378881663268877031039507835443225562261597207868030215046460856779101826114100600773716552637470003077745758996351384198893140831255849069990029558145161871555943425432558755052564551079186431106425945865152086761521144378721404731780277738130075114008399385172963527998724567246754385657924031590582242833216444179316421929808721629641354106213037430406330682685709944698441199273773726333541061340407323762541094627190303592526689351476315362514571253833296155939908825745947052673463646507431482954406753185107825265470891245596035126147895060998714456508742931991492655050606167310300530618812600701122629603789550029861549589069044494752965906870761311858947076937822829525360065271168658656816787311379821124065336747581595632021888658279246814021268921512450047250336407373145268685210687887994001370384445706310878438750309979850629084389314327439363607033346317530882981202288712656644908819892772787835236913067492354673985596900935503353517735435673866344857661020969665725670294962441460780051075597969461728678685252840049364627961177429878220634001609020601707392635202323797153801953960044564460455685189101989901921878207994320855208168475093341970303892108599037578239697840994549898190249678058280515061794144131307585065914458026039737715415747972324674313381716524661585450809145144592800683393048852509467563741904857641042494500206651588249423455938514283147378240623727461193085865935376958559913618548365578508945462606526596247722607020894951949878739752338794890965372428913235307952386510743274297533014160254197079631193805032794771673243323997000393059042799967556841824700998424153687862361649909319561050413680979562617428885616355401942211266743759326406934771589952011944744629581259785291885097169408123877839770829615971953212191994547041372959780627684280260288329109911692861744369463459933298512817110121701745671470362944924335725074845907190231636784395126301777247336193659791239374195267794765233411249648436359705849591518385992653139468794183939878681557631159410916140214048650100803269171095187578349635007361190125559380070976535855303513835461050456580056392203366270748668460159516470426930123804551225436988600227986820778804311086374070868268821402235984139324562492596009174588587850422351893492737141093527594784355234274770077284682605619199570322997215107716961090423674561024617293431746985324740795319207661988671846985378142577100434833009818874342801535973170036417726144395097886868342021901405106607858498283276547821629264587518745891148166376744481928626910338322993997424667765751022617775666380582923812389067611413866586169240098529410434519759366502434029657823901138760539952384781547485665929411591676809833184011890900570431698806221279560757151778894109757294599374790579995985335248779239477842963692042567003870212086725737376862780986023942667019534411101433065651648550624040865687828688038863950372837261620092463456726872361445528705672300901095544718288126825602331249116847887554350972019712247993689362969473035055139002222792436528807998435001965638054755218448273235253010942991969147424875146191362396698282804146982424779093679327001888555968323130655772205388852611670221177908598482002658482277434862205203433668158880081754592841573964303917870487106030015736430820769131239505798181109969653531135953007471838523659384023524892568462017222249134194564094287801526019627680859425991662044473717905729208108955351958132341703693440902459819318650221405834054496032235267915428920709381568919766052788533616592523376731472117410650000369682932456497867494122299294105214178722583749984135289170219001314343561017986598060216945859714199999522550076121757865745568939776282318142798017213348165574217616499492697999472803292504426761746428889183004965183432859411640604720829387645967580505693531674335422316666035935961997633510195961097688319068183464510004566770023656385479012621037941515351800203737669584244744056806036664116938103616552696109413414173587147444096091540275734309159081778133668354040308585066616408156603998512686226277657874458218717894318914285229787339460405335654591283308506358432727922585906696350871308890977565746153314150889764623765147955794466024243939803826062835344580619505992597562481997108830463545323917705538994827574902941340459956843689175862219406056360022838756933016874764884731670957143950128493616661178990525453334379834605264661011789344354207666018325375009925606416255841442851972252298666925631661548652278708254669981275713939172691347211927890513402268183846746203640735148076589343862772872240170039743963892098592481635360050865887866987710402384595508514767144564187824449244456490634596706414764732018078813503336177762354334915518636328175122390156251902733001424726954923477100879572216117989043664343324732104309925364708484775966091601586113277384528804103729178805910126782664706908801543678639253006230025718454658922485143079553203534701733148926112317731623116271137656420071091648259992883812023846385460503010346887107749902968542369845011450545905120905000925354406668248354634543615683650391329499187442731037354489531760678140141668245405150869921322989910042439300148862974524588512554318664122743619702158756096433065521317922296155742038020818875748423173040326896743859279979864995176523670862270768138285288090317384649020443968992658639577882107301997161892859670977580019522694872511839960429515101599009967482350081175161819376812676725767426214266842507696888915919609887594587737651062947186554056390977866019819663923514173487297577720714279149453555429592314572274599079436627726534200308764811627593832933582706461297485715124440522184439582648900517704549470823025156939104312343280755313802934624593580991999887805313861089757609800705767771359392029527714662452005951842582079961830489048525138246378591245881787094264213173524240751273986837003198777580687442540940907503102201888307759883920284234285478187721029412143260748405904722092291219382034028843322666949276229217486118022055699917346031206384831798906810008918511703511816806463438276870879591998384378791743078585912929178021081771478894798413758105405411046859105647044350569387614225092613301216290661931376164074595814189314456265060158676415860558704439974878403974812747653655401632698125133477848426734197459509919094955522147625894171463283532364149288972337906960705522091550247542108477796282624217764028205330601830902565517748444638040549852106592549783502844596517380232979902357213629711567869239408867051604192373919017976516976642460876479249556578825038922205938711592723591806290382925241649517970703194102527696677849343458201122373607471958657434383777224139387074403554666261159315547480547994463754892302203408177078257637599400069762540666576434446964926138104210468844187154261379558872147646632940601387722858981698898488436617492023874264462967642432632395740094294059931984050003735085226490062779728213327402838474577311149123163425722987106300813502516047986541076055236334102792059262567075904193211596523676031852297893651702120286004210541438493230303374861931274075987704004875904544948750742077956142986484400545087732371534335288801563455929936507347102914191505391969621977765877493504617184735229740062754185998626373685574440640640824964136607628050960339517434784646501683903833151600324541599719688700851547804422342026822131893654448162077230726453669355932777458760676980624184166010879120975704749662217679405163409029883690970148362074418375001641415957205071413320982827957616310452824338832944238007199325451612043229775530150037366781754955535122489619429517165999210269060150640203638267601204097833584456565987369530588814856037314303804139861154259225608196170621452775621812803414412806003301075602791230706249495840792685655572558586861820024025158509233237424064530259183080140521633871841680214687107315809327306732072667577830753943937930821804493498657813257652745850653407319032393489166815392625952389045588888052796960628408531468885156486180055216262082232628162212528031561794924621149121979930383386002059515778432882853677421301538873815561637612635649280566119958081745664666217098015439070955845229221538910637678830649909821249468253915184003113971414031163730977575017192524474559780731607548035443761442922555779019921993815171312355225463788777600353301055995457745076914271160199609869775912511883465330295222297582896764032489732820184377677281901270483616925056313537648524058919809302832740395321304394968306858710326923781955225450646446116722921808635635548397604972073301192973350372355064701174456764481200979723574178982246995471632710087514483940164150239618995001505688975002032025201670235143737932471072209737112834968513469409713225827422379560180956378889428787173652147641887200890816825470661510262965737236638552465689599498477155563672012781888284463179499827895522629585724013412070085152857611528069378912327762278685976387807954254801686013825458982619915247533855317568076653889027141926272478170649512568002272149962208859510559777226414526663109679875667185330031958686330731448338191244932052962995130621514565304236911564484080202488376961026577476531638258273362900752373159487590497729627556219019972597526661680423117949460881854502527851635454598454090810069791952064869178909598811189212854794312638855206531279547014498561642109869077649259222074799031091867477357026306311282469192247171701679656383530343095783341890825806859349082433762845837022204422550125162912313050357948946182560711071737451277814579780732070668387686634611974544838008019786116611570386874687981651128052564085776728182241448183802273634750541149450454136814330755361242616562235429490210464351849301941291103688005306605490432347158002629936626991105372134450100882986620326853404298312929039562396563491878663135516874898557416910366864018647099711951923942120305986892580340196602911784413895822186500435712047670987595998201972335267654501593774457450934049988358988291421116480506078268147217615427672533058094566985283023446216729738236392722223703668655458420825912119537278211264309105612775091081881059158588444819786727531054052936201880176704810018125805620137241754506820890108820770188017211332832107830321606488784563872793979154560319877044866160432891349754394979825818277603281896810804444769229858124755784302968347154489398755989971685539822200715088173801361786860134199878350423028008601113023076816904858048282048757389460968566179564898979663117479992576343385624706888400050222380417988758530298445089451035907201678014084418007016084595359364113615275585201713344215667254066598574489709194355882854903212167213678666770764034495033266662749494535913864166598944312226272050492763144848633801354598456885997634224145742207567340296552651937603313294653338211612004190694828378121908303399811069377204759753635583896292139568375477200552328738120329086794043383128077830503333704827542713498388439139663095177015614373967076225251385250038806737225403422590492715819016881593979290964526202621062290331238129296406648416015103771457559296198561520924148048674827418864887591454543248614867270369469869138139965047214578696807913858240150642029964736176959440911637802902981540413778350253013221606337297103211434585587362322025233992147757280583512176694348911543647767734351856988520670076361113786533927830724406875050257925099968467242609070149192501571369548252727149244951622619411339879242278607785372129116819580583718360363045773848663110380503131211225754043263086451300391518603774563015003111578030553348818922458927639596407279710321761283494244470817862659110944473505213589921141471953038365966223045856319103525178569299666755367449013486065137624219631553988764265113245665546397504486711181853446535323353215713402275646836889612035040949103004364943686635115982017720578579387903556912979770104433100007703756370213500523978858993656582944818525193721024568288715147832606748920408513338532518521060874558734588701744692987505109034311326293562264394804173355163117530389098368140710073450892065219163982513551010772095482048641382278213810665448819266816213059221970542520053428113665342811423347690155525018971284163831831041753562612096776799871574399803696030817111795161105471923877523410022761684947959222879612803104385357671132088914226890096771931575553039082671111258273651477158318889144617907439026334066378892641325043413879263702008987008005632686981026325324964196570380835511182190324716313426259099901115487458978585705590266535464034043917296101982725032250846373395431898369349682626075639776910634602475402057881984556474242125055863446811773669664186461438494758804014141816210334741155984324296821629834567015315787579937291368836385496457463532971176712056816570362563376976674782658552495917254283022401916286789220983776604520879671399480625573890434651735465850732983021743800977607600338269280580135797486185793515211420451329201391253552719030440187664826046701970670531065575364711407067049440148963263025536198033073453523284297299162267202316679579638518384282066954353736533191582905756128258029070774452781169916658043201725080738613746012446551550515628447777033540144880521058784361674848975620121921016190520296558934184551140478312641348829458302603301957162192408255313737666254720970039802254086775616489686300258364496114077257699152203630569485678714916575640340566311635275222802849894661840395853334998417094712093332094209851141104797999776949763355657726376860110506790225311643988841367908934755830626951452742938372437748497291958357352708566501337305851251664502913160277749096823370366100924921617316559698928077783075740344220290868702050853283641635642785617148538010178277456773426444864909091552978052280388544933001093134785693528450149008170906669784312820561979364969837546540002609130059812221272530225696795793010364672864170745158161661562693584862449356250563246764207092392559115206900137185602025487303203140001832500664289019979380161829615115578884469797842308797306594793952193256210451677862134916400554841109135714423140433969138444431057203200468482690788521164582498058665739461928301026298009285093597081433971093652994096800954920763665508096037797833684493897018855852069500549292902640446417982952104052102023874688990539845877768057000564008679604650836682365151352801279499790503348770655540800653491390484760636654830057568200157393798697806139923519088560456461628063049335992532959532358103627351641790632606645087470551187475564175017260414204248004184869937494897463853671619724245061194618909456261103206897002632478009557735718575513997556540359410353636051043564058405746399935377080916865118155302402961737156501331676551750981769511157496361691648969972123771700990090334089866023549313829341045539128242784969972013590611770357714710621394349420390537849813561381191542039033682582190784806199291697011154539912226715481279351882906427614412056947404576103232350489848326615582656065100950361348552035047300022203932898450737049459542221997872116903167060767587271964296991247558194665676291843873150631208986401107852809775332364429316731394818328884572134756376507601922369974440632119232634959581415591448291097985460550196389451799590361294910763454633423791194276596647988507577262092930518819870452372113230140675332885694332382318437134567844494384927401677509715524605962608757389854048418825177958749802785182647554388843971737503906436737032787934867067740335441378692711869528083170963151366041982055037618818630504772976729778661626018708510205750381589541152620667685818245853114294416138761309073015154642594009308665275152006742461471753298589883317705253966762354603452646131524447630049576601731820244666044501284244356584874178749693433713119366984326481201481821240237893258632930885589716430809248521924884750559460521507937366961921990063384642196348719675828209493736105497578681372887740667024610853165584280019314622098987752629432313358373872638069574941075787447280711435590022336650611065844721648219426769044749450486847959628463269179865135452998854302675800263227605795189544251509818256843288265742008367239678624770865647581537737214957808470383222252166866916245502877077640989140731155098171578090826693873288889684357406665731482367254783370584658811759921512979469813067260340912273207580288401859909087831759075369047620494068861650567455177649324757696994735801119087498213690920889024107371053136027902561038058170551092747406231902826972945279686618991845915467797214474804716587339489285513932732272747223986785878019313685645026209525873657401961333023438138536713429899851629315959348162473489391488639615621996660724601501345586986164663839928690809315339039366508692924168166023997192858883808441029373834152794432151680375471358739989436094649662805840045395893041673891056870070565755789972913964827699611877780868585630201268121890491990533331014105041426190064721266315246597356956550133454435456321859664818026297211584169153903427555666334023837303676675497621764330120034117508820114490691397964703442368077986765855944148641343292219607032599696830741833560814621693894860341742516806909662758798579583022940992413121065536633208601310791158594552563989191474914246337120313192125375865389623714397650038372609049478437806725010954849164875456354636931204730452738786912965517082627255474187031276353778318629652619359737816748294390067805234392630775052225225691185419470631474484149401225668256492550757872373349380396653777421143886526707132162617138368208082613314288016866562325918949653134949828968508082320685059429039358390241782287948180639301518412565229951307975303853035836080666347543141997397509527772865672932427444077300133859300917411670502712456291563216180065061707874791355964632030116474388698395603607670386251231321015554403950326333171530846690875772166007992337810761263369373511965780099396271454631919196060068222025045095119162056375950417848351096698644416407481793591964874501339368521012393998089769255757627012036119068401973695721860285357552010430811349126073168792400004213552814158937294125299752772746083150349896183209800396792346181602702008156714789555684815582028530266774755555361110665083360174673555206645498305614203896213616253266127854304213036560097767776353085592560474407870893149266320381582007574313400805595695170893198096004324838136512794919983575895154741525548715582492112770130048468491139302685349831001719252862922135807174981450537789787730136049867683335496928069378383319941636781465097856807525020320643721559037971489572319600733534677703112449798148376105421481057208735416513360989599310757687070015568051946079012602648162083432146540657473682849647755714000332226441218859770558515056173681057200675737322846825072846385092756098727510503850933057929748474765719017937346842119573958242895188760494470359733020166181576263852068369280757642524231778272629696710845280673038236232739297244981620844627850432521038154639262812758062329668450285549799652738934505560909902160550747314025287194515559050310442529187534129710104177770887256742880935519401394147853786051577404811131502999868780616906276373867551359107517643487191316884470393721127770151110083530864157497080255549109631361929610545510349936662781309279021219244035909321750380583063950542239731249313370030504201053815719106972034346303972766471896061578660406051830430896609589919108554032388556203435627197748140909607439442214077903244600675137046244454146409395988450419013154314571057085571604463643160715104554039107304781336332486080469965004120406350379570549936482038504814834121421507902137451158551201344105205544867620514683927393917569962346506546000404681351510111815179005480627204695247153342336008148118185464987043488233287974966046161397494318872944978638973919839232873367905722779839707043960488916792405081907191684250821653217855207953370365410113050311947842559479915752137914401619682329542699032760004937447906577885449379312702246287526763089024398206069508875244015814458599017316363372021616385360063321230624934636525041945988746790954266237290586416954029910523945488182452677918137880864400453400300182111442536772452978472862103037803973422006389759208103428496552398521800117859230407042508978817033189326033344707918620453523570859859269733083611680012245147489602063825192302846962596458772722790017791146810498445089661720250660715789744272649226679748861214506694673315539203642896466021111050468391653974240579671460543386722317697161137709954416326324296420037733621110779507599932224832437118732081608531827781007776148375264021025814680919890849297814022735232986054810035050083387575827711860791340292804360574062565596018615978623845001109761572274931889499835316901166153789518042766520351239897218398257702027783031037289899298203117301927061698012580794776742136638129922011690606246581286087023797933320543411642698517272771555922692956655719837851709038400601774285922645224148323506195006282224378051524412867581323424064381715960009494880980809501889289788638834602633295672294081832434453073248806332486004652682837512028026787942374588839663194746959412070590534047015700717109900310525385262789578535520901274772695416701418513849004674500267154068146826579545342446045430757259547278530528941589588417170196313181005280918109031513053250344975524845968349796846222972777573523133733396401093858937734673039941809668565434257928355827985687908490861291237241119810882484179597612446975474803775603562227664692644206882602596305746999225423256487520584847846766313262574565720873606669825986019429534546681097351087267717144667391979708359774702225113003306699173007815516648837232207636382785923962742100882708823230819677284797777060759746691869211564503971833818785780341655915681424653816936084906711734450375643279320321443665439340157852029288075566454845574811163954198906520835590068118988192151856849006113794662574492815651989407488776090032937333179209599219528964948872346083022119674943076327841776699314456717018386755310287703405348001646691694941227422087740198180617176296211661891194099242000087669088402252250477114160950337657122854502020159102667982023718486451915242766689626585042205915253149048069206317807394462524776520835902617663851378255346988813300381714608204567999838475930508294876943035080647486292712294229116958946466718773456012612396152671295704321189084065892831905963003641746920110352007632206863343779869786977177169559698291412631497954721627907116743996470589398736896881048445808345659226845894319047919164521240739033476398069476917282197840920408013098230559466957646930858788248111385596499631503028202900204253463482863175553492662437049106845710001309322935236052349392675729821492556912471885424295299625985485950170143877765952600146165295817904627393492411835462393190667055932237758941596353897397488930558795121631693942259786223835335348363160534529521446483068705902471226246256781009472755076444089134869859542627984613008597354516981365407465019158568284552240965492067091587475499181724821597281655931739113468098257612123740151011516827422912066015284806709418965894858276968041991548784329280789439332495961264199928369467957146333818027047410212126854904341638706313015531164458865249041041129992481402481493861440817876341812961068153453834463927998560766052034903229425118381402333515396923710719978271433930952400374417915768736440157184263706342950944556300727263189706706064527185035593299254052406742322491473878639298287531423295017318659301670598697132112127952345466926230062265040081662175688940495694751964739606050362873392981113347300557321806378372577691913288187299953301852559230597151521775593005576761756419136844748630470698502761138146371346711840256226717608244260333282162346988776236075805435559793504202720716871888446985635849759893178389974810176306357914774973001295303656273364987013128847514146914349870254697073429976442432519732057686312034594767873722546971507786116569913764257648772578170863416051706854789646707248383358271758894390272679194296741491867369266530911023646639574441426282913103339614499932885551753796681345594123489913591708095674638252743248273006850741365777162291244108008600124990430012698801208180830128800617940058900968149626521165161001366044435437290945678319552784708344569182830488075391927542698101954148128661735359065385712826465621867127387281901457697266045393881883788926166746181706256886733204602556772531848114002957140172398077338079675942469317740987821570065729887972086584668768904571078999746804459486518260033711984573887175226880617079913955505761040756126713232624927684139048422233370171288095251459649895643687352982867461096990738856410478745106898722371397743537027774569911520648585261529813887303324831066141648413453041861545857640307836545812898927992640701655990620093070661809933313069469563030042173644039478380925960356970381087721074973231355526591614103914394188955374991833520252628420129538048484219301882230246490695033034981282870174907931407206046201345288343846459261786858676678439400292201633409547384598815126329266772794014474869183790481054683583574870595034696338917998591954972876105997088809579687435657851596099217892135797637373397207421925998731271664995490159339021292999681917991839696428070699943619875626253058451725300069879388267566633341050863723096038266319983893916830175021687446822190523038505658970035116628258348072654870382638218452736418703569500983726633002896172644849902106576762091312713263049106870268862914685788951288910389858248123432233943728748180173437420361599914032682372020396377129797107391276745327941280675812053866843138773119677670927065536582613163210765716298885054401174805078201298015083712633464688488040406232773903782059929505528544993744304184325596060946895030619393391926843441762805382437231652594094137207273949345265942584737535761231036829837495781786294384676658503706974531537345074397174108084331375292854648605306241750853039925155154352394783135353852707943593065139441016547901565488322813372080358239674845408611650297418976495350828264915065312566653570681711929625003846610991941067910570970987463207608230383091336097883855246947591546550600581342032544215176768293272887165227269221754716971115387821116227571278176978364658282727239608862664420706156849621784952144126518728166545669335858431627748355887210868672232913934712178173154665745104066065810718360124193284690855582336304378334067900411258034209855142402274423851924376898603544166593300188685929219376443131912342860288804458206287001011973617066178592361604765551284448499100365884607037312858065640759403888384875244106171429814109069171119324301859218247068644657994692202716038124055876461761845625656506599252431335833452830771197502944475626652547621803194671512547066131224419727671321124778631067001717645370648039639263962552842456601563708065563793741209408785659944962389399494043270387699028032376069717259125217581278976615217229021920375341243802383079598537093700727555931744319171441596525492475407747337630875250462313227165775899069618997537625401473689164475223872029812727431064237410018859393754384456529879163613326457688243656624208265796112535714284928375520024328289322159504330260432194860252626063661783060316706302508643989154965865275129172662753643982357871296937286906960261103844366264422299593694326241462642345568981794047875651177666554157518202961410828291258517593862494754333026816447909357351021112081936603660579035356311263794338252715433648457175644877280442938866890807923920989664217591721368276689615514139814695035977552923292693654058443694521377206340183070030297891969252110529844207911342509801236591183868448401973563686373088940166809322499908673065630071245093943984238998694038578588712159527854174127018709044654645887725202060300034129290168716467461575160267095633337079903299053224636672234021850211824564296450053429770992660842090463463016844967635599853456558883714961217338166863366485072012835005041854889722069430326808175358032707216339577191530033843674293369582033945827691891386331232512837456222858325218378387430123126395077069458184915660990592046917364441692044997444977095438720896954254161848740804780172241234510322915456772177821560566173614284648055116202804509476247247708108163519875348418064305808368444911300220071322317884400240604398665664993342985038956047100014453669013278796536052184233639818144365722771661266119573930615136858919281075000409169220244455491279385928676967483129009051575916490479934315287399208444119871628878026013122853276836045513303667028348938936201550983139588107094809739971802910650796864391906652539846786709729889566537281807856402125729142892304912705703535019521366861224572332155201709537813829866571035261611186106866612571024780763194698740382394022221226028690725392172264123388821135209173951673478724421158068641601182778232184359658758631216094568319406765849966628032994049003569804715636283882132508649750488473412134919802058691904815014479549322133536493119994764384892068841799064235184087644465013584161658302951161992834304007896456824558639267193295752911981976001679664006715152528773674722540396534042310324741955802675088110266666681157444258418971826431900558901834691359644093545494803960861566993385971510039617383963096877102000003767710031319387530828404912568592105367065016003118671798476712481847656373145075622921366949251644542444321177578925193508425990810905484909871309303040329304177401772563665819865450305917891140353196745714314574449197554550399499393563112790523318355948339023745572987847400089895512920681851919140929957425039593530952480868278449433069808981954032360648342287959845956319324919290604045660230612151056120213702665892589652120328291298842566692588768622823662905329089027015433144957343161687075721399250241345880729569891076715508244256035391104503635592591294920218195778261772107476362682408054105648475124619343979179230241526739624451868129407486197299617267261463973786926619381832702704290538973031081185371345732425735890367142887356089290975146903344533292610218819382083798760916153733976986704176849409734056761172144074229202619636996136420442297733995186238367521366817913845157473684041296985961141689951039248887708803528616086932545089936917565247080013503044868479862123970194955995383364967813064174136109906724455183494775769204059779254722706688340687706070958470326131827951302201463759657482826022339623048651288354825333294056448549733322730495493001703303322607912334918686897462308543165740106373532843634925860770995168272537162696573931578338660403355739287491327141923901770534701322828759412129490454668311715296688334173324821005472001373611289017209313921457748910904989264855255444660098549145251615940118872354122739892599628930790988084733485704121600386815862587508963220511064059580764575492251564328708363316432012293476836641093577912671457875650998841237424997260932195686079346842305637036342337613190568568560857256792642028752011906082504973570985212982936657887415033042628589185423484787660943379019416000611956969762919039309209159193989918238761865081239635967084318021385274967331317329358498923305865842517043346249051754827506957958281918206627887843108948685129806610323933762964104245308939692045283924831472304514049637024274711129054859324505218217189701680570743922044024458628287957046651947207550185137654034228692996933472129111727775850156916221847712657734679976166520603237374603281517828994829090111273428946854098193737071205718782303590087305473081784547541837953341696758484346983476533177090123053443166956787375956269151934656949741212715677099859793265388616183994916170362417696539355996969879345120651182387829385239463264831234101709883361650959876361144408620817023973141852103840117816848917933159403149306006359099328471624454108886589620945996821902574950548495328802728264610683316789513045264384285977824053126548896376858234894850856367224860825657419925687816413760532134350792923301745102524707682322898005425247211925202744361803988007095629626133668678151332940801989061523713925477853508759071130646343919983679197962744420965207302598750012651170254110429916373318243790651635787605936625265007732917391318787923324239251949036013021256908576392230898309068594567177840846830385328353220722053685241532134745288017589219099225654312125286127949858650879719257963906622170175893615096717938601055816646404638627615195383964073505088294191401598374678494619418612992496958497213230259747089021480075378368348876825200633839151111311346317263086370844870747919431303065420653936052932675362351929495637136552929467361231939134963115177261038852126658413296641411659362411367367034406139577814640143950002989434789912721374824461736837540694108352059840317817450382913698379874068222560899522750075969635704995048575932869400546466864539230785275569088596659340063033963571096738698085049691988011123129700480476707566719874394927718616573535039453000498035139837511978118995371197841141984235796829241841299519555515553103703714474238780799530060555908008573821841124120308016852901064735111911241396700458431063656021562348412554034805106571549986499788484082939234834102645116406106678374018605020359512516844608648631091126683148076263934820852190193441986375862285271917115469531471366515258868412013348108677625281168620405202432314838876987093011068236656150379343537362543794552231203753817950914532678121997153424856455252886350702779410054163555570132862740791233999002311865286526403678518351154829914260849307911954903479756228740638374023076402852364475275307459167303933830920362184187607190222172622854265322836761831655631311272821742458138228539573919458110341700764898892191102575156880272815983088944190560848896708580442524795215542713717150891959368235266788265464349858139306589762856675431021962388740342332033091822698399384510293492933282176467067052935634357617730330272375631771101929172776551037406763576349679611246265696153663114437997287575947603798750315782611551625858478729397987949660187670261434639444897506567525534699584937518190211163602253377204242525624382302059069859878220757953993216413370578342225332030882447248744013955782132938773322872158125278304190598459556553327081652516720292071553164627591897761705601677962684811850358437000324556029698816374383863669198778313347461711507975953903790087941079228855674775646090134484942008443679635199554986901629373860800665192825786500526976573116623461914932098343197906562261288786382082101177399076285735765043784368045298709216540379002867353072883979706178721116479826358010008382418158452203138385341962734031999344001263330209596971884569983309560121830530020454456334294448756713436086450800401484436838565935048765556688296683314662083978149260526060887993541588998290088441563366112806017083436369893808864660995155598325626566922582593622007190804166295829978725987925914940237414618357860259243778938356846988657917491619551292414930845536905788566390298366509801927957181075715537342646660627631788189698206055446251317670141301605711748461068303085659158259408367435723903672677109966603070008766079584323818519962833472398566929642575218988538024628392962816501849524485742339900347878524274840906717836904538995121405523636574274075685135316050078048427071776456278117064066593811837643063915032982559763434058056603539602725563963359549892790233102033740930816859625023800072337957121996453474379763506634132264491925789138145664982601752142602096822609102821585499450749213594126872948527994486132711337139121459890119806712263219865049629121274781680303506407025072388660574243130073864538126449204531733123477225769080200049618919210863865025055677484637133461907882747085893649998819631471559641195417177135165188741388038739404906322543019079826307245510716914594818770349896235607080152241447720432763626406798150422496290015129997102860242954236813760143403992033452021914085460922767235081996694895929004009038284610305964911531920842515495175016894955381323024697435618231741831998291386546187289819905340424803724585563751692246717346596623933565485702479137003668666469099129741000903129375238235048978375567882166977192630528359627105973063739132362690474790206454249968852000046665548771439987769696423394602292719050047187484970889502460882923899779768868059724780627174058365502999476770587444965578370680456517474616940524008291504818322885335011114576252626278340429096298082162958421123762386501537859589385394231942371825702667446085920408978063240607755153543411259931931134723261894966351626348340105945525532262950222267015050646221504687181512892645055903800855669045700301951361165723808438052475934789332909039837235760922404002621024321438457499911166310768401735812002200182928999703371128740905715892162568107916491496060309949143642050817629506919706956139879054606573877732596940698955097902832511987451746354038608871545888092229496038027985467982997501770803068545224543658503978102955630402504308693786520991092516304458166983445254728024352396694572030729675627516224495667273167994524006510009768457075857175953240565017430847458959948853315598213092899148927875601041011170085435950853290873098914550020363837728801534114970328773195815528261440896858413368216360450499451211973175852039609380375187883385309540847265501776579269882015496728140563121550936654405752369410265876159885107824548691066965174220543096182308216500821642971098139597839044089836519902773892961049944249810799187130772278486670978734194512928765761714028941788401512843628885482780142344181178082867530278609013676485490562122646735539788140455605641653670755262848630227083180937590608203616920109413391618305477174225821925623281685851095743874319037423782838849561926205942385359406643361308750076360211049107470915074245812415323725082146109007400768545848581626121967284142962538152792630877576856403356037627916131979568532326895895421290145733065396928262083525508691603973276852198322176886797537325069285679041635585710740539251066259237843239509472768210114601147633632795250011673708225448826181938874333414513381968417994671114343078900885543845164824422602523280368311055881275525492423744456806191233565765999454620036529610666197781608243336232538709614361100314668447931520306669257977843493860720195245874280999951355199882522421083586614284456428287319959787104295522387145050416836481322260430235912637400674677085716264146194450297957814268133945455416313573762424980657142314354134692389781701449153508888317869501898818231268682644663783285122927096835087560688858061607110132204757913480867402902395265047706609071182932654910536378566394624446914670077386946683786856328373295507067031437423239951430509951886085997933884672167827816065746152936608821884609931613927866123935970131678924506174463296082132912521428167756289800532196279368520145343714782231060738737892977105414339605869927493443088745347916146775121319512110625849941063753615700631999755281048940341809243749274651535581752465085264915945502306972408916005052952858247851665294539363924151840810030452189475966032433533415497062439366551116706727524421854657177036639635504918343580556536450606338255617778388724138001131226634753214272787882590968813231041808989823880019181202306298022079759585529385105251316999584079088356781512234892913453427417987113497880153191099141840300650234539163104680004644620832335908160654936892282526600008517209135254907181150980606507359176713726024445126610481330320416414075360620317490323027467464173516688439460122308614959606052813237793044103589402416671618093581369595710878062930004919593219509693777223023967838856350298092482981518217088772764232557523953083251568793825710534055119938711244870838367555846364529622226005807119482609402905621293532908884285962117867361640473176532201121155746770655476110446336163032364063944840357927499620530050460272550846518406545197610115373066325433016155116575681051186891485906202037297838618898362976300281173262886429066981543218561856929934094440882082567501262438865880108333311415625671042647804844329649497614078326690210540480443263856615463713568568745412314373733552250397670027122882259540063525078702467326387882666248727487236952029978482139511859985959716298815975432221461264728244893699018406519307381401123600332488874926689919344179099556796061309503529896372869373348621152728440715319056304004512277077427895330345410186589577126484047649831122890673508110646065315146583639893194111429904759779481172110368872991202083649464986931988832881921926057703474363679057373815875325506827727689993806172150713761731196865426457174004218808036999012639416890133175882647315959149727592454245681580796481507014189949835192037618802272714144562857233132419298792611619477168308213193732556352607068186876571823727975940894246934583122875623005372037431310549483652613420886863017405546461628182524037790429021435422956942649720678070752375086706878981810796317379005434280674837410554380480735674637078680728396545809952352181426412515769989082994161334313086838448208283485364413794561240918520935754642733060130170878087182883618748004619074651280700091877651513696706942144903014351192629124209282646135324392741388052510706567965680181039162313876007063017266477176182251923334782630534432046018105004729990672644763243284777693258685119371184833103526318587695460791792939818027038824001944744979200959960847862068882670770501953138458008384671028614692636173250563690785121180252926435449913877604484346296590375784412343371041413221088061895822871159730295205934998817340860434797174703411010705831195076747761088560608003567348369903709542982820871273016368192100093298753963120662299623318955321273539062595005792208582677026626852233280634794076831193822885439492842390033205458042682812302701305240692378376898161701558407484331199242694560118081354968521774759878850221419361742298003063089725560040797683655448435811988879955027094530146902454921012526662526679014147493510553312709970420518759030785394719919659099407546342576505832833683698670268640150121476864588068070788202891376635939773497585782884837240328526827387603423057306134389348612419289656197114924850412924964463722060616329167887821677896970497279093115477138141109836959890315834924394916920771546660834044894686613294990325229577772800124424927622683855672242655001740755779225085300545509322341473246643526138794800834897970025073493246182628456045523951411956744365359378828180888225261310261966612712850180054845619757288333699938357796269402277223570962553897665589066174709303036356872444766648086492891297892121325219726553249473915231291973778370846866901301870926219053479287397033941070309757972096492064495335161591473861227735278122754674307254709445248504018370493507881047277656577176391224386526335938854644476768539306984426760541160244606014378292266212354400803824708576938472546557685779826264437825243386048713702994926987517232251261533184405782044917986720891104116313148572875212464469533066556858337054842281606763991662423412667964659595957316996020408769221381773167902984703679580173101663819794029425474095701666978479478201083574409638851884305685866343510972327870976898697162195688525460181390748558824506244540322140066573117313860270680900983808622504420982416095627690888195757388345332129045723717029341957946341692358991514096103038276843356933995566563573366421528729479654222113451060019796235242793535948538353405106528324985364417595877472262229646078045768806662119733821456847592460890461263372471500085587064431402842962912024528712667953306523232283867718795061250815388809262243322662721843543286671317177740726468127554129073857452369367625556101249156446027677727742709930144150440958398859058741278189911607976149669616209260950219485255874666064406933803622178886718376478135202393888054503431782597012178614910109301143678053187573476419058183990554680814426211299114126856907556718807552379210383446169346959859976361080487296090059174254429808068806188164050209334784003056356483646441367312983897313341153792283436986251926473499763661254443337956848225154111268242794370262458082794482612840812906916721588412852893042468744915275105195337084211732746782527426825951941349058099532857361566596970691356466101453261127006379479448018790445040546542378809745632366137974016510634302923468702644492816967755515897461496924070596740827388527413090199405536004615595800628402063663311649748866750181738484286162897877826246833171842523021382945192139642353884656798099061377167788239480232497881509070030079396089692431958782387159150425499062765020207782516689201487782415255882284868664163367390522997053198458541482562296707827309956210930381905342198177400265729757853905768182676374793955611345589949102354379008784821641404364837273262908695367244252534062051977237386664025421925097885913337833572340141893937622047268485143169727156816134463075434787045842181756933586654589148880061456546516953360605497456734276721461144654656282766724663428598272313951982963744574013544099142839449772340520345786824528863385545170233702760480064862314665424677610071928532546093141573558766536257419966606731044596297707259298867590931126702283330647145018258951795296684728742174873507693374899968486926186696709935326634732685111823623078092423596685072422740320343166719693087278621914954427671601072055246505787324511310969336987564001528673587168530617638961405705583300849676557763910926717897672710910259302590974622675195291581855804591844338245231087338616883760316883555562375243371309204302082441052035837171045177499925606817391120255993164119437241714484492151588094606319495918867861918680007241574916558107591247147399511367814628580505700368688415551501552636682688039915244152082024194459818502885716325877811076575575185603003389928977205537248939737517158680889540161401032808898541574675335647053032530944836821495553554499706430939478343495831001367514518426839575316617168395917868402283292651142661503424027042243368147793336726097854655535891978442670288403956393826265830646228821327133767623924646259743941884344409357004613504461514944766415393244569668965937502427568187685672912593142506256368485739979099834904607230343484905582054909726854942283757420545423218488738123774226473528880348305128647158794819773127294954693323912903740964855438585875853338767439401618740019203939769754006961955919932244840170667865494063829680274869619597141856888397931088941509724632641821402247536705822619071682126160350116050490749149856873859719750138175484102658446659186448874483309022387991528151503557669305463426614889235131523334414385334088323965028222050988199410909839102246644135171577627350829181506976791108529702942498310767859580837024760586333971913432977620932625166311729622545611510696772851301846770553759354105078943118759405514341724040571362342393519807053621277876247056855917694830919158453363312057120729810776836653758856560467924563754416419146265248062184786375887321338915837106113283262278475988894455011367626807244990871695448369682749964347799287934110836827624826275842992694062607050429231840586033396294071328996388730659838113597051710697165585873451791969429838138165408879680040489962724764586887015576509308728101750974319651059656783058986499132146743919789604084236636285889069676700425421355135593193216877941696633261431394699852259230082230336013929387931907717246515379899815664211324644543555736032986905683883851465548214153409645043628905943347987528287995973103488209598594110906544468491997517030265068266302570839345121529652738649016743167027241247204100402132442778155691483710134118929116974649841114698530073035739568862663820308784632147202330796001318450321763323069241330218588704375406251631386936535412971768427123928971221361538219359673557429941217355269120918588479378028292500435000405051166721680464689437629137933858953437570198629385333188060761003694158412377450878029334130929371666486223352618752314349889534415963129343226302633348272109668161116283042134637626703409526204065835395219076444594664753764353367172835810101148806152555979109877590712603995271331259244516457618867054814021121100181000627661636639446516585347667912901085156170782199672230115585929813229990691276667632773183261323859330571098262180456021271856122048550083599642345597229220278451065614341735339250519780831316137445132687439888987154680502374880085315887876072263630018124961255579079088066982388660575216214259245220654454454291762103285046847847821438867557787024947783865586740949106401642813148844239827411307987770783831510371233705573772836486519628649764859450736499621630573273340872473534186714169289379840547279779276911042403136152153556672625579470937665925590194976425233355577769533394092803901466757296130061672841931854616169151344856449322442149936873014591070283071704194943978038298931640581783179987580863247735212084053883467605384961461615271781294352635716450809821736574963433815758556126232274212390129689641917139799141596246583240385721311431005060331564128935100503412295645069482780710665796902392509059167229752135119208489102684702913706047630402138583286724413549435215971393054309566801133182602684489913872802555364625261087946739933695202276254458988039282213432583364226533906354458443019731190630683143289995910562444874940838526956137882953814235058999807764155281189207630593778833626884569464888149865679213855929687551873278249562055996896675207678783963153295116420128712413959116267752965792255006749524326651605324421379099927643534409043563242617209444936505250960059583327029568696963807174721683682515457943263706382074357059933268067880338218800563480419373040713514712970029875214853813365260836423713905061602279091969604701718427896731416200774803374486849457107039273337112028811100183405751547943734424200836631134140634458242615905001723492669627672193560446960691597190049762018151360121507507502462409726439254807817868443907063425473280394261621968883712464897984390446478757220659964588412392041753662973470066036858541761424493870556750035795829213641651544955199533296610734142454231306030658356620031108345429037741594324946955873976213809080961224965737160210761245087419816583777146494590762472755015987657135374012835644620615415151754198258272552734802300913804898933000702887867864208003727357110692461236275494697179816638508899101525576638867966238667562056160929236280476911203897828837685583903535630854830000869686423858033726118066473414915088690255462448293049538243514422698838498397378192465269813016668539102220108319600107826511335187153012232679909601625428283043468504839261684378795785955442515743287295631354393864821824888318179179286751161539727937321257096007754558205328213569523302602746923742374066004294072043985701757656643992215462050485625352436053179225704917904333384920617857691576367939602956489240330710094378035037096240924455602188999319446837219625117760259437570875985052361658951227457096231383156463340638368445152370637235741785474495639079685374102024220980387125549415286515299720464585767465502998541334349713903089688639390593719147683955934814876181800047259571268993733094655530781455656733913160382181446903620985407336699667110645232470955789476983838621178031277412733951952908352096997800039620195305561867951046103579509431915910759080869624592669256550294492298812505229360201644332410396650584730111090460636053076404740640579301557100355960002901950822241531852416598105500768188618940763755087652454098208962709984583051056929610917980675201079168885396638401794654159934515263658029308283657363234418257600612327182876550028295605966673291521334343077075820217945053425736216571353415796130746027759676531755099189854267438238541201453419631957518715144580712989468495308523079195100847169124759419159721150783438618875508105132382424176741723616595942492852147062875940176248407496101467398328793932118798832791961812756409995809431299680170411268712357745994546822430680678115641816278862253342139484374357549620357149506568205577592269455729643534794436283469699430058050768856376980624655569180338226611978839412865300100760301774253973536376492133780499039879038589132268276444654444474451706160917234706587880037432217918613784425256201817464545726733587718977644868798868438741133864314592387793784824036206284818970812808040756932500616249623711561197418650668010615094346926113882032487494848466422315695811755507844461485224252396212354714974019658724750235619641485003425103039475094884719989922739230918817806472139606749964478157518659439169437653751825972579209282857476958856816797969738031804474025876768785146541753239738922199839022014219080712744184109128866845721276555895993956717102682927777900403648572834380694044619201589722954679378044780296382948799010437752017220120365002933882563445167020986591539498428545357960136419959621177077300197395586824292317741652166924251400232632749544780988876156061207999909607532131172264831129651747550668527635404793218248768030230371725953051672112946656033687965929972418800817632269077082784958990496241885703105244531458631412411296033034994901288835655290587196574926455017972483178675700992306677858673468740493432198081982486679226415800026217995194269123349792043106965063130969424023288525310542578396674202912697183735340691303730826776135077054591174367699354478123393737491940189294353557683287691969558558154909991254422476104981718396265101324385387332420180358169697826823149775306841483308330041960180124163101222648544164279318437892281834684469110590811124854195339957817713649730980604274631539519182129828900758919051060703446923945349535939968836357850930967123410231636311221657059784755093223321192192170624821381743177892229288871347276478098318367852109503659153138383861441442077767194034368346025555550335386041959330490975041420870310683077149645936730507218068588209476589399918467666525049168256568373336536189739216232207134438193340715685207105370009970844192352814273357460819840606166273573480153144523757828368432761772045619149463081975555301158010811942833661353736158844190624488101626198217499783059506307194870740862194124229121263165861627574225520686880920107014408175853292031423404404914621255196653502284514240528185481245497713768501482953953587170065678188945499105463761073637247884140790033763361594197404915504081328751027047945118119125864754847547106677697677423237377278398771627814331987654567811884716638189852601108313299974540208670857133517288680315168332971824392709508826941537852214465784610877982296221768657186853136779867540985765154598521226649646567959851751267238030199413897635277499132615100634853842866540413457608783272829271436691107650452942158218596141858550885126339900708373313608419017633798363690197200237940739926302181756622157103245678202207976396339310201805668104806292326998192869923324885824285313692592911962916916894616260532866319639712201355054974722935338096148311851395970256922806542130071454387181186737454845632169599643187681373267865006400749027650294795750638884945066097015726734624803295719358099103584718276164062078646180102992413489941965752008069375823235192834283689711368983983780435501429659668591773583521820109810093465213249459660308973895099107177435697053071096804501676676681224309005648381487672599411808083368136851550824707657056728467653168017377943455839093078977139666124520441367218497748845584933406867637933804071947084573702144881086537512425161754056462199468576983701885156335077239982271922655518182101777286008238597454128547627136486411942591831714540046401927131016930190077442456711425383418835081367467987135960321206819763111157118761726422056450138530063910473983950181343503155827691632790690425366112273596899238481156151766214898373072672166261148076945830158183371679517333718465122104755589480988444053537982694893977911832929196147801397954013815628364795446315184449890873117368425255289375164635209682714633269870234453695922668591964355495693866320628084811501177360237812999754932206744194915475853676591235874564179544621109467865943325406992901508695456124679066599122753133269154152162721682058086578614600035973599734187219637947651333024676311221039741902649723271462409551442922832492400804189132406340564078936693837122650114804110602092944068326345506819326339434733455903696199318915391662119779411269363803541794845426273697317684000561306195437684813859425317582123165578334953507695221553900382474602550420374909311255558773179288369531305767802099436830680097820093821374715529716687121358757068016852126666404246551561576247498039459591262761175476409383154700384768760228990426551569970877141090114974936360304137755252079406657578549041462449874122018544999234499345278764116197279781340603933643539747415970015937354097618535321977884885453795092930435609725509908900984095555085513774030029418274264649679005131296179500994139405652440246853499596337785464232097093204658308954396347266194888058881832694091362221157635608816914780787111290103001817504113310648985167670983108906144187529325475956214704800619803115622960413928153671505809355640819672076512702285043085385656435371732547468491092262627976838267771738051496856660371870216722623789388761329504955281001849539705446585007627741583033950177803591811412911906108497856586726466068674453598708494032287012390746623928279207400714272699674757846688907198807408761997632877444120465642159434635359887807391067061678046250278299676710829741147123221360165123678409053833593888536896599719730904664705272770007753052523259325367493942534897712160668972320319085441881117671275925894284545156053795994942148243141370829730050072082184863038330186088777152667802809687534676042105450036716826570577918829729993238242711469261982294494692699509945216715208615385246684008934727690021451403555442906709435462085297850570266343137753203913681840960587028104076759957149688254545040145879862414346586801288306616913850231729637076103775124953562951573676738792700614636347849802329017619444946743137902376273136210596464264576838752112103473746392255114640917142623210457801153267490958201134925008164250700648302823983387642408635450542281802102293629328276851437674342996874795769521547498745911695659702850990212786525420666126476651309982622629667341343727741092512860079958448932111237481843826578371290078089343612976109182430756820019780129245235434654866467040912996590553314535979494580625249952499819200206787000989062814057245779167805532454801307593526969272361131396378015399911819029194974414653718023382779218344511814015894254923792520015197376690007049605664221797136173757763186587722322747661849147249417409317460975997303781735180358222370136966270385036845536625486002145233626268435376922679028784670592423296198701445109170255923643557939924587596363421797484801937608195118298182597840000565739605873110405033132202507657582523931796546433338457517930770198444040865949983071642063628759158139570659715375887221059642696223897546588306266589578324400148660713958312118919746044828759593240663094240954737703048880303914783796502822151897009537778231016617471231665841869180579018412847635834977013677488737966233008257966765187787747538217793170260349992037856727202731264298882538645226266639048846815959624577518850734115286085221191109833133553144920363519672403879401047630050097584448075466146180355906582441809165789014420515208503504995269196553703467688348700142701686025274190981117632354607481493152087331377319687336451006233193385947596109751841226962823524723967813100769120406571841087316815316236609558099170549760646284724574432354623250915258433335294127622909570699876371590463645282663749693704993881924019985584115646898696088876663160491007753957004068617811273382491496649764056197008628033350485533799832601603849147625836006246107283873221971822721543282342391548536318378741367698575945553096644704294490050917417096363729487491816666767868951540713503811131626436230515512314223917822554293986983716715557252735373537183402723292999985081122976414712228892163100914527152492701895696087383180010519932118491688306475157066071503006353182094625538720295199117153824332463519312143440395857956621880826868796761768732145890056118235797465986691463790153325515267906617708200444355953632884848100001102812769921407131551163128710361550072691672933636284325800024042410737108326249806956217116171987256671624611996430867761823233837948184682637179988291519372185801590104920080060435187698200086573359661211223823355449389885393644695272094217085320352591406184209071109234663708713536704295108013791166795506793843479901252436914208638836415331543565836407039664128442417490254671188295489015064111517354845778173567482541409747719420153095983469757643346725434294722303124589024432290039007923518651679502718397708729738472650769572754183655843417803290937754127675535384477085914950607626480936146360354312661204773759224077532614883962294155949472890362366857617589403546822417405179305927430559999017544557947848151292756260363742156678431163003020255545979234395362671951805042673162434875798784171417439705628877169107533944364962603210798130944211816415695893246041571832755817005540312490358406153689228045901755345029676356033488659583327634205232276351375982873098484760240404995070020404424562737405923576534108539384678194325044429607211729370090319084346885773836858030979356771200646700658662286794253368668448520824791046602854996752030848169785063171156722793974037852343392324403195054829536203310321998839488958193450353976311225092196013011585224226386771385192405553075649387760122819687408548054842618017711221174543178741226368817836772175079416543908250747596659848433562013443048792730768629015460940885467320857997546370591223024446666790081548256899954046964922876294043600720132719686571423631047759721669212769323191877459405335629045121687601556086294131240354437908273965767720394062418343010216695631242629886786205312715875290385895790649167041951405197380664433477617590264986195665115178324002353556024241625228880710391400874965959213413832453845092267475746706429922085933613620330210209132704073338407957469972534708280875746383407372493591229490488703135987549397223454982660332686668625581237864544199629245162793607360282640682376196370921136975227131765866125600486079450210841617984559303103763612271900453531601723959501696127920299561579406977991979519252124280086542329437936091772045548571618621210298579316391809755426087395228124744851936595050949458241166135826515199572203441111279823509381031634690612900992869774495569307688197491968300887297004487779920356378840853141785912934283656954647916017610359712420103575550424861266799561751818141930470054887996403927430966712108821400372279525595651447581769676991543380866422110216058338786500510766420877487479004816374996263387726125375367122518326110849676712484972500725966979167173471209812528575399887495134177390207328748777363453849286692444497567703637570517222939319095165529675030409175128357333298496952270435065641275525337628164798154514448622579012906793513701147054532656687935617923555899338745855402724018342797288924447637414161162543363664948667251001167119111965635724269130163773883868357102551667863203580714718918726250562714878179703573424153675632245473758599368349015897858815603245668996012561315228710689104600701126770606915151210617229670615749489667363249214519361735339357231613676489969145316219231676640775342064046262424437293031439582140873937599291547550174399218972154175835003157379886194581460544381563353456541240137420154644295549485068391723620314291071887787363372410097411920237782847710955669291257058793868975918683466435846184926772282023642317360321995830871058428001537857805720340003463633305651045589743248210859681937255607106511589798280094289756050554843366623027260051723060191447596973924293731013397788501394405498832142958634415322490471487086684568538796835645487580895246878528095131739037965668995676472470791464171685936584566425255218353171937869617771524361596621258885066406861675105329996731336596274095193882689859911177401068488319876475080387763073885157527926147713101217498488890400694647593746620687728707204666667322028518927787268484434226896823253982965282546215210142810247826255341466754893445930358534598176098527240020228100306903758150538204175200250417544212275989008485731063097750436386634214595299151585908527976337435578033251426499767141174318038955411740898617394515590958008018467005644970950791069484624945156321618431592024806907980026774411405603077564852469877337523192439096991733267068948898540309925663066552963043060623254301117349740213324236638208854042232941889000726803526422452529581171763442730119209873951232363699828979538069964318681494632320979946586098329408727747388163344916094426972958537389546350301180976182654755381335984452812770042183423810992577211283705852260743450868517041120913668765755112227603169096219370017452701434587522999660470716503449195229092037026782732370397269603847329380324499109983651493578645339876833630233908342129000874316804676521193748142843449050872634821745144234264677757480492162175068562749505517650982981552506944684898916427342216354337950326692696721750394891262942269560009119394125202986284772232620051976397141808078046305646749014741122843365035337204036947483339377335750889007901102474700859106886792684792723531187408500899875153840154683790242672508219889233641745046257271933193633017110421856927757809678164628549460220271919411983498426465017563731035402088487154722967056787511059465233732250854314642583028376697799343640870779877195854580725957842105981682479079937822123892151438405847493424412963057873755829219107464232810930470485083669047655441790983587004415073307644499478908404767446369464421465151532385338489118952800446576404320697643516628481910021560371488912479650292295784388573520892260175738352944776474782658281701331286732567113907542941523651119656689747493851348738051919582386185545352728190780221197674317077725472755000027755234376956619911080285894088517773927270560110454215787811912844333202946177664440282509093648119827116271602965726293398884192594287236519772465781047426316784719326950758799579496186636727362855167344486498282794294487269062660968090740685033551342611601554522035506154464210213772173887835098305494309793181665993930195345714407139467631238213446206485143817398760648777227242992558321574652229267034840750324680955358454853220582918494244226451285243800337187143920784696617080812267815776216325931688172450919215043367568635409277009656747007007513437361808944254130524240661651290605926591401463552908079960818780451192913929628340338657497751698898865143331850871167066756260680494094916341240921269892641124844300628529632567572562194751554779331252990162673328293174678763721857504732417091260832320670087837929334432471744274098783056921570803010166247960501917379519981369994800388839747372302131954185963596075888498388430651696017012650873176783736375179863656117612679393458013738847300663502532424098594959048013330975018366600971988299801856993880012319388357283753166793219801345748493631540564743381206338824974560283473225290048237279891801165917260595673680445875571466943309933221644779653353417068616581106277734146269000264484469127259191928044202352643967514974064596564713803195266478490266209382098258462120073542910172927567558998527461113542045949745157946071683891875350547784539398999264743216481455063841482800639401793991677118168916120684091446991939282514906577004579743802150294878965069141284839407994138171110180860089482396551255556053192907414939025204945046866474616791561261792642268997060196495827236131400754592764232391622661151541843546451235437369515942002579799589271144801087029889750096077042932007628285461091734317162452167800902392691718809998852978081574216880856600763009176676740413402370918220723676537329146875658593890159977651348142067250735888096777555767595798700348079983441705663104789141176131041327215491137236410007493215047081615711917211190182116877631185973747257384335581868958285415901872382796618511172232756306101174944486070384126929850419267393335834629782026492178763204072252383233687785859087927267694995502442285415721392849014805963009731503192752625552160447725015732776555782506633428525546123410728323766590894446866221253419939499385610776308558197900754040761955221575255205826567546211138515875816968389015914107968118905879743207500003953302998765845228231121385535763320153072664552702439747996572811254325176216725350343691458696200919434385320059319613199399347525262189989852251719630712037518241936059912514594619631293431613349109879528443189629758953456521462591433874777187190731616989258748142152560216848632054849467175671307521076150064808783252839920842343454523296597175114081793231499274113760795031119769470284646320702083020541243344304671786434582003693302683401013392334445399620486564302937299387560569641815059632653636509077249724374830612084708001659051591371469984172260296527104690926364154045825765819326133388429315747009434477424701717137893926729713970774083012596041810455189905554700359603905273243850056334202889188568249439232499966025095763747308567078228004034561374692095211108616014976250960209804199029688136706231703682654396710292484183403406608102613797946377193734218115967828769329547567791956104686423387814323805378739136518123863308703468950142039793291287049804568509546369407849404572166813340177599722013027088724073406885883355555189382895423096048646691222899809275715512296478625311450413590647787233102096746323480428294366129791490141461613557825457130033619966653207836244853296753718372286816342950545734219036009221109740569503940089358964431934900505338340892080775661115420921502650775672104539456438190044102114718476565526591595570552117846102574870987908476895300969298862522691304543054505624205173039306994379660784485956394683526180677386855931287794216392415592880748600263350232530899706163339287201661915583210000152212060453030358411638597119082433770834321542550818770217440613090238278806070814138816878934775331087936455002279335365317768558476587154812961367886829733027893617959737002920392761193681287451529718117298300892667193900767174159697573488555022347204544915346489344731705777148577548435698291284326311485525039857164497709016529018443071483275624374814706958456330961863749647920185196442359957955865166592553332452635722181274303315029456061923002054166172784176111096582068343737477056317962261811988112937017309425364830517738671836799355544001460251026435046284480229881972610192345355184968448671508183533416918322949264437759696004707527544219895246667221161380026565553139530263664273001455508050142158626539439467504449116794861083453658208603154701154977276482317695028532896208537990847173970767522135244039200849839016071188171894637893407122008562681595496252223403599576297246487336781588362857200644480165234981871779237994268764922960875712316054880929576859409744134526054595004135468981566056501939959989918241342558871906598381319541063757514027389536291619347752218482682336742670415540744427709992392821461363116447465997244839226290818658759244788857043060234342365246446578269279434637338820687125302446340855255315408154031121627778014557732753436349624325072361768263167406556332954468127746391138825869783081714350579521883104367784055039461150787586016994431387003103884985444591161043240330996903433787331588037848627109721499766620431364380658570511479515050923696867729757836666480107424907095472014920156965874836535764304578321651354269721632579193824684728386690920746163676804097352441187933023531154844354269287135510816156126322299618310579402170070081784781301568982405830733604861927317105701989665834537176317360041801339958798787279678574973944249821968970114619608978026484195710864463078560720586175521148722311525976154990518519961060593063322938424846503225582851797980802148843657113986013983625694011258189926939450680455223449040143643187980682470823133260377003128937527118370316465418742329602729823317089640821538275069685516638777407214309676581607710477313997567480411487247924041386177903945856253460499998454755931559708740601843515994725747459239188400884448984123454719078201705813266431043983771154502133221385989244347540622185756397441573239236305939281418159831708738233488191092013721156354380589191267974512294564716778828929799957885899007767372594426149211897430694244461712997680584177798455349445341944557503006997326773079935744880890591228457909206066975290690652557590296930808695582802726996098512121135181995541013002051307814366674566692874922952023046938487305242986609431365148922138133848390554561020105732842971087491214807465805034227417971803985973004469688009696301128707132337367786081412869942242873873540701672790805164702626886049402009785075410182601526970327667382246633572640247849786156157735007905154356146855316936271165085748832614200562218603312582698399992313888822907214018033108720455195075330469424934418997077917070095088108670173877097491197982162914155291833655856066350626947677029441981780638060101613643313200579584309809438007645197392559641561567899971500159766529735661116024260752297374485156944244051265688359502785309101217921349867716857139616998333995460249227911456151798123467837761155014877075074670166685986149079537723404277812485173866573065045894129431188195069686224358313600565657000435746413148882513251444843478705367924977601744973440141335082465843989894522411499910991782212598796363460929064911817328170257123071044524510402346442085934270081495069687161084232188358493354234519942147346349195376337490205978356125353446858008056680438151595672097260262650496283562854117250780126623865665389678600323877302642572395335915764447319787093829846995207826679990492580558660760069844203430025302687683278281253081876634582411391661307468474528717312426563243582405603556005565978401733224417774857435138439133717726424986714394896946140123889224322736562836159189076072298314433254068276027719910450040188621083956374196833843935752660898530080228007318330400841782113310046313730340567621090855581662360735269117725466187261531008889431642185317341051863758906398036797632067320192766387462897657354798994179043160205957090888705514133703528015663911064160651810837924458401873423153679835860316962741048314998331072033519532261090369014595644647486802712058853166888491237634935010278247406535429139625309727304506026661886270226394028017947573749543548256358685515388074908039015661015690784559353122967360140409428544538576948881044328549281057020985236342334145335778680543689329499005318316506235940637064282353209887957035978708792919708123019398369926249599979750697938868653106704583074718409012008757585377504602297432686871390723547996014477161311361238360972052850473713070948093210627675176963403767016672882167801818198571424773582893906668908161907860367535408831428408360221136895941576033517036637457664430904968182555957946778737889686101236149897912756236354417380213858136586594755763964912060604714344823866068680568108249200949831089012177765384019546870396706074387531014376905748407309733218303223498457718212786727940590933888678012830206157975345793912822599382843955796635645499700660359921091567417380376014505629619097666139071898621604393932036764801314292843013691535434862969125027804603012830383351960393963438400991318832330046948638604731309162504460002621711567137753991706702965413117585244295585789278284644912859309745899312628952854908041802153944934249227958581291504761061544793108839299680675068328202221308223803842806418072033898804333861897151230543067967916724212294451253101264333313948949216688386564990757230284336087980676947682880801735211846972195673558225708747906402035371640182799131353120977535039125017572468580486512407026146938767191831074000356604400246485242464394298172449852824022209809906516121720021241549087566827713637564888033342524061719829973658056490346544932992731368189047563081231130454809884770482888365900915767690758367931946594231068257062763061070388650159810674895842788438096591094147885258763003326015798726060163789737256986871762313970088605927410346433698395579957193901635385830119061230720526969586717692358480685543360707299086128829767677717983807430202221454877620510200285705508074358015564866287943710636991454707649378782828233005932487867422437407276375669657383543137779768683179082931574771556361743830615845976826666150251051480657904685142322467907603150088226015052033958734170746766675427866347638589799090177122917350980558643525036542736281818418272245640083220462697903351213816145723157635877891870524821201711308079370504825585236231860257741402610859221707605246596143506550388029166999116459612953609541613848567575080820627236165837728801012790881313404206710248711153374638043743084272068963883396453467043777573510674803089346291516526353671477863781915162268641598289762347893096813249870505877255673776450201773224489672276241168259264251023501573091265741508641144897635411324030677805255376085790101662653404500848016694821925170290855367024152398658451022540733269367722045128004641103526612297677945613532886458696515934674376041323263413907829793041025900431295216949684076761385288572231169893132768670035600226906205206303039254758440176598705538073552166425920002413690337525808104096782642130483964374329544542889077133168079579084949933224570694467613000944274754807774401866228620054939332003035224415306496634811810765903680666696511293430007539278259889400960166574426213188874037658007378270784561023490123462457901607111696128032997776179142590898338797279249071742631093582542905443489034388414976329107731380629733368190328763578267595099407452753299986109193858389805913584394416111443604411775027876535845861115840952633840669178282604085313202872241444491695771681345360885253166849130670655753176445887391983293593065128186238794844594247201490548703635767660902068939863160901505287123417356662634112265270759813395585335055354774443231902910487806047770108860262742984484413804011225707603318979340356981084556888463254090552029432659969511496975437405990547199347393663074641246266577538667362174754267549256603501919874974229231548804368591709874557613109992563991577118594289397692225106378001686912878887022628394002707490931716477253939467991070993870620620325752669029420536467105831451207619006091024358542315769045516377058225042935834358719158722498611705336133570792381734508481743254464854031904024279598201700988435707308601163823458569338332770239500419122478003403115852341206302120977391923473818333727600593737685974478967426845503080577094221054025337507094606057191026585667585310436550648493388153318905219552217229197532268279755642172988799034601551744834315580719127727609983728180260328316170402651562338350140041480467496154244416503284970446766146140293559592158289595545556040886336634554958332809198258888997100549274065675563828997568461865441495872526219340532806584589088112476344874825130818154473773340404370154199857963341017637429600620875980353386290791915550157945494984313432620016816470182705512067270087959391737314896771440172036460762620937162530564937937952664974059957489196230428402785388463009876168338426231528832713205767961591726773576315554968601376846549185831908919100997525673565185042905002019925054694160671477475408522760927690980172369582025887704015118565127787695543448582586091149880146058463680700432912589282054647280360274090558599293108579870767323844566359659978865725550108003275206375113317251650529179827497818792646600907638954338115743544241705602883778050641184958824200633024352275296029494737667278846580403946991496632990354571676417510200078402699633479274252585425478613575189278828954998935855794344099933490321709742965373313132936456742023923276387741337320051961052811261335261011491955837384964617186765921733835146885743405051216777268671808576965590537455175640125205796287141125730290653370554911855097060121038072982070477516516598476036452022079427136163777582658549161896300232630139435865745392170883113548761898395599903796288651684265959357725537183929056829803505240620325862336091794227299881724252067449391662092332485727114196162662277855937528517534930243379839152271355284674727910071437637205929378837316709020689144394273372480160325066377735039658637319111470757698182915004101069013369310998358907452448965842451403164985109328635857388892182018346997256200632628596933453829640221492036094750608560265340244627473958823877967786460227680630180117335577442845948329083272786568404174384925354835884601003194633906622793844533880959124955653058818150688054338165576352147592641943081304691473473247542789695344623070819394937894882185205130775164573720288105213593380964281840618110626134298386411287092006984980029364664904336049488780250708075279765299919578867017127877161472539093511739423285206359083804652526426288064295823940134581117547594301663285962877336502388938100802098212760750534365614378488532519519519590081295328353780923362510283202207926947097565516605079453843958460241227959280989699802624931431774937612454017991328388415696407591770455523976811612705006898500326889728946143550955806330854550858487174492303964072816747049213548011263414034995803018926720870863451223661564501914202821048778052108702035760749310924322658431918759268530845287810956713365066191980456569804414274731507858784099957890270482921255286486391309577795679732333569186501540719350495894983906138731500403950410914766629266049943048443251964497247691875405719603219944428328633344359804795764427610063630127194779463977590427518259759078501068295358114179829867784255784947342678884763712050799834144867420471750606423525030016382817556726868939910419884582584070056992375478771254074032287205685583038679310544063752277918939446037609355783450811008609456725169972547096624438300363730021533034294904377460022803655735553681267323125278594901654666575811140547610046353711690419381400150032970884223555424400071994229896636653801619428702431559032383292994370567203706114820543689793117570486614150050237223282079301993720326781204380294917520613930631179173122195275748638957548724186982235547098752265392212249708272073891699344512380451145382449072262460498311642137161906539560039702385635821531647254737029668280772168870801381591163332224459828653248274316112948685294734175909305768948475880046298404861134266230264482026513071573739675019619354115704219639272690873909481266279182943715294432188855504014579918416268795325681867479824074252916739404865089434009820274114971838518420663266103669542143079455029279480128480360783899490912856096182096512269750455616486056878814959418619478609742944775820871812648925683062291051103149421911862359684943457951903273665873800772956557966915028889611656956785936547924496119750902672632240521275615188146083654361924351657271569806431351648519001517271734742548659581685306820672316861223176269223292886455341654461774647623536702797837486972981154420668204580464083905439398574213401170503881610391175097151517528524451305985014412867320159499087741212850738546983650950287669577619921743538823819451286634587723851880164690086566319162717553049940552301753209043941848456410076206386466871741940631874383573546155884822528292365229558102745429814644480878003942753171646789271729661450361266716836387572526183297583693709608054757098031010887605197348781810655960410168163473735827401243043714852916440972023952679383277962972652421196992307005573700080618248492369050321585581714226149159409902059390073112756995100384685192046729544355738025460671888825907977706320950895702693197264648940851607629556792354219940904260035193454618159725205798513412695634894355036106097509504248520497601815210010234180176943019480103652021283501421979674325477996195512665616983185496441132251106994992216036028154627552822788090172542416447981369743941788711296353453595313873949094928120308803154967778243663434799635126941779430507539923482110953386196549444404014953028210566803181183842281352210701826579239030197862518286100428992462779371148497627214375472613019112371606970094140262593256067542290868365576817129843057234563801379645478860827488291165784536863816194537111397833111158230752006861856908501994160890702696938896863550393736002012349189931740563742867168328187474810820768528510002464972267799960691203478452296710205431211125260701134877870721006743486440218444227245897765485683543791750164409780022694268803810321455658823426751855001124069871246902551946840847486743933530700523301197103120145657011903123165728028625629977514514198013877929819941715952535376192282065644607266182901240709699491498983411226768951237889680296663768815126207185849601520025477555808936056402253996810957756456773393221067275409577131613443601697651829612021130060242177062988416400833635238520904938991729169282620212406596808646006223557415432060563518919495454362967649473421970882008743347092776735473495584695287963649689114868390574976660712286472894627271041629717103186309189461820302506443587236581622559986987689359665356612182448791760205614329776700317139305787840115256294534760006805019690312255690041989161874101839834952472770040902812974711941503977733918506056707729109694500470993869698634781727715176732652768840294234412446360309625055384752312105044399546178467577921273102924071058713206111086992047087634450502456822773738837985234326615784393658367628096579373942394787970439465847909806649227455772745978515973100318393549593045968546020130494244138629229193213674488261399542623619379938336029000651483276462321298977348710915182361830593478822305533713552608984022864879848148861735637057744341551699483181788957269956440636426115071628596918531863837273454860029728552108929978669956681994920355628800724214356301035146921191619585392777269952246164219875330008714865223244819755196623230931090069258328476113757353968073452622234653043223944771118003672983897862379542349985467380000982272476737249403028534457378223903445425524204432613099699423955017455927187229102870875523638454874225970471556751712994861075997267195305879983056730842699285160469792578338185242366955998320402735612080870536824390903381890527956854786837331786771337884248292684428131326133789544764156384977560402764011437954014944469623135700569995879638003306713653186393405018773820249087756899963392387679007605401545007606844973733410904685234191545290767568906285864595089451397289892418078757229604461953665881708568423883593820035421815406516490464580492010716867123241173137430243312024768507374211161223955381459975493337698820930852222769161679358678287832940458720395629668329356691982962761704724296222013102211417617004518383321158657403069053857812412653308198573155873192241525873387358209231379184010857277226153388263600884234557079725737937895917887858052000575073803645349641478845235298378172444518112126519711853613306069636306881278346927398326911426277955021498576403813952804296633559545004524655527107256381430529096506784110639338869934206061292199562800391795873139650623015134863398571738896550178063104375351901125717770412960594716679514227704165516863939829119090468832128315385932498460182645161991417858546990517677501398939048749014236263945493762113174057665056373355129117519998839158768684084800713354371484227637321283747771184393755355740922734970610203422594242129471007992801571369276028173083510526715030514816117593451329870205918869410175872755420981104823541016068072343227916758048121983302228792025966115371218732967218988422078299760803246530943505944514219895163220919470802523259900905899147441875199122816809041472691962815831898433484458928346486563181495025072716921877910799242270181755684504028421015160487257917688322039362775413055353618303457061491029603033931855731622089475966799611114252538095009636983128497826948687911695433727700563331210213602853539256742930051780884927616747078222438040025445553975324005013002687686752562600547755951643629189352576515902930076305710643094697933544045091145651569179157248693440694132811644645019661402273107582391510478705060268555151367739458402030352473858694322050641881221974638742159455735638749478076422144009856029204286711851866979851498942165120085832807714204509017263575705935095828791694921028212811568562476464369957314433778162241431887973336729515296363120823091776890701507636478996456010890194724759059649564726101035391571164382005396853853651299347837435013079164598109884280784942102113920164092494230787414449970238517776835489116796648476282114977024816586312070404499858828443197681713611639950323146744337256846952045941571265961120700600857108364473904395178197530953587936676763257462446174291418285898049723641335111088463077158931679801124334203394367074463106342213279468322134062796722235766946993564425975387064019235730796601856549127733808389766544674877825349465333354619656643019324540284464194119815690857604260504979968756806736967585284907358857040738760912514847440029515418964676997900747558795019154699398053016496388438468370412650964404217643164699550420871403418154912954238359980820591630376545353794328416073870296616643462517137015544188329730527335750647663575218939479483556899870644614941630760837179806130375893533928762804484125134295251030286368845557028688072444035279334551198878421752639830851653855955266065491873996537213264007426104928792361208081564509826837457274930573231069954282128438450127813556564943921234935641248892705039795573414502655913311294587780866887143136083957734001579275480629276883073159582415367962700778263543571446784094042843073754112935712530708868217218961750477819766146369685539054462923249112800470859269203630672440763872808254493318113672754690427117219438947146584240570487637222826837296183898221654957152773079183538333872127184992432486708937075852557147097695496248726145670925674901762802894527972654815942239102449232254794557617688823913670127271180781611242139675472375225394407209496693066612277662138716614544973219091438153862920745856827735592688414280687721957780927951301272073058157523496877488574602518809156103937010700118258356883099858886388938928553238247379557265961656109934552949895360443395594019689435512827877541365086209330292927397445796208638163626318220078214785290943175631351193133871999841784774163679273144109184529129300182993529133271335965331667846777685065185811950014015733573490387741244612364692509127418170922364424007307382757674705151070992722088538089891607855407548219534871184918568246274027138355599580055167494653446966746717333487255326946437236303088238358625646478117936572162705998425052348199182428848070070543427810710429111701664742096336343647594897344031756492505424278023452700357755475886253375882871962792814954624348858502423032517073744840675166633086074688616331334307619227764011386205601542646536852855006692496347238251319661745038413085676453364103112872601403294430370219812963419660560894365129774831925043171926347110633667248311675270080455355817373362377341622165538628009139635919210862114770859496011985215825204705003038993175361919861342750885862050655301755555091715435049555948795254351517848394094905472740300246440075894917004345446307071623897277915145089278550994513446589991455597283623025947086295756070165408429460663534134261269821783545995697046610525326487271809178475860680759610665016302337043836492692236298080957354642615432882837560865626214891049103401760143399488184605549664395634483795045699524218264420458460400393731688175312705076194414240643145885596244845915716049020648832485114564703095701838763740642392543086314649372126037591088567961867315944836894093298709465294354033663108620060628057746778919082293102715209670098103651870688703361960448299850303962559772258836894196758768501394562949846052131272435398868217677616555410552290156041208913088416818235311770731851821994125583966678085657098050623804484101740791039337321769310330802221526925994449556282138558483283277803771230210024772186783320795967416485812232976851270354969064570009114253323710503567785750000620897873693758558314268700042944399929735152477786384986266814915476543276560365702020199020427744223642099915005555946862113562455710195022519733101734492808455909512851748909980939873510261985658694836748753940007928136236103318758600287041679120441566240764603476290656056081034716581803553933148812318573838257483796969629568842223116648446708030082559972214373719930502202104919803751619643317826834340744490075015883147637308373026336414665523658273352143816581640946873142087419854608629685960371619364776866804440426782994634056051819292664697103599162329613702102233322581256607037627215217178848008693343774289700103669079560774855061027610623424973272585672669764538425360468303638325685534209130133673534992412337373554371509135082063297488455475603104906226924694270352805072509798527712375309298566600494049910715065185374420885269036633476014739384990099722322179630829131949404605690389459894471090293367997582791810049893402868767230567789212882988644289602193231564113241886799423962437040654979712674351116182718158133716807935705265777405331897042815854387951256231547423295590507376629976825759667129453397940581624214271719041094436539591622353728820138496559442168638568090581550337898580134683926699767013208402705281812083705010706580992285832023626024152713662013546824901120239774812141350906795969793620060814066443079513334657098007910883257255355182272747900275342120134574635286590690193846647752824518499093523500277295699249682373026928890362947773564963050839331367874992914533177793124831439042650013222413196965828484113224445355302345724098920161086969914957691561163254540645694395780222847787412567397809153083857143997275488620544924294692355656868733989503361415187795755688167957541271845465988325730919427878769625793109963843214137567521593123641669922313075036112257301482115464577100015628549768040351320671704181782746223726719167089388115086656801253328569807029943395308105159691934113379129620438545253747728312719576892599005174970906137670888311242689026085219006034357502276744555580295667896304250294634608016150470966917904193477068638172872330902709434510707310544324133379717614083192577880205720176585977669980512650565464818659303669579226710673805158679666947475352968633961220135597928262079789102157316845463527079186483307477285574293035687909402808409712712853073187455700086409227231189704632100635331229675687905106150787738122456979086254076527577267265248080938835064298149888735253957751281358972461459781578355387846431410170355438390524707196918190803145654953249939238828198418127600506518315336564065048796282936437298742120764299787677464715968231169397011507161567598227046585883456934565047560233964116333417247168226202392990394964116071490966352400300845828241516840681697552150111072331948418609677496477185837212498641820325576289927295387163023201456125301069312386347739111995956910413263571347642485777805750350788132260587825530370769008022479720224316252795815858900974367377809824338905956770068994161200709821047620177996458069556357344167735776650395362255867891538353202735738999099213623846407444615757069602478340037530614983448155701066992462370066660674821944070662762562689574134853838359394383046412552692511526498847663256837523817755303210396660142539240977096574253552970927028053629024083370262427855360326859291651114649294279280517314408293993685665823252008101141678257499092039899041714537133683930775825123819786545693111605476367134512034547669432563603741527244404703039527509059308068570384794764332677103210768888631052071580713832970838605965004023688053935879521458475896629694233380265616458736418387325919437447171461759556565342051852671681416619434255710648802550831559210912335361065355439649237110203053650334875112787921219219313633045964404646285590234329342471959372074732812787160820021048707272839332992053031903422327705430568873712318776536832550184922542676281772601620318605503449602982239859046280282513238245728100835893934901811442862697103468799516651376611427591916752766600378783562217816364169215093558522589559388894364059465761463426149270903478703615118319765056840050100823817980752471447593122287041204603468726579272596618492519777555861154758417136914032557946491178581982447640884210774460048937550578035240942108962690709459386299438258079847876046688768359392284145752150770878794572503872373240277175615581628766364602495613718843356968501070336332954685855404130882415512238666110806418753061712971752742215376129040235467882128070603887444593269121049508549762505896265930007042552590940033822580593485970484487060895889650775287481207897603642960848466407933559832872454779033469371714221210389982385190175529013684651424419268738499722077594389641905942284195208256751830617117768491363098209794996650908121096387029480483017507683686751663063657286413021525193583909877402256655644137869241821672128788211973081947277263816724866335555169141672156099212680168486242150630800592279286552227836832826104667953744022164154632423615728835351777759362699751813881561242424644252225516017746046007250271546845445017038236175117370033783406627647116670637492897215399838961653645288031798594440133410374864388477927092598200279981513062515064940872946955852003339743488221802665519407296734718861002654922428106323958954471936380196313685836560964345328819484821303932190639056442311260543583187652944349981375308537935691272991857782419186270973596377324209931960412404202255086014269450456584963008377360229248750136158713320517958490474149682165780282605238472606636893872017995889542045194797748665531874742981627476861473605148222244294141677354587997876869483100660309808900251176074784964174598530113996349343099808726607174571078602381637960167038317612200250181739458846741294085491694210132344010345068291618213530039607571002133926105449333219179898032662047545698477689513005075173520120489495046789792297364999950768659750135797528908371317464287263489658216360437788148230365398228985985844494065188221477931574928001185541746238849575570046614296429738730671280191844093067935216218766498683646344232245556868042997520232537071699572944716834198362056545268296130048118003121943526763859617941426480521363899875780157319108585508632830713587114932272667571956864491809701615407767099307498117594117316443889480114908920232038503559648546121736870552902852024861392744357331299983423775290520138940920540062383648303826244526574848918612246739512563133412059861329602637519298115404835797823969445846035516535789399717014572146820341729666222087457284233649456796363032836513436665650826797972770519104943834913014021008721118127016748035018528031073080897853336710905260541548260731986049039797839187993980815853093205405980367534027022832889174464123083507499798390354904714594746287924227458080236197637307669367358354117933496607353146622759861288024769639499302963680222578419545719769241200964932807091538582773674278546891307886243365528817343492259179547115302979431395891901586208791009899039232690981695765642171497335921990563510728576987750367973769824359249178743481712769576881673859043268623974861474094992227179551280866547228855114707147466522494965517967452000997836695342625803387238636304460076474863213607456573632537396544241896950582976704092855002251937442252043108476934285773819565359912402284263655050497786154542954987366131204475162002848538617360319414225561477119547781787206742641580276430799048962213115433184944105745193909987863543286184818609966085274451656825630768247648130614540116534573818834391690287038484016801603199175849084596729382032778729359076259166375394988744780833933102751604206640849833105917641816789012934326981186504796117566831565756986521102938692658774408599749369898168671828885399562378429520100528848978694543441415366365807935193427066295992011092330342102396870033025990908573632037429324196385768934667751913019637866981720290670591751994026070261432149052835304711194787367374020499220823174731087990484453514583291268412490348140565743479980164456161283720571534540214943083224628830042434647476030710223732775580238745343314151500743056408716970532257694212186698510388526079650255746151029773565197449032479337189059020417827489314425880999310276213357899454439154769532614666362759412137049822476587583729195420206669429648006405002113381833375158258486926884950563351742052830254523577123590402036761630175557047112545668326962100117662831255009395171592045006638650942043174309433730385702197749226103739534755389202846267415849375106902779032436027019646027818972462491173382043973385924745500236778656530647038350464933636669756920162709798177104585512213142800916524937433430547250564926760828312165202984997228110660600361524065117402548818803677781163345594105214686934906014791131630765729784735629439455820872874966989150586755641159792672784912333342546072841344303648987440833527800384686474819232635584662770162120645705659270052631780810686747964651301009288002639668573492449176490812017502700354517335006736441306752247174925723964615281328702596625424659770377052720450347102517517408650535293477333761458950880485472532802074149444409676863355171011404931145623130587885129016981479061301541262913375379840032929796086682007072218712132255547449582593440039395555641741141247518775774865433963784679154664971971434223901868550930307661684405143509225484184302485623534774042188605468173676055502320017790803119951542765323666677258618861434957179210614017687438010262945319016165183583597657049749829665368711983046028447700739387000551624973293246265451713870934620468640867980416550760762683179363092023934892671962607339636521272243710552627308677571654379054592246298814371001434906081402954493622359913985857273925576824177475854630887062697540230965489443203384220354303659243400211947355146265339789709099615268633277926424930167555123363216030070483069258435355382291280730045576865917257282770407246366366815378853968437056149993092871325685020547505367501259891033965698230939620375310525140763118728705781467268720907118395248513128817299019226928979557362181006659115580926246138678965318076409240066253489459629095349858861153759703692068731704912872199114409551889402910941822768304349433453492524570327172435042904690665969557109009410468346830719677047465337477523418361321846086789291533237675443678021230527167419120310240189255406598621647272634783993677304457601123802858070211601565836976637964468443866171652199185354016577990496139089058635892746584485783694296865551795144565268504764317070851592926129232512954238725906348136167881924022643225964929992642906848188345535815649233893883922707625624645930449917101442678838807568764559900516280303489778258703367275302327264921239799946962617064705984412188434075946257538536335450554742712478337582471794590235268462896577135362726703760752644277027153768014394564337931849829742610605196947926231126291373285893197915533930379776475025589839624942955296393262225361871918487508309958991402471134177269961832549694065923289845001761249879460864010220839696785343593077926097773800239877085222173564149573320178470361743198294988848134335537731035836306373823995701435762505527405527196024489956075059644357811752096041675041992782608934156089323210096723988472376151078646743654478198105431471549588815266304088149673627747498197278541964732355694036292314015880389575730943066883055274312253649894467535503913792749534466159473144622858124766952947152926524653620891657809543866941494332708681701037511307163370345777084762702721079958155569239831480805695763861055165107970194707156084358034963748229796876913185487775591989136126006209199487784982745605704548530902853395299928124240716956374669909110026536861586841096907573439776049709042927605920963756423688750356933257590835818248938122336158086445831145926341403873177019794228555353531947328802655930465880021620125822008769646904927023155973380708540672805011113620007907099673846569825310403563286072595819851464267499509645105108189430800131880692348706220645167260600985129265371478653807761623906191300486131969595779973341193095325812952048920945742581006277493533181421670221637280446059280186537522359607083809542837818589880357989598404408909753871222110540945482009565232261683608969354870208996333508198682202336795083218771616646261899517069642280085095609529355267386350796824645993200750062090115818556387142663803262166302935546367972773775863967052486697541737764783730766647532449385448355059219350570321496155653774779006922253379329187185140371854541645510429286430145819085900887623897405765745744599812920559480483138844500103346018887084735253938276086182407788525584378587268170761543804248411869035402378319948169172824874915340595570249350646831543705110436942440875197940513052063393882643367463361231418856432625773810218919382400841596910837840632792046454594073897110336056615535470400248525089805490363550979955431439284022688777755168416439959815081409716905275582123499148208054511042596627667270875358592002839851300337060307417845068408079370667637716833365775099516575375887993356069807538551593168743176179232436301036367486985146650230948379469487067461370404592779906531460291660182373192769046771553956422051612748554473498645407667224684096595076889700086809301585949979031786813918195222024928779623470174144593657669993043785569489597344058566447278219431717457317666488374263739304467678292049149716681486689231529520590153920352943365889041236411505542170582274902775458241338965854956992911542460477266939967991360275516565334406309606428074794291546987644093943436804334042571237932248479385885004850949661716716511841312929464873662755742461032630053672881249676237501080894218480731517689024082317234009501886627875366383470015248477294600474824842351725691433002540786894246059372457624963941249689806693528678284511913277129774591133492416487099568276137042048873825023910189654759472142754372403482814251659378316789669520273421716022545452709228209683896099888285243446918496103645804565866834735132402127973317782523326336158837648091804028823295709435981737665006475493259582881640523966743306027494352974113535571453547928803656249884190985842560598502083579954047552216144587587474666937257702026646718979039120562587434145333347073381807991441213532188123537440086362147380120155145041987085916888679262594815276336929648649120260027305604915590000802551472143137600302017249773804984861446838371641284276242137943372507120559458954381367464891127206542697751064348035713711707087228491574700864156951084952429526215145280450460770012952803373312055255144293432584112496949774743149041078458843520842874144483267470083948813831041207557533773731717629450631711515123546849481307969785237086861962463389377306048895694591959030131683674808482181161689511574471761229282655017682566873683645828102603052157294681378417979929374183268418909491626719263696998288872295024928082058730953188838373485661432660203590222099351108687584651424461678825081338037540597619895050351891815479933135142172133919076058437590497646476691065681995831010178427862910014403819029520249518993957853961929065950854020105356082151792689586796405214846555417886752339340337975112939555582939244363895074189719140848443105192304284658151903207249541278634653861392774461439421184895284012696719534671569204721211277031058428261481164867219748338597126522168393347368218603671723255099462647759144027415640526123542483973986716865848198394100233934734123567175042738258046402199248622369059069433156148506805926957891729671240430682435743925632515017456429761192866542647180389062841045752443319581757065081311530579286141006504297790944748960469804708008653118234456277908831932566512875067872115782273475101427552038921584761717112780115537627170118786326560733198117638575068546638816486563441962073857266098602014077699943612399323500900595663475669539385217578939585824160220915344717007247119483776069751703319802364993608435816011532172783273174399412885903939087569947025632230681289338714158372423189973015836934256958285363043123118167354546451904174649348434639187365593603008095381871279896146679112717689766908773123536748585015738926695966510520540942552014463583611105407778671655311234189361075538771114735379410991183916739674262771777996495850105985705463717194753328235635809371972646701283177387106884647415848972371855464134534655546163042981346307599697442120222554981421683123900789786408175595046574405594092112914848519602679834281880011472263798547776668350898854496951547417104180715069816868142295581756979305933515696287342967947331068173941065004341968939343141694030595739367520099915631075971168177494117996080298571472437453219219039562789811247605401318111615283311499948317068983577375677727720265196376109666895250690006825307246928028427787150190855551720554920069622897277985470221798651602230195010831108488563223434987410313095155288847699154742382740404775044202658130272139250546992455076843490369604437550880903119109411027282077885439424911502251772246379396460521333533996362254895516046637161696466250616519728812775332523902952551476950002441419144864994788497877261096364546089507776952447217583361264872789050591271988339480479937432972777064260774515687501286794108703791510243348582068265952308407158964373675019176497578387425532414723332715278325425377651978498496020839279133060706268427408010318468156537989980183999741639615922186229707908872115570366609069362401231858830173827955012144226323772279159397664645199110615262738286730688770196569651977862614973759003624416330418159975432319606504949473087371318483367690500650748461320473289202496310601302569994196308058651750389590749142500354386763064724935776828233892516887439284169255495165846418774920170200063771364225167043063316441464426049654673175418743224447873573157750159364497411233274922979197713861150254426446692357913464961864522364997388905710927095327207331935886483714577533400867622810865461992161450906783446283414162819551101807169411266734105390917026114617391448251925304797339328615356089162799146850109474366333537582761066999204242733755257386759436202064072444005750899105941327823061621897963156768416106439255670334692901536433940544436075802255996544004834394691833333528993063989063652180747548171241953773825916058896804074376499853152185726225985521520917993541365286403333742908863699961756973379975045530414636232381489865729391613716178658286622430732396766754400145860902447862420052692852256038632302050531285628595614015659497737634234837935226692467976699742724555503105787759835134303470806012501068903423839034177594140517665256560961426526246141465972508714138167807568978876491625291968381923307150771043425019991408072801940839067909192025860698514033794193218602142624299221871855219226625510747654212185311399146598729317534603390236309887335512023499751176824665743584991364660482054631167060993926997771735245704205321696841582447786210422936927120071125937717435672725292567661978098398360264746449400617194733044124435625180950149843620821596385572042262506033693945094856015244048357600754902140266551628404456653638563311876039941077399140241369904396379776259159941812672104296665370844068096655995831162135747443536321381895027850232327749039343986489636710345079493260693383755700588390292924496465722338284462533357249444668488743371953802058913069259644480230224050024370417891633467595969368713394865608474325929450984466220818595865671377392690924071871038858448953145743396973026966356105385153921567425700206942817828070509889958441068855621188469281233308569435204551449077892393087353542422780344307102735736581767519626606118677282737802090040414445796745221762393193966633058927594614546653816205012277930914420862152969271359801116148564253462183107126635611704294641867118765452608874640631027887598278227096604493420243775550352691029823624140453582374129601943396668413843534200065926909525116538653783702537279622527053513853207724334750161283000563833465910836565702802961920169160634471297980946451304129936967379419182995561984266364929232777138659219735625414658146105729319816357539345705622397098179918115436299182447996970898210718301757871397072750341744281828689572797202810657730782781615133836444502018383439785556669298842805138619226618642023260691780620431295865158777786175785844727971974961907606910101399544863064352661842702976244829414289514681130454705449248922005538093405195543283725269527962958520306774987693146543202423417616983930232894347472906856438960946135942823323600885345913097053914127990931598062855983699763611661602906108540657984340707721069462103981033632020149837449237553835080539501795034184659072683392317925189501349061295171553130816553254292694785987985911426585416777455637942619077658254442627806800241174675872477710914303745658485219390477942260578327229838017967894894907700451240895451069245302645510049884588265325691206406745969825463870151637452172076002148435393265264507396719757481085706197336674292025000585220381954865081929501225927253044468750275878970130309277907877946552256937929947332299842664354757618268215938598583778124267316391989565454101833882418677072055113226887917580676912196781183459429111568403177351917856678574408830833870512592358482039172107162405195966448506944184205834903160761052435361218046726913620743826597116413213131669560648914321129370026873206164773709537933593172644212318043519735796718638533281685647442617021345337197581162568257484058180781403285570209513790245837428549580790617698752052393039379769174809605004767295629341898470338225483289580186337973628591963357058232440430159486798337513780397848261392127512018170393627951322052193285911017788949165818137363286282409047401886939562078292539744802969124535206968169661657277363603159200254189508232570648193791372600277515432645987737392801839270388059015212973926004931444641776728983843946958660092442590003936716617160509741228268417879587507779221460894393948150030821736050611910689992190055957390127614369085928589534090600119365054243898274459679764516936194190211673617568952576069165820604928624052516011891672011966523674039192720638678098991761375242126755995660528028615620748880228607568270876187483619937310898932372322822306052376637244996227151050869111479059915232197794304498628360749692573577899509458385684883874926190397802857613600389026221825238561838362694443507077492748733393783497773485281653561678160197183949613821530945512697342095151445961629205359199259282043660076502051418050810451000513738446769948098755835029064765174835505738824344618582915764440425237005311043611707612938320343718749675958134195606243153087516990421178082992207679263424098002316956207976342132881790316546588288373868483864313197368263208539237569923811841863950829377321149460161384272002266525225105572798705211463720666893003077357342871959562466044458082754634092501842756678238172655376328754881081922829933676010349167468503512006423731072395536675776462680202037823374662895357414945227493967006432625483911968352076032909238800883380959501598200909312782432784382763249933598081761365671139531476948385962892694563699289694849471790424742822989700745185751878512536104768530698922145470622023946574379268481113610391836020027697429232841472168810615138318001361639039996134454813703430834648677904497077626331935057922561292278320277901488507387331918212735517725688951791138994506590778159936508013653116238972241958646996082118632825190752073394457974898327328006401002820246420148226051315376475212202008464892335933011146235705199631716499802637495656300415229266414109003580697336900252325705067938412974191648850184838905094143486413971210046762905117837172416004756169114272989294971093401605950059911619850448321021200359166653082231546364101780938829950579881324807439253023584086175610191643524298354007664347369450526961750394598795535520642195114155876629419441748982023999259644436713405168327697132679729971269013595568598494817034981973922743423699117353424473127680374805101248001247559749101616591178970175582242177066897530668658204749049552098430661591872230532321983068119245926261802207035978307327998137087090397329431623791586883339932679443322408960429738842484493101706064716931477632690860418013517112025707979301990508685100689245619679480067161009639329771627770745574984112723390025528844710185991001889438820951073804473492546507257157973122563933056126081472408900483014104854075911875296422344986525754856708370926737660451182347299709324898292924231111783596816092964425803074332626365318672687190341085239647266223183043912529512898840324149840378960678598113819456766835492212382447769249818503253154056801821535545247341533594184982458552770229178977907084906374918071273840459413307589659422309378027518086560662043600065035362379861532340474030671987899550439003359202880805807970365519300461356777419905261429220110411323871383906435189071749531697247274317118774901840394946915399496234314109761724471719365552555143771116208678003019383734379759570599783604170059113641465990158126233174655504945496017537125749705954684159594528123454733218203040657244068640671252294262301995738401077289978840810599927920351676419013872926998929504190612035255341772200884928788166503957950769949000804574049229067443533061215525203724999200462978205081040045899403243023333513354956700911352357900836089889757411798278671802877125564021309457479282920492502315738240054879135097627917232651469725387829685570299440802595088187550041468746571224122536917773891779187469782178689156163116542731606267837457214906892347722182012615089864798121504504268374013128499615614430577807522776883320954338978633601419203467459753170258398977474228599452033528271176480179756894925637348697577887928141968744910500469333105382067252239851085476241365841042833433550908611933316392879788042832308372892290989015179389281387151408329394185743499954228183166861639009840390427073318624587061547072655223390749199017959732917785878622439582205865789993100364174150602021309911625099985969728779901208750948438640505865841780656311845017418085489935780386332521366601825965829926614553895442170368121802264356686452675872964182071065680873548609156585065541341793995220881102770339574244718215328757085807591536598808875169871181267391371785137696992155844331837755738979477693494491899620391522831912134394870281431900118977903725609383638028731278204818465126281906965578207940957414321226240294659651876034092069206577037232667800411255530440379842946854328779245084567159718003777093118346585529371992468823834443679978380421213344990457912814381332205766141634948842048313535831767059792318993313437823168353143344564031459486649500259827256240994023116117605962696089654170505637239725134198147883037440968119902329161892088547106516803979904107378394079892626527780608421485332449931479819113043261564543175156746279478053804474869938835446364171954154815954576481611293321883354189465176842724749649256283542626548202794738343981360851364424435386119401107707607072440963347928952556041209172734856237122236528249160071020469382130710700676262102231673863697449879744008632083371903201495213877217575878289564198730325589745208176657641453096646902216879909499674412445002578735370592468343059312536918418595645404254222198754335038347752301680607395490044649765655997123916466802255333087831346636244619260146629266334586357898752018777342970722752952062792286679209169119408761129309268550829733191148725549188370624257739712739226394150419068817769513649472121088080435021829606808401093943306019499028885504594287184470490135881863005707915166466177686254387275014056767722413074045492138521852827226089331325462566507051750926046060646466082884366768174344178148260741730916556030794151283712140758231936183616678890086472757861078836751735682739693184365394218212756265910525561425971408270740620472142864708056430763301164593618397420525806362303291139228299168124571989023753990502023451265587687168221057156127736821459064907882840498815732256171808187298057353487289652950631175864848575939289195866161943479032505701645753001084546062671517926355466876223642273344344719519663326773814179601450829837322838975732106513075219386215458423720547846616552733357575594145334496693136395372750879481194410722789210662066879851638591967744320769669737895458140793129773733805969523616932330574030795281839745630030786571034688181287393063859363264849365197564514123912531722337527904192571577175138299510431354916055682258073032701948252861748689406029667413733800542394163005077854375271467695096438090045955884591233296498337523427616675491142714658255275837706856376482207225406529811213076091094763146748033998474020127218875598787665928239886591458635148957424236216103909096697877706098787725416371394303878085433801713511535864983380256064211883143745639759789891680705181570368690723858419675267796257123821996675272794429761599494746978451446360108470948624370110983070343467622416341452006050654296274609755979340153051959483315272125273516667459439108187078504316202054705190519534751202536841132397364468174511280577410133047734302889355944280674560993516094921922803032687262947775450808485745255876723347525045221587061182787722335972707398070288226982803460565004904418524635454673002281182450763494988263235195917581447175509826702078328648756897913596541233068512716521260946738811946043021102864644777171093980382350379819327168263798395321565955501943233097006806943578715730109597394072313062888220627792356015617065390982469844194451120573269237432689831953420721440900716209204270351333689489236136624502208916265699358362540813615055380537161407104612420152122984241917940503063523285583234649745159274751965305767080114660695004320724552638957874522229021397363761449683177660319584760771990135765328132800925949274685114300241082746114341827205562718541081599111369209691644320220681930917704523522457350835104724694618080559778577206901836240681573344881076294394614079268547104713914662811843326707262561460047424500876817612694826816537945576222485729902407193895796261274470072702834497792140441962713609019981712053536219615408920096231616957067637057874318927321551546128553381658526618079075547735841367492781054644607119265495200124416056293149948685696294438028912438104009505031412358866487396505969774199203333299080270309624460059021460331479962366372386828014187843957032569846130060230960679463796840471842522517432095283005213850244144047162238807020818135958535475762470698245804646874135401805846135290100024409169560708268310000547637364217866107113682828480985382925590783374724714939404222322432041491599951176065218974978225298247936996629185253116220792468157522913121369907360866882387045394154688423361527846853532904256837122147082198346598359793753441811552320403690041165534211607617204597548360653539678882346538685845253416333335614717376451567429365900690399137698815322207590061890493293657117756353456214880173650060703037596312422574832400333436838205360012991936679706452206811650837303270013600390662775484778733424844851223502712707485077306322840782429782673470868180104850606872726333016235855238742573570046361264316995703360171114075572646142261734136497420860073672103957812387455599926868242339969175830799990453270880633545779792229980854798170123774155578346308561937356105794815715463699461680970636343140967405479328649172915821823037784241031908446071960644688626445795865343482976724410766615378202062607980075166967801476306144393909942759184923125227666092365196058448586158495782262463833542932280616946743323188384437047270011183967711428199184579293513127811277191915088370162009093145858716101405955861407277158884736165726370752037986780729099738604709503604800739701935367371945405375200946992986904410618067244103903019767888523954553174173892419943062056521237135645783261624584270945363566719995151215343323437666803957724713228768759918574123398855913701328850892145270436103482246189257375181746857239653157512767763960472634536788928457466889410836730905473715321222840412299790387197545714624354314863300536028224186418820561593893939856920524463964135951069353210721924601466963867035201712102081277552820404473818442228368773921598736307556026659448078920191337710186242422214450774078777075794675755311175682341796318388478736850596700979280704848964832058388996194808320433287221639014380041013064717011301562575514558829020687854222521306767056724242743032892616903720896216297389793472322080619663168761033492605934508978501972670238835246751784790975762607498913524311129317054358128768573841514677227355900559700783764148498030932991199721273727401862882363737249577373209081610584534589306983394249206902604167020395358616934547323233361412483786081584046372170539381029989424897381277615713171311173854321547759588235378882005438880170562406644703121642098914454976157639424060803364612462093048905361553278434701868352738831680092892376136345061086775693013665658926157466634660246763320188688003919252039269041980616815643359246489837503443307119210297151936527673003241743102621845654074551136922328419995792063349198732280196698617414630049962345790843323276607179918518255052598075899224655003604015223419857647250840833645518821702582584970897857964494775035580557870334143434224020734553244976843282371647163214322464211200858879924012826014954998413958913557971817195989936014961310408968971224213297623063083779238317577943661619213895269336505168291482992706298036828926700456142998349658568175179309226170531288960830494310475412925844943034063566965268649463842591910879042145630740343690694677087052357079430244850769982786246203739148802024133193121445171126585144862742072266078366863834767068510030060530507709915104432055891351571433693783141242612153677891986788489984135101585797594628057095734568108622248093822066804141769051964869395745867847116333071345283707366527460724629358780792818080228776951499652729372491652910607644486088855414247845109286825184785191429441791009727427087966081220775679087409699123289509881640738913652780558902887934063653438901887222591092248788384441659364562853615641397605592094965268811054673200744744750052127220185376442446695448839663742262931830658040589817370332390247226716792515979578200803616227367251940078690967284730791390038504349545795046822325505305884237434118010695256476522309913807585990002313087171843433252965491908786087029192382892641231874887151719943938821428048036332165580652731573869136965675272217274303603807321633712159585031173437486173304623233373959213983183855623000507728215725717981287048679044600980735804604669848898140343981700559767256928716835679287731236731499264052979823049485873902462186283135240702179824900746813317223994647827142007144855508333179837524584604588045154325215200369128228719520784471288165323922239828958474471230352822404922750360989013986235660083200380859591419928269153002205506206900630917200086786629251923853975171512281140627805864142935662829932569219269181997921312319460366363461174658400223202465439515781605113293409217718038704927049503280166469300346539471935378555871629060967221153749721250699270666332762361969012547135792111347554990758053766090236694470982758161354129524596337262428133862840914896059476412495073401634058646188486102690295273959875257026716140392405492460746967875285046863714489124305158939784578724075473535907351355297915097249550251120711558791516927913173732133511820311092273499993921999487261204136167004012518730061591913307966452661403442915500591889884927696271614562424738106640564238827931054934969163490529654764027238376152329170559932244341759566869819381921453900195555277569888070925929290894612465768967488491722955433328096064155675452312303665184998556347867185456804672518486114782621402883386338085743409460361487234615936436402385056911140487247790131184408682800969906241367963006191406619716895278469037981142370146824566772601854115667473287193240090139626976476315173726958593312598752650749719352918477199029444106554689829929730473904562815298352815319423973477103504357151301156784828797236741246081535469151765507065679168799051896877222000664218033017486980351764612419476772059916514910235596671753241997265254231365155616363238903077781026196065731916350527318764895916854136268004813276787910491640271588866386729070366916148222509183661243437600645405698178645234773407303463934395264360003900908848500883684533485051868597631137785029675627220299883947030054118700604952344843522173926919202374966707811195042999543022377052082439611506308766792722998455405975866016784921947113865526189350694881501488951405438166784602972280135603714333512122878557756812005868732328458731480425676458936162399203960698726363531544470847090591853521836889545220722240806122688254131748294736935680009506861970366897414164747739844973522941932702911833471992012668896190452269681237759661032717889216954835433360889795159021917892762587655529569000063292376573683624756415832254342720823373506256508934430497791548795787799042597607388596919962334624501669829291236810205949649351205371256061110794044853529459396704365349362478560967360653436367177349900412911514983355029767831877401177013917196740893087990988794397425164550104148025308134931298949057164576172404829063417745374600621991605603904756372112018432814099686142526621164880605735589840117454460515239358164067727962567312193669252920819756531610601085521490327508155586032793793059759169023738713002103997145545071173016966565174783750939267830982693230564204006029885889175384111552456605457035482936425998226322398365287989380449328781137278956921727278123138075891906040127804128453014996122123970017956381325673363121180298413689628391451490934269041774863692663170667764878129144379591510133413469900541725830820601131372658378184699956905083261006965088959850467802457834101407152107149804259423991480788312635481613724095862607924642155686196374708744956094575806708964565353309213810954866248145933825159316454568801925551741518796764814305593249701000009549798706465577034024647694955563710912439578554906408912162829281340907164688338349203900922775719673052452081285013735269207078545775344656955977589540530313559734562731218537491241718421485109300103150867595970909053487761136841903980815178567570894371095046823745334267422482634253214019167923613859961940837058470825746877216855394170976540674443680425539226365434524258736195601555436409283253188568832844692430635828346935686005328508674911153012035322050962891529543482290629586385171286334179476399604380465665545710578706076327852297801150703809391588373108780523282309474306370279277812767382472759453872555231621820624110047347519105436762995171590110026301791076032912530584757980075447395943839529433208322702720669931803352208485122094414676135636520809161081701187078971587488417311418521477872672931337290478882408091051886463362081505824210874791433617882302708447813746874110178905897823632290297159773401057398683123285738612333953613338334034360170610226857129530312715548355731636797063494494809083928505752412521899511171095692670729386452793183377951928508201308031733228256116208361304441420331762521043043633372628509278219167833369574993125886444307895817820521830416820383254345537005061227476865356599902857057989148965023367749563044525120521935639847860595130298162986237738641001340108116053412657107218394501893301290080206259764552157790119477915483783467178671535122523838427044592284738679275094459387317982242312726479976312654204244490473850384600371629262877163494403502731378903552175847628536321064510129858715868605617909868749824401500652371354605365929033252319489009636233394821485503470117874949300339770066516917611674714146301553064420312070073836539799001585465930866822464948351598532134029212536346893649324439628965649373754457490094035553179326128708182434474645146623692759174930409401233255001730193341773615578266971860014891737435777570194829567747370617433644672131107945943144743577531920645860988421398302114189429956420638863129483913169310604146468337376615468245186790602986098115246348945954225271183069071510373884425828574807423088935480389615186960165676523592261067955002376209876845815251672595387840434502675486850418565965298025118053497248337375191025368687953971095651311071767613333486879398164712226881519781609042158475332247628048309466631058753836271299386491441430145278994420165224130751761684790974498751046225300919034106337327283912763348218742372994891427924048183533699190292489916148153812596195952895534041823621391814314646023559497673170472801463123177572897481019539329990183289592958633562051951986436305661847486397602377298959567596077104561510289743127973157894824121348741955187738829367521843764134283264708675316186669682913567534205817165201157928601967063100483936686974362371608083419733757717331950927987742188311504904310222256772042021621008722636753196543498103683312279906366829469722861351996666674393196118724428226918347925057935507803376795484530906020453076503564554550975371773266777815667437675768756862493564274585450872354181443578099468686327725570192919210298388184901372859472173528465573294824792862632871925503433483418744603642174937572454956610457954252985656728236164835983824359322268523201378379319371471784933471711360254084831693755942553922489472663026682366049654023758928375381512480446191962063617191322928031864288531022450109003173977978691147514088357487611040707649918446167733875904550652525730706735328457865663677055667873281758942465208513767279866883937515286273588001163300888830861515331129308373662648066931365497825480574691403681885672246703154703376991834864360914120841976175139212065767043864592628013491089834202532391531403192962388286511844894962652810720991995166926161721710466246291736479506915399028763475322611472042359291311822600735903488603304656746094432143828326563021106777384320152581620318689292571110348865586852374805904363480420538769976584287126293266367000056996478444476939482517559750390532498460191524639682602464826104514537073509041042779885913886780675688169819446327633354394703720940312633587034082116044911529605276405591720505186634439563903570709519395983850508805319298019662304851426337611259615909619374428912975370018030112839790739549174550058348862526508896250885832652872452482779081979562972304586475096045914062064204466545407321025243353962364634319679092763830651075052361434771644773116471237029017855385521883364496841286418426394846438043044043425713196842828410363284557878570415927327114910756793017546571369777692393456153190161068025681723749484642224597042971912918820913774715097472769371689459017258913791004421408955918248205058406809332662066577232667839415488470086980648029808221955648358442378604852016697933097084418697224315695200324699676639178721740928299691865270437946107563315090353478157136584140950111360718404045035956868852215430017257412063722364827237892171235869499399678851521765840711790795185789363240035805817527925530063973444758535291585265960926505963866451012501117028437551268569783622035027160135758877024568251013841822267179479356310333668338103106312198962106669980600181010172214127825277013677598876977542398100099452334667715106745849078626318941995540508966764989083063182571209474445939317838769530563725348700653756023260615640666939802077952948535617303405105984183880726265118834351955990181003793827252625812819606721350824426169242289840347332336667376238665123814694726322585724830406643631544265269314618991803557029983616634183107037799871962690114098917179728191257761392137727725185885563085307358097149421475383877771587862831504077382141640874458552970418000790530408304181400515865672505091173850006427296844508062341528455940757995293269891052384785518526348847840992131172947974462193623159674267978945363088961542391346070923670669378487813594901080312901046077023718667801068443097469050580832337637161547186855244248734696742013609136754541076489809178682182038223147541120832781496288288562766114459567427361389413039305582802504749912409916235001677657120968560713654546228204316910172377767099057495192069054318247482464254795496282382577766656532457293221995455334749749356027748079380492819168035870133242512245688986836283734389605995804116724998546198022281785012453115234261835692982689441824708092403788489366210423665039497978110750516593019222710113860101497083710913719949314656268351671244512047587387081394054189553178898572421083117520165495602937703966953996886223757704594111275273627220554233024542894869213594081637465441858386836192188712812386355503464625259475322539668913716882780731475439347922830046231590454545968756831292848321910107945232467559904173030981192703811539736537918921946460888175412226026844470561369798343747098005160149746231902563383700006247361870281299001204423839190216706744087559949685508868098512528665045022551368649686220608089784770946712399566249863710238932082961938506942605783006461168923294121924322441452570619337559576726562281174623625080414929739524112810159973907114837986819451005101511082481424986656723119998216257117291297100046853002112250145231419378322354077468524706674366393322285825631301467516454949643482050199319975926364921827388222499483038570989410759701944403063439138668292417265463059453526606101282850402974999511988534521096983067668423341756643298643394321803237630884247930116319059421418791264095557866798549965541449195574953279351090230707464798798650383980992145736221640163115588310272762718151415218863436086990443523298835362486826752139898819373424492683423361599456161661358522631669638380658779822957489916844354748683285825858916245887147152216274576079568653306370260464101039592642515781760325079681578649063702819452116817175218690909839095724584697124535588959358999520739678838556313742084591451969068702951870040202829886673267521408167556669211123360015389879553077873580798750113771769290262379370110444793874432057391664325509265197060556403126413373429876172827048877715299934951567040542845297265967229960547932231605603459770355143063290558296457083822525435961390251877086563983100927606048169517621728082909618151519271861690480782864048165488177850140567818395982954328949966849464596792938894127701612672263705999917934050516902894687651997900542545606132087749004228508853487506177422281179898599677148229492262269241165681669266618295108839223143304320691751783687296444023145155339215775747489803712161362225115280651549467421658112362995486744099396421152193001071793517617710859742292308759643525520464362987745501499948292714483006109553138971424922842590964516416460870720190062332939732339774854382491921530017296730033501014566828977110457501076084771876245396005633490475086732753627157179206619737624449293501986972210377626648979146746603840696559728749316676135497176505222040509886323685229456879312871868382381882637903210944900100226744351299530984796609634949283161117136651307291914062207934550874149899962799641466437702912128084869519297299396988562671761796387499335036302527907612168620079029319300411599151512953806922434317798664489014393257233944797596823384779617003320095309472086712543447423967677239472620889815275889368969447168589368682722466719954699960035354483315173180079860709123970356321954025467833700801630608905032690657966374180994950751875589492407079748426790820172950959292670002009741786140531580693681959782017740375697769881892591430587282141997064767260843671267575702174610995350787228556494871771762034465351055021570745169602431923059075014731024652009276734429394532141201971065389090241743765288226941618265183428739815338483443825220262425893329508294752352243763259510639658930046864011187895984391625978380339377508252026531751320451600974644744057031590782794104050511168907132710793211370287404590501958493938757475178160420074775098093979808482880546962326183300259454962075971151742630564200730037773839204610095906628151821553499698459944816217826725376978574805424864894600832052094641482250258051782577866759268970459235340313401193884194369316205821458318640684633161150174236997125321462453602156456273192288368464161323224895666352030413893241989727653401310905006271007120312607366199997406204082789468947727832148483042968492293715440280796944839869758278280890496233971706476307135701406532380578240384466964508339792618465856896551839444519659517692601949683499033312648468270449033768904806051720804942758043044416857218663485554138492072997456915774036045161652309458212348212281457332695409559994976347951928114862048908345581109461368751992678849396794992957110671680182074341621253008690895811616402088534244353631482859936728747976119183427725765184207124507172585566456851389931956862310086080859463745873096945099423640296369488416363685619424578036677650204677850400829152118190532926106395662750132472039898438929654253755381389479879726090389219554845505477530020934412280148734866216194424163009371154462605393340697559321612275066043907921146407593596358226439842709061144669634429139791059378740540024917038980565618729244837993750296003297624681153642139292906244704090009042100044147250882791104313669423566975849138436416765669865075560605175574857862074895267438039738241605358665467466702929292287718456277911907651768504019751728407752431178285408370444150365240346543885831787972061437485604440478851807420159730293777573159485055268710688272437266131294059538014227589953740563059450162064904835233890921208133267920225125589414428661506462992539597281833566946221393877809771243195601719264787446193873012355498042972387764390947902517226178351373064296803096386652479041550563139909550712868450831777714292397434536469571396649705451844696357446668202683296397567903838789019502945961323822196880376150592703993860758590581054178423055023091531785703002199912842603107117175298145109466599959804569059785425835519511604247016048800301922501092706671089017402932988413031129048653080150567988737692267632387119126013655477300555440703365917112101377976781726485105696021797910403874483169195100938491808816247299108290147315252726445170301396850276619205472768497941458296926577510364646076917678930358165823998823543673716306266755325143196792364579547229878389193604845031060821312898762799678227172766007318838707532378580586297108130814791733777303876383097376879172119717689374691235831826539764680450782400846726387649482618263088359215763570131139631480853740055045378633654544268007367142778811018041008895094198724295973234943598468253573240264058055871579739272336397672885124843874339007214043963948571733694274190847514650550619303476936828411560582445217008781678516818964689164828025400228328830164885158718235257836170822488123556023701150697025697506666442807885730742518150286233616595408521731971170641177977540725520941710257347603393810956708712049709184130191013620365319273072353773959702027519978952075587843335663730767426463463166076329595855858753208887057544841675695159041242292988590328056829555618415810151591944468165717444614527176809514571564517888509326661633807979350243000505761146961067268491256738474089371445924481146776256997108849008816134954165843818300004508625170012315481829541714294065642233595048404095869394172395280420297437804118737801861193718755889826839720781196209869266314484734434929769216403166023566034394709393463181610100488334540637311034824339568667666289867809223995480591371902629229367002467984078891259571966183351057526781043017718331109097903823135551238544424842204628504546101182605298844669836134985959413293632180931920594955814886467200612224217276763210121301221108435721032547649809057338743305013254021308011109907201012454660942384975361255515778691231715640125854744475185417557729807378025194208941699822202146928200375559179646008012108572581662121717444719710845632179430212747557177381697219014526542404209562101664399704738158583339441735029903690976418374973438434158034425407212971879189879648392778357776274549306762196413095917679375711647321432649725008455095685253847186363513389981154547683778343903080862496173376030359930711168490621158182136350562715029897300455835641464870918891991932781944345968437102404390094883090225200420458409663885780683290386627825710065182750382188672633555162271831555387666217982798185370879804862912347841720501904099811695822721719786121943135022371671823555754804814825708444171040410110631907895038902162746768702098561021980597981980488108849709612750846848641641536356099376645416377645165465024618421606404169084932091317104822336488788671044631891345381747061242968201493193587494390516632671060038111607626957217738054916020298010821802920377243524958251929545092963970167992534627709768936666688300673214467393070408986172716154094341983728862046343235173050814233194892874173025555979154593147175276182043670942112589916302354609281987420965694454096185763028675404691342280944741314874693753261231506006653107362130027556923701024362960059278957510290467661971249716577604961612674579732129569869231570723453840138951895231852605457527657543948061209121111739591626779951541758224984771947025326872758422426661589868287582136217114575272934916473305439687818702356195600314363434766626863175623288533184731825424358591971961109597835164078193541036932798200740960509695066139541590569989785412085305981756266280903304264411529120903461697895563960663412602745195430664108750217898502693667378216166919859862396975289778491279481383292344745593891675743316636510922499208761718887354692818561954505868107778652539616563913745616776231709015307912071024974945361508062961926520834351550074811651212032165588117114738771231100657218172352732681051051783549230635405849840753317601588453768109848667272753526304076918394348821819574763136319160300084062115296359509568842668486132688154091484359528239850628431526799124350485685625244618600442694387092116207182487129029197440767000509164710940354012307939968073360896709326551462544817624013450908538778819752202110189043949841018900047891325842852517107960826961970143297454190971120325974627192940915452298799961008560940553715511545200461576608066837430154837508197404785683720004253905373478459758764719708265901391493849405798477700441271723379859261523255416036063898137450059030437752817902176686291789833423209744670251794930034898012764097613475508252119615805229116620355280119037700497385534981053813230007170469846148045859442149741465497732185782201967024821722792806638948242778690569976090128346315912048406335429638970187070635095939118937528403804648352348308376230396479683379327596610164150395097668023255360974438744350294288574336323443146362721080164027449117256600314524550938496422120450136194422565428529368378857306057541532436998210491904181773905584682010595719571013866090086094029809717625868484254376986386871327325144099965127525898634806683883206246186367959784789482741816776336586131847642474495797344041624757391961636131932487657873093322015536337458934340508777277392102994843023263622506184083178009221582881517041068845652826865915231310632829373319658417745590744608291100310267837584466375025051410067882636998697125589346697354310403737230915072545351612762520635474693991965899477086255161805950326978578567949957622704502336810177501744337607557100009778496913977481170257233530385970247358659553847564149544048446342423757892689067342670959722000306110834546183147098695887911002836919993793409142190259844293216942534452986891068987420919755258241182049975650897137111836892638225893021018428397825336595907416644061108799923818722006988352444354172892834160394419661197389961684144488757475004961596623236156656529743103499171986133289086301698979818059573273591298459390956338213628781912138738641037304323783383984037397170329178278243944566249706771262048253319133428864496897194508655324442088746418827794345749787147588254688266356043535288369575861961831262982991105781907367003067426432445908847802154655159808619652171700268990660961218446111557917036395485730531562652734079272203217273277259977359862041973524552636468531455217902631041070166575460917020961950654621037926466424932706418968681794429769484973502756409018627106303559105180837355384206322918205919751488656632573986489889525568206968056777979075112335286389399228757084215341545206159392888564491714951482037929372166389409170311009142887302042421699932648091404266221267011832210360726334522687070778059252382834016431804954063026367734617257589814924190711975506437760116454679844330459583506195553846744729041622380660675360298320916693703701588178007702033922118665615844726973824161529228244964422381117934602094127368606024661998040409544099833772501908467682339975333792818692076769002204398015591957577986900428327346781272304800222642453591046341756478082487001205425832679341653541616478991449447616511526297557752051568685929485199450504775483253277387795589002340202449864329393051934371511678470141791204490652610572041701209167859122881919374128390780981742443001955938113152224481460057889330939210595101111379796823188741607816005278761676374576105382905107192870255339101331358364460545491038196474625191061858200814182179716650168061428318473790938640946424843986700852800997548183653174299340310519133201182755677098352168471410430148795194027158829981611861910181994742579059327589907264232562403166422242468713811964773840280757779056416184822440964723505548128235459451359540437410177762686508887620949096612095391956648263132836279271190596068039470461989578807017269561000609014523950750231931095392185216584771361049619669859891461854361565408657984768253610396821654841556576242448348623168775022221382916996082134990612407486562593599802374307820052800379706997215164849050235289772385503633591598343931716185039191049966959589730796450899910755483980773891512761775209950038483799764538593283398630482817468332313739957676739232986207969164741444286121033354694192825691661294563846906314507024606884425350469653825584801311790674261459983422657474578993670089939782299834144232584052439000928768425935691512532006244965586600719825944076626228619248265962379957374416891332291841946009056541334233460373582977759240420782411144134044098620316923687410433253578046517407057794948847859335265947902132999469164975009633888827968871230084084792697343158598538464134412110387386810623859170401586846544999931917853507823370224787612006249463212063512319393933986788652930814947290778081919611773443159763667552742793663011377060311302061708400284519123705177172047370774863009483950207304215978037571068243302186636523967713016151355812681271862035793321996225194768067315252497510727179063071537816931400471043187809985831113893520725423768894711299665106492738995025689089762116367688274654959544618499504446365621565180030595424691869804580270877527959400502391468333329876601585580036730651531348701790349149673558127887600459519220605835832351392601328172997834133526315588044158821776508694004367198649680972387924619865179992123087994724752783593330478545914827836476221454549025048868713092006845640680518920272875427272037347958365798750399791453442981079955242032660999023397188591039557682389683761992741967442018694747378262552263906178603166138095522079685333983940590221560470759941898521822571805740265957731073495816067481187259244989070759282339717464894862920406646656764028483761955472953293795833859325778852125069739997904139098373766028370285398248471493599009995716585952093522449998144267983109779167920768343832136124355786766614645407135265418309288486098443759863315386421189930546795133488132332314863741740461719487757511629737118533122960816205529270945858211431747803792906294541151895571187427061249143393881849582854847265141611646912833894315641568091348007003521050094402959157173244224929606025364525309065775045915853439917376889467985200234534653886126315954312447308685670372732824008723663604680904202065616683388096130829214938771587134833117219820431456091643763525056734969071233339888207599974417452821836083346207846285023781871699984084936080102101003145056311183412739918749896517073483939216020692359327107124087938388429738179205523750623218111961813176529529709064704564728696805790637932177181373041194340769155545996262750546204414268311136680641633622793062519331784034116778253944323639605907101094550420395776568431537787407528969016755912359643742795279011915629735306317511149700060585982741780129681193488426071879186177328943688479115553516499348821024606724379961081103805661410490023734178620763819301095924605720791201708404748769013815870054657375216539358682897930900597577551551219781238663089648626337325280740932342189863309339017275650843260203128657539545004607953630665987149206398879828134890241698579218395576845090866132230229395624520883784815595672986051355332242041440503755619768728626181742074993692271068668808082705427540147168689639416549391883880586090580602670717075901873241407327259090160837590769476944706244238199636658360530186661328618470328402995246483665004678072843165419733586927038379674814478802882818532007188308712528664146051408641133506088476684427202536039317341223957480909551347785301770726309059648130349906660911278833043787850880073425180220940419456932770606337497886800100258984141416963507972403906851654497830673805649652982799384426759899355004091430363119036939879432096738854998264294264875337083827846620391931625941858962051317257910259025404771234426958131553206986179075931947895528445068459671805683078503112472679554761552090144475987218597235200911111980518695999278602888258744566780912639911743234403390629420831618072876581843601875582193999252678080875824829335862612818560745237852876533255563892384981428356673050424573697391933921274417920094593217202410911079069325727410021490569190616489277134981437402099273839671048147316039926137970692693169571494246389733163147222683841953250660704441663475903366785418685018333769018063616458385512515998297181013647369443717152745701644459346216230344280809862536770068741147012887461519571568106714694051402282655048136281737265381976093535643760154716247923757521456946367157443655377899150996509328900316825187474717777441851024729716224486505198812202486255819431475094703645513390157164347997278837106885283547397633648260056872225128162326284160032957663410882652767142233199556979060708521823290463477666691051245902973185016400229569913318203813619549419455024103869906405990293374463449015288766225773117772072333937110658232206243610437797317153379413646834418523880403335409150236638392630594745142618492057945060647662540062244774143536508091982502223148440425172837044168539482064604861514577322032543700806783944814955317136303259997980835109005908412800430926867041116486878926865471171730702349739548897932341354775089002616014538098885282258123097315962132330945539929010138371850869745282791404232396308007109363686587348119193358085727032530746008940707610885696124265060221188341288337369801500251645321469966088222392031902024999459634662715661357134226614070927788814744444402679568931240242677629396030012585327450031842715985896640616455671991736671292311050209985037031472850844299370272794613966497482349452156035136223808531083870449596515361089595210309952635391223989381720885852235143852057874508842342885500149428804030663891108436102338348392909557249841936999815327730573487157840987941326266383664569160760758127535724213797465109819348858027159501718708012071224043583714799981186358839904950350005359379264477049495435933635949236203652386827459723661927211216453202811892700822905066990824760704231033864837552567652733133482961964907313121137724499767119562950916775073908861761896508756137818825644532711575261756412395406450474785375108520151155023146174728030936188745813731969707566551747691541836526946994703960054415358341845909856902127474424853523505857978649648733053463310153269265560488969352641619650176499680433152681298885496297097138383184237561175235735288974895005801823813619807574570900346418127630797818200305764161131941824280822067194680419432848102516150545107502463350578516463335318105001846659096562329542066033440755183179533158725399307909692375050721796032969259521506530974878948227810590188418535668697697039559840391451633589303794000790597459618305023029149566590634867570682554217575167242443769177563808780696577077101621711797011133886626191316889760991825407818252914296750198380079445302732901531925373339249143268781305707413942548649771012734610588089371647505907118022823567381592065842115083219667942047839724119183019836568491413604418819127032082325181947798915971632851290566994533500414661826968879953744151986437516621407153053783049919868148319082770014832743410027359706132006981366932254771623134356129414288905192611441817454243096099563834495954385118555649068013890864758899307272241427532915495189344758019189584436452778931118825088369318663983646994172631149950088833803511119351417476392531672815155852566551642387583636489077583145415263857561111210566507574038395444333162059934800221166318254345689755823765992976278955865994922606856367049451394618493364619796127406523208063781720011152838473187835048327411252402353384914067583877045556665305748356123953187471378075179878967794598118816039440922359668521530166076474862857000783779548565703460400268480615975848646003088294093855714718620590814193366805208049128452808189862555849724994560000976383576020531262674281479891104993848427192748966398206796458199646874411378888541765518043858855306736647784540085702911460036523886274221039108016447069798837247761406573909477472647985189660042229039414260961708939200466677371848240479018665676389678643285096412527756853281889950682743484138683276456854600546058182727272130504687520182141778398432740315383994187170450429463712129799555208341658513649541456271838747073141453099298545149746365248394782829038957114924111190970917338523984834573962100931611173023578406756862019189085545161700557076602225992778479354072958166793832988434949138358234497974540443126624356424201775810990028866154403465927156171742674136875865171401121071739530822664316709368173150090051726885556630874405225458209562829834876560072760316154537727615342075849781834162481488279096670668978275614939313081237664766703369046678205878471354186696838114252768375568530718517314160301375009895604002057942273637158902633290548711907433882807345027953662043445351926513151827265850286796812512396222299291294154233063572260239925218370238214326262396567836158781654905373233381847755038386050731222744763064678592672715451770704406388799551352616318095418525319240889332964005698048814909871815511963197001379642469724625811035342034982678520173849759443847506370650053018136191717503723510190917316488912296501313837089454296923504586080799113149824252385244440712628020081567900284705931795190900285178186897796543513972541384357830468360786950908813681507801209992479143819835196162489820513822226650325755680298810377130929598621584814323138940719110902325072461354566148814701800475715845342049026449609357764726664524438656860319930314492243312968535268145189140112906412709880259392475430282517523902793168922633849490066112849154122271814450710021159275871651373860026677768399334677362858523554359717444866994766326166837115065228656126107496669294555529113575173410344894754666275553101983542564907136152140882593589695840516163207815550236327705185732566724130554326722672513347964029677417849516322518211042604493358818280780516765776397505854788639078348163225715820861565994395834328612549197241336718320754827382683807240094807085688186921454246111245681163066819152485502298777915910185921422742908649986290404248334384826513744347447272745802288001064888919043630638971949521266748903260035906247310454608675133284701688883994348839750031985474585620515158922480165339108245512796203372167378025523665975065114621275362333752287685661935822617688942096883535357813948352938799146322445006707165465211148544775222168482075960532051655580481913055409232990198274795917431702180865739564417887788043688537510025638796568141819139322530102092691056536591415643787498520143012719693870821922678775423405825804410220145221235112091983691229888859654085742397239345694150178834687510218622280169421360868812411424379095380103750149276696301656128999494279795480645942445011030561464210781003394391671917868353758085515257415067327624081089408200018904778830372304351274927584442854142417605162634947492462656742397404661042052480621163003284355733793480973461979431384349214702714198131313203927557577819159301212163859932470495659601481327499607840081411000917425815095600096288296347748811080058936562702505685171683441901268277426999982836827146673719022844036457123120609636612689727328482663155155972753231361015322331113266035218074484125592480706079480443773771237422911607417941490218405446316275646376759556077406011781303308940986947096746990644871566277685832439140228129319428648540484701727845531119226319964900002738403514294025893654823641831848758444370802354340934538155827151032144801649962834783106429399985710402864893403817733053461112949783406870915813901685697884932279238665982198203532376723709898713889716553221880592661493600662180028761736502600854087076979496370792814171609221662029057462359856997627196656453051339868402074660284556365579001943309171956433402050455592493978435133561695779171679071752253748992400475650598604589419175848728078752597620872548712917023345682745048577031398216532738099774708805414513686814564187645767531379650321572705241942074339270713602108216078871114039978204056602312347417858946043886643913863889830915590673168094459084926373257491046167831339199837852704853289842593712148689150906150778264567699194256138929649170748384520707759859443584741815481483987875541477862309762395315866364349992008249415852821489300940670706494287255492681779164595227352617660475942644970031559457943123537068353036976689467859746010686755323163203775886040569441089793323919445084621258199168924783303880476590225845479960658400737289768702504489379794600428608399015670217634689130270432783393838496596403919084254691855607627956205672394054631275995687667099616478331115219856708936913389157516791064644407664669706616223582953572237414316584569605607108433077289744280612542490097752325506434282950934939624097972723300322079877678662574283656842663286125266488887138364185798843912561468559924828425902341755258590434247982257305867419890413106312368466893185456403350736644602687130448272220072448300119322399196618889271272867825896898975023805252726571524515504034190439672992152042725255921605294081602779458941986809866512214987861722677735325450096448342756209591449565342297787929583059349762106943402459459570010898603052998245982489817276093546415284752997374017408293136700048844081384747000455005689683987657008328390057816155585197857969324801576502847042097208658038465712409826460032633782094403345387551431392565089168003395913387975530850903695494176347309826932021111706174978433069527289582491633618063140685109556461665925051792610864754198408858309624607892141331750511789113160161266533695229438214464417411570532100751193586583037776794027968690147151032300537809058890019693529738937798439554625712024618299649656301941594172489973351859027844047836354413932475465352719008312079925731901374142507789333541630922532571122918586934353946488482077303927017858132572230492345810150659194974477890230049507564548044023220558655356347331340345848495287915606434934583856611042601173914968506517364928009180858725223212883855335864940400900765568692682100756971166712964382064027882569676584192092121368307828126112854256891311251035356451737488057690129334395912888402838233115927695109962027331105713136630735741673238454048342947079118560373869911594493754608321525650698024591989850969274480609719185501998835106701098542830948894650369885463321144524607180636143331203740947369037666382044570685074044258256886138035518322915864062783177831188204890838408936873743068770905563599246652862874583938317802633700510532150029137810914666936137014877642651744840296497581431432278084833795554669821062537145749469006357473727641910339567717424786815663269554081801604137071151496948844934099452786291284636495771866402190249569067970466261687245595373805720220409708724614348705938233334974170857224494635415108835574717348835769105963815346583714539203426750884711251090640382960101179911461080069013767128367466313950464461113016396451051760098637599870405393364168429911161365191337714179429006564159966803177128534652468999916768044605724292372515256349205086152566726423451509438547990009702201128636369217164436619827225378230632186921528753403674153263257016276158875055451493503194168543760660187227570939812017962539587449138656906651101066432672099283739781595003569988090652979261007325077072328287961420210580856428308198523585119625160663577137880076452243921868920640598933602418105473402278681228650734366995234507859536617040063967736254254270487158323505456552359780917502873873941549662123251555631484509680175829474118312978114709148487704204738815805966380899108581789924236855453023587421654621653622138502085566679865988862964907517862257828022894027393575750095946049406879630444690132248768110261685258002990666915438532555172523360819861290320861232104072529218733134800428471117461697228078588413226272995947851352643341864690796799084220710846051270344196001617246508446946622676021255888399743403134830915669785070706266408975299136190324285356080831448503477439433230672204921295404742973521943769621338595337967261562881684446347437901610293836303383388549699911235733467887377385677708148558067830375159024514824324474778679924248123676746509840997050246895762302945031605479247996653032530840679075736179133145155887332152710873517455864202601596523710953117599261677485395470427130339157781238448602135364361980305529951177826646219968735124038359594023337871978319184149289512573206615919242252984722854730619986681228400330758987710824664252125457208057645209356272765639259958659811434938590251123459919715110616598695771771586812117591709733641283487613789938962225435909692565229482920328741827301823282323833231948494498850794460029416677205559927897200114491056741227379509736296485017741709758105560837782545271590897152350343588938069647209197174913577189302740852708810574190399452856322358222513655466329283446423492780173519576585181519386990773048617051556607118448943835322505927867607115231252276332112260830705408816560137547862727336181475674198837966789379636822370644995655938022813815314837396187481874985689334710404885116421134175994369547249996151325303487369518003063361660381263479249907777056059362401189069946666899131401581379421336993577300164593479771395951051621181409106736035337119524264083618679814199639487494617310248071724835437863486374006733478726905879719753448479437654259353560271245668835229222724430234707088920201462127217802808017628407921877710406506298089016096522925981469433676921331416290220698581945859237272989889240648894680922953150230218385427992204881291469219895149529138913623591783102558602306355523910058096970985231563444939498105334539278206434803188822327055983946583468509453547701865739623714693537353085308903253094662909256128917951058099156105457844118541667106160158330399999917323394354611981351540449227166535528835863859260038696426671238764450912886433214249075632963358735327062153365605616324431108524353888409227185873448636693807134026190102034251028057542177815206599271099392431362249209588435309409942971931317489345800331708154520122542685573515907669694083494587599272959747992064116347092797620873377330065507135758687892423152287949979937844795161834086356013402027988222218934133985216359215338828938516502855460760479258384114440423921737069032027628972800906239885705524657814642865200603401738927165475737241325366713561606036060149032827466276455662901493050585006452839659987864295458487476042278569002997777597140795294810360836241368125054941714514162091680757838657480857021993413851463580885795989068925292371018184152902226054032984355519005226304421080205463157425882135362693877372279058363663817748285498902444544452042720942917692468000776477938348698501326100469943085514507536579127617690177592116383370375272542562434959643539491375048117065064508163570385896496596856878289689530090900573449331417826182991554775230424476554467765399471579978844897979530653773470777973602594321869354966725986428590660560097487654218389176768892193062226711862826777462230254413244431365182791591184442586247440148512244834673402402852438930184272805345819380639894281944213371364523206769185648198565845480479788603207419054169738969570983922000448113506486484280006762917516617500717496981585487592345216379190763185889696124910373651670396725556764237426915712559425491815350068648370470263746767977262907263149241105798647859398363004720435180691437491144964238245577289528611579759400700096695837270065864885341577528603659772181180510892382776322186570309298044461630564212863564599979538602785033993181717686436774810760102410742813931079346950200424860415215965742153333578229423338562479117919101972569472544986233875803042376319052123030123891659434613605133851134804615618343941633242783653490941835150243273245609763848129194038312475545668287821917974538291855528412816076767708770260049400084581927908586870625565187482339211420641376295855514661784343889569079205196815658154732936772799098161005239419953294484166339413854583644415889133483737316654149076884514555423451446085661854857793646336896599650167641586186197473817531118946446952940323123418562806430869224299893841790961418634284309727138396760789690185257265040954497770939612980180250189867154286095680631703055047179774458333863538051099800368958800073006863953614739748659872865265732483052102639321171379670573801911147415642028195361139967703198460271945015435568169061218532237552821324121112810915335238337667843265714159041630328373704569652309716076784233049946327516989703330863751849572812293364181776808273230975691419632560210179067815217638738988851432100991956312317368563373335768271067195554555388880103975637409485282923794989394158725990493190352983553426000392213923692396983348327345551046115356040425124427590253339798243417590231277888304638188590273583841443113297758333222970390345947842894624149852923533870467989345622455765439040750569676032149591616628107789778905891627743977687126209423488777585051066821586451073374871140594209797010491508217148052932899803873172624618952078740200603971170151308019769583342350439471698542731143608187156045011091334254846172666232983970973954048071523043063040909690471874692206216678719519176276194767982530203170899107776637271848904007435671038527199314808741501786972963940910383896187423198839690493945167389322363973646727672738886762271226047025872270017381293114773365374476870105452067677168661800414618934340626691285934064539344879361924946380448500319050952150313055515944762404214371788466982591566667195741328836963056807596826742488342660431336701508375257979489861775806742603093407469942220145687692773254726426261033650803114960213420168916746629376638746946858694003161947497249981713464918429368079949821031918602194372745402131742550654944823799912438455796594957850165322017870198396445638954360417461834580985499550456869204414258378746944628643890931300331185069285580758357902809130881760425608181949783805853619232356008583966253494912604880342977046423246378718284335372436647759774841372581943452685364283941398920292909678860230354191562392180748960065959807357755234644801178490871050808502768053021980972534559160256879221215757381307593456483685123614135961876389283159375000408084127454825447819053795140235502366064169673757030431325312163277579650386226707837761047315537278217163871937310553851577695132715227708749164120053579449739079595759190174745453114510448865928071345194821830597875768769275465964573300980502615152885314210581109693773957013975011048432544744716432793614026390759222426899928803304501168440543856361776261979220187023892833013467507937774907700677870790992383889959466888689745032565873300349106339367610751945287420500528838277045646978972790163294483112425318325462368130212033749428307103324031594522199144730496026847935890441476061421016085625918420019835511729379066834558417894423288767986211605187990509922764988973818289781740193882655088735389961259252545844623592943892166022318077579149957668603955916640867176699589510351093228147428686396403645866548616834723046975274747151024582634252163998570228114550068100829736914465010702355731701089424526551245119683796093557459394349575406624228998449850068295787327249190667968732015189682160380989062067068086855611377757345039218856682207789790492834325962131892397016378817737064998609799436880103357282662933799680014330671271035100621668980553518919879438903712582163753408374965520072315360388980869077124110146316707389908478213390543532754980809374220454784891787860773666664244688151454913498403615785502723250617746042898619275740491536036356699458394049772981386322702237620451865616729569598580278949650741302607950570050586775102122122759726087844710677733672912541955616161047165364469909045676032001346636080981101292941112887804105767540234279920324394679210375750864104421506991482384780791578385867261624754666160441811842651602460887944445153186061143008339117984812264914004144367945324686188371618068806121529328478765384919162731417479831056126043942932500529349982372689867298829419657321388232483084038214737447455330207484281565669442016298596262565283436990826333891215510058976476872171387588043723365937178146972989790651600319717663752805288925135691941517832147065914536260745455163125900731119389744054004619112262528926586050786233163239738834820077004022141479839768265930508976963849010982818555378467992593706195872616529650153486686741019916571569607894068726222366268346464548966211087391236786302913778747266027042244705800859306385451623859962677909169301685440181276835602398845812080661350110253931823013596944478753917133300367570108146203670443387711236594424764069036199932573815907889636370333192620734045383161934063424444958133650229089337044678459730174538821526027121965434532126685459724875987253861556601013011370149303490693709553138498992085037765797806857638662166220503922848740556851308562019845634733304807616102896715271541713535342040035202088084662129156641949329896464713107560971491866021250688785003637752524765764178343210883960255528211091857358357760762737769429597562125173993014520446189331794360406359962076174014875183085372899976502501173383277330846877849926113205317343286154770368862751218861244024177152518683102308799129120642582712494303572339044977074443878776141890794420426190058257590107751793394836327574172701366882297591072320961011322448093091326503254324531522911075061115524820078176210689965998542573882806272904492321954486443302062509013303581457898305022172853079068083520505322598773308023619910532495864035256664537494999553963930790207429530120788744265641375987808693020358522278135717990477691896317034990500715400699679306222883248938911342256867061379565837671608018375038861951071720338847192693778111376445642772256818641585707829094620176942973557245996581984737956806968232667556852224500982018248605356848835941548590097278778724405595250631785182217353940476924396373576528082202351621570333692223493133855863171915967237717995005768490989481107412862164539410743530365488809808124017451027958353150172894141113810844204076031566750137023990705803021553316223351631702938986179372081532284396620151734166407628055402008750283397197878239766241480414282270565513575303866260598660902702277118734665382431666978355921347907380066941316646002092594129137927656680709470897293877555625465136001365134022310251542392138312214366250197232831558998922469396839486538012038601108361630565613287550807412350932313467282197326863980344699599645286280963302284550853513749773369947423516883042480597783351072472027374188429417525413252389667359288410971416356278889881916766545065439672970056160142498427478653326568710241756036279045257051967485367038373289535104271350771396685676170777678148704380201542504766684698958900255799370340341454886370759762329485386921833379101332598433687521008467779119329368581175425956094363666030550813530638855805444603815574916863911530246420392153745032047228171769047420764104574172962044452983882893461493490032320420582178303050367844341462852768531044061182127248836484225299313675096817619965480500200561039428631366208144534775919467002216154573244707568292192159313113640056774465699089490965987912669928995375374190259422700849810087790804996592687558556039214500949023962748081159490034824607828383872021390862016711704619086851407858773110835433625035302970699815391648369771167219607680886380559701459595228882304937473543878258211070664467790872956230100589694524234433600775891835807707527826989032024312718216601569596783549917864555805533314607122269587973563243387345151259154409335171706455267557506183122718307959179322445944437892240366662458117430364449952501290843918603947700099167786660592709602040211136652777279858574245810347464060295580063575791375630893167720963340301609805662001029604042630264584450499112186410746978784857843888963723992209978003471975798500959114378693126660710023589112180056208376183861583133845180325466131433212754900752631580398458104450192169715582186063623347633046706041979861804494234291332257666952304466895903823488578117789046379425757012940863612246370034606457021517427344841529220158111513315549204689597871989231377802610196745740751095616463015252548675099465895775746251773060481611819687029535032755277307272328573306330516110954656167797047244494630490704979877973573676832496307804442513804986879979791286253410430681507275701952462600923389558269171523931453631336414712658958384261904940122379458925598825572108060620057514767364110793322511325333689591505418270347192055429487645791197559709404989873947499810857053960002390410033631190121598219570331932649526885666872657622144328738475646194034164800251764832885740563163551289019578080027859235770672645761485929990219223552184507897317274016968265434789965005005251933488906462779156885043567960350496070216951993223573198285811148017729968668551120278300653475227087501552436687269368315195731408050859964086808854726330949149315342062716629344662783454568476347405917416256899966362686273693295868214088238223128036635561689078217574051222669433583543359260746309207777242940478755158660460420299845366030666703004427965818462619371396524784315742971654495319845649354765141264794818106430556040934023735509858393869376566216266870836697424648670938665350842887853520701315386704639128826155835598347524295784750879683304498935961635777201364219424818292153204696468682776818201832029898643745074915643054620168606231197208350573675059730017297785865823401941985395808877488400861868622557715170062296112610051577773423136546976737329456773267745446173717338883058301297570423009916758711768767060194799020397806466902024018225327135839621240133700281968199537359166672587351498660099285675986802482094189349022693993451471847179495615713293480273246911104064590215339444915168838615004907950112142484506434893437975784624561306256537207722794694777769520806026602704073767992727028359527357974036670358323228172282080319301482673659410269332854488985436806400383039328139634224817524088365006580914046083974128678134397444497428257871393432781817762946224566868709766067454941869301785381976862371214735163276235275317577964469369018662605096727804462082764118975166255673308012658731450401242552041678051919090139271399630322779457533977886129880661290751510085155316825301805257090249243520988180489989039447027084653727823264425996136431392965011589261595023972127220338355597846434839054926734334959288399524668305333564490378641620119558507485536367255844297736061834625304623392345184645545697891358484171432879768510801308053991557387117905633759538867990701654073216932792592665566272706778496524511448430521592968591146611913638871391934967453536688257589425733973017347405202675543901149845152150049121353045900279046641737105661210344480481791425776010800545870974197447671376099897817961714837406629803725205309159207237055217962424666495193172530745288396612668375604867250808505266900984801772471745927000339442350581598096657822087025088876743089722232395228443889516822910357771151510280470727029929178238171636042806779135131534426981871267636842022489009131208369949285431940123559505585087241284689705916818482721677094026012939782970255676863086304687906266046518372992944738008065311040724825589464774154849831550914989599771032152533993029530287698580333769852556917466847247391304373779155958824062715996214529520250083242333877422523913894486827586051316533628501381583381801886103614884924134264880700806698649516884800403873886032988933752638593906837972631261307662896161917797727769843349113860502621493072512174239489705483965868368107428310525875822674082329345634526897628348126412881324529454731719857192275162764924775769608821782965042605640810153705325740858444865322366895649392756221908604760979521022467531071178969469531175417983280418717282637988473437022033041824979951340592622998555760073323078780816097675639404022705730415766669943764385277692194062751725130910501258749847786280108817674649991849342839301436072338005834759109162781141694271675177780042684044058874401040906909099060406145621932276149061962179127512555850734970654127013218801027846895659964719549760118291789667898043303738193643097787122416699408549709439662488041571696133058201909660084303173377919377763941353402845831074579338378672950839357396993863407583565042047462608147578965785545674870391265116546047092117103586019981051705994880730178380608125992770439213374781740484428171394243862111835122924884795583748067789468420813288716026745887774677832038222950781740451602062094819181727688017067739934117873638588580665953149253378614227817222194443072123504314189117273196127215451651015276268183798132164854437667357022100723967108833862255242347689565877391314190992176262227019595303887878940708176830209109134163643957619370809396140297758442413634857404939935657649975860814863753741859873680467157136652520174046328729690999625076220962135351165257053989887595399563187329635390469800886371086444925193644880257646500117460046179458315895624636845312818310930283695978625780835138392146476538604851969269994588515474795674485518032302281083849398307711402864033823179760954293076804391583998347131614157278285052883938063234754857725602592330882500784999040715729258264047970393457531304565337396708559343560963584783054415264532560507901784506449700746155883024862589898769725757162035282656596570813619670719536667308898174071353003984856556138007824991298375861036984382249998195639993057869702270685233251454777782643958699542509706167380710267603224920449330480480478029316505510267383516152407829233920623357581578913041814468771137115282778183642458460126835253993563421945263020891187103493298893263189770353208302009969717155324401850180586467140250591920556022530847390316798043147310225419180423988244986409848015791994142884158739887422654559059121583212640429876328955094856058959835346069155501268819543168548557369272943070151317290832223367256503485817413666765311540397467388812398126896665022818379958798201622393144339352730449829565328617595512846029239579301375602878131879433148692400062098126329756147434998513488238638562614458273874869496325194686819919373987977246441581556820752971677878171081451248150187799274414731735236729673480272796656568418406759173320293446482346617191054050880655897685098227120510734775669684925241125094643614003611139417726564138301997638830148143591453489887097787206200764518327775438474459332708706724559424758658546097993544458074454352130076397226824824941272911008674831265679236501040979331099775579461978750289972579120935958477583524760537813046479478338441098224916252710344992608978905210011221414882458696258622918290096114714579670202501365042851061088790404944853926690910682702643989907868126688696807625781110948843972486078275474538058618202202580056916422032079214624891076187959744739973426213988657270264190347426860273911757782424393757760890103372113243258765952031802517913101297382855925520744797851785469306829454788443117868114898426909610389982644132221732772262650217256749561138679338462103593903520459374745419068516023854091206893058874398257373766474595728846785054553282585861301881966402466419317423514203434541431736680357336757080222004329686431638611955000154731141144701470233516535491372002598887620342078128599219450992515268804399006745103001746777026484196118084971099622467613783306526343420629748326417199941343663140094981750258751488518694099775451735833270652029844483051463687193749918521823142179408046955744788157725579033704103726224755904020909031428759654669512814721011726011223315652667994346793858398232283551248772051224116762799592142158848436692571984897016466724399991764601998556357921932230217017426189506417210266323917324233866070386179341808230625741820632984663911066653801195185994846115363270258654619063378385057372906425900327246493448586851277915621467104060542626110260419888682090209854567463944294754238902625238292204077088123842688992736357444567147176065145710690419643573308526501859761613769059247202651636142537392091796790991751881161852633523705894808899429543494197417903231694010117221483000907325181658089832363361513554132137267893672043087863339784203431960412463187580928953589861582821332533278368995888547904534579012297425950503164690200646474958537152815999127518363156668445318071656954085836752789533356296841132985179516633449045205804709199864227022015436497092947159184415231929832382915316627841532329716128774451696874061807125645243275561054292223228213684803923423052356125650586340274084382506803400157673272708323447560565938183790820208665009962897265161091163434249250950234793023961654638721075513953230079213172211919587802186209735143495613282128627499145564718243227940301715348827349811625000922222177605157104721700035839618448095646457227408971269053660348797184362998004121430070471140328297389430921818588464404591242826235622986577573419689725995684447875462029403295807510511294810549448142064231821640650007762013998461896703211216991817380843099912624348783439245275385173341427311321183989597411520851683577940415384606669109398669212702807912607549170485991834641343197119525168713373935299215327712018716937261947471331480808906494065988489416383584736105206152799066796379538208656189474514316119240340798576143507047248497926503307386371822168819284654699828773504886850429603487002593959434551354840145204750262259095313084051630758474546013572188985593166950946563640389041461019723958053747599862621166534616940733713484200483583910272325800652370236861105181816828878225309241699987694302166632977752952910165439519413254285004216081504568769957981274730637197927386612611436035117080556215760016182116907667423349821016320287532475793087255158254858970773718367925893111902606003567440716789407250055865559315590639910961300220157712064441394187492771423603160799062079343868905190289649064132520634290246995018837306235335351824015383231766815554682899725818447457072180776535194248069659010218231560451997756582755021782353430436588292203924984135489274714693375702004686153059764440589809127073968992768255769290872890101368402230854439187581424850091713600612815132376952329508624482476310823648503928254978172592764018681318790470766691672305851444501330120344088023722897399884803857132189132476970321676534230340176874977992969598465097930955461856020193869851354375526588666698710130131775130384472461848009581614567984387994822419126763030522545490315848868572765753398644376582459514443266723044705396611519330648730403973942274309576102462120106760747626133258165138895756033917530605358276680327500961271911531025927954248295193780844772254382170398290214768077440092752896476198672798254558221538764716910998124738336951899669145487849361325940223597500996945590488437674419516470164636593993124799308761720740998791278815343002426557208750155089019165259169432924676052718843403473230310090414572579451472603975351240544189109165985164602609480896801885323243378074749472635983128802669427093745236756705994730141668710487242988653595892592366912494187521444649217008903796490606598327713820589407984979355771399563184352951722677975980259681599231809044871233202582630386680534712863166815912179452408802315837313689397841010533209871618845843340965013123501329274715821987245903487111318317140502158892547854408410056845850577780002464963253139484503873497561905965429250885054342200934597001011822915008487113467536931243811620958038753218214014095992879276255635824561415418033048333044753093143360722858745136699801285950460438408953875290590504396521359254438841050275166714804132221392767607413391215316702302098098513139580598213948934612940710779900503878536586515880225484058955258348497551112758015642682486200659311358333929526588284885761717348558993726120938488732106665435020776180595067272019264381054657791192862015458133416395541948521245971448931640301381642923015542443292107741875410875366520591102948037932408191200711148245479095810645529536919085157366275952649491214720900210708387747789842871933029294582393396791256650963261816393749379554178201130459399884781252516331226379451065597035036009874350898080343785971189188863667658588644641869024658969284694180611600682559727970065985917374990901378082064653812791425666683807816331243558802171152942601808440651568932712194326809391044840596196679048950182418124580138539249602131849565682618153746266163535951746483930407544493235353272743345487177242738938010559816366512108784898993824399762519807599365618961509143662450348236686682709626210924194214414831941483462945262630276922492324178696739499005297009869183494762023693765740287807370764334351853335199284120295322503041503111271300179975396130750614274755683392863992656419094780500102751722921722018040915797417130686400236114628103302777614604226897566592113118258082256280662149652830073052475435731280509249061062220902387026645195282995968690607796123512248385278504198809517643844685356246928384868543727040293689811545363646941144069567319483783538555261069597956158680823614548872154039508783230701525531676120833694243506403105315954041650457434139942767763326252342830941678841456140009006657524760695759556308844466190528709896106381172117917017421142671384660496170388912901221949603336690095664848151255135691616649443265122240240350602909428852120646269174875052397443436874405409925202357316973068501575283192989284171331100532433236790133851215884886155098916864886608141441714463654654345580854753620252854403737737583245317454691439715586428779848702564018852091261564700802734263201189850380628633481833353034470076745701580019431175253145001783832980540683131983925344492434709546659405555206976602767271290132347004366296415256105522974445248920493736194710914746339237849334511358850940118059294857355751462528097273799872253613003990685672438012284456002942285995869812750442715140412909627533774080450049046052363979470059537183628622315888065688318768970156809678072987569993922096198439984232655400400615106492365138245156026858018701933455536816775750687890144321776649115165168667249639926910052435335611678173514939236122245336173126069299363973824367566931589519734463366297046450872881582523736463055185369998097892514752552330047657101240314533137876197382963839172145451836068970878890526113034063717093854643994324435222793081781457747621431321495028288443234878224964704910323644873639527782058243465139590495732678508117020260866749957371105128362095826523474530722579055324495124090790545165356647574975058277710858480147131780474539738521010117623442740124727794700014254786406920490817766288282797771907937425976269738442809453585023535516701017482083852484318095947062388064009478443739977763222316228262109911837121297336361741307936847170708689311907967069393638315908927711405456418012925108174982202584344235834770524021659461083715646324335476008284662542007816328581885443534003129702833255329272867902036576128744526263972181931503268902470518411722206664243683535995617382981155818953743171711069915933361922668421464658308470773836612748228276131192786617683609666408749235938723866486182932314351042536343422158884640615637386658932112321039076720648336108741960027216324984062617555578262877581339783287724407013262438886502898518330315764101722073313791332823178772487775662493469540268593921711844165669397216859323909138397214242114590654593449001237277650076060459966800787363648703447994265546099897070906472727435569774864806773488048572850196694586474521110236468646280027282716371972827130528613412334209198087834151095455938734980932209181330705738854543298659841718611755838898934711454946838715376052912402978479305096442936719658857315978436326108826442546594006553954688422548555501539694527683068801820987855270672337688992788056807625572768565241619314898458118216331485092430454313149636510638682789462857813978776481195094706912732508681855723305995280808462626202083638054817081621320910989090042498953212005299222838323866296844098384116729206392681079255469231074835119046922190427449638578458897352529735161332315492568586973250748925603900782847645661254742947062977738202098314207898842769096879375355307553916483348323608893582386634154034197495606887177956885094439575584787300801242672059316670392779681570717926973585203487054572450900966296013293043160114913165670050821353760652716712536378288558259926709157241750770952076537937645786433478807919562552079800568540590947695169640586303427761554520320216045007029572060573883263659025516919418166148834776583140024630601084127606419568648463260978581447618175132979431788912564972470767484896943070974096658626384051316397545209434194460061873329845508355487397953250181408965023324013414235558046389930377165426056182935131274752018038608391319850587126474368578844726641236347212734852619026157912147178955697550443437514689612739583529562476529753328330150892017259334134481524883629194440551757948331385862498859681144318917916503584171956492268615559053869760231877616151585157074075795710359114922271372213371057384809227823087651844291664817686891797324041086334455995206178308859109212871597131442289009524959474414404521854827835001716593235418738618238916914069566382479525231751675929959444784392537739585137190394187682531135059650702125438018133598570615087317713044836007738700786182669214252974552315960903005057143953725915242288468066468687866079032559961268395909527237751141688316496235632638021690930973740374656983329853875104669713879717720798028824217310906285812893923919679208438496916420835342417165007347933444520264435161377466312462412744437441481872942106873935096660165564051957864726779979847321015510520981740908509917949629228590382542904057468127927689212506683270325975542903558472147960349443752077021679887567015737213010092391624655592229762391819442034852807442527697053152045130447362124718242004659072522061030014623125360993990101065186908586528643284383169594640461334775200631101677687060038861473031231728324026459037855587128403576721398680739314080954394852586205392277346177769194841076255650812047112737972192841549518589161386979371091870720834337994150495665658640344653420612590855179724671502874506522191283329875790218170095147781688618251248124099416181140270278688043803638729820689658203976333536013082770910145770370847206327574303276326556652615533276929051194038724525414511254580395818994865255081399992748300607810808384453616405511115156175050349820331017852766529955946272772763248102898936713109773426025038809557413621130973186372555053919627947823954652387322501236068278830425424631756189669123443799104480466382126140873783755066332464321473355733146116530594465131349903324956281710192211740512206678743901693287529613531510765543492095630505740704849369750488010182112976295785883121175782467596047564311568757793784208611162596742759426967185815154632620119487578685967221511166498538796889770373467997894349156572599536148422951879214270760308703218996449119794366871618561462714572786826612880480081982658212179999297986626176597918628580298021207283511179429334035477712373184649173465617428231970581962400603664849876701888068406573274333199548576447136193884971382781438957039229322931554582189060942296589414521583050967237662654933513627366793310891697625250126475307941152697390746948421561813819473948537922647451929168935732279504378764479353921913711206451489796944219478344348058170413178323616673717613844786552497216856976986238291520401565129910323406087039291063623992722023198537039227188914696596985865841512581997079085788014039270589906071623554889731298968803416317467099570200751354154696910610879389332550150754089441194946287007872718947258128098610703245595904526726832845572491981914726777877903012925738654421017957194213981139607968557149169984245154965978829955768010771134537123338398736702264169988060761865934331383976654908886631182154542660787231684790081823162858296477218442034243761147300124212910238604869912132448250063320227090062907641717048092164386184178490444900675796587217250714203869657305652228144442119073758057482548262064569513229268308122473127989448883157542435615512351997213650796063514099668664718674168420467199802436600248467535288424414076675945857038328354663622915705249892987089984007698176977379850214272576276342460439742949183943533782475033346339565823892883772678592608149942250693250409807141898301634625721623465736469001988789807090006127735748512500388809706502228296824690657971659499722642443509123000945078494039431154629714321466706955113438193829154972328742190429653232982207910564796690487984988228748624687619434591099318434102126351982797146675735626374254320846941785022051510922279566083606167883322480025331094679866618727393984719238776359850337851068759071676964284595858194034639955383961897782190866989016532689913364731166676973999576457148716164087050955737953910417777982868520417416968732472236914266508815606791139536374067782950329154853474314673025446277741861021055203713246321153044754638514813153469978550448971525845648766006805984313876994952593942867185705525032540120387604801387097067303208487256352815498466496646342923012878251252891736403068441027394331598536697643011432373251283950859939245070815209084316108691468840105606954612359662323587427135516761538889390537691874699603102579947477342661877890494684809675650902100610026078345904964767292124424473555330213540918070671421045726957096395052050317726795289052820332739243817191873804721444847098269562811915532254644247272298020524102991950658327753955102783898994643161812761410326587796125349321319124682010397037414570758578674567035932938511006043405418999517814431994881996078816568187131126822595039979692827378754618280926147131925766719089301011403402299456213718144938480330924631230328731587320517694830544561294683941066057205789757425486550687896698608175463091227238770755805382997077663938118554807340733972253395396192270747694470493590210402809731779261227979041419215969207171739990446600886597569014581567699190764722299533243196400236869466293527130942824586217522094460102065730318995675755441990660307097512127812952272811105364918794016611119682708579322186246708163524777254868856234998688528122089535430394852980197008012007126828145535202705143224646298005763040131690418287775086957440316997528580202471855091512480969604838926637899326915784478733808472966473347179452642336069278336510194409274078470201545066523264213958942943327206618584197197440780062094159077409768184762838908229753276673298042472130218559830426379709059896543764171854727715452007525809781880481460255694055425612206100813264894507438074983621270525211923327754841240188958492351225112530955385070938654061071134566070994425723606660913989446057236804397599596285522958368494957854439600297138339586659861149608832587963010350175767700316256226235884407299436356461852642534292169939246828725894101564100483698731043794553438699264446556598329619058887388536179311853542918941630880348629034419610787678635118562283779742210531276727848411012159203724749930164314884639391993513421739379374960727867134365352714070078793002368318121030234354000412434346487188836835637719237015781420413955305375683872021055222105729727430270991678808489551609119063333414657002382910195588143788184140108908235444968224111992934411870303609212422057640011584289114483230078345833499040973296004935906806748015687505823512688523635333966264827247153665636199097972252694388263184942957707887308636751934494826060289652568083031973516016197522328390509733766073602508816222760583190948812578887479026125933965960967843156656319529073488996939273795407146908724973413093901821723939753066164487034293293221882595036398446409820147989218108513478542274857899157858341959462896699838779098073783518322349258818001386150841009957091513180748555872148878706662568717126809451527734909682158008463756042001294150101433412008657378927979406998358992875033517845109632093663287657469456676929446705557308958545981940989727098384847444997222059284716131077349154137352750302105540244187482727795516598924445996828512390198352026182005608258116043766186126716285099590900796457531317737821391725724778747622565226759121556262527936030641666678018840711539651151460673784658315284330560341084995290968670489969592428741710604420284477256909535225078525667158510149868352373915670979112341125953670292847772414564485170254026909265402742303040659189831502519111572410105581818140613469386140912999084242378369090247723318173683536695625441197592637180848342402533519329757978311941862594100354536041386825623097304125673289010277163303751076090314363112711742721149810479932070646419642578584888538656015645686800536388255122306210552866471466499219111069054812572269189033969593448246608764514157270730113565030426206802813891323931324843829646558766242118739059580801867857031610708051212923661341630705460096539809415053780992467759141864706222504229600786938660891960220096383238143783735570406804730573310862304690902771794019584130353487201627925473903819520033069331731946799208613211225047237339712866937964754596105138659578486844931509018703745723690958460910250143870277084287714296600569269917950063166166658796369890732260163560204753211350202967860260591608617380326789696720175367462782841155053854009373807301752876787052940850192050905532878297364017218127560650339787452366572410354273503506824747692272660534047804326656013538963433979372974855322168880570396255180770350164568051284669722495835353788334848751220888387012539462416407571069180534009133938630190975343931242975629446447914295097853650840534276145998575892497860399697439613088945326789766305172001610207742927120838539699267863495548610638788861000528361895780667220493646076986505911952705290291974996557122940585717703785985905578959027562368262539434262776160865149184524130133681103197880751316883888835260326868441211392025426623707852957997323359185305178310699591014088238983008647391206481804271947194151672692218275403686075726183731298632738356769063634101132055080835569733237043854131180133126905071823233863246024067654773832571570440162007051311513769605430807784228215718490607361842072321662957260356751901747534992689940877612246719498434535329174845143340767542248070908765655654152155989252671369238752183209043738698739091017595420191660455724709007037305572392404836806898493040868739387720822194262611860199834025869317635338772650666004003165929061489591071617906951489673677172361736383736759855799888598614366568106760871930655403580313235156809800841137762361571240564641202570287486049656256018315322467740410524217369595547242059174950293364411235622942125116546164474767293423657710498954782351396289486200216553441588397666422305559306173270841288019536203944531192023203237735472401489925312419781035198351209231290709779962297428258212177545363410864278851315838719076116335962440272232507902542972887381106203576979089317239436876103386407305082178112951433048955174054012972843006506877750972500148519663217613967063181029195617500363986393562154945283189079263797073563308284520516613837522114244906596571162196085824942763729123462733856298210179859919719367615445687734201370317898273699643927036138220920801342797972308896779758587290296748537864709523968898312674593163432337334892672629473231893406997551266178663853931772651129014586839210658460901808419631904529200525750799958829347194016345773468965144190318782674041041447404493490915205951197976722755438098062448390098531399571466098715344211035817657580562877198073633694482225489538925796257029987415820535725717220428627186792104463281074107428474172667647543675887676596062682074836978582858317638075726670122113848413804502697988874147868070518205980676001371857755135221353424802332040242957261549026229599179500770467899176431211719719949524010285986136876505546357208959373752429246540439333698803478122901489404274564763320259167122524084030330792122117304154137989656927079940350648389623352349557176831186040342257306655945909876015767725736307803355110431434579007822375928254836006723976850971123341638225086084695921790472730413761605420836067606450223238963452909186202036544041931151262652084387278640862807214840611506764680644500111538821240459385138643858108925372465564945293944957321070501665245429947892653001658786943369441195394307750639799898390905184401101860857856188554548712079330565134098435251829090158706893868700626657201572910894546588515412135976160346482398367129267552233507549711313941869267218036273420176660198675033930069898106963735884179823493895926630612478082333496270073416416860049368555143059423387239450103919512841682207464567008169793690377800451842144802374108804863164116056495340854807699029840828986161677898218660396946256246865367940809513338226576945939960305413102981665462748213800994322849076984604585353133746309137375623352111631406329886650419157979456618558619711902786703199770383265142972227790798384894371918259852859378269955468295267829682820759765118887747563912940063441459395054084715245324859845889738240886692973512898908147237095417133513309465459247414172259480748600637531251739860061233464815754760934314333603034746746548457295046398606327147000040542933396118665697927795860918713603798602930828437959086472691561043046869650905165184996918790552753467768639468123535233381362085236083460489547533014419900010039321258090188772412117928325204136752508197936642107664173316890320061712325691533276608884747057544297825828738416669115488225237554258034646175103815654212499452308200723784087605359186828605430117779240994173496352951537329504028732468479054157655174107559619976857670014452188555591977997282411088605634064636552447231250222773904690493079513944047003982741414398132792571314421684861853037179180903058852379501969548305250607828190460970709139820596554103983165685808604605093280181317501126579758172303134905846360210579270040676728455843346974661252881624363049523772672330422680213545557870946777933865303868976570512570529193433898044343427468544701619591500020265336685300990011683189771015916996341436205884902723014019846547569182294113542726903313583385290581158080398304578181764092929974138075709837717072390393686515808056027532658223812993100406984132132644545330683989325301864750354413971131865347353394676490530887761659289520887790915125862459700669831332326719951796883436876825110471731961688727766323347085643080746618179915212425279179554131377039496315136334936956742318638803592522211273593896836798333836858686696099255557762016389814560904520883935763950455900308734989764432499201920469670078292334044155427567063204763519169079183996556123665192349365880714185143931383543907564535075207679926679145125668390331085707267384310086424958200252500830441913929753380574138077767694011685168076349047158229842296554716837336324038497673258312947592055223304270695039188472653686240464203816082516567045857453303916880790024060588342663444572571005533362051896550285567157906280876843854471149247203450697345954013319158862580861445032877328078760072611941914741398803381670254117488539507131364233450692029031400833017428019168496827834532253140312228852538695222427211839981262446551162162770769170054357435270386284195617939374676886093591149134782096844608220331596494096258866382745808197657261322207710905228226424277100084089885694032160721995612495230626628954747350055754145199048344573746191173323099363947482829692151856530605259954071787914099087477719262328696998821856858372853474383267958454900348966978157984389611405295375953808673045403382323050584113622438487398090644023971005419994523685398969807705449104669967538937892369065132826629072219162111516363306080368915049794546157720468615699370463068115445865469086963849711155813462478645465503263035658593873247178306287952159418328315446735303887676239412709403559266528706351568905059025677337241059337871120184772488844200698365303344084337401925570914861493819073926420370034846783127968966970289175731726155550092625749148219085406949755373468792224144878994240687336209399425236129134042664976643513165301293840782004615374553620757730688479426833153927901880486680795242854668448663152106558982951736840214900047819566067167673281714081658907473842786438032564605451895617536364013733852830534362725597517507147905764507442627966213517254885141615833282388881087267236482087093065505975370123426175345399824789163247040447166575452458437845931506534439020250010389339161562832766187179584255096961008387178599592804120472890498643654126255338290310471603618729829621932610077768729699536585558142168732812735993401978347928982563582357124779601463309785733591879900316225323276210795242212641574638771259890917141944451960927713453209309273492125877774790833114735121146434980591389363736747030860659804199943737270056849345523807930161995050679206903812786697771902152773475833422069233203398367654194312245977699429275053982156603093852646056891039894341237695925219312066864364491340275559532925070858142621276509768795238452180767925736397982109207592547322630069100473674960233092186494726633250211747322792415723677133495801371000584916798677726904303263451856050076921918632290633909813719840848261331961000267200262658888188159185951781097974610929908954202074330359669517467871641905731017562775107118150206138678685113391774145583680144484754190811774183625224092892321490905282732984332903328292825581647867986143093801268626937401849107700429564293112197077828156602021749853403978689322287190181231594941307707638671958931833842066034143053264746890484694358146089186955573930051133294341943671843171124922888387726075834614188273528228781647200725097278691047104586361120283821860831237429223869141458265473488646648894209880354688191503487884780883840626197787403871162724233205216904508729383055499925093400757516405603993657619713356507211908237639763963861723127965073813045935148298100491932426129259182831939784386223791289841213790458283991018254806151867318721934053787977298347719361676376383256621531288367057212787089061745934248807404894955052112186900979508590033938652930446459481807269301298720704657558833300190550445565093026873499362943996726622869924552213215227509938908697385104535272214280679917909205229487749094412308167830059393170536526777322092510907443509765701860318260184023460244580091290344333358132549827653659670334072098201831101714251091918224653345702131254522680622382751940463667891525950338637059928355816517820777749134739546270835869600907935636188728392980651219510906526387714448433282741734944006604373754149045672491018691418955121170618440121038979378276148268057232578698763865066370279080972825231360545145271450983302667858459203642435826239937465656161889392970762292043212408793338782205724712038047397081046477762535599231880118338557651581483723646674520432177772206069288147260479947688798649528576152765688025028921094298030170270861302574977349231478851378391641113976076985065876399253565260012235747583938247073247568978361602962186513903646707553546442573017969885348966317984881305730419263619572329058133009683961010293837431873462058953386187199899725404277968958450148306956701167721077975169243392009105881517221358869164058429040610704589602881605352110054986295406806033176849708404890630332704276485673248988419277567349305452120771738973008656395771295943349286878859804142626200134263800149189877909726891419043813714216768425058650664045012625774812234177779504855641957409380506223666999881425521853949678508546415508222923562411277059071755276672349164661365213925321602468484575324624742719990700719109321766386097312766420689894056269571226149936645797526398782226275778445637419307146178591091113239593428356410139949933936826270812792806015831084525795915995155101194521164145399002258529048293025403426807296837303209931988526188777622049085929919299556138216940499881301248526315874662989843844653357232653033383823921714568193264316354156393448236544434862145811652053648959345306199023491865215033334415116041426492051989857171938221530891158204700635891056643956182078427979038452886878165551022459628589617791685356975471014178500939330616330227210039746828730881584362918145153817900163241538757881410545441752525256457776274762612397807917603230387061519715384934213248104189695979742221587320479575881189037004608713809319558624205583857385477320399286462942040338108045408542569996552424630831186560878934972445198920134711955672929087136045063741564337398844333679421024862040598485832678360386620361478484915608027327015591180649880871410866540586972377789368915934283921656364831396207196939622537093638781579249468042030661939539203811782662859140235936869343948146199814358959807970916020906588753917906509406770841178667606768064848999348780664807154579531978234139387077958153491454340353284971278762251458144647461909393127597627144426402384057503735018819503809038205390607296171666466284240180178880346151800052519556803137630055322084244916637510064612035889737996644147490568763908703360581129872027046688387657486505168254679582406578801581249234659046479615317465553286797076354666411793214087484888580194251397276004741359985075239994681791910022057838471167030442824655854771144212358032252689926826414784060243302219191900980418880649261810264914629123820438803734963819361149116154518665196202300481337868336350515794081787107873087347922050883800229853135760294463001212166701112798854384020307449652302733889379680140645257226076655877658449891004045191890908173871080432004069706703907176690036555901914391791840198130647813320538391212630047299833875087193117562142107323965920188845565063458257264830925368770282028674579800929861000923252051372386494077357963477354456148120628026936885988753873760207971323511499484579231311783632975309083021381252247692956594668371441793172571875858265402769448801862015637629396981785640559162681062576414822501694972620710714275376668111471664011539841942978940924031464412600429552545782876987565775208909023703693821583455367236216427060393070671327365093311933587410423184898600433232652426946766921035890790692473048227836504470023553575730954021360097653997797348958213404207564816602043465046002020072028324324542838314205409554924135507639345273314048054565212446400887765001947896194547822980436655230235787046912712544246986062898521181805777499291869510299378890495368785447107936671049644166217705902789352538200181237639313403040492536994250766011050433993667468338110082116012226267377334474940030217040947430495396886235719840192613046835502774266506155796133178997431112404278213573594673212771131654805372684554465062801686873723574919193047535659577342187540392022991445313594549466307563729036042860021114574540294292644860751206052847464730883067558963303124478268215613646516050428566978739738339967314241086849772540742427506221909989889621461219388504744665786624412528425659328585636494746680332483685740709955063736214508106993378880433616798662168952460336889342642269784100276960303772430225110254361325929227652034700623416422800020575202790290436383620921470293449077032906302394719296262634623245534933791692484558235379778932433668736317141431189350996846913039911715260737263766358701637904621259380858804143749181944534136620302225753504597320980573296117364285041151771688215966687182060872458007281044673305183055368459394716378522714283959620417966475386114240052783857565361467059101313184096490025902356033990311153613702237490339292126129159258040029285672902732750001906556671543983773464309091940633399361367273118945618870696523518919325043808756359105390621804123812514283930984373618557898881380392149187936861987214262160543259742573858933168257263691170852750985262700461333985390403175604302576120864501273574127745662612971817734243535667198047726641504067659980552615954879009847727582341245943391328870061935711086718052161431665741231659802511606595638998382113924519797850576793374915055934248376686504946219738581472458342297584705297078058227297955530089502457421955269988034484332551139147768656620966124965900421531735813717233349684346254226437721542929027809355872136916961586824367625517815883617800898878032032125740657565592017865378640192436698594659751647948279413885742364293414827209948889654843174943930520119803977046530627597827516312742268001183110037663751637398386580015651962229878046142341470529763709869860510540963748985756633904819709185298037317552975921780039468578564908057429903323602378732416876402735232057528373150475651774342571169788712569239937605476811815064201294035450454209379948960643006533235935828667710169463402166890538252188533193048907186864924132616895136912491765163243443903240681008558580229076560052674755264126615988459713121869890874638307578011663670516569422265576563232821000986561007256712737676015721924580262173368780445659551960804606819664338685713225713321269305682423303507431421010747626670175290263518672310982873368402355657921064231990763709592166476226040864980733437905583622129451945902713245544658870233616369583102682324471705360691603518880261795261900030199371983220842717679378266840126620196681205433967192677284133326764339862392671623681410549398099340579414719740881369363228666665531608483812214786597900010299131690039788421112403368756060365242240896093845821571737562394747172329405843623144797090514932124563100924442993341281888252702546920068423241179689593965757890459017073389104719958145956365563703706487586464531554833055594656592196720205700378985272989323965343787058569134527561613630295466451755152347083645138177293538857590158946272325104335050795709613491389649623101906528197051463451699997070664182471843695441131962018714604316511820909086414155076217568023135487264569412028287136085358584199704764823871962000855929287401529916265241549931905446396336459702545166626379097802357047649468073031234311367458912014142899126034975605370284602949811606957851020469132361941787194781527697484948142833716935723377732366178689169059639871034920749829061522213375384757269375257611052836947715209319288503930831415876572572109147215422464521378054927393650991821315705197799396222773695841003275108126823861970323828286789432076586787388501793548951799732274911670705308469779370631007401569585933308111862545421167856248372755316186892514129425680353411524545921182963505630522636621598728449742410876383140911831094967414128790519540503692642146264277098011104609711068785058727339036924726653610399205416348487285528798924708611063897833652724352604265653493103063030462632783405053099493237508378319587214220633088815724039051389555801392618246936795598852502608705793105612264840933665532727930135804868288189477499640612415019977643823593768011520428093607689946594203606634207075629359037207188707779066637530213160235352992605874771670598623009240054382221959329538469638356353083843185866311991455155675466945676705990265728285878557623370100174816463102877784559811215905503193609996400172451503011898965942943185937550514231698034512415447739952447506795364136115112353480719315439834819401911761896689617336593231586652896893128089130509448088308413480733353151189269802727903500534836871489330958551597940817537145022041405675033878205657525118218604277811026731056336524859318906845415185115653200254234130473109198994490455543265633968230480701259221395214751431830990950879408007685790886691096099543593501574801157357756128298711154082203569877920624012252581530790881777128609229202814983624378048205114080943186880281441426014034687104543645513263321500583486845580239943824496448232733615763640521601456870587481260688830693858317062961209531400540914103336946903925231294547208533480360920198025373180422698773296959492612615426186780241182822277547239452775740240045778631757901047826941282704695790332826853625973077686375837863369396200373348109119402380902465944246438362797996136314977734272539900597216144863677863289005466115042911779681539703643710200567707462876847921967875944010777607450431220630448337392821100249635984548774763069128489001291290097167413034181611714981419605697844891643675675855710198939623508730748151143123105031931519597794385051188241107584644606706464803982641392118916629407605378799639823083622148907612115026779411505089783649793133787008336648688025439732070737030134524347705102657090182555602481427259064763775747562686365198087679732831553689617032285439184981434856791518517962522786603591324623415786409583669019023471002053924516329739731121422583674395968735223816827456001426803297196273689064324165111174190834469989325828062402741221222419988543638918707451036177403447418435104181952303077349319168014930362522482725703708974408282054647453109122244625573778976708031210729277227094427625499876719684582439077873148783151714534653494466623538162990486311090000648977665097061960126225792958669901630747891483490467644725749250774058360533843440832853380870011671167648854241347172932589849394589944935279496971590128114103291320755038713312671346723110662452497330977460772155261366954054814917391192583707909695443092951951869230204367531732290824978772601638109778729906710471528327725876787750327410240601030182457127078644254551649197003424758020204012674670978617267153031280724644414214213375228289504935123209620593682364839005464043354945149543499559752258784499158222846775801793726551272640894864141268680362173319265701487025645826138481199667714083769876071015062192376991142614208567360936308692389511421361644241961350650158914969616895622983077412816751971965497453695454335862786352998651322330218308642718649397812140028721237505799165745221482064888742444869273738304569714260389637174960422716895695353429327684361742568438768952702133547575232945597361613844701727738057657422549737925539357357553347145316330083977734890628700202865017919761637368588854029747856966155301909569032158309643598466038953471397453785285050204753295362377540964694620146912861570594734757511172473579353775923572163543843418555807698696710334963957663826039182491526989954920178819851741048710488036412269172617994976832992390724999138933589945607270897189464383205179241031444606557334981040113694379904791739446695487850979943692417485785246786287955359928735639580959355969142646226522568208580840848572482146191637893284905407203053887279075199818448467134073126828653000296722008336401016001389212955851852873726640351945233736973367138302837822328106546461901831863296565634481374734606842190084873750430063634028258180243025343605004883705474180609251210055086189144476955943387457648557585395842974484274283224940018125076136344281397301607226434562113757374453414113645447719023751918422956044822120229733346174373141361519333197968164125022097229678150377904234760904827395531751293981899560669211437988034808018318996672185180731384982441939408702052456657578411065457021328731841638388978363567468064420351724594558818009246710771373344593536291488882927102322743121664832684306075767545787568890326878831415862960473884723888945681321361183052971783174458055319821947740857819319756641030608987952113173882255327168558642036043327862009998537273773630175586484167780537988581733599657668917571732348859115234234552034889220433248400814384350674015175382044108288043230260495205954453470519324568727781838622467449582877140518001272451918167395392826885875412376708600813663569494418963811440359603714182334218744898403101849940902501090701344913613721583979859308886220384330213417572176935814061813131470723328153256878703366581242478932176534978772581377657452226221939279993174455766048755582204164766941279123024663939985152490734880457377742416548959415106476074005345109751049129361791748696920545092045179513831063335731618500627645722219676516250718911355415301348336854148328163001828593202214268533332398226034336629752823764640485197930560460864329811785055720530617535258086689883693262785220720653466772039718542115372091156465844224476014588548012285070408863376585825718657324960315517426507498305341302274680743692911858967597960944661295405493373263044341816630673145799644588624710126361331820231126495717214183330605263689814284811585539672185690990042476765318246978737481528703646162507425297097750774458649522131421848744628995004986011085704129599840021321904924902010885398833219598102325055179993949574345901078822730353762504542915681825814865453734970394924285531825479719699609995104123458556803162946933539655695842518782798393903601786103702476580850444649413650382974477284215035497352697627829589607984537791361067246521766250566324294472809735674776500286971961555574478764636507800483470494206045646284539738439892676352505728791480894225200309920137041237299798809176696160489841676472932091123928818432879047674794162165428831509574543037633416724122851758090025390114256443380630186219753090413322557935976374493474524816804104662715720008802980730732699785016148011718189255711162151733799405641078028565567439878951657209776896725019964768859686524010773558259179523013334514443242786023563808455841375379755783727333264111546923297046910207250855125581495310293172622995807129566825359394504334875527386154549592019219833839938677726058586562181752680488929735260489704258202320621330492125147102652847388918578833262721274096295841086816778049093980869130533814360414150086818962578405101617646590906613744526843499924756012491619399460159497542921792294418041901101679580415442975878948527756860498096760559802735891848978358809537116797102696553903813370951553796172408185928441899917138120694150776855787150132257655847801317396224776015832264752631294041272678247926193696831951251878420385035153852369928332475816653783100246006608220971916065204651191056091782588595937574217765959067404587905163299672174744307512183672206425368358729930947467274592871578912861433582978203969793075653696258524146599284418809590938294291258835453204516910998986313644392562631856154978424599828285718421030234078458197582200532086867475096437018154982213918807806572687847198331564606797532437235531830106194198997904111478968847609969685942777107967320874043069662159274233872732723996150551181259307127013413853258780567662517486646495704042018465927024464674068743206736305099233042830690935777709145952242395935220262008937586582311188928964470165610057268422013621990516219360386227281582375006201882954878343354332046938601951844535687940998682150689092213760612538212183987661410999188848444061544846543377805533669868346132547475203111217223781928352902834675413925288721687967073783803970971545588631530034357202759047005799732714119141781854945392314576919693850769941551061338633168686264675798751895944374542353654983643141232222129599309436998703142422344841289035054464632269533617117991943167934672269105686501261135855570758801211151555995360919811316805615137061649261435471757484333072139940810114247991145889240431871514947343540894660109715224577104070700836963694935079702363544399582014027345967750745819681730683972721515121428198194120224296611353752134826171607808309688298784145093336167329708404668109159156363584485326021704935783823458321941102099582053791354459980440455328423626642404227726415942492073021987462313953412882624360687359421406991132805419976692339386323844188853880079693039008508242266538328408033933494757804828180722327808698720758465427071919811196234956983965434664537831072767711067977731895882425907688843481023536343783473996965303740483332822468789567856707540945466996105335869748489637121848378803750270158132478763182336465369517060077304360212174269355594893999574264045064024008141282962576053237142722473599727071512886904584516269162685651158535115008963678515897920302566285432022123910062341602434503755085864585854977140986634431987877676815475991434845312423423757242262996143139222094920668706418703314307948766527896181623610531395046274465000025690234386383119341639811892997177313262370846484866824832507343044497320247537609182215916909815349372728980833307779603713008104864667780681232188463327474613783872761531234859080428986169454864229480004363009916243285909824243478426908679054127200641338498695504081997438560864929223778127441329672814661006556783821655473811234760398049717545497491390069270740670011450711882114838962263931917741298378980860228573813189579881387191497287000687151522021779845541479643144076175759010084113257530401826847911607502630785019312314563659674483974631811724474537187282074479904235521582025139235848229840874109270273217745016401698565164604902876034730120431370319708892500435674465685062856952555282550067442124715429827952996513404390049998523218508999769763818496632865462641938140383210689115321536675642890947540426550546387307826689130419319822847109551858976216897418619830835321323562789710770908700559364660901275200574347843382395388033813837066110456812475920159539785718031755020493471186203779023419672463604862602569408242673746466259959456069049422121071993577495835602450786237960912271972014470003847475205503774980281048037433810218108234706795458733722376229914476072552593807420821769066494130787994241685782787655488086374822962842263410458335104004877222247715318102639125671353237645973584677143915420696646769408964000111853165588794034618639336993753522147054619772452305201776355465098609994340373995497439461010365121043669693676460996067496657643343747477997870761076982740372771040686079673481653087743543844721243522602463372163081306095845792582623594627963119972367054980898588289920234680430747208484733275095793124125110258760776797415645030473390060298748747447855140768203490812387152025755563862914919418849707325745019820005998386274875701780281280065448223135641315028791962459867728377320454388858554980417151126328067172722441547122194339500259236334170803353657681909262448950893224809643191729808976124460097964978207379840567267756080588317655163255761353391496321912929198367069734934361882569950115249208037884858417994613278011790395389697049008577704271696228731741684208276892441767996680452418588159123016505016615410933826295385697803154007824759825453766432237283022637639698148154113967728404307697200683052401996203220189670763482078005582349271789614074719948700261535004718630086894702345522069437338116638705149722359890767192540398734124191094921229857085279353261249475115472504450620172048341365587771905472850337366750449760486271764077251575340788603014960741211087018571428402843717528430799336108688515476461867830335542006591944296920114130160792166632190431602379462366231436889691316155617051224400827321089045658034268247554556185026011610657465279568467978227943972945354262913712932213443875152214873804182479367490487342086355526818844242307058818539753405756229402067773252793548382656261369731569499064552873464577707521437101548688913025101095103809157659298238327307189429335332678520557054034265447112198320609799296278105522414780444383553245381962379920702298245094714260749639136159461202308559797845761569172327641785375469749425976976559093159780539421498347147876317154277072842333452240207752067621372570324286262660040561289347857013277083129782025563979843636211080170296864826079846688552991263486809158061176133912226331664296927305757863867451085727090983755812686702316055642163921838773524020672090420288297272805243003747558611671298822143638100424326430245976518340861046402317300269572759286174961330096937739714422257756125621220451228616147602666497458530247706788368939113684808219323901454850924559164510387582407020277631729235840063804205320781297810525709031858015052777472301985607688078452902407019414698839432673758702249166825745607129521980508939756829187168382423949827934608694812832451212481659040828391110891564286736928195896161483254063878924629373589468332665286018750661119755118169734341084190408061842230652118531584132839226478971299919767715293670707444081260543454525021886098524660733627764295067547850386022892515070144075269273092784414032374446006336080974313936294061206193445764276202770047231372205992942096919077164619135954419065964069801481488735650474593478206321766378002555186300174499223867572267007182846351244969149964641004458209211332383513755232266916215039869965169713631900193260490636670695597237142581229528850390316302424897157953062710518136687493535731433184036795530802098373407245855521177041729981219956456455494509334072704829578629244463810391971510896474319448527269146399975608886179801225140395760462172254037833036221442270826475883848561926010995962875823375737431923626319068340921424631874893928826794349211155094768457976967153800364181115175108324442630752237564832700980052011219742393961074793788530530861047995988244897017242358171289701335399175068895635644526270446000776145015724656365788461137698678531105836977601276275979396556708787156356922875060547785333801478523807645778411305119860603637985605237949125976843152008545145422320059696928422875091801442693634892146569909095631484467352289478125343524762044107940398452731307049539460955946357819399601311307424483622728417624957866852677968480167065713554246541200650446551791164203431597721921374108764945051470589590045626503854021671790699953274534716147262719854220945973011917830625307090199448317994982030194405223060284845418072415592518078372615470168716942664440027538683474319471186543167470331561821313142080612948039369296687630226004139908065365929964279486296254091287055046865698737668205039853983631529783571088106303199859552389850497252790676865439860531666272900353050006034289321685899600555339740707284813330273191301974780253557519950905535753150771941811620461778793985388283080304942937467808911682336008823837817957836375050264950307713381224169170541955274826445910772397036839605076027901382048487035114700646230215921692396467415135562895183428704347141258163887602019528209982569456901112228687046302415813123154487444583988820185040117457251813870757562015995590014529797672019639706684586037098639048898179179000596628404233950218157634030573291017899249480664781295859562408907968501924050830578784974650412058701818965025470750819878592452668400006485672153910480917479600221792799039819067907502462374040470588741841245451023325263043185423467530323720851379208460953773069997371909559695699955957350294237493805987588824266615638168049280772890293572121563038850264448603299690777732423909947073609676916303007977815015201756942378297459035118905086573915114565952166304093460571104378433498478304183736119885878656853138649039524526032180064033274245657722867184385022009705507159289966214446759611702975423338064802718585860316715843367964705873783492679940919015148173420307403828095452193182355784143649862798368043335207725366256178537619010550691492546157218989307022428303116306406495963513612107225810028565316134361147399071801567749536065438612326120845023054104749498789489058214295625096492307864790647707290181854965416859599242069423675187790414885830086238758940259875451739759287691422787120447314774223664241716065960983522448419374872302038792971524411241361806930301945679680626125065975744108354831020534568102166100315180001562117506311960229806478363557909265286161514561083755893890643108744126350585554543650797289067941661481418753613618883737444091386480542168901915920876606059835641116199869252431948267352389459907383373985719328566118035079692492277176632299105284700222860137568095810939328437592113315318063638612413823690240036763483981061338732300688304495430811921789944749813550591738319967310078593341000598047395110637944129516084764692221871343531406974325928143601355388354838775490374785297728807075872702759884567948747319761197915507810030531773771286475050747588264137909976029018216911838483760767033651553668565529699757924686703334418806376974489231332699696405182411876196396263389358841217942860596207350810780858467312184513706853708111867486708997474797323597442925795646315172792334213648787932818395125579780092770347746399122229595967754638335062422801491263427534829801981138182339917981397069017012789071527640327010299343591169313243785769652638358943983824592815346321456111550726646085508851205643567294598778714649539273712368926263862332759704692991796800598504930232162025613142367713994867887197201964687204874224270594980905600349133216054774176190929614199467731511243723829712517802533897290549421910066033886794404493982513355752683021297734159442512107839584839115378998251066450382801122023950386139871463517919399508934084260312109217119473226607733435599286969369551773825233544452214126773021936631517236031417915065637853695032642020509944519022913781547779182020827100354318771861452318492238063201014570995267262628465385114083203545678562193628008018652620164958794053876915611812163367948590255585125215606857725757361056319061221663458793386309390828080642126313166590015752830758133644992340165751055374277470586768226229380477449587125055274627629350023842205453402600621559517076592184572334144861730512696569684604721831560404551367816545005148004096613597749027732192204797609336071463471833221811301985278439363597727717899164753844340501765853454612382160618656274494424016027196994879121837816502792685771905280404240989182902663647641780777441232146059907372713052993461497459667816081369592559594018118775557693199077743153717615744902256710682635708590813932244770175300958367679074418992669402247631217105043435526051451167931757912906938971958538836502084460771039805152509227421113717641329531287144950116951608069283908418783248855471026472151515471030472165378908470434402190090202382772453379246286127767319882671784821237309811307835576495105241478598183713395999125657009287782939116241908356959989015955488689033072908108001152493179273215729037689544460295157696719230784271463368200455130502059920457138450942414764507972469397841896355970078628649512025895063401630884380725289403233542126573416630567454445341504793619450969693681850160531671400233935998328254078366105914661884286038011345559941475508282958930036606187585959471180884547340139356877969294436551653342800667576404216206704161036732444806340307484407251898723163379176049836470980201139293678219184288611068630545478880532685919526284282110217307203922516748890574827652146792864076295316462335895273286267614915702696095572299205415703299432354659880207094018565202247372124976917164657747418440626168085412669184876486081289965094835495479033886354695398236716942929346332099820876877500481383127555486649483577883320046232865442915852871141974106394744002874078122933880878489323161682001359097360408507991331302605586166002079622471754453289891967212131595302882695927852180803923621656070336290462743263587642719181338432374106458850530967442482620061657721554460622554603623339399528644164253517309143750507166114785314551467657344294611447750003438687524995717776278726249301887057775847247596262891224487757078324524991158880538983693497202506051341144633389096622903382817905434277004630172774918892778780257334768355075106793179013669871839483799686986442312564725744634406218701114995038920499631117447275819358770091289975880814659753339138330453076757464965535719634843137027461262178837477203888484855767730061834947484366147780723279472802684299460724508437417629281995838934282017352890432875831554725752354821706878336985663483850115582874339081413007609978017071088812950565262361256454870597967266789920821202607179935323991141140864932029497480632986991734520525918808296680315178915157399378656075143713061379015604278807030576365944554382273429347889829375099589285208597465078919548593100765911406908520083120879495231921044039517298065441952156824816892131144604307997700654066239242862914262664272027277183413366383901590053929136583815207642837012597563952046424500559825449117072827846704523746011418367997217308105262185138619229240151843833960019434675926162837436048238510834164325341091145156033076832994303030298539019350899308243032656447147681042514346084799783426189639077502186405003869118603584378970953663622104479751164317775674185838063327497102819766003328982824568516800939165736218146111309021889453059775662714894396474762291632002711010727868131062772135354178173788155667794225747812862985360730764523545309033473943944893539704843244091746187661784098282478012082681083413085100098671923737047347874716914565027508334536967516456776597057858843219737946147849076625108341995438725323134729939561807762749803065978026871759340714904038134244189589526324255386339843053210988865933327500409140302049552975088608500394373175277819503566619651546910847905937639743054953775968164188514352075359436408944589698354088904066678884126679035567266270462349035096204669514806939320201824633708314700657396574807065681411870186720187521452232580625787636276408758871468835272859388429275453316767011767740149289110250624607111950535174188339629788837208247054715567972206132512923079556833726358752973155869369453833752550819408509619772330713669068895912565954578771313049817508118442264888486526439815218101491642196610885150577682651027970315365173422504837758408882298741035454091401813150677480273972515851149305073133087576134356821400143872505409659983984101146076002600963623312102010087546833803313891321352738689722028907161441834026383489197158446956554368990470792040796575580098588794148980066394753646410776069189500647977936356991213177124858812241688929376946719142864573226186052932124772103045588582498252413411879834786659602629237381638457090576290675717521943252171156553796776086531721400184284680505118587029979065164502955915768161940527787833799964375041135705615382182763211966433519212072142456917159797435239743671269659248120825774484168727810277890651065417134047440527248613828688722426185851065533394364726939773996315094754823380498498976740865474223560157655926073082160980517352382781736014477092911783263523640180947255223948375691838037413048387637168628353665956212404169267543863614918077194738695460016188133152179172863882954091377276448097254634788696460884786703746972415550209449194018940857142567490274024670948859169827905011025591620413756646230650527281680871256815155977126876378725339317092222632454184977473515125042371962399557415524542422553377620685695528910697657029875013161372193024682189351211907881276462109415539212693355617568228105599964250193549375451420992770612824609467813299668868559668740671118139747786478844450390806719185586629772899462949080567306022866816482490801985141237258926635821248540244205914878937444727240411537289621002437704633654534591098702675869789404347399144094637540955406541201687344878850455279138854440850684342569937346162827990602313281034524364432058807261376096737834546128872046699399356185548407150027543534348878026866649109865291889170277880628210121782399866778631022240859434519251743811570122914797178298793528124199644945026384530256969606932937268482462643912082591370762007106364936980303618613060818484728419532446000844690203004254804302312939595101077968422209922860148627472287663647439160614334668451708538189283940024832707340525190500034311771040066977573953522389862843145165144107128987768451792911547199938978528856181362708698078079831936318200208234949941162118613716088921221216415218857491686376379908318036844447069793167518867746360280624583447562359206108854945889838729315587086981638503625088721518041286995588668602814810372388949016204639076137045053558762594753919432510003364573376466769365659035168064974178721424064364486923660219059806826419332487718358987114085584620632111127828722989625851461502273112127582505258754838732143100697624608796652517092447875322343230196147466130076959995409188030657419086262842241156309457622283692029756310891879262962876353460522625997264376416002177416664890011588869719197026477958109755071742723085941182531780167060004696862953565143680014464092235234404806191816227368239227072719972258720490606935112195954951287808225830357910010455095891656269775707839882706805925305269221856568309037297408349880406208390874850777518351478074656811013890119091709067052776413219551788363033768796624783706056767048153578887038784882255505713020695993961673938297394781077768685209529293837224499937877147803840802945675223312308336506425990160879619968558434792661357798765570340493243308752538780988431672501011299470236084752575806165909506697323022868646810933310394988054712329922957206783034798349386276087959711399396816598501831406778444262757222700035073609848225247889765014416888531294242056567179354195704818919936971876307578298706138087152469079344237165176997734172975682029235469047551664353709445143622479181058653637102101619049569165357516157126875533862133193544196236077693552503055070835923292862286052524835256748695622154737958579147928046996593358589633805341299463016781866495114492802379419998873463275380838247394183360852002747069018783831732327679632145766561782565459852587417046128828367468150097965223705437650610952901086296733910592019242868781343916989808151082961930439159873916219840487438222336661755117182075568888219100515787492563558904763563113796046291805205146577036145270846537292977717214303065309088094646668773751870489480786437629789496560594098641258055809000315626706066556822322009872407472828799863124269425277504377340568647422108521833202556606368703628498208444370115855346902421745899917937765768674059969089554732114037267308324180092894049932897084658562111215237394219803285817729137736187428418730140312017575823445992838113767261981278569644953163035888563989031464371888332866334497953370547677185406186447862307569216812207392963176378475899728616769775409683584344871498794089944581659909917904335858881788433070645733684970569522250954407088476547414227425208602135344356548855190006519706748008707405060208951324790343149643870085599169509197005923851232990410222653497136291669712278150256995233670413592441148059967105056214884681374591622638197567129679841933824434799760817242298867086981985242781305052904381567852970001905909598271917960620911615947807285698800813225907655903895791100554528395447724339587970243508627452390685466030121433325963215894110143042150568004463072780707313477687506545915097361341372685574324143251879417281775820071595396675644753490677543592106302232164018011683991338803203300051981925461674474038670696181156914012417456135522118999855384261111832219594121950896552419790570178392030486893624882603146141354619726087607190037813781937261864001721358329537307714661192807878568981493418748200738152073040857045199415567849815997759031837671458644032709664807271368037699067393672730915866895487345241154693709631468382692654496552405429432343139354484546681193802775678510464272226858207238734217575805891340114245040794129358257823342813799297821665974500389425720128337271073387517375822460466453955076938951534941609038723741428533952726058949905667313784572960860072015121046646286287603705720640485696572300630285367260929509242669464022019788322395162855233256333571768712636212891659212798930853197076932976527047426660560505196865752035416601118882983585707422967435530709838598695814637759648939874195971269180397304811401793937602963892675921651616185981803168699983462679695455417808678438443381422175395323585905064845506816101393356278477083704842686993345677594473429590715405003068135203540275779965553358560112484832645267707192293332649077435275723814439008105436155787456732638157324848093077554561940071124059214520903876190566940036995902369535041334593286385413131209342563051908856029330216850087090838871870913424636440794480310632207009853722287415187524160569976003359297294531773393790634191088485096110904403531868642046323353325014925643074398823678081888579874942367853137093601061302213547237208162597065713754284405932768543213043182829060560888705504706740414223496924246841701352502621434159685209547332985367232630074386721309442107014867391225476165285880629103209589734217076981372972235098238060159885733933134021672848856806010480080474803186908054620425351779681592133311368381610898485039700641844880953987549468087944323920430890656187257028659745672231939803708573528633273489445294131878314660350204989904369984676770560875575611930213535593235597379224819583757222737647078781929846795511165240433101356941704014543276869367246788959230803388370959246048909144362976708603203476471469656135522064277829917457866926897642848405905030572224762988979271586030638214745271547218825333450119149348813718223861454302763218707106359601859127650424583927807614992155725134699795032857289149995325854582269386806769170525136852279793777886825507464672675358727907930832022276052352733011203709675605879185024808671510965137199722502698264408936242349220832036515283698110003380687482396666576015576780166412092466489222765376854196251073386624732804357780445612339754351008304607040756331813519401774952769671842231439380786566772071870763592998360437639663847897048327291423753247337611082981484268052642177540779643196277006917711299481912117610293024110562435804761580891813000545086323952482706649610656949226787303950960008574449144422995162594392319362005615454750341842818166405779136479818391439963092068571571725575175867204598436822114392620606047393071165170335648946812131566319279304187781108032345096528586006004635579859658356658535307597296154217590301179027308970295852762668226709047211293744087367862381087555608016210090625066902357186315488871609310049119360226566631907518317913288587229369126998658015245727864548017709315443286454935953385536555324219198778289560580301599881828921748425851833507098707437948640701427896519747610285715225622343167687241286277264671657608424318886400764228128167213977196308650398334814732782313112929112105967893718013949304617444584386770438041868761449419308652937576194135356769802013783772236101721582100284521141887308961154455573074030610843642055356322404633216653689523751905468236431721777830078189888978235122389114486786457442607449131519125054618602952068710927503281219025051895709958712654849775605539052657355797741954260810259679761737108953461007203186173682982439142751518459417437130805834715343391565962050588077587325514925020644788561959427382729135905398970033925097668141290360832812087583523302436914653466461889301240908372914997425714355507334168733568262303949050719113987428120141778800517422852105171660774971174239468011778060093353592646048401793794432063707291836228571251887008925241355255225289072276728915858305569286618719622936352251253961830484292646724495173648260321680752490298695177016972189721885535256414702634071313089923015205581883232446801580865011287278683161151950457900398713207693761840493969842368655521888881959002270996134278277263841081933273321719302607907227977860263040916841615885564068115942392544007147934336467488687457137590488261231469896202239442449266840094140970657629882407866129977148829953550693354465584266289170813870759754200801736059451392372844907027589513820616041215397981379994713291635663706225018828893092927885625803664063139245082446101686220258716734757723151978406360013288300743139021877035359066984387347560425921639010804050260685061417664142432532515923373967781134784764468082376787472469940156896834010539947914898246313369597074479845766913665488397155602251847244033494293085411080237336776167431774930885991125607496533929896250869953702848065362572991291488996261313815710242674158595965711826604196279751412990278664610110493441055126287557765122237117812352788557184638076585700633976600048916475379112477159947258827689505005545523445730025799812530337901525505010630111161068314573420940271073388683524788786697703102879891114503901419532204600773493206605822885135012547404737524598654940588091981909347924402531196498588486699562695643805027722101961889667709101997219299346068768825185335379273175943015283027185812694823619356176268129561722692544671615046610772721010417161235745367735052537566835139844875099939660895138587684993829453450412097006900145347303558702323344394589186766469946507942995757153350020480787290285584335690474113797498197779240151224501200861829454595304807780360501034071823015368271750316197317767028547833861855181133363805639578906142338134416999438947896985596543832522861573345198262848902326699880161377032002756217154040702619987406655241209975485923574025749888538173456632599921115926118555132091033673648162253578885148187795206931284733884107575180242391190802278349436129435477943441306971956705586086791116849354378616450441015014453306079795172035769121322065833457026424369604861656683757182897847169433502878222028287682924658890653675775657861160556344566837834413658213124488871363410217708329914301252356928516842206386593972070569543699968840922093414416916165648713694104393036316642434078111183853774115206304717414609850590956457728847195994481739856204031303660651434942618633018064706472958939855836879240710189762219528050585846647736404122543882531589695657853676636260056334185545300083663064775219564202102582266390250112245800933903705070393344631522606493602612292765924439508627640777267682289562746727217902995267289648078992315485672334562945365487469633093387071134711768922487162909815594500084403851642868017871099065295661218129121203800933692998421596059612794842040531921804371670484509747412840770397534891656728822217438184201591641643690067095951669055322070242080361576953181499279980435361207257175345838074811596778295803175025144289518187030550130778294117652153054590916087965824147064925848197600732782455106367891054517625505970182630945670842042908951601432182829322856273010511381809327187241223498439405756672104347779585060938617163520592780620717858883038442331913953594360389644822180169650018178619700136940860845422848290522212715989912177011074226738350436658782845671969566095921637765004907120313204738031040821617123872123643179440257594040967689677115378297074118228085207381254994226591531401920749003048489114266747067536286019379890359529710139157771714331183599728018554894106133380284279165179364056005102873097350751081458784606617072307938779352796340870854997307771407248470492013819799528490746799976737040126415823755375268372195058513427282385554221893519886970111721118050376158214706183429401621583619882909968730530752085316124659733291591162125604035885437198869742113666062376357397496603413266119493910261341922501975439862895030547386158649446373958619276619338621111341681255414992617224784151162182722121387296730823774017145776115268044213109641031415195895071861264063413188418762286332963573265279657280489452593951662805468923028799973652275097518868807338464573981737120606626924751412691325941213943617810391082483961435114729224534297536417626630646840711707823832160565408833688925682974375502957139374566631845004541214480698298633808122997568171477175615627904520088979595425112579935195806024967286154443850834593723784741936256138997450009266446706609327465626411304837559259989814159242071940645628566509044188688918878308826688720552340119460777908892850394641743030042270947037331086747390222681555176694663317387920368238659340754494512951907234775840727632363908359248328160789640395994887623896059881903891336989733443859592862635562509857870297529762109454193460362106403221433104152952367858276047821585888462495905617214416049165182757703703425702899168947782322770006195067318802663624920238854749383154422665806518390490807840952974985665681350504190680554677518262972398818473135319998002670237422763562757544949766652425273610650837005482545486382161252991736848869880918514797852115995744405819008538439653721036487668712600902003826895178399153892648509726675609786171192721804339607717295948864376628439848420097454581948161577354764832720912116484272410434954273554547231903520337251002256989124280069164910453600336206578317436274481999056074291648231475613914452415805407162286070216095150189288711023074135703892236383725559955513483213046249769313009784463669457477290024873541804602630996407730187023754912110752833084009157186356457119949981077706613761625505419699863461236201491008371508466996908111715291352182883300480756527130647553953053658489767959605950113837307591920054251015148451880640772619652025125810353798557929794572989414090221016835579367702881101027405419744945435636016866424793641672957601483634793344790796806326634181332159897124336478468041455213983264233248903908019247307601688924228311820803901732619364188091006433907731030045237604703570963945498825301981401198468452342958131007078371245901656621302707828209994965180876243001512880582155880588395598839593321222117723485399390655822768164005365698867685279513327833792314442748672261492852705073874460606495064922883290157191925695044612513199720684068423526829069420288709597467504201452310832847148227605791807088331069244450702021541479218043643561689426680302624078884747735425855189633108003197521534062948846184913001083479621578364085715223957869501251616435254778537274574720225345908505841783242856523953225156191101536888529473862933250327005198753286085781753241716634170307035609663310391937863883824315113976122566748197032751747501260116128919248881581110742232550766038327286408525831995602924304323421524982917591869691015610245858195860609248059864585836143357397225692384065050029024137922844833257778568543985849486626119741593268719772193878199141816152835889626886996383771969329678028045673562386924417617319987115220816175561817135415988001727576294536274491773585235683924205921129755365508428084937277940794188234361450298017442937220877492729837172119033959190711226315046785452177749732119774854375166861356051071935514316760334992956616327220557846977213896239124144516487247115932103137344315009569901353143699123974949131253610378381657171025371613780981420285925632860495691953539057703188155699175082886139711781937275925451842136331115769987403478770960655877901830069745551159827857118579235836066583628201661320690383314399294816635019567478161470284635924753575911819176272092353732168030235467616847927274785771678366322182136756289984337541680599611130520631711933446735408429319677551082384788693435535749582889989872066196670911134683310241779140017741840095762541426276435567928252203348672001069093451773686351392497068963537269565566577716566043700341006541244332179247651664083768422485902818722059543861171802645361123295148251281399007635502435434226967736122734316071243884636323249041727107964269537182363051162848487896462812314669193303877634927533921477406433018352742917827166861447937819842756794288398235238411812770992856164502445836137328442133786855568341476502329818619206470592273093043833191366071819447035728073193090400672978666855409034009970954330149607595739257791490695291909112016991514916652095106824788277016332697224258191427949446072303759205576846136486179186273736880415958996706484484012516319419922498285375015546489791465074848323306733756113696870321008094166732657417257196309909627648306770805558453725214092944627279905733423399681554783954103934097831650738574050351153166610459018082047482144571795676150840467686630991105187411522680565071738666596816974397920313819573681560695475025762744820642534218344024288707878288082382928580598693071249738758338700264223518151633608020919380816752770458705837626398255287236568884974169047498901413749781179198822361810000862417736993865548785667145963741741796758299624884912817292607910802169496915032450657166191401361857307328889562972759913002904693581226532882198709019083206686630788340265326906636814731999859232564835808985692284500962920843903621271242515115823476373328675179983760465684749888938127760583935073478587150560851504822543740623334313302880687199916383326787610053033683000710181202277612187548950300512771730562525890440219613599829101079799133836095227917726719430145299261117671710583703540615254636377566331267341388619104052521411179124927603110402294357823330890261941657881250249636722828772203589543117413603950904097717019697302588580971764999664510095488290304015037527064381501443273103009581308235675851274696375656289338694620283011146273978823480379856441074384721815049495923209485359647120679020441242807075147732928355000910785901712384169479488868811503453509423450057963794549188966580266728894135169858713916650248270096616361118506386080011604949122707356776720483326350495527103584658651053345633413241122923470501107762833160292629556448031568208597702189745417915791638473794127714653469259872793064082410372230016261363273963113010017029748049945921099554981974771290261223584557236770289664414859983146241254160225615232728923600346526822042622904935447889370222407677003933762105521058238158211360114655329005679268398229146891955851453723214278832946947154744729126295302166497048875231438748215840710551927745053475908906007565478437736900564751915008276700695578360073170913198503046773749107084751062209341910983160401614994515409426360262368491103690143552385899204903109477658636894259536699806124933939396692877857755559459681396788827723525622728948541206687195901229386926521550702356482402970000362965317600807707971309916949062492522775140553768479679569292117841861985204161271319386284039629412238086540790241190461465584551843942244969500696163577605769589358005744643196037184956115225752735101230492362980943926859260879632777278883520414587664183526149751203234499643346860321086221602975387398993278207567338920174727514128796866755018653973697993011302731234457828905792235470050848162587974208259016524460729438281812001560626218214360604172909103866136794296443561920340031668341606458429215479975422032952864161720528114763238591836879967132675153882716568034853313847592810927735063765175610371468914283631849358171799621425760746212691526419794927117585923748458041173127924487921495750595701367019850925838086136952978955831343316215725034789724803860518905636795566608899118069410482447619149410969335086222339748676827358383020483496291876022095711333204552712799435935582138231152458820139427272089338494436142953267910363165035981456149090049030605449038271929520179886863849027959448025895429656515846489181779195645239930079337770348368462436978372715391866469548840105126116345396272653441211183308300744223096222311339227150629718080826950088689575268494395750710390317078583549309208867925150083570276469901670295142329216148693282128257882532951256636471344275727770723666546465999579219623870108039153868809508523449277687296026472965829511311709219367020978808914894537165641046363731352160409171934615019564813497058829936214818028224495800624037879924269150876342503795093773149704787649228466872846812347907190832940796232679268624830342439056592077127768566197213923267291193155128232886440554419628345470388353517213766749522432666451257933352660896699026935277442241541458651310329765515985579032996765519940507052911609212672409348294755048213549608936602787064998486067391540567228859410791928181432903090435829915095487633311350089340931183009237587184932841735067154334209990488484158688275367713432886165628830501045150539233591316303801262457251946377129952991931116927896686267487259610219176765760584075606610972113684140242274608726610532504092118060652279396578286713101434178955687322374821902643296822287931878804527339416960453687583175835041527188862333594167618173923372784908161338198560423415536836779017596062327097069180463498832350207162278966423154586944730885119680143000815192894309325757626299377184385459477949008940489371322858651440089622715042573183111318131952160904035033500423264243771274663377000292350566683632029757717957852336320141013874475966532155196951283111816812574246927382649297780897498863650876785396980388097310675348688106899688100490048674031465335643309669422399242810237629865257999695717277127202897393152372049724754608041730145871768195134130459114249823051577976257913935942512061208839178837522103214643346682391573597374934128168149487462126912951146293131007859902351996853901269154656385423136203383880539072411037221606993116880839715784740829832147049723171202861392852907331034880808864407989052961923506020486572354917217843550690726647892534357475745299634036821085974124794212359054169649557273924837959616933366155001657673083500540271528990979342553591839901983791918994464768447565615994436524645377817441993135824228426434953563015692656906241691219369970997208291092828520653107771674475882556857626497470811659407595423885519285017067012464510498078996999050871900260894255334917679059836106949302784311982137004871655401470742605451609708142478769909721884228076144169231431053485972637520403746962924391241653744344493200971661379087686254303047735935300949489927469382254591798574798103510481082044976960625875925125300764490073745418088131457459285668172198460905948978054069991662603072210026965131217604289089189072165052305832771986242071698742404434716847596848634589811572310249557499831480052286526064549156930082589166323714083772473561728168227545046410320111104654982972591419169473387586079479693663590343785534329330146794960899867888285775589754020919476460391790669704497800945086973204736931491021821564372775039219748172487646147743115465624672347655931680946154553328750537203439169079234493464515443170935019381059826901965190228930778379071075282011863233754603271371233752791976514381983285457899304087304757645393923413098566107321837176284538725991444298477341501408461091652139296290504277286152655522461584814713046249452191797794382950833342004351504149210897386342585608396458415033326023510501777725322686272613307102341964747030440447891805703034969365450625952118263187154067377832769446911617496610677436360518679357814051299459410241914618805976606065638647661083466239405542577386021941620776095414895815697145653703972169293642865464887206683628577807618249830026177545928025378043772338908196167044330593684455148013689416416461680413634812559760256481142627679208708167527156055647702987585810445026641457290507122488358300634018139222200576165592771813575406247139519837828866169823282241505367239329905544852811160428363130106614086023126113233912206272149002859577842346114630116064445149645991264644020693405086037129775556919688891810161923416211610165295716317279548560580941673653031803340217070628184648535444982313421009317566861550987927635432482567344465028494406012375723612274157288603789983659802812629281965119115259897717858530238344923864943429243217907035217125911504342051253484233822535302714754932101101236103946752530264315438842821840804095296702528118078439555862322548111575488722988672835198655024395699346311750715678995437379138403145167725614679136150302782843842924682622888793500703771336088871153389344689983774675963210632728500668355955357326364960833585017520496375844428791605161821930195722734092878136413900937187550694509107951431389680592173364827513389157548348594345848877122532758810915092718146252237233635322851315092750594230193605993283681599988419729154652616785804906843635186304490874388049083153860995580995122159345122731775082393918872116041508278706404731801906828100119099418129966389293942736471828629444126559072288357309340593573296715227275340087551358084568740559149638435336090712128256923043442194865142533688130811318477262316924655929750298585274894769227959088853239155077805945381816893132296550088344180652959641843026814901953636588355756661249691950272569153777931844830913530259256336282382524534894800288125675759062137522287755791504292357784654054059259265712396963474086135861684767656455848106668840625861449501217269980423391165785623337817523461381405191303142849716810939306826493831742238440969903736312477424458058106728799605110200414832799241118892831859938255138581441302752053255123847811304017547135600968586754235975511204374947083141983275799241849497183403329488300185373541929548561626789862017205478516083970707169055525011576404989011044108534166642826484822309695006178674664724996625652215446761479801291157562297732916855705603100145536691870909831627364349623170072199530381756867085440009623598869612184307329085889811223767825537214919927944944402277483782345940627011082581732642798117740833271131479108126631025582474337709169788231097469952066107724752463095435504387763812317056480326753605660020772186147284856241643058775102500562552433058113818701048893874746596315570946767612770804551127788546275091194383348211846526195538896031587450396798252539219649108494731326677320863155604384895636773246476439580324485597376404899656502145453943255522892871565494344345564058648953115013185503805760218989659004711273104393350627572562756029266332714767618697852187635772868993257754318160185403146906584025591995797861663710402667622353606845857117276596722794379492549897507280122641693512102114082016583825174219133089687424219173862801747643200861604570581780671630455214480414591243829100608602125589156017452096564414163431812179408614019776997426649227780117096799734285308315076386464967772694840316534479975637619758940438598062903257272074525303906476198994044865769631738154616806485505025752764577517943165579402886885106125197656018594378332880447707058990734789727566752320409565284463882907258143338057509868203067861189664133744560501238305157294666106490647458180416588290791070201812241896891108602955836472999624228644859709881148277193174912921859722721497301014858293704030423744398158233856937545092807840072594120504143220690549359832830639070240112502201914150522129822649855107659464489117292254335000244621461856683032203089055880910549568987724497269002927900734734036540675880086462982899494456961633716424703437995754157580293643878029584388087233197541997512035360615001857221428013854965097950284520473656101525074930003536152282608911111621982710383037334438404983749903277803704700044113074871530620118502535944647757469654462417109306171264748566547177254472880339374334091022754376326245887162584907164062285061628820251762213388541140487396562917442573452364074969331129981534391098668197170629779984503257217343847340883122460889970150159496359715452255375942243470432580563499412157910822211308290274591734466987615183131828201415902409236799551415947391598850226708989903366439194808577631865991663934971831612769494862718007208929426113120473995392593385885140716151926821528043387928507049899935050754887305722516047722933949522783973720504647578449649332948833318850522717206991482283529041248694680969823202870018252362165786251607015831421123847830258858100083180576678072782768113286922268852472420424835674775942301960725438283806697974804214489230799664984150182118687906544880188333948163062481918627138027311397886327913355527699193289896810637487403493919561120676131403668594312773218132639820924100377856022728787879048336783705152496669555959567172436471485984672894003523680920543477412953570053061276633923856680265436556648616642968171745530025218599610446920400216146364557981685514885959868425588454483391384818573546657612221660316728235538521907094068539235926484892427788882559199796512671472995356983781817451637541656784512133563668363933234059895956284515419318918972718294023734084189376568570443115332050364937060395339559597623390346302119649011271239967556654039111959581262258307762350226219518678525905835887359917550431050639367599485374822338003108988509899526579217717414810380644724059998979320985370706407300933363947540901284161651272482321627265687185780309021325978778505704847445691057917923218905229285750051038856501287703500069729909332263393345067356317714818080356739535057784614965557909806173879628594471136958988937019204487185881892085919328407892315525430374403941404215474846039427074451364177288285657486315793503919946174816320581727773308104611847168865455365821738996240684770569290231097989735745938898057529402076265638093271036201135358948539894836954642657065187299010927056565959334656686602931107759772751365360319329875468375610398981059894728859017047636564488538030353945312667629971491875762705537510754360341259706501136515786431815074482393163581126284910325628950784946665772505844277269259041287882074518570474797106458226843995485238468102923824731501681242251145005654826498907418930081092290393368902445163950762660532111329465320604208920096239651610990986739996303953351458619398041368521641434663853387844420297477222852140407056235964876906370632910320989336115331703512977121875800415890662912801162636490778021020178168628545676014853234476905399306773625638041310718158085277133560447683525066311232148134450866932030741677826448500448816594924379948040114979577426647815841042229252837973407516956793534383431841430658069752563031610877689499174917899626852802304966522150467207608155763813128194060346638970369799123863593788236784445508190268924776806497162528774358751330429139735308958118579121659062485290388202976399078493529443014485648322231464339052720425844621974926933903766522891383011000067519004704746571730328560198967432808589575055371342132706985855360450173833508905139094145600698410782513055774103843188244628185310456938953841566862456112998543306026668274204253881257088525897440376230827578617286841540398154635172032592531474562311434018394863060235743614031474697005021448625621911282970261890427264611542085640159362094148661762374306602522438912833917124188922868271779760546558056279674516227705721874558291865397321071675322846220572298073789865977659948860209962832233165912798344939672833817875593868365893237189182214727424401076294914628003551873935334899703995777807508723452936487181720023701907033358385926175965691166168443977814926561034098008048390593747164428279513586341776987033714698000583543750877633220701429499796012984762892769175933666099082929451181305526300353626715293413670552302405782970753489936603955890524525932285022794915440455157869764692494830741041757576968145232002024802101999862407978392789116972805846744047800236935063396002299523171149105821949020426196468998709362170369348303934143865836272833046125472440556970591291105477801722079597539994066536857457410045052493328310909058934940489327849639618503524851991531451210185519264473354232936558988949071496414515409294716893490446766945204339118442713792907103753440498992648139728969916896800254222785595375099759376053270936969004961852477270858292061796716130164531835756155897829881475138543985950235303003064346552970698133669818373122737815710983750595095275784956415667266931254363836383173931613093132924999839328085365305649201907248339611148856163257762338570722466839800115082929554974510397434252224720579969038063118721860914349946835542056076913095236286921009556091342083683548248536813964671164597145537169140956913285402266716299943314263548766010537123742312726713088639627757751961323751804479190025524843149259948416931929485911330929567950350707096265831656340859369688194369962059807896758779315531008013184617420724762546502466093712572716243260154903701480939688300018871137948786999259671716965476267451405946341279173942297612491138237987809216441304807222584341835360598079665295152077816179628579518142029517016153391480418392529997211467847568957336321697194761297361818986014427569982676165340394278618400359911687519015968207519450304439547201796617564909651451391194702345719877904979487557712606378167166174796429265961017110873272962826883108022692342524619272850366265155572400170434550564780886880682536736473166347270674399300763585813108042182452901153822769496987050739162045520018748605916124113732681705953769173623546324849203812426625658110158146891935563944952287014230756476590556873946678121806150218205170539443149308235677052381509281862318119252197447640283324836663744867440115983249381060040956789996605859348690883619520757946598308549898768708923459776396969459189282260701785330444034888954757794088401501247264830194719385059582651474503878524827063744568538015297651899582024042672201294539923141068021868757247070637514637108148506617682171250173347556718661029605563934077437839023474558515633918519983184432826778825597396624406888407852535542128294291557206195860215877260722569744195248150970850511649607943798348495715747534263621903531334528912655235863284056401838089397478018682554595129348652336306724722808048246159945441528883081883963474426032398748281346488577655959933652367674811417154558646296580293887040532862291824704009533905205321545879054687020117683788906163420752460920529568293135039234833520686452985090128442181364453736775115942553558967749591298505310285770069911232233029265454129089105231765580822792379568122470959688125304451317859867227257448073398001929538071172638851588028980761232479127765549847315576771754992309841106264526673488203466050003486487121446172130978660019465292213083886702789723814726150601988031469152866531012573163568352784058779823456459772301827509303148470209559124634894244535169650320075737235501469390538754671243702590223259137028719696296315457000644291822887131884129888485284092219183786774168019327170601293139204615519540957787462703646656249632209105240892492027925678207680460298951365510786395638877665078043644965167294521979340363941589905996927247985333570946500161296331928521255525272258381672384642839106983250047644867317033958751210077437727408533548459014422195840567804068250519201658483236951202606021083116394007055587947465179959256104931461075085381714407027709627954625486564883674487644832811600827033039265139027040482309463446899421783471702977973645385659391963565075333641040374027796605249088826188560577149870496638488757807755006754649363224965892803575078301582990275965011993194098159247954991547987579540394013516802054660190422089461023636324569003767001069804073993701459427483806032252034317896800589079501411994580638294320793371639790371230590704483173735085296733465627286819333219013040397552531711742012469233632413646645734261353980321251129489552450519267843435500651017326286555916758406455397366633692134099919672790869917651603517485514520635127131159698847113720308138327759550114914443353191487382285430026136619543117509303774323080094427912445538761149020578552215771489773506673622690294019216628137914340086784440157922169657579740371254164300470965795119219293180351914007557018212287246763941579289016830600458642734158534478170842026974604030113986459861611602422246728059365231390606476938919600835004033594770005194298111875816627661274880694539942409641990013792881933700399295347765689826318179174698780209288739887514388784435511302180481703632113525436214470273463638084877288675681349106040707036808927359107026217107720506370620263364680721362763458056571369257320867768260143464418615777918060783125862945145705933712339887335154303346787579481962570995982784898499177942483761473925553006060913850816766520144530701647251474962213308081637804019174891384064396821791202900797508183189432361041361611156668992285530790794034564393791414313408462085109432511254693169637675242836270768714979639747084247859548786036041980538835728550502540584487842242305729388389298388224099350412391046463713254148282745227555767092477972823758913222441461126887968530335462441608982925036898619664420201105698637865328887795534670968984616892938269501378836082043900977198167343432193230800639485426181914775565393768130328598571735746578512661551402343205009852214730101721842109254377718026845444004701438784971704976367682858965082347464505280674517216210388063840515578716248861790228373522851193476123910599974738114644440512040608119437655913068822442542995408812253546120644186199238149492985950192127986990767183112032429687341702145826933772916512613750153782665757866057386058429465757545524175666544317565958043043445171866166373152524780134628224232953371468806471138292488785701665756227269937417264609109308487297244123241554398654430499266163804372570939868021489446546759066888753131561693651166837674626625664842733483539942716115183623826093807455222247801005414141353439682311346015263851018364507655086655994175767119071378812448624956770843008623594824079541791584412115524765539510473665090729190959969012070433879639503613036712285762780472945167787353882997540883533311144938115452716238138202456096950425565926833824393668780880804525085754006782642122004066208702371889419044820642824440840992581355802782831410130519624990238443501584751111033994988013199137663552189707991570617157123047269304110846874109593227614666713882961315925740503549569965827003024826864662621873996440426172894872558234272095651011582281797319361759880109419794147327318933126051320629684566778067379950034250557690186654074007920713332752110648388713480353474134297343174774737316343091672322999314253123875117589313802866449183463249858386246316834156529760866502194875636736865845973229408234013829721256080409794073608116509243106073930962200995080030484456111345868130018161626037428272022814036109049071735401564189464630735391976646928824321758343676692156370738066052538182924004584305578075339878488505167561955202453860259587542829745471040521306929308431193941728615666008758770167923558507706539547518630016786766369857358471952166131254285671638241218904761770865215181871491145357793227365974048552818245103666434236304126390091546391650789061601008076839933589247276240042765830194803955213974626581423958833177758891553865756754798270327672759052105205223483221827268137459719765443213420684831510282734617338200588542606731386623345277048123001666313514187262025079016504209774714664286500773365485410756444656554179421016355591105962809771500260301329330117238453958986084508512225042065414108334705404309180458201676357604035639864598305874747113366018745069564658464248324901993709733097546338116567371052900113533438006607416857038679775592869962721226672378764417776268687878290434024808345835936351005595506521994909079723308261022189954484674157926210965799425057862513105023675516700205292625376784941562559485525349929990261508588329031040341824616082398101114884527030345201895458836987136863534211923147852107526851636799357207563578503417142939523134496595575382942197175858051870426629217614061341391482932509752126257277176726922009997888555085394202184412299054436308105272133617790688038938549324166292155340748563329079444728943609656633267133377258516485814589289301811805499396997285323515979447077112260176884253818887632590974592249030635049684969012762482975541660985299372881627993595050069291594127831845638819281656360231987680460910830069831545831765195337028518147020891077672588946581688679180768781236716125323046003424729410459652018348148534190486973073063633960786953262279842766112489171060682885384490747991552408197137767969768746836740619088373816542306024381772029412890570813395976453328984449255123935023043621371427535806472234317872164274048455331301909985482528447547320864831562433598862430861582780693651710211744480369678861332560516332109750791653109800188156917843844106490193307119229973761333896228559932856672842768325068641109222978850813968196277067174566239021711070631132954036379471685656376797388020915698917718494740872452912567455406313875878233255529270481529522469925292198763961841961047269829794344261360312789058687397092469296330805283495425864037283303966363750181059443682278854448340707565789553596627130550237530691870468005877989949307288137258185286612174236196446802552641385508021610850951132106712748558309908462480810579068313539256641553079863672261050041946882424021484068495398507164911828567646656175302541711876275891826174597847425405565491883133231992165163556619166157884507853160883842943675558505628133626488515669662877010203990657374476510251683212084741601845250037472267810695633665938878877627001593875364683027764934748124730886117182577569022005275010845686385073154865937303814340869706845973322645540100599243412799908945830979164337912114264304617485794762723365942751666961801273822539600916656709146462639504951534821067559930182375451494541665432002408887790788680214516968757076883251243038755709540480485366699718611401762572399708375244881280986759577401156454878806831569399213283820149399006098301865137531906568497339906200350340517215471265951507018015071747572539106987872823601683638780371224684461490321262490534298057722640110746281677534828413972042237933815972105060536835251470481183566270773769402054542870214015573858723889619470421544604204825734018316666393617624931877519343936668987490595286531219644513374264941543173046441612654921478056404078320350419231472608454644101496090594032304663981993677629860497100609297269677057249829729879006954581110586770200261331455605210331020845077172290043305007642675832186862164636417644514601152083575603238270556026206335093796936102233634935984239595509588216393547291650586444528991222060475562419900785097173504370443913355034971220208946050592554310790882952443026489466575227095158051315737148335563892943551377747607274153389473721520160390037658591050226319717298633876508866758618323714089760595627076136281003805863952994189170878818134396968085779611824194574290493448076220063408499106201468782533152333100868484850147100628938257196473942487698652362292435942551540590239381691974296255773612727059210941615448496488397470289180276348049885057632071735979294156518249332526509103668908207547784008597978102563312821640023600671649928166903634449664119747718197467692463818249533172985659786646641609885330289606686830699673281499594918083577156516072495683148949790776955023489706580285157979420884995039448009264341746193896579042422979459135791990373186044996356302255626137226298719331664905704837859243606158108365807109405359290210386887724879837182029425589298242902522743846709583071002132362421962368693258702891111210562291056218785284040562951027104259972600619712901167422548435641632689025119137082072773422133845637892587211971423022101314328732985372362762681215932707739987098729468483435230303225116080333894836035398442434724407265099460940048159459378387131662885791139389221205863064196791434857506518568519578236404320042273334763939524850807179045721519563141947998054963879449124478030011122913689898867591986708075014959310219339709865601616851247206789690366048788933670076645662465436164033290174790211563683487814449929461803360843458333062420525115006445529224365397930308223084796354459951654850743672165764552196053115503205610288143227581014074585922794433100645536923409469789196024789580216527440584919009940152177326074369147962787420557530136345396950690475446651132326182397362833437881316338157951605862462404625812553323931180271014623653333742526957896632836759344748702227928538141496582302952276868858176418283704094927782397833162332652955920634820899645515545203413830357589990827838624001226429321509585036796951290356045130275027410796091466499740627748545245073979677361965287475978376818895321269427619257133993314254817090849940126179077790812418156934807815284598698306281004998956329972080063103367201168636141623698859821895235250618365592774858549418655219788668649078874982946570689571416185310548640570146080691461944887107730261475821949221793249917865969623861083838956494234872114281271329479546729208732201294250984574448625941031970938266822116263619495729525650120670945669002553636043372131582196838047898880992998822465444942718970283412924131677602326972427851570974953989243215400336169180420298910450303009078383573177328299498150205595343371483946255298483319056286899890470315910416884823061877027943716750736256239276753360595184384376471935119378435859020719597679283759236952333647993017277842808081407795934640815687940556534996944610135740287044284351173661278868585388149172362535397825015053804986201237407049748875077920573995108079172214055479544443991848701768598544196539854014891989839583227455246753680381730470001936596647198815054535120640731739242539294253291583013941040030255584269510773384481351039810829915851246769112345510598745339869872551083776122368125036582566000401012247221157206478477798000494204204142864191536263081996552326276627514755467192525351681745946033138484571136843473834257058387077890543329133452962103743786447870428181255592954178287772477905329067932313587841639473261722620004147848342642742371336072842623269844504732983790331125415887467519795204707523430502050701738208944827426675982327962500672748421951990111106900991199698010994229198944839598337948809738127889364275892193184962070902989118852035065966760576816213041190472146158861353391491240100652971523903856447416642751999254683905027436185593514490833231497605678139604221664856694653590704574908819604464433981535225406957526857777071956302017670208585890289350103571944020250890892609731140823358686154761785485656743012341958721800439580040542941696899738558880548365023101131702608404946173309495926895532905410355900621263331434054827569747139722517983458746623081654945279501890418195229537858085164587579856454594935410136554258176363508842129866228206519300479682240457407086036875649489090490593936048509054168683882095793790126218691465044776947476385975115263536510114259552948800475409468969872440878783211370614583034438689283443218148213821560136887400620290284137556564059917178932898563233659481346274002488848542140342823304835030076767435918396681183717120025203827539588060120997843211949356877994688673924518092674332720278658960604798356590826973914771183013296500733677780407946249409647567409550998667080649425954365765252881580685522777356521380764738988602249235493242868462140731771478002749217734558292313648778446219462243882755769671697196791450271066848440359491780432311679316480678666896420673788171454200389764866505340131005323368989283695560757456938862973479945552336688882551893722843348636063016001641666274329352401670443182659765126607164652158931755419567399474956773618775670994113441426661956816310338129407961241535025296644383992384156495479232674442728460617317492516195467765192451366987928702267441820319093813765741290379032093517137142890455372257011476168128972422813205712670999886748633755519699425708750138004849373110010542855840252297645929271700281303078708394472693886145661418927061682922575007266099286495804416733126609460836965037760909848840676212146723588859620863779140244600125114815168078419194796211547255827544918523965938696226726719176016464539499641053390509489005226360387343128606310147986540681448988634418346407969429915322609506247857195025533305107167326439338291831028671542273390530745233011704698021866978297009997343987015896971774363327365392768916006472020395096175153924444732884764530128686925460742717655097947416881902929344254966705852671709557696002318126034046258018387610915823928787028206821957616693323846531056797832177619735518602611478752291328105357746200570661048717003752701346319032824641185211780191238492460306327421431954676516015778186490545031846799961811861176039203735199566977181961333569160740037438861852971974609190746087985879418235854632343793039472097020523865318717423156534634870106363975197092684070198359490619256104333507045310159354703072485179243156852379671485575569618013471693747375566108927484198243764321169991548076105308500512468045974461946321812447005124080682279123282663512076615082971771637754324982667659644390209301159405117411862416199046347719899758031409782521300842016459079849330600400127531027891901651602559277277399197562373477055593123106309120330504443802020804836824109353005927199847902506019823510906088351878816758088871288784704876527214647142765655616951518352159881170332006081122513766698014575264824457855562363684895986710394805159020790337146502691068270442864141516164472494070168585056956322702749125596291633962338117552412701603379082744345965287345789392407756131607309815956729678476881556542021674999486292089702807564318719375356243050409649118751537780250919536483806371533668821121549088524704956923899307034464853186884781710509925652469005990026552508112757182978490325581436171304261206005578432590689094275826255882048897704685678249752417541389841524949642325539715290399760939732712939989040798471453283075740377681359386062643154309265637370480719766522431861459817857031617657836818486759905143463836284624472722132816274071915805744621121569526859388199758356317937427789861221769611674544803955492518318181464081042467472417531099991548123739037035273587180422710262335238894189590691913412793844674905988243868884052461401344619463282498115086115584779854301670727752925722371613385305340156061936201774338198788812144666060496786274148656046924138270095611383494461484459266355500245784730375117240337565252152554411155835074480677526565323017565044180965636120671772154337608432004137137014897528328623124172852775002826107149602839453817162652140944102877525669653350607524867972346191960444884029409359880599507088781255374197811294983345778985096191266146838649911185733459577538533308267352350695364367522264623391848985361786448170709567064878369649294772905612432590554055476566573719802852919871094323966436762404195465983737983195148036582309873146065629752323774134022180922999665724106775874036630100331755062510696588914075619090800954877249358376076101391289769362921469951377161409761351658063677051780213123992860462758022468589830408006906173197848682464072293826735229974566322798810696324834307632951875573216167679617761751192256078848803584461845889404101299574510447813827911809035318877417507038592753932122533729759552153928872267570995542942933457430172393958474195206298264015324349111091432689520714603171979560579719583526631453812469616562721273792806894922709406568265437220768078748015044211494917443492649700837328902534278475507186209279037907771032806778896884767910793312742754137089250014684466641896075084698920228892438863782855172259158909221717210569172822326878310039562648933586445703232888969176074483538362724772496394918528735876477654096142405113335254279794685242059850369721054741272014917254470811713207957599892266315692362856928224294177087785647254883254716592607874514551858259247045768191376636186058271562074013214458529923794553049530354289667023083235801829016375308746427251183498879122806372420964114333706957636823250590871486680325946646361035239265033293921690409477032811732667018809234818379918818256944065794256455416739374029696946030727785972293603252823065592438931486387186596259968107762250296103574197133570658063724978620510740481251456563999180522771761188919344070776592113835259234798568517359249777573625230040983427692095992337300108949344875061874876116596974990436165440215322970640296369651593947680037557586915382118336304851977618976282435055059232633099721273393343148128914231577095202194501662558795122589961725562670177616725008737978045521219857490844764682987301700883525446528151861048400861001470637518984944323943247134433032288008504288419554664758967957254277346058497456103420926788054120140810967573278189862551461558759897003602250947317654720454584846875718044581664888485024173657551632050347189525034661506856218685218261931195958628938329511517337644990685043859386201519441707901239834554310248751200640842452702104651339173843407661109349328896256644630093721085084614977567993171589786350719514180000649261537490469334201731083537216537999801909382665152159554805136406856870601756832596264924095205550102570777742200181470275169427501472130155422083743722620996595781789765001990824279822695583611776626654611585449461302470208854693598959337618325178225791560268392909683841305224975587686701590901193327016997434399195503204491086705010480177778123643698349317587212006356718937210883279839511755199837115647820978460132479318380452629660405354334858812814846715021201452938778394187709173286596584832132730175747368873563704495837603371544065451931200550899546228477033332004309832423290579029721430432031532545409222658322496547677063419635743689077675010395624466728729383029631460478236419662009000812091614736195802333481853627480493546802353856786690357774270362693113686188053412726567636023495917109861356165698407765706926880692118846531705174607414902821102534950939334838573664085406835796253014958809118147534743506985105025158897931043653939265539795789855775045214960231232596479652683101276038611441157495667441087772934260383119147513052362365074518208728956839281423989589264862110469313024476956083751757054061735226956305169469415927993406136862667298318148087318915871530232264165575727938827411372318989186312171104981376186231806399856588053075119050389749511406635604390739869546012969591099113652370308613870593121874812238899892439728748578477147110943229932770762651042894576202626748706123752759042106936256453413303206627508627650160933027897593500547098296222953325629668400051239260573827699035356889335755365430574650969222641513028397889166955239430289564587579506294693840552385544578849694341456187482686427899418924762092068271035132003906587859918709666398773361196758659804623892268611949274827885835014598575525797199017304982985874174606428161781859325862237190475579210964900613916652346514244410922271156218791254891475592076008470896946388680395497325697704340434419291226230824921438793190570570063841006357331861911245955126151505168197729794676859476360275387019589232247469758976169437837998016759752641187192112964350712874157855976802687308014606394202161958050058961895350559732673275893405315233825466932759491287143773470337570778074318682730604584445485557620649385856847517055289418116335294689798147199556880098997042912265090043817083795037743034407785018868272192801755468031056063526204037823191735703676137924780883867312733161992892594010363270139530398404468992510331972890493303313640072571393407675288739803970436561398096724354051533624242739879099058532237431073170017271693098220249026664283842781911246562973882124425361387125928725602329744571721657576715798531547562657655889225843224525357618476093270134709295755183255858612608030423670875946423806601578559390027991482888750440909939720773152633531945479855250580609108270130021734309151707502720319393363202204698919857866141415476307902054775590350005870301186770450156979579007978588463763393888769315578371398626569246759072990993830422479991225556856880478120253043461674723229850996691597528030399106304443045558158971221210806671419295605947379657790434870826175776634467530792001463872574019143703689505962869273308238128329395619785180161630274004142201416731076477441402868580509549144240559652695067960858932631903338523530525860283693186648574021634858502151124348960476025904483872105535957927975008926946766943111665843709724564061350902527722679996831332641697329412928352568703230659633777268617008885404589352464971745693228219001912867726380050786917568241611362379024115855325591540743099087929465943203249506023713622190953022363152129489643149651129045710830318922150436436431940068499185391396733821315601649870534715783244629223533552880069341569129162085891453710189428929222824121069794171618952854555053296209610715774558434412441489049583029653638551158656058519094177000382430416846651216168232424860544129692625194215653376824121252929267852352812654951085818973961225893539120915794948341217307531305980188228668272520311047550400927287840415345951143004691049895449302780354991958694874917399393809196463813488634415870857781215977857156154707734569707319277031163853454314950842280286080893748306885170571282885168611546913719337942046125783411125968811135641769019099824249160471590930679011837658951711381741517704554851098497874314350926548235676923986936429385104106452039746924994525295903704880442142698780692183348761690122529737457627108127083365067182245657920212580624684547011490857506646586804979226955362094875303081523965231460641261371343834020687640543327362763750304127765272624282345654898319313899174829905477186900344490247561293256621326773574823919950371654813126576592979042405853043010168306031724082936666320011756912311503827926293048674999309671301413066009998060950961240133678347584512392616769708927596368456983070536283668729802633874775800068821131602290876474091700376784838193422214149760992022987483203167070243706084658900776537156226462705596389563043706441226796043328323375870832448196862084016584975237828092549418697665751352484207733561475917818891394129207326247700413124731333607299732085240886430079920225028405270978464406408282570063465426922998465779682216718833469236396483273398215353549810289740228986920759902780453613805809944624607909002820630437353586210507470269559742860854447923749277870179495970013118515774659737110895374116227210475039327393364899454759601298532815502408081484503400840518393850271161195738420788966055605417108148049008594378837573384258845108921405957088475839749732284760244761699601631091409039525788811037656258730990824641238772566652845981681425917262633792211886991140274745930078630330634152484784496494253806861115934196809967894279306138658305604227545450769890342342350625574613040607516312953154013318714982410114291076764098698774799186136879430984296453497471691279409989149819733377473829026134156963161312222369639427162293940556141721986553795093850366050478915791173748086222949918179243932294439611716614247140450311379594963522735656180971634227440930506087309696956022976342136616120135504286514579627188947135478117538333022909495337846531987083012462582010730944354858786967234843338787090760711408908902119775284498960296421734846933839966793885627549368709005956135639011168300394665550706152028220513110216187369589719751948109082483327987247839745006237502424602295313361719666773721570001934044971589510799237903852048609350473455740140027487751046942486772373562017961842671913909126409568115407493064424695411930176627407332335650502817394229918549918069703721072977938170406506676797945583588675342911346398098481636125996168245299981158084685058729956670327305336599229155419935534254210157083907774229550613194485671541409399371504267031695302150604192934716490362230513191210982607734010784163380061122215191053764852413967837723996064087993421803379089353380147714183772882116286401989827992399680282464139303807438009341942301931721002962496730103436722854717551324291142044036138861517568888044503220281236731650237284841391733402526481603693845009086250041472323257987139182974183565467938773992088612670819951373281315632415720194324304146832752695801751262801404468526868949510016875409114325675435369799811250934969250576262844931231721661930663859527560479489322435356468689828511601377804660914502516818496538697773526687437702566267661063454629725231267297425498280772815447027900477704409726868628257756336371918455800968630446503966408581663339024965638822171494129924961552338031122854750556905211875193097159833594717742092641921911573495235717049235489731245283100043584245909221206042740969298498219614495753680342526523776804112997600806635509600655840499257133968962065591953694145516280654321225652508122701167209766819215177842646430503155935670904852980674049530804948398560496745019439985606983103851463541975691175260658798311785446273326250414631942385385719897729176744731408311121278714228015311401800540605508486391632571972486489197826472857277795508272619831810044131456749180256353286545805217097325634205868628839382414115523043982397588053104363998842271979369544421174189329410519483012117195470805509928316027905831370311794180111218140986775729660405698556551469670114046496932442919216547269682079500375498698290755557959541298693531096287925774750549997532871461905669887535622271777695356432413994055888319610058683961336018501155508817919487926811376962250141333992912450771240002778496259199868682013862437825518520670641886763090905517352722936547818418968136946070700390831159957569141109433289221472277357902889127550956622164407683548827586689113962035702720946167274455095666587688002959857534816877898223357488426968771376660217481462248685024716982311449503774320853981192353880985231906413105073830951054938729357360304586900433136688344342184437278465462044260485706426870732341218264754396265865206651089295033445756415362194563972851780476576904792265366456987170896732294039289259678314152784001261881924430717521479051576091241983415309239232838565925891073980479478231496506398390233121289096430116334388617604651978486993132057166639459181862390781591539514421040580079505808219517197632624304013915275373967150938155837229283693740560589039307464886919042477521196463846821734617258671863549578922751485538832229465308691416679815260272330107749333262641411371981262039434157954693591618214696114631590777126733658988239837246541050607887188676203362402909750308027078559100944593549056917050000478546943039855118931983223581734451773562845601304405202038267956901950661802955419898185182800734555325051378674716245776401440152930879906692812002934105593276029363771397375650099578529919231234574046112875815714096206585588449911461088514164614273450157742349208364436905986261839115102979192990837937142952475981116693990415525299476474975160417312180009448666795690019578870477532615982577648371772334400848792350419727504476352294235259242951435041831098721662622467975896148310354555051194659219151222596296394881340525723368387158022927705916531416526055479571560017022117550160766175990635249866206369834948518426239487825020621166479893909092246284986677916613279327909278862384131160512788319252129210333524342824147282739326515756191439639084338930233779348869228479925794997189599997963584975352326098694817354429703814783362967739993849584919309540737105042068199722198572035955887345129582034127051120745808227292834273622630393892748465835766492571382720788156664008466389048863981730869218639795274687069557115707299496325356757411921133626276415550546608620292975078181611204231942998123376574517473527044802176780757692965833178128613506069037426038695474101384836300967875420775249612162588681195941357002642725382219644027418677186725163477558970191867016747961008192945430556342142911431073651865741017372587890728487106960641873550017445462638746656680769368064608525185049952093280179220169121795146359079422444448649601199247778528830581218166621353191084260635235427391063582525614795463883746001918769614026909474603276397081474775700830252969342761290366124620252156799701032859074898729794932433631670224330072333066371705783325125517901167372826248706864230754117459382300560388021008294104032415457912936465202153124567700805339600107114318026857576952485259487081248624808780319139348426736501604037136544545577503559252398358698479292945609130780143701129206083141777839288781813443203252980058989170556885643244848540842021462107574498446767637859348678488331960064038033598042684022467857408177981735632979381619379834459558381180315295368145454908909466807903171587162786550669927346491952212119095847403889065240430260157498027848408576981860695923679269109584362510558272479963600242528381021898808437102926357371553324440192273930826364842215806647787655112515134361728928496191818239756950959694101529145310940845138412491693381586460170305142555134980178268836183053919890118622717202635542502967874849107496326328554847434246738369630086179587081954767003481708784691749594275608010108614099782554296115060392233540307620458262593176982802398663767106279749008321815461651727475641278540017064981812726576307365939313244166208197192201140244117747653463573241091072330001321005039458745188061229069417957094444138607874031126158914033446616619264020634471831975625483790570459057750654886042267061573109939712254602116952078071014668426357887390381569065242129396443492606940044150102523640121223580447000976394174068774201396268293852885333044354744259358665224252481874565433057796473900155266682466610025381272804483595557471062655672945558080664282434132238129972826133920566457350735984749100432008238173839886971294880019414737451035660232071567575199798500954178331089046636878400908254729813799280135275619744223945472749380754214203659345906573396886837331268057970470123671514044342210927060420473885364132648586529020208459013198904625822233630776750493553806597981295887804915101009183780912228216308773042181619005000569198066574480660642741734967038042326293899855134704713539267532033011831305223713107995250724182114633195660180957900536504142981098841966957093981105675791384732169183365672513065661147161277268541354897121828715424886084692327279215057812064532319957571803493624824760370837139837235697618422709369099160818770592259582209580652258742000833623715396556778384841075559268841449435939393316430728830102966588327469331140115167205786615661409694853027122722100853872794798789161052214447104592880916266890080296862832830476896555777172579525923230345161622287815245295245785422527345927084354469973249404795193943562763941759030681390124574145011686309152063637154176367540304410157279713080486833647690014157093744169153487033363665417701117911271275823132861827363822367354385778772173137200275104139833777508143191774414081292009501732423374854953828926828856419285343756070263024976370277650464397771717536945733687920832066440968379203325289846622622354091224305346887353177291337736795117753588200916624326061763491112108466960601960286068174077885115098310906626583955543946176631214511347279611727365979339745376607004183651566621596643043765001837227127851440028386475371844460626873216742534639771575901871964529771344123629169841599518690249134683999871222337264514105162238959291513228816209333630197155628605156998481585693011730417754915433063811236360270531620029156954531008991773930765100241871910997804924160185303980173560443831733402436394378795872914541659234824492041423711339301038128856976346958486502430553414365972024842878694100432437649377928358355361500401433840332550931145608359721398284511522287639702617555023706009459136726216357643220687633329983195375343011441898550412355983336639353260502634565697412915425205809714152149914510336609732352730574602457922940746252821993124288008610112841249634689119333987183633317622466353795639236902891317012635616013856716178849786230594990403064568338416724369640992620986278113838565790454478582286867906676958454112243738959811780830235707999648580046934220593695469232950510667108275683077532896193623499947608356608968034489447502327589942985981254768252409711226098061001012997819136067322446111219537239375207853544949602789712861425769749638241296666838906189614491428319282443955928303272313385644997152738926100807782355366033037690361514771742237742988107078635737011824706831011493519636616975369488271061611613782455868477018461424815375358007455373007799656424082752076688121505968069794019147651137272084828837529190982540396876115651113985441817119165467658467971873640939209830920960277549994460616681951483735170141853604527742900100730393977479949901094333915998544525147054146560730263902876476176424570010383546468164146259187185966364780391072751381153314045804286193464986518580778282237072096731901156104275624763083964329244901759762407391252818647178771373276468812692792402012582285613807443989843944546182731856658529780580967089551056983047357344810920883617574790460932129743951996031440775823935855964829688373750046741450923678627923386546535425227069754373034003828668142142576725430207360804385175741944635780652222267692738440130353351597483153191202902333033408521089021098742452103005007553244488417910732325956683065809736459792773603690808151743215474078801427859689617678863910146827697961027958296463111930976812010519105700908155571264995192471546077599451068134042184656173815645186452053127381931598539968062411404491417219501322983886192160513880886042466375792906413087954382049386556081746447751730138804538321482639667290741281825034460708995881492077688868507282093118315768069950070330725546255744369497832933711836706081776176999108749323025955607748920135007804728091763164124458341064100315760567653980518531043102278166906361341652832633855784618089574101625366481606860233955303998113016337636235584913131269702123665932096745253652701411919844755938608000071154013024893740474455849116938041338215319707492687292233653372721641576224351161707035791337781754877993970527543261933422695237161989002548724353384563642071463105747632278045742175708808469799538763608945839388158435554871001400717323050865156693361062740271142016340157368841709897031776033313220529785905483014492809709678470059108770296047424603394321923964272901697656088930371070485948861119417224270860574079513591305206199568146014227066053550414307663047162720723397550788160323150357438258208415906877462488829581694417969521626025839307498356901397895474109671873500079322656195048277240429092789425074615719582128996317050098234685129077928656627196819317075760049774281773169116909702448644419655767092374733096672446044786683372588878337088537522000810371812898316410129569446099467911547263126792203313201907234945726206972184524646482103936956779898713522733066935644293933224016614958426351289480887234919895131229734706277255606678283073479048090224543061458773895295121563522054118906455078806817234654380703191145315582276554038821382194567766632912025381838161501422551490301914565270705587692158903932710609431099255751856337265672296203126070550136642957387185164185940393401317390734553580286730599493334939158518729605360357937192127248883578689453181726139036362466174483169106573634842007438429443500534263241168558622476106468319460648724825540529714661944643739731355647380843583103603586077043034152599457418083079569157265579655927103909994383682386269384660403113351904633474505474661808211308946197745163479553095597839038019875686894297859158448278704407122257307268681640776709930284440581040028321611131562249855047363469165699755376427733568520111084801893839395644909061815515090988512238279262562476979270936993484512435382425668139487859608137544512600897393350798240645157668380385553214547845000926579435354353925818668775747657009045358338348725137921827770862223177719465689896557286421785248686053277937431925279193246292590063594361475149854517803516835785192548742170491142225613494897665425319982691873669127576587728096826378132379382140303745260886505186906226949241744067889811998210146235229657796406747977754596043717937762288110902425980587594138042848859842915274860347767088598316683364956980408311300778532168399287397128657624471842603792454909612815966327685930829692912362422198972401853017666972800579053603650185286022935046959154414859884140202707674647739890286167207731052288432582261172254612799882038616807642529330140291055443749511587569330112140814389790588718949379077360839168910533315149121557668016235414369735162390060149208710728290054161584152009990181228792668458446152943796830699085090434080947452340845726086424260405393309901435222999241268821050696271360665252426806327804868633830981611951590648336944215016846079166472126480799859326913514118225221854218810056855173459049205356706462386118913739524789505997585879131234361398709566037555934684117833156182510037004914918991499205167224578969527949165906568504612746399766334147023353096997895943484534352752926360732817267389754545517567205418791481908483609133467076659167124339739839260346220408006415375856771133345906576082436657374510925574178244875191340781726351485456773707865519576003613427383902816067036940572310838581578561617042611143657709605679242344936133042651519590189041644855943005262092470746120439424400813505393433693802727296490992084878022482715944262167784138485236818822826671447035105904669650511506874653392514379673623573821970663274581381223704835090118745940827274116630872340191752513478130714972550118344124653466033423708646948919620550201403391259072334288928691988362922047195523449398433278138211223360697232724669873885975786301462747632420487645866952265210879251326102149984144909946651302741786195316653817894711766160390640463677784397242007545795500466339288573457326656655752793963201738528332375848240534788221109369378925863078252194761669361913207626942059423595761836939977179340507623413212830665377344628021976893708602477565179549455205398511439860317782381355591550274819460513679166414850502314218320062832550984518008620736026482109803018582852285719014220666946493938704872830550623023440801071974343923674185741995657297044953261748191799196845141014394592348679373809163423177952650370962047663965231405135882668790009057262726324467396157357525651159674932169025961513767482358371817475128249628789464639351033076667350594132510873669447453420399504542984002698050667208833349327029772599432563503981346052098402818164722544698774004345390554768634640981068225961503869834111739033969524227942630427803851643960453586951081244738901040364183261014029126003772341469916000037324768831185785275750023230484133629914194876240051363302508674107415796698038196731323386711057056754244665748803890819760041041369815467202400997223176126986539444581236704879103394155958388268056231571161211246148464546665232520605334171327550142274557340852758278002840085968684290060181258028662484498686095210262401831991159556881246736790268364062901153508542680790432088819023128673586319361189088296878144469793044090898136745829279851689855276717265175092020635892455951678756720689453063591540868296678359631149029876192991562536429672091670215840298541666414507471881155982066961005074259097815286259679368495737402186737490021391372917845992630775226385546386323666943649828460122905551304648458411032224962582888157541509933869458322895656577196388487579857743467733332367142119772089463844900335972683186418257703955432730198212909393472090625936753242187217279130798272477592040200176791327258107960489989841578475444144507853162919912206759430488832639029581978553601305615696643783728975553459911899951691585153315892987231799196985262912181239363284520190517110047280674003834532030200336011695153657409783041796196610164484923466643565519086151851234074168441138880272843296345630418493572696707655559088135957703432256754551201546135347892314347434113248646929470947285322771290466606934375373251483896542639843793583817645136339908465248696828372145450100712518841079511586117523557647351785881871790485829505267203294501579265191757377255104788609276214974009712495258105177131421577836395278057956654728151724212613413577508802557349626382879715042789568916973027210279749711796898112802654782459423984727428139845661429789742172097233685203759364013265087632577821537775817915201467873725959882335046559510231630122593801100559700943580169639590429523953924230177284837639883881686583693363380303378975854755784321746303220520561587386520477890111552589052702422840186030428590024905373652664893577861919330570453880343620962024825971425049151182463889887995083661776845239192383951926674753292942577200001205014982854881272787244955998600861366874390643586577161877650701425513838995852321235822916403940746321628258657607914553005396536616000582198660644958047162285771228083762484185129455552407183726888883785518014143947986284328741771677532946544227710911051399638950265848921673797842332158497230943723147059294771886900979577992100805614607597995226828173903316327343505970335191584371574008700677486972802513020892120251551442090400902267295239460655300973925687018230823902565795943032073101515921207923745414734971251659923425132088889829793612577878330179409585494094365546660179846916417815420292426754953654636266511475136610988309075305676731987935281313879015244295987108028934202151586308847719919762092674733666833215629723858950041656740534657766923744629196454119023346259145167104184857935555208420467213608696677811731509952458240901441145735034255203311475386024916824937113338435591476800840097727732121098976820024694507146582889180183028701687741888478929269909353774973086378347580641453907822335569691265507480679893552816148435027629078142713457431596706240747644126391891328446356106858556889416755855504154886735908290563950755618900612631829659202316268278162656006243762556899825697211648628678115312904847392180011872046180277079293792136377067872908319204018098762887280271764053807842162358346282908011644855041865317810109081146118825438383643606871982295356056417215753105879687562631678297006615267143056627876605344430544560984244491528631419655205668266476572567320140837527008053945676170511059826565136431395576781575356201261417665831180176027714831724843679867082045857733652240845308743118537257059495852503123577438015919460431786958946699778029072033587984481052627818862385254425288656168792102927185278717962831512391737476710048242506706964188731595903009850442681732815069728087913919107946201130684181575433268419485321376870709942924466887563141544414853447008683575724808764902742257196313056993890313892475207602777214997242776908477811706473888586169648272481357333554038759654987589934684135082881795802124220860354016791297592495500119404257904509225585552598230132415223800323879730301736611472002279661741175442434943426298967491783689234626743730853995197606102938707241630094075620404233952872064045672833692544299048843408811649172359837021122453465700671938188400439739497048983311538447316806598844150200324647811801183854072982111136682895404028128521707135501046101576840516779199659747224064429195304569599016373189411671564754277243973190397953106402933890738598949323630695167767666593651824395855314049288384714283439800311471385385861574440452032404357415027474252226313048025310571907849583066211447150581058705388810979594366861050766474878653392893659999689474619112554206831877548245678106959276411653715672981641787787095925264788646843778763083978452863364000263519957060366857427877731815034553911200695562124605537739533754794626272045537720450320467135712549160549909240375454707640494616039903146497346603089070260499639868881209170927194931877311303346981690898470734871861887068826083177608142964872714604839319909436444563560463817252229014215528189240145859325429057388967368878466262458438141138112048637096245184825609742371712370365271902848015503946014002894146502315740029987080048786508337373309541821961640228279060241213942818532442009597849793237204177690694094308908387798431943517818954738545040054256625955832801655736056575652441939643718822538377517010441071910186829792048880142560091929537046377494856403315739238021911913476520902580715374293794030432711846868019403991566746640843739082823094106475933810093317344658341934798404610293898953174436398403143600267241318213997063958179821306868421169078498332226515802514176406001330103161996814949253324530468287023799841147693165517308138555046746682964580141266651378580776698298793793198259785506379910979710376882745611295775278318718028908352948625217504442791484940445152193805006343977305265969651243917615874551561004677871697855541563223986845730675733940416179996310701267899647835564611361653483602923830198943082973520355263238497831166109728446230905632459580063790086961375783521746948168335933742586184857724930901436261604017882778930007405793406797681574760796676335368489531509759326550636125033249544187652415178806495708966251109750426299409611562740730492832204675651974854212261242941148362965886209656580846863132422666837379867076678938538338702945040585015796064762574817655861915445504605963161306842356955298504411237506987674704722367455849082167547258064635673364031338204275384569423715933557821717475979335710292328399374491948327677793921061265299470894138191054993187061429402850564186306267840992874188079843402913373991352931322946800182679009976990541318201928798393901550919040946367388914647811999814242733115878169907683684530380323167294620615298228841424151378021577761962191952788985574057975811137769145558545708411226263505611244632396773583586694042483377199105921842115830405496847962743798057768450991342835279941349321666701802858781859916718442544318601276853274287624974564861495614528410012020299025650789748498250567104642767213525046027311182846052744301500501060668035517986864350448568467110774459717276118309055222561975807721268333315334122360823507466436916343067398200231386426505241864427867988991998057095128048349373248832952887260133211756047362803178857423274758496609051078971133423174185357658073891930508588160580709398367713514911173363437332595065292829497821455659852715463752509408496299613063345475012947053796503532578529199037582250306930000363360751775664547704590509828975369827232716927020862006849570546077176208168275197648487516369634181707217279577804467767666275180953940503558359274876055216801194268102461564270677748813715922301624628945741408053077313814855097674941609531844647813017674634099081445867521109648484846055053144057437041149435314304398863600356125864622464724469678990545606443655138330338159457821108564810796880268579286179704559073815795869560168831115781481721202780871272401579244884392423639121432679364542589709506008606311236250207845002984599103246114541691311363641303975777966855748751891005929511222461017631818208163775234501125995636233089668488016573724061462313066474142601842180685874852431515747311715856672908433689639813259172422775785832181346715127713172982123977369240125249002201406712033319063685467831486645888385826854402237380148937234162357025851690243417987132455184473386536431374753992616437398108018032513835749602185326261236788109343904016753969849098811333229656435757945768133696855278072474643983327118172396925088663378331831895693195277576485474987819768379701111106048880485525995811634553405548879268029439472974615120953421515809427048742771630247189626157012183497532502500223762408168851813480602178153925202863205338217987243188625092471144895587197167806765451063113965652775439495480356634872714502612583889938435376213453509143262830757259065901926079042898059955218985129799734038280937674161469060067769647992392162744963934092187123039980250028520874350082807013160351754521196291021284548356212025271708508985132849609743353870315744302310684284197401421314540058484569719904895060266190915812665593130470326285724718337385210463138811970743630772777249491583992987500976275724912694350468188037132596738528374901224813296236284629273695449766398233786400974137348330105689546455910004648845123889194948200344101726067255635049281216265184078050015341369652175160494484060004119320804906816803940544523861846775847156742844499383092525710639501717211683373825873653517829240685646428495403074063124112101700462534297741811634140934434779272051822477123049196968940620029637410531674847249516196534285816824588011211501322273272487950573275514433149994720734453894639095870769624718557346808466257487134526087634290455829562736796185003460877124505851960838593666255225739791181755181728453351440810011367369422493595805196781340797390127220704592053143388194590220122063693355928313259958622349960771860785853462499540938296189400534150365830498764507605305116291232071414224856950636670035896519573185638239712098724541012500532544560329924553593498019191617359674561337859550446002578200665508416351900347674014353614188129810915326369604363629448168296887546240076957280880603407974896285454951596500016809210480967511856298921497128907298036970872164740623100602327038602333956876396498738580951438534701277532125963758169456183445786285174340211202925924019051171664127748014041567974491995695816012613382705371416325616565798910035936737389579621589136746560552789196150019288685780111196832722276787751298247168292931787631233675878856671997066971529070587940067165500845635801404258563335255954228242063390094336829382494367266474459278014391520544436865340830660932086861982523069520532707437132234317384614695628985120999910858099903652297296480584742166208982445223282120245220906929205028806111004361176925515322731259616982877460721030431489458306891200833339515707953749219876910250371977496780718172859636415217793830874375209784825367854894320330726530934227256509847826733030344420656063794266408938921852219801330204672119355137581358163826527541037504300113781862477785404090935173085649988228150441907936291720867201236437377156122464414097755314980078372001261049247937360313932388545029910971110627579059041046109227690832749617127432268041967442742752449808899778717447690728856646628648576492203809745697812994357725100336049384786591710625090717753031776915953918683420712526317700018362341751931673407924269220970346415934868293872266135731279912238353674653085016276622811324728131338863331343150701675888257380552289865654535135473553457439039570183726306959966681139296954057863942070098860861142449298040117259526843223179593259525725163515729408035159216453516689382391463941939689227103693717720582278590163534986809269159014494243221786411634128232998515925516204330201459199810685296150704524462255562482798012103426822634142797951396471753489599221058149757673534050009540652671837667844005852791722057144493217285304614689020994608211520186443906666074668118287891743433449883578673663831517031249683762626231627774694572409639084994445387574114706890728595790024945674268853436303162103424397690846999147709401563445475286158627284827114785289694942490261377977684709146721080495252347413451128959010063285637906771412471079486266686105707858512126886369633375449872090091240644196150972792961272168055902125350000274563444586534245705888066521860188113163007361128813807309676645357940607419671156753789811613889785433829597065610877855247253637193444000464299971234077635415805455008486535538110428711928330734280087165714003809943493291133167106927544934836255482879447510963083197885391904112256876920656420361568519745507970617636088498057812269285787266375755950044301141755194453071620910490330412309417945370980002860979264302042110405096147468631474746245521245664530353046101435292423763028624813118349637230883312545593155448856278152687123079575206462657195091624298670898446289877786656934052539793639028845264877448908735848351885714805854897644997757169792294027931955520424763943595338778879976749504421616270902955427749414362875160148184944452817576971316071788219549796407995204352723069584558565593792477987278311433659016357658073655104422795736591767771428912609187956253531918955640242351730080613953402777100450259291206376191955995162136559451704964098941139968817520034365543244699766360407156480249303248233242726031094398854352689206317856605706907773264277300626937460193088478756341260106244705455742448106341887795833345298085326462725098438199909635536438482198904001237700366182279921823486338442317607213958327311989387670557933564526756897937886563122068382437392716577351481298228780767365515026004831862335757644676197874624265939207930219109318437976008835888901411429437912774984693236202274466676441765818913637972768263838695530790515832499804634981209583850867676775182449379401252354458047153924762253584014437493992709835408084894210635737527754765357501955052302603014220653207072646525893690358625974645992564562520681532502961632778254594417685678246250402902425135540886669105029520526691640674422029638655601022427258466753474119488019457156188003072622201309823208573059031176752181975900174163830975037924223605411584877829274837615609102682166627958901812688752889519723153608229112097486144775648520530799302520253086228919925679729129844348108460758717835958257947456151639269539409805351120634052528738324924118276096011641000198135573078257870991049895590006970016778717099664543409138539322966625408604874689594826901047968370707868736758283301252662198243306700503324448056620244590771412830452971381069746338413195349617269885409135106310102146993465761819897064077545662123830490989875530920123393542450946388285024909860462853501014783040213158155201966655020970064524193352980815186475611543617225320784925245026599913972817156717746738474412635280472366392366965372163118099978726100345617384330118679961481035040392964266938293771335773641053623246874769154537953616853980884662812514350725178514710316179304846224085452380768357405439935908899495151793700297614451914031733503737580041477159354970852356181064758195287621081467126804833170518155581395906451722386902888607089996202885308318196008042014349134098585310763727483151043081983472971519872759514719093027708749290871677118525721962768046595413199504713450187138403546502436729854183092695344183177817681426259271383522628462931731698253299939432591896027600309079681860821944147833109228911932528872559618329275498835798596271165816022786881706226862951015263499432716186004356283949283122880602926872365385590604933947440323217012301722730577792484788106636999447399925228018827157349586304089733751160110260872991520817576014297624620786731942936046964559103462566979795856544741857781912452571253930035020989969806383058824044689168298841789873639872303563968663274653803215662217306422471248465372763867131793404277212572442208817417269299974483861271741088884606673697381942913241842390158309545029369273997774643345496215467276245930210839941390817620811979105994622265010055871915054804696692232220156007041853315150768931069033878333753905823105002657835230515962516992027912583255927204534241651450609274424319465417500234195836340735757334286849249791654886885330368258629441038705556430655933906986649473174467786938065718984023247391198680380123347024299890080520394244886481342981109058882619336646514514062221982430752816740202534402188832282172739973704768702819075919309477506903458973071352377317963496879130101633962857705880752390383953442199097516569088706366562898360521884668073056499755409655204232808597169413706039693374719964460988953402033998908740050200726008729394686761787400949329915784820022861683405872355777401154037166407308339540703275591277341073860138288991127321348122234466311614449193030114757423506166259896812064688874448495743632730230839196146190043887881019753581104647309859294470648504533532998146712298251449493319082131810699787288861372772184559577518990633174514571759301107155063265484737539741278119868851506583170565039671941471840012930847162077914174261381713536656082651353457853615546676974380420039815505091697210423858508658799197685012103166816330313709115590475390291001613267528537990501741698387416111799276484725513893917739618081574390366879839522886127784602149587533091959235650593663896425964349682959126283977370345121334759716920741877000410371045101278043070063127650623595593781406473518770650958422276565681869882141536341361474703142334203148164713230740772421771059465101817924604020438861918143487858472958481989472188130115778385017437699247775098795859183194620935905183148650465537254867066117582115515553056517589932899709033226686060255727172303018396225512240283269836088341071779205842781983042993548826477174220573109251646899925817104433004950303918511883767211720518044388890240553880376032672580261327600601349457365256372987858016081062679112222715013278408000155172921459503485577229755817438609021759232855402686563408794244880045322207780967316187388860731473298078918443022369998779265704414473901019921489555086371926243270226615755060653431702653336294577308689727546306525092950574703559041479324180937468702801970026469913864737458089727969236359662892936958638100378383138658517231181100654193896685163017851217387768908400765248363682579633832492158171741242416801751978630728250035053394864666505135597332055051052762666462018285423525286890378567894203099700118076789758180806154700712033113574940310206567434299012154466047073512687939205099878566503552479817708534615257015048855878464647056034617962017989658746672686819621631740480231631632713873614569519377600268021806927421247599248205281479986714876948586154070717147403766825603807035558113166141822968224316693297415073351419860176210376649525552963607442264655911517208431791561003023180060439110247845757757031265213743108813064894273969526463680516037012499298570699893775117504202665765541071159979837252056913999419088407827763551690615117931912319395690042077121303413224682869230806685228766289258552090460400147509919647481789244617730585091122707617334184515601274766336645783141482592108668083987630877644361653495655547842308915030966453618852674957571965872926387063350240224600562393308817821246071096774690431844532405915483203290384158187517131628803460148284143273728408008280348257645952098647255944601514674775766666732971749269695977152109031518054966686024221410154285581520197793540890022051923302203322667407802251095782333624719548871571287651289121441536604573983037691533562681836708294110082575118219066466572512883783975092850699909837587985452821684202752540354265460850432969509546806073240774622754537627916631389569430126795476959934013646182527077815859870354019370864801619389238980170162952695938091717076723511373249452212899213495918323224547053447803892491457002169837723530246419132141187061407823601528807690560800840964505955498433043928584390560276040348635048467673105449469786868004622034801157344364794855892757649031338514925856762873157059204176679401658434449707229820911968591915636477216650755796689754335408060230753009664849716948440553011183100733358718403770863429898633391758867168977154244611998561310415033290497816204183455827507039787185500594845052439732491445922190249228117605229271062035941688167465464222891764805094530984464539560178614905332861058653259350780195546163990549251837237384419430468868086421428683982122845594764448537004461270065869839200083282891043481918703472039258659124845149782567621612979503748890449891733031121102346064419057562274788350633867491173563559172217104696202927515334381766141063248975353044899060366406470163897083121329796808895844349644886290777305041892373662157777903715503978654765427605521447719756554789232395892024400430490825533268796175750509705254780807379686029947684054530588363447734604566286688433441392427813225669183108648111072084152123639233154462182278069109742230783307581226095069508934653075466674147591350556538546345602776260042989983517281388156498387614482074508489911490845713964858984571789300078676478317214044764822085023718913584590263879243515330049381683300582221808863512164952947869134324682538685829054631063154709846228485361441190581055503741654626942388291032761755157158936411064029809168529812230844278179322035195988008629293313170015532522324789312474690765396294449006219743778664883418357182612867530896402469944927734762496661658915489037098204777775861450658191230077888455902287653742321735526954332199637495413010423445682612090697440602466270520270340868040919558075205247613045104520774263970158856439512043803338761398123548598649950021575454762015649371038412311320517676388151819540040692673446786645353027783831051706343832641334860316991945306078274312096693592004107233680962046499314354995084377223944110497728908307186642644616652295319239796552685862193733155361254774067685455033233711457996556312329292151604571703871656183122975887434977949638226552265922553963050470571678344298606803807738171133551672677867405428192950473657170547033466102049145253092708384356290135385768396825551338081376949780081625817844436373897779512751051461317208616272639335235276923327603869625750892620993555655868248665057996285626715956201244704536269959008339261793969236442138276857790124791439597441018131926724131826956560422019569773011934762165943167528403746697270021424051892969315104190623775946568954018585719391498001062651055227431811516802316318939022267849790682726300026553164145657742434546302635333115916346358233136574024264717732707562956963283626563539650587878187612587433808257928541237868405368660258245321941695436958102890926083919405388504948620651160424663025597602625402280755546702497888961732392062936937895447178849842513173785155698464518366180659991152145747674923095965078206255756262772033165831956321921603315147552058858226377179846923719532541032565433779471570615076623916250300912938148747280803363098252463103591532598507618476701673851874090797661665365337609430108671117363403966462197046358594205000028691952150059986129475505243355769417003720717753554122023610480641989524107175813801053282487170545726108427603751785316684298370334214906868497234562988510572758502948246321144578814680435523379437965504130518165137988222953443481513640025987311831363904229498368907927331557988666725682781896407067503762368412477147026650779053986893349066250544281484432751565318749363141259188609032664896942263564281012780142636523679047167265761380670419367497503659850040907413489123737628054083680244342389919556441072051873737212395652386828923752156937196002854693992897579361535390735575377781641509834696077031667958391344835391839721379263695140160806961496074695371409402274695598788476812006175023959739656985266426872886485032836107510643768294221377050925632972273149058006166638499488511770316559670181086590104019689649979555846814875730862296710797994215167546215251918176964981693983757596884882571922426395141613231876356492796394038176685412512229619495555292962078764315960188988249212921307314472204582642880454898489108564969851871664871523498038136534558296120374247179800479807998806660240059160143778296100702589926533681458643999543103748176483206106446704476475740730792281710269711074836757817802483404734669448239516857485564189413027437478384707187787470069693802523803374396942381258464491856774669175353891425728017709648026482993561023294205096288438439852113851558882314691421417219081837470660601433485836050719008439700480670463412665605637780950270780503354208759812193590165847065630662720516808051317548404731711041371833084821747793060218624349985750381871194074834608173248716008233087511166803912947730254209525026602435227823597597604375172341792950629378735059472611079133987784202967768628256469167240568182202448197906445068280112527176459864669190847170592639169988064272165631375797173222372958333530030864045384878722275500528870311841158038282071085227496461967998982138527685865028156701361185624830915035864587620607587815383973566312645204984680281441433513268369388117133925890760901362879036209538024223485413028873798253859970297725797657263917679505587357069848363271207792389759693604690152849441118033859143787386648092059587696248570434350636738457703946752001746868409094113697176213766012384718658807236630187430287026311523295516881010806719238708570537170839110947025889991713468243613369824816272792361294759639069200577678611043151802432340065811172884753811066233055900392034025845331059588859044096478279387161881001058761738108809241418481859023985701727859331224371916465322543186649464371150335252495925381694342626729286202179268964743580946024972797371224518355701225551698844930473733464633255905727058275735853601415633818348263205179611447981046768133792827263467160092450551539200282542121005290027006142132223201885194284672240954550261003600017379743051304288236901415877490786342116531466369370254448589227014649215085102234865720301501258223566370321490405085114848896060386007523437070181810834401807819120999141980900555092817200473684652710122982485246673246104522640239990678206215157160133553197948849845618990752889292747942451155340747561273510270670740919000232804404399238845436011488176247983818234323751734906040898522145577253817241783550070927351583719551571059797556766803277629545294009267560357916458000204181563786281501988558882222378870296616738550387400505922576271425340467005295234113597901614969941627690084902778042250551558147711868414321398727057921359556879124358797330666590469578434963644711513979138309901481412820021599038616223545966956743222504661099904669712081762913769966344324150847312826309852613485148416070909760998983388130026312066708873325777758045900326532372218815120812954219442917891813128683226479222231083171336192152948433627594355508497320339023622072057578124087856610583315076958885917090593670027840737087271214008968317192121480342957075222414652681192019370337933339662579384573345095050546216531806518519792906183783676189543312818082658880093452503625345609395794024585315280216118930431628926582080285144709924340200389003903781212475176945200419874595448949593290338411900691524231991312738996883870213321823617761795634571848217576015384591526745086367034993168294348807958303727949295358726521582692667259487492108131113182320011847547067053392035746136499351624925453122037774065414794568761388765072318220144891446267363174945982040158065540816561990330767047560889300358602367033857265661709164552680068522241372885237999019197711507892480491389654390849975316181205396172953794605644493541431081187813160104927734971115027401275641493499356140308187855978532760317668237183869562542434542625856874658060907865042843028202559923206508200562067281825864426505283548306532214689259295040494075207084877832400111943076303497374343491006469417311238527339409942074523894681058273306823871216856328267504281455175209787707705374840276672114398250708964456665585928129065593962355184249003246758993191777822449144444637686810497630414569597299833876537585960968126191362363695850738264423676975459389516568813614944301477263518452755795713763300145459371186089598548620280661301106976147677344807829182908859968483042162176827486829271352773981412704571499291530527403318212863937441559072380389372600498550132919255575393697156592124122203009643138176647309099462132401870074917511304189223970964608511767405000062729718632879516372124103084045745347049345176824647597467800812586800180602579589750024001455478078706720824471963524396431758519606941738086990435286572362531503479029596947247338795954482672077653013142560593530683228341417714001502156289879391257274299779342067626336255430463430396400743187456108848700641458056491442298740904115259087793505422196042679480512050395497404016671200773866770913133041348528998779771118089424897897815452243000739487213379342367226899060306370648392897917719920918633783934427213096256928335358344541289297980973340127976732211745056377347957219706386245192254346137649659766533957494974737529829107464652418245953210745294970802330916942891794281501227723815299058277455301229815799289699801762324539273741340284095060142597952054096531892701152874928544917185654904100049039904025136891370323077161961477212641894353827287751600407682391759747719937511609491972297837462194595440899680477253288823701935115497523370245998875339764517023980462425003970337367163007192126753729908761095206746102621095241784885041670323469755140723013821394693788534900144300141930926491574216065160487972884827796646644221847941917648299587460945547167513435186944577086113400361430376611553214530266640742945798999372714683309152678033438902648105704226437019446090263283969112243399906645904268827432877879262417677094262801925810472974847581000312328129996604085903971942117875653646468197994975866717858140849249925021691604939662878121600166834608595372264972293539601231065840005720936357049171718526981027140978872546201520508148232483235632175839056280213089341582626657278667232775528966591410701892076185238554287423624553954815813550920271168493258965702128911350054137893252851281103524518959703998865275049052297780621884770865305407564157877586187027924890329748623592727036782771522577711619124895182465355835869524292479890065297424269838883259658584192187197866057456214283491206255767437322098352335694235034432410952695874376094906573416809017561529668574633061801517534936963377369193698214020209125203068489968550732026666112249209632024009668530235999281035537436777884271266565982431310498111940836631460294758327462081604291465696975099143091959818895284361894506210025026763070189621314787133082912299683881886436225201852635773758460961725433281232045837870594172217127535129644977149699332210059140174283137303046162141041413989206574385373645476387546831287978555541916234777571379335928847456411890965933468146538759980634318884033962196055867827256572988083084050717137001093148042721793509225760059711329580736102613240312673638687529046441025410395525824809586696414561055304152677915335182259326010087380246783616961948209256296390492975447575553827393596776311612638697552943697940643740561698857791340521419480577344163623402788513747870166870788403795688466418338077882518911612313921865233595503407217889262105143158213674083004815228949359620607747782845705267866810361022266191027232567070799557753736719736310187628930959985016611235070591702308093233508434440884557223749596651071438921830486453005573853017596849945878729427268757345010098008574304014168066671919717398073274075260282263506139333654538242134886917268635030788385099213641544436568960593935786393337732601915471790906885674737418726161220575837957701302131616614395241206600432595769796164008163543010594872672697838539231180116119375909905138306247065164903032394311024575508771296969567568866186326560441290805029504977243012954739651679675293732889149767706503421261445295338420763522280053804503188077600209208974580930770236348189902227217584717613513702199184197942181895611130666357537478409653085524300550722045003441595484269343159424129327951642917197302055021846267164659861397112702876313015295743826417082924591225894428677458183999452745699588262932416820293799972839426975443043653698888784627756341161687213317862731227861797774397069525443828504103875868376016575078436731200252042706905673941802308553260686943613452864524307736014708768918857885877656992829005501321235935383082289478543345776367977777360842320943388204860255633622676064173940160614738821273494350169500670267946583473335123854669987374783093864466329805707036431744480686883785753344231230959162049005867665503212921223824406505720527388032585072699358402058818784923403238392146943926709930336350452999171605816646023230862627100605914270302130472033669182991109536594454769483668135651304694992410071878946439635084622914588428853273070011620617957756095558323607650380118706904152064311424823243013275532253022618343967499107497287457305038306059363529256225180189822320896163528485989384574303187091973360210501552899625276773856662290008724844960397951580945661341542227450719234995548062978024964732277404812928274386909736336769945312219531693227945106313609420827581408136126510511234433908429455029383412088920254585755980208524158465289591563755692086086689464187149306144434497086873544651799298390577799902467403957508063712018299330906219172987587485474331548586619704678380967424175113639923889600004852332638199734377104768341531500268478959264796355460407634767653089276733391027839309227344567574090610518392990184426743891287219220821331893022219662052760090952311696882758458666088243454402787130675124936260892579499043665927346689342328187279896122363786215181911889873915120978985410552396629404964802469387928610507696179666858925439096380374983273934762992911505071622221726086026377176584353950840563911627756466547410466947304136296834818018228061794712015020680075749972998607524315998945141660878047121778748763345680406426917930332264097416298249874249907076620743882141998622189299662176763267017202646291198301440684011911318352426409134329781155763436733532254923243325162411969920557237622415225996626049748796026732866100487785875450492713910864592923827586582995621940593378620983414552591481619841245792838043908036496071054944853549469130173560535806186567670964210940038716084468630128696992948038531428219115044178874944705828538118670404862769722958210824279176022133932984656403975501275488053280850632142367676303756359642944360554229673648394757308901320730537486829835198616429022723900194724679207310141371791452733976903124903847999391956209375924495453086300504342043969107772766957220639829089359381005026485744380065002126434891683297661602649636093116219156396862926727724122025466003647117691016484964522140161564464995556064732659864482671097537585017566191791503879996596715884938190274725612527515574481660716523261155887517410461982313843419395583618739463783141672030275131258078734427766441127696238212015203863894677041131714764037562761009388956319604401284203130066034963331262291323380226612197955712220766895510849800715319976818210044691641400050981750060383209203474488009658396997611908164850072728371178168183604682997496747066464083201897882387150568626928101261519086250509971143890275931675512902464567036183978424893449951788648242900404685970866494743053021812566223993572913297479789127758308226179961402830799741356546479579818863726387418220224404425760367099155829009459201660300330146913123199637018115971926873000036503143233417640739141110858418050925105608793431405965464767288159654166112593125907525549685023604975477469371067106140009500945843974961157754901920134764731228876223884298093833483921388801817843243929590216237240826034145397717452608062718238069275245297457850485225331983729217730128190768457724652016497826001035142199704225863615951619369623866259832633999946266649386350583834303615754561530618695897613644083765101102581789386993905209735609251327835627008445847721252227150609404040400161641411934197543552022202317892329394863281291517248283347289834196912875264920283466262780732660254456739428275927765412407607389690896252120172301848685749387030178438209271865317044537025907729409095237311470929662481971942879119709410229114091500968440546963488827120256093193333820979302718398977687384060239324576499483503644357059012305792038869030056955467412791034723943287792122781914830834593733958844566927211436012526559398203926369644448857973987203480710088521404423763321125502631352014030762897835945203374185151174802158190359655811717447304452752364723338332665914178422645172359300706289528448718277733457995943871724886476971467665412738915637341003976640156402337350570582915908219474548178051640929650356431680027091680949036117397948604423527381480711127113193154716677103310981938190762567223560336398410668378101063146297486977212490202350171031477356991184500216258299358657604278241959196638970430805399615634011600161308345150471507801366829011029807015227602343978004830582548377177806590667683067337672652782249412776071071228082978102231564872012813224589362653991410747304562432295563155205307950019291170574246694958387430368262750439709023287499105770730777661375215834060865160776965925842979704106880407965907526156694603771833166493593158655485859169828969584191310618074560496709847119923828573610790563949869911481599321248887580191901549493714052730077217116973877453891135886214618435624967155825748815216420239315591844913010414382502155718706658589153385398644769520181974770042993694962416968907483564645004952231021913167088043694389094798440301239891206290609571315949015816057096516115632557041118858246932417855778182126625928453816552854357290502556078397482940724272581880560062179318204688286093594334586293957256596994877084445073077573503088093510781597522549023516115412038293514486701974392822751939169568698724310012455468441020927175395323641857911104766735357421286760289163909593165021336913273869906005241290572181789326992237696116676024066141956820929444022095868254375152901121967427500674368423579370454050113946151952408822035392753009552631397527259999015636147655300708012956009699216161621001752414050917948279265916919126109749079507981376110060599278082681005281903663524250861891613216596355788245515398392038726212980280361836329985256728954439673383720762472404181371859187156953505827945090323329005820283414553558605664655431815626704491286970627397683343338859677528685496480311580626003155018674593283298039588563799749313500890618055570722981298716771910093630582630488279962596555933922396269583936539235263689770476231457327916491203148386708476253333240842069811992454672208101968252836173039090142590306159624153610616137281624693799955125336917368347143543740510906363849962369412952728870167911713700737778843018628151999212750262826258676823299831047285641209649102888312712368514734288815367081094359794898718035261989464906388647208599673773032694904586403502747903308299912794059200787548756452716777840517528336841424328909823338450552650198822674982969499497797560224594532277825075006081597680941508358870887911651072156288161113770731329731799572255923321027541845938113965215216743317291653123820508257480065737178113764457580038076574738513247611857674976985041425604091516356742311080034501346280374055594672274646132990318286029709271546744869624437322196064661985125127051842913474061192809498646219926127339677830050130174969365807220939459223496804630307376365698067583872905729405104875919391316964076117121672805848927027365677942985348537259318490525684239261990102186378950005349213708546756080601254940153639495620842659296238808981496462998843608356183395904830887799013138451964554663681051022043060880676469859331582738531999278328866136043864124006797965163934841035157432872560432144688843387968635107313185830970790725439859349509024092658857655874927287422595472606205105089213826662218242727298784488140606359370236721250999831633124641945873445741703699221106975178919436884126745352355433410501435900139799931268856610225310018209919165450947980938834662091857506067848421503208483392624629751426744410634775253016316048370411917140983502755411646223765337549068195850386599657865795861464583652167711271443330123157745854563987667125669776925551260536114410812434700377821448805382123395495005058603865689629442351446259548814173826932457981362260379930421239555192614411310495903592653103699110009837441417223760693127441183222340924429307450499265835296078345478688630650152181474651703792255725689787777593209025624727385626804147790228101192371497740765987203736296723593817758859962286225334987035741991590479760771562870850589226290113048785579915263482099327752422225884779101429544466555345672426428289188520621637189616238739228915415771597447140419030287000270105274080849638856716251448940148845221698846136750791258637671108085980964844233862819041201278047089224032102726453254695693614855589181764757260017436282534239963761326851521465218094403512619788059341837118532132848533636039685592202792327878508117687999867233033799509303756885197059128748471356955444867216710915169559599355793615834992176832995422161561763842478728567958645652267735302704434280629960009221238444930362633201141273617571193029959982408636731126164756725563249378611609754990762506537447985589887850457024086048627453590731254047257705574018285180754948668399293316954317257943889631390947074038608330280274939888553393575007433451354729160338907974190074645621894784433004248938699465366298752181323278533691962751761291100543582719251652236882823909394189113855171589411222121624086911075611542056632647495593072532947919582827139359401155340174765800961748979961925882814413595842133670221058540311692508442214886380438141826965412586006966886654677976059558529540452017147637483373286163909866790478549469053203006992570234408198361230933182565565777613243062830228350831246669759161077589905953221811317278469697959199032599398460791718717315321908570122892894685818785843840283898174277750953084405972948560053309795970221537587359303096906143018135681453575957226044001024405483944588266969031430017509791957991854610627194885304537673293232718239529793647113123166386353393769333339751458178790890923971901253145829483753957345271162546062338075227767651417645277592357321988971122958167237866332213891284673899060668335303114823856347734941200801382927358989111671378446997598694361216491832866889815952085111845501381255324952677580445630041991790451710582328609151956932068432483519457925076131019655205248822649986658721430251033325256277850581126211337113059566488184847024436907488837062728266233202196349695586557121354451969656061664678950435789189868515166928802127401521292939316769609385945956269676872010311135709290853561820654795173403649066501136345650324680746609191501801847223908779208445143694987482791344201024982718228962172633017976363842923789753816772643307885519487371112980156547692703303760828207291250245159455376165002807800844616545793654518463599984886758243353072464513590273940544822620447342638364265452640988882192544548940747976662575419104575740590440970212350252083403393873744098128832687321119323377022335469346512718560298433453669983930309398434220921728263080659846666018425007890883053156314498515355888666257369033604769489442280233238724634888445007071128577241704059350500440453146731312282489368523506314110168657586731258048936361474408843665460010412505501467880195125821975588771641009822555167832399966938345242011348844957398204824099952034029579696692234436253945493947955782834258618238702571123502271034399544866404815122214124323300712957084370917642119382836924867090598060405330546370740809872475831384319647324587567963041866824755435683564750128399229305114709428178965509090952373267844696765042267635275598417687801986990432147708820194974760627952276758784525788296418170064325867844316373657582173910148137775269529472864214183627247295232382635212479790798340742561176367523152705316673219283461068353710525376867197886305020749505857445695581499164852427878782924577934373823426486162332661868873567722417901131782494759259566020853173770406792250510269956544460194622820300567042205721921637529261289248498647421049544086790868149454175499815765848867763915426733970020356327057945597354731428807226656133086636816988027337273269110210520025626721113917459831854024712210365521145616162277894876219093575210565968726449163598679813804588360667122337563324947386134086567976217271907263169806387347116460656368111575259407553042102691900876628366505251096536107123810860055439276448624280450134379153918115267736919104187538698639744900588396880167689738988443306817042081559049366780780333854865272709192638598082980906651320143728842729776499312649437911083431602447766796512667776140656113822188885145697447444616116503388855573839029287962866809511928425147767128963971205184193232863720743336126051132489972074469181235587404370405093866793737125704263056751619875251894461219095648289785005588052270335960109823597981594604382029727944058562154130327992720115418457661638935817407218976370541930565860080551431893911250515265955702717678902564007401344388237494479034145239225136436079507407782476491153003204191391895247909724564166659253026068473603369914648889916155996670056890980264435252306975458512876503742585054596563758006846380107166891349651932071304378034860683655225151904022423860241085523629989912954629551320981461640266969887968847313190686841675417523398206859169562926984519183865715883507805985842171597700900783365542412764063752116811021074876227570819406344698392662632499892926619754859030234448016167360156757583176062984687031646814508740611452223486491361263089551150574598021749339438070595356661173554788249422515516776189492283730142768479455949693394951937855754627328346548049758653749669713719178364397200019381225571413842226744788908538021039139415832404820724124436328003669196501858229823789246363063698705511378173124850234993551074357708161426894189051911105938002146241351222917614257995288422501770163847960585461097848862989045435571048112423321364829439730789038418118999455901329766604037600967691783862177087400592781281001115998909394185090341923518214529118308267742440832660659027747439017818137957768275301271594558236563044736928540915508308480811274608772366287950249459357967573091148236265067311893555523740116389168379374444972462739482182096194508770460868807070280333629099171041291549028451696920347656045560717389314025320494698486498334184253980324405627023836527807312322491095345144174863897429343781178499491207790875402364294538434776993573716286641236912540830921255563116111943090338530006409518725384786806520541140780840211593099581467597900727673586122705941973137258007941925245949920298000284023432413569727310494644528636950075981200858237269423541693438384097661702919508381637311536090882839733076474286214572979292882886567777940547391997845692315498823323106935196070282810213720420087749809375693317087423373772171963571780726693791276330929910614739740603998578487500942115379249597022616535789558806251410814700731639310450196634731067396000157001996279379988098662942367897559528817753604158895490048995217983191665678503439839138326963179167177309683809150001027851185200156181967650069719965998677601424688875973668001453453476722471693811086491125905168593759198509192887246859837306782262757516499063570618270540670761659629081753247372096931517034909114710894086526750880436041049687742071802949173298939323080909559504514864940243915115272618674503277700171569018649914193129801615777962843551371651112791446377292863281804035014902328525205051777034426286329504316729684527307032679710542516094041333738223113923818092168266768357537646373565495746999304853464146978683859636554080419521009021297628472788627608998835034403329744480319343870736580634823033518627741064907897258982125289754080162855297679509438199587446582259049501068631988521078681237333476153912177012614498997253126658403447722888784971614987359712359343154030812495880633779903025717856222564409992526376876229049504245349323591479710590963647994195200405525981518166071614830131510121152194476629134544938106924080233127640066507903855404958273847891767524934296958162278443576490084674085597646353383147663050944757515202314489281519033633334598385364702679959090088862728252127979852948350362713823481780079625915431675548008758611086278675067488277713932419808145349515983035373405526528743045715096528248797813829288606266718314991658711732544219677752007369784870065068579463682088264169071529029164292130599413008198182990495616857662982146643361260729558639708388635908551126082501587006087426351749375108644594466254225962170989164984735723857424383758580441219278566330224931460909542772114359994091871156186139507745847459579748089150969931259557766158627089697892269683803673709993397832637103728045726263160919399145658586953175846649902123714087863569389291462989366065606436073391951036971304742227521416275908481657114632783683887787374684055868857098646387109312185885591081008085384888469256285403891886477405335131829186400383632515857862283911011876066296546307863955178848867178967816212504689173404827647434433032931644628642350304442665396338845189057851091318869216567682877713659346792884300952524529156923436870890887261855755501141935093949026374001285692615947476232947174665687871603176319093284674474022792208956581764001142606671542552231986679007145252992484015615252223316789100994345280044884308209531537599289252061901374383533187729418332376459657131758057557259308799851430219934237208683958598185232027804553981442538330297078803904346847309685372380449983579169187120067135670156794169148408217923987300823838281309601728177741177856266688491528867979130028652007412483045469046057020587060404473722058130264635643941370388622492918820156457243080168458743922735084716303409248012607809494804572476301939509127930309034946305688440624528157431672548488509546832218313547782204532883400964850315386750261253600481054283154150079139129581344348342063973041952959282024358435146335165615306194725615025067371240862141627179087451192012378211001158646761450946750480113351691731832348174833022090015058096383972980634431883165641751268861115895034612663525967545894233061246713774186705103970370390161339526734602531647717557393181588622918133826598294868564041604887664832836644321522242434708612056080104897082328539491078777551773458455877020474464511436089619106411366938662236798180927654472934904742328735190488189260490834908148174235659365143733757952025203573530946574409851170538830482582789887171083927652837782036808509902422047045966808675421732767293714680930524451045553178248559240737747211726285424068078249564295671550349172717692916084521521091084527146223556844218768720505086844575974143813406474102963462368816545437668842392052298000046520980508338034943168809326511539417687474660398948659399945950496209686629685839838243092871790828964844519218612775568504027894362677032277683728592508520777190490497098021775195567544694652270028219613441669141313992981059855539313751203188818557659903310657697602815583166833407903232748091280529373851786922854093204881142711329957745793367280502934792692470976518707650752396539069378465718507365046730465831427921847139081730777524202651164231322100243296531750617177145243466144396488329610171112524287482003113961040284582839171307126349528374383327287827837486273836565560516188178251738347073613561788683522698347414497968234166325606024291191464215160046368585174157199671470438422211535116107591581438040411857897726172347206568817203133522225919377169807596613433557340755276022481098942758027810279067194742175228343792032078649834801850039726411121459562497848045933163324804611906431620895529649099846134846387492970959752606444393077177785216662206445714925577682138627254887319933390907485642741575870018479536455695093382265908185240307850624644844402996173725089566789029849251239949075629910810581043712401574796696360408565682565600689766987103919924459517984819808128141311603900322898007029255019292446019320102226524964847509816132368945624267625738158761313854185910065236486201275338442401429063025554642755448788938921989377818963062038936415106856664301298698011944642252891191172306995785138198720950831695930556862513461795758952421415717131137631351146981694346047257239543735846112322180320625644346742940948799018152381761338259920612215798633552179555738923811070805456038313938940521356928959365177723783447711391066065494664987210512616019224079128413403483776704635971304149014649344636904131361225020984809784861259837445273580847266408845698346763523410123040277616963679941386224396564927378503105505847964246251487519685121823112264160952500628787465553593018112237370913823795555829999669067580893592409273678140906909905600728348426284346890646469257910348775966818998509815727863240223900687529322484614621974468247366640706964555460455851940582148944738496210553904716596326302992181276465680963658663339407764515745200678376410302532477028553845729243072996325432923825729913304408469479164268306910596356515929394787820061207443057702932052068470625022544432178384468882965411874372479283935968397773249382624073622737085421097720500911146228130836237837730811240970503065359464097633517340983615156156709272968820105612063102744623288616272214565954415160299418611854633285116626041976116705938271786013539170052382237797275401414217380680047936751824848802178404563934243347541182974893663367765265597108858863068664590675432562319246783544737286767660972090301127577506142848734219381735327365118487861225991212351913190772477801127420550507902569506250923333060179889978089151754734231967495496803408618264429745868058718068719769009520523254605918803700075251810195956376162425783126987013359649052131587408058766991266999084772045856866702565492538846703458355026455881795499528414903998036863321732036453327646333897642447589848073427539523737714727005785013188925071661458167536620701477912557543986845031171622638938548360550714712933909182148377934340412260774283142515069777126683047576204749140163927773081818640973077447862355297615213872052239022856778595425467357011286562759720913648034959303009155971770641040155185393986099700756505896182388666560840793582414960687602219580499251019926049996207022895638321872642033246611208846627971482093365294895801489269970032454392163900051983664703100454889157581709919764406561977580945227079634081085541106868915846787448399943237200809537495223038735632407475300830413262799913008287683341904307510888419582408171812090599157659116282484866357244084132606891397330328798708735279528395971728042224297155043344452490356906830036432987118746986685245722880213046192818128263050371123172255655966788056543158058362096045868132038415228318507855123540837481330467827302862573984555280380779706659811488835267043021488297643068595565384283524766350574105775107105005729794295617458238231530682224598188964548899954346654415768475459093439395469941518899773083306696812333742283771537516352500060143215079597650341332005164649487223754135382753784935156038151015157695087375795523170189987114282508260617293411569830279947509475171624946992375524147518055407979844337068856041285301778085278986060203181219206729240194305666813120487356046923032323000178834920475081031611053035864272240801888015503377001479613083123961201428867934532438607094162369078946647083075287238816567830800517530835921385128658282381348742628141752763864571459386266392838919117964454511038528310710841177636339389286124957056313354655998016336168853426730273465750107454876612717447848108883964813860389570528962074140058941312232407388750902676532051383232667342451251584549373859921409739383078428391479854093926972267819737673001624744518433140998644989707943905998362393554943953438803655054728931401377873950018349847869347961307034766807893984157893359491020943687559187903935965307296824124690894692689157316857928072487389066915604772078647518236702002512920166432618412287312284710874175110836648255090279167579807736826754694082315112224012172552564820561672410646678578390623587582414352748830417490447390817392755803805700891475536612415309627054211129941416141902470963433392121436905744058369827159525117480410660826988454168180212187463461868002880305899197500515610501794725986814809131170572334684085647092705863708731612912548922528977765375546333749596750998157257771472113419919289080852161183000401700630261106866366050212567209382871707059001199893461806103731748011428022561714700803143193858410542031217863535326268104392634941217127372162484007456746752514608543598164202723791976689392139054892909288407460762888621083985576048925127405705134351178692513350026531519291608272176814146686997032058226464041329974112591548001483532609931749589185306956491407207736997331085297932831242268906368052985024077057545784664360335046602051504878209031147321227674107384707265087953675196283649926036410989700578646202718360276719629656159199282807456523285668396113304637641472075859120805262089055496550295894235265643013324538505306447335894761546506551572192916279801113534397551586247693058508363337315712785430762364905155873171010975788091828139305568460427759330175264063490239619462224946398646096613937028776826729618041161326725863017910439479233159403026732473468527439071149280465227362945057286902384368961145131008389143742999010624242294468169095371150645671095177421122792684873619798421037245096531440103125850740214575104543838045191522067832442024975482408886911945614987742327555847857589407370764647253407454196391065212575648320644174934249819675956772414367093146244427528444477466680283747053201789844498116153294170544512109129667525031899696807770543903945971678247076691956850220779265055759144569177002208661990278226601046390198698430873173083648815892259622132279069567838085511754691629173696753586606858266936785773907110623043459715447644570853693653043936139138523888994868181032461070714944136327121787518813551361723848028487981332969171630364389532880848704813982233160715298817886084296906811260077962532241588375905819304060288815477623134251268694441913922352185494438888578500384790215343832004890580423454863584939994235622805820027616162868237393349951084538169507143398542590586113569189951867657744965675580452209733408324884046797487831356796697693271659546330031807181156797408313999030138301145139918635161427862424837069835336085316030953555391704772424530137632356573539739737741538103786041504151485726747457962223158290741134174812157791668836096910007494397753504313011715027712840165461261942273818876477329168098166877315931761353924998398922179706094053330208476292228704196654584549764645281577536575163230352056198281453407541146659664546884229086753397646954260066619264737077212851438324100758776288197207432959856856928680385059362536266579289668364401985304302212248567401059060321365003685034208164917033540069206270253515773598452847505998694519033013494394563061956301816448487997176522594275193600125614973886737529451062450343036807431462627308516441377412610343173556914706916096637200838490753945736017928344477563999687550195290706360317055061427316187603807876133756254126281851785123131943737779245138378553654578706255362761592822013277588414884377205292333879144460358591646965268161843080648303465129668037444387452090894724511004352394667279076595520366544700220264157335578474229397685348266420719074260194842094582683482445197394360326234710721166837770244881712646642893412163391514793100131479739128994424073395993590067890550867552657375242544609305390782101094791589833856422556676224007232099976073802393054992048858629647997275876957126352094111416107176706506853804029362566572576407085794178959476667728311731434758750353293690489475363309354724414494673587441965588871466658571804018169184281869307194217145967987749302100576401265015237677777453404338454388368844271233904748812233663754591977855841199265753439697780421319929548625945221870790993993838881196887436455766977616793249851203692075251798835379727104551756651866581720101643362292314596072855404602941844454726773127021545276417103885557691583339093098211248624665799295131532141343867649147260259460003871327160903794440653235002584096877410480406859893409845109678816218861254416716490647728987890585226506791246045848571885914177735427627041054630377042401758867782602197482743062761173427664907537621769379934699937365705568979396597059470823496626976724519722574287970446324920015742413552450443259548691973006538394393889136633035679179379741205059334002078751875972484896308452988761122567207527247388853300496100991062222953816775565446491203740585552322265780724495100629320879081032598000401181940151345420940625441643791019229174095889518197198055359527189573134487623346815395575667964330739587722853510721057450581839271586762456127364149903534659351435419799815287623578415324672953254175360988338338039615090197781716105709358394111609794210615162142511039586222614034246847191282967783827422737801497688018274052012840721621360869091240959600079421778971093285437268280252730618586440232492520378747503562495038286529551650903201959096466985639442660327134067687392556463504395948747211457831851761114719344374715965970184861083628121399540458621772161779251947415087215785746452980916409562696457053120916958689673910082703848056006642743058829307450463551842942999576363473889783395093094435678117316390644682112375072677759809786898824757173983378016167887703224467142155463722003629097566672639918352335046645069071956566501233836176898643690022860410533185834698223351761609419127571913319034059897043118378367523254321361823789461200440736376541399942329942967329528219590028775755688161812668934295100712956479260441141422994724411277241158570438733844182085704465904913433810386703171665216551627187723241723793416664097751536639958549685723499788954620839990267529355397716442603975805268743619585316709557084779915643732332154370037202223776531372185021010419217566936737385126858656974773771012127928656363593167451203317985249571819650400413425343968425311416876240184400646029198366326922324276110865038329923629350608279088374868726058131607776642838135301329518042864888271246334630320042064871993712511573332825663426105272197596593033156852173187704781121909361083160746643701456186303542024827534719812408883736174192109704920689913837578498189737085765784908300793205272769536916905044055343610359792878591132985236149152385192064097635147239723020303716051302507508783455676154054280060790107030225891082549754937664317262696514012558091616724322593147355625031646929867927637749994652040315014637585479195349698504430338698170103763651349273317944850343863330282905638550392011583776038153100566844970557990173284696205260902664809903888179261178211583829417795098609473148203778374216364882401599742532348926410200995791507456295370722617035723967555060379304993374999789221094498213870044022722776252929972225378131323147029757450700798182481858926354617356067536736900934271897541611155187585930991277572984935791662988685495116018806005430902450700051619962946402556849377099985450803879372062268110811898907770221013146661401827074789916102456409706090337745337500497568075712913439425411953563933738484771747053332283771054109065352609930147940229930033264665089918890201812830475881758002168697938963666709281289989905059461173229839373234121989693532348992028431895418932790457611776548686059720336110089269231666673904541627107064529617747193764215470933499765240068028311591031819666851698362850050262771029723960540935031462170071443813710390095079235044597604910902608725664168331720814109491458090319769448069534240873387338899481514689500610673554013630113000140322606101642936742524648544888683217333200489324500020897285467681941444179816757942191805959552796305856741000937941165107403938346227123723078311861058394734824175965079634868007969490739301977276522040405916254240390533015381670900971629739642044667173135283592735981249719129426794835048953957314343668990652924796821860973394740117676831648438769259549376200249409779819911961477386983835346446227526260610201016035450830695702300881304282631716210138048399889407644560444109165835950952478808042453932997324924841898594523219418712164179244894945131474670619266967878875747270185523977754858284616685965654614947481236401284130296645963366251178850038292617537978363099443520176467157707708369917023969531429041192039079550159168923468014941751839657360273457894095834972663110317664092720819835108770219784721859829968430843785375025845775731750445036251279778771025192931996895743062960494028385481531688992499400600221352851035286651271595396138665289921408563168672348088410780534212771270577322979459368037462812370418599139907872659263132310827856358249336477867344275489242108167775130480733940770913561774548589828029034091401233563446789038212581500700509168785918901262871511198106506833009029073344861795308100811989510273086806641888123824126662137959570694059218773543870158004122660812429809121909903756655690434809262486022378726849162883756023610765940343390220443006042316212856452781670782880071877162180039552563930009382462210261627488036693299008538679598075916001530649998652319043539780343050198358943452239251235693499625484046754531111998533737071462831787504149501575707700588345067028365885292338696557687731780527300529626224478989360618644896494148616032205652814237735910464789732150067465694389678537788371606239062060663132940809337704045243754148051955809883659496264704144031864258233445316910189695596045734164570796362468400368762615094716479386396171372493565949449375002285223173303630564989863514214110017956167505979626019541418209932033491688306219188383645891492062725117194071891928069432999650317547321828278904138144224701161513059656947684360236511699978272111865454441053593334859628735106733548824530469611799369329705841663582063552686403098275159403992841546816100246933503693692779054731348433827577824633915297568197406174977220732030537219031760512745930008454137623775811913279598705218622102775549374301793572769898084803935438359200290974171629384862975645011292136326066926724952385111275697311205294840132389066719416415863565674304769176915143993493817491565996786501803209360465472463975539237912080863106289826464817205039310464818717723461012274193688883480415218810257478911640385789988100190394941388133173978567244369039524689812746871980624779065362460278887660271033011732220417596686886867099306223514546792110734230076861450220594340107690279602925141953880551341581800813515563989496704182498962531283630074941028081753015916697066768110667854855541218803332188287734338373605244925042148802453444520227234570701843097929983736262862449155127767501315602963830132065166153614827006585815333537644247849882791448805967515774949512950513561728415830131808291959596375581539378644959236060462653723146334286647510400622452383407499919685906947172078167565851935742592406837306214045941570554402776488946440871595529795355526933441056936566340918782314789303669691200653464942154444425215441208791641876641107610118310030269154309869285337613550012355625760947912065670588421809299031831834880018329442604632795596189627235807510503291181829582635496445119560215573065083691368541083957267956979161228086428823228605757280503886834756389259129111404097372499125852930828425884412902986517090879717572417999387192689759964810550234656327312557630073831381446088255257936670694392659310757673030055570950246980472584799631901566266587423926154076234438935325704901384578422626386048625461411740116893500249347443504632457403829991119580129340180233900906654091086653654425660911589549402029833860856183074843707067089306768400667297970206559696127243171781199710539229347589857371307068080027311282852211395392777899790785282198722779476961412150234184967112456484167111302701721412090766994495055662924175899620436217047025206532481502312222345546546510775435619995933391229304405790205965688983860905789185032927240815559883909816948978526472649703300258024817985296500998404396683544587339285063385798838877925268129474064116716694660717208676331394271056058747710144870056847486838945614187099875134189494267969603166733361366653988077573299040071063979159734464111698632802607885545366656251018002599642055393445012780527920972560124081838512524714201467533476474014499971793929273893671679079754540629385478665670024029325874852538698721795353034679431597999806097992932856909799977147028413101006357148020140279976250564548631952987337059105778386315548138585763289886758473804830908121449208038606013502411586351510162444948949071073488070879248337444697015471277303430900380015658188202270999046939355852037847493423527751493078918486206836533735226850938319797544725877048550618785063970777271111245142691789867495895101931404350891520612900941680687420328964744365195432737438845953126581858696796570350121760964729150417745918356527143572657180448920027680650564350871345536923463154970536458197333387554326377542984261967594371973613503290779464786965497974000887767435326564913194784158668829957077798949714236059224883032949054424933901658869786811000295302615782674975242748203758512958389672844217939614039510362147482002211783075466744327624983928946414535673568375577089756861093528354422104561896709434015581421322910700205543617902377256411535014326980837731285938445527104950313064536956066748851280313996695486276291859517650559692610516399464511088979515082613137208983919733742337260852791429855537628142654768833869191444521888926524242706599041331230428307801071631768494321075108798005390882033293557145194578460575787920209131077861026440439525110522024727963730011831156925413332694057179241564284102398369663051356573925165793690834686235441306554652655143302753409433619417060598212983548983542038716687424479583507295081456863464532887864033718478187916473240154479160129073284548056647909201218791209154487404685439246389776935791627791400216484552143375163442942476644275089542836884476238950301077290883567405365132532487905740853517168671605598723730094131386206604032928926609766645305934444157109181424894114420482031166404490486628160139184060539314502348909536795897279405082538047496211722881454801684237906002206582593448056723995482839859247443582334737060730029572906527674027336143491470882227822261399663715803686040334577302584191601014115874434703066702776118630848462655637632245372864513765193006357245586590229303611509265906011329293430351020303010535506487624413858923473008292282643826039921170988607611572495766025289942370202780081235943340847612218471763138061816773382515903831535454883280811507439302197583082835837069530028681196903340499547105493910963240746408965637130690653430302302655240090404784840133409431001672750966091113552829679413310842214783066612417860522135612811035572095617857365652461785156018554811731169373402847505627118722502671874649840010574518080102237075373105095394208097914829627769985048369975607781782386584738559500816205134884853638491514237525692890039949018333281725676884583983052203842525846674187321359865781959796449954078600548524145054527738909140171658848311424656143878469363670759495694156841883875249484900234022556490418724461074704746182573257556916516992019053965849971291696607292544593300338680053879924073875404853240775257552044230980540109696292606192074632479186644267449060038189274619452952990706495007051763660776473826195039660809238079957321674755538490692709014309441473495048199398772498589605282519070440457561515832141885279912723447431885778624548461884204271249237518366235402906498133185501276356501853252542994417983756892972762357641874867172660256354210144762581814114687129733145279742692437725711235570342799416045643576994229065142055411904116716068267854212008165573672763803866664029474957847248199029214076073016088316003697198182311259030804247768821072299367203673781231820872419775880401672732456082626794166176168352935904983901028496267145886146750784318635831073434403812409129359105619642140526682044838103479089774783024870303336002533194807492547163406428833681923737452422142879541182918831290386933955368124997857835350690885663202452754232472883383633327728726718586867925179557632276510476254977318399588649471487875756227371348705886778802595446880577040445501180301348336044793372635602251964012403734180912259317817399510458219027204948665452924261184248210801635295368584270579628562369264675030654339315371297299161917989262956700199346159529941287151178650277564564851263268273215830861051062108098638837057013448554369952279280535899964856013717584501049754709543174678309581313454212626272647023156622155107963282188524861813110147156018597006044641759676352371259585091622331310951953030903142578369796832100886917383271267151293803014418212922942067795556036955904090765628696259060205509388656209335525626678736064829859193646517671542411920820560124583182032116842346527360177675155424174756628585959137288604458257761615539552502108557792977065240600082307948759234181775743857988735128869153376209610583925653790664196244208119849126267990553610313232820940278749591506661217564368764265188099210988240100775297155465200703778404103369415180138662213814068125450209773591721202790983219764788449151395624260679022745942855058479253035504427148318278437980402539175589523839346902112847053728006738867288653236759397367398502640309748176616309986446332048582044454968141862668103102924142814391112094987118548251700417516388519641232689247852006044953928173991960706532295105173425176997099879840375509942102699752686852773849914515613265203628249197696967610063697856001453239786490693874198958818729563472703689103114753891218228208443324986550232839844096037938524502508989061657644610082127599794207553246443531110179479368492976421142963863844537386235008322948788421777482411882110095249619180123267973106157862330128962750073677262799244285462053056888273432647044745974108630348386944667880944236357543740158111562875991987664225714046688172607910436093546797462920930673738871763320089715077516335543170958057181792649310327604198071236739649403586227587349824204612724659762857316920651855347267200033920154907681822977013977193436886480180787769562672602428241474071034404675152830952969489117294494737791020856178303457315774842831104100251459628517813319513193844227778852292517524748859127806998173911992560314942930349988284704897310668185933707264114666718798298911807151673190803401432479443051224058992244831904295143388294904455762178643029669903948760718381758432163179460956048383949888836657378003915502622950921552041149523483029323570237606074662847236052865094441145777042941780916269018208546409032068514251737709090133532459530989050666849773917678527340722246399201483762255862785021631676984480724769059064267752156647358248088183500435806570066811933406299430871768051349801892248182603700117062234939344065972619681257024720516860913283234619358416009886795562063054933986278191161990992082997725359002476564200943782519532174325340097372269023125970271859919465164245977285281470126862686908037138957832451848648402094797706389170392357557532130328369315407047169050851134187987607462936148592270809065467298307452936630862549518199381085941807668325928226677197627103982653277194626375849345116072870119819663474485054992164316625013253145900551631679278610627243180350788601511202649680295378094522330310672990964037697959247826662896132296258868765498095416262095339838195481490147636445840902418199756880827426582523243318199287175683233918029627660910691003488786949384796001671323302136725457028583593983398950528982751522523418578716515325829106795263548668678312590998322350712946820830240477746390393481200752653915661966012239382600798694837734304451126783262508398205230466797309941209058844118168125380030321506162863491899094946233698790932462124856226687329772409530675514339641345162579217989323556424531075553180960945474207210283663121245960966252288152753739450441770680255560493100745506639507669981171644387336762529707156785210268881842704721414565156290921946067215629264494842020818409038709044666908025682042738413942491347018690503123803382928323127475191271715718720691956318788629016266885174493158216185746855998530802434103639821732986869147693685109115046580621549893196405426789713797862115765286948628338411491981304962390024545435441583416244286830241283411235037638666652638157665994945484426431084915193510863783500219982573267723042155775824760918078377362840430940611939193421961064523406445914716911986702680628922685175439270571958730106710543773026244418272135390243388603087255803632483102566274127494111402089206660164957008344279448654988350900416504254564673272010680313481320245839700995228292046304505210193073930515395259258819849195184494976259375849955053769537407020274949541264323265143486833643366685502248216141897306590634144171407847118147611520292090832109138186871451196212781789720726820944311146065714351844415877177440033828607143906113415735669544442175702803285696288701900642723446430409870722688717234932158072312868100381000709106398754105037559732054827401412550233761979128658858769509059119181817117327734221810220753517384073843623841716805980061357990449378801495144020857811384309898709897150555914011931000992170998759866399283642181178912500052658243333685522341228075064487284557429562105999172616230338397084354286039367443173708723605475006653024160716929393389642051195603960636132779224153596201562992888645561127973867391263251702145340674715498538736985741538915161628234752949650358829898317318374992915028140643824265707999225568362215064480410355028402033567446418317218941122633818504501874317313052445810637959526372176698965068515121626195358120446701760434200535592618844524937310893598093774205320279321242388452271370756799517642722762808806722524379458879536968466187509861116366948627650893821315722083583251316663472606300431848201850792494501870333313193958316059046244446361344294707478998073399716991064549566079972292141689741723790964405200407963885180607236007466437989536261023111124248380474310180352022980575885338001098062839756679236285236333021261941429197120891111198420693249646904292667664703062707953041504460659230895403876570612021387751856063403903044479952541794533618983659722467278410926068806032051840285697898828158476853690496106518956226714672414644112347871999003453888521644236634598771418078090308388719971022394821345386464192547862987773855428031605328770534709200376837679418672059106639562010824322683767185884497301042777721064280857061570498989653034217655254847040723974525830683904061354905360684415398493910312014438157489570201147347347666023447475723897223411527129507933367811037659952812102866086027297398313853249390504254411006148789857561409642134707420165019057927048904256081437132505342178315896440327137196910493025934880437776460635571911689205724595449434870720054055494828244268276889325667885042728956545734050503423380049325093064943257793657971908136369247713629326626741621733419427636798463859048506393816864815313365142974588885922877080919998867282888237977226723063958485866195831407650953933189723848726392329036699777137920299563011200507442137150813527119328300425144756559848473682595770653283496342806508866116314951901636399133497176407471989913619015167362871714605281382496601315802199623509280072197101623010326341232508077836546032361675486489298705595278962327592989245760709795539697919109098568198896767263920339535688799800167953591808809884569859917906921553839149575725635900467964570490363869668556569062724109486215721186183754430821512460046940539321613384589781262616825760819557002000192749262166975471259347463717450468552158701265290195178745531580118918698868041878816227151565498471975189522170303500126913722264036440812215866140703580723079645795125297403856121537329783280842799768117431435781530988433113468622081163865154176260023706294252584409797004375316784513752653042297463141322793456086959904277170442381307787932975818388200358530974015334013832859196619967533969582268539066171913070472160782433372886886109855385151881178516628887706858953050673605013339318171715492392502574347366369245204738900803499401015995451618960500425758015855435485726088913560782566747638857940039696103126669267302983622456084448090362823412602303530013442394170172817601777046014235209649857670617317445727869200249763411332956535618661163387044915933971260821317414665079495888512853666636302762864317092146916640883015436710431300733170741599149388204870193258400122088128891751591253666342199506278982831654013520585809224148971154820698403335389918525387566635856974738706931612074958283490663764558615722303328281244645172294016601457806835401457690588495127014153561722284813288485260124051964059263674989471181930464558875191038831524777301282431226361973574289830553135715764149274726985890384560661117615817555768237439270805925713034664675847147647097482103696067074085022270974932680448006261998267960661167789923870392191610774379813253181692436349122890379676628681788738925116482352286448240416783328821037939520213971600606006620007946507354927303070069913569496584715129294959209768174476333109626592424972424525700403006386351170718771441358608384871209349814118492712144597197862733736540607081432923696925156231270907106994211387684207373931846194237614218187624676248878078073374944490895263399127153532839126475670616518195649291480882645977269253796364012342603179525948588960318835672411873986928647117756305673231065319876272684278467289008062839208382495599358051447827244923745828845414992100552920849408552891021474429130474232076295123101888358467930326975558843394630815185748925696724668681103130936773410147761095511339101270810722751356740101843499612151280746209283529087621693912926717227755766951594258630745905602860550026580403392090596460271434368551274904578108381602550245153238616054810056606349297541341317537193491500514010765793826260993481768612336875261354515413439106216839662487256404627292021976290548365342930035469260410146313091837117583651969563355838741013699917572877977526441158773848952410996002868686235703514934811290798563922614443477324550052271658145442165018304205373567365962812841715152518605265291698507780306047282921723551866771517540785907987741757446068227927017882415050467818584861064497485427005344433303551172756926677513803912023183216480126329900782988893506531439576207718070714749573081575390229776544795807280046942483852081797419566504767060199351608663592624250128674168107999232436714303347388621066564834358957231112623836890757376378060184347102446049854660173293105895599839079121150722791088415779547311992001201850903643850658155890419426070279229478497540332319462325114801940567464104064476414879102928784079645559161032918513660040892354747079832205596535926288905578111937391404346063571087336068450922486406642034852212879989878704837687489297146056428040392341754968754871047332466247586933351776479941793713152405397964584122073756135041904892223308896935240125518593191038803677765039072721684812177776304914016914260896296537484477760608567908425759647992128686797769192069351198935309518865309170063802368413145768505627581226032063243260021439507752056190386415680509235482743009639081982993539296867670009575470801962067197830780643510538895380916164557763426417377307533149371378447375345467946787478497336684708173136693992407482514330084358954879160237028298641561484415613920347253411983455019176158715133337090554061437553872363031781122982529613132657524606653076272268770842608956971472206866801512954560005834203505143976936655957011933885133673626719826722922316238735057166479509603137263782731949495775081609995936370078738459237478660661959747205817385495720602344416910216098974646753950758677935959340893909766249357067443878517765523947093822852260313410253349727374405041492975794586404903932777251027697262603651437265251985095379799929968808691660484786799948627034824545721236906194410091158292489458575249144492838778031716141067098741309255216085832090557831382598806857967656808036410515431470556691304437167318669391544878930334256282612907265414955230962417780903106491545163198098912501364378692490168412536370006373135395400981914014143959834551389350664736334107134599332345879393925016973725460041636508656616839168233837401424069111661175800210597906879998433211532784975555691203510351391721294817443236710525754444921463525599064553499675853706003732195462495597237016171642788505552596173383768683765622228189274200710679653026217135955960649846515633606908785726208777450553471908860118424685486127073715824960485948286922475821185640409118423753831872112547590110751795136377482766388200845817038960950408805694968850196791398703133618259499181613835172851115376884637253181193236278405317828674349098309255176698158884781231903475468373726941182293876054758778840003590481479946463923717228947080394988361148461579957977676106893738108666235101177902337413026175962733744819297271219381746665950834470901229736315036735144561255850750394606352741950627852112411444724895963049496374188030915716019711926469085344685690582090176533595553070962406838150711320594336216523186608125015424923638645508162484460096647647546277218593589253389038397008139534032287124715454770785990290668953751767614101500295483959709504659532536500637552256298803484786645926213675605671224274288786675680363861218253300206143510942996424072115562524158691113873786176739235499063206697551152829344880823040778427764389953266078556351811428862970626339515694930608000791941279076052159264006980499204046432112674260331867399426362399063267000167561029108478351012737549472489755435908962187805621369934573009401944793225124553463636673553768515786711757295051272427373316415719691864019024742229150443367346662384573459794135331442956072185414333342128476546005133288431283609305218802856876409665271876044234415706760512240174339034553004170361203143130636935322633769165237163073083807104216502802834306368556306234604393473753798343388393825159606704734284786688137184779808021983898867017795611938683577509275654357193520323683217659743981998683898789937620870256906726742305439242226986345586666140446114463026697409508916614519596584541972905461395404006858517154705804973187997463272963310237438220407754511206548468581419875827845215388255693368228789507591361383646750289793991153061519154075963140842355534779057013994820119257798602966419740904482817601978564363628662094573520713076329103697378057040113896406794354787359826006930850517264063579748330381291018788607000317762896939942947013320443977424655450823228259850593358881115419782406986094437003150080479765954289925240717130397590220776931431152407024240142396087210880919677065769737003396928893554496030420579792339047082388953558118693946408232958970095197450498865001348139277388759757068941076247348135713562101181400319675349088304623295660713247701716757375049653985179971205920829340579703761858974683154516474776183208596117585880847777855281799337883286971379927736377940818932575275418259246605530273609645691441774385396123615626981340462747324974427949330207153856777049205263401669082625911567550254762676545660232106422167403815302425855196710129844762652942972856157398878665254516679649862534829255867141809455334628729780562751619475006833736818013459471086876354237939707105765914314609464781198978374171509180914529117075070265918778864254501353520663845508853755749131183057421442967765914732411595154252802049537145192229191184724934097311254162396153399029221215187317439987868510509772878169672995491498705197519830502099727150930959440083523912093194763060961274573695080812230365881259681079920622593095146171659662109282562202173865137673839071779430491482469961875339055085113535274145213472819788400243313969739281672237398620372649954470750727146776870623089144751752121424640125713802887101802034389496302416834696029335309239608936100405520994391963577398219269377799823213487560324718782353448646566106334513428417921477035578707135489528098211323253814855975764785252925447882868959135879580100200224248828293391835580749577647203537308297192480848863511733477418637035815510910307380576022307162732586770317170752178520981828625299155383998069464572164708960624080824849007591733923311373155141229386488915887458687638910268460552376077401728434296631442127126282102529251656077878616844223054700454018379324947506683300060860345061546132660672759671034315538183532647434736818536975848748763903741043948802464016210063547579710791580930002196146638908076170337825414943974484732300771678966507709677818331222411472280172424975412747500900939284827716227673996936679741091526359657688614311734319784781035776927418959777014491449673467388737544515075573881545411872816284030862853970800715803179954218553974218943206183445207292824874553221844022994097576702180477417798413392077708936535793783574189232505958269827288221664520440869929188259762689823015488637017755256647368012603319426804256132092555978959036114976101117056585617127146389230308378296967845697945133683776788472515849403030815650777004094304039882811884665638167384120135014111149998687153379063829312267483622320724037606474598796577142019879678055444124608782005124042177548912512709673125896502972374878596022362052206266649842702572918872530265718342778349047729069127785366912604637417411353084500269869130483325247188168533797610791172015048613175996515742795537999778845347165206582995467619383939775875612828668298605591114448936806284351958877743899652523505226439336449497443961098954659369088019809746876490536251550198346986455149779546025807069352939850008019238854578668406404388146780183500362783334303498784041363352336380384247738771336131540345656392112893816037517034127492703797383316136566933741053105488548629802530684701342193563853374890949843801093598151411846346159841633196743409989761983643498553971532874511815592904224565945847775620694458762117171491266455673907973709775377912650657092326551777911545602560917981133174678797226077984059529607100529706155602452493098946618522783770383872797277213234899178442402760848507284601451316963921019457186025176433425995275920308888252806455188801090375111951339784124755250139386329569406930769684335752971125045977513612645157552566558119957897103833159354074497516693175623921800178658149834061707857810185346611708149044265182855715222413070951332511536123904475050575169715773923636717768836093376367301226271050518449310031259696239620112235404533631250994530434856000193334466981598001234936637821391904428651997363909997955739933744677301975919193170253232718987287596216733616914993026785307137062451518492893077942190855570059442869979490688935154753651054831776344900201267481483961361276347374766978535294929982155743574656971659776329742757361667398983593455330796206562208014194843384237702082925121437161608461219687038860062258503791576475073661133435178091148849529230961127173586957693607260900629585127056700518117983904355476670684659052275241205241634571714103922229247092571533873081741695332355828008509646925422239878082327149792572003721628422188740831527082616255230047414442803681027881596320987769996919107508608130413645757798768400381868201655684954920948456755546050402905266283104567738555111501223301654573744607309428190294818051266288318227783515810837569472444101967338851843820085131378946531409249345476230050976962362459895997559658901522043198006212895383048491290545865941372064953217898528188547039302567842224390857349782630801992358591134461737057790994277025471056754377176289533355869820748976316153539782034890151592159533969359473238610876175605621380148228346657847005272678701405179374485457612539604647763385838154379412443396305122640952060096225785634301048908077765144958646420875484152707500702692196199832482412875506542177950605248999156788778363360578462771819427135593901969728701153134651389797131265027756804009571857828598546897484179314460556138033830817237739938315584749705107552786803865840126211101623774502754755577787111282216129163769870526379741761656923454856138630836041148660016104825407743029531312014800297784271541923749703396639875469467577607060953602978148163261336685141525222827749828216992180727382698354448585337531967435941749322602855274703680043207601892833062611447515250255432048418444676667257676322271228097241404010726100524485798457979893994857532994174424009935775169576236298356755959994666964787577143124557679811158163798654272348907437902756824467009454659347535513573544465484869269919872912293975113123727284271404009516520406519601822923465389364918991844860723504464883216389433499799746499671717065808654314168263679429696234153793604008800487971699601059107250048168271459091142585720849084007025645301086312440687455003180387003119328793771986514351054481188981727175712688874312566599358940485831457478018917157337737817584878747273279073187324356755499902510631694468708442335294964418830545593686777482602345435991482424514915707149941231899091891570733634271497110626217906822774049184813074346130474867576710797145514255050412883170443839032036432853503294221446787261174058923441454496593927847796033241192341609737366364481972123646903338162723197542109694109682516808672971400329068077594342441256413079342046998793913019904742146906923546432610903989420881669124342308123366365750664216409400542983400521171341414541398746621858064898255811830536627875363484220272161146142479984048926625462683353147074623570898489577976524610789733872336458679892729505166437226320635017423450518904426553526288392502852652442661541164868833403105775309606530170007841964136811075063553605382214647332282698814350805889771891021521555241607866918304429495841422049615030040292161751772876522903304796721308543525090220234309261752289638254840005029754618292486506466046286134422930281255217317156010373002906662864461945567877220321090109440983365434691547500658785600509857628317437731598352864577166769371351032493955852423440412917293044402544039150700004751374939609442260250047445367829538246821527002108740551440505480988630881417786820058378211391143426445838765368403922990963253941549472985363478500585546931191649431924362458751856441862641638687337415165711379363828859840534658125544036531158312418549286314400238323606913486592312705724521285644970292753457331662220156045051811737134986957814387891880615524849680765211682249294405880078129794054954148366386716932998023978941731472909665724047436710706243248415850227532217808288792517756779760157159392365504036520808302004944860356707843124901485800348108305156508278879160681192259604012740553192145550766287123958574688146564730114885455058150973064153244603288237113998134628621559932203878247136961163300451776008587296874864250810083003887008625473847162310458226124943951532340638455923778846883270540518933419303046445059931755170573884926644955865987000064634062781746422794287341369651124998423357041781801386378252309047731976285462684156084431182470206674388268615783612365124031714536609584540879132071525917540897039331865583296914169842225534649222210887830492559042407184285139754715341437012612972436099660400837210216748089358349193789049696746889047693045867362988154208475099268981979988258745408718907517831038178242024321277105305960716627794830514218273806251782115827287142468275026611483830564148412503775405654773217891983033102703094119326434988959238197277941109394311024373966359121512077576931740326631804568189021143590767707464494058068872295952378806535066387480787395823335595032604732398174538567346148412291591097256567415687778309478788159930248286997891688312857045428709873523326297442632572878632703245402806275233771359137682871020886971171458467672496859994416475882769984691665386078282284097579017364746036913956040760324827905386066303949728575741497176176906873615333406235511460318115068118412561215559501279238386581228260639841389594447903537671306815821666905072742737464189472077903871038610243871990432935705146858786604034128293518642655421871939680980847717691944811697175500303578161030629136786337134726407215134606167589969444888145275707738919346140953091755223945502115133879723099195872314259515812315643442006050027116572140822566252733145431184645390191644330689386128000993184167851246151623615522940978117342737830666900204964179940235926416502777016553891901455148130099290844328073886818353333164396057797070078741509487752898534795996150722595162034551813605338039782543925820928997253154495166629270200258173086371918698563598283067965409557138257017335686890694562937379416921039522837932018104789487073907230953872342450134998578371610993691552901835934227874508435177463471170818946208019071848769179429899360435406126595575561112694120138392111194125546084162839696382963533771297506628824711144418454983243812750616693395586773379373278079554721347938979276642003292161338209678365704357291744058340611193309186878365329034432530763852737699795995084141151344204206495918247560021312248668111466930346273313259450094820501357982254406821353736015442029748540524655973170151122238256132404036396763938781205724511485477752563958529366503832233195110419753794648275850445701959099812601046675798099706459530044905548459064071612146199747338866418697013850347008870271004003652172148487874420413737592324030239598580235823643938833567625208942096892716857401934456506659924745648579959957290022517162719968203191201658963393372572835586047566321215763477189163465141303325456775146463010086133455515206321930888819144045421473535138295178596243211408393317068257737770975957769701346237124627386864267735082386277694547201539899625243858447314146694227488279609657464250901349204426106073025266735414896213499779073900908734110041514024790702323345578974832275167324055725926957178082626976379657723312915205766931530549639887737778360925872407360311833205278805398122383357747659712970404100245610056077540787024270624196802523046425514832703349288731869190250637691011153867770506187661253881540891005292023344641157704350319472153266623009309327784240915326140888001192582796875073392939959742587671373045852639098542802698144595274438412265831188253740590309431038874598673786326649261092912830913099310309984683245403897727826414811120319044143659519211354011433881460747633061929300245200434924291754467610461577619204321473126333946372899173517983892189432181720226302290855659770181482585643185738451534733195270445740366152108969492491752357495691097721121402045011773495475715695690891030203414768692147973369260443735755782803218186437864991601304671519595665572694117795984548830559920896512105451841561756323384150833251059145986271119417252523120410206132561435751038261330569253109710051058924695154470300630766471051209102891002271781756506386999505576134369597070812310147959094684062406062013517813375735383778508761828410589772197633916050890698122186955789314486023983669757848097796210740285672114179657627535142260867801787058347334855865040107126543660534067055713840221127525701988853074980725300082297278868306823587234776758990861507146365323738080858525460481290751128046886405659681202109809708524828575279550860021902358462421232890942513578832516683628241470085555744326000733977906870552446605005190597584648531231509974194532528779259484309530800083009031577311521704049160903254805623821791523667355659817135022628281563791061679426971442790845982012250786287612735960596997603902940506380441011679466978000305161268072266911429732692380779302414885312002759316091701090712333642165163730511305572932542366665709695562297078909391036483818777583347745141078479598385282629154240766967834129340129142878395533627929116343236255990857145227415996632201092860092341172988454401869231498842927232017930340362350941316059866063798430438195717872401186798558144888338135076358094561086018299734080863433937307757487099342576179866175942116759448837154682562759256156182516598564371525367679893904437245881990875018984047505041897283729822374418257023037463385555004400231099692305704879487882917179567322889675178842879833209414779481532461721712393293991536842248792660911928342149533724382612256322801848279304929278060422064197781477030653756209665824093028524291781059829072279197579517628521483713493031688801079830974349750615976255584571790834621728445925642641768280336558371396763492402949808827976303098354888212299766891164932056060632078144803029946056159624727612854241341133541836101589075911479177383158398557641044295813251046075039137718605466607634608051514717633863708666695919644331696237251254750665948462258223476949986145362194883165280559997872028581962546641985900080935433704011108688950685353790030786357107238779161258463749024646253219644774513681967387342001092708757472317454664722244490351376901483129258464530390850542576638302666549640750884510260409588801649831338705098189823184017899712003579416704003532361360375859336598143053139525222266155024653774901360424851086077577157298986626317232401502962221286011103384939932662658012674124700048812529517008132622183787118871153014492898647233048841646547489948328232795874406077456530747317494714186628921941843707013073925170455670129032439636205004068643071520454880224523992257283762492930919292082415707536266680043934341216837123403898405380398768804361366028884818584922557935511079489183455406278430774543813258934287382735975496752955341385101698745396211001651355346812051019718711242747662594971148925020665938690525534306636442165675042979995017098994073540338235504128971793301450942338947488468587674779921198549214677807994959245920241278269377201781797510474355343034717989699504355108749668052065678126511571616324702369555347424169208281231628898829244482943213148953720732580810508956718965058840607299781028436705718935150751808993030110160249440506823878493449050045193047771581367235768322068345698357352454567209230621300605205621079907098983763326947107644610642232212882548483046452409719965281916727500220485631331456321563921585200505413418378297220370018134522851196243903390149065573458020101423809179818915867380690712606344981413421857306895845893989587670432988080496519439110641132156293385566968996410819864694830460508313893160734397457602965811033925004838460618746508980802183340130894099017006768053679155455292392430135409239798668742294638423112145680760213061787112009939645488193760315887495995046138192229541386766257601036003764335936178138179718255466695441007832276541735985281641710048859750977736016513157878995552966781763249331053141483012715230277667556641268859537851336515748876702940558824925236900925429743700845043619627375290120961861372862903360369079028379915517701716264324988768817806777206345449009799445437998573040139634309265042410025601732247092745099845116546653904810452154647915058145021175161416729508155634919593358333839461325334916799839131953630385689583744078744440067045064296454324373079287982067540005944065721278560069949278865692960263482110237241952619504111784432348602885532663685559245026207608092758613162791669756602774770601348222549167828945086903449032570451645476208267323189548590591368044125903157861307019789308048762506364673937723123014641342296603185589559877757511362615012204105653999800415214817360279263287765569462003385306568939218965218259079804981486760547964583113828848945653921318523101735364909207020876907779348182859364853791019738332006197774993417829719682560526363331041826182235151949336208192621006758303576976972390164651871368334005898782106532928517997638424438419556810464584488709513898515152288574353557128219151187846355365778418767522333355163258094679490300269531619835768342118389426158396490889126346678970788129856297523775405200512199546274105505267936719400178428278933788653579531274716011814154204730831719503669652337605401289849116651808029197952443273219010798543848948792667822478942691898601464815322464236625464142955743757466256693122722104530347419228059751372050865475015130403966697746133559819278350981406013563336036729795515127032344136992861518722724652897728098866659593469240676314492499244026917221570801914852169976743356159927019290392950324011529061688200572796122781064763364870429774577380062834512711872999981130136803246270771372654024536844855041510731019738561789732190175006237715698028904665010375623543716573193867492061730046184285534095452122066968371373327923305287430475016983291297968808634392401129950835155220913437144906746092851248282933461199108571241785098563980347360119668945704015232814195185620666507268864456898167368611788754611506686944697064152969012869944334635264951625740091467971639407873926790664703215248894765871347384591859738827507736068741698247314032116427600776775953170024620523155495416647474658390904538699716974115430364364881405905714405623465085231990712009026958472792319023140564636356879863721918270953543295250978064677563964720777939473034303752197951164351110844711427760802153956597971000228319867033143123237661762107593014642322580941443708379115567965708177534928211826176525842750275726043071529615150513298488117428069028865819141201050192279368337692609924065417000675581430123787140135124946330257420094383038582174807563664743811229708149679180613418973174221630038794647520275188259029995265901677882090764359748786676666893695325729329692397100554725388193574660051190910880404828416071072218403963108058812080255400281436696829699140373244835699567234758202369278245951884438748790409838797103732391750708448805472778553221008648320543848862088119007919971948459097171782522661777078300265937642923041005107171956387326497745389152904943015387275487886762510638893997213705923731188267534362542749570590603931567298169438212317481523510385966444156385901782602924249274186181330402554672808170550858536881138408034916187345596137179969410376034188723000521846229652187899720230765007123943893251382561777910395191750375264148268857009311432332654993242090261377427476544131737930304101260653279302346466080449388221475247754544810964000522362499728477355257918791448061398298557843578315335804304323236887681677443506872401029971114114159786918472183281124197149456434582210196678790671768331644972501469665292130830769885153147017021573655876601396662675857883768575996748949750355048793353621608525513013137789380957074522088392983870891172716678762085540700576653908816525786909394291430278664940229029671368002484892729512306419241046632774991274050016682521176645351760843134070480235538585142941806664109155085903839581962817014992280584082306344025670458242506885577432551321767452474527576324477331752725700127060797771574490857036893552648467567977744030091419319658011662814016136956993635019540432869346107702122703869747881708119329493003102541452654789639764936225233057569905639628885616834525199456822078825954603831494201967782866313242269742322982739571578416196415457736979835470972719504858873582259486751524706006219680081577112910242049721564307527399776299506879842717468206791797853354835390365139015409551594390865652842377993363458264434294450040337265546330242922360395529788545368343223275912983613468359954544361223841040892710167551825822157239107360715905339478909766857400955020035060114453773581156251649359391649973107771574018887138617232475405869778632531096674305791233226892767896331055967103622072579654939151848007559771770280538444574820319519434919324417111989746575599096023628677056682051580705427452077317857288981554408270523310700453321517526066330474423813615031591022185634281253226341352878133279329334737066482757043170277087630978032805726324360836326079696916486933439300672634400612672658531925279234411958708344204183791400001221766839803213178165810298114541198123113827898577732653411733294797882546518439043840979557874267952335465556788189274362060584546621397739750666403514542144466795942956194007960514599880721038575532998993024294237746624253199010321781722338826916427378986224271825581544260442989114991796041119645783303325420022403661614033612295580086791506411000079244395599070820192123030547208212610073513094983730802428076841844040996190665319903874300593131632812674292283109813924643087246709452828565963247892094538216770436735180040821540666963442485806166340183079826936180495759404902592544369433748014036604847073394038094371573922979508295678399340921507802264199455793623597016207096572563015081148424873063778375071233266615997350630673578412224846764134526050965686860168227533971242757778695464950944154169913516078670382211664469424372953061050883864500806794812146074786899269903883019200725984771418607435724276777535875153768036381387616685099420487984756374101923044483815756976879971110914214393490458075250378239638135389003840927232712418551119901540716733615311827617480038130518260975960108893145043223468112798819269606820319477357746476925850108528232263044209310574666590710731163061583599579204284113778767797146568119726596379416783291554131355901107077450313189199222454021652478826710043012665969945430514325247943815829134741592433412372275663826184796326558953832169742997022148649179436673569325742658620987246173566049615649511444447705574665103778835964102910032476850011360220283649190630846990016134301529267213231424835244535852358763580852703117757139384996477811829089948686987262701742869456405899289913269061660539286338247390337114465012235743797806851095039182072774794894707599636926224204780872469483992474728056469627710276543937421473735768914740811696240191132613184998843462426073282453906252077573360550575391523852950563768160284933639729216163665153384839914995779097626842702899072877844067218656928253046925978215784553443246301257323766818039376861082213669217909132407937739067156059397651633938437559166859923562881001405197102297810981618429679996822334682833754470875654136878367533465348260914595313891844654488316323151084622211598057550292779691516566863278587441174038253975761804424395386499710534214628743354220343304135372227543360209830810171794295110940422813983429497599168486212899215900091651024403746652858384212600283589010968549956529865534301436849303082307092431422397747743691441319387317457057002124270565769803582179379698628660444185730991966506413266879657501075982808916397472163064496623981614029428954051558989624578648962816482601465056142438222410400488805287189932538896966104390938385119600670300851174578017404515775333816824339893992296949258437552303467934604765783893574344123566089913728336678782704306502803614101560370939252424105706350617998493783067032470789431325221150967779215425458315735463639717789291517488036466823501676148421284764403674423689959646246686487970381536966125765660784764425284364407765998218689135034433523247031217859805663442556040518685522485156930413131351572355114813459847845614949745386048832658015790982902279579047649850382245016701892195814095086632295409441984113149794752454860387398724451974463243438486483820819901304469641162681430121186538586221945202626890168550854304455373799207945663373244675011234764600127946197977689337114621650005891830178031711240800527394099581710373439002900822967856609208797424524964107264209300004128727820587609655241017987298566929279342007260994616924725911140987930851826618670704322775496896589391532378241035681045361041586019689467436889939583056215441106272551205493511177254437113710878479634691449633575949630728415799145276892513798515110488106356695781934157205829296704398662205371745518803090827182131921627360538426067281760657017239767159124468560441851646331685956763507605722852800345888393036981680450222437208010185877780210308009934123894277826682641990739392255454980657559935103680149063441724885487880606359871166685656576693020214061463345452670815684608229549253708585601350787335128422356354597329439894673600367875964763707564970230954842612041987682815542979716176226602355777606334931967681736808060507172335050062782878351276788865935340744266774090183882906737996644811198287357560638441368018411245479140994704133674847731642449585171444836334776933161439860687796175086490894859433009447134269228761526410786140481001213714221271157679883639608951253499528290881817210598766742591249080207053823250845694385597000987195770307465209237613140533053423471795286562654539818203916609668844831294816118752660363827964236744629633756029423801266003659273977341258205008629048847456971187857218768027115340995572422476829022654771459485228997473615212262852692937428414540503130426303518323360757347897118665942877728664933967574021039707796160204952074278764816883291053980303738217329663289751370131894006372335034619832692733483245558875302236130868430612487187889526405930373584035876872337909552464873674717680735292092465659677329737397038843317887206633997104655172431975914784645159086254711169104125677579441767088155440596953246987478270675468682281302951185668201070160514833339633087981598997690468662193153920467355931263145786647132962401838646572185714075961596169002691791376606721960779854631212050722058209582095268541736388891173359117172845161434809994881812212661913631836788311549950553302798424427489854632158859016764884980721649422040069401891497966769849208924781835899912699486811450628405920417083801793153730933707125097702392499175857523345281906250204923151055459923158252229467149149272376367746710132851055436621842554810460874535146065141995828190740130973105985579589341803682441310366764988084659804127919727392211472476083601761543856558144077536325522765379957463690401589548262842519351927123225989581594136920800957943247138820678332887478516361652212845429489482223667216936749853350122986232555061804782002282891336072149523336551058774857566618103069136923656546534555866497543534158821372051675172769122321515326734484484066071873137443456377593019182198173353299668736521598128545898249115533973803411903565647532625355207737285376096994427517475629809331724666645726982470870161952104893192388090653767609645213570995174829936166473294735422169157435544777299655392658529452737528966130904435879416171840636201916269007926310931800744193850332751130145641157043861377824586958373347821566718971002447359981044582260406273119290070607259877134524057831876575044070642499011697618410289335946618873975208128814880291499065015778357141157032240935040892147755898153607776445715114220756042646207721012478996245375905618480391564513904310393511488859246506085811918464650921932838032704943210939535423374705530997237260432309919205567967659188424759057747051121818646784718989717665539998313442855499967317149377698485841987976592653713460515032097453697913291065627425210692927113377943574980786350194497113723578198507365558683030168770764107799753366360930132994426594985512392099569055433690763431494678692241591758380364117442462193922122996613413214445705318515649005696300539000759294452628716429498404361377451425210613048018270937200759665466705321624202890654257060244023145347859935620092988276586205385862145763569457815670698303809147225579244892676007463380620687186928044800817561222676124776144711046919571032869060644122973479432728169424363544973396871355226303372226134094160980935991904280895006284933870864288557161905177777567289717560452302038185858320890929375097025279910618872826130366603518559657037799894634559300963314121433043524415162955578282431536652659657089457923701629569463289536149444782413628762477338862914306659083812730401282865722932244370722062889655313480781410421698485593170955848003828290057477965123671554902747489532237890965541958670028494336508593706607993780573337193025750083282239755397217784522397328604062073205563978124685145878165611974139746005574907133683138316605230538056827689213974930252048961239097856119474763142682104106558090140689188360662285073266121208222523565115588358458464899982299464320882585433886851722380413283458564543701183658338156730412312380858247936103515100343942759704227773285452682436968140666472070483957046605377670224837468786370281024571309823986509941166819004231776379603339620565263150855470776041908566100379266268515254117978130989975911570048862512832486429779471229174471567293572740993146489657586665658084168571293802175696803756589292781796017590969088511207037235162645453092753230230727333358808893398991097768253229730509426938501956401430439895996019555077270771077781519714149031791189746300001110793178163882372661180736507742560135997643883027981249898758374132508066181336817534170397702640301484845421981501764903676862962600921931978192437578708765366524449885371040303500052003416291946302083027081500564067408799236338204044305694516701616665390004224824551839315845093147155197863842145339964551908779494536666501642616509285947737058150738325257054379152319195771573766497884549661302618164106560255123720257415784490149829743542704745590265075574946209578713349875124453833448204588802656339098768501318408693767210743649329844832556952534811051120361665328347489177208038016438783918814061133793496249143778068322385609726232908172450290518375908474301365068415949229444632260460957039689496556342293917156457512811499351209233539358175536377540371526467351744887270179211489449770012921999504847648595111578078141495245714227232847029846179170853616616012311762823598784034487338154843751893346967192824123042918832556679820509713728539403328516206403484183338189206839153825417612130153174531751918130949808613550228548124763629273111437104135515590575487772425802364276723015209439340573541931592752383547446156837317892403310634093632738021211273838273136482329976852261306466888773432114167521024373780365677745562311109407359416787506331365389110954841194053762332592901673083262388570833228924871099225753428690653692248210028594915449105661864033068703523946544698950479502648460998290111877880726788898697030342180475925435657552645027624390302708989845455102931076713995712271870677501592303967944865187067761284049919669592417730608722689003496968292602121734922919970695069552426854878728593081458587275538781570132072229299780332441319240400007846567051720826393275849216746092456505368852162252878902885285745420267161123686457066823244951874099546933173149947667484701964246117198846547977619215453857782579652616872712784690661696329379072519498389784064287006033673532601651811933273420396654124510476953868060198626741426011888798592136323346956462619987317603543873417586605584356557675437835434509193171085730660934635886175426317587841158276946730377380474316392763502067925114444213491698118022271156733563967119584726610715663285399819337862612555521918806020175434353748571669457136013316662475812248040072786639399930645684521038794439938765486872390593307722301627788061265465969710673872959695470151279480264512094751857486341667859410328690475388529644246694268434496661444532260372095591165301184722728276063433719767479671320847112245380352585398529251986407723548250287988010101338958447883953524977601810433918148645533601958295948705742083076062043909495703074779590613195363685083570645294888492214170548521675823348635240760537057412208965077996817870359473560155542393693126820197903156012959531796436334686720230961850206319338210261743248790992731467791482156193068439705146111088942726910027700937721589828273628769500472962597419761281631869193448386663962158129636392232916235310720736463327705885009518820597936369660564501404088423578803477887953779956658923125349219529293252049819546565939801255611157617310917643852443589053745938127739101255492379574545561772267256585022329720947076451185672225981197002798150319501464912480470066537515338359868733025334574259925430000721783198332136957038493286998332245451381150130889795731020896268195333085442490916850500247396733587406176411053029191784102990617769439051479486309755009941820664490874145891154347370976745506947094025816186378453805174826740487852385454036506956977999829535484707981720043671350486604246561340679940192762557882948318408930540303669833051037022444027437525739261406855649654819685814279136178493042958645984275498708827213910937022161197182150389585380959112913271177733144397313283415135873040775666742258270942618910171767680760136294998649662509789287598725199056380395192674544132673344053149228870052335136028368554353362144630143880441304767885722756413608145561521270064900736605674355842534776476304545999138375925518706137103758445661213159938288607706455024746079310780415348006079221603551637513830561004246158834338564973918310357791618171856190808973149894580716847822777028902332443334482473547011731439172484353125221614632274647384191942644989419217093342072811512190318921273521338175385433781561862178853625982326112657160927692610526431481672724149226884684687623084575202488349928472054538254693531850769511551168695225293599684288636653654563590026545227778806960498946119810352575847937894048041903238472451332600554073962868004104523277821301955191282293949889251347524088962858841048820933149979335968636372215269121566841318474825343142733301181768446590153956040118713006760158928400853100783103259114086694247292500502288483178298972656095131973864064833449957536174174815171225860080164038999490869564089372516530706834355246169978914960297128775345509597131996667003831060887379751948559095489962982226303337735643440686821756413373741446043838265028318042938275717260909569493473157414920099445701540488152916353354946883134605743839877904688567682037860925817044138633814893757202238720108906864581731477967435919500193991221423800959175414348134188437222844870640925305345548926152993652422372942692003954430341707544888156535388204530371626514285071826393611611429875529045954300512002562785690715429000963998458787177149847985086175890405328103729793240679869509150255423449382581436197310938015020978342461003515921598495628246438179661110656242750735032322097351074351657278888204184010943030737216331130168734102017193068557138245559562683702728497515901300324898109705385951049715450804849912779939382551751002188410450857605708666553159606126475582331770632559321571572245735427734112518170906793575720020811242523412261466126822020867945938329727118637793392337121109517099176464167808487761069734406517880164147278263199908160127305259562431342442275515161000080927684098329099670263249288578588339538278355618785365996981591593423784391587010266189791645824255121331848576317543958729764354664020093179644866963573448698219509923864061363471345669359987962612843047094153834367267141468274977539413585266651880205394629131759585246128257157470396874750933216181851147473128516409980090027769465478191140518529968385829556823937634477101277499048718060888769184978859163160376174324626416912883325850752944873916765039000665292220450306704784549680363245649666936843566047736014804157104613987696663765267243281341483109635654345497659167833756409615807985212097718725534755439603680636845798861269154481080842031780014289192452333162289023193530861386304419296500654445426544548525898441958362382675713725984793910134542651654024273849917436819322119589763462769554043463872662419602574283261845988823355052927785606798533177523723940271291875947540780448787279439393931285259009772074231364589135817718899646266466764397954423639864345405267452744104513436537789492544563218248348576723811211876524497633959975553357049144078375037712361646751387926000903460595767074387399714412881236497790730393960928299130123409997321496839980317674500861841762144811387757832572102668951539527893932948271602714566524566345669230448857094740385974554408844950735612811013915317101709757588313860535119266702922988795793104228343766916759310422440670325572565057476673309840554578302134299168213837670086072471576232745999072488543214707586784430863665976133297970430234130929608182291687599151050250186539251778533390999765200829350973682707851062296725940031439186409220958329904633595453546729654563347755627603983914106778639804946764209252430807340131379153929684375810348003119099047134751101804130906341436583038057379303715684704075231144534194654867292320952416936946095626078941741194734277991474822534227400667017565098851207300445323038716233330802667358834086138185512369139647008978798438677981589720673533839063600189378488391724640812192102214939146282252218462822913742550619579444240901154398522850279478606551514333790451771781594622764927237310281890136395803011686738194595115882361771396262600536224804771584876115325943843990589087874410888122365988273581432666714357015534518884613842342051568596906714723053397722905452943152877078580665619136097069433851139079220544109245282439144387229861423745182941995349873519493457845063793200075109493724578183340909684691883287664238383857739880128078890421977849943786923776324504063643131470294336542030786306019924883107565605542067687492212112030630348244711969408908633280001572147152470804017170297450455423399757334415438473563817487405748908353761690317824384937465715369883433790514792248453923441364580526962089378735181794243623171087670130006332099603094586258631911806385309178950154105286825696037551918802111941604488287495824274150337910329608427208908619012325243586164457822238949446242753296249587477297296293294456977118717967334998442892336903424423323531857688767826263676417873470372432939246615089632980607224708989664491032097254307295474010985215857656097227210038828615664754394639453714631028632822073190702509680968797189551493609331752454848832700080848501888558686776788475798486001809548072393193425426925191895877631687621333149154190340897808009158524620465769417740986530559066866449590879526976441868132366081821602866950439999487320099234433451184169676449620473964858723841087424663301457578027348920573692520889545946639197708353883436284372026740222942134224775899440463860701430574530225193141560609835212422800293396969221167027449243869846327589374995919083021933239132584858190866522394571947867664438657991671192990264505095898011863892420567482224445981024204472036106600058698429459850162531475570883055359269508254513427549628712295417136612262776825115182627847944082147739145464089262122368866837787571832637384914283444094376070920088525056697759331052495793697444727134047135978600536865645759379883402149203594571801981937880544889025608539070928171510383128237149727897612783634473362934911430008813288355638733121830817506664655977996248036110076536817330530860542380028621424596305853434909820903368168734988503304869580760490034422707785407182097451540638568910431357412328563639196216173435087844942240303997522324743071230978457276000085515332368541569255672852986635275131596456646047272641952129020745168974422959114052507459050711086898268903444599995854620807548850101624946207853792492044704536453153089291421324179012254474011073126527331120774813860747673465703833503676070844039377941616873633348710064202745150854086922268896127565501994741052057175229768470223588937558342176212927683724427514627482950205861190927539981558540853104854606995370933751942421962742378228873785931802172022900992202533067054653057738575661638697962982604757443890934406578187412940942222693997372606808715802333248100057608999634775533069200205467213365930051535163462702939722584036585581652143667497354896884336480494969009865877477004809781541899065310448654963389983107104967764923217262377149074329558424550648912184734503022972633807106790680527419965837084380387954993472584789335161363558273181584334898102329542895678129095488507142872598269621033224201921999213884016856822962897711416374892874090298327688723806595438404655424872906466487772265250709815209179215672237158395192910437943618763050105972508347475937196686390256873250535454269151345828515884394766093979262932247354900630247539709605343061438595053218867286809374342672282872039008531402286981528709662437903555110821299008620766422385332983894639374186136882863458249849904232156802489389484276097544094542530621316712313599290089040611305170052444948175340069502623399734340338300360066112571434583841776877447775665548484081204689848749112198487692013364615066283310225925233827916984347632050663390285585182729369105672678430681075949286056428584720692809281223598143218143036371395547396473702511241444780400297799473435631641612824187899201100784433681985675293092790307101443418631455589709052134414654221733582293730292469497173064655615785722510872478844967674345098897441236434499378036302206377599376880852985613233754708211106952714905326071236406043683344905337151324870569583270777008788466530560618948006775874254525111496411943661169961981782502232698104367654723278604200614952472681916623281724013885658085152969847765579728793251895277509893648414791124483810103631058042858261312623921809371526406881925641526147958279302822671343185621566265225047984840096947465723326482798530049988617177816272769838140385955055283695572214400584183649504303502716362362332547937362946276081923085560417249348911065949786177375370499941929118404965216321004155469076579470942316882470343750718885425024213419871652488451095602941540189604479185185735515618538513158743166051183351708955507357831450159456746395721733835102412694254913090112193056457304986834787818239358254054920250896640991382910094476235571996980146162518630170281464099843745450808433641207354349655436940903057741006702614751711923239924322601913293364783221033940275567025179417604199236294704249834413561107276477707569672117243862519307289583298067472992185343524648384844234237367262594427990865812193427852560989028762656081984499824396741317648789053211670535287723566254072382227917118701008082970883117666498323391714078306907835286813313205387219296567556160364353696856344464654863842244821584091354052467427970795478783350189506924343620881335011106722430378115843814469868526283835143474215201487912768721064508717900955845425421543381542126107912686603006675543244921463070641631258483770225168359252484978107701691593994893861111869420298450645166688138809182742718118776420741743794553702517446240869234321901348003755207357867914184418631516465233847048801393503024540298025068622589193056061233104416115150727286436150683906233207320406494412940539466232450575690160277892615703652498079146608337832099226909315079248086650253937966337339885354088656204056150868264444312413512524209366476682004536453052618523124774026799024065814293732868288142073141396136776538584255085520784258462465990200332175668420599280961470781883395098270450832773852570841517117907502413330530693628061758938701925047158648213626505974035347027143688025006520376794046012820878901285262040051008869942307559447364604692124583325753030132414360976100329959891137758038160193586968946244484032442684302611102165020738025189239897764268218038345457738388826307939146189501037152523290210439315133815711348582903860184594956679879182040128466728146093489786693521032223940876471976425458865381127816488879608544897553767359393343033614522267442268033402572179039671312112036998208371950419028255158721932719673272863347644544281748174914153573294360386617719045034360579616870219709003518281612417948354034935510088373556564393506076290205476334084909350093204623062541611584060289987571135762269590762229609627984325301524257904251663282127885360463433337655463280117808784548477011588399557263139996358114855513835242441337060129565791478605957658235869848837049215081898662289968786846526000096278478306760787103613398268761693805159967493364045545212362366986681228336652668854873261051648417725693971772401719144855153123657733668507058770254761603939450460112171269400257555129737812998679803501207687717522612989144443641402506353548172346977037027828608680516964963631974226616197564819220469706184798631382263199703291027805457949145323491318175619855294910331160563722534969850268078181836109422976673842442020470160021399645243434195233831454107143024611750010855888086698889176918469602256036857776315299109442098316632933393332884598982116237062281094220196945753293040310369179096575702534318703054641710846469276201190675648432918631559442182215340947137995800665994344603330630241386259426211413688924245306776391245903258392799374223020378247599396393210194258875432051542136966400084936843881351598998091484581588762585231989552513178224653417520306833222198356276051488159628374269818630409517039595596308567641746757910570826043313378548790934716395593766619629709087103713111434436871679648318705529079071125441378923396278429955909290114244721433932001030562154465581282119775793008714070279692581090914501502528382094494725418826804797084658596517137649081302809266050757545573277938179565596754014405100340016963756687117478895534510055894832764482307160239080975416693404931431922791982716146288338070117836921383909133856114361560329753156341999110059543201104816288907310657594772555160238690431618292339333949818280062628939608370319167946515663508535872082436914507727023153411768191056464004812077506325153423098493439783510975175260375171064700101844499722793682426985599017960314264947386581715063444873345788332147647300146220341702304231434437829769425727859983770776479814457182974858015590557707859619800201460069721661878850662233477856187292592028043002400413989052453101741844178946710942372862962082646652651827575209333815100684407840636592629953739099957418929515166992046023132527023692084117989280989408792906568059089785031848286077233106633848172822437047760703899964953907632536845705839215426390261210648850972384677824035557997500264357720474790799724479709265041816135602383710009638537895458594451924681877998872313836489788873777255195472182248545912435325929375229052719219454136996943040841779103971576389079708720463022543773479667351715476985203556902972228024422390674746179076402656014743518665338761049064074981972221562596496369613689419045460742302364466462508108316630794282350406403049405721765123410662766936780258145737629752859247541068165488698133277789244546264097505363721507193080206196284001743926497193138135097124160164154570350721354622237084014616653362934908394211036322638226510579572761943018103845684432423772350218047557770581622686830014915445173807898759044924782761391843541525382303335466011784965241174420420336534222031220574788707431951846462560488855484974121817002953691353514226223939752883123627326068093017164020444975350092549792018096564871010738354470222342987989955090092393519408828670444545045985131231323439902049825807238457327015796715887303771299978569887864396386306106292201250588592714639771119437219357823616296506910053276728274464196025825080345782934697004032846236683883671266298041496355982102742183701535612808152426016800945459782872213913880836564134826167956152377983521709048140427597794263724665894116539588335431012732380010931903985726952830426132153632949657236462393377996261348327347184001238882806739731954410904534826323440029700132935041272606295678055825303261893127957617083148730836940844029544264045524892973842046051142686375604427369869636670737445500913003141572112089515589189408914452497501027648435171819568991731677294920782307533265935995124574380164427180138983451563351868302149418748992573887926857789142956596678915029960522563141409235713845566201180579986574477032664432074052622580628000905777352670982548518073017510452474916821044285147380316817850752870254022208907890961541471543623780499587410682684356058229240133873532540859640737051904532695658250949406823930907676243315882200539468843052798914853533814093611329887786919685144122129694817847336855283251375712496855604525969357536906474088281426372243570421991080241695602510605683965113427541337910638848379156315052405517713180261585979541750665819343749287712868503319473803610551927136715814511886098896576631107061559162964740282817735118448288219085527824173826424029742985002516822265379371527054353459280526195501121660912644778152039425404201529651305995362191142887490760769351823579852264924828745268169182835177505970579029395602909154915644843497821304202983948474390317208996131582157399818936345498118386083939078353425841393870323623906408908329319656059669415380746379892127341256588175548759086628739034720984888060717796586735993967815126017861283341245879079731204760576068967348910191276360576966102497670460881844247722492880681947720972876580436491916161419643606905848707007262776375743802837077023231688162948412192563157107821325859191545033621010890605373818417051802025968943098182493364574841900664796851398295723294659771503733989325630319291577136002883968789607015980595185770010141577344285460035851485741260817948953015635212660366733264609649088166412813413072092386923298246868854756648827190544344870831180556421155376600241733055515348744863212420606984267095504654232239373332115505779521804194067143003244810836041200287725798718940865228194399185905489856285886368048168315444080890908027518956306238645975750069620184593915892971362129215240684271658325615776292848483975246914455967582877825360799185286606193698352706944374705394993210970803757767499768565638620146327482224701735204253782935014693894307530513089223613675141682275313719417020575711398294506242526037985214360907809124549037109081319538054178003118787958908806603516478129741782371474100760604656594174829735390683698114183388204902027955994116335105416981047102365343010786682542699833387080289255486059722039698589599731527248853410740510020545910526537133183969984923512484069225930157572555260946627336529134306908461062353234040414493781475686594629726658334192296709443591632425401639612853877782778242601460674342115383391082094579259881532447206013836324479482340092297459503362293759170762311450304719733246943018722657507572284586287860179941555827063554714925301343766166695487240927238423960179422830136142338326802357871579473222011214523260222947071231080214448123314934602569624125573229781124447138418195168090743073019392163273310705049831664050923157942340900787304318049994730421916655026198086211092003954758099518971041431061705789383852538917974744004303396919556679023844708498674306631132999274873692145489529380186607402217773440408553345775465086573778419312619532333475594518020415054176690401728193035148129300882021689986757568409556233906965613534367797425651002018161435129115467145733538277619072593520812955470969394495797906769441518312973484852656867679234764184369119094031699623400327265575299114274136032219194565798975880793962242140771228676333942551564969102870602065887053125560205734932290262860865180172749397094622759911768233982710736292803532673065790034372122431573127433183866761620192067490803326452825636899537771746611645062821230885483385055163114582170491624838736775480670718315439540104962130637482779496641396928396086017160169280797661366143309192111304761813783706682439310227587412078321407089192356406894882510564726076805833282820472693165440240746929483511592131970115692456470990543898165276385152087383934756697194936078749464864397808729425023270536857769003809784639951911815489936423105086519865097086983216571642075889290410594286828140256767140532103518994472876266211134638201130259904884342128296078576238008450282127257261361773367586801465671889280760826952567943209784049431654241796572123280776083235124744206729750493436335118862106038430240025393267716936649220572657371326225467920624288708522525739120465587366329512846371123950773641142616283331391251560683866266218875267861034732307575211870956962805705819230851746958810550953317267006210947408540420733625030215533315242508842908170874593153998541108019404732860226484632939042009827830306488280643758753383237183053261208621914086134531757638213894980206743303590706129121664394764679721970230121971414150768015858589480128746163616031812838938934075245951004524089315529754537227965052943206410846374300600324743789312432043646649583663473866203290414184656647579399434537783712891152251812923104863020220660446182935388258224260600153925274583409470337655905832732471877627450514227011487403925249712245705940605184453349931468696245933856367129483391720470243342544450727265770073235781080688398812364221179496540139748538465211628885088279396609948588166840872850788475124975631039759997153612273065057748145934932148147965937471358782703524369781033388460459394654621574467133870462968584122645512086882997267948017570705947643008948545513601323566652960894440613184113484695821092235643379004440903059176750906231252928077572590628439082372419218378213065921325345280825244828703284649846071124015648202943469697626796702216023518385139132243946153535177752841561780576102062594346243063186127309165745847926519267587125560481938040746135713335975625575778950773909187832685269628864914430240027386186316777171923935984825563163649626662290797919658149882557530737638742683934304755427393309061808233522199503142404307110370478191329904033266845761027815165602426416067863688678073693096281937949717289935912242819860323707557542288518708607718809535338718250845936859554452742364568615844027578852134256444103221616520652304698820621204651318074104342971066306615869388624441453168571473300211863631375477188265001320877353107568307233250258339759237898428518524878764576932845229303955359103823355362578318642928039908635889840307238051427553135542884669085620041291312900329943330046527257831661223305706029898598514351633386261881101321091034881633724977973049382216223998293369184061229668043085438483373637116223807835721077447714007498545837500779818625735089907332416872646856684179250483593832845281319929763904991863401929156048386271907804695469915103512302103866524431709952119107925562506477104450259577455675512575189795269582589057315165775669159439753095595478925705905376977170169932303624714821535944094433668257810372159970385606842412319066125107094815234062096091284332354303698142019651713041559652142077466155799467278101940029127096336659953977091378158014712160557299596985573996037980329633427832135920068179550447764992463033680629004443353293503866759612193555672810919238942964263036658565433872469847968625967150806886555602431174942522262385723424675000913491813956222374853906338982264065065630520754131622843396431318153229712571201782895640957866903881745990702122670817214759736969677096106926910824190432647632676900874516951480811698149068665088962224365839989032231997017688203260934861103683017222962971746620765663976217632060956258696165275705345805841458247902978562128158548521743471771189187899842510297063950825186005999939675301682040115696533180015907252035189823427342155992747052683563836576516305785634177109238211664254489627044472145127084064790492724533073941504022082385444332445049904863641458355951701964875931854327826500112703032558256549060505514675569711858076212012627810190728324889644057144017565576023122643919277876199866141952063103462361678699808626342489145885829264527706040187895505754976525603001483957236717790966186473637755721346546425518933358040809264973437995586152245267328246649794075403158788687556698458446070029968955137601104060584603463173372002979634352060649747316492033448809372896571546780002411748162570106821173926839910913396059270105934082147141536705710113487719796139753836955054735829301275286750834598090411946753605939345224355369146217585108574431993387816597656391366132021356392575212965916667068168723086898534351199386493340351791888721374042272750044444791669760127423743300538106063309360788342807851146420833723003901088941561632326688382092883664139721210865855854728866916880553932432602736411914514733798940762424693031580770663543176582063727233363015230070400892391457668378402309497198518421168705944410233232673109655736205403596706938187572120508717073196717904943789985864213714573889110662587614763591679386594066608049553159126341656688370161293924460347668946586683992005893905574122026967394921484035813419066164366706326961653904316600037634349911328091121871922886092019428070323259268985908489923179985917809506466517983687798867981730539546807748661706148386478476934295941132727916555022830080861020971467949737567715399597779090318964226861589112572241838449207735314821618613995438155973388173385681880640797717033000287195944640168177993599177015837926890914394513308061336290276085333700637664578045461421122800441587624472778582877274788586998656625236138697177342242393495574107017671074875587147203502069402007397003859224220828650489960341235648436262894195943372342660678195698750313130680459239377904668881415235034530808103181492518890378372455760772424727145808815942692992470318589419074125901366440233600640344591003114195196324111213275802896982128319492200437891491496314147045940351190495094935433517204434114308595207566275925153195121390140040127421343025156539917468398483116658407054765081376156378076276388961497709352726862900690366003765395748133470964061626920814960971460298404987136218247226887702043735968529170918686847046215098370363462998297255578766950198581513301725367407370485986558477855464861729095583223036280987457386012741480762894124866288776732913700442263272961143670121316638145418360870747903324289843753482309001482005586782954433376117736559349118669363910240093620595069323465018052556135750559229197898472836023329210161259528042571031659562994898025474985709486894196951150056028671586475323898146787743142735443490503878512199644432567338337457655804665856784306622654304023633722434983434389595421396220437735619392075923232986429155292762333332919858451325795800266625515229608695145966844923876087909270176111195926743412024649538095096420651106017786196353364069399161939784882431336465799871260205523724477973072760111521757751162735495640828523378515536534755544736780363025275152552135826389764156915606929028138346787910301111103750000610527152153156061603638023882319632890319741758737125736323591934650170616229459375730268930934486316284048458607481461952501843495599222318108372379643328055857071006333511921504789758149562859326459796399511069053501473013589688026646180945197350396179536691564160017843246525726805831071436944524135001405389096093432429471473494805816418155753428995946203722548712506249384323844534532787983652949825421349171537752047967360350757441482795898912134076370182409022169498473023226436074909303881568754735565073346135612592409106531455898391011661952145153557867624925870107776984812250120443392343652063301329691269637856826044755100595392375273636186082124231152284650866871000941248439938433853577845075370338531068147085356152583552230783928807575253276546125158094163186548371590517405295862157585883763790627719546756275313207761776409511722563859241586173715851393415710621180208029958097231276694398606904122524145439679822945251508028972081496172551055595081043831722880594403166965599254945391677775209329412520233428812547679305613930888307039872609736070990712936021403442636799922475779278013220517180265462525403224827045655119585544426574556615036897180299529327075721952090008087919391410765608664585583679561545316689006385077363549362858225363085293958632412816650842462953229531501068270705893289170864549030205957019926914827144357249281707192868269141287356505237785570069867034423582257462799655398498355170768194993151853621951226327399887199466967296406497099929214384932495103927374844189804096430504888550451534351930727886823826763590320938227527338409404062756829029778139873353179740093686803853001729310130967956247190218967468175863467179675302281232745752551025429282508466796253506930294458504994901334813727267476191668347789465954013444074169288077638751788259966138580216988930168187506704890718739416196173412987296682686697087077628545098070905286612568079303154962378190165638509506268850395065697163122573340380176945459580830061224642125733301648544474454387895926506403168018693411821468848611098544903028539888312847620820000340512885850220364855433407427704123528484406666233576281321418142836422334302420693334654304950028770531302427251318913255008889988661476394539341111267352534481287697875776698419612337982652187531420464153706187543052151552636764801212921155062979612130930476265685623274752293615573042989429765575148724923873140027170328873226554844901834476441457451767391620227517940376220378806752046288972190023986214806685811009918685682441623392823937071117925925439506082446191084141822525425819534111416951076528639310663130978479560717337344482420388469719758591895374758086434233243049857699371061317812297127412329159210005439915204478239714065286864930960491233307929932427602949893966429631522822856850689581906462625965541093960604420488425203600794414731310833599007339180102007995716623426748001118064007782651914781685088656187257152456546627337845245554606682771897508711778054115823906483689034083584491459637208968022442873163722731193118464113008658398608220411530730900471719543831929882302315766302023129147550213849721708939163205254803974715300452877049886539574508549426818872926110981651434753860217785072259987058036976763140524851181984933783620818328939939579610290356139190616217260708977787634467299194248619494159066044460718348633765812179097356871568470826517018105840830821217241073101860069072069071790641390664573695630184050878135117236533370171071946055100519362993216451640441790982915348846324054273356408692950867821476805595144608866399441705909804644540362187961955953313516840729755160464293824924279669980140447494384439189696905777589254901238161464020126597760311329866657201954439278023825248091979464814396699712688202108580089768910893516020645723776874359795013322441252022905953446495817229964562153327623797905666798980658309370298326806733517575824406487314557444613458055291999700626398330904412140111594957606516445039961224947150298762731315025632056341236730785161635534377487710159386093403105747782125986997811587053238221413558258980569713611882095498903282923153337141240734047661380372973291549638521745870673413108788785245336572636278880796854250388295985219024070651163329890373203802113404524800927667924943834105699689189654121006035528201784795827552480110000178271913703842228163593110928333689341092797653443354373629783675851452670803950125264486981151251476081883419303111329741200574875231072820443600319555127486921254554563022831433381654592797077224267880283945830485581317215936705982561542994316968585255021564113733888435276359365743520681208045349813971642547673820566824523810548629155902925128486508376697502120452436289385562103717467384770733898941114493395017470272005817328368883088324454943531835391561338448435919637842262546550142727726589192250998401317099849583876539775862514007339245896730758402077531521278760468827780290586302168254122708411971673269336726905688213442955366463654243804100089389773233093323649888241773377107896046073604509543381913557739479399173105949001503434379947568655722746831716499914499010997243740563396944560700298598024600526322070615733419464166509000541781522349386268897078464784123898993149530591609366054341900928883879698872647898674535902513580455569272012276194026241751695787426661403393718237823515201605102980244747323450924390283471057777523575096666332450188517915357995547189354613020509482642501455409827382906861386140523526471770716699905333697825015622416581821168104080411725503876291924039927884276389604199226373061710912717456285655869644690897507617820696017151669061543953332932952616132648488979727789430155146170306766177890897476168796323545950676336992608146242478477328093502851172358567380264291350259087014289910859724421982478050988347472252603884212459822704607951915910905552515942780825671235202677944865635510687808834384076627381605659133657796506538124240011120152004908554072786453112273047538023269858120094472637891556372357359232075627769607470380762336571983860019437022859292485882812394579339086975351796442584297002736947205145916678425184843563217034206259467142039601276021389006068955039499685416884037966554630962529076268003823819264227961686368261639753364906352687820954049615287855538539722582175433943217858930545714606043142308728437633099527446104978920765246359686441554603981684397484717319853671175099557755790483139645779147608146331757951617465934702442506141504521191042687076739066807533080248431859093504313693255539246564437894543278613306972981010997677939577977282089459479048263147424924100385578466801383070289076282378359534625747119393680239809352366255408432016356766518697502348182521328640202213187605738967787100314855370701531808204697229327353581302603355422875506135399119769743237561295920869418783311928993188461776471676813432128050038269076983705187253527750167975359331240437575733751162020093123529147956376860935153551860725862716167239179303098913233858921544580493709733400946894212248567240336723519840554561596913285903524862077960064339838416138674221091012704779264774799690837776153041311816420431393328378077358873212511389984407998720041606727235118554716377922950422853216591600395867289237028397484881881070178577050609051804556749469622400184415606774457048794665045592178874594699342342700801225431307177043113293780828526224164514478786582338954081791848505612888957155036883891694931271323260301082760330457417506000268316694106983515759059896704444687215999444831351086822231237841730191637736050970032353248955582386277717384993828293469154450510691407217374313545843089139941836996649337296008724755175011671349824871974775996287565702646369824132338377052631089568352677166953310398825127573144581066797528501868495864105955105312343986582508016426108600353273442904771466250110292514889419600715598165218379387829449334956787044299111528585337962795604404623704167842511892760629438259197051831633180655173918746012954039457777076880961217312624110678844663392303907617160689866936913978950847739730882339242231511287968395935814313680518714900610485364491320221248127083773077952094152604404241401705380717718559566733092821517294013395483838382815948751958964792290283919666580310448596885845153001455941588596970313923883274358447670135841241844545539652720520138731433457032323825237766587250389333688660410894514461283611311698798538970843477550322195147314962926191949957990871902470628164332412533498877013898896672661602988893046605593313214123847892314785719015026304220391922233066572028440516093421205396278391873611060968193705103380679843779964660002258341019389080832070368848257450702882400113307551655829118518745650461849254501827721063976681828181397730669177692135082037572602305845688494592783289592383058802106171185330428170857695029635430307672603269735862210308690926744155334432334115531949683447954007853980113747659284385153273996573393293757239595916179075315649512644442470945765234861791513420226191743279456290636692475676469957036222196318163504098022344227820231455491982511972485108528166978688401549400454948517132751677638131613438071115127379896446659060535687062175292887983998904025577220632801304648708952640368097276367771946030340942363994233428479123137678819379106790996055375195317567576286757798568537970560125334309859514107519317739837933526331837628941442325381499953622619189859920434969505438027562547202581344884039158497855087891058532947711334558544490351133827669583721631933867708250016224699968855265255803402476406505810060065437858906840345975725359430151689034817680031816850600029763122573078450292392316634616154496120628562098604681900319397534470135182219233462396077645341731111680432011624992325098354626004753057933075399104870822641297340984331052445308578776595272088342693720080841357357087657008713062770861634907479914122659702908376913173237512113999521091993130210514938657683898360370461724237788459418662806161878663054006768879243309425581993012115845128216004795376865780609060031625590782008065295394098205284130970499721321998554899107737344681118988998406132673820220177164566909930610606318300735184375237811309421698985356479223365675891075322531913770519893111990162392857925814646803749791399265546652993545462392389466860082257931314506291693947926932008055085406288068142787293316346251291042399494804528053616481379127062354361932932482331286045842411301975699026431796543717186982204132365663208750467708003721910435245150184348429054479816475554401357906957647197165606795897457718429227268200663454551073803920072675562386971071201231991541811578319262994043747074709982312613546784953832942793195156991152782973163638567338809715886543344191749686411143490512675014190671886364991839600817843576267384697524445737548443105646349775358412743597982046925862072165231179561440888112737199616678365820180047285651900219085191404169299029463571760823465372965656753947833299145486544622643195684572713865438427865148038836970157833907323706795658048301636541036114522448031851146243282367069814523458686379283238248798766564175692272934068538182299875939337708269703772269699380176772931158085885298836419536416911949444146871936840177512956317336709372299389367483092644226966111765874464042350444317131562791583670530768251410221929127313477928491335985986990245571609347643533145333601579102631851832848910470253211570886499178029621109027315070336908069484569357267462620654359621218729457903112405308269165400312860550219513619944027351446906182157952323451800349412728646172986216048674321704667367764735166894950391790737463630069194830727150770114945395733076654400029733378358424745766270754597010484265291759019882893415032023891941496918993539718870873150438983120556750869790386518082286590228107562364732948662432475051505973730392483875641404634358888500801587953217662665786786604962848730759667438523574077655903366066230524119349621030784385995020229769039920433495409223922179195672795054537386154530032376009776685600959204736991508315122641896602718847979159387628431638074390058794824469915763832473429006697513256498255411354467927691418312820773974686953851048885436507781357103150344184504590270970444772369339707645249136567964712333587541644990887306769935586404068889311893747818902091020285583777263635272586865050694973146270445857725626608034811612106919161840028777813013986624153255365277061038208287389840403893080963781205162300013497005345624318853101566765260899010764078060983407809703201827395037352530731339915794789949620986879802725185773971258527096143394464953464843339661416688497566712978370703916341671172522033032092362532026475886971167112965282484606176381367214431375738840096624941840083671993237511794986742141675751503906775412283391447352727998901075787304114157084227501851056890186621829777861309880666822265150425268183273452118870718167451052818273634616535481800202924737652297658048287421443119661595033398587302100977242726737226367108131333828824246429698100627536539459188964221707163368138404540875003471442394089944761495489750845416024228927980080548589692389430015962377634165677266703428126143476366421963768219381285868853614042645418696238214585537732386206351164450493651279833383761822161982452594679206240277330555317952816359499181127639547300404380932195091795691865913845494898524683859241247958109718661254458761294335694463595316630236498946418374509315751306167040995819437307779770380212065476900531102821335220922300804982060492224994584994876646516221012956257589659593333910979412479697740486064655403236858401337100788725556554360328395205001155978033759853615818066244190558164273048074989707551588302284116950259571371525462993167522800211334815230247921915664837733712686078877809297885092549674616380104226580622821786547807648099660409376851982819544304426540816765908919672848014425752120354478272196964984601066061648758745966470773957564610161948704540653916098485635536218277294856910838987397038542282985290556384716213221034849273422731020269602992510462291152252586034156400801221563030206732010043294524447250547876149926405984051324122595919912634201564079843108359705575279643551542392285071735068466293991698563403155156214884655683056709077064399633275858351917526083891854786669350167115053592062902358307278727030314621507386022637874114105871788330406433027845815357715747467429755761710944919652102731879112479822163114955663743616195391272744251581666216474951661758188928931432611125834767418206776727903452391176917810047598239489007731573967210878987503889750316701585213470369033243619341083815825367963035746835416463234800421193057948838693357057328010884658725616304417822286974186144746967894759518269195439973375784233993092294279388406932904336955519741019693046345207836263021825244781213303998369176094542865964120101037821298405727632011913481318432873557863960371824332754347504144837444831776295244629774014048958688884002565352555584591233596158136274481461131970391905757502162971437088511075251383792356197210809542259027415922207844633417573916582993808658973822465981238018127763034329760856474232138731566498466069756717116138141285313156077558806662047248401886556138938014747943653279618190867147606738424628374918094599220708985290700569515549326756536126309306146063520239748578307933331541919385915081645291368599936663567918530170736299458229055763515921129828294188073146059270721795984847717739041706864836551585079613202039205269832221079289008458104830811894794225383227990179640629790223472998863401609936994685821873610898796618259749076925016997942999728990912542413986706243286320467377703248462455772293554652219557705973687745089352928179483802710269776779053713099991059100677786753213593717793865966888802859871570137128852336194757597539358299853137994300827928875913504043575087794274451899748140881658914138655026644955193551932239212805611048136153608668175696296882655941031234270593437679815192294973214612208176634053195136552051896265691827247942524296747506386972415332941923372451358433257973939252037531984749063967057405480032311912955232490176236228159469406970849741297183180873471299602327294137306008940350000838305627241834839245473848969296102577214637170802810088714908170483164092104157587036299940875484823065415957233760025184892057103910512022259083727707589011040573696089891475972218632680711663622857546791611162872646388381891006024603167809779553729795388163454440705791836522014430224841683372480030137706844856306876597595300536077143090143729244156636191307377356924944065088494833705595275331774793420662421799210100519528742418285536473811352204280615437033511862240700921412804135946411371951988220753098868103676391720234402804208432005073507618366044672687198679544766827075121532963167956183559527938731193823833808346678706348065499782658817880717247842383922808930200277485876167075572699601261662788951327951195201584826098933280726038779267550493276815870859341887721409421431515739325356771585453743779433387661735402149707634116304442951963303140989347972176111821225975332397611907758025903846475073911692951288045943147283544799189734780276578866211396761937132995030156751954073060457500704048284921589455941792348841327825454681862072755558123331357230630645326227298191170684907247790047846295378039514500698746040869171649203183359973149009683318354174692946611014856655997259861231486926011280298120442631105027581418934161946942474744311377204191668639458793929451015046142234309193385205460226991319818744708551760194460960740376455331659995194906046054088139877834281372706620905697756924106511525924911493759927293098365262115132553987939503375343320833122203729476342830465031584421885088196007414510334110029193770340551591559567247901078567970206616499810766358160129434176441813834797315762970789335451469013899577454924126029501151070435249035530754641695446836002893054020645530409004791432539774490639211144243697836347496990122876129140465875313444082871148456057514474287832121762948088919475380686524549974683185025156341952954936921385230492730076928792912587842260021182080810308893685236709493032122938585391551700350535515762218246027164439521555921886551322337069501586853533540153750245269141487710007388853244321719409358190810931109152378734766091425955807156336526447720092920346233884311064276144526707978493751320889350968041293394922173325464084356442518149309341864528336559132090695575799005331956838335339465183438728449469318686263239503771782797745579321271943252759004113309987301408678167226864023620479264021272566707018491974640918631919322142330138204649430199468587441881099799768632015367974799158476003201072706438476473500132892669252829202427420168131114609732893230124005966406598183431206737331068130855417885898562744752817795890670803377784924566972380527304167169781743310537902283752406147394187560357675195126850652910330426650439324385893405428505723347267689036153989549128075258176857529052812328072030123948962927168520369109780428693643713395414831875716827666981960255547178467745235687465280565023720250656066314452932781985641429901947666086757379457058349001982475884816249446129092234211514086114157220583046321621368680847363850655260204413686567617792765924558781414865397034642565478431649249808352472579058582490610142059362821703182989729524391106205733973949575827534913752482449993007130826043511856726858154158104591324550858111374960603514700453930982611673827959213477130061838632833500144002132359210598114471619101410424792143107942871969770851947504901899082090746794098027388506878985552393828768223957645400952889321779434908617957801535745358680190410420644716279323685557639013460079338334161453802413377864447589062489674778464398652497262234712728137138740210420138117805364565858286186689500301480953504830882662574949464122078659246674149022589446284271637566673071954737928341878822934839683979226335663779416831394898763573829451908525865238925435945173294793316114445686166981296925657689740510271023860940174344024671233808824590085451015127970639989549816917585419845418085013904606797149657509617757731572515961964890145578591780137748385676500483407455816133715917900605421817645058491231468074606331877688298712366447952322909265102587630072322908223470474115558079963979716619210496308865078820621323681867999312325492090498546433551068580723497071490222462247690507067727262138833829062692404852567892959035851142501192740045297597317754676513349365749873329392150241690961320434584193729691094320062084436143454264702395468380095950648927169451877420900503632355736033045323997641171615482957462245576387011784037521166757769404304410078930867956818585978390830434689132449220804764964848230364764860676476653448324592651544597612814202375486649093708269870110455154266838455920000491548715797151975865858509326971112889045542163432298179538350525081639510127211927955235088391276767371437261994910953388285938074034306179878074124590152151069548335353225634440696403616381216901631831609574945605995264196931882617065348388563510748826014621184530962227443459030141429188941245502111456110211577701309402052512815837328798051683984094074826543655918720014406579427158514371257408862220516550927664318379566251115852165716380138381204520149273840297778532438827409591705278501612124606621922891294366772701979842697515253108838725534325834757768092003269053616854708959909657067508455015818614384117289535211067982088301449223270385789710391505132202930075419311222914557184498667060584723019138737259278461846681622582440835768746686005517056714207035028530564593796413146243059106443221505588215009976742325596610425026028583310493006727441099105767003539693553565101250109341982708057367227559517697030980511937020031008105563836432815913034452915996678167514148227127616447059432227323908170262058295702840544770957727321521599207578815877541547493354638012289606302382807632206783588010424274868852247539694744599766987154381695914054399436919754512860293896547118913313212077127378937698656384356231231992347836483538904298270760494727620831428126151563085571243436657468005641268223564183536237139681202561116591238856035427607816371730874981606001606884864147101821290538214388974602979300974043003705633513563144160774349631824773471593398591927897349188072872821492059283652953892036180234040460013538280750876308978511550816016713974988217504216367841466030789759769028847715119454280521741081984059371363724030988645903978643073211389746663407768656542780631597287132025007338343540001750303104894387105155917497689740911400691983121667688084744798180101206299132081186390321973201337084235884479911725771326043689204029048386177763865931256652532537774374181788173307389655750955280026302812138356129899227297581102677905883903647927233227147806132637593596326968541127240728782210726706427960467597757370262134051925789398795870384806684279936194071976555725858014597299267142960917150134763009881476975462149982051892344520081904616947913031569047819161549384605322176564271227568271339304634661599863392612783586649649727593509864361403117930407059881767836532979172586204394052941427107559079786645972840138062064215597663223315209087764962894600046346751028994873146127645004687011777853270830850172050966594640912392524618464784863400752048647709401234614251092299499403518315732057777956381406073440746106877748694553471834572978481490654947483360662768175624698940932517258971953779737510493861921901661749869580738779007049405549536520894394036636955491583987766485124436557417547750456694344039991598896708265330954811300474312047441499348925754760340342070456819639302399601590866343696518537608076433653511026931801730174066436959299709206526168574397048408190500392031740539995024482260119194683145821290447922498247621119669065898057400785852266854859600576326921930456591727768496399730345694831216308071696116041134931315860043324005975421532891440965143084239714035097724618529997801934232681378849624480441755251538251497735937436150679512928470191953200634245964115802392032199659503805999999821124722404281888929203621860596589097576185277023756756261997080848971792828788321675393586085084939508668136760605545195213005008341244318659666990992086250773157176027664058586573619651685387680258379198728679283074714288071050592967564365510984522548069534743817994263339472155274431917658674027554891073141753814790179169378834270667683185580740713166871734273844189596439568084942658105333553151957424248419131962609914550642410739193284895649342671533699333824550702951327486000155575536711239366873455627019164955815497265942516887723069141972160021187685839786751365735356322246965738898450016291677255997715627961598978557254151728788000694607128835384011052101447945819640202430113017712712037989669586981432149852733769119765716186587277783611598687440754090987008868676432494743296253669061907640682848986765083764884756414380451690252865728119133611318773279765522157495992883994602302866120597657662103588489467435435163152283023519431912914969447917739008697222784235998073790157547130300959960119355946428854158178802554135550887721749712940551361917103207907947094481932208456064156529037530284496738984889772008036588072598517697168915151030637253117862375797918509123434364508321385177479743116589956449733825184578448325019966939167624249445898617966056171419674340351679737514257313415897089864388128616687783276184064169498862569360788202675909835705499106503439981818662119948476533667278928836069571573481344689131370278930656884799104130312290825947204662389412980928460934648300720142462636572596354758134940429202479319722382720170449621157749042667281427203019139408500138588188277855343389538902563680502519120907422312539477871901398275799266242458551487606113866973360897951623920074389043238978964010003082949031394920556278523495010313295664349704731976764237699052357580376488289697543771578350946991460887689291852305293366029387342070051130473294757275920962015833238078048378653287408626297894045996864196864482886084839824748169344086556145104466675697877999852961637301638774884669173617177603294810384419286704665436134032179602097327143476703048908765692327082397496635441210148716978120048805713106162343380044785610082188601811897539240723676739403746611428462601410066791027710791446287022674881266402902395838360937430918279455438813976052148470558923141005899017723575416279213338007024702338531585150033781502669036487740279133631074906792903046131259274259316771524249551472777467334907590143497998155357427310176914233701038313220968197687029418468133588949223897060916542697678194221766209185689083864464417446337793004353799949186828134247666440704687711651171152214111966234708055077803899010116062503269011873253899003288257196276103965982317567709860350629739554923286255199837623465781144191795097446959098217706760559153129567855903899489642948553255830691421855266460269393567990775543772878813706277430972766868342177800492216835240174145167620024095177779127267273629370174390949622416428971300041715903934060689620684267837149553988953401141407854814969086719624694781536333767009370057521686547049282653408629752124486099477401921313427512021859396609703820642735548245817893460058993979819510898764693115961688402099883642662228002816788717796477657118317169964877095753031250213188770696028329518358250085026809333585023536806244170688131185093938525652211075573599549170069838711799376321173924870853630668147260555533071420967649475762015356151219571715162704407073409155127880936467468064988109841399851245602903442075976704767581309185174558706209237633849368466812932815271071240717134238404190345459959057861631875886891397316669808206907248045287439899650872461401706424155880017824704233472004977448501516362796313938196028077063830993624095292670481026668546178749598417659801944104527888845193190352926194573438538142516565896802058885431330290324259989629503456304563759735099940197113027253833013190224255889804305540976490918511774038639385837604991793359207805764489286209832809246176322160502256076466404232910011064930621987503539658216831559737935532036545712392914215514101275378544078572732181507565910533923798198280684554422182839827360059073458801904150348239428403305914529966112622492505546425280482995144720800736092038280583833350486179838794888822317481506386799085959401704135218940542017770215585044390359004617792667026712017869385149530087889787904683238269959927925504506022019667956246259309674403751129092876930571292707513434515957423928131468350435783705253820621671251652058992199335679304309773892300861325669882164431705404109911867809357773074611103344910794661848335103332241054234535712585846142932413366416494464384100644858854109676009939538979138565893292821492756195559250134040489191273263565531360778163881941087192847639624922565739931183899509196499816680444351271503761970061999309514765803252814396480843547170402338193954326339692365763399581347746970771470851874025466458369738685300019933765497504117776101772350532432673963088876915410381738602515555789577829494860133464738614707918124613815670772671870305461539383546887767736108084042095741617892564440679783244735708394862179085360153706047801728803481225484247619976213088218757587646253763273114960513480406009429747688801145760785232984747129543117581183390980918421166011860886557599897016660324131166482055131909915133753466689849658269696751776599767888936962964068740695102337443979767865532547285782552548633476117484695569136820877103119266654115322462710244839747363940108769828834734741479633841422486134563697858395013646196764206931266225468153954752140560305720993078532467992032659539713784125311724993530593671573644500672433693072101698094751821111245486439105298696293179272557354520318649835490912667093986591018554024786423233988732173006201562949590214645706408087280398258678689737931504009296475185834241658352417639813435937178662955507559178444912802424218811185400790810495116504600559569500313102350119412388275831823627965675232776961335412340574941343164321238231709258805444220280766141949550950620034876344747129249596304823485134846441906981579055992813910589091513759782387227257702805656271120501988634291391025057719267185104513160873380266528447942730733423218661536561427716556159974067924875262595625172762898053664714868172097955541036503812548796489534505080335820410606868767452308714111287246986845060686231861844127622349263060357619101210587278336834963644398195561614901632754402250337878451572461888702407543774560520562671731144249518685458216783555420683518677234223588182614767102981968747621928150545806777023446784576394326251950767513069162888385899448850961600207575627068649804604494934743821378688705312200697155252875479883303613635297565510082812296636646845686534317417295440554659330303261090757242239660570857014112874865272820296050762005590972604603190648342037280381458961434391017641074102811643801559081487114425285669828153468141578883226415828010268503700844583593170466095926001030492287262490706688711485083665298395837543595611986045649105333731289443554483466723533432191391974420531042172059960000789407664110899475771807415251523436977248152218457281966367623368292876382509443364417180565893864562933673087284719256321226598214222785301984609142325062348744670743244078521077099704150274123332418528818398712712386750852571376930700293610621460484563314471634126042024522699001394190245974612592660489261973039357019433197037279578174020696356968244133505935850895928941346052570797128388123955546908041626156050782911723810885960803862592650357737117179240432583499260663383450834437425912250389592925997979759796618543345799877732619706644645150211659494941087140564223263949601359172142505529746414036292624947164545457095647051174279899503510986795416819209466254926104358517439242059104699803657346257214880079606413179674695587240222443750632709045771526979446624274478529235737266994126001054638068276164303029364063667234066151156464535388488621118649844303401337986863538689830586470595196100219434295773352880071165183458116450523292317350214420200959690660775954785227642805448716152096193164274008321211689055751499094316091353913169569721310514013242364781306614090484009304246356097031953574131307798844868225254706995483629563407225480641055116624259591498149507611301910808768498318331464800468524593999493777305451533752911235541365840196676138132911565216582782457100327950442333309823658063487066052765471075907583433864267549592735565806689335718453166733223496353138492569753967905831966162896643638851521352774824079860694945478741054030331042406761987605934271195289929524046429991096518633948931944429577839522714745161799082610055132503345584482506153397098488012851115420341048279532418101390081868541452152780002291124256548840735476634884790736803103899269673411085623752397572591027831084533096776918908973561124997476785152081696343992393976189386884256212707108274434401235407490151639253849008777278533433952677899876551966380802325664611271071321566038800399625907403491770054670555362459432571116531492069054983145367375648412061900512848292658012537894231399923346368918804776705261547656457359914357417678037166459473141545823848560762590032698904019732737113043941528881323697257540824519005491469669954305071260975166711592800466370625603129467491153617963710236710087700987767392308678876851812263282277303393613844574650238133510899672507596482122893377383544428199057533486095431943216196852372318362907626357037565416694149923670689884285696713867199851001239961129757808598047150960937581807469092511276159434953456236504452873340834871252571773137675209324717288806668028165781095318772318117750427296480221345563904258256913889076014796906896543073914883763903315701176008482669496976110378860230733290500581923883691278345885247079770845271448344048209147463456481332132972141880534149109323794704980695011395529951228198353003167732932229655629206697569984570814544354686065482543745693441051184446252835858497349528530419398108911721512997509554041228705443218831397183167099724551813975523024683170044513957430865737452794873306957995476187591946310089542892604012683173047191187442951307573062271082557086798910708875898002287531002780372591413338560899896825286717234399117357917374751345746752412135800294654234622496007375477840247001241371643125524509941591380104746218313199920054420346150322322321559886293204621500448640819839760826631856494244577852834075010033695038641938853319184163192496340496145394126775091546175991458142259794424822363859649136300936693263340630326734486156327638609442039476112009458116281891368188790005337673263007482945735485683102429751470528544738714963731528199674094780106874390269334025555513879301938902327629101061835820647021812462536127761370051282370430339826651013031898778316047231827044225659097818472690938727588052147609562894645907413128872938131635031617252725971011087142648151046901166266701771343999767268563654132937777049081562478186639968819844462934176224472924319866590801785182020516466335739390250710654139460460061541222299516619688650693583714907984201622115686981129866279737868799407876502356774439207093766980688824828593024980500355423128036321730176889554362618205448489337342696400329841709602547705145560981814072360964238190695544085816581788214192755924915293100577429948914903163392286427790362247199789346800725572914864351549346795410757768996657405531472473951849906351786482787346767160821502458914004432449348602657775530575904430088354960456641176367629413285698911414999705757000213133872730781898035094431479725935213141023530079165409574062758202887921134276220671986774876686741708535449562761005948680052167128360748435322423745359369133339837611153502445814045896090108511792024424891173133569257077186259212119507029887827241545249906410952548557037982487010191733704935683402095150783554339375977845764926535746209192006044649749662948999104571365329274786162699691954510411969748007337118991042077876097829779988348822573443269469597545560198026816366177710191061940817292054699744906060716598349387736975367082836098452603563605347604202307514120561526898326451886889414143120552495384069713066428100341659231555169975685954288700428225393304964584610576374491061519861649767290454912727090607290007363334530278009661094935268234231830314746086742562830767031742086388967676262882931089174659254305133171868776344273248139765815196289127887284797287517741373305328163373972222533305082718359137432376137698583871835619535243970444509109249231087317565942460207685808036547068055087038719282327842914373373113394353830141889925997357662387604729452350960706882766584220501920968387838518848937309062672626149427722701227306046318927025539944470371125782234896989586710398365956057869195130999680656599802933726700203408375584502709199422229194343277489565128912857608437912604947522083404607866322034048149332493476995374285088945164022844195781038017540195110240716607705146781992651403131687113216250758680698578505824991721483798720203875029827629439239483357740920841628624158526766406731477609486458230705198776222044248166090881596605583681506994918032872095408398126318108676064887984602978470275843752553073508410328896692308613034869309096612511101068223732531949020727073559889251933184544852819273374204882217781514114601029241490893246994840270409224098579852210625677784863004077122794574143968089174449664909215692071360229308801242847083769559129365394173438235495999520949150351904927343064083256827770536122541901166284474968164951414513066259426098355543332308455962157211916682490888389507593668624874982135115769263550557508849521523063282931850223785428220374495933136271418882067613790950921073032783850670958649322860041714498888787935161861321710187811653893290924526569774660196711835040853362888989236092825501668940864143925036603727702409061534683865681526543017867120327054514988976503241770061631261220792178519852979968679680001114149416169840129760829146686687461956893578526588941275559980271176283013508705707643958303245508378016667544664532229411785319422487296120785649048327825891333567749799408260748998644520037689899998822094843979704337279757654181298832778781548648981280865998226496206664928220856978938668406812548432575724684100090131514529134908286480755519708177384920623115028081496760721403492443116388546875907163514961258616781011437175458356078677993616167425527489342090638811373060156667644622567048170533557916837302365542984885601822239837106854586893192629440870615406754833994126207669421282218387163280349173989361783160128724661654007676019721338956615228239020317148170732299747800430488196397269090280049268255208959059851200825379332473795555780381570890827177772220905817444113055268329891118050579651829105962604390960813341030596028261763361096739321450771673652567536478622808440830838216559424159425573518280444164540643989095460761308337804843095082445495758044740794022570873723959635564815958196475977208873795459573009552522404163492525321877597087786820984178315327328562917868870276931865277409118037905676302948277458769704284138114241981393355098732976648024176830127968127942200297184258139968926953530701556146469612185055282160379821299584169381616307851573287271209779913480261220563788206525862591375962527992587493944360869162298690306102818293195589506472163872071084398597841815129616477705293246119420324422875488134284801147585327000905816108654726031137785956155854370587208967626196339217516783180978610396596326778318343416380065153421922171550032009385060663109845228708346238145333072240263519089397414678381962512695893191084499990958929069516752940600917931310358141289374246855642219031763761767466806551139734795529265881932828964620419709556829430927413828247284791682145862996862555450671975110640469505436003499697057873920694942979653651520796858189826891930211884563649906659492673072221676395133153627954617392872561943560468587776433708726785873066147615253917501753775118891428180737032608026656788968511513724105252150787064371082247682979130635052839549279279640998116216676280477680162431828016415844776786653883450300479707593493137311352850904110372229760250472099080059000098955781065781373732552349796914026425760670147659970383373254784222685910614499021625402786802090495763704919022317992922764648322244468674220792862948432543588225397830126999182282900131455431830259335270296745506729553409916057367798614875300364762663217745948789340665962552204707305908150192116262192218214550067504115245789277789264110226778185079684969245990880060598277726181748715075285382273245112733457608794961741927246700017942988567940779796315272789807693522305810936875854149764694668273973187688156636016147465274880655353066082558659624267599508801261482042178512745497049331835970826876826554529865649266919680211366985058629672566677356666490115953119622100437173032772667334015700524674954201815463301917293961149981108120732077887042739369276725676040094954414931015318947356122903116254285778813495737555887535778968723320107279111177929605396406240815560094701563442645061789448050055358453813402077729814554292316061072630325261220979721258407256689584980986330854318890669825306249515021662650837216265023187942924796839743511274279339617845699462738840394423112289240101554212320656046520881630443313683125763862368510306697491162153285848492631662108873468840335267315655964120650269692747322113619857939197994106783661081897393589380778643315223014980545049311501896073434324584606151670780206557409762409145396084848082949564444731171062539658029934151598573812878378499138833909846823812200707906234648279779552654692465846570839220938684196433190342843458138504716572650723810267900250602035455972550587375554585100950849322381748442559039638087466796484190892972969249618384746479145419129937338497423905015964512817771060704489622835587719849620065277753123938702083376795223554435047646103586740294351459550373627741711738879005727505949519118349703934180148614523644833154266848048301469435023795456335358155542267989781121176690868932619278735930191398836049547442166849843040800627596715866071896255761402126067990559376595692329351354420221303916804657126982439866498347640149955117099120945496666364157331232315815065701894638761553325914148636179575379304777974893520032420289839027318245968059353920559538339165913109907074020943582710051711623480501204641523833148093263026638502201529858474473096909961413174271088926931433323073436529652008723844833595147070010420497405080769299606920056802611895015534354765928919702810181096074509742400568527032313550488972755444885543980056916701610493822029013816399850996399327535313280431630076943955353020017897299368770802032682405947300984897660286842221673303573143084741182892131092381403747105770230353050536836311066878743429489778745830616123226474841268301830655756605715453367988489003813229378356303257858566423907431119598749882568683283885941357936792649228829018332337825930130994511259416726087529176487563198979628817271557600913453281285505243170951314053911263466050571398294594821998586812545517199315889759604028825602478305805138128715027394884143520107255841682116696525637096250054081852165892499424443360101229462395545024525059031970071203447296570103863163817285085980803169801617113274225633709003224344146152838918670180479316467902458352700762055892724807190875085612640348990407632136605112288444967854015266060897341321634208736966296334394213012350534413944033098796398138403766871854339303880587839011861225629846880638982311100435301887549669047735956569294177216299939246682525879411821119020396382704977948174126815872982461296307742635712422594942119095107593186083606056066436399074167819222239028642393195666778364333079554514035458911727165399796921959572518329391200888219839523041201938681534387298256161893196726118021795350968169976572552749223684779904349650865176109997244781930856336846396663498156508693206719119713974863817932237101870792072304774628111718558393663479869653372173880885749441962172221756501319490356096062835240580483579046242315359863039544013845726514252338134785843073242781041277107761766361664062933888463201943488875623093059395797634837757550994792119471102986173621974739900081915458514491450423221643772339067347051707469218829067704597403315910231493944707223305652326991434289406217076858975729447687232575057738767689535143745143940217976163843597606200757706986187675397113481552585165928967858530811342426318580717548754704950520092423039852767362436437652633445782220904075564967264993858001108970075375842492290868588044962742127092163252762597586344208346885371115581139626543655015307581046762759383153663862817598431243858518772077000232235615636371900595010409084129453856602964932714499126408077644338630918271502143497120574001608058899966984231970439792298371980102030566713531682785515141027454883718781811032748775212658236247227657220677370240050214431369619939475726149781797173853188531676164005449699101147669110357518705503912046366073170429287096205501208283752875359768404255326121309024183017618012292179735093330423803808833418681684198346820801294624940341046786351092528920762638107697392861767969281572407585027096557589409727069842118038817270119946432531218733745117584155538595288033301160810982363868415531152530876050543738331173438236091834111137733889498696971104102985923079985833901819412678254409385548196776001531913564480041636143001997878198902705873265743607352417013651326177551901467751187946059238044618667166231357324650996714372054757673343630654959771961555649098446475636931972201539168314342368400827326385882962740937592292357717699921596455005666685539453240189680795175252206641394989465252294071414405365571500114936556445354758518050892052093963737821691351620287225010202939871267062827268090863351918027807696432221075588097285827067116154398873652065039171229126890398124992631946325336124926935052967654492838083115102724458057145576845658766787342520615134558030584890755155239174497097819396428705081757418430847025164336917956402361832528045640333132896013954745268917844304212345013519009165188833131599105714211881546804340459186736365100048307560674602231579875774746051527704952616328255208441870040215183355227094531385669649744895605996053388830981398694358377210026464537411721222116268438138674713047664883882956473171292323423097065525034417285055322917166706127071221781851488051001170342425892514160444252398572408588299288482987503954654673583886725834290789268991927232446171672569314898545543351294220014015080482884271247225287794716852194907685802599448014254248922911774363987095715379657452502926171260641253857626900472095152889028168187145853817822580368340456482635499897871862578166655424317936515285565694338026092729338889768776650128955723412827856944672933686096436789942672570700518802197308719980979250257438658249641050180172831129335781784620343965334925255200462421380409490997304588604718595887174612457486507110681844030004060362557311334784263215949796676957619054977328337967061948964830261692196959246569713100693052586592065267265556710254729293873781897301933921795757182562465260753846759225011610028953320237739622082138237123867796363767047577181390830690229268652200450210542026860805519016372068288906831435736582514876061752654534096813875081178181963270439777561169457633795330600830934048443173391987153439475653182894628465047179105999984555010026216556328584918266372755484018505236454033269865631627250045402173319870588878951618995472880241951122061460195382078779820293547679532475195876266557987758562737159298239029715236574903769543123617297894963584509584740787760863673125318840634009570507652211176667852377041634571975988833215211554203722212400956613601254449643279800346134755242084750378896900231038005602596946435813574998691516990940433580536509382547423356600026105011303172158976659403954221425092337017665906236996584679332641364103442865318890393291376698783566359702248365894216355411661476968160000136155341627417639723234025131396715454188817007824611642113656937879719586707306989731072555383868320590580539487656077924831737718784156189995958558175692879869884169082959377848405054616292705270207836086959422228624377700628997556288492756139739656692670649962662694533794149332702352575588434747915622471614059942109922497995602776153706533562587919012213973935180675547575598372686292627900367616328445776599555736674533046860762235981076922296397169904260089536802046866154670771242279449448790450984835881363638422133176670871998672935416765000393547806307072719398164027627749101461945209736535182635047986692545737560976424092025658009164007863260758420480244914168813794728982784410867887899307224577278234591022041364755124443991085036576898475589629554577476733195872847743860464077788516496304050802585932819313631565065592953695323559460146082579696855176242440594424575967660532156132899904118680811335551751617776512187487780761244371179367558525653470915009064992983633206864122349414572169684727801339029637341789007480093228758022758859806499192259320452336330194041918518139006158185639070414983346412716800300076371067929199274958294652607398828259427079382231997195373791639307545339296253532173660690779367534622577413765219632355498592404321420565849220928574357408696253442223044335406819434202807942276826486511268727796898170427938141397328239345167595608574686149440189325233337897973021030107457859389569187838174303006114027754367167694471317260465184442001025293216401085726118429078429477255386070753204959837413587412062760197336343385900741525472950660311408216819468544333717398490056576540562526608774373515109531985685418041693217608795160714348806589565804247055197923001291275257223248354467838558458944312368341749960724893241388215289517050804005930229001203778846396460344579088803913324818115799299374179389891811219018222041465504819551934758713402967533080470075585097480874585096941649954135440866726646892884343613128780245938581593456710632793971162217241271642408109427046061713596430683763772155701247896539902635587471383453309352373972887200970618838080660173316371579003563697572815849269924494440463455764010004980580934527870399955739334863328492379604370875298939991551092151892149552871257813871344923666284448298406742920281320196373943375722029645636262243803234272217750917596068378604893768794358597318068289222157853031946743267422170432182547936275492641959277693201399351455350194340479273963994514687070584306276004489768331721560481134166734123671561250167066903212277643485456695366069601873084570470495028836032529170974781257665245106027943661346030220666638955714128332050487124942366175794166951056610514300409176760092533502955296214297654072380758826623462462011991846006530101455272373984268456193773966884655927575994403560365507163046418039006582199334536340041469451772012187127264442385653884810686783698284737959062936174946803550069789085906396254307533768357641243698985980947983679616500989141528927934664361232521885888301934060895477919088366601099426816076097892964685241984414307065040154784059340920844371799025933222294045736723749868555136881655682766513698061294988684359104426967813847058384684736914199361996190543322977862949317799573788856557301211804102071247980041857772292417521196460916927796787482901958927816128022672874070888212367988708550681739851692926985789383097518111638676238051471141062072576310983419837387462733045473421149509011954095351230849624502352216130730175498091706621035824372779987103455739537337253709137132597521231611792429010706994518220877962798203268790256366211260990600548252849856121229297378501165448393067884907193259642377190589641969280671573100065366953255753851852488392594205871663139321696189820242501199084852188498810204295105372473203353272125306922751581790880286874176933715415896533817695160243643720235412715854366511999108235920926253296494318453843183321681631349103270999812909273692465245174444876908978100730470527953628268228694118785628422050604147084153310549141261713960056020276977036625792136057217246174019110008176567443491356485499749082474910258822502925809984447989662089164178410954824862375609867403129076036325697291246631737561921789892854932218858564773229672606999043293612794194183255852258010028024026433665669932651223072228057116463574574501415568499206337079528788870547227059924716593060431925600443286181925198089433672456209370889921797330841506224874887463712947178857171954148245442390087929922166190305070607754853122083828185692617622867941377191813943261927415838755748983038123098104933462659338721359678540232601346644341131010048491697354559811665606044416718332937612871304276882411350519954571463271527387596039136501020226593197515060559779073233812625320474994807413327498530320733625548625227801619208528811229749736075413710407779347710808794776830783457817926737990246095386567067679913938494607554718836944904680251974460043118827152093724666243258640365603435966608915921682029040612748453053569538009508495407552507435918947479129780426540513248965382573249005003841175258849899469944916666391288526935532838521979066270148480155611726522339187731237229131366180836368969518863906125113979811605202842888625861310709693449812756801899634584395471366759052868313508939754310959438731601778080039196212200023405654177394443947274320111185312491305553300951745165988678657887777452134459151497604884537885414548873578679981924878939026185961567870349215799660647187387749418340125872279525206950332563824159806031294969263935870958300098536646971529012490140195237007150200365024219178781628178470033208620726818609539396781633274363220433822905232604822065792934777309147736391719311522533397162931206691136842613594321924508327524900270731301336266692762506676041668827942877607362840940988865277777468572411114488626343158602905422679179801922434385861495472682303281446648379805954048467850335547034270676525458183142797384031076214013274954086664806468502368694465641108476553670705641113142622864064043528609992790918312537862025344257760735535738815013146853917483143531859764044312822286342526236941979728020766592677514916470601022340507261500072288722579424838839998797242493659109037041772293317723681904123472356413931448061681206650752211212092494794823355515021041485789533457637611364086605599991424848802648965559218981488641613741550752526134978474273515995849789094678005421533172986793925737205303191451114673502739506595476887384004976908075648019257379381844366521827157026235714600902829384548194888215427593316610152073583273055125388771214390010963784234821613868485028314994873766627959654127791675351766528825594864673098087698790896345061871932166262044934181687608838874618226713040532416758074429160130964727002785394919873759547381269561357549687392509634219033874740978373137929102390443009480472868571465940149378406160466092575207872609991814963082276190524830812910939217083446199406820418891722979116074014786088740945203462437239903622786126423403521797538102095563095632330781460810673277348374487010623424561354483492638095525040265494464767459358499160154448225364553493819415473392331125241290960332113454782375478428151784723738835861230479568573030148095429951900628859858826519565675943977636909562297889673599105950716773368785862477509377929335040436857727344868643590532056116066185077720158305511826283077983950084575675840239872660788457195177455725123376322270695524578651130912308198936996574850831088897611563707607010281028891794666056900493260608400754268327353817195830229922238805838203931188774865028373874557355339929682163029170709324541875470411108867419941743051632596573121616326898948218200466102586161826300032535640597762646598905755265695058239969395038732216702923080155732283243905107166773052647058797299786011315074389607730643202230569676815901424159793821538572734267113990131491445427419830920605983969060314960548755813742301687586479712500493838489476335408889497402522886089477498946718336725455598372655162761825289456631292926111287386457285274342382223349632131912372481707767675051891122130492758538636311500282583619145648358892914308029539512866997809514078513023139595229113419108161206628021182627361029495904630851301010931635532320742585658431009247468591726551754836437063313348366581354943153522438473056340365943876444672642123778471022439428233511476734075624220107001985128609203080169226281957452169973039931964322688692556083863853422783795453194352413897740770245984553268995056328485967205552093527388933914606111251182199247671218934816387323396431051981483770760672521485644616711692167795497877910820704808803214257439510339162767353483442326445839666425733612131217947081749661451105280819503249046293754381372827800893745743862714283047529460041734916383529215729354961352739260391884495446820742475059732530984310421850304143847017841202863233839257173785135017888727657281815764785332119990178331282794361895073184918916380622015922532681611988402748705009231740764746792102320513796618392596673908027068679287490715772444698260227499663941363179868449450443655106385087862432056972639415637284775229139603577026904883280521426120949455458938423356172356780274362872924862356652123253925501102014093248792921797523589577064527516034846612747554129081833587558616740069130201655655521855413748956399892868870717602765351509739939670984918529448663915985936703117434187432785676051188218569374355824444757751830938535866279838490201023962019839625682461978165461972608558433219614291064321607235679740579028730770300969608834959018327456442413322465698014292279353035785893882184797373800159398063740886161812428984566573632881805523739056047831847855306242610068820470598481945939025170829187215721771419635534147369839517577396963351544123206014805736388741148157180771505224961569755645615912956708508798222157791750786415152164807846063728969943968096345544200200849732345200771634910022323158616002393921425488967456388157727542924842187041673410236335516898981470139836484445567088355998399580282252257258232469901089569143631267713140083989654925322185116221338885635462399994330414884346869265597570398651237844429878485853645582737710192914819536943569564898795400184615140770337917717817604685797354726811794592154963435671439669775202961490547678179975384022822535773201898741145077155454780711029657194506486491777536337048518917981552362192264719831995999304883668655391816988820348789095205471013128987439047335763072990833977359501299941111810121772261439187601860825826676128700482177148420690116824133194182208540478773001676271739162221190488955198678774376044756436230575996457816615135347490067784384847717486477119148423971548230688824515417414607066259623874690212029770580556952294043288940485095760707809169414545921944464926890316995624473678219280265182453713135761039255642545379295064643043072064956742490736601267857597694931145303267431268837864281113127694354749793834033123033594808938837417854872446613621411294721438484648095112477658830119924178599303450274193941806600055576089829848350875392568723505419684068667791936710331071016114659459977307021662134905302342804062588392952609382727208622541200536593887427624845774752965911575481998657182404351221412420872916735310973801789664357040408149286440658903995118932210891228358534135679243646949230591099841504318213517089678024010780012164840145230568668318651446124695993450065228117826548997991196689393547011938528505050261649741280571952007869386435126383755268941909540232715802158747379370431969724988766824064873546950408027664812698322400435071072652809230645968704988781797311411108643976994847520201033830501018537006059417100064606808069248464953423233192028005446013692712953645980924540341117773640566580883699967307513222402837783477610194167387119416372455660603979352659556257231294005376455945374660650198315699451586285917788580578351350277116287921286364714494960052476171297824386287730341180657840244890945802379753437414211684672758977404629018521596654181956552964722753130082922051430608998068007182232518017035889767521668041002851379705149326114203373774944558036541224553782210641985805514933506580961254201842381937333624173497001035850287202719137403515134847815119668162660919166052622847142593290669429573024770832298739078652223591647294212157381473302008156174644684783479946899153088792904436180060682342093236208629408517938478316552565800977981748815552413077707861602464901083953088494812511330624594154209430842745880456556275719621723616535511712977614868816604009664103155139754307240402018926475082540579833441252108409312427409975820194432345047944205317125973370915046357514585716961204594282649806721709477181144420422293687661878034655294872949688344641214382397256843177127677643745146694653036380149443203790920017404398221045656653360937932757604043453590801295678426939620310065022900917710761966622659672104915310790170441378099072043582198341819974576279519528584122964345732237512919935344127243717690671790625239423657982606339470977319788123566850464638412462217347987121237740430487760835535387019564311055581848972354056746277396298907464356021285161161993085958723816959050823543403189334457847622179088346621542415168458267389846331659210045267136001268315830822171399126382613067103022095064999461677628013511850075515459370882909925584505299886112072031015189166667550567787571785777715027857142261405680858299138395265260135503028851942688724408250050840840216078262230421607950785331360028378775629250833265835622975735255104227732933634337013146712843174998480043206638571566980045982690109396242301179306875603111693261122541500903195796014287974693065810469990965910611300394201695423173734112660859858062135023029011318555867215330257502183710917352313907049158834276012479085206967005425302949054877486904408885344631588617946104745048855974048081295470581369880928104226827148273231485440722037246472532079871990706785172267421592337721385540673092501083923095814382465136738834659533705586667221675219000150316903928199421552555023184562074276670250766818084576035760553272159028039897436386723460861876031477463760800297901458966686949222368759827413589058650250864120715717308232449968178406515609398627124207490244784968269485560617976609504848970925818296967782251472999789623333273780791709455798075128800090299776028928895942301181031519590217288629085711788708124266947682087078806149687596262775005100287121167329929760215137719541943496086912101852075970987768437554577571757228118226345882287239011937279619529429670906005453880182823641624748305084012588662804968382389574633886053071278973141790210163082055863436889125969471148078728846231455811538191583813088303293339932904782283085154514436988202789280448736995749452897050125236318580424156377457990535807654427833387306383810803728310718367372916659084561685708743209496626847868724665762519555684048139108080346050246387804540316403800648195946429214312222038038941413714377028415216867812333337383099074791794394832846831760178831381495384268144371489989692504167062536446275381032811455694569992013204953019557577436596446360435785652327958800248794938439068017764190343540024905965523309321168745092152153947142026698038211560511912352776729858161867018174239011134348452387742265053905681345781398501630492870015003996885825204099912241977859398169279848846448998516801601133074488587803971576044597054023297044963112397224721113416394416885528625773593302385974291138239454769637008023134464386942120827825349084047340152767744867843319752042608766424900835571405493835950346447891470008545516329010187084376227965512877816691434479188635944096275922030531028901992659607859299929968639374438305672958601568478098677072777010145570345595453046348811326493295566692306763593793145639440875831576726000231793007626592871099448112330949105817854533786789639131046208970025037334007186610328602086495758268053507145983472399850628123846820320335708071407933059910424456720384202642890243332518455590977752826853985149699092915329836098615135319781057898005440307290141020860411507693202666756334144526158640499068412048926364009837720276469826400216932712824996347319700455478295980242763762538432893300649992686381372158276029414280577807904248082135408884341668096913525728288370224563882932434547086307582491678325300111149393965000959305153733969687528861690375400316803516242644479411633599621468475594630349258112554704850570089107404243170648959471496459117070421006746335848180552672526045572893835991252324975612131119002583931929958010652488526725029583032946019814522454389772902766984499578559489862629800978618042379309313639465195787924175296345716047800955997683744192238709977206752326368348205401900565167964525606405332027531940695521918796034853221067627989767991790858719846171123615746596869017390819660606971329944097439624773685028714721093034478580052026929087846245972814240643880896807725343853197381072668214402989458282894948696278899526173148375482229977143226327304332468397411773309631153861064041114018451161731955104654979605391151168864148671449310601443012840751887690742569925071468630441034300946219159598365294884880376097116734501070305303058908359184131760838445200236027710850375290732596817760050720739529893567078562557023394068083373011245975844507407034797541990444285475961878251996287284965406453359250116183228818797788868372003058399997652567197058500091921008033890801653625281455541725053550229359099852742350397047202265281884982342365588049706093588304559848453763908039932022769355973847520087569795747342595904860058101770451228905135420757830479829424596676825290132868464242897902874503438520987710632260053928416218718817140921188604244367130895226989509816039446901523569506690968304941279104150632250705295691530094591426089941095978560856290410897067794111682785495364415850159617516325593887639623760109587797141219125971883690318334705023547727916857859320287661536467951459170050314993213279195587912337589734214729252049595786981505886902494986858387894145283413389042180562660402398285138777069109956248527776788372174346441168149059006509145091281375244789702112215526436405917347263960798460398113502429682523764182759835564321971283794858544457367624813341245621896073843568555744092310887954743582117570886847293197833185712993086685013752405809994156695516625937068914799100465663924464346459757251399019526323358651502734382503126374942888178769412751226220930356963528222944478006027553913124987989464828585844877290757140155208366351876072841556574797548358591062323534483352061534722595189406579036716466876353317320634866646997475862040281984615815583037714146695016725309050444109399036517842565372853918585460335639487787621378393980518699409762781621186788742971835331872190897861923476130301561817120699988515285809395850776494103577501830779657157204883232524903865259918070765665829633573496778830458585221629335250530792342657483429747386179911909770433994220995303324996562695666292957958352337882507359760741112754648541296999099307903827794595050922570446505574215543387914100498466459098051405862632837589279156388877367344193513464782563143300549319418785333171059868383016054705437420407993073538010944719278281417987726453405435980291879303457714110285912917990557008756257885937291449881123605651646459648309856162732457215864392611378651657419567797976508794041770753624445705072853808059152324306962421375687304807186849349197039850942314368537058106795175486099220023521717583050086308753112046606723029039215006355086923837066952441984921920168795346154061686897527808761418651796120296818042587757013976480281240302632155914207997489923744030783966253910160716472793640933901770450772183959306385871339188808204055761721385922185801849783709091273278138099965851498659295272959363384838319918179784264684599035913210793099566138750156893489928111163692903058969561096683571540667422153995316328810512228249895648780270563040868701280086385796638147094737877381353484309376296912158274957346097496805022248736277717381973245352141153436125665470036937177585444715707365790784102522651986918230165091843766974787996817020574581345629390770183894521693939169847985107289013840104643549732632212957809949554943027159579116810474592188975711105963199337822773559500866352078429840370524777193493065022538114093439478233094918734027944247276247979157323785792564587093431183311250459694139470130252111167349594032142569712049416592384840389406404637265958327658139714339282953209703556778125889849141615478780204681450173199574795910447400178282045221993567400242602941609117898034375035166349988016292211734174607445023919346927424047188821800628620287746836988765363311006546354791389115680252309236796754779206313330386907684165136752392011579490860251991295267608607560551788271738496954682485962591820858758855153013345524051188509824470584257038891025856711179712002641550550291237242859491631256632254237567158889543169592965991124408892403222606208288394916656569674785808888539676272796777246615704942543084395839356828255230517413452237588124180905492509360561768561728988635286307467453595731839208143913419447637753220399215267494918644413356909602861588026901645992911627694880033295781010930475456093825895851996560668306218845553585248524839312924948561690957720057127523895694538087440047644913142680247878709816813522732010165625273665567741577346740248901908786120767888195315117043832268058064518431998500778050260797968940220604321159490443814326079954837063131322385916589535173547332117872574724719587765553866616604949539807703971875226808362234378190530652886311059957513362620011907020443570772215519423517176792062762642695701211173567445023715171792220099915261273790139156180728020905045988686730040592444320385378441284961621497486399615057435900873080616910164007863713833893153033806497938913597755871295917548924044112947550287709232167960434961418857839125298039380345538981953291519697124167294520476488788236739498972579790985056049088131263633644166952772187550160076121592675496123485576130431769040288515487807715698211050222432915392589921370702708299628384240485215417537935543068174120199426922954252397538563987686140667318319189931389927134279283327017195531253350822398365400695456753286546764749541849826884472679117106398050198403007224430692343260410719873216039338223706686389463320332943865524627946124197289149160048684662320541511428151301134724678922917225083885457254656447217654110526662908365671414025759774483099427881893605656006649651984021857297623367515460381107154358761721227902197312074205748960608020729226071683533073169461002012628955382847268797539320649297174913716629492265487751902861098004667379060058184731379789561069297481702612395444349580925353526129506248933661592968619183161471526106058831049629492557653351736193033945700393393985208656817162368245710259213730016837244108756500415059960975027089956129118649878698062544953777801288316063775846466377990429763845691607832664697968172953830239627521515704329163106588937530398507376281564754403407130140984168617408450897685609437018174775195818714007050856011144546661477269816542730522139876263289860621071675641048137640049709057927733593428394013452105922048814895500346993781750204142766809590931123595007610934870397720041260704190432632354259809107004330814552310611276986035589937048041964991791168805063005874727439185158536047015750935230434673787614763374730720124972132897926385563177576588128729824389956106467481313686449863056889108341274525738464915591041688192809400440192422889601050998662752305622058801345916652840627580652934838371457059307930800879554605431579704742658468498697355107542502031415395008653961065115802192300080792956947121196336043282743662227101510026426518066703455827624328300103040492713787493036343619561380412346594001655473256938724616526169225188450976257615861882284997368905027174673611767054754058714798658986378388953042124822969292445877023077700993766826184276139783053515703419363025776198184237104230092030440594247956722238167612122364340638628750020454908335766087965609963629774642155291582689168090711463588752453593776987108108733316432300993265556393071164329588804981645840216926935132633481058814625763872864873386734963923021846217568111332658420717363684958094379845122940841322647154329557695614679946952583803255700247545377306090373919102617176363380877372985367596449100982734506937152044912348397053513952710215966876306681490300383342187480622337119470442713062993641499532660159455040689132945943020308472675509699278274061250620186240743236628204745678452944313563106824052383695633039882758276408290140774755629711207530992073122086880468699861247813631243723065851177536900460080796573629856370869835767750599117226686966518075739087559764659863100212834548235132501960667966547372262581061380188458392141236843812419645386713276890205023306742155439144096484108359551609697229040231805769938859740623874426611473748923468425733981145754304035894077224258516832886946321686370028356605913905211297456948147233352495994618598074177243799786903527843975874817853230923612124214977927485259963872090187707202157763950503028623949536699866177829786922399138740530018731933875445654669411647835511151766453743770001649551898355973560665669682177031297964789834892885507157943608871706846302514105892722172769140075657456041191570419405401206597043596204460360533570249293602813793164406272508019985688185317526448802337601061001976436178931435314037307788993213030593024369351392989515140867035155061499714554948130417500500168923197420110315238015190848473591411868485405148832793225219417647294043121470606967566861944149596728124314684393573487951646689481341745908119978122990668210180491529620845773415769237025795035744917518173230790624596289122029684322214534348434851905324451952790010907133987058102005576780993846660215191986236929648047476821775229065529750000743665561271517184816075379290350972146628902712750186792303542107307665495829081805109863194652366479791596704839072551363196144075295723394360654254356310514968593564965602532583165549162087646068529161913022104323089520371194283455814314919909402114124126034587466095212950301687369421426095905105603190978339248418043486181914326561490854169025607561629658469211669667481169523050544809923845442133468484996800978800313532198399045315294360142234931138642500377888312723639509229371438977353157743499180627650338564730871201818993618277167266603339343918667632963366145681101172479265928537248356131436371102551138690472721792730317584541499588254349606598020790198254544952166890634248222780761042912369377110760656420628099921774637938582359888282276892980865837815628938691224053625518492477229690175505453100377842236055705820931203772204685742553737715802909769663935894363351095173228348158144146947087840839727831032341357118046253148146764689221576626072010813072465800818959701992946631410144714038470029977479201343570285133683407321887603832106652285450933944053427015248201238907882325494988467840556834440534730719762000318729586947593891522091605737128419155729271195835926121727930103108732572363069811743542145666603874096439541963473879463424641835214167750072242893427521425056531295995527021961254954496186669743286355465547097867328498263327376809020691373151531120572906046945485926495136854201322218756099855478168045519560017600692732186638746358833488307627255546558860395175607079611585631663502689090029739804564404611140595032811218924518950032004178769047465712162786547201965256859306305022304989872397979936127448228617734520840962222027079977129490565403794205426135665517989185170199484189791245864483407484939220783970665702323488784371972793075966202392427415669223894423695283757836556356075528724203947298238729496106831090320846465415266629520020587363023202686158809748208045176494637321700116364694582859271729062005599350829003461218022647979943369232623109714985300448275499891932003544008268108947230791301940588934690312816356756341671892429747351390841019675552403052737264129516354869301116401316713210824931371840165282779981458517407816789398281274567453039467095586242065448839257904262785585910461580251925344533546934428924800786660940218227347785349163099951714700209982729010963407268052715456514879130159842959504794763147645511530338559988279139324448848145091517293177980805076249961959365504561595695859756199315130900618229836312852898636413441270489243379246870900061834019554032471480458223202687514372517863589860886421562255654200995210851505830130019637475278543141405124609296589256963703613982812297540042085713491703496414042955361420517119133379782613590150045536763238943917047006764714570553928267210269168695204945976909554951295581105187093092914492604616610958232228562887930612699636317115989986723078509324868541572087556327086168359624201074589530862549569883971359592224332823864531405128548300008731346615728376162056773462948808777116972888670733357697685004574707205735986956133029822051497405638053285070150662674952120482293295863890993885806626256843883721492874785652528114540806165128960963728228165429973150428731964252099650637643333655254717602022732027187673882922809904517354477792720618561966298873276016610227005786908656994444974918542184891204573584115610465261641897664388180166163653699746935444460802624117223085472399616660298432093126429312252680739216965332882392296614605826365354259512313149403866718945135297330326656522313238435877414982878006082424437241215732987819825301032025087219565537901939227602800023452454824483288022229446434140964929159286458831016550002150317422846062260653903669034013783371050209983718176242206316727652651397622501529816754140444309920612570871325490388232515932803492775125444047606832022823168947357007538047180758562424418561708072772828639100567198157863729788874820530304290080687781977389174026587719200639029091876285723392984225660514399061687012857678118213235798549374093928572450850805064413414910460950580714443839643649845160200243165881188821250359590382108060186982218865809302474692156489780941751848348990739233785792820400809771303395522767163907652224366370348095781600524997554996135254695999429023787142340932545071349224912383071501508310603204228472124783092106422565053761987391650286512390493130851620297143936363058659695939884545810770205414323715197050625158289825584041476458155004678728769257121160398532947061802637071609261313969146729833529477163618596701358924548018748836697299396648821472397351126779330898939564082189798902469290122393738160084495466267718246694643602022940158598985434523424019331593245255131620095556521166189859434576868119358263454375426034039067914536569585270303900736296326589822011977513763917459936605849807546800533128600499284432166580788429149056623128681287550415783852188985751216976043259548478688142003512740061257301181103571174008996632241241385705633975900464388818946701499787744152379356274548169864747149078267461474556335939159020639623246746957633646442733246680795063797225990898074091179348299386702636695463406644052434178423624105160082721612607586093643595537610187855160457343753017490945866160928643122142829651021011677884167323157973291846656073075158159086961333503102848900758344975886968744080872098831606891683950356162519029106513413437409374642612954221662954126457660786512772156129911430510079076673792068812484038545520344420751845991849098886118074793757868373549603178192894184789338825058913649314246449563255884043428299883855532396491441023375479949801272726011470655805700861179226105886210648235744983118251621543399846786978769520419842188591065882708361717654480853880797581042514934362712748326551258047214503990125934117340805220850325307583222479382769118243001258260384280701780370058826777929211109796495614091819519018120852149542760214020717075321082510476273176153390658711920237123036510233114631498545893281325495886051081743893685745853533333853503027849936360864182807421754208786090378091782627449191723328557569629562176641532198912421530045214375419432516429169787825735742518241174653644790255036177609106443802655695648690186967316062014196252258494071496368037214263312787762988798101103962127102188881279703922885593707646457084147777291757202693820479482740890440533556304212457303092326462471648231779341294330593325121274440131116309821694497459984115762537694354491967327877922182525748946132490241200157390913020077865170109981222472735213894736897734209019265835527680131053491368330915532960383199570719141194062572459790829095963608897534893084953303514517654493241359656025454623563260612154916540057844649363307169634296930281568016968783618638233210527981729282635325332710362713134283303791721331278517433713995514534130057697070601534263451623028152229269006846023328945733985558159282409058634454122240134185184239457936759546532308722706595435107506629440955710685280197429607215082435200764689576157318932819222375217631714605076294612469596385083174569698042205242478070300579664219152554374031261753489829395890512465599555657542770074144031266750131744471624394692244908010437426167205521536653427146019970591097150843113886551400946819369069530735304847614352107978914253452326979087833462294031288932538686279420346372623517326219434604100824634642367017702950326260966398375533592655441930072277934500400401354881183662622679339184462801401424635167436258375087976906147437367462941373389204817159700623477558577860166839790257782596736780643630184019854765541633711077435572086687208578311535940846138520423738957941482101167098744710701251787526564659082298885044293193885793929077406081245117467627783389856927112349208068176122585492337560830986321915881031175324273912068581527825837109351326788713867832258020403308258246272871665944395334596302791728380218687439041959127486532874921786906039171493433026177830058266999388527430290889796573229652086231453662835858915990710246404947183258241711832308967223910820922504756604981247803714735390070366643720467328133121996945056806992914873958617427163173248906235747009204405104354705122630950309865173397472999339355036873224100769230629408814579307183705147948376972265648934516469353177498365991873814615643495749966521785778351841916801219135729152614975129704431299854593512743264551683064426515138064584799667366542673808143389304357123158943822095994307470580478844229497272954252992519025134359941150521975542667796975414707001328336090861699820276018546671932422885919969728905740567109082325858700253529695927782764468327234364105931148587016988149867051335011695057131796159660598415634052928398654870347275032139278874883072582105030259065083225470102497184060528943281833233986491485309743513662986846325902119592016427831093433143366368434777042991893414585623889596406241963976734006359584138945542857262838103582167318584914853321865237711406409744391338370576411467771697692731399017569917805384672024112544805190820802319053371742520462733083740383071643358654900339397432238573178180949560069852037091305584250207716698540784940002210329439582616044109901532037793007066143814897136479673896187527011374328211812262747500617357028707085485779925069985797008030172316314518263750137647722669649346899272543354628191797485292017883565115672370682962785718098270075268668793547451126131052378048452052697432978340352626987717622520488112872631776106574195546293119200603061236928508000272394876480045451391183355824397580389072694111169096894719396672902288424935823123572715991430213259547513005692596136410681897283596408270387201517547666369798735204310940692040377949691381750397673654671841722138792459197321556594198772031543761957274811079132134522199271837012801126785498024380324047251486578431782493018829942613019063884119914992623701373577947573612829008311964397564014925845109184969924018035126057085325600562464873695240068868584066085204310565667851865466786071455025047895532012562103854096154711950368080978116650135908232895524527721844774653528337556473193968231627983669127085950911290059119889279341889148179072373685811495802462430386599109364856350841238781303773051568473821087371513723406086084192838640188858328546533535303755478993400414664095446149407627042115578503269549307685281936118248887392965951780384513924914455306624246256264891120616470120104138162948393969472779844948023082850700222958029975581600147202191796264038534508678777224563196143771347063486510756118629647995207407944686384351081114307220754725534777565530700741406993496077393933681687960645650426812592637846389716445551336092469017666045355451154239016108387225218408032304292229843619877358039340514429731200943567698328279354729912323048389152801123323506496841615534090352745973547164687328369022615607734130517345055974813563458637389777854004052225900770379385286412540816931400593098102464068450218359397866222307570751217622257610239387493447245014237612285891844004699156112312246186156925731752336358516189395979974092825707669559927079361520461693943678958924050503635422955517847404017010354759601883143402544465279148319939909608140870120400780928642674855692159784841305397333299913344387718094734368771040818174465275111948540529986355187701257240665311401983286945145492297512112482402929118157873361114800377126861704890998976990048941966409549971206682314623721187824386918493518685037070943299929360610225722274209925803424809488356479782456646014625083785146069016480913367519147788837386170481330230967694914413553411829277116991314589612792825624283509140250498104278955913612695882777061222969592397385559675937945449363299186614825550334359896875283918425472009454449880563560125514206794356127878510652405787900492105259451701127876812526251404039683673458445751205996388767823043404048580131059191665325643986850646804218137645382716254379545626249222520318570647365218956872308453428220064225413554439601043159549139997455964001813467320368075234336576662954761639415300609966987511590600841395326352713179940936742363690012680800294656800602392949765182148773403460885800141933330156682380211337164550973476855361791699846338084465991888968438153262410849857951130868615138687845429482106393515353619494540809556822452121554098797879179529297781431238757997213555822003563547158294015301154653917468155058881291838673304448358769042317012567584289931446735796283503379239641719399670516956209128783046377303914489197563759437466879662469115918771984574043533811612748633023608969786619212444383606343933798356133788372489298055036068798901609440300671225814609926387350394106624977835656090960078369110080790649595378673987395676548009485427010925368053555295012853847947288789782692705573825951529816109475954115020970319927159287557074188321986398640691431338287456764498836556264476919125803237813231546824758249786344650896984672715777532074287622491697774026222246444935280170141384764728686882960061313967076819390909473128612430462760117435373408771965885496473677182229700337975781438905631553342188597217245716887404561571895075535554957412629320712436343498999985110773451238200447156615416589441600324004829196593512262057348317799498879038450289031445451022627689995168301875724241600909466700105133241128684941198114582210958817355207142900676859415431026670242840769836961008729276002410312925391408717233396345091435343914281420116235049184747402861535816793620686423833266802922013378987008482445740665779970108901075427008810994432276681798156733245110180633827415719664865387417000964849187636538480562396426204278863289453960543884432133554225056001602376918540303420364665421656695153584481020887184288485220925318038779628635267834928308829168297982576876100548145358306894837026426375990642086147003228618866415349728438225076830122578190790444558920607964622029195252861795068136308942776272682889488086892138862759382958844041764998057027432349659903722677151001197122098540474458568768615481655504015266622761349571757417031349637770935371522530431091670505561479329060981543700356118155057116649724205895195779782035917243341487371820276454484072029584367110940499963990269508876552071496285053718406399892843549320050348302443798577924635344343761027587294527191234673629638945971794493843862095808749735818037708104355321636439097096983813971233275965465937193827274521899071581331299894153443237763250118090964904822441311020657549295567834742402240492193074495362503047902913482116931061371027713595661812107287434940102197017594812559625841741931683406159758924807250715547122743128513018064543313867997697367655152612882520894061965049435182332651046224710036836945326980587945769613238090253382443466220247287167212926429638176538684364376282387698495575375737039256341802797488439451068239538420706600613320953221156074627848313089806941768956915553241529375788530417334494790172099223619035081300617979538809913903825585836119061311329612637718754171838238613697425288194156081778359264368136856418917955595926097278326847091626586980136114406209676674862651619004571409987659863671511899092112295986118536213033448662161159780685092315429703370589323818675441664037890079925785992710953031611389378325602243134474030215820842403446823369688950510105267465119865697554144864724599976319979106650920792946284024256884527606635112034694157613915137645510987458177386149462178130828734267072744796929565257579810912400806278172159156375611381325789766254112146752117644743241452209979290246076809477751511827893306386814724434072909397004076980672266094360068168596934285471382086911546056976525231170096350322084195699900657270418175969700319337528177802942657643455092003466869009320830089245039157900727063295107852141057207910525762682378863106292851960627307173657260412598438987848150204275301588989627044127860284137486306493952382594038892556706384152089380518499984592464966823902741383670364613309381599890744215011414972335303588946879443354375031403901048604000505209603965572601580178558006911641014443013855104243558778340294862980087352943960375100860965716069008781922853014262475317728180342336369343632363531762704534416903467730681693466379032654949168017183362707236044418435025888696972986985299388247134412531195056653337170247308011947153902899715629892769934287742661811813453758356350317029188688471444330609217074256830553683250892868984990275168701670409617271947913871424560569302752691330656093040108983089268035378310042582901664995573838045400828340316375837672505715073923318619341037885655254521413941257082810589310725610231202301567030069628975247007308644617176146084412102232714591678592278999161653831876583107177235274545637520854529627419061924327714674241492916384374113314514644134406894427439544717140513199307087003305731132761113318001875844077585954498638098680185305202268649063013605281487632830945121905366698242699148736399263119418649217069342936704371680542048454454516365414435859829971564442430366049462995076108656893512079361423583783498434430816710894699623316951726853946419050042430912824883404490618993321183443244583507632722433718427664624994750527907015372164479003357304666075903314857756580032492580806322238783089409645273623342568960026435126191535828727811159400851027491772154932766768652211888928981435977805594039921544112182138154633451646823233713155246164084146938438275077159076485383328175278646386975652116691151159883613794047752339093315142942083902282121864301538865778232177694396339830624676629911250774167675098508783639932704520035239727181392011731857565004019884322443377385719296638568072603881529281981372666105098489003124757579964788271825476400575851798515376792638577059744158680891497605067138723194577061054082250433693802073940509607173704709683143100357602717562967970608734338034303850141637456973657406871318690553776865136947762029800426987749298148852524228798158964302373152030578775020269919523811873908901924045803569457195253390785033181268481165890612247501361419494713563536188096838506415340875567059459334327789017686430695615511559626591523282563537013764011244136603856767463117547878984849257388535173694642532545434439613573381076210209799208261652713844047675446240295779012208899802659188782677702764751179000987778935317624413507923616085101846408382230440864417146608638138703582797622874102115830484964078965552046344502933967425049577374101447452043313619772141095412861532484197277328509282470421252768947445881728313612716800621518679290175754086723611770123440357953455410081602551058273872848379361253788168189976547494771074222770992995828348186180519611125780228780962494866593779750048393474094672768620966606430078081419664657790345832394782829728585346868687566444821940583046189089056160036684303352420662382242049835155629461296100228165524586605884373254866065452802288937335811281030335787878907726970397428046667792882514967524453629711091971944780478327969134300950775376188479897346412592894365084334308836174867703523437125743942190819566544528947176095101349226979052281262860272861107423954946411031720414802603875415251415736572841779859569446151681127176914340134763282701605284765886284588709989078538930109273658958710734416177341344740398605591225558108039361754152640821874728352833319484791959424866469132623478106947517074388463285267518895875527174683981623617988355371429334643668632822835676999638713272359466374604479792560072055339119620474764659214579004006777929839618730015338505752581535175390995537386999435810379283838547658897900937210801899522699888990746083880444335199572267203576819827587057580587079350064302976500865441350949485456326263032232929935415813045629401805890082944198512883487203259715260587719030156911417276585007403446920375077700083379558587993662686487149566543133138610788204336212360513266583388467215859434038025966233577614555398851431931197511782508022687377943296104440393266237513104397528190493134788334543951398596272043972303320974179869026038215005454861440601226535666738250373408591733306665203125932838033983860294209125767433484553730487769425162921044403729220495643459087520915095936561891091947369598876130143652230408595488175216102939617395762395519336096302822022926375484494208550529254299278171501146001032139742660655121602034158410553734666299346544586005652343789107983712330711868657431286053074177495629173840598588468257473619554230187891962659020747361834415998877104639146345667099233696288724617116475769636903041822826346360080209825062786579350182106815464528121629484702268374003630763533571649118247020656450335447038284094882400651589241598620972360570165566100316449025951805878358339659797353826758434263742074631432909661564822491443485184465792665510489081650424263365173528171201438177814838158972758573004203067914778207171309271477947981106278174923943922140143318935093256838979676948658730730923664300084422792432382736570769722769236925236222082631434535058202570468627697312602634677614896120953192311431080959074446411457741121732945465537143130255062969656830166045869664365425507644391612707913906062794062014678520329089971330773688888156966849873870283583410233511380128605286988267400137440775520687932418167842862897617483313806672565712965876130107652820318268182154110298298909601289083695112927518662584857122208095355293082084939486624586091349069193986655736727285567894432746038599625928596401103748124522624951677257422173399943503010620056247850838545892610392225587991477971482180594812910148157328150117481158720223101565925019186222761922645766969202437237688684295326198776618638155635156213300289675687672794749085171440633382922363150553754567983548453351912305964938169717412581469518268858351548841291989245690002110582824395489825296536302490871509165595333548756950592042736477852224474030319013821323737167298693770737592439441447768379489511092680764390963209715455098334465922230331776405224831267586847511753862999403467942999995535398202840839008550555882513075177367228500392131804266403372339429248342429825729728979094518435238315114264102726806583946468230480103639020496349227976276771546808166942555358531490383319849088689332247504647599069029667052563450816357018920908475029842401568528712712590353922697408734680756886155937890547568277534543627386706386017776936281624432309543902443234438026059204062350195257338746996816123807450465677450265848136147168574734865510029942269280925189109940756837415857779993353020143363954647472048028650161786972290536388542928495445234741981641401222386332307340780018512991571728597375075221152727036957067015438691163435686604697008542474893968296522591305360921618823203874720985424940218356656029004175831261983020644482074935171153713660110560657261644418438616672702008338647027013426721357668447797899354686502989432086719550200745567846125739940531671691458792038671036376111066206175085724785450489748823841226896528923375053686192912087324073211971349574368084280189080116046706516613117815777243305744900096063259381215345054066520878258548115595924317952783052874281727168851009338701882817603229378300719439215031297546028570473371273687133613128292835960324307361730831687062643578305831110136999342191040998850445921646662046904356251505011804662860250762955733280140062535747777678385898334885293431238298912271212840422682618281510333356822973143877624630213381672987385221597564331618186273225977656057449911433450539662569696362917068161769966330932227954553195929262331675012643543465451172299848309262109606220316576920823326894164458556883448731982850613871383790670251438042263127405021981791518897112059791577716437968715043111747609622254089672121195933688990700289798068196306635822897191256070611201175708806106196716989295573028210120213564298533104059585548247957600870376738212994091285153474431518462082551285803996674028481894666780156002665129934229240438431899986424498248494372818597077645508132593643997990445804712349151026411544211276515279142247640515431729344776609451696212993273251538007002156670481307877584529807935407702366617074798605676608875760497743521420957577415678348971281872032000715793217876210530326580054719503701776034135041046081883137016231709610393528997184884780514290983869239564084747933284428150728296037682546983069902225549962361897916436514867273211686940939209191481907610207985324947627331258080549352352931050358447046672633047302216051263543489395685624358145997143782001150613285952553424741981871763285409117558922001071307436166306077148156938031103742761150109622159785990477251750859526496472497102487818005263495260947720899761236479377766130889104931751114180360237872616626078056299647734365445102934328332255047712296189398972335773461175709631656328168269761379084577962999640008811164101677740916780627562429369588488503457322313356797373994289379384473351992057632909475389197434448754623356492878450153010667983280746720690875438106757994800619135875782336462619207377177950076977694764022310442470845022824506383893927671926353481818031511723044653243170443164082990596024894028125636097154218305627201809596749063768498422869360778958886150984990287048612265120829429814625589213784633019685738856204319638850169448931771982460701352743978089555466402739792278701286532002315406949764210592671922799761945147072805659549267976065017297161156889230933859700809591561991408035563477299273293075743073085794944941800667468352094733990237844334751204180778535162694155897539561860572356698830628297053935057030478782892799704585338161765447345883070716721070437637181797291132353670826962754003785463571672118923292383899587593845504523402347285067390724797625522005455417103161606695217923712367332781525822031205620843910667709927437085444694122684547049728980480455720473633200180187601984498442461841426469310694996545873858936679281786667964796746397795758573611243519123217091263168942588627049033821587708768120136700896241626811891829192585276028731192539876665531561050641797920878755968080303265003481323449304693506167759322036707864191547557935348717961402490958428135563398153037056416676052981476924783740660765533776939604471118426025109886809663671701367646269303475534413562984520994765426991517927071425530055685468247103976954518880420730706011996955697580900382176242066517550787994405271438916595975728316326834709204071808329630621552496854081696438935811586006211602360900292253700876464119113980119305285070743042490378005818886214853349700458710755494256266227553803417595198650804058570145777017018198406224359819543915528098968862488520151704562988632490594476064274913803270328357950994146887780011917864219456372384528402758257808722998142358835996438630867019189535481015832189470315670607560834157658484492843970539691362580976555109834220193245729194414379175408820081137241059519536539247854733717294786321753860228462274563395770015529029943499139657896164807706679496172771129981329172241992367742662695529580458215008121994896969009545932643868876112608028206438622327462468696621783558053808064036664902068246380447030536132349082188392432899396838429300258690900252407472302713105679188366275347665586708330301724875403484607824668032621985668813392406880593897896050472027554768578529346298751206177320181901432702646958725286889845403291992203063680677897609874261191751601596495926470494933301519959686653039321370619771244851352815964045053881549534299905050209972362468970737057867679307823734236205380869379238172473930457078372475418268620192856238557782251426835155001183006879544003385089192415800094639988769494915500731302817551651171622556174860036698943375053076469352183621857861499149187530642573374529024134835838118113534252581192745326345179329822353604056302536109079998088258396269379823401847178819072578950844006637592997878462861673912807740772701841824552562359609602683438452378570595610192315066233700400627052255389233819130910756963155068459411060442229223018842221187116785189651072692433236123620430458979669983030797863210530649277572647997513397399360152125587734167922797489147772485695021032925539406516491276647443282227096959243396933506683015691942734437754576480451916105169506019351659193889408720495615867565652847938823630335354440121678825733047266285114998622740719082776794799954277963272618758479728427378070557151036878700632874794665997817889300478927694167408872831693507809201186619702179735131428351711446854378405148396081663018791724842741978097136035967844223985421929510893266862211450561182442253071875586124323110509830677745690563153715593324540078605446466724853574584959441297045673148698122604392059310838267804371903443277739247742225847943812973811129273585507729655928701978021345566916883725430201461292913886398792664912972969207131625422573221455814913275894322979150546200486933541142641376446053386386609703359446417605245639929925380266198038668923868021153741335597974467103627916867107181002436112942463719754473818075179136366594871865945918573579493498158610981759142914919239124152703021442371111596169464401881891331557425436068519820683268988985941455183924894424612665117935485606834035645981901184987884875984249496360973897908907565331178685682310097030985757640604088303797660860202423375603809703304844482652492292487126519939185548876000327672459877095214327221383123095037411994626757227842912132522056189546395627293081423735810368813871937655517932757760944966090069567745679793892379047094355738161007235950853302949933500167798776694508967757700403106591107542554027398569515228328929734865626774602110341918489946115648373850154398970919656852216929388712314067941368996785828359176552640866362208364426608081386681027636474545196303587680756670491679170142292427627749652228809055335968514581960754924371266329131464036926790346218940600721450412141998520344511308821594854021745655673035791781552997873940509683275138757913852496806826286153014513332639399109034665752696920787160594756420991351729607700056794511181419709045194803831109373636135888679448697998579818914685917510013556821236269771582678873333983431429825485478611330940426996094091574558584575189920939472368120613192996907856919322965299407364019225037859520856094031436814868764393839542135435384012539659951322086602602442059688088880729129268312872069375681900297479275523391255231446840695565199679042074869599670011628937699283659707692027130868545397213764592605199466103297354783797111314879971585321086422358474273792601686304172507281351610301824681622316419251921314440666745427338349730202861024483009904614122075490345191419119042256282197723946994978020244013271465546447040853849464347071667386741404853333966723500468564883430276277651594782019146684170311508742041671586633119737653493240972297185956282749593294197000160635584268074331521859800187715116209890895892214223961694736205423514666759194786798601482830159254118991422952531291496157178674345311138270909768227557832001613260193721926473460876489172210734905691371175838183618711481857705357626370115904824573693915327594566542504294630989918397918840794863594364891512292341165228283496341437327840477747291590365548216136984804102584756866934688901719686271909383826161725421928467935162637685789910327812744964091561511712149608323257837798920517743271762698585969650668031752281583970369168789580188137562123918245085406819262790793450236660979656940072248389133104461138444255405345210402670696136371090708707296283729940741388546701761989724231451723339867903786603878697390710901516027825774334784047744753089416564688733564136662224840737213868871645810562506894413469690615045521596170587253835272159167347711267672772302384999172439432410375402762017048038748961657393735685170265739334932855835940345823779928459619737006426751241521092148517461409698530939626914033744265629422206820873639403233650656479437734353247740051970705715912982214339128003334932832720021125977562413633661374359117614182884837677307253145355405337229941725288344309638615102619311530671514904179832213999280722591182393721962378749057360403197242216905817340554356699940822793927606100128502601366745012883816474089046017398771346882818664057883788748550279891197859948235729199942282474307596501870957321604571303830894960144003338874342941486637654655506869734519138107314108884687463334063459202125338544746349349625759458545500201169623368897932351258952927953562401815911082768549806213007707487029687343037406635951952975537975954428261399042095554039974194553595473304588556492118088467012070704462296122373383028444482286643398970180097183340210492872796067806526393962609058480814222622228515409388652726642702644611180872026468953221606992645542412056835133691436477928020580107884103902566740073977019719252409461601980484354058859602956539543776996227712191522442227897812921091519531518135355665337096760792972449875308980744526409762086486973928753429383149341242376097478504428236673033924723227262529129671183090693482195757273351923798541245900528844619350519880183218872564981645421852895499747897516450933314710494022887380527973033048242779230779125464674831582589994755564898852670512310481794827510961822490784718408709064387255994763367874267558941317319677960457019177261801893470070984408088540832775305415134002503213055288415849985611411802908927443131846587207312206200779693399204116892004282165659490961774460121273958928441013772800077245929717411743718055890837534513092438402588324083909809013148454226587185928084155799838105024338285225167711560365493676948877418856415826673683806934531860694212535266173984019222581356817413619839554867093439753225380634960268262203708344857284449835665634784021798050224856509783022508570120412384540492165748945621930893405124068693980508624378488984146839094244696526347550663304883478530046719943977724415787732879422514173502458995445484356478824832827751257558838221475555097683939270642371688306279560401302304104654449455863681553669523125833953894800159171463899946452678805559773766308848314792570698257830678103958896466659408178805472936967391901042775635351391887210856522264487942035188779596450324976712275569584817518024482550034374072730479578980195401993809032070441491951708287147273156188335040984218598405365485166487914523801985953945443841533284703370835196901157581516548338272055354860302099033479994083279847195460537383925376218960192520344066350883535547514231424097387509246415949734765155668822761809972179303075698551985520687357824744060159507200470344090380392963863340239365879308333754212468322434481901968127876791680276812316751998118961417258414884616621587422946327551533834566654300504430918932260598761125031198496671252035755663099483072857717651331440457893839422899501846507568456733128780318614989312501041713378483176249712051837638619389351682377392586245269027609559156102966279143703434852390517151329497457186578182005484430073115596256347995857797314221366782134555009843605661357552077685837853852343241581091805376727725279015404892462125175877242727961469698780010359983847354003048644801549706491320873688319928865440731103783431954334416455598606754358138370209321603666961519265055609827538130479805562988608073610621901988859595751535971237451588222376489787533678290577925173905506439869845254176458095275070003725192583718348553585901192253696841592961309776404651015582974926926940190781989387465144733462926033719839563207641391119794660898497588576197097064580860856167119649235333917294653722915494164360188873347489563867385689720244939013879214981188723619627777548867785720869801388978598300287475435915316768372074455999886390875817686936520399823128837077271351546976945735289859076785150505263492639053026182121272583681550602890587717609606311836656358879474505237719638927776563841354499354087963461397208470235881975128926034569103712501525712452247535433324283397697058291374737144980675214654900859863746986858228076926303387172889199584136374848477512227114917209507134509443301948041264413762618334988714798459271627003055706305409636093967031380339900387170119382653697683684352117669150506573673851115584265982487632538860509846430751301826967827065300670891561523649364164667957979561099728882905075408872014207143305013146934542929918698178467201157932779455992945337284728816365557210318499910414807473474738892513651614890385727583012343974496862154091025792346026806308607044726435710518050064486916875202365955968131773389933162214165366516384989571241920899097417241362246371996955820164786360455347410743368456255685857810357827041954935007896652854881037792578295747612600220545415085914948287337493483319511558382587102601739644552899355152868478064642694046299587098827871490958783590017746033070210172889358183137182699168020775248156351345373226146759921929809039788711066258535413102619706817133165232324805156876511380863153854826687771912953889194955705877038823431318544611926005015356163956079749960015053800371132196369186868850259061884061964994233041350810071344114858915086601155771073656504840242227435028934224231039921028116527136980890462377490585090276804840568118795653826059297582144793988272415968851965676887125348818984215385860898657094755512819256778379860570390151257488361093751191156312513219203901571448900094627048731935832107587723217360611063784801793398019178683279734785082953893472255595864882590576206971308844322645796911982808257845475746831318952398966136069824528011875810579925690281771278975739309050067329711163980647189554457764129910984130611563134559792054273236032166941867178309289768759982016795756899788994238767953304700393241517677272282349051800559020085395841827543357815033066219504308179934189391425912837467899729763932746018024099132096388611978569845525593608320319097550239690856176145905791075244676695757249699721335093917091991818122521464899818640814915711795945470942143933494165303002530992819139867228021480573787739376784347849156971959196139351550920547446143182073481178908686381359411116177413453494125148107948262823735720996174630941890245621558936385021458092152849412128518037561846499927164685441791921057359668432846723120846842977905894397157253580696410131383584856638390946711282792698710832907965497511426408137820987906308329654606752277079439515585721365889335037028712520155120861999931575928109310216250611818913898436201739968033701271014488178841772546925245617316442787962264733625491430576519819942462003789003436755409671654844414164700061944884683248567877186779806708799510298568348451438511027644826853752967911311161243582222049740399626824086844899494565995331083289158400053499922620768252296218196858285048334180069348234302866993102656193502835799031721015699187035560523526081967817806397597375799998911476490848080239679899324688713751422372628752013649878682665002675651678315762242380990958870900340782146390847992190568713443290784898851591929830495620419302951356970810289983239625427709856455967795558273516305805378739455466103146147694036523880941259164670716768835531934127095609122404401002966643027632557851796836859467053110474721112422084429413127628085706352111237319361454192934412968930546302652341806048793088905722115944100427888143858242179744700699345425124728448496623384568543331117107725843261056343435369273054930114846372151525724905549623144914348926768602822651560187843543232750924719385842901503350395641162173197098130680472636958478458083027158135238010980458923469526859433287989660142550573961672843534814868862654248753503059950375708688911953963671495264318351598337887102186350914778692646787724941393316316856740264102017621708572348333389108571872700744804786268857638434803902761348174550151350543069525358103669278802265672728489955046054603713191916601166851295573101869427200624626021117861724481763674570960965843909399959800681566226901674371490854650535774886601222323646825734788740909796935218852406212243543618543300006261929939632153894235520832550698647557622422010815296919742856379259012020351069270847915927306019553138894750744839238226403898075311677663825633485382938797926873378052976240050067991413999223322299581489097609518398352727987370557369940850808731904924951884365932756212377760815608371945554236940282288485176845030013943478054912546238033768181074008681170478106516682948276829521427103145864581241682530993651963034793597852041455736734429719101918427759051939139332244922269609396595503787845080903395116998198456554771642145656605630280401798548626678343726174106099818183636371284413103537133118346329918423197226531750706877321393027025727899691493163119711833305432565174380303100744594564319684868043075022988878192796471628638390634109902606101382867714296375913738483402431584076701866117744405742539726091184402880635288216029557785682359571502858806526059828577542044376753343839263507998830535461378001867101056268881288691824245918481954108834557333918821326853669234623198080344596469218002155091437738824705390476470840231631889920090840455759202011815210783294259108500604544214398352286128809131333939335660415462373222369467477279936916511275301086830897768102691327234498076330159674629086709878838491303073432780303255183305909339983644446391342505269426182953356695445564918935662125600305468631826378572450717090611442214107276966912557394760295369824610694045729666340355702382381291779852367515759824526313016484010999767965549001024116611772948115180563902067691288146454100050976144748941492068539251357835304015775199386507918365571076727965427546860517067270174601623885294248292245920265418221472113381147747379470867973245252425354643166546299152677105225687450003049499156768261474998716345865264446753163944580292818390026323243011678173578297191754679728976962247005422678970698125320866967958418098751850508396437600614475460174205424519257707481128665137321208525697145356521222513376692177608497321107819787110195830598603135788793311285628772373029964371776886354042181264292673555274148053253833051883268280015389446881277835651206290646584593740289052530441083402261685758036841566869273308211055362086224289177690625405475421681136918047451286565136392847842511902874780624784478329938343566476300317688262726877649530045542297621342866951634240490744054554078223832226072819069159751432263164800743337365563927515940374342900330373234250887955757654709665406159749142250912020316622414534510226914229849421849598768485071468923160246486865066038727594249327025144626714250352622663949811804772681067114444085727387330720742944039130890183438838859264397606153706814265074652530103479798603854001183389836128081835023129388559093487876274470585807336119171806339518912198451839938695318193422086781858445014569243203168465703282512500901973510039430578567141814145617562724544115556116190602307301114539638038824835162264916874680258549511045335146688380552900418905163829553986307127369677180119732722918436561957126160526498113550532874937326273821616661137720952435422776863302679187284002151209931388566848463915282490415834454498701131670141361032940247780300133289026086631475036062259604424533876619404456239708474845604804095881608985339161409020346039717877548735570162137240778525238138518583692511207811515456557909224711483108099086434608653904813536087503156514374075094847602384259272646764638638183601840948857395428411768181870748569972452771124072251347348160294047349751497767423040314309409094278525716797633157744051627354923285784460278368601695357900999276961364763936599758293040590440022093481321453074342666963814543137743707335102193779260481835039686010052496229331049183010734662549797808076191614840654426567281167414813909545618995567377745172398653456255432360187301982037880564465520102083763353969699576896682664356321806905734837042104878110388644414451307463837192227885705060375276915555894658782417611028929431041550504863631475244148300863415005432807393925927191049002732810182505302036217460386213587699593592924782198454391828785937556433414687758625332143920089443829311672001715633615174550628883438986659707556537229692661255752387843332983706983125183343408257094396356400106440218043521810132288355016281588836899249827460332602290903675953464372370323190458385258564084914128774441291606471028652237280353950681744319755343872343658847740949309889733875023630268001944517310407471741725640416850580131298705982836441415257256707350514859190081991483334510540505504824317946983021060314779019081363113689728671046216101600884093589190098159830164431660934435142358495052547678712982757001966946634213423653734591468748759512904193899371784258997157905470006140554907471995290986491153473407178727215401448603866421841609570296916891386095049004228535401656957768306351402874991209877121110835350185632442546052132683765283714384967361508848196098066114633712962135291823256973028078740084687535551841865126871212939750620538355250716755343097084855014835480874930451561815699343379409664658782291509239275512822676605997462762047623097614879638607780503813790934014972035468440026736790059984520550845408695123245207224573092877375093524588324856943687389243143088408294846019028566584458643398093534191475628561254376256551752479769606299746123524087009671890353446242915734496833743328233218202078164753953760652442152278444560086641555183243537749765073506594980614537726419540692030103842666861406067515623130347840051039664645226066918164442309009438251430269732092290357786510295933326256641521925733145500271800103046641541126806528489929164583417786240422746584054379397476589491346077634229276347209106235983476120813807496410776110186480690865418380644808182940720849331632726396302035454306349794941781910131865632864843741174053493509594098771510613213003113344986012775828395479754628601908679650386786259455793631924010717238422738115166970779727452377430482248964929128332526917010656358629015231248501603856025941464527607613891849193904886607977511404277268602092893271871737186698822165431679430479857403395754144592912335138957915812853228397146023995872050385253306489389856684104575903370180966816296838878755963772647156880520088799079196950856749103997298123666521791721462331471260865608987881637172514731696719190112407246317207444952092896253433916096232590033600735717497525837583507776576890999157795692658920491025628131570327986555764754531743965708481561333262225163235755633506503257289075601343901791853834780525856501124639552950801085946193984857010988560822938567410931945673236163495437356627574357891670994586861744390950954122061613880192846652853355787699648505704668714086943224862861998207921299467046261106319131341328007697358137084815263427270214402286207876960937421904871026233465383986421801150735323929467381277766323420079977549222141597486559679757176545892214044601782634857874198622114484420792127488459962406580177462943359125261313643006342932615041048557430364271830968496406075318481112315469739932200506692925020667297028755618247014972415376523408405722064286157388263265165484619689005658701268923139956173022691473823912664885372633410121903202166990476166366600121122659277517593118927514299772714574515021930749295939245802626558157666800798062618754506485102816203548212411854511358733669558025121966624841826185326477888537125386249375999039590013459448554633721673131042722083100315560607323581322535848209050830145243379618710709580292871500748553909827770669013191796717095467633530789394281205318335531051135363205830765799665232688983306777739019400307363015451929087321090321006699218939992389881257989487034818842564650505823160438684209933485678588703963926823535500400505511001417479224759608813060339296353020929499477779311895901520572153544063761887030972798085202158702282638315992858660208032286943307620340323472743286742129804501054438567850023154641145728363480518954803054326573802530316743016884576931246696657626676505962729185108680593696883349809723158848109449410896059526666347565389300201334913963973127987612116451745139393704589672336585043189415337644673140322116714558262553669997782330249674616657045071209684773662409975353682684004683417708425105914590078237344039890235408759666738776710180054911079539461403722054658597993603221193582436719611663828196508119333185014895067837871648677600292970133775139522359801730004873097604771835944138249191582624354222597465410203969895668874571313174669780639906578020813963452461339583834443198203193745409500924084840583851855155339427271176626484904666009754788396409945060766185189859806186361579010750422817365736481345695963908022611033213536995094738971574363765790744003180293411326650840450751319123271619257207592989547320703035187459993045821027595500578652186958137574368256111017255855344728062378589751679359974218690433648899453860852840442800465867663356582860064616696492810339289651744248575769334525161486754179957721578900812535976225462085248696633037206477676498498064154121389715235432685388356996101183546002290057081654123864750525922607310374722063865349529510836267928482896682056592517667405720910197483975186936825254508205089416809755002391319664937292699978418801017396967356550663636513559777673821673880055999492412972999337384019872400680597984372064796501001982046288660396752167081188176043820285601053154575122968813309932103558159929739049090117698279381764142910049668555946386074685902434707897497451528287909980919455132082298093075760443081218258559073571515765631686935967158957880633474047503814613615103618733904807101664376693412661203876874866488994386619784195377904932396178323920209070704267038590490832950082594314439019979863188629862601300194024032205664158520582964276341100874892898729821498447662022378029968026929669683520396471660542161301787311256444434188877282910986334306297432805285251963898199613832364524543483025453945340232163205391137734016519698956277971869769060441059718641818327798825346890137411246934531461217071849845229224775239340423817303350991235920701709564003071438673241962820099313245825090968385480103090072812864439772491099073168555794956079242645137872669269920789685976983455294693182779059729809636751991242683549169959267903811336444265907516392296532542593595112655905567501460018994666331789868712643623890863049374624194139910544206885063956452839795336661826263008419369559352596912867092005583144627018164532642652717707865455428015428618342980282293769403313624141334752941983557469233241557598264461210078051508716766677371458918401166337533160717030000751201984113349597691056813574164240340210207175520220501799344548137083210094025722850357416404711920341197879045002794388772868841920384777714442207532399703409219134869037895710391133702481116530951726857405715138784241511200873970447130303713419335222120555888544094248024406366096846076922377553759207530442480499713088031875874012327398763198795897897057166757049689649092742775931858083452347052205416541890475003590037390621321720513198066472382414189380542791600124184559321404209129406382196805127022845436791112375980997019056435840399162139910305146902862989750513885300133024901874989940510895788990839255621985896576721063573575430003060677749491515799028439761856079191267727654407339416787018475796883031601878758372276380367356842220800318970317378932922719578556870206487794693773688925034973646000725109108118213735514788124975362181336783794990120116343897323001345265673093980953596677566813107019352359285939659464734081797429711223058295390283525767628913631859212688041941162008679548122904492235054638755178739969042219607320929946872365564222903470778318586947334487790063449420707120863158574296582698096446038618933677757609375138276754263265641366850348618920218238926350312356206723249550059295605808155149055889053604436887020728912864697251966549462460031766678614140340527666214023747677109837820536245628365020505198310964306942583386594314228283687219625875575987119536351877145677371249407945029395124616290004606102649059417171470626611173121278921407729882505955690746238931839654389140027617447844556496581792926527177443228349115025168306823127990488881880768767600681175399032285728732183457931606685187086296264014375401012624757925173580273054709594411189059226427980494646089391348260526086241565091600174653438234651582511546477949309535464858982823283177287943905744817467089858474400989450401924195905295245034159131809162489537946454984782369906115315592417980489409958950291822565136409557221570209878195763165372106975662112116989547128958197744594133827242530500417678292315870930168281655152414365704927788123397705541458755574194899839107764467362471603062240391907302869159983499038057417862572900133628693728022341848935260542625772970086604340489296060320131761316878995307405555750700156055711069000557782062009524057219761958471045183783514533282702258971968830120951189717627142270284334127443645131787755421334867826194949528980783943931055635078132166092429524266607376590193657322062575054636231252334110973481614955189204187974176225738202187226948211045454798195529201848687024156877156796625562712427051611307643904113434025602546524922362219592894173361367426734724906363696657271038640723214036699383350608395682581742196730253665192885837733838923783285320131768321600266981491255213045717583268034596667208649672685609355318526623968458344584701676695227410839220192657700416351815727545959775097890934897220804256003257128017104610657218929944957237509737181849210886104403414211212213910038402707781884225060576804689512716931593460554682020926295752850049021312029895983516314513488865464143856261275616138110880548800065422946167232512625838772199620535219082958916277054059607580553660920361866452428631793041919289059120044605397399379945703888469787411059780106245240549667318104450069480693781208546480559052663783914469472829870533206960514664844730660031808263002025723677438900592109865372472337062890556382386907340541087730130332983906561108801894589592408880837661002332282299498576866883924508041366655382781701088563100812476661150792388879362462937015728114125798227893825518762917070699059150398270384208290653584321921926255668325347631290309508800921784054986267684724071572815853007760323816202427241737873833689040907997226361927882965139231680016460034380602850632629582608288888127202274248268966727336376791508073853879612307314036650472060680505582693190051602839411970356214845982236341734373481804747296909875706829120271253135498791492304949041408679416836442449251221709366146852562204468461446579492479849890323031102420857651018205614838838012177509350815378428128669174179528218445258543239257352712628705127937655347186901263795589811735047928541381764375678256338800615028391661855088032495397810060205331097210379427732154942275256450511430353895581315751039636397022894301871524579604325832098921511329330155738362305192551155292702822129835376668899990172608702629724271959131925502175617421212383531451655730317871262705920522437674021272500397877371843933787754035040078901091472005456031397051052580638815392954059838769623710296625477283801942419472740436494665321485491458341402665817030294470761173042865882159757168721630339862057844252481535838899614605054100623636898061866716578660529097835910946896183859438470359524303016810466909663984922765167659993573252497819203466898334504384055110088056372355551475326229410998952432896950068382984396347661046537030774142775359628892167749853636702639388023958351581239661483021299015705092675025562978825620797229948363359795467923733520224828768356851723881418601146564074133807788746642203277058537266692911240139502442193377964379399917445372815348756038820336563968422614751324748728918354654630213992706574496704815288586002870701183983498550769822510625071634511880011479157179529083790089632875631434922006270318885370335851283433856511363864589166872160121011713106951238007397106586297733356325118545020709848783873966505072603031403857198721300528819220765498695812405239076720682516886982430534324098991050211824572833244882551711615687420463041870236007997749613558174932754799255267533160391024933408519034588699399071438613662938300014336649419710342578721297696090553145700609544621658857074080149767244833892078484333111267798811935105216641038474916928367198095860510125138807191317538806417188874337349809309301585320071551135679500736845412892570593344012694006154093541758757927746347764552458181003478897184473184000389218797812529009365910147489488929781282375910205845477891277010275905835942027906299971248038166233624668829921837185548692971794146596345441302609804853346802201555457037185832857570656712390672672932784974789319915348506081053864906572006536739769742463435273884357650014732953073911246389727147950707803643795691078875183057518278577804293283850441298575731661816095541246998172052063160425587165749026160899950139477705189096814914029563388692862601358035552888012971223228303044011116315694723453442133807147629324284663671812284089908160913463370938768437777343276803102950572334888443621929362506174921305392238335393124336021115006294551695511350427953494400071073471373933394654290565121947196115622593509479788936862838477993047683448091474427222028463933817570998858626800902151215933191078323556317354345898706344815674849992652290919142708561354369591699184634338726693200857043953401726352911068099342563203256604314122056928544764154079336287469687346384129177353598989603752308190564816015641348393920914278141288391384796560915452838001464081276068768977920820406553236244192697894804139708594550828349389543530156972983489552340801360108275408263106960023488946225545826902831036692210368641184653507004333207514134380841250314870682787240547944768075276365459674152674282683322146734099626377595065639703465529564434844905397135440714186344758514821484938890097192557231593863300779180632461766372954067735202360090816980817066304042077997606041161909499142562327106439302500701405552830444479721853687783308489936764317979467724325371152259904606208228655170432533941655490063380197243081727165045715321882061609765625600085737928800425344378226131350145657641515249688441150783007725667178152554484936402878318938140974344311192193771192132572403036755191078381525179244129908832077478828213632237314322406957285832982015860179499273433712169748666472388150306962042256354582151385194521694884664984401550805200658327730354309252429855712369452591353782084597533653683501409626187499102635680811236995900254162901978441537654031888712365244324524600047866634166473371549829575562241808373883658124145754466738961875975383006463297740444267569925408251392761705716068000278562967724148811923923807534093395568632067650889334475459512698670791537302616120061854332270009102726817111150168407495789317090390739251035639237105318842127178450603349395481847089769026557198830252318071644290767671658811165833084994342108204476362671742676323831209414122018499575847061833871696181948512821989117467931100123424700839640492763761949512169090953493574521721065804355394902926327186269092349002216665034423639596153381102339696328899007533052311927138304517637479686777436090538884743176850682722579811203254307212690041527783937938687017218471961675148553518232005457399328226441241875460154021059365272775142906113762011129365450310844407253295244916817931663589063843293579031296890470834501594114154069531057273968625563927161958085592115613403248745295262160609889044795267704125967536142516087525267004814389907669162247004512518266760922456045237753227937796105723539289490550119107201238155308024935083549733174044472900750380788575563098923845872480155653712700561578575495488734856236103881868255488967000573291532427415010359355166658311622549045770883107901699951199371195224172116963991228285640201340583220237930240409954970441690399215337482516296271051040684756087212507139549348477865184509243542907710413092492717635324573664331601411995315818883718409582415168077634376073844534445546853294661800868634442072502031786196525090395622649323446658927153627294376317460206420995563562558098996678801452024611436412830236590963740064824048195756314004104860536701080267716639856836065594097472896274651732366109229304663645406389353186654446034403670308388768777726427460497416884797349791983623439425500949788602517004886009911589657695922441072045748146604410084613408514396997617335538085760216778661587510140572138250546061812435983129494999256814742207928034612323141347072589882009509310678161573284413011961532542962326281664837922418792073467856335916584128757931157115040301683297169322274254084232322517098513913224178848993589425093437650579866734226727385014300558701988939786338430676368640100742846670125861074501134777687060583192116189811793046137293279090292123392569488728109110524144174810929036312129099674681286110113475678238634118553901188608612907191138268503552792497943625588303709683788171854463092127256133444403820980102942791551298044897924055484550681861057327546743110332116774398405402198937577643454106102472231779597725720729471936605919035921149508727681465340381683240140057274460514161234514602190448853622493544891024888568660466296139952471630132218970049445367136768947350276697431646493689402437611994218174481452703697416979401325132633256179274958263210974637367389635325393486135222729946115319976880566947925866561469326461083094349961805241645558101033603202000059011587198640528028416198766707120602799266388091771881281004989990297562284266621512722386372951645730286455001041303193402784014743296795940713130863667098283784189256492158245895552848255020563183689360950417643291921048291366256240556025901347972589914748713051724034612958633299507256935246681489319014967137557756149150119273670209174079390151273566159917974580582241666279674919725772147393454414867575038088978906881406469030176981187925265613923770030785759014851121482044594880706434219078541803749554615744300942176822112071408008713890404350783285105732461700966538474680209942939280031104889474472375429843236001497512058941439106901887573188870344026533659622216564308611583246348428679268348135750499439613960377451032375277765082970342419793655137149030897444024345107172803836208642923468871020305182474094137248462875706067488134572018200749192716887980846267660391013457636312782999763108428571099054022479961434407906602895929358336330516795579061228245759103802936988525339918272416486221758982691361687473721302328229635811573289717829015620021475643370836240981804147262828370635975107546725804290368637432597467879898355146409809292213114813940914941639214091014689326563730171827260448476418638422498199367941766713182352517275497341908510124110503197236620424806784685346977621686736371068037888774509116857670402083947709011801722357622941604852988684022646433754042580884040741740563984812374893430946890863572672915271111910404582644191715374023854782140433262102713074860088282521013330409144521002115388267063060252020002000807252541460540512708729856439220675820431851373579688387096299119790804807072386450967080670619874489514667089357219506541891154520826203156543866271320772615072551435297359361309872748734771337023866907506688842631976529446257661432574123571641259023025129270701796309864493110371665839961169578160613642596466240750050723639063222766081902576867587407126871737187204976552877483399697289503766128437799066458751147523508296142064759660894098506542610187051386178494989515383541017972324881051528696609167396107401658120553857688357572942319825592554587819900643563833681388487995926049341750653017978206670970344013131550118297887520077807745959790379653115928331755426354220223717830943800800290531450264579865803685747324092858827952216576469090100852373917871607029303275181300410361975713014623107970060050997700540297159284926615739838424611901176549536911296778940162156085341680941353484209679190426734522166662477217295744118029009874680283845976562825841467640668210134687496261793771705174678217591791301643430659771482411792072405802164864347574040680936517138400086213667674207348845162510865660055520049261837579504235691750541501632792893823415509729722144935970619788880065601171911476860499636522894954215708545008527560204275704190006119634438805850817525057056667153627076917405995968565938487251180122947015476044908862579698805887399360309177552309653202458659891870163067989930132506958343679044896167872173767303575432128720933375915251018402448658780040783887339216617031957147438164187069421815110780908929129380370835772214367955392376139852989853893046994720241153804289852414898529882095264796631431987330458274846008665738272046441277564581334749120655188966130124796525856029888753253066176551048661895552150126794378690930626699332150349153638240895784018110200375420545962781451085160765790772316959057129066483962186196612511387940517226624629698869237512909845301605484441705681739269338929770429556088208535208229336666492894144968713100980997621890681135827509396420207380969689737834975663649840809382924006404933734851392025860882063466397285709717196704051753587143841350009741987670192624977878959410298562483030601664527571101261662183500918103041475340517844822840975277172055797686660995041285205274581375435372365580560945193076970118181299661856026543991797885709849313288864880863330926501077204021935703029733679468670482801392495516560636354653447409543057311135303655939197657999541767203629989692991248541824688665682979375097813467111177150956478723630151032129284569393329075707049132280289357878723185412349607186541570605194932660178573918708244919947043087664032717591344657622471485619045476706301805862816755750152292822925906345311882601550838478346467435258331432046857831053114341970503820085473629973835053804234292328938493116773997397695733080174631180131582136383718551238698453981203369348899490699660253281296365747861828581716139940624232976784229042158836414314691797964184714711628557721759397021578692296395391241205502975472924590573678576331460511749123339122781895649888873131211812520805211624752744183097439482186994383570854700434426477832095354841369499355632324882345590995369369769114095682771718940679645616317912870377609192388010587505852632415081778398624064022494042388757453768742159014984941670134277890307261071888841570031195966205693438324318868973965460360795913275875370922321335957318892480492000188321793638679080164334889603083382094492000430171642660153415946699326955922735791224697537794673403091362692183801495379331990368995189372737454651723962146271149497907681907126348318802067635784065542756916101745395556217985716825353250688111674183666320670330428049309934539827604773105999838938529905662241417641938513459556055916814394769414123254627504026637587408243616778065025983997629503359671688994175400283408606692042825230879565527199512779906061275319128774581130771088319548391203794275454520052169723213535664500829449779008137024196557671128624020339355563434131105001991586958174421093370126201019566400886497345748597352838293921378479766945377664121441294352908148973104136121658137489394658666699276006902249506475405595848499512751200319452235016319928021771348198794984477334277913253679469685039025714388204522977992668646212422730081897873597483101539228714288757479794743724663424748606718134557204676960019753486366105342887432260399850929085480052953265837693642237130611232566496610588354998152752152305760472736780118903606607188053711211496856547594551321148112705730467471703181489942944433354226261955574230464815216415385862559530836807402135458989781842567538886190797135226014727696005113105867298429954563534210284943540187255396558991191843682737443519601240439397578851891203759986166833955163810767167237617371877726629848336547924440426539139970171605517975718031283228565297115371176604257509666106637035691349819412643871906168271795659474979211937155838125636585020820278154152397254531636404936953981455428419958682659362588475646406289024959639599797290099272262550791087789222397155081041298944625156151054075525779521878723311221372973267071144300239707795414580698300872533100279769479183609053385841243580239633668788241436392594078814721206483705752507890907489952155838086662904448498107820105342358834425376616100518813934218335672310573978471081307805169804270871642830393880308957406808020043246417119794450907575226831076615926587571720666050893560669062160682735779450894312514248429675862051951567271449582955156494622094629824113833617625941375405011732657567573473837932937069496173983513266975370751060045664859722095673080111248415127947860195480810629244112124461269076332613471758849378558245552400861118001970959740419550408189224388736100617968415734896018798526157697884190875878567642828986223474727521594379902391772822719831019486244981586284360800479141565482749514499387838582644935168725661089935493582124808292095000333519548742823704504793666370724917012061408662911773357375326911657727220086610813786029985179530381336902861096493437753788705733786867965070280081597497166199922376380666786645919354340546947247242424435966777039193033586407946066786236523335964103091957338228838436748112730566532056181102501879810896922422866956968655735093851577637783035432805720108300428186607892701971912429337022412502897979429683534728228603749521272068995379644166704732090038902875677741193287025065558850180137854248583913003818562088395970828681410698583266184479490008719582648945376741963330758387024217566564286939339699343681274219995647647159664867071472934991797759196897432342756856763514504971298371016919243720203441656310040311464676308711613125952736435330255331390485512186280071321954113387561282292656622875473997009147953589756454378936761139307700982498007061184377790969760907622942081813027981462171668869477653197304652024204303683125346151317735801987237619943578267560214608581714154813346315350901651789411879708433870259460670692684640095634974136728918962454491691812044087498270122148256277601775209624350760944420273114319179899651540668120813191203580188901515819937670651808972197555887672544652476887763608151748975828353280222207770433107373102199114385631282455518947586543444047158961668078045418000579554735898396193120195644594539807106098284710755291935942725373083049570982453637366462252754912052229588505425458054082917843187519922974728904985101531173467833451010798527711901100144035058766986643603749464491356981176323620221680589243353232801435309682118616525469053386469866290372350078273480371904194994600480315372476684643615802048913911050069947693815440401663813017625293782224297109187506121467146356736025648204685580902363770345983893293093076917096469036528397879898042629508161220117956171043323622274131875639546220534945947134203808032957599129818841746884125831288768675597888765812469788185285190285769434184691004511220529546774134152583231749300643625220947367383575684481652448457662520022469651595812470389213175040383293932454241761699486505487818997404978583008753207161763419430769462609386652767548167651738287874105656571789283122813424053056833455719437090547269372488732047951642441862062987591449745481571732108456963811713680010053882426139230989415974540190364978328457680249328776551555518161887670459698953675174289404293281169065525934840988942051078915656911621416159721399475289712356144844673340401725631462470389583745367196625970428888384663319325202856156176723687266419793536576493718985558163297897671670912380475375457684889577394919176194260676154758852449138166114065569964614035545569502758557582469986312948715735051043447481095949476314181793312583398116080609929256532408782596733140174007002774591712232974516156142072969472570420487886569032557267751279246081659643801134386936350141594935073052958478682119855766613223192753169523386624648388598713161624884197722449579948689554152023031180555428568527924075048322997681187167868991054231387033243453383917670694924500604062818116931402978952174726713952600436196044772418505597720844243692295910121260856719261220684089501121006604273574902647328613949591146723077697717635309239136422129486072660955628952834193644356215645976190582978768622432232638234456345314641805429204725605447920454477140576283499598029468174527742546258897368296131450898080974857265186923915750842647588253811691175586758609227079044124408773618918805375271892660089019492257184474823243898060048924011357182849284769055759137974446413676552576848506541689609352071278492715931898215884805611547678260980003651506108582766301630458531920296567274873499619987720483265751150157205610891296295872402544335847030989242120881107019359753476968008955164164774984185616639102935771603288677210136773470653974551942007455062878682648944715604984567812485761079267031271757093666809411784567815389539777076394739822099098202687134690747188045962472989788372889194765773207461899090066592851523153093140664713222867897142582934523658493870375044679380037972193996013391567085787201379611585269216585219689379427310814233917879649530428460826935175430247586710556646220432017466335283380570941082283171764487749642570915368274524643127305978475473081854293526259966123807347314109217171788038627861649298753503614587900005778196982411700890503725122412489361864160717600600247891064544640439644525108405683795619718171546954478228652943354441843058800099829181292237298096589975911074605248789532928067564612107103307518490532335832023889130331321174110314568351092469723046933231908948020835215899968931913620546691614683608218008732479984395233217270203060949825603169040687042648364887115234399703326781868204769189281614362923221786395814694010148415134584057483743157515480430787641676976690838955465129695867326812635583695720088813008531981627182429359057586858342478969329752543637308176979982639823450599595507419277661683638613773826004129953466635310170600511782676663221395212791334261216891051539010009692516819245050273416946223107891916945500839548979754838272942445381890618950396663813543714686598123601282939532880420360915856102769716726250825934850983771952260291605883690444457117971530756432168530603228604611463560428642728147718525362441053003025390873366594063770848147117139651903239996439303746065633619003627110054132729643695407165695859931773411366244036025577864644749283578872951160868387159513194250294610345045941663517234224630113231154453635265331996386541060380358047924544650740706360348228731903943772937788462252178331292988668718028284179809608053215661444087133339272683236859898816064729325824081004359206916097309164300140330579716677392332419378285329737975980234212129219725496443574901151230645568615272641840684391630326720967214055851662214484693040299305984451341188455626407024041102393082694526944459009411983586508922949341938641083764172082332076300065143385931061983493551400537012358619724093701269178908142924690971433739812310121584460034589300593459724179170152985758327297083390917895276644883852176070503837770834384344414998683730067179064125433828047912265312948941396627249864509405855127904831130565360186856918072366432594071164713465006488138791191042133378998724849072613001847525531465959231296286666694207311543328881454875667070094491413791916088612362957196396282658207422177485608695316956317384258986235890012786995727971869782572781515527499890288427568230654666553649335876822370612129408325080594917716698050971184321642757773236805211738842593475253996084519521646611167786664241647065941763159940260648442401648920986186792150413209661115518973907463282143008679365514351325474790265611986429683805352194117727248194897095090489276038122439394686336410578778753778624843653848655640825067912080540145471291820991683131842194588264646596547613632346990827227853948606642779816505420812562732759394772447935532636900379168462648144024842268914340824325812347503045967624033708858448986664099483879627204917232784278586404037626876213461602447371411976404644776677527124700219309844755770258451084191592804938838919361777104430479263427817218109037222265918239655166294733400474847473030715542577973360981288652580932529516927216710855916127220953326219258172691474428152376749114784718269841321187393720421183369929609082944577140921613599633591609314695340439191289183143378442238505113140676143191122141441066439227047940306653072737156409077992663424001296822910278331398490407470777488154599134671097215329108357725299750300799821797489529983587944267312059326469299592755129614513878025551668772927704633712561727654520106692133909849422132705481058750076513998359450721510699583410236086274459972440158626376734274007426758991956415175309045318139940798534349116663280148485542896242575181180250682852218683730919856538595355095303768953015291213399842763403041004694451569602718945342921353817603359524969912167223339518168471990292565892935316182969681912779074754888582282724873816264641495034182740449656245123369404545033429392519268377250636718820292455904573335825154088561591610256224097035732195051471482947987153607299771672418113360595534660559580645247153950212569250415890013757465284124610567734196197699336011542110079371506806718009207395445305047032320141995466955663706885995780125304718798451734022670488942438882780895340470447145357818526729123595088362455059667454640452412327576638745800714602121735763880216788262956202371127748134875896091476737503248213806527599776654630360354446803307542732440414017436128204373068724479715250885965421383652682345680520671025419511052521796335109740781382549841519192230419899149981024883786778038494334573230836789116409553160567884753856026564057713325749270696943839909226259569585891309009657691603100654046279799090997131436258650940490032457672394570437476983291826209957845484216220652287830482829099223574058962625764738518087727731402308444008499847477097078950046125625658537274311731031664321216031675985090745114690960275914333482731726542482992687818313907456454357101709566448568819767526228916232975459054369207208136788935958810026632562026818341394225416274191769778241069355082023099170231277101471206195002122310318051725209574630954143398666656742310877900027196958298585381636321850875457655904905500470611446741047104691181640698621826596368198881492638376283745449168817773049428804710573007728247695776110368395362305197922480123136159051025516413564732131427443856572340222858458587093631740486326902363508506665590650588566581697569245762646255103841994880295420425868616058365295131012694952467387691070745194962806852103485108631748966283418851865028823295673508033868012048034488798194037195445692364725264155230518371678836946173633765394398568806130420571878927245001355792754505900599101873428640086536764825669191956940139318080218336300527081605570806710141939736533946719246816878360762368295754061718005481529554670397323821108887416322337371888566011931933677276037820874389955963476744911084794181994902563331157183427959463645362592116117086100877808002844262252889493164290975153251132459390766848124380406344686974884752517476174226763745249348447909189354713877401771780999990569613857759365257621946820438310837220792150039172405846756063820665705030216204875600607841215151540264764604410145238694059399336656338206678763356818488110434967362155423614381439859038464705295441889259585505899732028762023019863685505605443503504010674585051751478496522519863720153381230670735813670892103485888075984616543705220749532043816323596875011926048228155064020724246929279962781060248358087836649944186481409053875987898249769368788594491782713359840605967324714127108590324022388896546761207600601169142934498730363840924755541123084945257891843165434999805574346159378127834182347147674025925484729592370030367562789159876911437424514613348664070726822390363360157907116714784890585044059195482050618884488345746384781608593540994711779225210162372494938221592875394738969192137758012309722698874209407627933214210068920848473139312819731017832793790240432653641684977287934591308781274731324465120806398669299421985071137629213774461855920896737442420835375241713198216761014062553213234974566497956443362337087597787534523044643676429830885262867093082364182098926846736874230601932824736824539633949851565324644200729235800217701872902761890265313018049777342288951501846625885644919290669905887323861963048722196024540257580229140120587367852961907751381252811640427998073772586138737902783226651158218827742609456879701633133233453981699466827944192159834766949256290703002167460043852635062855475789844785201815539393351895977133467716361140051996487050511439737320332440705625183943955002126382857833373342237131251674374979805653599090843751793131336455798388026057729153591607729242019506294943952702143136744395999102589927297387015829079415353768738830908471666017761033630471475762311563405780256582185024252016274651638982182648193694510002690517990817360354514862898398446800443482172713414039199312175427497256636465502050271565199240653234127176297709925081210277940532044767046422532580643848808297396485406756044512796940233726544070731615240647686039923040183074252012722926046189132548233014492990712072457657267512430895365185060042753357446334037626899380548659998363302538476727672247363634460955685796400135560203665105476279097601121833797622827402613292081343686740307255511618359741163025664636325764551192958464680174059947608049281037068927044685582163330181979761748852593313836322799377597872071148907160696481086368647344845056480524046936811526792313813429860528888464557004565573997771459023056605040892197298848309558295712129922724595455155955493635143660454926068546074378703619031112702989320733211236212721779102239350520802450165621711337881004012847013819254138424725386377585140908337302735966477059109180483676344271123989946508138118982777356619338800563776691442301650874233525276090488817774639387604638410735262935885165411790920159153246518438486338947685876151728395328100838472179603960085443123943193572679974842420754764966701042247025572743306574557746660114881246180619934098060367833761006973973900252352072872355483465587091905799514164666081934531290050978094167018761880994152864963515069117476858593453018864674411841808080467264102626103415182929209230092881367355574170650138015524330998250700134265977232583384249678938412493117327583866012107466282392792655744953569819848927142789314521900587102606160608038383219408747910429771225529384513448336638450609043893122896741235019051024825598822304484196014576419500731081000858677403069741170640752942572869788436985214182905496336581842228656494106852114126486386252950558025719707732666650246195699553621343987882723609880303356762844610692290303556785369283959657125062702141929727267142164123223794791722850601650156871996032598199153324786241289701284581405390264234980044957165919210268508970089243936843474516781836003351252008091444330831521309912127259404529802860406026826839595136623236289439527981696268289524866865970446704561690994487802702516579576479681677512098802644953760110891504429149365263639799076879488267709158511610046739504849126305113971873389976709942900003067218843822123981879998580680801660083350725648775493702044301228325757921841071161025326445069040221779102025841660184014868484897429600249607160959243786418519860058544584103893234637540959552339473884054349916133230174722869863622828154360029794457347591334260635884742604137452717582890144195435879666420681589434773283265952259529044933024254451730409160807641772917335375340693988624176185973377688822964208458276365421034490866384197026500966501637973020958628657774013767595435065546114571113779829840138369615394615637459519855341598356342936483301659939044583405845109928334367866674745654326989773484485162154926214640430520638996136256248586122892860264093527752418859551494754596349119100421082536319217692206014025434042910491515282332725478992743921598925373087174469946093943131417506672123583968683911725897920756096323321972559664613974122962915932850756933023770299441945632294356208076384694465887334162585663346103863791895933141637984883715963306786811650402637282035970699941056166524453095339748987241964395074383331319707362817825322908860243746005233111936254846857921091760303470239994764518592383778921231581868471770170325545578790583187556398426794783915561883564273297671008857375060981552143819145646604162783093688895612691656093593563925665588947362682320212517652018343124732496669950058027457807947255169101084571110407945081407078599401687141893182809249223581023436426076183308625025574561579255374270114121769918130225791168885191818372735003711275288338497803659746303527052563283950868297841988706770261088084719939615500958127805880298880942376108200153081603671794648533642458294491614504984206222535241601940158287347334865128423341701816930749067730892015989366894111595265210130589426681756523929420745995618347420450600112829242300186865483486501907338230654092652290522746428281579693276210618262552688849627987958747281759496630241780755086747698576810147849400479695208709235404290483014390942821092060139570434262067212554849315088353288239718554815288441501083805586302580508269692544502187169874582166758025085744449528270645564942005949789203496971708431396645781407620855787698060261353733504570142830640975631932608951062757702943488043257826579469124372979782535341137395736308877862539532757626437419815909784367769821745335698202678068929635922876754558686767901719808380959106281079509392141243130079583285891515394435367031978152603002216992620993006526781756293234401968003305085070803056988360738807402642237604274989684269577976880161875496325244662936085059151388046299205732774645084735621086501405298925024227029238228881082194508983318640962737931066687878260882554690328238561508515640954238951002274477086139413964253031226928467422783326197081138050325040209191586647556992548793698550748212035085539988514061908966165644194921712387167385266865409616736410893392588298506247814135261459660319652680583831547618227854425532178655916789301172256038225449078656023206697219731375726823184900433633095008074595281843413908825981526017844208474097946356494950936580546301138903823571589723335969632858603028886886051646615976993923379733023569592659545238401022612225604961111455427050387881510310098805428843112616431304255864724862754567091079524505017552852284035224703320770934233561592014606157449662650319759598129303976236954594111977291007568074120212109829742559011307764508734078000789279212523007147217023758563692953745345838671789888252852478740795968304425257065284642914528357181992737581051239211388957946772669970324301860743092296201381700026993174721372881496090230341070077427103254006679714474880982286765121262537530329010203413780321132005019097977105122923368413757394094222747726474976509879570745653428728743120281930914896314173421881929099421754075859757966250466729944403210371153213582144973030284144076711450158728955781218082014043872385576854082924108268662156107200217605456780939467776958167098433385030047624901599495731121302000509169146082023367559465142363043649166979905825503518834696252725776391973042171321983319745807430958410865091367245324430663062065341081792643609246629455757734840026455540670669926322486526861176079151414668336058193381608376214067157869007112435029145785793990017132561204422076116799076403182658043783838034543675528846571512244530061038826028765846316353132382858815791351182976266909472133184025014919540296752742966251187613835921773114234848795754843625314788264251966423739901007740331645912384380319380982008716522057077762784155195653496094467366037481977046808895220670005100584833730314425534718835320108568926319447956180512045820558077035093587079890502289965832788310022348597432945275718131962272182271941907454365936310566532744996411444680685470840832254256969394385420745419318096636773538689500445973106952193039528215088429796982464476520495085940147972791375975154174987739884060384317429260485830244342109832247538084324512187476418162067805335069521411210958912521257150384478273070926797477295721205624816921073661966402149325919820584793013506610310797769612354412703536967901563546514712647191701816764783696169454194943463377480780130648969996542079174097297144441723327315867370807898781064311341232044730473967337440369509033856493930410789070502667011176108930415484840487077993188619735190465973097957815675258029689548789094687017261295680266559257956005804843248633504766974191055523329777899889449822253072666619990105249577919549083293343421299801496666716548289634015336027413178736433301533882262356124203024806538745579424499851464566507408889969650707100134012268029663023753836750291095365949438927902939558033122010395320246353402588969706418466903271349801834751575922373705119637936767091352160976901813156234948818594074172635174899918506508087942524021127004032170844195280787630850342323560392042085259306800656777435122885702254435978662347347066934490129199518882898775442292451227592595427048762063452545066031210940739729198353448464438853475182749305533438592180373958588505804518158707894478098867823193441210958248227495077482414805864003592618549424541584725991349528434756105630367079925070953386712697724859314807141538675062481048668005213493979834803218756537426302787562156056267904957594766078757522362611619094198535646451927524840156316848986985146492429495318759012918426308386997663671320847288120823998684277960168096787400879052969366579716196830498232988515823291882319537333866808776240275297019257493464030394801199408571377102606139096781104682014689653876192991004153789919193403340558447186218642571325100335039021409254183560029334358075435538815378514401264308665967585683349923012791127000207199466881297380944057467010131901798920463536145811206896993963153588479457735707057773860547177469635533906000789462159245594015420094069671412432153661641216164910863592257162809113694957797172502152335293504257139166437221225847538149455617232996303713418284609745441809294384480759202899281460394063903215135631594168852540214188794081946362373544687093159437317943090836379505795329259168188952022108346193644229778489658348771772500717739626487572140537795579091438121847602758644437877975643491736397134669566781714489891888417393930260247128690874057821938149502188396068656707556819454699112293811275741215158712194476962997749589059929177127479757157640574650925431790792026207907634927749663135605256462054387121925204393108569594920668855372561770359248682167604672559165768099989770084022362811190546828786334187588277144974268941916943544859597974752650881349593305908342087077254431790145060057072510170266782998263972039177223844281647738193667338638381046303311391833682053325390854743966258329532452078261240792919108502235631492852288587140196591860847872863131339076333738283546680528137619626660703637370808265073169551753836764857326193305741041144543407413107833313163338763588705652073012323466267453802379835581205176780791236693057344539384573764151290515732061824635146935859850801796287049259046091287837984196841481888587013751346100345541289992412824300794124514520428278428052567178904295369805883776783301073179429880940982362019267538841009001465854456163023520137856045943161413429713365409918598361290404309583018390444805169164879766042160138893663703879933387774029027116366921078047253358022750918986706835026396601416315362628560115521391622551290296072072803419325474250998124027317318391519233204297459376125034822182609791839586108871258512249714063305751330625871537090379685790796476538022279323977172031885720544183636306824518810874236465596065787573240294118463771177105871619247214377649381892350215079430041995068194925852515566046835626503467384094251712129069431789924715777354783568472619025414288486934720088970939674511272724037039776856923885960539490612786494447878549102023121693429598793838261473340463731972618413055736204008764654239385806512176467083362365109164012783772320000982035465731380768819565520818868520255194832787927040502449489817080012976367874739057353402892262051801861496936451303461551000505464071482936058944439867403605158390514837626162565300828643645879950800253875264354479862524199414767225640876329779211254715180312684826911944489743616478386006883917311156715613518736326677862589345671577223404164266943663990597060329504094941661068978324063631690706389642012510777420378091718319096705220188272459451467569605519550290912109975675823454443972753130177433869702511054993533092057703988096536911240447423388040480144882444223094119028958992929950461942435126213566885127333298356848823252864267388741905041189842193970569033804102673541575124810354675710426743682987208002991727343865562812791400456477928439412783929122549694871925918427582243486142151118747692840105207188929169449274170637894921432536372235006526343355413435223662557903454038777216442868599574760845513383501134033858537473955240584241301399486426997814340215185607598296345293256956203807002727660837444031851833348772417987418522645062382335847969300454571379763193718568065778080351154770871140721134346508247774341329865498120285760028135496205917310123989916243450430376786235296103332541085917621308201104260574583772561453863916012036929874805526069256641470646516444961233902086913231539341473665922471268505935443049606325509961226957821829184341527346834252446469169648854886618747548520283291194374622736718771985672170074731442393422927049554465845737165808074326973509825952744788229677851575262675224446511015093384431288333289439505479778068091636682408013172008372217320293844911279431134855313366092616799747641061996061163093106898237141886222587498605277381300330257277248193091876438323917375515755033036995037269014665867088287549237440724438412114301405126681515986157203633187129678806230992671569275749209862859947787642752585778891281302123724110433005771519092266505462369845904976749743449520735753168948349872561505803444799344599599903101632644418551968882350816457255707291051111129811776598131975558984740298546599401244956530378431292581830015377684223599174082905679282116605811678806617836452737872550474697573128931017282257301074290436718867751879510852089017433078715468715413425600998053355865820423580134751343847527424224429922812229112289648748821816272104105764231026169608950538580288529199734223836121205474457102479187842342701863192960524432876502570558284954441084528398488769216007630118427317899452196371657902892468844274214342304145942676015140872789092270589964354365792063219498621590973303441680090652092334711661268060701750087142468020884307528941656381324525554950368403691696318926004449243910704063329456694788580528584175690316795831355373168976273810924424420541387470192980807112115515959726257306692235020082353781708749476197209167788359488072756860629720152326741538261799514953951076374227965393883767596456778176020500456297346720001378155817058714211148478202668284746295512187100612554309244985062652832943378885617651672542185106438882705751103624788441239255376788692707404057725770517570334726658854712193772205836897941948488678823041557322771895931500708511662393823872908614404812962173021296544880099531221334435291492300030067940752223025187246463983993657203830997252694352112534506744054471475935961003385313493135011334699401172733168200959282462224369223577873398988040450206158808729636493577374147743814497060313290751913788055978433313970365231483945229055380732673226119118686978781317524043599445992531464549205861008623773762316106640630503549727207474685604449755024299588541127657279616946865218080365815106875769370652589278493233057041912548800097064672129196256154844297992607015126600691042931040307495283522425907678000594892786949784829631534326234394828994706096994585650084964936166276739581457641400607963005355865262295640382280698963397134941966074336949546542976863272184250550416042928556733103131555525331821225770451058309125133938800557026469025064103911590022246024137777814322857752070175286463416915343364222270860836000578832447013191500109757268962516199520821525308713707092423789355710267862670296146963408807728006733008708521081926327572398604953685583476434719088871229630919648731436600909696850901682522379125334146584075420733208351659572579769439137303702191395791447603843726117415585698124375859957992959706954227315947330482039412045563789967130579650417230217009320829158756867223528989991415813914089023342720086784959235757360205447831310337687066947224285884404185703970078366818849114730080669865309177871019944833464647052105348475286494052542252518426150370821017792771616058401051778904024502661335228460699174999970123276671834328719025574907143462523373815808941217218286491414651045676540485569566505646650920419363659920141663307951713729379815266090592843251917298156890236456102589854887037152699586184753496325898071529434937839307828645241586827126202202151212143215880299723896139511340475075699118711470406208882491290858220516774936376430730964726999904102751101071693806782151801060665754626002942361274570956923796483542180989064802443033297677717615567468386322459807297834217835093981333563829560131694928923549141866796327258001697882176050936353764140548134245719640330368131754180040210691877105090917523926547943599055955763641901335333179985270918235356501508331701082484628745340970947143043855356097547450302688653245563982409941004047095644077692374847723037795916990487438394723420318626480802999757230412598078260544223709851655912432536082330512004668353262048912929780313774809631769030681557421797758087539498349135105749150457197783815902438959148349950207006969654980749650069519138481191968222368797096838417224418699206304316580640325837790539445482686720253985975059381915662836797562125112963904452822684751261519755005963989891675521142518268635971312560794692373570046735071565947470990434602104384420861871653168424537664452648570851716820542656360230966032299412912171172987108909127132202811842996018657770796043917664092732614785563011449374558801975448768101806499161013950922100572594472476373844991478699158662271713129461271456407339859466162996833288246703854410618016981802339493706750275568309198090982507217827466663722151549001497579784018761968907316184548785522572804006088474273316273730398342560185615262067527647765622494853660441187929673772825653326019745284305705035027797611436059483902282430854695214944524293307191153130886563330948717738142581961678317921635015396246208488855406419755084180328275922131116491629005408961687926403952126412243097124132004527381715401661747737076252547304564852787385779080990824134571774690766526111524846740212211616327839412012560859738020006098944033195175161953553781270365257591727687540774339749497366518078821419261690606922326377463458858983545717690365613340336675028723976706378252125758867639947029652009927053345554350305684453994332791973091747342986399891886346057496086535527968161675279925060105527686215120599146805608478746511143858704537954991373951680049260245926328790076844000489543919916046920670125371545313455615864427114039022008084596973575775879265263470303344910377614487944061113286312957287403426776250163361517486481060379438499867566216594713590766512350340147501553807546024310874288489295659894532463025737014641313199579751495409306732731738733606594195478068489919829869952167396776928719194583857499001633046597718800861066653992422609397200707313708238278034010049760122539372058927934006899950112425713718585039650681283328816520741871016701631684140198499056465061088679438152393715120490563557444973216697201720340713376468267632608327767969144108342213824549597680622493835502089854067594401477896939534056814557902159401440732786013185792693922971482355847159815123922980228731926625991782676871668695909070241095386392380475372630657877601198462641674044886613422133990325289990657287500400704617992782397506046543571013730231082825428345564025372338663073858535821689523628324419219668481363900791338461542284250236462173648129804360346910523462729912087927470658861481023146543955295351758331182044167347082361439508575915654417116650471926940796679985396700585476697252627597417639791924458881643601621875839555019097054041008265041445780788954025030261946172704830534400844220751858874296291759284968677075489440377444052079553538552961237711200460005578640067978876486226524136893128292981375554141709927338020973736063656426914071174717461368003132012632403463633383157143982820121852068298202608067761453622436745822646113607214162658358361174274142763526805038361180541458632314145601889337917929194145619954542935954027695929760381154034624930477899805209762744780584625410896859248375158762355860451122178075633378819716711475616389448586188169719649564263046164106344860016154248360722642008845264638371124125147018252598756782762700830079453135145893395940799170828371801002031683710139794525083610823205198017176462304860473265782212067137673595981478115510389305289596749150826362239893057739334160406212603419707139624401869376298858066189202107079695455859299889414910561539878140586448318527540433743259939587292235900939101681215667860062036911396693939678323940880252038460267731805255157046117059910658482901881163920978422421323943422446298063165343608680191303570008810284334429425032427175629464513949906167423838634266610879636465538183278964354875672921200360283003039226137169218082511884267164034600644431527868176648202982565198421815017164774205419849119443591785302110186136363626375891886088857311067656747103274302415664018788414745607776950962915632200374722829256260053901740343748615450502280394103326010078398817533996664409683804032017768627320233737842330490490236845074236010009994944171138002567992915679259383698063447825747953963009897758721360057955031320154296356149978215353491744809892968064578189070086723031962859455464242686613174222616136079914746690957143221754964193326013389057499046165504664357472474410516283685783110902804475183186776405277519069109844882961270692360548305472541740630741541581428862898472382795486576402467565985965269709968065113901439408228894674654133389185998726312807695530377041759900971360265534269386595373778064342076365823228025704523405400187349328700450607426025359774725757681029434743018504164634072843391127825789114457233749183994916464150237372850466443348475444422875884935745457377562815598856824617456558928579805565402145845722559678900842978312744668904364483146943863040419035470083750594183652248468889309073991901068438148410642765982065163115653518121488018390232466072372369086471792322411257544261126732887126060129742450482204830189734042679007433261947291572695257342770052587005064738833627179688735737700522245350423314673720620371812448408335359071533502459357903802313368387703084239295030680580573989649030962459308798482925290484816330798519149871536904157144483132671065481055328186098845804903251765093152466620489092303456666089997884879449043909979015820697378069220960646357407292424358940168268256118577291262134031465542692570822012954649756191384731262564668199225595366711365206571930792712798379245899735741864128158328530732753962718771016986520457827930898498002326433800306768019912925714374243092114036303003248823968363122920679545144912061982008477034801760433644346130680890215664200341973004814728474309992737525884471612581193475168786637865583148506026286046136375231753819175034068327388123481729095724840255732525287940874784757891327140451296643179726365717926891409530440586219199012720107758623756571896834984273276480529305043714523399181496186720341915692751261721782159795583894318454379259739088628947154986359804361510275566983139597265843227511319829176105723428514569944970799890430989451830218853623374355246384294270688527043541092120274092930381367757561205639197625536510277525906634041229156702147306387111896229398195820450555168739614447133648815761835007497984061867488364222044361743766316849740496327910942604688182304549352411406696592359100839506246183246791943996275653762966592403248768127081644960747788981171889789207221729414424326552038370423499736511882905991983902256925558279641030598475618577473379035921728708863345272358465699651958332354479078091356362533457501730373652791609053793464119722811266228010051755836640049797687287813020914652865542709671296018592010641338003276719131776727293152600999623673139849726902375044058670869410473330009847539832909097367733659089040882542490714584813140323127354117733771197684549865997702146273183059672422025942208366566303998822695797160297389624942226820060023986797101296203600999568755025626256735048884906052699781052025110926083843443579962941676747851594573487353045196075474050715870418757035656645548187399483304678191508675136972155697957618899253447412084888024822654825671461851945895356914318808478582248212633128023535554159433639400886992392182980961734235444995663912329507675998948662339981972712619859859687636287897387661382109601611813867684555339239002032973658180517187978364054953448608205871973389514260637712163071075231393068942146721210723561328332469074053077035943525868860496731517138676365408858580851574891938681122913655186970811727143284749363335852011204328170305359428223286129687485695199778836622577746518832418981093632544009980110096772421550071276829521776369213358816766399996535086040489405388553235478469408124661239681425946454330002810451322777424465599845957519666244368418794246507200958906340691223078304736196128071670995696632238597864067056627792197466826351327681578058583751349554387650216754816820055744632904564056361645268244366492769878033528675836285396065703761282592171189079716720422748439253584826547367692946228482069343908812230995948632480725662545407780088162217129321428606090161162628396542089732961978090151661159774059676951801564593863824816310583619195033626077924598115072135206861319690879732704413189088801122524763526433123792228249984849171080676843807772895689993816982623714355679469434468498652700790385732364175472186890594431475400965275262036307624814858639979899266601774100412773330315175109652473601721089206651973245460393328092893763821527337600886972388887768226518625326908173096482066000773832507284725762809940716347200860195055913532983956318152123706679499173901264152740902842302908709505820014366835957702126560539406838796350734693261512703972527684803794956214920133078367429190638049293562191383193921968880962143883729069968326242653242548056802957833574787552173855673937743938620787575641394030103445064425228494378089188421338824229229203293118885682464240551749306881665087947761930575845910693886397668040263854295616990122801085978909300001331468870576608375186216014370608676115064494252311668550436572533044782119630773875899942962925075895489436967665086923584834963352972874767890054189687717740973836834917251262872205981707273189088474207373146800110461424176757732167337343135307360024935817442219461726537694305966086405583639345077995478709132902869813292413415587116111045923270053983424161103213900154947272024143494393663177034413280926697993403450911169334805193701374593919056299057955611956023925804746723598417457474251009100700999510474469436212671695136761521628462065931856061730971446346388389843337046441490363898309045627458541457871109074443408573717780103810525102864497807538820096343026847159554820312403981835550544673123293118275499305776362161153992618088126065565543145779112844215194565771402383006195401696309303673254495785929508524331533510066999843343193723610719994550790609194552115203137562057462058051334859198117339100312252270905600636830452017868554012791608367037875900550347969038665839963353761274701945228062858265288706369697869544759259412850120988364969432993181117459508864970530213538060216592827864474300735600182762837824152627671557964719981843497686150758228531389022266058481189365122254390599540361837812951817817745647011866004323122373775890074352444017634248681355146698240500097505311242532164505266875893213290264364781246496975259600060884459981307129774956875769850279112291444992807871158545297548856230925995835827858345458405012321166085626522985949392466129271329890597287032762441468828193934926220249818029897777551995586353674221577873653668636581150716184296949436393148258722184616634525821363270755215667573732466600070160855681975512661477732891187052377722219287295032467945585114676348212823278851534782020835188055480342396192771203360440173847914342781458528430758672445600783496058087832166420319215308011194235964823341421906080880290371059826803610522469112612792362138386930123056309646390689497709024255508967767553841070587605191635360253449525185310499943597287013846347787866050769792806127056124875039911888031080452699925272458522341183676160100962509987747565233642464577997589002648003236917003235599731990031731789823345683579675782237820286705046911025245455152520155974176763330540604159980507929490517965939210751027879379170030203334540615254376150889895520400274494016118210695754606881361858183825878135302353964655724409391768379667746633662414146978243044660944352739414027380299082476421786778587356061907392540862349480745978260087536909407839645772970067471802580354520357206217632093433923364804903973998318887505669546182319341501306193725068616166248267768598365742149999177566365259547371570404568228492775997385880872459899706982414772323038835382907816571790366074250726298379650136833359299106615507737435234045025865559617730301662335009322218658436130779002817012069235966646496493016506007926460398847844479330275518468457974439309815545901003815566687580038789285334388984298417585479069056919756646602698328452471764491777903816709458008959592697672029108367386558134713644620435091805785054854361257192319315660194044966466824515564504463564653026155630094197244363370970160932691121798256286838143624077010114727512942759413200018405671174436401645256115321157738929577666170769455952115612119194300155262405132100873400586897464880419696202182932433058003091320430497156985761293893478919471511928546146975019815157651953660279538784481408097581416313901242802636082104674719637396669411994181465764892785860572667106782863127263660598683722368559024359175320907813951845249588881489204499582395237413197687134839166871538220071965631932596164293831898089299509507052401985693497743514649371495134664197884601028998949423453204983919005461386432306418394038216889603919211509697726032773005531537357649990667134275707281355620751918561440955809560361650487112201787340458460236679889476460339135074045994366349454481138677247775048245318976026894303815291478577169852052552998188992324547331626597750714306040350151276073899243206253669816455872094854421453819029782288093098467261056052659694508340133938385328347172580363200737819751445387185754473903598164218992517168932577138373214273171220757631749536765115239243713775803373149620102650974289445986112225569365179785424045486592159762768912772257928367529588134065980730199382397167736421464181675538353263149008173374102729986499608336857121068128671934725776472546708013117605331888805427807099793188069348480928661374981050068096823864588292221416909382167477646640174261075497739085414409861341495004090944513794125883856531151420685893037516797097983155805891602724513350563009198067861920335484478588332516885307336306221254484253024259516017428281174314667828355642495614404712305308228448039912265208527202687715733387853385685878303217807370353986695568366888032614597502226660022491666602352551564455001267966359103427088359090097615161408373930185410611696438428320096834938469809839056609123579391322617221202232465224883676596176735390193538189388514080998234980336051546736838288083207000649878473773369556698945482256502546347698096762020248184646930983137242169225399862523579281882200325585109164959868908946609387467055735250881445758073916849747209641240095515680097863270756158151366530353127073398276006099039651461408690068239452823996573997479646251292266227472284475801301807668307569711923741295482565605390535367062657309777973033283511543051874449833450207929746436158594118432457452176388646289363655673457670278602868469918285480584428544513321805551700266988409579392520714020553895999499526982787808446405626528020552532669720921530199867999965387313720522225828514876902271003949360701437847248193393350136286278867368467260498344859615151212161728360621688993433912109954820225851243744900884729213989958087369480408028974501009626036606054569276461270118657753691570349796593878803209975220142804998295039465134347661318380611229092008985564000200061528354980010143424098789678877961058279194292057657146471491226588653639081588421820629832228004915281854540790769493899559101076857666101625538448462133819731201275053794640252360143662273097462733828508118818000871159651542169953335921556859990001677746612451962455722459441995804519043289821134331117415594177395172555648917934196608988871342156761058219798726858342762960053729814372808824487383314273408152078591182519857019543699710043154660876311877002063821612135013408435291097165488550861408805274236503484220226604775856600469719067971813504736092293587000441313874945435201652703354503089140451707512972477369901922079792902435969181242196039962263873012696152388533114748433902300148964588429832741602388270752343307334931304685855037139460613555445199853943558727280993114349542472841843168131169793239090741016256991808051949169445805980898631817510375962077246349112911203255710983786332708233919366500431678661114957383525471243263003322444076677450728561065164369912507500511583251805039965106957316097862636611213862725496505435779002080197205203479399144619769078922038023374717498001402439945890549619322625434043078414392776863416959458986522077384890023205232839255871242628597915597579699977257901427735741872830277149177104959841825507825578979808299137328843256360407503787061601344185810523450613688371827271090606162904665434742704084058114459769260559399057477573168189127398932718808429652673232668955129459938869651294510458671295627233287879413299440794365169477900815960878767863592364848580693812487768119976763211274240862908537491086032344358986421314488583186042724574538498499838227269135644975003119449335506472801152176150597883185631465796095098488136321529242750673159504229257632708440694877986654511055478043826794911644768480976779505108751731717051575311530669026207471404956442028984632363090568142698380165073097910103883322515478541561781417690594201228524486808569861785272655273297129853248576581307345989912701446731862107351402489924444101874651256307495252924903581625735462890737178680398970037356013217129945796638728365766388859290002585318092914901364041802591673384315503377636266054190614157051300654896166194958080798136806054845033254965907673852890429323743438355161610635861434086299623728690313393626800972982740907606327974203769034603429789943744515403401700143235197524232602168057375715538415644909061065477126947974325563602291772027771622791509351394327832776887536052696193905543062676822238020492921515386172543161703085850464299509526343202981022637491502407994517088822646599896222160384934825349318206072661110557114690364300250482450436013037627206537063946793190209533839030403202189792362282877707315823283185458403976266303601177783942756097566078428984502272313891332731289589404583454657811353556358082429668531754628627071458008262736509782146866489733401039275330775872911163223561000824606032875510155526134112477280372939494010281846487772088838823236032380930409832552282536339032287141124886645507334855604349103769454203404084581678622575582903262838069613329789374447489579428654454797455615884474037502672301284784372191045577105766896225200783919887837912271234496278236848525636954028950813152618216526247943295239605582997840514353062115607419348880415743167762891573498866845587348363795849051214965931578579585367024332112454511038075908347646792831049617621081183151601855994020715079981864750575339972074563733974959007867739991046881161496693116544398893905429897305936892733854411827585122842610303768081743807916133548646606573386987745869945258291913733684935695169973663238324930533385127691479461107350835128616205406759033106458235833378311159225091150284343261506765954436719780114600035265453598917867160785556307569677469658431723079378395082422848374885600302075253796277239528797689718504492454521255165870147763223224615574309857204949010426105799789824986951029418110755005177377180613481378698099850428222259875011582227313659755092386905632642767006589942522847314528277524277255581297621295172691857832257165995075862539317516001095208680710240147818732910885714617595530863247474655651756939308225610343502888877019254806497661025777039873431146316033013181249509161390075661638217256183230343846075349854913485749786285115458482673450753169806745221514377505282268533381065176683555847085141425533797202669273521976905535207351099885208105106074434613549790004893250057413690233530740578372071474538358887530599689062049528108982847941769496699791923249922671290502623160717359551806124017890044004250087286499669811006130694405026999776348375668514395847241728163957720221436196860046324993053376437559674674636075375379097916643703307012092974311639842625715026554981403026665243627508192677803214413496373397496115087486272639081619498881966893942270392597496418598415339434004211278630725290856468582853040445283374075841684738005259688012200178622241318579111798809495692101708632458595931093960116210657208939464305574014794733320352932351690371666413498661771534028235038364472826988361803749081462969960233430755890933668119644230618376044995023314944911744161513580455961881460983641992036197771530561589544781824937412583683919021524794203164644949617020384307507370024604178375405251988343511067513561264482267208229193312752750112040006242452386990755964530316623401467869282187840858823383707980196931380753344646018403422292413621867599448589341212142195794936703517559751270674448543469881245913009252497974280869026606852799543728302985514277382875762651877512155249391548874066034235975850203791670511152032634446279879004280387968520856500001533275036786625237578826859570715711345647891801293660667460989385626693454659559792929723161552698317607992847925992316961704516076049538809855613862584805062578121447945421504658594599069571645998419460296828237108225454738228198650752153722738987678416640872756360071700021740011570855665831447516837867510208038452360021724444084121714456019025522492759957086753999241987114029876554145780537264813246069154299092920267479784206343274429033880514858123746374830847415202747785353736072749283989627519131074721247208902539934269852923200477382952265534273853973014231907165752331422772323688112365147266088877414314520735666963148705327054480527443977840701432319021033792358124328167951333589333203320236861561019001450986798769383701259027376035173794741111222987934909669187307505284993511165911585878859006572910552525009968487695612077778758978582545625648812483955775335102405366990919268190985392363162079241998737525783888129607417725744844893949330051216339088097496421791926406204981126309560321132441046372672372525248869619453141474084145286741202966940512862648991824329645918135793088549488241728162004186741029066740377160224902948580661213463843332556120457495720796997355072961441298384281333560986408948730560425252638080667005183484029290358355902376376254690056746964464991979052851680792825144695708996372659075516635634323317673243690674281672128081833874503638955198620295666445561511878597867326802407254830118119934850373027983632197842708178910964024158506329678983312305119760923167920316207672923501402800176871597177685283663130831354219263892303994704569489505583309374392380457985402711926894996899321131059090728244476554877157776297698517668045588087032453178246791371440388167971733837345809141117125194069166169262210907874463275653849891815835801091081660360246361397932206710767552801989625646760976173192754772588571650487457279110465311652500456304953001513040860326775412911216760759224165135129429424800934828255844597143072855803646737065061942775599809427935263291439197577934768858810660196000892670333844440202783693942651137501256595531531207235110243002337044174899590225917811783500973987935092498092333045768335821347110215473536066078788532379731211503361844910501308796078729905033552713209558089577803488610562377364556615639064978886795918751433512066369289520018692217733134305807209054990723143454985884173050529657070844243526758784910558553495194825544379993588177145210236582940651932353234623478982882947577574915861650244630419812773604923052674160888966984125491829598423486568354290065251445777348333376038627411833195872758514853893332719370274345438819043649834336114200450069866952866908550920908449173417786377909479193240134055436600890988417911991074745092685703660344012468732888913996572512648131828437362847235246884094804805616375840300785637523952906153071060449046546127514603588163053317434396545700367560957835072449188446497242579596431008587213659138680336455268258158624274740826186501863658311859091707340608267495704922926625207180715603855729874535964989080245865210199695329342384933310122038985639106421387627799155321390245347643873224929892969907968686018557113032368850983237070736042050639688547150316315157715384956260236983414135432519239266279689519040804385881412307879983755147101243009155238845849313154234688874776595943059039500672665825930174060848458395278408197088251354328089769113481746424278249999116301741336016942679206611283887054596927097282232519489494006071966027036579744856792302251349302512872003217385048282867697799548780022612610539781100848033190738299324965359341488657791794702824831953493192358054762063076880758317481002799458024789876778302346370317320815456210061940781351243956789354997634080319774907870185659624260377479119851191555056659387047994915469882625775836833461047524626112452272111574711359547640963567477255266111839841447130866760085870605443369609578439455694032764501352277421490602461210152715228911910122833062593342749704657397322529278580311659781972244598439749521484012084266440312385505003505029917007130393932653913346384352414952351112394646069647437501486394535522951446139552812657939603517701469822265644724865258342210860835547892408276381203828243768794702694835753024594025698261267891167838664565285992577668632042289977665580560749697778238636105521503543151377478554610324800775677365750421171808224225790384509133159913947797068275668805628506358900527554887875791705869003877172248571961081678894331308560458006847759226754421406698706253717777091082563263748942595682032592576046159118619392236311854864088055768420212793563971279249285314103748702344627180577696474283466012964633849753440131904742672811330603325003025016845884555062531168479642247977012438398775805971145863939455409220357367546987164203975878902817780720481733665150170685367769059608699158070391044064811582066353687935846298116756065572373694418840382696754576972174814564622279686377940299068884055020651670494832903142684901372252832149426425023672098211320292973093795187743468684514698925857016043727056494104580730555515872574217662652747646272612115733775831321145625234040355300960443418085487087481586349220692770703405968806243780224530891038787743577607516524347383292967306376917786357625050255014646209128290552245511277275154334629100652671989513434515478240654841851546814439158550821446541385160809364385629516804560588563030948741903197579244127206667256732317813145879422908580043453953945292910627274431659793270129449147747949263647807675574067853356662519806617952474831267697228316140819231185536886575164659191854290231525001570164330184502939905786195878792104323703162598318624261749326280297222356498299369739596945019317647801646351623038597295460815464481192411697509207159012459628306275218542037295495183022267779828202002200113775035281283617975471290246630030577537158621012302687144782858717341513802478875836829192633109132318949890465988884142768528437247465851238910610900308951567355288736999255915044113184345961635479847305115719308619414617506604541991984266602742195227585843271828508844759859540808746945109462163036429561312130505703362128069422731900637134028615903939533159458559183753226932924887192343836718767916628537028924629896582226761066932502637277869481001196454166627899820882679399064265937019542572848531323448788840259447739338240655016119486333113864648811973653566279956330160092486812294619074331182011952005070092175624997275653077681617808348597985247932797582859095636113983177337020757295117731768440380683334663655829715029683801189183567194214471923890566799418996753676416139802191767056473069593545766679958675917049278946751938843869573547352944320690722937330016838519467694441622126244420551180196547561140073854298128761423304971129841329053384270942411773338560378540713377123761767353776878345472099095116136346594040044408720452022453611742726674870791769694839064930030645568050043296415750163297086476396342491703072014204877245334032685495350936184499934090317615252239096813041120380087019833778184695476571093589532148178924382887895566208955776171369667226059030299214195047544593338485028952691937424313146628145578986197009541216917503823188340715639609310778987598256077297227623955466418859156402305612686477784341884826555708792603175756588458355366387556554427694222906923185119936933855188213389461448270183008749954062602410316133236570601562751802195222563795733255815567131281842168966914982403454954730077338953219007389752779587598887491094013161019911924567558166069247387429814024886389520294789421761676972543789811839265739967319318638299277554110918743486592574136610963308320685928351995070285467737308388694539953268215090575861930859436651998693577082214098146663757476692816425248853624699740486605146160633056584270948687645042753463317511364198397683393339796058132586786223640536863875052314455075283666077287012664368288634475235811151517177983670124109883968620257585787163288222382850098155780951586394005715326605036685664959873406456888005633898510109657342290775794153141575451700028180977274478623637974914710102879442443233803326620938436225567102285752254974339129702968290082288552750998274659405098900350047392972992809394507559083631772372854817321314426877318777123237990326786576336817472169792576629248271035184168856264482354071668785185164174464036920748396406716629193140221742968719822781367448369371223137674225551485907249398889555548034371753023480681777961813258465160577916392278813294671292738879844535584589192273325047050755685558015890935350182718858433863067357095429360340303624084049514655350359391422683982402316017955673105692334957976147620347325478202053371635150601858890716406336418813076299776170956621824457563361742969638366884549879518105999697000825557528715060388430605210960861708062254111256809340475337238292848007005158767521342470127100881009862349908371262932046227013513666849492285233140685067144153405103250665928362449997716291843051725368360622069170720122216835910488377452402314781300225183258923413722700775483702252609324146496492852901829222436617924809506125850772430316170903091153958064602472854469109938835494154170888257217071879526735188449226727488301900446494767651976445002196751131086503617989507802894934992127577977966084031047982681620547628215669854686242329770481268310687794134627148394870153833926730953771329489022209316471999452467613286764913443592597001719698870337608243949134276426071845433357107143155395318148829140409613759663205666651146677765311287371604505651074397325400749168687294112851228324571686231647290146894930615157706172363011658837267792444952484588869360938358167607772406019067060145093831893741283489930746200057451077607748719598087942745741003157403024179821235171426574419434930951920646741983943726756478915570361004869867040887771163621062091042932746938967493243231579349798326179260382375038983203819263302580943576841497542178977014291912625908761987370532096131796467623964398210435027927002827495486035145560388901612805536471178563176498095601115930401307636377504305251114308881813566288444001110046022037757267103395919868425316203864467076407388460806270274842277449396212757716756456430471155727294029618948849797363841294699611677411627565194908081404369171525384970098373193492364610959112693331707715080875197588154969335267106989944397267929239618832431228228450094785099968685640450251590154205736970165978541170271789073692692361428624017050178066642390753830323075856421316895490758972729669629382860194055655447111345584708387964252646975270338697958891272659562202672801802393703353348712981496148804341945904792252658853539791416232946787494266375850769842314441942338033074625884910736836462133070678723772263255936218217079013455202013165027176044645517965557611429246811924256010212187291644001590150172226936539901192495776242336843112316194116016530555829893709998306827138985226077873957307765997154459083095038339585027477043901614217958842103952908781004944273918908348957997278243143977601830062555983059149893192308354560012054160933378016801270613435434105187899785766507122508065302515986336667324826891369734215385483692139718681813555304629418562748739544432952137849754260931743507506456422047250692223521449594708497983443023550625880959575845070502956438408426865698628491384810505916145751714618418331439123172902550898574005910386883353901987444833801568355921472008686814612757989703009376562684585656397170560665215904246224374699684014933507129815271932522706881345685236649158223338188083588760797525850087993158253971255946744227083780457267926664856474294693750893028510788176360005233684537708377699397383392303415104796430019036965511359236305103408175852185487560395798216351327801475095376256155787048180094071050266623704229657575112569474492518367762167083222480781620940715119159902021405012731927301263125045386069162662057225227218964931978215902650009121665699252059316969005497026575404976035445357827306382364850905922849207313701002282108566202827360760510432714780770441271007344757990079826143513511790493352878160647174789548944600053569041543761128268052438276579239152534337395349384562766968695085989087828448387006385406311035620222782897989720711897636896050152058694137840599336062534189525228240605446858097289765456764912004493406496939807692299853468089998113412130954518070338564820908680628455548175675506141261089892983675811998477053673523254299083905863598074559597516259316342653466671743215295016393614400613332065339664724222036939893779898538821779560523392663271177049900766631270593643501685400925507086376464479941455720307069789337065697954078990798961584289669983933833372003713108460498989387073870109379658372833328486021601701746385727631016832150988002378318200344500288606699504637813159070319457352080704212500085614443301924150785465183707922446338957224622533052580656864309690738507044641095345011814738332405859451524174049672460293617031775444539347222566202195501179472977861644724426458852955813825395590830409502261787258561505064482421235592468187567886404561563185126136095592022051097286384035028000167584365818442289280928805876491891689241022244618279045598421593389451761870332661667104657184851886954742562121748355154880143886409423491761890595441990453052689821499884168778913374869108084702636908365155415651341683706945575527723573419225846377751766700626957032445007170185797881007972539559446154060291040793561916837099979757953409396978669739825515132302893890213138170411312689845486005092414837284833062158050113014533092172585625853109647484891237148432911368924504378234783297341286219770624923889580098739911079631050941263963267270226574638260829014284015161975327382122443962449164397792779168847389448683627484434707345884651023795370573355150672009175626382033693255791956633930228675735096287657774415684184013014986596208976544117932058832586888359448617750995905975895840342709248639577090395387583919906509698987457927450409622678987350798176245808287065887907633976095484441591480119638406906226257260842811737729957012756978838733407413790420422744161839531661033631346578148586061987976015873509112477292818518763538043036037101606699314024087445655613445725998141920814957133598396588993843572082287533365393593335565827139691471180735502787615785803647397052449782158254397117482306260721606339522524124722064145503341153772190742449402850623010835787243512189667865864231691966418045342727887859286876319566395667665181077297474426698360238057848768726834258724269889453267024747237033719205670995871163895392188704044187043961350130620730055062522862038763792143974004917613738875779888592693215957322721068554113350518350407786580659792522730209411444645347583276620469233828411508123943657036521657341338334716083925114835696678756493217700848043457965479122839553421319969625252312599252390017864484238391755486802666074785372440137311829891265692096721065685642155279627886439176168634505612355603589862787574396801465575368449302623920169037839560922732452607722517621048573896534683337165326649186851140777249385436250222649010717585364334020399271907670175654278923730035135473725566394937599880636938434184528954819682076820120593343463740188955447685614440445183574347251289947027744659358686297191815535439921861232561972571611352723456212369293456799425801387877829855885655883261545897448563584022326970819499106494706428135095857081734752751172919985876569548120726965853497473731448010035327452299263209618326942702529118384745685175757450400646140204586855400004414492831999979948676719310661165700759426687580583910567942731005520098893198979845383935126003216986634777823590252425107529383574898480253337695934991447068710689681069606497667026191348999743661149388934843298668775892835146150831154540421865797993514638885207764352705022039665289263751052310151146890188401976991015191020752221612090916505810163354652584066335904276857155061173078139757865112737227686158401816713038432389860373963269994594203818002910022527094937717519461563538684465989623747644206082890773752805574417693260581031984915504149533842575937643457012521157216171826613391673185323390998374768189689187746880167351022378345908503665906038865705486212628716447283937237643839721799821966668447943521127151381283335176827532967126996301033709828522983942800121718221675641447777100206775449235494951628833787030214468813583513892880520308598847180203084822417536056079150489158285531841988930723545582349307975854661694548655732495726758964553234723955379059179533027463751061668163422624259720511033944836770004211859622702076479669612782176763026759987425306661095202181608054250377540209500022957341890566179860544378441712025382905941495063620464028126818371236667899054977197667553203337564481394261232399635230313242254416376802736610216767470939412758910041567383803583903352554675424257997711522283951872543783369692766890573804614212954660020478610232036865060376638194513887074712817902754039206494108078572305378238392068000880144741326773185917827773489369972487073108921161326157977580991487595008763474256208925960890816684010246033219001172093267492404894792462675276943139861733326424566917857976072162242723404984949693170757164850545096926492428841521202484697568432511347677878222394979475572943269386443313720229712728332817899396118454115906761918704706031598888482925819323670049569875658723691450408320661125402638356881512686884838915156246855287459278478878429865405582988447362169121850119020699092754113037804957654333283799806344742389661221324505526825506214824221075365186055936740395459239753586074424978033403031177700075105422141455798424822899715578261548243880570504794209000978529306286431045773996368088933103173884035598077656369230671135365801817841724594002304374814313750823333650703572536663887714298450748860057592947573910111526472981265267798370626940939117181564110134480599419982329773987325179923049310522845945211648254173018988921547472793424090848661871044241245557026130649824486820071220214585012865799320787279398564528396840684672018649529093823262286275415515296988258038104708201082907252345305709833186026971392637824672733447824752207211163046872552734810677907673511752098318863775059981776891253286533305793994242982376001629883109548486003890854031387592453991384688311953594631253996205601225526688881991861765822032830089708337333742806451594179025861901726414870987886941148437374764931358257233935707556995763698222179218698383014250334027420278129081207529668972761029238011400509603721398410468105873407966933070294059264351497611712906126818350061589130484055060543581981316199654339412012954157578242826827747238066703285830233312006032684357461423241576497581295448275336520788690324280966382792484031044261843480852310974889760171789437566553435305627442213349401340445375445508157921848693119543898123950210613616810548792167469620177170794026406911315805580424933826009093285760070724793857539315083550957518359865901808661404408404130190124563837790897947707021683785221611375293496913669559727584137924181043993473535150869841477034951648890861201454853472488400356144509226817873967609890683721020275146507241674075176357594095340948693296273944318396070327550430726643451936871319365387214118224214889873536786532856167947603380739302214314140311595774000370462532624690120069792891331319746943290129115855247784259193400102606635275872670502792414580303765980262818610135536240711276122404345373986407284465279540658304090750402135702107470220300314406011344842843673598201305975522303851309166341604259223701747025025171493378050567473145885566988002691110523048171878110369372503843009286239973440424869253098182251229308992871100857802066478529780907686524594211906068252555243539971379962702309108027528518332120999244066455863322012615387451608861190179645301669817680087157642295822966409927834017197439650859112100763401436086731435014559552274005326643106220732892711393558381867373532670413126420591580962009228643629259486173312280815172445269729893635944326507887820510198786226757449423635479855701936322572015727960068130307756969020409257835877149410694484545885198200154359824669384291572704414364483118517562789810175825879848659379867692745113222732983562756193709003634507964015089747980776041381544722518225188697113157429466989721595924143523990205659933822139996917505467460129264543031822053241794269950600263300735973622851566309463451035554228079664745568500824680509576409868964170912897305737453590773675993766490469229115989199080102677794733383982622069874390330613205738753276544348338943531955561454347876374522990587726102778284930182075558399512188699278960284417119727329522560410234574403687136867993242484093864299220144161593144575091405695516486755339057966816952484125057324685606742765552387274245692803677465134759071882931292049058288672267334481347239230801939222978706149623225350806957394264983958525733690181396960987405621248758808979995592928763285191596249310847410956981266148149142357971535845944242644492302146102447017504936412317044907903494546978017094865797512773382563124897133947999956267276360316252125589477767871315844853721042225184541702010852342028729095379929887866180262926172663033116800981347439573800667757493511852663650828173717972957512462268618466893246970368216707533879658117419991117285547029599949484560276150542054556008350466757972220341561659917295212308231360626066756329317717677819216632619435244602616197098438251603302328406039726934649876347097655456439632746261806940105565073688776294942668656546899302816223167029101540720251901291448833087430137282670646903208064056537950165720799850551623419416585993690062434737889735415367529926421714254029513776303624803464786942493700931722578488317507300186016391246300719583680226387175556398429946699822372729373284337711537436760576041744759744776868114247208812103112643994808204834644436931062150318999686550965751253075809843705857079425555645733730736700824642436010497353437683008143904307817438920650167903827558011345624624904423681209512114224596539017038709557956157099792878616850187917217502166187228920578957787986668932321970042477228997237603943034947865008392883139711127003153797711516243564849966659372196078303759964182556356476322843479813284013613477911496939678658931317349349649059755384894379356763696560756504714439487630353815241289628383227649842755120807077994040861013169559235923740216300528817321694520032548677878871247036919691615704220809475628778203902238295750192868763343702114844864322714703258610741597346228668730610599010157767299881522715173008924449390676189029906468733772854270854692292639994676034518548818540316018466693741775135273549969425378429809029900491420230750790272678954392332018310973758545474938516648607267903734296382563389121621627399905316522945438216577500972552724169874703215588640681534033779124367303568277471631907834866742670029971565268283799494606532843946424922423464835086278857045401424413253395995208193521077247185853428956976825118896425476327841903237621875677881992887497458114876223503867030473485122158350744972312597512246773681151355030213573189823828557737204394623182687561838587050385759263662024187623156751926759047284017592650701165397680467012984859186608393094558584097814775222939296290462499456378177434470362591988741919648658378650196625697090642953897078822746659245227365112234772777477148591171808521798472472591802235712127545010985327620939809093533415649374193225050903381432445098344464297315021566303604303458396107403640879193848901607527864096464294501432860178735335800756633822453562094200590746635507072159041913926477577427782330556133094229408051296202720360004315126032129611822009443826181136715833288385059331722087504734843955847453189974856249808336279822544371985975439082912604508050265316076309119006558112318874893294414868245534941943748854513677235915145331467758154691604863682278470881448129867318067179025010145622487295126892835729112466125314066337158508540249888513443679443276561082410566306534519072714329911311808937953866339888932272532208278761322210563618740419518426048512579107567175396295005184177970841429301345914818445642437169708628885326023337117603994021691440941885704321115107286601078724198792850982815393362868455245501099232187500852121289588670183900737232078561880870599321992072450343498038168216466781528996570705071283259191109491714147625911166411459658246632144776900584621683353116149295928677139229557699540550505035664021808790506036823309733069824752547229420240934762226235512786834946986847656546096318920206583248636057812018997025727957381648874235990246954819520465683547274963215055887530344218950599603890558786420248501199004188051732839521766858555079219164951643761980896755743642053118417257417050271097667485625555326196216801320957358240051393354663802274804330173011673558509222346183020530504951716296080934775139451572684895393217772044356972471786950832311510199193558736417553696810530542671513279704597672256711798615818992246273976443431409357773589171409891291638293287980239332942898152402281128358827127371692150265734907633255569311044318161350173789348242824273815543043733107389974343916005766816485488814113203211973769249737285657273869038794015461101657261407762132788910525554603071147613308969074147891751889123889234723069552718189323789062855425807465075141727551816942958532158343787909145050045541853946518084768429566929734720519066243691645858107547447540445059891829663410747002342608127721606736862586190977514088723177128408848112812669023603254818840525710369452230691295384285566217236556545872074351942227235186927998831122182584885126964834808528606778622847308037609947378540430654059143203650164060696131312937013299577130897023464103897746778244168575098678979629666234733037149244255595734987062055617380481772695718972973090258169711426518621231208955151591764195709740376730551975865938484145863083297979287879374979355445625361128596896845215551732885792930580138610042248286098040896123886042539756068915900422126769577330630303676751207256476138584300460664187824701325507978031985637564910253205034506976298591640461713782599456248880814349259999389063956297884682838281751186466304673096381197731222275586894011927126218953334702494350085355827082736271086211381318992265936522665419822852233096495508492448844129221897141013534347721954092514222994510124657043659805806253677424095220345744479426997376598765151204758901259798728324024718646991006592439479771075236983453711284543008875478945210081204252843098079832175842718276067629887020662349149522695629095042693390874844507459081962506742566187804118649400150893629220165463662792587157275416121942330908139578611123155427814469153932721588140531904444146377783235496978270400272141401659323286588653286026851295775860956753058598729809649643914316703642517312915046276060134889966694942673388211049445210914658770456679707162590456688434304931469652709662623417455827674326890641817321681555598521670222131699259029663330174442789737361092528588685434764668185193428974636216337075064207057382403167920265232580862805527378922222674411272773400282210621484988730174984274094555578514987355950094284087751189091726998010940041590977886176311268029796661031186359881346910836586017999124145466016424208151631731831306622106401341947255744621167514492902472150205167665592572164293785654751026251657280117394652879926133224373693205569728404975529279854229316795665990794866378018628700854526185477850531666852607681235348184600625597827930709633857359722739366433079791606503525247207723145326986314873140547266347461748862293429547947300276289013764370034855311240680343799447338868592113339501638915097336670731612765392705909852304717278321262395428568251854505114227014562301243132042656080793152592152637318238208825231474923463128806814809280345533113792796449056852118058744917754036061616133950477959140400610561707480312504448781251381921620636005401985554978636853184296374389987117311279771471411159109430859640207349971542435908963799650478864973742161389505689967650954891012744867886336759471405088316867688773662112668921325834023710871617449169952018193220904537098323643071721089570486552454459934790667337542494507455838658806996666046445298649587413194543062078178398141379146583738756869308065435208235935008068109359991995001305614213122550912226411531737560233912145351086317169970114768034490206951980306324878879640220454783141842195101372165894842135343549568937467058641145632528057983370524891499227569118403549909635330679343411263733879732113075798366966073106065343111970752423016306848047547553490926376152341670430092245421087317835558783345492139348801141768149833682240694216697931187524583442239220348687935825507049184573021478439224149081052570084482995959969001248374896224135861966976196616977845021364235999509578533357738244935297445392912980284100165925145994802775990390421983877428476201929650104350177344219921305943191424998511957127062224183671826584909863615802040000864976649085372896169870206386440351784821279291793747161588298976354103300719419380614813859688834990239632197133847572089997717840045872254358971623967832035581322830092413874141363860590068158388158498975819674228527115340883147941376841337124283501384300646343015609762916533739744068017666406947193413203961890126578827514767590898158878567395275084649814931090915073117038839374431139408570548300902496693314668971376616796280122953193010009860174052437349277962115133873224290033704070880430479570029025229062560846304488267604250196929571821884510706020964826431743006408867983306732666540609973958617697502144869034346430509228126797796524875647464123086456610285649281560951041758243177075957855436411228847893091179181087715369113723372665569345597002697320213796200830996744508182309309838436785180952379885078729134136804623946732832275658385142891714691201702133183876088545918743058289132926682244682919370866559574817661146256211097525899945405837446604630943188111832235440725965066826907557250396972876918232137095357005107739730925907305049765976353801653731517326811073284682832916826046162153358680980457138457103116918495217113325942246137928741948015686792669108375871358682186215864581152938914855404433689763530104521467441676822316366666025495459648102027604381277478151931438367627297440960768983508151286027182880933183523554305557278210700227649200355003697118468693939828281213250302814961938339370817807072202135324356628868104134261548302006698659272809102529314274352473726472465903920324824432859493603702103122938834304406475358352870585473713865141629934900350914495424651558728814302862937740837205205260381363032236837964429574196103754985165051968762922001918057898220119072941292791685153532952764363870771715652030188156717169069063794346953669816955005415416146874980499476970683230040843657632637608032763680124460783106673856600711207060916839541765410202042636473867952597558888645067386394229849116602093010587187503798882893822072061718747091744095518093794508299202602889619533837720431908726213731377993711721424895275113405835610903985202124189962188103196184043301733784624202573752173981234754088540727448166466982725494620126596180131881494537661543566529395773810916082480683530048196783133688662503256752494335032503846490591165738392531419287444454173057269772014881479983479193788699769386059805793611217963899163278460261144317359364180595351151485251140544940541502907224227922133921108558699382608801154950209892857163616591762262977831234374615588581354831859504137419771650301306311481560844920127772589591741765097390746954027933903059424264839763513002065602348535861260766566719578187424509893062203370103852128367663277980411527702755788277602576114525935570069038257822235812482585765395276970058078051487607292415181125804912579411108166164129836683321626188412488043687818014295109088631682247401521793265334258704372944421687860667600358355652246911471409302232316838127748234858146770528884484201354542716329514905214049966086188173061867733962235367734393356104085823958491344773644073362376684211081343018867525657696286959511476385976691231894208680626995309017308551549812592854173475511317602224625912388243063023638083017623823856352869800208231384503084364936059946990472491925337426190274079535386427818762282797466065676627747244142719575498260046769427492682075336274457652957511085661088452456382242952054525010143123193416511114564668618246274609916339821276060812562062990172789850834154340716868516071957350605966625727507587623756821961663443035578421291407939120329319396428701767501892307860441927723825086083256457718007688739511392670433439715910973598529721894002570554469542618785391817657709930823330785778013716309141155094698205773372287718056276637812377943179905423767198886476455827553059920230163209912242803210756564171998323659991185577553152116789162992728473266367958866769718350329196236917845888799467555673472700411212969188636841547795942615201822443953952910693909602044115803128147947367408356993888939724499147828740920800566190727553443132222835218388782161170099787131111779764330360374775208509981134753965868724450386595239350112591779030623897428291115286791629109365652558269201776020791153678883401455052664274387707918470645992214600085628159937794314630602197010974570838029907002328715996706236191034623012247666740961599318236668942083534441720483790116221442311932927117921902871763338095782237617951535815069283514728348160451344981933188030407213606523362696297201072230260868365727068062471173507474511599167714766505969014887845525496305042811561948483725852012563599848386877585454581830906492815911317062570103535667321874228898115162783043957655535544557808801453394994246727281489619320925819598137034874404108286705308564614125377671475680885582779922046293032148750877660309976920795959865863676715545476675110616488387837019801869826329637974783019481222695751683784466928093762643473962994416457789172470491768421786028917827243720070859471740630105113442005556434216786294408638195276040510750628248653890558781278054518388330219297299564425630654506098211735278562426062402798957500676747661538743773538610713801073273451024455866204171565456882687110497198373659190361102089965385006898372873051463528985598565837001062721874302025055675661543699560880592160014856536026680918635858541206850735937644404438536048476699633883930579009136772994445631706125203153595911587451721561120342601501841397998581558063451159002285180720514749212899533307259049030429492119516668305982894793243218648312395747082456991405618825747800992911728298429076259721700301179702290951063482605387945222688623068817991959652182804282236186521936572124624516057428039126455238025641047261568142093405499358689826983330669850585618619478128088203108199998526497679976378775791313524869130177227961450584026342848249885719112778666761415632305112117232274116653298393008317843347998895149384031896777888345379989576588148393672047381614445628780424027202739172907100047302601669993816043353626725549312409044225665500388112368422166023228322026121859583131845583013851286775127559059147831991980367669590686286128959181914192514148259325687519089063784539102023888424852121062155350477659330787426272761089946855363306462469060269766850672907098025043683563093171848734746310854313411176117812087200544853488283695489773103685047920038582482212538475023251764819913866206641157388164572699081034840217403276242635273750589923591769338926334107589198824343052348654569844665151988167963804361827177773151596404289912902453636623555933494799747729918127516037325331506174075737531632103441331053537643202552967288619137162762216370872121047713995939316290505367229635102776210095819100907327672711140787089498510634110071881904877162539797720106518004866595844039634634227270607596566586124730082239208625839388573291734497239374457919275571233804863950784117646673970606305749948885121848977959892252650314056595086462916585900757743473803606157081885724399309903712692371368317946299891937010800709957868455929508212034224347339456810602593203789609336869402559717631954037993048657228174888989469423358158751317766681104633672115347754400509627092481161340051235612685212229740764569206097048977365603939072618285880725700308138730366308190239465384947759582429877636506394964923011507304825729107887886022064235583411316229622348703285411934859325359243495555688502595524917618947598960242485132097640171639234018161910266459877906214726185199803508338057895992165393439616573228929811790784226029019503923219867596977400262953458972076929693596895187479714364120116414931952176796130128068082339031600680597798210658876610577340618176346195102967407202048660787999632207073042713654436826306695456671695707230500831516918273893297841278664452329890217239356107504899459578389594095230013865466237704719040488851231770144257852833670956991116672995173033002782324517560978861888709189015335244884938688450152972106100353564798205129500389217693713114041674085869875579919974832561691791652292924630295622772723770780987279182653568783893724772162695744980899642877230550745799605276679250030916635918512254040178637677512604205158898514914872151921798562034245557380280261893017998230984709152434119228811796348024699238726672631075808246634986153413325422497046714009620575028227992443568524527019313457965983479617899496477122949459444351837628500555956102724627171187894970712890198280488931275923318810301742341143164589378857352913438489324861516877471355750407453934952090908331964732768658155422921927963100312138432197620361466563484439336478068626596396214060405505270190360651369602270110625106077319781144566813977388169997653389374099101282250436974606505909299937966658698931362165564220310261523135383042316584595989615548614808387580432037002157899065905310481127864665902666778536679615219117993053613965797146603639675817988276722930309879676284723213377022626962617896799554899409397522736408980615773932377505643893474743321468197710710291591808435405296582614945831659990431883643312694836677898606405960339324155068786510398380323773545208252999643032465676804235224408615917324983543755712286145454939282486000173046590860309184668462572180361941449065743951664788848516132505994868708779321390826339464217081008427245242660589782425690828281097948944726091491872894132649990178518460091995469565931691920224577000380821494615916173746863262043401106915543262641720563249551283258699853322484787970522523099332947974541998913038251033788787012624463036436240424481775971408059870045771758597216388475295872897915215533307281623250618896823471938891384989719947476329088306793676962405682964836052972589239449022684709296369509342112249219064178180832744977470226638669715369483225441258058134371377820988774612851158656636774313710571529249369487039920325345717441077196947741320758726021465367165038503186441971831143646548488634516119075997947550760723281316854506241403775120765331865894357273149754272440148269089608874365499854711397446898998815105634551288850975465078971878556349715035963117504339129995555895159371749349180036893740238759005455081337054821638762116227852230789077929316759457558376015185160067329209648689273946527249098859522005744211801924645483203706436314392926383774999246125754222434053116136407575946400957719935985648860958084455491567243000289769112948296749190090513979967486334284669443710275926237704359648345360204486597496046585248914503052443400828139933324962126807123721424375342984946249525993093513302609535515734409166580664581089672010081718553972492999053914220774213743055321820240548601921480407260656061927775511638522554100071465610204649353613139677612272114846594930074904559772259746833687487623750305869348057019611726500359131754221221793414182867734811642226922406639869926985177188448256363577813436583299741338418126653042117571941061791564693614107277971769295715340842991371770214809394718476164868180545172205847342575498145499154859469931323476563339063823413870496609936812389617346658622361595757033716483287386217082503409219094875748522765323211122126732423659818028894920232140904094249165758184739868330008906536105625492198686390403933104574283503339233720135258255231578170051799520371413327584644654281228282576809292637817775026949021078080426341718755916993627794499319903672137723612142214830210420859810171052953832190502079084243891033790215296983220499766293040402050232796421083412820297455149052505840296830064660096220267280272543439917170297266409907818759452953134834175455010526543066059095570180487040593024863175792475339899440357368341996931683061344519332460086663020241602871620474275389726721950858205799334365041635535458323448608582198344217950826620580345722532127069258077476376077447881986458484421608464804699093587337829778314847892868786051727011498876047359652183486403912054444101889369418422146178717068647369928249139593260831320116260782739911226340435837704048576746301183075720757554862196525528252247432994462046345056520935824272801769619195931449732011113356710443474088666995849696069176867763999561549116920758052490105687621256697863141151008092031182827056068930311247620892645512736053701065957248473400424589422643373761227382835499197980956260433854202271400197623108956499932980372569804164724038909265611457523933536117040112034722019929195313763466881724951305746510439412713682052406069175213754726052810776237137642855150872366869869147151838860712380571455960467043860834665270602489269141482615065168195206694104729007657124231829706142416928173563309704805456592701078782894077934317964773173350074748970552810043631582508194589606726628882688066776348528323400937001433484723764145303893635280764963636206778960030783507497975524282297410534433428241464109231912295892190489784934088424190660731460800350125255002859059300743599073912987473917138845577496758857033145307655928143208446507922088920358703131447889219827579362620327790000465218002427296340857507029272887927125967565854939718454302404669756422344614514826631369402003704443638277217073432763077531507710917459355586847442895105664843153859996993777503771350542656956079461080515167194918453817665922601655198759867988796359677978515252249911916802081852454411255790198025297167515075336107644693299515467625125900111706856194688009333950189630711886439384225816158003241703607229414899446934822318267830488567332886870519301652135124337117742890149513470814055918831518592086770424966634838924424071545558441712424254399533800256476253827833211911492923670621745567158400719385252665111404608896449340657451026813158381548718120844203933281213237622938557873299413039280348758286706775360253304788356839983517152208382930750717154887434029642138651215658063082059037230825949168152384148315882835482791121535565636914541329187873090414563751980717871569560685661950020192126035942478286545195741722077551879681074310729903226254957048905210087258585262406247763252172126367987489594450822375272941317841717586796549000273043756415007351677343624306774795106121324052120657988870248299757593783375488337479415825359654609245999290957664650371072339890566366179629962838847103317105743064625011605845398211434807577093630327370379585765856942492096683856879210332841945695776512961194090573713807644977782918564503907137528944700157244326150402785569123867315330812554484451675091732872865184397520893263600995974380737069196113551892725979103733616316398582934038331959891369943631706187708608417527092547109776663035229419952644136098414017872998636884917688614047581873994617613711577452337633265770501031482358930578420466256199210753794826746661617159094672971151103352331531646469466690214379017237214555223672133961578617400392712154428657725477479287337926641803038013557913349242378535256400289462298567913073579652138827646341471870016039118427644453079335031042568414719992453552954949119905067206102260343846495535327152635423804258411440753889634659217296854513276914753340531543097489488071862366937748518493700535524094107687330204579225298213048124486183623727727889231138073832829373368768365055618776077413992326105749673684823443302310824496683394278991104188439342372472014198494247599998746790595551772694409894161336894102623606266753250653410302650793257234711971588112789271634879388384377181562335681194795942238919704621316965659000603499691568602917953217701809896841890148572192796651779406547844625701569337177810419272985809871401588410466806790090116003725637551716509503178842577528819724172518128616737962510367218176557322816807922281803638426947478953748176675380724921053926431955410363208748156215787449916346313479227542200909135097435059230009521262137600713121762279629180215814808633235506565113996263544156775840476788779812878189006362583680278889770965574841864653164047931233138922074367974326718801933389059704792765185136255375634707036943738325629554318874633961106430196291589910782401241403527486542636749615138204706018417402166110348638184492682396697731942583467648892010469724616227159665135149763201928169092004852620848005158820442739442174378398852692160866112458852240527333211777085105170943829673977376639757437974966457751414819977976635958279440973841565193460521521602264091768358480558739320185972737940076132032715872969652220422835345165902815386327890461285392177803599512641751592298278529338094730449922320280870171366911555326695299196242875823451601978900913166762679232024027350629103058230607882030717419454457636808613024723689247171726954587549923681951245068649333731327498450882654694798166463685788951108649701667353676427434522345441236628624636619883530799150737422118055419164895611064050885147060645166014057153044685571815683386064344126317583512882081690562392265993761769337198553396337587146589855323761481274067680695626198649690585181270183752616514980232421808893494424832731085407765993034037285579236953662082007788238205082380210142459739021169585025219003587664708189944843292860298982672460212726503151000050567741625134269045446005528507261639513138298885945773025878253569121633161471944334914301101710837496821021870621612250646523924319365574121999697712693885087094970547130799096965600474310885929699444344340080949021604816186697958359581661460638116260156659411397840942757273350837946349993538114888581508420277789506286507369658770988600411241060299777189202815721340730761242069919780083015146418167317502095428147509638566873769974541685750724663680835106832675935656168498693911445589694969499973267492647110598072120926296341257765487065647803472445517906011808044491402235937090647165410674801900892603099291834152722753075304864049589203776949180564151689873016633526116824529256655981769673965852378603121152733663464787593907122538120663824041018782461696536922676838071070145098171982994766686940653579134972723117248266965356777826721479792379954702971674394165292535758608522570124256756070117265495202584049832827527198580333579667839310152165967624675747793976111339138131512510168879454475475583156191253051278786211141107751861211784747972372871569451631720968005658812851689966525984406676655881970243715104815651464952713705485984245898906043120973587131851936515840417255530306935891501991957905852964837807134725070753396697781312132851623229449089877209914635906149820566107382628233304497386803077984680357672356395674190063949277832181040623414104107627735215846921317416752285240002385664932603712473123868266201379671502943232140915750024584921491357248148218759884607219064590147616856178695048792673554158129419361600392716097007469898589183332302326375779032074299329699654975824595632374058748303282791169687054069378763858433564124017682269455409559885153937189041892919672933671073627951520736619665138596654448560184267132165809413946696601166448985135104567068400047418562404502043674506815270525825525930284666498403081676151524244424443868912605838447559625670585399601219679315255334784510129247970113863976390457463264133202350924173520354663654207384904536663210671542645471282433214599144959052216817866030345125894124838581581164764101433737174804767911967909823261360886157865366336076309450688580566361342152677726298821555072748388512805714746499700177978958520811927995801158789220034415586576836363655974402876246906210630881929851953591106038422422062873044349550152085553483620019569024748088470297736241946618432068914269834504562861986664936100035168851311154477923413991119310093779220511116344967103083983378971438970735004454658531535794398700232273491084124838486715604015969398151547139441526704073069882812874848468975623276648329115863710473854406748988730064697714379308796949306807808808952083641807349470526822448176627521595296692680196224670294123323791532962544702244738824593792800500459982203946325519471672590807749986271750144387616639740195127348488461702379367566212027537840558076633477210460694489578410281658729398660924774011707089648616552930037469638764624504206226056427784162647840445430880356607461434153476509605734739151487634081883382071919220546324739548358008933796008900417081779478669646342197457659544818587628871169841379226860383406252770460049934327039331082221978083249901701530819763318856970183137439631712276048773042084974647501643362869037623577489102688990845454170912612811882973670098464760593055094073109100652602473239376544509179175533639649957651757113403171117762438331264623672130133912746678498612210204982033596385519367229508372403996619553652236876106129738882617024793821800464105515320298430042364265175095329175971971118866029688415066596651999861226463549062020534744692754579414447670184818280798591298354683698812624439175638887904951228637348717782447476375940775188913119404551583732313665764342733280768774709740831040579196609336851914964599604114749787281250700228542022823964136571773210890733053904088073038687090672072497702496939438744484422160003263198831266997753283512872294912399970374658512567421890405547044106362217976257816781059416203001277534843772012356898193236072005990184477721160130339048560899289190306921777133680074335606995148056936617196292591935992065974772348424901420714140899761357145914465703951319885584730626913216246517410187384553896191547970024840146354730923246091842593325813484169268223635705633826532205487164432621932624567429984013506794371475056283365169188032429726451536462519872883006816942563563472178457838567398279892042826777520592844342912520398937087002441085080871023966147014261246169400286662371845029607143471060914365319139803554541798875296013485174545039669140593314784426634033914874791059653728682972371741290742527460940402313726011221651261085599659009241784275137367768558891704340162990565051696747045540315803630911045526610263555958958222156741017472107701711987912761177314724383313639409373502734961272159673663038089279523304937549354826497888157135654380573099304327133190010209297952265737621596148549146502279922037967170053066192956875740406056576567709756311747472915126800644475041946452042316674013525139941126052785396036912707713440552789706838090805779993985093178567590263875955981045875257619066495377126163240549143647736218811852912332941278060006707459107604748444567276147714661493430489293641464867631552409934250025682065818574819713885637128890416669441734696971643414267069386239477982681461689273399625939790792666488396706417132591328416817287812418506469131762867990581305968019306897128801031628707564496711366792928449532223841389859356144689332746163865350334538826282343246460797499842288136300088417138912079797924736332979365740432491436498001903431924659177840496000279002309373670763408065820144094211519681106878851216942588967121927404207387405429759508760853435474887180332005336619122823984639744770517930307303763003657704405804284892487950319961166163024540423974211087552254242807606622756236228808750078698589988586894777465819392688290882829337823749776252383761020713788569971344320126627599546761872843052167257191956629034228585858017493546042271753611838685854001185216531843200966621488258929619468268749915327296287443760861957297287121033090014960080498904079543088099163375475247350854712773942010343429015067032434760397703847789430892258509281895268843983225883318265366003977026796366758878590228040623779194319567737918297814782963911758514794587533420263953563102542991463357329829942464124067403039423331205573089385200526699418810575021311180068828523953911155285383306316999412886341932214027979879095249932111828623817616909778813841718876340796248921561131467670845427367296938136666072299457512808279458603658011959701375917735050676283449639274924641549553351984472048233278665646352484825807628265456746659739201590998308621729739556212740393998279665435019061348159492211673656166139763332436343325265956519109652256417490199713360895688505457750879312820747924382443243642995507689139417184732059067866322247555422180954786433349603987419121736498900595965792135715741817339251668884270090464422090693351534809462228402924729905086606410073496266236305047815389055111101173794755922962319716782576222712219813584493587205676457204237285555029046514340072748884406142943021519645955706917014120180221273713272171126897187540052308652974937348623228281063622157910539276843410956193527367614954755761360595851586153213780333783995812754116997233846643640494700976658726153135014860739041675024692530692013735639821873723483685557859127771443741903741758107353880618178684834949621508465250512672419015340132358442315090265487327942128090558547211437021388851883333391093168906363606502492085359311777102904155064506694233970455699190102462394455925064075250625725190196924392913239506960946092652830877622910203549317944621155265225236478744910300468480183609796953232997016677602373699446549533096412717935757491097349888887329708918162672013630014009330626317669553690876000959845393565344187970002555427051972664854213947661942928734531249767239999421715409981110048366368686190219213941951254184257727463145270139179336756750295878714386834758606657891002610021744312481762676422929455775178002147503996545420254335132322549743972551442086472635284244618208892345256230732900934674148591696226336667207985310275164357502770080285830060597664416393276590791182925191331460880855867471528339440164889169985774109564989398264449029961250436626705619718583775597534068882812126727741530526863564809676347397663747060203013423030341642909978499985061219010471518144169229362348774779033261899789539795643263120666744122917880122544977933776549556069998640079049314321498315449862411738275156261389850225063874926067718483659491020616597186889008861476560152935309298666167851465489219115679960216116759221661369430874106162880788209671390882462049970008477172522063372503111858154962192664919703837300361384521714920834890346928857135371611365344979335266579502727506207747577090319823797479897610728476704532875698538446290896355309097563372632863824468069144306894639814294766536586084131991574203913051351534398468141730624374686717709971165951169535665131831609768326830231631385634024868884925536901537993016919814099600784284250755679701351967497107270651474544793022932866761306413995510566215953412718302380372700825311063151826278329868033225997098418138395865625771666486840809839176415923103544176247212620864497730609200052237367324817309784807676884789009993847947507789226446903515290201642001556931625893094618763914169772041483596882704966237622254575362042959588419804494065274181776908224311979045756296003065983960791611253505089130281975388917025680593300477601361743923997263299108023018644434117445297427776190781982330910527295245047365104020682334380155982192863225066384345928799629987050143633121397042935939301384460403008215444104423593199477666215503836526472366510693613370762113665152144296263749232144024482252928834975348207206364659365919463382382271226607645960247641776461151892442616836582226860119837304987759518686686299369194817005770726021302970621181295934668950748265788854721484313750235784264394398580083267752100337308614461860418971489089959908484009918863037275974360254114888469815901999140668683962458041434359183236774709671585271834668641062547574037091586390074245251835430540058447465944941501039279773676390664791723998861474989806845155784691799404870165222473866037794497435591498634718840805533729329922707669317006037446901696094198036313282827188386318257881083447696335367388566504065487404104688714767502161002313741447413411270607306855485762111476657894275635396198896143076519072387756251475434117056498935289325622863716603202783451658788011825113817640811958948361719162130055738173136917019695638456000829103593454019774083609540306539858276775901395192512576271687293733952737822056625988042168198311586653747341655633479996434585980194673187147840413103318308648146229964303311148609414770285883405642241740705279980018854282960262978323085000864512837596592311318246340244679443895439528650666054170370389007697465771649083039306263571362699664705943475664245246034467127739796000334581499955751199853210310543296426596832392362986344111010499170847974787809698233568692446123935515065003781237287019287675613355793406662355605114736601159540883035121964198017117312342734153251074726679628682870017721737454690103759554798626097467695051127822589781970086210085933308704538419610648481699487093132355701674924328788494360414182905905135601526646964742678860864699074517869699788378640542542468639168108892398186696670401542342428366225757612379814439506903116883880839773493629554012353488095072951747263648277895071215539545468287774156071069386496674806792802735403963071986506001585907060078306839346862781593441244759979332388855681546223256140470480774590158766595695311406772128393042015508993793797968705966423164862499325301462760556312215149110126026461494643962332721145115422995918237830722805785497669934496500995708528734851228093884977271460879931257925451382110747588627617661552100637851607038900211779443269350038680161177781471153247947010716324579768192598623234678106031172977171521105144390617378218993637801880773480236179241739294559487205083175085749477600509593210396778232070475396453017031798564297596273736541316792103335870762480670790422627603162669531895745891568422199868278788151326808530614632057904343325728609082215147741988892864928015101381048610642939728953050096276331819248569439411931831456119912609622414371143990886483245184332962044501089417912157797283791848417154251390457603141129386512493440600909294402301356607026961230949321813712634004927205475312793206078287386262018118272892688166115082139996610315688319043414725140371103020500919345187688583632757295849913348940821203516611025032598126092855876475508727719339966001559552070777882835502037520039963924352518698323685277175811302831943537189446970404796457494415722316299533134584520314444796608757812322807913722752623577691658162583284913790698378564472368550929015365908035034149860935818875756113430269127197159517921240144378329499792249058143242623538408616989658572506319698192059505821064455392892461083822452185684298995175228618698560054814403384502295620465772130269132104658491893234737089424357788000810888036103105916415139408697471468877790119041297241191849490839646450968927094543235481362516183936766969134434806192112664201307414531958436063802999881451903262001259950327375884060668069693501647903234885580227758400350444704283201536139419684572695071009136697640810781129921584057122902937712241623984485022658763871592360788426376272593043303294672015458886425871774008466355011391820881939190445921143843779285604522249491008764722832301032849735479136881518209083347127545810211550457868685657087015218438662156453809567558978872167143079297418114770532989234048252698317209413721561727802417731691147058827225260603366347998194294730804213322083500898927415888264673646856980698518934957590424201401358494076048058604417538858434618476636382822718670807172826829660013717398424419733254443395982367892314829586370478449848892839380259146411802164747326114522936625395806104198978453171795428649834283420880607669999599819142858561162973597043804644557031143713489871668372232070072347556458664837526332936282943231835125208477655687393676761675523694608263339600645612853749678123206868704244982200404128642880070955616622522231451260054750482740670460468674186151718550470566105223903396001284092030687622277759350819721580660030089686569304677571132380682941959173393050740918758075538072370678781954284301611156806880669397381228283596265521428892381887775846537851891225484644694620393017929575639171424656774990396371333926879683609486784400573410848908248739086693741223571522052827089871041083338292258834335300724543845497273494170765800736775236894371502483681920603824126442256309829242991262994335266068142370403917802850281843324861646625159668148929352440227621864688558580969417497672728424366529306780105109527778839285949974296103193048290376138335265222689388648060602915154733413396756638376440770709854404304398000069555441116758795032415735966425599815024504487939475682567919502535641060982401961420561317946511760512297028502213075589013096579133027397301864568101370832004758205163232062121094894638915716566937696223550388182804683188754312455147200383350433697843698613891338605374486922916779526304524519320501510896012264212800266147260530520866206744284020447032249144324211012878489273583966512333410606489312757552261241061188090741277368136219967625669815350365760504217244315247956403370647402770108743306160356713048079928494948536084073987576422686373950601741219072857898025487557844805208078382327485163302443712527880944580070737147341900494651925149486964357792119701893534443933155768199324962843809798523787824187200910461038648091761334213790474911666846908790774736083667661574348618319001275470170586654047148754655945785974264857013666486398859380647969268615503339513109524018316834091560724434015681334030416148065083825184847695587092253874704162999137338962136244119033455067755489114301088718213511290748025786039981009761786096493183735276492950492335349384196956756012582889445759290140564951966003268236359283623639776418196587915827722554683523815586554539744256715979025787602027217784623612096310701320035689258301946216517622804395077539303755865991899569285832780585137661915286922790345523614290828226316670599204097358508543721598979812311230518738470619539176786296945265696624718595091733893241509134654611410387834296323248268050928913341546809257883790100144537565133740492148635941127995529757605793659684609735151241179067046854165243705827133288530288345920165638292544236255428054082744775169771962464467719480522007571487843035569526813825425267922935844861505419578373340055197975743820070951109549279326891635862332431055255578409738279046227406535240885471235909946102448813245184470541265087392931402516263790911356573624654540567653212217875631876315806935773609479832949118536203314277262893767646990836350099370177236678540476167039144706525397819644852755258585631043773941824651410987909360837265009936952690534011624222928368480623055090826569354908502184295797043747147960889195520420203162288257051497419552627332061252886249021922583137529289976963384628337563635171431334890498732768562156415454688246376946393987412440204591981103050514555993550365459482343991366537905679681824443429082406671730953353381201371156072979051848048596004409064854465545116883361280695024285817542630171874959260437175117693259451370925359554612740380909852554845075209450566355529988903431384112338151409473979364826967628438870745722864494087796916043492251049606813468279280575370261568173930980887175493071850103187650564523519008467576647227323020407109062434580213738893270124539784511837159244398427817481478535305221775658723076589550193690206424272447783615876390529494524466904538202636183695568472218488834972637665536344560762132970084937794199958946884673887866002564463016831742367030766647137245119070454628806202098790193287384283575363223960591015249010168996139189663448967578348754045816757657459281061891123544554527400617719782927491961810846601398040883603608231166344732887624301704291458663381649682003114637870518256525299891234089290164966548086011645553369967515894982377406922785819166444742429785726342270365721287659145746417850455847651269240106085660735427046014611595123928324617005311135085473147259990299587188311428605227585295532458512897526253792809654252010656729800742461981775602668856173557654991278965262888097025333084954534708999371316855584319847037769787809807458789614644434443995606692647302726351666804786132825404211690501045615559567438706386218978336941995876252717039196108882559302034252869392641911440741081096408368861891822240407815535043889029187209165911678129962169469136435988327817257116039682302884485918885906458988325170977281185399719135526971441580648140231901711477810587949103236854489869947576935706064904134616455046344336907556491904607226560357806805504760083850433275520679439276003917198475489688515079933918940644870951457537794729112416795106658340676777904043332831961976417342722655328746352668423106079282403205351166975425759954397122354853496102513603660100567361065944286978782270505221442238225961783864233955711990626427291705889227980176473703387215138183563634287342038393354730506603071885184767510079355186417365456056609651624517297428257892369274030685054523427212540211644353554308467321543601097898500268877532783003446064302835323428030937220534187167440517331762856332997651580012050159640171089293854650546638522412954715178695218893907248022837847111568324632273425535347814502786682837708510564745238354035544027453837890181863723214486935257333480194978901542656117905130740216505054072592574620415027245103541499353216699421042618862940693034077667215039769028844381279907983526935300868750141384210588650890305317664112435312980021718474024067591399221950613559415237341572341669186475667389889716596354953241586876653445543012530409662170370719614141983864129272938223676147322619580607421709876652834580958460600722557742603045824513541860795907925205322431689238260145320963791004692492595205069991250241622181866717848253238370252776085286341077635081668647158610894590735733782181776630174748409474186351225803455091359214220413193497371782860466483539721655845231390832833168196335432312008173095120563807984792075831834274679824319152728749759602394382545063341059664258802921397753837070767194922819653868630418071684245006831340402964606589569638234403555260776371550330100033764185953684457431791783226867557834119095920621373898976983277301196318214932766607622565540543348667968829061538190937753340509002530500062620933022135839826525666945331194005701270812378068669165286060118334991800883449784488758750748346758930869291930218915774687714856229037292137256482775430666445235862643704269294783127273006022021721110737998980965118208084966203874656317766903578949617762142399422675215646894236843947660533186376444998117468951965837139782742670692480290188088447520940596871632044380288731887370693231779704369174820900910504901452422305543055985657021565822375851339581225204153000097850213993179373719287388006567401336011460111317552117516693545841424837942984313808972989477137963713240356693975918435209583845728083950767403244893256478748705533452048680738589419685837719777090497580433416593473115190129409380300502204703585913874801306309361497969660980616926989201458884456280124488440623709416956587589585337205527084268086219691703955944666990940624766417834369598019722985253827078994452726905050766724847506008507106846955800641906073234176089966238803514562845296666426686285752298442645181966717609825883799254167789320895392273286456930048530751804791115113880893727717632107880815848345232216437105305162945619867560886760154441959050305719335796261076294786236984200724020884386473813354706347942006128032341612686983667175577549210094457753541896624207109629200188048051295438548152954571729145224164308039454616500377890145469305319000826516803593119950920788340591286935253971433123471818900887794142818445269074999551876240371310338325888132744052208395779589681406472888732449927091055741663248475831471541830903558329947940730623623981128911798730373104586141587610910101321696731231701934701623905495523122343190163770010610296571672849549745535188860975703945717049780439025190301907213543426334229078707941320595498406488757320983666585280468392115913313775004101898609861408977401143127677051192173250708139461933268233738339651242703873434581591925357389171324745696584906090224776529242780778372355838454069333782550244710133161053038531492955780098145443865984879105261175846323537784078262817604138053609135781929695988364220255745036694568126531218790746927692348964456408977478350137511289676908680783933528879602779789158391252117628073714951271004875984527470882508620160222397153022700771888753157432747918693855954956044037128695362821063258430088629442881541356444631997460217617086497984736436982809174137075736965544016388386548246347857548979028460646352013921705637395861475269970368529543423971222666216773174088097689699676483406696446651007959996164194389313933483624917409608078450401975932400439561556755788894244171891879883641184908700039483533798174929148956802191301802616239789989297603363648278526239592538636094472091749523183421651148873233726409449462508226006392856765255767066547983873829723921716234407876004263305067534047913003958304255025567591498333649603717754231066865175538084096819473180688265557173360748226963184111594758048852183036405904255650844164281554408603786560392800504445309837380561921673693513178249206728695478070246364225813210780633132706470785100707082003554704824028439368681318222919392738080365907490907715433657098791531834036374980645637314799162447477287125365991160177523058356947598990042951287245176794830825847681923447124514723480666489470372699023638200681965247594822625979804487961994594973387548013396335208100423335057212331938073201423160330738993970368711896995315225644094348002946587495833646918468744444585995824056433133380861004947505210548902481858062405096777485540302072413457096014392676556392535888433150800767190636041531283794489922832027026308903621913109207396024874675647159665950968207721040739990541357088012447573066958872972958596117679777206849140941310926742652911481426099483121739319535245826388756913143584184970694547156547876842238815972655854778759977080624742182239744977698274133982614495997312545137353156136039302456841182274382737962560238603513954842766855988488765509517810053327952383397540068628875119751453058781102898829622529979613316525112408762977686117067766522031200574706495216687633423625613781152046435594944951449335996291568644938321363240058207668124387215496832457529863721559983550371916351523425587797850397192111594556183477267075956955606565969206308082910172398118992272199679120527634319087063203778073458798624259552073569037989883283008165509075118991818155503820288467880915967925657231119425554336755059139696315197609479162262276678937676408935082463160732387831184893385386509985861262860276858668394245077018262916985423165486313355486451667621307133860815098553712495080063886901103239340436019185665767539634683883300988161811871304006271071600597624371277867237802617849378507802005657952862970102127993454723492854767362207571520512092820984093043282464854180470522160213438088801861660202001102822777340089415780570803015745528257927768341357140328786238942465860290118010344880220247245577919548389560991402009922285487417071138163238179004504725747684839250083843680111244284574400111994143742137394000952844195748172582669677273142128382671664771512487916569277528115575431200274913775749624598853126428116916885043937239268959142504805141784621781500125889253494425523047363511884026292563463950559531132823646376822373232138103788433091506056364497215002741046430245843858266274075653968355955715385927278155415345333805680049571566157783508067322194923016651792222262919245416641604762227892548332218788818113126638303759995495468524226913951119603683469374751658172060021684341813681069723659609179535994262815473866112445424082503622679869622286341787741750293659288833547577939321053081027338268269529482856745020971903180975049979477715299008746244054472314122667256152692133646159881173501912859678251905432011892962475260520918803811642418389200297754329271139733767433554467940872225191176102769205912770387820350067909659624408119713485368939708561868365712197769834745875913092930254902266524216090859477182423566577004375898083558851333071832375550818752696465947388539919710428609802424115588615587717876220116840822973223893412166291729732269336541955256093280676426724159731982811448544022706604670307337043333269355360446797125007896532442224264919137603639317656887778804350033554488894776693830032451497801243462256153513433000498493107764826247465879854480017368966836775847705975847595056063536905282564184495666780868224607863785671676712144088231838900526583994189189158186497085302549627851082072309115067677651745446726752583709114906017677275907635877263492539875428256064870611525505925565026787182316115526874303879128971837142522326879192230670397623809855370923098827889695472534579677975050910803519065247157778687607818895270166907497455432862422727093700550836986561941440181798692694047738981915464422379197231108512868969723318585677180350396989015095961696026108698222146988404773191093830882633535889456498576082535982882654648540548721201219602346603723422626421632416332629285823296216358087248616306481134491393002204043062594012643338703174637408267321524308683614594350596440211964156648444243750276481414451182722895423832196149321795547878011328071082096866769606731919308731326202168099910931536625024602795275335043089144777308677644533827343209380824201194285498744414179649524577832413642364631904875705106046687518930596590650994400691743041961186927780910532258342951095398291758698908510555892152473170438867130900055321104608065082968930063632989802026256455757829591251231708086915007496898857229631790892962188359883727718776659524373824153226867838483266468614463589583532158218082188888813439984372926105085465850191939162313319352404815879048138985655828633436697852264510803196417203979570883971585980960782914192189086231897903049306749449475363049991173070013376627990938997134020077658099276444873552465965157659321304061053375091281894123508286673203671959101735737512184775817119896082844726333552622840526326284340205816036745764713960949094190005046781352666770541522287533367950032729433871254196857938997011844807871760281799269648583912445354356590528647022995680447396064111857446212947917308290102438535699143345897043660457296294308124074296545392592702177697620840958699590347080210059911324519916688936253086269706880932606952762977425624445171635137692098558592240301799974038995101722852023620680221235537249392485040625426877663062570041916119528783355800182152201076958411340564027711826072262230830323692307896011567884858412233564852931100398386912876535360382530412204431438552846005270773707034831229704173707332213623497400430417799087797921465865257357843997989215747616388259591195210141939359080197950573443422783471935519595798158918182177824832706471822208619716088594642466531199729430443718834257134167083444543933114125841474543821632081123791896156881817388774012236510847300986285175899111895847237407509170788705895751574251846687410992337063593546746526847640394990319467452878105352727170220763070340952364343859629381805219865325880245242670519795010787830065916667907351657969830265168009458095124775294471781993426618569502286155508349039184578270772157788410142554693126806597609041790880395737406659853587229819183747977752222305202069534449739168712599813211727825585431437345693709352582410755240720660875894017012244335190423281572495595526089024834960343863555273991910282258303480467513417968735350839298473116545447056097228980048719692827326479386531304869023013443570548131137741595650252843541668345004416219788629626653316435018358448544755758689219213168515268552225846734462457180199586573804741368480056358199090281375191319539118481902651364696377520390333417557749737984415079309177425592988390157675344340980843407037215867109683873485215733463970340399248282330508085207921087843091626573445188376367111284936154122329989767459838214420637201972632093021442809731147471320220267115087276984836770258948411436017718664263565868006585291210455273723509037339992873643818083426440335291206350808459376454883533529274195090680399272042171574587165959302016268914463189109424993585752853167671191658682422315425267039259867214487000095772922520853303831403159892518800089991015862683322249219159314780048223089074256149055874478637622174529053646782415137540314562069235454639331239984931725609959241011235826051337724225238578770291029384602862138773942307655149461580149115279457600988614322819352014941693749989233168583430072448611241913266534025720315064591865864019300717841583307683834427854504300767930205124006976474228304831696876627931483439241487402243166647928412688498234399320875940091966619333940444318378185921008061110759858542355325538661720252701038860064701154784947025531630181204561977594637581620071095296844597036377146492922038866579420422362651204833944512599050834593559989469706187637095099148772503010167397306116991743498982593989936016148663587842437751091657419205471196525468155644319434860636245672416423222821640817146291385489160748961744030928243032052303790227993426888986388168856558532055899753978128378889737779542474968906776054749857696733154834294235972690020412031560512639952014769729767955736056566154106402879658154358229688900048746690455959108025381277534417467671232480193466627899286149082512128696281772833705008094936609593908266063137531423183614999524235045495262141799258860454107109382956632237260024154303577429745583051207511355425699933897665883168641639224880102179194876132369366127466399238395126697110539070653733166514215002195727858637584800844994807004401333636353759968143094734164594600855091109727384428923686319982674629759487856389184419691337848160397794796165452271727098800515881713510817213751210825846847369753182067040327509192549116508358944455925700041451279414007408844196630201971182021018598373133774417256295308363760546836154995715287108724752675172575951704239722487329981133864557950806730381327400983240496814371812533467551887407962599498491409407000205979823073721426410437975950242858706742754218711519703639033751124076839427444255120857407662974742535663446320776697011183995785890708898374912041772880371806419493466166047549351523936019413700099176885748339015976335065768644688565012255487930519934082241516752391829589545839069070367762362419639989095002420815030895953885479376244810294566091617576994645548732003777118177739866380303764883293897639715376949012349396333559095353583870930297978026570309275211914786496686831222442018147695318500262845529979755729641036874601998623504629824404058155053904976817096215062970523626220597245684824887960168493309084471163815704379626914663410390908691063931757625985137487316232063585349582007980188624857076151361927371689570518884980648930218782787372023959406514268100702901617892522630943653140361621621080384533323679250666248899420813000789654523213658000461510028821411412713406642247915799526041976015947240475740839680179290093566540332543713658658032396587071554193006500365061852150449598739725827727439332983175494866590756517892686984320199583355221344516023132276907679201371880769609133655130331134603808487812187626336582260206841364090698768129438390192312453575700981277007865130702562726204363730680340569573581773548553781426239084399319918996451511753089168167661863466299610747905591647355523148974240720064546986720275874653229758422940265583024406514355180681043880024108219899031208527083333393443217477977249854029973411520970713718098555723503881378021371936934991516284418676815046809354587847323859101917599468494828397023440851485556438223795958188009898060492718780147808018122836251914556949170059941228440364059540605960621177159997494999635767038433391022609222352921508153277621595359419700433646982305021457796893945077673054881732178160908405672715435401682884693443764052260378069397484273210800150063840680648104464995208189208214247686975480335575993497867821232910089148712696787110660599159757760188170232380767695771202650182737139774421035696208424406204536315722027658048964839695118363674560737760811011020332835580524057417335015403329598476674123352952204714130309985378528841558091700426977759920373563485321867096377538961753986212743476757602795772287336666376925525964042595719883601655806165190883720590667415438607514710397900561343544066510932343497377077885363864544906694162729174392360661699522511685088314326753337239544151522009655996173470098295441705559421208673842054327740854162116405274467284446030950051324843255587903762452177595163979678832610064249804277300442644963857659304167545632268480514798530904626406496890718857740558604941221978598133131744760407786748326716535932012311054810072137183286727868268597321616519811228165893838776503323752528857505772423726649099065291887621474910423694789278241229409650968485711038857469704434520202504732026350123919020016510888608995279456783233873744686165975903930974892989485371742509257432914009976504445191337524172401632965941820831395196598672403820314458603574040844491396665753215082323158119353480098936871679521502253521595670323891167312008466461176439193501291431096701174209667896812879074548332446293924542142023439681607558736469754378028406418046444132735493782848379323742933648708253129988998301160601266273886721803594987963347100155382663553837674918255956409644821604033577919651689095815404254282867233630170015325567471589172349790085258200998980786963577343808068976035269385182719827856923686815660665795404419525828420596248137848004678119482923198837479492514538972169445456388911123769568499541069190829800000369210418391738924863367200889894823286136918371794688449640161598130691051511347140136236996156651026193697147781065869658345421124977509904308107613180117278375278482621028013171097061369231299506725522060812310312814201567656099563579425625682287904214875935961904094583375119697575868294323683422851469012907618971920170227560963325734092059215728351295255542315804297357672123996360442808073170106719961591733471083256319992764765030365607761288628755436138070676098143544582040639993396883748915534873274146393045483202898923313311259934458246763495362056959761475651524296054234351081987369557989640160411063993884725075892788539735270056542260315429978757504069947487219880044178342631546715214969008205979433326469795003319315384161798421255004890658200870186657498449040695125749732914113728919564983801030418132185584606106618957852297550909992337775250646090527007223898448794543809500565616326296667099054943754512192971604564175050020085703920311768531505045078678780552514318388009263253498509995595959032162640596771756852694419526427998917461002270928156926045279734135759932993368276895048804763598227530678615239840504823628251313861503944967053194030514917504999785909245277847113928445444267189759129779889831157649875475196130192145340030522991392413340677280176373240051202920388294058474104878299549122646092452848252441037313864731777284061238808349628991557321984775927677988860932088165411296693826432843414329420532957750723718717429696832893354536801682521383171035614758988438950363776185053572891039516945101169739204806305700213188876657015446794426603431032631519831197384879697656338580855133789645519725930826931538814911049553308219391373987422053389683114530937607753889183592016153642945340893803557159564743039380523269759213382929859143941124454854649514550220277812371888674670616236477691088229468295809329481209559241567516349023211387069580763620846840771292697000297586965515591057809568182345623546625304186451078049974985587480422950830117857211273184212554976715015155911617461786759020432276804161909412163203587445567202572827415576513380799142706435584646675014159100393753077840787405918593923327876699334541305411609438905562265585505012630709206435029683005512541145433756467092939736352053910352125477943113653293809559041840914794192271035675105716983252485828814635152659600924920687593208862483837885583180998557756939306346812155116698865111667662358236129626650107150452644875844462904374200823805970305634840781142554550959685957678796333716822034113729050023193324705899112814980938717899279603113835198834698051702044189730559896652682699268696221170836834609117626107664607045181883419103648219633502300657142166267570681070007793578552881773597223248928654990495943879539505464023091265595749268818128442050034600881347539949557408797196057240951412290014533259913370187264472649923263797040354559786944810133328064497586874997532287505451586224696190988071627850753765134622347009005222473109755601997865449400347516242279221431724381881335408443726524048952232819007342050456198568798666307860451500071817577176297379149588817971519929041155740252845180119707008191774217821538819026426885521011146511531683682692574478364764593671503304855196690643311622390595488830160059144276096052670433005091146865757280921800268450787218155373431939288459835749364252036053742748040782885189470440374408002161123843419069876933475777458221892585366131006984094695543721913041411401567296361635846243453721550237222848941795244276592100013465614910608884553317050897441649383935117739192621733229170453232580191857928861425021101339341623263725660094947833730625094035369359026321258435628822372249761939261493965767830205183401486336988388089085347980209115049198248919010832021904555399328161969073421853244195916020889627409090149125216180230260056603460268232288947837424044373784610324070141758247417522941929509572751368160003823371119230605640820966130957538494854004355530116892084284537534350759741800058718929847658250936622420696802873600988411946366361989318254097056174171244699793440613522361219785480138845382661739621944789621017643696122855749408301503920960482296307614050914368006117102027374203073040674814200855589404481842372188930938573786411340730708883537001891791683940235092100914891325092542831059142337658642649425060094602317508269095304505254226683585816257830477819717479025107597119883986240689447235496986431482356225623032749384777295497321095420894108052443261995260254885003761330176147065146697152579346818978510544041398163971187934448341983252755416995055012250790262657554808376438267596046204627370635971731449879774654639210797968837922837321611806881936882395618682644007798939243757741304814968887251982559305315932514997092768292940243871408080628084559157757712980866891629718070863463587667326520370212767925362396556345317557116129468888645650388366807387320946445834664800044759086889801875981576184707466116891924566661935470891723313517289859205633899170590073612010446724560840168278135319163032648321382736106552460116107373443201765819262952629927693549540856725038613665581849844928980204368626973618616191909837400263120427333276993287347207137324937537593603362988579274679011726071158116924127955897955873965837379951110314407327604660760921983387878492456747282500315411295884997603809456266621745684558839756496707826891071554993578685370633092406191029357081609435890901032317785090874834908592465606170183902631619812157524525559874308225154382795623234240071439431556764800605816751159143365083212212853758461698273282184964244274757147638527275828901437480990458757613922326482352137569406292981651940409253852802764297326774421597429188137700680344899063230350955343308966452278855612751398686704067004449003552765848253335333776164525971946614853494243341086491467324390404614023294762292589703825174595282917271380708487967633055666255646629268268542121887581321608726389516250916940810118014483283749041938165284734506190528006739480065677259676768287595359928969932877206518648982767136684438336214768492028864713598116052074092738375511406371522206602212777487254800581818795654449492833781500541740945534794373635088682442861577616951813846903960818111739062254421565707952816099834265504491093149484405273917651651793288837211529566893893360326206169820649610470565107252929584038998587875523231034186947067842330661686501153084956428281741894761872958672043304494178575363103896275865013775585835256637593094711909158974508252485177463419009800504091502102991924172828041984388801731652239031628868880185858217885546172236930946154486705798185642895398252405498740038229628127444273281930320368363394282789086378566717619580602357300517504197165602146968865800419061983264754830291192072283579605864252850698388265831158813900005997651971097903734860639219798284324230437389819037634201871286883262675827832854775672586755479543759756508184621190468162614524039818902338258079896485348167665112767153291130883117015467437985897168229457880002439189707755167869448914629644504407142728309291148518734243464419495767299928163919802949022731198402313443839291474054860152002325852114590439189712715033262561536801747696452989534481999637630704074019670992330718304328440296211915022024764385226590830921054865289030399757775155641630979285947137994688630170394668969218429703409081381920220885183354343526646833461859300470816374872091114773968883746795012739601737873432732805279604054901316703107988680253641960665892340639130734364673191251822297966926909820107777719534217843593076660647808313499690184007804209858748000261646432830896402065934513087646985515219950485229966023837420530681274805159828783969094995053953693633778675003169205813769856966414912896914189857957735983013389300232722756768786545374310345395870248032765509058268107129334558295204690856834658538172850778141124277150995529924339329476455021401283529541596383214644386938760574137397348436040409056406585236640465247174518438624410686141905468018765238528195572156000024577492066181692746471412454911832175440193082387661677865423317201718497260773388700108229816619284080101969173450232842396749089240333110789276851151733842131762792673793412218789619644271789062488630514727869771793651792733571371845974509445971695139380991456864060138740688445787863496888806982020542486696969645555738073024436819802750591879903144469660142775466225870951461326533152556023135760874320283323613090466542951046087878574112925590193480491416326423587563434780659965738289570840331694085832933301900050245542685746655031224983473449746704088647770519667916164097646122605620443442467086123872157622320025585656806527127091464943067145792692530498937751661342153213001401905423367198277204850202065559387874848538908214170277738857363205433412494288149500917863017159337151130707865350725137191347433706326762037651818488707440492065401392872935940719724182254624530570978870743038875275438754483032050071691501338982112147908041108519365144101859635611379048484171785369436802489503678993344311361153093667011009379418588065420969396856703741081064663691344828188438337809646032333886808376781960326035907092965061819723416087695263761598080482745962240438996093953100073277587795783822190803268294429414133565400409867976977019402009173354913757756123542965387825176559959531886804684344560307625614153951553060728607596815228820046079086674884489502845504605024495508331687412190374029951452816740811871975433009593356217876481703247971560952793049709743973056846583388765068828306820887280832384595185525493142007488735660205221808330083018640905982969528322682661007572826474120353708078938517794206068944667909323088289124942716831725512453251570094763867766038348168855520630993211498896922662647846588274657104504354561091719531477181470716728230320059517929050210199884990542571403560179093517866351000929325052654595208083949240972741931203191335789675552768183573142842792013391912717153084935761346711329058019922885137233125599598403087062749307710266334111110900261161287423863751093627224558506144172997964965640216148651671198797050350943596641724597809694709026863292167232746128206588964952948469813507180015150689618377227300323205490801777006090409876012431083836337794307749186739589968156341807522519768554515117114223755186980535682757544327283332809945742987148016025090458002944885073363726752866825888516617451868203454444819092360531318373014582486292287272873090227329703774057191602426299131042195138338595190655389549163371603379177141587238962755938925390637077667902476513139724708837010461068009956697634543417707965370642988701637272292802513346810432091319013215801855344809051898222709264296534731040569756288602003777190750935369238959883216622505222603331202569922240687920256979556123044227263818383741360036930886380263595001217720743883403498190371642352035015012187935192336024724336139644035062179328435509320350330794966400328263481974136716454830222924986471191525611266018767655442883534391707703693881550100860158516958653665201140236604077899918088897463568810228403536223949980591915369348880216534030781175037175130750581426084775065993861508074902748776007825497057335461788734023788833593050482467628107122489325047811270202540324662394039484459457695532548329312143031267258329634945387423512608514901958196080508468835963142374049797421836498926862718466121494477762895640737999632579996848031779482915397559774611157818642476345990103040268284552376067862384530642551564259741224209837658416895467341086180978191684924736200958904090776804031122330231788654310266827822144948371666726836309313233334839605397490539845024759397899213289623957204822684313530090407938829417569538233063890444734590999411061751536484307624839516378812785220751019246064852092634876283067753952304065725751380089182037189484788437153499324695568613036638808842824670341202414838400767976799493984586604388168426340273522074500340263096069046574953810734377519245153882311871173745798918806426704623660111977819752769263385114258874389228821727087947128686628802337507106606581824669409778560852102137611326046800471167413335585642807417046270322267865356148521249022313907528889018013909664891267231115064176896623290556524711967360440306222734080120527269153590871038002403917332685447197055993844556217789833796241722102784700578735256321379137004434587759744454200783099339539176535033027789608799765625672341911630526059971355979153355523773029669744064120838655721994711642486005986515301131395633647548592652404174072601799840787507892258421610072498368814795677862288455808260473532254793145216574947698111661510795029142180274771606524961510338838454231117968991277337697888689430681567086324824884955917858160922760527597874511441951231423532452513973216005322211056730818839788613798708520234293221868413840590466238198459921447715084206623501820450051245726962393396183079185960241282791748947990774720904316270485904624093393686438041276082508304074334765462579470323106547381564529492365501789600615558611528315135617256040805936561658379668632024680340433065370727317212105589725568020538442173160928301191666635093177678985932498873178824947996734795413297925136083112273405197784689661303920774017321556389040665698000810485289261750042570214762869123970218619279357687230051738843538133602095015618290747906788078095090951423222467357474698452957793145020158996826130238099906345185793275749161381369978727803833918051020858318283977546551603852301221087988529471442978230129594260246354409032135529295367748778956933015071080274729238347242288014338010669249343084771822364973534025617224280957691970959771975360796993361936116478328311715291154715060254701188308270063264054580796242396754146061180757411975857031341048942910615029612109964638065426917934602545505277352204232164202600471361498454822714914431268626128858955672878201455915311863638341593795108539974861098313242030994641037851694698596728319315215586860574623520524925909181145579942818799753526173922180263107914261591439257208773291547025542037103348162015777630080376264864112124597860980903600750685822335141610064449098087654521533762631153746788738954479899558821680305472087581206693044570716362646407578815771916464960056611833144906410552175029754295488592005457280264595510210698206133892713553198353899394625551582452005345539144651128430540253656152473545507492774231265135727328080387851841218388031365061125950743384207573570606867237393366741367609317163808581442028951511378778583637214754793799397207158850524676496156779137169578997977424727848637897807831381370918651224542366819251976604199299548845072319562923190752636868876711506779074323041905539217229293049666164671055180200069980573733985841868784240011328550976520736022342916666884194203499053069711654380252348625541766865521488465350167378351148527429646863446870056162315804653093753469628554399965771255863269764540870278394455122781005422141457904563819321985711256298358589060055276485655820950146517023179222424944896051998890518119986730681328186429701348318411270701198750046528706879820789446128827682581435921955031525488418303911026011075765762709981673307344639943509951185715747428098727818184289066371755096820258846102216004307082531237246975129497480270223114822837519356256644308874165784740547154428291326874148350989977413075620323370370093789629837812981453657190333084980893468311283088642480590671695167895135450941216367719700231590984525031951261968245901208879805331583414108287121275625572428841769660109370054196530301754689303856343751612863474493542075542974454768197120691280675365015166725754086983222515984553631352045124003288180546942469437278839474020174118520701564320278536317387909318382296099910535480773836808356547247909372695395591526960040897660406028524222190772593003593842294558453351513991220078173659881799187616033748888034654217963750849789456473213663621075541151829954599712492815171866671989905167609449302300091747264921845449009110274021136364183145901260399512676802896413818521682405727181635059232396525622736842317835810156334379225205389354887362824785176323316288188724937378060937267849537913419142362067933591788116890976344546872340309035448159482242235545308816495409544136000764262233220147740433456226061102278990070538087407832793850007930181584360092185458023295731091474121609077344263978169518806074276731440286728387367196785704534645429561570846782747580848235016667984070531718527163680157654986450093356550083356383830802994657839473993340554970056155663815238106630777487522259691168327898852896893571431553281574807374920401850926126247390398238758616724865070121563706097771358912535599286831185310335118703113265588006533885643898740155532674969116970229692787093779090191650803083786492424961546709677649516271874582362419988229150318230326438286081900160564390256818479578624268190041135265341976648695535218162443829300314885433773713810320569240520938836062910150640507210737439569579839230584821394404970161044586991917446147983585405474127129610923805553459721736079505558060489140109963231460059473510344184745164418731459713058417255828967159583774296272428395032401720388390430314985724046951820576689799166631551711460058887238941451724039015170857675625992679711317873740765659473722130715223311554154758175814108059566603809367603810448652839045006703989068816064474871608871562165818655560607119766368658675943417346944494984024593213139298273909017266173671583365098061200620388085763929170304697491599218362511156378454203553800374626997762355712257092178806269675348219894484578286903194084423418970749375344042760010168923726125464729812850500286896365990849565134686679941142513280967530607456518809181329410231725774310413852737280176176918142725063386070463157019635475835725037654706538168798402940158268640336151512179312767649119263336275958665299435915516826027114309146473841248556194054338930831184067754111265699789907366766181530718196748752965955782219116546938755591792202749523332582806086819002392395285818354871923195981505260031829839873020966298509516895906565959975423940861472063752186046833665492498653693328379865396839210856604535319172458047330302201242931991860882908354723413746771028411937154424854827370309471201395362139752648953094375516865021111698117257296099553405978295987939520898414620232340620230138941942274844698448105023775349417786157285962421661846703733577495887792814018886939893750826177261952200727205123673221320718487000788562461467785221285191617917631441724241977333851485119240082090793699017521502409303075864866554134878719057074960202149624805441099830451107803646098884224605553428021561173686308009744300049449747304127273923968192367690395949833506444992718586617107912589132894413148157281599546616522927132405081216674283849140489865542026895389267985418184106851002128607452225461515454194705718317591567467868249126811676074193159592082891358353549140663814505705504277453638323376299859808991137764386708303419346464553160852696553683257880353272793399363430707060142725247414384547547917567023124849000953147234696514414438680925471139542066380132740134559371615517503469685839441887805685567239267059520064023238024029455540691050573543129819117467037024557503129638775055816063086389564384485856323002289940672202642142814467914768151569723449581671900684362692315495824550524065343871140408672552346377222043211761791180313363950905057795109098603814837768044576517427980888894168688292402252631888904590534046160177473722570949684682174216571661749781993605081367682780955704704663519999378925425598042958803325315910116431855324929230233011385002021562729472193674595266317501446456014503438259711597848908097552375016995981998475811012656611792336360094001689265202300486452143045551405787110622495293603465849439878074850573440697091536593848963424332263127611662183850034090100741098668982715900380367259384117870259569922747376760446599899054978763702006429422113072100505208162462758868492234455550865042283388556362936354269624457563505925608716957163340458041848433951944970569969207271423896069362017899516660498393107084760094380561009504937527747793276329163397813746837676036101893048068167566362921794709076270121432338540557392848063190592166840478501420067164263102681566157555907248855440337599578622457498992092462382755464614871704371991211572501117523771864072629095948383414822238606380895550024511404062435019009285789503016102429007594868953000290096934959425042684858320035278948523432395601903718025513748474391570231597771818331442967147913445264799918726072605339236744303580641577212124610177063533676841610631735170255758373673535583710011677037129256294745540152061469703815395706671159762541277910473001798237969601242887603323555214872555872088220358523589490435028940201413368091036639308676576995008625322609674032328849298780362699585007859799167318505159414052397295939225162660497312182184288069400203507713754312224130745025504825425143392452445582688703674793181826932380129314300021159347465002060498259639042479304769295315770422442715436443981277891292236386121271139686932947106701447131268146608521044987205698225505866930813795447819354256854029150389140051771092396082558801729204585932146943713684396987972609443530654729194996271333525722747350920840433118117288882077279004351141334782876805066906644293273920097376942793535336674741260231533796306922771991088700918262194953768666856204066927270496698805993380530843142777188773100383672570313789561196896956581395386883573121654289234096249248328109416137342212200407253376967256393662929177478420324501832661255819689162909385237001264156298534336699466372824431092189808450563688413431561581839991841688816194713238902673892130005011848138493147893493413387408195336376168198869550275072655574130305810869118927256938792974973655385389665892480728168462399341712386353529733266802937064635364660703976698235554843469195548818556266429183888239233324820556749576388376919168235459694311848321196621527347593512767093442550841638701469408873148631002735384991118125193975946285332423629036721780994042146989910088421370125694990441842853977428882871560642543795383217036098939645346783404522302282618588005442373164668976168391572569681048128873225290348717891518124701936161417287565287732614918503560696381911148082177375658814599457922550962474512475659051536384294446770115052851929823207425164941360905826170338832856334240562128793122667973117097146186601639861951610081238707328680777613480067274908907436508149074730330996250772971195094087102311484560313131350652203200729263273707133385308132855745355687141209350624280602390930764832715222275199051889891749349068051633757659027665645626025819187080808688986483156846574207095677364318342589836446241513766811858411879218059016993542034410318005685793405382601550682944925623574937946344595908545896892204017109886017569890651012546377573188629757491884526559843514360244923683128607430443533292470941504893651755118843016847524671685640831369684362680035913829171159951990633718872528973340317265762424968928080400591786756335880641086617348885966412034648677206700750561529499044584406360659074384138257073717638842111764088587486341480083875113208158069002220628190973025651648910773799490133843167416154008870912820376092712351523226069876376810295775405011492324628508578171949732759086914263459847735627924223098447802770963817403589337900273536295370465311697565624952210009516186243935656596591921763258775472210523730364327513136593156236151258926529650029779200596372637965231787541086098444689551727709450721422382594612200500511693913706613360094276903672828557340297515198727373495660621830427758777212209653492660382247732805781569802331132796830906942286369357260168259085737649588230603607876216620620498006508148577598134849876302275317156079065018232835836348784376797215659461406754093463835571387492605725533023063766213677784606829408880722153801133393736824710790257623337581125172135567315970788940805473952169094791095648918007531425077312945845290762414069726713917245840739226687108061620340983519876935171061668692869166329509161682387750248109536495116266215890427873594210872146581492092340639760650605939692501377070779184457510956018449162464318260928785895857535217944384199689955149634625742804774588151806837912284462793438226938233411637620737171955867789734821714864627447929841076104013835155101148976476195250117942211108758417985535145779912593000517452002327607793785626456225493939484239405692076793340508794212948450398249174471728229024236553393627906454107532332825468736970974565394175787986594425068141952772066326066013382660795873091067054601766389903315276417575096942123562172793666621557300995662826280199078980934753200238375281379189347720272974549193123580100829992146209310223863851820110316914602161438016805870038505995994517367908925511843588311178426589454844722033307748567204169134131974435328719974365557841899154239196792028916836808416501010463836690502645750262770655624980242140432699657538167990012316019214692440083364074897722531262001474098743008301753612059074052700023709834093332258565409680302798944069530090250042898333766327281670660325339029325612024923248371048508714833030213250115096969134908373230498925302834132125120732383885772489144619716401694859699506708909998271362471729923046974655577346381165597533938308460265306770604114635512151522740300150189839107517265395390749500178570622444703635638173029180793388277705677671015630398603456000861925126607710538508655240588511489659511966405777142531781563563525588144314419875702100411954104638010114298053681619542200574921320810185308326433153126544487046274901461541576090436396818927315501439715916608947915735497217790700082970264012645687276935479843523541519268235557348694724940283129580726448173680803936239901208016796862700624520832762182102868257983087282428914728226842941549302624847584797047260671419744672053012104711028813479101650619806821451602394221201686751141168460408315099551386991915084329563275377175702639635073422651304579241913417699117190427775051035513173810485161101469500776717470174900496722530250387557725202178960891998201509466208579160982860472469729320120677591153435383813707817997937895053304869350067052249609216877332082067843138031771276817469876134704237650377384939937134735691465939625222133369321068735811715535693445258702736088850405822570591368461739274053266611554017691215298867183476189905937103946444823401354377899764260780307700084449565657307044330687409108696579085120785867465085287485992926298730444717804629260813427198658157042288108588720378304583088589964897020831172327253829227141931669701536347952612741720072629329467103182439574289970613062219108961961345795908509910638295599957466205918550838668406497711930850611157625713182083566081874386520058638645120068639043760089528359272957571769808877101670390944588349874508518105507234670481103479934503594620558669575104710685973127996167022672972968447159469218841720135457957381810832439990785180321511743929524222366598503006157846266258961829862435368923430845007020004361457463036976702264595659622700142072702366602097282433546423713731582285406418140915343208755691464039910854673786917856304034301287225229417152554650050870571895059830874200574819361407750165088658687286387526200831319251410690752258661000771725518021132356824499282018057915996258064342579589438004172877853270952437249663731622107371244671163699500278773806829762289872746823673642069820990538561337596357216767926783677246203679224737235232119981092544724030857975026838001634348260925875696976601542235860473161669154261063252350165892444108773413468287919891195869262586216129164162916604760874096238711593743964955894854942434935639775335689409353925730763551476867972672037202166893618919864469513165964344592039984412822959411322216848322584438532644245288466065464562306284321952025064458766384433775140771231966896997023248454705440840939413444242088709408144014613737179013525353528747353897592295196102210361194426430411873192300632092450684838240242167508268484169025355991778300981704022867994402702268469064262542195470256032917902686889358931152290549974213013441956564646637249459767122351240365981935502080214709382456589478318173569693694345879933271969596852353381026279086588762472505490830579520544383887201557418612225335580741793054141545030271248062997304935224619138296771327437352917658711904618457162543882964663300298224091238340930619616876243559275766180891220039116224023261798764903907404454926255163216908697768179039789596463916381773645137606963814791706003527394298553642301447444615623588222279837298169102533172185748790155187888005986919558548514073864700841898825074809244711850197417975325251769464637196846979683359079660015056697412159307136552631330818013446430336579482659046208294558347611468390668803470253140527213895735917314034679294123950105454812739586850438862392452807088601220541167132569375686856407239839933036319732620999548595641373874075906142297940456176609575051515461203121316306438576932535947009473237567254183948506986172400235192807779650913044424819135859921502634100787649582083111355384091254610927250974653919513441628598513611125065796229217947464788710253225170359631242744517894075710486860098443217130054432554635647553404170860352403511428699050589167452843401749235462486019056469573356435343351603736487977792971846876557150542485884845495182513099166450418196567846187446372761244481583668585700432204451059265028038564546126837531485456195155447216276284081350069892250861816941984218669820320422569989265633995189113321987268680310324326653358073636416684513784903865024317839557548152345688705865913780041122264946692871511375889724562115567199481532166107479098503498916273128387597498328719490415392364351780932385813010211110669377212089426679717336505717388411814110610666282794100116986778265899284763590861396089203079742760015264332037466672441519259955062785471968948638545277338237838025392013722030843300282321253535976569510694512187793119917137690577659926864683424008041534705070231999268231328114026488978958452081418462845697791565854943376714122499164289253624173324308388084867112515342336089226072479864202954006727321173682029452434087692607210393331052298697329095329616880226366877915677927955295857600708175727515839134626144795753217143105941814824709759806750133110205476632860292379757393113644230023989262754999350405158435499590050663003224630788599229836998581275313539066632541418552417061743587681317922769285110496006025474117250203391853890587584903434995892556852696090007554094149295050127755990151409266661061783411736954017953111673761648766269708089108620166665386795629680067053314906145042776948374322898822285401848185662522045248409797647138138724703839628128844410723103389459127770301205477976110005512254567007214376506057166028430230401306732381876035673520462667221077137915424535874578063769733797867150155408796879396329677615972863200418859147104880256695848837659769857313005397938319488081334727085718319528177075192677738211562564276498857961334679343572347798305261097713120051183957046077715321203547136112887545892308103658965741058327014329715821203027786425318184977728050926522595526632576740979148484036597316139567691907819687484054919217811185027812101841029791976445709813375890266500133625061136308889612440485468556371476013275354200110348622542983654269873946455326915307296311215016582717106232792191692830847416627210146761580847733481268989699560645885145296427485649946099714544775996676211233639660845671270980822802568362751591531849053042954323829179561377875467141188484334208914727058833165654087085391651304534332468077579310497943967022134742151753538780488168528929869988545844101915113625866075125015621312919473502486640386988896402672760187891355417881158776582324037169461558550383809491625382689418615660547550263672236192897366891044898138201662202916366425850904168873466493809163799493954792720387249454742684381706581117399468395385228400880894634130493833981921481440570427383788556350711736507942776882970436026260889861988994899082876917560094696972238705328152518258151229488084501004654124693278636940816267372620215935866387887920207346292645793277014458643808558000712029830426231524279875155485648150845899763188036718782541631690205974075922096114139594610581709928352227169208515435865042660764510379286331859587598043853249294686379172172269687490520336960490060082200516338116901973984772467920256296058625836757016900663142113120944252383288862905008627473938489988848583300394410181490599477093011616694929612272257559739166231912432090243404438553375720434238954007368069859828314021455291812693404853506383266659156260049879275326449206968197181449002337889806975529201619616099821028455563001930857686501652945852882917792858800217126042611423037839894663767050121431585502009298659835007220203228168640304519136202431378043183977493039101443221489621749686869129076091659037090534528334550366186443498525893180937024908748601976731565635053832248856338554688373644828566753072641284263781741920414419451405935646151104772423269052134650481791902172353757468313324139832204394237740540844849981585377851416629893354774022941500587812505622907580574894959015202082034595667205845507863786976013105751104158438496752610862753749255553697577928603826388216470297895812009558434829206223417804612199327138085760434932697041800270354671250353344189255414157346582792661469716044550079461472311411274036511254737900374238582280682030970273876781995765262649547334164861472082450578753296324297413544370336945691996381963812731468978606020165890848374062728970618979565839478367896619957434576552002064568428144693024809922501979337699884349097942130676351872329942823249676719000741419834795121902925578882463157926925889037942645362220778649510479659152681276419495535679621730496070729328488234532730431752679591916552861183577781803617570774443460892709813567029797667518983963070707361811764026881887988842590677354340286789141380139278479483291228141000510144749619586503233966988009133873355326727779627753580010457497147277231361449550784791375532214847166867379987039512082781717349633714358912121750577925807648324046448723006548778510750054564702787575641663979670080841478143492542668919194955785337673746052401690225094718332387022300263390022237644955394235852746413659609830563155471002219568825336158168721843206948387162486865180376871592059198731839742674349456777192288989367785178492794643755546928527743240445751316473333129236879773538582969735026955551615670187472930613295894979738579340990949112074998108566474971444381673589834356584056590719215918454768125800077851797116919403302836603242434945882393144912890955419058664019152074723029520861136470233074946200168109973339705016188110992220991782577122794312728943265970763705813411684626671705371142584565066928190889373037377934026657012086726206968937988019671575779301900233669735935374473943119130806048813655663176535119727984515347289653727396734304393853295850517153511014758941516633380070485846468726095685712862429570842433681578626765882349165762375244433534907747394001244638780607596139813220002771880318930611865789129732887291444468457289983704681064698836188118772095808183568484671014748363159591955599547022363434335593925075378231127895208393109006844547994143213385290020431048220319453648866274616758142214537831883781691122772983912312589968134469700686881390137120234347048249778506552790013354065618166229382418319001224045409587905087149101160014401785040871670987074220534261174918710279771014365408172116798771090524366726380493289759451085562069184344890741383869302327977776823878436095529882420841609112756330257517565723586401670701407077598771998837630349286517062919237300572702653739761584797465699477721137515908318463562169369748257492756692516838800713484687029506960582218315719851643574597053371791988127284848549094679522573628373900121280193823610437837324532011973914812654441407319262141540190993677644739467555972426256089400832612587428853149537125415718190383095714105056646255633468790376135927958595406181143142621381124810640181320107386717319864114668885571232200831504522454805917317370780421577235229092909991451600889525318739299199891997080027580623425613425796156759966766903939752582376446498621631745899493890976941977449524294757937035151921782697699541212132353069565716702095862863097430953791901702818246230992441866966154400498687454635377976578597190349045234429430108517427388022890793713393314936145444893985006814813645340377269096537371283848137697716112920692255282314465994617179655090350672297186508244980358182643658517059878177948244188217571661420427190499148430359656109191043038100994361421179237807871376936503786424125114468462764538387388577040205135859970790546525303264373146828742845733798850552153666883320738495674684585755041504824514824061660312500826730389663496854558191737387482957703893810553327507122708932385667635913235371459594619009889489273099533819233454567101452859944441664186524687236324709233006650926198837690255239938471037046341019353738229224147653428565888370498502668067889278156961478085680902442149269722621264365868698823566577316684763465943430501637860984042682216254457877533626085962916656544071858216255206883138681330106251142024424840853436259407159205122191321366314457422689983227673834036926060686360813313398316165792080229913198555914805817951107423058649671436757685627764508217147514010318244434505044518545367616776596362495396807671363653900421310896431891865053156662094271812741562139113769653864127967935306020870802267882333576235564249709562729350238270372758264475613137112645199330733519316305039667703311122579309276659805741138815455016800717132968281466854242855874341171992160507285704436789844392901632936632723542452989253281237831282720734438236303753474845747123641717469974088763699594847478059313510894209257355617783413813143487568463664166011641262033853502935559409684278921041133327505681671758102840564709074389435853746314604306682489488611584801012533388652955537062731407920743599160142044458689625120450374478911565813303648986882115686924478689329019503927636596157451281825447783978439982307458334336971002309250391643669756029173876844341589602957218066863432203002604780026526982955074500716234972238192919225958128167048996536772529766533663569483725769317655192375965708167168680443900930902370469344108175581457042885430703364386772181055409053587821328157913660276009224755936215734785814394264284099860757358977515712302322783356048560982793321564233515349431922067548068085599067824353353207795430457165356529978187985676758307235428540651214962445874862366936094730113837079236640932329425317226307132706495419522640150159891315024057416542699474594870477878255422897782237280084315854904840180209202239908779891432658029739618512796700879387260902712051616622165509553306473446362966008579065391348770866481388566142200319588899626797422883320897509172714694423922664470966671376898014957778015537889047823202878467661162330170013255542800493004380222314856969038162312426954962859420266726332508040053528139941129129422181013364635044569942905430432977750385480658257267488617672397932654575805921892792852911355286551209497061619751659205977618691236229136745386198246928034219893038536126551752378672432910389724881668308921245014944544964770753937971651819256172068601186130759927198646268112546408249132737077465107321987170037717050122622227915667956613271955086117283876942753649361197315443888129172327173202230540892979606245839233667732493666908984792001188977330210798891931730893428665544234020976680184947022303695959555341926011239937375451497701192808266887632135903258224422755427069996199872428125262810495138362374956077869933143399862093032847455585931957822835678084339768473502929986051814165025021178450428659241148590132961831552703091665559431757349002502146109448958806095258588539360577444886132153974510474946166090213079616326873654845673903030969302880783701619434368059605365766288261363368999103151395997094374122955012230816873452001867030636759737991388798597802962168934939964998393270039168858229261554071159618273557638818949843344985827901563406085789983839743987077861561257749146601971051835036695776197598335535863983870513984262749012487540865316901354776147824745377898693443932278234085358466370140505341387423610540433724365327824958151336716515289277660959700701518201471096804825517108820103648047146116248249738890245563380913232696267158420827908789169402540021397275489795507702245217622905878258944941001953273693798014125977742061123660376034895271515597913204016222853348512775568677781543207667354332724453294619819673070515055602240651385654931109212881388757113201692769518781044813402012305961169035287904428799194374779104696088518301709349705631496697465182476246773062639492453541405433282258011114715752057205051551302950844105419755211898588571881253677237237248479449192374887918988259454274799308994594671426349241835892087737805842549933514879966246562531342800094228998066427575539672506102137052440121882770672886693623120221951538942232583914902854564603187851003994612348278547985960918544763787582210812577766968133627861084954399618992995181035468205557888601248033849537354860313762533715821010858615963747120052538180866831795103181598231604155960771375610681240564051840060428692968680303382298376603010617791541758432547391173375294268608676840269016196753282054785127509343458996288533406645824200901368593823443125739079374877451781138171841780932225754829157976064063408934171897759531362298375747870696192321508507052205083933478434539061781048915209776417854642562654815455527923480887318688999338939896983378707010650247095788943588663261035555384333935260351489766423249884631942026860869682382619005370881706451326836881084781767814702873327968258330944596388768050912206812838984715450148808583309769336715994146881222953172056364813142904739064297007912940046657595924399691562152904080502132625723865775550092053018474410826605159938387944915318084818930604062607126196534591818491034824618133932344450841083018015312219566707584714369413732854245212958024133546990693888654517333985340999277108730326964570654377636234769665519750679458395237705334347777977668645132609614825770682324900578572785673991510383114617983869258337696314381945374394504278909001815090840129727575777742761341439839566832102213327865673290377652826292609698807734988992587393849037229488302708471496816895040533630912866399207398239407513851462611385468837512796761438177422902588630224210587883419267100666929194667562487633853628199676930327442825024965807693659017038720827328560755348349400049080467751189912445722968074775591932304220271065438067094872187196938632971153470518711473526984642302129044853723923362075055614728487921853918585742210652321641890948404457680103763850356021107030176474731242414705167711657822845858470270295859745824552217511618799333514488338837622440666052359958618354004077993834049990297399097160141994359797568514871708514266642835660529259659302429528718263928749675102904949355192703815353415626828858082335520279865932859784224833448010351196542241889221923759686939191101525761371971731133093523890677577504251546930322505678958093089488558427035851726887561264543460610902018442533725693724309207191409776891712688549449886383645528547298919161049999274277157838510277751109620346525620584117247046863975745353468541423661656056706665808012154200240280336600666742847307076590842111540296586600796633041315917776364995999123417845037999883814048547162733268717967400267567521948503770504930427994777812954966168396745770020986836691110139027773000180956409250533938541961506409990544521066678008157668594850528081727423992441673450276015223867673715284569622361016209531609618146838635048066723576336765264912190009528296997516940363399883729708666627355963598144898850418202315059795812903589350449476124619443091185907293311692403418022846836588916050283509482733751384903099768212315977790021790953027952788731967687538534936980119111393291482106397516429051646224952680701975694733881431911002283125218574763841524768058663209458055392043607875091644128702260354191375901904044428450714653689665725977992193484988552872746085904779979268758945701801620611388063615932416453289214483776275168560603385563547874752550740200891900738029874132598774153701588665977997679687253256326336942237692171706312852962317981161332562602683901141139572674570689821195474749764204741694963049154904770875433075507867932206278320933669151504650495418470767727269104657357032836118622565308327480319933422834391038024618501584731625699062756924981416889306447983240445840831192378964816447266576823037655984582028817266714009833122736346174847078977154598294832092943279621141925153575291302851215261578058989607859106219148251323833388659427287535157629655357246522274279734641934668671050244519706918600436790379777851713109836463261279159053745207480380124290608156152099087408988124666700551119786925557631740679092163998464423707923580447368979134462951549168766941364194271018676277440268046093490223321340443996199664859329980224366978281874981783489954983469492190355117018913334391388941616738771502485168704179621118021141981308615346062646903905031753565877331924608310426956166060972297510546918766269357412685671511123261856330104464032236821939704407758122997486982628559368638218883483667321103146286639774165357830820068270210223309411497481576910447073761107598524120583841271786628069485087977179081223581608644076703317691388530958866108067719885832036174032976524067489561458343428306097288814086606512477103721675775274896521552206210046581669284304507852209147453133723716885446681109277444258272862903295286709141829198220996040031669044111961006356139723238024636739791011642968605804136789427619863975539988392519143879530252640873485538043130262053570838232978398637639934716299636201601150364616159591983889641405501592837566609047410376591993090238453525080713488259234293403790979960139677649917726582696390608978842586071187129627252866595919082843683170595557009673831406859848586364796169983300720810497991030244681220751859494265794153534430776895430037036583148376213394471155252991238206560616569755311189791654986677746540227252436118041635625624027090480868312906330324360846373351764775462514821595398171196918883104330725630401115633409112535517771102779821787889079198786128505806669562074604546031721384673999006363848806298327894069912563579403470928254722482719965264449243286617335864576944178112622797829795982961139883992549353945790210948181933959744017514115897330728168270126993290658445853901318872596345005100509494303576370033864394369038700536469012209762866862256733089576447072298813364417848140289573096365648024511050208333457396943318667450785382733568055728204815880907756561681417279323426363374789947152826875896608765332998102836438342345896513669068332986219866144591055934446325496248640317620996684409269512865887429951084113235684134688368378724494223597476006749464486660901621660949553729811510326829161765124090369979492055507500567910776337001059630889077271258244364921361368985334554833668849736141290809224131737492935615673601336093961250984264321344322019676500742025506194286065486714134347903080767984878674138164527052955639433882647718078671741214257474992224383182402830972245828180937928030188703788354881231135871304680477243891902110414066404641084025307326243543552082359916082108409472598324646379078048145438885299010880742485561689515528519526502189749116853484056945319902033388714719005630465542915552799302980790992012181286095549521451917838089356588483443114618710651193570519168151071404191179196879325230687525782518482097637987513560007933480989180403283835651055820639770019746347818306321043200114538270363712522707484175624191903790343182406518631831381237530853800467698541262743464227320652346200545759665385425178381961914590957899826029985592332842042765102310040068658132374336121109166987341628538092748307034966576052533934588743767675679050974206953200301699388293871973370452115316709131866037773946980299224629616190393921463498020199739235693193175549855220896476057062595883154888514310930655145154901068161861323091351776261358946837496354688303633831284101369778995242775077350793467150841691921337853267878990075211785438813403817642077340654646986907083587992896266356410817418432900317347715471121796505838597213727707635493448447537804927127669186755529414427796503089221859827313985427681565321298836641772308097798815697323985742069545868241319234228047331340137305529142019455229385428116322741063031588116054218571252068264915554569614826247414543178527030140205567389575408242650919718143559629988416469875170404287613565051951367129901812218743218054066828213874281178009626606272284214924916627429329954458094783694113230795197306447678619036603763488215016800002418228828246730789009623618221567532625279360441722773645928009647188711088739091921896320025018045304222231176555181197495114232203173770341377495617177483251523596334221899408730026520516737485036152881895238427205969782214592451152661617915287948412119302980994723816358777891083296936917340493642387928283769044407409424337083495931971165917429889634672982587222876907862449733996114834766998858288443848075627980182447088469495883361945633964273544949629635673086470834526361671785271658297010268965819106975471476032486875355792516194193105896955406944207499208899564771842196295963963848699323525187935309620640727418457151668582631887685833607421974505515393674659465820110990300761613496416932805680381473966438719529209850459415985598328755073222725317643472757684284459261055531623376940335628160278000302231833140600120620824729728419858617520967883522963794837826355816195127179479044320616240996089628042613244441900814395408868013450972727238274435783515329453364818527308972529816121878614383029815160698623146070338160197334668937997483306499330763616373270139625372987516525207618585603402823345356130107124614470618197126928608607883303956046340472703741204267543292044289782679673946276773601260047721561243371623808724179945970079918587503003497205471070531619558461772566674555282524340945933225257899506858129190195545333309362314164534422467889041314906175631541757072612438675556566401862372177903732657870926338536670296674162750977255444664019393953358201498708384542443605129455346299908744861984768222702389197842169263852163470165336964634735757830237663382953695325655897869481065813278292120506916034537592014305544501473930941901472812782973482925035834328786159120198864694544596352542574364988304835402845154493086971040425657120513401547233132119328434640008251151502261768231197234366046674867120451398097178157288054434350847801335815872958732585744193298940235108942847277113034516222537283414706819630768464825367694203287711701398885296016108400242767774153179394335525432822761224331961066839686692965683930954670552297676000157885281734105983315503227300417927750772586887417312604173249352485840460795089072789615948588636730083122489436785370433285462100683311933351233815285649612786999938901076976315701648572884373858062459671733913016764798351355434350749876216788160122940567278893882826440946601154234462926547056856515425835821039760998384477923438466764846583839683946544977943830741794337185843743953473367551970905611688446472335933846409718184862981336957009234675364743432847423586197695420727178196217068731929400920860890617287609554875249569681314230990641085056799696218329019906922379545196713182287048095577229901806416120820554858065957337403770060082374667631876706421094491544961912321179166909312906303072647574965114670908400306514008186917248468996144365905608587355322497634699216666395455673503252012847243570697092796922317551035398881536542296815277541249109536785676237062020114754603314006443164558139333277997154316634692417445106375467442491283450801224820279641911326811281722059889105678788927409101244284025684592681756839773943493232904758138557415788984958340557758874154032754181058540428348480079824159962934279831622723281557160475616550660939039674288057459528096948932751086363004474050452548570987602176517810346999776481997013449392449000334033966093104794611724371698414165716784764346074589331492541750386949760640165628896298076583237235287641745830933933881408170546680349271129720295920077470821107001102862536383091380646913444944688836222831108501647720726393069770521396086779535990541634964871687493278753447297695074825900507431435560215125675251142786996408347609160687142174711674345439201450540639389788945226029015547683853338788090562352010176170983320261683257193847270090359700730281935927434902847363333214688849801591690294506380112104479952479138774136832552586405690268235390395010031347371604567606935595190530394285519490756090413328397242121386875778716270608998520470547668896257820279586378367252026880407759671089620213991054621417105779497654813552079784439138731121440684161624801039382520202087451099596822939300697500856457489880510009642247208865434332393465064275115871762875818021092225415687162005413051533672736359989462352904076707588122270195996964909001149834435251701479882661034874580444598751096466423864403538246184925116025648778086013984024033512326181201525656340165152331152245520453395877287495270153574953817562816619747079635175682130190530044283173136652548521455416216590929806518105481885095610944334063554300819877290383343818265624499206862527153394733310856003768663726034019538333373258938604514985252363730178015553941617693637316080275275153380065753309854356736893728855268988813249754953902698573483921744392074084462072193572487149441666294376929901555560043703680612719174084034084768189071138224713948339780423414472597851385746807539159527721714021161569879481369600941463836660908896233301754154036174242522536006570855575148092405321388466009756654195744054851782416185459117376651467304914300611981910797274569812975374525471203125892970726048448345867389964486340367543349680042156573409061512080707895109109077613092231967988791643010066851381015091993896537419153429788917008052066441197953699036126629767544504170934198838969297697554134283219432303197963266248919216566146617354271518158030518574475694053755269536282182741130631804131947311966432942999342292813350652165235462500547445085549315627649398543941068146970118506143666972773276362436186483495807815860701433391593414497300599590720420287172663613043855791269285952194414223739696206852824206460839519442591037921712095536399554196789447469463859386448772094116887147453662732392821430873470504489968435569529073391066391223993450812888498481581816426474900443207935312558728691913602248442587857807373844642883132255423461559424622750732005340890744194268817025873064467958694756425773195231587633194458540898988126222709766150803232341829495010839257420040663771669272591854429198066512781201951715452578102788673914701271151605989247752171833580876472419417375803307673054354173684042359324322943759357764593662295627272120885424241816125181400211161616451330956683114013126438133200208186057975485393352982884838857794468868118624153162577520693609771234624687310929434246581047870449299478116521710056071109380899880922765642520162669273148084124129933566571454331966188526994925416747067360868825200915775914010624195514841733155900424777691010184434557800789165516328783155531619860258382507062585900913000185979149166807030192618280791871315035690268892708621112391416911491307676395870194350551786640208496774951478178180459434818938470069161347411531467072651833299826259155363169797407550317280413388244701431701653094584174722836729407874428564044804565779683472680799555978934779585104583163432048902433192182057342725220620153716247215292245899142714265540826556511139554824833520624285760590862495923299688395012603853041654068961312025532602188580448015415225313853438893708353392987449356615375301156306292292539553312109806409182956625262887253738186824850162037471186085887522024030707452533142926093166440049081581856227464270466405275549067282177304743389561817732350271131070867003757884830263275795350419215806546633018246208200740806383675539845997512566535746699319253485254271373750503775600514997302063718166275743017893948730667031524631549723005220988893540770763079520042702808146367258217295197647136063997680958934177153153127867813183135404961636074614821557388565647951923755222646975420763574835520010468557317782882514817616917344903327670414320214848969781513932461076039460273982158391901938992605955081236001751362916170374191238741110519251682530715460506313361320428919534342314552946325634239542088851490600426111789081075365116554789536427091340403707635467748790863949021578778933896705860233656975294839985853075664997984865763459217374529223243515960280628358191803979848063127354580910439064154435085432934520330338298272987142113681460907052550163081897717715832786231408348446146808556046616031779864468703622042027679637886410804809158243683695307928219179745041271700947937797156604301055455865478521528422635707916223429872836597103775934194359795240514677087123643986884711698676698870223512675972842079471475254802447562900728707708544487137507741879491795977584883102316452550337608500197771395356133113969273312761071645252705576885220370271570046484064798386007764898715527485923441018422237452793514639055021119735966456183737470214593739084432035671113289370958467395951636357297408808148568869458225525919601201919313674554480152313500464306946601087906988532874310039507838607702426290822516110814055147608892704274079016240004473302821556530945519253664701606344314908510787315641391541708192754787854820082863341371662985877975491278833348702843951290287142008499171715450618118926735705269436670896060491662486627856101846522187647094079261081136447132787305065287325947899041277914889239456028361216758701535732280125802241279182096624707192017872419944507603785150926190960625294409203054293063750025798248793226952110393887975646772758718999885314668877280755840776142907373292587431224121023926650626870973339239433361672678641762456690168690148353412225594824475229700239830390895540213125102459724361656790791530682841496764088451345937667488291873202458045920709896027209749044907780336945483927863245826334637680051133885549716320044493473567628209750661057956958502713343799908245699326718120970554735556580712878260305730366501965688440020370623189711888316275004556401585479293914000576697429767779595706056531814942588860861570360837856022407670060507912100764015199961436707613769466695273719413467636730036137101606475551701414071419700564241514012146131971246995387241673957596238922313865288808520881651915504232967813990724242863322702587447847646967441953655098047288333780911808215688074197970194629472793915890298127388227132326336315239247709443729171989940043635702438219211158575748866541100310206312981048720072631758396677431728477568955163124079018109905652241881873119746916096568144894665079762873579069501108546669602974669796180712868348229016066346795464029556436555059757188892029241442570239035497141505242724230093443464379751412527697496383626780946248528212205192436586854504440246912981281579173139040701708082117171416045208985402775777743681520812362437870705856309748547259376740104058170028226031930915480583109034653404184000187269240763559085348457368449549318582072243153464918837010372747210519554545387450938487819925971388779853373175356728984274182025233018505477502567794987662797074669015629942819275596752310711700969183498131576058854646301515429036411097968949120675204523158200201622883404517328717955246094900233514155830562186449350468473151003812232275125047656415948820681496402359641792076722642321982141987026904731141190135572787034166685486316451100428980912630054385080223662116921953634351843432163432362395212071034515394581936945971655384213121889557391543868897977995714792456418903807815864115618533236371947947260161485104088112004984190858939292241872175024898302706170309325691063507132692840289529724366900850126262759551802277167538196326758303875663570356894644158852198245361224608283708620732254740874216985548764677199613008632887647672738847379320218622436581071366268631472236084387132478096803381455652227625116280154699860301946626492263459151939619496860521608295975514650219312478295943844151730827100405903612303154619601248260048089024473426586056061151988210807722436050375427671891801102220548468262773569605700983448952314162456389611969101312008905558876977130035051418337845154104358338090228897559338605800592941717659327066861431165736616096931038627114327753770822628382886593148329112508366791640650049264902009984796399289773345173686092924727406185238468794928545251614040015793602610894938956272560400590997400043703770400470603872030485655973020705641722876406370766750120659387228259040809580369119806471476581145727692086463046177493752588620531151229846077246477498946981293775718612641665533873848550944238956824127214416991836535714149190199283762545527032946209716860601238188654465808705177723217712711745552104278992756219558710154872743616623593987248364369992825553713787045439468814762163941603914824745362528893488849829265047853686843604893009832028064399744767084601866111539041143219001811268093884260489019829923370586867425012519536256409143240215458069251015690020029851279362454167907707362485273242214745831139536968091702513434004389115815888384377878091842736648081748825945529138284726693409572353278305731397327998703050572703964834498584357073144138195451490187551704783944028787653749661958102236060144625185142332751198695710112497127398498920774325047900207704726163201783169226775983577467852564915907686856321729679007032353553758851397947687783522639931657594140149093875232256960135246645565386897205311268596569100932189527749867644908050444420928844604184377517998120009194013192550287426881652109144631346129653373493355947165335514923312962590443317884119003514024721977477403356055804623822463235122859608802445065271786382189202053932111628785230540222067755001269328303488490817714659832899208938920905415961560500889511767664827709648544480338345660204340959958555431322214322775245181216651863037554579915377148439952137189894454840630241602577623260832743604501585533892125859937101917225966111272913705834601935205079192714572618081797708092321595951807158473791765674012665542586949999749858637926518475663488179344762895998060687283041087083305367828717001086596842772938885677971712138749361827388975385907096910697315662382413098918801817024666178061605205332385875414653543244887055945056264399064996124653653753279056949458701733984753548812834415054922738942635167935246930722944051440120987339229545761218641366652482516697012108595043141318716850841556811696836506466935168742111502141981343397778632687285980524599862139264128518626390595095160689863156762920998612421204954467258520294733337488585978784103845734047028485350887332566595409231743752314476613258751410260052337838534390439124448653453496059888896964334121701385143372794764167198507606898234166812768517448122244496602716859138962310543208693776511460635386501928257596961599199609627528750349363661024554113882470627808284929485527176413368413302382676700897642536275680811634789719757904741777814511486653300614003790231566749001676094698614332958743578488887497734206019466575080235933308440862699866775220137910310909174121862985018452148652522015317116668951512602489230652253206896286274337192486261160891712348701871355351274821500223149689854118946385498760589770951299483295310845646052895590708344488441033211188731621183198646787317246403072593733955609480238917445975258768736152044185527614942921775161155138566768922346078356118621744572778494397867765949395685149204137824836325279623093838217853497617115539811878912604791983906592770450466036481729934200769914190089478961722780717090148453274011509745711281200698756661565845494164247468197083138925553500229633492885619293120429994000269659203887412954261096468838707030581394439680460329125298395507382941332655095735623167577445593809854582622538349145757944905539695763929472095948568650854796910896697231006373449816978828947579140199836781215509806570301260051824873883320540862455764836384505601985408644838649233957054790051223588254996758409643546058794763123214505383612661780225504791091617322008264052172636169327258696033280438493804172480914302133317497166079501473341986451209560711786130833033654277735697993921102754009301219589627275359502048333801253554051945623729141821190632217887004122119170638800471790439018829331999689019431376472121728916481632333925737060504715149302045492192756432623591771643226765415724934458881418104960665892708676311098596251781577308223003497414431791297414302011306834811789989935627556958610100869040610812169796897242858118262978862186963501441972366519761665502304876668042026668915185497475068581973579729480287169145159533821659570954108836097417400004909538947634569938687509924526019215329008575291094320226724933845059445354945012608441860587106281634515172099384451248229685096246502289934659398607416936097863852638246264791589272607930505417967926526628087035477428906133586424401747350387618215893162640292447824483603086759157584627952617034719112946800198672064862934393666833732336674502048708834487157281834233081376187965561055964135314823479338161884561509927390456308671792147430172804822947239302021596692047364277021370670109639206436767227137462113387752508098004414071537856324812270067966613894263300943177439784970700670480438535426252191093296594796308668738657051711034177113756766963425979736404260538692401717170878408483140899474942795202140749474802615385932401532154248544419170931661811713318469975569715940393377367959289986156674133272318208137308838440980673160049483050486984838673890367387925949386252973322018314965958332079558513137992930103033160680198881144372838660283056443090781256965192774722952090703571747056233233151200480431849828290745796970764407705118369390048995996858824986872299076336050519245563832644848668648958564100609324079482121730045470015543010732270928401405231882111202245720836566335868416640638450310719857925197209852981082171652480689186778751789337678670636631595378413656734982658958622993064014081431191368719009279249039746605789838370023008976222136089691527542626742001003643630695652151918718434188741755913528928574215922702252171010739141576610251613205017047361978038655924118437993803184401466786231891997441256697992999901597295729597503278569978768947752532669215433847814003010273464223283566438792840967941707368225840741958320301512170341639838848103967010528062219829553142574568227109727904663823520914517587355788192871158224473622081497159712394776984959415663052919188080471750921324361734861301910669681321219251660105855792777258010500195578336678269940403647191194554176131849976593352073693914418282935258870938576619622186075279136994836721938426271950598590663300226400711541385106595332526591864704603551829815397786563511410781631415274893789356818874805635387839054388021937706786144623217411394635677850796095042315344654412809027178054456034002441471361378569485325785282035707167911709943426835421612054711948436134852291956770479664279713088669313870163260934525281942330174653272609560199165929536507516481052292052275951920915837029187198922672856402796424642871833856083154229030572524248625284834374307535304482120602855536976262411258147477000000351095485602639146955425471759524173362765169192576331309285155057735744866810966036381161941692857094329172873072343712383208797530873946365688137215913881211329084913281889894662532651720179635418257732624059898839192698291005350753538204056240942399236369182728979664921906880216274651679581046529297731079889490262125421119513168830624392134387983679473837716155309579688367917159442078096657529704488456153623767811780603094871161724922275241747515217809479866256096535147654225902694147211396491601568105745071281132362327546390904615325495874600824366464114034759039145322636130968518615673562908147239952978406424328337508422702916299299623719311426954576752356719386299807072404176505563197923385531701402784342562255491800561434020601436415742933035245797565570681860937245434996928567643601122882291751701829623000569431647743965317900159290408610297037386394319467226358660438808080333865849757856714771723926267899976889353522209446035960371643398610477444367892859807424085810363094559345997311337510802707776092684056517466069382862877247322160433378172512217710798911030285180641329313974603561116289463055407378392073832354103016338718418417374035285879448937879099549886763256404076287739625365475838507155287255256675723105238707962448642597777905125636786230624066634571268960056440120122613012963410683913900939460449974065013256256462259397788359328681966071021190628164036363961820902869327948659587299864408615247381291272890775525012156612029715757837517508288280611572640268125287678771355598634567170131380163567611599077768001639633704000232019530265215189257346586394590703210498317332997717255970994660888604503276297734432446475715851591494304038963278187656067902775998805291832123009371764259166830999455971059781088302130713322982621740040142659854715966104471254964547072458809698980392306722311107975076987385316607018959103537409654330447688966659467398586225246446382217825490028330194807605582186713800907600225538713762803718867603391577622724531434137023681643196109135781289857605128401656167580833143858130358688514598483062937051321979414493729149733373619607757409398557808021559393641050358741348351818349063465789955441385447703954965105433938108685318060285036566486669481629808618354968461707657353628462715779618431702914054149135137625088483230726370239998615465073943500059656034949874112540488893601658622110626566608056030180559265520518228934653671724115100501759755547735019934207950786450370195479509816811032935879665136351395395922366539535508657849937568143911667860672194725546921501557661617197723805977316995585160116007139309945758442654220350743337370425740639866156325016852778459759610838272636979233058061752542239746178800492944587713858002015604601370520377650263486211594284806786392880858545444904880167502736079246089609655926850478817982157237468063497313212321394370227189492096230194205428980380087484289137528963707911427158350460026373471542015533888837932107885217766176865206495574207779985545437762745185092983277694802493661689925201350992876457001780572111686877731432940358743688445783476980474782873353191483245152419315910969489174060123744151395701398868992100426158146915674784099206331302694602893604046816459560346913798667786323593406990357392795845199308859117108296003622489411384573900697671139303603801286263678125324333455370613434612744171440563574176793690532925116748242588277337574798904062745895096384954846640086000407473995093636119925908886329322426166118887405553059229260252993346926571557401146139260409847097533740838412058792527734318696953368657616610036830603498175509180955990280044182716569118450516173773377879363434593894165482019600660848696221696543498305603467879476849931315732518366615752748735301981507181816354324344879850507768168537299120464595241092474508699460122715237167598797460133198159515224908671215372947197355434727868101083996413341208281717499196654809398803750519090838087464322312355202249929314560146351661025357338504725644095680702857678620317055183943015287868488410477165549893180998832683569901237795025333131387418744208117987477898413343968175404289770102387585824941163710361020886308272460858030371464063289414976131166620178170453964642409157680014669286329917467101366290930139187954257513245879337655383421325875343271906544598389049396523816292702478062730731670114531628498342774235073211951332433078336216825609393805606520007200681902814289174557656903683440838979406500031528234222461341644489868697936175359227798845133873935260982173725454504560698493192431114525003461393565836889454276686814110973190735267673537230111096169137478215642246527115338895994413787964304400058941378655589503634308913533610943585999914648511465108422781006273928098866671932486362219981639393783689369068623575035010318401132992081582241511114281627332873977032053107734912724949692377539122220984808499932267553222321035425880507993409921852382946728985062954415669457230167013309434596386974923761465788751014773994152556235500541297600408921314257332859866141124354751719344449740935025999009407541644221416683675091122235609910083843121064937165960569627158119679674079309602762748888762054443443876763027421142382158788107798622525854799465968532703039813697226580102362729981238630404199909113904279577034967793243529540581230894756423344693087350361604658567453652371912472091213315702161064523975168012509946973486480060755028797405067764207534308418016019028301226714885304245533516049043636362729019028424219265290583817184025127823484517098288064917604499173506139594077806261065232377576608799030120163582015580550737789926894079043992242227886595125053982779998499066094424450626006797301692524001172875528614616964177904667215121546350233729938529347123377266657670469984430759293779485978682345420233101760841959858951088368628295893187899045131538072186560901278979219207556917394993696192936743370989137526795327459333119089549207944031658186283954752489022585445223568760708165470135228122801643194488373890772839428567456398752375321543600180442723651003395888377142316079310828804367074877842244777132005472209713201077984858808062965864176516406252235311641005814673039143899078492731924473596361812561775755074360523596814207070797281933877614062062242181974097564582686413086383794136201580674767253264193284144169089163780259755536209080196135684671806963901779135369585331262579803278890630086924800603733752123766605392797330649714939087291430580921337246334592664185379796875831470779129002088682373354404286483117234245492478145549510508630198953192179347417862638229315430955547029166932809518363258088820956871427547760109153877920448868873029230852322860248912082477203095858687611796903917430059950832370652753864811098182877075286324713056348949363055017714909298675929373990494038568423640692596740427110063066113310219265262122725314743597044318612495815255631261557572521978254020788051172145944616601722472502889365102838974283601497517287101015453042507882584137546559511221680677361036293295296943042569971609332419551069778739202605803483172572882330068211470123346368142848432710722671657604973486632826816477587098575046348350144724209308398963678079894800835521394507308990934000745686914491238484984254662509465373559223866419012070809585350581921823350483416849451655954869095109514751254026746085544542088767816160267982859696173588279076032498607370128672432533816661082683152052063287003392483502445517710564097971508016040474880534571995664529941976472731954698527749986888250235034333119624860326778027721476481301011173193652017237331183045565245928390729293816645142593222347150475545851450989566632799853378473797505427288769818838852180955660533892179925532002337997637860022163824668555218153385839421506151772810896185589291600687587777807560472252376695045453830215459345709835282793681338457858295387464479843281555420658493774249643328271063565219709433106414066076495804193379228835868733313249103848345831802941273747597103227707537189170374970137000013384435756725663689234365390599050438638213220377253112256321049174051368205084219126551781466354555189922665004504649172779065176673434072514299449050143799432700864077974725184657059783442020431156450225008156937066400806936218228314144897900491788573934993407657366567071757978456784077269024935197854343364348770606687846934627137647197605569639328746303759625477539752497002293656279219121845063337245946165391948317115130543407242104698944503608491492058008274990394341524279913524777846260489369941603737905141667445794566169517011419307918391369119965521801264322109289909910221555127565389880356401206176508096827206312841314344741301304174286928267773314443526304811470507434072245399481244687078602431300816639214565990064875942154160519549738829071898737654840453012919735261369386588109398947861115803255832802815455211365593838961274483966264002378885251207917932534842707411201582267744993673971246690885527282225460905207794572208068234210811244672494996671113146240481533420952660860439652902505085775778985414487443531676141918272976513264905352220672550493762464303399543708887307385887576543375692246329324986609226876615923148863253304996148060602928217741662960141174726583240969504908948873017664487934211930980835737230051302388017024981293347556361794419248490856694651625549030796984355605975338048051716922608727380810772671400880833864139996726931859754873488958929084787237043008312674555747079507281872571476598551688216203067039541232345378088423520500770709873967610214255726872930555983127682322077043251619374516232908523035030254224664945198245825282648446776311654216155904353600019799654735927229074566129864286493234838238079873725589833717526085731946465055052024198034488843067453979793678889702629468134846147686965286198413985530411347928037170645370035748941195036422302171763725704755264586483892640960841663737854124530451763507332720996373731768096197568155359083680914140672840583570941664661605239726165007778836034248794951127918420170246563485075691178389966000609437246440842236376911274375411881582434389134413931834044671931287010166559043794469652947010614857128895358483856756194894164677676014211891029557330346667178723744889035692395315413640514146671720721001973912655730905882980708519385678194448367862429381223464531362725361476068366964523522799920807078004043583227560085179292198079757268588970003313282795013501704324106803778520558566088387135973273124165401059549771082218572360970037232917663923790979702579782790092788725760859204478331430238968778228377800718275616322636407652892585861258305878684241120739201748893760589496826688250640129295491994116620825027753404129203726006943634799547344470940896084092414690908879680658141945875188485346208605949989731498831909751857055653727025124009498490878208043581956792671988054934471996591780631634815595420797893480465700410148380958043736694672354127037835512401243365245157209376093122054952728273303811547665479458568080193265516100898663581211649566002878572737901741412365644272787294307541862191006600127167458656100123548795472449547633482093601359070727630295338607960725429524869207111289284130488262266891009209800921530805374623314819952007042703557968453071300198163492126889225070334648571353890954866839951593201512397258943239319938638480491846575340240000445900139839234605280966683012853281999637311937493066929218335897814862635884552603832388535821421086405253425861720952300463316475061862947078456757475069334574651069006467499273025946596237843303403533665245469178127287963204907051048685265347910084066728461813704417059170610733513971635150723694506825191293341893983847746156184140821002706920944490305068395315301946708931046553494913107216712937006740951894257853320047572010574073554574509230716734875229679377147229825441212444165973677549192119409240275854784370358670672100810517593880775499353614000751608873003356890054215652805375866608441864710840962817497361196523601442927717792337144821848225914180061688274840578432317662676098691746602622775192836005678204869123947220419294654226287603349467703954795833986894432902752556250037962691824292111577036853576321724480219780133823833501532018191226392886126471570205583231550159459549376845982089045409331951049276907826051255525363587213481826985675398573508797284402173461381954330726954363257655369604875108300473076799930667092250782082153440926547655023858302550624185107033277167973965775355345233954699914466540773230572603679802041553718755785869502243229204309159237954131451335084703319024226582951931892661690939180823703834063516342334696674444821114005192166212445989836952570860177357198251055161726841815878402081837472687679487896912924900570027420167257267925083768391417774710532203084387029555274004120294839248214918980909882661554205663666698317623622410664152717727104545753369214841648270699913662202034571372518258234670124412004851897107627200469164110365695806009153705021428880730342180366895518000169608472812792866243979047228804370471804406613339910994725969919775717183590106088397062235733955935539834641656638858521675416202113803260478667154688277043806878112212500443129335134576151442834591551663529798681271570922933104720792692196749916647163280265275817871553834842273155496631754953987379006982872795740392152490588114947802467083077371715229164839088331365656897571611935211115780567606895314173804222399376893049001236412622428680288510617180997046229333624559082511397728850154092276738179689319469191684152863697596737888357863854771598766650045206768639856302661136283252828257398985297648625510364049650998365781541757056986128609998133431224019301444343844855123431426854808141168997378727521708248184675660122772764842457718048699560726279818612074246886437968949491310861151239594878537173554238727708295756230790831057169402177107905472448644498391841201050969978807770260135014176359134603657863604790184587389970747367088037161468446583096514356892473552131789074813089585437287206093505461441546982691805842299500774393522950870778405808633993808085357001457325420294132012380593702589289291194326692285601592045117286974307172292560572728218998386563923058414856818367858202738820028431192912606260895867060126215809413265509388240121979770555786691427410019748955442322885275061652687023574436685805947822554525744976009681002052592805702116362539519860038226877856633966737675498435922726471359189494472804576646433582997767820974360245303525314537502773946772682510656207501051189067937341822591251222965918132296151452202016859784500621332368072996888001265567281236452441678946414705429367850171744598866819531197473742733094416240965170134937933297855753633092523436366872599385519139519782558057839223383706985345957055832056048381224619935585632191496167028370390366096804267846575633189161194077541361614346987576010160021071901444782755690957706363340904090347917774488597546493742515557558127525898965705442619131927954214981955275186059297364227682529252375970140548915335158568376434864611839973777655295405028076630451733464475238322451687190318851418974526140458463716183483509773665574986817682760117126370450500186402867534348723789635049764015201070322645901579163805573384631176893862257962375985288939703063841133551602763793378400521563760129135524209426597952303328644301488564038924715721680442961396869213693153117100699137025407142944565123079658400519734159208339458890983341375749451469226816096047451640180220955055000232898514456108025359180840370885323825354191178143534712194966966205498056310931606288041691443395324864428540473220835098090823210610418632544415184051922633988806904917163817370548804762093326792924197490361761880996326951850084166131678054105516977850314341091543239825151492044091275176290448525588650271450104915096999570366193294359943104073488021222886037195747236013445289670648905469958570324185221485194989627252037249886705888286514992340062028320566137757917771850672313436564862560899580795655241710277498576101165148265817280523370671316839148872395070614287946636421998281844354406023754364096477534506538156529750755661742305967276647906502464856414227941875863498297897691630771577518135782749357296207471054417984119708812950248463562530771852304746415944285752700499903521085267035307293654913202063113337990709394683905852662104863930406291775728517848558530737776426513794568017176206603496932066706145974150932334673940253409590865068062673862724822894423405886184635443274440028065825563132750812548192110900026183610004960929650338540192914098664762340824291875706529944162651258186792149580753758543993936534239202923915503763247216564509479415568473330985974549946276390706353853529542734938681169669244869620993696748085841580377408667650355272901523513694864249041658206890687009559409508028103839181455155793622486433767629105474979833326958679098935905179024730795740741098098397593858532937562491691408640759678847282142321897447149667480733021841683766293583381751600777289815495377434257347086900312488500042385209105278672127787657586292802270480447694378648647005739880769088007716226541972181691134924088495976041123979834270651283690422885079418997782615237920854100058307413418204235823806472571192161138791737443913205337994782357775872765558012772244119142374688773852148670877939719737336435761751659821711175118074057482643151096573020825459472034839772081973183917341547736824671982066875662289181635460566867641568019722432231081265870896814159698876457885260101771497528355821101886280565733300352940833560163612695489809451616670426808934511107403447072458394397300494682450853738757477220328231196840417381984729267772747027865497158076983600722249570103406039230503856092387358249491691619882139361035424573804549869921573523942463573194011204680258677824715963876658685446563709752907742557347217388053541685312250206410344371867289803398316374258919736705225604319712860273359289934509160048062228431337205168745725285093760072069043883209068805928391298238689101309257681762531034570121617306736968998961984846022208411781510985444257155269113775873001350194609378824489490982560157227477401743712572043187433540655706004465949001485232211989753929498560577049463573672096913047609636094889077429613237328886892969429303668279338415506841633040102334909443932996066008208675858712813468726959304048544810492994706878032886745551268311469377001211260058929156211250845444141042987284570836342426658107963712661190720815965712641149932725421010751444737173813755148567191368140379205260538166264435468424607420295191069635785737688977097330197149293822719273609794227324217015772816743516509802159281504434729754693165379348910672697127239981608558653166619883962538490967409891830926306621892549749000872107299740334266698210981341481076819634067655729336132695653240543556407019884803830076070550272329469209572202148237372116295540119653213022563548306942081167498719975778122670174113403905654404305339613850408302713079475480053092221194822285621807096471112946714002494299304522184397235907646475890525617200817475441455686498138833526478575943636628638518619814139133839450923432913149641182940799200209321978243213481567204808813013738672093248306851532638176260787823786657891201550353085130342370825200156765947217620908199992673395792133670713955053176325842083489811087965288217445631608623943801571231204281982736153733256513988013833212165516343905611990361901385580059611175175119489095680349119909675000635739744143908370124829118781767153344658497454557795923692400638809550550209668625383240728231383433748731220382906552230114533053851470574141689611237921247606149011045902800675030563744316379610076444950172026666392790227274641145037348818506058962232349777412142669537886872322150518784497792235705541780788016031851989135923237527662817344510584839701620651322114019499951681258855886086088169377699397915153981915168233492946175053380989989155729730290967889150353226738135664683301405593017595659117963067915006664797609171778509158287177382573659718275577010400538418667371074814226626309033845136649199997753507405010531965812546968099696848253339201801144235141605350708380875401770616417915079520703880477112706970977801223309497471249985784000745525308571186520695963537495818479387014166083016738198933944870477488667200375650018683511294836417285518759552835087688376857805594141090743412068328649724400527740575942511310701401324479700993290456765598485958826139160043511568579383280972660682634083232916285763631302545870053470981998549032000542179382265061026343558687779227999629853227646364176058162998716499659044573122373691855275247851192625628710305979406190589940808462910894341124878433364810770697533072113682140598800699051761397290472950721477632199058802451732944653320701380519112524497136842391612708748016594295130391429548432702717020667178188232527102339662325609090673089570599939165690870459703690935306033679793377098149062019247037209111191009259053064054813936956514359127483076145964780081851188801481589676983178847815166176434014866630015378627192799439841656697943203135495224215613524052056678030812115523176489911233812252915029826584054991636023039186221213120318017729683397662584515946432665770867475725417493307040926531352330883934057608836276501655338345880915439561410566852228669787079130249054895891454511075912707899924430592455367241860713203460252877984029431151113629051772913712234519211334094000058943392758847741649906722708328482007800854228462903325776507544682537563855465472189659749234945621339443410794807712019780981782037048638745255650515272077549606662251446030823800061769444902460187448546491899995205456574657462881848375987587234127638900629910390511064370043528782064896059789968077973952908196715709008079517462301211498874960837419216719313376712863883581971074894848997813753233581040721130566963436791193187537560468710983676451231950784017943552356508507145342389789999301943383186997011025263241030816857100521702813870558502542496810677636383848725755884051700958116931447703658271975815042046873574886235077555886958304879430802280842280096211735000856833029323097561493257470022672093308134536493882840354007786878539159657763051578180193628408022221287695652239858482907431585426425851791801256316942052169699973485648252534419145440903578830968237071385318677148828376048136452189318134713621493164903874867951600080512449150401568649453686897267652350529798451224343503363230489402542082332499333133675311688239648734604087664224130246374235948131131172770890485982535065845316552383145744189631639228582299990322380095260826338845133730508478042936283845937479241526541769296980442596344570034434988582953274537895688501186727471532240211525186002692176562992976959884363690710692264486105258667550468557391718724575393351247378446886938441402352054012954903037393016603001048025737150855890671009219889230121707310445292751824570863194089847147683245119688479803760430142797421704533927979560128380994562156027434082873785287233670127155727490985648269297698813007762134115279831251266581903725848497263182578759115089059860083451006231411196723466619221084489524671944066191657117066202187656639842944793313405436695579718316272751716212650578989703509277565392302453054279851636457749518412586426599021936076835629534374535594863042799844709107198194817176190680334014544119881313148201438955588507713723025476427175605894247568331772640996913960698106284073395771361140254477677220662393499646736520299452034965603622961047380785038053070260428125743542530939010621782577409568918243193899986910811766287728486640565986642374873342924635001584706618095899114559357117323807639753875108883159167525928956886884007974672926615588458516785630998820956841175976163887316532329481887633525678900984057461559919896959980317634984550842640335345143390745114726676708002600005618355377845614720300395869689779847411474398547534028071333886315097517432941868504421014090884555001179695736976653699371998109015333851892908627746361104514259919119210673070918868379545717326845031065583654606461708269932134510675060217066950042740667580312746682508658998439252648796124653556084007424588946945447523008204910536100792070092310238228883835195549937144659541734549399458562631473226566102228197087927848820305659198474233510907856067531676457015474622378640426823963886774084797568643523031099035675463517177743049639120793935544611770274423844599701963978091579554088528205980680863030147641499673503157443168584165129435613548354279261454851780863246470176349676101662420547075197176146539292280217718184055585727906092972038899409017036979128846760284177037331450572176762808216028047254233077784528591954532395485873836296363501207526434571923340849943921892461550510328282413759141467588369660586983373789722420695984624136878066753598941394478700170205316418563143269635676176452248572749613804742042140085778498228004063220926812066753793976277531058459913017819592047322190877709581669623561003712993770684165126252792845724016934399897011728383468167464491740524617882915077473240335584433227638246716494104773866785418584645003107551693418800717139717856150819372376386748144069023885937914490730780872654929675602318064893232626138136594987986604726124555720701896662655468736518814939484874695915734608359154360769764682357735810398261668298707714755913254589600894940011314876983857485272361170500337337254775511023727849627733716405191925977729946167231623723881470284499565630276200948234976123159477640102871488786963602412052820804121482778573701180909932044489027458458881865379553866594145185044750192370976054816591174494148190862552475737522199323401590806793010964331319395611479112076034487842904988483769769958245894493641578075937838380770187932224245775255738209631504958370985986534000762212197297410870464547183187043022704857074777514648023568904228704117082905514817008125602596253427539552479199595440852723044815130514183752873166888877442628929963012223281935664802537602425661869915191148192254104385990426740751507328561044985870913990950386605817474699845543780099531663585887708706009505055271048719305214115999366824094370058131847098840521205361861949268409279261830716372546916335313313956891477746123893190006304223695689004427416953682205140089720411552461564136840438381069175207402551402425654338305424920910658790273404446658215654133803465219364571210900859524435183758920542989481441517060039498329615874400993453149610467670834637602248661421161288722150388043406070402119996151952917105538454909676825425345490791602262243873494136032955983015109001679407337180630767851118006229004305158224673248704125324182172421591545576181288890442683852960439738424309815660460138283127234465033641013413197349062438281398991692620682509460525895357900834079437392342160759529200392381298213657034709170588818269043611386487139175084797484639749360269868896978299116078496598984195717532359116097755715505275130862007499177329174994127426020996770001051883206166207593856028932277434961298378859947828052822277790886263563936837912680167276582031951557895822635696024317425044214807039123439575732941803819688154891042695894627915825783258833843524924231511056936374812772400014510655796063493332863465360169706010859103577383906762341338735107291415071761361526674261274353896185534043854385256208235703758048919752142969888284706962416237656973432330204641185729391248546022397085027626308866640993502874639603436720722024640457578518432929513807617583991247507719049095429209053508029127582361122273577633180985930535340351080366627498207294232228725465055132518289943871855724184223552120401631103714871458307011476486507951966013794926360811494183986566217498643559703234785175142895466945620891903070956071866635970114154748549636914639372722179326669222122592239362918900994959411488530991084108170290161644020444740523119811403007579551654963261509960144999005260630905529110898711598704653515646910974351571922370356174577714093046536760958090211943646117628454639348716864625278314997432680505913759063770807708195292374923611555753846921482998233964664552485265669600962285298970608775654652336822633293622738701956232323420986261901499284855916682524545922144651296673077724233779681410520972156171451767406066702757044789787486584426228050587168003330189704689004269356399167088214313757304114545017008938037319416087714567041038907017582937913392848669318599595996919573398527768167938971065075216133825600838393587470888093938209169543362461540477192293770926616241991935482535347910604940046125016253146964819194039043138601362974744754586236305415950666924594569449991428050068718327375642031892922814465710877048882143358849480332745758406290833706002889734744543905021279184887418098879148242058842792914855919744146482317225594923201882626756165468990207731920977262763051775501272288321580970805540604604057059954289460186618032375110554351480420203478810141726084322919877657459315765787472932557476648201662126236121996717834284882204164071185969356355199256101721569663730134010812945586753529316247597370944631024286415159746454802431561108112286270996803869996486593046625411095747116123871942376122342288757096667278817924060160880847344151064936723368854899026994761727044779842401056325939695805633410992177229930993269209108967421827553276304617831605112226679533406526797491719932637422908382209458046514376208694874984313887419441102030076058913607296837200782569281258767735004974973467501736535331748467148129830550028749753629323880730390050963380983785118739909407427771222200459972784760849728037180560405016812546126739194845298208785992865246066549963713709940986117234720499788381860627629077598337326220580819247640825892031092101329843348554293724272474344073337638515786149933439234842623717460672360658846004868006857529260240780269971304150214264956833182125013212721045835276324868286830606906350892508462759390770169613856408652282121708818613692945567805362667290859933634659806056411941608277066873943046326919859109352369809134489910070024366435920883071265680681376525457854946332968945689026115725068815328816764134243806711300134244411352295459691346660544441166800218634750497238588644325773876112415510026111366968037312897400953113777627202521267035375917591188840077461654999225597584327121078414093097735359407868602324005002134161750973798612953811015707351162080585005135001760715640116906359592166100056136658851438158251904310769003471174610930999826208711691018915330646025459837748856739058806781563200979073490384296685519051215611657003988143665124932586629578170676906781715184038940833207942270195904188337365856256671772133409500638571660227968331984077501431480039218314327956325832217883004592415083383936491711515697284781988576113398905401876778438516245191087006711235153847366499023747055450074164446392592441788982205191910854983418690348856744612480438292078547164665811833983711905315923387747729026973192997973048687139813874800354435831965635863776201801564335910755911024379610106291603749151271786592996003273202889859214540373597456315331027408834467946886028627609049473183782915300822189749550736126188494843280119441642173911557439514349340225466731917037351022074941905993739599313225287129013665093307188808980721673139844062346585779855871337196180040900598845396920022586010572500026148597310487586026107020361325627059315946780610503685369962456069086001273272125341242935564459165327127069616160936163815139784661498109256115622145533944545362910401413046253261030111986116142736076939663692319231638766229324478752674599768479994244012124315979936388059250237541810853929178387311465688797718186095141613813368973374474652902555210971664990474262223674673404989410164013555405683558773533573431863483752802000455931031749604176798567607517705025180059326432136719649661247252004488507160725512121832792184272788506685027400834259292533224761347877976550456857220617111659615901623081306705479671339160671962665099677967167079091299859800322968851997993531949720527053058631726986592602395709055164450548575786279989023236249605350009366278718389924274369867167021035430270114386150344433290482726150422247540010667883544836788695894369742875411405181489103236605927716960313603736121958934518329485565983070377562437953796059296656446063611323024754045291735333901579238818841267124788254746864350644660507164934414174823128839092077034748603981509140600592668262772857450603255621425713191203668875146799869538064256541842532939069255817519246338067425517556569338991417909931047506171730273411220420431176855297423955639599169008433409933337559404404384378779898506521346378475019149198848821132520058290384963132141089736114916895653716563561926462386383828887123371259576539580077592014949797162571748847000041278488278637976085615806997534945658093340147167609748697793671500715165681111485183603940267153033494405722190491177415304417644167520277449038227803548516182393540582297222862398590961009827721142292628897025268242965631509981372059357846858294032569365040959842622166323265122337153392839258230570940816676163922672455480575635288094489093967951102141365313231886650864080442350147794679182738092204927557445280157988589111642794823602017824930229640135188118606593014345031687178044886520865095969765089045800025545542563629396522437390346775364378320074985323417803058932840769180582132667761329223609363391043857166547635788358204931720493699210590071597483768996829081659488410781141441045092876379954525623910646904589159596156607868659148674980232227878853538540730237575529350370433643300897564857622593302308635427090546004028122611582477235237309464899267246099648471630775505091559816130446221748545764627058602629159202856715266305233582530856805028712902530528949344730683903451215638104859037023026031943510326869784261830162667495521225210683387651320896904890560588255320853352744249504956431232482992388794429043749537306258537426543250120714220196690108570969581135900682771005366640310839179870703856504055919756705818428629044338020855851393277641392951992849959027360335885922932886904972497266819848287523270782303086452994280584875960361367766254690595223439664071154343372033115873405943374553025559009097731533129842776802926104188335037272378772673857540231124374760322547962033970406365110154166874900835075065017055131494534349410618222420889393205284118338741464710572037297074879165162527545067000078097061814337205938947415606903678887596917955028643147082631559077900968812148123503448380870388647693916390913869205193607830379672341195016082643646632833372458410902957612534309955845743095529499909113821437434045546098113181626418415883790785772128930534228872735878535707954728611506459936907825483762752787549706032027634408699451728938096342265635353404063102195944096831399192558510420408128350189988583879326326957039485624957099717430430760130900538454819707844174358803555831492778880607461654441530276453590524278271016752913862766103554244187300028913285866370860276657073858611783653322520547187164213097482200763727476142678428555560211001988949413097854056466169232291509033053291625397090689403592376798798365775690336370511209246629185645894746928666930169328402855830755007014571359138428170617109503562005749091972069255825753895496953711580666911595941679008512968135639614809910221092303432139192294217605123851968410173892312875824737769113279775024869048606733845142818707915724645931366311393948100702635237067560464486736698619984741265200105394303339291831625771612702948349169003277022352573668930505827145655435693227030595030814753716936607596259188939772639736702596494669574253144180782028427481265085018623788922575544926115788586106160152303083517270600633072215867533456416058495020279869592242515637668626958762588201126745319705476838618911884124672498271854941962979771187613939429690729958754707604293401427167222852585129981797232532708740008112119394882977445012317260460921348914064512230497691632406818431037149126733032976370846123983818180585560367041273268667559922982033255578600859183469238948704213074753567722815224733468001382880062162803212878248153412713354957950762503725151113017588850903279236529938006277158218509875786622772877447436081512378506427850676650504309877919757909468247084120619049630278808754688507208337796943223254142085033042936618046369613210663998048185928402864326161757220790096352266213560288829900539174699344023615324433330247678345374278344143513499760931205182012888244415105767270530307545446572797440526337246404987724419069334445724016080086981614654420555288411920005027266974267390819871973371962608960095836074719937374588556040802225759994596373680009952596997936715479378795906351248698740660537006651671345957787853273645580238796160288136806512064221954742967204483411607716989528904128573519809020542565501036995187833251576521716278132526412583152474621874345957337817495915855166504437729067579025832332509396304048480363603285501392017924499505880945960007856635406392279029715763425190533934904988887639436466707694102659494403426171769734058392191922192095752774163464838757917373035538799866944728431815500062349994567618501651713697811780231019960698787705516143701225489726171130744705734059482708034703358051894837570387573795608344487871654033776961725400587412662232240235769664621192158458417055837607115542910910255297315320363835822970421163295443364109129363616420001714418030734046945874557951579350411324049123047377311508688665987002391186070745714982111187247212725245369266477190687869119759597906979690899245844909850644685357493585935952549981599318785907073170463203147269628564334812470704318774132405425913724259770353071384792039670820519070376088315189032648686769858104865819867473152962654088130017955099761830412342046191285672108516545266662268221007393005964540886977062413102856480600830366376034894574849914772139762025780126975188404336014465556952640739244368786617297822038595229744270896825316898079688282653009145494995707648493286565200913602064564509934002568280565356571662256847030879848118308677985723861030760077713785650452774345669585907562392186453654625039289198291313933373265816978806754573609243883267889518038219365189351998930207888140017937506964066826072899378347616580082084656103658354130115116763334393551624640406885770073585877213985288488129342719611896971749725116550341104733110437481169714463733946773525003633004952077893488207518425428960355060428361636309528965048591432543489525666206054529045378720269264363244244929734591200530035724633943271705424581983076920175674108128865095444913266152734353811514037306386532759111725195415760560819528683259147812002110290457917417275257022764540536469735949286405709461218711683481352688094759915307747068994609444641715996485042278219712246961057156842987867827923588132639081145303882145795246093034845797155394987339687224877134081051598398714967228187228381990634878714376880178513285879436702725001882126213948959986417161000644600519261020289934710115161395050274071704816853265468282262010598967076512712408812053321983512806239747607092753338063654521840447320926827094305476889361510187456082556874627899903490469985615216837218336850905980254842155985337835514275379628377739245594089720701744838060755315620299569066320792002874383504444845351614818961606603473936456456487603136473104978387739549548236577626253928405092790577419435997709213615664501280922998599149729308757342491435762415385430682578716280866309571063154553442123977433110359844391247333046782814713996241438035933364386612845854588012576768599641353018983132186025364370484385952687727525360523673934230722321343930304987701243374913395939075263320092104590038633735952690833586596055864749368255769870680671761486262799422595939131375871572466673341610606138463886255398632801067567222720572373232873657536284750929109967579886300387148826727198201879892793619249556810090307377109328229576838870907917776997955104026133774678537698725281831434689662223248002501409336085824310535636689026999559727475519089658677498479612551223856524535456158327449023545974415065882500457894144375274412393383424263130857485976168068364843381597027654109339608495005948807687667129966813969978433328752939620198900960669524609257479493235705791422791364929448562673063398531885562642766695825929914570627330984890346812036830459731855353002412834740192078817461589046003651693378373161771504927834088953037062818063803615055459192557647121021527177928716238696028583003527996382219064102495584443954185776051070051776414081841783708861911417342161347144149133586363994669771390866575395044804645734577496234026585020665735332252175289981194598225196777844875552775577842776483564696387694813551559745059219594991457175712907916020785246179262816567397745379046233743183123472129220358538084026604505823412142158770475446343438830018111728266510474711421385548806970325075503476166217993179036062067744158918132482692349801259024206400321429644367611072356339498851235882890576289595842934295576047222401579042004709180487696208702636905200970655033489824721321448178226086209425891690927456028996132214304244841645747491168434582914484299074956935331095250893429788873894993546054068243297814099526927076133482261339650320780792205626259563580241313206621109878011413396164402005651219702168014786784775419330526804451923973876931698123995937788614605560071709279992535263252397328801105889763537198586177713743353198337999512587632896007717139096384365634113097209873172862839568001948920629003842114555243415446029432042903403684135191274604722585327151742361422491767965526796564233630225754713076351207848951795514772919392093556145468742194179550853123050766587262718040466893665907164287290887976722633444462819711255165406321011949402269289087160378634629855251998185825712249767619413179813448612849423960057690059569846588160216023366788211467619360096071524607338393097990910527212855852741101642618245140909130044383431450658290007931553374754924097303594360516722009940298534778874449826929475348352517152209432136517151563216587295029383983768139529601883628291403659885647358356146538217187854736483551043428218836970563699446109762931071164543204056634352720506717745295591819495797696017648097000121449312096242847983417206711385803369717594364325392716340243438769861984603055905853368070100529217462320391085888897875879168091748781875363200441374906536988328346156756478893639679288833158604455352228867129743185841449361215532276741361895147948406593587546456650312325484077194570023847200464723858301191451085725757879757743384688217706653673980999051852272229197275738611770633341540223594867685727675079607860856376210776366612789369972026870237627495726917201688216050778863609864357996365052928942032796132558566906328487840558783168202438400253297986518724031186170893297499157763405576550175605045792848769988228226771770617022947219055682189732260688786809745790820984721809911254049345155674650706606583364619028516436459614400012771705691271018216097521000082852805999232346349283760647133755080773027096943588946532364316058261506794304500480957531803633838924553204753104548457324570485444179130233385716194402698758253318815459033404039956218659503623665360109135769752093878069372447226037756934799317125902041268037463799728424087621081404169425054229229341911975305213937372130703773247021496029797701457611509619331425162220106711603628760680921300250853653269573060489335360114960354590672425442482507258619485512908252060670364116539685135635324713000439387480607816376449803486519997422036124293710892167053204549338627738878696414372597864918063044063681868518179050251428058283570249268089413965411642752867270939596018964150255171555653718208101513280537235880982573408770862945903039610082213056164507546701459793112865475660610125600278189484236760249950281359350158700907881812478063564596822368915353610564824869108262319920808662512855019805590791625249859218201423598846381399794834998890514274841548079449673192680268479986234498065547369757304514470884179044715273024232181313094558161534565183215634173874934677252794588636302331950936841171205878435850528201296288010291694551627155332740472599546117429308494942359604564806473516434537100887907897615035477865927063173909522151656674899126909582942129270915413569203406420887789383715293165495632384615530689106935402650929677688111118982868636751731570724415431766764513390471960864328813119128491746501049496578477773752628932137644918554788034558805772438037954518602004702442186963177585223928324123513260341078974397538370492371518852982609245094361397457741660069150751089523929290531956012632689062368823869579113618545151914694567112638935391268282102063693614242681036919485050390818240979431777846934344726378766315689539716762544089024534108981442552364835247576098776885801503162845669821454509218414803123410786473299604158603085455116150563195346237087446539224071539842525714334746195760696734679525840414530171334181760825402305801689464675877318954402807334239787029628015713436506616831676967477627664616968739832875149443626383463599770091017770696411570631308047724376097838092031152839778087602676118878755655216261680594186973972357105697826258989005226219550919852071508364488857390003377060455432565277542876302409651763766134600246087660149280206676079298504673603061129613676041193673503267824302259004771512715411668693657220280897213834489029425077723316327708170330919088912266202255660271872385674125929572645364794707137592192763375193395349205929340567571125153900007480197959756214509296383820268545323594690586206537283072147667826209786057828205707504831626842864212851379947133139698704453214432366423952935644412580118438310537773552371125241051590780627797737914130259686801399307614505115937432646593989963851899580684832212647812657925005816257903438008762303558124187560592283065297923385745944265365538494133822333332529345282458481122020772330992818907751085605387743866395140359851672600932373537085171638821344683135827732531879514015176309552280566704841650025271264226610591269664780323175255992249082079784194231971288689453306790013503780481754055688066748217478540453435895112836609998188394755100326268424791276700832298252863152882588411146201266342772995623276285051539823837973520119024864537785187615512142451671665436598192051140883242851232113306046758643227084189298513791312698380594893890436795744920976142911119457816971770409547815271513772280399513244708194349215002806765696086439080759103911018459329501957322602277318717357248703419154526324279855024827075018638927474751925909001385448751904012507328257760783418801792922787368039536953503965394441353117212294827296778597700214606596277963090332944359819965309048713136907671860508755838034279231606785104910000681144227151836345192650288438935341461268389329065066381719790860197675545380735354706105579013580771852897048668450100063666819784349551619276046652179927089442033780524182743438826087968794235075264290901711510809421923480742931694081766488616863029593857915278589278804754982550636830588521174750186302168373929294344739905623500921479174997726385900645267518018327775485280514979952137815052497545305115228067589119313112994363416023996408123553578998465081141769674068377337066254689843110410561186483908015474457347733016118319462017118214890962239583455685592294263751473703132146828634616944129600142637657539621083786927798590399876582675384086662440991066961625348932654099849553664430671173711130764009463655332044635688871083102073656789702114459036458013882653463200572015536530822095492119774203999219300615026366486770734159145558236768882534801442227312080392796075021123088005971354671723248441805499197559770058306067740608145531815012956583283017525517280400422944614481325356124782671940447569015848608963369720184669314296646308176944280591371910864887152367147123218061125282084655929082495071140240607467362393788161073924259530845715921195806533598151576997628613887504986271691820865581516550095660676983141510884029395635255479211900412341676351915971216353897171525411887322513430795515918115751539291105114831711935853015556367584216543004116186553288093287524446254752534830318570505985871439444647169788080865543486324909697396218251792822513977221440334786348368411496741642769699566555536990162238478498725570637362170566978712665500152640407949885035640140379752893702190456409374728360611121019321020606926678918268777673486986562975024359803777926996938016441911465993297538593981464000620354724055099610645693666527006952304303336048046587025054322262729498492211475961606180583776480505206041682846181515899778665664552083459166392745102058045898739870779695261480640448794914142029627442528225280177028174622700909725245340417510418471812890593234975198838889416792868907158797343667364861712342317987580195480842475687782541026778441742220947990564568766845473848059186135906663751904396364063996622363754482288573297587795120454302786252890268433304077374136873009346739785346508993783611587145902840552649978176695836541679375664104265305350456089529177661238531421501565508786727290966723837830287403113988567976589907345031558530165245191458860449854266161426630251877157128208772481136999527360768032319519383578716696316174916224158856641391905798082729261945374054875408736380368294415761544709171159998381078596267806243602316766257513098687397946715369372545088269040405626909222280827232555387308869664586142603871636017086028729479426994164126865513929020168176572438416525563733316088367401525417304400365853707588357735618666985616373059647186688241719643714999045293044592184894891990424608323929561607609818355331626379850403527460334121135552241020804355841150064426877941223179243207004657520981856405666146803982282781983555107354433620875816072412168344387772848112257580805985135363388643945147475188064545633698022690469700113212728592415589721170683983542021423843837090693029754265240764770942257598326759924865411237814756254674611330211135875561392326728392287935157771650491217270528536078020149404644596716321337788360081556124900585276269985614555719987758375114980654482320701991666718910603955386079882324346619462832913620821841435123965149994882692892808423047495913216393920310507030300341694916271528834826795126270187670660071495648980050095222772351460920535002009158374200379455235999320589761099889629721553323329742798859251158587456967005949010700505656554901376891884479204568178444920191101974440315473346659456884800013429278790193970319972868698992501465342255326303877898353754709453101192992363167841675643756094918425249877465890265157599803383276201855594882870428306071943922443875415765007209528424835451686430893500618664909351750994423988216034683236540136578815131282614152758357420276194187979319312003270889648486720058555715369155031984694919331840172850399938909707203165785714664640584745928682888581482443613911146282219226862807987514660514740246470782426192286613114939966580844280370330785839161640022018110839123791609664998445527987640336470674258328035751845518632622000400233143313449124562986133264773859599807693219634345976243261800629239377443549251124192825040213224260417088039413583558955439458093119965408961840517703305829790855763818008348307057116041202294129642237629362826632321437978914747463369994504429489943067740817544035193898645499078713070620081106865443237107734429789688894020517949688072088572001547745280168808271024645010624466641917750119833255101028666419921552709727113807184811959151660189383593755201333038262515024636063381641678618518225118757600209553058065468546283314977031665734113634931189050510197960746694785994729069282182588360954944495524254617963399077310221341598206026851774014256381790050097660367065278130933197522610669112503305279332648379316379176373936679962026349192351960067787515117450092839533107806743790645991985889401006982128179384904006447237235943751132363988485051206308478246214738318367081083712391715204447943308966385254864151600913596379996622502151612876712123873717618482459897823812871148942814539414774378703613978579211452008498636000798362134296036804508055230395454032157769274361405102884124052025744252541992379917189253672697061847488297999254762678569150798536424406229490547813527093724034359062261313988267964114141574582949514463584790373364209190521033416186778607733136629437307159015028193558602256028426438016323949998607079579953031307827979331874999573929812621486850446705434507441604268701834291226551021060239321737646327710159326149584016581175506204867062688281469741575777736032006495292398166074942241142619689960644804352995330926144706222213056769030840341856103575899276973153789902378248024819231953052477306727989857981812168792640639067974219586320691248719055331230406545511980031900648760841855938912241260571245249082919854631071799457763674730150446192944245765665679201027184368940692160033457602116293853964939385422369658695837163955233535362379336709854375313264347144083468130967956941476518723502574084641991258579713904405194607916208640247700921203162816825973544890040660105994918822251815196116627110640071033871924730863611626624729802220942496087793231952141965598139191224243235609513624852764215199120479573293673019095607006058741219024319928754120426430501793034348383161961607217334037377287444831554496450508595615125375541738732019102136084475690954056035501556539737239354876436573573812412836340494871281187018396691775648469792439771972296345986285260229700827210630579829341180160687305905670710771523551396165396909070855386658117204686291759300139731009923516002955849120201261624411066655763545863956331747613671823130710537564019003379251022120847402706590250333527318035736156168830269267292475276017980720394105603267869814813930266316935236423561581149070292311982185646062056403780423388495563720789669045530774832873245883761405375353499993196898392023275677558815761374998720425692516383683445819641510721719240209268706581012192850816657433918181615351968838366527272003243368312685003911711149114824679251547048065377478243744650992252722549929150474516312347047605922909459507319815831993106116319539559596528042193613623768370741807760802422650732017427997134434330602073161270934298487905802898518329900723375904629679655683867179063674026641020011776965677183259889024314078639388437464478494775555946040524951629372302667848416536064864568816852987814924454841365610087098077169165188988311257406396021538524544731344802584648303430801932049646721743159574317193538853619508804761311460683740346401229086201809346294177631052410459874610242033550935753520136745688953798794924187844567995444947989497566514065148429831404327045790848554675163595678437355321460024487248109133579306283930279572908648031585495237863948192856668466049777267975994566753281671261244299996457142161536003742128189668842288267375541504763255777397721928721821453279061270417258719947503443965988036697579904550075354550687079839540537016395787959549089500061123389822302650157100312790402928757367800705858759136712507878942968849555800346359295076357305527788333897840113420877772178706270710202397480675234869411980129551525411101412497261619826793288226674267019245228437266113582751405672194588152240517472058512739122857864113287246628021434381992043392771905620275601658502571380443697851570096546353512357984701404181688432553466592827845421772971013157578745116803989720100427104000764451871991647690386916062375611484775081135904914324312350290749949180435742305374971060358145448027052972222486597473738466279610660726139211089521077600571713791294425407874004809930312226393756868344101183396512047046087885433526949381569491381145627631030543461161823132991148005526482013264698623730354630115256440703740806634180402772884918116277658609204142565833636040208598748294847477566692025270573299623875703740944454923544798711598814397256705303426221489854260813888902794553435328520480907727171176562072862465310738559925751006386106242381862217500736501291001443500982410206087844490337996169623591002266086791062005515852471633737277949000517527898161267763739473913627265023737638457485941376308000583666824395845928331433194310626984393048501819141752986322004715269968716228409695462550573105457929683257890578875680833497805218076926510448678847350578863852001412467696846345531179876629106747293093772831827868096065710733770824762076372706334540198695322046922204545494580825685324963741397018818393745348684115644449332948656715325463805289413929584199298506093078346475975781896179866012350343404952120583941561432541920627281486848326239088754616329941273400783041094485262113513443065778417507466369965514561665547167393087019024350245323107432413324891380548749328283052847096903828039495308825355933428061830785033825532967905037479618243554655498235084745308268170765605419686990570248946854103081326109263549877782414948805754894549416321808080429874574035383257776502115108414337346624926622624925887179955093920450279206884103756869327223915441890850216624567210275458170656821523660744506684215254290480958585844192250218323598538749439651976787424180816478504388823524419017504420112150662311551513266047604828165563946414887712339786591514925361641342237551109223190236739706215314134485145595670222682942124520933067934605271116871612380138669522987660853727408350228888572238632608328493960227660422085898661976731825501411608874836957204743690145909325562961016219716288031128924222970552811301306271345479733338750730767679640372687769228922872880475291674433537752218389398254154333391711348659779615991902611408799499373401299904346506242464937428625198462527217936380908750439166186434119362425097090614578386489034843192237638232086650960140622243864223112544893133789171871072924816630759677294283447221613198964741717028718715940760881337151143536144810383011662814337952821414465027045498258096866348409809649000602014819192285693715228176449615036869178078785240134478514529165949505181928463658727063356673670668281839386169851343007525147386200538961560283992546841212830509049042193925078602813947101094524265586309607805583987361733983149752766910118574914075759142499985711552854546441271350651224881080509111845240717008633603205426710095493670129411851019097412761208472413615111694028927163135215813694001031763158079732627564849061851404182776499714561351458703552302638489330434874256757735258455968677965423287046974797199310752205669279046355348075730728985807457594146114494729526096012698207529821624970107363678299713598695087965052767050559151776539676606793904413801330145239095112037613379504353650815417967013476372200711663774177022155106437620737959461999359456962635506034055118617197225297956801000383167299854416519767499621616646238880505711901582369520166707612868611321284054022038054424527381186057317128090192504356724800441224539004662464916992780970204872194106367367089048971927227993214101096117233265142654944546637595100630779345507752265052227898995234516521633585658697108994228064954834002159676656251045210817464437817348631650088932892628697473642428298899863784969852321021165668782960539889964444839194849736665907313804854640069962393870692045997125979496929619600495622308336166074383181562741807523839755265993239674277252685445701733288054211326893256782702346041182920338801693775305712985851570366757412469887308562567957956689885274724052824841724624395594961405298972975640564024895350591137330232923422469607802768472940538008183221427304726688596820315442624519457403898731179591841820315851538743750573646364200091419633595276627071271096786726537585388530624657994140990721789751845405030700450194386326212257153597464731904187256834867095800473219167472186381802691073596864614768445953854972815464409586291979234425862036962158196157585227324836185454315122200519337240661480854652015762482856906524080002903887687164655465075617843700051390758432808463360333719784120353978708151966324750944653584855039187113446287307801975351570945823216549754092157890749128952649292266116222728823612882136437184871456887523758181510310865411685704317021934000687895556315843613182072249273982718401607364356509783707706216227354262179210011558034264254741101174214690376676778001117507897869074454329673008203511403403867125432668449599064541057608396064657324389258028039730145134494764126347764739244384056606293899976263035603067772548974309213176119461232835644092488216234592970869738070720489781563814984246814149734355903578905422243422943625186920700125307579332839381979935101118382586214102100959810516949176662496059115848875667188723089357036456868794708689370835073348155348970913467619869175149805924931286487961511842914241001648164810691701166451496591803170889065188920375616599328446306873770079085292140153950231845394718378199282990282949329063189793221518645455761675419943354166736229026547346004719183268287656257479378609689390244134876994008097288891071164642888948983730954954719952393579926991776687564155948998036324311856718910298777321168817173879554438877306556733222102329106349527410316921594553172686882053412438490010212636241038677623733320050747528243925571801079288138538275907204983510881339518555612331092096618920120644508562202934674261440191792334225353144710679465169010882720222840920872195779081043430578508831399889193709331248815862085004762538507532404592204694182093357991990083153009706292403329387828129361250746369418516199612807752113694839294460795403551730863706661952806541082450438405884685929288629275808414748779926014358140786503958707036327799718183496076911153235760012590321271276093389518879021197335176505227967700590138363076417102329601299992212716858767142702522095831610417840890436425282034095512762596625306420446802085584665507613643397160817900446252739247372713936595343679477959999330466268949095168739575640117966844787253940888202203386735206987595494362304022829646357783446544180317519433311087418009135609516647271107470718822759803917660757867432986964267793613114180327956904855808485769053091655685034140582897850868719483873620499561060258269787416998036137946374111921552437591546534078300750401176611543582586839201870073207080537345230691076377731074177408962447620375178572319289591189362123065871303634700103665531503583114863025489894108528289685400602508836529740623232710682926723953905876788995439033225190148114774781954069871075306503855173746994222680829727098847192344740430288496879639885408558417587051799060354991810449100083348337996934488020096806163201754362938293158705360958098855826414273922527532003078772240565353128019678485446454217807487020324259501605318276444950602719712913936821264524389099827457910830906577986785038515452524753183303309900213619942310414832366080821969211801485374890871824448799435665846585377422604841014730824895567945942734861781868334474871744031660587524116363674852012613006903432216542469062969048800472998397197143682965893298515831456867653263664600293032458806520820911430492371930605823280896426316345460891977015040892637047107771109905329241689553422680679997556436149494461410078327562167911294628083638720211095998948168548178843002593436917604113618853686496423474682748871619948683340657781619464727311492816917091696800852862228977227257179095552297647648472769056998230317766794272670401193657137716995428249218813392257281723214616052762897456581070589632170193097062460732097730075744594433455495092560409345448639347558283327322599092070510479675015623522983931222105562434466126073986793496841020619781424771628983335059252850167513230367772425855001853124830867040361185150310701946631596261377700277491059283681697534968922213997595217448018568839883076207663884151056704698008717485090540590712606918835517716128137170161740447546822682577578652500388751367764823467935852685485231469913635249423646563829092508276690711348987548909152817266575929921152715563090484908762181874005771627235183879892220413029624233498783883403742126219888480765203595248366727947962563655086437080583404004525803733498532363523929183531759647900418733188011793696856698751656085500243097959875142077049267029507153548500239988204191767585656798291475790588929318601417734902324773625689085399249043543227615122437465323337752889870732550883769223718703790999774492312677370926525690226026884839890495128830663244222453087414256243329818980972976479019280996062873232997413060481481814079875037083896936597467372479795320896798529411301019783172758874105742752142387381297854510661439450593648599178035542547362267756483764973714569013371934716361533881727788036356777217891235659219362521017222566735761536046048456674343384825922873469182624290016634377425829336301073680222303356152766925219157067083988339016033371939140973831613000746441854480675982904995200231787649071500917988989348299507933389071592022101338809814746997674905875121951109819230709763422323930620299696765734676879932025740757011088037368996552097495485000212245378322078877147859588761105451430818225824986736816412181985252690820782073300892011451503588019494657832493613137213098582307353444687870309709314303422253559413281041137866178049738757427399240842637421144494414835215080324874697208849147636875369715542270756341194708294248295455846532098992844913168445267718838563208028218109392361351809266495813263088949625194327220124031129570912486206561514785932244315721501506077146022519832306366036136895646489662643041160662745053904043847288010039511541336513427718802463682423061063732960822335325925589389342778519315993619255420417942289132273537664493688242875636286925366269009093574453390369132225901214889756976417877294986791140358132225215945574396740266250731941400360152999792047456652057997362452552776233037881039929826656524151873230316328337032011546062007287252748500853420285995039596203131535960972881271027723208250020660489618414226867801690847812479176529966118014435324085643182055511407481230970816566684471524866731083863849417481997288166641439077391209345136090101075460400187757250347463444564740818464691524921564577130939393728785598007701136231042974724397028565276902502034517535806845541715478973344017704019964132272313947640449910583794732081876085408217251460079673821565546313991919654482929723024084224166623838004143334812503779583586658753955026640618873932899010813416992817584254271645072837009350956232083238675677159400651209505655933284799290451560620385652391537598687248636075958699080455159758770890046080784637471313997317957782160268374902117325066454706393083515082905071824247627321643261558001344297451037283575150664124813894551571955874813622885254381426941548703454480067767778699927214189780281749981239692467524504766992214694229741860733867401332430565256862111898496267628543353649295100415741455142893270674491105732444676570160486223134198033079445908598487577437625122044506648445605491132732535629741198851194826127737044026485289005871816542155248964603896527603494011685917667026009649162370385704977856947974300534305988582421233456205786167157760684686595684119319307293831257094072476063746942486696287315040900518649366691079703006592905867335307632450777319408733150504045336477926201951029844152967852406500113603827573782989168864912988105090949586143572115937685659403638077259883998566040155934114894522877752311840575754953434386987263326973669326774124679055042798096993860855568389853775730729101866900901526669717098666639266754549404005424418855157221107164358903654314489435714234998120745989384981604175224613788450383026744227163638217138036765835918523772348949929552272540733902070013021656188420412804399139459139129519695198891009395511032410786277183737697209726723579033711885576328982263752078169902470650198475785249318800353157282574897913931549029821242706016358279374049712164703606529014818373169877812603890490927171651701029020292952532130102477368427409392994775748157872905003543715491053471069559585949843488250286913035064562267213990136365454029599116260587234427612112337389943526770326113307242406674635085011746465931610422322011373213850037161763219040582296542090353889924569361706073565444498001137382186793986742642984817322346365402308874459473867576792568372849783760353313684759933663021264738085585547320204234612356073407148903733518307252972196966763272216751895840503432357674444858058183888751390571504401374517703490280784288912389220402201090230428035197987433004926112022782158989892040553352918027970754849852819532273870292021293932066115892910054022913991509164712066009800846274464543778604592271545337779106511816716404313343384289498218956748789378695712254917971466641873282202206277707476662268674211200314434462435662852857400007748833226061817357363604257349504258757141300244124808534932466713650111950275388083162981046868356639666520374520773853301106823762037764518283757252049234750669756382859719517346202934467367891198989319856879627883484613809199007180765070288381912156507353323145642831564952454611787450142788523850731866405474719271165984493713234828702061242741944404198389705740356592652780710023358359472435800997602827700998890186490275005135838815731870477204875239580320321051501677101866956042780845375631128430535090517410136450097672835705480005878298115835556650822483968330109416647752100840884038307355101940188778341571674168011314954783709609299142104454530614799153177194419884644050620465879335073196797505837389148236283403877470785331118102332088258920472233865601456358571543932857272349742902382230461312651698242524664039445967639052378590685179864512262836237900880339440268677536495051682959525342720900199279401376375938946848608494848042938975815718987807894376623846371370647891801987345399777459913460992487040555981744354829747223073191613173017937900713510257506951855600046050769591486066080064596683143010137950065256037925067226495596600860119644634094080846656257671080019274248833141200836586147007292915657490129932630417319098763001577756183830730264879670613975484057739651820202303347792800068184839296392630651804049468298172986073592401857079832248449851913878911839546528909111553108082363426775110678949262633941529811257617077802131071410918064049077190565378112899219670996193924380600790721882951983449597476499739638945606609035497762223317824444782812592891807848124226995002847591576478724568964135510412337720325563342970782923541555382320106528100775009805783974807184321232475246766513669374872187028591343409433246347481291759485427367403629810901934629486892627918743231292441247047368829574378253110989838423466083976410064525897455748211562170161589591625535516979101004462371895015572817062018313440972123821792243489637469582473786019609710427478248724138597144730780294695238487389865451068434137123986316878064470583344124152160680661406252591797752412250808607126134238042210826688962988850304300386823176429201693281738160358174596414214075303058358453394135580652788766967000359324845511446590744359239146851798412007292861276179052944722328967383276377839087892989563100104131405090713157511339045776889374543557520723489361574892095278557406644429932398581210202772882089948100073645061222215945276485648473899661515414542230089311149737614573653620825141379109429966624046574447663621673707621499757287954801194526424967192915740145302424928801270678796406324419837633023229496802557865999766370218910222575710419291074166222379143031647045998009233796421664034896342951390157607231954808989639216466346504104559075120315806535270275888240386611724169756843915642145352220878885360305454398709351063811877975847496013300520482558587369250752318682540125153010102250349152665876674345760119951871899891436640765288634801269118772545174528508098869243150530902248872175818910981190735249278479458753256236473525103723319362721124273568036871349850626642239019844874765384121845791705725442245856222000153730945483145354178603450488131860624489597574279914484747240517561314438906070968557160896079694873068733121482825461707190755851409108528099449684105161424273495703307088547614358662725511695875837937026456438219721231436437551119409112909691573145257041546664662893734481226707206852185361494554452050448013624438437435961472682407151813217560709535505132740033413165614721594756998252149803126092171130617036247578758224882824207766524219725621557922712912254753729211789183795655271267324587819667486018877482045394600262988606269724666298641685190720517509528335643394467909348935677070154170788500653951709233866991023858663132675582890638704605292929936097277101146010976295302851044533011547558536804044978442607865707934782230145024023680083800371170376758886261935334645182540271690924680798387937339680036679134663215467303361206935682254356384882499429105916349788170794530590708841295432866921900810371320451408119635485953061855846885486052567854593161247613324514162368101780711872260738331468017492541345838629689802939865746168676495294293972196002532836304019019865734073157020431613103025491784807315568534205507711754684809609250899670302812898592796685561971438289080224390423359936646983957409487187312078114232806320473265691475834219831178291807368772297952085011772136282752418349870502760006610724708020243757794661334268134911812968245813194263837764214484221017538094832909636283527046269120470305253140578493853815611628631947687169067193945598628541746673840011462967936160501640393827786225855203651987580068040097069695522226836743244629026045633336579301442162029272148500029988830983598226305188214238632684799174867702132834573497083248024055510975967041013204504040835544562030749121544830529798635784525150591322553499961325196525282468173668452705056036865216139962353511223035785262343437726818333967912473521562137119594271290401266604582063354248337679824985079328495199189489237523606530092960552233209135767404445660738661329001924898644695358848223820090921534659354939177756917767732347597946333350559202810153804353115865803221385059442404376837023600226856170449745931334567579657278812253349293439233951835674462203832250941573990182016149936243543212896575132817027111341992494450545527932762237832463179856812060088057087004402528685613090201694421079878575527654904953258168521029465944569742264592129869358101435703498706532878158097971178029175560581179168157616247904590713656145061740583721553303710523971326816856153050420685603157897208010792289889705620575304661236087437852391602686629906758676115044218563490647127267059540258964898956553699775596409545248733225645129693894773731593137332062994435362547173713351046506178698592100260205569908840370419598526737551489397527055842722349012787164862733787562947763825479253442581753430740457111366848878878502092015780314409967837081097026430960670823490120879848375958071048079703912271114122252078445118470564311025737601832156092504968271072084298482478464783342405426899039535570549618097431341872091159198397718549009709061308221894799261553192435159567078828519217127702470756002142322571374810123384142658153519794030254920881099368438471654289478057312822865734686607058458276628980407230761891924757145179427696141077984850363779839362384329742231416287829798260440593180032921522651809478304091107278619182734610251016600594965571228875225548878063267888660256604968199724923747797419325528796715950843230506224285826506883656532366557344426232211053085585817185613513178287695120428817984543536741348679943545210507004316442952900807634424118005478200219460248622791712331397189767354433336381215383065604681566080998348921638827000931446267966553095222911687658817242325670131771792235524829307858666285288316210621307184098714020930821809383645376666939615583740230974273020423360733621839751027552654395904855095261701695187670687876481594475755534930944173999158579712504015931392851097620935997659987078595003828537530511159559883157551270728712902442522250133977577161826517157185194799629976842348732904609205729852102999350539354468070748294449431771640111784908832949789577953057487510581791693957248175537923539577152781734858260665593808621283473185129142649302634524340562023154616130854091903571152373900311762062648407033945747362989671247905912409381952132740116815726105471333879351256149030983504547805388785861661371598918102773196043538005513689245747571362122003554587513510045406362662213835353144021469470148167326829231199393744689074578741870562733908622668424019961070692287723376217544637170651064577230589399047154041828659045537684456418696610658513796449248130346549095774521674297135628596731181715043575179192895865900567571146119344150725152052821764141331769659675679054979781615789904064262790822177658629549476713652414813096652764398386508996918738083752941881525746812598770239636149416453198444103909285617872662179362881442955858743163958084252552220447874782574572602070442072843659770312475676484962207556212992105536418372114135035586365123424395406063928015461033496537915980148024301624772232865742083064266579579617671585932124425665339044446354111760912327607837171998677186247495598760504202409138046335167159218368498388249894120765296447596743545133803436811945889869717959415186014360940630944426895012828341570692330406160418257611960907582235956648790803275423523738774507186206064022591446439004951081245519831090374383439848012496829937132174509882286301735598729810034160026466169390578870373036990500282779348713473841044496774100558509573677866462407713929232009441421874740778122580859768367252913062105040276047776215557831108946834316110938162758106869690698695235608466600559381830121349877834850854272184212769447315290263604798945194095558973890077959593957647151076999799796812687253766169710816466324067102998008399547601567745078171586624958448933042681461280711622561492365068708546753860094562583112630547024671252733872305869443792356265229595523188640502554187491382830722292172552620692535317853845146633880852159201670995849466325563668017140861854371944025483107921632990996187563900546015824749260367651110631945065141005736771699419056269830127009477668417860360256273847223979316436024290524747891725455501734981917097680476067695645685341385690168910476377715598045666886415450691449753572865110820968100589243859744272044944275867534645446223966436929334389355009945332234777868616724814279175872383663334729032100918008056245873687399711521214666086643666917982466110986058557510583785805528967652395722245953599475607823294074624179748884680060948026892607724981811833551649947548531763478242467886641240741602175769295190846223753684902172756343242168273235200069676585093241133676720330061324893651060881131692225568310269377067368883675821404503896004458205416259470472227357276158004220749214583339876385921472704220804450754748791470651833009759079238780010282128595752278440550449162739729428905025870332177229788690517230225679685983141056610572960013204309760110880375499834637408908225920279011835685410889975790289477081557509869933832627392257449837765602741169313903861806739265293802234714060828148499680991696827290505458559992555083178478248942626738885809070926945817879348304645142476309521168166633859587950743449239064042839709183276998735811778817840711834044330542808207454626379773630953607955885701362465346793911013447796786938989460729580598402932616209346652750710755964047745129158160761793204163399870683847496139272367556682705432464422889358595381737033181920078815198297779339143976522118567449731851846617065581636609262501743221694146525373442064559744361073600796103141473517964755924020434872620356166280406964337639249234454217186323246690391654496784579424363168303027733990021002490920677839048532050812724630195289030436713645140930648978240660419435588351226897584846845254999300921245929888615931379326423866094557256525329997964086093717397030594011029271343254789611301232049843674119656951642738358355256671829999353731534592466252673828421851625840801913354842999760698748514198277583556164032277500432211799932550485474371121828104245286999073893275497480442746914638151064479314286296083853978972975754427469045495285399320746920652688059137438024189419453136159449745947944937916616981826064369841298330252649091478766650281212573831167728230320703120678215356768473621457978253960313080509973699186355703163303447674831590309037851530128781135276277137916711691358197821664960052133587229516454698482630717333124883359559386747370428996166789536089444043452477326399556934151935364144116575461437935446854652187081963618200919984559354810160542054657487973976399849039257740487433510129411281430529900180037934354513666774710539158379553432010472540778807278083864219667210268167166140723448706081047668887513379807131134334938936786272678102696188539277525155181063661662179047346274786187778021194172770007683365028841220659714822884676613476767213154277800111183511096603706702477271917581260397934985494319751763406099236482837751309185527903239693484649315025061034917314740429574547949104667444632345583822583989910398958432344670340964764492175433949934809561663472120501805194748339549194368261267442347101256351453922363799711735157532109288047150731258362325592730059877040063499654174477138529648199435980782622441344900597985952835727178068131023228273843797142312226682474712581597315108657414413205351206345559269568599265189075466213352354614386160156256951000490698000342884429935509714981281375168465878344629813724727028850260762360131426029946878680198283607464121842652971015491363265272928221175873087030658006237539661627579138221665974535413410075229914707665396193805101471340991470378921595014238768259936995316387246442695332057067926907008092683194788189218031394295117724402245912429183531853964023620163023742815291956679505315211007176375575162178030958756495296403768262463272382699587868839018598089923841976160163125126679129867887765038056024407658066979002635281182624566327549264432554369058226819513229635666267350152269887789032649451948676861507122920989235061739677431887034281447369758441357066123019112762076703584915813359076818013380163194219055512352771473255493888707535684329488646473203218905858810644024272682838789216059991257505355168893074579863991728413837278602321015360512854140765142973514350833342884640345302090283113580576182375366283338499500289056246837340992315207714162815475401463111479775321302259084192273858045930260963728773824484305514155150556192178485486952811457506827422502058167605708678472900527071065136500015365506824060651704746402800049328235747729025959780823149720982218395828192660774918215012312775224589633787755220991208753557591056596448687796067558274670984251406749468271719815565882415158583843823657121578505787844279572009363012461765463471365919584626130804260245392027923443049503095867989451933323307482000447839094959203481002761711734195586930653697892150654961303261298313660678646550329085340221726083888569540426435724034134008899372134713890137429222801726732483046574558838115335510547840931719728413022291430577262185532878556109760490957213907947783517342421298647770867190542907112003945836599971756329813667088622794961010156985110309337813132960115351317197661243131776574896306469222424466720129450221327922029987399633391768666767959980146114136128019935405402196507443321127635376606426463281077902346660286240352081176049235804643361440933114251639774987985941036593098095580560704620106738171852024561986147241548810433147405848166650612132182564538693715485256418558458192666180583783496408894108584248569920987129197053753683758160256217089528598010206138084981325652873290231879546964595345432519940568488433058167173383947854195935654399394879309037022167602820437214201224245337158587151333113816547245777697887326641597828876068522490660362951106331849652562831735436530471718082011223905599791849305759161961653821109919994469756429809643364818208790336363122589296867701661000846583903658808587247893479023285556839963133007264846803088189242188944502484085537090231154501992815102697831234731721595457987389975212592705415143720551492618715337312602775725223284008329077913964680906399698737666219743335144742914285302186756635367927537587403570302930591187488279070773773642817921405621707870021291250825978222430766525475720043586290998123827471546073428574837958002535078890095777333740730143875329138458233275519729841654730470089583671678592387665351376747093249900561106964230087759944981020582800419514839891580669085247310250602786297709688082145532617523260830472791910573722916798042351533416355911721416647433139891248763306182859273233103132678882894713672017984687955076432668497532779602967659605796171083398574656686258811991977051592746976181885395605642904071552297423001378294524622771398083769096714665405523293478084509932899079876952075990572365094190946324198921776863578547004436298277009035805891446124361598182605301190960935162390303903502447813013289879631691566132553489764215395526643240991996257715613960457715973151965488875438882461384811526772047654538431785034560530197327965716026523113178054386372027716530392932660103106373477840056361975261870194521137755289849524784424512497863296609074046525361080786377814717628593725083342982235067430592253942593243450487020668953053008090188176135839104244966672912444309080275006151544378118432081290238539060436920467758582958104192540079625870634815820451652755443665465599934744016113028235939568552746914435519262421223962219166377347937768728549048690146758679424654776009696551767386627155442624222357096707612459705178265625102307767910406156991999471851468742377655801805998108000845277846860637994922685664894118774919641040938242989160424130071983754116665827029522158168346882511490398664130671619542842423356846427374414924116696350845191406535999433658784986431082209213180735661048014659901427330391257374108351108646956057555167186619967368235471716719718464555056170822827899208307555180367519783272267272902563297834939099564839777532953831236441912386906844701092404616166780517003125558128384048071359291501208062679264102140897026266712081924632502448333165437018362054922349192972106020000265250026277863452603899064170946016259028496990871350054009688313791437266379017358437779579749608117185701610771521892186100155000329909717020916306931670442356453013755394012510196304090717891190380981989833128428528745799813147261299083367314337791899937137203333836493826646132711878299107167407233136694900029605355055205679316543675605435926746486551732313202076140150723226720654426404172399536976650003555638117414792989618060035270150931704982840053528936586687384373223960495201563425095616158433875641982494908680807031016359015831678770041694235062746188500221260430185776630613989522335171008139510616872358152641139405920624213235974803291935245280857330876843249834233038533840434666226618299678180673501750789281136635964151632815893350292123200045891602156201935972749081132515991823635938161061404112008017023543124157302122575168852291867760177302956065124652374551501002154006993329665595499601456869584151185146740147154887055192975277606155839310493732469753286343857437671767499626944093574281226136560692101200668361162505523503287305469739591337622357631420614852106631742410618545158149636645263056759177824576589512163632607895906226096527291306256127360276126356218601973805229032454592000696289497925604929215119817502476053685767382538188265543602244260600099432945421315993095697343026653430092951829609182426262479396764077593830868415831223736404792087295666695179582726753105359225164453400751324807083017150828541440820203662234895514824690828087951900168373307099344159433033567575108669470667244251677106617904873981787516256062005945540133686413526036717992868488914773196110475983030798037092006644617965703295519596314534719920596548441384115652070915898469206424310682250295700464810862777424263766721242130093870962914447200224076883163764364314563362168192916427996609650171709668041937028707916774567279047840642625597085691589999957910487195956725161452638199095183785634154321244599189312136137942590436708225046201210059124250753528437816931110109394252501153387067917892972865802807434130749577623664550588607066688950907574340250113177976345053929965326251399327419557867923362730028395674764168377628118352214410049860339831461139553725868971988318875592920326417533003073987905781586059538012832599189466034410129565310307850552172473186910973664407649345854783021390762451021150200588230969637405332808508318353598332649372593834845878713173113410713145627741181437034002052606709176615930755807938116467455754948210694203015870270425183592045522456473824169550560572016141322318154295296552787447363433616024973671921106022068829597733325221869184383951107362404255169491488168477629614104520968085361043237027222855034509546432250469190417612106836241581828791405963575493175259729374347241740836557145378200371263581371757910226479155615244176495156794381660334156116431764048149828229404042248196392953931311230000341895146922287768487951833665527117437424708133576498816595966052806922658869893312884301584420647350597374748045804749918634239800715145501830041606106774914807396627305031840118648603593242046604776873048034803550152549855656402852327043350433570607090587497239218511885262281454541277164977516857752195263606504741078417778335415285934903111266523123433360997452345248485878500198143427797057942093896597670001478516991828055590838938090831577242329603937453872102416176521544646575289427238234020241099687493242345954998476092051693324884833071482375179584788278565954752347637792747832418819578129769834845375051553614040771354958607828128329864673739374531260793171785401714130598000006791542557143166165264713165748598833741630973560926808061264796064793389448121142459791795863465273647897239776731230550565410589240738888243057284787653647010298347169301773533847942554069904666184619587229266242844618976444538932062662163393785408272576996229424454352660454978846549447253261248150615283581794695265617930823155569906522995073220115406959501183026511525406376901099672746732994384101057965907351199533427941517269253629268005467536838654983758791651890133596580944727242515651980907194449296515284129682711012591157697028098602715714097767695887527159458784369728353253430698840574897653929638434767992817747152053739036866019865723241759296291198696282945026583498697589630139254664515908247037391384530218557026126754889513677986325592041835442091617173416178104071301213015729797958060565323517458957777360461330844361583151932454304200493269787723901560753821011423336204466854204347696317503488773343312111103458044775759697328803517343677382951722827829344543371756205973559160219754325100414177794114164024674777750175601120192972053576590006535725036968569686475750061599275771666877258411293243831093419430680827590260937533077395918400113092611894996380296523128566736920160702553105098623035096734598605197189319072442665745507524596335386902867773343216926479712951668440303037039732708352000716181330270493171519805313645090088155364002249920202636199136139218343027478452495641989164938085294866947742818354309920405842264999176576939466010386586072207567452776621322174613491432204713104657832315342273148551002640105349198509098041734509136661285009385175955671696303451925350930904748293321254269965196130827965791931375687627427996731762197773114216307934080547152545755955093594043143801298289947282638240556452899577729481998911418608218949807922004362051333598896806122513129023346245188169200064353229541288458205752241995521335899153627052645411746791211553134611066523696728156572137666721181739562348516309810403886619759221074453996820551026083021651258916916719054964827117302599827579302145820204094490781482990346452708395691423963430099426073198030679516341277957451060348809143012973854131149562620327592580572624841047771841105214536864254872633394138491157073707973516579722146068637553057775021831166475852689528306343604871393536653629806765897208369107073721475863244199903071647678526019295167164684367406492756341778398207800871236798910711376523295608067733189076772870879638088430284588645235713675834422656877151136249340674167931953627580130841710948270196184589263754097066260906888386706689763128115834288820197142958193243072822703594819178203798521322221584575840134883216452307989785486881734349960862364254775626997831004119894510497015395266139058129813788784289751252041766411458220485987494882350623052651962394316135798583203448234698517040496888470709293436633970521262152264012370303407974066731110854005988563779581609197008821724176954048620027615608484651115317373243319573469473279828776618908307142842057998827614878231400658531358901967378906521025824564381900040962478949867326333420068126313377024300124430493736271140276268480829455577910660470156669135062500904923525746783842243062981741821977037961014401745204371543449166612729145195449367360183037332449261949363482897596120532297648580511837002110510977198256568711289971034216717535985117402181811124569901137184534360481086732949199933013655981774311029117922946025493285748511586305676635679139115248704437030622190638626532387800876747994052467974519451189601204027623143917237000467627133312665734955221561296347822147713284567144344344163799412281825734469309320001818847315368760941737465170249423867859719018450593149530141803781263131354809274154154598091588540350798640992090964729195405713441601766499455365772415589767431808114093684455900698414160120663983041450460367667872331181961295835024194045187761626939678191516481049336284200282920964306773137493623833641781039014476235725858278256979868301330353779687779225878878290091813206332517521706168564814365005366700134818456493786993730542352136952044521725748003571651389206764300095768914223257267026187085805682543621166195407193659573625971398057107263639206918029187119852351569627479866400593205433858951607180604121137560594506567620584802681690269236397439801345981210430023310523163751115813714417761586665786343516780416958058710597301972679256381894412848145540337716063927318520399726612937012527242077964926589358944189271540715055522992421914448126154796623810877955949960646079551024564886643336539993110408323660278341606510803625523936260968471711650346279400301201243156115403869683150827695832170924052555168720954384086668776601468449533474176064605031262153764839788206726279651453235921623102238426595263875876654542225254388382768910088455458522482761662562095898747172143074347310041776142727281288600725160471572448459915168944706803646357457643121338982744423665682291485880487084391356758085212590795083330240163797310319948198860896920824624979085156948503022788471948006981480843220074208877904503124211268533467922499188086331574244304025383378860914602226547229944016762727060529422238672373210115511435433194942295697794115051075797981846807883529915073165617704773538165743878156764227773501384663926897973443154775310629641194760743792609012594991243782691649827116112888382390366335505046976060809667082612697416648164152781553654667386871753428529585471480254078446982034815390772217880649204390677684524706580406385313232138429516519401296898250867918048176353725917370869683413345248163718950951051128642370787245161340045116792762704351184279448973146746405970599661457818724712350159767712434180911959423207634149389331373803644338752715024594039703445874495974397982194253421231607608140916961887725644375299493681852424981297056596878493229455505433451672457101768202419217511559051971072960981452618734623438967520641948162503400939901665116775895269436540776013240583457865192078553550746043452754332208415071456200796772219249089058559222450854950420627822113861157813396787604129678143465262392898821153408146422761376737854978003563773606033281688905011160545064223384429665225974329496462860702082831436841665692449464259101027574584736775816763920709938282444309201906161167570361466848726015508103735075541997174360944835888271011790015707828968067614462662431586718350004382446470643640370585185682491666918893171751444327662622866637226203596339868740416579985463318534279980069184304883393828939198655466687135259075937945449303527237627868047168058768181017084861544695554535322826540262086705960375168957198211153459891425046507006681008492029770853250567744615731450223538952392662612235886334107938592743219353575256962847907022573616298490622912072846369572455985452548052342533519828364953820934648686495856379969148392741961122709050995148850353883978225215490523343146487919779479622827870143149051499609771747755878298749879560626731206890687919315787798064753312187042833144092536288535429349435057231370240542050079098561120606214031632672892833727961632469850698851781876062443671649854391155315856834079331409259117677607797836340800904806744021757713689912759561099691785658088660599319528479539018371628340358452152151005676985600555317099795281485385339868332765610058042696435878851652221337225053134589512631816563394559064759763022200813332526445949086375103175731466892996834993157848096622610605227749797959923236834927341115649537476985857967781104034250311529297773833888934058292760043033731421745039155700354817226543034381439396262178264652951233707645444340846703656576301460706654556641364723494930433281656832301205295888125298910401696982048175430930901178679045062254212488212525619181918910532220845469153107107058175395273771174722316082994637959198603634112907715051577336243526008594452202488110506886224817499774672796539177451003828388697542837067447214749458357451422217105081269624289027738631662688657579099190472572585329772662425119031583878751781302165720147511953905812034073241167254970672064392981146397136238041751790972680949040018006751991375536494643694685506163097678076979640975644984798561482146986921996507961504489007031697954952427522394815118281560374763426022812439337264496806463874220424896349002097471907657022194693210720574490394220476364664953781043369148050981475356588335971027275900472783473957064221328015400597217647245926373216040341167765723245728053453266245328504682900653434383619361649487025913338436658200232400040166995560529858065253565641958244973391546171559779378035380494081381387876869348161894226629753651734653393056114063574022550523666985642431296968366981039404944639941838767349172877280095242774840256831420928836925278911689495555680441782386319956081025480102217661596184303341992696371955204998426537946532680488298882621178250846522670220679811260322308169947276230341176397408203575658119967196051199238337166504687956070967210012196261394744211500983889463386391026988949699436200454246011717239477579391759193466706714079328164344872426306600304197809182974858530939645468666757236173526505092890476548184842874984595319494693704173439855306270431717353756181217038051733273111126992735753312251532266168272854984763025674140825968519441160885170638332749063235236802461393943195780704770514441264247209140773492587215808423475045103978776063997487536338817449607116766321917762967576564560642136047501511745119269902062729604252211946759319537478082109503349087239226349656628566746050536027946070882479654130738354702690912465418053619321422178644999773353895207426176194978143357640601073063167188510883018931794441900025216919093588212019376045672360071673967300583612064567530498430812981284486013753531212835617348304742970668613846898255036121882927575587952511747925271179873807776330521414566604833036673565857109359471083056773769111272384345119079191040992100773836775903173915720120868884027477262165517511384850873644379179024781633671104664849620201281885725138365872407405137550254168359352274747077280683825527907686262587308194529904950348857374062193786004991830191182036776676770863623966620802943314439538051308338695508387756225795358584767917842648404136550180180837182776201732638541387377660711793280173071294112738139382820635988551945769285141475881490502003322469785736172333951215621652242514625889821408336056997740580585779427933313746572963015511285651634196863792858119538038125382541723572715401118929439857214346977023076721444910229580798320882632651891505953260735513627798078317394991272710892266508319073399337069034551361718923046291462341446485165666683394644628543263974130093102556052653898929361114943860459708216730666901608905436731752269000821709959861065945289559824335407490841052909452417635465898514916929873453017519651080214448798301534585272877018369821615959081618905490320748709585066114519290281019826648005986946350734261280944352348272281035314294426205203208929023478701205936980995348965819942789096629563362470376915875268802601287862293256606376056583125606326572393923727755341560265999676042506142785626063471639796511361645859178588314053354491754405528392795851670974146393930149092827493585141632088352465154367423205827459655048275181264637006818326848875185208328553199171561846665298373792743300481194920965150042788499403652917637446733725503465093723172785145906120823879139884389736477223937304402600225427961374164612890470677609956403351936644591577404874474420626746073880567650892508678927262270502846161478170928506525436791435563539341279912245295655474694916864639953016712396244088263529184857808874922770815482988219716600948718054508878582211207817653636130143299855996825454408040148932611460779982832139752511043936754273694388987345566895351492159157072148814855517583935297869002236097190575973789304420880354678065388761583947817860602448328514147713363357694451694609040182592773900287234906599960545369680305026891100715123727859090694542081099387067021830875966490814733854982153103642057399134396418124555826108667077136529309336105942000418518124678307765201207388992771665379807547610560023645421173865644739341641042443050942435514870329827630471263130435678325384351533317796065779992871514087409679643374561995821345777884292287160332184167839032862762581279501130321469361594702485379354805221843090310860931869841771473011754816895512496978873863010592415004250754471413473421942637085674655676449834118323782116114173058523086455278264599340108014513629286462037623741946565072092250497508943132075762085112574603749138913257787874391178098953206484427037219575318014576298009373202252858750413307075181762355630959246550982967250287320522062541714560208395786736173253931307528230954923174012807303522140930645064433212914398687303645410186301809624155143156556219855087756801755544259053198225772607774641229433089589819588996668446384678949996100644422264113611423445183585451461365132061368146013184784000087819771831991701095458544210631113007031405388360805323093470910550732529472486948401020259795866472131752597694766665745332940005659646779531128842038707051455492394146647138222826772507741526634723517191648877062806531516331051657397245983093328838149352300186463695779904992669514449978615294587143040900416789776449001348600758237802666232181298058659770939214856496016111823239141370138829564807751040860905160683950978140803149059746150350999043887612410722843540159643694192796515392021415468361550742562099665678177519661559573194585413380027925953005435784211640759391630440544550801144976393084369096978271747763495280535848377107317630606341246454296294674408924423523506554155973448144636341868068504366413534644206681277433733788177679787345947355378188924077674618801874815651641617647769323151892958976693532021934102066609655199158139147275436148548180457036838491235359095875831455540538913164775824456878618632028900372503079055287400513371707037888643464075915367459340864493669542728205808578160336417975950977295491149921347609992600304574631793969296892560401560090358884355528654313927147707283032347828032211246853788373069175380464012353757160743642903570475558820251808172031156049776738305582490090081981424628155945739129007121593430360193068537776499759502323509506598777843651020088076225383053739208988861126268564001800501438587948044742584240415259995772729104958954124505994354664774780593085072676071366170400481505929457289312416948679621629239434668208674541761568597270101908947462808356831052338062409668002285375424915803850382445303658259185627578835627439234986216796822735978630699875193950731876007983084275983877747921451769355638682871201469667195099645754442765547423811204076253664820200608275255394421008661708245769176630729463309637922147461263815665209913727081098609178434572997740830876522622632037811895153121464043936415705823402630116086471097102421998141895952502548804383282395094598068855320649755862601278449219896472499908797551156533175465315319067212811681073655652101784893219694594184080667128957347626112410181357739154819289600883622148233856476149000963086729860466958386285365258975079289888424503988073192804204448462758068714528354376850101468458588755673822883814541079015863013602952862463025365522010913731128424139719608966927210029872533256564806228678660140218827032025143142077077426784645303609504020853207447436942176310575571187986119510620492962998050088452812839316019911283539599478163386390216032150313902302075420360348781454473410528186686414247485697644547994188525083639257687044153183563883781197334169088702347216730642352079190542569785779339708446624640787308396539833749331378833180859566233394502658495992148021285239839138356910384830918313889675407115450117063443788461276897523860963714681074452261822786222250746259355439730965740923993537650569534696040182110021413479386177302626867474117374915113204573663430852278196406891786640284866775084433642526858778347296448859466222776191934309786095391148791962609535495647770156517437327232752053100670487128140654730253553387154627724709726806246587964725803653471702633997541763243130694458300537218025230798358796076211230514936984535850161283666489482333031978636010989230455965921775025119478437087321067204261284149121880806496078713417333263657568072244328816737659638783091773228877668008045311723741322662345152551148917166474928559757959045314806516084258379465699925091451198140356904852122613720032598517999155325503711981937661397164321977519254420612732008016982515962059984712164620241966699314415168461247953076180232566671434452328169437277696976321750181494697409421350130476111910350364100027930915345716550829506965994264070802429385933881155327365355083539815616724916738966319640059111271628606378008665081472639496868726994615158981308591996916301697482402708909921226275191208176878631106580324772690044338312545665316584580069299899665628991910551762325312567335443671053102592633320499436651042102418129194459545475263780356529707979445735199161677503000847409720893992899809418437223739832998506762228687043895833971161529333508226838754857345410732432000990561494246821823350328645282631925048496833101372477584006132234314898195269171147279160570374569217852356629963414464151277997880834151841987827078138396605795342538039613051280554524396699491956169804440780031965463563057964461404567239314653592853447734584394193866862928823836037153863139811777547945010681777351185819426850861290360387136899928409994234033144164581849543006758111999531363519974513178892393932775144439324111744415519019083396428090850091244431309638266232716453207020009351911788089713386126745911158248988491016165227043548849998642058324284339357299206959076735928820258458106791171658738063777863421459906048528728557569968966868319611283525587806144474287486605090612678478850237167674744541654014813908293323799837172800971285016769581140920850103993517839584974191158726057965877694952144143629456363013120792619341071693498621241792013003410150825287466478291407133706516608622186107397616939384008477708274162427020703052591514141603790957570209772051962722023205813451510247646891180149726764720385453514703290248137868036931101431763418982265248812981586294434190369043780213167491485584778519859871593452154850428629213620253292910228477326531715160494973110820305444746409804456348787370932658807650601948692708091142306745714681479445089106664899739428678655426631534118013056390290118824577498790328143736807174656989343074464402497936542968097565323194823038340816308383362827889577278064642554495272483555313611734127617645405937370743281498333198273287825868853236970704253001645569780711669074529147689382149318233006866255600643205054531375027879427347325973683040886896652474535497147472108641560268458375447110733372320895725495024033181283704672421456185027373194831776691306102822188577102807787396833049457286282306702624615398168230151232671605053145457692849252009934478519365324677433706572336629141321150670379356258617653813577460162837885862061744428494826903707056693389842160726514530392554064828877916964546392858110399406686541242519097567822706299765221979794769592325304363291267312098495731518312043804780973151235593563326465801586153107418410679827024760341070661718355062495431192551416775991634015903303173730027361690826229450137680108382115838807673514460198963082941574133741082943715522152919004048158867120890741213859040562713031438163360430535359620388378988821292096504908273596837081358817219960984574350822951384243207734642739609627526485081336265869511749320528993265621120996026294210696735114267807511903619843814480032526614881280394660885757204226870372824870367752507206823062018446921290513700349402109275658888563726430716347030410792044216991676270303392560280372014525857893620156167899240259458629148178240255577079144812667108977837361812099707833995766798514722747007314638682312760653980207334291625245601110221559402043431334067766775466222029655390641540186526082574525991587392293577707439810646838488970586374038744900165924314537577819748145907515712092058313552780674684733855688924377717206374893268341510828865729278567411774870447019427173283701499076199141061353010129684656192461930260175666896205809436530117507626669620789774068901067694059378213907516873132321750762122799211570950859782199314388458702045583505978583219956129286902650898222398776510648351121177836117677942366719254757297706747024112131464095554827097921682655676388726213103116220400246611344974997832530995535308629018555153783098701701628737046601204953509358416491782793534190900115520463067726266666612215160733745502974254695253953108783377326153693473981665155277801045089070942110671796972222091517003392813396581043968318702596424739744067870261214526284705316063098442077287467923464366747035047205539419913450858844653791113508090724203946532762186917770907996157304864099889842230500294265983532661850859405647300987715737116549803784748711204627204093922967089271292885422704257986323035306044910054580657850119487134652098048205108358534889146490391938903150376935003798691321908029549313270227546011625646901344880414634517943174239044976296086814252124907828651743311295817981056032512543074108989034435704875245005924548647312614047671705841734221550736045335837859383873306843388202725102848453454806672247033606544182276059582258514242842455391817774106000956113306095170870333346078086758361331711508920270123023355473873952135629760550149344596096988729106282124998886111888512932087561211541348266930955936570737339210644618718570296620417130511099438397025032761685387313477894494042636872828561144304743922365793802051425254694120681609250209728568090186365419421219567433360954109186058616593995998991770088331924753675981935795196899030418331365030460281601703552706387290605438097504467680681084558245971176561219528857405140732397533874361704400880947759001741106058971419919772391604351094984924779741435534674245389523965218384860778201801167737843444772905368969055636509523551629655647006874764261473297171225858240692628518851425362328911047088575330291787186187372770428232209267556417876102672972823394365491947372876128511506937965975353846748300984061761979089865139818672537339843784711964565980696885889174796380066332055397288609241010652082205045116715037865874920382089651491761254511081086563120345570135109698005034463023767069967459364639433750567678625837576490130519016891513875068644848621492547084969062316988218966011421622485331897768671476545633906493651044206525609731617967084141261269925485848703032144691865306968879154591637259966546335570991555558623985269879378079481787420557454436422836533547411035128534495585155477942538139020332326054963265954579868120735207537866965331555181208850082720392996767400980728788476446194823085311448369683465302250882008919072518292311345288341657595844226077648145594120463408583145111110744116784410255999039493668964035400115793201781509706064749807074174563832126154937209434367396667687213518492334041141836482090930411200652525594199503642378215512534561247808741910326221281551104227326929050314261811226339503776504960055136304608133125351739049021542252436266456314886483296094071011620146260702547028959750938633729983304835638725169463459623685516349118666055127974384268654714353849380538149621794958987247330984605298196222324823159781366242518299248426611580828405661545211370590169863987692400092961916212949800886963626744067874084616259414552498689543841989407303712826724840357358473440930488023731148468882372092329432533288063557640990153550791302228877203146695850288992575867770950441075584083160626093111890386226186908083081956766434152341401091540190203816048201365903345905077873895483229594636649920453964227649261940046179465846014322787001929679615596535529266411461625021097735408594902114334356162469564568217771245133002077490071872758226088779149284508397773017829037383424009237421110130374503973465487954893016777937736086722220238208316556130874306279712956793437144864324557882038877108778987779192332944577716391408662097284435084389982756883698788273783962339220755812304346349088604810536827868409221863643515617758784871600981023202974557861438217059042044362669163391626258762535740277179158496443956610923724182732718047907847993074343989235732495475271168565403339833889943558752905062325189069759724506515581848559385924135592710977102522621430502506431075404297095294884691086448039069355717800400542084856592740978079923227803195626930975163882829837331868316437886459446285538707546450176095377757550627958909689174377158337926348498366470027183037816715900657553088659097024213042427996770740178362310397206506359618407978410517736273143722958919252853497736436980755154309704689092178430347322397208175115938886043016178866756137834137777061069316833556088916596524760118001400313820828498879385881099288466720662402919897957793984973530648956333617706826023349772571825049355604522184508628665248063155361990593651058755656329278490167125038269307879319675692826500835844322506340341247427408753077777553438189629023517127301414032625800714803532250397240778585824728453432044131614437189221152741307914871133231301353081232966524465917014060359733202594670749112174434691688954353588948978324024364904995751626538802133146790473339359894343231934747611751568494519877951884142311078007206876946672677470727323151751627438130520268590190113170557084853944155438672302940511402655028382318217311951889900879920688917349760815471792278762881375298236746983926997038383987155926834704073641712934594527843558496075549050616387533230092293559538158116214884419719015917025141231421087736880589225457808170809016610561097761430610064293876599884074557753374542042432366790569247431531947624167306745883450199261826826423838602861597055373761122145096798033624762046558663615162333499806947321131739970449645399727037383716489908964450385302595404279216515567501958406304540048046563226712165477363547797808579770288139816916344525543025985096834192483921996743326660226024074488961709228097418226848154667771640296341302420871810581833719352788420401319177201977891053844944501676044944740287079418892011172092097132831279221011139461218683412132485040877571661770944622042380421622270816278019448406683526241049419929410639757472055017983565949676657364178053164318570003448186815806297015845515919247524761980928040217598043293168694458404143773517716213549407777088276928028316795697666720559886271289197963470011559812570344090775800997213836874978296122595506828202428081288230421203850977307868796927373269846031436821569200011903292499109904538563210026754838464176729895321821586639947140142006568356236852128375112812817749254592499687251470994386473319410382600336911094462969913763962747478590602528930849341306408805535633225528000815389344409780728508330734054163401334095666892837841589103699599047668921641828921288222837607933346127025625050673954465863647174652090023545469722208127902592697430192179115869647055695991787235623588958483343907952116925247363806374864110594558605315698570605609104920338332093243871759557915799753517419503586885959905229489413958915105719459631682996700053864761007517396378995821534871023300382737849282649536375946272555894359761703720473079923905335802902600151395890499432940933086825632796557821791072572694397406839685667106613212202315715289373459958195261813158132969258061495492847456991853246296353815122045987386476849512237039256561878768515572428096093094078000516773773199632460354664795717790509455658819526498560814920221653532208188418325832408361539866987631653361878532597087447877000634140779162873542866818974580664270219081999089479342291105203193191306271302167286246673493720399229635141295227016710702777489093367287217806226858741710499644519803171789163231841321233652860878950686158013824806231629465306966565229792613893218865803093506596287896715115258823181688710275900631609035653561991700056822679150193409700688694610388108248987572757488245323053644396784352965786807004027658917399267219666706425451344194438070251434058575017221511418303664518871393335430602140338176139143692942237128320975952043991982909307442401482830342761534499861481473929733221330192500224409052018126878731266920802735262403876173875971109270280086391332871442437448559466187834431073696457551034170402367081791709120433411900472301890594806366447765449827783515228484541829971802925967871007817865997843222007061004724228139861048418043477134376634434509408063667848870544444524199449991151014009277442806105747759777012684394251528764717113630458695012726843433484288590342398279265947784481485200473008014103585909998423057353231671776990102246751606275115674280643444536453751896003484537723100748957827009219303185895843221049902174382868030560198643728874191348555708477689085665323872179396869482461487256086417417596157055551067139672527376467610380175502478378335837362245036571668504638422095382344376330768247621554854736174351009104634878604008374355776156318221319779188594577203721912827895710203605194395762291251177143172544679228237943609840746660019545771781574758391744312948029809894852751545246712350124803826324622284237208401915724800255307768844174207252402314513032679161454261672116899155982411432805194174498402844901731938974785438912584153226066227047789715984154476443226305200599715004071419703911561710740529203515598621428860831028109077814227459755602561854541300883243909186226562986403621696618759095783384421835550912458576032280014706801136108375181940504226368209133048168323541195205873810675551385428919982502240097122492501936781245149228264069122581141450217463537900764555232499702467608382532866764210893403028713275375443282547994247202063660448876694810803776421130209158087883074927243588157201850179876672955576552770976486075671776106220751564284018819283475926395705905104609424509020613333543673127039713553496195680441043751228698315675666814875042113535847210709373099816631886479611133987766271131794633280297863023089965370357577546212103814464698237981904048289207826949388110137917512518823036743693844441403028608522477108791578891863160442917469121011509531889999056997026852269727714924697740994437166395982621999852389596802160446659995738201334134666581069701781625945568309793405140263478766634080022160819517842657838153612420249945978928567292889999242276483244104642021985454172181880007776072881592006551739863262756545680750474319865855298887949819825908408448751629984584997276376302867821493422540469333758762286389566154569582974184436428764854948370217245401759781521683102284702758192295542640525600251984889552975973860681175881691879195836100205165237964641123438499530361613720327323367982906222547207167633737602509751037026466634707416321938307656214829825682825847605979938385944407951718793876725287260177895580246083980507428591428030924031645377289535345288451696473593204910685038645059337901861320163502096183709270251599481122069075267443386705517155041760524590218502760244133491455708295883406451374063192664287333705453738022434624985335974142373170950886692651379322288206808817134027619945784771551707792402514009936127540210525794441549282944689394956519317719740661096034731222344548742857587702081544003886721854084937172566507443419927754182468825148326025957440554613859808994949301658655839516979651269859201520726098591194199831464776853102284373167528963111201692713818681709097787171578112011977190864012791788969732348876306821864894102317809187189781956796747559003418784042065320781049034437942003896835945527501678537290574791469375989589296485146536933269874527160308075268153925367785256497203346342918567238909757541786439189129565944772083783091226316475098786612879614706110248339173262364231694357916086039603461659586859257540656341093717534224784320827018798739881059481476896877275869228444212837279210264384347045809487754675294940362864157668408513334708288091501727779931939489955172146545717661148260991200200351586320105195699847649798337158464059587345160892058066854276230232105139165265689938882286695673845565044537255424967299422017031121091101109116544808983551014740357491008342603507175419525699449835863348464183439752916180250670219761094970572650483273624800936569886480935980814809831094284152825485075093139490958010880166524448558502563373593348359718161387762513137949272141244830930420050339226419886856485140316845546472053004483382899392186091684502239960894425207956638872971209124795961769828739761807763662985831627024219547197500793909405875079998479142433279496183078157139347867666078355892128122843733041717838636832602630909799242656031490756697451880573727900255217467975663064408154429886127011074246846791431323866888839428827137998246755680915197946689975881564531798439461149371867617758684310804818046972322837519901056800378042237204187574532532695898219369747401757844626528834202045931237943599226526157555591646128164104445114372322811450660862239023582093492583414832770551965984872199394817210786018313584586294412024606311745569387513604765476274001310928536111882256217643223092526341293135294352376123031914886014301060940294901175602064119408807846625467085258989174112255610185612356982566964100949525875690828141275973648988208455906623892284481930278355974577443969889842766789242423833071251275439081351997915482417052519199769054798326705833959862124550139584745308550025802332003567177476319812043478023473900035898992666223378704303506419571799752736312281232141371719135999947796200756061191151576685429031930065519170557333049218781192444549307087351851879645720708028855509308539142362715738282898451133224908973537262744994413654382389679199988063740740821747616848490358151360918411912362570512547199851010923988886348438325921263345824544219909187771997551909752183294917368708891954175109250745244542052505167495504129562078194445741306716396121738569292284186249372620495395230079491611270608434939639599277072851762392519258850238034747535608760626246462812670770727653185639290718317866904582088548583755363268816840454957386406854548726291015045796142044769176651306949012028310548356630231283930558797622040775881298621998664847479561296973745228159844081749916166466204272470563233675366781648386973538926093136185080870511394231787019600915338440623427401309382561931532540507908061305603292129760680682436379148364097744058424353948039502123122670356143288740718911104559560448551773172892751690875555059581465229777320636263453290159326206339569037671380123135944696857264709674301288257359544131685893261822545547624069383982992326213504940586265200667689948132883740795204601363399162884452574083353018621317503116641998401275083514047913661213060048193093458019019236405598923832812837737783238671051213913181452187188415145500588421451858248441502516350206758747530105712206854894911054616144054270891830626654786984679656561416930393915289767918439716478958537697976344936658600553248780140697232674884485187107404488160459069248718510057538995340609587641368095685017938851499686041906203302916548362518629100591298707758537373347356342543543055055520441086189037654754808588206867714601619553610564237948372517205706474316583324553464309506184924002552649898622943301105967678393825131757302011345522041647757513018304345858305703891273376134208965611024738227664963954472054349960064633854228860485859562168143447714777177230162785567254883792239280063290015754465310319435356525754911771332076048083466874890923363607907654667405702848210323433028845443160634723257905559739255572245505662067467034567985358464548535692062778896076400276287164313328042791900956950232288397658383598861722854692389066870792420528987946173698164796019964628510945535099826335388527445825903033738099197930070867985852720436062147603014167229888949912118624638636482617817969859411921285572865387478659233427507831942967984542074566088464172929526670099628909460274159334041188528928232081806669056942882275794405806511187365039925421432997223522577410805284163651973738101676003383611171257624389249603514637561559430790072366177906275299555609022278595892547266820513137281864125674933524096976666799378948636265003545001092121123065219627749426056092985627549148487415353202076211870290989955410554640317877945464970607193102148987486074764377986080017876976805840901500456712621148313883039773083622541991654313674873982499221915413973437115988636006802465145022084446598008637327141088289988592762377084191508911233915910504283277749236813310950861902040140148854910310565133648529592853875372150639423958725817897519961411423671797172442077111222851186650011121251456465637118438562608954466708436557191756695306540025116038566509616074515689199685010494138955714793498699624910841603600570032094017568589894086844695386440874460799621606329149099247541669153612167136811573473659781934067837133209969769212026587176302109262724916546962384102374683315264354345273351614144492583020591137953238084980896143215511253222036920821819455910673490052508310331590293678425662436543894884159607831044459805881126039310336728734209162325831220364574194559111359044761950533535884693209434661932047611381471064532542815545856320251216756172240569454519520496048271053828681170401179389146428642375650558476390044390958118094689532797384661615184464917506214021794498680238904455719842036223442390708056409718223508186692931347870544992415154470504537962723522514181328055915990786152788745880808117861049962310439865901220415497112519397010236754430820763773172338401549990660433671590507729174385173221528459958064630502605066565124472256359052361696300087136434994067151357505959764280734657458686446290455985615605622289442303269789972786373373033587218135209559621828670853355390354554050218297435777667733807649629794474538526296408956799882456631582477747595869749461883254727430603214742883955651701321552767885870626168573976033987971830629453203577726528498515485310299868323905062678727315459870525629506751667545154856919484812792310240936106642975215513674420332156174101835274596858823892925094928369812184779469916709737919638190345704635547078739394309760647826909659351666628993926660737761458995909657166247197977051075016061874874447437536755008308041939948686038818693622718064845253807382662859121887725021557351495225184797436142318662557271924556700616907721195424143462398393604973246427037029147305339272343001304452558476345488541319446465602768479798640012992598705611619303879003977770581557802308708361424098056521085436600901018618571570088499835287311450512682115902131718123942076359604569451932314567685140916936554433041547927617210143847279997130554778260468707673405861197502222141382470614720508064256318983290628810193002001491755556139595682969860365780181332732578414690718589696626056480706592389609902711486867983162432037326551971153885916779206799288607899850304068746103956052242373305080267261387980474809760208270097897018296159869435193968839095800136527261625209355363452372921815496564270384839611814338322911003127964638262793627534372567674038148257523364242690735488543366513549266586632055275486384387014025780895098183163171241181398142402362821510910654506529057488202282603050435630474895216904778933184662375274850418882703580364689115206568119661632820310413251786937430965523710526908658391115550686698535863031306046203100043310416258159251134034695305141705874116573373101158380743880434502488740270145707523233280152711492453941973435874268863474865476190691062114229161828838629780361636471510070640930079412564931215236610147044385161169864276880306463851733520067540325307736737881592982581084279660828490209747184268619863013598440433659359787923789551787789937129210519271501806267242822688819329572500133902998765858657397025221392737173701674637651851235218258156567453917899992094756726973254703348371190367583641983363989768120944582208694085037659529762902649049797090959470020829541017756580484171130393482945373438141767895550869232170354763186048874724690782962953955616052371148640879364684149071133612444640803237600457972543203337788846801834692706151245574387364295131490167361448208911693857940785503828131874559178577417266969728392772085670762397799834156685837760296851496321457407853268524526006106483895185167691797302703637437539710706072311484540251976740167402972648247912752001586129388558952456307503323468534061047107540004259139820716590059247572848987943730516990721897043316911329970004563214157941027217243660400492266462982712514160841741407144195459443939917936089940827775625657472391234154905657510266297400536540161216371398043490137532310640586283653785283992521076899240268381015176262691375710959837116271575076795216975624582011370449487240631630433801294039540848919176769462714552587050617731895581387488805659110992673424377598370700952389654189842603484094530030640238238683874714539168806427267620289469438606941072722063868067397835375330789014525155318742619752859142793524418061100365260547515489093483234494666543489427136093813321177106490606545763817213902426739968560132221046999427093381105691824278174727178757457661548449458740087287663982579901572894085553722187184157870034875430859706848489522296417582106955745035417406712936256768579309726283895732473125712786793265247134790946619385495135433191615845431985512156917788312062030243544389791377577855134070899155349895315183735832103666442517522613589253834395088104363195544874569414814648665281312391396327273901959902345825007931848640073811911987827399781689634887276158089344790904262918459751630218257396802863220354206509205735696738898349966955139166230877745471733553114931570034614270653138716353858784484206278203915012427579230567509336101321493049636154925124337647375770133111945726650388826950527060644349116690097281330430963414654015820128027777198890046880668543720968252713363568064414860565170055527401009573693534627167072038672374513404603406671869390067012161733768881030426966168611215680987026556479760485526865090706246963135085867838446675714053439967481113694175780186562052100764110502555776456813102918527403578804340932674882388460964176609401177461747517052856919333996237011688991732404820140745133574605389219550327972130601790681196275845793284680483768934680750911012037819133804861911557811704524119616297263491229336591154987398846775823828560408834546461733234500158633869500554911203691879202306460407590180749659116998235010828120194537115623997353649729705206440875116199618232914053320835471126727000959221937788659440878077396443659737102306857357301624366296005569307824022743454882629357977058907273845051906871188050539224746458985446855868309517929367354462231201049779890942922059345728805008864813000975500504952236487937498672951698911089745342970133127580551076520604211640607323341476979380392459890730574287508368313073531960234940655529594035536737225509042564579331956419533202017354332887589235554009732525949052973812643560304531578472422861821616131563829549704693922122801334178497101226268890078074140836622021862252970951224397134550527404649905344898319212427858562540898155644119148296221948668544202909666059952488826015521252667705351886464932852853850910873780785516575677610578218761184150372537478464316762031933969259254158358828662278328549712990799405214184855442833648468629819112817465491701162939196581672147929919275209184582530623602201657388920614849698949590931561666906207202796639736980505905099405044225240158321515063046706771032861031247296456142361768862132752170212384148113489151945837270843102288706379911909565404510453184542134023839883708562123127259966960729224294605618308263718120527220084591132682463894174414784347148040166551536166547258175612162018712733952041706336097483343093665860585796070870485758908658364249670929271534174140336079836159359331087524592794338025535905292984789672422066324681873947906591063717639703970165998539456770100949842036422862244137117877771448421120035552489437115285380576111506067348782181754909341467628418996177136758093325869912410814912621929950455815737645389203383046556881967388009008198874161967649395626439122853268324828331629704021005171020600129444148939261177503817170628621133674323784279008078411959670872215612830769748486699343924593153477736512702807319763658294409942479842151167007337650733121364688418113047289549828230683459254270322607008871896134417416891787106528504062328719409866123248543756387768861849220164123011807535832921719963545844917160639822956524066397902613034106063007518620816047105701316570819210494399338405990547586114343085026441078598561487441168031122125166275478261699104434509414530803370719472238333570836755496649249222603064207529705246767831377472328058192085150585680945876373740417132363835531891147268867876407276623444469419415882491321798967165686176392866133634275455316725971597397944544484112740682487505472556444861892998617885563876463097405639923421132719230651908866356583551947205050856236823538266788051922182429483962411903632325341369524116347242928293478729491548532371193166230953234485660506421825256858903512426935076601260855877542865446075756260303643764505097456693873918737795061122777216019717360538421511349314813856908470137778682538175745123617135895353310039472158180085562754948729887408207870661505980174608597607516534590679565214439686036988792651732777641715685688389951188181857253123014491426739875343570045502374405403435410280237920308712589018542943186374666365717245442456548855902225705994496536231712316579614227718169524831462242985778116831009193076507830159701414775376859334293499039416267641807355469659457913267178715073975417142527705772029492524552930652850860077231586928023678453630953272826189517355813354647938351909769738992743554043081494769861054536042393727167770131654405477976665816925961376675587062785243082034348639968963785792470350943616763202354113882913627358800941762220712021197921597630737383329494358671880692555289974189514782703085374172792622889414980838218213086387949537094307299150061590317523369120763633861086631795302102162499050620579884863036400702592001176738908442396839973185256558473089844371831605873046972235378706344651654510704759245149121943272400518489640298189210501579546496501603236952639059375712299206844327096872652509991203422668197718811853324799401595928296595160210641452515878871232508788388576494699753812956888547334040276450199707590498412498482134164984558391750010804816534506703845003965948785410440614598968018731275693690771999254535652517607519909623219531052948864485220907294271375981564487642586394554075185290487603580733710174816544375446087223491118668691172580531689017362007978033833444903665192857925643067380565476687744883325710897099144513366209342554287864561456598095765666820215887071764713965941110671008234800010224268006931185931760390444473889565072463883464279812417142436391440656313076071413631297963838288813985149597294036032860970704387362948105242169208360916921405460145773476170788607709791268351980514331519475668269102398291825701973070475911761786902408157923581694666261471461420129481256933474427711544382865357017817012999764765577147190241818871850103625473586253276351611313839898362356499406857471346503451735212764100796959185930870061098829708624996053100917646106360973333024976797852298192248630636953896022392016120606330083596090415201891279412844351056059808090709224454899496788359911371846494876993400007167976099932353549369269386871153689865266709615258619855209728306868127978433206212793815795290951370384607475565213852543331686508512389522882986643464133634330256740541982649953175545018185641872143640182360348382089729250716653068598719608714894237470376873443399619032819997932785728046206728985504567577697692302735186043892517759683632427669703913049108167056310005777708963923331771043732101515627365838952219109646992084657063007109382474657777772987184481552529986247425446582254552059923787242114871374685108719911803937095165622817600917192370020490995197819274856424206873047616405358175335516503205771156914829562735773268346123522954820785373281455505213701870095629435299149395777832460587406765307296000626219547932036273174224024595426168915238251401882262481881705554682406111860242837835897716319729397348749327594968601732832498246108625576868722459873809239849646080690339781964914504326906798112803001603972013673819631275910440404531844395567457059653025476458680253321337430986750814789751919926668566969878937482895741852726227206279244181246615424179683232222890735487840373841171095363712079001908006900296584506434042639419738292497253532140486568399093318566597268892953365850693295722470742847503294263418727714381871649202667276051533214150777214997252711185754931020030534270831632108879823668405247434606285008815562524064177909990305107806139782284818145996766281149063521802208254652057779572414515102877096041467557016379306441051817988533575783053453281700782885423949010121355668218672442369645716836037179063373265638924289524552752111872228263508146265943485590125640014850781856405435445139076914118055493979111026747092803651752366082254844617212697408129468593118234165977197013600524699051721989441502660341358824234921966442347594711463580110238662286373626681866941056803214817028885185056661031171120018816087508913838914208093779833106357026310516105966672128078784414690977845166413963496166178567523109790940236414263310501242114828431877951933590661785522712313808915100955152746188597629565699958849444120919123181277156052640709056975320834723660708321711426477843160738862806448821016167940126527928781174761847478068385560795492453079577083112505005673192043361632620176329465553162200421247686859731885144998352294674691699954384061838128585878042464754237352930402427454767051115829513871861266306431919983683867380840248150632334752064588003164409931779620028000161708750214090410673620113691761022159039639056569205225934694480826081107911458243224400261661661751034471210742830850187229324969964392103974811047906898207913577500210998239044082338449707466866209006505022223779449124960516433295065848744080938767789146746825247892369430052913737653589107775862694798121676516530125645504095656182516114592513715994164516264419635850140417860426781144759995744031696864204736496748519459741693892018397721213006392203060660909069365425440472814355750658933463973032942631073149365718854008833494174498003933019590398011138773908896864005408781931372571388546481660369648443398275022757105348641233002437119084159760309511486449800353594475393966530370588930666180740115588499156197051383295692590624862902265526417667854306080989129817798654219862031129333297561512972603398515143404337567755588509338115763654478652986425759148018680440477464385867409291798869737752123361108366265197815631248930537861960393909133186084784833263059494260751850592565178824258250352876040905151669195395142017844662367664530901863983687155152039841319655606821435077288671412135167984980762958248423745434856472049342232733170103291763820179842404368216952676921937363279742602622460669895288187469539441361490792685105635154364462349188094829700007595748438529401128354002905369305749276540085477341945342282299988063758310755501448267969172805703773686630667999423379667056918034620799570063903890043071461422570419055412678567110159255148163596347813517747203334966168725233568050171747489368725671069598370717598237953619260947820153862421665598613250162125168354834653334907757114848166740219974590078318696068201244988183731964599325051885498071204703457909080692325196610114441238003510598533863792921955171653589150762905308466130535308042576869422330384174350452040712647086772839930474375632210237923198199097957025698404342858973372897441582919033487039871971950249212721575193111740331324540207934657857574204401306703451733373263779527465219874675341718294731243179067577177415373254905326326930045650413256814095341652832490687478378162210833585546176762167029822485364189508931620794659861966282853367473755333615690720298398563362806259540174495918578969564738585625616125189008099613438811026089749688550340062339416862707089274428521636852213197768680743669960699408157016760435986101981075904150532391991983296920354035665799665201385161410627162604742483818718897183575539286486926529853422475920790102065184650885543193892266115474907257645922022983262342100868761404505841304282577628194673128812050659447163636074404451546363522632550827053833798383974586316938308081427894118898688855049100889985304635902305412085352628811035473958185971144515786132077719327237794156825669640592031961541399058217268754477599518212007080779826778864851494286444812747047411736220683748556876361114774176510357703846611995973796713158195481202255318747722244013390879016531429042435369878465932798230182493769496591117824158971071755091303910987308702554114279572891963489622002548168549745331488741129344388212562826747312965870992500221905521450736794008479695848029629662150583651583246038459547660173520928884492875190383064803066590572474192554508182856761621854337796090577236455228096235118633125363277116165590448026508292412210197838148956487792173409047622307788537430098025852266523563417338677601570690525209316120860620535008943394137661237769078158077459030957217422411796557596022444919119681931161337710884170392516571425442088331282145435327673072700265578094067045072673363737632615731390226731695579072747987106345946231569691335854276138084057596695538316786377768761098230032223860225160469008143813239647728876346038315171013971264248546034944635390976537231758073533690452569970727116175509391680255257921433327078029576067459544537166745060464772694419326464507984449503162596745388716208592843571010512457112313006308617317687594587679055141596826625077851165127346121601191424141410912033096633868286615261361029565066407281660067541754444764276275855334352738628632040090902445259901204216612717211449756353638076485780351430703871147691471502923083979027383087995302210761387986794861524092630025274403516317747829163772905203002599385510198594981034170496205603239221799614419409965193400004319984500524912260773434393636886904520845539966654064550872344252690713636681678338926171049533696104659043251607930159012610715916701790752394699742283605581362774552890275357743747674312056736608213792056337697450683726283286773544427106167626110560521307803160641457919303489619919482718287650768796492521604178411078717731647778377499029498797210988379790765795605297226170024071889008663983567200816051149375953658952198403037838088191494267829578076123900316915240668302191069805843188323793979976293937451816569496417665050731302479127889986002041481135729011616681834303988916438349090820412829684857522368974833568110708862557276711149757389860939055797088665907267754332251809909799985880936916994282173318663159046961980482387887980588621539164376768246550193689758142674332487369381769507710498229436638400048652656018986276449841908836459661537295899005840564034340972064030983422148862117531356084861287234714279313475269443401691362967863528657010125626369015840970775316525498383398418955242252042621134052967600109323937467134731340148990814278949616696282097833091477408242654373963290276212388322130788644922373001124461096819089232774453782906037641009792784280962700918417925612610932347489831822026984223835550716044113845071698543434909678697023077279391781775710038621965049335074806883413811976613492177499877319590111813239953276152364116341576219386967105436919604190817362563709623695407615680926859270302175424972572372071929146289195855023823545019216706745235330911111862925356610998773821565668641296902093705047760850042508344740458975842566684463253147309053384693115061341108447645956637768996514835345069460085035060193788457148651273453381975685844523467656044398394691853754426715663921107038355943223616012887383053978643113492857069540177833704025701895552283110837034765778070591452342988083289164032562200039662809529194075208505499826433788992350967586330091615514522276601135256267524805840842068471975420233727515942327341468815859052126889833304844508005598789422965861234667325857801944816435218477641565580567257762025841258577704949426819132974584590111557798770904112900613998554152012509878911576327164993740234245888671093859319743931662961038062546889356703139136761629625091670640991138144175267962219460292831811490179564528792526134056176773047587593891464359806906683118716157731966275440216967071338395642118320490856953509229839029490966455432529678637842107342650102092493682218431710913509614040538952275906126074642542467842660373831924840447301592802441221979472102859159155383593719235954620816805922094202941732002845077399700828386933886392861100066621667722697889231880536073200398107082296236771917278381772566685721385455737063003921251194162054724172504007873403840810246822232799225292306694048527513857595547958613557633399495423382371413645973496844155249015568581280877620939701357955633861136271072985115634734597509954676262899994239940670216798803985575960915429049539324229002412079261669360029220098668745171290711809659713837580264829164399192865490914960104412387729541715673675104335958866260334879214460123863870462188233868944168729240612236504855974022181598412598407002787624205798773055988250042577344806334593733776093910815391767814291796261094982345790555852831590152892376784888984190852397228756441138568066781709799673574355359410021507732752325178778394997823760864172359961686936845328932555210805932901420740414155976547899838684355707017352528949342992693769890077626366622056855065077369976011207269731089069651868229857828962885374193456528385871844883530317025192687532085310557132140569266535682727114302603291712759128554640407719754403009187635801239378730942111999873392203245242407248382612829421635201062438405301398886680145592542925573736389577884090062426309415813604125606319121342524523794022060176755776713454713180212979049732927471304378721801102941047282687445762411001395755102392952616222636638586119387394697070476679324959661333373997278704021266671345135096501461639404707274386392299750007221858449032958821132820324389570851662017235893392370745953934671160918288941890368663894525930213105182994517776231400280822323420825153834702203633930886442441472802119324253468202771475644082251741117184329843509329703254070492863944413205224118692036699451178719055571959342498844101503535858214843683715643565841821899502641663919233081601959853143333586888836999344693668846951045597949336740668964436224572449440941657943472169187871008248825174068829827252142626671605015085339718811214985502257501255122963664018178592003363825773514225644598759245569517768420969796620977318086279744791260072776579518276832106542570477795338680740515735004838595691670090341403941399463205790448265406018619820330224279922191029410180237970743046828285116895098174340650396115194278247929652390753455692369201664211126060793807988297222383238279690568216055653403538550669229757940854359068332031901399990449751969219511681537988884217514313033839555501276428196333875407166807496743134913329407317081624225434140625779535682650219261652009857471115618654228692636148789270525233856110886320811515011726956624468720347734688386239342199990299605291195894646739266533138228093805660920048980129840348971197918027257943805567157481132375499108379617520027544099372685417985144053538333935836805538173488741310980251979486454130416512285998064058767693796437147822938687141346954988257656797539748167708801486930104452912870256990327469481850283378361774930964196809408531365797234986897967133923330221773582209199627218862938925977865819659470635386701136163695857085297092267699517871243855565074789361820322840792875522300109413873309429268629517836699998383953755880047943575165807538026765901049146283364636727415668010684172093209277752524561468479487181483674752931313882043461723646128283346186085249275083218958904598728040178162554372737148949317660148699183861308386940301108793910825523924965668041281970028063999509560916559521850030225414675897778747757748490858209452117085422938535092056956685084921780349642843071341498165252911729748030912544565272631173415491067817622023537425211670428735804201796099752048873926240426020919161877377307495678788435476801955847886540815627730692895267847296252179178619737683621290843709349262757627438796871225003620836888045503743937418607431400462282864412910120618646822292531218287552613179759881002229473385393733803711596215676246272017922067494318242423657853609680780780276402203371207075480232617966595986475417727471558040274917998799634251804861406586507147300688402114272989194748370360094092553337250174447005289841142887246289640567510418915614936635545960190474400493857235178935730441866511492434001225687061751436832893244083790339669456176082094750143070098450353987846752226984213663872461252172640615871489171835684047172282392559522583082512149809179993025004625391666363396198822228089802985139180160953306502007602146207768082237751876940374024234563528616495402003453778700151127750493670528757745357354622823920936086178034732101144542426063138668901282815433106648564605433048855904812565007613255785969992126889540319926000142082884632761560562344451512905026962260785418046811921681369622281383537604654832824637987901787470402194364165009054935462781845474427780448251527261261510022560949734149034296076942254800766242083879784901041839501710079899953002480773400466744688856472742404089310766963657473112605709555671810220073355904487186208307350542567060974353943848280135013614609699700642889225013408854117562535656464401254855768474720863980479512025115995105294997572647323272211501639005398457011313577635916790027887424342254349743624677105062541668268854521911722377341157970704869584612893432655716027362952763955942655127090532592951540002174326891784158392327868160188716109547877016223398190517547244829513789754567801605843709166824887905193562646302668211740330255710153229862285306832263629238808687718040486738620068058124332813117689300998993450909501670883013377273920632949731811434493743957512556429403511020311437286162072491629390901290662474146880214136066572119821238538060741754885492846710819578061230660313948757947605470445050556464837272382378499045076475435306717681961958767300568237175032439220084139790306293065089743055137997907928453906757734011185551231758624778079262392595036638509112307661168130095496296037958580873727531178255920581072605185324596138882046469836379475937391345671037100949735649961583814592182233152322282239107990985379817096610766234293674408709632512161849562213145035108584935435441789231048757212817204735313110576525026792884539369174536508001920440421647390800109097815217214844269957227007690932557828842247704143844382117175331428785553135191903232130110181713592276207354431824261968146539572501972354140220717821388480890770503549845001851024875831524212847452472152007755927225559770662251377332175096132099704413649211471991518728881625184363358567997496105891876223589932791591050695773486269029481002664965387391969779658742928648022986425562457508853664279398648979114200613476619766063818320898350350892975550728047453108959121801239896471839076443756264499875585254840664908197271406908132809929842781327284575154270194582164772410972827062144051945851484201820398954763421697316098295515299758979990838041334622692572243666486796288438834304651792565060921481172330301284614036637944557445645729780739221332751929927257464154513015143489863318440745383909078761492393644391948071173122254324164476490310981684667759747470434266394200271575263701796168620269348558224834830897165790748317980108647726258025141309016641038798751000565028291444382294635265484072775738303927675816915087658024147127085698329177497959721292294693913092877532873666023347696216335098091369231668059573345681534328895855551324509865555102189575278978772951036954973119434302544731404059064859313208257417248670266207814252880251657920968969045051126271002326839516837272123002705096736384152106072792991756170651069152712055456809718554828144427884238700339430052267014393950885235412328502108585494119524714491492359028270048071850678575481988476306141978783026861209036252471544780246496343210160068297439534770142934567455066884452982450289855660409637118646855599536196865969512648629607259942268290339717726628358536659189383289751290309930953632568008648856396999811597537918782960945733512935652680386376454716640869566324218960974824481670231898986487876940561640433675632400732703112555000632078640867304779704767541944602875376690352945353812907638581157686609255448544659833545701868935056736735029379695280277644054757588262725583553990945056962264459627419243618248101187916279376119234253955778395003899988641765880572412422860078693157057057118852087982674693952834821549180873486571919176611906441333586459592936765507771071450276466557858800007210720805180884280867306154266858977550364750798150680544016680997647688574341609241981405371245651122424391071989600007505302478571509528366580451673808835014922846863191547558701601235917598262456109601342509940404515076138577203643689585669076851186287211220406330664839141984093701188171455689203629161570989819153958884224102650449558835688573349841999043205643849979378350196646624482245041276718346786358210362874601381957356004004318724089278183809335465570522930546170482760178605729453469445801268445042442484855345744586122292741343311794847130903991139515885385956211137996831150374512454714918081518115334059666206442190178570945343226121105606195585417906706543670091354228390756424861358129828918454165676454179793774913290232923183864446901429144767582953669486054823406770300945314521187313390990752446588054475527627764757102255871141467692795713059434349203143475934654399759391999354140970659689402192641478099348942557241465251206540570015819150838590309287625624291650452158280116183583633903515421368351249044503236170506992371299315072581849800779153793525143695144157935010417275017527764642804069896395791558839065679923670050157647713035074402827518342831458086330371225323945106457899157427381785508759886995845901683250415793469170489977719815557963247993815688439310873061667576491693616108072407404338056592521868431903261275294959878459927553046864623786023997173720859840564735391694291825606708478118900696436750255794830887717159296826801620107674615783346463193454385111584117347790682024076143290903540468675852301594957950721475679771501258842398591054396870740632574843909334983873267643527610278864755195060119457113932855684799485611911235270678749327925800727951149185649501436491278501214896621398881987815831632342621568665810532820500465005721731355064988105122349680939397368504174523617806266944575086834011266966470051787324663848260442594275495824117722475016628560368083118957639686634088686668555587739671825788245592867826663149068263175579514152328432378366018724133325945178368800155126098287165004952592742070059792643148806122413644181376361581529195649108987389350308292512342205814055375677173516406855402893935154123591407557908908413810614758923845640512266244666190681010335593835526557971202684137258913886965723491010879948569722000071125392031903168416308934927808884356324675943515891122258120809580236504181183251950918119962505740580668382825615973659512233977585831424396097194499525952910211773201986198058957626930979633064046146138051534891340283532220947774798500547317338942832887320296094723509690064525343220570618516226869549685339802107363077235217050788222727118263652954369795768959696868651831567142241082887337247628221575577640301358754394531841960555613813233925766578704303870713032987512946017003989217565979559554770693692190226002089313148707072559475951614905661725835543512016530910546247115201696856200757858481474250978067418444067520032840638043456626786990256822302195605608026910510014139039955363592070959324648761298331923376991045905606842370470780755069105648465124082821540801277490696493241345701813195493417983716170330532803219643396864268138919639011586517858864748958889615557670436382366831244615344792729449561788045600149455712059366433103087648405960714572654567918214532941385792435968546595902559710670873293218572022104621823900871103199100205231259148893414992614753376740044938063350616305617259754389791144799094165422938089706550678271239585572199796923938574713840697774660461019640274674548543237601736666216206062023115541546469944854504654861801867104795013458242743662225171628997887517590282527210262095786237921534458824159249851058277732862443297872173956725710362028306605387604522501631920673352849419553702729364204893030188853667951099955291996663935206882869120757085898667656375002081676704909713806107754700283658330986264324954814512045986815413633261251875293532931923247896269058944128908920697978922542623329860159104114033343041793929366498515965751899726578757952717310539074973481298073392111885649455282206782528916216496659074686311940062936082983827366327250133357388595789289793898761082479909972247825822127895097109223013304952740890161346545009527561101505899438207265685108027671442196103707538204460281485280357589232926535871615599901915284653405598310147611308852809222897239115793508157833934455479491719193658359868995363837823021809425778471053363144395966386874291096709903839570224879208993844336241488080892146488841367176107228273139687752343321581668152756179926565424121646861211807250656377310950796437094301463080091556697466510184445844451955638612832311665508512939316834240830622568510938495467577789863330407631242993544988588580793792982413773352558458295308586256797298622452389341768310452278314567062259802785284299452975025923763096492358034415063461821810177304919478890134211110847243931236646866091481229682350261007619767931391433171081452906668304038177731993286146098595197785953853958335841349163043076960493865277315030949970870319763108098705003369255202798530211589981606900503225478148774024002770581170895923533508486865179511461197343738318338104864075348947853235461003069237962997541803157743225213143250847929850648625385032326771548275644382421876745433685802455187111068954855942641709803195769635769401686689687392666190487586176541339579171414392938667925242488149024961705320281388080730735390266496874725184611600345170410966977440901190863823597730751370916192446314168773392224044743716148271899533388223065273771147145033807566219670759973086246379839487644453531312734845672697900472542547246908684159597019623051193278866794435088793305710415298811253781088814073814524729420546583298781578285003662757313114446658532430055427778585363283365027858097485440674940039891935040789975062269823473969589053433974159165707474663098399888918594679182577379081274035334332342135794306921791343932387063383803404116161984377012771121063803976024852827243244380329103695211011577811147780046786795298249885065833019531739955303541509806340615036303950728224650782415595314763951968413641425448188467793676080777877865123165342872688999594167914999325975914279355626632866733815624942901919252621576814696782834199392232370667728030315610912018770616451802240394062418030250090418426662011592637991515642494966633229222336913800317131861087126885443808494157523022048732639133229852858643425379339790759426347695098602883052855720154102937735123413093748283061485482212402402788535568289351822110951846556902414777627930008817277900667530797712152089674128507678887655941810593629002749871402151189250271482972187399639989992335233216344194072496966783045245697135817873528483963849567455344024315288285801164200585827925842371963517731057012900950002125380558722261010914282550363356551726649387048972609954643178872613068754398753849192302976201525727244229332052956656764672523128285168311976316630814459560066869703996614153701255879081639438792760436866049321543082321043317685251521634386847500265748910612949362489749814490594390358012179749026048557895945301565303315812865942242037629628083985117400059292848539226343451125626869439755610809581284675734241717669407317559086504459199240553937123171779660244951211929901580305035264458373241471405049350890528763059389476966003025304075317871404284421944661270686956518934728140378050191064404958869080889409510912138509494688920060891883120962382534418632606004827833250405647336075431839688153917143189858875951233261870618289585562495357903965268573731084609009072310384140573212485707975017774552416848864579405945821222326283793128168282323677896494856051445838111129875480584506068443168683216318372204628339591104707398827468202187278498256607052584849504601746120102010131888932519628307184205792681533197813698529473109254510097042359037270431584735942099141831008345347237702942898052000902200489006883647951327336217121469333243189021154152703350274284957257941061109313572206936624855554799897368088610027509650450112903740152575878852932036583145052136882023334378891749509091432492207308633170250601776150447020924382169089722125234026751274011231842688277661912886544440692317667438560690448645259328530090739439483778685740122096349169978775018117513851436443034781169012601613487164975735201782529548200006642015254534292366926795096685345876252542648812512599746413354260403535543356112912577438231703712639981516186129662874462982597484200733240925949222684415924555661886127698812654549886581511527046128896472232502409840727298588227536672043504563919616504834606467559241931913591051245668697959800937340197865623595780671952551853336112959519032177054065982108168161080203267842364654022439692381720437098366467589678570659492687755201861844422285198411248483377009990434760337723774582404279526677792626646377927967730643177681334810744888818494350711864842885649650653777989995212367376223528200741767056025901087062624252335836186990244433316908482170507252329568790955567767634131797866286546385827337937062874807220912690577167037792416337648681831009597143190255742662885022581210314086411538883454669520353736144736632470134367956627474335122354933725611431818501510371666322919747361445417529907795047097158877705220206932333005112026669162659859393092256638061895193798644332973368440459578860304793318137875782633600125593560512821361034325829550668726820565253634122478851706966290633907853478838568907153211393404002087456312577874575225592461725150575808788227152879910880973324855843590814656306981544933601175986646991157887348384277405483094644512949090082798412265450208162029190408417777627395866593503876152203419624412996398910726477012470997176416710305316420867010828720488512312311824639449873578828741366313624343694133873175498720523372737843703356517112993075806552323346407566076231152231271327415922453351416076173211168783912990547394860790288594969413660886310960342236814502742904723181336295698876400622889725419139152717710568365234829804612919691325658962034417571411051398719302878487206981035265158662085749504059645074794614390801186313982740889475708240927830747947072747348123251909461747629648251242860645142006236766049285473646463819965179604765809244491423723387196272385158531911131981289082599701669681369089032871448828705839573789477961397018146121078381044942589854118781770181608391466224057887901407924456237451903426937396427826852601952331617732564244180526522415129994405034924723601749926074051141351453623652060481042595005969439423716043356209778879655651289031455896868244543704759512601434072099063749441524406409300484925390269320433810194919100839999272058588805106176099165564923202789127156970475264707580836906968431366356801436262718188809881273611766058451666641766555674655028782738990620597711310413537218553735132167262335278053071573322597327836039727397492446786806545721422051879743392995742093911968492309742542098645010662687898328865696176186993024175966735875984814214699166329403830299159183925421520342890877455287171040894301932497918148556064284429860028652542072850841056978741315019320355905041320904196012909781148055300154827840352456548900833652999224082415836520335094392936532306407843993443019081679782210126607099717019808488104107669413847281820923597603241655592117007552234302970067945860667378499672317730890552351408282122066959386296887937423707419314657700567623215612304842671108585915670448231172892758184633838680963132732803307040712778819287846382178215509926260636980817820392278839697948435818559997794500828221546913902894954221562976514966993130676558572040670119472293227093788346612560499166642242049060412375692335582276735357783883437496203571002651976859997526183916864959383455573650556760804646282212407363925909288613784458612483124951226015486864653919727730434629153880678554266486902214924177508716372005332743011762214742650939006843573553340089627683854986555230204196598129412343160608813280799875756434988922751028230946771362852741953749943601577260739777715353984831248936820112054756788637427932824726533131196219230331030998930117386893694054122577604011852395769067526443865428873783322365809290781800357960597894711122553658022611045176107537295208189622061989930912695682243225885456166954299812405037051351819545386890329878936515728283370453345942244650559016704778247725576148933721957239125856074904245947714878781949802370562675101086803511127843696103955870723751745464601761466280469990998773282385564127191232656752885556834422949530250706570755555567770570110995577806658126685971862293423930321612338091780449235164549896740578280881787775179953345175187041612090631432071954923278832856071957601866612774080121462042571839428693445252262278379925873676541026530027231069332638406743695650514683761640059973281062585460779329623439215668766269069609020049779345872399894327743247995664382096963018174302321264340144371897940275441911494230761462004300058051893419860222767472468984082770984025815444989512793080215606092714178154084380048097434427043421544666694974698558073653192418616036299341030425902246758854642597303410637754642645162557521090476605143256788991357917185008670805114026993987999296328388631732035307216220941921538426817593377401241829196288443895898227772106839152531810602363392524969903310688072220386790578128513033036346172682820599081395882098260698439691548070208643797852568476990114683565484276008606702626730057718744978259910657615018272026595902456260818125143329971317230169719517130191339586748567387046569662413646643793676864275026719915480353868683020540270795208690875364299056922147001900729500238548394926283988382606237709980739124417133759226253310570183713399267191640379686761652527339650580296882321442460573360092484860639375142636383832037395328266784664506796245084728418570105175339785310416184376450928607604688438385747491675402650082167815023164708938812474624296750897612108400975976650899470654240665658673869043462219100945931043094823679323321301147363210504378078285194439320991860055619159945359636219104042177548921022715671256634099731456222421668674814614642314544781445406830170701129818901756348791959251000646401766809899270806719859819249364774534480274170007158821787247261229625546466505271509464495146863961172107971313996355294761811128224410638224555990622889995418589136689894709934600068397413121445601583686942556610311906074365719404744403094517964647433648701136465945115785378150124666797924289237099562951334361003496762839694456364114530313919810669804294193418241256831241902101767017264574144915059553168789818308484606190693175708536895153689196988694361548262009128423951188113252066092654254056485454893664159852725542112466355645807939345501240058881345520206991891950520804443711132872488207301891784480023177731482184218012911705745297089025980067300600032604531435527610514531547596727873668012184629890677653024945134604136539898811052508492535048808186663376994289191782065495009037509130999724298799464928207157120459916208649846120132824458244418545411003569643361812442669471390454908143335776540355608917024917919118959239464826341158961274648832389743093579005987545923783724750615894371094744282938505217461171101848193065942431637715205175920803563249800319217240292523125641695569350631623374304932394765359828827745153072684057846493638635728329198031652722554200265188335880664648523002435186935793689224365263544676341271565588736594118438892823794987659679482601604422826680877192383731528204880357562862550020977149303764741163558484255967961428510240426243903361078848620836619549282938385058361046282568452603316013520290882047617245296543266665894976449426987874092750806530160548931077565103248532298593792563741882468396157249558628868851423891136044424282723307510909281183472619206506166493872845269203722249984233178862242933868236735182418380955022696882470464148007768881226456165323004124724967283652360279386850435286610012781711570436345373382846280552961869117072390250621375896305486364130662816593627619331706373040064936364467814709522336265919410181055447263043670018370161109246115278719351079212086411079336030966704468757158150475179213844575132839492525846796774437731932180674012118026025401594144806727108801397421494247836394244602896740704293919113888431821124483308845434903294212624334056465495374943706649670759492214418805753709163956692497782592285615446678838633909363846654980885119976968701845960935515892294475241801625014756052105485680098388500285729521715321849663048116245291525964726669660041425192900359618116857910068055919255736261869815356845638669731753691814388201647710638075926228824048827691002657160529776844264543596194403296280830728843490315227484713288766176887702985925129504298521486479928946714710141522374952698477244928879580281434539173156005482048719084129425900914521585269377552704077594954464586174083214880230894042552579478201865991072434859384342914688140562941877915474403722931501511078725072005280398955345974415369353708446233366865629379851383284590516639828135943702343458364843417200164897839046999319450075667817920186976311621288766588232184438126896061799927756986661713934732115390227973998761268511984031065175295649350734456677612376883559886782618455738635084037725769930422150459844857218471030152318932054568603028611470564602205021751552786461701342463241749225917218657912284522996583605849581354499407056605319631683015965803898518030061031187926675630557820647783489645357438719139145322822475977575552389817634617041828637387272846486463793993793372258431225135803092262302669976412152272167079772354122904542778737190129302861865923326873265834312733968850632461938537669415233564702643171195482815025260181030379646899842663558801170925379646329235635079700995157827622210071497475366000557892579777398812201771113056469326266292264134426472894497684722243252086985464298754801300058235427310236333846455234435318951650054032717860268352205024290270882694749360073053579197174283242079272595607466852836642276531360807841146197372525862515371302305482594400408129382438616591967346881877467039464798472813403523303782264572196316634533811600138689527086496421004973023362762331191040074442093618158345022946065253628193785250486226470236525049245309273589520922521521671544610826252194088730914098217125722317443251906561825134269316978150768726155897308546183717464095034479727836543831035987322467327056335250542307784632704509636142493174373124075171842267974672355938564627535805615883224029392917406055218230425819078334665750877408075182328452292171527701669639991758213314029886613931023821015696516697291777997744685668514573631655907620743391444502456262895284774269229696631996789912913867414310244589696012829293742810215891212301689723384262350595856070219773909885009751966462409245715661826627990049033706331157631944434943261931619511773439600437731545357859421633474381875624382645280374256301916847791318367241375408218108292964351867729378359268007477894499612169088358787199624814559056056628744775948869149258372006237786461030860991323123040167662979202916052964902465800650771600364732394334485579510124493518748498132721056528781977291187027067318210461628910630995034744676762045399408575028470436096224432543134696820867476404666265538526324135746149355318059760117238855882559292363507182680557051165179948842293538156793916668978041450867292543511938824076683793406437531475705506440927234255381206267282011452328111700151876374848439947735432710854260014314028934378353493900896219023449296474917925539202008336721598509625630754921593614862864478130298003980308212335716557063670080195078434130146229707251849647059816589453807160600242968853949367366927552502392184652313829206110292246838586588653985805347196403192543788295447234887929872036283353542310710807519947131182212277768070684732929288753465340129738336317224389819582532505296078571872036983350360910049627122186616865954769284997347096710231262458143364292593939490278069107684021261065851942733994185318402282701089579294579268793512268228887980592360775129014035530361303453994653828807933789777124567417110738822349104075012568319216216862665806283638539890929109810309424412131135421177078837036461756636920908378338272173165851416178952675816723551992661832689599743952374793705919027856444949511810628408543456290527621969697761301004708558702489127257039833198129673434721182899423722078434058206963755350735178455518187628676855274026143214839577332089132814347460947716911652150035087634193338382829403633996036716270888108156180223169514750104464981134308614332449822696340381971816616043607530523110620022103544557810214572922114861225725672451455774770696384654708048191406773315134896891012912861929377238993561617260432952628356257277659943124470514443211355093998954000034104327119373272224969026363087301349847268693385366359242951322736080672129037684488214207661920787658241472427956352962305163942368467129582101171034475553169218353969103641984440213505613660307017425917691752612207747411547345657270413291979953654856785117188858168007977821284704345098123884221338069496509023928543788947962202620464247968210722625867279109127193473899051923561203064593599672391512918035593336331906097382402405069083372937118930363172909274481971236392724853043427298160095970149746369344259216528006285641243665303547762491462171105179263413459485595692913179295645969009618554775694727145444303264069535723086744539523397819623918760337524433978362130473575676857827541602715589108795502568566958602544393053758476306332347834680791214903113854611611770950937659810455954097173834584412221893276721031837886434975864340315402487845314775966940058547344179860060048752908332073108343131565238707651167792487210593467274124038332280309572999679267593724932502331563623704974170333127526411876555901783747222551579632340352353428525903015326322754664040086186016278511456026780911733813115005915532309979009837077090937245703529992278806398739312777553505033777036596045765113877550509111813238954338559904721108022226912062536041525378051591827156158901257730499486897770460879443358591649674125295398705302440566680663033665866826877797368227217506327633927544854789983840280586717648342394966724947533662839871621964541863404588607617922350294416551841869418680012812226346028945790706158247876310941190087180895951634144903772650289923300109386310272274831604271410490070101020754902223661900363441879837583975319324143528241514280618274102382196576806027345231706289308316701999741322967395128224290568605076916320198587466063580876515079987840200550045141814376044905465285906519102068484502493269054024112795502727188102032884140343450526253657707976323637542626948077328913926018157564018273256222855253145327703215017758357896667841707649469289571688694545977710389655651011317868478334606196338832515367572453959402232652518111920703073935070405519998427066127202545932396458830867979164671868117770434628506734584706285458084492815260190348306482802002922536028290374043974636368846722518278340163697558789307993590727965919636001330793572937979823764708647354164554095902498251401073566195882624927714153665414322465808198840349106691687217348781175719494794474365863841489187386062194219214059978072491487357391506885474040762259353595136344679932453897306562498687456592467285353197731917043446041840770378894657845953809520131178866676899460243240864611088969677412765413616362781297861852404615093609810393408441995750944423866669272623540493345610129437880710383655700030136687132615351590902545092755980210258658293415544624062057352503511294638903602712432925883652917618442417837768852848977480523308499157592326442884411774516133053413464488044824532447378152740007381046159009802497376468526146106594517117388114186517790210722946195836500378487016368485911059008208083821408350891588472732165148916397176962456971281693729250654533276829746188665895640059298428375739262187393856079796994703324963034301836595198478715858799585453721706991284829974431944942142841895778917111630512458601886536515702869688963862300401559343376456916684236468613537238292727492614357117510414345178496221094392224922753958153918057749272740618397686559979296252028648782319934348208105415272577625796492467462116891480907878733737576553636298502501779183959249216067880025037226033576572675864650036867925791548368216039688705053082794384528314240587228368843024559323295017895553830726502222864233342288180594249556639945288937300172171112297695204176345661320520788142285024771107983931710846514999112350750272053540367012814789984502291496680165841031581403337744502295240848070934506873267799932449894906134129372721767251786796587621431920046912876524842764518455767088612068725511201842171781279792148016164476340045860357751576765438482581873673751467441350999113829904180286355031014924414863278549866451805001982987557207103589017418909523786727787841714110753737349388869823429620679594501347403322330152196742355232381511596374200036918717345522719520802734626486462578820285377972659526820513470741381502561783002637295378169667940760091409192300709458695750199638471976049354091710227741418123581990440087195594532608752953357548617556260129236337987767365739870071265733299306657284845247102971019043554456518398825218936821906017700964007747852269453109822931291066666543414909987328880950699451887761960837700347005223413617862836767763331246698341061627307674880698137152267654522150084785097936403780706078015558595290881697569525748377456869642045441672560319252359415091176017294447730514346506920352049485066148544324619860612650290399704172085081843365603929638656709236932692448565312989966954374535385676810829212692882818581487876862955352883733263893428875764287403371142317627708970113387901982587656473891033068063733169276836557762148638392422343549258197693275551805107154252783416596238811573812746332824448912075439332438701263881816151487349307825225681314894647188653268887575971508186901690370757192437194939473959057431910467213511874216703462654162210848617711973498251959283478092049089955905984224070398099407000646829607112645857530272845815189265677584951810309736776352050435638590076171311626845269668496756565637811661848391713988560632154315109928589108554843869326389323769965421967242539852740897522782029433336300262456596794969878445971591631564707028960727284403161839973057310560271087258865278903865429642716112681982231428925412755934167392145623193584512986519841323607417688511250869000511714112896998600679572989075359881536584436103432052130190423610172543950175465349779509531132773109716947699380322747606158494621142677987638763652515572560184382455233510262122956061870913795325890236751932764823594436414711745794875989502016851790029733663835687889683325759337418842908952929367344753299814079728425316052674457648474306203730849941261652584804168149840253454476520736107812649664181854876971764746082888304314922267740988853682540480544162507877315766117940591533990801243606111972695216007511282666585047745092625431844857975703338828903750019589684447188366375708853825025695056451234224103955929804215177854084833039184095503677671395787848383000665577294639545255207353899942402669602740173498625512805768524117144805365797096995959469100835870641590880017295851606767416191394858607832706455909421930148730087663319034685107784769761817243642083857373677297922071312225478750786780425224162603591572281062833609546379528234465376682920017725754462311504387847598451209002175256280374516873339394880999026186134321354075602075635788446379046536523645187254013771748810925122303776411962259904554868215230597639999567094686641695911107526298142870709283335207573379326679498147612701315739836654110672101916253582819078747279110585760179807508904704766878555136212109619450298026961016683724140798133872047936943540712955390220905286348522890111314759925955350552539171752049368673420309292185652366316569626187826349867412914347267341069702853244738199426965303067527557037323433968542774388308407583201167310273694816637027955915262708611222522016118842316351156112080274238810848208666639897977953121766509427549390591082229000990264165888066599390868613669957525979282593567527332143636437115540538995456910104546476733611761010364926512707559815431732277585827837071177558311225191862843874842202594718897049836824758593560405609354976860707472084513020464144339965519914033388315191988237360242340261565216848112699922919398180408465214733020065824291904547612640817386788161014073460789698635975752917424709186579312219229558127905198143639420245509810440384046322608379885816153279506816208509354566861406254320092717342895860640386346400004923243928905305346318049406690087695856557849272474657354962287141841557546380242936531669513724427129370139112304485926231492818051711145284513762490858033000349986025291259205293729172092585076216810332135969563714300720430053260804001000214581334358589013274638859068682966085663716571981981153578731900534000398584928316289220771413075768461704692709167885762714204084700750447100867440292594546305973235521486053423345830903770279816258041923963735760859756873373200474529065591134336459167316188464394239822425323990940333268712256007731951749043815966239128612442985560126526005670113726176836733018890602326875891126476900383254160224619267400488617653092768487276532271671922774882708616544773664446016158817362252865852138076298828774659513604251023267607864594628942160770483280046666409127274296247873008132838793909925836128460836478099039559057184598595197261376649116581120663712833480902012417574499507506285572550087245279609959624688601746739064925557459424524021678751994427570309428837867239183206855677787473265217497554190164026121549765354257826352356942863712923531565223453780454122568988195152390550860548622972855122368864092937285834096740711551274423085328187425404849959141368983528336914673848664056529399926075710341769720885733867551801685781167508959929235653905000320188957242966316475608173699934721947307265805059272347892459260713084938568033452122899799262912134806554541806113141062848559992115922745169648412707182380419056693132740506127704194416431392418036730705279175024130496976576414559481776309107502708585428199756319668849255038590230042665473586354323861817229038619804460258058645648142597600381680305913463383056152404242164168827041224270172788566050262042313817451713847303328178958451385124823044948923899294855345744890568595400888927683916924999977137616994991959287095372781448942244037839227276544736372486225845978614261082684922537410661560455567996860688208919501253242388443992757209445665531342053326804823444999760860089778431223418249502056845885703578420130139579075176183165610160954043698304049954528626468646644267708984555581116313299247440321471044908960338908001937575538459249038723098861101096503027285959593851817224239257759367385914579862489498427480122796740444089137297143297638271620321062264019425184395233610702130305814203444670062633007104553589459642827384339926100979195197410374664760961520718291576575344454202179379017738037874120643039774988295238339728498267302672750785165857420476020815877170605490442149407951550968788420136036589820203094067526564325271237253654920509443713242535435280259509504893025791811387650684076765888054675764878084546988580287554989423091933528637529209797529730907313996631564415494324203474218086380107152050082804460032518919555111570580289928477761842519668110624656557067153193496603027543705525591265306206878207186027152787360390915295863718999212043863672921095813609061530825676928049445381750451188196721887707646392821832350194646493778484798791798614689428358535756871871278114108103998929189826311415594588494440922816112662579880914959636347141211781647831400959251093991987275388503204066041260356596445134526057678665234120353887129735104531414769361604202919838862043924445161968605770957912968143237472866869824628069029302805647239907058104484387079609184214471803793159235925277612085600969267967215535224554041384334357962355944365118078093895359211472047614386233383829243935466975951200342634658935852278165594701244739365936711218805608915839180041025830508868083009426189036152718208726249937069859985281645663831688384202229793434307221580511007927643905956689551216811827510200095073518538343773993338487281058630809759287926553197264574917621290765575371293450311821389005652085707742207382036247419873139666501469548290989773510240082023268709758130454329473940810255743012283727755767968054795818121122722303073708819010300622542619790620420360589687187691038501106342473089537248259654266618283798077032187947800196529904422910216343293006325802256716689460778199509023472265793536814107982630499105655709750200361974567136758625715673950974394536622393877048870525376675843137236302978853276415761381308085522262451474887230922479962326238149063852452142386822444674079487197677018408187555453815507227288627490346098502520671405816612248064005404206353252566582760307886307155409277173993563551017453825054550634697517008842644292134833264308747037715988113234451076906875078749265924725192551186056811388619144730089213675571614775280946460213686652982109917014091284083909384795774151131814675230175005505402931044004701241061740193647040363624047406224892616285528040512387111873901916590074683569519385750651841523971480912939326476071677601686415221091874361003443463969257973314887080282164210045678816735985981492397501799618525643075887564848268995393248907328372933900434015411099377503094984886178858387445198333739444673771639233064075015274830362199167891446938224269242755576031237057877664238986151597144845153468032076724978183598351140080540234187011221553805353769867999252981856392654961305739585791944517562890965282365022137236895352988873989908189961633998690934018680556975466878926721165923736295601998093710439526671780393612700034169446108461092416368589463760069434888772471821695658162444393754024408364309528905054383026622974035604048944149642341275166364165228229022575238949186092551857444404896905727195277833381638169636572778347004142592390062023964466892892404236196804683407965265463197759674510299319874902344339436426427281439123265338541160591086423356525045679340769625811993590798807386317209033433842349247126448990302593772485729139260225027058307058887249471184657750291350977526639614590697012804396588883624596992023637733434188627020820267924174403388613999360548727953604174857450117128404569318241955773812937477367919671047132468966280867164365814025770042894093263362281496821327697933109813261287831252017894731538572954334826448740094997534261788919916416422377337708591993469427996903578963390889911705306555036148944429730182473841754689248611835425698174644596082546755200780186940455373741281645821390918260712694153171169995111629414713646782258293173133518397673929428606660929021429075933350490656731084512560057121887821246647672201001566182573302552207715828742727160086772656266224810854546504041197409565644047276664802636436582004595699301671297041763750603483641082021661852039187608373906122699455402425215624131603456747469495326052567142055492300626452075815014358164375314124750477555795319872841273253790084252727290492706113938132896483832990273523531519969907108914068292089329643118368682824907785735421553761640885493122859811235005154795596295463932513617465402617302867988462184124806735882110523108990978101705487268542030434141440946383213409897107605482487544577842619680410373989759717895725226364967821672801327746319537591400108461217139053293194775069662816232365245305458097130367225548348635312410559530496795678930081788993111095866863045102508359253375848513488600374070888338289265135947345259884274517844986139670643282071761883918194517949170188787572914276468432962063980833999461326560738022342996111445968154871604986235386146826860020568459766153775609735621330211555813006170591552455762440742363792666258235678314646656127775510376167052349053279952016915129573728617784798967116035816415994065507713263674273370356186661469464073775133753459085670387246119235503682764203946686965580556902817228830982000724300377159111823417843380763781019338594506834458163986682066434594781242180496421709275776007605947707284786431547761949303689242639693165511169390402372459036595795513694885358811262403076554728014069934132921631256023691651722983476258408476655384495235280493844142506914885291511082971085413853006637056607841891020650810175382890812816483706413003944788467765939458773062772476669133594192340987674325217241616566443297234745600253877653082878832144952650542802818710848955334620141654054363140609686120432591664380222252985395861187051745273257445191742055055982762110819312371221440957259231484166980335713351239541681025578490355139916433248391825325536331179541628481724564565934682675680438246558015558808994298195435875621139278000709358616645296220669547707665460780736162285142339704733532339371830005586146213935040846504486189692688563304428619696443026511329879404229837895116252828409244163668189763935461490468593419468050942402667996212447656423409260474218466678621576009081180717430478232581940223006312347814061493243222517506390513370875788554651464862781067014299497168574471580737016892336069324408892272521861393383307375818760721873913301311795899508998127617870154949520233839565254479178411071245710384787349684898560874398393818854625721068557559686284487461671827837260655712144047339758924240243917353203766358371285006239329308028659708149197777851595864688906807923165779708300893112677067665353995636761700631752744273103068765180123293652486482183576079452660497007248175186903858367436569303271181934049581612173830529814561593623789418206433835266895207136727286984703558365681117064821782484990476781821256442577117447646974254244827057638002605347424586033803038008589436404150988552544362179325246851991068816465835758207571932653233225094151639582493028194821284010055342484445567271754164599900709004357614150957641706556365888372992465285375656197767365688991967314696656246100495621071104732428293856224994241239698063052217423226061423600239171943658573576116879637572491955000001010444340406770498726257706026424727325024584819169692024483220732789232549764883264464690724116005852620634394080448160928441334158910274921007327620027133894737536369806599281527405330786081977048343985530066452156041679568789601954080264507132012817088464700073154616886117088939286614169501484336446770139770828119111340686351518070799903982799395506984971538112315012867473249809901966376230659916921935840388965539086265436177493215263639081234972317628671171931967613320313348490214180438342854406290373697425697581868439853780546710899832291959100314467499700295674858913188750018166559954211027520796563343789968483124374600025692933975949412712317271927003423305255922874298183610589186942484480353906081898882217919336127226497124560644681860238396124357851058172837987017257041719144698578840103568705341545798067071318236676696090314195179593095478162321653969664507487058594360300940422749474233186691607510191610402626383576565449779715017428018064030358125351577534540275469984469160341313745345112770701480711891279097398080649681450463680957281871178649513921296340666755918765644397345861000228163947381317449768239653389795483375238304476169746815418892663948400028021723632247575897402697265144094347129827615275682482196878231508991342151779295668305003068074910032298891192812227640232263123334808200342182991266838006316937269318484316193217983489480538841726788646167620871098178805720680642610188290989370504272553504840571067028283902996940597419529591095429402926869306998524800587450229089587075982250617084520763334930743577647531658927461262808000036598943027814932348675796767659688720500263028311652829392438234363443539036708328520629447823709208142196861225389235734796894440946754252746219882830442644180586186368563768639966632514101804966684254080263783445171295096324000374864130413206890332970218605901252458163489232928121033666518285883810300638587511867466128869666360303465005624077841075800583987248057070111785425922415696370646047437065654335930390048871476385659800986560619291939670047279142832200224287491298174681461280431916811211807984437656272208601431754690839190335348432647213038860690556591277500415392738931763336718278617798214404779137956036860554085709833606676207142155156091730902891248344887201464734667980195484738106193042388453909298060053804403766896371093418698389513162717745144807066168388905338606057652552681328557779665588286908543322689453201435520761344083848094355232072848397543333959859983454603889201001257034316621630371895594230663132583418387718728085189689806482965217208780094037122650331722428855663727976977828806573710783680675493412052301709957118810969107944809791769926927836105391316199450402503554395942901919338298565292566890993722351265934909616632912937299091025436874540363544480133249237109487712336221359513350829235432933236972256467767873737336453609988660407028474095115424654955728593722168074208313411097659357167340007342366146506895298604811734614787999578877165962531285001661609572076548669684402941481001185728752083675047185018501512150270622015602785654488721281416685173593127153736556466984947905018487023157993747455521229855029455716912320467548532943081500034470789179517527548894159564700498582077783939035794324357893928875676065872676059155909667646308870027422762214076762090573252286032005799161722882925727474913810741565546180856134261366971343831916820885367283220573910223527833433958536301632615878540005904029108416400065177184379851920601013807137071056114721539632804006996463261371916969371890529557277136067776767343946084384029227666349430794450604650635212222095935398149774687116441362071063645045933501179748974476230179681912973639992947762506293227170463995755824861057074397965093669184253824469831255444155541636679990993668462264804492517193098666991440001147909820187286166622219849956093372055153389257580697417228557089988540855465420209111034525291131905718296954668107941088546881933336908665504533807277854323019776414315933826297980039520932744405811895992918174679735959517046569136527166353559653550449743517177395563935496773291029020585350451252246318942161862296815904510080737627696781708784058128514921147557014560682163667275388414969880004727803464150662269153309497614134279058566593127780467287784853964436336226082793498334884677306486212076316071424848091675527947467465822136552175067931285883525890297086875207858758134354568557815758248439262749125737582814137611138697490484284426331118150293760698741166302554160357841839890242969319043643716804549394689620083995530297681881747910396243556618146049343161449485427736279890472601309961098392168840963750965360386481381854240061574752640824911665898168223790149181227053834473537341446837657380687514228128275898204680292527244432379803307791362688931730579218618592460699995273955682101655397229414421232452531383010807863560666714399765772377630967147437451409437713064253945549623457356654953379000114444623685506784899391562423115147704400196680037542736010664893509277276463639761352593246063426487068462141173157793157937387318378235048024334479316145954089885917512640664873528638390224017619538318133692460259313660194405314380841911132136988236581879116843344820191449683936329461311725520988749928701838416827911943756234511800453167275962592967246067098207082716982298746443402201606270089232925290172287909029273025181687346599117380983616348267017996274807439283716181344127297269676990400110016793746638466249907775430849567878068202658183317305284258002712066857481038613502923151417509314512243978118605414775702011986073899493488167611503071648338607661646885627167197065182167251917453942815947169561712492968409011562355074200409828898904794407626213297219646811534814327063133832159537594726075259393032102347279172297205900132431494277396778934467374201262151047345262858909543045509580229241836681764783623438961974666205635787975974772304362879371511491058089004370276451268335813229321074275759419051268335357395124204594667873767818908904253218562081459399607667427930052976871574349235371524564248218691074426607623269121763133297763203408556992894934846292224665676760639514584898443740632152441855225553307813806336826568638149733243061080759480294158848380529291034110776507020133198396497290400670224191385959002228222169449771542864922298252845032642191110586550274920037133436667930529836324773523485639873943738506589421867490698782133012621953190613869843554914732548894751741072831401075325834216334430923000791164257665945269413138408050421775598632995041837010901883501637677041117065525359405120865547642128529996412407513454408399049034589344072829224771092056840086646687875637143487331615462481008634942260824721053234443485690629146708205203225647002924256827108941533827652730170859656556452060912995624254704591506659770007602525707632971101942202919668405326194681079357513420621177248367122254580050626060828460749873960130287158166904756648235779467843010628529210342636011538758949953326537126205983983435819018160453750568447068117111461455838397423722650984861300352077688280169854942522224987634465434265971242772791695306972834677029202895946047525418852495378356780695454092726843317919634432923249267082353716805860715211188346205087079059590807994959084769045434015126319124770281402552684701210433811188983279707806674879730558482894108385704430982593409766180127997370385778866687396480394988929732897841708358286539631975160401603984577452894007238018939773494329438978076995005963076579395866936953373476803919870510030453471342170165827118522722649000780017480981813269763096972031918661723141269121241927036404261088040020263117456633705873025252102541085835024671677542983387188239826040637514008276941410284414684705882571061682872792104913587646083921347352927496227186678332160023726856897788614111137609318762824349870290299666458404084072180447425308954339953713880391414452127927220910012406810336407409669569998077679039186704567676540269678812811144678008964645386672257154125801023536822269587909360732557607019747915721221809272971792418559883352064667446975847237851553405765935898599060940547054816029592802866299086844074162546758660961511831308104298623870854841598096870913762556935324768053634929253702442373725406918237044064169691374738179003592257948102422124684482350904811085818509995439366436054138517745081957488054810593443360808276578316713547233122163300347100023614282116401517492597606253630555986127383041305714009079580748836071908531575235105596054182710048907931633006838016321556972732707858319884997456503129986737193985541583137955938773536316244056775699792850068669513394683258120890498662019620877175582220430946925634203549252510118493464541773781213228722827862549360570945446253847602720309528831359244988372468138401945152299703765556949899078621960470920195013493611802903305694049798387207723454640605347270095406877238858079495581715720591676415135088003833858457995070039702697980389378605942219510424557768839200755928076727096897435648110539405074659304876735899611061855394508503919381941745706166044752377078039440310597216246999655853501517792524381380078569610850304972099372489353475966173466696879603177204054530359453104812199492263920233794766384441242113649173640995219026986628944563497453279953300857709103195176795721202139492982217294552185769059855296816936262238435624670671566941858195485148719136056169913387528130219096092814240982333843617834788275822380984277050331771451374720222028688709382808062187797373319890722207206450602708640176738569395937189589635706509393365336785214136003624870680240638137368572468587767317205685010691631519236504300333370162212342282962581146476907298415886836766041441001883187630914487376291468599123355937218606605618427363272102359743542016859899660568012489972237554745446405801671260992123666600662592536849701351465863107048858859019813884860299155392614590832174991308718287391892696313046298682714912457952497923834362823449213701022480580562476652940174778114384020139308257427389467648684243673406828113500183243993868756502611420065695602205408082126304060007836757649791679657906975754280315314264593867750440157113231209275917213577410704195456518743988369155156055518075675759286459977410329998961047136927268563023397141620291525967603498790900491875162617076641826865772493427872636612266259433283255117236851748799516017730845799887427124130116019163152750682877827436610103395094518218757387290460330170822976069897211528902534429836409990876020981349851433908192587854656658828540426625591238945468528444775861093361189458885225332498271404175441927029092268332274172806833002856149005319628565428244394164806580963971477957434270854693008451861829124364848952728750598980754652311536360404666366648461659006680222422510431017134842828941648140202293084140944654413687230542102858327162628247945103659923643828186120610876458199120388653382839705149969625996111060698773437457617978431123216786808337284967784340764846698856588112045297501031204005201282901828257421095527849835696370645452515963187033968465192408840728898497980154901322543321014427109860543346684629699562601454988919586656282364982235346083418898694793414006894436622231024967112663127251800997137463294947093555471249774061282543555973950100804632338739323950630533194310983216672458574697407399851343959821310524572362627180472767059851893493513969856588433071638391814109840109757333160267770302013478371310838637172918062752411076633748136960755350690335883600143654274912373529022133508224555886056666555756292774953785188243380305989254085647206416181774786425406477681537755374002321003718753910192185027808820466892117843936542104790885962410734162422487709695812752191646190099293356183722841560160814471230924606266238341000540468996070493428255276622494933801252184326890806535243063414673550240197451626900402997151771329029785869843704165215836474139993096179926032029211711404545537940456783464923509381096878761106883034043946595868451003819383230511749761536215691511394723207962014990757009954750444701954608991699181412290689322050174006215866218220515118772687089365600211091290024496001846054681054729679897531544681366460257417368221493774360504217272812459006489638643321624381098909741198953387759976562592639985173757511275980440237475294278126570147204768314543828473348647269594507685103411250465124556706810097517323501134348060931330439371347405879282826866166713586582254678406777978415166078911652079034995087496391500500247614477870516578711780097388512137785885680221051195450670319099626328787155187209971941793759937961858465731267387626432332029480825236611173186891893419230848771561054397214036464462235376992097710147183829718285724521447695668177660921162667669080907313555052765214583283106581345829758937655893739150520659305568594832567489429771492075558702294996484311715892303931928011532053012396922493118198432256968321294387539761756743569328815955680513433990418011085206105431313772061726741914518048664970831102357214504460234467752367556811480708494041806725296503657987188611525221934186794372975804762965762090675551985229984000267952913197818031833192803833315199321249557743280025447054230292643190578844659569766752855995730829005389276285817826241025502279472743320122569368995921520269924516848488897530395863039799104428984463858182718750181508953807924886718817205242131350226274823894429700476707668816529393598255086081779598962675638709171838944340872515468324836390142420264783550093928617707515535886224481817645583048188554654009869784315210001837237492251122871729239843307416838361617109885967281949538712834936340868074336040036636251888081970034047760858782134646177936657587886660018865704842211915739598760220906276839284553754598689552364644244508546443931017646169788092011198197133045734583820442687448165864695458940394605024305630073060585746145183641115297127292247499665340068850168481409524897649326864071097926972236366797626196239033573498064252667006519066548090407709937451415164892310538167041791504824630553793382263914636882386977931812215119431322232936549751418965871831816966948714484984352623836600196908164238372096802775848185267020895934315683911178281912388879339364451249661666647071242052848948952049173204073534314983131942790524684519590967759449803506864658491182178632147028359932888333329760227476055566226027436195591884535709648262306346716098888880040958974102754557780588111632751842892892341985425126104674493755119684475854852926663116985914441838423556592393565751227237805879317770488527149416718739173042001601598800388741691269506678838293740694719328531014645424793835525763631604228341105798624476500899342849794543203113069978539409050371517011512004863311344487516234399316999989931792859730928154437665398054515636818783452063101548629819728042167599423677710261417305536074068456352104747394244823867368374349582260420712121487637793595104552763194408843500440235580746117202471073135564116552929261539254716090909679417857975376307412005078241407733669171104966075707274509672748497835038723895353623570312048917512227932651250452697980556630105447962305528658996111844283745691817797159407934688160199990945231762070027978646914192102634850220659632909664806119687487896645206993409653382016371017241716976893885939730746507796423677994413751965201162370568478643453535113281657997060338451682126519388355407884140629151990941614463314566712859189599663613663226533120571674859007667537748859577219439759587155163534510758658608846147941213761365553851742900840845573200286315809806393209030121215333520406880777920667447042367101844787675018552262171871551715329219130256901712811970811867554272552018858636713081840734476211203569789182427870443636396399560276471961636346283092414702998172025380498079514547930882870530865009354501392679376614257770065670607571540193133821559130066760127088228724217276762703587450276600502485059643830216232549928860416765057559914070014858024998560183690273504126214367163886110199808108837410030648828162398708239095848567729272345333589111802966808232098375487904205911468492836697369022669562546314743070065164812734662575978830714060000623540976372838272154109824599896193916391800031556612277990607148474027354421152832988575035112773473580800095915578276138597350754656934485857439651321705969069856530663171839028973443523494292147986939852347308258988474030486345650888551679029202771917079399926259816144987792727037836120377468730709909997329092656365752457248674849797175682809301890451805704125606896506498250344691575580871792379038024288973780038294038764792372619017909552599714669435404635687669805016763007600640540738588929003849939313634400421026340267744110182002917997947164601321868269336428598466008586198417871413158245111872290245416561148276154687333297468534889555585547764869291620849552235738715981619886989484139666986584480572865292412141828863729060896657866355218043514643379139614985949072045472634610663991618242576399501101138871484538794837907772640814170181821827725969539699627315551467187186744028736951402610290906431595249741027144452903379475449879114890673072309576286582734257382054582827127578683388787191450183883583073181373364801572881988353370221403407030363337038300598600763765714718898996341771596457644354902163518795540907524841185078085018737405915034983173597675141793963523290147168076075484572941965777536861763667011384829933776293227184629062594708497191018566844659044249455375558003162633724512857454526770546377991158472586284313004459820971054862370546707369442542859782468468174852001839867791045294703010483715796772784045611267124873762147520175805733143863108996649508056624190323540743373133345748703933695235380286450651344390460994925729891724661741086287785650119878982014114883995826272360368820790357719562161592074348229785213441704130987966242604356045224968553267754525574391591752633416852036127998314768555556353605693569313151594071270549460609248203843154443071835360878950403019458707211041657451185288823218281788816438299935390641680061696996237565394596218084084580928239607491737859513419618629676392641199704142897362379187738454923090692047551384551596650310408361891573985505682514088466210348879505061886914615883010752222252170263499552682908084999685161968430291589850043276446853102379123032046460919263051455815117390234923155468619269806765389035163369475692071600293872979926856245352428547301867109284619290087858647085663010877936161477422246708925795299456471461664037381486900141721177906513535001288888408550129862057860747346047282762871084872923542000071407622309487356150852963334121703196650155202376045582827750696130983838200490174130705403862295856978987538406124106021151475804935718491903671507866244315520853940749639329544753510447942009568488494292430149284541343494871521051458724727888819163172831952489414176229174439821472148733875727469573623275176858483530010619830465788359622080920627832796743176799268180777906246406402694945180907415658826430250257460001062361560647851366805660515344577692089735378612323526286827585271027649413851093305925710197857230152302535511474301001697891676303328492961141663214019978999649809891538339001905108801548265052007085002636181873634019551885487530876374086841445846069211051945999289933107747631099927650861300148081349906141524661500491174049541110947367768289263324704063956963203761512401076841926220044348164944921888624362377862246974321902748317581312827111488466813264236940884068659979338917535674476837583531991081166739897105131838086390280363942563307160788540768827483404444776661596444725974478207593753880741332283305335390391772462681494142700732471114465619865751891683636754339187874338823962183044859519202094778057099346700765441405072740303481250032237967193079746911821870041292376798049745779360703639939995930285411491482601019094661513420935511951340864664737727563058122174768427551970651599079043574173317807449510169456158730568769584815831321462944608681521280433649057125777679078417395483590579989652116911504488118616261304191276405079753244088251697091320992909617365756253510139743080056959704573637318934887563403013794925639045178799061495994356527846017093767148432087131158134763851776086037680603766571172849962743862774855616802244461679095249574516240560472433182210088665385590407707072220116464586368210765867651142684093954443746373160652271207174111607736186961754752321961421005021652492115013300080914289257621075762402804015812970537254311949460044199808449397042680161043489021700033846056448302182846007409536489749167529965119815454260029061738226370626506091979313999515424156637429739746421392534112818877545250016507317548893747773855714776592159156048649502283005581287575370987392097699258615278507511997083914801516427564162530462095452479550105123312807365620460819127898636126773469320283430246228676401586303579097920219650785804492411364536655992343699539917098976343283805272266874738358832346210746272842725876647433472099962278209087026258353449098511385118782122275810421262533651855391384878757700075490713042441922203613616014675719633920440032995431881196038190843269394948718161658729976429468444550785801180363642221096209315896754640466766601452039334283709526423915231095799529318958822119287196583166976018259053154256059418536994895723750551994498992787522957604005851291150308804460195252659334760234130416549574158811937182010075129931429749477179142043066576869184584609577372889421081951649667592924249769849248670829270096828272010604836881705198706174915801372152661234015908716272299098052968482058180823028027327080662493246882945444796728204717311038297849952197334808098954471585469216876728281647166292311101705112720991248135522550613447604242049844545853442337195920512322721625404033936381705818724524243106965554560070789035399663175899227327007782439607531969484811290962938410544799673149759251111064770764202542277202431924167235498617658060476620495043574554474531342842349894809696668971670663263476734521560078633336836007935613717836994276713402458252579253578228041792867324879264883973684128545122967351352748058051561009090482327322823653091705151062466617416242980329382629489557411798906269341127639851929126625331222990769397576752984197647250132340509742692302953681438741971305101863834490451609479575394349975730864497864659621046907890254046930022313364194426974630330538104313424267650411017063239503934084124440361072880603048459659384568196661117428355583402275188069335823617953962735726147778524368858656701133957073156485854525175097249349223093457415551119731413055380162348312978395047048183282504723464290748125487673265664116710564174353752157050961937087265293754581396801286152656108045758341681339176362100535106051832503503308687150597513627822405629534471474096307335416981251293881300588106252415455746545608111243418086232287142595150779189825695698397797996177570626837598186999128063161977499341513695009831263911575513454055434844850688783179991556938855426327275288746026067150589742553833051904830517899292078572531101164550220912101469516912760462143165842590904501842973893269301881261473335998960027807685483991361507847500970128834536656843291562627352821732479108233095530359281628367161265073027298176874101489536460503072618251348777595117511847053061473937346721436109782849495501018540567169417187846232378077084399424490497925651863993431937607839499474337734378625565819066570570883946172624761057640504768540486429404690995224808476410073429377383757931560077505468637468060301724693867919913161525408996249307260497597879273518624558743746010952799656802464510653901925473309837430382527976636429830245583210887964735282770293518962433854761078135257369415688828503132855518038425205986872699490022710188072521149018844175553884621248668912174676853282843472236481639162402816845125051181257968980341324493409918854772983637071029612930769869130442756976513293176820469686288855265663693422388611700460846978279107489469247722324781313108825527764524966766850795550725075590528623989875227488676040461416292069357624060395916594903618434947156190218686410354120449622547744137461419080487852567265362377228634847219913944191492383703513314965579753084190167286168875270844254991523556220770961631902238971748736619371763926235722394751925652761806162747364676427891134436274899324587314307452048807991887822020286878932390640431184964976176510256838997912200054906263383710014320554341978413773332944426090826402939544944891518205618807190848851235079994696644384688841103445202801126378938621119700031304561541454770510021623584492694985362168575184180095542254979279409115331469817793008980764299555679540316153161193557243079939946392093626993847500813927345598328347115957430908063499663100366247921659109469179519898032920106003915030043789687616416664646242194040253881802128570446025052461323782139119896585712873437738072996635477066769424502197175113492784118367412416215745613586402108825333327871363221956213828374743461937399199958601357159245127012597040241618436939815734234556398145769716321685800293774031764945284066453903064800977715526191297897785598675222074279135093626316645247771620276332051594955526117741298181966974818863436258526237051694116788567909019155267569731867114256212605754167030738851790129639956168277155757655847046973822931951868206364071937542233548785080563312626070955697062096406106731083971128913914993423461548735393289974017078493619745569336564649920255039784257048672169655838078863089211197811211942292503498888059185609014791922736134664005664226678208505712011986152533307035217971089733694873820278745274442772633348860733546400919981983665639552277402879158010795044869650174287414643234901123832903368018493447412526008861173876832326796249879925724152977651392830112799347246660489037055624603901192548934837288970734638953015522450691945240413543893433563909340483583831583016916593236964419203926868407572349875321460302623484538216261475367097196982821867847410310407355244364794462469923660620713739622535952698429698992723529877695410421687539997779613048666616122360296228776528250502353829644307593523366713098407388599589840579713791262299974762780875878930243746737939720448803211976127062682630495149381086446577921947642882328083902380953764000588289303274022862466698293869045489765142567932688231141723718696143314076253596678617032390729907860889011359471072770997598056759169606884901380382940576415994935266506962142461289176782900132380564908696580703833309861663132634373329788214551050937902720294806138739694845170904928971284399644890413358372916157280693095371183493565056445467432851683995231458098236737139393439785213447174089354054412134806049285212875280343519608250456059282851148796156886685807656793491391870873215921308282967133571718303407757976478994715573314197361128250851614253203789828406961345006823975848195485977005121755658403902686922889678031375681206188820140082898719984564493163475219091082649823693247154378790477161877803039820464604467747984540209092423379498203033467608388440048911361259266291592837201620957092607368345454020313944564872654931642492771318878436871967932544422321716946876724462772475246744272796450814147087407150902991253796004451299676476397300881112511096863171041108184574422923164544680989691187699521915777617087642614554184912663471245603180167368795029392682594570685801713061610740827791128287487431065005810708544374683089405355468118049917004123137104542188963493830988816331901484753198031084491427978290728976627924528636983190708040087979473001450245246769030987629814416755264259783314823808109203796798249459070136450925917635499931322032695010099579851596005947882957063486502420770630975182670597814519265399340240455127059611970829855806444289781573618542440369444202101752395133162554293099910723692215587163841074673397571308965055689272300825413730330599613221706046259628084053353751220586144442615542893229288285171454447253754885769885799821936983056833559629809115436001451674411879220436052244481280350607452710350780917928779116345014470796222937025353400010096827844117175557665281669106040115152596462629198590997847602310299549217907740040208983673421173057999105904709923598409654736441181132115312905762915633912863186113071920113067588555259442553787189033679101289418006937402314704288424941295406864866105830209878858961729615967978890209185917442314180383208564892917053453254657698894879519712963544587115888992395569933960695046795307306485097180426740888602608284598459810882595806140038080736599080227664867623208409691777310862877811246409844925677823721906891436584763844157981698585224845550320768063480034700006912937401131075392747958531097443347153943272340675279976223785803458029593609561634085311038916067289023801478409696102649459052956288483786430399768860608178230350847868453067600540453593965969338413579783512068969538786851763502252738860518705862180927711144276996828851224604514511901078815139323226347874943558972661787411634929186060895030139800889900840872750985360138155167676228367131299118071277695332663357289341900345044948480625042622814111702146299779299370908162832370720802037879558096910756468638944133021395076885399849413943037072115450211192216811899825353745395468821619869024740231987616531654636142636365923123329519758416254415877529511082772214581808827107682137115684716812635187484239796287033470945771260761698429663580825533176762694892176996840163820733332730556446783518716046640536899968630307997101682051663498303163857133519123005646686579251886834430849036368944716650307398150592130716284149502422080178104587533034317957287190538619857961155631688794534547023103838062498206903793877004464269152527492951802913852565291157620206682131768583335197664528109463611746081254746845013714406000086336747019898825681297454551273610555772024500524473728537252434044592718376373522635005207971264092957579469604652431812100627466952530494002108120179327212361717657548137430202101498946163729507282998197594825497976242770279550431416421420310926490766305728439790086430795777860416353277568812053312679179733463156055555215377307426530410231158196733987582661075592329660496443909313010540415590011643873472026668498001211860800813963429124140533115705495451004355262354279392760346391763981448975147424246537559569449696569351801350337997382831681580990887029733389543240314483003411300539682428703599503412341376094334457286602346747139863184542274963059622950690039130711802626940153479020656079322784431316782958953518607296756354693941879407919784891734655781060454597391666984361809294973747955322679973888671525603310446330200840061609506190729767045035368653818568031123670359930162367592228497142240703196339582628732491650591049152709414412044820835361771462463974884784226680396483728505450071122040673017146409932267548665751154052492632695752250124970718226005684259877007035292157305637421351083655053520971139394521729278028508326447442782886364466169719536152083627781749835802653593962883194461549922574689529741017505205532562938908747229168008695469390041830690369427306456060831667754820288451358316236500406447026515202128011327223088238894969876754071820298071040126552570950303473322002446246356410019913517851096841252763831902767838089996782542975825477855225404838095479086693654824289389405923508719770921031026218722520411718465281757277881218239132391412222656835937465009089259097986708102460974645573728519162458859205246773640141771623137576863041636513861596964321457255502934826889761577200859183587335411699106222058533743536833897780771726134354542144948996114388138830655506200152699351511724214067759439906779421009498338464327166979590363039865866376832282479555832534011461373759625960047723747347265436330501675083120177605561987623398465008062683672353009501271194459088670538508548815529538673808075004433959134203881973000323873913747717911487551010002111229951615726151204857887324597290885404336270149304098915614903850698115126197571774080734184824958720714296753920355815234655403813347004687289016733916365146612096441737673384145530923110856739813622200409560702904314849842174766132101706470211644329409014548449519713895845250411532975659498230817027038714482264690213894231096955412211079231237997284346978298067003785331950809494432501203715505229642065927267986741407141757068677321430667067658842542657428932495848374947876705116749739013515121586377690871272314560526659549499661392070760894560661350014052927770546402036523031720988349612669189224977191794721602943091378785607638995132959547377125477129516705250865060841435091228046479771579138280322698708414567891142410842011857678605784267067813478233243544150950152945447391409489891626619191077503500898835584518962682529236477549196055939176552602329886741422004195233518262656441962836111627581731039907616769821360224525474408517474983160918709305652888805820556191343414511772041044999160400651470247744601454427261361011905347327863358959689753515139228021223788949578514983294934544007928149427075863035621322038972974066353177102667006115119804662278412744471401739344092786916481251027147944907610265096895027353915833287713908336353409645721725323337752729005256406801374156406232250151136162558968618613383563676547653263195924304871642932698539939591736835573338960378965386086276895610082902506616197430796137820333018172733430021748829670520203992853198402997716084653151330270175720055904701574003494850524508741187068782317370217874795572880083903122396584975632213176543225098982149912248484250351153217626481995604819021870501002611672256039161462574712695059038877414223826243969615429749362386436587772908979716934213173057588987266842375658307009919618406871697466054933456150060778620091010068092277995078322078336505107930310696426707996293546839219275002128081689024291756005533716654740825551158116225627203078933228156765300950595572654911467378455744520525823299290573656793033489686425852787220395461282325645130492321457682354141541365976839710491254340806178893156429962379711492566673032706869296917057915157293810472728411341156746631018289020257720700971628981112902826616208159525207576213712773670009749994817104599952141593210726368689814424281153453659666916158340415027610811406606510656553913559810120528487623299426472099860335671544963419740667819202416906178651840838242479637831692502571871915661209679274671450750326497795553725299426825620332953640053327563195157327580364434820840314763304460730968849486276079113235294328840232154201114016106957666705894888291587279485905596937499720886978142121496584426666871030121329700954349691476211213226410163373056646723322957291435653745862218895403273924232213644765276666664979868120004793886218634803519579682044149512254967980716852515149292338180464083835287402526557344142076898041351008065680693449276654743340954760524695675223707635254777807142145783200076720197081896514772084813131867047768746396991780596758139781368012704497093191685097753179154780967732574915390726164651987569166408978306585067064674400293548912268740516248006438859436077619175025503890810485720429146648674239206433430556980676041148968455846367121798113420696827170585674455798139482457151236930638332359472499314992251058640418804959844873410282912415919980983372507818146727899864389754435234271715416253618521026498342710774973953070610055172348788268596846690175118962361995941831872813250365627621040933854350323242103992656775960236146549704478525532930464951225041402593064596780874415298449418486738938016309623355573592845052876191308627597228166365614178760179508163923714208037607830613068830748362368454315056717300345360098513272375673537175504823113184193034558077650798883219734421163873233071537488502555317405161281470166433621692501547594401789669158273077126774168542871584483201058667740325806649118985319976508412850986175331009374336754467558329538996680309453433516630480670678588313991438563791969247296775884094914004642490197798402723642390246790020381689976699801032429913912363605172189091728315267288370046343864327274423143547537131723527137542211557205077200644576530221262482808173265797507379352652548806945517590235856227706505307132689445991365433347440913723969632449445295919112908721010394729484708560860172906834917813218296607986328430867801354120817138139376661021369638412809513271796749841959763217925348294971710924683606047052005706545968950988114836475832689491359651780176981212304194447323581440662927278706584569939038878887594422459643251146762905498751820214824908310127046070216899462760532148025018041558519742298917958018804194398449930015994160838563701500135970042954486895948795972155486014062900808645659415954635720940204195003902523135767519235411760183655878578979949539180601094403546889060801297298665926095405546189968379505927625569445216176662324317261542692384576492034222546529746609391460807178709884012384423588713782226101528036540201708484764489836986816892025856581349229346672432628704742028474725626221731146632377930806825667037830971012437497356256857965072547964492855187300589700473861154806452407141830719541038640397757639312645517085893419727571026866303583053027292287604955508116468970484408473003606494049760631383168103253631765827709206004328522202087219394899488971981550388850763819954736590909716972591828659425130488893409541490838681184427098521149230085124325260277776400635469178655905832606917295170584106382021737485672738403600702946048287888735192010910969881541293560050176364114466460491587377618569198306962538656204006077509747531041879449076920847138396313083959941655707852237503993624686981720943779184594871823687060928331289175555110754039834497462556230499494967390660041088876004378469156031829350734296507831971964095152192739610180420617456573955836389871329985528467413342721038465794923556036131819691279071280899663337434513992094939825742084846418143051339368394934608425885686989316791429549878446595745895813046813813015143010470127833181076172845125755485879757430463125051552956778604623724677954954171594281042287025604951763722729922959709758874000164414805959923858810289146325815597053059290403408794977836043776220139939137794527903383826109449035719523298511582504919776416745841875177935056392387025954486538788491431519336606647120681409560938955985587925761188299922966725084492560586732225334456223547159181431248587425268427560531451479864044026781287269104731165634309597915632941257936142081655070926825627223481177194579866339552807921134091083690993232989394167095404698921969270767542726257974656909888268960115647838714447770236077040736509521570689280046728284877200013963355384130374063265520106984050630643445451398006766426452619630021012542606883475418203282933510390569559631792273619256048111697604858903738388078099952147674142778809229485758296434753567144121737292864139128956955244229559955431500453930574782062635725679285440468630877059747617082981488951990525285136648652622477248935776352790439220080494709649263974964585569126136020666399825610748671037570995112487120963328957129254041854170002361772644455745596521182666688754272710565361981893681440686370622444127256022613967333558770226846046694149418695112637067573908077577387746759985070030623352674664665011838402397189280610003119754444056636548615827543984282126015724297402367674817876226125653944230040083474279487690815649757235040296364152772893372206273481792905209890945219244867068553845298274829597277134737688127380659974836400252383036804759274893905044271968285098032617375065735048822561226580323088150053050214784145644941483632814426906226008895752704036863818683971940822679074699635126173773111954532252752535798238396879046504380909344369886708986221997123511853936633905797673263141724807478630526976113391837511794193709361076713637218007641352589459761360713344709754680234872866144212504498884994837905559011334355330642119477652914571721542656029760291375865208107042175016309920924490002782266937406162214185698425675389445405176872486026206331080899469394393233731106657833613388771955139072833583117883045591944546394074019700615751924141513476371437757977287254463863195504162416014340362576049773376985063589731936216235830790884157775429918789775696393525805714087815442198613277651622575997242734478800433722189864538667413728038621984719972262309586421636527425169477661894107930328240276726589686948324516346625424630212082149937635108762144099191521793811244673733941432562249063108205011491935136176698391212735557726332724576503523829521820497180213672472129091080587156283907445721935075121870100287054536596009369460665451344917232326605078075973992796418622325552807750160818787049135285477346886856277375876197890492230212664367069400281672847855935797106709716828140273512542606708048338592502814946565101852144219090631819702612679461340115756887012977936013023404582334892194179125297620130511602834315658795778390716554783989821628115389765740142528731286877715175946706047539848136623369047635123485028903283790658918593585831619325350434583816287768802991562468292013684903912136703324894036367173255488914234814803737024696992495034435203216819451714886482918887381166085478646390478493337260084113292457634527565491230471824093018455192489551517441121420772126889787338096197507379150862773852359654000733385648044282505970904814645112658452873777347691755277341913069683388840505191685368592937823434167100039691221076375321584301067671524647579969384241877854173999228463868195362725259714726610651228210831336431706991468289444101764665323299459110955991602261683892578762681168788717571083701373678138873197403044535162016992674684407249249755369669659092654310101911246076047657598286687362063482272879552568918225636644047681128613699658370641864511533955115478791575611878604928192945779711790312427380190812178215301885747158126032802693318034507977164526586097414690324714871404431920134211654062005412402008804891272727858613038095619056113116187611409706770119264407376308070414104189384281897308290362842122237626950620378900484975300739323040856646512968733759093328786303728782734379877954177622462336178281915687850756679457958257008577245572399995262583418337064269011939428786064452797267070357237772598706672560383760378957366390277544198828775833208410149559200166927647195118283473228053795360863557583607965642449225009921872752350146968530623490227535766533742788474375172227751543381641643323071777273598120244387164901904934365526541589777190607359544275061289589535909921086517565250999330324066310380227054320652422053059716551154317279041462132855181453471158311932466774536338711290429842222973252088214884260465383063910886517374052626147797855039525538369674175404293349971254976052077102811248879613796107090884724276343182408718797135949823717601567094645907927815611685073357983243004618804021348742874095526003046380654928625910163902658466166518525163935660462516849797058802556966049717044612819916799732180578280996730404203830162274251688416011955440449328282159226558750198384572137762631343928673877466525112954317339387688799850371969445065109680084040044609318375661459910616030935377830959419570034452750227205299611289934114259987007636539887506053145578904405799096508710608612703511427138168963191364672551352853007508908418843111619512969352311384511976949349519898551407358820858908506965321214787007078530704339069594437409584567710667863254834741345723398132300978080315437996929673483122135460139173330675838634660668072064248029048231901106451987187269460017520812557089244115913558705478677013679408244605073929468505985016536102726576144972897009434784638087169060016784309963892212734675208100685590090121841406764779327010624181565163771330552900748774822788816795606820686745438334757862089515351703654841487406690974112777864554378425337741092943651146918395073744460374682034528026497580278028473312482459930580580295782113118452551438926223549944121626881572749878465731947288869448620158766294915830350519896952048546645930284552876626158088035167266852458125657977909783323690268523705382906942503077934643125375824390149612180883473413986738211796572870237640976318823258024248149429137369572936153490079403809652782626569262064332657214605406560258899301358121202294804670931078342873760570698886306320754168711247907356154038233592705708257279942882150218459363738587438384835883775654209800384814828071868147339487845721610681507045173731304143556292883557082388741254766282314114330089715078877620408723710251616451340986994099167805468067110854647717224781501747848533899239936818185753094606230294288907933736557127646543732412306271586538129344409947227546274511732083259163801040340562720910607744496988768528984693160781280207922589358515069566424828253164287124939424993897488918625623880663524896557621920819202767295270089370684470810855552379835258339081307621808092473201007383219173361473702824249808461385608242566953512456327605999360009016737150034802993521889778022008122733883718424607170694045746645069174680107547654186862566081644845380942694999101210019856934471735211104621202918945456800068435826997962951572443985689197890086099253355733733503886806901254567102816319506750802609008828754906951941499739487366969236866231569581092718178886599867626748313602397163288509672894496535203984841323111787175036203155429888407527738119898325672169409861605204935015376847706439448668663036841716141402621357996024833948211128732046082754335178714946250324423505730962633653057003886650779446403751080647533628406834370497523026408564100714241404762475464102192885402941383848933990778864256916936031795572608451447401038112887384962697356568967164804577203010660868321594470667518035653784404054718966191751851165274150573396298283570717895153700356260489655942346874326209859766044418142084629528300038667144582357165868424803644576013190472641525784983960277625046430514924052083125804742087295759704022628053659193778129468845185355184072963811504068628346189179739329234271367235938626424956236290050931426115629791238660689103278630012283361030748406451216850134272693614106092417278433927315017368238207307442287580836346267951613600436655132397038946765287083528910046852360539002842527028186181687911344023177505983283497632816116026088571697834331308720903448247293921023307322454732329351363698350923350563176396154471238362707728559089514331181921807785467705403966725506938799120160233823627362528798348756845591457925862125793030711946498446124048096000055734981869859373811677040397027786929704176788446754079655793888855244735500465516633170985194177832736891509302897078388774241192169426702501385267361532780411143358638744151762350900075513050397566734375395787637964510807486097668444214357489008116356937640142398317748882625952396766028720895081747805674838887509324016504198494448453226319801011901247517626706436025882226507551386327422440868510403904986789524049201314259477214649333134938010905608503832647624142387105420166018928280633064085296620497901019979578960430160194204656637895703036046445971369699329784972669536726472255368721291844794663899655859525332355898890111512236255199858861884023181346118533792764333272176041990141550035711521302193572592842328384885106014819078548452225738494717789668336927893033881921090209528035786836072899513575635485926275651974435554821125448631312147804751571292560242117771194966935700231340304089143134628757114935695889781996000904585788061845605781593172689875785622642756790088070983514728220092363029814803881833283267643163579502272048204021989098932332787164174504135722779960628960683590476887829289759309545945516667794550641345437474358547986547093776883783597350252825985761815966285582781270022005528153980472586703752008301638678272936402434426037744461248811941307494946274840819582438993207979272109229764641986720995828804895923643149357116690952782942757205984858709213387801695411562732401701490184004699443473386245985098919149326730789766826185578160426980811919059919865527341014872126176662509651872517033153258161977253277501279531913428854121103844787250529761945254595844338750395013183760796746363314283114721563318797629839295900658610876838031231075585571887443629569085534694635798003926543918022168594009337358941751854269833574642314048358684675356458007273279401322934657458604088179845205044512151792687019722724679401397159607160487968540242998570946249966936502482814951881694846119297255691689065169090663435606884354006247739242684198848645279375321854260673358932756280587120422535530056005524860636321316931687107577080174631744533482398395962393893014993426985214173612231415790645072428420147901587675578071142190205068994423216315160869468407473678597665280098613052647333478559492661538534872494483037821996772514166771623753256654720938179691115730616082575037004441083025115360041263879911334973799110322311882618776645706214753334532967003545486784456414863707058372396538359674730214708482915883455675750098816257821998573548176606034354795125642413130157311385007602842287719502581541749993244427051447123222912547126576501414548654342315676869218947079089581948143885374377432292153994599272649964648419679298718527437055131016949768868492595513150492443753100274073606472396254279002373846123565305114531494077314162655072227810237134193671391081542152112696398438984286318147616661765524109559349880093784640772085846191550146690700250818005602018977177359944604041915684448576649776400488850730708258946069315692946315556722073462828505925709398005869214815135859807956140838277775227171430671634940796173441016134278899824840155585276957282721618794282167260594867540353730175406878286432250957226512029813513331674702847923059637886286242191930589107551037116959989282074379031399922062593274156514696036008024385335683975867558911879693423096283759299257799866219480463534755161022951064198495547020620836152221583288298081249548555450583718439330899445565857148227832042145942158669116145713877917194513570336680286246788565867693409836561740396430442877356697385500294337803364561834124064508449282771903481709387107829036911825974178231784850459422070630360592646105605744671596166747300738076569853619151191113514913011146506387739062499827236354610320861908760315084525861571901086956209821994935824301495982303681523316217543277360985700315743920603495684361859581816702012456036771920339624211279920813615370411665334139037414181261371654950693805110570491084013582699361714210370287188873893344306321484997287470423326387851715269161337702575763122694501009582063374131759647772798367409450505466479923858200974679588556847757919505013757937837490510232676875870411983076131126083389183205042179813225641928667168664127813595099538485520382784830838844815008285816616756633777338532953089235872790592249373991420987705538146318238564403004512458333137416206556333519174256362654758911697509556840145457059474244348975348706951474995835995677253028000268764053236587059666988880767758637024109116799247367758506739203407652758364749280463007049607814365137888272608291313864198313703458233436585626697972089636326128230173357422560816220576072107455807253798589974444594674508402839994859445631638730318677522152141519838624024922246402947038016804102886134190109234140444536004386526730678994862815183046261669008390410319509719799226976539147846059672329639914037470042640892612432234060575390556949059779390328287948198915955948030478697725754040488991055322485946462890058032865990922840392991061946391931126126846453910393966089790942725037903257481922994714488361681542879501178559595956707282026801378121493352939316664431163077865338075271869901937590913530272165024226110826572721795087998820605098310228565844011432820041712809618951722362793881939290616240645360391204001481204153066562713344540848153764406370377482704890389240725182080736980269085335691117024605029934576549022993834546145276710194095968817983158039478881813194678415383087368429819550882412024885214623372571146119151245485027464560322832054423581874331773237991360674415193004009461505748435196284218887471712692429690063900122075142242289793179059670701827042743665029001290342074505578318691415651974696230797912253861679646999627764460292407946685974008853709855819748197137323706593414778658541750751007176952866776756622902185273710837525069415181965480127181379012617881351998968363010336740801259874768488492614305373041410079899952411490594697348015355182645274632484205336218984295014765743191225770196428129266872225769449807753964192063763678349160040189813422116489397642429206273213630241125059631263520094984047840233268082911603183625531505510138350626346224168045882154661151961994943778932137812528145602664213691603204021403601206829077640407891683128859118621224018130398201081209809438876957119830777199756833002793847422393918297020499536132805359335708230596782360720715732364917164942616717513351433742541920864064885058955767986405041427198818489449388289717929474044816533373889576429768039900082458963124281841992082568769098641157860884388615233330449051043471335379890217615126790731369980583474733167844086390954932667992519687896531603158295069604542824261099137401784159973686923678228450139513113307289317558401005278238197395473756341970804711433838425469003705715632533136221893998934729664027607272815225597743609994153982339279512079933419046078755779731112649270416985070853228466845226401401959482338049134365070426457810102713575491295668645015153355739936970797523570628803514328278666254710254981762231646999883801039513717946784585312834755995944563790811674082870139449401772976044211123148390226062856640343288165729788507453826233947809247664065433616838306124683917769191901165195220260001385825185508412536391812757789061228873119508968055388496301582587451315799430401149647145838967737080209209775134273117442172580537327906307688798113150894522265194685800870306409929804914605279696032284364496228252702576876379773463463505273654525763328928949879673957134457988142398788988559385826056938184710256457032854856145557633660820094505067970472080545713456310377305092303922774693697193821400144776416172460076184602060633485688834501916195157907533031274625321683377813772441232359905446285594397094479626286572450318270200933893437399141862883890870620331508081362199633717681445591433071718808699405596085898974827991745802719255432970743123697715800549856490333929853672309742729415829336217295420371931939202026975806275802378717387996940400627165231500506596060435604880666004662693950002447513218747512127614913324248102348819731225809970416327949549541892816961047900502458780030073651818787952127515463776063662575517725962346495868634161916253210653797243428199173145950069714634828227043011908408832585365451171537637745492807468086213901301887459183035523988546535183186687112178613185801425531633022221774135413060527923927905796993871772193835182331568842211090630127476050237960244803025534983583719342208951599770743917641826483571320654449557647172529779081503995705402416680615782345517987152541090230689672482722644526746035670476948938473832613075026057504443114034815143979721208596402822444064614493266228031815557429168700177045432002524318239592305807373680933658479468533540671918591037219346338564639406514648375076984065789026958365696238036568627044870202654156901962333840063866007432113409647707538623689398366432770760643697473414228251576615216094132980541696789903635454812933554430100355805828064433952907486875350091097913806811722528551650144665369063079388959616167097424927086193924216467511149775191888244365502060276225237203801584184354440105113496602574087536667328772039911959227935763277516060752253571683407124489742857624119266925103951981754072462158228601894736425731397834199366357620925418664736790106000761047944711490980056513860318539009383275260555087487351729193795988012580019234162033235250129243900270356119269060846889964175679993447097966559078012155051719847722177472700875876996137126721253688161399807998967362540280253360787430896500144247713905607960640774012862929416973275393911014535504384583695948480183322352370128193252128481109356848401295786792696153440754166253415919534468923318084742062491861536661515334145335903126637784748046937599162320421934214715675398004876533648863166845256546471450780936196199876695809337096088530818218431066326999641689637934859982490064868075194404289824254062939054122276950369585015683815192161584847148297611210360458746511332557813254129518454548391671632698911479939171701257128339603405442575314134743038973430662439922025006608693970743228109349076674452630596081323927247504576712737540863460670611653156075114290250897738196283864862493892196991265817574994285479498315600391385742163378592588284161721670683802852250125987728745996611184745977775983633302836670113307285870975207961021412682122245615897170301449130566534081019178134110916963451142841144818480267621064568094264195409201198253299634727157406402347381633538800740723737830722530349914060911794175867157126093823261114653060226281974175752098167119121360158995181238558404134599938537604964200702900879441190205422775840165355081969100194092251932285021433465323178391656129827735905228733534158884035105096341695393891060236353603266028105965260105024604022951731854184770522571621439292370989634731083320122287534136520110383949429860955962680715791721882914601482745592135971790211970554641523096010319535487907522620959446930917248939611578879683971751014590577987552917309903162807573093808935637535504574831626441720806667082481132767469332845127828728405281835635025803961842273976626208494076816086148474363786691124174754232496083451512063656492004119663077718131983462512922306201632472050602653823748684471252274857138036209417646777169236651173201695287898019014348811739282977371905413928912136348405884862938682942528563660548640326281732069035264030771542599904516775615902629230337758744197388353170155164679357757825807910548531775956541414548035503539954726617193737652730390428759410939173710444702627878828381642395908501162356380304514996670707129679815105507832401614645822236377493744988145796450563150459044623541375736907901324848048537459115379112557117523986902127583261527679987322799636420142334569878795316009650001688863021855181469455343221411703710468559320459810342505125437576242188807737360754553715500872683452168717987160406987802522280453193244399567660609234860591576885763715191621151293476379427578422108035688468646732773612071874701929357617167427466240238071153805549058856270508071330972827909352300842528869291416900758714808838362320423152037212940556286962389272723916757481306563915916922253613914827104181188813154711762477806940934580379750134852091471878792800249670586060112044588538390555394620814591245366443452245514683544025692172030037254642352686321927138893208164609713726720701702792294061798216499227927357178718665393549046999589428714514916628299238747760488855331593058081896861190716328936936784660279834966426084612131046214707029785182982159734012619771538516082361671697588680381268966873895293761993350553808463907691470207874534898520486360709814112018084363183778961956127434801158213991292438439809774048623322001304760134200103188769056263683481469973534640237187079578949356038562846269908093561964618891204715554071376969849225483078662701284310737187469774554281166368393602066847779977492254852185199780355392654520195269290266575102292518445467585125879020999372544163716065354713141469654945310882273702141726036003294728894628037707326181641987005628409777819539142119929344726856604580658456956999731053090950209376583981236819850551238081925236498675095686481814132604953419949050078836773930145090326439594424583128971657927264427510810064305550697449167238333916899809894443019941403792144332469456046633885730374487004119091140344067162858188229355885995143961852683063163928263456936093562204757769597132702518871604583066668963839765025810858284867635975271075765599584189181578624200937605833456076966477113636368738446588034493073838780908845797557162551842498602657141108794170633312595842066889372069056410669965686618400182194096910472252874452453490183150474100780537850873447927662389470586949849939078404859103371923273025754851451231445003804838536458805701524235040977069149992447188194268755818834929845275034266422067694276749567756654638876213762567030617990926455480070702794894989358869621884285487584409199960747403055117557455633592326370881042322274210616941412183215552589731925981709098728404422387800045799829781961133362878783184061885085229220945966052549666671465995950947586898455050954110368207878117086012020733316620504486451820737715374882296237934763038833847206775790931518816048400064238758925199121412730443629462238754619053527713409417855440838256425736433689702453868270003705993369779595851719045865104661215292807757626828649535309978973470921542650042847396971549136812751023287160261836174171489632274948342216858949262594536392004371125240992596359068288103108770493542386120024746154300920512427241554410819367300013550855225699837238193859723892887327325087218798703168780818563100972261607993102224739125761733692486953833629851175419971728956725676289365924459230680584845518119227342407986099444384301433743163675810255018144293475234732395519600319716697911969555352919753546374884754718716880785503303540363127206820779379930527833019843292987957626369583220551271556349388877129393110324204699735523979891924300626915045738990722345713218425947148562286156815306979944147416476543616983776952034755617150894740200991990165682137790067007477657911390154044211173840651313844153927746140430300402458563356253913877819519655081985494527604554958083631834954464296844742266470283779037408536313542344939391587384405625185407897785342246488441624753478884054576212828102371548283831886258483853179955717538024829102394794524764103394218682148801959753893920050488933595302579857803923332585751533194512453946667608267429430978902906896500817817824552257757329610627391042388162253246793333610393312088670732214146927932314818542127794138547370497859752955703919144739436924621528148160945122930151003176236374060170752491660637650113274725730838209247396699117167780131534346177195521501630226673130148534479704293119953056943937920488459175703589076591346391678639627983770850586200224910783774934404889441012158087017813823820323951799316425031412455747675515000280203737821377388812743547902197000336915740319778251613696607889596926540190300454397650850795576791342161770498778277968137451970936113469198884954699984048648520513142093196664376189959380178155263162830996725211964321248235492322529821874006802891247710747151476053217430092527001531682976657396294606675273921515382514529065851928077088188772683618009910785089152639008288443751328668145044036923102383814081258436744144999264725987692335205383498267185728100807713997924670027675554832375536307380159489231460283213386320042199942289642501106837760058990463559732310773133504987334609663781948890378720857312379015678474544668570215105370323390382303402137722019245012376878361716066051942080264992005716490183447173125393875813453162541112438799419697262596233391636071777160589255072301496569230501775150508569730804766024424669439646682916004733012995455657543043415988056012742931514360976820508004349538080510695084478301415043841676851758533911597363377797086011686952905256831495942527588095942622718506357742413992326839067033060677729576935546618681584166987679573860993449459998391668147178546418467084046505427147664419097047786101091652728285660762023251436874204475916932202408853894533222664865647301300142193367428343809819763161564177635247970181427554016275335534283440844622195978240671758081784935633879386770790784724902606628122555527110133669276856179987381871363052535873223899949725888251638916421325602098789063758433553881405953432003455071767732920313121484014310941147391685941713678154119762301314190770507936090715163450538504950088126342157200003345543005654044852961155525813306453470116417697767507599544593386540310385871855850827733947792383061206964487003774641913932933161954326776744276599941828345416444099520116244047627400317461430175062353961129315490088093841711490915227983326702098448743357711879014658275089157998895973335944039076263327856728917028466910231794227995108568825738246939264067668887374785561853510873520608296628420425288040576365123610536333239106533651338519701540976331091451468764441603054275837395677374458355023797127487734557387854345334581194676435937381436997955140328216161946508102045607730743549695423377636814019453995683457089089568077515557258439957964356755006901667477882725863985457213332223669804813197609477231184317686749727969567711057874444846821536107941912339127858058579653309192479280539687794849037330041206973177650534016715832276330972605112240842292112029486973408186421970811146963086221219598010842967497401008538323623371149451796201070923726267030366619218433778987067288532549942643043702936065127260896904849603558879405943898535816061393642025315693781246485606946853830119407003344651647083498788102744609713689307019902311317477385749079337947806062073511296175400437290238427251602827791321463399604577565266079480225197009792733228374482892565141896959676221570989425738921423313886861579378099107777676957230741003736155896156707577635562825050251467660129467364487034356798524861870454948901781791233446760706776028839987736581857218242132754342596480323130208968813770536649859367931052073557730681229959235999223033764799868758988463803299942944489017408261245544144061930817713958724933608324666150426153710316980040899849742707076864678053066697902703272707233891686322014227749359629434522456876170446824851377983091756445652069846567269175301698969288264148459343118129476233903829051179350947449997910810029882978740676186958865975089396749432725148053260225295433056254571252375872793229289953865449259957608195413265474292248183562370472150200172199998218286093441654634837222608616971342736272506364990209025722333582496615534058326391329585909605400630049670912334420859653946520440498095504497791116134557433794344705208414998767946419648232918489576078928648356286248796333585298610155930111370320671589462224525360648314642210959936232640043158885317541777438914248026933358304336734241816030958515607457711127144001236711246237294192078184716942137741852125835005552295179661482841444627742973624901205936209659919094239505568001661366222622745540933240625190082617151440476637374888682375829238978493525204857770786335332154310646838226511034127634718612335787491667150570947588504417139938111392797714744655160933129450977981933199244454377871157613753277936901835057689622440675582258036195056676417320219643155106060398529018622766729241957150014125408292777578563751610054990353888167949811207559837447534571004731060843905730456740157544129233868473419076427034277037864353966457573229181586003604318823397893812020341023911922339107439440912383854631994675457173842477532143746029655691047189706919868601947236856531440972719648171367200220980282118763342735214018030276285156680741787394125833999026357607421215155235169236862008742753934607840140671053445772829503561065788567969005822597505531319616423454421912249099663538792279203188202622889212370454969379382529640126928647470006989024939526113132551605954165555265622385356768092328308222914140969729257236406047166151923777661223471160204769080286005437609734191732994137300033719720054286049888769377646304029769768278103425692333963894837328728885354042042626764505136983993920257664834301254211822763493883035117221046903843191277395781810613337150945187398242556543943282107362893994835669277244137579745840701960667445768046814143288932112935090657262408554490838959820838506645406809079246518839063530875164774025263310889084648026340553857234125397712849341583834831668614592160045563851083470331819235160708610255602039856436020971501810013980698293577264544775781435993130411063442677786004481628448042725033104624356915913560913497183958162601352468431217365121324686264203249933844658241979582153068459395607814263948446955770721390531970436193992096794614460041062025930562697502921599323330630327122716132737850095109365399002524467268481246385439770381463808952383573121897260433726050847259689742438157338674368743928987470517192851140820813652913210447851046073060845827394965994969327313185319572618281649007359546385575380703871759326869148947489108267327088759239532031260106055465099566315032401703806091720926838866883582560863232843835270318457396283278535851805914697993059122584965857023921568864395531735028309610022094724953725845429339942001313743648927741774198138219095390325156186616859589616196337408116074751236385658944168014012318606530066592620091471248140896559834227534623000700923781243344030740466505959053912658562846797761435245200639295838125793291331395377874232486287511680365068815877000901278568223997784748348048664454538583066358960390841871034843405022767117614282732490473200535232030039712354580734363900170252862012712466919636881614658194156352729017264665757014632186005446462320824707200084771676996016927829392010732323011877641614334927930790576257745391318538262245975865378488319691665859126614296387831514503666024465693631508088788751681863005170494135973545659640574726107034454201847583765399004229640433572369818909907988521514959562673606325528281772768227251448524494824421579680827492093918937598015757382304422623376173534815339595213064393120860652117068284137867515430546709742811682115442441891951999762456845798670610058989222884830708536810902432661454644678905291172548260052375274609179715797972444760337479024809658323225505009621718430179927901045309262544446100967458417320637277489004293645315989488431813329064427000018211375309542192572940719499532655552322302699734264677232553081008849948210351541923867157037082541463690984901136729163055252731796843313634557808470817172555242320467466056036368412142346199562404408623149596396797348908683928060588960976880140791941771624218132650747246175651799985691975389068200781374292561892285867948013337015907387215745055514569828999317806128065096223977731203806709367324994087382411299924122686449600145013084501779378237170686708433177195467620841776506939531853324636540914354075619608319883328290758205731168430330724689549739662649617660264640031191624607480116533227384680487698394621922597500082849940191349554640638066742391930563843400828238020039606869667395198655878205860046520657145314896594702307846917927777007307086972104435602560363335736398817313820297347035702774604573690782944090486570516509073752487305206055885644183557337384946947609095595330633559497494552027470030390388213829682299555949888539825637904011614778218928346173575671331334016660006670720555823261105096052964180460499390653636380943488535112453535880756703232649643629863175651265321670325332194786099730409073860260517629975300693299882126421647385813540295507596543704089828648104267655941453752106670735187658937864605123544930588287016828642572958264569475367916766501364727612873137462719940703737620479439992465329432233913683730483530028171740458052412466427843415994559916810279600001060683802646202611603965425571465948682083247970059060039120927475454533340888650126687759465080093958993767444290171720718187920397524089966677299629163327691456039454311967897735882700082139043146887371360298895589582703605278188891245634471011063947439090721102670984724410157084144192367507487098677301390229243986424341492689832067830333124025776908607236762426040389390317992656264334224178238297947410330753723639890377550317883440874296454953855491687071694522819837265827291387676397182333452532584673422702611382629818564252753049616012928197473385941432625057689475233485882115032296470651597041113301280801501738335646124904357580529153756045651405589079056938103695230879946261637235096210717261979246013697326454305155740929904723558187507120783469926121301340074829969036118960307780622434123589967534707055865953922974357168023681132548171402524742285474773880153440078431435753241916900943135389237490047187963725279605996011952243397382381502770091910291846490154167275428993253983257420598545803075001966287267914426719328217809133281178341292164104539377872760669991192894950728410635878600913717976078907931251301191041409344450161818336178330103230103056718794623012609928486267769940392555082304772004686157409973450297054828704069981181918514993236876234926967419657895977394139680390403288063120645869496120510801005701464367192671079174104824086960386699761796448135273220315828479043038469670868235752432125401908052747461210228161393799425816879259717474268379134772240958744536657376448827680870227580128989344451375704669264685526539705524331383479155397479118866652699772242865802062052070820114016912778063215742162503821652199740713502912038033020806102392177122804727829348009041659194871944850689436086862763231920867133215593586904082875150510176533098403193079329671644188225741106277592867444452386033475529325662025472471715918733557686130415167425227371261075149486436361999844489582971256463927904434355179881614930279698296334329072259112139662994299923278902153826946455615762635832821260650707739408391435825884399809725664712304132840502195225044048971280463420063871065966316151725765741165743743231249852254710103732375213679408473506969530655934902322332437505684567813434555660003958931529802048660532906508897603485736499091027628383114228604899508119878388352163898640449140108003299137194933081217896780425970860305933624409257450895237931796898619762603748510494099816388847626673959330615043827335006342748624510018913514990894551792519487816167329766948077462610409898244019067502768830733628537835164742042888700071985655706973388375261523316438534215812873531019085666444112532165344929117738166708672348885869096710958429111413716780556213972302829027290595442736029809321054643858791709433168401101539048061585984584983656152512613377951115074850730039396142612877313427967513249524225943835124873316492521245918072712355188913651259138354917814240759783768426957337598930470389449140435471733005360701765345580479260750559002602754353984773176570587116093227938951282926072682823721537930495714396534284970106327500764199491065594686492798436819923088681028649495076874234283231452382421011365511603398772538194278427417747657752489919846377633599182689274369412564309580486705521641629373738090436263792717626174154094413540442172975485091857081136452836535324448044253086547098619320676101238392015915042193714510557290977167204715751532073058715506360968664413006122465354620215894235813768207537597000542126682169650154845618366170793692615530799332047468326292415299482429068892461533785313837202585448293991645679043105581874171623924058668944497597525777081695874167205138486818632801270568339001996737942971192870680740264678107819250436270099292590614051189947654215384060417734367446449958091809049824740571996321460749558093233521844856358149206935934241892812779787780444916896696171804057703263080837100748012820099965437596182753259860632467261246504467597464778062682822932727565423603813899857199620726670483441833011705149828214231907977842685027432895168634809206666891391244234299507942304751698715523019604441830968135878791426021621016468579751836068006020549967062274381973019283246947081445460159268404195157863591433588271350535560074844821020238046896510091210398163903926335438951939035967505211957644175651757493788149147199017494407329042367794550148691605754592149868322695909825024705276411344798979565320734735651904015700203484131360068902839841263818809441190157610654580073179056931245049270177167494319224004543612877185181881595932475133584488949239403013711792577019110742390412797594634493926356483728702998605979876808696558196200995598896841634536480277040607416230353792407000436421038168405870464193343302054063967224856824235450939689030202804934152611865091960967569113321143449559785386471954827793946995326718219507600633569845774508216207117041018832072406320213543417283230161737791179240297989373649747639063734212156015155130357041419621364633779307466828962034414892975053401290816615135592795085246964501055246653799936925654330608996411953546749532173282572458479879146792299469084773900928083739474177726204662068512250126688051572712830689186804012321842619786363259148393195408750747603949988978021364489399638098601772610116924592785520791279446020658107822965700303720962712106352452949155097931402449820655365039666918096295294060968962460905066482481962132993447643351270145701280452041428430452627987453495609918761960628142460368823935347384450144682515409181630253150513160248308314566003133240529421821286930463208808781191331131958611200280189857475668205014437678914177289321735473463226816417347849987593432382628156005138874292747486958541292111138012059506818311752515820449844007096913212333721279874645142827410716593064164005036546914947790832715374795069088682389261700103509703646037752200730304408478066834639919567419591123794131970366341295743569392787308112669879824061244257842696183837536393605697634603470008189239743049823804123285805911752904146945898132675101591720395424563660606839744839479521766903230317577288106629317456939626549882206212728795376747916845117111440877575367749445576899005982472475225467824835352022970388661829085524845366750840214743655140772540423623227981485834116717590415251490502786985251126723188096418769761669476150207162017270231031468399594139106027487397549356405434223921950594295839006924290709569190719295257055396069469304685520438498371205653214134572688099908498819521130280779402646323924727947248509000236761338250235866664722689065920682214940069055913584043055895450637197452080783776426281271933952326746771020951641725620508847667730499896485409730187970573650466270076359455549641678879352647314411101352309679939125740210675187189562633387697241580645703807094980456134511330425323094174194987858884057065344554157647997330729417494917342299740035253338045059908577212832616951740507178572886339197297854200983337329734461351174142699920034073540726929408837149059906627976954873126489410992939621253861042048040533976342703738376802514984471449515597719154900373559975066086761068662026546774825715408274695912692654060531896213132665920798524217643566265440825345875259756894054147525736127659962552512735943443064960504342512500852461286395353420780868842950781759523814831149554705476739791045246830410365090013890445219309553651598526923980392398385921941388482473944468026514453926421424883412066258357718331672272781552883058768034328088836324951758716236023845438514998136376680053370909595141244298570233030233430290611777391411090131239977582247810468054183394478362266907799290674591211842263026454054109425354288997977656362372397101070298147227010394133486130098461365367131934307331001480944098541725357892001754948020270700920092998983719210274926609956938648414506203771501513010651777828121572157766256901510374588304222478567993244271337628420767186994034722693391397377223920831211268031392393974262731858779198920605600576383126113942566413665896279973348317235152935267080775944978047724218712401390160804847420135957023459121784637084145341241547883205770861781353542529109655059813699810838267333830979215281594848526192369579603524728711069082070148843651097218473166731746039301838633431861537976655305903777631231611165244435270297088487489356736773648788584490434773302375852471724324572181987879590636795767866080786837241678393303747123908422346201975597508554306063725744981721620908679968905771483215073891777093509628758316076149259057034129631419086184321602324889756883009209016531356246268305720651166315958993580993110495761527824374966361795398504558996019410087547058685908675883641452701798825621763099617972149900469806306932408434778507947522760448742519187645339525982108776764063689743951864404560981588854845405015341252231086541817423883971176962477618020195185986267691290320797240917212753088096788649119212544308628991456624126053553064963580778501673314820170702218851874019843001145761083177868079909008290224857804415284563991855106145669112040122997093356622514833116162667959097754950562433599694338746833085629766846804947166818453814689285045570366792821998155080955963459781704340546896275779355729224309302912413958594231929806777639929284717657799939014637358689437063943601417217439078417059617943184723157313307849408241035466835336242718651457690854593009862381649528364412196755057954974309117278730003087272005064434728975739022778024252644268535146135601457037130452372132238380979786084860218559489973061033572381369616470407296667641804776530484054184758578138559941873026643330951961114358984230865545688355075120310113343791200605320339492903414094278905009710390289271096866041576470755740003385457292545397653062714195478085542848126100254251788839708921227083318200865052763166011117637749672357228433624416861130363244695231167632404079042056534043696114543200882577429354994880338221255756365301463695152068568356213207206179345428647149326205124007508311958057111289508133701296841866913326836558385351149531648367591133384996692363596536042657738940304708288211834618735316060970291453374223666927044657384475719058897148040179246513126745922617635974422193106171799262043620566369452774047818603917960001522502372943368858952766948818167668563910045699478315964445378857195528544000499220725808907466690975309975532586330016213418073957429657232014861183533244733725808767416926435131520669592944101922419187703005178056696094731213906485010821562063179585306710811417307724167526518715614561934355307471456748184583812897431643275403242684303197019211119664863535316910994455973229348062905997076911979223361470672511735817702882609893558933439983070698847902645122158979024216204964499075537650969752712586715121866762461880289491811885363532515598096763250247506812754332971888670852136225360130257476227959064518326922893843008432822800335458936699835438714998990126642997735380376375062766629371167403150666828874783014187094196936668053940825221745177326378586266323729099526178426488834354531356207128114643608147189617486839161559149151138149194396344151261470674121491623577433645603191563757313688029074050932845371290567264896152368735462040911233535952017560740762414206700408486809355304896260462558549311308023574528315310863180200612062756565150712843460589608592959397636979772062398158385274215550198504742636592117763133449408500664621335672363030005604068046945798265680536765275313656213677899717069862157411875424957579590064918521566201215836006739533833786126470265810083583478506552495076362268175250586280863794096015032114785771002945948239054673430407923953426645776371093723562095639538558169977318872783339265194673981737222531308017474649351463564476118332922886571533647692529177335234413577209084654811816265478747703697088887523677488898356037032023658557057580925790257085760953353119795542084837662481169702000944955791565331230851426748034019912514965498776425482421925297033820517046830616931338784041885199753737982466912342174718485251369081991905166180075653424859227989361354350231663776022669292346993039210705740755963695512542999655710674007716110626347564981134634795785501376352195537058015285209261157943642757299473452128574545932334107577086859743846940236563884242544713511788829380196763917922425290467856454714830413071146884874797245920369737361488681080117941630915442188480703480885582306853665760281995087344698290793360576957477290702041642004292515782462193843220912418829853087253628217009177686972485972343077737415541254425405092926615540430353612453156603043732623142138586269046276491240930253935854472773577367991537222081481884546174336356780849439653705110722563362483391373730369182925826664084905066550537475524123007107007425308168944905076873647795679350016065348398476048353460118740634334249636988802514644217909454030038351086452323924892184396728546783310564853736982607346996659100635274946995858843714804249661148774774125832699262698439449612142928214685389104896437391699101028385621928579622168657400306956773940613362563241640800883500357807924793277559053177218413527739095112649693646295691504958423027294599281235046622452721100702511572935514620897081052960368411553363235276182471450866505324068969626090487576289211427962283266572359659268230856348633844357479583145875639625191173826785907762763050016048734574648223714085746778070186534856049775132868509617795376765421817189249270542814721344906262691493366578640613907473362139443545086329146762550091753792200995340363404040993404227798272312156634220593785468069580582454385768257666542613676414741443418562420338290517960984959319511725358437315569179236149872298062121755824161538458411330463482854279122840496855554833378605064696202133366811739615291948497585611272509577996393670189513970754887329583127406296994687580077754990153430878081153855456380193134313496851039698031082607563235596849763112677760697976044081395457968712024046796048872460690499846305008295967714956908345757136762041094511022365817284888314834121532775906142361093360383402697404924459013082902595325120028647249244041585298398526698458732269048846699167925671518373968820288659905882473108779095226589839953086045392292549362910323676364738788888586351735502081301566323928796442081823727990603309120416231790051586209251108384178213981734719610040323700791705811279513392389477143934762908857031961563271221179945018859196827220584516468499289330971851844464666551787426106868798624531153604958356830350634810216265687898652926672269659182937251383905204688637913439751085420358625185449696926246203430676900173473709239731461502571915798464627251008113479390476079577692354052119524008073116463028910854357405018469883665170579971983975345853319922049801852212460456438808782678696274249428570388697282096071882793325552396441959552926260747534006365324150609588686114761461041969769415984946943402615718073381948694755613078379340674365855326481945718400751003814084051568860272041424880618353984488339902989658487002897709582195838263307933319123540213572348446649488891183510963469863290907258738879894734443937808793454871727991772323927689430798129558957433356573053507794181656694307619578303185605991074887414578964700955178315970085413023754350054149234378145350683416701477113816232813947389901671232753854653494433008781947123115916940070725283879379334065296732992566071371548982803992568923415637053028432196617118928669335915987044592409229667176242536438312856271149890982256476050310069876604267957385358840914949324099646344699998377033710781671919948219717815052246237774831384389200779691427912754309169609449515240508750068099426890663274059173243029765941766896217595673458216642838101537978512594891597700641901751868998983895942076605092233570737586674318005606032511119241291740049082838779810542583010464278539218245617660130045545410947887862186693364230960046105098507033814198102969875674405727280410889287068393296730795794415123712934587656012672428790376525435157616257947688978236283966549157928256967592417522005580309317601433152202289141053876918521550296409434628571968656276667675163798955260918053521923657998573593696758234275856413402574407976717937945490001926510139808441959641223653054771723394870171812626137912567907372962963955350192496902805784930037747836479549472106624408405432586077410031441275353903628927682564988111208580205308378642305341818370837204963120240392165417964021049723622697800826205365986220174385150528120691937456799195829744512306680740765956250302201069195079614631419735621856697122750340280053782827778026926142007765047483857359707423008538115181568191468641894146541065800543556990998143107306547949128790928160031707500151035263301611183705743486304826506326762955870325252069123544750216229536893515444122258906104169116055807136931629768113937109021552204137332003266820754804174645745196368643807217308474404188849646065939120080804996964203827094971353548246848236850256170974801581483051523917581965030888516036694749671202729283876016243949798067463913163947898928767460496843389836304378529950916092200721087475635803548671945069031781229221576990396502397917655840709585568324717682867599073482899530114767319986949709535252833277741375064365492802154098331168480686828840119325186355976049326066705884526703436162812031886318306919442337399146430308325327310620885495268220527786477218297282583143668950991994459336682472234319535349713641125754474668676493202674749531894097317345732458934610282435851136700512229600814083427350494048663402760126017937837197281275686121719495315007485125676484829200533569330444426699922689113134684489564182689393215419063857689370298189916895726387865776413540536969060803108259309700515808394451797865968000442766571367055807214022030244219616621528508417381389917153746659223212519684371438712891493544454393332802345216632824559076056024063203053653528915172585257360672385334602521118391967937534200311748629547902718792837759658455262521330470731872330946473436275377918258515793691577589780895866544019110773175804841486066562554431007844539751445993155872667362730538731072982073029243742952273766735865558367340685867649869421174865392367195194095077496154346513462926960871372895343348149630451566706230663015544438937057439436903724961690400889600391594949459301477590868199461796227149454353803194077256631221723617017979921999267007861513450026623640876089989108910692375537095229545994604884749819665652883459803328960557005018428972939156917324101775854000962918105596913882313255884004791364774769004218113944460301939173235909488209580290746119443427034681660924675994066313262869967853469005558414929760614467561099441476642646717424078234939216891037152828954144336760521606235078241128735852420069951792779158226704615755498799555530954007591223082963235821470041412382054587117215136754462831808744055955533755872392510203584457317030402161821194274026774508563875535091975153839311518397647967299740058064018604165391011969263202969095665404661261713441012023367053560094897537054659629195546966931357479360528163250073179264483161276247472198982423436183157454685343110335196306707984780949283198739247807325402961373733184852970728521846713076552946794600606765248480124555295587520470303982327628354312583716359018316663317035635885706067228401631749830918147333858644502127850677666725940284784316331958206808478664730539510084112186772372330433921217983795950013175671045157182065940621055231448880348442736702866555915445783594060662071194144254906265058999779415212607096527546408065123866643721116208497264047142110645805600120343897073392413438040529512539035301772569391324601917130768079901023855028021013481912149692616550953884505657127703381590013322983135311586717049464616235009731478037657638789101999795082269774658307833033588107344799314496795597306826394375741873014240346019321471897364986012852096407933538054920271876799874145686709456874463713504622701002942289327539448000346249581727016782400832963436413413295513396749155490595037340543914026543561843788728551155188420078526326057219646935975211737499490723348558862411988958581212027215296928638504430047553266067030010532877085732322419842191894901540783263924839399437568541576564761619681962273604655489032389159515081520929928054613624278110328073702050984181268312506796810210706999880501036541509866014721539449665627102406654572400720548626821678035503773333848823947081568858309371031797960632312516064598240864608953665664217856311239475687095413904951454612108833024795907461192076915254673877398867931883656901132696597600698898427988431822856055951439508864655517228079693074694276118306367326443333516661699809755053373863832173361534662824065131616720536933181504907879379303798443093866622550816603234896774055797107956190283457775784084676166052828446072731619320813644233941015092457353171650032047522665160534438349422064278929980343191147440927649523123562534921593236921216692844764886516324863626836843159910781809725531541243530167171803429750052799892150249121962764598480579439806297719523806895096103290634870345479576973075833229719313844229430517344465617701816852882487530106294274124178441114196938817559622275777538319799731729764152995085251710910696062290901040236305522475796749856841664143202006348706060383218903910870797740422420466161751714806998531214029117110997437700087571523267178125287709731321475835922669268814307114909412665422872264559128459646521513699750771866142528434981901229316057686336804974280526681358213187188356415439296412249232075571962534865081327477072389294965703438802170383635947094366150545353828057123819291303596879541369935673349193984042969387582699407876449990217834795162129115413563387147445350086027358541782541564527024920902125594134974837719239186461368378810518196217388182360921005489642498657339123278756545413950634526022114773224714738202430599142767843298478281237669929366302448973251639389953005012059300494863769937718675107995049634474075717280997121400134787009521390465025279172773424974221937725611758898544174182360409272635493810703652282264766182481530804144386785366661081300049388805815850865022975896984389995186820518963800993695844905694823143392146587392150988061254909965865200846307397905351745887988827730016501720322024917433237116986634873870211131270545147996095425669499553735529498344414250655728873438476676092104405259565878664780201775935812029276455683473965227010641901422239161440038235958227174952089176394711941559851663654525783923683652596234526488994235493181275950631455177833666767191271068330364014762099260789255879054846360865847264928241357583999006171397651078796349442415536933371475856559061011420818518098686709862751037561639698306962440347893058712679909608658035186478406301174619549930635492869146325587026863337842497465847720156825956957608570007089561289118801975347607056670346142558559272169110593813286568018157265167382397896759641860547533625616691298595060998597459557345519690784946414424115571213904695246736317764533665112441321668870022952893851712568610655128228532506278778697443033285233834556032092906230550974781565051033464186520781594055450300417104185630464558547587332621809850871244939773586523028888117438562981762909496809729738005279470330356747817551293499348361278240889320332776981337729651922401832674114572177290882223586244894943207176396571092146312464745290472287842851701110507476357343315508464088769254788021241912840753710439577888365151811249324032185517280052676681086347928706879085732999949405719729790994740798772737831034288645168852063376667556414178841326939868295413925756809251425648570932450319163809089407803699192371534128350764363267412318621767663930481699223012316473371019833231628921363439566145445353733721526092852906269439293200047715264507524504521208885851469698232374828970053262396246031003797592532695799014238645114166840956297623220411659928208218410781211738608565268528617485283075997316930792613678818644928590934494895469394098242288531952907603527453476125575694844545113592861305962118772418147609082763706147239862463003560346471293911480053018605915066001427026157295555663643472721932172264826531013346796254323204968880788693014747741044637166459708287693992387160445625285018254049250566253815391333626671670469881628232048954058416979788709252395903770619981228631610555847984422570394911001144388729953212702945921773137493147160490275558427716481315532925653085711068258243853341704728897284294396330457963822355990706797404249205038347520393464071733758481037328584022678528380507125539195721483759228984497979769009386552989117254607180402838991905390364142995254081368921450150421446184634340732370922519095102456428371888530994117311219213925885284770736586496809856313966814487178717595300374208905505960291646492663536923987682677769171690117378858756161200886213486324636496043963048232692048860526984615744474065068926396330961710607359449926808523247844524844808043023815430444439036734763655540882225782318141502113002283507309591502680199187263314587040208946166402556138314374822438232571897455581678858700632001722169192781965698044509425808441566792692171847318305571574013862405047155437437891027832675227664748967448872037326936505553183854805689601064961633552874040164715219857081011681006834168154281647108243146209434666732136974414755178793857493341963225753437743509225203753438879625555413096889975656440091951652447143351664783938397300509149806127958811501015776712530460714758713928047133723651414746293971956230029988900751893220625641937982845381180192750186065341704122383535383158421961676016307048366302340282827890762407273813641291580708364176676376026685843837729460372801768911105255450859244019134424774191205502264429178603731788278317545951377307213890654407351364073466299406214362710943350794099784456659263748830511396892566647277844519588309582307776872497838311725566583048629970406205940463842728252121188529318135938719516196107862879266137534274910936311349290211638477934186951899565336006407975623202791519776422455574525047742581267652675780774202680675459410053985669434658211616266453874969230010817489905735492682209537401592429306002696550816327740060147403900951168939051625026257787336018605425501577944381797591828547252268542327465723042541126785263440587964163453367814296129831980539660316033436987297376969002836969245111366770514098251420756701138325223986409887095420879402117066969368753496707589660945093252227830697511323448480040306656094573057223224627804714185732278636165173742566817236338262197027137991740317688712046198875756165656906305489103909402631194149257919991089326654926944642230935998538983954694816494898218219797582115412810419349800766586243649912468896022609202413090847314578322534885731787972932700996315780299475996156014889391742718719430453863397499006470024983170135637993532607927454755939458629574036489339918465612541958621800162310609788204567997055263543514897390819838851058525727870998337740132026361606311496771183130539112900996410450524123149469638941328295609511930440866950124931862754809892143565665576242199578056682840482268165097544497256057573118103924212671052253255646447017691369354019214885674366596429749610815602652014673356906804845106970359302817779484804616585897248161747815282146443518523327193806651613124113718496968335761445389163756431559230049197995834199956653944538033919148317208413387328937426484803332486087047627815867008660521314559286741418806592591798986567373167520280284345469486955447470546392435466993696877456506951261038106664852451849907868134904302319764795993735205684110906626106259348251467879070189410695248405478080170866866166223327125835527031216578340946929954906159306360194672648562206992490989608593815968642060253886290770681849767080530935299486250144268449757879831708766447826413140591215004599497718244754700321736746933558138647041468744755000279397048063282116926391189331296252671256910077734631745241230976595746791088321138668161181115956327457341244998542864694728183563443906956139300925118593468251557880545092022306123322565744638305201667212177967305977272452378747914026233648317536157345979899622268710483092573577102149367638493586832721749555048275560951578878417216349143164738824783877174055063133134141129723823459022164358701106074812588236596826570243403517191077540897049992581603093585413845314422840958384313886079608361497186771650699868947343771905455078433635744545474220811191583134644665833159884635439598693296251065110437430545399468934368166584928353879068208017515977616539100159197889640074082499634421687896707765211755582005787501497065839395724196668387827930210222733269762184903298628358713999355447676203800888025798084706668586223547743793429792684557708923403353440217633821959835496300823690345520714173878638833487674119167402134589240885374397324493804285133762329600192290760680478620980692856048876499124187192624549906681224002385731927815881538979892649843826796789957165027809952223838242393238705598642534922036710043431369287854415012179423045040910042896584930722311355003563905019313123203167196637229222723111111047013028544066885752977987871048360659091628310391387379566315957178821338480629383278702726743175487915331259044803112705556539331105898763374523916539532022111466583502933393554883502760331307488885762125948997680114553406313859500427485389111250586762742709307903273147349148777124027583453126795715065625636821854451489665626715278549025581002542311779915713316963772889644622766311594968738288133817442069393096204111477107479481675067380862813315760926671013320291044426445698930068819121103221589638754814168262803205331288122663362115529518771301889771094716673012306022767401709543197964882423563987068245695495798005484474758862453398494827099126409108349709335846274065005912496763850613959803678114807289231343974993158995310917241344823915862600092661564006532340601047872105469219832475808882858733182881061823745391684124920787923410720114744394656410120126182336045272005068435512213806161220098450537098607871333982349890272253295540504370755467663275535097142992664605702672393587063903691355516747505549012030929951105034775890819850367723980302921492021664718336525236473596160802023926252167267244899699250064361220847504881751725178544010812187372818039224767051288242098701079051817528367752942323727859194011055183210152270388256260793216140318559968453919924136889252822395964867201505794475739784245805216350155435318798778510384490040303371437626665665487356215235694953968598698206189242574395266506424553098148467071521209759951829754309155119533198296793541452975608479901699529038092626267986633117666258011686675442887099647114249549779055691371910728568465350146416555814211177195098258643599759502607784022455085173719551029816211748338184878970180130026748905789694867576082390457785913208724933699644484011538071681000592320617806519090848152255714646809388584055754511422698965601566142462582450156877264415656444084484898216571195937791704790843035203921397460198678381148578402528315548970348006403511583345737814028367200363434225295296111111996049816301301415113058604924355091039420330537057988902249247945650253172018878087714459116639265805168589192647583194091172252143361732624970293502843273033906554831041663036478958840038614470604924440986847745718111685703270935925560602314877811567193129981162924961938355087395478348913563526758009156632401609315948760461926261529696620120664838894472460882394204278741947798594597351656882824593819258599153914917154256630597561726553815247855738413750186692386590203430977384476018608997732078117430085227565945735079552956767788580259476730510487203802971852979573278385719906943817882588145256123705001082322231908972197558708800674565190545156305841084609151273220155851424231897060077889189480803185962628144601484343515770063621277775578831536379190949326805647395318911339119405745180250928872397873961069305692195153065027439154405018747396021097450695695006057472405968389642896998398767454616525019460445112391019425449750405482723038213702463315802007164592020046356460113938426777485734851425884037559859690782274273656085173486243603126631716545627438959402591167774208005216275678220586431401278226208762909069665354048406077479465168460795321431332987508051300738551179088122663667182635274139207999622784903549369698121277923266367194576621521378200563377416342404622375005037218852168833770062233405340016595631548538451368087513807302347242397932756663340649604395008262428536286598557537506356470291148809625470063959359827802906330537161079302458524069232818937356493042599777165727668229348536548884218688448399094347877333076510582243471175973365094066961790017943270176491039964843297839664765478322904606635519162921391681828631866508816702936024919183750585869814123758553124550841840139225195082431358782819644282331957963416247988272414155187083679909900753538380658094181830172706382035343366349411985700650689060018649750500911541229790163340665495464109237569293766060015837712475993538757959007573253270677072025391657626101798265233921150674127942832322264488758881627550075771059831455886286731893295377550472065066987958272450753485588327164873575676580436174318394163627371210287558503687318527445670651959309017192626900266371118826808305978196717520083919942179145627221333216433892850326870160796951756873773810178635704415574574419449670594762498409504333402317100178116164710924254348742853499128967913426519862134354987293013203519795960039381363848737467212618270731564613659511871532430995334142230870878917190739507148426693909484505704987831534712849449822398266093091639512605772565357254181617305714880147434804287985242076400665028971367581692268345205363231089294288732528319823380603095628409182094876998589088101161398034571048554130133296572758984569085773715549273225283292628622339986195172384388510085415083297942928355207489557844870824878164345158372561078650765198296712599846888569563051451555319498164219860112921139128017531338831643054286916042922108342856974645786972688138415096268290671613186737215388405983630880872968073958741303840185888668446492868676759359089080231360082246847445927883138872446679394330371711937269272037185466642717444607758899500853574823254379171889797514651937047663555394700718218418453123481007168263319177862933731622196937055716450373042471448849249120800606247574363709589768117609118397373439896772574410457785194754312239374573303639952544441214983944683251880569515271610909144914198516757349332746837411188876676783109473712107790651814329917723952113049469226276677967885554735504229673875234863629260037103541619121740781326049665492585984841473280603719540805492999959744612585746467482370989852919451856937357093595061546166399361911954044090190035995500522225927622128832411551626446470674655751608310818467836895794935324956835333727864475596265120511928959836937131281995093388741998932729220766186971819616835989364913834217882448667368788872160073449897384829428501638090390410709127524384232373785239269013678450120889014493142772810923830479380941667760313394916673457077567036873529618308951727521160114928744418289315725016031968165640057779666587371994272841772326690567981432285356768700177955382179704579172769076994017960745108906945267766464245129977750375872129099659919203491344605006307347926110519981615464585434307809560220189373909456941945330766553156291492790189795208263723326369936012212765031845896362552266911430646329309217085814200520307851556119200286794871716840391676884642304296864263172629121775137201741119099568266943418321754084552975528766984913294171340823147287132179384933465726281466945456315043408990026029436245263900243700567040085474237782416795743347582207264049140012715676958018295268611992450566616466219646170512108480066505545410566311880548697423647802587330012181353931815973641559284515383765071701193930505880309209507852120814151015254271631482671529456038724420646310439711369462282873471196290889161401728531392263863470664812582579535311717611941772917872921884750830391211418555086722589176729948171553609474383218841986702175013111252783631850255284586870638692351262628539379253500919146876299735954720390420696347737476723941136201006765183603575930270844115094780525046715382725110141412518756815672864411137808474183939652531745413971587305532472740642308589230546215644812231758861329467627154240887177414426976946332788213474262827428541107190480910222188844425031988580940606627279442242010824453523898062914625975331757899831075839803709559615751216115687105417738978504634757278717261801561716185009921969078564435069637931057736655685115074834065916995263965352581773165286172747174172783087086233936272533486402018513094772458307762105205308010934787219101435511830379476688757264397241189314803774032988105900844786837115064306059479532050565537425142875271703889041009513683916231460726203576990687435175040144802796741859251166603200993428750667986921227407732530928986883695623275528231083609027841078035487447163882997121916236148175209787535971717554978732634462813193092438889378786748755292000833164667223913405133707088825994911257185952766623667023934787745530177129740022092036035458140642979891447484611784060633425899226569228997340650048189874841060448908038673367677143376342575795638877856236301688734978544525644354443073122291487187301198304562005189239357881103262765233390385426243781830155409514449222038185009188271184454387358899927775837073962474832680467829881547107739090939633628670030796686288609442172210883740523226013872737623588313509782053768451299289925586981565985078438480446030930793266012796671552676709714405551643943748960276210825820506664345400447047253874997286950308709061794555860202804266820989407533559897538319168360394340379561971852335558055083696565702912616238307260341707439894244393244930761763959476828836176668721326298039483162211974625311317743370198286164855328421288290610683732821240744997202570367471066530315852746395425993912501598845431922974607465265066971978624203848209545863519689648566767301349788597453426030250218553296650721731241887260001331883760785251721406758831321708195009929087766019735255758148258529028256022697216693548975510681765997648803738140917899870859665053783962767213052866126270437425794959679625988478333421356252466168008807733718589562405557996958903629973736304360585359808267690402484387736088445380151514070639063952439671494694264836708057902851510991596404306069947250893017969265008581544827168066948046422185571255299062472486513938877529688180189732227596363842862968661711232606188801017468844450314959982747312627112275118114888919417761717735566854231631883445062101721584759152713633675233583929518612517986139295610932438027122881251919015723934482051661685493945529570297058343613349899346867455561004260600619615605083914314795314005343638022702351207659433204241686079937238366927038310529408293488351076244709908450230319344592731511326970503599064345881705196499219748885915323976815235675748406752129927301879618136916703703270421987723074408095162422201115611877264986953477702543644156445458580996710060672804088463868733366196437398521189144806172551314851727345018899491639795411836623627833285739407944091043016196701023827151053771202910126784327746063030700057751538913793621811654192625388754762108583943113453321443935759982285168564962411124418376135956609378906017736659186062743630256132266343610717282095492757638397652055157012873174194817586491039852139539876626474085777511314468751795618906997833947720327122551715653985760656096509129616182795973278975682236292985744003566298976352612889134964790138959200276586543711981667855731764701144724061683291457074210140569897886193389154351862588489858174084134203870833965476655893701994560123282709945198834025915775857657216386141962142879888406976411222177410256040954816161433322085368026045115027399581503088549198638415649370851502185303060806936063389670602172651731973342481696386132113875292669061400476984593436200820658166444720118634438182721876179522215827608175873667915706588525194250146557261223057621176267616207369538617797047750067445524524657632641810704486295872307882121667920561061609203229740214606328775507503374204657263587535080573951359392356747646513288812088190600519832162394139478381786680161920638498050786771549010379008770132478762728023350323020519881907279684596494963254489306523708124877103014241668142345223760652085636529376308191281528484670669507387733451619824942263838224728944324570708019805292895257692288783107509424905669007312713752875310223481281239269043812120203937645574329416363394340706725665716602937769373800805212015824438916325490258363475428546422339984940855115433619599576164935042063153666738740364765375452959348393424363554079056464177742869081412159869901878716011085901891674118365985001447072612877284137766762870484795511135846865245837818224627837974197074132888169498515999473356770127460912329395153719884464825096593248040194812736700805703134475346957204378382594499005382556562292233783331754289050616425297902890143100562999078231016344497527222074492841912923208732413434057069053667233687705653769155005320963512603739197045861923219326012224796701073718587228667577767351898793796568821834645458854986762459076496131403849419612924632101499517747236992905169629166811295387660610641052781997226954618177993008771349425791676324009347804634879173542286035220185863709483103707820856970408107527330463880993641125867107590525825264725094225875388309464677952372093386027864784100592037649200691606182411194748606703517994770731151953853865600772128048659026906616663730674121782270724025270983493484206760313958263865085269735418975973782370625963665871999570559204887457815373696026013507053183065096438312074061950827352549684614320430300745718028007930351543596034985872155201067477700469051948924096327629111350430268016377883584690804873574808683485846717726938379121571240582993498954707530596221292793848512740414661373509653395398942300163736517394848850092212002824804470813925944695907520391456446459898034279522231824275087350948706243169428430988151918600331985300871015034096666068571960905175239827936933042834242687054125780248292231260777546899226654884137940762568753676387587795827455248506739880716513859572098063728619139460274072171108625988485685371794990292119617634823130706345256428709424659112535075649470424313845449627350808275174428747212307697262544183914640257491913658955571443113243625925498383768904422327421110805724290647983976825775437614601441391950631295232213643738348367352113652459871137629343854694619017439927423966357911990786777928624277934477497707350707381874281187897306756338287007643225837954391653818260400139297000857196549082174184627453145142910871662548558147534983961861616317632236098875543228940292523500023783190103843961589399137092718457000553988957935471127724730750468122542941169928087527109089689267332576110961022320415286145369847753839481106344993869312130035650228214415768880378340647932345194659799722813798159317346213693842289341054429076653144621355011512248936588241519998683376056735182319627624067030502966810966388334137310981743443665566767469737695797345338143199660553694229501361293951203357923768605744663333508175944545196368169657508808546836241415967063058558662419585931950456900032696358735220907364084218896847285020027769919659912528528540467368331098258071566297970880202683674208308123984225306789744139521861902241384086276699198263890941670209099846027492387605873175647980248803522243918970958015704265184627734952240876112882819153884587027105857258358844238353895951341558813068177522132241231141704976375911603140922124635247065176287265328901950064706548184469842211026465680005299319305768290992706951101501348488836569594997614057412440709674412312109130692061289376700900809821267838143794527268937988371499197346716201235822926136589009861812289403705528842455787834194848643270760347832954875434805007875125455694947718878451691503824583078758602395140180595995096632037172630682204598841986038780434889897074787018081327180388018561703780281710574816990946066449696512758072104706983531562320824752019866445424503404412369361400876992333046834593078941869980673662042963733312240844032152964075757744620308650362407309031678674079358335801384565601020569319826344554489779008132627251402748290959319215763284066469928959044585381935001949192303490112690367821639534864789575780798120641687680835558730886591448504747969621769583223821185752020206083271471997774424175268431584007448397994233954688635534675745838583411283638318563766920121082244612641877841638879707924773018291594811634118981597643596526594819761247111075472912586439577515950513522423763876538344948898178310824701635426267948304222052226201887654819559773321219559498780201156803658111718878365124020554382183272947072248250594025877660547173003638292137992809986444900800806096428615689759727900458831771801348400984978695379655728869302958036612079255489365002339894601550250850476031664033562223120601508752006317862301701396159637857607632690229625982498238711326845199911336243964171470612366953561788235285992468612696061434530524030921499010160087636099353622305275772036342242509779130502881746764964532738771150419937206425031486353453486696302159552990967674462873075614045068758779556083021551549714025672275561414614268815455678578013603074654375519954079943518370875418784186842939183415472638032342524411943149665659063636949632033913898880768870411208149094972140926794678204067033170620181948778414579459148324613778636513337729498406221388996519075098115511077032000983663581265455542374705140242313118713900697864954665584036239470343778773198534788584815323823529207023705866560681872652841550589259685017293997364951047505815658329354198915122130439194603229896058070768275525446555365644639291857725189421079081547814728557748018890417251804206773303093958859031909695791120958427727790342422258221504297041234425062910469567561189377098763259318587773012377929767790796475392733621166146612650451863365116571701167447956094370151785334692214509131956955378404560631887540237236098125932619679058882548574284592246349108120205123537401118486810823341328860957427118613238938848825984317504496842306187652577850445230237113838106905566483844532933051835962530531084670226749397435558079071936902058610127699453730509356530425505998335940065950898731079619780417424929884373535735195007655922808979904046483416991226894179791293457080233072609907735425200293848036935823353530112560508647908230109850643444475728571519569652460358579128120269860776613894042363954514761907848424858701051038566428162809482601357012232026114838740426522065964717470013521766253393009798807548638014877323447560378004283462771127168826448374396354934544025997780275207012154223226443907805921811163306559782990477783607497619431370541582466022137748419323421640047786102076758651932789068807744837051591869813583355705437858498285792125203666115099907096438807289668029086465950247276116245771114680970310089350828644376132217068528839118736040816957019398965099218684841126190820693826402781427938889828147143503735308250242157389746367814652754590399710168427868104583174850543353926994977631711377221699858300899241443210555768575213035565474677080704343482957849915093892914006947675690663554925644686680104371606269013623781754504376250866145453755800089654992290171816852873590868589248070558289482971541993802769805760047949003112438141566967177838623460295980686198451022346030503357903854998425013354092163578449241260467213669750728585000626071360457114741175135531031644255630140972889299767837055326704944821253737707881262214176511185323504709958055475946732526649419630873938707303442592359924617847335222002456787390447044561426655966671325272481860042165882483491499036192822753102176122720809784006272755685642151081865153438015831707942015123106614829834841991331951555395049482487500771607039127328407079875238189407033192635673098698144333455157264833141253696022475903741946911793831116914734402719032185398678481843674877331228720707850213076002643660375914713177089267778099878040732288406159922876565805309325267119405665373827562678923850839032407823007648765856182919928378886390718761942968620626073201688129046983361224894110706061622552656196094727856112922248718809040978523306404338493064513315051524295114071907686211392740379001662915889825240348419753690484584484397456686041940515995716076191332300267704415715388541827431879750739697628335156682818086731287238545444832716773698762725103876189555393177639874769025083289500728027879533890877561267521728236079873797104273069089253943245852300397919652362405005740222584012756147489280081289538743907920384205418940413513234746081977731695704951639126604726715191264700651269642536114544307359831277963259389869338050570517781768812649889358534100257127581385100126882763629260577094861799170682343813727215085466174168830294375866472703114561403132831138108484440926916007787004182399460992503098411151788021128631225911149166413847862564286482168418020652364506385957855104781621785491627769392655941496428886244088888291190548652861279466907300697283603896978976990092489221197487716940937122040432483701823211227450925781333861708900084494642941664761447726998638101479864665497313695978662741554860713646779187929589276731363712566628194241850699445632130293024609140338984562070658355283640122909623656777563244701592608807108102914594322694462943932082336708779932731983831167699780755038457824187869425407687155782483093886217667680937912114366768179264659554572924170802969209959774084509874805260046661513480403015338384407191343642136035384026367871192120692426205784857570021451609672997055076653984836725888792565848939680238467265626453726501970257224472778011799820294551239257898932808378083325314588888889355738011145100180651138444834030366100514441011872935518959033748625543356779740809112723265208481738452013717138453303537246982544450419160171425696807357763225333135879560574009015767136808290933908591998378752214963040249318452352818618829160378013110521247764267046427165719538132417905626296144144724521546301419073050601096400481734647723191183627910366976388532357785672135763893021247658304497545930136220319802457456299347553844866465714296834771713468225927421314933342156222706018513005336024403713010927403353022124773650448947060608147375281409534336258836539946535094828965008539150983935986697162041407121336999156811800091021351929371092066042182654098412095705876731116606990667545711743022285376953068646604037851256570933480283086161486504982551100356366271602793270220505933531382058231178660340517020005705661455419932400785877662759789330866001557047503819437814124023924922848326343110036699562428091053859446061296214416625435492448525308288577702765668233198367658022600585044940515550306226872012411788899709219615940398193963813601841666463980721633959881476265644842079074268108119894485526410838396784641314190720439845367749462396947020705812497155939935689678200980296720373514952487561829627438875377438063415461619499401866574695670842953347442863260895127331602051179236255489705511956600414205646525296114081082044173406394620645118070606023326294799773649820367007926378413891134743332931348804183119535567554209977253738348621208624032230398218071934067425469663087014112245329319221374166915750584198128364057396730277359214768419899866493595917857947396376223723453751604430817391582895706927007643345622000060598156146611663432609257230872627840441601747639278957681040759095149579509222107568966880855486605677275290702053574760189587293858298838179022429106871979384754525167538607176475252769167784561684034828754670493003658895789039575280726468491122200732927343032152194680722067849892890200848219142450162112615369129014755055469556760870386591669819404283220568346287053689427961399732728935199554869706128278379568244191088189643317320304693683418492506755473249350935120474521325563115603445494081221841926713392943685353416917772718989936231967846733045064989936799377820903569686143440699847048901774325385926828359286017018854557258774363978244972027531134734358681966778139946958702764880956133989148690255245759319538711747151477573461761654613699585664608717944098903488393569119896952997178632420562185006107848868274114203468033895036057377654008871646954740496361489838518766981467674786626035148237149563574307577998994876844220413550077643668170766180609128782729581851307741948693694215306216758969141408744810503431753377567886765419560875493163988174451639958348407969724683287234157621203357317667898906832053256788765858923783292704161519421552382487903723270529827539603570695056841391488171529940566560116990234263909767015618222910911018695363483047727154744327906532478858125912453263151010017014913567962882721631942151023807855290694380730968904478903892826789221352784156268348512505163088156368985670935179797793014919266442877254194420284732332947210270997972677420286755362007594091935898925692521821721920708367036866352625496375829684340202948882922705050675085998993518640120329689480912863372993138709363484830753541173545046487916652632065306799823880049774364537976933354885361547011712895193635735454566614245498572514717855626745626646599960744962586845591139069380350015202600634230739897233491835038238973301405817980721822965187875984265662522846247946259473950242791661733833591613443550368511063785856474339981242538154398681840116828803172832545696913980453710280264149530107475854678922457183486428849487061613652202132388063169496577964510109448954596276235107828042502297500804134646773990624685988419503762522500020560577621672069464482356782406298849673596100376714809273548313638579337163395339386179629439257577488764445726209942620609168021135021607285174902950371843409701379493808184639321147074427066385617777244312703237589643146730429232049715413127598758436642807064794821768416032729089780767720277500009547588497706267063896846819007008544019738597286583593365083570723350654570149396810755989834449157179680023851923944887840924269005456714212299902226407040592303902171585255354998193603514525469102562138708783415492462322556505063795030050059621126695671044938318432482136165501498401476017286343786697545184972035834317789081600080007087795170151868053352197321066128293669133793646822885854296683490570313425896407249679256522176976570222018692971260058896506335590149098563580063615843602630817079379843937925569579078792789030008185433826052456018031991100616324108054186696422472247070436705268652730324277153347140559432533129791982490650453843111888949744251947966802392402098427881921112698431696711890644223074124446528209986744611982748812315178906877028337392726071522345874558622598931455185734514670080910032052401772739464950922590664492519553675545878588033316621773361431598114408227429415951859010329851771915449620039715255196185711532731484197342098204848351761632774752126958287002802665335827326340602720259677582204340131196036682122538048718016325300003490853359551519956984302208430460620721600644022208617878996074954172234165238643833718569405470627213755995839865870985355959190470209907492459616258686440559074423690036847619993664686975076408905122954604374687934973533148761225062822272075122282038832715564476117344232202543027955892670703278063504822392919947728932802824029813990695679300034016480809592587678435525907020952996272624755593491204347103433901859464984132800479691320646206462599307537774322604955889903791634692098755131525515861630348425255090632123328215215849819044828767581451533561527488731740345986104043091696283011394227700358459578588877925218148369448240823077621390268029872914593710254819305762214826648470943045846628314781940383554946788961119385304074270458228732088675544299365142014076701301033192550976732107277553423452697200319763983927361331629194780750444478913250643633626318377167659262103432958255034205760804666155331236035305674891468918769162101225040015071027849373800154757898006398404310728760442781214282497787746450707093770268114686923702110644496789689115672306281827252194802483347800747429267797022056606966196577199870761455969948414101103710176499178984774201170601158227368334554329066874592281599343040318182325903185665468975937208555723932695765284867181693281336258040402716692248972171606103018973330051436407805983137574563867043661754390777825642955670635785206979795232213072446242054342126308330370033211282618573368808089075146628819619673611273810622830050192318865760000152230776473503823076765582131431856860389373653650944349320560648333856487040130120375888449502597372049407772833802458071681683175869722911909493510839835899257750893185555176904172260808460907030311833775737266187908193796421181899950574018696472385395284665624515297371076665743747596021831094271094336724457031574792248287298364578784974886861005235071173880431354653132635276755723511732709731580627852766426509895387835280429279566666711590976857528601117981218425734352254249093128884073590768978200407846897325337479018871265284492296321037684011097215755501026541179426420530955087792376868632436157212880122241624049958644467247517302712775008688230145002095846700350117480324529492302117557537050767020153158998024842183274636656497333686967183756259145141400986800461380034600753983308445016538060537086640037214453275760834797272012621242834341750306083958754635562985182766163369657638708176622353039346659009275475059080207142933923865932657774913736997414806106096637589869453242408242424123619344857675754935973698624933956816876791630927878422135828776798961837295783375058467342666702103681584497865543403486534692906660400797829330726145587443458462507220493970284758443542808178133289252470325655014157548951281675023983120199925956174513343040362286787196984829823882871268930989863762141943210549189443647375936195172909589555819366103196522551556973100949884915180881119169529285100058734018083428715931524278107030606309605314561377792411626054256977075523286545850368501410718405155819259008227003053231930531796240420039019544449564140028644088425851659486759681870645047903145202737313746304665472639959149545589285336550270616620180872771236966141737109608798999662196870187363546385574405573705719420124787290545209239568676933103617569194273047909139391801022592263822942251102323274602033756827473054128820726219707929286765673805694404451106248435912215226358935532611866736653375058187681059444047447939109747331778867349688139859060654104517108603741474726406027203112301951124067268824869100937726326908375573989016723624215486372671104390744110812265091683670695609638516613691597373265959973457232715768491668171866902966037212853846513092166300259276336072836542383467494578590858611438122836101368334838311423057396204468911883523940763093980647906186451039942544299271240317555994248023779848385501825990356803779069102006615778631392340967103590063465285071340603486136553512190689475793036133771966576792337564719465221753206985350638791985328742793799027495381952363108376851237292337769463924896420946546430278584503185014490853875643770627842028706133619486756550724206613063558575716965200097287938050353591484484512998781015581345320732440967489092934600718727629929530596449384482699370193044211332583617135455726374821978161576763168340931108552727870973109278510297596382875322608524936301109564051296641283087389915963167307790409069523400725370887174028797602411206199965195561019597604451378920017357822339314136122926908352528664952187041490393041844872618587318916828497300082735072836724704069972297553492619549107755730401684005624794989560874841600088195788200077263809354538559142368133246465846714453052856138062714285182676627054244856296794297084831967081973096642688994424213406790229838283186874427383134343235322025882505507099982802797940815011935040554359117869448441741865916472322245746086942602239283058565584067386781339344183758729793341727805321720178975004967618792831447158250529584572324917199500222237988386290472916387358360230540239457612254801100235197827252732744656912433647026752385362510150515176432637159700423081958413425734301619159097417510606805536193815492869803673097801146572631767405756762392611238118714073736768224292416721530661293220358160238718647704533396241934146199132560225617509075056422900637379722671921099968150793744401852520706877661795450998634473668900984182138524066539551943487098101053698364160028155442947047570592875949004291166283219187415502480913110070444412563173589612072210497415536871112846450780378782850522446104627372725301616081240410224569521627660142276242700458717326499671491697953740825225810968471678497356472775179501422475244181445890730614910035905446219870918648330289781944288131816901321315356085557723046636915216229117249004678483721048252252564878762958394733514651939182480447876005298049641245505010002423621207952457303038474888986400583651525375348002925610861818770305870934626720370154769080291427716602002895633484767660593641231682811967098254409805827898462359482504645889548820809368723505669004116174710746073061713913120788416503087408287534775687013982377705523473963215685409954502431020503315556679332305992686087228106333025662576327737168188028030830882468370600411126379998571606906795506843254225102962863347635980412055822694863328560941459366032032147913664714618637489338680725471154970642910115258245249171116481806502440150332376870908602096669081506410141403089417705553399642841232894335624592763895278779035697455656587279993602120722612223022293969014430807912676459106349665494986410825485974725495265847018621106965567421673574215832574391361575686066656765313268028902945052164051515828567355394542137874522798779692600158512782917888769829009307225054332682549471001491306049895439995736283376004742681598187201730721982438930123470856532241185599653147741190813029687015540162252085261020600352606596557582802055251411866405626451844938917642346850553336004657174247839769664066336092082091772947452537630001387816831204903625091742270791284848422839478158277475061612830730455133061813699897083593833058241598782544777246767514722245132303524288016804247894070855046653796452165967635169033334226925268330760765825185244053532642342020652537168379511303977285200657609513856105768726885188137106725610302241788806921962787394689165076777259592975055890456541041191861909533050816093168471755121762152674965265576301108550314640266562927516540257266019136289033411868510685557279049520231236649367692586803840518471201680022074506505485379161825000172736134161107716909086025704757622075698721230759729264031907432374694659932960796761393882700193311254337293129040212820105384292910699239920979761033493081323534098143201378836298945461291006025999744166955204823149214167591116280713007048700530838588644928756762821425381095504890369266158082660802648334854157387914731842513089201602095679995508317739466344500406376727362647114408595390601880822528342030412124118606510872397863671312340147242805316091098199618365856988298793107703134333442981141105514670722899524384772093022508853062008225114098963203534711542627452175354019069443050111492518089703012656346630886430469318363732629812418047007541718851746107651642459905013813249347089451312394286440018844709496656111084013886127993738925868985637783286597481542423115572579502916881378148992266204313440157569376589163576451075975147384733768361530841417935127314206060320103302569344901005038565841252722656523158788969629688744728278826189655483396982772200205563788376112411452697615397413647472684885561413985001037030017176799925434816333888617215819453846084664065743144793912091986684902649185151094533482381911144991107672909575219780798413103386439301786741185936911866651181141855103198122352559549648858417353464794005628252148582645008803309177970685612832798696154513078009349364587623138855540009117731256107654267677611392825068812587066656920976446545320334897482764942872367595620915633433690369860313397174838480742975599908282942633159453578938314189256022617455696507359529666702363930043230596095270725359052472901190277570510211651220753452180972435559579959829743091148132946212121631759324156287881652756571271872207030740339729990437212744562438603838090255616942221576029287515220986156887454460792450459849915981407465182271099540089805154033731792650978533436141021444682954280330224293179571562719296635177133624623439936413677868835553924223801239863234889032249798394312282020980153291637251614962199937821645328550209000260090603289533231113872399675150715276794872399926844296762391450855062750484713587437513425760728382621892363032354624869972086481227092270670413363768333440572117732363730424567125528884991638899457140282113991592701383449754668541096390764933706397905239934311752874518276731566511144631055016869761078948764151637524243138948533928517055327442594040311232384876309392302823962199190148537365908843606003982369810386060647103611631106397995986017405775752700464041923931003676425809188997099442719165081682689665368801013387935388211742404468896302149452661127199845811883786081003328796318826737204638103797683684541961550807643566904102863747619064392090668602769562118531146715115219071350254825261303471259634172666360046985230624865150944019104892957993740799478858721979373873316296265185034143440654523019370379572459707635424027331362882276718714615216069102664195076865304379610158178816105549919402350728173818313581896667206275876012823375742229326751432331037739224279783982831773381673226446993650147203537157216666544879849326031387772618465627126570145066363860174882406944029225013129269735667321594607720619290892204580366404728648431599910806107157147887342374731675919178759093424089451119248844586746225406884774388266439215743911131003336856151899847287124903373423907192778184597811023473402530685379945495075134302504582885648148251198249773341042484209828311309936422897607772603900586362306712734090119152257760643947086165786503706479776131814450364474054913302590169230594366122618033839262686102556215452035991495826232188221178661685432317490157093205424315328495203495871602942739313428675390434334235651754436450323642083123705458533439941093147635271068435761059395456581625915666997400724266186584476791731700390415480048528868688159834412331892925685869294187244639136025515170436392967945218091821795873883859635206374037046858678309671422702846265276383036595486963399742598785381191784921080156726490106049616816456960173652917294698387118752946192534448151207646268064268794351339405061879715714801119674842390405158447901455284336505660431793996185059719259843382438589922521017565812873009921426378955042430134084202088204582444563365381991042077015679018515254340015871404784227894017712682773392760093063075203358878515862267523138296910656567548745458728545831352246815955535957992300119744985996494784865094746400514032125492271012777247486120380306291048290767116508141424019252002143515681409097153728818687799123825491468154640830814407368742264584220616774471585203723748414221899761394564984092249209398644160868391295983675082337546974205938915852782418429941677776968625958064825120904104939305650575946437244804877417489104796016403733897134367807456580334055027567124753363855568328126163696477510863314582202000952223837009342416001240111665169615234243007009903418429798727354932708502923923498210157327085066843542163904269368797078013199385143694126772935844945931801676975137592946556724146814349431802701296700759731832879478909662732168049578812290063625955114932345384544692997982886560658706959152274487330596822797199499837052823560745943888886851159807099251881932454336998833008044980957592098068605795524725744824019577864270100386416386863689072294322465951589423717490754418172455782362387701304807230713056381239609644069015872091720703588101690619382995914770698313607116954779283010037152505249124414154328822489125583853753750599688549619280469403818240110398484557902832062703227069448036540617197698592116279738947948982179630241192062629947707125913459967130327743685171488974576250055447811200440413008601219416890705460587744148842367440305071619624756881873346108903237093385579476779035436630910761971582778410594932911707111730972521772842853265313778163075478182599667095278509595922498982928861067769733597898682044566550269037714156349498883982502536906883261206590086846768995276096449816258649354591542954645153972832895509380787130172203606007002828017885595369448230473356033486161311200312623830099206347286513165355162315010892501770163632882678108702547615697209414543225512092928946825825634824534841165757027525154810205680251082099051697430375342716235147153959482149420666183934564488135181876381598637118714574709783344179775252501636950912985587606599449293455716101700197362134704471818877594673912362320713647213542719606817114492186340956540786744167367501439259001609521905887051834296425547450506217718749475629060189798671134959058128805326978626561917575164317163193507766883178320977705444959594013532867906642108220059499251273355251151653613848154566459654935757365200145288645282153817280492936233790603389706988701544593190844327018573102728905788275220167250383864954747177599370946587630158519487644325063932169765435887688327848679252808572546244902773832019808617219079020832687035797468614477195481679475496711973326429352499378881041744263885155589066198520381819011630817551370600196268133922187435562633115074952409634259607290922156298595344251291743664133737037724095822187499347225094390832847949282805616233982905153596344920933836693080960087391950834871071733500288962181510353334189849325681082472722786761363076447226340388581136452158228346850409193966174667352418983185642018544500924644776798907886292372282347603981441079764461396459829106253883856049582450689397132914529387883971450871769403757554125517725372894335598995398576826786373185248727507456707191567681807652470757721323880257498882262279347394800997828716485020759827110053411539037652685985561144883173250077740771172194761164615447341834698944624984591386628701918289650332507591873633784536469276702182149736984739354808279975795048176025492731701908855101820152340933392721616324494605057318895396654866977372382523651274194523779863998395688244998553769019830088629301059258110750830691360816258573379444510129908204072860518837779310969910045484334813905871562732358261031953775324961859855949746267187450310050378577975960645918916512535588071020347677548164088345328260662204842525391860551107611710581428608368808453088334857277110227026355836904363878033906711208426537743007725912296624511106330372194983611162428861756077832796088545974117216297367178893839442352500815219296930154309105851271926864976873869410099315757718376801498034673937858592209120091143582172659502140485207083996163238019114841200467054282801044363568810310600337093000799922811496774683566565546093548429869580184504923039981682227360638698151962767541088139244256980352902841150117717144179378564311305250960456096845388427934233482573512385168162424113796604720692052053254037959870429478010899436918568235233996154676121392232238956307992882420281426959362273962869514975470244036759255498778481402514877077845439623430769431982915947943616841536533425615734591740319867406690481679283995317519565823190978967299574019168028499852026530374835901502133791475138437186691045509990287827537587213339027548732294887419720389352329012556054059632623730389450908436893637880923510319961962418515024396622041404103550979369345739795381302181199017241837918961560520901025399409209949470628463537333794600726243296497583707636883007334373166595392980220107712158073265977245317133261855561181081609028463422585872999430952764205753263570275389605460295607185792176459836891334786157039246768234458162501989058999872744113247477668061973318989860999162792218810184949537495829215833753593895961735585594930463852909933476127109282633205636482658810390067917592964637853559374327358043296363677848721103522976824693869682476051168401542746320996378353904902257957240678998270140812505471442504364507702926493968818987471623405955093480128469604804150477422088086229927520355549989840273824257583939357897018604977159055745138350204554115889926001108728397688109165671458555878373741504182759111516212002487996362945804345251510464814053368648711057650817899177824295582909932194718102929112141274190394706610879093893380304742721756781208776730142182442119577635503187113937261833927995719434786366820842086724929469133748456596346357785095947696794950727568175502774327773872921026212554550612438024456777988371490833671486214736454171347296000590090745705384691770049752013414225002330552481156822407782740431531443163275859900001811509208214381655886883980550915929461024110739839090086913514977134937832364892217989165745107012612161236997384711677341292284935052651471575044013361555746741823337015359127175583031898786585427699392439840695789761757595418022805421359965622614053417348305276380665944269922371247337171538957618641682724758690150447046458901066535003778868195840863643605460503115533874772295545842939351989134831667443461590110438748742422955798608528206293259311235365570248321984072354850220471100607468950364080957455102659757415705284553497298858570558900110814970663539013350455849701957541579746633638529227115357347961759705598575977964351588254174354138455261406907435544542904706223737830253877295535855122928997331798077559210620677298255305536406262004250293698414829260528617346961153070285342026038241677236845662217779600061255010973545023165617437986694172248457381894326164295357409590501134384905269046814452074940677746653353502864592609256868970664705125116683865186330159463477122291788296678652966183760461932142649992041443330072965600426753675508591820207565116143340129103146248079370651043990091241385275924106542070190450540635890891739233447736995018193985346887154624058454311922628996251797079299714583501380379428615681630816826130182066478524588625374001430392179088087467252621751592590752330129936777027263079700401197945977115554385437245487283144258407440105538020775602238738249479337194800041527895622229781606561117528929445485567848792329594761297624350926529231071822431219193301717861403254503148807376066647166588100522264227816259932033457903573062370805789839182097111331882910365031843967970714542458995954781184583630976228243712564818305682910245800110258198605399152875534564932593088312586223353359084152986674201910269308707052540539246716790661842505489028577875880885961678604411150233603106428024155877233911660162654791960112366778270118316741956453381238573223173364925767227254807565630954908507180404486225612820257448584184128840335630322404334967062572409101543425388697105480583870190199428512929556393817460556904464194246377849902274904003068196537002718468975032237242193250448501317178266530927598766142441229686073851878091268742662932549600916086660030775858745788492755955208354895430153942335974583451172519373403437011802117293811424405851425955051971417120765519946711761581082353337271511078350629421758716903503735358077238238263640349888589429148519792273585061057822869138317848041352509406314172559634742079897098191952895767529682825762704594004868085927265619498524935320097739145290244526448053787289249823587092824226917975476074392810696383714106697720335544598754061889270264029075772579492946016408020973493091726624302708559572926074029031034468826999497157528308441880971187546463779634557325912444136972247748835945503652653331111896749476235072736249512364058444820222573755932850909231671986389383861933201739730498091830992010988936327171190409333606474909973924943051206079672714208829808766044772942424162745265190922337377849727372961444936199167599370870082202635221785045504342580494218065075295857094774281802241891626332599476212287699175515698472660424860152186990783497847076946097451488547788919886858920901303492785251952334084600520705157400837236859193236588771074392615377372163562230393369529451762379479834402234047245621511205310226938803526381168243469043156669239581706379970491542215776184494270807016997170309225889713197970125475897731835287327232307245534971806315321378150879839297052966305780123638057063548506024695897317415017141405109685640600971933733613309921780404232972099336894627078137324104287239315831581753416199825054787130968890814469051396355301903187470417638830362610868966252739281021940939746155792314411971113046481802543090974115495968519654500033769716197146565738017894669870819993414843344875642288750727375821475241442465184182673112661714781379687916101064146725658384532851032924147903159871642322236068015021213051661697535130381335854804817936394069152803575722699385468390148344062721645007019536006757876155416002970305687484634007991775589074789908898545777447287787849465293995112841467840700148747491792469282707617177351268208929429982604893539809069440445313038804284922974040976094617650591850298882296075188170566501262802857478323368588995622011693393323871813751050950013079616412826683966919832902454266645290269953849095283432408950104843644834577144913023651072914986007042209634376103095696779880734446201294933201917198344596419590059789473760267582854544161834836625946311105409225040229013135706130176436792051025814949928310109764550732913955877350916947263233148135015427084125964627810149779979037296010354099792775696975754339697578976257603336821744613858077307759468923803684389166190003905207315118787180603226911092123508179208110648624588658110720810984457507579832338932219331765646415641848357687876042527462585208786395761918592302402911412512495008735032552820526487136605598338557430030921186384973333876922912975174273225510771313925679345004069877779333194071717242046512881161677640235798820377438797289965200571645939635557827630058200944492179605251894602188169261365880865211822014260992851472014442510233513706488865165851234735630962843964301596025200031492784103333337678813243921084985393731463453601304998595537694516304271896830566689611995020158575624409459474728829528303912315197576994746855340808786602020586787057560968982467776237589920814187961743551349845380649785258270419263131739754890560504486766694476147339060462061971392473794229255088727118684903583881599582908970015806247187835153378723389251557331900139444984897516665434714711564026824126414462942413830665409861265370886135098234817260588013651548408929531518209574795641015489767243917793740487849469011993211483208784049444161944675943279542514365007939055294132924782375701473920553815958655879437512926977805897932488108182364707621326007735455531950836223143063485041866272545303682949755708174539419600654947987852159751452024172531586806447861739751151274249938827289806979095279824873276660822075488923814563636325518689734959421069862268475815083125206320070203050813824893546732694202801720786671983881594067982192850004958638503326211431807280164574525246927030740247582270171543330895079322474052954168900523382274428242240208188966970467211881050711337372571840254198536165453550801344973054255528622674042455469262843951038409136845105343436594132393112015199824531573684935052274664707211230701004808457733431522940603011926242023614227842124845110101668641417748509573892613803978704457378601190418669506948701739960402510009476294978463287367256828765161664831083061905815718530001398054851891002985531333403057245836927149147466037626716679479233155919360635360037885441852486343118167444748624321858259439360249617629213235231339221704360604000855625539115011067199721098989247155793566828248668290616254580560843263693442395497928181286912236797720408272530276734652579287795127242847123631505872012708333948239959678463537269863577257739057711127898340096683631559976936849105277260651971065696415968186353486580913668859262374370276487139020586543367772194812833068371881770786479324342949707750362678037923597927394891063336658696339376003040371816880525716947679717194639574888138773616480820748934683880417478278370465433673575294793535480109135120942492567928431049310590436684105090187868323959163382452005253586182902682624378820931880898617348612753724456095955031286206985478141301754962260305898354495674621129629115970658593062579199053200829824053109505655183224775005155900761130385607383865965143200064731122421579678053348685642820701141368145261265297202523189986919588423518166414431568149742441601090965800964899636722205753711945853284200463546115177431370617265774197169665746457450145692879030969180546192814777472380210466311620369828947795778488522380881379581761556152182260547453527317645327344097575493556879232397816852411171617837409336114633434032624759602547551020445057430230874904594505621979222060091471376827078803190731507478817739992847753784883278142400011088072101724749762697949149301449592943210996738731942134000134305274765851412181876617446570224295762257148316432918751712808824621739020418694840502533424762778646553795412835129597406745113161224670920759638788417821014314716232784500175494092595954296064378265079341849918683601850931361312316940484453923059802484974821317383890669935962700684662292845024616597697783577780389843742769146396424665670382701751629561855454217307883862741044090240006179701036813259400422576810717985493010177900984225686932330971211434795259563966140895089018506309083167858191810249683165709163101687981880991650640121430222609864249072252432476349860733621513361309667271120217104070724622322466324635030979721725118008980571655737552711919119428574763788576332704472821050439548545626503374129895691017397733706837587492749769043955488662523102416341792055740023586796747310162425742300353746044081598929719176629504142535898467930245887559406813995925821450563488292421643995850063338036820025231039134101783630045420306269198325392393801875129359014670546285862994257578494711478700950893322398462636369834060532537085405269846213306366504782854237734200206825329423975608368690045718217250394195643017039876682512775892745180650510283035159868678636507025732101436766947156952675126824947323254555287248422341471437752752109044855011628566433885714208591201803341352979830172636399733940289412510234031066091474851053754745357275803220869598678534716910375100172427651200265195835712264389732185795307634586997113858884345388880699647168720501576539499986633994528035146987166177812416621325537387594448022621471621581065412230832569822619657366617669366480496009878665002295663173561048550036480715882291337875144827796048393326881799779350132791478220515477958704890404716401029822197175566412623351959040391619074538129842682573322331510575661560141893231252622515672904826114454230430677741243553882092021125413237281895296794389130060160776325077177273725024534312177214748359575427632061091746272924128092935271226366322406627615204835593592437504572801564482553405811710127465912672758357456574148132551805546819123170088351577709722370581173883663756093285414364209697327164990867795357088110999158450799304817422946544201252917033637511813304847989708650903664648112351783070892498070598823114184837031536054122144005143983968686669830503398607202420159912614714495635989386590719825291450647605808827111980708422274867373407626222829029180442068667260996758750674756887973750638798569847051231117732480362066233675280622504878866618764159437981692402817240088330476020153046311462203428249451659139769423110305046724897811461647220995381330412179187898830639273349356427057953485556514143650529699442181936722080712713507123814312831069020980360636166446901275271018443201940079717985475211644323412298805663973352015471484271829427497686658903681020831055212740791870459910214965139319878836564578914956015628192626017040321122101235469171356259624836850683593204144928303167863991968488636174697249829690891478668303771613494710977627754295874584398769714803638024397988525420077570084170809331375460219117390703427343049299389588973921736895552294423557387057633613705560368757927057646029559123785073107063125374183462214855240844376861299275101762699620271245792466802490862374849711267601379393585603545736705829733307810469518637724700345470516957831163301331852400344043480196601360147473286786256707827804181795537669839994671804818142331410598811282921659218697213998610158087887256774267643590600978834027096930830793629681605050814990358997855368908457825893958503484120392478825601118417404400577314354480648562607948145949086291424247821374126899238111862515147832839470701439373114900206864061950507769314365736527288317506891016234910121072840578883630520856323684935640139717904852049571691357750994967021241996196002966321575121216357192144963791605890820986866107008704728834345894841105929953674223989636678986483245839902576635357751180723155844449681696045021219658983045360179993411895672831855911034055605423856041241415241330237683150109247909399753889911603798074252087350254370951174515144283893523672542449381843437838192800963549574624886699754362523449091793641145491928185206075517449882099540253749266317654124186272222364815121665902344084019804536950469291405790703475202959377010648518475164470764618803829534278298914162920166772687678641393255542128610576951971450344673091539037311718676483324461157527265480350592051271785754838830817160817256978965130188349110502104432530631611791371095293287806476597869326968181359665371573642223604248809870380637592367748971007195656471687229423798843192374489153768715857787087935640754517720324228766123361395007341542866598236795653895945332963533336501984609190738356832947828428290630980886742502927280263200457493436268611572480004947803732035830075564515950343910212724975833099320214491960295204590848008239830075228883682498804757250793708978085408589717199430622448680168008771086545252094601604381870197180707301229047893918261696896344642397159056004522007647820053661688273971560383730414373540623011506554957622604571719878986900438267956288888591847370538442414401753116021333673880231723974640219500567030229511990647747285853071779143738892000622911941654332693529106653600039960959382702003307528435673545316319146719472555122971403116875793534054319510580021334104353736402158057007336722987734951099417159276511148052905455295060739099012518427509562985249186684063079795807322542613809307018401113595751887867450048996532175810187296200990185587276554748442334666064277289867178190589769822075817234814442669048080122846024906570642590876264293746575511004499290079558767707621601602609184291139380743555885800123997810763534632162062365059406869905532933474819098201989846383248461944022039474830705158949219010065730463125076041992263842935770814217165381290347059496039479898687043458674799529920472978100664624686755416359028403703763328040736460756130760473582912900887497975212548244985057296867256762713016653750495038971262784092905042837200462716383652822350731832992909277217156776777504459866134447992732890846367528202975198715218137716815722385577073451381052662207063947927994870309296742600381314521080904299226113750514089869459284368785074465191802441458771206772976936343068424091786696509698456354063251461218320362597656020321633602415752951272477264885956796372203828833251057781330098387365769642589285805966931914886091257630112626283930801744416176485621927144159715663947352184493840832094149749421335544529640561608639372832061467944665677323748009633386162611409866067387379703605967796011585988836069794391466713856731105131313726882145728036150623841101271159688722401329981872492354086682376795246620771204321345952056209777423478671147394414644426544637045949150917919255578844715174954518085191469496967154239257135666828200993682635009908492133946602754378649247696080384493501056671289168960164516734781240770308689611242752746398954761816275486564736185373470612846231746074129154741731574703928118274208390889926709057412893741814586302180439644352913225562446504680909937783484996674127794419400429517565799570183175538001049970995800538851129806053136408129030466094332428253253864551106055243112359443517344625990327550574255008401594753809367277285928922284553450512677033520076424716988604154623671113107308815931714407460222530997115741941639017707918218845759002352837879349951502000708824827271281663429611125250436132632430446261461011258017217653385433174128138682500192871251739573343148504620616121985704155761492795138161300222220328403781890522745972853147815164648860299651142628163723137744226452871693704997881004166563820953819590838832707417502989581111201755076603270005604870427499533229139450286398430802186135211333431664042480631246805615554788450488639783434915861259822437039563358370475051752751556246884887129257525685359879865763264002547800002716447732180953150001382711315404117136162607478005305607619975592788162229687149952304840035590390974397670752670545414916811203463168118422657146585834432318801849005660342795688227108884539157093327843194219880830882034470311973244126117974315043697643187383176342454966997768974341063094619554663781793341141709117655993504428527167140453925343571849654252633059829905928073268692181925131062766762112485785774248378025532975702146407586034433967606792268867479594597504000126416367683214368066011296297813026264859597159304723890332958572868564280246590592325643752499714852931510157545774897396403651316523980926738782541233949346148386427313710750984366055752541661110617819307502585482848277688535115641055014316988904856706019592635149821003969603568559834774210239211743531103448099758248023430733703900814314097645658943405234759518983860195764330166517763208534652897838831832292120480200467225128774420995239978430736960906953048467969644036586058202115647405951312478817293621207990928752279315650868821784963708701839004700787817804370752670612556619693815419582061573523385586017490108450798989549067725877524977633699933674561994833251419014619556200630214772535282608073483372226594339487025926842571958747024009512989740398085224160768306197193413292893026335163847559735245643362284107533649456021080541812736881609365487781092996500254509103239313455636355812289666478438582713934816668941086746163728396697687171746827334332280899136475025596370636205536628649388138060636185351736211786403766835092739805373581225378906534427515869049547117363355793097807293767777502768179703996252183477187070732146206421954831243260088281386378223071336961691431195459789085217722496841384091737449395210776402340472208257282812991637242254215219713024132048449020261140103983074333317631109628572017968895986794586985446783728911393454061113210727417435892074240805931489192465552906661300473231399484724950948605069194113476555101072857639308271796239824132716864935913309488979574291504277468907955698086761790148042589325139899615349797328659254535138445081508674026454417726541865731622273640865481786858135057346551299166526396702719597521587682018142550253182257196762860901053425946637819108756672770614377238348386327181290470758106913762923944766307521504076585828343501838591830651196698067486492836561406234084754222534551083974142580767449195334016661228176761370124444383514985710542436123601464509341391791451133698285102663589051119185679137279459964287773778265092649950587238652896018649935259127879353533075959783710509056619515613107971444651399391393502625288314680166160729686376692083540637402741611010491182636409365481092968916731489260213588010892522329360749283537322430137355555747990339177001422387778785512184547911249671416197965436600845839088356875989711604410002179566122105984704588993104272424337741809651634234245506313835714408489725050473574576287451806251008496529569970624512137288380486783643128271324188286189373805182760512840515294961018384516638813113867524822419412033083413622057127672820660485853386916168959656256674395663368927128995241180269751241787494283686574980550274171977105496140218117252242607288710685022707166112195107782262957452883177048665434356425677696254649424359161297520137807569863713330505759860838731006863530226164360110165205484522093598046483335712024242645554790368645572872932029869625331757628447646181844593118482642954203161129324266008388494653236952351514925819679031560529391273382974489794340964112716600873839124412137479495285914771640546491114566721185517958296176252173438218449556199806118602719093367661723531437785296781262958627479679272955637123152326038592428627375261779699875843585199462973630900252858607284596332461180566276037673263551887085670413202660337154997713831751797345573938672000176609686272373287848792723160007132977463826552085224014819845577089018103812731032898372449560297818713482705487402631635254230718440295608407548194149782160452840276485656774727976005156855151484462302959505967901249418367524245980128510908746349899907902838425392050382014766786357300058973304118240570911417451380782694560671825029411811246473502970501705044702380000865163599660977103294811051678646449205119614511933588404026157973774073441980080369833272227918417344602411718249190851104089750247467009777282437462206534318351415130344523769088745884347004345331406287799763743398571849916051448671815383414014866100152370355897722999752784658730255509589577120857982266791903636925342516405106463075236113161872972411641015493014218719783390649603435158576973730337485156095439989822757926965081764884779135748521525745962068920576451088679968533491662209332178871324887946617702820833494235839787477248362830439853013202666958124677580342070157673455091968265902368804855115792844135846900532437633253012440717623129390990881468158749917019684891004531197316308539617035410921908202596873042960971904439782691541913627492077644055082887441997914287593553781869252496106409192079649173327280540884703655561781589270175519027203457164235674827039181988660557882240195399867361681949927759679367419142052791922046340580177518589683047134493825153551207767876081419194238378746875046089873848090033137542887779786169236845494780001549505409103006917016819981643821573821493121362999145041063271090100259583612683121232192779876135459271560831750418654743908220296917461359568870880334643601804431724015622382556179558699539352646942242457416144273125251266252150335428964073831484424389761487975575011447571297946519213750487514531630162152821180344508543444648951741741625999311196342848486161105966690166202492807131342780492731216148391136979538005279724239798447832701093135237216943046557612611113133449303738431336110461723333723539899096387088757481580709759934347798746934650061748493649689634686106824198711061139010490566468001056686810163358843722487636355111354633125906674445581338508363711385064838961148375892730597906587374776688847221253801563468669401587559348910786235797370394841584835854873955546233594248727158478202464819329242560174173613370589853389950835744623499977993344301251172554385821820666985361061249994542600421151244321368692931795703167325159667672398479849226171788564846076263297613978179689916463091648526250371221451801102981372465221361125701121447226454857615059879706412190858040574290146388821764238932477798845477438880483001155681201702239068631207154326218987318649867951006935435325145954119858257963531446601894034332088870800013429628070077782679042212758692318416872921437061917805230974577473321959118515449413799371303041731485603711037269315873104619825568665570145823323679747637996132256947970762542260719113845227156832331723715899489155728842484274212644172953180318095456946710670039625903293624637707503246206895563249047732256415795743478973714911825941730589657253530777267512759775129921096926005483955666676231811299784387779572883688119647969404382566855185526844661761813096941868581136118509252931505292694477261186580808170993506186872773350088427841304997306977947608120342540704023772863964806216505668409709978533092272583861490269129953685387282832913489456791007025307663990728601938289815656333302556273873551635023111562185545630955000217247218795067973578312222375125031187067894096497256804064353037476989888336044604849163665633277838875833474797022920348769269412688992880428630882112694420568886648683940603689551981720873593639716028973222280678789111661278578170925007496106420560036153610492022841539360801317890684800625179611504584590472462427580685039749754196336878597633623378976336478278678041038654755379049284641638138171280249322661617313381090698183478725952823094339351251917573766733732144265767163968754551719333462706861516464962346892442781884441340476020704603056991974268073128786230918955159676717715568971775903346894035343547820226303485059202074819897495142981580965633186381073222319160795103536554555424352991642939631993716833317866733706510969029381795186218928253748948937880667546457423763095355577409308675177107737240502777928555441328788994772330183639850411928206547312366134860015656443684207470889676540041467120057192616310587320620409310199982239760105661811911820694710918400875249272066292729112019538159182199150729035180179607346996169722418229869480878343174491232714263119962372814913696869980091776147553282290417159828862180153968266780061557919966566854311319340375997319481549573229151335711190423565896257985148250890058388636604582976502360842990355577694441405923521956688076461587425912524586597833825475838706251278927928170745250539725409289044895576130778863956340162955240288244185135951486421563829093524835108596306697118516972080053461572984216964829094975642386118679064398866093667375447648725981999401166815476949051188292133543276486377925751504328745016900386794189097210021823563669936584369757244393360666449860311011709815131561757434322710867803146141902843709272142734266332587748900276204701706334648642230181437729244407558184459314035525300739201174269202218835649631838720054723242976575209549060525168582983727159759187062965896246868333491015701774453491274713814266327817648757243527830976368016245235078861295367298551991198992036207479312801747479493332376630537971843090585592432594746880645535535646888243310127509559337761643831034263960952171444056872651132191932618824624291826189953601518351601781048413099641162748050887772285835763692890641209240327395508546051204623614437913529073657850889443945146608808193707900062711313181561086622097954683151569472391856741424262294545269782212600811154779756146652601126394231591622827917392932834222293567012500318898758282412841769484351106129216052762128908192132305010916134749500187768758952560465405203927463633424099837417468629194608650561929019470972132627208398204922510225578382516378618136743353216297164381362990872467407937094755487625177712704889743416387782024786950273707132285765450402656016370175472049843550161816644672402010763187860602439650017099314346016879353291750332007861308011642387759970994976308603878951609930163760621244704345108609268300066165295961911022274507540203356673824591179598165697418543837085690750982193696156441442905027406808263281666962928155448554506689354678107902422304352923627459158213014926745359760525510114203359301656851140336573818237037255810409743996870584498105296103760606238018834171725205635431391170566235330339781349194337152387771666430328315467527449704564200324643863429050242535219710302482472432758105807718890312881185089154840128463358135112411364761329400685938189816012860596936401053858646406548503063433084232906030089628281094859541593919123899029902461134478299242821621675721557674458426477195560779756635289364168715846147267642316181831091944272700818727517181035244121948783115658970458734427345562054975479484038604930832926240437947068842459298504136156558036125387754727074268444290259865237895038548142585409454925185619692684454770802886971104205948577804312336402874415090249807214705018873919331546447399398240197545925179301162945126012196375445421637210674048779126815680140050520872816092761611470084603889894853290149929259603009220143908981895761558992669630086130083308242482010942129394511572861788595808534030766641737105506247171976717081041210855189176091349477421804314828624555284449725628792912840668601097562019897484339765756448655908877155283241503546960650742600800471112740348617649237669244954246433102764918420898347097629674647729975618175687392694282190369146699507439528204382255011776914195632887189620581470269403541133453426777046617011837578298143769495439384090170042770751562393313808992589245471100952025659000961827211767159268549018205699630605918868749028224455797964353623805355122628507202218427087204505351721269982024194510710285792242705690109797024461521889544923128579223725207821829090521045414963077018253280464006639434701418738931005311496677259915761056080515723166040570210246176988752173426050356267791179673724346296719371797330887526029024371964119920636622707137278912498167938316349264646109513007386193775764224607055323203110457829210205643488034062163375238606075742121812329700760242741346856658148093556155076288656347165576189557769760856123577939497503787372121290675485601936717739301867470524715119198610510790059266447647069511302098119571783295388967160573591965265058374094258323353322340141764911528657157632251192459981724015133435019455009238913867470006116428170830725579754477678887577215823806272838241290214169497693660110924871646357953144629040573515095950979456730342166366279096565193434352772880352002403356259864643334425656842117576963867091420655823473898567232556862330157318447229467181816161123061795490268385421601056004910818713836508501030299716248242709400667929983749555766885544675614307397888916515832826883915426980569499226393288088713890213193885075687110210958208662457856196113685615091552892478003063186940243902317707961342161857729110487209415953217533337935227235036295523435010717552678524060438898751855974619025688409220744695504591314319311013604165685984806410462584770873586042537630137844377680002560796156905530354371861781318593178865946007535444323525457932800573634358716927290225762134653333231145814640060634492289415033915359391910653374197734266178979093304154151518943370578036522287672044860881194599571459774587707985229107517074042461360918728105579561332373348441015013100884209953863324804681386794258969872035040545594830081578466790732976958881557619836488262939391450430706188112083950650943983260366025293202180975515063899183384956400696762940468544654287219378082061939305585336975456112833855732753317931303762786867286736886063374082032723358862876294913342093510824660496535338949523098839911478089714349582995141518336610559426733575494282984832299993313874898130559521593508262387506198291582025053881419223237954488513393760734901058499044483979987858508842770300034501219236112586499343304287561160681247131871368982128137147385031418705441556804549702453251663931773501715901208803264595391636090631617804615841025546476195648707237946334682234625510788846001903873014296182242915921418255772611453120464143847230493883841785597616613165865762088153225948585862418083454245361176173076881327857098909003613223674206956339539277461035581729063826483540957062667462939707226452712542864546911061157815399309905262377177533202973971302999824724662234413576775511641406345528628917734002814524974963119533778979503997289999872640482156628682511528086793873224041333106241657903145924968988741425870673832200648077897464292369170121745841028463304621773038543228155456414542357217492384614225987613603551235113594223597796272468238831355429125179344128073531101346261731276107351509912312023322174379442208740894744558977369148404000392290894985359463614360512291806016851579090619602754618964729854445008031208895163793070829106195231315626028162309403953289210395705576302462851226243786773490827981969157818892504744218956278383238559166111239029893818463074213919485839975115138369212144656952527607585015384240624063165809757379802141972090512739333122024091061695117620500221419975559661517099807752952682060881271552626772308859147282976075212672514075891658033996830725825999013523669223724481878536378706240960211391547580717950553287672928844468238651211384547032069602509480608267353937322764181035188975083535338035585301192108722898393667819364749066473948393347417506781778142447617698545774644085469527941089176978601431710534325889220480946862538860085291208084685641527532100356118628640514700661105159075421298771426556979495478515445102576009653586449768121656336623280437556586791342269666147707863592996757243604614163948617834081563193085692146594529124697292114674326441335464203252659140636418718850831390167019074039850096410662165783039416903794462259289916799011085039084301732945907016474447761608278094937617325898247912433528767010745278583378840958292877012086729695576657192617501270594873359791208142282855931142904109812920629871969034882248485004013175622482384390906426057579898862073978699050297594946588054168600135433132080273627628013457032972519101152899562414390715501475063580640557347120949819985893285975614530735963316198388971127365654784689539915609004868950445705291725644000769945839208560406259972022032685463518674617819178950110920487331003638014919864847263943316885855996258030697694605728438268701398254777168062098162192089319043225418520607680763209839922410218715831472874195863493768189335578709117328325430362341749910643564115969743708826468694374650918722433781878130830784448143515118217376646777956954677957085387399481707935773367916249470734121860838659539053726197058074902448617341698501710583723234445397633999026173486248310694166182002220060698801900791965436582773032089551423386642970576375507826527033422363475103715265269431109486438184263996492883517033620410906534966095092560985086521056294260613865883786662396739022210643541815167106231349053109592692775231444005129511975410788132596559281785334150480265254781795718667819210012478871284436774957163834271457728762334107822872858588595519243199145403603702934495834328876636790253238907765086473767472557522129271713006812842257995475887051790710174171569583177075527606283047772592177390916642815426515383565644355930158295110202772387560702895498538558014006044301917794810137184687174675489042251129720716936236262485713065541096214705956037104966871611299730771190767305726686392793620326914593931551796975781664029589575394046449285132336686897699238889423759472837980245123226330090983947382399141110846944340880090920096913869543848300817210580132099622719099925400495386201550700018919972871360048508481757033866353126066497128860506182717099749631766165005715051716762645415188614779235757802651216711562068835044188576390480058383725595784005478731075796324106945124271143271136728509392259827630381712599202032906399075930649109262252597111027418101973760891511078185732360508293413028898287716918607465456660775284237968948010075115093069904872890130755983133251643060999383653151461083802218567241616738114673096075214732247958618901821959005425668387003246278870147886263828268114508103502586882660815519498540851500973421347346359683623252836031375089620764381756031184722688287288888056222785206722248389146917883146767285796625033577165967681105005180111221773445350049827790432467650683439237522942349380769477131328493545045308939217635147650284000708935429639483666972461969081391940248049699584682547965983976119145926424609205922323363984326467326063804312352519600152059320797026601837849303870095627710042423893354108705989131365461906930538159537335950941148841954637202328256423245592863798975224734230862525386152318837506424206899899030600980335601512481552820098708008956460420283691821418528613299764008576044786917516663021707100738080187757715668988185628921202110182840742027583470516018395168302881904798101473251624061857668769818900950782478818130896310371032072731263803866079436186395134212061040046666504398603309654535625110810538248893632489754537546291541422411676751619577319175745241599234507464213427877468928986287862098701202973065069370304360392341332472578625091010024983661376994847169199094999496453124217277410971316710308377420553750538412807998238332690860259063617489666799752776801368229952865940094502557193298907954564295232326578799793699805625966721747921324787871506090299816283078337275995243224865786861777471076674790437882164755687990777182274398950670866470699795853625259749786671202564471553749032050631755640459465822455898612340765580655313823435668111485859197893020845840193969653696499452722612398356671589086389480673311809800915969479767574592132400872357753163351633927294700340806201396791373974205200134698426024042946365829323517126791152154749622096033197218630249546360505803096147291188274847097781349044253703551885609751550347077511444859427996985500029887457910290655895814376215146592665113818383654714849130582398243332317435117131643629842719749829845746591585780770667251087174497158047219904025070772433231052501220724048874972494431442630942799100695131686492027518613119137230685630678747496471782517808661748128576072507931390891797296822139419599341025077619570312657827495112838016332008757775488844504967383644557395906830855711123753621812331463675093552547120476003815560487486852863197725643117392923550030369845935749985779768368444826429741571877778151138263131020997475964331919960589024679061183535652617122237952062876009183062577688512147722823355284289468035624792977161361379863266406601961050716253085233452867573511875828307830379752455837917539170861553247912145526061784895955299707011720751945674887559794103911667785380160539021925341010483524864608128073598764132249012208358260389367907802952690811205189861838903495328671291681653113770595047651295918822665875261886708332634980431696455790415940628693405486297564872288669239916507019583986357929016013328489226388091646987413882155952678135285249898654516014906003634984725724985060994645247438339529291367083851567024024491299185349408405029590571954833924015294725317905837135497232919828142072029202094711196891596398809280956900419573405285305744309428923560599973624806271066128372556244823698014969238887471402605694992029508538202899106882987877923535784169650399575831082200040472580040895440948362565489727216810757793548548641707864823657923696541115666233270706556854727414696743119125935685597620402493053199762608843648994108841842206771699962678844574444474023189342398946849121357020958404263312922027807354393563982989142057258403396863548411308189154169200817856510158637744992173804215040469943564661864514643004540845795893420149752020455972381607391566180867152250373129056441532375271059379451990679894667368688885913448331075848625956786174766663591825406558612834486464425939203452732382168387586747516890386603692572285460489243804527224920395679122190380198121444722382759099275042709730283417330467282955892194971380125247664936096371884096693726522566744700515910570819260167395969466476578296423396159175601062119389295441524085042400087316343269768099203570429004921505518580233241662104062898750096514990406655504547376183593818512758496326688597324752831569998559878960612962789840058249093161335304816378101109238247101569492539579571776769642245466006706386861788595052209465545786961050873054456584545915097369670877756559927650483957009467905084671410401198129766856032330836817193043651717293167169809799732900504127044946544898329461552994069268934116655993112979239010939441500424910629948673442934147764469644444807697412409055319253344455721669551058350595955049023855361904110378732912588444669528733466861642076825946042690848512847767021766670639927468149698314571257341495809742398303629446655809109374018116734346271347291818500835771618880203694746013315445951359448531017946335541618453732351544764959208448517144764361368130573050989229143582902303053329008753430206543190455530410070919423677959746009145672138996227086721781468647320520077217092019719368154729584912949545711929931339938306954974775156257728258521686311543368774543773315715127391222491076043779427683589934331487955583921851972257597888349487356078794629395816630452517381041985995691692663238512576541856639229453717199620421660538122786951437635127215764444519890631215502676494870441853394857576528888202530670847523451832790385794078758629551338165666303376781864359334347769688492658515432422145916434007655962480639673074493167856601279752524034287411550607755677895582077953378493183947222340621598212063288234765636550746119497352057826801214373496781899365552665339426917940981513437030579909640218722590902875300217085328862449856837335306450034830485916122473281387503333622416520094033853752635921342180736701537192274920916762092076647436972158442325894418562853373426187773263672831389855287049085624214560783045980853312043964807182808004320992960182536000992817389811728573933984333262838727562643454537317770173573425962417823882283199943690823186368563939247576727717319203738332949162591912125678957675854428155007442369566434788064490272233107984585525577679599082104376028112053606384643691219690626751560194225236947331932229677282031304758296530700861567174580542442929720723154238660179610500961938717716357665253634539962921929858508049391324366260130956214662375279008454336368147224027632462210360863002376647235173267825379308698759476696922780416003576069403192020331611424514622508512864814420276422632018966522506535793778790172018007725505422654330562535562262703816861037744244340831050923459421263387542151913119107941536012771228676379683726428887554006026167600028310011159554847571927243344669694406562327711568451632965879021404355679675254212298255689993146203091625758531088350251233214467395023045942111690082969394117842184681620438083678967123874259382320833759071499155498054359948274922968567461185104846843060540936970113905724190803350136153674150619212681766818408851428826263510028825642340632238259950645712389397882262986223249391490383673728968491820711248602744555568134687203706527710661953017228297099427718450265401633141948373287648245619778602460205893023108751067891410389377492399024934550722128032228558820495898735334298713110224043791951224463134303866454471427911131386427816031879998425795934730782531123998760711850213714432200254289522055090187047092043174830654096105481193293484244328147371119934605338770504536007674358094780992765740015749786778231569007404548668104140607764893596113718194362664156435663829932546705917631329287625450583584240270654671261030106606783311401793609311675338418204462263417034498147708723837880249999829805085934489338642842283776624355063031852043829148528021025944021653187815844205933786471980159775985342385399957682501547052115660311225071533905854568819831042305507725164154381780499736617618037081583500880349094276703881813965616803058592059646222078551391084698180039983767845733903079144966994508233421624323328833522735827894249323913222527030201283202823920346945682064225027220970304231432988858671907264885726118629677068158547773185910235062193580148262807284831755069285431485302940759541194217322378372991057572287665472464674996712275254139234075735408254728795660965484501436564610633054591186413594381670373658151416258341008153054795829899058574791385257734005323240882764017102198177526610634562401431698490083748389989626232637559255626271728346371598642440194034390567838839041178601949955488012462238772924451172671305141155274023277365085428848822794812476155929478539050882918428449558584365300953072776301995979894205555525378213042851581506878191556475799318712741541732875914327720302669518976238703299386351951076835731093005117516157742297256718129719698459912246543823444296588395121423555996786666110488190190974042251921044578722052125861171653694849559521834211918656445670046348468352271481176940384042225921487042881981165545980299567971351932782444826661834902926946730895793591030067364811577398056730532542464728944137484101249450109443300587864069404382134417475394085601695846437156150392441184723117566349945229355257748354372020710030647863679143658282405414150092611265544162034499558645478250608402329311496457670034615025401853776876368427133097448560952796973202360098037667912780984296905584995391005986889804648240735367680070152398721587468589535127733834817394528540425347124446684218504953900811263931713243067661782098266357908690941513131905474500992754128362531260368675890596831692626253342599982359131500393607378371192945149716331836218192092007426993612151365127169945101630916956161482885663171746542412976167728304534997246895162732614602678804482075076039662864177342144965252736193021881453525704518780791896517568096291629623599153419902442416914082430458054900763377033515310620760122051888665740600136457444211737942788427202266637344560154455305608084438841677156848676451853204415779586898466179699090029640877498296834727199220174422832177829025594013103947475773127884432777085742621887407900161978471802797673537312553712449539330449124170745603880538265826827544575167703161457140947458785027866319775759212200354082192486348939338823847816393851037410399966706820555595100208898859337713164201849912964442264546109252292395559116128822930464054690893133264918467419455473245197236725614224985576261341398027740506235398961491561562208862563136013223581423183201091753890111037770715571935553750427966082738689599560169784553021670704529583183213300263139972959339332880730696738464323830552981098143746797558893461178892293866932765964127045534099970827490270431958369294949964442231531102093881782485714890903670050786352558651888539320740865384163672904345113644464483017522858863706844961378297314863506137722113519546605932333149333257515734120051172413209931213283679983917221994840785603043702352471957088058039181753242731257425371807010012441584597421163426254686588940934812048288867368837264806287721114616245172187714207419957975712971671133976859912316073061980807823928580685079125717829611530030008301409503505091232739527756388717908065676711934959660612978569112509851879635914941293290796394237446683965468592394861424409256707610215413561440500077718868417943729193955505894872038765856012443649323179938396352083781346895696762756080000293530147089423536347443084482553981101750370035011906381916999403993374671132844290103729028224856971496742380422639365810755512835481188442011474261893782997911647231403320338075824427591275716370822960590751513983623099395175589475362787528032019275315790913302236102925924917512961479644047041185243154466008435382608153145017472569266374719033481329354673764123143570508890252702734949357385010308651317453305170389045467349900800240202754990020128698199766210732580396329052287436726626119721487272364872672107722895628430056632072819816186549404168542897421206008047777627784764549770696788499742294679564298581619059985705407910931172835322823476998766183299934942697563466266016613395461377147879729601735470731895029625841546257206845498457074802000338748630129510613733259011006332060352877475448811675598804831812440409597114982811295430928174706516996744188618993832620579760521247324850525575299007937238407471620082440194770238848397194551713044788513578913161358999479760145988362343252368146465094341773404606354119441524926690907290278866686894860800681008780144538268937335406547928622460195471658351525000200219726390110976364680692806276918704117443332049794342296689962610763091582995874361915858386677188260627898067485301559115526078365321618736437383829914237938890240043673352664862939620274955941691265128642222140664722630444068887388626227643351652063711844827405206961475782043414675216294039776340655273649402198860409471767246226344951426421447206312047612243038399007943569162578233711817079074736640995398280932110854458620949652240519673920982098040125486982837693934375879130207864941749017341070504455056228218644816856920237315799875049416129435648795502002806610387013493472086038456478357791939801870263578595221576876709867474919648246144409491850882257781047931635104137582769072905878712412022312961803741629856583605423690905297317542682882906056630832561668703737687281229896157692251596467201843255489865559733326687478789333581447604715951430063691826376008676028378752502224139228916913906262884172833320012696908267563617298944208819411172191767447064213857818241411349033691120214459235453028009732929341791655188089757681590245602220705947308309750927567468529713666518716872913568616363512571083735176403472571499809665527598605981030794629636165257311653263843313201474390607877995154082345932990959158166202656097630065442452527307895992890194429703908568180848074806608450837678803585857674185624756085329081535496956474513024293496709992944897045801821479564119594399829652411584163514045409094089705802971101126065419558997308292782162337884113030172146552227198017409708197335981977973030351631384306840093749860567273274831043910762879723204313194026448452268919352024162466263721150941444200769782344492447369915167022825128066841517590971132492212177768381880118539694148403831231207112910506726796340389644494261751600357354264505886825832515407295165145229708312932972092990256711051284500530468959194778700920696371136440239926687704908763112182516124546998552740172011559415354167067119254212360628575125448130342976183138546294313775152902073761329944089315314654227503813312815534495360062948888605185002659676747612823243901927896468018479417049562458550148669190865511669137407745183310484055482686960252662736262523061717767783875248534130725458617370883995161364165353616151106711151306588247249784379862148291573584645273791425135794920711409265517522534883114853174544103059196746689788630196762273846719489915580699718169543609127456675050999914659963173667450905958839951143423297097523923656440502931922645731236871867997137366716310734720054132646666377360052984880472378035063855986796070547286758257025843848315847909546603897071248185080678118637197671909384962398483744208927860915705663582044141537016181295890566891198059142351773542112220777325363793931118574445457258047348486761893878243220282809473793052482123100421545599454735750867926387870168051407780089215257018541260653776310952596448530529684777075539736073886080134174440781175711841847162447265942731781040309480630955173414336617615645244525212955448054127744982407461112551185761340867706481399409281171666408607295666527152953846270563316242428611309989001418327206352533421951646276730527455999894382043514155829452520924638636854219349295901285954414349171411101852730876891476782062970068278570465919351062451107251187334940519131319066316985319814580664538568073680354444214266067415636505715116600882687351723387370012790881561190869063095059089247685153451500670466776456079319370961225697013963569827906455576906963069043158527314475176269480109798397307692744733179092507144657094745699884911916728976066992609571986797610438445121704641583443952005030750046143536271534096352303237942978982643367735874797312463391210081162820650420217582748946378187225780575740803544552397797299870464189751529522418175365603513170027404592407502267763809503421578207723278760448360969160377067650360886036524693741608745536553346139739903215623678096691715480818813823531606094206083066542572294498211460587642597134706078286745232967377123551521846288002350880134449598917826525000783547052468654364862433138648446212134211471565587428100360683906571065959976949405119132145979255225926608730932098481950894121837301436025721933150440684175083132117070778068812708333177721520832544408742681405510115081782831026919214660374672303981482543056770539943719608995823244176139636089711352369524999839078607575652944227137431055727844587490206016964074479746579579894908954289919370011824754106717614310773656725573666211587432197819777274939005304267043135808710247063509337159653221628721376785970268644942755948636321293202601129624369953867141469864425701200020599306256496482681817235335641936989770797044428654099939191688743207285161909385116516991688291354548734933113191412487968735058496715353655179428164310029084208912773997325861474377583532064998989059980657731992144837147233548232506987393006403055042757066383520271173653517563283505158095199576061575135480677026353036362909912862573639118137577153003560634691152480216004415742429709769396184444094739597899085092186740631657801156231075731317664706837806967217322328781435693387382557573872715336938506415690308673136085311158171775139748622007417755026011212481432026817312880797490791635297311208850044738920683532547379969865195994140284550197357038012099936005714418527482364546311270585077545732336646620549057956775358440880128613559829317175357603754494955193026803549118147260692578721737862167168370580139622293192513988181112929333416780872981520132322499618992229269022534996559309086476956727965121627917096778821874758275280609242695012486268693284002602798633915082131241757354031480109484691644348998308813375684888908774905792896395056307258431678577878066653236629580911243565252202248768027487437069649276914396899151855853141837623489723216806863482764451043309445050933814779426440743043460055430357006119870422363862365763071180216665746101193158677016970927919234595064647661510460083478066228965509335129688430625304845683462478918232721293077542722565355263923498172273567886137465948306628494929697341295824493195489799781860870520838513273483070387494659623466782358349674337392396870650706770560125288695909042062244516439412114776224381172048955205857994637073702899918093487730967115673574733752430616084923096587075535343762531148451606905351585847673123161014209936830874022832592903436923153959510518581781936907300968104752273344310551320024144525384579965290599602279066905152525986570920352241352182424504909406216183414085135146269296839608183243077420584316277403064834901471061946813376396632616043364214605754355089069424591647861450032264912823132458972469190894434653577624494411938088594230124477791965636039900834705395042077211033968302261260213299667651935829570937046132655117844737946674196379780941575901623994052534587781202716210158213544471453356231956372339658143155007325369648116483000181335047833657525120465096086353297661720733438156730742462467090490965981650724796161633130764671734524130447728318520114998585661093130690710587059217797874257116796903698627624583193834119773704252725878887534915623843898504648614247838858666945256495401277836814739605528706762617529615623414886098492266197284127809866018753730619090836378803643883315503543100315008185170213711391614037838949164807975563778476537760711887544761928762175987080375525946500227122620483404903767121024769445321325596705272809852611643953522637089812928968853296455071347573693710907378952028942181047193875883372143362105573530545066147110847867213366280572849664506963470577181007254382171903400966846723528082695265680242456254482104963752745972246058187923192023229069726827718712302779266370052248329045951652085551544779987717770948707482190865759004446314543638914675358468078713936553393559414867140424857049629511118332277551226845673862401943464287232328737247645186643311536473152272257081805024638623481859965839874714762836888525705008630056109897617912326763355891153581430065245138856471935002355157967757219195255066370796073819855218308921207930278331226454680964199773344416014087955052386414507570378750719599244325850989331225767616829285180931688644965967085498555573560459142469882836626549680666613869603164221954832533387203581976136279853456841261013260988932733346139758824969229306807347912043013943986151954232463805929951008008742870981808065977530921904336045799285470228550851301929763149233852023080465894227349033275794509837031916116678919070649124054064017429617767074191781471812144027618177893346586280189953607894638562822206802491194635277355824347726640197604334043259550815241270097649527527125942744341236195388614461623160162071116688206843696524107895945321954620223792799201390565772510067793829635552082924316553808152184961503348697934752449225680518971486988118651773647459262521667415141840567948069873715853079189730167486615099028757035973994774488394927280265340744902573310489280723922414833229702242796530294065067066096308230705139826636465368558076367911519064192908611740151989516108187629105398820342031357964092523034330994497711292710899430810988759384026098030622331835115108770376676331816585146449510533431472368182092076232198018820598754358430904584897410094088859766352147548998815317229866544557086545356788541870933994861597682830674100819666332122651034973807199844899680140135714148183547262359434911966485646888661940387864671186994680181734510131177212084185349496251199820708807014845971314356182749516482909490620574098513557648568677480029966196873274918129672171448882574126587963453989672787162136993315317004119082462803406200272565877238052664964828833757022905756575551974867820368700407335455609197959450692491416009470541404924118478512757822579853785107112185894801870829022706448645844000788303895543664367468089612959526162330278129354569398980061540428989799630531031610297251334505740025961152552307321786564530915693892680517511217734117147025102517733028828698698902646171084250593701788058099693221112307221004430606741447037355627876320264049676967538974125209761991765612778159333420788253111355894549093104226113824026768807362439973731949478315351572039451272470597241074893740086774739121844576141457353202715114210340072883954190456058882289690063605012638031472320366373030360202872954174588067256103801571477937891076182220042173846483150038651002409201382491518165996656418821661128038037597605148201774936133609587210561874489293470496316590790381720060550975438521226101884539507310970298430048273893948014776724970924469181723773093074663382289173610322843932707545635315727524868829491418918660253262246091284534588297696538310496306682565652830601326549084166718259050073853037118571612734309112466661051290594334584604891840028150288806756401968712216025596808749401183345984734062906792717133706304291021295346947669427221361576908605095636271474647132299394867810740455240605723530748762258488918290489969200061600330155795695170728199560594858852460778175036298914382288389224406465919100222391293223276569691478399779293365454706670373633885710494678620900747694485714295002269972636228648745720010057812585546544243431952394326531050058868995483073374929702579171840239807707985909849032951341852187535090009350315968472240326264724655307382840331311244424658086625223074252639511216138653299167033006062619838954883667726857143572894693993657808376522812080908663815644178870340197248646753499365999496082248866740899284312262345399189016272839631734802214552872099546230489108401407088426705616654608361302179407607072609852817581108118503480281823135123103399926232645959946830907514211226572452375167836698613927664046402957625211049074902585344325658996387173344826265379259089354883536888993619161285129019680599060897428562976870508876800439653375384885701398995156035358462493523605155588306360619745910405801149266144205872663217471654381935935389076919187397345282192888363696271962464702963952311709625768655308596478906819967638663172626883581526820115827617824121107167272447680681796185673114140578203202384116201928339075423991367555209307855335033699488386838427693305943932248170328654284326198334407545636311342623642466877329383993377936297545174293101128419658464435060418187257474143695422184488759274014865214945233460022945349884170677106057135173746051788736401538103166620043412382694118282401900786702796389218156846872210423822102657540496675291354573318144342510456604739218787343570297589737134291888431547397518100045381290262794655478153672396092367036808658290768233854527247527204855903087533697706666755809873988966977239212707720666857325233736666477815710367071782062918769758098797876714578287878796057202264568038123581004498968977799716679747808438745740468973861363072422941079865869971129930155439715319829086961172700703414429966052723505189513569031576405606006589686221493073910058300410134472237567189004775362134690201603831893458225246398641180368477957215794889411346986456756031880700276602199730123253815340295420334726735953674474320184226871657464663019136195491687340117751434017525859763739115021889932159392216056913015401558883933397261823648186051461301476342091309268493050560628808290209992335162007333856256084486557831526526902213699957796436751394946509244718710180899670554212055286724351457733239010983433311925106737711962333387137392074155387611516800328421245558458253169692763911315883369276610532555586128822858081370726048812723146502481175270323472394628654696264872687441846288487399075431554810866614462795095175259007276265842413946985558509115440345126545019701172754862393789539009135212130299477878069187549193427117805201502802507847023420058271391387384599376775788659723443776053913638309746255730401682571369365550809764694516440218918350887810536164372672031292882080323268102996711500035512581647991546900620444331727121203883408812799894480809924794510588494016199217188156436112873249187845048482417832708967886700550171942793974272613161297582711588085686484664933974806319250841518219040223002104870269383086974541620688593802297700550755239947315439696560113743866637891509995697042246664006147540697832528921915370799763958589457048548686741425006218586002799557614552807173064808767892699107166391136325492808648032840949352597123443331734318029902605825963038619165867054622443872719613597459026883896592969952994991141223809053513072712157793549675960681850342507299361733508536377806214540735534435584063166835244038226996074106361264463302250904595261184854579032375779200289601893735074134510437807024506069866726504131700361427610354134242755293464001797993713590501835014376906043293384159583813845845935684796604895204126837152692332520117030364302897632825668073558747079247562820433727904762233784017775437160434936606817069049877885880161429149463306283901063218392769689610221008520995499632700660802273601831776741896232610719585608203576125458379788208680800958677283719113404457621426821003889036174817933734251554463771050945339943203304978421495966125804592923229114911939197558551635213730814716487471732750936202857716876276732816973850620926709005244111928760296510320613433542172704175281485172161341653331845759508815849123785219224163719004472192710383521532621386280602995222668416771045503237185270341850112264037267505303091062824669851585155058375205231746826102171587625157097767362526139794506120593755608388722319571430757492994761665630814352802025798370423135383572156864879742632501391057753643263585300723672717748102708036116909998448519671082545497548976242609906024489691991733316342437092769805295775520187273960377423067713245787413814675590674162700820956400392314908822454533237422587227580834214134328828737380758630596666467372738461345069327841365262489822462578797663481984056418759892285173284357339988847088199884765890000399777644989502481715056819508672260331490877634932559474929527594180000757419622813365683415765642564620722724778259707707567552132245741000616188427154425590512856562455991688096880949874573054793398708708780954324189918013879166912958311827148030264442493441562550892229819874720544674152512929629699370036446116243244674121336160174964502169038268438539127922056532658488095451985272767415813410673347141556325605347024228778681969615139556790338785767402522987674357914205870543439427082212958886623655843834146589780604180147957346228654386693174439982355038510485188528017819575567628196916540553785586017072188837578275055795543967173345839214614839453269898681655035523327898785217991013521805705684672061571165481152515081793105388944783058993358913128262342006873712112936120611294483366884159296366320520635856946796555848650628466124096799012048708585817333344392525079553373087801435064055080035349778362215616632331930652716117338483522557796440352111921378264693148528783357933682744532463098184110893803362676525444050391374561831105411569708881145926043535179068673420314335380503254104131163296453287586574642973710247343313061659539980328962799994711693467803304180750176986357956826580802725318094560528032538654317176897869444559946601333717598067802036295038358066666328342652049065127162411182248616452659799494412563999012136774066629605500007822776832630821341408778991312010623398503348962662560340304688005969866601186079250703634936216477663593937950971645360376236195602478010591431980051058506899140165563761985766250718736077417111802428330068162132704113959214279310821502060105839994941249103252483689535447681670251006659020019562158116824911595038421737031510908890887683144005103422298980820243002375966323262835063732952965719012328652262653858234794214795758107582969906045539724881596802612796800872877398379701735647482505253725915165787180092098404998304360104220287268871722800053872262913051561743854121895755423557391082162307887273563810674008080524821441361023566239864532106720704732304362511751372784983792913603057832489159674898618715355970661040081035095059170182336061574511946160647744790835603266335554136200702569513902374350947555739809711822703228786121856384860981240595683358828353587482165337212651908048331132013076897964802044495247562177970467123861691246621844215945453314461045253823488914392532450113170768270277759600910067172672689941957442490004833633154785838875775143433004187910673636984913046458415367434932904452076000133208247295785485395695542768630023951432827248680405311357746080868343021966052446631247446981718125803938656825330228884238114789787436504084725154699725366675446620506569205231708178467559722356136246030250529471782134374357179762019849584800016975259632782917220458413580158701973058626602921860570799411111336332156789256973919387818355034503221525547527210712486632039518572597528597467608225200090927610265881208707906437065493999186303585340615818352901593124780101637660742666137193293954852698330983337185879086127899582026088048208054307698121108776372053423721021903450550826913015779037873785616570593937358466016357798779553096938386638186249859843930139521507631239853831792677270686043087950562088687008542209376285324815069701035476040866978773127178432546759969247081092522284334370948421352201478366764445916922540768602411386445666804594263896980780058203501606317569143344208207631816269264482740504518677813929796465987156434247315337641576493220588725265894834127204985950763834501646138819836881460830097352873083963199239128428929770966009969606412346391077816886639671739468254948823678408136085318163710790002105311895583276218282846483814551980874360830135745933161230966697332088999002537563158339735987949502562707604373619382601768004148886920442423195114066574223546649537924378205003175661320387422405588027173693017625076647621441296182760997682664942878292353260194372261626062105600424972526878509869281451954141737672414865064386516873227754458679009220038440170547113449352097292327718219545924445851040881104510477921616460789425278967354552647813355995243729883305744484315954672424506897421363082782466091116817428390718321766070703267578643783455038423174315428717955189105413510078829452708431524651082065585922255944054331244796131994432822223639482674808272232797911593200324030128396854263699679283619500153079776346071169616328068729579707112750776567964138929086636220931781960452655365468056076064594134634195457437859442366051968958275396052508193059240268492182993364800561013577476335661713806151146091474182493274653971562305467348313518263464578505116335256912732539495215896926428679381952687461959319255369987741637126046970038118812632717867885772060712055990054618783362717248393655698929160217302475099666848705379350763833329338610993057533170262816745562909046997590481398848740940904960600830382975346151044514640880981468128680359724509223744282484017515224974673252803641683917366013727787363592551509575985483675474832341261275906196668480285678430358045175652037679164112252377558601329307504204982545294725287153646803274955163589114293626367591972850644498149940293593800448386796796339921216947250587482287127449542062969058025811848818836909288682159811315257840477834964133995522486675053105695348290768069711107855619422401331860067123085585586646779451976170544502576621256155150025452148423092448442332181087567140984820276001948540501324462437170071773624968044461445146622841220632568961826303549354836114345093252940920783580843740357486656687613041423368215252371854484196961865131051923452164988199112806723937687075545745337401475025097312017585242912502606325779458222235287308701939055014977828255444747478717523661687187279562969550472557547541401939031995186656954614648692815685328952272941372874658118368421373432786017938953240451082734910505091721341212929230353298978759885326267536736823900713349119372173324970522211230789078698356276232549577275014633279160131316989498212968926189497772432918817973136432453963365297727406128272133877713075876965773906384084233191121836763306370777928766370652640448717759930246175922158675059483592865270069800727386595166098021393574161787227622133322842697580849311131627557455254993658462373605252737329322383213203013221414362339362353396400322427318789334920223903886381270105338955641186400148127940205345200194047527194681164810897274831453289939581085928318538586344392922461534735424575638779747199808166346833659532763603804157779867916750820330564983648782588471139929503209470302136634531704632592101862021332817467801670445403668475169264292347122909973745528573132015956122695995865618616813227896606925759472097155171254176178182763342537894855915554571760732311510897918908633165538043649346130395810300370487405622966575478052167168922641875716584648873330435723900206138583042223440230912735811568642044221153182410650091833598844754007066150457256116463045099769550500184732725630620602510188565223058646251061484239211325728646912281392763707726138849703328965685441561588415055709490394459594178685550829916107568979387188567135777762001176222610970826695129100614142590450858845169416386481451582608824290825191652614850797615984460686047535635568375179332558622852651599761668125490335789152182485139548756957417593747290697204118691056345236764512958920603145838839622658060776185709051345664564119032166130163482570255295539720950000563181911538608470355052858620137905107870636030192440957405323319914983883036534729918437940632163248348658156245664695512369891646765926103094718578781891661069998781032873102393857270505232117737324027987311602354850154653483754131178429894475640568886248985242112462999832910955998162596420020845283526146114109982840822790708747164656050570072149776988167722960004831535502744735439747495074498924320736398986152891571758021655924528524493299810962990118702447870908857854604000581171743559996658154330832884189922326059455671566139961979822389594620659947498044370395012367714901988503286685737995593033314581505101650965907990256010737073434793843141720038442829950104687400905553668651507376046925372069653832499004434308681109313368708614908635984648147650921941901414040571232213881248980095568609118878847378593876760137975470248248194928684169779771760710858310800206880779372213978144351501963918166815077670415672102206799536372755241858124372926219864702702076531097681884469941464884416080661445950695162455629006841083053529293401809974592493714796551290033198092690186861880415635601847107269395408649812424924094650985051724684243711080762747172655882280340261717407486491740752764163939071766879756725863048041364351109666677880645447579932227248069218288440489647701099137908732534198810131753468656621361699887341060042002723148818745275064943085676761654845848638305655934041175736227532840146308634285940442995628571681515135610235614853204589172643075074788791652742734015886295571324637732975748841071183222800396832216136733398228669102202832122543284456943974113938076035049242959148840136866305203125635345663276010329110558452965673729651918243867136733277203685305165782318326645479525904482551234453729981222381575439506452359815664044266586008361734875144187089831547936769536818552861218630443461278352667947062547462645087870331638547283028712980827469647969226082324383687885815905640706368306053857133090549736967410123960998704490664240987979619714639497533008537424025471979813329876242546493060986652428531472960610298344737989320292745268258418960826020984356825465739299559319523812525867810411960387424323761793491715915947520858154751299203123466909426402121914583732032999469612499011840430852334437682589934988653636299581506336315240389208137076213238720932014806315828595656523337787683586849505232152135867846195757937555077203042352628791003063688979221250978730084784013262935679712191064680303734868865056522677799459384866553508132708850137710312243981465875383362791735412172100625145237261007830468654965318497101444072003486333646041894357629498058501990247550555333479478454737190656697977003473937034290463328322546133028428758317020725287518482273339000090457815971638897078140783803093164380946468003877530864548911170509158905159597288354645458802953840841309212953237136627222501020670173207266389604246260623968415360415547521608032141552015405026280663435180436079937022068995432031086776977467763278309754676243457470456342120231585981772111955738513000722480598338757382923177578869386991046711251109108202674457292475919811785812951341349709395212818537957252664250492928659222592328206802547023989715229147029240809977233070592518019004309058885827417936235957733278982727853474307704677193478431624956012203389696420396900983259455419365646177246809990195776173095622351017607429629840518402905631838646117719040501535560564097660510677571031106830932595252439693423698837389818612214892102620272665932069157634564468456762682491862061786255844801112520325963558535749800283336576652625024338675862318135861148168869384725138054103723948542660412150150278518392504314417813237290837711165608955733766168594157539407258535082586565248934485474190003022172906795347344050068438775079966637308531473682385442517198374799359396038358111147866212706357112688662720462330328112650412985708156137692976119154987484951615195808884781446629312509528575568064077610968887133838791663371293268686883190505504109367566777526108095188172921514638571256002740719411134614970691761505137215264888645303536835017679540752378223769764287625307931996924037610926723728261012021551565158496135096800798453893551008339890366402291938568302046480454382652155981976639078427986218276535960839747728977660132122950143111999171679530989456703823108549420023536388076838915891547563310299763257515686422301974338638100624543227936223001339323908707310867153503599399915518582641616288006996722375350683468739134445167427174620858399797926476051322657830623712104939385655892382302156922445007185249408338454116677377390349359662358674860766073050686073760071919673545106342223640152628089068897931341857397716131121032032770899416145949142532830034082063848549870295437781728653538455671625139703476626999079357583168781703938287503246950585335246197183119867430345386471275243678118065128646079921151758771031250701512268984848001784065456553589523327024135766264895058115815313845315892414471401582913882443759527400187189002129936022387388076565892782716739766244252291591553476535774194679444915060344690519216254330346968996734707386565494685980638772256972304357350518206991286262181594382864652892304337586304994876266412838423560923057467894701954311914276672891638428885873424279571992811977849185132092347942556495359679621637668754133894237153813722596652696763927536965160778146265462593769461879875021111738574234185649988794239769880869493974290533185901438517303311240280080175881913679858984737386676009301991007622176765215433107673623726085143367121655603970487840251784367992999522478220125884766268194010843643311226926676496894210422583582877770117114884696435289791193648583597116500357981024681669765895439650026125453302251092432148171791711119424732271474530596719583449896965436909524706957760907761401503402992415753136488638235954565477135536490103956855800989224632755137121807946781247393284418478967315216729811731521857922222392421536164304419530139337375076718752702737021498307419699325440596436095429920307737377142108497669948403073711231010473273817148598556915159668060752092947198500786319094947671698783015449698879225087242787696952365389111747292514276286668499484225372702700173003532110433254471557060022076327922383116062251034710654966113428383381862879133439224586580877100673904999722227551235174167363225493093278604777833493035680259465291770211853454685992586087127239270246422500321213758205331188174440566708842467355932365860046492333253550047134037772830271896718684518584828068176142959709891979094277198050142457115137263478217741925249271331392981280688969661026315540075753575902768030281043839603659755972590728590744294844911496294638382646139391461223788619467091391893370153906473746303032026743324078003013794673247312700253541073276073147327686030035377387607957139226155576518980685897377020714423109127201644927167666671778501618501569455301829373700775480213369730239633665016892991705755037134269244065870629999361313858293419927447086409886324372030523113942546524464906730378543786281434532723302806430156991162665532473336739578540401566911404520049572217890905255520740530888622955565078958487650053947883720780414947502416509902699385822539693271749851645655422244172341101462046642912241683166924799584377236522353798972327852550370228200037766506712723184350313020985261015821261584845293503377605043252477188595548881109452474847587989335106841536784323120239843201067310145724159402581968643808070298377472829550097528858206639511063228410376099874782694070066316067412133876274887576912835402750227780204053121534155035094442232238920959814823843213518095982072434985483882040844552511321144750074718379259720485691094831710611538496371154207092141265565218674310786232921776115839783179460420123198850468832633957481182961251466907135494824229582097600451548955217696949887719551714472014967013740972001195886855391935725566343227661606195786511978947164726062092759605348320192504198430913607606693205650429075111554030600563645899646480595820784900476033985206471657880052583760932207956894346583951536884176521545520288067356111386276369442915837235421064330660531602106103564216600517191189454236059459905644872208081790759111683492218123534901051821647009069499065740154894259472419196755361857251512532304674057402198959903823058398844565568906052184184667956415801078803631058825416767104689788661369698611108358892228045538166944658546392720578906000086646685684484672222490648735210654371708543577648521038056108712561383333055454394213510856941361364768954594848780776913404230735884941374552207459040350671084702145792402631023300030311015194206526710489684678211969487000653249470175133746951938723055714848031473212604512373590623484914269412178173639078384993861566378620047411060846336238672323419356242702705765428031934105439910315450429680519101321601458215370952956363899815653859950683094268360354728104128111765406240439814748514454453527918350713818314412327858131935425418301628153312734156025335458844121865263849447584147977850421409724899101400673529464228214664121771395351939820451822486776672601431462114028711734400760719636431380278020772193781299249594950583920586844770254293027544900420126435733231811919814035667050016069578786052413197848901181961040153105807910289322937986547187854804963529190501104543411222819218513902473525243052896453533919022040606303861312362917193728907205703543025918579832717449161967731039435505756012061791285925575893062467775801653978813434320557695605962456481703337829191614865842400901084444927100091640947568721831968733177416272771923927325251540525253013073143987787141691920594619347320312413938538779134941181476325950417639114036837964362555049713189119373957515228365978093966856110304905211854221740305489378076077544087343350836337629059778507042296759615549281703114735526153915850132871686077179762449023130033795326738636651659881202047306406633146124159126028139464598213820620558053657230801944927137884121844272265301463006157823312716582986910464156314470932413567711968407317659132201439091422433301274892813232984940929491516343992902984335737063190676313340204328080352716343000820411666701232332985193599520474396814668030272383819280197986085736677792708973443686475363901454663588459826012533995860900304538334279333479168910054559690979450530186621177678009576694165226565759403290315968004182849752415907592312284539147112792166705087276031016124151590468979974381177642566125077228175894664637813559075798940690556223516744204954118142094573894273697593393911278282345566693607141185072103522302468302682926861014482688517106016439417876231685594575533566838380418074959742645520547434073267571861044612643218418707481993336688829672507919110663929605542741366456721166963656582918748960835367585104703897190098514997231800998823521382117527808073540621730201134213096574246725509615751116471791490083912302337264011438341862176752641333346339667249622938310322053240846420861124926654138429302282407818665458055219584844147808723849173509384748483289271323636183500117032130639994326760868789525598198795131964014330026715414744832901577140188810783108939247388426601260265381795591450430421650502171173971750695739783540280084966098210840532676932325969914650798370399655445334277540725469203469103136614739148778271288716693602077030566673694146069189740186491939224972300811984450535195432063615404501915630803390224591489026828032621833646439477425031917145690566704027807883257912742257794912076295366322769674394251515714253370354894030980019054277526508428972041261082788447370097800179415621689222262801310876570773113774766137139064241899771023815982212907976152170171694478027654566908538342409114236477942706145550784403434414002745093055112390066448743300302746802892030485493365628135825787477260295244253534724418450719921961226215405452566101705357507321863695096539407233937690246826289462294585376342973133913406142868988021646095062327453419582731939195570448753231805335452995197593242112093352976499352402429084205847969947284596260842106284388841059115417305312891335355313990854885452613419083436247276953207532284271890228042002526103879554325036533312263878526104539017489453750190289720289678334400831891711997582826313103906064660724702563559538384427100145917423749079715628741087355863088823901396544227858486256590202966025615374446540333470206927547696401986168343392621463201535378278494717849779255170730091574067674512954966262077646267423360562986737057116994314198875072289166699583256674223038398883803797692214934821506003664777258080171620794921957551339291930952841207475550359102360875216826209738425028705865036944633777062223725207068136307663124737076192576181430088668458736629551789082133380673081050919293579563817968159046259954340672371042259791734828386661067266451333903255552007535078271508740339501852706710451635149023490413797327292411608814560379864060644604809324411555031933624918204108952004691361748206986050899889811189924533832025238785612486673824215699144584438579242647551218907362005051586568421804390966211456889883074219333421962005877229736062040013098283461117017228890474994223895860255633670341543108999584490929908559277712449202987697720686003898691549201410979884848245708160911702303086725088785657950710282840330981807220737985081985187476071790675788259567453794208979221524076419465115752521801064880070029589202745448928989345721641088687524083882630913119156760850378080741473936860341650179366411997538044393104061170254399525285300856073525923384774419912811091900457078495349717208039058976996677130213159189542816989466983412593957387548433937906439195063216828850267154025845227039776801517749720708627262694625445807188001741218991951857132389286174605678181444820438196669872321544562994837078433226968389968445658925099807520746777457562949186003575058801588512998094958601408918358459484607130911463324074788989684593433891049254829517634553000283072769741777852897698875756751783052847650108168503869907500701544395006161902815754983048902414562354131256581745587231495840623663711852471453632349594061379739997920790773373580675255701939373849528536015151870993072636169195358605565675790616088723692386319719127283763382504669444984368167967005534859754747067271972475152438631524534318714322253207843011102154828454454365040094936270452609887950207027137542228872593747105978448579385760084782423746906987282131327149127255904419773439848948371854774963223487796897626962109605887959867324336076438525606774320020787772134507175157792645192880654664260900349589399670715223720086341230363580421119694631031518593322794358275830796379704759849606332869809427838510828997218173257414840644535588978765757200994161940483771866205721768888833803888671371019526917169212996510537455223020386114773194007288560620068857079921034817515125335575980363211493654442172633025456124924489822924312834985495576426660226513304952352806393945059514250340515009947222520341219251874343549849572105513543017360256050976197781614075191781301471628764841126321620201249595806451728698682819982559550911366572681856286390868345772660651785144279769140680584952937643464865455656861248620931215238186828185395736699796817490398286411105907368691829787556038336771061157742933555814060766716393277928182600650987428657363498071006727741330767761421351390015601642068521093245106046972912842499917680108697417910374200423328817426072261343644597575742924426803363726740042550849245284060389165075565445830055186984397153256069635290784634020950421056457986035991155259747940474894960431885876178225322070747061952365843773051632738184299462185270909892810588723643733157751044797368104592365740728640002639751191102967904468884623457666614226357618790199295649848169834475650527008555376264074328309414393528971804831408069597589608410214993065629940088780512638022710717274553164009274495656118703265815051710295752369884859065492736234868360921435636768137998579245587443411424103935785488568424521112496175951190549719234460737573352186447035136561864467189611766633467361671026922349965578141605151973172144211646972345158482122726469763680412679568141000648328521209159527843175769344412686098128736491072903405953780150862759420486906268308729894579522498342023032181643083244988318568089276250268807383686792089130065312463940487947540962781133253148426417699819289805839834880509399641522294604317798723266180657786336523895632673395902062225159528933525677621196102912290651491501149397997028181132802790756744669593398201885138971581282386720964296703331884031089944985466426655891968724064224611381646198446293412768514256124135139741114394562329460281359837299615542449550211325878263762347818839800193757657518697648979402117234868911408019006977320583657692137704936934711797408962389910743646347849040108779346621526738617664449171064293347867482464898160305507028164430990114303867959071853481080320671538431618066556082833583321507329562679383721395887751710890863462452535473789782189301328111102796302301397500747855849849678737098613944048530439422021936106816026512417840870801527079181846063468960686186446097615203634847472228134916671530304451801793718377640134259028827620174045221198757767354269501742625617919366864323266169897906826583535573707881146394440698192738715816346470555217686992229619054052344575892813264803645949405758281447455727483174476248236108858929336294667915029224518541254777630782938820983534202624449641903218674782972556185032501804865339843611074815811141004472582108485262826898393599639355504791525987348094345532763811402108092195073094607359457856406154819130587305684103222594446847385056581305675246104933209864162272749614198824939761542763405299656291612950268716346810169855926037392626787629039578669245526107318783119439214312110768322844607046956793151076857476495926931285037653084499879544148582435868904145229032028154844495183600066126254373886853670343557631629990879323105520061768111200169168392597983336694746829311783985045093704068120485401692750972703572520202171632369409578674585293734085975389171166010151603590744432746322996839429522644090085782008766104667591364190954445543583792883758853042934859032030925065145410379741037615097111258796999073554353714049090606729985654818576782409284162712370681681019697633971124914521610706905680040859939738105451008615019492629300743487073259379805683001947074826881880213541142637219350201501180134255318700515326917486408247076781361213541370054823857506340082583251413202422630802805672597896984691167776528215562483714678032879253383324890674819279903678457690652247908675447430042233876118588374945632699721045582241885862393029726583519572223078759126395084965194690662796235212073090514908075097911423789058061247951494197405398921737421749539533366701070380002327620981760868702069199420247357582158815232119535542721740686290141014849501871935653291501409200986398977840823435217126313668920688977627231307410595454486048151283036382619796606988278782686311374569110413787910496823883175136296881520464636322136400003539630295397767716798628546698880542984371750901936970589798061468895600580100667653138046357980700323195864449929888245561697110521371748595822193765126238029185382253123068951556217897942838977039240212850468244466496532465191335468826633044768644325303866476716993682553012649760515033111510512318645868706510485682382934039736147437396156999133121844794214560738290029649204060278109229341922301498210532511655586740044459677540414341424105480092837996632938726460040153012101415817507790143358118959343242456016137446087249015548829246136182269937301957782284156251801927867468026027920652931328199869861383883903587442208988933026489929253776729357501187266534562549185105213065499524671346309623655511009822244329653931319788526194579860437191632781851800518425106107340259364614026286558254186362136253270370997197529799319328303076135515160529795387223477137686771125887292247324601659893988035910281657096368786094521469745522861420903457843467211459883319994264214927308260688696960313254007520579547094918250528074970092596580157668148477212004953555062276616538579050398626846553607428297695743311521542211477286736061957379920970299876414216101959838745328246177993035853912430200202502532136499065213989223711706043068582698475383595888009159466241164470199242737923713535985842441403149218949323971451934521986505541886900415861199839414783749215853312740006008022363685721586031121515075148783682552552020420657787847015145882280627605596950502833135654082448736442035720696263736887275077819697452215567437127868429695799265969140624777628950569819393853925706188264126272485362350447179566766523672091700584865212021707121865343424916194003372209351458232801715205509723724146493551157907666552277331279213339685681160398586142707151231827764857119546862812427104855698879999692752635139381591307926181087943146397297168669230896839030437740797606182898418498532702682224718190579475533012552981694502339226232961727411699879373822373161321159793882064802528350344463505650328285400685205381243549153304982159785227697332347857107033346678352577435147128797561000673649492839979287983565473706612837924347624279719294387733288409341748587271250694516960674463861278347945942186315984854384649064116419653731396378319194721541944229858449792796380839039535649397804143864833436679208101938007171655740000346543497089113150031254661777781160404599666888173684318555294699519845348031135027410434004177117224024389209048138570946024530225802452641338700462446196244532828582442506476576276947417242595997095325897280359965220278050705085293976338440217753845582425213390603912890225523088429300128654433433335189576110536528944805255626946164640626991015377336821695035771191225706847740900749545764078333266105375630344719018007056938524458707974893667036854995424036430854059444030632797426761274319084991080894429666973045549693663552066164496465104890349413046096956680927118008213787759443198903264155680239618088025625081550193975095473572211050007756254648706704830018753020055073278553205649939049705913950366712543191560437565084752466230307468393353512962149410244324238257612275541420848134524573672999819446111262273335730590274770995733084012678219379793682513893540110422663698140466528031866300159159074083666971990058618696450185823168709825053611534950330905614274269015097822634047621364624459767118313616996590769594138869416319514661028007377937155379562312657912696586860561314960385988988905808070324940263508738360129069734368236310831481811782717999869854422156161353261094104712089693452051301566173636548758092110836060827320301210455586903851340442348602426263250673949594815757402084152221950417764033096109814454062337072335447744517925313506208611940955157467330412221216993582423090777749873739692483771789685723058070441098710439472677372442611196162045939560797383252505003983740770529532812542540205236133826630747130997780698100039200453121329578710163728391772088899301347183003367693623269137691212865368133447521203667952222034936329763705169094187179078187230649700241219024871765299464367189073374073556044295232757163552923249582537187115257672984731448558160192130284649284699920734907876810594744998371538321224052852552854682249509986727378387300108848052598577066486676676022900668823414991308051631717758591122398691620169679443336882483174367904055975829111982389666256481600215631178146857589651007888566132180892526778868573664844308830192973189592075811854673648881539931042184894451671957015351095972074433290414056756907486453285719214083811478641706118124731422876913321258898606003762640723015369160576463825372234084073809295589171036294498677166133686735734917902582965906155552134298481454689773601622761674412607485892439806316491371496546303216267558781662548041122680396787760188400333468617061908040916423791909976574206890763368776093806008248839331242549847038832480085807198302415750641523274305600493460897252023795146112854783869094009872849883134933069266684622707029097747921032380760231034867427558612207912134453321348191639774330509417093192919569877654988273304930548743217273859544219694658735860203662636023951395951183679655095687945792373725968060699345327374211726986175284689937553818989060221994055446394699634567975397391508647964886341640613467094065315132258863772317012315567800930035036837602659377541849543574558692985781143233945954976607599554807023410942116862196266014417042607312221048145777403408765204788831086572996800695974818697247536968773819865892487535185017441923673399286050055596805259140720303239366244201670040549533598706887875379130438607489951265419933816271992516814097573558270455878300515026018820624349483853763476762248908083124485379790506677591614390833519740710212655006759202232897208983812873602301060259983473437360039336251614007101161669378830217873151647342425259562890624741960544816351805570386807369378678230870400362479306579507302498200319933473162608867198954530867445431560033427987064592886955360588227614321306273732725433865817509817901735053300818675540685918254003406689005305269458921068256831298295705792177698127657043242925876720053508757999057896085524640128131917856741937377622491133509040974640618661936120868574911101732022664223556559973406551555441305281893493815846435653676690706883504018209761505849982998359603130109041257890496370855553283146048779977551748070236911159819398098838103476868823579108605728110055158391279112466677221401893248456513338079246863812427248166108491861339262556989790055653152528551720915304582708614928679997612572664783036143064638277649211225580004113524870442607868508665995191134659779429380196352821163977544777184441615228319645849843260558165269070410395987790280046953227231639655050071656141642916192080635092046724994550681622151704917381312875258615113916849309344693781973123107296231002562366317401780111465996522168622427232759362040887013931238441925550188890895514684979995352019832029592026090794355093019007514294701508811503174376771478603971926086117199052742707323788191965657063695075596264639345023153762135983636768821002260982138032547053528368301091224865468523135114533963527516899944829192938934695540005911932595688640685613231116771402216126143418775003657772856168976046794337207916110208135363481876663184072816946676378066292300009115094820511566898855886200900326277363775447412372524406096135345000843881428828164327171558436710547357483847104473406093386299890587026809396365845397180520394424261659978705658419110638096573337883626775084215476122729921638456480674716485402841504548763524861611676135540924830405935043343822958834651535456208428941159367274151574116723485550858458360086763794397893117794870788626143788883830410504825530281614138785981767500273483772140784609603701984470451862079233664233964276712188204769072239372697600950751504796496625694197432625120119367849616873057417796657199747841617097816333712227981294821437163420144450812242945365534508120031132291351284824838396684431829680976221151070522918487468804498721666193790089090744544017380002706201533357625828648013952212756217582513425672860653634237947869473457970421982542626999809007490881906099668110080770921855402749791365824743818338660034202616642926829467971164176454328523893683667757684163216453317578073440730372878774523829570213252352781114173195828895549643090155165616958879174036805750638371409931830370743592157100409504765856116605912850215987339146497417845144590079857951018132810552264547532562965128040536219906427299262029307381763188149558823486480206695408209314985905617641905896292150460711051940959924203249197938811159167302687934392255404614456666583194439997220011280836908907358422313848690807596069537859901776689145350837929287327044819967833634702769381580099243555799963728092139265112810513780209367054410549987576343651788460018776950025608661111035595404573244900692859151975038242504111026991271052597091838364690673936672952518439539317853906593443576323054393217594457577120047827264113641450207428138906040672877841267485202925353642082345973351283387188377188768695542135534606599894527067808253371718995132009627466356604390774459028248088387444801162675707936174836361729752337283184548814042016397041329807680343967986145245876408193081865113189702796268442271218225329060447962336244815851956104411242734170970928869229813023481161323517497774098215336393803090322605641193770276480186428105193487441921935903829090940886920651729463688374840064646014827464923970223569922990539734755307843001505025200069728039618317324364694085380478184103069214560182401456131014890055944999004138280687565295050528930050258855592688912458389113310112597805206247641763228288420091822400618807744485335478885507681292230989455679095367901712324463841918036697448538676070758192084781935603860991444111924161312663554652786420857914926843251595169282366855009255808078141798686234101534199990903935447317817000699679000744297339858294791744279799340401489964637211291487247187675543772854855225768697353633504526567313717861064469694598169173869288864499236428090326775197952330004400750780365229346842278012021683987830704745939584837048513539393452438620189723569071725197347046554555756218529670178611937335808693344185354923554250762525296421714426333839845404710775989566030540894361735319556293275307416370005481077333139377787664742509130608956935039847403182509471670953737998158953078266442542839480572521991729607124151394035250292316265693202068438202020566441529834607443985628406865406547092318746339083397399683227315483371272031038635437208969954592980229208601338300625369015373256051847919656197702483140879251204606679254864840255768759660603044851808446409934384334312263694285645696242793100769186697346395757111956957094985438684347714719437199116986650109061264254161899287054606263730826162093557601124464416989500828934932495148672970469431467534248708326921446081151409736606794283215378381322452187141311120315094780653813202470422688234655808791064189532987319392360107977010142679629954235512145668039086769517384485672673001682742469110652257064736089300921762084465596707020223706745782131197202285071827744789395155043552350122251788529710337119479810474484706403728806288562183645082537046205539984305443603290559267840913113474451576822045222794649386467799041154877404639158649787401204019771272537928874780485189571597888477982030876282267645781573243770614591578203002198331410602648619623945970733683236228753285588673153557226777915295019931309775072052708525181430518738599996548792823185100745256419130001659998397042979075819392756191570944449103708615663109256795803901579190577035211832140743030663861578796832834240162958765065544229947503796533527563256641794353311585208381406492018302155398318447990871784704834707484681594043562392091356524396863789444089069951296084128878205293604615702710131158140377339736057142095816885943018969416092400133003894117335308051316917293888828423302319253502554647974814934780748545661249629363387780431049301013299809117136541409208998864569423024294020232655701055643996706464386552804540058248525606202824264122213737287555645151224968145512599424722117433226923326205497979457247011293189858203886305011719887512689440698488355423874961003424012774233990909570768437581323738186566490787077041893731854258502070759078993742667504916315025427201190764768782877624608287385857390785892621353931784835928914384229541420712807124315212209845824583783037618379666638406879944404952037168959938069938300182214962001774753951373637982396656898224055822682115093579495397304953159453329386877471797036626623936244460703952256041981586172660747824798495174442233876368917002222120337054450273203056855897797848506345056834177353984701120691354506021817136407686836822716672398353852960743108899302340502421890276687892383525319728556689584903305111828737149460784062862306964393462168508682222461948306806722928745206853656207973262224734097632249474056437257218963225377361318126882473539009957187700307408573268020354652934081285012375869748237729065866655179172199008212291485758056442579884133348349276472558790276709210718811348190193736598979703200355335300438674790146827017009729586223312168043420908490937897080174105697754959359773470429905695673060620928744154923105664133098911158438301123240932421347691810270142835628346118638752657128073580963190850921463499624090200645328303754045210499340760805493242172447677508116599762468221166571817830904325927294666758264613591535506738494092150391697726131918469986108011594071059172654670526333508228432185318007890192349588136013000179898649682861095731220826018630541418500072121287242642112981507930246044008580434024306916017331441958643215388187320942662225724264971700896088811323451653720095381512234230727103912170663628752190129919820916805604354697277137728051858262925559851288476473638945347566038207828042728362882773313087696082541133811441391667536348910831757579749105668388678704871982427662646290654778029744505294748885024579532429258486183946652614841002084938331941374615421325567641113072692053209519119707488085238319066184927523814976573052194925154320220639385587115991724452462081852932934003512634517369396029400130976637184146426549629106702901259772904361935050944465335693669207073237361724172297872061344893184641358214146292757579948437634684001217000366581406605107332312338960101603669232753240252674305258275493466153650327272527783694993739876697810296996392311837612427715811090217413180808988669057470674188879313934002606761119696531353335545487348970666408853360517351404520179914485507453586854757570632545494902523848858661162179094081967516825824958640304218702971067363230424111426175799267234523661680275008114243381722821611402099720114770289329721885293008176935421236030477234823210159788351912609885618485805866082185021234812034067648142137474515893659536329897116326748116053699360998177809596083208960997285333165216877819092582077439066826148730381830670188259957985319796373819777743201799016255929072604038243757739513042991944549088281652645281776698617312674167887888393631776498688323363343165721304578320729876346069999337378882015144391885771085427961136708715640804038569824582641495897837362607420066562893473279062786667643489746911112256922466141390305228881177799930854577823523130032003574243158708437976353003678573416090303001415157165981774393624559737897678784004985751079705448594272078776196424160292513826702674691350334266145105735824638549626990032172405029247253584974046576581397306658310078822946044978766059331985128972946061253187977317504742670730454365639642914107825033194382212602524411434391035449148184673936589476697555226622650797736873109286921371403188645198331627464947881996745445056064003958611585325140417956067386192360950278785243733671984151281024853706951848662844687213125546920922058234958521673682978050267631195990149193901986084479338777012448195660874353702428422141554693107652266175869549863589929299439629623802716248312048007807624606665116915928197785958728923134321342843370314262591590435430533816027075707652833270411308705451121536827705951273413115995610103627293831036879594717776066238634276856830910133423609910994307219504305887950337576804296911966571597349499087165040891677905360750470832996897449268223845548123945282959024790077774861274673850071411735111098866279703498219103255571416205920215254931289136711438580927683856862743719704838510557121946197707260092254677826461036919280463846936657130353576157796601418604076644573682237223938972851893487679219095820149298583322957529211154005833887874784655380680414942072950334501929376921906442941382996669883544899351503998920645223591934314961673135914185437907114915813840808110300001520335612504971551910558877064622089142816614123082839365132226845698611415274276416496044883185806669657649341210463978783126627708622930809667264642223594701877453903077394902750527986969894397112083964132915817492607625443100014074674352941565823364042899534505846538740893556098588343581988310441164627516486737359787901134536964401077417198633368935725802139480231242195344750510875397213949822322254493687835949487170976520572388735138611105040565951317028582862954092000133075620829316176564770968253028411578110369737443947426648697408332781454518755205905079315059074878152471299387662143947614611260314558050163198112694406076060681534259728433188358199842808820197044690939765362889685629112145470923863161393570707223487675664149231551288073046074276935309689644030944792043181466661621983281639740794710078236247539489348561844687358930501929566778129565526348406264147448029008271622970059461518334465548289456927373959677876093333087079014009887087928556371782090998440251201942514077985315672175149741026767091888652119033357973075350662218614446363963066311742740053288941593087504074801672219042724181863250012831270194633943206665191741955628739925079251383170801504817971500859690286375113693045610213402201998294082298047531081399260676567559647186733905548720803332552679485619059600609293821051779936590735853729028061297125388114868914945881395396700431413050420662321539490205576996176029858001046900139483130073811765048291406340245745757956415854793637814293621898048919884285511688546841618046164718162987873934254835120693321845362193003322215844147304404440173112458177302661743906755342773641726914791717512769047682902671810794850610908497621965936815518393902806803260675915240947047890582857564013430657174520661019287882216237658679216785480237699959666966190503259341299658544270639773893138444147746826210803322511650182801816308975248340733822487696352535587694466247118038046996007815603583440075502117507860157745900326849097948452306378673779823393127786427696082938921588577921477360355399406326717933078447219116597414489495919592676856636348897773459179668064818049805792644258731172849231117119483968129699655065064660259324700172728290229936390914280686659920524639814877692937384132914408142115940035012803620067680049262819484768708643757133449391973514927832845713032974739249191659794355654368763945208265983533606785031340944059943645082184301567918211023520513934833857938113021072640817258923711118455600931075594603113536143817820182275170883071579936897095236729275163022543091198349557714271227622234212468377588177387993536709693234660038698102690797121413675636414895888375427403828318746746333382920051108186075267785841254359339387456701933402538673377560452622089602645936394668395916556502543157828224017496103750450412222423560274905306931212412231597770641634293934513299137268057554591273379307724723928399798317691136163006969299922526852363378516047726392157301790328316277991595794070695297996441620973316834695358081484761649804092120583427649019320726360501417836790599278427091718213247724339151972264989305653797905524299210695451778192348450978981936832361700814102110704694994651817016144398591044103165472979320408620820750983423204834297901267378477024725320634920745636787373819145445723405092009588187308533552671126958841078666362558229235543149535052427562186600599594791407024223414458061411143944062547663941739683976291242381090935974096075132308241365359140243145180664937699754558361456549781030606187246463495547940979586573182844820564527789606750335741017070961139284412619793440866726480728326677962158774415295384662496991586259118200234816787115446274057871823625201449581795881419030416117244953652869748597077682709686232393521064696377247804131261733140098421761339890286803778099251579557176984421525070545567155560935195098524212619880451073680393858904058887566002001981933648129734271523299772677215365443237354966007081304407571240785831867969781708801551824805707100676132227744382873474587634407713572826678214300607257371078300455004717202052909645217298194780291411933917003368244525333797215552124998421598225380888657244423643448232638270049793755901036927397986674624686152434603832521995942992318473930035168337243661013231422052792913601672051143673034470035429074529957926988479040508993176117755577116729916919175377275800936229925994906486877857992379021714360988534496320918942677385717417778370047299147015388801579520597109581545534305393221105180312169891526391328009406143132296564519725216372091235339219573209897825665166595973747484176865880810275540481932986837661836505227781887689727374056933844878743871416028432356125646556540294195081643535281582755118723312482026974110730486468034544973808504194743484339525599026561014812600539286688779860873886514328033272260378339675230130795716606082347788855783603134160881772992911615026323463550445029625559697667023795620889267843790365401064157677440633529420035933897861899565018146532681253814015514670721521295311808106911477490831210992564291272057855709052257510412396552863143399767231203924209791023340935639115890313662971639519463012786885985614095403920980250537087323965920031599204970829191769926040306252773444160233377303673005680357053401857022728254761571570667011168075740493243642573025496486100732751507125043156873260086801881631626347194916728689270087514206441963004673854695260503345746404643150890438817383540923229053329216295203106761369599536359186404861710367096987073241761414484538624987316362645410110476627363456243163086008981936211201353493141199459280360612873440363727096197844395954395823081330222257365075096960819115154786676799828718368550978907951189532760006074170992112454415746778968845953025067153572743145409819791367011607874860160262508535551066392375653718622568347296056982258050900599023120676637070822917667964270110422610485544504969789225863758605873455573543579555659749975751207497511087762485131917832996839368161250316702018617903421000149671974783604878383346237556644089015567736690958455719736892264134938353806785533751878562673729410118939773720514226018282884377656687492013881823863097272383398851363864701801580324223013612269433801233250006859366298319302101783049332935495367784031475046205556139674999456930159653236905747479861929653526779185055868582463926405457404163627332183567486025204662358129376399627733181938772858502872022034866533698006673927773688040298478816058742575506340829306758266116304186354487100790317901527281435087899488154829786113131206627785044566390920745963508586745768597970222395732391421302090089016925557946920025826369894096533686804235517545661044634454002580565215679683548752551087682404084755431676907789750407996286952651112806845700998965359895638200730322638508591354952634791046130863542264042103039215853697676384621425601539074291817212957444913336231799762281099529556023297092945334348418077915298331365694778378020653798630253912006920384245951687608866269278638599974426760848308480413343053744772606136627021291620838745693111635001289059112170567467365248119099958287655065926472841018503364318879283725230191213886358345663823440903935678675684320812671144975352490124328250549665067264132696849473748878968553117626578104311759090982590977114581246899873700952175502364656958158841502375419252757841481561689426579710827771966612251959516707796237582697662669802551018789713273491522785788831525448643233166230008402528860404416688227691070289300908666195293620162788174562806184396095588222934903409280310098002651575820469076490044146653374875643679379353330711273523216252311605704151385329191749979211114163919064847178743796016174492074462564402046978748373400534523866198934164685895874113548312702796648172687369899093563578906882993325485934307412550449557622705524528320329732754903633668709152054430916237265463354393382779128719597575495562389028335873403944042078761530251324705146650411306393816160474782608081152335960649669813720371025615482496083810219239871143466237045783047833793044864190763322681895313307129635331845169168594716899609408605604948831070404488172114382223989413155465572659995318564400205411167904673958473976587636378913704135047165574178519449473449742392672798339783030679665705633393202342419403747763174191019778594163495849656976041918132108316950856219588019095958910976541623520752306951129382764367468426885447395688206345619341054038329657707342189046112804014556266976083169084490773475473409211343869079265488578740031199565070898728430510287241482050055724852660268451429975820694368088261818375907562646025010240862055922072027239224627017063275279645355499597552789753516843083233498537150554939541447010590775718733622763588081944195291227506977001961258644312292832144192716812237649040826857281170734055084139643961768642169821511039731020582707951508502073650472875579122092835082037757730328544579900725572653785052347663314397748094164915198513883166604039667391401772983464301604381305018169581380908366958342188605540291772957646822188541801774269121487138085358097350665423982910408453862719362222527262358380242670302179473852711395335115019835041423330950649967617044190446746782440559719953755182967403844661932161172189322297972716553741145282533049263712601314048753236860835604467507848699449872854567823008269458651526356805263246175377557700859646303750489715905799474295272596783322947633943190242688013074323838216221838013996852867921454361866166479449849152994562171980797259125501888229538323005885441156873151282239407890662746874679661948085701273849688291354101536192681793936727649616006023698319918577970911186937910325552873464602186908368363707908599633444304949262122877505718596863347590070292645914205114928492666314257892364620816354018294089917022362684465731322650747942278484332386254395192190826334407552869736694696493831132095341264366796762140616831382384995823200296291632007657781988549427881089876505308854472445488299048695724736812794166329028894895919468618932943111990548713534752090435543397438463351353446842259093718534732989622983430160253802162573913180775417908878878293666840358461773873324132492083454588317264512330344728188309977425387104271746371846728892743823998592782087740527719212360717882231785264060854589326987345224371831349600104428009859357267489746519066718331530635226799320352729779197842837617680314723055904398618275307605065484916142440933645155523880405165140381281737619437487675403064516768961989153925354250541988646176361888581655577610477709842556258812475638472110847286114560584605211513203296701333756698431241795028568861614402706812632394495424308590908660604225294970919249752969133810612846418711293863145076671523970733505237813851569513369368697325462964993876105230458750566986197154187235450969104532031692187131212424977058441187074967104045602768429577424411839660929326285617200401866864575722046793768822460021735818859443228788999657200857602912402225392661001927009240356313375845200597583571647931834266735399463538751201676059974954807940510753995329803717510428527892374060218896511553396808051928153103276058057168379883151900679750659967780786770781141999911713349126795404997229064681014122980128450093941744411629308996110273850745331289924842631427958233815261267787272052392228568027180665098366447975457777062243785738276064159478388854806315075752156608792710019227551086499141909912730023424171009032968777637365829471066944874620101457243811685000462659550039990923190085922168134296535614593780675067239534552578339852959296328043324863513231911706810249637095916805677724342468910650022505467649733216392133802665274802134454894878397599349267047198068735875822014502963950807223817831196675663884419864238741976559966810879280317186245735500706230661453531482884202719570342990816831666876110383573697729153624668936443271967347674629189542789252358257304689545938699556410561814481374210705911232442069902123663654378338886708867065277259894041399576481428220351137181542905692857975780709465866321749053904472335872950436738395984171819858492526668494729200861366713531766156549155029976226378659629117933840850147706434500073017852459404991381397606263488524698635274359740783633520123650100348894886411644206619940967979470706165666348263205852851777005274336075178862440927631112553709750721177902233150073253926812556606873019140957642534590130060311203220495479654531249089185246988738236470562986998554756583721273097201775037931429711443508832961680902347509933538791399553153533237952498953685726393509955478138838770782423981782242087431483795492999444319402203936242763151972987720330932280634079149064359327011515151082408231387587466594227064179354546259940819737351486950783294492250431426506025548427666336208160382594420162780942718994961705277754262090633676068441338712002209788051851808417109043848681626088984674248339420617398572836064495850359213689223264793157303299443277866390559053800719471869761419602886981840310901565493076054230096121779208957270014418467780644786360087448056967050997065144187550880960888915132506103565179688158036594422383377461259051294147397743032744717536327352042434212318936378320444456423367912986496699556216828629895578580785987260019149298516021623761771862355761571051573651099219647842738319524531604145361845535892495002110994024954344638729738854818293020264062535951621627243915134967785045492023081202513190419548549177071137720075383600621235124083348705480509219043395999412973344628599203757112315003384132490575260711280204984854035184655048892001759959749526051155899954292022857125148607617562894348354022391276654111583420002679680624750199624399365055298137041993299099156836391383995123291865833454835654020017984625992250721076569332175770411474468077770958569967514912474160542990987230518025484207384052597950684502717431518477079017858102876292764934585748061365425205480695080630564893940638037099897766659355072804224223367164059665550017812409311570011786622279197749530526156655263802088841695066056094076237194292829503293660726776575908672761247142995707851475632612808050142041523764280156698788201441794976677423831089473855548752256618118339360723622228808734148687490677935371424026693268395643479546230248262673231252410590769692096347999928865268005304346850125226544681374469265174886927404551180100326629862537428828982002228382010376776587717177463971881235682436804810396933089643963615153209509891729294241225563582519185313837057560829498978503357511456386569919338004858291539332105849098911633449041260498292456162285514183268839456384431018704559393478873942157279732546687158621897308540790323336368303157633819264435245739688007131374128405839381761668518091748318643264718473918234920869580722573195171160111256522878373651111465486213236965990268169472146635351107953616355258552310288258454611900468445819195542636692336705116115944046193019527056160333298466929218799161949982563146204551718591038370234467452903078815096919615983569546619769118878119877462611682741897689521997586292491783554365877730449143781982949198004884670389580578941281738369748942260375745269649502971674576240787242620684850612687674819447787770298017704413525236760492655401962654996873072420355342313401704576342123493206345628312288456042992162117523185304160621538097199927052437589166301770938536776268742477641509414440683778059057433055682434351716227717765065867059102644362293178845033702846647902957918661125790633369238030372847836129120283206384977926851768213780028135264510602680657340738251251396071984775539459612247685272093358382681594324158220802899172629289994851009659258160476066004824078591075875509302621215285448739088034778460656389452178915173690539659890015884899736493953071786730439521154867026568266345107646581247208869103092310401047021293092621659961325389202105766552686089148505797529632962572454921477343090457819715854788349828559589216098250714299758977971646451879975566852737749379631840214637664092759293236075061139143687443319255172175099459711108462794491995311445365100314001103013805377634054577822004257323345107515425823201473976937799865174463546843598759543084283746833537688243061779630537484011278870464756665830701566340639199587542932546413924565953621624270641586642145941300916328086986380809386592340615308665193166248487234169538442213586555482135977190337138951848394921465969475563202453157539103351561990714855709455157858764015805165706069328731391306021811369225181670067594896007539168049956256301469819202120527772341119154551257587146639414083009588060932785573363573663680607240028793147290212048097105321403284958078039598369399903164284838814015655306739458807030666227368788337759517027271237065413586578487787817881271929173105252844192268479816342792876024103823338421757101847015793117390895996249844064676800312137604844824044512394503727951869546904122482754329127348618453382488798468938912938296582512822247574631344481385887762548505985704130970635315319713545916158632190109577000878182308440989078332604271055818805070167431070773619108282060619843437160476723588865245038277250005417594654835310444069968540226932989766535437664816598162839019630826447409599999735401266034322332844345370421820041946875340855553076093733293342886862635083899126167028134589590547579209611880084104889107746505462043434031529801478873935913206829541272360143265848858175443525063195531031463815463003066252728872064714900751771155573522704653181044237164509936375841724011945080368646886495536436288476646924307376507486532834859956588379351653029738262537969166672458295899813555693150906521737551952723535362127538016306860770899518250702422181342867614297972406718025371879404482333476316726231902512993368040377648287571156828888948717425624210714557939051709256407042631176029350541003103668223393634238457994292356100513828178527624775605922501073370482546310513277026885826899184783804474231610934636315028555438669055518838118763771292599497054481196438866833201818707672622947095929759404504352799926127986791498731486394121125280947158858440003554121041858514099392694450498299415495050738865052493902353323449300018466696134435093636597035966706773293464833282276839944251712512819470143755698127941104992681919807413999406762989605734631989004276341721367305644630224767411795372858592183304148450652523168719866513917619038339610489584440803225581460112024460910352118456233427397464136115349026424353749914218576892986588635915678644976554111761563587683666096044982300975173730762447654865275595627637240806309212637836471765207776708310610104248421974183416278482889155222988808746887356110350759875320055138775962235588918684513413818005075603886695489141892171563868226224616351789187973367913432721537345284905126344022255355259464850674498177138512585873060575325485232483404808749983943678568552624643619217605621749192634778100689645735005459978840242157469998486041165406180716872107826798259457912985405747057600282458045551990596461786658947222347232993255566063639966480201117257013094750154893942227137946339471150215464575671807474583959401741113435980708923951399020899743176268861873041774903001246958538030260686702369774270571331510364444008839890970829259453774647051966107470576526847718086664195933532319624448516768869785688410885980943856080968551743280955581314391957011990042642412894448627062019386583161855950515761789519947783772725203106312382094002951522780274145241546304598087734021519334062999392548258263628980201357562741499726998889984532113498305135427296719630174003487652455964657000807847626320612538754548786340165963030869961840983657669213748161181127904504181658209800125664189404663298275730058677676480940162722898620842204924414083323826592331016917254504523495522244875689741765084113024283866211644702494859946701692846991581780414533769069448899023818365941382212171189323489126122450637348828222588302687471633071486206442629453650385163157891295541592948783738948293436673486768136753218691454347483741693365450789593524222035138416810004604108769227914064518271912114900573238684025619403250407304663617973461573283583674944885015957402561074592345448674212637674381472830095209118526558238155362610218100359014142458517760433756945228903066893924789508255061986153346948938513384589538495171191768654772180748978136902331399301009032788018447567887714081275120005422877857265292530866994105005814236592776224903630628333565912898483633783731988874674646088836900376728436142808022143857641071431287509198292648286139898392259310115952211521979523212543857018107124277591500940101575925360315019294932047974970233335176876038616528068199306124163710050554632356437674002637932599458041303309960245442661334139838733215332112711187343588869918321396200827950395758046911433612338309356859837412389360311791228233339744268948679598772337587952825795509989884654225437833053872946534163813456749055576351738247483886392814699944557783078471375416901624910741835408650741033851243852020912832362022430900925926226124629417184739112510246011623081770992265072044799988583395713066724216020843508492728401833349039077421854600780122038544936481077263851255899866187776757284155373464664472279523159662510732188892782843841464530276119030903061773269384253775118257916702123518690117391329577407054066729303805312223251508524172514480399925255925797065147817516323487839201860645603926863080909396863644604531542120455511894088295736433388645783692683892207295744054005775320225813385468578376264569082510108157533743444887724774233688012810542512077538254719502136771939820859556151134146493921186246865532977273074944622148919645553130502822735374599833480656404819106681860395068142032316295039206457619291860078345303244416692659140898538511955669994804653184819764141100221149743068994917989740592805025302143798336800283242100147176696859556778556182094041746334809225103910159372354790291557415232761497640785005835014632980060047106193518936732444964724802429124410874941645146221933315374051688624018421703007811133584538450435650811674731617293721369132931408488415325785202452024439226052080270244022520032614132800917717031453141911965391475600662686496558609627135730799214727407636897193742693911508052836506556022875329187425875005828943901606225649793852624094762119499399777635859163749350217937026483443634043939940853777342543842735580797618234638380500869237873164492680441979590087629146791792600318091572978355585722730194359787900337864432466703887220697202587618966301059237686743112731126124588503999699144689987705521828654430209601956459965820448134894073162529949177691641432960260942531386159459028739915589132710475957590290154149842053466201387871874124283033662272419566584712801622947367508338731631702301584362925236707317356112323220895570590072785513358853083433938247890837485584287554595107638757307289097928790850172679662213827473858621901680820220019016884352156858279438013376671959583994374361043296564150574927375949264029536948139444549242507364939031972591113583694118148972486669935389798572486494091380748057105951662396037871077359413693978027589862309630652398003605064944793096515765946718892785009045325212722969333914022505700226351822766791109084741189571709831649230949633710727778901667392866455462817678505184094963219352852762779219368916329183648262428129993089196536754626363158492300133692572920453359780599056615855151919687548001213593002152421290135414862208287195785353153596537070447788543813355638482502294452804895431823356699903767175840892929746126013063635349958118149224031214310476182752959425526665513493488358936138979087863631146777212100597351846085609442104916157069036986385085391735739306179612199376402738590760807373064722138585114169550424829165622136414603851864785390228724840612502726407491654951308185039577667601050594509654194280663998084331066599572586858640059295716814793292615151460303324453715134914506390737268578722838346860742532696437669967294888157061668309528608641245427292401421160006106903656367999503599239475666419881647370408106724603631333089807773810815581464444240101128490224709231622613367546798819862117379725832633759045629521093049871310756209482272785699804332399833585595609614326456687761016266250613588360776032062205810704370240830838189191214343799802294075676494764348694939720417699711457637395177824712454514968887784500489191086426533841427754771962659198401501880829569742476828355427320348824194682429759674436231176335093563366302624393902909720790564354250160439237915976719286147446375349993074843759436430399908956035465623225010108626760533588179911907969987266278379584958083238836526235860105051479063788770984859981788568866255832915699152750736031831614984440195308087899394047586039800183265283107701269369477068546247056037414368882103271743195469242212150432404975195833413291975084651054069081318082364037836194405004760340022229680580277949033299462654723811755118800751983939699982275722499219752276597104667742545853012389262961391917213442166280042188328210700727035557164561106438772843436249772529456732061486017524213313675210948880513421501224660256027877419479618788683941850552551498382180759871210952165410269923695770194300479717464415875175681531030116806660841986037856413216654428604921044097326774927920012035201789353443798334599544139273016372005560829953989888542263820880306023557375551001955627600569389033735519474748251966920532786845938689048762922785399285783979042588485373950819970552041560805982014267449236551614076101749091275981256389489223137546395780443499928387916857608035164834145946527054930007208517037821460718322197431863870314504030908581954163974008354787322815880316855270988285522205017153765355556991172614273327516910724478060519430370440950082147949239747907955076830822357838014873953252322721391824356559911284273418313758546472860886763133470441770608473794942998602232925370625123555547469338984797291411771257575043355248151292724809738631293246645243743409381169110793353138482844243738274231290367277964086466885032390832066052934755880977450753378290010583758081239621964391813371280912004506673150905439519794096361974090229728710513126234015283691064190823655930077895000450060588883667091697036288209010048398884625177533110772990180162810152162273028544056175833073196680465768016864626806786473776776010692950784519198517027394088152513826220930275241524649404431357354871580173702027316814805160469331233785141196837561391429534497058821460800654131858281717312545103242060772099739260093821858734746005787776063417792295613454035532901066616248808077380653934319480256529237611483169349184725727257730855306209778165652690338129880986608761665391861503186789466730865068127099266707781707182560550734593331851334873308673081767921142897276348887691137806202605834908834114455858207049073187433180939547913598734130613752401982902609748027460371695651692830743779328865062063958786797211318277749393911071013121829140016951754852426618156166646773808069400947129530174923068757985663825577794650773737412818049896371050100133696920139485742744857008645935257244747567132938480309251130225510829180509157997165699966079676941456843867505974935092642356557347083920902931578781659908791971094805744562487825720316146732564304340479493170079598658246046394145357515520783232254723712083488448197782922598130147819520926984283356861797733994763841211200466527702839478319657815480530757336830306480417135597894287817914071894876984851882700966796001251493715790691372897572831613513666266223758975765983602165857489738806712359928806822806518299441024673726126361392221234017063631406701097665134295820445281512891749358848640583921832255713416500830698825791685761461707557346067638608616724961298272558965417683704406027967664920638376277480443693668656671715703702136293952337852103018782063801059653684193419232446365867476138083966432344661825100191275672685520552841683308184343358545548725242827824721901291369798182780147652984849668859882144922715888439089617731645675757776659940292026327900978251435305905565609844391133546593011775004241561333985032151911020239002575937589426162758272289473412789334481276388091587892485669661957665946226682028608273449255761340498122791939048473600386536973874838422328322363162055334813185700544850568927489675980690292805761375975470534854040846148829104125658753607555993341389125771542485426744181722116228977764356137496719594104953467841945979263474753870940840651152736767084363402832442220829999168940065398622398175620032947482216059058533210682341636925481151573522435492988051378244981123454187336384314404204952337854289309258831320805917732616154818849546188112825360736517863910538981249537867039747321298719054733967322884361791913904157639268845271928171018876889690166910109089004598682187975304956301693913886236138066515905842728223956035788306560374045252500194733073404489457116681503675816206348538606810946433582937417853226486125139979313748399960333911650195439527154594767240291983730159999015401559644956147991270048051245559504802014590200685483401539494437147057796923147902918802411733791884258263239879678447541496923690344792877457316806199305452390891853171306662341482692791103823329423256819340297569042955612281395829647516082601161019262073109987033795131223420842900113152040681048634233656765925954135647478647430761707040086868016165348700175575096074994944808164414793527726688422287999237827318745172911033765129468378142256270530896362859866198176238034758628779923501872786006407924504960702506512932190726965497872831342503287103421361149751423093781945235936867042284469016003411266254625617405094609612271621443130334388675859887531745313600763125626613450699557926549479773705654613110836371187299126142160532143495263700782431488555229169511140693178544680791773813259426751976540199696886689284514399292134931340968415540888364749617254988652869443588632329047810197041030447927926645716372408664516409201001789235065473634243736185416047304884062227345625968482405255038156747237988271377883434135258827934014137934109214593443495586894439628439984309774706959407929225156245133842373064693241293045061718277780668687572223562791590079121992350990636963464852733174623939928496743300864476893640509377031231955577941547263885417397403707237852573145863669577170618925546217725956924850833730786812216757713971525761906535016703215931658780008792477666283614484283288709138724035538005342605844038538539361203262767294973432824862496041863976662800419093700117102335747835494185783717950573489099785093749499356545276432231740108668748947548086545729330785385695795105073844992130021690191137473600603589375204368099108846764592195862832906886642474993093294447081313821124335030986407086268139915861644154235722601485886070777934107683529453828651810111569576812229183869541779546922768548405741423415753270588019566272545723304329242806405114988748219531330678437132856150985462929680850132252633482854324316287826790786596165469030006963106693009074462229186555477068341276617765144132519362736727680683084155350635389273803876172191880201863344730337060770280262123937001834355777523457565475018789501461282048739406706084818915334350672246508915830819790201742293080131778097893301756090770171630185017874066097749010507665103841554110352726955315092361932287707410605560879447319441195584863349840642081919592826623050169644370230724628420545552245694835070290860561040214801811656725155151280995047067175129694995672600110916879304197404257303735843658115853812740796482375912708006304257222689942852844696943295195494403757021629192909874269114457559873046557522585582123708768044455284790574388150856479761041693830522137623627560757761113678392449159490960720629517138763443433293222195911920383519314759364901362147581183689509424470091996992755701655120567533783719166115403928900733758893929134603218551086012876657217880511196294996005695941023044865432351228052715572941746429229173133492491319095112890452788063058591863414987001821533704683030848040599480280074914532647496194573354825724818702925796360863088293329897900610543241944998698295805385753800703323272521518680969916623420991790099837499592233412956085312593496373985644409585925004241992590341521610957396284302153758724079996410156461712627196322359693361629823421022720685819672301933020183012907159954433478298196188878542283015656771660065933231476764237517156435985597523908734221650095662028016818643377819570231528897695250966746112353251851674909803322608427058201265041973606383386534864146865113910880095195758772278877833955012039597885579731852393012856922204540373189317469011982179515831121792714598375579567263214754461625647940664433418935676853967165370897031847868987261057678010405683062593105176946340074996006817977989975493952895642688073158090787901814312550298421868947873781272882278429096797837233360380120907617950894047168188418167641725508331900773375251949052926742403227259302840556756466110539761827392737911472936495934756638617326915405468872786356696815776024476458269221924051327479958566027578194159874414764506986405025635204073321894653628509822529198174550333869875703505630702985722293257437471401105691955328759158272598905271425360567924087732284830782580720558259818255241463466035522580754345949119154167248915783987326115330114637026189644958393803365101667039675528532170414918496909697760668874723939045395280017429874391990994649216975361031414426679524220083143623561422397897491794884051346703274415747925192193650113335835032091764521199753338218878063751156433420520617877491406262999218319792999092104353758060535719283878213182613626878330758459231008714004734826945406964718516979105516540839082553398037860603736022528516806820793026209662906811873492414710240057826252669148754715200453287823168334824517422901045354727175644528872849455925593535968534444846395403345735863528506313318332699912589223936648602574851646125214014803830857159010184390455737900120484306159057073974542393732868863229782906749797622027504605648890585701686633159716620834188140138059257060719589027924623324343814662439988972287332457455026130093901170629937092497637984862721615353973394760623094487059458857038532576389351673904810800401782892743074229206148725811441573230269971639056624934069871498860302900685394578004910859433089712199902503853055708296590882211747047336809576144043896981998367918687836131364674487722005005231316641001849936204543179717059144758321272658673742984713260951545763842366279932968254551827664152735736733176386866883944415849510837775199846713803309681543546243594623945883087204985620751135425321724582825655682799598112510172652966497046832061504617067845086866963220667583551009962769637664514914049401453172934669339398785507390682290243451615792161472077868826248075593739489371548715032763665890630373204146232175397306371003542615957508568918001985861527545655281139926396449799451097141434736500419351924085323840967979965911378351082640647278650845553290081930873894222868578267738675641758912012669417664628095696774048062722451483749630995306465151534351865352873732668649952573623107233188544379873510547904842834844826229130122122741771696955242780363576704746145420444906473564238228250854142372402498474995190577582372473677114809540747173754469410858279615189358436525291383522026303524599490860970471275541145034633944952065228974296720802997223823994866158912392496117841358325675202039348029489882193776088868425514072098007336541710437786778865016863056709408829867984786810474669227103426598161416319286033613499537628338929371298632345527541044423072447023084038763967751502023924944465347773084030968243452629888841835419013058800632441363840466800127844558034195353737566164591894970902090916083182835469867087498879536005868029945444280703079152578625803300506675020795144402162737981386281870676050842453846491394335630984582379172280509448695169446179440972640758666962498121858953342138356665053534547257580170311803480696363806846408934128106139606448729334820697991184033139850335507473459720131623961229738619077698560435034065724490120239604289995554923545131924707891189335533024007252859906598105727461110717837386322098658548062439642236923104911564861384280439191827079278420218879022094991137816331186239638169331209388162201783365390069830065938037145765050038357415068584562805466288092671402077747913710345496522779804262315986315897214905557100716784153729731764552144976451834141618928220080600049561555531840057815996451660720261746484032435487924155389662319674361938868891881346794188728553708669646501622032500210787091391039958721192320381810314390056011403918556714605301462833693863680321647193693447289134757965326856089388051332070882973357898053625222963336033633998949790760050187032795992246526340926402319011714881940665013501285972304463431595455107578640337695159841705943571735564733434104746546979019425603556864985187341512720271833051024789696779258147588370237161640238449468592288824477905341025654187431795841561328490749258530090095903023182460108695894514930209509665265129302738365194882286861007894216382613846662969690687456210860719142004705033112176798927175941539196204652029504968882103817936153637147523224189199479208926304644130637958259222940707741268678027447691396563582309249572055458548787106029036802526283263364976931358743790332161333997899734729969233376570293831741389670090068934903910316014855784530996824948422579092698198253064767300756801765440073818024979793417685134962989737689694775749207903037452719977752342767089714955548203829717946576104050056427463203864498731984037459882101000842439645202878991918028476889098080480724346829700637780890413067674993620286420683996745070904027373814067975562539119305719050843281276856287201780316460771815031815407133819050633799999845457670605047277612534275298458637006520917500857812626052959856926246159456323745154708725731992462463643875089060085741970764253542594517773139566640233624653143636135752406465952091674187936275715656243257938910402543081018817443418902364502368701622659202651618389487923805533267691942559455212904788954958694048222509925373879140619797849084719574965329837232999794429926567916415880203183033448111746983785761783753079946917548483890120477744313606737263401555637732237922728494712571220612516928240747579230994343357967090261440297483258717061348297297752486290290335067576787328353054315493638238063119343094859958754994829430894676702950205678665001515390525940488865533693034527826108532575038645792885662775082893784651754034409882597349208352266180025635403989478061865240135968780691835121371357281454350696094439157799281206666962423003078126313749645474415870876780449328713888183420051647323720114150036926629287015097084378622923122284350992292797007232521142429792530929779910853546386345873915723776667775624573438754098732595723739711894847552900962009973879095176208600551972518359190234701001086213489586973237877003954124857305357276947045203379156685940196201554991645599905667555220849194954880723051389995970560433007130991742816825955280931116394303893448362150912940976194349086486828361085340570150781741203066628680442146958532365447409158106416315206319012535364550432053138200989283573811979080050971669825860751550836121943373194571348796313865887378509024536101178439665190536248403579057273501246105128985493911124839954889584930410087639109240619568700624132837184121631586492905164908446843449691128648683903017950192222755331610202482190749522150596368606316403895963734809757285878537393743821960195376904852880994865568961302607480133699800639213657681689932503269323133165560768443480082472698916828718257280638033581404154043861401446568764832946519392370578107259660950638075382130214182882980939736473562122512855680118390518337324395285507162154802714574448245584660487843657353767337210436427574610345941447581040909744118734347813802855640223074747621837689374255672045039127881892511227546100543550011071707325982672902908798375360577984894283576007092582443044896209261238748527698632603192402212561984195975573887179858890196092554870008189465344412553241640894757840645864919321704469429439218853434591626564841672557837571459849618428426219058834530402788246382119035809888554259220662213537648481303245654960320551308070473559497929078237446616232417588128824750020681645407044675533337096961533249382371224594161218936632012040929561603124932088403402136096300327596124096339054776304081731113519272810795892101483917649047715590474993495636335690608424930120235578908905776084030805778952780178388449850343979796063379405352807860180490463532003855495743592604492964257432647809425261463877926244722127393038581091417766850011121919688765296251117694712006975469556126907246879510891644630180280460757521547911265308381479643438534651816338401655286075556798559743234010804675305586083034620708697821936649696864931236188242415776211137298683193359760293919980050500572668612045900510515065789188350787750703866130673974968355365245520859157043542332990374532215602777205105473898430395709589203776704597947009680543847073751254152628771646285572169101323776011312067479067608178119792099973197523356567558756566916694038355598373921845142421290605543724291866777249046413908992571799720163710345335614550649394641866991079405618483328334941466570655421369283736135433534911926714246643084810492620742530460942162285458046938411028396950090911176177658054002480002160610664732269099447988038503981611839740521838699430170386279414449884499937995321477974933027223268408524098856846712544322001153498713462235143998384938441601140043366573828161409559494438652329415811219439686750497771415261709202975746664884807481977229070395062005955734362648388740269305194557241138367456835289391389393045774712254503158189120730331869579713987872219388721052425099943965116537032464657768021216783537989499353835633435273277977683654820854765465725964906753299293917235692446257587436819580604770346871997904072395695504924090997086191894633029677356109327563522053974750434337551380240748482892218609488859056183049736722317692889389883947885205357592204672212040501408106223539389336594939957555875145728994310970127075531567599579737277188380663642565639199986305670024878865334775068637329063574134789732403099367357340600759900005548181804894759926640020164198586367494479235495714816395480944671482498437464268779661303921457145368737711789328544885176627680953372621133149060882678835535032594421195873878129316317002973445898537711578472335078136765575278530638346869063328983638073040322517720225721518964022629701555789833214350025030900839785655640793877962981016037272904676344134142194145678725367029684486504466743079690502603595834357784189946462443235171918549381650980999871332037297039719070398497555913442983027396720379064472935514582915668474047166385529178572753129550322038454549413095152303562383354272341524140498020457114064990769868284113429154131265372310111647661725370202232389706571875958607596262572151873678743631901192230060521959770911604832831319817116365060884320635337051448564628147696361105689507857090091971332948140501410914256741227816151799751771604339002259946761274750622237865886994451079565835726260739625673284015756508121174305344855145679812292359067776685786034972487091598816302476274183968739698336707777241113316519749203059675761544606620577509145237825336468065927710101844584827055603231796257620264938991208648013389174189880344030324834148504522530376321537942025952897005038417068388663925427870053378541272080949552068988093094765245928255781040295988292847888471355037625858394663295608636154083783327171923454730661525936708153522010243073346969457371238463971785067578733447059676624155523853969794071446499520433637861806433708575724104598087767497384165415987024242371112199078183726664451002405342542118459246521291627804509734124179155622234471004363195254160643924741531370802014878797510634302443841967823414427762054684323351113917576973508057039814693293373454037492853224261990332991671126403416422598854045729829662557381905550787911848045298547958837596009934435917229242038671974733606185275610956281886647982569972529367509352257050911918785009208073217745663406885672350584480131016200342890159224454861138543030233271734564018479978582506850261155488560729180101012571514946562171826747116961396794507889904712392263641200007958342526908843777677664590479316325932973037334476799495765163016842404631955171648603077172347595233894978070880999835057018838652377301991166422530996277574110003241605181032052374677319600884557918780037114119931445939546506248767537385974964207130433195313179841262063068884613679247435338992079888749112562985023700816670956614992087914556158952990600770228696267649626189393622918753524549531162382621947207450680564624736834402403743557313298068990877963783237954183238124051974610332018683089474043137712124125064003487460741677983935961473258855820815894431339384329657479106178838514486556827706002434518018013375597948436410349706668838335718841728103889762926865170824468853778248218788690477836923810506196123824734161497749959608516696006686636132170757568453580604787755919795592174524983597650269560227275488954007923854274790870813506436362483548275086823725526568750799543401323985440296999244125291260530771165658541527895598372500933787748368588750115449814680799891793038750595225231593911375710912011544700670968169802344361927778344236599352047300169460984657053438933799887319350300217153103265513896162922942200931459569653747966884144773988025343177896468010378725968292855082205968845789219595099796474216482194653923652620762155409455643366085716541598867077687166250678576511992863642681961858072254094972505548864939557089128752228482499497871527037654335057255584176894844542000642516534229268435430152905391914563670789654454846140769235494621511419917839318200577388692516240190072772105756506284942459082216807000340074091483456327354174863311835435452911835678963014315308277483120044020228613185300861970412907074946645073221977121975094987256879645911164337283663367626825228437510941880923981657997305687638032528549238473357305002390378762625197567871844066280415641225228915098840205266354389203833320481532281864529919634144153670932912659713471190496203227714608180134785801749818031691252750799264628741033325152930192713013534360327401922346976269340642244289125933177391883318811205049076545127884229080157907310927370355963587644086496730622171732226636945033845093550075651435686505511246588922543838909984357400983273265165877533759533604260064707588594314006739413650587933937237088350231342409411354136307276735301557710962156578187904775278546455296785477886134427848378523609052273741819352033093946639314036099317601828657818642733755376539321781906038109857347641546244435198155703950736252432656856648434560414336555059464843183561328746179161885859194477274595097220397171060132428730038708857132911049888309306925092328132206593456591649979544166635063248522876834662629029030379838705950741792341485557763770710843303924692373196280686697316002390661669873377024859880454378181869913578179094526109559086682121961014735337565652756761380059499406194384027202384452150264591242478305822084568250949267163757238196836257543868657141636115321996050754659808514129177795025203784631604590113460665385087417259244660567454179898759536216811659664398504542722505802134325972755399566298792058853348593914031796438970510099354996856652947354244141033618485578174580823132002856518950998749138660635242348974304646008713208232711511059464795672224251623124193729649903296020528899462205084057585430988070178100056380729943574580014284286860596661389161685302604697729742333764295497734862972156371850128153157439617490739616232367653627514017303578740045166664557967523319402457065733907302694050749413517622784494647502516027925770923040850190084464529512960113865988553255930878566347628498070201079476075396489626103660298297130889090354928743173812366306328936392114338960303916742661663914437776556109441489224531322926437642467645729482665468773295556876882671420286903777749393978353429612002370638948783289609705994718805997963516736601894639554338803682188211605942826754700541180098317373844296936746590916673197255178721975711772438060942036343753463447963291899239941402248868539037212615456870784137907562443494519800984146335644752555242703956884455304101168765800625970226212209512857507288645363827181469271668718973400148432242664754407573384922743177125713799548577247782021214203967698143676254333490353323602595099153590634190719411173535468766400342664860058747282871651938266701330001555052840376101016610354995959993566989706530304513805351962552974938746653506015499702003392385814257631213662357476716256517182243215070845048550461606127226630504858298109302102884324635741743191889818488639053245541715823669762044323920306678859033900775920965666842582589033647447373776531729926448078626631187538845311389427841350868293633433863632868308067059939321110293917502251509587306727007021887845153901427915389402080788049290088903577434422099367081544946339315410355572427291875769907476820075696642589842561757994152645952731438644523832230821982054622431937974542633791038602280183596639163191971337460505664817629769739712094656556268329302548601266337469880449625388451973670156969320806748936294754170980271797681787542981691216198188683185907838536822544341632015158559024933818182726955199097579938981590393350031942524355844698397507387081949592379811883192911942087328406103950785825674139199807573062493219717541133138584929862303274189790671871298503226449699350053616426486456784847964398694551615484652358392427500264312453266795796829125016340444054432764921399054172282618738946323613995525995128796901158235539034208812545702596183125228824297299427931448519256122988755994252582632228874140683482187333218057115308550749515650544381437234942526915833449168460897304754247205691003780751860427958255462688239815729099815220020839112321631200952435313601255475858421022333960360219187596265766757033385473961909314997551219798998142662541500522422882643911755956366971047648471247654608745470817104006710190638293491540785221581848947673565412298877876369614401954464130687471800049382332121567360967106050509966236654004747240720322613764724665363866039058402681227374040033912097907777410692452233082348801913383123389980364611927801290449025143207623552702101480830691011552078143895808707512044084086432576762088213287323648898740811236677940553074808167225731514878894154459657506015035407958841701909392920948139647235300821780660958612718037151103659260711123018293104172819463530599285618129811217434544748685218251513387374025629325110630285879012366127952007281153612235177142120703524806187167441450088979184600541506311407692070645636975908753143775593467586342978974410275101013172414810100934483279593469854975156307229404815107415584191838730232432283554836957083193439105105606524943160158985552839640189116952568192197102484989320509702690243299729712583295131798990226577844081075731305565372416797278553919794359680212014284437046974532378690462043389516708967956425306221551777607008167572308934280509492617539715219698704856227186097106939644731957735491156918612776295967272500267446020933901052434154200516085750242075112964386650153619732957818653805557755053299972663845815724533065687668266730995512711216919724612194218354334367744575264546651810589774984068482242651280257719389421417332517957837022268049365620915563502982836275949511834515023357781693606855954189270930382400158013973149101021034476687394216514731586272659890991273511452183361440348549290165829409078282137632982670928074021807409671073705804081156326180092062051549640803773152894186593251443027289216971669164623411453552319056886405394324257342698699023236454264022445744620104721749602369854624382448371647943352619472771669828608887367892566587336602992400220895047605916367531742655547505340803463472452675498738265435789843426260741859670148090257094207881799229564596931344428229306066649083448462807022013517521899306790877302612131907592403389884368673386304491719500816058816422417171563613814725621102069225658282945245451607254769084425928270384667149840875661387370412518844394319677852194241301513562392300439118035402155380934751690826883286486844399553334559336919104446686490848504740259144291670025953298874974936810496678262232743917843061714663553986827612895904193363781500792143993002968381105387809628703580170338075437767806555726310154039180949629311877835294230616934919311234822323334501155504075610728239642927724515465020434137092975232276035161432842014942012261612337665383474701752749074756166040106682913898356843768265062749264317704974935264593171500180920296489812553102379579768391468884195012128432922551452977227728710195347458869591464586975677931452585179367140457557057287523760241616751891703753108030916192379118119678527141815568949371103852068162276718407477174731041907639493823929804409229662517954736341499089198387689875670817074125195930197789657612507893875348470411289241810064470890734632325665554233437379686984415686577057674700955396952681652906166232582042995050209241750024432108595470675454297311398336551687996667879899708970581461388654737462592434227914377424601642466419710750713936749434298095720641962756924566818957991411889734781062943039436446926882257031513674025829013298498558924010540159592584098177161805554229150665641971206466734301964992141841897995978658857945203513478777246428754372533261660252615175326083324718491451715275358545734804848370001127622776919930331043522660066640233838902873904844893937462409323359275652555646351168398834165227913936672552949822010215248485307850379813117906744737252002636105871778131257711514566869679699337966194849063353244251945981341933411301360291122285874864598426531252952185832863728848595637638493877525886875246132139299132652399365367180624155981784954110368989794093259031473480255499336729393198474295280940331655271855457407291901788811608077249056740942646877391617409202988815202693243717831898374282381529103209822498192492908327413983636570600132724421391982916716985350671447278425688248161546907766442896002473394420476905619202764664528067360133937276303886262703554482492516516067499149423178725970102178813348893306899450799318987048883956880574631239052782363029176900811704045860882772187767338172851943728373674973833645318261695328837686084054051331020397236384073294002061932003818607659194301414569532605984658221535736124803681883218442748880350038519920473472611217406080252739281847743593117354991521138647251466219993844598297676337989523189490441106838595329735548205840791248663504471107025009337709869305800132891804911087372313155099720509308631996276003590586297616385939302437793801970266671797899579762400124091167907732727405058599606872043972348737264879609220366229078321565894790595891580550626278842557983812135310605007946426187786987254083337365725527132778651292687442151215314958125741587051506950800300595983860984011752708500483411463426821695508118407367198239891731221227683916368156533374049849273092606849659510112143878205701022244073555699427233829995084684724767042164749985533112881063238233660536852960445609042796559554471539458630884610070158242767902156651274026989876004796227853936596959145811451402960077584220351757006420822569876890831085803725433947054719029612147050015093085033365446000278227902532878048926956824734010633537372582535127293436938101272452175502901317868243754465075752010206302758798917441509678656429914570262103596140344964049522702332710740347873882416938940673092179419261133056092121861384949181463230024591800351521397826816725976684009527389166319688455947124090531423259250689659675150091677487822152070377422556554025297719928643668602331631765854506394969119395800169338677149990138276957423464540228864525304273527754186829928733045641183278884686758905161511274679556542619981488603830484916329500056413600293696664556414832253404724892979609986580735429880818190212257559490491663109518129801588742459376303947844914319388737362274816875848665533524599331076693094432923997014281541331840293952637654500325181936180415034358447788442200865751369140224241377977330493396316589221825782322297562041805187438996662203649618766951500353983846600651668157724393460288655736586886995210930472374741572940576036909963445741751946409077749909000175258268801019412546903364072276405040446927214767058310267476796275038154103151976230719213515227438866454756290859557083510441716494750688659334217858760458172998694269956016847600171095472082246935710091539872146362142554611792083267561618563912394944703871268822809288108976633674807783791157574355621541845101414234185590521357721598003940444822917346310185951354594036875972431279418779641820131584383347780839017413058297069944609818559605127647540369821427074487850074992903808581562041413888679990385282483386106959268371244064397765081846769584371799459974101940257590394996918266084946168336631491252844141606488485037008730045471417016076080643927473593259014382503725963731504973065711131565324482151627274865742429502302029731394453131714906935146162856507026217565977062135042802160734930817816860593991364273699534321996205876146428612049668771578313563959779964637372289913430317258524387196488323915022233116417016427664625422928002905863595378176057984786803276062555698821382217551206483548969708793658308676534545275180049854149421350351058495689769395284011123408931500272037236000082182153629596660965564421982449019718624329851597240055371456946067518112537642379818263408413048418562629204381936457477271931879391914547746924472467648580470073078577072208629212036845929066170516525387361408595323902924537004194457056223193331428261454082246204548025505499537039415738722046553302543484554909654053430534425949062214850314133274243403275475690591228127792471411367437599061343150713386665415243850078535298275805795876400671276056900120901738148493447914998345397111351414555384850199545360544857710482886189751752979124782371410717131247160282517589540837590235918239954615493630453635140526723147136280837945271501091459882109944736928603790160673399070828981008246701704674238811863134800391250677405010448457346916605860321624748167856296247403304913808342556677884770691070572692100641103285248988756297701819561824891121366110423198939642603448588586956720498879947632141696871669685314891126884945018098991549980794713840700911232011373056538247679171278812901138720585562513779798271931315293450072298657797513979604073702980795217142207798145539203750036305038026042662883320768312362098841705018070371770651135926878176998834900268456421139140286274973221659746062985976871961006415686052479556292752508464953361475480845716456216297044154689037898562954933812051990467697193563559944247878314967885343863645283659807112428725037562753465631166412720177391269064113108682132171442827509567299380077241808401389150338015611625498285411852157112138875662954585227870010515102440752567128972958644060514560888145941692757163006864390521920821659463682901307735430129596298291805589540040338690400346145681242542333408500010949876422870160139679122484061588631742676339094361886145256365642633167463566388797512380091633569659034939922368610754456170178325040980572497117946129947335013358432276965591547372841357368618999242156212068998284767841653770329201406846222397397266077865743286694607203898987223501195495395808268661074411110811199211253235660570503694417174975782519542932272976585415010418560325367431872046885489145837619701970549384906681776796786768067795677032141872501759873714722797645667339190981108980187759734881461928256674912022204756531166121800940381945987857291489768736700634845231048295360709790026260813992037501429895447242871601724368966770647322244889706093604536087033597908369841109066171766924768657095468746434253144575384152281428242984913800069529397563354641802176671774546983089897315928426352458034890574736824088809347794484073524231957764714411072093550606129207125467081374017285031642808899628418651188356148202480078547383780934843065315756359104696801583677427786144115914560520742053340173965192964630780143368341700668134099385393046269566277794080864436519212791348241639127693624331359815780513357244103538984146137912902814950233683241859879451123311081843831174248629169454165539218436890043834566500557778051087533125782407928015501750558847001041786026678750604514643280219275115819877032725402270942301544326168515529109757145160147074644911071686389816240335462053325801590674127633859749843524839679589424338076075153299934060416366231807744804711759766909481193798621055964524423894477721036721808341231432703245383785397061515701911995673170158760591110523768834744047844261116279500564386414726007812044214828426472011456164250783775314645341286048239840346066102827224385986496071730005371230713128503829370288380328158105928261258859727548559035800362062222816326729730708984599212942844417282618848042658524528634738457590315699548779614506682931901589211836507973342718128284747552809332759500245982508420001248709675088276016567600327541316490416787005991153049387954501607456662188326856883265041680313760890562220445235489738881815555986959025333522728769045595640831499471336634744845352390716736007504436213414230127842389952786492949343715636728583421093419850714079905505461978055394987606587896623752275531868286924543941340303707812320481167543462535238482560927847636393345119717777150907620175215087770518521900064386833013226870232393147047334216093900693090186072089798508836450096428551941709788120431379146326758842312326280707350681383406335124982826433633257057112707643992919408631397364711353864773728618463170318449808087671465127241088498415144606621381869117990614192388210752432326002929421491663058455296990470080800744264388488380654127347574576082727002346032552235609578041003625894868324871764328196288661671237555929029337271157066639068630655905767498302651234320553725495670038830652713991331318446464455867148838097912399241471541085746168703762815593345779671221068074935965016901444462807512522828351689902056988790413520325072082067920523243893947333241313943798950983670879013283025904708733150510828872839653490498257671324957611628677333957517923426674693394278042338738951075561931500007808845727530845360130469813762890454137080348487878085678298908380556846455555571106095957364746254072497527311659293851609788402641561471508076465362212652607451122988531927555876573100937376582767114298009537370120035277785788777182884296559534622555518185778235022197376081568742195897486403534818560850556057738835849898947174556934495455593169433242217061212879931716276461916941823967331191737895836676852655111948330198507136345332163546587853602215331859568943754602564138169397211888113017060252379339690052140776195487597782490084896376138489537100603878308988319630360685157281951910382553750590331979048294488436275717458257113141785378616999962395763824683060300501017216842579650729677824266822097885660098546289764803677017387315405387130570804628516405250366030339382211089323118194602500218485435989650087741743848211619253278143351705320599314653960313628909743572855640287509926465696669682375023202621379512956321419309763687290517147366878950305824098673823292926342796124379118750300024904129165768881830767261935494145296425204376842871253353726532179585572169214183445706871834611985159345352197664231061203960427618335889390986488613079256263020958176048186574189286471719639371459136698476380296396887608340264326271201507516749114846395948822354730963856107146063714782643878083720895154905983054603600461409744957233868966276656319250477205298379024469055895995833131381365391844074188127399179015501938062180599056075385422268267879462248266026983483603399940632913907299232382744212199837384853936923431917771867197250741783693898968844048059112011473157338376563571456273919383363138876669407622896765623527402622846892561956499614742227661971233508214283740047334387672830243441287945404550428202940287671407152864795875622947129527981726239253388227628890410433020042343575625002598045850711013210078636895864875743897863490558146985082788194378164233251340371061910852515774148044221391290382727283687482063294567476380586498860004415270261158191192872345353560780587134120519823688068058270673919635378244423419279701628512334410838564782166360057020651769563106177650912876702560732857410041945269960792998701120321858464670243815384449227425284904029191235861711973293617170504034886866512422566402609204222286492875701034544130721192096460544292148391947162475180618566746564385278018646344479635392159842086258249085889113858537603982252832371816411752220123771257062930788763839861223797227876774847090905413455040484355887449196294417868318823577150802528381525964417645222526053375796486228378672787227247467759076784871645627833901810176039986951918327920652256174839953081936418889157630194869978823068823786837669387615363255282554611147398620845634500399362137927745033793643094244911760953655286537781196371496370368519728057817003685100802519456713378832950768062120015834847387809209714573649118822665195304531826501355255506620309060204088024611203677798335443649896587318328139982050115353354994037120573920057426303418366058226247746512191408518046584421634512263544861324550551141413732996154338634390289220419587003332135956787122307921513469546647467572265956094366706769749031139602361004846375424673243917796035969750573602959359592827956220609017843220564765990594681246018523219206239813283490017320197223601258164616311610272223141217943911572889378947020255727068939256604797369273886479939336397010160855378786982911089606554907743599730216058217988042775358838823552771601048171348576019246651608872308040376243696213213836114073056890654179477539294665341419339244016334631783506731673776916441095615833923271850705207950884741479646370154474397891528681984624550794064161102170777646367171960359311010202188893122869537812473192280154097767336721552776984054473511113338571229772736504490234953061822540018517389650057229594671092738262529761428601081725548763852908579480908768858350899785255829946904320881182367791381704590587220463851420665272928645067652010926145554556598346740741782062816387595964911250476718998075978261996594742951094708723641106081281997936478925613290772609587065168078094730010428269384966696276957097293860344228985023743981215025411868212856871671987798930271488296926064370332747564898888428088185019320419469084381343233923057145462839873839302802077558415932415799069393987868280157014964168942668983846552069694015243816441679778897033236921827698245323701604308022763217719960438837379656326099154574495998501361823299467201347248861621793414061250485775822076396871769060214387450118993740102651275866904029165384726510825924176064168177207472435387791028964003252838882197608555276424246975659789286207086117817227721684933865743138909213457769445921680537256319379371763605360976095667152167116180512068588239906444308046403028573747536032698115732858578337813782087398960788088231917453386962278658804836736335977128167178191947387085064401504219868716623780464103768152791200003479554957312194634834888108251968068412923897014543409487535210330936609220775248664517185405628288194556410352385251942936365310747382844920322547625183788450986953307432123914347841192556235100979514723007396503826619430707332237084589340095906776991589275262300316957685565682750863381071585082633459876842609459530931075442175390007881257046926703144302228995831835486449291250015487988263203020370314773440209901715769256223866569975071455923802477637587765459998740305180075757252454802524548057860201626305808965748826222091336615561796347665271324388694567934902408350595603620267837533830236701912654105166774299692199577142584512464246438654383877145840964077002698267208244934841078484571803313632486764353396353632286490116767533430255430814353467732579171236218916883391327986897060613352901736564355540042429632672766189938218457666731651835378986943831163812489507964996614310545925500507212490888824742673607774052705706489763502045071389449830342151868312960003325738059094202205361009904477715635407714824946934972356057518386030676662885127299661112167726175424253699486512658330798952778058197352024729262558775025218518871938493263514807908803261648797637956253980566902379458956783940268957375096243425772351563716998682633771505476433515675651119084373282563169863552836744158536070668838568019094909011790560379927691196511971614012367544362399759804064373395098740663318763982627960939148185864962588923334641105494836225739280262266871644984626476563493129432536678101594610337019092695667613256615898206885391712027869944303433187133603846956705495157982956213367791288083297828282355995665991966138575101000390778390968294970543929192725470701514484785048599651603764309892454515978610335235111895525377675016195707478310643060384364598541218835904316708246715367602329608036249797977811643464325139171784662614562886172521271773329631430522754157481732700134776818272808084053227271715112183413708844166620884811587078438757291077102189699691389509625600929097984979905678733948819295123385470661194019596203355311157158586984552652081169958312103953150266150115549209424383511390235269460384069686222140171678742112697310981404800877862638431499443792419610540255189082840290621277899017836288618778963643615879033227182976417805929699256475370328353563700839136809556790381665150084647009424856713722604924947944150694370618966617793979656465768587138280837435894725636755694955712802965391662249262891107096344243610647585906168516751908330431758744718802711715671091976325120350977253577812681234248559868310983260534256973932176910145089964084749228838104861865533938294273154539270094655273155085630553720468537860782517449840710246648377424394024475777114323119467642060766517342658082624674295848559663958033215786929891842286212524710026153484260773840540086253597450430941815028523183251372807537920901223683111877722350288886702038920769854219497736533340884517482888487606685704805758064439976407731681272022584015924543696626253056217916549694444962452056016637183756568630538701978829928686541231504907941065750778689226139384670598708821887847626777887347049633918897627628158651570288576447571765550093869899475868486237318840317059472367357031378099493545338279281933479560264576474859664338184715828500127240596281253487721698637319507529363543412270623935831412558684358926265209656572321420033952285546255425008167205814236471948651452432981636244607661104154461128841258678290023116788062299107945680445798640230309464318945586480187270314023900116604346840979976479179839169968187501324572981058647627002791889459507560967343839558299797575882545761396086500143648580287583810797609664232201196049386484432443777800014806438115649001342430243665887311191243679143342836658205104547351371868698896793077697729544681400233535663681770168476185459960300102754052285472347944597268963146089035547547778272891233336726036628528248311895704871616874179482744202782705771359375392428748228849449661511280133786161878952742765137003771991977832774417430615117301397350684609159926306763453786089551471839033054280184635430510694538747474388889034069019770626514223536204950305578618845446874594548494708774043817826841907187175026418928830295714669392705024611352781305899839732618688449957785051798154941352448597245164747375531219965941636975599104030611025594177969426321311092555152513295767227568770257509287904635145218981403389970332694622909353229923967432074237679492532559278822387282718771085165587314000687399276334162940867086414978510178682792086154305092916203601371883908902023889829119132116714687828379369166624995088624095341035889909397645536524267741829415439931097899221852091040195555699889333887486299208122712299132480131870680782844980658303502821287634533739982443914553248172919341902723033961450740954543678017826859986929280845361993336681064296304175316295974564919027385896188176427837375237496922343208255834558925712533034096384655689878621967197008787271923294332803282227143234273167002264384395876798029407201443017880341163202064020547696614971769836354230980119971742342490962304590381371760386479788763482535053782816877294772403375188508833944386388698478474838086658203433699193991255376725921990552208999396066867333978372517905563970598126253083933383065611810089018287371522567570761167445518105901445126203023442273683039952807266226078724065558153865302909612857422786161802424353289643776304718456113095124234113496187261901712157458632815028138143546724813251533014543485372847764142763812461771410553024248684542642952137456012628255667439109010272749680471000514331534309391503197103083314710448730373687199152327224260241256386472641710434136165202507478838415028063058462046191243426253538198547399992348453208849804929766705583870132906021325276672603993803031491612827638458027340442864906210900730575543815432059217098654550966050142728510598578105243125079771384960150761219134454609820368902657938038995188201150765558391953816031740346601755423156996531362480770362015720664817873779142593703451163592565070748053842400774822800139190227801914676645686991836499246299536684485587551983122443085054723007347081893965458270800107589745404454860083250879409161606712533734763685548339278626998779899678497764374015213202693117192055385125130437632041785541910588140095757063692764263453206483135233648908845800669716466373347431199265619499018293348698673372946990562499846528455302174682950459325581580344341515974396625619232441164487524133436000465601646234146586927258237247357505462364013591595361239624611992990543868548860411818142648538052931415753465112412799785327358618322403668368569287509361261135649293224568658570180107473452338183962262477211905055862634543223194074766316424184565441348409056387216241930214241447873462724150506235800774732446020383747761105972767166822547279050548762153656019638618878728917074710233731838168105695942661723310431430968000251395308122842474643453055304177545418484524152071893351923238590065867997201870564557950188825481816685104862873427642855712226359215868144440026914559845084758817451655475304129214282050576077823829525257708054400714776069387998560825538964136985347983360922022099260173351810621188971064764533388798681788858338725645384103038016258414338850518836505666180884724801235090982228211127696489432292450334035973918459967908794672842595035053242000580250438043295477772181608311741665025530816903320438194063105644706710702084539916246091524896989855421260968559141615304849919319733457354624204923808739221903843249135876463603523739847751822869429097522525579286771211482483372188001093338445504880645174557217188406799644112797849533635267959727086092120327191137177700997670784117035939392016992230642530219928731852449415492815682924898512012391521464467959335990044063521038027139788341220571363681317927928925041755631461941467001095370773003348233893592599277380992941413515730550201284434860694956253021812667167927602036134184348266471810936267031900915948751810803526607844331674453543637066974315394151936295187254604972826495876133698352967306400401705505761044076678518019190639144334737189989449964716132307405872688728587319505220349708735518166616476228314923424328149485878291745227070991071145172666218457848313221467488393373391801183234390091648367145801274998925301004453671726446642059621449012286709334552134729302614622204134922962491184422295358976758604932330385151848736619226979615659647944586920913133711280218791827063204851332921986678770742985823348360008556442592475961768008671749780558815838089434391352740517483074893526881926257692600678236195660577025804238201111334835773361367013156812625848633955241123558659189384201035885217947206491053739876437188860964831783090408762569222305176850045009641402410378226423926337551825805388627229326102409493990313569648150034689477322502547370726519954433909734388048647722086091012297875187221045546560656857569409889429330510858498534107949781528262273834185987775006746671967713602788702783309638645066409640640679030769131859537429429919121457351377975909144510768120631786867327229006666080224052313685984132462901347371959763236560849315446017909994324225452941777070640034352535894850128333966489186507379855598615743138461777291477177279797030024412381323244035666441707202438160889841489441981968061086965410691167359401935524676435959727699975334726415276719903445526078467516752605811354341953864612409740898141243428940990378223508575249070743199581370885800024512026974907296954106155769260009433594020217140130423484619263990082131932779075306318370538723074504723058134546561119242278002025276646622501637823032507920604996259957785468512648271821845756867370784621137632141416691469490062029545276629463435507269820566431263858939870687423471437829101081750020468542351416062811605695810285472762542577206129803272833889380749733368865041419972107509505895571219813216864570197827202647900695946175061567075801058428709380637122145010272258560274247136112971160291253905499612910417288414792494068878163863235695434667987941330189600271401690121905149450220384225244670367200501723386715269204227949266836985520579538621180477198196510945137122091823689841743937230923910815521852204498560599455618248527300659645668730639276519957929034501913369652308234490424648538901836242003496915033866917948396019026237924760122454917807332337379255308424608190775187994682072113434831032693680386818019067873082878436736636697323950110569254903172559009086117962017090238904676168884868053235796591748481887260148350880915120863696625837576995884565712128487019113474054006935731090081428598532304464283351479491187093835037794827287093472796523168313596940709950235586451779661791057706259344351452166432506866013952043086017492457066188299613040097977716812422035453058481054625287869385919381064362236089103839109411656163597003301569613119982576655719143573288652725381109231191310464427720347921849415877880978341535534278726310890251799008973393528036312273404084007008940557933818337987232153249389115817551136443247304321862334294346340528997798344189953268164088877325189755176807152317339454090478252096339747007410206483040794084362122925500247970274053004678880266113582060739232165653594854769291924127602613811576603198006465069626020515027655918377421139351737010435764423929720082455804860401692429920949182195029483944933713362816090161512565156955537404608319484167226293624517490872994726717984492622047653975466662734355566638157307259920924338807831854436792735888588979432511952472166862114426838390632288827046619990782742053225313645681813028107619752727544185630082021203750785036218068039070257520571537329654927724966550555879112603559171318725188453538132130586098994490883357217592316447633899674205459968395538223812337228824199666276233544516773299656158548423010226549617439154420779087744376261036961767370966903146166789683122834073455014161749210253876969453056341212072623970341822940227914869770196731716139822795078055297654573033961300564751505453164519208922441323906856128670192188705787478000153348145011769010395387320386074663181409765235024399405947016111896566914414128909720124731532536102464303101692971228524099406579531714801573272243252963352335733131742467991507751580406934328743496062145134976504444762703701388676517746586804585671248363155756904615324649402095564149988708219578819011727164811236700693555827777305359838402566172106934739271907468760116633256992990373385002530280603004860786278987511210584524093231739159372961623964569847425326168590172526395451159991384887870646063361652458730388390681108429250732226327219568325065001129111090998387221729646195374084519525226947428904831268354086176819254321615948597356155709221513232648387758139718792052914636103853853777604026164382241536030959949407537649876810430178645405534276857466444168634325486378014702669868878685356787364190245594891184097541289837810986556532391498138603675192934476423015264028016021300426799520933290873241091955993002350116122766662309218643199106388439408716929903945633438535540549195981273960566548711966975946109200689436348193113930963759234723668895199758714285859655908903261161617487731367201391413503181415126148125858864351208059960649133385077421999251152925431737471850242601077724240270560527606248507425427797662797943743233262226572754663955781927891293444600455170301281636452225219182428589261858900113553927187835490726627975353127899297828598280303419271342608912647012667589168823698188242100755147945647674453855209671419293198720014876865031869628421600705812558183302287189381660093642049516283565632667688622504128069313084783819831493368471532939564832251084484355357075061313322747255709204187577897862269466318926685386464821239182181095761490528270556933525119107993050333717268089524231884366792571125661236627293212995154716829033711924985435546748045807100866741910380443810640633627437825773617331221525384825976471119982582114445956621435823931407498607228249040921014851049455707029589226444118197819112082954749671572686328340993898090803937712038042994535200743550668978652054718048775971813124317943584780623438930282015341991850801646528039975686920672101695255682963853333179385703694242996169343749810057135667294977946872902180818896141795370380063894797260744937019287476649713624345920320770937780551970632901178319540818068302823578091800363833627760329523846301256670490983938300920778793836281579175502219894922329550196684418292900456249744449522426221897539290580000660903608519384593615897884354561484493889199986172042302876774118067854322260224428803653464309538154356795268710664651645934482745576915140483938621984225372686759607823944859635167275073949752629323456604223130590391588377542368913055382420939722813370425477878229072478389203411118942662265064869171380378795816159379864518181234222904246506089976618938940478708341704849828499092665293960198886214907450561127277618448275301988176915491993493700706373544298577518786849210617647623622904796007941545060059408900486137711434854371378797818753734068261170944580590776266063550726084870481227688856289415922667291250806482224095405082396572300290705947268389499129227100755057422119548886272676528563122941193539724604549042179576095933974482398615200196200136148508857756734381567085349619924388080574666736536892793926474639032529511319802464996519465007148633858329998878914291121799535674482102546917131275950571067482893790279516031109335791235390336555751077597835963227991598553756852866873757726543100581365309247762436872588910083729158324361225245109928362499709505103897537277207417220987107288325784318830671259688824608701919742226833547214427838109639258625153394906086018307554207929865621983052197125790118282879022006044008283261136639002165809270322559112963806300383693695905830108268140695221149059986913423699922117691325719973464942739692860720751905619161149799306302959182501046890569204947191294516001268015891781708896472660335090496412288029749699870564972703975569770866575759145799209353957368926603774504495378753655610080071167620573751183984680291885980899355319085935443803116263431527477440920064637385131133282377531353926353985514391801616676987636791989059494931883452704384653922183892535303460872568963933848599290391381900130473459365423423332162446963863597596660612294813237814774305335618280041658348562921854305090629797980602024824513917722385759319467027700610277955362217457785577388010020238792603341563245135518806596783602992164578202837307489217081860354527548641144406232216609412311412805371609821036657191047192756442570892754442240588989258798392696732072917702483731371034994784822760417026349836834093071730254238401947455073015038880011562563485661956719425402129816611518176213108307916808503519745307469838184433452750413009225007882257780206384886639335824689277985245769414551093561398612875362518650556239457939367230488451746900860483818426667875816634965001942486092004229869850775455045950485039229552010121843913740533464716991504230040529588703740571022545596188167008099008097144546489479445330900437699333582150646762949595039329599274531612534615610115170391511626059460354894775118218442489082245092045330341279258044941271332245663944961594041023709968794587972042894002784085224110437191693633062348551561673783684771965124190410926613731962932329134099809196377472760189652788178142303685398275980921318446108583619278642720901252814713202505136689689658278527461425838168302910504649556678112330135351846566379975720293272453113345738812083399503108120160292764705737738651916297737880262499369673634073557474397953433399292880683661514449508550141743307540645742608105745670576710712742725757531681626196734719333425376793018679316162650534796030543531216069600463349629105590589673381500440394142619450377930040433352134253286371709965827705016198694745554628592915265179258039990049910564301002433580702826898869068010513158716774589991938810413059344235375812736474939313103566663872019927317679283456187317835035204028590601916543177084618842577619149958016365248166732293787884306790336827502922573941271721520962808586942525201450235918289532908304012642387230179475618174782132660592660404119269708040000477571262221241315493769783238797975945471117024942626099875416951750686235512691895156904608528749755513942217628138415760804007989108610144521618694028623737494277397377952730353123441985171425284342176372824466014625877784208152998015961526891988734048291126531904268036472551422513298074205760622909851105135390408681236208706014873782823390321888213742949056233856018224395493584928911680124933973622365206665923342723761714876778698657199250931097314045145046060041098195577682546726067498722071733277246411756268711977181793059347853753212253184554729259649939597426951024744170325544204312045198918516981321699819389967553485257871389523160558650120776037642309608437592144843701034929181494666663105761807685017157241606964799352609693767531606335352871297753777005622814698059158186377431646814849480131668861842009400183674223428204873120037027344038425852164496978777523053064387939511751530014058933692010605797199522782068932947632902341827716811125404794736898179707762783628541568579609910453197249855010278805384213738426091315812490390966967990188324426495579704267590608632705546657053799574288881386550136499528282642763648478158044413504562451900121617972357672515504089034429399267183726496316597926284029635206431379449276545769579767747183883352918136665108018240851584349761353473506298067307318893690603904951561029171760809677012870093268850559476519071161086662792867106533604819174824032718255351906617009667241719671621468263304008119868373358285922540667153045645194946239548365657105009297450897355611162926672034782285769949211618808014488036970316865100984864262307184320493062805069509132408744731598892143740433200485926202980425817578692942930306485934590667861171103513124337474397963027211759207926642640900992505622934063992742380149622455301236180604487489361415442840367028240688528963503179759845452961196105963292653619006293345386982058056082434595007931817512613747328656481237799488511358048539653708656455703315984127435830043943771969455376059734544797911946808593047207256344659120236248259939416823424620410044701878350151831225188654286223822836146625708698661943948178768990722323742972866420756746610466114996738432943177683233835711789217652285155907326374838460913202438616496129061726001607647373158663369001454782851176584630218772000799712154017951863895887711757414254623984352293861649760755035145498875542769945219037802914811829886218466345484350048863238404092060394427983656545206050733038143091414485071640172084543789044537266791420948684076724375166514810091446496329641113735698842318079798674013525435705594224157396474428254976741123888193053681124252499189249883905149367906311517026625292009291161735860282661710023996366854982182884433077529005415263169136583456371378012678165826818759718050534557732602373790998871093661794552946177017473829950021307938226833480507120934545815522012340128667879467950471358031625945952754230748151329888445737884830685245822188913815929536687388747220192549487403502344515174466540536500232429052193643011072407948953820013549500717886153354511078485197164162346073856201844127310500059647985890589860395709036249203133148391533549407771685245906631389308062410713995629840355394721853460541513722458080714582523257304059025586456983406882520807128335922037543006849686132428523688877077377410873566334356014340498073625775239062464275020889871539942161028349800280315572036583295121965239163545090180471513172435319487611464572746625262331334598276252795431959298392492357889579796089772624411691261909728537306283635350751750752733795596251027854879624150065039998374802405456823762826724388027036831118495089454291877432467927696137262840532264277321364410444208558497451192352384578891182228988993415219736613602540806606275815753404119884198010142137704398831776982750784104479973198899043134669654438981737589486276664997135496316208374581570949644011210625550541941298242317683120643498765504885152156278816990339356967836410134104721321016485488322328647673952169810470801199762782681259651552860732298743961552686232682411092281229740910095450173622199456862917201213338568463809568284182014242317033612738479680195541569461163818674166822640455586155345911206490022020203511009151756402931708460899282820900073075615275577311682944961299511044813922420256840441694476571842573944052625050641362934525842370888544905039226121425383375416314913595808397479976277142428137658640320297559187297428664685020400155815066355632885740602925778635322578916664255442912896266384381690360749529586435043157498672543309701078726909839817916652507032789048303366099307056763968585352394988652818339195611920640903802842329833242122948961753424532667565204279555517586209299490848001953598576473408149512130771572118532572589405081881932182627462867577400948483227610754569776323014297595504426599056316472605163008167624719479742435327528864881629443003141294510924209907604587797365277326318053324303451971968052128595240931629600559048555673095850385277220589694595022511149195302146957128450102763436863294325196383677402315393159008453556215160574894588116051683762383562304179327585094112813111769926188540183312232307472645738436407014670986918230018377361947381705929344979082623224475122232658365185451937501307020742359710372808768062215859161566070276336351095279413505390096053246361743117619906043515343605821438870024738994972552816681868302722697757393583695797987918144130517681098671926925391966189645523224594876113046149482783261241733137969586841777271747564716174469168677748519259790100200291738607910149198152883598634222700020879602309153934054231487437329516766822154245050333492878836487848985921418177072498148622129365434483020447411542152697763702491525725449323959094227625465170386677860583775519057870295003398227392507612419921015764505916095557760889515103796056065562324261677957302944054843087201264079607049142215440511304314066542285278008187097972659524274473473294239903217427448971282014655454804545316075803509208364419438165414943157576581363541847506833791616714037317580236774940182683663967405243364083012329455633821226627048401400431377935956054379154406035662360304562992661834837181820838058260719613760474266015284403171716720775458419604735301845622639746856575454512118042832716457639941101758006433095269904810755378970032144279043414185899136081977853607083046159816503328779577663928886135315716337030629968014428224021764116178931108204530867598563497838553243673313213654395394021735885412458462598369969523980636725282307713967629576229680348947099577511965391039062247183362484987077769380968268243225160782557978935137901312415212713807880497016047405800780131624498600213858324379839170527101476024146018334794827675407271796183247973656716876911603395303796841814444906271096564602680933000588087790749452342089519226554603843953570450565306662076693888902669314259046745633210383528785212713500410937322684739296223794770164414940211136750478859886738747844618184662777404865778630886672010376876621710504754896846933897253659980395532736678409807059733165363886777901454252803038567682950771605662989874088796087773344668876247043734763392463674401752744666638044189723724146220197024342981647639325678025110545051178060207511458409080403536631696887697711459334291112792449430054074177544348355172792572177889408867535236758996161232681969375970152580071325744632873358393101170105021597747642539252125251410155810728980550742295898186908190118868460798568592437280480803669342830124301097793511422012422067342848374552088739855819154504973943914712927099960037568316568478549749224384698062414213119610214638019108263557706571676246872411340830152941370774573326232188172366268924679071766212352963367084320096555810839864083301262965133563518020815185321727543077934046762111408269644575290831895857141741270058930238214064853775609593921808770687944527433653019150645090904211714213928391145370812222225912474971245159718117876195797481454985639459078884718714454559483948764532897864687548910281806389208828891984009626388029568696359423062333693559234458604726948462251742717777499405111347975368882800797303071621837904927977446560697505235218845337004007792011348547973705982582496247969083161800183228800510746152242248321980364175853945473863099142376147524370909280730188455393036484927815065362300595953324568007769652862466109416484313731627585099823169997078453116908812820462648627268592977859364970422557702172384693837667278282941861309410624423469507091329025125249200714919631514043745453696388216241191488617122526969205737568922396156130678923575530883256746940016684445793850347147458379285691416132443202357061494341950989618439495265694475579157356398310436231082015539989373275379738109376022823029736109239044076635703887545621708573387853916109613471686502949818547539340763251177390982059217566098406757889019113892736245294515040749667445666005942766299814891239715728515105188359708966730865802829095200754278825935365228709219126355699047876956278903455924433844260535041894786290150917874157255200253835042255641497052486888121688915496419249304400924157085269960781296972373961190135692501273315033277214835414508935424037623955971237508504642527757469315524073993645122828625893619648671189857578238095378935068582119471725303547706026186750969371217117270738870200965582839376406011228981256904033017519735480010521807163442519797142343483563394263121438969322068733757457148136591666397614569785929117963729937780124304907379416865125802611319447608715951838307509911466309570080265602315363459638703908956209341101632405995338478287378235022075626855896810792750445078316495436030171010390195240501613341995244727359891034323743272630456103681188469703168014336154614457103769519039909531476082063362655813050301152169661704385774003897386534583577753347740523339227873041397533625456654087640023409428936517963865183884444021337911838464628381880821360636529017611098385967600998770534657330501118587754155616746545074929198729492305814593020256232956761249426237546265958773879612094593399567203792221243453623582275742527707909021792484363092743970271398515037581793079767514838836233099119908635580558004982811914422959038835243347745129884721280704616788795085081584248285955561446134319537139264270051506177727892510680030268445489214521607556976280744501990469293260436925242849171674706952433985691131621161608932388861414662889034168835450168247440851127370367325240799196963086064312081816453099204419716083982388099155259049492361932980873790008927180051613155641184548937155792126962423122431664497466387194901129629781213140490652249419388741426999478150096706078838350227020052149975884721219711207865598643515661493195933078751534388339143143588410192871468149950792554597667527190639532157455210983883575917290818420171489842482489331162158401992346368228097981131191325470757220937819888698598646982244202008620776884276751619508132012180213658518805185881694866064639434221796398577196263909232974807000359561203040547130126594109664694755799613704745328064814653670323500345518126817636613465249374876740200525788005680091356018895335660202350175668879842882338702652716795501877845858734962946462843341950930777902456297968203232266667915917146506584224151553259373937668755716901879440791335711843003588438396323227673411495414218870363791523118589799292016881959546053836220602154223159384517271537761179251565929858926225574104177165672152223018413823777898140843402905159562117250867260206513000058621127587029103937386376735830855066827863949038614452371383280425996157629585078999308313001575490715338287155202034470312866703874025514217358779735437371756204519425908015731871126660626317298405094134352994000263787765550957637719935954004560537166281852747709173361118039087971583822239753798553622835733387987489308361115732096563827370919594828756014750913979462497171278109762081369093332910640300829327919977583414929201891024785216898218830301624475987958923843334238302433326437011826305036536427340169998062486621351340163985492135389107231586243581312027030952081336685403191891404813007325411138765877005274267437572237995550970012436074500193921582397138455870697096110886687338392417986299451244540217883357672699452158881965864838243789128917932379043933684652570994113964753247871183270231069866448778633875687197933826518304529823058651869585346646981681461511597596855002522451514743160232388709957869710109046562926261342202627526208207526455983995036446167260500821180260915267141449983643440988364006258254112321992488458264017882273901437120885631185695994546743596486947074946391909420376983362370384225651636243374659032999276288950947282376227326360233802653826886154385577054542733919088726001760166219958853393568234437541641487478214004268565957923271477374725290646366710483799417306020308744155178947640906869773083670234097486432054213338587513253058962042789802300105933875616581407687459110473969035994102706660185503828054382744309286813204805504542022442755077749315623695396695341161426955689557961531759979153149483790277134759264891769037743726716644312776374862640102842097912113159592271232129361535592916211777152346644317232128291893842971659871833378756218091611340658722115289918697601120147753861735132346722745040609432582612472548474911841860847181468379256907972052331954498109566003241545791954175040013622438745291387376316294395931334659364583886930937151594692210011425983622452599782173135707424642598754702950516832243879307119449531308118214856491271033839292849628931833377520960527782788255447651220604633052485916794224799833037385916670836932290232966006054647448788632623144726186404885625566083224037452574470852065500556405868906349838595849989795571076768916019242705561257266856586157603511746127264228653752024926022234155821039594400996861573933616356364016955436253744446965747643220535570043492826861731459400891407899078091394111992944266322991969460399744674676014420030797128949819708096007334165345458504235950562027284814488011991667179497743191940503791086409025155164708401313351629886206178393372557986707673712117306483781602038673558583169586737951269507823161026965551670209480217857283233254124330366439662216455311767762118578275217032595045422110208293630782627816067595094167456874877403367715497920139663071495672803102955946996190002177600432465875241395173038171451818914787206285481925261800053600757563986064429039437053880286979265714683786940817767306181032866217385843851917730187081468985049030548289426473273799826095007814152340014651423410274426619916898989845158638002190510292375505580430277252523980849281147687100425269076750219581990841201732116397569401000882492554922010941302847861275906426096575998129435649215831651968503613177838321118045724995005529622578213518062912664732692061459209674351713718585634644872237742326360019398114440978777268193223503858479675343604359231642327233641497838960387012272927689577600000033006379520711439819331713990761506874299950886304648107170907540248853071120519320453919762905563761266164739370229785606680850401420846829095517078268716134015973113869360137650119753958737236064718330472025580847426613088008677796616529737442233044578214398100146918767738744456459942398328594125574115103660921671546877799341222844190704457072642678423165096864308282257284735459149263786247898642597548481088457497909717531689286088901511696352403876288634727224414659282202581840033279210202976644139779354115960907755759737820543430593987201234214022434206178191999740762957692106622880667838716330575965310167313949198678025021853958952709933578571619741143332061536886966403289112662575757613725783528003197536990925933275741544924276436543149672868926305799886572397518201413116359852453171797881287167537655575116445330718669544578131986391795548183481205868826740978571544259077144933093761658451953044219582199886953420490310794017221082307107244640342169598046928712762115503441978364493217278224751303389691609387210321995031015180743305792551334768425707320361668480702611847339386824473135729088187412501804652200912343161481843294200419277495997107769699316148864785425708429816763619208278816484163323127729463866131287126941075691085316180339785875644925875362082442506286168596107881229286288173046764345909529422163279447450311309828891325387667037198685534116354298209536093025057872757738227140388063742723161745825700469929758870973905441935900759014966450008447329644791407792668661762082679277094038610482462728069456650079764813680380519029009486703333875199177762479720287669323856371186952363555429472958754600226615109929685993932857828823887900465356922826064473944609451104599804581326740185322751466098409230085290120284743627231894475440996901917670017928613085853707576379361107395824003873957195258477315697665215476476473856807138973039809064401420256811625461657171166028732497761528712565860649092439545915234244679499310248453312343070281444056449064393989935848510367844493003639343945741161525566621647314257931413762461895938546233697272896643703000144368540533249569736362485544232508735684372748796689688717949931950611675028545609509011511615672677621113046875792497690754587216243054079661403263616515525012929443590943062186199243339922862748961032561648509943236739474724303714171049170528469075683261946440512762557730726293542043922304908161404956110037160014149195054158938722986353506222373532116952399594504215773666963093951629836989122082727418675139577254156767657436959177461419703617628078818648791140528522358053051661182523229759969930121474544706838533577665978290517017461453310360081306981535005894731252280772193957779816083304758012031580111301219050335036811040680183867944701754179667079199867902893716545057228113640933103145292151892664809390078525300834142783972593577400142269782124690383193173833412060769682244000378595361019863894678256409989627876709971573121420561388495262300376430179445825116178542664689564730511436233034504703282317511979962356315246310607537815918001006528428870644944392839607749590086244570080668505323217969309652417197756715741407662348099674545309674329383906365419614882204934792875668473923495710578853143107647644703557522133857038344773214104010262270072784496673529298935769360765001483425104193972403411464524493064966061349195931649401209209122836137707185099176064944653089560397347867169424298390387238822118759270532373270220904422065693602645062257837893562773990971134826749582426044162389741869860832386999076621534922016470300364555102422362820381056370678076543637858734825038705180414625177873275315645663957730235405411531554640862022601089066494261694387966554487826270821351646210877402250932043292744963092963604678984085500981183002597830001700525501814413883018893804212107012288991043467385525953429513225626215340035275519732738818039091369023700255545488778035107484050957300028444577125983021640535353191665467723376407916141017479080957280296456876153947602138138965738430245961606553178718963624119928519016943399996763263457430606588535321265145254093580733695016924092086283944438716088898765203010256485768281332637140253570059866796822727979839646435811356959598213860711694200755149561321732077132280225882366580976019334065405163728963091038011710491602631917386935765756282608940424518803495716905785992469512392264520891516374399875988600103871736875815488706493510014306968951070231986210322721222848428755544040501789596289650499582157958469806808968784540561349500859813707967624648385720163380550058018098050932004041384190202860025721513830786308287667106828081034203148780444412387697654926527955278607209099456231351470452910126595783646972755800604504123238319971149587258314145284235765614983081096123237011286634070720649701145458316885804787449632424068791249078538028472922197600941170630971160313149337309775278829668823075776858713802460936372808181234372633669350039462998589423480288976060468586884285313039205779151472063154721876252679197064230605263942793593799499590193725550892513177197187384590717645523356868322827176109192509464333143343789089181594215280985529469279795750765416150299761158833659686414187175216408806258187763447970266564157878482576794512746662123976748791719490652769976136614802822415729376124729127406805429850225869082987237240891362879333598937237662780877648758480007209286623634684817356918877231994551253378382380651853117048436621994989651302472379845152314992084950611787587119147276718267608994709968249609353989733193987743430739928628305808757805406402138154921421939595350806703802425382481382168524104313493626033703781092950559899376221547487599216083997853712619407064852672568557687665785717136877424895391924868777116993992750465048187767089802204641844190461960112388926534935067206054189637742331291650088208216787497255835279997476754917390590257997377236352360831559293069032766663720099044794783642418695395399845128479803454185369824070313673205536551909350345173428883617163628406056025877157119733436222179143674259465579137625144549149334221992879736911422591360231963910480714481339873178662279354950120433054331696335718127618532339104903004198519124746941332119874438614019051729303482229725736841871076087965816775800845338423961922376486925011042928206884827214782369323553170786626831514067728376571565579982897115145384934946310278533787599269996450119240065040923257742839608779614677725713284932994721541691007924595153069065904989184849544569292763378940019059715015370171095197430202456393294220762477248394196540779419843038245027171856229890293306524799915363033859237072183152790155623317280927001307938829050463327238891164036631632420067465329809767376209863866927872454015985094448089737552607769149085243416668071865330491593664492206091748608818051695419154863351568374217939215570979136710503213016705466893926940547849776019713339255546357451829259925258214911568471648016214832053340015577765846938007655284258110397727337051688213451561936989178481100752085539260311183508542556512278794028624746592626800188227755075889472704165030707163558382937977321777667691782117614943151846031528169735235621772530920544712461053046855928702756953930851128588928491576838845028464045768496118199463506075167146513999714200152011045637377636181924715291061120125419870715411808363071027141898335199685887341209658797440638529844320732245922155196501673475388531243782088687627130670333857311517388555997206272405782145269518907686700350334391139042059862368205060605439452968832106147499343556401074816216882961112706300405657781920558260303362166364179301966525456007417485596026767487903389677078958816609542555178977817764647456610421280450013684366121412738298435735510878656038804714218369430437085102326444684632582304137859678996550629290043128751486194222728982295605531033055476611196990887238267759998906389865402957956092761319105918457005397942490466627850246455030408327682053408254547745922463615719295570357368620554883346643303527366913241402430641229920568057459528512817770685607763685206068779427090245542930440177124595755210122250504803742452250056003033410674334205067247921007533966510329313740065577761543378251350440338551253018954132159625531122781759180519177463101117611286279816987954801807974095565313633227563331573253054294616982994304638941180210831731299511346040173167119705566808887714850662300969658267136691097633070844290351911532958503020365609067277713090193491811471124358418689263388909886209374784505133164691738014737255454639521362892922738018395855043233902158428974285679213105742501887668813174344975592893177567555674940529942192998901237526500152317960888071168449385334296680455086013920274883564678525723702205424148976460910221250858067716139597046477652265069787203720928169262926045528893472907499564788790807335151906045749541979861969604646708248111060964988248249231086633626069869472812770427362955979717595737445804254747824874075315088940581732136710236938752769803449734344295689146712462916278970585225522688852627292052217823365065331047253677577385415919451900432069058299080432324640407053473009906349643996345112224991778358141571014924490621222029966384921981545003036909831249337457988216729694468976642824233559891501269086945551386349535821555687757960522769302859225164963982254528239546795329848656804390290475532741726027796384539811915264489169173265275768342268641831148328295061684937182426948929786549797806566674654175356396722714864790718362361330903516444173851865954299444459913754883870224949947693849868034389683698506735556539352078489223328314851233304346700098778548994008120745220071966679955172784668213028039695023102919558891061324279891264876919054076648273982865106338855481648995302871898205668954643097616147253164483337676484661425935472665392430682786182144230782481532891055159154945050914986268961454394184200029275438142403516306314090806280358675837395510877012524093456354837197703453608361642141877258293429115664289300868936503947137159972220861451534592855070485182971030086038117117916676434051236276815074716737476790250228724297848160044070462479953279881480784282212546657862333611553256306795305484800708819736870297488884929029191820379277312756692362971666438120741016518576432346635916210830435603192039496837910969322194366762604980930579672210095310041053532406027197741312474581181364478420107006529982510307331442917632796409761570925012653976642125272384897431266475965644001921181171104030745170284462948234573403249888779754391036497307914408984609483347526903609555425175833198769134902937655986706518099516286469746183976914844611700436708311453674584071432849000372742908493550608787609987500869473288912896549647578831614710732031403246319491718853368259381001574807888019824422613127627717698454349609896818248605892588324437457289097453309759471664570021028213940665929356339491601771883426605109796449555602325341388532669781468586993518862673187923610880000220337862304135649922423061989281291763093186274561949594743342498890023063023664348410307269706540055077357387233190102661362340389745846582676608910027137517763193289678300714339342055399506071295873432917183299091529648501283548404997817995604410812687652296842020792240659471737707075240263657571884939369133264005128574847517338537273761991107848057180564589354948532658150063846402320735516036850203098179581108414915635153216947700843878158559668189162206662151387964093407485553626379581700640807785525144787958322621152313319269785228939307960098359416256754867561432006889655535372110045248229632859525753405519170710433565877248387306833261889772013426083822112466775968649468755398008527899313898004945637468706247849583572800294556432633714518156819450936198300865505737030813870861957203868788440136092049042885143824098943285103023813512815167190212497429281298136421676867949155042239172034289553117450464316627360652059670975493991280194870296105220796309560026923837724254907423467779870184266973278510962716564619617720765444077835035537139398310124467324768453816262938070472045534684218047808426748835335774002342155629469163152149921481358018482946856343068988032524434407423576881627653108608578364364205658129994930537221082669134928582168809804643858623765837154460161863201771546913633847734886105838093067683979662083439474103822265111176024205373056548204754621743251985316271269439240595378562213854986340506221941451220830087620091319417561894331804390586799084967162689636390466593762237704664233973528342113193450297284641450696605503798627332813209759522507738205006693377739181245522773640777485813114353807257808905912323176031195616131175187369501437156457918627343682711389639914740154414227746857503124460944282848044365364683836546123295461041113287662849530569012416640444602720711588850539517340694347973728668868243042626344011783792135269017273030941542674230606151489340644392000828244964298471088788496836377519238352742296568486034221435410718276342086729258556856822617863632179938851116308221709151568434940337801200853019014871153294080917916298622849281003810363708841446466269284841219085138004867500258024720695907789345523218754734108799156009191550911431667697384009782806714460567395214231791201035131219698363600629732346607909072027346770484318580158835583263040725864311221215249904356113352039596204129047491838097291364479780077188913474355908674906668779387836109193820480570708038680552660077964526533752220830330234922140461389447302199933822801631102791116041338372584202622226626275349744545630666176262746329562868451427419819279517537480449186122875243753053491496853405494891464093423446985732959497872135622717113481987118962249709219048907840036984377561093199758048234179961027474004482136215641235392696922209634618671629577021715351446116114868006059679056973610802840283813870173959748719639877428680720842359583628170330427679095692341078717399716184711116266806436765407172875231203914342013294341972643522635311523951948093884022436273179497559911061313733044907622061759851923649238097776880015928700231702305932941098938673473563002440388558533460736409144357349305996606230284259352970759812502261917613142687316277358860967185967854811820464904415212880487365169310281796162431608145732003762975270169474178759415024374990035799062606425103465263444199475482615915309210614501983638544123635385829690088509562656654063109754327021518839945959659392550091899751835282861018137071533754065109423831055332813675630975147536173446964624410365902681538816981873308469590486191476028392222237838655461095742949168248518833795148153370952944807557686853630478693609965293127666420536838689204960821848054167769166943562240707171675970866205272823099618054315369953378020175051037007592212298578425331764917023971816863428133163076369989650507150571504630398771356395744594104984876966744538820984710766973327917171985135351139537682291405463726779935662832898413836689695111363789024170593308136210706465642761535815602125310620829252116325204379785987231034604914918469941395726644488621275870614390145247773177656677647001328454975660173515307817403056203439916706938481053931265646873538750347233209507943970209091938627783118616703488203284968856205465680626008067653239983442361079244881998143846846930472125809988510964501712574939630152572115953954950326790078384761392237833104622817826512005604974979021592392279291658252074600091138070975851821673378063569387207557674754437512263785700114729614948067599168147320230106615050772409230511280580988764797795120089188651260971709217102319701662323231992577168548418423450390589121121433743676782627797226711465326319674772654357789521796050581058431903759579914823642820064542379933715959911820209393815191239173681915747273133817214908853004880641909690411552285994958163688705858659270378159851575840121413875613588259098589365358546760589186590171587045747903568143149117333284411694931496265630923453334904791760879423669970816030877613656404858382020985297835862518101079252098441071962752834185443333253385586565434439744823172976844248622709166116428329162175193878792136668078600426636152822870139703894632043097822949361480169376987619804302374773367817708349653094789552695769275623299381212085146277614389900643650125806237873906563237711709880684771479981653248208065421301832529877370920750268350838432850248467793679906237170003921074841625398192307784894874316039924316506100065443921148695175761936603637856809692294054997831668097271479170711188579957667023665005595948346197922014453308107360898384753428752456972377519150740755816423617219394948876363204518606041894287349709800577979318656105028345382970764520808447676055287094547036159608620697661659136318375279199294744241051121111428509876251583571010868814462702306882754277861207344398687034354918720457797641661724438369367415215579031466626895025807547585271086894223635792200974079863587940760549655836314086098177237460434425411964759402600791274253133223849742760928137940720189976749731269497225887719031933140315503479571600655992405531567406681247443501745235165785389873815494186116298568693571220334512779292495072205044298007908418014468838476767914622376721016389578619720598342677314376233530792897862812933360487932803935748920870342937872517390391159456622510859025278283733990788135470327145023398266199990305819529054322890827538560843708328659488465218655719521461990354261452734277689555856233265392769233370035431618148658374763870350788920932477544388078519252546846071297705058721531542005254798902795394524319551312648989756450643998421079022751618294044464864637803997775264215031678121420691246372637749687530798333736515395381212897782055354995849240074703205549312424512223959921074444808652118874336406059225155345138683210058706903351144136387784808435326557918849930289429061815953377728295139152810039505109015214598737438322590801075088311530727188721512967428551353795365247860551934643938503908500262321757858701289872010437616744618595133418578857250854719749215684082246257118699791469622134630964527966723976571058528625623684240702772429105578697451962855637299274670939235004519702009947309052671259435860334068914402711739216623225025058727891243777816481070875686194181042703931034295296199885672279104280145670647542216621511853142417592428594776170220300341720190794416358801618200577178552167130182851566597082506182700932199468774523791134017905308891766490188631319984454672547098018640530577415876829683906936755689751114453406649265304124319512968827021774164583853434685399790583271396078366900649214710872605819363616055984112546466538694784516528319176135753731032920374837967458315630628657380357310249142129326963003360123521245894056048472887037380812715135968404563573319069208866115483593341507572821209025196656982560884871229209818114924085143911138206336496618194911403255657909901501337811337356281553931479084225310518303879893113971817319268703761226433579884726937534877608871524126377330582837482149540398149741180263801619080501938869128915750252414733061217800799998465441033110855302468695796316402344571775346449870048678799693898197954379910367567583714578873627710371453512708120858918684948475663693781942545283512196441737340359250803526158272655826505377789734134596915471805403685058550150085029903397119440180581472566422954468513504154139510089119114863919553726734469793986286240177962662786582243854030323652243824109619725074877664695569464902698342582321222798294791350547455223088096321929248967775436869113692638831237564025344352671274374724209304154926483167428956122886561734988061413330799489634730729592608528680735304852242377985423044143835399226819687141119036994819587449134617563546391130967409243939655896558272597160225648242592810935044359927431765027868238949607636484239355123885914925919694966809685199439493508367157789412616948727962414554819763964364145575950977150923782734358895952844278151173712560720836597998503511990593484690532217804607530253025332475023546314212340982599461430096747908902853303052978031550066459042799636504853924873526131737314393989803461270360525704346501547342332158792285437673833384681763901989940802633865510763280796430865284302858162332291325061879993997113671064397446694369713597487270313135292750872007349625136938213888207289733933431415036375926552430385356424016104127575380176622605353520264264669665074110907272693800819283700818716392141017292925980779255444080674019344496955668423992738358749885379210749214308856990750266631309231806865460551286601792697013064040922056377200147168345224047453122720947966265006815893388514282295248607545533346741814961704318158815923952363421127420609701799835858566580046341403353060231398753553631361862322200936922056623329144676632286171283679690685146686155171195573757966931781903049742524268636503266033314464904460492271265140945333575126658677584445364117264257261242226489030137582345779976174450103744235459168148609289330148755153241754322681151468027894930287456759491057670640150171180299859627353758701811242211493538580489465751128985996146303936398400041164281408304238486628955312448212262602773106518690947178587033890149816440884457476974890203382329786079508404975664466920512834513110828808491106968574349729844928659481374504140107555114213064517532181983367252673737485947060432646319043794489493090746924739142276944731729087820262776344999842921144508719273000804133816874352356664241871014868299320538987116405656074949530537524797508212720379951326120570401902850124259937862715771900802140417360987377986202616041855213238578577300040935236166917001868249975773256250009356836112801752930757401561607028791744175773236214616251495270020188332349081384083133003545449508091880330926679372292372495222667581128876801398186450222282736676954071060347064813820141441576272331270179550700792068937620748428254993631639596664786043218910829566581825928612466643785817639964596403716411513769459313740197610616456168552039909412519080339911007434615552022867499801214564180487002000536171478830848192222061309587946790263852850834830174496360664643937583733419325551485090620142374737107091371432064838843081057522219700634932236175857123793817999285846313094507207744165478889245595822380509131940605755739752423929952247329247447975581740071013512059624619414483744934036732433167055374402998068335897758235898437943727789617771586585809904990999332361134610233311054930198460113678564034616691978978661349530827811369489440361762342336379193590084392241833449231706792833911150403622890178710079459103944869280975188145112965864000097081418076256578901993817958067775270915368284313971007221711632024605797946380404772221335841937722883092451745215146028602095582870444286693742480490709673624980565747914216790705864428034005561510437468672639985984825362341494659998431613281618581310334401671747048678828947621651051879362921097549000764535890810078413493045924530901959105496545588106580553084894810657681786873722402253730107263750251834546551211110541117789299179091170404752087165631662067529387318837838005536622672803139150053366417525454901410910052437905721034434602489829393569676711154709213791646077124317151218759522405473253785871004276977426995723414176628543907678480008680788882999780534494900004148712057839329975026754932144310923836628451277936984576774545883723372990682036414544503865762666786525156444286640330036388979687574579590349220367158335917764183822107529558406039739767440848436038425006265278906581286190373368817129208645314360264307405859222983587202950229764240105555040271078625412491218789370955149617643996600235280626180205077004208274033176569964561802221725247071751902067064397720769874395553591393192248259696887970179320392197212134828961548656250469780272118025762531657927341899714467170904900537686195322457289855959639878389460898791760905589626405434000618019544909812898845867313797632735042192854993485428430874168038285925342031767151645965735365736200026142488951296261384636806469790770221458709423336025074122897548857436446767818388400260028672642077284537945935144656947026822181491533099752985635850273456811356308556542351668056604359792723116640584765137368692840667258078986694941381105762910195409208202467388154275366987072655742826137566147951341534067008709410566229785569194626678589291714410346294665790452387099114108728838075665056979959870831025708946755567863213785573566762007582317935856880732962144839900721233918478874365847571428328905703938873743740281418659551758485336483086783069965543803519450399935307209673550303069022405477808566250779508604480607169891663892211445629577550240322621051770552497966484375176384795914476474969288213438620951944904942107918381799446367731816041070795822707586539155060448742695075829877548865696161947807262613082032960040610529156886557382367976643709293979369777963051915432445617804375226566115141101967121794412294127196777693007016412385072160125032276109612272265781657693000274113912733188614114411575986338766837996647085891945756003018750016611699731957881098658722323995233121353914103353449748308430073452207492706655940336228730907205421064460737172723605677380909322310936016518845866532126202462250850031256643834164245479175681526335249192936391547031403145623063568384609989239053883081326689370508760499759947740230327076292031582854638775412867576849199933336438260106845863274420097943619193987766200659280046525538888819885731463873811735251081670664242887426545768270225097058235945048332430113186293773265111887170938999612540858745760743992328592734380263158207066663222578125926830328384000885496802251447956976214948875959132393408064918057500024711131699209886935461908223368295241561499925110558160593585684281423787545167252722115142002102525589395211023556505367421552023542474261962699522989892834838031704637708198253490467132018688938480733891268664657020273862288114991878919937885938936373443984218473926833636636070096428443829883901569553734715659144373274942770226145641154205450738062743505369199854570426147849465394551466513640390862274213766530402462507453546115582739384286211766402994817485565039320954303965175429392223742841862690185895706381729045229546978541853109564276457125898094170127656193781521491208765403390458682978300827186853905819574857260596883753314641514634215558288005401657477410798416532475688464790649018326592147658422176400306577685918270001854452181501686746099756877611534312056488820213269564750651982281106145437127570664849270875931313815382208990070172132723891737492603779356157665971041470383167193594256288547479685164690807833812583797058854673310150814899895721468547284657696006851329017705187956460495386194365793576867596071782009291947895841646734114107063693963176563385295601473912318206488732034332115057710966552083966520769243695298861271161771486534287190578803767390731898977815361747625353107236538284263664501164697265034568459382546220019440569568559522673190641555606069070263545501399798109907434807926610537178618671565918833592281430058033872354121628866679250626506424358573765152080054883131141979778298628430339364063935692488689303431460879783797938842570442009328563166908777846425967156438586801627859984078094596037782087172485823242344454551354751986448226427070785540994115365825504297640173128054298482679262712171630328632185495009690542721958383070281530968868277962145731379009832222408380565387646237063911595126215633303671713873777065131410629568767643484850489953617997650569422135544798811478638611228143470232712476564425035057664244077806043536654458356896918449120268858395197869278611194072110124660063325045947702415682757993735333559680494252637160138775296389877040760584718083188868460691771896781435589903076487390538952119578331569366625131606510337480394242389364783665764618825466166706362213640325299203579653977004842104583921137588025015701486439417687113698204083633919935431571430025416687350409026179553777738583298194110633463244775127667479800973568424331668165827548327007164610992229550419781262696114010356012665911775078262990704959794409699892733049404581402297753615760941203177520880441611116853383525416180205927930676866186057566841352737318095518642335120262395883258734101991125306115099072348291323394036813679945292776877459559851849857373678311772025195047791688684837364872772286980496164565628141024971028769815738174515049652467074137949797845871259893869621081585363704359530956607150735583918385827562512816680569053006533512265646468509998440940235059793788422792037692878585075926391544382388406514630614083684337050058158190693334599646931992277621858376979417215073994536510334093619430108146796992199504469300957648065341688521350944112015811572107225603653471328009140304673642275178199718527522752243947167885545377867756813434197131114460533768975376625152089315789855581187503715682542668137037153212493738520142916654779203229731335856544435228021651187928006576146805323387496378618484044100886796664073567539873441087155762705552621737444486792298097052690684827188254513840735923268776205516486489016919055093882935099856704616003309421260624479651282007895707754900735639145876555183332735614318532699725131720528436379271915897123798191686730663978105293395363450518197407129351834653343432280782668805959225023317868937489290303025148453661529980842889288152969490372719383420839598110676691280380517019791327572171800651512771788884125982413671560821250649513061927795493712650120400437869193208067508605987229118958862995569508629859827563263055695174935186164703483949171081457511432408460743310043158485745751369291339205461764628365522173909492916891248940783111096875436170494927310852548937929158092930220949087658803551400296207450260703103610394994286412931348941290593984763630739472508627245621695354749826261767448626529750995283549622326323677469015181585056667530766219494988978009096504308686053043138011088294737850784346464513785114446975193809207086264612275513302137393322074220558934073267770593991200320901760971581008223944382364816063421320013456895655011959125862976547223910233209934771393193821285819160426831854484284240497094979478685697040465125716489002974229975281140815293980338317406773689615870004982748252582547701083987170382698190579864780344314872038624792825853255481811708861771361315460340954458458148718352907569952912041353540538012992578478487772810646001602003130661434108807909864928323296281295767491978325905670737442736543153450968890520792548857299498017237198687352422640761137160396475367867174899951928606480932395219096828417770013158745479710671201522099650268410315498291497752121452295543787015838457857294072976705900998034461080978792237268995848251122109108512609181602474474206505342138345115837166405266130706361246700612747409825685186270311368018915429413768596056268036374135826652955292498659552127552508018613483448372480365617342914834310588432715605192922658711153037777463834118936796006879211149152569147498596648048332448302567803760086527969804589922680081265873944970637462075006923913364936354493878668686286241056275007115251376178277659828306327618799819077094440554843280932807818840887493048819716480613177560010476799447933113992534491591912931651573175367713138622748706514674510340080517454705902521942386514849822786441819912402541755624527359097228432163297116668281866719750595595849346189524897602001311649558256248546171909738378196219248139296401976902978220438477194775265460102579768708986640548731635603375784782844213667272173645782950664494581408293847708809390838508254665203725367535799492412089184238315742602853164188186600134192483130859306790058237967920250663491017723025621413295148063659957830274228951667060459283930529106855954945438337824145435638599570764075663173059994392790149458235292780550733578787238677121097648509452962389032564907622710155196784524394812040938525822682407938682805081319169269273474595767750545003991258932897708346018408608832649932969415137496571829848346237984457996604425451746377316241545957675623630346957997361766924794366944820402627923174553875156288068148607920613672103166581102323031470270565857528725149492901671320257528197099523363418959297476905567700865729768972716558775409142608202784606335250899809019548536966004415777408563888031888640389828677456501318061165458317933010879224838558472092004860146821558877851922749704032916856638384665508673646186965502530680378307509891972421996086013918631762141003624806793678482598437908440624142704996488744467745604133161902164842074724459713875631884121447808425990472920853384457463034161336155229282974430581632495200851053555451246505393129997801136977900699463843937015541765710668900195760809994879861851539345515728275176498759911679642516363436354599210492235164722317110844680092331954843390879370477619804813701963303577653408927312204898963083968875535441375654268181051518152642245387208547152699939619267842602020715601201582689491599904980644673780009772046314375241099291984934631339969685149802547955335612920665983193567852691716790820323549490291634950541532252502717330319057957322286404266115063467029073762119155200955561653309643568855940897033059476639633230016969103087277733727420945464836953421382011004067574559584384637953067933827374527176934639881544087746078695644782951920578427365471254071002619188968730630358423322452156918312849609299468159445136250979751280460176572751539549115699752254124185495893711545894908931757841055814137774291204584924174801465245287827493249676781386564458607837316759200609236447495603899996556522400698641219641923705732918587460807070455039889153265359879000993901356478918473412777617452414422567159139023154433116713353349658120702084175563654828922406376525034633024469641858707038408073771187444685004637467605751499358209103089791016239801992033249913977111462087848802652555773964492255337163872652278459649841762682510604348181389980170432512383589285968202120134999993155121428573740280731630506689745650386731312199184268662210725631603871124461246384980187012118210337236527521229449598466420192558970983459935598939263167795441352023933017654260304909813292046951252189529900455177181152957369647131857019088490084305074487036033443854841772393025595825894722432367415522430707970196297423738892504709293757216966845764178995594175061348264171489550474562003016014987719773760090225995671636175685725602778056361252096366133796509599821717626247235499215425089725196078993509169526752754407151609476179427830437067355658530071963307677364228560775188020591195295079555410077874923408099425127213012333007211178630870062538099881281772628263544793947935321558791300840708522884509865279693194866603424695661714366872999338149970460924271442638985428675082192029340198867491643231814103325036091255291248642981300203807607944867883718686149970426443642225819100899883087221825488127986082182567146689094979886805070653473379946286661051540006581897299625332948199220411160971190180634251834186788717001815172758440282775583917411809036925391671803487874978941044667122510284370059402760120010514579981476963920874332358478388301959418393589568818501836099534146438874657109919992717246904051722528496014887938312292321840746532080653650780898265164598308005960408073018457896827830648475366678817227441520495435768675723969016936303478863958026740019620631811600580157592580665449016144527059965540102294229234899522479204439651347890051046786590862025253854366271403773445958920796834694674260179264524260386340527845497122025344325866036328736695714901444275627301348619259557936286140116544864821971142209408592108028101708019801009147258422302990566284814082749566063995884343449533362673486812443229854536873331628697753894847464952551493261823172580908177316422772752564522093954611947674648348468877273210756454052485535821732328759367919323091120562601127238436736636563560882657172746123073333638175239239956092241577104910187010619431944061219060100338423301104057888126811162895236113143421048956849223405610406468194686100183278087827370332580323496624244319779523875389868716489997131292986265374093217324899787101660191119078891998457458451262470341831985893848791253053270425154907903811401591810142673311973296869263998237682353046079287773846886273356195336241933648111767987810948209938961456573927107232629937788411035171737473240946508999289028698870966021807111990892119577557397108884075389722517920959244473743506465586210074289066776952386282333057220184528832848305739652314386279733821327279141042708812910083028930422670453280591466265386629490633556417211725630510250335738234317191897346119510606407065389723786624383742489970200691859684756513669291937753137233055832175552825887507967064654144349545009361269237638508808059977173395177806138464663243373143831485823091209636280095817701425057597356370322214818198710591287319752547242365222482307090635540572211182611918648217370441427257039301467902472824982149000526803075199177823511490089367959556366881710122006481749530311258767950701763547225575276534305500171793223284988184723894433985391510496706676755076990700452074471906268058489897511232425437578526345657204665880542430731296155552727679151497129023989943569997427082538339517813628908417054784233432410791228903303646335945045066544597724468654309089893723050035420678839508342753802366812580651826083359534221690106270884207398480372826022222726733460994514079182498889175410562838350429235610453997935819141662643968237425687883942661295820287062267555135064359845726812225318402870727333409268199258484850918460865709438024497191620084724384409857558458328495346010859997625546090420878206368885071822265780593366452606095647666254509475069009173528637462119060441697546762695854923674199201097702578168777780668760704745817048944334914889174976405644633923892562790801786043733641751804016834154623473804382927424369935173359959755146777201003141159553362873808062369778238355653774048089723538031333356324023021755505205327996080820423142170962657378543482265080595547552243008073494528049019088915901344508896266298113857725410091013199805562220680548920102301771191540564297572805005873014364067291043379587993977046176584487191981282948244726127708873269279884463645790182786134602135820379930647002087294191364304000049653044117215795219252915523175536729014802770443320012660455857975535052060672692559523483774266795669250457071881360052907461826683715572693425197124036704238839879171804434991726199443082409328893575190637125670705083732764074172405257036045213759708470936149221377309632996872969080910387517751444661335062750374382604099865003615095277960924644338816988627789761817900839641572052142589228595175227463879796855626116560900883395566069477745433073584864066321560325120550789016171734345140165264068033375237377973134357146836691829277667817184671701640016623477076851633952531080762714508628324965745474316531896278458690953789553724788949430335511614505560452440362829361024171601987466448804993586673904257971819430423224882990603904893308750178709125681562533202305825399513032877407924945061824836858192285954515253836315161190077237256029350152433908784388421101441913203844081602511850853862197767275959707116978789982716514353697704286852421190347904600845678348229275309281014420609427070170699575224748790290972783683243820022738870981873713800251673209242629588208779434379746220175047292629588438071884455526597249740017918118186328207623063965555706906491425482893877894476974758201629419492551543186184355833184037318329214930891076193316978670805316544745907081005978546859033191020887971046627530767136591586016585610807959057774523164439647060529352679958268017752053890097732510253252288151584657556938155916639385588368304089903616293789393962229624886019817375978147570880565056370439992675495545921616229496394215674464224807801764194766576149503769066368783049878472839219200354835534432863010159110768548810826193144512326487042324907362593447011149100339148723827990767043774067361457909023276082932643574219174863253471285968899489484102315432481127398148650689960528701352271090014656575561876228576530400668905764504830904225670350036125565421450700858783169392350275201697563119511591832818767529269481567592813385426811478529744622310210405281334759114700460703564097177451521483849049555671627454860395262640932631185436682986879729598721457812916616534148559161298768942175731680024220255355183064914740415013579517680275033447467044604651548610854189732620335491673493476052896279658280181474627687128704977342517072337198182258186896841024682007932571176207409579078517035614288682653890459272529608161350571162285064074693234762879310287100822872739158404328298820505197401881335871663800053290269042765949951695848412267801132273598108706213978945554565001179329763079854699222583517519177112433527945871124065491864631528287883001848151082629393635555543535125098429811400948662345916350111594863785775739569687281923038971877145721422049407591561683006213908120462648796029406342237174502032242856507461143547157700562895735208110361180105907490323057610474633117243989505150945151261459753646069204207667747609927658442858119333211698106285934187930027638735768271525205899635935857152115239385017078447689849059829919962795380865628389759435375613929632188206369362264592909455496233443468144931410730126723223473907380450520813766784405082276748424786595062151979158248470034903243114878085414245683401568973019464816961626330096945289852538071574516150476622903784698009244377532357572323565101383532275914195833523231222179990629981823509609806474402726468734709519942688944111181189599425737943605473750951806740685262391269865915736664537482785610748963650218063013056386621032428712882704763541908890773797906752326651689119507229862151143689552678042592150978349670435060264114335987254975189920888184636696025906061367279731617840179338182127791631913323376664315152926841878544078282663691963290211416717327361614874299723204735186765730575338506570000248949644744270438153452011842365353354411261964259187408848212219050091167220675787663621494504610069725583542028453445914400611816290371404776835217900801577409582051032736476336308066847074811595136679470514936336005099031290563977589280799559023707233558721785803198308575943937989291083893338320900607751357083959142834666651835644664336571995675328174454292066730621384080714629788697192985431992188491343019408432468967223227083997612343047968326605325130842881978823591935811997628420104578779185210334609791000430155955420536732443086967511416086572918877796302324698516380451489785407545104868972926182922707783112509893319761846376529994377874635855871574129335657143304224793822935607534903628267412638849016773553462914119043857935311575112848461658791572090774260348298738958976313664853195556743893756678589290261338713758176085263186247068830191604835090077895184503463555068001177731886908031731189793754924606030143540411756484576588466688313198640675623094246525010085026424922805440705748020232085165124090876963355922082279747373981181592134686954313023489343998798706736425435463078127201908295333496733253410797517003231292407437888082888813930654160759217523981161853316936541225322993742272206439435849099283124593755377817732717382484967716417251327028474800630227027322343529810724715362642078515962117305336884999395985415578684764367528209865095627610835056474247473235771197576199123359532290620670904686563060218348828238886863217907689151506409136650098923632588899583001947751535978814477688959674213213071345776022133952857344487824532492723628338462673449825502939645802118059796837876234272616614959192125184453561452532368916209781889477971524795933202912388637945737562373148217563725557074523175037953364580260076498719810687913072010514853367276025010002296478061118939027776550771881947242668912302684306329987984958979713467636559913603801613683663138503713853675061861612067058123006095586172503662017883373577197510558251930484799202254078673630301135656782586875386355608383139310961341454779981677598090341668789763171277752647902595579239373899805818138005820174121214130717906982835562892662824571287580419348837368337705139066577710803556696168118914915951086072990460901991978902165617598400896313165260206629144747643102578665791779153828190021773393807012231636076077987366664166807223838702285079184206356089995498822372863758984425648737182475978687984540300373645263557022979944451446002880565096185128548303966858512171960607068007084939958451818674197639222619284854936991876706351229587068794457839223624391582076789392194529304860970305874429558263248323113702776141810525136725584838389651170972521748667782425818596783514988613826101473508610527829142340271465138617106737932920265506779705714001137866640491832977067546518644876898780507496759395767862673756007620374896199331650656312236288390297689141427347145282847691703218249501669933542860041557056944544370626164168858269587349817794611045535727298768059697488259037796555621546883758425354745156618452580710371286046733173749556269890698031902992753505737016826770643585756160573024513002538754131799888277398622641079486251773251831534723042031192100193884381249050180856703329475378351869173308534043686951562094720834374732427119635529127895226014976045878358242950966341704501491624755468055310247935808103523223093868893985851825676912147401993486663931921407725203512891890965854460178268302484218797312430676706307503985804242442812376083158965274160119911829794346396178992531900288889193298899247094523019999845188458167840258500907216443009790130735694465383823195741192208223455047695858123365225500779034648141840500895580048397493833814506237729382561358045526599403406262242221843819693439810174815796400125385689475390432247694753819114921973816185430099263822902686440785613962869569591868136736801294844110807867314238373251653856031198677118891426131474787648904575162255577196580663256023557873732533578044083446245207764296012585210792130268044952310174020817081544232032977773132958984732795201946025196183697484575691730070318373503456246407100098833565464977185741173509812423019300210430002917457064126373407295941381559386502318889137193222630417729822501655818641770635157457502281718568420944445623705360475935323268013715886082260862264603176217271066836017382210095355790313435766869056490457649612446429468343237860336028002569878480052007509276857025413220293107203113314355729297612585870809037251435612546192073375062877271178858237942515425461747442292301856149044249621806287579627104199001448374730697282025323125139399649811425768316729551179788374753277424647724620069460623732360914153752435668736567108293169374905265776474462457027130095046990352545777625663753791795544096667610518278541058579094953053473952536433758843354107493652573334366320872630593928259651654424533482039664834940673526322073067554006597573688605692723648118622770996584793038719204345233283343265325706152553650587143804778825597514096602572766602546255538801040767106325975544615532885412495004080904335868263278081292268139448528272730562277105111762314299989627033748602322708476765860757031489822062785800635994253556793559289369285126550958458838608763723021424809393576812139278711090830626644975019014754284961912269007619065282174307531190070237465183766061420321558047888434834022502598691526356918389764903059810870248995515390110074330734605833501485034997892559638969303749666611789275224624803452224187016811252694535389229908369587868960974522744989064155801526437001613736837762011594081646296397657312425469052244750051120207819428343812733282223341867862843626492727103968232040893120614238371757522376083494786493781360518265325015048234223543054546230904778989386713363546324517894848004722245487763700322043404519983769658353355743428036729476839029645641774110149774598829331879539336497106014855079506741946560240075085307477016864232092162595408301812589120431592317973939387936773944252368281556384938094067446909145902356553995857945338432149126024649524930749157323486387743142622274501801113697657368099075315101340227884286735259410715619444245405896249039394323031671397771362241081967765502649131241606866990679618257673939771681349251310001455494163211227312307116404127564839739880743559671438892602764245556619767485545220134288722364257749581642979016231129797459624072478891616080202894967790604167604734696657157843185256045959249713611376041757073968460021237518906096687490321384255919714398194515355187850919841383300563399981389498479679154848556548476283857124458074693605838837728153002544600074270325721000512951093006330962120890417356106700111395356230361569336905388210394837436917280479531718363151497225988490300395562107717834757206354700600799274799962354246151549466195553600503858073164443225710446741401953320909056107519286810799058121123104771411865618903160720558821913846976134540268249621883935005762502383197189051698811215686910866293739995448740099418255334367968855168945208009860086637591455742833037578068520504836962499675395125172550582682401744466337134659779520767782466468659224972217574882724149350673156839963621343135178779631313358999202463863247503445925476774786350349924793823087454851138813924069944817700543627048559422049120767479545615671074214198382608979067081334134361639287067637456516530846415057758625400331309085103217865778499049031535788297049201860409848733066823448361013164729669550102128065986558034938084077785533465202204929687992127973057507277565191326335656251330860428009836230448948133490404812435843718044405042152528939680051574282232492165467891893406061203812903234278962040625267045048493411297116760729899334301498423515530547445517677840438704904315662627364139752849603333949065374174086399382127635656106785283067760710057380193234098077806879245105192305199919557626630556003162195498575070229772449427084783465080633378341536637560024397942474679790761908622445002944758202482957927302051832001317418112151226518871247014973702217921828019376071144375363783531268409455552753699239889326018051124120017701130469329837725251284123377622912270321403840348455569990855133771579486610136277428870692391443800806199288686697190068276256637758059222687639092387230648865413785899966671695185867211576185415708996372349529662712467377015716358205907457564504651980642384385660890173108995562752241807583276605659330224997103168339081137263019067908017207019549182982413675956665236269683413288845988638309989446483384292402202090554215327670054541264480863291590200248875072420884121371169287673117022904121401788607274192340612957276283297389846325052120342777741471314378297239075556177432091548271190210027363724615604447057471762460376484681125209745290628996597682904058420576282524419768561475005993949348647977892224022515711010033659482155128869912794393410950991737199186585295241399416288745756136202960878933366208315741385588625360810168991480031299136328787759501997352567748142008201203670979292510826268157113835681807892361206782173080361941842106322105817845354416483804137400379232198787729388637974237596412460173289958049487531240818648307354932035791395399646712598909694326465412200191301072698363798307842971313100415279370670662791443086047057821710805604029870412475967379118644686428893768993256652719421708615640120493253051726255802970200806127283711035937994040247672443985961640768563587359433089305708149596546636655940142538960582709111237033609370571065517053003741760406416238917222505535554459150099552409034666015743252637295695327297057634046779260126300639782432165272519013420716314222505133673059750783147969658674888149650690109197526274304926695755616099751281242812171402274715758298441848613281102920606738523148645509749440292100812334262043238101361409705038118668997393892022843631739963944685639645885253811052451496919932356995025666448854609774318514343355092059323788040324431883582321256041169571555569028798148600628011116119300437694421061680508883024237917115989423106847548722201344302755304239895799881196203238116219781037494535540199800543874654829761352117477610570660583325960593859885572532853808532399936421116944100960402333496958430424029413306782616175185423317586224442221123868853238207742370165966471882485953493780144280849431713355489873526715463992991414210963508542327651712130269857050113075209285272567579872618025484343910659686817517278316060418161328671264113748846023806378872994808167325188347513479220738643255900459485583603721461193675463641958919126793635472892508321072039422844502478728879345847734814440962739692470996650152330306892822894493962902318482466316283510945688947017735598259513155942858061555573928025046734011293734814686586206697018139085168941061117566835485116860220425181783571438042316503613750014238248838951564984348836908920842785991218164383773947918787420500243741699601761910132514030161217018246301338363177723357713996647839378463212051549719945883711469206601492015757575714751133049023282469343939038567532611434048219038097895965819299169690635415227505589694072368932029163192927221816924791767332026375708510869295923533678415048973143765555993043079383345498824321045773286029661215859746100077422087006804066668472329432269051633675128148511330263786563700665485954367517302243591057201976972616415691632894358868125207088529001137833977366111552996495267982138779174326935784312384759170169400392054619540836285993402095892629734393506821304298378333935695922452167099024800177625723081424972827970909624261447481473064243260370970363836561683689057767140033337248899762753699852084265473426856266659214332633222749437117445129753781464997247012897694276436983146761478083522649182580589802327864209938716050457265398943927381383784271281620718673016127494786457692290764506266907579827186969416355757150622848140836925648902033500412972492922339373612724335497665396923591763527922498598745046471596142591187062114516887330586317718284222320987823286060991163187342432777997291756298829659882233158833195131693750455494109512108903584957297280658591464509254706270807588802192467872132445879983664200641843727754514786417345349112145033170971967578127428760038535753257622623876632933231671817432116710978652684092253747108045620419968590816834147421358932141550185102535321309815901708889747938025426809699131585454264262477248355665333774649489766849114526499776418583678482562102300525024206767392246636910459810270648276040061111090973901818774235418970940691125204015198404508241537556270630434928415502303409376103994173171961169791682595594865424496184471270251404866773178894165118748108549594779245997376085537565870968283075658760947641479246041220506185853869275797235884232954894566017650871081984423109480138411696017471185762617615180324474071516450924711182021999375299651539304912136224785438587885597923212659013369765026876898189132297133620771845562658126465476417231613597517426027843683430768500163584945753703921456802549041569348924086007499501786345498240800568471981214998981774702016280475656974473426419613289050268751208933885805404012083682894418823638768431743354066867442653039417434909740439113560427358197665856839419717441506088292615058098653972541458624616025782457629187255885677205238838044463836895913911416213349211282664572604070828519401701019390859358245829173159712609858550615662470219070076019670298317222344901244175031393936668206586173127430692929854380528537927106188038860976475516390498402745709753615203853713936502899627372211604699892177546203916277004800352908653573645771608578609270200025696772233472546329922974881288780006213868489799923701706157089523081478852217512619207645830194115994576767520616776324218649198291818812553274414726307548078487762036810896738877299054952936560264947838018871145541583894078213742074677892742084046915943376984676201394093834481548016263083214634761851155537350374856573247126422547931673334562001907174945407835496464999758936470563082490408550803432799536023504034304466715533619766496451355135063878958201101109414093875525400584839462369238723956051138518702041110766743231440159271555477020602817947971360411309300738206106647010823749832777792880959306883816434250036939285977643987972606664484055220954162407121075850591395788442358571562732205753537299035847518562786844825011628911247557920916335423796633574506034693473576825297859887580024826456997824011251711576681684805825319238399720354118731594759601705544807526948762714127208960590908295948553381974338608289506252893333844614327010710077827403937964946428158048807257634951046668667338603684334018236009489845442473938732191604331508427260183996450218475612041140297718718525004510341922423575120378096834943298078501611938894486613207117119612761720466529721854967487464332529283965093336604145105294730061667745984643094286493050139129569931063292348014452920321087148291979893973935032531663132382485115028000192716387260634082264027478784962455351444425524584976363035888405399385815752585560547342124879940207979103492248403592165059071343721128708320598180513410929654334220813390418415887584437971101334811578036756054663095588030609177167152423865689493528618977502170743508080731434444348604912859406382964374496442285571864251325040133653428090986148677014421153004768380885627988930578943108913828037700377602394647464908555935133752766516189821933124675817154685104821815456184246241218916706241563929712064842025802964724393032841468910708306149634727350183031335933717893140789732662131360160958933809356922556702367216959755108731587882454715981602831828935641413698767313296888539795734697795090081724061494154125327806155398157624290680535841325228961890476397393027576872698831636684684471328893531674152928167214746641167089789445777443197562269263499418110851831530447567860413930894622788889473595954300040409052064724506889488774004236724514683209287744078074638373013308937902721694938168237505124912986807619120690610526403659532983409407801029197055341549752001948448921170145873366008165989991135851980434208612552983169524720173096808801766743591010494067130108552342503895140261151989569332217725303392360410624697254609379838611037427854672243234752138861044949418537764686791065604015461624721123758423632737270141940119619489266313648135615016270397501609169559260449446981410370282423443793514342344723433245970893062914745642400194029870147262279670044128633278584052447659731602354027143032051482634990369073597481767231305018264784667740627796648490566807901096602401393661016820940954762786019382919496839977539406319452314789121644305968845351136878670823158535221056883427151688581336220547491803749110146119336710145992638538402005791897012547143903228924883007341725763729029390706711448341045383053076639546547358166720445482435890966324820701117458274565805609770307278495068393843897013808914959608911924630130177419856055520012080040136265092100303079549233823244209197463000161624794923918949180795122297066119628633818098639846127999552925757946367760739545313147737281536898127282426497967203575734849362529527961481915002637821045325131180220032693896303300354196733818219891793582055860044467230834317176148540678701582001107331229641884693250048502199605066093616990224860392231051356086263115638471114427623460789747191548706707567370239930687737361789988600085087917290399598337096750450051484534893475096862898380550607384474253979414162594198415452403982020087547627326577922712025496460583198952527564210341080992336925503319212896350649924246323979674759295880520140508431594788514785599906400090003073463676820680689184112881324479427201098141739318693749138263877214404748299846230427651408233432463270336920400703785374831327219964318226211029913018636486384204613548193374458094189493210931978689701474323330146812630774103278432845156831617191272457411466724196106155739584547327904674222342604579981297253366103182545251103424989050929142549926823168387851650229151177793897905447505518159544225279549629744774651225270626443951115099990652122978554175909869894093679611159825447960624349604307073417316475832511403823348464940572226721442469727954497200812927378600063699638331357865680229275150596484859960183714246493486232099451111347764246965600472780461011850096907972001354251073707768629500627324524171460755862142165425806831900874189387376389919476899451124023949259826641494406201924599605992576265849433215614285079334871433762228873800915491913605253950292656665775359312149542528578443636378459593842074170137450071594181339256595314960124148052446452708051391664747512473675615057914707539555617019102083317731774987466374094242959266954917785060717758356083689486177313626782495341115487490661631799892649905276513506168615056461693262825414683880989368612495434592179694785162084959371104743528569796076070427303234722850265571942604974780512159922000471511034350311419041024569528489728779992579946238675912384466812552099900471572576330520981128478487185894005821282552478490216503189508674629700478551633891921721534490097309162601838794809934439020873213196967848170492251918888482601957358845327354027270937352947326930867275425064422369271417354980434732384254000890431572395370555636577598701033752724480093839832270748321110504793380077600806224116773920975359706542655022897914967508309190414768409482260457594748862685420646934197167590657954491732502887569885320590503996802154496225171752342133376239939528543012090317058749407711421352584950853073365248973639443719844675902775483759924298722240860365901685812394573406910569127812404672528669867595674298955881492096541341546516465469820818154002782953795499761368481305079501208460484880698272462720173828282784154575941693029736615275560862336912928775653156275464490139192859661793936787034637183558934228785652960565261865624287218979652752811537348067763614650977278619766001832962569917380423863159765176379193143697017682374147993751680659001626127967498599759557307897012432799954373624585695256462347315472027078340961434963056184394241464874913055040365709269443700321012985290436895687154592866578894908813954208638185204477935958200784290163407197850984877740191507273868729092101715719976176721792250414401046751745774841526806400797586686346042856480885783603945463602765186864819867214420245679537118166955895733021053361983548726745606233051529844935378533527158691134750838535647963771101531752989451486360574953765033381214326301684120307022439344108931265456167792106926610877086682391024821272865548476788789490627887659640764676803360892924926030162434140232152108408710589989876887277519927109117771554192620336324253497910662605252214931585744498631462278147615684662393790679808106929667077066887734283713003694496810598191319161614806335373482953029774299533761884287840564053142782359024689576089358471143605190152702281167164554425861495523165925220055194322606798086375549905974709996553641961801311965132170222889058620362046583034207759886836278672734199831166782355322590857755406622188782352273731481313654095388253748262225973876756235421050815175297966950917857582031249803491679046574581455588631511559096396158537825395125534485222412833628980103932783039034361855385695708632642798462682354564465388111669230010512726685470141218956410293012590002469303373486923515753953929469481386474496546714369047139532330236158972422286564466693724432533427779222022321056698892886090797225417394454135949258133266205102019989098060992692468472453721920937773913326130786179670649674387922986244437272164258309694096164841126353074637684446771680375751015582776177392052955429406378912664917958224103243572244449585802478456496163234962022507865501141218663171101736587172355091078925952608444236971003132892627109898346055824158543884821694454149582934772518860461400777547753260604927673705220886623906445059983175471891984165080701946355524373295928155636852954181747520244656703931061083220842222786288710249025182380140448239961722124717393215907852725372951272001738035986650574979355005660258635092710794332568377937016050523783633634892195728642529959330503463745849481271126312186059901936116449144187731043364410513087825787729233742411196867033454357253016447699326501520500701213704956774442945371377129719875447265327512496434884356977050942170522901059318368315393250612671600450363313062559002597407122119838442353849238210753568244779307637167551559889146151403748177983669842424894422335660772222166270250598537140844964576699337317971172489691579414420967639491453901050283596246959782884323239099247048668184738368678334889994777423487915850386975581031728829026194582188160595593169579584033746251307138896611717888672123203594352063678874244589989587663256639895488664112720866652511941459606121016619150066365466227673476614400808066930058400154082432039137061390005160559226119344582366942306408955472641680614496696116732656692433516446139552393269978589266757711348227669130400166507969736227198494254502641794707918893354536111504533191008713392652816178168979849160953928291143305612144503378591115888469872064339178801347206731712220430537134214153236277921565597125432612096175954632454819415561095212368829278724745082122569147364850887678753076451622700471894681366620146169909623536499217829229842465912524218312075053475868340990261934680256615402825899051706061731406607949850947547792834781346932379228701333534730841826570182588216544823081401299555058542819219930627734105796277082366400848437808948889697561346975299251767610423855688168376698272934456693131980181365189370937125202858485106620297013324702563376636735727023636417119905139092869239639738969664337397806931965584532597948344747939768963498563130522905611801740107386095641142964640169816018967518043414954655437801188751319464522703953071942001200399221293805767205997564564917888384443085015587116422544875445066041863504170665992711580916912592299340030380985941713300276564781230919768580734238555608932478630421904929809828856385776012555738420990156918083093766770160843963813437058838548520452352051536058420999103176435957300783678900637637969698845982538375888104877624727193260324802399166646237971984441440762834121010749676460830559851647980853617637017467927514997105511868841155216706875656272282426933745589016490331459320402685824574123701652831695592196845570211641127900966394218099632491653939907669317637894475149401572630625357033125078992303179811388844850715399770390062859139951136719111480914879201063109287744642959584793470605088661498119815284433585649351309335277368599873203023273607463796518265942581070842143529057560761710661948792731468038344340297241981448906153508272625376050713249279734699440150439777101670842688071607389621001799951816650937539893461393567908741002810628045542440445431377565288236974745060307177680483156039509580605134793271736204989158218220110244531809530815095635769735915476612708300894382342457728518207603721072462259726352806725408102097107333677070755923101622726028893076983436484747041579385137362196651193394696967279289937161491582614372784464673635998334674176806217604964842287615233850370723609971256423252906731803236710271238351645084979822311560225092963748608122238330744081311950057771685138392172292632478597427669278171462071940056459865516968939038383795105840663448232912560791929160675318180278188035837996780173866097919246566477348570219571829699147600198785617273366496611176499988544227436658350238748367949965614943997776330433121885450760687957480871553838426014015416831193110804316940925952328826319435963047650116265602580874039609683160052707245917242862341704076731296757945745024967345604162984836893846469676981100261603029226598507816600310530146098743119984497260845724210315944070393365019906716974246192914747899345312347970215888051034599580103819728666591537413968821531955302832316170564554400882634084529645057599337883626282312819792461743743731533411072809739784994445055061691142211710784179620781037514930834876454636761832470183468825119847077529977269060473628787839148043061618068223259076865733724122106664592171674772466190156559784065268212039198195528900544093036216947506115908829093737503462523864243566421278538327732289228347176671367737083071014938162659104866672628372891769322614622139426310937392106567282148584821428920134733373563057946451531413203076361074860670718851801751036723730277933130512061937889090248036637254907833610742456547147864550205702682981337437332492939953049491938837262509000432398052979707037540397293525510654948269395251274947720385083968742559125688970467061530872824673904828830784464728198892174319512024012480524655459562211589990430476674020153348668657293635407655930942234905706637569017630765136935510168913901148305245033724928458730184883465805633037793838239717991098081932629504671511408690215309546986579182352451589150914862627218823494807854643347204622775680070601247970900796677985400482930052694791579380950645994955669175413201078676585411304408434262201241617637126118737097143639397087191556299539101716887900452429913900509761105412730218678418744766193445683804800601958518632178696519011676638111380139318645207286857371522884465954843440224344266106000999764564844797847178881440848300508177587535911374441986763713261223031438730682048710909565027810944397703236018183661698565660437426599476876617120004496168042911191012483612192603607778615084562596994498182991071315080523145932759975692416885177863647744838617300484889168565721067005768607887042809694183090556778489979087058953230318090793820460416934853579593909763922699829373727066529990179149028420652893875379305284383167940119749844559129098329906399093116975760971445236718396045478806085917034636489107597408983021193689699979599869599505448606431988292598427247552410840458927606375407310207222931580145980810878970313178686492562207666628148511791060911842175787545149970105502298228300773927590307938595969328590310642493204248937527517494757596562266837567350895387548639215574515792977340087652385089876533533561415999944189397452256660787130009791398374959495929113096230932975424420215249518108413629757872871015103074776626708090052876398031377596244969150368299832097597496301267758590826264671679674013187227380534772769636521857603296915522445765658759102789464095395635572942262746913470880118625391589763712478739799855857456333085273942077140341913101082233009649273742367265055979228895017775363337275662498134296286445345097682433377410496802694786060476397428561515236393047619122878334782542709902910468727572419509308190437889264092599777061203653630935955518597317905034778799547954653000325171953925466287104001909869439685275111272278795963592287252869702914467938110460968097589478155486849392724276352829519055984375023963803675311579569935983849980213461847102499118767982398302993771700014938197030045098214650306690249377132815587138266698588947441386884861106898645005178408229626332509523806314093376247735924939037446988248179023717118897982626464043814010068161772379358391554328768823890121198387204942138162144770799402059836971245580517602443938494009064434204884240627029554990355116605211075611655624535464066881492579717443465405891618831993648808481496385523408008436861038744144258962522340093051334796161073587116884065175271508297332532732757039699838172631529850217342695698138683721684653540151882207921265095760806593241462874180488175455827656453828839250667305691363827278942583273971586124892282271877226440194563131037055753566373669411634952419693305414925685759541521414295852760404192822781495369812937878141338821503907562996119236368903964019352453077650607879323241494635817002647721064102149906911297187266811198772582528869326399111587949921418980752537142960585618904313142301226805294930621211286728411817966264610066838590843896032257195010483247806819070661980115865862898233202902177449636441464038745761882189828340858319103121714501203351197838965681504502851005715114832683895168205516122784670721756434373795909000515505116094264019935576491721548839406270798382208879759069436127901470519859882098677452180016093866003246790624107266739328432091109553715318018025051931317579454474168938660808372620920214468651558330903383776672101319559303871445919801784643733812781852813437934766748553174220312981609845995795123764760292078087677463752356174887665947543786380493307327263919421814989049074925100637092329755217617493148984990200538332129525978472781711070325234159548063525062798843002201311090719182660416951025553947022197991252184146335739927638178324253399089298846638804394904052340296230798148200817554308633293147122621966919647311336825351412843903649085402535715493556078297783255293702278925236209727222188259384099960048536203576891152602853121369805216293666104896602590474753237196538790040226030548376249959187162499831454183527524625937913756224182080891503516216835432411781810718070666081949882310252062809026606251870012534566636236607357176629913481931888359316052944887551923186346498359153910347263405435146003026221579481177391989231114239630618714016895837709089845011923888524146468429944406195231217826738242671229684392831954492570280731194002275049698291660445545107962553279505273231819773603882201259158637918635208534346357100805799826985136367405387469539790818867351585471631861160848877845963929578540148528932224736602323033830003017856758728803114498718918331155663299590756613857000457677547181730383231348328169786303190912449676045090437859201396595158643380212098327886655093716934340788960840381178266326903651345991084993514425285415687196397083344463831815262384156825198931383698851957645133554271271106921990585073549039785653767728524451740161662472595967644035208456521490564527538028322292177897487338446691003480430637729518766124416148490420329944747141461886545012184311628579029877384217507394200988500218804087959627766305855089976768573425260053351829178175689721850695922001732298817016819593648710940509497080490607965989555959713167790088831321503122102914367747108198088962042878287027431660630740112679390625673422906128230298226485355346093457656189003654734408710172946081757140638949278106460480020820454405096567721742165074808846497450875626431056813936822901152165720817406861553686787946668585051575660223506581746040942220505535453069241251521127649940829713100732188440145033170384907723579984289186517068888901009448598876737213195242452251975160070147790916074187007685372678924697458029042189333905027534994414198218168644258537021994883681799953533122680981364463147705094743746819419972035907108608079076706206989662161922771508342270830578055669149782045145945085954193843239092789107251547338418590722892822825727202146450254222958808075575989729495878323418709582474949512616651701652145391457775790897035953104164503023621062613640625961035053601726577235936308537497395883880406563171164556488579159899495928073970769973958388693224521536065445203325987463718652785628646287529462958765317237642785093390418497104469698376756779095620083340502870149213040105572341333856753846831469888452939013152193026838889395562870542597564622809304280161465852178283277005659054541201809983833468995848076265135261620438778589799717073188765165442904092481896730169982951271064303772355002272591737755992178910640351249054202099350907846964785575349914143811541558719969275601596768209074539017340089257820255010296687571945473726050894671690199190676586643643942575598669583057989280697811051194466429713105650014108923782554490096885200571844965644587633178188372285779879330287106858554500854354871231299307617318592731638973289456455600612705874342272723831925293693939574212403006573372370073411182875332087124544265389867124812651396981537728922797909460100319776258676388075974773026190089755339731261800609911117791535049402214871655891409157233700565054285395253105563600464232060868361802903013273277603067665244233644037170756040953668113172124427058663478241696963226856105418367872822887695510430861227558822493265827615936816039342372300905721602795985529799396142930644456729666079435926443857625249374277652176789015081803829891363690823111051702834307821819172106564412422013078687678082410516848830671603298129964625824692016549114209443486861037943710523150163669079579189906146934204041982484202310775107721826292042755380475527210318553754682711385774331436319086172947993918951616301431947987004683780271242608105963788180926903116970345123013330699898873425828074622563651806493499713476464829284339282485767622412952813355907214946175645840707456913947742538538554029895646867067417468897494365776801182457967498574048357065228458976545063206105058681460920971359793061852258785001798438976588469366127921991935957846035848174319054679025541280263113044166622055945575324247007158037398991936098206548113278368598927803943436145812634466296756392057361969485037331224120763847192604649466027895927392280424736431698095973638236611307537733633538144494853758295812771387215497289362482559160477974424247291146296408492566137985052029434777018268966345379242732718286294884985643744620636459311551520318801642405112539605140940588134753432461600497913004231701786014397807119867883767758986200338270993239444758479021995845357816382349131547827601000833892542592931195162253164007359631181293784334378862951219079871418614700078517050867584085715936815219698353963814421403223404595001288329947633700965914082308230707304295686355297073950866531877837155404096759217633804148824952321278702639671764698209051465084824518652130685443936163707839576945187276333156873140692817068888964950140731029916783450985462328506138153382612860661476809329038466099129271161216431286115836128329160835454673183174742173095346046924313398284860565585961240843406708948720250130950534008036878331230084767408540261244473368135606455882882579162234864521378229270595919388561826359881190906364419462841730424386192538816434424363734779302316035294259522428809491643049700194163791820204960135164466614246305264642712553144338949391311464819149441868585016291742489353533864338371079013387947204376427729857050740413556149707408668333841470191674973564781649909585440167213730298175194470414882876932686394356087643143349089705573757224113021125241521797861398799145019931503342698811574099747999939994147593355592558467796823068429668868952890504126686063155397426986226536089073782596359665853299054011062301129857829124251944178147896600541350448233334669180679541446744963281109193222076653126624431677579556417165417458281867855246963037531458864046583590510927344899209463882106061698977698850346178513312549745945863532645075797489986261073526629294389916669942806076810287827411894178258741564036673522955629503927409658429185965158671703290782410108292799629784969883935476327907862785101265030035551085986750342937821738916735325986681104498575010972585777027348296867884475113450808440161165988923733513108750692359371799160161119267601683041626998358693483091007815715825834166010301549702573199342361958590028920387122606324191771149165405301853794324917846314056708640228097855277047793489304433367116345605855626378397699380289806942625359634507127926301681078037170423095568688029694564964013104237321137852070156845610502220872398770406275680918783512481596279872398424408171866066163586495837833239072428600802662027594414140878109330922951586663693968542830866542490440454110511373591861638384788712592312706849937650499037001372269745479857071256790957476847383515252905273493924172158834542675182709648074358903613245916901055535550775713120006593831028301687486915239701990987693490816939586889559904785446473364136148758650055135518803182673895485420543347930812082119638908075453901674102435649410481170821710330560264669360758154172754450235869278440308446255853383927046695397142067486395388266570114613568672025291864684201461147591305724193547316840671964885600280458920759304200844108439801790492049848866486184025730242383070515530099101779161949258717085667216712842319859384935905683299163168188129144681207427172586336443544727797127412875457402016105890324913903860180682932535921301873473532545911521856963760448117070613953022584974603336654064633454669095542402620617591625501666388498987834850757023722312029306583357711789241867205866320117260203642178644330760185512886215524364222087095574691148848255966316639175558972839939065257137122541441164961187285362995074048015766914274953728539873163306086358987117746305737549397446416063979759376793946704296118328164484999764768141110358783812138463961456972192210595449545726865942933767598830452655825055355261371478960381321343913799855017381439295288779897986772282995777611266945503067491818865015730495497377212160216809225216866137113238975025582798069112388294861750583760468763848508114250232628677194937832788432382528385118959067994771693488812684779285320223339538083438352606544945609167614417523664172881189395073375830355415736821573444144766240555330739593424310753570999724850533620969200142428365820183149662122284974055426341401648300356832882657186078540249298286304464174432066291191747251377031963615733568453689672933440428141571316738399135171495912463820095957829717924883624394697372730267836450593090331908994390358231699572455643977045117275042140325898674181478411494182591828253612824963358209497018563831580952893144254494874108987466054549563370285413834955042103755445765705612021327886281399682885092929394303016815793147620100058694828677339611094966402294400695972352519269728281131840188294622555631497035245827198280440076021425416679397990426386387063532554089606702304045678363991925508108717619706762008580229868367068587115537032865377047412215774120798827615084350637190983379350595037666795655720677416555655548824997045100960231459960696556862540917544964043254390131614712161577460751943330097586696750776916727097864926941364442172732722973098880853919081957349337257688307260982383247193206293086309464508698270732382942585783242760137219362816344962956423769731080532487221051438058229328498438168686293296162003739891874982809898580919021671906977702081819466099875810142727483971645364434698852923224221838268440015335408229399681470274065125849385659150039994235131771805471487064521397788669066026487426079948287760536001620754379342038503110226663107809239257124884938400347652919021139478572277936479094530495825304459886178718554761127831489050145010115327138536108579100294291547813666099750634014447462947584357256761182195909750238830673592239859003542066080035745806640196634487161113894562665228305488450949684273647406857109603745132614592692536679601220667280295506188550640551582548595796006094255984097704947239460895871141892846073568553421733603755125862097605388440602158991849929725278485753067827243729429173629108849591351234243278878052255170547555760816951071591527624340746802714263211471388453868379627361962309712452006773827428082240393998173364674052975560662978278706463364246504891855066655515315983397771402768350151415738678352658052424465869619857068876338144120469430800405239596596117565559990918090698722737072863103677734989963147393617399889561242046106009038748806563555432859752226268693373562458013396533782997854059406349363483766661265619906320647533142458469928527112009033725491486098252009434734506295971949797262128383879927935571673490489650355002487093787640410311131641520961461800811910579341032254532189528264246480202969270207710752241678663113511348383113176629600030962093015651443450380842803781483507096888106340658115159541837699620884142591335468597158639298237884407857767641664095094975203271292152874653754886590646265252795358017323103796687135296430544424408616472324806015986031266461550660068424438483528177776186940588653323451202802064192755872555009478907373143722625538944862139564861866179129869211999727285714639711626310418189675108675863253503063234228183998699183232683986272341199879036727805592028617424087467748917871782909816988365859387709468430193251878126640785722184622303801654942287885945206302308673548716334458511854148495400468052001845103447500660321635900237398438108378504284860845112864210148773160210447452399755784331654963081881636212634848708680799111054340891598298627376258219360625883707656009595533569035324982407463860971029440307150909158850238438710286859396349840847796558207250601258863209793553435028468308166192078878686376751605208747485737168082483506052400906476397411168119368805824288317817909744139954163415483090291859772020124328783742780969911403698963749364618097917801102504212927627918914151014534358031838422426212410687784711602500393647602985622586113305201200930726751016479007841341411848448399578947578567427191743655377879047022802821444341976321579544119125709744912672093833477166862596713954355967488102888706714413945797762599086340001975703624615060102297829044086070530189843526697443594972392595844110581092221301426714228754692041214823450958934844058233566594377086667406914681472876971258495917155207147152176364766339447114049564205870440162176413874244678246897979377607207370059238975519934090604154526474553364869869533492577964313891594476114329404572028606393952557028865029565294353784278946483871015419358011206041338707353712280482094170261206150826874117989408671287935200660995004834709449629617308435735012371351943112370316283974086009848636327289274573978840232469090164462204266836250238727509488869517650481016650811951926649833579579523629522245685236281828420657850572180013763847725135950876247250287793618821757210964839263958018711089613280964039049171090613466558445643995610408588883310087587384881411167292939866142527365209971618199375057324612771754837751266877087806750683873069518825688421858395992558086304872414168635026638359263691185062268052038171120760818212022662375645138145719942948830488561934671417054470123899228931142012268815214366861175509158056641359770462106151549908594046887747661371144964958539442997713458415950331766851806208114764754690676092765355302760190815321334430828195041462689005260737632634402176181708629120281072215650951876400895939046109587780332902488197723082532465336889581984136396394908894826341945436592500851624992284478015841493880160167318803358278552178079357401758772158875978417617594513900183897609406944809765451630219150109588133191384195657756387128956738134171557066488846460937015729249175002412753483688585570046475470363368645430165481952940572457074139328650956585652638324456219372603629732243832130031402964677395809883629569578846035177771262793962336430132311385178750753724021527635328217715721094087205029106079515093477630743906007204864410541981056196728749172479853935024331211400741302025710108430529610705077933317264342008404621889575632044734067097269261223769233531674071705914296450099583674861918495719795861707821465891749013011492751239885090298829289056376109038511918145481856476246860295808918516403277077981971259475842276284208339435885357503567764443279503174719884857872415107169198603245396053121637930255956871565336410169698767585053513432101321281765427101056315693639531697732517464587128190852426857212807449510166372657842956273144778920810213750128288357836621759526370364800994210004422143361549510946516388060038215403084148209442302685233240938548749042955024323673416174872341034258114208857620397489583629172719510946014333472791526379266959686675473668303408204484019052396708731016351618680268813409931194659384399791897634894929905687157661143875509500208519927203321528611098597184484260758843621432220753055866213328780632129734879209360233764945993623146798458932244839509467732064819169153395108425857964306769058622159336696223704121391607002224346336471077318582224597117105951125453390416516253053504301266146695474145493176935538878206739221897264681314971796322842654051434559338006700703922285930118720161268728384536752006489094994065746417607056866612874424990780588800591635306878376751183880591675391676400913334882403964535841401669394518962504912677985165304253757059860170799473013865180905379358325806542394382009491562005896821736773923504150847863985134767649588593420316348746684513206858199954624856926524097727285858306350416061012091248878706196542122153955278215449164617388511154929933449019311435544257763399453985452774170132460386304080761747609387801002040113980049200547433699485970652968833115752577411622234676099140263440479270588828787678587900370616807636662861770267171744994866272545533310237126744519910118210205088167052052120631295704955522023819113816919331588449696489267227463418777601349543051644887233232153313782158446295689163792573445090563556948827253686543781231963503528099133179988875363057803462022120192873856203668010800066445450256502706067904996647491876979223033073139574798088445401948720010616418124485403787544815838950723395891330157626782173110836125664511110892195924689789216341546858726973776138001192461511386478229750257635833702892311707559250041899401587175625282269615140729597859105937066015285866496852215740772764550160894652180979145373784072075358902735159481130615286272016506759209983004705204829771780769489231997202816356262502794605152532187629560789330541510777575536749863492148667234776147146412080488935414021046287126979431132360703942888688661676270265882325117360250688383534990369872882198186485223541273918433740000584555448083502277102124968916077703058829645475524154188315657168903509815926821414004661432595436345831303380310033142827377456790575034827397261716603465394929348552481182589643045892944716393257063883232018555515978470728251128980822656465566163316801672991538468871428596831682577025712473974576700344021333688760652792842806704047059474306830489820879286544390505215661599454124453325270350915111780785487770894509342917097682328697862642735408552300802933401646054623760221641371976229029559366947443146634431276676985430252547616922474738726060002304488780645907784649698345494647678867027859350225234860113582129958875607949473763411885052337200974166929668937587531657671802870550768270185159424871981745084773120174791901926064241675531412056274280409162157150262085547656774400085101114568947752702337458418481606665581826470333583701877989438872778313217618215666043069808293769832920906294734549651089010488488649978763785284930289857274055025092531147718611059917283265608249011267778445522764056839891624269636485365864560236988675276924248556738323527132153998882327344224746602552178254250824113732131806605962349754000212823002454138530718837374130931540636106528051529317514635905191443732043530909295272385759837830804916011044490360799102717339001777262758861569877760982714004704708166820917946349524876043597120992484498873561863126236272125553698985337368506801991824184005056365521269123613188563700911305351816785980740034235061352908021888806443476270071447668760112853909840914082462495127428658437099750677413553309365197637852523910949121148097177639254369527367390977801907826743290941738271556318717234243762244177721720717202153991969171841049795331700258538406712603762173285147005429162325425096861246907435997098562087383646561441704529631288416746162115481568391280777579412410441105751806744329978633597066418931093117911881446674597431729416945125993647981867378754016635520276697623071708743364092256233899458367226365750245901063956666139560972071530638860367791831214196586762291602728503036510068339147736510998462955488121467481361211800581627074260933841524412964814206738437409406977759090898890781837718837244535565123366586024726429158478812010610086606291868147048787871317726538486535429922029485319560892673278414224060131353908487914199860552530052946585942767989258913229805707840333562307708148605491403920605472982805855494576986422972144478237518477106952373823578508594680646724820391293161020382138678462618713582996736002076541601741155640030226429031028340863162485167115634897841248370600172908534350939521054541997588416030107138792016787861381820577767669551607096108249717900575545759362463117251884090078344608981376947385172249291939346069097015291746003485205976093326852112210895636971098477959812462859802166701644604806650222799450698186093510259896532574570830418323488644567231049723685644648156923350195884064674612883633755734257213345413519200357660833061199813254622870689720086514921022071362348999678589100368546454894520917456825491733787936381488259770095172657955402823472290482757949608689930858641634409005703483887492441456557403979657272631728114214724999593790416919442530495972989825290892949358256859827891961242156804221675999322477608074356878516423987699083618517656929306855850174111948995076383152722042033734956920169621570288020774625067258984660476840675274696066013415478735195793135523363740460454091349678888356239237554669857478641778148371781245091859976517902820704439414187884181052182469850621888351876039096265512351680580814105173745482989398832472019441498569291736326280817323902602336352549955050618672817422792830658181668863042399368055122823916734802916633894188477913699126021385923088061004648627695132349230429121711934868245117561439380674984498293737630658685105084240904735204340476332092462527133888704640020503669359247445157971459211255258615432473397669650330339892870750210984975623817402298168564016857165007836349824320560915884209184881600356454622626918412335119099559707419824607022980324269772964957046795451967962646185037824815036317670953533482606043016902909627808902918997318817641424352270483272758060284238736924338036676149480008698071412668213359136099939832839178326147486456888688123872417391676046207407861619162131028085234858291465717897391070512222986921594987427290255641745679900279854628667517907304852481941456012612761310876016803966435344615455447841886653904127736016221303544661156872354202246060457189339030281773140630426455322057933663462484856137598825914482386808102671923229856346824932219083190733826290210038375184408607160094888271816762267813445621712466120345120444256129707071789643108038048704256638585076489836426100287437063061975357811957811426179773593001846346351943643495399203466806965009146285942610383142098398889893572331887675976994924459398232147025578572080315498365152820942325720832355426088564037105883443362550761439556192469282035809980018852088381783870531206641551672208644062969279766671192134891115351590148978373669027060108738556616921213016807219944155239567973366884472085836581668413227102563081420832219206924586803759192054814574018780432903821239188183201920011703560418203494052202000094357598126431163897269976425041069944738770210626793662564059198169427574218468002630387399006920306665074763933388472503295930665811185671191910238941909314523300547854743771126297667206057771607556143208140519651693167549982696473154130070299765398208661108230849925323562530773418677539922377183717755529206139528346850588753350131459358096329183539395827490567966570138956346667129979412682525103549608524050969651182609778118010752977927004450118405555968092627929407219662619237308808897797427141339230180500167902860044314922834341430650898223473191026771530792820511887425755244658721577775725781060994759634925560223054889301806351537246277635832706180177828995544342901858517472417555357933693817610353417179556238777661934684196665097530166643448168140395771599008194838703133052482954277634928524376961839548226771386871562321193524044430811661100942632945259023677683284012051140027496533730940465906000504421891908530850289122224244172049725130967697879793075580519899567906407901505208316066781044655190195270665710905101505287492772836963494717105559903195745645114063759324612227105836419899382835987460417631037015586577628047851762525170069497382390734365684927880456047904420836941096358303877429529278209621384065486651583450930581439105016581889850895715506730640072940290407468506253217397444758701451389500630806249630187342749710346878259369458718914691756319483475737967041228486497307865586836696257571903677719616461402398729701669126485609543594237963361985039913424064748494105544787852406519177875724744729052067772369777976896050934786269848026239505790558163272185706278028410332346123335670282415739823909260203398297432169464918894483096865739047985825549011096003024869071755127749199092142520859690502328985736693148200136112155731966922412562562230682285602408619139306455338558748615608520112529850582306209575991509102685866402743858400057104903896302426212851884299957504866770012772102209233123024386424913316711690242547697421462946058408400518898560389828608804538670232512805914951760259826109781080618585115708437237619977053738726962666691868488519592415827811464617262681404363640731741189659579113690617713519824338953447152994344313289177773146678671594696786884085170735482841189003647554188576238282031219374014493987560610368050619203332468902408698496513869297077167925405209476918568511128377128936734264612100980306902992544816326563724799660584898367812428485296500381322111643448424175451237110239677107141814561792021455008278184988479745166033484221728054835586670813531590182499210634865348866303418201050113010083476442544118361077468240124738898178763265746096789437219324959902885660908909692648646234437095298106029155264156518427706230057152790370720858730962514577491837808230224886294101760256947452611216366055104478039615613779688653380395733209428700400476576387271519580750578124775057235457133360240634746081015609677993561402273686086360236869807859678727201752188779518957194991212132431133963585369059755949527794098354586776506743512313776439356837727090286887512861681159894680043185197981516693546612039915782842491246109581845178246701463989247616410338160136230570132481860136546150626993709076224289955941651158462495025536519152904562663186127784721757857280620412495437413876101372186230075390420490956625843290621216547436768470937520322968366308717175121979267388289398539094969309166086207391747348405177850789113679557224379613166326256137682567057732047707485977439843889901345784262452997418578416170765285746524077517990932171303785067895016258960340797878873847289013985355404800390556597850013725410689919451282756527194508141911651847272878523036407985132608952016480431704218650131405206700879377923143288451164612964288903576275114990953731964386452463674142039037846773989478494301234234501882500415407104763027516630247355193142061411065243868811479989881991574677613274226510048525391267333261453972833344009533420922810076857540143345815621603893641021126169306544860558869615822901003782958704656510384145928546175596105626621442540656818067676667608273327901070459319952317998123566359090438361860754695580225693964368569467276884290578678537036020608966591867118254449460421352784571522392793092105298768798479669406412461616777454350383717636213490459021143522795130413750582291650706914257534478819496867972992108511470763799667487042560343790522802200964359817924924936765992839680344718077242785003398902459610643414027285979173084403565220719817360588524643769927714513660095825282146775090147314647739728768110269342838153571491057321802084270816471828388940326330621381158255342723171309368036651572549079153393513539080668067478135559504398212184548546992173266957366956542935001473620731646183095228794887799563728339669832118039689823691770443147942201655457470213857904589801504550975541797455733125768683262403216240238893759759869858700029621247638498925289219670413259002984882974705984473220392547433797681363865849798699446676039129776682312376731694224664403756940491190400905885254277001645286692717078902415687511964557184006660069730489129580802729194686722912258925034846017139801516562730333777049514108348546625113346844727886367996665225698959647696784323927852004326088309053406525596638515125824189153803244909888774765626992037493662244605344870801929784060726989459563354971528917853190108531032123562321938298637892186881623660738796517816218783359049563813247144669493638310997011207590367653483119968227718885165121246342455809647456911465451082726134144717488204996799781553308614482598032031621289918271193008684585202215283282092324188124604048431092778510774169837172279555123431037900672091888203079284026999032755989365833037189528373417179736228919940822391867806382549619817096056910764092558194576887434866548017699751667470302839028729287737103498687222587846298948749040700646182497136957010207268802710220931154748511376220266704302837387242794241538526300555880148354388687848860254909939454104683309974878781045173331019218961060729259845144189887413079868083880933887508301350660860078554066666774100837883695002622366526296091202703106629473179387875232308198663023704343905784183484761789580621680927674096286023245485792962635562952520237175455942883602280075720074919199760748940749598019527646489004045698249734431513360881524631442171562985753443780625644837004077065758391464337569376192318844867048151208400647256638449872059284226527788693609815768097329901868999501230464515035943665267459617080338974420566093832406605094461457507217791069843708816887488103109895025993419975735855593970028580767422995272456101438644329154153041672438155790742112064211512259286720346363168944791784520874388487270573615780524066143663900382239602812780530221374271404665801378415903730546576862128622160220077590226790819878270458017883206058404738760871339699188717424222344142315658675266965531849271124262250055138463585736851766601348265363422595190242044382527236181903476275883077712060366938031953385262386173151018397053936961963876921436826395185080787722872750830601690010199336452011592448857209899134384796077958881086096001476178903318478170460123143910347913738521857695221581192834588319141740624438343638039150786098041964260184032753461105315538121653663039132256087536606255604121253009163162638600457498709848259198622064214210212656654506681294792371379731839217885798822385669972620232660312629354553494036796463468499003953895711101315208440367332832833815565281762215997894690166453915190456158967562363882161807175156435174610361745532673825109742249769148481452415128964543793519808899137911107867116725325559506242827752574434477155436892209212772081412250387267279411898232522656443513300807662129780775128150902299485213913787066829053570646645959019541648315064552974950222292910717113108164022960327805987220573918020067721050190665193575901805128601916195671627700642719178405507535198086953514838840356039801041443510688400059186167419393314423052114584124325401722661392894461838956299195252907918090109804920241021860056978978592999146981646771040895417386980332021131136779261976971538845610177260469515743613156417916580255569847952153675763345395080493301752011713939759951385066884834978224330938294624355902099154845019294392739576456164787509045493766005469222398705979495964613668880590750056575803348996283063263925254942394775702132482501930531031393701933135725961338057336093322484757457339838665168247702098902615765700217203763479071549206435856094984088537781654464430801683303885839649244111563368646719387462047722425651029992097151277664570364395816353201792916888590825105057756657834299631583475182525638800654540184067302797001618584739805292191321670365460409769369068904171199921673903086056874249114873426126095713689861390042224214452399152722752649980471252715759622796547860793512650268426771952546579617969560128122305642711838555882074985449330427712451314101337798642703228012728209280374401444994996713080785171262007638829404728994437076622191168422697728598127861622168300785082745139944252471483828366908381159467051434499011989499468214948709969268734033994730014195536387297125499050339823095318026252506958000423729034262506682539956655596563429219853487764201602406535934383685886705627704765952286019589140631909509266989560437792299857700274020786592743712228747302241704077811953053471529060348966433113044880999776192857916022898609058100007259358070284750867257033920623133285566398579415905948428613653446626934290364231594778095365129855015197782672451586860571000122515759461946067000203746059950743603354330487982660996838327131795672222187093498419879216838359466913521714998173555984071505154168451735640574611382656362437175563739107596757849933998876356268816934383747789493386629810436858152928498353737921703661050089476358911728916978456804678459357993124742684745921647815730313016802860827283313428252809023580933405998278567728808582858292811518406689217923277479565200696759752272884306680508146655077026238195115552282458152983685894537093469406811297764747393205576996692219168268471891067180674341585710318113154332501265458205039544617873031638358108617636170313264005669153340521836503601170744674889823971074146307530853854280618531382910222272933769369579022626153008505905271661121067570894464341560440789709196318264742702526593545500027343954673538001705159819099775911614963566560539705649458946168419453984157593849316420320018641762545076215705948852044233387814687226666124970889553844848794572145320321740129718536382104338593534187782395094516113833403236465609240030579650460957522561609546741227603825828944875491855369288444448477806365209728078466659559068121581005169779632935187036377198977545434557295479309175171116505716480347551921987275271662760047486400496163039785319313599054055053969517662050044801673069256791463636022879780828570631499234512976091148919549665145875390163580171348742361492990709596994106854178697321402276421541222453934099921708184392892536342144979676834437647868823153105608560177415569007041492745956009642662320050189378164431772664089896084434503751737577368159361642680374718703037361334608280220050854998852165160714140025643316328388645300798734246506679293653349016346016950474181219433043022085801633401515116299689943449862295792163225033512557084420279156617535444355917281908566783434767834457168977187075048648215676347999281929446567333373435853115775580576970633417842149360745188859115690463520383711091695319047646909480729058238305075024974936926264013359865221995676336624579200848622501128283455725959380922067137549724820118537413145165050229597327594516163714571321204705297219055759923039075499745817390223092566564198780575580948372819249475476526134911479503801020635082026852299817309903878219471196837740586766098012915682133479156457158947801796353999894613562562930950607587030141555570756559841952097680233143615137300742392920234992278707627634720898288488824267318511033847853272745408211004303925792332991014244375784894096864717869005299588233488991364178453335341167233635376421359725446935438482875247323386496959193032569445371150127571327970493307215160942609511665877192215660309398530656064993780336290116879682900082220622075018455440076460405526335242030835877781467751566394263974721356153788933068517307069049259060888007177724546479010539272143829914145045638378152703476984558055928714162413444761216881394982300414865767144242878305454449003539348787409632906162530086092221119819839977232459984840878560144818480882473872209458398391145261747836610429887710381304309696814971283644469017909690785538192403658028699862657325812589851175848523306393133757119863725260183977620408802804966880625866692274807404562204353143590703396994669794554101206583378472614269262033643492365781750107367870874433290173182765814647949977016306812398313192797344540189438260026359563766368666221970151723945648823317869662057101618521926710257217626253601983132222092082091411792067655540503811084787788896045267022571192856711674381524387048033564007709668902538266249876856164812726540450458316501934961066192356281264121842571798038797045957060343124288330147329850603979608264553896639959863928394487637031659446531604193053926933200583656794856186009326464701895070697311890402744943750086675743234003657594711976146915127612959665039816336457538986091556369653341064395355032435340809781735659303648081868837709128537446061372320123188616222594011966702082767292271675121468723776143734395551604534608838962471836772134283964499393273612248744779067125645883401320314077868776313667210897997897441084007790548981677613660239779417065287472398436856299857002456960840457124110211911337324624987757183791531942267477648972041334088064048301746980501121797974748328564355035686721637103514597556423141659462086716122260394709995427564524567605763457038475116210191513003967617982390559139049688385077328023672458318542137753312258033389087805833883578021102880312799530817767839370678956094726131504730941844917919434562594199819043321672841570189308536883345654810499116938122769807762230861549642886511278609603438204300473894020308290015833909799021333965998345775660077952961607859660335274564218778146657185672208232231683498867915849419246923877657988777621650292822872579415315651653819331949648652089727749081354244241289733304434857381669798271599211989703915503351190461398664859070167630556761494382149948191099427748718788608709056133438319915437634968659637409755953275182991288396544296788514345864231993874452096770210062312349539887350787905273861925991434579629756683105656051780088700132828274974023357238480616794038813507241983229569240356314023192615094233558648997461604972636053063431394288849183949477201232278933167067489779379280747917708408999344093044177820465361164363891748638218815014977530913841914489965863719859443102231911046623423647336117609836666757265158434406043524758242149196374146890462202052791061753058931066833193067120890591035404881155523226451561890021529749473510315604222328375158981588692554122697669401065543572517999669356507670272025015763771869792159312012772122458565149108123228179482949021645977824898884091265290143263219575330677380622271563379175294800382450856462247764321815690567340812169797790962242360666368671945094536271190056492754778654638954402026998627884962898862587084096836045093369462057790783213576992005936321409891198269676180488267540317761792844267483929338605628101918446392544175338892870357705777322935435529394457575312060070450931482102326368626016510923453335343184761912065198923913753044965755196327929299386541951033034293530732615157682604084445757208996717862816335465640808528109411100587019507905710795571382294765397748486421899745843217259691241098984139350600983863743589899251291473091333779194413261546303217855208827683273174068481096688437963847517369912065195470110074341609848940884287400296195220815192499490477572244187172719943801652459368502240926931175598791994330145678398343752123826292029731019703674212295395989164772603007028408151459867825126066888172016574789178420591516340575489670155139080727346018575786877822803849215898105116342521794784505233675390674427472099203794118882060324756763211870633270112263218970415895057066152905430452919364616768903122945992399252847997034779818610950661686852651422364246548111793025143589333420782031998859497982333961491455229353009978330559886326645359323992142635501200276182888957940986682015841883919189622921101040633185676283594764368335466590135680158689773235752076201911227736016501039641942937131196525848670725907543774943220482051089982147492086078085334644275637030400289598500345185798842433007236108581806482847056501997997755303166426532899874413559034956190339878090528000349695466885396779403888485068586246327853710416386907112178705075656874583416844990537122073964830557012833437510739680678635183873771044685393057569833445797518503365190943181275267776061696293146198774572196092778581819282332629374381226724472358266533472237453670096687532012257437957756350166682663128469530498644326732745771852209620433381987418859710341888621835422933217786640947690493923410779709841123031420598638657916474883009064433439573355187978439723442943926187113058307502276067024137682843996340320892229878436668916085213971613680396167435122903612610866703259898795020608050646112518997209750710836967052653171336960213973761152197120998472956030114310237832678243313055054600641553136354157530770067961695779034363669694410158522745428569533940185605967482241127426791406075703216262929566669124179873949453947745873009549282944957266032401459053830425476800363097348605520410547841816409177581190620004460538991260017690368232698317860526756799010900047863758877382110013995975523338454589515294840037936638131289482675700341823792954992918840904879133462180219857928134397759052566247248604474098911818172489891795353888275990934484100087383882169433473185492331397951166480905897086773875666131554312776624946619137121061756245818422653743733991764713486540384752521155322613760185624513551553491105366765120824071364585325245825449259011078710418709916177347189507639626397935455718017016523890385322344605609378957486827999447641272787580368578593989965498075601688738744820130943230868570152983408412053367266512038214009776259514039134283037868919374069655165170483266330512581545765336010318196620104748035360293471221873752933716353587271809904952425622252319753797841890009286229825902088399772059887523897546824971325012388194523623876604144990477033837447699992337536314474213174405368489521990425818634447658798862456671300825098979631627006850424595069678345224553153300892854905596838100301216729951151445966892547897325747536598855876647749736582198671934003333947830889089536167926915780405880645282049953951439296674104499628376785773575594134532346785537660398671541702036172289024340185239872208225860422365913606121009056243368144780605543602063319668075954688579396353594578093787140963337458637981470363541138458122789736927644567931650518506714563835376185056754672551437249238699032612045782494591505057187388092455535342701964404216163237991413988709872925489514614383614047770845098104069262320133371964063087890664903904395538731201487915630169035227123285800929415364509602278706185786481407011605275019077418375696252453854366903271574546962705927178048518799768596451393513197268850745055322418511474287652129408258301936178702013825508501491926287658817721773514060183594707522675506238085212411742728803297019266600870536996911442586205235238452249014367944662471678163445451993670172865701437629771804928597107797637056325383298333084838888626208380633800946251545244409519000558221039334924163684571526231278807282180708330214525041010786767994419122771211608197550574012140497763952637267792790022424002612034157074909533834258334104436693095918370018422871857777339776480237451476740823405622611347251300789656960018073632860774949602833694122812833878239341065602538400770070072792179376810003550636304081470342739966859600222728609078579292046787374894329919179401436688786793855463302850579392084376484777896964992867861276482004016474933865538675339578906693050075435313416604170348619520073453345775930263927752442022530578928995858477272601862394302417183575047240134018680680496800031789966981627019898414255834028790984344594508952165507169748569960807279690986429376665765555697488614964969751272998665117732521168123857450421625330233232424533178584227816812325219299642214063208039254695934433568315065931522615145284309404576288649241247802923432967022005981459299959834520776165506857038282229509296097053949709009857794320313776458001590381549315475788990923305494346002977264100425349996053664988017050993503166428186337362141923990409054014414477049123751052650307931468657545608482794311417977467410931579125338344437510950890479293696045484377081267372198836548750263197599442156240949598844802666596922642968810552725287439663696717176276925347880190348927726273390442635721598449029377123324938324721801518519232673192399996312852002257525063426916229432532817111148457096795159943142935945044721329587089679997966698558547856710658276159591995785365079576703615278897322199509355893575487969817424627585686942485556941819480467985993311941069014270196978401332446064510012416291949414713352233663733571652368064696649099033585378778805855638112835440575492112288094793778820135472952095956989574393831916121632071618621069828838564854779452995509974371617127377080144103200223324757485035433447603411800078843289653179886251826701472741362263407720469312860836811852627131262044119815932636436434957834952028439430411881300722567385436347770796517404911643752569009605498610816399235559477048077614955810507850554453803562558634244573998510964766837118247544523406084372300048719887554680378010661814656083846468387770446387815454223638830875711364094935023990156698338226487556876835034628015630107495343712639080663067517383335400922291387296551111050693897326298121411237343226476437508669021405602426551808161158087551561189268753786018369504662501057210910056935351700453857317939140060919639395521474054790913176686528409197483950878116996410966624246023488005071402865307344157320731818985167954754768974647785491736388827502501626301965702038449914971396669013748579933648047144597557632105150732958465413157842881335253329192668290835728465103821083980059073492123045050359417861935669573564830516846255363996166125638168756639382281324899461525592335290584641326683300570939450574200197421510099061836274015039271108555379874198993208172992918295822489911458653741191519525378321846585978226877708863746582790392621385950103508048480031820826984307473895210998151634708225295283535413642397689972682966786151122504384835880403644597339688507020674839444930674802927419438680089964171906447112695227065478470212854774791940052757920229177033566861700537501652235883058974596085906941658869623874627334131127589716316939998148450210387200545863199114456992821374086194893032128717001920491604581245187397996184241669134203960769201737691487095667425378123507479974856842285480096571578310408085512385192433356447221109239066464725637000610914657970144085321121489423998858486395723379824023866611734080028966182342056595737253497186799550205630196994834510532975080872302345558325461921162721641113700924256593945614139767006549235081048950655111619395450798404151727059821779768774647010856091603055815157283742746971238058487090027566795580715919649196651064864727419996127453124567026488584295501952394669987418912997587025022491547666930880487088815960417244835946681048745049391548412179965086759760103556202063300465979115973300248255881327209536764000287978612293513432111606675763800522180465129774366691266416171894610069334501347257856782280386118022921394427161384818972537641470143574160448503670881917041952801380111720412559295513207135012476588289918336115340472634064908255380664923791499068882456010934672522899891937656026890483322170359285563502754783838897311292105645802756875156183063183562765735858929813218931365575040144059520080824608089225784852892755438513417366387154596385640224014540072946101414995337115231254186842633706136793339793468606814478264209258415408179794385251543897105281167700717204056441288900369652140110447907651608909265008773108049733670954653728264680450274280718731686520272266803454334777712094851212106754384720916615404844416987781347719406261938916559561195683271309029694375206751900768157300875500790454617940058737100821929467376040615257748508821981632941759163662073642679052028719457213285163288081315199466617210521179743049048171489204313349136913912997380717039365041180033895656509973168728614987450662675238654590301868841315825331819380796531398884536378438399597204097787986898130709904177079523835847908242607826267577934993515654922346761015084578485187563675791958810029091559528772773646837548095502199470573405337180862242450071005296364164073966811247137148625294012983107029218055223811301292722233237262403710116794904124259970600700606463794960447804515653141797771286308412304724883310833184167725250383180807350928130806657284551191454233459768857238350483358692594833588870467246676924301324285409509938399785881338790726383972058706580126077564217950361091128546733648266746932946628997202325576332496810916247979856235756625390302906812390085648074445761869428725694480322006767811817736293193076879159711918661028324495786579108573586196681804102665730217856646980145219057958935539559173902795591839707130259803516263834431877394631590366360346912935560337305178879160180856593391636730380583035567818956322932569717483823973615697949069013505815676496057751383669981047584795205107621117803856553970491187656852185699774015778042425764782861693158744021491635337030472597293012708048129818814770673499728793665194604726623645311581082158790352185941742366472736797583172196468632053190605588006110010711793501941922330976485877547737630674939560923514066603665048545670264779254277347516617653647695186025868500004745620651676485226134951152642963598174406519936467518073497073805739136392976645812608144816265362629440403312447096766007364425235424368261852607288518286180974617147639291309215297744065917299271662131837256181674831315592945027640506931719007614595301600012092264397599429393969438774255787415404395103426350293768333579789940932741228782122674325143553993572832629755089861954162787073135225440290965483522836860493628973119758012388162708085949703580853591962681548662155129693313748704561511442781126472159233744427714284720744890968261007933133131250839198806393797424458279465022201601100344660442712574672398440555708513191861281896036591906606705803075443723045583483050554916722449075649231713119642803833932926329990332149756419284860637306656964634539765561524642117149735245152649480543061125244447396999332629507812194373941161632467591155108501269465727102560636725787447214994181471012612111720870487330197028759305380540919998727572802364360996362326955047952392417183681349000643500166116822798115749799238495697656591809432119168977886352538300793058119460691935669856276069180883687915296127112745088639263535018130476120723487043010004251827210972560542838793737769879986501329077843948801313280127832268625291350797596525904232476327877459109191206933427041198343655878647950839944218787385058802694616157400022461468131911654069114958159062271411745031281572908630472925270046396973190539404603633427373135150578017740433370598430839296141002414127704954944508541977553970690490180122380281399431617558915235100848262413775547033084324315205716922217411682099146621396887271586697215584453645000291852222610089498500390745909929721586251825406142345676761953226620589597567545817075346621607509339677495114038629511618982907684315785894497555354274000895959133620694432473949266439612122364316082215123425668239813570232541054486714963268057130274479139593410131945658282487587113065713467330213745961784384527435713915474829775263755005844477599967953182638442265208939154446688650755561027555648304617942637963148229379677953390766094636248270472554232969986552353724276908122109178285075379894040748117642522931536229493814656771530314543183378644090698857890219851880710122748064957882195957320245628599431861063962724462752312746646512480419786523093163796750861912748836794046560296296945884252376401690267487828183554031158348418892110112083880662148372150550504024394110332269376266562261465657869564166987882034176271085838989675450072343513132249881216548264470993419192765062578477237528886157995286188443609450863775127179209364952978617199929397058816344857211902099089217601657555152260140461535042460427926608359204857490082299897352972900949196234112919977818269601726344184911658343902449733668290472060086449300486468416063445754706369470127151512438790126391924480991887026951138068515707307205489557204992039799762354091695665687680532855847084067380427664817905830679377101872887975264930019145349636520195212381377831179710163938040044215524752167815154777012671944721647628843149655063563751651882584589639662582298671413880058401565992463084064737432422926612541492388689107710403921707028333304248830125915252044188083639045422272865996933243070742120496769127451626673086508769232923848946632159761384478600727549254294726494666382584468066228898791900539799196003831489428806986976178865630464345865948156869151754134703088821872807466669254961157681067997317112142810165951257562434242506296058515621250469054416775090587896663478365186768463811668811999494897280889098508419518316596275743894820753968291508223450635150977547483133429494202283492454185599236182658415881159880835182245393911576109423010716979746219809279962792595396431342572127097712854653822522747222903742125797662780342587338594595046858246850682212302615366508533445233441822575696860155823361412923273791742151492406809777010047562810971303151869463797434335360419276826515874803288849933541108031947022718490946427757623413206473079260949733090898522342332826345952141105581007730965399907117416313052916350788158982677327444337179173882052118452911422234717813250618081822596940240888518902990655392749456425342654322840571506984279835670033777133358388353642659797636572193761598309034155540156905424387543426416669290573009611023659285190455706813548936295309508642982256711948055376958839958255406815440848454180868201296105816728925920392634364717233462831692667686959530010354114179125434261374874480128030427181580386587147966703098724169288269890098291434079088875697229450955847590969217022526478090572541335806280697464687450586155179106786849262927722714788259981721501996399940476782052484794740681295748709432628942857111995892648526900142551569997902252231223134475717378428884721574942037280873325187475238541502690904922292392237449177342754171985576610875919011196889653096966823343237943255127522823897435641499889625488052275449778179334037756321261242309735715629153286186538032832848833725867934726112140458130561173754877891396179804918107943832081536157259270377187867980876554065960072005408255515140875331588261120067074582535906283880915994324011271710489219607406087847078127495609489912630881201855839736745062654920817797669092362042557249452534888999829067021081161162169271112921343825413978876485810000336891266730099805228219072020267457726755472890760528295753683315058732023507806084071562937109885484012036546980602572036398264954045115204253482364532756470396257846672103380053852141096623788505173449546571632107198104630896545719744718451150154822777658349857312145964870555852889799180459232112512887551769307726369244303342698323659979329395760071715184097416260638985501311599655614389709047259735212918889815213052147695732728658265654270241914987197245238163730159437145971720004689078231990355326193908040011690836648702327968792724518803653404683818684829774379683562219623897983788927029962940726657647812635911070609353404376096535747596438499671016960223097822801975601041096928483603012163753991841323449605218715243951178420801627441013951986002353067474599027314488709928041848846199962744263163650914003516078310996134059037548760575702896548068509402808136294684274721615224431583948135634962999190106730284726655822419713396531506027688031224135731311414716655845667411912117220358480482243146735337145859611888333924028265483012720017377296972743827040746301903528705775192610452661191675472653046253084246189058358797640384674848612708824063718338248167231942637348517801160942584218777982012109592997656654398557466141659576467630066627715555103234805914529147535159086706395982763536041518001878531198552052006182587273908321230806453712199722764589471365212697483469435042633527530339001131117668643489325774464082817619855199116365839018395303069219936532974263971486054263061669573926285155463686165524792296001341609244026908664238252337364135392314230878132908047340690418813535673738806704791211595022889870782626852004975477120733990672576866544270682908626907728344836515878401201131527262345702277208673505335717987826542044639105930225309563247682934044470574480526082093995866586588031783126291110016544176592463183115205484627429267358401775723000335612072216872600780730553220315670137312789193521381446718080636966458440851087685374935326747872218429872986250484605885203168274682518859233543498337295569180722682384360612794095904807743732875448722496040590361163308229713058174605765641677634094906809875995238411898304631761497105164613325254354017287943187574020599350467827507407858267858157306341495617485487592255538694419275419691888976452784871724761916896293409336975938340671203663354117689639944685687831615164791500861931416335368569096631762630075317095799708458421279456088785132475929914613355802450128537136136396260081177516758318995248041657033712975922632254173206768525691994286153739430726785784258097454137495828026840161847027067644087485829983719050973331874742921411454018932368086587615263034966751135140818917219494582131106841620569740468285929326191247778357282817725304366893993916679696376327772379566035955211213157249519172751333552491220083066886874071249728294821425548378060803210688102207729633162412756835076313267766771885611330192530583486954534788395590651815711269922114611369772006655307936816109285877303225203190687494986345612318269371404666670522379995196889710154753045974644196968508046408235757106964254923823318949894848748461696137279740988657233069830339250202640486821190061308517066962871747366528818834744469594604729613988130054155649101972007706273045239928933737521949011884665600415513212546723098514307314106636750732206363351783573148584744722895527010424503113500332218444740363750785484594236260034458052061102546636156186448460372976571800484990148800852810931029483143556633485138705658835880470381986282123861717762508704221001196713012955158388024487257076802964820817053365393073535322478973544265246116275766969018797514235749795480349718048019409002518584060120379326712888324873072775002644404591810016596421313298531027755830149219829140796269864323317393369220425870901837518141222088403788932433934308325445954511455718001843051213180034226837008984570211766233755776231550224277793563170876162969363275685729101802053265908908105756267254538242456569974466572042666996271536635507596427321590600753416371624018890946489404977748452834057841088920314077709355047990657966511634649927760505318274129274048150752662127003553811413693623994900790816026681194052453216589473453265029663583788652582022218486516327965807670949198192515104408377711954656373195043831691413245763972579133123164434331986298195058503626386131538240722170167790909650908460836606145573600641694248640668617303837123695130644741307771109384746883507947707845284751846589429961335471514287909582561401162110552586597681934227380879316334306855387793054074036461780674991201078336726187190356154971854354810870628641600617750315292832733459987700884304002414756241701138734882662798496749739673836435988302110276443746700553117592348683511619154927759752810120337553523100523296972954277230475620525112544251550606188696970797188515145426307165558521588907874249649265576073884920628933094254095917149647333079961464876904252644578832666900322505799941651378049840094525366760094127060409258065231868585190313861038494271599248688446084327784242230482791312415309068830173272720246746172021135927559255838013781516872798904547521907587660300893313118273028803884530412073125160189538648394033826074340794638031889976526326327053750803975874877932210181736880417290830352224423860014099891645796592956342234447718436758435905587009429647298426597277092819891676604329285471414684992861626840602454837045121290787048637225043796297630490409910031761033139230883781205074944379866048485836593467037293788020423754474785464356921381179853636789353102148001670864124177314569825532763493443594672522413873794430013831204418393610393999533144313510324371091785892952658910206709897717053750036348409373876619465029991272796443123333265752475752327067023980988532502685952912552234185026289495506794855456760969552257342368071065671271952125586906815597955244090948555616510309931163630587940945498004883749985362531928496492714032636193128800110478861067089903096670072531101140419009416266607059925909429413980369152344417061544865359921609788762219898797225146202735564595026976142453808188813485966303047352580792027633244041772019033096077271056950083512620948006011592392270467116198209411719070138800447543154364397422280436559955507297483099832910561167950461582194662618432230776713059691352331419481296800297219129953572665802740958017747862950873561808030367672638532046861197972488361469782968629900617189097432294192391469592429838835276184918617063851150190150216409466244717190406332555668246243618626464823913293344976628169051476065515236208792567794118359746996797015879128735838224023215345111515118081767938813170064684993618373440692173794905316120019386928193877486167060736771476500121024885332408403499822589692377302589889314607734884107442677029169796925576120155233964495624638328837196492896921371711869987180247340877473818398366047816152402943960423611418324521387304137105338866093639861220891810798278393838920877810593628595224874618210948645548996089132074958767748506951736767264825324325103436181464106014221960588879052796094404765624714028921827464248894926054783842798788794163950112816224458449393542925651984713692035918939061233745510477304020963147020670926402564457711408920909797276532436968180584351730798157459675256250098452505332389306076390215744491761008407089910559949091795852534481168338637669534548815184677873484001947599498467672085954853482662494813879120547876686590126048516306476438126902661493664163441335484679932151225049557772271175612174470082071577875403858838712230503264679007589029516477256559194961281744893961420796010323620608676252405376160082100012770281142728463488332281108320773290059155367559442506266299551602614884431369806723915656877746035886001397998048468093436836657424205784804873017247814752879864111502659339279048653300214102964727513658558326228897157618841300095096889772204146125729511828325035181083874314025868064342804394768352578492137598155232492712119690930296083404830511696907206133735122274840063144986119089355585831240201836157810455977499899272379284406267983183528561008605821731831954124025697930336822576181444664680918249669352940455471456129638608059759526101494754984675003584465846171078064176193607289988708546235745965915584087603894482140750967574918531285815303146747399523485075016521592716573648772407284342396235983956302817938544656703589416763577169829335975241979319077696341447826360370479252644462791003024415625467534060589725700111482535228975330309136886859634863727184950423574567034875556986225910180344221430251356530111779810109286330250868775769637794753996929449588907774705101215227751295410720367883165577335751233880852060519800316678542530905069883202399651096016672005568560675610970417788378510580936425585724701327623676085773280695148959710617320775741043494985377766367915793922289059611005944698784916888704322826674660651430748844331366216521251868995090012800987333259313038373761678714804235288686629223508033658805141403747385412294789985900759412885965456862380575637366654244266661861694846040033559322928681812353343401011403082043642183493441125164803854843406409624666330941002907567982311726644474173080705462148398604639523838682106787672607855497737916716145328646254746274831450113306782636028135629258732940865556719051234952284827385115588035136251779411949256520292378630457900026613910601163645282338379932601110514048195166122068115703423992294221287820856132452584644070684670721400633573420944863361436901499641231587549727139604483150068592904353966965891301366715010228142541649107860291477007818097233720492885761648371025817182431985254116656473262332045491007481258429684921710073200169363479088672044515890307812047570098787846165290344530704876498517996597563973966031298982948751730892314519263864853260503501351329061125530677706759854322177598954648140320129521925384639759571501768926523519599786733367432794840864597330548165920408809727851594752584067808438962342309998684234901811905665918923604813041803655180435559881027739076903001442023865016548488883208892313924630603635823484938433485202398424803160480673180359113334763006844811351355097346287258768269617418873638672257776516777100329434808053146249253662869741257922135454735900196536966574788684324668218670942604059033388917910880200629091280615541879101970712350727916403547441393673817620662127035345756405144507480232616489914477948205776303284516214548380812429462343537530247457651306461459811572687780715812135614562153086999422407301753377611826341999747797804642423011359266246503730001897496240744181325016545634769359601711632285028078274346479447991663859233211869659759345626556995651432286158338353408935349532297843589920716082647099958584038670916554050941215554835327826425740069080572529524550023034885499921942343691968539756256232252241880112146939939884665938951941059582616427604909558115897548670807607019902697676384361776132190508934914306220407217164649049652424627787257724639604614372312766195011840862168649986492605777925593587834657507707396792255081332026047154246685566008543245176597115859602068427445679066313846446889604445627801958518690053674679833973071890285753019028563170525358724712710758620352426582279966221896529257322731940487457877544438760627601269831819356421604092077177548574750495334921154992740692125330861319870929502272514379052627700939952993156658581049478072387612298112172116187983258389177686678773952630190278048569303869597359421118042083852147994899261928731672224143748157314537680413313798779265196314246244154029358761294184539336466689468543576093564183913813832581708872460264096872414654262985083641362756434262803493722443334392548050560405628974362484861727436581220679935285869085870404068072540399502576258705123845053341479936776700578927330610333379473952173640073341561269406663452644833188223536362623751925105448886395713656957275767194991240296473848338308892309801638864980952011920591482105033113428555966995950577111279715778598728812710053246240419162349428684628746452739607774110145120396398471271752215468925674791360367328415597296890568084056516833446613144644711851689992163483886270877965238525457392463062635810585705266941202854946895021648670481271263454198126810073335139056246540803215882791850947197490931234275873233283656514398161390426749873109093908054014113789346586338053433679199735391209868053286448321652074532637352543505880727005806269029052506942195711841975447053460431632736837992215145613719749665573642210619991550749472404421082985721097973853564222762629121553218243934285592280428314638538657229047044537719457426068710593168089364379442735208544597342305186558418021677348195945937441826636324447915321132299983413052504439858158678857318492911494640986857085759589238101125101815784420133006736839782451712948719437229691345784347378751527079312523173511663822594468566450609636703135660631997365865248017782095041605116363379264741851145935575504498452239147282495954109174269665425680973774613356930134465065247316082335217085490220987635278720387961058105086732801130810906095091458126075158910281865164425339637770229853774864169524410088373363271810533827478785444315188169981337485088446493695881739200640796634541988821234462615323214586436661133628450042317287825358000336077339946865900097840860557990181260673154118627103825584461778631817727207005996408440389930021073498453289054019825518995732002539509563579083416345701365139407877914636309571485156485094839743388596416031173860770664761436670291676285825493810725575245245400115064468101467505017889952197248061457434930816098781415825172729216403109947282635113287847938147531395236147402000140141568266804285200975234619084994659428839269502794758726151168016462625356492694808535917890455675880197600994279000190274071679655802210729384145250778303084897634750802354869569619683937200771110410965227083814409795127832340796835349744332075277186456862575281429654810371231999690512349576430758736364047928218709164776543913425575515468150919042723839647615279632903723282665584807109495687634262035870132697561359454658021400213751853719013373158217703775607532335764387492603730162297320975247892945378804608661230361920108815921472330449246673850449895324484825816545073718679314420803008870944915611015002078104820541649719921873107719993629002186445031497462154116152138507631966524249818063041234537967292686938611843760281380795714288377995925750616524590388704529317009393138822667341892235369577755782319458078739567232913814073439847251879519417727309506255902437676823103375392975774337610302791843919328914771948271856288635703663044863069907679509392751931264221774393018516547259041208978506015913721080113091383862516441389900436988226384462117418036196754022872980919551810789509000590391667857427916618915935852279746026655840710644398762010820590869016262000839777233493358846816385895042275192584306948694309320855080633181290712140020782909882405290828208099828822321690156052404626795433022077618620708121308859037848928856810576244828869134393908646996870573126484762892138385350868176452053830933572697970698525483734235450333894403318645772815269998387741531328013039457993303734759928660580149237534102604670459035531692060864538063397141231892690008966105724106181487631796760120596090238454185554700000806959215136477056499966533251723494229632254430062761516643783360804044193797239574742385414084099243645440741900897241546931708043720805500535885519580727367892918540112236952939192176461713934238695177559353370047028011557469853101800079440981108118209048363307067898879905817252504500224914257126341976693435752567450051350206818266751478452003405630675898959268346766158474571130748841373176497612294169406711314696704462358647948751621216832850581092192888824300762219681721775245588543398433972811744995615495473717509817971783840231077417598343806733875682081534297286137079559176832163748665971989673977050221767133882476457583430738110532235919483598792495727690588704737696247506515201836165319156967190014405881381477330801074849558217467240229992555874861030438267526373959585765651219533839994642320001425706912812636130870705395398481587703183009743903564244042256078938915614784414219162827893752186926919112613694337367093867695189544820031411212242790206104114466888402926430153050858141971953077709310467394532970919410052846879088834792430195023977242851928365077807255572750988343164117189158557691392790244329950935951749197331388037484010688565958342541112894646430568456455001907726124333855620122793122940301741365196255594010463477816557562963910024231277935401959179857573242622261268922894994332182528900702266051736523809393711941240746919441005973784332037591991704150442922533084637815860405049040237663023543650259920263346350828275608006245672489634401181312995398912783574412022673873660149940833118850436758131153071880872763359801305431819236812530561705455211698761522355406166921609332007606804663367400529250056586349652594881725796325575527748517253097129815099405714836565024617893251769930755593279307227142854957677936029949722507393242178696148686996842416934573527031445708881116271649063105095566842040787109810052567936713217765747594600328885733931088609502864743588889903980763548287829811205833436167130460160497397359128924750983368729754196542390991122644414103826684468181633365363470991048132793729586791106740266936384034329965425369973868448001768973363378345804502075544540937301714527696348291476797615108589449375083275254134269468183991478916644440711874152267175523767092942532073947388441079421368246628207245443393785143058064787915908935186165704191625771896988785141524086630947831445249034633578828314899933459271620331404849225090456857351971280244040117137208678575382951156463323536564259496299051389352144396064600393249416437117944933843023706525266683303289915918007364218919636477284285455286310660407011793171499385617272166577664385245823746048174236372011709195834332910200100444743416047537960606898786244157491699356982206748809606804031921990486072698943246368015893524176635238926436865220223780411096288963010968685590616680334174265980558480556608987539639661317354471364648448493409561314671155423121505502110168342929652336983053948385671208757414649115788779966198006843320493717439505661845490193494004303549420194818164968414778837681747006024558685226883480008023103086122809433798258812885782909487605054402761251674292438497792547585745668242620361984432166179059932987470241313411209269225952392701878022748959907353886560331629844892948913945423664304199362309082978123733494910365388916526847630688581442232411533194791574344603756219574266516067040366211468891107166550334742533732966678390090708360598760733572927097856583086091168685764935488825886560388820607999492602751407622474027916529037131527664585965924493897429403679327628205606157015796682393595460531879950889506191110449919432651231353800885886711218678900165811238974892662813818319085245576102862761978767336188074636612352526963938973207155148913408433938683486019609991572630086745637759951122893858485319834102830587591334758438662926787651814542187550104817361669831521866449602448720746718517392580533777280932578235029108395655183320634428472888530995807687483171533799454283986048186860027244640637466573362881323548272859318573131418903362202964084509494926025241356335229374802440226980888695474151473264883720606240949931629153844397494279170600814317930024809690696370747785760689285485096782046759908863999985983162716401138636870874636863468114716359174175848886134386879436896538965856065297933332651589759067787335991489876113180970317883617034268485757810268258768788994787306426746504494045968826403263956091005708291198647977026753550147474008540488587800617903779726538370496664147802657739933212595665902918458284561298049134066906631398304174058933915229556404923401508624490875213832131965657187662503429318026552196767654144188878439763939196363179274919209841175041483089227675047420322518998252288313095804178574665975106229521182910550236575115485814978430391638689853913052074518763753847761738123657575557698279556823230310845975203938595109947588403907434067787049342884246932977995586015933698571542002367414705146138029778287127727016445325655256755027939144223926531630940976863218186207155861920409398435174523874649579945679312526278709282760870300282017632735386316960760453084363174078978802158138075237698319041571729890512596260003352542523086963357555354634487046408388758250940412352744582332223789547881470253298153352237897082473871642891201331910911464726063723658996768036768722718328006406214234248131636780603730291386670664022344624173882459793415087960773241773297847942406050904483615216306640990921307000981038710303607963801505745875584178688158830648902541293837191047192940182092170557699922938167195708915363315436182132607247247954378399890644779205012062032613144476898382651405414693303319125504520927725000743199434193584958808552532704219049899736653345678549746764445909916320299098322704981982248799962042310265098900197024202519293836126737564565688672303942838943221422039209852411723493981286424444478481105674462282046750690531565700651457231675183890692349047101539627337711213340509598888361527476563824982066966679178212351489308305567594262469871354734173852325979028719456244472007313132327405168031817908818917256740055292840349702203148203774741385837964306459597395858998994732134811198650775294351534216521100205784392064111902659589679731559841015060705399083026515819708177958815313133437987783175423540575040552472888825677859411871024460944254340641087918808899365294815396393414153745151096875900407193900024751141728481217327353310104362078410502378877484477578797804560178919372395245190988025754759274770991638839612998838106610632574685075805363551378258819190449165438581206020289714203830728345007711427899797622698064302473146017812487960861448793964561715318653900473153180487328775049238177346347595469893097521251263798098473156122062648875117937187619697853808920571954853682699582578897037598268386789080897937622430711276948893646069361489430992910251185917962876628863423738052038235254642082514009558309973400323823508520402613696123754428415830514284734184105837104686774300015369716235059175346821454198764785883704702925020766465929016830466124502037992487433974320226907567766997292163905973598798298775945031461179879023839722163017064336020359272094754762618855326248474243470347292740747671558540726452236915080917325481822527664507093743205772762291263384192690023879371315833132719481197954666631975121630620494213572084512097281881701870924768113044171904047184557804066637546726005868195298680922714121482885053610958246050899152017904201244363696405214564673526083804555085343668953386791736031946864051043899091957303248111888705709338852030915009193372353662892173848699200655755986703150955454838205271527208460388516313574012248486025310584033643821989054114742191498708734142741714053986347800111957564692936679974530282439825136089773142285491050226251109235587994404562724574652970451859234431502274482330286402385331301040433713455074799721236339975637417912888047541860341602668906172351355569504476044429495252205913539538751372984658902186910245421746954419714896441174502052596584063146572692963997968439916559161605729546584519249806612069229751344505560388548801341898653725060772380795038515831191899805614291361877302965911650716901008235454338007139487189154557651196955346192821549120750822388858011980811306275942966290155268818647905793345742301392486030015663883110565925475547889404393659237018665987585336145924895623450278739362523644657378753078873405544968146452759203086465382660282915193285861761052187909436099683826421081658690368502435569362364258930269840018122548823126232942016953357294016625335010894325987685367740071298609791872833131875099787687183097377645222811152970554234490150679436970590833563656234977265492063958133654423276593135148050226430926854853345423441385390112053277600653322541731248903272945483212327722811546584258210800308901754080393995252375548923822630155870996507283296349104972374226096703708398490522928541633652571738511257404918302979615618247364885552552098678306456538062741658294882613271610800498119504912825443297925027172731853408828764985748574385549349095331632287967206197448719794464152940195733082123327946539505892800023255006732507510762613725975371348956701739532115120748300241189698863450872358269526901081235046437014855715188991957151997834599379565863069210598873849421225179451380893336353153653280860565003988835947441510222078093752258454795393320134926141563205196311033016067567143308486863798603337338070492213628661841501087513642060410956421941482645074011266953355208914207676888110519639580465165014762361395591821389904083495793981768682856797894822739333213487706888758047434258126222363791286227257817281656194045876948788240327900474713580632872402494389915695678846125716315134151512541897664502517521987325268055408847885831687882953739470950671758724051449426491902371608551029812571105378919437950490515713572641997428673272903525994169180862440471641898482292487695981340955991095581448038188245780283077135022981336692370822755609367442982543703066770866930747218502339214982257874450373204123375380936029069117011433120499865742833287229567886034166587885294711613577607108089607014605079463567329812319108551808408242934469031619564869629911173492166924765606370517563517606171127158558712078956985687024734122598705506752733615115969203475909457312205930690520573336244776595266782922390949231774606366024635745721070510006447652859115278893294825189499061758716788326144305230538127955251175458392791044988579318216339688251583861619153082649454899626280480545910730210147729240653506046498016923830946222626186728084278326263859301413251747394140250866746323352731826959579190407510799320949530297545908246024848075529677830714696996636331167544521821335648862023448456700506889396411887000026512298065921277750424527991158849451425959660395799058758432950215117973862797763588559092678566989685429881488789552355213192375302295165326562786901873644818261448637329299929877884981184512064556371821568295260663630537303006464057914797012919611455933883004281852580700082200909704100620684100045336356259813850786804390649930350770805914261953379410503435240377936136257051575775440698589513555510440482551831509957120958560106991401003096921877416713479132208445269086172181097077115740620695436554550381855452846876703182714685107778177552146220439587650325220323676606100812241635599339164069751252142476055100948659281472387777979492929715409631697811223218104505640532603495205023996972037969886355617932721800714206679908792996759099949907855037693033383512461073427208391221747797570568899310549894234752780216854172128531475036141434215715091904702696969880461397726363825993361652663785003897812146026881766119959597087080803309795266679571913791660292248435255323278506404484539172783508219342689397008816044359603882623576558693606140665372744411066430169726150072453939547170717939273008277716071487308089750041258494190904752668699942371077116810252642628249834597642191606665484937755792818875020251595695291919154088827124573263236063354208905055226441400692436304077310894061081602320988030594871323739271096599515763776126361651957544544046211456265791207272891629703923995867729068813510336063145397821140140763771541186620322261157807555814127465390881029233680135131473981338539428513613786616760809860791386722481448671029935435279885656073209099456168326619348214085438035875399934293730525725295567190808746683885441557953520276405271014378707526305647831375626580632604048186046949494604849526729635759932592637971585764502009764671782770375730376366398028408158058389823029165452131733493509820818255611489652350917506747332102593176399103960783178797830908646628926460336067777547766388029126013297264565309286563332124913101633768730783580910482331560630929286071235334994751352162702335710448841281944203444468186991119497125219624003751486097091105185078210118740040731215646752080442914211961683637277167293484520959980689298715928418005518521550092355808939766503536125114913537461487862174297951038378965815042624859835338405349248272781617406374661853819362963426229529110858855856741517502751653114343776104277868402342246894149981585615274957305325538101465215366063752649595715277707848646781863544063014836396253337187279404507292679419773223814682979134299358267278453555223180225142373049451544854085324209560497873677923450868788765443555401291107365181321989758911679285046671110642877365611261183655294506456591786065504674938171963420730257107029800465637541288512075627874488959420452760587286884895309493151109421325124295571007603640736849054404266281167267005818605247781357390196752245113643134391874347695737939516394321784524182928106271729708629226553610480211250549760740222707508852949596037815977396437655029284357458967799722192632757431946061235240118998551119478296518484333897100668770856993260993546604130971514461088583805639485372519636879919114766693520187662960920425785071619662737653941976196186466433617600441494682494901810437905344354360792389029150007311431923881618100134233747765574611257329600519040404982579007809199689821039383189025919131045882431853706767247331017982453982635471955143221581605087706078667790820619875393917674455671951405261686240078539000500933115176680184460850632365172725945476045449091805827774166882155936775104168144672598572801091383546110348263856522411929974548962527643842676657192431195473123647035830849958231938875903114943433392892848308247824305344782001393051279063845787989269008869535252961412042289118199233987548318145937282612018215190088430022553910700584124420023416205836543698667321835508821545837392750773580419872007574301912261610212694689662926826990633766537119776283307993030529781546936809315158874141734687432777548775547882067300370252743646829680210149832638011517809416230051732717457787615630544022958803754022565027645659548603508325247219476234593413830464042538936713691722853106836247555626318833569821062491641170665418958299579110779870779941384329101263299852998894823982511037810531471043186706182525841874282766908468374480595397724426495236445816826850990300933072506433482983157792061170259756541860993023858747640844519624187398303901830100900607492165803428044305497919357178525347925918314751555151944275742262944993762092716036493686999662501910784666986449877360437856537317572402410563990344347509879875587738324805396929575897251680319291037204138993877661800068277601613325110515270351838092917888612667797487079093207560228608567486607167941657293494121411138889783612186331539870090265285900563140599694759474126407061057064943071901156244433100863309844137194774892966541683483450615683498536678722835627933316297810790792155076240528456772730860844183145997020388144480439801488464798467167466996133641346233387248690877256865514203088624294497959967351670390454292806510188417508358588530562466946617200704192757062913924427386861401560922369521100389071069268548972755013552074905109909080998710537087052391818695588335236824649516076064485474684718390243789278131733983705679230242322446017152781758243607629809107121859101064730229368589682208109047928075829554087031125460764243401184760377873929404448886091577652938095066832476618712065034666594234038723589146118107381500957576501906663446489599514430969078887673600892299863775017697246290024797940101293168448177004718437697507253594178188337425394811833829366113889583937313572357756064708757220218181374346067601643413235587735462533805526651317637031535614301832085497980343098555620668545281013205264983067315902154555414615732786898422284807718299741483244936500394870614302321815600989228868400400191294392146470637615262825988529562056176397975349757324351732416906411853735353674818028340181106071483408355486581206487452816149396148642375895164304359266014278576661472007410729391243725407561982249392576666593782278428626136386120193643385552356377035378259305443301708006939032718554087768720176102643798892508260967460998025415498472987185742871679739099011389305640010879902481987975680808319593771033354443988928402904853531417774286633694421456626384654048206801346917801073369200263086020925183236041751072145315729570768342213837939213506377116774809335792648402303738816539190597992833488285831814806995722034089517847608204993931971491388562393065897629335100296246013175586638222220464546786391653939521374748958176744782117843172458619060364442739078391048826741090936945164525744025403511418386634505534471472906539103034500389422642527956908295603177561254218874915006400597303595316807904748806591700881053461225003236179608266580081060874609131759609229976816399229903554479137473831982794544634209952020659849668314196606577813553529555151303921914933599870798102126517825860086470912411015033514719736141520158837743788594797910234784340831182102859697947293023172773973732143694271975721147359070211530804107457233791995118624104217208489925368019654903235694824785079627587461541026922208263721125659287570699544013186966253532074624800558307547456432334504006271015599852435970995925593866025976389987502380538370192013852310595327758113814628797944534955147791709868222555003348741233806111312211036440254477070200348391836700734167341816667241549063215777716910712565485149382591065181942148319547512617586581957126492801539110263119510645192643315890496232939050567572491164576597417267240215208486223976336481271066302605070900611305862342877257344665812266477849795805749622449437939154499509812738855837163195828954902411241808986177876463401359548646715810631275397093179861610381740051883617963849773856661490012322674822328025819454794816084951912052001904458378921196218763761028094657901086837979183735563212276464030566403329871359047625743495294273716323707314065467442786611051841026859021202497357968689964055798483724390446217876740336323382630976795428120500764052405051778921458798112950527476553787955443646318293256179096787468584561636255853027126684996678590248578242118575864425212540839367108305806012595109746084123109351737549077172660672790396612032849089271167524059044897151704319298643203615520046462810181596209102099174521208861631987507779558538548280206515815980878368901970041859303286278923407488361409186589701855444398971125390583798607659829817593126935808152888226776711277487282882582375456498947133291593047202222118773602675929732353623959470688244567472022106315023969809013996002330816756642817302122350091901330214417591440653406015724575726867355932910674735378953942969417655886046648852613659855058061298991774935184266392629674746487428270235224501193976496133317981350197716084905086832459222658446123221330853855211837381718197662665769431309300682887849683425035812488939026933712043793053956904986698456117871966023400429956010952284236590163006613851761433962891051101951109189871472210067174720190838071220424542800918601000609454839218810199861186220306323864843220300081081987493397169755863856867766040851057418666142479471469845841396645252152724456695854534665356658319695982764457499132520246414834505396434396760957802016742716474396472710113187034282658198874235815501420885491944993253218897544371509908768425142391369688610960824276488837342203297616612816054917140996946746953932392042483674246055568301861724670286170474023892353966662842921730821036370669698610077815297738543531559269190079897230837455950024236230990644837787183007939773755037192359737243440955168124824347043764031733766566731497501277342535030303795325034804960451108515183865493804710394426735258796650756062905065753086704880530720381199657658032102514754251705777178812352163551730779964002274554325102223213621028529100826959660829178191299047286040711738375981735103853608968674432176779163279911602091995717063755792016665816349087853220348767741389363846170630652635164013638083235330595151067810921077308205566768177907021081964237876040697301912047752452761402283199532319935811501776145652701914069211999471877752975659994106890534682363269351858871750734258021185915159152083741946490486906237297599899988911806449113500370751404468354218432301820579084423652648229891904001431495982314982071209487583753294664317431850404203008967950228886177360686029001412246843150698090104167037333445249057357252813024861093409795913857285783721358788591929372175959769213724435579456874883825461107662336684279402554573410347824375386816780343169713759153029223401124499208774810114975168014293180466274663953200239356643534481755486720988620257443341150329268381234065495843469820631447426429563298869783460641083073900954796430058591849271704186192057967755437154049216700201459669559498707326228359995105921285310232634044344228499388819923684444545278698181090236340071889583187959790807664368525494114370451795109253512668407323550185854877205494104086106829643628963079111818414835306941246604293326207281194912111775333632873823077399695346084482830808388389906579098954877591172087114535874856026437883927121046192458782087046320651036385802360617417927034814197344465224244971545390543037433656042916721423643426490114941968103939920448097726583882020975760750853814951905377255043024561170643020700415542561203848300238762790331480211018147130030191180759060300748728052255893974858245083717180030136133140497934196956525956382651248611072150071475747286249847065804514277027890672774897569732184534444830768382129890665227008616405494768581994966535707809409933352196569731249184920055932718594676071173710806505448992771816970933906238090761606971648276626738983883496802181897845886337800860368699823768507703800264853750855209305386759858686009943340193018157653741278089132790273100870912859696764683056001291319515497703828905637960514508348349909388854167964821938488769101877891603925987494743651961248687595518835944599403221950244582216537675304436521919806832220567784195185441264309645540109529307773015246949578609676271143157415219475423706427357600844232472905841312969186828854770369918253635057920968626001863423506535814593496652598160994145717248109363439566676625611514759031365020303137304740002388588745249626954205970143286588116983731984664980776347983082943982363577566740193320451512821280248046758915505471980639435434983602319263945757843551695909755756828742819423566667775966806663916615193032736014517047253104010702939223559475479394155888639383302620531114372309596155790492821741431393312120269063667072065161897162604395555917348601500177521729896014295052562146855382442511956569271017630474262165620569731032487843727329800930228219395943909878032070901994345184154108763180418344053656876328372945350912289980892018077627230146309199981102487991979521081536490945534022685740715603299674483280145229760147141685307412167191290065386576336110177634388128799595353578852721529923568134263139503606939416636363384618379251757186200620707740430114441236548769173658460404176404607286297645538602615874458243142071607534406431241816373827675812838776726018218957368349664906544734303202646244298484611275706292832417943027653682256568621589481700450047713365365510426548571152152986294438026489966856965565142284748305342325341970639400323938201856898960923027671816939333737510676014059306359939016220931505029160542926214513686139221174662019735710946869563380787523625075460642655782641402366320778017147600032244338377435206776350841833419525769372482272833832907142090279519355780772930140426314268622800383651439469288512225817266084787150779866965177568801272231713379179956851576637089003194604627150852807031055358397527248946070559385131118185677353242336021496139479604237639221240915408268328735051823478410345399252632971502302795794608209786581550299497688201327327836793183721760399988605391808955058778460011161558217414665214621812580734687665123247202681698193404757509401796937038914231632569476433224813722138038023001441905259197254858198891579988297614568568447605687808814402285982796250928421214534854385620667661103203555972410816509013872220410089060170740252656882188002351644998985138173288356090406513555710687078238726071155561383343662242150837200557665229090132444080174962783177612229826881285367136451295181458661751684888450843682274050108338976058266069695615093488671496056703443187398683952815821521177469188149593112946134612736774342794924014277446128994177909541742862879225838285258426908985899697964751801059611412388481093873735367564407266297103601913161742446336807747373288230207087908936416457918158069279449429897547664710649066845710898425643609255711367087413642424263694052687969779168528115623870515145703840623752894976003148202555072329361500235408638016278537033475636609824792637956882187611331090721492344288399256164736060054254533136414969216913562444003116735219083884403771666295693325889645916157238501104398495020755355646409721406046945132475052471794968792906193630067861729574364516813646094080265416435431481662784677515760916128845662870280932723767004890307942694936748247987154346504895894261996816746358948184452480349906913102681802500474605591549571249653295508956271331892579510723886506468548191111501734590926169385740758659952695205316852058625248526010153479210324131273284115031190642017450356614972495967777402591008815021102626987517092411313262847200629156850502862352408751090406915759637048649683084195952122246491985217297921406075863296617633122160722018436695528120943253411422502808969401084289136020431499659186115841297293431496733470975114370137504918494964706398193603011159220359480409096319150232302616808593456013230578129557385086669379507729170026265170281046525149140796015645402380121348260574096796812540623408017075755017402741614047324959541467446847042446147614691069554976398001820922033850367578238326011123239904581207126073126703724015134873367581462566357964191235213987139019951854905854019176666968009765444743888277398415950110060015873012827148939045047702427980277952054502013945091718607029604135791922300739712416172954408268152048970722463945738904472230766401375088413107395430093095212352553027528519655558518133598104567220595200867295786391233730753492705652018311027154628517319324255883283906956899399992166262114391140921919240657857368974724948110692218948224669965229300106164286299764885602750629798526799660289106830860057442102712461535698777192365868570032676417345995479912589411330509126599889142101910776750276050489934044025684326704167653961144522776944032726542231685390508395447145116001332704117520328281139754369165170756378378205605559549974607279021801531128309696158164001207528335287568317180446954117085123782760158807104988600016535946018253833817554057786373101198921663073567230841876030886841892532033824504870874224150443103093889083553008875544951149697748904503356697178304814366960335280674426661271735035472531816555353332389413870225869697008057978048620521105126191040781167529054943516665219392222911473718203720895515785047035032069174733713052390714682213386564208736875849523881595557534315406636376915315635857146622081293122584192140659102703290099411284260613140860081014975243918604923414471742494443811573588203771100675029975830203696256091163295059921716341917816761906532180332645128205999467583794165318123889744597607680408701542947056993384654415385863748122788552997146809823795164397111636953467565708707090978924944959515484863015075998248021081921537141603611844433070012471115162130853650988387725517732698662747694323847699751069955678625283759246697088924646125380985236141252459082270012948225060669132628869385904324892516703698121010206373792337513333787777436812116881993606488122962337378597514899851153607656839140996031144519281580705494890236653647365168653086970526119477727335912016036264940775992873162335077928984073904376311920952621281537872682800588355885943949526164649765644320283041073903178860112798154761248293315597516736000585615667749602684475134990321389708317281559684448978799097942305240556798618352750344057933026169589013427237765356721633456116800341747738647917113580397875962414929852647770132677291009629383978579043779162507358954297982018249203252373677794979877438084968717512990853559248170514754897918801858740210899478263092949213263228275763087486089491813507336446135833414366020741657806822341472961065866389760307218169317313846326790256139403765669421352356835277460065841248810796865759031056704142986335111527391384573146571471574025469223289621102592556071120046036398169066988185934133358796718995995735213468270202595101125320066240225596898427692740384786666515288085204419606890548560950315116951717005655661179805857582298843603159658883360554120214057780221293007995891542070498508192887119505571008409951160821581512364112435774473360402174827962404671450359619040221917779907840032144692266214087717767348008763568906651414951165371571214618696976283280189852863655185157730712713292028742971309391320832249365009153083976989563645764859847879608305910855372376651622040824778454762073045735029587211071296622132494672619347437540126956120869723052731603950228588663138108472576267947798443586033697294244363303887439401569871497005316046126235138283772675038227500705714979341273377667540953791729613822664541924075728760463385066384963025270121694895745837224397520795857626912656970290000938026865963210670659623133116898025087598841606762566840196419113832825438920081075201368685483728789803602869500259265791197180918368673101193887856096259589504890959686463912702856994691894603237025422435544553479646373250446631997553535295708160801358633898895178117523768623278997480188902863194992323268119856869368371452998664740839166703515419086944157715410325777924229358446512082498060487179864175641352231139007232226377860221319599870100987348944900629631311754927817329192558415088973293622164971688818242257471935603869256357615139735350238150278141062518832163603873594683686105496976176807961970981002911565518762658503294545758085560356454464470459136725066299503417501348069645911886635557260104124985495132592107506383773077784549729310733728368374490727918188961804654063297555394320542148488560617256934912094902279981699238306272284036430488066661659742801487615944015004576690965802071207328761504384785611147835592285292319392493278295055139278392837366173839453519031321388151307019087276565795242141545752488964570180717178261795722762401317371710572124999576756550061297820356393679037353618161400843932558305710777100127569212455914670970727886415275518627781305121001046772291770095420827109738713393371657032346377168366045957580581688588014656656006116715018299875379932622721040877422841376557108465388693530536481435176173185213126654762816013210449639230942655795780700309846843383864127786507460839397297379357968007285229843964430924480269731413164153856575167170352079271460163885267725931830378685777691442265432650602587777152474047457159727414276997335759938207471365014674121022037356666984519853415371734360940531383509522714920634373762283878766648438003931705120462224928901563111625056594991316837487108962623044822170329690781404781590049042564118486565374577732517931967660359416436052329151726450788922240665039808854873359979070007558453641986536320407683716183658603317519830320534438640708257401356787044683884874948024309832125495892578564816010013574185600990305689963247276883967901284524955269525609996638140160284899068726373286854103579466488182995393471359143408923689957023732647433105081692621130018830802650047065964926330328684736823698302068424360412160865162389400744515977815381380560940938702956545380990328378792747943428329410243138403808191541067798196660039009379265586055455765820320905985171377710122171147433424228910132434102358200371544610656344369166420899009575339000244883424935989335630699390108277217070478666185253058514692845540292803947930990529949879611691478704197679172661783927776999547191120208827895958169643215968905136776779876424841917771292373024876958424278257471036093966515116307623378263902798323549926428374208385621183574941032399121427028032950568755010918595408485030321662636812236900058550529248288718395125115235421993980362827240453522776675568417029114208963496890971901315322735716061168441843445851794274364361101309456896026515213235389003744474907645047352747649673792187596269177438602122551599813063750902292275862262101028166593758950959645990830492409957893876379758343037168509591194747738767946268054708299946232703811659218320657529423209948428948326568332012258886276313319333415938486537789158223434303590204982958268552605628008350948479323700899642854234042859858278778974998782834746804969776415014590105172080802812953448003117149481978038734858819655353932263776404216357592145167422531899902892428203336809163986613465090986712408617394810150889465947679998411837964201592621896932027865965963872693274592367105385894706087122817811044918644487394363294054030256653808832230238995679610696116952680055565644138155464262422655556517586527408370646022832280928661248765942236491928190372877447382434085969978168251273518673364406095607046445493954201817490958416093480299605928264433757614733100250987163664717636755960210853046555004117016161878065502382764646771461472487735509649997171419924950894193676956692537929020841902765006034645596952420274729756961718013159407314080343625430283132465425169659560431720570149131430826645694234428833722410069430684476502946325399836201344805746997321804050168822345975479208786433317597203064900981663721957768136473102160556922578975695330523881549028746976678949402674885160938545198774128544407913996127725165424947510452174165214693318341191235712316459619473417656173577604530928776947330769330223281710556743345146756202953355293743407671015218350945954712485866441672187597842677486786185137177788288526714566699047284576279400591057561278807885626635235169447436515545601525378565538856133889775767810963603247881380078507642696087914632465985760396386900508225993440606822231342537625269625917684476761512237106381299857576088545594711877236262888429789085419080302284400135330861826105349960890705528310941728623087350972522516297333226317744339339275116133991640962542675928432597624607659927533510076680852973301457131830628455015030154069132925847371923822147814297452763216803928011996124723132286574703809388134615174514440900568347162635753483822531315619749966024240716535551274705193776210908019344379678053456022683993166544486843623707689556327973513559422967352611178238678310200498271861994772400514989816582383541490149338622308296530992825439990005300910059529004629406951731303057608398609339220300127844425622014192315001314254194347188212295431748959711602346725225496353203520551481038293530838057168207238081931895258594927828355853472299637310744303547588821866144948023853942779659057422106248058547511433516554472018752276174496355666092817874650316619859323571337591445680638120641211313967845888255537880932970642903002629477835584992650698716331951030755695522302575976011862757756850585134838320904324989840166735524395622392521415489387768629320423944497113971821362913673095040541125208926406371802858807779940780505462340508506372492835339264696836626315446318967920084983150225776238164108956068468627870683368320515497964146278105173043568774002538622678691708193663202078534311753942829878126687324335363383258840333741645306371672700882773790611914309015623054758777171252143801985519922040819018971889190183474313341085894592782932373666685552482787223528339199300376635635029776927117164560061735442079115708050366455848678667185591576712183235498167596055454711669118156275472305473573460774838927918695315282420168303091314205035725084463053480698101572244608049941793068471455409260194514047932343351633142938773267204866731033060322268947826162071347351396480225156310998766549193039884721802639461399930090473015371514294760667013759660103639951818859635244071562933011336250711446961498764309607465587065305960276606483033586757834144686190814947585959018215993748996752683577586127670807902062358883004780596670784914509365015648192655527269320034181348645768036059126758469738290953049484382827855239418886544070980132458717481480393217669163705118548190050064859071145879249986289000427009358119779148621041488089771954656532876618740216010711385206861944491408386995184422325389731987605955796085548627617962808864431148482259587954612011116561650397818536619816863978656390245532746969868107992684213113989978021637840872000836374365823316404165726542047832019069384691145444156105864417955880158709976717413226954176026594933778923618469122231590408920493699563446664353431998995972499826287484639658244786199573251768966736058383699344314259173654899190874150277180410967292633137388254835250966830949689103345000424576228331128709600191747698181315406296270460885446440639657448491225695687792059343976613512634883758177397909768815993005801117345382079767989915914308867713750206039896510414507342593791565592208663076576769403633369370285407302846818908469477316031766581399203459025167643125140714057306374041096430835476944440484685568223334489738026712673975732925247305994394179097628602761543621925803273629706064193108798185910327636836442502221038501776102148037867017454857335023123745768795846037338719488336149714799542877385024871076735981756232438843412513647472240871114089933108482225086282631304601970573704326959074623632073636173547108180965099278547916722795381431075450456741247860602669742434176476846772883571825652129095979560640073362400815512664766592782802631738944359938889021546866597735186486364998007307211211516472243310236399185806615035766491831301097871942444322356480862032917758278637193916832627765837460760718033339521553486469560442532465680207027746092738953574728718799924598299819545271911544785795379946193325761800923544338239445369558956886802016744907711466720176552716688722473420879950495670848665740349758776920447175170056869541523192915407740366687594299656078159144816914633040132492728029435824673863722225069900380575241607432998118640368679327895596608854607644942096487217286403441958481119198265140961309705895346019128346339364482572861894816570244420616281448220864648943113547402724096125693225803734783293635169138667031400381539519156807359026606217303367297170128116460168546384313791023561591324489056318174090256286239604431852333317863724576590296929696223799255867990105405379218470582394338062504935745832499474412927320228393161743546498180426099451631637862138940336484867313103357600483598376031059418431641985335327586247472140496999469747320538645835120643486607862197383160343348669513713532653294301133480089532372962208419676772344423295464338998632881625269232578843675724257025428385531725393925401383822442590190314587767287808485579924972944223137502150978060359847815702913867165038323069575816943135529631616351096269346789690403085969758134176647972897230494351167351462873953712329411689153496658651721844399869786914805468932238833129101830395878716708017638614750766731943227745983554480588044238286399152161721290825506463138319579539846717203263953842716747350868843229935710531287963402831715168747121466332343487056881599117129261354057962330105876104003769340190116977078616788675910808421104621131632026158563814249643784472408333209286778041897670341847185702578281054091171254027996392849628570863670381711888712264021605467443035819703100108696808903663899649370273648741637990481520231364825332075765998280883427840498992565552198093284713010111303224523181667591174876847257745886113807081080969004109768653910487656510889691798620342806111343434451046968887273857218046329880435249458648091650009089369528819769574489356196728308037608905718126757198437521269676744218242211754952075598806206581247853441405046716763468374525789463506851326030082150595454003050726030908011436351299205271696847322438242624651516910179859073207418210685315680499774172143195081277270204794550756383220949374935368802349994258766855281392346413840589449351090164495124406175454617683882487503180751377719137303290982607941124290412736355471656702207000783647607290939115671051718086999142269371122562813599475565613875470958365967863805460118386045287834230834237215649346086821191764941020013381032872471896010347110885445243748912738214935861976891814022164094250247737838357181664700142797649753133721840173533664652429440123445853388123429422297025221227719062975321306430012306819121410469917911914231850079042184260003490092730863233634720059053472962280800276402736046377260017354003228556277835563594084005818796395621791917838826855033368798642210953481330166883371269498156138966043928793456358387907589745913414906908930145653507378499958267631927420484016341581146372086258666940952380263043752033355657739797539247193672233055960958086449624071693193061263235543723112691598851273374091728402994863397927644238057114373796404346984287764968120601167136014874394058284679152791353315130752540331233362982649022822726860635516908506866836166517815362811741982674783493487212196046868686067806762289846376789468917393918209443524346693683420214381543065265432094797967787610322256590023815339245313927859704854462968100139507380745572774814335786917289613483898579733020584227277521950821470872962699546500376534473751552782213757934825538746333902265706929222314703829692875608708111264349525714530415670283563638475302366057000428297818887341290185739230816565101024119082133988394497247216163441842142248420442610482948882474150921578463732041688154864970438865955923639395823260454211084754810223830285914891229937463990933424541435138433658529802229225304595405257395054563430995754654866208720014567788116255931113748053870910585217232359703143611687718305242455083895241388800279779948747571895138424860902168734308390495009071698249571013408391176160466856633566863866432428914879095556780833293265800337510182967910477008145637123056140907599432673865262122760631012476552704203435440218245982286784584517835855609684902895537472762203585823617171344037039081632868000644276722356618616199776544351475345689413221694090852677934076193657587381789796483394064680800744506934679955299896498303182713839526485437359471304844021726179226327939106320693724721219542336383575811414788004883866487593070631163183016262652175881885192503805294337808688341003270709477433660586210913115372254447761080589329432935403927942759550524505858525060395122089694867810414540871361056766348479875983176419262390086952986414548890028493794171457455147498910613694987472416464311967801599649285916161888610193767285436395426059876532508993618350070963101221115570644106428663824385730492788319985371826428596705621807467713145466450230600375305507872016268498599875369451874670775761413749792602126762473201865066895611691554507949763073127738994134882510607898041493545824215568826321621168680262135672643343390930488094481986030763419417973956359133809345562604624631348867249678022133032233122375933409862220635967226456181501830134928255420631566956179589205731130607573286238026617740149872588864485232921011226141039807403427929019487929908256774858092398965526575650407245596293097283288361697118060589663011524492299148053334188738891455758592399073818650205634849529018877923453131597859766590858234483347089106801291151157935639148888838338760454412822711434762176909101267091103930574249214243241977469233407448888492064346555280889329693299788535220529015485458279489989509828959361195428013920739546186292146584484465813178765707476130167438704317094866139229083352060020288872779605367707298739759245161001701242124254307172568366811301340387065208166864316513976766446731628430470023316651411574014760352214031473516745103937811446525058597186135578796270654140589864724230722253204662437485939433353635805803409473719616264335041343950203180352008934825729824318663585584183485916318876563508518434189672325843732202040913374467529734510063929017464442624832880137891196484054096885636674337025818423225520467609040984194703112249926308012387603049193091192507583525515366568004992782055485406816334543018572192837477849713711894657395823318576372250424847290279422650807585795862574493060205770613812145699569084609296999118347590430343798727408889843649363010805641142592951873851765850221246131317468463247455570062499725212472333513378601827682854705060608988953829306615327753845453905770237625862780629044712232549271290452330336164263657977962675359381468261490887198207718764253885134935351622326852050197592757666608178718820405120166088141003642530991408994470529156146509944431572675381236502135048019000184997315080129721639806832740996628836452054360814358511775499447121538770138362514371295411406175762248237566880251785227850645122152125983765679785835546188013597212777689935177043705829195895991778711577400806823512424434515856424041398665327447195111772474317745156807520368831290595153023911396066510326190312974252196051349582933407196787266789244842760620673729638861641268329311611021370812193046314522532443636072928456206368764508803593613514125228406893214946833563833375478153677124395164903976420868561627273907196744850883998251089919798019598093018280248841030673699026134377354016370629932274900938929994500966516045201037043994174292442158872601020098993690358850043106936133918094508419678588012553629671355822061013339598293357516669418661277898263990910769901648059202602946611049447650256458990801376225346581752256551107629402939065220704292547219429448816636928723402329177440737743732544983717214483737213849257451234965221422619351832927371062899843091097339688212637538255692112133099111904071200106984085998275628001984862479933392604955396967320124666080591068848540389430192661173510161819583871957009696725528792945310797689408046325949851103138428213218086693170819664967869288575625297061573517198145938542049445035649603277313394997502977820776769565855898027655301240829776403367023547534766429848936923905597439393900187337746488400676576273906775647492363802805588412853157058465844031518844350056687976286649519757790281761494136322100935224304925690947636960434850430854317656626432449957720081974272982756155519511958909304620494980296358647001617568696474681607696812585615059588700284728089545567293327825312863721467071680240406875351563401570407046372565034885695385740440271587313100438787842481052295013328878882119576365572491841060043968110964092555570880749349016859390891339375295709939668005218133240975773897614916989213261027203211938211554743952878232763428025378347865356511850375782083004008930997060905721467179336832133615301611147398231002772091633769144762140017031623684620916161891938081117374001473970008480084685549964046681343547970714231895964482497473212885814274087198569512940272896793493656081997860767436559444126742116501041635798306168343322460248099167710971870780453310848188264064932618962966704071487867406303945498308578685672917847242475498392053550551478937066886656546390114661350067256041337365179205953496029103671040931075446984636810083555993010140968681978313650394953423645572787421360075354575045008833355235025264980011770552713775498899321446090407130436737453738848359089477380364099261498487725377469442624630258088626454424455390188811598964704097833288757751249917399393675622177350008359979985731980055549253698482559030899522014162413317000762412810237141298699713678540464189639817572603357341971360243237119068179303413169050773132886235395843461784956809304029478625247172766450079203915591367684422897391560608060811689687957781521446446982324980912690144829759773469947188454858164745695225479413364711554707371546990765737206071572658586936454797516685379480961512498669958068519369716506969824548149973333666439781876512177358320060870819031178837828328453508509406902486240275177210651495310370632871751442041900823755707227650161759047331137747131610275910087902543465732062379024681976783284381000878190601358370847544024185526821279898998817812154310809714985459812398558387533760947113031218398333130298520595570447947018841590570541632362417867213229678790106208601812647527079970336358142659791073404153810024199380095462807856694508082879572221337507995579234642078284584930088363917182192177046795654629928263037585486271232656183025528727648877447106241834448080218453347966903623048680241365569807847808440559872542641401296542799653207390728483362060655216764887227512994279324413038383410926070206854166448900612071186023337836916936202056119267391080802292737134326989932637016631113103542071197436603337125238626393334166043052137594098604654871466179805049692173392148269295036595140397175307015304593196921750621681592050265451870014682454929540716894016342546480913994346425554620584803580953012157663875743049723003366311197242967707843342248999884796476887322339314217165878849810745010512231120633371645013285735169689188239871377395081480604144063531552660350462978358727208739870677076535607469823726074167653072006022963241357959551268924913423512014906903893643676436624190913574976578035158612349240342329272296849541467081840602361489940102852052710555457831157668828098882849802451622287631407582992194639564745581291732926571214113005473356253921106371494759200871154206849638144024873975598811252598808523264549189426211831205321683534046639718347282931678032604171582390492894817999847760020096969542807589522682166959840875949146332838518981883390464592605712329940893693435129325583683279607310125889324483799304977535923476082281166280247187127805271428152878460592326950149377249979828545492680814029176342002956493468952975427865645867300550516217711651705465217553854443786705885073337234228864271101135932730544560748620861285476451165317934603191630455914748763155921602264136579242383848277391262126740070277108264415502398373714113030948418364633732402820018122393408725845240607271565051618979218108244208860871071590567437820618018005489254554053064296025569682531369520314201668099061548488887803044068421834643918111281576140410228995363878147515974633389000220265412686745355121859420606719462201449896951231167889300071301610345058590744556241706025437627140881795541075179686920612241521888675262488377929207210483249888289446865073648568345384591714531282491532784442138457904448424304856333013855849827091295386868920937193484474022067240203509274804421224734506526841725651668287690400662961321636854813314356881635174011637267603681633679992267518106896675734634895652774623723050711268817363046909952442774065168159025713985597808697937909417596751045160407413536254433561489038291777157899881113865445605617779099411770956663243806623857887664607686893947633558610486935568742707311477929409812393911635753127294449574132693173427757517286916545356211785704871968521208544366679069203283329533831292487387878682094255960787587209717173959530208072327383276843558300727104950633354562080513341036845280436638639152683312618906201636507110839688377784902107736465815229965216312258503273306093572524931166865744976170558542921186823923747949503356989225065273829616228103392540626334447962853416531355016236393991314501177567929205571550960968580634966536874062125157780173809935896275439988322520390117821509698854588208873641727485912723561019672010563744040813859744293969549503143953772460624931742863750815030583905036911551247939168368602379645717787353086847195299191858507329541883925884183227702939681412410629717512569485430699286002714779508236658926794306015593442566197825013237248408061260427915980874188608678918869037081283631900608011811017110539895047626545622780574043209311059870686085146311844933717183682556162698908042556668122579619158596907026173702393555775978022976950571715751671342326410895107442122852557661854050676515888149241031813581216887611372402574594566200506454450324858399051215083004574093964594167873082286276536848358737910860098581524828717276872144967391969527083455771254654009561213819643966190422788119747899092690703337142929624826592499294348402894286708040474084440094133345380291873674914580616480259561847599536794267482324126475738948699946529095889160192144645947736101325542451728247627368764564023023974247209168466334446930765759415277028973144605385997897632014753434911306145054723414306658052784415621348285347176878154931432358804989979467394544231821558724076253041247736059682873128972996946359534557423518794626658151024524013206722126151630201939495633774637763555866652536984391144694049156079358099981102776305863021786865783447938703314127866814902412863096779900926415223891427567564546796348784642640290839791536558619881776251469049515290314191821194586322103698554463134647464963254985807515456778454853762360055769711187899006229650509064911395377695809466237983632853155241385548234767575536158781288025669777646174847636155875794300182306956540229007621832621229111477765846655995818587868111129816346884904592571326178024285897538329368049878442414377846327501083707119307649224054830573793925827771563313353126541498131456150791615664581617001098863534497016867817071034495238505406369942406410368626127671133104090099676489836227857459323437172318830039066729172214828005518673423038732273877823600466802553552430452097550955730279103587107308431402498627825182701702454006487055097422947186297713704430695054594336550185884999552546644153556240162628370573188553777469721412084442634450620640377048314491627812068672724129960572926870117878005073768814504568216528221479276315232947702301117047136737438097184520000733683602926190781305938033827904557734916115579909441074129489834908788881620269632483286784753663825507813197980736327549478689046723624269109852736425281822456522964952858230727258974187873328587714494360966872108437001718827325859562012335526641171626510609825281867810729873244595976774473800923860349030884031884470390935140319434158150838458587346095938958333059188980444959221492110909894924390253662369181209687861267114499431249799526975558644879728231752079512766474097728614344960905775391297001350737434598519001851458481334918594591018865972389255859343581811400288213150418366210687199505978550842624224913325901674582405849844105404085126102951223159311232536098869119411468937438812229209238455421778369349723809300308336175652667670907856652052885628101192046025405630320322599159163687939451830030679813588293284997695963251886407979976920669419177087284000914604145466559290535062764236126558350173053515436472203045337419662548164598248300244602313636031031610647348862238453696666950414921533767236764219797616953087684521772466671985686398831521041976879730017591471082313377928665201900966680011373529021368418097082529612976431133847000992011833359356385483817065682208436062054692804051832355916315713711144724592131346364049752877461983569587100675766714345290732139463751210695998244238595713559096353978869484591286569479537866955073067513794086421431476514133736231519554441355802447696956363227271743406802028332575189434257394530066436324261059020959185144046380573833355194538437064608357021924034009768991153520953884706548567816842364699961888573470459431581355130697554114968590896935809174868047642363762377779426207567088173014369006926945424272991148870196959262873178528720361400351697746032609960677162101960274316924295009573216376559452460767210017307435208017912920480429840964231288257019088112345517671275460911225227829514499390350336204242517734023540207968873851173894014470961428672038083469800436076374655890922320217200810489367716128924723324592274931447780124069488390149800229152909764383426077015780973536739269820486648382853234847021322524895665190189402845281665312686898652009958957158296557303634224128334615254910046700175509957794160486444334868790193274321471617015672762587272464481473219750440916017186603104749976498363048068889132013435076671188017648351176992087351304051502269318876098627312224848095505269173568784109800692888477475227300158898514537391419915128567453608699812312770193432314126337509419367258098791945815436090709409458080196795115354457433981368045361706509575770713292308072423204377499902481393957638513456659093210589638670359709490334070048530875256484374201871738006283725635034076424487632610763928760886250918257390002756388392691395347680867334414859297685813116593962827959975669045403169016058983899642528933895228893320591852146731459138507552467345334156485320119797891302456847562032203134388711066818171506190589569092038698466665804759746542040556237373912181152733810615235194090305048057376565263243212300191933850173904475159918277871113779508592114588643710123044068607137606749429624642976004477017814099824877734152367201777355460161622385545782824237452165245524729184942955824378599623485981673795774030642687010933320958530353011546749638077089027392028058368926473147919510612560896022468293880522234346215514591681941639229039850035953329473426153720277861696518115315724728961937791636835828898583746778497636301719789190562275052629665559438197865645361129988648000835691974404789751188427983632969099380588366702173650559752685704648480174775818030137463018601700355471956915811229261860026786475407330433555108268151130860445135208623373718315985948236001665902519624232028330180616564544714360986912445401374317822573383821017342870087537509407459167318639020909407201918976445795005485753746028063054667282408518473474310613005297989577938760728188447056186132230043007854554764022395816666217795791290217575935703606691252746948673506732894530003244852558579868394219530425884956174637640830340969716673453200789562077334032228283674863397004421618580035897780938894678775744763461114101192003518622479906461272141855780931518805556072413351841634579643041565073161731007049448331802632186180165547576278851203832454114916284362160273343350249936223071353682257833798474607231973555985612041677225793422741792575770567773076601534938448558666073281498502503453256812280738879491159461138862591273762899732521231600714313417028707227809872908977641216488909855001955136311469290774845303629184451569071984202001951615305309430925839583325917225256947575674806647063823075223529792929603727790166295386249720963670239525837358276580700484300402859107727196921064398995830656107095786700481766266996505972085211174009114663824957282530933553737665607083626197358713122287801762218036190556329952094779221782254061113176443628617110116253150873457479688907050528831955044661196945874408647861241074815355074384222368883520840250666769400117647149063422228528494736501769630825746838041360380670099055420646065653702269709685881342750084034679888618864477522617122123307851629573361329805239321899431914759080150304823471002714124662827065271239533097552573286875096588123940008096545382936124600407236187548442229644521555569320559211302865639813359740663155175876966867659194374392417902414645138894355893053668160810034521473634950380821265022809635366945889008516040659775002629347640778598928775285730212849980665028575999462964240403993991291907138377247367656108509036569196814406154523366141933901633329511057024889840076830326382883470591775874494614065826606138704332224079692277653754093540138666106245872143782820947678734127178838641227724590579133485241574668049779342554559875629203103128621712975605861058919629726923902120146654570802633009264286803172421579467442280284465291325166362480704692331253133961814516363009572582209923545560305884909808802834960495285023193820264567921126566937943737329721709718583646750175440669541841397744783339392261360755297228347485536203872295237819282533122198564593841242303237416782518559871415004486216090848867879467055747002315109847192114788896438641201437245825190734940126924250182785314459145155561441285172571989779748607327041818700417306584878854551928424796083962325588645024100588603789969982990911895957353074910364950462684444017366607011561608819373280075013164598355151495519940203464977004015399921701774969775406551738872044134012241758005601484592854774078030904617857198678581005561538981194441511188727162288010166638220343414672828351739431848970824501523653657164001528644042418711364384690758121010179048763747779161391748996965782428985431232138137708158794683578024727266641121322413131235978466331385974100004495735679264920087507371148451892949133240247739244065910508820296959618405053593622729457947329926164108583514235146115496957448265461320224300462136433161826919329261720919428535227254715911631312283965141770656238427267411442549263735138857652624763898150319110111105053568502556067916810455775421969402582189041640534541941346866018162997260723798720305785249683027740805257655246707495880115138740850372930798584670885060822039319198109436545811474541264158841001751691624598167397816486789230496524091291744852424696374654902601626366423921581072865725882309642650213739794544294980037657812803830312806266902333564850919135969508358301010120897874830320000082362924313273094283613514001867705899878901277090807091956755333309295325272365971681306914504169418877938448113725561373955823964002475792022432554481215923372432250330129213582720053816137438380297092983742180606803285920769896868803168812766872325000937065941307210929753617262831684816894442681760367556567736817973896480265299032770236729536723636527803307296744643717180127224915767846584708129318915993682023429146621702855942556614909266654942674442152160169637610735026304906029272624760230764942449553689113970597294232982519854139095120621949294270900808386702044964350002327717075768102989196072396090732812073342005642321068102355853438711507092972964088347998356005110912807491418979678494972778022400144629522023880004136435792396264917654872692459279510649284196114473132913723373761953496396029020746836754382692743561365133474304297604133440043971587721982946632464125842672883699001619462661066405508704793603619507663720195523538652535541553132582765880677020296611593336177341895665288216497815953090805907659296017715708107739339075416079751674566476393630419618297930667896604614754305712342492071046061242883733354057309722287388573135397219557347199548005785563965228914400907737658819248163691703123775643533420604464279419796598836866065730558074411378269143261912129839852794173825881245478954435013820428544603461603684775063879482033050923839880579987968027541599200511936844901171780650037175485268647166496617934587886490559742875778010033521421795742578531918562133913247631385536732160142553389658816944480175031524572548435425624515151018761902562228299800032056088825868258736559887094425846188283207329536778474702937369372281510009408169679359186235226743732491015661030964801547955759396622176549817088145650533578569572332891478964577898365798451427822463283580210657638498198041849016649391461002773173059018486615901819224467924334171540373434640794778358096688148971812552994605045602236318209886417963813067297791113851761507418798683696149886577189734383730228025065018466902577902246156074035452302417382863384922940262612955859028607972109269786817797502365574657016724335644673145313587100761553676031383292234012412715232785217175999133698970130672190730423248123748247638683685793489241199981444244510590976280457213396065933298902451807229570397304649972248414340353149655473498463684162391248623714666754542843445071825082577870833834626984759586780497701815751486119727068273329399270922754573423641842398630414868968650083556989045047892807522626730713477779017147641089926154423500314137438730935239321351736240695567030621595791843895905806515102492723939595491191704272924800437024278689865399749672940667530563195163969488987237025022921534771267840419420868030263237239974889300207069160160753593858402638326674777861259846945596335049297740130948576322523503824926513379058103560644558377870775203342468465018913666666758348990518821322469917721563341088183744895038389519511749178629090505003532028409312446267053180890505417803042060836269239096421751239815633729054387573838777559002667603186986539015377024276660777209964865212899695811731867020171615667621622460049683694684009972691726467903147478516646758572215470935614678479705777698021403959695195546185258143738799443192319565198817978035208279653844601676542556060661771822037559644526870027939714645908671277344902501192943444719031103230012576414660670700009783499671322585796978385980524910705274070460355273707824147845975171984002545029298197390314096903187044763991409982086116527537403516703945795427837072106835891385104620162638405774932467453487078524069050709418661916171077892403116988430708545011494778183771088305785692172081691128070077716037784498368724248590663518040525555994667653486959590077922117084560837265788301822242690213398158525306937224936352906155357047200469847258878774161871240477217329418871528533389949226136962259590586850149565476937590114210307876036882877477835217548787902951090327756287919985593671282476414955967685743663663622374102823503636691539870724623739363144227377137110011018289961047382158918158140072453037960997649942208578825383064841173385501016076801599110308358190419725647745106311646594191239343030466511056404493923407853456443030769943182968507904671149931165095937365176392161418879413825895801311536307015670834018586481927492516348025003961817572704928029192102005906594097553095374434807805118654040167109116645665590220485433290261457046107900426131995111367981599689538179457801266406414717106062303613849043268303400341558436563638079103579042467215594681301272876833958217418822948319854107426956139588610581740225923771704028028888825312691810741891902880071107664035845003802934658541095966453363020628046275289975670858724808313590655687845422389428259350670251944144459777303931041504515899573011071135845395298861978755000397777411392264842496888314930430335988971817398631396872029405199375905462340114678537903033490081832443561472030702297252433985001303749170264693930743078923018202912154675441619642992903024920948562072234505005456015407093942189009980985312560756611241679775625683137593162639983422850462623533122454482876913439936913307316275282377995096782658364105931244739721270916403056446259877844901861172896105949213616532129612314949173714128105581858195471180601130350674697455350893806266069796108377482223492159064898115573507759236735562950017301480963356604754448263333756863391602618137988801739949109103957700161401170086167804786989327652419910053553423141571960702481911590456133043107255809150229000373187381271660080634624098471218951924453104021899267949450369352367880455153817450765452617783267998924099464470281633676935425424278510073821299022467310717486808685124350805025299010114918189382741182952593158195887971110199740664839640895341857548383427163644611813183976644636661448488717612950861984560445418723781868864132483654689686850625030038608990993065997465263434831363987884976631944292795383337589737645027616814609625580423316350997730555875302889292400185400370163346812086173389844356945702036683446002679611702903804531132808897026270543527113535718453677866050784589418035575400673457756734022122437067329603825668443750786367103057652912105301334695541013385727154356896508553010307650426635281409914838950212440667569475671474185819678985805429175183600668378316885884852443381169050217199886042542097009684905041681696307553353029078189368926717046578780885788816382721603459634380495808154076979093939687891167031133907932441322368576458627299036028445728908290720704219162737047265577796403368679569259299641362460696872341890974254158490809513126686187168148236122393872219897263532431468578936565733086061990528620265140966452686273988656801948997838147406413499316101186307676920669658479876419074472313165389681926792158600384622452739494322594991264396581680585998655303023443403243718452845208865808581052506847835802579853735705020841008182348945420073631421639767012290004038074293376924765077053694737292918360772059839603363058957513817182881484959461181630825279583541498917348003770360367145866749925051056421536513796442241584773190546947178144877607438031814982079420440289023974450037349820130525513095499169951118066035044334598621111442387154196278154683250652906651881355017150462055141467961933500035070863172381334811137775369184564641426888761380577458589971065408681637597368320569877614258134421090647281317987840473780827870110693021781068753527822967517421173586079667798308240124781022236311862487369392787632188154606545196883987447067541695020295486314995835861590785085413065442165110143126646053713574755253377810947770775837236826440610668676164903524589126780273598502258652459781491594418711230847895842209857200296931913592665805224896076514991366094925768149643176407622482598165431280719485571078062473792612260407750906914867032273641955207219288398180322131913061516411893633237178612121546282387645531456115099740009117136782263929041876265396434228669957945407050768764972041682493401521611572450894589968129135772472387298660011278142640879801740183230002087313435515806902359204971980570921867127741123586139883410174347455301997262904585643509007639401426910769256688611642244285836300579589113094270554788406260260040967346073141710841767124789159569265708895678327722384217928304865543404016973056893491717927654102609138878886999137032196113952945558638542442226226148183216664613819626580209318034538961828485066073664208227325044758175311789929202944789328883732006821327677057748621156133570946955099192969340625867703165000679696262894202536553129312867144095736170494920645087221563375045674821768906770928548110507153420702692956277254512359786781361566057455278787928810643458121988310481243625813196104937961076143691963002565230435486076400662440597786424384264301153467470045150138182047045654180697786782855913558108881731381117345268710608100455392153846995073225137999880334859883799465338856867664944383930164341574136786084168283685986045342497475288374026584928868677952526396722284496524972774232874199819863003916491724815568286548172200463172725852497992172003021435384616959273629319381928174404083048860998899185681241854630059642001483348624460708968619847995179297501774140354407649488521861038192163099496323572408845504451810183079917300403259263340006756269763739034032948464235046672523386097712482112052831820114902351802561619680150071348374870461476488177524853415240600788843088251141609398901668125973949613751401722240304104573145760587615242732609642093697428305425613350078565999236839775772479976505976020949256704177681909155032330927759182500697175846395149320271076412874702240153433532368716606608642161815982580340825358517811007700581654035025534111469688816328278138364874487785981190584119976250482816349012642368806121241874940642727192126623329727430765323810258818428600589421438327470037245632391343055234026735979922480248062253118413372975347048069786369319799494614440344869541336581421977205974977558124250265361983962744870723224760242761252580453097003792932894491493829018810696663957145371721672315734180348659801197842965837970570452852492600038259062811750512988971286911852930430360536822333467134945509335905907504061760088155388212883901087465785393874134570055695894064426279827044092544347759788548102648795900153653000404886258676127378655071582463507373492292854649473875498504799572212119344879958963510624850134462495562034823705996068450211385702698908398265450193503239886245420422351245211520999688836946479117760065914540147180710878893741178347544475604741512641715955530287664699404407175449077819765926943832737512612387811985667107699971233322828805911383075700695403498113217160824054936330896840984198690412649505793487773269751597987027477196366475725433241167189648579677921276770332551078244512264770926106223051577027913801912342742354546136956092494937111065050403436545450602143209412667444155474197824711858873201619409352254286207187917872540256687666696282045004190183285767051230562796046705600073200311819873067662124637624766372199447453691452008119001117219892488154739120783742397501625188564711681444240989655036131165768703238024568250435402319932064936884222763444477811000822213980578800191127439741389186441186112769634693824693109812927569440865529066750934457353904993273800922377549376928220901880255288171471511114302650683261047179652078802039714648461663663787806646970496087678765304390371558353283974231301985905766869862587670099174323072091954556705505995491358158133839186279854387593101212218986057915823828353424120057328701297741879365612897588667261195088547103186908466349585605463836985112870861323002627432329375001022098259575877347520510445085073015211460485240670489362862588169848665666449588748670134029003852404679773318993535500852673166097085389491264351520507379686935036138362833854067195023997025553405658057604379852885497446095559060795970318468812367934058915939271726688928542597235364226132043100953364532192346698882384288602112033371018781567934926622256011902658889203802551049672594041929797941322743004972334575425603633374633064510922217435796091768614398858838105218509754186583240784308630471386218539298653561890398493949000050533243086463634155049668539928294316569024105897886890729232758530145716500916094106709677605832918031565428890762947462823390690527815245341285409653396772906181172512733357618380416651010650886284003973494562056234880984361349062178222394798626609325206068651620317905251832191209629566532148210535939868515777070427703236203915554346538959750807697540962169372603159791340434030162197350158646275474723639648732277778765058467591294447400725504606494820770496844994898462435722064356635775508377570590331078914487781683518106675161588807710627237312706170321394298939497659132321547884690656080486378435550440872962563428924124095410888588202752532131989493255008699795467434713718553851157323625732626752180884370930285492530162326104564668474919709297574113982605858142020137249555105352164392181158410294535946405732367322785750865804120185459960037497779521662067973523626444800345860343994114472277743069400371848821423537428030638390563623071233615301650458455114088666289069614302730866603729370353895153669577350680337145485630833413327292542030285164425730981690482782366477221319989881771120058272825479714802922161623661101984145231246425318797017380474773743254603758506774279553442585443203879074273367639639098864473920120597258626961222818916688565514193094847605498006928705445750517749106463665002544001872373054958070901204842561975967325690380060418493960616238421463462922741501723020198441545270241986523234123188879178542323247249542934201726998369560855629223498962848478579782688909948936287579790008174932336695391270793161717861903589118013934020245016150950288166521498501970548870148955580927472958926604109957917907076821710604497184344093239102353073587083225334016272103011499544149796894928671501084164566259340044573908303256769594627098006690535649746845920058514565798194215204123655179968600874765293718967270625830647393008298695989222775418176228569889924859547514761255770137228820395249942568885204598015755202871215047698050922796988968451409996172971785059922268506437200784973787031294178484074387112608040444443337579032478863415465099997310121952708629545820448034881593462390573805554062959132574166642209365398019784765813632822977529646568155188062317140511568023325917619381942428611450478679931127676943952460531909960973374576980103424499359242985936468270096571944321020714352143498740734198880882833264282547497228877597210353240880914039957729601734833064678342201734009088305191222460139209999031340192997585130361201450726427370759125096553324062846204640801368189918280129661163010862088560043984348176625091747803870947661034604491778322360780235091247979023490685846646441335055676585559378501058342943817231549485370575028971278337622832700293204229616585440405522683229214404621366607497221501364854793486080267212074345044501509654357496008145221039615290101593235679720298549254854442581611306419379572998117072734452235245801572157982398999486789980752802889528997572803449356504353874080747059098039930255932738075455036798532754707080309036716224295195682550450197287762997906475196468223489191414370798220639024428244611706103052549467795871175441293136414604023465310705707257814969036486186366390244416796860860044144438641289740952864338888385495643854023142768703975381354584238029395466077470844205689499835944046415456184045360221872592099188110112795761549125490092718533175738372046952433886717418995190479331808568288215233700291264261750076069827120551237048501050146933572031380259762923267266998934799273257890736440564013597635181566364247369731357044506356270203296153198394498235252538508456581116103816154184547009363023272098162522115988565846705573178641381742532242780164627339849292981020909915121987363660718384455044540951464630289269121355349661677809516701457034380262269172612164221358607844985581376318012598652546812488267763465022141482561127722983045117772562202698598506934795103666288366205732107420332342172885159853998835527090957124089972653663398844435968953571774015677452239690615972276375378617638125304238793753084234528594941628845014383923779443536973645712818454029935589241816056882339393246513746508203881683965858127112632797432897414317548154501752827349002028194615863662637388921307055301753987855432167555011663230655658354735080092150147605229295573824337399196791119784021766232391544573092934514969814193402181559279723978508408726593569961507081696205719445036822343216631054020997490432042662982861958202768650983089963310764173049086876702538025989044936958427678206197764102891795981268895626927806077019082828505897385277286815481447498113344115005042558233212055629353063549057199413912327445824987442486142227460902348953911305417511205077276965649018153720867583502455964971632826352031730302340588840510567843363108976756272441564934951043218946643138363042527221084053536021272676556675574505946501367685247434422873074440976739124202052271108878149611783251891282082044861169232852011045410673159372029894712669138595892858328143231812708838381600871171001782429245440952728873923415708649372083033398623047538128788950531269465499428629654266377884743089612108320900347242220226317847923433305447742770668641299449442828271571091542901584447318792072506815713334901272862297850621798497123315747645413891811639908600202655897230412752530432704808952865389685414435260110501364931727981868725092768620832651843114985919956223923155623299622964672971152652148798804768666630013436135121195404450513095266216094833086674069768798607652452784335112105323052950210500893133487291898522173351178476195108720391652724001052780398436676538732861159367188228967880924911792283154483959199195217692258499188682618966437474383996111020971967853243750414465008533904677478509211751436970076148297337499267380056314013742091751339081341877279389336072146197053863418765595337609359021052679747042950235608132460845268202763668859963824984230173526143607717916983060553435222087176401231140742936949833962497344311531631330991353765363689197667042980248344374773794587623117540005440128421936297655533782481751519899837911065527633433028259751297033885508980798033301477622067769759329844097546992425203582870737736105932651255758369320936174676581616680827331092634443611251872042778162679123565368406358827714488801493409268353056251955740016400121974512523413831051022131796672677918049522204040103654877859810332584851379338130831844494302081073863832967942485860373838432687158975367160940879204126706115150369365156326076621487103836070742444790870270946984835066724054714868475813905289893393238989116350882782478662950545162932573892579547944875202584963196085495720285172005221246352401811455395654653604744565835373160710744639353873355310064329713229239896103800440880473108020154722766541453093267416793497596031564305730911020400022003638787320829755636259035535478495938614796409443272555198853484030761274482454775083029804221682884897367287582074382461296561425810686540029169503290024267768093635465460165024872927660549680195821042305059337764906773878453785309308751595940699055655843800818068331208931273594179419006616878468012647621590529704992931295966485151653297390013708217924176038528295581532983646451135318955906894559809851045360812185366160710147713129240368968824646149127722446696246876094479259389692950994273071854138970298035118492190364008830362794429360185077736138162068722171582493483348090122368507912075449952258976002588033397587318229545603453927196212486520570284573372587696677330559500376682301704288804819447938708527972344898471527648812302282423679652781462476800264115786034139945062682817402588548974908834345582016251886649403729639795735148210179544976672370409683960543620403453475730663110203010226378701991633209094203965930419710687640075617577728129169555765845272861665268647829404608099413842170700817478175497573497846307433726509349681000993467186330802024730839180732451736346725441207543541873438900072402437957970801268946530885404876223808039249739562052500996516077266920155521830007616471036758097943075767866027185327256761252530974740347373565746810758616941312459296354624269620679949077488212422062283879992161519763397648561697650979899608905041282957966995452688638284023077631292598663623927800601110379746565667559249483093952140217136762048397235343806574914784243857553289358205364407526617457951328405101401152022991104209763494365400939193660700259232013780545604807666822365656032186990430252734062367045210717010159974219233177842368130735312552177516401232224193992666199448580076740843326670026218720959053327930608823389085871746611343167773943938653811820591617860794207747913041675203904077827412462290670872767258526991896741219153383969989823071369610293553384342960810063650196151045704891487922218680756704812786637831380161428237531176574571590257569657648271028330635774724889027613064806406716510984457533936730538471248439247146485892207639508714805829797043978252500610727815343375427786845824282013717473132824433795290926946103459289595705277572563763282856370938516478556951880677876788973445526327832895850557689672420640102779299809260450787549707525211476684084095160252505625931093749725629060065964198945569645639911665605433507062817814922616849781070109404615001173798535582040556949431055711080030515115232841767807704705636902731121171361497839123439446898275626496964117379318033757273534657363135832492925697102347327912675048276176927003494007787483203940525237334953885092823741394883926194632694111503446765754667900506947376425616602401091646978888683485155391017278203318665546165046710744094790338358515272454592625958847805493663003377185388007313328507198760234964509953558121542576877430121706542005414177691080918897278041899629010687973146231337667199555446441590930171077549816171891170619164491030154710174566569808133513123256790591353121514107817289527643711382961345521019060648411674023399226111782682595181985352597896541667422807626389721647874404131882565790404233647278501441522013349703764614649519811692014779523852280244034043429146879932410557739799946935801790174936786167159313005138665282852995517704868092208176037540795871580328062099480036551494262393123710469801516729314017692531493961985707657280399317419192853219911195999767972578556119332043818193125465665082705414859332509151693558316100478012358034826690147928265988812112033101040721017536558482444821112833545391212882813144033674249874371587259851181444908020363461802814166752470205128779679107345625069359053868858523202207446977214288864896864918272114742531788433443502508946119222850189899472495882294692897167701185005023499666862461421450471761315025578656767255536871272664818280990681632960908842550639573350285560022762832553974115976072313598978243548666603278761514072863210223632405191941418399735027940445168511557011308498133360056967884311731703393723243193835891872881408082502767697852674466085070802591024987335478756527588851829564026454973189384385522341922137651181879295358412832916189421189561043733823746705253672275814665062334015947618493163827902758843238910318047173839987095893032044793822002019438861919918503078501571768402978421785003866455267024097266312750642613269134594132106998452442790804439073309623843103621494341672125278028360086332840939103370945061319427111108833996534521685627295633103621840986226704712657755594754543800676506748154651398713680550325244312767267741306385437961384782255102843884374951796563841516547405842098469783074467651622746006424704168597391471059622318498366482017361329376445923142588641855101394360362971045063663115804017666766480317287215729729014122867106930257677781477842792340575454766271274193760692386470768293598904859141993319563310928780366837890829086287942824656748511523110176666947954071868154790472735785798566144234789885329938199377930704947768737057687864033341518368478510291600843421908528577179015133293378993972036627050534662888349171845086154064016534214884605308281043356382619666062818096715004712252773061571658030357501710884932129347182281020896748376703480691343531746372397765951379137773711534977013641359048186023759391476094345546622804103244835569135883405277095406712108648831956335014493100937628011269089669780662554642840362551110601989715191810124156933738170551973128301927336713449087685266517891552614878851228333595829345842771708512389134385748780645212787546229256260529719749123365697226853658143376286214483832023941132438762068810462939750171665463037834125555897582439123557961055040810897525587102931087248869591625900320772066823068692799938781904974323366615814418487597021248733965527098775697264201427198737080585596879169468249138001695522755901532642589169988215151234879696428982904197178833914279468277540573094531015093160660442959928728310863816289439578087482820053027009471843054081090355692395320515943688369915542776883717116373693940493002322214256056973465055293060543651114838404003750678229110624706883088019747142404480724181423958771389249098156150738041030488402076856385667549594135968904624507773573171190294855656140557127735982128247676663665488023860324396940735647486942899656350337532143604531371564794340139756297875447071109469388693674247090440300094033854629229176307225372068689263025043511023011536693355973583364449266151929124054642368097706132884857197716853292748030349731605338808422488921180870046181905929155268826878735633689624369155376822863575878020852210154379088834968344803364587375678698295726280824539704670263764687078698884370500902763900287370613751144258541694070007946409713682256827099098617431968888508633947047600114685944791369854144098566693101318907189102418598781853461171979863059120798009491890489873245942273740995762295823085670730621952178956111899144598468260653814584396744794840054009613067630119254645932385489699266850269311177317885006881740049048094418775684561027661259036373259280075593770631248544939847236246624041814330143746441689240386496970045017317983276694806494599804772694348445149734269627015163549402073058312803401814233797866167333033226931736280182582202255429437938098012773392646524952574519854486493565458655878180295143244134424827846706192466288058307328002784898981660831503626906807243725171997897372013148104247453074185930334907882160097517267972892490211538748114658899963917627287819301145648059000771518889471120696603718844057491890960775837421303215333251091784188541347051244424020106307047592604772593182535314709908579544351425346749674348425822763438771942306626405259554269770582907373252227886336381632629158334090573847570864312467250874938729545769023851340147998614747947287137849515687931095794869229121480033420163916228835372645672407036076660236284645557050594157083957907546414229517233411372091790527931773286947392771190532829847085516000661445251089237753503076661170933557111017219139342431011300707201021847749988752725003128831489974189041041180786628327842007073921568143424513096161855746494627711616049898235605601228451722807011536384498274699123879547961608525415125870576318508664445436685672682255261239983216912339206183781299459883507120555044844780980008685875307832220012793547552398317813971218441438549392708741607812754293705871865297163453704425841327992776856120261817486589219930092610255014852503053081924548325628722448265292619176710439059076318271249108418506776612822015449255246288919313616203551560401208292049100797299516991282443021241428951621901087437649448165774581072560278678784194387846320448022231103869901613683487014269148370647407773184881460966052909332227179637958729056197620655621949823781234767037773603465467623658649180289199910125440427922099723114280006766773108964823748113518631508699949517074589870549138402555155250109633947091370656232244284381878172504839372438736817796533916242467107086040045932525378563211027031478622441530441379701697708289751402088430568076691732260582326373700784185362687393763587602587184993974606018188457888760053207745372605018750652165774248949588390731056668218256892426264764319767308580037494919568179243458980271794734352485844823870804175395996139390930569586548179405050985367264426040655125711285694446849667705995313410103133705573655874514955428735647364486017659520003623159760581946014337620148241202756682297989206339629727650699308667047861785584599310891131593419600903151641213603906962078061312624467531061435258926738023861899022611049595430019286930592790033865928789078838432330431960573928365250381966193163781425446947191942673732613867761628448153103454192538381616775050384657294204841039129809207054615523963703813570025998289507304874806509517325679440488740680518018050864416829851727620950076240358292935016845617647610895623724899553441908878267366838368983557721721254021682234466616830624455048383403111874634844159096454414095194521234376357639314252046340772242386660369498454736206564660038360114837481731657406438148925636713223999345676447440706064264710221150583823028111016008004567156820234402023662714541477665790023700795895663718271603313623460507455092234012743217794102036133151134315958995541211794844013321679652700585355663321346469074754796134879341007988423586998319075969232410481693384418900405600104235532224174285357856351564267726437489011548950799281704743775616949707262294496158650098981816782807930565683664807995705395838676403740639183654344129127187963234913348010136485707810444135199269563263211155319414725832956856357643174669517786344668555414172159141264508324606028135074948165400670851461525194469055068278191208348283841113978211390979657479736634722566918545422164142328100643507912885168534000994983915198207549794458614865076847526306515422216416671292027652518570453730498099523883193128198933121974327256975569963209691719721646879508642533277167545174892697892727286727251486105481554314235832408141597820556891147927276195525291303890737915896058819307287085542626880099834151118355132435894807405249603786900391619504266355357509292008364890306174456795183001713725515001482187943020669524373834374589223106748880948210958376675148131824316254014506414885584488323756067847341965363683897975610707262573795630560652326389866645304989692491966186807883777610239446240869357919268724189152247994166473378248969512344032600027625152022528979601329381136276425974531280413383890365665028465653404205501455614300309385643384938231284332002265411578215820781634078413620163335045476115063995856392716009755738604212428872927263359773866201127124398924525264890332232922835598025580703788196564248236570082660262793627682764714645278424000745316663463999206351885628578589316300634029506640600920272173527526286104566308237191468662680013214308342600060316466150205489498123362470133276134052782585086980716836192021227344802754569685948615446849559306781133072455296091941329122623227986533629949999377795219913687015118588927793944497863433943448301320653683731691957492366184007539624583916689187786688412586422127121120096351857681331153780075618637136200528775929493909260324273582384684099594222604134522188169459922428505225378199857831786533760954000014524504316675958213351724895197285274274612574029394839745691678858049978549175399030829850988922981370360851486687899945600670260460256400803940768881884161118740672116563946778072174874664046498157829023003032548228230134501004137253008486315150439750214396664265656646208910139101181284705776459140450170907344043029337617730566343988646233684153661377745907472352865157413093009139465989064611432955474956596367514409205564927384791682581246296287928578672352362691586282551773331642843492186978279180423219769466858494894718391896249295576704508205347749031386015051217492614449160096258663110123764037021158870848622902849783131409376692805638323953854922938579802999336625424437365995562588268225933020979530180784465596294794533320867998108873590366061380532231929862547717201718810348303122255150578732705619707412515959388861487182032462936906784574663106044289738237348410612463879746246389336184637391869965228635257323129969753032042060028921925445978751833275938744442567189226383304702410686326068895136789001903049000114958111146955042378902907297199775241312099677687759455389999973021044880159717748487374096936810009413638601536842306625533677237898034824174229909929355367893804548821066658040279045419581072882218966706466017603232271371073109123220243867181810214969366222786836679470867567097864247935211630220353664084650435759479185386330566008648545659966138988321077660828146694726026440528670522844641773919477587524944452642352923774092035351246590055718616108433631363625938726587895264104406087455833319065624969971387865550424836343644806885786789099358923988108262017284088006260013872650511582984689311473032510641160645796102774197392781598678179257084789229620329619572079406060157993304736704320386724449902338209762105824920285930999336634010848438004257030790086895424063505280213364456157131475819225921833796368507973254812302438461367044641660879067638908886040000724089847279556406442174184881680282980890522618436453041113268965677951489688247738463582070630837936763037698045161513400054005057918518517344447452551325861527614343530508132820357584579615810740017394666643912140234378619411525568403245660653018930813769481545030395607102453089028328213726906371012556017474296437729562286345885947650599930457641610677551807087701610077640809600485981329541765245020373389757675483881537706544543488472374572321583235944151101714704209369306325019711502598178476132807206819472574203310924092752659759987161587748394487475687507887726897802295082149434180663673260439035556486629932971164043582772421846046645958457775160264918799331789236056412191699345261339480759076068098089385077435310736152433021126432095620066783099653877714748272208625010080420613622824881366216595372783168119163519120073589765729041873775997617004152274689685972759690098032744675062749570786381708606764186659359993913740960836335310820035556007827329859141049971023838990195757643669641429516478383769175678427510078223601870331061543352426141063226797249809956650683803592451065065129362582446303396732114348321801678803716051695346984470168358242217130499137645153112401402288594777796085341028354296404162019930725701981860881000937807301154321218985790282637995796197261767732521680111669574703353213330400060630435936683998892058802927018456056222502533500837933820647581175588747448433017088244788559678353398836674621719342208155141598356188484466399249299073454426882243806766297028235956471146246989159312015281926554792946114213801731774834068057767704797678528064930717529881981075562823026432434713489515912655940106870338910757609011914208430321826863381997161189056346875039257619799686585211131282470580226858051014304856255803467795788288746540081213611321203975273072401833249278412632269078711201990292322859475520812464136363908547569036120903323314854433624604618640053412291305359589384940615108199357424515202659832489173665781043559555996486768732231621319901171426748368711150008270317050487326116495583725915698080722512219495705377223302994112681432927247381381577418985527631125019518317530713343685335717972834200326115618477068084777590632423180201398639581529353295269398285706059610668420891591541352384508202344877775005972551275497762629017170981196121639703124510697515071797502770363360107751797211568409707261811783602871667867720419309993962404094416837655762677351985370510416657842974761787170132835426154643137693934424654050209974382285152332744039653895478029461885204884684076090536273312813300114277639885721733726600103748252577083666217177134285281886900816707667842822463754655011110310708281663312066033032934064881242125482120775739527035651955942044048647079966016795094779448358179699824523257390219836575193232967008656581916913134385557625525523130147423822058219879076143544892067496515576835432404093918363873947341401847806398157405903630067795755253032258787344170538413770108386235630362929123626580864767376447334479308794810024840342193747949782879399684444677707247224164233645859955454026773224002909380203629038791171075352442744258268792584944188907207486575491877881046087163340499920422244094451254428029532877976688348043607262745823902239521300231833135008219921238313097584027872181941615620360479324786468730016065444744230632727684834482242126260086588549478145756886162926739596523205500162595398799661121793310830358516778312380039195238287815060522543738470308689579094839085433406402067956870933917984340932336333731141976797661410464920114916826405037833735864234304350716122241176430540645123830452455641035232555700511672682150930063056820944160481788663318935658287372039608747067214023223929538704512162776332438665223538453218158712922409817167642583812661204202614310575195368292422679932317409470283878122576213442659227641100592394728227494604226239104961162078799988954230679661148485459603974857206834984732388219963331496732137004237904154396327831306525192376970115123801864992003574272437866453164209438637921012311198887014166397939448437085153922241511758784648914896513550779506680540450815509926918916183863342522185233845364724833536604683700430627154099478787997012291868144055915760670884317645518028330780043014385548034147370951558463099054226808504141397719323863438559436901305899565355476970660389846438673462111089630593028581701119888224025523782817861267486848228842703286661782801635635283596951632685280785178809323648661700239575634059702863669743900636259428375083518528275684601945110341650479042107344979286414230167014500472937718751140828265533274953426233839645311756924739337505805821872642385974220107139812907844146443814278262117622900045589001096509346762363611889388633318287581342927536195838617383528181918579675039810237709675746676004931490288795629376261960388425001114846931464627714956988292963299978577048256061086728791757103331819194350712593858025926226620526457200147377861277461953293678769545026646032653884892431419098230031955732127540702445645260108558105853379354115357020686858880930202444489416473992682550528513892348441009483249658848286091388400881080401459136274873354816468909739536748227581646603040938611345219695564769352006735808486183244202608458258679909213116511099270711205491151280524983118999094121923859233473727372381218874123488564240865603746944006473218117412148984077469435990148935878197748782932966489216522043894122293675617712913919161916975129105058552013735231671184759222489799621755882245891784673775591461522800795496623180314894055719594035401859733582351395588222798083393295968301731786039356681042904024311568394269911151147025686088009261603079667536150197340162426169934746032354806568965085566559712591519065485546594471759425384758556777644478584957082400673153063960363218511826145446344126618457605210745727455436130898620819113082560907344353271903721656206504588018188299338037802734708068511557748287317066665236459756553480270026498422498509390367231193795967110969213391818674582138459811152478714469200749175047236171447644500982413741245341387128538045058298381672950407230443804176413731987636505803654853160134191504383900108785503203305963060432182224005550224565312806316307293838994555997675323230044039379203422784312510973686193975845352676217457464094187896525093912130114861448244036342112781824433814311050837388402986522867296475966335028657601707117211767793168495355597151093954813462088411773459072892941865219550457802687624336912518959711195562535310483644725222345153458920453597354650308163500002514741481339363444933585124581488210127497823830318167927151636833277404479271874200945194372035217713459645213308516063075875735099037496709993295190118910316162375787963247458747792580426500467832635322633173995943186139142934821643865843453155063692919707940262386732106737480822190011110481036523382893385554220272838151957821964220997790787758467587728583181994342786146902942807028945634241158413587668826977057089989048146349445949375621691931639061534143732485043187179458340423693173662378307849701236904543389039382386293290673979386685345826277915468696897791567894909712929197311512641942400666145518445796636565885627225924772523814432541972416178891878342706244845934518012634187245712299614249397732377405519419829729781332540150849587008140201039135805328204433283275057120040548621459874280500849962452938240290775331604596421906071596424142388342011806692879815190405224711287080169857418752695666688078939747561939925201901393535720894960587050995982399005316450916268920721538152755867067216762253319797011146534761777324478137403836423161915511314115611763421134535677555400142004708794802006173190389241098918330003902423953453645182817607319813638373782412357983781031491510751568887337379243464972244612556440750148986629786869620581410622087807531177504472436343975351410312004117813708708418321569390800168602966273965254326175724865052853517971551288514139124463820737562194883047954002262513776747226451581764045281327195387189488676680021170883560103360161170693849555893583800945663891938230892138376515307211411179099475648383167049806859979847988282519815556553690362722558202963497955329707782233713901100282390412588087697308611393455456367435124208601453641921441622922688660865828554164586279953956528494570552574127629355128916204863540323742813718727404832177131297928651924907062028144051715653281144179884488498228112046005006054642446065295211444516296424054922383819625602092851755025078659907973289572744945037674144341658998311269439685874318111752834263947187882159712315416874350798379846701130376560881257489602708313084172421345635218182840544004243987223756055195333032359495902849334377686456001108108455564424159685563155613806665627374773634772248996676257406409654231698347399501227211351256488811740471000003455707511028702546284669017315657617562743160690496595615625114372999587338548371925755936475971566865907962208029528446175316976411755835343855505576368511057306194624441231882110327012784336200696500214280801811092398146329118271723639638826533188973474451275957271652614207022555899317258015207575613596478938852065214566945157592481004812047634389203401434820875881662611824693053496346350828900323280764830760399428093630881436060751816021426605573155712285894918340188147211452848125821308467119862604636611757397432407256499134396469427102367928308686102723401633687044780790364021984868844954222871231794518084661403108351351398371256086852207409597699092053629178868762112648785350496328598521780639444455649703425842547061093584987659921975122009599203884810800059241226341539892572661050091289121430423201025742056883665476467623041776630107757597850500698788917567101333489170694656732733622813967990324082632524068197029121521033398988440758346636397955524801957342254377099180401156864535901127995026757765517924731927230120859670366065641002873247940358991850264449934044003188051287883973075464031374369211094392612363691556037146649335919922211940729360041410466468503977940494239282272712631406793004184288874931071289470071754642529685988473353017543665250152208158303164406205648042263206297414868358263497505292058833342423107972942445372277267836136376811148153184738739122502434487108828002926302085755930599486740960354755206572852672081115056565416135482546305242089661854757674740499587571027434490674877259041262824712337660566307613464149555277408708990281743524346633660559965980290704070118619337023533910460461537078487690322905177666309243886794355314431011142114301280312366735046464601947752806238711388708071919424035639276360702619460892006717421262864783109356720108972897344418436194886857247523049754432432309735616917500038261078730878437318822860737428256781667098185669609011860278655873032742547983786935420917759540243915835444541292296846197573732229390804966733645811675720443183835594286272859432588825124508632176963156944644892081213789940842593527679867894073192969885818254501252276095584794944810340454000234975574363138039930494682489585140076002690760416464611034452509429293451742847940874561513039615237379054139394334933094340369496088868717870462344340130656178824988584394757747945263395678132149006146791762153495566066094749246240278736186482437698242496729779358243996392694637939737095142753014929644473976256734183915794919414605065230577008812810480580780120238471782636102341116058372635551915447171379906653130519212325264195206951862329819474682881015192493374466003363510350466674881482497326222130937899528199548723797097716556059464704126840667421978121702224872899550443233231101623326224227449857499004684036878317868155976990416352205157077173360128294672454061213000598141187629011998749503976516091319583961016491676009069665449814361099866793631519734394728320050539891986301334821823255274606831314971670588469710372135267805014225631177975191558388865313352973968695113144294479034252578689955000647699521950143550451504292343416633724394726953523231289621590321834272018449350568403416203042692992246645887884944435325290189466499852978756821677030662716129415011368448890182162607804987456462758372424754378431107215278096727346366484053073541943768101061061463253191197860409309576194755077333753726043640470501493577746565013140461124303847998610542769358034401845203963071708393874721887667427564639204536585367138443903591361441294156073942536533422243159081528658978106792846481987150318783730769124348159525497252914853764775782338602486856470271810315266977711962780206890633191174696665071450875062240633366258762224714770596001339533334650433348512367703087254149268197228416189972849889238786602765862453280663247481127289344364709322136880491638094598129107169034722949158470768669330847287000350758790419133547842468574305793619202162280489119353645580497624172888338575438709353845689808388010679927284198500673993428680640141979603088820286682883508220838322108820642363608126329764521111613062237356743741251906765658608870376118805558187158028492672732582005964147123736516980802448534636480397663897482255420175679486928287698846701345992570534514460204095153763420464213083718939785040561579507693724405189564568689131306363510728052560779467605491765353264976141393624690591640655905856660730924034268717454039508555479346078186503756801570809924188788721206407239662652474028847146266974717532956426048393444062831604803894671549473340549236558295520186449586319676286632686011670690786441326254266987842938957824812723035944698061372363153793503743297759380552802567582063475750126407267572480170958133116444334264105391472842313663334220286542398168157713527007352972873371334734963543100645908866858996806190328045994252727029946656712569968424214766852093186283765255049708202443765888593760192773938972658754933266321343828395100322633699590328387545103848275197901147943580076245594807806602716107190858158495416041597132852803440191925892297886039549211676300205887839920129708840225333099138965692522623269882118593944754105074934079981250738178709373883039877258602083214534361155369915348363740161972781960808001273292570711667675594017580277195340540200677206378190728172596284519721929836581772030155775576681617142530530272286432339525346899535934347754687920669712654854206610736508840158152098932924384700916529289097602164975963222293179574964549022607212987037631590190427667864057475096457840330915556394280996692613803347512390329408391283131409621177111151856495965906931417469267683679890469897464341656524804421201198271177258051030747504022487380644588722935313501668232031484232954927337461640913192286392286667967490387518837641554127738843222962721570811526182968581260730578551203621173510509617443945651502908658976561382284269091780574028822543160201274608215576167135008748356431830501747654961811115743329122472490227256042862453628268054775781343722645173224284532682989837830018025252042570411936312407623030549897138326988625759013845306718147555058245351568061156235165731797112918674214541910436900864464193032697345510044100410869157614214584512068860811795861972232151609380452744687036445487205762048126150630572621880514384844588240060254662035367279759334714214728759542906545407154752789007506251467401234917469762398945144712261243490681019230659350466128112517288041037203522201301731523541020479778911431940987437816054352281591743000623578759204685289426327119924088644585771675261144598825699663181093698293339421761721364516254228505802555547347400124589960378414890686150810897986225661027971675674908854234344847339045710204673816576626066927257677984232953226639176325617525859529998760167698797942654097145289646434653478676998337909097208405268897264288151241214798948718710940779869073883003087122420263858459340733391011928685708590727074382594615401880816756516690480942932034259852067602243779504369479595123725864662059715308479225123764033972346015100655993530395084190335286322905859520229227265312460918795683088522957597707978349507698733974461484803660362387880612188199733318600569715968937591506332847794837987859834545995943749625193558661797385870658381429132597392843892100416874716531212884354213641363295135237561671427217469910597195272497753975903676789590655168136821151366296675530840921968336379364374186629625870955931025499611619840380879619009184880188756884645867916186660871273074670777542582480901992970001894890619288775967653374365428231944706970580173745183417523906416744626335056448000596058988611383308870462599224091749393359557971283813654802353546726212456685424835136117147010109095748288466430253139347914891150470840237991317193189084754811504699186158370628035864391771161209378026072379607666132513083367199081111326276045235347773464182405645464299347819506591857040890775621394711888885135412986498430754661836469840899112110203767693424839502831028491632454579083194918649457468390081747507030269117316232171117013642940213348654179092895011440659291876053864721268617269873665898784004937436465560997425918966010561403782776325590445294046081133210484702567197346414392691248993552410971482719730670338436913919006137644603979274889471020178160053376171333524264105290208975015705558619344093792908893656183257323149911123095150578372005547660555839392481810782936823917522899359597669411339524536567076428605682994223818770884929599778884432211451731809527663556949475274941006034061021325257621256499716606533982399656918863306188349120125657042789841732195343686379152987017322661279951192792752799369854935732451611179817452756149053066347544201892763754667387395923002673355574303683837040549693156905244568658077582616527464649736840229283532014259554849895343747260914883560306605212865187807209484022949989482195014869800013119555560362198896753028996959935453021072186221769558007620472588942120498265867940296781662011570727539151981652145424488210612029148860754644663861168911451993126994219820111667790044966941392432581213499912008055580661820330688310810282090255421106917300605526660028089986641577618623717317832080812482636806060832461890357329437658563529846340995572296577374929887987786024833659850518209577246603791695958149138789636105295627694571504435073650942153511195770386619030327434335762489354929686461765475562090372213704114768218277488972138789924413208278180299001612701379500894101113768364649683096221830151117337660721683109854699579537949863035225148177582611502691986946930163579544280683254403023851017438476494097110570721386432407540048516181324883584815862402653655197448031582400300560203467059763034216431331710336374502541718549387604534063433061270804633903636133104676824815019313741749330409536986700861162667999866781958394954482101464787833408407981997954699628297783598700179716044839663542024416618761958786628866081815916775633973114656349400685130242879556805485175531093355650421868476322151150660137154620034464418900734809697166767461473889796559647160744223342299335378097139831313817881171432228362213127019867542747565787710678527667956206811148697786857277564834120948806393205491655320944102015577194114631661049392653441483416813320711005610581323178114764491044628472690448694376595125683442335617076415653268798663522061862735403712261518352982105319625178732998881232761645300873576555361583815137594959256726433764466739016398037860592792719573065954522058834181432707187289353942992853531848409096454874030800798067818216841976078659026596944115453142689335343017517998313495921092107856582956267895162101487590395595901622293806126509744645661848010383519252513437952800425875745649631686838700305491913739608024402690852692853541560787361765858800252517694828515796198848290836982534599421821458746262115352461594675732904523848789593103775593791287157977344619411678657756101654481552880033805073990284660027770652555285203824100242654683283356296457792548658960422151185780049819757983678373844375058822725459391267929701320471981018548277234731696373109779717471913975356153184843583767386696180151078236799940658378025735679236646386114353783183797424709791634479524358190187728066052461446014769475695772328412811724405939412252406568052501857351119086573412321236510054349925800805992260712074851513375947613620087849585201493044685854652908813625425052297017952445603905711235127255816850824404215117728071561259745405622967111750754868192597307423691331786820384682736645308937949756042380438901827458153898420841953056732280938585170806765514659933366044131682803275892543907571079340075993896873875856970024454093133438514466092366681196769109948805970256816307231875948575989893113170062928344091859537147578232443507375940069879482250453661608648382523454439529987818599177500752451417937645719805693983551119706306598011272487621939512303842107792600700438165446023656192995450223227433512242743994174245043351660326832155529750682998287533003600606330595859965435773846434661964772043769809698200980866734676032801778393846314409989114109636746610866024410196079466247650768824956032543225517566511980416450031076718942809835071224808925812576517417982122492569459670874188892860739193614919442308585062411128248745435154799634771803907447085775059134357680044780057986869661449920064437305212535691703229474064688848408883279956657948396659392649756805697173126295270079843668990335434996975360380417472508183062867407123270504657094071848963850984067229943050558556656909109003490955613843697118378623061217531134062905887619101295762274143793086125931865510336296079740403778850280410163165533713359268114004154959361685837929340950736639124855015042187283812489948931983287803951509882109000266433448134681234243633865210620700095962391051923930332134258769044947061783872267028241086595078214295136634663306774355987168774110975461575138155580999571122705058324187857755935486140543392270409657123110682180402165270079453288025609449015231319528146239857304721068211694243445305866979644421993507028995976604710085617861681188654847028799778381939301213774843893626609786391618889072585563869166019150321487320060461768457648056664658900337384073303425864944446214877736082113256915343145678408080098863329867197955667669587823285196110148797684782373976172086032813612442028222490534734275707373563890238579842841539854991798370736478664874638641889086531866599282066515373541701762899710729036577197429829945652803420987268651754110737625319550291528258239436428756736979180774527180610216777277776317058115630171951964375893199371510469915207385784112445540340764499122090584116757807205071552557493554163000714563675825387343253958045296463567357859285136317284933037393129769443196910087540715649942580200450356839230214205114638788453073715140146143106067700478465260638063903656535085355728972368812628038671968152708434394561690406675175265715428492172001031449740296238786300511487413098378379762406377696420766832116195906851442084937173143848782956630985613518994034857615016495727766121385504560861690596581477862274241881508165817783020486845638038224255467258190984859133429013422217535519302729495388271517195711066980047289776395319871738862691461071600434255019488997628942212025895547340195966644216974242953384871119052491468578505244621148755489038037684332610441917759690372361249203913830213004597438330433077710016636944230548545266597631161613973909556497070581437553562519004590347863725874910421819346905847726425588599405646748950548964851922327564804654716337800420727877461942138385149450932066584957860015003488765683171277545969512013143198384797742407081463445201301257898557223771740311716783542521249451004105272267775735351856029097657983591193686472486689523695673822190207587818949580858793705301003985454941283257289023786271254399257041639160402183877834287344067014768856858734144958393907239641849568451339635551697414367157075205449761773225608587098859616866521083819158468523055247487022809197236517316807619974998222067567282863900863795662348958753599278598675143517775442106657402914676394172916547943861615011357014921509807633205378623269079618256245382937440293744666596246647152378869079340562525727149905154518041075926029914652737543862647420030614054098395375749734224446581871167069759759541059192192071206252935639321261767210019708460794709358132033335846419685927228311051725612567634417135514217270862433742186607894577923477753026060074810676143413616708853566833467950289845185386042651594473723248676193182129218950581854966260068353920143451251681840859770527631533950354540536207848302525646258716471841630644811263693243853401871735129450078420748458305286528670537363678788791461592116296157227458296205712687286241818574983619341878414422090367321757855307939611972961995859770281308237245908718990478052779978557684322007141716632729967460083417067254738161715503131593895280338290621337869396248866057310821608608344813977542675204579311374903041962396630565650669967649769989359329880162345795673244359526928542173568815101111736459026295350883830541693378239208429479063593514649390197677067657125991224537349692399291912365735002616462726320751223023476930508390668241542638479715045136655048768384513202761131529279888177500139616080751142203381012341774339179076281426221508979002802462545671090261731333858778366474136177869468649997744492931084703108147867342333419687534102152022359737788491200038575719446983794525830939823439328438888531668568691526543179090862385727464281355349079750084277069071677105308670013212105093688000411518360822038848554140017721447635119008089559098755447623165575517503739597073347212649572842035639966743499406992268537244735951084431710750860308767371717901747179967267471175368576572832847312770823409354770736058647531783969773180809598846629087086772646920576105406706047986988680458237772063948624349244730587850547450656245051068947607605841270606868615865793815201565935192105671839161345541622502569172718058579458714346091629751705861675458940714267220142753679759438674620116940681029425321959082877585538000883473995842867928907218548961602952731107348990708996717155393186689026689491684850718599020740325382915200616945114878494205122466888791248014150724939512462986259418976103225968628091696723064866827569366197461804894594281673521072566825469584776408612816519387208511719514732807903823834799120841605400563129829235414320669965640174585585727607122784734552649167408759482433863751161196390488553896177569335024943224055611494925871555421453606301077422625542117973630707970447495209462259814768910899993919151405372130850579761341600408361593608251952968051374523169584031195008815893378882887522175261951810557936599946171414699814335189947962424004014708669235849272162948084604138651164675032316989108588817519984720084767182255300853946414254882032331611793594989862723971328484802389734161838354840744684695387881717426265780747569991324463342526023359389719665772967807700553275632409911945989673639225933708672029774579873406740170874893640833704608689412606348886380222222474867723199154072046443965572335203322271568745676926704412960487954055423346668219295738386858760985591712778667022887121350067667839537509954502893248379266312846243755516539498212426239054316989113383004856371537186194163210994875645740091702609366365072988701401824286852457917973612558905726742078632018929518484924449159354266764797358425252759155807163758632772827149753645463631894605403262524730789656855468646344739269954816095989790758407373462652571615541857861709935932824413946933254678864634410334609148717489206994275851065058138137172224674258212546053707647970096432309281450206556121193756057127886158876562328215509754202698607667419607138449666959077164097557042140270570678080740936540313712971815363409606692994362289332472846205297205600018041424558296855081515925394527375236035522629266532535187730552496915890331907179011798998485470648920977750862629075670295457084074898717412617211217124201006207563540972886638208289839478638220713406180275096167230459856581644806298578723629916338008654574090978013142161674140325749946901276958064317126370721688242569886822480159551944697703809049091214661175305793643825976399669329757354773538904568486299433301881786244231831450069997328409262568379126066051672380438769136393300872163696608769675885876150812463446453576801400878511037272584704871581346191931725382687388224735105180098285938442609754806258223205301391612869894901440177038332683184353186903538627269724131155604906880180859851864027652288396855215959526094051568830520546574040268903407275071176792255211080938507201592339126957018856570159323385419841846259855921669234269046313724520074018895405000532160726378127298400466440097771133278189985975369092318895692535092640434373353840912631084615849201928016548270413840051055892830766098937364111160075139634877427404248664736147797594059586222403553787865549071895453334246964186460540507613520712127984871545794822573035592741562375307352478164705769195607706706886437659809370848956144476054860175284498492024250963673396312388013822571058823377333981953840776464607137445823348147368339329935909702497666946668238111172960804499369206886571694836132600071112175460556502413860892861559035912207524324986640131529033275331402844755516618057857437804493434977088712723151554744768345934634532259532424786384125147181767152732461848234290503091724517729737937183603336293837779521694559606199814265065897162004125013292094795311796622544632065290630065235628491245591931347625372532541021017844787891450393022617632108975702603240716597845057303465861917876212077178711387120834109690721120770384531031042277383869262499974889908976086099141466695751723732263629053558379161186563440048488631967959776565115815171653610980980738484598644519919492246191976843908826254630639850113319526946881554317047670025359781948848019282914058433455508253102854597661763910890475594018710724609739283008886173135780092173589555570391070265504512001560814198427356233863449485220847723773123912023393499726516611273720263276652614808627940288685517300838928961789908566221501899375025069436912639521436863747922301778271503505086673650794965291981298414741566059145343438326294888850510503367261132678274172492940522476687578644797472977596797260709776364687721477323638166307499294441259199825343585362976420188714092708679233094548948337016222736816967376550437787690284745482158067726855988858113267828580522865207880277867434304120599361467911065112381906495035268835927628398036505465923556065020794966118862776062796745458721303691259419966171274673728630914007473217593091114771870890810913107156005952085900849836185778828880320305455555023889670185747943140276844028440234550459482189756245132392106113996288216053316524091150876757058388111138475998484532815127575021237645834725932689669506626807682398968916107365801886630479779719718370879827904486698254689232481755583673812829959299209506773199688790481153025709320671521923797028126166181886649425022922211025534898134687564193969232470276359783803364931704139858372748146998385459289221782014647794020648967053942384402873045451757593677468717053914023342690195350518157066093265018325082217544214745172843687980599247975617365881360073460725988933305385557009747083954973969896504543014161092627007858967650066637881550980231435586611248723158769559381566924284130764579027478283420450696950713505636448261397824101206016668040305368318686466713152343094613980184022263173552640171146148248935659814904561831902965383238688370359436585609742413307967963325295452719171539831460146365002933080044440002286386203688769874929059287774120564507828394404542350050627669317989395529649416410418761917285012312258908252948839183097184659763704030354204929400085183663315387607962586760504059229202288776691024229055939643081939141450899804831369921867771602957281603598925559981006459533378919349945262543105878743333957752969168969650676727385653024159337324244552817592657772609413940269205446597430762890786968705998662364522144663819161116431606345974726061968234271598028295753469660697601877219277078254814581362633877363830522478814103117361033658161749258975516351349483782860805032800337555205860633206900768131622303465890714649598853762581564648995457223074229462136756112307231036897324443902799483396860377661768092141464655025220856367825630453706744829137900785781042067651367120920542404935853298669503368549349440411441213034599956308309702969564512515447295995746291672426840068090522524807806826093924784069533200415993116756652889948601881236014890691280207465568910009384204206543731080836012602847271679798404599907423473139717231460012811416689586060464804292455478372156439621184709766748999734136662303141460844275862661832998668076901491799548783766862761429907347973658891157866321909060236466142652956240227799758611349357273988430807535224935091695684280644931140757223463671739149806470354327016585572169903029697802034613803737656106938354834193071761618298669697923648549357028081647108938369837979035836637401222369728263941277119931571590534796576079140438120744806678194990507506460279836256421550774835448167731454701746394229433657672000371792596081196465857448878640379416257579465353430147741139335312980557123375821801512063009510321239818638272760780579432399839212058001287311327642796011210893087518898808928747380734072324723632906439548197863306655234979234610492428971023883785830735611989224907755717423929497351948124207713841408416761848251675420716052733171998608504380037704192174304648894612227679222912049255475545697118502564277591644969483561579460283439864338047303268252379181460640403753068175535182032987801284464079024905383264590601959065002862458818050948535200347311458585033320150745496053251076409078016825556387989226223689643142497074129833674969624557002918783077927900770415308359080581600432151760859459739086399402517466078760335084852194122959601072541637501869464655443491002523340018131541973383694029798834011846957167078462830156734659415211911989751564670475804297326268796788621733511349540278223807890364243280294513636371939258289976213895437138537788753498613754127017153391054372067503331917710982696707865463499195680905572518227337166747218067291816618592694633278203116191349964012259055841629975979027529698695953186753503687981119683958608819964728350754994226030030127541522667954715988032103723042859787862766449939800360610011946079969849201547704026486352207997542414248587566004353549088542121464224956860342056831008048256789550600548572169545978486219522075081818156676438098679036687716915786175374278721944949233658791127381996465460580745134108631788048551627755122171541281067989893969273148616581986296482961247865507800356818917000905810341819794772665277326699637028200220913688759315132404562709986585901169264629768052612572093864005380046401778324534908673117204709057335462441486056457810241473226026425953350292306370687094413245361065128593261825539188251724161888568642750675482884557087172201198292495414379949074277937201484813828315229369814078997451344762422649554364910880986961110823812123149584646857467476904730695605504995437417219942928813682915652856713757646027524694744702980756780880059177577818578446272295274522064786629423657154016859262765426770928092004203184679109356168303975441263028745586768739251033189477208487107800096751035979165018984462639385570459733698249911009919304786849665688574727772480231809699498113293519807726622790070436493275505899893173105806432482670144175384057895685607107015877069026014928458791716538452200213590991535768384263024263356771239584958838401853647040032980438829808996371288134156524642483787719199428006141257097572130244489338110482173397190301449428225956591049153402423258494197595187091809406345589835057148913362316095280769918362583239696129921049185314973874869767630266718777228747154078905756142198567781400478946588792195875873630822643916528424512491884554795124794634128937638926393246084356491263425966627857496242087428572091456977149990005904939209079109289159549704909122381283082215685820980163166087107748885806570717010013813817985851773895627756808791505521681057368442069843518027145390306783473856678588690217290358191186297547707331762487293445785263209945920771348824092114204596308251525390411072267192708854959894404099153211422883384223089034363596588711732105344045552375054435044512249983714286366342625501255338353435421726428787545934916050656209897307701152631558250767464801729575970739238246109467761954581354512509988533914552613912097918813087118525235991778273424652736043447925402881503168175030797005413035308028502792349443958493738295490842450118930850675902746774144522902495330715991992514614400583141038780049059193677375465381031843684240862706183524811697996465013334367425707159162248330240799484762094631188811305977504049955941778724273923799728154541093857548057470047683125201076029297537066208872828324884310198401350049465153042323897899481087792179198587949778246166132499927729580551167079652956469094989592899962147843237206074255467463844592609445983080739799814417010560804890205992567847761511104108721508485741916639262996221994398692281409577043799172396569790736989415520833111300848142225613767097687538744522352242583776513144686393539335792749209023393594480259310315829228327973432028884698593971720494313402475470460827322573237715511253673899972806413322803518052263168166267651165874024679962193763739076320162721450211286160482911519827044264682614391112184824838812896358876137814780796099221173642711383220418841228254798304312565853008509344137323544417071645153052149393286002117226255060663928139829846125004018689800531729282944387292350420749546123222382055915699975961075994671199122864412638071395010124653994313936299079778196487300849294659315278868826597300265061261053152705897936534064953932843403817671629731608966163724723005219014933922596242657640957675527233740707727597339570434129901844515588111538973826401035378231963486835189997959943323853182231074731967534459475887670424420518695024910507984940266381062013886484145545212781058208716663093763772016674529961683395867576881279413199427252857933290357544588587252209173854240515822503696000651072074528738679548724088510824926965995446048976444530692048591910950879858675201495935145707235579754136432514391283928359798990349274519297243793595799755485468838951465310674101566741790135652733112656437805888150900936215587397571618017128485551970355383040369383488760218033251741340174355646502409353745529353726034142673074985541348491994309006503244828378822933999260186927151337841576426310847595307780501152071475793736473980199349549735381224515380720680339359179006960741095950968312134079677815038881252813233550809558324755770808609281541617728463594890229737616069775046151649220419356380619023411532590893592207583862299491398291056096829697430540458122278672254457988256495601849679880725073805693181149183351291824991823195460992663686321207361314375088497367697272420514596379820110235130103963669402375323097497755378376346427539736117692630844066353506207874073082595260384229116046855343523537976324049085260185429381341906871524864440729272378180279501240048722629213496992101513403466761214539548914110680776097196197332064342337093064195250236114289597670778418358346374345464940328059921751511043811273998796994542700338963560137481439126523486827516612642838085580263175484975183578936939756582478859735013093376797123735103038380624928233952087382480968936462908705094744770467647572687197438346494306230954881242200708694712374802070376312862685510164413004333601929679306880593155327567880677661845066519179102354123900440968558552590471945523558989586662898956445196892759463641635618654397114014644710631519270355377576731534385303090124579895240630649230909317702217322478686562591563812078097577106845487385677758307857562005721080148283576466232596340713098472753939252086326323326808215102512319848832266240385494337670092334194769718060534139905827979072014731129613180786617668788863967437966997881555730459928489367732071832781588214503044100583374332452274013421406148976299217640720820825476741310320419051624229244426946129719992197611082516041869242142608758255738115233133636791109245416929412695013838767158587035360965273979629816228708715529891954488959563453212185118181428664537788875654487234925954945621391378611733046213749352131225655900748866573690263405070814749798142974490548795559363932712263206634622112662928281296316729057145562151845889200396368040127431841741231770908635005980170759638534630482500137089295519708804706237155170885083030008080263828716415172452871232165660654509208756404221201046040977415561028342686114946823359881504119997739703948614121081034191098372414816469484332877367210996416388756962641308471830591147746764040255261359160802388879021395929747773456584606719841603390229971941809735257257783361350307845044976178283781924292031539364041003614316633031174503671663318179148672555091574865246908549313048677043577441354571650236553057179264560066530635505244118188629431765933562707055771624197932819462012345723019127808788594627937550929028257494943765475101996359265333649335177842194382336910133260830551514168430475248132809657789311684612988087586588549348606723955247694195886103270203661519269629839792795328392716941971080760100588543920521686252186659993471741630207152479973996741064477450058991239173083231574185335265283160373688421829847595720207177911622287101272118175989628570503736419476799135654223383736749194523116600223666168166548591097648071473849447789741505565076502603370247765068182242048942039829330724629149314458101858488803156700937116179108798688658790062355431982316466978185202809228352410508438696253660272975011472689752364715855887281465832364542825560127292568918312215842515659444960571036016646885621145251528939172252660233159085843023218063319123944879896665287989427808749827525459623743473170068679214680357298812733806899748001908440489738182515809445254457573206495009410753302350027580718754730449675496369698986765629389682365686115110021115384342999639671472175682847434271636986620901064874057641113368898776926137086804548529905899993076134252282467125838167324621377757941808166160273951494857478725120209487838948714126018030856286434042812453183480542909996869908036774242460958941241370867534898419197760767583517024744564340203895759064767768558278569101561322063092095274909860922693961072490963765557007445197123696636324520838427754755250199323011805072128055941708773967913830705765751732379589982607343030446621039426882558760707594355035006199609774832759579936173091704549018377733147213834437297388064535969895918750135461748478679931086716275205538811760181038372024797692126947000631216294598769137669797240148281365908173662631566556645396591260439738525956551466228560460450590140724349367338104789851910058469039481812220472758787299727022383133013671857080006886730253015167998619851241271876616250793833454780879636155780065563034037916218531350385950209526339967398520644768340326162935390740227458691914297431466874314656283777246275397863529411376714392163828121239242950677482554146400744027035833851429516851748321786737134802317589166774946869519693886166027122719076605680417256526829808033565384112551394716468618560498421851441921746020904369711424028281357414729926430335038817976276168232059663485137031401860597481403811917842938471215161622574618863160998366479694485221247053139052341166050210144793944746807814377463880472854394089512359039656521883090849331182597163049284880628657948881535056148599165900488077830017798524536515375499717343862907563592703725652414282446117308455192071868147889953054698215811039986821489138853439931038819308545211646064224770148701855901261508726381230701405003098456461449297967128478153408296559791466495026476391532219287962107402310480628945997089979476944462839949264672868794321684281782324390826852978907887983066859446278751431760797982067987206990256234882639274309522454537396441336977969579300483783963818367247309212703543082782951877860842483481488728734810501712259239824249840677576361333259293919372536849007858421777783467568755062483789167890439506984643872373240657599860022678248286911380069796189070162480125415526660347756091287739136146439178208290958433868328586934749310328684173926263471423345352024285953869050149060377666057709317952002670009315376528327002255561127641003744799430309125221996909974254639653744405420386562209271309172059810186207036384644255059820464496054085067139223438985690259364827802441840314716008928499092219428355283018541347613032168747224957964794807076120773171435651252734037080609601745442991837605565753295812500290904828642365257841217830308861992199847431488108256493807684368701813419484844671443180196020003684038386438645761837914833686433657431802622288018701030500438060982036280606058157058037159626714409267071537936981062090358485142942555326435983910465066115284782420078185261805271196479874703159497465908737651226746621548870126554447000551904449628764432165566697325113019055855876016462480252161468528128456991467690238742821640183225320521349974724750621064473959298850191630308707489766492199323473358147894195919617510778464262367138007060487118067670828536742213266890818958447900266614134883408740211370987514583678782095729549669063268049061492468078376904504910974826482333773488838063854304863201521022424759903949463772349993003564908755567768835721337444000104591277406354788442594519012452896847713322636066926594818838454820773870779139014403856467790609588564473160214859184138201033441649883122040830553951315739366839785579725766246809036729187707991009969062025660483190933136893852685221542845632943225400629670631438789137267818753552261209634661942795092583888687867024573999416498971628781000697603298769666310515664572084414949377059116457960008198233676603943129449998845354717095996366381292950498567644684317926078279148219140768257249022960432319027580729378850120037158235829977528986913950471134990731864569025972860988000920216233419021539411563515068832286465804512291787426845698254910051248096360842556095381482193277606234676346760892444984236430458806632445392348210508988070820269420049309110343713642148692972815758762546228722148174819121400929520988047116195142964461126006791469800677360656672128576944052300700630746271364508028210101532502107678251360724408531754490050132969029764458526289010883681896547978667528345915097746427499676412840465316721885668339348747892737752820074713704632505692366923348491584308457574660849975504547906682238136688930665292845368185570297141633174733710468145237317857367114596621023302535415930257931219225582865695496610048997267791471861566306651829285617229243721835430761211522027325901736056452310593438602728213690030437467937170327265036196549920177848472190586535851244632271572477586780654021276332206169040446175349097287918800776345659774563549649425483185603705900275119398094708930659121345235133876183143105462525706926224315995130050513237588770266308847638487399027185803063625324029008121744566549496644160564783210638362642482497292571537835104842900620487765442699031028895933393833426983932858945159979294065194864125015191605131691510762515453717582539614225370447405534291342553854143069506769529936796634373599210285474859533669318492665210156815784418861132600590424610408074435910786773350169304026270926980287381104589648317468191044732192648158614436328524350038353800245649686462991169594190606244752857905799319986643011271525583392642917545746589473055437894298580576524692100672248102394737334248496735477011389966300404090552702685336764100354556523776702884274671495120357514567818844551103177741088396155546489946895603925289916008011210120044548850169514630370730983469834742548962051450153314076733459915439333363918224413418135459242882941846460637854383825886189848640787586602348946867124671597914274345574630251035537769022388470718809908920022458453869709569944597620486579448723620259059689171905346288432654593176793750582911528779437244828533071156655257050897158866515898325184749942660851972844487346646705618517896047809274103949953560504832682730146017736159473150025943991651090456956880349235813928926297518556617225772634426933189266497099238729343108914401307101749876770191094465669371363607581948360926448308242488300528685385204474961371034585669266072047092952012208328889368660019314214860162619835039407922331065918666435199193093019981370074097207380675307463695788367667338271137245055463874978999666682518589857451430115503111968703436177262223821830487350608217518551197069913154754308317748758538683859771669330622674120099072637066562548259462096469467845502316612050266490215388431760779382198822018869233139504500973208790712234648769452926991690662671189525953192938794962437509498568301859722430383830819555478417702993353813339917410215881485870939632597613873746736906783141161852652344958876183006272303498488827971038288441078272704451351063312174843171523993224192405144500206305516637331445096208867385115182294395008770165355967461136017304434904056211221074438663419328958137540426916799204129510550349365228937985322193179271641251376992043876579216295024465144054557594676495673479708718252042882480971855630604522865643837701860568312076888500091723138874082853287429264316457960613386383087842584299693032537366458863566490133713982421525006612020339452348680640294892749445636695019050827829741305169224451326604892542625946529097253640825547897566235546565948065097158902210743818608187802801950323769958250382939395356887299546351286065431032718445288583037726375323815088208418306934507027204354527576313712850092104138170916482429260462055993712209357949624812264412435557391807361908972615842432629726301685186019886917481913041601879512646092133548610973148163655816427438817194411387689856330691367416849276654967104656468934388573769885854031590752138590694941131578056340462163869818495510283444511689161045542427220201744229024953252891462536644523397687824992683589392474915136461281982060606837988613646781085480488938683743362596383626401466502127443424855783591304235014486737292093309278132334511040578693328661006740582209618345009692689725696724547531565441921538510066091803691655420110689722236348405458377327390910388842488864022554952847877953899784525748429590900226320459231152153705966219799259054353965740932258781965951725883700748429990128271583024882582937729210491121272034288996328470677177214627038502338981449828643349390568638979224458890094629063599468870828683580432100814549809571303380350666988840500869292804787214093334268230038925928952331493189053361298036150336505410186068597692298139379401571668832716958202407306650903834927068438213553751093355290639754440439908569373035023442413638095196650818839759367549330401118202096104205655364522273273389320600543830264084457903230317259867700604924131546367961465157795836167643673701734780694840076513228016469291591593485964959197731283790045046978646724298930976574590027384996657653943345270813935308799302195568100562833131795842582684514494884758175087478610703213288272479838161210095557507774789986868421133506626556846196118914442136716189639824600235189285526391630976438664078305086616647663567750905623029295632203009230237880469127599163695719350363916330455527633779904593885404839513784052594875913806008870862531868843185023652780933144210134643666351534247626472718475926537074360826725792976494138102313692456626151610469082747804612727140697767246030196536383488627333341572009780335315275108618974398946346443321952156474320620023763928005571281908941999050734214475694897505628014495381141510174124413497777277641436675102876674653187100973592815973991745055523511293879233436898471692127981795201523430803946993147681740700108619300423319890162085216351213831890361605800828724373067477757281668510208198538203988172034112391515143925836951364476784437630682640094245517126656458672859783680059133147491663557480082679276932132076047770147301625786514225822012054946811201964047330296975507051557172312432857009743574312304228258423694013356757967990693174761142356308026097276991493354048244464949972193749530169594883010731083455625387682486229674138143012548762131411033486112988559535795810645668552014236815805588172074092496168286533801194789352805985632108925567517138229727742813252817051518374867672265001792954792727161310311953764023361507239555199563069565374836853570149479845784325213857726540663673980198169179334185959579973177376786081481111711289243128626030524217506868534947228102277339097737292125385073763590161779143899292187983670042704284549332402587596030505605188420687776658653817718209483168869939242390261790798753001871065131274891179773217267990359017960214605462269074468217455712500343729598221385238396124496485321029623898359552949351548134019277421975441768347676613703986000894085986380620775173474097641304192262442155724420492736806010826274093513457607759591013462817948217637532127853229925144103203792276978711950119679653363795181887333929040150525777416047440330863543358864254703232299609772349427087556925743160178985582251671918130289328945560286456528590991054055623681625271108601716346356304293913909491140290289747080103670325360432536640253512694201853559629549528988303333284688137222593914012548555900503931663828182885044652761482145832936760087200744669721820883244330022082215301924924759920067866173001460821168575941104022240134999310846082031893388736133135505801725700143211983537026090486619147694626769466852251056118416502290497002097435776838265858907158422160194436556728350947999414032906583827298963923355420956753571659878689545173050091031493631948104265534634777667731140311431732318624060129344875221250975400064486988732778884665774261531272533702212087209920238743593720955466698696351888055205110886015257991750984848748113383502889816175818999680027605742999090896253257059360124436073233317353450471587510747041081134416194233402778777570040690203522989454028191943558862299382658853193370071868904543325529063502509140571737250093747688600488015175955246254351521215539220430254768828951544766953584595130337316945212328936241984878835700150670269795275508977742443298257190057908975622562931255643045685439971771507744733861152571104140189087720943527334818893995962330412520821890040490958652357693232982666568570444198476754299634498220135168181761876474919839673141018972669912707730647193022710617955285220120754053736084298614435150452034574885240929483252026137683425423185579919717448521771192250588013685475795081210492923890372978648279375413571880185239082661222629165520124704158917911297495716408348998165631211334319859383202748773890850711340078358941765305026958521470812222342043164370141216010545061421780651531188403426460870798631605679907338926806741656783371862467235330283482874323295301478854101506345841272172594495410017300251807629897908786921018025140965536637787790899649407546349313991181605042623827811844564318082327749508686425181098032348829383020389146193127361501840135200101130802815956885304933205049397398072983876216132014013465900961287620032480779643632314626020427274708960755281513791725696012783740678015211509182610483389840365343082324602678117111847829098081508258134519240965997130687181090729481609952943719209241335676249599087865480246365781956736997974937590646371808864527837553670034580360092779635717402631445612307860034010521849469770623346819119436073961216212437121571455350162134238024939307860374818724478635594052079403618166238858794215450031427690849918555328629239010115897171379506537926886878747960278223860838540098846424054314115913117905861338601793468412256288298833210724658696193425272490647462462375588923143435868026142903652660805681236598232278900287636953055972124590924961127704407018995698292101848402271549607129992124275813510793725822792603596722035907827092472081992964746327561358322631032140392251746503294127428077029067501679233395147085755230746443668212063984189874720874812637730408440667064318708742189851771027996497889266593145131593770436598992852992449734452509957603986919675218533126115092794291064501697705502114238823927611468649983564943842225655364604310653583042418207699343720996417108918046700379472562960451105043516395873010752661967684695937405388916325420138348251569474581214311043210583334490037303064341077654647034896711113013874705461480318805513344851164274475423603964880851009417705233032617505845307829449349095030449543794815634868045071206879322928404070034124544475468968434879077462979254352640106560321361047935465041607826427728938990043658546918654596131182033203826044463297748218431353150955601521176694567943040844508552935969511569740962578817614491383574531497964541584684607241720568970613013757189051617426930533623625641186949738919055343230550958542302973175616030809325896697268920872918480808974426140766050820136586045035587696254241405684128559523797387492961029021140091890771526961747338053053116151603876675090982823074463050259471024372510570497417343108447801098291911839884033965213050726673437759711518985215538829294469694047741706079035253477594394091293594402180484656666228491624929105398022039244303462362330159822681736421378354167359341442010516388737592103655505600813220781302710535273266018205653615313297921527108467500126523056465630674120052997800751641635283800599172957289020916596263434598009403282618164572774922162595580693713604443728774612803067787632638489091720289955049138899875229320343611323240386594052468293544068049189228881909523472408811799724978551562184456136537258146841437739600832927491201635146344866171004101675010906274398081202449144617883064184912768251508414935285496880773307535702213849133583123740490140328300616720718439654069259299819641326669188039387077889577260501483761862864894915485499923344134134568794224031707016444067348486005850454141382401360950173259125884572551946177204274560685590598413185774886513278009400477429350777269528537036584912890515444621898580230786437919044261698669925987046838207140668935327729924033236778933500868310093079083469093333307619923057889925057876271993421814030440148888016299071875594412557753424504529568150580542290990501262051957499406428020932394697251551251496150820801333872195408825735725387562182662285932003240513190306413182690749870990032701860213968894973930272984344240777021433666843248650061075448209836996121071184391044840464321784699951631045006617666856805067297621400245406804808204630454831860482706120753762161391087684905439441634661906972007002776695711637086573469851486664734785403983176126807723875383756809931760955550431140880172918260795454443213429076933944987909190989276092866716543717733238209008843489053360367641964850923666214718463459294715462124514120952651191741531268642275728105212034886333489152890099798263914161478316908963111918791780050088272798559197668053761924048141337322652550435360378491440321916990702849231920856951912008582924908214132448560993031845816213553174417228977961342310286307799992798151388899182911879536277803289673121878058852067176935106235542231314078208043837223198661446056905724404849846969982599739695961582868187367903000478575611769431992921125095048887117473985425225280931109092702410339020728275088751959211301758544844219005963586501372701046846451605695864531288203961774765745986999359426263386743060396580276291423914016241127149845170923192667236881257352931913420124149167156779278560487528837157431181604288890497237092806477718604575991945165708078768319108208306516510035438561809087437033145266841069177245251047087472739373081073690547281196183606268782851188936442480834012828046446597110802101263933652716332721457206362093009837549489900458031785805325121646639759994404847724531364698570549945768476272446388087147119211247925515853400480536961257790979640999635385171507951722192682939834199351841555277669407764199594046118907390439066709786056462089050078410180243320810601995239861389205794076818541839003763832045973306099950231270193969907546830367680864113781779093995711705526774641228917966424063741887052139564704583810488114911604308173519867642521654686059709215683699212587400368954331704681917873585739046591707660853692658360713952803143615651574674439435455259479730335229813890066457720093749050563308962117661625115140569281428720249463502264579537241195180428846457315286471171154075179497351626900788035779617210563367120501011751738834506055543498971210940969145673468091095589934318604485864760699635707684915103553740112284442562994727244833629434573280916996378897062374332728564107603683657724518341536267836840627541329141052546959259216916097328870342085265981088964084433178779120716288750202236422863326444232787110488414735445523171711029680485539824574476389488739235413411579277950722307052387172450250438546760029059468226210781668996742766082301220362689083423123757578380950602705289233250940235018413058200614485253306726909695916798956018636603224334443502830876586954938494047698340308182902039413817868975948732789577994685701951959736190886959031881381206461204418619450423107806985065103745097607583692071485846328680898716102629037519493647480853654594698436430200649346804549389524307369310532463972389128583481657998270605511195957819060213708268592120664536828960108712166249396927514715045441321519887020580218271097625738432620352910078873442120568988395265632430496365415137156366625937972133936347144472056017821739264830996859336285750621361846173182579243921801042153383992032967335008655488918944034861338565868125536899069014348277880401238248308326053623956632568790515370599912121830038269863788061480981984766085415638153538957637108555169554750862235977906400101742838377198093108337506504613910301144945798334011110825047552817800472709384337502341098899723687943374438733132914232144692198420028818632144479021608661602013606033150578607972473303670325187555573001077899227136815806382835928812284631141789337963697367296057989306192037901361291790440841517804917903494305578185055137036247201494074912589604021834943899327393177505942151451229424966044066422938786574287344997351646501555291281560354092885052869396262116134826073255953732936637178615425977314248710078393517343199057160749580244774910390032535474646738266465335854143752727688901381518895008514620180752845575998357584029894854543039736901957184324155833816055112525335123858604833689209297363844233787315326646538266929848380939619892337354835582802785664594679471051256872167750106429040267291360745947970981612545579791590475551978216169061130533131091944935220847742465419507529591482388671661412184177227510661671934011531759646580220548359609845230718723042065668323047436443567871288869829068988007135684019028497291986275757054176118116050203318278785460528228058618756981719173266909060486138700065929530721325489880279851332128114654597643995739388456150121297838000467872295049671106887408232526683414484059542214668652134297827907485888634140996163106236294525699792876513545148489348476737873275446787210326389314884511538948608114843903479315900344125205446954538262130019623090920721233476944474532091801134201233231999270392186247472672512658761560459791754601355440725110307976840022066476156947650730986188954094308719889977126130639627700463421261709440408823594997827841728468274155060806977886084249331363132660480407413969773311067619606027643628601903820413096253603829466598824507600857983675833081228357254401826357744160902660231165070375993911123323719499963329120731364351654242950215839334775053788310515750511919609602244604467737688392902085667880707291282433243300180763251928867731737604155183386554414383857163678595861721228728244754843208515232109896241121369896412393051245138882080814949287364229588988718262122201196693864638233080459675976322435793435920471227357741046872381607051497104458991137658888697633677894550432637191118131724153138802393235590308330541649018740951691803321653712110409388725432411925697809615112808989906912140262343637818846357232580165340019247060379174763504694513583423079679210715329135008465193603839905806862618666695137150347253688723813473607163316852497052885474956639320793804971678100742273950134992147078195712734918483155270059418138285233420537624031964804881084087694328691749025908912760375609116218062980053110758489159193632742536060388567178857139843012788920557084050092306315433993179048493244866340832941922447661714216804988901340181590909079012182540282990289102199201541036056180711894373578140842895225819926091859858127821908510993676491834046238534102528020310408461051674615293609834767238621374411994628058203506645748829007183507638406494808801149754586308311910665546455752331464725313742140865510517295684535471783446502251424178806178752524531252788504738610496877903393325111519302075373393722854949820666205224934310847646426969491829475566574120068844226595106559843358063586867641274655624018537038588674370045916895769213591493075724871510110880316193223589141487863716595934725661556159072373292675904182612718719277832572418353845342347906967636331407000055093936723207072274565010723049359067227167160639813970030402688694352142543271305228462262720339192744638906316568325228121643575940622537857491733869706720127315035737423014909939756365267375429745368414207566232141502606057585118487700301225260427467451446671068181333295066787934806906377516391326873703498993402276176902505187091444639399466699982233121237037912400253210493530837094334213685665709595854403213265500142722026086589868394694651636971376049066980899412456786124020356829503378678693909991691015086750760922846806015711084053257355730312892060600970972647306155714427335333309805862182281567213212304701598104297639857857997163728993583554317293250285662023732691945192092945196521992330134145844028656524340680725794755536871371894364887226939145060331585530303465294349941234295726383102447625422563900911752581678225536185564195081203613423884118018035234489625883143080713279905025987235540620321945310081909179799038584789233312448314279113321047376031201085213979402847953503869468677944983307846928895727077177867545949660222127114206543012333351616958400198484673878104374765169763417544142867146207227205212359411978394442173491211593494253886924164132339270503152974672428578002966713352878432066709717804047449928562729869270712196823960113983047973525966123198229071418763231026045887592220257198080878228481538732575271759587029691995686374438265685113849610051989238545528846477556547542648286394994731858603968154761545649439872671734085229391864144614617728167663262531627760077117071573636628970478966750988518774046422645984848594826598230890238922815770096470655193783374938600062165487706294484390922703456950573004488687605904128477511461906053495310487221830969962498626483765292993081852073348127224674273503390820340205315528013017483052764395430102075027086086225742680204675521835056926768013078831894171125678733003621506426344002919682247103331346633445371914420797287925145881742262049548213928816479281060309322242649812251664498598941262195756661324359300431875906899090122812193328619664171581620727736102180087053731082619554013724109001328141462079171804631586028364369107005186674968861344610357261212470047213508805892523875490625595141590964221663573765238095481496014846334701768171462595659785085973309653009973711151338428116683510841676089830647594201206930175081612851556458116363505203942476730287278664548372290041265504455120008886194339759566037969829351328004534935421385308812558968104235914509944955881806648826613034758520574864654317761213002946277461777751355317462784072921180210524708061561543855416525459361788548377862636997573602553816558901991078772740739110823546044112376528569598316580212087997946237752142839823452343526923858172389603649014023678183455194630823736409579449165661777762426499997728374574515538674674919865140682258119565157441738373128703266908850879154958619945547500746173607297063361697686710469623018964552844335417347535236793355577933325385611708216121759504254087703579989901292782384469090857658158336216741941691816420092185599608079738047265423423895448980448354296790130081791922076627048651450692251252436894787433144857161941260443626254708572183548622593981669552541515654279171301776321064465350606102916753627055162440780114026299263841134745443776169392614048860231817774675005272047198030865682178045415381776537191124865722985659836663005382337419527518591840735055757791692673555837865073513502249370412795288712018311685793716218656656548990667903599070148004430938645556288620905614691663159963693188266912453977972973876982184919614881699353687784818310284889066875331741045289833517446840346621129464864361123629486181776017851563327410039893064054214675816143975752343947544086840958423304349440733159973190360371404004208809217823416585230361225484942838248763109451071271506279531422149872648530789271505609170799984127607704783981284377399202758789956011492962736830168302313374539898246530286412943976578147301149530439815193004411407791763240937981203823859684175372354195561320193693317884241785153716261466488892199177409082755346354160718856097936090644631965061904335137210048981607921364259261864490065324613516699822558120214048030648085149285657935535689635487126195523417741980085254937195256013321798154834667685167690000980588172460219522389200008063271433952950538962827598639974187224764022186140800822916446189037668310890938567751230291169739280052164298083384298397453848593034665306051062533144618165803238250903847776822665159262107284951890847567227229816551971788125801914226514650205486054827256039298416501144928340920107255489239639816978602261710212819043007710132203687092187672401946638496833063828581423991226709436526413920926899565177743963767222459041483540354625244306999257717299591222595235893939967203976761548595727263652861354610065998114983928511680076831449211918361652317104930159852629664647022916995622684648223499381634288487980956240814970430236060153674134249916498982907397674078021328785367887314370772839315342572761893152595097665292992993615474946205910593872262674374009780035958198704667896386613635591944186330220357013139631891893581962904412963457911318871818245720219350858355577611967648440722752782381575094477475434797147737887240125179667653522367764543649108824809947572185122553363736934977112373178981917165654427287404583788005974504720568930412147675848162103020749247746705035079670646471823248171721981875077267628635546735734290019264228653087855432306329801373244437027047354205038793519151701944356835974948578917480639058537798534598723382370742808442905060767196995354011236619427934372229809528408311061182619558585130171090747227186885564923321129655835314180293561635063198655354332884448161134717846407043857445497579366986309571660978587981563008684374533021401353593274767277365811345547066092839474251148746676372754723659436732022869960812290847141352663255920046832548823773286473119836916293552793943080094032470909167708600671553242499497233876477826861268246072382092663217745306410396058916089733633341320886943783770613579652739297235521145060326157430794957449906219676501072738472421152458497138937640161067638479908606783069091671922167688809466760660471386275612823308182101398062285506557057496538255434095907722112157550665020485167858651106131347618789277065457529638160199001827302545181151767867021026853285019509633775021249384645285572872302595385858368214057799752144619862923730818059566952793733549461278868415715131091404113850725011422464340895998485442939559229601869591717657549537122092058541440647383510380291582653085355013670012454608217525781820219914319034892998841978604731165010508679796132208110913983257696100848905135561623267898629868583229101752107120809007933446871172068071148124612741750592359528849311252739422701304949914667542161067015787556010663488251915557924967560458074505006274835868584668204944767507246259575199834074636850460742375491112378148255927132880026746920837454055781861817052063950360909945168539654471105255904454142930890349087372702272064243843536068371122380334909191796143711134250393419841165073633977509199176405535250717484473022176868212973311879912656530133802812189550935940748965795970752480557800497250532136509398386091183431799929142821708231325767786305101559820587916531373056743178235399557390462868560504663149525291353573435680384139269453521613436260812546944360498049244868204148037908673710817537392973352135959269114936774809858332789563642866244202942399980126361466170440155290661923094068691596318674515574193116921347487344639749953326515362367507411479215662744545195323533507616380668702004810149233642757894772995421661791274722714747582830965822644531755783164612653044816491937068227746151996513543638650858521204026669862058545731035521135334149000046793730305404622549395750452328509427337792629176952003331324946217338445469605687124596557239235384227658078824953141561927295351078608265813403150327850007517118253127986706154409625029228139461355389372129787199140340062175266258982923798657696663394663259839261051360364098655583341871526257698471662869514990173089970623052674326246888816496154635842717943351099560473599469337948468833308289081495302665106693698646225123792860558814898128731694117793265727368159635297910716421794048094718227496327433277181482782867352582592318760565514944984921839838946245580039491589697665009914846264949937886261157584835123211455387489961424423927207802512836577067528311710438362382744545870165037611165576351736434927190825653314467979632950079240209936632517517507353262470723723497086873831140592996609501912568229401733207514783746610158143291415909219252870998293003072184853068372284082743824227959671671403090266596946410642942305151145252921635818949612045831079866608400383591294184567299509102214964601070155207292605498334181158733469127858618912377749441147576205789158507023956333371940089379205122605014041309079251024071366267179003889746707522697451617028613978291567712980270807280867924493758508966080525949631087059235832848305566281410397838390379503502112183919673304413625320384071910983182159778018884784117815673591694899996645927379232809042705350466526910829759865231130674945953550755634268940034246421615743519497919520255461663713486462133466795409272985095922901993024881204803473527340693423577997193527248618840578809740515984962543040295351556298952375527664728355834336130324074046393981913712265480065822120840636320147288935467560292629614911856036255150738896327960492241763701774721277922106967167272334139618085550676836977817095858816129539445370781687173859650407194076338229902294094506207177237187556041953205181329384033841524702569574198536526931733520129672958101828056876262797805916802276845616501770352384397644336278749634816346863566780227944957705597583233738187721834199277314924519198988925205831270634298839371737091487602832721675294889374273334534827081383256794753801776568993692918016195041760561368240262841636509817487197822912782576914829012122825895082606895337102147280134197204347462297604427366952603651216061537667168522716654692183469500104321945730245839254641079864220629052125246371457126493084254723748792942367126604582850926626923726778176460770426531331182033186260776331122584249987079393524684149169893194672002604891835469021839851838365194957573745866048542598075736451469301298096913152031672981179394457002605095857318375345807295164248790397406296184489880663445650692886434592320208012161695371589121907472788641709930022571741510319294901318455349057862429964648647615992976998039724892255586608839697651630078577069709829828771195234913692550604543796370822873959540354884990582080630350647344573420372227079501344084656043725359463366964499675359202860235789971273012783420169766479064838634477066817648033542267157683811574710068861148189736024973983421519488815581927331465268882004953407952975426083551540876871554039154005062418065112932454357504655337941897729182506716599739042096558307078223492699161707008007484322712012413881017537073666154121210522857729928451247657775787492467557324846603332976946115691115647057687016587025548184620432880202880152212509575608707524022772734061659556375901973328721745194847337233771346373605602623399050423703062889863482513925512567848876522669063258614116886014871904522098424926042794855363922953794856163541914659211650654696318501597728544933205761492961389611243712188218357419534860900677064706950459170855051458541679545256566981300394894766834752789234078896599983538376985341554117444569248485488945114851587053483536468121837559817005002200297790812146688962275521651403536549979303862296908920559254662053597673996507030404470256859099505656486671884162179678250576091150222785028711499759280658369306986228998165422899774032564099342096272302980608218507953161772403039063991569144725588220660157274598271507490941327536014356038858114137871303806509558627446226841667701470797041828524492751982969497257043098753497414336733777722777669475256234051560057378091675201470303938539220862231630685880845888798190918333579582521378186180258785390002759173908531629356072398094209260928596418795836192541976365946116767638397535986184873371773926214822140108728068534972620442459265584976412597950634099378732874263459866059946218488196602828388327963581522420768753987446680046860814540247594510287768828712695486166012761199626838260068259182327642413049038946680007395416405103546065322340533847075972600988906920498290831567922919667041885960106671549034369608011481122669192716292162176001766376448444378172312936096362038371487461456015595308853830906389756338980699260874617415379318943484986950655580524378911294177880102141230452808966446287381689681237235824196961932916495332213855299101187300394204916618493454468894507650677388872779566453941811392321996624240711517542858747853731510767314724078524050800474361935463644051372069396584528043583163153387027317453663005106013563480027280796970277185738993638375734195268337331193635323086144060236874189785229049846492814894511022520257611566383039246093659631186202251480592473103378804679937044823045689469663077840688603272534705792411987459203367637177886544396954412836409622576134261838473867592955469537654843771173455075337215983319818991917592271937621482958960881355132431082829597011738025058971805593202382979123379659243098598957029459792859658528660189832645694397725664982135879472880275120748948747950518036046637991857101514706856246511087919834879530685624107939765963123376208275278390438056906900676185820618343297653446447286733203147489163109245209687865177217399338600677578496764239630653946558209203759785155910347985037441728826118729622872588215506738683750640419601023302017186068081048837633284372856482105201754098635435210365584364401379184442887317929603625506855814546551514420827653267823278631588693458246280265914595304054246257733424606078134988039457219382321067228790541936394560423628794641746850666168338223135958236057656758399315195192938440821004122517441671044689245989045134264866917418342090907797875338428180196332415074837436335701175030899907478453291242280665074809371229616120784235918247246710001677482426182511351622423310994383684077672438515756504273199129649937910901437474101492495861033624035591665664585597336927887667913779219926122685727151579938105351401945222650878423959764938022386010658851129026929570865412732026305657897702750349850425916455194874261794094656850655281751351574664511077972772084755825752639435642411383571539218823551010154981879207120535638917094962429528441992601686763876199716007077012914654168092848653066199934166750113618852096651224877116159177216384708417090590197750796508587194420593850887299770024177179907438489167922970564343151098621835207070152425641372184049507362685372025118989037227333603572308068966616151279909672760999002660064743445404321115515146669573857673212024984536120511469661731663673540918151217264705216264321647253645648597265535166152975881396689960271998027587350408455374402720352935057559002954730814718181784646919832562888119675752884633785951241037434393606277552934519771109582050466107165880265372520381253752785817857443199353362465973772683494803493837181677090738691107752346265170908568264116847632646562880725283840790650555446859212630764242006667846226102035546227242664411305460477616439426620439227167229383483080414547722880213120616287938372156358778735082001404280002924247121451487536337758763457038936143075041021335610265550336832815640409999952765743171547458681737058499325246881411762403091463397906277403189360411187847716835637434780040527874817408198172961518879090209867410796816966882317487116609583937839090574261508969971742073853710855115356514523490707789522518307429959636710128325054190496727875057599506349436434133338833609120893177154168197972765171754092288058928740228951114185171726713373073152574820949904967359334855889894275856076193879933620978453715358902507431088581344473152921524254506661781594528790623708518117342229144692893345090824324992407298679386684489292181779865790587592465523702436910944999463394475653995757123430636626154488936897454931782888251050423213307680881878946339406316800604891026231673999728325141850624995089861937251286068097339230329231587086302034292324680352677429496129847811645189586932002509717603710104767108559447323865637143566098739353602831032142929914469402195187098983847053498283907718113665992999664858129508868758258839026309067121768075830784963258044379717929732759149775059106978695713842252386710241282020873952460643700729716336079827477970528184805493782854995561992766239335377245628886929404217801679169848586110738346411514817848680181469487114771902840404423107882701350105489936392655632025378573667868448039808001166629997229967817035826188339884181525266186088097054070577419102142229723369152956409092236417880430953681288189818831314025744040667042891150811086753805459608526367052725317434765568495733003729298015153253276543244674019562859039993026413010576600367165867118625927725395525342973633797534682807834211534738397921415884634704814723844737427853143925784627307676853872314442736741477372798230957672847533715053203017115511830002316613213242202119741031554418406374502712636269435845856533066222679586628273819323155379309792413910432506533414321879723591317077466279411251076541861520828296211841358729033618030414441114242236744830578746286578823735280233303919433438404257472991997040182927488063029068052971716379141538594415409102736106906196322046956500004429831060573720508119852052364173099944737046740095098240867178126800826267425436041682038210227822359604006113772781754247276094174717718027535215984272138275200805294306345506501170048711233317145928704020906411428809753231758415552648286810471161421987883145734083071818828396847614691176035321149344969819996820426610503123720445981162637646598514586562381794605663583038119850873767805527121960614256520109380965326671870411265173134142381321090930876072645115923086751030555384339400039218167502576240717501766177931862903495553792152322517096792711032229622556233761709440141406925031902435831824472547651566061621621731894002814398190390346092365130253503411389140668739732787186499555100910631513718584963395637661112742629700497624183955843815916544284301563315855689848893091445685855169336783446008686952462983149718281301754217775103932884673087756406171977184914024048431613586771148283742697872267512104485072247618734662976884918986246666731295256609904572659764731766131485119202583454681514187625104488087307406859333641799574453611817832028637755001621173690088091510218997314555307820048727990096638027532854638232222856271859554772442550556621645492925515420829782755369739440947474662626796857526557249645921336392281008521165761518054284681786443885813784759027020827381301332576261959195053136685934014344964161751003003751388674698440043470577195597176577107528861715158774413248656012868198218021930413633551795360602326019758416100197006044645634395681468365880697116001046756488589776397691279254376871821297901332569857191732409584115171655190197535411833229998705092904765656679555441695580509379666836038022986042607709136131377205682799683435243137671459187025656190850476776927270799234238516639145295124486340450829472392805645344255077688083835237371168581436976584037351402438131732288685904536734737254028571450882652726317327421581022549634761168657346416374954900184511311148784868200945808925609907618528766625519024688333688523981787190135666771762613625346609037707415776304333040958253833297744638312147879160234765844615898402878558883033667541726657058225600047148141293811492449949975542952234843818601616157385438058325228983432132371162307408006785647017288706345214480844537700265924400850836039551093202025644833254016070522030251324441542390398375539201143467232116061255038857690853066317699711068411013134525671946541526996921517358685059405963137820331066086933517709710759358758738829585970313752099446391454477705362558265821240093654756159306210402018431292423688408578410240548845976608777881298816351277667446872626272157326413230617632247405091329172437083701629278962259951204515610837648011638875307095772379539751300016437035652264972293482829566943921835155502196691365285051055018751286828622983747987584362360646158449296597741244272068736786853889366309975809564232850808166479730725392529643525294298016492653676207565546085693701989500026495885782715574620892662432185195039122317383516669423735626409920257384836046844876791589317168560286702361984029771658607525902972707433581256113516934556678547317679710007011031978952798032011429533067265941010243015536190234933750977715189287964180595401324730290531127306655054370603949707713121091026927239749987716679055125305184113564054958163928131656830648847022636935115685626403163486854736093098698657949438873056896493945922726303290924026780753054136259220506635155852874075768543078820614013180110495489609610637989711726308909649344097282495525261378420521127641739014517762350011089781285361840716904194946951747729286339823080456157245604077765304306066599428693462754265256902712311235744114246254996113109567875631490336512029687102060538663542129760199770845170555582189272029962466772742817923549474213954417598602027125305770745184382453154803968530883606245332022016247293056252968556602063449171541648126638311973463117578809149049966155284173126459671718262302480046300200841200454350816943961811954405477143565869605978017433598985289337316697265457509107068196448691256236454032762512798399187318274322922169825480256697891189090779820171888252809987515694333350882287107311434339474108696658815779769090583414621021977674069229369681275039525179202543807519627007088196499683527616051032535481888971246372967279475449276119395747219732936368968801656936197810319835995520983272807503713112190454677534626832792094956224488027870823736466535566894257262430186911644092864436800030870316979101042188071345302690622529337654637808419366387149166118078719394140041184919916909667572348578777502012571731479317061118937655450045902627947450030271543914300391617704422115880502344006072414893731926993708867348148652469485548599461256221041033543289364379105053637762137362459724900271905980871528297047073209722352059028524772752979506134279411238470803843226893892919479140331368757561706802541967827588350533601088977766887712941272703193654602880529846234911871020726562948579976626388533609162378033815791100208293527960563264172168540295035477445771906077046799239305317491722463538570718262119473001393047488006293157934609049913583713494844404813992225095627595741188124555463656977946186395911309647074687356985115462544039669923832872919104311681781322945836136478915294449575651927158596220153866760378798626137386073281645634186462507648384278627691714017137525474329199437711199863045421891089342410026712264141119641703814359212908525201772597228326761710347612483808659411200784447808150431450022396221734140103827783325628672135020655051960374119277756486781999627906589686737710129208091582579934228696354977409297998214749733443636122072876254031949800268365601592118619151265251421926298603644746564990721940736484219101195424482960772399213239213196882194517383879087619120189313713398588657144256829471416743037333210177005132462001815183329634834050742124883450757385656233467718425204109808540226239331830048380000948389285007378661528039556306122188429085821142438430319069153892814391600627312449802963762049692818189097565643947816672058857977814359861068429872820886228509777229038208098719467417080371561314743114456012251109175268527141693323151824383719583031914501419639598680078353905398474748858634127626173706144977338860207249191962987636556037195035495719877758615636402584303502422768859673677893244487651618797586598145114786641776596790190767438012849485885098414657539151812111527707051650281762396786709569443665813930454691809465624649085423805060705766699695054656286196942832030898603836105238881695119119083131386330562078474722288122019515577770595387302190058498478441766615342111407249642362946390251302541255940938948514880088076524794661712676759064449424469316084215204107823140424436999881591501891333489309461211660073637440975481607978260530656465491170143991056876666728731907666599255223606036247872743553957026261303468245350184493289119034286998778406894489132239581942147566021550593802447603474613810651224211933637254363752078827262008849627130766019054020710005210327156243422013725887286894932441400961855265281603515673845016649151246954752018476978684325256694266719047742472449951113936671983496004486720726512522357372148225681666332925690070144745077561655231767041254445876266554415912055329100566893667844156384348838732541580471521371913434850757871985614529253380624492273080265689540694739288281086157996831337254595070316548521512871657996565133269553852207455144339412310343385003685199323915027316591884044527114160583797348636908929188847464882097418499222432574202076857873651591924264145004632026274375430358996717579580361306245477556669363432422649702481915771230417300650940910101237075420427221679215836372464458450469275569664598088820479251810450573029436930622927698909906956574423424147429859207983380293551058659640160791610077502233735570388963436242953464855859945882612865508486457626828495417844144969063795608660554552017895317961182946383515544913224828419425970123169397497031438891535873868235921834119773985561538461813594548302351862713424378998876498545740768915406090128770288008815390142380302879441571714438618731799930366658076400686844476787399264844635512926088314157365655291407148395166048214804840898456622444206203278533707819834623697035117203003238957312681940292483756179895286315485785123483841114358646264772779377491007268112953392331709851443568402989585848024833329802892054490419341228312293245042067625761464305572610988566674874793103365802717151960422678668901514760961769104254436186595747061294790279735617488599061630523490499839090040309356124589613493845533056612237021647995991313104151244402572825013213297689243269344337845980661476526812258691871847315581441633954413808215705997503625710663120619178605130867128766989933768159061121842253006742865661012265590193396183619905043352253176315629731804947600941835671081441923503796886175487872088779756637646706406341657250575710635697033739601902548377590315815580344914495321363425944614679976109501071927778237810635596050167389535970276476586969649108933645485605838656068605834109187403369507683422862625151778269080903118955998109321241385214013595056731805646204626709562657584132182288469789810970677798976606024172883450333480775012280929595788471266388972688367990604115547770569883268939066303602365255138761874573460506642089358177653589841232845936937753977371330355234456622272720199342519996352618866217947374498679155070065319729665629646469836352719405989361563697523133328878574922544767239696091355886501001677863862658366983473148358660820654327703127117327706715421701309182076176677895434362621772250203299261246543045118427239349587750463566303622252916457663740981619338098558838190889574412859250752056330786732715515934226267913730318254550904383092466134603438451391480503029991603447175091394869969848087055806081218922658990579748277449548834559672815583900662458778639565552384430368922779127863038035099740588151987095111575147780564109788931853043853656840365478789599333350962565076354858644262661691635323407182513800870818098652233601902989603593186956609541706336703753165835141273760946827050133874493430294427697375024287809266361489130757974831094061960444079422084583460746999264255227002780876576919015562174243118927094599929456070852141820712561776614309418662601963890123868004297983872180935386640094779592789470633607756303654768740778217847059480522545892800008436617561117239111914954715995358014143334320693851736595350834849953197507452653702250314939303960312660551426157958311154039360241301028552029227030056771461057544130752812737675189671301244467758718116909835039166110671540201042534368786213476114951273725659657561608245119985081700978787172346428403446428171623546571646977586375081588267322691852045014037663760037584501057068723554280566174159248146086729361580961422387816535342868510640729364486675498332582619869135544631314703765279640980329223924647964244045573221103374354857218847707685086177168788199213844121159244414906857031624333205482608521399269109478461225619134947879825101919226904132443986114345630282609478331408401059125194449811833864933996494641593688768047944796153658709199311640420401573523186134211805422307793700307258629821105747198992716054706509766769289422225372235073813481716409699887320199268496279164562598253469523759450953382345195460667915765335262081431192306209462513875492428964872764353564060736119149020137882599187490517597804053246976244423597579410513467744891799858884643104493298239760583047680604329735947296110827578295738406577853148221905149091679733392435756383642679153475975577129390574320596598552694176645391979272353408794176814568939803319494378976714530081258324884687047236843421312947192927606200184855016420267111554001661542057638655669161202203997257796754271780372821695303477805054204847711716494854598215597788552610886370266989984566351239024878214793837945147006157121939570709322360352615588211256130751016575235081214863367144264639101335913107193224397767357879339725234324862532641529618130529754410538720523724995477834311593030421654234837492994527787274281164109439517717307346743322591476162992338177143670182056319022897240757982149205741949602733821183424562980700402978103205636764996647461635741643683799635366727750407761457143805946056459924052874325117010305151931093933903605592707690146769469488319784144520744274994244470166354430097851026631739638003755991431093480300077460327015870943481896691624609921775157507098372151699747566834963499229891734181218280949825698571633390524735016623916078379431414311723711671686374118814134698248544264242684528947143381526352675089155555450033396010926525205297858130987434612803262709944685936155667340970403310730475672456780393332820634514559762136570122159963216262232346552543042971265472703393581097673272429322687087590044577545154588988447699954779585041910478407612768442459417322830447319953154210708757365351888943203555272926329482024569065694898193537582369394834133860572817108080000575245897238066248500864264318475509222409760587579980697758936080984735676570285353222514932809216788727437877107387831674266442989556251072161086257774835491073442932930951543064651685130066403534312576876088658597151515009437348570412583769407903788136472060246228189440670091612159354694644059428838667063224301874036387067904747392213412327873027155379864556353181798768509226761772280766920708396775621478315093112825134810082688973555826621997682930023697760214386381121319271926180587791238695634048584648877578288581088122694595290890178842401860092122623853166503739291558245336182940761960575505791445826445613143179030161496380434411775493316603324854931946741381714678734727051754755135765321605559374182656693569952275942959052335571647631338568486896443059688946320771006315322834830022148619255353776638038065684939209831714335112039069724160117242970157224794424135104094450089227105648274168259717502918976928861462091754062443849550568789107473681207174143416563393511159052041074875843180982961793182055667960432014235516170096736327867958909205697075678550568551045012626601424127322031226021930693964764483980744685552641278160800873083828033055630429980313910010545044367822270250015366856690796994193902568871484437555355944982667259451996750143234005955838657112060081603089698599929024102827605119126051433455904497903346909531467958963572812943990977896304028355972568314550490613931914066415016269950878380271803830392556928870234360330507198258908600423952542973800454277152343205565576807425051413726473433525432034865317170667036819988766527439432653150097613721274175695266086932883059087902896838676428310606779379910455386356882163832028621423917224523271306830725967389778902980695631847854507558429652995339981061650975548627169660534307387248393992563486646390414594155527820159393558791930482451880771220921448457965012140839163279567368316245118895923251307722787800606984688641107389297498613462549299017300740894990574630405579338807096934082745049931063324412175724610581417584644470602949574915340320468569814121104693711524532764007060174828760754280429350472061448626625840979579826336488909705080468294630141993578389909811607789809272849708898653473410345430711719201984368633229354346054319439217346710100493810366381494579865253627440799693177202538967715598551941005049185727934854896025183267672993826094909501586397004146361990629508699756011895939121956237527189852576231761292784925961333970863235905336104241071563973979315123333803740126523525137962462852861327620175386022666451622947986646139090295777277394328247697052025804035553064094275439200952211359442938775672725494214466418576828897596783392046309665161040810530123723019065581552421851293653008261033427893990102447979373779926864185179571624132299199153803878282036920973760435969900621502766988309291215209787043718331163580206829049482001843653590217179811924852491102194242512802036222438862911848599338468492466869466963850087414106912957531092648073530546765588077222060175579800345234271478158388283401051139820782475501595867439370796349605494024489952162276420486210961821336872636245724862964406680319147400745308709706286582687776035727124048578702708812631729634012590737263007907373976947301168194533866456416779681187803335713756870266824870631625878503762381131668715021829580609300114685241178764823341189239515793419500979731184481065078590929716517153822936842103950773431276893043625494151449658692695082549004557131513923138421095421392720795776711919445073404025544443574506071580245926665744275094667516735229305797706232487606094087315639076415389232828714739969228592357738918931814536705240151094432264214891739118336198557227380686175362437765372495338973843342725840670339410390717598605774076387639203002781965465808913848554662540698426127075647206447710708440512835163383044624498788668108950789366896554712505845193813803972400890284481557471902775838812808071916184185902642688462908396814543065955273899941002819699124311583679074729870339904029114845080544009814375870971959333526670857225836871563530947535936399281016805192941031626261064367588684158224204369600252245831334797938100320587958930559480012859930559583035438128104936692584663930638495774657836266841021340575939709005284824306333191971539205798795429159466786447002962078094179637689114805825918578076043256078281510567034107785172227378296498908444822671308063957352813750341098479094351417318460041139333761731375234788561240926600270315705225670594478758900366597493268962145847130941595356678537725071211691735734855666139743726507848064967861932161372619516438452132419294259926733582210108619421771159028709322357800879962219164480316456117908504948857175648352640657850557145411463632563007180439198133217005298302422823238682532354820633915787344270054493241258469484557746289360335523568514271471179981456049245096610359558511795190219506741340533511235152343852265139496777325417357937347120078193643707269772617623311034476906332979251885542091749689797331451237900642040720045299612717271259372748774213668359648649860998920400456263290719620027739464834731668340656015039059631599328471422077126720434395161050169273603255882420427500938074532923119740250648955857253750239584778474424779605357661300371457706197862584161808740003379323213415827401860999583150707038327509974397492423885946075629364518580920308700236148200560239016125283622494273576284143593164944915477731921136332684887989599114170717821378030809242521073853259327453676689572069786484659444376857998730190060880711591221555873293377473800116034646870301389706531433722874305143019998657527028363718019275771417124734449765539368478840978170532610324480041381941449429745398437498265949421349774060238924161149848952757262752734264055908539146448966850653284745572151483917503276001000932163285530946629853063351629626988905207783109230600057409849916615369770601151424588651206838201780239982743796617082822870774886916724147287839495601736251591766427579518931719373025418844551232849960326048995711484071290682206050521681497039518641435232602287341508913416389793485207188832618790801594441956372277979337592861204039661262907042873801515235149794897814499012187425505543116962971275993848879216410369530192837256308022963079001197014209568028663602468005045248165015991137690267229405053025810909820393718199898857131886900456212395917646741224570593374715693018501380330159831523226503118023744351379575798067767464126609177221612916511345091976229445282194754909090028204128717945959436462010581363825496455711008879756652392639189014073226218000306271508286988925185433800524693740394503202766406175276867220800281686301209566674221728137663999411919003443046486462135664054075249329068767441566431817683143148484755366650548009901875814318452334551289842736466304844414914311476906657633952730073887888358638753157322408011202008274283378379690560538322261648209837686401444217206030518122822076660377520601627015072763149197007509249171022228149318210838785252404038228243553062273611568613064331886597438795782480370956501777637894863954340554349216074260299398417914135908228196984537054179999848245222584039751678541236720269075099091214763711226847703084424201227066756887286952644174009689298221644337555259716482336283668017567756587288720332148926921981320111818117501030958616554227444596162125019441130665520337305056408123593725430473578537277850028467920680148113171198547770351550385914604360432751073073324542422040476604491775963378130839493442190927349719660443624908153957480542285122413851561429560901222504710017172908422515558353750803009758811856232561999162396525729329653467524550904369978225174220061663482958243173060518133451245490741628245040139403231202869877004838801184042281984827660817249185324793604933098717844824053629963761473149771344368249474587819857747812828853876494162267602833107266526207509523083306332601540233267052350048421925783207113340346503587136690655546914476430389520445211154265092030579661359815920859007151221018092408157760878374562247793213001998940301173249376367161526330093397918431887831378204918343326919829838616230679516791468718349836427235164915716217979043097630450235166150575116212776611419618312667260732279759565375816745015728210253193029126008900941029418335581893652106772577541851434052235905167876779770095184870883472922288751902324657396962976297571445065531137379387781255750737266937772844969086720839481928728322895318558433301510626160572714265116342243056382347997504558217933948173289981164914129644073533999661890284711334316145713283363602141591348426612102100951503081024312619829938121524484706488733570126581212622388797109063576707360247432396055238166594557430776467133803832707064223909069261090980130983066641670787311683836609115436538892836965273807076370951207265523865502400102212673014467237666340540992611972868934637798039895236299805166645845978221894756448609522343876449154295966484123460055420287340981334094397870857462792636707975699027790614019141213795048219099017486711889132008240197025676396761086105673267276425511348398192872095336201278276269142409318040488823016617639070188303569806548350062101613454952196633860765098881007252414040008140988422805031646492621416857444763386334696750275091176625170429510543394587069940484497067152412810781179864994184021780937331741759635680879207190025668971938433723385130936398379684713663698423831634749988486761044238811781045725148292212829796980353186074334018626962016768273186291334538945599021284651365665117627587707840078724454324787977051663520679742288328888974230812413142810511708472517961014973970393797142386424548898576094542450448110365272663489713555904951796307455344979482318789563910313590709094474766698626147298892692743748759639266404039122692085331443908758788436443730249227251436814241471927419879506885814815574194897509033144320527771044426876136294348613580825969483411118384006672770419080834903745568903839687840021360039656439681218576475367201179128904250707728289932145249725981835516393514102691626956462318487928523367724325829656422429252772198075492915930778304574654709598772988905227160883435793398804686875145665126706110886388310193479590392139076365976052595112904419432329937441515737462024373531754769809111155751726712531806833151778836850576446648130139885824451769033347237082808782820223283688569516768379858736523319465507517171380637810323751708598272495434623064074996050894704918288470541908245539794360469710733581054697640529831006593149100140613946594289205639457384579757849375132848576428310703876440770196405130232117742475795790503610190759257764037057183487735205070134763274943183977882429417270946325546324201672895389747750623996916447673068013049220335343191226072333199316160146857882023414403761654817985397114878787553358531386131180890060662345351922360470995517010803214602640999086461320976327593638284243981377106383499325922996540039634526429203428168962427481564377006399420693694778235035702201367818826521051984159720588747090011494773072845154926245716420742579389630426685105216442707672034220855746899671143659846234701989010537679989310649876737768974854000412531993506904474029403323763518596103700557830106842940395557478374400801766704772267467303746893645518797889049069958824502583821868939594314541990251472029769212834140840648243582924161584782324601514084608484659137004255913297031687723808303693912793414744731697739699092989601868423895589393512533545572923025576860211663906005322810405573439112071280111632473980225852708195055725107732079306018950412624386311336988339724377120626243096733043625580386735511080192220921933429492183249850923257274028687610440622911958560466664962585145594556810938645518730795848024645753574923204902975893661065731807253619692954216599648555327014600742008281299963639966007481078299044359167333882711286351307325534633459669827792271579292681074066259394393403132751449063958825762253313649841532625627588881887255684241035804871846623807887129999160610408430438054045665062330613280309981828085579979586849618814504960390433185448843979319466209272244908993411196145788771213167146064804160233907426138771160861029222256862583110382708311992515522130760881451611098976111073519284518395418296702915518190561268749367356904498471577321858590364971406642877332452267749585838770776212207783538702570253496201232338963952475094871068292603030441975717759888730132192399330933059703907743652020078107234409553027110058889322354447940735395975347212083184545292060213823883389942781629573815747489386350471893493347485986744758360818949629086454635449454630186484460202546941172939398385739521742188069407736154644705637512676359712095122633535381097781343711184838088966995567041014707149690821626108940741197244490521204982341132554149226903024305493920481856479043342806717370246052912050436973374589321904398942757166354309421394920884335452756701806203227588152712545439696896939240912786340841788027888515706303407200463094348839624701989749657676285458921358026078361735390137282518086671563183480452743963646154920388445280392934722393358533801133995594384450888494178908168948870434826227674789278402095449614891782852736002024297446956205393004155263705996008989804288723502596632827558705235742320368766321369447720763943206881969195391472075019770142543566569088386703577655793626035401397726792793702368939988485994909940783690211613741034384811782974366935571113155367684408758124699621412174101260675192783780128780159086922314049274531420241032279128523381129412598612446362904422906194325540078577961731751856599499696319925970013054883124052733882423800850526837115678728202180570545608567965677404412419272004773810960236842390627721594414386528455231444445272979626391591778188072399981999108644243201416028135881989068878514030265098671278573305557528821107242715674470797015870544462309143374709661296127103648712480089740107160863415651579159149469485490804053912650665468512070566725531672034874174807862511545252570211013175780197506481589263974751263314742988656318625653972836588894905480728583468080647720685033471961440223831725531978632670748273067088925418558603605613059842594878312740290293052626750121979557900411219147095347608288287883623215624743396527758425983668965189214146353728279803006675035740832294648266907240066689903778404636102566294042873964993045533474708916846184184280242548373807121726840295936134134881838449783552735934582131135294882182579218304487494813173469293630900419436679810293206732264326087296517733997321192931603637079118688557318419663171712426913913111222159954647774505662106556754487148402557546439102779128076259885702266217957132602307144361207776853797701501030989183414961313228848762679795395612041529356689534235813332082150863864826547526485114117565093107542577062174860755152056374748494559286890427552408548335467761514028669261312387707736321580055511494097747324468184198651577202472065646419721348338065136580519532156351059300072673988215211424127424301648550671610200485764992458319930801490950675360165678258788672474747071433207420825640904713813064621733390027092804154112467226256218776610790666864123660018233803617996637572180833629032882797364207638678534803028454587040871210309267753546893960955791681739917602684862799812244473270523561922744843115087324983021925344871879021904347883938478046001842545357541921792379385186967306526853893202005478434940024073832208133022580109039538593873605670345272314647910816942514579755684270171174285877302114395904623195717952064214050822046346735584599833190039220518621597092707222353908699583865189711767747469061984786191855952116956649594028560462555033059293024030584227970397035689220482893987437364766297625304395355819206681601633951566597934669696734284047301014997859085332394085951872650181671765016304755322151803748254361813275918703247938773554297949987443290531546148278815018031220300143742604955906385532198091996154291220949436136612389324742266309086240180583141239272874915916916930744003156491359073605231297905312942496709925057159823288569381635495311922659443594126437295070256264602312577536986674948034557070080037075808820154033415705459265596933681242280021636269144378038862901164931580374394859551491880454137812851290246360246335169301771634916778538967027010817481586678620740715045954540953322439562638118589869173705779141431950193733758103282392891037136598499976620695257957772110669693224195261697714587608939895623776430329708946102997335497765383034316674646845712565046890099833434387304467303361640309948568829342377168151527193677388625920302594024796884027165550945918485225477094743936124999172538554899901151965608728650951650328680620460226699557986107154607966445244933058422759052197503004920481497228674528217915706632905724665761597064468381258079123124952091696115065394068193113345637732200043152315220382623296606998532736848407295318570410318402013873147351324819576818018658704411634561774591818310044303073385806879068081915834462564934925713037951472965815016572251745581970313210589192934846749298877224140035199601092214156758682682942014603848783002385473680022357541872730703941743449184486783985209030193274729160013315384386222445774155930397952547835730836466515544963627173079204494454174607664151716263753239536024291824383328639448552343671284721615675613354632843591096804858473974228648275676772861555052003671457279457257848686751043343002749684435199889604046672784931544220716818739527753473813522901846980767559664280387779832751225529109569803514920454897613017723557134307855405258876118416803551699414321317998609738673755262185113181490870762767318575769361101032307912224057244344845565885840425423360275273266944446801290941733624748591138298656763803168539444602989792324349409174218703855887497146915806377977704889547636125008352438569833197504257026932260049538081124930470912886824672500744090185495403600701411609354640050452328051919070144769311298854964937157963985882335904719246162314759382655266667232413312491371660111156818990528617726253408192697423448334174101086876521787564341079551460938649929361368816032409115354799276296270898992838149356019845198018224328137094419953554943006884416187649490154330399563353042484202080974449998135722996934642706924490285430232726239629740654250598922877541960213091979193625976961501857716794295082593049316782221695929819766739056025260798385622555860963140275978448498177584760033892368714514585700234913862447199930002523250050205165608860580211750306720723833293795810065287993557297134416225471427993722274225684981652167819722541405284378084144555026287069550299523200028660321740621952794367326061206088921603830763884802692854939643299176059172168464651259657506034930928388206627931842413849494553268254312812768510728855101706230501196813390253056865031995627286040281035208587854285836716016243772988085867168635360330795896594615481279734808161125197402046397339452074660366856207800685084544861152751481014607190192062837980804868796948633354012801974261017290907286585586271957869824418744073194653461062376796672553747568275136227533467450002248554934579973746612388416938776794530440007048603458822240349624276280556249701535700540505914964093289891276177720895963161386766723323486863952715174450204995951988220631605989915948006745971303608385628122562827654465631415017651536219436128596724595089216629511764114180745653216458885629552541896866187967507170454334266408254683783160652988743170940698289870604229252615472398270075368690986190092020997288109958463077138744864868771699034487786060725168595685739111130468159652086234914180310080438214513398042488694882763101817305530630771033574599234668919250000253650662617136523394353065958274654132442780042210760595986943867055489018001713937528832184078415692758935438095143768912329487399622186089612718142870094160204691340187012853568842405827152739679869746851613697273313966257981226901355110978164676098256455099096747509444620913395305023053472924146605817997285900202957148232970884454560842289576012061336447066757703533301658871714597393806676267393006036779912891980974410955838665365340941671148864042694816836807600756676972602669960750922019832673771106460277130622190906299056523262569134250641722717309413726459501850774707310690034434463762095648485838993503147611568347874050627208061772481311415400256991238439803620462746442891490554437533659501248422557955067266400949506535990816248849316652983348431443164152053461987837139075386146071590538142542716982432290130856800311909424894421830158561367633064205943366533496116609192003133780524175414373765029500347737466460723788378388223294725496010308191775444239513795599878947084299226836604799268654196858630945826784259696884128409827747586010168307630971984305146705280315008344293860127282820349998200615757285995973160708160299742802273713114025550842979196816804543527232674025087763743667743925475754834723412927020404485289114512523488631067130012271356832164702331112198981066354710512056635230766798983547169870065777428430241136584455602320152219253850123380951058029933410967981323116278257304111957045804689415556028771200094678666908013967451230553138481597369116898539067275620324648475109512255168824382115989561000898229076861151350315678490640111826893698781583772668886303788065823748845719990235831498620838270602315616639356727820750867671483365744023659313183320126358251633129378994398172308053699511993805688171304251907231732615747544145087200142696163525482289696983628439620200431800276702463281712519492439511045752054164449191508369256077106653529969309441022088520751251523092959215722057125331482022387211156269166126243190076920871209232732178026455693141863796348285692536032348606736462805850453701252172490440627515903644129860670231701493296465654572452489317809059013616457341605933887546317402628929795772509966077996118279545898922866849865616017545692066866013019731320783696457253573273860326178784542217046522211687323535696684093904761460666600991977255104813684492355773603602736325998243825991540158137811101273735164821371892915579732902625464146157862908723697615435311688892906814025974543511901429290510861576117540682463564326497476810771909824003541499802580941554600778364921775548003957872926625019075170308319635283348398192225284981583311255429459883558870227459437282195675289079468006147217692127771094098399031917523386239709762983710946613286505049270093482592227629020592366790671284260095097649550524756600678325292910527178823497515076413156585784494547365319669891697360254957339622573914239528511386618030869507371919676185511117504659844263189414154505088053984127090857024429547412346257793265328711946599525882252194783980472049040337619861184922049435869446265154905759978422617469614669417796309313164896311618834376651844380642134705471253990757963274745002768289130191734282342172015868670862781493550553293107470980583790787542904308220407076979647005821242201638315005224161246235936755218143327271210160221225368920557184362621557368256179183191528376671253572628290996216112929437402675039457338018997940136468211730096011149702893174893146170585536252002441907922693658822128112947168735071244122756178759723537702317392902402035433639574131518952464326387798971928296535617186970433662724156932686924511160721711090680371287177200095653439075849781105013388642172430419704901979398253497095662340899913981408130550311958289600404110952961573521023160027611493421215757181228402765977924402518512596418522945313099063494083113103193994440056482025100654970583494115988242553820151499762127213728728741558892830223273390607718975137256217047390874219005273665595183073823260270636807471001846773963265875940640706848183080266602233414536079201880796945075119184477170874034252228721593746813823404491424748800210922121223101918622880042791721086226985562586303109865508755221839281393320168879856564989036895559065764197024403781697444551765292141191841202532382396231829484397786651677869937958505671848431228562751872979761024474444186588828675849516223831536248120351596244523743920646855922734250631389801957681234286294138723521394835385878049367348950153657157198200881483090665274545675221315689746585917619713532741979233063175839822727878215470279390929645177263265218582294169923217893051359642051690801237094205673302191318162079638878645593842277349424569149626780839871279562327163745073638551996566338119705418997417491820995925928348767196775236041303237147078878265363244761203108951582290542411717087375974769235138099136248396792201510108115899585155081292837220535298142682652981937719961314758423005054036723484467518355254359128280646376783221467607518625248090366459588547527469967432277569772371752069038683848377159076436717955558040077920371236983292807942745176500916116674585791780109329913886289363499801305543587105795805049885802647265801477704622921487732651137436065637787784900631702184090342918360410837171904298999059960613098997229254715348591843800295953345219407902567019617403126613077971014308111113305902044780591559088919760055012936785511974818535067373708805757329222803056889748970500780993775268851578715747425121074271858255490907841077761016645150371655828450989891062954013566691527829385147120575931472713062830713831111239968037721447260291490925369952094084597415613362827408740706070000937435177250870095095575756250194916472583160966680538257555804047146657583600275230095451482709914862373063272577540921705206437265575527044435915975577415637318885177419937498845757018792932252993416303777937511937975493723011487712164066562128627638120790612491282132247879298092919168208199571389761047951441586101352248790205409318386397905625500880548263775644084296557819560892698018198317242400941700335016420641712447853353196739829529188762316214103519227508662105645999866751590210907472386785143939820622971876034168988888289430706168393566459482783703477548439156900265120412299028632431831917792712771384538571696826646840983438797083507695810015367942348866463503555605940719668096847602271919454185436460522141271681192564076917201962802552050048377489880099126523995956560589849933697853681719277957245061509988616049164964523789404631829970899895694304275387884412703099734322799352621441226422604834867062258807813269702750793786969523267062991682952202695606174040671266065757064470956489522744107050116671562393920340462934131981082442448305900308545616715565993977525658612382093323269505134773355135147696077904552989578704727817682216971189712270595346445966181087950967397211404365052415253942035579784574845886718747387340747735954153190724542732653949295417373279911237739176236068921429066927824114229021339934758140896653752805529163672535772638881289843116801495853496948410965313644319600104090345098717868116865402590825413152487524501551261908834442076194703038299016932620840420708897227524563573200690011062291957844647690264661533804511980281909598641226340332629610429779781159164942204911518462638558572579839349138764018510981788736699365700154181887314044465175733877089173754171537707424137740652636837619365351877180247154533936437622946755861323721316331662231595006348014434119524726907475358790784893160468290607117475588296033026115697997142349192614189495533383827657467722428471420941876350794712886860906645494270424594150805183585518480008094487496557804028115121028783629001149524728378953547917570211372732957217492403131339887327849891641687786756438850601101325141956954118817623644682350876860650891917511209609615310063686761896625246852644469682312330028584711750003870144506189618156777335306936519795883282210007152995404676080298219064281509990032099604869003360072356759849123253816891596758066115845145941321524122346574396820172872754446905013716688300048771217365942579604017101091951745008694740288981389390825367218793372765078135825725391784384598168507307570464162539677125408200931111450863583174071505955187569549615011527530614997895823432742006115717993264546601196593136159945935235101009782110502026645589921460802961392569216226669599382123618476295058639341400345877422320115885353505313973183950342274160681862719377481150208189937767907738533620989493838052823998844543312742011961224892491719172466263119942059827304021835861835376820814934389244422611943214900269378347993275103135659016625676517407618025385849410113996298635848733895019802314636030249973047640054306684553466431716337026972803887394005285956354702359968862857041199858353094226534023074377186270925825579214236392010586272002393539238990882994040495977151931943485927886931140020419289878564837546239308549071414264785552401952221330041314104457136804037567031444021448623161298880496361914557513181556487719346849781508895080152979660164873556770295715892465456769101523414221981304273891247057155066140791193880335370321488355329666695985536954772808359674061929284325353356751440868713074130043339428306906494226681761517576580641880172355107946390640500140897323103272559232731319590308538953437519770560796580704392195796167102066068290053406655335475501721926904321558656388542762058549527406194560317483979451449253859886979684615493825950686887961008171752813785025783074629966111173368320076056248593065416166658697942042529245111854794727453853641348696104350243972324410360468394101374777643132670692340739487947009422191501181667204781605346951473864906353510740079455839965959298842798076208764432167851557374139554793204077128191888119904236548856612129489877187091354329174861025245405174551784821183963579457865216326356508296991628189898582796183900768633374391748096071001433851322031315900489012823884085002670499658872168505611464543308735881836920923024831302780330067323171924579778467183027665096028692306058967751295377968869430439160958583387388353167492131331406308653023248569607984742206855976126225600249997948736219581950471326538128754985317213058977172467777743795855425895353623794245090643913936156764683544395113466896674029009810220633130457620435134833664179441588019184593876148525012554907749199067002496241418045512466591697430196377374626462250105531491168615289858491563883741638895773064393374632102599498369120953608008902403557801642923061917988840247319392562088453031558876152415441218034557962035174147573534170543709279837467703419970457546878893466771598233273929372047444283473859996883326960768091102054135595727227886547047110177298369740311756197749731661677405286226202872051190909496947563567765363754480222154749983909344292007035853293389141314310170716319988179250323354254433638785190472152805001989378512590556634493280637274810122277150594270320264877730055405082691859097898839859645620831534221832059968294337813295717066600611489452032499743440135855201635957452890313050726335155621051296163745535166493096627576185810404027176838144238472611798455542131938536068257416573474840300301466626896084524384594694936768612013536415852540308982268568098094281437111074537322397926224918569540307910675258465404887402968780214383825176954438537324241099108435204236401590607946361907278815103047476669355132794928787048397325761463306966741437667367385197732343771153290699648928596181493960892287949566198725270159705171683608316087616297621629140941603318748987382398053885667438371848849284429952751958541397386509064544131683890845163740020366097626626855660565156753838299832137148483863085533815906012284458276994443997545359997188544995209113643371220534193465792940607218042854622124370179767562313516408837147815564529708480049501280370590648178751649431330347208449815137509606741267026390899663894079679673844659024198990074304058445993699635897514522581544595025505179687806336003651654048726207702590025937122144485019052959208855065557037811929102051521684302671527188150233600345851947157513309521206534195189723434919952806168930673460099869469025460382491534802683178660707046492778148084617992700979422983695668273875864311776323851302042441409056138189138272340233218497223165352487559248681986414034480469547347122729401366128875338324723187230500721226068802260185214035366011655822810580405196835058977908880788037524639082375638815853746852647471655867279167478729449986624384709803795692529048142741168711289599044084959864351797000772060645811470768252103270831528556141900496378562586636373987532387291216044507063920030942418365508504610521767040381671076348064329289379813467619180962038082649826135477823538530447373033134005010939077355038657844412580150891070782407853944603178293462314304116493430679187400108128530662218893677369786732460927449667586330408369845174306359118285775819037240169232221993998908688358502166115345954993583355514286520064791277250205098090113444733634256777043223385898959699648439523685339011352711863700830280019434623862393991836743261062727371121948221613475043763777638727104213772931385664647683557331415350522981878055133494927526270623517590549146165533039205264399900710034801749485360034598594389287649816152301224705429809558105905138103387215259137206366911572558805305023098832084219598438354432378277342425846099802887682430361744585588367982063846410326930540402279814169373580763039728305629850771872102480055559742219560233828286947904649686204019386388950335737142352200775704919069177846108600235980243464764984002940598238265436541726917695470640823806044432086500781279723060285244442659034914790468557938124985846573790407177959132442376239928927853685201990979739032162731863886557957855903776463245527720691632565092828748289576862640228163952471431318270037820621227432684022958534119116751549352697567255213356115230304510780720422903463557715503881402863920140420329196743470038741465114648147772094059071426962966404767367569329259940801202798908308885446394449520888817295223907748460846703828175630205736386912436124891222086004535781486889097958509924579970151239112254902586428257529602825149828784226544285554203533073686915847588679058862112573215709287687018714910029881637147822732095544789455855053406212252671861007274575244190482245069704956701593739400501502613071442624449134524994878544647442796262806072157268550949602618715192211762496364794637840070070141795724936828152028537034475246533979189596430119963251853620518724635207334724167397814564358287467646296400123222798609058636325241920918165985061311774488474207098804690101364951865498887111906939963749931641243466312455501505510916446470609538233977370580005505793555076454728397003430690735172558186901195401934140701880151548562550087431512697040290130726159897990798032331974571063491919803488876957574016191192286610272725597257621456492184419769900096232253964875163613486104085998435000599061564644209294374206197991947917488102238871301472236651623709465649975874555608295481208817720283897289319543360725873570299117639657178895025775525764308924525104137000958431556397819619229578593995599373402735696522270595895041417029471645480915357892281245806717387129456585277594514110962539667887081288897688778742962171955408247910326112255803890571870321669386984571952069080922824742899416134125032854706440941858837413574956098748396060317484263680145679884447247499412058608784436870668945784557996260553828800821088377270075853304887681957869875803143237600135957387071167740780397240996084855592205726594217147257328483598532325617044309971023272203846527506024273823622340987936320147657566933931995879207796946491731153318938237599159312415827736674613688143835916366131909530187743683481522510302463991156728833617226405621514907237489761492327099225157165038556764556062706948693482495154882368547960499149585155958605513408843927420989941281229630958262238320605392338126225455490699819617694677567927173953661325147116069660196323434401313134204642566859186086024020017969816613916374730127615200315382362955652946454724530733134757793851504769412664251209110337042826074038636446606634426721902686603499278743929319985606239387259951746597725590971045763503645207338514439962099981005209195046485375296633108764480373707734119781467947216877003554658641801969539584325590355752247302415054495322322291652415050837396954845050930609994092021786081494069809396877398893601348733735448503294804028539434859311101672994561091016002093860389775608257540978873809080206686903058590844175496180248983209483025885077414245699259284709004634539768196980003998446309022600006359182081874347173410257660953049487426773428148605651521364259220873290784578560220704907778998600980961754973797371047723097743105888152147402932325326652992286712513061899261936481338279337749793895032232471360321911738955313111274483877403678801768861861922475630576570638480028745715937334710730674489114028845660295577006532043429866027529784282223956607085365911590239970030862084471169655958558713538722203694387513785572151532996682420844293405343074528444264954321336675936982686971357675707471562620965238740997998131337645106429264626574953670390567170480717079297751321995742472535305556922053656721044215554281985957993092166853587947106859239160539312872769874183999809562101968662298120734236842612987373673469230051154937595297365209962274994152064896038887585352084791392351490366247829329785703213358833923945778518876714612744745839548052626987878511983323877108742295536297381173572246463668897095202609552239603909665692363861684185623808627001419596944970044329971046660947954934922087173566873659997021234582670708555250782767401524750455955135763640946621144784209285692642794460493177530143836707115995248550649226642954123046010202803065545619471172794892262093631123303385259747718909339861005446432563095054202916030691075221397744219661788087796090092062448942420852675133120236500274430101943220765003695442291470206140260949026120840802255138915058471185758092603299560183630776132195715121284154348027669471806216307587210312308637461703599841368493146282007038492184300112994832926303621898417877816834172992872082747906015392822880442948018275606903809484188168128996401393104709698987311893075124821192318999362978436703892314323747215077943210141737947238269327432687834510683367752895709558306317436966713765971904549461430260289181985825382045249692707554417993896334786082928328485970616638584710521884859203675220447940321640878741560709184901009245643857744893308602969643257905406132751109830385415355454680399878699673999491756893816329900570785091589895976758391542056998630817575665314924548329999097830429352135235479182496399357861677273737806577637053388485319914705788360776475037046272139481064169155357154774745744575585848289714593881795306170453087590068298807522130437279021369166927408567407952567437806315365386311119111218103513217344519755270261786394130061208998604165428107291717235386213542885417079556507978877705131255201233807295196864614307946065041565484356456885460128686193747961332370120830249975275389408555513815827259111413566793190437620303703243117994201976492505462051390652941813254949542701751462482158787592648938479056561034284086649987677760848112196085044659061528669416540625504408529667564397443779154317547291845885730452799327447900826085254704498909681537159927223041722778345783427254989124006624812054528407018213831682272246467255318373725114368410088310179182248103412227501481858944661569988258970903832866529093412444920186487103132763684825041981491517178689461874386122235004488067388321882152738159946371936987627694814470454665968142351739179088499568417170656155359756407880855750108929313679420466733178380816643293921433259073747944358907812534657719418641340139097949894503100503799422223154712268147525431269618370548375796767984796873161613997824596211852514627533218202370174397346205406455439242500485450848405141760322475825041657325268105101301680583445782147418042535467847316730165969402688520593462512367320017846801355853034656106276193437950117520787742049460096733977429321485208659995782270971374903251841425673764425643618724874308023724584701307410953853615627030534160092420776714024064076725118503894206813718714448732151765664802519576827361662060328604767876211716661899289159945517823468692829501678211799110995620735101316153283179906907120361551242196353040877834464354237866074472618457774844706217785762759135415525786541575927759726679517796274148049412778814221196418013977719976967968579878011298364544142036926229969542771062720934488262432208353341711807430587351164659974508178645296860416304143343519629999203177129428625321108278753751219809842119465974182828227535063782116363347074161615758085228593422610759503455330057954567443539002691555132481310268117034299370859265645540603514264353034965418811249499444282343609416514341066728242152031412097702708348841987060702370748237081119261823480793598381693067595746363822565483216979335819692864843542594065383385098742895654956652708880114942616319117153166388325658904433419458600393412364097142975317379713728464852955947071576973425886469681232086753485863055556360694319442206645254132506332695842003774558130464661608724412270042982260027188121760890565174917925531833080170282271768428533118391289109043235954780857132333494219603714123946715356193728492449078705470370721642594336002656561628025309957243983755503335530882817470521323926302753691119102540793158346588195241554228288331684913345263806497278159122649768311933207138782334980074422497369950569723240611600897630644799130509507777311239736444759529836890112802974646714063695204825982713503811350438508316858715561865193728852958598366671693663202095373715080217187351424456579521799238110273120693528113092597482966401479016179937251279521702136249295301205745253695819670373742420980111827038744692430845311281552510329346037378738587870687839628839842802976988670390352325358096729282326542102080108923037158768771915866886842117862927598036657139376583274611467658179858185246566235805027680212603333968838376277682883077975282821780596085829495501868070423527863737799249066406736222366521029049654776395759280911314428019477917717436239234036797665720277646369776180341111882561383723363606087688572191590573309598485127153408249600430087728088458085149298001755894794012463437402141377264459354659858615429922026046577410168015412889498928409037816705132465786042603090242338833015884091566802844800744363514175956164234087721563101908949095027909387343296641121584427096989010195067857770150540810402748147670039266715851605831352451926483886278872977658949454128069522198961149949219030121917618963505788268929488360186016867694523171538947609262937713567798455408472812774220612651626982443100807454144228150364673405409142272494830127599166422762864741461565663874130047379992129974496397844875795336607101107389659126729529328711025999711051613736565469450248913137729283853563855635985897962723564804921856869463416542903373289292119958708677328466414060478546726785948419845883831711043666264897870467852636193209793233769199211724649386851313244452545289054849019191899934728815236007785888554327069039557001983400289947924455208113382158745661486898518371693497982407960709181877052305080797591654308116777452390771676494341922370734542092492575820811641568734888823112346704532432163062617708248725301201385456768753874655438554062007554096257892719901318195183140814214233999685699588785170805358778935049838196459505487955012535150950791846690779888245229224875923048897381578834980138476060121716336392577267909118200106164361786281284882517860930829749324925362913362391619594000112377226445964204636186530661405361207643885387394252172446411402483679323758521065490143828349125808596471136348279682840389439236177615857243152922314004084830067932166943021955029441334909351053545013070755529322690947367891070576952926068786621109616127253218880316781050074832759626823346978385401347867257796343908597182834479804112225376706626592251722660612424283497435037904830005330757148491721852648321042644804183551879327177827358173771855569492034895662094085666209486616941835466082496777522396901987154270870348337991628461557516278752573222662035625262818090908264442674624675926091930140671254032811860673300339278400280514216455948284394836750718957339449449513395513009553043058602935226347878437663670626307122937783845185128660851006738881853352896745782779045544859557593542260032537516153842265245527777545725649952916138160813312901032197357368968745944655053103500811627656719083541631936920244399005260805167385715637600893976600164146950000860803412187191769245930471741235364409980107727459142949811007897404061977036746639838010522116337956009893659894045729803138899262415679417112595925829866425857951915668625577625055732897868816127914594969565694758899059681972878742008185641094047958468892203704266511225381996259732097280277432000117175237193445792580254550842324927071805415085877783530093584508001333901476915139243015168796814520389971975037120258668255680492537190417755907173062600996811674317758446364158648325023540487244980122661577016183180685219059879817189539764722905855254412885637363433496429625913416834168302438093038535130189070178700757814215644739446291381944532074148500920498348037129910480164212396083623738294607090232637509584606811231419416326916998489820193732989750517270176513846587914959582707507148179857887230381806657473557911691499556108155661605215431031212480496835290742345354897448747040369262067478607574048568017358680280884403581411603650036309610485281036675914473162751627247485006964904914510004275116591047927014050935668249617267263069113990059080003322182359028036248836581509138986340950991719168780074443769657275277872133877255678584294312063172690116063769175022095924190271997707902861015104409793549745753740079671844256883823556106111694558448731517841132936994353167754340186042734968546243416468537073465893042612181628652463889602565209534150785274777435303644953039510328830182901042036541401726797730243746950933173576082978992072000936402165053327722896861949174205157804948015846210087367784553569199047579986074189095030824349689286564640092779063636264156828384757174958678860383394294978063738642143014082720201266321245390198785008377716537390014616382553430269196006817244072888552799111180640873789550975270863916046378339159237391263337081447791257447706665773109040183421415481572518303362538487587352068205720042259182242463165474672661008091655089340175818708723377706191630961713617492117108330478580198678396698182554160918183044793838281876308009073503164580289056569082795243609157981120568383332939711343116794262879423984460472734545489454945847263870555309679088748635770402844149886724521206385469092481916033108932035605554073799983438069464041055419443172944152622634483196689844570200724251722643632458549697171455579278213499006620744956309425912239506920311691383966708089459921645890697291023741070568283259997556077478844949247853381273693037692750474318791570959605422818997451270713604811986477315045678173990060506300822798701739113049899506466035532068007355789104055133306844183511988586766119692310194746999011537686181233533206615188139367185146575130947621229038362729240410158512973577812601036950822533574656699558170198503616521568618293602275140739204363787738743012394055748000069836173005811303937170860265868595235183962868919088767064253838126249362725964554490862914902839211059727223238353226173019111682461690183628986854409174929370054910004385351172979485797691150254888308770357987962212591692612021302539023533162001619266478153130972275989857523430806364300981995075612579823116940327703247862563529557387518271811537477874804011524143376255266698278677850197244698259925187439444753093682347880012687445416902282056107859436266707422449608855691117555525534830107140253358629767913676754038574806695632437211488292485961291082170349425447377679967569732713890075429313910270903952051887545337402952586556266679430662522065327658880731063252115366635406551419231376703748670283457089345034372218930341154635024979555252344119632986781755229058559599290039375501667116960280754017065824282246126240244662598944857034919402590130778932643901964350731567813765338724491622792364761757626071025302285738460290998794806045462311815486982604150062801772209605730135910254475740123115551243358219984920685791002864915536942570532883147472024430692084069744919552996221935337676901193677170203082449220399587894216602043255300809284255813573042598316907289631560302124152852839858673093459300945030181856348478688884089471030455016625560020226262683828956872580264561640055907932760553096290303702529759635746357236896714647528720246134354286036997281045115453005104282004250852131934950145203748101198880808298000614949942636902182386038716727980508063619364607455077209627277043100774854507913293987402767696108136445613151857633892735316136070477632444496213596583813143726955930479165090915725737278074629446005150495348556545337598119307614709984697440139095092725989374467260738210144078563425309773833406041223010289306534355651178122124543852029921411308863204039318510791415362356650914521651304632322474387541108614225889379489701681005769396171542132389778885176208908178675771656611679404563568265859531288791519024273207752314759512013396777600390090224000144268388431882630511074203250910899824991653405595279385301353752207389764334443278241108259080274783911331112043423149887486394452609203200716671701780273252649458137809441610573344768508519959653522782723306226798767941956201212462811991536395408052993620580045754579427577619627762787475011240878070953575755482437970695686700970459279048534466845580272533372846847513920545862239921749042523446075802289353325183413846391947150376254608022759263886165473930158084789286646938721629762265340434261771167431065265222373911775392901304551403636315571289601075291245606419994967655737790758814271731239889290406700023261272157166906063214927194928907202779747716831948708048899898765838882443456322889641881342713250432373264954667710928167847082089115238247447221518234249346214375331595362172290685535725161744089941237372421176910778903077117856202668585123646975616852241585335600137926631019699517431313592950545004252636547225512740440727885621736495608864422911497059928202917151770086049785459489856560374766116873873992123273327310792869764561890190031878486515097151297890020152170485330511867032116794185778025178962365820722033408683549757711597734556374890347942772352773215967358634017778248639962839786597451336890082080525167915079260869049185940118955852170182445126448813535054219011542266749913395583726129854113525199994509144057413648847314967581913555047995330233226995670380583119577485952738593851680564106159660654663527778693576075022520491264666909641949188321896756433172331879812971896367054274163408106922409255741879107992449231163712300317688732888274858297896000065098401553964523286155300551263464402947931173814952127923615208061751671559530299359947170674525175687052899158110652447565313363170147767337101229703833833786114017335699727590210276882814136062258008570958237573123250132161955329466830645803610456862260328695693209996686754950341290689311480032004380295570986926949603558414969975343322913864447151539628999928936054240934584714553201261122750661462123081833816394200471779672519670839784477782508771524230844231910145762520874609347962785332230237631787233259440502907350872371184600158295720828255019604465011611485610543639296755010129763775891545735477406288058908568575086830778658853291906946786671719250354263729280291333078597522709046445754498014796944145384912792434189220231904834702007486865940071758434738569098260569270719553001451685356910893142742286287992542866469618564406792675003260888976314705928142701099769268313347963396035719652087115480185697232703231991445630714321792785621936805629943140652973899784280032099689967252709963891025991108394338366310691747180158865913637935912230470453892427692975689428218584267988829495729736882165150569620904378643041575465194659361606927891384239422792555675102722152967956587986107981078622933436177645072985871018725234348958600267098924110162400838809265051943769813566939914040900312330830080566297925801902330554519352429016825899483779013025266712596076742314768695528498203290906500666990705021398025416185404278624122205509877488760923291356367639407271688090822031267947640590914315769737092840450592681991581607166284779483344703402687981430319924992969253999604052775797612684246086956587283421100599443274874824567304289682215429521600930525315135428450650697120201140863977375130086896820661358095765670454803522197870491943823603755244263694369022325891811392184289312521484882319037411538100667160345961881935070488951397297316789622650199275112451375116085860198268822796345835538397989592053404916213594135668028080655634982526310034288329904103469763743243292682019132136437174423947334940961702927647876287837249292983318250322127468625690688003910617403441835939206357656162019091332755115788799957888443731713669083700423422342772307218878815715854593753216795592795183233574413892136036418474398950031948374508797946967148289377491492103195539860405627647339412042828899422218834131620065733694335321058529528800181558480166635129855615662492664679060088971896239805674229231940979089650693414610283198195802406088487211704654214324338628741658017946626547392585963392843301908105835677552934198735969615704085439653253870315661787563576468984032595935228288077832948533967776675163054381987915149559934020798326621431601139783083764442242757662698592680422086570722378768496047196522013417521387674433023042863854005760804910510891412254848338381548822240248629676259706009750678527836212266163940379599125186972636684675107972607188309024359246677968616093439561255677951863986598827637848325973558267740733100441778132310086069710366018225699349879927220862586484974980130196531155345300083901107802677903933052934366933587756695275951249391256961774838398516420723059010494265328109875281568541004774267939150081058958950532023811831402364119467159866523834275546989981649506179181600419320641893914272044915074993934284698802238022453304406059006812989770024015328536628447860606478275253541343919363662614290350705449237345781830775594596738006256973779004234991544942819629101211097142879931140592717005958272367631520193034580293635338952844373551985146410726707930084368317999034259049267575776799308557897818599025437101292500810410159445621224596135446997652242794242368849887924135923717858352074175881999005439323461753342333129879459793905684483267901595491694595449793887216724949229500176041102222426262521358183228467818938722207042609183524697306922585651278910969475840817869195613860980171207425509477117851099645717407758065272067425338444165087351118675375050532908829555703889702524688738847219446183068965693626570642040031566093624088363354023945266266753028218384814899997210270665810520463811889598619048610675821757869643713086895466133634949968366423645020959137082453068150402820580603000901371088505194250811445869774772866695775880944557303086400016237685989669070896615092902613452337424965940336124901166313647703299557335605226935812215393725412896139352087886550749781584344668215334632837259548528550943654880924077332600338497127362532402597253524488490767643717644411528009362658239016958973713953234861906197798441301308744125834048170181027764976424098373940678017253845834702816113820145425723034011134469249945815691548034147641408945719571463286178004088329663470150810280160113741246312554927790968202283929301451574656699238618386575247476104993778869612621306451074316916597854180196526809842822900661639113470924555492631439943192774688414022784336598930392940605551041414525682799872407041864209971191127674062136153783120433555820544951350899556830585093996101223812945726318459975187621055611119386497853184600864802317802074605195553040342141773481903727217361518340938187407439718644569931030309434098085613667745718896967808767526808229990028006407434727602141324860223735518943963198849993179711302874661401252382360343133954957925617515016042125661790294227229361979923134580792408603728146305804869602086271693219767776796436551039268380526304341300743724424938279432452193575259182965624801152122417328993365162418905840808771809989707351574790980165100982806865749867659751141538147558363638655975433980628005607543828721522213061669125308654620983307417098482373849738622177680724127064176534984673779308448568966277544285727723713765657612354788438483706654067136260248483017362185126511070294877120891950093285585326336573208357560102474350935276220537599403880499510767425017842754392217368503394829969428616890625078734405921956450566004469131767100009403448125556661865766331741353878509512529618990730068973778752376059542273949935688432824246497450151163920870612117268935679895109070566106281991055221904313541764980993166289090383071531478128898790172518487184880574849456585103282302917172904148776003522409205923586223669044261231235702183841378969180442206297279410738264405256041499746462881268701369446334244777923306810261374495694061434547071168340706563323242805494403552856434229594016376800989965349109345060194429894343511617941256882386892938025337901838418192272406172725485628456563166717571087245240739797119175803288504860855512919053142679764141228416009898464094462829200384067753511770222317162824801438306222599016763579645653914324535492871348182588255619413938484148010926903368169937966887743682097980561014202972280436304295531629838673984009642821811301884082214079623343278260003613405560727469250165935236807238800373539395597397164408779853251433504045136258619263088145281407596999798914545816655400929330023336185821258518012101264882192087545474818271533747918824711432608356529228678248020129707177443631835600107209709311358029822402971705674464083037044878194804467602290475326179236255252201586775128187028416672385414775239305783763265876478738662391081499055738497246233857337548224040298170570161530509372022497552851960233706228113487267792494401964460283914626200327390796745299341736801702813324771478111324789196380927406384539965047474744477672827742099219613370163623047511511171555900367185298588126281155757023049264592777136849795847104777601014746489328359728751721003859721500802625511132731644104145021365667571593563725068522404936189421916883643485166022846094299149829925161146457711268390562646398826813982290658094790719058821705989810758122403323883571300895405360977749543530629716082817112763758026560895026713292497056603180096804051109771084126804199057445082410306125584376863332856193362055913277214903329385073229790502077675809105654399620489140488887525777391830292014108664553909212638844862723821555022180411189603721857408160567274637641566101731158840669678477824422772139281116116219405284130827240436009281557882751078028163516267618130770044574064729705355946030931495841894897265500908978555756347116919430947848512605179180801473617612904576238920395653356653429628127617328031385789776439778852613258446762946866095949353051336941997720068952729999293947861324998174559638949956700383308786901871910985993030316101888801527787848212955227949922973382120632444377448986172561033701350794456084929178659981131784415393533843997891548990215142333120685331427715041750242247724011513741667639143271820297587517700715886701049389383622468780952072261652152573248885066513158689517744440232092053869109371576170989758739963671612651142555407165572945460784821574487999124389996032868230037658173098086782925693303583072335285975097597492931907566166886576355482171007567119362832343317604492551133893379918093315228226428207056713907449022680739942131954855321141766244867156352885541839958456922310286721125352820650356304407489899188383220517407183188526452843077900116590378225172104013050543824930312983357524171402231903301910482947298983917462760084669335620106484297128692797998461230042767961989908776612467666042810561000169036649992436846176386902785444813042127318908200362970883755012696539147978505668808336657641743590527647881861948014901962513787912742436950124956137115997468737366265289637422916619065028241228470567727807227868496497592448445751468741899586068503852326286601863004424259485876972275095906999869329216921261845429695317542596648638770191356722432364552179316442534495945574168057393447534573035875632918192621068195466386439350863726995960749093793777048601221037300136026009259901932125231170493877676551914297633965927092271429459551429048644146249111743924567837322865982973180942727916380339732194305482792719087473091016054923617750794470768089678682845548156258537710908025048941327288062003875890942972126343138750214038913495953728173835283595376500126551491599490410510774262884314975918887415100685265170583283358103058274602625819191029192298167700705448595219041926302981909157077025688050914867511454415218041160836395139396187342370442926703201038992424531764575725460607226841594141146678687960144835403981461210885501847147124808063830535647515391625959526954915390042630195093230077548323354434941432394756213816763344298716013954611416093307796620893282541354882440551328371351720766795361359556669045523145219974872992206030964709576856919998930251329834247972805232075967026583406459092390242122176356272979755082540952498847969104119440606782347113441895359356659483955179685096774350940624475015759222344355757426602273248275803134082414287476403311802590776637168590943434193753302651538048926337787030797240029722185819527676638954034493977147280196437346862538068353927237720828472540475189457787314232180811618064035823671068678824969580515673200238694657396708262277340610050148277817025766765168672142049782132338426155793099411202907616903624018693242849451350981900257870090563390818413846963687910415175954901359698386240056155118068129943202161887033937383760404983731458737965367430807929919718106833811410199347045909498275750934421062828423793045025717616472034919133918033260057919654793173764500698044151146557788820043160146396559337443055569930895900246311828864366223998697823599261597642792250849290618307116960059486978838043430377326764023005748997697794084648201282695060943361009561125765667718537906681668175101601929564086462475933815915657229993014158260772212065461269050215274570694076597512849271977038115189612819747040690873751042100930769901116313833957737151683750098663222762393643987905732726313892717707218516877052653932240224685624635372438830142818892198898788731147122970816965869095680455029956622993785389068771772198323444279768140745802103002667361362240747105223922470976876958169209437558021441102711632148383428329365065484844493120951311143838464660299184005000641640866460820934609002409908375667695270162111756647889896950183734523601377490290112180460292238028960516900998557132423553313031094936754549667451400769023218147490308193078481202146708163374862165498273708595206132242735499337002096816294740387562127106010903189510488259188083696458526035273501576749075997553505058052598063518167078722197084703077517613342845157827093747260802349906532019821444590077704123069754369108750301438427785726788955869624651877829370662649347014595542217936520641981907782225207311211613075585459230203155096501381744021677403996559214941690033004076760778282876954924045038292829431132271601651460849688758587777503598115168273729175826900822193729612609148105740729543866725524332378453921967900093808310504887953275807923203927215721093689169067889659491614142225191341554393845591051131854581644805658697052728937587737048348717391356194684215470957117622697000810631972167282194822799813598580157709848829014519368347990254462600378556957907294661232509609554490579599977638688051906175611632728559821127973737734193866665092647579280378870874502417794416626477447236856535067489283937780357854503685032421115836045715071923412615981802794518969637381384916034672284052283446187295780136648611313766606547053128378697480569922563422554881468052722040755385736680817447271399476624408053177270372870351655676497581834837176121099634071225896407237983375000930759561874206124808799125671390658561217844425343392061278881058773169563938860274211877055399158352663315817407260901045939016871035612892428310604497952926088107135712876468338048241796198297653006470284482446278341032532467978053931614987130143508798063820131895574628862346031396590336829230457949906350075374368672487044005211684588740585148225644184602830087641300017376634594751742502925760092823981615417230554423229671180062172762731039257653676709270253842710110989426403440053482991544508815747082756244277212704940746212417577467822224871474602076297056676320724949839003848394300337105313685046566930263861704755865200657467619638045672092929572186774843222627386508451837065669314440131854245467812425884747266762895212508574125267229818897656564132448126915237670591798182947013464440016112139252616438418424250305755408996895136907038627945722997985911698872903443757290026388537001002672640182565124970345522950215436853698158793442054644289058914593325159279166574167188987381624665163964367557832916798517911820407998803047652488927166235208277224957720840603419927499273589281434789138012377841801568993910171420459538194187252857954836217121583637556082508469070812523536418445289710549832987384069997465486531676943227690135470021892136794617148409810332815144590514718187693404696766693972968800427542329241400396729234965364837456977772426613916017368840521211346844032064590040253154580054637531084519064681150124231653119962570792135272917000139114194048208285192713717448595441105673332315022951084099486852992110514503246177736052125878505361441683686776250778277959650679444485865303241239842609876690582067008118451075353755187731887030945256806701285947844902670323682031314186128811067151292822324266795894545757879836792488918900450228868219537787893752888981497779255310346555173463849252321377886853577472957852765472499275271198963772093695445411038196493573039717836810439452356316403025455196929063850783559998406839545692588064786586860405775061598804785834999108124493210605965397981282952457305392462708057622597262710468693407300724378202510906617903062558395644204772555996327247672331345442006345403149609904454443331460550469117606384406834566929964086843558610595606474889665478489135074624561477108476541113634900674378422526411336589616652513350591600782276079362371380818936280455442145120730168401232817214712455584240754558861156741701396045920920657341384034818846156473157260626656194070422495337978380168050984338621392497832509300738159966646321888604439530459045450168654770828387141886270824866094249937459556168569185741540039899067445592624040785393275933236459118499204701754108372237269196536194976016331331039988075547949262446478950088874732127477525583020849655212270509740143416549718495795883054619513422249646299504317547446103060431036566861904201780987402608720027918413474882344239355997844536756256684489669171158716252434974520932954350988319791492013633576893004382823697973180988626056554016047629802773712644649123036800063912809814887661858315072147055080708835587274553458122639386706676681145197719953468112802491905524217734657463478754663404244730723614226588428719603614075256361997966775685039209057874747835153347267347082103280051694892512761830690208301338912759011672129782776109632179156816877985837920782888053117525867514573032617574344331621813245119531077265411179701811173769852685434471918682694627140902007131563675040354501049302866668907319487116155033542084408528720303624833136131936683853985603277616821280791894801401416712145068630960498347138524555339191959633045411147124931609092955604432224949143646349596207930385838279095629067594184114398258010067402007910285422055292861686311626197669061700675772871292907021239698595991156948186609290832981075494399039243077242853799867133751058240533407862659111397178837454722997022659037182501164559375035069991072784021231611917832541699056342356880811283757781898009347481493856770560653310831932905005113489736278561492365366232328839407534036120579143841584967848159985993100431935322968959925578173991627150007240366523855470819698037864503282584946596218112789851305507942097810807933714063635442161658768139003525306546129361995123842534710452285589789043556852125165220969996962690103822983504271781827894215439383184078010364463275344892365332587643645170966626332192106732035124189149227770930169855229127058072468912365322202006551027256833414794154192253579450075159434727691426831192427471159454235866218747316085609938138746675663863651940611304568709539857938308756185712955871552776749048412563549189839189320009889187174063282268147330286482436443798635857984008466296077051870223286465129807494938927431890924239884760871821612460195589346930421902980742086480256514538495434275255451832036850506748811930176244228779986368125870205157516605768383150783097667964695927342332373152256512907827279611021209265442032818089823019116764089383579725758456820569021868233787520613558888988235983297285198837644496641919829685804753508131681667418487646055382596539872052615560472018412032183713525332890102591194198937091761688350163345035750488949255348690387035268598293013564203996845608082363052386755749584681543875827049297943649556682285365851179172953998326401360687683266761239532519490028029970163937620233662511269744371608027213419192743453951923237449482233374053493968664668923389541669644473208403574851847486235597280695790927672691604860550892308178207767052215012863744505700887833005080825731417670967925557458795417628408264534477781682901270844493647339314366099467070518057726250989938789710426792924427982615016927106866423296943245265713937639230243798673080534970141719266687284452254293267055886711880702103540029388464464354137397356708605402369520671126928626533059710318785637291574332407598652434844788892944265622467385900477682432989957086420373670952549386308875427605513253058780261933536938428206694382400653170043875796259223798051311338783214845124923488276070885941746330363977514217853639628951995391371323483070948807315049311904360167666044945666884289278910339056450163309250701246522232507384153853412947950093591166359306770231602788080423180427335768774689644770869064672749080762120791089631425795140321000285287637756356381134044642607386343738052488222297453389573515857173884523273127124232971109221537725198319797356864855506476967178085701036983143579875722683204857154701646900697799135674844533810899941130093025758786181947748102421213636296903620575688631087894404173628712076216362176052828248840340094610064515561535360980029401863745889778458961512964017399256145805528099149953240626475394287521714522858293785252997502913361710541608209138547144969411643999084790806456869841156123444824469153215854413218164592162328108580373333990217092946789728969899434997483094998123355949395763639431144528610697733783068507424674152771677676195005301666744518682119998030559569442347987191309600769905807226607535898516079790790705378536127649673492304487713536438866232361022556163227297555066568370238131431682664188296727968830444327220879959284832522872105960771639273979567815444481451183132485159935303616495344839524146581766976505358725121808446120167887364584562045639401769879613052103403158051357921227653986292212752109287566476540415956140314009313399692038659086279200913560302982633611906907857012619245461642629423099360431153608265542079845400777713480074057307112379071075230726566634275989861147496345741707413150151839163075170686729600946314560431367892479649337350460898973543107667754524895282341712356198111908467607095914174689757436575948419706197134684937041388515888342952425673642922489439932237913380881525897123955013010722101435412786481631072378009459983023554949156262723356790888393916039106479117808281437750928384472199081486739692372450086860862301482702669157698055476243024933735708255481683134074398823039839361327848082431337943931373909251226990463591313222195823487785321074757230752658735866286809678925204670831084669621567779269574658196302135033022380329260607820316165934105570382743508772399060496166297942285419992060413081332781615772497815802963866794223278562132817724642595913349973288640742907820122113585160704585074026767907704244202420574958429536553195336622189157614145260287549948913724062597797669275149749090946164292598189680209361219052546585537491214510944963853220702335822692527466145890791350758438944995345199621899061675053322025639759764610749651202094642075526002801245054589659931124328379052849118363139652454142806511561959858052243774371921912975580407676418496178031892249730013844259429183339200098784528194332972958281262582239551332853463178540164388234441361674567957063773358723357367482005921129229736518598592812804448309895635989070101238888546895904570141830937566948479359795724983527861865700221958248306794044378471227633227774817071694300134236469743999977916648738746045224926369730958443138130063859050935539566651326319692700142529922041945675927441619454470908563896729247313486198502856671946919728694539415723649007682407344531504265102696605632820378665425895190395581589821953467145326184446961667426461812133822568578030880881323131599084077838336472455630586699310797167562833657663036789568350154493958017063790111136585041174889872250292168342278017329398800701715109149833599853302011829691451833056008795755234290900643866743134105625934261731749963232884645082053992429442088353743416686455360029830611567931977604528057283153358121901463893932202793188175741418066092905683843014556903890499177902158265289098473182591953759173428370268752683421939446985184637159398833741131493201005552218921423775438665386311289688228825554566942375736490287533492782716119290699762967150001862027781022049476880983379744404784916806476681620636720079862697707249501962972911357157035776086046185588677343260993431480974640826582031011878601289226757402998889627210776199221900913392353104281204010003354943227205033068685102242580377245859057883014800428243482960653183835704577918367749177217697097395634571330318932639946230927719588435560139675054895577732891408506298337530080901700172780137488210224573143028718274383686172774923631159230700890346588022478081620466634583003537791192983703527768331996922576465455603413169213635356349056871550711255496457876759952499922544361480497950252270518187090302718498144769098416788755455828722027972767456796693193127671918688897816479638662948223833773447112202959820033553409721157753047880842672890049375383580064487268298197956016505255260978818973894623275775864064073592446884492502071242674541809988388070743213674169459642752833482534836344169502544937553167153295573851881209564143062395665018635619160704467695778599386021608338746278431822508106532832502095582198265044468595549772492944276839024864484116968168862241781048585131854215863836228579776471939483102674128516012862490008691904576190478719820675716070115547286788785298301011160273192100003515373233305656698646564854242470295988314234166875360270149532743552845632330038402772661136487409131111268227060790784144450014192260125980752171109822548918032104542458050182226555500082319370338250380511487118705598114565360064210595233676884301807181186907521433785912628633610787422367364282356648131491047800269355997110554016610240863145870163131432914614860130836397409957948193304026971647640867325946486992670007011605921641382762860287060267242183486131497192981281452450223195278574089278699084429633933299319393071095349927303459940064427134726362799621265376559976165355599136360537512086867798693620767052835645089603528067320915051524173978471150333784781477959427333894415891140716325481969799764496683879132803005575993215780565493945334620975796775095331547816462276471666823810123869019979627917655663575051559047270906294869326263486381166325059552449351169832234669186912735960639172516410989918160157189024069598779056158658796404101042851699948561593743635052065075704435747818939787677152445037282603079113322080342119453229967095062881321213652292540453284664392147886086519253346869086903799213593576924594452921276782461029116217075700073083550663393214970718792383433558692858248528915455803435897312685473752669244370631865640246576535460859303747903323883927237056071024451476789546546143381805622304275205115418493783913929767844244520864799366313598148229925790680209627849316896327295223224481475955034972713670103832211516758811583979046935673996102779411047022753563740813029906721752865752389079413577030098839367315526853485116325572815520673228132809820300160839136521416160493732440273120266611339149489992949012704653713951093038380666521410591264817878331389447876021628747418443568263053188818726315980204237907828537794936121574411953941459483907622574819505764558097619802669185856266714482969416504525889505279787307470988792629410161845925149791746594325635455256744938631695192166737435143968143778677336928032023897428497000802581972841595614601860057352816842610366190495633392604352944475668672457573016919981028702060830244537393402791321085595915799047158293414167297984925642524381314090706554932158942248988397136045599343347117470611101920999398103597130731730558895198674846394793093941149124231018534401776303060139894720883694344768823921890299375212232091185536410481295730447228550588027555331413532743237048902305584710676649689771228156388272799922102712434730120622648998125603846743102828786467619851500835680397532436697785475969969405592300184784613006968961720883382140340469364320716836259054748637866325767857381619693018504497738003382769426292476506618209488845188143026035969696610505380509412073344574489026143701665327087442052162004023935093600947573052509109006078418122861804766570062893035617887333438184619339889942970247645645874448976373881561985494260612946187453718928500562934507371803160559018436423005472127828424287150092239935380954723063138788388037433998796862281158867117226627789020862882283117887807957195457885308359294406266157700521246912033080858484167468418307240945545011327600784849675623246572955701148817085235842707844983076307998920378346853699487284988064676461849559889775074725018529750639994223162603592947884835725896623417433740656685714051250264286322373090741939142468738655059576221233464441524894825874320769072856758928005623552252018280773791399111212558175183664315421464347621774244686999654211050406955611269148996604589358556511828879948883944888225016775228178760376397758885087019148944458446232256398445738549123069385959247298675556751733552243471149653325920345655818265875349658931913848372822404383707343143232509233327432312022073760370083115439411801885336246771353591984966502428781389834695726318397942864971709196219516974986910201919487153077167524401748746762326086272680482155094334322933569226847803685276440597762946294484958103756600061217059892233756163971050500326950283392857935612427884704710348049385399671007332431355946174033977293433060231221400061072063835312124076407367173476380138965630029708526789627330650241848143470199928148146704389366997396809975936133918958411271284496734869395165788237911338709611470616249902755057200661137680618190129524947187879740771330549209228769386114985446562333541392661374362656526152737780775856974811688147710647581729022702663105592127638248529869342888986884408858018190670749534246854095224852035504256649821451523766456753571718958648847078230010901615308313374268137134484162548586307463282831655562882595065857361152244418031517876832776655129017549197329479646700726711692532905567401117699758598021705251732390900802654409307580254749165076858553096582143053549063395782017656540924674379029824731622568839386925969728255081755656137815244654672651810373035981296827871934641543887139406958190462700848036001703181713029949326613725268667958613848070830169509586101043673127927157278525180201610573981885556993311120195273407863984960224407489152305069167305374231272369049386771578097573540339841920599724116076851671271223917410840133739530912395596586096943862098833953990405486219954344676343470184490380755613017304180648097649100606001443559142157832276482547718166040661913350001060211050944437530293420400323156767290400468707570023973811602836242694506182497189999828135719479105995044204455245607974609955710829689187144841727746716090314866914525396628924482431018748078545612733334541262228613766484069265450073205035599797165841380771153537140333055974064833793253093074168834548033547729504513332879324775251976113770522025045525502824888924912809003221290490106368286392085128980991919659636204105326296597440977992421618441643209219175403539092433928848501005506555851612747872097629771946921219341818624960425011411377588168870942407364741554167475446806047703446521367172099472265208930577782498425314630124110112012947221122465220501820895037431736007540465145623044864206666931799208515745999584631137467255070441919699082036172035276721622543283478583195647847277807422053321156078807420037827527380600906272591519740296859399802782622976648460776626338066185945170309289586489180820073368220776263412263928731836556536024396077167139582790410378933113232527320336335042125620666168165658462331582097156908913336859996030981414641504800154600273676435537428424873903851762716745311293338104762749994536895463807916724009569740978342898162374025148164861753025912874283707545004975127547273384636001611035619805122785479149396970718994968142048579160100912559517701523637236292081141028164493315136684321116048451642331608424104637906361236699441949817140410661683853559935269069289684344606417524051804890555510167252721560085035266680229166344657185745324680273192145270802617243710809850133220615141068860030393240507035194374550909108084531008570372997283740813871427741510123771407751027481659722170415014642828221847909353763103113308024999244861632389975437976226810021559801208886845826467666101464993986316801426696548145744713806301675185518282671239885226409159789775308619330083250820499019199396787248747735434732428717670188803092904396019220666246940060253065001877759291527688691048648212495640988779100513442523507575452205513171996286789613389087966061438282642644220627371013445301457847905991390084124616326288504805762987277506814003675464471583979126383804004211613111934259620436728956996144196272068629682976687868465885499476046403114901997630034314838415142124836497074775249011403505910760038287629406110709065925884056404411548021076409091313631300026775511711547945919319310430023876265977510224139648265282671313222372798994158118844726441132065252042935998701888502726242710529954272300781200869779041128519675885963287272770585493934847292777913283987465646182900688666685389480197850730012462790982457136527834008378181305836756954482032988871870868361324975381147866355964124549169998103319523860383492492155971569293437137905731152945503268620334339721166511078415648473229505547185109561560926397616322794969774118077046577751228689323732564825145198664262564860142245500497679012625970813179299670551527483056920900616036011921375643065785435474475223049938841773315128540273590259566221510878017066789739325773335243945145662566863695289544285562113026508060322792640326948307850706903667199370200989723255322984525704713455565671675528026283283697355932667754942231263431139212673403442883553992351917400944197882566441015498170854468206879645325094895579412137726467917401455340064302480017365825999992288063310836399245525728464880250891414877010887797017170681877813456020288689202300516524573854795323910930087743982845821243452259897133045634193299249904662668293961179527874784280842296923637889643480111681569834335241903302301804636705840558056179887995321146662670850141800990957189019446981576213504535193912004349318564547265863533590463452340195295564233577090196747908262509114823100388107604470594200204452705336012995031994273689106285354237519254082073857956076755444337809089164035192976049823066323674466586264190869494967702131472869970035377112398313071487560664278101434919649848331084763709086876352250773127885585975921843193850156044585997572876292385639219894067270141091474663369044243036092035419351287269045333848919045545328921950937841825299841885409155196267988434035081584386437159543972082840833790862650225956990819191791910334057165693976712983960258190132846146724317163941221903514761566020756230076256036259013917517979183283696648297360845952153088294956041874060737825801174278947520131318138317320871320486529133458589671500254014073323142134346395548499753189640235649526252423236737626269163944785632805298170722586825930521793597444808966680419651522153987526581479756398076395473496906294965877585245447690837452207469882625810414759426125469903800334046998367192086924272445804017709915508112577573307790118180817772485738801971492966710750662595943193636649861248118141417915078159525663492775128780252845153765270217088394404206136525860588607116548455389404822692492253501896728264977419855214819529283384312201077375440425645628650057467518721209639853350802676990495750665008021467401650728790681671800087196240159611097509839602993490639998034436762201517840270985989277090882632636178302789906141903883439912665847039055360432575389243409789893412273599116070090248687480160704375368954715498500920489904602340422381002751982825159654153217351803021394319159123426259058043463130134268194404408956602582675220484103156768892247486407423105110033399490025734036411660308567036548059126645903673464149926175776767753606157076245777652942366068040870558354598565118699566969011247395806558654268705186386223361457034904445084103470363590485103377697584359721043068485578396899134648782825006076481686322915036997796551335562385723815809879972230656362978291129603854667452206827650288507605661782117172024315126192952907020714034931204162757373025425520031180400906988918801896427205043456977370068754264726548665261733906916758176296116255451506020110474056568031058531020776427342448250531448616705308857286360767580247956194574466662290708135745037822695047601170595868125549872512360934086767579340599313433150021770402761931785566091832967521086212389869379710731906213540266667827491615794766357656766842806135916382255430227528477604556891918030729418372273648392559199828592715717435676570093553647629412149895249006234691436089423646057506500830111074703772074114182008061261965219043697751939951847820090733675228581915570061122717902571044339926145552655718722333126684610610985887381427880143826539903681595329751662254017268435000359127099740588989074422025962818809316034453645944404049912239433837060880252965285285662749262358805860406626976827171885675469523335342183859454478947934863154332688227481043132936710245767073380411256141780683543648363852841618382033295091704930220145394022762386068999490294128144062576614253067706100571055083454622908477915175187049391404925916580154240196952322863386493343118416047691106191529086359611993568789409529791420881483103374794816427608453673287460791470345294512569035629423807204034180461909435598601653717430143686940110994080521698982001688089906113458564368736619072229823757241037066245199549654316815455741516075389107828020470246528969693541998188420690417167710569223105897291171668423785884774206649716163706374418765857089291841789416742849560900880747615527495167156934104399512822026732006897015867882438152889967519124527486020320082115067978960116955310904193469444908384015402114731263726732598468589458659501038450539104511082814583046535287430613781731224877148760444241286324561294828754965517621202656965885375606822864085261454332565267293719213886537960500046602769534041101868580109705467596371713474762628533056367979534900769460509409108028244517207864526968828474267607034203328734536232516706148573537652993145773545564812017780225985395548635596024588062475572617645288013596873737547468043961408110378260698284390406145322119464200205217165817508235466302636725055077192671180828088262777077086564815571480271180842525575053989857019140382550511515107097303591870745443681309970236237784398747666137068550489438011676586046449334292817659547983839243783186238744827843569469804378503344145282603319614161663601766781974332243669915166675013586405270094583896468076961991490449466290916287606744872865387015816405428976916825915405711543714865801871125336050656566474209372476257516943975843310462256026919912785609504059374381438682765439246543890214145068459820958729820282247383371363998776969394843215465532676118826847928917734357208456771654246770639413283709581013975506707765389818361415689134560821578265061415357596764648619930988461416532905047232434593572354135462238582996766156500124488980293983803622126550491710868630882303584809603458907429317528933296039958209712394112783712700625315992883962705833395046984742861888674794511622227029217951534521574594830555903003810820580573153313944462874725815909167908648145449282400897524059518038210304405015056062172800254087080126247567391586156688109740458927833985173900435457817926597039740991935210982958358941405246442902091116190690675114019180956894150323993859864717745790212710545701218845547932260197636973628804590687932513055188730686614146710768527219793651388459359747416791700633568785512380867270225114901432072722576286841778368855609325821099348280728377027189401193258519303243704451659718883374285635364659350649269118156626998960046047027581199078541786784779213150417653472124109918426066272718845018375597778035328977809621688395245913664275256836982425139448212708809545173620313169579917781074164774293111319170374363717545446480077860960403587366548515540319763859112370940525690982045440587241376428308447642969689712448908796108761697862587478461597574579224545818984455277144758087774606242460182597356089484158606023749635680875779663967230562251655715230912930712609134223174776297657028194505233016549659958643776359707231924486251896020867070549833682743634831824368237199678313240425849303479563736325504979634670002670485316391551558625718762067029628326660674750174528187864341826122294013898150622696250525327349084865808031570309542489512057641597202283017918288494949067278273379096826442341482677425874532230827407862555103563491238683784335177129705975857252059945260912994443085714766466669191031732716184909506866284215222974847305481583779925695742235997784844916391707917801076658879849066627539417594861082214448969908097012984140248335640838538585228374912250433803274084857971410067845006513211977658618107163351002836679045222717534118286454351209058050946314880218704159340524620729102004371965096492126214318931923819152999578890960797461487715468059498830420163093378362513966343956014443871817223753908701684244379271912075313755464946668736415455453385022922436644709326025346178126253359135382655651778735113894535061282948187727898850295363219783674739407088823738952580984211590139567224122488202050074501353469805225995914170710757489273333844369533101452884346431145514013576442418600283903945786902634118796562776691947754982253744001898928097826102246836250438466746747110242049974785894387831199966885565744405962815748866764992583971234519297246701437918241216520719897655834776214229336471745248634220973129400223400205434199789203038296565648802871979197373229952240230078884924139053595383075670808516113597981434262154077852815921190078602853760000882932124559586911071780379604277834757143458436983853506655094681227834635861535269845304415985070714603218901413125232339861185825669253419769488070003712986987730436776311053920318289661828965929641568547142105407072930733555414351710785282275728871726330749340331784504802543413583401974425074346836340817143306180675206585641744487477179025942658000914966211489149374746334049833239428047816324769722538634732563843825418455060529979777865758983150392773794073885697683994590129893551358699116387905183150351972791876447644392700913317212320542405545907020775963865453082592349622338088521128788966636326653318790420471301793348070634521176649215060646983912556730837557830028828039769602218407365760732018294079548438083995846252073575973847108408897175934939047372475857758296516848101154601958537611192383977952918195216045589894612203236285471222285890044558632385806246716515140120548513358424730088690112778582242657087387446584832237017008122538187358302443371764988079211237541470131356146293704994110092185144940843471631495793588683892949860026370888855499872558636135471032750618137881365602338100660770141705337034889534600568049367041835888618475090088195824588553573694510363461386634742304638185210569570550375747589035170971191476658407219165817765854016341794286440637681119501474846670166739431351506199934533297322838824418352834504009513093885635838478082031496700233564835729971159460141125317162290738336634796053505269014047526937326683056658729414960466535525998596306021244228858447855490055619271198140326622438305908938470152191838266351694739352067935428115551847298137904007566000994006544479696079792505903203212022170711201495614754630875037057595552769340683925699779854173699289407037095122265394658613432885112260261420667506065573409840664850612299017790383296539285481107524251959308080693087370931597616318479459708008386408116198610060048664734305356866604858430456285440279495728653477325238930421119365265789669017786027526518137602946250987539915483724170264152936444064774048524647961293235800854670143767448428886260980076217224839947565372596925044993755103671963609100161512416271223432575598645922697680664735210543645756512537594996915907584934261752306743786436499189822662492122030435452835646368393851724300504110017275311214847945519278461350709825859116962112615048031047578539649435687526238773781775646942942823129460496899029471006749307990226425103212053867270177862124312431470618680454845924766758642471820305191464150530779432858333847204647212112118370061450860838473422602733101839194891418465191606361941128975252846387254509445107790019863892739958120381810042053323959060011000288160397337619313730646606122310809267952893387567335503121070297173838392811467663463521873090047781013553285106276535579677095065967856563919790244636287252665395424862787754599334639941406020457585970759757562691610390351609767648061934495333236582044709865275588750783474693678247074788633420194714210051696275912455723884388090993602050658364736932919046337291632187563057683968657057363830144422337491153666391007760427710284923639825197097718012602264025938705056431612451727467582857457998806067334477889610012188346740732763354327552994490025212501127190512165975789162858579461731777600683443401757573582703523349195148399045619228093957283870824655107516733803425942947539470645968556224466563466363397594682197741167912651271155749823946956241569902346864760042299704007641116649179122179194503010171081035294683343981362266977801204506282614295117347871705030465617334031036810685287178031620190734258968166849809442211139688024304216531226952469275075622480107652180703281215645515750885846730087638511465355010552601814669789977412445739772464856387143567189112116064016988462078107442957836713336398992562247465704854306516325636015501577534929387659267647727279791869797969892247813689978841749790461123048318317065509079543741160447685861191281134817340003336528260047326096334845532820461701538255600332425878391510383347292357043595719057667045463351353442666859655984480172752832928748299391824490236300036355313760894920632196869147738216745635279338679992196210528440795894910315440622697580414662076913203660390804558859160016402629673738162051174319682797675189870012246368092360984497135239022479297451490122381534879423171727018739025298021718868287164313005349122158826457247396280883248892478386783353104050616176017372404448947978078659212716407462356211909782549908129974027959720939875800592035279987619315753874289058055321761621846994761509629764750239921147054478065439329890218270176012021893404952561055947240714320080340296914080721098060732354797744967251119653315090787142646086386358445502103150969902278815655623491329493128124192024575589369636272544390184985695545619218655696519121811477733975347587066137212436323562210250043261393319056719093395274203225416440957523488911935377727866479825949895200364421185302356217034801293380505334331274644084800123454304171148881320317865845262321564492039094150277415716897579213007133130067059086387424318081269447021993083068992982114724073700103205309387010503891576956200865443755802928044657330541252586987209633603342034740004717359615562917333540582186114217642793873475604768747868529170503725320648670175655229025550340528455101049737403023908970538927130595620994949189627960303390958485769247052330090286490376034774392586642573186165141051443952156357015379516217214070526515190423117472291855279946562424846143939333997624071133176524802768410785596652723908580535586111148935909054270545991304761671352980532120184458922411704053427478962841355719930327437526871551923117743702720852676935434680904805093175228743699487831384860626061996889490309746713377949974655976124801147602259072082784704921486083386801177502175377315312258166771663066795880251633870067000203581800635915362227378132123449000132062346307670153057346188654899241574335833418053808530635979819262447740779499811705365172970806368612635847579031453603024622826232073697276575529576783830115135686262370552121467331093100614312320550096495414966367487180235545995775089188683710606820930110627926759078549764617671737124585236918474588345867978928389025090300910702929102363178005616147294962550850223549011904936154157168772960692274958727178336685865901053319543512847743094459112580420912322162882675854970586675108838148001473846272020597800514170914999133491394806015835833053814404410688918624678585259416120033432121938315382347308846563389766548923236245407140160086363009562425788420463461096156118461508333315878747617033533572725935168581718310269914970976710712413529578823660975902316318946639177744414831002635663454696058171006259655746683797047962445387177565494811107028462100577232176247919483645929354377682158568229126571418018403256772272902460450643625305302529551871716611783048131661383513775092686286581026726259136823185336464934840650600528054677871974085947543988912590146482785398849914171990952084477262750524245807294135786681636050538506694076753670244928601475147608865960175934355832393397232192617555594442584126680951749487905656027138312640108142820689100154669985698496147316818209203629295704569766190789609969006191832205189535068917999607624349229998773267371545686201853276015433903938625825261518094635685131159158688222384642551743916686665969827020830397933977943227865529027851965728183790948671876434055515169949836232347420015867937651786021622238998615135289427118619848880592915996312604215264366148868098402614085450087599043700625601488717127798071638336154905055209360936228339301472324731553751373839958090179614381995974127276857937983627994777541736634851937272732059701656247992669415798232748457923499257758614100371733064682129502984712036315666635959630668069023757927258828280302730878246313798586171977148701367145223466088451190802822428840842175158163091381108829211035036244381724882643487144381105146383012639581986100001106663809702040410673481320532239767961042976415293096414859298208983090249900385367260326265914902160509387316950563994979100315536451016611809089728719656484197907747652432348879995354909125892747838624327425970412377117603352779685570436419076537322559935307905723265570571678692264711877194643812975006190551233982111049728888057056814930411681555634644577199017036754989912044474951909438289570121149142117914403484398904776240494691204645263604661009408423105692413154681108952195825083090998922047410572152575711911414396504325016999225943385999058307901303423782825343205549865539072309177613493803579870758549968072054242641157717971116346597866690490438695259888697080698854729575057510274390908533938180135028833454515522434929651742267572365058239176226272587907202503619586283338898773896556376752076549355079272154805869872913913107258995339063317135418876830931778296149128090330986426556094501063539442995198754208712914295078449627583899158752564812298002498857087950831340314855697441765756048208447617258062006195402778762799260227600739762078253831180922816026947896183739382847038264293011233648312054459020693133640862128308634306328700801727862557899422414782037184454042951192899776490162117191431045273794019315588315719985831871689371568126632593874229707388692023694108795187450212196015231998042022848303839197448035439756532534655539763681930395667360196331568574899502292005902712526738312284871760899241210016168386904687473397607692885037097736495301452299269892789299582113702749336786140611938984016255424639720476095627937668314437899599105635011302961248271110333738993290982257860386903023957150991508871615833695248346652946507976789162485540098754018165362769027965389168236295198084525917076367381441943419166175200034325600779084361414823484986273655686531997792223550773677039796461849059622374487729281548816271862085339400788946099262553822970109208650126515611268740203776999345710459306376594947661068052764657258560994029118970115569561565204082621754550611121978605251024727843814255087434497862887395265490037796070472827828992575196439908968844841234914385460507524017438136920618632413930483063665691751103183590868925140580725347106339349690823242278039735085026902034013538977933094338017822180188853529220735602515331762029197588753856827925892633109941876230953581317613767154487821026669088669131231446273761242581401037230684510560242772025297314722240299750565405565651142964227468854643680683261226249655726594167297165376688456822304838048796688965095993166950174185010185413816859531512875710017817693920121100373445386121355913656313013856710213667928520413309241484170422797575430860289106594951319480425581442865363290338510045274932239605482759050729001620471578629162575028318012939240342572022405216313915172196376556818393064530337901696760244116639024038961999213343524156057555069595683587541685714385455648670059566478709264228549023734741311939152934461822348372125488237897511875873512949226903227697613892940979877116231113435734548114924948282996000257880739795273968693094331364406355698722824077637477386961833514453781924633532723910529337409595299870287214155661585467054685142762739819094038588997912245998958297160421996203257232144747423353955698264152839806185011269535535730178088311291754664083996439643943263964651333054504346367092600984839581483939848602091263578370535305160553391655378672065044401883630515774665070427860992716549044002221576981824908763902039204663860985914912170532860967812508480622784438037889208571490095853228724645432527167761832977978365614812011580195766647229076405386776712090059472574830679814155618646384848102367999997943935479616264390020710966832449811108954116533928732604860209117564655810216073006016811010911457755319994311646277262308864039720278176311266191361169048059265691958376003202079329143483305662271161403841364329937729593719965840433060841460085237819657616005951247430145828815620310500038865661391401458549977964743245002189592217958256391452226309560409693610022684944950061417136576946453679536579380072139497185014241993822985397573354196130703120606655691070412410469665531103734979191684303009104475443763979970881136078816590744782785902187962816168794782889543089232518786899362133908692451634016795315236036590723543279467630145440912704222524957129386306828617992210459558763477620612804013182790379505896406183787833603458418241715313921276016905473025987545878498290322049900778471905573058307626757877960684898350235968450451871279017031972164450594716552145028983370039629500056181460565424012433094655202510473404839123753914953244730638310990604885673899375367986148300275101966676187285509531516548998748361669826321156958843276226206493821693466724900524584937941953462753859523034079328865878989855732182659481182640896732432068517172935343433354104073904241887411383977091926427751748396929566246482659595646090069100862328921023166328915242844034555086700482752933691806193689809363123567114443810938838989222313196527019165617765331919321065907531898613796342271679032237335255900075137162049184320187502722055821994675662893581885655283054892886701179958345097528530363859570202207786122540177256875920070909340776009254481673742330848037666555145997827637201350603496024081578226282667472909227172196586828178198016860762751694386960005809606393922957350861644890988100690106692096787489190569257939427656846028295020863582258263086981022113528395696111379296757596889266791633650967957871701264710905483411851758114560048145105299850635313586106591968164823844415002289375642823237378405108602896644051418702242796129912185942238529540088910854527514681130246088013822619329336788071794015319320170208742484582325504925382343565354074837965218087263716216346612356036376063814540860584462134376510766203921610973969731671582666003063965982541898510587512294413298684936699464977755023941326759724583617248969004496339294817583956243173611424750800958618663849402471835790458247328347118623693321877776351183357096078577971334854778654499045894593190790591192475482390622155783888831156376612737769213916767412363294072888051995738268089991523211555088931190343360155799033667382859069810799007536622348826063073462169905684655024222116825612247968465282035971069684104965114180430710449073285168216371481881236960238778261315151628064361993677283631833566556037189942691490745235159899000621673930341032433210890781347887719093613277203148555894987601389596394432651742099878934771252767704861694584165456299251081737089025324375553747626776745250553848475772080017334530385381296260003915182674429405769400756049729591839155315610961951873119701758986781135891930257219142850309689774654309747348012091821341566658273764242443665955857997723186399056331110580657988632923311809601136454349676672086657016002178324067336986742733033146060990794521588152494515771105279664320377844085246015609445634282427425918619904515631196764181081367505275769346327861696360398408615987800138055882868753730464933912789055554536497614246350536477922877108346308241789180317059225494525771185719144893232347812060910977427958504943340275397473883759031097405767276633757872330372533364028387919136739102743777399369637273967317911304924844168244641943959290952905515038588808797922632800853125541207483872316111140380704346358439499725979617873029908772035942107532371686761749927441431504086266937034380856139126158981750403713971574817837457504871820944153641120196963195462672161514349213957543980633192347107805593951703802045792634663390169591886568380833931227455797822148779674246476292709764646869804302154914234237456252984368774353760604846544575044067645508460993974136437626112551059059661631590692870989140298162089680804037213469537973639128662915247511209509993585569136270236397184139685246753201290570071660974367363983045404865168647511034149945273706171975919558607113388708057221545818647579038737593392062508108347322525621188356729575787357891769652090286156329963845214248232736805806412812971228961024466046295736733820717554288240079924126812891980603393094174899338033294094433553375899975528718134980360995338529737285677604156556345243260007568993963889224237677517248181127785178436956288763463310966972263658247917451309776668757487621646511421910637452093777303619695357648090496760790367501192466416870627677319170407310854228719167574537482043149015343649382029582999590771885599411491419468112662723499551607159269599144620777186903812925357079893694475632889897229857040082180729958178414677591862688034415706131372709516233974381731051993721494958172765712452175665674941218560722568895079416699234586002252849666338636571392050183267587860473103815155637936581521056824354807753668464143775705961714660907246035095142030251194864048665594280081150612891139493943175811499112725090452086852544435088774345053724398486376750029531615955679107372043376571871046454570997310877264769838018465132407607089274030571869159135206663517418982466676200105611197493065090615194157073374924645682988929368375192361041923473802779458589318013510145669942764403004549584349358470006384300122683551767565029638838619125172055303145867471107177265346095227366564633574969760625563533465784887962004887164446162451843304225410462075577383574683630034828793865390497791158305722108659143074143524150503762029329138566828436059234981281445105205510319599076487043532524970171244025019138765217636021425990185256610659266842150066767049944399815866568008783456121545098846439941826279761834724586540307520926186621575690709055942053704341035956560868734697566725248513164512496515519583245213142947460530432474045967130044808414616615261462568004363188576325516680766176632640865475775405745325288820326770044774515523986312741482133641268651372937659654586003508862080172544383991795297153224690630992621403041400033844266062962279260176536472746745504637508093993057884776624570979743124899464779041767010542843402508409670405677854829131291410364468950136032478519033738762747118444104541951374499649530768903032607716799038123013824173435601647940759019045133796278427138570513153576796727790805356317068068964776877173998592568868883502719084265061945299717876583170333556077446002785353459912164802796636906417760920216278020979072568664644663335416566561241686789357436852502947783322628317850381913965699066933394589133020341849831526968370708055530200726658800322969914620750585858898757752146584124319868363153952365349908362223939042928914440258265229868805478868566448306522289565994228824576146527832590747580525404485804336573778750440314265587644937183323676952495272906681597055789078741308801651671286395048626170733189518520161865396346144177192030495160178790179837893517859384054127270656040511073275388777828647619835309205310404394874386897830120610127181380380119387939978288852945045085041139460263337507719356357685934249658380408662292068958080646832721192727119346680793648706154447925157954404906473831530186770821682119590185724698211364237137300399234354482853245118628861352558477790745586047707434270116434088893366862632777216545597423464172927069577303060860187281936803463319569502316122992624963787873567781885307445731709532005463037476228162559366179734609265618766359780886069524989487915695431683148885607082574533564255387568737315694053222433514652131339162214726265191783935283919681836505647874382326834557581899732167915237816972353687151734748092838458172920535374183877562671212247611056818670230219296018454339940714233607401981278969422485583779844452635665324690926739679931338356895526854502959465244182319455222300046928534149100510655118763091397285299650630564712612612108899876676594632678892424924698891171769485171625148796210324149351510224526088322908483685536903005492948859824523245271206367267907233629539905028393597904564376179265234669682416265660248575427170856855337208138616993849409534724613450803177425241683869950794438788665743510194830018210479979990539811245092798145223770388119087482464333764538232002560059033673939293173669171442460992929312276120556153074351632101249902701120615148812143588958967324102589388354954827828586002357879014323464445808145487119808612353971206819527095668855928843895911139150775398425783967328610103642648717391801801202417938393361908224155881786185542233125505505808428093608995026434534136665549882272225208823917087268280520796558327979612167908980296304159930848643683510118666108164838676396693909548832225543682169101755365386704407430774086064507149560395962824649047432187922565298851059490065808932861544751060405563321089642212260959501946335034428112201337967189728889501965513159560206092556777011012845051252746577618567581610850233438450312390656062014299320048131319397214970684142305462736367416846693796410461118796951881159812329688557730700115062689228241759276435302546009941198175873436871853497113942364072370872886173674818264459316611112914629730003536584020478197004054169083145509832381416167394667819315942980303640445300802636576841136989276491043245666778720253711143479708785451894889217723609718948145538842101328976386131601895298580795029564260068820837880168221677102364740367908400267439513730614533568831967403768166853056611486145692012668593281638703872012195641249465301937533694765986817376562546369816610950388749066296224923066030468342909087923733901854452093247429410937723191753222787092723862772652667026208199146865203716661521841565190637071884971082666743972366685022810962165787150973173336798614506134015446672039590053070697109408986786501560262590506414572034598871711995257250504305040717436785817289886178811099502249170932779582787829360558049009263468025142022504820754759742172382665291594960857364778013376207608805941424511444573825804723891952517926781450304289685622654202491674776065139246332622027565315067329582192483278896851853547774287891439370586227491497900918543034758648092502140391685670301912268173009897389339211931728704363830735387415095021098033352997525575093226288818962760952236421249726665463552044960367549439059055105395276313219897345152160140348401621134940061653509420437497501657074013757982426759745307835536057853271520197091859394269438123880700940935384025699098131111638052559654315851826429551477378528889859659774933858135626324322678669016704043528192305984854141597617822484288497942414905858900942190410113460611640221616242934583735815760628235820170785391487068801294632744310545765207159598943777815554771062397977960198114271312342890641865256326224746599966671362746519477434201531546404015161103914800947020739209527808575205504901001096877146237129049572748870814883441609321048752354310328687370249656938052928708267150194437953652988253339616263114314463075495779915747465030007995191744480166923541439651544007940705531972699876881911345229173851351737775592815101868299305561178081058838014328541702507132049282738797490223022386934969678388656299804406370254525979434663642805603876137293807078767232517768765496213990810498119634113556891690916343570932324663078159279669381253997206227350430111560607460349135968085004057515223252391113623956512977894868709702240984118139155716962319336335595160678181936937120717598871179831431947259760107284105096144237435060057641163505552817510007321935720302821663245497890204336179469487965621475103201456836788264490612060687713741358636241878745949609678608531314318828470996613178903956110872692782390825795533452559258105040215377125306892051008141518536822357954714080748602281602593897808903429596830519432700244644079235607491582639939556410626571177070157148566739126646090483772816710911775636004512619557336498922432126339643559352885274304571748511216869136046106415524129658673169738528861556778139472212246558499974824611252380892934305697292800747518766037486785231502608344967364022731167538063298522633730918449288108944803836471976378904093565413565596537057174448550642823131039467997121088299389669408610799738944097219189997644248369604143522676964399335635191207519094865805845695885625240495732298743656441517613707466069603734895856408961427075806028328925723807182227220162493546802325703916818047848123004323791429549909775647740290075448320736023060811618387024589767589786163042628032743437575786364465579227532384711025646337614307162944590499120681975762971931138361969781708831755834299278900783279117551368383669914798716732080828258351807957895810302144689189232601987819226950478534759214747107083926561520431575238634899588157699971255361831534315898081287815051400358202532814224050940782380507376541952526624444909462236556015716379771131110220091061930227915612297662548797830567511253157568531239555090413915215629171912352218798583844495572313335286243931727356431280914631777527739663951168964165632090037885803309082171010877517659375209367745294612609032475658798025443114368629404065501426784806143838493119828531052380392596575379077503051027759351125167620092321002323631862891303565626706342198891516466991239508012008747545752414590171156244825339588251072662347876154712317746568938287060556683361132209967318207683653469079097601964517010814465017062813036968430864927370498062973094414037933082477663052449159165998910240009006196470174433537875263363326356623609597713760161826679046033885288688972260093830390541294884064458430014849002679161854239417207679998133718641787795058918303035010663156669460456734160205223729265554770917541580967185854559801810202922766498282033803714726676240364127964910694037591876135791705782592650679340146115202915343035077936477728577735749489912546213845302234378930367553476733407941153355285011392807223533733806739090299321117156239693984978948724262446940805534895110732086276870141277918622438131187279747658864031837503628773406698334938202362882425604295924474677061731855147945225681271353904497457940873335289569545175475869048781307972035443998538537525317108830059551399285170924594288370096719794006381984183777953723284040764614449444648745011582839668024640348421026981189241576351843536833617956362756461060876943556715677939761297981465121653182907576169962074921932087218168450255755437644429421551561339855716003560663327599836526571158238814070691727655285388142066102828215744816248458857780307501351438068813407298236575837605736746594061367291354340786930968748671698685831906962881514968873206430559876295966760122798263568753718686760606330039255517027315709265996543297865704038933093240759326830103818886152759678523240775031940696573572433756973349096998275925316668080663493065692230365477201036228587733693003714581327571108469689038123958281381017585701248142293250733915019262924364378194254572155409848895465515191123360965293459849398369091489187723140491731263937308222843106061726188925484695972356851606947269801451844357115753069614411184215837445587672790769363859115207516213967952549668962955545629154332223151516600050908674190816812902627991928489301675362173475729808139457844439894991722852211601918767592417385978028547842708241175503296803218827923495779032264701390820636976500033057346862539488354770756067244435170789084868713816149944946397815391334905322557733486301874968186054028326199381478659918034375496654145148699550404656891530813023215747016564505954492284755881066221319034663548876956666381818341762494921826193039780151654139977692728611010235986153326393067959577511113573980645533478474620501798925388839761595635495776251433689989832832320660088577372450449341801344716888306001291425964095543434541357833173091654368986513316370941898146175097811225972341337015997758832543939389627063950320279545051550693912175704522261488991038267171141856801985285649416544944203392506093124114220856216183214256524383051523217442812127393368306859891755430143343147858821396556438852835250176896860319823234144848372012578584794135223996395469463214302702440202024118695354269717230171806980695544970517803963330719199877139162489023829244525316765291559604503537198907721263756299423484560340277554717630704599548890117796783505827051577527905163825990638782494058477276109961679528363026843366445708831396382414109652333082166118253589412381664056415783897903669995462187313909264174644882033546444032762443821950920162084516166309186278156512987486915288565964190693989053589589658404642719509739761545004916247844225899193722317824194038157695498726149334849503455090726818609614354096816073079426695774389257517159685903112642909072847889146467848184281237219911854521088864306885545653620996482655906378333969602841099508945889164728284704767197829800467794696025016248982361949297626179137145421174992070992258582483330136717754598024438312616118173643259510921185956266312740765569963886975996521078391263762439705205803207261984003060769408537274813360316224235386314633002096420747320791195510806082529572137325453814971799605056134563560645548786584333586220890721326726452967829923630086779942000932868804722698892966596239557029496842196847059362379843547893481302070946289751919049030654888625811437603171050950763949918731174396074154509365134535079346388434874651851664460503116890822880148353003152589365134348633627214501176540273950766454998200452408841395111999055818382827967048571506362699646118911991860481114635813562433597288528039290778949092028690799697025167339098378598336349848251224763975295297665480936732611707952945402177460355304999081234272773296137178925551995343439704584317850078813207717500010393431061653326984653827391953198004139825734727081501567908766178610262727781550221607679013304092900376163011817902101416621842408935028854095398215970083456649310362289284543255568490367241736072036482192250761791656633214274219603146983883217797034763712543899167086167459279228601182200001518333309728086316920401833274444072040481561554670634114305609842855157810047473579183990336014055643045012188345497273580473769320224152217095769731879698789423091713471002266636408737973905544174624876746895205963510838200259683269182523589008033930809892223343898834446146250203869700882591547662678297255868840923109474998938736721538059089755309296006260515624553822478379987457576221047882233351323911163655524182463661355410249347618216140264886947236124318496388369451131050942752976530215962424917295104000779061811791496557255775577381245289718087707109819309349841596340531927448354174900257157027140075106093657054433046550164133261132775544144538311376933803574005279881607580602012909677736148494355262374902641061600734902457162175037709677520939818622825546273545722543602294484628782297312983864376107901780461992809067112227669917906475492945989136242976230389772830262717615918595634967792715168942015802907878268374480497369650796222692032060415334719858763951087311855401529892278081029174398902091796732867318576737156391622375714414892960658011775420036934057280983442218764217878363715013022355539406398470720783789464936746443050414324235144609836510881999250286204701063158467940655856046819492278964598977541019068314605490458012095944273788670537142137450018748576988420787695447461956457968418869510891859137270333837346951599764219302568439235529982935206563512815385591471023788311976581296866656125373932569404944984210350481026858754722862831406119590460074237817328230274170038941482372740278889253681914950247462834379200627068973840371286677367753664066640990952795013146153331651233151907775899458851413239534791056308350028543817111855993737200261656046181717324303913218361817702333319258033402781798909190735124305724330802592559074004495875638735046721405319164569816447314465100049755505963230846743775014173136942197537406836774733837250204950014208720135456709574201910172351049944685853439997323019227777433932635499825811913060779682989903251640653856128397109991154718353329892218213103597382834165827388298722091398061279142059228055999736868539938340545931562153999187098026568205167221609881561799326411134762098521288001965587850368150810394524136338241627774872130234126537182247120518490127664551496309528961976398621588177901385090366094975890179725057382062373526951432014656300071031437865047013825863428338969353572866023034531664020885044624291237396308922274305133127531085017127011254353408152742270259786166432264668359974650011223577227967459810721399150882191020823205631606659709941193853274470760416304523616564288800419394218337412846631060464967089249674193025764766894798785716337180602311373710063932474784473379020027023360250592731810085927632161808795373422752926798208416956260922048308033743772475470542438234929472158485924613888556904737515653609212778603817185180917641091057392620474570158231638278881635413353202758811695203746087619653745836070997728536630457247429709984086958830655424028559329228687160422425642825451023074627325662900572782433706783513250231941311992126714426137371231642562510646916665802150751782948985715372619122631110443934176619982045134408522404994195707297454936868973275108463867998052867753076254992786487636724999809709544030990956100828926339511726024081228737633941983724150613815151072786936582365249348271870962142618852480387871441902119129171400905156877245795672137763656332087420089306383980606330561446428902123431956768747709524672871016211912191790042664194116784542941880589332164295254537821968063556274992065434931608405284789920403768328563352581814787366909338236060797145287839338845663624878805950819445789106629138508278296640469379456123246989013047841036246302877501982867561277667089443368371980939646029826601874691073172361808512430656715141485939565694089653384047205303963577380807850696505259402216840190201742007396923135150223762894000511334778998658223492514193275558457602657319037806154234139478389529670493092750993703983708964113330506138359193667411096479490058783599212495077082989268545826071417573302550630280908310517106766529648328424721633729427311784961932004793312005380656639624799941279694606904099569941920944791448507183846283050276919051805275319582446084719809359056305190939953196404011362375047460262565682417297036392232360462688890091205155403764002329663282431428125553773563864081672227693675880180203659151417795073541338218061837800858004995471305456588477787543537218142193207810057813608886835235420943305295556235905597121765428529478391146026030399670691116476931765680247713335796938504600764660529830044814468728854313678421060755038358967116276880742922907603899151504833687888485017210171884074258551340981514367448532312332394601441718831027035916666651143377168947528681203783088372101465683293951103423840160395244782068601264659382413846243463903438117441709692110534368174072565328978532952039648088921746300501951343722276709126652977686667366952820936241625408539282845684028612783584856888217282870009969317512656229295512438460168520868912904684409818800369510218012532146810606839047424632877521858617543201827891183349039814883553727519623281088556417212006786805388345552074701141158533550422689696092334225632101261307246086673307218897496382562406942886372940768975542966997302875529012899059858306630381198984924638002724222774237174499219822453556299526232047709301171887051485828835919953839177217529549827045738052046932253413482162885804204781899945092803120512242054395564028956609991131309914102827083630979116113462082769602553768628375498138972772619166404897116580456330367133817831703477085624091704700451672145085312951650182417382834931588550290338925739617130526670291372842636268955128705553127340304488785013511583042426347298802712518656414717019713713741727438869823794641609965937820404465330920206249390268231897454154315746771729707525003094491615050156678567133233413375180628808347445483468238437842396574719292596063368549210513571751983064649896867405591760550816277182188496349976098747581438024884878468246101594953999654823054330158847028782781782939035279628604184499193482648143522044677667863271164405772147240234302321081232404381872988244447532634198103559096769742704003470935685608320233668774084443230520199756231905537307284581160482209725962369660414304766341604529858737682348388615367918440113184829759173648536229249170083788373803736548658179334436207935709406009001661566213080259139247197619904227831296437011009721397148482800758002966401852726178088785619105340842584797053186618656217316467763369438954713418821980876709372795646870287173841651229493558330653046056604705727738824004224744601441557075973368471396536165078343213608129325781081402885097305278476848058995808814961624200355939546755457082535848378219652251605119207491212518086483414099880384612055411927817246677042789459682136266875858008497882678645711565223259454480913193850346528126274870615976979645311298761291750431007803706539693975965232624302279021315724641691892615394005450826464676120568214615769827787502250389644661303372037694553850380821297349236193163788705529441468559833508862068678936919986113685283464347516443211865766583515026894291727704682816093405943273457582845276433011702901184444781331226104163551275223015985350406835455612499402950411974680973357694615915601422823262961481488647120743237943188451194587438373063061934694846618991468728135877088077917339198937742423553874115009689669367688407189371869946677038058768667118423479156691559763709442661344149194276680991566345824360401863643447771662115798984230059758006136936960499555308387773217528334761333584392902053586975054641068678437117527978444033660821002047794858916974648273796271198291774721050871010041079598904560586500979154909779674087284834615654125489633812273075752817793626877025248783685787315703195660395595162390717669219545748881287356521145731467243553488201575413707794883028154956020826642438565802285234439235334458561346576349434297815411317955183290751170084909518016602793206313763908356012508295853957656214202745722741743986577882182205560519787542381610765145546689649471144172810079840917346606965893497087114063872078651420318050402402730473649306389037863052037337720948914578360501386159080540679312425816275848600260120391344432675430300298850508744700042055806236644257449767437952965915126658998914097248052870686967096183452976032242699252236851321358908528398475982113751976214986776649888009603927337776101857630309107127448564940250794821159826060382087365044002192008855287311261818950230688484623659612077423096578564272283756124491487946728145663524045281188000754131852305594402674222107433168829767365805559212850028225269637462712923733134964466269054887926712004533345387089142409650524484722883229461643870091945742388534901175519252727923287756210019985177363146609384716341889663725036895652533863430874309840994066076753548579004697885642421915154341631994017785221537990690811367487145589101308483518729080757724375676664982616721894039139190014411834255055152050900970709688791172107158345848902569468061726565426666508413262902413991319099703695860355244676562163160129588856179719364081654439286400052190365408982082770445014200804485916139578992009402835246776374358159193817457640890515071764911867454801053111640485406264793386381827648778736019705336098315186993446542521217791216676661238510167153527052479007982207496118077011081723986574575768458087208630931080506241051161848634655382377242044398192498014200883425330955557826190773043706893906779680829619473477952585829634179565730436025475778067197845443056185386902701325169039894327065480420233551834014196275657608227770834971530446073244945332736557972474451414730064944942470984844156413950059070804854957514826537606390663168707093041243487679722006812691882797827861031093609192340473552415234555421990251235019935915033650929881013017484213460267968859908171304973121936464065219196125324167651957482303969363135645237576190989011987811274150220620488175219527704774826475317628959856110472766443167069287936080318729926573574674720237724392139518628863961540023958494144442022683045206988663777282381254790441825018502532018949962820815500560213784557133454124193128338144626660981993555194801888386557985958495861061568512136542260824216424714329343366515919345650729285688259471311175170173509042010771980541933025465302508633235293741976044509807961927138380955378508241303693519698209435598055438379724368111948742859621946213160355913131969971115296576793473478588543233444546313095268918687912962812336686053248861806566730343940809686877342855569200062534001472117643376203565345312520726097522525605672783606583486973679927701640878823842697774023703907457824573712846198429567375988635512606474175170888835003927244259822092569295492153935876191972024940069538124575897545313602203452172685751439758011572217276737075329400042422512766788000032821380069833112002161141229367267642973579661298136919520666361165316557138210388488432022763160606040775131073629343956993356503225417966363559766974757946604967080979759557608736143281674938345913245319075024238942276481116618596035198834109842608425811120515474633007667444912354290259399667845686522968220389589153203738609575503496974799482052297067328648529880600221253295607577550846840538412776749070387999021436008223088226612896795039070904663761078987353737200422202166305776437374612527794482928601389724370173473292575858464546707841735862401972734076362083611240668898783822944386463055398363376334827792703757328980687557018127484565433785974761764341293925579495169924232019882208954719911359027340225271787728570619457814887800334205398686405317662564718559255405635260553536914804673098401106328234204355400371403448263209408185615212246346986959651259323900796071474561285136874543757214694033466177194761508993741630081249455804543078916266666230731948047497626424186541219091617351823942061559137304444507718700679700893479992720200783955415660406850773384653300104466644698674486227315469005772619656227319728290101113412140025128980128439878346266041839335911956207832439643576097620395205343631012748894891557214520619104580514936833570924224494110012751996084584543648186489413843636717251120093206966804378737635577788846416318549811342394564298994644370871006590821756638415154129748019292289776492857309093425453985064593558792154948756330390862442543413417946542449717738919258898927208559252516046808607577396962403820764414534567341112389364575607083467656010219355639397745665897814534190237725682016016016637349680194899552197043550994097880237824435093446072872626660842756313068799960726559769453659166137505034887648819706195847373772221344786285429525953971081256652758065071019315500272230332048832541221630203489337772450367447589001725925103795110766702676819005755823889287399597900007459506251504591832189067715278640565064392033972439482344090065977496667898531315938898566167897300365724141166292186451278865988134270978027158463461832162021835567092885558393823386572859977341323100528553049770798049616027842027240078974188195198851174714165657355068547515542364392850019145529842540197410791786208662167188400064686786254139427689272072665257120458176634027320443687016655760124514133754654540404606584002518401162590987659165254211120240045094425094280351770539828601974255573099225514098892301993351355269114012238106618680492742918595699742220283139655573803088627822306115620208906470801291119047508276976442741132146320740319633527228034694543037655877382830493009104829908019410065528029263183016390499657727366155341413023549258433748151790318784209748847904147364309645824259416908821416261353784649856178237003824273045653087791232992524852573606259171177674786745517885576709450605148715629542883402194795703224782740075269583638333789202031762371042474254508819865246357281778299740835963000477940006827697094046108316082607972199783194101027171643457339403524619658008126935449674966554707649373438930137031420864455836959599146859949577630753748416010571920345258337104628125581743986818823264750505894796879600256320495461855875901008171261797222474938698332628344882327232901569515693227645368943621271209595564816208349837893183166061681570292221823877618364129748880137565336991936295731687203999689150998655182500062843664936481695388665336994080103786805001036158049597685904432879834291776935399769381578544731543235099093326562880622536424337061587855261432549154048022914258279816789091575387232310491536156468073663611468691429178205512908820211287276325064926394074622211558796944052717848783077567806770554220780819655222204758215615473221291620301575362647409478522410200797820173861792428850285271871355822774005945495094916005344117205608966463393000442610913392252410635044099489831182128582708478696786867858481494197314323307797720562038679406224263600194751297030415200607455597412282273393968561343665939233291123202304357448792740187675310776161776399138582458079962211386979691659858193839323963458486223888550452555369557605716372304230654284598283204056933593999333560362498747605058227150640537199083993208658013065884983468099434350193220213601234545816332373007357016409500025022019496103920742138616864579103315405801995271948437755137044767052191480134012502030641848810531046073002811094171925525301565540859066999803688895151824390374183919131373184983152433066656912930226922431711342732537806760712764434096204918403904847099166946325583852028146551403933082493249839859257727866509686856020809638348522747238769854650104730743089114562033039874346869682001759491316141417687607574984174117302178450707911258108461521351808643762370469368770007825611160250694848721732264793268498051652985156493132848533690244525438227598128319310348263112362667055505977785778283269040656926610825094486562046901174021494530578060278816014009367591496452132729402967507425972357983295766398646729547181007283469353115768922508824332237428529996696099355745763712220565346853817010223926158341075898495062829812997689703575512204480492997434722666372946127073579085896010032395874671707452621488970808955227549304427611591083763302208445928809493003106019145060573673116219642775204002947180598240691190007885410141033775259063280816149060075144694779807888745872988135078221545149873940347581440007925459526430051716303285571839227553463387760449882828329264879414898032881598598668393677733268472664293039340614483448430209720293830716979336134678524598465864784302644656336568047149619804158848496826926602630448906548023103675914249403850485198645401612936650203836000818861294905672229689132347670880045668433004846975779126251630673008742057318372622280842548688526206246377576501194522995853357384744740880098693215362055066772740174049413544574062515534432787733373706164051867663337668803101633540219166116717753516468025610337425535796351093759236830722456709470856027782608428258979693828913364024132005505755538521955121007219017067791064947560382932620041960271859037489661752783868724596679617753023782435508089200723755882668235540243234110446251966263693992942558859074187131664472697685096175395998641173919428180402543828628119098984131851370201758680100424256297412958049293591398768627488830517412311923985909640906241530665593507619502561450552137938580558007093645940378658243733100538671452466770809788299966146826259000292871926154019506700657140818855497554177380931097520977864248723129629996560750120388644401028904940599940957614090731844975156754176181214839417972564909119933421943255279287217702661117838354702261931404780425398619004116105856768237864288891256991118621747744934217387581213385947932424567082350479124159333114723251321758000173375201274341080165980111726172564799289417513375571668261952989573907302348245787100743558233627867063960137559117590572181495094975939588542482877608185378218509044117077990414286295499398269307500815821943701827795331958354533852326606688644416430915250894303784257893408607117963829436442887801700459277693123131416562841282891619705533344452513924755139256735692356353596176029434653201907351653483920144048465808101250106546478480439917842194451902559090245805142610820338399616517393587255145057054370329347059778482700646080571285514389762896556056027894009537933946044411019996731981141385712241295247009890481089976482332244130674349704752932334415829180094574405502864377504225202202200846668661117168299613211178065963028143704628998319538290123460359725172944176508969308705290772887573243387390496202305940698472846690842986102778861192527386455285442104576451932666452886655648873805500603415653034392576482528305250630504462608687938321081053004352467367760492309704898215067583558557086480246047232266624529467348746313784828697299490473365089325325704636840694860292393760688195916168996173078617987636544424375818778301621363401554116119044541829847614073606724062530437270750692343367528439652916475983457937206649059477648461775423551152308910495948607101857187596558522563051052186689076637469186884065786467412617008073410747113635243284559169764027783607731190021971949454463042800169958495578849653246276768471534617550828645939447243232111666020909054757813031187229555743521853092915220777623388133571043564447089052155165878356283289443439711499904687394087889299863345903861155845856650972845949574567767362339581295086392024676823684701896439240513640302569264104230306632869367066838927059820034811639651628294103566115135791127256046201928638582649461925111633215006720529988622411296442262881679707451463668011479930381601660041355641828015011136407749127695757148674990607352170387278317732827595834877616707036147516452593753418406032930031792250188934666775395319566943179843767069702751027002282094217126588827788970280317385163247515259434088630334194864580837269540281838678247583049493224826414480102146528155372725069084353660176923373064885275299912133722094356742657410674098998470940543020173513993591795341686552829854003765339016692062850042271831187107742933847096480988152960388457184670762539528777093842707446921919558468630559098955147239181781525867951174236551910192326585778550327315954019634019642290556910587026408601456290654254382527467615243660884061809374601793214140882999171437160102572708113128233774609654892694142315971361751071913954520826975166570747880118660074380311738933059451284681211046677317858018986894629192177425106791908140404049123410959772266496490823483410814122807954245611329907534091016012246483108077198870227838246832981956962090895557600322221212167883266995747601260463379828296240140469015771436621656843009120398484826507441983533907435344885931652075186254582529032298052291757992353173174559249032426995601595406036951092698697151138313230519722299780476096226170501819383915454737282646441505563497849654409674468496551493865753483019629419905585814538820854803258906534363749603002597178778807835123890616705631061932764096200583066239154195971222014275564289249178916012196170256037756568331717363433493424024996571711400774769405316735636727830524630764456200826491753842290386924901038014299074421482912299938913460519965953095479365063315657059321384334504642225605301799026389929361394533375919064259959085270812014121215966379414345270129576938676375875540136954762865123987532468387580761975745914670203630849298874377211907520336339989694263363471515394277940332511329322867088427755907817679994338823599628926445668931511465794317578911018079592319670656171329661523833719532925830338954394306973397812238790110362407795374672244841131643171230593680986028768051240032545126008201715725578324788869795500493352482746446681583072590194761634367562541258873999707967067487973890141740471459414271730940581460746729359662181315603919771110797392879488485245706470198000655293987711842218857614071975939923212403650659151370731948478619607451161952724754364337963369038875183215291175234306390699298949808652147585594581721378140207280295846787007583501504635244423941672969738896430934057304209862407787146161884827178344611978186053854560912380435538307698608523599779638241447764574162981697598700608927642009804108351256907946210814066959950199359150637046276671969937279139802684786084352470034645943071409964855911712489642083342249485896459190809961972208254459730667189275937627437186089784694022803471883962897272719119650598935211015724455448584724647282130354713213733919972527505422780938724365248892581889632799974076463249960786489377392649340546302722067308140117321077937421028851264141713773272137554161335500446552863890766427117159865158112231545301693899458397746869568119119222135323031705522444787667370974237545607281292795141880905498282946573388167526253106860395106450967671225268507678549128138232155438949004948280540808456634248043300712478452314451273239411042578455920686269637098060335059416197916136057833113071258621136313119688212660043403757890592235162397881246382728076476044227259163761847146807200769433575887179858211489079272963222690940383283386262451224216426286720309236479435207713165028849324092124159731454747775504543283146201794332375397310345355065716778912938265840666401148410804951536610703945014784690748632245040527967715619517784685053704622925686711835359123977087497320407765240236960627780326250474278871309596480245165928603934178943739773399225764240515790372968145368471828610716261075840833741168778164604711518573664054230286697816885721929717001895011084811764316806851319207483141274923143724133542583239193034769364691713415430405515477420409422378575056019591535640557183481873908381809359085082031699526912613050301940483299642378539273468721592429066453726009902913383704937859476515950089730651576302005616530938820647049281349450250138391854261931295915668278889570759840874723368502024700724494794170362800778984359465522202633106326703358905547249345164183313473638873880739481337834258920242035525647037044706920175601906758314551373172615978833224429982394980520577104258526593391891501942706824446423161623138529097149404751050245193409018803001777724907997347799798197087864014281609661785474250679499234082435256088620651419584570515871724376685824650679351780885046506493235760723468998053390761283484992410545158360256338792319750859689315005654102381885210069259975851249858236396134226745475509759097520448882238887295419191575660800873904278095946376947030774373790233402749318026601687391818358439175270995103571168492946808797892807025067707330025297662358518355536472111480692595765176540978258254845978515156256649985110683282606653430542810088883689177304009236634524626819028899276029033730936464419048646315753622819593252379629665388103890998795043514107706583571938986538107555438639472142519038463024277905248041378666266353443773220226427572035419002764127400834003218945188007062959695934013135660310803953599009250214377483907359613485875239215495364312440134832824301719693662201098770179489058082866626922253303744119865037035137675556633831191793260221951322178340314761175183386938893827306324551641580777925153728991204524316222331600267263907509350661999870577032010665827215455151031148752280674770599422598250215974798168886912304814828842260171342144039865636970325122766895804521706901535720673171803072031636134010066318064804553785443562873172660480944875038769073334709821115853272778092648427090191974698397832196070784395088440178741262263339709613033140910138700737023110425841216378704221759781013597817334430595479393022786380984411189160471691346422107801274153212442257294005968643334909146227185682303137216044622855941402116738120651547151628234655987217430480608231102501580640547980891057246981747564357103202013160498819917461413546410228171597173155129786106370129341989103723067943383091647744167741671740623780085889047673510606781624345240364291935404457775395415952301959197946401249132891787065785254816180727166973897074301861426467217993847656409651151478991011715136100055868375167301002267621420623863336393902991993568422250914165266678809090180083862679029168301090467729504604046747917836642675457348367408094855729219473235375584058350139109858425008166496281505061284197137945329521392901653242041995694289233941012071771880381521932739340763316415764350800888723972546950916940515708715266626213871079577781626855228209096986373526086808034537203105093995635560739314647132642657979210730221921750549060727663425451038877764323602228967694689727253151270916824906082900024146275254831882323912212364077945746243108272234363505660324645661054873197025693908440832200448311288251283330989418719093111466763311631392990141312802397420427747994348934301315670634313761512563747756533070994674750900472833827723366111412922250996624059649999969883848654881060296524806737284123341257734354322491108098693424627784437986880259811877230235501666760971163121596267699186525966791480605034767832910245366509864708549788818905041048513525720430063437355166472225939097212351541871230747044274443324230273944099202294673119861764733664254909436110537372897962111036454735339264050683127805387152297473045966374358242648797966855851667209253239438311233833329143129730306979633715145398413118976004649530457417712746981748777057061297245866011614577195371963902218335088962406011695457000980332579310532322169654028730331963121513921485084491474607025987061156019227866742800260882410966371772350201375343569807131680423133971602146772781430516019992155055795990949697898478630544874608338143799420297334906838722896909178360783436249163584068635732415488813563399479532480412799950096967714964150728003508510111235486248612319976869997753904813602535569563730596948848418347089865094812562195646385634208856544582497094857051911228670357656768302911329766802762470056469100394625260180145145986807620898137674201610615611868183162852324564879660800104078698292644965853084914559385851759477181246244471456835722074116531794167082201085102341630033429901737724131954744216460215628452422191339768725031118624234857749580817258619401432472006023324786751132566091361330017261213105611599499237231135742973461765579616037535723000298049516833020634227066753713059728605348324728584636018973322050316654209614019147333952694664652690572943128463695066525488735007941101512587273010923132326666958773242805349515943020280702934263354018786292107224981756069299619178617931780567861168622005629445772217751191203859677052772110131641309258740481768194253919081916244846901082107603461776893129338998020668559696690083334074510724568735748589354405369149417497649619514674557109791281629021967472209909607329644220698064292784750218327414559002386926897920457658404204791257297686026971309205115501648608442798982888756097801277867210266943308515651931226544714849908406145634683177532063320643256387352771620960637261012862353621667537083993906469667435032494555417300126936722844276515392145794443726398693769830836186721321391975259600284930021802819409670910755646093541474433450807825548535617477842073577407043669342467712227444813686760160153261317258256372010695243842970089260664556244146507471813857892302626360636967665209085979589011990748583006815481335818330054667606445284332926665993432196519858557370055939015195076755102408422215733804953052056291517015166243343564228713363230448770610216962864669064637660066553678507562791624261945886027542898754066929753634335749482197182561017546128738642764921009434425999560138604845351177700824509798968258157808159510894130038721645497038390505559368483743532262749899489658911276490271618226823522929730883223561010954038357655192878420409206737887975838716092358985941589448813600476632073446630092256788265240325015490128927485210330069519280833937255460436609835514975327210929018970499811118210060900029978486642686260715816342401570460685943129250678194783508883067017355590581153248956880078362509792439665120688130020222166809826618023810214740868391533947366164215853893196433572941304105843293869704858054804890316301950259878091416863231791957351487686900144287402092491618905999131545593994163436943626240896849368764774178384268129315537134385896586382592199659211115256567053295666180937322118079914680242576248543630754272872449960211031066290988773009022764514958665496037413812844398793343979255251332645406797315001576971132877661044743441888945600927051736103318559975484064635505822460280334425770381506664600038918416414742754333240832438580918556611065010927428206692591543244155909814312675154058480993086013073123515404025779652457843553535873246739820736377671796753900172620962392414819378000498210942082937042490046385909997429104701628642951975257852723926658829529490504515106027284580154491206819232607649568851761247423294680552284267983722412599005721373927345736246545207080808943897987522186592329694625278150218142707817182252727674721468522606400273188726062613276448223258900834275036311025784404464807361440816698192805782659087497808556934488127227899514252261758531700297227067606708065741620779926459158569469895520837096117176910482316412411723355768623665032450003081893138932727323074853806969576847507778377348520905065560471518928405353332941461334798036126489915233865379892495540985055926692488769356461657247864517133083491371763762164500256087908901833579715841790295518869565852791518860403161412975344633673351328267598219530798962547453139704771420118223290591319624534310738112194463940209144333521699633717123070331180245432159320038991161494544803311855090031518076394555073744996402947530755406253473650763407900004404657961199401128346161693533054367532600375417494444331147648404659427475571245620390175546718729477809341484438499311449915657189908890343190947516312338853447039799755695608913869121710925543027119918959979553044933441262226802937925473207195247195653040254859460533140192021784758613503674132370014104349028821569070330199906672625000361370360169874989711061622655083062287896180620989302328402920254892719188218692984649976258733328536902229352985690688201674362521006378515201041962344016965063566747619804639553305236968017888957107334749586082255881625348644879844042873673462514327296659558267178516387301015862929165540930465202243688612418960773295244517252687709050804269805323633080319241069292733240449560199664848474142562323106799297046282724460387308269175830392677250557488329263477260293153451210927665619843243211914937104207206220997519709955177051962569346721629390533729702154324743726240010785744451829916322926496064486746480309948975805954627129584841863545558240708933022943250173216887198929091712850908604359389462548172132060988640760838293251023353467490358257632892756846751241350663275412622780912712290096837995870285242393050531601503669346293875890718303373495514746726595394927555832641152722163120498787645148835760739782448048584168355894185705626810604783812652455175375299324637504398316351418193361171611389176980708713863565235039024565054459741662981585310887955222923881049220145414785071722814855653067304887906779960581630610299019601875627406474110244932653005389163450886446014302424781693459683603623462085688861935624578765238063210566652922613017273993786733753818852107239946369244851759190815339877849193437765404049098105830645534542419581107538632163652186673599623417014978237888195963813856293503188514651822763751341880045051851337807314970276554472606042272554791814843474171463336402295826261023052158640097243711247612318619384583817959237736381717266651195567430596271878793967332393169409802332413202028132569273559631100677322557257692991284922210379412683420543403723334153256582200355608706454616293899183841074883485132690544523354790954960503000379686747119905625036172009190016954749818961791466114391484770618423302294875873531596092488531159142171948691284618491848385420673748968805402414208641513674518111830828842874262265110266493573643817784778480096898794749527594346374166959854949286480165193970587300090565545111583006042447559674046892918098063665554648900918988613461218798921934512250082355085231911475079907876732914349213708746010525681406218666472130104289954652524607378452328337185222435661539686387886987944799105217483283136379624037200072939450341144723947084722235580566452253761107585526531091079715687393504324605756932745793100069750300748827074457103896387264697926874358290841243058437824435584485113997762243379115014004896243723778493365928964970369960694401834186897107801706831496673393362607206910316807870084482242098017081508201197775097882566453482754044972565130740921584309751914527632636536778011139459081942343371346630231199765255144695964550435223715535074577442315169316061695775933028842690759531787274976850982576369172581475082083002703136899520738640731301835804039915966081946553224083703518044533756820610668732790770641432594502458555033791548313202653040224187423852589084887029126135394467096817021222934885752206956901233057413105246618431953175806646872043105730632408864383973451031663761309247048639124320520525391702087349168410385617175725434222663577276261125217641620704963661978516325904298833860936030509492995859007169003518621040000143549090119147864031599990045374560645555473468325995417116592072946645371894161150471998944248201685999105477534687627859473563655919921748218132368371460091787495046750323045950276466883793929203543589469589879481311398443895991443651954675001566272243721413465510322788986409545822580505451453889470845940536636843263862891523155126041294425805361532785314675425525661942379014373668643886101625638739168495439736318360608710238178572962902204738566371124592952407308561567516075080930254118704845212380231992535782966185462309916249572197234322513990062497546720615424805536535878628541500796377692226879498612385726546462659537190279438550879922280621948531403774120086085293564464926748365281524774482581406371368639397650843700097104803209257900304580358285605902468216350960790016545376404467578683979526542440672565822780101836869566387010714394261503022760902351519555467548432385330861891327788687014025427682500527242101843003430056794206026397094951573806781271804129405587153847530095203759573956590377213582627540795202339712794065037262481399744417113244721488186375491957303188189846713487775545516109017802685842250660254014171492611339598772482482667996664895703466070670987526133880230837051095134952436923204401779850001190883650615163849013372411616674908648331327090569675479255399766136124554055091729420016648146363313205415778621555036451796440333548459917721223640989786633653911524646367390975028444482746136974569720737205282231056007294139428490520990889520068987349890992129618682567980987415024684548906379513063183803813665656450039365972898492629619491082439428884511919961187603405384791217949818256966792096542439060236455306590137115691030785962178285248594323702634591882455463932535240032254426991228476421224180703671129845172620948710175332677145245529857268353382322867924585939336335059994219423295606156126651682706582279175404780442743825246453265994879200085916543270321408085070861761704279594678973572789923844499985054002200434009303891490833281698307674820211144573206719973971412446632348476179693709543858717579310344929054504096363815507590944362638100491899096885436623886334218098212635792449122715140089973774845110990252443759261538014772145709485489731543647078563983109063467382825295092276147119919916287547662413761407745036884773084534740566808157821612352170322571522273703916777994061886348486359257818972406503747831119922873151048160099451569461406890618810796106354107838108051868466458133126779515618801711234851812230210304477939899685226152493313466447694201765223711626675854241208432637400078424545010512936772704793755531982207716632304177211015932385116560138209498700695788460989704478994555244603274706194115352746306178661530611147301044801175871066092647319574810269006761882449950587275742215024306188617968405167987313634891945880804170931648603531603291787289520007877279541341983017773713335605350015281641446974791154323322771507112002931754765403531994482235745544167080883891995039996283184181645124582735901252325775369960865222191760918390399701831444828232837886421558355732038699390795362385529348008746484163957296840298127524277566633914947367772896536357661059918976127711876621016184077962645947548453316097161761733587962773625246813885557424014406781774218130113100809040111421344670958935115665617758872661453756191167788678889472416375264638002489130610339844801251478901597885285787484261953245016719778067395364726834727076510723421269945254775193668348871059260199543361930954393766019035657708538771959664687561032540441057698931563294731178703059583142439436019360433741025477787956601752219547281069028642450027491955707594637161145406472552013233754661478908877046786779764822305478038178078316486250921857832158968941427985037054183617174943728142963508442705702066314786385352124739937279609007775242854130743329017471623491573735785496120398446245841702282487495852047188299122696821224599388619360772729976097278096829660105293544405229729072184029911835378381787840785678385539637363632617522161770334241107884407013337383501137231135746667831853797485549176395624722852024675373750444605487923450547861932536592343357855358854582978256081395332548492077840798669606397664205610455891338321719536729793372533456145922582829238882499002558345689717570387528224049046780185785725756592198312070231501000087077109706063425081422035327353470482542042047931914973607300090865686648361994191452503383664453658288653533789566801957363540574529450708928292890108687692229571688878308699777710316171450292677478939484738446257744498195181678275290342099163009303269493490933256198563344220383031221653488028408763210147135101462508319642288973309502045639744378115882130064290995596941401429628415933245433901737164136132426810336648038200317615172204732141765380737822619498122395194179335989419649559262254314202219309584103902325753655857395432280092583540413301371993801886740964205934951139208934589007063355459270596114752174614374574423492068456839070719253799934420496937811605472264373168601500642883279614228748647457022399193542658636119510585319870884994031217365711614076657368778267819744283755140422267322621905066492484124965963345886269850009043494159074360674687076173277052085839788572379358106624835342493683719991378481713170108378441475322997256709100497710451253745702274040388636289611490714916386379360107457844855269463562168819974299081259011993947935967091501374484892837088055910810526419659804295181157450139224871262736318243020752358930602901668919899478376835135630006336946479686597279976652943748414597851620466521480764261434039311318270750036608535230590225726049358004334780798519279923160167565393304010397663636729973530015191048507443593391552118011952377613891315828432142945433034708906534282412632745437316387097231780552552382335827021924469689463589830850055677492644795599093806293795136543555331270841463639352032488937832527214364222728961582881315181308529291864791569847842987786012695603899087189076412172338133286479671980136294928273380924237015805816081234998294482904760671764381355836604130708246703561904938798247418715863579953438060291076032135598173980531664331499237822784184413013941364168554703409782151912374157149001022399883842623998270406478262515922803101157703962496029657499883239406753278732826328033497389463250149480637210138131267658971979352480082903634727962690332752849713337767773024498272477099689469817664500529378419466133123599494501011686361587689589788789954878545325826055052419483031089547388250091874229296675725653200248921288434973025589130799017869115028285925017390376603236984823104016014864647705484544208476269511944917043813809699506344390621926714754328458980999716099768560515861541889747719593845154142910297742495547172547920108811623132862829314361097371621563351391151982847896940592129697643738412499847558907081413459996124298301351402896956973741246516531053429408797359505972809565835406597838651531725303422546754394262468709650099203167527822835762478301052048934987642682640540815899756038444743536554001794391177564366769043702424660064056584223427326182213636741521038940928749132172588185177746981713624306954793798529480732943477929855344921174663817012551620097361056019976625999252351546634911672030166729087499814481522678116917312611218447615583960461229285143266726619554694946838339792226667070294814887786944010890781169119198732967189136253547799442601847034552432019890763019123896734293145650869821706433766762334422850143667753076209921556734433991982424679640945442155623530298843040628441205884515586417144019002958220217334203782641388443820260987973557191367931213890501721889778954941368165093004332173987712034325939441336091333811953149646063290190027201453404157384640553870707603438798367837752530126701747112170883006711636841466396191873567815702604321325119395901520415775183484811196956287832066449006184778005433997514768842198802389379675909749352844137117172006750819493361643025768008582837009398028682754311000100900568182961079157736007965108474961827544883067735880386343317097139468191028771148706252685390020214415621290331200675849568428469197129719116034259715455511265175101186906060991549141368026130039927437889855445381423738872878317912274694288477852265514521872659089409011730287678310428232508671250292337184343969332779912917488280404885266823791102790180183812937212585826664708382832565299034311792788950320362102581575726462688685272438684918369426414951865877372942138248451184127546144211876114756415435309748638239894214562446240874613545892607942729045246925599921518359342530408605082543934723734845285117017229123982222869255009733465285314273681233825873863458189661144527925505765864834789453395357025434424462354799227102414140419063411477984582931339627654504937601496713243437949666568832715671498313269644843264501304641163731896045537326022957242671468599652970085838496590628867409036146467880359425767435562852768003747301797964305266891026580511338520462053830052805658197001192268938660538897729037689932407303889146679269405605878229046433166660135261860491123990077952739554964624962973610680816871864457857345918809424457880986413426717588405052006601508919076845561503004211067460115833510658217894336368933196343469067782356904446518817090856857308078867550960241779443694995272807263363982162053912308403498350027250483919620894688077033293723893037500682225544017754263990282028853005954253598532435259994571884903329000543841083400727624238215346090959441390656328783419074315220243083922979839738732560946944856028539067306228703064436561988001884172740049187510539217483766985061524519513579831242313448752671752017999226209030304260841887236677618378920008638078285142686264938559565785755548617766240060906506051369070896635458861976850520364513665119794942925724385074244595271309398653546637859677211627561885224328870730358256349426190640973082998196516996211236372744514954585190928972105330827740334277955583334617953117821704012807848583299109907802380628479261420236422368590268659232776630245049919134400944194886861433972340425112212817171934669220444407613385540712553384403182266829100250390458319170281295923673813437890119073936091382800245630364667436791163735481070833774121408569587395141737397029565505084822982789813762700420432633496493020972826206099893010042180800235499413626731833860037393736189475179424172290631758352846669147964636470657421551724165773477191807357601178806233366263451122722368101326040408232917765091877991004363782854776881930846391916198444321722524073841999172775241790594157692530539448316354752337837598229921396807654343636241738334393398461531752131563963298328214978053338498804243453205824132837845847366959600401687753961397678764803025164181766843660438834934883185964284794296076649031733678315486725439986887331535147101974453318300436863495184425841613045064523697467005200770821639802054639930922779371686574300729395024450064548078762064927538130552971370269413821291456017780410973644632598732463263888385533912464176075831446528254393718410481047827667540689391127256867204277737475799037830761381471648170441543081034552883249400854110689759310092275782500228580854961341382943138989232965090253665795498774311956381090702430595133904157040628872627966147053425786900297879868594143311930633416910188160403303293255827533988390054674960668254041711138399830822050788905676638681453437566714185672339385668058796015322948317405305244505346718748412753564333299067000098229020075941948438223747030373937741060869204250976812544190046304387494594439488790024372657399441565645692394322458045489062604869766655384465169092929517940944843485541842549944035007294838866602482454717563736589472221493994791862340687439294793835790597280056972592053472066829149498643400950410108850877740648768440568975720085782772993081647592642103148149020320468455120570935893501123142178908966359083753253348375214554699847498908610061065282015233797492778229004841360522504862466444719818858916713914162877772272981597364602000132636251097441033697891842633455498136704531601204427960733500517441005745133333764514480784743792051953520463923828193150547280830754130725701520264861313831842606776960912153565840957111058753185140147801528973161600098607277920605758677788814512452557755120046550185365526865370195865624634461929744213121150469517946868795378160910158464516704627055142894859840876833713344120934813058226935790050025505162285901614213505303546633225086853541530594741212620095496620361487228270224075305429280767967275308920976518001097311730847905816444920338715162226829194135226373008177653401971734813820616020418401133091030809026113125041618693475353599405276430897156160987723410797477347991770243390142057564602418473283369404538285595553833316039962464593494205144369999874236107170102854533865268843295223650710503926670413269106837820259054020582645381239843904502486106564074368201367934915430732534422520313466825868946810354913160441928273269529211364013734503285554412351395366900716335784251470221319766058485408220123468025529692137700813980965582048960103184584379115386116337268136554515171233383908376365915228870788057139728015144750549547524893237697489163376907002021736883304892565904980484891842279907663958746598820827874650549850086149420236227636162097702805989780782444968845578675241602858425971480786777034178730506870891666476318600213931802189421263774581723435811605757203351876669832851775626673425750618959839035040649101190228778252267253412855061447075772962119113900307655201851715686269436585225960283461727462608454866099516039563991543380924585481722902873711634636347841399866095687330241400491122630960017917658253272866077282752246154294075308910697075934325505643923109464221133651867642662029487066321125239013715153693052118047035017282043118718700480393458968474345221091098349961897053349097810855423114702300209689630637753022788522839037371167383505092001455862252087399878182616633317075897193424781762174579387752822843246501535225720199615592659289513338202947806233015555815874444273373648155861319012642884004106070366591462637433859240554651983763095713148459387545985962750070733033120999423832285632319788359146280795168473828785362808260568547682100882933367680079833109600166676773817623658929959579937453801407160435894818007947410085237885057912081809375916768238293548527130593053733563109549298733882459803553872826974346400537446604586969273712384371136387540103545752097756073078862610947755533245389697014717955743260538578856203118278722982313648175796765534651847109844261834462674048379197264571510338411175958605157443164790262517783770274921105728599069913661069217304272950464899296076104041261657554328478245940758326472970701419842666529659356375119349561518427306717811579411960720534402696896758521920072671693760108591038296375302508963001740497727253770698847159347106979198202476676319358413337669595157155844904433758762040046864111582456362716517226506090994242630757318028559825167770424074665398354272711709985047161276167566477270496277417634669414616438782506831386876873680206122942941951731767279724093635925268996082897861547721855851013113817753113204372972112458292381297216653432901460761690889668151537345796685900355110229565608213321574722614869875200668480726698701858813545727107609193957316342438272643376745294270609830025526067278969917765579675189774253211537151451663361764143045680656528021575683579216494854498156076270686961269749807042397552228196162166528536640998162602496401378597823785622863187421823617192092154846810834129263867937057965734086915876675524702828610588184002256248599400615912545294726609218965292162451338123662933465563458901030443068937712159633997857794548108563178715863309342174455826283508181579458288994771435333008386085013493494250963431431999771655441390685446888671929350498506526077098740773266055682571288176713791029121910729345691697734470404450678584172239265135318930298371660828331914328331915267408335492107770530761034020212771477455653395010867552719817476429744131109194257821849404621042391061083568653310492035438198826883538807216415120351055594665783335329473288818380946115357676208867662241106431351639499031882892884285404816179667536802162852346890391559455790474104748991303970838403278812431941596341896177900400952223985636098701736776315403503746638747592510157114639716476683811711639443005022208921748622513985606265692585456154459598553617620165639082641247937461975770020440952160946593911230092331504092486779094994913991103500540958548222496501769782615821299000127608883325146764921122176170909827539953952807489227850306906490401395377218675339384322421173639599993835005051711081417865828563198215013825705894677622475186864137017320888064791116112305900892977697817599620413835667552599691746127645896930272547388011884776957885985234104915427450576601167983192132530289263052412812502759460948658233384704010592918097647027638221763403540628387884766662420699085050536037121140342169008140659625649535618299730345836486873585716057013528215754294505652261140248313826236775404693756528271466781277110318114315527923070106424169876320720077021762952201783130081343010804814921981875323301872320085593803928193678712771627297733482583556884840627659471960584128616026384935631742621869265390504938198711292221252497001728462436600892666411315097623414685320987355631673996521023100569395876672868237242790734243841602647465660366815729443835649047745397600217425157255199539701974326916040978819923312962608439405977304822538494938835651976792949793366838957637628893310030578020774391922206822313093276364896320590850306600157941306693355371557498283375607955285841761759150391523173469703955430733289197782029263448603245680794072243167011970746834327688257921244505795336558546903827024186424356898369951608432271507293491325690047029220979923677520013301183763542024572987688500759455414857535299189584654383902572323264592194403394222128728028201246257025764324677981556020303172038126092089793826961084853080215780952034576797246895567467394387712031647053306459197187198788692512570768612539978376600059141575673854171222946958650956484965708184149025731199340374914063746333804005889467965890866794912406377172187459676080695097763544526250797265420145767916050553982696285572107170408531394975754072835769882798739561755186737313709698968220851457119940164866565628216131323148189774416656224806397827494652712775402234685145904222309988333262931886688431546666089235998215050733922802155370305307079538148888659355375884034382060445393009916282299644198779652029232890935130681044671525716598782719165666722279017281550047166299634850110622123481324514572638256746877296168758874002498300848777774571500029251152709924424878567116366530307016741718404666593879289877302126717154599221461051954585548768622570521452191781486186549659904450365226095805806569860711570029475691507525427765005826400379309322297221031123101102087585178814996016520382990912687230172651271398455306140367463088638355069868829480542723856165577865812709351358090416416228126763202303977494282246551025963570563849105685906384971253584570455898399215713992417720660874394054624847467982034922649937133176122523636347495798658216036451795840511986128866334745616444941702744560529695812570751851782642853535167335987967112862160367557320091518564890381693680380065698125944153433352094593568709657331740609543508177878843373635520313684304550464927808036081295765276564081508799440407465496325174626970770193179393478003464977926703594710682027135143063889229417786015358414821910685451319832559607945060860115729385600898745539792971991954983772890769058664231339414115245789025567728785207008798765497692115232607659471252141345770581881194116763144812588338034819321252734920526242873343617107677339745118258813893387633857617834116603505276552826017865108412365570082995684397604982096073170191910774012819069846957484644325052385300358256931241273162153176893686996421317312590697879218636495586642380125256732738483121220533458062468913278412302933657185180756609085854798513659043595408361747092937647500779014853005603037017411959432400173372087412019839219475960835620119353941271064106006448780869602530537527421890917550770058131644292433589982739322725228005262805501419672241768170006903664973669748099262959708968306196270677277577620690734903833593563505338076872810635723992000877783639175519350034348602888616923965680657901518780881815554150140585536884997227796198267912526438768005054601745829664820616169079104270595526773161686047633262732145626605651291208174455332949003884831740197217389727267178071127104151441467410281184633827182528383861505608357924411768938182745846084492119178335813971562157917363974544403558625507153574160889324495684479423647586302655779425361592360770140076436809107292055651037200223761510160186091926429030365853890148060775313532593157673579953439432033830327670108503607791187786672812386021257952458981438532181470656655709377998570116284329210071297451669986359073505851104098394105807437129025661555832258773725644902195292899200244222301473215203900035254148198947419100032355179313081127130430461840876143887117595115525054901438176680465559894532511105089305528973706225082158184667219101519502983012147486480592109529370450262208053576690230521427031009439187348776987543629359365303523254739947719883303305869078562908986464745691575502150131241543819802763538633551013445569249912490236620040550349953617051344364349751486355842282888252376673649838303222671277483179606238619069039138865783387702623772487693326640078997652096288424439286765932885037414721296859801831497026841723996698085225812685972179431691002161534974065207375125158131940139700049337013123255042459585026940452755521313978647371014605005079483773177593934542594921596517769890648488988345027876418383821595091848316149133408214975738035843854612452221589816507702420965552792025904075814759426088741332442231021416384457307662730389875054773173631983607388931764541756908527443637771311053186285017756069465119414871561459172121115491163648614596234504365570830985109359550839977677691866801011412018911660508572769166171910620548739338383407870322559743840537197928381849153299950302989815892742715910619687649797268890220881816549113598358414873295901620630080125826939337469936679313934184477555610233712675383902054098823473001660948415739487103069170413294726977058685979410735269473111530631241609247500995205848512186473721584025896310687342892190031166423302041404762320411714388125064877564293550424477287495521465214834706917488722593137670245775183470764969156255265671215842454504125289923727570859130210854656481277190288474379499778548718689511187779027272036174045428511772617741400991159991984619080701186451535259847625408388472078620211893303144938197690712821862834882988709382586872339095169192217651182742087614449391563556732712425421049359407845897711077908500677487929628247864425484050204032200227574704312034442696736863102232779818611847074082684787033451180727395860806909887104550822066365029163765320418085836458974852492808967750389891076067406822491681999803767120905709562520129555356611802121516207382415296955611601048662690223824472935294608241417094717434875191390727719623297788543801964493700808522203961739915800944678267688083236671845318156340141280786046759691917946306304504675058737909796585191365664106780577373510132696058765808477426906488495811386354890661081696897913483653479717284205426602278262721324952355585417280635116173100307748751362935505039366727904389703682629952857535226004872218132245943646175388130665437524628773195398593537729130646562005960739861165914237036252315973439850362545986862831383077791490733009487283830631509789383222059319626289587795879948017070385358244189699756350118661218954454669908888724001549115045105086685518705407290267146124274686857817247730066025168333319319499351469312683367720502275696845673741470617598600279034551924570539692145538111509289650708143091678951308476281274790761597274187311126964168965498048978443686584975211267811574000943082071994072453355270758920297802655159750173694666925023368950696762233219514939408844300276583907224101506840747409310009654699198733908443776383297144916520102872133155524099436233971017686403565244785753726883945006905113971740375479141553839725557300116199292831027019223608346659475431465588192722495433186105706149378386118754062263795888594635867834431407080721943830839305413788980169243107841021428116526419117721936374364535485431017017799807985788523665843396855601646246385208624908645079356391675861023674953285354161753708576313268488304133097747890269555744597205524751831197836564111677934647287713932049808487108773505139115165937552847304741916613266800968819673626857668680232360494324954167877161902503361600741491664109253837555461428370160422836008308564846447249597396968992067917338164944049629822646883939553933900424734004403878017085497596065599994784228457430142329054689163693679693841590135577850227590988663575307583362410390005147381049256926020154187858443110184273437272076741455283144020628088744951831102369677183799277222448098991533191191615752788793959689265255112859024160244360470011837479301289054572844806049151841198949729253213349205964471029180126704691001885527534255569647251373968531177453643427952390182094934811203791882189850013170714618068466114867098782644923097506393380504733472719930058334541924729520618665267822806705244866083485388798577884225875658153630879631858465130874224706907743452282440595163380852368113071113787387642944894399565986579388657324591374646376643890503098487138993769970155351185845778083892244387814768407694062187554244121673539818564776213383682780268420973212186399672772526584636589590860591649826125024223373825836648563996803650242189170042418199927595826710324941094816897226196808060057063187896968051988105168600610408320036814175331636969145302208187669506644358540597006630895088611395083246197996047784647182457340102087312241568942605954510940293599858640482891644946359165400462572613100125944550437072107540606392612603063427969221038898470209056390704798807116321372461184350446963076006871817976081357620550503381545147634475300600462739962904798016754776920475066249437554418006935528273310942799916222442077717268429072482050618316910407564953043404092104820146171152885403018907778497784368859227310956006765071271389045861733284408101446110625819473168879808164071096863879148394643278225883845645669884024917044700080458309253375917630737300808750742840040242709433601504008134888104826994442151043278645524870171869060908581218868557433442724660061418018387877947459955666454145806425438971838879259694326991746188372681249590341318920505670289522685912037846463787916373984953246597597886662066597782517722911437415796165048423171751606787972627647997118538706697982939712320836415414358837919371676666037223191938755643976277472410529081743827863792054868220120827398844151754723860437021409742950148234604655249792790611104929746219693598324273361046648626228655411870948273094456214118709188699262986231006801818144407638244311289475690689328733329499148304344567675157614995991814498860357565798996912426852506613462339181206335803308758484561724057617384205216890294651302001454638917375488148396725315710733672810866359870087839731279125795111903363677863227578735457820579663914981058837969976355129039028419259192261395196090279879795423267877127973539871766090618924399659429699826560030303833040495996513405300927854651081853416795252275655090247204371887820026437695552446624655514981873519558577604358210725244197183721516016632814958866012692485189713189076804729581854537251002421079981899854573457908347217280703944092903954520580488811054978242045810459078800552682453921927402133993233219668452569376458670459348206653706114121789049975456170143317640603495744340334553881651173127327783571546351167185941784114330365877366882035605835944051621714638631313627321336975025537295938790560947659943241462318056296216446999906048083178826123239643076164471349704366362409640422372405754167667546704257972022557416058398625958172690205004186692657134443563934279972284279158936312293572814402741262930525980179667862480973980045749497421611076447863676139843804330777079911361001737377572304304049967441755011879559115653388127329221884415382364358057867886337043919145759166006104751425344501318391826317898983666950189053949333408591043019018222440186484494463034347896578946580776759456384390983317522839099534218006942836795066280511683839627369044591499319180068829416120588261087478880738233163341759592349788557511585870224151822953305399359910584258283637924964021754665129126156679314425819492618601668441575898867161902374110415754729980730918228814443086924991873023545865543444923394071585269129380456239120232179506015750904174546406230049459412558538672657189143548588581967239731131331558781783737985537985579182815764652095621291951951977426400187436678798813456741064104814607387635617344380491375805047871691502055123291669151668639074382276110179215092432410107542868296078476469915166779683310578834701598167016278959094092880859277039820838737896417977510173550124279982296267978756230450362694854781279231963089939543808453155546328764177614771579073018414570073299458360981565743483569853029411604066471855561158418084087238261658629599061077250962058669529301324418393506347585013381946486933095423331847418013675049706373890539874172866360566390354009538968880389858079428737736352493698633187515951219303045504301158599641397719456646756643414519036016741411278161531201818319739432744571664373725478591288005176278090871017644804127532535772765256523353304573321263915861090328171058191883589780319181098284745439023463391954860678568726982446715470520607999573167894122169683498466833149930850790449815683510837878588796435441038726381869167332132383920248687218616063362357714832658557534624321773644195340137424220069384531824334554782858216259260066523900733979470642186016022175613468833653260610082042138390685788560599953228858185580263899780183336011819281573712896341192466850577335382001878275328965638364631284467550624537091588711665098818356273682975305203506319788982476454487805384295015991461723412862349091054632450905290158945281522836321021844441605203298204725103418518911977517601057098824207351175580746145727029975350715283412760481199243260449072289299061642519191179494419829135903560408364732198706323149856001369222204233477083992223673618748994110453136643556245543466131930048380838321963509071245267363635148902475317757343035888937166980649303355489216613549799960085385557985572271820490723515451570883548677533010007103825242534566132098836622765731866919873245361137910906915342412260897452159172904146638337994948716523915394387747219031589057963442393948599314017919370075426082189987311069084488325791166573906393708941439254269364466054748533434616616973257543569005897301995533983744473632768527262412692623278317798285957704744721386140832646221780749638081022918296354869718216490390524679022585515566834896319950662590376614503070990149497419760452876664051770099555726831743149318570318383983735303233554654034445296404745879454795550395951079237444079014055389503293169269054490258794956485846364712594915145959414179961732263885250294427861698293433927989014877487323064856096835878589107203234103920044390630211701537523460587288848907638588022980377176330862085738684227910421946831242203560208125262968584876517587659314157705254435885055205877675556797512146785363574156031765984563092696611695449436614450014105443988996591296553507860756382586771265597786224609205338420821263622197429784354516388358467997761880177952515843028030013877100893775028912726133718581611054932723058644279898104216151035820632525631521438621438804908661693021006758716930104041357379556871380297433852732878859460444552565150817866241094649372885844278995078821490196899771227644088531686947061518797889172688452662187999659605140291973561109450486886249074287861636160701850900048408232566322293509913243422220519271280663338968845863690423871421255353604409216158851001544923959636702856664556745080210115918711371553769065304625360368081459056275660275102873093281016060929861638439174361881610702002926431456513078183405882668901456533759292951880848493271542506695990546997364528875107261311598725731187573228241276720282369559010917624278167576360328490425222729430733845705872999370805052754855713729294787104761923517293563342593082743570279207247733751774497067900504274711669235041832331407391552891440143209875480120569477045510106130433251137708076409100082419388986974643387171760245116337518358820818214610578380427662766446173346211500424772564591582900283514614108879892079827487874341730688174866406946751128807044769456983411216747153031498101971261032393909965472996933355349785004171128425201259041643217634325885918477294423949010669890200568770046472875718219089697754985019551940901689479637860316411714144071782027471005099727621161863895435459202306268642275291531500809760859291277459539258820797099903906726570683250004298224910517345679055513247617560186891722500768630215728021963849962645229621293883009896495849134326209719647349125478918068042794632924983627608925207848158538276171159562211686439336059648257965825511832498958225846052663220215310098505003306500196890655768063058359247178596444389773493687806482146721606795561788036621281499279030419414907874175540453637460680367812635158684023087888879940496878901170178518696154070894839281217247941986560408140240363722357125577222803883773663086901635124878382387692475602500235934451842290055706094362395210268295229590914858309927602440669241776657956328437291825185015136111318381501097557831962512687447854741472275353750188841890379209260606675773865727440890571479391205287767564793365840995726068052895697366731177630932803677691831920409416327317442244347513424279377418762864372651146928759637910832266056549208058872186637600644080292770268889032386462218770642597486576363265643674801779818874302621235582891906498788138312309018616342260147030500787912523208260248833264329267226877335088551489386265208893075644104713746786234543247363594579276991164621214069695849401968259798390892488400193147199067691339932232381230243302255009332520199049937841503894090053916628390282756194843371341461183540895769355585604363916468266220776712015742214506933955730016646293499116299592284678686641929016916348694776965515891052615520838826897795595608526229477760221136746437953904884378192004331774977462832413813317655708956707289754753868351896345429358134736998591652107574103145298346625482456562676788122902760543047028007428481778622286159916106524125356332498550386486864766208265228981354518143819155837134188948682666376943876785196019589259744016967526791027417718748453187647775365875218298045932748416166040128437956359732421569783835304351337071862255915032555736337757661295521996676480587286510575682346674853198818009054071125927532767275910131312252072536439946040049575291851143364298230889065602484911978109645257713104209255155630819155075731908067283442358162307462204935098606485298406489887107775776006572796626738887163139466464950618823329180634640024548811407011045213125655967954434723293677870944017940004934437586007721654311819419781854621670751307787403797187300904448850924312982568024953257971394439148455976461687072986418757087504578195497998302259452266756894201748833101825694697672473618834572493377734362568417465588834134141203044732017882545825540214952073604055122049867804717564195787597746823833205787849428171840651459186710457622145059673717498056319759665717337875748898407652448320837770886516196558500521790805256063202422671297481731252838282262541367086376513914202618608304810269885523193500358405871401400745423665104670020082046791164588952345833582564182268350443972232550579637859239910557517627432158488487605463685466292687627062885966189322247264653785407917154606769686501180534067237105644612602425488251819377189573083320331314968076770288713001849353623208521713492851594608595981197632349884081360908548240822693589385574122815608803199327717135567682198547966419472483633957799694534731183997932819797135712946978049507486899842405886827698549946557031477717188743166523377226835180852704778108477095279617685410683618923606537934761619809969998142803203376985228617759351173052509085983875573991461677874648261123538213748255573375862947244606505754059043561278657643016214091048157620516712946638403599204278630016147193143227654440091848293666907496706368527548961126880057537879990724558222952395228454592902952356260201784309824959359507001172111953713259396743177442343457905971630714703306457753485685019965809950237948280664902218343010551762525827754769387114367524286046447955742969743078986584097975080836199214416942138254478811544459886174124173655675259084828968181373738662583268122552196110172680394559013624380740007710883727518791916556870482790635553193341232081487004052746423070677937587856818861249516703964297203219640184379821062770011469725414348900753327974078250410161176780454800754331134200477392685503555764738182250993952908044572483011788905508976141678638835074393401752799523807995899254429432901057366643891541219458091572716876432421003344494212236543982569771655769122488700288637077571363967652875315434847520476525148134461111769163597521346209069546666133191043821302598823816130120872641919627184316340530860875799937299397031963450249668452754110451465283064653061854215677913033894153155132117145530181404323208898498719071813478700246250777049622153043077547798419214493672648240598570398038377094402062621566633920871655018013598061612631603127232605229155206016264268427018545103940976867162126358850817601597924969236166950740181459438509849945698838451830314692335386883502061208655729963726983162645138461035785738482466074232023063406308266583519559880986588972655686940515457612149624014394226998335910496502087961782376263119997722581840656555404320512477936658700724387543972077633104816589175931170542326297378780742358275638710718160777310283637854187414972737041069782324820693771351658853032187296698895897968362599960261374513093433979404068395330407881469323954778720647376772180759941550274628837510191345774920080477106611295842134026319293568960695432529114919077227929416180772091522335347078007814154976750522177416911823008057464149605684808423158993414483788578871084453168827516150108116687544192658929894065227110994020995823560864580434043266994381683297565844193868278030554095536223751814762378777474972181618776084655016734557110984281381756628552518996397754789196299092893105580701050745359988921026737105685494323285841716830282393617299509985541164752667585016704793837044909852165182208784312615091363192706564997930426366191603483543725064059661853783378980736320008847926743688768145422331715487967859227964043008912839699923517130972589341532562751398559766079880412270597825417318936479002407305994525355993982470035248975655002007563341028261235807479407068949032483992553086206353144018465298233874638789316533262171178672031971316029158948617981244781219556833621493550422505859837252080887698168396982770756834203285015399943948104752804299581850943019582132597364458004251295914233084702573525850267511760635428225216856285831849567365822833279464709060751677793148268099098717268798276995102000150715667080946050980817951059996473296926558178255730850918358178283618675808940858809845474374380261971894179561678417716629372554407845145344471414816790255182546991347813441123516764222813972398390258234789257115841246097129377735720705960228033636328512489754725043999291949962286596230613739795255841974659666939188511105654554998748141186590966620039900068266396175322427852449920511721760440375463693118873143650094689307964542577352191271397758784532566613176408563478920770821287728188336089186085403887115010659826858215449277999420304960008836841735279077288018395951005037876036454441988035231876575599509431376212862510595803803484776148963732548839254269005127183014537733865990320239411492051112708591176616335687061546755980730272190962769523652914419798387932160112537926403620615643631529526292655538205883288225184162680132526240272411604653863087916172490494668093171967590929630003513052465622413090324956787894209496261316450621356349698754115700688897718186098209441182181795819420651974135629296479866348002178669573043980857409690305272103817575170876465249837574433626084006339027213745012842483448476119986152474882505841325337168261133843629000181401936289912303140986781688402541077650474236863954969134187394099064922370199898856710419650630140023587955598983957841319903565648899197627159755113176117247508472664384775711375196564121998860661939334762132243588906930622614953826480232694068332469543368949484235311296100259111689824678527391958484368840218987989660960416853512830738756934347070600264594382879928746540678442607831492399849215520741262394413529439760637106707153873618679013433252452526401805655316890116527366913497403114328075938553928234518928214543401544023751250802532140009970998525821884659730833137951486023358614415171740917695777144586073491080863531070762985578574770523899973965644689835865472978808381232423597584781046219832939291163954347244334902684247967552561832878525240655588227003511888591216413513204080723809071564621657746316471441711633598789806355164904501625544507923236377765201677195128180811903725012963056270823651401311941826796389551821309428741969444695805752993994739504145813977937412969813228502640146062414654566727272366156365789022685117573192275631136942196052562278804149736466830688461379850539736523978582209919013085297178509256210953490884687094882402038002793306507223577409342747935111755919655893027417342920464796626896871095506697183409144076117666531003243955644294097455811361251659469390432333687800418898558362951162664580783751482089497018230664359947466742964468412186867188641618423296663611222629930597077779920948616923617364978227975886754261469175623465638425852371299350275122347295825227839722421139672589506043698082669211858416229888242684414729142470520216514717997336749413246027872226341745219450476694462159901250711780519838370180495049851807430522141376893257544976191471569802342357264574426018753213750214995621289798403971140190968238437957885055669727064130327590579101154245028345144792378036314023747669410896674928066300512420998709026828725217585191481727879033437263453169376361042456237480805580722574863087902490696481121460156285968974015226236423305233989199897801658354291987050088722367642945187951059733105260798292647049533955951814146248163598704335365663776478061788877092774536954808691781186074462857735994545867932011155311633595312235509313087316296860772644204702539206353247405252596321216041691919500134415713696468595027350429753664322334414093565046101035389907467631426845073301584463484951997231372261670792785154570312981140699357967757860210248100000708542707397497787026895905372518399649646873589378482918472615901485648774502425704252582803771981742973658729276435604313386347149711275754182089753083998417780682323272809279994069009888816405970799792460246559337266773821032009337702601289947522504306988395794726145696930598707486884482316151498969213743809577828275749260969233240836432426665471596704908928224837778656605005185543361998953846314303429807319942737904030426032799330240015450951131043131600477979878305687420658695000614057409916886305243231902793867699382553231935642434540866610062267440696706626485712628848045433662065743718141549584321969029346734216596921566050691808965772590876383864636003895497333314705499680583757338480030911403942947405664422429250084939040393017177871716031980094453371352699462515257473662008370038431198546454658633962896067908651860137330107149478321931386483352296500172349900564885920175130438023962979899733608061589313340149509497139075352354589682007234387434167664576661272103787065423877197670180410670604342331104060194083955035994163891571880505373073319984334491038477226450037058224094656259741217034484204424563352287897611183750670935677343413489083319204343808009866842775561127558098224457166066633608055370934744850128658221633800563843749453761502689040726652376029743751177832113939162867509610305875421973506213148668651126593946999352510203033633587195172744356563890818266602801771233154543302504314290681717880753796497192499383615784627869825461300297398239518472518937649787056158224587958494582466399651492924720041816029120970475034185473444082333575383578380232811523294344614392053137898998436089634450639125396450025847566656679574985435419408450809356284429999749330941003106782856247410339345012379090438505727551260985204688311911382495157819784813049551832528773299683126225152318598023437843045189327009419986488599363988429752197346314670468067039594484080357099203816368882986239475175040716036568552574786354163769129432658661626811963004111788699757286853729704906935873760816505023500259744516189711475501556641373491426330263821317269876024057609969259616960343070540374413735250748404082215417984401949405380666517810107599743523668141630464228630300234637618939409912383686561691423056564266817301162129488309066166141877681718330121263139464154107975194795704668684128724315864717285815476291147193390211908541911445611052219115037627161870276152243226114479381705157679338847292316441419286859378821526161080323655500658974143123536451495494157416389332189520916896620433901621631289359079723879470512132564482832241083077342662947545616832024803465078813973407303599805151151239670264771620597856827504083365017411258504887821310634825425270335488737034157694020989556172575574475727219006782070316707622619950272584130483816652237865742275773574267359668461618124244996912008485590269006917875097852231139926922443766946540050285459903743612286770843441541900495255521384262424524119325860365214478317416744908776912790728484686839779020511237597239433992534245168442837108080051867311341866389912748067138216643906024140535112287296936571346869415698650421424995791288626616678143294301069388495432290312437875633367498525800648047650101889130970557287635518564170102082874493817244636820685035502560110604309504487976096491903838790494754047685171232745084743331562006854231227769740581454220571672333328197921100394516802092480146942001965083614706983076083821611473653923579747614950076411095004055527941737595575484645642904948663509192678303611769215956517174834395368435125701816446615154964903564052365068871816343800609793424157577713982066090609928923338860683943007480695479036304930868335973192336535595184232450779801051468221016522561065643633471182389720247514741090817811001445750639262937305123098000439643726963086064899395452349036600042859811762866365198213386861868306183584872892368195483185954379934875923622757485756014944040319105890711586072896923339042091063884763961439133644051837237039210486426521480263092845626622365706677944296957937135843946331745013135322941466438574802441514135651705756394593860684521554866208277493349653441187753346656913119877046828495709502235846170332459529625689783086572526833329018098228024577140582126294036512090839401591400300353337116708085740241801536420499149145900477149647147447967275800689902519837373750536347683925353066254886354829864047684826526069019296270943142823584151016713541517722933874842029296843365624387231928770968638268596996182385485309961441087218394043078742849474434004876307824371386283278779484149758564180894290035372398861588305868215265251335264547403827510938819107851410189330159843772287178625643152045192150558623736474211921495434951693607618792690189177793467446181978703814290557211864114184549720651032917023536273928826522700618505816768806379016666937229734157484178221269058413666573195392644404754802342432352655341774440681225582261007866481069962007705336494425464436203272620346524476492845438125378081805191190458859325804116064342537024148634599670625152894741985197997994396442645105152810270325082544830944335927981863484821086779880477611210230040088469892713472461265992191284396731564731100058275775828963780980146157914911360198468672020102610057438985282508904560609627192239536263506963101203830778760801264962546842965415604805710603827850773037399193319355592542550305464066200477632752119786309213830839426984582065440348720147689042975564542138416393667602838368946471147820158922579284720323058404476915700924075074874933720278016092460998256568427483003268390828671934773856241341309763735440367708242809276764958087013248108240152786098712254386694898366604791689884329282390749225701220067799718832672420982554795066128662947677939914815309474518973208998563529893668013106110749739105223304942610999607718424602006017450665007581279086181727048336719630349987024583321027057188541953191452992914190681341807274241154059540040853363214851890807930580568602175375260279870847563604004756718862863386935432944421489173533838870755032806118418379438265533001612908895918131345060072668915633802286659223795577891489989514212859587841027143086815751759300364956811084558737539866714771083207249318201710561679188650147999547522771079630925597716176935144569586020296899401541917546033275966563502715504588358816600127728872694399845832656811878623793917805934164511283477603298117697511031158188102211551224481347706822140621572940622582439868367899634953898369524981559645358246728015936082173721554923394627527615092973275180639129513019302370127666019284663930868189011943709409069319251743033788152450762909584843952233473617563559746522065622938055398572460575994065560388523120248968674194514769753478298738077876962941947977109310086863387901299194852363856607039475701879466060929911796500853092130740351675386816896492344142021071973813209342149945489469124644128408843300990311736067173813569205331216932455916788670861100710227238993721118883568343571467262142324600211922699888957975012460130962092056659551171328843569098712686290562476982087806921346410358096550414070488163552389804179270690632203248494006174660548094508059485473634015992225554635423831528495863951662293008932610728989160365527894684237378907729322207175872178106890372024279193476869161053481034061778519648731768670912165865391116661334774359312478216696227845021333380679015213998012719228987607712870177943415311996827544678968541693802266626455453896092857950229285531552866305651330006639538155528288957907384981946759949951306760028307402094091354993748803152401508537100831105851749203664130272802229761551509724167338032166378161650695610722466807039421279629686877544768818094379800368709734154963673729190260931349010804726792522336694553795936375025888319184935552992970490307776482330796084789692214740793043382287509758747987266690688749799458232432743685489191137755071934427730505772440290013831740432993209608455301752513909362785041119904017793430182948124186664418244530819671452956876653219563111574519720352512274611881741885101637560387880201915367923075613452355163686257423437603597326640893981370092437049044098420553040045551756740667214229515920444795530264476506086333019691784346449757717281644508146739311167480973860432819416421966467664377488251961568577593102449732688205459382365992870951029302763617569218999014451584953541999424337732614021465160065097267168958706451892576101747323873400702154046601806135483932942467542791491759152436490892784466728309698221759962696833461048340661969041634816363323982693812369262668679651585153012539165752358633886226530115969012029037655172360201647268839956684359528055189334567766160405900521001278205177121550116877034863727948927595984248800646540285150028149000842153520487517999706590719982513253050214842523812537656155424669539611234721513134908613654997340313827101940593212549363833565445333786080483751703760926389399636389984532768944691598950336709231659120674438893982734207340312636028476267502043300048814974973820224361854657322951260657285538143138392261610015790019875296576106724988606267405285562830953464172798666332158215848639895913096717427968444985919216583853678524115656213117885184827550227483714104583222747691015580069775669000456493835843719869737711634259306369927079251106588958346969214936326772285324627045418053605985157313517300376853914512812845312940017335636533267655022243593350402459730379231668783349694255113292431292751140513620175902447189058214794537593631245775145932419653920186191850717678501618189265093762683855624418181273051155630456609724824009901482496096101489033092399531743860621059701576041200135342307122706526399530998636702540752014857502630335292963017563170916963010791384345202022244329029395865340608279237053728051361098262117788984201341547469824814069984538600075483548412708087796009250521230686116873622874428805003385628603792394661222285664304733574751126618699556934367085397276704920055118204305454208011775494399224665797450183360134115951642834798347727719709040728405079972610574967087208110334939035792158342510650619484862418225024190856808725394721954113214872628601184150549600635629398838421934048848341917846105250853935414242670012384709452968020218309179728681519854564615821847902289295930120683855277598366160159244228946991753392541265760286226253691619289705245439396905215686314618823347510110536521668215978406037976365574153653436986745682688219855184880358908835221004611088695819066464488230636179454113056861497005311922108386916288703748631017968514023784199603107913923229168794505573587245139806280362402094641752540382587714149994926518975365227744036579503617643730585796895374286255913655336496427500748587017413521476445915577419542663378106708299139244571199168764927764195617920347144726896892130502758967039242562150740095030061361669190836995281659356666002377729955639419194510264794305125219845714925137439933246417983879092871391318055809950434721374744265434521868636763746081073838759029745520511488753319806254933190349318039053915935949341802315872648208044765658389980497318348189203769807146497069774883015745468516179307048750399356097391532082894823076505108337314202385644997601545098049508706707394652564886929087592314663719027245940485283468650350062063173806639733219412725371722949995778933624994077753014385378224514305973333101003673281363225459823501009533517598597802512337299841030322157338141857078732504060231106042962870006433210119342400930509174713896547071994409288003855103455362865120886176553397765153087302609920392238213579506377220011488493424742658501083528655096017547424226696115163930454779460343026647023370856186577581149359270605405650023119845573114716023290855630989770695341361793969649739563200624386471103710815484588063381612466587757555429473258316337162896914474051344203535569792080641643861734144356706177482648370748131798011725962928496827693510409392015302372793907134178596539421045625614877349924850663326474111624624156169112375342949423989836934191257475960279789809762991315181683142664301341767829116125706243174848796635737417258491157884628822036164474171410427913453159462302599716039497650811605832045990024536612436743475726167613911072742949013861609118569557877715550403809242675756748302446109145944762028375231427095300138245512331239606852802881116524106663972206729566193767593109875466186528817068383970011850007307073874947451313267573714487061620404888295226080608445997161372867809258114731834101437025179652877223981943071974244432710412055803622094480271178692371028010036173412504093210817633717661499593551935737788626779966214968952049788810098754624245398793675904603989493216089619191499506867772066460002966060875642978249445018811098557364950802605217337534974845926151842688068558631027939167974564681303320271354747906574780661181684432033526651490677521100192647445994572525242774448526373171858059716423769539676491280399734977862636590054197467389481564637471756728216095888331713940588105854859903448221823860127547938875929572565250549261849307309798033244337409832011225960106811724713018820343925562538538174700772949740903993790957676153305883717536961206391807211043626930675623888690029941918421404429866645357360477525526814659572341647905439294211741137661315870358732658295410233119422574475299107411600826930639530618082437228378121229611370147625819244305353954730338205272938521756135001043948482415897950150971920458829903927006240534063568421599321708070943426101787436419753613041387587729922603820552779096249078777700318037740858821820095530151965818321635560994367310298324732970673397707164354662328675279153607440774679467193286688002957034281577046431751681704785061978214616241676121652851855693829867573427162258960183821794917816588756226310696236289794143224835177871423827727074666816868999354063749888231938808163619681288102402011810437167002508228025288485749854766578026448588557637781892798583643262870909963608340412068954246340579968621200818156191070432520681810113281357023673715930215282559153891932168369384325628042388563003933146884822494699588703986399869523552700919980176622607595773269223359480141509973484318704424928778003299645227706808604809138915243733806945987436817806642184639027200938972302532398093764451902283190234476810763802651628770571622979211280408242469049825190972814240884015002527344248596142765762286194745697044957413068065784187909527313251708976839589118817700369704147132104648818250407810318421342028358017599335040146401072880343164500427528956416835618732285575852530355917468995183457434414345832671605742829583597918501914952583951985313147281140618046258192599492846218033093614809423685031821307123257714555348949948517317886113580842626969349043088205144600433737254534034121772736830909567735534385494488336092700274697278291310208381365379731333826220012908750243030477438432946282043344858943694181370602899615473447902709307773297003918743719468684782859761087246784954567929771897902875942498375617107028899963041063482296403474754700163158880010174284509144199198926918296422023778545024146775292034214192810510286732050844961906384239293835595087955527897830245536643668479761126309961206244191021424130499024217104680458029954760031491760673802145070215460158671312548856807434879245051672712882658517012310572716742715294644010145046814993898822095948373833861925163705247705672022224869528927083831896160903314711164435986686430441726478967629173387590397663743208363632252396007758391760749695550019452342706703881418913973873347342842673398643597491641082101612447433822593866386887354950141188318890377690495804382560742569862194910354273107995285738453902789057231314509365786400047987784083792096236959738990991943445417364274239799707972729896604751230552906856769145746948899492685364481286485814944966553647420946679516155667194140172462835712998149243941335049408592220729879865370402022586172248045225473867678972179481302586897394962094602518823397111055506579867959536033722707228233366754324062850443500884190524761169624316234977867776694578297718048332492914720336017893988399637327339199595009226255711410305356178260596300353686730787651441455395109441868521601149592363749556673615308779864393277200804202827588983895030989325708739453757041919835200791785597150566088411606993853685674294933022816899043326605937259133517318523801103018701799306510715548223552582320703943314144558081438757344887164086603548893050541271369770260129432615425539448923760116937111531358482403249932160663432963963574776647451880468759083823510065299787043555197460752798117080117598507482147810044122941848580846134524059910449487966472158239971222140192150616824350727059090335803289342317573019569116356239291881768651577918863720449111540330749288953188447714381284577909003140097034624078857444654335891804773082637305081366929731790659998382026971597441114475002543087557391929563502059719013152162723187442973801001689426542120349646919232482096882084093884966488845765109921959966479422045763736625055695687149517987291249252482171062189619874177883859517619753852073135851526623391825113381594579267965103729628863180034781772411894845018462510194616855349724450892236527227563255568762723227575093178763841805291100129311048798845148286169259614246649274376784193390165793877982223979068060978423106520129324053972981915146721020958716498930416881904985842704471164311021913352285466333518543200148327226222419030840849763225625900615108600233828103431433914487294205825714110994346652693119730806376658917075708759806496648991527207511432985752870598646311389582863297252035082063911461996201174011404884854649300615928435561841627484603831461900240337428223208111227581554808213543957812002176469539635391049851108447803522891570518032132067036927196324454189706441581881373906412939130232438138727471079451027608532224463113350381583215996460400112300311392164164044044975426885117543560184434827905150505395295061191874879570032734212083570692326735037176973380738183893873182816238334128212360713959576159963303623712017597741574854122938597121314086167235782775405967423712911207338701562454938332237772373722820156946342332977336505551800364429071421644606515502047799423386008068608749693893654272349268447534931228129800506138877504872414875912060736670185570636009666638401650818881065624499682382028286656512409772530921647115298572281748586045850672025055476482378711980714382168394764964569169020392674893694953924967815180270401870908531157573320334166129869290241836560150202720538420361526135064007485338786096700287238881302936312477797658723925622417742604038998672875428385867117886307744522196810473140841032465412907701443714951975360719779716136100589123396725658094316233494029462397919491636004517618698702422079767441645159395830063829141267556684425557678779782296858968996497299681281729970062245472058832092211023108838180000400662641435478651900918192707857922280611428455240455478826382302822474305860744026688651899880899249462614596483773722229134228468263462679270788058120561676692250266343244839801672136955369342721016041729847652932074250493412668698038262454700160045783661246891386331134560938923081057500316990960988982374427103310151657011684469870065959467316354585006343592234055475769809132217770575985597281659204000287922790622945252308767043492931337317503379502301851927924294420467258187911851324569555747306493790041232985220713788088187741327934461679882637292965021835076553926471272925893359497749823915214104916021794567085227637996637966197088843607556089169021885696886696506738774769183673427256702569869974014466788119381080917184065792447777277694213147621179564788847780587759698737842056052641035459684291523755069050993901658252676790117261332727709248717033014535341507263975694924102207338809600433395931174190400696512865083575796478215425458455276378821107500849349245141353197644023636981866517224968495083871581569635117503152879490174546833696661257363834405500148440864778167719827456063362787647619006430261148422203924162230697057195151280254152337643812977057393881334447473987767389546178660929736104819838028632344497431674904172387003002312707614620479757891015669342130327814129543708462963635800961178832861574458600447088651144132790603870467426157843292036512926017705455421808751278580185991671440353847489896681597050524525455714922640031150390413658333422671657120938640821004079949453528074456976428415491046808185485971980983679970171907275832106852733602993161520851415539640467161645699668603992170781745963308342689611012817960376489585943263327278537729707951259336415798454056273493076309628274695710489704380826793794810439555554929023034387020290025976334425516089421804048106509195662964056013542452613212306350534017653135876172478392287042060096347213693445135041112536846090921976875574826794158283521157563094020567682598628765075704758864044120919860525705280125979465968343233569287583047188684298913067556805649072934813991644943294384915871446126688774329124283672223279538134270312295465082433131205111657800679417830464927403977693291090178023402144313512643754935435729435355360387054447118203384131070679165355386742390707700983440884590466791205747973190479496255091656570595737663498727608250393250161446845219156376038863250241083265007649518033280150518894665115717759571115665628764484685974057824249481507114491538219695833551264849107477511689504693502058869552681718602989554122997752939199659750023375577859204421865786069389348154511939311280760114767003147362297992817548900958273619254470700813420234111867706133746592010711559362160647163780492592273503842771178573969279024868063802140221760935798114038274463268854100283397839479446105455773928510920720608609081863237827278679961137865221904569195902586026617731753075179134713380211013784422414746027757885954022072626666994371487346643044233159270851819002632419750024041779048687118620425723187260461700590501619990547956148800666246596177912651941957925189351314060303629035224488660914392131538784849184328115789269516976579381435024916310549320599411773788752658369146781220130050918596461394082699562022114847695747288235176158690020243771612160744492997018918219667070665791532285678311932919405903316700086481884687946432263715373615746009194326040597102234669019369051173472115594675287777020200442125317135938683411596507894140177945875431116119092359177446288836641798696590549588307746220117634210259507754681714148616299312010637482635599110460581213978609953764825790329656874756425247465957806047635229999876378652813088127363342547920032856270186598598986286610362388628264893806688566189120302207805917296381228605828732305012191782234116342897894264883477198327503940279688098432642114025857958470887620409354476009106354850916347658122265777267051633748807905889522383395551643148367469177988847873286370125562014642737960875118811774390084221076755548617719727636399759682078306980804487978461406259467133301865432441654065826319645919293477290038423693581098077322239957980886425542447655452112372343762373966462039585276755092970305585053812747353053515904173532211842453951646192938204620984821156481075193056830786713857340679636667294869190525123542859154755247509158235758271972380244828506707943378523979166142148073784164555144587574580129016204784687907896613739933179408656612885587318878129931622160728713471395739308723821675387247188273669201301517870856163336712919831735905441217439079769189253605886252615270838360129650808574376268544144768058984788194891095453834110765989574745594074452423222661024337651618517568374926157378523491363904765916573227731456883788186761463348137157294624013151336455907259046445296710270659240017740982324192963781456084130752800355094357601125283897066412674351939534580568757573066299139789341986558461222408591027539398668236539810352475023159285335319131985378215407668505638649654158580522195036876519887204212561607761953886449134132277422993800494359237213111949694095619233301714544681201954387143067616986790112224892635482512231737646130413226943597757710075550332320545941685525364005990435860836372496629104419581856241030802282242274373682816954428327623547647187442965980671961288173437660457948661137059434501356078727010594788544962655976601302479919515624607873422317230081058874150133923044372351597029864198168742993799827933440168391578683975014707877173268311750420084360026121691772927401545334263583968475432118128027092851241727704075268216137075000887516344623341822133849919117789805184522931672210179987846881051659582603534229984109749645578171632436250332774147003836612909936972403134838981070302664795113858772452379666234341049765045658329750968744972037720799460804025313974012199371368687895067173024863623911319530442712390236171703933625742264670914281508012010394943629540451844413593709428870005297324208246550687710040968568455061388587216492091185633407492767413095251530614163521617464342667206656892887775956620729423585800750920666556156561516986801611354933306951467865659971005963833646357683634002886180289313043137306189874292564259616630945503773486407865617174385921594547829398951915373992966013759128289916432005318001952948882716780422992448275871136384703997979852341369517577320447798938540632805675048407943114914906178907354740280312788669753561721739534722202822774946971235597613927481126784785119053824762465446786813884437623982666660523102719876563429531693624252470489644243780863440505294465695188001414428106894095070853464358188714104773430054108154619267466372093070214374909386693723335776867532298116444865371118999058644522420871401705075914293493325745692808240298684044075550463969180562850146029040938453056591494110340564064073735697399179727425166536561859349985085219487554942321819849355342828490075341825642034194371996859851782199844620772803465980600186196510031888878672280866608511848806811234652993595172788951785454608340319561523372819909004596921348590708108785445093386698666452101759012588847665993236624273230962050556801911686295706052293676127628840305216019189469497241513516251871348329650957863850564882810213235876763303495028640530462857425286422884136115722295704640849375504286129148726496887895235908145908078675216263195832245109682138121507558656888389341224195807924753235651273202533899482002181326804911242130760116848555310112925617111197091493033360851012035415270819201110575138237732702030250780374796280015962437578526023196223074475395160507140606695678262350852109016357817917257028188697813561329779691011257220529060113011044647823668119673099826500349087536137371907548120925587076936558321236671674397858128520435413076940682560513437473882154172215210175324178644191818267482706287939987070444023501820385073986322675692515231525894343798038053941902925914598537665007110852101738800399484731933685676105366756712851212426386311375758191166439240740769718553585381432437052973776305610770601415553598348593932441840370641585124740170354016741506275041007469413681703562005534180470592226254245156200803396583343295683476905812217477597313226036895481236585784188159425788835255084779420187919288713628249777022298259575214870819537390487870950662830910158023089827645367121140618541304977212173565315315008888115554661234771604332520609033688980122809798633800124074709334450508064503225794936730249635962582977224851473505032396862475979291817922393816958564283729732834962929518792885040196384662060296285940222378062885711922832544969893115015087113256413941680667805314989993886958497573623441874147844242603466915980986027636728176373376381602298097203834850209160590956673755953143284863162925204587972700059567085107079668144087963153137262818398371442144132499828943659354862714564699396310723706999789111051035529651565573114430947018922688599498128863342073447407538676384135724371594222207753557396213734526035300622454287587230335345242872373160544492070387014555681381618295645756904919734082659606892463707355247168050310928811668578949823604764253068197674401683354740130327562697966067969345336196808882997301934775464921375226491635389069517977026617558505022461222959078159528890102526256221076560394868719837810362466719709125042234134082035952185904214253516255048343021459266955158005980913155739391984946380990574016635070472819784496717646038035895202186086330553143101011629091889582931507131883221804829687088154681470413575932469627955208372990968920068238776496229376196933862737063989695148291931252846868663556732333455148832414560424484490877022647261891455596761240627982843646870814731032614501647739886953403699738799473863303104290773974583659896263056032454734867594804058859428605393711217605502946131624291577897602838606762145794845311969565902988503109994589878648355499350371997115112614455227254231520876367544409264782117872975389404414929763850648818742625595480946978021433302350085267236361147632020737401286200470321237602170804218851114887615976277589817106307559903054496358209304929289120253012847737438294274670800928885126257429599217128214398560527441934129229384930853998158570895921393791585249818305021376687961266585909927546471765807173786775290899935321074745586640764218534987476884411016509261512458468029659537218868772355077211317840461029235740823035530501929778333652523842718794350936937208815168866355125355301626184489393381558302380995972878704116532956046293512978641044555614531742665920533623755710478183349664190555662198451059731573920405862999962420798989042730166438177226080888770140341787572962403253206614711100257152396644129262932085016193957095665483238658497427021761390582834279483940742813924198735920161086671573124396174642922839307317220448962692390325868923589134188655869226380284941130068944760633503801008495570362182853607848442828991315196183753889760724383909927319725550524174864350221473003903296417798100083565778924281498439211908911767560496682344053346446240446295092891806359810098222614196763263539356607030474467833238372579439976752054945499144148261019601943858733399664765236000817310355024800375027790349209591975040832032796308965948889662669556351610726671412773752590154910695477994562959282606636871494114731135589298178081544331505850359330832322605590392604048573940531013291670179752404726455577135585826736323585602577786936142033877296642349356429175606711074420848596170004332237778460435610564051894662969445555798111448337498525444313472080763874509540075263712976732587026309219947838390459594777170124455742156688570095468859013277418068394367461684965581066726298955391998600673429127385746556206525298075543330716070350309143478049626557199692334071969929823042422116027649471077804816250997703285461822056979642485478436299455398712875142291861847769274558658962503360729166537699886663604745486608617208921871215831510014309585108309120833072239270730471828120565816623862136890205729069409632157696260516635556485764694809641706788627355767681856965892596650792366097732620263319338191352999543754332951209095469766554732842442514561542916349582111527932334817295560174376081365946789562166625348796454600143147414079612840386719522326903320798667096890869255002629370684813671202562398817661782438049885810539068323560685662772355957973822736579673604218123569934836813459075461455891360961476644723414593257897132854069949167585027927519461480693655626249183547167581007544601913644286466207380873338520274027343429714338621247221637149269123065530661093684541059680612506161571047618615662171262291234855397040720225928980453919343552595695156329445563439699758272175647830763704610018746175447049830680668973242636095432391550595585385055536530866635060911737546028035413984284627351353821143931662113037632763278392357801433096020059151918994624626989358119723173954553146943039463451497073919091728520414259549185250956544373726056143890721717263005708323759744336315871097747752897800926834983971068910899769031714450319584031671273527471100249843659794430446085777409903149711393015927066464407632673446503556892763957656976672511356822258534174422246049907579265623812611022681106427411495618578172186835471724834202354843423367870241253051485275938520225051891204453340967196452439462978489674760161576602092748577642931728679207041721653409965940419522907964846966537582675158158832679166100184208383506221698652557688341156373807286021015832519681502008914495989092618960643406500768441900558374516279539026541157050467228489314236552727888847055263120016060292518111192804165855159899757112063548969911295474561699310791582029789100378359628926387899333307817083136970347459351697980856095733262412157915966163009843097750237934888438070992089608568965385746382321069808710184621616668308986989519427928263025442414542686644564893835939979633495323694119258820988231008475234303666189174627072780336094058913082403186193615184951400674017582494072910512448695749408028010900088943109002406356318206606274590461802586118102455993607090403305331270254187428387855599108304959269745875059039987165238200605250942492655208992799065002593536594494630917072701677567719581182587326760255293808195676621030564186279379256469647157845357639975654342819671169794470447955233460825477649707259920186273067703718763108645532063087297703484698079827750414350121473114405596569499537350342771199086541444056909578931282375292708918133846147619663448867803590749656035299089706648480964989020239028858970108533739670167461857405826344692484053605385229455873405191664018758501056605253937859382160674891405062299266740342848618843299265534841402938994354079430769355103167510868407970603829860603900732308284734627661856602219505118413327069267316193685887708646248159200866005850548723707333147795133079489276760028837148437389176354952842166022411183374129562292608322993837495616099331365684295501172147900912198047034077986493272498207986825571064244260312044757356243242151102703354710169481332561896986764869954075031850101989138312479001674052351096713485148857648804186605779906097473571491377100422167611362091259367366881291750631834495282383277673153840870196353420455261108813266865328108888237928935861850990940880253008641151473939225654430792205022799801801087976264150086937218119259515570427681617953980709680340604928263710104672968552536552315449015503224812156714088488129186078361257666562224253039522993452704669843909721964852652333157056488681709344946231005184743786711097503449604245586713602444897349254509194035523333786606702814838023262297009319836756674551592671142095077999693964796363865239179229753619576281097249642803091749549407987976604697070048121554662444662495031513344226985113896619614048882937293130880797551558368898047015537861378554521004092131521827406572120502693083448240836896137873984628769003851175553499123624677136848368497479144081430600547105571320146780126995482288926822579409620005588223835142124670645209130791552948602962720657821564230016856092680166177987221167608832798842885575546125995299227793618493667199848819440663396463256635117574444139706540122369137396991012715671948348678353993124403720600564394214906421343987406137466978651361867920604463806342427859387989505528989107830913105934945579087719440349611121779889913658313875318244933613327516905290604870908639319054080760730211061101247593217818102133494635392376101299169989673286573001226003299152475810648435808716682063234257717842637751938365904325978501732215305968381813198180459553027482570839803673242310355413237427645999718692520210467889734225092037928200220345913484881295543821595377510900361272554153440479308013843694433803554664893256440137773379726845912207072374684145529955463552086646296582892053477587731663070340425715939689375754379929601297855985179639517393473520826658180670935684377897351415612907593066065907893959603682492216698073875552891117298103901064697429603018282616867645083845613498516431601453153814992296473084562561318165912974938142291626187808438484262528081925232364981150247013440004330935857152792830534904942486397602676125102122433145990846101032766302383597515170201507185113494795815870576145889817459687363839046222756564955388483352514419702440376794069516907562029895989927850903880624269514749093251776625400068234880816575811407833133841908620300715289329197851717386781855637692992768977612814925699267376540216629806274064136469940816965270578718184823939821952354908951085043088870900063655736472730382087173831834905305416917597021766936944961232730866416394827069161459909790349676280332958706966387415879505514858955344948378956794816729975254398389658165733358669042754348528114323100774545034399350612197094084330661279355317058349545078239611988527482597541355619494788977328764537627618140922460202826510628958553584340721573752137776160887153594057278203092300996712312751142330268090221719565015782146063143174433177601762334361283827962530542012993932226950408837191664325577539470096217027928792157362639454570802892445679820465856242541955354151144542659229123146730183787292531509098844523389392189013164168517935715521479726809630949251360143172009623274463483665798391265434173931349589706883781727441160420109910256552324345336143218192320171241642269815832702730179761030965924432825896443366375430501708281585438721660837377196433479800719935449597339969562402008322284405229380667325860911659531903782640925605992258157212253987666851795235653945789188192200351513288620826674197697354026563775755853511494885465046119556502709077334265574427633043159230180888263833416588162449024007531469112007921750920239450701495580035092264856195721570801256585061416536220431595844036389341786456046851584721081071042134507092144006064126634200449572558450941886352399873524672777860893744524044973214255971838988480436152890932695722979120304213998695182972769807015050464832464215309666540198150916832670669463950912587887022632211503619953566452470192933601289615957680138955011691945405037657294544827869291979988400959989106788391308686173435401149898168875344034248840002839485885584157652582822262529721091998709889587146467570697461539651576097181413813353014345940176153820671902585652857589419069007645110671120666942085730287773885768287991013989885208481243891859637364130976166190100574761393729812208722723661206806348858422187572185991196826673518298823489567478234476638744909339402374914517311624190816947443430785071419887703552758865875277219616252353639777314401830244126636241543368228556046247327491752415927448704087185646794933187769864220807443777668495999669022118993135684432005904987378743938910586920469173880047004320710811756843397297377875105673254395226451828856918273158861387387019722231182897496957293100709372349621556563264045543702335185332283261325577076092233305666084260252282072258398422387381626931768928074249138033093789628710789957019316331461537244536153063978270575634459452885144672718761105533438519642783342581723957826333713881094503196505675816762447191801694412599433875110610779284651290088812636858746102268656466345819163335015884576179713244420468580040132825567099249334177226643277333594705895712082619262519528538195897278638891340940767312090263198883717503917157851905914578313244003096524960041759415375259684789939708375424979273980219874817171777651042116229108076415952668106433430111828328024226323621806189966585247859037330856902504472591026565496124859981245135274745281869949949463141798824981649752881607054434162739296130860921909399528782790141825175441173770268404761826534431169607742513729193096484771912166369111050258779180486264247795115845186302269526893189881769516255938964534768365788409904461137050985387593256004241528115743335346233924735327495358002342991211071492779422857425621312427733973181965624605007856250793458499225521759476323420122149844110137104228209306223160816800352751240680450763910066642750532513663883686915367970665284771968482981612888279196356245947982691261687313690354525334961937586780877282068252511642552507308779950690434593282049422773267505115986303811390662686927207185883689704422356080219980199944215505890902570307599510612976869039422003423887356628744731403966939262027228063640376386347708987854048874170055382067974474248140964594900058847626587253375512004565795225292150171917183281248194172378832225681836285795429499228447016381537908401603398136260034888213027867088811221031372325535262146389397781366423082614075691711717801450834611929101375453255944385431164982358414179827185436702390477049085800516258612842674836297148749478565214912699443348609644474256284917656982151792504377152193211600004821105000076171008422376069889684886642626510886721479245364382080958413372223712058804614243447737074465593806693167178015633122586428245765172878207410041615878003631056909351235269801619720557974733037840698024873383410912349403732086593990310292203168127011710618818337110486787720528492311387852475505811538681954183205794418133123733567965138944280394091972566006653727149627959994764818025636962650982933165734169775891051640416116086260663803147538539817369505952051329198348009551774458086707631035118238493875415716715752864856461225152491846987581545334796198884773425919744725867349728629860338880564718794615193892760824761852745614014146649096227601359066029466638968028042782874459874187213415406601428826596148070829252699604869836656362149046253614599547670019931261834640483969429817407369186077182888320967824479179265446758257237790734864841217037423446379091053330152134974670758048228461407555401696142684605981738974151727483183567549578525018740370039626129905384150704935503495971709708812130077580762467500504352788970744766772390504905615581827053716399074104058051607601750487112742177797698711262196943032532066601351430937166781612945335627350430355809942643924435877318436015707037058574403487377086950069493149952324837993058956087910025226601148265538068844025573839904435671197246346679654376791995527220499705471451843393233120842645306855427422017468288155448300735935805736671561928789640660263295767009342544989043651408199059660147223964172618283081573421738754242668084995589596087107721462474264672730400209777375055760712646855438420307841074076149660071566359545734573112224482456486310431163344732344017829408653738752686720730066265411756961419912003774403426859753189314027595027676408196152809873273575831184575958064193426320123882479527685653412755342986384179421128396428387572040364490841344457742697040835021169222583042759035055196874807123207429844827015179282200262895091072424125924069444071643033330814813398529897351277756804830823503999380693002656394546411639911778283296732199554130235019132771398079664978268135844913501424986530628856542567970615292799527881895376620973629689055089389308242912361648263824377945732111605731678724484589087721725677263752974131208767779080192675835604041169974670736478267992834725627083963965329372209857704999925826140565501197086559052575365715074395249498675102297597334722899714430269257088718803611858290247383772815012826081073168328956103444903372496233896193676306194631153314291217163184032221863582403693959204069274043798272191812170720154483582684970631562947292043054998439525285065937254265048273906776215679915924604305747589002385249488884364283572055542876304289219941895359699406932664837375858539424060966097177379328337269375250659399839958010427013070641837665475075606242063405440394169613237869012576591535236205013509629259741344756998983892084912920940763942075500633724957230844624462092866197483671791740100112195573281163366082459740320413334081656929422081333727149681613850567651921069519013197125463961302228904109114271206897677461795359395789774563400512729626088243050559806079663423754143704802582418120113017457103337398316182479945028382759024624118263702100571110928866038260805850976861480956101476853182816250363532333212748101627732105266253843487351551973419503343982677879737382078968337509248182750520983642012281164210847855420535786358126064247390286084357096268427748893646704484078554135368182342098297381087767720455968305893818147118719590095132814615174601773235238046806134267725252286353177337040686892768052731212933474159648467297153730927956980457944661032176611330548989394863203220887709239113368658865506157003802465172228394913218326503384283484628077100235169365199047565205571793505097417242282914166838254963378049454842282993885636869404054002492370018271890018253739590882005372519016733562968248531937084717875372537932356939670340144485856873347093908311358461448390039581802523405363444832326700729062720616011431266406157725382679717475394705363033801843966580823602158817227612935459820854017251706280187926663070489035878257839793013017165858510311576069109575495667739657100640228915933252225266803551175583521605795536347446518157839402499123313922381246304533438143414790056637170705765468323422355537008961283505168984981768572129292528479298891526461295724091058718224443257916775282513459130817988255694505572990497512659647092902535897202987212607585021238704074755697720473674981480333205478963128389469652972560303105382104344904621747014452335749596670459358940143516900286351050273672625893324226633803720918000774592692705320769862388655388339851092147100098679246566862430632467463072002146354033240983195928223862455013420251798207977989355181276117880148176866342842202687247563952479739222628704426138318212894373548084374920816583104613914092098476933340444093585863315812732810208586075670018072703453408557718324151908751980889312216985547445459117198591269156825814560320369867212497037912531737455848382563708304691329920457467587264949083253321061295120007771201471894942287109966950494524595053783134739201400238439514261600844027964911078977144205223343902484066653885231424266311203174464640194337615405706575547431457522184159230142433490049332774271565273041082924411604704469778115723323207702390654841931978191916501574395162816684288088566345494818534843103531192045977888816198952911343535442662117901679230631449377984758463735623787524712772672872761442628723153556661720084358852983499525134584381448146268082388045097493586443785227816916509876743656920745753021380570619355034453068417880334677290532719192884466051142516297220055295551918180276852869935954529712525112842511372556711052998818155810133400716973779095910401894160584235486536904008764696622311365467906255472339100585686741939186058949340098792625812941260621660886790582966323196138028150237277525782118500404826463499199172861744751790805789571130993049342499493351845012990422367094555147234117221961395581940980721127088573339775486739511250074750541526736563081665626248257324271532757498092214127143924002904257647936188732610775769313285754340831141473159463122433934728954425932869028645344875268679299847314643078766673266610738221526023514940744566344732539867482725314436740002528678491802474221013495851454793884240549359737587106226792176737374759504988104051798680900120080521600133855016260607130503545589982912723837536136268529009399492084314079327154609308149687391295543902183778991662295782165508934946817203102793699935714568846432081054494828199876253351849010189015661305083759669900693869562908606482839164316358094447382654017315460442154973969915220352496155245089589471734124318916786238166025561214874516882463757367824552078916589919719093330851008723318920217995998697921780360509752398546093636766268094729131798298888796569566740741887763476307593638746931577073266559970089031890783044943624364740939459665986205402324235795915135600623258414918182155297383002253198850118712502353435546477907960761191119705583294706189700052620355530326296607055737563988368304706741368487874529896035030999568353259960077621873079744359059383193894593501686260313039970371417831188085776637402289171708439388989773960416341829230923311437986825713841679482514138844477291335686759416443665504638378008917129347105743064327983217047948764501873680278239006744695318011176171189013874334744457999770892502172791137598818565858484983453649906703066502757303171978847849534034174034247321515398838953566267224130533081150491933953336702583589737789603083711262719673657560799811555481033596147985332169857364194152077933130733456704794727085514912220117862646533074874766728879723604254776822695765791184892867990812694986454748579771239289361399043913106779506877918583176131803851653116465877626430155597210329843098533830844148767497457081302663537228719483773480559134168349990299625332871046886406359965119539674380978496985224928731125539987491439843898524782524933866432666402897050692795964676084476523090031908490860903393553667944747063619447177698521279387513193130953511342470148724175689188898488590833710026404453405821558383263260554464751810056709143613536301440447698516553341827290422860746143469005150250548986201828993123917062080692426063399177555320895606329251493972458708376509675062329545966046774658157271642908311156198141912273383361368713422573002915174303815220643639670483209656459303468678538649322251942900718887071323650275944322001157919410714756179331996501950472721255538640318209996069421922787734342507649874456555305787562563358787777824548163981336738415584355863291311451872456736999951595819042665733695942789848394555690385791097253770246206995207477631772372894518182246202137677764943820071429598684939573058125809445811447663670155619641161400321325967757876972595501945666677409463577329578010626061176522040756540529985256425031499032989294709618498561357095958243740301176285528529513449061546519418017968226202092822948083559322617697610552855317731314538224709453001971114713563846142132389824023097805364090267600836361532956025008695004418581891713283109665107935858799976732028284366484524726802614842172436647207860341606585825135480099497266598850579519332733186348768241215776590694074615844249993844685206126671489897106408937940340254607765495028602588625716629210221319596121249809372759339837685245964894355163606440249656448245585759212115108449825147469215330523334682838202237703589121489652032544626022667067906674119490283589984237672299043147744523690452697798145961352465042695301185105126825116625304698630388881095808513559541212594115146076632234063464489135038963218879283429498135512600306721252115866885716503630630998212504027074870748710960369524032005440223255925166540703934267320994612153439266106847940964534175170997068601526920168896226098521888894572524329096997018835856225153643819956313300626936011567350266461961679682013807071042281838574218382645407929094828161010398366037675089945121428593373910669454316969873937828947704576967519488074418445525536123950332679913819227007225332063435619313983280904561929989709793009559562399587086108865693640823898652733117108198883611322109907249821987102677244306852388145628926763343375655381535457326838704821711042150223492800933077239919528373248366715379590462313928625178602992524125453905476578391096333085333775834404939158600018380900191953642526806211373599015265758674660075300802986271848075316667417542073814080693748055223284385891954461223432798026266389575203741486204606588795083832385877712253413265607758410534542186150884849445852325629334072297601161805980145673232034049129444154036179979659266778495120579149552701541011196399662925127538672921229238476856684296681305895696036465477850013504952281418431245203465991542376221540623445062413203576043936939573471431039949551408112733778466705631141432873557565355512954384312686343420328949454985698040195099034909442015256884528171747392041174771641818311787505200327782898559334554102258108996338723735717035668131530642873933451900887414196171174488156802650601389020592101261261730609500694234013515259137739330061578712803721140510086025171136711490614559011572821810350853113251799001217480992976536676829791484195606212529111631905062064929882497512705766491448593110846858402962855498316140838151718093316154417578908065490255188935387084765461583946671551312827545543638456398929499882926280966737709875625402676731706748203421503409937759696982634015023335403888830386400435496284031787362967900058266512667237833879939935875694126658725770923549843955214751703553764233803355821034455375331879680413217928574610098799347238437191588747302776393066210102383199770852234676182131447483332112105411635489267148487678101372619827643253983619420379132893508259076574454743696117643827835286062466217424014728631853863548215466009970330832239634909085463358503246469065889285206279245585460125533466738300352485852768581846578483858949713126029141929578262480540473447277732445125151253326802429036958820113316177568847729069536477952871709978813632371988184416100990838549009738146902363574721288545342135242828253072547469564764263218837276105585380557430723488636429742463536366147021272012952367993311805940226993443778002185726478024159663547475931485901147372746231910025261463830231939190281246580119028754480297272401045671279739874962250522311290345240597559443681186434153041206563282801358364327722881964417882602770097256061388148080887885577067010065253969012643923465989405289429351621661981388298194753306968585732319421627633232834885086206887356264090600985000172752116990916749546993917058205852722933259554568846741484279899977605074950113795286727517772960416410431106978789612002168571248683616508972718678532708236837878459531583130216731256949967006093197778780190779930184352283616279122448329235915832826143925267936541074750990795061252095138555480106650932542501620411565602059322479566537717271617284048721571990986588558722222152973763636050876958987571540162647847158254296229434123442076055816888019166594035691577315751600432286872392104921991584228694929745743102761193719030213811070567612128677226032317290583009585394455273146308440874271178222418148982311822328233281489455438467909982075696704955920312712364871323041547449593578780963589909491612607088672099234971142129877828579798006604001085724433300734417316724813384088194155651235683377207088842888765897320379311400063422866105561442931476169795427469800749808098558574405056588709120961330142989217872920130993752143012441464436063837922278722476372161455568897926919681741097261912735899306465731334653195703193788940397371159049094643282683465584313305180627122174616524615570645347341193405434310700012428411180165454284934726778868137247800701024811096631448814182913746783322912687568001964010231403042370719052698027541427507688660967551504215441841753635494281249000463494791709191427709234878736655500816129733723741682913696961847064131080416854969567993165098788179111198609084776333531913203804977320249900811635271945415227312419958714417564911190117036804971125875586506668831484969453915538245713546224355287134212371352517781267743443988584306058402855046263575081958900575226965301984203695040951180066068492363028719946211129585539568810127889128310787198689386263186373383180394214510747947625566915229813957938788537686492647763576527366947737896859696172159394525456103157214834434897027554543273384548645470824387360826472104022289554282274129390968871882865638702267893432189641282260196956365156255008797721743682648713793205150909379386199970673500393362362537050302546129273378372980062640020028077684543736400170271948572801275488486291043434275084134888939272853733239427491735179284855778958200142977065585952885358188483705305165010927578104044767294844904207936347455738179401531040763551425588038681478697391301430996010516967285519549079817011311417576400474759822446894014461914056392369208283052421776922417069697723192123703967890826132883353936570890256457138502205507882216540081509722208899907074572487866854421939543709620495131212252636823560131829163696015613235221322195414232668113750874840754077051989017673999545964087874535668414672350090527286017287106600987490688421322446222129905317898861739178772258599591650061565406385934645370098291356477176764102094490335304882278057658515598206102263224222660778630590400255894388106614440213019048490864281278944607837904292056082546827839586916582433427824107853305298713612446439703519183228901189893398370512011928432675739948343622619309677123800437059287211344560164453434122583066327285781731590674103843739174971518290111258101073799848481206760664041231950284153025455131972176009468691694019583191116216772064346877652373325388849961402463442263978777395348174690432776423541534971325815127867078135076437345421874926569862191208496220866273479701648626993613498638687867234925760740674684025733829402150814538276561296002024527513637858628351880843121902810139511736769474753506710217257962412040485975381374350374408159550679389043079526054132582195938022904777620444309705345639597452707065276069741385774086942862559893604700261731156657052795883688726130586600600682329253758081432081598982957553874836214213197357867151764798631292151490809099201645338874238724801942720368519053957396646804276462051415045372390573817061413422492628200515309112433701049022740072819122898564620290325157648712764885690660257489764166312799752973661430555327686136042051984380686401020209891783244793173657065472008194287933835198680147600482550961675857141600280133774867374436924488638857022192415546290514068834697000648764219249047688779482076249907460654290969262245147888554509144593746343120422999654810963745011173533295599212772198270970252019240020334073382293710085140450890278476349205228083339947695046448917815581955618802537532407921466322891439348915767144238881169327733572687234678056056270506435373245065291151249038733851855770862290679135640683821036748251662866720315023703275973463683504824596520944832499822488563260415115454853931750066342260170197546973107663346793554214007620687999587440870660867736740666616388065952244616901332306544184794330253335918958307621802192169788549032758820319703939738315510307834978754211723603028113776619824172820054217372285343569107902759168084581657210217239788748806183223472657387187352315320826389989962982374013689038244615977488517434656098406766199457849879790840497984565158994052656406232855616539068519428203106328695334333004798170469735866177674577786626067601759470257707614167235596664895484767607140380669633372864325283567896867750509849011920335280352668954736336961360591157415558576414096108590848224378661817161328531388648314003313714718083627360684561047180979723054829413904135463853748511532056065207932024280419614246871505457214542604653616536582845457066352346306476955537146988592824987204402855408674973898511550172749855100573084937918157352279090935553277224285902259125411583060014309161040031595742834200385728268389610113082908188518109161283761748391589847392425929048442049481994776115358996149049087913973900936184577403232673385141103792165335514716683547509932287520263118220086854212606479099505231832624533979118334057462693368514772846646794601921858065585103052803443092678216546762480291006044856381683110037610307538986291696830052288746414015777504873331992214738371803970790558961021732239509446813633695030569664643605229406723545535090546537336995715962391090824380243609665110879167347954106471882871598733445529580353299471983472519286379457604991650039587076759339182367539831282042513631527534228587750800913899770480177097862773592652286227963843007283869668583180396331489148189720558582766738757151546354203712481037631186003595623097185692618045027632267719707249233070860136287225553113795304668953318330413230359340584295151765909780605547483533711850122574804696456045180664349570077068686648661218705474007342581503272096474679355174253891951629851787685573525430459439057548127775789076018940733916107316534473655087003648801912309726842667990916888281884698377207041085772943974359162128719647422666712972167470199138100551757697254164971179692295609945218583985375383726431509520770372538462854511739282009424338456795570774303124010153586134766206543518251728777825612715533222157208430894335970419307662990510256945691908446764764582235874416780025457859766812372295459830980588085650643345243423871540620663483344850200579869919694621175679998718269006422140073772189814579477590912699696184392901994682029274853200045439746637120381818645359999707436861757286162475553113769589671993913329310857193420716988032383741970207881640878865389303841708188821545947692629341158906049687807881169122982147757666773594592199148003185083435827923926752723759247366850799976862294235708361427159831592875661446863330644070723815953484356521867488182830024390267988730374629901944217210596828435920153612883098931934519890095085798738547096220174319176992026336029787994823583971328414553774553687768617733267756281732339320442392322230039291435871708879389296200846399477492641404277894161477631769814547780260199412022900087406079222251321638990371439552712062063104901547583012809551235629752605109272299690468173841292627229773008432513059643644907241742857843136739621459232616048629306138327053937150935201168445416919644409420270976703307210789745925496158469950633582700240802632272484299087279405344292778577196345899166680331745952314847692819507865733406674200960425677235817032540232791541625320880595287554709962690319241750708421174143491508562551575221037643100222139284136773103876984292463408363420167868515297103725743339244104254072128150928128012133748643245867464471637790879546654299583258745530361856872041311704360822376319778361360626699030348469698365712091416700849789496979034042584266775891523088558413687930472896329716127411087484250451025290639341461340124779804485320541252491539759080733470148966629694360652786386790344268099968696292708503632090626135221475213585772412911856322119413364932020353332450688542043988895807869254988878785089630761451909868443540103288695532539324932733626783256448599036947621986976236266145422434735072813261544180361572127541544069914526012365956066451124290956190559172981163910312984614674051811064960750800185595645991342150875451608332015254733343164316671898430224329414399904816294516080892664302764505369346761557347311560685472520462490217779727928255185681655802588821491623495935748226477133262366945011057490059563990608757606079297248678656890659466553459220707433482168075578169139106305804845311942573231495142339377636733068737007114413221631999866383838774890434911035648399141457367793084072580267230320890624361048233173474414971740891921327030360919769573126158966997234404580141918858275689703877979752917976010373868358467981690202016985855012833021414916931345900667708705881208981793621592941782757441749829349725137566818221690296044324910611465193394336231960707591807533719067867258082344842983132079598908288686938524692604402722245449876052381962432735261570373744931192097111480197654270643752458207586859505650231902485496828214075979903597973911192944784146179402854515218878749034378346794874046777014535402465098943268768855568955328273412979396625626659646014054891716604921779128549823916299724781069739713047919090462887781305083079695157774531998986381057027174877591898144987975859146051369559234457080204787401193479757191359588792326885151929661273868558207441746365303055631411441293377147791715475290800777775582852189430400006046177289589341118114131656810253281738033867714356413148766650540526658282712345792649856655041685570503100000676729912398002873542265950308693988321905053643274729389675872684679018459153178874414110547239886885375428316009591849633761763308464347978642575636022332040733099271327683413769030789138486043452573791460386576024863092161251317719674185383478244752316210749090076859207373112361992880100452660526564619728809497172595800562214945636527830377130699790977423748340851678192328611327318323655651824335793259637592861711977329626946216767363360454660161511996720475559680740460476207996959088988592785344512108212753821368207092546863472905969907311748883915899581116845224580323980627523201519961204855895724454074735850697748674770923617134708326253103016899128312850558147452653389579359112771730460750337995105707672610504981876918284492287941580859115608380582673523808440123478803514666620650365769434477386126361934178090483038574349871080808737529871052858213506215175654157611258612343248850873989261326193794559151112235404109047311942991013669763142285945713246598440443408107385383098877585118774315529803014793266171632476271599014044603010441920767641248401377851474425957188176429078357199202574957529291842339405560164852140571724095365522233410746484262453584639537961811646959717286693785485199615413544187671115595893518652719531839065640173976508080509065763001730445073020060000927087766264208200075891548543506212021264073256220407241873652924354440960883923024656458693891119519892396419020067856126005246051193148050517947391681988712618986235684545345229127871366778641678882257299658668415654405229873885014712619791529678798113779855126307826186848762269134304745160191536935766479588784075929314018929245367199342663535142673137775846560304062171682008237864321979679559993676654870789747990668986963742070839546659153993447293477803392334551796849114081326310747482729717969919877000274621450420988715929376289508494006829506187972379984892366138566345888599623490294427423217432182120797461354760340778003275882358318190135028512433023816496027784383286431587275624982816929892311138108612931525272228671639735281241001502203320130326828827323559247418247753373286639981936339236474402136082546249498546738829784630985375779680934896034049807379342333028452293164704998282370765535703688222718065996958069702392577605527967704920676816343118525535125214545949226237810532491186182381093593630639570061229666148735642724595526797385894394316461489087232337814886296513363864777467059585247997366209129108009279858501113236996629657266375181744316516475681911493214693174755494764928227962545382585851687496062119502590698415212229204308269538768467981034742650862997617235519105793937337228380264050202230757934755522596517648097244570728416623675664007937406089285574389633191495523196195789967066226018960366434425884037721169090014796368324628422196480068546955240441679449867307012641604218464158667977532329725859538172632123583760577919148392576078176236662990190655428033638774156355647874116597985262597358496674179866111808163661371980440454440626546591851187450976641484299389835035808133744736362138838762345973844619903995256262670059320433837994249373074507394209614659130542240742942365588728018030294505562002429115980330911301196772452917458303184961629629859815237452627072508707658537950904738823082734570365909976355006195908845047729420508701829775825819660291015945954602336295219953267499153503194869584276392367722250820851099672389974625075614063613531663931840775924490237522009552591827184337792091907416202752859651862280336323171255147067682716126568163857294585559740038596158125893267096795155942615693635600091016475032341543388185392268846836366013431827852794053389081418948880170301232739369199389119994278626720009897714789634963464564299289672681900817616974027574634911643248129041804538951107533283372265681542688236585611458155278907966525686891309623443679032089344034573566193923246522245530273901285264004482315096775393303585813049379458708909522357540633787478993863046932951012825838832376944886652334158614280720574535868401817976379426153986411018789308503562940560318323577149117473553594596306116135210033980256397385811244964390313387464432929875697660366839666586200561135307251209278470852202571739514951534104156357526297059888975055696348743583347537582506296557057440704831605631714468461217215418957532630200549352125619776046220815531877164569592272244037211953018874977358795834872175189773390208301728703546153181539448954808906876512694529069348364299257177480195871836075508741850226736641251677911975904072271912105320266483137050617147466066636126193216358938291313680573116486123967331231292342341968290788491638181627436611476152758224986214899003905257255556733185377234224794517863754688590394355973640495793145397852441748700921477501209415596975715955312948679555563484727377594909616057362533203634336052026051759360135319839556511883190246829403899333053781097324259924592460086914866382869660573211768932687248635121756986425522768089023172803949862814295434403952295992963355688280714146280252752628760063929075876126173822310039697233311336110729830462522156309351551667295213380872899354329674315831949014645034789440933530877744186051896991259374859034368956284412967187113444844601100045966114929975361092537422349266275948631948269288502224107935376749751522233381811563619514912808637712887419596645090544915692148156785812086903317906484797153650171594438264142460181130450173832813744744353913521356038229141151662310502571364463436466023832943033463229158873185825948277715376342045203180471874123389181952790195163662998719665081174280539865675809072301520854303411774626081114388040529121149275896329560297846854786200210451764918634037221402998008803547244089109186597022664495182626345953096020671793449432580389239398765820159745223145925351353803668695205633067979359564989333582838905077647287702669044119500457105512498489777699881159332384014163410053320274060635447597236337478501201241275500820221264217719731311235439463468503475483403389172942091426093273717828105594176554771040376913371616462314679632906074839590360882071822320533042935895960380037209393119771940422326983690910206593248036091465427360202638298705207831941605718573922989543767371526613678974339983916677568734118223674730500236785433657859644982012447392409750701066651948987896091851122271275721584611427970875515664118362008187584740723030848869058792018567091766274499144825510172353187799422708814260420135152692438531544419408856461170990197774593066082577207378489834571591520004605549342834102965091573568231278801178220309746686385181871959345379943728666961275628252289347130531283001942768069153143971269393724666637472982702325869054661676769390844087401342415238211708301780886372588497528589480009861108546477109308412746917458264805142945984221598851593274051698250273248526403598867969494781473435761373160288876847110302452768391552386766949837196484779405790989138767857059704482773572409518780414573880412967416507660222150399744788251197773662395691790751546683630364491124360533786108879594264751325859798454841803676275730201918386013302575695182466659582805235462851133051215749364613813483889607836911877463967457175779573697574343174248460679035253128207561224650045124195181195779640876998010074323517880737991251194852526250482681775193996356559662885249753418745464882931054202067465006055882535219156054738928570042829923886710052734237225298836270998288569878654964479100757523095539476680452940081155317720637294977216722901017992804941657524035244997847628105880016253270212434742320548492042426435436283351574056054339418404788140885266030349014063072911740681428653310325735157587451604469976719059081262649088779064338235844056228020120425556714534164718650690802190110417787458056765340207319426777419301339397709808524249284860918566238809073228456363422240829421819169588874762217916904518503003108211436649262654586669790581059105371873346487137156263770254145964251939737443855810141564157687634492610798832327719176322122089658297085060665534018217732716155680649011966175691938995864998613617709916334977046715179026451691820128386681486248745115922282322301059555203754193328933180384635708973400021773707389494618520172423123781283992283465707354573591355822123538331191834566882367456254657545688303575057480979437392610719656001744647087038877958544884477460817882456993216044734275231639663359596145493818321202472238783418600803266053155249607591334453371971348059989782019877501757880861236274289292284594879050345831453334865350292214224105416997111495836934802006380566952107204556516436266581801883257654505198207807029306932119933589502838522657103313379175144900909800956588716937421045160506582837429947344247375758898532572379947710364663567946416249403306666759608744329311985838810370535774947111558927814043818559503054191521779686419045795599065323637949620875178493648912574371841416904828743624943724348791681702884941229938616543402947157098454627195086757756046834765451993534337051784027532960371657993623793082102418259858638804037290669173005240221445286839022356960055494169218791309245221250414819299441667050169088543118457257608075391358578270880645869013333932060068998383663624614206949286124030742207622847501313449189510445650972569083480393978884842633928775683063290659563609148168692048039435727719669726705157784532081274696465105259860186756797688198123054928810246316807255829227062310816211974522261463981260496824099184184754262878740990261978183021883499278790598148508014962234666873037228723232672987817882732896317530890747538195442176061910880167456614729556814172985877487560620985438466549350533104266264252180514676081595069107559765791706539480145233024312615177478520594033099926421185579099207030839029667827847500735413047044663617387565606822172763298997129848675172201367224890098606817968346201878439058512488542547300400905459569437530941757546803494554906625636857703106610165677589453829833081049158600441182409756667919675090848936167083153267559429111426542089720572647983872635391734599738130028024624611073072786397108199171959172802104882071559602758167734391047289718704656749988102057420196550728323273720483654137619490301493052782253957625373410502195532878289206083256912141516077995878352162201432625138004808982318906108834161826005260067955837963263076798088923120208621163216938065840087969797358177080200229327319763314984502897954786883558275104743692533985892595324710241973706559766025523329910482594237588040997890531854654726354657873358655677382350708782607150665009448098768287123128252114750839048020201074637980797113941557987821633827925550203313217764993610670966982691458343827997084973819096764033262387897269901483211700803658154932553307568509308049713126186215321699944061085807667418684945539042605150979376494323109956464279748969067801154491901319921095940097280891822864524323860947185909705421398246697663940744085068145780404330371166352692921552500130087681829922780598883154493079298911278474134544133142039965676802051884620920160360493642775689274324618644804581507631338073353392088153978952394391507493700140007748127078341668720916310496684067026303839419978038575174497055317797533251134825039183586164266355017122175334433532524969936192583052157104586351957435496438002328466677321020654662807666898647690227832097847033030033010194676886490725684369274762549012455120281531305048960410774422607112699089003582971046544420195625203507652745990035319687198365030367427615656237071564026133321179213561308410241277806828438521024381681301184289430401395617311412591450739869288814102580630525495529541340013328997764545368520236654698312658076606046258018721387395467985366140504295409233776433539803064466377519337646077653614704658032367901854561330261547434822489530075221542381390404731534739370110679828906801794149128813693968635067312524858841783686458092358890968288400022281010898869003980469098182229309702393316658091046849670641578569237591828154664418428912890592206888748097360921403167603869209956745929680045934854435032729469374547125279163356037147005030496168229542542673357231505526081490664791555189091207463583696088758874009590784481047908690768534250100018268666176470842740912947899496248706655645665446731277574608800600807797076793183519386774807805182456809334207387711977285526067908587087523527061061671063002850597802977263103377948695828228090848613747954859919645732262698499233154082097027531201881874941668052442555759014939827651494003157718576654901329533900895541343500874694471963664239622639815629528509928651867665834616308744901870751147912615212147311161152793693337519081611226368496302152675221588172063054185215609439833961959808355078206529504260814605032644440686895089390990700622834403992910769599802835510942563189522762578590896300550984932634903594989253998432603386700748888828911319515585657308305302308339260577738675859717358808987406137804768736933171535532840189437223744982953064662962655277520984831869313500667657114913505873157265417554911866222418157345195470963215485557616137377968634627798823546180928662356075448893773039725135389930164327533036041745707069934719876095823615324579926054447799630900171223504833390142307939866335379171932946576445143893332775774951796847732810627949054990616886641596410571030143533512069024180155155552144148171932027452975878148400021048566382647023484120613929708590501415587106080062315014086232508853661764836002150462497096750950937808561622887352402958000684465338506265532189672880722087828908268115690079958738026652405724337618123107013944523149241237994042578751021681533895069047922715623974902536446948511428396780148087671259010456288686539977709004265913340910166033458086879315880999709456883862932474117564619174255631188957866455154908617187010215759435769625749429758227187180648292549316860031355526666173178781466393753864679076033412028441697483979100097586890896868285904548706050464104639704267401858261872813705339837292601132807650547956190499306485137588792227753754013875342942728481378620025997737208753960699719454933004582302724198864281259287794263911196352764524217946694464469187776493085808541090014592308710512072249130863466450179215514258508971983532707586011016913645358009583275865951853105825981573485011831622439764712933331047489287038499709402728008814365573058861966670574684936703504185032998742610567961230855863908995784178708941476882768007739803246655485707252784012711170400941718617982665997586565284435551664870313962022290781917953313684340647829247418793857470941669008441525036047144326479038182558124278290739468184022758109022846464911160931100036290331721002657940144428065811907686194644010371854080274573083474941070363584372627976367764651493753004090021199115804688556021392720070188947465126197461011426903685752588719759455599588247094454496792172825633291080280920123192219142505009480993777733410817434087062870103570258168349150431338842009981847731246275756036301218418888918842445317258990755099881386262188892885565381875637008784950292887587608114720260115987048779109084513281255234612131207935946518696819808425650526159939803721590080523969527934318077791105514059436799653140133979008391586889534808242292444510075562494855590076689659125308462987897248864100022071323745578606173724191651024789798734346595663078541394126671727069782845309906117883963551238656612964061084046800291172660011965030770268047830884320804574103146760582484985892203022104013251877409876917352558487032278807389203150047231375764521450378855123876145318745313189148287134886115693212443365191046909492146903526743777497615347791125840295817991866638961094027798831459807091838162542430835920930955667085700718279385531890752515831026748335617629304099502672117598366422835553074831395736963724431979558976295910936103861904705109440236274704248434824910703880693541711985632385401278091290901038104752531200485244927570093519376883490494746136695320125932220868302411876946535300217665344431998433456781770279080523177571131447794440367935381155555664879827372488269150934823571053849099142047551225672881332299422406921661457268103886686925120325972655009147252340929112048969838362476156139061545410098227111281137394791072967322254898939157010463534878317902463452622527458782105630513682613672804056139528560395405679697834427527250591560449867563037879547287748745786883410770807637918651426546582481294660175358192674194813082481688298202658676869699575378427419578047305778336613165491631608775032482231109425342319939641463696738714483640974632260273419834606029792855353973941014161896976227967615398964158970099604097982674918899127082191194538487504762217491480252470708691433282179342050803259918275473091376937622439688920662688699789140078656362981196160573557096262952109444280319307968910026111718681902862132914824143561221471573595923798336497232360021542206469257158419140366911132860922654360950122247634027250880808286410123459845878972901064150797250600261040673407142855890228895706740122881729956896252158415730320432379995049857622017437566398560738769435012605001859168163642001289985441956181636157857486226054944419165782452460771967285903665932023889872701858991014739925810310307537226495314189018829722627906231720233956002877280167227842769897249117954915622884179392449587164554841431771150652212611656171543744823619928844953079887336460753228215736477591003481674209564456586743191979786684167830674404409766742146351757389383359071906241085709639909660913447779442551317133821718162159497081716145192660106652488046670929034054217633042608100723148645277465001569720151953037086308953726260421064578607039229073625563428465007272231472078826573613257975364336003958274078739145534857825003631688812949584990680139817727366971610739759510422652497315608214387404259374686644135656409201524749224946246169116313193036909897518832168312230796904344563577102586464829973715408144699697497468730480421812790419518747399759592733311438869403820464237847587627750087109764615423052911721134188766272421408360769977745319697318198454922643199721380426272338263815731378578231299157516671686492172069583703739939264430807930703339836939998981572163352952748023826174470303131105906893700828960650699753823969873491503429645548302553760058828939390797023733698529305928909113406791378211618803007838310228157268784901948346765930467089070364671332291364087070218827220217345561848410807554976038050186459788584316593248730454043818293306540085662130173370126341078222757820624957952479492083169207441737782219037689585661962388760969466949369724855331283379564914735168098983966274628847052497066638298207202454573467692654589140607228269993266142395832263693675447609514512284177776853101188089417858573764180048873672447041556148463816004384407404226608996561249446152821727636211677724411031794444423999641226472291704291981299687742742763171424175327222187170036898338035385761343543331883731907091619061104674459002622500682365434878143990305207920602627076401919287568908762835643280593194766073802400725753223575379853148659918628666497439838625545148930910508800208950975854926850389321990949898201991480301939715902341054445573586296606944928687683229687952487015987848149097990834122446307764151006218181267410480422558075761006176416269949479774312570005732244538953153034208050301647826995290779020286645494247320342108945233516066984004257231111887927905228881438356536199330482621345822180234418471555690078081897972032298632823231009942329866240903512910631183427570252027842792215639543269040429563309627098269342878722832424108729899025344413800127506189744187605832585203036232281611985954625063037869274709033275719482719764683693749666717762858003252095123828134523895511443570577937079690208774316607917361460599450210745969859303799482753546504374972348042255907799954688276910802747813406522618884572327775665468637679687460197965965810672885603756067913632651220719642169046599855645511676426452010538599782348599974945371864344871283634791975905401298777502960170895391545204418698553711391320507362329306516141123643735683465102432044269262568686815229778825850830299540840836733501431848658527547973759157269589656662739909488857314537866026103379325075874714626008309061600405430355040764408955990353817161164765677923492617473922177766219351061854737042026213234825546959195380321460688112268008485111737173740381814147824298981207290028424844374186046262886412147186393785206985442854407791065033966688178501303052692581749227028828924109794103030518874422035528968645978076085720259988408816196605116742065489268815577154122336558007231920250717060738610644899260048493952092830976379751463050153477105791137837753328465563859944973561649791204383328103944920371357086933684819870970046032499227771990141768303020790675283312944371989898346330244929073463502522988488625198474807376445385240187937373013589009633122366004066145502937477206363777640561396292481965673965803139583884617379051098415260225363493170097469920274003426832370689800093108312893491712346034589958693594127189298886841863408544652779251138837676558337466039982093566428250928382990473046681751522586515258217335714343598579679119117535725030518882432466718726415552352834412944742988664395538421256633244852125842387254483414437376179098326506624462050927027828779500986092539102305438897418040073791325120819585575824501654373626373972237183157707956671093195167395419119237327750545543383659587812300910073767550905062329860972494297064270256887780312266020513086382668031719144733490237258864764019564476161758042363510980756719578118517978575889972499753543616228206072151400904064597709127333952730693886624000174496446322239049963441165445694908986707256259076929618966577809273554234113031646736346353717666081844443996217545865560521652580997810571829401046709300471920838520386700559282117406848466524617269756588337420005232451826169662497375348989702350311634197321779965263069189587113331779534247204040636579213978742513494297167269870336828187459384421704174185988748529070395589099130894641978524922458912939894180232878613669704563646489348288237623390386901454179992247517393507747309191365942418944570042637857220788679328190761810011488703626215990869097769647186217396085910405960702517896033841754328009328724074118523606918522725692824705821429251284512735946194879442694205693060323737441133120184275961801035408080059171505578417409083371349444289176800119929977712544029553134387655838793164244966650209557752123234684841698163815671066318473216382707254326782991437041510856043690142895599400416683255474438086287956217693994142360304566655844100671016270767565478822428990374324903001328426858525349985675456459681868864024444402652547065136327118662908611552520595856602498984164219166276153703985207723035250935298000875647114857775578755045700740791418195735966197624362253419684324891924656398152227801044262927978986195770397918401434917616910402371457988598828041076842516986498502419563540068329566168631650144826582379755308430468771873549386842155444912099500890267220042058381583522423546417128514549187421930433062447180268492267275181097003054240032378736538455132544865122460322419413378636934711738515917703114238079002096576516665361981262655944385370111669810845857329056131417606692230956545276602680674422517074459216396734148745897800042404226994395066504761258256729953519333802242190394731671169785737861104217397687486924640214102139330453086093823745588494319748592540205800819785960999369819280746692993024935746108497608707375778297481062909609510053892134488107999915597134360636123410227169271167859225549099157027021394973344988767175476357646595445307778011087989682004490192159912527917418747042016760106845910035749165848449716622673157885200540040204822775328432004045886817251772926883878357775292486916224933000717357603439700434793205735149095202940901835925385956194004744301061208271224939546755892442987726316032555452335925541001321192594957664415157981550564888720050429915727655255842972634901863699612183096565142594903081027061697485177158311150887159198075360953719231140985899032513608588421597632410152627318287642888800763931070534727905463908917243147478603595197631534245602105196361381235974588045029659546061331118229294603132652764673433201641796682858026547541063755792661889696781310330479896958513702295177139980614628395269681494289952653657247839492827695372380385954169569760677039248124327560396287285879344048653171220446908382511497591359824172678855075296840446350671899017414837280881379779439418126846023521392522351749128631906538916945604512834716855072716753684999751923660759931892473384306717059682706663594769267908807037057519142608939570379106332678957516004386430319114445738242157541924060465610492188407101216865128123997781923374585804216419601739446486383415900667067088982314898633415190155435342694108432807244985509630508731538626062405553533358537198631320978107496377941653251790266699339802745248458977378690641578339933559898321001980268562135953224581679030121160310614493330713545879105740702801249284836588840281377849702882640597694149597021286796943139476564397295738341399324969160945540421569888135272367424558500795449838123850358822551929975009780768897935114580892712749478494104313541026128549899181047522320670111934872165319573871959469696988035893331980109073677972019604206699332810178094840681932081674874623114939336193225347614370514998728284395381463470342983994053313388579189928263668963354217787297025185334366066144515587466552051581954557293706294802825349061407787836682393129670974841114315186256026879785836742474625509385091591188797672107386363897539262763490788611372983160639371284641603589472760732195984872627125022616047061305558652106839499160856908183108070843920174759123055009787012663158453184942123389715797241388716880334807747814503105801347948772908767012757271247842076059835889364518763672665633774536558773181628888375083446790222580751548674181158193360959309912790491913291620325912990755636799233407198771850272715408432119716575108012201640885983529621410417568092241266463481055846478468603569930885688962930603156824274116958883304722722213491913242138389919516767728057773671921916189128177767019438129231341945693368997065217735083714429013256325352168883586825666914999996039315761385465753800337237176974040289551755196442926210869697860445914253655694173645854581937111497957647830343944548640483181399881976902999340884353294562063571488028680465821477936452187521072346059994701640045391955485318614613306425330004944723529252479472848570221761017707860125848223280307242985224600331560964865611666507601796427292179183828393955970694673323550660952656811865235065176115424804829515109145843372372273110143045757731645774850252578585314877737570853493938685102987514322029021532179759795623991662058555240389441322235377812500135827541165955706824787863081545717918674307307328343992174100544645133240007924015934006372971227715259879814000055866732664506310728212458786772113505900066200195556408403758866105355139697776721487719582500033828276777031452078245673346445714795839653481556894390862175635355899932250339231918372756549911696861018086844044541666296689876971061668722049222693941570041229678535394066489397522033492536951920704178625962539027075262136528063706932752563864697709166629055033761424278167155448545751210617631003932474897857638328500217668979206632972266344253591636195715507443056714347867540384472883073642667583377979540259978102675120943524823049929752965300513377851023627103492953811933418923159887611642732832130928257476830144342947313404759079373377153331256516462642514690240609631234222305033381482279506378255077985778263128379420705017494008529328850481373140226254218423722267500599266264007784890956136072656729473827848135722119155689738733902334866917260322900894459020238915817607146841134413850723726633375579823162270730398024667712915848057599510044378043955562551834064326909884647931987069251613332646824603182376723617263896622647584328651524060627764764862010178001196375845116359247050700863044005089908143608882917670358013129398514279095614909536396385356771757271236156643650934145422141039201467872568852108605602153323162282852117586859471241319790252741360995564769569304874688494716321455563160019189118346391749979834193341876913408320884630341711666457429619897267882707835537177775410990212985001185582394745866138193420997012033330359968893913713366599187468019688008952479295080505957203115155856250104666302891239696090831818590832203509382598983320097467628492578162838558688783380353351361335483467834434058108074803390798321359267451493016391090826166276283999883781425631387091765427807395550910527033076591361501643950410829770283426443678141669126444228101747329496295416678768778293217276453607307534550689086712110546106411675301161570400729228251518973824989844803566943109311753115707884331052354618237782289499673797294402550724312172324029721481402210394942534194005956638903316606076808908456910193685285657617976637561289781836462398587945762383658592921645644647838482554666883942774972210205247189830589941050998996380849111074928714393178992400759879059665418536550803690179386157634804581857339613055886682582288521516485468752904521338582588481301500998404739062899253835318408801209617363597906442135922788230819127077259088372078166507255696648773941771982734619728964581193312398666265742590494460894722850196847583123612172940909457078337709955893617048350889234407364008657945716844405155699222641943376764519449070989145349500852616749816509481423341037843826305926350881825404301889871657235574901479983215538729162078236076443468656230887310676604659447057014830655400196471927047109334998210141077035268907420490952153380339541086849435967819507636601820802800433482229580710425722833800042869825499437479767257630585793361831153899968828443834391539701316656892777284275766941880286179296974928956980322292994494500371948775040768521420994122431000072208326070908466887866892508161707322547947825981489801020776628849972556911448461516111790421924967832415266182287204475480605558038395958116757915963354936985753760518325712041918806824982519212366454911574897649989604522350745738307198490695275767204756691616475034257486813751705635360655435199579567494362188123633368620387932373219979641527673771603732416308223774166236711939640356728733025783037043927141476785997862929208591412179903817624515081606318533950528774231357166690138620010261780967641476660296018524664235514881190048425545678667271968270904494534363210134570131601570644033678680424768940936046374512070095762963170589309499638336660166348838024102583514913634446878717267492721617672814401198727429572614743050056546114563136244620391711438650681309594753345835020216513403960330679437817246596284190447279119507606638030780933423254029163360544185851177876878583147733152459835729967936632330418622495282137007969905579404234496288861862236906833798221615909740760118621078838860874747904645078655679466608871973134842281441650640052516817185623312568330507805929272280355611242276258527079079396658541926298909127314935862102783288126725825537601389139794748272825284273849071820189251001579283901367211961762398244571685675700248559027659827066563635533463802279018255622287163633966078268263385668205968152338643766297774213227057103227430394609134893067813774024839050243257447881645354354335486769908234891814074971986787671597570936459078789974811315126192208399547556906571252675047371363551256988366249428687319139672205306251278048965463651457720918243088159212849302215494335603101638616174322813862405814736267843527512769971090182805479258842652115409942435384225642903391568949029663258228306705818157921976070886772798656118986010480960617475723048739653167864708502553282554491183344073208472604121318888871166517375067633847277897128564124653298202387440445443575593275766889963639434857886863401026788078558644177775492390487014992917516680643767617175701062640756690833209439076336927346769660103841987842905168573423421642643110865866900834964165343788111589172529765312384776525968600021094542322833740492736666915740719660225414592637110509490553439409194661792138184533300494193004731815383047240990670699298127599855678003796544953385662790935348297576573282958149712912655616624430212917791015025227706540644735556282809200473899831723821435275906587476016971253671399608732470750825413129686003841962425018781785833921360827867802290383353622588003682054720903926627248633123478517625225129103404730543221028238320388583355978543686529831745967296364557962895302866267749648606909791910469669855914273563544333987991180997654524120721663782088520987901018642312275939504294810003041727812893032843787432099353076986500976909250824528022551960676599503078339455476842186943223098220096347623658845340504947817570364033699814466939866423618829580350250698646778549406810221999895727043528276955783416268697508558319434325563900830514038039285340791237093672206596073275338424883760798448215631867525546986512275365385159449019293189946126587715489841810120219210721808432408389915657156785279839264227643818650349185952787044785116908719154180821656469538261991389721625033101542448089081923383208048050345952734057683378065896129815107722903700387972997962108988838368351582148128946180097079731370100979102247209467445478000507402087204566022367806469584105402711029696347106524439800186074207766556533231550575398384308527857830392200700702340758066922797004540503783872448806722165987347451608043929943432926106994500075126773523250743952677468723496079936969047262516981820400455719711704338090507660207064271092966817192592251653824578567602709696833484991353286927468078927272154909151349995795169030740522831915459947357871242741115849671112498648482301369324814911607980530670274862549888833357035108110255796451698713557406123809341786562190114904827711966536686750159335702674361133848710276428944163651347901673954584761665132684015888421091679296212551037928429558075641396811215014301420682400089875311305705882925707967531408162874006797737511526581706829658946437227261280936023278066275532147669628510460067871403743981870864099380987794372273322632919203097761474234619254208087529417949237749580775702137239427824730828142584444776652163569933848966520532301987329963429334776793058369092578030810096571765705060219143416163584318964334088971789303849715409129108856931497353052318423474598679058770196575727184387226228650874164144560557781947760421148979375744536685621489064564413805292990942634770087041232523327144997344283685795498588338089495453876786079041354564525170644833165115887402016174310016682019259388471943943777818419473654029573706020883287289251860678342692974989889794730983665353704549877236367315040412609147330480441877551445237609760219655256177174514787054421021427902397117289527914062115840530819679384698258390543746860962880646641417966720605584563403061464283361138092045906465186656136107429393426697027415492846293352790249507568375279924677576936829599587920853518410784689847341802063816046836034991634717559514995941207414036540708632166027505568011910825928000101949701852595360869859171661791168957915086765102458969820144251229724020235658648323869573224502174544306281357560379754123337270274171110931648424625487768578792767609826155197574844222997078649616428790201238721532127229828101771431394766114864156486070937934254414690184343609599603293769261431589854518434608907351853609507382302599021347936974081299461814411009102322651543537806686701978968979458528900871167065280751626041915197585978779339212229908170413084921340134286033814152754498135366090987109438327121959595954592779068641531512325648595206509477975815913177760302030250417886076784059050548727599398310815211425501755970786985139483600170077558168952731690458255510804860699874113139750898350034390246212640824719744735179222050292949471877023382153756494614454767060167483633712289210778384862390470236612838194888848622793280827793345565326500263441849602087488117889284342002106274377175440853842844478217777306681868474852790517582517488914408663417396881259645914643899930885470101291932100183295491794570599076007876402069959350799120303647306759078588208021290354989061349638901890025460469376023655910921035065082219898841666800744223299198258738403963786451262674141116541778475273078150825860645167353190378253565697021054503408270670193374853117253181461390814858411090432313220527760387553304078757303381047487367909725830380377742050430358469713435827133120910770262475235943196029128699341236088458271599252484376319216160676663476638032851766980038816328619601084087576182008176019582275808951309602219457769397818024901759681682510156433973730521985666174781238679378483220380054118888248735372192043286449394577969161082628963027102597077549938065272777969427781842502767964241491636298815286137478281181380807199937768204793426829595341420023670986380405388745133578422615940248615931296784993039904950792354962637442500383489205387830555912074764499602202097559898262600717022091812883631444131391492206087072458542348518922910607696050145965260242779959352204613524352464897105969623386895233414437905357492542511371373594938654011833458588199983465495235425821824835688968494138702282229949823466498905243186249064808372039132905517780232572622470771707463094076591384815122680656487940483614142176096622167894941532299229658281390038187585795569936078227953220663683187897837034998896501097591673060011860446164328524507672726755944048203688887440731648365769724342077578963087390117154137987278714726431686259620018350067874851393008363094159504839751178670148034550760799929308183837554731829829708278638378546260549966198553866546235792413275529060775679587677755933169094333144989983266109305307452816381084870925680725828028909613026295846790829838000844913778036450662283417535683584830147651568816456784732848086919779064447648548638822533582515710738010106163889381266926494056262027392931691406475001772652749263115313759818243087982990184562151372587187003129302744173661822953128233908693023498679718663208111886258543052114830963266960060916241342889246013678469616554706968017703132998932587093605834659399995083403782079390139724133096566655723909610290679498661049589613394312036300614914201710623390932404997068381428319402016538308529889639288283361608935029576637442661306333037903135330284118905267365001277092117031593538251630035753740082901905153561223679540736051742084084021438316005794618643612122544726927680033321740520169010832791499208851391993179518795513300910501230980185190865346965254768789172323263275126563341785273194199343793278500169577971301211893603116218722246181701832643781375755663087451078945844122920613710656534049365351431919805131968163366428857045102664792978618416593476255680045959872204065689362731944455160737763025550424053348339596362562628771450074455996034309470797897283535376595424225939380613225221927992259785767532165699112539504265102211428362715548943938443468034966999456615172541064533150045201146623929608576928184619962127282544726871734008352780321061450838717929473726902666656123607507693382143157757812042436193748114366625033229645808785829507082903470796606648133275854602533471244582362069621148837346594757668951869826592044824692240679971569138926515530381097630614874855880936555312237437054643900718562413413332549069286231341611629661788798456807000410740156252115472568430503860497733232658777330804173771570613458120144717423355638283244863353607399660762241945967831225048856862800418163643346768382542225421862387756288758013335150814603822761119992515536859538236229314399690122163597846923556447857645290234098822298433382915227132854341410711084089782921210474206990915600139138740629381853180220684520360374740271552295728182459683561397551904473621283444138172985649170877817102579608032687185980115876879139482168848185864869246357350098411102943886587936750603664953716475978428053668109985773490225115036874135389608442163379383059694562208727588824566675450367320379738968504200090091320922911244025541382142314999197695426756254043673869305788005124364054099688679502562707659580166194264486936804588493101204424097724514417936890393661543165836578815681245631586928911018130740654668718477743152075064048655744725558526029298702087456114973932057796278964811152215027618216021087338201557958255926133038346802584876308035648573560012889073916277014334103933012562280990009285680822511317098556739116447280499943944211284731730939884990665444727315165500418521558915673194882156787484523029208974179468373291168972776207316781672718058239772537878483261072896705422640517001960744029049866325110220966651726796866694904092327297458133991120045505724654970913652142246752074307090699308863441347771772815386574003997592389722623841212653422647118465006057394997536588437621604195968975719561451835409855780700912933231132629416893490482074277393272095616730615218845208844362487301600196846714124088426435118810143295273141206119744751802845670573200899271355943296346914166055657254827469022131947982339779558150048094362214129800627249852758219775351940215147499896445267009329661157745644588749338335812387989940499525868028571985782628920644346362669110161995234262184540094789678644017022520000374165682313418714821588344443228319253404058555934667122699757316520072254368854678446818735251001674858205840207298807598275113178517523189427829997944938018431641329612989716310356086575231454724611879453018183521468215498923488820283510074835404339499053506518947903305120146689379041373046848829493463778504108439337017452846705081007519764526518904418745830098395077074718339292691987370096650826264928908576297407708495725128532594635963477124918074544587689671705818190679035483728583487365938595415707719091929512416562526654877944783782028310679642850653900557446274560076727286358610813533385073375447161463980957527818184341547000484629856622478278076987557446846419981676805217741013992893815544823616573923148189601779955740531261350915119366478667512246652549184474410791370803416618774379304767485920360055434150354486004620155072412034957417415346467501971642906979096455152842529352801321068708655861038298304698932253515630366082075107221240466953642207571511452221693690700197331861936919996357465450145600427584134079873202466633066344710926417042895633012869643593697168718376913525970627348689929223274911813122018467255611989542382801993929877878838020477790543782953059275620933157879717728209024322317596201587900931178172734633416480782263023657457434978376968885330883793234904206513671681280039135048204706192902424782469496757770787744915641772675166937552496932830220823615427714354722626284908266548640428622411259526872128595888201299086205915054235341660943873389079079291137509599127229050903421006602300116469596766545382075932469825131105753522646366199045164305569950345074146715172503980029950428087516414483392259858333964938808192683706263563431496676071227902170983921526201631770335150461372289980355335512233679951847646935991756322643558306035420658229959275157582514434116446316322225591373667654914498507890917136846939623691840912426946208653883945933398197540559958496704034879487532994322816991447778047953783102351556042596011055432978125574203573407620205007189193774725958026480705306870274931691199021698813276916730436855880660657756321007911465131001912049028017464245809492008671886559131131021186909943323171218405949463428664387926424612939705385598721696915826864321156703273235884102182431416124382230849774182747096154955963960320793865418723975646037357702365780796179750087737132920203533703626925060724697491790433026449210895569736626061044471113465485038680801979593412633209278454412392302948320245443763514589026189564369716215270333322588088433026654606679575160585073577441209397077509442848862211601191683331715758868049851113028100823252301415005278553942785838354595414867423943343809075357446279213592819060966019596582572612930909163646374793801249815222052102140284699564805590252469351889575052278790937250937997163638468626773066802113049307475851905888774045616483127564179636719957943579866046107030274946906232598142740194859366469589927627554479040215446880085180995930726298984925457961039189396498321377485155450187809804698238051810057523202383914042163202698668504195278787980465581113592157154089236551143298773194572244593389983436009497654347381491582813080800474946480634125135122200484401278225161952346861765891636381015766850984404966621894310763290425707086949606869792901600690001840416754175138042258725915256004570953827431649587285413957506244495116623837023144453208566791835535199067544178958095160612574166384580396264636231321123102363227599264576342346180451319260825867510357137238904313852001628279328541450385512508231137877592336318893228979946666768633862881279746906050500121832336915620199119290266446498985901759232948190562044693552401562167098845961789409693422439006717567335596138985935913248680194219665908037145590213609645953124067243355985488156566680725679117114885340111478098254960947816329146724560822079794108021012077038274482859515898973472362996199927057119523915844291680780472908619351088618038620638501368067548014674932184256905649034717018305987991923620233264605426079823029427623439251900306793420590549074485600367021579736528728367359556244029289306472864303038096287583570565036558373288458940533268937900697789315215438406005526300760938859099984511867301842616841050554420823000333346739028362860699011166101259181865768425468312787457555215456921447134616440107093451070580547622636679745672027148356486999797584021743049678828485726634200648209570586552160003887616574629298269228305643738713218488854677606270848266694214272979015356196478562536977350066099959451818700617625080204852301845453847816783049307524528857693980488751940005136916550067320068572452002875846289508611036408421004589463796124718376819172238793570786650673621606699102389139381539610150248576645523051948952811652713537790735499167125879525606140553598396793253142275149481675740968157941464687606050444779426991587101727089926529599421664676574044855806580630368640619126515737260886987498007468349972586053561297276847067792102052125371587355148701949490147699080404894092175249393702478576635117609988467433540132393557425757517334940239304039051142319995360601186811591550878029181216129243338702659439248793444396853951738265642915843567579576300764174007772135883378749392715696578894325281048716149029918182495934466274605243335588669577034980784197576048479388836312633554697667145614884828746610495506741170583943848568808327311472632339453094774200112728051643469101606615969451135692747609631166953009866782566605529952834239413260315967859600647517425100901496100581571459294513511882228925699670611999296529986736450436266510187995119789305631221844214325138343561752602193792362245721360545169800000936653516494308639458706596139977639383667652936156883594887047442021605841753489996941486420016224856511139548050875275006458252790721807794202832831254047981075379747550179683433636618248900773705696725725148157709098592166559010945833525650623419636392329237656537603446958378611580808358200002683853677160245775932874646257641411988605532715464534962217622301458443974215795071177660189728314526650761248495811204501441449274484310703078828512307256486901983130307271034326253764801398861815877488904873461740242524127239411387052700189371604828146564326823254547652249012515035471627656575049955028356264800421058612249518243128260806719368909434643205649565319355739766530502473321916754073607627725506639302180070943674762733790484266944642826680872337501613279313516679651842337219037070759527127844194338617141899508837979008357205336263869492200207683755273481083017529401086242269388672427621451261332481507600281658430369234760476439432529331045462575351416136957358249541062504855953338774369216281994832344880875578698396451178961799157072655849887786379764545539992432333442120700813341567110356825262831186064660275573640474339645397471144620765663129004907608780958021145002931862387536278525677040711724475896580047144027538915612881715331916045343953050849633047585596638710282612820127552904090595504712253299682481117049010748761269132409384686790773673811955094409208018899501275735057348879097331817383023727490368557992582284134347980684767840701413620535351152639982177267039929701660295057931328225360701737657908409991022977007468917379554118449245356225172575702320783745641870490568178055042684516126590483418167620586345475700869242827204910006356376556348519995394689770375993889704576810117800318508650637505777369187631635821079680600670681788458545821269038336215190061341369539987175671922170293500738786730332161552531457655684112767541455997490892116377861266861164574612666696965963882784355942194537171944161408428035808972888660989466986986318493899367051183745601493848909956453447612428651127297739291454690754699899563640568475216033457550530580050599841874764244778962937720971341142819732056722084712049397552025569084154929294992753441535022878539035879434309832650841395664396613944077792250028122927969555252618674785695215269412468488671642841289579260661099243299110469195621677922724270835667429028604424598082508029213855895768206873922723527328903037540871914852766191445206595471264118176769868331398868709347452536310391612123728647315872184003884409338671670196036703979236372228467436177016822390378156841256285698272902425623896012076874892156325693862906592557908813228383238145849819107869663766309955336441535413326766439347312388630291717952765721988235840341832851733856332280873504627306592815111418524354963086618260994439626829488554730060322657099530145423857214812833472248730570043409697146176195898140808850761575735813636608196552850180986791015413612220883491683752209141245344651491611798085035237789501031898045753854245422785192554416289457320308852336375072773941688051475467315221695445606785226420803190492467260635132889833820875188441485734952481232284355891590835040986670279601669586411529745255524034105132860632288389129253115170899435811917435359030933118524424895645641009623381938929305887509664784344297606598131711364457581616006080473953324057353373676325518484224557074289966539099162820953192313527377141779320426921489423147010042117496486347695547171560709964254771545706715382615653771722215234840143958000335165423242177834433342887136402325654978063810889560986323220310128392229140509765809743914881237266325042383123188702481488263946429745053851403133939904275163286843450632948312085075108899549161545860268963985805368819197190219231348382963935602904257824100884611070065869909603324443492010840817122408826583977067320995350158755980776081624630542322933391243405282887599452773927354587495135575978047495938496411621592497914094917710946422525379156415357544018009605380367135671977620460567900184229607933795833240287134800833886544886724562766282013791496336310269538459768190806632419413756766349419392052140518048497891867174032596556696919784174848353518525846481614905621080706805033335137357617097692825530181586095243751630127832845579148793944057252450212749411088382017269658036097190965456585769171941491690669461548379041610130089979357172552020192955787267821463026910837991304558853530759907062074904062840465204383514012518565042867469502341009166749924584957888992283785688135804497366674074257563027793897593667656310877567993833733179747456106172090063959001794470911994997177643531773856049840820414431203456632368848210043056855767580062559197258473412338882726555402031033393969314075137840727243583251202191095689309288504734982480111276819424398010255185772099433548464178215897327786055146278511722580143857826051825871999516699436778687987828874172210550728839992169292249445429893907875483399308197285205872059844724786978198722867623402025201281375007637294037712601637964046862040251912601488615241638847156490678807276831584223329264344130975545011729235094936876198758484613741526540693476691841208022659525877117746164694298831524222030086930934701470276357787371315648389662567222961268452877946630461326214958030640654870720804722076630277475534737812059475259544499097549380484620138449664579838180428243500602348421134142329399514795529347894571168317617654532465337821320038282023473425760492027903299043877351311985019094213162147906839132198108591624941324015994189791614757767513705985191916674748769700629203771552967516035549108562440763774968328078337346748710746345419085145135407357191550984260597757656485692706505654691470214357354867977041707338000834652051148179074335186035627225726959861015271556390078985315766572322748638531450337283702726137699648104998844882610857168357202092203085186577212654451038708661948278749051480871581752014262588267539395728331912868890321558706665753251042695793492010269831541432328834680051481813644086953855448808208956043854074195903913374375899782394536980309943425494945565626980780661907671988679743772385189636407001382668828602470923067678376905938632205092323947632975170492975193382358995501121819926207378898023600231647067064757898501563230144172541862842996299986102179960568121877350324034118049590104988608857700958343883606537456175880532534705299356092094059644846209120658974513477363634033224825436421170269538184946414427803403186501693277826605969785026599626225267546663009822775798140593113769668643496386010881579114852787420291201671847705635536687531935657525829803001968539083177835175057594107578918848546942284382420351572989679846588516401469318555919584438834017028081666732331754268113210038816181112033718641839242815468837971701286822795053482542511474583891148586460674838147014599509943866801483684466037018771919142626725400742715639776615466439698207032743462917054069880280332795425222476683580055242914848964852179413277813427413260458789676092720297196214808919726216464701901914947964361916469141907490669930942544529397693417624147610015607851779010656976889715989902998006428205339282882786870825007103256444497579076465413952035952939398926824022756233896370151403036592194085382118523866310898512325406546277786053995333597371666583306668672337356207456309702451618460165991434160047529226530772122338576844714150160145095745323988760209127769507560930904570391731024057390198297046786325534211459674717524416527082434631282205355628753540842055073877801629182465890913523397958712561920776132787206014663884946613370672160373448277253575024695079499197671514711002369609788991944992284925412004899326043758533402984640039612507513097160269500547674382355335982896406666868276093790524427279639789887537351345398097698663198577424829433588890270769634234684553722459180416340626675488017603764023909284855101525665352194713721173545225498685780674681993447654352405887338723574846807196059668620720023498790005455470818147801437710664042043157413521070972403795707965304302825007207853259291252405674177654317051113740011079365684760264286301383794041231746308647926969528712866484400926329392208632642873162761380278950575238879095043885812858843338197624706753006134710589913812632772190732416699906462617622959423253427570975234549835105663338045509750685598612685714910729046133381337831165961525978431523176601091634677278385545450869228063375222518523505599267381586670095493990579335113697379285937009270175364881981803098237433972348378298427320435864880699307461988104137944462755411680948415311179731969072282778702591681435963791179344563219187555267508241026051303818802324863321174139751337215727682260031015486011315202667526523991302678983552820548846696567149411056736749678602599742116841421322424535083198487597931021215877581886493530656664829654320297174798153475927953934759015001313858885038428238946707495518961885890104763624090272985991048540100590003287280576280894994130972305120913118861973750473032739629548214543597654068053494051979982926689434001079362056350571255361292425586503239218769498755329914008475240027361244124924245188898480238105912997978986342432068720557513742930885540767048324593479652578702144828310725690750002496976765518765462592194909384162017145861271351790622791116855692245818747146296826551809379379426792354365515021891604908765216649696442678389137712331479287847997694844152218971000198128427429554380904079895890407317086961624277161044416230948554247303681393247600883414829637613444619879663774376266533913684650609024478294702489760851078985234248685195657385335494852858338502517493420144360064297868844365858707486027978660632777014475867341206438059071192178308958765443358438469721553966513681911963535302669179624785631326014902602277508340802998828265916419178154266327924458419541976919350795173996400685219826084688633830641967186296960332054977669937701163963087619462819271369130674261294241253616280239541924327704879559713368685605406023022096195347103488116781368694425158460428551326271573129148728982763405628756199594643155389382220601305191778119407095024444834240654079195727639738508344755520057889222978283591684332941473116029323394160636951136717942158612281439737279677834417688958889718825389422040467552010471788096876815203866253993430833750252489490991060472398155098791351374892168356430792997124342835903049068001978388613403704268975394150103691335712552809481025824270051679266179153829757790680148405507536857087042468299231424745398835971272005228716588505623553968793801970785263736740597034290687943084754767769033703862542756385921321079414960532580261533866006636445123582719520687926242151795226903138073496684583052555773364143255375181401022174262848968250846240547899243218532228126877787911696685823088047696967793226557330032098435405926813322847833538047554615463311143688316178464997133716333271118410882025880815721491060873965184912882915896063181386804372537355907503581214411338950696616258873106047469925112420458480808193351961646182440556343900668705670306876139236786230407241240503430291669348843052526334115367182924977726846445416743646019956802376545062452401635173482108623626451733714888015310367998453508247322052132717715582123237933218144530769402975760107505741549874029392769734442255520244940087686149787792949355377606665906646405193136600186067241743074179886553212733940814810978431613184030634806804540985309126176727750225663573085659228109558234768604942780833793650698138852477640427306974568807814587812584768312767258842666779151916240237647426093477995189716341014471599365113398880237656956015275146935155166286297691722452714598400538184321190042779706682126476846097041968852369059090917502248788684975363783507253096627550843848893589691088722800352962938312598300718848226149407989533573889370969251513127206865075395382357595916302514510791448254794244726281835698227635826769301087135554150386215618711587300622050792629834071161146017031559102855829734653236985147950104940178431473591201984261189308206217282914139340558785720914374781213567345254549750296426053851223381919617632090980622940862460393771489641019667253006964671090206614929278198641105139091353373173768531958126175247186810920177017516384789977438965961706226592175796156473152111473318480949032566883017965612948013400327387155102992076629778250211685178950072637065354876883149799509297274424135336273472571991285093101761951710578727874126977633928309305294772815025284527208749488378059977017476161996151444424080511872226418222394456769614042290533863845836321829976000165236951178487016658860723469967542433666127713020931351092692852646411000967971571398437962946580777773319487207516133327566764425290091527627185279912881342132842101381857344442871786098336505946067754744635533461750986209549843734946574702815367036791043661149733458817533187487257449899689268081227224466970151301547774876333902652868655499758653410163665664266834623145356907972354375885320654631321752637000581167467770914710512231385179653460812753977339840973840386280170357720328716710868355018042160213909277451618147453041795682492752515912808768222660212899233862957664945826988483295486383353760531742713397468093487491314192871677866303875356395599994181358713018753003027789850612280948466795647762529492273779467530488272897299987869140075721107933512330184582372013566853647125891640814865790506386090877813344983216447814185917400979159503288945074040368513113870238089120855636344569992665348826073229969784881658030897715250016621413269810412382292920559060273489957897011407520683688842253454946883584094797028056119049872105491861891119459999810803403728961411047982495608187954492672294072249363697706733491333668396012995179716922166309575567593766693575918486759983794662485713696061097380921339326825601720853440442025004480134948610869953544936638384222441483857431841444150383108432071604821146969334127140513180345760698642242251350809708618008843168937152187803059187130985067245067453542460881404302488587013288375488914714725926407380431920339880299306328441562323979697822632335770428893140231349545431970505176740866204883738525627480477585801169806271995241890316034259616370634957031022400473294476259002492072445450564773265728552012642414303196369051683184318330728278400296435942610166990264244603013202715055428384348890704015180227147942042612117727092146232988797409550101519156762265236303877028512868312225333923010552359564052303861000618470766356788522427822582338820445543062096514971734136419507779351377117025640322128570440347819389539485845219008772138235685163969127786235628359004836459769579183505759110665291068236142958759450991041735935700446534642561709928071478161395836240216268411474596026602000424550976133986413120458948876805866253272760298853017740745062710879663358558624938521352591214883778605077660716395314731014813681509469074238345029959814706289685604897214376159694400303783222009458068512973216925177957394408251966893025459166024647367928946459408554574060204170433893004953590992166258530652741507696880105133042105638982073304550374735212510014294369449513774882182803961078294017827628933030583003581004679434920689752714649991600208899318953163509387667182834043573554794230417380597530139595776653078660198052688675315641978064796572600710313585259864526945235935755901402555101862211858078965445023626933967980797220274908032827880258274376266731535720519362043386605360420890103123705978140856556023078904819652437896581570318542044171844295755941095706305776653174436543855082841245158267660133770355469521154050492440066920994447071817268782582243105940402203827360529773581521837190511181936433196684605044538022290023119220259568788889013342018541215007769278377837606257719826696157845792339922622946146192539708961414653139713967360815861967114335358102996456305206459346131638409899154151451575699377615238564929576517015986384019997885821178588877299998356000152366566899673677381428058928699712459109322689271149886553408096399857323297841814612427274306143490794276654991280576027420650751023804012306673624657311701456847841807413683317445412958990179637216617020110127692679366828018689809038323263981628485168519131717428932458331540513732796332452608556617615222494504732007920499468753928106227696078065573279833690338566783671368904053288537830187905421123647234224828983446076202842404650027239755344367463284718888143839819383117296155504208820056778157215101785591999281284152481992275992912864732368147746821567630704735603028137947298351908487060929567501840175263025324877511677377354224909326470628049956618219974525354299148606111773982656901341931221986471011865703901585965673185229810870268328105589356352593417726070627081270472886610650707585408471181659284316129004104252447606614679970773821466601414985741670191282950364785311828995735273636977731602820705242916203026948448188923453914579281486978600471934884638018093931005575185648608106959386210166808015684091005069411604153295921917602377355206102718924947537404859750339617683039097121739894214844582876540844682688911484380756409346612181718980160296356235624426895132009240266225896883018709365026889755546551292620629765432804576207997031830360347483203173815879147152300350007661847522073890161237394336478405753310891303660286186297558068537365822032371034899610001745168875035845073433673816457665593244500299969307684191639075473838554020876027491630123473319066440982154409192137980543154237671643412546747341949061008614462345025397702094142759165894012123831443129382621993553313874569268839582866436814051386978488457902305254857603863584629180143355840464362733471614015773538967251691121153666305535589699742527327530877790771515410448555208180522945143447010354018679090368520627464080452112975385012113519982551067303900369309329374283424837392630113410340206729773633387475096555725540796631994873626105428066431631054894783753662523104622991395153571462143915194865406385773339581510208660421304040128427373102587680137351277139822030336529657623710148621292225084581244800369192283190872677432331771799354613572425582587531490968991874449473389796617226869133912484396858580536736023710170759293739684194797929838359284567205859082890510864020407020206710541117557135184037514942632653895457870539556982443673295650915952857636492187675337330420567466581873288820800359320035128829882686483503850583528201610421023234225839898517278068718540058481524888336292473700427164184165043294408274746285232610915460292970426995836154968341285428045211490265800831552139653606455876764130164577471645039253688618688878124022139517473352838800269641733842761155493380495567027798502558933669213349145479240941090336348988194816204146543874757392778236164017243786903579342462379394637389495094710083945970559614011498177196418690562215550346438201832234912521662339774753909538524588550744153031695665575687374077893196711936779165312831827578523741831276525979639091655896152723538299642200513893118219717733391645739268950959541586035042677163580347846644896999661848851777500591477902948314087399363306698640670851119933034291489608673829031419360354652412127639880723860014857129441525208560324146509109463255151999262380657131685273215032046210197922919710088481582298432985830084053787947379335223763085372005870690797421410897547707334467425693383809891599651896498474297101824421234685992136380147453245067500850157123217714023798335628700309013019848560046307124755402246851854698448803994144627790969301790535981437171760423753708834982441698045370167008472188936411848054206472541779640668777150951618700092133091151536634195734610131764277443795362202467735883035759497379838365236786085308766957519712412324042206897422979679580779073855948746887257488195630307412652706803197121655039441434660026730970065272820412331445211258710481688080798151142811287341184820544882647136211759257976586715542479424128896206800157764738239577265231584640529615001665394702911656470156194007620870651282903927541200664350934253934976385769762882333693687825609520101226757615397500346525017696326299243356572950156200360975626974979656495448788663878031068357592574398565254410468724815474703189742948780093887403866994390644013542862357666989362704471057868512466776514822318400887764847033925547124418429293704642479853376540056275394968812339182643944978657871793146212503769440102007840836184203156999253192606701038044901866761240705320678123417322599955657857458009188447390333741519575790023401015424218949335552071601266465859235259018744328480682114471797131442670366669886256763786151388924059221317465128230708573109972736420920171576394758719605510665852824159042058437914466163192166010530028909259095971027756463776153153681527606482035039754319586437140524146948607731602872155168126026077058399598294625639725268741248322680553292967836379077037132400447999144723651820080997591582418867037443953381418586248254044061111219747465592697719171367991534148529635529511933899725934744889586131333318875862075309173967733217177057866131141892253030091658440620142124954714775700033318576273167521881893950304943717721622934036772515504180991258177695861788615203134254572658885994498391174928593028753259413847029066732009333465297108472225150388477778770869595230083837825655168389676751425942167634157413362061863350438468188806899288919592549916878087504757112534730820769818269293915732454135567853084446631369466931917816745395786144047719249120883319129868080098591203104335899187689680180117742498866573766889654757775510030986750306527508286726284175902637759628324598607879370373462123633901391482073290245548883433592567934540548973788717704871241003965722132709030888757594326527012059141782804273449137292566293369208641075241419493896121712908214563286139187481569054754165148540595216330796067268202815678040399284546828499529261197970266808239350618068046183480472900482667766691378139078376734045102561607135705116335487910434397559856160220503025809770335964983128087767245027820180062192406042407852273858083389836371412980399298124510570181166223252880066284018688224819112594090658773623129227932656854371813085444929195166650355261992436172270365906041832893673439165865298747004040862434312500103867891075447190006835677018279535633188969872730941228481562767161165768763249749877434486242290660630503488315517678850707401841284156507794284664128938266583339797113440003006730170422867451328095838111960626726190799161011973891868273070857561282726726765824386726883338485471919602423188238737675017704022801871154825097176694204188462508247711549838351678365211973444326124766479599310975509014457494405181924449393254211958082448907857279209845983358650540677664539371601383291811105627294099531812867366460059463083820755167297021300245941036507344111379885549384842760501146985333971999032502528024831792160262021134908415836135950198151171325089049488978409306890894184044808103330030645116112997074216677003892239111209772113766704274332257015241063866089647786044381109856637832515327803829816891236108257263153327861611455814289510043682089705800069114647075961459346667827911616734932229066056135169688182060257398575294115164471017060675892499481506689952687071866094007657308939571266459267770982009722873959998320131174671868005778233139296966931766020744598997447687773970476475083124665731878581016408475081859678609627672697371435310613293030522351089476713049989703552002368279985124822520412820758123820512451852102334988395258662108940683591432106604824604063264961972920513209917977324002507556777259643984265952333040024898121872829135301023684599742437735581857889330392220064863771143885948652282378861930221957443967538945010767615937433522449803130878698302862088695929967962415395349558927120285313565396521633846437450716002340717336043070897379618248340817044242699336221648426454411875948824970584930522341775953090826873476196424914088291027043329550093510010796907187614517691596564928382720583636203241914330779189835281106311378634158952747149938467377809342219960410982168998312112791143019886879895472585905979409855124900957690876567140193464487939569544788835611320512576561575954074774080960574691363077742343850827765564365487454078415089272627420090810906917197405402337592132099826769920947270916986132812572476350004406737211014049091504466594035484463544964422161717176627667189739683609009844579211351281466415454188073360238694993660438862462042414954484384449603503883275630527693040673605704638304953938581325687637152793786569594275661824109708927572063448349428505481422002803367535324214607975513738981599107748446053543781269091035820639120108201201302790879345385357148828039205004904405924931884621281043987570958537898960357458008677163416540204279653866537081890936777689813658979852313180718596085754848730717649808800506764197726995354479853846594955818952450481813901513730323532840842680721613095789013200369560613831981125006494364559789062604508645831036980571483457158030034437354799006771410394826746090061780931020331474736927168652287403103003683875256298901466591586813485033674800900691875914335758854086410016158416256389973863993068529916722667042645609017653040658129493277113110834249346779654810326138422796426267790939974681172063113109617762709960699421183703050932451761796380969912524726571239588454558379613287464477836620492657824623978414825134683009697939667424501685983862527323863139162168664773403228961485309268327049877400674970903003612122993420734406893262709058600067609338209209828598533161385956599096564487170408153995603511684258372830745337593500696083297983394272712072634268319055081715966061580679067240552369622238297958241322829894883743946650739684638577139218393784677000076973955673549885764700065962437520672186207551801210243171805732285445571031810982486646206951239626571781084640358347141224807426525973948435285844347325830142366783393717762733095240293820506465002868993763555491215661675179435794697450365833268602305735636526450226068159275332215944939319705699049719488911928489868282468744320309950764437560579281157383347917893237272838600382533631405570020183457031308844355515830232208752101652627951838600842505278202937082164937408665345774363752004352296831496429898197058118035232353027068155085878645933732900813479096658807285714516652189636943173661579103148683856480951619884871526300697606813351079508008026316883542224055805807256154922730796614636048094219532951969353669098804735970330636813121445400281503439585480695446040854239520746256531503114180033625393039835885762121459149887232464635921645208103682119023760683539347077479162498798509457163830248631946392437757451557375080408873508011383215722504660797799206964145709626108533388357945317647033941963393714857208919188227398708825626880983052806211457480280204471674472297227232769778345922968867100800786665887083476375638642012900011922769086161287269764738056522090025021961752738590834537925502392529895521238102971573748633991176437754379165196322945292628314968230421506888424646720601359983799812163028022200723886241712050703491380329900504968952453143782796363396577427160591725945125303298440020017635737859499231279971973674950632011599614689238633753425777299151738455209817548876697216261746549842887567670369300099646107327807502938509940427429524103748180920086414101824810130590548128865048550830693277687660595871032441983581905506384483512069658820383656494087936534640389327429410689917822156379767949086874582491945053808231476833826555813338176189204151831811789398085789488341044976398740055126622954771770147024825001766118493386339442036872234376851465790197262732782053067821320349329961906599190431624524546185094106528547860001770243876378622480056890109938238991967217953941633148887066557008511963569833841778948864690342170061005229363197843664576814325762969501009099902597828839782224885962757716825616693519735445615423618838254800424089174431537358872302893145785821815207395983143446641758994243233629957228924820017872471720578521082492363192242247457210311961050525263732622525807574172579812658194071952629363472646308476947881748359320660887676894574519235362982297131704147357969812631067148079994057192280363617343423919213722144762705433500465409903276014376835415206226263817325762436931104973331482170607681863956467582376251805378937397959955005586422738797092461410985697171240548212161616412829355100459025230650798882054034188136887566765207940793656370231748608476036200587369129141559992789815965199464748294868496789942111320777130766114541216210569730162604024739438312823607301042183999444353195742859598640247926812497672330912173756788161083395708551515369603570709128134644092998654916088427166505642651541110899914306570995003351638176411849540234494599664373598078433716648640430090862984931399882682141908667771124696312137819685833448789137330051543998110539011231212535300655320997680100133649197336271980273973933026323332318021746972134158469196698177181155082583103426516152883446396505724339530010392344963097635986527636263097215647661377623496874317591181234236462045408945426414517544629843317577886171552056020229265030426697602732835048155686920668336126901634850210704880571689289642204710947101428650320720188883937610854413420296895597648797343561307938654454907888375300671525865921479477551246077942805502410364326476332234313795652674411405062534149022750816493516531932106208036619360611740893993093722825398034766523400104037289329794954914048220993621309099481469566596035919559712454785975646208776879085485023120633366972024267215758914370883470813384594218095864685092885948118827164532844450368060367631597033044434575747309188721208045579212464140215937790328709348092815736692023633940947956025658911579148355810902903139666504237002706074488742679517507135179196469424323172357108841421940861115274405808990964137358481750846892397396550213088952688404110441347358412743524567867935984774624892151880570151455157278615462230592659618287203366375336078074446778881420831420307345899329620342637890613392448679843493576130601127986610549114063552564784247519054953270559199800973472759056091944820206830864892530438775116721053362317501597387744474451561618664742881637178934549749079941451119416733691977396748732517071503959856718044168971266931053662906946464789780618638189899930814770122139268687647989686312226280231499547205248819415216462078898833036225337171960594162766065356219417528242367644230091575010921591821321590533770384637520310993846076771639955343465949335057406569270178324730448682288542235446682287510504870818423257147176482705763692703206011489779002340903838671674931132887467379872936694616950613838114245754151554581830531278924632653395492329362902407101365975469238643361398717938480457728052156567456959398050522984663932891201620302750895756102096257522530463804098363108702004188867156841042023893282725598317679324300490492475736277006263879209599235023225125717849778904358943610547366682794774993278924571913912729568480061651958538954318452927564195737777217927487034874495050588549116068220679997503869503346700338959285731592295569607809304414767003699130906271428313416336669695170620550337504585202168251889473566765194757208009462550111466470826215549765960356568619237758121160908506827393632245827747304132826406767337146502448424815132169247499830361995289829525692410975409893593620124752872940692549083754100002879487731901302149646593787012841945096483810574163432815851541779161523025143110106624754297803582434554581494964562790531871709604019276753593103659260125233718236119416432123848453044515315025585801280591685333724088196069507447888966403397948043232728644283369936194842340158814948771009785820019434478144201081393907188826071551366346039913956676122536133416924536615848460285258627230280239348298800907143398669898029978407642115577965174250630543183805761706696587195028469267733203039263712218812247113454887024513519233677026944337307958902582092298751072442791067704042077823987375840330918073124182753239148149080825606183869680826331457562257311446409774540231750925073241006375966729823867656865996417731241108755106806537825647054652004978220681011242316259058240996807962083798371812763573575561570249406606253246785587345966428388195472298754327688967716432874857643893692019039717488279154769138567259357779443916091203443438138323784798934653088669736907233788547991234786065255104888970421285235280582669143582770865321540577456798371905317690038175498057486170201396653000816759327171434310650769226405041823586319046081649722851120484562730448487001407907846035001855824522921526844938098420318431004436480223271146672578930034528088944237028038003835576199473320185529930937454320399114686433552106253035481551577556366377383289119378830450526140190688278479129858132959913957070673457081354939608257583587815712425947816147058826209429291969065727539750368259475090593452726795273486016114672142454158900426065494384490427189609593888291943523981088578229573173033211770570762127590083547520041006983342513397868685603718394198004702465573909459567632899631642122253370072979300035053687352334602874465405114381569907669710396979708876045267004166897264217471963841769139567158928275157287384914003598741677025459464568297147640765100322214931803444479050138831280193332841948253615097113403411627334217313512397079216692636237396928676842409252536307962455395525695694922539929988809712390268993075413224432786776200128317477685989831959686575436990678367907784827396624512006663487314814213085710114449047228201344332231290184432358614987514717013794061650584249980714287883195366976956499527821508253474549453441111746993678084708051449202747906668288836659700728802208991101485082030558134763533948300978196943197285267018059834665226241183264965186197458610465244841952540676531252770188352327862174979664313140889941650748690216213682084277306398072669462377130553621533601363879719142340267748135226962006539890495323391779198865093639020479226279179862581778352452560061082389551981656337822485234496053122487184162338619212240602441875602335193867395792012537912418697630120342255914836215580137331528401269521368736520336743116854999239970097156113253769142517726482594465581936203957549256975447184921268636206642867735750658807295174655160834916334802388598097592499607864550030898276577627245649661249994942473872879733531104416706842395091435777391400225685641038722330241537996696596398855220299894555173492933559296707588606717017477279537479162014733778213766451255877239823791474558524314529341534613652578505655459306960196912931812415348079725470017506933739619181379943014989080174957658485395313965245074240484440336933882317185160342264405808520952944981760437982392496134901266218613754122132922807267736782914029735819038074073252675824772538096894182076881843565162527973800260178435763559753514534108484223443384511371759545271538804443743449710864456765020123232685242646521526135554519422478062957963237381208349951602393434685007738618428956748600196355196309618785606599734651146132877597868068749623763184884751114416743904605838235488973232934542715152599377229442062940660220730152651236320548429210225901567526979633939329432826801110648188881923101103503354878702867032416810444257418101455920729999551346220850544200967510269284080399013482633765440034750305806986529816193195332025505479775011220319519227194339389336293776423012151399013693582742134146780789601906258310832901265440517077965054248518599011072815856245499757975512060739646619886566408201806351484649769116840852813154083828649975578718017546933894699898305820296096611787876062500797326990413727896003467352553785431724768251019073614807273800777671642172749398651407130407354944316893399197900046496272473077886332534488469233656845249900841259519285979176122952386781510329690834217879451494794716885501642199960532096187859715432567596442942187383996850240498426477975464353644995118283786343817589529939703185899321146390725018532997210091552124765804528973743382825555121640960482608650079374341405592517554353327528004479076456398647038301032319431398430538729223796324524094018351248250471025530882439644589046930609588054275253560356475062453217212478515325367930276427374561578942099801457151800659486197253069138058502523145982650384898816079466373660141266394520284159121891976373638087466723779756291135787402743089015474109544776883550095865392877462311249502458581040700021547017593311447977885492212504589437345172285075978616644699252777749040625890652861336053140344401435102146974400507536278004457799082717220853999915757601838593727081055307239896502054364575078629909197112395194029301054473305496015503874449582148523481796665672620962167956570314418044390729719741737202477380272158209698159827787465997253773797321600507046877264931188454686105814918125520978309026701184040277039458976545231922207809965655690886209364842325953809119428575374864548804427012868407178335511507928080252465252913841850079026368779655986088329335536048334453146108869034713654596076824175986019477877118427823430748903035707836939907330620375490042146709338146832277486661377104073339392996959465269675836909205040534427929710806040440791214135252127154857270935358156864125506555392423199601169248775673413365106027610108954760827272956580904083936767523789008838419473174687341746756976411455141187098801266017190698146452763345898893444259444001094911730540190633971157584268672008643421062182593305127282950646885521559394948412557328844148158372578275553352528039080060558255369326813556848241466736682447918391284015454149352411656128962194230148106605508451796775711300913128654770672376647819496500864359657400967123586977488315848466345939524166577996634347926325833948207950523046450215710268215511770903675609110774113315813520705772407258739905171547475062121152678454656492952096318320113816665035817199390048603402753637228691108181396767329846891634664694808853157023804299033065398682499242049788027702884219542777719667708365076464300258920811723067624209914648880744481775232882030261504736097598027531800237185472886666697681628127864232789118534022051443627432661188546284453692257017424551385455718251570576678967238053327327138350024687130215618046931385225166552356626851572474305154938177776198292079868629290754841955343088431353750031113563390208026432736085271799469872065061532189804199031744039734034305099635394902712157967394497343785862504714924054332282573155388345566641227896653272419385060723984902334838958401897982911250175324532956837690290005863941485866759872102599561007377913850844964490403699201844814894329165238588249805101668847669812897703364547233781585004194554699822107441805978747810399672635456212376581988951750026802011868202351986909632873166867617851260636751604942750029848782309069350743888990904405824527294764239179190558463564418099981625024797016777388321167267638404931677218918555784604186965721336334859303613914659930213866859600683487960404864546685150183041842575497244352999996295605364414659696733248711892046896239742660200043089684756638848553803198995682678746365800096043781585293306303015960219404512927376249260345235967182388236161699594755426658000869926945620308106046622402375831303058224488669086864720968946522695405678782013149370151814119541746037395588747059633296561319897238252381365385225058413917571548416975806413996454663588866243030544689645988020478991512804268235915132743886009460993417360475734703997473684476317288670786932962858349270934610873743720469669893534574411473212440055820454813729899655457954873202933055611591202589649468494552404126361191527902195424393885429161000134382370664673149991991588222427443874383193892525553892359119782295611679983649180598160184713405141977107005086895558540788866607154826163415641534655951089801265930656256139870559134252640526279077240686887859132871708473134390564388120544528792891812076186285149363399587176804363348627268338865805909762398121332349460151434715286477430203071737860110237002630657359828442434669602244436914449725034078085420724940843839065184012119438561503111323338156439838507663408355730750150366061589897684136865680842571071761570396704388626811938915935497641545442989300302807973754449934085507985115526023569286914416934335494161619022234883912130911394327767890598760231148967005644769755724097546139399430013051876611143437884621251113392555279777860553287336618839184589658685060952442134485535547454117660930519143138502231279184235347708115469395048054892546573364706454652819495041425345800768743928888595867154074741429995769145545569700702006846082808469294843064822523476434587213681033012577530768461435611695693543426584567172961368316005997509042507869288538126843270471996823461236679857313626535758623551210103441426882524400382938625591036093547546966828867930049372240121858072356677031699438619322625366029970280631489291240859087518616903999071312592127678570717058145299302041870486326179368666723214816407906332400859128046660603346449100059618691521799812592058345673574883486730685482797439883879035030023691234678337814196632530096731949126509666202132700706134491979135477829604836474418695280947461112834213082561762003861014564715594125189580902035488984787388692160224083863433232901583601540264263665138656809087455810765781770064578608625349350227553556129954658327106414205483305179896992371844175498213786646978916255783449263449663421658651162570428602473619875046320688770582937318835071535826947907971853035648488018470038194310301956974503361876376962843277782842420710934470815927237358857814416863459791163476394020023399988674930482139798012235736046084564365018537618642600901735923965321994922912587235810205361498342006188468775021402418146539348607876919424767807093715964166213850714214630286213564766415606136898259113984335395423925078380247641085889589091458541797660693067169144264581278754549479311687867327863804508421996618763657692089249499520396559245709628609279519285044320096095768799946832049496168257462984163235712185193714838674166255927642679687205833743229086357896718094574451397658454833364152734097830253024681758320097735714449276632796662257667820702642451847377137465336194332148445209505351790709137944921976189280723539685467922538590308456115391495840762453304991386588985468860695116700911745541764554631498181728827390211179391716835151330877464953456895639298180233557534371167277775970243051296041731999659946646277814979270596662390615002084831110810901599858667877287290993046746691738753619739307621003961840990529123325673285151498410832604915228204462240631850021454432687976184817462206172056320992550028063388816178036935544655513226258457910038759707381127363525879933106151843324008880343249280014751848241340865345831744049511891514600600359127917351823653649221285548041310646773159682392619719101855908893037935530250649718153195434094400326847451726874650109741617760204530902773743409499336128734488107636663007228148381946980493003944253664977910128511647255899671122983186463231493125881023958256792608191319621975586070487669608888891822102589227075275901900034053317752083145185989540238903900873535908651351619273092010662305480010910423024597880023246183543952559482440042803264180421344670730673244392401051977050752413718633561822828647729246661198313466556347145005006996015374706474991019192026810530649366146047452686041661506000561236887198339620050133035912695451220871656389518396767862906816099021063107805970313481253170809476359524180632175144080379332521783380625070439834682434055241080084613076777640633774296612990869461518601593907157997044786764836558463115809882356502642592132069320003091517304938602376183742831755819515083221889663114125229931985894339528035929289458013695772687669733967384320408189528348826917090619210549002357489557698628256376734827615184351997385274665031391102329261418274569580677649264491215746468676177735820082691112802809846417636069690230128994491631290185085725900159753011719656091641280276001204858308404845112642736876694392497834236676855841368682758595391903939647006880659759512230564375822931212008252940611089662564483964692815061594590559017575245711960755571123000501472442389315862988619250073283889785567659814674909733566333890566899723330160292308219110708688076170785374628997674090384914592866760148213855791142606631105158560342389205322451650234757117595769413548702906467628073107078470426825240381365301444557918564156343293322055597483914733992547577543706025105665275666507474908293447314493709350886030051108710322416294285337606869256006191478055551889078686137630700912518343193350673181471288435783093216166737891141286219645935262742403467163992919802716131520366586775990298964675964707778670926089550936563694742478564539905252472298205414791051167724302693742867480765097125510638511527697981708391010499066945538385643376373595176434663932804081334518067420943779041360075718395821413543358433717053898280347108197852376494982424635249743711849198473894097115850722782477651930186910893291995655067334069695221665911601743932678478445342207098299535056673208413625690487627285194754976924390263601864051444022490992163324680432219127654375515348980844045157009244320998934150117343937393184730850245590163887394496950609910844420986641574539462345746962645838434331961277051853270450176436247163230385530691566820938944483232897216915131518925889827885777077165770081394190300604303314677708460329743682149277870363544458106221830845504344391821437505837807399955621040192765584823833629374164474069996847743906074789308182456545867908554311324137959945903257495123680768417684078291928589290993310423421467202932205673384523702316810817460292362832874754140081875406398022677002031831708179717312230769111591196465841583332573441813417527250211424839052588687317000296094594565645592219877383708249509687841738945159544895868460820825603751661712292315624285787361878537723690236459385483788778697835696256005209167641526608021059764073605993140001398650183600292999570650270164416154422614499987438466426900659128790913176900995844725157703444257471714850611566084420896674048748259982674368717770395155191112341596367223921343354193535160952590444460060806685439027820091919488201348942106510294149726976466656664616175853620554823143406301909008132548981160781685652143706060283540840350887111509387126386458705128861991947045913021783402321183541436289630573953609653583792837909145808768140537760491434161634420347553372126910832304694575485181767092065158454517328736096419139710363147345327099775988838183805153791956685474934876968830751284450273186482394477083518404821498821445821608830442059966681407268442235312414542632670067934792241533429899427768655809640545297526346620945344288188920384410094492458596736283272496363558785927277588974752342713859707168420122396457698227849806140824159635326196118413852889808318868673201169603647396599975118354207133453738299100290863739975278286521837379248173090281103729404849525489276697131233261720394268092546653310679368219796701219591603130515288246636457128105583464004333467650089468207170806422184714277788182846743642002380435956510207759510718541751513576931449733667440452382809238037695807615711349355011815328533903084708393613335890731254202506994482694550929405897605925346748395205985794756512369355567394812367426005205177428152040427181105601937205982423548646891872875544333890935657978996887397843937658831003867134352612612452554797065807468027564965015009875465434593066142861369565494096025138748949100552929652588997488403709162162876819610610064978198985690467887075936873566806097270003515412318947448578236467839904682873809254062992974667301058226112834905806104279109236677074136901121001181859937346680933310101962980102142800299340661305909996795728327022744912607443362672777838412224950061303237493841037852147932741343038141949047527878356020060529628355435653825955597645159153591373879773643691384667777369022355356280485415175811866483661172358949330550743994485420856773907497511302221115394708408729765554333441825948672067660411913737556173802611257931615345383259249742113243842210674336506022950073217612475611574552901579054442020699788846063030550341087222999071638860468095697075509047718609624975180806400292818338721390226768087804541995657384415458074774429223878093892585232677289791321371882624919313652224220449087604174725243606678141553665709899130488447119564788553034341071549494366741388421576178044307853086988349548887656396877530131231196939995696218781590090761559939048917787910597010545895050282117963215485868553955822288459632029034087598332941275237086114578989828537582591118149422493758704580514598878428588515151159530429044745655688750726049878686959533805134751899059457139427507911051985985404265504972467230545348498958152667254188331290049716811767199075133576607613982039382704012527439863704969422919968124812460222779900219945163852163986615407362762587959472575352487011535203206620240209339786888002483136047460697973115003894501619438076990038823637018745479814739679698044347425657650232107548037286342279038862382860909836754167470389289236668138067724749404265069550014923475651307943033353907087634136468292143595869466214023128744876857545663043415382353978387540268350250289362026955388947439796764012315611971079833264568216120445620332186870788937353285066006030115728155220882190503194841391116272459911478586257535244291400031468920071132773078230040152666295663679736239512525012556399260105285016853358219659345029201855338605685417510861182555604819845494991974845064079815272080444582235937789825845361677094350133462375336302106350745707642021528887730256143149667172862789710220581888762246600802119049864604422455291348700396779088559210909394629341615422190993204287093220364867221420278643093745479406269147431260356233641462760120931983371058867541436826599755599833768315610180918338184262857065361448185532068490798715918013558976667318203894018092697834163930650943520915799271706784587504413035728638217252914211482205771817061481471970319746493663694442795700553711748064392710945986577311500684957908888949968806209570886201826909093284118520216854698261571839700242805190563101264409219088163605151316340454383399437717409502228377148252967260009702628713230839017932583102825937645922892962210645142359658177234459074077040522097865119698217132375670424752472874933381502655936867433815144374124237951135556073055747461805492402417273118706248586324690709624626522065287232180003391802561082768393552815561101548789386629456460355652230338744102267387778068895099356180451575426470695430509328226800672539225955909019307342946565634132034144187321319693283687183181233392363934712651972466024539830816059849461165817551071227233333773711148815932548717832852345637496962879659300611970164462753260745483131629570577564875154359479083708174676869893513293588666401055593932414530861558261833035912222012354561721851282131199424407806700779340812824009829870901724334867399845821575919013945605994395659841098722736956948082647094430464680335621725029978790870697481460275147250815398367637450269467745302486730818512197593781930481141878801963472615651057878213046695926056248049801439694251140527102375162977059442817720685763629123944122368086711304575052530789666449258424021019989631374485280403953818976394965248139923978644319632912868151068385324350493662581514923558239617131398562544353509438385153945565713424379311725901444148380519640904831877691052159058146712184777023752643974787320585990726651610666407563613137477484814409659995214867208399241716622156856509268351517228549365974358836631973676094955790222187293529038250604795636431790448494309857142395697345688382443426394485800259711164053676228896120445846873786146660734700877452837894588128889888695853360517091125504981076373663411090942969497585555011738722443520778542628634025393248107165338257569426434208612673356055248327904160343811799461486666157206755142431756145829140956977783387302140839364610646550368189922783399452024600816791553256390679237027867090259354358479365042116944635787529966814446671601495511037238805383101458939158508901234218334451615534060342388556527753527375841432999931493351732578714388029835743039985249708038824815504455321716261679519447258246554620171742159387387480561295430253329122246339424843413735711662484271072186952097473012529872019256294048753223025366231425937298044133712984834553706614051129648949116430376953183093228310010198710036038227996623751501704449014499398106097039056988978754326743487628580979785649059190599830898081645752843119304241279486114077822157525264879251084692881139868986066227169179198497106147408053742068386953391180266005184877131247496379425820518805586117760119705784850579294966047095549298188428383129860719857821214461494226102424959846922705874667967482090176192702936862613594612485313033559186854632948048791916816899509229111509769851364502734330837500937888748194498302860471904261559698226302870982336968030336204659935808155425763299060721233507863855133826590110166729014485468836328144010608015714687818275992379590586676458149757064236205895691610343542377514125249670572128243638278876858928291394579503405269896921896010142848148278601295357041128255954891627436508529356408912194772082979057846638541143682348598685213189932876098318930796112148770667414772352916915096353182971555974855706744567878792602456001868627991521761675656575013862704798615824460540748821900357065844701967621438369408274666384391784735619381645279128947281244645658481479678073249029141669722936300668320983800142749411819029148492535307465242178189036884577249888574978124418299452033189455912925338146456485390629994463572686006397480717630328386719813793469929263353880808596533760199124067230181361772868237513756010214100994127860771912125976974433906375896379795527007189837005580169112586137237500481655926477338276093580966784896052199992821126863653721230094095856114441685613608164049616156929493207412385349080709780335030044259878669534613316186750540782030141148370739588013623207133397488969683159211557707744522724933742867755286434909356893079899718981577792444781903641417610634010300121916933758141132961754867489741823884166825170566552673222108985521150675603949067680559365754786045214267021928968401680300570771342480008559270836198162984327604213489551066320620274195067479391975185625618816990387600765292455032284461803499824490444366504724840364586938880113827010591339718144272049594584485639151596439706869471544983916507599611605044928706499502521304541930208730370914225460361925831195880889431438262811438448744693059449540918959020668553999882217520242559246577051663867020809209941702182871916980338719133918309192894929989647065384997190391797872637779446465444058769176582457811564141450696347275539117788186267918023772625875044063968766761806126685138429786933601654474768473995487873003389521031324306612270066013042905624065933964836367388711856078336751376917395636823233143036878438715486795122699107300456660438328764351522679752473636126396071626389882174333709623989230219928300382815581871310818445528158311035198954061237581948928313157390465080987121482185078720074661672262870828483938045434487432799537418123058469327133731559207318870421481638754084562373591796578084318472115990703706991728174481245478366619406078020615366953075914194476348561546358218283110273287515681737304705707579343202392650996004988214028483764552460859020322388519008915196964627196162403523779790379681894402029566953211975130926641587112319281096030114827878346716842414180196555725875094352452851869278607449177839520927537528591267082965640931014094380789402449737520014163977566486380970506053850070379578498966532667198750863818242122428212735537703730075734807522406554533127716148838972127793824987858424994911882816777244137296086169066308036905561259490851272861844987379901924600158607967152873495819391949467235704362331436224204372292680790035746830263601555491819512504363482943994923855177521368464480092830213677820659901377057960008355112725244013380997599359803798625749334588820263256422930626607172922687327603521671075038371409889259742189249717658338502442831498266091553468292676846116908530724418555415177984530639151857744809954624987365216079475627337461175935619825013891647379680073443884648523512427762147276628241245907562865522416034162405148295659810194813148533678308079877961157855163317401165737617479636289847886395390032264065852156835720151897936930054572609914326525521423788929746571182265824646261404768772704640479804823201387581654707039344367694085028311222000752387815671283581008982990508537967307036570618898482699024212558251444793261514366316975667241708283445423946380712586218644254636008790006924754766638411148644389682936259085585909299647934955344596886005450247945768333686374330558000515795780781737111757178808034638011727193964154183788428026972155615446675893575192796110051246711503191060952002077073596972729235023221415088184167738466406622247267807554497607546144126678277466585269907348736010063248061822909466016210101726541335462030254503652585340606630247256969946660369582111022334766061300627960637973124449362772766575492768478096658912902277583138784482508251504187648954535724120376624806115226949423187749748639523994429998567464945477514715944731799914724484650845333793694461456219742056986628833347000010137810833085090398176220339642615176689163456630414508971689073449307229112135060008591494504037573078895168822587321789211762608821796139167692374334544410294549269114150992841813344753223910718531351016226050426367288338085826702877008749267539747874972585745235679549629915399405644316566618772275600596206737156207976416334462986438409664133539679475087579651470291515539300531052923962773956644117616805383030493399094706793685045682451012917839641914970819703335739786406099383738898304451369463264359865574015952779944109538611994044485496713431435213347994420022757200042974392767782915985305824781754942568834175516086172956404590141187104122704500770324380795976713756926456842133218183914350020376097668910134391161141141562611426952713400146774273660407339121936788090847231527060949003155988171536150055627569034036318561041702901093765753954161638077983067433795067010371306759905243482916228541693565195835679869838037603416549820503105836062403726599307118375639956823565865595403675135427800720535972078366011553321298025023500187965630233095447026605568001921175251238703563970607086691533285582174000292812757558911696432714717546711276073007814088422243220341361421039411363857106127097948317555953371086880886782207763603700854977178507639804738137296699201359348515902966461601804674406976779298266461662483488998818916417184710504463998878333647955996975627706915371074733099396401923122291696935247080149602075381369155300485569180509532181462388119237207544249660085245472464766171201365285680319250500736293057552080816101333278529665865388529635116371410266635571133869030554371262960703863954749738715944335776676479688787854225824038122901808946761564977299273043992187009738725209330367776457028593590355129969738557772717585753162850184965755478932330232634189614744047356946773472788544191814911500801094216777931787725508562347315569354845067517571740736617452458857859749615057163275987189418797162495609420794694634473636262549383232419022755548910213881478526264883829307119714752991510464023611472559860156387403763797061179865692802666398659777218043819781346624795063877732464070429049548232985937125285641949018557693703268863577072172278674881482670780964559231129620117959340280168945342081268281667023358306076632633612614605313893139720813501519662283462479107206798575204672270204656672440392728096474698787909178048274799158061368703361416636046315559027958654765016402156968289279721555875360905816472146696059478478712028060574954113888332975140495020843735269909494500593869542039607789757557676558553033539894535870395479869145991217574644412192809697035867687470126402333865094810902226277222503951259443637666146785576084785141287284164738849825432522213418280941902928903648821832963886150886476820591537678772436910192430093983607549928419770811350976697724113031324351467536296470733715588264771735404967320440017770579390789507109631567001625878349980253902362113483792572936837281219754365290696704618809821774039033911111862437955467408803616421304822149324556956962732167099200182201525051266676481897659951106596712734389115624363375786700416208518033359195259247755811751742961632182864899660469265773568771057490595702605211886066390462301437164867115761471781468686941439624051780426689730234897382906407478729475213165682329574910401567497608488555539548151413922914386099697327935605125375152039213831868403830674746034555660296368425427775905585573028475595445593403307923155278069077658815130112193677906446808362403986220400811201836551110410821548690207819707594414002408264727048130445746140673906937149850404125225789906293618729095274770470833731443932446456094917409137656733154826580598486622737640524400179905302949252039489060720431221631473881011395493260748730202165229808058092284208499423156469265992519781384919576140751520379926028631908538238740801705856548749643420265090817800164630135522963215221040789473058316206254245972069145199943287663959154427663437484059709349767075289303365502550990918102872677848871113460739639632366631111156111313956915893934840351566697882882475075649651172570700096158131865286234181381604497416960740115679532113893477843127451221683309434244200998891056455355749108812500835430723970206807154221613691354459789727988125610018130346210505722510003303764288706405075812189257254581609494640291044355600302995018055540197049135263296180806282544772794627893467585976232782972423663246967539548733575278928193179027247960005171603598346206600803140999970354814217442769413042117461436442591450201981944674522141660818661689606392233878359577677719155973286213086259730754215746464640903420657326754095552159562243486681661872578852139041336700464167378821360446716570884583808612370371720223841222271318692242993469937269607221188067896208778160160840342291879921151579375785135368221869720128313508595006141321712087929124229305249859666301910584670779824789291483549871297804313324699388404071638859975889307103035523040797406510433341395718931482751136729328934414240364277169892921764914437369510853427628169685968354372680358491558272276421930888064719877840321206400739156962087832758650603755052276863385186158250833684021571619721068736860367834500935310228358608992808635000037420229976733223984946268082196297530162261118285818459588170875858196038194273711302111666484709075977808709725229643888835552629497407494159591681973009098950607233023982901713717694686296812000547184661670951671996720131558473451856638599855101597750898565607403937046745952302693444317681885335263406758515448737485413608055178343959718784916320824753961192419645793162079074032608083084218931653551412740702289664633138640174148181943081205978963395125957264636582147099343683997433793997236860876381863094253519064674910115893699793231084277941644604861238333386758307544253371883593438131423458776693069103644314276571402046655474665552531294180119229117024071719080862857676181566058133812838247368709218990792423590370194292814207337543289009932516868998287195874173866001222891810628708811856711616378954257368137696085729378522845440466413217687878156686696594192373273691971075893564746452368058300544689258838661463504663311330107861726971798688612766932718449107196952610165770593917473854571775156210701191335696727616347478354652971015583478602315777270063950290074731676012160202817723571259096397152645398089843213745134078160278549752204110308442226033016768108872066393351252369628289057098245700420007866920459133058077851343862122577152323058667096790760259424716583768425918440883762125337757853641861634576042307614360647207811492025932573802278095634210826757651060260945943726531662140818585867708869695113336327769375010373479203990743562481202416945707871980023878221005756047620560884030545196898296345591209671596574715183043964445434630253016827115140555585011256351864976322245927247239413758421145328915716857352790676248826997902846955891717750849191154905471291150401984557165146349638093407220670696386777150014654372016929274774666654215382121593439214567966142218503038649025268090754629541090934121391192186596811735633533705613007923004936253623134341991757844899232803105211371848698725237894549117711212700443368461030449544222245227365293439178309744043061865204027359297335192318688237679963567548531959121082604691598779014110435461270104749076644744137241933755287659518545636438995008617956581396801514923762426562146765296880147889122005246782611102117917498843703958394161175561299219044292906939401352546870993614885581851031588940434393263613423715479189200817231647303586710295732172615461779825616993468786177676344077062238371284889941580043802577445327034551386042271498626913698372964884502388863876561107695456390165364995604894854923302156769587213408776076894877146132889054720621009826320629782238566318163853471262202035862886638720046496085769448359839165622207208446563872225324997976988803324243492784874520035045120514540700218227343556666257329200938021182377943155875712666118231837114616705089541535244217117522200545513173793590264729568734609058017949360451644368085089515073869597871251229617546505444559198238587306373035898330235624991539627173078576066557917386105862862682619129451234907002011211575067597561705534035205859858821887858982521354748136729339009817139164978502343411023549035405961290492886938872989039794305350346956756082727886364363267202492408553303649209123257935023661074240740228191244343890993990387691133809154533245303461212400005623004981712844318402553957979032499848435733919696176623656415815030631053408624029645590617150658389585259307604532022548715777449445605321439453428071039817339491317565029749764028649390718313514344228119128499164159213800052124718961535006097450764537349774426181383792423827580710191483347431743921356257156382403717284623228009077888604398532807554588677139879216627635705241022756664370358766385035486535533962436516921188159051947828105300114272337937327456212176294289530645576220436626561050739756139815198398886582805103631898035568517686831200723618732611257572821007087316060484812411804059779037073893663508209944935752584291824419096068355649439442900430672578648858568322380250727514602672368331965431778085002366581200101086934238768681479668987799814402305845348047755785931537881270879819773771936585468340701067500558194152482179382989800562989559214513718606920346036420272199817011063772466120509423560994956833023166418895423774988552004716993912257811518770635930661334690996900995956916764135427267530975736158931215375018448525716321034192023206929449356019457352621204185634957908816255554318713212047216851499278944643118824660774605900566790901449139423135763659891003274571202990272559473709641647301410712790715333644825531710884143831694893310786458579620511870466236026536767778912071882396525118062324461783219125912560419061507896135832001395055550426238015686001012486016684817974858383219161893825386737516802261851383867749492836410412237934170447109814473077695081182095036925631500778377396027956830650223087262359878002952860162072755096129958524115799111048417661218929831640154280572325780621277920955366987623430334972552134922700488486145019219889299535993389774377349706920589299634293294674774969598851893457249143441686576650030118193951927003307680683967960376679211416051821075528265768043546697275180073181356482946501070639575692779711540147502350563914007381497828455311576474639041292448788236728968958578403781197237267721876203551672497166256307474521828642841362450504279582638151664689705549564015203925526501944528043080027833966103088052780585158083910890776696681848938544192796883498896574151114977351904129690527703755110088522488322163129035349766065265828380680313722994559644554821250122047562250583977965660870505516599934412295170780659995335898433766677126456372808143568533408107839121448020779349486528148364968058878115207588635540318425366973202763585894678431928590236812891413303721546321203649627763957473298586103422347350496969808816992211071288600771191984134558424325140397578916675679188228979610040353570293031670076680153053291932297627987653988052596549220746048090835840292228860394578875445345891410402953596668332097977723952737594810427821304754199956756988660898854207115451235327747388566883717800304679539090691205940599976093756811925057374546928247507707840701536092369455034217262539524843212328051144578625665288892538192097616259222352273710058391877997876250024442324664064570375347250802890180296514984203092824515164321169518999472352226652079035855587521624301307019447079457087178421081078907920468803693819104643070519708520706001133296800459163945452668792104793205310743871351194245306536102791431578603080016145595443001573527987738039427825737986999892205443160771691617206458283483212394575830321936998179704936815408794783789673217295674597758993142623802513822197791342706131995940498250127511373132227734421607228138422180547153204130102640291787506660411324935436751383411834506463285268538158672263324072370057079643815100873211018385910113851936339343889941103440321988912097658578433017123454431929805547728774458407598304264423673573938552631102660828298332270713449000605992159545893836816765436823752239064102656844074154414843335471781740019993469658416531397554406030192906430576859569545588100151304364462521847538820183244408828178516830924369909002625569230287205626211509849995381765586392989875440597723290870091960113311568559290405243190291996491674279961786869031889609997765785798206777928545651968447114627460880321827520137458702986464630701442192661391884496475514566867865037876857630074310353625616331872757900435398746141339531285718641843894639273925495998265955603189434587813179930407692430492835944874250624520067852925717050261909549952900880386276466775362027331319060264354211702500154151138592760015827955592164033195636669251516254178290910498159241235190151828002985135682441386292174893428359907987411365283457718677199546163587958525854241098578339180427652424061684755163370613302736097249559442310175761133231793966837889781157124305455937235936012702495527628214914190035645772158910420693295303107815909576833955287441072978626290274626229018157012064467276233003063569230989440743873460707082669620160215523839733357479583419790694602106820836867200095703960177112581991416887420837690035274641456707233544903103464521426026747671936081635544488742811690962018964954057278999462602389792925147359825015721677948528345449490894426484370104225026455353174245378631945322465697143607648547276934734707659303506634669334331525580821138602156659254480467066907109859161960204966460754238538888364252720787858495288585994690665959806999698637665664361308020660684097366608893779620629390314689497942256097712815009351694636265829693050166884913578550648368949774956652560932296798636818358736273696518575577753947500188186401382919428956970908896433892455775788146210650084349303187256511045972399584393395191077916614170286707384727270560571972841284173214386855086194421817540748146141053462393738400323613341510938661244273801103196000346068710022712557842390893123226442570717740294616593936331563731747665140116587414280834878546710716000144751051666422539917011057654266383043857917805658662809573654291887097969343966860010251053933065534839169419160895218683153793943675240819520990291042617777143162765168175743332637911545079487380887102858343248509533909595008783065865065934758755739519600719306011308194145216662810118511167854956633659156189332187220692802261287936713355372605269895103012248539979943431839190253965408181503614210160276101556203454873065015058647297542241876476001035123011014765411819600583050246461026208084334089630466862610591540924372845106197481291973182976521634279054117257072235800403345900188597351141404340138954057539674198872303712605191703883600501413515856975885785560298646977230058875645098689172101090204747809470606348104506799811929730973033973822052159383402468531380941487394588200324955825339912084848519274324200091227595377851532911243118919508216691170507611433870296748620320696209083699168072675198203958305395682204888829024426705261720005416549594405361992803998308950568150909139711003441970349662368379106137258624301326294797693941700755559133693735170748575942640235166467899949656457290097020939197172582100312104498808056714570455024275070988630640148040399818911730430232901258582094184801903793012708633485185149156032763778325577833700042581650863217828915165201069890139048902505893275146086357518935539182670033611124358234880909635836619004655337159583879920273950683645598423082208093960229235645304580003644165248416741459476240772031820800791778408788971756491473073196027474682622155737861485969790044379353209100852449974501237192372905631026373059889796036436767358842398654524825475460002260108904227545918497521427029446460120330650146791623358386120231841306575717962538446949749852046874797312460985729446905604148021739344440693033582253827513547596701891969104377340267145530197167746608400108949127115114529605522602755718550549438577426702075757318629465501801518702425207254749563753821475732489166424339223731229759541012607801360024103627114280959028901852675220781888126325056658397750169530288397343152484837434676592376303165312199123460821930835405989511040715147396417319190576513905585636404570649898339837390585750437871163239043692422667997831230474859687227293011111130283165458013194061703071884478876820382062728096554671979080327892061910183190475784173534633189293770369061829212884657279445839167268943924233915353291744217009171312066774832982826603173725316515898884002366843622383899283910462665202519289360158985444010332708520868154224684008136562323779759426581493698141225518408332088982182448966621359345964800756380630516242843267797300638819192666631478159492991463287753308405548353038294152330110504963487669007959170555832537884298430268501740576388810217007683136730774382449613916860679183289313660421860179252392035838826844953251867011550983849092884624610040844614632908689555328711747982412261151587711138489404238488782122559818430147331812826650883678020148870479509663378222653536603930804024460856221275083340305319710212480817285382874738306085154306667085455357736522636544298725145731580379385628770456496437905440444710287308361263817802693857733202126389745386316898083842235503977031123842141088330459599400144451765731985695891696549696894553871762479049427304776923654030124678392460668407583502032235644368691343740083649403136744222817117973749325011780737071627714106324668490358674277977670778730667465806247256943658068689288171512675469833768083453894123352515178811102947574918311015988623554644203174056556689086150211213690311832417227115349479992517398068729953100255157801372768444630600443436939647344796360288873226844388749637806452253644446038590360820208407461717924261065693835341192650003454882612241740140642467044118051542088823080014836725296995994752444801906986673339728824209119647433846678537814641157899478266265241671561050913750491028235729201351055364219761551222567314063116620187171354485642974004644666066813653828428333882108565480704103145859513852391817578748092988891778061202500539208450517306226886280427806213257607945535470393766582489530949036760947598315257964375926821291041704520698571383899910574371587129194773371578368156084385230461117615140269314260588281820472728239024760470550745023723271178909047965321601731681235329405980944779058470355217920493292016200108481152720781194140164571310795854807149517482045502076812959695431724012908497457963269282061979063429999993665994481567461610797518895098565492651359312772900021486230582489817724958089005391166023282381741815974909801417908167317186024658049578160630271191070533330270552823913260666992598611340632295517946564430314199945764744657851709642097010074848217228899404381219687044573374478162560545610526701153513801304301717449095576339277932882513812578519158044553694862823995923315626826880597589822141522942460384147058577246053660679678219616038821040566551371827197934835609523655419162661704147055554944325092388918930739852667655393794033966184678527164617163064555384280354239103432969746760859175776886169300378192997410990305392467746056802692344175910169410793246421236271944993153319934768877253113730415291250485998411298053908124625368765407089085075516752956830864077277457867105926571886706271538348017304025458028532575278174423330104055857854070677874225536976819643530233457731432062738716995255027521532293828775628038975316067491211708812616305465127113179081943407937414242642201879031907273189360672443258249585379651182267635617231411181371816192228687734951065260278223889027757037563348420499139343882495889504554081007095280782122329100588753067025228663536901159949094183495236602704575115712054309397911926360101100487093704748308861593848962608685861568364402768765260749761710939414866730834951739081038255923222823713830289924965155068407887485354172305386571059364063992354884692609311936765819553608372299643033879454961869419357320264064243399715387322230197733266820180537341051441738443318265278511856886229162003925403338057889707969861972189491768244140543451659286282125120326302425304741455940471971009267071844606546039818623391935078059081418215515164943696494734801528954176232683668189074539428712984888461650065961214751013558675588180487149549584362395454494565350817648633926376582244393402700719990084669668260850949022899733381143093955854347664435063965778327487649177021103080128479070896787737109445803106854484356147740046616522422809861095158024874363855233322997161916365795391425554773936625452707688793827980571799107675865180054325073340531530117845505629050621060253726741968038068254226652119715684730529240089988154286914890529588177677609182748286273347404812466247220918389975722285418443897571073583560783063048730497237183119338984437817270511206373442164491538359847099700139414366419854282938245828875513831017248372471547297497338365198123556016810794382831435165787463681536791423498100712590049720373845876435623977644506743277024004436462723075043531838960215317893280929839926202372671503336761770968197275713604448778301761076993233700708279624374654749020944190013637197910725388725659094876408965501696487219129644205566930747560423807209370002795031835072854078996340967952014160238592805636447325646223786878634706337248568849963905562415933792205395000145245341584904953898549476499504246864288379591846277641901864321177335692818698808486079092672429653340119814399367924987983155536769923836551332929695994895856206248083424629208420461387584058687114299563379123420146806905046397071280227650627909591756301211690353105335377687936561639999257071945518730368165423758764828188009736645426356697880937991392313794486991834729853215715670609331588928581742147717933904394660489936246118346775179280654783157031932711195204221740308937906144630768949067831300871500933149416006068003912128028724367077790975442538275070797931841420869885670758457449004257161476185669711230607172968964595663144624251052579870075313085784339119322429620661336159028890883537928535490398707789940903570967793872428595185784690641113506551996015713722342970622040501475350082461622468570996882271247144938079231586461508315993091858301410907845566633971331065862569053178977252891785988271309987280563372343177763635830338447342324047624892383375592798635137304484394019710602233478106854101144461837166480020503936405924219054081381316458608366226050420258459813002383760070204454403562033350202226330365021209479613161729967792303665800794124733131964805978205975885659594731008649769369788048755182775580036980416229004581107493910744021303941651203089039784361304250607891631846191444663891865018991062218564206946714167402433763499525569455066820855798680777970322058543127765232449315322011704731996261171675431817286767325241731867438046106698709540772146405359290255552514286053508916975604598081000301018225586650078604243347446428721168499771213713307917260280414945616945990386592022938835252938072832294723892207048339787855264930993858684033794330069371424868029775317531947040730469308063590183049182132428910202276861485664611685317532030474803500785343053217355269760657100703945706252546569701125488997113617822034102393745340192376560519206930151703955478391976148219461901410243515412631562787343110313241324521791793050124790109374520402882637033281036948685826636252474421895730847814281431651644793294226126403885081828746543767377801567909327183441446497433253519790523591606480230425143009808941756299213436653637068286409412232732958982181230824464357669695842733664622851778618471004645536501800031262799822538575816323969810100663464850746236710561639804259506613381998538228577714403535580192330272040607237727426745917850535305365896568714342732089492360627076526475340277495857125034901555814447505670455023744361478914523184795384434878363931912307234784788841862981417542518481397944118509711689915294125449052234985986862986512150309507894267040677074287743582277120617055007076004470273363757502093973301913832595903113523230720774105071259027293478934199393635690820286359555376689872106283614324736308264987895833762615819838680379849972228816237646545320506104825887345267267307654840563008493731506206906637839395022100431562862010746999455524465513604736114841021243964862171748865566613346116077878255494797901132603740940235575198126865144307987469799097048401372935280315289366409985106248412428491260227864583288456329221277772247472038322295312650780668525039666122055023431972012722526765791744398001596061101298114291963885345362356506337290096158314586038584157659563608108345964368537325708187019695893724926599236979311334544032443813309111219966203564303594068540972124956404236123594861333570124129145080140309970862802072599611898876131885341401058177227114393049225124296825168675926230561408719445830896848695410506226238245368571768428839614877595042117720782451987990705714222671039629194809809762597441825199559880535909821975927850799289623124373407874072540737267519687363073466853638992395817063406450527391278127833268613185048972399964396837698228325340187965847073078610014498819659026010377126855937111493395547366978248951563804814017769863883169333644299931883846940622005994902571957299236266258307048304892376745228523402467655291980687244288822433065767383864054258723644765619797181136029572704641004895432045659990789722798931810829604560865885947345116635555596210669211401416665065703230535982600397806488780410411614105112543603868346142843635915606777874607540323471600341762544901480092623676642141719738460755852277254708532863805235257454040534681263883192929145726073473892515431931185204834583180006385006614789538423618808121598453230256871447175083672857415142941671894535628496889387450894666327438971285328132653780508390762347522275984174265437801968497863406618558696208266768891662649089184052407633763242564613812974206874897303512352125025577035755037479342315876758592850465306224927794695547931134816301327582534799299940086958981277993791754421762556074387994444497473389653703740564295624583412583241124941401866703044206571298027018866890472906741390508844514940454012634531714926561382315289978927137948661341351039227106679178150947130868464517821117718092764575403047454763774660268350085234078017195670584242876237450397086350293738128749570207038532847095554320608953419116739288810163870307682182692404474781584099744569061095493208791332385204626434311108371197639514835631563813864496423930620425787575984156312428086039769065110447640751231793837438320178999325104551178668802614051539425139016727764242426475344160148257572393184219667055387705556706881705777714224890969950707685091995112699973329389907137394828166236258620573695284034076747610630374760253954726530669169342570347421439120331195354074940252747688549823778087525768707312725407673140960090269053258168847137958651203905338266308457213928054479341723581875664852129543800644238666319800104449505527382125306601869510172080983799974811288367114641131485503284531205337597458010839486223708938109654663278004911556175525752881527879279628422360604938829750778252228279719912064400981710857752610646794811589364415594020172062300019406388307973767505549601266366418402066447133523976851438771541884825298689928059907679209713260398790125464647985743965029232733306202178143538407438772116508458779117251397405305348407127623170309762623267045443351208424315204872367156543600180172114749911629965190602615175803419843565384059735000817085344501325828694359297060397068749114994536194055924617797578573073821942632336505994325249192228356590257891219000552368086995941254029455407611123359357953544976986996347584692820862510696864946734113105567752193197276478723121136924391560181122163030647476431250969367547500438152025884307454225492675090154816618449463869624571345836892495540610472722349470981035417379792132777434588182954260411710653690391394894500870527675595424358387274259179001916548497482770505797737053415466021738771490296037278427364837699850814808186986704330417402112865373991551170683946750739222698260885752678015046216189123783159330619522645306698782615457981979131472496667407913745132198121759152640262824354070546674242215296525206099471084579772475619604324725843633666540795369570942946257041264410989923551274078139341842068554994620739088171549348287070549570276368174285901743411725703099551062670336671274441834346964588351174271327487146415392685558247828749226358690121375453793773032502934620777421557630373693152902738272169357841389466370403863505709697820312903206102573303111845389814173142135013756406885977256469339636075209386869772486642731439950239357528141995607973807210011495443936389734970388908850845018885565055521222887956428410148377471618259800646587833492912969080006602713510875401051820749726425536554987188073730366055377681796825120151481763913573889151417816739150026185778096420312560115445314919259972273767095582327937007433164397995749575503730032441174468491828038026274936261010639586796726595698610808992529725373435345338470438005880014455272761191623772413877401084044075727220166864060146326488867088615882431703865515157970204033145571042209716868069803923909742220598214877464102975353117377660999935357065120641483006393817459940515689477327061335332672152876998609684407628899260877904991676313180156842767036352186565953648017510833472365777390575060718816894398574839793761722681256533475607505160418095933578084156648622783276880857965532117031811214026871344891417373975846735536992296969630491572307057801801299994704374251353901971256513717517472851087633819350405670527383102185066678303867408534534504941368719842364100884045609770211847981940849949028487144090042798778561895919223045457639932586920912646985938370083261273448392591369555845884043352354941268021517800715799392917949681779047820570182730406048043547109857878888348265208873423151275116435675481236756633502010813532550870093291343479435877084839998409280818927060922323276006944259015099121539065819921565363655078962654257954674150698175224990316677975874760260213598884061248004476935026022847819872050304143368747644263767290467407338592806820414674061007738323750308943614812743409827367474452554537368357692266783674284832236398133999423243992224726705100285156139958105707306744563229729896514583909609394914856220310226196168092856868247656227226527928603910650995411647126684983111936812084618588734105167651489937411949790059698089616322228803876993879011674894266635459240683062597173465530931893513781164450030964112212755354214522241459477360236624448065754020846855478557911592920784180681268689952445718340540907831473256501502060838151287223098001011290756739701658737683500852843017737859042693702878841520042636915495543493640086816338721914329837546490930893938307752469434225172847424580496566650720126672529854479140102493121212398101462811319126600667743503149562674080118793671560530417704378777727516997248991293295288256610067570798684412124240635959506069228519887079137676086730803322304086599069717375915478227092364694516001937438952878675993543456859152328129848158345671198684959290427784831393153782109653878538538672315251630341362425034221540551884822204678981890273505588096854392439581519172744441817079270260231269190257014777553412571778672792012674760700539930064254534865823715628388315017398232235198028755746317890493763105926024096165205109931082384378789386633064369720593858984484328891158195968565599620693148023393745292948434536727728492671253199841268788431471532578121200835990989992683413628976984072104030126846277166806720917126877114709543284041095587041473182700296488352744670232052980539011534560544393618551956769064688279887000587046005490299689579356737615338392721163479194015396508133623491869473894791267741801347491431947749775029909445478509850886195309066952633466140946844189250754087829318801997009920422194828944151959523967735979867739309393375741903091653334472267373543854040249442165327447513373424804558661282356936456334432062453036952526293662768400856743623363891869824614783018686946531707667113986933647725820333000453774299628044876806268725651641411041894725419245772013940400068422415758434388523455316013399131966557784314660846791646668332537527817068394006885048783630807111711962669411635067270581129948261508112112178119585345317495003610699216196382502800214144323388986218373430284250317053285302620259913570690667683524532541627214061176530598739483947827177032440961319003850413971421474467322841378510230574168402828611372654551484361477406546640778964750330143451995528485898033689741964791865624465664227083339120031286157144954950950850470426559430346547698039996250077825240173446686797103305265153908894161051646937234397745500531183437644823813735586135649110323255106194839990129276488758060413508968364033945731901307066621755293161490366825761092840082343168581705718529924896454446133796784476528433879658482053585164272428307134801876010328533271308768040600728022262819715316669397275829748078138890500663207736946736443482814846451146930938010022620113199587291995555615135253691006536295491587944759024676638823441882228904414150251825507877260616533739295306975236262656690755207846450865536025517973384879362360054165773880589334502503709702989289008934583324705265814432497071538529235711136018010604648391951696725107135582690429845610447349979946388065314210348170920878110711601872268833670965192639370735735405030241362457525906128256321273142459820339152667578791127061493097537780471242825998288915816956487923904201662488761480246854429825988151117806775411229988028192990410862474507812872193857682149197525431923088379121788214465327685955705021495635306345447074130547192038308297086330146072798489937769115359084419110782855074947066161969644999494870972087839004744082407245555079084663836896424950436903748140362952340925570991538941794091495960758795349056269059698691747012905748863100465562044392518247870589346968998055941740376818964250804915922092329192297337301681080994967876201920908853695984640576011761966958001170994196895922723617808583136456880504064528432563172075317070140871934816756219938572685890335170348223234733395415167054216609467639606081558709784529520374834157196507367803357052095963344294587348672649430780957792563277174161999630398993928558389197789634627594129116784980537104375735781301792365118312465493127421341625206584890201688635405741263735330806377856024708076264265300450601922415823990409653936759524453568944532641091762582023168317949584676773847284866429756393968666600392556391188158657328612451941379423757915734054774826151887441672643246959008175460043256010009907678612582827096195770172186542375494329678195804028800694977235584556311555539544431073454779515176208782328218826073088808474425913732931035180266367623574936234333424209008153410414639730998246484226775053575967308683599916483499245628018792489620763417935078834541599795091210037829027776887151394698405844508341946647510904291260817273749830124892039401117765101846026539061261448331950964784948129343808566130303204343624065822506372536609796858372554882069358117301223059844660344032416297759015883425658955702891479817865437724943244341052779122533644901507567761211859552070248558861396486508073556384650574545759513738521083772441872989857172756022008864702319819448566207391072035849588141163684089559043682039977459626778865840024747006305532708929348650520825084851776011598623900545290036860553584669093284423974046137112750298449370476693017671701069941213020910054476001643528527857700211175413886405675039936017879023174309738904904934637182939174215508450626783642197707778522827167923865899858562097586931544500340441950076415220953569056880743142898159245379907705855215851892004785648354075289406584509489708045867057967349329301942596434715927624384964126586984069722245046474334612390678578949708420425906552490781332134036371242688989869953203622375956839515563370390589338910084401115112346724809953693923678823174982962726789425798280725762426247035196031088481254807875508456957998063726393770611715360219803731135400475104128280104829679150314870167558532503809607293209187750137962841736567360418880074875984633264989152471031178938294173573591424482441273747928628472830740043019796376261942883011167880588157947828340032093172430834314428123183803073860144492666735493833333842568285652080659408168207642888698015160586994000482221042464260144740264910124761617250460485073377645874011590716224982855609163265190573176351028004547649536044030941113360962632173182514069369632832165317911097147060842538676778127454139419906001016515814420638619527217829278374486084444510692478237506464623206289186199809065718043979127722239534888033596809749901064822133325138847703520992026230890441430932588074783028038229900408987488194256170053295808963219672001015225665486946319561987544906899931610706726075567973684059933750113248492668107552474463698290106614426206756043201244151627124892560140515155639176904611415262466428333364307486481112095921053819729339026761657828001566750445343510551511802339109478805245913001016584080982254639879377975156546656075736155213119663710582077245984374245055401376488068892309737856913416527173244659243427752087751341544484230224315764229368821722417297745378692920295535457833454170845412421363310038336953852577424576733249892044139131139603857476398043839208697830761116958959457044775365255337874959282014238408245708960178363723051997287300520115235570193781985624716974860113494006095850111391878221562107486584601233685825967851053195875097543912449207155950322443851996300123857365113394608936444705003611172318686940682413192784713476551435045216924480888874628618296921001254355633169590269687320393923936121939837412922123382562617696115870322046491361008031649819665219000119622918382689539495569111432471799400901079079896501948550040343719240611958320026692957944890913638196210760588646940712841710924429382697110373483592018641607052858232280911927041155414605702842501287226048916243349311879932400672572140744642636382939448235716449536032363382516010175537800976939273626264189454779467460189238924674725994374902084005714403171614935675451502344398774367311905167552019342379996058978060585512910832466862472557300038268196195014980225451729106717615815788701942296355943626080550444143258337810928927294240722137715823352408233443521725914272929904452044730431359905891007139987267493180643857503331004214784364340466257017539165327249969268898958133326290075293052806908569433898628903324975700881684763939930022224243034808313488050753952430311424335929524905213702560188677298336995886647439056948677448669243412812730927383854802351435975631188986918392916457645770449865735886848467030197384758359188046025425258569859498858546624259346087589569066744779645878592626623823561649741466852870262020163980142967270442802674617528821585779549418560695101163822968524378636260630731887282870623695961230923715375649413069038876574486149058773286201007922473225274673222780090006756663932342831131602319047283440124716319621586420297190740965548157392686962387560531462116267151790802465436322281017655219510605548663462625014590740675977864839308063836574811969413322160306640115324238862201838485906765880531349559511765817996268568510888319694778461762600867980385563161100585681303813110145803256608241350049765882365336582963907030470395454322845404407925891631525967855288600859116333119680895552615891089738029642512330955754778777348607629088216021833997634950129804408394802236241997737350231125302689689371680020187539656594720650322235488171841723140373401202790318090789968262062774697621294445093388164418552314587543195076348875578394862651580877636095364090345865212357919509090571088568780442402996773634277819653200165051772307370778866071390759131775575177272539753564591734001847344186404629150682507035542382677744478874277623281963203271592937055717944804124421828961823905504322640587394084800897526889855789416890786681338824262206506194090080947570771633239499669160208858780514225775067832894552278028022297941615185221984831152337105410112421536941352064602833620079641220913345330299813959997658542793742410497129904597669140010225684499932083984464252058635979065124038536821434844504585309767144155144310871222942648838814542765370682562444035568603187171707514052588381322992543911050152278673853099444196315396935640189126948147850587165990928053125596628337125867036024646970591075414509867540102232680528930900374746588394811775097881633643926797967069350522129618741428519710719838582712273494724908599672694323042143235053088198053475978053358509082325028457717650868483029429363205294998447926289903412864558144893555155733872413095614479472921303082959412943515160689254974793899855826647735589745631701772191605666043403377714718530271585793912917341478954789063700064723762225250880176208755124718852272474234415027067250496735871376654564388258609821261157289282637787541649818690044459556868650178052568526930553989342666640781411371792206587274121841068720200087255632396090674293785822993983778188427112201073943657772195489890924228029523800752282178241278422028152857238440340449010951253016142487767419795557786189329011167322065167860667523915955858716095923720973100828841289411917607657580768112088238295328644349665948130736411901266844867762125181134003398011226673521426753095365074804456097137091877350999352173574480159219618021449750078043903155413699066543674709157890771785668406082592706349627401384634603863397357045021282702430430611348801276199609427299804459678980247505823142999780951801586579650594579282306795878019953273458761481620694562429385388717471360112042737465070492301301792976408421089422665562123243184468681768294040944776450867752207848207291435023004243788052223308908647952832220748733773143674469703113994701278673788088400810572228098224493096508383994976235610348124709797439931753906138749132334100310185344156949013417904389787750709074297612917992427263565081023862711315577089171728219176886945221602266838345506717630975648419961212004727743688284344879930589839218222026571883435978528851668748690290051927851341037779625019843880883539784430756869282811654126247630109706245961568154442598834636583421770111399495475897293940695722516651426418710047275233664029121923445602592429277107281282394192055075683210609099082145444142121866941229451296057546603068944223017391130444262302937650968915614614028364833267895925414691477595020004083631326752537193841004912877468936880355723955772448955581099237154080022765123293229677075904122617650946981948665188028836438475761242191828369100106900599611087484032276931438481524898612431278906764258345334972168654948784066356783996497068925092352134978360364789836539793432108364675899098350346120680433240830278969348658231768343208628814384431002895899357903691214485602716922987165912009742920537100925885557682791260560683305319877104885011968227106220691772575235335623603478463167935721145441862144475049378145810995214502271216805507338684221712004438629253263569826979649732570424923252893058938877109191052778835786723684509514469875493974437093464713320723466874972825381576614783870721839241063382896671260449206512365512173713634748536690011812855150262143695548392304042983097817367689382152282272497754325717900161741869108224219871261896851922383137159028210923358882879411451301394531746798921451732603719911322219486933318604375775621701668651564455439060813182152775219974625898225895855926993410021438828314586378376825901744857787505093767823048914030698600531023422024711768884349319119672480255072646085942860044982289497373539511617436817934399818074868472901907429851544341047446143690480044796055616224791749219405975686366736670688090941424660258807700063397240165808724636210555688019708768292458243508197007263033627745512466009781890956616704833206155205495899629939498628283196144851584507047532955272023050646783621224241949740019276783882256963447281684236818687160892677810962928794871884776266390537779527575699809064406505953080728987748755747922203610832345701035972016664065265646842333205969974061400821743880909120241964914350199389937329198663988349101706087359170917373551763302400968570685952186886624369017470092270034722360767231116512351307539716042649181798436174603787062393843157404513245210800447716213896049833535004096685642071017382422994142071434962929356668304058000235127059665930475456079919310531195481969377835043681500294588253895492108621695944856062562643408617222322721298316620516103044372854675200221359575486148991360306131246250171883732464845296849856879855677924653481434622956319241023939293138752286658381026005653578438717910848674154524245287555682201748905819789909363693466122835466210652168928498254142073951264382046656427829245405044987514835739586374581551134275963256335689068820213942594900253489240004041940526752403740486497431601087691749933910821627752343196538548592474093558582704402509145794410640767997728936134860709838845475711848723326565117019294293818119321424711607527173636641976542316461807785513132649684549884261880446174226287965381101734967768040352602121999203135784650007171601637973400363736188600456775670445318956664913425315246109563409914737683576291339803629432768510367488702789935409885478403744921796186133901409221521262122940282915534410187456034105189268845145068489171666197296647619993363097470129379572057529816182672439607788875496978034792493860910915732426056845684029762035877745451678554851188444279988674199328345328176026303229027687305118853016694307785571083200221690350610240009502634708808110994754013577972081931749218862106797904601266902543222071651357808192486634188376220213897215089475810427903970989430663719984880850722850153959054146463133717040712865813232138419850405986404189530860469500711452039904572084893332825910168110210551317689004458244746348766618567790582356228274733123663966346573117826206841818066021673879929923850865974658193627355976190583071092451379625048967383579653422380216883714330677462297882886918560902533193065530621161564575378074784950918957332916773269649086951249380791502902951045178305525429874082445178269901042001778687234617312612628750012939428784077403336456385039851921256162254318960422642833203711081391700768638244650695911062597694287755102775492029960533553583227397294390510747720212086561806305451898521545684051811146637158471344385835254857328224167712372378532101046984321915854473847305704249238334945684579339295781723582832493892310035798868073194109372241831522416745711854216132092450795833898337386046876737781510010774646473706561470031924271277400131785829408156005726392179069728304743805049061203698772611562092024923064759879893935938717438471019615528418652920609458216001873146798714169350934254900091047977128589737079718741273377208604918825924980852163028361626824587793190144815747456513921912013403536783794574186983406141243589475764462815864343420631760918903238998376079282768039986618854952052767135871426849042794535679344820044488428725273175572186713692866548247707570981850243502121386762560471560832021059368808654156766753430792546410060693741771331764598599604441912147365522455665453818884703426682652259295056561094237335022466641088216347751164701550232794076514452539541482635857382289696193217892175564203004926549138072755488120160644306412138466260334630051965468250867749840676994947511667900930062765701933734541201400791983465928575614817187551317612256083644379497020419374325724444782324867837810812656261035214008631295207150513090192462988127020415231003338871418221624150803284903438247219686386441548028057941687681135142290542973324138577865603840797031383216830502178457831544776291767831026454085158471461879603395848330604830526599809414013320659713529070663715301004783024937481821360968117146453429332725716837068835157943715761767176286190187540350143438651447334997633333199056330448188047400285724305939568359002341290141764024617683623207740780401432414224971142744960749588920481985187372188709619518128693713833117696134080490809242255133306283337578921745898357309979371321023010753243749228510081299352635608483905469702457198931193032109483327337829347080469185685896610539315313684774861107411667900049864566300971412163418461924849723695489542506180054213545510387451462389979455350778858775566700675510597481972358862322973845904362820840505259867386954913340188043361541361332416916902025904111958369397508684608843760307834515264630218104388727306876636709017439497760561033001968385057986590391760601120165037597738612322261635894507822565754812645451372863874728441853914258038658419649879818138413560086949313030971118956962315166206862978203342622047646954527118619206920987391512770422709910059339519662420355694544442038832896448216058124976215670845562490155353152068145037816530511182019395838295583669317439301955727708419574400170693574315879316572572408103524512184837895437636352178604240975360951047543863910078338707504587463680870787201284168472735383613524416983755781363305977606657862807093862506804528903910180318041533823650058538752451179336829390327219130641372258587597100898396405396212038076874702211546053498934387190012564084947626693404461859350445795322203406296483766512132221935860155939686075042172800635645110282206875345178293081128629499444029567157437944359601636592099619095430575476420240781232312526193553246567839266207416607837144673391834523109809897759599635981526116911398702336627341245668707659234646678712737181033532360007800369017172394217827208682596483053000882436369077123201056143362685319973886900302715962037862085459914665921385482266483386705767768419996425732828213507273117777347759097595641668025496065132493871348223171053254801710118903642981442368162377904225316020087653196396120240336855504968796184181281425896156103723422921306982863915861469204223838340173447841665980244992779822224942345699544144572071122712356905625260932438957611408726115712026878639942298716894577065618970257906341950654169927420124170408049015421648193369051711572844727509573388738702491484547627036674217089879067607548687683090782225548789474296272911530565986240566031922044345831665529656171660188540454076457291600137908545494185025112690427381824771988062337459111891339594058362677930894805570558801044575213838559653765889824035242382157922666359962231773671606779737897184376536013139596614265499129284248636551469124009879605334508999153633378836909303583217587533860996653407193960464089625820693363336036366074419574938546628948042074990500813088881019783318473985802724055507870763128640062168529257556623037701453587130459111040259428896210811825686071763823988286775911930173663672549180230577172199184992663140875292395009398869213845445350382045211780025039916624690844701571986161119540762744133163370455810283517837521717277928816091959863254320913312907448341076132352887652673449603437995675117625179514416626746231613468449563456817555539705288559911193803587559179871720810665169102805969168806297588029522689695593352088528883439385359774920506620874120861067709436663628398767579673115704206401102014580037034240364615641935771424425697165353989969748814212318857702934998093459648161390722978293553409657244321539137603402784213752648719877392363965222916182452837936006273707215989391229952456834130068569112948961650483008575031110380500796139893777648365545366689538101012406861480102599984098214005506020693501493161479032394936500430268635119288666085210308483653498712031557017060142356629224735015215943224135072853465184173743220901481114695609304382866137582908105946937568406573774554816273228993077811434915604991193858602853552808240756938961499877542352478758703040081181632985189011420933319709878115579811721061108619365570570624671657467855959778539555610161529034239063046882019479557302573809020849921982313374219898663595391123997997705574848708602308244106047724408189604749506959545044580659923311216560458128705949236810567784746101154729153530120563804203660807159077136237961780218490670623129996365546383529634412998462078811678270889682542193545161381169724555388074099963539047886277973751834245617298946763942519373056674352457684761502968214687696316294238561262446523046961454733593675808927760547752909736531278103329211259786605350813954823591854247017128497785561940499048035857782793170994400330125347554292851227167572366231764594956050631983552736326544640958890300546960442992384813415532094280407719630104972564772709853833596197689256970636396020178557292686022398917743820394027831795197158857446663887097042516035313184771276280742144372264407874517606140573093832918577275136432352218373709921534134153986955819532512110925668600287056252573572148992803897426884277664385235925214010419276611929106812830485955531479722030371171031666006396590826666168667442734782817346911227558672674014700171456077177848042122517292613185159690886526736726163552288462978873232972937507087729130108228491228486160467281885861306190445087927942621261959333930821256502736545152739425308671923555092983823013708635091892073364848891750796504954957127002647749601001022148626084755574396258584469789327066606381126845829422410055057923617374642779994476777112938945962180468160493882279453508391265140430583774890696254976837145821404652423058985404501452637874034616546664342765959273474364222385836824114797271509331427660420311408708830391971462568881807855393077557456449383375407348911112982605207742798716814182821440334002231816838462187870039681628920467844526676145663418706953093752990213265179723164202502252554469601621024263762310575564628822421050799120485807075650752041646495637654583892641804097112354870163542981744063320666111954866943238374772115020523850185128343455837150208045396048738705019050591199413908756979093486169982561670137603856106163145373365605551771761981029099181354111626901624047768522409342443966998766164848234084524367479134477176730837819622013306840587626576938495361266255532401006279992698916187801077120509304639988254025320656290747390943884072677762131103456208714819299198875746952763823764276572645674290965560596983726510213469376103336038765800169314499925975785495108795665103431738980485052403418420972389257577549551286783237969334051529720018022326308143166641951263831430118676207133051903406578389369888153905103859108750818483725912190648137809532884611058612018730933026716396968301503561062694807496495760454366152412256279863141658253257984459663870927554557258742172665013925247769248077351517160514204771506227796203710638623800248682373945435126062165905172740380003050253939528001938113773851211358428152770528009034069516240567210483549187898501241038017300915768163371953580931291123241948515397538941878613057437006776715175586135834085528868624807718291206222311634123589436505239717589361514407660752420560834058239169632338187439588117513097211396303263478989817577820717173916384733581108198019666619863316843714318432341620437125936452579569768626074703317475610958776144553083383346615131453735205827124862219889814264081126047664676849184751111743084439611291662753372330034504241343602316948720800678493040084267098742462715797912456139748716258093294856842363218817114038469342874948601092094815990654825994578045767275427214237632848383049131546232111121456734167895431630320601409412731138299574658515917679106730826915054441343363317278027885367722702202734536757938649034572070059196144208750091201407133153570646856474030339848765163757640243849011804852808056294044180177541147534037679200141503592270233370423068936869415455894099562141794656085653933666089307369968902179997684183354949475893203951371273033510364065266701296779021586711337469868712254139621394109289929172994451683863845105904657485873038447452898444068247730648539295929967361129152759794456281368125676551402478189466089973356358397659604497001596070137905410699120982948686628855043117164634067080862923269273491718899414273834109695671059737017000979902618862498673520276250117691808847658417102022581481422212594475566633533299708412982931649261375654366515301360506404208156985464267398994366058314219999069305456455646692037533689069517394493026092725925887249034851347892900113312272018143776077656315271214499248503766332465371387432215718718202826290587496293580924764184033888565735411732116834520430621652054183801869317719465588052851188530714796355305921004082480801206901259958757782447270960562141737076116227715088853448756369373304611972486443131386361965342644323449041021340038954035036195447436982316108552760286703453504050761970353645216217069938186370982218864565431169764150962992987294376509616347293688605934018365527867630383856072995745863643753643767950867263090316962646125601158901216720041960340390313768976482003846056759502104433338690349308542029596215226659683772931052957417223484093998852169384111813813738247922417934136496573120811316794429432528170001475899461403012372380403042682493654589063535853533225921197622385887255955373556417523658587575518131470937332706884750154273011248371532477532101867100450814970427099510705259771602992036934019752437210441563803921811215587940326697316381633385460104266422433901923110337879741856200099399346722124491411440866261378406654420474932266040570994855700879081294529209320760438026723187929968067050129758070602272577149143574507626854869470207749045387717637875613417313362750726379019120941630483468697320268754562556023132151287473740497813589644530140852406743340181455023239793937568303397762098076063825170080171065305810920463788133809797765266927023242377575126618756820054274718305701973915545661984465978562976997729553066889225605835813279009379764981777460270366736400535380621068218762806588065231718965519624464616284783235130638864085525801824436022805204816815473564099234826866304733651893071802558208274919872278675460524204707960318539232289122092426326388077962621655562943541101418459720648585475210260127820108931216339034750703226029456369029397564539017975302796728085520257615895646848110546294398427494939194386756609203997568891676807891660676350522434275427733404271264464719137941024367688248405032474043222737093642492392058801639098410105202499982341703334711410325809238273215580056726239256637691585201363742926662658881904251577036995087510448321693839974809865397209951236514464873754296590480668727814948579236729834039830638427474968168417383085732764433032814324554318190364265339959471280109819252433264863968026418666276641874219176215218356668798158606479072954812796971550365110100996415610273572516544493864130926417955547748603696009861990706281589641704533758983684653354408052440536086590447091831105949107956288554474873832733561238092721911947147997788603572050481271382152829205471457780689674714313906303721809984852040128374504689938564559358373782542876704276754167277189230731182821062302286828278063089881035812179602317570939331072135936893418019044756223710908746904628524847178643733295678870688274107668949188940491459097550804630081561038048535781718581421652456788835349090884807709669629282999593204537186198738678429976059442488839390278789801508073993750842292278008011723164312265716669949338543790232518564355969723085452472923025925044563517854858325123712958684562993319368356092446888720681076758174136128018284370860188073377821724031995326221550816005446961923386116646678001385775471553317044622130396662460029926269926074901417949798462179348553770970215374233389575011191257529344188240396070355443552670117774812991455998400430405963829844307156670969443130045203591182750656629495815731738483023532688539425985501566616799309939718165850544175484778057940582438726812317754445123734347393928470337257709570429656232785163583429570589756966030778425896589694885629899573909565292699161290947287481920682477032489618588626223651831283801532574587162043238897574569266255042118507735402472029382830284305408009239856620829547926330838232349104057038764247970221848012516774575909491950798738119439798145668551807084599534976227867416333792169839410685366056556438498754231420308875047026941789806982222979933920967561873712384178013269504857147859464607313656196756841393232858248425282222775422403114023641142430558500120609340732107057822628821682006860219844766560803702417922057486398497863694233044684338744049099265190167828582506749847000487628959340406490696185345160514869263403889011477139107351750935300221583891337836466817753913278080471229884715202829837426029224232318189776188868829649913885228524221982864748038520811710205493262238545814177083836251619727939660708088127429232757030654502122587221886507386913677582931571317443681279754711534469100578123366242383508929665088165065480955923959023573614177994116574659969897766604912143414261684958109924816349673076179949057566844590482371006892703075848624793403110489023326724516802303752693872874779809044207394168233718761191158114246390884927994712473391724327779574142199342656359668359755733327135794292118781674305770486276620269196593181801997675655198610705895876813854935426546374057892412702224318943417742402544696074717235343804480545088114262964332481041883405552009034639903944044837844297793845505710507883344807158489604178139905192243355474346714227347424061979696715997598960909211933148284014246534658675002905459649798979858352843114628339469750597472855459461961680788573974610378085294533094051002346805167799810524586951764225054321561053018262765657734956668722934518679469149578828000428415069633865399109479223714682364540196553946988335925137203525909420638640899687133980916838245453314664880097686922426896292578938674504371083128886520177827428118057187206569451897753812880258556620379635629009130509846148350140586618423843560754559635884722739717634697199716858112928425584217884711113151797352573680269299706518205065401946027635287675999560851235420388703718957675750545763633682114040466426889840128092012016558689755772099625688217875023800582816578949672181347776562587449248722621704920814561606862811678060097480247474728012123634939299418805906953523105452439601487651940815384696003116988683081691159957181915198490082078582845440574690468736396165625933666478079261179228368522835676811552575114466920628239922444064262641689103991408955938568845964347714843900603204442692294395305076020366456477840496650789229816207084621814131935537705983075080613671883962234764405098906263058428142444839378837917695752166937625725980701585078161223271861689698694692291463493413582223653720584481341029613574907344152738139518349884059475559237383544764754543308226797497641876627749599154080994029622737251128997493981763980039228782699146103373134671347886810467997340517928970215396348262372480578209806590491014569482167251681071594979522019384065306468892348187555911363847685510172474765935494882424790338144643777349611712218999362058619432340656039085073647680900054444963981459142957490711424418249412055943248447784775120835450473219663393731874223960852339386264671034185679874263582386058255459088095911821944031458375345386433371633521706922358432267156156837457460377027611580417086148588440164703481606153991648146702068029155601176131339733123507804122970380803711663130310304490955648218164306207333132647783263131017317893454436631812500149416492792030106293287051609754811694965362013224723554691722433881551148268471266293806960357940502537855186571587801147834587160492446691757874337282909918598056803613358074356306470769499971124022999497053701564688399927435649102289778221964457179293552224397403718344273965381215292569019452738770299128173895018223087956062598028444726760146108825263453461047809847183051362591161887052972688535234157882162688556972855003364480474509641486510028106947679889139394282374459238502286003552365352488105571717448025233146052410624342105714425833770534001869704847658101801926515930996801484969794136612932782612154059322594296459343226449344371897079402791266851990247890350580317092690070519720404539776144512325236725025288957517009497718569981278297608874206302961523627002171766842061189576725862560284998960646884338469471027820553769222886865722143123131715136579220307094198944888345479066243380314501422699937625934998853839181253834594083185102342360083110124880831431819825407266468410575508749086332458870878082646145863584474766053006573205453833770596583434744725867850652162549381759900912199939656090074737024840455023486122096759893724779837010972055904739162316137923803363820345422169858915084541054595603998581830006652656937187429852886416357040528040489345104103199749668567296311940186826122436525196223574106259872149405897539626746649109535924668449979473133868657551715138542784044612709861060406269441000262797036893571071947491575933318167124257288071321969419087126286606472774167277460314837352623591374582615309777557778412642955524137033125812379955924199240586333602514910098178951660367578340963438403477333592875372629474605547014787911968659171730057017433278229702303657542644518869803647593786392150373421877567526214801397370305155895558494204886876835153004202568871633354010150611028842290799016659778697467886814123964062312121665017265942707278810856261713883935904061714658080313587469312783434647762098112626551800885134130452284674607386492313203250196360479891840307876596349598335365230992274570613027318398401508261301382497374255422414320681278263821331451494188390813905709246630588307146408009201220903958920037161710523116552090265118326334586260384230628572093138230188493151418671178360638082849178797948652703939924763929982248609238277537824829142852181078244875633649909639832446117017462452897049387862618674900065149055834879594367278648941113064956805950285598768076529039604374874792885449204949634134687642447737666255932846264849299860469077765829180222687213725169775043801184311985197668185612019011552996544741558957876993294434219419613843564600144505760324645004363494508767009830182748620246891944671722217647523270119386985544242164936850730029664270649111061948700510093838242210557421646791116136803608884470129147866109561295862270163270854565862891295558550469174936916075980037337447140440879447170603708024049788567936274626407815705230210713459965873858393588363372064002307284875170994983789500699682588547822353522770538328125204920177333536978165938111361772897117663771741313675717238510299439376269926878003681739542165404020957137224992962309085375437121894681528820269480568904888539366126015253128791779704013137846545811728596375140090388155611510503073352367775281807728094527135204059370498301163952931339749705382200401611091683922258963491715013114142489042112122635926308599069226315269145426054522147887507032526878541180379206920094937455499461011586660118806482575798011991027601866560353216116543811467888868000232267574292469215927176179999030002859617858308007210334712167743081692063530469660462274819670541804858893861123197208167744484965522995662520226055636052923444106278681495638067312374421153142954529958677761690703589856183353059602490225201772951112082115841702063999362134624467951205996298009469040200556832439450942308847909292079039468326421143295843908123381685560675090634692405451216829899366277710345667050969867671160252519690211339529783363151297675021527531496960020578710696115086809054199049561904323866209436439826380913323482353644862369009218967927524120656028734596172703280910445552725307227226652701177462594110676214670878234094633050065553154211371523178197594512350790288358272739285154087874980989672135854276259860866779684615232607022163993381500822695610092563829154167492119033976737479857597321584095710934847499681814951501672518687406476226545741804803207838114859896342709488436360121220939842055896313851677740862692122733080641816259526427365127303053451943148783429992205603725242209591519895276748002920711772948738379567863004871008013826506176107538667642165331714877797592631917293114114404120628615742044924173116003046781219172846610375286060108399093068549982544542222283792166854946093402745597758477778877448125612208536443585227506485329067336164785321804669310064652278411884288267007410400950670924279392839324357875271471150145977932669003105572826052473014575206677424958034519102330657372340519608436559968085650890936939869391600370076461627568874883009188864166811049923243179089768123218016830013141595490750131944479047895290614641016641706563010321598056334638652592485423560816323390615976720996195263332331609128282693455105165718330052777324967007448719940129844805980162573772712895642278998948931341580946771277050004980247783286718450415707713639431580168043027046015894249210999832491268917312562371163901799439674357587997982118419878782984846675105506630837902061349672189946604362407016514863162734705570840637187020126045949789664977394731225898274900184430458144392115671867641064130773842905819801104549488338985768682974602706471316029784642752999944498978833155866273379418428082282709965398950561367313266855479081348885407725830014090520835460653592051083526233556963968627530443972602854562734907827257948110973562675036834479378889949977028963540854189363756397162317821575599009263776859756900268877923293284218175826561784892923582345205638304086098578882377229181076046095364665730487943946227430146714696683347080796201628879560349620074864253866128770468583075855697470849312603578902246705916330541408016077360751268109027567769282647514067273156471668846146021350831507050001174433493595063727137326298027897230597818554832009613904789103286416813485520433905104829798807281199489114983839480362410558479112110489398541591548788813284563593836796256424607021906459800529000133586649888404399005529186399221141477234682450084247133799555010724149863054414341600324430901362927228428597052490948251519328791524092714621139489719898815352210166191070771371553212678888709595992064278406180166079162197823262064773061105080492151203526506981117087679856395415228201072927753968153067824311834580381350418161173426171906718839299799420921296441143964016948663519100504600258803980600628131908757148960986130312359194497056311220596146448003280033830881148871813189383248623463545063650152067411057593039300677050765787731083877459692582623190969257871381305492223216176301641136305466718271755608351090859740168983478736655039087330708600357325505346303780284746861802926444321680776148534770979366120594265113919207330603484736068050110071909012145388365284243500156527530394886633422094083619324945105995875656231570485388619469241690780529764677224449797742264945605436385989345651801933804180337896536574606863751937342154193990584287738263985315484025029906214096573122828174134744588955879925872726907454161339796309004697969963322610501232725032836224406223854154178133519712768271873264478824371339599100483511701495047146091129986474882884248782008299708420363282742543000170214712156161658137546813080462433302475418157422698235341089860992235909013330445102478665678187436344173059065474824001198254872023764917431567306140651703623711825443575659853760985395791667250347703485312291151347327284022693978339289555236551247438862363021413570265392258293930287470782961670259742351790245980039546597388349316355200675035690296016104415492484112523792891983838420909388426578929075698295181255966358394940926275562985917469215005229815699828638680951033322902169784588019023250261539362394820949116515020199177290593303858434897172189147531109869388967375792163187113541335065973682849621327759331216067916081776806783844391787040047852131751871265632236418482681435116344109029232816354837748637612357646582793386284265990306635144784312667265006445865893919888298411558858834008404108085048622462809473520978804838156105034615192341000994577477770433708833441225071886505455450617220785204567575492069904483508872519591811852956439069060101972890307699886825438834154455949056067852638839486125520277523300434542359367278357787604166128994315368342376484029795657564216488714685696590997669206357729557971214937135863039897332452421324157675378214715026227708256109813992054151364605410156699247988934535781475926067303447418858652722718663320609980095130830800093001641756265182787557173138442773049519640965912477519296565071051097403728763739873099848050816891938535457374711583196491691408166989059600796904509328121511677690938222857746714980924241681148054437942019009990444319592328325957576689879753704317150159379266311280040632127233084052963090730735420627343454718497327691921965131195418848840985532480391970073717458030338133205796973438484555291425105060560181475826055801678656900664801014070181880554663356311979668102787272691328322374143549580569059835283749838629624499463163482222359993573240575036135052561208581274924963817455131767635227416822894750083483065874855318549614654570516535957864723935275487101830035141723403165050604946191835466477733111126069553703999067481765892168135063249487936257669131074606853910460499647043238051230022464738286396305416645686392478512240112903832267974686539075929548387649254493976527982960880564785522329743814344900865375008880352221207491904248718976754629491951803617258871694530471254045870034035559583527358930235746942577182419213678493801251866003768141004000341002233546709106956196592485895346494800668102055303556311292590454954691229197098878062134040315198035261319639079736743348211372617723906969682616156358663829657725933148648880499804622343448485205777441644008790297276993733355603989923712091214274799936916553692030223568899448857019591558234059197287188655564128197513297483673723713178340638712308607383415559984868256487352806688030823048346482434539008856478341018844726020008838890238780712176713185980824439508235737168507068532696733162718671715589611920508673397503705342494572340859322626751360442812633960534860797576489000072523863686651148719434806026805377535257495199236507923104047989967955592073903410933672306176626966645138855497552119507989867357032134225263413911713083610637973053779683555824772002641870741165450799534616380772775785683568418330070951814466546587111354810028650351869673876874796399187029871052106664142267193610420227269195391571388224611065136489314245960933377635215323042848472603667804159135788801891316216678616365496570491233566080646321303133974880176507488632759012111038663316984866734925464092957610828746640276922616931026043233496390519201396755946994180043651762425423644547433991814897479744017433820123889469693658321235558276723716775722982677065130428473580429570920033668021049595320171979705754536363731573541645400109928271331571937646107676280999825063491254416547038241881251645745271707629593623818993820415055428905559294113770117036009570517432875656837846305588405189012359332415167485871764753467234702395572631290118853564185456795407482971799871715076946730560234405496829678902622207281311266686570207220531604036727070642387772175739543517393620029055311189201445666778298377306073100797874000642939161616334852945032937190666774096471578874320580208184914289050674601295438663166395933977295490061814276398773296601950627808019079838282809761576506525762008940436731195188645299479658309827623897456075050569014620839410241411785291506253987599445232206661486937768066127543302925460143136447080828011892398599034028950467143362831937686977025046527813910113461796209051691591642623440001907754352681784874066118889050320841731322767714726603477094040794871998045794627128630203892103309385877910299998952573756003004073366797440291170182900993347627677011083225370881023688331496025779347351401003194153834631183262697683318581326212750484593704487955325614505512896271433007206820051882967309724495822211027593670569294850038936536048739650557757054620168103142742327259047209079584246096302611228557366000323447854940631439165682280313231619794258808734878631317591074067148708141837350120948287560431342105187586047175443048841351675305389087572837777459179234632985878723326616029727369654186388388980903742852515477980717000730895095650441399516437714335594148972854418303902056220813996373600601147978319545804979191700832763499123177238659450910412857658056430461786965222087899987407627852969837356690027326382441991833930692948829705545074422766861115578907355369855585681510717700972138937423035805827116813321624499691766551946843066875251897914185209489986652750563864961448602285653580677420541685205856923693931586634951224004511891570520448506398419025775496276831542654361564441902565926795423446443465291564143441733219820427141725179817034421173511828549348574012744568787717408478673368716296137592676326433519116347180511391549622867994528079290644824854704778831467696806140930681152920952857429865531235735098274801700540367756159122330074150835671279348275196709504976564748842628567124770039364305572172242655094351900716049654573999772061111620996183103968590219135959928588922030172012744876110478244137785130686574996815282780820234542145388363781134425639475810093319556613440038998825437603661390202953211983416779254188655404242817210497474017642692938935165373721620665306063214119113638760709957029115790573079089335860770637334028250273158397434919349300030706702183653492096482642085822552189425030045610784727871412625661089356875104357103384821864683321161335930306799171643457219563875838334298202944893707835781563368711980649555781480947207393690056719715821559504890685725869735712614570170649431370450410742705962610947481329040668776023588504053375480743733745128381597906075149390076556966617735459913504091541386945348230191912301208415305826535955024488025408236101092324870603097186132841236030911733351990699320816653851382475238823026206169586664316834916861327999733974807419303477619386633918578582067207909365157405526110832081406200752886444493337369211603853382604262667528398755415064981462897255149507951940975783536293431774453246211981376626320971095426930870923334744808225606563875434930926459446176640217780409882718120848690023344997888397579895053185532050685457258499454838687795408745360272808379517985098191557272325180595802397037638544429847845617442495978152868820387740165670929228988857269956205898180964994351137471007292005785965927743693329775417548614228978900480117177039619605222238142501700354830601729313575179842616819597286716293314722250064145987526830273758556757180225414049299299153299779603414321090415160887359680191704238250929164007449655855770874557376953812469066861905841437346595778465194023268273223342836813567866734592999838394579518745092605516251265295624724779309212881479859860847306691766138061322696132942646670167855404586049770104940599849181493871223247491077167243710536651998344585240114733082379077203993338362064907028295123117378289012777867552974415373641909543252052682809203257547285860238141825286026990105809833478584598267498493578758033168800961345159446759480179591523753750853309264519194726925599423043723256066468690243147477863539672388526242449366968040515195014998764751547005880909961246903668446382856468618691540672158603341868335569568795800367149835927829400899538152807079310719695590745484988623667484814034975793397909564542650760125614302580666537862680918397197065963435146998329613309144703917717132965163582146652446711791687896195166262769679601371771594491212235472603934595019906718661529226764089692011602045063668298615911998535689019617084484549793731291445076543925908906164030299810667741733089858193405957124882262403472995233095050271006203238114237141226087656981373840913508919608581615281935340992855976306653294949535879117292096109646494988075060833078306874733200711803595179456830016682901907384047445132513992697040297994396905202424200222951768531902968828103254326321802608590931784216894642386552896121025041112774092590408563754692183675290335258570147552476305689296454854410622125656599623190209884458572048311514243474026980774184643308318538984756077895872862771601629601562742561459111027118601985445696720496873506699674281393797042359276896420227602888121367911311292113845579186311630623385439122321834692405965765863395995876831360115910926250884392889900681779835740493208597282808586575595309739734476518715224644949813430108560677779214440868868786329113806273477056202481564227165550590700943698434859890416476702088902811306684709544539798482930500462549366927914313877782026322167491489842831963839337023347672462467219871660969499568716580126381296082348645163244569132933540536765776573823134403526902631266170027377770613712338974337033037060845938471867710820461121485520489337021822931089735535710203099244246249374018132972507081809654076083921984035844806827640348006048427965318950400054596452320427938996779972215796844259840991858405763428483492204397426394758927279919970136148620439938343630000693083417886023030349760705877698118781970057573580052746584094909730062029016783790412391809136958967030691607039069541835795110491060961195033257348678347947999984965321123743997673779538647716361399103584053357699178899006585438624976328543781721359346114825705522120858683745974795048917458201893364681323133005688435250311043252695091942385259237568230156236718994358423317746666417084359638695734400692229015442054728510823398822465504421079872001203869155542104098537662037791692045025628262190878882794564537411438501558015978017631752671595897968873819442253753868519768828976587241592385997469382859070034140199554322305934930555445304570608493067239092536703541580499730331807809309390282375046289877786354966754993430597308099291097693030833757369947704660386844596599854941256194215954955108710806692047492167981684060070772183965616568334567719579486838562038821044028264233340906102815728713733542671771346307619389476256412979609827284968477178393768650640311308001495368205393269466926338219467164132727820476386569659023056611304044851941637698085887588637453012188919405251274306522109995832781690687722214875041476844410629514859379215777318151780648107889672985957945103860792038637881168016662540926535014967742137184153813227826618686500620862295960311214122922119365076930302240253248811120282304485892654553296667957161769702547590310500178502721076113601787501733186354137048003291585168190006320065313685084535565721288103807944102954131524302001691125471185731430381658790673574283581923959036482961238246635004741278706927727736583260373062423024593478954453184926447475130899286317860969455901269429409261296691156568842537283826738025593229776817697748966177666905388953870141806664149986087337138565978026641655529607510929810941702225159240534861088154557744744952312684096315125627025646064772703809903303195337855461773929664348022440893769361483818448358778162964119865140401652253234794055649806832113169236908093055540678969274041834024079423028040855706882719418510029888352778212057267478390206680154926670454860548759103036059323971182084070719074528552868350657181786176654190307224262230458359802359825261882616066247844319013807290312290134607171329706575069205690642890850680450624723960769430229843121433076739734878821025074795018253295162602826510438677660871422688400885290692615421344469688742969264247310492406625451208641339378739767973968957549351060232327789912182158511169995557862250927099421586832946162784484490165176313571880402869796626113175182601468444130959561072205489211627181224713333546214332986357508821356461868596039886339957915206318403781462387097257420259637046742509922186456429451520538042523062149815620100069153030436845456796658812618663545673618037117653675014671654160936017517200883339645883592317538421651604148747438008465602149345283817986043867577509672839630387546413044711858929555400470155824804026343946623163910902609865733909538738347870842734804576839829118505101510257579968529638121514427926912827532410045654872479169605845274177555368532420842261097449413280069193236678179227195483239968304073637875606471112188058929630440247548561105873776859375027912429087060946371125858948661855306698922273724090204236805527368620121935339279483843453966158364089543476234451955572494086931072555825139889802991871037588020525349108408404107737246053840147757055490614736830870458233311662879207695673467320018946371606580016391083154348470928232084264838772081165021808555482477296728643341528842166476657786592886106980627046666355836034367434476359076100077805582384353746568536186453737636872221767808077252874751018017271109096581654765729297452270292876138919345847139728667164768702388263324891084469258260286110421069362785521853120586816181489666419755965813096854955715702503125318659551136174499136226757691614615001551415526543588985017651354875734264214801808099691313990514422837596988505535453879370215200478349473662313291673256109895088672265873882382711037818574686958725105474917492978297063624764000714017180657716633323653524929076878220576677693322594678945625367004141881895003604749071694951213814125125321255133612229638247915585085589261269851987430227731511571606827456468141947374193138982488536834281584249464978004907416943632590278789945912178013823917521121012521284508495697340108064943994386576040954480618798151923931305390293542905748653403179686772535882403470214834068694281794126289775741871607942824629660954017820147501749839881394118015398449784212735331838847058975129681732318834949618232324812885988183388690072238935804914005702244331073470956303615422158405295638209766932425201569260434748115344303062178215679117729595373552607756244560325397061995230397603740749103940676648125191615945659114694486886881045299607313975142240535037863742967936276355168914905037276769897529615968333708489338976205949588227971877865878256796109384803005531278642585374062995143209163532293299677232105790581037631001870398885233553795116789727266374773553039487057574187712336294862839801777085234348857431038105245805751268927980186558640160381573308810341367629077606467286286666861096221134894942698751780774400178522360690106776501966307340918653159620003341408224145919220181022789511430421931737677317703777137516039309964148404687983024136064651267009949071199675788235844106706585144868578457722778890607193201564502374385765598844976967252776987528040828989697162711043123437629322001384893981994787472823932641750504586192545477288417978835667453678356749056183319159680223241144072537714876612551665096295078571111268934570108216303894192008843454418662960924590120474289456898578239349565098893537235480730849409188023477940480702665889562559481814001986672472585551956287993276834941536352945451235609052347804337136841046038248578819113615700924299346125772869410428109973814102493404132258819509177456503009374583628198544051208676125265720922856755917071042349340973197042237525381073182526216064608971379198096010701285141259792882256162762746877199243788629649525424304070961676918250184688536797650841339066749485008433851959144546754835276117979318043941287343817847036710596745975557899988426343836125885189169476643216316452915982722165611306280387887132223289389985757653320914979304606554385348781523778037610337821657575830255329999413980754335080026361222630826000430449541886362501141284700593305525656930487372143430754729797173687535056943410607739976713133861879999811133179140269742893238725439724243086169020969013622135319860738673298800336723096796709953572534013421148450301277879886246195147604423271082019563747227832474754992301620519408981880490689250572818084417201454159830722971412039400117680486762138664130541797663343402512468138223348429285906229706910189239094647307900114717552735253989164325142461801573284997454865730783905916374835255531229734928226134405794111118160818523435212407239009196659439635862712981787372865103022782292601674663841612537335753874469844621006087961589327791333416372212699078259398481922388957511313089881785132118402055487571543532752456226758972871772831465262233302079486033995262148776812589122750648514777264980933459991056325979175675064913467034399399877555632640298903229187431145936712297960348942810980741182537716223400174281288167034161993579741180443518827022782096254737130670216696018516301645114348198979345026800355349409568123820900223157992733828974829804382744912317016027476361690775079590340092804740167758681360656263243778867398428396754754135869190029490305891161088205685086378390214627664552497041272531374390694102180290078921147948374444445998401744515225960418116647841834934945499191345930782439717699772104293381890755955767947444837647020860061526999377222780217175823129428260980537041543668475660348145489083825468538454910516901004186816288990882640153192367541978372126636908629990136926877174787721997743383682869572100046839104215651733603484510453956001659999671324477919869234907344695589351528842825943113743649507471323671025934424314225578333039282043020593105081302780435849788942335138399515245908692095533886539142680694437290528750885308975686915309140713404482637776318125056304849745231528174142821381490827677184531641044333607951418857250217784088182197902654840955153532867521511255757563882132525392103016060792030422231697061982282633146408771518545662502124628824709659481750719272259546668252465054160865662786249331639908162846559560086012606377139879828207975868310844270550089482125862610777273798033727154068673277510954873161525201048514995029227088839925683881289732029276259647331348104828313409339764214983329068079193569119147424298523194717503413790884763220581928168887103358530513151587956289735242846713587348136239681353082482352028316099828623354583203124132272686626638896930892823527347119230693369134880104774355121548646028877449801586192719995051775250390506162166391772150127492962977222910820279808577485933639296966319051574597695401652331517084357753823561473151483189424704204758077695699447540165040252164813758809594415135742494913177253250256939619438269704532530015335785896991317427939486372807428575670179309271211547273434671731437276597416265748552359580440961767607164181673366507974690729587486319204593207869511831995168245677733792211366973104467834853256500529373918314426346103505885318223502454795017287053738357216548634791492221328116786413003751208973921379383805795719538283170643511494669896804688282919778111013367449351547580932006208075448753940108148122906612770241273814293798994047023660326545110322439276890857018577906097255620002458800410744109250350972997928289536015596410228484058540494278933061370166648289993182161736049185378461134630199773301037634439821786940944269945713855407526753661646116298416754550953385688970657665273861658553165242321373432634992047003691557381922337713122497928948201364757396879191449436447095332319897909044067555616664538054317344946435724431039590814725231631211439655602577623613388696235788993132221355221969692281622958554861019345706180780529949690564002045521884321448775279292242147253769038111258060794944434849893825971570139282387126886861768652073911835616609928292941378737391597257702383542456080189556693568582242650071843964806366935626700677316985868908024230776474767070653794866395795696425440406668126752957829211531249147025499707576134920623790932501738499111482392734115961089758120859564444995313832021849883740447400548345857687569809285463152126466806656062309601110364376463440599706458114007380523388099082990062880365836518405203405606421978533178912416682090842131215732056488333738873049562895037625970224412235949418335150013812989611659354559041641446458102241395358529320418291622256968567960581665278158398079443114385309075991141129430757355363867892753385097518616001454238200432663645965456180470974486204801497813513437712447033128668512589053793493584123146718220552009879189492146976454666697356977720814253916457748531404777972045516044530561079628969667638396453174110891271575678210434105973458049416590171126006423999238084353895310747499229314250089516453231494427766585874530899032076688551388963534173815610794959362748520126751419346907896442284609974905613739324630558681058244232783370196110669652648400886337740736814737912330138874462620251618287755237592994905946063586681524300394930066774463162776756421952983587514115667419605937248035841785619379034865982686745803690806411100215703502714416262647490958856610295297709536465121863620880395239758340207481602863049876026140551354508207196961341204344329175190889342410811225532851031119328677167552363244084938589526923185500778574380169385228032779884343727541395277352157332984697689956255398470977493573903893263020136410118143799388317616945415880312897697044029561481434694905395314844038312801233928564263388781783954582875764076876524670264712231436388914126521756149804047861739537251115692507170583217022178926008568566192077688652411677150313569683414273139237920110803277517293752197436704194211948367008079249941572892261676722406810776453380829820420227070443966490055083648101430080926719682887440858502629904684677702530684417148989873236480116394415850243955472684805248190696552685873806830972676515628512965215344583461605639137590636035818466104290997972779331249759448622865060186485516730650150829700522147008633438700218143511917005067115198633873604127520340192738258768801359295910823398914904043309227424380631892644929577359409570263163703446821061297316519546188483980391905134570811315985334827915998009204925944408717699968461342135073105998679151625263082928882658929124760285762171185786552529119657532103273686962108920991510050753693229857375340276086642604846974048122045156905614573870178035161182200758147873005606615895825954629981959101703489484656623612783422471072671208527646679291924493111270187042137193299366429066986590354880738627309165455157111430480548194143536542607887508876904174466822325160275151631619757286300318862320353188894928523508462794607277568092197859921238769877710641296347935073734427119029413600334472269496600242132810865425759701195589711349707862503492252403703994905690384143245263482227570944140668225819168013162144957693670559332175542027954123563178161018021998559503625063950392095681006361969393210574161047816554199874988295819531005515901374262564824975516682031982288070092566035868538479139540571797268365807960548223691412290038676122145903481321207982986864193199621692883518061973463177351671523445359391560873195998111239069894294934128185907653464661761966563724716792026318196737145206047000823964031801404291078736660805454728854079318481180743190693757718534334575409968079874036176589501911588344214296210588645190076769652175147268546246652687309201439566482903274919820020790055279034323808064149893686121879797151960270593477543962170669342832848014608185698881597167922222479867277753976729320274670814018122273852769339474748271671798587135185366329573037716140455029686528288141570441889975970812483738499615049040614255979891242927382641608935988885667293185314684598701692736015672067702772230380900839543751345529272303081025799432120935140073406845645339642362776379524284372890138521071584094178631590725062143549535382876220694331582717719485974325256402340302560181542203707464538171276963423720794035402684462773385276235709919195510644498930873358428953586783316128372228897208403453786377316228100554753409950501881913951153707875533905713395610248072923469903338571792756483224881393935217926188705766108236778137255498063044966166837577896275056166308928234155779818228658712101942010920455097642237734025069969657435528116995601077663286504877123714952955241840404021377929756506707111705881509249344611664533041344752108382159898589935347978601142795554111238512395233095609803217931523231889812233104528442831370336177606090625942781601597560436280762451196524849909868183369948417590872494097715827426708589899730244069450314318528842676514944305148181137405498911773161306293505173974735873475097529871905551308578086495998820744331036114415498692825070342243782427570944964069423489243368823199464096959541707281661591356677457356111040782574403468347008877290247427620413710410498947031196293755844500999395983340005010327721640241346446149318478620175764166296484021998231439989957893856107793492770725929011745015328625466641588383115642863561016123583425225346822814280261238729298901607589593416710774602055052851271511072117783941084004776293664720307450245013528710525010978414824247590140280355744635697504498740482247330305536148812454552484718065355614715136455613992553053150580890410204210373052819950428176589273346888695498835250718543215971553704771493409522112732793320085151308630220957061525091264745788143870036025932628441552868291441172407389941687264511900004797385865521909497156002919991424016645547041723779877137368943296568202698952542273024708798572590689590302975094490495287052041120239024465108321691029007649773847615362498450893356307398344416176403094286966017504825903457043621766253465460425320154833566616751105871059998604940849768938499602491762998324281951498010589568277702521209774258523646105562347484659698560738618658442559884165606702189515619877561936503482366850636622275582395661186467078571062739956721562852933131775810614838930285744433317718980126227572326696512436644205811661130494393943691213501922571530831754651058598689730407428244028742184475558554763135215496006213176387868439566448198388780289418159891369266168204497347719699562973248703707228792823435756243000304676554318350640381318915934972855183142884512626974017427291701224911015102619014199413951280163607421881097914922802793849734100669683046762310601235732750012633423535836791018571277165252970422699996686030914262091905674836038606083712736935342119628004143077521722295523779027805490106861976034390083759016075506217581096932313910817621024177877008559380338949008848808995262103488801912038644257735734114013727675068364487618185963004090066589190812828403744399753163183947233773051359346703423332663379529346432024235403450969255911727528499182800141520327006054949113688610723184276393026088435046861011576056910662476533607005955896102838609426277739245370868411627262915063606745672814647250883477149983652825778143055576749621122701083029161275482052715316541729911668977489967471164306880522585780681300122624374748732475982532840697682448843053274490186989811534919883472908007827879366829438372425135625031764764477110702591690269028723888646978312508793342620300326855171806001081060945727420034328556217290769188272476413614018427252699693671452221132565341905386442924749345110242199002467664813831000137562080446865996945292666107412596919495149465545706538896442584236483576938618623948526726844139615545554898858106604342383432612495432947720348954465649080577366305361365017596309541753228908424491534760275384631119023019926866734528034489360795324922684774664455308014394198247395008118203609018844138615373384214941552561734150417128300508356310700330215747891520632921821615330714965234780944596970434154531642897693918474995720457086938474464162988777400833012802422625965996317224633504506523987887262401657894299241698612111001427295610630936242883265130681758933198835151563342362958909520963507738793758232584394152878891996958253674289471266063971688277284008422164701246367779093558398343774305787225460598606349802005521922090167165976155150369228980469237725215769007101141244560639873723114209950105851909806118162847669693852703569197922737097971491243818332857893378846143661594167043701286848528034594158727620551444954405990192864031414106924640801553986833263759620934296916289026325412640058382874486036822169769003148920711529667201766398870726711299357561118563272045326309724202269151315761620293153555885245759075684484585342423357096580713169160948507286096705439557973666379101631768028060906144114463216466194376658566090250276703725839639513036543674436892409904865001231456822724531435975312921591892700647159108802374354065281544775819558856752166387787074206094221291712498439186065902655301782766572684716881950715972851359261882236376766581450892744202515130411202701620087922055391284928476544579479194641786625070481848179099163565272305600533381570481445941488436045967346670951875558873358287321240645331020482458311847158779360218279493654827115526951387661922821768794015484080448113259498630030794817878366747388892478079313283181628772568423372266251992133577836315540316379717786476376104260587766535542503843294658479116320892566369751262045746726923823159385036984838615379050968112384648842287933408386935782864547903712974613801030660829552703064711866494059213738895425981080309785094329801267023543654095786128097182530595561500358242403641622223704855103473904727977988190976821075410733246863033717061095901915390050037414500610847681890731757719921216755250248655737820199522968875824436796959824092931050372933894263826274911689133873789137058079256379229322094723151573872442839780922728026599668294592890527046412050080849114008507679292266605278813437507643741805063233806105219334779155234572147913165926672879394056034437509138281865126808680720983509742171537063964566136627017437104045205271398229033490565222536087615559363703433624899898112511907694958613337378677197671195764334420889567530853438496758263110478222943657302616469440525848013730714079246232546636347258573883792935778267046465071570001510849319345246531352769954015610670482462101063389510549629766633293003000801380690063170510775786742985752908337804733795422857298143975931884387028601879250371144690175589054865027192121145778888844951298593230964358085894347263363268849299825810060360055347360704108421622668008734374226562435451854362447272178740762228379556415472961492939391992093538385327047563440419601582695577300762921902621913020251159727039003549663233355873365916476072493127290376630358009018820104147583276086478804429587885353622973427772338465750075217844816140141140912648509153182718767630666326630280500111347206482938930453598721488923265986866530124367038959754392350054951538091206287011905852786461163823040560719609662611450217251237127106635120937188738577639146889510682145235895672479670267778870621334120813969134845215824219975533851718524430876352099314366565851447474376144556326036509194419308568185259428472084442488145096504590286821700016629744166534188309400180810957120863187925153869751154387678162020091782619790648122532296725971078844688356963619453913821387309717437720908678105981959896156043182213295525910618771630295895879304623116531562003017936040276875139309158972472289469944466842521098258634723195056638518397557687837664228681450581802516271838133256467341487293171698572014639338275502360324025555154873024541082183564864543979997427158823567547372412482277655973272026100535431173618109697898816262763186182987160334021915041868579386571011401295681297840249514514896918448713731535776604544660658542524305974737051248420895243737172892184141992616203588388755373527192838911378248543826183656250114849584515697402502695417837212148897341891021674242089667349696277488058633560695837593738105818801981992258915021480680590063495285962880276641101917655941603620763779996290879153720303950560511985415458075138947452269734770253145338124139738344091395905639755197020963988611031421986282170836220241453049903988026503607742346980820663162238595831688419557539834054696797560491516026827905524053609595960544849731293166624112540589439336000719426941945974272461354462621689074702695161376389119361173503945940412061129414390002821098195001759308198754246925472865348405110681799314589170695714680608978351750225682090566350437850076885786247134671494733872242577497173896101700794819750713050694700027664269208486529241594885204132672908343958649837569059970685363135177338398048886305540586815335659907333885635746991398810291124121747796694807668843292467961962015567653853355507134486905324758036070008457627223928412944523259843380329853311293905182335132575498496909598836863267208071438085126064203042787343665053057543672546990678264498708252102045915339752959813217736382824125258864644338559255735575220342862214385842651360414298001101764347868680996102729744295366083560363075518686716005187524257334373035037138861184455168260000232502485833580590032558575073049045940171815593375613219169659771022376831708217331467203554208734433811276845595575857642811750512689526202603868894432270528940018751020810686780346252308345855623267837166365005664168946088822665561028579740556223738349437263143902827473032148304984353958654632237414208487085436384752654579853912957205923721676385462112329677794188901742576173934776493818418055520189263564086984050686249664739001056043695414512208249416738542282163002286703623404311237431479336411294727554138345496037114656482870564042489830086333068701777506845327355549088887980008643945325762554423427983641832138511565555577475741239249320897902688296649342074396920810805667023996999106092916504393015792015460629361944418459819825836118824233799819971687335276856151279531117680218810226249997203266154403337788196106020578659372412357123824574028629956327633463644775156045769712967388947389481978925025806675512924952279624810364421475342373954901099121338383176069362473038311575656150413031381462919572397228038298992465923695254841364864446664888143924781036025178695014472168200398392987743132705489615251695822690118674271826042670773592533411998329252889803651716907870410903785523932508442688905590755366723195345279731944542825607849420355431675184111698290696330751323547169365895547480756051259290296387988759717125800526665929898588849934309685755232199134841643223605304970682272290592342340150923439202859099721484503152761643682528444566786590454526042580946861269076226558402767307641072402392312687478762538656273505914429501209854794331296939136198146785941383717586265609305899187830590028627340986475246845831691184897760820638880313789463882976257901616269938001677232441347173849859855441869098165760631855720812062646001420741386808179933823694420883095566101850019398522842347767088145030354868585864068225757773831626645565894107248642667710026835439422051320098548399304055923850901650768775808928287070906054784705336272060568174057906169399670577725234524482943927060612833807830492200498525847094609808515585141923850953731603476078352224441420930922606047242945362414512625205604212244502407198339715257323360700197821251916240542200638301954226039448756161654694441958853684424006402894265445021182263282352365893357834239546214872914724505340869250145207161956544674054187618804731829990883167173794687888275835702341991330437430996318071835941994410220131482716598143960846547821995598197704322623247599245901761157683725249919305119484632216010693431988876009492165233224509671959469361700332666354881959406995501314369174785840151208162763473808267902958076809366434217708019208390237721956785214260427655551099552516617269213170739799183339707245147275677409094022234105232069564978554501410899531552842381488099425407647543044277248404613125567597169828108573656584955043745562506020799284647525877955368921321308253057823430439961893568578192366156669908574146278137988604165211225934270128015131296917133580889365194982361464717416365972600416552987356933326337979352018137972297234203963000880978480268333337876201499792236533447436285355026123334451434563977598167259775228905529640835782667950938686767706609140097788179236289658213039544583143580745105063796274317793701135188089800233481566072327905437620865211347344370112716493942407790160786836216996701789472342050689154911300660721438798672961015794721853171279375518322404101881599418119096726402613592973961025836680617574216505661561008720307114505097144161588608890617107635407975338663525835367480249111188376344078269839465396415395708689877210190970522599445982618480357317183254501300479125363987560124990861134166789217453533453989610219681478478284763362031409140577355184488696399979419267412487367205382457106290177736551523536377900821276781297149374739230966497681070703270926911498777757113593623101222516817671544240700287007673590805273242537588107607277270242780416955452942906656405786716169799228727417395885491743624606000608220170143715339295498829610779039459145354822367041914221110642732016320072729290453435746714829447918140772240363072695107816976142855873516555566484263446534688726586066154834622624193269609493652881385384355567143706926032025592753334841319120988458482146814487405340704359348007793904001937440907328066919160472456333316753528998286459217213407438642661939472267741776359715551883323017077343736871437240896618566080357713128443609435443516926914051844575843934181677052293807858852336118334824482004578421886447661479556542267464156843895508094346305998081888275088726075487725656010879163268114687709917665400080106505305105807252543291195993888340635804186018644221113150660100861295774470930431198884506255553366938849840639946066210758597892143051437858974475096383524566964652225973154319993826706284334518748670586821552681720472663825010175911926720854059347234985013030398358839716021842743932290276394636497448783450964747849251944012114799787353941394314683410000595013389901233449481809220105559520573062349417275494343339045186405998108388112064697080413085457097153528222475088521191893902178472782683499544219840247367911501241359888604947119579264179539163453842716215029160708233014207134346850211904857186441220395899724263313190968045531991713501270342976054585252059323699943958067754285816444753781222030362125817669519965903938947257361003070841839629934023353743558498473849138729089986314340640489538008339966361641987470181779025569481770626624327972093843350522966457364982108043485401055401105009446727703040753796487344274838676362953082137555368398077890063717771608295389423096270151213271341656536935757169049205266102351897845755019580387523591187574860966124485806781511961863129978945539901813706251062884844176544016937941553989643656807723986961570274003438332626963323672421444080091598664271230080593075932512915979806116531929687076064779331102481883267933672449996507358209811641140007604641871433370778418269897958058651250995795730237740984283495003750308513790616748133736438004096011102451048755733149265108386685324894305547347861317505056172577360916412688828240751458389749696682762714575893887975542569725718118736993395767120849148867493947560428577698699559225282935158803454362371718487904262102645057770431246732127281484539665970307461098541724079216810262580025824754701500128192301477502861475445716984983992773047962035672346494904047763768934379020317072091216841574776230274045055531015615528023351974912730356693547474806396519493793525495784029612066583280301740142704730898770202396444898631369523949460906362530855361434110229174204476503527451051679767449035383890788097804771078777035449731183011925888263896219180143571878872683249172024226383901079396386654916939955891445056404799864105867819007323369201001190965562123851507823070825318788202923932503468666517523622088652387652927709598111821682272953680756054436203662724630865905103229002283512543575170439634991375601880215069641689755503495867755995825368832840167013985634142467405098227798732770182279842842049054325381987404686833322974290017460003386432564764196311774219976494521857783885677031228844888296388065473168158259181618472280649382079844178856485510928422234312152652806501171796604574546280119370500382795206711859815407690428579500834582975390457693257522398897851407134168168782773783663944789694223878780084480571552593657183239777579051910913580748959569727003830701666658994893713931855587001205927913961168659576637990160991324738169647557576511337150444401295886903823765708718239990339163263011069818739352507225467329703292094706879281576196174269378325642475735120182149839446475238983217823830528126054004654285161673902735218981890522889255131620594175800024690936363377245354294483592627891994609914721507735659338723769155524031306000924490987585881083339948975032287519549047025998795830605306918820502523816363030124927902480886993880177271895312191908714816711480014157866934004292637609869503638747465740738607437908192271738945642355040302989890310169906151170006938451696178989845027266880867425992890029506952812221813589920586161948128351763924312417350751153505795479709537869033904423432760999023476671984590738044665890503389651376480424742695983396996321151184566027638604626632956856042798393759484431994458493954459557424541279650774566660314778676933110714171180562033626960464457009705171762587333777734111053487996746488149446948164079336933829697125129775067542136707879498643380322603663229618357222546592485589355894238119502551970005807681277599130103225702977756251420234067814291088928670569909438955367664316266469797816940633589950930606992105520845931920698621709903159032547021851648956491540712217053478252606644769829981844248732113832973923709317038047912003711328938468284678443257992574358519889755642042950777185189482025943998693732873104917921952586975333813984847092866640793563423075946363611042731338885329277573230295695488252542123578400942528516451266669131123002033101108806358430920944389975392822481769812130736938553358828865445109018609108245603301192766885474305001199359283390982144450715158824034947179236878725530104890222241479217200722336678493075490178514645936401264108313490874369500495979992363703430965529945056198449471946333567378631978888187414402268296360759483595110246501836714446996213488856375186587603006716747249155075421046873345581180537806351676281794758276873650266550928529636775898941223740056815391825721789800665322635797846572789062764416767885597893488806562070709546076985291409934432552439721337220491157382237958896689047546547437694365252955457798053910417835193114144913222519320910723207344506443441491640220995011990520501098197899744737769340381335926660728692630632205292462034958223404672247072039314880052592195702062281666036699121378359480316241280511238377155160777774384732616413957592140687396073777863515445720523884369015721156124221500412104555186686782678923980212097118292470148148792702157691159214728646805787750157265117774139295295518258880091822452730918618618484341232598917324326583008222559719826666732935065762026779049411019825774328875008752568016581271511239424341394418299695367802399777649005415244392422983763071500760724606493723061715412237189260492390106885152754902378867601911729657349713305634734234013678082069027103899661018348239109021411571318596572060445785148281804456167726107990588286668758998542603160026434496317626566742138963194140547954606180213054543650717502785968445586704760033352952869462056759173987862947193124190085230945286238711318053642729325650485257821810640710255649188954142096770387293425982798487373195731472067595923261584732796194320732523596660538903812691760939772132068182503603650520347949069755210689424216605332383117250319837968606734430361543586668291293860709257031812351205069577627737216081178481428920694243952146341884945207415119710216202920656856010787435677984464935943346668258913974237284822805970929475920589364697224155167235457435064884433858664728174847314275304636026806832062634367829233908046083171251755670870797803502342531323219966884537465772488481727203458987395648275526406840441083747925965358266591544556990085645830452158113421578753960821169527323830911622044764828495052849887258859463143060493800314501377872130004815505254890479825933334774488178848771987135567764993182760537189546347974499927139469258752678657201627636783150836984276073079523795655824151774355072498913520066624297723044351710206883217058372917454539960335692540342345830317583770630359707254398881076065337007277880017261207213471390080005462475458941158953092929457358878787747232521291272777072390039900564744583505979776698181342258416118655567077991839943780247517790042393519423317561838267122023080665167691902159415624329090630458986883947246608249256369961171428326559886745414386333272138828689005630516843200074367738764394366135751060453288394654679625204664147406457699378681533372733638240045747880040428434586463569200800196967880356194387456322378282003873884409580634647731703621802939277381953031897085823691719811244772290402350307200363101427374555050027063025834657990524531591853313411410319352883169740674379644391372732125178876082738691777191564132629426803558980552017631159302195256343802234964926433833052464916651929690389827585105852558174605792867991923408202409943043376160117355888920520658153425103915619387015132644316989569569596164862211554006388645570085482938605775885037898392216778485957846678803163469779657317200702204670851089654416251139568302786219385575255504671174548853409444128056866413012219282595390955999043889650630400202687503751582683406709544084774797418053101643271702836279160710133293914488357903624681459638036321007426575009593660047325573523990090959360542148696059056589245566951932621889404103133322357667652477602821476691072940932189854482087864758733868136254652500277155103766653904990368682064126502330874598126789231351910997530335153889445812470439071568319603583756520226822512282692625517644136091315829270424912782831716831862608755280247258090339923780922777437712608579928506047732283690595932660787950617406930540383625746533669716865444248472881411359233751544261146461241968948915095893323778612706044371743122228177771353299584560926837443854100271834501430908836161427436610340901338246373914806224718769677062079617551863690910059745301862006918916986301468666895844146130805596557236251872688598279941312509726858634406761622900418556684438521438448074840256353805118782796693128063528988818588431565801538044856932504294132704657937081381352028630252349144279828469017535584857819017842915134912211924247593683854369690100646014258658516741013824963154135983058767199796928737010403901251289251601804502251410613420543623756308400555629131907836300321856163389424756163098196887606323023503275279360551933566823215797892885337437421076093940520991725602362660278404707993700836172757914445403083497181190073014443878640224611021981358938607087893455102925703584313784251224764157801339283997734954676516789537090027058396051924422717852817325146017699142081004150337584532390282250568510222118279601400437661601344963769797731694821529733378853263827610478346256114252366379410806887073692482642870204095901245106834047084294426599387262124061804428226549858165201981576942271914716189991910911866870581414040979028662825268291458076615041291680403468432739408423081480366217498550639139806721996535885803191621404354474693421137876892003875060807573520112929010549695020296727928894526113587621643338007905205054584429034462494022718160659513111122795560475485294862227425805036688569868931678734600260827662066953407252668264704164071704686976162799920793367450490213781843700894933505154381911336007893438024311926804651736392070063513358767176426965272295125268476642529812548870766346165181775775359520233213874714282683346331594121748861925682308957036057682587209913750284922793727225615230147228529658919115933695692723556972652261098773761452975373073728369023384307828775829424452944813132628871748465591764849505326585797554672005488556717386327295192947793501282765446204319895819372579109376445798582776249950046863147468194815653481443620401532325981543473861540449715176180252947261963717361539895441867482645090254610874093427612117497120036131386029908744313548070459264017763183160208720014938136981103152112782001966719587400347852845767859222747482078298418156172721782588658783697526629414914848231494269353750145020581272669355713684041491096879952059138708601642953341674292566708033487203594165612426893679731275100353165824527590032233955883466146812513538512065662615857302788595196046487809505837800304758325252661179165852302335632839517147295325290823289263156548385499587660226246923670690822900707279380555239962911454661615933424840655207194300354636744613829785514163046525463625140113484313850298151875433599287573871715286823530005593239544199092204918959171610597199730877825963574135340702771076962422047417841802842198960088283275682113020626056830304152371764019298334776692950108041904975445758075027685859555152061313153683044957705371940483488743038684294599221536955022060954553009652631987699770178414634584206827886004424186946471519039377811168011541463514788256001960645741215905862500227476205208621165819973532034830211443107887981170930103441430371855860194655751999513329558688846629888326654502277929556224653950135947388460745252192828258749155461014483596037331903810770418368347703602755871593062244193795536257426401355303186883798252175611430175256679688593600001148461789872065521312481891369745183187218896039620577712606099243985778822611147903020203373712327375452827355212929685375036908643611894628886389138708520209317877391949245585693831076916820565319355182740539743498365037101707989447098922808445473071213093613896189499626621957928984236884535738373279266525191525568270974485698474009182785781670151988894286333120873827706956903760927510347092371573827170168298651006487808951788826888634250676236147305212019453457979439012777070155323875349301914110678102142664859119769048123951564863312347603955980452857916115058826622302833392144242483376644226628355272916970443271458364402880869413942399063407743925530381544429817728138749509971832134394428634809383751357212475587582647496394472316756939229366271917533676178074173833774409800778123174144025402114687464651054210925061663211425402245567995193425033967149785938025878851939918071131849974250154156183186734277521197946481811287473717201934034993029467542890557483830755877497943544765551087589046216840576773399043118708865930295876203806973520910811112305479032678542612174125962688799693405784401643478290146524413112201479358267900251004737181833182692433775191262730240347042113735534265073803386800201090163097935076846670618566536346586729188621680374065365364609700960026036500347659577384302576552142715083823441361659769603489424260993162890845562232721182460021104152050863612898117176286189115701355589491224035038960645362341082037379959367990356880591152035991797927906898272182840314554182804962731705883788075321871160810666359947793964554602862525154186632175944697873862241273518400408903269766172768070231030506110223488149463805658599364919285735985870131381791496632177451381640627669006537477237515778323870201492924939892064897192073997015875524621097501921899222354093275033675430164924495759679504261078654824480076625569666247882964883490848358664162662777064057169639822059666960735175848976432836698986946970878881227765652159943829637684982678432074154650751156664176056522799387735178539117657847405109388958569395329317222478066719791497969276702561557433031107910861354263715522044549613803182132423156502067231731001257223736942381448649235433819858951180272676788899422497279005638083248532924930435944352405666244656224945896882036911518125711128816937751775199565994330879107764458972610412716633615145585686308081570448778116491178046229710552174899165265028730505860791730995554570087498002041888802291853294540517639106684320073587127197508338527275367003759587883001759633152726866771097974061739064023885410535553124224698833532036521615364058415886352696797292104281418055878428417501184290958943643246149123170706156954648246389688029927254810927476411571972650661934380721170224103268430052160615543636275776649230453507544270623567601542841465548941942277849185602683015234450483226967405740757521206465074071947515311047229379111245902778230526153884976359834027453711772693176923130734688118883350564148169151753694020328318789478657543485708098167274601165379757523485480961361471045030850544952164229572375814914378224970141129979682016272737075637380747050017525718778371028940472665296759730187376640562239565815768811531078165090600645024477986400981022232855066796911412589187533022558942019776438146357381259645998412647610053833689722781401393827328764871544907521079709532802098646833590818155589150126960212461447714298239171044101399660949557424692053796239631472888906723081664815656113259389754353990946082206664476926798127828575315577503836246475810590474535965420216872826990412045162275070673642832656208705109155795670258027639812799216499179003708311680420463846970635144799541264283376165110938207087458844375443802265416534035765926448769009151375663778299864052622438422468520800602343729306465083840762976806909841606715443519120647523235007457604897913360040970388303440352672415645986417834475587399548330941408758458939870541766492148201853162369235863633373678163494045887801673065940477968907724522527668083200886633820525243899031770382867414685996392785026474382664955249722085617422040136054956841831051142107669198130698574095941980599585894206208572360573260746318181243776185482087086505125603606818572379517047563504256592675054495676240696191932998133907706577276836388155120790367965338778887908689673362664751411623244508496516988861660226130258895296943641537785407220192199799830128986627976461697405093820125319007686241557238127818989368534808810633192592164792641834924682540664649814863137490120970123914769581537403812340340829104794990995646803370718771236858859576840636157612144266821193077320288436152580723427906817624830146116951770554772104408793680006516002078992533950752028567005562014987716955542144519665672229882873161545464878611730429040172171675099569911148518397506224914548287749745653610130091674175950089285772372758897114587970969954980126928194173674757570835358537365842325249665211552130161581632561787322146440190520597980193590842134991508819610277644615487465549511010074247194193276070121918910785305927291739505149442164751830623755956223900369532482238755367283823177618977115122454833675980855237598823266417455406736370665777372564798091810854353205917313236076217222904297597886848062442016422398218668102457269270117254098503143197965953004532727704111676854236665535432917597700444519890206335467718429138480650590820014605407287785676779158027446505279806137823366875737203055178451479586695873270606685969751878168891433067827344679373217711475879045095002054723493964978093757785930792103757392946980488017636674915804326966514095934011227956872724655036059310683298714120334862672762006217371033547922174201252355395814586227094381174719048473196322486440654832639481307265411937319160066268011250610533980058312764602834922408397287449831979308112710507798714063099450059852085534504989309596633024271893739488255507788261624782561329299462302385193559769245122285629723933517487667929373171874735834595999214166545618102186722858487949688033128569197577817450109175180708431975010225200660652638958212573889728399379732021926213869783027367446666079741023712061259604320729423875905831974478501354825687289741716219129637315613746738532749119774384063584842430141877590781015991737355033816282725216435610024447172004912492640212932781246295966346170476643049274661541799350066984184192668469116927379314598256934354906829035918371386011008885528676980105467746819931992224685684448853080526991863689582471509947189250218493596402603681141507497757138284527617204254977800184340097505639698736546447664721631754313555035634219604571041254291527466240724795396677995539650678871822561038935375750039972425879118483307770697252274542238043336029321019727789529391035513033958432729317657288430132859103679267422576235999621449904555342729595742412524903885368222104515415835562916560327653388412188045914938101295073610335483236738486003164120974458154155658863823566008082964020078559160051062460096948070822860190310457315602181538699216868568279556921495606077271973212122254247651591514697755314934062635284224796623162239104618243548638359163108485312734897881753805150804018997425855763658381245541974650616273430448803819977207572308911842955498355541004549551605381132903344697484828377560746167535955123379085744299426045752151819297950008091291232591550403672602413572741237304856094022249247406051320887502765990920648331102434643487932040152298006868651266375257102968913235980973958458652077588094734221434913099462211320233588948600376287843542512905674778109589795871034263514854735300446910441288642996440112821399490787911940827626981091782103314312363796081316411307552537660655780941429917635134716439764311999531614290488263562363490300734998779407321221910405869700512299477192821304641499185027723359848357424864027421660429957650295169112541336590465074814863176818624912039839654766644712357710724215096299244825417734898869418583824270538688956793917303853903289024584472343246780722278846147639029439288437711526460366332129253158821977450047201606863524388464125019941663430837773228882835439705497386893879389810184149905358232535259724947506092951900867892377913027118181052352955665298361826872821512201115510797653966745411506504413478844242590056704987006543381541790278722581427250740777583524734320987143903718340857617178011609498155855498734551767075113141410787341492357952282856437908294463048300878879941343607291278616448601246764912205498822369276810258383511473071262128398758750474571959536438700046348417601434817264444515048518200421593067331871186374497726016154445436610343745139279346588109790079880537718806829558087329379376929510471837614747089014816703442830209171132389772988274848020592591054346374751300346239284994199306352572527238418235886513716657980727617020142368179053882242117220551637300467142366951532247718143262827680547812813598008552948668398340907002742468472116887944975299603774051638550715599614815252095314733707558702545429067175144723516858831721860320836572852590900738676309380834013060476537860426391378384843568517928294369184276306716455477816574122647902271580144385824547474835230562745632302748131896370805285110998852000539525286179501160155291724742737585725176541953653963254493853013239416705960951506795636949596474107007552448384874833961187909684908024891704453147309764914899999647375970550274643392795809437073038435932081759250404071584055056061860770148867996565006074430834193099011652505244149630849200455034342014737370224885760791140134414658198791780928350501374937271427607664042564025381509863632061152707523896452838082257405525876881309934008406113437169816580393557405239706362035991849546323689755080736363213320301739301704035483483051390754441297265810569189390270620578616087536790443691991088945232251553821095197722509106129677281753815934342734241422994998132340341915520028825033242001305962724235804124740956535385833054950874165473624441171086823171874081536675473783903430270025085229291482547865993766876668899027805543333175654050717496776967850860419287714854772842891859120647896157896754825719866436728884807836283583388901885827347512856350627662564339476556014904271381020610373866852571069800218656636588537056062642337540188736680743867439779314034907788979701902962694830763254890870620946126169738035860125178831984047161083468352196734142439951718214801932645758312491876270996541221323680289197701947744837551476879959896372403823984562780282266631833652410746817023467676757627955871015288794329196305114267172064848321744822169962846629557893163545621752810201546596487698372395313121130870663164672801551191573336767680853405744699903417174508607677852073203209178898469103819097026421814558389700526184639224714077091760603877389455810216990103195794003493778531664700705700607886630508609822699473852313537601605825105959919847141527839292967762431644233836285603876669946675279115028078498219499096258744050888699433069114500441272335478076362831618507115675911936617628037789222273757149928726583526184714672676484263014072990620817686013443242667706383408508033883459249889076926896682691412058684882154212902629203052763495860307606086829796116525692156891946211500886857714270485118085401632253184004015760898866897318248230712783178396468747288021032847207160784849871585586379202545167065268222395304978772805125410213509162462051434645533023348472005750234598139781058409660595342897360134246823266515894714685321654122642840667495466407238633018939120925479387327895590853806378585501055124086700867718217142268454804701968179440211739745988961484721355741395244961271833069786236556824819437327761545734959574593332739755382046417475047547143721143938373642577982412730079156237956907523097971877266274385384133331875686814404423552660126067547417182174969930752955894438950588915053710136123519058148492493024956886735483401634673949707431075582829752160763923283086615010222709969874705399735360930111391332819512800448078633237838383855252914642405055648046742251286043230172499048716044501304721777488356421547357304416820018079815020983743056538397485042749948849686900899907468554815986095274357802168335371537883556393963472379959320485036146075105349804896162485952375646682160687068599559823727451178610643000851008786608226774437031170150174580281373022652373855618137179944174294220621583743360320142546203524200653270102219209633184695282359811532989053589397402409274441081397390453633857866036501273384873469396647446107923607711526863977864489149079630254697837376265422505681822646534363024476349242934852236276988223243287590820309925090002044207044894267923544492152375612976837977442855560606593429227913559499252630783810757756075238278163049258378576366973913693351539797905607259724167924279120397356915968249756001890150106806762005544559714570199478818854810935480561196801268240000887877161308762365422490791183769860954553117366113449304843176662860319563719201036103165810287880109686489293699922806257758966657859860379462132773923659634332713125535689490075031143142205107050750237002301040690305704311551036580411597620936482314994307392253459051497139950769249532720169212650784821906099795373847612290278045551384101151978697121772210936817708854411528129525998372531573483744232347760816671652300713996705292837341575053226780907668515444600808495625506203363192764429932713293936018012887647673789747919480871712553940227865109685511292177827691611715097801364164530088469758730339622123882014897270416278939069970113338989541045314005232173738103606244778135146736815404447244391901375146893976663322736160565754852631467477371670341861118708341036747255568000031336202927957853268860704053151759887617746528357884955431889557445185617469773971301580227641878029722384334569894805882357486663654350124236831709694231136923807420847549583309895189370500974047064010500968535068924018821668212772783264122343702847469905012646129868802298131431851332627649111953318035780855630530881996246751784780227412749637492340452039901519429808991714410102496144195438044052334043190474419626914911365481088397753825704038101587566968010729986783043232045261071679076534152634586998399725160637987104507625731955479749739592470084502481821166521941530248554649835038369813730773156180310684560735112737016051290685150170239264417518624913975483291700950670771948422769498308977069900962900921447738587118088427649023580621021685481499439454323316398420622437596016246739972283371585894355482813362580797552096434400360848133993874955781474223352694792607118585969366056382320267625111522998470013066108489535885218917385398761659054399167854902637508038681233146165556840767122490724989115300381064852879794055522727859034850532182006704750695925515022454186187259292732139118361117969657626263587331470277121164594891124758758604653526152829870147649293702822130053012251207221589988586142943978914097941086144045315494448196569971258678730818317212189549492790301357507534801627023290117363464663559229592061406697263721237025190853409101407214841337712518296225468655102621369981837228671774079181104014398378361286113686502117160281591300356718833792188236882554522186691422839225234086929504769567124314090218519248598923543360300976011953517534110281588720661228875604271496543949279701567783503734707893426560529864015956447558531045665903706031263109573011763057723923931765239036798429765753070834295754824872352206171984541253346508846790803237690982520163236616389693069021794007288997524901462071303218066759353549357293261444188829407171109431030498742550644528980548674702316993926349761649333133110344360810679002193489903104117315472529638375794318095578722691543201928782105377035418758956626069663645127710043563800469572807764742916281281216311608216956713618454538623021440254340498567360681688826193594551612056635201864584750131671447011566532899120581819399124176942201020382565347759772520278653225365025834118589320037321281273906287988526427113295722447519633571835445270814881861583151077379461817726704236021310738042306396551154347305889744167202610220901060493274865576277550342123251904930477576301100340379448366857992711328132520101861230411511916116677156222706341788089541746512600822859925745170263410827254272505963728305294702243930874590972232680389025444790447993835149912001539691866700809665486112413335390320901528234190026894362820297604962282247631054476322364981322507733293510922744527911537574138533070910169204588350332686437090202968363787600777365953450525393743253661201609510251840765803963851221650649918780063721895320234776015388513136631255895120041393587661618595181497583857221207059038355274916964905147867455253505000634314148301366741386446040555013954574528218428794863814245162534826542260026793277248970145370263383436357005502026902614323729152209320794360859541482478311626752334406309644086251423317186583101488751157888383501553203310136614596270094595714010509717402332335138209691932799028157200540602728000966684832030622297073948434260612590510889742588661990248320424639061518768210312036662877796922701655997150602031308670349426553086237842573901381826134557433711734011783238364911043912062881700266247030959968579274011217933957522733635299765621076677365718677593883842039118086557682058117543712978798145902366786986775448131891352789420437634921159462579704758376652920761355259091916395061788821278657412437229792971606260131737287039790234331450807255677232278782943092907044518626741417011046301489810339450439864802687636583046053271853733839956906250219965407109049776837933572544947968243328486971040405845774892910492768070515581575880692750205567590217027765488506336150793451182704795194127371634304674837016909479866571779800886071420149954784426066506197113145921102592999676662019872848688788986498329155872975908699487255089307223317688432599978641963388194831140093978480816795964940331258555822302973601288921007418573202129757024606274588751422910138441505372815988485634475462430079718696260527516180398826450377477086504782533631454691788424103096427841802229757550558191414405353820759224987236119461547138203937083115308465823680354374599303432674894456012127286110373649791205659381860417934883439284358879874455645150383369161578435222342773184147949435569353542111376374009815694480471663835450296344091724508061731134917516262577457890091470327169227592720147718348090094969380472989358910032143373443647178564112918210435258382353441220935908103761950406078491954574163214722430188729147010765181666564951860438755440694461970509431784609214350252238612196865921704144864544347498628821444303191959042140133005324001772203015855811556037032017137438830505710408507145041435696474748960588347484379646073406354451303317786926541625219748938440734276687059134279572193171284066959262844248681959513275371511298321702211328888742162043630992801421256903062593922193807221272632637705539069997267575299724347112846203640965284498541392629729184288259004249705090842527388135545347832724455385308603407031696264279411728132004737382628504077691177986053346094742006023820847388218415041961122170108905853458641907174424301267858364686893169977666826765402083907633741416762789575956143000748113147190181233599347772231564319746425642382016123850579302349387842290390969777471100022758298862687447636269461285579754937018609348463125077635666768981368807117350748387149940573111283782804215164937877071125357039579582537131776037458770159288007649080287026430864844450021266144444931054274776541530618367778225227426474241662658299847249249693630954739756479560559734262143971558918139773550395243622784058397091610165248704010652048679999801057015478137125740712678675257638544315646363708306675012703505003318689324444659998097492163501844928097609627143465544377592095353106558413912752791960685894126372294820344004563990966759195523586359988161762265184582579989813652373963849678561337377453372545892166744384994811883862910587369306508625009133964349590699319935640757792522824193829621434290670702436435589272443037370620079548472931304367503439018052231561394027772407411696471578777432909878206937495619692118894064871974673075145475304759733324402994456527478924564891024382280864517355063719014059790569216246918222355939680065286956751814954013616340780214370450895992435884986483312124050246445750689176289644616401872435137844965879176660635496175201299783541578096095073222370843218912204865777069958407530585629895251830820139391945339070758131855688030775338925326096716103901573383533747853346739214804242074423258121762453453210786824123908087883667300206951349973229031083793479086208569220779112966904675584070483742721629795543468382470350032281485414923055587651823359224948318528754927647764878825529120741553668137256055647399690972856818204196370392054605313999580778883854010943467654680132607361036483323089110141268966169862652313252333635287523115140165400974811201000280224597848450924385659103421007398533573479941593038264853099350435913285689477767948226190394230992843619310917514537840917326212276055615217790285391836837287918964177693851919590182125182680417402137496123313458147292746794379416519568936872663310539963432359959187595574141569267283657918330128287335432768120637921971534541529879017286591372191541661345901925560594161859995691757254373916430428428470384398542128403117509833267311061159064286871361829751766732056137203291230509487506421637936584533351069683355571391668886361084391684581628499709110970446471018339996452539658869967862512234678491561466698967712096698683607072104549827056873400524688899217436604749742151331232923211964127532364452589462033276903605125462808078014081776578152769840692939809198665639736396407352711446888074535874239131661986732884990350044999776662943240811220150458082332906902957966481281627965888387233982235349530614605738832706492232571856961772303128824721144362146288873203544686278620626730656573756184782933507751073906759589155064986256820210514745758898290060881828951101973507835382587268310349222000238365130017511347045182817144374834510087912514852755883789228838628913368802370619699559692297482178365352783442510505730125904836398155812206137889117168783037155305107459165013059844884152874366493881042930332855647714602305425612232986681435375060478657077987234850647001125926094912766017051337668683258995436911452112579039592017654453452596708735538897412152705560604060533744933634940013936227372199736171811735396162813930049773972307020606805583562043247210093973269251415002628994940060133985047477855778030700878382790869246304574912900760453440731146400153326060175829735492046848286798184454877259250249351603007667765159842016188107956954855531918431999845822288497194650828871322719014177476530198174359085107505954344756394983547549785342149764080546535299018104049360394428924711489465627070170679182775971871335706204234352378283008826044058082669049860414049047940569912803398828770649605530258044567865257646743658166203277554623951706450290485371366022122291623688962129375778637773048164484956833994442462151532410315575483708310152462579330511896651897363203199693616476904765776851128082428438970142016417112495451541977197222188920634288402453678081682568475894552211717067195842564060071736899908714796687761121258290764528755753914527378839022611904354090006670573554131626787336509658041287072947535856796803016754427074437294274850380381709618871120844257723306295486957278490139443530111609808518722823921862532742447895443858746871836057742178440127159232510555976792754978607875543331714359542570347523319160114042048680065492699480998341565871006839412158576741204411846953093227785093177242651052910187169475075902587256458972635218840299091638993268063099208573872697038013596052499205017400472656283966798343888270422324507833946387314744835362258919852350397682263067719266232433663702035312172396123458943794230411782381850332019303038027234263655382458111351190210844636181833086927959497729401962784874352053100878453351170671684770058927181749072970145078218468192673251593127537660105055626038501369279024047009664431327007264686219449494913500356021649950607700314046218803450426140299502328055223850683647381130222018566290954001231595593972396180254069308197236084442739276815210288695052535178153167880374583244502592947159375864380077428693010539321330163406114043004472750996081899615707210145676019348273688891090104028603964855439804278902094327331801993546930927173643116482306572015827333452047396588603455672371818320630935438438861915543949102199718714438640503782431751936414048718275721673618249592803803403580802185518230558086601994092208532398400070510146147845299359069408862616331740487303165577735912081024619905482755352982936030257022780343780512295826242880191644835333162793293020847001121637437672292849609451006603506075369114907653104075184264731365495230405942570881232222855342107845761987383420746468541811726331605596947847443906490850350202830725391763890531111518816758791529926296126154718198174550834484341991364022081047041459722930901194882288759133169086949252811525436939791968423596301771574002433467430470044129597188595998762210059434539675055165793910614985668127156499825851335430785439068769497403008922615249864265876758148672604339417148498257314981495599712379782826779922989613486413607331823984469367733596636354011124118041469272507217599234265795523032653089575287684725857308220928736157897637104674928576891610501848390106068180148229694617705975083444225134276324201291523039572623162780927216593880382360435411337711368050411148474465736318515808395257520997404949421481017079718375258745378818353240507829956076019929528678127834142999689103754530510301349806548091582041225136859490626286970085619893424585307311497433252021921272602986516184968194753975182650697923566922679930941665135364804624360914814898847937726029001491965926055183234527827172725429218862158363578091985551376000151595329661967041870608456278201844625273920038620190646872053100324734172675281762365339861783559039211699015015010927231065731688314611519822347804953195277839216815995653548487409862572988794600847812620341157250580424254531797251263082732163195748744533304710592626745155888203495949757240662558069319059149201842782323048501258359518940183593240608614555700317174028631528981340227323253494422706182159567955978755913090113881052913914325139873733218425022863240233586538071483238187516710753252774767375065808723279125120488319208152546607194673567712496108177480449620430582759499238542726868373046231017850213274886796584371979228991659687700342635916274244890095559767997940999731405770605061520555531960048720535521885918823816607784317876575969307476486614902362813401013495854382815961330495535464567077386827120761868559327983445498984552237110443214163897389907174609695664490965552610213636911122001424778232865030479313309750137214191708415269288620316369703243307063900925401966350844040684799347567306902164169792616591669175824245365104949657001064127872761399608637825558139418727116679254885610011362497155424068984685528209272753035176923423095698916028991304855225375472671683980079610716954872273006408168547509787896468205061576058153342512640575771335668512218663496085301721416069659220366493652901530406752892154288380555291512101323007543686932573706733844167621605811494610906118941571421232918773307625599227026549330307015506429904108729053995167181756196185178942207448176886103396518143300722425738378269960709277846235369768002699258412092483589846947715654433078489093059275437463476503896531029273368956971583120733327358566530257967565387106299668148279536623004434060424693881207009414364744895318700833294125535681205653314454486549068130833440403113221223946947152467703590108545485942070357485202588431872436180299147722648544234049373334401572864043420054703303754864748407438027396530041845511215586557951573242351762692444320772758094448425740729872086721138816322355635848604250914315761900736825579087103508791106396986745565997902766028765338684040766131151851848023083314778441024394063543267628434118823069080279429332148457503872677746924270905893782246235141703557074256196511927597538588860704674330760539904300479089553338738903987217048959096642513517617496899901779794615239968715720263867156429173989163121878769698240998766327575708452828529385899300236545244861049408017730754904079636068750677194545620288474829317094445115555919998583900799310655871170627261708117238182302690268867035422116675449175141034994939156249668137326579566063983653104731866389750944889290968777714305623802599194791190995749439734683496593914287522981552647529059036251105362402105963103275944131658797876755166202637932558052132453638586825563507567697386927036703967525170890028189112176474031665435689998495811232674632515387324164970814678316069665651289192632664365399177026888712151691962092136870437497451787067232186435073746462105161530348481882364987151495920179080306958475028515839813565797282632648869504490364550636160582130205001664939257953719126590032135809553671606247627997183754472350815562034937805022583515281274129141889886250168607345009639637363560334995360387974162888195418512238798905290515415098556361807611604821315017285964569242972250553051358141629984783301469927102090579716722649335144414198494011008120787544264523034106449157375500095885203156000855435365890327202242225685183892876589781970705084113866863358821809883849834851883173476209870337816252134122224338976262865295541631765649343701084523051478160125058810939145745356827372035285892268292411744819447184596148887882286525648314813537331207001855491587706499449845351815337439767714028616729409392583968116486607993371474403642541084339712506405146838263355593380468226610378312120814227332351588311749282083864676943899338154801214944304234154487991733242601482109778504404654601493625044884412817691488107550986250351120786507368622803844169244060817184300890016640562581232735389910765478832643580738281767193349538636498385752966644327386332709292128935420788920504919013473356694713957992638090348022293704493100198351608657400505586882668208070939431332105072096311588351082571183500137586906954927030658140849155361634836796695300410169576949583617035686157330402387473516938224114441076663632979121021071752009126747654777094487817002396425615763393613833775001787896858260962544437767983405537471256374438955529562279306742650006608532135507822942749635020855883509073689586144901302556983503661569698536343114910228631460269485614491309029988361672850341009377887022206065775632074859504449508007488179924415942812715761732770558641484400401684536077311947828981831185763491558342414485748609960650921528271140276006223457017453348444231505800652671549996144542834615069071796010031835008576995147991032979010372145415848057622671344269419537693257118179605550382290282688431619333650039880464577928334867837144076391072993930417372303368530918593162542715698290448588709871577333763073872312364034575855554355805942454089900379472725707138974172760539542701477688143637990848948399830513166020516041372482047583144311241293209453055419426968268417526721670017415632587812140175059261936952932330085151849154906171464751059463369868052114066906491669477259824625520012044961422307917583999036353101795288308280741221322738744120483449513633880405401271545773009889257609059873529245010192931052636141333473303215620112322187479514380734383255784973899812498923368359871090279509993510575109266811161774264868572236890773870377172078277157118092868785815557003873093386859315211143592143756641560603457744604005137396594738159478539050387236814259913040026353228414309020194406655065164900536430364229764800143013743630020516489305714450729758725239875477752986997490531085497148674683579063900524242738094656861686094368732217054942077511689619517005037811503485999429021008304359161396994903080446161167790736366057804514562714249996219095528189571527850529274653471114477048860365603721077221101062094033246532142658881767528502740965833018572060870497210944451954477597698043734493471364196567646554354349905895607216067044179714594419573413993136400962996679968198569986829120164445815559142015025116409244619917172015409274797294704282415498918354506968578750122794225085957229207628684002782073851236349265304469821448340493225457227390284098528621322582589845327090460572825602332312363973883664765457427613883402712611823154864906286504513536667402694768726796771858995703628084750960485026023667182587617287425781827187766274702215948058335511238230308284201511182867020989343006805881789775697904333455388570905742683572940694340898445301025760374554433735736470835249293151329237140355462441154819405229114551007456497105092471329600863914967396689964561519261090593403319590018028704039008611838108600026265076199878468378476829860670834943539820834461663746914553767581601124968082898655050654793145324336516786494409367641752458568604808082668940649638314675277455471717800253390694842853678793884412966360999864573452012329031373331349077677447656251709358962706505656446424963118769521457219676353377546941511579958428574821442174140893374264159296374569503284606819890215173465682032592405271467038982401357930836852909975614296428310814973755844453279552948732614902697236998124840348332686571236456650100623783808737568234868688539444370744143225967973717552321300768455196349631338248946160385746116226262365004790890051288490481248629393837798498670242497333442364097007292443269354570690145120268141639158922723767065848205604307005143583504738916803118677281288521261842609825257295461941242430491652318782627717894469140071687323560069342708474930466601690746734307236345688903968015726471470876998405425049930140796977323040223289218257909220794725563949528317976999202050023788447822234963853531808653225881393441268309062081911409401530346864157371481798006106343723682809589818068276844606027005025975781894292452236126463877741849301900247437993779586216524737372356086830663348592413390287434658330886691990771105946495236138682581518235712158032757648817242993196663882547043551377919984814750625022275754088920407441561053877367500146737502579308053358754446065293226729187167591086597393284030418687560459868513451004805866037955143562750742353832281895960828675176267611102937357480318165310601670396127146079062453453315555676693005673476271388626822167767006058863559703100722831042438804447874276060409001599333969176530315330596532068472567497571925031649235726140759524940640781461190113641513152676457977711463438776478502719387994220494964583636124932040557566454234376572835483708784446571470509717951580091250442940580248272460279636344704686832462271180364170459961083089787041395486714997425023174483957820034003083525589202522852128455592383663051663950086532765048915014722205024527872179133732699544574233933212576115709941187418433030568208559320751571706375709600231414014921703960390561044139447901502556403107540915061922478469917831512492927715835498014520844825329904766566967025829039194892009089302310986957435449628764972541216588859090502004266163997595516285868350913727875875459356045083095729450135448254753827827075695458254660039353913194598361469327617475437318158301255723856697969901305089509808108244476037770643627853095109522245869211868874603597207569963399155401504278775736402636762306772922847489956103420608991795742814325319221218615701915258748663592938461032528855922620235508612960508714011035687280274407136942836626400069979510162927111209371383128006940803128422141437805068803318986958222218498001977707814508222687605934796290286455178457642638657667370423120368518001558257291600644261690241088272301225823059467306723177932952771586069691546127277736680475216042593612055841893104529574045934437747176076208930527855134444638603662097702415533006271103004599348594201646160394633226705809592132594020307279056727794302164686175380384395780589815634244099789613343922850121007947227610070749292254357663949165308228251141876773073257910478727796564347304652492177483640995115080920144742173762045141950193574397563970781476060572610979284526336010064569202268573222836695686901863099219841941945419815068761339782565515427931813738150485371460700608655861255588041280160042514059366577951681063428624138340527691450931054038909389565980690032011043333519469238840293551872752630941050016957861959554084196144287658951606481556625757887028165681494377041283726533634441316558555338230641173884304246206701638509642211070395108011630699059593464203269184590654314407389964949777864497653304964492530011513223283242953674908568222288746297330931881441518879743591348263787656388720679444045779661229714989639935673721959962276739854336025518785044404738608678041392603063105451875917435978406183790970879022207675655594559508989565900473535151826731437206695621514314550101023909176879843446320743234701118675384442702195647527649430701216742325590611571506005797074607665026341139613559014879654219206328796719212717986969629285743881067864781940199586763212721464216502699120736468882135864517896475222338872558216058678816276083571929805791153383761210728847663024656871135459847868953220897676155408548686289864618089676463430662299134348318347818057499676539204334296849984323308575053691334507500275032713113048814549791027235601932339303161585148526162253685199791584360875412410541892800206955369316407922010342733113176959944180900292241081145495575385227294226577637483585974058168827525140931016466935594330548758390591785682104263335850406955480155246039592196876612846716957481841594972876991561514980953542193394588507555667349926583710573742167783180547194478475708958313932985607009325663130514811931931878583669820727658609512493464655816192938264508927486704159257493659805655781113682072171710439970677464285490521789741672215262387510156887042058895661463098492710426228235253164413152974961318132738524745202258072848774838676939402787639024050489731769767141987039720937158439168475536601936698703077586390836693218114913878865147827399985290579644975802710052767505634952236485899706124663866225589251845911633206637836757738267641100654083409144096491068368670835652946355724022701823877236660135671169353392182159577681192934416020625610229146062375359519275067157456133598162156721438987755754055725910858077857124317598588245184485563201310597367571360174308064162659738991998382762821110061445460607998817115741884529706523348118315708226929730435525857615696114054659907427701087724533540961863806407342977209250742662372250187147810343161782637876763867728827756462638958018877728230032425229069181069008113600254546933637364323932418779052000154652445052677412384787828812165511960531267181605299465598239771245901482177786201166244293651553778752313692919057977880682504736128847362417705847946703963256579370205384855985694212285385043305335415476248545038233967877725785632275293966587823787117497743497365305098998181243779076284523546865798926699444412771377321903700442157333461180151485061764970257896769190912967396177904442849515776960873276623200494361248909194173581266221965690290196114413967962312091328136902089366113998077234964348117531760476299056444137945015405805034053270429094843990908204284267461303345599390155857671004491627394295847600369072626843256333020553736699559686459865530127811513416611362398182680246956855270380115024747937297410485074495266524291941444178017824742447585349576758052036671111944138180674962795555083425744917954598238920756613994253469952789652074113623524071777279994301258481246825254825068109726122245736199638455148658349578832242400805455942522619753783566122357982562394957864751382605492297647776505138917510869208125242378176006428328378454935370930741003299185942604799141143506870200429592141954822681038599449829953542517904972231982699197672886838943199929382154371931357521353373159101595835782546612223093706336013042262663762265706677007968702725351872537659385349060345178909449429539665932001802022099192136094788009072901587314665672220036074391471846769349193377460999021699698107734272144496873581316043849719613583431980610923883764091955034017813008858801918436034113302588845473357506669130047010833085163733966338884165431786354825054072345679969682747142766038929522005835403278323956116270466058270962234742114642145449217939551097545564415285801301383137284675923213523577854708173771381658516511433376902913957595424550071585711990486621514161476135676140425437569509078882774704628270515564234505550917005569496354640668816122753141596173169668330038981931865568283101943548574578516218603451871916474617077759329258172126051586100788891030558590465940227146795212889136029409652499664998400271809995969283348244556347629025723367611737204335255164036745428020444714513494931150776095587160043015654906710967158217118989212735102888806588803990027947213386291331529677864676545163786603143352853364578585316572623797568071330253056260770324054387395938740012505536847129167547329620461815248253176216488340749716768101476822546190357806923272746264212882112603395493720520153118385832685437323928176465454784446961760994529697489982968378145347014842713417865441262778821836187376225132690518419523767223512185167010218645771475400330801639671953636836796197163062627345116179315660227177056881543207173937415654409985867268962411783825503195481321424096553861405303113021752950478462622306127186272072464753854261438905543505685120801604081457088959349766298795368035132709066488077075461200414922709876393133855135023821851889072632862768044040527102173999750068188029256276150405132298517015967091150234175425840209664790185129768947825624444409749672699994148716602331049516738840082581050738621772722572154561622332926622423165843191100655872747381461156263395651961835338830946044343193835179829484554450589619443285957705472907944180213153245613863756816288139081146225079828436985030935298172793188944092897189686457554937787152035371367267159811306308901243372289269708228179256684590187946452183243427299864601216670650617074836984624539596685091423849122604602625195547069420121591438365371464089752509359439774425261371283462049890934026824472272512740846813370572852966006309136340789411794600944893643318315703078110806538790164622025077452280451078079732115811543890009445522739497336457500510205854616357927974293072245922186597383322445850422721379893907771148047785281332140703104486269020881184539721989349018091182118007295158697627846681005712884992986681569077822228172709232456420949079221792175832017790410641931763383159627656383111548332425085821177331045207562164852634243417114271792332759797006033092159877269858946331864124864046650760121158291653447045777386859418128722047127653789852045144572893250953204482331975963072239813783977105896968300771789497546437402215949046320526187883433220172180113340479482837949055374487646139818639550104417377418515383693149171456421318451937862048787239361698699141087262424440165698906024421877652270858467852918672441059898797883572872013646998463608075883215904350644923755705702825428689904437767021368031436920382889879695798499098787151744241785415576166663254095165852974636018519354517127378025216349766670032128137523673793480358228847241623594741345068977500124806589343017213789589420405039049291657279134103231156784226293562063778150041077805292581539171567159180313149405524131652690297808379728427395456410257337194634859322549227180678202982399431744045761911621389506919173865918020663943737354926789246645844021909055283692249452622434666426339551229913774064485966289418290947364407431175128814991611325005216468610104719738446830335837657724574453475074395345307954468243912904202625157924317525754093893680943865365614671023101636935603090559886509538143988885786850395475320738794885489810646571622926579373716817465672649911311349826085084811231312370082540983308774581767866182629308066271595012503891771489612724835178375686727277399588066259862827185851843487628932090097779789159356291638696624944130059930964659987980349598281451000067840574616919746165314148957614202888160177514015354761549828120013646387067341948221478066429836883743190297960707049319981735476754951311454375216869009728879644395200663679881227504527881298032144195791768343677338424670203188007551782211848325126632516043555715460971616082276085996456458447977814039278504689016494718973253676296306044398459988665473056185712460158780442057501377454161846322646268207390955923411913547361049408187639460770604760300626721845043017650917269244947687346663516955177467695748663567879587311362640580396359717031522190499724736063338329254403738705693551389765096789066572074813481767606821900873602604241352957119921038432730812080728761703161422738460559501228605501622060637508799526660456235588541155181518608405077989845668098349417579516837630513755610817739380642498707335008873359179604221373959788583294115127742237229550529577982209455769300707580093601006900304759579886609451690185763111774503984405305127689284812449124547769531246157019145933937315814022190165801441207222469176739945250638203623487622584723211605990628487320151922124418935615237598718070063683631451180645522651216106052338879227813715406968860488089090604997361528929492749568968540617814823077952382400221909371847411597731756420601917082016161881360960484329742443755771906753574499345278695577252594976696021022211559517562563027685049570888902047211697562790920520943671110403311806915990568321263037819582363095111413837250188881486620193601395884145225539368531577289594765653080852339710368972666907611135678765515940617185645161423082489814316329893880116065942056847874632349847049779533784277212881703908969012142946387138326530053469331293919427539914049375559039288003892832413575252334908810216333713151675550004763897948657498456991963242510605895607987187838757159493224481136995646656917907892526507623987641358228682531918074066959664416049691844891748047098495713579524009431071505610350687475871137614275095913918612915517336379597269038546612421025500466121562700849184461002376693174135154895646324191024463382520263707936537109098362962562363005302140936738554448854506195900170084477437396600586638127222610243202719207799741241096373958560341344928810459085647291034480356708442364796237578128306030889317576878732723099293505954781455002055996101571493479996726880154942948738729525260552288375917050021521452644219492185192377767924206017159059841236794407238219437695352900587636335388254000835141396550493070234592851366966802504248326831411568024029085044349686235458354192118374893493004333777606271816542127715960266415168237602089309346112744158477744528876896802178558065200642514746692755252594148626646346082030718325856467558104203773911613489552696538168081112647164897542545757833296701574928520416025168575180504087443322244446687101826522260914373975223608521046564500851415370035790708974213934467507090317942243735290063171748573149663661064373363490489910859337115134233164255747024672104951131932461886802738182916970677831748309578045728008023590683268644028816177131190041286408852369847504754909316414161262553330125348237931506677637327949398216764319394587506744029118702845731097262835653463546675561836170070100413334827832306836260281328815554945307990087245051262207986172114290700987227192143678559709886822376199183077084760674326318076153964283901917049556308330145319669587069997849445033426860827867022167909232155955396621087307006972606757836806784408824222326229033204632106168663199786177014818446430311404300104510708196375896848798487837434946632766701163068704595557913441005277688426161043733414660215830791041691803454189706800162050351036052128556036328855377596375987975676545468859635561623719777775408335672597423935498958840666659220124916754919248995770653156843883909187869796199132751649871272873555025801407223229351193270340917482979622318213559224662392198793938337434138720940881162972482832493120192444668812010368775733296015724870693083358190792666088422546275763792611557318686422516149630489941991011051520006443325488015502524303505157418961176289553291673574178615485096042484924885130263302790788424482312800119743934753776681035716779804539641222779507752214757198872649104606654348664218333166559976272064326608470421082806232476945037386190291250004194217176957654387027422585217456843740972529789434834867576104121314642150694669348662000249012401904463285027395848841675288874870003346957053020850715786940327081849794348886380545449841108431022070967254827662785521821797422401785166664870289582719973521794559533564324258221631386701973400361854042245807816907686220433397577102979969995291183535286341315984412072691471230204984526686219067154606654328763957259553820142406544953016414876628208539235848017243541199592131652367901664531125611792152229868400023199483008225393802257594966129710727579967477597408740221777866736907390155953332304942313625195985530515736855214977862552699294869726873313272122279594796265540331630772060643971767635439540413932370926319603656277883107040286278998451087384359471744112228768817410781654667587576921890336662675157517655454411685107062750705873240502763010528343913797194874628721111629103972599651317008284391626348945189890894102716640245692156473593506302997018528435297343962680375765561575060334299364351552680065831022743290556461483865191544575096934193584081060864350331575167054109012013752827562934813545213383950881499086900011812966994212368674747524332745528078321773655651355101890211625841977053863035221326124386754072857942641411568696269188611430256396395924163749895628055319812183092583994223831471845676595000988281827815123574091933435298595152248475637592081024295077326662856636966045131578430481199585201830793488860485662976314163766271902222133996542088023388513864352242308410304027236606005210920666110576105425725588755868644221813327812899895544034157686936526850864426137728681729594330072331866787464738402516197512856164444138339017741026259304137869121300361389420973078523373209192716584131445697526912987971452769763595965973607515390944515801427940836009364421714456579719558175480150532259996897794463982731684310804290282754068100536536520748953925311053011645769115072639840738466227360784969496141570440254514389942482137647814262053484442319919066391110388590042534312832363864984571155647422445597685759297897617168901758211545774169773731248042231232370849171944953491086081481797986835225100737898213435417621566523243091093321174051318197229091220314680369811790979816682737020810759865173323622898859954952953706422008982491218264859710880702042345607535104716446974667850599324285176000678158037588349785500451607151976436965946921111091020931196877461378971823858006526269066483535045891271129142018546675632277971958055172337036271368173642224573735300798226426596510064648220717483914786775521849719150118769846789455902300580804274213966386228723771980911213950832125164899367341736872397313530789394098183932582808193367072844426699202925682604922076538243103993562867227437494376855686980604213613897585719189263350857827276694626684215064347712832008282467089498512442574199885352091680491866056180835973783015785184551519505860015388907953136177062841442716502714966617315564845892129632898064672206784901367019712329276461319604436880185954295984947724428234344561507170369028758560031431281075960447797039226522951889265361874794441611755926141488406999484552639145044906965477098688671591361169975375288760317936541308425708001414990673847990607863170335582137682409961628600971566852942269921578635657253484366861564796790255997396618379133874560245331266989020657774830416792100342085857327232345846444173502522245958394466029940772029245201758074182136166204352176345580561956246900159344047673444138235481127660137801472356593153419684151183573344586915975421850486562463070248555730376459105361283588201837870059144914516345319809474128663963571452751638784365146933955101322643264854571012329718383877526562745926534838523068417009614837419339628533426209090335093263772782980889412498061855305761146356411388458442464392585852068356380999982265875454936782536139330745989728977412474957856350874072524011694404502073169275446925034216124046738996219508616277694668150595869324539620984719132886684310196107513141367273073431525884522395642866553220791072601961684613512567266307847778538279468394648109456024195445772475484470116229311628110024939016024540989120823906605070452499815392500170001256066409082186983805766921855411037802369847018177963309918087643104391864115020219563056753537313502632421783117642506193018442647481831810150438571675977577235960608226911684798488526546703570617147264527364955079358051534753226386812135808068857064960131914137271681424212556883243065709665699839809632822409012767863836249160874224991848613078660862526615068017990049163309107594617451751920679175570545019899057009256036881390755864521014323626357823961981225446810680118718276176623351182011685600547926896254484106800697382736527801246164079374087097037392406299751138101128583428605874454344122604070945245767061155063759990281898727667138958726199097312679368349569725375066547041854772285585753205137432489014009255155414725194694958677670789462416248055565938986470877091473908644394330469984938988039421744230444087099716385439032128264241584943104309547909912732625578214918268206671982805030660458532977380118398439165631187610163453586103819355227762742609379420002056923334462057425692245182031909336998279965735421446571077143590280198953934650532872364557517330313781725821366742502891265045633388425094495244524902291759826839899089577090352674851840447864780968713795693055230840412219838877959501656310087765642690662769630188813652613115141750267364260709643167108028628325530690099378701327592078042525680600209148272347490308731224366347324854294637582713023960182490115102948017383003138311854906281178260254791553712173806073954709960694530047907933169182430614690081595488795947591133906644467319134138190269277412179777992682419237050323802160433578484355503391034676225259437516180992531438859833744823431331214616751785293136994482707259602001565935519402373237321011756944007735325892778293065160150571320808834490124402798029181201900195948409067726809262987542920394376534227947500725978048550904110863584517349105354739404792570411335966652306271409184669379204238885344799599131682855498977093347237982425884663440000489118902900125886474560812475430159158777127280858724944932407299800950484118061562054724920002108667381543308830947600017437368208451536377009268183430305507365373978184170936625725623161550863889538281381708977742047698786213560661148755263523325369520003614091221622511530707232792735206340086988489003621584017519273356728334179268893900513884800278271988736486757844165292243066419033358629104206769640079089386102889957167109822609020818476493920853927585210745706196593531695794441880776209908625243449786258445284169116015816020740674138050668519761432316328924636370325776267507281276474823886493389208827555952707710014731759094386259013231914777523798886686896757113686192819310900254828172122495952069320818949179649689917417955889887338452604429293297351952590888785587169924086468355308163630773251337318051214718815026189188636821308254346767741048138111729341067915456395811449362768717339142576116583297049725369035981789301602812919303167484377229396714488292174665451709626583317948584666216445443960835707471662131292327188315492179790532135857263476676432593425381593241635146397612192913173333405120306449941326982325808642961570050853657097624042468965588947881211449346202580135652949448496343877826905208510910192652047566278215753592556539900172773580639075305980320736955366278992321114620679714258438645737451105640241290640799595125479583140964836163854170890084109996066049876390513595954615303943428959945307400390432927106966423980497381981305189985160126655480194135395055570371779732698682972229274412516038721931380144855042744399462997036077271806229224448335293328127215077451599493335401841447815313203692632948465839686212872120112393899169990018890486852875391221867426366597567089080808979183743122646065961458012845608448653697579234612532071672655080599932852089879850874271392989124295262396757503352587529328274871396491207714856691062983182747960766275206702830993136890749199709847586638936224762443603744418438177064233681099243779873358895906296060213512725104268225145082680357424061281864911022814445512289354101088306336397077723942715179071480885319679056986691377639503151302139795148709646653094692369874137000795997035551246272918892460748054977769436494938554352531672429115887428788870039420217378291998619949265607608667896242152261564726857133272490203727939291469874324251346313220622813673416863895999079551803876641211749637118369317635041382032441380294300911654507064777377406004445298868132463639673677887462100462438641557979225477273447798471702163225065026896117225644913138041044792230864527315437839314636032197792351853139864729721635224970257125999758772862519650631711691398763250054826659933285438041380751427525126250127437410336597005999126066327620572093809260152019348267178239449816608176281611288108751207625666676299963210227434150622498874571345506123314666144619019897555998241742068104620783735807516153963878104041673322028237168089510482744418777035332410958878860082478761138251608407581876924686431309069335801608165042360748303490652445344997286682471869101912788791439189198635802243122827256135641838906142063746662926501667799236063541371987553833054514569731059459643617107346572721277144513765691854528323813374476638591047141343871456834241145857043689200046190772510491795746430061954579143882548786553587485206123315487022953386231824576494902249408193803225210440291680065617342211694638230912110122840679274802443134734064538132128401336683781650973435934923586941540344772297753866456259396912016015375859301829069952444913362454130101317471473729164309382313058176384274484761649944715354485552026468811851312036714911885058679245536258171038468100488759902713027614702596109303035189629249679483601679680721689974083112148494003074774631915842908324370487210571126836348928161877999159289957626107999132134435174233152907777317116268859938565091167403977835111088468135205734925507668568503544558813330035662392415167642929385762005650854627073043526239972822431108603870234219522566539605987539972682239576026585781187658474214019183576948760025706566639964695493018349992450344137229791441401702686884773608118790278617601732454051195796874712759915027973212356541753404342762690268637757699340019871295942884144212134191422184064766713824664987496911930674867490883336475756937075319905061030852048439182806305895436864709514563262741416770087641059722687650183753851289729886561192637842954071837147076625043893712394531165040869579541466794287234303629043876108870532408564113458065420774643353431324721783122454059800361091830081452426053734460232189132209283583069032713787311054444651847480833577512840028836064855378865834414307154230442751357753353064348413704941598212086548441851375580817510583865079680377215116999380711391595187867821176506303529349897168418935795640364863455143699679422551420092772604009676654200495678605962234399530814415135654633006542899056095456445935948059852590554727163638107819322213963829385499338479920802983095382841141897152593219361769289325238938465460838902208863948455456808310889624796043697224842687330142949706502925181583416241580911929504151811093107424047852710456064621897171137742490614947311476833011518259175433523545990751551788101111647999964678279006750016262304962601290496275363942656451401375206709557944080332824513969867222523825378965297947082025024578981587480713460220654614160102361177135784504170978201195850252452765693802314507774969470800781495268383706623317054228188344223359152600309174171551841251421421622799509970156497635187831294068360383055512896780670817989543601265785706501396734146334846642215350360692661927737521161157361318164663423728222232930853745969663519107456154915417859969577879351024809733594446757255999754844975804191999223681032944207916915783860453864263224675084196864563616723094146769122104979673177855687931562674197295199907746344809418905313600103764504910389388422842994028797259365097099419381741891136501368824488007756104417861047397580863159250989060868282280302934368940289145509237501267476609874843209486329315645418777692562175429056393902746083037531253601361155752583348198992160881372430980715435887585030363410460858063203176156250820092817120689089764054927113659134086426506038214676421844110813526267385929903825844907622169405645286244849218165015105247972460527223647326127129230453543966792301712375150563964013097453611177617355175196381412998538472835606094090145919575181329366025948070036553419670902535790086027428227934159010875433895673592243145378078032356418568704708950474207616374347392992951213918011765807639297626095650231608826164669088357209635284061216986806861350530438766379258967714225412593349239942955939701781662665616656810797663372281441962188867880269685375711616334443834782549993109736480410657563969294930981144091906818538048182157278397425641116495773759129807241680107413662378000315802135577548465640541161408599493115120464371468256931170245161019692323187180465038383629488838574116786503531217443760266523343922782155008135769968135000622980495689880232531392191345344051076751583059612561909942620650610246662479700606495410695134106163036434182028565245360382373410379596246109875958982997376368553263073730926252637059775137227712805526871162765843561153461967488302164004573573009616982452578073461497081965528806957764746336593275349880226215680859447079578275143452340050183383559543756338201806250916074414906216665015966046182910147566825655324489413741769627415110998519044246128119314677405698413664357182577287890526040158175734627762377738856324441906662578232466494719031708375624604027079689427804035783441048612397693042063480137120017281058196911749247044954406784369825631410272461645353922107753920275522411663854640140928947850716924351725726424657655279970142667795178771148710513837246757410011073244376840612935507527976328086373769274003194853182157779785712601517848181743732105205323482520276805400392858915213604635976414464088946975919705471830603078319908833127353797903317363461876018279114357964221424315397245781403722019948705305676239644283031053917621962637608006309545371597975898725250640207567663317891504215100474198838959875969047893368090639027146916437696492994849114644344017349997517006975416487311455147865701457516743886232552900359158767933632309705719860058988777892948705500907280947432882147879661212543848927718049862666092455543287665067603960649924596719459985768540165893125986269179562383050932679382701663538944647153958059486128242074050295510718623211345790778103946036484803931780869145936122068853734286169622768189572155039653069446312288248864606360658693196567324997665480218124672375562432188947543149934578192314695583473582158785372243550256364181093869726370338712500647683269112482795083335911095000118155332263565791656774179000548443212836897833235162409817048529154774076584348518900005221003248911795071296603336095559416452214599370491170791061858967716738704709639330344803662591369604451559734398949013527302859415470901367421137329790338564926954058684117114044894333767873584625569753238647153359416340127987415135396561039302365504860538134266690801729504329804740267458654298784835795511811510207418093705268153381529384680899986775528265702827803190004826456057076447516600215495839051545395230248209977116607539214945243558844260560590410636247851341756237197731682425927613764639141633346865535109750293866041348163875566486094880396852625750263538188959258565319490818577041589486935259596918400042990037423487321916330162390247199693896682597113352261492170266701712757552697439034776979884995108484552988279126209723902106167490072013997457469735259692995825103327298037850889112941827584013404654114912951401777867123689137594598753146372860832089389946740795513058873717233890957486056960295530767543911206672887885999817336546832820675395616762728340302621610550271762946093868863341791059051440363932367854571199726074421237865038658270300190820235222023935502864094729075121613289724818822001662618543408283842116881729613074777216877134173189633778115638279908710883412611778855869993107116023741755725516868000842978329669423739964901221747923475004756286538774582684125261167508837900091675285890238354718691203872462259784078536836234917053258741765553620079229573021318025591370836074538299329192316614715357199609608603569778864582275545424938250223756214592990669780696130429193555532868567530866002122599908527334002782913425095906537306778191737641249220192124045426677641489495011728294985833524634853674162839396653723012865070467061320111787593293521379983699376148655605637361527731253792005185807512824495218529130342869353321745579978237135143532644177504115974521632494863864271031631437384327750874364276621879035081214239117770190350220614790531218871811197932532766957367168179309707428217335881465644072988874932121405000046974540888604361722419180546271873846499612393041981294535930211408987522238002228784685269716284857898673103088603565262683861188739675065839028264222461631363700641078438196328454919320138397682876382120771184434243662576785008536561037037115853002251436017003164592627956066882856625700965255616815398741256357242503886584902549557260261256623290833322172409485977566052849695047546156906385112143883418941932278333781868470759999442707807962242141859201125857819266658688170344000495194161636333319860832331028777916793857583626322832243343605433185619658730036507245160310525904633252636466807453670071409495738074447368391089648587955885466875734307178457443037643921436578702792921588433811117488152348222103435260497146070658061828458717938291624642784873809134690855998943509050726450644284225049066547791217024811158419109415943496124049314821000990692225564967137473265478799689471046541116542461629115948476630364381317970135674565391529333347680195864666752000140955898481990487181667938145091258048787861085526683526037263710965587063124422958609783142967906665185658566833011145506813196430617137030108885687019630746391179283403110337158048913648728769684727171285592088735259548486364378789361904384879378386970083752565290446340235508548034501461103822855661427583511457059493017122768818891974131706531505509944893092885546323622924216520653285000148092724967995925844381438608505304794597820458214173897311928124417855254290462781703420302026714426032523423813765889715996115542148455352965093082589058746519210003605160428096326468662259786260592514197378182088441593222239221869829405119940127927388071298086177398763281706895343809742835087242237157765782505599900849413162997465116963634275874807767574494716426062751767202708290777627349750658719131294970672992781572475704890970730443779926625193655762410665233735118491957327181759502766695771553274140756411343747705255416693699047841105673211080625251004624962646081776023567987139158478716039884669073654816090971826708066585296661362313078446266577473461936707868381090597622321533607018833687116087446621254772290015244292801336215915787422466476044083540659906367391207474422891464007685961157587597185740680022127825869004139671384440890593463278741835387779350683835149799797259286432183366887619274809694091660017624954124859068138339062640426277131682860270212669405086407976446348807440261119085859978684900055307407635000914282887020462741275495705515609544221975094494219302078609873313574494024382111983512921382861468197823298439096473884795950493860050684800341778954105640977016781166136906862877788946723901123649228845907037297844114944233646143454021704060213179095845781475259245749713032100999937764314622579116859380936114806685544712994745311746730459188834361990381849283468151741171995067696878399816351040085769284263075608277659839422060468118264227040651191839130698016287324836496445538507617638674895980303311809145700584407232257228358817537760874120247986538100800696628573899604158188893853689804266138022117617144493637030545915765594288164210289364819468407889113864219273271039800947017722019522996770067628050729007375778376320075994121271196406183561203197035218399363260045697642046085494167311524243233441030179589910078274435996133574931898395603055530806824696344537227706797624560585030130502602919604261499297482926299330833565584530026074026768019323318435166459877076323738753515577039763091858032110893452222410685229461086639019411535075041327646252663860081228086590150682305734658169707134618073745585105102524842611735360741588571595309431520528027480420679251393531775026705884189569470216302467883235945860408155601465721275243155437738700135663283043760624503220837926466271006061432571242339549526630814836168222985071913782879889460870831717311211225109969621417428538992620749781605603044624917429724034077170364115686392736155668769480944337721599650493561570338476049581260107861373610836215163093769979397153809555857344769379969503034188936407938088331812551479102254730247977819503009684140557003946362792462525009244126477064460483342882172747215134033959374184814005654376960777163476483765891942747693065229567669183528659322241000350848094697997431122203213353102510084585505805221746289470503509103807121638613633971875397390552695744462919937841356276054347136257536207026437586472332547305424804890314053319351785247458764756718485057890398359792161811738814094866323439618987540626473592595400259745490338858051581474917356958608341853923135891998841344372929677214278466794041990829374809770819255973677082031910746816867163682427324709749232586733293014446003394303197129215507332874072757018418431582162367743986680367888626635085369715004093143984743024445096583551148010906177733705704687296201756120360632988812999299421456406294653558673262056231219616197324487281860293809133530825735870758142958666855648193505459924919333678809735339608983835323296742325986458158666378184723968570339683964449371556672488802379085416436090859688501177017041093726754982628754768697267048856876582283403070609643528433278413946410492110631185570884950990028249343153598633900293850603688459456673190223860687955246646918909830637300972257508480381022285042055129616462856900350598938820912337074171910258579686764941002587961841079906761441766863905965917082254255889868165444449503878270126487969034548537143855461106413940511918739096825879899941899604310459577333956731501024077128258425758647299310337866738379810634381959222419998441355009104177016945689082346416190369256037001507579753387778680894602225567231277627218825571517311914188285074132179005079014439934880447081604746826001776453537908796509344509514061926295348674267716540984807904336509630558563764169135086649924200104909175802772050737086741452129799189672785184324610610617665288940797147203445788443155750783449911674342708602551116364061174480358928886259177717424798226345648939909260855083006839480972401690365189231127088346419865559952628531302297943368339392602840228247689913701962230476349095785491877369654894190548322171444301914763196229345111886916980571589849840079426557242751985755904954324830925164551491844692881055398358702243479317330666055063722640562533854052635981122973082639733122030911572342319732221977930757556964201052699738698242079624142209972961006733448495648531501684866029088722050628512259371596733081782602412477932454850919260121517322407593864308961506970875344874939559251211031726617682671850431105240467371854241293795200816696134291824994660128512502402608464606645118363587847905168302413516896416864116521654969096997518170884582982450695473167950643846025864508902964231682999805486007532702017705562147946840863027190873192756613451269888055258551065404485009474170703586272645085036266598591549407704622845341257303174013887007944444053406327289523674823035827105950472336659386494639124631558734203149839181309031209641949798323386865614771666150234066975039820455173530866077009677105031582672262171473626512303555964870858010717927460634332881431979538387289595305235005915669118778854246405219062718104693055347333955261975782278789824112317467280286900869374393248898344918518663054498182121626743439980004443280222205329453632881115394491907523674492117017906529392767009807103967872540872838598397440683982960182071351218439319906602713942026803151046896573898573449748704393357741043162120859072699491429125804603216065070064566388471682202957311612645286530295345343085834440838585348502064560626535685094959877558285966065224102573610552531620178449514582188386094751783632077121120730060588822614892618521657126798604588790298856625795711250744180381564967488587912580345308149885080666585818325317617062783376159045011535459905116607601552713770826054892007954276981439066541321077597515374933135869871009238234726985944745127716681856067908910378802621287056097837064841314751476721274175945516957035568362041128479481985331039057015762915529645340156051895484869793346015148268626810539847283001878901862462597479787980833167457298016551903994936565866470446410899829773160755162854688740760481086198653620022519066586773380438786540731506415300002313784160689392286011688443984171198075836176030097707822282009738356725864325277309024007573108502492245815623784095881218158703680252632777293405144939329535463433139364383053579955178401953915145658542761040549999385687086557394400546448122573851486894534322169610780181124680572300008762344136319064093454552126734158898857427511747885402958032411138242100581600375080175473521177548160896393144505702889799383131949524703724293854230130516304379311315873040262125220304191255792474209185599054766465179964158743711084512252065365895671374677121572339372207743236777974857694551658616139633371150577912134568277331165456988303561729804339002767991273899433195566219427404122533623152770743802625142522885655040736492450777366506002034640043351026119702159692567654851653439945934681235658925408658223939699761450681632999531030986065149122829758182446103441153695667542463828506814115132886920139976159701570208988751613877478937526932956892825289160508164098614527618682114066057404442078015778422373486072735117457304009739511750645036907614877474573896636258964456201044588869248097486286800780463972317425120009790916399669843153490026973766689268878071429640472578300553601967888564986519359360000153345379161357668949668183230223575287296698309406596617696327320239196893962003992961130415147289363275566617593762035472775323975968693371062067633514199414677185803159213979402913689886571223590207230248133454790331099769265346504791792681446946657799293112726336844338124005897858635980416415014666461427808994698264547290872526851217714286027912798342029059083524989889784488413124628443941031342099016891506189407120783469462027575199817181109517237751309168325527367410775762243967961220443690326855264378242376761120162323944447736941176859165871625687941310921973825029075045336692972655780574785153764129080189467892501222608839514996333835993442960939410306531434547544305533123350863158205075673811411945400292481958123153303298022157185071068003093290577807285660810655587016747174455300444972621539743276585904084040217106332016246747813316759123423890838216307374836014957051223158666080084747120875424464324140348672376451007013847249017386394221171298008331610016290559818353397239840727533495151015067830074579995944271974506909333510541005654436756827083489955327973681037746531041753745772334834509240588006361375118895480867048387150734867242263183033234300617049035123559441274045000315823105307298444947185341491662337675341810571382589044222301073608134822564043194207175574883027239127481197421348883995916293229964147532609743353053624397573275421888370003153428965054854675050330896035030433013076064111864526461396154526999415779701217995550280062314944616716082430364176710863958162848012853246244646914733514167170793005426851485490189362336953739520553438496920331018673670792474103509112088703769325620193444986670869414430461555980524960247843432804231064618456235667321285787119098105235100487438219101508680558425525907968632949930887312277645309290670376366366238430869033676237462361409574421067544390440276415852539748191657806998535777779336020417881644526841413513725978151978935867911744666406795816000693569593831147916526768191636409310778918407780959980766231099109187637082947513961797076077873391746837527797270936258859436028321782078738169682148173990922576248908936519719297512338875326118623936606225039124273083600460510611917445857693472136517948422321179036342349997999421786695909813727170303806969478857115749264905682181647615306943243101410429599567716835792016902083665603035999703725895319569208449046062275304399712755252681904896021096761327987666948563273522303830834391632984206931604128157053774153281109492365878719726531855090850568193631021245899532568605356792488887648287197459450322312409094744556644082646964739645361962133322647552187944728379713328045000099965491429588930715044385876663599654414271973228815556477950089872600967184451379608378089540563354229448561983145863304918377949425513481180740295448243574629781422163426531223957282595151573303529955148237379235066519713107014000448710004100775452508296422951196591216514476961689652706390559861545239519678582121769212163689630875131426422210228182773924829392649320466471444080078511964924780518579645654834576402786401072102294403976407101022084314030404027174334666209979247630707270187680933221686406728706400963052023915483811039507903025787171925161950320680830021078055998871203359973840324648095386924733277235996529751522716680771849481390125222626551662459799184103673050911089645667776905268167457849188431676485609639176102238217220178035776692359669917360046317226039460653445659551372170081672641594705734398658716623053271064627604861193301178521195077676429651216139675027341160175338129378160333306320201035083751304517637405492754806492468310027535820488664461210740975839012675916964141602728057875601323607082834888707208576502288550310023364696547356492754637553554669586362914528720508567807977230267334783134600673362358821987328393255541910946662145376262488162914650317412968799705300864912529507513755489114725781189082002089853430539487324131298942489382842948965015493395951711676474215230881540156228634711678952099516569758840151562253221113510293229957499403327722456197952588834191843824580560463731718125772032342682490293337186997215391416150005574262886155183928939921990110134302523325831120368683193429256081172344713755730810347795210765744832683222945943842876933330224481989281580946056706000178639543703844071069463987726045724769962556784390742933417338851997406337682094446898731891001121454519219845447944301103129787885241419298180684165256728941159637083450621509855563778851578885955111610836443864699476366461705941590064227169509263010601599780551839341813984885437767382520328977116212589514080823048213300135657055116151847471001785702257925255816319345196293392892058712975328502893503329236709141731811808141695572931875763744353746281682831417587864239039101025919537242920490127111458794816309161056561205525159881144881463071673775630302181674325060355440994636076283892399439535826064998151228232691633280818143380862910075949140043882423476505974516069623364337207357223933883373613521976359316373858199922777774485039687597581431089610496412029554578846766628431460122690851394642207641471361382323642698804069227262611992802727599936796987319064424348900597453464679857514100292539962314122154442077057114957388942492256767508596701036608812439203950210563890039145189750335343059980765466819819771922197482101931635307271777507143366989367380381086354998850096501682653463900241239866898566589750286371548601736237327419245095838620904353424806049984813729065543035319975783553341944434905320869098419108002708315268207441934776522505659196984327020958511507656074224764188473432362169629266124392396017454504272988060396318591186790549709034680965181253576646655126266531276387245853626702416537354736280593054196201260076801364879813646002869580283661952983606259546493747370043529513640807894975610246597811606157009165136642991946669173158019505643484012506009069665105988381877535528845192891452158448736100714184246497643230705599004056569763678889663909218407899020082862559188787463196910391398732394298373514332266517923358387910796602826638233465820891126446752018471824345778300522955299494739745589170288470171330644976665237726576156689622771105493996134621221667918937644640650645105361472590315457885540057273695225363085863696989691429789612161529049116984505430803642304066815499261582514190776546472502533720727098631822532814230250315270057274225079349448184901171132417245456068191903154042701318094728938663004790225821875348558512613729867484107984106367431082634869802317848653366037594636872377572196931377606282852858211062977327218508057469526889263164578084731521488512977211579412266561873465774388735018162403200623025192431315468225330361286639315844586047932454376804489386549211588942257780701047966291297972051861309167032113856896682446245666650594806585192538987870830642682496940185741089686253850941073315043422277964726298091240215205888448143534567116123051180569321643989718537611908209619984067503046161473537315330994978362863808160083681881175674359178347983067337302123014974251514851010604736029126063458356249448803550589727451220275375680009232268584978064999182587017607565194530224650760532511671466975562699911109079009325431821884129012393040526246948729597916553407643677891049503424732209007685811846161987461711985495417473843852340267820453424926924798177666130123297939296484420546052062343594955354616134749715157828958042290159295696723060143396042588831581964466698938357286245612283824824209733477424783793440760739573588604401901721831321645589958020121845879670712244430275005962458408206190920614938096009009928157385961500165521992134372777491002267957195794004597532313251592683367806381677368948735793505192550145014072937586470257799766823804579618406857462930236895240068202965316218753680328000847393431126081210882886695785983045862521003300210479626102161915933201510447449033957294179631944693353183450804592505898821707621756107757576293572032819107350856142846872025668922901127278080870663158477914744517642229127376236885942162403975078385164024912379596388789156959296785131181127092382068463549241063645545686733374666449161965064605257745220611434008806951674429166570640348750448523020083729908345621317839794559802431192987400276215658451929181773146709297183895268392174760905870045523568874359074828943552823425570575606396469880517303249851903113152151241232160401295112225629699593766476758011389883518266017559421796723191657006659922000518897108924717454192040330135504071182105893166641935927757166180612661758906376642554002518539889380759845116039313813953191790803984234672623269518096613406208044769581521987538067305356603867207463692420185215283222337660352452344781250191622741439253802619878469192646478167300412502438416055512240261051529634839181862979156401604490659817660268894317311373516207912046462459577947957767262041553839099339453146071850388944156895121220485698460325359331301633449031357379007089405477020445891795007695564781767093098445246114120423270835985552812242466498336857930678238192648628663229918758335696671779704371996758586450791709190360505771694922476615055151333675238308111555277161896320902118599013731750522401119519303241151890153325428902342708928648092776074351868371836712813625982566398967761246820210834228350928765285477489744281469910209054107754395594230762493985606242273429768966748688879051492727219427224550075136382611467007750923651796023086155863000673352855855605383257565991342208945543484807194148321831607612519778180733792766502573002735606094690414544136130948118853694374271759819637818251513372557700136491168895932915632031392851746350471009998529290527771009005415637115345788876038220439372799426325934635081809338728854848527621967685690594723704312413926787848781895070669180440502429234682361798914378761687569220633699323038556445971542697477292542599879537908879503955346478994412303408226895225186812620971551602385226010400430896934798707664008275711853262077563233314956591126252634802696919495207652880092524190047766918261558776146345378313467209047764464634891181919394451265733558026528284504793390516629890031840139944298339960657154249943366772114280957185235533404178111423440812046991883972918981487395415266593891242433059710886127515782507882899524712535171615480230692595868097690626525624774682460834668773854990167896175267598881129660077296264604781104588688455690607761894476674514019689113760147347143757020081040963340459586344436029624228032234557494463525570489385938040314978012622147425000562834414534580554828017336432436409616009249600113031133967481210850366214770555113459598797664593033365959360521229343916864646685787814275989869127258466815630777449660709428645368765725574496042811905516505531824983386638978689720061584958514676260987414574162959974701549524173313315586166668427727494675056517629000237465627868292981853184355859827271932608035076784645050860147390571850069148147287848366783559712113670156004270169715378397291068737829495634991480027736854964611622480036500006578580163657436976901120962905724472696740378875614313299097004812346180693444543932441655829357925358257256196989609724920726833694397263710532341757161257251888270039484660934829922897556721279686386846717422368953342096254392941814899534281911587741648998683786825370648783079528640490451100823213336890522309503554523549518834690283711148830393054290027995705764277107104753144698433248880785702904748969612558652975309194663211504096579041392165833479492710451989853129961338049252225381257047924680649209817022389384893138116495909795370188214990662968505058314382817276603315111385963926420435226698628610137802155917479487953135447528404846161565617117416438640156493650238700728630409972507396609992424214257209204331319946670144591481860462686845100508439291680351948522804979466378407053567861912775020607234001654241920853657502512997375995600717009560483684765282041161686279534041260219753416826151416375392636925124860561477989571177216750940314161908615359191650171620259371097134319954024527939433845887184868277085134265016073368080128722168448674014771624357972574413680568472980439917775433463864548476005111392921777550293384100982879338695916546950949493365829368783007074591682254198240854941155953458154068030455560967742346313189268864002025688070927812371921251427217400082294718001674828087106587072852148197541980069726477616240189540003544673053668737671371113049471091122259112647632158368960691987766066935060841587831376313539716509400296698371634709757597641873152674774770561273871570910660239090892774290184577534267171041532027588260537610085173984969608239804427984273559743366058209477205305313725591482466561347237187238310437984614015221934528951916085605787884144696707843035081590788758564848958278428851407207682394503674573099754545363936504727276970994310324245294453839313157462154970967480106573013651219798879040344982292050430765006648538874948806015476022762826000482765315795749297718833193006134290300278992268124963932874406574518797827929601309456884450085129550000407303887939506377729797936663737929063666496850480908700658733540083871241353068266372878658340883864653346242053585783512884231754441791883671129465974327766449989341667645246613945995575525590731223799626214244523980232849424129722615265996686564195271460172754227337221334800383664422666603151862559184188544812890636248762870908987358084187034075444541319352602697377301796556612486087714418243172851050012115812195706151423929655506017852794418121480088272924864174943730693890038090098082220224097382487071034600315355269083572508749663515639624233673464608230090912358212088731566958788695670570622510527077424343960693984642980232500626555014343651334047195622910056701616530846989239061412370872362277346319648289180660343906017070226665077210009133805837860982853421380884372959335652695548779353450163596633155059224492962776571067957138704935513988630147689970378998889956483143711039014897632506893565038602128744636258924431157307866194947164731221903778665954281566130781580888058154445503440440200618891146841323726226638690488336572515848606198476659307991094079067222791553039006361026450388907691370629869439582134662721257222362239897790025742093646991498798586509601357738206415885439948710286977268253254661931407630107009357810699785085315384870456625882747614315715681913895345802270895319080421293857918488946604348877314007073801280449150516764328271940894613619465817834007600550005338393926996578297042016232454165721666400619313279959783473493772307201876226185266382433822484424305019506862380670045873141933171110961634888969932627145827505482315160259211315672741886940033276264836438453427337695803113602398263949819408198779892229889691041384559899782272927294130465706342039306552049365267057496095108877928506587294775810988384989161416786796210423888805066513522213846557874829048023896188954980057405123885299558004442290887491506164110671732308126944632461478808125842411937282245622055961173580583348798889116565042483958257571104040290371455670598513095501346161543527898578531981018723426391505442926096119142037044416625212573312653711345517563965770399644093433022170920597050754279454435175965074321298504235092418958514346081788266702203913915116005532622277085894881875712066431451116959080042333367954345371472321500139438593642498623478180601156344012445529259029085979146475245517131229532305457275260382256940549146096276343585283065618812733827754384210036607695281054848727170841335454183985586021974302403540459194255538999116769816197412488513708868167091920926388442450000259781506438413485865874661589855767460990519433766483504245878159653195663556989149679649527416186411060496008312631496557169321647308583073050372188715206887785250529460940037635038788095606967421380252278151389259559110794052167492043992729388682172335923210959239186719335812557238515819980838866463282601490771509691674559784117210218892385752572671914597530545539925521274801055629173208929936124354435039573298395172554057230530659496521444856909066204430369417168660824570648727090401594908523025430895600929741789195819011574734572454982519954494086875252193877922941818437323885546729226120252138904627152267233315125004813593785651234155491064686363826263304601129712296554463884402567271922919639472094984448344860384405817656907395112063841338637266045027967722690524423984323601020183304787631413176399432405424008633393222994055698438410606459577975313122996957893841338853413653090526371252933020160797533759060990952140055413846933912546992328165558747002641346676679936899663255145202220931274089480668636862302893171145055609594423778059294132887027074348913372745849775666867339187617883163228846389739659167585432679223408338528327599221150551975881640040766982327469072659235433844046908365633567602809957274287877238085764517010228683280661368592400596315555239180576194996388315323659691504441920428275965357261769364914617088223056976767323846827922623357959907182055275653053272975464483348370673325947348603999811999408150585232093547868929850607407992945882609563673522573814914193076503724928124586515506509865702753454178039076245341217500952575296896637175338029765534198555248820356266894750740959793133401963782927503724134217880040897055092536757627038930343127634582407007263031454252207002841093747393652985583761737068664067897393512575054310349331975439101697605349649442658817933509060647795223162533839596139595994806025813375036943248222938464706826072135407199880609062055784825868765659627487898160550981053844959940325616222153564415271489654828025574618911640682111956789202083274392652771379859799632253030389981420927212098812181390532097949755104906847904414219108375824135693534197146588061098252785015478176808523058800557961746275260776278599070137776218501588749775858561239273279342276642653414178008985039276380047067348384082756799517835413661865209484569943387817239197175314721431856079220396065684972620769408970224207927706166588457185271943014364161158616970499556736662660954127108575961085202388492077833896999209837371236201123146767180417161493378809032449325356884728200949573712604612097934212148752030038673716760190413612545263312102666188727152885778467588934601308064361198181079683046330002950309222782191412040084720673946694056775320306740461356814047651903973876197483904064220548794079847757327377128229860875178595221211003196764209007201345835581474230245744855319538150916943519600578760819443873446836621324407210858918891273953124801828758767543484002522084871749612605287188960915853478368069125065797429332905271486972374444197815761457890196900830949808567395175243545105285796524981647116207610355493481769459048862621286854565976035064797820819785488788170796379787987658038406255458211684000067498309303786700629081367240998657959823127274941618256808153620051408614363674105637589864601830634870809743044618360070774494178377900593353058618205324044224324548867559921343381071978023350422772176517082665374031076218865360007518659764024138680702796224262856239858347857906627900470157634963501150020390930174251295884550220875221070359774386832100904096668832245669198583485417876880694750445317343024280380886652671079965630984283562648437247269941831407646696206929280668324296570418883840082337014790508830825166418923191438272625629254605123170846216187221548481329240413354994406691709896931398339721707275744458794220570612624744396257024620585438467591444671175080565190177806321803420364457849443836278911062424312122788985736740733332872043879450964140408194359235954797825623231343299313715355700901741782813165454486855050442033645388662798157989966293740775575404920635984159491761817397279650579655855693073254143325414081108559408084890564153684588991199102092632079107807798232125658330345081915279359085611894052869996127912444642419311595872455929239382084220946916252284878742361910376288441084220417467144481369898401972182845864733396168929074872649459849563284345096336028412909503000433095607097609958544432343328173892882551886500078352088626931808761894482337186241499004844559867245652131205946439157865548341333490632620572896313308468980771519066967499963587053516008440845936069978179160321588229091032600635797055920743513482423160970817072367779781833853317086115375632764306851305723850500751648925527359603515822501148098633675437302569577823192100802428337755301914305916397725793343879435292416717930597094812022108011160260988021869442334706534199616720974657518747402187804371949945286224381239887380148140491703580771148128057980743952354410424678294813454362199660037538340802201937618234881742677947227016186625942644765530505626119518826987418802298357573603620191585250485897619794984478236015210421256646593573895223462835835506057635042070540653476451851052398384949574689624334019336258233218880954111071635597743567559468312984487596416648735675632349594992525996478205210503169761067545217958730172657847987647386831825198436308845047087799810743451597423907529764858808992846552091099676311525464376175330725942254774123128056629532481395525515569738210960800224192747374494131767621229341174068864041279455377888576785620506058842504802074598764697858278107617928942167020259878475879154432868615467599194783010873268204545262201997082716157426289123809634116806069666628361875932207307772059718285170142585014764639624588247842734309404818712820731510792273275406064142889288445876336230985325609240358986652286217081697726483685730049593285371863107915831681442102476452709837757742811650795753375062261904197209223859884268341669538828130835177324069523377745969872304319321749786445849911129761924714633645926649303199466548981924143478008919542561969460692697070054836924959021870480748294137131456260706112353045634188065824753450203495556840578898055745483448383402225715916087075464534224761356049735757326252362191015455583910756663063446805780582748729281993830424491764906286908212187665669063419041621995097709044562587186478900574895811430506504921551611734960838821642629148737996049215358750303994319891814687174653712404678350271407206850572260649109239757079323237227235097200235764135060181455731061217625220920018355029118904767321288815058626161025465650425113575496511432870375008135448568034880497196575993175177246399282801574921270789349539028995279064801361472329470846688917555403818112680888281080910005214104389325404220212568866283821535718486892279473884744172407563705742072026431935190347215751006991874881676351008860921043344226755452571228833624501439004652393274609062124499852677947345483455829981346267499414426679971381055785201071077932997806488078519527461948478843295108527190142141174646594952014455917964921416723430647770713852720503002119156933320998439450274067839305977272771391954826101823211340069656050554967321849260597177639477985627252800801962952531874325137444102295368288598825104513733670544560743020112657806832040206808189458143311188607027516441860026886499383048284267406406571150632134732434717417009395692680977099492647917304289773208859447609133164821763614637278196546585538404749997063515767134045088275807234112427105914444260090362700255834346136933122557466088802361407904940187006455001752199688457776813610096095746692656532596117714763194789912991594231192926409981269925961742351478796781962873420096267195160356316032219272665702331336893643689951233410055812542468837790855616284237183873693267955352741593759215636384287495163494037408033502621894832618164794332160302891892986678739023620631852917092877814224700199969968798741879532218673241836690255300099699869066521742430052179269074816178450065117455900768533376550374249055319399814790349861244393676320878883270571433927168532938902895798226521028753983340062641603292781836963661558895233875809389701735781409703843349174970454146120312888039778456404185102368008379881788260527498536849444225600454556410594245298310263942116040167381902274546959606310589947036032759504490830907289041294121921231783578465982907185295056007318529757815805323528839442952032820592838260628805353607640943527705700560158008921118396740380269764719041859318535371059596649339068821939175227925420709145809790382967106809686351363340660579490907507344140604749998075752099351010376107758941022804284901466369523026522127040468356149725614815589305464792990196738117702720274202480748314132538583948254351383782590834438387141680609792587831441414568656564154226412830521384870011603032962738710290475479607470478759527328270636533669737050330939483011063681092335909736325525072410706909724028159311034226519710707259557683941032009235047629712772348176891999155000184122689235325283716414827774494194079218189207211138572625285112674229250782986830063361002701487660808580569426797330461020515068394317852255322565873862601631316236144671195306251223569186669450381395472571430525896347042906840860369284132090537068715811120978929908892749201226510593953565141754650885234246896193964383662541639034452993982805591886545902482001808723100211339213675587106559062412570698997808214237664785239398330973146330676576566039267653585239474120705920944517901928884738772601526607547884263489060680278844466373482618329544814233444201825034345699883074213731337870052143840360686445045020217618104352033107198274981737845030701979301080647718117021200446019442061247502241167217038753257738582517622253133893693180928819498526185920512837525166687918127796809432527694464548130605415453420491148978614222865828081083329938742921133674267765637455742649999863357008357190011319906538847169246207950816716347169158048244745240637967283472811606998192872695417201320418925784159240151295593755349823668181822348035102774166977890945189841052965830227194446230951982037117546970862416254515444266195825485961451209498189671550907749910027669758898376051272251251789057757427808708412809412631551356504129923486960310236729851501299216148621827386732093169917397336172254954619057372125702844866723610327573519779801986500576873814379911582055732201527264509636072987566236816144140245434248958352618112729955498409982238119236691786290176772245209278822750829505242236586378020173410163372514731985332927092139645503685873506354995822431269205773958805939756332190768302388802382283246764722783481330388948016881745868550418172638060457689908953046764758679194111254623310776162045916775833622145668921711960754306828968734528877886260547274941371701193646372880857752671162196941324254233718551942643229024900147121619644071203582389587685202133692892656561936074532585575876761829653770971594248420524811315820502516367948456808209101746960394907873426516074967361687690069186949033786627022454436486920742713508839866891330519963260168808548780245501416577500773406282370267509768630479634647011296800940232972727907976935784653775711637795322134718444576879807838218660923354624051433694392575903035701546895763755834729331656525400446174112527382870881882425791807524472519878808091173637176910964186139797001907510461892737453604619204434794865848322822267460451490398112703156293130078565345673256524469613336675449859096654704255761073662674243449194130536197070046996061474072910561393429686253085549614138953908788906370021176350140379858749377173094877993048983777333866705395829846142632501003638067566738693197022356907688382267074504654579156757395441905795514183517892704883130855309349112626329283655984986878157461816373709472968088881759858440368145582637306674113691780326566820789427181602128044901403053163775610135756165243614370804365354039600787625182276418862318031166340015479825719550331696415074974419643047621774585771530525029136573027775435579680803057191769167037296103518565091014576251333340890304124681614960789188206785636116683616170346592928499830421335133611805361819827540575439919679143065328224162615857287223705296741567435190326438297644449268474030527965866014217013578750148779202243307854577104844934229181505178962603437497364346835212434056137860719783245788550385544201026946191469889354844329511164854973948074333791451640950373189267471672541904862202307388340392429832276356502227373389871509532593571136267086678741866368946269743702335165173312923854088971575912960112892248269934279836237747815650623884496552198910741415661183524496017163914607926590588587087310901339451843926497681967642973424386726562513232842470858156711972609049473180247839047472710046630103666894610669383481207867236161904168791936526156745623892852133254419481388956424806542513294212784571257745300057079708403239972016706350504223710098876754817289841534835219657448388492550292017089153494908352491123538383382877239000302798327082354162659555673428002008434766939227038759531573190754867173981999500338669089786007709183409290324252440255096628360244395832661579254996315287223462664823982857886939086841514128240956002858154329920824599042526606691802901424787151967546552678195958378910590102243556754019688029165073601983943079300250502670352943128514692273556594088377690825492954919174408573571192175754887417543889924533726572090176144327084203730769236505047543689121780496838778855326452288883749718237736673074799869397700894481365395009986255947073082728959234675472654677936724701700899787054153880197069044395289230318884149499868382376590739540220563806358209773566664396933543360197936685030716105960730692649493552994804711525582137232936632200150277683103341240926026672919196489799298218155962019576720681862764356329038631880927867431227022791176324681812467096405662673710556089565278022843633843575993487844283918430913801647358540430923881255294457374144712173830843275602087158985696267021498817389248204103841514872789794986651251781548621524287974488460585738189072027183561088460267374348374474557356044925649818662315960876909041497204738214846187591999529338954547300126198836450802473379691189197232767874202809996243291107849316205643757641762323314185356755355747683555441152250280717855805441725208906233009255548536507388843554935853884989454631843585294605632772675312475942358205762036583390162352074929050979205186010931843850739191224923448828256207006197477996059514199882160767321172833713612952875890078774356357060761564258299052638142382496572517624163121402611413008872903530866665111235832066153794785157813720037845214690800644066321348842725050686736208067958576565997517872321736077036810324023937941749068562704844130775842221320137115963456070378103500355604192540815970054239039657444856755915492445015975879537756502730344635288084185748512659414974983802139002886723007120430243395870468026922232388548015185191144314087208149147830057123831245232994439419547446607213221452964068554074965445782999240200051806044813133084160269508259773450154073743592582087328371255639546065608717087723613537244808608273440639690995527005910350520671674942172912789556653924889985167894765983129380853735487322228555318773176583511636713232007831604627504084772084864932030380455287045555420457291763276679888150949519317088410752118231498562097415901959473344084709765863487435543857612548606103388973806205503758550670213122282903763623791875426443124796663311146785924424659300897180041427570278629848512958713481854141073541366021246667975913808134732043726754194451197580271742321750671700640813639060566569910297344854100312939590760060676869697224219351035567254122860332042381736343729566101739179401231155485667042658625564132940629061875850716905572662637568135023115542299381835324683372041685832229322832806311538731427498314087568442627786944683620985400355304149314389850417546587080914105398518215743006471417085599229494944840991915174158789227511679092231610111749782123904120251203064628334747038040159688175839955724472068432379866077813135369428812468407249241272646816779238140797903345495950590488223491663935745333153941556789353771106262822867660725178677021136388174772035209631433070841461111245939878862766411177234245063314499764541805768894806133776508336602276185838370760134317261182654956756933139525848529425254289649765566792214207029597783887258272853940949883660160066335414456066532487774042070971604848507662654401113358460514018259187719037851332501701663625407874060481035833200684012856351409022303700646602438245700438206605273315847367153653040226394265537033218211249570809089134116608778190936547531210817112833994262185690361843378428651021236309787990653659639283520399805005160101843127875305862903931882267775057265618597603695009630827084913517550955019255807493575059848310839881071053562048719697368994291160447356725120205689410608201302834417398393552491749200623668050499062179522956149398166394554937650899488937890049139958360656687490064098943850443652800707186774323129074008149002692241052724276942676483486919545578246176865631224137032768216204449604161857122556528708303802724663368787646955819603715590297755211288349867273973165209970124874032998684683907915171423803560272552399440561815920505793051315955330855169193968455261587833620798183193280339695661392712803713054931012955970596170250615969038517234388772475687222406384768418939062232475897205586204387016686347721210551469534445769759243895778295493862861964638469187240753739328748250398218945493025246342554622217752283712639849043289616801984706479932679861441518051267637686417014916949994860351624856310889220124081666775052013574904864365412714710631806222535763346871796755333919897941621574550901347214962993204369472937333496226538149758861435673473935691793571738932508121400649727533376949338063792687154111366057700225389856884838719606921689096468255995725838606444287996283969597569500831882189363805761348970260588895825575488221615851949346588745764801862109234713073143735789864211414754511135160022548163949651769918281078954299713884478607790422082808340975348516530940674465502827074139806267705887533564879523200106434032868288412508918612957413577281166011880953022995649749073173063305818535071172172836888791763353472968450706521836745198921985966512817468874777719184775396313729061147853823662535320847659999686550431799697228631388827568275014086705895035945964458414173165910435734509383600172751245757841526866046987117865005913057741518796827607402478509056551628222352387456823072200526750231158803717653216230896612182205229955591660547270209330458387083375146683511545525456931178714069686064931999825020712790184800772018515679306665171158912031130010094022755172449015725590371280538791062256981770829962651136811997418047376610560533691229225387935643088824187969248614605944988796660959724172427326031112066261342290450539571284083060121913524675820844362815451022141196295093860345784431542868930673323546722915095995466207540267855733794572654827403635690726746855409488348648148718050355549929271598508465717957853773270978303591306252458057223741219452975260609917709615911230881981205583037215801851848280844499340166768004630228509398656954662898721215797586994542855304187550490962417073827547375187231878436796857113415290680541121690358201792801531665858086302333659567047727304559433225143259322975292829604942560609121698398863543319104643451668111758936039045927533819847314043442003054785190847297543120819627546543121559572773551677706874442373462795420444472627696112395544861114359316182333726794135240105870787801362670656334232716778505170795771037603987030929695604464672923369044273040323484891222520860764125559682935756880551669963161133726890119586722658511865934371640257382194193395551430969984241015922691114189979301165686793517048163269007098799571507829384166926601707442026646515210303838330365595672157139802254558092030704908721800968670169271090576082938134824772819366200118638721715829635357384270878335355784830801453899749114242281633800788017377958274874417502154368940085617490175271946813446177171291935551813566342948431850051193691167470110493876959845322627984641789879206365275248040802459479958857526471172076006448659994758767995293983415702705156065047176017340886898125175022300341532957934883922776969873649096797744124573951664735822418253201030723181186689993723163470622028835627685439466455955608490226701153208502886685211113130824018926806654009881932897737803670585987964996464104026472690780864706762572768512391006228025577106912980281784372791338091113001833342713410384015590464826291076885185854602855156861371001271523984775025017317624005697895512732634879367603350538098728613431822842189031964534589734787527366569115392959515055893004045749495985547541638989210202829984921747989263858731595725732320684506205042996132428225512387846062277598330665158670821909511524759218982329150152627261416764515528695325193734393689369322599491040804586591401667372682560594656662165480448471054525134930793951604117607748268230980202851701749583483852850267992596410238898606950570309685759287913028071365521584370368108239043738881317725418763528654336381109680150336520018668864450139713430315356491124011944647679416351007709498276156637773169295972134193611127135377281014853766286788299566370349583276080478878473822759914767176789753523905861715013384606996911638997148089855592579953108299457020373826897339697435917412310870272508621714095800155787162508998829720290070275097302737868417622649491499198170801652863940779782845938220380903604857276975000309519520079425898854813114390300080900234702681080496505628894760455199418019118146360406618515203433151357986353885057762914601677994004117765519479712558662197738613637866195622651193582872022311581064377739357687784174757804787685321581426920991320217100423961663640762624443047142039927078929779224034650305298644450611393137669516340914231183570774083509204207975138358555273969828388791089625406431321802445039129874889533637594836029954413362449856716323723399241057849935791189097601523217677639505132684239317585865420436751423196331323318289260474348265741939973135677118363477394300605580932349902132040504077793254791351314689999171000973944122868608933958115506141242842917593153240887546991149532791560160366104289509981122508006747861341766866107450083880421827878640225080066236491151793132866602544811077864944406315464480834999758159666767151568598989635114451672945783880521331387579324141390884641108531239922909639273302317321684976835527733524971479658540198669478409952923754250717215928216607611925716874242465355181257924796782500557149570424902752929275714101003048994175655955503338667492609882590382772312022532061129335242473729887656311315377765378208755557129808209535225127785825287159201221221195141501074599514342946002443319778163452283433949738664868650096656308597002064468913134663058915687457650185757565989567967987830860589180371538170969869735883625796896712972009826008720739189940029768290355191883961537481424970605129257311084514387575752592772621934753725807566157065384940751691972727228521331100515020720771542376227085036195061688967635010501211514149550611543911751327245972773169623792693295014144818450014966791649637885909745788180921739425252468863378792285176177508554981167253207291619766552161281701065582043697445158196132734379956470675535743339835972192514523960162422874460473158452824989710797973259282617852173499667716911855373418551150997771120339316652151389658582782504361383113505806587218304190851677834103578873845021371042246772507694292681320962548436846517075703060407619892213790893689821351129721326690782935947026474185858231332191495261997700448163648400156773471290244361810676911291353771204261361764265469377184261174285897844106946256572346299922254026348775741018886466188855472956625647482441495888436277800300106888082202762580234391677533156833275670383356420266485381818098698839094783696130958270237407464461164343970773709974407124991417889152163164585536336850782164365082938706180539531744469073122787720847795805977529786697751254318952302697195071217591950447523051101756928221313973891493424268054111077667352448345893338727683543896993450298143231548581322920521081397294051103715385645376030269875957386177312648279322897543039735272579767320874814933805391214744422319989811685843430466336259149325119894881757782305122648457528250046012920908976186784404996153740882567292932233498034699788092444539539155061547806544372753730403178144471466732160358291609419585983439227377173450545550933787507622387609344235131818881371210729823243543188432119082791077100668860903691604338910346808487778854737835274169533705219795685064498025416648367140610349588233483488498942478358327122930929290934637936083389971715895248642499366106532540454446505919305246642315960920226951004252897502328864565735604372306510208986160692339951928243657169839652247682901705151843145416505866982268659438465545850214765661723335437024045876953170749087187643310275384405935764469741425838506545446240572000935591819071665667309120286790497312398236384125345215210155135362963787152005693687291050424595480483024991068534815809693748887932646068224018025763212228406284342741362550923096933735008422702096202793164880746101295731179059914007156210746550448117761262844994307041578500931866683745451667023263134052507294735830241870619285729797087423543174567837339539899490492644268216360256121161193787884878351572880804860852304948730994383618493584639633355239197937256321550212348133636148163120156470409480375235281795697013290547370585728910943154132468735030895959031374095463415531261082154938139532140645723826203660354759384726832555565566043915057929522685314671758673228473501121831669247981598543917541110520452209400118956795186696079824534297007617186465417604645540548728374800317793620627591367314923032907497360729818689246582230725665006729841609204172186483368753078317995753650190925005137577021496358074621994412884466020567568479842558095681364416692770017785105732785482379056443897632548674865610632113644232050460235351585172723993161747828350920578720299407179855905778411163027839053214492568753066388656336984420813920715482840653694174777838908677398860748216778000702888744804276294643878079928201572631527681130742254873993792107483762048472001311575701735629930695112268903930068039947584560160583733446352460345769685228207770295896578641941614069573329960373008148531366081644369730508822035861802980050194956271369109443612034931516877991641236745739226958050659933139053615213510196058606103847118276298328923867252126756185517495798178000393397795513964449595683454455716965281228783110223023535780963888966412112968475008626079842897426275266674854338174848134579985457986542289935395909515501390225003959113726333562740026108442450353660594997439164780821286175515876448870282321750012243557057840678667464745610288966834374170754376169465460247377343290946442941405933990120630018713487906822591684704400290385323720736244340436487388425061176461200005525040272176144218004183751250099303385443403512600940817297099591335513303444980571850402296604544147035269258131545092483664620319771870223099520009292395146596315551060559715302685405349789881971624742938721175957469650567036414852872480429741850368902470354697229600161207892541801664728250700406321015908439231033807940605797846900912994665000880819054227988467428165490675569295026275584341714581893411211262108348055831214204774175190006919857139837917742659918217543203597901208202622516830510808493607967236751485428408179720009941094618569032869015045786360151506463007239541448199378831008749815213731592522649392382889407835717392280363461829737898451620306234216988590713040959432729555521518481866846728949853590480576735879020474915826302753252339755508192393946064948731417025503221019410825637140425299191420221941494873408872870623081998879376290260333415395333769749870055482794336090803343919641722682419323868641603126938339746771149885310205901102773504725055965654026421322030241973738037815993919666447127242741660642900815415073313737287433593888808887004221943090047942610696740990983216351140178898534866583096390087914628239032476771460213914370984260939680910240851419043490232781759823884400260001412693497856725644490860722638487715010764890759717387486742255423957409591394537801914455798924694759296241244161951214819751303749545823858177069649613456758227150695314404569821119799842286336905710268801314371954328888368392179640892203560805535583801330419684299320050570374431136904171071781877138926157911006439787969164989558339226593771104003874829352892393269401955967987637916632856675749289306668951297722181544892437777088184241802355629499777156877154160553428711205650191781102343054621979949466019664813805147348742415075455078570253938355720638147111028682288697116873981786166448443395668724649030915923069088812170058339433611545449300900599614928786930065838751029469853651166993713544345779116248635058623602767543144043905439585626105862126896131313825675987694642475330402662082576589278774778865589961404994891230771969591058081249096785838020536425215176549166932339099442068838358496777248196977948229428264338281130400706138944797270914456029757129253287192444454367414772844416838994083250581085370706598239405767664214323664777278351015460269506392235265837204342038789571574263477253959024291827496531852617707289159858923978547713431440652100191709921113904953406421616208326235603364241979743164754932476351209275219505216745723531716024188636083315402062050238422897792240477485921972860372729601496933091696886891733548799241308709616681111148313411466348357328287101045511687299186827129619382047580926325882143127356247249801839098606505265649640803484208000660688301386131672280825406682945881706488588028835872134557231155615113113284220973979614791358989048696627425789098003335502425417064034056365717381592165253707211840176334852672082210387721491756454177325241783114277022996415021166819850131761810956485272670115385507687852760084397095764178912006136758892814601425666370490083598435400021336200046426002637755576655807804970542757069311762347174832706204171791440527082894567550104827875754692820168596521963003136493947373006424827711585330365907865981084289765678481312860108722387849512254844573801671679682681616402722822479074146448400510505340798674600045697446274256711712109163239581825991701741535273408466584542870653490860221232518116859520911327534339688430907118045971782846220131131783195382353915586068126075083452821607843305678031948195290950618010654039706835505278866383530601550557446397725447990080384474768424215833434221028406034414871119993616846909022883696813106448852284616587506121352622576064706379309820156825935605101319330865697490374946528676973043428491418849033248504497003057576444015067386094592384227956930602531132906729593605095934223243140489439143306838134571216703265959851713022875131165933575275494288603002071474944506664058596611148768075931080037843908081893874114518621143872643804913289566953510955135503054664872588862847926159774654817225385895621420533582911011209874183221021273298504438721686076423704271945186040027267356411167241596438009927897049612768707653576834412336747447697387461505076832999489410417027246647101807980928155317435004694232691499082611923803556931985872210849880085334513539478090930570288052234849831537624625390777866396748095911085463782790221674634101231933793033883876084974128207919971599179286808485334771974386049975462294481775637656453458026820451286362738963557352936218816686415301599343976657838672428868435122404427845856507276752914683691153573752470287938369838315041246507607447546410480561147970338568843780677501699599684989955444932190212842020966968175125942825230860211693644345491450468749845991758928861524901326432478005606271165938350216269689832349605858136974087560310177857686032776650748309031594429866144325991661184351256079858706515333192355793358491284440631483563739377486651597199912161476405738315634474198913848782957368241298351877348631967496596282143466831094778264308060295317755022543957221212154272113580349665081684416918595742526600755135062688110741498813087927063108725373791631691689581618749331215832369263531135641685005611221720349966795662716596669848101300835535667858352654306053433561913222001164111857157361164816063403893537635159687627226882489787515551736741798916295702129310429663278598971450081272798966276376217437881379228290493297311956186138313580771589288064359309261984857476214502577683599200791260564069792294465242829230182454476099893103372996396983472253093381174730431524003906915748923897006911236084365757762921976420975300113730229408510971115081453585277395708527656074555230571946738942119162982396427731253160274251041339778235197027506858026606224015272673773095591978387893494501575173883412407171739068323881757181071708196605723702761908598491444300533919842144783900227059133767014592139676273027933404730068263010862678805879250097335413677281135169050946900938311358561782692153023849837040389504350335197937573737071845295607033642766139455178646871704162294897855525004550459938554592846892423355321750819183720634417639344253171501968465759683381611744969733218277322920226237596540467797401063726338560299371294945700950436980428052232866410117617890066743860616229496573833715349165694659402272106002953579467481763360558450025843470343734918813024612358173578222132904961575761160551614429245133143390500618663363521713540616241358543836923225294613894731591937446794504393458123388387102924504693273459075153513065547814695549899519218736039246333787760351485614026801916001687241867452892289527227805733830920638877095829203127249488332195715048574458239645084042734473721970694426764326198594750849215892800853782092646476427915224923365488664517218031723498752313114843892337363423962914854205806303929739137960754030161140701896079507726545856388104031846353290975658659272740392518356296105797599373876909124193283974798543405749449723060893097307209325330182802653129780339255425982186020873962275112719137216553920136240606797652423273228341613016749649869390170787763932204086424657638012767394639682216411528642323198064268272932635383012758487299136834961405186833573143979002585332484672568971442155179026846522379490320911586405045761632841249288833811744484422631023185416637812677330515366804851987749206905863642559743762461215047005246643357286364047057987471639347655060763466642846983783940596881794967443832793796836958304456182781354762062125689908715650517176787346830833717175139355485823764985456131452307583245363720561401593345237946780592131185462356767667666601419139220194093924555181364883773500175973966180539065223907813635341536301338974936054505146505605357455940855792677099242515882155848328107610961846319938323380983167335726552333350055317246258007775010455370462429772403174380207407895884301659681764377606965434065305632502411070981175449813243266821226969969638560214172342245784903499654203015143543771942115873499795755850562418104700188441262070915183258846442979305508519103454538611406853912619033555761204933777760965976163710691974861647592129376591262246661458162464690985444774915118199445554595615284566685852039527598880718100303873063928256975424497521783085001468193883760240733496692893107589767189544226940926820095206889438877917087006865513833261633516357834122015621164769904398195193190620508908998355077140457090272273428201282415878009880721489679783324474243825632591622212282171430357432992896842405614563948465336379585896088672281365649672355557086900988241841221581604848011235762877707932371086208188939028070360610694353509388773237895238907352182918005997960274647601322828082995475267120380486224210256838057571211658482496625534830853721081418873341708432955134859690822898714233864555043394822965970814506975348714460201332418711690083277549147318960392657156196282192959479926245465090774519751411814240694608006635720369924957910635005368351507454299060876556922172707410598624192712195020079406872044014272061698804140405517669573998688921828887157320136363453297266591520868829412644676105315142865278203172060317448776907631812675071719029101717581424418385250626873387158009199119714687035529524912886726715438125413058230016383367391268527880305378285536734209089955315455586461487682758478438707559832284634093484265522163211332153666227016043422532246531063227807434988654327867948187064814851867239317041172600829698579658718410447578268824795717716776149039909424277945175089763148624443961341777648389717102090121567937202384763887826009988637998904803585444314325769640391409995713466756656437242304086875216459538723332924071577476331226628223441127501979175287598484830202233370158820828350590077396600887358686825876546972464671208351326090635459551434998293673433669793775372924005987873870078303283932052749058305365161024808651745540241904551549909479998523263046804283903507622707751010712832674435680797889810092330430663857129682903327450186246991968257202356750406947075601000569943253246172727377522676289599405537364425587025741910466566702815546329933089020013873202852289393230807326665856532952645017649770843806030679064524639314375476364728326920197361842978945125258674181781523992820074157405316913483946362493526804145275991756475200462168598981901455989660806980050182295940103475285436758927139966303341400247327053087397018070421878296824851557768367953756132201693528046027290594880648083152070055410245963170641891537511226288526153049395751581282156764713315697379488927922779595686329458123240289157026074343705707281098635181582662537029183165011929350551243872752891624653041005774623476287925013386540446872674937426883316921745888713649269982910295423811649777778508455379315575275589489060960951265453995890480989229825277860566488260329823557859673574321719690057574961220545295860902739052943007322609533204513370328262734442979533764114208151435339153311379996355091150821408363409288670210960317244084935821931405977317527017206480160002483538464682497861650268444989111625224304677587000259045377112711776873412967741061527725441116900444473640097394641019565792640982669500129994593655317558551242045067411422786393667654987388999224489615950993883765770019987444920387530364919759054051976148696069910536930303932629421082287261576699442383147847679228676840432081831337147312902057114641120789672552759893886103007297853426553907664372914058926898801098543036117445485578958494460196338570821788884799064407245408653071986829697104695380585613805111848100096442791631309444371986344034449489710013646612565741599843028952594531584372686255246096023548502106693913766399067289821826499851325314128474274653125254714128180827261798017099427407371320859611640079749497207289499676801955984441347287091218300450873972243950643869396444060786200036219238994511100118526860042053593207952394070947316421395358257429072498703393592986198501543360751118843056497104124002216939331583520120395524073878091348887777299464134102243590218874132654503831992680765825099327220549065205739227871897394466143418028506934552315742353747897291072544041315615788996857392390907211888512537832334532871602896697250473577089662624912506782414956216115945957555859807206059819143752304187759215731641754813798861160380402968678187081035891366818207083626223292519452682248493982448465463357336987374570808497285742644901985745817436145490525019400851301449289981890610125165266835062159020617968999867884666903767500495173363612850454570567448313866673323241318180082920488036442266928242899335348864586909444444385344651579663818539808686844384342400147716406044290359338958170424061124579915917265870323571679392608866320176019020915316268315269943985343081837209332301304265184597360661397375715007177327706914099624158679700178590745363095146345405249725595080025153700939928546268438613560905953824355513081100337921728213762177197261667123090180651349551448004700611932429082110643046852063239693416228954681770396938574734907381594383045083281416131857609702471994363967846931823373301057598893094165745298943156327458985763012305346980232455552917765526788942286010612299907374088019420889942100035649495533172329407813931006122570249693000735445373343540839591103210653547717276552080069141148344656190672331131073956269809637701848813590201965033818633204992116517922861782554503339953461785414933079624454379754922920994541369467501326100827702302027399973611576423277888479629750774624850073180462924316398331341810106958952118534456546904280666211920072530626127323208806672373321700626251253445514982967808468221054922462342067648269582852386535717398803700325718887672968777693986910144361097683777481417763662791046606647131679292205385209389439444794292393291271023311702705283874627519489474000501372226246043367577307191446749657218693178185905412974210279479462086563423859955201411056511797549004581481298983591905347228976927726901667591528742679168036848961380401935104385701724547841097010993291126555231348831364123545761887303764445940468910514403233471019457869716320747721519109666864025506662090137001213441327547135035638207646761229613190560375785855905374723601948096582867218331823003973547274427145600039674823294085973257877598708579709640808982401562124538907431499005190826548985783076077412611914254142505229681846258505504521839690781795631744842006908030716475297384784501069548184940269044751840681759102034285335475468254704332810882903926768510468876173545819004575288272293394577660818435943494385794694839477789895331466995680698176117405714959591153768066082201635578850704416750482875735428014116976406661091414874225067751849807470099348158034272831859764740346876688167742536474777500877371911758556540543786108398417770719834677293087636633044255201066443621148086151418374103196373861918154598167294915207632748546181350847491288594757306649515281967415971654838614918953866399028401642517972391647987423097923430692260224478770655786811173976546448882714744705128210281669777004368749728993374339104517586432881258536646311011423036768775612077260853133637926660704581110330597503425367006321280172066260855263563033147321885501510982003327955396251206233013642300448550416578529677041614454025822018009914543508047196852482199567576928915892583399511215459215380424720276744656807810945497829403526137932498359192804615635672787000276888479023012200180074527806808784757242827269240848646599977858247456795936356909696721675557436426161186248398696745677805710961683130852777611618617979618957412395575513954302693766769932449043472742099287558844534372513825940230910260936451013110368722984914170315859898359004324044007765416537514783639464268861552725380795533436208780696335435449408226546135705610552476058705909928979067744673648020245966060333163854059487625516389069430795294794967018266687968890785067736934153539857126293405074430483873154409479829847199818875042713948387670300054263377115528160765912562050879829544012860351728039878840609275746041453535230098511617344579861729490057489732932581620343690976684507445850509614992518648489968698648193602966921903835718029002422485439592464628275294599910535293091136697860181828749841403429562429913858816280982201293930508886957122216811837768871233557402938705787869428030415810282117438216360259940560117557637296540437515922522798767262893052833083293927618943527485998581974881820710298905208858190717755014224057271197166898252981590745506045087753263741868120674737797163636638857012151859709831920385180264386824572595662899719762483022778986451865058762672450018862124971198589538994213459262165549702714424773298014926892386046530147068042846006160830791120038281649995215760472191834987820988251285208817328310392128158862780573325770143706502976903877680240930313748292940940224187158340572792838828010617023290226424467808104684330661479679680710549425055800656863083452144150687726721157972451760024534318015534170890984767458309848094941573309909465670453583746372245716106798212259335618917553426358401854222439890543318728135639367984071904603397600235248674028544168400828025099664185068347335339143236189172042391143741139028322786471877301083394931561589795940233258431242507947203832893543035566768624845477987922030633154268899894983121559395496063641881702610874367226871406755213552037821179931112883152144031102639869333614497129496774426702048445517489232401249852594567443027316369411619142561295788661625282925539605195716598254742862990783727839176921318415959222833219324080645738271199563856336059079078964621609363635583128055076740924894625284781890956722185102286871487317624684430373390854330582575148420107077510771386468758115138035020200909152865728979326052522322578244871384126139023699132976329495440068715951988347906861820931784709994668266166689140713534410385457070428946527350463711547270263031705924610571761169878834540434085247328140836300981243181786737029803927208663288667926204706507680684123503959946862166642865263277310484782391401625027392957477832192758895079054536156146251717615872251226621407272152410161291438809947604918078726411393247875837585004899594210012359437116640254025021403987209759560357506103792169976922843734762976963269052252472646805276240324311010542086593880798014763028782673000874407378910842115772291137142073739012740640401439142395187876556878313786915050146685937605162824321222551723693311409229089042328814506565551202141189757790796811262921875311083116236161549088378483030779512692926809927901859124592479518034083294257940835736313913800674142237700299895664790170022729805037442241734827102952862582207170880000015422240818967338061478969783842572726358588090901436247278001611265636901058406824919621775769876864941513233490205799594927463437459557916905026380202539295928289044751927465810314260496307604573160718624764659472956095515913087821260702423960434868134860149417216702241549512247722856671545748672262592111576751024809509501519442165434683363326465760158111009305379212041819375286982461520233555217926457601146100072628645463422709611584375730841494191001116708037913247448245629598824973620543507488737828339748387220762354580007797558911537386552461302456840798314080554592455274042280811249978279189520445145256371970569332211751735606546156407890396859515682215426499609792241286708937651895109044432394489829441817552660460380586393828430512402827286703515509217990440556560498450386929822497641438499625108629467561336532560536479267624080633394114642465052842511193592764536616796047766587369821102197868803796063083576477592614664503723606122323123101228481267173943194466829682323240211098377008791233629394279283147538851107605204462049557706379329222186936491096534924617968148679371709354201385686163119151522122545026018857757447066159298554421242244591732176334700968821447461714782413818656569983085645848177677984871145050760768769467253442396371133219700128040640058814900459779403730193955782815901211054743424355393021568103856821198088753404699509281825248781630329801504651716625392124397446016683006899122681268741853260801935510948666770840303324134264881178213514081946436784371684657200018424691722960242359367297677858402564019911903725717378682801097467374747857439318531925350415117858343373362821255550634931808386901770928039610184176307924360907546496308817415867174511124345543440468101042851776780407287420845224514732806751205740872105791245578072724226873447747307212965858648395412019597715585415568933852933124976257290481942301013262639478917260650816827861060585656294755704626718163583118662279478451077695627193233439395640385335824773599633731679667228003052351358304109262923543577920569738206500446204428661433083166424403064425404790946104040443627560775118942427244925536876474236194840481327123597112535712222932432361485274987776277843237747388413089757385419323082832617721225320461704124204677313676936191305564450460644746726385454853019492414596352148017860591267425525316204663525240161822919234194177925764676932169674397634563090178866849430333186969409870608887588433575321017584211562594781991059651385108346145953678982649501090392490898649682011556283615908856411272773449872308518202629102224290123078511476294133605029669727765496590633086617893059001217454220844018198176029993577720051502455281356317721373708956418319289318591600885341303562367971701235946615380392006122228100219935591883558294390735498113697779793923788004659462905246859028721998169013862281846587293918331173583275576242641787043459658631347584882753396488780700919369799066243329084573365243969948519904922120141356253842098220332490616127021576956754398105085627214060446278316156322366473564320563594266434945895160343756967967385952563972528717235829088567965466744380744783287927191811007849579018623577678971785623536190380874686933688456735430934858293782148125830641993091584536118674309991287743059515087172912580409942176162867139675097403627430320788000097541322140693904723407541415608162924254823908821258910555172461885770239133614810657169059986024129805586395641524013282438779046599603897647269422899417320541602467515377186972641640155899626116066470335679863309006293146350146437856392332690642755893032392360511257341720452052990396143125470642659894946020734488861701888160110235248153769634300161679281517108806775801320755898659108511755908869841344411829457761231506906565540409180845217846097013904935922951929000485084145593012925691195284058102930110904817065108175288417228955637898081704694538603854195415195166324568499667661839389856475808272265628508237788178855476271735484975154556584837286868837805130784913809239882052671140467451921066711689879605322139251625236505217986023338422144421426953333011994839455003971633400304400538803597316061260683745523973320620006119499285877615367872567851628201361676515647102083463482408706987797283613303801933507452820150568208341091173199079599499889775196906305041480179481465412702193166531920845676299667655605132574064592671675855690274238724326319280974963314327257905160306093739675191077941216979604788616253906276349884098813546060240168960240062406785209426073315865902163967980023916097280880612195914334727155431251128457732943884551971814229914047721414396798603849663758074172195910353907544545796093295011251694372532166016405282725027296877341436331929425468380143100459122374383350896624388430548964192319397229671540956333320283214272056184151756859847461706294943500591061405502615573542177070435609131768501709878841514439127629323301720427287401786374169915736249444094034144130397543645143197091993147293024030797359432435374472013629815664923043160614187643815442092454963637154753572544673865982222683462516643564274486158084158167847675624203774047395139693006685812803378356483322013731251513067459326570222773204546234955101438302783710208434426812906664717457020718345357008727018812265508417124117033131059988839906352530012632801506702024596291715272122739903201663312791043661758397068261122313398982667216177078472593860149041612609688278807308456873308383157960427024125361754164047619362874638219992447272151445837026997910774879921609795231275264097724933527120974904343687877710196355140713323940941460931027706391496588691610748927878610858678950145611004019328004763367889890197767283742646290737421211934174332620578437475650107866184056055618443534984615289768549178477998749585784728611692490495491130477821501186040823266966311776738898485733653977905156808284530177206484340125912025656716731697988883804859105567249765019732639517436670732835787876236856943430091150657153660493364850419811278660826266295709771708891528374160449659087737114436691874760455529135476061868538190144211277364106061579716243405032594708744233988946160574437322701732701823171338235800619565310615995440256419526126022742653483881746298182752991648432311595473801310349894047674679968389157090873185849089235273688219829133353032494748743643269868960999436996994719659762624726067065647436683558328172724216371432547868628478920157418607353773277841432179309560751281961839673651275453104902797022668528000588091638988315248595051931325167622309656104117362491155592507712016795136629606463063010951168181990474005950945389620670358153240970860569489568767611003140280364375516844383761772167208591672910949508771909867802942083883339196475327000935841875667895315847694897743203651993588577186702773231605533029673912837810072650715621888841335962972218573568304565523901097849679006368903549376603886787302125753605835327470033901778520553103513205830551108954499762782111053258122634247873641181827243528532792696662645373280208531554158100156278944990885845162291271304519579550951334078027359976785971131837078020298530068990617077761497633777995218216493561675705421595061045109667242528726621664895311302995354787038087234457494279913148499123164743147254656365114288422453916726083369155323068785179515051588622312327165076362805328928248411387646231891726407083862868112739328470618720599098042507248721213434744577410734989521515690334543040526436478035550705254421594059970425210163002985527631372236291287722152928511732043982184400916601947566987157708829728292262011727901144833194942724230114106032437357593660139209191758056195000400690628500515941263434810006662668276143327099554099430771950202525853732109250887616683721492872476710306590382273791495564808270076459104915567161271229587961170869586644421882415247253403177139355829900778397027694999299039690201065490765126398158210766335597861165274548311037050972358184457528110832568105105133974041753876370563765505262787630859175124731565280076706017681547379030584378041846415383180244238078987800248043095863599723645273159056222061274656190560149545107533412823855705577073377288739733250867787915563741314144342770753127503405315038627905075020469852536838782477778536219794844647486431554679645732659476764316117625497590486548439231992558565137885572597282965092695186664435731021918967555237390886719116750449870398377142423424689331600232747054896254214370909477390466832532425745020865160495045028470217652019748125308757751633352037640517894531997157418669695274881124848445885415286704312390999401695755590708856695002239597284908210333387752639456253876754899051274495606550647889957464523690574567781634067236898603636556212401414797631686635707933575954366981414859367869887877421717289989878189999108570637478490532260932300329520426974562626068767343164850143350385125274937470771074331806077543575262199962555068087613048998791084143567824292005976915528082328656331704605399262354329186809611098843367631794351847941026880254813975627754482232712885097760152525999009929779003268347096918029952222800905787575967570358207662654455847262884714139433105923030183796654781534802431576324335723576931370877922406892396588959200396077163049593721646299707342743067892276060718357948289889218361998638687424603887389607849831193523813218461405105462082708132325858939559456406873196486527562339821652685848759439830193173000650608027780515618492846632551723737508307551890865985129373139146866954803397249672786686439441917869495252383482568057794063302035798699443771146347870707178455898112152376144506775681465940952471174328789798328440399777568052978561340919501022459057011365979474509992435184349904230959364852243082695296062505281521811384638694407038760386507478548416582894872918366063779777935763169226089233412328646191131181747180813616332051492414429648107322055433781062593039497426246173261820310727264263129490835069096097379658239319613252739303651897181085408329844072207414431026511326110486305116583547212846195274171216039772317244135757405603157778386680727855233081250695754981458573537616179839900701706080358868647866861852735800053460062645365687890952356548558334518863783013722970245263851198482090027901416882156742234970309165981969062364401231286055853055995325466712188267583990396975911766647855614372356445787926275769480648085446195962558693787904038012672116445393906127694981738171304378468150625809909989703020024449919358899974826519078832160219374378085310140835758036003261939724830590059175426632426568071387773548321664728937962364779805713886842318892628983602988655961446716023642906090664125908468237278439348740264608671136490036242690609580915530601128983268842192908662199990436073757731510100452473614345297491752857886686028780770060464256008134417988990473280861088809939748383190680391959915470190765523706047626639893771568206114234532817678435685621498451453620831006144257514747733864147113115405337434105496882152378911394898197438012903317982589526658971155512296288327557758471726825865743239193513716416962462046912294445079187655131093341504258324010502677434026401335731847331911666057196599895263283086314959604266591061464829648640726249416527137563950031776369891409806781352531189601806707745254882909518678853300605773400240257291496655562682289561505925592369408096181902214690312485315606000688590402848881889964598746680064597866784655209121454973372111151394672067498273593910253036352960542564752029807777183287539417613375438816762751570388689392511048378058414452973135321559471260160596897883844047527688393439544873364854775545913240039658481876981704378122054086739718506006080834383569459527391116451816811840284983861473576669448442070691113068624701351062473349509833625726479310779618287170336072200517770505638547297512261785635516826936832063420942405574578324305440639029784583157190053737990574821937551962946762992104239328646748569984179635017059172632121431886114895023350417105256835749591434261435373868064587200648712513541883591047121762814988612743562158027115224112300908910813247265626610073994952396011434237922094005199439746106900612366573579528182374961626098567522030976172313292228487358619918028212820587863453432320174992979890500621650332887016974565249032791474225204420970664801545033961009238514647451332571327801788097757201946872385185225520196837661977168733533532784453097745484100844451299926501399122873366564651707224302724166788020427101938788453463297437859913497112240005200534782089018321853987795233696573977859908282946826006696855451361336455304087644104584124109908708804454509325496278769532028412521510941679772228126789127525671959121575115978558612155685534404659543167923108188961555545450285704503796218751153448526086067772112333601322786797590488300778056849746736494947927307559682203831381766728344394049914954945912930963475590224764882255976735245572395628740301535891668533185172558234911361330991856940664044511121985886388879107141876172984138216741412587599087151815410398674032410047120374965340115445028723537346354207944963982247972184962813550484917699468178070715354176101232103234764092251129609572364862312677171605534222686030672952029264997600206159834184241979293548696663764934766595832642047755041141468978549254679810606016105729890748065519425586505683668378788082988529868951710464960474445215244443864141542454976788880570637196929401965236888919266488699374851203789782757755844749700328796896637623070653215284783017715409298200784465137425908743303435433334723020344754596149468095626239942509959617754131299142674294855875280670352372310009577504209125159760621473840949702478164976147456092847752838683758125456578552194103349239360217759050489328586650095658993260395429950495680279391040630252399548915245419009822536764134778397859845592548481678662523946421438118715735924662470919960131286713260763834840212147879653665147633878889143535811019828605125587685271113643554424626375389091453884929894552205758983219001828266880715217253568564146419309227734531930422925997414700227519850766294486519052452317426024333998487785888050810407480292406345855517690207732615083270849925884799751718299635157353579345560154890434185481536186526514831223295037670035157395871324431046420902568016265214474874618809811254627446088999924512659654965876882622572566083049461345724858009156124678461891581665120763644749162038369013111680587075833897694302586893585618067873787886409485947062016617823854854291770659067117090169635431592811549931887667445964740047256399913843852302556360755802142644888309716067109401134943120257598528943874610808024643587738689182866861212047527965074784803177066705896932977345072879081302809377851146364330429831150656857042112302552107414445396387296244594978304591106564356781273883511939252928456162136222362517965230609365763745292125496741150290801557897855268737838806243794072610835875555284802338008191034239169088125516616783691482985295031965015242614208427462568730473564583948037674238500000734822941911959795707805911886188730286117865894427595452205048416539530445833432480191026590208027455607964238790950864436363502624778626096325003532123521901828518376671241054036024326322451428355357315240880183928733404767905777740725052659744735979046612983476164952269116325074516344059552784796160787699500093429740734735069289140267424957545307832618355380649736483572087964839613229088508433150762680343853905504291080508733546137991988152575780255784171305911571730131859357383190779203130365457903001708535434095752540400612689849846599906892411852796966515886657400024021502854967776281909700355555894137614202945556163572711620728792644959604467336705424645667686854685092716402113659126923821392047279534573209363203028006594260835597785047527537662756400211611203583262756619019774903776555061080482237795038366221989890845146036898583374554267149818060511567938734381349751652003519825763545794850452003853776315921760888493922801067242066555722084909274339976528505581484280846295557035167145459475964876314021662281524596449181713283136135567058127889619341709027673148326977997699838126582167847178768947711663300452685788378043879601390743096805361864383514796589568231584938774456924141352024269593312784449918462031095854508218338480635286016317209302723845520453051631726723718058660840214738201279151553513206274735593797524695652145755994422559490303663980872040083018574712092410391352308343013505233583137320920427488836255378324115439076596297681991807311888298397841974961307605431425187418095385613182209179984271553657111847781023136881536582810304305684578578020072477472910019317807884431277610307239456153406133587220781106956563447150239558042127804705776395070696765220839507255400392307904686870796712265355060080157646286494097678247547120411458297050220046253836732221522908472992009503066396931256626089052927310273770646147057451350433316747662743912940701654171256128160307439704887644906364686892315319000570033270974473351454847684332049684802564361599087484322197940960935803996880671659826413390377985272519638677188761743602150524012329664618870781068499378223021713588792222888318178555924461512159245990696736925205277144204651969487888163666029189061110049894219671327698764446282942104034712767961707735178483927595807335709295413226082534865868431172705204820780988085537611507104375830371880049133202530402794202980445277746669490260840288248142804249795720756344780435737421427138350783504782825942015863838043787394314910873356898646561471963654794455049659858964082868499451770574064167648534539042942464303584741455637587672019248758880837989193561829533271037509508407174097670655152878209143905948805240548323989855069878696800471119787440719317472060055054493121346411084212407232257466406219625256949275423410801253980456431879710222557816593365964158906449965988408539476843085509365418085827331998514663647456071032623626695412093011658755966050038165868711881915380136729432573257164060867625694225206565364147214302508516858386220051253786482827590043794892335733537849716850660249342720674310221790967632542720876508496751578464783228046736838017001711499301671751691866873811494795248578207140845676212399177730599288438808747353733647359084745007093741901693745595553841810546505416206945499699002464207423469331779629357352637239525870093496433735697272666935919599237002440849424032073214467878364367354220621557525495770661579322408862467983775959128083586718333980404390209143411601661716590689496702038624468003152581377793772966473185429132574044777435654754024910822785331820310227445031585226292359211138879804078738893869252623750720270524021224597499704818191137943747126235784427202652207097340988966579109508434961181226701293041712623830798685605772737025946298961638569781718838111144894888182518591557891725143407038927782952669119123510562999494907451284791440387138762114534396117580646965886500179591075285238248860452059680841727043202821171515860564346396757102908328584491472383706256607374219062911740265459455442594394081320352398407915153464757430374215997012714265195100776690816902287453214898919670598407142389013485470432266565664644685231113120982870357966565751213088488311149535931390768121864067876667695127374794628304383102817710073247995983885173001878847488843147286063504427243733417517432206940507883412010982777615798086957454747891725330536469140791503628091279992275682211156755821445182007590728077554954101913925958487337136860208705752492191351193980673844084591419892151401073115557562804729797999690649003191065513502059886704489290248060635266842592021546161569605742101641379118814338254482427139932310730183357533552405478506998104593290465690934343766971054367179562249092755547424142928460629322036734280955512708556197427550976131725292225589443590313716710053448365253659102721095637407540777051111528149532090995991072195173131691237939438795948990961942888925647487322650200687078206821219270594092244323610976561262617703330455074448295494204148169936075271066222031111043979456121872355177447802236500660467154950991537580909492494043070035018788475536789353995595678176120772372522298416423821668606375154215616134907620032645436663114191372609740710212485764643326457169450438697273454282787401968944947797120453274357668135365654797325852493953919815033410377571273664553927109290954680990744274283761318207838369994970539003889359367473056328347912699424287548687307623114442215006413402987897973695212632266650005496932066251579424292752694384197180163391664839135894218743466513625438374607864443695070355868477750879501451813190379991534574474750668315101873097408878274266855903366220963700511007439883191471632396479257695577870835533939601740634060908084531423679774197917714302211854728101967404987701363570867064845824661740849105759619205822316049517360022437912287861358293927918228998126747227997536653801047115247757174619129854691054385475621900060657870787826186770172232362111669124580076476537226708010678830757763306868469761736953629417898846514125911756975275565237810226468160715088199845733678447598347368617548248272126241310186270410618669563316217132049867564369581441547308741510896082505950213497296664259206004672839180415006608649023742837972447724376405956236495711251705197345452144006512198612289438462889284568743067459906119533904766180695813235526779053987516819041554201305636819666535872547178004217652932928671345889222113041225850069313453730567947514701280633354175886537662847723319563438257230164993103921541786707830894854043734741564205892520736406932357644770765670910040153204624317619426822064602839739804057053108281176876339229644642829657546132765311125824312406420709491419102851106603784295773477421167692008738584233512555418561940578339262511599597940108136256926167922877071944743306431757197112562234792594651260985559041030727544566699664530087445758005400510577429585206906475178660815174484225900821357222796069646663069287837257699123332639203693973086631175040737123933638997826301160856920595607475138022140052906571389339604061665526883376456496359801838384272388434421497665448082610041426473166313427797737832452341887139403763768148461721650183578909075197856668876128981437219965652416332567689649751380858428427927336485526945316209167953923555195840776489541015153587766470038960553215779687149745005526406027978681906170100871832108709323463349220661000835731272182329874706289610169374202270956375823930364073226739880013723508053238457792945045182648639437173089628930080403051589255703236673403455728657866829334319452063367604964822324636870369237843668404762170828143255702768203682469156607698230483031827311314147028574546178758744670143202140272961812841455267923691162156554891435887314869141675320069621392624825635807329357174446858126986124797999897982712702289461719205747345267457369644704569861852608618991459039069517299565960426539095384814332557187032459096607449010181318938921744945589797589461021682325910016106290350585365764629501660372365660557250277988413764650980489999595503113587261864126591769498145613002544975412452318516530451262500063328504073081102457834719279289834690450447742830962163911861536779343582766828261108317222445135039435025439780632458054599915321270227611824803436886125776690560520082964827734703030612734497711356289852474409610259341983127194975055191168704070252528450048505402735812118320663398932137441774074482165939173763681028942732944716721657427761117530364010425569488819773116809150821781683124098860938478415548451586242864370105252117237069606819081792027639907491600279983980916647893603765840150382800285621217688068519723162473632754101760860684042958829127374241051784111059424055084422094030692403570140684397708332881393144422839746354676581377269895896245797110713726346017290301622566617976021095971441906509534445433772099921176363403069394757143751419289462404516221126740618143054027848859472804233609340980832794312293817144753641231040977831893728548311803890571606807549830941034210354813198824248724816333786359977509814509649005822414492622699001594904343790978647054265986581660656499992677440508647083977867077074061661747488116529264591081599267043785324215246922061990828312219110873795070403569951208375366816917851153948491618700400565721585793874046800760547489861663711676581415755981291590126653003806567538017217119753498010984236537936851641282233104185689987596736958575024523770500204562738617191974697139221552123628753921022966069410252215316191138954717122750923134418431887718261194384624304486815204882068096289023071787261000143464793859675279424604827714916840730263119518358482326370920753290149531727063562537468781394863521510088701974416079637566881445414488821547151514404511816340411204148336511844782019440597347567943639022746160801082093070568569346697950858659876894712700164822565141434882341127598695387205111445255247557367724786539300155353937101100889792289910175821471883398772332246561200292156809243991981967926292394183460400240666153312263766607178340403733950416060653196427757215282762114653721445661281859349357539397501971069531492943593162441813111385716597393822244068181024301240271700349192035439631711083396827984070186655557296722576935025710471141785084010338460724677151041926144281076412881092483692164154495892144146250354722037609601239893518231991790184128477674907625625546080538366890209451505247970343478839869316926045495384175829617016001582979969873665610778966213477796899312768598458230402477573748649793538507154449480429902837116204989321523755118173041123161015332722783394642234596984101146048990907339520293610524155873698472052497922337782002190265748962781681998002136052766634172480550560750996626270802707345634140864278070120906882562264733851856433966411640893444792492129585553442769455286170467458773267340000959094477410145657614468813655796859638528599472936009564481492844570934078015909166444792235718898462528612953575827306202562941551241667481653388941928855456693124683934299732797770260732456411704429751748752916290828978572860490626723396324767925935695940116331770946364786645030046624878013335705047647111915652248861793263151604913435542901462439560839895475455370233965806059356879848406070412242602601577011998889329914479921833868030997674838141501961066677418965913520002217471031929726344175078510602525762762626000715673365229375122055031460440383673735774988685461704108758376444761282249720644821415524103129348510373365636087248890565655933263287538473926500080168574492534578672344277934697898634540955647472264808092408818454869521690134359936470972408188586047190667876010092281243192001146921125285573689306676986972086112045199293172391637054720758387332074892259071452762001985750114460698962256277059134832698891871727272603444645223544876196071828824105723946984560212801413967381628711184933151917425052199759521002294339225958774142291700487731185513604584250615622511309795045369791287422298025425225348414232038594410892749223292090583344830353499961736569591070762259626250232427986291431760477059064246642344481509491626345380278684533192767283125847011628837864123952357941361872557938116926836247516901730644301034394521158055345623891489267846354584204992681428137444334915449897704330493056234860325304009105209990134969302068287311172301995281496874730029000875008873085208595810319118315662442670003543273803030140274726652245675267252157170014691858275357017851051824781962405069337144961181805080057941379174970193246018008799506748889894915922854588976611939923949479502207613527905425284164995838497028121499071489323774434424078225126776686095341530826652611893490536490787104989786608731243547663019346278014609329922781495785195509839976300509979864154312145717787232561416075946868155913422625365348137457518013457684653875253082551070210532837441847165487892869560283439668495988582459495369479859648624054549409213632074359954311918059929136533177376369990068731869260308291155326551093458486070070987801113038389388955261666947843314118599402322037820497321518307291018187189871817156825391430739594560912155330110426248136122749206142981087011305162840172346643077140443836601463201746519007787353566743107512397754278499378937053093163315424507260913827842803486880125077816978100530052749690804694515332137342852714930839469669575307403846751502811887290054772086463318528650275743381153653196521235945328032518460399511622568784155140627865323068158428937426184290262055336203515866773169926164021840989433857336248589894550626680865960331134098117014833801971863104958440380641804197907837418375124435968488968211417384620088002611157290480089039121709408289012940349562073743666929451777497797075811444017924341784935688243226282684003546994524188131279688562695533685168402172557069469687949187466031622445328215752166027165066306488082771145574295460412067549266496523567534836492356800857894076889158185925622604000767023776649806114083237063421294668383539609753724241351053241665217605173193583466508963555378945735115651861084578844071090343023751537727865831888300700499238526583127777730947183067006969222733721027930908548546132239911214315599160266978463554321181496438645897586339070917397079325995642802423701773790067151920754106750250780660938498000839333909340776421576805307339727373044820235769794050534967059347584421487133364095288034718920579042561320113161441746232211516754544289419279509485525791762209208626097858748749577923810419430004840366115728605761961735289110837024065382858407533291119367347719921173939662014168491290077035188368459385916507218445093692221462909812766568688480132517036231047368425833218243232395039643023934351360781069733865121353618530605408134978141414359145088648338073587936510354537329486802502405750355347512221563278409167521964955609160735850679166130288580363400672651706211325887198573214569457095527169547427989897193780477778639798109187292282430980965429209746947204523810915342977167974695368493169907023624316656795204008849124615215341972453046345031797563573603639551453777698382213038542454777383436812128637417081998238567350360785152754316786566160645181653388760255116038830412565384284811293284063082099080265960953194642784092536844750359503326562912315966656446819050696677497705628031960110312242965464522372855251784124362951808626383786491988256452697425610120202795148927295405943798600584998439997759135738027819636491044123002302358623001361388026231344019536232124176871943803126216260084438298065176778851551145140082482692745487947490255396213414654248817688183551876504394181803666344388408398004990287135129571730650003096195916176639185543644430631542210685160260137741162867274977795663878996780079365971257359420170575183892057812715008455773973856623251912107763859483073180712132033288205266190792390949232540543002295034079212612820271728355857352315291561951193187964241049610185361934791685059182094538763415970312394786462745054979651042183691018651974426166788783050905930332488346352479240210261708441667605975178291168192243283570300260514188186040337897944536131944928549072837521939923529289298938090719258479566660076488810428251955254183212808853894341633862423361544718188350697481335995164756782529235551597906926023043292697885791018921178074953809500572809727876504750755575931985134483399423128575703415219969776429439243192425960580173855060306774133828705109439849428337684300883851541282363097626237949087361885311609491345656044852395861006585072255977186525286847739071357604435909573456405720480453707338058335270676645001510100207803860206827499111732380424594279466617048641346149230936552921962188606421290123546358165834120062027844030785889237016127112605611639875159254174728307079475956155462164595057487567350647699931494414914805560995521933578244706067653629232169653191337092808914765729093710875879828106693326278230997426014292278496075533653505881852071125820804625279309332163098341054928886110464635215662743803417174471807017833574990086276120212067692371913341534341411759088953401045008378917767560777220743651268335183420688583213144076044047160952675070075631996154976961165389105699454026796661435094049605318386940828230151182933648020639265144394699003525893514099809970299606477014063597129421107854673079018603873845349379158850546890624762157560993829189855815834476098799564639020028706347399471330159745416579904071579084768127304787546882040860459278210535674571677570680174597709155613856846109769622166565634245200116598344451427093941464405563209044959147560542463864407481757732738444492494568265128842371133364899622927689882482619877729293799789860259356728360364311925041631775268338961654510413589271528823067343807253661726560092260542561267958933589928566060875541944135257247913728285025309250203799668249045429485692272251958990981088437758046851272726139427550828504495474163783194581829941600848973652032977955653133260894026654222298431975317693586845199640946776660194887395366131787779041956529618864182067877063303608117781583082286893511137103839569242092605442707448970684741332218886572569604921469435543467474236139228285467805850307476861931106660573723470605677662328126397940965349176902448231118060863289275425600348900376487660473261400040046763882468720463461094326135574568091734122399641471418382786984055988119221385707984018645395598485166262345761865749993529459489898835746129899231398239685825869437488871245403895631852364198526946968504410264013086118257418889769838607390793650011075951967657535920773180016141395337800550949005990629626054623143551164753483558916845027627861378219938122026194624877239240931230872838056222853131737019724758177431553175922875682800321017826145838950298167012444325607381006569475622442949565784791096629084395163871908143847742002077574459981481268428392717244913500220418599837993715069609274608292748560308356720214913407955537795570481607992585888978174848167441519295809120075536180674718777588236166177354195920709459038324917891481549820852281567097438904075966521119272398791112860027544649181468411155161795743667755675931868334833022175867082592350099993254716084999752235892077074185306830082599604913733119115828010653388024016557557176657446197877649315333834549850000812053786982337378428118197881117490701895217868379260218093280621859934213292872224488589487943324121482318025601206940651711813638464479835207089643008043965842005646040619509262000835648032997403533425884792998240936966152800119340868008531109975079800191479468080191327073535245859205977171857911263942523171306864856503873133438158017258055367334368872705803574163697426299386202909195371988009556597120126889555355749506960010200486761527842957894566135498379391616612716441673692876122512454982533567273884740074859289720714270313397005809008210139083153497709450164533642689298158340758851536727183628749154320381213529582895824163396538719681593823127770844844902063822591451097061246362799973556466608455091463364515169840262637939148296222336267109150194504007949839708860840856970025812741786661487035711675273961684512070507085389279861048183529446269754444359069430746584730990283842249072946327966203132376895301859309841603371009034555756930720580017955491421211120058430308940290041261562397872163525430705631214908853860229419709600786992141033003329622308661777712083110367976866943698511617130074859057195229888513524515318929687189259758762848027562349102393904088404913665369075317812815099572168006142601383068708132650910483469186062967017868388425681998322838110760805855947527351930232713228328113069264229650004416506355118403110234546857881168360563018020831006684397979098192765246084498609382884527164731706568155713866703309912090992236042814588977509250088875607485171225957914486072065542537677239792748982369999360311247346836275779956864586779743245276218657751093109435389683870596916042604707681515681909569955478949907782471020358221377441303897301740297927471024929947365181143660786129355048459689468386955627270092406044018979049721771317012876845010761080677980579546418237439842965712856866793848356892885360695599339982752162428221785027801004650061736255074049951504533884125827303805499073862262196947067858100886597039910422294026627168450770598515568760659381197371485441195389785039236973496075949878684007488890757663097593130727271221510050051798812308611158089427099726244890917839535958884529157527891734828542946562695186012155686956437339930160231148482378786812942738957245648379723720351027993821605035544524143272108895792544772317968183074560437289657898405808455206433290019042341119369191472156722606987908901503994202814573763182492097820754413011775663738865581894151967751798710840381838625291803895459489795149530573304697043798214931153560788676237573090491537228128501938176553248976651567745613476012424802834935941850946940706641659039325817651852424906106753406831238176707456142389645902953100818803700663271505927273659587030416554291073949500043456943679606481492870360208057015424607418427683927676032147241829694063726234678122529879178521442532370640454004285742365429872027894807051791081033979343237817102501863814576066194508855940371509358283581845899049766388196356306399705962698001876134120430513146452220995386442333063063902515644563475292312254311082555007681538369104173641960053625551562568208964722550865601889673932979767107481799938586471220780787820800102282023800798720922003179985487282555552371538730214502853032855241648041623736700410005980469222406104047203986806789995160817652653431177114127444109012021659606196975133165216289678671368402052970555998456437849461980673631420162400457918023441357348295055101004832364406624514808559639740446384137001289233877618333847540433518412535296516461864310232036933395175218363998368102084683464717350843457188258191410841822788841874965119974920391938116563707582229501097826874683725078574842936269786893924194444220693505926538500586385495294632833585592468115946834411735973424521029050515326552167889039576081194765657860340305717088337805497774615685845929444726159233188206950617033726449874353039955781620971314798743069990993341205404590413094986564529165300220686408952374590867124924614027582880766176343881104634037645238187335680099716313257826164397462707244840867387165970612164819674281677339256096810825833290338375535497461805551665248875712994335251082805523544962035169542755795882289688014694661825003682340816378805836531777898469952895011578850576023457601326646103602771987703668678015118758540116320149291229185913758862259035248537599742714768480193028339257952946935636096047441204399286140767696158693230000828601457072018822322204776175578400353001841562272099144873371935742918347539334773993470164163188689418661835442226387410396792165279949131983258364933320263432680403577542126019925296419844750874511857021155675749514495427273321614380848416832459420968479516917792908611859232459013600650896969570760932687525464372994428528187802496905309550644142571980781722591944138340293408953140657971481845458609363706308801935292821734036376177519770704131359778724615729193297814546791005097155132598815465570692536982386617077341745716823366312741530165142731931330383507146410409855972177383843489256195152675089119878636871217263066427228360294004908777318664538064735732870210598728730558923451307879445151590336436116430531290160328865759263374529653536186480172593781255195075002571403102595829706547068286516827221290556803802216176146437938075969487638428091655507806174595754207460757635755975143530124491344719338780287197342322152186635851572924981688683741687242834599332722662906312264521675462149449642213023181466954780292118385174387120316656371135550355269695894962245158570809429078369791256437854686274688283378934322315906752640022985717244780190635056611992995059330294683080014538986393710211178716525676718339339652729677291162470214025650958042703718404731512229741077017145028310347390936226812348189827106993117115589119606831236383925099311240324006209939501955714711388303707250254959749158495657682001223683776680365045836525623233079752450763560849423461480614987718063420293880798192135922798838004197248116259229973364348447973983477041227425729236344830096920967643198529661579678048685442948937969280248624617786920806315202705481001779052254433664882170753420242956809846929776777178509875600579490127205301734236782067398369880708978500348132628624402097756618141224902512848053478805703493955289102787595725198887235026159192494008272048586588769345935403491089725749118392812539145315757880568781526054933561644902433211147395657090655691277470265293260265857999407299130048943576369731299593541534566262648718858172698542374088795077949918383477453819503132675692795783214545552493088166918916408090277813485730559472333465334771596476455821792165262811046706098419342586055010425651725738061268922735696723155270674782667178230554043808047272928244129037993182943434527525843781799235002405544412972137813351451956601495278374563886967059202448128833453820437965958577965518692934433595776514548770904741536373974691711724332841711666701452910161665735385366837856840872766324808031263658811404160678051431599559138547223853253773718603673634873328475834672695065774310929894419932709647415736137985706412717491082737595204913849395688106558857693040925457442220398888043175347937756141755884498426099861549045588850659530010306969778418576543627391004819839700063059285898087574001726681051305417974608624939123005754292003605925538712912714429708941158012322011784100485149374308134970403930557837706014868217587452305616226854416041286248811714493252441939843792499886395224382120358027480161917332711601772804722025908621369406157183891032506008612419105330026635430744577389141374460658584220437111391898321308816877264870811508833732891436656145650582218960771579591460179410536466667603973463306603836142627576894723066918744326198246143282935460484315196900101519117552194580195204471977376797785716094066569539839426376137899824511816697591275390024172701534542614214007816729231181882860611173024259429432113351826966860316234553287986779764877386929346634914931756263544238913815649718370925872086011308448183251453120757379428400059878328517353496492861209626657770690543296115372414165112051463959571640783452715713876494001818295413320598642983902091404037316953654541153871600596857459932465545543189814502115263167008482681932113785499655806407457147132033479516926095860124413753496067777092823597196757375730952394165122723151620617285631408248328894397543240266330026140574157923177749452033573325637715028180826665711343027354298793609843087213075618865202367162988053155680172668046925289783778538368176141913332227438588069915224201290762843254404481262268855824507694237367251209143839517197061429092240558826993661996528860994077366193160264671734497410130314969490454856927706639979712921356792958193111427866793464760366433170556543885357106835480768479292086947867421546450950554533876037641998561192709818843674748078917764329486101233534023117258315258162948678516298876891771524415490069086611220250140468003895941921353498807407933061344055831251148502513927038706559429687605222056447680938134970894112003670152310860461000902277733389165561210662228613734040716852052977501108617343744293226003615471102070602870325739278499718395968372573047019459692281381682429653591099743524681488686275408342859510340577869543395465961817896436639911725420462755439933850812173404245290855060166055759447420137693392543316529092210884694445393651521241337611467362330404430772418952431762239684482828489898729641578469352750385447183096580805599420806100644655607996689425098349247970095541255629554026413215573396698407793541133757992058343481236192833487431701756515366485658637043287093096648948842910708536808997553552956831226285833251829976786918768459901632503677005677059846215033372514142557227056141956867168059591788504489670506415585458662631080313984263442913065108466147188188721241261530832042781448771471788552448589556778137623351207219427770525367248534455557568372841444696225450082212547163507822482204340042180844717949484167341760567319111537456827703215437885660470969041502617063171030235539298963474572025467165312641222180746305016550644620220300491876634680621123084843769284353318661707576935015477515808107953727940694372701877116744822264190996643657277377418008403547484641369271663325439901694856520911778353999092674454624691020794027475747882105079058576850787282650250138262003599294095111014028704553331020078297643618877651639954823015860630189890569502965012341869270303197232892504532421956405804140939272732624172009016930583684543521700049804555770472713874423952310964764202334401858089417869356846821553690991561115447091290826543608180711624962731992424163240378190162357496910318716411608237944291109822532811141519705153620104250621581302648875026909625934205006498177759855055079502978481421895918622300062166284486475233454185474765154278506145154703886883828688000252442029244271730405651537997744700074357214468312111993166847889034715609852474638884859729856456315619478878432708794764815122608488922128186946229891401362286395735294394858280210335588259990915724487964331268794588448764161124084632554270680944966492823697484862790229400566913452483981480717731644682484693815834055093422995328845816122331913256759902936759583052362049191180538784154748113795800364293783980836817703298793759269567986090321649199965594970860165656102209802147581838853458606407258231163103607177380305107724488735905807541786318784781485234071146986224398410201161021061891077736837974890049928050948746957461074390124330366202675067888047502992858264461930056257569936507839984147635137857379793489866585669149197347704664288406208534497664631899619707847037017067468157996010588158703158625346047240173643123154545716925020208639604268242430438956528227252907599608802768619421141010832264679304673709522045937372854425205224405410099467324526957985535247581397091202665697973556655118809984091234969815484501363125206664692645718767793803354531868307459900069698370571355495319200668119331788066913445199099539531435714947814685916464555625629320206401216336983816836913206831866523734065056671858147458102888029220363353665281948016906318461305272880736786133685081606115018959486552763252010019827103545873673235107804492445632590664534208140094430558551138324708892033332914788393665281539936215386619376271527316908323218922877459952905139351556282901992557318814452904743421038990214634062207535996781084825829193436142110212862166278198255778992016989909025572662776609006059339346761987589568064496052847380312933762101534160614850988303369493640709064497687628595764707772403161215899392322282980471407734646062464613261677891858276895675233127610527089430766192528565554369612653069914213148518395036663964513102320468650751645527353817187489841755465865122365697670977982949985346676545495325012642001260333788561801620358766207879864333666279288986138021858555650506835224601414462380235187299423931417599110437181919149716565456428790516300541093218735026839817927056170701764610706954074749298338417923997033587188479189077716863313816601212463680832792059729357388119198554589418208242600293807846264380143281413798895477793666894891972677300830380378004305320969982286249734888600663394598853089538715658231222244547581638576533704865465680096503969840027835185157247471862785946747363716382818850248042565243267609872545187033696852348271171559473524781322608239308844154255743055384078541003610565983431785493518021751436256530992198697116877590588298301433994463974493231190181109027730058045868190830602355832964115430687289454363157170319966149004386588324850678930430540399998468669356769403220964123006681910726712451869636415956490250615229554999564910950964653816445685642412969655103521145895089185877443192731494659267502024450392165663941720081531391667281442386865571152949349755382148526895841370382467146553229943907753117633173977928329033539631803503462795734178284663974301454598568401945748457852921438538370133947907104575334736068379249403484461879797023398498153265223794533831309114431929323550136346251281991112377464085918436844593346774426816855375240325856236322081577483614177211331547452827657668080615786998618718159499674109867237769557066236139456828510767636969968300170987096493241269570896849168630912339731099318357321969107540391153015928354516865564142768603982295595045648001595249667628289364030058379600865890644719161390432322766566923222461227966711322485386974312110542673325479671649481434397500038510447482749043631911195210852255189022342908276813301869997562520947313905506607369148105992111005131890385038520945698437811293401434225577887781406902032271317079154492422489339197012207973154238965065172327542898320779321137666764505353995022155561814475448027246286539643625240616397901096868993809397832710450282809788378878543948810577143427628907192392450358483928999515155789963809073621497315939313946812891598266019044993644089047842122949352181891632810178820320655387622570928842069521875176487828637137111590195840671723712000482730004551124350011025898864874696468929035820340703362415254483534063490921929042844923039627216263610946389319094598077393151728816319876061767741885300669973318937766243198611522294629400342544198022921366664007911932230689477821023296280579104930015961184591520441093915971596684201657237705129761528898530740158600317207004761372263903819666910307136589467924596693878498737550542566090838371082955533215723486528976143427160102797468997317331610659191741495542076147297249397698879989295915137141938494649951690387717876397618246944797609603892965180933441164370738866584114064000730351629218090130792171513172078160664130852249370903733676095104657349344306977628723826047983675133456571453523578073631095073777731424339558545822178729899086005846077606191722617343235895561456541175086241871979689521144367891088132924134179419371821309654932337266291431389822092956291321200229404147948618991663892817704318018914406547070726249262012931899795297695680810891035236713367244015825771525018868185414029699600372733759940618026886436350761501427772235533957066860648675963743350579497883981569587710643979243993098787254613768164285631809091354874069503208672930916291279134948640973199997319290821938141354288899063880086149599925839697506316692524518805735640338671072373700746086018883548661448607785483194645640042609973770463531163086463961102491936682462999424795978484828921369804707458131905917694875361965593125522139029539932038099084796718037817370930077947457734704626510707717806433706160658367648091019544180489249110204119852055842752949210638845018062616953121152951501294610893908509328912509592324240248180019118556881582332560263228134638144522255401813204033768657753976408113446558485250923620851548888473021719294135243091858974764951665171862924665850177166857529342704550890410566907019834523526168148090169027498824895386148047415944493693532940523062055318078210305388092017035102909058945831860951007692382462489890245151263714914995973405037771614860382571073629470763010885753278403209115892251500510857902942968136423724297881308771396323287875068173735226517470402481016089385825166852042805482834846794111644580259718879222356925018541744074043132787539205340338413653528529778152306513531282992162719146164392399302570131799064826559488914929019120542478839546598513015980272573439331627696081180816957372150919604441653347881557153393692847137503007779534435396304202073910179742243320138030442901859042507396785614051928960775384160495674738996035979555204795422798190838136668121666446596750212136735435715185678789560411880910039963091427219125847909554985661521991538676874910219795711260083718972576458789480913374546707580059147233060145453405535418155499839623455882761657167067263705181490489759904850024833821862494096873143681557193901646431183709693562616821693576712825679028800478224570769416808807670009101748230399245577196492291312963266973203064560932851479087319314477484385695782568151703095352216847203286012738495155074136926715774993294918360223638577667084253599564642853764983253736206870088596155234641835266820205897585273223334611139645440653176957237991734567441210941612122299619481438543008842370384752030129045145649671792308651509561647739108963964455859595749260468355044021986373354045057235141510858768483396135807495136466484150062599735923503995453475636017376274728850057394041588876730987206137047151978483155030241679500174151796676577590522373114898979479817593326732804366618951202715102642897595142298318160331930568892141571276752984657034872254424626661631713041401672145407255638788357982346921564278597311083970503758582216056515286835354129531820176721376991910024199269969310806775881905370404499346897049069564637266945120177099736030637751185819518179932175860120957134219720066596198567630911356285300148926102383546893827969402630811987497475300087909375675446039521606666588353030584449435202423353839207475099443793744483978655711513418249570873194379522615858331597943411088566524760307115872673872692602074261503529717659025550804535430648003444681067847877786106739780563319424907646405840573104626178488878133853383849012434372610557632399948040150562573504478684057859346021552996536599637141948747855774987266102193243121079602703659436961641834659967354277287662434159620128283106589678846405131193944489392457801451852628406692657740908418604989397012068851446817552296624093118771821687260056049238846842267019661322714223806328669512693099846846838528355828262424971439964913842571233210148243408197421752630074524593749923531683306475545909374217195003527715339495047672643622038844797108338814058014192047842566873257148141770088376696657494620428272154861727486733486436727048502423386540029971425542671070772673216166780829742353940157232729677397203072974285851420397619606705882201538192339830618105950570219634671601093502050632561323258247091591953136683396759002325962799846688402741182225364206777039413763275090159928795756255780820329487172553787716907474485107326604504638708901319052361948367011971983472982612352300574247241493279991246543373337713098314532499614346433770481070792590458856034731939629812755986228882857981530823522936632785455965096057757212992695957138830760281105439678200699579104355155255445980967976128218863312628295541078046715546448196697240563568695212079948462240962771459834280220517014772305250804253880389558437967083515481886148825394538214479172316323590034469051790176640876683284645379612805764279442803732506178332390642148922631907311172482788796018143167194111139206912811395692985479543883203739787868451757526254745628601198951079182049682180788752903945816464831093354384076111073696317341033825897173476090997316161835827161174272312557966740971529692146048848543881615677120744291645054201980151901569284870597298290730015262064523058671891083907452570548859275065340318374473921245736610853996773877047968518792633838822868788464102501630990927627096406839467701865916960826917829762241638906275003321286559854867790068858208430315933707013964125796251291162267173993731100253996079849825675921856216991226146254609243694352178591914677568484165121394474719743134861145161377709283993629073466196246430077070598038717260517339807497229398517226482734637585723534945399127640110436551955926290447063372859005061464153035862714214097355916990116294542560563407582935496625743939942980428640888789294981793709582253530507336708297094824489097781217609561655213516113914026659004415464809463314514902793320461361664509563828410764994465039250958380394833013886554052418037530958714765456870208018607319511581387234945741497959887169239275437684945664172407900826966996992394929765033728801281396265341918005285311933256940320334078893449963318100476153928336499545443234582625894466162822773623070558896261097246802241878591350415037660409579720837819342329039104591325134703931383790148400280738988439878786101721506736383745183825113993755500948218761181959232344059116174812927936565423388570894906441624209860559250149309393950498470707648425416523523386613607516848348537885262937863712263963273055302119944111327283404118636996299674511650342572027681564724612200248937216669674523256572725001495744787969342990267614157492340832627830918549479306893063385365566855283293726314022055030213856063241523301442091244579165124369736386448980836735758202731449833496111127152725184698119768167166607867058330975291866019340815767579937902531470519279949226740197609681642898772372165557025145769581228832047160859369855273423129720167743343957164746882880330678747546266807378597012155000379534049609279870909779946062744838182280356045862306681577723694975363592810971431240546642238289745857320410314680244928817519289345814175164938926916616603998079298131641947539383027550273625485989107719588414232736010409179681182074989955804300638540802178942766753948043131630619371721445708733587824222915133229252535409891173986131058685010449043018793009298191308661723627736649875161539807221743492398083736507997399045342664621304292664040009990657962134556096741574054614832227750477636748343208513423068395459268169731830300295276021252761197143837177458420595930671851094824233864292139962266852810667452633163938781989376603319979944285544587027729549705627412493946591126140526777340905218027706807862165704865759405619303906585778139002292705165074454841134224104497245431187976528357418279795145697327373712908048489073417402548830387984901829218305680298870468194565021677480892264082635948678435811712632712680403565668798029152015116670437301000856458196355172577820308834602207441758463438046689319102805462772718454444782293678362204680407016434729866369389548358217307496951514902615765816966887497113456307892156131382378917170567815393649842990141440542485573535968012697902084499914002131303892434457843653916916874173712273531478107555546615593661634641910486636860615954598031391180856106668253738138556376006179147096659128301011703311182568828384229010510905732356559664584918618766687032629665590049895667033718250720151359400826525159202477062912421341364592774799352165826899474144511667778576095424032524362734143933589060129420718970060186590418280419778745643071158566154455763697218223394035279422908426309795964840494986372160084475005938788923237944691702874147441133748588986534180670692186150293284117595513085663162544210215809859548032245497308432269641021584795358805402363720122030435706110275392212982293786558623524723796232313823715142812024757880708032944243277329610459100537332800297898655950704192143755373131728029663202622404985291138522138852945600194007777433539792949853046968930889877613308919717527983718145223018091501662642302892767338833718317019799938052116717835572631347860326118089316519420597168146863700193991754591005511385140868444582152431777086639394904908681303664074010988156653601791639179968325157417964755377028324129900661017295829158091616732161973773400101523583897844683366797110515221443548070035245193972022334004976887219363869894887215594473376423099669009305206697651949422622482786620980711848744232824027763794225806227975190918869432496369470064761679191826952963380919521493057346028334295908748797636368163969330557075668495147493702555417902603909998808831138734358356215474034335250925492487508805416640282766823113951027343153921851802869615378443397077850936390863366147683587306128956772182129109612315894621548301604656309565789523716327280019226281549125002650880375655596569315956586224140652499126519209643258624264283122794157901835808597912118379979609805211788777254190350481137589562123323243353908189990081274049338942323334617415228442813986724983571265634719761688182813742329802118799519497219593291515930229979582297605783145569779072475920358731118956259387371889911355862364597680093697508615121314220046600883265900916883814128009479714143707427326384740419708260012136773446900280926453563971470782939601555664291785693851414339529851341463775239607638112900249436580502202649429611792153248094258934844646667701177391306142400103872252023982854220176783328364379883361332059740908790043130018905524668257654904732206455351796486543995642647114856468052404947625716898496825226629305991157431965922396825363782246417883134724979306531926354055707969089151759806717794039469936520375236404137974816073091034628935404830238011237785477845332412450129917170701259016303376259632763592051476271821214352918201659160931136827099440954948970720607980420698237134469535921783423278955207926019408713599138568785943558572089317312625604593687858526119755458479063044532723631793738178099444997911291090813489786257490031794453768859833719943166659387137611184931076975007355841152729616083504628326864755247056007484035890781955016977603781457830452686931741039115288789479297387998669329548374474198109852704556727522882744316061620505202611736776945718654708554142581409800393357350366663081195343749049353402719915237897675277818061215244292519516638806528656152502015674688560954362211817309843878035060580232604175596315900516855779056805286115756720564292901244748514198753169232369369811091529135790781069557275458262117003172337382136221378559346489237704525501230606039997479435431330972600436448961605056968000028548584743209121655420852658208483610515265209611881876341318680504159148910152466953766585970916695928693108822144395222877628858791713609541017150806218064195816896562578709190548664855532024394099022846267659183586726016937823020984809488348178235479750776603857134012329617745427288085602785834223584551118472595769054308737670715367471359528185443972946308208196846729208936195423697241678539009558275677949019837771279828056002819005148339994952994340318042249684506254303439439097537670926164246012669355119402288663259566928121470451879356346329481777103895034537056293234306236709049886136160860575125962818859711762622564315072999316238065184268523500630056535851751937931619624312085355176070545921277744908298229350115402205961020914111336664395613760144086283638658324997414184860988848080320555639083778792477804409742924463199812365323107384657637161528719372569860313947922819026451951945850147989400215794040253312891093669031219858792977218011260717928139894498901953444928999794153313975966734778101637336828287113913862873172753799053774224792780351324100093578111761205204562270700028609001239254114028153285820389925768437731981832315233006063121175320901693410601097718583780177403586755650365704028166428879443848348785248791192098986124055901471620772389641078419660178902155407389305795024729086371133551737210717831381654116828564362581992802481626132646790033149414990662261559946468470715405583896197826451902187270460349083169414632679659873769870113928308969165553970845122755941692116578437661452418724136638849909485383517748555509951740209353860026582235250591129227367069697104995204418738882572655848147749285586465920431833034156110002448537892133069311180940523752198547259046020354525331355310694510522160838638387400407544590510454485217544910411620510040490099598310632778769519738606363833572901707898377424591078668079719495015518426980129722890425676205992245864490842137299089423776107865004448362477807737191828525263419706667410329174098108297186532815292632958076507891377170970938509363956314411170471111883305828054971008091849281949172815920896983687435441701578311295298119593601238740744810691063927387121723285428489046904907359840533052849006504937281668275108324385080923069972061587555046215113046775109668656261025279134645500618048213365248738393472688390957876851728998906751879559085919157176603459336844623400020416358686794927635821044219887682775287944256644689344957169338345933825413309094395059051403914918918609479391525132839412320912396587401734351252512757486804205569075318544534161362674451580256170849461695070870386121473740197321806857053411715257393960526788221982739617107845100617685245668077810377666259516228423030823544432377656285955414974127371772812917304944037673638180118577756819513138436184886195306522136841668225716473251212817838278800796196892557781008164275833086245546699299352551314629779163075512127039593082885159616204763261196341859486882534559145363662141810098367090567050880356210613143503921404520303453930099984952087579326924937709571862790858715976485811081637123314810108498099117433231826750442706051412584693272800606762669079734331114899703102634432242941202147091317857938327428784636470621341531177828239303575703145195904119113826351468642888297348206888872545361262391692912876739790453152233130040104102048223061809090881086131954368862916347118922766049088557136730142219371117946660991693799914990413266954704523998939776006793354852342028544480615963910917144228358200147708345293483771641471774294243846057370067075344579431713458551441894726725960262247144891009104816889418796035810275500520731716860537074783997164502560438594147869930123072403539039057264164884150924440184743598508244216819273594646635895329826078195591032725506560398758788859827445999281026312298390308000772761083418851842976828369342287894092126311674445078967917651919588123906943382567043036190145412732073650641135428413098598550605738193280333692710938824261811107112495261318880242034322622038522876421661145214008590065947948278993786092014612743192143548963329071497721151841323022018135643307399167996186835551825777811566413553796387441777771192899828158678782343038831299667261955531590269214874035103335948804162327410286869045873501760261508849041181079580611436292136496462685355324139270195451319681697658930429322474953580992013101563515248225905088898855461137510600522703606595871740160935557747632596487346633584005877303901282048501863935025626533637799080823166258770989318295010305851047194163599571413792411058692231800342465580945304372447401973391574959972682761305474849994914879946911405116207028086558504726046943523935307307065362754375810948846332292930167479797301384987211148149396240552732520777949087432132975955149228514069876879807771846651552460386856160999649516128859157411994324473893182294180154836961468316326323688436111479272398895440749389999062620349838181043405494645571617421949941173381804128658958262473564865316536132455207949035084725386831767466345194863397536177786988259507488063492369623299031816922610897323590650415114165968532830830320058086247340922546291635933002920681787626603643536106750886201794302824716231219364130072292948284864421499683904723734933014417711020908611682347988402890439974897266055529549304011491232748822747252998828094440857984307944903779944271954034894522487826582723862798553899353980399253953506765801029854494249965100991846768514842429757167403137061503422956543697803996851524136384486042606019198906498814640852408440062493431705644471933119571081886149321966358894529801832989574738088116463477598145571495941855622924602634147716217984355017278124385570245785606991451799211305280626030675325158231381803047663840960268331675204254667065436589713785892928184166200074797062443646364512957900493906507821544343481075682081245503695157557699380638585615910777100995230352290649187130344632722172896299635961048774809676105681106261887542713881501155654668594552567103433058873500007732331147613569610407191997513140039562823679073305401782485020834410210193390844603654576181819969409431563752097835669429558302713551518629992375672793903874651346660995810293879286890662935983323896109891517708773849118682393563240496167825990772057491053069529367068823615405035567162531895585367238200857287860438233801510669836850677445944361365805799253708968388114913942138220227990816778648164956447541647032948336071473004617406521971620311594331611860042100397696782687046435414968967044263607325195833944316994751160598134494638693869738867496672318213581644334937453017318469393486103819758678654672015172494883058892365379968557491004618160772720619286257117824450540690579335828787865865300798300110958629591578325760401126431761859711374922218984520099456482258430450218216146011119328177099569980520370424060471978054142261600215414050938606766954968085202993560704841196985002078230600528479979790469756944037116149116061784894036303207161820835200478371825059004650458357309778388378301001910722763662115102154608011669983776267209307023407160055121861415046045661830240219111725714250698417782902888796618946399260512565498626775431470401361225194718233492585485565332774975726967990157577120746075761354575836869560181765547379526615815814353597592793003604118960832562773378142483646111913014746380219522973897655823334692985233156029115730619392538771070700687278896050817884754280995755881763601128402975171252726118115906857296432776561868046700573260106741120295729188175324450803153048260166413077287254537602706365921970412189443466762680714854214385628048435474544611852450625464253741552549785157496976529901614858906369579967989983219107004873763482766661076403545288837538702325037794968646843275220679884717013737674795396952901158576796089691745997342346602431401874114047009728564869676551544810927922317123335588023284730547856181549873726944639290332697185650712539904547067766011349705779043422222933544998526264733296571731152641350026666863439518268684843656852179996968751223001782886263667509608947002824425834756646995760037065310442037396224810367512850822104796053597139365766840003658812823483249741014326644264566664703869630405272961420983817970447342650723694683821077672810156575597421211817276520686002932007293260741766630111783784701998985027325632677168389562445959950315823666050882715378271597060384194818233794846242471398474624610101214332030709111043773170414013001878494002180353079252666100242782919440456115901589369382183983406641915692517502249933105444237948414484638802586198104126465855052253055274664872066496839524038604138356306120613211779931770623546418606515539717874693594061907287124032641345200567742252918100942889768269029251199724702678965169801504953263091099762982846605992666295041144430165235132124031948251282616233701693042737870659640109258878159063348806374970264742636375436858750384976284453943266605116925404428745122846482187162325516225425962820132554044620985246783432647328265782413238939149153824763322732331830875412060677107405015546244306761490353573744309366533301551999540016316200074843266568861878148324539976703123152125531860259330069654893727892389062721451310588521442983389161718924160030492445135351550329376555888937042483722753251158261895171366842469449282994460403069393540145249367719285878455095924365706064458839121101475153362650208065979503147655734060971159235471399947444079727129109405110951836996249003668367040280245936513785646902478474354695504266036725954096871190575757582134929960111398803120485550277534485387233107546917368230485431810351996824514297843133566730430058811641770316866514368997209228682056416373047151383486231134214447264838303953187630676117244547723240007558458781431445164173186727315415337103095327861634621052841419951803928108742223309052757949847277846988130740857814918678514648871689506795746289184409853648170735754174414802874054634495048494645961598012462745094567597977430204066996052004997876871496109625733055899377941871509589822849239553509734984866868169432063691718966970736235284092400841552681746501748166636553023723195697435784200740967616195044362590528824817307720213276730965687518635808556900399284170764042444175212944858600927284168552789346164769526994187012871512332947776634945940977071143251176964937742369768802384957342514492807170782887474483616422519147554261005803514115070286887546323706124970166922064173757135693563808268995304720133314475686610316909353099060737881451073346495278701030211630630895747856105696284825353879713177973970647247421320575545112109218506285195189674804502151387481306606259027295922922631499268814562008707662819370866972212732819926031240897822939505083052169449419933528423227847367705139198528083812677364612354669700722065414054838741533472783655484682299657360635362483433687671006286931704570378650302812044983130525542034624247556923215720907632033778108717360156839436632095011909743778976477963565017322253236528359424351047581070498996480757755795654215873444323124094222175800737887044427728168845084157806935260641159500878800530515524957109792537745641692884793599801114252015605756567174396069372553079380135981792252210262926215040182034040421998139364898201845511754871353492547618183553543311258311728353846269694564432857870572035715101158735900914100860383953103163447662650532943592797399489665700052716618134644662150454785446574429017752163752952567583085951377185703635107645890941597472975682984007886475849568995918046444271504016960010516312243618715558801572258322529218794833876760741844638304857688068820414346796812629701075064874371864154761799631620812640911266764653980225618622941022053728492510244566282124372229931553474159234345024495276788725992849517499090527417800755538516651967768191877807164367182559921703731502743607602586329459455507775412963019076569958404014463405191726420498272034233439809500498890844195073854650827557143810807777113158809960413931018947678339471543545389941727408508994926893023493194474970221420377913726636664025779274894512147080984907209589620542547892112549137353002736507522222128013254170957025193370391380310291687266504396656709357124432188838754325944718459303773669624108942521279148332245569770241045249608953341969269487417559733889130014271750813251914150910649775079736869851861741262648835775742873632444403171152167893733941430582506918641925248493821615418700383151357784468213560348081928041007414476492871538241521536875829237314814384421648472974086140073541037130125536028536560372237029292979036141909235764978266112033421110291381003469642683485466239392586320907122318144959005681936402379913636309965688764555574143167117397563415827529719222186479456583031933902602582401903049204884430916860959177482611171920647158701325701363905739332934915705568950848134087959985352623961298287873170270187237894924584152473298151327503546815420714972491639225821796257261439113762641959416346726432906450534720703567923099039022670414256563013813617752149024349675706761096634094571224757122577855143921942244399171528235616645713415948167224700969030906956566941453436893510651209759129887547176573857954081727785502875343997202350591748409181254976562601971582091882417095982997566718164000155404950215964281807498696552051247022849479792783835059713183234328034130825252770557993022690837907856662271219387384189948718451823041120908331009551308955835002853306475518393950971331020049751429280192519720302110624192437438760076895712137024388600886102743844834436021461837162110990554434586103515298691776777942108567152878845814830641481700618143192882110675021251248365199556892123378401974495481988846477836790858039455071259026097859083676213245891320456330733814816489195036740116575794874578250184602641764134834803288546501820459869610653015426768192727527679556405022631381882625432151563741229077805262729589686785573860739380903756581583231003963190788567333013863873451226541625333641053836235900477764382068794582270933251188232123291896489224406440297489676008563906996475890437446244917261679778144060282000301564388571336574829373685682803391858370933877530363384828783420047514715259411603051294389162409383672531822332325907165781713855202932056405861161826039670692998917673205400161771334139540161914461363977652585108225580877849570856056514013978555509823214527902279876180278216251604950712123101807646760407298541274132209656437600950716498344054625352841636377563486277098517384419336713791751543095748833417487747305202745796206961212201472238245835192906315057413277544791577592283861664907759363742793227630634482466991770995643336043910909820343370410217887231903097690383729572064832492069236291712439312811139664855562917561297193982031752377243240387284803272709001471302304006890441880609020834885796178472599639825083470358559567894608003400530804613435967698364916416958497847120488695491352639086029196385829407329160384218462168068653805007817694402960214730851722007733033418376441086853061991084896189056179147501177443110287393131908281104205197105946787307713233876953103911253218233781981048013880128290244613523165204838153101083780786948945197656687163737553255483915903170869521284541116914954704855150188358472525263117860119394184951959059652871775067967847237913769766837320845523079306286447454795209053439604853561895610749183644213315648461814515367459558125756338567710470869455609816789615594048293452009698497398249576877216402439330730710950964806205438322354046891730368597539470130048336299604607608465370899339082450333248518377816196545443369342334433075934225508893802539649650295893995757966610322967538968262635334207163083747588279828798505697732038175747851251858135229908884361897183121563598542854222471298786395811318666454548625300665132918851047646924418522392270366391369908442055015671304456921409939231224858822750241725881934754632972730532547602914048450648128403466186686146520836142511216609353444737126802226600711269227435379193416281840963740054334398702076932211807202427080165404104084715334651175831458434827858771405596102007571832072242346149155541277588928459784217069869557748993747266350521809662254416763048873348998379561491537920169215358426924857037830430058741236068853455808756714744994835202889830969031142153805580147239456754307424098320339708149021325448256391008076935037407710351445739373636045053657270544456228635646725237316329143948119934633691096441873788825748518475593204873500700384915442964263793127813513064032888368582631069638002194059802231708321043645002737689532164603833523445931035229686299195064611995060219659920003095735284142029329735874275970194289417699359765386569538618110805861991920728521942858487484133003299013226422922282751707546829075012115098219114967608822130142123441243117926431767874346426739786044748171526340828532056254422637007018015713203529717188166470273678829600119100189669172392075060520772521544350690816822381088682443417420398182228069815234959955348249264185585450105422777703909638354558784663789202552277715630874063823348697145498732856872233605669035807829191650933112278142297131181636362525158704131488511423441053818103797805324471929802762835843793995888576530759071223566365118403863658285930134074209023987817274447555083183906518198227433896165144328789988917818196139349754665558763847214640424732624993924797142174592789670637493968064493480767544516847525663575203607475354362919289183724428847248354996436275968351780660727877090738803698252165962947923705517717677160459445642042128135256917796847459573639411460145556023321820450213336721281235343904141683222715119870597975991061414266090212484401694683800258438368990842578280488326400640613894095768201751771187909366370558323417318227697893176463730437364670052442972281459493992251344923612209533024545074372518659407159428246804933984456121530927574386179654252696014497997355383314777476064899271789831294707700319693130099669099420228313202556584290112560192515379563575683485996407421736235438131044221892781829633911649721310783057714196862803415874170992698648529417731022908336890133391823682170373918431973176957246179968228646521812998372030443820855157129886103727600521113192101141546691333314912368585416849197431074627121488930959998666844534783947440090926269860424922730890072726036104469156239716532169986705174415912604655727094670856187183772869606641464810034977821633187865480529623141648648271334118492164797597966608131403235207673921203108277329235528543309306413867709030749310052664944089972720152252463802387361765632643717226149908706325618608313893213689550796943167194778250828105939268108763958658319604642848745875122513880722804522999157656970986710200117379492694008941582066768774675150854373319424122138495622795996747203684229397388661022682562523943818114023861277454621684341003238519208598010829237708516469512794551620451196787788884785427001629235103407531174702541438000728694953803035023167426015838665528251330630033143038294223108405533350699207517688763506600691845743547171938608368748346084047854979888820768392750016912066727705340692572361842302743222436576493630154711860382536834375726427542775206002420879990026578919116804730779677418957870321058404455721188968106706215735214294227093077720977951018749509703283171440739565416036705314436550203710863560882606545932096190883308609665852103359593183442075905346783624987552615574269758072522052673495623278842371984167196243347144465212882491829059898569642966840740937403597188133903856194745773946805600776944587424359049315234717617090065412213745409791201105236739007968688364869013192577864302144424208960530635340942392866938894786926644390322293254516779564130692692645314547876004374319193507793523804914939996830670343824698557272528135214136577727496666079167055595069770469187020748563722451253464651242708751063094105052802005355316359836062927229049534852867596316226944947854347969352791892758631077940588886341301280903594895164850615797802854183259272484190874020234847390699846269923052937894935435520249642150602619083271319692124959261107152722321037504837869662437789260782886006971003208428654784269223117303473048746188424371274957734189280722581051396449502127901529503517692398477915025578906080121413743529414359558555764803699509129573540301802522235953968753065534085321493264552615590227817604938112123665609285117155229849135426530520625355919601469896459510153778275834481058207574690561840289863759611441672885662777077506332033377913967148363009706226478894057730108824658063865575614705783388525340714187906797735752496773674770720501931193089655484970623242565054999700111018608262253441715794012214233700177331248505937042357156216474022196061497029663037780054555000216318620883891768099631332939082018749031957895114210226339605117213575749220086666623530307679888764992193923894735683299715463169642633540633698670262097356281156776119318328443949984425424192069823995406873424751976397230737202807780675154227171036616552321591687746313249296681405638021589962978928521869405307616068024374921486946740629051497190067947034442594882411637176221265149207903987631817088780259643156173000415811794927299557270210471615193759823830902775553055022507391036216677959880390092926035725823329024519094716810621118202488519302761286927000936537384811876530414416262706042907145669279029224674920952595178943864693898340885116158596713920809004558008018195240145569787079558502931046271223134588398082682296446239094332278734936290452660029938911082601439346643091313461168761829621460176562527650955353778829719406625212799945594120239718117167275703877490180950962419164636984267042852488931556878101052682774847981085475221496911318120829734473495090552347097860474522595154837632442798219596056882163365123969872783187473590403708653962008124729974710064975645633366799522436101460655610449144799585743597363125177195676947995444761297306782299875331274437612460430495366024676374944893639803042329698667941052358385451317826273811399443461828222965848837733055019422756155979706634886283745619943023953996983304741104024351142964921557904885552250136635330305626027438092586159764364651405922347042233599905971513600815758013395255183255388287562649354530491915957700860447882440654638156309762096020513873880001557886214061632477924580441566436744831328812481772338841245612500274105471124708144614117035727744933761042832780647624958007682495791410531874955036372196198855323953040798581135299264384953978779012045083720213217560906068819569574854318161114191301493237065000862541994691408739887156966614342867755290844452100477431521104058984518335951397155772521972790165875875024606784985757194340456440637355595282581140101639594010724501416290593096998614973203080959073094995148577594027770292614071610450075530304963212802515538021465126549867752344935301395113627289992931930411960845189769109077551565207636291506229276170126433688263198236824536838490955438173179349562602041735867875720013520820557649500319801198547495551263789295576905585345931649768649899748540074450717063296734934999900768711244235498302831343725615901961768646605708066683471829777567760721668103321617981443148566944454208109672038243563592323311993672643734491002226942199922867413068678246348530951665423847598375691718291116133124866683117820294226742751754956595158227363356040025167120129048800843593480674166660358534656242270003285071905216463029890601743945984346739684416627785709560170186123211117054246454792990850108790703481796862586133902088486964227561034710109450541003671126956009799844043874291403038407212749309294784183652621002049688037945786113740243893383212761816887705810010591420112953980000018203358636260579098457893679224035033452923058535816347952204384066965907091008545823857916949041939463462096614745006223209762429428607322761315733120022703707508516348932878210740055646960311731575109343197179308806832730758637935923836146901407578697912934470876987322853219671366877273799147781972473018732449338606447958342045235921901530593555291750478868572334036288103367166157189724767831305833782048673919008748669369938504175933636336643508085796399301058693764617715190667547215949075515993132193760859533085464899184780842628710399269273605216686081468739585502491659978538491052852831413473917811882344008707071915807938991919457601278354659325425008276766113575388849646014926556419460480116898215869187534458457546307188352672040189690876129331007049962321021695180581925322949827730789321663582486038390981563531255927480917134589422659145762163586591714944146286444773979307536442830990303709423496384670085279330708607879506317695652175106780674745346421445982531320645409246110347684083673462053046926872473942983505323822634134395138434235317450243611873492729086720928499575945924204594188748309642145521010020348747689904583820515092022099647741745132466721380635362728065206437269806804129082414528944793249160987976926740239900147961640490555347935517817364117246786847400596583969205312398274879974859626212860488996974506607884061434997930690374083215083505060269116523227212277692184560593501803934127076593075178082600941353367290064345184545109046969135881232461578572231910439944789493726702181110515036844713541774087973622342740694570722206684361414183629338719298436909317245824031885345846692117479972792559531994990632737229627260396355971381400507631990197937834367306800067488806782004487696435311512186580830986155252048905638767198898109862441843862111111630934841797974276491455101049573466245948040135384078728180881050354693443740841180457960158190169614040165061967691907875829777130874808262148566654375032324477832755578618473776682986665095834299325477249267786185720547567893238314122883546268898448604799122096762981440805677593088922325106737871308268085060488497830417857099004697215601567357255566285489652754429423022089660133153332054925043357096386240347880720467385256725933830520281296870516725135958108486471277596114911586753562101156371534811019001006348369139203821641542673345058131327492033734401598321342902957541046158030281613169560985644699319769149616917233375414509188682047829426676727321611757133358335392885939540302964043832731447809713122553820586780995358328074966393902961381090457886661515358455250478286360988824336770814206497040774268996164324829636999839096353050096517580418400565163201817872274736048300155820022565067133023361442774848784565498370491197431424711189574583024470476530441737247895826713909349332526088829790832764532475817988958957729095443912216766032311988723941667891263484911742565414485185511563362466637398642743412808583769992380684931368200045770744170195399264519948766911186357639361008099562927611561827774269135079982823324464831502598029445262178211381954283646482027394262411778753874856350219279185094416525541954084908343437439501667956659446803889248522673782523084226828231670734221004835980693726426924916251627213319256423599007155857656958357702364848039438301763337087220430052993899148691289410915156762115916187362905811266361749362581325878506991441527533424365291968140562683480035175926972930345326595466128324318149698679174643281470503603075512855550514063782744138733887179812921840250789228764692057644859595577596210987600433977017198742901552660259828633652029120265290177072227896535494307759817328773590990619376127505993515885176173753638043646483973937656512524222703755651491582679725820854332471648573692507779126628770146474986605342290961148724461001242663034221118370956916316289592592676566281981683859163907357872519951965807562624149013827087401935585774499536306989970578894399494713646661458688416581988728485344466698945025801806648597041456461233008647573709214076953527194578982731140557910340196201396615474756786904326514521878692277783650337666166029572176674677338624669170807672495444369852057789989136924181845212634050249315393342053867074522755672076081635365570152878991450174172180961646366276590212196853009525764451686410836759541601632682452110427139279112526059029789523989602471713091419892085414188090476024854070251485275373410962309482820182710009720079199408123659816713975151769196017557381442892508088848058209815971100273599381585700776890171255149175850791948444517133859779157431997062217146881940684882162150956539704724245949343070331293685590283939429828568568303634772217875138335105972367970550129772013437789065117577626512101299126966976068046830582227830160835855506523414810495834177640624426516512043177505469490570211970538194934268759797737615097006816513190772002304597562207798296986862031385864447186390999698699920052318290722910438651756551617686863831905471798945053582592472830896761517503360851523406628153550575433934007994436928031279081489104679168385227881078816625794020962200598565154282136973746943668622792150148799087514906876862653652663439883874067269345712847481783114957405092602025007532878274433218702668536841631558551828940266475537862328897603429522522327090804543554321486713724697909149723870804040671321179420561262645314541862740263386513051065413804606436884319542152564520304781055270899146585802537345649753774509058090013164175453957866121036684509592787958455666477679169675566736900332931106416610663452650536114671687303612350340683538937971650085154488223969938981510995666729207587059868753415240155092463308949650897814867505892007124325635204265358466606690593298780536346028483159538338577098308508996030599543895706956456532491188746531032952417296316894830302899707955165369984138844780447893215383755118001722367529543726878177107426830314034659972081897028118510088918649365371541841933374233720255059510856205800579938332881601957671413491759974768623765881225947165187799482255314946165672710986699518957665750291835346430035537329817606571354861172578111983931120006330514363260040734204664956351461707634369879734032309199659735050610366340023845525547620085327472614632144527385850079580228896366984597545551645779452848474048897453778981188169329457501561275371673237408472456767297166415017547409811472591390002849188066151375706419487371770205509745188407475269565673077698554450363356286073244090781043103443840912345471118574116448704032607577425545532362638864105918684780905034851217435417081619402090729771342417720474507012457101234928385698282769323000023013329996300356959417138971167207322807554296934402910612026473799624698510598227956737823965908981995394820311411727283967992691997859739767471893635610579079344860372159794829720667253865143694432537999180341998905953843313262958482973997925609707289225907075871031704286623185103046615787194887383777547826853806991049600043006019993524714979648105408340972903555202192476897471370168658972849786516484481188291293386469688906005169038181510823146062118428244297913163454720078894999009257133440077011464087891406024533762242105243113245992659687330963261454825404266270013873728903288423514234912233014982097484239488665239129226227404077487709601475473281560868085395320885354429387736746932787274696091687621307733655168257403157827078311802152252618377135736462537546151012344818156998596973563954500422978378425189400467153859220543242624270164852123103337990122245700563097371454064223906107971929578389182047058976586116562201070781980678979915595169845943365723390762903596764701322430125586193430121202759179494756526973540112700385759140806019097173445984027884123142125345433908342828612928169561050791603297860481981787541849230828872735347294668750089938402663839804676323351963560979949275507422142774609137639229429178630280644770782184848350636111069820185567627647958089222218251911916604741790932501462511615925573923254137373948811259664020962182808920046328118641997285155751462959009301280016069972656995995105950575806806720005862974262267091197084609477158507494753255708587302770643020416281959696755129898915463092959942502253003484372990463291710102982771563517112889904187461845731888818830416097246243337236992762352573388508199515472137340670515405835770549765737848063262451651068366937816626354896019848960690070559208606189013739477203276013704687807648769357933445118129598658844208316479688601144895674309447411603917186665002701719492950489008002507905179142308993104045228759258759913353616236546157224653365003032014334840629463052923098001596983431323895982546879565136105191179654238414438820583243502723644086246366307473362155938992143302629122395547649056921333967837020589092332949040291801435394002502602298781181357519932012139498131435902826093179317752851368973861352980164145138942333623902146954106265070966056603697679169728868455048000230157948787802059838203698082674153889495635986059822395066168085067217353375973635350455161915153520091240944646750647492682017653006208748436861914838205255752175606566106680594486878861524089387688319999645271567254131093277745182161241980622769280289920752331476601533563944643453883584185549501102197911144120896201540637266314672233243394389571970937410983709218615298939709962709504385820863524989869514852698849537332646834511602102542986279233480987447929319230155781526837137012430324151944405009791888401413530645948441833660746785222876958210195117280611205568593451264359684939218887817768249364916473572670335836109820099714668665858095322550663786132115942124249098380936710395329253675444350513508677706072679935982095705293460141386814881177954450872707609127938571964790444374997563288083850492332412938006384670415601776378035435965118762764657276929884550025405793298527505512841832036233661745463490765050568900379986044912990381500365630163550643235104518276679897278492047345268337158063176474805278406325817581748656463299060994805879745768359776762970042234773992318469876632505646196576341361925297947253740886503156173548550073874681056905444635876286656748304166111832597225938208640618710884105318081046040985341853297966590187033464908445130732815319085335244273163140281413916779775464085960540119496025945554515644490477603199859332069933090851064014635403890710120008080169005360471457558801116145738721880691004300457619961292821031573913333993389985606778034135413485019369020462107008991630159213640117613414875845111364990670599522603775486520047888676468913321048818054265037162485983091046428788666889135147210162641963346438965420671375461810782668233137533731552130443606749835217581595495541923484876563408723010665801921742256580279472296512460927047342819118872196871845921789173985607724360848025333935797303070598779452815194669895803636122742042618236962171412928605716033165934208370873422593133028877686405157355500533818786731937062513025013239575994435556121694341353640306727212929331170642686959235636021084602394863455462436566969157931137700027980208006790406391313471160168715880989691226295007441944961093296266334630260148882759907723024392128327338893117810535275823658925967918114793766067586744498983993113710273002729731112706312535234645485577638504227917060861900241560508321284829473634774622241135294435620122488251536251176986520524697620896724427664658031309928398356104833995690305205155110227568221631773309033395770334188086893423820617360240723757867970235972775574020057491573366463507730090836726903294535158679816562893133655768917765396077886036421041482202702656238777281765035184003626480692330054652163703437096511647651512586044264529820337453287120347282005587778811404151543585120727836351323043679588652400440129096688292849867049384914084699582793364569780433833888703453134575968767459352994455090099388215502790204989904150254343960329063858335519244523257158404870562857915464078513642913164985842736511180595062876710771542036332317792500579709377919663169179794853060318476642819332957209365195616165769502359874258624015389308828769547806999298123082288850790381477330382740323506985600565652817697423866734065862517422087933082189757107679420408666970309071257368567247182694123896683595042410759337700974437090235319659950457335878391430835870516323137501219215416702846402575015849093421988437963400822524033847185301078044084767479926524553078425518198409630970665127189336536601613298858266597277966609734496222098074574246435803362185396953213545889891393674818605861314092421570191138243405332672377857965234702559139346890003952176368605741098738636917290270475683383477524670708230172327445994750252734146062247012696795066485495422321787705021306282045668645152498231090151259147640761712151329133249122425659708999269768857914398649955989061556905600170419427287228191434977636821273959208083299027052338239740069132186714839674933188520206978304886218948989901903507904776064077228160691186141988015053127059666462505947457403601263159740487973129046240992675750946173862343651467280166137070501153207686369031594642666336858877974456952413497482311320886894115490987116548305081437271245711462478345820387191513455795464021262926535179439542310474900628577303618632947364154283218795341759937845980002815245732405210819410439203628191152877244162252776261013908764152035614029563563217823365708632035778200630232520715568145632835604290050846340950406281313609257148778090199058853613319875675171928909176187711967763570655851014431709953385680965221434577629215357737681017519248818654561640659146139334751786928513453295441748686014557199299113696851342419246891000794415236550003347689983828656946177147584424716188291644214873537360118559596280478735558830187780690304988043396946589838034340395462758934150543013018434388384401459651452951188789382279609951535354980126335317493066781057623621611698654738365656291144410470906687368093676924109694520231367903996651165460711242154060998806613958105490645991494922410070614262644042361360330911032572089304108572352401563411440779935154364408575707917719480991688599712192542557987378080131688505613552084805215987516642870982110512170306072641837925685980936808283623056149540499388808827015564119026053685507079630650106759793925804659053938863356646138493729367133775124808004582227388016270004322545384944088136872373648115906334821275316161123891383763778391776655641437653985177171520081016998860394422854852028889726293771615449284564459025910838272768643102205722496397637363297518802080173028503748740495222971002586357830966899889693508475022784019139276566451689084721075588999654186036612672471250863148896243936626578694043364694434518976925404012314000183019401706502901305560623408276367314829125237381011523169394789106091592762809433501428614927964090206494513164167005115609123804181993750772460628609618716189530187492987242425984786854060466551020194042674268797261062343221686968846771012144265190766399858981327099820151181598067217857925742982690784758392466134241996965382435180350563146622253535060562699398651255027655074272607617796959381525189356939429409961836272920478187444088917292889102872052272896268684115099078727515029466699854467793319958428264219418082568025182176744250945388862321358871717172467866345818298179663615861565014466278993884677318352513437357624517011035928117299662695749598399630523216585518310011917291610633228033760435816411577932234255418524095502438414538630595356877014579671375497996453695202207693492991311780093055293084628097295235826864369831559852627077344726980075508752709662996099649000282840747769275345784860291068065344121100487059684372336480029651251089700189209252183794212672673858451196530069710394558042893913893890362383268538855794538632104152104205929459410410410256489912104930884480507355268058820455358084815758773286185863742012182062674643396362826627777241041612744454030473579011197824770291130286433363308966543570685749796752653288023999751523957413995232742986495078486486711148852710429292975700257125886433869971106754907797472269513416533556982421779609049122388422891593690089653002914022780982630841553655689724171122245903386443941085602603270030926080574363100877946284112766205789975389032388019143812414881062178273141471662549422356769444441884746519544152269216676798519953736544347789900137030917625835784382376283528689959914087516083357078517010023962732330873345530890312728965585815094189865581721927603629153692487795979945194960748727868226959322228999333008999951523784938826673028042335303933614004831253913134071427684903231401779455612315339867732276665986761081248075125321079879646389961182476564850158460211434096985103463674367780306797129475853735773845083494866688126689794486694533365475977073852921745286378346258297260488181732554557563416159549535400422084263630878284445805011863305151110373656692398408749947635989302814233320508898625604505660797279488506573998575059132025485271724128149927094860043255558191480862556727503643548262743052814313560132840155969172901554928005614205221498068447929251733026426352283952327433676485432109054144071936584068128728756230227567234246450624866389526507959963240726084869643361588579918661082083849223304143151679746371761126081715698314215971429619441662646861245316981767429296143105409176204136319342108740448734501101031073541763104477739196038931897778664909202619595238049990338121239274766054462407054354582106011390675334168562320723991045174832491572386182295722514137878083962308922809324719604791061429140296640387027816198028223071483106481204979708307129888875896815559922057071976245187918384343245374273221661724261222954197917645870247807667948281571444040431170828143883181380589599297832471762508954232502306799212667442156261986139257025590332180333761854905290315683485338122181555657404861611771928726374499479169719255120811935039553614900227982691928647365172380585493755537948807588968354150273628521689401297356433941879911149339748866966272694023285243486525429572739890512897833299686702888711296362302140977460966287119902169939185338082360488217775321564161258365446651816021244307375591428240918509345903249258390274628523292799422498742087274835241135960151840007564931001738725827497438489125652942320879854768165195973941323544732292684858460677944086854345623330997726027536670624799880072640566444161767473881964673261139025561152801943127731765125697104843334410361543202755203601415269682309149786902328606283350411241867474225403233050605186889524214472164691874338529749762191039696542811576674280876814489463519036913958065530028055336651354906096548635632905508061690920324821734945147819906966019193282480097459875168761648422272403332286195973745488974116117722393476276067620141645553129331440831053748707744684376391059400472934371210582277620121917884594215091420507526218478214748993556581634964614356752037940428886380851470316776741528582761855864249856652426142936588978059378651495093138123783764950232100719960534789876733670120480133791114236064479057951311525320501354775548285507728231649526195923966085261817630561723824235050843818701243270737628878618446343502006596816438511167524926819210423479425054963750774954733110144104523206521262371041437456771655543461433125442963481713550967057661040028490955217178862267918818619042433916037598053530548032958918482702211407468890663797196868724951174754409200726923702805836940259719368179614677124917073870614981432272330287318714264546010207871513010099842457813626186040716839306305936059981500336443083163671625460783570061555609748035872437908699353604260960572062032037040597958180807481925443842666279852340128225147733753421436891219098689660507150418617784598721494292358345257545584148484319797490881957764879895557893113446615379597843225765434544547167675824178692755047141067572536899155708467796865632949093396618707253438834401444550137814091679830455417963215104781099690029221579264160831076427862971853108486811302445804676562208418463153967883650855266905810739080656699976185102807317255805340432499950880851100161812462737959089568814853057920030907726439830197736649554031781721194785659917447737230534454255981329962344870126489748928188508176494668131346018694631887479454473813620740824434587885931766738732898946572949671281700357021646756483117243671243936251530074766290590641584533460092041144035838318540627237273353701204965907020695779691895694429026134653851198692213985146818367747358207013473004781012551889598122499746758951781935731134615826543442339124367197883894684685142338209478077948701782685584756560382398885710417307677409644811564169147102691263118567394142149804168055561382459271449038442795400585971813998215855267073664375295506957366231856596942484124349876542443113122837224132339919679061028803615366631589373535830013382104524112615998933665337235986060081352599876025854841242265442947428377484249522034795761668838428906596277423154324798180350526083503918202977041212783173690603945696526692793147593901719244957115109277817515153899028748883150797880465036145260709344253680240612589856373128413851473204933016900411916776487460021864512359518749111997413180528182724307430756787604630340257523088374213862592119337275771888990646580423437587881889822179531709714948709994842951121437120877437812887617409641780741600489066515613998030852408346114093472979038767667369426102131752783224934034653566430829319972232682759910377101227383208049110268857062025054490129290082700584634354068161082510836636760604049655794859734941161645926838792517271819552306038431707440640218135863286597136413500875155746538761203730644005672745157294371199779248585604379362210321787475295031505321156893728725847044559156964609192258584094265576024378197768395047752228563465942909908500040144220459631410514054729728228596004613031261007423805668100231477667329437805083906807865203030949597610042921708958401496891045057723312374176103832981845782406842875155405577228820518573069764387826944490379789397217161925788282050107852110161886191294114769275386994824796858139940201313467223841530651257446916192485843203920615798504227858065575431374443125699771750108098879543691073626164877247173651232236464839340626646468633306723089339647565856037814831055410530036199983066353573537051859537756136603127251333407950292637581724756042778255551412248020452265683603087324435854350355595593446367238698302645063607847905128386496829579925638798713167391789734695966196193466009342371273695797889234972904609318386955963595002703474932571844397144935149373025659950818950321857175997157781697911609734781048146653453628511104658782677991815288116620717373908198285020301462521815241684350845909228786014732778526384219964435532938894115290188177190171705626795419986450188938197530034610150497490080710603003013804335246128131116907690084736136968902405417679518004201906253411207550559032230025213860952776158605311783722144105083518175959048226361829583184151672976602308634313718465125413392886524266739242599302602974405726105695128980065430608243392779078660287383772094267803678210732672713905573675706387401791327024989384822920829907840450161355324906182343762320580800336513245167629960341195218734509880033835096904492593618678650458937910125854589487641658723345216992984360331127625566786987794986688657744856863775042352318684370237177518345602310155630395134663402892255381477444388307134280207427104107542418517443510040190207739527986316010141264236269850457292134781593747979838814396824621845166862794051031999675175143889499692943145819383026974509989445688395022570448558436735112371872095488154834421728435531906953990984156090420453502388624411041660874967470983631316878774539764485767112859288476841618921272966160673915809654282437524218022039365354515374735625898009484985881151837855678241478795460303920079625773008143939808171466320630147941446838397022903546355845309431029342245935477568111203738991535832985907313198555978462203341209272730507873350606831843799995646118224058930748035142997704910954322922059535965374050410551269673510241349137560938031996076896511331324424110828263312689903223373345155267322591344748841705533516832385132489073914898729972039264116749823982449738538968286338474493631785868064761864449224564294725770213055661891925974244387068551156543459394746144162846249535923815221243938928916450599974451119210734373919054991467524656737090701538007250656025760746288074535070172683205980649944718790148767138449443714921090117883409451185109502560836846573828839898168900268436149560782984344101387366885630562977985174709405569385743119881439277624170036897787715951133689603685742860521351864906124781000959282669850114495056277570169191016999301280380399585702340397223148742426231245714135600454204668814511852612529761613115287359820754134008501666695701006251997236689015550149199070636944871657674817792736435722687853050112624345458059852782584526369810264492427503221360659576885569780492647402424910126305613303725046178676019939596369835215995479298720775733926654842182852407281021372104349964031693466437522001952391671503302951388818505449464003300560535839747461886579967211084089397522163253404285328085650679841189581500980698380522596939825796265278250825902264728403066328964816399450352222795791725019943442369855174865105447433999696813899941257486167618243028042222014544267585508945145635859739148562789200785115293128987789280183273526047691057500464376181713166894815463110964442092764928654252219130395381905993657444548272820397057802421218765441408255415634613567179478891026364876976183273436466389933838040539887893081482571022812468835530457612099798037772068146602352024758792578392061811329579308324600958381721205973740618868060021404019263450457460523050341401154809626012980291166152860850547303091431573132470269119036817119186742185275969364105370757837196102800623041227245731361946340505163688727353597877729020044923067036199859917474082793968681220189160900280535602297262648805912417503428616435642855841089329413883710499300073423813017934568525802997301352434008540346196923057606448752942801672627637262575959908687882813036893779496435126381719224402154311603767288582621041797677725676498054975998103718569017415001141902694484700295834161672403964834321646599581886810636055231228550082859514225518955821846667126985403959500634758249095409024869983289153287231574583413710894609671755530781317839774307951611991038780515129587739482014997673003759841451364707180927733870292782661988481253887653524548961776625188352819226822390943232468241363940058001502449931693805727573856537392901297254030451459311215615537377930916567150657584159200827908971633324850744408671772832835248848161383464610807842415262132231149199383547035436738505131637717266248982728230420571403767860325220210782684070158072578798746693453944557347609164820066095523542552458573900471445613724226738542795641321830731671767613932376863245059519189954753833889510922547992432632659127357838722564049838374679393553725500433681639046266559316010030630668277548690431712794866875469113688651530417223071618526690203064146384550640599097054612545910076565161942182995682252180361168852955163320360023949960451696606688372027714689961538248821304299198213534930423964295185487802197644767013016920360716013193215284439322353369293256688670075338302892943232676487938267255605479078238286881521443471090281523607702320662553237160991787533369384199799258524791524224140975369336142267911820849724651496526094297165292188365272609712732358773349900366832315975120308458195502995222715937288347683379164528611299542878819122015274726929425301478256414331778057338766825532678866825097274290684953093358878149257469999089056623669753214854407333105432689987185811834981277736433197164052523621871157375657166767699868876770776511886745406482652153932661453922067093521127792771163592517364912673912858324440845422457733192730995350744722915608466641207239621564318249148136579820886220420315028898461062638390144296909592673702430415535301228945340611545420552353208496034920472731105913804011716087591567128979704793389993532533053585170983060746775145273736970301277530369451209681744708538432599051091868283023294468305251314823481215868410249847620643059965432439156767489647591992318703942162281435367103320516474297714871627809978435030659246997437256960185194810131888735493104954547863192548345075494918477211315796109069687426148710093079339595557973439617347045949519600196929837937213168892017848362898171902033242546382663807153711573974634471081702529710309722773125386090018675489030581166503490225758441060364526291052695839242890903233931376565382480059841521678906170885186229048707131436534704475897635565924954028557003123942565460639426236897015829711815498779096686733597980060849000239562339256231777621825982984590255833260393268597078509827449090259128465648508151048296149767197736388922575990916268918804755642459367924790808086471744588417389487546959704426855318811677991542413566514668096049061571431788198276157915096734547424894143040837743372844080273528887964113162986298587660089320605268560148054247682149055363837754428012666995285505307521501039209948842678423990692222388583545044859571061133579277785756896357731259317326923408328870093243485919305386233244023346594879360492955873532748441825974523438454783578248000994543204538821226970237529392591131137160932308003097063419332505739590074230167091033635366592769884045549107657978668343368357863402657032888232300219016355841251039593701166109502983247438308988794629320450090054291310854023083172425098972948074752736167973707420841632492516586987655261261397961561515330834561865842007204126477491910072115870166404466561183299196574949937101692455246329392039176187649847464614878386566273958929931176722519061756611740580522187360083221082609695803197957429087138297382194976235208350011939731182865689417541338375278505210103265873662956952392989709970360399932348754558960177647227847320616057683117707767109378574650421669066013387928651743710060493607916023284983004154814764577682716836798920943445909457278697673996336822999908260101557784967373215413148839024561015196314733484580992244871350465057905085699530057776213694532997963610945018520299225758047332933377476051752447536450590961752875509621193221356987938779138554596071623176401990474787378497967380773750726709246746643938335549485875428348311878126080161087744240170644611853284228707439811701883210783098634515123096057495526646345292723362703328201207391251576324215376486309157502635066059540416702253128771651165038067530430742126416104142737328300334855900674978481915816851186490916112392467413184053463270769986305739750939447516369425114072438975471584134425153434931606301940400304530157949422918921960573238066006399503517792147497503366353345158300069323617707563016109980151445169906085332417090060031630787401807989052038420080762004091539365282590761095407805747118177658764419879624277911110069626441404209620426700968604156577524157009416285818631234555212451334347131371302971114948586942608630026713621214896867484258116559519252737507238401540212055590341818108163239314231947175051319333258421502721961366702061395942119981674523290262235086929512694188647007065861376966775304689506706957036328777945451736634325813880067103471431651541445412893733973750703537200619374852100147201463441895194165862794462761635470345688982111191702662060478134931696652236704067030237299150076059175815042529404546288318632799797826243284805293370697088699942159627137194643876766056483252639732987689724439192745126340448433303666982255343464732846238066336464209499585430437131115866165973173486896945721226769831132903107697024040246698669284683217049739287603020672050548813918881603163981618585899802963489881901156772541502167021493813311168356730721933844352277890630664022983767755372977617376915378979920299002209225750275372472712999647157532028448702791128383739489745384608695116808616743540472038281198578972315733006420029787584091190026222441708493690954373396438336532492925962246365895275042082801016918004897830930603176727489896061162544987788077967780629180061706100523985889714796927294313937826589936367097943724692376514580906578810572181580578789840561095845813646161402514126117484466830884085984235627882661829459670304028136652791510352473654487021428293362792772241638183482892344517593835352517875657451151826260533192741868072614923593883911119133461170012182887027419908812215702377859332596201829196517244709668855772337870148114225835829746370983335208959051672373891675828357903766021761176124384214805418069969319591167693718322678952613414882373888200883929132648872867940385965437204196631164178448793078781943046904190256140024821700254985006574596766811993856770464997020758282803076849320227321322246080110027287703619673951202441532406334148186777101364899068030399242336418766572075268702629493867596488105342228425997787333612544993702683526726785811724718928613826213905381562336406878233352466965767942807572879594506360689401206774408619167342450989226852123757572776976822973114239080303748574461201528184581200635799426318968097596753375100330769411851610603983214839390336384542582150203621140623546730005554962459539735050522333460400055964415581137051505248215155475927769070168308909253076129329130707622168975449257551107258480099507705164933298643944923663160371910114024946190249851829974116962676102952156768314471877244239563729599236259378268548635547946439497673605462065958920141179623425385145765008234251366483554328481174951824912541634307864169113385409924311750685748708824352177818387216053832932203726716196273228263399519486457932034091331564874504342700271934882917638638380461527079122071542074177831797180595748342108121109957237985922803477839446228806572326576511572650833734927452491257897950388702320391548227119682372956817994508109248889525182222469425189623275295125495950539292151741776776255416918256364553128267310849379313685688435656239260526802816604976535527889545413958931832508896800491061976360767877999224272799368003526816083157192054394280410121252917855062324419838615355054680315708681100235154450243872198012453044091436025645689047773640429942313631684418607879849008491301798005638047787647456658272599869414714184072628348768561450354081919125621482046750927205374388188191275673560043169826029945359336535252506660834819723463530809879710127383424282615002256544196136116232942855765916210258461949266220287574475632600264675111213246989257034863937180354351675015572714165242155340609859567759146633413763118085459489042035599575157607256855447118113487916126138768517461366013132105185897600930770788583099222056782605480137530173001126076445266322589603588102819967310462718926627483946095449508714059486430611770025952353839628042945875373910293621749111442216707228029350327796591378222198814529552948920814606536541994467477932494083692437610708449488854981994669450330439973965961181315246800768933593904205763581530323032419718999088422944295716757669334947757226831384668701499192045085272811690625305925748378787176700512314807591978638812193636823861944010416617800182833632215273571953778550041571993822814080271587080999319501280817880637766215430097238135047684992984815058129368278971658834585507209782836294740094274471470715517352108412659217682700817658953419576219015925782598293111900391215264931890522056083964333447800916585353474642727343932928445905140958714096649127313454872846106016587468163097427439971243682345302132179288424142395621445630781206259621046279470629247650004467183024573132795953292470707029987509886929389575462260370153930284691186823014576146323590018467573824187876210754443434672432637277819505287438086888016748816096781452723125381821638274893530912043111886810034031678635693227914923358630705730054808250569466607489616246002742541595521085975603398681167352591798384315618514150079981544528594101086203656105025336206555802822475380516922022044686649340054808093418250081220136617778836773663652420094719439106737421848421387868872146754512041532034497210626018030622453873595864544399918387716796062527202741712738284938397479826634471625487212077437120401801042581753436212402695600955279390123417970599793976126256568337682877750030731188914730854331079489176569085272077328498746287534600744395821289289208828858446845958460096549524901992686862655433878490168176669251602952627130471891936842264824275094482073278685311236650029305742615264962236500894229500632828002608665359230438608143081061315731230119856502690693938697457921712629952752338309071324949086219846671956859702285162624571151272868706389603141938516059725477294892775365190867072347139583128984839131206921655091879432094541968419337413147375548706248645283613858375764351732557039882518614940490754209587131106686720136580961257741206056177965710219238636808880255190394850895357302942803128456691570825870092019387083540089824414900794013835357491689323750027568885211568810018154690634065621987273505248324990396984915818234936889553516269422614767380920833533972289683918660093827738809249948366257107033761455708131026216087671425042522342306035852704218501341445407801889336663557237479554626880798898953077290098802404332097122026122136612875511141888339422889254835494310122424292532458487999073064749643790276274342585076675734095537175698549005219896408116656251509498477592348244741483028244279396398812027100037314634075819857445353752251515237545503697558117878780059939220950547491277108364326769804776221202777230310158774977305311534390485679955114819139157589711341146229380655200835713996648512083905696827227669261121485882443917665865774582183321579501299046472379132578154178314232181006313996551153829389808668541213736455171339628854550190006962329752066272984129308938146378692349324365880020989330398539578631002494858951123915648931857936483096546365724110550630103876458600419836194207118599323359560742832397219432583991851409250918714658652005913274444911717479823684095958660648237831836774312891794917559319287981107295476753075198880570113866934196645124896328545922053716327488318227767440714445534362683179006818440969042094249539753888693912388572660321002671235307023415004293407132536888795621074127453505871155496654852212766220004163279885949631592039746460952886890415955225000720831553360870900435293680748772457664252640909818989739928475432026531189913011624402923085074498477671757213047158618218214814242560864774212593613367900948702644761469210778530068580041567240807071058517883910737413766605583213675163656164950956648018126418196655131518730751990289029638431686389283537991892183914123032858919877766859405546953831780325348751521751129838623735518768355688829640205452290337176136939496634697839224381529214728844074262953820834610041831650381085180636269432713688085238434177507523586887405646701586477789731252028132370880984326988454550163856823881141547415687421120976537374583731564243403377145322200384681764829901853472997018951172714456428851571201100997886335656086786507522027411408851662996711733723320426584577177231825540023083343269173777171434036374978227071871487202110198843296493189505853918634213727681962488011871257854949479370289947358513632710009648576968280358606267316182716602254797869428519441334904942740011486005984390420295062067524644365346571299417177053749826867307564910792222325500951439781125974842449618841615707154626751385730710995446764252798470597922923905656387074893006859956228527715078433594159420171184918578707449754476805546262446885293604478925176327408577737117032567864229273740932340850300243014621844941415896478832779210652972064705451135875282165498060789511003154781436934839090217672994239688920061835857037093292845410313123616493212810484365978709739052063185914439360135133480694470428808948996623645677091358068755441771590693185218913966117488005841102415236329548438921633919165314968543465045796866727533898878354591506316753743686367172789348154224451144284044494864061999029412025897610279983437979707769331710166608027491952437497910425774859568278865131216448148228611160360997751482781494488269464574691665648400059284615048513871446233797257992180464866198184830278099168348227375787126091130354837050940694778825039073503840652418720887987231893691136152340418436120237213559648410671981939738975897996602296802870212821243404571360216129569455040535973182562933833626937617934939952759910744368452823296320941087189462047623057346914937448537991173182459360222424992858550814906179523186604595305547842628170734624148798830545930724600496804533278243593564452983289840172575234235728665230399419539977943970334889907170157659082158850030211886007625023076791875043371499146473160997636041718737579767869062442277437283309047362984145291973655193344198202314986310135894578648965534005293992297777201360853136281576400782095860419225398532194841324311149373670490312959850392972374288943940561400583897610767050430182475504844708719455659507001132901501645247070570189870419275873385997947274414215183399554396194364360622656095737459577414196382792528878290593142872955290319753125913179545203403580897655022600796151423676316461882035705575077356253765608954724809042898664300106477835682503272281568426028190649251903985843540509907714618849874599288876571575721519133879745353505369532214405620391961126738428968073163888876487078731765087586634290081032954292187206425929516095665296313513163414616199121951520618626343408874151945162745991092461015141678203662790645138252809618371308537658228071009918297241220891262273787147849639564873164684378623998638715358528014574116372812397542419941621765079558611011805693420090156857154602816242562552526370979359867630363418171623370471996256691334664581581458890677235260532882111044432817447814331207945793641102011348879430945693933317907223937179721391761857846666847772564148859561388814137950752268400603457475864513350516207819784952412197384610279930771461131615858528731222445136856981893731440007767826646715668265797333856622789927574653387040704928980325796700962562420293674514658804165556383580774784007846377704051311917717572270760832729855115665574574051135774586511663088712690487135383442786302480808976321063322673237117708085703423056173397510683340461301065508964592967342832850343902905596109593920763861952381616288558905706389886593632139223426632681885677393015075956989054608870667218490042957725514108249425259461307778259341279588967342583398886172767127815736327270774449264090448854883410453347124705577893863377860161647008460411126391107620783015063406935455949643073257225214420648404648110336293225857976062622785595048894013084312200363264410787822186604720235695778500777911506519492129634312431825019074243714605516882514144360366374508845464916019965704694853548017444886341084593829721494097959694817904888370171672948391844463398833202050771873639507354730237280323504422080125470200520187140805415293950126707466777667510768143305489618620264647464398241905513072540084163151810871183494305168546159903842435838582617299966321926704242717397104246373290585447041499676969348135492012809103790412061271658093917586820925972844960190667671139389043086008905485604752755771274093743792292066966275447164332257334569191615606357359718645387281136495350800399837381488626970369568527471413043035456051043706527601452834627055150737780287526124940129581551050458309627998054651383080872313137911301512843493381597067947670721928898859972638351060762529033948293468897887694171845860803333920671291851174187749869501847059623580636154960939517689805075290789405043269531296927218877908284201580695672180771647891953374745458088228840089070313309265981634813168448574826476525809420222965202120738751780879949783559393254191271485145007490352039152043835839676742085256324893083541444527361806339059127658468069388151929750388341489344087848689780747119673520290701753905040212031680654532374341049544244938584610164683718122777382059389870102984612561716926370585355187073113279326138714454680526137164954925475299716257749887557014116025331750928138178077572435172932878897285125817819274749619258715587222713862301091809626507006639702993365488516547131980220348679454844505436517524085616303768961491459755319265747856233142443137101872465404619261637890812332138752649352211500067326963853477687116630264575909038327346962672340685958714879690509739916267424460268659991098122891964740738066738302761830477113508417551346237916231041218061831835248290316943053005153512934662329010970553250830007863856867455631836446963304102220461506636015976198350521059745442921314091804399643282654618436296878540811588303047450994198698990063204911980912001567389238487992964654742260213915932515534926923552619053563961660123276909591808643242711691704806326069261901745818316789017755437399752036063973084366092064690485714842824478871632027824558817009020250335287099097701134622023082339840931061181033684120829999190204057353403081325973911490827579815848772346517428794417815065503179032371077353692807649684188096802237701481248091076733301492947001058310226232104701579892591212845795643583089252221038652128875909650631460130333783289709800196096248594772264301037167945758345520017549030853101021813290801226807160330073106773224065262912081777079071576418445509484163517526573045877831503438569185973330199179286928542608203855206336217407333947284995310175018164583837481973972551615638584107852299797053474262529789231417193575592874955407329347357862785156894970121345526482566934904335494642400806333997422341741498832341766725698201697817026717695822798754995770333434837965453735293241924840134923364197861915128292425746807175965597643289256965564343520390067949621002488716220634143128854424027962091804127668249644760241550448031074381536390648737366619757733739170141168876565940983439197024208988350429312341613717371807818133751296994616285933897146002985781542510987727282332114661152198774179348506123796043332277008450936757137411417021576069313259793038358505168232705138634337465591331589798726781281498225588838886541111230469261351595782093656133391540738510148870078898806076694524523613368529705033472994429669665769528676253550346155347970754865293860115791106976582218793803366135970163492075291154367731760388514560056464023439647857762994563012860252592539160762488014260021659311103025238686555884318117058362539810483005665884709827551280484693126558411728264642747425046159228214820220476526212292471017976325100968317557355877973514410276516802441355816151145162226574240653214307041171278071398489510288066246314632121664402407859312013674400390905200840749635264662831091494999987761504403966961992243253933519845273739734584688255579945321952370812392590496931366736689267988841730802922603868157078779641499227976493058915711608597509747790631147907878253490338352813659856975299841325198400936940278842893477534243124276661563981423756801301602017874144150879782401942459992778158066903222218569420087726628887408692930552921204139340854525229106160817950830576212221176703575863189930619243906379547406543272523488646292280219212528731445333114095489759515757104596510483613939062017923005886527058842149069593215816369200105108108090982113743631736935359290726640745344921377307523370950594071164126181440966118561849379316761255953620978097684741845909054373822440837902865649442493713071091058362165441469233690168857334897879026498345453631508343646764881305392003797402833140269442778163057751275442998627184099251363642843697345018455666891481772778815672139586497519099551848232556405092668674511937418196764527684007454508540015714376070482537848152983524678309733551576311316140142770176703971279948299656560835299384648153837511791939909917192617096550245090980475398052233803944461076293185844108124831579775883661949453569894249815163821910515945464434986009509651617740214985547767325645676906565959793761481221541952019114353607860846061068809577528446240350321030394687255115438197166145622501541070631657670764264410480593723113136878374497204708268053699745094359103919325678773414702037006267288166972344166027816924294289958513595625221787777107728408588225700113863861866251268882361738812123695613507860546966937239801760500908487458056443719924805347226896742236711259999991924698067160156497714738387964148016525693772384552475067232511872155821211876577480993716090143092091166266758417352433091813677692383099036518953501265020631059290605489118966008788331079558137929994971242000710332880026620748266478456584140322930033522916934646762453705033052475254690483262467515972671570953444569238448893495097321148263497058065121666128825120725066481698726372098071316116828107440884913474155222102498212471057906400426055662987880655654499776516593261329178982972001897264879035599640338717863421188869251311002266003862458762191569104285742249528328091329479648944330399115874044347167346698483662687653573911632542992056425313528508924382890689614193804092712157127378081558332910173157160048426687457449756948229854412609764996549729592787718294392857661573051553589164749247681351577987639720787252510499846767391773368680533736467034444989885836084788142792697299943798724001678199544440035911306753128500466533778348793569098335970856301096973980156070651637003199747834615919666067405820155064786109675773019772761470414268802562803609710159580351813697720381191039584179993910993639309485627483657321981042010704680038629932956529365663154053973444472484162807049784687472638602907274986772896352684476425011466230734198075829260109066704252318659713161206194004533962582430327871598196896669054578569994434178135862656650140900566286493342804941290789663005170474679372547739835412847078895895233525099808656980288823625604650331790921766902295660553789813398958263492851737701344404992856880623253504752146381778200149565122364766037317757510225722421832397073905922816011002749936714884934433262387587628833053707838526790757802366922817385579416902656779239130321005592933962919690828621741736226125068881120514037957857776233704534591341203252592363947322717351282740762897921786261742767658736910434760209994215082677345004570569804098796371340638476673573387276786779287962402253907202514296505099400919914017384259002925794165573760903923297805988735219089507490306032545661134710538415936528767876336402282360360602560384203525216989697232879094481295903373884997684533125495830667818996063466289515146781671758941809340507912279739177145414287837975709861899258577658154986358810989547270703302320679267088827659769543285602349126237919996891650522095812027394628965314774903011381440746282446522079596358179471522084896973755763596261429144164381013808574082493539434184310196748994660579066439349297144763235374553891698100694538680714810075679998461062377669877341681444206160601808085394604891087200499823309703043093560763536780409096099531086098835321079943485149936568181086224191623398963815113277004886818900526093513938643390820718008502268770286326539390076933232642926134776115040966006213316138144416433956508305875896021968987952572549093000000603431498669110679014839333724658616496192166258927216659322594258805853744094102810371978003280469704167564721480610997601058491108852958476911275237793835346938284628022516791553788083504474080685584755787309093064906003240583798412814067508921689437386300743145440159616761961756663530845830959801609349463651093004917488946816849896461864379489933187099049776658366705901750356195599009767826819239193111862512554541933256776455182771863164192580264186216856541322719480365043297137486511516686931951674573855604562675713509211780180402806251834624594976932371768568433433572015297331988052090535693665457802618792876529017098346192464178660433847870016569824979403252222174036188507977333677599652576087902478387420246136420477378554939266123119635094916786338437430293243213900711539292176055895586123812195683725711413542058068490510032272984583221815748777737322998562458278142079967245009963979679138210052242417060710658569065399457332837417975729542268073942593096689272071065532476541549209776173849326385512106226248976514381415855594087204543966025191513240115246278534045963064160441287393343927685248560078988552810679581138146218638694538399780177842408167057582558503566863892210478056636363115763624869249274076739997336585687200697029551779393948923156147683165059605045086619517823891260322731666861664675066234737891248995303966114497846328109880290788137369884752451536787891288841677940782155426565618820989388952673095717242175113423061465477164211967476107616256434443983233452401720932920687782925575311826116849322873004317956304685075734238840153991785048856251411307559011650095257348980128077323081297585882379297329020213171641366184146310791173174533855039003618953929301489732412052956265467022152635260310971671916310157662693836836980268099071612986182948555014168927347206831448290535040912891079123777590493936012630489762977935917207235225850127414653614214226959971387336480458756584026596090415975526706262962310681029334067562767666384487972960736453727855076239975629848426937928017159531392199931159467003517543358025551201195367500172762330891737997903954469823260586470128265985747945315866519638030386220210132704740173724626940741789876387170280890417995756471798075526467117454850535202124908159755280981468066056501919720842824631786390014317999939811000657153737831846456481009232095605259526275166241658669015454772839445156777704357183495536806477076587761715968976618571817184904175996473635192862636115727601454035557715770122292413270495036098325474766322592675905595345355119632587522408574912773415828705431129347330471901041131209867008315678864994964226652514145285936021157522520795518955269550820927092473119814151492021288577730990150828869380435199191504660625234938882372817465876603335664657498208728773256667045574947591130319537281734478843538368334913223480604612242946996533810984168980997095676761462326981649884509201389652077408117381375640582252476331257509756063042355917777376181817240687660160794421869163003488442593993288094315264077936187316781931573347078364401547024319310395861702686533431486228904116674498645274160344711075206825333958866765232963464887744338597728979035726882722693346306644486459609123628661667624838285109658256006089459704137677558111397990189806017790784308656056963048702242397137070149029917677655243107062050368108228249911239201764702731419104982648895682735351307058109922162600072714298881115711262985276022371339353150213891713111921081901506631048130888650704787073346446868617630839061615440880296101834825186225226016955139924295040114025056217629183785396149111923105181897911566410708888920933437606802807643292861240405064720031268493172207901612776800836936825620558242116714852414760769828733586160526949617965053333973077871680687687100645480678510755739163263674095138719838148086923180760463133175936344255895136183108119840155145623492755050519714055704067726824458643559833255033809442778536937413288615880617758307392099585546136022645610019671727796272034176069512476328932316075055816576420010432826492071270715541199324200206271047770738553793531216196594047682137253705656899974911623378243756633768516901306758537315785165380161146697333658053303841979593711526028479364297623769845623165276865055080726317265316159596384291422898637085847112881970555954992303148528646298074242080816395641884930403941434445161984948196577469172292693568972929961470859115567249356032167557156783331410782491274945037464439474569625488609880834957851064476032360343200968298807497717292304241335947272883128758075243942322912651975433975354056299918225043189535816654713646531228724653995277744538561925396531126974194298535914630980712404536811885475517544981140007937434268454938226647790686892317895252507721407440351676797415047179902479412048551248033197118041502551734295659142407076436063404205513736915457701716470975447376541096089983410986385322659856872132950114032767037255810738638542599158673272099728271524885045505342950575257436101990249781950346824363016000639705603816249107207665958927052882766416457216654484068694736797742991449009491803347570196075601017684263038804996994857931267636205050333022518221449486534973814000393597443657121481068728594510902935139847839919212181815505976941221034815806730030605607443158910933627592941888196717066900301459908907837432340751518840681490775216348051991048370290511317663655289953960763751241419208931977092039483294506374128079941641368610975689990635914332984492175724428855742481496435887573882065005213260069635158484208373115673034986206490484938093048986531470316092570702931984971124260934996390117961130792966610472854211130413662374971896185523073493108211905001459519444833257549864748735232466333389866561882972550785960298709434046623066585400402490621562694310725007956417474230279915495560096213240814675352292078373627931174464730445912568000427487917890923147385807810665375490075504341829178194865842478634797267298499149270587069194606708545010697136372709566277243209956192282489701419472754705538913878686559044037337369592907415322033161915698542704904112259789007070364146275081364450003693960144238233745352326673007136151004438462365092008404332427057060217363877034292121084649386639322384860112956681950557520154606584930739967317546317237191148981057339248167790828974428913291035095847492915270314959104613669565404922188299262721845773200177701520395189644165616649601495508360183497329178903599204432255759371413972148536855253531166077869485820583380770592574590968742813317092775610567465300359595329475399113008532053948928007671363650682781443945649967471572734305646595494560505797598337096295833276010079622507200131874937581046794223575444055393662879639307389338976626650777916956927322532794897418998433634085615197428408370828048415798568780863352289721253683629521603021091491496929252331243876669679096175757552028697774896327644757816232406649391246730820985752691589734929185658522553174493558654493360903820900118696862848816030525608900587064154639155747622892844737989664160323817847032114348663186681474221286688897757264874407819046160597778026419086729475044958927378727043376192499389195506315554140008254100264318612407368790243932699379787537138665460938028574905972415341518195167704952008726030865653407165712303654570254806817015584625848592913157934473935498584714196973096206745563282391871872871456183081542815452911889006916307613622560204198648937797548766023431113461202057949514760724650453716441108069866083120748892769399479982243484107970220278348039887850189628848141699704872854881945568654610497584831189120825866049957620601306168563227656912522997982632063074615397175182925884821444719510067041409736523138250842773887793676642075727416305152425741014425217919721690849401889224471527543732132982247716199284857826923555265072966758284546856011835895882274548082587617003722902006734413182653657999820095451282765058156322637475307228009878409209216402753441826508025819504089121975725717728235803693502529143794878444621300533431835957171014743448106894386102334387106572605511332717667222252729193369391364638009866765141943583856392677891192470513614414515734765359545730063222925626981687099587663373796092565680199392208849575676083954270953371855393812815882063475434002205268012288146673916993138066486169232193383003020360478671624318082227136905469497483538268579704818586782684259279751252172404399253749059863822490232433153663691477546916725799934732728453258796220511894181572236970702437356949961709822022179524032536447830402955671643818010938367421141376219520053576860223441822353006181241652418235308189464987894696029348127232163659558910054466484979022805131112483000490230479872751574143730481997922726031830179453794928226068450796083738730694083556959440216917651947474853629899982158725372508040404491991655785710717825559565938528730395744723413633676088900780891826077999941480574308004049026750563008018408160305642498066255918249548581753617346476195610941951210641630845716215025651543905564797376666686511518171839802773133912320732437009029739649362356455617800987192884872509503989181782819740133335768921196511784876007184820640563456295733188396954878855139738419606777257928430381566315396664373284492494591996648639252241399348858772521978493000606101256009497174287819673979353169716566730553189474013492447397242027674494253966835406686821951463822580705375626668215585604510636045810982324042513681775232871770790601410701321651155239750550073952896710085908865290421102602750924662238520432018365445636737231751137897300394426658486655232644345984068975072383986520578399637273287491232030201253339024973318375515504645876035736390962061898259055536925626593758568746063829788561939298662559407568047709886583746701086975043883066254335163151455972853725620675580206876053183411790017274194572172132637679544903540092112693438119294464554622542971105718490024446036286240855078487256182486513810835447899343537844513596881014123214008023679943892661339720541215793947439607388276617597621026347950715548666993923203834338005057853346022559401966803827058484524207010592564552281978658267981509325551700805458723206904339290227602352526297392266676647207295716290491606517114971763835818990109332984276494220362703851511017801818183415971477952432679839326013512309992389431005384253216179362910857734497890553381153333988120415885819076370515467191227052539185336286684162695446755047123066738890896235078570124096708202160253329398284676721374545900778141420899000908949756679243538740866615229255100356537788371070336651977670534272200106657633930743502488642676626517136290561980028937583175001422156161259030411481028265727896875602070493142615612039792400249209690546977788936586979014950993523404398411810431914500765434508167055944145799894512384770689954439526452863307722441363284890751208625939449941098496148660803342119154666432488871557135454359260101562470123979776780841950066779646182233770993701575304396026106285049885585897393609318377918612377430393188138590275174392646183957555125694860250019136142318513791859379976423521390227392023600488282561955059633746575186614484286274900062398298405526600456985307802816501468239097847948972772336435636347597757750983766812100463163032237867761993249166733525565071323740281893260899464413735601434172637744914945159319924062220423506325092327549941659087398866223684199231292191963497095857953071479212262856480174105862962842774014347002870749309750214884215303596629860660047890095706989636287847186741520249747772277095685897036127381075581164243677114220379752451004911691658479360411389709389743754728246949288240640233210980488279839906988388873855660629205928045292959099611896319260950418133304569402882066424238721051616477883892692849242422726608953404697491303154608514214146231543877309519316121777910405632678331376589647838788331035410550789801101331134387570876465100246476560214490813740841020667780036897507601339049305170966279129929602488111241679347053963774235271989921770590493204049601408735884697248414148167430960059959233990905672006541199655235323869243533099098367091951494673237051578052225759165460424317325894205478495757046069958472916872597659159685788144605707000525026654884267127504458959668729706565304598676214430378437338048452969965189837042365301665613454721160233327834847965567048192720519461790845009851912223995446175364975478036577675136583035854043097260783385977623597110765921867532392682132926741339303516146266717494085392742832785943988805488869548814173296861317085757799212125004303835120532471694773057604577578547643527253423082229123625730233541152918600169883605725035941715604919128368045681807574011657554548038942980029881425306711855381752823197703649514476575500516733838802645866547903668089102114115914401124814397728493573050847946321595148330694613452082329589701252568573973613599893344199787493322597353812145638977693015832936158037527932806145738873634253361860397461170004468823399477757520785717435883542612410898195504582618144803952299634286562879530334221957931626244642099269070003245646322364943209728444292321805964120813592403274447915854655836154659172967916485549063510065689599196097577051222318073018061419415694356142788280363088658833548049085527050510209301095482998478486570878447400588923060957071682925117053502463714932945479715666940051425792306039651841376767830233802943532264075702842272818351603336199278884826797308478570054248334029257206650028729232141219280117878237460156387573738832060677373122424215326382793272834617723117628113753044805374084946262148259242561355868005244558133020568030979347800926757587834522217375048459428786758051917975625382009325795851335087680334954367316811534416169668233991344462040491442171824419511678830834687685148476735422937708079613168437951481869755989205181813235338715124599002591220805085241399994001188543342785833381454028626191251868727976401190937725361280870542265896723003080604046952075897953892812841527737765522927634293060667002882992558222325457883517962761558659594974532141766680153886430125442051656941950969175806355757747465387072093109193434598056711341249961212565834229490818520852215052186562360665737766368325946518101642818940990764486944476954732231382641894183183487225321689054389780433956336892828426546762300120150743624534995751615007986501805352217925082756850437720791996277807913734698314769942330899750221803347223577520782691397561425995794282892767937690574280917730790282750652568331063291405087220539857140770409265152491414925403551057866511615729685643546474439050936671041314924854398767901318733487178015776371466500953389144364694598739255041490812542466654738168098806068201292954293689955531934199177952379328183365865341922828297510555577261546128396239512044072673052000826620202605067084965637493780135451654250721977221638378630726175980522903304620668847679501289170005034075916280957885420752951221043648650763465595216366564732727903554302267643214416451687081390090546116673681692802849453203442925586727261476098246014021910526391150782758375295047417037690809193200068055910634726384293002907843451729835647040709911834211391230798728126945007834492366923147305261857754983664555121398306464923691938102757208471686726655840065784557151889750761606867157373339558682183598535151775038024297150472001768569319543760379455960891772184648745040084686439336917886892364740956674194692618282169640932887113875628516122832743848296143559405796472278272102392307144359140461171395222747380341460544870502720394848865304292536935262952069102709037909091999222821966545714136653254341154082704629635906353589357747005959787484938757279786303548557965849265068197776845957562637583314165922424072041862231386248890749364231134315586136755082447446720544664930733850444441551364814276892775338743626087469859233953742915663943366619033460149168129317536676672425554215036264724384199998077082206638378678196504188656875404775914557569267643642898919562032031328602016627302696768828799159176887711947740974951772357405092424806957420535722393991540780171402316817111265821960172491774767583940536407752717914566694308295411620712874179378378745759077800805507722776782813233316062275764403281348136876666699026755156152143403854885057599521151027823839162820662457623426784707839534714912004049005351718599975273507028943434848974407517725609102661844549092325548153652829191725236190968716050171316877668974135392158113142499158515591647409235752725697011103895052230575192513955914960188336484873243865837325601845640267162569017864758319823546792899345296801464111760966005657555247379612686042317190348869035704482523047821468072269835001926884513449713448447893319379075257265693831920306923966764721135434037743639450997486548195959602927380975269632367927893733488228586607270069507386849396956404658648979985745453677370918183619818693952952839787993293920255955393170042838062360360685968501173623630538174856921236798759369537392940857698141245039434230744772157180842490559845275928959912234131614867261122278443460185183739517517019659246440557356292217134125357741347424212647487718412957814083271122064359498259485053257920182718998951107579671081628260051510098443356180148437393997763290235426788429742616031717984065945161243775673066859058086383879181194487288654200260088714151643445832578610584157524209192742397242239128666012052194666941653484383722132217488615271020104309492999544776155156471247462261058175973121779917382936139480489087528232092247288620513946779761383280144689475860510617225946800882589217956529864962631512471133561444624504160005007839329464744806753009933434041565993138173054716916423927981631458712185124767765519309166753300022698622775948346269315509215592424462581495308755246381117270548044921902718471379247488476470391214433265080468406623169815954245265019051514150991884873545529383741292545584784025136844367513542460895063851124604954866774959520416688265861108360240421328278025136706670091394182686059598243534267897705917910462803297228361312347261089801760553605486971823693740856019323501564172949933831264540944834818062764307227609537992302917403492364492120176203358718493121454347987340904751879845601388599772535491849608281850907994281710183392049153812291851129959745403032213788221589971698636282397844441110822018131944580014961684644813094558421314158964102565488559151168287289075529282049569127026149736358621154784273954035722528693737656641136143276098250031018801659624444653653897353566576763452633529379562441568116134105173618957008406866597664027399564422074426275053698995553840773985948041662029490093998288932264853302436944825213384067883941474386346563998349393946548124045641221621356277061267019235843706944919088312677893369116748938716025507604600992054516633572251621234030095343535849241194446360380843877393978360329528644870638886629555033105201291428581216146780322165339769215952414161772782589036586763903774474446720958535247563772725500112808135565448272825340202165886348110786815432421295972594717975831634787597091363816353381502925753044133782086461084694649729076757235789336741772861981769429259671231372427034632064741265978821601698854245192946631032664392840897179268798878368275496383567437873195839479951183542009319740151705210904978943962126254917207939817441386922656138401386228786064251845184399189049586229584321522052076997935060240698683621751135735578916468216453934671292934756158090514908741499479147442940152486579888557361394630853650274283594075608350619323197763004539654686096646558776129618990789834192599083182498764646731259696676330640154513341057705219337330167174004255246523465425746996797664937156233915542192409019390820865477226100388306143290108900528551854226883302771588629282262881505877607644791018919208155936649134162368660865373667822964655026526607896477979881160224193466679016713614061476297915022386024259319828865490861335511855474249389682344991267641629243866436925690376592187744271298690501667890776815319918647582618132354736972706990552129863125153064829078341871383489947561329496071230618122319941719272346079212187607730151930143419056060345818829134748941558743641694616050258591839732101243554226543691690454714842915537635952076094475940635185756850650562868244636990594971873891546308797242791248525457707354430499585136893663899459139889255377224752790956920374174964134305993672629345729967205313373454224008783624364410701458093359415157503779016966706936884690608258763628249213611116161914549256897354440566427970866421067207398788232698991886326709599516594049355409243159489241081177872370851155529222852227084167371313568494952420780329173361048126840966039187098942812740513923596602341321426236801035941464767481707410508503479738199408802739738115414906617645883628588857977774297098560644900473044170143122896440358729831410260966725713552165658505130123136254736464930602975857429410521743452377237092682020774004796888705413786558466145502443485175597878238316543110308822668382120344255918211170023859052965590038283584610048054936321396965486156931133808711002807981527752516622289702578395975923846308503756508970346672945341167874335470027710796890279674165584700907348097208807767186910082634569006060663942617643173836836126695064545438039351358364272513199358753072504218180853818974203612804428382522688052428243425104315291796296525042812590078676626026809675399833827962574226700829421914568020529803610454618178751079082189708302623750445580345439614556402106132213024780133809743905511930596288584620668553051333022193945214292149479533695223658674980356122107072970316239185727742563948437404321190900858579572503023614266399706004918129014274874556861876829959329616927213267672357145962774738304303679553057239933283793363212229847145105236908556380452541508294590111255845646830000204783679245814985974144860889470063615747828748959463715722185046538453060844114954829717095286533656259036914309960301670330265384607454992014811335174733297688103467508304665265967626825603041863372901600335431437050785051759348707437867221109227852116649480498753437974264351115377864001484133380437273122862011346572151615504549270011584057138645273197169594807196894620188465993982379063709442613473448665710037580743721424778058153166848377027349302714093571440552291941898707265163056659382084735407064933851419339238464924644579505556680952149678581224931061643098780871072093633287383894215753142563308189227489180092682097625983126910796039424965192834927798373822987314189086896357065642870933168972546857830562302186237463448861288087671962863422447053979142344424986047414199902138833642553755709256019632333531434073602647630770067600242409602232381886754695512449242268762017452248388627360007398612695545497834349759589426131557991829778653564477087099317811337075051444667534942724922898898195548084052300393437062364809342534005573990475355413751110149753862073079729846223516432031283464113860551058448064529459545123129133512177106465917972172453725118604462864629428533915719406188064352426674103666514127430273665546940793811117069563565406861276077560718037561791780912104401227583211791988884364009135512406040640503988141191501628404287684862659628484694438025431119649695204887261556200109218210950198185919028520991733362653470882117498864648841004149609548507582248812253374070728713609949656620659242831720741834228197652606744289123791795460964376980325367576123184173269432054964873127602552406632174493732868720207990725633040864827787494688671796404422630153612929835279087789629692209747335926977814423573337792362125806349045308754430140941942940326700184702617087631015740171691471579460527989829933195075742250614944944156437271684899689413060893888573663723854206625468288700968064329514363049438695967404639828135285812322501528861814766906299360530806969912082492679768349034582288749170769239030263639825845114013428606935785553653524402547947995242185638725204151636041381203624965361671831160965949410570098872513750500171731577446283982123293787241931219738848973991350928296168148318462875864558466100311794023028083607555250852006354658550459878890641333498205843526664021524119085093791553425211999061377629187975300651141513242437645036349907870421667160573185245338075910916532163599149940253174985234467735463957320754866634952443978238861035811581709245784428683490186764600584227416132167318529808742558922210926268117703317869294253434285558028917809667952316487684409403844843484052976450158462699626945590837157980499564877329671566076447697003014644913246222276199839902119623728894363390813756997088633293970227854942541871282021101323731255629770837846412370007175030021682744736734763154848526255847744654132960160874249114066397832433007912821727810227868915858157001322924862057580362856946905947612353723438815107241348900288360890774156665407210085674962506211270703581076522497905693851979367698344794413770254018969999779179373310849460999353167933050600246066839928322101399522494646818791513916437905570798209540587890190238046925857790698944411627299088793579559342106205205775418430282356153122759984651530811959716055587436902749595948058036938209384463235433991122165512867295050003920297125820376539850515129722048982122169012919975948341386967853666996061243328009105676445540844188760883883050223580449722959897748121556373372541402306153164768961439896789984240695809461834915907792666804188678794386662866219069720509956729983337555037597540558354015397484960822007985893056397348356803021546206695855528756700857893036232921557404667282668655908574625311824192272951858694892216235991150814659517587821729577992450915138426644673429779657082636827369196898853280654033949216822388781624142606936962025990719779628884387113096235956532794521192067115678332682311560145347918899224192309570737368115147766104296134444033951702374913368888047610972594102675499946054399239382104135682035351030228456117834994485301501180001763833642853934309815880948122243698908127218070379710023398611074493503856835812026102808683236648998827902929498699903919031770275311210012404897953438965625163942381180763168665066656500593189242542730250798343430842751976635675324963107019110857483434903174819062235124829119273555179147270106580606238885936744067743133912890162802461760716476480057170709593423247324187397134628312298782301967356920739380414453902725213665599752324405826133873930650535783468487842802949816370905692229855069028361956295264080337605521154156845457715748291281261699670955309510780622169369758389023291388823932984416208940420657784775198159159126763587308303708803923175148223821860723779403215299732434972345650937352114726119379185826874730081384187857007703073088520097522944316521046644473608811583265260459604301918361886854637926858653781098440659125865442843383630841983945521743085112202028414356985262715011451531266905960106127328991371206207589815102770228896665979061588619608428853184303453431010224052603764638562907512533804000382043562109959363592723407139617737688342040918847459618365391117163146897588128136602784232073439615750290794275033090940228536480661815733309316240979887063294710816405633318047158723906139475703216539074609987749324806799495565635588470008628147827149092063358758835586790991411758462338179744812761197619380072963874202019432425166886387976754003719929290183791897841853775364879755783173881728828934744108891633404108608616369025127704635091624940122062053570268124600027190659710814808561491162323025950202140477772444984401713482108566415665257553526248493487236629062196407388608520084641353913237438978576842312274686009491365241066464061932687283666694017963589009022620101874191404121712930837628283325661000632036729789203643122432861686785193533016520987267133535581736252840682560747702683291164425308684934170416736984406741357017713567953526564693559173610951874228874120664703571775159096506878049997029183367375323453100588900171854136920160771470333269312778947305175473584652663493065116334167778732483905661245510043972328919622018910612688713700929938646932065736603400501322407024228779710321462692846117511791984471632696425796340257240353741932445180821019795500110485362829040460462100410984156536767624418334539310838758624990279748886053671451772636971737745732878615886043600244092737362708027490933518358503828391984311385251361296717252326846600936942474244308955128446721304589288517635379940269049317412394596650002104651409229372356590641832996548849084494493653716138922963025746495186272526481024582933033243515352559479540643621419894270822924052073133677330283773959109528903463483510861718641690213130522524375721010880116914199015514244244071341194237660000523630235342685869509487682353180344785979722544006276697108786810699996670502743445307905813251610514494863178593348826092066753392060373053853195174518816862249992456088247733923005640359458984375918961327099634226944486928137690834688526440483292697538241607220794131563051328288137944562255835636423806011191854180861644081807222183585211189979246121989109545265046913152281849114546265497802661097716471820384006834484043787994880034369031305113535268041029005219788490725057444774104265961887492002419204546300873342485437213694416542643672053969614996008984569224211314313252763118550483295271817946223358370716103336760963324394745412393342218155721724959464309296309470988099037944124277827816890701986646555562827409414612616873718199577667287028865293604758480705590989804942239463390760736302712520834037435993140517443161191750359397633614037881723404344355566955455490948112336958209493091338661853971118011219926348998633619817475937439867428596219403813312037082797562464840583603345637529345462314822347739885832179046748338982427121033389948780603955272285348186309361379587016166841507253074716012957031315778592740733649112963568638452566613001023513326438159972533502742342814254569485049145203341567565799078006959442454958581480787054167461971563649080159693362271867103174614810241820946126773030110151074954943109360399161663725789755561095029963820938584820408862274289966525242440000106446594064624254957066765225718303828774878913712632834455013883048102969163580719234106200599998325432879430764856888852894438339086174257986582323564630808500808373375975464223318670733575290958877229180395351305940230024646316215833730791853642716741965804294736200853936594553515693590149198963771253059282020839500498454160229693484399783706746117255703998112151018097782809384448394030201958155782781293249918081279475289697072812642815905196155967396787562712977235303869730899976663132619976842027521485125137752039217889756043515885574020661885022234182708350273526553225681362353801762587843325830148163740815345223216051230537257338062604018576062652382821741437082731303089477568062351699162908973373806685562643241976686765536961579851258876739905278450678828885130593966295785961909717764865259956965125046342851436699620740738876480408899580428346149973806893634434701132612798867790885470442789070949634987604915154277901685908143966611279283773872688136816113550243945340069760852529367075811477737974160479975419499673317034453968347914230627962829908945263245079814076867626692006306866614083469417164736204369065495454005409526364196747137992010169176710492987564504003508632050710261965459274463354093976006799796175134001728658621771465963428957380456233261385838631825210140707014774528883435456118915643741720984688322193713124126667999163978396136774004736207821193095734781164850053156321877416127370061837215120457459753141933998504330991087957476271527017146724069369142819130794304382654510933973861028161462693997039423600050544552306975510004193386962669101718457103469534822557611749358740750458040347760362079688044085914591054588593469540136555549423421577768633910156050776020857293990638571716883702816779807060132931511622836571449837683551092095072615039843631605526013883629769206910541168781287549462391824399901720683854770232433128255094709438856329840338568185552919502638242363812081530117742881298860351400271150685114706267957135746386791288492087549540847974535261937541059153727787928296934938492840515523857938522919230338145081334691554677143799232868836681088034084167632232966133224562717218933306787510844709139442395032651386974311466201613835443142689532232622407047642724605823277640424261015118556555922163704594844186361896243920357578663446943384533264423358513312656809904197094484958489159745016541689663354878027724657592522958476756529669415745401002212889608576360228031547419374057889177010690410216501422899773196865925191083991578996873684859844901073061193074495457649303698572872204792340861144309366311445691840605139649922084293926248280822262671080829870460185629575998464976180417182799302848426220291093286999680642636757408691283183654396757457894611510716393561603040556128586341373925043183469002687571595682092188821562146646435456718393866112622092657627082313282540105892698394277622161087426174566526331152503229856697408354542978978870328427140630200078727239494006547173545087273848028759540514937053477843474444347580057527711138966790583162408301756906939271553816431146221738011479964451840375641985275958583192926804416019654484441870466839829594026108357390076800649464111050230701206608662018052533516274692475968137803957452188503364216369284664447454915404913289995979029517700471887211772280097931679600777393988174298102620428705534112372209109681469636989957529014290405557521406772611937480844749729459195153782015735741738758038083049762821775766601436083267570091422742308928185337433579379243199336213333705866529774513567881760440584008184608796023273544502834265649785689027490921687724993845413154309626462802264726061699629537877460990588747925694817061200903255672733306341219216062378574095948412449028434171758923667110125834394505745050445212041244712092754040511462710676347296005376212547739203083678623717476979982898858662870222216979721376178536255131132528167692097401384283547967730897137587678094284036816762737427195489593221841127135617727994177101956208960005343847455735262781096210771614480282041927645036969408459977294266877726045742748614607791303017556981453869059258646900533732961294275506390935760654404859923124077543584263916281778760286913404880346325248142875913424811219009210033993598320094993348762814620475449320348049726093669753555880486780903107646459415096545610142797687325818623119538299453101153215790539281488041239347741453690259773962693994813658033107300770542506875344318887752823290057582444893635470536709363285789835019431597952080857425433287594696963667573560799193302841651226912100443851388068960823634786777262542866948023319401960201064013472942183879048361853521957290772892427785715549250424675543380656240099361102146632408270824618021514748079859353621919233050683093189839909138700892594206859804621299579847050817026609631107092149337159691858835831203828972065316926829392261627986036114521102453402014437793465415559499603186281063213804744928528781806397662611781563981101187971185777324149818207968875464578851669996071617280177389441820521297979422126958783927621884109518523597623076405413613315094739339891409660263995259732895473259947250313931143858091319704115327490731699329694945487118049803408682953188727306447930764993494721009767286966332076171909479450696050936144104434071019183171362734987873225117256960810060265130750996428553430018323476981077343467874980375079184261754163109678355729529748680961435322568852259318806480860773233953634564911045285989311445146485792869978817912630780182827420951461085455111747168993607107845980149239052691175808411211400709901252100074472133604217181279572560761713754551507222667466341419473594642243895704120196900703141392290047904135563157765165126724032064011591804862330636577224940214318449832748209431195370628040945457549799094315255055493394028782587944644837046649631128121941871443933843847090625493429879031508945884818330043124805865383465201813939437195948092916119201084443004172478057457213222339870148169246944023376084236587706249616333862846915895052595292016600490844478800078040053843178517259716612555813837937972117561882602950127063432297553378329873778112772750287709312346829568534239416495529355573397410496069298174046759170657235816436564987491807376554674649826690047641186153980930604905659087840470115733491476536569217632985870886780003468943005442711551998149643053522888122110046367390483487340759616461824819684704505536034587801013004127691110041130495971073930574749452377451366347211675798237423766190781557400000684034778961890825722418406704204987050795439052836128573903115234464865031257067872385784445161726803557899454017447386593462502363267677668443865298205712612321446030843815609198074096162121576296746334039936809892269554053252318542930803874464995868686786765277110605791502429268932324562774467299258962419955677247969555202979372413660621186212157632294454676972978019482946972256321036500072987968117534722654166792189783116889526463809448653926018754520090330939394499222554269066222419462833852273193074684189900490168017977362714588872296015960505175261962835355330868508795893689931691417174253863109697996791052844446898944677104788372308922543262331800020773263274428387879736418031058483442206947474081243594612423958947237129420949835339324249496262291371632933999456895690826684263432424927180991281643424432233952993339785600418914244393432687031203453373641491312955116683342677057489016867399084534875143278222726180873256464858421841099610949021617664041610444368477019885375931021793429328223511167357038944225331509648052462752286973861373175383960266010104006777096993862003165631515996536959489790180798547756686126085386302665048121767037017645980959733711904561155461598607017879432771658327962129327386853228601658981154860278398412130136580844535523255789112528733229897027344500050294603793038611986741325741709585528666779499729121141108791622164576867620936415035979778387900174519322270521156298049366925578471656815785747424067282980723411239497701235672856236024650365569522639252018738719237012843522153422658467950175113167300113725611600704162250177549607847528676793954114457643335333370780984137768501082731513480042781775036025416984793552406870503489279743230535433675865647594095392909527149253951174576572731567971085081775379134701483569555556091464806287096911377154308690047937604144415934064076717810065175720574944429154114906269453985333155543342253212583672797795276640391856973342331187655511863655013917515322697406577433727327695495737434332455351783542967140609123231588260408705009552499011633125428485490103096479678950475473116831234194785266305323823946984566170478594845410508864592245084584280936860764630578325634031883075971152746611789195309146017231871763734608875738103013742816224988363909261880420537519948444619616112565293575415859138731766193804559487201390858356010670498781929163177248819086589347755305819980612287647849269841408906323043117089035670869033996407530821425718512115887029942697622697398649550788395010106578847969762865467479196319132452741569018914455936799589712558291591084291659897956509805729346528074761874706086367165065776614067296015052203626137724542090214581377505568735521964888355956227986691464944769154531953693605651237676225408096289645826572956275957094744392005715852890432715349336827936945137717898066928745970322690226440301757632675694122377393453819718258850527844818207417659215400762512137247677468348538215569748455552829509672636197751768100116573451901228189998214940657603298200313276389591615669568291393160893262181333755669907812286801107573406393270275120162566289733828848184280301993855493590979807808793902045281926927292597971090981145181767637247488237999537478381457034353233461098717122543687005527709141232413639838132920584819017253065209631810467967331168370333815161500619220628499705504113449387394269600303307259267543535567497607997603186264837890184174997690315367000520860453289436935661311672255702377162881144729653747335530082670717868328886550976533157383518357103036952476704380716068513345994253574150462959673445767275788593722971349045226410004554322866416596127675068332397280136824435177755618203106683444994713895911022540640519354475974027736559303024618203077105007712760368628233777792607547760304176257102322582029652284092053922647691190451497061017004945929000063944880251296834278366495266224134878336842481790688640180885636078050567329427111527300030748591380527195934970965970996384023774472820833332868039715577299581092077389589720004801890298489579701391475433782008099182292094933363292056968117278120012468353117133992030424821752801181103003450209078493774115159378261646168918326731039143327514474226788122334582039568906686628349999303745289663157804128099958587875742417373565342043798761282265366678572331253463639291698551893425270538972159735496622313739603968587437895224719604324701240738198263109815659857986759137990644827746129586620468908802337071024830760541205597577279652814921472999729048233176539064519184692419226809554868250349654336052178699422196639118211205850272573304403032931650205975130537788581267162250010117443781479548463049097112101556447294674774014818313519123386297621267462363801016886247987342332414985966627175800185078550571067502702297686053170818456285656647849636629189862803975082508413531060453135653133055830370870409247264050432526090625983087695890173472443168333409676661804492981168575489682171853705480678745880233814836119706281681207661277360260248636094005199363395019385032055249955787440344958953106632554674142161882631047985934392984898812935421301568250285017001618509194921789932378168197650950508454214299251643928297038979531428335604696843892938994947196953504920544023034615423147265054794599827837647456690670885240974846251120757124223149189781688783699183903589293955317313163123088260830351871504862419541592845477326986471045407508376081024651784276104852190746823433337784324485490021336733060062223112731666634814982792339078814500070155677178068866903720584808873940360764030759949029770403546317712241400058164403910701419694927538991089876403694929124745231949704721019010750231722646835713182960625939683924811616685766174893349266393729815768669533105032458672814838442225972362473381950683466829290630594506054136548379671354484893653035983653786723652794254820334029171359563193248119489512464929308239942498446628272464015948807701326380746249207916219202667750010543327173530156831025470433256724628192691855068248277424392526999231426790488516945106630885878457962531649524390343995931239651255216247551000562074122375940668334677076212655815965417288275725699294643616467571782839677099862973840426405116599764887387134921601576683285139414467856751978270730423533483895386847790760462736111988028528327544077208260665243374073470900986329867602793942353151158602083365414705360870587859607466904170204265457125823386553155586414500416600713223769650370462084854996231228167791322521132367920982429342867913597360665922019186328377845691412093452248582170716955529504470162537900270630469621938791219058996855375113840284410512976165555524528355821896906164504269609021466502835109617739918249046487190459743450083557086247712919115063479924709326822934700043061192538594861106332359037672442476810731798062341079653780170678442472144458560831779551132358107614923586724243074660738256324135832618722106697582044791294048629176359817787205455951678377476880770713492039791924408803585209878588927585206483999650754618876138127109927389292708808529544752732066199643217909005816715958736490677502045272781413898685811093085867061587719991247664602193204978716966033152477038931272673528793747309130893685133168460763351681236368245604867709154018267553866736181810899452379438315557977619105419120026657469065399504048100455414276567630897970165950505792462130697039177658151324029874647067286818797929590843646254584159345337431748690281211362622198013465611874298239761235701575226673090659438192564603613538167610215365977554506166431909248704030790704360592668039688480347167596061691614154266491129111483826396273460002687400064100647865582800470107431208847141767207267023990091852306637766557283273515067275854495185564423422263473939105447720216281406981322086137294676842613528975095536517108790591116762712161101616746144869687798103558370704195868058840397709069244781130925605340802021394466831730281689150527486368837472292153641800012813032393091310487259428557938789971637096482615883259095317864083601342867205689121091513054958073569639815733140170262199502601939435657096072284630907567148266039647192028932815088063114852444634290462004500211260666976883919947812056165137057506149910052082389574913609942661502156476581170612995754487214889000276557183943251105252983352959461194427797119595147575160349004653697414265117737836540569727643486586341282998496461889991207590865425823047080644992481918288497531963935230666920679972005433595164257227435444641529166509096105280060554449522189477661279453750190828072248871290718950680661612640314242747597903518201614571274048750488362402078402778562012337603732246623090208051167863369701122276522804262939806656504347647754824336187328894129435100387578186828580855263220853299262557199099037944037605506889997230030033225481407360779271170485110223150268392789181228184307523962538502716659100489438276980036327899615357961308018827236457762462525304755013258548891914616947935251178476221558247556320418592329897986902523541387155408543679783874165493892632850608176663901602574558966316449037724625606652366418454688361181564922956368031557809845460851499939923593148754271187373157087638178032950404914183639197136604060503648250961011093536687631006374760710123102757466838898049172176568744761758612763526504223878756718193818968338438621380039365443705143250607857622182385973314893889200826670723114918737596702631051267093109776151999118887746689388896530385244856539352292996897095325708209640365099445359557621506322532392320498211532918612358876237727146119668627633254025611610425245468060429825822796444780447244493345865290724946264258403586901430966158298455421192603077263588975788635797242216334363298376221495525577626332692087392261011348999696894424923832636198608946634194400273272271512931812272133803750941028583063471809671583831494598551120122038816897954465354225347651719486899630168199484100396841626033472187892607462093791464854469705415737649983798151505644077293843504677575090611795297960057327883779245455862791855800559920291919078607697469543648231471209159670133159887135127514957006470468586502743726270407819051526984454549303239104329614345339074625361659413702049062654094233753531284981827780775238137881693432164839177017637071599634179747949381151619125634686498110302322021804390942457071828785798581145847129041669085690820018668031088846844642140207903239518190269456735984422944860367797594839092629577815116131218512773136508117012777944184390925024486447852157009714690991307689693660386733170975099330609287970337861903477479531895415998898739611267623379789183382516673108376824319723720015404414337117882629535876141214416339038212148613022525171449529583244570643648172526000488611632012347490373734106459812617055269232859321935812373110074424718121377684383552816140398605777957607488471201200421797337200203363511240779349773926474976873011135479227328947194209801196210171764223888853721206325070974052950318559731434050280173461393419346594758585670640101595874042622716381074207075591992926579161939075254512903047867215482555210937945619836938116666919952989256271554742949405704332633564694620760135072332529274101973166893624285255544850865783956320516664297596317809084240303946067019604929373942060574136971553458281748730362667633768918102140880440559428457927691056072343953578867820851665107685672763165379301229811604926516190085653316523309344474569207108069147654731503779973535842331512175986124723072250125563340236475094556112242574792164404801315433737059688971160344143272549454980803069339827600174227143362230608761001727133642463767460187772695343142937770399453821374965406786655452132377703283644634046571746526561486521900934138715802934996899172205004282032193235503585607457994669946005931553023058019209967549890898521595043829965468215872706309860339523093831389536042817450127883761043417462114145989729040197321137659103761228169878760718646998586513890205763653156557430541776301048462251488527994388499528214297059162178862486612273412929448091397221655409618390977548559703468527205996474793346292395622267737536751651951112404010801135652058196733203865580861295246598563730880436574095742944035957592856541919370550475362694429285500377176220330118192697881577030947492838256209539283528201736669811967551040489553828573391695228424186311131732490507837672012795242938985988094628974985795363848781687881757193510007601013180628177766291051174958046860981895253355556727074807558817857066609218117987006169049228257531147521691054658052503033221641283031484044135696236978231853759620175556674835241905536139714130508354712865917528862622343480731760905314650925812189603979459487445984568488553978658360351271911559242940715419698246115447079934725670019696887323282349801872224401654570156774927361024868420510200053532613525968848081899487713519455796972542822987897283595400044077536953164060583125300768751099781681767595610321559135217322533645215312092147432113939779340364329075501849427232500405881465398051918473957469162166735440561802921831478961872685779792080630755234615101394246139205234643814377590248573850635512765192546955328952993904268528796309541690781817066216596379995365450807306175567640822907504306830954726776042203775878267109852923071913628966128446786173638156925646479242605276416677934605896585563103835179791880269198938194866317147261333332328014919007391671126506057739308517035792293156421568846855578558114574357494308291096420543284949447722465652027399872439256122403139335742314746556611272034848145041619876735768620089890670049413256103576375727624343841964972528836056172622591676584777645383668419237846180932361255150587917642637048035273670892482563161257329118120492996175350935714937144086447479342619914832042942884528837872633007498702335436008400156045541871896817444004386381632501895867911845090838459926645676715443390899344936792119577793463961238310443323403944108049478853594160274051046796919221627326858441540835671274757092251301640840214858141337718572520452281759444287396300049582382522290009715945155345045937487847475649619459844953058531879935344590344784479195584545909906484038115120934975918516762858298916240421886698998250475816410351868240499737491383753755056978041683486578156982145360894771998911043294935538901051606159395093519359809495329717638959604108369341515114610556000619741062529206211599325865301007537729948339844400945168800093785922011626805743328407897931491690796899978142810544123859666623471854902379708229072666865281391133856609583853146860111361190392997005868286786215312582360015363059494574043894994714173841851839791594568809746182594835756708057492929499319079839608321293203967422760865599235843344743843133653234856716920701415697771647611591955717549724821015527750451800535746862537737525625623459278316648953171646670637184343589926944096517324117216959757016685802244609022775190774046328050662945668774811846378034895870806073875175925243729036980858443287715952700099005508758717627424323125361712756223078957087815835780199423304297266885203843242625747291984455649687130975868157853136178531904751747049018070700938911300716229055529546742110666808277197189980100965575335122444400284582409644148588553021834813048310851334051361477404167832525856635857306735589431913780768179513926583896516829063238446833237692774930677060473385128327662570144601468978791215490912849681635530735128562999604594335919457998885977021257876080381919173627040442579868174084289382495527674765756275800223317748240741583977477566569215929151716440244377611578969942095865783613169950031005695840258791901963001892257220971812670299860032116158787946199584410068371141566855780765081337820165059435695627814236030751777401724428365633998786250762406363481516110865287066460596774239429214547210553400279653667696264299832820829631852215247045638852449563440011130710161943068958892234049007972970182504605021865619239993624166622219381885135317128049751705963320193830597620966598922274552305718466849663915419986334362174033018779034027155317869313437710672920139787207311367206167753802731814464839267004269538868124957385784135459792383804996832346927586350385403862496248586350103814145478600663152205126353369246156340578942798918711296583682014473899326800814550721205882099611970173442845439229770823077146748449872678250917680665087901688249447490513866647132867264357787353526380127875833997417949837539426658808226435765988580445637688453150465225185918008457832981307092394015443877887611914463051799839642335585565776261475708966789793105917803054018555776620656036371632627109990420525927989536674406834360892713691289630084542740701673816587837486173163853040604318109590387524588323124900441732531525969493946650021646372752506430425916881588214008892724806308613516499271006449986445875529210966447415046088263125214655237372601470438872497320446723082617272839636087271976201505575495612358378991811290779106858544446128320612935316199934036298542786128748877402540480256292435690105046187181890901293577787758490884383327531996844537384829104289838646593872271143352325817813288734909159076545907454559595241882334012081355554155882156148615706954132490656888008657114596066251954123489094906893640159212891211643362897693376382548981541522305850182189703996620458324930900978356320484056166112960735522863076711254395173934764314223691149590647508724252020716552928031297844440517525178015584784915960768714472459674927684275820575440830732225222470682918062253948794709546359501705267372811874875610669411709067620627876808245802880040895444223331186933431831624988388894343616462574149142483133334051572890595273984585290303596395142239269513185734141071717122541239016737650498946086468448134802230874067942117465018897057819738261838713674330415409202298378008106677079094630876047265036047448326635221322618855176352229905861679147148815325752903774596143320244736611079552374836729858943979627547794704575169291627206746630695622001122329635470024987108917539358416359013247911821682123784887043503897299844653912858758471949724494678135463303882251127894032183488352405778738697074997730063287385367981395863774390152956731814660289132740507696688238538887419606320923730594837457458147671187816632075946635199680898564806493635488098355655722745296932261488754482914108275315485859310515410345138786615436606001117829537579472315400780445540136676853257961416946177886911507304239421850227288547091221689610473528923281170447822540626385697445272735099406537587085789458945207167691024655407809002594957384673388204200737461654175766110546411242787123919099181146243012210514900871376590128800284362664823350539744105982537016376657743732236367997565378612439113703567232633316560221872880063843668136147783758117416224829145327118262501282377242264115677998220916580489073453663517020788454772514911446129337270234804432411403437947079188474600657292210745183451299171073964958188170494347959846950534333422597054942330894973512790277632177387025870094211354193445066918173625868102655372422868045013606502524638486287357057281602602564547401860382246850668712081943971133578901333650906561623013776342347697686922271999238399322065246112869240962754244539713332423097530974575213443437794797736210863635328518078122085401233886842044646084678480688137459614348330347930359126274093777479799768978353561075606004966945305927333944190487168250965572448153095485555012875741318190454813383058376360933851085091969520312756545233433139256209103641793539309857899229151941412535622953550423745130846130743540835934860150046513821669668082251693383691167676335928549378290129029081376847784635382186062750380243049647375992700775855103524555131879735802973118843863026465869055808756934299913454325398701113790335514576445780827532544470864783704896057258356039202120233889019235925310999940279437304993494268253727097575284191747012403760105361275646404445904627282817359460329750559589522409880607673356054536606109770794651741592508624786749667591267235711175612711755481691994619684929924035023557078728540940176920262267204528379039264463097361354515675020993451768149811079108824627180372242466284236232928849341915569261791276051407250440367609719625335742240060876495308179389055000176428840855915777068044965413445714616646467095470930568838916669759682258117401378962429914874976168949431843433910462341786260492146619799500140282132400709490860169513706081069689664254230240108499994325078403757467857837748779703392320707384441105753070049454542544073492302835847016153465791103587249758112609593324789267235285053013917085577400097493065965925117544787368352937389767174254826302367259408248412931751651098722541721730082933773891699905103081862119301602200030531616022847221098352385853951499370878656523300660866205760577331114886642144530049878597096255192473473678135832911876145254754131634175468826036614669043303381168995050111987520562025137273851967135432127077192201577217805220760675086112621075044617671038895052232302757762160431728693071821808059398656575778819713127141501195327129196500724398871760639107382470813502052484834821815528129032515854711423372203933614458220181819932026437663468294114198533116273565196370535409609316381587242192811058292429112615237457150789300650863291450732455651596740746360771138999609272645930661616574298873673920943851735265117787347302410849567487253688941171977060753301945475547086833795473425893433646135629899574881514889502494284906032770223672624570654475961893479734343153597731770406295586896104058164653080514150851328313489825294202314755351138430077919448358224727358649525098806990300227625459308172809865001643660534544106636759030572915061393085864655854364411941746496322526814413611636403981398530642827165126011227531010925243972238301757029693527479193532492233426261626805759847211803334597342254977151224717576062502602866174048804757226150620968495132376425698306370069672698334960753461149826869237790777470749235816217278765093165384143807656772816472975660804574430277324294594118078937699095333150849242009017776451237641114547976367018251547586402554935244178531739086351853828504833773802788408981725326579210871898010928167527366955909628879758621873379676561457645247772505162649054345321609849616857166070610578368729758753828905615415369069414963950444598396137039062115685169676418117756830200455827707690541178518049140476747876720037178654593871184848305434574451812989742820667448842629002904352686674422089173877264215375903884810340067994207552438636626115595353706269546236609823027106396707961731125724541471860938645810042506394309968179751908266197235309235932298343770995816471541882373985093650794309724460831846993621242378699291924712938592819883802132042456287732081221174044386116109948692877360850570343048858248654878804154165936138600309678226603762119032192052789892160238713356526342697469852400936319283697138707122912868256562129074471591142914412375652304211862052519354880989927533126452435413073611873481665674328191056825889960042380791830467110172600612628951331330137019021117856577887266671187572692607393465017627928648388783424084746030115096985535203114613939505795474139385986693905614564618445459452503103136984604922413381089832318677545863190308404259512192411672194268350960893537245789740899140814536906550996599573960082496222405153912645185482244985287353614889882227793072138954982050108379145333300392222510588322297753516799328798998952418022918383749366323308779048908984949083194358558946043129308595750718871405784474877214265547202020352857008973687631752025662904776403260957173225884359515897552826471999704585309138171842474151338261924658225615584660449982364707469133103010683503946030711934272867936399863134379427885330318551256290911836827764357014093308917377294581949090291430504032163754638591008545714129970450690619682154773523035083165456351087229312923667300319175790320706709541459740601651767840222173943646507244464918560938888931242691857865367432750563544637573239075176497941311549777866876144390375010134179660991523997771276646699271111333505588804693652195190796537220400271125677092835703232792726467875136801406388819719727932505513810080300020746448610076178761026721883890954406425517807727841482224580541135597228869610339110380366025465292277416646788136616050566765755308921746416858899110836694236293452563353570687015273946647915399938454568354858218154998996560804104947560228667731687005715034465881458569199470735003268955767445356848435516311483020720649507795589818020452835104810967166465807749530258351715850006196283260069860246595905149671276628423802070766822305424268158868269120328932922916821342572870736771859278829828034824200517659805285686364853711071008625805085222740744566113425619693281197595218683205578760104533380196069937733379286024984368102299085710966420858713391573400586919913355746328273678134869613082117910031740891586013755672786442497431108619080379309056651530658289389625422718131881243401992045466905894577230123514722658377186929310799007127101461910369616149695353068601633228444389109761555470806932398170993828466858692853831455492905894495165662944279165965957614824115500226540193653271623929416776706574368698398361497115808021983013642895883005448883665401832807738829228474796745251319407224893729289241167300091445552684685447596203136475935792617207433219675014591097846399291431679766056400229088434621098705076339169688206459319728585966023569637079687435403042079805062978225765455150843534715030106087638720175123838562298033092215023431463168467988788539622374073675253999949091640215283255495428299774527503390940946912058364698203960344869735976475981190368111137690526680460029414482133333192909129917981438163877721096130886923480272973941598317436448211049259250685639534897775937691250611625737803746519801912046034918971319434785452565579169276259108007077777056169914256220085295778230612286475325251092451657310882972445819372953615030194514950792962239671601343754131407225584168281270916789727063944360019087833031072940614517482575437061066491035804267022029390712782152257183227007763994090912203840136038275836415700139573607687200742843209421453086342481597171146401724254413761516618413062482352372627084179955152140077475600702846450755072418089666063454415582799369832035787009856697665898976371991527693352768342172699222930471378024255116699175893577124575898696475285616366039721096474547210134418133117251689824453856480929837816149648876325631273068322104844646488976978136259827763082695631610855114424961805437331109035501695261439297352850967418061774260078655091529640099002284196623820253397225080006972148136620502715259002163388998731454728882597137180455290790928037102076639275883666389872498322492724224564075957927081489123555765026222019508365521582677121031957988281404105633226445198352749759598057537726685459931001375262874397876163022836907354100966357221051976487320597559162205187425943457710200797205074150477562952191260465770564523185940464860424488338149223789616026456773841824932705458241790225063414253519965429960413749142008262813784226848456943167815576804621850889769168782003147370373653768864153896917242351536188862230507165324335373873894658349410138994515062637412649287788333142521904680126988643797743050106335930363055848960493320716818649194027552268952572385467988031845017799014543689007115881079597525373963451943482676004640445179043269919465382765464334825719512014910424882766304621576518351056188129537470235451299478954043857920293774403008708524013212312762637296986119540224718678680873653132918761370145183435374486385935766726430408053346163493477642222590330906038740845892128281554371956581438765488798807632181189993823032445726497296926952554904996465693611487403619928483214361615265970243119643948175717239516176101166467883519415129490670524502540214430688769226262326915942887585822279335200398028383772334925263951980779210095985119342079855387215327127561766125913547407602662178518955038762944599254263501634598088108411195633820197363539151779253959629550598698671583255305479555964405530851021924455952456792768775242033232393161479722106374438456698040607939458838119048978807501716932635331490553771863806716246311085999871492311258989890812253132418288726961639024958908979035744402645960738382668677139633666700704655866756087648277378111964296017486377498473754093877113279519250909326533874246911337105635339091786131479114962656032008656577361116072936665632390898284254725476424243462075098484723897039692395199377937320328375184726542950244566891533273139070456956073492332097092614773737515911700609999741386439323873773222615624725217658441256173305479423687010348522566138212689799121897531974157751577401667809281038555790436105628181008815013766708901081111088400806190843503914012779978597282831626645947574646782982999078661038508697864515021601811220720668622207640719371847172972031898544189953963406273804956407129697216039239413019073465232780016413729988510762916915993844864807023454293962363003425462193888533800502772190168825425466171665096107463371825720243246288848331209079786667459818930504086120460274550375944418793179418449112351571540059999415260304587958350595250895941769294628169272736354374945826877848502203750661291321017762747575618270306905413812766104119646134739659738282901205637001761735369403362597833251323170724971123394689770685399919610933386366183868414939694153123855048582954164373964597989762735990882347520107189645428007238156211222131435103233552527717504822362798739780819299806089596297936533707022107959369421798397275465032042159540610390447906506225826226240697178131096856499011029463965376972826070945222137265594080110292089414465778849743869057670118774404483732387886560762055497449665247713701828264982035084567168628600099920780065081142571465128906720996380812268230026241090503499825711242202851189943366040320176294502860081369599841348898100292697213799721809959592801652850692321139593379031446102422610938994852355090728860584043278453281306431626966186223041056300671055982159672182933192666675254668294972378391606918900680512977944992857579714561810990843150335557286398263148969580689171298104835745154066232925065254035301134037218356468215533587816383288355840357078336177193039835973080489346179928527494199079275880471155872102777493097133108023481496752973742177879779654713090402873716106591521871991400721164354057409039252199784308750228105049722092237205717961751610482572482658935022766304315407843223801179829894265549455880672420800622690095436525463653704971368300677213588433055352907871607915104637567524384230852099591161117566588374226400310633706364154461217227691291837897619066717112258671595764848358276728584146275817604106806101264758747310955390510586166552193144980071356758069525711725122565391736737188417584668464787707929115089940030643505409738434256876265403199573742570279476885008798785531771990901385033545990966353654186192048430530413098566023094885671104692849362064757106876716125575900101406544874145662342729411856801047389938223368871654722661615562193031974362358205115773804924329605401354539229862410876801522372981425766284829622232660149218713998912349033676997628357531781638826024956061110474216035966321658672161675493588698159013174352696851148104256729649228427045081549717518826461847911602237929291281709675209077158529938382389495914951767646214159499706934095545671113206230887854604401710977873463598873688520557492097328911977963036161141908616027034532702965099506153171906027325398139278233247479184564872850422453277778685579793839048843394746589263758792102282933605257783462288749743477226717737391128893650420939552581362045417729285592106309471343052245786743743672665848623545669426229968253712319382127394884979020134873963518541239495598609033390096813044593255556136897188400787950500689328364845456316509122004640575317927384481496126759466718571225479051489364813434925649402393565391641640585350795535457546986595128138618618201530088013622162797918109106970191255974675544576255036344181634216530946874242823149230741681088890440730272666554914248997336771427170592379217632526653507043044406397798531169533472118778733283078391679472179269644192929364368082124318545386768098760272229012655515806823382495611013613778008284271682494923622737966658102428005600332725985484745263237301864540090587147345227008618041399411413143318485522239157641366167477230122470062684937369742078235602840218689530666217947249170780179910357066760524795227238024732447610899061779682958771161170826714626517293942783323826057818105948781556458040200717098514221602718630746225894381062665723409677336156109685315708091146544217998720122589675333061665561103973037738358730914298690404767700887582296705371316999809259344796665124910517985640279708911701542741503996476820300871149893600016703758677726592180301661901520305727292779457813749938888438305573779836699867059718006968595718061887735465155039174428375784756756637257959782079525083655273563206399368898332450723776924880354882149634039785638084783849204413695029488733885993502500409173698010369680404576420391129783270957811328367159557753164302465923612355116410862253379607649197557854502055819200231072161599708535250888975368882633015600966422850172461697638421078027866951987962632119609338374186080010520736833999686272001651747678548540205073443697035794247454816688730326840144169247555235105975596650701898699206227107911573174872536117201261753892305540750354443082350606395475394923250661679331805279148024934248571082541661047907397481504498963669264200508324597703548320872708060435695421990100735170320372140974568374855893079064413470009691290892722057726489136896660747110385129448129202771944277714886113053830309153752838864063456676528594811888640805021933722070789438999221487888119598223349852002784502231286730588579064285501388410059431672114629754127677010521042921574913130565488942354622666130042639793137892100407705645733900980379917693385627695103050452088108095511388077970514101616741463510761876919600837252718502056233306185380967582552085313112991275252408599831029225339566210064708228193164203078568634943844290699131102392993789543125770291882157921191106204302328985485311774529270801037685668712226054610395840161007813175325116653057412243709419166393024373789987768106328941833888680418356423365262382869049580249032772375048196250594275969197213357400518033828573504679708498294683176515391103875324886733336365314498129680130304100292296589444822491643324270273057132669629990286913984519746598410529836098327716518035470495771665568838489103955046937655750784109220078080059326071964576763404727220423741291135306134859843230495760871600273127350387369508726297222162609157620200544205549629960864769678196839823494914753437877183080498913584839483389751880358722859042503718040825897811155355138021520234765439988187165143997368856375571526219208064739356292606356639272188145973049259916246689702423481414495170636874999843303289672680741062930332761930708934470085827143210237184114216263817373989231073321744849435618356761751971538384748914598529695061361866501325397678501959610672606560673217735029882717589613082929126250913108757615079944244570051315840913070927693240696152691352292647542504907114586912586593563874056280859662205581497532132018465983554469047335568323145717422241996662395131573606700631593368475893868933975027544600154193201280118434014347894142142422152865110319317874376435623872155753029562724461162956704521243703866019282254165258834846226717545051954807649954728031744715647980129606065573246625965589699996370191361967332623738722144978629688705150901483611032533824182219964014247249905765601298092019154431102419133687046083921609285753246950734631058417037744038755456181409195634235000760918665763457752579942096204569330714705549316246790755331509175946783931213283625386535011401771362821956133149812822731272524354545889050903193042530814982657688510071442146292190855387861212683289289827503299752476474845015833509703438263457783264212330057902361930514130761641681008237481020603967136419326829158553064287353095314699138487371673473232674578086656621949500967059570879113959529412623541841011448162815769907402326728335245826443064693891080284487812724898388831749275885348700193224548260894720883140650046955573345506064874688612075868010263044950964152844680373283161615518010145121645923635047037979684950626550419036099360529354783684772925185403576625269546645766628612053544388757435030817960513789852525022099389995592239733368306501973854537897553781784517289106620408605533178426017381265959244885528122863750721489248321930096339476149119903004768252643216420939216494131710693835600966513392826142291175612376416999916934655078581246929337980512666369362163018786652683675633525959116253262623050567025085798368527789280293752516638448298230208574470249956992620313063384690144420196790711165820362512821815024678181180315878802527905007152658042298785312558781791495079812748863997740190464975425917942434323546869226373823581255346761997521771155540655061896584501016223120425024625419817490001348843495292227657769588922866753109077440603498141006792990897396487097665067176146800240826622411232548491137451263587626280907644839830987285298088163948059053694487338554864646333623463512241327554349587741017041059880775105795315010257787473852600077684458118693604860377120357969487633911702274016036272169658734411806226915801045093264471244253599930928979092723463028202640004332203326187337722721415133311861386223087638317198248383004861593284950400917906171677576870485825670397892968925710237253254720912877847539926873636238272112997044318666618455961528857263917441012012712026051455374836325772416313782775429426784898471094261677181612250890224315162412901342042542187044118086359246971177580498391058758483876093718370856832946551777104172344824213165858678973972156481287081212291607623409557713113127071750550972560657111587687192127344703454924240001086808283289722310991761567467363005525084215278920210776352693776953393184656333550053196011899666758017179388032018331510424194771169838400189829677578001713658687178563117801861480251909999824382436958224968302700540242626452055105337632027895210697920673682624956844394166369264188011732454268273617714090578103443619149167218487943607217576291574047806236845242579278050127492550682357726198051883658757107125778509104404096657577048228857591302333867850703753649905328549421184463498956346935686511836878613905550678294615802986458148607922093858382839824563594557861369813648254537603690231311498893557373248416507196020455792983546458053554851116738573211077451134556685603055928004631518119715116787295742115741336129677491116266031917308811317982445554589405736702455778096357148286275944631162698218363428473017850785015476917660655501250251399562320517470467598967264339083532234439663609518234427261534071669913602567457523066495812795118450708393478216795233097641489729165958171974424752784235211394581374256048303076112299889115837087594884459088265911430689699620111828150922269087608621155852994707601315405445674186708780227613716814872992656324574379802919101235735593844454507158235253332320092752119462348299567172141761162009476796296556751461567499327861752723392593229519331691899139254897244673634063179687770003016951042459859984608169081316084333084938893843109571631786723614631325326949434346739644424180938289365587394798809556125368351349868422189533539328321794103620705313488451764272008141389847458503777158560856727848010175306753118356051143413194125770093366902836745119924024560855969384032610592093798308527051682078227916969144030440282738138643166168916863439185358648643640648103881097759033919443596465670379052502597266587773909420356585496049573350395122905449566842423233837857716651985437232384285495467707217931077870173162712337326820139512854247205176636535870052577338299492189767205534844390059449916632251226470331877240449727972233993612783599804716311022988423290878982874730098561826335832963771345927481429728097108132802950676100095326211415588142915626913697003853677062763736013976346375029282194077633310383518711518264869561981454028195135311662447037910000119481460159749464370528901193323118853155471279349798084068610875391459195364734611612575947653131246864199701944582079713144813573833977574402869311775274679259282714773258831102421086855601643651326050337891505448839059297596090455190608833565165113345616258411199734945241848270511931211148087473008734035290868182610761078879567471790851667747776122705885730331263020818338168607968152175579502281252396841153963064609181742698728910506686925782932666075281377191456310328933026376482650263218055832001204624373938753727355406854816565447816319592460451901114070559515401184251086301455998198761696958008648779701066916209218904998786494264368885440578039912603537172039125221027096074313184987075147937187990403379438447589337453036738607255620072200449030359402479648466759285554846513570254109222006111405343919119333851467055807482333843658450376744542383624110826216387938945211574314551858094767276142964040324808929312610439713704517513814990456057948607312480722154264306284332478909252674468294824461796748555910138284995455856663194196861302862164278423729236482850208853995231972860826466921649936965113898566276581478419751365644710254153183320992356483349038843485157843040129675487068649103605086841543230617493598229947859864502121589420127152978253546503808589071499026451937582771793602378870721326184728441283715518968979697678802691371151235396130529658211965570712447701777155408831817998699638239412271937585965448209023152525438954646967935639952150695292528863680995916118057000045637420950109148547108435094422672027073066978980906924902369478007936381611425595664841427447210894326876181564953282558444116998714209376164354782084914454207963696178187541172358023939171635472530097522039074560499276264309311840738335060753624985058294661223507682654400037059270291031794915083445284955302063305396651606051904175189565941842016239057086705897504372830113254425698537693063353513262428904664341415134874165937524724700255339524943401581458684778083045130129480920239128972780481150240341415146886238732177726527691379671286597137834393806164402687261523242890741723276015960733729243963848055103571386435034979740323678541305650250773722739832696332636807610543400752127398743540463733964530712187033724969784803049743821284915979047529596121815426591000278359526658271706500534123280364099217336701010413040945318078980450381530689661697676843169639477840684043419602934096319284809454344578397487633352822380086354424993879100653639637580169744453469973798148173237965715544474584669562680579081348524581595295683726201478623547311100490391563022992458605945125411835363694814195150379985024765692136223097963316961760526010371072013417665395455610609512720035051463432167165150527462234680085022496859286885852589228485473642963152173947637005944842583242593805370722714392965074431683739921688193304638584596000301133262878010872407789451726339507198613606496206547933467983751078949094481122600418944717151419552061769290274247988664579750532434012492160836675180649077618821117358295441324322692675926079497686390459700848279792740966257858830394941401780992454413591047984529388911583649095692845126639015093370176237547421344880857660471408606125554599837145562103350470580393394028697014109093008370581481316116052496371731613856013636874263879995742185917299124209783666315614404383821968539949884548431960126682616823842008699874391834610343077742597281829031061238051620226729385709887954252703928454186049790063750542223595940762981906098850825019868278521400592083262825733941594268961854110891165542080282196611946525322374373632165118159567419047218295891629029592842958731439828306540924082334253695132248775456432140666781296515801790685908899725739733953925074216988143769176455210552691456974712907992772166837614125109871603431743183005831961978572711148100098827946736215005432565483967753678877686213445585283812190022565255615881944598971280375434087669861098919839697106234302645843707455027948472047615448436377682337067191221230212008194843254655360753059794772548615176597424149844064370522888864075994552838944986845826285413923529793242448678306531953805129853028392161307910153529195143532561980569282476316559460122444421260765335389068962026979554622052024060459190196237540474735584823840133072957756750097489643526927040015265771621064435643214668852846451826104382380705413921510457010510446540988808942748478773741020347675015400484187750679821769425255730763304914963925173441421871999416342138804956954568151313354206589494090795973374875939250051485668964034221668632981685497434663067591342477683559492929852362418513223567462385891313585737570605097015508044287384690163592678853026844186979948303297733323827731115033870935811268545658235069629047603376533734003714784440702503848806080949195071976962956242863191541855057629394481481636709359811788880664482167421216859231099561026532991203611786542467235770769532089668619796830550437771832192248289720130212230142420459608256272583081402888620864764145626385355460210811029510665848016859835986500995741874319370322658972654532108776777227906705819573592897043060029455513223157653635324619782765989291337520003369521154373964173327986677066387050527202146876317515667097979332906056592263785068167227944976877899032171946453439829557065059736793236930623115235010555842878067263009439394962325023381617091462322078122882251378065280416969856857149293368723029170557396062723067609614731628140155565612866788324320660033240504130737723845442718048985937599649203227681253280856601753443278426648712123898268819326393788078312489305927812021413820692275168738353654027367827598000774554656845593029693617843282150920485411994180500842617886543786790378126093407048401059406994586232144475496339106092784456453571355704938081313527737145579669138128986939111345248322439562063235996355870450840001671630216250314851233081062220075964625284113634740441467869320838768025357144077571090918363544312214185534813172719850297165018609170435440207911152591714604215514862910706739935659516605919942214415445112647409243758948052136810543749779284406137222083689260676022663827021283211269859459709951946122853861473432152497433752997949177022021490201547131078955642885975418983756072374222667170346014349912134753134259544081631086397789645241123063808177857074382091511099894734975800085601249559312409231693431831779252647264027633938559671270372323296306535488427395237743118072773473072927661428577753186593273457665668016689016847028663940973875858790649000648751619826296865426501818721272396609757173834216559807038681594943712799169890095392467284631439844518098551489835988231710478511239932316408618328846391681501673773603733751461978956570148504799340101561466166089711659912616601571608928746318010165134719428050661282895143883882422758429424538394495366936568328171809621130622158247296733993737509344887008440234390940665192245672787279514424024106382476603503054184809491071493946955319708502981220952810536582803235327890030992153803703571949091589957768880613744308032784619198687600818413802595601856905542423356025494423318232563349550370196817077998887768526865678107975623684388128440586582272524142615695318480879872848215339328764957512295360229280895582647656057275285665146099088784632559725175482215348560173873212347993725169334310317599814614160227338886480461715717195398242755538775002021170464378849303725557391578424398731603254808609507926018322876242971114246146778270218315013463779947990598176197992315613408335182624750145221562771353367859849065027121088495886984111384431101985304652569858487244348588700677865977304833378581593370948157287751879438357796381931280971008359436195722153892162323556964033262846846042850869367957152104832748840988882099372742398738934102938634892912631387752727223483608555144188741155764659526177071050565034729864841781366860133062720813309940291297130919626996107061679445551904788485319890362634809877061109217663146782533951392548409120837966606278010037738009373190731612829439463019944283735288446874556105437927474429094978179607732449155067606644636861618266975968728385080599100773586142383312973467654515367613041575683677591122772370827056886758404927350783235977131814013405249598932556228977332328001423022539963526286332070743310080448140390686795014283843753404667700079521967426818523373158388938697630662470974572237489832336420616816490046331450467686957141541692334542193080109894890014402181422327078176481554822379041485886568598549115192801887615440397963713352894451719001404338098943462969589099091639781214795309325856637778516841231985846740501185135495866769414394275551350368476999326209105253583186921717121742556801682661425097537317097064068105961015948137594637651845345446972493219264577127247530165377095095947359403546982206464826480565008400626896122230921389684295855770582757576010177053126400187753156722032450122811813287977127223291897920484424865992304677881620920572193626290040196228526674787712276750226124880546657867804528614218697413341158521437426927762145208754054415979439312147672678733071178910603054315194566441332830201368357695955527382954036763970029291742719540304374064230829448625579675615467815234811332031912266259875209789040635884561866267152871556249671339189886066472965210697505402018795715948071178958460727591800901711705058178039218389348617054202603981524546874890329193327964299403243630674237060280468956466194531360559834783875715797424217333260416604486263101038674494476211879059336409863159662247404256051387882140447345128057903777000461027232841655790523231438395823928730034600419031362061328581425333492005638504408559060338582171364652455788052571033943853504474855698941385322992768596531701101285051841513560724906669946097487206137969875859480710218635435333473945408993122230028288957958839725344071367219751252702598221057322990398369209816268509104831202386420150563503729741271112549909414816144033574645514108200675358055490222738336444799137921400956368730716159388730976265715492501648434774125051079915573982836676463938432067408226385985555991459342266734254598530308028387133016529886022256046317779100274030433642701713512364454785883728173480460712986107050649549700512744322412329248580185684509066404865804107892423017875345424945247091615811454511393795270425181962411956877105503965497760439826647237900314334597842848888046501473525208662878945306035574903053807679325394964879985090411249141372628063033212159515085792730818041972704715831716571525816068300703837562389721716077523065696869566195243025149774637139037051730174508442541529724541554713880401938374728781362354496207366322301512552017145831674778410252947853165203482389730774767724911756686417611333604964677795547538962429185646530299107127570484953281756414544827877018388791424943078227119268667318550911809978866865618876198833823880936844022402226379371142537982661702511157495498418715307151417820685223407909219638508382895143880601452363329901420795740787606053713535633399578979331172944944773770395496287870149446972152711834154411195729236103768750274791108572633564333305974900623808310097387067367302883701129002359405011619571840696659622186287590424211791425384707281797375180084786768656234798215668002262808020902058179380770464990491515633100371459303163517643861669455011977195999579447510967087593096028538277884265854000625486170107503481456397111806101458681472102839879491558637296399879777865230100008454985781045440686054415427459577482470253733474777714988022155795886772869582654923039258262840477958304383768004189143895345091394911483176488171165441794120045462241298662399204220105348741502378172377459588153315035149146506387624358042892806630018520206485971478820521135639375278464896347613495381009318774421008208496630894314166323923027122439445383772208817111551505727634743411817249614717252759156844578306965859219364680473408384186567926435627744956478244637842280242524247531861086273831166387773191035001161339487112691849733022184237496279000610689373599223472378954060767631212611610482631785712028024297023954086212638655923950147967809070913727534019012933258062990461255990984081400405320138235303033374352154902329698093505128229392153048288190048010270606573752020693638879576416791739451824716817526787226538800866626988283927604238770608537072301933265562258786449461328992500678992276527663597089815594734260686176071782454756905993801203252862718507080078235468770782912207965621240225297693020062107017832418057607646407659529694399895558218973096341147336492138164739985297231939216895058458230543893669472946437658093250974794149561026305874241635369123984441360855599034661667787206410790242710273749668371085790326617038679874810783664629543724386486310976645297965195863944204765832037188822090828048255400638355863545234756499629270063865146803340611735137497200220822544703906121209914574904144548043761208772934914901498734838115903084839703447455685377289709306439030978895787290102663686835749907648268474248972440177781080750628733895981509379435505900396489434388241923222850510322795290379761205840666009323094464192291068294981269063608714770897944695191509709160212026305500753069300342877547296232680116237827812281389436089736031530340199672696627013664007951685764291966113466839784099626190021145309001201121558633115057615521364842491793744175046925695921754951833318884614047194511539365763280918235801973984754723033474962258998434200430721663390663965176808511862887358241454924374969308559888206583007869333611734557242025942791919787798600994779692491079044381549254050535635004638763895127375422939327167424501231198345878035097420724488524504662061342593402477905384439156611146177173333978638914291766792665044564801565652569940483725005996507228612360858680648343625977689906538016010858676925499076829575929368476059763200635357864089826414346947341119425127720477001764538546683093813841349085576571713900603059040345556983469237725084233720146458948530990615110139523450217664731738282924855813132674001734206866136566293642570644379524210775489381634700354854637488006897699740784164322711083223375904876546300056201684155415536174414090075875249111199124185189862923384217060271778122432427734832635396818661940867735384121431920986792963737666718114345997378714780460247193273591350352469773024801824721579339749203611959811663274929960363582554642553381647605570409790057146732509236846766087945312610514855338358092434786381642668789140538524321496689042671849614469976643941026635811624182244288556931412480874685576917917819436158045043339522079011145800773210916554017721859986909138978493994439230501254389237046143694514431706555506423391859128808398220573456089534014184366820814099617612920915342361983630111295668883329292874106003077314549881832549302124827831262130085142104175140759838461647884501968121686128796658428661755848016909648440623652946925869063496302036246427872927063236770420182231982496654264606236323063526193545610203496499899752667175031088487392552806416135103146419421460429685418948501833815324122723702555313252124394666878539834206307405607016299765100069966961745546187887311920701134725933865726525281966240915442793642609489793437858227906114990131163405556631449035879427345132687440605917425859307499324850174302863062690510949888314963106727061415621155077082594151972208051676795978964935709729750681292661366653644173584405617146357198369940775646916058460626178216148523351695031888138394213120165155450924513238509871839341015505817247718895594909291285807747196419359638673342220986538289871173648536200288096980359735799505220847598737841465211598782913303576777121641836277867356738911069852118656382684344168943422468926708811444043478473368448412997859437242439749361776435347095590251609076831738328180955857135566538459486489299761863341745444739762547271588813903093461998465466969177706371404167866432281035580956296731446212970156993246936162663080620478103280243606475610726757726877411256616930566738435356009606088219485064832074237600858736333076057736053069769596537600510982359927768741163747937073321956230614329070341724709473788143278860396764780811281656082709169263223338788931315824525466624367669863848336691766686933643967491663566528597804412859845500994460755498415480874012274257021021582323239971773926028633421555093104087227122349227896450020577246471802830331349256762482845836904877479770095203430088408320495415599113116539689352102341048542834628173358707944299812136966320558153970653078366655650877631765374099144815105463446428125665138808100819452126756157011076817338594572181163643079570489237104948775549677571634259926607317147285275651253895382727616200422438312215512932362768035032697221481561582083828127476219900689785455069128797436037195828825829103874725111874908298103589076996190025160600771494423344604415216315753299733807028812102864200128210380231951398399767379138573140482511359493938600529321657190109707216447946884688775579109396866890177943316384361964363781887104721066210389407639674924870217336541518811802591145023484742951494583719834587127317731967620970060511311446704018961686731034691872120555738469701019368347568615559019195508813791078766282584253158838328540051139665397293205459077928819994231806051776340407985502806110874203901224547656692044013990903032621301252895988336141426567629810959777020428561320900583556075705855420741653141733626052573009086124624793540127979232737222122461231594196701277906328644870148716476118894232700630777483222041066478702469600966024630637941129085501465785800992831616419214306025773974452626875320964651376322223178018409652880998803029976817958459876348087802507138353123620883329839927853070103927955872195765819053000283296493548466668369550493323464868510159912561167367806155238135717264353339527125396160714257696518472839286212128761115344047823288341315610919414825360694251090162750418961760223771409792191763986002924663910010651401129444616537260646954915829380561026292264089417542075881792513362814222328851049732753337964276633641270625728860801833107148698120697900580814938713661650514419271808332616638332025649188756700992790801324766340465352351737032442380287315256147572988970207033951423892735157047181246125196125318254246455460721632879571832310958520621072385607413753127422645772236348455078582091260047715307299365780078254720126503222088932355998775587560521938410860438609556947769620014885994861049427722577379444293844025155560401534723507664811762783012406314880975384810212851988966355816294814573369107945647183613567533315975969006742824533739255868754172917020100437200667138296460626279915967540078556955570474719968233935383265599460945239441835259846589525898770188207865775649610224369522077652353439532690691204263515216821174948787387217008332625889248385962773200739684284927380223145142485056224934307937153707470811043102562999198843675970948308848927561141061307394955838433202600988721032054113208961699797237917633088177625716956581744176086596301493660335877525141490773291941975489741549088980203019932900754051759747716105318213933276225913222920413482921703125801015810846139591907371388098218614901990243578204104422944816253527258165030058691122633577242988190098582623417582670559826987519743180732923235368430473265284100095623527896007974756315491201049710621185844435524322391326840797025570362712095734506988840440534586467727643589314178344247652694270444830219877372574095805048112440375816777631079325344825929347197078628888479973954868118615936505995845717995720691578937733338440477598236084278027482539459838078144745868357850031292337664865590084117969686565479438726998708235250559845937303444035789179970223598279209052515727843797131896419442455110476934946627744611038210925974504563846312270171185908300364845147541391442288882670903864147874156543488719312670674987806623334331834375047107206241961741372380503744360745297882194393563135660880834268234261221211009241817500360810778575515057062811903194127952311230584845844624980404850283725855643231339754956211639188559386532291830593924921729307409136020342792180647737001038162801080958771957872071975679824345645195853799669156798521100825321696769962456418028875747870229941828779132525067151655544676793375486488490170728224204569242493948597092822006194365991237531208714535111596746338767867002553816490083918875551035526868029419810112462794020961818035787651573980503212926857977678910183504315990903179011092642955332037130181315736911359213233358710411868686152850111566075662053999261414443816793789128562045235736798886152809893206107740869510236730984084810985465197092337648499109974615650579563371685714178699399944898278853612547392737396538916467154251361628906408495140369193594365424970972362096289808302153879238198421910856232187467798211366348047694572955072606622007169682987743272816263195201933240810513744316636326647663525669656459718495999029358434585625134005685869189544598290720617362048012525108146125484418307410347734165867224549146265584943082099217887361979008061552422874267528627028290255380026011337179511025546761989086541610166441904645784534998447528146024692522667106172661406396385365541621164500111161159972592341357112438636299169051284228210982522144669761999218167942029511609633273952922401032212718596072187259091767946547597983366773618359263293774406889061160988109761670304692040428635247128567213610809920768576323674534594690217683349175175049852179547910540911523892846477832295313462866765512368685349012880296758781843150578814710153428893579608267625034198418579829312411201662924479301090404866352676968426368992639506027424338993835824029824922909956459551074249108475715613111364873643791447519211677455140402720526811562386930738063998943652793493510191923409197967166377196552936427239511499020271711110355173323481096016905980452714684358113102408180982990657509093212230423158977393824442765120967737818962613879500948630778614595105599359924310820394863292340012373772523181298149029790147546528191574878001297190731432810384192002960524916381419100277769101685570180426207213820835529822692944745328627727443532898354379452490011111468871452643407196924569795800472944630825179033801300979585927392851129387393930995941606521604738776369549340905797320494911273463018430631823261883481601283109495580889695090134091064414312528961432111592783121995266504793198928657156852276426521871242113227490234431096742404571572486410687761552605274159824806790662010956324218780594350924056650615519886270737108594574818761207479369249670978925798300402528633834274453138295107140770391484583701968642820818802641617249325016918190883588398457145092823336092777092653492149721304886124557954392197135780660739067495508604047880947357800440450868080776653663475956882048357865278462950419554416678839235132196088082950514908744551063620984968997109864688972120246215755336200080624327040985842858737597880028980184252015855640352250380754744362761953433333232476657243847595722091763134862690856609459869514253350825872484801753055404536437849844896722098732199346259939498109211138600932946609388128647930559156830957619792835889811964069253919193016842266524430696709820940872051311458487205015097167290292492844871981667512824180891788152646193209505478220250391214706140838041336323988531083219496927546461623282779822072411083256841251301909592619234278327870084693731059132847758263039828117403102659873515196946938665634121895916453695186468476373317462281880119286202595716470958660243081458967874585990218483926689030968666122081704904665343997047873992526531869877129811961448728319919634645567096939210734897183007982126034199552679485156854516132660022209622617382983951038127798677709564857933400790811765906773958188135722910190971035083957018308202866854874804292146950321581034478554948603326709660068101625678030871788315927317916210804672479183334956054619845628804468423292944379884302167511043193928789561433930433783544564028184409832974066354730428029265754366649771977100504371859742653495529268824560554316915083171714356363195671432522357504877570704966009189577264527973572050920195592462957585994060777968621911366072567016920801799942677372240896446460765631795456512442101245419978072990579765458928644921117713883938459633883386085657258536743060358766795169279229009452326981982965471163701226492362297121432677377128215255032774799901756067364403662326375230571620975741357667789568241568821342745120120701603155008729103216732221351271288076336127318764873322683593895764789098039948448267304823157761149934313975227538247484135860587439421518563714400640414054969651980143533506454269726419667967875654135151286244828516285387442645083075795376423093017421215937172843143050832823666610517863643005489133442541559954088260983233676152823440585257481616309244944440395905138534208487310737289570276714288974342381988504554406263983987164032158157849802655991377429661217771922827827369089721416436306278153153075862299834694454054021910353396399020637622093891555657743911753231353869030230897248493955619769314827749639956049940709224547087287295819318361915750725801362800965054379000012795680914844922742519037162374155053480656720843916577801082926661722968700563225039450896910836130264111325477098064529562654153940789542473916640389549766387356801035101127023759049494879381506492626332140766725475908073083126096855893265754421162201504011444179356731380722570518744357600146209853206832735614958288827124659961005642168280905267160348661077726555077033458432419238653104699750322107262653549701130791895945193290625305043216512176789395355614965541122204920984222475968215130675499378305259386924897684438800854001095439296695832794728188135362530185150519558130414514644414942016615405792592470153162964126943222337233709044247232304009023507944673626975194217432619670713303750695102814320913789564556946519628819044208236400539521889980174257206665710937695952828325478599402835590194782202523624890488961555227481295416627841479669311239287143850001899849918985278776504098402705258103779434776490782616802069459088742149504350560303100436186505953901528468842335110377542792455798404914588682566442234023397679682995738487336895618427786277563710988722136593900660595718955083173781808798641522552877738773069867366220893766769945965292159754317196765044526191793497595767039188629316463562888667963061563403302229490356144297148296651471707615720290345295820440901194394729502793605159683736296827056785819566078275109717652106795538075862901411063251838265702582096129975905573046825864364259197018691404214550335722382315532345756375179350539377363261423494314037313875561285414467854140251680635052187837196299494838779977699036019332521720405611444147980900072876826829905580548946623012563026926259648232674405035166023542214029593686698295780297785746299524711148118389060404083843949190498980796264797737760180630480160942262462065247971791418218899012235447755222413947976142293285535209359676825312961503882886031357139492089188323346262858741103926823988663562542284151372393112606508584289399632820106872130470533918517729901910947133027205597462495523301671570124479694311741366583141649056915467926637357513626160293501226791063485268052147798386868018514049147820192675901955748074184505077525916244538390686842163434492239297399116906228788066313037301719594941355667217414389090793558180924681829218999294529559683717882468779759690294898420218289139635238558423886117570279359473162885601373315909083463685341432533400241743603601140952992712463721417371593045579995356265672913873255950257207391442921654416382078711258471242576878417632907167425533839609399406505651797695713578492101981747547423354791201732006939178483498160470218296578125293302987112603131755780774998990765899013710945901367093448635218132120369384819121701882115318880380699416941401272642295502129485970677666842615290447373366759543025836615745112293438070639407609634333851546919524007123129176772535248598945706546148096298845054793111494327704585417864469398018977126242639209463910526684752974015053209827400515723961252655291577903286709165843190562800801610111455736699288533236955141719806833928804904877404676120137548744671991395805541885750046527800580257916242738517112691392570927553826869547160903151486202891413396985291003391333534952126912555965765081572886246311769348334490636300870478169002272551807029934750340050353592050975760160031419998145543230942118895146819791183723632253851439442555091695535341571094500517138767136842246646591871851074115069902462437509933270210663726613978891125745300638794524278942884135992195066524022647490201243434702834454385345537919719050681757826853035701275622049051445042228499706744695647219577443805522419724971372248193919760173568762257858939598597045120077399299050769245100395137227731181768716278726582131809687230708070145791892891760117124236807108773969792150343911844679007079042602435167383420808701974831391427377743810620613775573967696783161848400660931191994823741030504636383632788230874346361319193955880522904282265375254518603049652593359806126447492879703801892774923692767769125044601261094639374628317182919748966802003246708561990156310530605719315981187040498162285549367442933495471758094717517600569716705321599856646486035701841883813420641528503729062272400669401818363472379127369907399412430568227519756534606849572298244444079363030658760004116725378640212026938467961536824639790741547618544228900214041285318699295397490141898362793600246052817601131655113430249256823116334047367898813575322246544106354739392558713033725242376838745985585748840390666723587367679587525669246672904578521473781224882462328904298136263764504081461831357620222872227740073900134967863513750227551578369689929493601585292847056049159788966720375435727111934200023244722730136048177280539738479314937965291687786069200190166809180820580682431223298219985533853631818072534969476620712214273319592736689568123452703433906505971250925820892758481314108104954997163580262244327785912936595703721737268542376870454470093522921456855686468245617353220372309250162662100482701761643568786205360199131367968074650145153856047482759941107019027697278351366369481627044101149072165647254077765530079783213195534827267790818158987380868149766168427483914779196852120921325133928901018370812393848739061603608742425045769526453778847975255981790056091400563556107044198933342083050952088072708613775487052500341991809711273183779229926261792064431952627497981428344815816522919778471773888412881021934472032364706739697116510960703421677582138910858971131646006536897719584110096387756879739334725153837967697821579865183861294421928603316145756943021045608186957996891883684699065614729017677585095546824115001566908372281387169546385544750355428293865987692725439005214582204053905265197618816122638899330997551927708992409558885855973469397334657454481667560281650975934273898779288512609278649426003536541395654315930255391511849426583573582654821919142107807599761572005316231799257543427743242305433091465635567038688109344450562910680109475015760099358597809448921503297771531339590526362207512732771780837428464149499898937163759224802705790458454385135437197884359928739515871015874132307494971362393457502688838877040855572358102089298232749216758275192973462524060302262557809195246835722991514803237939612086712546095004448102415999064082274943388450320129481747134473363333018492359605614184179568818561330685752028047253678448058095766857364578126896513007182855331410759044693133678409734620379803871711581890432920979210842493984924833547939679654942073932421461406239241118910517829297281347210830615780344785347722686601412845742621210478613406832931968045178952934252376015438908951171503010275462228586012548208993750431358904863207052809542829909804008491045593916378467140062587963868791208385691458353939829572521162939379510278109466597767656247016628098313187633360084918634708872620359452106941358123699504016423488333468097913366403496625707410478050321336334968594768641872184061413221097384891353673172704587804018888138203190835635531730050869753078462415544270927608898992859391695733221000970372618687737936377865990125341256863802289819828022793396676198930890725385932506647981217463173489316286809959251559040129261303748171272606993185908705007088595093856180435213603741828197242403122960339055517086210468541696004585809325629953008262460439489276007912737088927568955409198694725314689015283449883277652685415067850873276384567283503330982701275641969853030347187774030808955579857607631356892082329527557330358390029334223654561141704206912114854674840396945487590658984555709406633162118579806885458341350899692001938393798835245228743895201945146493130044543278473803907265087876511686091788917843873313932964546561606497207593898641016001582777465988494933825908333660955161470373497756338147410355033369902429224412233127635098564702472776519239617215529191746206469839430459400135286777915288892138363996152374907554544250605971113724657703481982833452987667937722826866399820761040429536688419678651921851861607803348742251563269783892678824923315817889898430562008275007185526572701112177781071093719310227248961985672782972658524381799938580789277096310684030060227686388219919165307546038939999707560658145647642569854442074841198949085251110349562638052202459897961044050706043674555518046042483394674097514918116709312747662837355671962361976128359710009228027264540490912343543250305801020775547852550960999611245214757857739506361080699179860203926686769734613294955172203227319232907452537045099364062810096428872441430122781369575338969067502432931565576210488395507063340866679692576930690144676648408297660404146700149175250539927065787922636041930035135611726862731716465034042752013617410510798602364879584222603556063869008970264846860555010501100678235068925799699255682240059148002857909938063963475592494516200055896970311815036087089311301799166698085856275773205353769423607483237769346020364263958869206440326047774547771023593390763726302952019726972462151245073759409078419163164808207843756084515646865852897446148170142580060088347424010435361714170707795708003395303863299414574354171118978201352287470123744782497259419860225593562055892725295979630378001849324176111102116501647490973555895366921736620496689813110259445896727062970042173285139032090903934018278985894688465386612969872956215785800355373158674859728065520271287055192816588875250997326452890766368522993736220154080000659943097391950370701805975333875060909909616245474480604790106981434576369648401928017175371896214896190355772245647079412241343349442380115516826647741800119574785327653242914814609498367422498922126509280813588218816611724241007768124560336478304495951140755310623688163268786909569713247424431251834422890314314371802047119352175153949511934509943911860663221099739681508892424030659411833883380705122857757748022631193995957039246306517409186166423482966804366964274521476739107393898579675262135332015209692942791560817200581985982785871186204941255382077810868509485374643183278818136664539324849358089722372769432781834518815885951381558588894915488042320135602163894043264003332048445431324453044682366364824728358006324445575364521709425684177940000277775038749203428267560478608448324038009768951523726887970565349676366873316531967552197370723799104033026852756572660544164492392182410933736219094547990398643718899223637948606114915700025156143904497757154303422919186685110467879220488814677884363074383967308922365807443338701795944762704708953567297424687118145165343157843288696205378979352841815328619317279733428434296440784428334576303002956182202990236505561963074560259525372720308984725565855286191959523254645272097067260265729506953018296330931880368510428442646069495938058721206665426011100178487840905806576638800858820563052176223153115658355425748360154703770198466073863696806596486566546237934291810508828367112703970112295590718755587649072929328832533754605879673890151185289835732766967227249330480813589577158660297494980639986431506533786895385884516336931124013658113906337215479387374828413159316215414511250575978727068283455490520854468146213491779923459602390849190680490255344724370505810224700967223183981288482601554909339253324234963018190794220803366217178101617657042496648369103232172046975304473720190718785487628508167223648986244721423595287847692188919634906942570710476492740361644281306507101540928038134128064986067940645646944032837443869338751765524735773587242210480899711756613101048369596561101207685920235299535723774102718752804147067330098019990396162751065711511785516094456923846172513518710665912653817264127048746415569612201145569648447639324731048741457118935951509007819923699733357300856933424991083323806679964317755389002143951505454586804986845415415493853292404639095378308630227865643001178226729374935077024899079933981257646430973826592421595323480122666680473673179600284301197407356853535801955968940497273738302390885313532115138815491491215693050016276096423009482867013318602462123560095333884049673718004911145828086591065498095540058129874266370509707843228621366451196014186701506477725719972301089962361916664387483731309757423104183267488600194856237307703720618449233620816441115959158010019103034392141382149668629092321760972413278001120333132812875544054118832504356324421243261203482993858445272624238461566991127152688732780743852609167341887900888405862724018479341650829239927586085908851775580926068122256261529961706025808558889028002781931797305270008718816182057565555033850323059568927924446710549869181200543991031078563160397744229087686291014196859470961887301558010499264947093911793529924370247991153765894212655466924687421442523938692261847124689108705797484214304295367289351238170697184697111473391253982598694498803321064916226093407691137662036163966987806087505220600286161231929167966238477391778876126337157441906008605354011362027977290793830378862999642474326108751984430174700738816358949708062659731448831171638041710516968173687810653815905647535686131547815968124238303069935800251518015425247021853317903765646831961303705364853295476888639600157298443585549495520687765567933272734138855888638279379035015425030336464624686875825822183940917994907261497778970554754254385086396368244326958413947373089896129981900215385027238103803288741961922539513107931542532631786649937227816075667420561566754139058922600738403964365083448042127343010468910848834663463615258593460572095120175308330916866684354319475172059649415719581324534597805878996830753029356371584538325598940149634497004234311441139888443838606891419228123257155241918218338968246544527704856191640246090140509801266607716460695095542745980865097313845156824051625381832499340599448101490256261407063275100187536602832191578873976525924805150652786820405359585075511266849226355343161238462724682692624243444349680995839003093807347760050440018905051648487963884767970044714528231768836916940188173430354427048979944816354637243389853544852638543374263751024169862608223344620608396911766911455258068914236907178093766141584312639245836219896333775338697631041054764399066541162701110755171419761911653183773845385868297323580128386823764866562992535817695869966958368559482603672876790582919589300018116974169742909113141569595193164926500231659935748336652381959306338289291903338085412310073380171044266945067208055932956010680709078566873238387419413249224156119625776279107385780069312153990918355856346174625246700118594719150906587637081956182802739425024411971054928194125991437590779311411617745264748445316862577209541956332124203659033275162293387216924900689649538395087270624946642433473999292977893529557559414315142974067793156085379621469134036931478002644212803360915767669573766733259824000212832275339538633845278966559548323584848282270165117028160196400065541515400170061153843706097781482140275946134551389730331392812923420359516226239162352371840310797260940219381526978532108542123256298652034549055378594862557273858040753761736120784097161578418943811437130989649975724240650248908460868609504911337229825874109160117711742368069377697351085757949301579073882771874288257587937233744311378954572752706841205966329787029430310449533277003912230488425528216789090245150304731721928858251631262083462560798939184787932359886989426114908517021394333535065024628271046728469519472738329459339048322913319794168082433200834146094240539157677474714227133762106649916526246089539798883271158442880029681761524260507927550715282357047361935892513135154956589861703308281353719606925300414928029804780239838010414742180151497812343735040866884487320360033829236775206714790618444205404985725211225737869487106957488025654016721086481160195424096976949579949967741112147206527367945916311494584244798518423746148225636177487915607975132031070906448888390318027941501475703183676052664781956226843638247204831111496864270570338781254994249230239502873336393618016992620144923404083947848331622074178664570348914865900652301821253767250000466836883362782975550713129277756971089830017490813224578937332719723466668571323537783635978645312092890655755303998153011447148275816172613479419471213704753684839767370625149166636972760618918863502313052419233414177949758429224574531194816502553377128311095950149941239023974924529317482991583910925746386631119562476200049558907933726060393812317206465422730580787227728956288588140869594904544371564558673119422804319044759834072735287481408041976127706314756145191475462300850505555943165874560935516371767557780397343461617266664919423693536105286211879774197128971556756542870668464165293862794765271043589060785650631844266008735926141704488082887883231732932489350406991330999623550416324508956691190079429879350461465159952645762038524407001062368717117619117584843207867588459889318903862681718517985713699949573439008898841671297745602400830506467895959606985464634312304662044323897564926450810580258045245625436274873826869441011712201000243398984291959943732449690098878083464334530345689249956606761975155100663935861609123224999271592500010655813552566915978937444027473390363800712883774627148564205683219945029442672652584362171277314726668650658885202353773229449966789030443285594976503151414014985735517367592603926746972739781470245908248916145007493092387485841936297638532738321106826139379631515182238594238014983275868563307861785864754406166748779596020815639300844505535185246117463182302275325372196173147176572301899565461837775297785580164454485760540044042027734382616979101703932625467544163443324499918673283244740856777433058481610305981087176014391988210128852902068820899137545654545019329669713180054595941321011669877378408360730124168380677017754320718325613466822862881324161333781308878920608855173672736565965418060539970034353977672139845114964778926938389783018118995192331121479473220747834384580451639454626162202677098520215554634149590279213821868033268908934377591846350337064787158192138564196564658873238076243849186026401334277126710822584801335206784044463690213166623682059222212246160047568777089690189174629684183379596769305685900650943553863396152590914103049404354749913461026548633295856889556615941200432754303440140030597565181176728206105068766565913958896466135622077825659644852354448411407904298801464118361206619995068752094929180697224644999791582006233935469405625376949932423807858259329105840291582584125035461972403663073549985547126190761861466854908721507658171648605350090645659626850756312383720703308336942463937366034667846044110712961778170511802123068887707533309883700448313588943924703695176902190662962636971561929699242564901997978585372298530153931127909042779586398891628946805263794365652219372860878634551571379473079015719368216693003019127621667467696748262239301945101372634873479614403119371029951343960591460655060767857431579272145150599665518348744109326309463500354881870783573075398028914038301657083642965714601956079838549470591982741911820563085378273640253937411083842663953063001280909577653971085757629314008959159730605987980440322710997425963141712920524362831244229086340221288215389299019077486237206628224203842669849548175772988116379031221403423888110853743973507452887293428427606494265321258031537298718703292494521837305196922618381132600505895451677117915972344870110157482055752063070245509187903981400490873680533165172497254215171477565769606245619623615135044340171085333452278274618251344041590024995125471513598229748799800626164852138211546075543945379257443288505752537773499287292713515535801398865512290417586110743499226571050186765868165425626986389106373275375138327236553046642584570072904409753803677122228712819948705179881980035066895381454120586942797207257222022752620876962768324143655849034916675301380423617280388892437716253914005309136319324660099347975339992932455567876851129999727292892407647400144846643180867646783342454468746202882865778866152204708330156479366597915697052329133920047159784602397634883429539721638244767042170125740088157601187308854317140637216359235506670228589662283396837405149752109607550491451860000164683530216419197913165760178846502399446232340996337356013966782999775067944353604084009843147178883838904789735738905277701992116950745931408024646892699060540443599953679108635545401009657977436558882131691245442005590542474060623939187500582039908703389317984188396498070042774560301321786219488872646302270172407837714940358691606221941540685292283851984357114328864056948582821250538614637768977224220649633964258348859193274707431459013887734099382813635275536555554943816174992760732612612687433567452768231091859426208461563620716033611459960026591447224451443153587375866727035327507001113439381372609348799661110877803569763739810268680621599589276617000441549667200771060367664678891697816456319392946409503196980855515836256072834012274566589931008826639442496139503741683210322508291748538852736825338007686647635270901850849491000162790193418720456983458726639425891117227567724121695326410204599086478042230275425072392403559054971883745975564906798265677008007969776114967035718744236421518632763646679072492934656166933400982601831884477457388221116777855765726626026217573841611204784473082006312681455371613590435429373528016093735350654037824019542646294543160951528390381966899309611118971707186956164601593902200869561782856472574483894766404506407336125399183345031636165908828657671834510362525219597405970601754396972739070983689066558052663032857802520371417408266733022492666510234934240734338867143750805441118151071937582403937832439783818367886861718833278047690723817423691219441639105563961371097717765500371853235611567786862833350398410826275767797809388247695914154754568596640368774099735770104116216906605075516219011560712978662193339102120693204832761536482932043584271123307814141863950580220578786230096435461354840652721411938737518054359090987853304672535121963166164677688681650749874123022168878557089521140104154253691333267828996782742906790678053233362808729743358814799120443248733010208340338289276763507624641564036459703459395529748582810679504171416486499913563839244403211235457412291973301919549687389219104878832414896251796566223938158470467755039156893975347044889112236157386735982002020326414860948037969337658913947282800326258350885916031424133549531499054450129667317651795998229574678425371109939512571547140964973926423024728657259900960362985663648245790801996796778203902260535189505604601265848604939126316662309086367496086956072237357230866006838093463931948563869104410925969552094710630737445864944551042653964698226319218983787134873338039146705124695063366687977650246396434929790841625981063482239441791248411330482666881509882671560513046459730744012935939783760580882354664467013737865956441875103634411730440642118536141300691769455835572305492869982931490833829035074518029707721558735639610761430060737738072033087222006178011750963676286318346431714364742727028991942697159115286002329545567403526876838693574610870874429948621390949334442589101178697782212842843310710329574240474739655213382707901822326258565522099967415537862173655830988627078444200879447347917483788337626400242488425127808427493726475626301001994792946398459149675665131768974440532639076972354899040170291700993184178372877969129879153082394567973168294582518838696265192607551787975977234423642236000003959426922096979989393660607042195071006218667024553671031264312554040207050248199809428211892084454487510431721584184890749097499833959729094865091078359966670163405058276300567200274088972269382250004588039043858287916680145656888670733931769325757554059015930780800258267343441270267367163257494729884677652262116431251385605942134510434451334079008063140028580210342449934662446231185994829631938720308456869243962284998675779184377529433068481919920440917839764062423916493633783236823279928738977913801225019127118227584367755407849130146625475810890178521720657900535156401146700405021406340697367203777553013503146387901539482972989603015428078260191774856210952490664098338916294250642450587825016889767498339851228730425817757001494546918845472916804692322234195458708627444584672657100193360405396949330499474318576766580115242580774536702739255278496142896965468391407770454106471312358326413334368578976409385514642831443835403558751985165295407487401379200714895655402311214312600075429243780146223388388866929367635274480589876859176356517796152710638676954542607138349077127231776558203152181593638011156854843381881835577076288177034755444226657447144976665980215151870015253495347007476424695512683718698010985140930481909987324061181289498445297381881111804240507456534537120015341499832841246902680061018290556449639541780591298672556461676592698238455489492678187210169580892407015996759283246329415236675237823672273333235728007401863654364982588283266074187884669546553919234656676940038249970560539997033502200877868916028095858022456158083100782546767897404591749782267441045362718603218626733687231637992504339893276941863411574549081515386312379569128412237979553541834569767076582350345583229022182537061823494764438849695576938198075592988933328947180070402829115456761775387819892079594472389880193123337732102712306357295851058016490166923438531773986562196495092100585377167213962521649183402876099859308535479155330340466801168473142492133910132685246013566604508648352588476888825448266630838709564871741668262305513061234402460508957462534161909990406630463124847258669040505328867427952072248139121177934918553709584434248327593684397301462117561171837640688211744377339612069655982079986174403428588359200446706726426550376473813703532394566766260845401648864701619267019606177550596413364561276839271694297701042337294440380960070250651702281169617534767523730204466025705706100436398609356451402343342441761977247681199600399003531691745546484860497164139647880788052015466133193354497836746167169755451842864012158733046079250340072958640304026071585478993774202443036593354765720181647318221194509194853209545805206118264854572473318346667801814371334637849947083374210343713847315941371140171964780102336268232814507737402517333969990846497735088040308900635637800929590246761874943113187789659256572240524763553260303103101789056646020597471787592057275754507730134595470276403170174917749288621778714828742136976776424029335060915957789867374336677565595641330851814248040638438715277157211865960017449215518345550796515477890654920353005761078513217003900615230736404023641486863435658527364568918462471057614263524240365465276422430664301159275498470536963509677491376658419080055730235509707758209608407296657585142469091218238167684339286728283932492177144603539232031194848539680981704677742503254420378116248227863921050004335917483136361543348415855105963719648466829588697446933229785092663824689980980502246111483658079357149948159020620210553307447663381280123282668025153673361216648509669489832827581874766177197840521951820666931965977921339556492181285576837296325507584852797564133407699024439842987018923965390438683477106285200039559894870637574032080568352385077468824911505451227843634145253297795268637524492778773266754866532774912078002084812715469130815191008513293408810643752923106410816438205977064188124483284610392194885011871277870304583634479664419384206868909215051267834791307002009044453862867273764548181935279010750927261833588213431099590776576086153928778638614057761337762028139811679861323297593361199935756708034673794817529055962275052984919353433526345271896921195287397380582176283211814770361882484917418404231883519717945745466541365664808820113852623018499923609567363422158829294533273242168578054176524413445726318067298517680031852161425645256680945749411249953669394985318837374909848926917163033524502890556133034021192755870491110252982579712445246162482392251573142778489855514740917024920871088356258186387672679170551398183342987122681391084537777613891210658810653409676494815654836154293224392490281576876294481185478860310563179360601347460941512232533492647073195211051501040216043179356124693970255332379566946540661379803797896823176071064789459897375159770089235812779911205234223403849901677719885189684686927950057093979357903194076306121881604052321425189211511586234072267401106042494731651562053777411892958993736207189931980795703150097319419536382891024195660484143770029515543954231965831918587561031023976120192676920501192756842572085810639104284275068134161895003538718642136117745503467914026306416147770758678100358966817409476083934065259042765945869179485441044417090851124092139895421678345765118616113774360756126432632761331225672723480820592360486874615004469243269156061330995858233706476616530554088048037092850158465432049485066932627143428578674279115460375708211763739340761091462286225885956185222475047064340032479427443514077252259350167682340734243223972809568974168220157061499825058568614745862159378131856832854906500466058124195295979502557321141912312447595327459217165458055991213617813136585340804860901444048981976859061819359521461803956779296470267685585610801100800739565814216462178994543727296877879507100121620520676460929175055128557739899117550134105122279042711638503770823751777586101842290113342902861797141168855425163373610527297812416331081457978333843545525464833269307669660077917044929446458625007227022138540145140324017060310527752272832494491389910520429621741107452781174242349010045335902009742143077772524066489272644905182755933528618535391204867495854634272633757083476538134808734876022452281752794390884501602328498820439890750151515647682599124780264117085574537457573679375920850327425619349792127855424246242666288207937144560129275743510471333486390134621413388675840118322976697831214525059658957019101210650749402277337577123776357415089135235397766235789001065899153237771103787937272076435830307722328581753082298286254295115872277141980707916511509373114618621056904011713325618772749785741266926944196512403254642261752712526098316583683843165531924264715879984598145611383085214184934409519668981891954662091973926399354855831967342725112289014401170391505041945789316490094421352882743259500900202686124550794919915598878826468481889295386076041681655809950259786926015276480480792203140552259134528612539471483280808877551757622505483806313879030538202827956474898811897923825012283573188381491518116654372197770084555066873741969306348018726777533153544139231768116758079791948515609379700771356192759792814006682171383479418407557949951153104775536687542288752586509298438964639950007115960956352615518269405168971490489432727664597198496534651879575452781892688205911306221538126765214226240239645132865583951443435688321716417992436744821248069754595126599990566736734156444822947556707409426425872242726343679448859896654107706022681490528887742477180810933051248565916128952350715259167300732379959775079907104521089889184106433787474948951261777676096556096023545114309520092605928798051901462290438647573401257487579183933293749136816813144212810507075493867887640368069853738167470571041577135891840145576178386946852137634871643762053511800643668040333440653342374778057033494722555006307607038359692539851124830320676909645405152680373103803648400076226245244159371367273340870314140454430243589660690623007783470728905594722359302734479070444301845191362814993365800396524163728673219236855954666939328582710052597627536429152549854289576476362484967549734500494701159619452401138574561196842607632052177314076327492466442014259884493411136972304711520777520869453966845521670052931307075720099160241031144495216934767613189663352085161394907231293654167863801749831551964976309270195767682219179323068693433171234021690699990295090223444418428368700733081810264730534538934956276746706477906459286170699758143071896710532107938311119150255200067047345353896717822240348032103376842382347460611029276969964294130569743458990210565164594412814083802735312797302950453021222250184720102938311272389718852019801516376255236025886658445976958346732394224915624870978098895221686280650455811126487211939458161895548054242135010411200941011896150791163771125274283825670972813129488192716702290252348757384686141582194321016762677364122880144195047748290410648266283411802195275426199786109809985740902608122878441276464078452799359564040892608532900634749470459689109287610995145578016482915348667522388589345398672913612439158467696065815994857416057471998737509332514746593733189674780808463088216261570557401134361264957899540344615132380560923363375958856424794905232495926144410800645019930269359257531004192313778586834150523745133574620221620824110141744092029494701942503672397927206575747204540820319523810599274550142751767105809861623869282425323715247152433796311090933987387894960046494481300008375428059522092207761743750643600765261045382766116716663690598283553613145190186081050146396677881358098526945913263115168242981071517916778675639987827251916860743507529709382162094795024077100961809672595089352933836483619323688132689805820904362501814269255111485438379523017013451239634083001912703757841938839468902623455511902965574872736968684523561842933597773349874944976239441411330518738856460537733005166118026619229746165696922616144065341164103056134799171392567381238819469203172707555743103709987965603589188033078600479778714298328593892010193760866078348543014815590548319867098021697138283412812536554298513728984925453617708637007268965331843877660074945601055155892756113911968636587476613975567925929342919314852960548388601008807545453996242194569437225183266955999751802754573613622597752898829916258299021042637281550054905283937766238202334304586209562929528893424860891983478845521946134379806109331410915634611409448514256953191501246333559190116632689637808292324767914408929994423541978150261103145083737721120468606463337160860264996721073893155286929586557824376362398689211693703196737229225417731855743738654813033600749892762683161004512186174904638232778221169839731452171926144255210125237446863832705222764579440246978222846400853818064437725796344559595390392828375197727273656884156867077489208584098302810375982826866509232358864017872152034785233924772745591698980688772210897043726274180321643542385568545299895541018186465381608185490470809470423108777629088324080143199250474116485499972060030664036493657366609043049559664707972967790229727094222835918531981337245284716338821681802587856829761595440934272834460461132741450003476998554985562623834845355857105628658598929838288185804134008491300723103161602850049914561854994428957693867207035175068518039084064529322176627833565815396817774031813934995003513304363403563888164929051589389885033307887916749078733573118364493072081287140683992570293032737030440715664216775903583257967976270983385424010373612363203959235488439206429723257696146481527488103337406437814332268619256478370912956900413701480351961344555962880046169954112010899405569889817100535001752841805581877211629766623130141323187281257778699954494968389781039548560456972344157684100383850391663542357651053470014923731224347485972435545985752226399315635160293703943081954922039283723507067222724370709150560907844653871531781257823937480053901513511491030228915988902392315302684021789905593609124566128598440585813609689864810974132460968523555003851066787726318406278460755874771275947926118212245629924317418446014994685361098031166595150466094714945669729632124329210558312223558112346776088428010580758158742246694736142154171998657159403649227610389742777030734998220145637582312813645975360098604501431141072533194538425991365540885071958499419354374688214011190305901946966981748549615444767143361448697656514232352257858958519449376473153088337495485353719133152602676107593144513033484030522982641547071926436906273762726304981691504669559502728890657704423217138137519672930973864436861031858483009897415063699076744332379238221179702627988186176088434965329416732272824625263068066081075071843187439932684729071500640850319211706844115430610644708425136057947193344460348447849548864650193384930264816076502746133001151170386219000988856638527431260116681574042300676343851861953692869738737320998904292004354140790755593445754022749431329968017236389897635057533664714141681382756765235612041330786569214222765946346462907079673596542623032457059025723520264155330744141661585971228456192581145529755796099303233569852839097362485633097767980142417988568731873370930272072008778910203402774661493051416324683118919074111588990198090583552916006284665594835837472155708530231002382157796909602981459858419973251963514142457756792927442073714326953331864956719003247157138634720881827712877315788450610585545813478384122655084494323082316791740533285807606245138670468450461241036723374307366578603703286292955483451579591303447808234268281162829586113274757084106334362372665305617924259723039782459847192360536689309671442699396492543054247826987575595696308264821022037471834685190002792420404461738581484684591838280235255131454044953746464737844124148962369166976754747874581252241368914682723430969507041264168160417996840127148537011352658785523524033463499283208788553135120271547901125028190929235773996417779297286464068941865439837761303869172383055153876166988153902526275590870739802802098472970429372116413836365300005056754840377997460425249048506503132864825608869228673338354262386630232333477965983502326731812102611247127073397329017673979281101343842622212412248886908336150492600870492909687117209369284724854582097369999513166680456829793168456577240135737006040997131782515244059486313161701058316114129036622325828760404394189608164563741787459627991439383672261221580676366566948126933401827642221025672325320239060439349128973549101207120939510984323316281164049080957653392503992417706201076018278649123208245043056000302598240490448404343926265875694080905108710056738739583914357360913955479604065404040833236916736846398784891888444519085077498854077381258324308681779412867103614574790916147051956675752384576475657044013069261180685439779005093865312743915793821988691325538332472260724224014244295386731670139133180856053844428536778999613243265019973460894310797709147685828225496815671583470788563314906220113000340310992322453928965164554404314030589078700375953281581791339273316740504642356929867609068646231810683089669995235523032822098247404301203098615969794624888454493815543134370758619258432244126448211872682060888540097117963286403283405423854148217877903980158501831680488601357473446089961763263136556372016156217325329022803160861855260559241942078083072890710927701669397850596190551978842167397681482742261462559525052589625092362031068428312299599962547489641455472046815283892762181534019632652804589787428840944425420659043136462376411710982192648306907000662632013514195519716404039518905136897817149996420468408901825689431094164920575408737067774207335416312021252824194958553789454465229008036132771178836383471793419517115889256880721392983162563172824079357054178668066898334892172489738144919077085796274298558576486043790101000012677470183989152188419155033850000331661225436393856855503625530020085069402345866153045121059014532481166701229977454674414184826720937868902614232669978114230425972302333555128003177641390878865421253275751023971174361981402842250420849240363271815087833231283794655631824984985619361224168373958452171400288446038786629014869333946070913358225619129248247667146302543712701140777764025560950463963703678089940355584821349090473784136201613054584602534798957160534350874996108080260663195744175123454919637291661374694589153932928122550004937856343202611566326956025529350995769311009231163530662866417262331657707121785677754911247519331213551347862974699985409010254042704353414061238348835162428738481365242165852831868183599936615651692179032115379201984425199786817667236499183382442600798051463603773598673878961988266861729810553198167304986780238318571466678294546256505037162803956221844598588133865631593652052543074687966402756782330358155428020126676959950491145266382880569617517778170685370203469108961728187923184064572431000612846574788205761722444975729056501581630849897049364404508264764820707555068742077843345928954775587151843216915931280626290422977607541744739984337258555617486206770508652829004348431828163749727486533101920920957106700490839444160790840209207109486592590809289632971815520124482581868011671755137063253610116243432425643560964703847284081393033472848032870175120711262326683585394139703725383709859881594053271545512273905428051771124631028228796828218341752989256846696840280305720435262884779492991394403861477780250405562744208460877208421752817924148451224775391865739906182785685181712409214275956609212803927800561379010434567196981924651288107332681979831222444968482876347810521210772694645144146846806263788532634929868327433385094374277251828283978070196118669522281618000481407232560318544880555769157251858162108783788778055624164374273668368967445484214440507464309318059146134572773372096057580415015817597696767513061733769068149559336936873470256415629587839300024690219398279755041534400019669206779222877340198970144514356662954302241691297763326845653636190971602708025422855591966831776366394886257344043537733255746913281594969816835792691731337637785701760004895741351969154047707733776710079404496321620429662603751383815437826411560496930417929595875241762681155757176117746259337499068658336976409279800468770243745918730917882607281801876547897926455263108671005788579256798576814231742962090348705304994600577852955282766128446412738394860719755554360951634515036616303145808559129617473199953197756769487846352167297051605742820837077408480408890061583338772351856016150313153068510943656523089287801395871724756480742540918389418257070003864817473591244553361739069415955856091199782740121922898874871941799442313099689044254052108098140634794530134665512873007784281856942952502191085718867399317843467566751302256635580779686238058866955133592696310429452567688952417242294112962138406223662520914815000395935993870882248692464711694331601954277102958029160162540353303507085403459973970441040487846042819203176022784100360239547709666071600759448672680076295236600464364529355405532020472207136146340885124664868734786079573937522804318794615064204204758410582092678861160929331150996665853917967528520305917219371557064234979899198357217478638906294065358135170253765990453882339457574988966672059083592270395179562070095670878689616140911903250390641863571407966135934973306429525004608345186474316066936158418775077709492325589692120584536277173448420741462713517651281097558939962709201083753124505572242803440261696693805592245456168173690008251224547442317257270491818091276502147685375878131861674338637701586884826780043829000221426470934738905401157993332744482800174699357809339661165960420389400390368946557923449246073446977087859287520276476793768107677691371154831183428812192691774180282013916615828738105534331510015014958349642692491939356136546892843624721170134394908094269873829128734555719725625124880618949851700267121830329692204469394959924487551283974634341333401200013690268637020588371441425004696755191222213337427020543173152077190091127726057413933446467704368679782502610674389543639806349519073468752147455442400896281364437647986056795938792664917170782830133024705907058985434204598414006569263743541972303347110509705407732456816553806237541090501077171145433736973198414843021452214245968368136944120887010361413435359899567448108217859260564238424515990606277904098456668838596551282680500705088582129473113728647393397286458193212172656325298879540054050021579571786612818607656291346187854133972569858270348442570276093199371917323406079720142004687789678729721232736110010522917172897691555676303318171017962006343058719375543669693309478752304401319578277759976379393310584187190255971595953334092417238638581250603975964746074041274351111486971604583532889704143872217668004135506598472887102116757283505852029609915988926188908732514798699822821279504449216969183896612651438895168207399806424991782382506774102983292224381100118532292987531270374920411922312846523937481516733547689776560131257449175639599166559440982823901315042191340905728117138493877376882151414623927188982953469107820852149046279395128138910052956046618290473265237193653014040344291680540037742604395901605079142617969883942201531766832471303609142059083458075542399349082222294649130678801087199064813003681377773654638087575649250958413115793283385860088184031695985725474198636929667580028239356675320727109337111578055485745697536198593961179392343840973341845095758050780051715771060008575913994693214585854559577637502673856099928884371417205629543060124785840270889934288130522449241020717000176782800046907359511815811811292644141913575017588632577057553593538188347392606094226234505826278216578167725509652810938486348831727096171863328998032194397717838556786483876872430659668934302317966726902464350884481941754290490390558013309527150781120902957276045314112893521579474759340201434917571761005305448777412744025984600446579397727396734843330487477242015632653531412583403450595600788097691458579390516065898245152548326700436647446936663621667044050704188128292714572745144426912615040255146435103830710379607735324681954116150062054736562524395273916201748026441439458234885293951451169420459167045549320802961826535574569153089170855314890504263479459795401113587878878643931033489522465194409891629994539548638362400963111658638752674983669829975682017148671726320326321034023794304294796704319806074482107304709144677528546536188346736136679739869434948496484160447778692816298586332000029305596198485224470728611983429616309118329271511779307379490835439867867100374674198467905012782914045996140797479208941985889303844527545001601082819665835197805490898101207507729355559155239816927535809973280502194477500645418724667275170562677906414683370292903428511468470016178114481462797165509018480862330543254512638473395358124189516968419390634786899159932871070815496947960562195952771585369311739339277303697957515316969271799981560261491777763829942344874497573715718358373423689989508375383361189739413581258714864114484017386233540196032057830929352714904837035226469838720413426811071409554995423159625577877007680744164408587538313841419861203359840502649801500122607996223377998777039793184786330403101293919470980750371130499563272804580189126153507929743739893536603087995457927452654402455012574098401113927263732455209728224475766253032690036989515832575459476367050082269089924388964631046034694799116602797240559402904878072348640633652988602841273571042208082464435930077920322073667298427063819719613211542156984117308604618214456925746696084356947184088853889889395159490916536509130456730506999398680741796864159669973910078210992525629027621848330822738001071698725528081260063255073549450661967984737673675194742520732449529596416310508519238219659677417341380864535116257216506807545606977698441928556924470845463386319539264587818167643585066842514401758989360568481646506048476314653768512707642303876408278149265078683437426570225464519162677605480503443894477650142564001201260946307859595879922609952172613403485459120975556372811232896285852386758599662117620854629639905070123600809221928695041914081764906085638669521387846067933969036626322309724612797842558143586436588110292186032734611592217176542576784521768900711017398471918453688627511466543135910166905822937059557917212430116669716673288466234265881152616472641849518298497990441101839896366293224767683265275311863826276220770091582137071523633229097389085323365200132564041486252584617566864355019466889787504517172416139829700245621499631304317545803552437224413563190693661273649258631115701758249696957175658669498154740721322879556553962872553341203460367493059520389339539875449963150242305751760045199290015791016053575397679493270941476251172542993497640728680965206609328915496609163477752773979170024413449962045305338777819295851912640130233643771177689304852255734846075152141179221942337547844712023850899371756985525131639892688189652006866038106969823528474430418148777291412423370074153815872393973895888976377596221747025473041699382071589185786018970378995448128224690151744723459591147129517047141295351263956414490330293432198240947075590773753137460144142904318600320963709807006144139515665809154481593678561648554368628589962447367203928419283770317850692214185330864823568405391350265675006517232667096668188043051753737055768507039236264065063121334343467646176853048150370786161223787774432984663041765838503246173297563327307889481544402417749062095278213318478490722196637031200599424521092871193896736719038008218895425210790487851501853645614818705932831307087433668059275062257419134766726838059043528360377471284017592406090207356834540520506958407319034418804498576008083625096137084814546060578137985376705335095208752083263846141940570231532712954688245395135559924223648698802413972208954633064299344372192657133975375561767605744709118926422533120067077721017390141564062483747755687518337071787679793530385247248102194283620981352248296691720729718146173890085912701163336941059147456801375107430352790683434348884404089849933174128212723966010371130202295361509215721319077326427235912826794116484955613857680149602835968507546125810619734256181911093195106275683257145595435096250905130423482002394093378008277371299192166284679525298479544280328316092309945490079669101698214385788116520564146574164459384755672130012792677124705136376025243900621584225353308902273595440092249437447898848808183106673832168699858671787088385337366519703836576514333312693261247701035316039691389387563359507668190251405293261089522448355542065668967933611711560051595520235453652362336516414323786702882496287800842842182938013632386664891397196663670672805033238404422547926188696300251253615914127776575843504898622850103492142665129076319925902068686933891177553019863176155786591190320208698171455993977574296664206542467269331606909248877556130711100376089319976528636674632204837644751970678457021185793355222289802020909183422533279427898197685298749365976572440674263552910148083292389017993341926662837991076607283598976049085784499915277484359453028612057856028194961137522109567621140436688975066967788314655237101426220340083357149555737142474516265825995405181955154587066758158420003959737380638083926089687456566301935512821815523667537361740700111895598368624104109833265866669386271713082400424158812181792226683808809417896960607836438673233032263906821069223899929027983098981216500425614008310126607282027805319452655741161133705383752268141659695544656849445568122642848437524439662437136188969363515697094558907197698642464956683888900908340108491474881717012127598014913112169925511844783413526868069514951137604738086530285017260100972362285594739672867189980271716986090207973934105235707603218124946112058169784137675029912130008548239265432038794413956505602996831811661262939606697567496198821098512706098037104928618381227719156445903007300515302249662736900982840426301926912747851947888854804670233095380512145427815342034785015413690665775984489386045453958566200856074680901675031508653340297664815727897919902806101411172434494787847563887710234812800578698050690673733395374440777171296398621617481482749628114578696702527489417969030121074681051206161035005781384016426158545193414375675718610209866582334382784854143637495894466472941794991958409792094682886766043861090523238188902733060868477592167612988709065510436758384516457592693726516079856089252933635924067958272040982858837944463971340794887800222821515183481414905917440322720629276385232528408835303735735627777101829950201186812519971150955749572651997837754205782422897059727526005271883211361454480173405082539788631750756634673738332198447078642318829798909984167935115142118899477508607348465175740885443719176699338975234671846977077725574982944038657359606664554674281499331908923872811062204352533147555949684106598706860005314127056995031380204432784151367007266419359096524967935892745448766661601806405803206150931667666978855417424644563343670261713368269622547608223140284470200257853434356777408635070605030724755822294481914715091388602844320565913749423544563281251805940575211828498728963182177410617393460380265188451182435853022144143971911040899571611766190464853058813459794241477301714187405067836557635629215280006948179333186361196457260578891508900449057850602428376248188677108055737479176549111000264930036948772877074289660847405208948813782614622083851139244310545239727396774888043683471335924661552804911081956060893971562032570295838012503216806943486816063985498359689487733445053505853433351384441709346188766590743669924465718864771801558989780946621916890494175519664458930399688607539527869502228712096638451198399585456466632166651186493809220266217749890798168182839555232193402947495767426263433103584526962397968286829038337431967967962017361334724787317904429217175749484185729258110176214400208688837654177995933656372333966736445165187458490086833199216451002003292579122239912007598121850545573630318312581149216572485870066904658311586210822149732338095711090661536171193949562018379342495008696953877407411782117793071004201337520725247570157612045249257192135090830035489308063862672749356471610228012189924648504502430327349435791138732534067274604207047937283914804697280876255210505992619474697589751714810910714138125020943076768917661075057485681870254222027930031449074286745361602663479583087565210985449895939399979903644694414577220472045632211749087725746792618787205731725748019335113241311615466590317680505601229340198723268149592112205909314748388858191057707651591814694188410899630532857168117350787709676079162246811814087843351046850895380235727184878555477916645452232226371216927521099474945609505527380367407966929610899986659308551820012187629121416212271506829723044558782077769312028638626940491445784657287422351904388445205235258217438524500611606051608718524793355684532535940102866020789816822381193190609605187251799064614127364407726880666906014684360571648490337553535394654579765736802133949737223993712314840918970206007252982406257380282612754619808918569979608539747151994967560198981404727471946026599753933298943224478338872557086834927459066979706947314483905162380613625501092710059176816238037854374295676370473173559862202252963727900427896174511683113688487121132623463367678470955468349271591630856845629746629771020901559847894431877965942171656335366663627759006512742331053222861581798271519575232535779803917125571013901575443074741297422401936275397210866798902988259877999449692332594797101297671722397174439846393472836212385105593873124522294639607380747719695531411116314468666003744097067164029025433692841479958007990934608597923141645236086288571956991120768399432809817971239372593375455028265281720579366145436730865232778610831589841981701337655520981635509786876973097578671946200175394563136774151011683702436898192601192736612997817525782755543116760362148352161427332720026202717220284072037861214560980413733507981870438929243751336213281891513789722966683745758267554903644997813485530391296786769467672384477989457411148452232269198333028863946219973925776302135188918044104886645470619826742296787989566663357501358648362450012653015508651863730105960615466466648176026514924310909345019970646394095005751495805806567101687378889357556944441581413302118270163613737881766123786710954404361574318752847918756198416922559431112702092017021487331649574108304217404851247626680771857548804015877148061066912920620498454356893011615867154048385472451499982304989435301301286862858513505636073411569959688201243180684908953115796675336954550783570254344703478783741643294329751131738512648584681132175302202510327651677710346004274281572900801326144637411329303671383146028595732385890149967207939990243749221657588989861776178542010232775011841650926233890097618922571595416822905223514902662675103848221045707955832297134625831728596140804492934368948311775417581051169819312402736234547920253960207006643370694339302261211373527076848481520329728354490837024227274301645411823402187881595479805698618431821747940806798530813980400342972671376374660733370778918716714313031249206474161297938258916065768411824440460066487198141476799721039371006810486228980845288972044537471093958262264037874300848222029228890343063402023150578122339735261894185929404747621587252695222842717259933981098281628774586109317680341487298162801031393865074698669373253604619172107390574518351595032533937446070359051357134875635932785700410585172215328965019662487707420048337013261997625156734023628441997628500525106222444903392337284109025949713834645372057941581684430427204180886992626375917817321056013582203198225086910062893653063441063447637447832842551768281195186305452473838200096942510578981323313724176171661382031282210357180251043396576478945637429126539312042915182604841578867375056806378356464484563942039885238629587787317528225357793510302970794058108864710974437897524502282140465573764854523374663389026672711727462282082570400022852562862574830097474625765862441517925983566748140815786248479962071405303509228998685690021222078544124317098205986324473954550969488719182915869975612578560892433559102678386858657850361386003283499729565967767924816140653729576679897752337380056431227356097379630030788658537350731297128351311451963368818258916453038859136973213117910310281624096322374693771676400925419680516950515342487878587515221545964386870742007165354216455823911050547941877889601411141159575219480895940166084345893409062613335636677415820835272265105081298627064292910391049197079173270334412495017384806353922150052670321883715498015897988105279507575239765355597716399432114499300295495797580161529537291787017569178220946826571311493714431669939603821590670971982404145982621233131731564629377200723166410202351323908338950594059437753991427716334850042134589362856336070808285180947217893583696331596200862253376746946636406264491487089249462359413307168079494479344416859493802398139748301133504599103302089212460091010250147339167773768249979075698368256921861187091512450445655855779149040808962990974343902493531759959293763979590420911067932965188148704296977358952875763185920498803240312051938799271613724478421076106660019290069478339260002805812360019567296251897208378590848648075544520653705514776782456950277891133287080637425895397944000852591677298410111818560655769190176316700946483105052314541446922015375289608975844519858609147927002788564718150762653883069883877800940703871350112889291779811279544177292454437946339271967022371817841801838034495960096839319862464507319041134858130230533933533590443214852388809052439339770349087567277636957202959753742604787247789703980968930034147460016566695241571998481818391808250876368889707843446032556020281733695204275382857204266757794626595207345748310192246405154399822000765366309297828763133109647850585652480793491152572518266291139441757800161668845549270911437008838063332267455977519816674366725026202484044335149968615844535242167432640015209112667187115772875783638022322801170397359624612234009854988947277909461042899844317542999855372193513920740337955002268214173905941382021293689652671395062570281093257618266261668912134113785164849016121661548555657544423951838265020488955744034952189753646525975704725315002185186203720706529980043373375364877571784801944605628810712652531285443010302045653420297089050335486035136312128556685450179670714104551731105167143904802801896440358982936599155968248682213386467125233081997079293074984374432696335059887869660698791632927022568851188825681107349125582169689910831855158618572463867728880092542980253942318160613418497868682917499903956411510447736410761485427384244489093593890391876990881883138994559605149655185845741178444073540375123901800160578491412147431455051730933873189814998685785992114788164517939930949110484202482059091203466743126638979096470731621478021331564686938319224979397998271238003310509248765774665173543649071475684475455188885604427358225255224227216986800364707696451051249688605243132483310714152464042026066643964460558854527978834762943467600268161804726395304493506286272489285150242875436508067354961128886604491383481638396542871794847238659322202670192236918312456887913875125577521320465276339354675570365776307425952045850663335165204400054423645315323107648852928672915611071547743928398725501833894923599107439433473934276128247125466553994136597459082129909794878989605824567018566816849666434878700988494582706245319872355750291317210936008677117094772685369882263679935759368763640139825121733300222160497607207413700466377714097476763056311462225769698123857898983268278807683583770010293134333521800372568671553856106061972665659857711179339446431863443983700166279474204360586939415865650297991958758662362213064278969628769092955348725924602668446454879456675731448032377645112103239506429613787614214814988866721797099605382638975188062204885559107164510627700023009274461727566841692623931996107163236228539464685398391012704122089226238767959656946128097009369144016101067141013592295803325390935921313251352123258008633729263993461128042562395918331374929549734590537138520948430697952201408714556298715041883082146617371772157294189231219591237375029534044368457474937101283890593182077894962527378452062011212152136358471011011032052920913978934931162664288444340124503078600933280054933996661274204680603829078472552188082007626591284676317500176104721593679531618184524877431994879942188674946259862063720589495778441096498722496272838264085698683473854683507226152683791260727597879642034473315534565529007779004979047847928358100932475346111400847910843763104183214945254659961972627081786299163516589770388535342373197575561250067215881535498851701507876613680035812280167929874596572139581551229821067778512456028098084021512564235132847694440225914956339720168162518522351222465148210074749444676477631347211606321809622193690302453493479959415079404619259636259991021516053367457580043066204583518535169890779293723108079690324172479915716826681316421445000260410791045594920870429887294442961654893085471245672994004348926453186613167324235906169568299258662940663573515756966887052196847456793492358170318273201371173022459745957970768598849251969994662965366401853895367710860099011150240005854368159392139341260770335319722846152239645061365793849692157258019717570009470058196866929000324612102164667857685519158565854985521889630894851928536099823946436089193450023625904366750822361896523993727672434974842600859886450969773576951267654534698205840479422734128367973581876197828268337483980873247887349348262124863445482316487903143358349045729379068772993124399366901944056627408515317305080430461345378464977157962644303888487329291964183324316981945548608839598368761811883457964353312000671042444730976696405379293050952507986413991121505022219305863493476457654197711326270204448511960378211590744361240459460409077356391384367959076172625807954774397696909657555321389728833629321400481941401066992469856642671229498446776965512908152047397110588616606590081845493714821426180029023007837853567185079652732909534233339273950720339501861259798385567270599254444383383885551329892553535464016875044568548901147248988861807356710634202876308201250100415986486949504904100066539994842744696422089025243054063333729166215860300757110189413481450048569986461250431540923911346022872561784324838747826128416582116754620809791289963314564322348575474724336432808072103757436296476103057030263446011124701867527870474307053550751079915660739398902462564788463265613458322704370720656781294782382585884396874821632161971263220191294604504805831246497802566045629947186570787203370384591040426786337068360883873126828827804035156417039023903046895705725085627302607499178709041759994342637407698321463566280805352987578963961189586753578010444824014822123036498872571772084852120012715521180009221554488790080881768866180146620473694163350252487793293124452532195132893087327374183171475328685360389007530007643790462188776309759576929613514893092871441028935104412670506286386681057943847273724211753594172319421088696512814242739249569292029601615978273431125080832212132389315933575977449320366036162003054832944546030572736269866797715587476843587944948391259762204829034006530645352356198040783835058999960776863277989605045988445251963002447129092709027445609889807083007050893468096573667295360117094325208036371406253116630811258552158705766875524608453268151912728116810714479745483157863718210888251544253661785607179774534664468535531768231216549084013762885184336598017881092097275322581596991995441487101325114935757674028100899237773104806542403425291307373084563027402599782480957670516472757478264797684129424561154505349998792299342934091606288356365647247113045289563357822335956298718492917179233135211476655446842134562602583980018524852914761567639794211683325145799395641838670917090465153956129219622608634719977279649551430089249330156003065514570788635399050635588251307546412049788043642848134443669579146660510162221295190781564254147079051986755586694691995507811167875247136143380828080041365554362758158298497439910170366340698351918280757954885431840300924477316230545908660440430175871520743458703401756866347720650740675039656130822516408223555007615441945396309911257006541759977707928104704847081693551136686787862063309643506776657990404405282730688856784754299281451448346431158370832039398384755232214812721659903331028809723558908847787815714198394004894265862156576848942563715034654430603704457697481735291964603353319550889393965782224717193346970420362053672854026930598887454705733938598023082596646532064194124702342138656753117025151636218589559275937993814131893578061373119020710983947934817854928534237010756294146501650371999718587253137143566632415748559283151850830563662288150656395947636531322384041109446892335504504479538269184278810567496896818956698524946935442857525912344347617192953548827653105248625314859976603438066699657737668657299295312739838428216993623543616547839133969047160988878950371497536062658153395976937661162607473458822079279534531646620699181317691027211095066910633469793367598779365170020172752640166115282244104455341911133596034882354965910645799898185190906043904779645175573161302271098426105954812869846808240385560366541575730430480205057504618480687442726712518882939889634718974901245823456380715513866221061571884325273146616492583315777278161972029381409673290336743340237340795040303632035173053085334487582663834895067555709845705500395901633305852995129440415863065986252943648096605734230557026905354092454582380606814565919972020367104404667409902851290289112342742518869768615930830984406913328616972673098151727824299318724939145719724579050824951574297931463975293879058854468736420309924910654928187185771191289103130500368053301028111152349715049565702682174130342362627154135716424838127535185821264008739644774352145106141677925900606153358470892061445072023937222117300816994046981242460398192883220305634091666955173215384734695681314635853471389168616430358016849104782262222239171125756327345220625109945964648540825128098153374732763999342955056128745173886765057329482384305585463620814267144961087867215817278994299425094893887890775521063018223703852689959165505646013318017157377576702258461023421695613639924830141411131013610040350292172986511763857498329502622532030558830780642408249632560500029095879970133495529314321938189257276636132894182102207062931061245623507475384431829628010321325079372357875801555274804668903499953175596688814805666602581838110881934256665715806696915810353131996515525833682199473437229788135751967115004200397373326388002789005737158517714842820298323519859472389735945461724971918828821686703695242271872196402245182134780383909717704988030080012334451322422666210755297947573490561860811990458500257469667183127272317200800280205443520091119817937236302606927227303537846037969621246866567130300330384365377243270938657945135569152918180295420665687913313535862588151086765173519644951138762218560650359339434815760016525901516755323197206615224305660504594303385702703224048167415916714582558868445520885561405128732572411729376477682592596112154618729364304635007124703281284090702814297242909633664107339627726057919189309118106630828565371766571331435099042993867029508439703078295367222399587058481720996352249851393702001699279861015285819144559093401355179627151504117895153266618585490621561113405196209258547409511213222399256028123059134104542558116358391144755193913399882946680523923343374626426725434342680083712258802181608895256299356091462008241606575579685006500350695874420537833141254589717917506275652256772770130208104006192899188998453874820598634156543367812434721702777818963538954159115469872945567716771429973864858871560065810378347269114229124894665515540468636605682727354303170636196991708699279828342058389269992257842321805541432640410436663354451351659844385854763181328137525022731504370129082407319687846982479918485339269645541436743455164444438435227279791143854524216980684042643131726941423393803002811005409809266853314576883323095487511233754341621169667872876433690238908952852512490287546912442859265053464487953890560443394375121460706500544637081888698394134151390606845575477688204857501095277953389432839729051104322953771583162178153242889712750548110813129963085155602918901979145300129940248357287395178415662945048021493475624353966985351716600760937178559263021115719620365074230020720306999335606808293618757582809869817907822366511993721453103924540107026711848691118608882034308424563833750532049304614899924836824023472947593841579485415915206774553311466131397938539994497789444983036167534391706207417244123089370030459694603366615481328387139580309936011550429712916588501031415213748518582190669781452342246769553107667096873721099520113279209715090369699803213982814753474713582406347841294869647202020573612840666739712830545323182263426021516336954658915344289913207811335030124163819834435803273464735812427967323997172833068770052070819509592629279207363115348426818894937630119308229980313014733119518515652838611536641013568515631327764220294542509146546505557319893997282175156529516206827348110976967481043634211118005595475630943866178110971654958524942396034314974643025629099406392183816103812928825774376992273926148293808031045824948486920884915603906954351673196563660871228209430178498402736830639826048900163527771538317179092510852541071302566305600843800618013363940799890037501460642437067603205808317206626979939648724112585857286634095830856667243395552117382247343820584213219540791444409515378329665923130380633180202783566725372576434433403551471429526517512453131954566772008245179672306247509818852187726175126425119385462387759578295838893138942162506616044640117301585911972090406426668352870456100872047300180306427862382364734302640336697598989226801274053490388043164911687715850564758264594763201281668056299018071705953633237168824284128226017413516884909355073319902215380202491262953453892740221429898313537875542882034527060415062464218333954965537149365693400390741170249320262559345681798465240560527555209719957308107886174803315615131201907806578500554671377547020226341280671681188150178576930708417764543060760285636291814057457342069581776605164540115084487380875947359378791271918124576614652290257175400653043301447314053488914225611982362824934146007226889947097667287836035317023624422696271622807737728879992819632222427707821005284537791327685051977932374602461555118534303294640638844895348292247744615551723432275896667671669711975992122242154529515083160121969561479040026387621156759809906527218336036030930960185995759941258849399005052920718359628957677158128077721164465343172705561087047540298802221581180437728847101534795735107859979092386818774972720587207508116622141031507943865343964760414849994119812992818115056957132936863287784565352483150290819235225493105713618722719577634443283487322876648152954148730514054383855854262510403435199341083250961897578621974114802596112212181897128163776210741304621109657965579538882017865571783238960773588906505716843085210065447988220068248267443272081286077008008488162322832675239205774531396103773089588445755667491836737687707052956622873495409932527451387780829248152358334536968115344980965755515409375727620445481307854428449937106258849724625293931637168100370847564727254252676428557249777364383422130959331174600190451234796559614815699790409008153921549856485286131203197426276007064222926968733803382339734993962441741092169300293076290498762518663609985075644587460747189117396669641836543005575822846257291742019779170519713193883058132374241837435118171092479394555373809881093171016849989719704432915650875943596663143337545160508630381431009586279447075380875709867607292251180614966202302053447733604617346728834245162950836951911853649015191592338664375698919741485915447756797201946247447893866927903982551574770598737477798670070820243026651600063912928160759121108896192321483410118319230852759785814343248636685977896774446980159500826874368183361482738122996690244298291359960566196082040146931768316348134905709225264059956107393351739924920987297608579984593149859940207515415432942303035207193817102764709193682016651186772062542238699554695861757626510113779034655495975648047228371583248817009161983122251419788571197106342445101172464699583110994693130605645403046513612254456545919696616704875158974020056472859562363178893642666556968502177419437144928058658982629053538662010862907169767608259208526660029432911838591915826828211123033502315296191397018041191001660231428182585770855970346411705023981915630224092265651884512144156630315096918681112600732276410638823885456244775079870136460731523601564432136928240739709392532631714536502705589843957904177002262187240978587731424315786788934747664850334754770818356476459115305118928205002276620749273743056751237130913204484851012249273855261253754584498854627940618984480144493312471628152329377693286950739901505598384355122177018393275287548406109877307878208065401622504676771554847274185483638085655391800879191603566637911132205901966776833259522036810536850771159248459775884706084400408454827750242258747793960595890168597858671716163171568644282287700558822927965566417034231075796854974185662495610938675544003198657759478158084007578258258937022162709242494091088330055016508909739407096752440897101822366029917874338100711402735278081300362325074689008718384636672971498559207882030996278808947006239566585712040293597260419085552958072486982605892638599588221536215174296325440784575763032348123632659326795762652979514618760359044449503449567698271409247593221784315482481247597291400125923595326861726262498236881821162512064167941789288176687716820042690966593832660428917723527358096307688430858781987132952817777647455077754791340922407479899323629078825705192377711464087797387131445233669280970284578570466399416156342054145800785721213286863447752716197822709627349552148128875499372083428139134138518761911771541336046058313918812031545729679813496877704589446587250208946442014408281760792946209517888542957265349391495179310006757599218298155663092064969088750688358386736412841063478346718120056574919886000167447909237876314949018244775210850708427580377548149567845346261537432371422633906237566933163060440956948105671091826545372450464391682586830976598808073453631910237126619045112821934070452846029641947301868499754449702486990553441183980567424605439820476859177326595443699207615189281695560361176950143783800336185056997783308703866112572788750066111847868939167229159872652108799309881046780954351904576393083384167771864167127486606917983546828671097038159935344789632272903287162182761537889654537477929315505861421925867041048110087381310840927871468167336473299492046541319684343652850020303756891166181805081097339396990241255555827640682462532487571869328795377087721583250121625127203540723776067138474001205641796487789529730566782600476341865924822476721809756386956358128022317553699670571654720437301450358329548558146322802262677928988252862552701167981970726234086843026959449964611289369910275699139383262134809748820602375791637396791329866502232732202958252920893325701237548387018564368431943291692185224974428890353835465779674079919156672122544136194818802632866038903599953470142068791488820061845222555060669575861547386403909353788566670938852219765139012047369830241985474957571525083996379230014810890909608219020147455069788265489618160887206857759384919560068365029287750919859279552770056649784849681645097976029976074741215986247994036357684989579458552831989481308885883309245471624333982017670902717786724191461819291216722564193067930508915837480215335608055184849095027459804600464825020902522013804934174481704074212427035117299435953562958057708707001047612061569752922922552591156191082465307216077079604651525457653559189373064661580998199418987834921714650919330797836919287837741094014186372901658641953636830903161802903315922189130082254101911942457926203912340196274034215895978709090701717810070491293795400218944206318759531063257733510627021384046171924322694002618512727939660938236015889967482898812263639225999988031731171378375379778921162428531845704474495612352628392621928038695429119776641846640204003065538466801243134961996279564704544384311565486127862801352168055675308091126883308317419656802691523241836753593527014263155851776330861126636068870443675684420866607530857407251075984973386849491736955303481839659683427305618600181296945406120818670159412758595357833533345160872262307317435208146484706681217873171383883485092265832431410258237251750416889301557160226261364957904396206907463799740475607971357970408488593225587643185650360792683794030172299260610634009822587865742006955143443534703502137368263275287974061023364848140235363844292298748980987495552699920084349885977508433195357885771596931735294093939550388126646909496489039565399506517541925486247479946129501264094302530075536523276463005100397343055870778673640792392876741192995653971681429008419355439138702988572847371605869078230134719000432551035134575105626001756937438095210043383280056921857609672611689417134456757111243913940579481570954183105052516581967552870295669893720017790901230705321785626633828324116743314483672592708141156839001543534558891813451187663882633331601534718229432181422160439083372794352406241513772082414011455611876755772412899937802434086309482127164352719578196617267902982134530654096772082190252211573299979032746425018907389027415284452044338610090293757384598347962280609595823555591184570330589837287677979436289775330582537461455562228393170330857957461513332488815159215162051927370675139491581094463267274144702369810620940205007143335301381548687082476085543463524999639505446999155428031047095016534262221203798533483484330622172714685340989548713632966248303934537746239701225693818944240379777150658009237050890593589880146105629239474697323664701316822406988785453812223622225708474647257409269919189341956075700650513123738574748533338266336683528367546956644158507758137780825627139798696751319019842870916682191180606391734136374975519892801127015206832269525057450555084100028977511767071900878536123048884419807776889868537125977474448706325389522024281150230237926933333288178789730228571506947233762911976533001572407828646937957624482950178866426264598023855836685919400182474886117093333846271937958975876149699999770661807289064289991927900948386397597675396892534542676806950066374664509860172243166345819195411568498560219521462220285459815469159209865219235030148375955286023228936354465251097001273743530169083829458710764278760988018260201994248488900484978199774353759674002919767219349412163631940521225930537693778556498378462061186815001620041471801467393479016348012674608563051490523541440183976167185884093717902827849954663330125003021338507557086586088270245081234859851461744410450930214249683248854261041712886519448446526933770132156691291176898167664328997855738668433922529749936665168067039037057419533319497093071346723032796489934999202807353590692378851316432620073603343537108184235768993177355995314239072700676938097767787028024081559221525873668411940128810463806288260038267055402797283349983842090216711795443616079478898461628484940940921752159353935413544920604535059759733968440269187990021610872115237217333072873657085010540001891608024102420045416848499359315237592357480176764952316329930352434150742366064862274013722070482446187805708272409098855522700942470911612155584976234209229467435497936465058657695323813967330427173055747361136803289425456556218139655394193278579354809799269030606209303246438260324222183732500850247170422314188174797782065560295786968243793158822006002585757677119858035910531096920527699563032243709889881480808546041963238992226963366071141581160260443521403049037827353422073672028599788859797699158600361400432109800953525242035863893665828108656542765917371801825646419311854311125469959849295141910744915568564528483982956539486628509291380758029516889658621541923506478232852039658494462964252812861790524705865603390334379950371423630446801813690035761611095490875903903650015712878710359664722302080178809378407809323913310187133535332816606018519108044442045630754197484592558398788889039392825870594534932125043098224950769213907457210588877426103065559443036307205539661437299725629517273198143412283452089111654848330583537819685004132193402088799632693788247914356280689391306449325662657797320877112531954692632009832991571394709170916954391487353021966184408707839496767002051054146673913425211677671259001929487801466379188252228691625078146414766158452580199167675597543500196665232728653747988012456390173769414882556036673995043746126766196520768367301213036430884156415049666056328937594833357462727212090261267656313711205125511295033900009152173539955434698215920083011633217719250422366005370440782455368299536569815791925068273913450637222432396807866134262184634583284870301495688811009740625964024341627588842508668759633846937754933534791365996302456985220534898679418760764971986436704328830927862641123498687924815336256447161650131075237303759765285743737583787772182469848375655897423029672036465399998496028691918433993819578352653606465154597783564112385323120400475701198524230765293841996235991601654307034763553561667651003043181871761533479776063988865378755124584270714864895522741352362886905258190589042580716225339059641710094974328260107948181518060133628994050739536073433549192812636363643117324079381925697872357084518132088605884429473170386435688632976218675792843376595449408386801083338606558981009076012860275494061264357830377624406537708177491405874696771518936393827038379335963576423349665368020323139835072461629346431933764516060469249711339530182842306563133675307925604828114072698414257502070759055516034999183672734624817517854766124365046361405353345097896002936640619772109964271663365679172282569801795900240791533928984890383133444072932599864529114802736448630913028222938516323248787487510268950999320590443345731363533369214080519867538055738411694400366904304573266678351689014981198491428012196242922296884796522983477107485238297732161078151336413321721335476316746890690224236807278943737655631216371331317074152297018427841385279941362265937758853572318765144328267285261738179312421045367861131160855870686491735596563525194134038921314267120753822182069940806156581253785964637796421609658775837709340498216940307671761857220366679309112461425246004239143517333077576495713115236952329573494387690559842769464062251677448458967592289031528826408583313544612582591779659837724329317641505073384568081646948992013691897245313761423947769294701426014343109755584182644991986343354608451976112790575804443247159288585693953814511201483514977013838605302424469760152091314980965193944181309479692221555306887164734030471295623701838108121124211556297466570829539033240631880138694444281740568927920950513599149942887351541584105252450006422086918607314953917251821693622778872401484119403547849057264189032487854551824303356839349978283823098047817787301936910185183930167622592192359756400390844324977104267699246367329447786774851123546031789477081492024693798913930147897332203078978876670958873116726389066020456863615240009101615651417304822424438473661827682794606054510481952190821353278465905195091008648916286751436419128122070143930842872476363132404932917373947682633385831064138136963717117886043252828870294267428531471474359369722586083830022157137819900806235994684586256112524616759515624340165882983177086096129514974758760026297978117700802419125682099057785114826145088760794424059079387945230022654797341569023497241405316636621017817189127877045388476476766767655624514981769944769878818499872311127680507033145770528337621659070517159936875834313327262951929993838976529602174649418348521525377454946857547556727338686807429757903578077697944414770039490702656345742895280810924325230206593875197878654679509037426341808105614040124136414301249798839993585536208548261822109499253685869216127315392835107902806014710718663769117675822124135152029228439784282975185006542203593318805284969532927586255309024189651808616216425177454938262100892964897685749337971480722302659165013547365551076988174209654842112953115034992700202406705983653443694574311104970534099385560992376636557863310597630268776977707030528047374449011225118969385887782502195982217143665172812636661458020844578677438028803341576164549327256181193920415055571166598063658325567698255962185972185042268433774315521479923570709097542458256924510340958637992187994548243965240570699939163274908971739114736073600861077137551641479374729833031905962008044978872112545809334202692706285020429569276008153648152802465334409207887043348795614455373728543392918859189004690722409144129582024895086640317212100898882782270260709467797028917402671790217482634320754334868108907577505513385048064003871364955447358812061556307450039565843425910294302183830102719368776229972730789398278571629678475068844886889700574074156384859050721949532036460836977922002817713869339534946037058217567767085850336801590016554123008327347993708808467395281302442189941548169188807056977097479676436734359273975842087325732421678159888924933748232470101291524662002485577771816591357627948395687822265379526228563512457341341415560699204082688266488032873299797996325283608621332915143983299009695496513166586351238056409111747669147994238189080907210462374625911464087210397566647868298563478336898474413241098486491447829126305057214059316856283221127963304728092596147366065645220867275965116492071247057432256212160093243290115393287583714367826164464195514882612465490497938303577131388442517445485779184361269218164357385523154538031722365626503078798199831975576433339885638204764383385775178985453318506861160209052490889435472752907801873289808923134558756201208919612961977743393890844683062821220364477968000856331763044918550969535137835229901316530004981833979521402791870696950624564087504188090562731132746892613046246354336097186040763374829666334719981206359105356819199448574277660133016681169650340289955420869958909688730442816269756067721590445089734778295697513110655240917140761489771035991825747535553353527206918802193509018744810658126478324836894060525632569998529179155523762723996781984104608412591924605215760720598827901267614021409392123863975925163674551584011856647828780088253640849898674847227079887836653538889039705929422089511822902343588382468482853744358723492737820897788375091132906952841210571494224289782234268504886138939110467040871758597346852848773361587049222046886438259237547663858077946396062793963001361481640003962507010259403989710255623434186716337718278733913620070578832389926565910674977665493900249096983258033941536035993638474915839471735612860243878308200249844931782237876803430589913536301272944965090028581700383211706300304476844620787152917513431613739652847918411535054797299875133075402369958080101283239530864892963294544645119469158762825008753372904722312597841325314997764887161541288817413034839443385444891038197187963835825647362027315455586847833707073005801244567749112546232870685734920630737012358441024838538372408056851248439385504718127396440001894478255515016672048950562107912013780280543543720427770749155592280796977784182437486335551442619004323842881713934451424521692188428318435095855291536095223860200126887505543065644430197116079455773536461364208268637126966582507318296085852507245081249503276043634150695092526031946087805199575254768919074388363112199388433768950428597234632925842732729020941968000139397056561439898820607344592880682810985015585719902682846226436546518595083899910550162401350301381056928075599389547228941331174138848526075148964725429634209488222833912836834168647493462517308696514950094904236812913618376453630656665077175532970672330654577073389149123226843753932219437256982504843819785270676757246670576791411240190302993820633382428589805014450842739704591723844497710013722463412555967715899488111305170417666077875132357588488699250960759709305302666711043129854731954673137424167722254543311780039155706250309594919337213727651694011453411357227195013124736716593454293824517327240111091887140573721315200761100212301853228380308457932059557165027553234417867128920675831983284866086689754302533427328131884323549449271007257659162687887340820064706365538608049012974497412362659793610511290820094979423747121197157387315513909045279255614817741046624625185340013630307921479429992165642722191435083145888926332763960711756221062916087652594440618670744603662928465820513909349412412736146900034980648267223817954846729154597846676284021593693041272714294112290526256154457070391834298385663706511616287634153082897454557831525739587053073234482822223816356826891360787169908850129712743971522360257029376994891353591137998847819914557466801091494258102075992292120079517412461521852273190599765410190190099436998796448698003448775098309922850978674763708528363244731352435462260444784722809727256769325930567820972927667472863338735148420020793191620993034181566445808007752756161119511278929090272538473946778474564193514317908173987154097560896828573269221657143358972120284985166497770819687310568932804726602877344305729579114739227303438554379020418823433005731823692477491777396459919897610979437232406091922119294337032506733766521903766219479277140005027873529940805592455327255742729946209470096906622680568954368466191904105260697432379396475623027245781452507899374761745774444430055403354905243001905754180412330105615800315071382964906108381292297167570246621876093965497549870905531665051417888457158264796960226606819453096368980073667972982916027477920721091301561613325351951963519585855712156399620322340458937841214711052802731618402634479664638016347014757235059712953701442284807075013902179598945856932577806225288156708914175295279655811636273508804358511871523979091987344630729972050559232492273729264990146693409502931327780570648342285582259614132261172529174670649430885260858065558615343908762593387099443216304223516595711196324165358411164674181733086999218950631634526080045767117410708701825697296532785997029445301927075162068843701531230827462948876632135510142262492446024277226471233256035103601391258005951549585505515647914347574922307136008198248233532165378338008547897500996244721280481973434242412220812731768293713845838530159767531929402533243137935835750710769940267245542675113866640517131992178854159578833129079371298201318775487795853901675419944009597961510240681405791744518694103926974487966865204069737164631184464272249648678159265720020327567573879327763892344599803354223709535748451357295492440836418445561347809630506883334973242216628574055804112145262031635923562054811666293800693335232775256887637596278641274275687666885748662984946061186064809226911439531998454579438709068467114991981071781109038031130733430844311380493946445673093421655891094311282127695316483414032098463746181400175892438704262680196385202280817463048806083402731818490896454991908481092848414287268125541187899423404850704948548179141682314926232200959232630888659256407856521107682642488925397103898321484232725676008228179305374171694159812185657267099352608259645878850130751443112250432544880917544529261532271444165502222649022308042506099339131181611358627138190865015557362326455764081423208753970999270109170867068956967613653887960543448645465817930693490597381994223939938723171979270733963247209957073853329804433350836186113271566860660939769487832373572778786378677922742235143464558156525332360677059310516319655148075744238317058045641262872563640589053994493142886402456659482250894371115804993032852526438306305734778184755573034540642375787388476268931581011258722568283173460978065388657121626244920692998976117565663193338480827811107406779688769843405359442889417801909161229601506960754476225280140563977268954839568326430883701612804613962607399516842945097810737494201468137501109306999580270027115497955744292997538400277654822685922839313818089676816805964490389459905514055165242875703778367037555834682295540754771186315143433127836712509282973909295142415028842145889522492843918556905219198430755303603733789662232544767612377009791351432250488746173672305306083490018467649297872312543777339891062464977687686294479344045243538226872842368702546320261874692520250655043606008232722938074546876638393574840162164969739210875228061541166803151326096995072421971519941045472940855907464504509693656033869711297407359937832274949083590332689848708489186176047563806289197031546481053889466922130870134744670724295019122087582501882212666336838073293537415397188395094895447812686475858392426783825723341393302765323683895511571034058654429231393234928390448772856509514468966248671001389687741948442176192289642547258904880257152996612307880563233122265989840857178408993452402131903672062994277345382042841100413972862696303947533096255558227194827221545414855331408083453047001863818220528628408918594683733322920327909855796693479574062157183225982781271291008481851365146514571913024677117439521724875285654517530966421166565337556995083758951290750985363942718827024156693228517469786606538578243702338190631046439586153996583124046387679196498048185145499189078384744771703598008080205334748032593777375611224918865206359898784361956890017028965941553882140066292882886490173635568179420344183319335434996627478338004350386514640022988091140610796490385891318296872621636418792879645149823730069308264180207751782679281708943679062354267903850287550893233298721210838778055230112735986638703131753141375234191044704381228938982124183688216265946733272777225675306369101539159550216638014264522254054526342693669744320139442515035207920785505465660071881022708598333789705881584689831554098951864805297722757001280919694495663459857076452185470459865761416974851725266233433149437106328212998644955158824910528874654310600619265984725768034843365929607467180213325749573946705097267310609351915567608903516400337954554519327282981465310976273896555037195764354782963289758848729862999738462241144639533643786480076758003706181164224306587163590936986409095665213195754991722995661805833900546933667530383443869899391155786959361883621248184452799784622656017757821821561381860505864199008926701108006559248589591856482921796548292048959282350424987652579952451644565019917450526645956026719068082999129315861264157192871064819727475716326273122081312354257427677139598591859939096753577166343578402199085278810456643809351369978402587116011263752546909930076429783552707051786743813168163209167259604202666130690394082787253411910713582521835778979212845878282258596356376336385566614287557226666594502859082955179700976103955446107860303858493679589302844318869332566111331966573827416140391262985127159854598464245120358050802766969550267796644475685172314789630822494609404528195446101169204049065732366798467007193711215066585215885519304769766790847509901193865815558304918315671442014772906389271976019257979059681581818338581530397577684254467002434302442998295061946257594391231308314806980571406021142323097712446880830701730263977267139214503368598180403829262460162699860838747700895960934057207296681356018123943084119554464629319418557619373453595825528669320011396561993741741943352595388046160838111897091719795965535762404881356405033677640046600618994960812713298288749780959517317341604652856352861401785390155987929408436809495847854742527183185907817929194444478211906216981265293598538026770714080447438707560880519449766910030201341173744278496981946670880663749567191387331601496453916661730512506572201248234175509369189397484209263328659909296961933060573550828786954426690076093374337459187405736725382241566022612624411640541371596571457178570656440564185304203308053026144793366268123595078285215838433291515619359479194208111684717923975707018815709392988525565971026119852893688802533240959336386527449342015929970242612194543402758873353943787991329846343749600325220924520477798876608448551269850366974724416504296081786546929913866051956561281944878138426381436223530380514735037105587723458108982063476101902767783761217715193195524821364310298305035478953656066110199811970965913691700849171386388311714799137876789062509509118207187821500248160507770172026666228301214261936206834660438572931868236913707223938659222448688860104192868735125789931401910946468450322857597096539568556104912678646227729146374706832760644853485550189533253697071808586486623423316200789629181333971399146391849323972916742668506247467087296663939437748894287189988150433673818052568866726405693143226406628153884304283354020310101348143688584764269774653889339503582580688890659315475971525458334521679655092241147206795380984069479525562640382005343727576105137551465081381635176094818960806847419773858944726843282969915482799990122193426757352869990141429186222439468081817666587541178757967840714594044635262941568234376936144373827496057014456405656054072483573954755034899829225081317679989026100225993434024950056736709674911470665364269572792822179082668669251917148821450553939319635009285748621187159107406200587043947745472502445981388932766559753507315225735622353788657814411815624016413135959296347455570600128342389886761871936527790521629967512995010563461362582135759659020498698484097329090988375599741340037839112470524292060110609973627139261902402114842884632455739031679101856934305707730430096257867926281206720284174573922001862622174146429873265922424423871530445326735091530125153546772218516499584871969251905362829848993192703888424297284016700748349481420032009275490831447429651884493324656678832904214918628118526061359693616666308038520631446412835300791799007930376911385248852301233387561339136192183521888814895889357295042432682664517172008580726582962414521249806402667093345720494274057686341416206936443333164788465963894897541829822097614598576782803759045573620797641681218796464788756289551119958541221193477727675299992000931366600374065318492612453781588736024221358009337846179663698317725941844125114698927198363253437835097948015565147468780717794016513852646938247312787567701295362196913427628819440897230235649858840439091738233150487171345929814519136819663707842263080337779399924831258023555756625569344904471364901265921366939952396809872668812299106791500785061561509294022403729853501070351090153219363518562818617387503717889105270667215798851704494996096469427160952555755294417705009665668935881753466440681551913525315999594943859826287912518823950004483396107010789861822842191173969341752587348968089973539979365608300482274403742320288836960795992044723552251498556455098333711728292821594766041061147724283173501554717787607084512698332816315240285891606048935115467652752395831038155008337102387005159249798926470397482574805516316838710606178348270248157398805228563022545533508502734548126106555577197287491799687447462301297356330278408214063810363433074448803777641377628967415874806456364458637541264439196396237263367195427053629456219771954767959507979335669826393470750504712862841997183893569335730428890730284072136863091538624042722487175436375657217031933647086274630561292030766076159495336618186252883032957026796355320874423529907359501710639688569917991101797524846987776036534744681727669287138109357667486431729825660352922011015532826618776187025466772806499350037008160614119187065136240481018281083455814689099191813631013686911938737248953239834211926481979919676769432630113318520802233690995821672395126695114029704987229622622155436558175103431303762949956464517543132351247299742838656724236227127765566645773600918398644241587475221017197732510089192297508894034875056836114213177792318312808305380038125589677082429493991204469100635153138123814706011139594606419803831830320514262777126276903739197093703603922852651913163804963849957892385419354191969637299132834409119550354932482502823246655111759607490785527476159171107578063489320156034110776461254688549880117683517341301218501726934736949348830166954464631693449259107730682825610529528306824621804079259018864180480054712547491462137701244699178446343806186528145415446679183543380793947262187199089468577237027510548041307495186585711409339569407636160958342222198781190177674529341485425009606544626647983588890595947122603224751287958916689851555516895035184484097540692221366345901292744139730763839939113858350232495337810574075290933686134155778448293862214579506117840532857271260815104565456962787174864537048045438413926419191667479392297454100811055557032794825576124621556738895705230881078809234665256613259015239724872856010554806687927419353335019607283093732446284639903618855481929375538180753363063522349716865947296712318025357260814660914931360423979817617732044150327350187435392017729595363372389102583534218758573184862144147983982167775683527820449833423604524723364861637218900243877740610748154229542153238283707551176823785629193078251541428777687664095085913993705117368526253787084776626105816989415588916954375074512421510311871168966988761048695650768879194546414032681343810775119175254512248476271712389961908688217361890247022755449283088611349943584419670740988758716956946975096691136009793776252562543497968774020372371910365436562390223426791916994833107977273640731775833242782287975022250893878320541361394211652385232560905485352452622401090531220737995905955143131622856534756110118999317430293510398128153306105519424878716860235139187667694339246451115904088728093080596438794709194426195898816670940415187629860514207436498466465367243897249647384627234981861028613955476334433417760984930539923853417026878387456541694533573538332782118266996120461697550530556637881026966854988933903026555415892222035178826920779616331966471081354328892389646802992349972709802139017746711907374108580889214524376343161116301415087965127559723916969918407870202733700812759843956298260454281053832748715693887734850147157750239523579271856942697930982474469976275625446958388949129898717456847613639965424023685884025130100274061556846604088150319952577326785393985608960457178621991090831740342574361074671236059113829993061059293102109881769522802758968016108268832030792460119418985575784951077630094586997653535982728935068780088780833834387984629134616418379126230134771231210155274128092250291995524093318908345105681638238629354597843196801645979758244154134686914508036285842338101195869205733480102055121998439271967591168606285863406698867647584350576623407575274884429822891067500056052216668517072271581188880255206296468156929550991115846867119344274790808056774618981864397828703623761833571349449071134839969052358687374461246168523749793452836251772438988542052463796039656795019184348483662243265885055250958797270999410492107990441130113796177105590539588987367267809263101171943807918056619922195956205929672596672462315641217958907574408273975795054374854966150478810100486116890797702713980492043833215520712802476023625282370686744865626002256679657370670818595839052074826511998551325299767345969693344713879542363778588204437216549351942310451595119733673227188569366752582485920186534339995885759421238590823082319013406106094918835981239868133583935495843219240501837674241706761874023090087298654346032704056872152559531655077657093258940886348810709428251100472194092981706190203583501505250045842755577563991151940942170411508367481106591407228737381311569157012865819976903378754416168051506284375615442898780683001376124026880890156779800469656895709157822403630311893263738231632902586892225776729598930515743432911277085694129924016886453814888729589445862952409087461939092795231399713505323330779411316703809640545217500403839127545554515897735526667705951698702427763385307696146270545383958913921778132021384023534015890356734245583665729736031324112080149545888865465610523736598605847410224143129304748435783007868922376434197345521926422782315769860116957360092393556021393868124762538268347431919421569841140038726387753210567677456368847035682469255146337850953388509806693999898417686363645799926911133234204293961753382796592656448372439804218577118710512007315608272614858878946969489499619335889983762434673254684161634633133905655286088523349759309453961697575923937789857327666721776509613857410913734869726501836108144233743001772133195990627993933386169299280866413569284363605014706376740664290963195312337710558507735954218306680982820949562426307794950092693534147712788578771449817983654340487373615499587265494862155594860404449770196595270492348838596998287968216313984920787181973551100428355132127520267448848563385108241504669257226054879091261234833943699882046418279556214520704397465861659624139368547025798020458072007775871196575566049651150916690980953677666759246242731309272803936519131213069484657373171566336546580895987594628310023759789308793655787224256306766423757765156765672614594732816371529429303402324546646807271974135926982273963308876533277362024344565136978214366007791798286437860490709777297507468406568356561004182745486737332452506170232406580564338362838273297002255372198173064765901618423196427955388408774880226437643773481779377919723549959371324455289836197822788369793944951057542964645674263492365244241848294719068238132876949811185032223035035346737103256781730851832366050954521564123827361056789200220288175516556681850162058726815759073302744386544579281079213071737378130677659600130723413018216801333752570470665105420932157909853185484088815304627853348070655203000746401562228013759535753642614697409222570525102049770140272537988643984256270800367491584589674879180570632944789600796096642446483637259533933137579766468021526900911964539293465376636031698032497441532789335676228337858921462811270743617751545146714651782952872248885389730260033828795798160786263978423563220114880304989141991427867208138901242190984846062332587140555271604639693152177950269751359010579581532583821616838860050225332432504873292157766271192954317521889327276307204727131866726459792067836493506571839068090008984559025152642244869769879198189438587584991455626357844959051603935032055269305486877566453013943646958927564742736400681118519436820541637991050493188446923566852970772802505848983750558546339182320019014285064761040949844428813677218941416283797633569186648141448818035611400493232690510794916261031626430908340873846953225971388481354175309651956029502215729228126743731445362212592526642722605408266425697932732893911632250354402469235171014979923471846785155941239841438876523479653414560969805041993359498076238328139864947356951960800491536377924794561197987923756018546326940705269944951487907474888926323052161648490958062150273128085596653867054605029993752255201080370940315012714711774185004049705476509476232044880754909760870846221487131515668929286514254822446274342303989106213306525197033331812723384143620107286981731256365343553063749370889837016622180527720461758655493494650084948844789102233266556888677969329712545968692970887740403338086714031199571611256704734525609658486468412733628280632279970359413173916559471117431850931177633713163294023381566373050341312031669978846171295913370396235782921279818470968043310933769048005017703853426673374874265756755019471151493824449812306345889668832837214724016957175821301518151541732645127265113949711826558318927746934062546939316008384245148364217107949691117500997010445097044910058629797984783695696552936400288347203100940889678319264173262865499439650908356810133408391571136519697087532444518935173559849491895312923087968613257756114529482052778000731660041218781558959453506093538882131533637182926047871769349073610186619547907157131843027436662310548635911635983369171996943529148884409222998342015161783375096446936379454761146704297132533386900293035623149235183825837246375097869866801668067692946121979738110401643045354842829377405228714647339510375548588659078702271113315346813797661868699476000073731599851441658561395301611793610714587327511309861852877899165793555297346670721234085331407476781775353920221821919456755317653456087046930408782388109583234979034891713577912003679425302637513345364071786101791497404882243275104529273414967123457312258019439732871124424547767208683400032203294172178604897292236948244893587819518679618273591578648919642456930647838148080115412534298465659781233955868020067405493413228889075403783829480421453116440891486357087763260020597308763259176684973973531653897514898129996120518210411118003413035873203703347720518298622200399733471074901484493828811559314848513002549472449384473077015107656088211853137690620588526444061666746293975349264735111261922794964275525349959962717874884750096595809785580008300911149869124717013894132365702786326269142608027572131788015545525790653907209372437056447297468678654866175917401459233191240683248381467949972831625299168778876078561735445336096924637001098949227482346502655640423586435567856179029567138474769006851573189167234551823216047660907366344202438244337226467161766682804834923166496629828365861865876304170046083606658569658859305660363418070658008075386597321614405314064831406293771099116046154988470105371657564683697480369908029400454297504584698601726762739236560842270593481361690593956183770650492756249844517432102182645591379650003548458735988892602808435400741110703992419114878825877250951922822997059607656164534327580550489362338009758465062973138893148497233610740602545086222953833920809423366474280295023523350051097679164733317231528532618633681069568847791880061361407418557372600161655025173552423732059311641287211632618465119435397264198198409092918490047916659372427898527592311539551103938677496471364379424221565201849043500258846728632517382070479491854152698400194648945967948617062468698953084236170598816333756377385360549458062063505771461875445236974743413941610723645029970602566292297340548204752220859490625062622503114319806376064650225984733737468875707885970426120750340673784399345268721065930513973013717387902248558872412462940809527351239034124479584530913594214784522202472072109962055680680326744963236474822665265299213241156074475129961244309498563803097288796016028518073183564332745458116649855063840142124152887064749858262269069223723215171562863904097603834912626477551057801735474528087242491610058129975097296754120663743477515072602899541507883500864498052955326498409486388609173721192186690659089786604189472722384772722074752991895879898857034391182896292866011597982019169868702657090464457270658409776974129661149613096902419211271691236169785752174199603185142503120590348971720505594390294692083231524584575249814904309109575573540070217854999693594583032378241230470598774519681557291590037500645902520805425129957176862563365961126049502693634059081136963886395102153733871053763544198649428228010061193602010389499162518589370259232256417821564937088844822130427673257108509827698630399147432540949893599322970784303143953723815235971859142811807252667380864706907276964685129796963029477536930919063437840249703677274829407233364385834506136129728373213933915153875940798200411044435232185604068902499497140796555371164212883329746983148663194416457643637115449406440784133275496639842441266732531290620201626939414997068091067176747467260198496163970888445990481248120731503148248266803192543767146836449434556085307017293516592160888708476460806625582145686805365965964417041350470001936469013131286518107806451172701781388169745642493643277107641293643809136486815526106194791601267028600022608796093930170186540181000631422982531780267668154138738249925034264266539849066946466608689627017696067280163112835628555465963940153924011139514912522964034918023131596745637589639865483097564401245442532342074556079187058649429358886042129942921057815643522987889268628390736638443144772519206607390788750527424589327849190250403767061427149589401285446345195058223823282892744286507413165430774470776798002122441090296838247330818991913203642651762046457055706262488093266344769694822364033427430951523530197162302332555937661645960092579757712695242743351530517765382426633553297257730062259477483443211151082645160374582974493093046752096062859380416063874315673978229627735219431584780792370621073891339593452204134056621092853796329484427711984255957469088293419381409985448811812735823361969183513619771212797274556451209231155593485170263951364276665856036564047904795308901132978908465655415815506437469583553944119398200596036172264831190443666132692985414159473869744235232052410101956151093360402980416464345951730529443564909357740572978934590046015161664520533408348165761086257173344077727401412683138849675057016356211569625313546662812344943999735683292029947764476524526746574554871957168335383523496391430471954841084372537653560651756837873807022984652304715828606701461244179949525298601308129488612136269565970489009585601487579035310476469682989838948066685614886990439381228041322112532320284015068124587388686955435101616259940310856603746300041820537674923095481297693835616814350980160428980932686881380115988295787963774569081038030843298969935667340633189271012667151898963935101051123645472069881023566690093896431856261290734144427204482866594551813261175564254160248312485681961116585096599323662251695743295456975329317594481114965743068934778904993771948165753647172447147002569719500690866653344397160164193322959384364483098411536805782001249285279942082278868484437604875148108335581122392714476257144059149467590814796347477105278142690381921099025398456374636139217073619807343078599966744183668454151916242833266547491601752232737989969364934503875771711356884045282150538915440725765928420818295643249505832372910041095217087274277982103751018757067713443998852650470642740239714172093421062059096163078002043980281975987119367899270287857846262906734580885320106520954505458349483863814675590155972951554669583334794725857162602630363273487086556562689845185305462339880695589749888036771863553717766884621822344415122459796476873922203986056576227985332807832319803069321885837315889065889861446637481281974501018293885680383912867502863200858490813585328128261720570367338465342988602456836602549734194300657521790352910708875671136698345927821577392731411931258704172024015095589752841032093104706759964094173373991361684709303015287632962993357476317041032407689192601011023357670362670766276885731678605332859039135576502761165375551250663015147679364943471970441459972016527789218077435439761394852579270172348134602803732819283645903083161435314895498478616363462618177426789746279437184071897590643526384909564318585106236949409708503494782970569940033701202381053090533218657001170624355426445317133747685147837276907349536991880921872293423962887380847311632027893769928336035252519923820163983704570818381941704715657483867278711108525778029098273878110016764663795039109651650118604071037333011490942923657679244731795646593401473696354871192644326941224661395506187902879947993823073628509945486463538062903426048392322439561246746795929423081353507910023925998696228881096975463208306801049708807754635358458655281214298200271842557477371249068294503077677643281058512548375185423540834825630445729778305904866096565144916329429438944804617040710366161345477772576854403797703792566029773566162293573798128033556634000391658964667085040282614470334831925867639249583388145049400562112136323690933255492167229042631332942026486559429125041141573555261028984080682154613860983126643580353751497123635022275093257789714732445862933010145928220321199228954480114752758809558510987099790746406732184936383075208215215433422111442908472552158097189874009566373371130609894392579968886806456022768878949068707736006338912648877803287516862547834149179631494036654098260946118914141234018311249807079580460794021136881374646748549988944996561241167474071954089813311417606989102959651537414359771068312363036620112996963626004569273017505478413044107599653595986949639540576296709359999156279856631823462893001117164350483451708128147381967978864293230572364738389188087379231704969647915651303578752046874444838410290580457290521838484250433529594121741261676999844851237156414203265968689792095259073593768783080354897363871023262022555452413981967162309430453129289616409743896183737046745772038774888476239382804662628029280548352720427884820028603652482751350553732251431611089551109621722179933524019048035136838705074982703458170939921584638120232658210730251669655262401065145875683627082748898719379692152528164483888652062698643505654032519887620530531658592346543564442314075187081173631753953687643573899550694908241935879293600632130797109277692346870663770729367485741479036392861965146911873319563182391464533029543360633047999601544154263048311045157013195339211606454590799076591311985058915784442098286682910944523200272030427801007455521744203813807365868165477731920403563753626922798507636271337798626208755633438557503748248891615858279627651748189871969255518725300925469875847353231934372253359371308206899967714872333040501085065464103063671479493421737271548419287943222029020054703722874943426689933480216841127426395302669052843342651527847525607473406787493870844306302992425825025569244624141991894990786484687891058123824299924819655836336282363378284334902188973674235285469580003339379350860292619360928007335351673794975243007233762630361953996609515238842168356296416941769713826120978353624959696393723541085497961220965956720841151573710765998920683373829187572118040658109018844500543699124996575939463553362654801724518852731880786034003814277453704176070587637521424822235283350727469233420714416807709686937632064569644968797160896923423723105812335857454731160707029073878038217956181268641237857358204453308786333671123261252474924302221446859503529756625596075214649370026175342674727742891006198558083168983905887214510471900429163637560922168005441456062540821127211951237270824448439082464956688413688778027412714747561232442003106844579817214765142274105041093920290952077206431461247507431518580485062339311838074407922235242159173517156412975211538469148509843081524660644346146982823917191538578358502988418305836778356503781034326024448504120022020252585383447033675483938816007730328283145013138143511967967498420647050743894820854627128342778343967997769655053177579517943756348276601802417232392172116794413857031932276562361995862215944315430371674296561043428647338085748167091511309791479231457583854487949834168514242616370385825764970485405259637019789195477683525919722995931018213223860015844676669001496849497866030476832243631685806990908392134318024076349413430509025495062134343727812832217055835659360566955201319793997059376701889093329110991213862979300335851173349766908545065464741396246215144892783063024815485119043196137930801781193919183544894581365298556215157512905816287893790305323940455791109008422713321016208814686094550312295085722116805217844789214496350547093956451212419880434414475611912441712050386749582930290014228080029615829207892278873454864975488126959142428968495651427738850742803501340567240899314439038196670724715922053016564582174173421487923299318774501841414148894277691404175518039425969732466340217402819697396310404505802885261413668840908791374249610476788246568885368713326102071712781217868150019949269972159078571110797886853176609139046176160923722099540068358128014424559312151796934520360348178847582560582707808907579690395926573342287861201355320652084581402520475763393972014550245662745090378073681302461414395302904289038973996328426027546766764068309605450823478219499782597984773244891101200601433535532610247947110079859528952410112742188109269852844841534607792301239029943001362502020522593274271240626357489565016286792172689883758172302211870645914415346888952046024711456338193022103163323875207344579459001707298907544300186484398082749529937615412437457435391168543289806437555327410878906667760914637390144285240073896791267363481031349850487206661077212928371977793121732622179385705536624244244773961450924065676852265925684236364537561732609933901324840559781598936648520927091064280190964048833173667389499712922537914732031494120340375835416396408783866384607260393773075425950516819238633915002486097178027228363344272393575603144581847846393672244699725002028685756477644929321173649394740264602419611352197033149789319928404857606091690427324683049195425806802597231777394749845083197258657814985378467175590039051853742216857365184357908430876785471886309699249478650867806326249073726644963131187642716223358132666826527223907219785830055853749199316705649330576755123560621865120168603500680714679217768212560536419003560830431782568612562260979509154244178151668331878036243220176663380396761806675237243043191556181099955190979717178186792415284352017771821984221824050867599420552812967253159993108602942972058663445534372684043653230406834122342797777258137714739384963846668378022617550595147565588126837163918609711106513397664355500185679401292929607745703306872221758013909386784923886180244750263574343412736347660118860544108292074377072987013002824796216815893739537749009063383079781127953149293997236165669242377517508467464726022084521499315357985853879579099927789404294678486100733974150806442991372103337456729400085884731541832665848004489910130741801764588146608771852837008046772832202438580845682094295740707780339244892324286280148762525513955881307747366648486916974326507889490076215993920239922238508864827904649299069491145443876053717697504871158274695424054538660200569857268450692279463401175809717830983863978556565275200397704401578254259050117570254967260301470705945917042549436542356453187508781831333717615514444741673276459961980482979441262346096900306118002037926967464050879643957522828773199467598370873434679740475216989997641334210429773675946410097955902055582278626809473861644528622276175694229627479572032661168135439928843795804776438280058591766988680739914107514021015178932875740060299398901229599223852676680410861687976627307634255580150496369557927563164779223620183601872044628760113906871594225936476419847228525413486055222555536370707020248532251291997759670041789131155171211576486244668786044492805538907980056708253768077513992742339163763332060060758386690572399236393026959388660904309462882593301223381765389969845528076410427577823595538751054457255507012522381958846830737345980815528351718600505393260858250832602942226043415722152172107837628890255969924704177367293397945244551959071684991370006310746549917732635172216016238659483384569395206953843079477307066570471442623824055982597295435579825614677639474489695355994231281470540682049901893196937201680683713838848865429200492555696712909820462956702509545611490610388304729425149537741218184999482865790675382294933092917150218372122283698993476983154693470063569017547053657462317188169092065033506546504813588727612693640473332576307198867408094477374996594256082092170245300587562155013648344224522311882872405404658841367295083876974028573052064485327907945961979793650952168501371362650139491052040878013289505016905225233337599087571653827985277534154581234697349595179620103764465378376179022879416114737523355702470568080171097450363218173137573237336923120694110835651384431352103709566999281467692524261553787975932412993000681789057947691427058189800758407654607202981472059949830041174149356439926075723393084553380810668163847801589857553109010054958320326028761698915970024928989555373965133519984771062187813639775203649895823113362710932591164959290068054307414093802243623881836235683941602220042682094351439035643552808849450229207847009143613164733651150536251165233642351925480291748057104838960207944347753789096274989593894905010924516716331785054354501132583435342847006798018930569099329198367394942245930139342370547496689925188157229875626958453850251074817655102889708260624181527252149361757820790961538103845620754776229583234791003304973117106282545956582822874728644194256842259217648628774395302000198423319891900128168113490591939840979135018477128834574289257671333177763588292845981580440977274061133903092344812339009155658056579865509988818466809640642058669768897859407400886730260204175853547016886498261529275638906742252195436453429056160696438950297565392867558188828131643044327191546274716357188059072031740685358478990282194097277559072311687650379241142078654084854695227180445571292301864399231557418785462115247174176894234441496413024030640706456577170575433033510500021552166889129825160395536675067787988973776234931976046184282084226421299610441707185645441436367013270348668277884172799327218250849521234590686268686503746432510903267250618571950278962768420481243140595852923235460382831755923178945687606357840500181354183269847702479826226805935497291829236705282959505162414258559912959218627846109367694434161570984812779694420145945824862843647632136765544782365179012570526306326174681559287250939222382797415481885650099703230807854672651316052417774180487263065505403046260482767979747488920986029853200427415368130567053786988505840077130880289949660536492214361927825988944293612594398163708034207019178838923589954070066290413418240511601367829997604271925779476602373021037900123147593892123875803640399297778343698739962427133656228566889921690692663756746783001995736571735306514294190170681024130139203822027506192577133751516206641408122063951773582862105455343221100135770366757701581253808461870901233421749434758758374548676258575542763473641294558781777685207736683280874417678372619142543838027080892081139082346179249493697035812858359675375193969648928880599168164999381589267694549545558471976143009049198108015004515798947088250863583980368757940913015741632630929036372289746858978869167453162250508288541782009699820612844598573356972804665206762932708398159399125426791446000916311434058970190082424870797215332055507965546549806890072598006858442886592717521151556502129175436187496193199714906885599180278766616398538554779164080700747264410815059336863280442919198397403778961771635981037861995328141802532243865995435633581075323131345749170030781499613523645842292994944065432088989570753505946308271248227677957095027909168523653362633367447612416525118366380653723372416977230463226326254337107835095442070355921691778952672689578243851469624576788169649723413333858171461930813569584771085077817373588602437916573389771131818103898419721800322862812055601988470972565562519633200566067726509515736338461364847156007521419398584631264007974430537266620154586294244468582052097859915408397360746691449970434667715175284828249792044638405036089279021007248674624135496153694480431706804708987854714331106988500078346031142545889472291260988905946438038030043507970263194587592846814003579049272222011080781025308006047759598649462276355588976125631227140609219771333169494373428974850892330522730407799089839990788845267691195182106543617956889817636403631050012541635911070039251031486583534454385482818188577494179099464396855769476301749623341852669233399450484580031152639697362794176642399409764201899090468967580841091235577517214690300872068387350638997534660616566564888342662731526547347669598088574025771585634790687450583917461958637125375889437009428089354488630580646713468688105421435305624286361744436888592029876406848972909326669046714050968280151816987799254545853950500467034880003689547826414555014996915016214379091779176444020862300831564373358262466447639395317798484637135996200692482533875923530384753332798384497585393992753966223483949961959626659533355910005607886295631978526738350681191392020008256192829560214308909714519508583269641773256555945946898726945410336539645257416530993224235629665312818689223237438964960684057319539444559583851899896880000370886510447778715206686961650607300552563931313708859483079449285379565017992784799300551577456325360253148798660384198657047652505955822221025940278767716730152952566468338853994706390928317566357418598722797329401466278229656576721486843291515019985598051897559196140931901467461242711872593976798215390213739115563284797956871106787767402746905975837439004477751686841089539804555044152280035963823910916902447886361142627929917766822646387028012638598565371270091366940592619689366451393021260562883848172342375862354739231003925612885087050113080570001462565146026708095296663897888950335083989044623874630932932574775674403141629224402169099001913807276223979353313458078680433690239257026368420285470780865510616517560908102283876435178888800752463893864707581837405959179367698919423246613517881876783648942604380267350809209524296839402427630346846028083535034676421325650292751073572788868795253766648728682274466252813736012353802844159927854074443057552737661456275093058200796015593682035041354986418828239000412627097778790903484974618094791503334387885099406934940605519433349325644319303248024071051302519953956141580111744831032858826777771152006966220732158834951095670410315834194322749929617315827459416970657000684325613111124870134772651419714907506240708242952222057110559491384437668456700146927385468211558449498781769339940671254120556665014008803889301054359674899088356139220450802504643362419582443652886527667524156598666995442755785071320630733350023709197782012498610164250085205408173023682341837095321287925500000729303367831413165524301484325599740491419863640764142584185596499860992991817483723214963912028967747698688949878178967189497409061288833362116444513049408388048173940587359162799954535022493276714654721935491592139641643421014907039872814869189663953702775072243693916822032216007231555404192275466471693490837300256959830290833340717864651014751241499130310035349597383852239830740687303127395459784903071166385106912303137782322398893516755568454181795815454146600010349110743728166434329053145034030745338092807617221349225050577899226538989766868415923881530537440387718910511265961307394588861213482710202326664694610715001272831121966837175239225155692506900754067074077084837493951707141758181354635899536984912318871709054189823618116452253561699641403156699730265243431401817632397909964868097154618014966327217976203065292763410477876367597171680260741975005136161371736692527643823807647486126304456543371389543287937936456305034795996162709529026683015400306401674228659616685883429760155297387192773859025655896863539323040350003386466066989553149622823517361180747723195996880098181315785953747999473727052050657668672567222173659010424736463194860701684534148122888253197318524649805701331993251933762663204902486883796054061310406479583377530096844316462901653963817541800489353706182696788978128241970872630230233831156562225815984972586243772509967500703137564154793621114308892258467176013430087859575293867874558205700608720620745536146728422143345247757213741667036034039322813111860516437347349118811244580848464795600658903669907166376896660523281848822317115343512428685674887828340241650929581502672962499384204261174182733669371619268869867941122048665821226957420081144096640762324062955814225403132208596076539040140242185923054598036681167350860395839112243780862689401584648201854207215675029439165896253175501317493062464713165204741076766570833332786550882114220833226757053508855371074784297399283798369665791951453199268868583911776704654240078495640977985401525571869047495082093565811603783421477089601467887685583172383386920187655511312426025661268968917375333411243110359784731349675822679232682202955452203119457110297917532582029375320383121698924603381841110855240008537596008520273671427677595752388618503992043362693493061338235740353983771962005611247053623927298782994613818686038777869741382938786125828372482974533705446449923070665967993041979088528026638784472108684812895783964291169034543905936427664740050578384958039247388828616440367151270260648539422260263584841788706202272854939179762673648425488478064404279426167807401916460124087202812653811369346652173202967855082163463243598538237013410274887917084612633133405303204710127590216369901796865802375152170481916940671818609141503969308094588844850801530849486647898144748058784052901212623343484738194945604196632138478823749368700754466828892037002381833260115230603955851660159050701726003240850311729294193858840622940508638382994148859408751985284642985618272231794830213873415051801716055275747425626433653411142971591607486667951985011409344296202420255150677497865699827306478543043764189119113302995193440933495248357090712121886432162738346436820866805670387478586741784041966446432516686007920919867223408288882898332422202041887378878459002489739316000304307218998210170613254232695210081206539302545354239364028328706337914218721360271353940756914980120053085800778796835381558871739759756361843097692074467509920937287877521635690772925448179504255441834558914324200741084596824180660315736733568947778317531919784708141468050464393896368178994251684637078992161544586477989598708518050127625579554692738129905866040742933245551154648699103610641043100569043517278875227273562798284509118218523318819992756120922437301933714978135067206957525566445053825999248733950415578047587576641666126684127504750341538893252136683443444161594401603144274005344608409270337129442152947145688986461204775265484197022238067253669589251909529168041278491247132567036069320609898397470085329805141891625785709216804933836403991989732237846213344286672051262982394711313279315735545403011165477873935707146015909795519018507459711444201875312869143085358177286828061866159318366480302120233113045629028913917617164099236286968635658400307652071854357654223517558777777139409523870994233092789531226430086252643144356346337707552109843507503569159636712936429955266679729346003709930711957388987583457646848076709836785633207502470139547241388949277569050123576175768066352437422267047687132269433788427271682255069833635188082620176275659172173369966015318296141692316091458784425875608703694556832316430528522817968699037845043081533728930660656838788609641780184748479188536215031038823142932144359689501105498101255008694045110091994062438304204883893204003888144084312556164041254054789167451556487587893655375432924679440869217396022235497005077921436259222005959331192670101358270246654535720146751677501367801628430741692839205058461478403496250217841104317893196009857448550185634221521677525035751343594684240782308447865249344765534409947827864522030202485714991907056929008497792780768143749465490637227455390341037335263182036757497097070526802868836412040464280477031152913422167243539895876894180693946895865380099363218744478423780408097163687368983069429947045967950181988818062481800241264332671742185939292939068004695888104839592452826634234182131907319047179941935171358660819560540447338996888150482493766492103432557648665475400959137808110023497087066294659077649160282951171999977021173692167908955176966516181244369346734953575374623923196554624220097721440200948089025006124143049547120012527505951540157889206920799176665863194331622492203723172493817866492606209852993297123992449984715923981766106394996528880324453854032613020016225876215674256458384151508375453798464889804829064367051742549154647087385334677314143921955788654544505497472303109816322762626685048463500877959962008869943946480437475655895881386382614756473058464135147954699651038995776560467888971369125235893360286523307900825440505430453797243496811779491341834072140100682346878590424302100733398855279903050290050613498244138637100147762616359013323535134668451961791636066868365839869857595149145935686697493317423278642954908764274237377002837373916118677125006153199926403622800824018975791695743171085614538726484678359656279075881566635267540499942272480244846568356116472201916353993154882115708834075564494874113562742339755800029439580217470539220271932165436299451873063503432294644592163026554390636631921821895079357272126631130629153544427440695079291169875953559967182684636783001881345802408468885677459425953375507470805533800207688137457464780717475256741836710888291704296990654036015637230896572089834827923010419253209240405262250742592087317023559343016866604175173806126755329201855911849488175385368815498500335156016994315290432493489143297695927006714506417754615116100835382414578012204290479274757899049559322056851719048609025619836613873385206416642257572902494830457445941202629292278822976953344328157184623992474739332674900864879312560242106574677876832885745279214461953750663858749266498886893897673679141468903496273436099457354539867607585438614797477778187971725403271867276269996294292535353107502848480713656347370385886425121947319746701669073582043756933801804059436492796420114890614484337688970794935848072877394276667196831079068420884598029425864396374565295265259118067075282787509839020964779018364769723588378964005269800936773594566953402421008890583761484088468357089724678712557122982309808793075786589990448755870332456204584919232657983511356697451561292875868497167726771944770266961940446422933387719421515535034013302407741489454263917200105661681081959099870835387561887130382029806048380378240545510920984395360393025614062974073357281446644011188699149813329516937401551660854374179870154469489397913514118087580254760309998774150226516250369651207451773345908164427974669138120577821080188293675280485946691539184505315351426081985970368093689466983405330969132410784597166192652621728383823048888470961622729254077523662021939729387065479933958632616072658943256166462631632553839569570336839313791851992573564400847173698203556056007626393459228118671153123614308895762432954667320009955196965869570961787998176162166585040359437998051330091005753018428758177722025628399259423252285226498260172584095456528638454944800275886443941543769108132618995080991374754498651740013029130669325169471022889569808220942616251859209010807609550007469787090430545475834022909932677260764705619351604315790971678439235907741012504001858400133748426268716230061918442773179330998864827730427620520275264384834898368455384804424520938076305425405578840531385306740740010194807960636111740171457412351818689108237721435104590276979205493625117542453655067328392343067656166038265358207167097464690472547854616202161465798127841176377571949355250027869072759804523202820509468630633817292214197540987621268788761871753820295332024032771389523415965442863672812947611926737723174804114069832486742201338780048831812638029870332868571268277552001402157264241930557714138148035722350878798726448288387704579918246902730201050344788091402934260265810127093534529393902310902220191801378812375783150975554449455205555269921440685635378729914165567318479270262874736879018399307806141325621457157880112017609055439008323195252287317918344256945024391461888442282985286671365974470200151043077237818739810736732700968655438219173188066299808795505369749274705927752552816348626472811734403776163362929114794043232377564661225109663770902428803048521483116135243762956929969424905746037105449813126021840071846892894239358945695469985289189839936554783906822638176020256273228436384856762763658692177257723447578512844695371203800209825568591252463572802341520368496684877622312006586567243804078342522030542428092358162523149492199705889870220812658127287227563942728980349414909401678992933816386456420807884879566447571867807283878294573900337077605365915127727325442755587410293225042868464221673705994079892925040338109290269623312705562870670379138482368595420778668473753992253616552734069739275721680212117014729813335430014861833921313023905388591725406461936355123691395807179524887651017822086169921845417069072081186406794924862245941236583669044014961300502339135666111152592190651079774788784280209080232479857976386819224538455388774210322246209682307022026391420356088909762139195545883338373409877579186242732441491614501258282755147378507157573137070431075130392052370738384262024955046666035440218615051319126739118853273363721469926681876584365915334704999810741970427235852727357669758963414345987820742980761563956767330676318853552631671742921500569611304724694108624511131336175376545219105022004762496330966133242879537270568515757424552406904877888281602849667917520856539637781032034225823519537131835616720217779490192516179257743447613291580969181015371758837822055024077821014809809317855130320921960293452164252304547026594708113424390638497027846718794210857191232916389054704048404003963648127074117419507977964341973971786557938315088013222981680948678411218493124379437073875805585467218543803516157089478855787170045578766297556312282255308559413167326519142330863320970801715164152803213443353106694771980116593026178066064351443090883545413249494231618033080714043095479294938684343426864364188328003137227607675266964228977999017260863878297053023820051540449934836755460681627957746178207664085187014954624958591084074898066455254764892453457960128219729498143573249540365175692690344429114711427618227168584684473097228411136671679407412050711951011095348492045346497896473400039814087325859225508620231198612654843642636630732086436477745653102465609178955958534263430383506503611809136108411746327072633316906402710512301647698378280379154837569186633072200528317192318376401778568976343413300443389158908916108769589244425145055953332134482622485145642384706702375147768010584187796922258252145946214061630125449261113286897115376231137675907612704125840846730301546179446901233782662818390406124146042465739668642385619202139563687232981544910772442635694487116204437995355865017563968112368592990621921773096937221240504290809835101569060026248251495111144433418742459997328037997070380505421578096482569406836473953335572663656012501732783841366544456830773694299029434276941261086875433058024993240609846463752143883386655976865592705166681736456619880693706987856559918654730932194344219822304816518588010321935730745596070678326284420389338371014021282870747275561719479163539020444286916714312175198587825351746067010972220317948714677620031636895639597687038722948151442912510816328935723348134935868317249470804648562059178948720685510143793543329689845563843059820146101937622255714455784461834326913042730292467113990961293994642564821802269172695635843996478680679772095046661036472871135516423446615479979055564361390818303602504215596288325760354529263091545336840755466050213603948087058771293289040422097457097453152019760274945502345980677749542616321946714934668459706566449840019376649293301080193974335254472166492147522730544525492592657686420814227896219145842242490411505820507873329672626454000888825110765185314406056980280136339537287793461253778971149030989994281968361384012690143229982447884373292986475975394156297698653477928260076657969027446266863907106818949892207408837329744532923380588057985775049727099479250539492379477785251426982607170945115763346727904107156072197689459855323331282085803398439490222579666991239794657326396041911139493406774379270969350970195319528854430060168081348820838848646149356360122451524804453883277961946831140994567312483694059138876890231639761436644135073465043350717684165601293586165942065966985889938329412721161072859552629445964574263101859538059010830279423778362490268660557831244726417542369572503637736611543031474452921585687837065365902328504337951273056712078657052194541347595529682068085294700947829388231032687276612250775312284170212275736752907484028430927219155606863165699081598090703751151838214165650454141975370589814992899766745122676810740576603726008101361234018504516315919525906880635086193242746494268580330792403488100121014658600783818544988602686400764503611762217476727385789850684781406060200031727986569719509686967870838129738920710370924229058713855857684447407643977362633130387687473153995526645331564067424750367552442730062624785991637487680932509022604788972976409377700764505227757732393329414470672475144383295431321709023005900426549509958816630044626887626645476468874642542691373768632806434009635020642971340408249795396457470757634060267915135912517551365748227623837157662372908432626402264870546875755813780733682740681291639352911230227732414058792081880913959900057176558341803252889533411725021906865099931903476822739049535195957296724414624766988268946879356649096775286545377326255128799330107916997777808074228726292270536373597114745474643635554063063323399023545568936132435729675587451085131202495317591441268431098681549562833756009501807879813268854908013651416815794174136948976088973026213584652967500562972372226636837785846445131439539943341300712124382755311890115016668690994101004337247419360664266998789758181391570067462310686058886847961220226073782367269274666320741955567078523992605756296242907029526643464055583244564383008830976629442995543759452135291809089774062610371581035192250389363846007997573081249263093317736014267293647742034174686315193124007595266036349066357180977542399184749645983312254785789243492290847268164208012802661220441618105455750942309079553650960791768243283538588373154447538718621758777910861625759015154623565854098134244143897007410640181644151780809848420424105448682404272058882321370440850832512867759214637422191389864464176594574831511203936943317901328556785433901367651875576065793362641146983433873463299657357939588402442049498888799311613157161493749643376052922980375336040878779447031261010001336099195841261323742248180647024686788544420920496111942708157469169420138828360748215965679456537840642172022202174938518820937581712987177514088801261530534342177020947368291541725463896113305189531059075673190127010435513534870336029298678098920001746053313431252811509202241728812349106522826129458446815743364715285942244035822178158475923412860964340025729160653356019786742274921456370210540633093422129138805271565221920926633956730980061609115415100281463461847700779781512170910773938039269067754648604328017358046178369764935426099049404630046776967934732027796371427473280829936276597764940961406008667937922927063388451077512289822875240004800246962024068249198665850549180730390961581306666722723599099682787572171992348564092678675667144072198741456641035559935493345744878795797645603403672909691232896349603220933323991615203549392002007834782907593061192937067250720103078249700364050411374857066696156668017599819753286949001034387183029422727403264791568053949016535434032328624065110439372097223428622128906159401704941268694054855372572482343546873803189525610442443363341666428704906203411987055487010938383041248991032066731682010294252669201147387183394626463638196862918086610034110550543740701643784952924496463147661588091558562468566470292894624852639074408100056066334307439397032154852240157025796282123935694011747097129579404899246443457297316008462093707930199292998032592254102033593052319120278964680538520983391884730651091179795860466012696014439954150739299301233718042095628450505433595123383060231904799623943759030782790515787900088703026966090045798268956486774065397260456263669715367291049095309312951194287887122214059092481581835075921650349621847023530282347970287279804139542119881327100639754906552282481008570390423068331365865317928721543372439378678584418531078853600364882501997105455925374656662251431572669947850854224798251444861125090035822726184911920379649883419623771960463746900977358796399813046831340164225054992117808205824608155878738408793813745528810822358410912477603468391913077323599746748757415301378495353420525976449574527889888856785827093299335992196686002745528709588652898947807279959265111663634213229012154166218059615924660421122680993515657535849368542074301744301016377145106058091598915624183050452093156624700695059956415937281603369668223965539516005039136014316651771188374819962345205932731511507617238366018539867088931423482482097985784550702694527066575893694945633778384874999423752327240180471061765555718211900212601966681053089113810454640058788515230745365261475099120280862372207416476657624702674710517586240007299878807290460749577830915801181644021891281344345125323166388035931875438048443654545215006784783751234049123793105612183479954375711966671068904120910774852753446026381794548337326859613222629166879811474580039914961742917490607664331052131109874558579305614877935903730192673155222809760209510276462154757523032246114327519091489209654825989210251334493831026278066938735147064454695110195407593453237812856922046950847086422067545977893382154509819892580096669178878504026616753743937115087733854347401902630500265387087224690081047723320772224402844687715613178000382294331231314818340582460068116373562276733432467848266257329168347055147955547041102678871981345141613788140435189656017021676027484109579660130930488362391256807114571725848604777577461625785698842895659082312337051350809381049873094944493601985696246990527429489379941042237072637991331923224537509843559658390939519569842271728473281579049604105513427682918441604473020369424437073850024921542888794312465905769368969140082408629420369338663459255492984043780189043906749232610150581308324902629994559944958974390478518971149125085119467281271842890631833128380581411140103092074830201914870021313964877246775471278736009985806911052825706892635988952904321645758658776844231337434236658113288317784036874856068364901978235826177048544838842635614986589443056765672493256277972138292548394872249084907077134990880620302142798572305074720872093536539504872546039800182908147682877766275078966861585926879316517825145027718211079203029904672051748382009737504078844303692090550006059250533068953850304556776149189430896099153909517927323413206552315987443025089139580866539766042525459692339332254959646613275496805074285129526705107462543932724004266915060108743654204480686002423682111550728874697956110448658365547576608380666205373220033250685548249429783162190584861571558611247961870788282184293035244276175114273580632989310132721767405848634852925755114586725620464201620205799220405470721061439483707014640782717155175441021923271126321176796502571807038830534389350215423956094676234998618528366802171089470073672962437870895024012133280476146259248840530000614128562123227826711297662090790973470330630975518814933051164707463132197460943900268082517129457424601322212917659750908398153476610677652129930230764422625676837977247562356030352925546714397111069698980977948838627074563652250290992313230800590580092170072873472873547619821487486898402506469038540228642822821341514296422369785509409467678023652465562915159942375860196015698724494508335840554170230158798468693070285699303190087828758550470964752815755567953943707713377743702349952643658829400822816251885366846402052709566817330478085197961128466038500867205987544881997086483378673334492097322930164772228892868901385314909847908053316931556483138032110325425370880957807733329383173819258501539744685589586838250588123383261862503884797166539880215282407162153162187443589442296423354501536608358336943838906060796078929242478248032726653152694987237924821301842815309451436786552283467300687139367707711450695115635713107851927387288000957269794897511756908584640609816332084846902095540453474484716522929472600131726299476127430680101746424170668414944849987669583677848267447027765262186313714928311135484651806889431828300531979299812450384915949547847993813801935047291890329269343626389143452455887452077285631086926883720844670931819660565126352808730554336470523035600246221270968526208104702848467469575546438833075140923870757326481003805690200632018819425157213706090404793385093086959180925432869199522471317692579381655558684148184146482476227021910815731914368613582538331029642157865426469654041011897228379714108211349245992242820061493108009491080897750008492419081201146046947775777498314185321482138494641293346655294261217713220010014203679836787131765463750300704585648913745104721641963421610228735170551133221222963543434050332074512119234863317625977534105059542446409362619567839995670313829332685874486893873885032638096959380139287562645059502922720188683189476061944134099860604321966885795923829091036641393008193849440074874494600587781347914934416111235233431113722499371447925807804458266334649816152613385311891274339813447293887184000534685818446932874655965560367258171078979623214855927034446453634175457814096396102809913843535863473858383794871456934692050701611288256085801253060209568977697369181442130258892133798746526595988209696525043753325744480408959677716338705663929655031662423860459996785938060029440370316087301469351545263378572369314741392536190809169019025046543189077899249741014260758659064253113373115052070325742537344925090924062499279821294184314340637801762589659178301789974255589319929682609272120393550555351136591888797064691722852544733776229289793660625413742434161742239210488995251261616497353638316819049455819944326149799977068248741382410303516751478660142727881577519506202692470289610487983523125199526828705083578000655271195417024974226656284710302273569668256491891383201065449185446431074315939719922759061636729188382823979822434524141582517716393237136384332926458981103706407669679464713317676966414301927060498777783703386650876179173978681924478935703625517506628603831275581345131756472927197952964686422518162050454774561288413304167430454342464860660027172846829019294340184864586705839867571389047361916258767798608837779159235377253674463545277898549254571950276309464645875665037336950198607204962583195321030462247494978198818837137673368078066948387646841841752072536745596086529996803334691850516085520460488885658032756728719926352308102225170593296105536425407129247944436445022917366587795335833201206219119022083996285284210179630992106755320514062772012763888877989274265052219708298648012533502173785149586009893647825012562756941250753334690114067132644635314549143410170962619989815661211316214312898734310357777416037949597499810574564027697251439423760893507686663445451157649363925344158428789438107399829446733823986825276656138022981150045593780695677373521744476229615395723969869006753649644447809411302987912212532964944832710674120097091836320245431549281461460308086184985219444524601972178317831014656749543184287025281975690961009310438740269595744493968242367342617202398333444559210986583321358112488237775665565686236069551754870434487556015143347266735831384437797813551824908037531506041403713356177844459943072879918282636095453822171974777800842726149022936558963447691543001822468708197519534996563339480962123637044297533613886698365826053074882738752795836932315613834195285748330558879916310057146335390775368792240745748612143315640879788623887267212659388858974369176483987960678915479166069398722230787866870699086531155686955502986065009603861222749963332824412415264246413322962626622277225893629434230306048985810090217990846480217538227444114406095270524823723483800361721445509726711178818860590412364485330809215540016074845223300181904371944347449139285521628518752998187874555827162947206336070902843588273817463475324128278496972430472073781151577642856155366939681851243070585666063036646352460508454704832950700028016969880271112164559016864619531540440405541669146491862994334482315042389460186511338849137172612081911836513145819852248139213946723708962911464536412641697615872537542186732132108348289875667769333378242695576015067602923530449870848512694680720907815399443805477419987594292270258631773512865589938370923644729997602219784441713498911200813601038217541844368471234482590801688677690445631524029893238410578786643849110674879505796194474212810309964087711086242130365283093172105714428014159171994891304375266900568148108619701427328622598572561290639890251258260001438502808959038781825334389965727078843599356602435121977381477334794124209107243505345607103738888175923027788568891612998310763387648296634122067206356239880693668310463024821127278245865241482079344159043861554752793102884600090440279240462682026821949868291158944384937959740502807627399310585563502990647003006850026127907092738414812662240002394140461984466240219747343592017551198170435950789536686450555969062379235548621546401033807906170809665654485402403235843449735029135666738694217296739569985344022406073672389012748925296689205273978958155110142860498475785170263251164027433763015209869743931768604655968103357922828222696003609832279530017447590338979535542479684905617778159022717656069208740362053397032834576345975808258959579938163676251531832478385334630593067052594215257263187323213856975440248128976303323517784462642464852522331283256556333095391836523341408360628145443228493757386517823127220641883428634791043859137835616348581533042199399685930356728389766542176267189641710167095727272561223939794474308051321136828421186569639301986295406814380689453425151803865904394745815103955150568732668348345911629629656433147709881892800755966833217657008153247166910532049434583621917680725986667284130666486191618585794684649400186085108031587346251570730525582648446560878772070384239385439562664719023558952681015108509525728764503104072963216230831681348962160996821398970627506201162949509815907312717147028953865359781734760016331966950626781094592863150211490439796050293866995867684077511268267433395128103546626655934079285854420135987961290461239126013707282339132457183877512237831825969678302256115658589980918876430172187649680231974861910910523149637613206672795116927875450851614730962139894745400134426692168806504282133213321095089088734341973344716258816966532909681187886954477142494906655803463851446866026955036177322665379247910439984523749712621942142297115006523106028024225351557599719127495263236013408866494905880782305572727155886363514495724521625346499416539507673835913875327150510574083205090608924196743710783075395356708514577629071281065217385400871547326363141553474377344365750452774659539943300353051124717199281522666096919544933870770420983678245218522222259422892548703644264596233873974990801788178663680600388814128045848747294443624968771229645335685539047060811301383825656249991684848120494091558557051836211457465165842761377695572046479567195127536154432601334153354858829350502190102162157060352724132713368370497364374254455157646312362766116891960811822172613035103946890270704707655642992688422977582680061242022546351681566958670937485804886676978579469000257756826124008719617102582164109563741210805493092883388884215834415679490804615940801054104034684309114829710045476273832661236769175333965299687988373870574317794019434993388255482215395826266735117012409487736925007879628357000584495657851411835729863361105274674292597139941812465389217787327776679933838437246728322854714323510871368010402434842625870698037351734525028099927262013199133792458484110218706441757019517657398163372341792382068086034191850252873337099381062329717083095510390363896061217350969540368265908637220724092012928275707311423232565265369438908873466546519300944690743691944891491565461100299236370115806561677474869501459454543337442126519912753210565981470511777493133437852295463315368622002735517847079334734209321119347760156552209080541506074721815270831537540120264596805644108709026999835791486746000490132676181951961782758550711349897407179929359483531035669387256442064932122087404981154345228877656160898298715319558521138965681074064019723995370067726970990158983318479534643579136860615930634918329320481767208749654135064199993540413238679542427471753822417850058545865957451838449506832548517585506766360078290231824846067191627861572840747981620014278270811797282304391238392536115136179359326791748443338954883509547560559809094633413017424965581297905041997858454345980098205710141649252340238266523100801290549503289572527853643006839090676845830953372472335331911682259195376195008084291560597632905084375314633002495969542500665953867541214494654904138998024637555095469397262553663293845574555993515130176049324765525156980997273447918201224829268675526267452508274260294728620987976651372840201787404599510970501515732043586093139683167377097696345135867075632520420690757398818257929500755941930080469211346311582426749942292350589167463052716957081202244533920014370350642315814260996978384308543687335912252979419485332233344147467880762157158660966423215142507559798169390987689547473528901059104747620267979747785037964183448938985403036785026321177008793771725293838071697166115924199049023714636567903238904808609173602259573855616679452276857539791128891302383271805673166896446355673520787812607847120524810614657991209206880783190412749882413452084728532991527605187677922079560459343201351254578076991835220969051752286949617199646164836751839393835545902883341621629278230429612250550767710964003257950397544317777015139995573135989591493115087675975113230782597590042890905850684732011157463290636796802324784466163796324416267894283914769724471004019960628955931707384301732402525738783474151710847201789999707662890276921798809891879579838151077950168225203296576819781069361657535913926746141883937659944248432354300462458307171622808594813141734805633887947437758960851163257677809046686600588786323437211283423651183695544486521540425464195516858391839498553948272722645154026660427460487636650948397171150349793150771903600194974412101200153307222482445657214375017599637114101675710931910475859526090174883319291109661255491154816400111182976043243260276230981059784253558500932451069066481027164490484487474448290363877862346817076803423953080772872527499239984458008267878189308285819334043410310143851242024346009830246809168079259972405769021128751264778737513130448378968563501924920941297209359763442402166179983721505301810736202525249064878078686520325513833204135577291205928510677200456485713526153795157463444998690519160576789653394752078861382096799202870724694649236938807098243311387962395792514385627885678728042076818175581636234174447066139887003906583085213109978683463054171890753885486808029298736822459111205024712081449524393170153886493522613681822089044948014382686100260711822797098200153685074802739605216175558006390162529777374965227328515574741748375080812986633832892060226619906824847351071953771095696249269294279438429793972596349510386586286107853938838840706289632251293083007784179371818386523566111191501750060887475257639510780083315974061786643384943727291985498549562555738102619203717391426253357056641164069157392959179076789803132116998027411819239621252993709756809250528974086507314933191343855109198520308975739590459473482789211788581551274423647562137273357425949159235476451811018379346742806460144963256418136224786533315228782197698267601610567144062793028240755931855864303767981586536208679249876268267777058673791100021171385685991371315237919764145318948893050542153188572766460955259777365756463315328184328196976424292093602344115779697156997075682798809971313159896025125699256042251443412519096645681293572655423872519151648583898168692339278364415253845259214900497770318308206977513289527163911949369080510552836890624526436903279316425488273269138624177064621281465665277871534802530978219975315336080599931860129656117113711442293778521177522873752339902320240046649784795863876633880648072987492082584513124435579742988811132178961535643280411548151272283403145707389510866899448258099250398322259715486373926427245021547530485277459271026813216154384289179164373332029224146048273025790049245908218511856329894206932100281587092722872482086101273080776387333205586146442160164544662383718447532684338458775198342801524183999857624886944546800275509005217155567302921272110991357500145048733714361537599759677276345860877447832360344216458045153235568627824945231211521658982553133442749114643774210643300983284685571527044466127035098353001473712552612680352103127593403198143974418226308723028820570155255924331426844390154119527641973947869261623979681690955132083263812621538282508689432645762439007865897450242766363226306377452302992310762086271770669175000553749668598140122730738075561611987901156845461930182597293567815332260003953824876693609291017057704435558583421723393360553595102549231778974394380878136060759860449025521902018379196719950187104620215688749184429735303501288166645129064282637299829408095823310010341866869112223087259592008300149068689450449200985847078064716590398739564140440365825568817720509587404384717156968865467908254050693067991501491175875293035294115666214081766667780957445695728730376643546826940829956594689351612968714138594534996439209373267976869492379184936803153036568064706278339992700317719437461302144717042398005310437137759193163749549755653558195125369462630181577438668913714824037026602590291602738920787034613013143380824057293473625601597368042219812419689225518052180171849985655843793569885163328040227305269688508542720896840401087813014318512059574977374714084580951024733755914884104997918273449215747621686932770004819511567745748504796116375449591458686164441623552201791689776081424082794128589302678611813115732404237747797886316166791620298234037680505303744160510886005462831379713207391284377806394351864812297254136150896422252516814676547928703108724101444085869769442973422057319759882468751370265305546632299586165154598206002618213007747012834594107693765860277097604083264942659677760031325544333184168269759268446278717825403914250297682371834305905050845548324793174609890586317686892167212444163931930453885974969406882677265690513843835113715647649200742659186435535440042988211040681408125622172853442691246670212525352379103769832136585951495897130068162956814933588604146740831441386953572740791114568386113734422861711345213260284140583063504354048362816068264406946207950225368011505374680105087275835097544363818333556287611460884075554374744675963364813760223220284389968416831467100231671500383600832339182519943664611037898423022061746589809125260748594356555898813125517778047264565324259255628016659925156439676163368638644523688851000455376202460561487286497573855078171029671004921300693359389252105825437495365237345395092625362892445212668599179214604421713994698522214999018783146675750302551848492903138871015240123204048380566168212396154552451390033633446591104090109739159896988200105921917145142881807294332865640284024275368798802340982084865527446528550833148702776827569173592589644933389842860721883535358834212774404162659458369214894507285647528455268597793146834257780415124543709441138457147016377407527537582477176196548124534359955033569834360243326161245295058779466654955475657539371366951241860328835388628781079949797558709752271057220064075548908763776988627913242347899605668931399047625048145631702672232193629559991337065137398616869840832489772401022746862667553421783533531574730016509353097742847359271619910942324435037052400367427542732801448133547496246016569151948880815501710313691743149705268722648690001236449014113537953845876699901466296440511704457824705509483399212557919629897347182652406349647566555334292348604026663434421286413395502153054862471102213753257572030773384473270038297418390700617577482921147237463676774733935331093547675776627294695259564806430570463829702217926052026903599030619347194551791326123498410913010981020461360111757453102194595394981219732796170374284740166162704462169090957706711685293898553929910466244273686634346311845643411031318551247903022208122344313114268868447955339736616153994853801210937327345921922524568586154057620284308280649120323174569424438604069423657148582689842638674429073728998162994419006031845284369244465976056999928747498360285962882705969528057695833309639685563868887534629134348378021965354374157679821652243786887123310445645865716599526086843759575773620734533312485880930673975082976254422289107547112182787980008677438012368598475277480312108083851681335019655341692846082343939894021246738715486094009962687816810770517118445929319865943737749455249514012847427104431394538332014203096750732774237550850804370937759958266529567043920832175990956292503906337872696020319018308206593654735894727261982216138592893534731826395448336666565195636508853543461058673566634296323589114378655510783873903455409116562728591146471949577158029728265866336473250765905126093403252370277972218989101561541502028429001436332410938658593216054469498251901096997486065933551951837843655139214404049352246439101864054279922153136452095316531338205024999750712885647066739092055140568631788891339381223024158423236694149116554861151560451761607254195759974777667848286808643184288217637618886473138631370842544954346673945485071212974770088321959927211877927495607378732455784009335230028301686309471062165979275453618181817206784688712468423354603021738515270990471866185648766127604033819168924387107169175832167694433468474972310360113934726200475282189223335256513049517762734036286908429235462018891769889897342106413165790956827154263563196064932353534340588401021925646076271944538746851042598868577817778955686582653610812430820471253516600592979428852433497373552283199794827619041305326731894256767780473573998940824280237646620494247857339015478432144893371924162155048788282539981483836602859667824046961521874669725944123462354637257655375070593753894595143466631159090368786236518420572733036928929116617371222602532372178494983727101373463255290047071805961370331946055875348813555580234603713333623907099102943847917408095882851224483601237601875705198590578266048221539356296391702026978218612190476345703621758763328602666152648704729542028606740928838014770832319279520273210125361000902796856009694936455965942763002471704737700196555666998147198572264697289024773579017824103897542733397528104726267781514266376208507891568659779151937575375080181714363317463948513306281462177100362934653657358472825995928518235862207012354290143347715077369808428008802242348424025942186326329915677351022847293058740578804677865321932395152793070057299982759400844032916006725108273591388436201138679685343192594804240987055772419261177942798475442953018255693327475009409649137541480928827940621174210868710565686556375757231930556666042876011324606248491487758281510151856787069446995917479488104007104080034995951796789429500204680635899327345257623867290599715288247678842678358682922114660964348517591247163023035597771764980049507948783773773867572806260512100464084492588809865055194537264647053229238851459896083127473827985854122747246859458186694601060700853455687843533371973080457408826357372641447825554482491460137731962299425500649130002699403482408669324742185848620150254817104810606814338898023719190683390526568105592013412205080544325844206421101498687101979159713383758153847076479423513331643692073674901494870572258955687173850642618602528757023776914233311659289558326774767910501242338929819446106503256164854476913608594679163164287394939506850081025754173012741689347268620910840159261207760270731165217325259052867459664108107525147582827638532319002581136610933086462624747952817805177186463338762631608092633460118606941961134049755742251805124557264393875484431258730138986345285475058153433651429241647044315194423654045107102189337261084779113523756880695902809350828768415434913028974687988199063681327170126828190009676282812695149162095337892592569619834181655554288793004686890880350908815535881697301328595581106840176709093566621258010181095795909362476412594524647442056530777669436610949396781410272091139304963548335908936406478270457532741113278110003808162633327960152004592344340471337667785788000207033570185572263827168172842391984810465637122423300038329125369430425022285396998234422114673356214993370898363410996082467143814729028247030785295333272788369666170187472684356938201098804650017349109333914067636407451646567068981235198554179470852214563418173560113734776992705441300273914624968583045200562546586759824832197310102658258185364804244707884679816945036451547452241225555679612840942525342865657082921089178798063007929752645498195360388277794415957956234577198785252578891090040173346055015243962726279716424635208453252952112529874004013008306601699240742199887415045219806344333231470091664081427774033417308141752428874666186443810948804889050252922504012884788671851278446036544897421047128070815181355657090169792255221290006452558859001106683641378207210762561296470328490733813698390886571002286096858559679098069979155098667818801866879858462825956263666446674126798739397740511813181386132920985771372502055866785895074668701247982003762674268386788856945467038075205444767854513955869281872766968047424301219336203396229770797056003193790890594277170340526157956989217591890977984115057200348158762153644816851484020753676147043120100517921177918451606760808539791466658125386828569236456549059766850746470412195307136735796088435449578937679420490952383050572537708573476936113424669385922265071878920969764043476847465501709763946009719933355368189508842054354039600077412962879364225117962192114984943698255500884062851841724120462322214437315509234208990954429219472694906106572995309503018651532515328126801127164433640513623853805748155364515937024219780507530291013567863903592806494779378962036087082854075446486701562735288670228423752216938524396490482860363693922598864204439282843583185044828596249528364925431230097991375019065498108066571828505913488110535218579666732979600606688978251002330678756053665693779026941992642739244426059685217805569306058119799851294188612302049878824787853804979170108715980631318113045632770218521211725054703551454212271723052224976128661887164121433695077366756603494583018591598218427418204309541786372536388065760915482274351007300912706151976996162589490666212391506085746108613080970655315473770696781681585109130659509551027143522335926123408463644205147237496025229267121171839303187911742330497308663372831032466429107822423408132368624289900271397075130309109178496338043082482994991374081900671493285618382387608190683811126714090399198495400714407007372492782271682341655366982628808170078225429049476631007731554802085364695323687566670180347693424465280895031417015689314024994156023178181881082865529102226816953594584569903465822513871855493143418752303543728156929420628073993658043596984095820485525433027805033595109853354111152293740081634728389610443159375266989280411169980531077649941290674521064068271528252129710141688886792653112666019205404657650221522432558292006898603528467314345909371586536976586472280052752483580380459242795382459466716660949580763593322427757344272975217436839920305178643399153295738104232972433631626949954918483600311067208508940213530098574167109741857821626524803765421295244954085270949731221935767094927310065671096433479672952818354154647462281362108651724989149581237768466351072991788422784911901068030127088994380477150206476586980143796647345368903159521333226774245941337886556822359958593770877110779024102745288618127605408280177199222096855211950302178473647947653362985140157088087899398969059243322975570275239051069242069637665174277249699723965557775272027508333440470632416989635846567396484081273617756718986793209339728420145638300052335352315744863301060171311965253140187831404099607881002670627309270436775660263802912024968931466525785431502236964903330324033287416456968625274856255365314895524342249009565650761189247770176637289536837848199208210552800551974906105768931292631263088205453497417545331331770529969638424494647669096614038588576678113049105766385159984208507526413269507346356863777937524434071029612268937144743491053699242052488751833503602488237889765938900622088782503505339053041076727306350472976854570691768750507660823205447960347097056847395003345893514695185918202439885321305867414351172656873483271431543530756998566581923945780806047590458730761853734810528100262388006942602550538139858768994182640566396223580158542932843446552002391980399208140932217453519131628677267898331439296487196613112552308431406511974508848137266854220015090789381271783637410612837763535765637733289083080148554704364942072815892080148400423926971686939372027252037940636287182815048473177512627472810374316047497175331131983478403296509309409017385836655033594995921699312343913246421677634585958195698900535133368464198418738776567396661851091989058583453769365860649996581919202781691533800737375829983902453415638980903554178047057247465349465222611588900732163115513157932398582816179352805711258913997716969340542617554147741293772078672626670109538536248265641968145131773914274863504620226998344345789031048041895984645012825508425252462190555170834874328546787533492406203181654880985075767665951129849688992140819538509267992934073786695939233118583551727249750619298641718749400129863712438332276929329656523477603646913832261931244114208472539190544399349091015447243364855581054411399535701023156542073189668442251829336459719532676678936363841907313133453483705999154713024360399843530059370717683819742362483227217716370182750662020119540306170294780557055920398697326521517688465750270449962286344074827039743205834149401166266657563069119193449628161225451663866564516670092571144319352057863463952645399062233758835815985572621736114716862644346732572685873628668865586190907812083543525032955604037344580845608827393537559130787545944518322299137403874874834928338625584409530140882698120024133956660470218468741098559600788975540393045465209868137730257224985018232637693373274888511551071313127822178544908699345038727040778587228354702366926723890730165406776273752302773726129756342003309850791408232609302515836597934728607508633758652516299991096645259200450667016373410157517907369606086221633611228476373840679574247333203314986177380214740203836699037424391650279301606809764559668618198763785117923541481809793818331254277630434905796132509155857575626175303254707340828574486561044672830988920443274163021326401780166864049420843958624787872226966746037117235221413759562217335074957154162229714377129606511340010246354901411491319808690377894510173417933207489124188880748114380677532175756403555240571929286742521495774477566113805089784680309309166309352397395255625532964571249095286741600957985264680940259391885866568552572233716052853776886810414534152668345217110473076498006243414767359080784947318824672546362278351849488465121393996943119155523696863886606987955421177117891280191614129596108685220843230806074868027375426845316316581132981559446611683892546366730716330168630694867366732277336719327709748884387822162346546165961644009307881398098852343779266407128261452197709789187149100206569196956451252471190250351351698987991095326133016644534292239415969454660440923365537317325720198227153878240582500959291330879662899659535736586385111442915968875073843480346250670079395717254865976604234746678046981780352590651962419461591927084614697934669245586266448370857778032583508380768706609138004501089007135959843514309130908251823157295506206137810334842350942507901691865567277747068976976764329575878189911118350023919596738991589059688424677936046408771230891134145796466103774473487130142809943085929602233192148476343102978128091323486822427098257098520636984850652946611458952838585000413713554869928284504150271057337353250512143094725846161661130576792601239933863794827931136859277654072493564841570081023404028716911465268438324060257597416345568542830641217153992003947650775195287229440384207119044123995709804128203079509489387587610559134260895389786447545783667107198453388492836759360648672323906114275809554675104365351188831485363530729472556524656187073046745894764202363312463040046304232187984913626600708354886996824534088025675957678960548635419760292026321522175566262444999122657402711211021416422368656874027514180265703134924436575704416490973629362847112750064898047053182808966716365386640586031281904155022623292594845268842048997468762965019038483249222426894983486043380045528511585844412573660824566546843723226684906803164269583292568229492142484714551088737769852974972372866007882133479822109196614274673347554117497003573855884752752014011260562924956812541717570586577528238463792710990603865803897512110379780012663758977047870364178398606817578254486282579762960887434479599531440030362931163850242142228463045330464505675917917858248879435778432408345527418482203125237137031209504624071857740724430220114287656971282464940585284344756777631447214428706638043382623245040740247140212815287547537098899891492310001139300915701522632004398397330435402525413318038256785940671388641237380738725673496735192772125540877559290817873666940883366628999873082678712507715574529775217185717555442004508898568683239278742025273716999285188369722338507528075003950572124004428009391708753234923804232014911015703433529775222112104904881927577919967697866978047242513748081503234389409676728075385411652811119921713092089179497568453047672202042798755550720951716514713927676116711093460712848411080531295859453223681589763279682145569454273875775312668497589874285260724899680290470426187410849563025439099972402782977844146369360192777120241080278521580153217132784462064331327788952302672064996355937061748491993796902299448593777562163592585177220037535292108186758699457263730900723862681018255683072883206450951819185019233892507415658070343493578769278544947083288236692274669493485754725609190107660462427029358180623559323700928381899465375149629308782279908035343108192373925679938969830403553544796593958226299672014695716248799449999178492217270003549921212351678481689239433826884009279749917673280826671865073535426765733404428874824500483056210134181860110722571868450387630631528031217736052347772678786790816657510291076941498423215865852985193829179415246147695528193133685231651592588596845837505165217514075467006891185080433249499949812764783354851234087298187937498329213838132719971495767888275299136738919989804620553806533474045436185574268479463447728957463935349345294424481058102771191408040429350454995969790389268016048168176371937407035011496760401754717191083771930205955937913954793324968046805174851245110287779484103323703746451429492774581376880030252242631476261601904752805683960395903251678254793726349950434980489081996055996642098897743133975539045379238086110378708226585265236211270073021310385888961112121377153668361748010457018498363332138571992744677436130913133823692479482423516650402112774638461712511132495112541288259488517302953121197252189008545443335201345753380972198327796541680412996831529064377102975616441150750470884814979541799337140950583183422328604105073079162261448587225459396711889523284646127634247377687672280176047088547120739647667810051066014556752697636894845677529636897687900047553881712842778474189297194212368994212919934670521788742418503314569074283124049906115912901808594702482188690033023295868575235912548159780823956927497904449305070277261939306616656563191461136933366922041945305579522472414339185300033333853663317124493361249239994575482789232451312606616508270389318450534120223293928990137775386229758308824736048287188525511185543673914974823390143679006174468771674703407375231082613055996386109436930113097350139260725565885482984692965806529836710829178699850540592162677333347527776640177660073996266060945278513702409887083650681563685364453528861792470177227332365400412074833292770665921936101042804835969375253884840419140864498848924815153696454425876316109849417728943146070174517524449461732102816320860515028033126263497801625563886069634043846235460398136513466331320356563356197885899093547482945520444021304960315500096237346614682724747146178331554135741385291422501085287566324054182895057646193834556287269885625568044164496238845567633746915242858578824068760018019707817971239277442681320072477188306033718200298711030280405550061324390053744416960214769823555596587922693977431880791582348962316682578772789702623095173915661908704597563736301702384625516894513755159795040051322045545193419501708749171276543566416713936552524501433622584979820545612225863281755914295380793349477237643806340544560461509842696102569852192091950343921800726520096804417425625217018183856264577635262495389248878908753327400986099534773688509224407653219052580616826147134079165108744853613835258220976952795102723353998712365027851753503901248825452891173764044198713172610613062608529049434516893492365986799166819240732243489299391887594698441045219631322492541049418160958552181302959929900630105332267013511489118680797957479372394859918733664943923772601551480684242055347163884720208808968333700698414567538276626431767829527682865748490433946637569987721461277204670107950023850535353725309214113584963704855582074152089095286108540189141405378836399378628184763298064033693386171113388375258227924035746025940972373995412899493611159271314486688916830785295080934898540100481949694319073885994955174451288283016921245521714673549087970415220617156681529432460765032891364589182864428151505120403678605052008433410510772825963627765307547859431191741505047777146368157304597159882239587817205172814008627876948613994960314879792837531343972511224988282817466610023185661342885501179800181790911684075945196481639485164722214867221830768038874617644710759706754133746115162947892895253386253837796989201520441613680722955613940030591536181519958024613173206201543861404217855447120041538707247668223703710781741373861281632054818555754542557053872089120847307256007312600843187288112065032335223362937253470292969631333920415073635529782765795259602062931891616105925075718961106731161990520389910080006214752135230310280625786601955076753265412395918822802935400635600597746318347421954410706501914251413044421076619370147688531584885795000507340496342159445528789328367482034474499271580782122796433640786981782303812014836465700435330034753164676941881360925950234661776695564852366565893042086272928977140888778285169039927837182510858203779095209722134924335962895708952559127515042878010321257396247205266468041733293277659403540388346989462633777797877217915957817263019171723706528236358499044521048141420773003134444434001160740133989959946512425161790015517600883890166790249186941026043309551661379741491235160576160813853484622122477860665450048548898017824964974905529110062390479240517532060800601748218547487735517006222056467389175989142437416548180616478359165150296911446924115908240164616599000412303906080112690272493020180967447790917040110898892360464177908267414296697343499954527628318980902591853487210151402639689325374421137066200140930047186390330634391595357563444194105879748328701615344926771642520799176692995737436868658154728456892444995781994125409182696663917281425420603660839965258403403352643796177584827414315851397004859244875418780132250936425164532066247146614684822294478603989327828052436787781176478288948925543774731964666737973707101378753462670488067194307891969532101217443397977281635313578496787794694747147756077469903422630818232812372315421470482968923799636300744208540485179915582157070444926186823491507053488913455073884165289481826668470124284647616898723482119958925462706808717050134002948093273673191247446477389539797192801271898674865631545202889362413490232577625355428566342132106750016734996740587692797949784511787000221304708059379721140448428208177019047939957046713919384864012889916308691816105775049900119485812727355118700858967337116753772267167403186265439526773487679941986488461016631845023782605545811326417358487462672003196089299373955899748631244550896748340376691520937026880331810641991874978578410096587759303714352244222913511066617656274839741055918461935803286184298913867810064461166561887600498790716857306404170320809960977514240919882808007333295299409715467097434687045585893075826994405853380095951339288450330348851322389465470736342581750089194587418159747081653899889372911446766662186631675810820393524122856805679041634249003781040330746006554582688062616215529941904603233288026833442045753129948246583145463199595298279440092971591288999905333673390793440296653533216755798181869367728012121733389021658084762630082467765684621846243909448479497247704315924899885263882141813347619074515071789488063916769544158306997578738808032027077764233774944035264987302639379496478604878198603499805804905137910974221580366125754998112087186529673720068400112067639168304245825010251650138357436416564830490310700143678512837159160542402329172785447859140391988767561383907347397862576046224370575751919297590753933184736568411894162647033151464820520349098345357956499800882253083880480384976833902436724545642737211443846991446827340314917911476459519903494739004467531327898679848511282076810003031117469739231909273434560024819036165842215308520130388442310905385729994308684042148046463697949882236035074281177380638976300064788385538687432236886699971492653490769967337366302805098715021781487765735401492796313237183751641433651093051128043917690150852800141160470611812578746622664797794018921261404475107770840712157835212025594941872569442396125129515714997605339923416889021990628035205011459994993316882024904976036201144684334145494161181760353691279216324749960445182069371558156921009711693825665045801629965162507476737060007906585504499457376283888428499075277107002821085736462056930738821444959189453585757684217452036565219585733959199216294066123498112567721020982591667408814054473485455441603914553723250160029471671101215208999754752576943905352391285364982434139030385341444308862689246168492157530394980239979681906275775416098683637523415489916713527485033779610908710390748537084420573958777270326244443246472505862765873552823959054326365680005295467511965782279444327669534307455768898919129665043053075240418092957651130060962871474096884857071728216607422102511240199927054027775760192924085805936865455453732720046401015750332621282513460619174618172743288895933577171372581574859168036136467887754529595708599345806946405144622113331943218414031660041374583335536824173792289994405936749360314258559901574354456177329290413292779564668813968790319413440315291424547842970345160709625788790525800711815476008197608914847005120362705109538830906740594029135538941039336395429957452948965087315186156996530109886793010763435368957060881406187171268447903466147128604243425407337849404824740753108635846652195636032287250328086909934408970110471372548278189723285074407676209748453714405995782398566923066225633808825160248201012310087480118171979421889622359757093485704574148010260641655464431918763116446747208788302512136721048769498232701199434283995072526739324096588606551714414199990020358217951785175462977859877478102220955639078298465969363515255354880485602830848490152519711633626404030697838683501736400813164425954335610771453196551176875985161394003633470569286634250809235712210858895675238040702087398541591212299654270912406405429069850498223490727419777307441886346847713223793353322635627508410518274936770509612721654458350820272471995132909997791722831740851834528430769417421680387885615984958138901529764902202286966688200059705662142563034524379547230137315791890647181444682370220085830303623888105190541431846441194766918120829306162703726945687575666172015036658867394332258022520673542362807836545996792957366859804983771125799168788937192949977693330036525864855725176832553776286073429482219364548425695954783585676213572614516102824306902900317840662860362825368778586085083073381566454611255159096477750939761967739153243003259598215634789894042183934981245540771679610410241007417436853518237544472173699148680683999061733018682943217629345712911391078813769607749953580751197561268605654377706124284361932919853295517506381208920565777349901280077606711372182273883911868094541924398198468180049783507572699477247250169235918366362050449739405118008680238262626345482357386300714404012135664784149968702724360099645417169703126612603633171156727523659876173147515773452607346953414514818398832327939127952749034941624559595839189210173358740015776294519824369680361285404927438355637249301528875028955638313416815950572310855863199196672309092892557031377405961213282272064041227646150577740143690218641520194747485803818101443764284001702963661335701272842464308031972084813708872028774008890520490245390424197643111989508156144746528842781974175910566244727327883008812364524745867108309406723373821830700108950561799598200354590957028834729374741316219466607524108005344313556960037851149374053871265067961762600526935231199434035315302815640069481270345201240429701172292896436232654367952382701079104422883244049031854556375707700471956296445495567736685325556543609381993960707262798378184192813305148187387732623313205211388351706977935036053956628930171152399474672626205881959643408722080541339687264207060292314103454729252686009516463779838223255535751649484512155507377789567006640584322508087238334308069647540956235814935129187881125434324847730891918978225967393226620171279069568838980269318896548381491338686111925241709743059923013768358735916120492722349715942227729447655780760581635239729185358587045678802444664514548098815153201097084679440776347094345553811297384655241154678392802738694830537390206348840895863054739068456321533087001970187700087587149727938967547804564557969301076373549831669103875764373219680716784381737792947660258346701006005092377329269516747445611431214941375976909729063212275603230205332529813294506209833958332843911531450376367054088024471305914143391714700915100693540424734903631625773646732265229471148585143337134405088511046458519026979542955493903376304395354993357096703082645198778160826350536111303695014960653667811617158439554382482434148714354180821508567506584170072687055841006105436731721683409916999193324546943231470309586562676766132193258183864129168182265738831303845566742510217618156229093678235589815107091266188833012610680050123352088222239523639071771627221665401130574137682386740584402255574714142205756359542547923488934215951495055932521642992271915829043637466573160117780100397397755673864857789845426138025246214822326738538797610779379339354826763321738743777289958860465128437946059289117115846893625085430201087630996411964063567946226472583491459772706378700230168027851803766773489598970202777560041004012016667160544885253725316383898079013435691179806798342324641393768758429277238982096781611311743970748488798950002411659218184699251971710641119561831873733049988229104261916925150889139244943965526415252121996981868504005002549048199782237184232740353956699419680551713895725987091973281747258253597522204553758935631522579980001467400000258118767958045424638846812756694681044830740421644684360560473281228513922867693022987890883502081410610781310054880190729597511491287705343639445162616831223556682942573285139427233440079870735507125662646778476041915906104913824382534651350758861512907436210698698757750886721483699166367751584901934000524862190326012746652605890277985884666047189755227690215939833924639466229663691411429448567050585029336179414890808014243986216290409403556026101062864256148622838199760645322476954756779571394837577789646753396396393148962547265752192852405305644289184442443837840674079217448825325866181633571279797250453110822684629098684507313387904026596686871345696649795431730432085531403362082757934149814942759300812728154344541765130857435002991001554398968741328680960189402426010298556577318864569055966062487603889524893656841689262181405676247428122842749019056983789077783730824114640329490504261057215691226158676378318507313395070962456157787444502615598332836017364533876658397821747437763030795638994050492757580027625293023202230643710643897388006150457342885564174307013252966853314511129730585080407466741008019555290218182241294530463804582091985746321587138451964663924690004194871208355861560905141619814572693494806258802933954733269784905971526203089508785159959727941878226794005745994475078787187090150083776373962550905782175956707707766339869284125916449932207160181969868176389367433372852719722645469467396412505628433173675624124884802783634795301072252920827669615698205586245850876729769143003213633362726215770249866321216292924437838811209990855060809287658778531263680126793358287740859254994957184820061134883057600575207103302674219327473786196483738929522917929739291241219951653141731410580438809384335978770662839442040164355125674115330446732041717907767260101814933494635039699598766299175218517443712907067115150138823029176904260234706469449817913492508086123458019203050219123153346802551613151320937800130014288032699876714288653776426469020229501264506082427074125578228898532595198086066388938831666981984609096224597896395535838052349673885379935988203440236315990588745773911900757361951080144748968206552528194855837662197891535955046365102792231485502243823999747699898482784812629029136438407246855775022537200790934361549844315230518041273322373209979003987260698041508005742497147807763703920643834939195948198015204324610173390041672105859377630107269051054648319058189845816470602005462048223977208481529451374791383399987022448087204766875100124036528445378671255304826385069399094682802330367979561152051897367540222894154727932067307302667560643909983817149615815461373544212692008676024228462521795883114443447773630312650170946634325202295046252332268115665952326741167142148999822966095813310399483889537499229601957948422700648231939009223910177584719558038451134361230678712933192614329200341197154740270496494926839531162161444748686136685537220403554491461533992579591731496791756773527886436162292841474262137079902467645839432227010425947826884639404265958123870594884835412410816293497871217191124360966712248465102485342804934729518087003343358408541595671933848558262851867653218249215272658228932501402097344214489482585201105424369753179969869268619868624891940698132070394481400086827580608472386865830294800640794229160456328339511255565249070887345609590915696629419969870598928839485109726119503828440163189357092558557093368499936545891868816530971965204925930068285459641760493368775879577353531023659581071457701729460731554732867131209385811204454365341997424141332322407631764856381169455261401677965821573800372198412850250774038243335298980647015437708561063668617072483148217666860366336907217930868635218401204962249847044179115346593390113383201086514691009793903592618913547991466278179112541227818840411326702746363641298278295060172960365344862065204198888183036322889949036586308063615103910896031989085051738827252999647156479493466259112706099278180212729696740997056365563824709170317853378655898907184587731142368487204771792164565797974274944166591336901367754574012302827345719709970960117418357350805176218980699351744939398474579574503056211752107765415714328045802526968899941734958223051499806419515489529968483536452330104266416622567924872924780961651616827961869198904065517918919550458771535486448697258394490672552774164839735218635198345094597535282311937532356344510515774309605789032290372931261790423251063524775170102199588355823626567513991028403335079839312414839545315354413548371307878602286921738755973064988681078824807128933914862505345867985768888771008490426645744035404687521816353698576960957820133960761744888238095904636281839518976097066514294739401873951298144441889797925025823186683572534799781685257274188950513438014378297763524286137987488674762532528096186188242713398605598093557356767258306621135734964329935673138030798407754863090429241313609333421432409534886103746956982348456792731980200285464898199241173077430972387971201405448310840834424788311252516299763243890835392112927595857996075854972319723269122619101992732841742194429315082723287093048862030504196682594056381375054575819647881995255536537000031082161011301124369037427899372601204991434722615956144061904897158386910105833738410359364871053239404674418122567324230375859947863951063662706178711364494711806697523811037733006459282685440743665084652686319633408260757085335015634582696420286847918837778398962078793587738143948824246441864198828411458639554814391975525786335944247038641944108314659426828711056499097082080305683647109794614623813328882800724772433433368851911424785888724657871666390717009296665586368684148326991418711460764655570438836657127462114754495662502976743774940715185730453163025090213776884164504834389485589468321273664242831039992103595121514261237441913699764342805496472823640092237265415388764660865374645978748724648527241987243163337187088615435775707460647972985376774501242599667368208215041917488990945852060037392034977199569956207700614945118736804565330146431144500268431960195882415196225476183801082121502357318176902124580466384202276695046900609639705891816183076309236754753722540573060929865510691489372851379798832835408947787990098640032631005020328892124270990476657145930001836915337783604740367369700100141538432950552560211003289810067168162136479281399013622040941806465299226831677465032284024833557986229718350596935427670776257678708408299981371999008360575871148775354002212063660200123023308489026502306812005383136221680572499138031420933593973433272904722144502004972249713288765874288475515116158719538844243517071700751409702207187338683795633931627828875421807194856378624183863299188475671829521500087478866153950346713501083295249589543977934549649403703369037976655399782717499883582615319553038687403238269202258311494625858672854052005486058697624282269501882483168021959230304336720385504226516640877679073864785429099509639472728300079062046246360407877258621706475914397310293917044312361442778117206604614454312164849377447669867606715073570679039117002646301161038041111823443412020971394199461788529221831254150007119340262422174259524115109503213837023173414643934761907821185439808494279023519380507415531021945937451115551777785982259217086441581086706675767692388795507278840440370726094242261549894409423065792369968798792634704888727827338832006658543859788439104550111779308682427121371731014135931336959867741275976081696215167878271943816094693839184802751208349157748428150273676540122303591449403548225118791274017934330496630985837932823478469688098044633293609372411714232322510185626616700041385524787745009632713985716289957839148837789535007978572761244326546555642749840755083873792345738431718876646011946066421872369381069019043583770843954378686029278728499223857687383564495983828818929375522880178159904227955654271123527150658352871214718151050841419292537317530552942433109223835334796524792812591020307216849547243455585304748282860873111892975839625734724485686454706696195154769196959834894945939251520489306346295482014410265525624856944074417616387950589278370212431268408546174192402475289434174113895699980547450728630369309157916233179133402518233314794020464690585637121156020362486031815061282149067034812370539934117760360288420735062413615555168589963564212710619409037537792550802355252506762466576540032950386050777618260003173683664553991721892856899332976013247452703460561641311112403336020603158516477758899864426987461032170195994981233619143261841575853192913183456322453531649860490205202949529619423564423308907139405387712358802529788321197453372143155773258678179287393443091092620679600330862506874837550363772340304928855992940993434234793138468343748284134947637146600190577413094535075261200690957445629848759615804797675968587867031583698059140993128429575271617829203738687146899939385712528515649642246003956051322523811978269770250623016276175611270006495043277091067129601507765707499603839371291675170975886006471409262540798086860606037472147239281312080840921513785376276827567658160888597986663369468618173839913096480167887076484891869113631539328418504450371948520728550528830446786933376629713267094329479498290449724881530376473881610507897423185516588769656737283261197264588100014062461589296657619579048299705853420120919755744853787107384364917903991803243548731263797201928337543753083712517721107957902486071685359693183502841545738402293579251953782703841789095201106479557997457739835286586644789358264550584102715916514287985888587657934927213556410658489571312605424453216096007676316318468645277317888440464226004328434356581077594654121087924404282591454014498924378688566353195444412973594541698127845619032996470043971850285658440313765990155283937576396066580579945441400740326662559887453823514989326384076148122656918161889997223213079088950560684527167809167309448978287326283521942298578143944716197280489453429944478193522959018969883122231215525784018864616127274709394230770622711593547902496124162301616630726948276462430061614706546064306337947234721289931850607076224096865052937530335505652695442187817613818521783589591366422394671709765930790171241240877683254265516726089459044821134306199649121486680454467888108245234111733662886127676362249467805641143488912701735341400049990587836579031690719426629245645021952783191025796833182500869530990826611157730110214293894231956984079575568357885219074053501816596557058036642747758749042154543667957070527396197094908673176487468122848396810061984519342948847888023523983901865945194768020774396734793920058972974031687956436994235966389789735805017746057087712257076212756789176834560240373924663435345305920083131040910493320275497948855034387845335465015895372677187567125364997333412937657137893807877286465186946799334243973632552306539048669392795843728217310330497932221272638854849813104803227287664542154553444276078891909087153346945341705756485130425087922272023105662417644382349771052056543642444719973834197175961619796228577135093540845909055273648075537263799527183900412564078938344111273437852773235582064304392443081712877398818965212267643894855594632695856480333065756197293869739537663977671391672282053865180359966745176363640723821042889279445662522564189255732026574728035464781502206728304798019086801834214547136830121425211112158101783289261678747020849353312761976831383727676073676562118110319810543571306111963054679869817995801495877989243091704880318564282635838323630709294773813015283778887212628943965831281053756862815879064591940989426633211984314355701695874979541049419293632234191203587974666977115462186967834752953806189266427832610328323737055940833883002815299854145751100894328694370470540714274417803026219113075340470235086413560443875547299411560018733505369512200216647254795615188569143565968816291033674829408964936800270853777804838770644172086935569505942580696110616961133104141344397125813778199192001315680179884962042441026491074545127743174510633564552244952083010598998635878281978305730093924436647945796556647661702992175664263294181680028528349580505385216814179129574747807053744378520042868612823467540896389758479194768486508824265723394784555554344636987448620414891603919905750885011839196038108864471446013990834822433180677596439743219461414353614467467556888479406253356851715926592997656747654943598347284753841414387271348551212630460604595869738311964271381359613352042540932994932000622447478273485362445580907841609417912711202936693733915003042030437056513945110205855424221093742855102777523343376534186510443455582793735991379389185763470079506505492406003981809176110685125782063097650479195308044006451794679637703931897024358677771393656604296548882110504918430946633424611659093037941261427071991468569635124614015729624150357843914090677267362242116134982008432057869755460898464920181271056834940817733401117750865760995745473490694076210567042332778947288963957231096780194816438005745736607747663287441396843429617994565524279186667084353128331577359162607772213543698022811799232586814954108573195618229548587360472213328136580145628296553165277525783070628420665543513708040027182422132357312237235445453640348077313700383703662512892704761936407184264371107460356341728706703452701035552154911999506046085734231177034726387838309282913736239305921670983371263388387089336069564026377691348221671627385740155227214247455547089680183684714477183753504703599331929350479643664163071891027465141307427898450742089320811604585730469419546195275909986733089792256867240886112316575648986433717115782065402796330952258808782829957986579469611918329818603177273825541352945006088622793142074981574634557617804987105680287415670506230052523095401299234276798000276105861968554524209013935496404535928054896959281123227238081938096919179081296861067355895677072980141398654157335829335146538500338533334663622237852343000261154928583981110705663636098180076817749423409974472611510602779967825203955097926632056927544359878161591985318132688109555290233354923651084909094657567591161070009827554065398335794865023785618967220187332752101894370269560692857247951632395271686522789998805457654381796152608385395757002313983496840323277555859558256125302398649243494794568117185766027141875880779031988839074587008289653991346790499027792420261720881629694904116104188866203188811477724469148941191880377899641977285498339420002917260725188969447293761574215989373221985005481721893378417785163509899053369624586474392240329617935432645662980970040464558494952208080870011882010994710408368600593150228310520384662874973830227749618595056013768515903833220812394316254226805816178635970808875339856198279311489197949870950693274386139740649420648013722266906445807752300928075660656796192131806779000477891528679730434821504072511519577679113113936571646878254247491352623851972234395999720453706081837652505338388424728317530828335229979245397370822888875638042685890670610886464332943169709929610121933724493813286603013103008035543709965689155706689599979421454292019104796044410771203605798221942431742859329560240128948912724748802030384539016687301250643789204050569203817058931065181760436723993268475332204444517040074574991708737229781508366954557839997876204150633417098021204161959460611705668004299654473125477072634679808861653773226839965677843575685832925946292618688452374033679637356934125324631303061964704645258496085651070489853290737072081448805536506095784054127795670444341945579202648408964491807598155381174636575966616289322480565106034508013360755551456055230433198671668055814455531998690216384813943356713626015868967055892382116551231839144732828023077236060077278270392364046715681831862810390633842373866983652391774980175932520005683387156552878974027632701981638142434267816493642933383976261384209345984466788180664428327269629928320100781639179691714237582630671037695228297714375946967331476252277009337561635808719910553556036633526378233132901179255621571534930373060353784014116560341960425496863995247235860060631701579584404854588408330672684037105543774265609255189648034986140146865215350223131905706742988722460448178109288434502431044034749942169219795393405235912230638444749692408632598272160174609184312227151453779047822659605819240602714429529335966425058232966120136508353382394355269275455159498315711103132988519088130300525005487184012672847882800153046092609448605600395588696792889543477460319221492290334500088039616740250934502325579221455872291010305772867215062577392539781875586718402840195504699504082534904790926232410545390561392820310512013112366843788296952982892413917325492831215992972311903838790315914435057412963921277378649585280942020399147064003084218691719239515108165206403614930293920197205816794084213868663430264567687178988196711995743934869292274586114484732612583715384681010893200710953600203602984053255703968338937936237911888041838796359671129642754394763312999804869838583535959103431217489686512081881244547188556747917910360704743802609932603680863255878168774373975304295054876474305493617304624170838143247122113426963522350266301540262095274285897761626326581754260933385477575173406791310590405142357248716476384263010575843981773930495693915915806213438044728746420560893779748570562751702832148439780458349377794394482617104448181640412996321357111034813880789281329208159443169242303178955229347611869160015659797913923409327786437032621882388937987378224506470670221220487943931804046147843302836543971903987929357723855464495475377171544619353890559986612333852936527946342366768611852949940339121095284254868527085476834960253886993182607057900659489875004258626635652390297285757099691457811379778038328367594613592749247648016568993912090615102705487536821391832078582592916840916720562844258582286524449664806973292185832316316143110392527306716153063122527603970482680547175216186674540052415819640296416433186290276839885655045421988013216141811649187517277673450989588167980913705839795967232101488771940945363259601142736552019804429751673083549763446035024710818311601971156282531494612475622010290086909334562099198577087863486751179295653072889095338668045222324397876221980678722689543438556105819379709093249011675180881959966413790055546487516896830396951653841491946220342567004707447869233082830143603197022764663059144844394888947356999943368478130355257104743955350165781495408207537590594420480331716773527693271559534465964800874743985649711788519322308711968039555329983350101706248519494050067842376811079420304398375280436322333312144273881010625142310777428333041893912103372659752770978237511485322825580964145940361001080214511186174669168195873900859189738362222685770460073166767972096329784217626447356935593248921466209856097968939061725116902146687012919672347346527563840395856233342846538210579051240235191329611226520912832591154201657195980718743568793226836045879233311123591860248779106120141625702019658236005418274485189018762547783881547109013803843321870644132917723230169243343782901864177082861462807041546844430349009179127258379234041908338454705258110349841439394044081255067176865247229299382380109604140074704061580510578213062282592219933114775834995166110819650303947549268880959832883444782000597627254582839737308208793334336484272790580527680756633342689832408336124312571946967892589122703176645010454737706123747211215526403945348329676240538209478055420650633688009319317371689888197238520366095300272974586229167574884875314943826820561791092453556246480489463034108612998027247368374506407375404239925995468121686284459261883563781150698880598084323627093743155743813072586915780901671433528559243625635832775562455250306446712415635021534597005293815877321226814711404647060974806549251512088748232653659826511770691565674658352367620763154913676228231702368936689573506158811093850590012506115592975279706275635961803129624170863576172959612272067401823016782772559738630780980757541710070269669453896923042151927272753003804694586178973495768010414021544352381606833082572467783711135698034231670491508951826661501586336341632275431692030192088898215599218853858841162133773359478391510093845630114271924939834016941106524083274417381411151198741298177238189302963875815247866292940088803793005111217253652132172714269064662529059956615683415866897613021038244183167452553265937296202493585491329234340788873561897843403019528529521267247875993394750410878335078993014908319691513505589244453147508206912288287832372139591524733521030791972820872059960089272964192598681592023619716533130895787437941567839631853090231065958678990172453568362399777223285127476469922529094535788625519171296605567797625025163592755232382342604387513587907891789721681769892164713541369818689423032532820700259744875071735732721825389541985226919586256311788253527492138906560051584344912759474413045803731461846597354048412063106898990425686394555418641636621160578255998918939543660536408081635975524265288271830505748891891713117788281846493795981009164715822197310625768071286032883379205398584357235312554989117555867062900085998104964318691394982472736587248419220240578164281742227187670278686884256473370174966841436928604145929950864254628754886203189901493606363300972702755016561987004592665570765198048846756175552480680866994539923342960430031169871897338389605246770813049528496633022186629554497347641221384000309691685976793652850429538995173253605313662818008496182155786325873794913143737559402977925576546296874609192295239438413481671065586504021914422258659444367714517164614675048308933713997391605916602081442461360868506627402723426139854400622040516168638908130023889024024474385701465275540586559271633273192793240110788215594247253305396718803075352747192125978579827519962683419057923516283438484284842382477915135798705741169451267420591977701597738456086338311849626984079080292886263347806043162359285547958744636111311148173841294341023230627817815637323084421129833990141396682947283364645451741168918543537809012152400532117673118223609701815540178605326833328303959290482367391934390356863269131704091698635615566425052431397089989818170925004422113292960135332144600477582745031331410427567886851998542600701860942291081812407251423873833356368732898269913777802192957478422189788963259432382950352047167724019350024087486602228118727766903297575697735165771227848915630202982330925033233381607219154458003131678561283853773272161335635953567887768081928852843002096846256191165604867483761946483081906428656316876688091628214132480317934513782765872500660490021176521697083080372979813020794471958697743869264333195087977466008955835624714215770096357240216296275585842140383185689320379594304197385973800074136956714369663596194231888814420756774266868235342644519941183404948932359964299280181199178110049235397889682335939743441722392954078863338963133769490717049723375753035498253081921195348860663674913637404146731482135119942730336862944106360458544550052023258864626628640982260301016564664056097730938360438937256533983899131648127004562897506472472807922902299374944532089447465934584732230629368310273978151793285338516535584975578186715705191124310318991614234298730288178230306764189581516396588700943825439044769918486271813417906273995349547047428033026613658675826658023295789070092051701375823098693107386899822966860575363704095935859894514665217910123184246634014413736643117793433554211826669612543698680385864815753934637346042543731183404595534860706073533130212963248161966667510830993081479937425278345849366492735005172438716037582703003849784110864768662830246869792708245289180475181425875938344159822295047352352989625272591030282422791882816346475794875887257967578375970991289621132431576466263936909257755747576573328845883742796274752565717402377644503035963226843407581774946030366792794953204126056232546621839502961725166392680640567910488851299794057278974709582134562016961832658540560648724556074728926574667345208102285296145027019640999924184868649669409382829081315096729769160047826083261264232993795577438895249049333136469625636996667486681295994314975526068957036668572022234679982774243840340432948979257537707440607139294862536552030126273635115294912805651797923470907734657018976492901928099686540090336831442398631707741699216361659574424209652403103417554990752516885385549684579800597579481934214513873269482550237455143740019655493469745580410247420232291935654102123712769692156692195648915284079446447733631398320670043273509404060206268544750158336385344553807632061302962760290245716289934164811735949794520348804464138145967315184713684206619836910542556899792020602657021022811364113268690048068224941768229638394247109517094874416081880698248645817051392446578104116377923225994256103054427332665605672225215890289515444969037441057543705660255265137720635307769071671232517166053421071946979862755439922712784967728860927120210692696197406578526571405779905560956566269914658305249644740346748220631538130060122034606555510118288474757660062582903054622052826693864971597975325493165011166463623429987118285706362527885146850459313245396886186062259018335820058380050513393963647744451941544699378875661110135710444906747000930581788022222987208337180189407126496377117839293330583512274136839526296727823452835038107666697585752085929874005462347876689560588545362235543731709698247976026148320648723574499300094332493109418763136976953539295582771718358010816062452833049368893811921334144248376591696175511063997656445588213333057275322726383143187741249882015319032461332452863601543766026792314464386725224292648047693305719207684486676655592231345233390705470415619973727557812115771190868378107833375334541248102758287480557008653981759033899008970696814652115565773671781915020510133871106592220071207484739027430722908601569024617916365840794020035227070340708136221956234528180096318787783167772744698743249284010627933950524930270070783399399624283029968950061343285084477499915727265765133882188018879215235154266777014296527867558046973896989249176122731606732410247125201246275510864837568316143076335845346024248820281840659344312845082794064369544964287954054622816888793452026263564953084188778580077054160477034248327752960398244155310045445696344223983271095737180852301402978848022880127161157617599930828242628841751664585510479528151724616384191567016784067991541468300411149299059975353770593995278695775944452025849659001852844285685854079979888036672316121192736288079290491173168313968694958964859179135712088370421500640508324310201836745079486315315423028842706378295175005035392001523808104510896637622901769472617851093610734641508208692163170768587049082762274950016243575078529778048602541783722106984368450323351436934991348392959431880309969865448855154395256418175953439007890902903698089209175604071487204718195101597003128119475552210763158572127683207459374503517111376130163499761987904298586424686428100745621603349926233081304644101484168754610311539105192298277873733579750487635900347651798673115166604478312690567596021897925558719564438931838458660341785522189463305805689895246237483662197144437794716290084451358993831170028730307615908323786131510978109143462693590910153690344043640766017669496480009854282398414693417848104649402995273067311841028654997622053722638368358515821516452251655781658814901803409767799693954465942756833725283192867580851938008516789998676027088457414407092356302290377202125524927263666297147490886139161780590750743083769586935745373354278226540260693189049152262368488611775398480190519825541670203440652816830032409559710467529260120574020087842638823664702194611996971080592231432112369738754614708368516561697910619643007817513259477776638302553094375876078972325184500660412077400324490651082867100205919878420063962025615224886115002695776033757298916260460152774629597841728486078231989597595030841200120799911776440130607879140975707390323590705477953646902516502248323155904714204623507108072394345861148821593904843426978165127671557749743414576436633791440262046254258704346210550320227411516973970908176292222082528999613069697706296934149801261106422071065534098305288902013411727136069482640818876805833648235555120685833940172711760543140181456800899073348027355945246101531535155411179919413036079176147178256515683800471969457630115232147739795536963446182320730799903870180320869463599739128234580838936919454047264720637946444286279118228365902724964079656104702896284027345543387126149777601746508860313249778285241127392470539253114684138494941032804195308561686837560928417320091363441596902287322723215912617471395601663934900887507403059519503869053720414315821629845044817016915751269698675477491009008066061714477634883231385135869237514778002091675289348231202624426367355488048796569508490487579099067989357226438101014989901218962860820447702725797908963063619712180182021038088647645808393274901128435925795662949229239523999979988740081657054102180575293581373484628481229588849139702968947308678131064048439979354326292443437178636823922754021410441979124673925178136578596157571767992757250808326336487599845859420694718560535874159763236271000836050981566048157657466845391829585422614123553478163574173866945139271316882446354665653671386667284048444226785501359676044246597953160528199499721155894582195018401100266566715875555035801624936982776927182792502367070885530715786422906335239137866330879300278004115658190294853474509190734506670224351265401975619961505417220481710017232742221112805918072966507999294463401964199288007191577583506096342869538722712584096658860167865340931575926478113601963168392173346340170256485272242060187238394264647650957540566712877598953589437699933554347878885205852921016918272850016508227915287757226435712005142316135658395154557373259745783294512970825094333834638917499753417451788387622687448993667180639221987562720367591636439539454424998387484583981203067011846796200665482713690393912813896676785440905691541314740139364213283490841852020480820105009318456065753051371610053191087464819506941173942111995989569071160477337213731018661866689904127020806702967364643366329437829969290544455917261374909494088217298869544294221834719642750035568187310650558741804574715562150298286561258251619531814661827426642043246346189449136807576081000304603545864901818159481270641395437024567698222659130595218486136813206988240747553134899953351351802032950137324242144898304655718102115573938588307753606247043426630429991328553762482581285225935676489896096632830047199881051649083372030277898531108776693822061090119716452170502173217364061491695389897397234327408591376527893054691591475792956656990568305312713903785803964152920300789464234880268888589699913030608006615262517702226416185060983891797825957384526458108937071760248809114720688394680562311547315587198730161334975873279977661787594253361036237097172780384359514253957299859401224584754407671837208246293024700100966753935423175882800844058061657327230008833009146893191992881380094750881401143606432413436596430036444486098835182860758106341291533741256192489908512470450189367652693500266074593941505891514882443076680221513214082274142383258425715949461772750793382225341860408590474509380347187113963275379597497746749931491576771553785703599243828112782806670798338545928249455000891152582169875348022741962364033277458736181879601587844266759250643829741794438121195888120110160721633182696658144473017185199171015591074651778190929526607321016117337768094076131557133726596544450240843129959240633642699160275457907247173184855157913089728427481027714421971036971315546772677460865566797932640806925875190693127865251552451893254358700969421099221253923694657815058097443709225244083099396224671524334330749734649129102122490122838747621810871876869226310441159026621890416408658574974775042199496872002932914822356503408034581475017901552356402715884393239752289225414285247602750511868071776859684324192376213072611348229778597175152016613164123823299702693284873950762693674473984822816990562297890046238005158423314321944866535042797612708933210352137920089781578946566369524897601989733419839137011259700314088119000747772742475420434173044832236864598913199051509873981031088885219927175827192944130225541244472859706331004455740552261014612118955032639979927810788691151586002742732548607601672344237470241955005441663391888315937420810738379515475633496398742042751955212029888174772361561753270176243077063822418883289531725087289706442195548391606146728848137550608383871719293005789578237479896623255657358444839268005484265292393854806708773986490335199944265078501052612133821136674642267409643633630746281404855491219273405919337612635508532619214121440126680279765654547821912233963781637967533737894250420665013900571874535818257060727024798997871477303094153164081878063591911643691954987408893507450226161747127788765209966944714817101910840810465489126075347944123208598631868261874157151824192400610458956216377823017286581173750899559505869487739992289230418861277189887711785138069877611885202169956038838862977634210243131233983366365203496737994082074043357317175619877142136356815912178344007038782652196793556776306125703840118595753312521463976806914791527175310805389638480115396895917263339636011446479684028123262031742482151189818389491235789864884651448071592256008805643515235414806534018762892838293090646917225158643050309050367955773479411622768215248229279467825964936735532210866654996242727992672902794859252847789384989389388447011480244563870956282456167336906412957771032420536988822739286473162611957721175025239284583322737896773967852706401285879300351071634459439127271398198184840408992892603159178415071610280157199605666623381127818208099892552404526494872967264518814180949453950571831493042810898023305454580706119491210834659797634482415869888351974763435451408005095603652127328244505174364806602625578530511816575314648686748915977948101102146098544255278611155208391307908082634272032384264426297843442717231807689437769469204371937174616944769626674673732869030311865096468711977926730573480411301703242587987437591703232920865775003074102348073478003449173055089254588691303734104525015683776748751143375016988316364427303287129672055723234239380904597582799785540011729519777458495875211880153050068097577217780130496095655913780174492339353678723390131346642350021796956369041656992325634270785415179815475419104781166795919366960502003799043779598485540412873216620655837301425971286991119083202424736283429235466470224441726349506122612266793552633446760472176788081769593493094017660033742119525157812448147391058664297068194701563601836842609931197614055814730481302367777652042738539082864183970467534714619953119054735896044956203003301389624746142035213920874378145970227946747424906053877727721573830155203457935107342224585655136862247111073978640795791137480458744930134278838333365666383932195817316860553641844663071730411020143083916632807642916689805128276662521305302824447885029270013570427542606061952198498138945508270016110123239009520452553573364528791779721037698801068461979887252922764639667696582868401053878748160253023617813722390325663732526207326151315325467600649474875750233598922053479661318734005318198966186312584227525412781729444844720929592674264023312437061285866341482907882172430068972797604255928098931774128968970168684930993051056111404025699817031590397979404238739445342866373211310084151219230232831928400980079140669467892207201589978420372135711657105989344226342099413164243134933851493023367429197039986279429690844446575098562838356953756942027611712593296691609889462362621199032639133341961395497534109463476635331711993960583879059714356781914373092744516185221717761017198074720914324981686827177302829719880189547138311700713565573002359732968567098951741100019170160699566184487015140214017334940752961253214750874423933869340222328816703284913647633781162136754416661418436218566156069436387936396296835262694235945578067806635344231429610440754614840104938548856876562085630774061423465119729705280621320334148763971697826684646977154105852070153610232151886829564613825900097703130166698475841869028107497214052119182271578243593453274628784128039735920836299849449625367571399460156334089967918645875391752958769002389326271261520802107118708127782036926843586600366938055797111291096218066766080241538611247712437672405384848348055514056283304489210688231429469734649497613756529796283221662564187789637157392746727745447703327207174887485292451439420734973700609260476060303270464203315923851268123533094707260611649920007787726013239830807743996528515384817202446580571530802437943516955536082805961021222839225249585068676940678727344064188691013870926077605614495250318084793695848167331197727116508593435460102513860620893426943448678160811876811268443711892337609331511724764656540313623592308728800050495792617187098420304827059092687912360363644216121691617802367837113869901363319374108691278105235279629158335736746391315320071657475286302300176103536000139019957488691159616157752561059450774696040967771172780659692068997532272632154762622359073551805636197736716253876008810957796420416562016988085279220078335759243479783711548044651808485100093781050141417715307629017136303449207358321397557837150716020980568618840792947313938668162338345367719562488197109233397683708191504554370063093412701282290237348766390508095684847813405158331793774144698897837187508617261466341412803062340829751113619568424940549582322607711655911643706270514748218603395961055721223374948586046439716723321520960465326818735526768622887237027348573470805317789871999896337821566793147569369961886431198331212844019524547834859974837108338092457726135596753970487174231399466543869555898931839289243898902967076574101817716812721612397423955397942426490930988619126212766490650045266670997702196929063433584934620201030904187348280364851785783836488431568166872157460701348950150258415537356852482045444219395561544689504174171368380018460543141197362874904904247909902215977441929366398793684647995789703128818440183566889296568960360639763331504546913649568961767938080400167621875689341773398948274639317176421105083838119512785165630927642929109217782854516719619200551192676989669721956320007424761066332911634129751117617507966291791571722354532311847699145006628786448449194603677739673356887517505984195404009587404558745831807294027767449190736115719168809988639986826239004962169357073242764888636988286536081619150203833164162251199543009051221782892381504040007455515596912532524098511251025032872252738871368190239222839304867597020015759402735073724170061173340896962773846546976868574896030798139479560384063099524476483695039573001468168784105751860768788932915885245526418209003636272929133149135764333998083663679304877474427584753953313439814921715956166318002478948243292380484954378610532849556204768938317012159011808300779422586520379122878884814727128347588414648930074418877404479524481281719226293835808445281612347728802380406051993909899552093817940363817398162097765805259785384836780469791195887913791315776011719376214296467680695947092409590709553126999167235108775073777964248397325276961120025811812113645496513740805523073565111357726512971726215398549982686322579163707692219296793576302031605807445344469546707126431699003802361587356682796420306731606677947322023399283144755429553385175826409004561120377612323800291529194913856211734767095459139301072981651897987050460201699643662269329653320349010969852444884863184577845686582510864629507699769732361686381493664663487670983379433303276261558248030091562900961801680252595199144523275197448061329942156358254156563659370579210873700093418279659436960794955529072619315865941661147644313502907114712945871996348883645670682076781282367387152064324261260193589918995094758697722382313966439087617266323083982012021128323659946563747573267910881358959394220489392307994816475011566107898199186411669403428436684303435287624673233442786117015332210396278875736415507817592730319420386426521694872553453772993568203447858803409821977503766550828088460807087772278091230297994640756712508301161305049329885728372192607132323075468115240799171484229171334433945528418411186363364522253713378636176546544101986070442319765644433604208506141363876289003444209398068067953666514858990445960103721877361238582604433220389481200101722195201856351794109444552593219106377823138558325695640155523059693502759915410012355508533326254704472603445196795539323923478921288164211971180766956783003411397173448242264350441308168274836216773973165410137127024905031843115579541154457397686785620909431974907002532271870737269541095480132238532666107941202610191816528543060809902961701132779171012150375190490195910379527823269460988856992300375982372019197882521899433269392427992308537881640731393796788673303232434203988934735320304035716847378934492176422106396784543887122756558095372309359794756915232759136745223456238526256275627394553000815483980696336596275376898088021026726491259253486637141094762399721260279311178762421865892751237629135121527526291067601714563237038839099381003651721958628212473850053795504303163600051339649364295668440644035722039401873365090387610395229104912962881835704715765711273547075123007114292155590268215874324738722952608483686162270746365851633284797783558195605107750004490513450981857810482808343055554315527600738159460790967145529679555038353573789729047924196469888697244036214043633002369767790675367419774009975806808989922403207939982957945198135514980184248959429566733382010897593948170918740904803288902821060189169511857483645695306330046836151168195840538954875881931143044755099172108803038752674546588705618821373477699552464963850847158203492937138790057454543642502835155598746764502442055062979978066468101588822635891900624515696833947720281329260977358128087152898944417792769714503859839192444695787521909092643927041038565878827172213579665601279961504491559977768654436101014964104231188312747300043392989629715711354149826679868346944026617395423639115283030334845795372353483301470273613179489665552782737453861045565392188697007546352085296013101379191917583636994669912231023791233462396570798061970916435451477152642500249689797222981890462616312980276876932827882123892573884367734664292247576608169023245702205827175139964458781768934385413868639689106812467848145612301952952324571116851416798205363147844332112281272292784215499734075581924842292443998019222210791627210682878464407528187341965200214704297783469868568438117683158635512264546053829287637304677624072066252559687427622726439485193760117484036056168855448345611992531408976658398144046591985160254097981782203816694212564478303574083141433860685240113456149113571832078057730520626688509329348658240798141174929302117426397096363783247553133835563884838465136357292944799574122043385026519577831873937026819264618378380245747144973536037722342172379273291832021328407559543866047554039692579696726580104104768233689024046276975421749881741818484559925277128273275231129938403428628849394012467205337577250295166742539156587851623607767681216207399662098898656582303485737556219048451672661798290791058465998053115761486682883185437829703856469658931032126670041776452397174144759014177325079824371766243014041863511464985124276861446775928918983958356524871269356082050641374820417028713021338649377001717680041428648813205467007537680537202879277300384403081444774470064241225820525411154826108268579435012612792536001786616462360116017805213375764701733908851693142548083581913289876099168227529480099913089819636362121372763663990997182532923737280288259686467122286490459464326660926959287358194475185783665900991342816084126747411199562648454812234397040298711140094489356603313064318354948926798574739152089812778207831664614899736875149484868075846513893594441551058516555267997333507526840303531503076030390085923182447418668880387805246895277079578450196705543862812897442985204144605384638041671925992452154923490627412819068992687068463549429223982279156778837480361075880953262598460046192573714307684583476936454463732476233227932923192618180951076234209563583508891262076250717510322715496072624947146834321174251399904126474786073848591962950768191222179536057889492392007884700255036622578326520850049609018108663371229545842953732432257321976295346500926456098304319079460365770164668507023738197353390335577231627891586947345342340611889151328709244470110087057647842196602123237383198816714041754885533019652939619758662637822973018674019559983987673888795056803891877009974860326523973032838913435259765184587019615500626858523371219958424239129891848131643726796668996298914882311777133092314447786601564641956194423401389372116777490923117044223633780361198563747124206334453922320367578029341931774396273311177548750906223799224705556143520333103658146308893576806108456486115885341803100862377403506222467387644117321394425578438429444862006415677705045844770188023432754584513749954367311162640750169628699321791100242468129706687550883417395603224483840970691451495031855121766047749299795948639105862908238417098408120231009958020905721428276425730997414403962137760645571655131248491984930705983338995219683815796659588227227564908197266565236925708740062941356707707318122777955749943291425422134927582837169851159269513803191502641708877022686787565176957121893688596422864546367926406860660085996496147477975255989932788011946958937754429773779198471214058737490491100409122325863948980472337746197222084621263251972681651842181649378548016785240859853022674842555763697852556227042076077416338647198668363754253630858141558958165571039176665721651307680925327936508351667602696314073320019878126683472886273458183553562797850388622892490240672308146852147112769970267909417996724481449841658926927142809168892062582308742469165723585660972958333146082022091270102494521465220769511777490230002128566501812917949353426303015495156433011502765299395344555377823112440629064760392955186011579513300630219683039146484646419636068839043626438828833914162228740023076140503751253901948848615735789424971400955744883297754449036953617190326101877404603126083451761656583541834366240751801226153669764257772373413593313746895737454378163857300717511075624347479571515469424340551538154791086538440747649119939825804581420907517022985978667507222594538230148771903096823428917139283072948196242799596594278440678395168024856071574391108929701555374073485857063639998130474115020964342981472555084272960861727135451429387481006951526380067731589985748644151686429448490969755582469047650438690013493054903312992898824810492666963740813225457880391716713740404091124084260637023630032486865952835513286626189160313950852233733272631988366374772634337681275065898352948942184237392139712810357316287981903406523607063621345532972192016381138424463663695269448595362143496716326584367575380215143007554928573790008976953111192568379878486060558152721031790175005190453689882887425410377135634296164548055555379416379014637486044935759084810572645337441081696143392719416040192060655316101933912393032799132930937376467076474595503165409571402645149410122664898455914856227942137959816835373474336308419902943726692089030429514594673618605646181401951991784344835449329525125511880994576967902288839856106428953104726508190288974220274233231048558488468698752566485511755989533404748286989386972527790035934399892453670268408461130359719577449127785171210338108319582440999734696199133726710996275204010150800074544693078936267179254303300300699890658460683282554195288161355302479431333719144350806990504831049395401467319269337997328321575306440499551539312388476068355328758281891053569660463070141596670922824921255546627618935229695692039524790670504838798372246332024956861749002384676938342264519050408335085498712846258417592340261669621697757205355824949673683054831280065018376546036440661190646817380606829423738210313252720681250191354701307028660445763402676476487737325006398620915509030076081409749157579485571028080739130325908962405426332769712669386803370090779005776416125312673408122197618191185490584243978760588355954382030372664516142409209325096756766909023167952302761627005233359181941764029672478937707387543923363481366353122045168140787900084577884702917767058074612603610076551519375451073085201607319317657782048210561621786222328178474640992126983664567548297261996894762390655382235753410183831178065648213016332540269141263454375018278649785997414219576761985863816856231592651913629330081325544701579223060490638834969176502675180066986099259414829669289923781594611135890243162950949479844658270551132406753890208600375435958866397357101972747736700452310005781704181992622601449801001776630296577044927952636197083820555040279942989426760552294874132329870356405111899024651001576009943699352327706711551277173431743638111189617386882561506098070626206501687193624740083650403306861809978611873192671816429373452480781616862635301857326879975615889457272456121287298278199177816494010277824726658147538592790942229119839972833554099600636856284783851340049862146223453559882366274002375576160747033353713604103113725246869996675143211950454665718157720913778182029942695785414593438050169545158048511938799592737881389824331101324899489080419656436584752161734266120026992583695588323491046811438511779447141168600332518273737173132666535243687380368486318405075645030668065109125724527320897960213412809526884660626609160402871203578483742615579022035770340647967101596788991012258535324497444338158375595778156723123710554919981774288720149782147036267587802122793628916783290650551795068739155696590448481741949326133017209282684425348861066181008982316785212212377206580942939432959120075560160577243222113962541500019944035630475255683989866998883373655971840509457522368211712627636971785035556074358725884930640694703283677132341167364208375264554349577645350320739538016689531077700925274926091798069676302547066679739349488778859796520082743137056720014763484065787163640803941113170213400934065405163038238701434559859510844676171340237054276125323381777500556025586401944552585226960078198582544248604729168496266039824122736618400421191096803008841426180984527712652216081235386974712918427582399843835959115798779499777949616004179530652332018130946935231842515504788578170261487919148859477671812274160480611500180533744191463919384375560897509174774834660351776006568519165288911923869909874254046598526497113279080662814279060843213516140616890466413291535680831622078010432296598070954323688412025244498104133081210937828198296060835352261580165396822920212908794036267236106667359726164832306699651146433816543726265002889145081272653349595406006194400597211216828949914904310936258045853893161148161235304206576049041061158057409004339621057593099678278468882916740346143012277858812051662659734762479131534671614314111567815883459168483950330196992328697223943441742952543079051192352973493649773973550899644301329494454373195339019339983376192131382228366865064620253585732019616180311125165947363032554295145657365197213553584238024843982527854561375528168742515017223175056556637967052582138702384409055247989566176686599728069606639045947539338358566555512641239907747649965561487333833560411475718276152366901409136059738516656927551052132187328915286226237800561333759520505273362528615743513186074539660080301021000554161670471421890939522800070621801670355128763060661840653140352873124636765864961730459498657246117823999725936092159494702934759073715028959621552320287440658085225315542719447638531926134991701167594140855335053136456070929231229718150930105186489931932115710447515347071587448860195402544901955674492489009883336612362466867426602298091080579177297776313981396277227289621580231745405462130574520101440150719757815167174231114081851383984926272454443956126251914451921517097573308634112642163388971746525753266893876077182766646885205612209544007163459599630981679182950207877211748924691836660701383649464138328639143534245285430512585636655580107241856817221362029331106244683494175095330566476742556051459597281606059109541643691272479907758906152855905808191611992590712052092381690124636328342923344308654378563122257577365893221704691293530992247045227132954452513808558762898721777157511121163523082670674435735487445048376340031092299317372967836891138771928550588481043471048574973893735740347571109299996649008166147701098277342194230002328872204086240280722571944462592013270103917758622740994032589876535469107786288567324293893619927872500090166536459674834386847669741412809744125087517158365969577004029662066859175762931462153133088498789530237815310795902511112139577394483049386548062170880449592389053495918329637192924491714926452436967321056791954310661984951046954309354835447377594119860395805659025133553819107646273446141031558772126598928909956168255936561032055104512388899964427443088566985541615729570050859169411011883031278099411949206078515978829542416134209330272758213417745326795270905345695584595167977186141024320883388896178357737927192500400424222625515286755227231554354647693874003826823834752962144719232369254810073975258774068571501892406783514947335493542616384384608994577402975133219698221625682881230623194105040754558379891180555148630971425810472975080548645129831770904858606907209773306950852541596747007522586514575527516293004291479283754892905934487410925111358841832140557282096391341045102528541781203844841635641416310634426217189729512278330296042925000782407034113883510752292636477054582823780619742029606002623978402356770547334778730883210923990531502792665093444817324193319897957283934524455010430278995630785879208633081538829536696211433085497829179728155125456962946793140879331879933069418114047557571382255039795745104748602797234978089881644568873544268415364757360715046976519858348264790067459044794016171416670639993549334869041289637092896397787667047129684300710261662841763680372736837951802566428626577166010286592355875082830400871192021345374419188135339450096681723661754057734212855567686093599271000831049070607448767731199405338390266714474481917636207048011564853272172854258954010568568135566962232315305343924502962126511464929211572799969254907032689395807008620453894984667197245716986017858147622670294136653284697983309260664875004988432159490353200034693630111920630558700417424768527348252810599593481441001863380950774261106144222371341669202352485167482892290354540146211505131506551911875052669362497992336330126507365412166223148703470581287977342539871049972145268187419866259616795082203414004509147909637738968418320288181129487083991741980123170630565053449587711052380076705740644720659381669489179352015787117094116797105545577292058326788529642516047078814931181129906028439964842612029270845139793196993825391697788598267746553779740954983693708494845319999071254298207013299191011493478732442638316587786010504240712187028380539671683841204554867000170061115309332534933538238369766443106555030924946685542052259690219480557663497451277441309039185129122518345405744503753236771471789000726705034795512217207532309540809367818594314587565267604975291433134657635232679992247482578985659885490509125710303377383561747445866318375485401198934030180726309005615273132862779432730441326402053138905240515807470111333576671286042330768602463353535935402409875249979519701839833850800143820721698255211181444301553803867506388734002028415857588617798888846108485563378103487922311433547506627346481307259863493116672964809582214468266841512997441053963241907570663002189392755729723257850752439260556906058188306122757959378964819181132669677059205259493159836969471819269675171718240027041327486675513845280011486394607287905161366972910343707237350180215543481185157351273889023135605348625279850650856409748672911022260797521587275756724025689547390301830338599953176941669884460902408687191737578229164281294668839678888948949670975507802444456235222065834453410877256846267258792107184929979878900702462165614152829669657938658651436218192181867850822838133697068338977277129368837205780057499467766109539000324113056138549387125655702573863054783139105464256418164736272777549141817882355428233085913475282712213695212066284919075286105219392214293823375707052292550020661905198714662517878653793619472022535462685457588609296235875274393704795652190149573207120748432873540594812300069378288911821781177918902750197595708863028150516222898726011574917519700609626360972583338722773687395736999054784487071580322283653214699447542795880824302255784434551798023923100010017988010950132081618814983433130083426332778986250017536436814003206197715565500382440706541473332597823967116531413974060378897058308047813925126194335202430513912180118882461069228553647235587991765496628138315584948036036077175178111223618571340748307768369623679635137665591144248602770883137139171293778946127139210274700818280485205185726702272211318127150982376575335903102469433959438858605607687337891860693265641846479599820284956593144378570299193183906015156308187949301231499743867139141670586250585217109334969014318668575136414833844191406835030310444086337934628841788890829474219531019684193271001363472537759284291545420031803848143234448404598366583014878350302187939746397271996610367779996490809785133837716614290312157410292229567083805052960684866413624047588089300262936853264516792556759394128617677359368869096522856431093202586227311982573791305176986844303407643312219748299559610883058791737541483234072830841494838447386383806993393175158375699833755123771207785260525839562800187333187493789146327562704410607763960371817442977264050193083536601927355717559499590591181896136077020733091119829713801828100085152527316097008181462369089767967936254864079553894641616589375461104140206889960203354361166241144216835425597356848422892868490085471939825871036567266330740289150919387629635816939905589949070346356494000801809021179525022256475070511461363319980501819070997349519878069431588557590899262257637260372239385602729307146118993828735131192368071730519257024426733947568552850405796616995043559628801306664170672000866335902056074275197667856566220494495275389774495007409608040281789634368516559751356996144872338512958510698912798840336618921411656465883732762727197795690888640395126595101504598147203598003674191104095621365866749085331659197388412007917973478043339163598816012762309938853670031853739721308469863797787226825278106545785528552250534268952181647192028482867583732410312555937518414497369804496489473038034847064456793886194372068934757223234071149514902487496020160944922243908323613034607335567653556092686434723837953532253096021461844853354923183758791182149457474258107522770127901607604954258822222649915012646213372518493397611128397194530969490332741426006792770196201408375303312957347166795955692359362928836530108816770019948067004951901871178646620303273050771319323676176329273865380996171876073980558084816777000211944268721725479974087521001079097870285094544549221902530775869758098714486646538312933258332959729110158529069375119862204411530554485883287626370030767175873455045999639467053505120798616908537505137216454715117074563938407885727341457543906422110048686336955268344928689466552175455052800286207286058861664550342314767552717435296196783300513408459787829254504748155642952317823343381593697248919914400451088052194227682580792199151868372952791442303859579970974211040388547331781694258326400639999793361508123290345754348318058540021949759875394227456342241074509143059583977213387190414549100674238082299352847925875242923634057167296981069147131728420505758410297287021287723732533252398414829422085902735498306417417390320660012773728084020842417747076107431195702235723614957276195591393973563958887645501381563335720390610178855404840155283884128050177081163661941011814872001292712076250660784761363971747743535368225387967090899381538381125459274712584814166392470769191106499672782039677577945769533983640253550861368093568740047112410095577082400124152232462356718499583387664175020429412701328968531666080495256705752053007122827119475398086686232984024883774958028032752691734896020006373425094045428935592811927836030740121973514754589797686755342446449574961808636422764457475733531245220223492425450818289550043569845022867238246130949560055180505035011561001374062809177606204827733348000062012676499109614435093207391362507523114248811500291506706602747900958253514249026002306629723705458957228795154979000985257386506033583281827979015788190010144487813181503128258841105497611503196200171727411344059822536298101422731299726473040032059823698410549788385225144164493023884637002065005189338220219909067945948876229749872225381592293406917765687262279253945479168684922520518402762465874961671937978609991549165260525331779809071351643505262236022367297796768899242973617679101008655495448574876090093255601322550352833948705987252355712902541088622502538655158440932871259593772273631029105814252378239066934977570946685183422163767719384637036552255439943058885582179409144337681462635917922284383794491443552006163901767220102021451448533936860603292592709477031330529776139322247989888120818369916070001252904865062377361844228440004396901105566277409017280310150831646235907139817512866117770985876274305315964468102341848119468691345952447158330659513998585605502652723613385625403110829622277944151012768851324274494652188390837861896818187395083310115961825938682101467860103004506790440836478067108610782671578584275363822503675834229692167242763998873663624860189723390731308238673450282756083299513733647066165066175502382441128255637875012874232522842258182899787772547300941127837760114355626817905445727977100443070495566090773304211847981290025562487117150189488302829541821811497153604134996157184942442371246526615613006445093726164409059121212661079734162365591703041417060898458054141785977403115678595705272911080595284678359212331779327920142690771822987145278162278063626925641408194236567197566000144218491323923773912543320762993529266802437140823977656585974682915203222218950932108979411079591524938449890217368598508393449398533889576757720468995827885509755859826929189640145354764752623265499779577414264579294408434729169884029238308584195715530421324302623364752879396710003072653969847620158875146249786313379004018579188306909009306789796453346273677623319389809005521418607958859721320271484447875949387750065340347408589846839512150926845825405949098066966972811866280957998864690185061027776348157498065562020660749058815861098409636177807747101144836796527648325318084339969351345919316373005623343289695210027348258218094723173600014346757955779098100896770997070630368699414771680462752068807814033026467697778380110184184604780173522099421967386084026476430214311315757498606846671363286108074943558996025665833525927190933968775528972722280896586044820530910823392995750381311086045883395089755134884775218354009893831308014447987220821720230209868877377591754486864277496686771012472385908211175726549561039009157365301777344772010279033679382898940745923321484747666683355952574120910455908229481789021901102999162039396243391602525634666157158899750904801493458225461320285130869262996368541073881435646594560172849485480977676356874100356988125554631985161812792932686043768111846993076786855257075468475879754924285375919939782052320787287787028942175127286720730307023313271081902028745436624680057640955337642353008313488260734460873267705977509379939779414849152827396128849256890340620617311298573665838930547470364241435826634061923585501469544005507870394485956583536278674600279785155506810728749410486969847632182867068660281128477440844553100475131267780570110008147072657388942120551402466504792509175837973578961546595865945330049910409169167942218621323525162861196200705874977224261955196820063321983097820030619312503525875800782688737757552569940355928184372213168128766998756435951211254375001492773246204211130951989075269586830157358569079783088687634150321124236597623186395366646544431985829344490122248216841127468275016330177254470888770751884446099902371887264200103126155833258516457484452875816198920639522241600245837257311840430512445930997474897349215947612404725844244039794760443054130551223131044809706493044362361768429047236762211148711416479541865994107189292889387647510670981726998001392608930571049487356334753929333794975053729952763447261052099844676923679426870619827465977146698694816301915571184960465739446184051186473708159111165061600203219785751127551112363940054650991465687305901997060223858505910731630070245139716059666504627051123581472182154627152173286738202616731264807622373887907780037963939117669559959268164303101535349600522300836637503155534873937762130132093497717933742295252421495526924731837422306817490280472836059454226704492812131070507809550702625991726653572259877337621674969584629986708106240368311430588988593642936389900302721993903306335350250330260115169807304353619208801418737513654775638709281224022199746941640057970368683077168490898308940546189054381360512498163125348776003214789223093140173956847524229553460971065746062586760688421830507452343339625291536797874310839213854340527505673033211555056082858815001841907079348208311535290726664300535767145370740497805363514636739344015130497659675462058220911900350751861312354353465495197451631313193975338726626055700270336361335639716986632168641701521820288122207779807959313908868916452690314140688603896134530510960940090784689729382917939045420880028923806039460745552775078555104030723315462544991736495720105162583637566363884817533248838065175590767411914190109817173666593999416081669047195876179411707688476200005006574649299419513617665182192696284202362575384351477662363089680739466884394809652689419844283240571199826475132833973693090988724868830540218394075989193517189752328292135021541647477898970413482911378622872113769247903676027019605316765702491709035543000555230875267289766755594734300847997051129361950838775241672513946831315329418752865267163707249108808745718034913271663521367415013816029766309993766943904025801223103430414918236052005670754349574489219758095504671189494129145557552977204552603884727677355133067079197350132082849700924139646193528812752236917518467439602341850142331259701464198524039900451084488643988654915177489151371760027265529362340354892764830813008255858765230386650323402657216179667437345135975192461497840475200210906688649113595646858874128789658710514166223525631293284049688723071204608608297240202680538744387833021795020970811253260135190972073664590660893823716145046264048817429561267483715667175899660433788350799461396274805389768585027405393368384322495403503160543410160310527809446146869564547296203965104923721027629976145525682231439073313001770090455164942247211302429802536388903643090446485218342208149316185623832815720919589918476557434100667224059440349967152564469289509542207395587427547361886609873723182505388231011238625728366625642693362079078483828608408668895877836952660698107049823737604360207054631111288596013029148261874878055569094871511696551114940990356109189199115974421041084344610069546385093340170079692405135762003796179857054848491443273935869781325437979836628690452553495504608832929472644248804855288707609622510283635492264427726886107537987360854156603181787787278298920690749328014815337319567112065798451376801775777212473844681271260096588237188638883397125182838074345338918454906904622570875748571484985161636751450901786666497997155398300970598554412171705278919257611732599379569604452560633917692466894637938391125319780567997385823280423601401562574353642319284697982230374423538748640528007860045476294186088800559222350627456676396252359935863943849718333309525590557964467107963991089398968781663807934769354155722583241828066935882525312703981036791779348502739688138125876728894077171522642224865463680299809143842136849873606962414812589636310917801650513029223644333165592614832084060846146492829240604486341867486497334094606631592325689499169685598585023696469102019697724150360760163365841008500834606288040442631511027158473796918665547097983252835151218229462183061875256736974784199725995887895791737058776813656736565229789214426767751715725830899891566329826647855651028854543904829525819004378052934291550296842504303547756315706263281406915147683402140110918212517343492266795025996058016772024721792648352401025851948699919439128422824153537228522912088786484550153752003242511761419328457739542248094796712747585804690547445533082721939730356495879129096034842485947547404589135280072772502277933180499097302342234797012047053083541044789836504956051840267448818937281404162858994751785332833770788029615560226107816278472370817439259436406105758055522414966480166864638968688912259037415141847062169359478123531699791117857532676898183532441278328276773368432733490231634165808842952193314672157170913704367219234942735744586595186331741799409442683060311331991410529792055764927281883913565961110210213333207192663787965278141239791370936536189920180508814521254934389147912878500321675955589647253912111621171869193978063480009495037002355839463946494391266704799728823964035029501222098467763647343893670895886884055259447044511618962076869546745203061447468313993160118421046074092785083037144594885160384517187482460659249144056551942752448376683696268394740112799382317855161179351054199167923912487727112722753164990593792764690237468575572532396123640608129263781949530325584174411226947380857087781704188744292482731181653524886063983390595366137355105277608839888532106238992165301963514808276612078850367958834302466668100314276538948424648775513227393716612849663843061773032900089055303981788952663660241265161883878872332456010133452303601309323536036183283049984920400123783565581349405690720985025683955856478290595073188264748788634894134081160723024486081799436102968511021470724269723530141409604126333163917568499278301223988480706399758656926367103280543860604409403289107756445590672619537387592936211753715081865478353013217720375837101528682483527169985614527277121577250454434890916972387683975408754534187752285068555960300749751445597413124166529887689550707960987640300293457683370519515741313294432203604343005781266237649089411464328215223652358520375634221294455461514400036245125702574146314543598703971782289220621738957901095899064191157218495397574128447209997230727089361008520188710371743474892825169540736065897584417081618009507760147555601743422414609545685740123216923375304844182894928153857498742095548838360670970206929954289452726521294025807999681468599606109748343349717282980560637934117023165737390183633475238610610371610427263519544457805705299865252082795596129309016726291582289780528748322127302402817099788002352420411889131742585194291452375965663195267817695820280842568409286897683603375739614101920734583092035219170509593407941954883292242801103707256891954848877378097283513253935256563113743877261288697705856461723477990659130698484059596233456220359950339206360413044507585914900710057672862220791349885593789659475232892958198792009690705337431156589986939140537148072892863871241070304311386625667455600547631824521577197217287314016973546468445839647349629753956610846177559508019646948983917478714346240983702631192002088218029915682828498292751344282111459715069929700017113231580749705249793278307761298889865915321400894192901028727186949776060623599169310217280202301039822036552919667308530408264643751387830739572261874736349850574371854317897152860851964993231702804129035982366009761115710899087045817793052386239936261055992822194725559349745927142846669127682843481027760302068388177239167104210653260282266201958570804748591999381750825801767793375160124496624835918708475252017220376684852791381041560847456199142079961294119715303861542722015831816190752437476084598904798948292592615026325492326083488752986737791158873474308496897647514132459835395123292509676778446637640282301527882603002311574128338470350217067905125914613302128521082625692477617192327038983292109895769066062231961537853844549316571186910342892182250177234626703760294341073318914677864656703406283324515934961511002907441698826365699106440336289742022306949164440548429249719404402920180616693614613109336064818090142343715701353033522818190222392014324860563536607473623623637370844857381640648913512741481635449332886212344869856952135664230737526589676650382432806971265699612963551532453007642733446131118539781921754540292752624734864657681448313153330642385945150390124953435893209087492186995826412353888458749979139592876417325162815932301606536837830180562436722946924430780911617036649703781334580078492855974509094526271948863819131495478132178956838747563917682812833189927164841287916998829368675227808659650557517118742993364364632419321560018657670370053297451147204676006451524645731454785683778418245897658334988494508003463496479323295415958131684506686225471111560179845791711422323951305745172551284889307884169905489664397207329520485518474449870916200999127797313134372415829707177979105688669065059089212149305156831202946263280618350879892325881316425225105604418538316791335084391660069304975775923230418265030951024263299280502223704988424450127783261135682775302260036239675168404359111587768587721737615583672083741955006090052209813433571051519814836037937462659638430117122495783943815271330057326999316826087131009040552727455144205866867802607057384014133515877277258768618227350540554859915847410169974836674286671144752370829155099063240672153945903476659693354200129264930926840203942064813445287536594413365349335767328831611171816425238135365278716894786741133949599783231969336598646275361847272543817664696735750349247861693766498250071353504401305449248490334166525243002489080324527094273646436868556725359415678107135790797891671800294646119165055203129818921858772490466490224167213250966809909713549302019722668871132914981118562214910169259073265819061142505156843058251696014598894329840287484080347031139287321047532518208935006504672549039618198231113252438739413093141395014519913452220283450850145402538452258383219528786291467009440343122482078800249954823299671989126512813139366386254959044481239040942858844406188409383318027898849484871221572848203497522857339425280669488816851496861845990386336211560167986283461033557420275850817830320234471775412172194958656950080024362354166980893292558853037812277078760262664754336349289372696583217382995520475111525873926105213669769228967675105082935741987940178673231308901054018603373756935328805056981365032585206896603489527152585715242280020569010488654092626401135769706097669936826311222597412409496567435801305449634076090197996087419507264436109687820973647206319173418204854084192536865614491567417555510203158792501226875844761401021400803203985318976518710015981353624042164456941938196423630115301936496777667213588180922480970960497549825655440989553529061562796790203843511524034332507221188964176454891540173613450823826107646854574363541554274990042830113162459802782505092316442562818496485954344900891842810608141563694210678068001560424185901412478347395562848588170376272026913009432681257264543369326768090575994442528147106639822769420804368354681850265081163482047406285012797710271411190589473193040001272643113978432236292340929122249364717766103638293747926479536863197033328613341993286753349870415084333727839857229819294408160106054358838433815604067295932531393225817967212108161374538189191935262215042936986284715985622699802981071362363041582974824686439391299058092454515250930944590617721845105386935820250766477241560282480693331332180572975562350367318396134250052386199505304582194082600861991921568959520433224998352887403698289663863693339434827216617925392927838766790340511179148943709263799410626458867768410802887977953733232611787856602411497398341841200714708463337529887999907482046781613268669212411364607064204217574071696995671822197589379992345697061870108034164036957567681424976113934959654921871111123306901176840189777228028575026088369243963240739084767696216046407499466062984491278457439204371446013190721389062044585141301949025610869772133637233121972922858156096749963208027382101122261809177283929443084708868686449868212510840160257838878149754508731033701381122058177499457350481279730975524577361818651430505509821348718243174934155340771929414845229464293876318927008959546398218363487420510913447890447832196125423701710711407408848680579942224958370202612503446521735965601078740373868497437788688281564649752271031201455788727605432560497720509650332100410254262212053429723649803933827999055765799308579539732467263566990498530936030467969705851092128050521848886698213569625398846398524795925103324705156176233738786095293942876141967318344134095235308126952745585328190874704299931621046883733009214890613940068156196030711244580771599102592766423873188983513655478603882488984514731247537937191491356234499946751689623717757621078481004437148321264369740967188591017652641221313979117172421925842172341323075121023307500613563973189156752902871411384076768761096385712386247388936125857380148010987515967658101227325324308183909648812447941286933610030834340327913384300729767322509781935985869487018362083270278784979712038158067155026223123998532776960435010596932695740975066582535827696864856098171221301605645774119104255396646041235572386157575534976295953827256170646455472386543969160347497866704819374153697985337396750187988270076483004080410834256278874976208935716026497409999059452241747790142585560707121160413831498489366026006904724735774740965294334137080541985266474161684171938392277933042932161351662880661102439877646886569838873387150242587771970353234290758290748345605274899392051815141410272362802907605280561793535367441697836570694381446621842846692812673102558495224116001135196229305448004401389654609532626138487299588216581836120931220867818061654100486095063085751075138163119735535380393879779966980758670761082227767431902383298197604826317658851949678087089081157187258932034695077117494826959541048883131995172244387964943724463805072175744226862825067534640655416337829664865094921828271739279131278317699761893400669086224221528878473627820585524337186034373336333211390052503015525705693849117075565749649278184967109183926320382644611590807761817652996209647343777274610997062963823203689408349569181711550169729822789555553479714586699842061899016639790671830662061310287585949812129284866570802941643109654349190483244850765249686737144927402088573858393667224809740607267204325909022015980090937789727121485883731939429588366217603025335598770352987355556494747905364008566908002375686942263114536415306844002123868813625949145900252755382484302763214083313655814471334584204932023846761419481805234904764761740078963561119199324789659055684707078739968211079850390589659200593219627159751463701904504305039219640965589972432664910196634050466245174741651141299365223034591242497115432514968710723547853554108223758880694876437130845307596123308842163454634988844547065943338515454599588152415136723564024709071963402934071711889401160762988220515498715134248361004404396713602854894448551776122546216511549685636588574455966046545437643161205424224768434749583546864779692421635892112033934363670688789855868612306772945255705545755986395409235726850160862619946989126249274663684802519820483120818046084508681064343098120173486195496626718150916751222860113796440418455177547812604467768938398686088016906827606138400495628076554310046270034105808804247295774984556275144813902769255448897028098077803056876926039901225427729542153472844086019008115016499546261700762597773445106544031718017917736596085728321787355197854818107970959524670828105889381187360735808123442063493986961702729230341578447752938389703926781950682976354746722231409713149746013672636714306043686828584353302194533687414745801052142211910730086504609747996648975543479199750626561820851637153214698327872071347021066989358992023950385968288584885759584793047503767255699624938922562245012433028219232031440988966410498845652094438880096609559149248742691110487598452145929512020303659615595524175618695337482631831392598086660672360387821603679885371286533538798268023237193114210096510054642664212516402879197279108956140713998277098684679694616184573503359753652590741601023273330197340194181813363607682670838320761361289221279688738546450487385692946373418637233516652479513903761255994330106444293988615931193005089449892745971439612663471324049164237545658735919765833260270863328894667160208492206931252222813550615940460704032983882554033745624983291901672541802925299203131490263116866894192026046123357109068920288622429720183503853490985476536750794323202956397377010173413476612292507165854448364221932328544505788249303461996316859366805434360887648591128131997850269015312060674704200632890208650217058641161310455194695122297201124974283326309175068615649160639348790543010499532766856195235934902417288849325244934233274612024395417894231456553768164520166733332803875245605451641334243935391118153021019594484587303135664151372618683636179727977959682293425098634793873918294013142485193445126032122932569241099735061683068813618064371255041014217228089478122655506329693472179824588080403709460081140563316182905554035612244667190718959960587438358964038236801322487223931041291931673916364977657206712362920032034374731502216007858554212335313449174994130200770779307174109093845100989076068033090760251078296585483614429801064250087310844124700673890097788238238881887799264700785715846904489060290471468359960427972907480646985796613430771553467570939327759133251574290464214730989493280914354186526437730913850883409909821682458072642990851268435199381569487822297443996081197742028073069178854713114770210357948274021414196029697649799668282806482041282618212403499050954531437430001297666408022192807051259269261712937902114931289961436641112952574558114264774870833066527677548791948083142768905906269099048712228206701954184841221014589914701278065973491250724964773151528774049749492681518577948322619480537558791853573282336599045943019521108978385253281150362020771571883096748194498408266567866132059187221179091661687426139237648602871797580701971045672603664952847853280671637882405496024115889815927664850327566487289841227249163958396470412304798389922122307817013426180799792103260395173309942219369841138812148071095937804546438097793190798832811125143100399626818155612782188284902364496307003703800358609551876599104990530798603035462562573502641590224880890265393323975870839016873577464276810908758911178116829113474896660276462285800652059198899061617984354510979038313947815914410570865693693653195130943501411399511701700101583855687770318203314750194212900705613219829089162388204964423882108240192299268707721357491634059816288736631769364368150581782323162802272661541017018823936800168703638225958654817779710132579663029004889324248732728419202829563571226404209328388387907255302378328547339241015447228146687208209022783224073573027811113693653007463937892909610943553962382405774167182553756983485275630545427544652605184251025776861438737097764828819073645850486925056644769725962714965692151027171006342713887218878337086722963487346052004806101708459452226086817054619930204498425689193130402532137230446489714973907809614299363853498325599241082922119940303634055571656417002610896414628905190899689170604746031809438332114816327971405991036453412586223297825275229572961243825489768721459410177628256293931888061669129249323887156657858103478360869080390504285425336770305894346821088483209949859094779324922352316917077980550756809006550830513400294941535205356541185734068115949658420852938516074057309009891596307464686312124241810262632581641942753674481671564903524157011773469571836016739481438269192113247054077304543280726780779578134160951748001468974528750083466879582619736725341919890866518058393469315206231368925086660719733325529859853330476060937502163607803043119750157421199171461944066667443765811073271732716215207798554191380253411502643851338734322972464243132727630175357285823370132288249304114842224222426272313113561907567130682130319337050214361788184902739099967548397622626169282223980105605177454591734193181941940973309161703352320814016197199560905364256528707688542859167018699079720223294192433282387167780426152404428226782289620368807770687080411830549619860507406181928406860490035897311276415865092021801339998478103732184876732127830256265039889846005528849720787143497002274102364024736942686020710976437658179302734048440411823363229710203877125890879954458452988517209730215832218737955866928234795708377356220456274365109615651328245867266969996976058659183736861628720334952185256276154764424236909175699816538889143467150706594519757563053127352104076807937612986476104392332429961303776810504320475604961403409249925171194776638718733185254803911913128312065158325145073542060231157615132475748306376103348338717528655900683718022529478658931423544930598618540186094726018635738377522745215405572023529680298694089133483895230061225617838959910479128268566158343550251687080119505250013771958069766319369612048246324178163997612520648780929717075334185452879584765308484729568748836049957952617941483933672747073359572087357590207361173530978456271722055985226304202986366290345941577962102887813948352810776873465578330718340543769816966063206967360070526218222102552334167662220015281130200453176973102582114230914142534663569242631971536685503775093571806927012959046666202372008937259490791376546688742746754727698277619529087115174430044708127736706271549832879295267289813265625354190820909137567162544175663606942289383005600610179144708393098356131297327623994160438902748559211442759607279211836075005948495806246344573598314022748860261041384507465174138073172122732690275842245635010560688275590992176041863880476397687672708639998191089310225352715664657900559008199451771625494274878896606516025296597198352015120406396229357587104159860912218607115845312522916499463141522991252696283430703146477251439595606916671045069165367636252776936441848889960108644519582656967390269297601227922591465551901543877625376682054480310541603497972762765856590058457409801136810935343028618385427342262834387164469914480184244746290492569306322912999654258985820541368154101817564743831298526945941247405165695530715554987931153144737323348962399721890693553147915031532702837208598381129367434304183612049615920079833737061035148814833080371956939059036926997995005343407964373761872863112239116883889422683513268879908786221816032480080348323571052507718242270926232020861121887155885985340606955641034434760640299421528412662530901780565356087126383503911045487645700449070795265285187301383719058825569047388526884124391175043307455942577230450989320320115985207762879986842150486213075624074779655976828279625160126174570208269968231267103603337367469528063044978434712288976974681708480336041940545484788938597204687067417317803141438414715786829009863687896544735420762007353094564180685697520317376798228388932386958013426295751215021723516773114941560415389122359493035738763713090047819199331936727705350350881064801906780051393489939168491100715235805240330210882299133185146448943653683674386389406350384241711438462057047535523224541993753004495589922997648262931586979655369150099723551101107450757990975129967344715655406923723433010533629862735106938562896875258131134981232420154141080515192502514744515178416771179246099881508618507192683822647278094753235175662757831887974016502109977864892296008835288769328233393905351595852976248463434723604116028008774840359559486492941707037635942259658565859086126048055710011795426628602727948220738719842015175112576264492018038407160679616056375893483004252775622738134572935128069188013657305426760028222867043892920414420858950087147682977748862258267398136038485755830695698338650068243995188298203827285060954617322625940579514842972736905954108854084818441246301473702594726691591439738348743663860007865822034503191366072179952990718821935049227520164502167801250930787324071714559401934677324071480656893454232488897686177014186406636781108123797015022445419680045500590734146584291827678074808242096159399867130727013678245186896185149631204337820302738455750706624180408752723151043455254187061846607611693733855817305528251453832206567402214207505865988205017842905345161340381171143617976942416637960374778410168799748105326670032793190570572900562806524614331534433960407293002354945366475711899967645457898154496017392087436074651748245822189572791825298539396596364618727131321456921437024258831746880755547718966192845873844105290421758666760632005326280610151932792286484731229662470788178371328738557213750821684359255871525681404044702726702676208996116987538571350050102687978357388799436782655953251008296130906393561420852594493430976151624485524768452882176995877908057738840161713293728696390594669027808421204491905374614511613993089256990376092209026679639421167121368912624724194630737757641130849283061273952256113819145811177761039311588262463829472703252187908040702020113167044481076379077508451718969752712638054357185600701566453386823046845526918271710211537736891171211943037191630191397446035018681086300435472516405914113215016033538691565743748043949965751533097351567875948060176357930257215236540460591084433796309250983100656340911437438595084411932615922361314783615240837013117616082399097925311624508462888433921444377362834594585421013072412333203545192558023171368153296739866754345200450958416306737330244648526354812909309263578387568533859180535988689154804501616158035572878422624740734160950397766743970685192742746213478357794304431885770249806302845598454848846567157666538816476003994500456723163038795561089107144712827186241774277760487029658401537177064764457510058462729297999558561173997450547610355380039730800359593382670946853527235318840393613975478368829281212063129174253316327146558824030367664787837495562651161344705472646933767878773007942558199479669102510788227790308338727587898267039956958949068126441906445334373594701713356952703955890066079825560869392017071939797409655669870404052972738083399329550491639208466005250633528910777160877883849936381924281463667836140575355552600489435011797966358747707805599944434262837037075918498512021005599486039921382620441502555014134325755914546003951893173755039973700386914635929942922625815203130333531757647787182998859449868969828575404918249113385772636817474419042610836301854458350756992479689172982955166207409965430247143157678806392463921314709856245977827350148716918984884821838569065290344716366941751329533703815419446064636022085551877794745343566235451397062653281123539335316009813977369007875919797194575924354189455244335200413729169741301418993300115834610698522934749233071640627720738174116979589659235630110413989661034720266497527063819400841305710375173967678832563885097351085245204595988406942189056778854364317137858562068572654020836489881276132338090079043085480359049521328233567258674751066521607022237644867421210345632562237156739687698775207694218490472920878253408206994874655558773826980998119888271020815093404878412390594081465265640226221041258112218552832079279594048382610231171752536076732023152714326119964138392061780353028166991790827060709623742908221237690478136785433571994868065325951652687951088626882186389727134696161975885053618156169981309518261031538646815798924044079321940020196199654954916472728996055929050788477933285672238204494759462321331102050697511892380931722136903121181641234772845502557646891079711013917480178375511140972316685675800940521561434166434961594558158194381316844497544881015095958163599888288408832289195804882000699113466530897610552036022746449744808136665922657068543047872357747578604145575507040060682187716739699811471995842358318307652044310617401200666465553794797753226737067307667040219570915144829116718192634193661805889978129443606317008423285419033032425326312124325176687646499454760587674322930249172214592870569554035247271546059334930698185629908856396847471004496451051406679665961422125634861932457780750158511809689880748637061334369739405782007996211078653474891214797338193749194310823856164589489326137213869459914563720494313790421189460359723208737253722360724371142492212776007668128293258591780268726896840162611654031848047127959485961121899550978903089553243243789744761374027109743205567023671545719054230362066451654842061155467596136387161194793214412813550699570844275491255413510437761230017522224486546974109952373789919995445637239672568972068083489931025712343171789612279398243315060754470439513025495322313238524692610286856667343500579317500592354851279554549510769341361713204437974842044350815696360816066887658932016281390993438244359586718124008209735321919134377418919328143398118803415621522801883504909870046084078074906311563986197090831014829542206820056959393349043338821147717065194638903985430626841212321962333210771650508586346500004754049367741911180556702810639244145871089124028801365187395488826581505122463394000013619841014910478599050145380962123894040980685634454194620473907261290796525656525206059135076267476822087727136935716663672057864462461249353377848437977548675743574424166174810157947568461898117661894385300572163143786040553432949892924394840987829421183473698201632525942008721519515925905327128717144492827484641854855080945071647070084448870354726748598406978930504779408027757350499308059548344603333266352237306094758362984078893290487370661560765708249813148573575422466874844527765676107336921994440782894634361329608598387053667652834359169047710849199194487599504423311828968537917937298149993402011284863855724804800391923144308421672053858544044535676355526066110638688938036285061337918933739304692255090872815438692184618360501324222288903627102673455128563038851381151880450484502519340393109086128027594007795287020553716713084510587356938487456573263340601131978115075081830791813310667480191807394176570835226270493807863069406971775284749822169374755760997718924780724861327183653465584067657004954687632116007821046332480227243025630141910160086006798382185031582267037386968488898416693581096850796163392878728102698954054849874521848049694259915238139195202225868069819268838508985741406486373513653638287820954051739567984524532418158165049456998744928302638433685842991282686897696374931837402600651854253155059916088577865281666016973261070707103463676713825054731610913712347524663669355725847169262003919817532553969824976473277357188279372168181721549112748381226598295303986081972580971560720941089494074549708200338877563183710149773319785479964421575080015415741957266742862228566421106388045604517418099326467400930041808727895245706537707243825453383238798901335819856855935332210034004823527269800049472555476944534333108921131224780648672115700915540426992410765948084140153229508785618891759336894050931765400974691485974027079685896567413728157028856434492413636657357035236071617522666800452070825720035687766252227115326845679647130284227748381967867618797080315809621909953608809287591138884249955174064503731974523200472617442146407488254086132674462621356693104090467987543230672485009613555247115473712874033575290112827911737127596539214513558753057489856620566612681013125832880461966137418630008524732575152242326275358114965769720895681526469217055078590483314302659569374866901584868788632116829641174333465423491628154888146095408561082017139521067842211742851228507389130513309864253689691507372599998903150329178563182585336091812726770421414151898709415667279138961915137708206850079267527703528559428376035973251296997507342620953212892266711100186534187028522409795060028766411712519883540228883187543427759289725809796545077400834004188224210288309396111976834372045193233314513321934530155002239669200710481089682345809921140386140856034928327042775054046125879791524108453943536127901776777098969172899198199368303168064092068481516586338197296133621810467388292446118466091174455048391694384881936625866954750374395477985907208759546710771218412008397742408300385704654336902613734599999788945377389500849490934149186339250185139994383412311927010960108733714948757487150963109126873970464856766468829144699178839141883396673614828895371608009236687558942745230231639249761723685530302999539332902813216852125245498339313396949249873123665828555292258679551314692690028795627438763782444524312245995655663474830749984221781129242094012092915977226054552172067130612505006093428958794059341932508354778750120738983991836451989725840109979881891337181279649515148151523026387659857544860526804435781697132035965536056157766651690665323424932601277423928652886150357265508460033883693406369220474502113913235400730772142566723075902377752550033840175257195352553831577338716275047147319599112786780898494022757162647007487603743882658035290599799285654054352159077008669949853696992027556942951078660993016648694942962866055256015670126338142776003274709445555735803379257857283385364725262510572510663837996138947743840592632479261982981605980738210134388541895536453285598752561250756807262731599066665498841767993913605608922821959733556880638227370923973406984935132192181061730719621261416278054846211338659732783132649337836758778112821098355130298609234093774056046370979860405816103485289510669748868808364672242885946064023663589783499739778445201098066205559968003904394974132050436179521832295683232182807121917825815097129688622737860661149599316871845967106348871084582769212359566133073164259828143311939093020814805782672929618454676556272381513114730270960886375117845304223712833648583660263464048397407452629538352982404985652182707018235394659157873402627345023251488000316696738750725150463601024135609510187134527385473164959146757588510623220985082775353097974625265178809526115199236526233329698519844368476637429848906873299124541921920913125221089369920236014947264937398020567611882560401198909468797281458417835810039482731031841321008423765674538931382420745646572515303958414734014571726295869116381433401620152997073171448916602619107558840301134087053037576855764092814547362611600836581296965529612518197614112608594237683153007240387301321392766318242789275374372408803634300530342375462046719628391546724647389171291963849628647105299174230365154578910537539292528861201622876799148715362402789309060936235101822896586205065034217436822300059777148040157701047057840174019532931538800893780247103471921848507771161890368755047604237353775593778611781247090000271001869396691838853721467227402599063996469653351835446361141507860003717673568529757730953934688463775780814825793720124902035423111972213325280787481121295095072491877785072516620612005995910954552490534657527101635140745765112613195458667908115672887400587107463804561036654371016856302952253577043676980832369459355228291629983847337491184763460317084380181475539152397563702781818139627339002366117114138763451634979407862438459270866877484767955750462756466329163541323017742422096809733906686089924445916121552766789305638752486668658540292179630795035845282788220683916134096755716824273214171020753822044709529559712890906620402630136403288301509373180461391732421276985377319338078147532453809908557400169069088133716529967169984155055043786093721735280616012309079280465253125438988633325293989751412901418900999116862186092059990318092095025092465787742418448697657728247685646683395343797554667091065942641402523792841453781311331467628567875620376114405280838219886818457538774956574232540253059390973989548032459509579752939886956566052999486954529652193419599161755304157203444232856629944102499828298166036746016129334009649340507818523102123897996009256981717934869835821631162499281145277562363464905813112488200222798205130793366907882046372468662060758112779654447337033386548681737779304662638766485786634073096858197394059330238326375677054580447355843154841103365889692431204306454632943810541457847866303501782049530331104899038129973941834499183306406684128253813031307951857046685742095905770170804739382730100691873618764511811687842546598808477808270770138990575434997448374568321140518823919113601860107332318877796731694191962300493354646964774942899465437994659942348565412041636125165054696715934904441803000845181363881202610270026495701044356949876485344722225272599954323804681239730628787566386737552589461526697927547866274502821546012904523915092488807141111436009463694453219214270984370779666720964476748320520695149919308599970879276642705974886087874409575914230429062958201676374840075046803012242512755391788029603334604209979607243603744745345989141538667279618441559883990777045968206219000620646980112626816917430450299191909147008844730825805423961740071048584824869623197543233801318343978278570022057070948258505367920085358525212208795856315803596267441571757795800470924701562136651353804857735734657747892009576922548039995985137796566439346282504128619536593794306735657879586948257923089927020801170037818635103931498993039083056142880484776980283962733257507508750621756776746438864249717281933663586504203394087967013029958911110014345893432230840167221439829652696606218078880613556313726963482439939566971527041585943562401371104698856034812881005380660502291575082506719641411432076688374406957588905418674362144844719171139650990638254314666033179371791796267600108619882065008321638841123531468304655424481516493192196629026484931344897676752976099555980921430870856911909142783371800942271304433782594225429427976891035114848082405022957055612977192653756769928829463428490327197751615242900486452908703613483202370041082033694775910910787242196838085795664632766090204381155110267772183316996093595666724738519965335933083483910386230745766177613877535430081059832178280886495531593287619353320185578763039996528006140524419685757316510223933961743078688772331434693405316752463887486417890012485422293224841994789610895460323176143359092111117029664810445207159700114084031086768296812951715091976594735974549325638572771034401278573649504235745175463098146781039838798768310657001432511144963584861640867974077094162459074242932978829231670606755895649706219850432541937969350370665229715630806786602791687427118724063578748929425248278239049366475945064860539827381118019839969200844166873951206833483172838074529504595823365789377271053491337986843166558168476757910875831768785079262070468682813803285283457331542880324768205773624937438534653766219909843819946685152500948282941976421192468956313864566933501721372178832437137861718951776186971488539929499083712007598698862807735719682593071745572751713794117710347564054126155690853693110416625507265839231059278831194443902291366294005066604481312144780206052404768468727044721486765233760384230032814151766585311957527149237462382055875800334500254824413451074407304547734648512517340648367694922919696268162231360761688357566844823740908595242231691334730388029751308080473361476980064810983308427318412290642220932087043733340829958054515106937227134966536975700288768639688541977039279651087159465209986157957680564170381928570729532970996703220286865770331880033719601392322024388900311954815191351360048866634109197892902592802083668348423576530350962549712919303605968726529027624964565970762286015219887919595561793791560299843102587196633958233347590052402956263974949486252750009802916400888804469319029896855921542778158119404087678339453657563388896842811077711517340049103198877931335559660171977291144590405206483360028508692378334706119989439549167326126413812282926390806634419728643546788228445749693720933802012040211243095966556396744648714340725034704773943975291901475180251304398599353334792046301252695116013525118091467663898090883034191514794973154103108547045334597591946323867394511541676821127517487755651027896538442238433649226337496425230579745768503189184207662215395850473521458567533757647749450358146420073066252247008843972823543705083323838309198278320190905298077389832942440325916193348690928496414990873166959978444416849891439123274379321620287640002898561009346922773879882779054784019862261451219398511516299533456099302207341776236590054351123023504404655745633722375885521076446994021986762191667278340509399685042688931587673970756539740095904988042952660923195424258757533670937894273136922985234782173088158628320385793305470530977352759807983561817013231712749253051688755669573317344244754173072437324492727402086532486509201873175337828916412350175879035781537819797343209064533984601428777022135994662522686594163248904022992702046560794995270813054162921888933543537270447923345136210578592424361733772363401456710328343077381534674194778207681302385818722625412568856742427937822018137894637433081860425031567706100704288926283853024344768201675715289199148029193578298456021499526114191667975389298104482983479120553582265170544751875558614794455432717856560696160931479016365842859095349937768061920367316908590821255252140003417186848411328679613962049365854350317949739139976195199715250504129370389161129810439243001759794639094646985008500589489215720370045428077838878745561321297889320567266156693510918844035469252718721753779715078665997329034715246955666114514777389842019273360871365947965433142169009152750011182311808967317439441011742833828640963771912264566013071644560561036727464939655867556324383826882642654547768197365194115259602600984637823750397571278374128027804666481092925529754561404483336298206442983726992672993999619487528935923107522463768324337629060059542153553014621839037728685091425568727268545636690366034957246442400468266243993957039882567684600425960269669982437649044616012216299053520077557286651242300075319943972729835141699582966897715415188756749465094293028687385900519112783000113646944153673512184273901055557508020619914135488819122453567994192127418567059648794231195712066599406995936144682591944961472727618263039363395975011744253896702385393199779809970624231608034660363452652704165890751593183388338176604342253479772640145883141758503950558377448082398809160328133844353958433151822618715163434395340802891195063951539761155685751138473548047517710745250713062769509826281610237507448005030861273468271613372861348428536768778771226945512178095803511995757353024618136334806449119185755292922609787850109764607147102130795348431157745562346507035208869208683032196162497562738156969606659522681074572481997405851115985443344071099168444932037467451730519384698462509718882245908429820502706224574238687428342165638946837232950765951479020504390323017005430621092212193037073371951491673268771271448214246102324688042367345033343188127033741240854948272739483138892569460405490250573708403506187940400780930692395031314687327118780244696360361371077366230622681334573316338798155338866145222533131460975825388877650801687226206540669502368515741153656354275198988348095170074806412846994292210714719395630686521544701895811389547290821917637559954414546238607693887576420076173684181122792175266804345388074819772093144301744844276650981389357954130838189645622748709542986835706481456150992762985367575014258963693505865403574962219789902724111632081840356645937245693148883942901714908936676893764905715927508557647090687590928912272046189155472296925825595944596334766642526169535547991287753799751703637294847884550684279785264634713163363457401493526290742762224386052778777199243705904447536998205935905003755671462035007439954845825203679684163897334361795193158399403942433926415798722334865967439983116044499784487593954503400991853137794536571820033281274363540665119677372068572503782897692434332928305134140920721784334623615869412823946466579072918036797393241887480519866547941554832360634088798227303915362847398538232791844526207546815517171266205654726515277470628485781352079299500203656414201274471612267971494368336353204783273669848098426973929747551652436116562715832049060126793671145566709374047176601708608332307634309728939239332443732587054706964069584864591658352594780550275220180934735068503471785219547001991314858782522429084718854135701668687505120743724899360253827242547210218788788613914628025509471039393506684198996960169259103979876704428683480918815147880272055636839072159005233566066433074932706046900418655087124365822383394435985280129445725887325236500309488310693755588134831193622707974373455214600790242561454733827791064556355898211223888238476405195759178614723957646966935056242277704606399785382428944791591133441754655787783199509598135137911839464834664246136203310498585296774943767666679754157534880066269490615105610371287792006929746095097951125898434548139256090704304537823170913928597793196045234349808976563099413309068589437034954937551554694397525830163091822228256992583348349235237210037994443125670500436189737435393852736003227678434141037106597141358535255728142362328274615288734141928340804268253299483264532245539596537636552139710029653265481478885959646534000555011000592176674247302308761448415412581547137638023960285188267950846459506176125641795468902240068240233951501581146166299626395477777792379342514297386651967852528393634771161515075777865658887842259499447718304741748689329858546353845344180031354945965987590962933112293310476751807041433004634586952056228321191347539188451453808085112973391419474004431821498435612586869999850470843009962002320763711007944696877792839572431735119626220701474553582311938736047006543420369461055416318395367698581960420253085615921002296202912237310047235135432135966956622980676138615787848002788963342336105322939609602474319823726037885463584264921440332434552914949079278122164906443815113867887341710919681862767385724107036811518021068587088932067632625075832002388292619127361330132891101774468265759919082521240035134216647633455612323736994979354585718460544311132845396700540469846784338144172823956592770866593197822538220990522423871557408737029574246135451332490939636068579815514714008433934362063596111592505573149050838369022728457903317868119029151037765172309215178055888194949868428670174304209744515804863425177751326689853515561852054169609979476454739291838717314899891627801856713922739120421712494255145740311423187428266335722300062442307470859593465843947156581315582624036494002107072932688125297029307426299786021023948897571506447585435529083973679051287669622758443898798377322796708844949607793257670044798109213597114010027579933421627720491669164227058830915507884922672199931753898817974943356862986104706705928819121479952777584882846796486204438445388601894702084925059526555778553035830914451697389116871801156467214421588130269549056415131200713448473655650630422988347271224715939428382902544786847632154309386478265349336559365740482340878286889199207421300375963802485141591039541063661798568550279170734412498477001202421227609614403251170845241736051756793915030776062576936613265633754153785874094332601136879167245821013682423312882607400587967866800121085113465310070770971119973486214612864373287556281678727450593732937977373012661525645216733995573472808805579499858306535766881882284686032597183550712812538567710764819462070789145755428943313386253312216879297772779793738495972096714396529540456892464340308447082286641726697901049075886466186919511678357916800522901611451715405505932412921250760767372129998744332437931931510206696835942263654666242670346083564930379651105662593651279327501483862718669629710039642324160337128816265067024033681379753687073557369626693209188209272044163626499314390179420890910807344298288446737652359440954434848320842895362143781332629409538798800036021616251817278613014364240112162923307698733748956045385888215963499887371299538511165402869242185447295156080970516653954268269864130903254181665643266130161192629188304267818379046124016462088700304784129263499069727961888593537339757372453475680709196794465265173652435801939371002219989458480213129447247377184219490956930932591830884017763170448227828112641906343795800029113890720174991835273737182660789001773330639941765193972922450543462286590508867080254957752741500934487010556710550853309913781916655428902783891453009395739279473370023875292177763687185837863052607971320224641200202804138896459077781492050856114445703175772241863631289762333828379914976334939936955974841178512712061677395353349121494304550308648868580707473815177922148121418845833654685189740130453074766365896197624865836815862279783959094151558361724283555846463521091845002536642553076618682216015748666572303685022952722260850601770354220448867159599256321256169311773233070243699924468998114624317454180526951147863009964470849127379352575108420854476542822203265928819337154457624340563595313585744085043189052421914784178343468241057684193098630394249602163148395572929486201829028335488708847943027107002964239260934501779169926879080844317663403344240986183424738792318804385083857343050861321815158993743679595290354591987098992902267202862907434247558746000835427053845516153468521398259143331885561279012827140703246139739870537290914588313619244384962373941449076817400640287699659343043506538429419388905680074872622316425638271676200976087339670405707217920992430815228799021532037843429062659505994489156335931615796074324896993587712280773342123014836303399626827055860599794733467187473396012903327038472452807131995099361112118325177487561861613997267911660878987527959047159419392621130436084076010841639459433357561411582098811512891449548314527366055702892196085863494814653767164393398215610948796715526112004032294596986768716239954596348922362429150839878386915189233886379064368933868869028995101291872665549079326884980558812176042034199871463646015575848206130268774256993827201544822679425221490037684063541911131120954848860285065049575952309117421228463940960111346119003081987185171537594432933935363247468124658558416724037953820400864467067120184637339462970682227979879557390839718676365116912954454358826648824186281089631511504322985179111127475092656781310715166513106391884592102312650644729295294864748035075343625276364211111757263667345324049313670073430764222839192209026619541641424370667826616504417646657626381251841241940920229313061069366554440057697169937723178179870739593413174296640749761955579925414749165447197613206493855505776091562886610636870975401912334258096957913117326032840710427328879354185779000306220175113929394213302782228144215853894290049615197119435177405643125228341492087378642579041793186180794704840794332741182311363254827792261360462819943244286744534589515003587187289472171864020709308960936479210905530391112919124498760939412343434317406900698807720559857200376015926997286589482897392451758576128007699946946039098079421643745004792999842884958638535580592416778170920361520034221946492100922469499683612084952726333320965125181949210965411090928396805472551324282706230883181004273346871864015081893044200805572036541893328173049291711893445085863317247403680121258410688208542156749780064508124312473316360825639581097654102640867929811005443171110409799335267321678164271312757923669940026855739779390099099286949267489895946740119453015969293903751137568747239431819581469492290261903629055476494340343135687077781607471896169967268197281848987974731354979642084612625215646500171480375491593268554435240830319511217084609881863266138557830516840941017349119329970749647673766459213620791313003502288196967935099468012099805882702039652430356985881710110644262504855787963730475620018908410131145206626768177224363016704839334743048187943843974788009406331790132697826951913886641190083525171111558764386269317727912768069559880672475256418554354469156015931527717961763389442276251833748419112050126835440636485118746059343492212971229777509674275970448770713211190551168224237501035978316212361086788682419037555778264209285409144502773298133934281506397671916718857138324596361177740566140912897712874383027032177588379347613183536197801443803769565785707673434701812408678616785907884335038335927100492952570541227122193788614577275072163888047619299471415794339212352984220661182935590945066742481316048129960066702276666711074562701195552866223681274958421554807192688694567284753683952472186774906193388079431348185937514987992833677744622826333229530037399281367043897191097074162284354803636436878757360495663670107755159154021536789887530635613656660594126070217337706672887980990188726075959472455397426945654190535162466109824415195655102712450261251780567475435492992920850787782913275187411657408752408393671158424498871364604017996568100193592868716910987975509543201565742555452154932855339522546630921081532083349998569691209526096463766569771917381634631491277706035062081258556541787832067091294574167990033514635295741446704386879402818829329765782873645674967303910960155101723183702064401502075772223863977159185510820796272216593086880110793875832989741690987518879499861034575808887640223313327449624037046770609931656076437481172923212071939077400749388101037749147055617197657322674765577432001993527976106904809938445698412138731560701279862625532556923474344237039629992203868905192392527699720140037796677833829333736225624372694960302992884403394354140691072509545632665120677768953452900949716071796216691125890876414260046107586504710990794312727085984494549045629503051379059695646347704428772584441336987132863552275377139025142414952456593715243541269548805235407119937676784314271899663801766579723309290387920351301548968343399717793467245084822294296859525264910195527789081806373995446194696569159542982849261204534493836528537367532311033039178332180243526776172204182256859249657585091872446696687144016836512275474307774290494453947182566927148412580154889352000936559537211949674575651783128202658207055472706506297512477068491447509229020584308495855552734598189476710933941530861658187299290684793021435317747981815639743881872324423026520206510640543336904000598829065123333925547952957641487904871421340710794765958469088267599418258957515965689091089416305013217720458889683815965734782218153557916502508058773705271429959640943218733058611396308755667357059372808459168860336617026328195148427508254692757096879119762886003662037902472453053392772611231214447748072410255634504548948145332654541910407871887840419359756471006014421761071416217641232899922818460555731379073091266462717138796839359238619631596807295463300221552887835685151458691857830386830956234726533299546149914063185182719502225412877722022887817482743583765415771613326357451827906232501380059442234171530645908967450060100894363120644607215557032838562089064311342324028563646015991198537454921356335240546007243327110467190928048179863016888623085500334026494351201300650359681348176401225005110052914414385143115280703969073270140756042133514626999475050953601447784862683923875181262297986273171367737271990545514174897865539153564074020906146939766390350805087087033475239084462497188209245771998919993406112613955396772085816861484474405816042614156162589950257706955134246061287929476482745480978790588424992686744352629689447770767273668216986312190270687866380256291129114682661205450293038676135290351393737337227852395093447157497424138837419867252676210776427375375793024453549855003648249192987453464088769274790773819658407411090577464067946284404915800334644413365504613988694965826795992888082959788530918628114558730063088883541496695676767383830721606874359453676112541357865094231382108619601037338900888277084859520258734413372077345341444669490677897663295414787601481727954609589367708071436326594156975702967642608328479269090203301885622362813873030692011844025201346115364921525556435840210954173459830802124843599883135711868144272483388250208442748388716304828737858224531388512870044982717412202523282258664991708003139688039366757866197294141640812890067715665948844217471263755659048138758239796168895063652667606851395344520901801799652014520536972100778429167983890403814708876401982029800622157218050727264676308358859471229446596481464216773664182994410808952997784203038480541040884964052252458267929979058391145476213049297317491688245804019740398968917992036036025930573696528389326628057012812024348008590254096587419568887348759730394579944263804488378952797565203776741879562715529095574000135502417655397398617876700472128658129808624039532070469667907797614505110179830099761738837303083529565527595700425118698921577711076901906277565614458751318787792608467968612636216517270057224942037204998295821586910610201758945873873414435307807618015507457017539494516862250488912276935275331339185219407228471932463573133762833022467856708773244752527515162996663006834248089535474078889715469367779754115724441440328765549080555528125002324835297234920346187797280190756587931111643495310508971825692741738090565943859674501284398429588071158869875549837267088724314728903410406064108222197116250378672490342973340297177776415671277931662359900851341836026251244217726259621845818402807797507832051865165046578913132133022954430184618803794599022178777134611745492583916020468365646228045872002593161857526897507878856698328247152753384902538704722329000027647154208531674294880309950430598872886923939724370668746754362299537523451523770373217860725606065643809225805135828782610178890598024129401647721207050224303250830225608212680371046154478895182320435573326462901980713028942192776549257259691884752878367731138485785588571672195793785227752859777600288704163725822495211043086742247154946486453823322488599782347494579900527069222142456902993901155884571290639879511286562218214383730635543139237210168531384023591097475346472700939393213103285180705884363648515825748593551023964648411003723753713001357855639215670444241848076175415133900683067266900606173274886688160294380156306064217979838620878859392928870648129965148001532910043311570367396954925808816370144347593906758949571647420833648983133813388328963505311289479295119686075315698934433652960395234157710069267184471895123831177597667223070050401501804985452400183457213167085674324029183963123702533767488590617025414871475933773522095936766175791512457876391523320743885372229971158868084444763928450425735743299552916843583905495046121975497740699614989144787402119282591129104113365544534440134724068464872959535971557910264870610308306607770258966089430028067287070449591015641808221561022910105081173703358901409896568976928942568593482973210320439187356212040955700690171992040526358918798454817515713182275816974811167449635837852163213506595710407583767917306613950170499196792917688488804177424435754143081059645051035164337807331324231950312450687640283362635837915224369778242882420393310822079114707835102347658543432211992541150573135881355557235510821027624262172397243989777825608486152453769876662601867263294625612926821186239453568435770893464615983610287933719268706400118078375014193064380925642864555617379012393631546157861753559240416434648394359866202569604464733287643109380034237017281194166846052055075848583980784953515215869630519229551197233118251611199613943121225070384879069459214190464455392201592596297392601944976669619607912327281214266921914125273737870289895307045989436307312675912721656083910770902411456283367405970655107152395296798534578416704702566641173108599597563193173572324583254307584135571900303047840306493195380951208428189766452368180501095580571145879765904283353012226147712940279147120338986955215059424476590989964932600021638426047811496316997971918226542470641920797780477391439326653410451980413765234927584739034257789994058940734290584494297766046415949157065117969158316932632523325516892010674375764827319956481105299564246177735284806426184688631172165313759667053676043131604145811617726337875766658410241445573283785987246440113543093508215669994284329588821121604143983740581528090014724243257201270637231647083450955449532470847263773531258073552441493775567891807600363491586441761423824593940776502016125185970148998030983942845692535836340005117922171362487072762917068527163191420455780229561322669946453607347718291213658447788577030812385688919253620362014475668074190130236413368190201301948358649807090068818967744998037093474346263117600715113091463981386483438285674320624308929812284046441682598672627494118913226757695715930514789196229121365252543809979915619081800426050062439324587982052232767787491441775898077966363471952794315478798758627363078693178807086848273813930824800571986091333748235560437679790655878830647354346195194728937825482427878804990439798028548141718909739017136635430133323946341023616901790558177059504843316726210544713452708620832626071822205439137381702626845935347350118913687000509498475041893929857594147575932205363308660282830806922422307201247862040807624060805513764366553563370897750468295256706643436343523103499464821746531561197784804448915460423510755905356529389236177165069966841766644002081416952693437372650693149591336270939106521716462143068142911435488629146637067831241880069234506924548687424493237812048227221267800153089782087222367411148065144912217283978920095771929031049175966584515073648817708815703685683113379159423906536984578990931171687777875548705815255497768661196189303952215381213025462324571910150267312762209076980818910915219236248571946807058777375057392867706117000989163232809399957150653555886234384417909800716749397175392305571522533654722769085895995097400927787670204290058187059901075856315121697154546059835349047285995409956197274731993845333924665363588593162715610976098710296161380657974396574668094336056095508540013549100591506331731736906475306904063124270761288280920950042410221858915811678551773757638311351758281137527372376143625637873729843899151766691216752571484420001668030050626683760349069516719701418406360335112574414873256421388940446080579677557142648408670481540465545929999509715771504189193619606887505751232422264692222488885342186278342904394569740606056271187115574841659500537918848495956224553122929215936412586765024143933585672179649397843394104128294185444814632809536817632348556055936102389181382665286421157534382091828278040003544996374829735408970710219709100312455138826147251758031203199352131065950734089745217930478614270131303703975523845483433875578563930856808954140179946186768075928272781208199379712935593741027693928292354519805708101583468455199811787062674529726386921976732246827693430577999517787389382067497331922748096129626278572583942842460846800628458881380466447099972304094240135519793777180707231730113399467890833393340583411702392709442181098718793106167367393588380234515420654559567327837393649024162560559510796863729373023906304738182153567572963991773364103394595983329900077346662634751501183999618860536363349736789037337375111986335374533665834473413984746708543521561543160159384990579270963317732990812200345999251995949024117739763696349235235265543165292256494648441109762209273822174026863114512387016629862357562688291822433096714993181953717819725078685414314769538625353523185501910049548041951031440529342394923155051160889893680411963326379135828117883261262963713570650562470133010669834950793421551242673769764555166926812654946582509045964408190534341445779340045399612317254434768136799615998179365516850776083686082100484015856110339624630032848898690150085193970675946829481008071939682776499934041975761227829041085629288423239465941982382227560559834812284657468107664547174934149086100768431065229301532564300644047828261883156732312528832477482073668578035756349949324478973256426198483237943394980639559283873410824120508689056006270755644303201891304948182805426588827611018844956508312807905210444171990491056010391923898288588742755899362745434250124817296574668017783829948775198684449495384991071580098892360135810631398842483218268990944751386573756532572741473498071235501643817248741647476027544228659353935638336724558538528344377424361999321633497133484969504984450096555446199828283699441247030788100880626754427293457089708192877088548260270568025257778696492808614176190971674625635700427020860100681635821226963841868052375917396068688829767480614628565302040838628845111328829326464477351893476678993285113014055075855278571578148846314408054990902963659712264584692473288413525014480869874886896651685955892505158783997199177016685362116943285477772320691242772552895775112781930366842798901382639983658459150136919761019189295368247205884833021779219155498954663780482973937020416450393920407833306634895075122309663661779000728055063461690791782146102748959369915856235385978380813477425237007443402233363942628672505629278039663256737636273302312805755815122360561978604336277911058273575390142955413182603832710008859679165965156588979593092020377970640788419825086362599896010519507825408123711265603391803225495540603457194882399864082720188323961243688593391237148659183390950599916068724385681988455580665456795001021678326610943262957102430347861459437638859918250524663004953943579864851868857478603527314027921360905507778651637028269567298458031638924041744765466457601881623145072171399713849222932759888557484225415581359065499408236348521171173260852771950410229499502826701010961977641857063401324350747010865743908518496744031240449084122701194500061713168543539809411958795027135964200511634187266798107215052340976901874582456914606686093842270652655263215595907901074253182211320560130218308519133658014422846592409947840430714395596460051012150259641064106905389609872837519765958031351929938239027773083168204135842263070223044898288816427664459291527656338925385143841441149431583829190036538847065174674133325975748925164706037303605135728165669038047837571921460938664415411816097489535004083189693774727305130879615394390918524762679300846897754533513086535851876799701294477075359008182302842133579973143637054591415391634633779639718480630087730269057975462373576091735514170867442416833676663219226078202081306997690053416330470461011320326208156453922346438850906040550410557763678855931111434648097277035959975605537287159625617314272056770013510158725834549541844080887524454714391927124090341196508338609075899813298118133766404801539076384458924228687744421305343034030960758362253043739305703878014332368011886997849716341268540314629636272162665416028720626409818240222397475881377188749885831069812892255108606388548420792862811930498316122485328329483527902707580861828548109080416291738672406809520164955208988287241322488676116400025903548171853329900305441755539571235522525202967731879893579939114893159014662946293663588872585040687725000140139206561612921610931377568951880433388292305683173069099458852051999902763081709013364882553148028859309155565451479231397086741393947588409763306789819063595872766742851720812913426148136239774155538254467794027903102960474251164323646574969277807197786050427324017461844953823356250322276839953154097379917657672692739759294175252292385109643576026950747602425301211835850537583458974638169927798921300811148659036717996758016033424644594424380155006346007214665869075637195085610485606475094007864771436613148074420669690418314194243901115427990673420604084196543714067899615326499805396673904446307519230685998300973179296060123983000147507865091345723502609057637402450922742440457013193481753586575743669513662173061770760415993488591245751704704558121842158425216237418502494939428397626908790907859958587340101850238371600999623962033617714009544479354219819136929295783034411135484723644696209612943421565500624028791505055220787707845181752996268123573628638886063126713040068464890964835737095628879748591653365342626338299704536267847718687001815498253591105131845547732201565472819924014762417265417742128938932101487930167328226598822670072865993017423897596871280824428013321078351759864986667053617834213968396205716998212790868374259653454577152288538328465488148157797389582141639238966566128332219202728737219111656959854736815333636913422709820477383924819555798292765482165281430358456884850240773126247770858873712020188163691997012191548902968344893931736541322140204730275800943154396981559670135242444248201649209211700185992036101944766726919871006280086940993952660450547195734468846301963070336030275233162670302302234467961389443467689675675162320858714352448394347921432690239826357708543071953380165792007398988733390350094846017701363760160600444999920136523895191422687651956212996848879532324696910806894825223338627191527476646085301728818039957090304237141420908762529173441515747142218678617839704599644411577156485779245723347814170680116471026244700301993257584431927866545648780998999409431477487418680443015463241055995316076582674879862752164029261547248107691208942410580925553650753116304952599381900866771523554746918535250856619805530624730624616434973312103240080077154079216469838941526647651347094193966547757528705709771709261766025414940594203826965268144516944072051059976405820473377156289369342909382577773268197416698159008927103780795005019468044920112820649586958648992352930619917596483497106791016126524704438191248624748036095551766679687202505228439323592503434806775411443159070654853674746510265175304277792609630555572014444744616293495708377750868217797266318231762148984603410799041909308444571532928989532792976988003280447055666202662127450882489931215101357245244991472074905428041557128199504613789431226605971581405556260287921782651892096242100841346382072828540779818115779747757758609755429619255660585757883386328759656702370926451978419289898890547342259067953478690219498695844431778076227063396895636492923250396700243208332659131190396840220258218011086005128907510051058483361102687982835377359797074140766667515188004527929698493756120945985682596986507265403313411154225078216988506926849546186452330216050526128677930471661901153071843077386243770592192646105188161560521686602927159765602859478822895459580207850601049455431999470298119546150623966573399673908590735841866354145517325238427899616768081293840069493877988699100611814177680497841618483465628209016519517561157461332851851582390963339582292252249451931220880752682305615526492156721384067340521540611019321024896246342047257021122154026781994439523243186672342130567431319060990205812544163633432719709793647568302520211166727444989087841203841879545591828908227316254903808437493887854440404403925471218077148383343307312191583622656301260187697178926814616594359401883993236355206388918110348284724672597099684547039205933261632519150402631493951940493940454335965433099207295598234322477653454879181019571958827128407703375638243429323220454152190071850023539805484452312076407398460274106382949438535556526892519418428035239938863307751508292089622710132933704046016499378347709518188964551627973963457731272422121944929556559573169103270015023970982182801246831763061051177720284807707572717677082464889468216237978212887363222664900007219397840079595094526473274229898494722077997044592535313085742730759373406095268987224166299486788213390535910458724121845883279064416813788941284015463985202304900717385415625796704669340439684730212344691775658844949213444613865181592556151969466357611851231024449410447347101025513438904872243503882708022559538585563622460397125996470703630713743934679566205552251682415907405677088471688862035692591145714470276270465526218052623220772967680960018263733339997355054050557658668425120137961103648016347485679456854573959950440674758269397780195928603690646220610911356273059582761504420633227010904512557584157751119390435096580184988976510127899548439671327194532969471488309890038830680006725221258319320697211654479763977357629999794283115350317985879787655608578352073398031525507390841637746116488234211464199246394937139261655749944265128797603777035028241153814437814492215504312691854151468927970891910005710748354021237822517963696553682874146586999781062979753230406701450132172885898447529085471745033453985071130923670319690013038998595079114564560518986166537343619954435243642151866790836655618278610750437045830059612980533540604451405007905114530106459889765806375737556286373948583700668265151580261117089453868266299393347686464019872505906991270753925562828353284079896101469083077170700326442783318600226289220618331442739244110514829138917003198975127612073679998359138869313555154083216331176035796833429376707477599314087680246153482721097149436490339537002449523775588815751352889682725536749636077621404628615587270408902957730886966379821930760314717825504893862422773047213493076790508683352200134143179803584598722961348579359765254805480119750846092567642161655480744171679771090398544654970117307324195072677582805823993413664683960660783719770688433566946913611965384605422878408896734188744501097068044587208758733572418976695874190620247380674761431046370188760394766153212336714160869155328204102488370832652125060467501276502443023906429798298486977310405815576618192854486314370741638674413585904562834200041467712649230449196027589377844067862887450937443932949627846885575621100931611675279406912818513630449911789709181704960541709169089794511116861462481063609670982411880533112423829091983244656180025749031689074306336523041117083040448671295584490304712221715786722454407373839729010951151195752186208757654013381014535599108722100913682090101148651488847823237862915557954136219781204529721022279336030281916300348813996119560350085128487594200328806992594549966526769483013020841304911227842630947522586088005159594027953539483726335363473242555098553058794881163569925222259880097364076177341613467349739805386193453105124021714697733515984203736949070097654904646693671194279674268352490470824021436685212475177292061153096801269180086202040269301508504964322917942482895418677517176951664382101697800754226143383684085681245595377139103448031256986593963988026332949476693690623045312159705980542343457137744806735966107598733070303123390323727880227581538248811059620705413612156562148494224846597108542827700261479271303718636423680389474136715711175311950392181472763150705716313802418648597740949422877360089099538393648286176597547996108413042644482754992717373055347358006584050979027401371957596738529572812360026203060132271860564540711515218962032939394064643323159799136323081080749325704961486576729491397299948656805514399898416692948420423506870171525898488739681934505820498984153085611166708363310942783615283846860870010388701088328520058472232386326501509439287435677101247756894442880648291616145522864753617618916751968764872317859811659313965171629468428151556040465780749853574760158251228383557957555090623976495094785682183124779331201221775912962436497165573510497602404200825202460553457469763206454506418943946654078458247684345310972308742691361477162067834067967633106252049751920574588869253953662413074105169118895531318480540763423457038810572062935813323865162557931673073484597596537944984170081594272602800743611237315275050708268135030365247561552644522561810408335784468347102086398820695249519399624288791133717137675151564042322772680067789820065892762214711836543339268956751643435340524864593840976980003352177088293054910429570682410972310701145239917888582430624306243913105145785164380754171519295866898756273163887430400687212767403855073178634273132243120876540188099032694128348649414371358747054855282279447468180090991902169824133168269169335044008610201729336871596846195101231907089067794108898533411646020132310690463647296607747808867750250542288957619494573434947618996551923397937042846526042750147893744650145202855793035052598244722761007941831266472974574928039352957742489667985830058174040539744659575326785389217585498326754230019102506979543437093204756246572918087113318762910451570444828463036181763214947951407351824510611785755974970673345577970683018917450957668998368351928057211617014848540321862564499137955257300280689925561761256927853651196637185385102061440192455460107379026026186713328879166951615284126858534978409770432522222195119089926446997180447406225348500689017088936618526137025026730850393506679966706163270787898710955173249372036314233213470824225957770223216139983330476059162512267566153251308524857847910834927160774204468952562969276873395805424845734289802963840431295445697150168647937303298751676558456518184553606213406639915666511830852939420263477958076168511884475463105895689952070176821819108019282351515301669013925104656673457346916836671309877376306765375307236660441205848176205984813331985306096812019526416624229579132921801169886377348080639383035846121544037019682253072207415114229363636092708356068759574413129587904517920374208093694722058364165677671470756133279135242153018005577690998771131720889804273146153396628844175157097222309621779569124421672023692974575867811631616592186434237462006097108687804811284000623802053572578246331175420260198262121651783235713338602840980479818066352603727346621036251153742432804002180998406962480035529661670284580641332745509526994996709748456138160785429477753393299859313989242056712684369236395521492825809010950987882814115017734245437351653710316004780563360953467428341310573980471460587912853895954481499718942312354440629958175238677032613544278673469109414212009089713163223272834944623545212976798820481701266892443160249068033272799219939099861587075852501961688302080590879495290632047142543641318900719181780192278708116657484529826891235353431487040076652112302443478668761137306672604934422408129026232396846308222640419741337307377128753160344388410123102072859139945435972851634582496430477153406993713931775536396896412455813194255016631088245402533597252500689654871640367986957363046681028106464706970193133014679085177214455082168606939333337284993427949500921196962137649269725819402443466889783911988253727856459239095373251969445925275048427030904541093393573227980535815351337331251832687949650550280666560876109058834272366068425136485812759376337390394521911283025345698960891426185057778503287447014586825159408272666186991503042718429385807263775036255547603168552667041047110646758447136590019371162792937818932468914761174498346478426566193815473964240646871101878525593467650333628975260323480002623872518755853615104683990489740084803703776168117290275679013398910240091350589282634443080994499010736720377614205667000487819269300320621892164465338159936119443707871059603085456393078418094065191389985231502812532551516134721963821770582349060015016915728613441726837123315034803993985616467876458127652823446729743473726587015813083562359058954930052985801430409786085858076115478057868349952975429455678663746195908673584492831836061796128472969849985878418661738344022064867777057952626801194781873762707557148520219837225571800233758683108980913445749700350621646202154697302850328406777595754273816196093941318592240385025546164848170231314626111965522985664728051972487349007285028753362632971767911020429617795200710562977084316423534603892738437016824083092519287040130923497273308905939648393835243459688026953000545887490666632587809003473425835059021158253656861792824283917792308205445631036149339564026906925981813434983532637999838252963841140704920405578663738554500168609355781683085428451970072644368883866030869419067376179455291938484667957284668599414184951577190868722579850940949632172676957011644491280140656819424512880649537885174249956642963390881306024748519626257454610684992223714844334315880633742022830519725715559485461034062345179409052850314501396945488952425502101159574869790730997014413615331202182695452256785574679822456338084659496857744711799780977572377141221791244055405786971124272162278149048409454254530821738059039984997326685738228985067041965790500598516775096164891081156347157552154837343343474769564571375540862431144583493438694043135986150896551294189638664678055018754343742099736886384192240197743361165572893701273112610701496668266498608685397753228217970110763599474839795356452355700298703445679842151162048066581540849338718326650111661929889924777676689105056686529922915959678482154010117176915103678251163675384624693089912703536484000798184629010390271360561633347106117576985798398492972664823131554152472049305747338905568933180451823812582390236383982692000517259402240383963410988345144762894136735131928557081085491760847432831556714308620847085997363254786922241799080761119584227590131308950949872758134619601101438618280530694998780036927270171235107243119936103309967084224789915165582992214961086150401814474518090739120683719719823445530514859757895811336893777152884314385584991509219742091175542064330297128535975738823563205526197726411104579059249323538763597666101266778323082497864588397554703778038139315908655665196582985282480345577941251086477332675689909615464154643064801580523589837000336931277945687052332224569302338881073902894873115513003280196617003389730298177727255412000703759110783100481010811683332945355006088801904305047121286810883009717978429372545600158564616916079913529396716119374033196857011092328729489188088005591572644093372832196835263623185355347259911216274807779588707146512766403577603745770277486914559769238888254631047613049836986821720957937805679868365067191641679277411229555606997030535957247900028919812101152782158652677658021230845430506086350005131239825697417558776714595925591107127995582898661820186126893430830919977399168049056293918350145331587456729520391619119444468668176153606741049399603806566711449678665010268199072886491273777397870141223330589592964848953358616311354204119185920164112882289828291588482202995378205029289278613998964376532453622287641012045021721669792345114032258251252034432071044604163023483831829469130335844363679866981404939403323427328989591687557681478618314977499141904133364432781896102944663077478655620912583650190414842729188010597015396357010549223616294992867309709760236733245653759890881146759202022537653709346399176152155094863251063906421846137288137118798357156606618387264099907991862858816264105161009863747161768793891720755813235119511208910392503422639687656819564530440823923805725801469881166865097068168926238769052416403014742392809468065495931926013476829334629586714787374505865473967277310901094960903190416859497036332691973542763092859083289991453505414011756715536286465576065494402588227837344494880293115545179446019562051189588620479674953025114815891306167593775632275098249387298960543557164357076602224244760676119823489102350257495470988523452598303887766848494519682219555814774675804131395374456843025920305668093999222393561131168431096996217284711074082979448021119896549993975537255787976683551371959646944783019857827664862543658134818212917069076515407576029871990839717268609844256852212890033481740599217755312803442104745506434852477381915322396038213868506733785209563446746244569488199063110421252345933625643770508315803609869955013706713918505267884540987411880805623870058826327854542167256470388182644549695015895504794805269561643095411502680561323385252784492035545620741470456357806225585318706093763144897046440496250541029736571145306334741126372868125800882083935678746157559900287210291524028906329135976761510123271785893149615269996771864936390835865208801071197859979689913838427161074425985062438363100548173852028201363882912449918604095340151825558769859330516237547734728620447370417653172965414912223831235914569168773841605102277577671057623566042282186414737413660306715315420336416434157590253777266042004473225374378114767878601406931179431986266742278049392640327174810312622941560336670355726508313416957071970662614869488646638098055026524670481062204574710573373509133439577471601072692622010347739603917879766983506772270804311124190096793881888898012035312151827977632658186999001802163254265517596145998348414599066826964024616334748216721512153862272415162697789321989129562907649990550435796563641921405814849435914661352590763051737101061167278100422284868627798895742486528293859357215207546638489315868591247986508475403158213093269240670748544162113358935980805970043209749282453194823284578470288782881799268166611488068212833733626494915930165066045427103570559862901693292354178847620575733640157304159645093977724707170450617355154273521478595030233855639082254673868003178911931926930642470768288160711145845790346395690613177876310755434273907306677674150168356142337673874752159054811776547176706293687606298291897348047926358976789949866806875052664663884845261929254673566351160592640425221280694546098990284962835915839509578398996038102307156535336492599303514131743168733674130479501926522412403414603044879591144277762468221460248472179825525989049644444603278776751516496240391385047650394550801948189823238832538668586615295377691193472744049841559778462386747180093103060668858689807365520632122216531547192775276172255970261770911467545171257034122477671609316306568841794345554905987857655196485610668241264284259889962192249335694607332352071090938284849387120609364478669272707809097116787957128023641383248083475018732713943645198939515029309518598806887264045619008608112292398119270575835154768496644085041252699860859909849793357487388312306030966099044432889822274134225606675820697997434429928302821748657425309807922465560113686511252859201033040605878860880577847095600728506863281460156468010881778570962439695356012266477593438674107948142330726669790229303597088016535755163668154589973178382789078590058931652476058648108031356501869876986610103315030193526428515594876606935591216202952632633076905252232533671374623036349253135977408838660670523106958316545636592861107667887101059877907822874513942508773265496481733884379539873353741983835643789092860616932601750511248715365980343303936559923540206967798812302796637429856133813511882710977751032533982009067627704849107509807592299237957129554151325458898992493181438604038632234175193198561056331858961617249164439068154453164244544245373714477291092603723431965403639285164022741968321842183939391038962351872839898548750889439917591707635484245308447817613316789672829292268983389930203056455495033253514793258281542594051877847453455059921254152207602793410252177854282063394926729147571327430689109321217958194596579757188499675928702120987999573877403353619915768375662025728962150100934653603588897906457644916143746651403923611276887715570663763053325913399375095293826523636763222970966819314019539468304729668384302997820641157776569382668091722200710866286810505740033663358935539174350903924211899759216597037705732905458919920732829882088136434070936424152221161482079492325314311106612176423717439204016174191946030099864650653112604351905759025933755725492404616636232395982358898413065469673345945710901060219647437287335670345350348461270824472922670355716089468569826032773903512287155846339949025430881042364216660355017982114703718623846970686890914720769284323736109702960475638998383085345442860711012176369718977858467473486939314365835616735964383541874735787723779767844234236702598033458685590750691731268459715770748110338085583619637878839031990893456024599416326256856347712526951934118836142264185662375174656909835787462614730652653952148056239950678854789417987121634674003048341834741920735306796255713563023687868159804607773939285469147218492740221259914502462160391911891401555678258488608422469429191624776554455667194316012930995059022812127342779932423916442551866440530653538276147984625549363923251262121858319362160893171314273537352537005587404401692152231343553507833629316263061147486708937254291494097241279144863079685011490512136675734827767164831204662039535469141171788420030606089892753457905438558694190307716983790094473224031710074779543077599942582195270540754700167455347084197040686839894298366180763035516895140350728193490151272628833015998573571338279895555292111657080874091652222156227305548327898670393813896438861235173941539783255816966423549218413702362594484620583195207780948514449485459842126707898355675094884400490086845935770294960843352916891809122703369554897668174112191295536366783915487738817732114516372979769419457875309725326615289085584372909444221474817755831837961137975509665630109965878234159280675652096216075859025757895075096901447568534592651184291875884470242052671574616229125392481932116960301328490680935846365126134228474124184240475740964668197473743104530668461153763690918599535655411156482979885514501904262064210819575809804570884347575381286793167649860888296988246955970652951544666516938139549033928749451373047328358735466618179480680743303278234007690006861770699878929624888753739512333198982371062419308056229952023311916049954433221824699474547263544507038850131421286870993460019617863978221912291101521699140930418426333351009507124428135474042140841192665573595575345789978220017791833263024813560360910870285248096459857596695968505020830499054378402872151046203848239097178489395628911724635934379641395889596904158719823449746717610367259132467084705392687564746902170091120303115770438375411447511054531385453445195034064067678541835676684670550849577724344830000246266558806891390026182131022897487684256950910152409599894086004766707919552543551763624666467096200729512065159892316547624390700012105036834392882634670444276113209062530162816382177583720463431577524356927474636396416621028005333594302527098629511371725441080037443885504602165700088459136703307315837500151277237925782915787193232061781133659884388376896091876154771039381227461492017741429666314196089297547002142875366808869367887783121140377885697659878455634878166511031557154883511666720903927308558951316818719650929882995305607762609977907258982673675634580276878122273904590014399409552775334545247064976127818912459592715526148652419674287042659769898196914484500064088440060342968500729421185234204064807534549829413668572814330242401215857173463780555904028061167646450537951699218113722131285107928233095390936437720701736097076105046860949697434417318542103689507910289496053353833425783303138031995209579540268061488154760809677533789452210299408586917325759814455117021643365463286287705205602551724659751741396311410525490457666262568415067122603742889141066847890164181814844382710487532006171107230559658835817231639504477878752930498618901818320996253753064527819730071243009583954391862046695120107315578627520338630765972307666875895851687211620996383898916473926819448731680003656162609382463754721873790348097582106112588518348221475550784282882213303443914363939547416738332883035937969237870538984470503789048285453233352512468670081409106878607760177910215388580512300302047686273221775806727653880450934988701497910542539031402971016236324448616372156632102786819265121123611017368168753130479066312080739912750437854988264242757826341329404471802463032657920263468788967600345874112881031538888082101455668053197745698623293805291127483526496915321030339849324789360519781287936485733527484072337572406921178518698000641763923939540553492896004546856676833328081223937128337132717730505344088304722687947631767758122726115870406157994852545224003974119385130407941937233366992063138434273185283016530755932486433783954832101406091802274390933499242923701267005978196702537017032230985036949215717413026617832469746086948566580217790076526646866725219411476472985154707719754915505579596147659018287740456337311857913252834554536913736912497023178201641981469746432936149892776545675539661479273272204767049636453568840486456507344192664269180653422896950764731725302522477424155123145707422615324071375034025333774866995684207569338954846673056758172631233119137122530193844646028360048162300635403072501008865215754007372612423346073911033595532240913226243458530688311448402093484077594938226916338449461494348442199645656535241432011552146007440767633458163554611226692047572139839783145978788265506391852944058572538873591577170798630455006780816695007264543501462215664502888919031331421221202135553028800618220113938172301031429597984166970572559216262794303014357844966500443602409340008908548064371854178882421028365246992083624376505694917587661821293901178266245270610931211202693510005311052232435370830830970044336753133270398376083520105265210436500157956200429917430137247439689288575828097338171757854804176870707472116199385715883269821004508162047961427993803916818340843845117328656906860433855561336735212025538421414787491438683564421898254342064292556712173153579502446651746128450548107813336866716587241877460490897736203134301979981515370845003631352790494326918135274335120952426816144795553687395791074999015006882228140227206355831761013898605205513937023632505557867648040181585064136095697133581376039876176943399944651450991479735453721117974361864494864472824142675858137595463945411380174258302623128176835147459532277122730074612974403552814316329083460426940998414458647976767915887207447255633064322951750962525987089313461492300879486152905895751433872913920674651753804864104692025528117203088292334482725998285094718847220760015725705477490359575003509888281492209031418223320092869039186043849570389002706125504315327677017238222945307411541374075884058219525228372014236864362443290195420516470033243936960555122621502543200090866756077682860003619084019191579705167858450559344470166224228664428809234880315677498273776042166754917133937691114447136887082219055846053575036126986453858153575441644008872563232956266726087820341487509518690793143897701082744600245601423094947712923941165043652504135541884622144489128884027687455744330057849597287293563863725703872241959963560739240255522048133274915352567596018629037395509081272464464309342691576022038451382532715389016970415161447222343154269419064161623270082319043190076239789389634176989539477949938246075304420590105464846056508621534841796121113791574304234145231698343485904605772266378872212906726782948331533701679273485296908122194627981058945152645974375924162844864703119810699424344908655052830518334844336146404875161736834952189021593250426000950987555902977379993297227696380945333461548214486988419773813919993148829130279387615518068769970093142643338290617653331903424893985760005565885074011620579632849822308842458140891852972856078323298222882199540732285196808027203413325517506697805990208928965119841626350523624648985943832342088796078092628010216037215074844193531932705166911718918841062978901387833850620497816667265125120314676673490258905387401403359359026374835871144770054967554247335765292703320995611537217680285629770996676269938404571036323209993989169154742397547397676079268526373260248080122592877816965760379498671033151032544116076336853068677509153387665592006867842435668500174421722417238269569942463533351606452428878201957112339468843569225715570292266862325702712327834857896441458863479536311857359348657915067130174326923758186540327419399900244991630696518933138410490932064348560080057943509507674237463902608489490542148020344661071321501329280290549500196319209999359709321275261009993675351860543627020947669451431610542102431291008266468165313595118022578318733962582046005941289185620083828415824959115545334234957707871735156654934765243043192750811216930758475551337529724853659797993699950437013252148746374165238137867840458751014779673950559589842436923554259920136509793620007137360711113205011387235678154203501338800252217445696197754750291396607188451833949036414594729164400147853462876276980648734178485241472493211875823677747175343354399079062821285590893010368768162465737299072709619413479715182247431975033064216403330966829539274201162990442663499942117828954958970607800406458808728968706784344557011610478495230552730755813237385471491686081159745595985866951485128619015478073075261075852169985751366538232613883722619289015468265829662858927390920906572146472470667783915295518699343031336057009133079303393637187285240875580139792718463635207200855675714265318080581738610384992315925682827751488299387514745923855314559406089204091055879788817660660344246362935358497750944907262748210647472166704044143187125681569010424452495140561024045023306305668582282002191240050763447842365941437348442204870953734636994306321338253753852330021139781807135889757848540075036606664551398098318871190078109305547213631125432821446085850852402314028537047617915560792603167519676638965276878671654249625859849185798555444933035386278633728658572476780539973569590731129564507454450810451121749078975269390083527922530543143467964396604839446745554638420527113644746568772281176613977907487015585428004472798143616228147841620946603891386640597657849128268909128613864189073302310344622641865760841753000375563317630291000989373097368496175337135119096268264900257146413610341834350475034758727746309033965837920936222428633341930647423467492898749314040281712787032084427056920438094825519053467780689613384423300947544630736007537925339675237872488701686338602423529728355360251853698874668428118722602506567078190116574144440526075911027545394598611182247367014043562159360612671571065479865228426599964987018644224005407582166304546938410753704123287673712164250047222332690064742579106571694589151934412239946144387853898131905232840708316759952847630318431095271498963799919041480701016700123585275720888910089102551168314572934551990463950978490323362569210515550339297193370571328021525234827853550877104763217205279347087952200690364346306234429308502772462901842258622588357350100278239188393913296622429472099536959625733510789897636985101193619506837337395160464921234902362415455550751474020847954748996949087392701758173984439164821025190614880551151301119252550106048084049896563307905804937428102089100432798635140855127761620317919083343001024416212489505406354514832808238262290610591242114487637981679983811713285852248531790954775687886111697237871597107152017374201981895157711354788629370671764594103489203716662865437029014396597592275587169986601269200174336869109858769068412362932913692953015249694461551063164575726297960848682323717887401823023750582572957833246222194377143705076529836231670935777050632719078870210697611303928384316514932403474577063301956223817510031569768945510671824036037252732449153885389621926665312684324799046789426067365193487841189533849229192666667563846102522181410191989128611436849525959547844851286115176043624412813195168669349086142372451046415626041791329724599729698629191822714013332192325926724043303006964762209266525842864306794279314945647578977717370066157851249359116964341741336404503706824027334448007634907839284663770642222280625665537173519258827389550771373207879582491100784039404378121303073970980975350451614049982149766262454632418224617599072882958902514450328660833146753050605128169763186143815797233525779560494888762229820534314537800816325180008259006915560045710942174647656076517294510921556393303922705448192269232410616680105786902267139075337487471568199340659268277747083274591593120897338807455718684311821320354347596990048679054672125742264598497551056066433370739891647456562280935626620910894377906412020620066927809376524614886671911836542785351024012850848400996191902757447163979212479929674137841489937717300572235209112851149456483488758111688821449425518857874314138900013284077978170444586469880598062350321073203899180886679864509694191537708465148943608286517263181879041895439439478678921012964912089638784991023137415838831399934791500334547862038992013396969719492258358908007337104934493119737787748814255136957326076222245320842893664481687293075891503169375770538968906728909325950620876004377352165983773816786174538984863242425577513552093937860117162159436493167783504954496649258550408172044995961717191172186606926891233586504336676927382472835526228051282956627006660537693523599547643004436171835397163870171537593155135877212131955634646273836775108665587945834371207778617567194365725823259960028856624859962405061224641485191706333273395199170812727016941836680089508673398983563939412774679273024490268066771862269207750412778511657988449422780850000428396632366254382094723970840435728604360787755930256178500115748908421684941247649393532098354574415109345721668006037825879374023332182378445064230952871718243075774362938179146622526050857689929971757255776671203497322166568749090840599392241466754417713868852538502359102619130888018093860795526442304205530489957670921783487968915672907437872255370649000146065387936007387531653749940797118483696346084339373371754370937409360295221321246321069841573592413881450233465215241047465016422531190184943785142095068115724440931334258286832383566845682072839293411130954753673266437179522629725736743540141542200833762981302235465164996847109336247209488919505445863856444372777026036900719931455967608216844029760303009834712768107414914422069733806335508487488967470337645355200682783741121635972375839094146931476917646989784815181499496627051229881630781306751085195839741484885007350204933741104085991043429013615463474745337736796884750860773964505349678576849224544543031760344600407518241590334326397039478757490096232965477081229397671049715399966140684679731075505464448524888018708869584559902897919052366482864584193205563118939173146811899518542048601764001163979940795440695517903379508805535297153379281364828452584311196745044451418188099738051051750527355028274492346539719956528929239129330987362950977722643196177693409901756229556783427877262527591717614819232459036629694598917409729832726360964020621690818953785633116086740543630342229584680616371717148454599471586838290214575441199205207277192866832115200819355900441400171504087130514735912180319621262617924326605699840738584085940328963657205634519620007595630958333896018647899312982105567734078795712334528584258511707522707829180150964883580235659530809154306811496827827375334354968006683895139888152146806084436078534557656789990514980621402545658556448947338584922450049779087846569301016278435897176072657996392545171228808108414860544676288249826396656181682391560407685837065544388536178210436133803999073192204324753453459012913624939672351210520287155571326571693194255310813834961546449896437885822684873094413421021317386875024660442724902981729599387275850719272839700420916013357621766612846782452288343759339842833501717935125149569333993087997035267981659907027958422602634996624773831873955849660977852065968402084731485793150605315808168662228159438162419497430840558314647554937674411819662999130312423602202935940593585445643226476328686938907348391687203012632250240972696377199526234370089267165328344012753463350420863568521372565012051310743256775672197806875556079230764711331154439494512290205811515421283174465855425455696995260371043296612625955489317558056028600124445419660721803625278628390700186321273695450670025461425348294130658667947385109490963262533895532392065045333155359911471199426422668219891550273937694559814231493167734019465725143132895057077198368460413630951771253978365274641478420495618123556253543971006205150935637178210849989510612646339855630374231219654044167937106106924888516153653011787491758153354147750987824115155980274309116491512572602548370895432539900139397532284326983688367820591911282116317914499572404760509097967779247431288261119450019244453838077867918797957195962913167216046127649489987994841112526052082107756253985531855691402114230566455455257815571341047865575114711473254777276950926264053171780934768848977757562282718493077672402618864168466275162259432804944090690501217336583290172040337884469825394050383369891398186048089175726320483812107940617606967216798317326434705734879365700276610546972887077556305973596503436640294047319144632770925820548938868109797587609525542351124907820654140986675256702166898509548422440589054446040926667444413537506476752118237537449565491480614277305357374032312462529327268593301486084948584636767471760583808848228447485723753939257387116357600988322724175379214023114942243728679766409931283181248604971153295367182155329161694303086564216038834528065503245211156000570280759093970822246633390489834823120639851646412180981001422920049197669212509689423031963905523106881426322383415723741809952281570570404865833126525343499348354883209949804777781244079388352218244414647296914784457521275786586457609456884588043677745521880368971204935372707290365979178903355729089994779693096171524064552093133639296856845306184889732915517782961232481903182199524162785325823306888449117144126027472012576533576647786007878235684509940053221216841691662863481714636620407583703412066544213593103522406096788008616515635424148630331264261977134092929537271055753420887030273946668127868300259569436413719517701424675216697019958624664219029223257525852178677319175279118601431513352210556932921253799422698010434727910657405205005054600450323310720444532896957632231959882450095002150983273388469064679551745947771178534977910342662453011608113781228145536212480505476974322910903989588697795069213606903826380481856434196582971342196056188776563162707253097724296514078707325911020872686508717635198690582324427928980612800567999549244031448623075287624988730204021231900284612251312890096869222454932465589410966408786855892631275258633350996382604007052886396754497702067004432270571107841790591052814164673881230856404167253301017343558860839670118926106144735906831914945043659642062792284887734386612329535379300465269102109714825112908064674278238449528981688310625448354355529773615780969949392850002075887747101710270113869007379343138044899165156595611951884817070027211366752319651321300549935037285259531276676333199119471332284017352884772736889403863395380260519550324380582750416011334228461225824684858529967711421853686123255095165991411143382463088055646599796699153667859367808786362199969385707705112547382956486918196118879988589004358164778357773972564788671272041093116026518934272762230916584602429529160777226306993665740960518127751058641038872900145531095566123980974481064984728225691603661106310059522199689268057118333828059636320521029090182568391687576409805755024363067383288369382062056232676068455137153844651565660342735621326514626901985072817411067670480652995621850500434057159227658560449604614715757003359970975466582128556262261511518897722488447228116949485832584484477945056810537922390529068189243618260934776277596631906367363938629710518772772638478518625135676540039881169379246714599044397055719877470720466841767441007067225283129472560373623849713160550527005760760605819808972378794755592846121710254677659081586414916002660553574032033025195096491126201051143401098557185179520132457191283649804882991118959825479448064018387079401473535461347869053623035161505348041491963667791624267318971436920743755252284804699143034619850447201509977305651564278650525663301189009474357216956801673004907067479225297721404358154878810695872063248054836089882167323139463891574133949949402198249496850725377670441873655213803046184864267692676781095913806278851675574500692861639962935190739251599934176698962945460271207203339366305885282586297834063087705377704610622818113553903005860526609123768587608866340347335018282569959775682795471648021033396947446425341738082337224272385492866886545094701008482182683256619473842788517439980065205570448756596994313576333767742468743282648107064401768693833587053307871591602079669349751214716419738137435249296085116132181337828839891772523386008919372083538244060043854820448061031173536328364968976012467378444235329996309243511965982197609938126209011422423867765655227286049746157108629139520376836928190146404184693679625006104434235088797562846665269389638792767121958339156625673232588955218087571079963059815165917860673858953305242036005882879785378230265851875279122993241530238187024250887152402815798228505931110345295081653456241077735785790679972407277909341111308302760532017950822627438217058792625502005669046451746790949676683342521701849825920691888229311224189097160313844905946484305969504621465363210876315639749055595244069063135417297774817592343376746063373755924861268535019508276805067222525335275626450466241540342407184197751958322034581075110519256949557715985051786484515211416272941809648837610062123357433286650431592477436509941868183017265548651373898859425618928511715997780912543713465820957243539392885464181381568116026865688081897771673701255943103798404484374259847562675945993921139510434398691167541676033689568323219397792825318808491779617324700907929691495833994949546187690297710927936589571360998272094148017139921859428397717766307422580983854118330553653669219380206737335133692079756187055177005615197782331538893504169716764652610811668786644815108849165917210173586629152332984489023211137885448384466783101308595582584526656128080602913919316009401221501338827444210965350385944679713549547152763592263033498416242215134833392163660570356767776084778643677258340978312331271519482090676191067828757106263314025245355353599752430231320761277193024879257096069106333573209042910270386904312458672009254457975676124116469944462153559525194957603327943677352238242463229189350123858199432283762396209626864453114550319189994592538243927712046878686306689966211059525768879880644721277555283872816558771092703562606425887071759059211706108244617653334657352077603835184046713560304493934657962043334471252004694243624864301326122277054130821369494394975648570522095772490547828144783395466868815629147450196766531657299053876966128428164648841981722760514726397541690934920502715004556056221014594665216965463052786914996763714374432738744705958425869390421509028641672459692871487543145800657199504510418999612677642443306716583520084265467217878914101538377907908954026207218209100468695750524881478782182297260461582001349271977335473970354523600700404397084244288667072705219949827222968229392112761999177292617302870543566668625278696058149437104250025325729751871299160139499131673610441360923882930140459694091151676493199448475822877689751703716152948911859621311506593667912398933260149568100946573945223777076414678192853763798289174239250686544427403439837117464059349372205673215376067765112624490740978788240391578514786711777177809552300781342927884138237017915741249079207760286002172838342975313465035020284061467410840269423310111552081532348825738210449348688310121604696900480281963899067220318576295263842294412665726412924520617529185223768311285675620413064020674858396093145843798271188896820446457029838371948676473268057217219352350690064482928171074084204543752275231487695795962120137001352881854126567891540953794560532096729085633423815270687061007113933875430444825429747591840558897358877846933520932200991133636731129282698279333928966462359588994548427143161109950705688724731988356703907998729916359609802495145437862709649264854844349553539679655956373292307823136341426753383980407080397017924630236220502084338340239638074077250911750566819850237969986862667215477465153261865733605051676855218274370371258585494022574174150372500018212447327292615557852076603917953951165841451725317975613098093339334289442773678790483708182433804519922319609901969729826878977990981047533613250654431043049945787238375742145035967380163727486127540895166818588154061184779535550088334950106911878243082878019387151295336203010734181535992364479555907887258084892987783598703525017477807180010486256304470138798212055614441127988612924275502977160301250392137336444243856267591908123537545063169340181988378017502111857272147323012876102261612816438238222563298874237489217143842184729970075891747504384763507681318641371516269423204707523084638218051963685499977814111240861532899311435043775115582959035870128347749341501461179246083284186390306944263047060233900742314255939751730132025263421394577634753543501692192745656776148520593389770045701240705042754335622981257284694378078685482460663682033007203975226138393644386397472555465516267068864598732180523802090460440331669069098549902991284992544552514646955687961272190032465673261001466022396153464957838885226911384772853091998830292074575656358968395980274455875715831793808875844319458663797807494308686244209690089215041170885961300777270935961706357824805350724692269129421608998910858353580043856001681538401929411522523550278886556745899639550343569276221006402211730354498800323813436829885748228077724713117377842356991213220436083544023979625805486999490976805192213015327507648644373276641092226783622282775665401947624876278320234969539051582625321280316839287358897679714093818910875798112708128449233843438765114468471420523589286293011431275730365762645661867440273175643468586959371354124492923842872060797304207925125008689097744528317229273345617826559749020619681745478270081135880260882964486962229773645070698055414081183110600156819861384634573399716615177866617034506524731407236875902124173446378535002612624113145335447854315381107692321540714942131868091618194064722978197377377105524054790023488997774965313388257555738723432851735751068574166307028405478563531529690638177531608519331514317717418008007919602711294333349943329541862176381286919805098083647333448257192875356748523318853017973570662554662948290516007135380364496783250856473062275793291724636649435846536915422430022873893931809747478778550817661354510415452961920729318168902025226160485398089858666877275837110894388358410674571428590246420275031861178813194513204712154154826473607910463858920692438167533395484966093035213691848617352379140610197940259157102850939950766295266495083784941533342950760116502001731632141674736118025103589811535797845312542394742286214034064302453468980360322479966492952848212835285620551367363902847134398212973822278507669632476150972915104263118408417071087909415182807226811633156232824919816718168603727121097940089748622388589306099091015920908443953480665120413793336676038087569598043420444943956396004965715582318924827069960794938114507286577301067115792920564326989413352985940737299548663308587509135970636941818113833741323121370746865216453800050443911499322351641910106483609080724596965506019476969760964749541415117783214328088895070603368037925783966177120909256609189705141947867057699978485402480703167670683581869792175156738840620626408873330668887149072604379305181529581394918751321150259348704748370572206441366348134774220089805455386526764849240896729615277705776740351779881180676136919627756177656730463328531085375174053745724552267230204763399224177735008186470095262786229320345329245664873439042895044327502075387872956305288970517664494344890986901749587181271098697690828017347954671528101706331752788859177843161541299180618080311842782100002128653869551773786709370193125939646159534454074935657775056192251751689636553606590331623581427835058470496251961020965542900791147459126998919603664060933741952415364666769984951181097243636458278021517675481631292181184928235898843474282132417207089997607781379536937612861553750074828493665476379697029176915327268700422348365710469808588928433652964030400462741228812134124713892421256218210161849857578234087435643494424740571368119985175484494073153714078421122782722774577123971449997828790106691176815870946047650339823889248911131170327690936171097547532844270236207545345876379773293520829881064044488006424043975834289518157520698762239689590131995775957479367821441977783591055721536389822344229183001991769902783238436590523748296028669465277049140940001974422484231407820754762734330939009839972597994184678586464837498280184435169509641681192878333860424253214383015230329524665041174842504516618743565228446673641710219047057447711520743166214438690048164188001740420605734991472426387591610801568181945704703793495256680511115296972037114801839047692643555815278261686765330433864461856856957493311919541271532860250985539319227213471889343551752121187175418342464359295360800929933244689124761774966680828841317247888778135362934150775245517983795958616571702077838594971567989423329973467388136067693173283769350325178551139802586321107357278153857205489374465680104449557790688705041142836794513247423680607089544326938795164732842467845337931249275732788112814749683308803264020657341469843227779396817615318217981236338744839146961379001437090346377531055887641650482731710071983045849652332943935085815314519099574576837732404599677119332085755028058385757725502997628618359318171104005933112748366620401534926102685045681100359989570234008347847799258637864769352254222445511848987727237972300384946524388098070391335787980405472495894408823258879566644143175551406644091771229089914334678207626339471317902650487763421484737272853376864199579759695836649539410499164164395010584431007396960586032452471548448508191467145808044924536384383508157228535722231604775933901288232064335746389415085488793955600549773487807719093336366999656890664626256939062045173709952197271207010390234584218467992877971240094048446064141168989825601447274067632515665607509990328772121453643909346240438073548151740302138782771383014617813954928131137161658508974750566323825334469628102981348334830590193679313587739363397494100319248724997524994254387031271980318337949143619977044904944095046593837178071686970367374336094907210187617353501543112288877310067190939191796969008897624718845580181262221122888255506592007735105612949233829354931912607432410907462355442159833819396069798135701419562868424436238214321460867500112510965688598030006930975201662390760797286147106820429155355482779375566511883805168558300089578005828807954799214633297887395834079897954566471305458085607275020504940236111073465743283101513968993231084394551134843827441397226165296121807649566002213337603659565442417017764935199773270259868005769317981807812310550766647168501219671890668197608197793511342243473096281897029143411746402866309513828306702436358775405340762355702990527820450255992573494690113639645340910532469376915260899249395615129309452445882059715816393849194119947146899072170892218515412623722574671922379877168987887335261855307361032743928954084563557838533473416629250444228265732365961888776064271278217390559246641580152981901798134073747833824211391934518985444268503346436040130728635433217845031974919209455904833538214735074889478915356076017929695196737312016177100131223239318859960870811989682459505644507646873382293688944869922124615874340331704558764794648941865669415147122002735121200400944996355166195130867097371536457340081619748725613867823867534488370739504867345856218989986518270262764719874636716838868606012499110799970606691703611547202533004205897222545152603671103626519246714484464606356215098741967030463468332995392146831833318124518857715673821305463586224288135850395188911188240030868396061091104412383764237622067459277001419307325669006504565939111644784754286508157552910029385893591333144972835547668363163852767820682813404584431605540952506408341363271378747972290257081770340769167012243815992886871821166210791353894933580175277741214102094701797981651596410497059576110404131782202666633560721288821208757337847987079253165552541070624769795433605877651263042710786120694288788674633158332264866524911121415987497603312070076046231707114374792572439596203476123653295060591895617710970428382650547739904193907159529279867682441337851164948620624926069290926830348097771747311275930573101687955367455817316581793957625530358901496944508945326407111901264472887077278821429519867971682252360645339236413699376011232487499349977751769129982240264651370899684581441323430429230350925552059161379966283458530891480664213019002110657268560790612886661877320493623183574294202545310435494268178964484065043810673233680455888060637177185917258225182191964055577274392807739829926191634809088815772169377242772153673661527559949004890052592708230334472298545833883384070222686880463481359378731277308202926547599115972391578076243248390589700812349099636654524965341761471957595533547791357043124437748014384063545357395208158077067355755784895758119525570555957690202384468041025819321194053233245286783872941704195724787096002293446266605746310614270741181602642179504111159757343773439258029827136798183886057253007989657333900410099227874764727831801062452681300927648876655557049166195591916196458028426409939321976504407916447036411672835293367389295085687206247553744890247168520764184806578287429662298176149970382317308336519455373536720782897327118477855415227206592730028681014068927411484608205514647524948550772592490210308729797343164992780811848050741866249486471967160413715096884618582056637223271520726300166963564368903970270175341542667398156894054052404106113547371420148606992075632169029390262353596845656701447588894485747506526214464042212015287227714615107294556139584491029534933168255674801633070355530995412946338343398884379677479251724379182692447829554697486475709043810334421130306132608088721583131903239296355959640018835209054440389025968607268775173636045904062535430214099890439200061774094621788099803895283376827507799150974032857854090610257091356646193591854121740696434404418090425432261682906040812848046551758860167309733601000016499131776934385251102310059473954045419679557894815581625469536090234082193366120589827393241753007213637891270653961429460536956864338478919470031956239255171201998060807129453699322134750235829863382144748480159389358281307091830127365391494249243652503414785352587232574762031778320501512121767127716011978202556263093683125851468309895911926969883177607477704647792061409004797063217083297092049947111736272528079213756847934812932698655351327981696457077781741802407741145192406922242723337462808644731993821308769124911247375178071305337713974112252587333253872193147687816921510437115574227071570956196975001722253036228703221580049810663010141912923907703958304346384552860174666281923958202955920019318834584757300493036152664195176477178319830178005714432094455190759713458327622114782375384142316932289455857488303799297309212443659915390649520442618997273023804492350865158803532487064603603765625832367369475071811103365115461585900784736461674429301103732701213385707255816372378317751219945787025070737776654054948728268698245584670046380651296830208339945628800382880774889331579472055411932678982238485345500527419701563712555867879133283595233480674654838398616392564714933328070883893052947433138420297644204301833115778280623649201838556043762739714577346478703480363203843078613738171493563410339344103867630746018697935450038201896709699863560181236861489492708943366286567239615688284374933751981901662830214665366665674638474445943837803691883449160188066524191112450307006600735661215529114504591707136487704689266655016052250941098964238118046104288911614942513265979987071384197863401223190261756865543676218002232756663645674365536513089681564267210350407873608137043702146344585061104576860417405438939638660560267561079546151946809926401559919646044690727879062553104613183115802788689164573123267008213890102825920482452847735238071584942577322215614837452757231241816562994605807423923304630261255345505467520044460329052665828450526619438659515327781684514859771542738905965654959187192031333790854782134132255695736761183504112389876236333668977574319015282302338998062363702679968373071331747445062998289557726863669594308545387483185818043519644812497004818632033619207502674473000780020956155504679118791204078472712522552494346830718642929598071446887382771576151544489779647852308895390148205693443556874141007916774369003516178042972357012877070846082765363973844067161074522495191110110139618007900006168308056696285824014971160060249100404768803755695165297255305668310081877449593809503504188171422991410175646282488967480250681423098007940726184233850963117531248124286866430925873279779441855263922385060470358001437417955122437457536931261705938264038672677501520217748449258590077412815593843058121415067472127959673746248519925952532796234450285458784238570522121241341719723591163561417351784620405247716301277568384739370640295949925926692852933394968083414015124415525919843795838383932135774456751987174037612706981135591916823582541448494779579175545793604102091680629655534986187894970613290078093960278961738557159438239974606269940578546645551859088998091048170024592263042931786535044718882825805043075413758799044944088023345341220936163767381756210080787382699345644414458448602562774590925010040021482592625184375156080819216738936146215739993758459678574477948447611633050983326256518640980844715939103182029302247824090528515065732530777434081471504534994674383311054127591734334274424435319071648864497705392182136635578421580777952341410061526936230547998207396630228063192713002844545667596055618763278447681660285441426515317739658584630104800562393345762385574619031132337775672544688305691976839787727789399385033085637785492641892196640556302613074212377363812630040432528615179560708528820181534165625740749857714766476040143568185059189957358342510537795757473358763742804577843673331041372849302218572785130668201361097697741262680923795856763400313812381595825800539180274282269624797514570490393762879454268332829474191540151105034839935083314037138356860210111557064749104295180251636908172736689612033353511265483548042078523953538462369087201127659022444664998087421977007420907091409143851304175672976090571649161522533372702624818969851276591059334892374719712154100852985327828880032463059022194388857884280825392522921155469582428562650893533713392861133574499347005669082029953911184121084936843758859374640640856726994179890840356695253047577099148896897046913826625850118552289658691966250763596653191191609412024709099883865088596868097374673660229293743932026270100130955900665401970019716990530333033332741530635701637431961987480822872819208023110915540383858255070944288439599122806219073337893304188586069073653862215121996350456064377355096234537043121863680368993051143706807566166911564814196180814126939290022555941664620356548573344247370044761543421395656260949323658325175231805918533086193055564405835813432816911772193313936345539287417666850246020068969992829960057521906016928328114589077622772479028267556204152281972608666573899620572991483275193739544212257845017474465216863024302813180036621853856806087550701617585956172799162361592968890059045709982046379538521578332304083201734408907206605627460728602465862171212498354044336841442182471189243084364831894391390747534497661375726600418043748302024534528509454986988878636249069928809210063745682171463500470272269116552730960303012126274508394618822146818671725251928810953248925660375058691856545186423190261536165409387372909855814878957796423780291332235354702920344992859064661342419345958993736216022921462008332951538928722132257972990872051443275381988047690847205996573476550733597863226419957498637930233098530810237325210244737505965844715289801029608845947401499298935482420686358918682855235881709289705570818034945950060067179392536281886793841130765305377611623155680697458041826228092593454031541071556778493769128851658479784511166645255899746291209291054044200952011622133093199418929677518378451257551318858514388560589316149573615970801430510086655839797570140655707213627610856798352275082099981818971671967220361945432161929426134324219195547227044716134706581423710964532142287529794212462540573757938192898237470561380149378187538291330481539045415937475845954939301686233016393108325552100636964285625843089046082260885981672709731052266565994521453769946494776956488703086345058279309914102063676941840829077426661403037541562624069043611523294871225009616012287334629622853732020216422571641113014048322939309990543838913053570444575434293034103788429410350387295188362990315382110292150547502527773121067925010783553471631232318807024370932413638500955784402238376269970636218862830017181724837305540806043683080083797069363423064181063595991160811928473238116359066830504021646589592780650707028914053345569521943522580812435707964718978285160764939448025095613982717830060875585705910391819240446486800710190063459914338025827107080397205227827317728320647318728364316201096803002161917660952017697786522284145758169173072494936662819334401966575110173717575021325078165315743779186364185297569307061293986994477145998573868635949185121021780000644709951298223850301237988241202556482225985816410714107507184489784364953205466784838821106910849247181079300326110702535530456906136126383928873497808726556065483198734329351208131392224604291737205808899650531791815329121823111373878297781721599040865424657471133057822942173088118320380479899897023309336134520990823638481781382778957032411597551609185089681339149482161736419592508669421450301161308237827478758557577869464914718493082969754592844617799102498774568214758324534242095741269445254488666267170287959048272021056853816682748683000693713390700592630130210289880909640262290023065799751823022739842005206185653094685334362414469490759793653291747049796721237537299477984615525833482736309809872289598384689630429482799655271071954872709702840345513403284900217392580610800422946247666023910668316923119916813146819719539143350333131380834505785197635774878665245225831689995443870214469581229555186418415427733986197501886555711284291934603660855640641039715698550698187391636680188296186527281923038066955150564917873489090404076084878540827410614749691551545968682034044246653742409109072372494931648706463011591467188765190759468439418461033055913667537509979056413351547732983920119627346964424638880519375186817226582838851171530740985830709534295116305802513970741208898122661290992825071938970095722321296438813522685870052198649756328179195459695999500731605683743073697966889858879873480840756009867901470641367891243929809372883723187821724516199916985015569324612166132441654235743568630764686880479968426586074574861912323530905713710344985724968013223016915335800055202544126159009676608902173423145286251641200662838936045927346351520799402063103952117790202582300858415822166045204306245460645439149191313600767975488099780123746805875193990652726576688356550027438451435965069076401436893485799128286833212831559797207375319115926106443328224864463666891689226619813830245266004796830231601813299376303290346202363667165930529242483365165802068761927134045966854001113880909976958436954460828944164473869458384763205720084173786220394169635864882155744254548394084953943593451140985499847401727576434481027401335154293629843767437244633796612032581960281243578214214380397882981482688472526141691540907778739436281612516380510932553809149885430991566825963342333796087185955911664560266868929791101397852902566896268327271227906386947406820972152243097354426925949204066802956462653901232656228456151573500218378838641563891619916924532027104463637585985819855663789597357731770465783797251065268194121473585999672701603721726129827634060431603210690063683418139503519659356104167440381210294512248146741781773443392986421223605961687244299802274129455163643512784277937082987504246599715583073312933634167282826078134864668419794736069868957442692530731008318086689419051738624128407935889147105339767148063986914328759722622708319780687246475063229837741919257272125413419502549683810530473334938783763621615823865672308566367633250763550153664667707004246166896730214256583654420514517734550188616347209728646557864595195812408406862071443538573029760142361727092173614723571640722088336469247131636499531781359300697345069489492159672856179866559547892023078533245651834645670174885841393417169368052516738603695685296739057677747372752897690272978053591440055830636895474779266275575316977403963018669879597854800299154517429741134323410281634616524287785953304858271188278208859298747250870477528880759438988133160466534754861412300912869705809163720263104520573630907169077691068872241484065041364918920298735572621102635361630983803251754272298179988928824334418992013828059527184395984353447760165272074345033536091960846956849274225148462747036144290217820933261937391198938420055643279820731105580655052035605035151916857349201397078430780505599377964658798026098682588579420567258105542950088386061417177254205203004513029887066245438236513064648013576399168067532015925200934442164109169199352534173007720565291879123478199720755160039814368940023098906594358354455929662623415367374529514063347294581918700647308921829967999398438638361067545945303161506000941682909320154693657965169482954110259560607445099922842673209605748433426904425414032170766010909700496428108290722417882543342639615196363916344349530588873643734435557210512201347500013886346091711243552288346314999596261124055103802083488929373584331017007104018080405043809650217036867474564470924458514309801682810825297457449922235882427253605826855464057765900894501555808326734030079942411973393423881589655533530896776822004237648755861707575017081570790462309302452734638455891458583977565708766381277631318030710105250255139495618248730318173848147739308207188951956747415508720760425644282202277457474577710260380971494558729760432706521486389283887209794258337386846819063589243050590780717718361201718755398090359052970565169165559404620549779701243988269595247389960645128334916938345056034635110254132850246615803625380038383602853656265609400829412275799504964911261129082647940822625138891071714064987343316955844663719927081758959145757672101390211771685977967721125663743482964616099012985005674177531090006594648171290562816371261098719442075588816303786950733011199881243257929363240200348341677837099674196538255221797543740331735941668437684350514630331240323752389709179282054823233374319213387770361441104259849883631697823073804287880466608104978879881566397688907259873170904516650333082085368356921075152397583237199510818020879521670629363203571556836958459670468427509966365113489763536454471203373416233068724633855310154892785508698670510625418019633839512244398038218363724451112326762394919127397259202434545189246412571848200789284589940633314208416392846126551422837240346839218650003945527154454663415676497674768761220259280894687217197747001882961634143929276779684917052122392484687657801241180875566261542380473116557634262631653463099217313402764248524740282114290266377274835739181814560443753096270322733559121863990963699666125055243078002101951936276092500512851752290477942081345423036767152716940907444395062671638156251272022142347834251213032923421878024375900197163240885854523490748852402514140348982660622798351373115758192119185572802657346538234661330530796800595264373917155522331945835346190504933813590357076074291518661275486924101040516642467795718998781760304334747837196947338669092089297570337968206960260822143845220433258837531937814407468606332591285509302431709820303968816372134343939978572788555586207353903066161861759785157888176108167248523602571214403863387234982249357660992814133699563925449826753484394365886086552618639879051875365004911252677994040357703173499652771446168923940172896544931064706598391812534015961500976053893117302194200228633285418524271919648575752685781357717455749221898736872044195962301006549576178781125547766399405709670641996404943667705400080049437507963213771812919836828269602378531664613365552871993226641883198080999671571512550431181329909619645915146905280499099136216194449931427666596762600924846003051939356768251943782179473643875686312933235044219582761504807532336360492890762607382641402568068166642682163969243245699241112280739080495151669942049172292940627726934795953104792080683051443980083819436282967543864667287227308244199109450114997445200249161691406831185935511894302261504293019358177635450581196995881277043304110510418909586147911941455838137847226154792292610680544142391653571713681422258928339811330359227778562283691728817047753160589370124205599947814146634499281181122200040363740310128726314752841694986657130380668686709182197862390562182412954359863036128194517645436714330093450040445568348895389460813229942773181395087486167588369410096024923239954283239082683326662586993910496557820910471015402876603130136959603811601487597244050726069658244218131241718353622338719632609839855705186500508843991925624250708246555780117455940285820607810055784994111203531381547040357771574588868842763166329974504507286909307091361868723942331123424272623413074548621860429591130409117178530692859504307421805086027186087273329921173792311385321879354154642797806123913283258080240206894903344179028562652050803544386175779657051360581836239491740330826076654148144223325533959206594763704380980515407854996609109818649413283409822737599597138483304437641557612048316109221760958811533676220821033839020788370203280429778331638219155218528335395563621583302042022245757066911574614400885814401029069151867265913206551997922624035222807849239337336406340496836124500751888287783584155223070170095148443257636770244527970529378537654770424631009436084024661265880348471928996002287394578122592999681957221948458174674062071629530203830063732291545205773725506589083946879089559081501509923032390715676281675699019004142212642843835739833490723263200907264736156905382036602130160859289432561990445469138830791524617756104863605918683590971267146091168547962240246030606819528429792105427614902661298336694294550596959491127638293592920789281732038177015692512985725695658205905111230218041013380306019229113547509521660998163104031049357788931503229405840916499334054735682412823459746896265706920194500122876818854762648448837258946089915762594846307008640661101517380288657155422238877824668911436691857619667838525045467834787923596635616375748380171299076514461111882291591790314689445358626689514154004157023606339221642074209135202345360080354491867073367764211650477776920345205987123411378188934008470846564016807387460230446227345312199005576504069837770977238921013745426716281036922734139294136529710860704282203229210047108521801927518637239505648470317674224033355052168675561615746797116844509104283878085862772049330568435905862173978780143545383042170993669657721592685564768427426857228112198795732656653639376481449814284068247518305297774731990260908460895351697704759977508057643659084157405532216291222646295108923683766699183163848847732442268683246756835957701135352000107468279582995089391513533757412614103898935635739498009059778995338420281135846422011796760438082754299317607243396051027450408679951926334644864846755009084528852293046389767354412642271778685196733785910481553621521778921719308410500113365502283178606004200916472213195985196267629941041113768294141703813104724479415123956752045388921408172712348187547620122723935179749850010059503373248575036218916812766390620743243720942330826328873694764680614561453095878660087232951078809814918351045198106313542754090029443055428032429705075609253301597013555687710719412823622737200953688379451761706402700754369625103599212474573553793246989154716738306546017423544331872122990022588859269302451273373845625926766685402077571057001486752548190614790322356127612718936850490892983690423551495675902441860139361433574968717472095093384676813588567175341001749615247716967990043730009659124769585540295213685070426493568099266041068938806955029753879190506928538374621224152797073581156528131813089960585224596625802354192508557592094658745148675296996002536045917506085536625612554394002379379070214471620085070415210413988800144430774241513668947550460408441916945570584469265385117340609680337047470183776850538426506366643117271096410575348287540865714287236572444506619859611405867118828830004772299858451786260019858408822434983812006436553100619260563018406762066951644369912888493436558333869909876263268969931101311193275524924548474185578823540842812920986133980554378239755406364372447808055005248517622513795371955407234033702216731551307152003431404083871501843809357753489707901686654358901594190413597042591513061745421953101290333627087750468587474785524034621249088962468960058728401841327415114122248309661772529475578787991051009082231533596750809822165043260718220049215806943300585347604402758318065253162664157871661865025178885821783669146356461373457400048343987620252070402869397470318208017893560828593481787352146874959138927911075583400579739381901855377698163342511928590188723230019657640844245209522680172449351837274531403874853434328305188034886273651385142565157099784959933058591214702920063288279952728088883833523149207466613221109304588869337802745917579879397483353254156799174188145451309523345660034418099377823485146482639719279395217232066669019329875865494377407753165590512384188660895176815629506929817019736488482538288736286529471651969605631643008840308682873671352267029960338423808078927093160928085477923842996590379244410758170447386921934901201849522717391513526772895646304518778034091061835688021821098933451712298873009955930440129931023301782882145484929887583158605457643220541745418069745015767479608336688584421378382423321815743904086193584742400596981380315916283129191289079427277850017097043242733934636845230626095377659153143234146492902871755251251617413970054623644672412680243113963727311833254564446826380149515408525524973772315236955710513694526446530024886760625622102735170635030450987510454252830966754555918663570483572907776557538461521129555410795690759745342637388009965965036104425959901570908620628465326943656166682011037447704564675080593041248599452834695443880921581956766214165794644453366223010592277778399445774506718977403501210607526409040675665181653078614843509901370185185241817803371675483785848148466372734748108914528290330746669184351945696884417756734407273987455894357577053488578288437131899051778529582517525523572854819061525116748703434007560357832291400634084979966414324034589737979692279910468783558156822096834610494156753451632817029056376369934502683113440150809172124822317828788947585112246172718951522496042681073447925377842343421575820847641657186862599276171852524302993719061963996009742226813068689268212376854422270705689303984954319928067403653372314743220593356360430785520217143633072480352918304828917753413181114379157037427956528297411700394560036089125972732907750229761264509357136929257334104987093466457738472760983823193578829429149840986340003229661743363423873856047223748191716829548881046024336344712734387610230324089849454507436757811002037910925147211570134972741307525374384668175434309526351198039636832782230112180372722556416663186315043749591045358016208372522004632966639502769463948091809613348549072890944877329870936967438327832682538639895779903525830090326599115551942538353086640336898375982781282625112506840724884657856058990672571404920099028524300461604367023142030059021110711207656587299745127599972429918567606980860712967866782628033408980735953940770425149407621150723587158157218958977604281062388498999262827848350912148857220936029330008885208066057104745913906854366625508681343159043141325929875807037789261030751069148203144166602623925551439624387447164553213224215808452699813253226894845739966990401567294793804251665392977384753227182826745685981198319568501420952726526491415920987780775557913952615459948875978553831356731312622233342638846826156386451281630735829221810386465826039325997508288581334934924018574230095178034073865475268672223013815824106768927439343971733622350082651437831621035256120956120059242683691088611880662720782564912300223628533259934832892230031191305140464741327339133857634424774876969092607645428433622324415210904064029797673871522763478899372196151063703423952826151748257031886394002788183083611898093865213934868461891846364592592544354711720601265688496709618103407582270481173010691072418415128177774047426616759834392682106380214035068877161188495669488229288918682832541681068469953382066837876467698620526494484303082826239231644521077937823228417983483639839148091402597206352445748931457889010557588007750876724704416138167168108960798510680312369710428364572110997606067643037166813033261069615663072863952119142515556462420089925570495067304835155563704848391342294508124459137889592280856120501717624744316113441178828407695555529102683639051974985490495692657251683534407392887894186535201754719707253923637068170370606554198245014247334524303823238758923871828078521690291052930161150655162336338639362526829785548316934369522200928097591912376017507998570295826371145753956538136446843717272159545903502159027389378515080905285893607619924804310508261193872888574713168019292281165170630487473082510574587033462342479898575201064107294881719611602084504098501358147582279563867024969443410451597342345832598468122217106521515209537032172864882951317261191467580294499977978337911538099664933341205913798349668866021062299482702135081187467168623228416221471097029123795135274964771083981465096849126882313186119929798633074572343403985338124344684690590364481599427543316505883526883603330805487080826384824630299385153415669168256406255707212353191048310237218164745396995343710166245654570573727560079843211114658713815656464125101645893537617992528620888406591643902210306291525210715943700428681325206186051310396437994025949151266852848674379433167759172766646173974627471199134834078908920609450419458092835366082412213635215082900736883926421475457999749205206831899388208573691458410488585028075727511545207130526879527571699151635493801392922176467511928703952538630335775281352080941021233817230090120903083333096717211400316586779860755396136854180250023291311427970446756744484275070661970929074136348190712593036319226194579653263382551531887864781374409929555896143696454786943138070162361776877404727192792673069653166914975495696260965771114148876304789757840878990307573070646774365966844391235664154220936046202361242314736178508754292824040501430014312865856931300054860652970019349092116310237489771920392565886000580407298300607480749744502139615408627820451162719249559017209133673360722787726119779716234722846330483738399031786989222337206639537579126317703481808432850765303408611018397883835290623278570168299787290941788284313775881525283507848205311488862455398219175876434421338996066890953437539659443738600301861236179574470362524286121091404692911125614489776284442059763382495077578090556294997485159026476808733217604341515792592922645802278762521702592596440631440935347413773114361547552510504039603097095525141002559114199182588186246207776126068688143470717347154004056822264755388751449642295807635796534843827244114285090496263849586511324618413053059411817239748219467238618789645568587406425191559198345124400837289289038296338196967632588799580930516560137816176784158672593113131490095976884818557253873221051076008673151898239703414992565292748808285504046135929242225159476303023654550272872265392518009491219208315037968274939708590012017654523573136041183630074037803501414890625304857314286952176960240507563219618460220312236842046445692661397189248739546111193361070101010633094765554710675467545979698948809156542014748937021238206510308149851903404226847678563080722466056523818068906842676031779805631812422994654988585342069271402904951708353069552420705806511814720278763177246808643655749697872859948273184038108632124807367671911614096107994378511135303070238375327376239237842019737184824143247433002228020754430492511845392841521374882319130071814269075187915561216129966976932262966943582776874596637987708032968059640685479443562487611594397998820253224351897182483002017240360334262595109531911671771705602132784880613957239996179255382036738759016592914800904981226742010079292578626021118130073720958521882621464532568878200001726640243354684154540292874662602111205085520980955406310464039731387638873825856463129154661390159325920890026815969169277293942101214333848567515843316921649924901920139675993122472889081356756211748518150715200033719830098370421867011586563295317254520592487997290214097955479037128715349496949588309187084339159549877374151260350094071039886425972029143160428090360256805591148421404225312152807744165713239601297105760706248690906437163719060179988736857053347845181500448428473125780313132180118220905824589280936954553382291702469850318165193835524929567144317616928632296658592879768933915111970493051617088851000301842322838695301774720096996319254288232940429735592706580630401630989177668002485700436407329501622577000025609228724808087350306358023192607439423777137115519498425732889343119242171568854488350803096762470073560907830133251035453452948045316489904192385719245085445480524734743994726879437379785853026173934854024943287916685885627986290277828781520255269909151919296314658596864491638471770081298059086515485745135576442514330957390010708458894307122607702384172625520276657395201319713102401411059044952407706799764195381461988185891138851308240102070337521830903564732121563965008732945428036939729707222320497219591011226652062696830140322305393094887624719272694816045301891570738159376371904384061408957627737067442580621971878717073900403785001150803163931252705641948019505771813854729986506819599680732348568232774302927411083560042516088188148108236485434956360948901439106546337509835819428998743534728700830637372260589465744720030423838347194767950624267843118432135410491365938084729197185995597004622903949015707970230795856072892883091569092801584619278852883225868800356652837835702182761269749763347029573369307665226579747553423914010024614590360150750982654921627999810975340379308724546030310820846067225743584977334932763303438444730533597560444553422054361336102942806211310295258697279321742122625809556013417671066050580233144429873498823010390995821084975955522186138968178033445340188096348692149290035654834604740177720969564505899391334301916718858977098210296428190788216472910852002090817443652285866496431199531423916303312393138984811671047546110019299096577636016216825280424703804671368008405300094954629354137962159385657957360020897611065116005873059738850357721924194549012717366309702058000339274270413622140600895657974372131042894815960942481256369229409339898105595528925928424760376731367727283952167578314787143769946596698052062514219094945030657125311555398685874294649550296389066796140401594217761045944211446388580048850502457608751884451756751101604155169864148886618112010665739366354852374966871090544189440648185860547672406208096494777817372734582573209584134226158121730962602188330806307566180878888157362861803902735725528876090899264893340823510604002019627725236555730835235366094833947334550224907573653263564062127948076440598729550252600110804004446130867144926433650832877716939614798175757322894511934771660517341725809280860744197537729588972141447188584368172560994570079072599693820214725105977686924801999736889259467263761945651661220859166122177431905381883227536558872380972958101524733340384215916549112156289729089136032885799212796353831941186184865634061523841679531338917693857151866963583789751290930750227901076975302655462144057691574890895298671356137220978842981100110185086641574784840433750915809185202185220151401354312154008035653728128506606566052256863099424924488443080162007981606602810378989398440185113250854929909338579716400345712209722052272735782518671041448730322382505566672277979828213352919666732926107935520845794251171408620535310897163915891433039854120449791575190337877986104126993065901830020491090284030701647288230091916753587486104826246636919580526626167818269020235301983471771714572749693386419859730693049687560041838569600347167248914520108305214828257657001569555541100562777058122745247490249212333142870776393850562738592350535964077341750103843565548693472554950999411458576289637019050765555569468393701081781396858831194875539169938134351005673388655041674541517292367847416327259651411340521542911236460864907484757702568335229780381597593248319531615915680861777220559302134894721347149644734385086573325931689365545769213321625334118212255205674551228640742486614578380058418449495778346984367778275283079017300591878181174247145309741876516996541367857438610817133084116258789832663172655971851513535346340782497174439850979199499139889394592948675081521175616255516351161915965243711783954448426673301158157666081579975459237263435053433660704172479301210908312906734124342620067557542655056005797216572733622509326288331102616693174133725230124973568945771224111485307007460827031898763768091872419981378619637126814679541181172859319649702556444313122982719309042579419925168822463093613099334986222842717506438336179836932379721159752628713259277907374075332883802302100767854054687390650720372307603635243152846145943584513352013917159083710658876616895431724968748975990696205491615076401622856685317259139939483473587746533895587047644716999919704789528807692245649705146849998480674292593922219687362640895772772825656315747397559623773088561413651188576862135593897671728151331572171166185409241068505698903944720358090700202633405366280895160958933591000916862133655285394548853182762949082649793623598273320745735180643856206143043603011490469619185679309631248872135150558162586270109198385204907141677720376301817535196355303149432733564289637450184802783279669594496854386503832133143940010756951307231616765953527891311090771764690660428100213402033084532104067733871700437320838825088474553606057336910117380228799326955093948826942989416255712952443887068229396482110926394512184857678966869736699203874409267018992796358320240561435393475171146096475895472640693307074167449249596400874858407984448356311127060719880457451612085453127538218874427680939660367070872108502315567056008890358298803973905257749536632436375039302272038346431997984399782953397764856918404563154567941354208413669428715020639636828510679858828235231320259481288852408202356691804501043700558222213752725111735800777384712624367042052434025231401877027459493364360412139802830040789769866084093616606814924900181363348974043881998299074166290087142673251142636399846220657593560197152284926721214122101764333442864304418539639729871563749609027300968094222551784816008096868134700090311898673328458620717178298723539230882460932293467890676839059385743577248340113247811785120664308408712971888248870720409727347439595970439142211804401616810198099006729888707956566654461774637451833591968642063264795921577463221715883031582308117534982472443869351697709609746002794122803210829859005922679902067736331994680540296989304007067764455081540035523304328819825061687157105084860633086149792176177727025954420858741365413519836233058425772262984980582393689146268184504568517689531484819405799794359706125858139975058866996428241423302253238776306453129699310685500778812933685862366386420362765770724174179276568977204661729751997744460645370179604597620506669915113101923414332732432023094365572392249811412494827097013121151307447966800185396568958449019973289475794522666543399552919224105299122049906165602821706537119327796204141848663026045173650323323705710999191796116948452760882498878873275074096612712352319203226987808104188682223490747822466009922310640748846879289475199866375713275770848493007508187454304962500652138245784606487005793865507119062762675749573580090066154290874023383952303849355897652696850139690150293332780568616153224275226273119910593170464159665902099577071943461144040410525365605943187760462208593400881216976627116939567512973050226877257775388324227223832873001705556424689238630144290605537309274080694514576695073293511698169216185860415895055489817928521676894542509364645559729274177461377310464966333466992908117980270298212476378722872918937314536013091479389964435069382924382571555189270141467314345183626743773119576633664024023795267963101681196871070475053819345471114769822324667647309522831115117402249807496032134415196584670651509528097461296149942295565581264206138080796091601454499735849460875103146664616515910998859275572419539190070391122380825398497828727903732794318710451064349195589460732347348914359218789373556702544704870645029081720028974708740344815865195677650111230328430067757270375173218276270503902116142848936906348071640877013987105128392234517610522436841122813472791196007658993262240927745232280387616439727975907356209673174305990332212686822630676675803850757380309424130209284681039305948690226977222194077630393340341532182315937074705728673581199463788296452351507055461784732934688554652989878234277927522780366887226571434232301838569016674704585564860265895024532174388622637902175082828038341883759288245564381792369756083111384120566283359373685264129459256145804594657430724013027103974200675217172382558087239997610918116528734584595368055863350910406752619990696951655196089204962365636111978419015292814145377192941647700705157687590668436166832053805569404551692448375660952718541251993795933728837407414157921417412267310821269278366548150987823435574772770185296568772589425610926821505271059871558807900787555101259010633805552326467368952035427613731395140865269486676257065120104068442824130011532575024384471126935751667827015719189167566425485345295545981735565320671846317536269233006984941180536592991113586129802693340454260135202585512589489617576165298957427530299877382889481065700999937564047219375533180962666289947558869812599191021036172227689293883500006682305228142286312436432548226298508090579313900756015988874166343116899511261846406717477964805958411573307098101126848882457422469469813097125828382887465547150713024447153870074281657489412457961623377642782280010082092360057381534627164019912959933223236998614656726800924401816639819907089760261450694709737245098036772489291884319573946919951382876009018407768245339969785690868283480441473818085620985080772927749907958650533811096646466880726214204279845875667929379767456979240287736536725207193459280008065068834457128432128437909340761399583141898739271035842876971466350321146214120223639317382969324939196063980439244277975027809999934796683825486940417319232291885729592924981166730245595639406513036751665284246291437903161065821001192621978852715981456386565553755162152686513591195105261159930766543675537771450892867447151697582938757506192409882656176159859311716105906121732433593902214306583740822180154480089827295888270530897897036101773538538919121197195630297926934895091163382108853659842057312915285072277190778178777709073576624721937479553721159905207732509331650648732179061759933154976256538357990863310833906237727981302779473547512990948300478797089142118962906724632503330082516048109460283215951662375036889031151581898587519024377738983205869749455954720624933795530607497004480965096706530194816386262154683383842400549636678341328608734982211199088846166210802786769619565852862175924721226357564845838887268200014194591761257851174861332096926101497487158189394521484105073359474722675437377163636332895719136978506229247084453888563460835166919846483994212878482353340569042713152101807421852543137454118000143461812943000953851536005141171150209668401414316099593778674961658203596240296452008344845465001186521336054943409648735500328689339590980949111681258900661113607437255995608433051237372629751633756053420287361731732097299625711787542563869124806053942389297194332871126265940101441734311166285219955224261922136446162713961687453625036371550588318212893942257223886715939520314928857276156466406789336126040844178018772064698511531042262434421345692181649775528672580536330763487237347358700185295470241942024892125910712935189179065389219969920806131059542648300793664359959894288445097901916745025110568002830596156551003999521907493524490703817398962035630830792124867650430960930295056219742770971263906303591457417083990925806259753957717181533553962860505244721670393610108174391991552250122116693495127106509141790343063479520493091724829398331180366780715586749608972053171281583829109987469041069394716719311737554390537218492149736618207814660582148036847118485785669680366608191099563621802014047248745715538913570194660417004485333055872121232788513703442449491738195189762309938134391366534778534290869420737353131584201355036859179895219459580518382247418550743233053882660463636508873585400478034452222307656120806048149701974132052750718625093416446104542222749067635194426485149624984234372613924424694252270296342275576084532740208686490172616318812731943663396389981782360078027810497324837207861508573975802767851391225316918834237985761470135143466416534278733780464507505640929404781969405856311302484392711209193606210350433721656510571102029425064088002785551160759595524350201482375995744970474097704637317161007256618455983622387525815970078298405455452510230209520378256067934231109910692527219615516773107063145645565642874718919686804502940896503270063251457280115554098585175991418269205942610956701998417224281445702024648434106082634762244440191585456436441825468857759683120265653511730159518079927491277921888538286805187731156893014924195040399861851865375190890402222072967108680447773750051767216984116575604041855615825533628606717148305657654030534831886565953351998072865227224615435742688725102449844412812850383564472799113491138531396100861084671628160446664683302322524417090475146155222772868172958626830569556438277877250732368850244513731566893885649498196096871258795197140800417516879264415151204889975171626446728287020471116723329521239168140608726219176989984050318928921893557274298989694373178841241143819064955563596596368911627957989868763197864302687508210903356026173424389095579649433002425362053366438289058249658209898029122344403766204025233079615462905580002944297654272843643146347499304759182052604974859843238946393968714338197402721492742268728805470363300611254504250456053154323986257324198353116710267797175298809181287139852487137774152611886133056830310900270322999699932377482818918174108966193880749976892853552894698784940438584031123680778071069755308677554611585746671573746570868636288119753862243314497230483884716194381205110164447154358314278691033024145643213243519375693552079154186107146983443481310477339485823509247859685227080798770818162113247304510702684783416415688292828110755564034821816685696623241608488866451716996450461702367655012827384891571985244736106722557107179336929617346154877063615114861064535851199512344455061662456574341629076731758932337612994653817836026455936273801232396834748108919143117230001838754537982976716920521006168865297560579145573577166514053779064725107834751972281610698190942290234686199902458907167527772317564775183564528779854568509171134291441958979019347817297700810154417160038351382530570555144182076800402936482672562060850293166244206587593605922423534212754800758010360212749997294793644741380456686738282653525391570985746949662791622519997050689548387407175609094198366073004512867148700038435586307527865335300827539454970294728058990900475235452670781530783558018582212713108993326917392896516135132235153790872746926047685501119800621329277785280388814359761894138541928142068929202522464588504453187642942452694609220574197065060287605993016712511124956061351494044842260614223929339638179679486366309191938516508863928676718673682687783519081621894889894467724161152508066683071677728752449102735749445692146157578979522202910490996904768098415681721934616863090816452910995831580975512495753770517331938831478337874424515351454932022154456168831964533329048895082771134671497803592692547907823739603721564413650377742684975489505903831007000369916224758849462892509598634223152882523577952745484737703865057822309120284025181665906532495135989420832317716325808739330510733167303503708556403613837682738781364857153344747678529731400017007601112995281231291909598230766309602205555703463708396308624009650327248448869778902748250229669868457782375157110647868502884660481952693067080860883205655342911519383590719523586983349311933274725757178179579226543539235562404281739850836122027705162886218841629182877137948599760479915257302782028724551304437447876369478356538525504892937322860147450897490849589211208478077953566798777071144779429131470836883545623069291273152360807829875487704946869319243898229187905859252448476415633046403306040470393676708406363164149273085324989464568748748347466448604816903794677850218975569336137060245568098570051076106066254707302048912533553754033331724034289335310323368013431140476027875384810451346701442667043166206619762703582068300520058608233343316428306203981377066514102998134559069991005924949665768840331403417887582862586359515181541514718552643058905875421175479580640284209317029821696299051879734761794126883599925519584442825560107833703645740671757554039554694752898556051458102738089690679010212465993800633080379474079660513263519696834588890457863797520653333074975168462908883078726944393043358127533476623691859540714742478250842730688880444553487452781547919788638559531496537447184598654268984196955217236789486769326006883759853139145016838110380509578643034520794651444156691848499912951028189895941150345000977279234875194098212293407860507718760093777325769278843738123240480526355767102518280803349752785485130797706409013253561764700415451353439794011601160540478827367122687745562665549059218536545397963931373658833253473645968237460090396861473780608956386905113941053222087805801724875299993863940195064050093152256754384482190547908510651058982745874801517036765017756436974408238380381605540834379425840558928349530422562343827144883866252143886010457227646238615024213697977117181198760733030820939587756094171152960092012804324815616876135130974724584402273733697303696954168966938865216730254954988955613315677267028061162300092109022979055946022787283978990109091564350751068949263649572719812509786022130160189907156744993411931830994616221087457040931947942478281338735184806420990292026906694086913032513755988690525664033141625821814801481423132669909949894050389561471051637903845489698853746435344662473106510263861915315794701839218674408872110517956645119130992633871612338767006615486487321329929179409705286671830875992891588047385664045712715381808393021707298956330894570423086096729091627973578890607945633500589487820767876121136021098668021082365164506754107605922645839965743703215636873095246523889249083596468630480540648684835660189602266838310270445682985886959711430384833288267675868661376484415190443208450177850155709363182663069289591192322627898245738516885258031761675428178452161795655881422719034085980081886680220826285631948376132551375938651555002535472329393520229921588865869767160261044986226007831875436144877661410479634243826725168108042606596038092054185664298470017403934253218851539252102612412533996594940111769588472636914057759253590574359271563630614975391385557285234894935638153521582742002311089348854454198377831847114020523615462938550162011354477621942548376139042105596494563557822964153860708909726085295269855817595647842534419864196273132171097777538791770406733008641284849000239052213471684609215066114492969256760561752847676439338395164662343890150427907059214343950645047377333265261978493814000166362733180015678714263719308289283013330347322985337096703865642913423693947522980374682430304372664499753934476736364718403306286623947058561124236519706005221370288980646683472787759611631917786915530778044812211683684277957825550866930203034876149431985823973820901339860039536011150410985830097908198292173589003436012617898634735878898432796921185836267962123635428672666938754691410899595431803804265456710924831758859470265842579224535069648451458129025473294266522150706595234499501990834667573296759388825813263579199105586458488507657291838952283467482986442450385014128913188238827041128483761224890213998025323732712057819280185349613111445012415936191613089281212255569149783104899887298381926554595359047151752365215602908161501899791146977985745812000872047103097115337395548448161931620459398978476797226320506882832104506562553970203506329780445921439956210188202358533521508369102537590780147773874456865927088954692818018325039335744631137427010319161314326704583238039842361593009737544864848315147086381079133155838805976139574622019882499240938626918542922692400355568510752256265836387436108624080719247590998066230588035866044714181148689436708733680478300792268413310970540806591796352616022669325747956778753000905102220078409352485079243840800849634726462224332104898189319083065741866158031259556562935586908841639178521058324691534182338645704293040582401541997622272737785298814261283389798392363085135054991726547341498794659047730152827511713255039992438050668258474204526244117696166712687014912472087075444158441322958453242352603471910597894192378527563376888284006713194125226365330992549114921759004378289030761718879152293168052755515230769334659415310413252335381285727597827600597968161269553317836695436555564549587756193692899096903917651739005560388622427249861461094014371319663741622330707144493010122247333126255021161219628487822472625772169143391882413795408957518174396471663923985453007986595930837208401219116436279808449037052029022629477013778835020118888813239363092947845352506938916730033492197402108745242440824280013078919735561231198906549696305912137026023500695744633897619504148883807068278221831451939689017393694371777252018426947926396126084931967090282601487370472561229600996073041636870422409430216347861904188818713427859845389663977388452377496260548475543983715164640554263349049526248840923160685320462483041467378433225202756250294436668952361142841639742817831246143601621080652293248984790243073468546516014950780818468540139352673282849204676504704931915770458412308844936484611313188027498472688913223026000474660718283745136842764429494242898628672559966844047607164182055904355262034572795283182378054585790008582957637384015258288508923945414301355173126855384465973604824976748955422039160257273434059183738134215915855426668349633755944490052686462879759462284144709323301871894923493951501693799398895458642508645195106239997987708184355305140268537354189522609422552827178068819620350326348172464556356710816097929069767345099734699809315176384497461236528241232893004153781157336732781303433311612874930981891706589421592034079962914888642163171298623783966272293338051069844847066815564578114697262933464900264774097452461678354449408338266747111679619571801580101970665320431186115822774661808637880289377464132952210065820641211747976815623361675950418298946558709129483581338980927607224213707730043062911395178206303042053957367861752998163687923644587103823025441841093302532634737694257228186554176372486354489368228520804201675780930025359383532245050664185440968486313266672220976027836783882636823694227045736531356546253120525437956579311579084537056091628246136755736086901474187863549505309663947570805545109650741597488107070742312319071542520884057846146958831769855079386483664959979481336421416920130804049869940050392153491127811885622517220380145902242384630872937185036547778963794824391633670540948733993291465666303056171803289087967450011043545161909210022227760304552147331146078152479707007999011009204197102110207195209415208395455233476706189208410920235585813266852879060754253317129860911358366895486739484807729349654609026664378100663416360164473296690563247395399995220633126732649922387052240974675148994805772349769954401904700905427323484735837394806511792831903733196369805404704757967061980134751573168088528177415423044462910473436696596388890198729595213268251375005127831914965048334511427491300643828090202164101900649065755566084145356802940563576505745425261230069098333318633093412027313129221381055001364876283779212728044088149286905761658168767772512882114286898921267590594053850469718920062810740134945882786711833291095459700926675879782130778336704657852571338087844124392057331190116682277397403186618947064726788378233354135165210544440735817321551497165467340795116725564860604496563821842205860642480472464727526711944165189998421922543751715476744545452505304880972423649312865621016498577082695385409219927010743682076212009710222410309716797926110903155762253557846605941991154210769227574795558374737955199737190833235527422188930065668106653982814238510412952849566982221316233116435726882040841030762704015520281400463453617987345019007343835993517631632440814149138057443899299668745522981119896475493961498811359618191486529929320364420244407262051743906244426585678846063626629450029966661215826080458624170766321029409494562394092076305776892200297989324812726604083473783304429367997424998409299259018188166585012037052760656865893575293629831539798060670456777304921058995747676825510483607764494727677781129686084790535119380716527471926606584400883502288957847095423339474270218900582790500596761500310372537614851576471010705324352209885730318906039167691999766475734813360719749819388963014406667138121401012052824590990113437782467837595575809785632406893572660198394134416522101326129521599178946345933247761574652348456041075542028911807145773672450112754254044273676073432295954113746264872064066791482154980771687061049194492384784789542426239714198269500244459845493136795524830101243414920758593174697558426875694966031588465252884637146910096245527897796201024510584387500647040237353320542801590087289448723448808241638538496868973392816887248071344367523127499572975641993583674383088205519699021004022680855484884208217191592972902468888127771473651660587538606280613155592584050909700495722619804115086194271648202777215114624845332701185118399805329132096475323274480277517555521624178640538564373485898170953716536749041980106196087892584976146519418660296507231666873264114176522320382938523116751312845815228522178872721774227661603928772876038574691086861458185579066440456542214407269163969491510811989042469153711394660287354488929358413910832608834922190347525584874815790005605461313011429004802242466511158901209030543747824158113866242791514912847325740716953357301583494340338230156192340452748061459886667321834810613003942997231415059793761736376335274016982102195480565873088701436119996158250976443073683993346204826875860403952959064226312783328626273529874187260953531089796665002774420897680157600578332708265179089456155082694071290026199209222115552044568209289481599562604362645541261067016682762889639677256473630023451608364124015970109696355375863228851430606635504642444461635712187689376448159712944542435773633739358488436776785557438603058176450182858442973072541746870869213510602186988276732331019416190286280149336752316687121819834794624202627205855756829848854896671627366692299596633458027602733030995925619987930638228269303823927909366824342413466959055031349536460125241512818378456681944610581624984970812213941860338678471878574878198905831845103361757286011148374929028839565868890279000779925703928390333827496665741393360109370382500779279750165919354750999201007434488204346790193656406786069553364110599466660680036848322793071274087510478647157962280738844396082342626471038837192488712026708941737900563619639165565493309092569715558550688287781648416968507161949526461940036570455396642275626406979581941447926048724098854187135508004373244340707707439459906872465303309431659089652521814239560817806356927174414809740594647297890073149920702761224928062273468786200371160654085059310863304150696188460564962012971893056406551572547714897311384531908722091682901585037626655761109785545398301390669803239408170659239808088199829230465023402584612540527351036006752431296430037829150447110506479209755104997557215694266302114880887670565329436320105404213514732522153054126892951378952897327317358863499412444816840561208216914063047343007062115996175921364170511748586065038454370695593156888223058108993438806425405820310641900756513827000785501177748559719839381871596431396224492032832120391571487438910151338788487604743102230035088665888508993059980651185923020312019126139481097769878783780620452231734911399367626114917780445415234998572295015232741462780005245588830698572235719167729646961868783639418540617812760488105410742868827442080726806079256070886942101705454742296346896093966607556974740916056470707417550204283730691233527288849763824442521404818628216125458299607587669821272656253694208378182071964802518584581696480007919386615488902960440274648566918536532900431899936475770646573976022149113153296914339040018446469875527478710125620801549576053601637612119433233891176581085206514130774320447231979586015921172397494445062372572142210254909915640631158566471302315874220231189801778759351140211291314561797768634564781765509613348404596053449368055175788787488504536899361876993025968639518041458674413168601809155307442130118918335458187074111905340969929492898519731802744298774914702963221675008898385398022226223113420624366933083035904568391248783939910585990998575640508489493770650570600164915891819234925906258088884608887957107970826671835881203826949225552257463438525289210609043590141494076781570041873767617890897044159857723526928764406255014732214990546677809288152578184476623634059615637504880922740564677303594484853714212073002991632703045079883704592280841499808376986784813427761183847022641817702988304004084348859892532376111846038027860983411012177754006244249977538010846733461384762444048987772380979221815622780721759102106018075387204195935846874004820476825234694822559911148493980385493924338135820479371137882185480707652392916001489265643980157680306409099118148226139083185318734607265937809054549399870734306312413123316254415363768679004031374470349817423498570501444281351683950045106937966592317563684126530995409837443124322023056690647286756165271321149973660087004345916579476078793482838776501603464136042996090516915353494864634472649500471856718458538726630213941455007702052097145731231044937727632787079086623655440147344139212065202159474985409479862942765044508113332374692593930609689397004755523311356398763744691932815593646069135373068273036156591433429080562269651061596920153677753718635811257822920859470727088442079188512110274039260921233058554917737245018256870677140242923344250362097506493693806934986455159040267083232935702194276271468134472081795056940463704321614894093828616351504651082112837116271788646669482302810150973170248410698054865619381219571795527087113040944852703151749377803288814079404905154468166430117135884083347822798004298087939387526395346001093558768568368108415246662715991122536272456307366558771812971423293623235324293108140962364089012240279422810844191635669713978432648418496458896690166842165356076825392869815554934065059930150966617280748312687203185366932044175003831571400128750691348900065200976192826699149922412908816985028328499111209927560965957239315950665477990938488076588321718514125399019985613502595305073074460597624666725892936795704840850474146270083274713995375406375951287124639769883981149852487478593525472907096695467857117856069710847285269920499056302175527426002594336048841036449048200595118279646478554760234852767196959886375997911207343091223102625807869694248881068501884447354018739530272143800710324140449371867496803493718827309998908762772207264700600708457941099165347054003879303786556049637361038574411722265757757679571277102994681139320446075307386961331922385415734647901171094609410672597436174473476374280626772918302686302559006307231036289639259279824284129267927199140847895484836895601896436490777636851330321106821056515187159264265638471046820139204764227368742883935717317608513801065594239377936215941741970545285405728522119870576049852056866703179695015606728707009160446425240611394077177024025676264406599666128800283889713706908115641907771817894569167916152163678052791466974233674495605305535400083882589045075160166945475420483211989080986005550971059767355219173144737764739602184747931489809895264607200121663098400585285116764016205877421436153203201965801479821578467507959449957775689001352296089001258261947383172458912839752996163217508553165360377917306031521724145011824207650639153843808665138649936916937712106446841951875016657053858012352292417292858489773637156030810993768054863057107758436738453931039128973991359626825814836424421011388890453641260101188729836470152222202432887664110164986507309374004991538748880688555428239272562580394291583641906643953129215753447035920557722723697032377772485960050392262334931907919702436195692848832556889456730856369781420460654947086165189918198407706220964612668091722757876753482972429350735881355224629657579643978256692976642902081411602249919823545632313075574068486625247743203148771346704867390843247670200784167594053453194774002426895869153212523421892029715700771627650957414581725843810669924186292828278108232266456861387776978371659132202334184739078153040166311780696351451318184975424389722596392343504075227726465733676706601351775443270613681645813818801273936607519146075505351392260528319364141732502378665978904538345892714259562747418369211337988784916449511235130548706043852050145750161960729364342387964252074322395305828598862161018838055828866830472567942944185960742994314406867244756343136311115264433673966940490556853667721104384363876452198667978787063999985575931392080360931553689819300757474748069411448077533866405146235066835544202659683647983129125715646586449352264028054071533479536312769240434253978508454331649791140030175949884157498436128445955700062237342189806825935707902531961439697607409064521696713263209885885490209488865721282727419107832465912870393307518689649266783988140668738167105650811260613395839303440659827608804280644500629761580202312191355828639462346062440881752217218898557640660494219430085987060630169668591656859769552941615996367258129064076678098807837857775579639789103344840000486673004848123774979390959419172306591144131869487441187069697807654066345950623260939230177031081525680893307748989129824768837019329399081896269711375895483152273594264007405175903135182579343303041576768779836829030862048595956214874368324400728205239118835933320086761305848036519399274576327874891059482436947520611950612229170599226232642980858951553551318075916853363551819437992191634216644228390812279410723241066242113180956912995105364725920173001066662652025494989370701661703185440310065859234989852490134292076169273518375917850780915948502073353297976890382339170991908665518737706677651294421413292619321793424549332406851678229041217260089994635381459212326948529276852156119832603801718503925485415912642619693251700514756266061825001232355447844954177547595280289207000590451259777329276538793061780352710851919900163721373200319073443154080592066327661173982663413610830557071723396439492139811876370898607948633871538657091033672356665601167211175610929729817983161231842117745641366951056786740971959657961021346976934151359766654591885515008339008222457102420933105853112326908493488928350470039226026452825976710897424506072374848685471097102695408704620336246328980667487214187785796587492428363849390213787606176795471000522846710863476884316037979672499030321026911951999418784328519422958143572256495592314742687732607782281338350027548364135606036193146128658814833821926256864580217806557291553303342205840725966650280022975912631816798483376258446540865731778112084888104735064463519207443863435514481718121638563963628316588088888665905327742755345214655592860476137224934691181162966556302207624567286489609601775453884374745813176355963055590304381199000420554702676056444449030918496957197669963963197144676081932485891075405200120736273107122612393403468155879203783494167622751868506797637524621241481665778267648588989828533886760714404960438540242188603315961355562606873668084701333978402724330378562632726793484796271188999056294071054903796393865163963365525571086878957334883738568457945470393964881634781575006188312525537781235434996045406569355482814575728692781501120675664747134146644610102016977221527898717884526133822297783865857421367317411032550457517553216442547942689248172796008802049464048520530027336967373684287139716839702326427157383119419325467592257781883449172004116777670272183163076215941667598587983121142495363214330063391946762784819193923246618078296457535721031236587559741475558080899514244696933559618255362001857474068223521264248902702365132202741931230690396260806898008606353835584017518631637244306307470443703504834002365184878556768884240819284992611728544978344529893341651008725160032080027193001465387940709258191244244176064752801857364952984225670128412058646585104315268802450894618410948481361460971779897901079923527302709590376405581394111362591463520570422551433655149248059906148821231312560261261385228502042080367508708089511204319125754536038711028326798031619678378687043308663159102861563366476415272876850648557358188584467806199653826472560802508812538854269428334396270053606521629106885290357477181844805546753892040306095926074578822659659952330597804307578617484821574581554907361769099347193601366326525611220317394440283524214407232325655566043020878712745512230148705067351585578556038203559643136986951364806847188327066462611613919632543002760837291433360286769388974879522429085642707560238192921419573358429563261688515681374857322301071275001307419283826453637107905730341397229681797937989232165215945478088099117081179398436050053632037580333439288195057094220053324102631891003537582920108765898947693872203342881592895114717992246983674499700449327354278100335324739507439377745031250824545054492037524625564850440239222620936630293680559907187251491870865457956652517812226356279944154791516911241219013580201348701393919853300336783870973697864361409154812635771509673954963113181135249939414776717136084354416503628550874258464207127155166218525024698198894421735633807064468211333203212240908723174951564856635890538326199874092234001398362853310401429476120513915329596139563366949849332145452153376745053784093610211104217116071123384605967457080706031065643542558063119267219819909464178566439293073066151082673120854238615794689593844753362761582233782035701912664018015692847887127227296422011802495920377681952335723386484512175570446035375856122299159681766934486297202711894517325325217020618673377680407972269379267973327958838747380989006301770117376297901845694676082047348052513081039277190703155434599308438964182928031138488266886471287638176908312236029439408199894657608356677951333275672800333855066066179087255185246248205885973141255940965430916982065526113007400625518243501884736293443529332397817697597722141827923068179268730614240083622023691322871369850567179763239433900073327728381153741292872640172281160049955599901095291765496406707761434179535827922830210530888120201898989864289332359395941298036460588440914794750129882978518136017703969917108836057573238095770859698272552824169798698088844697462157542132838941959650684453179123776005220581821722425459772647392123893441385356119037097786331550439713678107666530777147398769961481076838841563248459907582206984775222991008478210533709431755295060457157028105772364209081060399770688386655028438252746491110882006684707188608227216829586140832635328681630618049205469356315075834679358561202479308465479099373424598160068297460463835023226535099186486172966310731113788349611914474709793302345664981594153858191597724233590730350998355019514738088831622890495361801786464201509439243011169570033579155957720855312898482424967684476224369089189768272514883244040183365926854301233572516161402169292323253497205233379576398893418464516995675657842534859556016010271713752708659631180406880638570755472851001124384457768692428442069257766972174170465609969631031855600363621318427808149078171751743029210705217228381592840798512153645435528942020658063687222167149942345958096197066653844861758007885644869018805253467271054739826849738162402906258758424689082803168864649257490739542249226933618516418729151833066950227756173476290615098362425066558477385664482878909922330684472682569168065980958741903371864463188440142890757170364989656118664090431511656788429226065343535265070572169729031190426289802180173169366972087959513142965697116534415059511592650021766539023587291654728947435070601431083979337207446428184025996106117004647313448886896284615023261222124316906339427085308533232998821046220386315565504885130608296307749374163280583965434033454624846561014095621797048665495739314566115989032125449698335497118393965178818617685476166106342381504465437944415648391504863771559933013731130271369200266198034431441810146780325524398718327258171855659172169787560737067852033666946461813224924047742578586251085911898182659031369132875535913945259930345126482840868428182312844294104795630123731223800273878879360428053269621586530989302251305569838526859580599167857618820702970075701510078362009887132930511089217053878689274034689768151021261058080673074862070407903348586741446436178978782321572501103208151236378178638300827675693917140296041452370064491469620683201067111557322391347802836477260498650019884634751949664905269933705041559555626214984342397025624114906417718543620076851856039846494710624778455637804495682059896378467137782823457701143397160375008172256463065350911167777143230553978855564349138308975680298978480172688546114951171098663862530258425686104063612057412638520047994854111232905924973646479449391045803554465183970664608660388579612488406577029304825930951333840143317799761738214938454968612440669952860667718620708824423153589686984638548157176060222390032919517526312229339051787454463021418231129200427915942833858784702157683359916093906980797054500113795703512650099923956461119111355506258820577036024888549953234769989636331941565479683405330940320371716068765646811523641400147175310083662355614879461048382182104246317937323237783810317250195729426591306101195659675278921962731331313106641628434388746504619524689052309820428039427729179833277181948868372128053588813515181171740352343688824894651075079300348089171556667844615881437806219907123769740620836699768274971836326866845967444133372173537620440470993100373274357952610555050453827426686739500386056666760812418217906143132377920549434983560774308262473483920339699544187949532723425917031027267559446521491057351997721105747800957851572986899183458734447937381164327687990081782019594316242765935242514350144257739627128984449750314211987612874056657820575555250930715931784995773391964575333216475821864579094636564782451831697991531235449725449953814850786248453848987475034472589397204369981787503002673596552148839250470775673448440902386486669585022000409575561579886610592239450431158397143523124468050415695704901411090087002769340157568411204956605120198288461318777330011453380815736318399211532000552573550342618083569684528481442640683512896449374676793947239770832049739081156046330452554731883563200583788783396741945888561740624595496849209119504566352227713389702462246331811502506509735830680401374840851469443305357838598949614525981561020347915213830707278384824575474222803681123290120764076564531712567953549345570990285079186630730468385020992930828524565407542279069184813843363315229965356922118660861056558077965937482222291278281896984944189253795212656596851863964539388824059985335372867253523989469976214814276508581157173840444719094835588652492044106943853722898324054609734983037079966195136424032008134919413567895758987507283829063049638784820790805218546371104606603604821166719839792771793570536131949316964961299823855643438132170864360048323130934696204642964852866748547351968450971446456114997981045021207745031652175857214014788006515753145570262774828721258373500371945556915224842707349152075710609795697661112103115891212948160136336752376295704672711662165735997706734401018036071320833392562144339251305502223977008849057106167590033265038665658322439681486512470033544828609895588687023831805783061192524548003901973930226924797585148581889004770257464161957890196258705333313639557670525837070968131173169636996298661644103700641374978390721498342259824663838469890727019879057139549088907429462622001541693104675763731385492364695071574728921298239692499604949496861117058415515075063448744606022998751912484694518050115238077469455858585602474329758232216580024141631488478103229802447976295346204852145770323507546888219843578016982327790958721844538557244880367795505466817743935792229685442967648486167751314057864799208540282643793523648685530905744749657752729613332314486450349872219702075186409737916116519355851128019613531836745089268224968531021056230926974493632152636905553288500647468462429154702318862275453580393946372463298293429691927793026741419769899188345700515108144970197753536125161372312230489129530517096200251804887396525045602109145183019587298113214222935530243298072988873810634019112855473556643760851703331931997814317460016034850049653808953343206170912812804863327664907521347492553672704967330827888644913799634417519749171927644177880020554300181813796454206187958745853522788582233786963576864537308767613302574465164866643859075929652441053739075447691745668521125391473203007855232137444225567664685370510920481215860107478804749752187601450368758223184314785960455450267713467026849622539690203368598187986885814791813745615813112533455611256171449145200734229007758067606555097536098433944518047509453648113619479185114385431522134281002181293438253568537272268344906937310741155700297725275977161374790481008430901585124801774067176314594970488658318670854235771962679413878433679430944151104765639041425552162439128436545328858223854530897610969257217354640154071597963870280961390486217956589651933145708110244319120661264389256036793490673597041607661399088870183572063277991884489672962930402643531293614611743089549241080124254595126932889057411346205477997630425262448356212283834199340817948015112375641420751977275425806482921702915208023815610348820247626783024874199947861131972335613003733963869973110134558610962512821230209385729901472442754894890205306146071050678088957714157953911835309399977373171839660785637714200627832529679802006838559105332481094046818980855138838606254641864843919472859512388596602571162754796389509121671423102110485285909605136843858337363626070015610594318276177643750777400531694786379603543393886348414563373008230166852654897057831986074956502143007186790501538083922412196825044078866689540281689652255236389791017713075922744154671545088833003736924086473491667131026574768772134272962322689687765941513899755561334156273964662633708828132121244800979587761197041835928426830924981027808787474271220016683202284451361730970477698840164445713243553961492101615155483665526177772616855078648363000162864636188704244793045671325545556422916582281997520222319994962391233904542210011417374194797705830809174860370400338730861745064423362577277638397247838777623367328627897226722977547045660651392599715045766558325230760317812032731674715651472427505957874997517585750588859034944350671007876569087765961526953427131717837196402250714742240126171596616509652247483303956985568773485337913889482758310043644891671524095304333820418318847602676506666094790729559680945419333802238029344032204432143928994822967312178633701537794242913401872069130830354670027530005272684661610051089693379675229913612033026824660441627905809627903233447029472361452387766559525913926776312767769340914127440888552346489432155920295013324175559419781794860930241405744357151511368450041316509478349542615200345153815423787343940194748030333653846054716927647968309454626367530289262948538207716638383169041766371491295264187231256823945306783964126160085831022723724853881960455236997402597000253217200101869707774410066644268267747617736377485131740395600498047974532471713882250825390475889108371561284977408044148821199686622644006929422811683726864216769914556469547543072020479551529719980227044778618974607576823701916254379388813373780785840477724220999047204499210310743013753248674019047886071371958868732781577955113243931852602013546677124434471322104666721333029114321542965227950605471116118286882231920390248151618587801892812653912926693695942239470556475856953790232528419800292962557780885977760204733511984665872330206634168280426179263912685166578671996405890160091587985094374993689173568168044962721833739933916823716247136432576952622721072516663356981333631029967681647654777183306911190605238373622190320973287067944873831703677483593719930206885596272248035668136524566961222320940374288320483815555702416167404028929684927256066599680274160681655359584393639999409531281205812329405174044807949366594420836655828354354556865081787254211470921556762016763474456782165066395794691799781089784369184569242334092784749989434853297651826199351109200666986388242775414296043963027443059618673037499008434853145414084362399564942361509057218227775465696426493162695427800848945986675155435371335041184226104378902983201881580734788022210941225650472397377602072050339669811148734739999568952275868359714394205222165668146198906487308815793582393827406189225279770773335605663665378223520394294850839166741761172535836713733478482418961432211747117076177872890305752802732348484500258969347131327440289859780496434629800966935290391583266273399463803095770031705968642291513876745432456529388708631690071446196936653486854248828780089531724489014704106290695454063772300500733312720051320339452286326413604255969972677673885700942706341793360000607647752702363467048454511491058912370439570364232427962438683733246214986501243782110206083320592863073890811903578682769491342153377357558562386252469599257619494899632982739462917786002252383581232700880891682246598561385726980638974579093391231318622103229276817450506931665652813162866952815911719672894386184840139227332662126494825512576886646632537044194699899894467851661232151398054012036402229079463891569914410900782118622749199051380566403832372114703083812309348122669833370957439216547012026420256885039912692890813559345328061268556082308147089419297362115637843758430868387177600088859618461829273883649517163293937149303948522855164767685560050940761018246480185760779732851974578812990064131766663919176561797693159621922976435178846793199935781372283332062719957727945980774169883005700168009614001331723052295761760235944538620778351974055719139983238794752744328701978783665713878164363818493443847424666172925393118331420952172167419635329320815268932800077161754222858582151133759363655343267094777834592556070008688416401206856024372522483757976792190961715343169297035249985062904318332993093972230106334978614835502358513323423970204949489866430132366122338111014268648699126857507455081685758932631542444186267654225878931078571721526174069963893645045005856549931614657318431727498523624550758362739631707248838408365556504366295800919195365609542991711290982299809937044543959145194622119238082804800323650274382403004429086241914710379661513369523626302726983502689432676530922338736167120084996915531746224616411781473307833739214208660556610424508275892958947244722058993211609882199749666902144918387623272433455358660138716894060075243454356323095931041661814046599917876739673863360735068023002636145505603824395802567313493545572848858246381262922152584837523861235511135688938986561891704623188896973733366234250904524900517850487508699069269383535268445196407766074278364079266738038911922562937858630870339683161182032610117881001324134103403327582378342851948206146556432384193614348880432921818074191432647098080313675859460571300972380884751267029314623147846579222690861927910074499776777184029069400706951209101503857354354328579410109193283065623329442247419349415940725778077532499966807160876378944884592322702957348215576287127668008499846840073086256769354942206284194653802701464855562289212622068360030926587254645040786558218870027024747611022132878019031969253956844587893461813439018413539492332026615744565268424346575234351019575456316494010238954139448419954365271305451879009507900042845535604430738688782397600068277109270932380013182359606288513181834625159370106876709536557475739877422412487543640065976466803185401076102566739163225633068841758598166768629790743169732121309226017066795607784794560155820692758667845476710556583122417013697069324197579206951292495316700520387377712548231974548706040377829071408274676962524917223821408476919610734981665985035706948236815403818710479946699650039230175685842913732881468458463464317983978511125868753101378577727852375638123306719056187986631049102300494049696836008736664667745216720562570084192474551799496268101765660166223781755079818163713710557079116347736668694647064425229475534616683641780432654217453986830719129157759708024672343582162564206013952768778857669175971459179990064130520228491595474225781140323883520243078002816846213664833152657794030878205298565644940586700673393254816712604643718166880446524192265910644544401727717628172304949083211481959283768232218453102925144110137348600704081076612652868770735477150668017514488667794658244284109102822925373356599317555916061499541261588528769904060627329355714050142558208349744590534651520443064053773299054751886493836600056922999494753676601795436245424585407381193813544633658847545380113705019381813635663636681190629543870411488535971177387326483862737777418706002022695636699627743602778774584509964266322677788352876658042264340892447690899178404325274888267630790388112165331270958467880078036612345712191858813675914379845697823432674981390177546938719993438617227463039231535974520463478553838378653752381436821619671812694085743870567070427907167836395338522347942229887739572213303616497367832787254412788823388687207878559780852329446446342235298274527207049376604761554845507026830485665283294205125388038627606514690974434824482815956938849612843466800187623300129948761466083757286570296222141972983037371336094689460865500170872270875471910599385339411876725293100149397990113554939531129228826749206392348755290779237685542084361718381389078194099876681749651939635744324903081112252784090013891022987428128045038768684524236052526251634105518000946013890739249141700047618442258664104489777469364209561206394680553786734003895630003844396491875314435382978728799236413033194063345994119455711002054979864273906028810068048464759221934478809378516136310168249806334178444914753422155461617096778575444916505669424196602004878177501218114613769503671972089148828257677591059250508229631877060520017076777295975481873162509233583266301250880804258006155223330612305356117974461353485632022358599309340659862186275757565392726358906445763283183113040031837319973007524769813671520996387937864105777926859606904382412894932947634439588769045740898378851969965673166628775076688228245879021865914714420370345611135352652200351860233147671165181796173998042334139922962494790652328918188886085259503157356745681374500154399236257163116308548600163596541334085021853190487836222168167232986009566854799110341854365500926628278760801097925972362247517704759795109738454879107276507090159784336850952478914168225891773423455744902403677744613454996653646152914022940056096628243938406296033685431559226808309460077587062753685406436983143776923408176164305996674784195150414601801674403000105390677804127026086314565378412066536592694278202327921033415711676728634757509109681816168303733479035850125567925058579196350761689428002756179324204345060220289716818520750161726760814195712929252556971561455927732494712281014886640383965268816568136458913774891264595901685947883884476847731062050372465395893302929374139728603025904970002399893650252995523117052045266141633080860591730767291554190207047819300781522956145300884581927590763763953009814611359133287393347352589884813105812148599355159568104933808427828896261569151226246015234748815138917173745731227757592973525924838233917195543832242808301216106030089436729503717617363342439489437204466744569548233549391078120553105324080911583296453701983175509767221048516921248897958061180247300576034484625895150765554156174982792578032105360714245900776837991872717293013436847088537256717993220411813814530494068909832704766710772492798442837483784091707790385980596127192500752896717728356530650979243697849378143103480851028247817983452039879927979649749611993943676728469119503298321780191955367141152540628606599261313820062493916050433885164706396345278275599806953633916305485847355779458933347194821685308113878577464411315625347933268523663185805019584036804915445847823871979146501247823172551152083984162963655853966418412127858899820633609053709941831993953262110609660109073744731436663357896654400117361287827562667330724309302677128378375906936285299649508950909830440417880561937732766106114882018952719463945982706193090751304536741627522676858992903707258555955377801467479349446303110008536951902107324595469918685765310139253971714352385203354365823357162201331311396946534661504154565983488951693657335803699747586367761150528686131005573923725215616123876547611256695731723789563208174482794801508503860032712501280048833318697015123015060922477867848248922420357672617379829445457124340004245909866978321838793657779735490339083615358700625484277071928190425337250048488114493311468840062082865693590270772397159743752358783717051236689750146901831095617133372172702385827612768177497757934947734731408669666962363893636065702741547987052278495968667323293313320065186353378645317226633500386678389301933222898197932425807328093350300062663395330522615415313979500155110335548657495385715848547462270052305203347105447997520155225882663173974288563908652246119150058850877785472011079162910192088267018141685372732969432218468113748328016675123488578601858218540229192762739301107776216811862171222480729966146086701726658927151476348857840428813996035924917943943777250205609732791866598235328040000546795189031240126151196692462507123727707454511900235226565896072849874489402117222388997120466534378664893543652854233013293604228063135043787081025423697064383004767308124726931847514658420358866722599938878646496470204466788578352211696956959075942257747155457417587790527652641174662584032479056746283789302831696534815019842190429438688902447267442242922758467321333663869738020773348624673886559394726403033328178693615168180658003447608982808595347124077669195797991217863451178141668596018038239945045755677064334611084270190656440313004316602236877187907952429534853683494366333542960099891032129906500862243523523223859246895460116080912602663743928662640353654553474625784225275434576171153728771330490220833885237896425667762326092135565561421441498548637018853906966250294405048709501233189473444919066479578016705354036957461803110892663084229387461914752632304350837989106158308977305951591795328809723724891552366687937080232996078264222432440524197223679185333428690109484053838244051211230984200398780791366441432478155762109104875910424834114407080663300415561054938809042414303495829287533069707002529503458090786380416197192712445506015973727990271699324753204561502332580667955580307363784242299368521511192491134508774651304181176274146622861184987181875870576921640325729590122938073342241917575823665462033871889611730713005654476002222159026088153717636798510159447387770634213871838657927806929938134079035069997356634209179255553625101464488569443334393990537441317498660515611451810777611460012923110769851952289365494199980861352027592844014398304952291885205697954368827175059101854095282297147814839086113474345274065137876778791274351681534619532089648019640351776928459719684605516272216976198544640958066480263314487408683472104591626176712716603675203668729410529823082710728879086426129104903215675361678082300627689803600664902069489355256601411424765581551056837354477720350284141963299801244882543785791274114561327589012227312627481680840909716061858931534802542485879301656070966958816703421516311931465258109480309386009886889523382314553662816303949722332943508461041396746275815166645554490928832068336151008834171595220780625416675935889798203144209226730335445902180492282994690350262354635014555953447407056576726124953310745347390267916894656358675008460582672679680273344712368687177477938398595104870396117451628240504834173754841470109353380533221073715831817227616527201678752735169400859161909086009863228248285241749263346445888478280403768081429653087719710809237983873507480673171499780132343067318761444861626930966526976866682967512738217747247294913341733595959414721224191151145807414057532778201496184901057159704397700453990456239347877222383420370160466194100727866158354129639745272616836878645304733047270979661598412231279998542644229869329886323123587077165046548644996147666254439478424686266023933332541091889976750028054865198836643315616300016824417707879617898103256756318744358182961121271585892234768141882977154737908714783364700662578958671412639911749116562426692448715835820680777127029311526565232471785598948366653517358252122516687914994227395213415347163163948759797711924966339176980763809571881933840966023339398963227707474372852419093632805603763546028668145826310497107278126388935446219659546921237607862380529775991546894183698579396656400334446421481682777787722076140344030729961859302592427051083747893583016859284797767288432645773075087177496983688797077932759771650825964817776462528643420193010133691899138722022179243234274339578026169800534469646663733521655667016869839903152772704395804978281788731820724381835258028833657703890873589054097608016169525295734470420086585381269161616722371117062934770848839531559120576422901351703949958384671721885785596798858639527756030831305252057241735668444551276587831353716626604259396025421287284970516680263108645505230848450283306429354176146895329799366416792144992619849566243878541033932254141941832008663806611811979000604251528714504667842240039083608358683069778770609465649530174698913566204136904811859633937080653131872420565208543301528379941481795574813339469814099175364601886833346084752024543668091067564247864208335962150766915002284006975505523814439812890288421583821444794693292266269453194138069620461577026841752621699965737241341876428773208666957701916404705014560727261619429280657859406234532449732145101242402688456961758184928247933771464162869640268701897980603514764275510710807990715610357321261479194039428900656437745557092324418046365314250259113811794434334189382328710395520025243379655789479365713081113549246733704561027556113851723332816011532962414694683947276214649235762575668223292183040546232179087122384447381245455416152364582750011468448434682882536719792741441392990863046721636940574804101287249748473947504573944851293295218654597417620371085511992087656216292364124741583746509348353309761219861040931311050045606356030343814903695997929359478323293622962739862551470878190646103047403944033540555710417945700877492075169612197599542664814507946627941723795719896398891399667163030194714020473909537745675404654865415693208159736939701384591446670326657378865540798935754229810952532313619803875766079207702549724271131141184206820428312013963461543655359180182204534661038541008305684049093568319472653775192123323251436459934812226877962044154701908375552643024901526332415387045908849684213911515456083019161577872237110451723605566239676455194318858460624766219381702580193796321353539294072092693756494547040490975785504607506795247790987803642073141100008878909945833533690351809103805497886288335136507444381203250611167632650938162944578946394442352745690200632237713815605772764576893660991094714808541616368234377965817533822959000348768002994340597705828928455041576294798674852887510523746052284002308744397283228435398293370670290901886832410562403881310602272802185652180582129878000599595340987447400584024969883471345168861731078884918961551736167664788104096780197015054941892867894779850318050518931452068886861259664923476063609264662295291167166132184871680910526247680883554670433210163354440651788570863654384453366290866762483625264398220278078081826788453252298519843137542386418244941564648878670573223734418918008634810849542068725184700993084558130215627700075996982935771135180079756190288693198168747243245144667105177885099042615208540417552663951124074747252153221793424359249638116084852348055741144929718294634808471278129508921159322542185376022520045209289431091054415696425253145177494259244808782510545789163627270331600100868634480813827283556029587450928919538067410642088560589306457471360995921918569484999177980345152078055928732899742996645610689527098707133098853207618323615841338648449858949603482669110485744998372444241004663155401292714136560391236886984426177582864895403751854405244799007195100849170833297736007526202805186104300663278132797141820892045795057719221379061479466224994548562052831560650574686852598666754376381408338692428114986130484509670573550181178570822980437231646370668780728346184129425788597961137947999959747367724371876260606733513577018550852235783840214441025468413159430130157324557139955074906710819028414278176071982464067063884951605865200472999391603163282581682085852992280269298124613270622695006628482695615754407678645136397651154459493534641517427728300576553463709468018904721553412790825321750930984480926674454007987527353990409941561717950328378028025361211159504092214806090262134161089531361359049514034274985487186558404747257739243798499839739854017284071677359723658660709074977538133935852608756873874681482165812815547815875809263439692565221714999696109790382201392532493770312781847472858252891085801342226365435478970604042574151834262436768986319093968828925832743321528681521610631342583845903985251794120039324584365314110263510996194448298651076367152907859212928534606231048532878074114272854087552172596243793598068889957641058817724333994545531193820210318433617399107670740280180772417556172287963307533168722500086801537278660166074930222590938871254608962749702064831668518491834563966153203192893661005452969099542069793771529306256296585963916595111669537455122761962142838357123873181638748721750713089689284641138892916743602783944465685708305142888771390925173862197379476155024470296425376874419671693656655899367158559456175364180507546915024029145799555060988865054827116426707116894230228580601653691982740824319323229047112714006107214608921581810686074123091938223596327926160408418999566354331243524384517440540704204331952326581497723230859411480995353406564912372276194932842496328573408230257368750100532982613110315503055652478141793169550648599033900052214925423531236763891838898518505579473735730118820926995623342551325868593871972596610167948398666928346536687999513132408698163282931108957987197875732466155207976909205482620288532224753478989930247539505373093224913783478954017873450361376193308801366578123389574626246366566879528184142356730597108642242668841827521463127759852278270855247642396161693899570098778757321431435605401343187322983511770195742664832644721816674231461016709558974928128641504972888255455957658026417519119353945852216344762711122799565154612640465296454937515070004005947302063791415091616938163886530899163930845624874343300215077431567390329722930751414004626185880307977524647465128142184116303876205889489020840128869905819872566908745037409383081054618197705407435326298987781887042844485206903757979718742063197618813111052526012844504776805104938718774371749441654100327635754461381978504121146804776811823424132546248331323160970215946209704087584211456721340978968686056299633862753991627704672322920624243706966851520934262013433224011563731858159692679562587586753108034427905856125626070701173310950921587764257799168365798051724071841300592630180727777848489733142340338292178214862166363325307664682878405310034246363615886748837653537402690695036418802702692224870386342917465132360901852059479769478888643891631823752625555744739062692627863958558460055421920261554146196311007206604599893889166952872692314911252613414120346769068310979247587360757260309298203494965353463467407030322740131415009059746755420404082330502170031103639015872037804223722308982770541702051491531282800861699631736480419217269267423515729627109006562981151313848777758893609240987666572796206164856816383995083653868668342917357154840720326481497037189657448351320840853125058620151598030925570006910399186411501411335305213381813514027973796310499561468530221361063178231191640021285130374448648430267088371038515935271481827612022910779914876637438168744420789660317761122103329406230144685021436691899381734537463725954369368021224624653374526938392714590260864808315301568603081082059951519253790371128910543940844785114724099634362074862570495068928407878750039229138080873712771123034492603061993606665204016531639238282618076446451218866797470331139927691934197612999063748923870275673485463324242321353507681366840708345029841045453080885748345513843590323335895053257909702463680860364255122635479477114582529409143969361418047564220494960337474055531346306267659169833847909307902004327931738787751423074985417943924613591919295028191834036775723046770285940080880132338700442993714054209442516648379655728995907628267758165064460457643008332522666693033679553125554881564630915017039633744452370715018652527024692413420351429796645252998159958893750719287709919615236371035552845879857142242965782212764685939822054409910027881406832212068592111905207008156601649927102140707242162077714916953137188888167304731552536914754808963426099250156422581186905320090000515137492519193357733659072374154732738745846533425125679624259361029511997467643649455630793424310706490444303524108278630681721732516784834045274377108773349717310584036827891297991262917448429473967849767424283888456016691005117784759198079699316725608049720494618185211127799399574334429440785281101338605582277228565457449015878759663242232958438739139669671082613215215860008357965584546873200045543071026845920973398619918636068548871585187267696709126421728396196274480074371115873131088638378340767121591715789067265499651088072900226415792119224132407552014058417405216448241724638552438392853164153354355645540608278235332097086926795880165261743296810765228294365615536956455304063706147819096388722985616782829091788981511788550945608540530136469730339842351973699333998505383054204604980819914137831548570704051200860876330345452759927654376434995647284784940561661296276579389342632572780277899453857167016513421398572857743319651559581595081290559838335519596483913655252421111581584960476295162998563703579970745539659075693189913528407215905056305566645938695505612578261911373356617736944554628034888509122349891811333590929944193475705678424099611286373364606724065933459232511199486412307990415658804439683534770044907336001770818517798872891880300132114654118013088535340351764335416225627621594986393801948895177632172170689148053694330140725087995967372423737714102986718792943037510950265811134520386343714784649865819431871049936524340003193513155150636331314582448100241703681143703377025063979512757895842107824465834576703298819605495798794318629017036257153167960043011089555231345918775415186064632619830046688887048723429296238688422393398134547543756629563412968820407620842240084167175302507046431873257291956105863073122592825432025847496126519152962186821308535708933647101253873792035001171614223230714746094374207014812991227240098265877217228774056771862367090378566745537367068170257571678715024269816082008989719923016616944938906181729041054569390812883419878622573233715173620222140102074562257402232665775766687511941214967017433351000369454354566596432062269634499470497990953338280730285794573567589102872274014375098089931445964923827841288702131125851496157381807363824752294759791868263286515930092068664041261811937142300682146926788132612511645248980872523346018746728288841245239826459857024481754284058931895914908115913225296613551084021867243703585502117369847989986688912735416596756762311100824438055762575486205151073285339007473585316532445102199377402279027785548587603019970774766282667274714295125863036131643052857213035918880597518903072897695676979069720221329963443104154942219677914875556918555261957697901691780426726663620547000316588190639807595438116903793668857031450648083239865964704766011474719784762693055737127986384521148612484547592313540532143856396986182017899509647258119313046483865009482852271365891192896240211663577385191365516782310013152926671713167276110665530975679993005102535044705741813024272803607432872365647631634661111932513558541547998818490859897971069151748896257900456120239588197359480326250696849561989051273324143049366357558246009993195697333155938480066075978515739929725762020553409252039948317809710303961768377723616129649929216716406251313443102903947925529352585588744689458119723642464150143796007352665312458236456669789992196852917851881759191246050768693150207905515655304160485765449785344840595283042799215980815596379580528493882275864561204193382929091693084114387346143254038511692704650196235778583839155175065728361317146784801387049183055323661554530809008104329714785055438840313290791654982315662191897920748081248262871451559520346648787498878499978700917889342520759174582130854555110552227871143287928950510613401917828405944350846751170782768222495413983545012965266974902726699373518200226973235458724125110526824551185623186123852461640202260713292585465117138206225086225429425902733967320488343351696266045038517318701700182350878725002089642198512826757563935352739848659501371188633764762342545429646644988895511656648442129700737274625012145144170007654098455729583273101355186683138660417683006418052369491640543734389739428586547736103947623647007438634251190916655937046604680587378924549516822719684150395161105431801770986655831697705206983448203097939405435891538244218880714954829583534382844422977682221048023003271619753672861027059981142510478576129425482111009237659223297441534318940621059885060347733091756166024288515066757356181558640293938400036937794745490901802675587043799682386712746583347771489849427226372679399554631105843241534266833606883301581888917990919975900113213131362784200398034318230115693894945278180063391945417215466649600399286236690716011548961951331808908881258163198703683656530245720362552309146215235788252102377565696636731549673826436742170068476206459644902867466534204679580956945040439961794568239614024006422653079138696769856654315767351409564137443375067674677788472005977007930274654570009610934569441035177885935513819641749704969815004470771503722377903510502454997103692791024735607358064963273767941666831226593681873419832431901499615609987383134494245413028838640763038478754288403432552229987716231142974264868865134688914438194006416705865730562398050944426458432851606031477681563086806984342166263506564741964272276479229714541637000469669364499133975318201668320011091376551980769245775916771688950929455072258908966304421179539890352127152031705403626107039044289632156149111946656367966946263943463167128883926092651320485659977093521234190724098177895609359006729137265541958549104228909607396644761618912591169570387890807780131872131395597910887306508113347391551129677082049027889775105505554579736191141693676495737270117736734980280471832371712075296111073242300160846692270471520677531674351377251243593145184275299680874418064872462124001199123744870733961283222936592052458422959200907994880476966114882145032007920127440089406945418296029211511964404917300284864572561838707296594027500523709497466479282963097022458041027479965325021576810868008403252946870673436882457982988805985260642071419031884795915533047965785439499199616101908739733905137463335719912844673754064420201427122964432181607526892072238428954437818881114224275591096172224776393560987201364140496759380254079961477311560293895688759528908051469139954221014419104747693489266219865466266835892162158408694516067125534619235388219886611612734465469522959983698372769362724638628474252706905307374325835669378989919109565162871829470086239597178226848139367004319638058860111625001765250014518245270666922354969933985967511147410973698993391441270489201296101647778971326214398857083155937681236478397588376032592425138864933660255273955287006955905822105029707580621183263469197804403704347007319732579665778778459915369757756548845849621637345496788543253186099240523167350715090995162397936983527323592616378039938767618934084854215711675859997370921397074028969290790923762936226304974043218429719572785965391240583790860224751841821593537633496238979980931065862120828564472867090593888938086346119593605625744997942428116733094258014152239121002400912145265300947908440546857781725524737776931221131635547728376094070180343370264542511853563330344390898666430144969807002588604575778483263501129657299702765161046688924572941764119801595504291090894656962902763203800488148610957633138533473943857573277153075574288077897846296322911911342464351525121456626528812447425443414858085111093247237347108652977495235994397229975938965102302569243906857274944112818665169844173853200265165605222059673470575376667167714237016493130951152965732428824832367313909453333436490848182086072498056741743166662208099980246063312841779897584183900249365710008774716066980759479151103055946769617718835458018118832610470916486935891631983235748469748068236774009436222240805614769725075658645989551420835393350997935574252657113661105336251987437503686800970111138623937580899171540206530082218772310418077697178956472859743148148586607061497624973153460245649078670029220599037249351091970703274740672475285313863997263600282030844764447173997820847835465819150312378041306920620150945869236511256233912567861520139055043046065104727164249360826397511800963870444640410975459920714935735642068720356614336679776031816172522328690778404786331468119927092928198484456469799272724975709537067978913718320274367353607467973911926116459641592489774328060673814558696227208540164590421076879918630980649618327356127423231071618843774316252802689139927266904441380602406062771180931206907262885755649918826049560339929535636970857848458635730054992222223291886260789989696311515983922063574076806319611451395266195991454793019483225203541600515927985909235927000700005101919303266032633982288735563265461272508113122443037898312754213135810113854487370760823588093186119016825154924131256010844348044442153634555967742769847629508996440150539921026376009695757992070091111239537068374053682138562323042646359490778084079188775120899755622199340869428336665351947921751235749796992824311116688656381543478047496032583166589592151614379767166533869219671790981522374040510261439700356008598613291824112168428968391843106400397780439526762232856081802713769571488885379961866411475066913172261624539312399689766503016504176415238060574439992179785286369435618509880697033695891742762038843583264736679006326583747829034895505950215431867478405592382048532634660836491688704404846836090359719919419569067580607442522289996834875488442497683682070560798347817985854530878051530512677030033485841849525926459922733389965002033051969806619202657216251049116990508127522861587771437635774778836231992642255744268721979162434950067237659241260733525504079214973748754692313280316438154663295197372987669510742443625278803662442786308421099808793159465447651938892072032244164763009742480322716595492221683184658798431388581908822848222263694069687611041546553555191744307663830807951350614536273037746210170245343807018797184608026993112282013143276030171995855018275043501432689249763959263611313310367129122981589716793832223058137106624258339647360561232005042925228486279768523272616330601267466136041109025762432225857982367728182843099008522398331132191332698315225535460189399634192562634544627741124089288836445639714238680536549898908053004220863810335059709424286090096121030379008488989964915863025010034363504594791098973322607802260704446774587107355200811422739270031556000872828231341246044039257663230455815223523506868103220951541479455248142045561720023535639744255955270628922801286336914449810774087552475682491947490167869376903291925876115018057032333376289009711313213502228396495072971776677295733430327114948609939575894448221826345679121027175094140693518706325887782595859728610729716843424971871788645980816444083366362412935979999955508186308695408260436979241944137130478269922642887199633119833065111658119879083915825254030427994865084533500086924341811257249686887342523194114806670482984132401979043719925065472129505358748010701105682458262799881495068474522054374581164565492874370027764330556835026084157468602005161153031574773049333303436173981592753011570490855992355814277436413344540040718736328905582582557468105598105657476512472583116652920884913994299129111761110097840212710082227834269261506773728965553401392293822183089041811368651847549302373134389446352211321668405599897680565066703169973256861695013060205710063088297068377153432665202081480059156582289701183176731392842388379557325570705482070042093584388983448364848165485797732379194606955709120471640388222375087777758786847537181166262014136271546909304797057974504712524166129960811062511949826456568338902081357385193269566722553182980922056531757933408260842771198985067241803756445966134639519463734871366279122308800832416624615453640879796928444483092285832300591382947736371663290178149983868994219439754985884184670607394776418732415006071157883601291002391119530162493925674123914756576064287153646725262225793956624078790934791292820945191009660899522590604204406501158500889115136190228772122206536490984548714074462053950113846031950011950968028873949049997849708545491811407104743340648032207766474040024732379137943565208765161754373233101809697253580449076651054702659232547205416777562534422608204272515904163731094727006909262915622128143021812068745950514399072435519759323203994624579302537153427247903309795611615962368172895601507308828829166415354813511964963024301457730811837925408753396350096853800896666256323572347575287934880339014774777070382249616254499165747344983976360052585102561462182169147495505191050250917025810192567096698570523683385663717350658960915944472812746995034884227414365681338039912277142888457442672304345089694927901785212617303864942093444301641691202049443713202305365576270156973311634376405169842461606168638780513901311243598151262904495299968069349729870639667597738573861656281117343476034591212895974119276394090882018990942951899945847768161620558007743122971041083719994035734549904045174047604620523582436607246292109013094208231394892816665178992108565844330427446804166321653659452274655260390090353851005441683563636874606700484538725844414195132264918875460533481759301957638095505293535006488568661436766683906519694161266173875424394039124075798652946182985697528763620434363882638665911195496717876567098095836881910848183751626118296578263633636004107656316380105720746140674593090962553993440639414853500910792017901020270606297720828504003362951805587310797474945958369985956654151075533379880642126093146671240124300553214496810299157052587066006704047543861706327076756812469776123712118539151297231153575139614263263387259674064639944427408326151431330893663590416714788872175491668831673020866885343554216668837451342978716645590236493495527767243893436990792813133942881975861312853333886346535045304187093300242770116749264496053495364162086548056996637263205569860593455635913299228078402029369961255770272937231854211416396006115778434434434118264851878367320656971596882817315935687424983152335609059561075750829390707600850071437457370421943425488993786958116073906744307486845404803467995042325778051913518260337637045175397506923972121063137211841467908544241041346229014899937306933891662944217983196751214012299992166862061882544341130092800947647406481655041304421127214467898485833592228913170525127402227037244399366953543410457199591522592800654299612374565564001305303463535417788436567452199787596846683915037645598968816776049123600309147171862995945021642474461920477897100874332839312535876625724880905361676713096703286229267183644224415747542367388410233693088107194570859956992465857746271826021574278469400552458491904950021290952901963295922289407369007742781722993709993077310592364391602565246518691211232263092360295623253986022606540094902867063827585327466269891386444060685386319872994138486085198386954656712783501220038667515332096147335485437310810939473705275328767997613405253248214955532633704465897294204222566513979468355621398260452220079953680645918253021877700208633106145325087699261681102427806218027367357364453583428520747846615765282817063018756629796229376306929346367599770302762075291154469760137686075948592892139054369588214858518873802183434403585087027797501169886432833787089918855490771518914841420840393832295709100487647120902295764410981597848931176747261159499282088035808307503021036996019849407433757151797751803450998101815177094121454184746030225323165289777254124662859249339881191265835823813572104697176093948004194275054030539970540883322704160620484078075853648537534765219837029506054019849230308263514393335438214061565079305051349176691521149777480905157073126447353536249729499273215958457936031450951805485034960363423490373014092374148219649713516573041025574601028289108810684126217673357672158128971742009854196940968665037906555155248849479095988772637297887472856577430407695887744475377016251544916727362039609806554117254758503027793061329674731243312432099963911124110953563112812639731279339818190868988927533974018967286513821748294130541136706950248561972930147866816616115339975867683611236595271956060901176101156858211170541030970936129084297764881036078088180292054104753173493118377226007828627923797478655339179670305576983349825849318764313684054281740817836828450420813127659756883684775757582308876910880235913275482018843196107601450286144872445765825761534416299929246845932743338255038158280488245936664709149539341793371192846218821278097210403983904967952902388812695097293120873005464730705129638320463892939674191481797568285809474920445268937329049377383867817470725795753980705211997303177108039735231943496147600229869235543144284946488620124057474574830509963959183063354517931859800957234404247828166006310163496080093560975121129290154196324098833199491938506501147840902167556419005286427381275848660468251448583577284265253839872554248783705210526220891952219070967309593273939357754963343724849579656058169837079040523578137052218155781683549791745644714497499703394772504499638857952648608255795906098956397189874369246976654474270690308487042020902007366717850673487677337728151180457055363963976764335016234184083773446874273632197655611793796145857975675949307888148774575231419702980999007632219241841001410216914758262295362899406135218085997197952591289423183677561466554072285660870026932895278597263091688044180690528741549339250741618265640012575214907162580860941773766364137630174934230182584570140901420160494609668892028087662844910257229396953455014786582444877986162203306680193420679848836861091687395011993664923371711950987613800839123652251609254573008423924058419090797878229386848547995027607986350138715153754552477536040477241185739306300927051832140629188290337912276191756302593222354248117345315123580283072515589654835177939986605161492979270935938831321169466668014857801952655716032000470564292962866146153521765734282078925496683985007853368444446842557679151253172718944744746255389541020123930688434980884592658346040168031008584359814023883429203532177618988445367507297896060692429854473948426100199479003541327266265616109386376045760365238463616992489268613231053975238651260472371903195662927400715546612929014346988244261150361082155782997454886403945486964575684068632469703026415332402930301803783818981721959889281606170577190095073718527817715179405742638263862350551858444359089806943650779800744482977871088704554444229235588070530624119753169589129532825616134154153462905801517317172866331856676916934416190343006592397197831829805528361055877490775247566083185301198289919376153935051935169098746949819072534092915557856313178182185176863885633242234172603444801583037195101949998390347600266620073677452348409754213005053359780888440469016268240213258352706392359179414914863706150040489999477277970483269202896165236597234780376254921752616262910346319199026676454914793494199887616112697864683542358864158422910700089524235211910071270659763704152059309041772297935115578039273626750878567310498798851695096178138610726015139296413560578278027160982839804992906284683273487352000124340582497763875413742971820206907163715088094315112679052837662341288226167023915711199858644351878508886361782782324362893894889821719047539505772454629308192969753208860362610951043731372748953409837802359654092368638171262698967621634741880967610600269786749167018685297406914407492462055481623210402484644190067716290660971430200274004586636984784340765258752082681650630848479163276635174588834429884176083817316780589511455511660977567078917218475898962143377049594349500899149875816661282374190308304547434338958348342474619060893211210456833337371632636915932444042009774886087114306763769854060076871598377399650471120870046983943215106914906820489712406861750635698947244917242328729744663985193741913215114494047077753869621420268853588114617080389005485660561969142776325657788861751146109638941239612546329665614257132324134210422398145274945702057570328406461270778224897038631249925863954783177818376356100678967437814644344664677086343421473862905207073094017349766873768650863876874644952457029712908553533323462680721786354060040160297185746017115367822981968373468358912572142166529290431983163325577406712454246727265933257459048570478779398080592738812904851933426151161717453083792241282131363995090673361025343568895455131225289949777037278795998900146201630443692434903811654118480689018365257427671394917851881236079423265683315563277255350581835809891609021505266968878102228423744743390149414214410235596955795643837296726153728037836511258400384495854827314922864874404004792722885440418727496344419432326585906323523346559917919889214582021782650251020668737125127960186815305821102798456460355340760634754173338668782393722666958133573104342665430324472779469010793754131936362857751085897871279332084024443733678494226920447883532913816952529933814268464804928236864898741478064338198020993279127729142517540405693581353104982080256775965399585433123028416733270704790372560521910888117699249980673281689776977599038970674826379426895545249410337293794200760043779797177277945702855208905047524234751131157113115075547964649734903922341704341566008581960522312502695513387685997620469682549212434784679545353961563002422578306939449323736262101715996665995569865093097901359583582121259380784504730885281976510832061242773151359092406845506939961778117136557318737372404906118066773772240738540298699034512117325529197597074209612975400992021749143569928713162635426775540216324084450537182263749400420692120778950630831205856852935192880567645422690073475752492649029580533011221115791699069185290550119738449374146284653852851945017710779218457892234592398899593946749948622436313566838994927376166796966318133960456346585516336259742421993991003758994784367715927376290007640507761732093127296876063759377669378350612496640720766392807582097179583628178523602958275237851366905014349449250667985025881456258353606690666560024391000599418761250350962616617619315086634658182096301865755163971839931644695963199778328805152981186139511607426810782468801773542123620541051428434274065748254022624992096030834412392710655415743347426398626969041295341127729757840744356629185090657414515951120468371366137009052516080301575088347287572299016633715958608508931262264867075879126292384667515187178448069463494485021344106693869288771247618409034243348373852303047910603086027072048334048927314875763021388753673980057919376661781249391430476077160708742109663440989703739806963685176493654911034008894071275461508883001053270370894375511283638760049940144411596651343410799261461466568579524563594039958620169348736255864954504785707773927376657602382863762450530053867883952752559686547181833294997944598904180986976196535859765889781444865647734155265209899566044964353130462773956681654170751020722692008946684211699133905346239039841522929379048361812749470463291865790778071479734224312726123627599228548428037576695484942624158772123991220595893787881032294425229252294616369556444496939842865513117009523437670743969113641206131887950577519933801045762503657829312366684435377720181001459691383620748866851962644525805296325489651687401590473030349584885227873810330352106945770518418930272565642242562637076484109999980400369414700713460274216541076596904138692745836622519467453860779772637468750469757717602289477992604897574700596104127474543376840157409357363182548884345676702492823711747864964747364049645806904333223133695944655750767066574354725930402025112579881654757451737739354030275479223860036197147061179944513092202750115499403068064532993044482894815903389192123157822676519566139503395403721155006850385573867851829356288262486278316095331831006186376956713808016110449887828284289486444399560612746313737734622386904286357142413612964909171306460871967576512437794271838378329062576200639110073763546626178914045353438162288523652386571144716279376412008849500988383961905180006621295916984735549666266417441264005162614927720063650103543307336099707371252940531398171093193592532780682485273780093883007234500594926509947859342766199162947724976994133377995394299851106725290745819979817990833952651815708853643199684000461293620516812120197757612238346567981509077931365000282785353417349013615139674519084469187199768510112628745320261675901162361397494371549535933979229367436646212737640579090350867870643494583258842768775962336497746753313510214140770425135814053606023247667477741842678719572985894023455000187675200915743246791830348509096753148506045409661209571242815280443563156443653523134978146635825439068361542443662609841407272422306119236003384303525047266441446835769444571496025503084299506509103466540358634970378309033414829357347613690297630663335107691673490395722169209006299255819278956075913056966650959447609347081781132002157864904913768225281149618373740619235936686891572212122751749937735356591428720805481453680443331663464355405913484818941835685107849381606457058658084552848210421577056456487270129555999060590473972149934639914180315752217929172679501228827987693586973878483758497080668783458720937292769660378080567541175641203091147520718227905515914979931675824650249872086591272710244512592901679393379273802890235297103258173914974946602661473605020565190047277387600031875298183117946957816716563226344127290421792623646496413634962851543410140278524419866051840185188445675291710572154315813003951191325382065286966595996944154518947942608011306915440875920791275470414983910125199853907218564272243027473422004509747330738188616781230656490513383668949032896490014225175410576823796674375551227410471221109730245556483018577483890180478693618903609997241640979607074307799504851228077532259188435658724781002901872928605669638998812090657906997677761354766094351234908380826045530075239575766713167809163243903066927836564850272323514604915020532457845627844789254518490417514952343008668021184917453252998818277920425727930578434834876953269434207925368542900583970287419548976657577004544540248656419500200408854049036794044502000245579633230459207753534168801332406234355537415978821458932418194529186323138119708362930442800733372259562210997146050491322012017302696811062171597378386598871499704464501931491754260051051696443020443682403648393263221608187503115235988762215021585623493514040399229973210854188441611299657667089674123863695701615832519805196848988442272392569133236933926109448229877689272430420390165534427058454389368991623243816834120927114346483536282052521010366837606187095678623289262479212756755536975646640246641015113347329433762426140721778905165625874953323989567876719967272931394030337926462825467511838278764413600894594262303164714939033147181109694595619981168634391942840150502608052788049127042770307169506358850831422867169396163327199163764631230477270424586014551379146083984820886793307491655386733394584413162022514265813903068111026834300512867767805505479019654611853372768940256421604082507969516823219943153828292533678983569030944990879845542846998661215223824980538189543460752017272239385470396753488324231540888392059661468383629239964581407993993268935234015682243177802057029641167442584487314857052922903330451964724000876916664363814564372467184333241011995373076961231164800282867332458025096975526620770171689829229449799385468258214391628725840047124321863875017710683836849820978442650249707826092346324735258684293527234422935240381823933684910022862022776725910433005814495806726907965642343562771575620514471352577848412135961843497543613444289388357548627575809590484033534929358660607599373264025694646071159331499682957899941920508426702158510030932534032168218128715487321517043561948126405532215718572742486024067092976431272395989517324359189533535479806737812454858702254483226959970485446767499793929005391962670726903683245598219868613933311774108907807612448414686455948698332114453831928377611318148685162079356480653413886824761209804357688730527493972296481350766034712426542405602832175426868009846693722335097816326223197298110451247116530355154337580625355544910618079272054332666146649384384811385311100937631390563715927128469204776299101019237089464621575122354298200199604478386241058720845505655887218681148144908733185655156263361689357588524381196455268548785759771599823709637290082771212531748002906033228470994389004142366637910468058733399444285312745273661671314874055494666488910841471121876338104923118581051094757498423203231286104965203288244901261644432164398146859850766801820508772407848695584783404943954748037949103938832115931845277086137421284786496392548810265322768839429736030765255074712370801210294552857432015909631847216736646853212905366491486668555462324130140321873394402602421115994528841896373423976387718460053966794008755597687608401316801360940894535457685970024356846636459679958734974901963110509560701190854001286147727735421369974187340159039675892295794064527361321743057373813358853462859598761728392529325344367870338365001740228924202780691987945695998328517534010538532733527538068050976183615182742075136214853937153600053310157115833736291167909758099100695625519719922600565413943154473343509115021007313616340896458150290913475328653522682338291159834659846691222637975665861532970315716939161590482988073960236566198373715081098580701173075226943261896751189693034035435593597536081587262608498636069842162378333948170761986854424446056539931787040798905607392974151633006950160539158528511927821223576627884735590330036317038423238444819927230473001140810025618601783895712984186063487300800801983037833922828909306696209973117990393089889194676829471528917422863021908530151834084524344108302314487175740156039525756386402013617148926958794402024100106086524895365887294327324875604872050118759533137471092754113016012020652891938288887199068342219343112077024390612406424000559404546200390078037639773917701871439359589356459481652253556631547143854001348415127983423579142001610265652076538318114165411583789890312193933353984317354006275651370262182701757700049289389057652262135338971904417516518886798092808516034479256327369524252909958186067558109380476208466586924157869276000056043692039050125469986900088736140049882901220487744924722618894328641291457184968897954063116677479936639928335113694366995097090007604653620925653166944378581203110901848268608812879380304942683353357601102344496362695062624364127591912557646209850175852422324766007141175801422296483734499672684863271944642636552092326989025739512986877888816095468309466293236672083789566734063004822678257400147099151645223158222919031042575792887080209793877568725341767858879927559234604683873022343680958348591305002392852155521209437695770030138004558462515804102685465816599717588641932342090094029374376728522791503038177981334957851679553898436615620517930555013830949424740976976541149157795007279713246473315746432696496891188286627959919348431280061302277124459775512017543258240457672587959949559339377485151886490069028935948710786164604552361156454552190118253392523265871522927984926651629872050271647986428484416380516555805092215221057798122983703627656143997285141902305193435643568916570984944907092389732750572323726487577480135049035097159527326168833192260038758975485093951290693426369344689910893747749058333175270488605729633285023022747705949711699094515041976299190015785349897963044066958333617623785386606649744864031400997901886411488536635783476690528508109703975738003384624269798917207641050259242688334512854405296273452981495627687735781678395071357281523880850976681091858424820111806207751558370720927074314866848782954998825414154204640632459660056486497892297507207996803368658060018932812559726626469743137840679462243477006755303963644783086344443730822746589295811702792887731197143729858470149653133193847099454970281767761460204248713576790046147916657164074406171907622806246317686033170512313341972158203629580175522897933494170513100835739982030196117281929310550737354080183768446801639284963569999267833221433355252930696844770532362995494187626746385551347816350860900376457864236272121835286702583446041618861394536609092421451184146531580926356701806886319649087382828322729906736197410661594986658938734390876698248836645230320356803983039696632590772112330341918812533772244864326229121903424284440799367733404556230939633224840849948710651743716623343495092235798797429506626222512921512856243407693771714813667181535288277798739412684179149196077298928686106218241771901614302136869888823933589304154516673160260581877175725595897774866952720910907157821437507607430630311573382936033001270553196601361734671447140254764187478228069104475548966720634768331670394280763060169778118318306144119520931051630064148417657640910277209853135297156766932427263532106196796299319120511977219617524376128423034954886315438323901559388807097198667946195073565129183299025417171767640772357810670465286274317047362985386741095230349460450657523825260039350262950576397148967459494840430574036583298814698647285448074056678720899577785793883576366681715718271082789177503383529065698651046729615372287641535823599987504724216755209209293323200305217474157227124383732359163791920736867285927115977062739947227918216508868929741134137718497113382334843552804866498314911726698313888143562652008884059140525769837173915403779114081486067626994110839503751607601975486211685220864102748895163495277976636848083698241703710781410396798686808270026953616415064817251279046599605105197721167067037063006743664860380767139203948009426290295116092977592491305024611676326465616597886057600989464507497392997505476809084970124906839101087520448441418132042261644117059692987904142694083353970779653528090060802224889938204271226885910859223050867323396334579134390156592723059781025029722214993246525772849078127751917442375680083798734337650485815686389979261942079480193141719318756135291617665965773450403872688839023743428671492180646320949724734747582721329735195422949451842660738429061326741676312260655282396652129671467104907891748962316810015404163259255417054360334429549146947282528323962839143701264354668572709140045774455995361257523096023584066320662937149291712569182719211393413555923387318936802517825538464000604563958103668974497204866556217408505208133494281762691833020875891700795430960630462932596353561843248831737339181611604912975135925246230351435929453025342912612942847424052441385543058302474015236350582005408401709284044597105959747495616313754744083727498295278382485721522220056828571207971001096876297087867616214476244611762559451430574649522826846169509915298752026546220574406327686762357518811659654223276627225216271873070576919566566982845632557971525714795029663028160660338319634159583639337113202179957449546080328728638722152040618731369532279987307778755126995680377737999180931888650662433261532800663377393347177360812170341440814923566831353738140091303387531909505203243778361868709553025641665625828922447815615017062910711890675222309324179954311381775012592701899460971618431019621545493608171232623900601283834783133242276027730906919672501338245631352564416401873265368897782290681331073457098752711298095501599021242815252264708326412138549596564572146993596876104159096899583561523719388878067690836526655634096879110474130696373140992765959028107849394135421640099428806344893793754664637854010287582860597720990670025117996259435913628829912066312768081652501553680670553892922821278669222611946202330384098316982676938256001402910914461020508985343118740655417789484790611427634706288994423625220233722383627618052300071513214404454662649414242613124390590021771905672788796889058699232024273170902998313074622558156842348679486450052673084670363018156619153397190555567314716894340092111141151083060707275704974532818210294170756719515159074388294104244251659222507199983414674695817844016429843795357193342109694590806211735527404367610536684974475257251769468033086295332004938141587307738958496090058238412498048471746823120465804297008264807005560033500142034378884767289741386067630803826670966957531793190831686016246196532276019709475056933033597213223691375919613225147199266384727334385690766515868431153903223084516069168840281768168067779653220565038706498962281710878597489656532226486637959481833869426661129293200878229175880279134208389538780288410499680317127122883153931385049954701787092731889844286500294091923431603070251429296394801703481447465771604633754973203229040170626408115860822774253567241054253514045892421821940747257998443786244231985496725346579737692980141645457232148808657229639571874316268089397651457462366210479103383996555149588490059262818940102789806774147639604268177105280613197667196677131388139993057898072458363272013271419551769820611103527186737482033114140686370572572635226570332923860142516764527405455003295371731945360541115969246492260402465598519746641078511531030204216575043034703907233557859297889961421110417642752837354985449996941266257897789112706009552818964249572782424057039573064030884901436902760024684963000005555673388133385592212248561963350193990097371626338648258249019893835350489668747804146872663363135936755001500150305761047044039808828174328483985463952239023635511894355252316261315381849022949487920063779819136433772531357398545300064492969212219370680653279941708914092150675227679095937701880757495783092376878662973989391282218596845445359907254230033702031219653910007380854864111530035082378973958096802349083340825732592927528988058328893191092841220671099230091281011268149509569379758667819193984936404493977780252244410207239441457261926696009011209995621506723804623141021267314621439401755776351500632224943120320891220133065367268723621183322112151282124916076747696002394836027481134816341310602629628785549272924381016119715651341975785369087766946513511187045453001973147160382892674898422500715790314168705626895726069290212070666144266852502688834686176422675772568665609992559813656186750961452547568832699989385198503722489934914494513885646568502653686092123777131179709297741568627021656435549642919131618670164825357201972370767395903308491405727765700691541804724762155099602489939733111755683160508722954219658239479002884392313504124766368678454466453111352486602042160612602166092589193081828890683825939267872869081420343570443192938861146391013105914584539485506782762549495957707864025824240288852644982074103450822462736587308175468373390398706227598589390345443592416362880910199543898456105646197632587192394882571611403339052130197758260599572225474887891415597004724828012587746812021529237062511371397587936695861505472139725214166493518743511878656748952284365278392102384450014857114232048921987656772841512131148263162149820449106194743921314146980980189965159480056915817965323209558084106157301974649279831985720422327814062000982466366454279927358933851140351628688111708396710491484742013942047379223011305716561811048562301591656624991862914991574277114466450093667145714812721131182702970767574196225835517997606366067302795917677372118428737184213953822166540806659694104449355894750329626254392488345661271556810066081027254139269019424536636341804574219521083025360749362946165535044365217134014873460288614071743026715044259517499248948708263078067308503612613103778902618286096925275076388397217486502388290051888999357124800077383921734620211441801533541914125515463380425374378333866042806491153786972532102659749714354568309271088597536780830889087574496825576852570597219852483542642195827865652840205857062794202883746454747126052028539107114748999850577859327426811234406667173770997922205263430744759023191057790096233032699342813684663273339343368258395452977608895881964745580086795607405103778821910165241725442297550965175103151914305002928380481915230411472255949220826984327668332763870195316409833299108284092008577353762712603519639830111529391525903241473549208858433804296511341286048677021537913885962168339152777257779840203389863679331695576491712260890184670564945424433308931819002261883022948976916210315039759317424244307257543295291422241542137266927880255844364949805487689832753146765621161675669737089063181723213061974859297953326955316473017796436636153735282732835998392057567207266063276333455649422129715751678972375943358808843589220651601926251967035371816494877493998864169073940193699962342799203434608180235223657914507597444054281160815570343704897863176429309807909829284364151013017114059996089828889511361894259641312234458339011129157921245664371795078952764661291108552741406545377787235219868247814883345554793385186947813921798641770240536652340050908878604179054055125347895382376121462823459382575570880265301588293676479183232987535245660609274832434336950795777239112966175489437547225578921830202372874217197897925704491764088704894708590618056251782741255102272996201129529213601797344309718396741363784492565853357332215236330723251983852657039359282142235766448179132644623650530592648802975323483607674324072301285171065474875061164541565663229358403908782766461984436283654653824326812778626894274931334585943915049105093568627899033555747143833064858904007699818495038754728980652606502749393534203172943027572556702636068713803337436335844880661316713213987844583167711810886806416918240248463801634035566114518751916293544528468600634427342290451301131028279687905919938327649797467041765098102120937892584937502309979541778801082778292463531170729291726255667261007521049949364301756364077425784527738239975689402055931234503586774729245344936689228740471023745626029136498899567393740543658809090307652631717340318850637841432609008247384318090017171021095535902510284593312660517310522436120909918708732584746534966531421971157802165330544874748728732858989364349680251329759004412841028585741477929593711177821413891533316420595546673806791561366391837380239151553497651924375099124093885389114616943308730032183681143277034324123598338168670767914022992320342002795260708561102513094819612111648758318141888158502617006916050780652420304075720221025867758762192767136821255510848889956597562343790085062535552189954957639979728847162307898324949448655940004538721577990774955445563476176990967449878840732938517784618225633750335381017293635840164678417146917774674747115318798304804928968040387808853776947103128891351895937498762028464349270243595562539029343867795755990474151302939787331262697107637970501077551222287697122431141855149463203120298078016581183869395336053654876671157370978864493848647313878458234960350255345834375282468075381107838703923593624631755598671055151627136581769153949076612400101267947608832778585417013983561221658487052839408340637271043286137359650279971790144858457306764083055419244782383491012258633994920024840117729883194466552189992319582633971006079372441159100680641254256791120376514421208263309989381975537302116678565049610725466332519410646583613211634503722922281940284887602909331326009287756063230397429461726455940638596042436537937306176615982534662431972535960247134615751363940757261725018913902558908582439792854617438222941056024576675351261229679933411900852959563111795046281216373458644730911428181895338996309646778892783962241826435027861706634977837599534710424581450483256054851405934819406771086513428431061572860024010903966878669291310706990601816649849857540519330551894165339532117541440424328055400409973515047739006604954435831980942200921066310969972960830169456174288184831694123200260518562980838387758012795532311783676126623462824200552033242538665532545309668017417818524561388067531192288619368201087850440215864410374191229035630528547596057895739611637840133907943496323485556023001542595694532568596322766076397784592938326061912539128460948943367487176440337151904226596709250234464335840111931232040162651997594120593321152377065286049722932022958093310967771675888524403612278498991318937833461963426786196323266919737023738525660347187622694885548641901718839231014558252145774170641062296591227640851546873278185623332335057792412024452075917748300498193750952881772350317441120231893365241580217029642209849659849288508040448581662868120531291506942109999561372481194390486240791225729673489823230477879954951406378549065301171642940755438258483214735633281410117449284822387115035622995130466061520638497191076734605715207187908581828233405278014469028574577532126536450933038714462839022628261599831140510814226928614772288650469569623426872038998782493521867118104532889775499034811610275065806278677751351152041511040779255845784764630016242420205172990829474095820722053229097438896391824653046380811208271119409317672987479172848198204414499582401320480419899820109829170371719166582290689888226670262032780435231228132983234155025220424358043677158557669079498668753669263731340853215055418983535656210740261890326008828884391478211505254535722520660105823496201251129746906541051545767720940021424679276673664008929566988594757572209552817572303239189885748462025894397411434742323863062298115300283739834169815976000430931440808182686086729150616232630281653358153639977862736736152460210751174123598847005880411302465593450732061493889885788933176614713138125173710375356844160067599268970601895706773605474748514492400482417793068334059743349557871848777641025207814638730769685479253456796876424831468262612896032931516121828320416129289717358385808507280614851471201022055269946241175395540044273890631258816661072515450159374970937881055503661271040417371988142986141948500790528554136825057478870191750939497105237115084947238850021710106453628668460524317675929362335056489872733568966405192239143446675938116864963666929510920571911528155801888005011088814450082927445544089929164681216657009892838506914132113834396307437459883042464285932448568972335561540130991746390579465835718996118451991508087749531035334354760436161530395138554248721351803072657770393239760138928182701678714353538788076964481165170864839126258567171640694953967144960479743092418397675086083305813775456361946064533888823401359264041549343802646833794655497972937660060084440444490421220949948942207340853020169066897544697966133937765171597757508928227271193585241032790716322015206417737933967644361832553994544137362548648864450676431121440849049342971066116870092425732205861880484873606422320107786232679370634430022484011632319064306944171330989592521884009509088477795039784979091807746836227712376098287207146992878376809101478347781342427183422744043476673974449418714496578098512233378373977582492536083001089030909462053118372174047082031841702954984369154953015604785865647812300461372135501125955857401710689507283065919110628385555301862182963205833111316872759561163416067984582110434695196955847972128753647886809975433493430734055904371611874511688445522174579846428054424671055243653303204132077920662420652082205038888992972862720376610939168521458775002109541716913346213635856026810505093285858282363768006456058103026376182011291333307261326943314805388801906627505664419849843361972836510026385589576691991034851020719909844965253588173234313384515807200698069056624438853137182285867073962028741385406030894667885348538311853278403556908092484050554615957476423739142009028629104991209416524061198854422714130051720614666124323525217123889242193458230437640637537065029192359586799070154394636014431480948496396590909220214215314817987918775187779995773033498268963734713671315080176844361467326985159161703828502934406080306403268554585785578735655795984479548941247546730156462524964379478137324901494795914091279254276391444180223010082193786499931122932168267805342299741410210942644557612146289663781166156848937934068210341569300997282032354835312325520345311361012153868927210491520060240357884059117096519398986692192017392916947203245748322182402313809724735771819229615066749667673762655130405379060017220064138265089392744875460968366017348619910078089089169638796605323705087738728110085676686170628673533203487606766623951757715711833866722361222386463268444427703430989274427281266957539303899830610211715435111554101806041708868161535841769557731791291998420767114642333856871334410494366687530158516810844105401171271144646697782682990273045977882461521028820734496777719478527416164142738450500813195021447002634728036181676242024980098841137213522249146397018321760510020054317778742144316070760480027706087040214599573921011826689888291514841385919988445526736972103070275063092417097994762834690374368132474411473074487758350243526290443342579007931582965938953280484951118593941272916158669042928403381289164876946271775609939498183140507174795756947238931438226568295684019776716495986355746039245165549147424183289128761100298387733377094309271795140655901353363522606625374381592585839792893672949486150875689240733561487750295374539124710965171735787980804170136009845958397999097339801372687382945249795255611257934240081375000565411638126236559347712553412027152547852365753103873423121220199966363913085572629545779086157356771345253335902216326340284471396526945072217505912089617795181316557695052716562732564847973634451679782407295194267706207669617411063114851291177781849160807716970362168229612885200927905486579158117046029711062271308907680059077021169391442229096354596526082893735758531613784733453834312130633959022962066222345077513365765049814483824929188161219532413996008463496794859138482374575445164236470618346020305138420392410119267042502620897663627053903369587257505459847691966146007612991058317651988455428212580462109317854157774503044608131232390514933705484752782564086741741783901321136891093309673353241497416908479712751819507910218861396826278168842976754288489821265006557738032282182852062012091677745424477664027941305296652372633175799517686896792064312747021660336655356863675137864295452807437360389040504504346484530975235348553555167255221497336806354032197300667143394578621581673510431415495907114495264830194266532992121634102957088640460795384716591792389846731388797801954054173520444998005649674944407983549529957535228393284368274035355314706422215491968244305876900281016854503664831253928137030673922703170756260195554030099506193540647597719041626102339590541503054522789611364342639805699448004638466709105116605214951708599019303660255653503163459656333119204813190009782175963029226706729530367589412606306266727706495250662384649366495666267504726490658343140619864060825575432529132779590076498461676568297401943864794653478067237403309000778899689371543189907198877051805274976966171191159073713976954051369729595704496315819088176170647674867004310309319846322322619186221403441108287731962677888852739093812454513842556348609853647377787076355003196974780240780442126963078986076113460850728566737296431227245879282098255201144621275593498379377466040289642921004585624311592840168470639789612029092226334096740084364192892916803284841375357469058877082716065564087026551619762716044610532185051756294516498234463817581994258411988367306054984444241950272044252362036637061304396307138903437772745424026424318413476310312657516547666381987868361473519843140062864872678052162928859182235135221035177694309055146904333856530853696233194226380289579031381547255742259848663574189125645075091777482227665090966073785526354209213344366137200511092718385177019052169858519256636050969086115032297384153938242227884906593610539210530306940706110290684309058467269994588019768076167628137329669848100053036490968466810463305793936320314835200104702889426631094507109600597625360669442584617973010739748982355869042029461678611852209785199530904348889224671381693248596816118011529775731419605016937296691122477204958245538490527020577789044688901120743627040973337179492476682315878784234129057336716445723379684400775346480538763325271761182541761775335892615122229849145801203488750965782606674197364679804446043031982321569027176000133420482977957748161673618734420555169068029764633414784771431095432165494519449946581429151291757423181761416644308842378877228933987090086590142469854902850360544739488870797326311071196712903837651316721380161276996154264923242767424482554129550869877373261240156913233624203074219541563253599597666360417854296433599238102362483923921692533411504932236629225275823536406382165330950578956042914548567027663441099487838252590116405954602891119628351283429926258153570001944767714998895878146633542397173815337922497039374376010606734465234246104409873994908576719271764632348074708803303865876251125115586487765908725404716154814195039535173494291877502018187424993663706978851826545974448656389264052668472934780403553903541484283709959078345251028053008123282435437168375951019660598122158505134409157575349652902745457196729458916896754906854634149448966013266113860001909607375410160505017146630891106417143538942129369887518797289814972861883732400584319861334656710806453250073656785908965739115104582649909953345453902240544587764607975921157454045590729374401766210569616614179183732748466362824161559582748783616593194017528077853217014769118240136243482277174706342626389687009699925166387462082778692822777296088821594916196897050830413078813908792969626020776680111676945629560240215952273052090495594887287508850673769636307596070786406396305311934876696397670492340310595060910889401690555730448749764193874356943701501337530958677949147451709448442701177099438911356992150122648933667330826023630744739690318843801504051708261852704100726905445456001609064341413848933796908782842709396802439509571190169299530832410955192399373946283153369712643615277201131385758722090160056838788688428050600540368241379230946702335726419382192900546633087324041274124927673894767692963712030218578742796837612038090623566627350215781283571860849278975652275740858997365944105727401203464313600525602808889995307451109679797878822224551141764200433455963893562104440566429286192131638123747961135090215395829536960873792581713551660534920965370150198751656763833269314096087707730403346377509962268156584703218243054811362995203739044480181828707434974710858094141309919460826485000093946009354497713143278909421778920335486033416521233819822515952758666607859067352916710014714719454270885034367368876919577741548643958633653640175922648071537791242923832097009266596732182687569180785019100463770767455911183109189765909241290765047333939817545320448516775298538947614218830334292017732339243855997207190508037402296379006462448539603524044595181852215848650847929664452897249899221881626287972465907234744128816138895128078805106028640962335188880433435524809485017013793576237681720409757171134821682586853827190423776296604164363702179209852028794504607372823871188132966969050486710518996128648154036190447797851499940553153850967116621149460232576970200357813115439750926980202875761771855815999946362001916927811741349313755848230642805882615544140200320455949051591958808250927332104652999031696679581796575603471198147798241102907822717877903491535644190114448155694514757682680205216818664870526930211801791493002963305588352269568935847588997927355002105292425948744156855363338719287237692823278334779754234649941916256533840929179231480608904328618380405763615288646819770944584783846329572689539089884373890655099991279953114340387987845017402499617647070645130198419018921275397899946999881972328762762914912469801802193426173668511282199948760481185512628232561763520049056448393993848013882856283168030709241364989612765738941588749467183410221963430539500499868942006028436514100876095150896450597077556891105540159067239501404138900738160305400996047366068275882301084869902720539768091027487646483070838380091111372438883223028545321777103314290664164462943987688329242763628966222330396973524749823997642016382636841117742626466376988552892428849687979587114326279951752535870726425419502435165980991409009376663138266011359798617182991602853752159446297545373419410657890431512727420270869478280607100541007740413772625783573401956672943218074607072716864449399753983275276395665513058062158362234462060916292862302489318353872860577747173095231736886447634262816038765675114116936295745798238609392539283921199403745831133647852964199595731022115138829791841388733193811050924997095024584238184996192715403338964514650233719068107842545142747450823394311714503043190301557390116569555984205065316128999261085389330363291488709889317761911685345772516107174112401710348346838377214360656351102302188522786772490559601377469986048040304526119524536776113851385035656840840843977249500144390328150755345030940462078558368759564410234440396059701713287280688567817094040896904144925096405912822643466438043918887139945082349173027286471154184425331152698050337879000445026493777997095953066188004789566959442724761739966271744179403526766175279486804319797625296085459398395834364717644302586731356677561231625282131753790138999202347171936991172064495308325974930461916984550275480279170888823551966513621911402769506178138139968820419874672784158294080794588389629441420083659470364420404433767721726876650218435100542600882845197033917768170759975459435522765261566912875240501594493444541520795009264720273064319778376777023888330811910207194524723969013423905629168316711417929119353733448683317197241486884386191551757592095755085743606930832202024229349819435800753596409568779953285164021082135604161828231804044628769809404630322457857141141170560058095037078283575895665715713241170961526975093528028622710775972699977271000295974027109704660707263556690277604181446340061561359094346092800038478529974125472330921477479797982228426311558309760168191581393570995195962099249783407762361055421295616802172702577475662386751670012826731904792337131954728549282054445659439165831336511883450100395716633956346316269331987619498873782317892094722891812763310920365726441197521918535432904001496020634732122004557996590376684689366472279055516231891422086497153676963147693401138668385804512622909286968712044767184881998968222888270042034760049166436655763379200874231692189785096288534418463297508732999713272308036296384830453827808355492660991997611330064295676491534386678685089053170360098064737587519659446946060059797372203284270530022717518533520864385444171944402910506733422643156457440947384435692676821053942415946223639588017071780383655975996634934474133213056696789390557155846452272283231823125132024906817119349520440222642011771416365231455240442880731991190415406031709928962148962668743858171803253799044152711801863351802676419548989503883250493356984591811973110431634203496330348545816992350115593090554789525730369575980647827905766958796458518443673913917456001503954332168269251068901637078563499662112274803734471410403354565893070121245773516046993487607833438425049383313203121605792256981488954762255448106933379618284768557366531602146027087331615934915984411717935829181805623821994420989649034934978209549409747362443339419359506079528530110299706809360021177688380006824438862985935465624002756541647918833105830254682554046144097776844164920369328383449147517252091502702247983749128649413393410970421339062623672357802726418846745498854638239557895543715080386527431578269540551850771388385686171406581797935142422398315770689069908633484102081049538741299921443779985512721916433392900502329533184137225019445454376129549078400422814109848113035731229764025589706878854591481716720730086909113905825314516246218652821852623316662626144321503305299594621914897257326269355307600227397442915934972985618145292624097968223345209880374428810687391002655512308407931344638527142160600665505706849079194402527977318619453036684771220153255195028189499944605984072868333770798778218547927069383018217456505087341689013240821457738792552331468821906054960156207744530284229074459963806731676303512689049549561502892057182336318945789920794767298641402637301600691170301267710504028159030823344721981127120278104741321023245642197608720594226583620609683355413470961757107372384021045084311934751344165387399957690455875329376846104575901057314363754353244997569514449110167772227397689315091078504400851188123439032503425598008834105396388095205219856721837259155260802496478907264259951450473956842481696001663430604463399404222403206308707128125498902354941538205282661860597073057609167442572921020464043507116795114756553647752775575039803085092256451323973274027533599638286548231588147369232310462351654747788614901922991111546536530634105844959722928518535674633124798972942438982777114154137844940367869050893486012000781386032329832335646558282287100636161904670515192960390989587114534642348667406526680874192472882683884242229948389670223830810287719664293840280392656678883411448299924791044713887357382633750240831508777144132568939251320884567278329096156665414617756274744930360446960638916178690105330910320396656916275398359465338722462289468485937400110801199230314562147154069293474468796125208329932156668560603032795448723945755535149154658109803892465516480082508463388711133218951645268030372770470285431660522945770123492012848215701881297219076624710648045449460939213086482121496037647676486392199577763839045010243979485474040551497431684437159874623450896186678468395392947496298004097290301009447769887410442865105328300276264852869137963728656431463716522135032028678963905657858080326092895349747602406323690352511690413666106656762983610833083993809065856476911730251433456222633616939891236786354678085957260301550597914466690115059789098130369898771893843178264354374274425917057517270114696670571802155072371575629703711994386023284125544616635412573989165554019293154908362780581266508325034902766452511219033272090505244647319247856337155531106854367251267911640260913430424537914046035535405055076521660881648782182545605165523335279175039719059330621522269100386850884703942010736465825237107792881905680506935409194134100020780787920385623212664795996728070198869090272041223085611416363369888093601971345444420652194780947095713484220786233966933504531259066125340101360734392727294306987962375999400638711549990311897747978906137609273688951017840512307356529615832647120101352491015319847112142793295005325426427198674403735922113621018156737917472424833835527008426062940696802928153647008990984757994900831334786170694340042117372254722751485083044469516889589727033533914536637798833697317150168153551789234730418354506727306813033694385501452972435801436108544872553050320604317509936837158117750022154129090961611697715954705769608304223028035566967772640330683543107973507141604117135444212263411461576791123226817081457174769455225835094606269780808545620598914406127384724220784380177872682835869355075997094384596808807127944615294537234668025202427842148361423171746410863677689741674844008797249979941615337165364756201819571146573305394163149513685771267891180797005980961701083248391106660063945288520574548046783664862804676946025495932711174735876179939554365667911944839484973538051157656890118324523153858725351684230281642365989317525902538418974317452029316973960868891852115671479993981166572205266287935505387547718313816157157879275910282320632529060540490499457767650232078016062977491557026347452873827314683140821846035534005278759567219871772579308486793058879371813291688044825823843406815770636282346731079129244454325491004327170087097294833735048014816136357580709867300891539414227806315837471745049627476998364552561541716793131801926115278415813581643257114061347802819068813444148645288323037759984187042008743526151480221620024129503592184717980039624770237145897872338860127659077822539504067156033133273293668677172773137347338275319901375136840469382979254823955975021854641323258610181371782496960044511484883949695547763913167025506403359052566575240774635024792299319452774806439486948788989108976903549922111653610192053587032574458571243806711586917902226784375449246800252471018903782344881026119824720271900385996384073449837576051475112875301128509090949082039722608702483144198912997329038403476786123247899775971035731157177620469597994130987903206115872487682475234692480210186081370293012948559385640522035179332488735548936112243547416868123243299682625164531298044556432292157816770293692220102921943549059125730085082670743829014609171407933886645783008071911203699153422189636121908215318187828089432899092716458551828939880307876001947448376045527126543888864473452204509497360420494769054341325825701682707074871231153649598717482191402861735808896312879885798651792009911317686462195978288258956903866023812531108785052190263853303835836409754226889151276232201024717596034830968072846489581981358365754656848956544108055993836754129648695116451273813232136350480086845862779972555189250444927316159479545404482048371005742565391644004601795634618390023985188931363119924046119628065127073296515770413982778227572926539478886168464853995425938489119312660434214969948539540176040498625467601000043873280366910446934843709365825117429799859131058663764765970769997163880986338978359959907889109371337611474838711283318037344929663832895855804155054243810161328138415610715657592387956077971172829159220851134672279918625289416070885459230622116064478478786443226023064335494116030093151875444850593877697603064227921407121033755954970982118810201273126689593783028394257022392786108817215660401016239280150181631630112688260146477447199416944196475080729813820836947688319476799289757853313868602817731777169612957319141427472987876373402516448897932245862447523036374535690879735679555636599149725998502401322828531193237895148526097744654314701301972782131258410532786236581589454242949870717807561725376263112318445103320927563183198941030963056075139969076172914665900018882992651513114563326314192655507517668005833505827378082185232071826834915231352643943836536796158271067347016192945965403613468847253773400011444177956887678644848016944697372840660674744098953210210791369525251919426962334086821343405816833490496795262587608707944862120912402159745150804630767517543264785960223846203756714184588322272057949641610582194946806883713377129655989548412521769324469854601535869137834411744237058586005919800593303201823205440867192442727615579133844753135221558499634924471056155779324219214600888093150072817725315577546336698106451613430209403619462784818474422601138195117461102877380158148374644577838109623426150679399594850359034378457554879661605375888924245657312230608667036602901711004669031990731505428308630756106730151700874807354139045731771851979116352371563989583271623901582058877287508701240732548700604866571903965594830410156322922798017070656087119747956170435712055749129120097232795500287754099489774270028953544849916511780450361583890936250653208343014772394770529992156598647658800150567564464505001313325304235862911367719267315603298536766348355634973462452802787794851667209661060158274542099343204844960018615093342039649910332905796196366344845179020101941488461138434479420319876845127412123480624297726942653630609096142240968442681935695444637127929774591402639889064375796728741660459120861621376956748483292478085230672501963025759554408658818483995800565263658539277871899403648733100154786733568770474902640675013037807985284067976431814460595120740532313175730439618982894698299136673936795802371804935674910784233085885540576155291595671158267584053947566864841378828673623085644495266293476415542974578017343553112583060217610376680462806673466995440635981443343700372341788143798020846465484965137236050025145794151442926695329684047950739831106976654064856132531837585293326603343765182049414908543808928767582458560875568694227291410951191698456038042465038389860675298969951607215025134182199549268120531524772160231203830545016381337962571947231861320083388209551741877200927209344362123729653976519772212609547892028587842509028316313366455936157458417210804776354178399851512150811190620317547271884455677371270618220297802310639951701264444159313758460001287715714733375841988075406743300416770532781572260950068227168839357311675371051343680667023854706164889285187880160302627505161349557206586052869203504419638788367625174232857778720476221321340320358648527073044047206322868807556103337095360584207585198969860968864975291819769590503300401578398975895745019205954837356917974423827779033520702189912355157858039382563270330670232724933196163299136381181828864163814568038049028962466320036088177510140356700335563093378883196327275274973578660688767963295315452771364510066414631956629476295248454255859047045588861507784754648738773741599606567813903569338890058563600263736349527750564893425179370558651709267818814132610940473758563488395481951540313757204451155665788984259006063702140292182111050059759764206483838622797757240917147371732765716481684556204520893607832611258073950608431116904578731940835842458235112532537670650787894147811168823842704539230757550085118569623990683502362616308287765098976358867926502782503681573300140417144063065487435960056896336299954907572713435602356016468874024962936933353038864830532796678107135728513333560338222086558048655259257233759455819567923889773441172101715360129359043889509744679023137779619476913433229725261478846882923802636824888972683605138148288634235180463775164790191786982558096335871682308528548521669234974421179462525207124674517314265369964652614030808946760952266011013725289879396933822602620293400415975178110449568162172131990916515085609731135654563670781632201928969892247330681559839070486412961075864625506715203327961947786757346991896616627354103011627496370253119305329331018885200543948534646993277573783856663056391421726825935721720928610724288547266420537899185771424401087286017687242518275924487174652898967910061104392529915274545679544250444180890092621986902772879831376892184716574147003692343629181121837816592204841568520092964836732064276377295252603829235561561373133853359932234105733959404157335638487849411395800499059972273835310371051208941754270171316090049354742185788582988709907188085246261625728873011967204706779734548102026857547915861832606461515411310064562353993475492198862692541437798623985667523829432973892203605635102012493092195988339626635977406532247801366397855199331271782624936011698835240054637599791239280095302662568737339882974204804173935812101898622894351700508940025337510570351245323735269405670128505700789398240294369885299551746237042214152535791190967373232876383396126322522575410518065541928704435168377381788391300399673418024548482266066840478410467174187286564239316316359111299461490456147534997269176424588751400802963264001085501451235007202667746647270325801264691020077650197396250979658980032004064814727127726161030031104007994014607334803325247212239850012023525301538065500881332171261944413092599286564754546231185934738185163583982159973155279605425901904916266352224307794723187135841160055917439680157467679594966901537382207190359932297915565167052503054713986507482021453935573498968812252440426657458865911753434010432522237259033155069274746567156924026629354592803469957923335787034503990973858015136948680976757164193903426628203027606444510329328702857734026050636327546298596511424814277445790687057255303972154056421523336533841915171163411936920492099942070398414792784626179825178364422550276098594564405538917211339836751855200565269796643034585297029301173950340460922110293043834988600704539978516470575887620809090363713779921269873495370827387487545959481808094898665924982951602597072677550909617093127212551844817848336441338195757574149723005818674976064975702751815033195249235925879583410568732480201000415767097703551948293923535649679683807155731965139254552958927861932090831424132738844600998368099946588054650737388355063454563576241191832508687121846962934329655635770425779642981202590544441876910301511867488014226271055583790687079893753489116572523428678948335778486746307880742160799157776981746903488239791274455598743788935098385762851732776408963788432240088738848089356015094079887048140805165692182102619845781286452480596516995657116409666839177523408313490816590742253205880703000085301388051143067959355427844929718287923168813772078744456051329008035231385242684524250456564271846125540857431156814663927627814355143650962067793509121647155358681147210152613173588225698243796647150574876012945973902687747416388947881643180812260064525942914313682761986623088274402543650058166355887315498071609359047963665096106365479886124512173536312797022610760826645169052125677543955535905702926281411460778475441368299455939799466781140827614187479279923395126627870965376386929506974284172817578074638253637271460031133158228509784338032838230096776658637341597809016870070211591224948562505391645883370345775227061677520683122260896143733766260382930677631101700076568946681802025298386731057509879144919647339047150941556112511853338254450182184351894790741265835049354952775333047668174561925594760248450177045874584009432086355151255683252921702424149815002069256880469078712313842404895557840343182763918851001208842486811912163893514156696280061754436029585097760454325197355830621393958078910941418636956704238454729343118689593896796456590520959032702377307393188802451654369846462565927191451157071859023339719566368563115377082516464603346000042515758274723528213943204708991131393621633188534381663510807661956148947257849178261572798289689151025897178281066581761555063043218028203371285479242319313300434723983453016976258131907306243203748566026780787287101435812193266166809063946955805701124436080780825688323305007593860132188211717905836644888627071019356290200088549746523522276798752852280919753450805483682712883706626117784791283906788777421092102669200339151478647695373102374099346250606712273702071459315963472184368179912155567464341564491018328848511710915638773043314220050152511151196269928138747040492934549184603803575341559810764588375165048475745338054986036401698650778162546290652777146366877936958650433483300538903133845949424369683004860592805413647065668425850949513958916399805754983827292615989396978011111516565957663278878071961586145223854919997407680483842114259724704922610673296512945713903579116879893655948122983927117424237524881835611579962910325631901715346150069793396804037698167994177904503357608169469177517064959629081050956792376531691607074389347621453335601408020420148742818456672924696201937056296658264626852987566152868962106363870255009894650671591796938592287082644161629182018582018524180926180712877211158999968467020185324586446516552048270425390418337958842605859210412925963483152445405558369310631117387824164828033724210000237515210339984240571352839662024261874386188531307244570190252845798546930432063893687726819267917741726052878681401222161851194932785261597910666872961862510193193403282458991264774103112150572145699267171972871005384209520306411443580345745526077138783413247509449763465646128004918543068712280509601193292290773782319469585011148793648461882881107474408558533420894998925759646716763021077953304761632393569129605908286751879808302006537133475723125016638445716547841636888652899969661859318104798806960718098494552411221113819579453130465769718919326001688269587369708111608978960113677122373224045902569551382102654515444606046946923632477831773384595201885097530978490512706836852531615966716801637309979112617421704260336741112973570930959239987313751647859063640812871968927399338838258159327762592257558249661459015837890308983923541798430224411487653506570158879861372201568537760910048031454870585861708105925314743774010152303469909994884673151719137272136763945496350653075155099542582630226318032537858595312359734137941595559353320969241353808750037054130369369220244262131187855026291819644723403662261431735468193082896816495961702961710093549877458924094053839899132857302116674761421258903497045408972015134348939540971349417843989650891915788423759472715636169061338339006941872641406740166653569243301629459248237547395139195542831727998190686700630039307273612894806662771549813178898611252824430586226872826131116516808966310654134175154442324592198660795281429913146166940279223206575189887624732932493355300372882003241919868158134361587725308102235816044996436142499127898232184633276532444057944911054998711357016373701534477165176424848994959551074101745614451743389083873442608367347948057369725439220801419590748217493438529816856021783500848467419254330244697479781717471715151530218250103180163318333595429324717249708148407430502851790165137764480442389729275022831017365679204118555534533929867085621527943825612979076889395784566129980240160841776821910605585898779480020204545852150231558335060522795209664611162829958851816224666702387616444455217676660005345651950978155054039623635559819513249410338684467249904888532605304936083325374059726594745088102815904984741676311576214234909936737768960454514200566719836517547363685903277826144576558534282937207004307149751154145650704481901724965013948916915109320893471586613303521710812328860152980191630626245808088221761713822490979837531190392705192221479581093449719321324437272251360897707358885027373374391165812043639008678224060992477744516371788024039871642195763400830327587955495823416606220722010080263688032488508957011290742942263873430998804147033379008181409341756585577228367786136222709895677368820532607983723450538965835191743937889461605188822625404173497655522826981198549125065032107391942683103940499665723785293634656462698319787141769632876722269871893422644921290784838995223275112072424894428425325106659439289758674731059907262429161540934957052867691893271567297754465300920340823280423711563428524211896547322485848105970690347187313678075759081083701178404773239368095946594590536869116126945732742823103532157877404691568710875267516642326444506509146196122337042009695117502255372372655623919670974790915339508250792773143880813054451358487337530152152874944875789199547312716439207330919177544157050211227091382422876139386407863241903609208884279670041350960543981972998462990538827396455982649812390014872204778913439713638215316589560435336827759652408598849589175228392627301752474936700887172977642257290988445444150840734424717496749109499628678782202010095948994018260054635095396316192782254612417539862630002537295750219967875032696368296663204224784891117979118224418039772786114628706909526316878044551098051407889555463367594449842806481143141219382561451791431552783506366375730192096387447295420641563647284974667803850424325897657830462403341885988927346259230225365612090792607806468657993700925159525241281271808610490964188776304182761159196916466623760874563183425850712050505255445954410733467822092049105278730870377709937014019100051818498531946389086984397667586558489295879612014847050500251029210814159404345920099986681313510179085982166222179529225858153005125728687098385984355271669358662048543325205032592194908401233069131254562695817916962952875444306708994488913077495745239164637590063299486676798412251591791698844474799170002071002842348634124939167404998814188748091795843852118258948008851703356855896942874972455979900872786639872364057679036591100364003496553940386795312370125560516548409294347071450440940771540267274935050633203889457603412611124364876475074605864190739615066444265969052290432267155267589550292890383898521468590475927962113271611922833659516569357146846157808228701081841981179175337810210048126670069858436740824380627121575945051002395663451773019795468052477638771830635671762380010788260828216348506381470454731142990164487711658852173926208835712807442982867112128585265877075610080404971477422548513539682493221089726711501799345452872867082375587704536882530132949361247928266436525597724275698545432840944592341491104656320133239030837533215320032360929520678163074874312267669262351165440765380480294133673188325146327955026582608456899311290510760901820537848521957252609427815090466588066909319352260502853900333817779156987277928027155694106232143762108769725068748750069412504314191849853947701594402545047460498389248556033897089283171324928083080926489299075973359796410690953807295599245602375766286349425367720909026232652311339241318698239845582710517937346954702953380835700782243483563441085892156202479461850332154344570562631533775966162630735995237960287815344263417545743914270064143054131975286217906717889183695840099203674068207332543897848339866278107458116790562111171243770212628011094761926365787310445849774325758132582672057528333134513245570343349794757998447777398571103695187275545210293619123062004070480244552980153300231848757838378921161643449273448466954198341057439035070838783485033740309935094400447425189674674715760563961183905424480023753773800864268697624686782717417007584091654876924030749642102549269881783364474184741814705284643900685514580331951692485445644202124717601067685874075154153602985074996007354834055221084841136461302192511685156774452098826008659676691716167871401926760294768464551298613108229122754948921387701577354178771842469288956695465885562925480001978697621822178550460083011464346743430382970274961096992853667742540808543776342439628355559498074445059264935274969492851115246894804356909673929261452350011506563627995288410392326342640370233676672109679989641146051281799463168932000323909924033904667443253106326241335082563330067995422302228227713411920009141713652741395134870381962754785650942627141737430241802177789277007996154655380089798845183977483132398003079067534363096387934192427067477104113307782502960241607477306104947703803530975608449180925490130399570790103610968170439089076810345801471358439438551580990528362122137420516048895105147341574960749615633065255982919585801334110396968186093180509362411918615329225465553240454226631109738322697491343406806743210354999438806725530783135105294407757255010363151144281609770975898430485602303916697381226212171132581576766334470424518071882205047735063303321634188904766539825828873061523776226396562489205242001659160170151103944567204664823532747829635556892921894461949997481097571237390278056725583073097929178925078565276985011995276814212649458633970231584536353428050135326027676554244240421407750405813291762588624185522004622875704467755322228634311100312855470326481650383985344151347083354912173495627995474609421069915616243443801180812654111891197247152104415649541142714871124798645262224402860597155767165472925932960278181775914596084900064757436713609858511560978377725030494937062606462345725282787801988716229445432057633990185087202782044069351656304445448293164164767590821834582121943852567881954421821766167573328573729344715563885386072172410572948452937263765787041291216115920990139789707374423660806294903828127751686844329377578294583673259631218906140499142255492169620529572479730963544670921903510081411544025245375995369890386986558910545774325209491265479275709317579367485098203989116884600487192998807634059236004129289262964646759795561473827435841592252205855182440954408378678239727650318613941804541176181066593986977365844748943176645111842561427591614936048515063104734722133031817943621303802829654347997054314684683133195087038671568157782235951983712747686394337722101739819570072106742938496611334054859878280611941256627004869207762001547111461826850446649408718160666794819263282726902879120191087853848503972442167310852616694829323544267008175413951671539157905851842140869573551121250740488427687886493481705494947209506315195176789428722359195895223202914646459862977974375835333450631852291818300169420631159266913830263346843517145329236467093752898371020378340476507347492016147624525563706846880768442130960557810708475644800014525690170271006294020670703402405990193992333630601815284239292710441453631699011932663307299456721399884698567543213559551422135709840813746382535531907745209748849092706646063772949034036788385264963963076239589390981758526891145703470150593546896615169276885204370401872379912999762862260761348783950684866279029552753152705395417047906735980192251454684565258774401890100664484739283340754925540999131688527310231510342792613887700990957611541374439128051622821952140971376359762453753708773395010032291424298603178285021344632889254659118613265226332863251016351861415767666925838633555668466487164722861398094649734919410150491754809390845971672088550231312425732387847405008759685658559430900673226851199693789487259626797008348678471368628641943436019876701196417982670467519739266590068228052057116538310391470994944028506764533493143509709745256916074470060877408607684510663253533265758848002202514090018025310369753622966126881451422640940565629698435639957172923474025991790592757881295888973022126769771623317847348939157661206623520132191261561464812093794671630742308885941625004390687166442456371226579034941491571629789637653334702892237560005582786442902864015097237887667818290183477040954293291217491518087946811792321317851087912581610485539989821649724261273366496915230422613071007212742973377091066632290877898100151611957396571278933782869936253544951891357587327796876590011639236638535655906748970955338922446972817914425515187300249420238693293513607211739224381568563326275226797191691039325812895310658705073651249938795445633490037070383965022618592836999778900502916233264456662434096245766541766904220299502366662934275746339380617090977346189349861772525228470233826514159518958289499520826640022777360021958721772372420486212327184324878547927464148423600341318876989255920862217539739185720238384898665544683476570288567690728414440928063012371340334767205461956603355717901966768881554084134726990606724909351237103711792006469891240564826536720883697280555174656748001809058531739949768298411386195985699109537681908546329834089162606735420513029465993445846345292923661639852254533501219919106361138499672436537546126193416208571772871515713969755894278061142606771461742759854729504747077618691174308748607548626435543205358025475931527990053007752914596901081133643891340430847392924848146675173669743870896918456476374325959516440856559746423075924225760672188887166021584730758016067756975873911341383057817429014003100887824161212067312789289721293698764514171519807415762569105763797462672304076333984600534586507812612022431870549489897741035817768391609710972744519113807901063151217041817556139313139202372700409301596073456466701056184790995524309599195160639059931053858556112372380167449596829940418496235503099456925355342613579568037508860592227271352050558338504882182753863423996026794033090380023804140669512526806579612709431978315182331475654102653691390651853934822940162859846511255543162769702123468909921870994208821982943223719010506344851417841320938639139883842510408645783083630879540240084049519985141125157680735442857236191644442263564056426331433578290113465269617563857838481048472112121419373607315517372541681970900640097955497420055197835090451196695155041839780008568774653673599498887355124490397202226447745452473768348826544620969291011131025092439324884195101341365446229405454024524975685597058592517963410050959012890900708481227753807841869179111327500948048858806219358519655099248276378424132946584738913725499622723591396611368423916418555043030479919821987086791665452357187629634352479923360172058471717455597366300037479398427550247047753983370434703166748198737536509928165135075457314001170722960422556725470523043213930848298220319928555286677906870798785903786247348140926962165266002470641281372502862012472357421466525421585925463252222363175618419339444299528999015706749259113537090034354531626981144732638355983865037644114911353015228010781837080363544745617764314203640008710860277023371753940720818495260382007102068163452932681799365699727883551537483875140597924828783505025943030577418972183526262667803755802830770036067944614700031214674671100241606523967691948323689090923171816494677593075898077730410132430137660301995770834746481865842232915560896159792519781847930612826614265049228940386622991760255810281948779913187983497292655571014120915968503839227784071773821067819549510097547070226965557809064175749168425482053118361249493385365916283089924515680178902292361772345331513719375568366802908559817245017747443835198031454486763231970084826455666174228131078333373474236150803209734025080545796424442777153638000663739815573078695207305625172579719747211113829387349190079553159845509996242077589677714169132738397687521954840310712837701664000098640341627134088955193134131765570145317659225200719350754852833198260338818602481444755523813443453131642974005072331295344692257981514920086211597824440945867595451913051815505134005811803063644174601921565293542308900575753666820398147037635070522119856311211668990988636160746982238142770700279952993242320555751029869435393743323016219246564643532822732623716480954885949805316368505875092467922764533243434363009056531725758926367657344742933905853332552904518131610115051723257429132266982904985623660901336837374473392860441249832004352787555227662861834256912351561644567792213088646250259479711096308413410046340940051631442073811281362718391730674444691755696781886497853276076084492693641557669187595598750042948876822159887678530374667179981397872194091296040285684381512736026684670329881912290168713438364750105666765384266590989053945023763633248037793383864416157428859394526183324503113670866213981942393655214223896928265773660997458394429540416477821609944790278804666326100043250324234364957663252225183959359743870572772689836611061269638917464281074299024374333926094877635136573845627276665247976029140708707205801898188713622427879414646602205029266033336501604507742678763315448958886931972458660029073768630743713002574193614219609935529531701378525583304816495606593796789415152669872556499490637058566323513301480116649670482332698614851690919178532283254563802150096692732858842155280539800666533147951198178018232255372724506547542074020850816557299232010390571280893655244475032835519230707254906325300360573925034981034349226924567570006073066987228843655720062375161547596178310300426854611241110903348861764777302374386283780996969078984185270022494404513288159878517815733372607425256407759769858497361359213991427645931077137542832595174111555195356924285008296879533758687984064478988046470353522666988999007423570130981765208806906325845170180324548747833945956046983192319858790194044927873741333483713072439845893266321777363281434927160219704670061733243190367763502004267159240071458742104117695668661055410592872707284377633352127221924778581458230330484149719835329684207434917584031696727010779574533350014729729378116267642259158489517229680849039884237809412538482130109919603638735362597660091746883138911441475300045395325013633842488522615358209710510300875033036327371781974603430973161405206388002428708663386477760760402665835355457632379519676728530547686573077235928012445394451167588534663493658535471310355081517800791488088201145875372674850291348644744069969740949020747798928251423354219039348437761274551325159445282514330107969768730207023171757608377548252568918283104369199157517886748184934632700881261074166250840682672010899776883614970250817262896190733234426733738115342092353515667299515536572555513846189318523855853712241610788980417097678965507521579122690586735021629884231106742919496334383193331686868459731636437151544621294163076055053304898351729003742775079739971011068672853808078528764858478821228404374828139375020155900598210400896128474243166605633571563025045832374531918428130798204972629611689221244775889683309319542014444936267144050690197051799007018802162171216962373101184371653534471333917950279751511129016790101961904303653516077783453607294527790763043283884260919808104355297192298850771558185386457302012109973327950843638967258139866443208606887112115616881719515860902308977368116555765350648927122807120414429392473778256258368242975270799737193551304637521851259505801761025748462592776665513397716830816298075719243460830371524442579793177647069820701233478891617866334488990172718742171462079167199516123177281549800147688544783038683710885594410545203631831975801660796941035710071138351970912836910631838843810397475520964256941943330079343388733647985508911731575952287474906216531324819594396913692811307430927327629437270142437012083256215744662643427705551459515751996796776329417087019079196873580309670723039268217622792125703726945156083497567855772865875611917932369556783159789173471038148296600920232367602447987157766709078924724119310675017021797538931482696771580998576613838295512302159940474160132859101765358089425366596327551983359298040405285129944383190178303163353962054338028221533309155241865450502608393171767837064450323935141160647378285661944640407781555497532557403959855698784059321221301391178219788292477028372074475433232207589243712176648374969959160754215037820612225485787728181419534651044621509819335342383403907032976531153210607512595642139645597883693194214064110707895878843776984158293486714495931017009606311806264172409797831269178737278265318743514835738214326218084907608658129857412157199569998221608512686694188229306111403877608632981447891903491993786163949804940864026361955123972379947556528782254259427862454091459301862569235411078751138670394002661561006905368993022500838133982579584885745899243540913946476903659968577292331508875911279667400247851029665260812264520175125986991105650011738689650272848761522972908024440871481082792066521282452576755481566792478233777039898893760422664971056387948719276134914761326672647720051209684913171650057942127579625587010124132532001711614107775739603979943246426380483543488294274259089374868302945704604652940851410401356008636508635708036370469030660550193283852305861707516848462835122347757406702228723873150323038508814643041208497700700531108307472771784487858967809935977821385674309600140310859830298947946355151060331174392399885703471951073303544128708823972243213899496261825626358827248146396301947998161413325605903054190922225577183180015027455167114917348919455288900728166663056017307244070635817113097675112282772930193597646609724111988160551576035142144281735948931568361535750163872671797952167170121347952360300233688624184983534715903603845574319413668812093195756161117795734852913523063454915261942406059536840838300684484962378137248808768596056077565844487971068731853992037532220273947522359516053970424020153147305582423359132318184020237130443100443949708394730158260534410701815562799538091164758818177766096341907248478049041847569357086543287168584867897633753266672881270473076070577162909421825688334025959236013872912461576923038087611415091808304144147931510256457862215457998769378211957707232607582989204366132098190750623701614049751316784177885526113448957637334249420260945985084408099651583611875823620816280184794197526773207113839771362921217401113151865159076168225759005786879158968168418871730765266057612462241050744206613683224200892581600010165385342766773785726527336336731026224086747965257529971032421509609366772411258796105973610587385361376097308524598003340706663437436357020719295973081227698123398803149378390596795062200438629335187669219654864622627239977412157501334308427788268029093547635291193224407438598779586789310703294495958451066041907310250658581973535557091812302200871530043376776355619997772694970580354018927009131553974941250729573200354630883380794380372741042108534088129233014422574026679566127375804826368872658671823186419783589844515159042044635131285593956906240775903631735848423205638080440103232540471484629079576883718308196564979658464631377135040984814273591521251535718764028857576721172048572972163752740184103118729636121531456417409693329653385025647590936595024564733139516753267607618970909423009917688450756183760653320106607186561587605931716218327712088898604908108460345296072035695167680083019651645357558279398361477178479483574487102679691126501097193869555549729279189607418826953986642685496654919982278275897466469282257436717045754665004779337197548233622035682734789520327696126378885307304247746460563339390386123120937319850189091292143831560117832172242641913810154561804856256800241977259160814683952490459802091431135153568552960963190106244583215505738954616823630330910242979537476485999483992077726508276144309586239891952621985334432387142380156011798239873230328651048103091740225725500154160889187263082612862455204630783103278922817334471063001206279125220515389793398675852122284401270278233069371247180904570128266894542330096873697004751561728173010140821065864539627467953235059521892342477529472422657804214029635460805439283391161984461731284873409390192886008787775003622335719495583336042293165404660040950425675438299004484939968470317573760613856680367287226891166121564428219055916433462966011192932539063542348605263936842532890149147102409051066978093861401736617013533193782865295756747657345412991366915155054970672096826123241979744687815801819191866950518163548045849187880224641955374245572770447265411183449696496608348031364272331324893015273436714695442422605070588561743204939452308577308503943567027155102732042331107022513206469995293834524275310216758791654956102674134840766762302857612843628925520636556266490123804919609873307055911207139500859637617157809376970185609285416922671873531244827311986914733354314796985381024922484492409406665323511275562144555203523254368122088762734985049975327178486229959521140450762034553301694332976119681446213753643330660717910070414081611408762056341824105377596607606482989703039771291128267454842966559407285986416225820515201398576279795899606789786233145496984041035878360875071960482822324696668308003166248426650779160509939553964670336653531966802619279055972928724378299749249982084715116006322929930786389394078647921820071339907739004356207349305625589598526430765270345155746533028902935374702287903959624247787986774929936392486774475671501894882886433379042455555055700600525341503184747078306189535733676798875774299254019581076051707026902358894043849384418443238086714149238703395648905604072029613453011293277720679528944470910921729245913608359033970791033274231514879830258038265973695249089965259524303125855326030840175138496451320953988662373466998720289515216666298778536593748302321652802459021429789461769096599737153463517189116736350730366682398995032380663907159317754886217243996511536170336135741267738387757138288518751177456136202046588977031893573641974568356985043501936088980108039456787655882330166680406632794995201985304652977087985920506942329845158625934381253411564856812486219209217806049954700594038657554244463016410422410236813618633445077482775452138854078939930508024135285593594570328888441147905107885750491720129551047918705161993784585480887135349703679676315468490468674107964481991222543721516749023331748683309893607355577991933962400594063172600374995531207620929255075079472668156695544358440333580881291898666902917501467434328332531878082498297998219937050112275803166165434687157891802304745038912166323374635231057710269158360959088021083833597180821632169056601244426752885435907818502574105875455743988207209512003049678747017951897832567528588555723827366220781161443753234179316055686918321304799143684163169364602685888202305796198247721217328024980135991619519220769180507526561273529080461127413886040828690908732097966776794624891728429394470401042074665550472520587927517860603662115420907663127120037760682804516379652632822926389429546076202949352946262835934376038367743512313593569047277748198662237821465737044429092040372822729676558734638214373423623164053485087153121705080978507660088220818026751108017574903838091827976945802703327986268962406512673550895699603895183053462355410294516313267881191584665100751029194709185311765935828007248352526772527999819446695223605009811675066108274134434890708427986844145495390770036719954298356572216692182654735440014227410389568264354800796983500076265385922473828732719381268422510066279415779694036305174729568900441275189231538487968783405038376872923912770991759336268184425714730058289792938832214167990561028827521899803066678441488476214441708146145899894911608330968563279646165781123940400041676233549932490226308660744002070392245618748857176277283756938945214111455003735166550559484296690244939714643119547803854809570582205522909474366922600560362556156828313549154242182417372318954187031112685869756590518651927279181270296160690387295479278120689347602811524841931551913372321748310628141982195394535038455380004568151841442117080336955298656291989358061264113277114220489068830730743049241444591715405747430384392901982533754560246708074919521150770139021667963771719852467161594216606585823541854283486980952380605568412801771942044028690780124023119908381067204805115124858595064018668465724109564243837550333464455672768160896389282229517041486427343036268122660311271748549306401450131797282605360699856220148250995217638983244877048845241409471751828890445785452714319641585110912853579620127280511425010288428093700482225598809574690966680749463541697401226325040384994946397114979312733244906921552598127175969530275205788362204207315900087765672050216454843195179265448122265914959952909331760413213377935491377386119448692883507402749722099986852906016145112619005681617400224277439674479246898446448207237478626410348994466596535587292861249918742582239114751777656082442264147476887531671040267613755036871086213782703404033576801788263531134680077307897700208824290952973718846270408803191938622447205115871940791169587767737516711853257106824364374507113307076093260285419075889389721468995928033512257425290032137882135254186316000160043275556449450691813506529375895746138424478431706548946482873693369807631488586528509195261757935508003297433349322689255606271971225601426152821934473158793159306225561247680020983583878025247485363448691352612108833731313197966192745862036730910877962183297932040737562913199738163676355450116119015448893453766405491945649989281871288734266503898453387540175696261193887189069558197565471749881142264022869876388536259135524546590853247683188895056682157623014463596877435548976536619156310464555697156004285464795010149396810962037825795653379898778531277026907196681302882809365027824431878348671624120925069170085873186676469848693400160076318475115844733707974175406174844925593227090067393838083541907714801288162405874439512757688780400033670919966331210437684759671156023506472781780823520877170294978882733123501992609927436570808853227161427176711804402888263318447972767343097053483390250492073884993079822167201907057452914467835249573414849978960545610787632439293571492888161816000429767565733233657392766654463681214370591006862436582345006660031073881466998377456040661858501820059002546102718269414764221957781872868495410289221209524114168760457634557397908294535821631825192865058696963335887458878558371015493533670613978108690740227817667476853555935627025176742472981331009861425917131377140421207997123911925108026246393328953613942406006420949124344773396509414828985135336570422465194912053762588221605485351354052789428272810516821585992238804616343395815483745654785826644423057588955616556500367165737717268803477463152504889384472880708898576705874750988703858471873653986030040296672124383674100374310144065806025316479552740285215083685166848699170849712508280847302676982592798200023322737256715589828537488496021638311095225179674696389492591057646501641867122733060766888841681003966027630097877370861561435614727365654309007094271161012160547039882714310263776757798775924753358545255597739692381960868505128913486720266119546994062726953910088525872216176327351815511033622883540507582995350166736522828997683858502105480579804774998159600349532278826054303140209853477519035580175932136517761590898176847033673126600369851754805823065927469607312362207121495121182936504701373155481608345648897402548491545974952413921433937331334916980534682521215483730111089709449965543261657154324144189473574981988366823059045292104815962768799372380523611590168367326606503446308787009562620559610973277434895589946518644621620927620034023342682462305145172585664034150250007068919378389831753392134985665283405169873309818224670865034831351369403799692628233284616110601132876593960468398271259674288367061799585952651407829361138036617532312585475918606158205455517006784038280359975047890703461895718587274939964801640269953797291470007116299829465862016374658359949712151517306417379737086846776649688967337696794003241331673693291018635419003572337804327683795701604492529408707970147865940934189425106075095431768027232795744814571301696991641545484226626248483505145702626281357494292257567120412043712765062152049167915158382954772336999482525505990770685029741355786712302578960734142702355526331128763787715730191034463572909209594136870812559762809927987369519739036542507483933544187812490937252128590807595968182477753290046147848654484488861629972938763719912351590187337223800557141729127365307458932348539109425032702111412806781861096260698561157042140128349993939479738718006758580336632785994814553248376356379775350143137067842550986379124296380405414313681214286996181520237782246996877675675017001945613164587171843234530426314400496672990062368024468482321174164272232439225931741026084604030005522993397816370199849133576288988170701300054221558814669104899012306809206225961974267856275506490106044497117634926000966078122937318794448513454255465362396556591004167848422451498702374677544038854513849609188479229458597471742525472169236231260022245821203593481460288378909353541060965969595491059738235523822139130567081611102437510302214789782985287767930511400665080843127403247649585563918545924223969865110616172127477082595995471209718968460367170521137307234189251273824010670232285147950261486345354400729970925444144987113862753930025989139875259742389012824474710830233221916327057654743560696827749375194905693453826496981060545915485912164283508817940388532013196533761169438473745692623417509500924281774975760578452348654767063660916830400828751226993639065125374328541207457428377571194624582208336850674195492470025590939457334271942969224279396315339401302665872387368465001234870339982602785603382756055855862531606596315533770467633405253517483607861048238791654611632883036343903068950117168904970680721711560163130526456265868187206717078689108964857760946776904230805926510061595723986723431172275408335465019776100456773801897353111560190186344977408008688176158576963249811585027941392618065135260771998431208747893232456209214683699107446168955500886459234827773754164097462774749829002212971372673966774915295958471110979964048558518699299621414285590336601436042954408025899041316483755323996253308396881884508376078276440071543581259736051298804597258790831122545206947980485633351246647020521816595739665735210914915078379845389513532550030720932288377425995716712541408688711558537082789293932653263175314262385594754790631362455860586407554550293293640769682912734340006986871072394525591876741533905050426787649682938762435039373430689733384472032092734823328520853601751194870764464819107851780445295299792760263180274257220631224071610034359218691622575213917164610848441554346721612837276302880629434420686442293843420942927246365764829865157041722052404075435647456454956894502124865611779627371815378856461876748012657586450182000406204606050621744564277146272020460230403440121142834334973359550553859645908627266792541678587379873574311232671639606578107382719425934250632285932544989422628918015887575468146500803222512854142888635756470955441830450965936254718690485661520671906371149372793611405998739021227805132722353621509749876229268844046273281438087711244838743238772032563694801239797646364096733015668923461178626851069519099512564912570972229317360920698490125652322689730265316056121118205955471336485506902544580456777417846279844969669979219650998439715409395129842581501491036156694452593857500236202263023667116027486215548351111033129990272429794388522134901339027460968299538861597608048509984145648328793972971064254708749489092020248272952407760240980535759372638810275955647050862853927577172968200456832876164608861434035207776045386009785113769202660483587147327295588490659897864328759986960783544357804467310154232107961674152759801183246521806822691916385987466239320223025793607654345887881033681885752363808651735909029018655746683517712544937770303876382160945706519831308933109681436131358083626083913352262542687538540663265234811825624780825907449024325668082836158994221343965844754189315793055197471182491261757628280885710361779740767263299722152266884419744971011135341652763396016729729908062339067667431017709535371929722380941480442622545875846498571303535060232884926621701478302252110607729261929050089771783300704985458546032741598201106425485489539162012095621375949222771706408678563229833207058105117221299131787761116149123454354199891871668523019929607572357293692667230183270446387306032495205193352421606985984416175846519964063892384129454541273757316908455128217887745351461965121498263392657046034764455988439850300032619599793814473459741568977036220247829312363454187600335102028897892297213557214433896513413926843663250078788292332729897918791093625868698586163969214012317968483308327527475872242192106861738792429149222109533957839705935079676025822673513676409107162839956091222538017380499125545541727448925491549644992886701968066913352954299196413436587381552654497629539886999601542032517456654652554098911807279766399784441849946609748289915240538503078239326649254258156670070647304326368029359022762492126934332989334483301671893346713876631142453250057935843591363169782802333839248801954509726470118928145101289880570054210957327189239759200520353879422403301089967738434792770665867323901418688868252194277182317741812637295383124489685273016339017356665525500731429324906511790809511852246866686216773724732850761526737694862621491285764992238573258281447072829764808122589036853041234286458326207398487501104147024857197593095983443638046996379136371932329076332674451487651621394581527971163984154221440836187062542148840881163628758325703521389884308984288884886321723562218113057621487388610384004961938172548575788455865901277818236404512020456368423677380548311074937792720409066331579469657341019744890324823071755555078501692425419077423548203702383357833856418625815081484654848923664966418691265714851827862280194277295893869216797125329810090267020053997753200554428313925961813483371028892500172849784731873860144614788822352866186612096265573586190332908187123475678510348149511245842810692024997228831360790113720591664323951728306711287041364134141262620934114935280273937782677534922612202769415048521317262475158636473348492669164917731797233867721655697351697255047516846561429195201141540515880801868986567556462491788347468917928293656020064297084906392969907432386383006164505621081377860606601812469408591392051258306756924628586168525038992102367987016998863786656134240586038251051588009081014966032602829707638420329222897487659054454667211670687443006124291569660118240763183851327912954549830210712349723069319396838330117957661726535775353079475783071380171268955300866570135443529010473048624452404066124227497514461328213357133992576674023962049090667283966165075730631613990711781070184315317386384317924446629141934867232275079756303453908495660961510689557352891919963187449285849841340433658749093643146820628297562227406817667133699133972696304839601450035468072199567322753007587208920546736055667430903888179504815799425241723706366146759459181752104442380938874667491998918259959338462780659158165584709535199535445966392479569467121744531975147642059989117884056724627049580521265742994117420286378425759160276033834267418483593965335424751129348892821603796010397690397767095038906738048287948833628636935902446283692656758758607252104389736209404731160729805690298671221547304334720377828411259285059115886338214225910166910142784662215146005017979830011343851585448643723908701418478666698579036159238777120637333419761956115376916746158872799952574361134005080018418178141604058670091306626970444971532024544545800363156800801732351454998416684631043788148871218534269691518118235335664461828123964731153049389513537821208996404464786084709913665042992646665758998060970486187728426568775644002521363604544640318792192900287987714090804653232627263554095849413972433646678852564228579992259431892147731832986577643986421015180662270307214895498925439965810268799179840085849421174975647749916348082989459840407783986392285223746056291065081718660935853730027758849716030128598626244497886801452452298209945916009060198914450504170421154986758060334851590164173230637427015269256932105744321749366243553434778836710248097051781765731428799974495852932847076033073086507652722403771720522975371393914840094314227216573296004131275594009664554981559539539741217336135065794430427870909299592022082624973827757395983835310104418984828637641216835642637222825120616528855511737444266639947986336617739620650661061461691954617031673665337374161858961683601985998330703456977893239687176802265628702546104237697352493474800656113781014992171691491261885951415343927791385327542411368591419410886230730820816113446181351390325495638024859857162462062202139323273398522097479084383467820432045985685641322896290973704175270977215525949643219513942601048399004079934538936520572556430695745058170222941467789323729663857631408862499771143862862417772632993239686708052342157941212491038666189231628970078621289709201447953950874201020442759478806438283750074570442529465224235567732576696331984943748948987099591458850397936198261685633035391277667328889329539733995228314190509944488778076275703704342133469274325535565021181142317495763502293541261358241098779054648809058918406374780252324855034450303547636566420768733167868190713315185882832917056919796660982669325652538768488603868890234153459244216093483277135904569013429228706811723175786335597510982050551662392752366438970601409637650539282354184447343537641054961727564090346361167578767200434011255094692620658553326146843940237095124021372601196928205066806196956616975331990964124668262362764938977434964922870685024270238848229047269532366110428596833612465459592433089821652682896823012054834794679133318148398696627306959065226017047279997024908041926794217417856123122645311416150811930273003391453300950560494092325015864765006073259744738022624680732006379173613365717180262358422061082872674446620133440677584606008520732946254598363392972818432102354240896409403854448409827864298102508749932574494875500651598527299027056809198274037081328856062559056685813790019803285244420935408470781916989019661307170778420196448831031414887161014729494064800487229947524404533729197765846115923675554337221748232496823352822578900012563202266930964542939450746208080814557191500041525537531217976163908475448287150146417526419288429125639810481197863109517475178819839174653005120774794162876603175505694642181745400379621636610422023845996611358672840701496341028002051782547982434341008308622543609091214800862663124531565772064418258655308716957282335698612739882677316671739111256595840811918657975395265971007592990899785865122218468737543971483728491132909718733105696440658414864968549580984259253287003577599152045572024061687688008345928997914164386045523889287224832861420253829469983872574609763560031923166323028239252637317810954186836208873906916526466550139581544614234296584073793462155252687883818558646935676542839526474310318479076297839275943722797366440641205667840935472040644305902547911855406442711378443633464627432618137426234214258670963685520226157057673579312392758372260053716280822223398020988955184192821978505663633202091001183518201555841827815435541292049908746659995783953785995120565265015994652210067010324969089192104121088936485257143286364366239856796205410429837200255333202013544277685615541909566776472012176395517638911095198173581858680129876918264185700068509953059526182576795934613570696293728674960168572086563550635265268206833777947204175336757086657866563429846771172459677282076328797290343223414995634413887898195020537897829629550335628727424690355879014771490065486774312703038323192647564169529141017911551225758076124670009952188305809076026121129217320019516741783212909464436856025971560266030913084715394599669435162275533570758312339653922998492410300995925126162806612513935686760549619133679747061872886695363780504520748662758069529532598315883715284036150072882603674405044319109889524209485934780046003998622685761772699339156688550531500078808392270828740495015178281890609537541990093292229454841902937536259608231687805026465775810596181283796591579030319013242312550461633682913017815236725076416441808571995040619433120103637517555007590967263536742687846598768667494707541862307482142798921575180354052886836661822739113715200119428909421179470193634595710762239454654746924012563202547137189142403064045286616966802340568167256815978111786693527141891281276376597631985829802395344320533018301821882392985385193899793630046471519444350642957865733471008074475465795141607905603195473997555115511286105660865341832738169344891940558356178109419402676132788455813698309671454877255230203879131425064258958063608872102300671321502947350170530150699274542774601968947586865648048860497955140788839595572315387493883280750349264086765074793263378507983151516525313569406761817664915221198549479197667435622823143778691931378454542178637518852316635572381656481532523852844727006897150320003397489205803227728313714402771156841321664261047436743518465617976621876823067659790195579985771509526947402787556505446463966620029473340342390092440523083626476406036677378371574400009073585017499940941652246702573365751299151429405103547316406873778362279740529475793926922460776000155646023355662553339260976563635547597093994256247068225494476860642467853217859990581614608422800226992141983170531821521280286600307977073973057064824340999499149426467782522241914855907624861153222382544962576813920277006116373975307913257191488496732592574468896196162288303792835247458521767390151314677752047961839640921371353567267783622076431945505890392991312527977248057216622065549113170941145673224792443586846672106561437209501077969636789591659486427695632560395237934160091177920721170561192224138632362660995743227352061291333565861773127316648789324099490416838894649713075154689413455550581495231096442560412301662727548174770986356333009125999350619247378828218720666430598609249359166714972395700561620965444307534474814839311281138839145053425185339801539950414036624578203155840592306020071597552788096479823313663421786750102642159091797752983911341583804447881003903356823673092335951520353260354849918078950790685478511155043203361212385989201264370176750704763203999716966304672756742132005537559568188691798286368024043783526309853116024181587192755248099450548574525613906916646489753005773613527571800442232071350459360991924679280942428536560081600439079877188306058272585610683055264493104853587649751056004839041424381158580437278175478913992736746134156025943741649611252467266308918953349795748823843092486824711543705369197911848600413847215359982213644505380561680817584129704393238031968947107375114283406479462788077324753599187966959223519605297194451982685585448247986924211113630826083762478392288809113634253878210232879520902393480926624227553368830908532632931285275085725755096914642216733153849491195569323074763878534900284395902298271895769671470712648938810902315785227161946851745076298959072671215191864504502548697527399016231727779868653847830819406729402094222782686690604455065636605809058460336893621005609541081670920707479903107644069945061372603902041093001453341378297460390036731445325509331793810016612521264316492711822277268373692267479094971588827712800575293862787998413295342632733805276372989003824548558643181523181695854276472859449520877951422709760865282760226937830587826044538955338223193818672166650810245965005623810102001024368991684807326121061337849831687236969093281216605995797519341320938303853484596199470329910993171279099198535949105157485772327080390501056167809053711415678839649032156833971309313453726936938264900878813470316898338855544877547457401917833031374791086068567744679098247533862097361820171432374877215175617419995187622786652518417328144335281793363019754040406722556985053557838740976386280968905717952136976800443875073305747357446578814015666785763128850212034509550204681301052443115364321018239403399451767151049354551426656023798692879054987085829563343405824507628554071959129164548088195313694707134231980551252774367679580039432084030928891036507264449714341876076221804611557055155949483300929039232901818745482707118592000328214501612057652218196850625341509604773264726533025822061840951160554680556001281166475853764418199530981466885936584867176613138626987643440282255680263575128751941223318719179199753608774964450280317096649173777571294773440649996058785082462923767659780432398549607911922590478503325451767341120781751338157267827600348222401627356713034826923801093852219243517591826251550387075093887087539268073263944100993858294494727908869785517566018361821096280688166770432344947199481511139167269575692708012271034669746792539921405672447675472711097676648795183273647672758498792928307704062708796822890214917362195337786627927966670731400343410004312682195425554486785243711100755829805683214735843993504716457627398427748714009281700089645130370883373895533726299908549693135950964591066959113334891751569458401929084536094166338794965534239226792011022414384851805171496521731664089483232477739143372711878318494248928263292099520648616657162752356187244326920467402741703761265143445261658853362633907465307770743467357672531608544477003653972703078613949237867998994662208520021918216094126694585200103987023865862974257004486738502493074939883229824772461655599958169389953558807046891094502803826205858573645854891815358769030892271955478358121851625782997759307592206083148952735520086302855722987146917732486186603335833679494987082712834184512190340246727061131311395085917827227053615414455551737081567147594867617062617729500947626624126543803271113283799137976411199030092815849141180354873821246383988277610765928035064828934803595484191180381552876779476490076461510794888022391056577170716824151769638457301116917270278321382660068454407905108435405610929441279786726585654345667676485376823367542609382672611875451824598187588044093019645862489793418242213855002605232051176402740660092828322942910252957353686356996072865037544136194537051342928398760018772197553521286077268004832237678651381283333104761260921586942167075103399911245349721832222502003245097871502279425586894306243598639898444406106391879054450274984524944855280573076278501651326199400067307449545591297594794677114795665040405138052636287069586674286440214709303417331732966710190258826176704885153438172494238402916984778470683473914941290336753905802622158144301819927054614090657836867733359446174089143692069814831692876578000138098913330697769446085768345075051090618188258602469396035289149684654707332148274761455565618179058479733031735568373376328349816482380731109876067016621521120703999215230127529855923798745881457004534077180021152067397512708088606107960595720007755633012130250341552780956056222425665683753067612592573063285245775087690389125103017105151256745326596954857607323370504775586154038665518639249678522116234947114489662391572665622896794341094944532613849960900887740900220464569463674514052171667427191592831122453171409547193875375061537680489211107728867469668791591060938730504961997372578355876149565133753757307186697700176931701575604167301037547208860861286537018356097131259140141557465844708474773601922781128538665852074082656083889125583841007094548117679699145193192858534720026731727859277894379253918862836179442799320362324806659555892645311818707679516475203960258934949837296310966650359829332105595534623709574518115143967782590545907859047471911587198516165049681163369361388008853621284080782010084467352227438164058103628688902189065826444781893511079942015150887750252854772571249666203534372782608383327302742013036694222722366078780796911879149759879055073998151637087391443087404635780318273099707340531525405155152652562060212016258184893155820439780969432836061795053506576893155767422988696625530026156759666762838067692076787141588079584185243278953854027912966074552231977420150063040432205238178391301329101112381384709544167615862448927761730871625602762435323307821630705319574459851968363948602218084257950222439535742036797570947811169962180301880100609777463342874155488641016528916173053947915695194102439192983050941536099337435098577618605702133304295305976690574234939136271384174819000207423848448753703766263430817566275737915556141378930227257879958042633852564916566068984281683092983950510589946406659899892450413581781053431423984076325402495350551057840421912344492070111612411122103302788918086477292344339483858855658737726298978493408254739424119681399998760695065073489563315612128517950629617604934847278780908514270429946125494355122182074665798833103844217470530503913689413904284780565558991151720948012616196330833669933742479779856800317977719078824471355260377445924599783552693885464956760916909901547834663387730357020597923258109568609292604974063689627194639451692039855979951170674799353194597445534477249837281567594502595134074582905087719338293844509848712293334096750325795555314603807674754027218405798866095374449187843270397888959477079611500863439390357699414566963242182868846356266543321253095265903315686207019019834881111803020033987574121736331127809303903325370120162428840085061830473968637643192640210460431935838805230804796073361081615137924311675609941001271898113566852642736700740024091449679125490203283597787221269198233225228503410383645202706073513127387066316295301372198133445501874570519619034049393368951722421419112293247690330964303748162851646549343530152933376334983422153015240673738527489230043816476113730013518903736058627876578243076377063659830654604053282687646587610911674594311720433159516064978398856208627839136999873891550233056369374777556353667184419905789629443321922549389246067793436920920195562913894048393383936277777628785232476904419451448650172543584220326697118145591001943880975335142465596201321895678403732488813708044645996904849794253572393028002945929882386610393497862849777106940513382503143549430917351315242795575628044288604194816588359949332290207138488618023289226364599008864781431607598796503045705174183326717574015584469576857180492339811288333725706348257801163456770495238430788715491962944223525927490796514465142646653875283987065358895695466843284953265488714172477527911099599317231888350680475146617735362794641497710328879521297753385318373610409145925768259915825442804362762656155064962053164503740049520971483954211243602036059754819155338185508259263823706163547090704254481664804763045981235888092635697528113996177287891259837808067865489551815715163205695818952178205290850034368752946596280872254999173368637516415993398411952087404679941164063177577113107103735839032059496309187330210646650563552105815080713202304675750120366781514050844963691716168896107544807775742714619170008418183127172618997277742198509576467857257791453753094746009901050240847533454354889879724681232690225556585978566963090963279026473502833166116866803023003773255843822196299767003370271627625421839968457525919284188745004464283113492239058694162028113588629747491507219428594408235473350082005337160964833619617804487880081951688478284621762829092131241674339380673929690166013766857442005267051949592877444526660074169213851657012797645108214711560788993241792545735398174484232968377077537614086189304540697088827613890876379048110969936283397039872816826766190013598265859285831849205695359533769400286641780786214489650985807381289750457881522585384888676879133555339854050161924264007050164641709464072717526793006392145349387503772847752663412565874448124681609660279342675148137814365225457633743034822295469855341343007858088164404093412155564695389148745296321805940102297587237347625886870761402170495055622226502671269729998944320072568582376948094595068541599984622093899764682651036244317012216459897224185174647388183639401354870082737941318995990366345059619280696585036798724791235455344872199458885860990117095255376221013004802088122238107882063358801529938125972570402479280575033055755325936933516672394796372874967513682238292035467947831127757456415930007417538592653085441339263208766519890573365708361460683565934885110949176288147457647617942700285228120123514116016986487313404577847972617370109992456895348451689710949362095677902620820875081491844671205070933837351848024144824383883977732435096465515717033391773811259959854163329355482789842717183174582355555226779946027654370657771237334757325597821422581683003187064617547060334317639131448904978814259378940596911893258742112746640921067034188946847227312209531438984825047221892671338761811672475238140273805327143887020968760807683308942384111055932002195002048189402250434315147219191117562852763346893604082122673077507205572481138563619877391321180096275614915946294642069547192278252618006174342582257666986340706958743660528604793822619948905791606622440848618635605714594103070181671968883678720833541752635204407433054579946824823142475782165218131452414966672477815016453168109879437800129783105274888871481433391802590568071164772596531228517282536002351316984003257483020243888843233051905074414841141814966377631022018468905327827305608876408451962094256924589508021049427359006326480782351705059279810636646742643909303384447191540925356308137001420713421542252624184425252010247177132832690695411725875542227524647564182390337467155210542919180566815955240317555018806879632362310220883410374082327822034691000503675236828328082244554791539972023710227278791829301504813357479332849012168143202003361953975606005341274309869807634599274308597842059404910770952300159221252033399202027544016484699281901009959260785090701326720141425258205732471392024185199008845950348749697112579861434349343567254727854266120535344328087858836998790093644380234820909846048924001828056816176376115157625103916224547387854527639677685100207186468907573581087557398712420759430891998775428718036968259390519090189008786915815653896598833791436407297346223983997545497579132990263850643369175120865730363113762532550227986238126565339195321943782963454747083459541133352065678880105146230712896876474784063699784953855388365177773917088581782454253787157414292523670208608486805625541084901851470879643205977897451676581004230990475401940368321956987174476167117973764662239492630577264320780591628779181728522761766569618354670369506867765826152787671637774613379384919907933696630183609788040422388310313701465811674994377059377639375283171855606846112160416760509153466080668265038494295123990294379527205821427445488397351885098398362601918921475008585825066124996902482287858321913233447148564897570025463259629057031458679120351538771851351476276105038571543226943077667547637434839400745520991389376127794321636084296538998681647999583613737764102495764552008797115267051277188535798573188823213840096263983770205669866867086115043410053230602752170117135268102253345851386847468613649541335315123134313215881737548624980597728451655964885789611369296971011134916386792071738260304508730978754159345603561456157468089633408870732826432228905154790455702232133185493245494802438330136741969535394039077251398129506454420881615923146565580135564048117160371857527948081535677680624882824301530195716243148930827811270517354684972292796282651520614828311915467556756854120003336074992444415272866230119817167233087185852481571191731932085367038042586981742850767322866277708168096006280361098699780876114026330013732453702597945817373318536260652965357616747140068436950331748508003914805510741251494326755882717593979892640105960885264884374570156037375587983619297193081696487522272626861911619824422134961801476531875557934204610244847454682261887444319972968014287378891258012118983271706414527737145271639372742447485099011456828550780350593136928542264333417810899779403766226567167027297022989956785269624744271465036370008797165405802216508065369416036583130255726442926852654667403554114706606032610000239578949779367254143211302935708326728854539477163212872313197239423082499792879179849231953285161771267509220125656554065381294786356541379442115917512384663508354581411144983543018074619825709989894106595396313679636220324771632721887535510935201615596284234226156850080463487508312211579203832480995968814114389572790334312008034519840828964165553954913183187715709222395053698443317748981368974701479216663529059415639358716655879949834814550997748840066966084367282205936968351039405179604822021197613427740900759876703815193630456115892778199262416715489613839013389607068581535671281845884414232345625016293291039954307906633118670378543867069018000260730571450256869413623275052255380446756204448866737439125699010170958635481005726203934062840852720155013169097653818255401464751792499719581545211844974364456613326358561238067134993210447745696720026253117811028310538302586404326387419731633091599577436007948172829783352206163980936971778909152527452501486326621974132290824685683101092323815740387616446872444400734478637522722358244283676382060000316419987723102835735872077556522666186520620250513344468400178489892131066561742784254348236658036612603605074746863541460809320729383179537235657908517750330841707800068083080469913591307289540053826869737191208314866769906574720999159938787875889893817401594727920422316582436317207713679187849610648693236146034526286911961254426963286270597680331687194067962397600210446115773598896658164120870308428856712721365299852064221724595979559659234347298591687222626826504575925858277834106359563447294748582690716955278520694235499789528086723772268810701639197510311236931877877888989300452658433236461765179132915576021704945183297338716013388159872465394376164301812709821210457257350230429852378303249410267034444849260481464306676045038146878931991315155188736600437978672879936760304025349307994064042929448078991656601584265559806685006594508662807286686000759528998348648377663835950068847575845882786025527765593191601156374694928373172921775761404899271299717258108931887877314376428837310186102249194700760535273912861024597225110350018433727780068784898551858912531990797857259436923344659143650085300741224637787386584873967540136543657947098859547571042447542383379099819730929023806421678100244736745397396878194155887512505296331367806542900639919845593195465314539824795724276462905646198095937013667502625708291111235452271736957874384625847398196974837999113857586293391358463251665516227951325477353974856868111512351373094931613789252530426280602161603165080211582982477596073507386390497721241908116123941216440166507655080110885739641052258410391717294690265294697322171072990679262901683528527786873098425790184492367360608306750498685163899627122771051371612131538006309578153989564878232647470052102298913372002243397328328816502179152225747539638745769552628686108011834002844546361554746309384911394405622850995077333892622719176579494077272771008918337015947231229995791562512993337643635599812331665817177456794896687854795779292323568567117687807155196466399076004845898322188091019650769687586973031945582584081676324417360888116584802181525836856626628730679737613567273166442200376597416903776744488524150071170761395484985111763092933874740873338753813847797074341191481321516803665533634239221897200434458674203646733815634428846451899400692849062438797341599215896572558139654964971382839512889983385644423278364152902245672339008028122333310887092592691848804120912210977669161031497111355962356367058896318410361985254105407918943453860378676507962086371807515438200807155115356425181411236017842558127800001405333307026713961495268095717707552789916225399281678164202054688336847318308155474961652301847831525000160966767145629466992330540057262353423683716565795262620157001391308044868070485771591972663287974892340023260472656794139455938601366899104132134690120768623156455203836813096368200335490412264649331543887730711266431417263007870895537768155261001321575099758987948272158015829935280403951011589603378212287816872810422016853788976967413473248860338412691972048853473929552086920451840444000166325816473140581997734763213380265996502143757385745614988274368337495539018765950191565752605998087105027654891824462755940725353608929898270095837606140172759981542306317097399279199653302343164588292923038653881211863206276697243494972369247700921296598359365370300384465207134496067072610928772285098332905184339614462089384569038445756277693862793143965514556931300259268679733736077834961434878386426859817591986866549044051716809734610606570420252818470549225135394526120093476074701988344973119437514252859034760938207726610310768768321350732515107962792895849733541670124510745194489806121178516957428205873364942748882405044499839324941297332760029291110672715378438191662636798062526181234116524663203778960381418540936446717674650625153715059561587518252283713846054202465296184505891790446738940955522367511488419257584958063263206049711179577037600818123855773351699009180628801791048479274875207477047855476499847489477819147609934915660370540984347958091002976590559063887095191641980468661028130125625746261615896747205984497291356417051484919508873883510832104520810831763355159021279798346710504850133464622262353898014527893871831534677439658942564368139120813765435515395205727464532080226388379050368037245728516248867301124661379451286815259510428229715510547734372263914057753936303439792621059400448882493044235155197138214392785931493105785169557238018782831658291991550455314157762977688109189053612649304261936763124829139256980495265751005893791560663491199669050510869475807890874521029813289479057279650446196188764384602883151385046768372348908949146995644052286681448722992927319887291066983093875607621528396516606002692285268742401611561207268947655136492669118326632486152940531650904233725005195565257846305354942331384124473364834847346274077957097051978459497592743329107775301677875774535603857593264612359150342400590241273883358834517281117940079563899882252458279738697448346240130999645213302306554184743313361996246424196634550997352506232235279332422485198603527715872939384163828185450050247868828252554478060505409635529319091142550435248074477352927154421693000503247203017913939500261746327164751934214708330649696881042159609027079283945893766304535849031117194065800604085821673200316414936681067579426061780513422083080733957817727632697022998939777714531981332086963750520285875865988554656513140059946756289503114467210531307279941807587600277310181272486484452399156722392053781088898497506499321952662499427067947897039264763003403302000041807202243263016588086173768967505662734529371204452910133219979981015240034762565764603761632218156221412130640452193361213095717441400834840493492651154996405872892960282074633555505350095958196024532329565682546661892346240711002627506120016411873850948455290437578989223511188303999118616220711656159339952655104778696431799235100327684745309308239982675540477605718373906443385420459716670269859621754331086368421585870971296659431235643332480391524903895590395619379716056333975917463045837824504997739004702492642899533071900129044430317122856291378044201626732667430346287444497681946902349226975151733593259364226927752673616573251925497792385835929733430222105505622289164480203338946046676131787258315870259263762795495539714723554034424927198265317521438768069640270542191758279342263063851732694562389300549127336376054672266789431635043075089172794063187232190897415509676449235231656141967807514539443781047298224706257664281919682907940903389004813518002882913108353973975687397508238100992769589001892104852773668870924164652253308185665326978835328378807094580457069789323639906921566192290838394943504086583534915869012883408851670400161303416335994568984314978071766424176591834807280691371747670490600980633031674851417766052010559689918985957443106729712255297639722817462117210657552737200297683691174436858808458957475372550390839523438068508827810786562941604413993976413528810689102140331199930811281429685271032166729634691875915444574982509899875262570266976477121915689000724445424840154549226104155095764178280052162162221154857207954745524894419871459948099130620680103159170198686591111252877379428086486903025541546562090649694859320647172770655285073755568955675685053640756088181452909584575114803950811214634223282419069984610755936382040160207330785678412313990177224060991434780365469587134387277570203810890087210047884101392183180569023115861465601175565888542519045211481575546077646078483804236346441313034201418157461640469924268446037256257151219419678191527869507220444148381774414525975053839370444336882007215830288466962255238735515480846066952670879750378101038446114570528977177538964766645297098229310042223401201284057740052345353555424361329404899858264397857327771179517858068169963085595236604036209949447319639596410855748613532393491800280006730963100440888497160306821829842121451087446388269401464253055589284757989167320220594366261486664728613787677804898953316638412081673179381847851251365942241329270452814328943141155257046793564091186829366276449389772310593989152664749442630307827987542152820479766647689960330616215809086628945889214034499036254030491953875577909116800655663732469256082103542705653170057142703502603364232138384497512742079472249654631965861909194452651086882091843708690041401951580690988763534113365096248267199118614137989459125311255122811692268376227355730009649948351772703449566148422613931424543023448941247652850682880072146302241642805374151262337053317724465307367232063001488480569749474031325426588183129617180026864871097625100731166971505180642487653245947475001477155857809895761572301442232587890451772560817459997146087196287288954471149195699566652598146351045605110426905155161809011172441359126574886782868198885718139050513849525946491434799191035767736813789563768318124295293125852245401283956195168358729440825564119585786778809592419258995337063676220446702125822292180887760795536369394479617730259250697963350881235454218452931521161175233005345637314078161698918322809174216396472183594040059253013172586168410470043450603599369930332840170924202565501912686327341069205533889285615336685576726768810012692973541065085378343078789367239011528218063691333010979047954906591186728073022500941005694494066019222924552807907688602425591774359175265895502661118744307867602364424091026877162678016497746414387226085131361943205072174277445947984735757636834624829009763592034254829507480910600963939502745253402518987919294847095070078431378761367017036126510394441820875371962443021830686169752353829360851159107779453610449252651500083499533667780417310723059282885348716287133078462900579441001748244228172614581756697263106947392506168567484549649917442405085461858963251886573848526787614241115104992085434781530838042369013404530858765667537661405669077979436626978649728303094235330543227308986253354745553644764456942474965105491721215426396009028289750083698285073115703375234549344230876861084327867380001663041959939954105546378250389362052541332945783586860112506881450709774515863571839916278721620299484741254706144778230612767385515551204404216437899523093526736943862052605349006244426379063407819128467091936920984140082029696374606685799327862969337208920567004475169760052143191082910354846645423606016530289050196085130887606916452916641914969508546472847955997619743560076273615619916603801530475906091853007664308872033095357887877860513607563861735111934071499521821726564624761829341739858481353224811241423044887140354038695032580665236904454858409220913516493910444931168282487535913299918490620896664202770077953207914934498130532617831402409636660550027584123391793163878698092572230798855499064447900877466440422181617969615615930259543357784842674366025756129233528926421553719028615819232079762112371661088673551455133440655753370911261002803806851144759230184898086906353887908347717443573573714879569990270714047733727627543992789238797436672968396676619787198958074133096865549184621586944761024020658094524512430136568346927399170158330246122812185887287644660470705272581043013511433630373825749905321410564706700130087317754557659700014882470710999547823476632410988934057035145172162063309310103755680787961245995623593112331772864953010267372910554774744544275550160879412411352273830460033491537591787308333892727076882710279298486280194579085286043220416213641085383845657257739719614813902378843349630366654496707992397884061759451881569726849281039014401739071933569428108119942560495871879526587534617557168705330680527867159216693458841853219081304929159981252807777345506475701516074410454326994781515039744233204294754834700137478051723015949035568886041873106257458576589229529789373302609332754078342029392385433295017390985672900693686488207649698217303549249355503413773465803717644865641468039581871032831222014348473034031559308511687196669459722308141230736682133700749761154520810151668058860693634089731252951132592234916399174569274254269001049074000870168000513033602014975203410677835035078061488406827865926811594543020592868655886686489845038320584683644651733605904677027814324998160524643945942724328054155634585216294402938794712348421603812497565182014117033593788434566154818840609541722281607337782778314069591789564578332732264054820885953267631570056743544866664325385033460230753259274194233045264001299496575479148237380479204375929652785692409866861012150155645687435913681653289024819238366813420770953448104060463341568635072535066116274250192588570869112561315353811426520184654593082992960918928095827495114334694202270840552388139424040025894932481614717652787228347990151691536720601827759517660313300934730913922289922755217017582172889483258709030902434492865098903461261690571279154758158573412400736278810876056255179743824013138398176425643369353885132387260920803576476930766117765631892906978033297404773202466901137015798467889878225574971372242355061415122978503427266326771279175435754214477784509270588624158755585036288448765953740940106565408611241522410625515382847597075724069110780911122782288988911466893873942719101940684871327003669077714190050364365385085045789899943446061809806450427183461826466833890966936522032036313771435013819120507188090347924693748043056068167921520695108746940185272124327343317322225952141217439605101646654486202255961010004813289381229593228950451891663251537646251736612649859028034493795446048007124193192859534738249304988793132514877099932606363099411929604124737486212896425352200228280568535079937110710932624143885889077314437762985991051170484673171214094343826394151835456783248983786268641209752764055893200323554786215709481113308349538053192420434600283825361760275197598301512729054367994753548044661884157791089941836626303197665206089468600934023238587198650381260341437685849149993503310670344890193113889582888398890868055419442517662367861342648767995509362949370565336384380872254721210567870557183775011875724644252124372542395024696828937205823831868399641832076213334057648079224098072197137932619555487518262172525591718640957848310226665875835104468676178156762579463675918761364958193211509137597375802397089576841878729983930088600088549973881868904228625875989343460770718608914459773415181984103199749690838893770810025785309956357113597285766361160749390050582153343172113565227903782651423638813097780538465361332618814154753923239242736256301388599973795307445328874855449434870440773365578644120637385759520368664135179018974343535532215851502556643243112798328190552874345078872091648634446699529762575260950577912562223968761440668598779892942389623742000908076075923731754029330061188539061779248501166210760075761306175788928768612027011321855715981807941139081878712088934032845024701842083668471148268655959524645783964624739126459260161262900073805736932757408733551500549319214984529808827099875306387170860174119496013204203559078690434466216305824508526626551256460702533874342355463694090081387030850041340357312064361410157443244155550374636961949877069900122409959278514766312113651105172107725116613973019630577026302208141404906967444878994471468603104119930170789429926909399946429836242234134616388209513535553921525410681506056168449593554055538945152476685420041579121082875840933936503031525695060565168632137001320555778772771535844905289447561132499485902226318648213933825789848883472925043738967630102853319551014116751409531788285791380876257718186448768640503497652630004138813798263871126667026777695824741529223436631446919411102395752072269388700853632400971138030737948224642082472934010048986979739689191996122572168307693450750049209256321103002406167895748172489334342926274220683213221449063814382522862359183528852234006155840705575467930241844431657025595408547889710592124978779233209148734470207207785044188834427547567303553557506063137341519346932962743574896631009996912193458666585510934889396066810563700308645389059094216353206743538712075238047125385351067691794158754581748137075350158284785917441844897053358203370394413644417909751504529911402508934088352729697442835241412034022560213892597507041441648204268229374316548282070779829053157510022034415025315838925705874348739581827934893372542191008868863575572934309170805226381129934304698464092528833784910061177986625580613783516752533345501546139318391833301948566029453017398955856018623693938944217268612205408369020180336602742266351417784485265988294916917745125691219309635074294332878371365566337446776283537232288313244652052244331655789627577431244864764305562100019754587754052726907665703911273422227410520035067248906621530533512365252218614158805239982130647378152108388778207108835663998612937792010623682230534167640640609227146327908344193161483024794934879387792368661114702933781627091456238269685502758619913610291737731235945733575748946918491098308556920200544537049669885606985262378793730009605052978296775224982052792054972319987652306631577580617152004909343925149148841036151424862997063546800361739797020705414109983586527513755730109268259528495882938267548644313439565823264832081542842397142737379547200214398774215616980623833885543997435688257106569074578895465525427147334508363010312976207026150549688412037381960342832328791537285189655007556402806979278648044924675356727485817791308888370126550322469101525576211531932554272956977857954842468586331293218080155312690607372089434062694868914681755860096943092261174572473117847299278075078220044904033949773636463388611059104764775631827622665612741704110962720832552434120316537995665494435589709568094460374527091524800646279806173186897692210923273492207246234349457670415162443520583008984596490462103254696633628343381382916365036678398669311362972063032473387368453822536961672203820471014316915834639535819144941124119645197439826742400760693202575583071924111511261338084895917187117905966336287017053422136494331479729766435060400286639234485148816222111461458651119197809998866491032283607716500569611855019615951485802961981199682200011509334241675292005443640350190427622013002238513422211192598340043388188260103194211478296512447700073218166526172227516702605771156952060693907483868102609692812832578239909318807480027452007320844353971427096602843331861736008397951637271304670892414080175482418468708491610299571926424257814917139475727298758924010646266475339350101415490203144058354350205634520211362836497607096614876243847672820523251989927574982550252814885902518484328917877477235569058294022849184244217740404656780650270698965158956859731348523798974001896441319359740616604502634902600799844062600034214931385388527243349940883540036236946276077434524109256900116595247841004758932835830448837981187100885728998311522756125712952960596258277258736089646130062712893040675846588215494432121057484618143765277100409474869690215463167646155675995157079387965447355099181257173068521051072644754778549840130293586968724229287280059059046029724090641065721385222447075012071781285900651790072263823063601640287339447364071293131909121545364795555764207967239740519526502529510258439297956348010890531702742827913673304201181762750469530715828233409508980577214092685104187220125123733533502182090755269461468570858983284014210114200064354860717615132803788263524889538460738560257171576343933143502848226739943272739064534729829561963950587446005717517911536536575743078555855392096839454447090909946548433317722097204543255444842852738244060631024094372037964635682357341346994425690873596689461937339000501069410301823995696513109212966818397469712621548910333507836200461475366336063966827420873645777813917543553470127588782953087262190377767667827500298100601289095635695324586918544706734048115119095928153074525880596475703156681353456134354236712146395790466339989327493393494246615060207001562635634333564997011701703966853532843401593148638040836498321805236109087677882973887288526239699870952695802072521287462732373747237120338961447700633301735062776626994446291968180327863577432965579380645869604220248073379490459143780678492245659919340772049175515310478737612489650441556000565202263417284145790334873095345526167832752126569730744994569712505948938185297140764498481917866642081328865114044532578674416966196772259238571801777191044638356221099146008934360326509712776173863136776216824818709777511919505738797014404615112382636870496182792903991634534617238979082282290776799381488551028638345442122756994167197621584576418127628780485363585318567845674237662229749359195071307170376199566581205489646907689016884476206115427776630051006045284617761089721221325795999846512027592173679278528307772258187036302279810186398497407976272625786995153073348837508763792016686337630604668650579755370640658379535772281353355932016665213193868056297056713374367874706438889580060474356392618168074384699560109505086821436071006765379275162940420046610914074918785211875860429915831849176525282626133747891432342191910674071321317159558576033432289880494828785673930770421765708381376916636830772685536404970460283446551678892103309739777875377430923518468438595819955187553555675015885948987280745235273237652670955061606352287318442046657575980476628176536527987260826902206070552749076161899548583049735882459374338777668570801681391817758037439746996554811977164534033210986563859361397506475260551985757306368562909061073214324529970816594786303576856068819989150326239285985447518346195124515386416664905993572194031324984523985429239839742203005109035209895049092334063334554686761599731423112910407774707857941528845775946774755286420810085246936705600598181271096627162713036050016404753897546143908678956590084543816053101795404217034739119573657650009890056512603002152136437438037383440696867079187320238861524766154441084475339607166745621552704600432211900049356117768741002400602724304338997022144453581645720926733212749936654324180449015003667867679382927567543275819039430032759597962119759220428776232550982970538482811535126499187785252672837740933060572135312957583684683525325829726255437687396879895177991423690371416566755383575682471820848667455191961483712651570230265812123398072344369925862315063603834220905356986692160404955384064543896653488233744913711401469321461031279872662405427069205936122946493807277284877205802865148036444095908088025375147398225005188328538322975158875723873058741039029294549509447979912964845652024902374803814564570737094045786768527330103419003301855426603328777402806694500669292650724077682975119960498970712867659612910362071048868802022493567321844453387279243639966150340183039614127058810056537140780912689044448504658065779016811073298272675715243248171949912250739855198227718139101781544131580942194446531436501315243965587058150919898390045344783455457894810976820778107260102651703029758244377928713548287841192795708075997090448880493182688628311174992983548197094453576551429492120570514856851408037195581916396624559953177265265793490468399574134192394592402123243563425054288124470071999956861541772023067186671938663288287823748717149217098400817961479547046592803087623528241232699042539027530243345080644567148826989042923997256680766727029032934985132098474954552665104260227199553892163337029442301129296472355026059759071139834693931908198552793223547903493245838365403163353465591633091424179724506695332020488065464666970644325300820240633601460793493036413847929818664195037060951431568924321443346103365000081518349138104258855639579845073216630902836243702796234963219288663232734204799801919531756893138248325788413125882311527660298569140797228664561977875587774709166815031771379816049694350412195007335282159110366053872105288470431821588230826788033680495036505496936026955869468522922347292940794295250602800907325858033889989820923869771136551796546360772205663197707770228844683113623692580905714329311176161837935370909941273962890037885904178862098355217589523847947128291480787239809080488030013024538889587295039585604159658013754958846764215138610925933435133864916590174294140869344708808100374237228362545499492039516028021869652241762985744061188511233359489790191303415345308933004023937511863142458480020647027493135241936524448299665397563510279490320239545467330183695154443353602724984153591764270063506799288035941961043388702963466243120225117921058613908248907201683507342719588559219014515596163029604041680068142800250365128277393487469729611499654254593002871814815154017508136036232054184556963569724665443238374612750065379003734835201404400474746736340621549297533868318983544745089562268205066255815332189188240638375845984181229691556693845789118384538547876334324131912933178151860057835523534218460236601116106909499962549951018130128228809357269166653631808089197785996094333270815784363968683031850465691427774822034426648110682954826240322392812335992050796382104618244749071865117088108967354785246563394188658264375893468408796674966963764710050843525187800749116628568054336473976620450782804756956382378304550124974982427297995030524039435437061435977747424556327887981143716419044567529901330229432326928568119662772101737419875649068707088677223162603607659344333485573306216726775683585492205791413421960619846032696503872114126096582338127777396009587872233061552459753121431768936935589334359671096591475067268684227388450196434239082754930353057040128301736903750137361193519380960002408303987303295292892190224918193989023214276933326880765790098412374526711844630294913689982350711006819883850247896036546530864315304220424381248166694892999768563883819644038425693560350914641223444884924216282622458970652156385371099954827512371238191910411128009454352890434610155216431495188648818786387747640110047838157305756461528439304727459001849285101303705579859854333523954159032086461012500225516204880444290479255002125529979521714650087576217640979854319771723354488385351596295888242989394296739675834872895308610272613182331494664564031414540982025411807626552586920235973609769696556629382641194254039664297720383426549308216195031948014629068929782507587910253848695882672965233833177138768821740467482068720823004294176642279354782896901400259239385885407706176047080308511136803909722043419097774313740639629908147371305073806079329730371735429098248605582039381450832605300912684642723689308734294340801481999671199529602626930181033737929357043526142374358643518897071487082516591012677156339204140031579567008593272914288735047648943843546029029007458619238699347665208501384357662886591820665132356381768933585238214367932168965215119642243368986472982920580176347618405916299478118922185575040851582630225754416107036221953349904232641810764753629064504154019476973855058674985888854354600861982100914961677755581956727453973563601887650313244578318651342487368020958175478571919902225904834599912980949377726395232382031206469054276533794113023643869956095142886009065902022367920993186166064996336298876406394872295400628281429979985608226768046142050984771478718344789250837811182612898677706670429373119482256839640153799245166160166721279637435097737576163759337915878222026307535044858452022811106844834852921453192752625062566937223543434621387479469294630001075079601398544486985401696916688583534555786474747419614806099706610875470401964711440426586250012361857312952625882205078426411198989485155923325289411389971642704575126649342491281917839752854529776527913571294754330295459503295847080823594254103332342629241102180800042608449689396042082977233832628773973980715785410862013067540778541083966030789703905798031518193919297808106477442388419696197288404470577767963799928883493022105775434645433065060137019653596255962610419196861497681987919759785860675855063385098046447350265095513232876588629639610354321443518572331494156512656253658487124418652767271570878909190345082484113538926100538184926377145014635809766951743058778088025078597982172011051021836429769499295188327247887771770659959928593455086649889318865759570291587997546441792944637965034232261346868711344967468597404269790183582560949959176343089535860531481604709459295635526717309429864992988294804169037757316757131529752027711746926450566050727565271800515738128226553355129051754898521773246090094290228976853899683416059417005150869448525299961185916729165729839903809519498157069160670590255828887331730326184594256757537850913428188426688838306741464385908423983922079264358861554681326529519353279286144001571152541750635075658297522417945624107254647433776932818037407700889028193367755871888127364056028727092556462816627467846228100766960893760755558898798198918726191561734327754217083031878766603417015563827632257192870418690827558463853489778871083614809515272730989961611816342184423489128848798161450878341255271814880675801320816509583112594225293316717802752004842210134912615495449321697160960857371050345434506547916360395506804778638710920866437715117711439442769278870665788443848939331078023294376316008558183384049293313340667558275542168229525562142708249196082957455759365749328024411783202674551299658966399531206936627157377573939443566854184392090234298883872043828218639426349565136286643125116789404705132541343476480493173516044488405003793916536036895201548317428388827189472562150203283718375912235397394922883173223899555161057146319117149827892463820324861417303652120335521799790166891552365666730572897992618312411167820667570430956699642603942214041410483264545136660520067755705176361042520752626136407524506532422152206639699671176390698272464597538813581753960523761490315411468139546340067549888951827196184394807490049263309000513576097368995138641951574141334295947597862660532699147268053302450734684395563444747541632661670297282377708646943851012422823225841134738432578007199012966078959001992594432759807742765662946413005269662055468621380616158642889003689365722516038448915446661355432382537624417585152066746652399378946093722561212344620333067542063313056405083836422067547744396208661817482060923264829630865244255373965277984883671342540830637417825125861848590212805147107067230808197925815151723317197324845832955023943334498577801419725371600685393226670811273035680245024675862635962038170644745648921604116775583005808779778150741040517508825349112405862951389275983425978601456895924930699494986416655335642655947289465386232701537113996014681579168402384960150700911212566562690010033798094323968302622191693197553543755897171953188911085427506941075841004067100284317999238844953133152515081573004105718968152485095766090271811028074622334480821928578942139579415510557480412933232791482766520625346677278352276995059116614465166883522575816276313497973386396243237394136372256602169397907750959343382552302074873696773060375626780926534023054107106061059429777652131756302982486704630283889472530564948510480422950657144679303548363879846240708142048276447125121866125788111555491465037577916170929845889685622199477011359820193562460861819025928569269105546893617515907630026279459314787188716819995569851384994489059952858153975802590820288201363436895433614305782545912045290191625601762836465219031278671941637051579208068981200257443420164374949253941823824039060901234020893551071270511179417294008131737361519658709011915578245363832644396676749468053998318153311297439660952463384806560599287790229961494243786477038294447811656118694870273248323383968975217523011650432193552707652499251460014145228004901774251526859764594402621102810808752480761178177879770555672412555725370771059766146703028665830144194105832800648618537490940315428737909216101255282900070666208764245296651591999055156311596253799463087512014777282595069329323759117643255249930126142200661211907394792407928263344729559542473241025378391538951040208286359201698669422163114381668423518700743189027306160851578883807800676600542639987076941218514490441604139429628131796245420449318206829582128893684586692086553030821415753563386336867519729195556739871334825845291821143155973524381455065311036270022322096166746561164801436821891755125902255290478893026746775444767168807350202855824947548279485870768606985744323476220938562771489179890322058659821000653478737971898907014862589638875433688533032313380569109160359536012557105653213723506755228997336501570860293678853978576420510817496647639657417147484876330690375834831638220514893311074760209489967923731538647794997364304944764419905739083364776954226256734196939842177721080258220546592766709255548255145043596120900182972915088103633217870691677703913700288680123469646720134970761999181683378184669452237595650679900614625424107141742606385993639350883508645603239311825259002411393810841453174655014252658617411712137958829963162043891136146069705617962328666955967344561914902038044673491542998544669875433165142455387304448996593920869978973567196137220792557836552903195866363838280635877680949298861179450214854122011685744942494324792675442142691364552346645008809571546829872578766355058143464706387678394554356828986855737292150893358606829753991565293935824396267138939022720745043878491750140756205488666370653546585827695441566516967067069962500306922034004603980732719955154436215358044436934104526748280420261823509878716646056166587849641487569923831115500795458495994540547220185115144699083873252868819199823482352816148271854796932846033107752078132132443315448044002428039187138838113663635210246039948374606099445374734134100613027332865935503350391206258032753269585752556738554291847306893888693500684108573269185291552552773666212174406899310151252593537364134909177252793892774499493423255657097830074616489272177870938888025933642319364929991630281399268641394145391012918799850701347044543015847848257279164390884457750071931791077526467619359366941771397356435768543761278573782325141477286820121677503836686792042382718702666855336536649463200175225706836436014679095618754504936296823954574302961234755746661849992137195974970725991618533472475224330395671720910590328212931972160157486925860101985311025381888394860365687372764629214746382432528989242536645526938098127445772965501382654046454735577949904385813823164910877855251113877183298324524221873250224572095009531255644277420749089196794035860143650196439438521006668155861078465299641783757012832542094481245099309857379047391401725346975627827336620692061258847682572176100941432892637641664488365263533017256651075036156498726774232349030409250010357193831676754029433227655343391776970542906112275662024056584766209648328931142923835316621820383322462268650077419923592277896195144626677382663496853745213841136194011721944989925522472091233896863605508110621700778679200113592270066954289756880174311535202560605187975649798087745719355226747510694916557384596422015733618232788256911545640359173748219898927044887392616139261551381233939032696028123164294087015980163701652542228861168976547358391685331676110978675398750374437357275713697754686262873063283212004242236879958601524266278322316112959267459429231050928967218450649775163612573496335181460206536399563935903363128248214433253904870621425131955970433284188729663135403008618872179944036782096008602434992921972168597502097852644039544157589143194091678297318464315224101256004296424324453628927445004501673368824197004301736590001780330664702576156408795636088060926224373068519709671075553455040520749070718060807154145485248059736923046884061925032808005782794674416772690954044890377616225104079683675724774559207165939873238320660053468545366166030806011859362582176022825247776418779719557453838334782622938174927874527589290750347875488942834670465664894526999485292777664636205534523923134151093912932624325429723220796448758404640759978589728279497089904191694174970732549140236295635444592102804783243239482339256083711815822437856522429763185008401901929171060338206087692130276499356686637703514639744777720755903348216218691600400603963509515677211612452547103084674946905678520388690967511546303529491853652667528048802917883140863964213496893989778811660399781970717912857592071261892056737847624008554226165571924973230707739295122880700875543024569426553765582122927051148742120391230085450088711779444062881639081575765058586652177592677868491673544527882451995397582246459001872838251290618137813250212196891336295615900653094282017604737716448148278127807325055071610142483754079612998105314968494807785939232959606123403453563655507882755076737001716825432190706386115654219375884292797643534288149832582930506486549495129888305331289567755114940253346925280722519178793853385729060240687424666000205419718089985615649609533766116027688624938140883852571034734003729035995099224113455557305909803445701752481815314651131594226279219403987132431967434069792114140261019914049996574283530097928100354206853522645383447668937234875213324634965210224160715759097968333480393055398197360368357370075619878476780944419697716772731316228272925537354070066750970155882299549332580336442955714755479816721221725194682062966453913881588526071752295917132119607983262198574940365910850583434917594110272606037198457007945294466732938019251008184096784826309796997074085087825757469315931469794783978244256649130165900487121000526497938906404997803909687547462219614531871105075872279381943130650993500690392784977371708900548402014072175620523227290349182895030165137335018727460179110332864250060815887461815137224135535725579620361825703763686799633270885333204165294442615272686380367416384003855483016482128817340696241834545107374578835444392998091513827897140024709031070676622086224841188745981043540754386610098929874803347246707991346518998358626333809130561467294679421288014239055029490639970346990798844159047383822095290149535000973894169925402791835941729692157014100615784595109557825093592410793517492349567715053626335276332585580627829811311428756783798088975057698246248153441082923684051121089334290356254869666430171026438263548592603295048925411676910427317264690133087304727956885918129182767978297419915864689654374885021127327031965184215553849905935520372534104057778376999591184545466892328075476740253372605536396954041248353524497094029039682482797433796338273357010327193018795359261926785943394127344281738234530599325568805059205839446996346558995457623757406490157414349720082924367462871196747749700569198740102541692865357574264579576179469243653894401074319829900248178053021887690733971479365087441190500736390503725765183877292478230581196235433269070595530750874458104359164208071317729974420146395551380434692111822250886375257814022241552116873185145325506513479952992806565126117227293606445388617485358704443538686748691549338950288346857775586448573175708969544521275632795171626445181740161916854426600856404837671146609898213766202317276074209020974268401969198583554574106391416197534290606251633657170848112865563231275741402596339571648715097563182628588602609909791002282291842170129992329047106080121772273094088882556107411575078403646136442510068185319268168445216759951773713300112172600581705083877154735747844373391032190585060854421215981612489834261448661961680786736314253223392776903186206592030228629517623417711758775613871233156760275301025461607050728322746451708303602113619413742438068495778600836511677976804815206054769660608825755437575316743070484984572086604844480345756350497142760169322291190023271824434115024484099559655200292862487313205947326365011207857666170678644208045487007465898120801727822327794623721904051847199442143910421700813144795059545131578016506478701003554895303784230304912046132154162567356398233954043644029805289193879317416854006839284535350334545136148225140397101588561833757888624214365800554768744932889067717387307747557689299209770471488236217849149739744396482787264077832533670242463368576137020236678582367260659850222653412407103035941823593244735473852476350363855925464375542407055389869344518619444965956263123382641849699823309104129805366887674867992096278981113524444811615188025893187165813499424076186640577526046722420379069131391930598359336005408171381282722947929234115478029830515957494081722975380615060118929092617812311271030103195791696875929644521235320665261206269971506487890690972573972334430673009831251100413630839538950537558108120446701065623113670174030458232389872596861049760712890555844947249837238755463733506976287442220390837078900843714877052161888975672017367423312343915883263021386314645579757339106032209453885151863858961506354967905246556352423399462951772706190316553466314615802030332230034152207222940458185621990307165523413534558671123116619029227277761256127201640962026500667471036286010119172403253342914547165284667024320166491381944763014814663017410182980415353582444442160525344516578673558983842416649073896381670038739329109306497322561688858267016544074512047940360895641916722313914336740444954565093114670203346221562885426778061930061545601918349121666117452467734551508716117432910988778035755877078148916274618921772949030644605306739085979611272044147671371936336041632025995435792790600842431573481549761009999992587496115922593370973302732860825908998280202454612513835349808729143288926078711426071801351499944793092367496347045935353580994569918924285979444187602849789452009438686241426311893537149573381867815061305368883998824875730149486299871641617852458198103592395906593715493647717669936362632930576709470514418030833047159852597191125296408442934618943482523130182357340061541905937733824417578229579565379414362184395777226452294309311342269513225772943511012146190525830673059138861508412977144336049965883596622826911166439466968939300513177635634032565088712714564725053038281366351738662566424258486416768799486471621678324158789992994452217936962584573571796410022822922984729024489904245005861378463753888979097303209919836320252346205921636037827994404955326657874240920779487566061007777404777358260209009561972305016987415992802809891133106482184070230698342419742309194400485511665787353348037425335367268373821834187864753278798010778509509849064172799568050278205499522835806977334422717662723690324205757021472486680634082182102913144342416611887639368011307840902146138792790049946052574852602124999196076752021449256114122937669795511455991079433355755446559620538245840707571319441315945531129349893224623890881716348364003674886571514345931079845746645210469012920047028813434249145104130372976603516222689062608710204382423772596778942272265002203617606427442482673603411242914302241875590107189240052463163406575812485745589113138670722140410374724460481555777203053754110240090535824651048526592902967272547496298876006612137348510978898074761088580746990087054721955337524005701216921794116391984284315192476963057383616762258523307953948295683531273561520396087900690242086549920157304742127283793048084220523504829140271333470895438867692373576792266666125127100732288049841551163735318549004905028327179222968257645866934391625262944554466882399706103852149476063217842954740787365474579773620197891593228310199941791220933393768250132921145744896235523644449484845246766094926584070823574833993541158215529323257791253400613534423581618439459379704850854140809708828925112538565712798247378154046891837567618252047517061044034049764990011733087530571566637247973913488507688205337012886597730815800173710340390015114379142563225427920052781584215508002889968890707928421554556279119827469910763114639410568872421383159716082242721803206860166895781024549221473642896715228341971451533891923486977622987167568892674377005743258184299805868129108271974641584690829866662478158995676217393065815099078293529792215418461605713729943737256611697412561342822371261047678092963945770359286274796469119610628033725337016564081815457893642732058932103937587601118416768042109050723779974806808391248842182605723354418880005645792263742224074595831422158635208452737426699446860744462047417819298483643259748217282106987499005699065171850954271025883739122239182190926334845674281008952246447974867037280711716158077968814478460487831910482786886457526156353149862928893768707085176881983607420336441376824352671575752687967293524289417274468791718770582634848796908166238906988049413960206094256561465341028831428836837728519013994220215665064168199479176700198984311378218084616767793429168661682545503203583653260495622856183305012108568377145709965299138468977441879357955755218525120127044902447331846727782399870048295692405190861645408932497413910672268737966247241697072156038640792885978965781974474626057136161409020573139062395115878731064895868888458765028790378563780018729216832970943383024146637070325141816616356738024630762825667350136886694828355515307200741540459461839797518559687554917197959811077454789103097999729063493203836315612109667993390313630667932778848300712618303823425617454694761140286016841113056510565984746372802994423309879471677189888784329493879312523828813902633718723657288798740713260379646396307088807682891439350402962863948933739068060998125541244214757132842925533477825452637228526536638935274898305996089724067312683470041674144226753961855880117298982202052407754175266599843647562058218998951752086271645213081824356355820359009094129851617373463002667543407053933688262626550320305260644831654738748183307830032180277286126127487494524337282209297719561580304618201328430578857100614466187088073495921018803993836600455895322781122380896946807007418997503547881757703792502649584374104576905710603703316628507906026808834582454628352062313958711146549151498297617344207825105875714538165516200739589417841156365202007858124957041377723153242138686864132970202892333801995306709521942591688178498725650750468030065318616032162770811083989165056744004571323424532054526560450263611862301667414562698640105582721166815666522931531925053848279871070129097291390020496330221232328130151621981395522496205689626917786596716462557430765330544992909511568647077671304593585483912966397452849847928104575368857869968284515964408329668060680969821090208399246761706458584620754252187989816558071974572471873449390043186430354408922206587400266066963915437153867026753789079667952352865210972900689203394645377238005796786344685206463463309587367461753759548233460920860932086407477577754723377403031673820391333613472273360428707495051882627279051349994132053979286953402600760639464244538547315390498242751755518619271719006877235768565119128867878376553631040521682613146644609991442219457625973543884562225184160656149113869476866843214834103507048519360266046675984239159990017712476442886388193669722676389171017205333178170761350023618902858426130078235293117574848669930831706157704143036477004273439812417461162328739542727792252791169557333811572146841807867099014816040856596994965440930948181440516336145101469598010827267199862334425858254184788980601101259486713924993064032475529254421626581751396432177976946229938754057941062502884303433769894690350158584380426678563962761307574342322771428569885438692616858179484247417481394818527913988558405455602709540220396379017417285862984488843452202139298894398523675661211664616428993119504959595411698463099650142858092230653392318417750249922000433001918156495686532148059249202042472250489129455335428281211481559485890061811740683886321844119000655160337688336280116882019457852664217847027099591599237091680475837276038496247337048542137219162311096463591319949503761982978788511743057196305775420681967309473751812143880706320516284231916409509185854176940840959708985789977602355082793191760488847089315400231088969454142609076778947391027281778082300017882506623229822528703374936898772202676024308709015937014582777026693202255460614657428202191706644254009830701759178609866216293178503401839981722742228799121970056333168210241134464513289816512312599661908686164593527432874962474784946428559341890559974838520866125679234372972694897455496449204365916912765550920490812604756387682150478031322716332173413557957765968296332736011718762360366113147962322699107362498255895357224474928062608842397291617665567880863152192912684512642337525626676738672575996961693820667173119062345228730743222325830806846420602154207770439841592883987882407485878493192410045240950318986407879514424349825569990935777743753305448666885247565288828449757823369338654879555577057163491936851545643138286102864761697047443832713377835346368046872585628320547687508338643757034835279483511274207851768875710855993137889148580946747468408592112954845940281501702973229598857590409194992139926845758903129540619040645097234922974684615284608227491291068119450438846994129296214072459872105116156122319693195805490142464312075557919926173405704234796514470604846681006837947083047188599912058619985215250264188273556190296297346032564253364251601886379507765534679379599972263571639229021219705189266062521230338441271664887468011370999785325135299780040022009077071109706189269771585257566034383936141077152321015710047616096112737781908805604144397160375006449295791401749345044034413704991179418380642865920705012591272633592810042152680336473654861052020796049041509099630246393831587436311424160350625518211175894289553423913695353688985426562024115596523595263432147190955127046575787205717668250599337857867292925466361125794324684146481110932114914500461906302275960681383127181643058129364259288929262128560757321427063250965619797682020228299216761826461949702756470300202887967682480775601741199213067152293095742328809915738383967803313927347561401886995061628338410643755425149629961849099468005062400516989341321845501025931503533512798967911848903108449488180828921568694483994149779079546401354134216381014280928410477088916830652409099952708819726567313807517850297553272454868033501503923312239482056331056712747843628772863473326110314065542382185285089611521564649853205887353099517396226907281372882945244303595210294780103094816350476218156754746619219489726155799853544320028724602545414307887397370905722528333056231060003037505468163477827016838958582459553115877242514100512946115884120343316914436333378815143220557871529780910872844401294648164755824795117675673934778368594673575602966865208426419447365661798154324161956511513008010272767098095189131900646788789311023158542207931858462218973824569716029785308034524628163661061137487107502921633273827563387209874654648482052349636530871947059126557644785644974549985229714756860403324011805489014123276569016295551722840169866049221895561094101574562469277345207112159878234144266113178049080005313698931534845126171662200467762090329810078856163115562146007932601693982276492927305729850694744563825554956308392518150534770369732379232435083465247262272117512511721821181329341777900892394313644598518519570767232252030433533796023634799002603889880072063495768921112826535722979608392913839497907274351565152765774036391065136745290916147611165215306929720930077247709830965946489418292045068261960940934003982776118837437803345170531296120004843796962038965278829821060345640839415403260007030650998714400077349003596915333342255732981590703779874791493757439601692092981813199553964600358660006198464098542159192461594806812083696299721589305798038308111469916039619124996997958190128003689715830961284670582089216739213814812996469956808683872930426501459695088712764476669546689867731879730762180941072245679597514747236252882486975280619976601657253691605312259826576256581383468432388918956167889673088946671569820859220662428298336389320844689162308159855097265882634392046327921481296238490566975890170215806535149021711091750192932739899357133357895138827219752580027461492891985627236904009522890261911833925751926425036382964130095914203092823362379074225636797509695606822794686467559078613000633787847024896485072358410504312778648588016288889525797010319621342185487371777838323174461437018911386223463324412442225250542074220053321024040625222804949977465139391163603400163690776220149398650022280730361979254923686828416543943415741661910224882354175834049773901323368738402327185496327335225631743347796018775391426039254347329904739692984934632500923984039647982773393410131618156464538052877438432406979402210887523347915692715784818808011547047419199742583741647458644733885104213700847005961461795504228044180612675014998587450148825561118339811714099465809071112631075410673462370497505226300828789352506270666469284337837513690042574562538559718625435938274269654730852573535119536932327228996067242078873939343501099621474615978556167622101396546970704905699879854099291455124640325111123403209895833971142725797927075182652421452166256560238273927969501288566549049314222944724060185539158546130212122085851696620036082123059859045507227699499927045373489596187280751395619762883390915924749572306148644251801368372622459918031401866165906608531910331589366295628786403772356973349187093310697429018636859854629961018407306779031385522376843357952077067047204398568943699743179561960633993869617669478678207932349280706466967859561892279134797999095833702761511891413414947663069180544562837722450510744458938456947279332151862756827347077552598439264274086414029043643062950406655305158839102458094061154760503553080615223638809812071566929996836144293749896797355475794330982915736705332496081626321374706021471194754703616407254082423634677022644283127268117507536492211080248810644529841309709575721644993445276438237847260536071434558586067620933071726304733795230308236032854708525752297298191597767211517959726279753334996704585856452614910267057986333250634969623728250958752405058591004121489030042621400465164739002363621432775489093043633280905554184443099993510494906101576654428233345532286758758669677888365884036822107266462021322439314841735228139728745546512617483041170134867872050006333193550147293976836294213548491972327148438025729809040662942674191655543737676819641010895517530471039498949714392642700684176952454931047798136224873744813535101717376409492004698557884383705675650741960869779802061979936680851931101024742564399689853491789137329656113264869302746215321193123790408109698083165369108873778702796829738963544690365024263215266066434936275973863126482868364677852917739920810875722300746430059700724021298167135306238358224093755074026852818890639792160454383391803768605576778117622461812810588205279070835485614133041224337541414645799028214640730416358355770734110201774005863645036279715943999253748828874466068953974319392386252183397166458804115675926264473067311119979417065028391397183925523231182238527203537480280974665945011795316297677742967847868507285549868224047649334057991051920824367414686063788080986888843473082252368552609507221168577913989806405006459655546403752605571015920224253326911007062408733893977014094248595982511609034127384406764286005433419575816465060307031550466664107616380199458296212379413442708623085249258360008906293181815151085414781727639167924455843334447790851167764042015849882906631347560691214129007653349740366275898641281550107803325108530208739539432871078494922443398976119782846322768659447855969231708852712334506392509077273048335775173178698926303869886390626606076544031914796467191565905151175309178515497492971480723998284672170991205501253087796293645041127881044475328644666334017962808497469221423222913779784062436103178160232210475527418509389216488074276605463156431939892621032772313322072922894767278590232435631434684982392197365163556920927182261047161901242921213504806934049232161824264872606908458357298654083605441736937254387496259074519139178343008356515863295694898702960636030552067984009203538446129728675236111525209803741006449718705057843415069193250454250998397673482354451876073536690338925413485806374106893608624922200474927791927051612175113166681427880085601854223359996030207271880232217689760134261819038039894006668594520793644829023103942108006916934731809788255440425451874192001068684202257547956050052066293092751623962515749650604605500809011094762188703990934340689585178180314716590024459624482608370705322101852588362168900182421165551802937918800784289118696638572268519573347408271221114037598484216790567718843824794630592249199987082180196673044412847667559711882561849290508833418518869403323117909472991270351809933601300567627543524821267760050276739875105995703569610837426281877030957068787129328315265181589128391068547827302124689081349304828964361876733002790449282131169746664911467186516399788607697878051872005434995719298588998902960532953285487977899514357378885264996639155357190962867302923618132890272566859365680223439070232886865656640794069729383317229184388104779102009005494916731643043427153610683943593155889540101033597987311177900894240086428348311254086661938625361543447459418680004320869193842761072827136106619818058727062329254002334491209037875162383601770652880376118721463701886140549777208338005062770787808574962605743288558371298185582420318075802370970568896195177085901200390416491847666792221088509288047543545403223452441890583302638366214001537581352496938273971385982617058829021094220708156463571695262276759365196013929969099681953533741684483608488072508577707217361681669328782055852430169714767160491700246057973363432994687885307047356489261368984839974587954905206775022626966668017286793862381303410528638109299253637728093172996374952873955988058125790018630248483822854674977807995700010628081984411606546341228884443241501538787806351833125280232468796116980012104647460889588471904001189763596648476504945269589126143202273391391181949506039381451593579861596672166967216979882128322766544728761708783592187731293433984056196097212187233819868365716189526842831089650929184727253981603449640085381697367012020104355790366454144669256206316203413743813118137303518010187949277239823273862321468716592054924955155579929128319803008116469464558295176929318263803538809161657177099424559800082593699154170475183096974901424986997883632218605912533881345714692900133509543903307944073957690606747698971248393374645940378326522713503210426731884105855775599464841775418137520080651244030069983120917729635827614353726404666106723128036659815416452035884894865116364864911462347243550132558009970125340903290227972750209818095793864934958689886692723712826471723441335375202664351519461480503665515410023464689511648415889732172040382556018765618906518662655303619173824238481524740689747792878229442876677594185137479567757980382446213652454837709557291760730786586506320221917888205524416928726204139145987348512801373756325016668709853463684643936804458212138066000231999688067572487392765602251217849084558604537840595462936086298946950172027335728314160473464402208617505767559236995822059932254458166227387786778255707851538579284948684971965689620479402350168554731553795244823371088957907792034651980751807472668733405662763511543159235725592617856721837875733759950423405997529406745900976005915469275446060693575941215117268604368192319695759745880114665136521662560415090159291806738480979192128235520167060082639803058111499398669809764522178310016495946005237947732643448243655032817804328991678569695317263218806518777738351898113062699657537632921345612246446841013866323824542657830572190896300139998280657648663081592099860122765617425845500342116484780405024405506327642209098690983511734623092713224763988053556236676360212115463920688972761765632516704528251676675053848681718986143127451017074930931636293513985464506167952813312098438922678615239540182127828030675822364011201379848394849327310500995920336667213752021446587268838151869742756815895200928937188043708678178547607784036533084489086669099407880266213005865935091309181937984378177890858392540263543161066089940506561484609842647805974905570290035440202672776337263094439010106428880764514617852108151463894171236038054001922768773965758804438510014794924061747167008904380938796314960706920782438825696961145730916124886935732553459398951805598448947246847267965360416199063028098911744043965214973202237431526732325217842978553338533405786373892914683930957663411529726848490358208249494179078228008253114365048521947374378992341721804050152043193686620161075097629637366130503906208834601309461122978306976852330268786443060060450845993717229856388294252774738415659069625166983648272390361491569835322979462375121425068956795083070877512668783866661635373419738777038214062343517619989024109435496367013496216933247332360153668436788348578301188697359484979364158775887832366590064616200157728442437958502372379513775642591351069104467586479092932798651080135977231329252270557404110815300493901747669692107860864283036245993011775213547264864838390215443230627881196285848392119571244318733466942181680744152000709078694290624823339810874746074793051438608251932880869074741163750681497041553340227460175585373553442971691225967226241365571681219723277850340341811344114808641854888231432018919390691916811356680388325210629179823021469914146609082210813085800423319025984097055080091512017876744958013199099549031426644142429535254599542191116911513120219861119282156085606006814440238912789173573311919342740794445913777365652563056138970219712863231468677795752857541920463831334619086468649715559521664189479840551965556289805735155080650895051061560290296956977805173080263734369687352273297417784625015427496004305529098577021229457882614489539354295646373186723638191988597787188878847895780708364337913716228995769473359421935480114021278591981083337349186435419332561174406464148834914747954871667454799642754501235903930155818865733019061704757908074321955437264825959436935965664225256685230465722357863380198695859089526441149867084634232003756706056910463002915558530120392544829276269200663480682712208242574654325176025677215405284534422998466842814394085964531975528824000924362353576390978473139936084375386298994454292300567034775676806885704300304648640370537605912977550162292950853219389854709698449835396154526919545457914304034888135824384908096432695379550906074915311204451203745683494102956690595903982008999641286553749185859127855722328252564657118631991751126772735860835660307570809119937306315013750114871886060235284886392736117796176287413356299586008812085248781482021234091192659073819943598262294899980460433409029255008867177472721069528225094765473314275028202756067258403560872500193884269194981804535919743859844167668272850998544630904453111207964730717869054676588695941336270123734393215806341753576258677138364590194342731119291077939008039384172479838332408307605097245563110659434547932597033573369085384844298846408461328946981771105605370614996504047497251452907420480862238584474483520452309783720405902281697240159871598906422624836431819014500414371030232649311496805102811663871612189608291701909126827056453238062351189272512306976372990319488192974508488244154483443042322580244386149224983862306052972879838285740957812665789628503465982528409727855140238691460435596700473006255126706194688180560403395793867747356716573996281181679772805233623329913377808228952576498828995850750359788301429588787014988965146025730225398827414688240754194710705183619763137082409338788481122188814973769957835481047890748521062515155581391637905213957914542846517534779398513609241410805752508994161981761024683859216831396195231175373202063021261693174955767008232003211109165615971149392372368076740543735559204805500182389060073587240670981064746709876304931528220150420966999343312211001963136402155709406983268040537985687202662596852081668910809870683386430964639040873289944405286525091434456502894553922762888020455585414172072868045157649184007182247556421517542188321872706466899370627348369143828344366779649629252127568546728925155051969589944304255942926195447305788589797569617339979676046143009783598125794193638845241607616461347833945894976213750651035197021223857449465451835963435742252536580502816163171064441391966840408952986631253100752499459444276102505435711713367031786917237511703590757507452923319034247095852096871459001541725144128002513205354983239495617529232839469529183278376319303610101896468276323323132104815225137617124501723157877417042479128818517090099169935864006552703704476998024328362440051920011746208873480876151386249032787141130999632365592621355470260776390704102172301445682341355476267311810181864538492367095004217315425791733960659714868899318053677436778453138126517575860915546415752899829388287828099424816436734501478892965946653672997314708457023238466838643313329366476364598756911185605828075517651325849816670275028096104657048031117007836215585563914117820789258663835336501280879188195586233672496893668906125657202450694686949483361547506121095833493264762732625055191339841275430024152107402655881027888153518612420316802746807820211722017978109753086258988336318948837797507778493057941763598733179200082276277105518718259945443606588221908111361722830513934153692514184477765766753125687468682696771291477078953779304310652269961065455751335800644364621686190942455439073828593524010297807710046070140026610745209550000467844099030908671169958941704073989205688151983044644367139574474067467654792604753725740714936945967280743933979925140595488097590108107622270668594698331848807320413766859367911551630249679227712408960576563668539943547372185233933542823017523196717888665454931056451867187737957009777169264716303154671598806420699106509529132579387580844706264164330898789156370188673574694333808542364205574378833535937550889881586778578271448219011694435697232039457667203651770317190917283374199864609139481298129718318996615721419700082512778787795131861057476718707420321004323426270694151630269205797517429086740337530894249902067551501572799795863446158763501379123735565376368044579842449889880439851479654472443212904109765060477693147151380400188420680812464274187006974381880069485846891812632781277638508791228648140066425603381659721192150003405291770433207275423350643979521332672834126032085717046660468851266166505853636155337085317779195895629155527128722933590260936321784060081243538397550854630898852121383134704541455323385150501625631126897247353669224654772805779510945308532013755612843036021295232264262190388154676923127008619400803804381747780927533621404976577533171925969899093838209098550132862348785426333010588904267823809732916872680566670415918633328389258416455293237709674456892364419897099254563840562989806684625763404062064669439871130941879172961202533774215583529775713395362915852720740737707134850833241438384886560397885189978364925814383410645263253001417269428603713717206456905630997098442897497891657933555762468852672715110901238103304455295034788663552109069744420798155150502801024978689545271159969859761577988898788782979651583401343452408051893324735298981088450880731231132420429348335119608789848464791812588388841157567494366020280465611653140029381209904694387400952772776258318427562924560323829590952304441924041257513714558452374909469327401107511146440276252272391460458459185540846002899074843692841470656772678845143724659316548332056683938922020525524860671417029494838735681552970333417859224077148748238518110862804234570879261086903637493459157532898439491893541974209594901095237304000237651860647165340595973191325569916777889604935422269214754337924184250373799362665736599651064827351744724181886164178856822110830728018094669828369234109133218340665973150838986703404450294074737312811521354251347950875790872128373224008392616281654639246613274423726137123756078892786816222265855360788947938474709264326530304219226848975673767941186475980613034189494079687605811722431077969955257376301462052820918274495302717187771775449219539040877705965960356306875728112981873967732630779385046871173202783897684768366631528011423505368660653230382983175695102616218783203071172450343499635595594214903693016933415854271042030324619629917179496285818882665073010924076274324704165702495158571483012065189870571460203129760371708799663503371542649681855816774190724882952278618340824817186006889378710733619327088807907017676080057854412541236994540660545519423881005131997726388330220206415435294292792948240822599822363075747125606339357620488474017928787287112809234180232219606325433575060161337074061464952551458700477335640378833289016466169096816597256086808144715744570343188436519653896474033539111244835710567251743043228351277847653989358652669285317474273862351125933921036848715840478458606681670233454644427324369686456138394361868870604039961458750840594256439020612900598390567780587791433114504578538384051806670261137902265642519720510200372323057046746890925935558247667023276215183280653385439393556823827726059237826914748902095274021925855236026429180617517852257704010805606026046810154347283838596338511337317328288725266018169424312659526874408913636402779786367104091000349413271518994182596992309842729111571131162960813759551836700367473178943068149615691841081617661127937522777285170750802255511754321170229606418598180297073518854621347409074901234452502334623858116412551680922280281297790273032746853460960381135831192046922761808090137914735588165796773566186045207169787265305563180565701501248189015894687161397705387568596353124255847611722912688929862221984061887971632800305086941734347312760527144853501874936671580390824023414190149373812198022764336066204799551446659585576162336225449906182138014314873755727894394204101938832058212200108167869243064119919245271174146798869983519559985423870181071420678930357995186729662562293063212610777139148393970955334001206751786955367890221304532473645426926739578057034238452442437418221917023272310988764665563182258746291267002296953008915336273396418591307949739585914679255782695785643687236186289201795908914564966382601518521415810108206639233398250296688196930386375148440931269323567265116349941984453208469681251683860927441818210151537636741981377750300212584863675124045858860804249617015334944558258231758438567214237720688325492618927525276158154138505241626690989470687129227540594314444356996537409358423805141988771232244979327723400037376158230087209130843117042855922569923660583233375547502979196047430914341984201116362209171243747289613729836862808608500524767267739143951767020526415587433943796623895840620629935380091190868559647529853450295683355095044783250456448802727223551654317063740409731423795560486985541549018396183683247279129606116200023910253824406321345263131400751895206391893298398710189482779101472012356137373487256310153188767850471099751473335468808194160861064224552864988590494365169197928746160398822317158205775562650118592862462313371566319464477127559634608646922324354756643316631887183252079175440711167986297357996485433425630994962134972720287447367313999689604757907848360679918339019909703717467505150968632253607033525593261127776492310875768797605081286069535238460079824279043612381988236298667765501756083084373676191209914825112457011977048012826752871643887960566087022331353385285309009920261200650734725161942644441121539411867143197697232316942389424037958292315521531374546409205090059642590958544236971318932225340920044817288857509569358330495539541492041013423829033116980886362126539530782966271158539389552859198230660681310711183845024921489413462003062036396369110092442123856984762092811657748649613283952823619259881379835349964682373156066236590428025065566506269825662310747590212452951800213034635630428471086017526409050035385752410717230972199358954570902794842513915124804624761102465622923254041365323264682659693872689617410011775207258555203949249178417902095767793772430985694167185753985040345174633187278356081793660063552383940934491745975984073733930607391583824748411235589915412382175433641345419112510954549073438920212485849773422931812442346961990998809629277738121240566965471092979462297710751102572672009940453225972894191361425254308287839187775199065340034484983418168623639461315180262546226263063652169098619735063699306806196042252694633537623743271151872534596592097850764483799461395229273102613916047552271026688769205256041312626942187816261917133115149075997551805531735191370943553349828799229960350871615507302228655278910911003088636143031730591856814499586437395581017400322402027131379152356676482202503326057838622628088926686934429631668987386682192765147022458681807135990985700351703617269931820362352785419081829738547121822039273235422127154947127522327155743244962127896182905811621416480889857182773004174293245952109445332506402031657757330801787735907398440239209280936595662359474902164118279631444359962205259045444050238161047297373105920959811330078444248421287393956001514289863218888442566505878731286700626083837312142793610704924878010549364790886512612619924801205663133946609528917957536961291715798998919031866524046075236648087121790980378358254253853347404254613969736466072429839265278853275362862618557876100806284308376000488748927628488400562173771386181777475697662781781962028474622806682342235406266361952907787726810382283610977637847461988420393759943610542448450637965465681295692105538139148153491062085047302124433625536398806821129208757871576748291034023631103172841894070137575948394443029192143623291715816246939117187743533923186486900585848521683039549739418415018723933277556807621610256524977511423078481401283504417548764699864039231820697210656308919051247798566404715822848693682088788091155894047077735560922164071767310024263382095547130059510381276631914830049430042474264421196150429114157482422596952394187198069264865984844235786725303531702493409311982977202388718752535339156532977739799881092276030145667737543588736095365661490340554745419743937047797573688131628305004314081762486657167061166941983308881949159329503950190871972193809368872307463633347929058856898315055192530621673995700582376769582659910435081353036655772339626939629176230839135664513949718992445750885493046761256738057940573008284684557636933470387251644244873017492420933624694591093520762502569560412943286927400033192812890176319884705197936408538820605368582092561939030972346885775037509673849009520882816383039089232519466531692466700757482764638970263858910078289633330872362380019959871966852273674501959561705602564279997971007667752639659333366799152799659218909622631026096732211419261781585092692236432716803389101953471683883449794880302373586433669675839043231281411013952191751959956622386770574234356623165564069195338603243977988294845334116159216845438005912514032686426998279194280219700178696976301280685738327302338224463206152732171957641850926067975544267756417516506467932933091754023022567992291312177846065530919846659835622897353378216321551365055024522531666679247292794369635498541685372403302740659798859079710054920791635877228282898693755481297269515520779202476135335137318887619876671511504895223827225799682815279712886474371039878016738168200935308377075653540961317931078592886463457435422700990618670002208194218914725338624155010889540464379756659419296549499713285084205831591607209225805160835107788852381056906753588751475402865875803195013898234159265776104119488527345443217874354949179427095539223271045895617707786494745463518540642402640007485316537828366117126018089463274336276475256961101933186787790483342782681991700531436854985110068136508522927612515827864760059977716347095543980275054436286436374648260631593313036270621644065523262186405097700189640860962200202240981492134617726147056459619268116720469042691831623021351255978444081747071674195860573565947092557354227144911485543708865168720172393697175037553646675889782519818201907215781559215130665044034559047975381468787236670025531769273528687235611924320153703527363180394245715253359383732075248001324298056713663923215989991127776848257110654138423476155781174766221834178655741071688812676495833594428237902746608424225618824470042990859514502330893809836164506491165989268437230065690235480515889689406256232652905606920225954740537874090580993923223151990493685639228881182220466380149538193686213194892065138048314978075085598719714788451945802754200675325358075072054910209997829275577920688722708510600283072537385804934360203756207916703467239455116567949423427580073348452858977520751472220026255993671729484966132217158728203342889017068533239918786268362442781451995782097392639027747997361564327274425050505809479118847555277820888856862894384881889614177407793904071082858078088372198672477738197225235373721949234000200021331594774392113061322922730988117913184368925316174362047813458659799075435500385134021564064433290507624906504580027961951589178247233532934116483680328466477274172474882707694511961934821279890213885692254204660107797728913113550035980777697981725001375709153256410190229234309182228315167900511169549634626730516737418799672026318412309528507825368922254267343646261207648051314454094849821432922665323501966569477570880110841468824343844235559230681045282882338832872494966183831739024907260250488541099513160020344001825457802739709318322431035922781761714832113787722524925957756932344698266674792809459045142951751686727668338285747945742279835151257064764174102415532432456966764056627810065458419233664007608609500764803451229397018336992502002555033575860010959108242255060599268828330792636364354085669601733037572717758053238185818585121208431164154394228028652671578052445605857404897638901744425657102033999990773994926800959011665634422659598347331811705702938131360985423537245916867063093731302985000409382471618130894777185964133285889396245899752287980262233799594772571543744667358708638303763644323178488551658008308716913670877551383437905934954913281068616470707002331626767578511006723918804466792334185853496171315444999915031706758915534751803930801781854043174556184519211145383213397069590497983256228795655294047172544068247464788274051115187668108626635503344058018391000265432366149448446878695108048002681893678561892152334687036649474736213671522713903884637039358494048589115035102523844453607867176152708705694942940381622184476526305188525482197361778619951406875746219173439272271954500270264282773236708451307078159211801261904024369387908048761069650169296011918173817461824625497661070008686772959820601994116901372594561392290675094151414720029009065606922552262464987435093459902999506384647776393681309835636655023400543421172993600108866647019636140595805363195922869679657076979310660821039521304541023162291848391543075355468357848205851419219423360833651669468421235558836073862295570469377694289526515658889356293614084968645194242188892140169472734152135015057788089181427518512570324769530943347994455686232376660476614792373754379281216730212822414563478236054250023615285444673151930265578999046751597405376186588054366523722122386424270693737197957120321140017487385743616183254582763842818459898149412627193420594485178998013930263961671950016703173368165091122830669207423177174980544661472776230200731605254879431662948923269310288589094195367884028628018437001111540281001541910271529857030031239792183932058419374141114429913781610381152559256712230041314827239076696915339708482245443177618754686316432666035350535081900762615713305480368925329214751722475127844700009791412971801876121365437023893790196102156930923652877456599966901043741781727070280338221735782129776404562494886598182734164772355751602409381701622056492740473728703196383958901080135128829872127625889743619496054322441549612430542735575787919452096101052791767992878988623474744069475866538240544626354004418403712385627475909624569946398728909416169581417019753287818516834151932480772849024066136980532627827376289073286138722220016444950868140072622229322812825689838395448310793962874354268306374142741653828802330004028272055256962065343679395780854047753734295469238698625926550085228113841545936585676912858306278516344706570736911307042124574467651511947587915265190372471704074658925065778049005549704079644943520433543569398528385208573701975005281064257867719494326331023182084925703575770753683928235405048745821694120115448156447095837258050338244061143326278076602516870730609468597685483684974923735536667251699297083704969656944696571799631246372528368724928133533492812142484251566476806600083364552424024636303312837444867626965623902000655199669891100015694972741103087239360381015570835181381838912126363912867415488440658374659404797630066439451232191388760258340898398945169605531570159923660229489007448985467611036524077518944499444174084389013603419933845575141344900281550634491770098863576938410907345938107703863539752326637726888031314961357888690877987141765625701026552438345026196235801509831170398278619451842741274140062579111287319528466094815148887314190922564379586248483581930627302628683144901600164296299308549643403483521422272818754999261309032784496192144409583858838730730064959369014633743598576297210973917180131568477031821335164231577138862067264026170969668344929089295459606328886364325712123283419072165963361738270563943965914606449356686372959257958179480135768835117393227234734167213536446570654170485030259430363039862061564217241092594333934491966278817431425833444578705470400917603764855917537095471173773778009533796704624363160299600150993841402052988634341533961937263389917034951329586363180463016721358028029047237502659908163923346723483245298415274577022242082599986448746981977569564724475191237291902893949465813328761961013147013986793949953220905708693142015316978527323648341722121797797789851383344604980214583300604181998219890253834231903460416042972578009501575851565827217758275274202973051831795848442612851626648805487969230960125589839504535313558635611084396159067384526460566937972459776590590453878354641059759521415598282407959619815596338783172319084428710339642302193948528706640851186527016030700180511252100903985630590963855227088623670421774696091426948641006434598835199818117656482269875420355005810362208507400279881603517089773439544919441408594339538504684028885648231844121979608137262251066826559122176268835944018479577400266132459429639000435434503361827121568614700259500071785507234848331213854073315979406918796247548542038739289953146248434801690935313912975933873935434040415304793150924074892627539633109819696887327453848803692848911693353732339100531384405013111320148616381278908577235923766125032338935856474153808066283462690154087326085245476484654042663968165826502741425654950058867167735370617058538123598807636129910382052997878967678323730424637439918078750990618176427025612221858912966318996891665529421612961628355721765850847763428077643317077763579912312300514429611804934859031532392045489615871648055964448216390341313616540826715256621855584872244242813584878121435585939678038630508508577856995909606850843555830252116862823323603480143770542281148952274983382492445936500835049691713858695412171934996304123785796412452395375556107280611730954411462512230189858042111851044482519991114255328633467408486204905135547511715590778597610901089880408248211954248202112453277261366240469593530128618973514070540068098177899700938644901292379452144700841017436300936291083321234281651106669346382928092541217025970534841035501213160276696049239488020650445873328904137632578824439846569353663376321225106820811460673752167770515882310280932488466303529799723095583533815637694510453564252592454134827283512130661082759804309571640664080304182515313813850825810031574520859372044192800349823714526883918397959596988120647901514239503962578230296200478519177064570921993265292325609343636268238805532399990113135178586372213610721928739050526418324707763204084854841747696775057721081492215203396678300469164120736086230442338909274481207923880807191746402728309053709240365793249185315849075950200593270362028554845660418731069272353521571999441312355466712123277421499105138041787799195305547600475833296320740282122755766186196720549011706897483930544688481045304742922350799335562804649590362775703657346957234684150538820408193177225060282628057157078962626941613143379730636892594190291504442875436578842607788784809221465818447425415136948429427157119601556038523995988078014035641008432166178351616382893840613019031038805078136527185165734548035750049194802608691523467329709746733175831338972976630772905791356357392844347020163341333586130036266946645158422742614278446165372657469814379600985478356356747006876611119176130647376516800170210489636623654264670852738723057672384557235735755966570180423876869223428732814496608980765390338100071404750960566979283906836690384999376059662746605144373867792414967817479244998374248305612754363628887582974566936081928638619387557050014135891764008786808650711997311880358126433205986347747895163132660911730928174171259038413718415082838521236244854470902333991076417723286605490040306395271019249602098986163329493137868306033610018845539650713864753181818411040276489755741548209373879292136408108360511531352141475776137619851498651082285641611468980349477226294442182245245133096591388926801034916765672272720597398473971903976011373455858759397562368580924778383822711516004229127968392674097956295609052396077537681487907138836586902857493618405112609305702087883782746815407558059160156211273011842470831692195179653565182412732763192472080580229342956861803038292540291607698587158691961930411831922460162279299415606915988427256811206390647141123670778727150116709937045328146904669462833652121456433749903466858256908223411852549333653989979420831367124622815653441948222865674947591009516680981720670739337662171242024185475379000982730399674616184134967643817250682077059212150954553480281146095012801080685516894764772806861318959609646704667843772617560879169166406899528083499257234521963120180155839143536438408353341232604084628085805620813810922388791826727966682476046557207920955298363170777791228447570519174080652848666791033535419668407653658333656835201797864310528265887442195003862839664582676246074960140745956666187894749776227184095680076519665029774499866564351235963792007445293354120262434597645158585678826103067358440861028960274273757531824602865806679347419220249872141818134746450377692938549795775260411931532928019482124590949342822841642459546943361524664365537184127224271893983626130624240665821588311822032786027666291912305509076496442901441524031428867887203796455192922234881308036341385741222653247463241248349500161013492053214508132517545615134666248132773184013799077859972332551603973447041388209388584857768485864296898151876819800401500747520883793955084621864008187394225812012913711660340330301757916206270307405277755442978458016667604321044167898787988708000854230307894723905620566979952456316981645474120550014657968416416905746352046892077734571908347864819025691474884906331228034460892077375441392478501634295464156967565792107872761993053233999408327247611849477785976172721710588096244786101990046159808068881356819630674074020129440682503242121354708057883659973931869903615373232797597961611887991084767430784105283194456466664643569761457648837581351528129731346491843396832405193840236554513763523470224690332558138524608862098643253278963541379780460673455887159549626453695754968129847339424082605898256266160069508026771603725759599821676964473173655789920381556398899524800297594327804799939438603804549957925570705458632424753856119331551665783163527831980397574185684178085816742787468866418868018096996008493574909502772630673500238625846921082891409337154430953272351975112415414289905442406086143945185756314870790374301107491369524495036974693869511226070171061078300287286964146443100829311065791494908728092368687355256089933279915785538020089361743311631576829852472764181656026471181876791277584992664708742976346926871779701942728083791331531048575974258774113522370286988498658523726824378323045600257266761670474486240025660950196731221027724163736399373509689143418716254300133465668789748626994510245974253049326616996895954181757278202566207304066129019083851193138270275974839884636455931610624332541390763855915201247050791030451889273191284795845054731331709779031669252003014429961963714292639975964545202886110423808097541129950838880543734616202204658795192671001931110093719172601229889522225480463231617674198041178833835788796539247012599801676842766648085972301033447554146345734016615334110215440880509644757182034184201027239697899412211225322103519227488110071058203319866712467019359307833225998737632270950674672438237304488087540068422711220990152650007123759744426553690418740522688376897557727788570586679429779585243778912364528933638867083010487457721911046861107940231809298845823588695445396346018034949683471282356579512607956005318224624183628177375866569970736476562767148461938295838674692527280966725649283317078805201674044484107404034011412351752157819939415062679680073892180163625786852599356240749408645760933398926996069117967668393650613973063062244338147611295680479915383729460626189599046653816962144672482006927281729548118163246912791772255151509066444055443759587811669622157691918043830230660782342456631811069108076026311327542302416083888096719200624787555847222832217455574297323625182596327943205873061430820584071102887645378408477589348060210606586137196942028384738199610485567121622462073631224762424977005513859610781417217220570817762196806368301947928901521081358137864885019321941998412733517819292993697628724492874697064255474429750115688545900671788488252664650333903522288390538260927701914287351254795539350039740933916572594539226662001642401336033239024272011511459758284466774111160923856954562760231746274328990763274816720777616213798295251955214332507184891643083130408872156488241391956314540508661973599343116515048302630368717195455961524320623167658847558672776211543084775318548192580266628994775472744657382600541489185911055186644908579884116852829831847893504601829867323343652121353159901076240258462473518510824433074766539277022218205211113175373631494857437077420559360198060838100394246513588096428461790174096475419127776930917857976789537768578852088274081133816433169740487975596702294401666488231205088388702236857694677309792457135363162532465133310266155632886745712522186061928826516996051263285536644055410901287628968909619006428996959429072046120889458292318828127338063291200607385384676015362216851605628423315568448825438491613042402226913793057772189100537508611864025205343534295179015676769863869856180618214151476932519059042192990347759687259426643492027017124437446974097899267634480015278500022453176366839184088210102386838964498889280524100994817559329094171510467515399291507955502657434380286685466245171515864216293058326916875616178970990660761239647826248369667664255544096096483216440738787240233353081853424894853443853142549121659260860315609172023332089144784481681181191209908499232162697540166654172819247721533029542589828844100442044397232186395332773281776585996074319164573853178189836872849213418108425018704980679001021953780225969482894082600908775177328450185597737057874872141667588141662311251185967180618078277609067676282031052952407872838570631329281513357836883892969372614639321106147706755984959536893141746974554122674984021086796601313835665944656949824383076204251422821812057860409874971212708164154645134429417741626832079815821317398713714292236189249414025892540550692856705655148685815885216669532368172468211430132523398485413299184879469021243524055239291999967712817614687277631118883534812316297364963774742258214225931523225733777844813916842782861745289654245816697265497248892893991794390734483376794192389493346850947409991560328794534430190980376658066178880014935993760640637703449243329905221747970769503001069734483029932519128911314261467577893567244204232634866666796816981989081935481123786545565289365474885029451130137230952531281767676795114980764003187956856200485332043600271101864713901706937242209905109752995721631618900646844135835420330397749764300073357975883827886296371496129126191398083347701010127585769008188409383056122010193824201282932440767340105016582813120712598410633445744205630171223280171568070969470567341704553573693356369204660567900846315690877278833762678416099309002328700068595884502165709142221902875606049426986495229316230283528674175692281076761131136690367712910689242879510236376320569554905349157479416526214022402737968565853699807740238033710153683502819732465317171814941222603965315066973858770866770058737802591601877550603437939968087016326933400058306693267079449806877269562345361658944417844610283833277687147965157029230641828999365631559192435875774569608790749931129929844583198368522018709245592315438005654987774194497970302927105212797508623103845785850179087652792957809015507571888825008917703108552517382261504238808245252662322808926094778910170101259749150959723261041639197356093426442558004894277811487049012364276305456215425183245259099317777377576976089859963395291380962724231289822173082584166159566961786697610770897982906286013325392647382887626872341488048925961114415989221404311312840336077387954113650603356393096948553142453704283251294892367087962419950968740541059374381716632575597862113025451022573099826694073227524489475965292559601231370482586317875371172527946935012137622641351313478893753343509022235857650079473248431654305728174301309225936614522883146290876241756981804799282194549179289473443948166253048715209481748398723780958626996307039804607578077932623371044939598207359407162434561650099309252897557803792386098984222786718854247178936303028258065075878884039190846847585008446624361262381447180387182555294902689243050650584802739924735584607633037351401314842000132648678357967787117948654590298179194777674746615405846304476547293677579259558636582920252050012183241999542965235338443436431721565970368688840178602819783051261200664050688020379007110494138231769574713464593907058133593275625150987553193053479969415061714926900776931588701124598613830546523156105264015704266375027794742074765102283196773469079430270191124720774644056478391041438452415965977788719586617890676727855117020870397710443361354408778052479792007936681977156620114446571996693277337440812119822259447065728548673409424741312863864645971884047934569971036631098776039938944374006173072077337808608836471883215718810375281592408227792685178947313250700075065118350338928406463880526586501270632634882127435732001056111372778738234127110855726509991317425398866876631245891034961066160703974174335555637252625080599396174371102784716291979722411058865369235103756740923731685261771434076489236188778414291061363339844537395473148354215692499889283984919286646487362598696885114898233692226427255548192405880482190810446878277185756569980906260291662856656137914490279238482705500240201051181583465228524166809390647550111682432802706989999728752265719352490011350434961219376173972420478555257893154451309152767174943817274989751937264744550237330914844934268577697896352254184442604737015296277848980134560036140794611302106830834145998464289522316067938611450669594178165800224000656962353067136841836448298369695722211086037833976137847817349803827422402921296424325206971125121381235822251772675300588536317769974005051856711655793030643299918084888768133016251923847425771257004939953402847440833640070800061796358685019681910643616531579500092162023320996092885312132869756491883257715723801482098118328627432838408505771420281772408826752338423260087191380082833109988808289590092229865519924177134936682106871413932544296641934675424554606555008416470820073176087007421560506105709125903522948900708939738424232947893914582150437821904493344182485093253848774608579050926775722553201834589069663024544699763520445071884737626666119630601382493361664891401017473424779013939848479743515154457283586049041588639725135117502811944597601037404558971763900263207798651543463666003107388001134772063518033426867706654937684391234370741147022881312226589669029771239133100731269069007681355757918320651935902278796376422967309332634324259008840606941848565974984574642591208010306948219750778319651308615511447771801299470005609748788594227683600271463473091471490510103880023590774639928133320259238458548999929393774180851566982181208845272531973665860129508353628678087522923787906303554733554330908953997154663301167780786996180223343084211095242361083890036448853789330123111653411067882931674912233905457420247258126271181125222128630613250055359852069903014901759315715591958225671887950359378779913736457632658005085972540938226643505847407518120954955715484592019370154817578538161447756377217541671232182511686119252298115795652700570111045027237244520894197238939332023888210306792310276375649154792486495069286264380949670693766321261063463238279496466093897257701234663356646188472436911669506442710463807004380124434050896666857668667941347337773428095545768970197378004888530601787881676515514444264513391824700887015899952061875764540006629555728574979110395602889945383111037990511308868993098672978249814157438459872004455733925546242333377844601151601469568486129419296121331874549062960219859343061645764935898398529717932792006583062090756122471179882323282839866913024756136459684889308577154362073994509029976349076669453200098703037538860821206414602337523747750107325958942963488692726956666754018201548359585876438326690283087414539297661164131939574411086688514600705278453161948481650234323646498168473097274056885020225995832972449151944603131960857318394837357564935729874507475768993655535604599526535940597350314074927853138353531440733858342285061678498931697451052801988637591451450702373686783431573050268598814055112411317940046833364975019895530703535606481351664861932806139653818068291976604615887412216392928149986970766227574325345828149104179804718552582870292009856132267874468049770855926643811768716231807730300723697842862653617835309668634173009856231070561904510345205425020833129317338571677129157983391143572370766979687631199886092713816468066768087701182141486700741601702268870012998486759338871098078515189478177036307955193939828522908699199197556887175799805512309816585643325761450435662317847684980723126242327649443002462578482915635856908196444318261567776204480643641054369759740944387793485165961472502836198577160803706307670570843811979035963396019788834920174439116412883817025165609461420697911171523183525684145497612329064861937974818545208967664931049925607397735437398241526995044374592376653884678892287940334106036505213815781666411947211242349735534404264513143993609971446299837581927917384306456999979156583574934584793801069729473568852103279576562919810290484281483567411375030386618350351486604441021936755323320803125206175236597686037754347162918896953933663060026699694539467161766475815436716816779691683955449176367426018521234502614034426164960564209128885305193677010788099171134941653036198360423868915506237653487981226702797816578170795561206135831241342101979267340524475991418167454965364343326246708023865350872815913347679920895699053500571547599299709662058567713054345302625155669417323011056660963171420677304249645705866792369076315623663318251622166280236249999053085289238372227687717152475403078110229947564018463644365626932819452616141610291956302640930787553864986834131657474702795683328513550390406965380497784044117939971695636945229761770063657611413571918874702016100227322252706904419202740968550456375231171458014841766153695566244853120158011905226109176660255367544778987412650063403688219944252353643459232863745371816491179920462135252955603341306973024516767191752481251213951419422671394798730014755046749293345486575552108697259735708455532965956031780129582009917628365978221348548914421751780498198076340573200769065670428176815518346159141006173709775572226734424684885079422473247268552606028395434750416268285289114797369249514212697522898352992293616855142418993552006731903259546286537888353676053373530556155487445405594410897180249206650378496671048220354845943830338957458128100880988216618583244006200220229212161893700535752420450733099861427352312364410226381260990660944290573750553598944649785535831543454929938680480281422028654687979849457026188116794445545434550597149519267377735054266932140455054256947213942862204618031898193921290447137937971705550358877052058877963507603935626261946040243185326426318576461966177901773962885256225135336782571370850817309873375954061660913218196941926712374710546507673293925103409192581566478010063282367155248321077219844162100344822744848006214344415510628703632749151943314199003009647409769355432306640003830912541665010093541950801409120123675419409328656274655350456986552051274134343850232484722006461389989175213394361173837286706804056274136696623801349106801296077128814378606040822020163932284508829421345568061869115021479704183880011984517801040732081098139805584699640643268079331049071721323205429857220069471529794079831839409704189624986963666554664557122287566174299894296795800326371805624929710866462116770539801010211720368509964997036041614767210457617614289819091497062522237849837718751339570214451863369688315703878656569846039380315318507627272758487219897641530997666751545593678164593793922217459047353015968025294827615051100570286158321017554246802278338974806931028006753997664233696903215365473479968256365968244497958252841638736535479815343432040489555293319071870972355648260973395262460488526814420660695622616303083486430588649183481125682509395116945556898537700430655687723532386892950789943593211317880807983276372877930413120671433526982055878455581603996315493805175409339495212450552048840913669127002614606467602625354492421230662570806512753221015166751256226690285771499201117446544134038540731813718667848833366823167194386608177879188021609669555070197481649352661445330946895762203664125567947380041251253292547227642619489165377562064365446302915030317437987958424715759038972049241946929077253671837039045675961801358938748628075181756831128716546323165792373231003921459677150520937578083487381395251354075377560650107311578458310575233930126035257587640219292228024548977920874680181156119372011314577113701870807519276086891371909364791301781081243129184628450093069225794970315053794418914393834419640329680236882025929292240305757741182269329945925255747381127710209660614840138774972695417215658424143550353978445064331611682732992065380776524068776363862676826347515138858738462132457250622472870697555144481879589004864098863398194370916572568864081441222734519914592972448849459946374108268365240490889871483787149731619421578008006358157274186789203289047439285140115227455157210003366130533768508670886926677060915673322309110259299864597274189883679105427008321754115710447451990256392043620913805325218455271873606702826036760859550144292658267278709695619346424137958225420721143214004543713724364691895460764844875954576952259712488920843829260838768465078458162032636262246062779517415799546598428385322891541310796028129115891259740039470226248906555855460904333500543958492984406842770345288880967031564840121723598518297136972038279237016942945162068033663445152163857328842690710119844681555746409487179279767577650774208363125478529586179596969403560569458056893201028501930100258939321118914638340356771661609873704017683914386751551581084673786519797014890211079983056250606634359579453418450074359068233088976423395865579297754599903409367778488957515777060840287545054497731902244013378519410080748431050632966445370191164188215482846938238684882673855812172260279075496468462019204647353696152155956270333988131221129022520046892959437057673586659921455775165793646975211427434154536845297637463765996044358588762582832630997358001484896343549377751330479020505492162364233827726429520611579717909306845953804098343486534369109573438653262738722792287724719386288494830260360636605493132191545012860325231078739497457594995577823477183166022190846749068556677318140518296421394215702622945421560441172107637402450303853104387989402782894254448461093880120969633388365279850431461273659007075770826311049656790105665917641136747520677207147668380084083861830833925168759753485032166665491066270995354064122126237883085437208768178914695253254622677564245824414826586110634209676785501084576351773417644293296997329850353354206987695643775741180796962878908084474880538850197687506921834719949700954398506627115714622005130772666652734201453225045722941481427396088629755548440148777928375133396118844440242225263664988417827138707287245071723096123254090940705297208603511081762020545776406729411187706723978798021864762716614234275927249604052496905863720286817572747700545349516737684499114472917013165092103121410279102341187324238715901885415070861954332191649228129602378374203882755310801388529671696744731805573395271691484519011176080482568863202194553199822767039024768366485172409196893591950884005482620084820812934865043726518808630589933445851075097984253329139257867789178259847542769881108873500824415345841044920834551323037190372401483601679756774991926700879990254641005601705244476919182869090572358401316210606783477334783735134669861943172403010712704217694481725795786719312724455273068392852233075898152883434378763379399897806874430156678106744693838015477147611379839066180447791200219877024989333398877111105162468175396283415638145850446473523864315237158388738715427902616292073334975759619187753814176233821873675467143623841532948918832422388802140138520301367254834042387285613671125195086031212803922071082459650511480188378466558418883937638808444212895818022315503329822109244038032878941450717203049706883403194540394293743116977661184060778294807070483412247458236104105151610408154642955815501340168919183800852217550245135412390594916519562852117929076862860829636959091608747488685785260944413390518818853466822776044097173311148048090548232919306811977168230412863117804474239903150260769631709298224565681686434001019309035286778771221792484535680531799723459175914044832410168608097353905989918359838984986337074135504189079509312301173025867526884036988409942614231618443494921297741675629999306582704111263759190582242636117673413385107348608409097030267600608617417536317500223983596436966641428748464220364018262921404398406231590023097466020593201347175906192047809267032474019095298318126832310218365200267508053141851909633928267116878599264843410181091764803190668419148397186345520086900817051253294958533000404855717354012413733329662993361005894913080434458952612858653503079412761354669452970906799291111497242444653799409551975012804714427720711151482635092617754945119323976904057053358484547717567163263780047976747902446312547574958172571689282743812350359653252942577329257506269365433530986762604148794662577513615886502708549176055673428018077844897377805022379817573625559719762348137775837321995081749139556259598718364695275640599840444495530414517489151652595957167715545495642705779368046131924179043226417908992347295019095284133016953206651940508556325301258677721106879719904346230578269409310414574628597408293082560263927155757427209500793024515608934706831889065106823516119454929709889004192691144148021735753653732104837133236786934915894454821739108752564105115730470439122105732900442742071815413597960640992118550230250078120593477997506319767388803362436594193837193526336332418153021772945519941793906935569961026966730842272098956455497850603156725453799167223065482665212813690494005097058789625325216950248976585142942509617323420289710974556049207545641944305680918876037045647277000680417440852413058590042998573313962865129211851528133993616865438070604527233335902358314819981100782583647444151747025080541645730033049204344135210368931957802740591471853074475685783822074631436221610562869159912171762815179937571129659302921952729654920816162690137749546322796599451918789227822165820040540944836615409860780396972925726835126529788099091109942399385738570441619382092999400966896278445005667308571944544333779537950377750514587932583475846058675496827446831654504185370477968263867799100682081407999392008526344629996636768083735298309154849200853248143666562306260038264780608496440080460155581203056066199446149502163194175305568369380875900735155644388511652272477342558039723131321261497827518597534277127920014864205155075454307788776366894267319773030295426918030291704054006644654742919551314475925524512943054498553641127777216173098674435272917370130075173486841736239162182092542281660712615551095933045220647058938305052889953832767508977942403811935124256232573248301433781243888452975627538106075920636796607322434570237367659247847358765697216581989759138180561989460389602223937466050214256947715745547562635989265885339479730455285675902882276676231950932995161434472254597413354079301057538443664296102898794088393806972042078562854716036196306858654795451893107114862610454988094640718055278725499481177471157095572604339062448779673676109389429501708428534028018428304916474485853795410658181383989155712236646515616710565474706128366339250079797694938600014831869504249467916830911998883277639070790843127044959308572292351815389353824425325754238505652969093688573507796986909424285086950208897149282408594227792458836894856556622199582994469384723486931926694397342161355166285884753704314108405330555429129148508990121125117970660131128501827895332059257637886156625304819155465955529212891961090512866973111770795398228897189239505721892402015925671249258619273591200412266659658810080867123255387130786473602197727084332984222778245722364741188732497187432408386338259144741609564285374386937252132079354702058002590126378704568815206270312223643899540836491533935005066617637074257966869430487274552470338747173522170033438730641691811859574346557939639333551363526607748133749765605010626499098240560881972499427684512066929938795299575880646875538672946185239830485278025411981986418989009644738318822384861162692958758647771542189067200001993519241771500490823474323574551582766085186466525153891386540227606394986449371472634858860690504863804495157497131477715071544049051414979568544419220028511049140926289902494995309557328391018913449519490585195492374800909211833310387854696291130615262288485336162367239528328844845545985219338925349316895756010518216845495916597757885602130415121478428286117699601164958998140010257176038615658702498518314896817036907610090234434596927656835513039439653240753220651487117373841538091309398095162087982036290740945461961620903978650352857973250440397003902666037380754060308723018818314383003695762545995925419953563438968238797572554055689961743592246097725747025939508416085438522366085571150599809366477923604438278154534992573089892143732922215982108912681172086373214365326937443555886749696603362040928018069132338893971969848256728877245279855913038068465176948454782742016273123406201794640437623852009820512384912072394430462630954356524800329439008862586731535096029549236678486247209792182599543992382235310131230331445132533173852667149514480378341985372376375061539648975234449364868351855291245542391478899834600783901163268043595866620080967238350910862809736463972460124863157380562101867053593538720067109856351710982673292509561716733224412573450637039181391483536863376511474466708642641356855537558628313533039962064822090718563450869386115183859115155614505143936209758325597209463918406141916520532053826808060805537167752790857237993228082605036568620175236484348204898817296679054108667502335327376772463489912679312054706818663506787558452729928996119507736649272738607662513488259043154037791289705594522111842953079359758090605878685549430506971950504597213847940223408758008574615753561273214381073167434863086999867133885162471684827911676500261288529250710509601134582228435739759929897595579616804420636418894632318130280656252668893696113207208013564785672915296392379769323120948647156229329746385042918100373975033027616711721893234217911061186988984756263184229254939130292064376460480529005467166723629832854712069782046493654320512621728870243062728191984282551663251369232833141508999269082283496058487327597482619819276814997822998489609560637562721595524591470736420485580149972250515637433043535414047080749393053643683273297578521998752017135439231649681114725076263635022169199281073140595793093036221114238280620637335404633372329245622323678511303331998460504119703400641609995238214791338367401079126019940181518123307722989629109397350835027072425973127370993156657693052365875936032664364727993560913140820006761323157071139673137203262163304455895145794746025664367561004259904442617874631156980318927063641763254956200740820719064086206025953637037454692861991989124727282434031766510375485667466380002667233734016328727234341233349908785292398337066393879632495504920795600273138279447013611860918373169866941916516871527876855584161129377284089240040228777908175169374938122404517494762630216636803357809446332780075146897947192341560939632962816389336890798760290418674895172009758084711658838241476558819494235678323099845334209659293484429320094454809671370100604669515866736872379306277381533980390611007500728469669594245158879476715846645940401842006667046250046176006408189387749849377744908865704409436340581843011508360828875694632648975613721045901076746962525868409015991066465558993104130399492650692362957131383728858709599547591037181523182002555885486817142513200243066888477354414625119395273387816476342127611123302827122917622830943850562779476000008148529819044296153970089532236715343052072557610347851496133217298315599798244331365411825893516065399127119009896066400175866572204046054089039331289683372193507005350131927734656514769681176976962339452717591121107548259641836063901808360109977467593780424565306740796392564474576001797703084324845209469992042616048626417488004757238100906621386411165780760454294987695880994976652121253304695448665995952364374213080835290456125507664644604041960344018663069673264256129970320945513908797221394384437023165966116745187334700768309409032964205584576813699064884906339892689219152872360205104544292197658772352965124761914528718530147809849752049265330206975161773193627295266105021223529002359250176587745636979093353686501190359619148495256314476422153227862098093859724643085575581673930974682480416691199020081287433201696308433370285377570062265496760285489917113605390216124639044663816300667288827941837850505925592888587618194314839006522964534876257092279472294855131343023288938323145749130979209984580258966733933972065886706793112498633106249517929200474181302365033393246545885947282275923291036743812338783409743648215779673673926867681214040096045418740891644401785317384147890122035656324027893143560468182450584981480140593910956150671565330462699839783127335065648673045037114174645697840229761211490062630196103831101166935059290878111455193572070190805443600707386285016989760084852510961167210221493289475401906231164790327751304159757740827757016307922815507714003192161985002061374240120288639426932067739753272934248523620675221699340022357114101775434811751490985165093464791590980070938881859957056155145981150834177040379109745336541403649693332434335233150393406035157742638132469579035997604341694548182981711051204022528346609651812086605232552503638944188787502562436734945479511962864887602724263492927498649939096667813590403552228802136224891383343818732392216570444507294871359895067436379529604260508861871884667008307216362579352567178458980812406274481494330574970430617607244651016647744090164602466367892596879301078949144129903933876286830389817217265773695329725359942079956830074766245633286606054133394303337848544900096025754347731659783179618691043141008471955698306507163664223036722799079148603992823555248267402608543067173388766195118338509155491504194231970218416812691738292301099446933555865209370494358152827186597660756378152184063863687003116061674845466187381213250955072616344420626556656517668926738737760377985174282735219714487724026313632138118260157574242539524009261792991914812037430706221229743079921113302718114239172106318480697028330517537182143379522211943658204102962308370027928673103683664860114946885671434733417660640849429100196075911894892352523231526022137737775376272404437883948649164619084395044237491701781202513754612573123435977635332639718645452982893079027066032090331481906472794939361163565244601008957416957006746700405768680541208673728366723860053440009459211763316420361452282883910250599138563283906288648967378169822748614255779327645142139949039989626616509473977814597752202875149551079981015376984334106761288643590593572722001164079454064815477796006963549148535103025675101454327468909935118350176773697820416338100206292096263214725814073294370447051134407411567529857605623587062907401561990092998350279504790514971550869832673562593551494428582701478669653933486509388551409029740462789971509998950976766148404833891178511301484359584421929293514445271024037835459120891571943984764646763082125035005463378785826963118331302906330497332058603087689674212575639776455716364885957746619982385677545158919522797431749796358089348677639630648834158635361476983444595015385382523005858498332128371215040501938031119453432875116013979540943184144899748356687232738064121230326348762797327516688921735434474266738453192245547619966449409715429073523859969530623567900692392917440025143830931624305094968715649579486909005621499490487231255665943149199038005897281608278646026068194071391111608021367246804303798733588844639694072521394101167557038041345025875207482887417379569346554990401500478376098969117131993374108449312352924467472393532375895878806941484450583007966225483939270916959535977787914104734148446344582384701414406166126914892033137847785746295795582765075552836519214352803369817713046739764316639161558936099765784997795534762356418925935048799467185379241153396018620806967008389181542178766047682230310110327212504095256192024543668458352311154322669258737861292634214714757323801912685287322786433305174040322949135122903808571406425474238720564659768185838505475023120345580013294947338309580803930708921841006178418167237965934148520588029750250672753947129862897496065232884281252402808716226499541827187977460342989208048631951439576588456592446691561217710862696827685876192945584108406661104448450251077572081414493440171935756570616017109188651256631094178138601975931934441850638852229133421034764833114327009329819989059655149644222478564635886285400398026294206892899342153154294851812162378915587137813926488407766852136959974404211392765936742122317114075957722845150689965255560112000938352366931407329311719996829895190841971141464860494218907909573853715879594132104601161320081275595934496697330712006889026518934018518943092660946812916755044974808178803996374800810444715329885043772923720707955243319957996910671069471987989093340525176780232878461384506349097484915019720341740882561515552491084862432157385594652384237888862760862673936552181383367740803475728368762980754778563475816186357215945894426429696129739884579885453745437455881275284801733644672945414298635103084032040419245948776469759893919697286942208003721970581164499681272341100895888336702128457893948969753645487870231970268239277581030140611533284464785568383073396929519178898983292568303876526728057383705418906736823904945829981152666285318814784198075981087969853788320043885796609194786558047153056758538960416508089121617445301120115596652318827270131762021241504290143484165538966328592226509483564583339453914187286204879206465901206061897258214372989165957147258570980949243080778790381620749312651894937850889824407764102701928710919845654199904718985538812022696976083154203990438732340804527614079221715878382617068244747349462348283777575247951497765865465790303912386458641804968065273071376997578352884408237667642821872237659369475254872241746437047059884841541143810012555191225687238714887200380253369020798723419602638504230347355576330551589232159238347696057976274407138028941427619275501286964853831153166645610797199726547028451300315067502354521358932455644983708737974607979155640424370563156746534902964919611599569760528768967846144474195002343531422171991009342919301436355728243562282442068930552202060240557306417023203991558373488311280596809106736064821271659788019946061799261951616339312890650223780324798232309285773598687462740877760174503077675354888366953745296033200398823193903290059269637898746463786376419245821012744561352916240179447171814783030043804161380548119380814459737857550044108683809203121289515313087270285231058992952443213433199814638990669821882569834866604154562172452754178581593959702489821271721753428492515538836408272378712319246117907847622021978527420771291766337190042838242409876229615141809583667618472110914773171264151326046962911945551758450214065059813053855575200319428883358247955831687308752907366332258618771867284103519741604129944257191408912703217053943056696181805718873537587390766219088978889304004917680691233132938676824614907589740474483710250032864413036546257010848765235727582290381610878836984636313009700175246116677581193275383581763683659005496845629090770697043123070879262596667905885690024600828027784732124548252443786642295924959197123963568512063062188092696717234995704507731439817441353956218361322250841502036297987812964992484328033355754054483084004822573185051942871391011275331347760162464017001617679678276773897951027924028308688103455448394754859727201814269523774106908644039378911774289246668291745096442813735388122804844546786904925960094832596773617294031384773041675314682689287228750640514516167073748599211289120081603518965637459188801746912188269635850217897423451715431982588531701228185286585761442286620260991196977585755383635624679707758775661568098274697333483958747547386301059307474352564647603781818631249622105510850769761325168775720594578069860292644504253338039436807729036862213352240644648573525461475079656327418287641564072903962731996871993015939382823718005698055887526026491563384089273261447859983108787925568887484914774612279746865811748541368380690252283209431528141295156569840844582613161567567795443420593747502247865241327129674072778258942809734427744361412492606713835122759175521514529117899812030479311413758988151634738434039707395573980872389438278005791212173053717359085311050315695042770143228458768397576122255291406868138595879944163103314364395327684983913702635245094394156535137992663592025308891593502426495288488919449237160399363731966054806730720666338329356608729109432712946307871733409858958044408159183466898889295322422726204389998524057337724019707364056355041792045665974476936177369925698788144288029043690624619543760903402521528016839561889534501590812225575396908631752920850033431940767061742080641215365931273768097954907218558740024611987446173082190411554297482596929338194495370004425704255300098034202714720807359433457189524146059141404344205296502123856309850114941490269366684312588091834459123193196136282763568968917370257608623412929376548511859650739640591041457066145079794694763776461547525906752518981304740075082055178953480497272353085313073505337282461921352586576706531380253069383462838136051593497936425482666443591885125069327021096174456196565628856175295682437406518908565561559638323825480431830923159570175963023882493996361746166073252995293394915888766893783061501775273970057663497985264900730292358870102635432624256992632262143068814844299582098539671243265193902744046477424313983529564581850328062387575229823007833132293109272573585825474329942320953591845073686916575228493747949654462041478201289086708803449593276162583515861962314088790033721775535520753155922828616366469197183460536769091965652037166798799270985118500688223344423242828402085096087035199767993941538961594385119375533740428913442179799441490499621229946617150576475520358277332381536683065668765397315268430532842859837214258784509290778463946952525945931605234231123935661108974941514518693143672546692265791467998488376903298527295665623566349745670669925794193605876250388200878022393690000558077109865161877167426069865277349240794687817802811959319462271791172903952019372923633986354283995331347446481556518926486778460391896121924433362983564060603961981839170068389913899878270003753178317551721697190059219278276921430514157014368923055728780612750909915093397138281339175114243317761084207773038817843368001869794158030429473898421975530803187720413286440932001182153955861093107632906189368912862496325697075713996045367009119175223514892401344023175121354320921178961127759176036588155898719134153662232885780388035103887585646336131558405542257459667566291912435211585350255012373350141779815120396531566814711185745281818111576101479877289917181408120242582576101131622744390860976285483828617679540171008738848683118693291006706803660077008612793723750520194655483222368868725850446734585294163431621700798389230530192995373410621229865188877101106037570469430655026381787154267124200746793450285365659827595229891592664608971094839912658694718241641264572200822012718303299257261560995435570847233987749458866483836579969723733902076235042463805088899816416001952176193673376906097365094893563923422408061057893581297794938101945086539926422940645444407274797301379391608509696964714449637732107870255336402154332555123833390071027906795517439206291136867648080242993919893447311053218913217484447826419304556453344995064587761762774018202239990240124256078644255130750370693873266101054335307482689921826052169666978515908584749435503544079800993881640857087918383080633386836428814991636191104088109297390078367214100425704379184080199386005388848494341735980666399130283419813794260922634189855078694607114075111354042515191308898063492914231375339272913621867221294179197719717374452999621420947258209071365414181852096936086443409797967393071663680876914838205629364444481554279509479107577242507773145114006404531505657097453218419966462335114773878263757632823827369037049766644971457459024615079827177227651877734395962066026226475594198400506323163001440092984932423436376539952136137575984224332296500440928971021260534054415897053407705021507197911231160662223738522547662640314369331685205324129698699531418534174686185065799694365273084357125334463646432139152538619851724160553350841809495165670338016229738915424873681516611833545012805124272698360884924846807320631852827761260624472528646769536989114059418321511026750565370879322992770443703594786488873824504689406287063656384429053085518649686567034964974299896053193476270113546537729976372226641737454684629878213471357993194130658557652254847097266501885601424686692473880522868508566117523289546044184408341049532599020057473544628404530819707303606886547540755785910008034586135143990762501079323519949562936764523475590834827434141473711985170619292715707508596323408261819519907771225875926479276208697896865242030958531829149335581935851742332323071562247023702132071727748277113491828653807376142659679530622867885387648707126203250122815611775373613046819201857645803056968769570774334559443287157691398732890157591601508497843080289660568400750349383289870176514687667446686544658251655212265952811014484499627055022667741516992314497890560500921897324810156059093816520152039912770029064249253840000544056345822360896902674539134184566918016441843723882421539029321203170336793205680955574226507674694711503940044072061470569234007105841396419607979549762476585837760751802174812969009995584402524403885917867599683220492493234537534276384584257202171203467026046205479210709463388431999910715035795916063774287355800828548847823804087909321534206235801455459945907785827387126466944754628075758988668336257426933784944761068930352651127058921391247492251260359056251436545982406030967974426116689859235488597414694349719195027270106252375907057158913055614405633508916454770250257889855282884200759305703522734230538367651918810234546662896301783148514759867853283633799982239661997959736321824530815350710790268019272998535958874967906131154168220219360187909520995366891356117574815158850273063500806450793705074012964495104760675910990765478895579520867605755771892347079392403371573581669774187831436749921875309816817545899616134243613137103075713046854276343216753729343477429993666059440216709331383713261208781184923148120795936651331831749735588472499719935148530043496744133580068499508844906577056376633594092318297210887351932532338742098260563450960589609691822207444361012434502438605769622324961960861340610213097403652141760433220968766954897357047736837691799235093625354243113468356902336912720394879961532056602465190794553353250124396516327192634844843282779075636751625270507195859177134981977895991062749237928131100615844488784796580892124471253045675107161073090550831614082205278192923609683426389244308222226146597777730941149839987209716471653267683982637981309641141997074796562196833771535334002213673648592866701744534495468500664350792199983827954489878466495138337674290502004069003722369528904844369182846398352480100387031902630018801040203016784553118885323115548738334980907846836458399370830596979588224069378987351295588219712739897580855596104621775251110381288326859790487067180785774566039734184323347307239123795183468994134649500581879687234532258784976180941967873282927197955119553966916409762317953000610575257219712667549340824711449021530904334673584504163298165656086819451905591673270285479137845985993433567825274740844859660493144138073709031756795986626967720238632617163248801377785080351873055885463241205720549371347600711093426696660085380670364529584273947332992634386978492701155051700544675141987138115201952265242544451197367121582127577463267620747927991987513217162842460833267652033863862801945317244395968772246002038682924794293705131555356103843526775930833618851278930941204984122927148155662893258530797133024171817917867673721965475355154709031176446974878607041976969793116730414297657675759863208483971146335367416240701320210522982281174004039156811600130106630776320925308918956355486078133947705862273908860105323546614462098421298440756181973694618419572032552860324881876508374409815719289674454719291429631503110857368936045854592876754498532461025370946005794505273250039009471242559500788589453369782130271210037897443975553466897937456617357659668303631721345596807357382173220106824192412442977557205788544618357040622984115737366913389144236858504556088890860331644143261410406800890754283817668343026826622887013789355001079055864411728718925832147119630951795268475429039305175520655068561565030128239847698229311907800749910268326368339436550219400876666785717569520279856896269931451244745069660232178027283316419377438867994541027953295789850112172030336885648784573238506067179646934693141694460937305680662680143225071181521792530359018877901695784325660626021193444471275056001200367417780732216924481317815497147673983368406633070275962344898966371534316332588215470887873476024272694340282931945207937609396239586655107406251066339311234060130756832083281694756462454630478099417709848629600713232353505461432996848579685882561832870118614078108449786443071949379077997836828111979374877118518905548262773734767035717064003792477481555386941117243960160837017600355499628244442139089217507247873114352842450893423724505486276395638271436519357650905805940285489120480294025470841855722631917054928255830799777324220425296015471759192515814255052348625182612923089732501228124824254453479814568468984509275158467357903742459845818614510256747968119236560612304356289000438668938415646808000417684800892489363881069689696343062716525266301709046710380317348604865434463328605659643714239626942448553478737945823247108777939454787332590095800295157532851265175405580814662107703250993441076737798648482165485183812599165095687315266285429768641262366390095965379890779374737221671072940316747555917171205915922270951948798675410206260523685351424490104698386403229157228038601493341668488065175172747047119526367653440093330285778724594910088139830093529638818420827122940716893485869537929564254665020532475130549081809013711166408318740530331909301627320047618488386798616779772761625498148854442918961017854247601994375340478147521063861506412763735980395154348061487338949566883806910926153922336204477041350338836822834553630405679766991633211299083048495301939191648824299198863620697962411387616002952250512932938403962038732781097973727554317062459480763102017639870736861039387035121654512958181248662097192403996590188742892417038443424897911622919147061926646390999911261932597535346448499606841163192156035217862373181008325784036852531530161754382438463478037714922073659641148588511269585206452748749601088068153723192384313335221750254646211122352905723189875754261260935619429585461144367500780911898760134667477884109015860957897439516185165352080977243868372150263721908474341362265859075056499541594773196748874211956800259425228540652827757872760200687108826616880808284614986995191955564199883950284574025661726663164588113959004575556729510083827420258964579582536971115336011349418791541324951437129111177292145100972105276010404634611239165480666951222372977029729020124933129924122386788100304310076010860344375295016921038742613383860219403213212080781249213925236219170102205011718513618582851986708828875076690248017876171757397963498963132079887883488768484970592462371548912451289598171598173906445757972822525106822206758881615402220290417655724494333559999595059617424348519654706986244647166948238972763765732131386680343236929521516073825318831719781962293954647925358367852716275060529551129001144957512459611828798175960367841506852210732580164472960823445069209614128805418498133045123747268066367772180267243312615809301328308954204503847472873973994390342457133855250643352922814816554037830865571665547077339927538064340582348176879216242050321582893139251655208942958013327183336055110574829143960353920826279867043881874145174181743737870917296345162747079592509195680513691861072743306059516004549200714110259336775576864842826801046589123281410481861636906103853291569673829046714344616122196580140216227575539574426983719316427340394564954344969172635165299123271406644822322165573315314832212094710723090731563956649652599260281434518878557398679696660781508725937879899634736491927704461152829061646449064172680550363933219370741587643839953627674787902083278512002603985675267700988579086574209308465743164249026613943237991192667340320808899643049967408834097676936781809178052087071341033143306960872296140834250957884372201655152609495632859521543952063099404091588136845932831940063564310328596598253607559102967649426435026563645576048076300907391244451132844090095074444354086592483672930260560234153434608654966062260171010392181082605653640928516148722335597804627935533600447207515729402587439651938004858970918470132775075704233724941190249232056053406637871112451017063728475966927910451816834332158611900647228313368678786816866587088692545519506907392549458009810427722728073215549141123870045502300285718170262019902715472466049448342057709638496367184726006921162803476373489319644764345730773184760225063618329424867732860768208311425534476595095205545079790281156114457639383794250340542068185461342492136464445040739630104087447573269620336227230695430873158740991542984173615417208345475046319125863929036911064854939136535361361462704551208263682361711182306607078763764688505070599781332103564576211019086823225956266052107433372216493053313156599537466322090929653620005911076532414106280441194205280041104681969632971155941403595222148166756946684886996108563980641706648490595436000464399642588743224288125128011862691261004270622984278809943644609339320706431659323149420306306399582474346397774279499155872745622896094501652801550290449205548886135245688565258724512623697384309321172401600198667701931299389331117368424750840000762121125535558483665211436458785903358040167312470431889343283637901824705605592865976316961287306962686820696642130599839054283849217973857336481155826769554788063345447078590755125406644655111938714965240572116660609929359042139865362204729021198454779849861346722490878948544383855810334010878336674845917089348226077664127600350102720651849095151691167491291703243320285466731582363085212331992703017920915600410303670962426769625234443881656027328021856489689988013596266349418204265684804687096595216179408303863501819025908416510446000573942097582149189786258941885755599740297737934749541950763878887085287843380807489442774042209843458784212633073031320399641608404573306535618850041417211654184342816877412756503132156161877019882982479335139228189356894645307782140307693325794127194127965709655933396536438882229347542413990862509232527602157748049975365518866610852839968380504999240015216568245109371326684735799029494028536544832459368742060730564386882968364324679942022908213674635790306780756253843920651494284197168752250636101277182294863217724512650544083122316523652346223012406994430404049862573275841692397606533145745802421284378325399248461746736311563196158761066276863941463313385506863814596366579553786975175426947157169422713722024413479771200268996903711926007505027757786958266519323138798616257515003075898607294491260454812509464641096001789633210098067718473010756028210853943112946020294425382891826453295749221864862532774535658370340219647779443784155927239614006464083175712661347671419714444464558276565050160497658992988346121886808703584625707135442640470362745165756672039706056669955441746579625567328367808971838590519752792705781283206262079435183152077223337686284434282238126178444850935834285851523384309305543388463889918337227828129205791610987572794548923693700136905854009174156303738966421288401757720234727308602888794109477358048104270795903238815766987422425656334692298878392265774070884979614753645933308311998664384669291653462383455761299055919448362979050148201689439763641266456522400657496971131930418017380186826869400613817735433184625597568457185385833236835843963561761121564435136869282687515319147751691083641759239536030654213348444980989178235128349318155004128193442855431399075505186022021017962132811142258817262494295602085586310729750991450426524803579996754464997148765126894960083470135663603966576978704060129703120770425454742817338690217502038841497894749521798246909177577096900952627994601676612651762414503067181530257103692803762137049338539371949603749918983000432341182666264938773034903293733181205690341927415465111642852157823182848621640737373998800989041275480277420212423284343995258016672067068280732413699757418715370426297120941443634815204600999549272247473550891749601592611453085976600268412274781141953274466533140708875630331238477326877318902510353816345284333610850404404634143651558651194727607874721141824544437576206214815678762074370568723166256518031246309043452061589288845450925200264521820179017079922857131505867684653368174879617505211365310067030412775432334013566283697800503216159391946567836409985943636758542313733681571525422374879766446387836045299478437697995516387618031090617231227978696438122430904351340819997321206387250439205915322334455912777201749551480080821321012348623040337379483424182887073960161420572941462830862877172682360509330863442673551129971389566074126675872941657557663758000145808640526511955425507322959987587097463095341397903194898002456833294518461338022164501279109754292686859035071020187798200746591851580806294322490427618427843404445930833369482700465134087913230195998793179575712541638091254734875289121356191325007529262147668842413655386065154900420061255442438958938483856798378823124791397512209664532576523733873595518128143473551171635968816558261103798588603046088451111559423873076568894039030727295611242076574293179193674439861881986748014216249948684327159835071109864974094576247601213579211924944545114926998867717808048745397469151498322759309077441138864616016596698567724167465380127868366744440810522341261389940604958313764551320032202983176790461315453740688735428213463713129409442675508535712888760695719544584950835872422886554818818440215324400858674537742905112007739105107804444362023299191940820169561905362579270933850395751630294078556047629675083026469211057153914773291189976217297081233672953383415649720289844353623618035373313748814862504911277707660841721624044051426060038095803091923536408626204358622913522019373152600273358433087580167496884916391334007537551721931948451643856763025364262076458269081822000644608224842923756430250188922944304124797309404900360354445933391898918555058322030286140073830991478104607169109862424526587724596683106119247770198102482356053267902268649468358004373682526688671060394661195357308350196461267890529975903343306063599379534833293568542301850009828525178535237525200158530275096098756560409906129368036815910759313351466172982655407559064235000412750049897126332187464003316528465035667241583670428084493943598234675300512494062909164876499171050260260380971299795811987513712289521333726274859081323293599299874962983863937259065702575453785165443547298564990921842528794577453143203474021949509005665470448148092302551775797095322786071204848197467982829393780383117286578788695290459199832361714127860996140069418192722747383712070219426226744111744808955517247087597727944895012493254344194211346675468479877436643130568251513959145927486304487087855201072637072238064868664918883689018869187107183579105804291439932417388774047357221235728025253241175215860921522590312966761273065051208840194868858165900035086760628559793440482601647049866796058562901076401453880267646379922171053695289583411555889488959387428400016556518194870469650566163722186801647902761502117256899370269611732435799657335539769521675648904510076017889735938317484824739430461233434999341655849159489502916866217136697370690176426492169198550123836088782132055073471864014348776920676237459698018960626722078226079115907707920348540106223402708778174818118180352737084310408279452361925954423045713069680135536691390820751919199418624408486375164416608310219284073148934015875659767060209290727147419512080482883228191740922538628704357881734768011033677527001343106862930653114465330261672114293261188708823303278040824513839548323004638577131069031125027490125982270262365738819944153698443636184459422777728498390165773010004742759098341709860540267313848449282631659140612102002161676895476117438075811420797255478022374152743400407753797644107116465561691231852579865371006118360738975883824799698306343088093217200726906672529914732329999627881450785029320556006202762913086062421007598686417854713870131833494485738521036542134086806687765247694748692732730578551916078166681504550348740454751595125034419080561874598380457343043585661290620338947608379685994043539840243972218646710963443804106663742584919648481938776019604351017503972439784856630325887240970402501885145600459573239955661766833970371219336111597553810101419988149695060438271095824579461131166875761683112201762697389291272177180156235145258195796336924157294210595533102582519256532427868162692481095254445875849688432273159916311032722080435333583655088824419142556459192782009059646160423650883226687939524480617538882537144580910693681664074668760076262919911287892322475227948174670665974045295464596777796305427114746620995674935619503863776410761221439278551759280688380309483460264567240460942552662152674750801727657545314165276821236037662389565064844686176270805804568062116876530382349030467030340874956852718191526112755000424839036950568440066763221342805209183736672356913241261456954798060343027615733911952914603560146893899016249075709202635774410162305075409542705073613891759428402813290156957671950565207310578650520922736806383286298050094264083381544355969708525188216416724010089634936464535404054082351510761588259900713138144977491065296396448319729395975340517875712686486818049764530184285652332434864225700693018072764216175728705392571895200354904184057014397434603571594706644407028075856378746837271725449739958641156010177958322778719310884081706883252150616570707855816703116306445000949763963501918307469495807955595902080780570290520477756847459179361219721283409728808571767170548189798841525562559125060403374829096915048574869085630157467435257268405469283341262637980088391593176486103896094016851300800336787784024260051985036840051818834658180309707393517046557589221281465600133743619115986804266266129332989928092156910399095330760637420033874910012815864060062090185121153216555854509135041780787972866797332484504700133164516910558787342842716813245795031352258854623860466752475811860186755856709472277859727874805967477338690401657763913128812211580248980746003238156965669521382741608388737729669384572875980011338688917483711476688193134617137592961576890562583119491264534384434644856323073394359704860233897806443411128194834108255119872221650396144823866422653448329018164554457082077086597995457495762923684391852671904312323991983057151578765062217923848356840178203393101612460878085597852778326353823254466584759768147328192846785392739073506456653876248121795638308591234662786799245547140466970478283692446676318779742939191430563514636907338556864394289222557765718835995535854855097572404121607089195533326736382380364752900149532482339226888327127035493017801581947299138861845974190739647588792498305347880807015400778139919703035355550288956550691925699815450659678362676548071557401886427221942108798142712286550854675281423169533385554497841073286327018940720471188036079354999307423975605247504925366743510781259585236754863220812683877143441860678238120813835910853024151421614207535980423598404463222984632011897111173254250166002826138702081283127022036626688273264125411393322213722003691697084143498607881659836414441608332386964409836678565987525469208054133896363863052428383996855110611627543437317668581421549145739934661419094621406134327104603148930653741789107765576825305712333715966699323903428173157734516817067776986220996277114495157690903671992351720085626196724044068082704419759026556467685278649561175337778633775741407926365039742565626496652902811201114520757239890992971785732256379006796984794769494446565539144392610786574033513157600669929967079702491871590719826721448714856747627100116397673518202559944719036772425178905111905312648041359720461999913943326181482016286907669898265484092366706839082614968402709516219579676928206326772303403667454949085364635802570720122551398526703713621933601844676934885448459675810491780133995899014596001156933574562023099672648476153479812303158373361745948768127873030373296820615230582698387168994806029856758391802458094271026235039224311588913307496586537406298656685359474992327748738075670469509907608514582730288545206568548019930829219203628344248582532072279723136365892847844928496897064263332743153749244347127758611153277020762177104935884708019207088747077706052044239687941769711098843859863609665038948609831440136022179683681811989408679487600414732445155988382192511210406080933241399872103622561191980915653434936715832186617976732125166326324483690989900655927048882875330706801150912888451348630676658037801828260702010890181161118635850817564955875304300674001704526229258464672838483508667419056825851639098081976034488000233189416900576326090837362785098303012672589231644511541877155952789983744986109139148068960417105847444141200240285067929438762532070546353020339886288878470188275107699192618365410382933976452936793968750749882829671345143991943760167482320698682065981132575980247930095785857801800733217974267301057629015285101059700535022919181017570357628329532345359301863816444288730402131318292332808895890037258989300428863698331726137808566602984977366798994795784119846519914890258404845418850148108498374821127985120791522468547359249086240615279672523572672279121717840482982172015056314887967452454484810483907748513824317530707566642429954424316119704480827968944630356821351416200292204713302962309838418110239366669506539572147536004773391656888077763677754078619899593713254336905126952882874038149839136815272141137092100179291286491236505152490998013678187903157115127194275776199531793485716345921569442133354490288946499966573062108103574386670985039271468936203041319705716836094928572030834443660153772515338996021666541852675071812693257942026493382141362287549348610780204844944513116219961551897774732134148444860557365459861749080984153591744861631956180916234499096103591654140453275312424983996294107125527129277464636416803517670457619134761248110335664091540620306625715615908444574309262333514310592176412375405113945050623686387774079490689684350424092990392468699698043844614514244606279428374240078708809619410566442793065215161940035707957695290683659909892694415924502304360687884109065815078594765892346139894161007044508743430382374258081800005718791438152293709152982000794975210246595879846052583281422169061090377007380572480485149184624228701123162291203247020982969406550641117836261530329033883278546483136700398799687034912686302010719470513660139822752680990017867267991394749151670308500432523320257237452902940365529928544917641646438245950483974506477699292448608181620789697162589773881619274143784404617715740272768318574927625357720734889794898863290467208712084820641788698132619432967188099021878481541044001473407399424455122008431833757719789648766782326012220761082436547590306800038159127386850307376414830307701233829842788602597195754664238322827595223807237320594004608097054227035103328284779829105950086534825220239873578049747601522777672624878211543611161586977732839191603349969685709180417358426228589253859673059738128812143456130044696102213797373798812881708593823870814679688376760265073140489747355876360964482917408765999639823304778432561894022805075002328398626218843929288075895611873312136924433968720741960083039750147081787129419023258416430256183644204285876633477810109558175171389025786321121991003603430898696144253977323858569714422352075218954485718992750475759587491648407355525987582945285664144909091932385422212878600935053999882113134848668259108858948805881625537388975080417211058694428913553924274680458104053752165296331518529827019991915892945567790968925270199472502502002742449197633397667190230828013755109672952553503207551640604104917056597551879673161582192835757141598623383303795609768197426956880379488481812177094444106722724322696807340457957382452158157707274612279662032841908608486814336766385358452053976354478010319026776809488756252750698194583465278492481960372313641363763068063585040809672886870252580451279651834232768109876575870968882929240878790683554682084003105274341020109461556037028993096076283772166951856087360076754308663716573687698818704864717583540393311019845271443793299667544731348734384609844939572078585477153162389230760955764164231191502654993380618965267089296677151407417805964639701564181167888908812839446756979880967501243126934132556967173155393627401102807156220088450670399651344217360945820573530977890312212675040225277850866915009593511191775714286810326123931417741440450300425236313167657435710432587957314046641053298696962898242576381117182447046226794634483175934170532122386680764924844693582952842771137868310533666551568190185455120171229103728408823330110461371062170649003439754319426397946449001441138535170156951179431561659557021847035069815622889998845924413298930154198790276609794034878544691884059619784122332385561673700867214165754028169789664757430421377113585963830198416688423127499394108739535196245545282744232551522136390887842475192331861345592157770593805041214686959393859053056420485500879313810773791230776568773352763379696695318583119438761303319121776241609110411055752694498952856720878034908896625769775354999222783865171116146612400010237490105824874299957945028594302242885004253008915264522376839349775383250891039759881775132322456290420931665966603943614460375121988623822757897707559962580266464601456661917174025252213251652314967891226431564162095157313050074679090405763590313857747739917665791342369181730804587666323077286201162339881098199761330107946146411276962671957607287580339569880391942947643831922035537437196866566622522634155017027546328562950092420055855944042788366674315407779424865266020466138233281857916513340136287539400844957802746286769675488543312448579240839944872812434592651742439777412569187606510973747238478264645886873433656370458638192767416594428635868140372850412004340317198038853239113563441126201427674444773657854763510388532797912068079743652415230993407182228459781016936903940547995597587562000761240221564222788917831199601053403038389109376235219247769809543146440462536749969423368278448842612119840680182708930987046399598137937586842797685799498090052392274450911749743521721603189894756789550412065452981679996116446710419055753526103030479433029752114093457669564671472880945178317151769331537147450010101457508455981645629710952130560734778733467763348150746808018136476080469775911123965244652239693902139513630737812458455945306006616377922718621934516531623903960985153873370337459148473007327515106264037689571908891937298943696945041878413228058564288551157152974447219349001867072492336833358320169227407063702778665335610115323572926093451283294660178822495112083869951576349590437392963483876534593687673623707338659406608123692144070443341084377779762724964723482240796652882422507628232424366870418054248220893989232635224449439385590380279790751506423721171696803718175054658252159971657149892765035845406495252490640872628593429294395887911955772707403065412217673314633131559679457443177619780283848302191420788116638025397570729787022975972133757939305365129837872942307511910982116791129984817493224877644132922809165201304772507246384728307032243699435768184068014358624162600612765130678648872190027654319602688675765147961425968466999061291516044335648215051119494659182684792773909370399997702481000381699653018536731429079999937646190283547604548417587185250244344024734299224930715122456592931860138601078984216364239977898692671533925926252741425306108202582363993890831411936195214322364296569902437125304670187325226836208169301677123600499000314758972623863215553515839465614426748837025485177535349811596148807351018575377995866541812075953080618375363440060035798058979897217337676144471316018131828538817630198394871354438826839062978661279023834998196245666143703222119250973852483752845996889462975686181892778266851996608248022764267429590989014325890059771077388685827640999004263540812884749741979433802041789259192555353425457214638208932314121445923813491985221401542126238057063723578739103247663006773842105017858500854356476629576291658514445544262807177384847077082569396713702392522666433402918219637025902804648052375090606301534130593833829139208189269548457144801022541411335534014361200408003219184008223154584126818048704186196409092119865971144002609928735109918196382685111024886594625035962895736221211987601064371989540585876685637985337600579730445462203773009614276556272807876178467196661146961596314456087388994205104033877884704240502817704976080998899125403497679213919383512649068458305136787133999212017854654087681278850013803882643363964919300047184080631575069801784731574305199223996047942937888493998116466903363116311801072299664771940912229733481868190118174291127426701563814003212717778581193738881413310607734114802990649996380361674733062206272868462182708810968100694522805395954352699024567365209481903906987516332650898416517631899606410423297810127623540464186137333875915051130818571667559492670424985758499778897068102099924886874837508563529487328926595686174217468443907922593514574624695586740196953338835826995762048823825934771265739424176315749709943409898144235022859519215894174255872144130467997808965837776671868773377115464857761016106488363464357632904667753085301616989823526054726300753186791533955717640771834048077016630083639678932754189371905158709058628517535584387114682919691257803029303579414279810017792279572531842385709112401091920858190186380557799927862365116939029678534222673858082243729012736765977343230259304732325872247580323544632220534901669973214689955616422114644322263647441683839905058395700439246773916400725102811530804889015198464561082386628787617560506667968894032624071678574896446008759277258926976851682588470749085704276409128458173013655031311510890913032256787719022365535142483866962323089976028098181894762362779414939112704991574514502867377925893145082377041586831050741799223198105473816002610305845194530962532388402628909806659556433441687421442949745563025873560609258156535642879063764694183208890189400494911737930824659200299819610914199660751586616112342096927823333783780601502636362262198621720841510262945818157607223842125604997895519314843297206354236281180571709059837351791333187021769624086659881840112321774365947862296132178366997034962415192069813772361214554992879646022260763891075624991319778508502229474296742584682938654697306701258241442917902143989243012612242131282013002639085158156528917492823576577038548428400599229196089593858300382651254774031146728850926974503315946213943342825912914011890383091403999931904303364323328488110940942533200173215834242577876457880285107545523608672009551654829269818327771488011908323511834499582088548070293477257169200102808302336059859632542737762421487689553752240590176107939807527256320316545469069525241360096708924535916057254980384946357784348516283946071962400570503806595444277060052999672390275110699369714984670112753917265515641994798620762324005338573249480978325725985207871958075464670870805630291775223869135007990040621693809175120840024542402082320894181567588985987731302222232667595248961013549362305395845179122954743400212745279786183950487336044226375389996194511846602418597392708831746482912433521488812484962338787741129821848558848107644761428002925816793141011467886274522752708234113559104823292605773636474392806562661410751392080511676972336562238141792613225942393593928320565568197829073828108086044189528503126235764402488761132276284468456969039649958289187001998390579454994399255333571960435951195582571130491354981091327397508086348852874056458670828263970200101718274089608091825872492433062181374133601271675866217065600909158465728406016837465990045508238148584203109924851153392686105631707407577729149448910925582419021491862451223922634588338951614922273264998809608233769920485484822306623056574148532618887005838354191841546536586913983727114016804514622686800309229600159708272163874960126794213171983929629127934184290815652943706444307618449934792315434262997811561286384313830740061945373127771966925519298140567119126639383126548979971269190587503148419934274683293848392790048924187582901386888862681544916492986971290607117527843298556147584758519143791154245545470778251045312540358079075546881996036417598483528472697190173770360495098790510767441075255608061634908555305871077640548928810588505261502870338338319893625834303844634332188310191436065511195254591750730022463897760896679191276527745674894740127105026394562038590902494092379273589072256544397615001631290149856895608361911738156546106622470201733415543527313371914083507601434036292194672564647148252324563008378075342366712445235107411600288610266995690979915475409697272005657626574312170971677004981416005391663654419278477324948669754979394517005816367772569086552067857052850330662516011972425893808853981455036116680256923499796159816953034398281162792172503742519649592768260451432528116691589711829287231540882008823900957598752000714951122990271017549196489330790757194078787733384182585159449646529109058231698214148499552708975694906518097772713290445225939140083194801654374039338400090943326124648129506603570210448721553893037843938816649498555580590342078616756854642485370568950521355189426674391969483226155933308676094212125682548613307656681906602163648842312329719491622156770954510541538242946249526446685283807421742147839271757012347640573681018742318794458446875603902486356629967853956767717514770217481422149265062343796194541779592684993397892083941817712627179281607766889104960006705400759758762744524889029654363112898837359606392724528198456758479124957647907460721708867238348926836297660924390126327687505456297656848624158163874494020195979312977695710440590310866124438239379680405902519184654900854471333473972706595100284801979386239366126528221656968590779192555090147704509987627139554562350469817904266060147948061046491943266865544744638514948457661995231893294107582098105254885164847565184626696418815417626079248368490469805377382916863707716451246072525267286775355608580840321471082674978888801632769050696713241189517875225998500524202570823794313878822798769905099857683503810513566712609162072411968315573519174985345563835267473993969575782214961080572696750160242496558061327213491591832355065705188103567949337975906772730695782946737321666367929227242059624140450473284743001512190790619780014210149977001405469690120947516639953150460286930350245662705165950081810901459600163651994861035289140019950458187052651608702611568979364013978667951830251037511004667327409688089068738869010311097579697660196407317958063678578637876128856905439537656920427859425285386991202377844403679241777456494674689381126733102683797480481134086999427610590819436357144325599896658613074335073347349718628770947152097443832659341595871003072193154419314430597113839785952403591103408164574765417809109183887787039180416329457207105631475731479649852431750604331259999178477629781448223891647661060940124391775991993937833749063582632328570273205102566099964179926985294323538955581532826487599388136193139056564255780575540303614713331256753026078859520469853489426649147602392308661649459834995360054437325941316383830077963487477301996107625826269035941122667716577238070109184735902617195317014837577162487173206956984873686265312534296509672536813237544017412560540304837371473532462821155520117606989864996706348864566387132709707417639814002582497522884517091093398442406744948020734986647707921767769004894580224924877435788314747514442843725812542801401873814245935665269139695135335698193448788950713080632655413628539242514068059380390472081813497542909705880816713557656801562480435274330851330741204731586688557675221251881178399432757164417097267076072435403753997850533421424645038532619927033576557146778756885366054437340050272409315717560074043933746031118681882779026423710491917106252480071801859498586767858822016531739895496285787842110706507801570141499355604975095682836892470419321267855468774990277510882017543035526695832299327732416755288320763568578530335727273592151536462216414414654998529033417571826572208119884146571716755664531228370966603171524372153353997398190422189545127036954917168273417682901143396618961879784720111138462399989284679211084386787939648613711254879375162168311086724128273080009387412067739072124319796717427460260955672050091754221214244077243258393667050458810823628591360985445599249111085390064627362107410310827224960189417687756460449782412978753913123990626489933558146119277363785291395223437931172145847404659555310008221373566747737905863147174580643067515423183535019098710167319178580602046440894928270916956386674867614039965413185228308601038432516781604630966524442292005737307487854795729328024484764793287438736402454494655759204864346582912721797355725753622092471275688506455090881101083281316817586987495803936008541467976564464012531897803620322817181808749016584247966440079145740951757258451318111081183616209118718183101078360452395435892260892396356218844307942397221010648704798004910788490038087027286688153345739922059038529542920160164206542182892715885840650164898011951202031402553135042123286268561099200577300194361626059208483301379215860584909798168396783108161258173158167607818614024637559654379298670014012840758473897057325126188535780348678083921520006518185325848245199910213935082786986816436259897069247258421518797607211242542987197816198970009752741394284274656560330346743507031329707598959298682234026190136878534869557622998955120678566998322396142173114871847925557019856780292044890833277633284404968297910266783121131761332485068118887557048628505555256704895591948290009376868221660581763179507765068029845662018768358944522233671718515963617987205846502267553508305790541458813873049439697692418796099937648834703270731152324363953738303977562657796398073626056029909018496539935437542645606670726245486027961050879013919263689499879870929538984591672453556283886044749476297069182814977854914682267310049367291848396571481953771102749959698551980765636999904002962788347877322197941026607038532071184758319972088133919928213027799327261945315285856622186830566480524871161269166325361855560929130119153196717501915089045075027907969705367221755356158400135630879264522802980650475833990173705236005779578591345066117495079636546286763339386019369178589177879399672478473963042154070420085294970078127750754816207837432911681637870844068425120146072598630661327460559332252478549998339837976029474702288754373094834031617018167933947208473699386190572294400229233428851663722513356022322742803790547015905735553297833928354580975467734949434008025222179905705688590557841312284175023292602867874537488966156784570698143589754127598763151456102836749193041160393236893753949565215602344998600270738530027816037899576206219116327105285899994299873187697215308215163036085458966864871718880824484065942282979560027801641432571148100476528615064877978295098373704421088780370590148454764155997910545326139748183612922759747176735289063131591269381756365088767780034902726723383736068024177158900781510038027596976093737109698105765802530815804550071642420826060452023583309226081016459182681396825114363444574081704606620627548839154137153592149115766869072117120594868422668180852720505635711285661653891168529227752389477458360897327374340043838900055671225271746036526165226939970042018778448449502933019544258288749695446899871998311590252175732520665075608853393083457789037806617046761521418994117554187594374836179608372349954363881996828476630727973644852326948279461483553516119413340483806273729857885609631819924011395398534336050345770710672967046121200710453365629489354846412246069562765745791198275127037305575724002878034011397837459238596808870383441711057298290855497719912093403184348460397146034992868937042491851037640767713100471589346916001345173486679494551801066908665996696465147502894019230046377663532004653778894802475915219414603001801719121803137240388704559435434791224153091898134544048648138637928593996141517866617812110646193410102434212648190095353608081462825757098111808501095415657106489985590899402291227282908891054331353202068868208141788628635881024558729830741485723095961708012884309905065332002874555078373935447133463415396803265575245479653831243385375360993919031387664351861238511334556840295780774797017266050093795346769082631085673600477420210501603636171191308129963186746740167414824871933885877192779258116638971604050534627594863646148267659132455650027202079492362284999838328568540867582535239627532453373285653872150665328389164866971718202991400736168945747084838051339416748967781514715524394755670217250688029937054626615145417030697785431290325302399964360513777670010619092622694143486188109266913394677747035567204778049293175591836159905848458295146235354445226015071025833708254407671120814963058219437738930110488421428404699286438091487438428943338549950327207555688888881340351243745806899259509800311534955789038122851318518490135698770064576094024597806817582985381658610429681473395951735598249309163950095154061306804637015584311256326577264127851460838827287893387968744034635443859445436407955904488497686459627604144330164178280563216289755359107608780221183705002104776605206180604369440163325715445677341696614906854485656087540891503450547198539245833750352365649292568207136657658889783992952102723258897680124556946988824862489237332730984700919667874855194108696892288789434860277465580570473615645088870072088882927024169403656865649510270589026232899696199952888185177689448568003939696519103380469191434052113012766626485524301475145954531991039251719932440581769379911877601543790925257006633409739644431192387373093285714767424147140841242605941054470896722841585812899304664296824073680707561200598354460704971470201309593692406788115504879809402026563077430043293245192247614792041798795804875089067491025342217625230175572733292580143483075213253494076652979083720771363143745981716598974643339866359304049527797442525385027616770525547031410327839535169690582971038603669412033867746288837952482285291639657594631345005100908449589572276173943203139879961443067712539465235530563274856676752759946280973137649655882721057983322687525846657645438257321137832300401581737878495033080977598097987094884103104116338856760222702302767019789064811701350602808714313049809125588728943171928770229022114917384444073438518435475961078738091062099355131550839838060997131873234596327019459296030300001858870925443273863671515912347580715560413309194641581521175941893423828813821715468340834591407177299995856640302168993846830440284123164833018943857934127106739932577047212218011131508396380292574154484228587339804505256054562317458576091839000302129356647950133482083018349189103364430601684216791115614161637471261067400180774055080339278268250012912981948024596280287653283801369136776474035541628903007243842390026473268037137784719967873060423400055024755513072386944482965559589127931763269939050174764888812625767702409718986003393654022480205210933913608836602973191514584146691590659498068382885328263747104589371582171259832657750159112611602207780056640979411680199051870994010853972458181800007925535131236159514306496944652350806106247941068613702786622714240936531038646837748505270577985624942935744277609617539312803263628484810737462319171503174948937834805335111327818147099170082552447183088559478563097276445123103671937471566229541583104519800542659961427868542329908967918764250746895685106190332126211651453244127173901397180551445605470709827940608446125735717326137971629594226431669801853271263684053057515004743853027008795370787302040998676030054598873318387572392627487651168358325344895203572830122865355343963973075385032071412871161654560548356010383455695258709624726909413831967845378300545772088134080088406960135515081166473201939517878318863091041638016061754842942510998206654553517801125065878376588537275666925484158511695404517569818447025471171661565620026579477742076727057751107528868907942330557580362083660287130709537557562025524437971904185514634636706272930678935179905322478198217021720945944447955303711710088613171283288145936630460191352844833522086521209992302634154621778898180002965363615491629335136274705799611984773943657045766354252032273231052407586268956181221867094659710318012117065042787090602400847115618246598441277605959282112888059508653238697069777808493159243731372994677821226548116763044140997568623614780561812171229945097060929331734021055343281945872552918016015922977926635142041967067163458306057346471787211556649239184519394235049050929187314239559820498806292687245039572507463814326821327941271108076278521566600844672327105400412248796337558487687084432603606868482974518406997631321928260922585257480606507790836611259790150859908820708670537752644213022687944208153369740329132784088899044165311116922634339203974269889085139970818044283712096039303359538817745014945329398428949165826925743578047164929138806331433703661854274393483448324252561678129951481813141842369367661567897440934074994412189632251069196304449142710108186790226689469400247905331660211915911505486950343703097621485784136631928459566472158459407113656896906004412771341390718451684289113595019626817611408052979737835835535613235298780176517595379236472983708914329150872786671124572287680723153228715078884299696963635111683152035391979792328729772221137598037857647118443449822182722796948851654414549088532001380138459123213465039064668531889137507597240971010486938606032291195209885445970221892503632337156175263912308958514919447363638268647530170724180637203395552532617747251392990402076113332309712689171731844118320477103258624140525388925875672006393101221757603161692953347943032915178396152641595549584068123773686836523399697497773354492368741645990159623785591427117906137691347576739214675697589141333170799335769741668208915307283440361570728427916520239350212246804842484579736423620024905876861761119218423266473051941371114759878014006301397512345828865240348132544733851092813370213976018700695466798145926037608219347892961167471190283507035811299923356279112135214598255939070671616428815366582815256973295065134825257118908903690198701770528563572466296108386833044742801975015916348349774315872503697166506668095315793815268962669263750713229930284086981764149719209714587214259098619083157254060275108973034130675455371717299091160255303793792168450077110425083474417510283757873180686495927183617375941439152939990725235009578485476276113087260363239690372612970613262502220255149942755185602704404634542494255453833771327485935334497476322951606602469252421602940310894564753500989868382760779062887495679604438758227386251808828587559972458511762596262394346700491440504199836680487193310649929855976897150035075812833590975302564839036247546496888066416915242037933722837184166724987009366481251539226722013478811775117227150381858269174013879040907075982728349214395217459207505089363736246084212958331702924691068838643573769393693378378809766246300806289576633485863451013216952285246172283890485548051781097462894647681436159612081101731231024393151039762594009291928497078221641124929795819616483967604425601584627037356331349255320392113505059187250440825605654189397453180911908053959880112539267732292338176859603902483800181679499332222109088038577769740015770462379829107904304978482976026758136511149524096248312827167720816537246693129641750132117924517251924781983715518861734575777524931231856518044033996232573255554063585776199645342676264694939476577896636765788966711716750568177703901960118607810884341280445213852735224434775949561071376141600378845153986223499779412903132952601717945242903428980545789625265211656838186372637003939378732681615077707386858951591089361196821400742313124499622462697188554520416704050385201056681989539796465613200305948903173236900235454395728343951312563082918820772321063973494484759589625728798553936550925854268577524415891384403353871711573307624478157183083027065093619214399463641341278239280977989286432840803151565372361732925597092136554269208794056750884706247052047939407765758724443887540022661350481626409359271427060983864879784359119526626452199259178236601891358335569692310468559734350059883108720909314520638167621378392177099424011443702932414969160368967789193340166530774460170779128571778495231726422697230650630682175627363559313888971438415204981415550478487908203238959579544599622233988047061465337658808532662121274501732553704411847247755311813650661276446309983219807952196553452285720445672268773376290917291804084072197038275803100780362132133617086745504325765185131385174874896401133188001880596457510212213287214576717013702462546918701257237160875381786774019473360844342010935042553560494771751090083832360376410655121744857396960870242890582890107493591398157759278093040498055571377332347625512301089055479962463743429084245675416099164728500462101324638052995117618709037222382583860721489272438173518512112986464307122116065199090117594970666652400059560121127180623454768124139962130244006812134746470977803394277163375276129042269129164041483944139073330515782333622839706757835079948159345751994674777729484453638984695762914890717910856375618803424985966006076007390224340661855459916013144465907303670712939487772220546575469186221606083748531098458746086815338253052367760137344307241077976642037492550678583138650961304379458981320027254619466710813237311984603928065058866763527605241559720360333524286387815101046492984797809998510076351277249175084714324077485823247016757137694103909309551891458554999929898263057464756706928893179635413395972268039398557887211785671041873533540347397234416829218668967749494800139871556339569162108559380618914058637030694566351963365264450604903359539185318752013348160626325497232852112051038764619329727028722730022854328015443618793264312496451558164098872182071562412485371348818856003060191344381812882383842534778107587491158088718818885028763725556108132043094415577087758612317546402871763247447142882927431249531677873960821875419391164754604474039215186963487144629491776611573529272359655830007149046413955823306317096024963112839800640716659808225921424591755493803578618981107888067350881895773189730934085191412218372146276005008841328449121236867772502192581075099991059202238184678493484107150880302255319990225594407775649385705331990262374346852538336786954728723443610245953321739993807771403469638276556556979907691713661853513192996313085573438222703515554067964941063564934409099578793093456627220996920013520692782530661414258041205418080957204575878986148142952336005704560649580756211921786393552360107513079820413612157838427857603179013626889534839350285339744513268380648122404967679722696440586078906366691763721674420966354211769995966035418314763270927162746403004518710437002343195161494407492330794714964526724395325432679047817560852727904954306401852880781728515251945808490703124178261376955284118981836078820013947271351269661319955779906814986777939987067660167786545223593051435833024949037456032483675339462991969749129069729391496463288801940869617412117975706311186184831023488053077915629575374069201171340576556091515179714432309022076110270747194717676633096508134001885499378321994723929488689079827375753155869629461964049958588387058242299478613801756924387994433167919289816747151224333018186571966850981830077510217684241702301169750984308560028570789691514696904577948429933150345306728924025237767092601424603850243382506728330562418994306305986013350121799324561718520777493314976679985243566567683520661137730309859664205817033201940370728910679235895040025289787456751264751949809661541138037085731077432103757120360021257602214124146999102181026820561653885538161263376429291233377953880976457556404085648485786895494117843343249943443184629951401020993336612230353084753112542387747781050044739363970404890881639439951487045328587508129045620674209167370126527421037510993629069760536041863873714120111923703182058702184976841231943918872854071417889218787320932220349705554376184623732403378338584630703149376962457281040062892195862905056841268272696606478453806316038755073189065384652699754085517767330700352462568261838585260319420472031997141300434904523932570953100494037168702788855172310155390617008313305950336395495092758726155928734386854701339858247949903080551903875265532096478652971809885357337029303997607682097578203401505890454393646026497856414368284761620756295243900853555604531759610253804796020715856604796075867531396115903643519308971711550890017817785118961648942350788426199506949005186062225937022125399821154814196723921614839342019292554748742545954293127934892274135767069039521611745474937677706193561691797114620505486512016370542318955424563216236253599979510667151949221903947843647727238403378501902797219718989454735572234922410030445572144898548905166390758358319353510827259242956516949071847487660722765379654077410826025731610396881249793305881720981034095519630011733927933858390289704596025781043163099637404681778794305305515011774411317145401460155044138522603549958750614572473487713985944080867224749411854891448572190142496847195436734094611377160512602744535393307171131825282623975693657269710516721952949661180112205250481624626658918994481137604392540287834981602760576337299180871554047821389200527894430362729843624605722248525438746828115041380664976153634061955641178619037459042227793747203782746597967975872216293825512946602431709565530072760064592992370183706763406374534855686865368234818318334441271388127225455587851462011022138829526578839894313540426373333662389615466459088996237666594673417652691292243821980082251389969423146419593030290541260786949617009226736716266927030429805290712469516013291591107487583728286370194931154484002179500531550850523499655138422673221571035062400063044225435214783529037989857325385085800117036734234950440346048085379066815802769227550809964560176609310536353096877469622132909783588912032228691832679713029258375434111089472977481808921907661643765734057614013046734220884308026800942148680233957517680430193114712275910955066210263925770118312384055721690270482020215973756539021584791182176104732847731904969534369002607665859946391868180158406268806506380532809639150218913989113700248201113397335860996891214788414977673783086136241548878099489305078224390872057624740188565825812839581917729296694055819327324247148916145957503755206592392627830049977924513839580447820412264531263177435361432804408919915197671670283607932384951970393540697985325168552286700664316573731338195932178649231343724621741160681886468762242891255255028086951416233787960777807975410367237261968794765075608571150949562706056634587677264524602298442166072642389671771789617661123670748076453803584992729687736566460501183390528195336050773297772174413070387526199987806671979601398852500049447736170283806404960613806129740177947699784150669615289254179716124387246833661742851570386621197531015225758431949862429768543385222032824305150160275277340711483454950118801986775402611421027249429559013092701783398130363271589421025905291354373197237593465480787119813890442743080948784262412174936148212304881339095691543641590214298062587571467492827626940724660010662169895959265758995446793861579021429238164546230915717124981038201260441839781000876956368203827064423805211543522122612471473330934663266415199298746313202612919143419452129851876203693324757366150599557363531262184943482310549605193584871111568203487728342099973669783282188159321258875746404175801445727425857635596167451493317507471828048649492509129060462093349146960797413320587583980830606227725948208142032921859917426151756421792287558118374804403020224581313980207908300422365477602540926264757951951975511077354854941665547151542093537769223264057494939759698929698736287639660383354300075695096675651909086084840171544268450162561911630003959943445917574816122889542298502200522684797772999122228743639706003318749166424414594053380542178519422495317324805129410373629105324103657353522915604448935242680729476144872172249852668198793677146442558588554419849326891846579061531973068716777672963468111065680123571814118839454635793173035663963329959395684021450733570882289980798278682673510788569901506613207369615898663815067865085247118937777594149394173304780956435487768814139952272722716983758834339009376919552086584576820732120378047582033731734417869184105780486829718031385888811174951760968855657830801301905969469982988873718566576791798748310396915029424344711286200509200182451555779016213679124143243333824145965272389397461526535315296000339729611977557712427205750140808629424589039561808635872041881931701290223080906477072491330099366734615000710286558324168972309213338059235650851389363627581913560486849444124559149761235208978528862145260037301059757153123019393821118989238430907719111413662257469911192723510050653533918457050129521118105846077540257038862268428750963533274168900077038718956816797936059947942538838238334323971483001234919559856545835895102218957369331316968530992596796737938820137724734154230414027598565937726702507681712236990367776786517643097635183454472178099974540965673924033323651357871174046269604891273695196211864311177986886928587605842655656434597187517818077561567607826946120896127835115662240441931458924945551234000069280425973526553480128420476781195997621087584670810268896333246953412450054449222211733180838488858368056711973240453579710123187040851459218302693468920301130737517282347595156914648678470297596989769800075172139211918060018862175531884644407576055312940411268659482995810432405505085443795652236479039121690316326631451113340826810248956761897384530414478649339530413000998587478869665656273813875410729705751667015079899061353070007160241096247137130778259841116778988130668632035371521054649980429738295125850751165571432219082961121421867214071497392662608017184325521169109970859257827114311627649630366734373615985356597923517115724566441295654654083046656079757378281238294400538079931846523082841511764479442653822164952821170431077337486953788052101165158272965252299831215050819296560584147548395500794568366219041812231683397789986565388618054028038847692579117951223224705381732580531353272730207984528060011163766494716947631908591979130818726591392328777220303026907373019296673789436673009652140051507684178605289845430354028673035915430546800122397713259770888890127125153229778136276442742059249702184332886871174080889685154823943579384726013125004008638701802218352023310671817928183623326003105110953022885487046697245500110567951856034204317998950139982638056708475105853188810535807824310869875235506695227595242618545798062909820412126284355714908227212139657934496754334360993323685369826573902099301895390464355125254694647936297097508412982607162014406624947840095420716106780921628550554191557350494027640020764298475728672007744462047586348863590831076040808568574291726056473817526599781714356198949994834749938879416094116997259532044089864172554925064778572731245493138053089459756509802135939962257514893348769567128848096955263714106658077537616785133852307393512241194604040530651537503068688357497161704431699944559084504685185036970185997689899544817410382622119536646820964170155429051108772803711427354391100847077337900715119578959859694548884831224695360782466876498606032503006613677366206230918621977465606896763939264261745826111733367317837722980449632782311363065579790792463882055977289906739552854620364788713271019182144027521929241143365796670264546040873201456520239827425173404148495640592875466824020220909916942981797662821871517488094393955199359260637146858049652722250193817280514180270799497152440693938101021899530841533025772395267663929278211139037433677502940609846462964436601869825193862446774165835545614640088714889215774651941683537903088716483056638658289754240581983944171593863664255159237524555229651959022392040979868262560160110233019565777328918781311953951717349395106389152159507350994162457536092466589606619151228322361005620887391457848634578813840792396785883044756702056292640493409933528793289065429802987399776522843309807447664587212420543400570661942698543551198378286376837935541363296053417470512967985069146068395540891083941953725989014992967763483037493607601246196353495717765897532103462198558026271687036930548783868688550804040205853330057560792985183507751031902287660207863912912004596457074906441252543128503991532296522608690557906326893991469745877897544099883366170179909271955409986961813619458711831066958566120946149379005087671066636470631792142652413368619295742858408814423834782927863595208064534340320267654781270174425483792139661629536491823239539996321457052492236349925527139526146426159759123013984176829399512261930570412109162849011035248010450562044391882442726909066094879252215900974595402702676030732371579527336316106982789932580475753778681849523909028632229370354271517679804472438222230876037282378615435708373728350750273429711744556335878857227313952464795857388881145092023010542998265216581029870594317397264834267837140706982881188067334234656703608276439699008007996916781324757210873175810698959839610218244019491974681947652762924662855755609677997773216612247852478724094567919054162299029330265597020032303919332123952058914617774569444554412801715218356364028944048231662908210766387738573966578622114566417376074695772030801633942411821495959255438983529571949784132208365361255116601570953229111102280308261897192827325459944982712668021315583887264016221089440011213987466101936909442129363113809458997705085810604923420229764722440965985546850790956940950061176378376811860727927918454019821191278984897085120440930966610705829154116054931063124296818410220080223054067040659383029661694012248379351360808198244030786125719753299711487171499159902068208070478670488535389414094501143614305065579331759660548716981053051701681486862133671166242966142567864147721723787593071166074491973515250019385681658888229207055436306159157295102370860995652029515845739793914606679398253681448556477774867417824226007652627307437103309240471976593440587837185981224661469072852298860752033870478180272560614832272560464866825959504410653928636222087356690214974475300490226049682610509885859835180394844829384448437065589311562905818096365449867716950935720542198353153745598132548619969916371495074045958255392852151586097700856657798175662611686162502260422492321550138246511666333464646026172250547591326680450288893945975480848278675309558109677422745379663584966186040147834978991065458157123386141874770100354259479421243271732180034386393134471484338061102303256813080084969605332858343414072094170174249862052553878967609666296551696489243021997731258819427970695154746726647483214157094086917257003749885612410539247918085798095340051418113639388574691672814406257054022046354962574115992619315198689318554537099109753958126719204325717787507673961273805896753255004827468589259039283688848463017983095558578366536460775940098831768249863481964306895736086685524857648400129494742349337285510056162914273342794189570274197711866503967303341810909481415310621832837914566915769221141269584161063160382838298812826453563793450971373395739410879677337974966835517652838484372035603261303564016893599074353073892756281091117174023526375967904293738482298111402291220220411369109352948986357103761147901279422526833813849034434519773245494103604502810016224704184826040060183904824591888668139957285391410625106499436610241927820634460879857444746103535978564765526432861533374604615595836183811567542875634621383088696084622649219421320107883308551013352651906823118234799577790162631500268659912156706698135826580265243947533415481706701279316168230179549357306672264616876832756950955724182198619029651437031599953313966109720837308061380668245143539746160293110602297477841292432356210929144860477129598517282507095929535713711257065335264885825730294140553588615140837685816671032231378922175428499267649565375821061105720396805776084858619692696377400999285543199598357169732845259197385323158656747104407038903302885445439816420446797950015236654639836137864701380753976278614242708307022620914749959761865220437992274756096643933765432865546667062267549996932480005410698960103758461909184010370876301418699537119535092173953335629845892601892393301944676698948931487488882690535451427727864244450884971745489356289292702271033061488874519724342738322564121334255504640274761139109833438790507847778903270760598214776756715420373931090224195161713326191934431976897023553344818343113159355605198987285054136986930329387525472789394549200035125131299413836720304118799791538359082757012552769391008062925336823960358309006804921365569809434902826146225927045994867007084391450622461183929784623748809947959055461771953401975151879312733847046981990302118081167307840956846462474593876549156707071130834106855000368783193873160619231363770066058299041311485008491904541729752424104892151479117243884149278266529257239847693549752477525106125135435147297855084742014897660187652777854341407242644194937447668897220549859755659722184721380453589853656683719437063007454263722801038643392784415688878299463969325988943486475928044816383186993839477240590965489171276392305325615733744799318599286424905981767657539190411122161377915221958073387436224982430419760875716295576932323515149626455944818162634452012604241129908204852460025551412559957775501544073829890091420454813835781060642484519393377130354951990650799877275473761226236764801267725164404488262271294590642731808766071734157118919200151528006600481257170074207204188118464720301115007341397213212367448512358867894962140283097159071552921037058442476480996742682881190876090374806331596893198562953982003328880082196431386962315595288372967081900076255882643623862608481405111422413075362919936604987210522274479189585734364672878842137637545967257506106597358584974309650894284206991939463900283486480154829281890221976661525206592083065687296077476418074700082488816892628315876108903630698367439269989764471193251764603097227120181432855599193331519205289736456920378009980536836152048608774239821425953369591533204757454758582680651850970760452871094680178283331944374539398951813088636084273232006796536060353966249561706309084907784872943301092849529589833364455003429622618407788781830844473745110966899772233047329001605209736406420114703700047862308060972309393859503773986604711153359790514780414410273299394408743175763823302966429465894594598076875460380257871415968766283452658356235526619441148273839220802288503000718770327154175919752782572277462763876699335872316766918042244135392727602940363815432828498050869679206494697272897604862968613705771069255274735248701388526727295070034285974744687920298537591769149390569615136079386995876007049836400736505677794169848347879112326584264344866707786047386488878127613318806363200056739144569659666332370857694170363597101256384988000330137085095214111076339077223846124790912831095299548618248672853279487678793446350911619936699243534753309106167606427115478696779431921593198200587423189335720931843833840171852493602445685014465376204737538900400929627168449581847659900008650921579142639989615415261198841338833664963667364028932742083301489063873043559160647584283720751877887112067824408806487941117711555771957343155843445813398635878678785854836147772444125261974494269192079274844664888712612170924020931953743919597936815710310521911583649682180143734070672429036843773499869067460649381749585056835926941384745014681894883380797461547621683219069075956432911559302887976379668484448317508137645738572883924168577126799844786314292569034913604514922230731956145857776788875601842007674585226021618733962585588518378168078146492531641230687500914382280197659278414701398635898953196148906128752640068889778172788383261851904681535568083844437507762603995079860644399395089994884105675242961602981026230353398878951243986632304809589565844967416370077755499956319211776810019604031365587040852782718441931931182287088877634682554434405988982617598265110617541152041147078565013305800461834451052575580982357253555634661726738084117941811169209217614707824790561823362188800937383988753551114632139125508851729062670386854751438880188790112466323188616866623873693998530147840456983877380980040119464940503299307444853327451697839741597420426271191037941937737559231997689975091167992875929897348809879196574889593317265554649510558312169700355298006165657057845063348067758130595163291906389848555867045889933176082319988234482240227075119488538859372628757317359277089436775339115573322818426019989756407651330960590733350020537676605265250572405042345632241350235517721010315565478987743856707783390754897983382401624530414935293460804746209125838208934140146055674945816661274579591357645330853135824306103029663765656152105766977005415644117351890793917985454015667010281826027956791174612195037652326040331371148981367315179595381175482575797765975898156870129745792810897136476282531075720603962196224807681872097026742761452964189139294090223213826997971934182855250232644280629709499754739627246415119674748358397030660756602079110175802316817797142360819208215957553242282991980904953054613091895358514177962627956895713220268463269072347527667699778670900375440398268070568170169069537764281299294489950304038812845367585127878213366751912119906616291749236626420127684165670290549947367168329327248444714037753961312249793670739786111104128819037095143880949141061908911022448128820379173518315384703991111377043939820474623908093015723543891592020892432852362884781652634746414380302695232450697004921798666892639707685113597737782302238292412232829123888579442601466630741534415873128183413165546524796386634315196045989738775402221463061201692421312080052401456759715152446046458206263104262350322971435789337928166406863752743250537003361025300920927546091832008484967205856394577758504818523569726388194676777557014607222796058765985272685282890351999657159943742141033944212846489354157460802978833144096591974318885175677659673628890121322873269779344252796541675096472176670794897182229713095870712042584212232397249305949369469215092695418976698188488510627374533260673887504578099230730465667582901443216018331579422670098668362811904505350991168078480682913407146763324962177620716024357464740421123262318116789548790658464694111084942100464550436047446199199814055715468990711844600712592879579588788511129832743567333278071589731889218500868367280158564669950933026567572402501098289529356967052371187783881665413878897977535188650332861861763363160080601705495386929545080671143390164445353496678894533835238101765947196530016983716916993286461553380450149248614966414808126548014397146094930990046528541460822996406254487066297934798090341216019586646764531793459816742182286805910093026433600948134934774774698783162653523040073096016261987761865506483065486691649992238396010069624266337873936704101195044188027414211527880714435444200371346546249195182008872633469673290399247723507118509161531315582688209242086571910069875932438507700774265307012446887475097831267677018031805409071714891575864054213992529242022030807527731747650350816560253328522789048152217393453141219259664888456321443957056543193838138864868589635087375269332956228056113253544319397155552850804051368730048200952665333841013432758952403116282209434786530157108415723322504010890986289273179362370745977161046060985266529726490626524161663774736933120122725329138836536447635734049338043506404584157407080664139676771604075723525594298198989075925584416036758759063328727071597164673477158229549467018932873837013188248980268662329320176778021599449728688978403946082176828056327712218251608187905551925134878736444248536520123639118076579500672139912856203878191131566890642556373928068151398474396948539964900080298431773240705014870095182794381893903682374484982986423125705575756734313733638595547165178075514809353595691106180836505440950841165685222217530672911920581599011451774270957383390783736155847518261464746863560442095438449232986844639549096673635700246841579786468470095454957062414616495953628071761013835578273265354378050614331215905792260802486251328855738783452796519729687704648330649413638252326956290074130105601588093371488254214970264030842199658062246371687466789735363413334987401633274492744927520323141662072050800405068066620855231176320216893637465230428947783279831462865003895079312235596542528475882546887811637784238430010606394046544025310269845242994292300149173595030198831685141090505959557229156611153325853796178925953490431666794720699345367930150790471652411869783447010183843651008418501516858805911106517935391361296822164412335325811121073756038022430390420366144344557140731570490991220338911023425721940208653959975411844726644010891679293611501840044794532592594287778372539849084467618754993295089246359159783516694196112489048763117078466526672969727216159926874688743274337863141656075508303076048530371331881617976371926356912739664189354060090321547525957908661032137882417313856533723210261748140399280936417475877486145544809260466718113970816600191300030932368352221034815808429589763105445508475250589343785866737742182130112724586215915603203935597200194133483244341357905200316872259567016701073278887393989551542973598965205192808138474251870013480165425042888733950821777806110813197094654938586113027968249532499946576102702215972442059060107327758381015152545366037983992734964030538656573019085961921702246425338152357347268960400033585916047232926032215589155021812792766795181320134364837588776554412356652331739382339540273134704564348803085109105145845361805284384334664942380483038957291830899704243438716642363559718181713288847775618018061824652222742941304148482842691425940567704490021599883665901676233954343859332852910679812933479630719497567192531733381952140233590099740547388504899752913340913926167862413440131374369757719560448285974519824195008158284245189192604651062313060271101897781449960990084354535849025390300833558133158967832552717780493804960949302764902158639614040903009487125698804167394829419181500944165156016495040076236567569959551733922144765044616888582068281271515667137670369454389407832121007429151972253210179539541782827260896053074191971753144866300367866421255239252994746820087847622584016726196998292278191902862778215273952994713335333893097827884813212364900228171362062128790301468944943676902264628083246617374440627762454883741363216931583166659995414873098826976173414138257370633565872224730312508805835638295639045079514909686232894094378117367942055529002040546074750415392194763099843525206255304092499766693726927540976156114511450133244054096659355226942618286143766306994463026553360032830079303951436935339200850088214295875797877746729687860771388788169623565069648682834195372531423497340947135949023601564930903542451793742586898887957538027940726059727656026659541772644449019435245204311291725762202192332114050984378903661784079561742647697437168758988819485514673977531830248034215683864947147435648432959510981792438697486313566105022387362027408304555464105606637441602884054963786297778193653665766572181915646256320678043875019747147578342387803867597015965964585329012366369790762425345366831402546269883616974008145826984721327020800667383174502217368132206884675353841964598903838953146981365840770928866850541289140607177601977113053663542861287818580757460538955945983363869097464271776308857535595526305316446590364174825932432260880767123643529412304638873157214448491458886659285372087976451823176933843871601693734964369726399134510283089013934860336380397766971020316623409330639954688930054235405326471476493603586450971980377891119701261930000961585470519697090931327084760163303909433026930128787294713306068463861682504315359678874285971441125403211471585836172654067940382825699880258914287468055303364526326935801731161401070162045439794142604896099858359268512510380571870413133923296113995200307405089288726108168303258974207399041225127140211619802604446066473387990738436449630245751515190280820413618132648629385088631133409885988147586692360997586598639123117677257563440633899798337369687830066128427524074347853598385025296941111061274321413712405322287733477189596559518198901819720805672877646402794792681069710133804843068407126118827387936387370645142166161630875389080205597039862150524368009388681115276643845981161075193389688353911410133774705005781238664670795568521122967322200020597300739479813843905213054387101471299160453400874158119589066744131309610097282384700445924603345887038544836281872927998141654609765893900282298414860070289739412883758039545381602494356276839215669190155998803958585326522543352251314255151002869888261779593806534388902652948844800032521109230345173416293779584205340837902446257985293819443864474008903773819324740628629056469239754164710218039558542253338133310872035510586586494283013740144216123309346670488987866666931847020827012302740552609472517927384682336332213597207452249990928357257138098508026360309210213626169288906187623094520065169160465941063383032292714048519739828912687121779549141920437937729548022742386133866258809052950553762750252779618151104161270317229628750821724371124983562395554740298011361111168486829286502158527675905629102290172928754274053009907408471852203142217202139470074015332422763119422582672988046322787259834833382298836508196038866158735828980969661297271897172889812670830178551620055194167521201427005179810824304058489437162063782272523584063273683197783375087174097979527892663391861111389883922140083279224479374999146307177955652912689206235797339697057359367662226120421674461593839612060756948873683866686224164280424974028013632630639596410944400490594576201128066414434534953986593845014164800886630662745994083043628746329842745717801625172491807635813549281812814704695913922478552548747446042521855486071669612898097171453264529508181501511797612681442595608108360453721246532553924065748525873364140985178557348738590224574419910065289126989916602825513199061704556807096035004710112706314168021163786512282984834214525807688545987684716372000855922884381587261231159862035860166527516555250473721047419145279680670314373726895823820965060568086053004612836941226376741023557151444451347340513743254690240299202505384755264678012615003214357594146582425131929343654324280517959394877947121982039737258793882043356209930924299043269250531869604309562816562376261846033397389549579950937826860711835768542794431865100965538930038490307307463906884142076095355012047181963965165383721854570581757273253583395313973705898646479622215222143159330771720657055432031744943383828276089393478187922876162731021705196054564164553900693496218413564608457178916207645922603600480091007723715042898699953535882085368594330830972437677661094508404631765084301221032005060577515204518819209390858696757397769391169904651018463956576873772053368898469108101919690498734173145086706761485359553467268951396736954747846596942529345128525705413731587147810240882658943111010534436859643435461980118624996781854273983001253358730001260040262579695274390474263598281058494381662322325249036824350867102216751822313346701319433179852935343000567661332350817565764470887658602974838726629055257592623525326645713062763383236123590453023779600925457238982698741875491006171817412630015665706042276440379238599343414810736974951960708170053006339661171321818355260471043066765613250556668062204638753173900767594994090874739391936624107730278761815035721221287053404304114804800227735374197312894464606725189553374540443532999969130809468474530081202718572131944513941868132463553341698668147900280190133506702477649671059519333905880630164921430512051649416073349308625290815517283068623310502000475329336459426617051491413323843606298104024743511859768089785401655790956280944293091219650469419935478858171481436210343484403346346036303585462356689982252498163181952915709375863316031494500859079329115546432179367199779399398487421534936741420807446769757751186434823875990519858043205672666999834993752841115479382058157924874972577907992171822278788222864514172674641308290820904448599930658374517539321901638477949945820182200010117380268962499282588738940821375195827693795384361712958482655823988654218790224678087306523966349111345478529837435926990620957579002902827541187797554439994604654428292177755613994840412006249011623850138042444199788945242388382307815592197726854841166106823760949045013937851006402538472274732789382786354917195534040508125443364735501976141558813782556559442533370272521348915308980070922813389001562766959353535136685676891521652966995126990878572097237611927333241392185804479285955449860256176141735017923817352019871480678817288976950601909925802232687452819596467435684604577248870950157428487304103824387390015674893683658622600234438110279270945798752313904888649436356548697191532077446026822144397940968900977898536285429148684690820570894723544243285916360991216207470630782297675354712764643785529126164078317520815250798891183955995976361906753979204292153254833184510427006317233124920404678619453862310115083656907561516815787397590210277608219590454799795628111407559500770339314398955651529332060738017589850920660533205720233393896131223795178993165208074551086170528923313950171975101844267193775007179137912063709567488874158217151284348311171154004210260409472020875733433729178606532492683575063178978529145953917742768699137780653167596459070322477534297601648831187916243895397102359075597867937816832067718247806846112820936707686045077726734944006392355154042004521036719145398466154487171527201885305858476201095087761841938572346836161170921088660581642210420449877343102073299459026867966669239350921675145402068995214457139991359844734032553475942093014098030757922411250709601429270254691784468086297531828184886539077051723599806271594871248425642113940468343338360234656548139144773446394206458762944591618980240269217438968981507503325282704902201783248380064407982646415479029319293165738233572541987710295251552485809997598231831497897060261732426466108032526842578621033056520820023316586107627982692534152840676209961220539784429771973241120399483663527319360721866989918669333715118040017679016173018524685166310572988916223288764461141046362530509138355327114809217089219838245958128033233729327931088990579041707545480760218687839546537945504211618571711086768451348067092245896987285997182341115351525450086626536238765432776239590268519264426589114515246906647709563386569248934665383479762454451531519677971345246177821195499868966809072415366910185879090902636071503287559010781341660381340989112299626435912909802846077802799115766419911706751409042242072858109666440475547731731479555034024493673840071265964724222884918224029997142274502139485248060141537214513208770660667514219017498379576964157934607699833774800304153395110447004347029245332695347773929356951816800700766241535634091306254572388405049380103161685279670107347844768598215088500595287921714945633919893876477534471844127373347544757882232185431583840184331347558065850659681917793314611777257099164514373133365497880769757182961887051182672053113460367048702272918971330804251205994682240221918933659468004021627491289676396281927264499089096088461885603682068137143120702318460291400304032316589746056259583747211494504215722117824699608048657676793005143486020647393803242567421964889818660794864924819336691098972398526201846452996421438115087335832064953074820049847029454734568435919092416308117778510162091172918225085487644222509007851944735955480927379431661845820501466428646643633760164105383934427139258607946006956691381156626683633485666705095517373703808834342107395177654146450625629938647880600717282972087371969381168286008289508726164466879050013635434853648451687942632043668065322608543247815664321112844571135750380933468096084064436176936134345765360934953419339852546388214268325872765546409788983020363308330462928612728515998065488708296266348986827172658221623000177228565301326507538849159327327858749909447627437966845162337866344045168341437897044245165517886563668763658713374636446103128978151449625605357776145960363755801305664231198155771153319809491405063295298966518365109817249866444251277636833738496814674406581769770369546508081619277643638275825838540401782734782572323732877771379557611082791118803125359240844140587308450528433722975590866449685203026641324186523801737891011994980759144691245356623460018188130288740597157410438964747712431158068696976431080199126557881387758644157617218814663327270002626012177091349270371171699863293591650813668231044823108792632549305796432372944862632066668396787570505188358168144176906488508878577764095731849904786726134353958959621707425958709009124158062368509794841234006569598889539929041862350255967312184907833366698893067417444149185651507299547117637198546117300392138670465540387215617603343237099960529798569919302503982216664532767033825044648273558319742054994301564843595361916031232603959428436686082628459502282682798955291870582525806747731813908324328489636436801915627094153839698499550436207103879214607966881048722220939010191025730709726270257029724467532355785103153222562373910094879803182429426201529537648572640701011679836208572850920980728770764244863795681034441357087117401240362991739383405689691987446773209073346754663699231887987842133975731248465055124806718718064389545106163743427731305857848731728430291910568119915537271928679944524113090657074251131320051927156679545998256247609568615516561758115233235284569589386098811675654831969261157804519332651790518233107446987410882115214779390763730297949041467594546581928101405792286107552699848578608762291974491417744916971074753064205845074932984894351818138786618653468381902758004168159599934592912446722461677022025902003049526290287083047331681694197530577201371097993780191538359368714364719840318212304144814354584633575153337190394681553121105330749173124006097298882943115375728626641864864233477012337038197280414582155587022234145017666942972588938857363409785048091043254999991600401806965512073958088078290254628567865372224787866956602636363731893377920387786403251994868696505979966119907234664144951156740683486545892683520329988600347408627650764447603359807052301366156407576496419233718359118866783908123535953895757868229507470400414441444069498419837780373336487036103225023243843869244250210876419904905410636178496053164174873045958259107473574178691702258572612393193895894714648946885491432858995318864203034070639662977572627942654872987574346428794424832123399437956075645533927205575440128935487147899989217886152815768901925602764158932334128482460422066705891316879171360298752720866704485116118691761410447196155356596470211854988181174310005071637819084763367325838900462539656848544074395184884500145165241963439727527133415601031022825881901464109049573835289046667424682121753520300159249665513250129979694230361758629356543880958713184385746062577143195803275415334962533059000924876801066988072336554540908954744855662564511064489263020304434904438548740740249604413122566396932774963202886877941570753640496277120981859628275185216166116710824663478232166749466859300956942255534517224395995929356934911245296840198316364967367412534920490527588245774016298528439648116907576342046126758114075048477062859294495448081374016084550694287364639583249886478900927119901986551297988120781523429461413370174191722775177793295175739871522220070590242852226643987517159515778353649648781271423073812574009641576326088143012726967588588793139306390319800551571633054284357070657493765884393141100121408201664541093306167334540035984202389400882007424669410202568977078138351302553218733452404222471641931419742991371854379402838063342760738226566104916956170696139509770362907752932292646060272692924211665718995384320384901566343573826611908050073681637548997574170286828898874764703727090556640090864531635104290185862135520642902705270878426594922481010452478193802234284259566100870750481821175924834235281113557113138906071925977342152431964497195862468622408750721395903705070586114502026213034396390715905865230496228207012734246504706765860375007116616118822961305735303721899152951818339971605031340410408405845248757356529450056447779286917715345951494536169177000800543666609979866372919163344899772242071322179171081899196428921441371467315984842736407808014253573629597642949423678661879616850521605455014399807122500331486348247783690155392071839772975324536785428534040437932126584442161895822911393405514740750196841476973687730747648740232144225998547793449485874758903769849564534624552346117086185086466298890611250365617487918127314070343791692003773546194375106175550169282833068153297526265584814489472516802259924097670055418957421585292137330959082104605688521141907044627504652470373962156011309937898914422656561245907076514285602154946552096887851630652018425522449409874023868799320577804448414727513983275892317548789589367365021507721783042436808147556014239089753450517181403881948621014474250702606295651183300673589772055426354072365621568894877217772515216658388289019171935936671341100940068119139028325684313328088374315359138038940549626757992453803286819179851249388921912908219038866897376983802302582619231091039044421088192922553629908005378589642698816180828168375944896716985711623354367396170448866288731890215577045756917274508730810251934535365168564239053670058067874451017339285104969121410101711206146419513189493202841955105761200903016799609751885017094306216204372843397991198975279292775753936491354927270186609226773482352199420025611061199257888743789848225854551452359232016658190749607958319943618351229186403220506102387607882848646155333129305274260344476116300002518188314948621566610031154066271630597197836125270383773659822810599217927443142290170096648578752116971030785840315115590018565316134166231429464798591946283458022771357642620208890357184947381686328312600626096627356701592940100553532617981279510094505725116842893580799760466070589357661736707622644522183715660265599864524500426006182045530135199462558107119659061035390466533482527671386991375177011117965605177316388466572734632621877836524161198169677249064996408217366868002861034762582323618043658873163529821155437756365183246683605227397343854266418326405261910579817471272382963719578828874952833152822297368367994526185445078980981657774628471497624499668146678865985216837115886341758159667499772305654034194581381006144728304173218291820815794036238273324645681718704389460002789687009469671988214778784777687619471150355249856787798875664491287072381081474727150738468594246518838377891527382519765129872886550942579761676113879627546375112804595526234214312976955214957233029695041459610989499447053535859436776292745516445577750886953809123449639372245720717739208486829531298758143158246432298209552598511385682264858219475537756797934399529645425589942337313908766608209214928159574034212771224864193422336535356295662169936422122926346009278434893007426665340693953871410442077470492237063821524552581289015872872175926046350394417313027327280106445214047613561275095204947447352294956856336410513737620200751491094860406337786718778674924895971249845577299678508469028214923093862495740502680212707672174804004838729029967490306252883597789128510961640149739216699599267224998931989382749627318409250336244847037220306832220748997190646637410577147813361005834412127289802821448343317545067519000743688782586060541447593901916210879762384788170709808827601662352661703103150867710833576601592125575569831705006528289991014915898850311796694066152131426826740239409531836186678700093468350684419071176575021298595961369794628870031279827546759261054027456064692947232270283831769359328347698702446290676749147290016980625223953370644533143045839294619591366658098849359139188515733547844266462678376004384736870896268141402983523498980999514336376881684331331799152945312746516558362392001034030463290024246542033666969691390717242257026318402726645629021621524163681250509747079422707757977137619617907749824754184760332639365846212362605887509137823720037868856421205814370160071520014791765974820137450602489870276152556505448554032917972196461201232339372847975935346801501231921556650917446529621389649105519793307500570730561175387186624602950854762859244805615564362208954035284515966280015125567132000253612137917252120089207705121977151589373841181830109358387705638287785642909347760479944728556812164243240014966243534727706728317676878756212029597524296571588479184590911625517866111358828785637838003646006350087441855453976488727076504641981399736098049446782787548177838883720115464223884387664913345789501549443519786171827273689479958853025730875516033277878268929281495138472002496620775494562729910518490847471690000886539209013456790793501229961865834534149901951494961354937535893367744352989679535824125758996589398335691059256482634961353333811653448449446371682999318323541592625157310019855099490275433078568802308287507797329340785811241114148719417530361069644931768894586461792439343812852856737854594736963723513534376312192026590874394638600157496372457280927513784897882687828124471804962514556565912974825652394497589007448166021081363706504108043056598610893302669618699586940473952089321513977821161314411116220295088414937910889397248721991619240079702395281719169088168658519146031553627443654633207431859762522457557633964666299743069202604467435709567088754990846255656643213165718086277922969552682261715940492820652696436646465109280489139953125240925931669708415361271427428146313659759657956919218784429211610171100837471678769789180323139319005391219582285795901451683512900682783682352501513137634511531327295502974874525004760484386388453818689022405803331026545351641183697606547496610928669604237381305411280763474931144133071659419402170887440810989651526422862041321366624959436622064561662980999327551381090659951849206162216933001706585308863153176235924991405927925869395037409519297973344299040584923074599713947622811923681425657966166545939664325076888566304258659525909341168056435863061755553162408191555100021202510865010262642216912399910548235231576726345958019691059994802339215716019955513387395904229198355849904254014051585865861777571446949230587755050899625410618895524004068089571671220422642779504386795005107677498592559862754104622372991139926519304414921261684664559041692940366784991239868533253567667063530862998315490380360078280431613297305594464513621629619719490115849380913457160521994080500482292413872169400332720255106657689548292288558741572690202969596023864982921765974439345758811276346308584873642450495342845119459463999675016299074683195295746859782548644490079180120591895108461426041083584875956598394225922200810869395921211397790984243079940846656130566334090815137035738092705374802885261554170864746226845014344851626143808859447146223808672740862260041377026585024419630330063248624239267168958623293795459822461244133455880720257386005251631051770937763342644645181645896997739692357732662358516457253513085567609035206980318380811448998225230088047525870179824002206554510983604758093164649304559971698300691477853895885734432969611847987878115592947999400784655895017841044621446269835112856071255049197789555196431965824711471965515241115362549710420181136078100209488466032763594995997941159614080017142102514776364234388140394358525902758469393048351504120759409825556753019650655277620886624007164195053016935485018676998495656946744487496367287925586489648892997220950152803024979714615992503638619682365234302660694956634301980718621727214432554702905659916339259535033068525923962256235397370212841635056383859039860936505351796928832914541648348675312759645899830318070487518594463570455474665638235109022327894028747072450923460389285989431137114907410266154207693964540793933707751290373367533384601807066689211581186412452801184090589014449089801852618156355524271557080719798065352717049011224665913287371375755445803898426307146781353524039958941104427013177422526574557344828941458036417775499821089692053656581796434699945259286715583030638942004963773219917698338019151018177140819734730484754814199485286879193011963046839855606879271033400489294641193365825519695398065281318483028586990372674772845210895419564163203440792520654320066776939214662359636970187060450911408420990250161149868223632349317939409788503743466500126290004169057749889065824124878704041501413685752167181713823788564994463947441437867433880088094375653145604545536044909378113088563197709415967458551921111640750068155345108961719785711664339472936112369629177673067346317366142847811909777146000883779123024380721203483330860210739278518701899223082056271876547484927627092726066757914206714033805526827978816242497704991238337745036015832847043575885579644047936675531614769748604518932934224949320946194863766994456930040746149088955404859339384068377229016859055743674242092468218490305973878738139982886515533577186596449694493310175484411714418929717303079189832750887127933206109652781977168805724690694757168020299968320934521413777325509928733234746839180406973432425420566630904845411434508260936326449532412060465259428110520461177283122663456496636462898295396540540794044995427349892530135581893184052551986776440357007047904025120403950388898325759703483375754774375702320908411933379361943987639144465313012511110964851820034728056900152491967374220051181464246654448549361602696448250689976654695393423673966223514358710116579956026398872019304319446915056651219158392396393121637319913938748881663698247394377405955343436883088195712930878390654879229972238614095730211461438794741001108517529146583643097877642941857907376129751233622586112688619785178105910783365004483596067781844540102588775882400598527729276607696181617580755913231438166080992542504094247050476584278994941232432420355293648336340948236681264455653535034407730811865301641898110428643368090335355177889548096312419298631841949900628164971559492455866944561950107816178401269855486310977257342080711149307094477693353377016709317919535279394926814977474899330194756595687859052964141280513560791329636419837214507831912161086837174299665937140670683046814879693381517540265783415791137004202153407249377783194278758123371179811522114534169923184459545961350080711407706996683245669886290356877277649894626355539009740233789728022069003312996591318369021592203016641909268130006793121167359484932579580446484233602511061274978323071061453593168255753501161811282185979140132502629635943954300820083454245419232700198329703596983917425178070865920789467396500239495745980184374019398306822207684825958514737209188277901216042158399809533863956769445248478116758986683073448489048854101733151744675923480370604139241842525559703740556195411620017987317601804165309239708644756425707387616789407439032844783708866378633913435978228915910512772863117500801777985034763746032544101308011510270738243779695119630544225087822669650210949859134519734543000663744987905959410065594076405765431363093939249961013378105291804160608774768780100324216905517073203433757371857669889463346828090731570958273211203447993021206022553687272444229343588896979447472798053452391332538424287273729511106927731151233020921945584463310945588245850714298537625513224707405649605311023011004412917768993056096924858237370534021186175056366370337433923453127349274579894425413443985758558773650435955608834062896338911822831297345510444257280931328342102628296747865103806504708176728779526263412868459089515226612544315903647944276152333283246659556094442916458574882519703042222823028689341562072301859454074331076695556030263591869946954692202006346011574702890865246130490146548268132353827215946935826706532291017880917714647407006619032617897509039735189778526485427334600110879439816520427877119489291532928497066743703354719626808716908914135013813127201123382011431410450913653089615562867755048439686732742046271466857623297492768947008990522111390711194088312213687023673073223052176536231055833278537880253492492139286623682325239376229433583066434152631261260616228504054723596663031263986120659619177370704133417442017054236437576584449993647379277615356888793222070742654514617961704842158538288313305598375353655107354229138960452523981707968583950006486004205851017381767617725767888072802747502396216199037782935509761367471999676120945847078621427195465228854455528560967483318325162328032808124163218727527653071997076912877800040863858068925255680701363077224220045225052569032178326058606714309021754715398290920640440457456243608475506522948770833652825410422591743440077619448428680569438421235587927187329498752421579382304615801010326431813517824550410944650917463059443891764125454334508017248807562961658723488155322587249767980914749673011250779721683181803566435556641569141432461654111207323586159160722007979666837473587400580085965160976787838774665822373248322902794758679113440212683518750846233269808413821547437872198192413980097787933167736772002460549880018444703264421453738438045234161762330211324589916593694311205900600226033050932600007409148717765101980990359328655760444202205617767018789682657610018776095794695861121230239318714424495692544865386226591315468825273681409870872460194634755856729080281109070154426206933202591658865886411727058229267256368388326691826622209806594853981998297975078366676035664546665843328734582448265412408740440636491247429212768685810055414185839709075128640287450567947074560266973570945468995792851423821169107940578799800799368194192601051388410694270047543098673215873823700351413626486664989455969885344877522551659721506001798666233384290679756431628120720067163892786948286814621070801062889898086092064982863387529869733150727257852428675796660623272921985871281155377673887941578336914905777860318281142003877050854509971819794698811172200034928936688270722694299166471831465440129620122645806658613002830864201568372524092271155975205483577278795998795389033710648455779653966441455693343035107848043998669885359082125463314521043685200812117135836825827716065749230662977452787801643407038487012350989030542207917386446297358230839064680218761878847792653330727371816885701748815301050663497628514708317170059632672470969343109089652112068706792541360204296641487957025716706991027809030014909404970970836666756213459816649508244663456055368699956551899732517153781115872920188587171402827968072590658596660487607838253763201038811504300278948925735380104626123175129471937226375019446962322767662146350421675148646763931041436056403969380367945899165797377922466445512760363512626113440675407358810334225118018529607141529718599388394727430440427333339031355171661400661267235068125863899594063171470346580944876420139799097539282111303768307376289141051122979123920164815188973174159750523492555060505234938873014557140867979416274533412713782651348956091363194112848666229806375029707958722399566171799341381519628906379779371062280153617074579515704486354561334324609874916800544315005852218678933569237357741472510562342400154919893217592431066879869951186870971473954934337048527818638455376744025083284002244667876188719043960374867089777574274945513932645295109017469961927352273856021456807208775525969405045607963616797997071683417829097068304791941534892528193227119973044743625779689889768363067643912600899108223669423685416223537658118033604085334804459082626265619571858515652742381330723110388160672051541632758585381318864605565534869178988841045964861421716894778844784046642424199179509763872047066581855761718279345010315362321397059879699121462298841176382637159131050294168060480986038009017238358163018803013298228429257809415955882199541691691388528885172152979109864272349499727878185866641210135982182275257604178362988559654053705363070170217615168767435684473208297940342221366346436202753241104066366964602323448169061489951923578665838050267233817949849052070778345857324061357246819147551927817304654098040276271400750107307688376633981225594563748207462404221442429313410850880807349492063406140693053843545937013234910286329315784529390036074704213831787694708169164104594459417948693496094146131133505112386416337039410490037671061125766107522226559263324608937941644052097797514728940397465080207729617434314303482088243343866843389186380210824136389357354350720770851960050303704869712059262512390913336198897180737756882781914815418434204270483455572968396170218380320469389468475346267112045728731311088569627566547750758155776466529687487028782700238968781011949169849045799184073148219960966198507605717731144874274512412573740997793300702441370871679302280418932514845461328984900799356050110450714044619939674914766134360396214796656018495916910533328030763002380887882233718137287918169031155966806761518559385086788668538108275102028645047653780898432188268404215805489965093379672434713452524280903398615349677516137623987789109640164069231692203152333024354193056756822762476372710990106492110159355965236312182775106068674134807334505405518877759707765421218309517762711080005324504246011459639019032818124738472681686470811162974658669409409065964343344989876964139174806128368553414618361400679778621153251069830791352417719542325213823574296294270678915124424355901055402532324615516882674939808743890613070377772331584236327007549132300632149215052470774819021219704778749980502584997274921794335003162033562869467518124708492596014966696981703290400195844084339149064039407685349706281920517307892043367904194792178029935478372948462399484375390162459601792325184726975167723664773460882239446608693197711411625639371796661465447826148063011623285424867182735240617666357787947327290780765950567219164668216823172460474798486282942210260680542906092889759130680361504574880749263010549577251599876220991382713167500473957332801824671621648681219192835576196316702977147720507301500808592349359563901614009830137536935965965299179840871941149980365147730859673840102438576295266594306168042626278313823770396511055791655890402351503153430344882721123174237049477403023270639625087738550138236581084078627375625730943993530223225239858938714022768216516295388559753190526011587126774337782624996108985119773118458732357278336218645532607446217418297694736365927689210205747942781435957411207149696663606468322893055493866955914586218666350028512609335218087915424275592194320178466934765824583607145425492437436701517625631468089128857848150785279644143626280655656607707886519214334541943527289531073424327186945654025180853951187475203411099245198527087067965590323838934260386525789986656524937016907230338350972349668905152548548867067333684320260765721965580451150992184903868582837999570074045791139817521441352229958249246731779611808033140101874225530689473778034855777102555218931856954277229603258525973415404011023013819912640653754355409162661793208947019106275625088936635425054227390319957533925173698523346573735034002346335595936899018139503556238742351588644060507528905128525968416972938797044531545670013330597252586361651258971448575338882023998983498403462718626625270879541231283199877537554625479370714390962994793927297376438937599428583824459477237662155971386874494210562690824245862526819749546883298257844277044857407514748956192202264011634017867393474943378495419241002870892922130418469397780931751767683067850914505318743529024787958660317974616778592664549132499067852684677280847080705855970610606676966289984222766110566137840131156238356763415540256529010661929564582721229156327699041592836546383934344053905758221733835706565063585325479290677214359998011347021742365496329056278776681190927319661732680210689628991287048211779316676184999635236731880902110958257954780831954222794139926789181844250234100882971189786510022930247288247201565326113628486186304362199572690161792229323861227616863895654371001536439394190956046063201895248376499316942124402295117250149253180937273547544787924532502514969847639552865891522394352050592189573729843849373995958200465067120687979092931421771526088011553056163054281163352087955733335275811377191138113350834993848784022991964791626734499658524062669002916203856613461184599140190914309474769712762180771009579422380751384231829535019876292169166812679797928177196825305434164244595290794523955552232982657257994002736369211532602487015817617560475347872359306599090751974648420993383843678598820090636561082017692701777182782893868348588444903644140591130513005856006377825319785151898806470760611002213815802295058274965216145489280555668011848590913223777437989653744430473909500730550318929935935614351153383564369890055735348782766344053602361298213595151833432179716903428314567937663090063680939756082421569172018792626624990711247774724134550755109976613536990823318864146640489539827731853879839607151475841827901654705757330095053416276809871410276787739855094739549186144273163324696865955119975466998663682727812618223559335773498963251604331258012513155536517030885867210932495105343608391032430543360251279540296535742088188738083303487637641099996845489714687527715033348411082518778901690922591656621550419271413578898148383206476590775066538235561506106463693574739570688420637095026946195821125264826249666711796978399355515880667499748083136453216266674854302364790264088444091445302332021845756842631197627302189060065842022840980603826110185974937884749009211123756085397075064047028906718424161673143196699883619170672022107886992732684946126862970130802597900972262998797385984274239947661278015497738783096282880305500581415471729217470610539567630992495120764029536383026835363823894997241480859700564014649167825052534781782687857542236263513110226924861426163743638582413195283914294264074380007506586593057211993623157861601072990484525494071423810306375927088679910574419779191013726113063786142269173144291148070148999277394473489733555707965377977359970874096671546817323811319377323473276774174719895253607198704402940569617754647163230630393865675264805303550784436013277074393407348419533186109328724456778204289207840987966614214489257116203762242714685571316876976124527639201619124750034162406404769061554478150526780865733469696339481013512771037137266653461842433882273887532489068947033611723540323375160016297373679374211823233284254750833343513541359263017820924064723124110299026361730248132243604404054530665236544217964035510929126949594375594867596194066964728345223385666251449533760221352572926335813320083319061625677400113692806117314380884780764235300471316008552237238240326490440045527145653112233961163429949864191144582652798644906064322312978417818153870661761779850784564042526735948362562174110911745172112726905854832178567411363851211455873612710620227658645546330884707675609766273646903654779868411838434853552232549630847201796073530806696281333613963169786335785570188590058655592558840127053601890718939678776969210565232592968343473993165842549316145849862470591120807978414026475167805102606701658630938544618098479702176153120221084596926546220779988546818950913586795138455539453943151461222988510387664588518333909362211337877063045129207931148510591345662098048064310610069478057589766837007808121981011290749798816854982070918037772019757175065871053832470024855054976477005903096430431868301848257174114396949659716276104038331227863312228570115648553420966532762198805058777752797465344618033766094884617688991303195404333561200346834674436353101872623852889628646685610038075388145325781506835465344853444927705187422924585112788406539755328283066445831802805971387956259388460802230017345163524781843402359612081021884368597492320866221802304907164722568743474851702831884504550983684038880916784467967580442752667964483833633437118873237162995084001872515416926326707905990371692581373540772591965922035126131760075155619844504584137350842437319092030366650185103882391314334729524930223069642507163168975448704727163788304452060541940203339225486522176706580606542821662589191417126612699670777042929200269375927277599865842606957534187119142300095172473433994498403030045129353356899475996729520315159237601593214099331772174156092815109056519644085115991158655035466201685747963792756677508196318673696862597430432893486835924903157513832389469708918333879184374677403679299433672816133671417788477586875844622182118565138819079103687428082881387370504637836513350114931978941137582038770290601748092455100399892032286896455214534310145920355773258230897114593497402993168027464078981193763848403897264048771513387638865564912703961055214652496965788992026293796664024508870568205482618178689954227484767524866269164701002132204476521937321879624935589116778785173156158760823978598722057667678635133177087804360474773214887232029622414982414589970218297566039963723600023704532255242476923073265109365362360641104273263834436346292137206284833371338037876672989996927476420910240283385628452877040574376709985018056175751656571930983699485127834921326517135629065728181537038120331627227770588245734245781119662161953706941712094528784287052154443620488566551057175061729907637012289503607206728411618210292064338876138986674932370913601755404347611709478170501261134718616308644346822801005527329593654067702603458644556075032671863982680143582038923739673389423265655441635862041595731355044178760112356780395383458906437372906672178267569688893796693272713761420467005830529564469435208607892273148375640268405378686394517408834411804353804149280891909828140329356135175849914860745887479499055832564633022928780513324526954622764710024061430700387645770936183347857653030990538370282682807314833036178057323334740751060725999716078673065127769026508893266972052570446723022218561072481111495587338382937459529598260079547195498597893990779001880335131325967477053327579068858230773825212121179227153988026821076199364226732730903110263969811455435443051397055639894381412346474931251392750429316989129195777866743145440330203718655553624212078359144361758716725460376580034828175885558373786354709844122736614380388030321149549477583581718108782956611335345827314012987238486900737121089308873581773283231791233792888830103494503590753121979635746402526549916938847866677718737919295677772166143059390607726214655348971679342432618019047169555002573689115834293043947106345953534860864619982322040940203470126378462130471145921862658078872892762355762081484607634033819610681315171986807587516776171009184943866462182326998434618609569898366632521021337597576264560880062453290172234507769326289757237847117021283864910362902022415702526006979648962690882158052255548104916640952446464408963373060050140798300528520170036229943273675424781953636833372868524674102160186123567044750442615703381632622942026797898444915700752460410839642639905865959849249918591917286384125835297897582110190380746149872581085355692713917223369749728736425034574184544024568452398914045116854353617174195286482761334969622019281302279095403674311618043261750345012542824501031690449537586596588673174274689055983169314960138364636025994877843609501212634620058771316207551334039096309159274573660379905424922884786523754379433705690281985230174387183194164544254964210852654343288869670287836127313367987834284046381406495988798728021149831852791270531784619762275991718072620097450381249269724978376046136113283087353952393176825097065187411214958675172067177036124235510938264006470096415047140762167944393588592668258929335379602398214218977836773790929949515406101324040740048264051445655170718803920872913244440742487963434400759295735245664198600084242131231913356849109915301103424180479615551470148196124245510431901412529923396345509020052667802236727037037235852275098915530646806104418663672194307703665358979047324799657717654548598593438818497709765976555598155776367122754113306690488439968509402441625539248255273531481815810169686019477589709940994364079148855210625384477237265017232802668583625426392991491900986882265469068152839294625370005197588590282697813496800580950606495983929475073948566208144326771235580199211835662812216723434285503835702134468376447555871974427823824019304170863105544853586269372557611333070414326032998818182120632027483435510151936612916128050988071404170095497876036739515282071962600634791691854676859233770931103945536614727331060235716398737143587877643830232360666516529737232566767542550106266023350628407450162265494496464901650752027137555945492228566644085229543704300015599507648920968332436408693203260349246835983818910681605485817323601678430456697928325308933422707104024843265974374593946240039549476928625526983139548815792001474622246615624738727102312118735988584575492086546683397499444294797905548708994002801721532520611613639008822732620698578012439870512632027142314456650094112369066986016032130921912756571466830027187270213741870798040371201041336907738652757087157460466278946601933556791496011502195049483425252055392824157105620149905117211907901354463250421278629794644717673038991523193798144150603282056575554833900971260069733898989456012786652602165083006987400564149231473820563299990238272519340564350391834152717764892551305684868297234035712046202002325222135551051100217878080014634625798905626949134888936265869610330804036506199206774608695763668397818355159028913567820526223227185341566535916930114158443780098471063106817848409241564197457808121867449524237108006594580983462599175044025084584004142533157030043061410338442093194667137821026398949162201792266459281742596892687332013844555137015522083558916421807093365139972849680443336348361969361040898693454572917718697770857318704375490432911970307467493656876278910339272024365848257261696345596732101856082696337469805800833662792880454790304055075768540380048547906349010079731756189882227196369914235538229608646391598355523468739371460614495193441648738316080911286905917183345340288254940890578946320213663149058858809464870841033796822589226809329133495445672931185011188200687902203520577019633748053627786738536180577497592269934834366878934515893966982188015086760490584708775519599885381021066027953905112954482300511243842594168443807012074076995050375600352890035702552240085090977466343580583953582769698925828838003469816650978013878783409996452078196793979084294418858386616295970367563183647814130864304018379394592301908966823307881391487938269613757643531318811590041196976116486608046812828306256146349498361115598993810756467240508719899303223059434659215177166493119589535862317682605275943818765187933428270762975401893831107867714286126925989560276269277487422693719426351842930384985746012922251787070642587075089534856063192322832145465153336780108768001288187213842985020281426720102009608017675784798699443732290378354912059019394693883953455063455262419022359807575478032370285092495215240034925330478952910665569837702654837289922505175725625982572633128195982085587735587560134252318594172454420661438500544588200292755555595185697320005810755422894670316243350834573516051786364730126617772227565030283774052360453262007284928240516494236956303652542904821294424519265349161969230784850029314552071237407267591959749938905704464959339216629620633502957557369244832119928725842755776208404490409731596120797074320033097673442275748325696768634856772783693654808713831235393984223083148655531450287904809755649286990148710944233630489435086347701908989047760379545409522293772185060654528956036146138064503119629467576357014751412550566570700073714579625522801564101333735345138108384672562256958257050395822642002997410551993823682807245921646396338591238983659701763210533394099121364432379757161008364325127338674199161568340264085706385064686105281659532672608818374031537650431857795123833617194075413317516356398466202445053016005131108532576076546822419717028669516478788582862450161381472884804595208765963871529937867132762834538714305350638590269466159042879269194510297700047202582106911391566715446086855968098896634244073007665135281232320835772694629359919838268338950825295652744567494963540153445279340236847903131191082693199699576333188351587824823676548899346285936480154826667424977384930837074679939951512191480580896251523924780706232508132514140552414046219147887718316702516124745299261309864654866431785471636310658618185569658099572541333559558009320897725096080581233406818346611995276175157799847923472886185552570420437383383380545996906279644861452431542320650688149192254514248890270187014592285823235858049033867023293348077404709501401779306570225902902565536234466647566872741105562330008447815783972648967873401507657786272264917873292606111961072704467735833123980982846730772579315927839803896151978034938814631953268004777654974155950894033902448924133705038975115087368733508591285713108648959161796668897496439304679209260840742557742841428600414312912582578162733939116085215676165538178711710298616219434789987736208738536476335257137420833586354808485299191631613219644797394170857914136235394746732194027842086881803000221667190087431351262137184138039067048999836818394619420573547835107119410207073079186154481173680030937774783573262324789637670483829800202705040240477401001462626781178478236759889734129834600622877265319803972479947016188448567313559285220698739181770521541599487184984081834280584330624034854813261320792642096897543833446027019944584246546366564679801485731930517865203362351409078092861877669405252550343653702560989293830025785841606706776216397310336407367511952153407678124161512253541058332675539914755268457486937678868785255792473406771348522033430851383114815004706951869065726870906692832675576316121327992533468870994355535064460417410446855989918420650698477916217356993395530310653898607415325617800637723046701650206479150982484715269272712425249935286955293197418097069029643805496795899601740028240180240799184916203269808547004929195464204489631627423149123078163326832468566922395273290695117759340509168444497992372690726786731302796032292769313589487052293971760950324780820162569641946842355241162158254962095237560991410662824687580223316095521202541748113673992659186522082193014075018752829433237823051784021578939573227708221166817042553921537675897160923338682767948845183125655356436694437032156714577410817218138581133131924607226085945526384271757990059732870890030541204978602023475131618115059110739915207749514672643420574513687957581862131134294595338116813572391673439000608790555901222320927135658077208738973559333152535029344643420820302252854197200911847422914288124279173368910534022399434310081205733622502809049865792126601926685368306716398233904557237547697875814860153859655190790103137687244781634217429217333249756769900124630483157979748833223292822093672701021087004629803421364888790229379810352630632237472850496050107946213746404186366346865852767928715255977865353135540395655495346878802998192954779029705280726101424706162285157129624156460477192956769634609403211852706413155348655240795558876168741881022925763148189461254755587373942324233877323180078374990244869918499433599408022304873930499350450255564754508153729455009762925017611951364447882437419432801745312841679409680121237012108205561223418697090222727354256296620080615036649054324277722422685902952370929137916858428602487430614424013173133653849300819780739387429461353763318670183018640924259053476822924791843877036750707598287910507937263368811728185376256027571794886052719009877924431395963330921129446629998822278863960510294814074954345042264803787384576502940569742442694960901296209324408656947015442758554883171155383125360745271665211514567965665055643026553681503912597660851663285595639900780285964478216345975103931410020833770785416859837342256429217639944369051536246666418754953774888504486995597286613658977504626471300994322592308071319961078230468205474405029479931055173254597567775601553945812189294169499635662836748225216325487922768604071134102350082240044665984867499282429941909812035493903812603605185254848493203874077593807442048647770932583496627766109699994320979777754660810576380207705842447871833930879580295339854262574711193707108657617071526029669918976269577823956937787059268636200269233365761748370082301558746782954945544985809854188893902301552588537148425390413378025408105504247514158535336700105019826998416932710497998460807311247553465763356183409069786724014829099699214580201664529517291355942305756673439485093698639738637695629633579706474531852541953416891711193221458376966333584972765390612892375752436229703149814424936916106581158427114877677141073489980472016963046498190288756959699617847406295010518733041797724141549249374667817383623525214118498066343882602599959750810546263003138036135793284987541262830393834012182285956223896698894164834113854262106593134856195803393789083803333695090796924117816003991493317055806438730854379277582342648948380681652292106241229649348779436617860855930334797373987012336241487142558113873436164079717200409637236244008142353150491196745524495503419465066942640574813903775921020999206917405318176369300875524193149758171662736332508004032516039334157513518025566189393719062449587726688879505434786231645176915358596100082868139839904883141958913805162638851661732819136771522621194210572262380503797313005328017136782362298072643351638286506840454930559282715167627581564741340819668066792682378361768249979563423698597676604340088857516920339092326802999618211966968294630291030425076322926526124009775439631068880107455717701759528939305088296973723238812098250399078628527263785140819437015909088374901633251705993340815721507384001689527917692674367418839323099512087793878669049504695623411553782234968370595309285474622640504374065644546278714998028831874423492504477389676239921267193422487613076666992783330407311995501352092495566770150941105584320684026839111775801891428483065556733440184527343782173945967286794949678660497950683555657789037526557703738265495390506626765015898117092596553135694480209155250632996494129331942066667708014778334033116965213173445633683746878932048166838689542979787576018787237586207254461163120508237524922565466916553233864410045784628055467021365224770973300426754528295909752155136306863876186500618985803658290370347689847587942222890061442762382819197984042959888564433521898861567751157998237686066943200078096942535365049955329947603533541175433771519380749135755341566948218359715642187252062675275535165977398129462325207941547055379225068060981335509481865222077844223206771307030296550502085660968665581998018105393824492635266009262384378680084017386482604917395891684407300175366520261903992049352947091347932449273103869263146280896122005627647641133904838142329307540237819555086966065073796042317659763944021403725417193862228716300563569121140044880681151247847502465036795740626683599460795330211454685604586625781876243095245572072847930044158395557139736315434015069464504789656528658566130729929223944513502514092344516976954948821648007819401989757464325299623569676469842560640974529258507504364710466698170169862839649785347960516973726925217095326726022510475064204861198070858405468072291330885157634104430807886096191611426389419781055361479794244407116688929052921175070027337566785803092973734920940320944923789770023329318997049889051802856892314024888606591447650449258397646255935945569558983839809636490398903726124173128798341568223136347582763386465106637973477836425613340800240730049498475264618803036039574405531407989708776765262474983400425196833232807274804878736201703503163851463000747116411006492031477258922057921537481145572087503176511436990300156837389991429319140855039812882504721590092693445581921680830617017507593053382372996430072823933707624932573784507371614854341144860263084022779106073976364985096312491623505617388989509096926850216138674260618915846940694581976483221994626343410954323784208888105883201605996233784764468864905624157430800599685692216526410776516180247439900801687131359257473069117201091767798860985539020001720571107899036068120428088016059870310211943918162271150062863546988945536895171018743555991093732588201257794169320624131813577720333019709858344273432605623182092989794658238982513052134160357891410499028807057418531053463344077293156138170424995430307484885715245099758542852301588236648723906658864613336208390083964366231676651601715298486715413383885835283431156762736812377177412250782070305893578241898374458819976926507680754180600987399749084987444991843140757230141863692759046703154710654276440320937551540867993130074942180613108559582291980211345518488522576543339459075225639033165808884787459049204699309596233360346755316409839961118012778504736133128232174107536936096552210946132564864619650860040096314816089702736697638235111203803608778261998782803410920234770657877768629918349890659573837316792491581852898256306979704573408969950148765383487320301197835985597044460899884789943645268614993501223071593021892517545150467535011674510704092053768040927177320781302106537155717583187675883390126614411982159313867549057087291802687851676531751927405213509819169067310732587877497968419966486598037156986240397506111505268991046328044479314203201528054546875364646681925790378723077967541605390651080427131546251923254553631640045054900314018491637898909154353641544684522997621034857712544862636990749641171165489810105064447608466141731191533829524462562951804115562732469805501343750300262690351976233986933867907408923968289397191728758964804468215300369305763670976848366193473113938246913303858179868761163836085258240825646141083249882015239682354127218386078796333295150577852281678766496034281137989933709991990654687658466702914292326500758810116230067529065346193607166652630624528507002597264901643730813637466791843228494516680367609840921892587973549007915473871001331245311834142008941844844098347242373697298895477784508354860576449317775530654754719355432983407943191433140758923909421199369348218912514102034443206622510078268394109891006057255986007350022831040527789143174260370785735877531422421865398252617682508996205000261298882507629001936926080384358311081324724442367559238608953993054853904124895247260205549178791398647950066790718528678389008877775662786723905317101709725905399768373315764920475754938951128760282474173291361075105351063958372110093427960552469411504442435216317365585432447599820538968515845193808401117124303597389097757852061882730445159341034764138250455397683933264180003264796936186286472084827315617329536334711211569167974430493568978506948394880154643721769745602906198757206171359656496718449003360027801661499091207380793715757399407675745112299514023410333695849397894400411433533046076732464610634538662142032196161187341357268975373630110658322238391894018390410582446047505731388915286949522774616038106095609787621036788343744392046859365645026166976733478205418967321171737433522718743668182244377590834038740985272244742412545705193960260732601100870593078060552685766543456961852025352634933416925290555768704392023228891436641843872071181178382209178704414115583048699349478515298050747466959038673686372791177443172867012647792795038026093256986236993984610563510913686500982711487143642686553376897742146000390705762676304984699309323952257733336030434971596353363859696300026036881511392265952619120471713537479169817503721588633889059962912195391143491301648422661804115503337443080067308592746671838420842363429260065855421486463845164376148555048236234376154071392567898979762824961820050767782851511268675017716984955858797980553325377743452903229043048470871971811737852766745336867043956319502308126774054164413668844549015176671029855963731902621981286067253091286894593497419652091256124870151964245189296554869425815760841785078115748452599865271322537919460783677952583424954449422415582107050621208340268106220142982920140032129897701421407675296763290190003282074547330949116191697637996341620488822453757771361432259223685998901055754677220011725095222810506000414809191114235736356334652827923117658786723512930689957477344945259330945976275568023587162270075967751873307669174342890912635441532425145919709169349430745357421591861841198313482027988384383973786572435795068092866584354116645544170608583138843857756911791999395479220543734270393539904162807815941931420381575329602960523214367504451649392783364857249224053769116955936401313502592618654158492538278454313833780273570301822926441287675714675934602622539939056094083816906442347885055760954238194765878579164644172704224628553158305856709153248682278626643235711255669424518665229000514194879202787578292971382515556938123010265594579204805872413365552153654984646039787212243296741135581293987086776247696610428512289749457260448599269793909285035003550545043002946497146378880588203641059569135165719713895464259526078768408937390234634796123647119706209020777490407556328352475567103409986930736667190010081820120194289202495478752336002228629504934544265527732302882835930925141341003282178095423848929842846057755806566675771852908208079181299530764338913171442577631555093104852708237580830926434983257975484834237437807032625721984798703670751388526594673555053110126096844722102581945944445129214651207440089570508898067591558186044503608400322298897648224161417901340337792849362274919956678385297572108382038548719812212078497448770236263374138373796021388809056080657617641930950943018415459054183998321288114078496371663040597060039450614438145186881172600020318267086492569460647046538355274452476616760987783595936444961242892472276456283129252591715132443460449374650144716570249015516269012883321567654267661065969775088061793984109411047082674615995568238076751044402666193515021065475226263499685313223538956256007465878718037214115754548588136882787083058302873355783895956649112879266933083139585161599383129914793746711856488627883784329083181008168450198240799781552885537342043175242260582603756895225493919387046710757827053534909229272572652166499232080567975408008991561214822662553165280063101393126784855154898365253863454939022384040784945229369301107310995293605320472623335847040398004485191824750876950483709931703044166739981696236300022541757829993402695077391455872514975703089685976251080276639719630478720337378478204343514882321463815934644101928544451926610182853034636747996974368303458518568593204992257363844253610879588378163191669737718268522126415329661185667689212485311386498233036189962495303485123913259021326438871272561023266117881530984462787789875341509611717476505628723468933328389302131293262592776263567177104818782425807524311834042205743476664090209205970158653810483023781946680953286655355405222285610110070223876004521222008634119387582067432016484698349931605728884638382087601471494659841149805785627820184058595554479362263536390597637346636987996792838686504252379815930198342075503784387157779445359689103485232900736383521669266202889269031017183027641370181017493376199452000425799241584833049498479911234896787570078676407165345237722084171305612808678094835468901869417339403779952406438820179558309115000725051091335646997830064632717855118419442502813032453303213024969952272705550316741920954717548016872122541199755107141240246887166349958645074211013651367311291442473825884900124368068002947454401294699526623621766730269556065345765636569662376770099035275261331556774125920029966527811595426391897829745696759671261251707658744784389120556431324697666832645125347418237131094584111444279858107625515552064574269942253105160551651449786715331914374792752131469049570151860169090739101241742777639833203369783464979461785190712271199615935982927035410228575948337795578828378060099897820110030698614254108256361815938757660470410157291288134409760346599277459438952856173104304458877010768755799750870509358943923572313937226829013074618903693396415267964098332439698185776922195278835205025604594561911938356637513401156491210173891948114086691021061921138649752085923299847482391191296015032072878235087743162351502081100624887668122948055198989524255359133542872915642861593451443566346732905038609177436912615617139677055769754257406276153920292858714359749472925086462170769927845337387726124270465092120017936030279922303990560050156644010798706694443113428795441544647107293246329778976722432018451987056767207539980934337855792059087282333469477789245136888187250139561130400346685067142348411294272295107226765459183554262640924234929558952987998131321350658422616672928960133788733760265655207201383606749775018191575705028122688787429344733403222322398590775419590680084184472373082258853983005714360273764052021164929727618213849779884556949868850646929979640078851097982677834642650652369740852847181235045810902836505792259799952307793771395718299442309145961364167714442781287839824699908970092119780572179931029890114373656908589600564511572078337654684001056507145996560556245557065921643505167982424427609353178938121004268382887348695051737088844634638467091560879764327161850640419530859612289789568908027433243696113218924136253577720827136032869814956214350611090653554811824833123982665729920624938354601244898556241614431222077927025886038734120050942863484757872268425441371138763161475611257854921151360002491117226756392488255009291314781052422833256023662736979594881533443003843727146792904043963864825730071011670503830730456632325038557899227245177114701287960972060477891800568256152529964513927222563613248814341246332480043140042543624197344521906253208331798228042913326817906014096217846147388031386821292182528524697137176919268863068353173310219655253130338243625385592205030974469118037392601259076216927673672857914077753200129582216130849572410748304239321122714858079258247486424894721527822845383334189188186112173678900764283001542269751889747703984877522914607691263806212968469413577070737662667626825329837273858869144662066145382372329151228547748714036087368629890024711823077657613082107932484641053338399002235238096981752194470517787005989231939652664462915867486676184691103010827297415408328415245729192456854016226410747488779018539850403131211636709156240814525951351213003192371324511405395922025319918599256664145982297456596486024778540256169471990381226511302103865128181229567698944382582687194239379427884898872564780765336463563349173528380183972172912570725075810704094751301835043069423186137358667320183439940384271999282011921192312563113163483395568389554669956648095716313121823643493740369749376206613792944560969352079038852501510987893066384185268665345253408736360363864090709738187377562772764029220691921227041079846782747928800948725056270121604342604015073646700655641143818445088418119436942099097206021872985718887685466138383784760276645209398218182127473153832456109300415721422770689681639550971264551910842939422814030791950327144838266094406562966720702041126463576620980299433966407307640928169099825699455227771928540200268297862404327857387934109707830460388447935353076705083755673767066728889988674312911421082517436878408238573368465981121039630069332349244855056660352255126680598621887943728943533859897959235946681520149967092242467415406053894913387383818647670740366328285549825788382349781449246076762735295347957692236855635336675715720016998510559919490414957329209279940736061855908778233141676486426880224932215975561472534095512447214401677273372637228492257410409768840490302403644943455873648559163241099762870485934946797955208949717068424636351012368212115542537527485168420788005729300084411715501123354010914689797421092008764800876306643964364728139695053171400281885516905168672028911660183442676897486988879158308346245576135296620436920485259354992337866042958121725491084409767625560835352147022370164042067992786340325410184830342464399371343671063278768942178067606500626356057444759532543117109085801280946061333677174551349494036186072691971099389030553051432610771863998116361603447827120943329406349576335920521567603433782346302249967309941848171643844947360829650260522820761907278009089306112823115397154998908404685014659755468089701057908168366691476126841842028314979343189163225140410065428636564850631800265948404708903580289247262135198085205567538922430015294363378208179333369114000484015498359854542620924800232346485440498511430040202223922089420096883958084376554762414111665844536903208850326277680102728702725254495189659474069182489806936859268915896683868853170974872640677318042139018427101821890094578822764882452843594233033122705088209375775036980185649387388775495522448148060211992804933101212886442619653150697071796820775582570002879086589955737080313367974091674022404334123533285013891977710550741591287466893876997701113210625153722728875629932521436641127097734168622070916559874537610333232533244453997338639911839450261212551786823433787588657506751511599901215812445931593930261808398925745613866727931714860818414482316322858935731682288221252705659152842108045758564612104386721592018394044601590135810337502059531181030696938374563842767626109994691473134035611366395576066630407897200891442567556718388680866724334976547579798256765508563610015974250633777092465758678141829944056590258702306485561135545130546671320252402510226788487291579392489817428931031252393535027216857765453854026290932620857161702269411687971653592664958662280092399644031507573596942183208997845709393088651275929317357138872707247364156034855461671691791039593856292371425102647366151349689372875764040662807639712339355500107501381539047738085798773413401955499915270012652505355475804139074108784529112433083390480690236197172633413256996818301731040675036212467179629696315972693147387875208273306491788837920884386470773922606179682367557350682535717380764736672804086326369920632690467334138984878672702207249969871467243939359976970787173259825815942875680028958751730377521033441975812664459310579168499705936559874543537295684755987290123566917775440934103235736851248814095976114941994850753365528993205331140486899005230609156176790734375967535470895532983645639803902022472478715820160660403249720573400132246415551376078516316006318820773841782066468107250736268972990253704974793597176444766349060089732347964658725472239084865691247644415310351940558926698879442546945288933695123327111541484600853484077811776228324978606565283920659931082825043355145291358413642764323349100839388812839578076567126240110974011745620955918344529564501926760066815145806095754899830383522469907204323300298307814151365738818923682467702660396082985415228267377623867941751161065292827112345039122688207167716277158759509078358131974105369172868169512105820962402586759518703595580614274340726868227833456562050214703936360415714357351257195008689412696874605331262914589131846991028431469747050029296282248421288283674147930916963587250656762493193408796119830620405694202038619391701814739474053153790689384266188848438475805312608458001965965672980250454662737064637796091868594852457469293084568236763494936320263301147596211343349978533010729161706763578995205950382402408986451702614662865635334091330851907096683854960890936123810153754095617872966751385233022169407394675761923319429498491579768100954953144577221471533807599066021770212596097763334042158251365924884532058691176583689778429264857206498339273451163003947947601995698623706111186351219666887202108977918994232172844817379983242314451802974078041588227479797110045317704157101934323771687160935634064486790655690050225714854002012894383627824222516293465311528017644744876856783201120545163183310864963122987490885585112989808676014145671048653729487465553183829646863291557694826615243766138467706587829813912997863639302038461991420781813796472019187305152817800743790474850896707824035822549925725771332408783311053815670381491900934165632455558873490124483364055236478299634749534169767729808731478313408207401900938412642783425064277746189503078275375404378158181974243984479223980956502203410765647887816711136892648052786284304628172702026285152350167037111389149638698155914031358568702131386058362689419028646043358186619814766375852120672030155369158286028044556100057861458896424798745738231895455648278109178202824927987643109069485722952019605472928856842865083446906752863864272649500658671788149131889776249272560004458265403994987382159812899199867111508834297602189231322648480457308547346793158830748143671652244868423692426015885008006863773878672943428716863985489909711079858827998171995083742237622028358849819184590170661654794398527768543900058959277794630718948793962919895058615859309684411870592039261497956790146426031464363475315474700047515125878118042283587041478500094998917365337194565386999476623417573697895700405771914871023660370143293760835752680158581446693575977426669710980329946904999108144303657384575221313384173182774090615980636295666286389272010397104090894925073659272507470752076712076410029003889032220654647762576675618922033780646396535301749341144059152634405052399532826936037151631327105052852226587577541059146556241193795271618208619357583973431022999510203268892375080611093983063974186699384380940206164191719802262203998585308968282010008980746237367546731729324093450993404481236665457097149239968885179967431000297870577353646230307550276032428780715030587130928448812316398640920860701988101217179048816118079569821442958443874076546222100303274948494126947023181466804272559751692277353275183374651029570090034537003493197673632949209784043503565506193246976917249633097200230712133950489259595246447664489558922858962044751057233938165572804116138628840285859076253989339523548743812246680094233785638824487770391202689085365520492932721039235497072858028225043549359268559222261689065898117612286789742238954487590318229052544079003874072956178019542902626163757489156796963619042073161648032856884406739059107340359260513250010767916636942492219326975663945805180028703689463210456053612415193476375410989172221807521999999171099532331245957115335677792442758997842268748479513254664933034150300998607019802025112966412106670133062834395884012737581885067124588084224703622124696624753109966928384854875744756236346973708588539533547818404437668030973172948958699039453619873306705770190759476220360914067576418964877019244823352162377635037041255231232228280879354780616002687464704276202614667017409969168654726207806988805282465299157554519865035071229648891619704036559169910720598702345429313290096911043490174201060694062868878003736712501067252382340971280775976534731483598146565191162983859211600957577807240564682504261504748949505907172173830638435626374581709472993282020285665174106264722920114795225437934986390249207357537128365111870646866443874565447140249328737023816818576350697959402781361961147199772278494275831068113603449472409576922978796508379435325809955571799750981707198799886923437488222664724679000356382903649815585608923900262923909643303811720668136578799555603377779033030988896359302336930149349858978404298825244361244613825872399621952344301177500048902660696180180064024329719158879233345079624501601304630616208411418808351709022179465966139899789097881448490794511171491387773415605838062131576898642504915713147043623505281885206120010190453228270206063009550232675343193744555876505596409803719095925370092275253168311934075635110482259099658195142440032576248486777005515417860543814001954026007693511570212237455877265035360949772880275195495894374463045742197780283545321693903765454884051030713713455958448216141006349127852079647493828624128706601084552073721100242117191229436108910603671088221389977188058306519964901457512654974054040684456779940337209672491465961164390687663259139409130398456278686467617097142693948338856614082707320627175090584251984831339863113682626224476738014868836076218268043606865623736812783191155251755436173480281215609267489166336169428573042493270038629006446392966293587739081380606286711659405716116457631146961991524198575687046992492762841684303044226750988689137108713387580030963287240452145420254893841333209520074199348428621426706799463176943552792689993304995848288509541828530668446256248177304314277308707403786844805815113565682164338894795967867614315656991384589507696523106806213772202659494443127633184963819801924143337567608657849475079059027139710881889145243874906308245288603960654793791805342485168219468423655144695564403366407771622011673134002781621083328222328613415806264347732090643425522627208886849752001822753359308422023424760655966750162703153917952862760514930336715096997269793290718676283931668069325503452337570411552185501652457699846635003132596923685842669140715839915671486118864340046400452421406079445365986274730632291387583350636298343747767704710129697716139719365378775065682594789497219728966735265412912532506030274331206404492505468459665563157729351752576668811306283237607532257022273599091194759470064502755815452946831600954453761349499479453536084024952715611456345935757795723485921808563343776393292023443546747860761907982721222307133255451143233716807793541322123358587319355846166683474108476659540079903880962595703559736216798288046265104578771558439157491175738935508605576890890034415937042391427341343124689171372437697280761887030768024388176574344195489226764084108311258311342347167458360888865731239994661858207346235946286603571363505061833561043644348030531976185891486626056722793982402127278730801766768383225797450082045977691615864796468292239103083950435386411760095137109745590370014992666907400853348895394550190328719508927412060829379608995803945846869749228786527243949580968224538632421512365989872397320132339390472979482419427341446628231542256815766005509321642772242825645176220481206079694478312001055582395191158376747181447273969928119680192766517048893095641534364588773449660309633684231146021979495968465768359260151294409901163575986820748932080190393825239076190623353456990741810536684509604256894178864899495919387424876789264573127064689784862431216513385287220572485364694468403624669999868929628500095854608173540162959200397478551996907650803123820805931291104122437665743270380469336625360820957114065791914024313155850836325988122752399822082895860186265917853445011631102636581594683803774989441821264805110058467870330788228334377981410257446276106513981589397782569969737557157247640161248074112834140276376498321958219203805497632220421071841931846009746218323927598946991388980842605777009877811171595592503317026826064161742905787366496021434693245919545875237156162981485781388614720104142620881880505169918339757328520845260938844870139973571984081473070918539071694221522594642417235126388061678836027289754062518634097700209923235721089095469311047855028731006766480717834890442225875829456433350785650222980421779199719553211349678597270296862878204699920038415628164553021340077662901168750069804554203968582785701782603608920912692072952894954977891098418968488175521105590545469732151638538789587469258062832357065134527673609274255260866480233362370280319063508714995912672701134972192106371518379653747337453429439425255528445901701142862569299796844367740614570128095944289491092790421422272063437097100492671466547902450144181705011953596539476590780376603025889303433776847624278520346235582848737457795932131084452596880296226735040160943475392661849981470000593408590256565997446446535011449715436373730973718485699360501466976681588080927862596940646027887448906563155437600106351851563139875086311611841750752313061507260920368391834037527372605707308536247180454433262992076216296634304240888998509885443287231496364181166000935054448316770968793878648720162615517784574512340118270273757519133788861612063415210399072160118367245687165526077461269467322948650308696772640807883331560132390598772657488828223356342280675152347055156244178247909130323868040113184671292578910543907151233497270196098329886573226937712550966158079015397137924553708278518414763866208557877552157335350834432605440840888554446183799691277316875774400134975540120105722093496572673212954715656200315798557190770170539847131297351555347532732548137919938854004333482745549019136538536637485729285835107641972156095618378058541083440855188525279650271732811900953480727844523056608945028967559329388581303920795258533415768682677031135703913867375038308172901437252276254650807178625641065685773157704224468051080468126187664990873903030167050895404430140458320971597803001420414434414891781407751435734765123693433425187015417707472806036960339342090859826878784143794426848379808574294875105238130528535717701358489249301583273760038467468124255882218729938676449803698764194895454522208674334885077470257086240355061916486405627194535885691866929056167366395454434721747027984153662250687742912186354429881241234665117872037148672666413711931076684831791112061658077444178718374184988684546297231763816910559181628879186240030247633233604244331701931551111466930526923969057651366062802177824950986598051216740396615882437102468870896636969202968745423000767251205751834821197982176317994989991415048554414317301793665242915300070805881846517550609660214415901055342751868970080492294806113300591575836835371999105389730226971772038418428888347420790729682441165861576070355987299633410014985496496078870404436484239957561343658368088949196961526968257681812714891581967500155635142406445173631147528901420511022258177427027273037580281994323697790438431249799631695897814387403460174096128728872957375543490856218485769934384416427868467051299419892979960610209338746439399623727735174370549879546655327519529879115241549317621297287793697572324150721709060425203524673022496587128503413220167015627917017393653333521043750271019146726397042167681217011563771465050652367963702302950984977115852810656362065561415036042612032863779887175046919960041228965347042761616304018580093806936118171470605416439995155511467637821112202047910635341141144239204063830345431364212887923527544853780286056557626008305926487049714330560042336295443478669591412766639112366105553507147654615450191395849821746736774681617772809593433694935233197821952227164639716161289050192984455305249621334951330676788653899838701670448145230118393603934915353586194444039077868398161193444385041149805788588568699075307687836577804214660008466982642847711924602853882488211367069962008687521683307377433681909805197049105797739226403292066135177758553142677013623343513998039478050622110065194379930136108878912781474462589359734932471622227546792573028804210822998805482402537028934190174023851162346645190745504206298780846627187979753100288644295640673641859870322740240306657024054675565683948726502328562664539566943483066034427969856300446524018486175400294080337408766827133492547508757201831809990075378041081585620010761881485661101579714043128422824580886987460287217593474898188529147966441437465193657382693756120394013955664673267084868507067561706966110378658000876715101106077981252095965697637875202193354204568773291446923084642289099967130804352313577492713995688209426820974551422777862123656276111206217986418596605040160204516682130760036264987416772803986981067682960164375341420594007702293256855664614901820303624227075626347261493426711196636190981448120694650555821068916745969397570149958515558757608596169998804865972314821627862493472783441308141786012997726839804957624381566980907350781494199597774107620789416039675146661833305104090094194679443641107237731624245767710895160902956127022056401739744565134282381770543404259231239188535133974414758137146580148277267160312814906037785994264287803101350404974763682715339328181700541264117916841805457851930945025917891225872129146485164244284981780688372398381084415053187376287026055751880723596880231156027643699652443717773128363059613992120135898021635553960971686596183754339035992099879040520397330062612139700945021045650431405903838688993152122798239385047944057306150394931573711448263301313699294763285738312770275968056130247778266027175205106602880253199881201533530608598092500617670470191299975025976074663121556230173015043904284491962966176387461925936930570853383895356789900656699469335507981889404240693190224997298362190688859432378063923129882915792259524577891524860503077559958335489303283804766731808056752387014784465681298816816816125054428609217674701418015998032595622094249624563802427407022950458099057527692798219966011651348613717287840357830299774064659879203792683537337727271322334059879639357177980840387731202742895383125250941310634228968081342723403069622072549941632028470776999309304493537488208971493693247262920153838667878605472008070720115649118573883233818152755361137261084459512123108938147412411382226250721234188663016209551278130960467448688695019426942801028939931975620095738200084520008119471731636529280569692364076218710096019605412524088540395366328836871810892256204894796054338367952940104610032041891862128172892554413274726791639264801675826467045964183557352157413976862090407152058604493258746045270766429517002643013306750293798340566662755313062640574612765086565402409583790356577310201710723931868002976884946691770349131985240653245513593285663190200172504448051054418959509702407890546279546281602317405242568566841077919499851340397932485079926519875070494786380067678992895017649140971833883047773769886421170118979389613210624091438213824550369680300789429278648766684124533075095182247087355085632403957805325312036567570582564696184421532100640052980994383300533428072058438682478404338449357823589463710617351385172035257034360775701415843060523045813986068068561186902688085153419075867944216548317875219752065723684502252738912185956907273836691764585892929472747792034397218690812190710866124075378865618118660402218814420332886399024888664524220603217951832664865097268957793368140581036424677687676316616427620986787791051976440085419271086729562590528226126378854325132701356414010796878650001687103337234690732649904730092580132080634635232658747577540888834042664518856010993364178469649127177777920161818367059702820170013678386103548373723037250890974460188815206160605887315270787130892111855920761143694159463987881667836499602472763912295691692230298815793130856435418535537570644889987864501180789319697098655389143057144725521976153634434815160491863404904599477907644333275903272588235838644437620743121000514822028992836979719711364110925770046049282677864053342449671541097882621177159276259798880414510229056795769394407414976093468506342223238822772620075793505284397956065217350796399021142776096917544256346484345995744467917318820624766545506046309782024701565507702149947347804493647425035800327126141459137765100029183078526371592398514586755931255690918926019135125138737222101217630637084150165238278652957323159554582662417838081255164874743172761275509097809467690441798765732451197539191385636328202781385235462778944816457549498692615486417222649023759615074052178638857802640648919192561940248170514752907878585015794891973991567863256580049543647780126334343956196272694806399894975005521467754695742688430698376997401435640011766294624768802937341395502331477945921006835478285869753425682055673711834789818743878364432764020719779771095665072359577578187815731725694684284935630694696509177458215974681458999824841240055856275446939465996630770704770282810969645283200002462941442549987016928786525394904127309126275675866060531632272913389986382748633515527078568211701039348104374452135528813343233028516609656039431485225242715633483280192232208472398646118406460485657905504128900718544330192165046177670024056695351213505291319332068698566584954590368326104058511867729444155402418953018779274540872816664438409899761609416546782196574108657536135175730534296949944131330623709694787686084298622887324698173729791168117643942641324966684548944421359557823412211186074220969056117683005303111326000984379465612811821537814620662391604556198612507633466634031010240836323340021021786023069205985632766152101222506558299224918391912689031506110850845639478518611414869929939664146482065801869277099543802187759689872453300204389167508200899726557076774637467207760105293594686705477546510295023709651090463974923282649282904746084069579949242129132950131723381235944000585107707621894950737079953021398811909588803724603293996762939689130865566762782535670211199683057180184483161601071247470129493828041107677955076525510019546289195464331588079535236834781242584320057842621756684157888439049457899454901430726680588995061756087341051381681347828945328852375075015904276213112518749735055277339849590266987273314967803629303208352496792155467887890269669787328749971412424705580150985737758210876185995456764456594111240937227089751370932336752857719608306213414576623866837472681883501926503241643420896860529386827141199271878622190129374378663927337570793850370624873841578837661335222054165828962616983672730393034398289711822314224152537359061535411218560140576216751409191516727442530264880895779953737944336732850800361260670386153688050325002691722380003276300912402661174125448469738667642818317719588923709850959647838630472197340441249266083573442784225711356791933839131184620037015205857694160007137837979781183523466378230812140412537172141196019176031392661963192198272572724030592696035723543988093166245740262396570796855639048921622334609294389089599166756642879210343310334888507224529773786780209244000622926572723522365268899413521893223561034942729289375196670396427435466666738825254536822348632917164947940122379263922724671763726401313662563730817488244971326094622903494727759324899239989435785058560421813938742420477576783998050497180390648362267676128301748926475615770261146487435707209045789879705139186926454257820475852832423928571449209883099604436687803556007128577610459897087545203330669942243285560627872273475706786388695532058693000382831686295480357956489291727638432757944434328284223853100211966238763874114900161372078124513852253670515694985803992900957426005533663581511642640977056109134280143409369057479098696610626620047999826982254970098432874703994338416003726647921588380572768451588417337562347982021138223435760088224238770513267304988800983882647749946743573716399245058506298436282198059520411668458470440653906840555508432046364205296649781584069093734617809476624642225110680234944540588019889643861227898766832923713814555906843364937043075470958694450572993845263379543497432641735882470082864656250504039725893881087261003456975394600161831679223043242503649864053929760511655341329572561863200149249869274917509137398788621844397648570304730806562692483547522753405728696367100865393278733544842773447439505723285746334680601896238525836436708318873899935197215313552764463667575769302439458774835309358571571268524805246009525309616600679516273662909249578542677847800170587544612584534628894302699434833677884748833196255918008048697369500363747650952319902838696522765215796385278248285911677185589343823834081755829453170422571281690539725943732953756057263914971958637831759880983306602149537430562097034829358650723320620061815257248561716747264873691990250801442938823334884118476361580253102679928216313460664656757124839096864380140946436509800762297322418389356345698988693061621587220519480342699693969226439601068241958081796553317944592319472825492393204028175560670207456509441259009429637897324065712406081886195389193832027729068234846734705826196643846750819122102666670851107491991410288802329639261044869178360151217598250366734213497443141900771479844283708374416123022319262344645635604064762129444414692880655674483583692355758750933482418985626384353088419273911151870394726233966183805092374802637954350694555669931038127403537324406031377104578552092312037085218277888175146877295949111380223790247135794730106618676066676426663205132882297806162110799885573113965694289063257107803411067292447077112759306597053402772821290351312239225840675251623774159706132868967615102291277631917883065212383025873889124966088606600800462982877622866305516884393108936520334798038380776234947695638484499528327022110549187933562392479663207101231060241935396624103333569477990061275435438296349705561232368811811685425784462995611273979853768466235461974988080289640547454905316086615172956728211824629029681812685363507289256195002056675422290765504359040311575099727194853033573428245509907274300153903033643824434460093870606068500211563231114194689027449309580091466205780102744702418187834326855562807921241880620923335814037558156300980287576726259689833827971340906382630286088872429908457690566065331492133670071428334623263995959023333169163137375638490058379930124735600805386920780801323699228634493480122952498363697859213497072568109225130053147516174303077939929493863845128153571028480256066263499561654469485767425168165793182877264270845338997231058837359377378205076039382474993802218171251027463704565508773137119947974889371426085458941338042048410695942082837108549425836220943373855175856062047961269465183355060308642836804610436288058707142774589439188280614337807998607130788227047088788457467129923002434778052138748378692532375588015897083432780637595409419639620124604048159798911042604336146261475508338713566026244272317633980077911318788003592864313958110224620469859794960355808106116769094639210647515578240699530923571501733408221694197746688979062960279552422468862420323508024068850747248651704193361284585654068182735206782756003915552559663850375056827990062817221709182700865922092694756932317495362849106533270511350294454305869380708278936601874140870478961800387263557658431601215655186636403204211402237925183684202263666284110590518513493454945280931354058868310448936329402934604794119393632574463582216447914735259147116083055038044797069686643135271593652727565027713942735272886192254368850360515641304643752674410482261957193931412713006391318205323110062941725653257341756035738620829442587855353621230749058089516305483183670249167811426974406328926072956640865152831141010594670357054673480052729124219166196745542388099697540445894234061939541072088941862486506769242405133592420117351656113697265895523908938455253638041820006094653736996742493567145802960306398149037195846878680718711599937311364384888133920121276165342132559521819861733989269433244886803226194635357478916805982599872513924737936004575898395270599413955014580859968160142569191369161737865017384000222592819227627454041884771635702934927796886563691777514942622093185863726028148027798731630069419552346141571912163469574646125869271272295653263422994347836133531974253947329886027849490334008774002926743965552413753046954792639190396324828590994530610939256968985404029419194111188379034582779841398208456335136635789471014672275362080430051425970415106681150319993842193293023980331725610420027360220010882891736939122551105885696685143703389658823348858902069441172137201822033994705263308775749411045904259698591797242517435359197962427160385484587616825928067576287257099530182855002039140571892252927920111414874001714844021732090681202816775477349886331159038013671251763821031493368382121196487560925584669413504444478075676468381882765888468972928435693133787052395958197617337492905655538820211610200351234631656283878128072844580823029206001850194355273079483482420643244990377742537649590464832126023645309027575204504834793297320381950432779326729218958973822209402678647615176078639633617141989986675280802884207195902159471760977870112990273434537621107370953409096039826783353436287901169475575855447165290588686092349942831869243036850797910537593683110390214482342313650978097149363390999005253646901976924295414879759589314908878084109305496361895176877690036529672733202059821709078005477227463137597836376643357332781471796747099453805175184313960927178596872349485228807125558993143730910146727332162512361198266634611514346195746835336030221904584938623050681415968301930411341245659851977831929238130570484490891124806053687708115443670349156216733295030067590900798010083288779631131918477681792985472936062846651929382848306933901112744678017660205869793064398604756470280332006606261366732351659574553783590896601581794341611768048068648572755315930687041282480744335013788147643506195455556774367203429346196370584766496936438855732985386911275195272753570230324893828995596916848111802255752607793005302499902667885908130177492960522323929794169685814131246312049897562087529489812378182255500921564721220883722158037175894534276420047280750450393090371772186348987351630363315248183399564985029413110202035494585804467277928763958917518916405267675232767189163969752373916080977243686230851298675302700784981389342335048741559662554231341104648785429633654179803554159148903552407461908983036590673240792198922628242420967385152399050402931417616405299006969294253253049171783011292452551647447268967906100008945587411379780892010568948128285740947376974800982603094268400767422275176325367631945667986122369278567521306178511799519204094686472874397247135213634983008238502565014519420195503600287655904705534564933935988559042842967756465234360875248378715871326802426656263633890539045617449847245218067513972915244288834491162631406946193350836615905773974328175076206523677278529401635023133543494664843556559213789642845298160551190440537903948583514816612034808159607062193612353385969323039882706119061748852733326512128173208785975519989280629974730319692086518047683639758977849830167620261720161026631475297754725079675798352277308687633342577147385365471294532488411414529824236081770950288327418067330058331356211760316788145062194865767140579714033788415056846066057129745781322063466550479354997452461835441805459478669333063996004408591608981005308417554279571966672821223859112645206714705932378638099363230733816296102768568246344644493063461388642005582863774076283125114038457348436565812504344093192765930945696673808669514945442727088868001162604827934615468474535065679634404113164453205861004427298931015678081530981410679438540969941544774223794237895363290400694242615932444007594718886509646090189789419634552254033480175222890677549203313018011499006689767726611057126423701211687338201543532200320878137350290068387157457007121709202917335676338358729651006707915199965257367743942599544311372774857569836678729241040004886922133683368839892319157595827740985406622008426771459189780114176506947064292522335347476079191796757567724078279968685032676032355038750540269954156788298315848467696991880742588471925497018910170794383886407697771856352639748779361039540667024946688306138068013452204333660975071058826329006403019265663134822450183287777263036401177308744078900508501416947461127795876753453605811496606560163990655476782377065372436310095440439746009692533956402303312266001019106500271661769452825190596466960219505959143810117908594255392960961564937761116923922208869599864996547340645830651651242049693862564878875430339811578981057418589422702255355593321962069728722321668105507493341747169569230011644545844594027751620361906893640452121917171150498400334795103992894785920366667829053310129700439331990939796670700695960173541218518118307876186248463790307860868004432685221355665195411214810293318115810596204745832215049427926051610598017916493682979566077187801239484534016165932883659207728492515548224828884457391024566997340430126720529084284745231082206986264624046243046401392979987087172994119564709462141096194436809476452155059346938490839586220921918956457795003507257713141091524935392127916813493197357619463103841660054584026244088072330611548114732847110480495937531931251511055552638371038924408455267759569298444841789307184633528327556331494671461836737344693627014050206260817285221731284283637558784229792638731448224854841719099562649566806593286098496276603603652460152934917840899582239538456196649057036831736384400459048158007706688474829428555513390978268661029542267526996248058159569898540299094512273692431290831804036718601842735041060050214249209853965105895523486045352084652531828014511189071044173661078334634577506050974651793195741858176398900302792148496856532057884609813141514430139409894391641729560864166385960272263078336535964193356322345325246040494088061530834461574112844806641404475880167826271385110139814837499889935258582433351228191607218802012443123299833726331621068648405233180994628433186488170413447642809213173064047119097882497107712631294034707833642265362000853765005732718070641976404429396699073321845608192777646739027826960846047186043051347936784933067903038191323847587953926254949764979079473834276706540849354207483513488926229827450423328604059649577860756248526599128098610566128792257294503015049913222494979578203872145866599676529185031374225864376575535238230723428350277196192596774603059286517731895823939874367175643622628222327155024164980784321941346041898579665896238502530754554339026193269592037820613768726238708091119454210015022509350049382645981583546821148069479724432907850663734840985279864614197111484228940130180806016014600989116894769900305115581138433043807302328475845291914960814551493611959888590603975996171691898399011423857713017446841281094817054912704728940358083455706872625062352032579301568638217460181213244053946870394223208137922199019499770903976133901260384876155374930043528205928457902992557217280440960114966033875888203606441253966175437401221003070597536115422632455794560459332378607070292061371150407942819389076134367295937652620235062766877486780202634907752885721649643317284761314115487645417631389656882005241870964034399213993111994953410074167990357814954228833109883549611059165211820508881707495932420819817330032573291136484898359880748928418044856056491067125157688254722909439069830679761734557190168519866023763886995522189783765488498687792049658739780680072221175309746834453041565245141650754743076311354113226222983527777612573567904756155313919289861780632176983228556725327821021939605266521706073899430941669373227091003023683139358360428039646685739382301072577119853839077061325060716742365780224316551226936982117556266791135975415616795913807166484862064722036338854790635886980279976590026644118931549131656987056924244981812537755214504593521223372811047584390319503295730992839630745845494060950350442770394689189437422065197225075610289163316771924777337714935513822431491393713946728249796613650618083012559535786671610831994708154239467849809733360889086621983075675773816095714275381484946583618204735738090667656933545606974831027724555144963299787435935052010398387463160947694823569976734562861527722670949768407310437748285579917337669669118950384788593260615071548735596799686260248883875623210687572739412504968179656225408124786892204006120747553548904284687495657435455278319161295552957794126483470461135749518778528142546074922987744058264625267800604337484625047223376556192906347826531418294891484054554346387275659311674873849520662329931079803825180460778696295800362127518788609141641272833284218174213018554085212378536570601375575657771464363966866375216984954452866850408789933468525997777996904275133512086796147057776234259745020849920677105956844424361986883411499133067407335007192308824045635259804799971539673860677795395333383686176146587266797650596094585474918913713222413500431158205346334423355099853205864768372440177915592924919958570725329345303058027885382487896572296235931753408644068898145027291739759981682175136135835396241831055345988527995722401196228101712649716399919100143601610657726185361979418187113947734102241077118669952309200384165157659041609570804324554714431927183966734425147033346285017518764280424161085197793523781912465486138701048809630400899172749758311412068420310595759866381090934124249197862885978914144607767282070237686224127275241652024326023272033199401098471484518356715077940450141946017948439927425417801613028112505845527551099142065269310530360773385604532057402715867864372276645767083816502755413209858984626905583636465486872356481501255708958449295567643319651657403134926179811080514819266574139685572014277548707395855158296675587475368317948433015337798790819559189403270284904251248562266634125217560681662688385651216701452317004152882282222841817726390722814101072452670999445876070137447055703314179188603153397624544998596482847103549171881064872777383545304110943555353275246903084214557736861125459900374142652598183974322430102512254255338287276410337867262545735475784059320984302872372159614469063660252949814627644839133163084459137368943469340171878837549184766885640743533864092971790229166109343385696816460440864057366257334882703316224069220725724727997523228239072825382033950503981504639120630177390141511986805400460128780912869230489108093569225616520604492673388837613809454593139354165931611495292656798223316646576129249069381241929396946924395432190703292932641163048245584355135158950705306700196520867194274694323996673602513070513165576894459220015774500044666053041449656349164195804038861095325004547856014143062234757538451419474998903569181322799388362822476656348575770673474146691626916566568883448317399307573739916507617477577230900560155262047909619717706519783097222824714501537360619943885100608087724080540385322868853523041706127927653903059224120882914968961197064459780748017112112524655466490272586925558575423080034885213611038803592510701137974163641403331255241994830833040519344080886528591543449757357836408118303302334250001259135991159516421852257052350695451620881097376318238465285114529954452321100582053949848633451385925558783950409226901981667982702365671267756514991480370092842295353968699187098213426103259002986698164180010931487610417071176748511846782898205812677423610444662726334595905461565939958510110022783402315231407113155934705930535607117021791015132839503354581419393120547912828908976228023067224912286073108735500660003155558462673607792101366435532142099412874085388035188357724800727001966373500409323651957158594075819660134406109635866479337084028858118627144609881404708252740421857138339723406671823267166847721682548691403126622081537328071208899737225582842680890826720153909116027929304490333764103342448712930061496691274392088627470629993379656593993503348524474635865538049850975344744546595029582455331482643132527908824956536494588840367364647208084844039106703631079227183220509120411109588121904610084726855399322649430337703456395747762982584747421711414697521921912352224870807061810447532473375689434410293436418785421185057848626173278046818532638412973425441888902293483193027278659155953005235123173900535799068234579771653576279555686531755923864343462054564842396369911304149073164060637995567794693220692931054539540267142070527013906817539216087713995635199133603995942776713865914066555993207513681583793648205149322331566042794347123725741717253933722065067329948765537046681685024774509195410372050376603273149221321432731893887778487360289542178973378177031051365738905769590424858901769378038784634627065042779374065194130255099314289535921705027280694704254839174389190416185650297530375138256359751225282951487423616703197569260277862992465406316906523901362949671017027287595643182318822669719408403421331990585678011637330688957512761238965547367647004146400656274020289608240495112058721631019325212323733144420461225897528579091392536213458307552487126428127418551203878988764053754411445129327344396033045055248395944217038563560660842944367217271068746588217525622356257761304556988503107759601857382488203951932939311248968827289484643737375399978991060008788303056817706593593224668552650261690893437209108829867869715709965087190810534271304099352843289595887911038212961084844770524494588149261251981634623064080362235125582481790321840752321246599804730368668065684308090780618930124390810935714489388375865561917713444293727625545906248606881494313865547753142886366466539162529385231929622252588962609305036806545718772924202738089144190283467652699878009442934291590613636164020085385254040394014840195768409291741556602956753532294521024130234795825773869210715685337048697341040353551738673539464027597451029985974840152615940701894559654626416565677971298520851184610357188813775718005481550609096363650606662082308829712470534251990180602528893248418884273340635226852501762677490524216423320123928633172431734741949464536773548191161750733142987684673542157710184554666984986752458461766151693069587806074624470660556225515330157458242470257356022011758981365707704044036911489485583034522421771152022084049380397711914340795892018219486013260561988438203135575491512983926272206852520442078583152304049474222136825382425076019249889417645654268221582179838823746363585309521328992117405141868219439128965942009375790932687705643177593331238264054204687562629967520333271371167681840285408332196264564990429261741732508913493935657093221672803349333816362869113658314059206599066880248758235976202656981922461046065640364826593912838484196065101358997529469878755978868349035613045436776603868353565720989766743067351986228220131111086879286937794595802789327579518625679659034908970408843063422158337225028384929032147052452711031559455628451881103392589528636619004014854215674827880930223785751295582471858079560347689279240625044464101874075831371005097445854656597769880215129526294764069062884969665766464252347561421981857290136066126536787880540375833332027444421306714612069074858304736184945308326467883081566275632686609425400486038388759542102851690499961433637433417324103371349248888460273558639752305061137708585196167294819980414093979828034559040855622152876131100781246051155057889220988374634628803103217458861311002912428350137699865265030561850509958004027443017356910287680739412474315002736807846705758216547196474515087208079631448615713868146074980921031186517152198251819696811866921741553449214505653504621192188655638673124654454140472892922369244499909257312004659257268468550139854933381713109146752208842225171669867478816197861850481943990681766870109374801800044448848635793659928778438051023917442101942215334900776970842395593624302468403541685360023570688395530453853625986077400243832018471799476165864502592459172534765329952412930889806544183574765488882164527503068925983321683395458541036364385947574040400497609364342104544841723716128070132882978958205647900870240947349511772708393861880988476978057420852962108727963630746166648743092841048713860559286661122088810280339558782850038900529513558804638299498697811434532215606217043739639174372168678359424212961995528052153887166125480530570686423512400565903459843536495422153315047016316478354748210329770440344246143993299915840410708250902092687730048545880592289895660722444134127418314026349589653812330359801010775324132803976399368065288459795606325130603555687190501872403550629643657970122512070334644424342616554137810219545175358035893770467527668433554694956478463840748675502644871677009666757152907177656780682105112643412606962420618593603170160572770965996939525178929421679208905593475845362701341757618397198817465229139267649033005393924763722842150112237098650631723679683292281366615215017688747285035747875951234320002686545730286222763710599587867906808808053500163788756899166472865648448694748234935191733316619049125515519404483585204540221980941898668997898835875371471592474813029606782564460082470688647873590934790869568962878104000234714732637923081297992956373141350461766218186331774451994622835170749763536316234939122872917819372703826137471802411861493163975374402324217627864148911985225334199993852386410743204813287451447341117633840174946504940400966551833718122529612542371285555711373401186883371598706581299854483157348565398658827336216161735492407415171459393265728760704814165752850924546091424745833629223853311838075894546456069545670505735548313535303515679766102485978261045460139106648859398372093048374312616211431336009776543320948918215783503963834474213730282907617530893785728645969887838936329076923412399958163668892667215933369068656971459574218003707598837023704059788942670596106743605159736788896164848248869323646729749880650682039012907099766453513767877521523273322753185973879503601701463829024133647281751131856509940418276703581039616883752182106028744457544900731900486555985711644780942159887621826769888118143326607179337632139867937465630800019678580863381658250889867005709508323150443210092679658993482338375213592824146054093290366524261040653362161444305484279357460930698575473631472245077881947338518051085796748793289335228233453064187527413931190387544140994078882661583933910994749768099998438015615397455083680282657903666581998576809536320074767216999164376119758635248977344473250121742316020816484203963964254947943553853592456942421495072401186129740864675764255167057118397033199535997972746141698489287498145605739832692125674948469036764040370836950701970944951616210271277523458161239665115770794060710559762527106632797671185625479569057621603872397636281176574323139245219278234307809345523294111225948153881877022536601975442195451174732362576002265244015147189932268720227916662715528348729944654474335523881996699436323449543766597075890945026177391579143940271183006566157096594266346671763866504906951451612273886636277147247522700580300920741946565780799514718790902061255784070665778093840973110943350009963018229676528940761716229865496857044380037068333711044091708096429645728827295134354940093415236402679815693574392362723355264548289009891104230348736298566991219354237688858453403570957985784137845829822563641754792425130522178460089433751772348639602084998328909158261072521449228570452662852664986651908618429451371716600454383945034451706193814978403383056254375523081095819021016530693923361417652778547136439111721127344544644934896034549062402411142017477484850546726508711823925771728370479102922933746691584633140581079769029273614482067277894719157525449782005304699986969420220195706337220869052404538227547677160533290808136788169704804818961772739267247027738572212916136037280114022513959684888197693292855812891521591538003430348385950121106250107840035747575454240115105015944719116478088952365596671821960716238502322066702880819533054046646810433459460008344771069822654261215552748471600143201426472433980742871873848540981534633285062116161925654159569386858891476971856560713073407893481675424512269498000144471447676060137564593050129599111755259752479895525558865310808703986391428715866090487801419034981773945364537750627995648876082834300539326646391034522578031784140423644832721518489682767707563183202663528682430760745682805288848363390440817738049616141275793453377784195240756169893296603184517173594024610499050407724944211666210983813957303764638001159322859783254657080623782555101636940667036222688342042399959576926343486260487017887933678125064104370366934392998683877623955434737760327677091377953117779319034348544465935546209093120176668763184127158747399025937880182690662574259265445480279834549689691029565110485105186026182988944797450591130289375074856992365022740180946246981163788197930378544159397927952696288034141580454727308885909826692220569227164243265958088332924586196483433030441774316781456340589999865568298351615587652521936731768344129910489055845700646826129933497286127695118313391940894043381037813181929916209173228094812009602048866724967488825760508733816349566702470074055278277917513112574929251625192711956525715350705747331554619793110253385946365105879086864020746059678104066718869188706749519255121266709899079548544111367078462365784443822364086448241607813107955868623607464930173134903540654375672819248083340153212023539004922191860088189136655396318620145088173964003996128678915321616618149291789662728630880892538974125548694730721321038249953079001632576331965774672511874314292592584288968124780395658411320426451140858634532765103624699691029786714783998680537369468385771392899850644933909757138359078746344175016815840546065090910737185280253858333977002857403690411579941606092256388004217802556860673369330880776847492171891957209799052150638048482131505616064027099274192469147137412444768647948444424082108434316504786973116614691557605647044530866513384267586685368234689472591185507075573183041809291078552623797963094737451354777689455710681411728506472052008040408132191388423309881811739330896747559280715912360678079681403394838085444682308693384193803945215941188795715196857714056771096509300306244452444016462200419943061792345185706505828151009861396625466683861986936940466994617066601277033959496367347326580401819915467699113345019026661011703428999872325331732837666634304705824137663256913761677312001927036550492683009897731207593133577512375620321551546461577996575242793185142285010295308525016127694479829478005556914402841188024055113825637774474383105694484152252706374450424003903227682042650344901617045261019378402151152925174536035310637049445465120451372157759337517126834836369036123420080791707388314849738960911368161811055522662602074412649414481630869523928071430533429469872500224925815773512630370477631238035195820220486267126801575675938980692434273053379955918713056278842601214065372531218682542461247619322328471334258091129309734078558545327079458472558383791687218581508649089971284750994561111275951715598281117385651192660441997364265310340675068336363431095832780061755259315366996691888143151100998523396839788294520244454318177299287726082758698337205516202732241331382175741824390173349809860627935941066923754347402775229148792050581569458821367601588102464432579344398092161175304625933086403755166967041440858806635235981430035649310781837444731872394896827537019774036318349273447311825937802573519222405653961322160626164093782217407852969281459703452768099240107513359631062965817224355352808819919473851252217294299350470423375445015580743550462686560438688680549737519490515009055597592266963513469796106246391879320396491077348873087962101453233938050526268386770467117967022835433371156110167381574710513372762356172238308073806716188874049361498516360421540198250579395585733196967948052203595065505546992589851637952072353197380431299795463648911311996093931119790164851958000265070627898642299826209330271738335835548175270147322210558372985914370317955479157473560777099793280336003660254821341910480269231888518890439481116624300994777993112908976941167941134109601033422122848908586021622691523011039446534119011219579512772995779271448575505699478653303503416155553604755223050115052269823850675599124953004493230458419441601942303167769384177496183548502941898239308270905572832257226590394804908064045257404197424272831204188388941309954954082415066272946610617403912195088425010836780971633548489561357559185878368431523656555914295343009811722442020577364491790110012687303675707639309494761772682220117166407901937749442982657934197143483187304172068854644496917145396427037724356805069556357477022135184701919512660974961166946542400763066401038650397739760719986992924455363417621250728737086902529145323166910126575875083320110241828456965796898312770341858757581466789155959079055550728842509281893901921162463431718543092007252384441450877079571184808262361505066172147579896944222263417738192929756459810251615673932413253138114806549079297301632399150013920899545645922233593752170526403332424802755622063950370869798165499032777613525532495153443406807029114169837825428492662364000977329283348300651976247275968437961149367853428690009382010792006765300020953524397649654811047465360580318623207152518145261179712052788299151465753579884731342301645590953701111143150860608666770776195572280452077523622420552127407839962632303235478620702145693863284463570223880020007653821740634768952797332520566481750148268930180453576494314431937572877345836756715803361513438214121280789324044806404340776568661981800859517323746184355135849332690432933528492732970203770667068064362634742115383898448816385189920719923209152711885382961151334918357548026641076427024169792476834711447874089030172347500392943517586373128080221234813822529444729565350672663965307355850359955343463575465621398042553441966252457301455114358741116577826388222048627715764556257222003961359364858288205842812962694730124793875980357633382707706686158735241733382678090320622904861244641328623838719599851877684590368774938908589777043872110432285715826277428659565060146929393331677354914109496638680870962610667219975928678534518578750959963686500661768731289129848438588387528292597834933519122928802681652049800267669711906840912074395816796544073642051495957728105713637443747201437718100460141528736813521243379424808289837324144198661380182148694126086856130027835606714779594957410572388870335711901149542225048815858637950206831119125910644895252712285481058608572770866431054745218521712023958275680928347716120955958947292801419401592675691742098865382208083689379471330577036746816285599434095153408189354009240302775675936697559113195873227272596656948530959110932445026911215902026288348324459590025105359721182604406408180128565605618800641076676437567602971980406216378416805085744618522873552708006028860559945185094114522237534388242785498622418304908659740989510146091003115596347629303613491804764468777320937771229402832628578498973621588947423858341345461023394581811635348884658370736701938783721165069076459097200236070799230911553120610108269407654366948001586439130137879608933627276116297306234334808386169560850605079585038619530332248974611865781832754631137483355077031230841882713174663830525337355419415507196718892593472529769436672883187832434812670082559714770931701448093707096269830667658415883722723679229415842684859263885187185470141266358514866954021704019462125929771169479356863074475708163619859552243893477198657435773112126000670157680029674951540047159762125923546181442602902461595920279764665288986758984003854353135404482565811712793826318492917106729799084289767081681558287948884031584294218209371389230512081307222688498491924966542757384456985571691017769521286304716369327137414540110946121532668146683039063705620237725135457663379999326877498754156316844223980469059828025324733496705378713415338695814080109063120149043513054387649262826902612771119941716494841948794791414189829046327875745402266316002464964552470736003696277581844429848865817589761877720139176786917739502419200210657620822242482487448081598950503439279201303157738214373986431710985168477382262713735928470797168121606623447547900929464959691528933563569426561891102097554291681330689078263182220244105641107447606247911171453930311388208040200155062434496420287910627676471353483002405212930701796923744454663972637969301345954204549663507772898719619362760741775905759381864137192619203161783502085850611633798520426646029120393358369320153463842262363251985393581516069531581465534604115499212043533762666941579417680332380515769013256794349451491025583578091668353448637693436075850354016548894255942647447638309976475333876248029517610722404467471533479907698044759867311632192223192785567874486066474627006580471200965476409440058046362396904510656691963844035919250552868138548439082722361686840924369585026604488203334779517101224365776153912653984841185689753564143906807747216886522221986362247074474055519129568508076146980221608580025643117292890496743875170021886843158886311577596884323742245615809464107385939996758227328907779119649495152965315374500230569448766906043317822684827820293367544195966358337456098989699987666523748342356177772417582252461916985310752508168469128777951795869984955278899758958934829756543088041759740267383408059937872425216910907650097939084745368522479577098772151351391565552062586743688280575575418497012516131398334021009067016138243543002241632147190046258955948956437544754933570201081328309774464196614041430371406627917643032107514488820300076193602567608736815032611356996894473465919676962039312523213778559280661756666755439447942767542417691157686968070809105979238963041911183518359161731174049276484495828132953852696459337599129755484090703665051368665517525593009604285364757352631676177246775394817796576539934627979590077363729144287106201258572929801503424793741561759608059118503238372406101548124193132251331263617789317350775556941698144556112518956788285046549141956523744164896855293354926966712782940388481834970952047409241928127413975669568345998396011854077140776139959360148560063648982478442037064018570927988871045833700501222918245292061366256401238590998439037979218408807036447194366705361537184132812103729694684548689994068329380606517951258249117767090413187089383385892151780263253346193664378754988072979579262364217551514200429574796200192443485525667093243621483287163760300212483255597883080011384782061640371782384955874357371573615151525682242278222060119485131217524105344338646168003798277701569009624626259953103192389963410982758337224847705293028779868234928044715608097598002129310769013835847188980802648676617051417118151267247700659868476906609870742292683848782616761278337413369865119710259179352249285553557156499929555566799426343819555107092954751273230148678952333610496031992581548119642413266807397075714182909594367499667990084956244860573232493455834794286766906414917743262251856066283050136163048370352824530524167034794017379148617018396731922532229513943372462125379601280080526545524650457960314227523351535991532327843279471243463726136235970603616136932839637074233907446888300476670852606269097787545515866007918485322482698942551108524416694720944526530412248149923966297443068092715174866479100503015955213472183005416218517394264889961222312429562234385116911908696827915053497332047336532345724017988760793447238268282311613276394546692657941091750487827524019830363837585244474752477691910191026436867142452390119695727403714194682382234546820918643111991631490195950940509769828879831581401215095141588901292612403643897494893223958380892576753950519516109916453168151401192211334145502025361696514938824577762400851651603461805860477354132068186663406183025191523428492509827981684409600074536028421549826774951365242043577355545216131625026279599219725858884299279880712869799755015984164002433589457620093179229350261062919618859457100649373027518754682747460255326631222146974462850885297184188307062225246922346584873904787520381403300194150617489410891203480944290026242589744056372667744592318589317767702093181800820951071968359217713780757702731504816246984007685036079520216820485804959368623908270484376732814591493496978719011796165695632762675804850807830969966674406601128862076576604852465772948963038486360433998192195851961496290627323661959045832839076795106164022355389980954141029629747017475306603463865336556919550468189236612627940303408781452856685313356378472356264011893787785577295691836166337377428385735497722821255902431709573152988371830558704374726681668703087732828287831434811024760080661982787194169599147433823350111470873616021030189661676645580893677716809976929225353017792639981489988204420534860932799485413607267515513684127346591048738813905945427222528569160809919504049426213213344106437433530213702734478022328977455541502445044279020226165804013286088620304242134381158125241576075670749473006149654265160771819622416660963316295078577301192338612162180977354499931281231443476186134642665183241045143121902192117440257409377903717958074367823859904889874576098334680737069729084312774171832829688968536189667458847014884787991635404887823477414915397726229813829459031902450052253468962740801276248384978505296180060060092312306601893749004159307069628505445324549252009025184995088318780301436486063728787265654684375446879965295383290753232210453865796045452199152662336969262379836655958674897354355275089613969402404409600138377336761434541178518611449459023824392273404867990584998346260182739026570239409454512303874801331708813616243524227580578072609080702584705748085801464820061197384642719520144729191250709073280984954314588270990987986750472564671708384881773678797979893498528578348289853728478580242358190449116206354800037595538801569969306771759871599872860273686835434042741653666907387209171590434057095048301374744175024715720944080708497662669364480954037380966863164778887182243790896677822741848124372435275077181988549278739648917979192952579275065187679677224302508695928566121785547253266499436230110311783445184465325571805070306572954293292029251507247172083919730752752277012075204291876078224722216564177518274550711853805928074800343287775046530901417262877589078817294890725728657144260890679136041023561894011862024289630655690353011994433044753664036282610932859913034584011990538137417956189542734716176635555439534365455019239430297008316670692147448226036728094635053659294005070959050994298159337111863323154469396313131094011691678616337460654070246985870126824294435084971606837371420614264352902019525021335119689414584257935341472456678978280475116507049601582234162432350424308082458760920264705274204156089974118503718985747003801070318110827828611406492764437953298804652802383348061788889288702955674450139342116455469171134917496555816015827804618283466861636901719688018008651502322561024131099090248944783190360378122181283076671268830559110179499707866058291795815138153129576237662140598650421082052157835106043378598039150680636439896774193575447322316375920724529810162386402200544510409243598243345953954751451565536869680818380783632257306784699941555191596670007457516538190472919906054677030823626976696722237713490619134632805656177380568746553652995578339474560676641056428792458886073219428146137329540295328991996999304012362732535234849210003709667145351285823402474134619377994133577809913720331610633414951620901719577659817801410875013888993299019738019779971140088068946212324422904433459660535523823083445910589879644052591071004895952231551014866393635952449109083508307755291466905586286170600087556921284463914443754617236723466263643354478910649146640502265097778492210597463540969231146350967439012639993176471452836760210314473968955222542686223683646419669086165298873991477182299123826668463636832665058309776978918119054812035237234776031391508415199377044628524985302512720758174631391064270462062343815635906698118693663421925985453894460272685782535788938353468043607715648534331928499038535987279073627830317219734298267675512950288043578003949249078861341524339492936645825454006293703845982976827928202534371905802015537875339858452610137787098864421090330925372933230065765779466416184538681013553993947842523148112192247801516432017868761655885087247424950800034462068600491897670696793177326855875138240858489605932270388799540952757023353970370159907416522093868268261815452933546672356095282607691141645964872707305346196569128068373913815767903652537858338237300057360312647032474939770331616597124588604799836059382230894253889448301893212596746536206188557898008746312891490560520383672801131088738532842674392933053607310127606326372724327970416083688183009729285763411811632004885139486450089963879360364515192241186978356448907588861548102152471060877323008696680125762342177636820050739739484851338503180182337125307068920471462288278690515375320795683477037257665379202404001585179822484581994626858257647159589675996700361896108403424335183118833783419960132389724577059152149370635745177676797438521175821248013860035112138944327458518668331851161621452954947995236578465889961694392292083003662464280471219274015116563917303970434976885922965458162953033510615793413269542599453233772936508149622924561034695841887926912177216895914010829280365718430002241214546126124637092017453400806953852962053690403817140763915511988093871717421676994561807876254325525009740920554908828879236487942674652342429616364931535828849731063822768047696655859102126225701628863438587955979149410218896268380654976338257400342331222613039095167985422924909465243702207341726308708016474732344064492693630741465461739755175344263443045940730426689413005677110544586545706695308757787601252746287584187006534495968476423626375044131763917302075988358910515623597006710039229380949607208942818400917981821519096567531452792375372608630796321083466357848061008998648558742416829089599144341571040451706319447569595174085957827079594616552126360387499909555751232881768906089968887838403969711471512943016564292643729394688426912104869971069842055729968205033304265130757732706204519964828761418587755805563631635913388632929708131908613216336730343781540659617932107317035993287612200626678630410331513092794104924631116657519307640464987427357055347196261593674147450692762199381642657912232592299410013118046674409159822888482506150861918682551924121166713623779474935110322513883020539028335348498999536594808985872376063949429160772043213859984065243435293055471648808173807532901487910201053816759069805241789363122461070703155114270464033840086763002362854236299058858508617007754166320472874665053815214258262304000900613066693695105439926352793737636758146041477674841692229845410867613244330257824788382750059104075036494342302320010606095612361079992251304643950890139001326224944986821086281956871484112081199351404875343226238451383710427982177562344955831850735693408389235357976105936173705597011695253632884897661301284486698499785633233476251273579100695685403390541201424021685269588979587144003741302856075092102031593894869782550221296418980661539968368650697284009756138952949564810827676886507349479793131173411138201828578475096699351652395620273564879047914048863976576742681717666389821948778257567195163782480382839171167062450211763623759197716314768771715911117317829713910172496138475312735422803220790799265048795397037692057351303666753616565982337466529984709350125818796983830061074276480117853397214566679452198185934285534330724237108226349528427646179780395729490468878903039511855831360643826915259394327589103243804659562400495480365559582092545565049375321166645493441716213016071644923379141226372714106075268420519535774656717800143029765362744170835284677002965344825664996725213385765485656368561865198461485378517398034574458975408515496207997281176192144191366711005559792975610341329707322035362289918615808885872613632228891876076818520769568143831667483196884199972944526584182772053895104053473668712259666532501088140045218155204943988226235562896439183524789538414755450990126044111198350673063050829346934421004581805236120269959253174523134961292851344298851686570258595809756121365697901350564301555519997858096081662555628090488411290531527967446900058066324825072430881529569018604545019956170836734038807661260620486961791439269498459942481132866747179235435786414665762795068941199547306880290155703329441328269761840756618322698478717044517121616227175937748366974306529103102905984073658033139088923514100257323894882818154511722881843269137451054567502517432530153074625762302243212804789133031119074493272409670784936543422835901434118298478051395822610768361568572261502208675096520367689338131566627337679727365275056933566730443422449942835512172746432090950712945612595765614328051328141127485084485427814925990927714823914888933034028194469703555553785419570122622243329120315803281912368639478419099421579240986179096789488260158404918085379454930520921433447594459957700089871112073569971275810640319279534582469935769841374608706433614022432773173756576270685388601539748046062642249852166621148828586985266175783083390297958353304760159786067227683043982332372957835997524996083476996441365108808248116574841135225105869200716221569825949315662873218142491284991529539197289703632091310277479200157173024969245612318256945221736409484584020999903558235072035522074606462173369113665460798478262325960813702097692199621869359929527368487379117895569595799342935821801562966713992223759145975308954600232113239721685682130988412245704186514090501622952758159746031449480627235022305920246434539346238670703276500541832641031737809526218925131524896088650344363562064967045520078066459825121670826659113784926885345529966402611399689098177069628576165520721799890874323460237616259213806017791790893498679645515777331000725548863743177379021005891439426842726189695612525422688975307727134824406679508794437450240099196150861087618120654744770343228005064767704289372891214567698575520205532496395814802662325543285616354058500268966272168295814208804312813634096380124974164259449603556707239886922254036097239060004694806222779572565586642032519539172347651018552572547315684587752708582135567172496503155617123352913193591294233943414952020892338728408947488949498296365702296685825045222264456463870136253314291449164369124212125837967149984634978367564173827404915893433101744589606622362393818115043981018468678931934828959065577293949287676264646434252759120524197349131046372869136700213413184054288324353786656455081619376205361724772827007906456207852182044471014123484232060828390223482060824729614227267070240688089893558162024880040626779020010799492111409768627881347838511407587186294254469717802122156788736872705423870360866291599544713642890878436825421118325809490261909279452188497715371522695983112655933401878663175416660591421639892385575478841183959837368651297895400881459846282000584856098496966511050335367215893313265467935984228841035327814657345684494458168820313420140478495995699838395707973832660108655524545683501073178284375151448106298286521509703253536271830576139506704120717056664639799090347831161333487898269391380776578401900432005012539213930450622729988145494760493481550507055751624655011999154186746069240515136590089835392369234969680099969077081888354590039549611795924541167497087720907626119381685225822361341805124737282238218803007772727566622473812751562982531289504608133503853744056015011898872118002419864595093013760232306577027478022663047660448506745971328487383717100104751846339214323244745567448046064718443858592100083333472050421075121320719913482620986490869413526010132039590911976555102160440711088685676603599543349733087380186296950785194696925026958377762006400972051773733603839594859102016659694171497265521218964338296908946628648953693646668180678273088276792432009109911504649696046785721244076195888496302005634456661733132374555494051255051328529933554760866158652215867451601830757521407567789315748271639626090057436896945389261684814100913602680309058504932521186663607664313225623743645945280516653225496360803693426755316128260802852259098189624055415022635617059648494664215901065426620595514693200465480212699723018975793361325038173847721402443837484237044998039667821424906072078869789868648949025489373591148760681353224207967287752323360446355224630088698288575369834970453096334058362917818230386375381472414770134608684238884763046254278309037291372874979751534502978598953361218050133928379120375036991451452783669793559709152508104621599123989489993394826086657023386877274273836517563079958936532153138739931547384996035333473396273009552229048640512776299942416322871678367942942111743305687910441271600431407150880302302149980942943455134956917468494415025160737958500494042076607250337711008719469172828772836214484936195721258842211966132299607987629177799976215778245071878657076536157532967467750049897354627446368689158005415559180120516160221265087615593543713207685093995371363746659721545953886919749883273260521290204665299844859561920845418517301630988289811069333920376728097324096522042816624597295845109033009969981404910300966301559014771740172789270724679044868387688401421054859906804421182880632268330689648463978468075889020325526427181889847061502523330346088450799716810106576794480539755763929067007801252284252013757673110191902842328513563609220076286682375895365273300853497486908892407094343555261863477466296781915719581992642645737646723391346127766259305236985938260633956877562084698614738847033992340495915286964731849995962013300072390258632111529924491884884423328510117482260469560176735608482068129481013511578329001438608509148416731140337641268926406609826391399718501538359239356780046493463557675817195830697606985655561597299916173619900029102361006329544537833708174279652887373975722785511120039321508963988278674600309420574086663946037037999035289489254675610192398419081316882032432725623922432614561232148979504391915028725593830830152293287055989613614896659569865439007165900140703446874895296343162503152924520078881136827297861312419538570320140474992443572555708250404467814723253880000382046790309202460711941237859373734268808091586679820848001327393774068538015275351942232906328422604742700718963305676200167583826951141453200916992479968918592554144387950048357844272522965536820354348113166586569263054067021138409556854788138688121357242026431023963198889724947886213892473939870665667566827123396970122547977968435444117014180793902768436275615132426705538428026705232277832119058738240086634421330316439702812831514544765446707782077339554537289368878828198011880858087009026399335187133557743581883591755728341302524902361577074005093815994160050407012847866546099994803728056751232429467372430895548874004349513429171123066253681212888554638122526844891271681872018359866888841952929034397878370611928290475077384163611453966999832750488576330634785448357999528169628865659516328301686831223075765130828536098836454675444886562031943495724959103231012589196822362166622800789255456179776999570108483075394580600535639680919331660934694010711247831843499112419101955838285569533057329901776587856744352219066579428662047238085223317264685182069014832806250057122357774779997857367523364696655140167581778415958236696609244951626219378654671024167033769830240665444205703442561147954967171669724296824520520858559488380479358069372382759683481293517169963655673062570532500969565506287977355814905697626419505307518961930750414577693343435729551388890794596848965931651278583790241860935534863762133107831860514133170143808131060020718902769356535395999537881538632731802844902261469686243708539624317791891216962965866993625175903742393981805550564869434102756113785745317931208318459994561544470891430933110706848684974059330014655626721290714138681403905223132011083821855907846899540996335895256054965603102720744789953610387393617274368414242571599836823465156741369049600602139653883587940284344201132924315118260038105027363146670324764733627672750731311537402050742737492423711442938273460018295667145979668715088840831424398175802145292485462209017582519309423456429204330975714920514309159314970795433889350341315826749291691430002664529149065741449926071238021581365549291104682489412572102548806577090300084871439882246128397550183571501285331876052208121995343340003483274074371516296104110147623606665216113341841518904995790374603840516812531664589340481044034064155308931915085979901434115902434565565155584632894790463714584010095798957794364180261518022650392812771710261767358752689324774363396194144218518126013032555339402868845773045122299148487116204305540568052762486380533805291577823769821629478141943935456495326848787975187406039533671756321958075020957034988810896730976857024504761981132144782185872664209702796406660089414622393942433673454288602360970978179512819904892928085178511755304413233051900034972250667635877722296304603699165860584577671133739719284367923456369737392099607285547527080992218318243490586143560964083949689466030772504468115944167319848344141312392077377214768686541542176052495178672857327210119571345472365205813425043984610876717553636565918801943601846345346433457651700714044275044800415643915950673651959376718199968858680896839876535432662562525207021350651677017798770435361867745639847209321466027186739789113973454658459527784427891819532744310877615468923367504063141599031946767804618612979085726257956695774581040036770636857519881796835024333342705248957344317222222531815988740476592518108579025564761864898252625122105940898065759820334667637389552282964917034383780511468476147593007291236969143746700100220333136878883168547933546062748038292575320396782018643222356166074579737924895043438490888936944582662085739741514205541826068840742465419207731610714700695357115469828290141709029290202161907336600653344870997136864838186710748959001918668906421933085782189891793377960842218554387660830149415166452859369362385495365987809855126361646115641587671048421941263074999122911630054025874843640790696244040647360609711837540056880173369879466151853817862640532658313885219652873901925071832642523763933885089920049407493978022371213866120223959894554163577330869689385228160803334513558648816867862734893413300997615024841810608253672061489323806329103842719808426628463494717663149629394742053226724641676685384223653749730433396801897239233065110573031703346823742282966116392570547462097180415799817665026760364490144425691633654189296646852931901189555848689899871808604381017401357409830902595385159706705082870522061977659352033621353265490845364791983558363860712813928656379458015554678239010050066166356206504923359762096309724836950443002379047142004935555528170797374744121099558680344843073714022900698525753483072033770800830230325875741151803545929876459452660248313198191237635957605819269966161147261611798332097738486503009226578614138798920473231225330981653153455084960441944188477500914331484606419267051920980408234060139746563290181489231916538604644077351573563231323810843767603857147597220933929029538304282981994769659685087538410983280321078058367938818238308827230372507389267173700713629481045565516947622763839623115409700045605271753771721864949995326597223685839399365961571300991709784200939785899406928914944734240402116884051836379520405766798023255986929472434105707227981196743151371327797169095615299580673020334526480685525965911719151817839079910813749555545462096426858889032330087295204588704763429546137436066575474949442484286715547635507049146096452102739923450423812842829964750916190197736200794199862581889439255441483513357802671457927347157639152794608469401478837871966939683694559441627136607518546113307714281747407043551397760448569289832610322495993664610080442016481496816590777733946102958162694508094404362398943503234448219131111404525884938635933025506896147236452994854759326817319174648422983882694819671093395467399869210585477050265889105295438755400508069025283156669030885876913555345592230012197560163335488625463897986970568300825863320141480409143786274463677265284745095789772035875661479174900848475809668334629920616680894370826375889888128076823667422876517830442245020808285724727985268814687782960510800901557389302878079323535351366923087653643921236501201247108070247998703403643768317817356395048553967122481024198322782518751291121907679537797300418464207645053480080184559004252031720753481035258514171565216114790404633782255083315124739024814454421712387155778157491224646777874694803898516680521438516490185563507054017633280080425392228234239396675980232034516920888413436989934587884112523785283978630376921826354386394386149985556141975890109559697383512736681688475753279190716613236594130064558995813069986063385559253817751895202975171484930979012260609396041628852128702403566855961020824650097877136321552943865133766468851327695296440697886716489357344819518342383508375149259166835842708180188355769629058095893183322253831723120842830766343911361378357819484173679057802772899862008866242944451430540953327960612306058206619672999912351096941381445097669050769394742768953220188424478218990820787165207482506587681561020597683710162156978248209816323621784326472168602586353517133000562754399407056581611085100844943092721453316387453649833575890741479751800213638058629948151568029282682381842263310171857387963067877094224556944216896042450071459577989696068004689694705475451546881049476460808753729184409293710765381019728726566660470420002558076391280529660851955656830511178287986861961018685792682385024358019697506628101893796099708164943138258831924309678784328231212533641037911554821785858749094197095530759410024588798254455779370851489121067929017706891326543444212799014453003706777639386718065753085980704395364958260453630763130500134443195733834081114701883666198900714716945506322168412568236140534694880983582864945231421706262299551186614993076760364746193090675031994773322444078349394083272780618973619887235918764985525111170332479449426346881596778733560957492131854186901830737542894295310408636256422676296822930915203833310652935844804831477803000727580806676732150268414108844509075331873865058699275030099868380406495692076147424612058165317102778969128380234350374856873335689265057559808238560682528220679621493782428921314189296931266175416841974550395222409303553049632497587951193552101327316073139139856781977564184435114520793548966313541330804342807974025443597713746355971839677409239564480320921915393341551601698169322517340314859346395170079102867998828110818878914034596379086748500509790755444800273994348506577878320697856515267794212425406010671281907775881089524304433568141954387303939686957564146653152086826705316811197408300945465097934736067210080965100877715535127098311250616611449486447456422563075892112544377648869070034586989435950396665533452827594437291548150952830934474451517109155313458086584758802161557448349492160849725432951617219118502924470700530674495117823216235452261945039459445894275279445860885452141293524303441706191746790765836336316094706236689799992054954121249667541138195783367474007647943175118247594151292899250668842757765467942812060495199123078578112978343844118985027189823367708224768258383196437370974157435248726984540097237893624114093274150033646250290269240876875455085166250020950895225285135163743924931980393637918397109311036884033969047570124016635775647176364262305460828925219168459141279503079880572274697086092423978530446403918924205288723807156856767500205255223633018300042084343552664703397476683925277344862781808295964366663994507281416851268726089160229472951551018563662142046885449039067751342128733065835878566685643689895665110417930510212357564663222939875110722979935761463350017149328279187776603325375884207549644219119025200616336277560391194134319670673746669233478568478943151854146426864990211424288205154346430874154486279258749172830890443344217283987441956983294649299235355815309291262985216788561680939561048155959757323051227932605936241896436720955515070471227918968089082579595159098006138870083609002422207879751011172812437949972526702471968298636791970293233257239767272237292361589078824052717280596498256076663998429820995170658718377814763165833873624834444708585208522798622610798519599395548907444290551899634882572120063966211506107723293554514657692106151733050973705610813314469318313874061322880163130594542524390571953079792947747393839912280249706844814766153953016941829265062710211117028331274621291940672448973755324372003084658967838190208214480965328866298384558875495448948351643948802542060199793083717495173678189068047740505482859999747414528704605625710506008915735616343969946632778395577012202598281930641468763891205861329006044580280835502826313188780412754811288728087989049299716096087019031150904696248364607226815124593468263218629424200119100646177116546644637092155917129014477480360455601753368124791262756592986165580818010182412250333613767172992880697891926354523311239442935314426718376046847745553330876638301693688080962558488023102653987980200772383355414073665563395265897294173634712507392304719694927919659472216249626166672643836779971021364243166083579215047022185842162191193632193057746363272113059666469986370966802031265236961289081369971226859707505191363621663675679468933601205578250193971615347175521335716903728755483918345704383219951038185004642167574195067875011907429440488730189053055706231330931130084939435051206112077354000842842560903002622228771262571551419710969902742336881415447904170854422513571107722094676024750893386105121952353769821779020572649171002058721906195745716697074749781712652886009793700246017172707736392529918287172548138546160013973993535584140897631290217916506575367634913608445990720923094511592458240521267173063260795798438463910444925236237730584264722953167973793221395622909098032754599499405412941917355340601925103634077747587499856845109241220596035742792700627736709553797303443118785653170107046596670771216598217107480686415535717712630320909287058289605969300679097779791949604945323678220060654757325620288182014122741184646395760308644718909467088949599354489952163671354838876970871728089294908903005355866884297466553137144952484553792541832442695533124098105329723528042627438562232815666409054532145842550475747255771093785905567400127378276715883410001479282540483668275319608050260128166783738324467046999277311298848028046844433245397963206947300238388145783127262768071025608294719285888371646921140789894842069417726421179981656603194825578449083528486292904139917009469357789222309985988824041270476700601505600191975260760105394284284177823636489634647251129781055180684531007015915741868811644563561507758149240347012263566098427892526647604778670504988532158235960471631786410809372189783680031083933468193898162951586009778170087180770841683335741413233671502882181652170770888877249580212462361195793599324796983559508532256841432192841281353845565764945516234194249679869154941201943289977071861636635855325134285801587958500697818698763776369662138238827129169914345556039868183648676984053239085971030048644909728308950251313000766065044592873429121607885581421724115575586127681138922098958690810559065495041389658694363783092250689368587363648039365371750286530823016019753641425025212716897526096181297856452633671042790684126974194761078525239612832271053167308783028296501213911181633140269875088112782439857106274272687390903150223106796712988765922751377092114280049399257095942675448325450106276496327971774487321559536006317613670403227673507343619045069141374808972644212216498724134182986680285540216848339402601114181220246779425712412293658030435630809734743550851311032357459741969628765590014629194414151536972448597658638884169546217329217584417094464710773230107006894802602459488268082094448720493938611163390931163709044263564716289857195552963608150714687268364587512439923395639728394789671504577667865080384392187616188016475463064945056176579585497655480210703284698330179980047299066644367435866412603819037564069589050696901775901504038078772062868656683879865014157714591965743030838907257430533511734410243669096585799693641865933002492067503287647020449821270237475919550521599195475809005014552848864317908232129842785060389295344230676095671982698353707565052060638759817283659776283898044500712314301571223790125959458830373971567299836359751835942850409395357090890150646044443374863843191282594646593625880286452134105952101922660034906214592045814408483866928470926803459092002382178112096530430431660521221883933537166132240942840156601153652048984694488185179934219516277873988749131053099153377789743517826936781713372415760570501286947200626772035787143803822664027100261020739005364785777741912831578194011124045006773105224348744976243764311468735804008259137329457022591506184241378743061520648199972308293668101340341634056111428130838902855694765983674457607357719431678685114402866312302935131929034243146456463537542613258028934650213298177133771638485364916123501656029497858377628605997898541005951726962858446236719853002465049773929214161118015656948224518019041482497255449426260416074544845559301932196238215082264338305369489943597348026220145116691731263103757667231004729548333089342535338898756294661510883760604212041132639131425464198520391548327792526731142610233173195902079937592344641913154805814828446540320872214150053181132790057592116581504061517602555243611389211864139038114778821081542091358770725758482027814704696907899512863085929944467261496032433165617912980189520651438989661040525581401516728847295525791983427581316955024553477423777371794912110129394871087687989197033407734477028493575024106444340952197275703078988132968115082797406642847638180314391604891671632201018384463469803801363264516151509391248095263806322582862153772964110693822138515701127408877226444731720678644401862745067385146327953201515184492110832425379482191297912694388008645265900392754855028689617798816577504429922748309371575506647042824372479746417939835999261667261551477421266239740240033840998841013982258919363036847257277874108455153392602843455279545447258945875097188779197211219183305542353165599529943827552690310989186507496526078230337029239761654949342383813333418247771455030753531167980224833618840008615712987089049956119272129804480203826416477544747971381760029764289480090938850418957148819563774333206335411380961687871833668739179034302697304388477050813940698940617824624571633117153436838569234224664750810730931929007446685054728809278621327514642683791131597477931578493118886479315997562715702667501740278241315827089465184124966132513523718669723175733310155420880209824596499150984924175538598445066767452641647810169031438916810698844272157320010994090850015677976840875337805912437298995919560717803947644364025200457422254361965242630415493254262463937565927775431276431370466060225656952693613941423266756577776937920369561004015404508558084844279122596466103313997329694610902378740578460463825940689254817522004665437920985341157528569439480686314088401113942731038285649610891297304093391880708694435125358754319968357750339346960205103965186205148522650859915693097884880044870325168314965864054147263669944764049065615614873612026992997234499732251769094328705803691029850953308885367994330221836093303759841088546291852288920925792406684234286036090635713413530002166712397522429460023553850087884704209732068978736922741430438491770999288443022798938032891214087622621757072599895769255122872626763572795934970316369799797268949258041487501082874165967194210578649977436143014663680680565375690806413224223466287698464847987931885872343294503965241948013796952807450866118715354245341297776142926978317559086386192135522087422188187921556654610025311176319178131379053063772678595798846223691917522644048858693135339616616213620136919042614985782148638518110580701872701500732424736679635552838826835620200564582695227766022139157643365182738791083330178964615698858592050881699640611010265628174612751200341552694219402630657644548150942628577744667262162011825896024613334691332921595638502395591794656934039635721030588760546094287552946389925842920118372574236506776638869081942366519262519996672038754854766964918400118235312691422516159535332672515185846875374777023708932854367732433340937511172298416799180926328962202190008305852085569834130005921590646372914088686536709431937410128610144265130616075837981500406933145550279838865886251519897847869305535757185314287074657365969715191397929881823838430940936258828863056588197253619605713767460964795111318830438516460944218185978659319529602043139356329196233298499122307067382563383574166636926664037243496393372066931963660120868954435782305168692463596778820503152914515039837469768557464712814881361166857833437533842052052731465824471364176395627833703128506147326256151669890024834196346620472352135077418744439360333406036690904468722595212228320039580305964204872476058767568070470066935353709137169493084012775380922459712840074620838196496204493195709597234364464387106541782867974941022381077112372812032629337622467447940218075198237721375153439457407760732112232775035207177925089360762099688899645823365199856617453577841555394245965923483334346211722509823727040615423921816115155254710276105397759829976224440820623910090320278452545190513750625954415266196081270166488843557821657182115527560854478664680317632392838534617975523994940679824016134340555172973340296950023234267894766264946650802494301317395237831867750214057903449001130610575443459815921763301801310325942337322449635550129690654190794901555210355491168513810954513452194391076599971063708274298711226726847657969579284814157453008459545688289041406268803606879118640632788972167180828905839704334225672424637451543589948104234229564986310155552661812336014812835685867732161286864367884581114178328899806983274766122447712355507247608090554323969210851487571022305670168067340700753821124005055426459826664949930623272143847340977158762539408985770309082043829346266211980153933608445995862168445445184438765996109483339773189262795181445048414029935749779654275758606165085072341170065904192357520269834360020437933669831997785715202516563028486129229745896531544383872802443555886124784692140720470916315422601004322513823986921684054605063811742797845344357021771032913477180287640416437559294970752998172989073124690221621807819618734232224203560213354087960980483607122896308014997267477688191786994739142444572038617652707609026078208960324943404056882502407695682274717383349499334075487881943424100756832180939773026714575886530167809583771007384595370581239532409228124345935124562399805188031927738898910541550150298562856657458626696901116525369875300513543309237056726881028005694188262428018559857369591003728565083119326024767087499551146488927492955395674222365517147884408081327995238302510425547863748851998292925063940442642230716346423751829693072920640075774782475038178918924018746972156176492702153819019128050912384774479553856285125095235249704979284348091200491056750532495567362716322475897097168820467403603238766971553392387751541609696030765869326445770936255893273378499411075703278702926450639953245027522594381281483027376678646135112462288563860121931426474215543382664344146424614504247356393189278341847140958298595955282259455992824939507864715626152319924691547026622509410115205177676788971956679190920204419447738296025752589637582771265249498341327455897628362396682708504981892026185339071014109076488384244735507195713017643943746158211437205279063303670109281731975522694695357619582206183826611711243132751758181528798626249428110377230465419717500287837812374409703018318438646037701564359652244781636864561630707295947886403727882179169517320423810946598561575591974039118630845346231030421162661069482058679414854452872625192917885079403585104343231680085897376224115493580958955135321193347804030410292422458303653710509340247485169955517915014524064610936320709134225093024156811941894836688104083158638513375128364486291669240474966191720666283975541513146118383720565307437868616709964725501478134733990075945296722708814524562236845467276017636291820716560403375096268569171998364654933008830422858271861572578646839989319641629830067137838057083728414026540794331230777954867876512980403827084868207336873100215000910708540983336101852396601001590069960848983534427930860329584530965237806181042249377222080738878755256231765948998477942023967257814078988384821046652380275466097464303498754350339636495316684929374608684298437060516106228885836348407442992514539795541542900016150821934761643965034856310110479650161193597047953562940468138278647369431106812442337206414223759537288777229844296409146138473413897360068307066780159469468676013583856326780455753554026595782645074790425153280739796491107655792433564867126497885494255819483241909308118479151954282230289828747403448996353375297640795140852051681028627572947774317923107303005990239886761091834883916704970146507513935249826629679387362221088367239205332328483195994873278095842108865064639115452079300918779342883644729497549725855976048748299048046337478902983397694927678902808564523963376687384449288470920166481057169304108770915769322930398602467789488551619946478014551489538346229545703944562984532720865832733036402774986736611763055550030422176645259402464872363128457864226152151977525106330273656526705089034471189329401722099518711181388506784354507791480818437275489488642430861065995364269799589631884293272600132115365359143522163712943679710389275114875017772267432233805000677031783426134483503685992569239883943604579610412420442303489986601767958567730131402306088224849499190627208072479653734985914120534469829300044729949815079564513577239862068871306463540234961896229396189434060782441681641888208380783367288188737683175806002421507444066310784708239260077926435571808872006981944685522457760009876721217108392254727976712840379185533695685626015004081879316547166415542001271250613662039603025445795800083837503328652903967277971333572943532881629180709883869518675536684538563492921259150316894034863057099486640774679626241291207120480655099196700324650591901571068138711141466543752004771652795460003948781957358789697228902661929075450449256947244790016716971110139685530603793140784175968357807971048203877994948913802546098884067365989155450169848517234857392665552002849212868821753451155936323084425585294985331328424889794902205079670677954154382429363951639360621276489425185974135764635028728437951961004328547066902057947375614453856477743265122565550842775149487643639856801363949242248183989118413072816806614302467691290453812565559325370911049391566311353237014672846919244459113783297976028491787848948221563768860690319286613237767571600981836033365063893730836839855042624273446675272179808808645393410272939023674374606913583862540888350370800755372023281725493163250768682741242964389708762204376327891699895734782468159837682727500487869194269046978288386209966163043879771599112731723083791870163304099531305114046779985374101081711119731001533446398890450525570241313135489607980683238944625639018016735973354555299557684119838162725228105399181672286280805693410166639755519370449695723896959360064317657841486116900224908588188793998075370381733129899715358533749453760885487482913413570466785635713916579129876582653124364351794933340648177475997403891807126833046093614211308501632167741630256418288346283195146241075706326228979294464387619461404375783420863587299337545956641130743768518079276203465663255791885394155819129077764849784873737100755272460118060112734571121990374970451559357198440115262416582587828241661405436933833762441352231367779911909621986600537664169758763204490172665148726556310581415208410308248999441831054950584332942751199472898113113809121350379988049427496196153352546850961457638438867488865142707277959931417418059065840386744295307477952139361472837696190828072008628177147901952241612758029520860905765101187904342549040618103129358337433061124070741662271478463721421093696457805829647905213467884240919409045293997609995294386359958786716947974197777431967376032006163824085325444364996117158001353496072309258252299959285313929818552839582766471481925085372800999764626790514006919306955142296723579831234857737424298221040420949106602465275549699507630502895295192602849709031683206718331018564074035594050399937768625665978919715196234540455941007219045197061113960806783712011751414056699317126402710260766765442734179364280108775169325999843481139972967392759593204377679947606425930763487768607415287083704088651610112314233029655668305458006459261450393839082255805786733350083920163822234581625695017904427643385381868585201106789309337963403009564757663013684363059615945987794930154505502015964385728959148748181870263376581359019953284968744178670483432628646388101555407519405612980365405000929724865642399207726553404570190761226619410420908094814444726634034060317728901765071502671031217025195836055619071559703588946327694098069420826065872263586119356766491283688160521016133990264948008908579886151662884173813569404229179059703970321374241776833064228306267575049925430813010565481776300992714162144138614682420140404220586598050689065253100402884104061283434982488845373622467866040958570250759065844135438831168890120780581502311494763401496628122526955549919631285192858328995823947433858072547323601294535968252895256760748701636908411827122464297992320529431710503628499200686663325963799770934313274822235489994184397171266994828666266749913220247375062945835401295890281339587425825202072317039090807639439086471395777141472004058908966405683056005702923464766663489255767177831037492779176755696274937597408682012564315566012913447568675168988731239692259178051202062364119159584050890988254722493802489297214545073775135751561891997359723129488093669152688198612861904635633573398360270529395839567476336910080064166957188304368547287034455848374037059206436758021081730452215706122411420724683589163084589838192319034147701973919575688174116599555389439856629210455675578225817858710338281731611270677671312684409297109260159505772231301876116520066738761423032093614953119182130616802379965438510720990935860622095620197599092344945396127504552199207008339074237845393035457135936359193819436307667787173146651637439900504978070359072654013690622999650539849127990940589103723697468021899751867112649366466329198394935317831239283975294915567558448727258400031092987685827154872121633622332947522444856547163288955546122379985896596134891399354623650823129042117713283197886050360812475061079101317420050414121078971667198104534313203151070901995286009128806988024016044124493414226208340766364511129884053038632348703325102867143572825288761855720197746501046246932367995721066277091167158901418046874892143672515541320522391052523768593751340947771251363586262985487325219341102860796031705916485991733569491791469302324405166139631709042746446566609066545358085647570548134382310099616998225564945618512758700638910298212181563514505127518537239805132503068644343795792585213677244255553579614178105724043784205600977160348238187578753862867168539210255452882244890564155801252923258866230132446550564878807852784213560173165490530927223174430491013530779780867119692928363863999121200160726730213347663836101198872001653261487139493891992837221752454806691754828745717664170748721626775331990822177382888637642101343147763151467148943748698818465959776853435990265505365370624268558113935705893697210103692330275766188840324964186513872625614636502561743528663932648250937473513770397666981418423903422046583222546503010373086357123308556511210300639923791030735220990348207856006640380795999245268080356359656195606453882996567979750218609564077306824329175085326809479958987588966208077217185723131212352323995350316476363958909092522536263612802071836575936194699220804973568585732307763763413765300507257699557729101118483323378121735995996006154413306811861140982251176011783775453153407151954643274045256754452355008831853517255064585445933668756724335681684263876718541749122866934058538439037668938891015163115903931417325471753132944993394701559346228881018145754979669970981242445208615335602030227017093229946621042773811991751812037286248419427939220011431644634331594275514376149397381843830365677431585796617813522607924231817181846606572279184103720082671135682578189777956132845584656069352338260003128279699686902490686498596216140150852807102676445746483446652406199592339639050218886931125465262648040404923814470715729016553584319615906697053781409697093350431765681764904213825724954041146016606932898761807091029798811905942912991477621978951915471710945556289035742476661407983981180154120364463012135615010816387124551623496265338180415825677903551553475779025183703202047321330340603534531168893432516473653162814995611881280306344627552083318748253548532882849265590616184605019794205796975354857236167086991322739055145055533477401114416553958786764740050581931975499020372846909945180196634172030462333602583360576146257017566138043737366426099563784336224640505043604315499513152709348944294203564647292872444055982971464596245607286101197396066320990713265942772299900578046595212128573572230833185179378389476338882392949029565300420694488668562553687351712601386063915418460527069882244175464647402445989884209630186379341273863018904518650391030464717511200646492228746498989995814482611548509311422592851738876415009215404645654303459566367079458936874285358123531797182716886788949895902250286964945684564465441542291919477515498549064080183721266132075230783545750250902686019828002858457376148343918188769644382276059787896243208902628453085624942791209612601031892927373251131480315233881650224174481903371734528337380193666336621290940289178540232639118633997971414334861283935849250828936908903415673090050318089182547618963872588938975336270803156906061359274828943855477245484871969365610430822155889760973613526473885849597291088422741143221505059399623265532755386514717833632694781310971904261841833804029342232921910285524035131637116849379805357014554459630897286630908541604311729041629294600293458957105009259577095452211386374096896890896872500529040899420861817531605561263563418527281451029417387420097788896509879890675954161333120665758710099034836231368818866372467256965043714070035508653915979131449679624189057777637948033035931761864417009228287010425078058555893931474580785733164483998698369768081499200203181936769825459513382329991006425306479968144884473480894820927088270630832356937030765846609696917734080012339731988949314509279770105901800587619255810131148933586663929028860868985411960481522429239326704322622854721339372078894282484515728536675720277779324007195102531297896249090758771883582888859268561477713408199769901445306181736029966241199390971805314183725495283908018437375608583726646913903811530785118513864328905249981622904389479681480472286397917281489027154403068362050831992157371380006101712537733293075358117419617053927517552190279569021836800368394605548930226415423487373804093730626596200833882439155637195529895082859158411365564020487435800842756266229529049046055535387148325155323126159180041049631874571930572597431891294677956875237584447289340378518796318263737998106910843643049668855750514583105829529797472924315779540443174618928116927495801777888030387972754588882047353144797620558152829356337211142080207166121214680835089650956497376968068404809113415955101349882949043379564694593231788409524723423834492255208482619285324265815432487964392812483155442596976193551542266158349854296088425247105570245360079226951220650498901319152983300195923305246246718259308002092557917689809535918849703206654655364097968724065678856169053890146823939100735754056340137427662454999015163286951569592774289938500077084832997297372699862211314061640011160555748392285464522821093003758588842623330214632756775321904903083849489109018157796227293171262694532304935637278202641604203209569792974982500889832046029081540453726615979373956789178301935821402289512225593456698757431390315149208062588588990591984971114169482935063600422867618367672818734520577373972187413038812390038226860857106402495715302541144188747458025352518426090172729715898222317203758198982209971875568987860485267322138188837152136944592218517272588824912268727639386148833913174031010739897189695867314404116168368909244895288386775487948318196827554081310698191846013222453430718435559373333109377609895700527422765984431781146449726560455783202978288835745592669804457202203877570883970670906770219708078279344319364891643359905280884412725803117769098440017079507775096592760933185908614153073617905731858673055147166348478279878146381914076341739886214287137158520173808289897544943577124278648064975974784582498738936070600325657097330282632469548005491370529844213941864937664719131243629113393407846898955718885086968047539221115446950279159937515158690015945200038013064417009618023044015809932436757728564954668640482399946095913409102876058381460511031628152772763010900201831179462017786555576772522671344366964312479515138996675789088208938268667398544909862623831228826836798548743196129598128690023737043673431700085564446334594119348422608930984749721654959300171961449339169503693613110566107612586113831496225339256953955735905671286099679624327031829213367266610140328318178315604185135135763133425089404379613455942937169973799984238527032001961161798372816426440279592398142937209949907803957929710755354827117323214780363546710678006801787320213641199287648900534035764790968123525971723826116740126419015859276611057368163089642988684921374653009006936728576343070619832115885153154284185346477725642204345275489540159474056161214884571231334324114649292030027907998499111481739331827777224943525942838393494521811610880825223518417977266022948326951445261731691808298912242508446443982432544135441960070567495105609657096519089392903645790571551516884473259632348520115887534665639032465410994932114606746002547608201180136124340752430075022677324915764345716387140436397014898899458272638619977308213998001620081018394677311428938894234069002219750293793017206612349992004229005514014231975269367745819214459776692584977387268211580385154355293562673731047643761188874212194440048998338396447220721386659409637430403766861474342294427076997912067045165095694835668534157168113279133630819149368965615559593354841067400026172200909852192420051651571578941351692365542563230513560790059741246519578614942095289628166230264682655256317532189670738387128614553332686454564294775818263603760615453974465746146685626230103633472048654214394270218688122883607152965751592658994326602497521590983706877010697801628351404687295133748823476859819511315175818008543540320438798498501982989932958581034304169149137407559975965245105400639782350988781419709610301710632570894931487021055059150844033734380146346757172403842548618371756592278253037116563728308471031661883587472439664585470132829425666671010103695606446764591104952306607573240150216884863059845105131458593667794924731582625224912622181615903096149961538772493655347424205583560482900017601015279283745152256147508708556055638174377292682645675335098469477787156290716241739217111344627467179853728881020190339973303370769522404575771723083962826346353028014032777329545875963338814878594915074746379410289951060499293313178630655641261537519001282317022921530261232606832852150136926475928144332781132106457154392133388740050467846954210838178414385450828716189204531987757922545029524349125857934807894735786981478678210740872742577015375841318288864047346019087556752944971957323936905511128179379423160835488008324609883738650671893573822904209466731984920748358541561107485111602816461761332008044388974474005307099875458876847301198445599406260118948218201646786994455711819191389321523712595233183014448201356553354616656472066255125785063398904516000607190037748471243925308878456304750979858911780762088026956896460158758349462396205133563027506082507000830526954733086729406509230757033667798565841481509680394926493204314008377681888976730762607592794365282406188595209048624662347205554833066103826073199228821360641547870523697308914257278694555349218779794687602099438134794069450314819017801242590601034534020854877882239958512163392397735649820649492864138970218333976117442865973845338478805297286908234173955797942210771619892444025509849091331546174071859739560119602621810583468451490255152664430935433765354803165769656439371972368751238784885763401877287497692660546528917896565971228349873487957132674200360750511215413857708428899015034526210307946329331311612370559728888341229491704818865522057406991530786334075829342282823194792778353323976816257130599088396723356134581158274186688408241403390339580406286338332677112211488864391720452886322312324719896962129697537415706916604033600831000351851805420766935713702735318639439866312972092385124445629033862555476899729491344716732382051738569055572086916060725346937581786940893620576046429479332785774980083889923368810876298609745970269127575653187033965596540946173057986229275948367069156617751187154395008796001840614226391050759146479811397042515747721596432846456571113409970623302498440873011650424121599370771341253882569805662899895675178992441086026500601656947091797087321061863002532325217485926476687088962516241792285775123744798446734341654385455601960146877490681615724797201064943879190379813864437013700564067971635921904501319429920189741265303259810702789106562918351475012878185340197689897381982500177316550548192011980009255739768903672895401815959773266863306351605406853090074318565250574301077552913011139304167395781846879912840929795314593785632589866345142309476255795260817469165721181146936919419243690323885786960575765727350887801235075963950708065787468683868528214700954942988453118994127936289284481206787897222162683913274830148135246783933517560216151634746353981690595481315089445796340682612878645309039682314956617136901389209560489759216734838358139461188706040918243666922153563626084891380889458760345978329042397342740833509512013215081728749681862863616382261387917571707446081477080741599235428192773640617669784311975784809318110275278736262902423086488641802564038146557552242787542152293147826817631810995823034736899606634506607326272861490371680894915679182068065550192417628479387778711394046180039409102230036631816332697817221747602987622228985478206602734208576256165019771920859027958095287930416950282082700747911652343184753048373963615799893639986709897112539944580710395650103267392184977800967554047441813224012902753506488339133989409216278036105533946016086889536757188947667201973594366716746518335947476684152424610531634997304320830719758013242317959605593696300530776975745224897739687113052267167212443498279439755495567414029432946207298603646584478760390480892248971541868492531607477892488373529671812331265985489458318577510273955635025759695492682160346529752346078886432832495807685458485190567286556934043360308671167256377069824052853975278200027267714530170491878264659063357361766454119585192948682607821371313197597884329186747958168333933929765843317674890410718268585795417557556765532183735185240174407597761663986933159263418285863882996892490219176501094468357530264857461081492694808745316535614766797514734823709941048122370366986134738987919394189565615910139259839750004492905880789200670789304106571556778419376167489091195498126628816057352197605780508945436564031241698395859370158923181614523128432422297714171998790780531894891261314638970119737421551536490048115578006248056345752091126705653069167296927553366364257291654511964534864383131356161016841545408742609410552833879696993784888728718356679867414842107949052654512006528205161029427695991455924300548924749283791786355718155044555572463082992524269986386116747192927599112167026037930621077660799642522159669962693445923955214794648919405692085746365386282883776697050560267931375693758457210706074560671673220672738766124176011108520449459870735132335395086713383711264578572807164119976613921001710014401943684283009665290479846025463434689527171313766853321099292074726017789214026632443779007534165843162444957849427041627290571773873611185564491120996225008537454465505691500502344400222705686545979973387044396683070292807798083873747403784328343952647067143942935978481981565223391249561589667236333921178724404129305328905418959444523184127900331431528554383794331664688655108165071983109410206258689067398878945881888472131546688985404988484176706714861367646640619817171884342850158422990667411535776809936455906340662542036239976050637882761746333696247921709679300945797530303172090214511896614356247473151947240062566000447895083022597845934218694293480438038230243417910438329053300856452369492790486921218151963204178971077782439852766281077745120264394087108935759644043985008501096495228180236994035743878236942077645355632974765386675816949558902291709588900067974148906602549419898761136707560312348292637191208776068955662840478672086665092344396191489981638235404689528012868203408484435995728538467604025663918835488230396074126273192272779265024069330458872798219821431113422393730854943518010431953241882947296270764106489356434713441861348918487406287390406243227484590449217053739012774696668970464159714718024845766345880666363854455826902869342262111259227713666790741823415258710651687254769349794217857456709331167011437030480865156551258253203445887492239810419634144792922383648350251755183020957633134421641557031172297822992545706792427924046832517658335287225963562832182133430988491278509658059296623503139204472834382400638048686545097693218784583996872921176023161404305471850802611655902753331285762413299051016703887421337879126560557835516747563883868178766466390466238965791756317354932392238827237138652877555095619834666172303858114795906003929747426727844067665841571889008888630635490045379888077806734425721570324697977658988115418723207720746387904546319713428068191535589271150920917786840285545374122343109896627485276564450953734242136740194985441569793864077972751130454201218870578808955140366464671731740230497340738964118688843400430484334279637561423342741225072533186701643716844613186019397906832560407452037672731788832974421434728649433394013918383372432470539351028203288694696583534440796219528913614071278540028151498405172534960310721449755302871928251636896202815296975000333806856878245223397592843643209458166486949915460834041509388918755440175077808058747224010293952224867259896186505020331866850929926082329990468851256391088272605571662006011365619272443324146907136237665633858657928436756672060670659608428588129403366692273053550454200744734522624308503638603372886558105057315326027318812267533988760614202943475020374015751422673500500782624509776385262046599945141647346618420348758980652443682483411670375191475086947016696758878293349781749853467132948903265521861922829609594717534822625788282034520773256115968069024364291447150068024670187287104518183142261311761519721713903183805640242306649940636351125879091603920897427690515921688536064465715108567879259540575669018037356062387326621198764983861278820188850790008668204978792345183224621764952034664988350483079534098092420585235779674752749332877846735642374215016182002460168859946962731669504034669234141407927416740395043675842451125925040062759868595713160947219969282101577299569639964621951109534004505757777020460245362963659022234514118801893767725448779550319259998275477699885068510678946077515591273740171572338415776535257120088523412422832148526597369050621296945309147954057101877497980209828932773193032615128508022570434873278106272129799447687136878457642309105978297016852772118031814168148827644742795126382469740573567051946038605183271354005533406209300411200352597668432780244125151884545547510421041391405930324407751639808214408106116656804879248121101231818338479459398054819623307263726561543314141315061821274751071308639244123723603720598264346726076763955396764548312109215825389227894530303328315436954740739731294668983299321654111734151259416780992970052052112991844257567734409432986306227297194578527503146700333618892488382871735995295667286607135764884855345723694570294442820531185529775510759284517770344597188581982632564103130093339190735656326850524106013624015631483704646358702262690700643537550747837438327342987871794582331472400900517010426506894878916399221184077578568426079238889637137383040770633575626929088283027429148584011133930006793047599351243239185860283983250367477576826318297970578286331471994578419155161784120958408259007090447045598508619388363716954633799025438047794232072769283908828667732791327187533326403477043307193139164537125509263944990050124521258540899541629686447402039433270213916309127260413593643346472462314265088721799089932911812958062577703962217759236411665407235253939731845643296833481789431401437194980657570593498299901299981667723120032174609638254073366157009844336987040700155143708696070247033948009540122250945262297848311848821397453541433401046228596704857523562076676109806477143965422165532529042101338447123720895730292914973524414656048166256980444176049331439743222788181253547221861067215513012153143535117053571260743076109890039874293805139328537268717251844666381756482984950261888871565346214335493854834755366808850508001766439918050243032801528765186293388405090853079953508558434356988731613021361217155641092230221972410013578368772575975640624020075591029000150236399006476736839487159367223194572158050673957502709836682004627213381667380023591124556237731441134450830902763291428012179800948212084898123258263913788943638258047677003133539003949060347859053877230410201019250728107294360798339636797691583468056314506145520931831287871888774721586869055510085915447111607862677038184240175305416881174796297962533919335768217932090118330448231873344790797855146659268035828887651717297381848706798731558707434631486972029120127779144192473651984112189776017371328660918011658203322443686226878455791446018545505964201671145774362210853575425523099986340058366766121433881109035174788847757483066646285364499329343097724994417635568140484936330963419520879853927180265328495724887623575927682803471116102270176309710444998357825130299391983243985189464204887578946790274986923876887429742613389281118603541781109482929777973894395220805260501147338554927400518157115610878061757491126288987726912490446860938837279498576934146549759713694962160934916133154337108765873096961022442010032120379172472045911186395515141946022365150345185626509302048132494274630358559239678349819870970546672527153947550373316557511423586485867915490218428553327288758685356195763813125589766427149787987679568022934373844235145450805134168958334251511061889031183840678710351956343802073858915778465822365781905753499123181784918554467765592466393185961256219857614885594344449574932328199699375301380908469409599403434024078262897725874663856564244912402768070321448218142280393462348405235553200922948789370210570893913655196141176324733677410326423289160111367111767429271742515020048785129659030199336138874773734463769522013736656194841212978558937640099205095454401442593122942592045601723318003830584181455283405026127719575796954420171959002982908954287216032217710215363128583075463939564095843416284531838266951131524301126853382589672915316470304650017257953815212245351585526355317368939994086453955346975403090339793268744790682447466856428512879035399169004964541405965214574757666647963680403657321229657860213823369006908338538256265506740105618209531115373288586750019227883848551470866076115758430586534462273093214527279205232111517692004436443413616234510415058586006931721862351545215443845299417777594217511678123937940569681151780550533466524796124350117236359033945816089830071431720374400872295938318802663547837587812474962287849018630850949164764841152057216884504972770764704239485148745068101117559078599649274184564369530172672667066594697476532465032520965175729774531912479181956460390210820687628610827841263578491548565886437687735957548880527151055374604982420778051279464538182227077931633343631656822566594203815922037044693235214852116236076032130551750311910362087176793018655944702240198343834123620838791261923846897143731855402383076573769047240854901311245658424208330881301015151927531175036192507668143564649454077630039038966466681678023268865498875875519208979439981625259901316764971722426857045228127041536963535229258283412513276417352118745981647930512035163830073542020963764521552288803236145450584538031931043015397376828687341479187189827640875517203028219270002956577033449545515394915976226806700457397371504527151267440899274194002773357312567287674686009531688570384771366175310178510063064457561655592413005535832379630794288726758784442753782376466038214483088023489948107074950813191022280832618525438851635114968628996423681640066806508595857697930033171242260816479735406609101871214263690185375527638947068109144919502907316308436141894668936680459365264419632982677615127214828391142561206640603270079316198953055702659396515916971725443878940479558163457322140796731209830370363335610659531421318139732816403358551282294178430018825911175799012464760970124985121846558469886384612030878637201974104350859667261363886005042167185338206898656203508173166149642208525647844928254111696412113784503515072070694145070802050288612119406555829252633931109511852210397782481567012896732512856065577343688068208095413705928369893006764549908756684768566683950069329095298650592819436330686006902449436443495296672969244189663556834747756612765950945513316133275712705903734014215601401325986518762200527034545553793644140666518065729907665444586771952091948975154249103208657151153522898465331262168696350714260326967629720792399557295559440349986217133846028437681260036376649629534261355059721039493421234909456717935909991895549337429574225771598724233054043492620703184866728384091879526777948998607562257801535019009732988121930823342637357537738809486505982263989977513296355848138274578161821593148441669960492811268300778226437356863897119120349607694597541013693534790398834933258161018414778037830931808389268659812242005558532935793820801464271119561574579180323032401597929085485502246021763346739941457668669064207266144459640880031726072028568247265049323244017624974944097385413334302046818036542474670577114214364845016149624239387342809677314432842573721185915562403470820220342261719058183623371940863541626170684569057695596904759617976149784896283063622709210171656529133310950582423972323859081892362475969476711818664474637169177759010737438583298117948694490331408154306433072374970523687662666722049145895746129918693212792692431278907656117059449417143837067859105438091967910113432998053965236343158149997375324019809818682574375760085696044198311253513789847444733139115803612426024684342987537103493941233301441883522945028275668422852881482688099632135845254924663939231884196759901564234120024228184936089651913371315585537848671724981468716174919460652144328849470738946550363125255419377883420681704899554177609682281106456774986184857656267426036481252090602043774296145746692133752562912362796550329093382060241869003718630984073571018132934230861770497277693944698317323940470280714056611304886446048848299025920548063319800960464658220260191850644202738102744267936576490767747086755842936156239046924848788614287806368737916625105017808667770879815072210859255923784421093895717111173814934762062803835083796495594114248332170605390292638392057613300467680416561309245875275639097511044332126831764296347217196308954735262271831553101184491640970063692043132599309719505313188447651326724331187911347756284306550796617773442127680890226682584673494734660819797248149631678522460849283288207490141839793868424722412302116576077824434404762635760801361938077151817700471716176742353750911334128398942714446352174981807198084620947285901588556859493297163370272439931231327699283191722744537938448094130163798007555892011115225589619506962126664302228313278153635448639090683745305193803034644802720940034974062547085434401943202531602190609507889749153947562967746285271078592557762259824912051301084961209657018663319171099019354030183274752237304364253144213145128909856713662554715161179002903033269483228580087609021578273973096036556196005732587815193787979681099610823060630868795219821615256382647989887356620113930679416615818513448094796292002654347260118298187922609350481513305533196440828411709192431122426460156347840129869174592414314026138652764365717160813147827841640158089382904988143318651434784189858190498979830859724120759959049080035891084112821290361052333397430824417124185067277937633757504557147721440552743994605105857496024479553262632056638905975955228563828854162173203638237219246954990628116118912295823138022074946790587389520114918082694049367020135367079506410158229765862670311123945228849554669454383954615053972393640683228392237503991402730272212712419786888287315776063731785118695926712159074520024735174460854990605904448647292236947439107135912307097075122167436301248735673453369018110461453453074704963909658344049742408246829705750149285314734158951028744960172277139196139444477622367334629432324117250108099464038702297262231685900403199985671334712328127444466383550779715576926023403320707665314764255035034309900058227482921733982177025898850220758498621071079509187642197815097469638272549912927968901158264838585650342655797021837808555160458413858350658098336111028944724835502168589725418587211523573443025969006416755805577406812010942359373554181397195911073807613051145438636366339566126188444995305881099693789142292408991861864780570393638830016347806852409222077010539255713781794421963698182305985408940715309022358946042332066072479727065307381653876366019815950220386438895289354657460614523602426700659001248568208235793415613087987532215057467051159545830560872547091567698409405445270334127797930387219840947227033848795672924471144310600800142734567723789225374977666358141453557606690321768660912108821864960997677086789117504900798230041736510285451842756579561913798584897687296159381057739155748343635178023307243260397103427354614177242033530876505249260718398281941361200775332644500112521898386673171075786825171519167402500033154363344203489369031596190275250862578930062242292325602178387067373486617715294376462051423356003517785167064260494669698628175818902495590567433764986260780160944764347690468403244257106333700148650878931441593875176267518530428899676792174322931783984311229479186416647328015626231511577740757387863896759598877944176210777262599330273196282109462613529986604114817999070683733170578942956935113745787296194552601799161605632059412577414684656884288380007093503079449296884027451434459716706628205509628777398920906586870076047252185343391125408115244755026987464789024079694954840557520620851314224975357238622194132286325423130860610669088805500718246804673087776045904408784752106694574011349180523627599767544950717481347721112919821337908174575949986534310765911885272231724449598977132538564576636646113814235508027352798609884816447765095233830770422512968462964230467801933583523432783900826214924671146781256997170889990413745362481687430147575584716280077891259176108782634166842448708616425835611594619353255422906127879555100326753705295936168608506563830155063741118533912729774947160010216426502315263412530444030694563177814876303638963819456191281738982482357232735120551791713581516837289034868345563958629513644441177766534722622555892851357504071134398989309160779104185598123688797058051731162195461024133020671578897617664978681379826417760993980173572472415301570044473046547106370483450191608820722703254387698136719455832899978586185475364117346664360633390049413718263949489654391633457081957977674825568832915916926097850669668974898754685171790550098077167773126598926609891669435964847993331204030116747046951181918068422260902359819866704769828023850035267495077282561332195771332516322409736317557317705039288056724580902351134933686060253518237325435966704909545085426586584517340337987298552224294043649076788454963714607895310919168685093523683935583743588543695662056038936064884792047751170614719868924549365940571103409324837131804858047896297336700124828185844608685807014527512388222767545482448782251669054725978988611465610338150701430636571041806594179480673574240419474148460460454600925194692245964686801950936176150500353530282832842916281899233983863926048750634615851744811313819287642117966044647912260554701925844778153105020362200508587355074683256982443903156171174580905048723825039084993842772666243350543225542194740536772076033640188212496328428169228833286092939240158529889372644925238639119026347483756976745746493048633442838040555537594079528548937660084667365741655305559538789257198228067503245694759487965402589768441040969088994166521047537367825241904396520336389355387328322726346425478800903274834742259914944539487826245178012422146804558970863956700137925053739713391170943320778908632997412619320247420325840696667846846021235198640646554887967961145127682522008449057103887843967530907420528385322251631546371733275446122971897626962472943443666372515674576998084899161286746598932185475229693648383622434177450956182057786870183107865567803941489786113525655795215875984533175198903484786399182803397446790621156986046021338867812199282124502534083211421678816118643211724763832107548846894042889434113070878072954634794375269806391558356365531395354269826174410241014183362230308009301665996258555655469860803085701598494678989803488013191400407614930779096135374689069329159448876520435286319824962924973554681289685121656349244592398299044205077567029628161452822645941095239539449466780504922813201918062176225316039016398157720505539855756594447002497820005276327381430381154115837874251307218297027178932312547795030919772781765180518543418019308501462866411120039825682424448658374063938929843047197150467254902958733207716939666951128407267491794591699215569454771867652463188967294976522217307420931634320449544667162218981253108873276197684972278872992117736346399761349509624096528609405433462205661676240076144034483141050295037107884530988587910402814820753909256405936121731450655704573282945255748398936618125025867226758679139226247246429888434914725425007451126725144118996333524554451998211693367927715475508992428944968290862993196439588432473472747590021649453477415064828215864585895488611366733868858798031602728812662811479543427849605828013843076819908442676814854410521449657621585497841155110057160420548890802651626974355303400441522243604772318859671478682270224213211481735668193186615648193981240569187146083230498991203974712738622350119370228998541329730646032788030865340636734236905300814516394378578947781110673257812500394934637653521598372453680413552271091828834467105418457875815435280814130868445292733399528619792739392854504646940521593621180212221923104665072447600253996111344734867997765467630765105613495824149444102487461812692366728416504216305028341659122904556276909403420985243362953720464567518620051840793437478986652089389620247168633890565057139234324614082730158916745039344021153240646879317231296152364779308509368450135654541074962420011294933138459571148893838586891349988907763373205321599548479930285672066348263501552905076501190357088663197997008096085379593666334128041508260192288549153393771040066186763543040314258966627386551663901743996904425845122056999652494030356613119271611919246248993464561292356298259219353464628761672016884603422918159927913420485588284472215166171668855182213909488765157841159970343882947831642669165165545191715232750687023121022170495769253222133187344902759068811723130167118468014229580733162523651592067157290013450178102342452805475080957220392192521898942402889218866516873936975435650241441639330032975872109789224802177607021828888179432218089798865061012250895830352513905118619812196551876708543160350636004324334740527719040890436669154720955256238091771170730739536216054302322284178256392916906794122576523232429790516624743351982027705040955596392303733417789868653172382315816530890568682046114921415962162136351244509031351694726610629955657609790253443144271477031298857240458405880691874051987660709536414964353949700962710820926337334133855613090317826430768611617964108729465867807189949291394248991111637987840302877105932791794784789223181051436495118776302477272495580470327949502895419383089085232734346841818110591190252152630392570516086451520152017615115637257552330578448874403089875972793830509966511977823464322181617297564569428269140025132987635737548860594493223918335724619344311118066980247780058142633571216097703657941387106984078045368563330626269838877594974883384716067955310334222858434455270472994852575773083512467766456714372568658854539091860382321801778475442585801655413428334237015377985914964705594862731598390215351759870441815745512082893997120041830305274452482027379674894151515821423981390455189454870426197006508416733799779261078441097077792706220880497652908415260336293422782519775744484188257861989590874518036905813473909976552441152324246459953577467244482261587676461631361184114775740917059376411267574206168177723210721693937092800434201593634806846870008421728958819784763051935849959774115551346467252133972219744413888783636473146193221529812622871742974093871851111881665452099892019661618497985611592916557391764575979118321418361791925969260092586937261386530133586571802205893951557838754776441885732462855536983391804317589461226714452884604145913342708789147041225276829341226328289726134771080905755428339718169475342788711489934828793735399898345800706479913864989919083670091517096215006562863274224886909654769801481636473190017127143711483935318553750536421725806456944435291771050208005195800859042612983734022614905835596444355313883792392946485019019425449317327059156753848657035153477648062592704732817278407330382972149298158640477029616984650297300958265649477162356422646032830094218211337917013046050535004188566766069564381504076675261827748632909194178191008313516577167614144649289774010523618156119453681934489909934802592785733617064204831026503274274783279290135645663682280596563473682592190519728487567586472421870718719113441298954590772881432150430486188168710485759944234657132389652947117675209649176007380467417119351702198230823852405394883543770319705030545720938679509801713764447839962155128967959508283038116042700628524914678187892265029254685207721516120325228027642591826761699110414813166438556813943202754577796201249280182542066040282338084218657033410090644058245185039603703573956339408332127551090649670877712006395837968332359489897563324783591882086178901660399319667869106568378648306128505480757287820224264247056306755871989373223056446767191240417123561856016962458615036232762358412683656544642636871017012400078331028538622891399772067063016293804287996691915901891880980665054359059540693088882093370902213547867334871443806453202374992308984241362684634644536053747129616861379579731561360798024390424336077164960497630540466638180947355312499678036148095076995834370402911485719573712608520784481289272270850509863631522745259141037627011683991202186504803985173637572689558056307575904788236120413201319612773428143839347547938331991157624593583941627397737635015960510520548343308503054081677635025511805264373293018704480260475896597258233156297182341298280419034882471964424269080689314945580410936158975365064864517676548999041495853226309632401661506264206180553584718635350622364458937852810974195844044511388077127091940253719678608813544545894866005643031536877591530496584808100069879706903991087588714124161414202421583864669436292688933946672465563298539675836563587027795727939019944188435633046384142542361908990765965119523681811059890855148537324544665378873657057561488615152878972544089445644929056161156191446154759676504219655339736618295664045436546008914541551908049533578215731237354548299372187481256868743344547414614345161677458832406025954485455149105262548446348965611240322216718508472097814354628106158451995592638521944413872309889516257561990841017612237913940957235192343975741826770070887591690854910710326617691670472608978935759574285900075028267283273431858990220260510452885477266868411331354613971006261776262795326315709541044284243847201786117009719955398079081047005242142724216581337131677214477975673461685266817950210609080147318863803509143314342778336355768598759417683916072919600592615611248688148122676838038475722446728636660960474868609634834458187246360352290845390392524800741455010529325316725552950488726060754469717409413797842185069446268814961600844240883652302396504127355978317604119418060290533566626178297704604191250635657533637875986307485589737631808665709434484207232876581966701982699712498906026275761590164901115498215086415215327621171697650325356623065046284041400761798593494925965174255009346387324345315376542407709017793580271833820784222765131789491855608799317175931712564661562734953568164203283920182882633410822267104451719988369980723805127559670524086195939959110724673104315396695526279921330816909818330098658079495356445284688780385665001363646071221845820223451523483889695835109884752156902638297801407165563834054047485014152351978063435572684663036179337766759589412180731590033048563125003011102100989438479918004748803204943101964404556537051577474223257434629875131229263652473767151924326156585114318133058645049576290799708156097349683968014369329406442453042578540104830198930482356918291663511031024894697161948838166074309500844243326401951805100789123680969400184033118051433100131011024334118939714164312968121201556479815104934462630478364248177262988986870288161357908674994169200209668527167783038428974861991905732967068747269184781710627831974486874881409705799510254550188107942595902501103291243159824973617071111228543600553733001835242447659329918893642614211042538296232352394129080630434858329026828844391770646914254859917786672190800319241225697314015137076231530580475415830546198772652437558038483300702519412816004896613247873411396518797426817543061010927573302081198917573342283305532141477974747829129313239232746986318463172091836901045944750762806845673135038592742386528070994315136947616102859809370666869224806724142463315422926320402725929562057538081276310846224660533523988261064879363542513714239016010238770999534672613865671008200283314037950230666845032466931910480589720720784103399637276054776307661862478974174843470772432345902399521096543231235785137903185135313389624899111037452847801479103175039160278771869037160146904012425693421303882477520025410541568300742661216270750587469641182853239375071933542345871381600607658599922952736270077236480258275465581515191985495526838564142302134275953520921308662934543434282613774297766589601168307343554409290201452095820688290549617836391328510833519040935637599937030713899535697281168373105581828882807789552862356982446514731286578330827128441224810109150796975851140153287450345080060063327044562418075806652360827697882801076551878905025265796139435134453097702035223111806116664597441449088139265366514363635801977109512596930045010043655255692788225719927261277909857314204034558997982609582188249188292605029041510003179483049912106385777816622685266914937274205837928992205722440536414067154426586682187784441107225497771020376898388474725192803788052236298001405250530434513044809065134636713295273635942927868998291403266465590887550693644183597612134126541885061467454305018318976001889594385540951921765796774530749138695673131973048918017914515792182861064854753887606199633860541251729092162050103748292643520933894099677790797963363925013758020048020784396432902914876970635776657474762871180578835715339051371469677721288198879624692940264866030585055527643468336444384675102859543491168930460778187665096232582168008827776788327884172534754885666344762468561211907502540696240931622117705980985825140759905774302366714362683496343673194449345598286499807213152436649256830898522936247800887110304983553864256724623595874595641812479071155999127365913172395909453506372533479254791675044122590369817136590435697537935651961869520168174371555798550824715698676200585146168445325076544289395980234023544819099478280709470075348588166263970516660123731070270766533594160276053016861728782243132215468124545443545129991834527002444963328259276268251599094652455800884836299113272265984171475672145860868561307451264536650350312339277289633933606616878931557708635467554049534160130826243281655882819204665170100437095500950968219356513974180717086599141893733317055012684426535992607361775528253890819149213550151241850110448938747488921558024320630242065774463917141930842566207703966201113032328447049631536470517118269618755382117219941600042678817779236350902355580617710255617776347635185718071535891335193263758636403225887729055444325560177144378219206563257548854558541494248829373833499160117531570089710845887485088285112117576878762506279005275095807656825397204753545777018800678805432183372093733315938628030330267986241195500921440053982012000600180338262629879413367644820998958146461163234543344247813954884361004541019671240846253129234306198350271992824499257463672797172384150811022671257620133896723987848030405213974346082397429642263016723097510019030960170883055341988303816779014084895797721921967843162040849401849581198451293239542779107644285030537095017989073314305697780402342572818342169222091887465380608995529332905383857251457785587468174614660672843546465072865113103493593238910414400921884588155858397285203917073357423104684158353745844138463793476483276573690921984611651406734947878645226386566766559065122606833604802371964801401046051922740238820552921003608960229028026404737666671351807346027321050659545791548765068398477744612608676954670845825528244313958549853556741313269361813882680458860601633306610410714726050803698712391324851359527041070675932459737502857159582638189008298163933628971626275071508982365051348834863778760978475995009109006377362911903701920986444125045531131079994565624144064622537894835828512003198649136938044330978427158583415431786962201652374550798149234238769657655318453575168649309640286851218736431897735243761784476100089307825776369555696693635055851021871104014434388985795997501424466318875881148025654349302124972906693830932361525165124269052274689389558574831141728051275088708334170727551241847006354993656475104082985640179292366632013691861805661617407261931235064284074448893158988833137802519074158036410589086437419783935108577233939929660441678139035347076161474136183829577998007025659400688260795217714805776333315881249187328735177157120288230717151635025609514809247054251065192281002086864654155237139500006177853229197737264949836711769307601642872261537162553422501603259422941926452707968172984626452024671393167003843644263009321702716702278922418546730390837753504529712142942049406865505782968569113399970191491035424147058416317979241046553224232005490227447406040845912149974381416032763876856651533626023380598846731214896686739291252982020678767435580728128393234484993716201674849348735606288248517388678624315519104702775408757015537429133619275408020842090151046912457079004061997307009691853107568233326782648452450547283787463588239498304136667343492278835589805228017970018943593562654894108947437303648041595351800044463323371926325259652319941904141529018173060352494935665886462043615823239525162396396175386457355761820833348689455619140094887176143437540599856893444894149960742405612403871036310635123879568735745591956586489948599387136728971343716845400950803951827431450645218846236532301533120799280190169426595692330714731384212704272877457414147488408160221339220712012736117174664420326084562587137313350292989351137620621046316260003954358471918069302207312568569742974013787744443535386546081985756064646546236075310236737469069561170592500278231126913730630336658656356529601124313947907591251846650812643545883636851068190894054640514365886892462567478851636996555390145459523068234371567063377084594293688457303169903442241302626724143172563470823937228013002232004068673446277519377654395965465331296110733774388141449736425411032432012487945642504029435695303876307789763715841144847094385451499017939906701818254386047309073778804142736325929244888891206636076198785011489762861039933716742277949582804540198599313386571717589962659783503260643120891695463547736848789371330308864390427159066997179974325127775589334096826518231691214395037613784162731191402060426394100313750915576293810866691110349199192661970131591890727872281115550205427503688988943560953866925564097914596863134427482282669303669463206986847672389146017560983812634005688735946142876561104511781262979126995941514162158034132209412661421000551748502992043579883459827066919693973969206131630059086049277215260618201694369859681017318590734368387339830448497242711144928539067475939067819090486027118829252992516577874055705784966692793149796596982193214966576636288256361751728533283619801802020832752779100117557307886509437236804648301057755588484393312733541789953714700383368803278727949027796485944828411664522220713098918887140778485990269919576096454475681318816707994949850937816268327700600070254702085244049629525941496727011217296937202821664685270206992614821269263466574189974715184458854040673201197738674335993944006116115016087428425561269932290617732303511040840592899490830956900529474478328325142742671094887504100656434847964381829867484041518536600377173390132424717667766375504818889712390920791220118924972880972740745704764026012785190053563639134058863734580632340850932618505080459907236101905541538232636644453583346730545335921410617632346400293273120170129493498087182439930393652895402461595604856557672473277110537073250617574441525698526735845436189042984009444458414111081947514655029538304140854016769350687468578105884090545003174764274394217071495930195965511858098298433126323262723863386000870178106567539643122834490266537478591291852924639523523910411087172262886149731330479937380314067534478231151194166300575426663626037653462921032912571347869817190719997322026937642892758927713773992538049304136896180909581980962696836901415119284499763627469825911399223776772550859672393738716497849771775408588079585560994840932128356631087678365003110268223292377040967138145259851237172257012851221397215121848009614171589772564913161271562690388138441618931282183605562488096465178232155886383644781103117136160040129393836173304067002511540377167376120893902477031726243913117639801573950144420036609011288643668763171812760457056225423136039824544261356613455858726407375043982107194075054732930679772373152710012715146388081483178678611167239544238980361278603635724714686107200399763061838234614741918741185174751908417190687296831676935806523452036078144754484741664270030185631703584971250181998345344952427654145982566727045283257981499303834643025609701588849179203783114573941424244084443367693834510085902944897192669909681424332945869744485645291760803963846967535358354806226339064907082518628135891048548734925122119277669690199503269006514714225352560918217708832808004961997044057553586315979119263679895198581296557124604132175589528879692905636061434295350440643907342287410234634967844034006887991336020361237956648686837387562189317463485472984619766903082355163753276389439498599913301281916893239578456271355040517024772059521907367993610296508078479514430521511864473475371176543671881150401923989215962968843643473584070248964990730601919078496446397521523620860192972942150395263119035830904935706566992347785099610012722608710952049325728475126256526222190520997990414766183698541657547199628199016370678621453006222939826698090956727675701278784571458556938450400667872384749590220405992016197157431295611050953741827186938640645798285669702300776413205238639309320582360029792894026401399622220674117523007809467826427877184869394889980859476218825296849466920016755828975089034797475432628655749187323072258294590992139990034022577930076733779803852487195388320938753916781960121645635737687581528740538241609495701433444208778571906596836518699295696294452333265711878874072373781796980844444322601494503900958797161271727665126696335102620912740158471293420973160303143328897960813242039310170970820820639931499781643692140447930983917140543779940340556298290588915890057201938898388637442984339854024963174073279191696078341054132790575334787422340449063711135153713409917851600266769621399148228138801504219794702384533441515597543226911584376881002391823768210500135504694165558249482675902927781436520806127073847952513629818845269388859352253078110027116181728852068857977205426973429349043639621354299625854354531854538821389412124806868392795288646289937505618504894395657779858729440679364440513894784355237677013634368924105871808448485879304329816180749405978449500539621448280493645666943323012770057177519578887121368530388204295213421636112395244585331925954758746239511616143002084012413184914301821270814292376429733888573726596628159834147561554633753066513493605693965915773760598421755958153823674108438071243739956073580416627786203145021485991854894378704107419194497860082458004362746566005726587560248888676174716786001137596099209386938751169558087072530683251474007228309445717329842846655841258872794102493858268417785759002996799003883995753565269770761199345715068794445885305807546316936081808505409069868942726237820407027248720034162622751400815229339220367232677907937265316601842761278251152280364868300753508185003205306886902359489276724194469767704077093560067564089744956776186850705241891127027759149620325525745722266852554784681121359929548428269306606729315389300094202828143921963955320132895583913996343212097248479921668239839099456018197900455186309569050304190265349472404186722813834791030861766693632610283474725585632874230245576403757726806417229368007979257853558807267010562556872689888399158141813728602832218134190851380227839927130874317586266576523796023258183737947306930750099849073167331360686968332046685830400675933553255630365144560079838467847052219928209676873383858016582225368271853032201498339685819897696007623123443673104105832606226343950327002474988534436606778458845318739126384888564196784248093172934736130310045379315486784199814341489679800442339632211883737416641637196979714721570468962808304600825913532006529526595238876081823171650498462346580871603604315269739230120699645576881756678302366835961240134645594944311042571687884532771603528054035806050783144697483409760077145646231076920218765460669824134001493208926728340188317406381729255064236433592784117364779568265009589923175932454984693592936089281319783157407035929581120470509863344918037928794838614785980782478295276871097148676293917791879343155331284165203304256462458776109173897790421621829495203276950597344676293538198736497557174051973283089786578997370095362106909067698428310652246160723269651422380079594120962836752409331661148723265496198846512951658297729713217233510973588370157592152584684069648603843177322671209694721175155365782695789235805597902981830061889695468576898584902696303153623788108293100559868871334855754793556426555988770373900189947167170732296728468299556269201149744748177150994313466287892873545115084114067942483333260540755206865114156336892686467966612916156575769837347323597375721485111251378417429568021149318218555333729757174790187910890638173258067098856861873657099455253157357605900742592047378250537352777364443503452566440246272110280048435202277005354977268303993306671674065779647857920462229800074346723899513812216825276438919559114919338070477086790446212496240839529200648372827617611238809702859430585493601847582498734341387637401394998313432746286792173718906425636377913677209691888430613201416217308326002471525237048714372046116711234608369117529637413506789604949795184226985582220090450065944958342253157009318125638570197780037181696352894769656801882198649948261518491769427555122920323638554817720603286823131876958641357042256544333110944046156143038622236159631791131689561545847069046473565257025995318224074002876104469142358779151325641082834258987494872334539896903475306453317715833583198176077337496582786846659467721872764969001978006834077699716011296958395816110186910971666486418500586590019807716840321405403973820027297965064265768533116224206576604718701635984638485964349106232512059449649713934541208401638846865492856794104165641827842757283815616263124087626388021094251321118882307838427178849989321237281546196203639288545392416779527754645787155499707329084325098926972205093885112622020231452789972138051114859352482519440002816634026978565842534299365314792758430824102568606630560365836178832674752872149221744840851244946167474035922245301737632557109346918943418670739106611274524728921388374111584281761228487940519560076468967934971980729556345253268976428669878303119800920448352654433370981020193300818706226230966951423141780247509750083888784547687206715510554594990216326932036602049455941837596505015208141302648232402642928682143041299584266255662198272368743643945120801554165409377994966336369778931978082616217012991235721772388017908167168871591486287569559397914935521100524837142862736484997013796957425257731768794226910849567487676324608529910962178582972762042708936003027211732713275385268282700002348635871482196262218806081041627756853638071008043474270233277715933011589749847104054059645571402225752525749131427190548353054844582013960982823001400562191850662231724115843304216035233415363548823594033017784127065260946467052462901387240371808005689984083225371520280388823996286479777372199662422338829087432401073103763273650400645317335647070023445331718342460597457890654012752993224101863704151986379889967589105343319572228784939242087774520451483553383289148699076512546894765662346851797886755545998099629189078833548679640905665830920397631244342852221934167329415524545955600504613912875631134648086318187607978669000309518057883168194918792499686742143008186046259388179407095455201905928147625128422919637020266793290706792556432780865880395819514392411973330841388624790186915129195808995473784254560263639242183938770994530330676122594074300060793604996010011700636594969359299957387900571168501647077444276507947864010471744590706505750116697110759679843637490129995517680802716623646526613429740060382078645648872903753888874902828483397432466377931146712300062560920936725621979797122416751548560113150802574258273915660028135265305617564013421588045072442171101793730859879113670123014150499100885661277655864464770943297428518345777609349913516229391749512318456208681408417288523793223508533003169773182659881470510844329213812055959385239684603629867997686813041937016355307779543228399903218783123131965211349003389869484886370617408308212145786415781346303144799809824014978143541777898476516380601746887851189177352510744432040745665896637931217138157046839214136434055703834576967294837945774861570395385730015704908833299432936410845811420288180990489705435595645495670598170786148088952110748635484653902950918479525746481984982904712699763445915728344352246583736774810783704452075478485969195339736020970946524677730425212227723402415147240064388135551643169285144666338958908316234364909118183160634748184898783451018743466923721463820037167114170000495094226185418640069205101127100824362903143669423844643268161429924935552136259508959312326154520618880784142363704490671474086307920859728576016938523709434193509317780003183790436390841033071634612593653008025718934562201115786429842359740857927779286064204075802075414613958996115516044971232408792049780421990923153041739393619084475217506522581353060791271139502455836329603829097693477859657685787381607367191193482359052450128673056191262268094379360742548965478322735984567972963929050530082745683162053304250067603023321332595155592986356800333755867548078166879578737101735834319678851202163884956866555642034387357565535152002040887505435454399688729071037157526775797788099711232157363504121188902528571085646053694289510982637986577044938784310413985254076227537741412077831061988153970007182868134778282689119294405437449743458307382792281539404107310737490162874635972760051192178160640679939929134244245887670220137812198776830039646979489525833256226196053777833083714790646469536020858874643705844321983042698302741440704884428889752340660777054003079754636773434093777811667088618869608453689515967905699086223812270237165522338117292899623924996816503193405472890625076860269127910321893006319880197130685890137968817713398136062241735665319609941793717492338006797195498634858815352674497680599864420135747722975231044786999077401504204042103186064404259147960759224993214330365806833013283965226221309541548794195228346122163890578402845630844971848919784006117220169153273670494821168674959690637852513746297391989592497601234614035491195430013569555092363978524019407716637610185914556791064708540411159542164010392474735182259640583074498000614347892449733868964995231393104832105891526643161735088461332232924335471519634911474796669965356307147977001397638646025236462381587053822379946580572561577162814553185795170182868569143363379786631350948646242980053209794044837178066042899082587441851844865528816916832390886296436465291266650773597717063016420900178066405657409635150364642848722739905869862547787638155126643429839247510850444701487087354125693853104773086747622720016316971826502485642269369359480546473426599732583870699963027102411555702340280233958325559425170414993435532144222054710309029324487025577798001690636842015539597392723514597060982032925778017459692492042352487340180743097765821655119030592069526324259855232409103343158201610146765959874163723771169081445964000941699532487904441375042419159784771239224679268754908889371498067568444543309542030541733345323939638901020139550864161820059815909949056657426545016481974565890661374029801306803155094779882909670760048045401268963735107672526934946882999576452585765890346972597384464352128486545634311856957504566480349085416270536364041227131739922125177029226811308449061342914518631334519512248742098459169879400991246786872686839991590072304937925789235399967733274814829894225221056330826442391501942731724781318211091572410307757229762048481693722903897958476230775371859620485954559070789065708125334950502608178588924190405063963657017108075358282208393643382064892028407125866037353167978885898799573028676641283391286844991560152016899498339081467835429718791685941529615574864714372170204508656599258875934877341725236550162433282810982883165170932615272047685629162190890426597061080234203546793283908594978442109247377068751123668788960266792652553827516362011958746556595352393612464570813303849876858220207585112164345481150133377868333258382748088037462154387616102784463362152034345755305831646239314828847569306831521872387286157108676289366331346867240697487237482998665665737557553554286829457081466896904477290876727693238739071484392693616423808361236573069115911029894259318578257604935310564857964081125755650559730019495392177933490784437722882870752259605729025115396652150808642788900178058484709094011989077388706806433632419715424571172713432959748698085690341243291186277081960134395579631779915504758706057226076421963820777171835945892560274892362192376128628092621097579010891519996762315156035335611810109320203931904387117649166490400019736138270293745842867631921405527797625397476591705393344024611222707997939815292754485085745143168108514505788490225282526791482578210369374360238303950835042988117530709144139937475236787227372853374236286144406571379410384929865130713287931491181946889712277406490505346189096694256528527432756703040863099283400978932015989320895015948036291398489958006762179213527402218678019839319068430893897977833768297223786900279966545065540063793757237964684119477102463096823556168311239856425199144744810871797145191303671506319882352321327313434590235256171161519592290990335081713768390438528019471486518393484977001333212247313937710252688858546053772179640913485245709618588827156302081912978961078620392117359089062270381769167618658617204544586199774645997126480639581649056269845005383249346069192580713664621556431917729667100688569606208981319846758379367555726441320964511533942796643191164966999379973188936440034762378795103624484379901398741129451638045442473843236938641020895975736500029019672323940371149524745232697677349960330654419478075492522565667386036271831618807471464136116146426902689131699438450346464152621172260634636230738531855591659427284464726314763945621736593672369576291394097027051150628981325240331278650981621491362681678405690206186846448637394461514947946990013279744138218063306467285334361092360324684104743561119802162355879897631956873677141787473080698649970385491610928472649914802517602883404065255677294454526852091947707934095680338540307306017427137753234060262829894945069146930029545925572467387714931868833093778459715034245528654443578801558072531809301206105448212467428048412303061618108727343427828181604203310220461450843545085598877086372837278770993395516097237072328574403250829765143127213916580266728158101265976366666872368390756942449731793169749701350171270741587436058139052278001886957440286411090360195726004088640460364418787810123199870568027329402084710236105291670927734532259299586121810930270701520690887780995371315232315333030953015177097582937904651023355398053281970314409024963928721196373772837118667303314049463192104670168238306543209025846766465250068804089171762425916983898268038157814333784370064924405828839409310478203113634183910255778192548591146888437695593111220649692656442775733542334206669360575564885404002221751977792385760466369086797239007695487551983042712451026278358475015915413028030152432071448909967822044872645254901503519910564508371881877843078455148636507442106244825999275957048751890390727337975740212775783182654034927624834906550003567075908372786186885867996440849477510498300266857505939036628897070066951912119767868324082113821659667093827232583423549859075033774302506253202589455353888492932440537562612462925661514193100613128789328528865218621122109982150251997982872870348412579604037517466171591348339325782945848798844919691355877300749179377847439820975516281972062930456014587386169117818207984219351221140004709888773975151288755737890725565737866866343328641776896780097905874428819306609355887483462866929689881335016376714774149349175130641006032628022979683018683522765951118912708494245643498988184841347710461178427166759509562245209372494988366907386172587498884116641232025204139469484329105826484648742257547788361273330928946135318869553264216814573000862847497682806058491257011050407595029057417766451202170306926305171176170881625184039528554410922760758996765625124427290137450162332334952733867770167664786067380764692593815415092645482574757305400718620296000259900075466919682097159974154752680754271985827781297392038167313774911113671663264429680051358939045214840675656676334623558989805605229160684604802098249677991786516078263044285951011980503998260960514081445260273370617086923731762148087916699933710041875777809106772584241440151688107465290726106192931843591493939871163365639820320438832427516855930039917090641487224616657154166514158019906380477543407732888700790358677025173289664764550516041327131445808744045745793896125805690790259709989979304741549734044148517167170567413290919090246021259099127951407515872931892060589259856161499149145734908503267483764146395816984628341777493305462386059242000040571627855149751951347024515610669136267755511458346602297016040033274432422669247317545344409026309123267989432303272838775319572066674365733910949833631676618586181756772258411072198408962285944722548612015686753089167713347356242895927350091137679037144201916599435360347470558725814013277492900056444704139275510016627646186036660623311132420698196056488188207777804439661104776649067593311446089304369109084334648147241181243283365692582364445452297119226950789298116703125144723143360990273046020773232284644507812534791154668051449449643208680887355923529946604726450815238319025732349976064353795729524087619157259429234765142086838649202797268833316847894135412982999361269034245176693231856341784646870639381110545752748342243339417371571467421390349313555770600036511654856307072899166807512068806215445771600457321301332913948414102702826073744131813579293046521563406318274796029315747765395479059337739708313168152065478730798690530546487586792492540064641725002875602330582719740908848021661180767508803722876406285903984339479022632004746946755111550783812668354373410956763096689907037407241449242563527260293498722157225488156852923585201280113339960894968449281973119712224982273326480057754851171519469758431734871932285379897547064356867823985588863788066846105244276614885770658210286822128325451342054107581369601235487225333176747557149976453111880121480211075653128341413303838524226838358251153752480299868926521795976254067818174635084202078035149034828585517972914737796309419709721571553931345422583997023481805417667163225892028021486642010052702253906305443988385426909158141424116434203481057030315090253414733974758672818382068353104533810646007620354065523547667448428727411838385975848227917160199576720291889721999005071753728633859284308684011356853155969863310280501196787658174476970042104995285486115681435215599607756669214847819850698766808820273585179094055915277400396217158937408891623606061597528598966063983976561395693920281289329484539234000219342842404788764046312017535329519324240297590627177731209927062315080799155074128080706793162844322764992494908387546412375230595435705750130916727716878640702452341114266742287622621265742337492886014471326441492231916925469014540584600391114239832888118547814220306241631806681977629176896021638505772681899514870854818375353087699011359807138629315670026643110925189150864473822993213344183705669747255574472169734729795290859602458262915017340944528819998984489835300707705837123409704664548689247671680691524729664980528335217736694791397438519714669782875021668391785440712708966490904469936629958119156454183138134532615898863537206321052023793988798352554381535603557963165527920003648242354571547758777336452568693313036843481934494375352782405504002347528306011084867724319793755811760668504702801170317130086993786192601900253465423982330862722758233098438209879697284553507932750630843913013775838636359480334558726264015513836131729392731635340644521334909474942679517782031910648909090347706632923980852152283948563026606319474629629515877806609620740894691119381820260171094260535932131054514776715648475105013146864529126320338360220970160080589699221995124227956768746214635315267035941072221927008954160928853656566291188110855010445083670820259372157715152919608095590546127088189123545975546345339638847944606399682714301052942896983773322783698073658158008116820844134128971648589587343057140257450836410781476861461942049532261059024741147269413835078934834884018968090640276095372585804429498077674615073198427329394553886577199131599902195581092535149580971719832978386713449510949188044796327386189118365272613915689064007940116893235984396700123237644169462425152169098901914861377518460297750215211996469573656791110879519939139834651672216428674655684545393918056258524889764794198631610711590855792253801948488792638910225049825238376197010138313540514328888270251966623013484158071224736997525131106358071331234616604595481475411193718431602690534499297264573037404170560841477471429108857356079240649802793766064534569617118932367086562256575992319983103847691655095192410182851318443545077403594123443345539124000216562235747985197662199035844593724803740761890978752373556760343923572200027153045158225218167126559592609073632720458396550371307215592763005966745011432021332624669462029829158192940719044700569327604695283006175085733358147948251228865232443024967476007925706307756925761590144786971657702534119104629405522109806565611682521177610434893097488174060382475280855462444912315772540032278433881091628591784669895869938334573300966027220763483508946160850568024608493780119772628215824760510050652883898002322257048888887263905754065889067001086632114349896566145390572995894946221683820890325028191619705115099915334552575034385672529173842954144694065399664243000006128874677040188040522624382450634553181757235570531667783591401115142174236992243436072287022835393323819085177648408381159433463327762650650553695587373773740726168883209256491831757076689127855500896978140859586188338808132938048234212625171997233163092330692811457066204740511542850937848506219407082310582888153687770228016100459082477284534088703217661104919619510082959969368141428567243533935239076267431587124360491335065617466097857125796271188406179740190586376808526814021651976467067170820853480604822502124721953786302905825925155426511583670166682649860804428202062953334999026605094278439369358601814258451713191868240829202050063547148374831269154350140661643827092060562375045078668711870699721986896414128121475701018390738207119519354808970719072212433462826832532449277064118781496555136495870556276200338831324383091962203445835090651082984864448851127210732641219264181396166760323889681645424797031231754909015908043613161144135008809269427475848118529880551775974691618539415261799759999481352350449804010018229426770429239379110308899546796887325803837670813726410708536119889000703407165142581349612374501460285523496943262735698832354343755394669773139792416723744012280199138269480381921664587919348707085351172375675594008460016457290209455479380137655320020804418676899351072264388944659064546841315521068582399924481011951074556265317922805592129156878657217307957667231403099582022166308092537404516573739347411160246742036455630184753382017589857024397343914251916507614365135408251683324754971951905694732304031341009749948606124962494218751882616455765112337256399609079694387719257431506312919852881411207473107696779177786231314435355088095692994220236312897892731012840061521868601551163529033051982389879678557025471207980230745451306294196630185895325608795871341210242944762389900173444039005545982543395767839057296487223599071596324351983200839626509992361621939773397099849777776970359624039780181993968054716814349474796487065597206042110864698243712272456833263078180398841657427168958886470035725711425584961329079377024773121765115307344905663439007263969598866896076381128919247749745043656649193794303405006547935109832639218263074933275193022065468645274523692162043133124981155610097115361750172314824446360975873593732697937747665514379998935471809909976400458430546114813652634113294448824275979018586495471104225234739547274410215000911954785603579048325977910629167726823570624367679890319331402510384573449255394874420502056594327654290033717234757959753544473992147638184701785179984214323262953007654151243346073464592805824276557921083334117854741243289009189613223197000208970531072776278027022655368914790994552406748341397193857027758666491825255836044643020711167654116293521444838912001090458121467328623959654425807298099771034246019578372632970090549717203892464835948299586279294733320685733223426823337518287589168067257341776437060511904383429634156950060565966676767539981641673474917847862159297358291962220514242703242476570218132983218527753521541714456184749089270430721875867421036653930727244669606323860937702360805799960506916437980199251591028897586553806011423086827841301182540738507660676799899459678002270784737595481935157537081684965887179650242783977255905888094258058874033804469021356059064555813981819376243962285348826793663456176869810990092777389214144608552135458072095887745912949948488026375805533819541837055699470247009243224076889220282272848350814205312781369053989873013313357420916135935592756931658014761991343620759308314926326803091008871854111997266184639349504078667850740202922733086157180851308996271734794698998207547209455035684964471353491543786967116546549935604055546471976080393105874231277035475949019389889105857556037862912609662714346619285747888973052576846407394506390865461641065189775595348217050417719565208054491186022066996672513223280893347983348398575966419637264233265673642072460383214064578000607071863659505277543769105388609914450391521100117615634696370269630495774190027733124173521698481002296276561184175659889220475074249352564734123721120565279595801924437626453229876982235069584136114077942216750177940135295732587387212280408386065407632343003704967084745868454025246570991747524595720001417744078830541954130230660020884093363585085898916872790108140884095803930503363389806664161689129318917937706451188222757652775128534323409153692038231785911509134525946734317045604970197035640701854813486809095595407799937339323520552610061192644809805633919934003018906157147846349828708086777492531255949346321302739525854019172229194856741093764321070258718743182162425926910202312529348175191316570678777853361191297756202864247047364428905437663423906666514449964774580075915971895407265746913249966318195368007065166010995238927561165033558122334412605109126615622133582656869673503260512010622672468341669250457224255388823687950896950178945946423303237796349590150755327799489138028963275445115168298187008983351818237017787305656098086207500554523098013498786023107851698420611070227448728794410169663708516905449461243547242329886383999711291861946988341021026727562573605118895661024085670797952231219032113441504443448252705301790711147045832506888035106912939016083244501600813219621683544427662587612243619767241604663210725745847128056581296918158501573631433387549400291787021130660273257320875660866148079144944490884414570858829189219241827211174362718950984783666479391097793559806546110593489286081257803371829800558636346347142888393114708449515835293352983548576501004932465282282107184302767575989853183395574373783168705650765101847458966394332145327484110554909888588403189812819784505493030239507639528786293751065333978871934562948182552280186695178281449045983729229710059714604867759027831971673728946669237893226550326603550571919666833328352410625400700192156989301086143174831668997088221938330609374799152992502475099622002240795211867277766990416445972023993570401295934359872728615799774355182272973072319874998132997046420742827015822879126560450916512862890872038501622528338401040780916845896181375280146967705424282219375385840036707006941630122168009832904480369319038659801974322906728216740250493426581364266128524395486082944528812078544738911551047754606006360234716499798515693623702020562255594414757508832876072720052974372124713476803007318409303632087406814329728426121023174799191807248672874077087415176022005207787608185486749707268369068822459029955675270783793999524705447156731656600628160544542640704577386201812115177914178875789718477530365935011141714227361782938924165465855463372700639606710760947457206922423704326344433366623421875981181910600827983757116309412453928699773280157345246585088898726248284690414596351189871652531914354124120812790151388994228738460736667378960196457191897674984249633994451284057356502116741224748986759938005677306808686250987730811916939154968963132446275723933208355687402218218255643830538120209422135084055507490174539980624702163818197480009241127980210676931646656672072177092899324052780699811836986128608419279725822465813009664759132790719470174555332733205687873086595105097596039145227021919805938914668730163636072020885365642808778912769955047851350781263592912012898690317801515668789078456844775934073134542494610873548216282331334397695653166276905125864638282559423589885032585529648864465373802818819156705085994775495087464389061035124661721183795525441055329714010457962793970700949552818025524008745319729712411321597940178583776181885261290163104290901040231200967463374290355349529236645747361631702197189037203068707950791607572345101183519414144837083239302551321776839216309263810327846474714912900757526571134863305945321611957843499101665870435617546351047560072303486626532038631349940635719840104672384971946110349658477280553972127881660907179776983529309902352008766652838954957349634196446170512621454571130591544240392170870130989081654244942886128407514055435834175899457721618615185920181819855470613769271252356550592900010413592923847557982123240888409973764638939405308626579201211307784140207047931692435322578045863853633591534878660441984690468755271667893777156146178257821660703908573543092073984541120575468382287182320267211036427965899631228227183778007511771713554825731241667370870956663654845879299241404361310699066885006427103822445198578692524342281006614793250399073988251682100963490938735651689259195687552375021932139554006887335546419331246564033703317458511658352429271888703230144408836285573764582147629481422306420506592072734917350470568745704849735888588316828155292265253128737417320849835677564540208904787820767719755671228441144733059553046316978556670137814728782353685462765548477317897810425114927251746685894555522678600026981185500741442819959435738217673567804415434335031778840434306960122997539987380022135277802587292219850642921011429814347348395586905431288214236401008056855128596177643688939373918349889795899960948450325778014223261620734013522619632677455907626352581347878079548245058328403411564153178805110330284780725873177010787328021475940488796703851322225705049862880341915077556474182542418322847709020330460540242752803579248184117926870491508346384849338657965140130673376423452697465793450841132284401068469981307960615423821385066989803332051014477496550560024295762741582238868972777268515245057278710434173115574729322561497254949162524894828707625264612078364379504121068585461500805977247045658467749899185620209553806435397913684290988961180584148521651265849754650516412237606689211272549487277697720187302464236749301108322295684130433913880309421835751894735480498524424326910852570160696402953260745775160312754556584832558196951868165322963952233553388052107315020018483621387586744235601945842282800981989290925086219041004207727843021997587101296020070334789208776769088022056961132913669896996526265271629351428054608648087700668819581619219616468104305401863970784945863042632666142034937622541693479282177126552033514850065750025345038115030505707487162233879362319677984206852721567860055240826936864353585143294718621778976306319494321180726867194930486970209021020177774264728544122484332873452725362803217225831239537643784818564992341176987265156313971683658013767344466771355269808070874662375645203560701791563025557897642387253088481925066956343317402637856652649106773106338035199722149676981290206413261022610874884220450802837300370968034147478067628300408496506651958523440133363558753643751436443071504754157335451440743294749941347848713111697475685441975341211052275747427845474697425456933645803766424734141436129169161418530170759083247078174867441535248053011819214960733964168887411308273946225467816777898604199512245389218785976425179892580907242936420722674654404019024609926427671151330331904609494606864802258362565740988101897973151673141731048017505489028657877399138683944870391789166806322250718348768580647873376092837012613495456408003148382362845493787459304667023256715077051959081408997652544651894297334776826299676517420285218253743014440671549672028973686439621957841102438562045208689484915100544787434153341871665083357020455297625688485788085934717180181636622052649417707902187553810974139821702236052004280394617790371629747890300488867978154438263068077740453437086315033152382141377497724278015620001270755288044407965654144343323078841889505577592414511128006996621784635797936379974135504165932927787808913052734050865252658364874869948157054576761190829286225890506849307435870624770346905529185587892586420899019183111445051533738195483865311674387731205726748333543595479250038960313620059545280726303716723096222712843636811253637930276747291984461974274990870967956803177531420610175531726183536974168780320602126719560050176711764423286567119299293393038729061903699645991642648342023538846727710716395453726376292124211773952389112043288237855857304725179036874112597906932018130623828802641419344521367914432629724534148365528391563635867074466843812586438815563798591841328327761250046549784267494887511335297695284333003304699260541357315819724590213632439653265148575040672184223245130553463956182877301335563973235406314159087302544242623678594835961200370784797277255643245205893810118189353912973457774926287555035744533834180463750393061572964867206118911323269364817347441493484838866185423210470313030382343099320521988609106030261846081949326352761729087168514047284216051825971559235968908222851483615230490105170188261898096097947264662418205812233453549888877227213345784578954298214549686169341679032510871809003575132248325125698016505228378374448200072543750825682896244460615469797730389897427000582416163899853375447306214326495718163181077837252028708119672938014411577377340324441943729697704937079883751593632836814556925034418325407317154633217872624528323613147643548255100968430265066779717400481043287407663441980370830644794272691849995031544002849211345570871694336610663778119284177798989695761454675750761911060374121864263324009469559197313067895624222570529513169603090515005485099065633780440106253679216600870042069071255441318328003946251722983956242814220607287688902734325441237330157047836801814697504778974404131524544189708442159848652204842640653544678113542184426824959690750806326966010826889192134710167164310299025967184318889075739126770959622364882775587081261183957820618424972873973621371601602541151190439710259090609837956715488115172790403246465131990931586777836056497262399577570468891793095555777661322426840836436485113116215689810831452674367110547097958965160664767573733278197234138307979834256543298651071521152540300210831243593940677291632303343613148172790422472279790022758722384063497462826198145497198559049326752865330914590226808256756194525835880677723457777729052009878103417333584016741696351985118129227754280237887514958538062947721999645875866818466689288751869532309194194455112347644459410456179633891917081067746036197865788141904572120803251873254580831408741978589020044282007790431205767684188270709984490237657144184753571373578469028581472350841647491816596203921115624879275739821630480847787921744252725408522621673218207861392986223278661859909900308770673568737934682018158978143939441343840422853642917073777987051268077466803385318534770373923314319549927647042957653469419633446557414337131982934714715032218205054027869748335753806894594355022423220475486945350418667057207782862869715166355414467999251697878397801981842799673187992971902230426393246990810822716027850971468926350117297692138045013405239520798634668089076851776021231195310976533809762347963683809836546216101903299487054758535659007855925440577821882522033856158556607066880788763753277703075123147239980191188935729184374334208363211317296866160889542239521743665383916015603902715257481872189812968260069780924886884627122495232566566928294763588547824914300647695373549109137876794505164826589857517008674478466802765461378525942801898561428269326001575009489215154503457244160686455779363133093366590915201564575807479772330161614319545622997661097710245630278371989690531239880867248156633646400765000600549309924157684567144661502933747098516088293975358578553504620186563515722381140746770098332421629347085850135625634347635540356832629111602682933740295893544765324440164331621702154509821870181196240088415226686312541933049969681361656689528704625201162539304094846349178259961876896081228220354592387413381870008203382848272008712708297979593664570578386002859142439664052868640142466168532043746332634938676140771494133138898801039356934281766791912113678479009262025150496241953101821072391995209024774772186471740529537396733374269002622397541314548417810361045158111967419849939644511678116602091361671415370269696819888358592086976551653922347275220641890709582263220506696918810230694881953961160974579654884801525174532760100819123092722198989543757958306594907216699397223827276669249395787099043668343654704698765942027759792151191161588071461648702977263367336007202250691704570388688714218839268570016613946812657312405324276162648607059140518803860549274344564225747382273690646905805281663886990071355561848942051743238205716709038704502033415240520118229420391299257787327589083107957950061208910917256046822105874757278197762304183619112262054926963635604145432486356037037725887189544528750629946424018030930250311798656055402130309818416904581763341330085100505569555199776970222598449312109844246833758939993441045434546555442078692802658995382924651453280638963458176650957622128721553519551282334555544619132163070991644234687344511502708077666538943533721723858539810583545406012969850465248666241401946783247344693721469142085326041904828452334758289990641577455132412549240477495545469431699417363746783248870047963513506549506087032651865358653592266294436041673697961025111951787607460572697650650498034683874641556192087034469477432677483082705235272316784921779845883206410465620763419726068145521875824649493672018236523115707290202002850391575042704270515465718970913823591701507322097643472690231841423254128902501724649137658578914894921912978064070407004240219479531014681494818409631282387094767258689269987528979051218698539893557533201255208164870011699254672179466608667364894592078669034474700139865820139119108406416019835812801719298022860983146892252578380207418697505934581098142592951626777818336541494279833895210461012041403631053200551565523278927862235523250418218489392397997670480830687278083472575667155726732225390870374145765649477445038451442743793943586549095595715107760574619048155342619623905898211450088852959058638369052395763465332974237472963343443688529321285194700104894477392980689768624734724733249018491923739809563381450872942218424532202285206418617229756159311975817857288409812159128777696184957102748291191441047714296494043432869569578790287534648656371790550499609500094857035361391161720206891210929994338767444599034235936000049039580850626343126439170163257062683791594815105122080163293241776925277657608285673718071462932872721718221248028283419759066391510929704243197957416379599908980972639173028589350478088983039801289215238817719258777219329512697192612340711881076204191568757647565812569762472121797727907510244497459261226484510552651617212856124967087917641277494554537092079474777198152779224156548235456103123210577592380588203569068363191190528450818763367263838922987504719539466079555547712234598473753164485952444275186672585375795381897709070181247219582518894526083679982732694760737043075175240882183133555002539534365032807479605616281025756295128811763162645877153438506473444655027441288493635758802687724616731335770544319131349483599585096816242052391785083168146038077585178563370192453363450554454001554627247700813096119665700738441880796918954527589445111052101166185883590460636415193093229388605473149728477692782968770597345754436989443242280852065081388863774423661225715421592805581504914830370668330104599737614332272925982618538208619821521826503084609673228313030234319698044334366372588725699984584480851115231982456505381646079019095682363702042941323554273657223673148143325430572389989635006416163648673700866535377172758031896935528612114816461017877584098708150182009127517401586834492815580551982906900368546631798557746393448159974478720510917849457976289554377459792213025430175745978289045878407007011457443088978091935466958072737344952764505026127529391878550993605519314470915931590118249589455931813465470597896395612231712990879822736792300025732004284216881407488105954023687174013213430083468540231931944041668486752777800540817247016504640762589458716942399789230038593995537461185116033738164351369214776435714366852897097020641952955069410338544626038340400794683760235103801299957452217051281934330366579797174275818478015672649403621050960535285182925522446174763188401371856046754203631797117434356192049207154413087532558502544256039891778423206983637954170094028111203589997330786823503668825925112302668388261989399082749458231499803991175721754033221933992539500419104151300692747025454634927645915472314022534066549130396066836560287341417484422312986602596637899997828960311440002287573109747121734121240883016968353274561775916549190061040792728855664856319920931175154038501258074398685214477213901910000258552769263689500747705818706530240758275000927824129011601124084315157315240493798763581582019189686506473663803503713351855567640474850519122248094287800498091187234460717007967371909051698364395107559909614344155307090706940685637217808274678799695729936749600402487482276718603646409633604487434264082987053011246992520660382844966554059150993357200223753532068200138039288535474061355478140203705906243194568988275720066106274546591377336305848946723592079616745928224605694164719779460963009465535097677000853590715463575790743102268554403589875754524404908978626995676852944098472888718718395717086221927194289456203951378387621534933594854190334751166411791773274561245971946447783004038944238646124747355211771131950304486210625432552467844428342346354986799451183984380443746201257718671633108836000696301131219212429930651549496960176402039679995423471395983374463257700046817355316406887797342550367848752986458034438644798608934285220634639918521661502226292774804280376128154839349420159765758353160918677514991893983462405360686041624438497361859222074927270503675699336582377594089411800072989235017615001232634854830924835220080204438354887204908317070262947766376204749515863595972045302148139972640722710137450195277048016907626366746008650510148082304363644445898852774623797944709471646030790800157367264066871500195861593611255031233790067463050043448649142149360082824298781026255069813028768126078009342539751077095070818969775299708482683646264528834983934544467326576774407762290968639565391771740267690716837096165787536025684017285571697582271148629349149911989787734561757158302646809336987617683468986356994534575398246257316701188178634735767825090930383999283233146637281857916880065214765670850871940976668165192432026854544315152733163262653036087573843881442250017230060783511676174131850457524157747467650433366613630446895060247631795977229118381791527659039312221222021890782776338820711861547681314994272910169013354148765981372612461182764674607732613333840749276143090863173522085467076992253333462196431540220154065141581979239337942127127457618891918832570389315536086875227183108377913974886930937633178317350142187877169472513734054372807963406678832604688789380367678695089816041758030572444794542633448701989357802213721598628522558056015982529539998565478434800143204068600501583234245224466395569943879959659581939657503547485700781090158207681577634563050491878250686959588106813610209278298234359037911922462512533959825541540322438582129956639431412036641414296208331779665293636017537829660537626579864155433516335293505433647155434378510731160087401072502588808606081715130042297515995554012843455540685319032477656824208843532903303263951571684501121310464493996402700472291519940114160925856399976951187777307784678459285074243653985586056982102600257422105567750528684236155688883610342688205883423972034345864651700688091860848505753338687170280637142202899203579330577218268147370912417425309494011979213412362547858681695942671229494587887893920477971783612949177104119638487848483630242530443983551976694863450709018808873586312254409388881259440988213363778726054125103335267810143442692648626011646603775520885834336922666100121227282243817665376930728335349194370187852527063204427666609911339148168248921021474220710608117700836868599456613307443026627774669840908967396399902036867140805279116425857292329425169868948950287451781277563970056305711252640826586080174652857095250754447641023586518052071591950631716860185674123371525787607259276770799431704265042229674552993706030170243670389747942616994175441333109313163439571510465216035209863978377076349625578018685614379413676315350814565772501943079782155196113372546708633990319480476600734126135174657518615545237663769745444934062447710617426834100900419550311312863279417922041480902768084142293449311649228250654759854032720829507121379814064480867795195339741902612653035789516879432113019037300601525702682976590314208591606532130572736228241822046315739581877051465273810533519370099441905314263094142872472927810465302250539149440158787980293738652367462395035316720950408992421078733952512786580096223954438586635840306252157999799008693127162585025491111816330498707961435944260079437818427654764984697939508628638845058631891337373031085715683676579784196814542495985168264185985187465688480950355403943305969420881747983943563025025672641904677523279968498193094936727411305983529841113771150935878384936006257075850967662729244438641318357965670238054179104269870923516135259531444274889657962041360952194059280298633132079312287624089958883632118637917966242007347658610326769293844058736512873767604584751058655087464535320862357966316718802861079060541066773621612769422195226292204735304722877849728601178229766760499792328525255212423634820931287430716414879464129998320967946283154230215139463790985789440081327042487299269274398734645904687613999114409829844520389428019619185039229170252417693402390020424056740817524356403473476623941253438277317317059969780344368770421090530677243686636722091669608734594371552893903650155994811028145199786565024629455153731369407468275335374178565178367031713852353097126618557262732751187200689220940872174391736664423627859692519186014511266526512632679605175733360711217122203582704955506541049752105917052745790282880338741860765108572792742721582127402545533576600389054398037874895008214734031442657468134065259896926650837802897637203608790491449680232049590746108024990146621660701398260513485725500668166370268341805460045259886786134597956410908503651433488553407471044122328712087719600086140638300096155887611535144224728094737821772508130009270846552081061262956438181523705071196247864743554089851791473935680436795767956854793563261267468915796501469280698587254266399466500533056016669702508315648162163942151426596687041529659246316106516336910553931693576397594154272417133632579687750448484117659494471211061238999293045290920437374035465166933961004374583013517703921896912154851848592265240519638328606087137729872562415812409699561171724695904121064541235764087495038902202613181972530384787238846461505868731074673113625330439556713239978778750394529502515311527458657891894016913654142199962564901951848872740211699489210846176905083000795500287612258474328304315875683242523987561822889113909661463906329026629788991653927160221684881976983887869062865354842930822501415107937334357208069631840393441956452929503735569810489755335060497855607900574053831068424123357057927630142706024376204569984833053429637389688317006177431779877436809404193192273114202932217323067322239159484824317515882258987438793414362915905505390079547548365709340097308664286393316014862301332488835297599270999625032117640222117179425079136538394404998997364407471432310017949841442999426681578033330163916181867574838621288387684271950239910626494826945572031859420495134623058311696176693368797708255002176232945113500960996076718639103190262848019543347956858456973016641747612810686260380376238671422892058881882741955236294520541465253923869710352396212416954345980947862920822005764923302465953769167822496567544684981088730376539039821472246790185904838289295946824679897900267192611770702603269739400879751755859088543053967571277307555391771080892767263449403282105386046542725236408536156141623279756900040261658240632257526244542189849778938859931583875868625905665634623356270826570357983462181825156596702351220284607851005043757360242857411405033706925208280155760315758867971841445486938577434375116470445882663745793872623340349190182078246823966967926502401827530128421976683461616355797853568055057583423568699523350227198840574399581833620391591916974472022900514176164075579611928257140136894648666600416313944810340470596189088820124591093561253968669562108025399193264424274622999739573660593492896004831547167103904750035053698861787657153701153532436297690880398835153826166165487934713578488715290398274335419119529327211151928144646949543424028415629529647159355584656757709003468524887914644297144107202072928227005457560335197506258101059204219527407349620733254887986029876352871268861696480658773354765134689949958894548595434145491637421404415701787755540308069045677938149779273885652403550982945171098918062970053993495173083254932357990108457517904626416081657740447721877237948936858206984135394274358293786903463527184365597577521889586981527466397872969363806469169149323896309159022560778705206647502535292211684944211810151942461658571437382063159157251591404114492547104923806614863769324748895348109195441504130546352151424809466010805236290076696645552172183310280073254999867562023227696041937781821741962740083293159211392760567047234048030870106075617917082441481331409097824738371581513598277334035930603021784874545448397481356924451895901345957300192491312372395043039800284130023394059927282034934923450139794294212046729382074951859180232491272832071955294464449663104205018393362723051220959947249070578798252942800974234649314638224309701677884117300878118813878997099601727181185377456268765919003165281391292993007534822515365640534725068230211153722194756565352991139951860622647154222550953426243541855593249616285151047339084805898966278385711126904401206150574403493149904744563643749933820255967729754436379930033238098011969118515048751796942660926542356839572646827484580295804955898272651543210550881455792982211078832423064840561768717542706917025904599246000170973727271580801331569195797091383248629985230374191046561368122155641548602786187910218607002114390615931088523478523876217344723930505528581842159641855862995540813839981457981291426949037380628113211237224442506325640935758766281078046103384218266149405188596091655148623619206951826657318498053615110296108390370788718439525132855231853968418750099009669772060457458802396204847294726917486716534826346527355612376750747032137392351596576687910318684794590917443047830161444564656188237577677781382803237870382256673212990812131006459141619382058510170506175425176374162698538666598282540378653730539269285866545538162046249255344584471426727653660964424744971330233522792429673255673466863866589286319665528838314052584222707325685558569298373091666895859199876938182501659668414878069479426537032159722851299261995951733804969867992710635283701897412273910278056142946581244195130564691779759038768871377066315240412449691652715896478596725971267289390471685909044054008451587904653665068737729676720987981674513578282062400104392839142671112037324794699575257421764240273304547953115938641234109327011336803678916462475873162026872714798860927955786200287114401717497928871998864773290738087781429997750246281527621324747898608189705848898626375099322933476714287261077860423885055584614197496250166548529307182545747448484412189655940572761834426038667448200539762526074927163169443747938369265938285585602113496444562722151981301403753896544888030791889122007247991708413925112657619994436063751937716524070341777125894694784913174325582707076263859940001371510921994146517991319666561988325320073910451469565936725426805126175592824258284976335902660709153599553687259766017499925932219851132881408384597225513519765499785096350495478211337476133039333972577378601692410629246735557426798308914686352156953623986802547196339440635592499975643599485775191059621078144843285566703253966330191041684868905954584185486259419590385623607888135213591383778840707425411130059210986036116139945937572939057506010948281173612185750118823493521585455561051944890813364631718449278976544304372670140789952418994718474882770511991806912785184194206063613003170553346393859199676182050311722113830781745997446613720256914244319092949632331775658993157873478482697124254520406741674915469829781474733845484363587267752163582563883414631425964807872800391016776122836501576571245600315272785032089237821101699891805117947621585528976849113113190872672045095515772002591013504173921616775547216136941001134112580232551918447939286104107700644979041645897561117191934672281400185368190731031623281070441683022543440844360230425312925185875851391543171188897979136612268126623171149896609698959414585694135557755731046523543866474451820115077101309430084398968858315520720301265080938429297944408865493292611990449451888627021269648955609055910496447762805764702604805442301966948893804506999115779283374708428701678656421881515319209138525666038224456363616778389180379238672380169406182556993075502916035595310330138462787001988738817613332049781194151546429729560524554430879962884828575914274877922352454655356441634909996672239892925098581654202761420226269285226051697437136778673242307787645718690450310354262878190744188219078694451902726956494451771619818105072120553318558147066558030646440886191094921841632660482698751677134035793695851084789147018706771885329263287486341855410543835359482784795317311690339978194867134251046967677608823905217508178428868196157635999230857086585711274620692913797215093569897536097197622535635879000886724837831411545018410085786578399677965002406292932493128512043313006287488240671732762830575069310170000170597044400877961603406417730719129966337628126355917373084291620691812004829156443635392980733537743062664520972566161706994890730092721653037108935345398712155088555281970000324663350320717278582002182860913190671237593093967951005360083875071999654616086877242157781986892167437180387331859193313208061271776174985975986539439070021288180161786705033624739998214969906563990814387141352049641566029813690981195428171407671092330517483085992839312192705988893248817035460453011407107379794605358285881855026854030210378125545546987850937259493527915306669836506219017258450408560670765152383043572401511889157094333388877336040675802730719957610853833210226338496236597555058163432295103699521839527106995370794995038126378833820063844804613295460018946397621502754795107297298133225378143506604209643587060656745389869599751959966788846888198349982504229324607952892850915083287060457185483750684613687520584330181653317871445967818515127470796055090310564660239747208273583979696827488747926623129433595671259308762732292343646147502208602559032772451676681737684586758119420926745377526411331771849409187921378934814962166238178690063897371059105650443993719497662762899946182782925820128567417602286749401963004547970965025960762955927003706608262169685775060878992235457207199828230872978783356192183406726355600669538593747915113780515686247371108877592357447965173096353435217405321705334118680510311174379636610564035244228120438681274833247110338764964449184775170561046919152893270757378408175873428442629452798652774470034938028101100150453177697871674510720661810981019380458290664029596161076845127024133491235957333051229813989005424259741739504511466774001539803580593195855142358623246913584908017730133212333524809241920073038258102655514811173645352978815619291001814757154074792594514534825435206556223168994996481919256701431800914559212668116257011838733644400687185787717644687858392993180581850797197618391222971962119642048554426941041049753156053380956455675631382641794817624152194489084273864238911538658402727883764199881385917177744568342948324725032207252583347528322023035728772308383445432356373425127127554368048348426082122817239759329407896609011186797419262106772522120860568746427639015275440740966551027509441625022493535203002465136900586195929743628529995060331118406393742105459492356953574915699136242797520591656275270549229525577905237990736244354590162391270186974025266759691619742696166450610689093878092677345361224811332178879479336516542999008372058491696436147265354480396635294513806761920538350869237748246769642404287589271953561393019025774523414340383821493814767259307905963718134951804211622089867660854359850343517792477101534311128446562577698553715650662394545743619500270125669080339068844835914786129143650988731195641286191386801362276066664989337136104145741444419181969981828085777432626917297246880667858145464415484094684105095725119769160093293122364633711286956245710781743284547612925392449934538177820418924495871464574520167643373487509213483920488608702158959281827522860568418708811969060047861422318974875354367124654682121798308309078347911450966902494385664944938480954862438148710503589339293429432579570507711637692721896792718853422108257060098581758516479449059186209719165920516989123207040385577714511331193591398710442668104738359599808164035799601396617699582769982593818626147453128822072327876169988789391208499935079238667935827430402035531753623708215194666378632423200313952885165771974511422244945014266979072913896517168652554380038421146873931773335862806978685283686238477724745624040342758564087127951464861004401434996673400456921103015835955994880367739761025839450161563952478683362265797744964781412326507224462058454791274723842305248861939174776958051189483274212014888748537162401512725210878291484353562229470817242846441228375637925178110019593391002118830924853187831274980836414449247881825094793890819202481682105987033064561060086136566075786874850159333284008153339787778566035024132837911972769755077112774766198485167272251749203363943866450330996690518058695449787627901962318614267876594075682008143133921727876883362334916075866107098262002387998119098934445157414054498970678146153944051381472237414721983333055414987341434529193849918625077194062446011685771541673840167945543136691431149762887415688164410064340000969120387455977579847780227346700374346576572953755751393791867468028041244100910690053939377342138869174708178042934735197419477429247679847573156729032065409302450781151413023778999214526256667853664787758190532457253114910346670921168044260020161767697451521306814416474759893696857741893370662293970352369603387896426768143930561682111487668451232794957707797109675169966640412273583309776202164118215803012890502588200445226055355276670950981342463172577452888975556584127075840247092282273113672936304715610863546186376467215394043440159171950155516709824076136327395505996240815279620232168826495886544337136312762064731579343982922659367813251317582580245021323400256339550222281014978958766803579471095899942545530891881270065621559834374604340577384278477636969852122150692158067267753168181566854035979312387075560739001223576298812753303556633716421984518346073901548618651565231626915689073457407069742179304664847997737271842149405013441627389786646235128719466938982769349528465128410612056368965185568932926945316127821347035819982866832101068324634695225885622682028600051732822286871725482892556862463941601365653905278257315192235769996871658566391687739724930146674289289250250787880899077827269499417767931361443625822089479110494482111325883339989663765777860320747245666858509469663275260239431615603785157448506409044678124679696860659485657941987750489554818638953405310541055986412520680991867030011389617625350276477454911304511360699533818889510310384413239451285987023098184951093146959351300910959344771984604846255422688930400063389751981261985416129809688257635334732178433048119743446716451195428019285582876075085657967765912229965134912315648294382441593980304870895944908488216026336111511050683426293511567212928989894320308628319578110102092809076190587696881669400217287248585619350036015081676024891380216326024738202771874137783338908371541806287178504993600099735781247914310604372458476689659969287806312396945674720757407553639944752089570813325881291411054899008272033526025890438667402214761874143436844070628163945502831832338410200573483122534787928267053210795256766485249135044505183106065907632174368470452138320471373624663460457664091115478214718126048564261726535139050429117804444073794878122398393124789310816176681842495298001334379131081806891011928044274961943336214555865246781176879547447792248401414714517494043271493776130810912515345192595759182848500040204189641155551258262196921389329202233530934958006206643316341906514668610880032441014700063259659059995881809775043758067247720833504478896634017006013547399065188749385389645275107463908143307870443455953735829147520737223507129193678743825046833837905689003066461365853420487514684581680857424566537686413593983353312102225145564269195386760871099933650568786462125948672800613316198696632177979104113522615574784709878939586474320408836949199475314277405253955193582943395804779002370921108811939132879458182452576783573708689786379514476415521207793724361183752611303420197940849203642861750376487798187506259731664991677916301053100886007431757949256086559913177870578779369660880801919253097887756999249488875089704449001967275829385555752778211994194318930001173518840995439421615150825212976115491819298046652406581483011378336917380564987054103669153134322235945756007303218453282898840195238725256604664251149090559172511947008513216920825262039824582902215872426059637142356491753623681714180666205248654639262265085207508138093565666573776454548707834043792863080509214817915747108565268923718175109584635770153585032604989847762283633398015203921317049023380544381214915512095636786293074233245168707370721007668887013584774640877661046721452006430720896596430633410065034722054859520978564136650202760787664689961984642257355243680012594901834639088549079928769840621823479128929296169029835815361845455793762353018397091572806896821309336226403935016677092458752013246429240081750381447623003808549842393401968944207884294136259706096857756907961445061190581917607030276349780657498795596274719954785820321380969009590438246047654918931810784748341278912280595571399648342647675767928728051342940756589324214507462051318667937467915107161518969428852445419971157165791451741379729796091749224373834287757503330651602774786379872676453546849528829102379686016027461254509054524448820890606987350450536966941956992018697114235795581784238570097830544327272181589326752654054787396718921380997414136140118710515601350709267527955276900922626173009575146274161626730231850050501966772239066764615531139296685031626344662753913112722762591539504411673177333078571636922571262444473232710061339452447318396118082398286191876363855162415146937849097546258501813188401632857771521756411718578138578171876026982357320947617039763429051290586859691720148189981612597357095381896456675920540522922101728481064748958397681782934352101670260410053414057062646181636099974991119971171899685715850489546902282785402473685351566696996104586321091615602751089827506256060955359499292073490041063568671578568413879651118446524089891516309324880124112149254784112091939020768850614423804158254986326829202294257041257357405436719804314749968448335901845546233524023094336648287694303499204373413871890304824062091773083865139534401429022568776551125544747118407771176388576969493760171303631889301380833526466275945240942338107867820416419486967496845584625804223601943462929296609694116359743995871274452059804462892636534324557505522784863569965063432316831677139781514261912900730896824784666378748295346910861757117745906468106773364258159160808912284599071772892263716277273467255542566871617898772079624369710831926869664411023854199001201563288651911410830516984505390470436876936514789347557643877134238131571548646343194300890222692695237719268743806947565048924442933852569464966660610889231739809539096380346775289856930496330297706607091898327091455726487489805795919775716071838042844838305623598800443312028560273605418548985424982143584639880974628563823309764756933853124844157744401179131246211722442788981271931428633203547454694636800037616857161403426856928473457393575914702032031339693411002960100288015962219957060507473299204444803368184070775672723551382087856558243599379486863328860267090487140703827998015571856400546568093274909048039679064381763935212836562241804299514346520712161240160891422078829465947869809852536477147136912674740865741865689927934548253055176802702053570105192451817159819721697438838719253660033864463886030873943806128322080720138304973740631797944328253321730005202145906971165764635262237466530625560518879050156035175620306001086866115493074153422357940348583853091656856819319969259593604396324072478584730383558762554347046836976006913660945743143576281873380410650832332664776069814909083683447151407550834931599559479224791086257461749704456842498781396219202450680373374752650891121576137629560628179524418387846415205614688027659432357706597071952648039878485838126989723407322369266492723309694293500552615295932296277972804490837882682673417673823868860432190659156377426762297571376032899685391949832526782807564228442099855433844400547103132116237669506758550921442672273297774878389684536145036453431545188396617301030216463904181917587425530765878127684335530505210458334983920051344771719779326169244197165675112835636477892321548506514150506474666446388095949479560406043841585486979009328856115029966279555177777244734223634794518021638138406798241628001543452803975005243837622964830204172449426070618572037247741955566391655223817207584647140694847493857986548930494964188865106236334223157674025010127987777737416987148795644789655478273540109840174728996242134785212405445294010997870573772350762421813710112105905273294408607411100198689918315849610609326805199778048185289866729481689983599840526766148652531326379419992546242708719156631755237285629464357675578627992978172413720526896407911798352119680648735963596554069295486765110814983051174146005744226362672299602252836409234161151625732316649281284128064183444726750489656761478729361062609921781954779871121596427982692663853551551614778143835764435209654577924410584066644085428102493762767470652624346967122094600323679005865317164577592715726297813235480561952643427153513243170123568945464703381689837979779949365893606260393585617748258794980337819619087302558806199046017784444876711960555407531653804242039072067995584288778234376170683536496571834157819624657150335664001537374761021855558981216663739672980729645275679559168368567219937973505387200757853330104057776223137211748914578717756065698032748674656770970279338929640193659292541061799343703608869813142948582040382220411180625579181241204050517683941543222738766186281660167623540728680506983458027762927097690606331519534756635881736213217233346355090511231467872984292913430670531555847683878017754509492823950304147800008944034558902307813214300697071101133940140977856636827100879484966476827152413128616605164701330569380210313323611893089389702747640022534232545051421118855328983858905829549678636407205797956331572864042932598466693559463852554343703811705734572052610510237010530075609953904530740524663713408392046314338925762258170996657918245860531849728113698517392307577571331530141453054295636530143829510712129311044729041838479638996684878532579162018219938795704415288828748430927478267897658026359399613632503237236209549401831146150859638721437093880481956333513050223722479109036258399216576566845747263463439266012587884498525228157439380946341052197174100529551955824342936537017665688246022906979193556205638476143204988638205762003589602579349578157430902379160892715631230115028208053019836173882504807300625992650845157261890004249377205099660184867743050938833354716736727177754996553569582323451780069303190079297249680972172485926732706411331892690745279415086188142109742758242659366878442141256354194449636896294273536172438494516102470262506536571210721549220873726768119227653527297058852521298511421876864622434821013836877654056610186277346819879610889758459436105989554400817356138671298174857366872487618462618349074579342193734835224813761326941860455873549548447559905224595634052856737627751563794237749545331324628116590786208110078783686529362054697657462108683888567262446059065163982654872071902059083088064173329755760155381441026905656464029692073130601788881578662423021873728119989583580872407928329794621615750495412713821393180213309697874703066127420980432823113164485808077389660892938105321176230453801723441484978294913454041295813722365678680074897608073722607801565106747054702395480189705405273085125166226030108514846315622549237818656476628515419093176901935604605467544993132193708365052080671160936883856102719627997107681784921035870561971033978673131063235933797978733391633822558240515928332788141352612370277857915271748309497841979320392306380303739614785302203699309051683073944068744175655309764860778778147444360627796341109631627570297658974465777992892486081766569703471234552549432507984029915479433361485542874562178396174734013306124488457285456549212791806947912301553639453495997563480210819406449769567393340310974273478953110191188385629728428688458183705278227554795422457064759865026450438744765562045447256388328999871242072628759247910134771213879415681698418605793610066446263873186579642414200065844891074791268894041733380541649768728526575618930351485405732758126200886314961045483683132942309518229643565430823128639232183829163270488081283775514891849344273249754506954010918384497175578955864112707804090977547183965673926406965159564424252129437884012458097873477990903420343631800854761025073046469229096933150340474306013410712343049226903951581802114595331912564909865928993563360379421123943924410087987746333330534135372311175389124885476256941593804695236008711305795527027009895343850892696851935367981814243258035610624145647780883830765816744567155746845738413009811228909666492170917144338465337441375861009529240098657201907425297012996460404139905935631143929061853332702932695171898553481863289936631272900968835517317415166350154841848430275474341724986419535709829143276931064660230160464813730251879990524689327009596734573986652185444498786843269450507716811026158896747526941931419516297237503106891358470152000168461878552345410958170448790742900857107963212864846324118700849435803758749886560355861537817841800975371448466296654484731649742945206449968993719501365855241912813244742366995665946801700651855978169835238653973075517678096080602783642410265034857854017368644820001407004787568940264456184362630730380425525969562198738806756875037573230301467371561235892577694779739094277479781123018730083797188828171338855240701781665722845246641298651425392399878335437047555584980974010019439946057361495892441667067799273546973389192600028653903960818648471147856426418967161695731139351609217092310456711112452146862609978547950251563341143259939965661559820438309354795310144373414938360310476436654254185213785239442369278608270711981776316552541140321814990823616863526611134680075200939188667133770100770729243200467416812856308859006815190010057776118977000992845310886027720528794611052683567720038553204731147350107011861818954563983420148111191195311123551893202268241679027085953829039777319726557110450346560222998220979125798787826802467032989751552324298599491845589833243426192696620707674508549554581306645891523923241261805436188328901867074349957250526667680149772937500566145147083904020925214329601238423650557364532400954776467927564332398566631149559046473466059618797858477091577584463159884848752363017120504700631287148067684948928421737998105663796306814263897338613304983984674077509457859624531927934151144745008792938793564095302138382585797934019015588637042590340371348553879798452332165940180334306700688660423023718967976972978376792309689679363456629052616711592925083628619326312426975261133876486070808477641789770123847869408790719336282776231963562002014326541959226117205554926932207788092360459494496593129627325858124853405109378262598167254766778226759960338634478755161900301902291394195023697619176772877378578102903405637538137729638387812547768204942115563204862483220396683220875694620233321215576960435706821304305700427801090379087672374504260054524743207492492959804696093666547038441467121895863050413075184903420745338633216142136508328424775415023114343341662526396841110718174230646683013455846546848521409560852821979331127250176057021843086161623108602593457576492773899041027759639165433392147354957024190369913425108192027995690369100621971954583442196904572196403926648595221676834092892226824972208679921159941796064234669683628281952108031811365690480647635625181905137858022758215911694139960548983608324223495425590615035686028728519997662228324181236664820109407188913599876135060167035231987177633414981114773396575019379941303426348288343789314894049552706326934880041099697978344559939589918197567010550568670313437395681582718580980311447045097297823975540866896734405410009468208313454804906708303902442236962549737505273278731245384628484894574546430207208259773906956983545937748358791866921702546375988190375657631016703395043282873132663888884525913684392199614443007289841259695058070743125217331037291134145498289333516594230418096010438429112318712843451379753224534654904959108932130188477694765273332406505242860063045034922996935384762785616917420902559080106354268953072114053317666024258594914416420438690764789841832772112500017948483412054618320755961445923872102763354118458003870810785045899347079473653940858998302825927405228170902134669356688666035077942452109219996586430053680129374357109401738728371581719045646441330210995645148464272748329597622182759642915465596983039502338334403353427265813307577310147351876354995616781129855012411800837672865875030525288685642371458407042634134212987177238097800691552396667127308653888982054310104970367007553692395083586162143809870729022410896104559923395182343426931948613763324859443696927959044895398556397388448368767446185393374549130246390716529779478610810416589567624163037797373148103872266623191458719625612662699617901082505504336220963288689109494271590420737784286263681156544894630518967446434726737561950065137290555223072016411328864911686609696618310555888026885680896968719168956997981268270411146691959869161415666402264465795792214488811078111039109046110625376563161802435062816681562663586642781180979111547621497731833121695964615379901495878991449605813909942790123478184395381513093511773643013551980506093790476107575569692425455313879026720916776856007635219692079259637632151412408385230211209235900635227617635684552492312214995257973245587007705702808702709563351914026402184559278331614469047111749789293009946240544489401048642954373301004163128439846401478720582666608216880270582114201069146641005274036486610976261649800299037157551432524890388917317742789613069327372707926857662869217113465378715943461591703512803970215363961546089869598255399263358065285277128837197895130539792467936358611645538170889522279674057808332051691534655174145436562085011972065391140679184343463705406144711997498466507333112675644217433643027810517107520465379882481714345582343494580245911381953742479023459801021067749963055932645243191363638968237046973963684329122303028986704145252046858573106825372186178207583510695641441943219987836792967895779848479311186360244226145110525196042042207909168001142145330397344563799898769603499712908222150376468558810119703153840860535643495582158605752191678102347345593790206907660951416777230753464171354898245212510833371471164288809893879776429164531874042787035697573365067795790203102970954056270560059522784519380441169672869446778649271522739945390768730218994419151056581633534332458855079940443383480174661311050859016090245517557281928759091476149841079216299222856572648514760732316351815012989017024393672818028717954120993752953805778824571035264845724651850169528062811305106811303227600321226585519026505595749703230005500326276393382147014612559179085485787229101342087294890911928714044404819540597430373281163157554921254918990728966360366747638079429726136706782817281553209160607726817446427416137319324799197332897483444089569354226705108457219856782007604869326721980579456205688959761189738648472915799316362786624693088889550754851061054535500508630504495376385651671272416117376595834684908172171898493762069173088332481091885883307355628273876422410258240491167313865219042094301914313922989017105974172605109371251871340702809401532100952149604802764958099712971253635149942850092766264591335689283708125213979011440452928408572410917007088129891380104786800120267510542467727863711573169296949131991671770858092468549678426208697293632284391213344908210628537930977156893210054073966560992094342211932826194511588002940203663789760080893590649283578438971949248261954881155350507136552281692869447926605867191575204054369547021320710539362292104781591504546786068497497449612741471062979998141889804946351751799915155917826819620059754611713156381067268442129657503451457445241614588335650152484577829476558532379318901556557110390036343778190225560686328956869880910000364712444084845423185239128848535354842181971635164434391763077160552188570014251375452683047644181263583230262730445794924010152092375777311448164290167745586769779008317677543073348778345022449957900470090133053010811872644050887418483404915101840298331536178569866673315653918996409483822363494621115318662090769942108282591304184584894470457669662825933245307800693004083056129211881201656041350821573937483499518531030135360169700441707533166750359118982582078468735325958416375944876051807140254330167386944473345047972585376723132422906641306669882210929128392565624687186309120366220425077107203123813514083192648135586967298628357332053365780351217436311510583376033511729965299218960797868119409369986647928405196079268717933965354738492676890747552686422368030883310119377905996663967467764325951250689401167179970271386121660061983577893271270868608814379622035305779437804081204038225827475822782070463682672055954415018502566942874541620086394058447000194708796449127853575875487377138026044998986739571571050898873703149442142885878910343544865508943730209629405431513401168527744661354568711312269311026085334281374350192010979167339937200420565919720374428839048918498597894887855357299588118258844111721873901840638685908268082235479864197022630005753749567769343746062249143135515530939041130122973472204113391374072106992816955497551872780445315567746062458115357935723007173584002408314698161005067954391843150629007686002293726904774882716192340224065662259176981616594983124575747334061433658814898055720135391519000811526663322516394189989924343167958450722256494447405746314474469315453234389263157306091019948114718882350927982639514713423543054707618708199266258641604086351366805134795857235555634844346197450428453513810681071716446411720397103773856661925527563867843146923470196478850552165468836370436462684513326596182953674271309927900043997738899525467195978774487607030654405002500252777480691986409328244607330619205136234881394065027791937413290310746743860068197600406064436808959554788452761418112773673365806734669487518628398102075680328417229358901520436431099326470053531725730997690233724379092532630963471415565747010168616703993701230004084314043775299710581134246944554706780651688121364449635716919442395148094571526628300738047516522929564329357970042980531640221819665874797413560144320000645305766064137314436728502078698113765379075225207622769385647863313290076846628877418405353463952571293687715602701035040501699082944329610521232233170401565717035492036186213641937554448215269007189879119506302304594674604993428897518857161411337473553723654378226390864477954697530314523156789627657550735636668075863361610756708716126736265887842573593795280181397068568106732318283772564207574144063542741873197261584103255207712579738795796165612342086789131135797281921798653846070841653988236832764739112977933283645558611582688646127087367329931410839125777074044104174754080052843826856905022300814644890186256975471543779243215173962611139166298489344682608296140436166238876683393989654063354690431656783564447244187570937794652087860939929975762242598915921017997340306020590442805500682489790679104435408825239333862755604810631048482209222764867329484403886373722236143387316646726257535519562714449685073698820190529976013036219646007425997711308401737593544538987728730470047522028980571786671062395226130870621171506369321222441563689552270384556745610928266384357878747871143643337591769202765848130045269934993614867206785528281455145553144161649168235190951492733490168826513736549821977266645759037836354588040903898859702206140671096065231110158630160201689341131343627095629723465253281419643104611190182064897325753272311839393569195004955685172374136616770973813413381873405535596177683957147387619129386119139509120489510139037866776955339375961379675790881057529717055390163922416549889591717393313986555443751502856375274683319624993753673303502137214980363376362843899504491598642548013145623153027675712411515894865394495224326583889128659246816546081653520169855380797020708041423525368526105694257389008831006376458335814779634458457800690094840838426893557826074994491980517131710751906843734048419369374684778586168088814546037777590343515136465305696126948746772846601068867738745667681521904662683999687502392381032164549778595225479172808770736683313173770796582718708080597067770513016635821168056456972350186196880141261691495607474959763087537411931046424668888082897273856048790394500684104052348833272050198412987423375246214830052704863595706235233886958174265236178684184742904198751787130917210636834342323803975110695788215193491923982217218898818723819878042839906028358947357566506927167337717937762396758507197720965921949456035435360418470661142640295672796421202639077270455021285252268234266351681170736440731576927391451276587152338880289962596873961249805316160304290776382117224237887913519546587656606508476919926875918584617972997879928097532063291117112890196412534622085537908512317594282653098094025654094004353172233274370697427361186243356669620936944577357804799063094703224487152174441030766868749777138787434566857668245275283270715447242891794697098912453395692864319864995397934388250222221676930807049790684590520404346578767212701078840771243437817473070512179341190793523180736879180862758803677148553576496383301829521111476597079084593054528085606557249682343412843028059575245928359105627779393911589362866240054299351671822214405593161821751800877872386343429524936782493182265496516567218858472209683782100528098581911286372683267563005067096068153676685496067700086395125684415323727577485712928255433574274247369473604989164893402209087533993844414710925773677607990428166621317712521551105065806688427947784022034349167717131811036352037544417843292430906190400878563173713536634988424766797802786727847396751908005310869504017726262845784296797209624150686426458327891096268081347964453031425533903172190018952454840285006234695731635387271128919354890157371483308087432729335193104378765808913529720758370137525811874782009601915391806445386662702455248890515398953884749255669272138821796857292976896597798400718487431549366168674695397383904862869151041997639334288812419705269921592614314764741892161872815804297504392062024261935268013847413670453604771049753175740001327371821595767582988528932121676889154016208462516332035653350989423255947133767552328066150593543107139799970075406220296559119348818815773934014167948974433369331786560981367113566276627362277908148632896959865837500525209867071875504806434741648895143722715939385285433711369555855617741900169698702065036295774043713916095779877419642432797789797475408092052733726858415119748986913181165000249367633063717823518570232061768221897956515622672549163307840405368794984029382966175666607556609663419847765050367625229205621265706822397991591602402480001173095710610676413559043512156977896036327171817912991107694959637763564412665703822812554694986070133816385774453802773980825490869518408530117174846968070785350568979310504219950822703138476956704805220837557664635563637299049719487169612037821865951051541889687394728105554200495056922945500938318909559696085740230296323262979212319435960708285347351257521295196817080682682988471861535438428672042416651133754866661121163827438634072118780800948444142905774155312098553273939674437836141391166668617103914265042668795467016046008073720175531021599986689379319697885176598200764901288922688813361255858328865280886011992592602866795741601393136621404191204702419273644926295191155737177949754796173286580525705139748590889026501982334940079079392400580153858805836628410925933752880499654635065679969367683111553486023672132277752474085935106049118829059622410695811814685423498635990316558656896584844275483777442665793091384701329839779408032600606405907986329525423811434845722928984072708095171885751772439401895019138257710722574457429626736670094949869356743054900658885466862538258255653443935584430883031584918503359861032008582044823522241798698026305689217886509769709988111762145682738867780556365211210788033823725898492084158067494185375597363572046412421822840542921851891018089699698731536647535464964016545436584607965849627450748876997345123845849971195779324713077516786330540730712050764043882909901013096243474384067169172460897059834357849885618487583874202619014109272914952666345746391559446064515137464367919370384596118921560897539812514554180088226828603476760605720545623499698950939472432633281071061103250162841606579058966058079627024227801181487161179115032181115762059419367162400471962753165432770446161320694716476253414454546585784150032046026466105641655994775934721662817740360616775866875857894008848215437344047836691872357960071506927095324170567226248562076573762763490376891070024486533997571772086155549239273857999508039121011743740287466827474468023096728497467806029741837583188172881282598579233541355187745187000119212524930531241191124020749625760883358912364561386698657699732253865986654358734694358228688282251467883917467035248239657832468956214655376577069190309628371045117384617378129490882363263741514951831334706400594765393538767323062369218810618321128714382404997641442248944818833310376060263745816540453092991430528099755459017582589376915457102646151813235415336039508388410613304109920185915810169026316858233776778411328371757094645470273257049933575556942143070951583451843069530415187252498894432520789630605710247581370360119393873286827070687227334231437356983107801659545288772163094069125617028887393214396003095632022613098276383720607609770590280906785856502167311053229872275808236600290938719453658806787652024672608631010138032140935008348698060708518752843378381151818486531398314019844981870180308229517533223683006660749004326067831416153317943599650606687592829115810972657867872919780470089362746822361103720686314354886221852935605865721936266966635392307721620386349513595780897516570227965721865244710500404282064484157926607568136327688857153013060090154281449622901229894566876527060566132512306380622964145344627477268146369629179368038031518862990940028397881794943887952117506958399334309161207758590582144542085180439701238762107468690003400735921958401909125144461326151969397681296103960632517860557966006887984448516064295065881187355282072183143524238591034067200193005045392671693375112178888981379801720907422467366247957718588605437562195199131707972637762114490879112561674346302284469234850961729898333366696764800698641849694724003440002499199218065561968022534998689605640924742168339875841735770717515153195531864591026864267117920301746673097858819951890173110593368653690662317504968952739581522134394348478442015976646470591446794574005367238144481460316759279119948743776108747233269747052929080407867159726961303422130557592143643900733504189409957895051096117430412274170176745420385747790429642275091953094011184929136325825925436623330275101997202172905941913619385012328913815072898414122823459046082467818984905271323157735291071885662184942959548206448281922197272498610737779114732692271690860859365777255857808257768779712904436579583842574924026903189218438444537409859084624029149273700797076879016935681512498496072106105734864592977010386130061465124156321639940019713669113233116541653387159070556238614686209360392626693615859921901824226702983324657452297827372283544529357959804606408855749238282188096183903768346527017247453447285285393189044482708831639571728118571104734279546196130730264161258674370419086056963236572825035350471556864683222395262878776864962296988265165090352726758313676360678696064787113908528124316453907574098078002224392574888529176889838911678530395825428625294886105854779811664592955063561513888535858581535137556628053980347830861487243220253772227765404448726110592250003874422836972260187454165298460125377986643796268145036152884251595247425202680523711242697888647417143265177184212516633371992748971897985474634024656067923609968898042236229784997217366383788930832344563357279094935459981613318021975522898790726339383230008394859090441424817039167523364869062524122320966249240661814651040125736443799904815442083614779424939579888757553743575943549708387127173142531053437878337188429228429712661321647941304553422670704909276615406767371304117674734532696911545919914037084842115031501563867870586894334232588661037247030507611601867255302215417159912673906113685161974837066043306195531251987812645789245180921805739024943325465074386397001264315941036339057539369013638178074079987913655158637814315954538693282586745580583356255537551180508476570317898411252102814741901024752743202997631525437663509579008639587838797133989797422397248857459599607509252447505189428472637476476821441765341570074741268571265969907122906667381117743918815751807890817722703118976911563666377093682069718174071041538809995504330293771691264232484483214807343415226960409635774447472666671898872328043545395225431409824700871539462031755645722363796745374734769395781498390151571525639485006028696403419485403307930760888940552690720553291023345547238115736944919426272768711969306927232384575226856306603562817940365954121041212862836494236393467957427893225617167397155198141693064255568110080594497129122892053352978098757700899338858512452372214145405535728434251635908281239952351398352318652361524433966079815940240466685830930111570588672212226935017646465624030805640773065959933273434707026286781372492233908000950164983466768065965753759300823384660695754248527720032486880536398746188157240135720709837736048905938030308761412653372959378721883666637984525205500435592881110176162312887041688349933205351479055060676035196230139647657066194541886680661825204239066327856907356725889012269818180208267269790599669179933538548034615035803901631585854175562142784364754474108009865761675049196010252923191347310823051432304212019624280539874160305718572776171488533877937788904626336229250266175522046896465648176079792420805634562229013061483909140917272404363119214108224563926570311028780014991729050552579600878895937467268549326942729194101756492021230667048612215139642020235680034041126024052877404603954745992154169801646777513302637153071309762140791906272536427768354759290133837879290521616612250921133560492466138187440935622287350008445682509861417385421030980515594688872471491146548654760820450076242481508958563223232338742590700757962472286882401213075981485354297817780561099187716338866232690678210598967205635791495118767196074480467297492264515327777586732344574949753935501995554582616615534550209786726525553709098400391792538616318055577556128832105800170496467154668030900926828496305082737453010897352809231272086603063080988689932303357848185364856540075231350646549197235608433971911753767382891686836697024736688040773891157215250533143662564947679463196245489775574143334307077300776097156954196827435489407836675098462057951582420293020815300610483217757746408301653588136152208983463482596897407472610186525513125320460674276464482895581216069994852868334725822693522361190739015678494031657833821419213569366489095801967697764401481499010925125503005120818304928210174705427335858806962789184815033296623382496442196720192771394615869150056278030808733977287431235712304904707046679385628604067709655697395336831163831811520864324427863894068139485617411182948886996695321297231976950692148283989509618887820840931288315375327373981569748649586530821764853474075455859058249257676431125215935568905997530463926743095782374608720556852054493190538800430742536043707802413516814894229594713993246356176085583269012821819298626096314111218489120596286827592040553844920365658583463398085068356295284062792332896044024031309664424385000248659585661153319367590866163939972946247565726322240024656256452804781342178885263846376243022773017748271227372670161958200082833039058650908876426592453581952951397282648705318558060219912515220462840918537344197690334077301426947551151240795144585859231856106375688463346276029679780662829220172458216251073033697555079355199704765293892460117161710940255077060685721422889436103108758881926807993417139192953482507250816280574249250949466466644889149918896147190644872587369043926919677674850907533880431365865132103392862962816984986630272756337594113789631903717506663393086971137687872427046402903617043086277226661545963050541677583796772929509266047482892365564527625835303617910203306535314569465702719239594980215869926921540605147874426212779189669506762665616744008829918628625780271718968963420882180662264660971517110738829702862674928152965076401791943248605495782771951028858296644045341739612701935830945843520952714050119202915317604683972157714175899130463168078886126607795890639114785013422989015846147304359409666016967337909860597378981667166041447166350175971254717745658783360010665583004210361729982374617239965046113231221908402308819046223231352849164556056851956072346588561518903566108065713818559068574969024429263496280940873366093350832583097010858570659676139619957194341610824172410767728768609673691057733434578873803524002158269262464032240244426308708704983991468822962237642082990575262411107051933047152465048339759307994542907371072466131919914081292142391393265844162285370326686920149510116644963725018278901684323892110192752956801176990066128179900927797205151991585022760051770036592525100608576567570280630504515660731902136226251677641740083353129105290170387963203151888112573216662540358696091666526645523506429531497722352506567657717028754314717084010455246822723579909657383009725476252481698042165389769349997312111879869297284050537716255158698110038017508401655863837415132916187799880992342381856066678662017084077712512551157576028711085360941551598683663622844826307865281615496647265219586894012708917746337826479458561283244523578307213065751686769573549501182940214770390150753138374253969693753586077134110763336789880992382692923615931174573372885209005689183309214874887959201787399194947857460240999685324719429029654721559051949368103873599452103908205694844968163466742553255741968964293629901793118100396980244338535643134276726167529676751393795262939925301210749101207688110653154222023407110991123604695629181001530419154612769535886449816403768279378447128046205362483627439382698370057116572238420705160874945461537428677589791724911564853388457372988321030915157970433355650859308873015898309068922765132559372081968315398558063043084438140737668385920501331940042541392175180511165429079547999859669704500233139156166230567798806677142346239408192488671225060052625859664341205606409669164045024628769561697671162704963180419768013690854749513538668638049740706900251108590987989857199671831294294822225031069066344026360152514150517485742616260984135957380917678860207253373905776899123674540245483123054686898061284607670907173338719980796813817097325045630326699647070797655485603014635930350198580756409664010609697116919128928659296317808228359251007091146704413679683960038653535355975081454184866359171761257005162251069168216935084721273141029847107562822605989969921891228079477887512231335769157206222183111151294833345531937770771201919417440784762038354432374344900558733399572702513348657430119102304346330892900974140944178708942967382904239911368551369789242157809367193077909674735133967838314218555781134953636794138608428539071341522148428878438883088786719115227501991013097268172134570025994320360674863572410671427288798878473864328687663366426038674127111538896654099643335783476490469271116069490503579999660509956445517936845618079157273766349959205020398305365140015715259299721520014603514570742301459835189142666623208263040447854528398491840762298279691776670015713967390053571371511585576399741054312766116515732372394688746700115847737805787285924025553138654717955444794777327327752280208931363227619067025279933055788280119200967719997770367240292582112408505083046651510985561895939492030809544075771619393775627384561018065029573573541428096756721265399734973876991270949916421037312175340672679282963769536450947546335457453535887705947918250017092903076044070080734284147347541776892300170591725360818084655340444967144885536675746022215942001874235816976784562698053476049183148411440933346026715654709844801912699991305519867271171494445309074689103171456022918608667946983065442786348546369358064217618459601921146731658133044884610992593077825864381951024481233486573987220566622223252108021744701234473845812148650042053923833626709814726841627416575032954188523245250843796764733024560624486025202249051097059692336521995767878664900651048931034045891215130218852209217799633839021119130613749995332384015547341237359553896895287470070602791466834532625494409962516851669337680041241354970392663454428125878077262837325432849762059567804844634396948337321401181222380396968886194346633262938066070771924607951499131586037788494856353232551957878539684893935494954505861339340700390446039888277950248550411449272049683816860436835558134585229523717643272064426775248360195712239283683715001753556796884922635860523360994562541956133837155421028172861989047740330386163383571572758696766542802459691773782795585653869076510709886153473856792792783225706717212188091746013149704324484927644965732719293954819979427692160503731357747606322642771726489812146252156413190480675986222313685933455096937978394359147834852551233209622863163698833364728481114142232950102782327457304482242314077914983543582978209550886752715789690450029865213252747187507292863674447133998789082040996878910042227736163248263901451429716426267503327101752529096126191535196514679402652576668109930063086614754449068532798063083517027559079289839518234102081983035943684439996124980974809901279266201770001232175285997086483375956633342705972676295780230575320917705815855561231887236279657260481338915553118877900104848456883376511409406724411716093549248314003523968800994729945684645712963245685871469580844492792892239504807166909333057663136150455846645354729958032233090326221363516584248811922658630211057961358747908048655076396751434249539716304776301350037638364193518311222131320444973710199427777476378339628984731594715672823875662919358891381844694815639610520436631986377994600426764422124218985422309394757387079706083364840837380747647248637889799362257174708609750500580743982689210644047737471515553365020685686524336378254862479111301822785999018567205333613858107303249031108038525618149012335254105636047419922430628820116557149964039848623485472009461620648429047048010366662221821985888128055043623630299896823904958150036074559127488639646397220480306133676768816600358115958689841204309314934279163430546398008388842197475185346103246856643853479929442220724417520256297023235905350976651585116460299141166474277812162963745929798902200776931318241919977693414059552791367859439747510002401508133495764103542945800322657526604271914153872986112996177949251874683254648092886664685938564893397637944803823116563273363842765285609032739347299307662753378404295587484125871025800205284877149773653675590557499594384145887821921251837801003692332173568081306331925221612959318834026019872830800973026045286439211082179163994892521330250456500180904976537757339737069876061104917899365607956981083444868286814502093022128950902257039309837814224957521424238518435221697692334122593974902440808975643247625299775238837018868761402395495446929046138508048865561972583806934903656328731449687437910665185353207111943636103273126735909100190970159060203680840331928993513541125193755993599500417447092937083655007473802679570952223057191179361331757395969253612796145540178309998386887892429833539660229961129240202766595610452020326253933425481384604120274019004625812478270287631127831584957232465582807442105715798708752432581997124350328161509960650788501669468912472858784039846944708470727603324291105127666686228540693242221038002356420816737892629152216398931755194689016556142732380024443660602628327807758444447401932634786206428913778154590932516437439921447997407998549895652613943685884498489703799075307564419785231398136165889078398972882826885417164050688833113932081546958685264278039500339805627798139281466026562225604855746150158369486116405242792864394071265733717746181147362012145866838098380009058344808533224109066937053659401155587902937714118619995816044235122442165766985346232903167558754975313662126753796745288367595193835432921681017263346561692970827384628983860498527289577179609398206876556933918477703471062068058660467702132293838621137512301255917606133988506542176251612374176334821547623678498078249381274958935835209052779525226994633709597642433008724330699084899726047013856677225695074353528627526602696228913708969135993564587360265949053519811445918030967167673250312987293078379049185794902621507594603522485163919318553488189472421103800400806135216134984824913267139464151517035225970081715826356478255808577114391187414643088646263417903424298767660717480453531830584810737229231774299481522052097269185556723803824437872263801943228758964494042611792895245992335685076779018578513473280432226896792067502049339450013250795839508389368396937695588961809109470602213811723484926969242108144106463635783370532230374344578640728128753626057255474885831719570102769655641684261157338167401270321341936285700819747378458822011634661371301754027186929308231041280806381033168480096937252187275431247426704285420919192858122555370259748554644258406638956677824399759027950156052394441985163128851929894970464134986704881371053501463770792965876925788158043982756674909322423330651674188124063374272564612440827477031120818018699009912756082936220401371130922586129613803549911641624778598079280175243475585764146964938935202080374343939693888001652658521963364196141820593482427041854269746253114450843386009187901335102025280147065123141850460413092586208103183205969338593878880530947318381441232800740071866921973785395498850292123785926084135344847506441653405313158992831624243012128148451830684688855880117346307041691526559987836282122534606370879090475997345626644864444142030696927112921642045642657659324636884477928991702794155768977100027403496539872768926430935765556426252153482714702393015613443565230418653237682685243188371078916391594193043136683591508113308501157015557828513365504779054596093701525616531190527194563119583807461833605595811523295958844874086997022433554533510585012900285257984847710684731612348235945494072125222558597036764794390289754995229777943903659086762541301543977264839453994468787366141195079073509927325220727410182732446635543398728004687842820623057605148463898528054909043498784360217751632415070834280233604788629128447289463642110390938709517171636132658497201928474324914148076836995750808785428710266121520089575942268837053075955976067266325753542353606438695535638093493160859149988720084038950746333306182235062312003540092928509509280694398780292789073991615909744418014362663901894550856199076689588329094834242921374703278921720689256420851096392782604575216059795957691809483116512239183198226840820618433396331643379640610356397695488386088187133331393832750902111472466453440267661117876631041980932003988359122053155803894664161185026743708613808886863634025669918215919135101168483564970174241068799252420895561112322335717484735967980485276515619899474287913998526232712892896251217886808644385764455646007277352168954507823055467998570143298926145140442758586945333688350689142659983626557229552009452166729122409632823298906819852685150240220706984022987300656008671122318529368991590616039263439421323706976715886424793675801807757393086617186431070380206758059270665751473132373105517363781500572246221581890460848248295803444950851461194307560571946307447637949592124580172852423766222343094461456549745997165796771888177877899048414103104808391294001780642657372124733555766786120760338866656793671103782911693373636093790647951128439887824823720072936627866875568918674797386076382843343186278593852700832242959319525097317812103142561352894500988699316886169013067245216197008355409861940760118754023100734559531786156730989967085812089224150745061181192810405316827174185629486689870269972044425874016276516906740383385244700335343131194494864352938532962394315557624446155583648215967779281468392385848119670272397533675702647639847159565690465437055217385647088502040485422210322067835958171604125848809668290526681630643281810985368514604077432468175203787244846234226167286175018190425918847382372565288734778738978481400752529288692809516081578831845212018810953628634124508035092120309897952835054679524986669029566047200534875821184462739315900043047342815005064154664475837155973996944338721484891890390304308485917780474228287960401539771498767374752904631009914418251619333718730041840341811095541253293581457129921568165314501042581101321050627756295414119379505616492307919505786176665829207883710842983882047244530960952075146697782709186194122375464123497229359119600773814612882270374934515472536671536526372103941506852016862863489549615251291407311174059121083724658962909903130406907020473116053130787784090825448008523338791203524889744107552574591713777035403555028571506442808215291060174745169484030599388495777442185564286980565116704643939172428003459754828887019046133889018721379764862946733509845268459169990594286940909912857249799156938050776982148528633090007283151010636502273009880109839970084815500071093026545491752175269917786854966444229890397027960727201200752532427880869634405741643861878774949275583909393341728980582839458553820565921159648433813135934039800456137766483699965934120914619031280577426428011719557468001767270741653155551102581245698570672648690479415632693714436978771689948232823965748045584124810948312722342067174612526826864708509180688034349822579900998921746968375694218443034653289079689272840343712355090051126462734787166043677733565554229728948749520408728248291942379283525347077486963436690213359070148722805098091783311158397897777342658922443456195016775536564666301060065933169239357615866651725150433089607843205112224197865999853290000590069626568500685755334975071782482196172843767317408378888638785827399573531562221311734769779677658691778660965899148514325099873390991175229433279946699236069891544432352243606788169623990896669510181314737180824782175847660113282679568166879374011109798660159268446481023730260236365604462759088162082150449308156707844885598923797635182921503669936102654685994410498935200122520666864636476526977212891712821361944415871873722635535672471708064385344626173383819359105321512330283880256311047594302033697548889605037629752372528078251186158430013303442034769639256473543472766534864208998557219883011013906156415219274530578074301874641662410683187800581288389931218868884900223424150151856825598755848815765264434618434452699126163346360164018099861886247897138023003770048256287415710123534998154286194381487008343255720888589860351834859248096698388325170760445471352809910782695648045997468995181494080563938762649579220433978258854496602518056254232788104470170698768340836919702131809017197070892680300170557079615855018935081339000561090108760848368381986699633566733660043962080942795396864689920492978229049768528203942109389981639767994971233269157657160621161997927959154216190129883068419292646760446274469324050417362353509013437124652186330775496934347540858836700340555613335644207980846435546109604553840119100541160064165572969464635018953482876733270647774842875522609773663883757572246315084331192566427275244438021572099310935740128273285026280958905637843287401633614673592833375961627729557238007975437809313907785697474193787912683775561775476526697014438131464443656610002247983454019227457912450581504393707004996601249439963268027571343713785542514395463350086509519517899330853403280780909148551821503862987371909159295726609793194672147307570705761029676646941695501259656441171204050824329212378293798857451211996594213314138472732893868663371861538851901861054970856726355079087204418377498472108730771878883461656984118424266097208672960691789426959951927940017832803237783346840663719252539624649205895713120250474730898219128135303965591985171508633411997987204151564812416024313727134849164825348018443830313255010887571753552394497079563284030975702031262699050930056181045640303738275771594096649102048649916044164947256388092263291888945828669321357281951462360606346208104323065813627639684907967171369620842516528321846051038454645752473695853667240578505461466962418372590513103700441851613075222139806083734299501864033547947184251289465381992675795504850575360747026236764965581114385961832041283905796399891143913480479454187870405524154390009022057071817623703826784080721385960538546542424584887996662965485945474440420561220039767046006014217929411607761988591108626361365636272599441144220602447579610125691937644244506424970855903404220600322151423195466152465886804792890761426101937451441845059714077138749345799592675889039176904501517592942652659173324515926636020176913730100274134791257445015321474725377680239801984720431670788333740348781021307473024164056440166840412683198507949567535091343297354710670129193669731544948732230132599025143421816696205923408147685956989360534290353552450700631739342016123225756692817383631778707403483166520812876563599467503163869432700748254446946326515798976320597041618629603561858624579180679350163567671048623304889384376659688779460721610161051126772306432999297567281030851336276596573746415522212908162715342491976759848130310083919891672496401923566946471852242879202333458552576336251495100275045844606302923877235126561183825019724450148746353846671778525478406934941157986059320084673863162755233152520654426324292547001879731902864962665291077170212963732120231164855705733752749226487947295179689772973557796209321276283829340544100224855702813469781361942487320124119624567110841782391940364564258159733528835563710649320070048798205137032609117697082479564766813178725686806927563556100514354381371768049625479149013385012593373672211363284986655120964046956433206424234417332245468731643590363821915489723569988410961156137755698072075776908648678002288075668937610156135374921376782130856237460610267245927370457122677201923059888582487562123147221354453428395244423976425817841071237750030121192700057257784562151658621033972405825873472293653001811971105089310638323742917660257533339656859759555354569760507214156033592327992535653951415563580108128331275697263755315626080080450185942169520103902729616684848140062098536139278457348974728847576513327513318314744393316820244162561688406060001100616745104093354961033309070481765973099089469778333114431910068802111364085487859173363258077730965641343189848196127493430728959070746672401639012252457503672245736861144317914036435636396188558796343678396829847707784234828724043306005210545516599838509607165145259024179383083505799034317860367585172193546141808753656793493226533666693403701797844990754669066689057592374800876816565401073682006839029478752964684675005848656235582223162259587080374133097523831629556590528131365105430033909100667759566185456297749298189366451533145391009968311204835627999158954166787318250152859880248156003648041331699283930379598612888483007880620655608801207579460045745380211543752631448272607412579316024085848088800750858191399014040767372969662700596929616851999610554778924544612791150861218289175344459656870118800581781874022197396021255625891147547609961116522106589884581047681970069741261019249971863949876164878173248516649651576800250765726269807344645541283788322250128816296692670690339398675512604197427231492249304429752155211805674397992697640579783200545578326790404272043438761121190261798709324814235248968292334523069883963944495383304717370396241291233991828068168781583218423860427156451034682767716425490359765737982454791845985476499923531390224886350326858143169174492522071217221684606195992065223386427536279894445094262133829882604446991824025851877904559704326385187612671163925942328831097083519277180448256099380203477638570372832420480071214898421262343735690907802035696840639091444860130869228847292372116766068571759010207932236754235491242632859245122616940563715042768204460217815605812569065730698102580505654293731776923994547240055089161279233605511400084252768542850833550832518845705007926957928824333839810701854736275130675882674116334348587855350617045903126359682506571843448192799546218274980780231955090186563859029427731773000642874299424965692725976400679348893942017430590008829845497737305343854392177669113035728558085390432741540370541181495607430441640416145151097825495409239304230160540543418469853580242452567214862659200634119220166265881794640493888767741888041040342050241871755201231775577461094591041787483884575292330700008466156761072952980981387197128150715030273087748144584405319696415400578817392290574619444661960883021099122860862172609979736094393221073198404734582910660684510682922360984189569405593157937864913732670285284509619709725715855136983440055643412185637407264939550116158330808333196274185033757129688855355654579693328656674865151696663182866078423848293491682708024080707138176461829741351940960589709096257580046379039546202438519717184756779724770366755091732971664759071682408025308466177590965674782204476467912110300251344898148529378562713863994748246525799910611312295773428954002407228790700670998621801522181466133449789246257266005744044293936469839828127623389271682880989810471431788016241192958536464269143183461810696129745994145099828668211520875202297320405452174446930372307160527998268866293835085363813861441450308465436363040060995373837663886367008138319512321388876955920139945498737791290406094480160437667421469368019995151172960009351024822165416716611445113783427960511772384593331736364100597674940016620611230487764372659595123172541919855913107216330791276499333229250765196908950442929183639771463011886731083924949173956943501553469431594984948249812950485533074558541503484124457462464085066586341339034964633215577835196681081912627770527192822025621203508641245765990982661034846834392639021281760267487568117578423293668598589788972997782414070140938302859079868330612724525503646963592822737663374403088964911430570315075316764306394492453587671183281115055934503188159229242485164855430009211140136148657339573147745364139773482515945501172763708111770986342752924472768301753795152866060523020303392480287677127807704139134743453525847877889250102953249647478850090560639250905677942598998249320139221283121344242416350273658803701399487103491385835336342303911526793389758114213853404186939797260850195024886253415981448928680352869466552665306289478670784503431853300108139237008685318067122373244123605414238133666415399786320914308178132004654620503339535997890997168206428666248618110373517015622027101557926345335633698713520895702058161846563041901436705817051878068144307474320628894779421673643905453984541672025755514476375251426497383394918159599946861177185597931134159459542694811476294815412904220289060422449560828660776317968705588501172449651821245928291900489235084497494143633084766982460613083027802459918431329036476770256783027551671811682135380823399929495805611305479364530579000528950217467440824496886210501195205532480375525604606123794304961025763582041873349226117072572755598071290359467011003238498175298744931306620528394637645009927545926868249268470583749749542357507582641520729163748385317017455862390078047136562862135708682585432625510354222352353157620989671971612081173354875095031434522213749835935905615047935552382664476282471010484508946049188284555567927168074296280850260131361863428366912834145412044438381193496857466551930567929006235622686235626260781322791404607931230295007223870642558990702253028672447695052137642696953554520032139227922001900002467605454509658402460359848296947081378057435400037347236779091895404635869717393055455157997215874043175262523093482453288215886471075553844715673036340535405646336860850552699910476512614030773072792951802277399528690214926261773262703244064850936423429980706309674678456671483092474392195053267040013617176624546848465097103217547514194111602000308123572290021429160704049498052278273872388671148565647267167164044816134608197110168718334639051537093807752084916585727837336038505476380052867888283072147991842439641754499460854501261598107790579133849276623838388128184062405953438330853548068843964465520195012012915811793114357378414075938011464585400659436843046148225615665417838181944139483238581166272327422780579850655101153138613079669440038330588730402988798501593583306276012844022501642319497495828705657850434260591678957121716048659933999506893415808596428008109265105384728486822768235716266955755313531469264431757130031047518607005825792536941384480812749818767813735695142763264019033266932094026482112047715302005785674489320931107996217061041478823442814212813267162018266967869036784070726000695724707246752216423980813536561848726846518204707872819291034070315282527164199305769938410930625420708082847873039254010065530735937276343840329290567684282125645114218918540867288622424152342144338814565012940001648161340454124808369736688337653937909203789042452867714273007357144250082347043327314924303976033407423807034505566186017001791613438171633956803083667161794891887756800192044906866030490562042557211380276515285639317401780119247538892393412419612123741177113812611991020644138721996691440803668826631323518140771932707576832859537472721269781812271114588147809211741720659038781000137389073812828440765191516154065395839160142090997579656309783093075692613021127811552675620716251451744242926605270705018047795431338691851638693499237172026579463667877553714135335775977208116889191867884905094634668358717949952306457078509534484720722160730621697792933995838109156000250009034080443142717207915295635530004024110030234735248585112643764975619044139825557599282344487612603595516980758537809863909466159342548731694550332041914657294708673128279658186288614601344474516700692951532174272157179369715095511845150182168741115461502094210833953273487761818967085827175129870499796073438246058345843045037768880521495500996982493777190626737591379999928041293736229720615580624314169412613844500325509498726325550359761221543156402796355870579014575876520558267399550376901443259525818663924467549479504099855778223933652435617745394245685485620199416667659242547046763806101861308123825765651722051923661550689461023234166881532999716727295647890441230562466947077639650736847082639552939382956593653128788140778562721529745532181405439001606718452084763937476620732043931567403739560434683706845157610068292882518821606956300893751335420793161632294823036888204955546006010205893720962551788479709958532525946646637294934401999064270911104138433098291380657925196026196560950116641610673293206216917592021011425438019802132432915133371679922269605916238913587890251608003178843347214365410628211646059155645969522942821982266410793917519898496366516784526758117713641067476941133679041755982735280112930831161155541836557080387753780795024958240128189773837405475814921316219734232215014702368013711410677758824401670659388838569206586849981020324682428055881240216223362518457403624360568914510612882913101111568111412026347786239172821843416199201324600997546083755357962188652986887007297767176770280908859113231773236162468882548578522808792149714352823732806055310180645044078899627107557145192281427938297907277938485146530891893274295225005464503707153858383513419229918055869613696883746053053607792272316478117802366436465931575745737978618177190709386278876279595181375012052723200557995513096067620313198040895432774224737031230521418007263665561172694288036804879962592803189106154240212629179427905682406547354746028197408166941723676635242191091004658814367886828274219874601028190499622607150767495916115984681486189462089004193563580537328148413071873910451529030552281554435290282516586389790747529843765781039985071198580624504160941015346097270669513004960635489878830355178721761109660579850821905698510397339337313727691735928793179269239683158685609412420346617079135832109125786284259501455020457432893409808362846122120988136080413025258349374007178529008448148786522492971516885388447036110211666359628330070355882577118060353320465395411996252247843199879767009148842159152225369362746358574915042319561407643955283800998425239857332137488135541570462396891641543876118382452385968277633909492680148659440300063441656756656237837860810752207800008780606237015208908720566562340004479096151039907775756525696758499758267384934030296320969875960597376694993051950508870993240444843186186346704427023222189043564627524776798977406143239447723822269560760029806096246805091502758410847013086991004511775115056826440109333331131228198697798171158417397858048775781351730345826474936026819546356548390200552461785210472088087538438346352207338159474124610714795975039624594024447739533591333370247150995478319818306065283189264555874201880893601615539283309974175416416279045095055959812756800644645687173332398795294044214011712107688605616449648367879603175469711441848965513927885792347655501476202042664476528349236135552790589936469049130599926195702231841607721864130569726618762169832590252864974915194007604398415875131756273088779969505610518933474999808816467442143291054165336769463867020813114001173759958218178173355656426473767740078641783605097218812562615651837189757176737268424472987357745290861478542547264942970413402343919982476243170170055400010988982170117645591112049284818642522382476790711232786006903537085809297052474277736605664663312822886683637798161886123925389954580948544105669835875045036775574626442398064252900583791217453989071619726377245377015459114656071287104179481052530316239115578229494224319773749858471746569616688719323693451147505953965102483424054566606699039027915221915407961236425497685388660307891671490142353708386079195658901777074509897063759589426306634259700377429364941855334068630768874640536292297346013566128433177624590860675746696518455525285485305451604637638379919788044915445688283003998326646647134858817965377481148473129835472092387140838895155253396378464671043796699813053012599044033156587196734256184359515605410802922068246605440792745415159384333778644895630408737403239748574660315521370852602365291349192132958681339377363807574717067954044940175936674629578904153540996919336613158891506931067527935099205424594777436235028612040084676808986662695536629448637609980740104628650817484655425048262267059883565883385214486048472100621605050070748194732394099080853257383261180399372959778700933731891750954459854100024226817099561808237942029512980296402586289751524561775444105594516009374323893334008467277080214558881069069135018179365147171050082540267240100213184655825900225560840063642686534044366133835871688558656962797122682958600086731452486130193445419818828111143953318066915286329187672752509424215672379811340371578149235057333784039239915710175708181314630970045252395322474402071679311218642622476974328973056408140676331660167087883643774770538095927304744897216223399966797309466071185671153769616862922632087331702401443218459661121047824147321068282803529660853238720633032587344364976755402849491358968461108387423732886788271890422805023233716365091191440391396366267521522484462358164459964712516947659592738090405429855195994165146273626923955075301348381375743040654388882836695441047102078146952801986172557171870469345539338240728898304968407557057448878081699711948344599363346972450218682162394964743065755673680001346915022862580533939540108144087482897047512820044701904520291942162638470431429517462582305590855749888823018624074825935004332106322331221184466809347114125782874010044843114635914536650472789320069629539813407418034769943616626010626743178737407556947212289070884825910203933654687484935765524916573580919434464178426299080596996077902015112569902861152426037266048431801794406496107909671466718749094330501737341265366915192076021668118770864361955320859293997649032007426606635821737782303172112412771382350906930435754723707229208659352944952072492298904903089412125948799636170927389759029158503632203321308550523738880517272853733059804446579038732159374050057098259169910015712763152061117393307700020864033666930793205618490860954064985806432353038468534523464079612386942630158605639588207816748412813668095481216549461374687319982583722677881489940110621134871478648614383910018861450137027507665906526553708374915810930704010418401592971911058443275805248659567293250713644630689292814133109842026789306952119715652290316654341208358073531137594993374996359476986156649577002553497436600796312111417543329807759637639073952174324255054199949886166300946148999704904426095185930711683710669902584233757095754718321851283180972658308158954947782511506407860475434505239966375194709348854084581108455750421265276323753738697479616130947597493944529298305474899490810855404424145851223666546418657553473145214298025604289792012611837187908616117659261536069415640836182175276001675700261576867080906710899623438553722012629452417131499249639172145798903810666421637350016595794991701468512157545449788071263246802646718644864728700807009393335771423666055476077559297698436685515919566542133055380934725043805319901972938096911771006489654248908959760676752222749322620025587541532206459257549304511037679781710674401443279614372370957007348149281022645498905950957591332595652305211473926381246201702467744256148731873083146572700756235066322458927193957007915702586582063524880408231018308622041433741435970108470668903314737405777719998487297526910614147362285854626682452957154893629062720339978610004838355000146360027840828541925104998396729114164648156674396912412873313093919441645149261782825959618173210872059043988224846852825167820746438209249907937232934782889918123582782522387307692189717021629608785888800557708917670533184280074319115057983204762479055807083394381296496067584450878413711255929880996377405579652348214775055144857144754610121448127702454220430694697735036204802057748510525575377516988459315631480694646063474098348822369284570727707086894547447248941581561991749673902049373645078592920778758306659943786446307087284101123278907449810327160019355997863578874889291953258326646988910008990811516640495089489012541948938333224674120357004630489736881793937446333370239387251164517195050629907858769105475445991311736061346136543664699268974630709749371537448801834771379025142503555072305757347499691308695381111436010607824057420400859754417000585754463306598005307015438454073845932160908657862901799952053936968920270152229336085744489725007135287891679671245738748563405987947948587688198236987474154347201559330520686526767871633882765042997837200040280404893755101636700327885098665035557550016461484821598699944379488178840592421955388498553943447835878748367719294114961701089604954788638454963288022405979591416285666972007217091615823929133785673581760849164956256716388676065606994512549794709504049822083728786927974593380272392590676749087020718529501428690187855552636385279036315533259464885846539292905469289134613339386514720023671011657021605933102314787954663147051168939953887734649592629348196453076261024743572575822107463959023407928619368047918328602484949261558394731980312260428568130770190081515483466743179680847651581809842269841551716624262136702727059889237569851293236682545888626718310850274371781578118466966536955043224415152093973636230287534991065894246231511581495583686002038146062213525539074634770557760570295657048282542710893513878469530157118862625863875195104932237626586092249594884569282003723613028315229849671137800183588232414693303579919791575136643558753400165994095571103072841065933164218864463009874825318541530662602967720694395517729756853018932065652428041130399406171041179774117371771890441866281436903922824585342711579504057239100486730042164331119709393062916740224488406842490781621875396099906265932578676962707912988499716595961546892251623397746872666132531843728292237367162693949687540684478592147846535205342236855631382759294397395342816077904170025126431466159069647202280183153685662682240887371922710420662436554932655940408609020483579085238901849292758020339008613039337705914796438149358942123017055679518953661459839347083993964560662877412002936896577979904419994462679380700374352441878082896076805295905323162108201288414284227960656544498747604103291827184460402520872963949818637420194046815161162683200945944807163261052365044130074598754846832608723123967819435825036810962032854601251605802618304472812615762633082070027451990902384298956377088596566956954320807645338483868920664467208082633911352353324317842290138197765432291192146666579850199052866200079922300887398864766236573754180750882615742508861271399752626671799167249990751978487944047670714578512708688575498731778288112636393874459111192674214474620149778364628712576677961329709175880565682511956691772742238250538447210705090472000846387031572044461632373820149798883651937420427094040218367334065020079299452370442664023995651726399932224896870180735714028518654809894848554891034850218790863378049295367238402044569355406017363186465747017584648803717271665735530013746708453208476864732265864094290042693782086291170080961168194778730801197178182131379837834270603063212094321508153976725863072820287050267514379185937384218033171465158054706931623532648147275165223620861705179761667561585481202031270968345965979088752313110615204800502664114444916821753258516807644214638061990676154395638151312914784308108902955512082362499117258055409540404898164553679798827300376249750613862966368738165995354894740912281876202745703669271123219754365185745267444016464441362356239325496906031549799457599413816573143524254388594803795231335801534633790177548153627801604393838505555399231919520329145312374051335172053581881260475880566929377588277306568034326616908275679761306151958669806809226355404023979772090981137148693477302357388395054916000244429089981734810609851658500508671058891890060205906955881490947171507258158511671279214378049380609249488754853978812965654397453686229124163648634167610405945516064995349795346687896783782156681848864668303396730009045974787995374659390732670797197159427363015241078759169753197252830112280609744776280305051909284436232559790925241735232379562771448236367423829418619351281146584630995188475678319620379068519106023685547534029296083909410559337029342981058623164611662267662295733149605860969602106689146431353940060275455384441047190157423625675767521661945770841493947656091573789904814819868296415714388463160410649647426138125195906913879269095968136618195830587105113721878879632732174147021599527539404840110604772778820788370370866696623326693712733320120627041173544783105725243263527451272676817820411936405497008074815753352663580150934938495494917060799187707027666481035507750705974199157939691793542127216706061825382570582586465294619058371397922117338987129034465220609919186969413438394147805065523828144486902255233550046301488949214437981081050751183657515105831322805258194959800813755505110137699571780515541744537947517896259992091385121083348302569925718821968632448732096719986910582896979518072957334592101015183569000031020964547515125981304535308993949725024610627186045791096034620803938831116635853946901200579239033375063884665034297463912440000838239662685703736646421906617934778830765551531219444122317442590090278996733128838683074054081799467396055442333194042786901930252418548184744030261699033074903861008832131286520925272807484802371816713024383173409409590719324834880684150957910895861819094804684230863873823988985295237075262461166366168919853007141482146116171264044385675719425541407243842550091398024291230953856947677529429072104488548955804480333549387788757569160154576562726133065251195212736279251368978495205885581691224969322394695331309267775314289401064113928187540266293241106946568610315811254503876177919889175907103533311184799878188865921327626115156884030332426592250925492685919735705518753725644341882777152323706082081299847646143105116010073742862547094360429669441268288508686840290178171217593159404446963398573000189291203799021607607042822136785206859985395092142720239706725544812128698625289065491128410820825559672656594496936947652454621781284718197172835046860501289274960594783974700032067311195603710481838782047408711618842313841700384849302592496584131890627437593171345089845157229168560484730389489138877724814870307291753753189894400500530846081595687142399525441235069481864043112695716370865172585609921314195696339255362414435195182704568285908284390971554758405080271808367516337764390873449116438865500445104172361040311889446638023613138803008788047388059780719852803098467897996663944909396391030663091479109394797578694369503110443015623282647668044095183959319186710973525712353441427683438106427571467230783020266870005544912333437870456390610006822365323600335237170877178241660044648175483445374779125314808041438323555823726239577679406433983934379374326775706328923506238753073646991485516126681883882407920986115269716176040187769721099172182357057184225740665714542057174392902675910216768657698704608274103619412776748282855454094902884162151539530566336732501026442330967391461851038223910287596531225586298540672440256458282308484195875469383955187108846689604544854702452337257540433537052584746266962463968886904530844401318843117908047664532606937566126836736246807954390914948530042712727590546804391180278538738546361661299126565103548234622907991807465089854248373649792343214707839726129078462733743777990714679208622308410900643492628165888994025257969583711893229734222470507683812645317626609303894686105419071506098841598977094038935361552192975914988844798344366560403856207994660110038559204092838595530112991916232121208527177626336714259746598638314286328379096386532466792985130860310234780901758192202247918183042465243470619598800258653371883169737432383474537015789954194092510837251477985648856690199062974371130306887498170204125764480103746437784533298417850281342864920736950447140256183545957880359542532982400622242995912916275245443064771686248285253109830526779364239237949941672392650510472223396739530853453550010285515925976966358088024408178663092078021711447407042504508468077231946098891286975060814671657679767759021321645016706611648889259437491979050337168466696343418207150701457938296122119039486025992219625086032900818194641042424164246044007764508739345290588828023734645432663738656943677493260826648250311131242765618202391563065262649312152318772301757791169578580329361887575116510156992377410682948972800516748709379981344823486902684013360685401526740556264201252757195474512381456752463677229403908198441497566400704442851644139556572610931474436691939425864603517635783017851182080207894104248848165267054561038511277856093718215533648676149287974592305589893832748555581197857366385435376156671713308172806285158090681051821378017821341106343880851809046886651954386628489822964682605805804711731239370155400621225937838189051273789894141496184528200289341539491048497332583667551471484233821710199660819646933283568418179753077039488696750098849220617416607711558259417719421438869929235882883349616083814141829324823797597278805196398169832035239862456524531404138167251152637907320437416450568051066203730623335650776642704661349347292510105587636738723487829409211760817397767032447616376235955023775161979829949825904575262590998854780238915817697658134261544555584976640935496657152631681017331261430917985684773068995897249125197683664951690383468683368029352239508503246089072105197325610506163071807958059947658617070767871631306585417495860107928234883532131391003146831386142019323040831996462267848081015057146405263080314899331858788243115528533311335929395840355515418090918355874884975729849232772184257408046038871006450839897309967555284198179872743452677385024445609011997265086087924683287787947846740017886199681002107222949464425715263675760922641344029082533632121511026263061785081303950148344403309519014024191704210741732254390960280327096193942492404256832389677569852011370049878385829175419814818903015740360972064608903987171057507261837903147768103650061676501663853711462998762240245120469078162293325514119079246997427231039920717932236916757375580563253433666937291248821329248733019619325674074834805607504707355290194360007557103366957374733122338406205735593494510531281202555825348105447817856849393913761308376406678283094965673604426491877869336270700985966781689766374751155498651521060526051668389523176971566945002649877708931808018628196398753107178637011723768194194413457522249205969588376900091154019084584162025362818907861274638952887778466139300936452659320039792290046688434041100788420789921444421569377140568202120225426235000300646874233978513844316364417761563719333683942586777717439408912235367745491574326520653506577011240232119337687081140361497342748032798907283381861904336790489768278249728336103770865425940950915761400710567349980015931380426406009701149190597042433790232291932121826477801078742256718559240716371647573626648098780073919640275123245996945982363639285316964587732693190548543320523459260597523479858460746529015763110778714170541473879839968794457238028943343131986301652656433760181055445690177023096468048721441494055180048520854143227411288381741539198073493306003910675037419115226663403986362958061947627400733698613044243134038324843980410987350689509504435617307492572519762683549963323409069066154953247267769599808809033679151712671092388239081660027225635615231897300356278817489454992413866783535848166264442471912970476448956922641881859150513154167834001249455342388848617214379242601788053665045077030713767544704341376030545390466101100359922330854463704694516471248970257518209880441598876115172825187455416688016881603029445068073773247191614940061889992446502907500885794409441423113932431031047697846934074297814563437718398871784588530195604589498500474979724215657318070340866558410508920318855232507294823655045849079932675054194141915934673115068928891271332226121569235449443655400170116377380889128997638550661549566248342526933190750462998078876580722071203880755956622256025092238893368013224968623622521899228704559931935592830469745264746374522532148063377988332597658781660948028698196983905735550329078873612203935349013292355606502720580033190880456192822898490898896609721982933248193057094001061028632729463876661619926194016058752972151448766679800915462715836740544387279634473010868407247042198752872624085254676271076705586026938818021763672629199367090045501025536344349212836986593643171748241367895391904259933490171442047470650172490703359567385573880956815392016777971415924663463580573998848454821885635743704335392914220600490395299034586508982265136859311382657701465141166709594497461057695147572503267315268548597064711581417027427685535591961099842562416908347022730053707753764661968159516570594274708717655593357424821092339891929680241360417809303062108730302020330245849279174375452314493903006459640990707019754769758885022876139490842035458277484761399932735587630953415836910625843666249929655848496802496771504691181400757266303359918087388628600483471487237727323075722496059342647368585443109128646428467814251420440165715192145308427201201020371074815114715047279213009657203215635226605576078389708533090981814374601091737299407212439405932760350770304009400818026168533794863029058010990565705702156237233471673430833279894229973074014680481119097406776026164105786833960858337547012731746616313730120203589717949441244391575662764142539128078959444757809642199909310124044944528244589246539521405878936962264748178922985404412153835047852240237492906775991676002515616419023338950434173653563879830631206596762629112653321970560298318979758580566859636131533368080514899813542581188771528663521374946881381921112792054216524889192920793792099371220803841862840321122511307700983846607241723085734852346265471134085919986128839649904573654534137147007674236444536098289030974936635953295904031148495917624388137012911919835689938636010427120429797808311767389418549251436034695790702549562684395456091478088238227329609018731860601514324958278369332774305500878261032969717814519888402317392778141096885203882472329939003888796533837733149949487817496245264622208544918672872662402498897993618874804870864292498759125497047495093853816753593153422338477945436947962454576320217758503892183259652386893078076208810074748975131606431514712208103335485175156441875582144286663803868681036375816187966501127456017162342237556897330041011179334462350126503128958123026696313098023178106983719969780755622423826874762662008044513837110483806703593709488683565988731020165190346595043505067689341418557609790884547257447280977762509431246972977977177512702936024382814463183053359034916963916425475301219321840314275328284555933941939283608319122999678217145641681713656682097870610909523098927308810586284041829601243913745455667600272802408335727681271316350844815157487166102710415512533170477799746553624866756202155118742790861699291468425527867966539374289399928163950982746566394798298556440203953554570655901364244534113219659149981061668386256428668663568707622410343415953281237792317736322640902662337859289633619851583511315101661600276863387122138311185129540299270368340599480332914033111005311891501557919193361488673626255796367615338690349893286608746023935232579400103498793603209647429542637817435579443662336871310964714948692063031683473829464899931341886606500164367039300892255311057328462019590510965114136905514640915248595465841308095131312342509409332367586422058701439692624008451340242141221562234810075793764615721702044519211990008891554415148743803415890258642118651889430066616361484567865269348043725805852269980308095579642662051145959793578599157745085755165157037068587491453078804497088839092730231822634994169966302584359125572405960243852214785308819661973068197889947511712978245747145834311413253230371714723967868180342704194812007599482234701989583417991479430041739087481792186689429593815077750020262129138432661912721409784773643721551594223540623141171995970596471111139057243786613379266461260270250445573983025704954426237912544934379909627091612653123301146328725126299554275213996472032856215031937211341846826117044551963131013203595977543451499633484342368875956221674909438782426484539955973821254363851968486234205876517913344095859038800368336386659905365915601538841267057989945169412031587871532555658938294727336943867977149905600105308739740835719886833308152825436241452808613623978429500164408194174554383886828700854413635310814724234025240616437396110436244997355271779434027036163148303102751717095282529645380573374566666567267966951821291837494489966265306756733233294105987611217367629956453935027763129261786722387721030128995317743954247224554113051490276579798850038332782392081458980334816305042429988004932210356301721332753321579077863663641007344552317767765211298385903388449272093471179817330887249957025195789978647064515630643780312288495471523248525921023467873072251431222375622915194210891716934042957082916122031050517075049310583485458943433133355451187405337664184063410723705909899306158306222610870560010937766568128689322658272398622387126440181209225464713709605479560735423193851014211614489497410684922642054991701291154569196652225581303204768803317313888712069570774564659090551845637056823806192472883812392730609522299204704188101092079028245930343663258946906442426005156829121191100289651869547068126829758964333144144239416108266820131458753987994844600920312537432621850724205889336904660247312266310679243560661936923301130242642368819625674932949129819594979301031793715110317413556524572814469193922866367354307542036626115435727267578306089593231638922713452610615818588720169225275234964980702412766328998757334943825412734434756730589675175626404620935718852545877723908199994194774752453625458194230897389316608553958020956232089643478432310931680546383854861210810122918987431134961421101777673879533372548073809206460679800620385106152039331373610895942669284427338951198131788108707737627491935510695920202447514621578116835025564573419230423118255982518434210204284911555829493359881256346389839236141320384684426060514824249212576568594990362121106062882384014161891278349349160958370393307899320987219131470150670807664327607461699568193065784471119558139565177289815272641261295119560138198122544871498970210741529656149935808349611237447157805071673311296173013562191775629968862770520167985071651542096221036036894244706911857741984771948173528206805855752025823526239646489510907433747065717431708912146333550124699086549518469750254753668385463239612987535880671777810991751423086261690142742700202790110439987212802416383236459162341641746010248544959759310576270996305970927284596226473134656172372478711356585043425015934513198009271031928931702160246046493041611835549914760449806426535927894601770611306728479580327321692341722414649352272650612174036728745385715477266835485435496421734738668182049385084510310616605380515470282763284603533669721266313642445124281743663985317366184206903019652083663212136787261201859429929937675284159030931126659392905683316819351824561838651074487244130156117526274023488394378106336752063810913678340225269282571423563485197914461327635681268189207864126887742434973645745982226494846840197325602075761485344870907752389265321369916491809208055759028603269760340059479653195451313665861710050010200399164863236186881840898322729138756181912960401347133180191857943952775830697971846760238116907026508216110688955350607924220508008082407364511974624312403682504573795888252694409859559763330207707268268317322435298272884415780654734316876243629440958616740372600567956587103163243600240311160199147254197968131386300559041464167680792198211593552948860760754622074019808064704284163688154318168093484081171452613427516648757014562925137831871556115647485511465779812986347550028529759990268209924188687673106400090304404186605843756673861551753033980633212169407667834648379112632849049004643284345538372730101976253536423961954495649473003361730422958076147741127125275460242295655993110559870315817826928711206110990524750086029275599238982347988904551506399226374252681573000460780101831042460306614194280312225327820236419153662446359638869476083190278792876295040470409847569343490784518795457023551624404583722788006556671044690463954635585187740035502393658115606200340068789835733896268393586990824280250484110222055035174090910464909216684569479103279660298046785593962178484356153136571627356111457905053572826119495143267609509309707830073749967306466996168640819912968308965593199425545700782444708570331047391230231256107076013741624335744149808050292514311912412996930088802969248285655900908125673828941370488590836686214485323553193886497375441517859627825191700587808580245440044534094410954940298228733939481352882937679854156579825053861952723155447463686994411526834335513167550851244988492202815817537824437201554920036652639393162211180441857452310379606186543354537583663440308772064735795560123674410489014138325708714645905675402835511104625315762079016581015492389826896445679366443516934850404762047416606707286372834564064393279085373986343161331376239286627946522727204799242103386138159339862564116462210614636623064067896657945220347777705151249684024209731177498585073577178026344200342677130365701982800618218017316585997862639948696554438265942239993947896744268271850844731172369909685981117847345559784033987184415962914442168895323039571861843398022812613288885726535685692784270707337268007603307435356371466073280445071504787860040165163895655918193607515284259893420604607209187177142508649919892032054459962162957689686253007864090875597232926941552436373803005064492965393561239050914420287269583405744601854009651951165923360484793023424385677946249570477532635463610732488967434455928589550706183433343166075644107882118608459703782750007879873462604038535961194009347109635292679452836300869830293677349870498756287810431602761900259660420640728236178869458428714094072776196931848167259264651267193646946848414980502304262357666409110109820543185499792705147068306366036087270518116895126751324708872781669139305945436407482687211807631078099308037887491741774074739197859833916784335144427551221416446517872343758155461387227998959247497853262707907517285862059059996802331499985801197969257449034220487080612300748431343424153620316092093283492057589044349676921556563348420869723727564150669307698022312268445833588320636531501340993496634772605410131276903003386526111451628316028965669851594181281667004373464228088850112925323933426288394745935348191854997775403923704745802676731551500163950965439105669491117793473678907175722795919313542376646683018812944632716224963416956721630151038044891640295273504911372990407784633088252633134241167288628604080060535119366046341295576209359613243207052174317786239599482170628706181495851024340649771593213403277771699797999348763459649494056023892989900778293843910796365813140401881909237916171067384808160138417808476246643897467830459301698976808153440565812565012386102024650223585396263764844378077330285638364422927095263253416518792439615158308558838078919056566224495071866493439868439707152884553177764473075207901247297292684369937307928654479973399369500149048475969360268469772625387829010967770993872768509709724906437962540591133212732506012824840695193262161843246286456525066525809973139089136157286368044919006798657746828544429759433942640658887594643322604815898729218834543386062231097697563961452034672705379465188650442988779461331463887945551277958704556785397942519513964271759791577202643846983607441221725138037012178395085116885893486677992118541346861541200218748363842531449413940159214350675589110303051026001429668147700642455746925415802460212967169243856321001109760685773118895662300074480244202601557171271820387630725414045567515381394108627640503377085228676301973770999847223082813477014178420802141441796601994069162623323868078197823081834904910370768251825236479544575383761786991781314024362841725711570228646393849894533944035110722187219367255491727203087157233958955078308832219274483783599959649432265180871844572909567804342037858373564251198406681837303437012452644420844162956684264664711566525082641655889583071183703511541972598097703527678813799861971328047444175195826199627630359047409470035471314024549880715619114452202984874189493342819024239481525299149747098750391271539340614616650631113897782509221621281667122528941417961215963374061191023880094556706638792634214279952547117433250477258251380672667221118839764038352029716063913553759244845393633244211407388694851954830816369171113184340727853774142276501037689748343731739459975640493928851182093643995387363198835096494765694013568711435719859386390285321662504071722853077178700020381409176036873767425782482932870371436148428024199981073926671219748122989133265293566554171800236438062246201747708677796388087965996145620535127551063765467893481204002165059156543244732853406927669410645672645448156789476968383339492770070050164497441902536934982892594578590509967391702152028467796937064941074135515505875000020001745683617123037223582568393519781287241945982227923183350872725918965527340727892375917998438652802958813813212118485088808004489435410059384341271127870782343510941709011029095927677069080956505432272284145798475041589727456445870662285664495203674367368191660763327421252830162846027827686769354280049053588659812126886741810647561350022342056185514684340906992914709012062341119736613801369493142145837063606378437492266322189358010350229800978239040554896049793418824882898918170206199893234783039914321537010814941390552215279686978697409291394606524986476017128379039187356885147545981518482852296904023411089912717876326474782087519086622762846275987994179468137525287779675083732065569375552689294683394218025842544750566330954693980922173866442951596827771711958789430218939199410313224238945942702795659071479479915590709008909086304036884033253525064361173416794390197391919077817799173419786218041190331916128144073954974503308841247100161376946188934807245366438142648539563687621609700069838682641067901606231987203656620462316169700024853157484575050701089284124262012707340036974979404470838945117341101311559142060297676341213705460286442830408600117785559809530135492528757226896690321715130549701935823566775645109709041615577048865740658291043310751695174205739570618673530829396682046466225466343969975503729785616132057098511661254554092317465088022360953473101102328070187338438762527827761211255717790766597064597153043339876880320147200550766252200809422218476319873167246460475994881350331271793937221629235562575552400899817548724697049433727462254378088600812884835157439478498389211148724440953239679677359296696687542232140552470717592006665015030330415998310030496284127835521757713813503790923157752996590931287247671892892706155571257591926707860579525610305888156703848797817069176869231667597089378164657805792599398972059917879242831872200656251009022218485219293862025624242153275870232177289446573084730995994134819154876489819919474556410854115598352269567624801573203032746149996177828139176247656839467561648194475379345694985245276589622661186549857319878286513713525790804627354742904970210173538681884218115160388094217978748553819344918978679315029627154568089923521962393738854225523359527705689733248646684813063387157306500465030119315304687406948559420632807545450112334442444794925704763428253063900830581136552447399455745565699825369072815623182163688803339933861370379878342041936768773681038667491526200879212196870974993064861186761316626015984932927993805931934101773241227992489477056198177627552724468196303076332180950466681571754773362992060719763979017773678142444321476177385679291382232352037567379583819473330394521972301927404208654661264015458218362298439768403420637241002145444966695350666680506635027663472756818536492490317653761118092314821207206402394572443226233462423809594025417155286016348779247310750559916573924929724537291071627187539045906881466438090768513794763925477071276999887028109850802366581482537747886590852599704876584524685944091672612781218474682984602965110710358964873635266771161715530732625869121793149943324423926995710044813152927494106481541983029320227005840341145777807534916593940723771911987343754269979642248394225254888629641030787415373369759968286323355339707491601634842542521113791125120273859836840673012526006007114098024982074892213099187246126837316971554929996930064109479266775137301325695744528009983105701708047558299628380651113543700114529009927168483268374836227716102127970540213133012247097525312510643139039465691918221499014382124041913052969100974405068619846889135562624498444090887095140080437481152435407527903494785796435281312383989544044253329545886012390731583513115543141474178942704505814255233984436737582406790897283436430464354646110834668976309084751797749758548390444129408223993863714924232022966564851603334616686911827145361000421261035735699031507636918724985462901239082546350236502860625885026121938274433931143318642608717809793720407465476432184314383622467820851427091373041186580511347944223399299858630082338105174779682269509974219893438632816639306326841211151257412074886828744649928629817279744285007286051919264555340001942210915652315628795723000277848320437525072057788285446332436136105110365920321554475171746430385918264585645269324507727184910404415577120942981536202349625519952604772208210206265549001096627437856266946835722082205185719425859901195711651821265011924776993092860929502106706505865500160101602361216976306706380964263496753869575741769495257552362351218219721011852756185710698717085207259228970672175704722598634944330032725779990057593227005283133371730416840459876747307688524703287249714914225740224925118623073474704729873764245168089077095462132731611083907681925968865045368658281034670583467064203428540022314665663402195316882375132239220011849778318928490893677787715582189634013574626775277792105087316625762008662911119065289575219492509488581172270927876974693515934105648700962972231802833003982722008301809429179059580944899341438173835498406502904887529373240993695279913010621065244258985700492354853558038314981969314388557835500974416970387680323137906835578333433099033044977245600378009002439644137165921693270407521808117848979467929941896918722355188021222419163341473631065244142502168623192656299201436547757300998792604099558575347765405573065881200108961183032586503202328553813694924599287178850731812841408452671506482538074387493665385164457219353405454675465703370094859584826093661155963097211736830086260679186881097631990574650478867802313976029401581985885707981842040438122565106297013119931077690507051984677198726734866513085722620388504886609353610244138515386168211757044072108228805490770787319340268807071269365579646972071534482999996371610590436385119328010500197310761583959533454479001861580107841594832068583294841270041503383471618422064623017023494581940521746060908804819896912206648200067084181563548768443103287598904051424388874750966230126908246604111275517752465893690817323175309332197057427287699182578919287831621708834538100957927845856515648088659639979461315922121043418177622195659827873017975796378948745522528136948205091904053366920189267756620415166745762072910637232535000238010613312994966351674831173592448229489581844455104617808250536206575193993623083252710114394136923053934462491950156664111940152417579853427386271779832467161766091377799034179662351853566185029191201059690748164292626654215732453466507254264429472459432035474755593900720527272802509038458228807067467341288043534896315321213590228501990803223619410991909234110666586433042294845746154420086510531779031678846278200942392981463628984166856987637419896653871942552380336051327940082765029026787413180453744151479110322056077302495967804388121601330060588932204412745619066067410672990759757127156529643341181188882129212529221829621035682188634782492054648880995071184653028631500391403290089499461803295604599051084191988305156226022311539520648558003833319567483370077589446101151640778894010563671510517957149063563827054914984108387947356086917067139634888760865718251550856602886341896942287000034250413266630715540554222885415574312399063039461206174044522861989851813599984870681724639507691435823949842855006473653110915318144675120277911518737049611508327966463023488267011011986598437227343566766959682113498244143569946983304243131432758776850513740029323365428371417327834181758840442865357444287101194200590303547635338570077410059981294619208645302088017624169006806151527836411195005724143456827770257815918655259316742312823598558459918741658166804774196714033120301080213592764621821370233813405495566467763578751762280452798759330411985874519487489018379269877284298778848181734382873005121317127646113983953431666924958781087594690058747190010815641194583323674481457436654961776910774194369436872023663326737776399340799790388569207246410121373822700302546748424826687041965179647402801448645399868282933839434279786869566315974329774788089572471706716284484476754011334405400826809657445472801713157637286914298749441987462322132504414786604946741337009507013029940156425658039831169499304181145323874073225665793284373438223131934737512158253910537567773048261821004010037037587307781967869877029365847988199545897866456150208157679094669974801939171708064775678574305814277759812224665077177809570851315362214955788870902248698374330570397715297936971220721999316583872872085070651814019646728058389212938326127426626021540661570859674089378771873580274803101586914583302383496610711994733773233505116408305799676587855466330141220872976216782980472938867881639476231021961301447459401105458548511338533024324091309569530129082304242045337651990479285444479664910294757380779441018548442601963147068324499920093215719240423486754777696976479266209185846757964994378903863041417913457872470433421445073957824754297479064018101851258936067439479776982434103879444347400691557463701082766432070357141030008985675024013217636280550630810140650520675510064043956364016273178458033503648132067512095874797171702749946560235598877473170740387470700931167500470920773644397912838694400568209125438443352839851592071705861415395325019195385551886870804210164811615461249038387353994528951535070552897341928109048852675389340632516661080884837310263480353610645459746348857983867121800486998377122493912409854925190528311490857313908877443389528817184434126593013964637978405491243370977425851175948824830657917961899226626182305926313797429114696555341093743210417084963482634965828804151542400215072834962259773893895388632753427497452455673218773702104035854080820703817418055426306742010949659977329586501351889715873884230548813456049944421469762554235704506795282246052168435217049711389175436782790986545690850702646033424640478829347313669290938898060897729395201666921288370513127123670807581810403146505589073925374351204864463681042879833505307572598410566592763383167931182737800062747728891883284970505078368533991005341190372305262115378986829598716588053065283015368865197728584170538251493626045944760394172131222566783350644416962534647889169058054096258713165249152975307858101669082518087129841630608162809903674164633211070172919695292813972178198638362892203237225133203607623401319531170736538799507128119946905653949511701809014644145530362925696211853859611879243361445802433707983416967296299060813306788583771737889214135332177090704042826906054897964559781166191199389703647902729700921812745555825933047667975973207879748702518197098010317820326719348708212895226914942841981340908274867140706178839285094674107411953916895026112281104709622497454595053358850888966643594813722640471448118071720577472689222332016638618313398046340409706864913706500636442037992757454635465898492612277093229767782985827402171907965002404881019351430154843156601458623823752774920478045703501641125033631333297346819732724749530575755444986717436532723038510066392203184627927916387054971662140989252276947979193247301419821170428320394487530636578929113739060896276780773771187155090518368277265088111430115702747473654926640835896885608153247049524860595109402606160450604840185668329393949447346667862409643860861673817493997929364226479228827785482446264624045361427345701138099260417000613196914583075353386832725104518124240089510908573655473462526101134431134741868018440734834960765401199122771345984153404118323619961156537530317073987712411243393307222610429238417252611171775805374137131018269975496885116262854983715054009160351742634962647523197900384834381595034058212794826781828010416192151991422711065653825355333834944559049287964527624288165392093114556275061545431059147659994005339013268953390765255837764098595183906825506163478534156333502603910317347166830068354123753613972775368717478663643218802447232739759265522918798517362202372235640945806298206008931523946117255288431930569361243171243672324614632680771913815695235714442800337312113379718952705612969676981670492551090385402989250812909459166545241904451030424726044302953516038071053787289235706651757350453142796034421224939442455445032306186729107526860443296499923813142068992218514322254182914880079283062504946589905532860370842287543256508689975439181872911843674034870386224783059611797417198012661941877984492573273344885875845665963181811516049841148496403916298117573864896493962161305991683044251166760671063951386280230755404701585719758333413516901797608405099921617343832029025786630077705654969675889904062506965773104073632049254396280803781975174992646842310571986384127063796961353615474180284579600933543256240760867559232133430986862070227914352653446991080159663973088292634796392376896326712073399941807605208299704329842662657404010292813461082027223753065863143366404646738582392776688583554024638797766374061754798297236801247171198831932118701338163558762047357470537920455875086706101165948748376672240902900622840797805458724347706326090416175728636525905470607589769019615306933329309691273080746893524259494537941375098046020020476116142605699025674590916011245334405841178733393499375820096907809720325336106867892412289009293091159907791231956276862157726160090701217118079012603084523175643487365732447630547984171522776506750667525442981990459706581465117112884818513184399850799473876931779747839959239132368641080081636898512181396946205426995809830971373781288464486198112342030052751432492476743467178154802125414505524099482089512681436054131364973209731602203295495007362023140496660119930274416496613647994973559687374261506941962391507667411886486629702954689875712800265707687359131567599279965041825997583377667509772995586261786712445201748331589990866437600588172739122128739057836236304359516645073745217245735533788847088787111754705985052928241150296875613094914745670804385851714566019435528516446200591068074518214719702583558561577741696783503416111252610322050583580377951655651049812138014760410826584910506868406395427547630190634226195886639492088513893599081346998348570514711039623653699227019854317433856559776458378869042382461326072553988015355960938427100797830936356272186692338279802220994102673131790039376150994799825901162797297667101517451718672093084357632904680293389212323127341742124757941749410445847642506364476128893945440844673855811427338533260318276214353919774022801544264791380332653693625474794353994283410420188972393575932728447234854798419910730137222778093501915675274121510838483754834334299784341451432535908936105182859096446216249521075096000955380112575744291222991536789102519391696151373596313491781060924215479824306460195423852791825319657224422811257774013349141702146672281948855458741536518186853737049666800635640797780760235677632427861035375664672238580882891571273592224166516944722531076726224283707864182102015737619860630556459673557776247414045583084071165779067873248323252362006415925095124483124997746676212669412652092643470947190455834097808538676954601064761845916350825308236702787500726936519421118561517142587897057937007172729094387676679708913728677820156545348346680772885225205722256151370826862518139547631051774032219383470172024635501435034041246955834266223966497476139637593121637414144524256993511508483760862396370047323266493788156912564474259892246947310016644102612811724865928158084641147089549804286379497612836730738951519001513790578547867127061445869318406975400667278087635628752401359423914758011105785484744264274455189904465490937668445189243259049952421894691822386446681756422761970158478615224120369431832866069751917095650178101188992797776077892399032522581101448852930754344365123471809783117074829230387766319892781836394062102600193935364146854907703915525571546795644342491948217941380005072407746462005232051057313283715429615216420678350074035118871935286953702643755739765562414784389599757413696009489341817708356439205959628605771431626618844875182515224183058435057170637668980939514412200386118008673055022535737088125142787914501692036554076132921448781728657953612095790131535654185914381494892528958508622881576523031899834407162559733014664648672460801646133064079456238436458065887433910665907615454034802731051251366492215235047245561457588985066584757105331530364418101157502900885523968208007195667416330119235412221473025349883426518147027494417911252202102803325301610931513275769062256242424331806174312854498995880770722012664420128403562435802242608070058062422437866441033531472107839839164976834086854573796049027871698660312522056363652403309808030552799592913158476660309881182150536819928128260873249789017466310030001467033671316228773198819393729555149892823652486684684623371404605390106891889121287742085777451089189289033467472947545665174460261669875206810983446002794724582131651105588882443810940338161148541764393268929070968645709513405255343309630192797494378917612686541274332681220727534012479796259297627738047197770159543102277635103679061970230493196430751228356256507100056104546047374389359505265543262213676002206800434929107575039540922252824178038132759951457643318475972486186173737633645998385470015214005133037497950791504011351210938133108164088629626260379017743546392504767844485750999784492612125826002311308026493010777759496749839220195220495579233955976149145806269288411197381258092992769006638069495674996642361946218734962102910912353304483029932694202421694368500760299690608631089731675080965819665636810051722126106414313361240210092125794516073217100660761629359847881235471938124923259434566842535725959244544061743183763981286016337817276502352725210143389891132133190960792872608944908862892213576397315141971809761852494458563850576287165952184114421799147439947628271184322388435893855499964770613150767141683718287236099681064311595767307211062913373636592908575494681107095254422661445959966330709400685492225683491941496238066729345959890074318485568392021578267650094530117217850667422090688181802296990759801097131545314217445320471381588642300711717658045237083287504482259629201284431835204215540952143480043980901385116874790872384555375139295348796538270409483150848723243703628646761750325792295259394399025788509913051589538487995604960291315081124942390947290415715181655197853347182932401009793542313472771902516274658011334000978358366607931141464275755031979857724425666348403428445111994809578736804693359890528079239347468830540210581412806591149925420694904034697954197621216090874459300916889855796807615796326468109087050401808916975597304658743782554542876195667261964435654573148219848108974618962603959590588728579866444901932532271043949548683651007859187336614058033434577942277137891809282097307857155738253410241078964861402887967764286645283801143278895001002777056894421524888179306135043834151928065595264692376484269956036564932490363378179587819497955249999780440231977796493933371401087660995256706001767832766485424153616174402169494913351609259522293274747070837705384594660954156322990665990651516375352378623928658168776737822252654709704285832890823864486606793323037320513013567687983756768167644617029503106342150288996999247705256314354416330130230427997306459939096064597345142036964185921390600400635987342752673926171890732247053174764526446637260643725444661396593459678222410397832902439646197282451582702260350579351700811875970553496177255860471242543798603462402739225829535340327387944517774539478160348663840946287768643143911106946231758855326635634761833821021829378181743568663259183962653125248221899538209354783166270208998063457180348946682214742699856459038115221358284014051804723901018335270201064057828703408759182754099424524200802200548292337111737380270038301399716260242765771787332019766192208001275530139412509038085349265545675427203758638573164478118224449476396600948888322358820860303736452273672075864761891144252716477713497073178538908581767273051276640637914012314305024156250674771946009306539499276309910463618342618907045640291919845555205431839808333234437106743458835287044717702467296184301773159701817556728618426887526388913121836864446181312131114342934104399913845765590286897120954789479036901588236258850486206225973992711558168454789243672440798070885240470254751162960640939698279635421464715861055283084205055322398665175320547864511312666959069299571435040937538257968719043566297161545604559851308318126912765237436412958367208734396316610283755146994085259152764751988275167328748639093811597118900994936564463776011140616228359655333649105441900956272593670321838905136962693138621065463882608738749646077171996640771632087183544099606345671139950546963106703346231727141741140630464845154887972120444615944740506179039538348852073513084393992597254168976792531519943691117036207699546442232354542953231617452728110047397462242435455557529352994602331678034472254222203311733490286878138205807409988341491181379229790160624920162162600077123930076820488287276553647210754484742604694524433171319231454413759029673753542791030443878810708553724853410847361805601698382588755880799084220747538584846134790036757074782055045243477171510902979313454864974834957011313057595925751621579656894919608677974299191163108053709519240468472184145552408438285775989083761620177116607160655991094740168347206199595069581074235675522922889500011172186612196596623585387824409124273548703299486293302187837165300533142085421515837788487670022144078374194547117612397378415932439802252224165644979314652241330139259572174912454230576998200093065402803043066100304779769813567014688681255707178030116339695496620207186693846029566769962035287134969447601671318331267254885273282482677258002575492965862466346473004481965370141729109179350015251072408871222668743425244982018992960078943267523975998153376234654663306290376782119943324119089881886687950084055817594751649762276923477970631814543889037082285577446524794294712673427023886375615605035632012045592475771578375346785040325796548890477355265861080403477941974668260703902081569375043974199742754276090460440822483586853763975233780190511386510641177564115306192357967635698580834750718347291025298846979220773396490948148008633153674670972256436202183332296555026301409396677850608592932705440367073896903243723908927520296694407398146582851534096728760699758083631354273269113780343001393895852891473425184765454308367843529158650812146690328169675004474392481692019495049218736297776777324692117420287577092136255435156976520604169860287355677256888806236252962999668396612646809773802168028035871930722585284624989371388649641374746954079989583919785492106637338684837039456988099666405809368967071784000880713879517040309701494367756169282317950007224282630850043431386955750054562208514148893254249305051993022152647292777653822829500289341328120361430268632844799235478944793932129172524947638410266120477351166343562425769307371474992412598166544159498982694616737725430888064551073215911892912631151167682508488392251402579090839588901007961703096730182784539327488293004617632902654031231955216130137693172735781556363991742678828395867144155469866130508002433587647981154858161272186503031391785078740682065481999567603512557482680652668488078800089796980234642634559834186863536733672005141507412978478458422064230273574729469478938296538744352242216834855221150968738211024885839030775031387731540662525702496850936795886420124330209615582900600250337478784816392818528070794889449255446914806918702561252059750955067188483206869214617202326274297402243703412363435927559915487122754488319156946979640342906609546969532924485261024914824208860168915367601458542768375401095543962968137900654915246168323331283193392759860371124999211405981791640932048014287878838260404251465647786110179564726693513757137164031056077069129482449743597145687524814019844647137223717419207605125203915751311982308879301271032663376425046806677837850918287375528224015023808752352378417993643830577134033437273046187675631815599545284263616018259619330618009096079610350873107824736749406129273567272090956179079519972847873222896740474985469302968786096170120642323714964391336757089135080807707350560574002030404126301608254554389559298865325294967837079890754327662839553111524731075340979729999247732428825352417949314444464080545240567247752652379697943227424933152252457490512845189306340624664507221036258362946212001743399491132297810959159534397966910122179694708547451999893364843960372198101764936495836448849366963081698372001803913841006725766577206448968289968633755965063296263960629848169628975971140430039335510247567151818965814008231787350296187720463832381275859263227302340980611611840120145922742368223933890819262796818390510714746825287720086098358807692173496350668213596147067240633071922991109588842489956844792186610540354721881506220370214731897796793011393189185181518506339862359587301300999025532515269730506711290990323451679763569318503470774117209977835405299635779290903365773607459383900484854706491490139783970451874767703117617277817544043865883484234906450310126606010572735050000799520725023596984776242462605068489118390238223877588485010331917694932330330110154243063412530368101701478392010296840887547396589559081704481737291128190301439797335931569861398314286578818165884784338397514409099662040042557211557036359585929199053367348377824612923192398192049073279511835033847864227879133260467690574043614166649848418793433595723471887468244977492909941723002264538484108802375737424404373204305044810466449280895805824969627367422396620927731269186319286092299597847815082137037545478428363485413263441256255749331240289862264154152394855854607858394038057932855884644749563086562437930302946112247094369708983646038090318342913005226722575722837325091024511572923536179187681902931388289570699267038882422763522517781546676056809320129241272295194757489872808195817567529121836618213514987004034692980654858245344051540396868864253850586837534123542905319339876238236640584452618719739909016977183703738754169617195013825532071863822608643121009659313680625900480863588942960203753750652693445589696496228678162400312252923552033771264313553088274019528343533396310845455639076816909015188661328814907835966287735189623156067068100448118950883251977436354607869514739796103517010254296416139379880749408464491109703849103236006479236710456351372163894151283114085038568988693397518460465716103115969967623356976658855226932880397515700544718954821890967334808194719769612522973340885719189696094874568583753612553260051112177163677237367506028176835972672270268485745883295277335557134708033372872580376574699897829764022690398701997173707799342170072072533753041939422365721103770256345732497386541834365689449396194341420650255270057033535971415118107100706128636172385983634835980086232515608819591130726782048819012411375620913895854558735674813014185075305904959678670793414591280518726475990260050528399092704068786008978917992791868168966251982118473147775915353140731911273648581915079826453660087726695564174644697515059818458730551654319490804287501418904528303496558226742235350338187579434576417185494294762932392321436253826577934610899125251654054395310057487850057951741828738282580261199148157849468038427616476163180696159341586355464500090969103970594009907513522265692776450205934988647659520343575784414884852170766372768958592906837939322960417035210432751622829340918024673127380971381198269510276896343955538528570790260657285013735521985253935226480309507572353498060591043295795208426560646144888717321368961694322105095996476527073789709938224257616600761654117489158599580918263587229190223496488276469404808640116064217175563774434607192601793926223036275468061812618572748821466732918910324020347361446489976276248621551816445855066419588293894018187652535178949065624140863171625664915246764379670151875834177335237589068355025872749061851418550030254061407370225172548360341407235752724823898944119101737231189221620565382035325732365766456793068119489616894155479397883805921283158147042879116322424712596485970483720497723185290926785198409830174853317210675320336917581926714232593417053209165227007979697605528568922435379056269587253497310202044131184244587760917496951995316951912981253499061243597376516718900623198122104339889004756755499697507452355125399564808545242812427341095926025481617158749257535697498114365544443717050124225965719193250419220497268418385549493378042848597159467030838803651366571252617309974727763678939175405838403768559266600641821739949971740844672119130866386452973163364620535877741461660545412007502379094055287113998558069829797173022419752669035688608056140740786491090837487284195462081810471995471421521507332026068818952992461747579395198059760774952427851143166919550678147105583099130978445279859983280381588441676824559972145782368225670948874619326397226478907299685869434732358123800071680925727330928621777425082376608156931948395988731262076064560873763615322002223802050912151900577286753707034218159728570179589652287543394445758636507248354117442264347987065808819941528739831908005029720356564449725656685241422877019129272830306233754029526290336777293195546427500890724309944201733397009943677152637630742339591583844862276639082633416158960220057984284914807526159677525306165988241245783624072452146221385418226415631775066822617671741281128274897426759181723382390435594079499263114796719930483782400778675869949677197418280714176260865502020290250022519489998987660294936289163691483745091229806695186308898506799985469160162428624550661928540769791382904000886787171247091065212762533972208850054683328810700326828580376907549860310766833373137778364158077706828275445032078862142716478237482192963528294201927064050210943578641035391582928307745165182735788208864861769249007437640858596271298696497030083878989611716881326448449279777840261028845086132391966084207147009554677147871196465541299961881275627320438311374077694219566206755702159259021794530642664040072106750680314355267328016619571635580518578692369052572229507328890038846531773960441652394792973303984219062278014461747313431995923088299271372342857160667738568797060131117713332258195431671532717301465227097948703526478819610014131036241520367545164020904774364645454012430161659979120973436266445614612918726914907917450565134363244935432352468622311946319273656744270656426992450886624257618061229233969997933587730168797187870875380933280194165031821011026617596914528188872704772913402447612222003377583507187751226199770963982147311119855587807568855683028602482298161137550303246358243128497018276519242131701711233021111966480112979514083700065943937376469496022563753634629569473577203825688185545363877732003806239834107243990898562845105157206157104006250343053172589541155432272789209824676271717732130427785001511308136834220535419029422933742624517175099382313046024462465920899477736244624329902816957533337765902735985098376612385102377218601359031910379161600990141175396460294115954970239509863493848802880419528761830246224532781216540263448478680441763118465989870406786924815783598592996600900007217588981126032649249534646308154630414034300333120053681361973245325443627544994748577014634791509436917189439656298570195369204748237701867209219833218703857646916708874113883084679716187971060630338517862843742735739920277731014429566463095150258750823230464427397921083484505295482666506979326335084125808408800442640157099956856467628079463073448720070574898259646515504262373268452160699707706926997611635947910770475910147194311009801333154723300226196076007783981144768034528994089276000575824054549088082318136727047097278466287644629006956857418311871168992676925954414798715602079260451299785809821158537073821163992735869748977954291373241343632821377448228070762884497016547727286196192151229472275503890040658480610559427719376631829484787538479491741887765216883172306073678642070547253739697487702097588659999097364814938205646564532283269904813916848048549973208886367846321463160766985338728207432500046747495840192123641773876208947375104232985776263698063199032997447800609143576976068892938073953019600870664503866762810545159242873926839036554985382721186313117989270951728197703816705282384199985425347002014252074223935826099493521962914702556305830727846032802953530840899591890488638786580102795762110565410626612183504931831395965131058868046470946532353254823783874782489900645175651109607784020802770911867968517647820747807674714424642330021632567120916005222423296433959528110841889223246922106723512897362104199271734740383518700770494562675221502630577178328813092791055412904801173635637650495103630712555261789696441814591546985685211251018641893080716611403387134544508021280669776987918201394391038461191909904652783571807495958333656182799941041318562993185411072734100039896641293173123396423176896360127148357550587621803136252117192778587434527435120557628983202797960907096554453355742072654489036005465482365511792128439222332647794104026790613775943961729987694695752016756362879169487647648831622320803734032985779477389911523405826804945632618889376367492890267331148831100365747378562004378247696975563723582540234288770754744306302108836544618289521166932324966921821732247697212288174341904282146722851642782419743133849620602720203459485239174553363480780643646264467660511568872760165414002487575343786572945317608910500067420653272066115909497527127346137188671246488809581030558560622174273589093958509333627693816380956964350570446472571540864546327876329544731464488405875371258962896226754071358963622068435352778017385488057980979369785737201099339620336033982922575748418683718262478098079311197006890685502181319354143632555942966042567966447848272160739303808632262591744595675560532898860541434786076910307579309270158599145476349947323004189732453913227350266465530094841502821248161092351887141116335897121482292872322120625854544071538537398229498432322749079709261376048806554391500880781342999541102017271547148404265865759561833343472149806776922495109491519591457850628102781136575116529769686079621575409105905182760239873139955766913690491180362498540987328261861981910946500626526810891542248986427291183537669965451075126522571880354550532183207656073946357928721279040325362416337332752672449023235542047260670772003731718876748482861313614635697760976208438602240856620705073029662110980151225356592459313056814532821530964906553796482302353090480553969837952535424474996932022714273905634348122383198230014720163446164013143775283286313039955144132078111031929090160817287974252250239969618266382788918333637390615216745792346376042379696518826698705239948078416365383148367336110398040951446337787010626487940372450900645120010176841629729070675748754178934928490394969991322321983789137600049051342318421580482562249027410723020264860004548870935745826746340242948515924152768285408777494491104763867794973704696212412003114874198434079388796855901655902323911455856584406376783463024958613524262946484344318865159269984035001073821969143261953267581842479429247809069105220778510380808396735683508402125282839645483862994600953344893039568064628099475746522912234269719853642556056481815235354453685944616084597471073449667540560090489523046048535708477216185898681898247264941513560672979643656147580746178947384160054951598514617962800777889076175021254258514481597908171003952077211435692628859032706924982435892644538987115161434223375427119108178549532724837436652013664277044354249601978676941590480537445656470739657098061627340760490635931245962775726951215965160781592652112109372344692241427778405813378956759399147139375160865568161949455457695448104850187400660245453421884895857096297551915560838777316991688320883314216418123836038154833588045771065888637012238902688396015618052941033779879121093867220571325772249672850767144154564558517815870713873383513349268225250846074168155835231173523251902303719298472951635834852643208642535814611340880017441799255726937110703887152051832988626771641628911340630955004291597886397674578743442037321094616686666491068969085710829038852532535357435175336712697415433635875774319953355135852437308089749371302423798861450968987043592659398229514559455521959040930110522706417947706731035757503402509337011810217866067663992908065615411558578596742272968645113279402179965558585042749129551514066643493746841883646221277323368065468670952340041729630124601763463194522913892940736287161181056699328509876377414705367830276118608885306023848765166683343848583756348290294700704093434705055602358737188743415976100729417391532303817387135460331669032469891794361827536257257094242943623187648835313821477926827579392585314961120928868814661668100039949277667688564091219811340993610334722575197011808061431559528406280863695896896051616097779369177226740874373437191124783203583168599322987593373955156425449624394260541508375444451939370576590023279476983471391302313973672193196002101254416067165208987734905283570486621521965854002290762358121148971803514657018061496964384543991116692119259015931454920674787743399489558434078075255610665811305847473275177429646036417320127788925735823197305360419118010445425907925506712401167453900964452998409834804293898144628609346213286076944685154016776688829359016684634805954131836573868597252196412386416148919387779764624972507934836343715820072948702059002976022136878759229963171318174613880078192579160227086289443338589097282351480117361923299259606278807128285350024546158278086010962993756313603292522882102180163397085114615463688147886168228567075141890722124898715800159482554940249744557717225215554170539538212668826763450350624599663358182922288954064308031880982616153959226034667789071550042303675704469561467579106838712698908485392732010644751030583029446216793228695085724175186770498979637173072321851534187978982038622139342260540278696900189932844060981858889110971520048437004900451521945389185812748252911972695174056267091260288746197107842865508863656539248897071612258094550127057135949377259971231707466032144670072089810896603098505496471578717858272647474380295444716622721827095597636735740833999630054213821206980240551338879878930489246966731217569714730983853889130795777985424627186496892110709427125940096502298905674907302064508791749485752298943772098040342667379745044766002242140715702023407027514139867417771130934224070505602495647397720788739411878983953754494377886948114971550461303233293909227121870432529190623776436707429388440189775635267039498043542110902143087324029932412691113509772355466907701317065774171500064158636371180601200478349363085146416168736748576975409229411451349006390625938636818591165760141449064422927234630654185328410809390030200713169851355597754116241476195870010940334759744811957096901606238613832445042729983275378894031383846040702249699505736069317977942046251382274801974232888454574312103164598046531996444818826124819468652529235233640605545043711356429897311423992086421602621338430577564688105815372005591814749826385925813667349282143480688524940753286889609979794603994076019036170502711507966895833969394768983478860539524166702662796781544371394266228580156583768492674441975389768378819023569633590050892087529259672189591420409434559910333986330961095922407502600832994218652066912225461844566773710508045939025820855185457408802270936228643869021479608195768847747218455190053955605351456086896857882797956528427916903071531735219608342773188966105065586921129089739391301022298490653722884734456262766387312807604288042594184223752970229663243188862909225526316094195971986287008476512302390160360746005469402745192032012989087400797326181519643287131051580280320775144897547295975238109581435777451676391269751744163024022678474094897697159676341254989573196426995243569830588559410809263829548412865298099953386183358519405190148930622724722173518051278571212522398473433382976812466284304066298827981848486832092306819108613242801242088715162643034168112175255247011711211598683853533248578012162797184756648919265761787480354748087768454897726232474173764329788223040348196369929266527910259742940243736211190164859532488225866033912588558658846632695576402789912810261489067805641065533289754363738849363319755639167108820556333893481124047316511809910596498361516516150132261837588235493810575584159347521286209597659601678627144652722736625794075824722008885475628440535402446249544959829525388038718396184873189550918726000630847405804079646683976344664864057497308332573274466556615496002760292287773082137611209588734939027175207454417002058670065845538501712336932094322568804467065257614873014958021680763703400798209335987172065661164723438495334373300532186818162366539651609291789323220909319406355126440749454005041377613773840279116327001504300913450686860538992991270285048557849278557438114713294888116204873968111248969009199183688015471527253190218237587684025229538421639691031212149276922443307143191191763863071165318419338300376235699193575821349638067361347891196781220331733777826505416251034933643923819090980987686044851713133651478014295675922169060305102622645005050531470268038453688869620667625022005772335265092470175159759836253478215315151992366005561831541642289016972703360546281627260732248274212852809580136071545247893233269444629877954243255022034534512417866129729602788694954695264642525244141538589985012078231019923002543690515270738736665935767549550072074131430692391239526152794155425357667739857851676160323729287929269338038452692083697931926437717539823461677934398284047135902214054971487386100407412367601254943863539760597288059354695257358857780576934931476911768732289575195823259860135771234295269838201605299753477536866042697745060113783957362213902931315809761228649810383853330898361926003480657539769366706720109549196668812529961095670400163174609864377475440254057669497154917115305293507272988695352655674751302577071790557839379180280140565144840688004171184473738774740570888838570787131324691141822585090715560287315923359841439688280518161638615528728274034481004311942249449695487091504647661099114592392114971549521336131745861946488540295488758386751132587407333456792951229473311414777164482618698901347054168380327022054623424151873398711546391621363546162177404171450301144085538313324386664455992707234196561427050064994687960728752007495667484995785881733565631676390087726496898073343054182606080424862450565093704475716857429519113068283311619058360203269803815603022466162384364398621206946717811807430702201393071802646885868505196969821663557180889908304981221590743637393979378845264231390244066686226108616927199644300097926399137561410408488406331477400196773706926159709383400619830956766607324615490289625528837251129553062452906498462965963870463473967074546725655687615130778066896340216391669961976932523071935724358535897500108027958201451241468351668563526080888515654283771883151801025527283487153448706592046405092940062459493643673702148118024244606451435912516888976909483554422679971366001267647251003587242181303115360621577371497682205170581288374316603588273069208398325436064352456708463911194600910799015207014843708253927580936288584223585524600564614465052347590623069572019726253753965519599191785899662499533105535061767706853946291053542241911950078061170674935617021606363531045012162413329320534845147451729951332348435368285942126108512318200158722592311222029302688575773456171217230664522328083842864771674404595135397200476194725390999341858954164130011862103093127008597876451346098499428344004811654521458423251837706239950855739685108371004734972586341292272105894364142075754516800015824395862007535609686004237812143020673725786286254217808367285765736996038234180054122365477526563081903338561793612451180222059232718241877903618938260461441562173568534330748779785851140420902397401946830444135066491454458739039660206701196109566914956587891389713443847582597686831693831654603595872705846822663095002523180522086207539551767165019652948134185274580667151674263711334664669332469832335785161495578787281418840679000225547394814593412185738830446680078661478441622181616563223473356984795021539374911442354848516403815895929246401353712629557464524232008807042048450045570530466929077213464983125676575975919266513429603451188373039543473838096974953137652921583924902135470043148138122138509665696609108416759262823416259620543166702352094140988787642197606206291164303090695756313135539190801623130683965848005487478022591704036308383371089245608496324197040521243903983564979812857544266698864525450533872886227084132859991029237883743804812719430080594866119167472782644861222623556957819772535980964210613117301813622795444073164088074491352380256601685257284020480209934988905033117639498669329644999487230083579169233405621970557904137032706033099988465232170402969977569060789633661874890769307167322733014625916004776649152295390184979480760715964114192594459888872417993206915717683042582165293669527403582961211839289742778594777577460592568850551255810208406791740211343740682973686181671611483463308717453034906929204672635053793463242850262342717310921946999466136331317337669345572095631440585123159423877422350375958309056998092470219675248092199915919394307921364834842775186814015990337004932029452399643575195371381796819817218226093285958157971066470230583101990932277861540992296194390083227449226692491295304181998863887249051322557919415185961147235737936654279539273679909398228356259566237870521870063331126252265178381958669095722055171117377083597500290139953169743112345589310986781176393441998614265027735454929386477714321175320663181271109651212775922704530150606780037444838582271982399922921104390738736095885368139087971256633936377102946398266059626629248770564802534970097269423658442881457521118823855272177212077824934622495494108160420040242824460722018473553688233240826697811092233666087691147745261156814373428614457141201515921783497128361450435611204804106681749294139295301229969065221016140320043736990555622313180438005404617166320335913201282747910547032424328633871751616103430114060793642807200886292741264039794009224865257862697934109126489754177543390838925735314122247000760035369442615129113311720130959005201102911011682520132208584786838779824496480490444932614981697136370846100479204876743335141476266815304249442579225671186749834805151658393416672860270627316734134032189881671249474890489908954259656762560265597724898753657126604841220941594687532629998397209021392112801586808984023006290730103232346865328642475560612980710528818982718136310309036142700222155900110461284140137681895655215986150792892427609603322089042704117649902599604978043135264022470578005383488106259181442922506260605568237114486268237631374653467074984122575647143394882156415334781069607115233601102750742927072786977570659482814674946619615907948348809054537279885925801513709213316471435741365378328742815575681282657526999314053661676272125188347094923356025066349344051857571652190334964964065851374268622997206604106711156076980719170951254478356055372697923283031904011677490610067127752930668168155824156034575080686280401255468333135218401006240211666744966942493558279880897564993245492155026555626163226143039791441476057314768567809251467161630465625567132860827438967157741142527938394163215565201694236213972662134781272581543100357521599195039917207660992930663788376382440977903337681805051313950091883197717443593890845964576258018316998892685717951567902024956316855734235354995473125071390441517432501301541989808674032667520275810074362210893117702722101422499414802535436106010491602762260570111802094534245888786359604182745085253693479660767273391987434108988839474271148985629981819363907926639555770345845926007305283065777500121854219536087794251722707223594002658027905067725362291843115634002751190856626520141392175105615992939951061934605398912636632137641104280390493379278981594991286544180627969103487139682573414655417750317346677405437840853172355847508201120160924378787115998215455211129752884509864875174651724953877871469444755262454270116426553931354087539372843355627013353949848574207932435027428598199406611041418032183723448956042930840186594404320154130350168902930110620603580429380245543892729767113645772569612402181685574713185410709437709957290776991858621680141663792550586744406068151131323531229490451899878767514136485567635279880920583667520888450377696194629201455263594565997128763927872421862711464356501772943487482828696627356628997702740413116317088405825481187541377220878092513951921180287375239163232890427722835851961296250938662074340572927005088964040028497616680433360857224701238078353860890198837932694952289989063505001722189439443928416610282176359616746783631982550772346847103837519587809755938312965124136946338683358928696753444965101388819554787280309180890028552133448293843049937606866313120502102598369433193352010352522072320062954869006363064492385139901176576035045745840913557393719237842653185705394145128223233232915289515038166741150454966910042682195554846803452103794387980564149186981610415341869981797295284481230038079973500180812399805755298471387839248497490184607023768458372111917538091241165784800066496222307364556119618842426551907997884987480067323234774303502631385894684866734940014181156564058012852027802230586092032324854485880004097020927192348132213359828773145634795065877860242906027336347892958686440105345455743193471942220388524086066683710871702513756543310292511314856631455897418996036405570968531698478444657787485514344584883739537632298785468911395271310567626137464864758191873451374197856655662338074015794748885847826895692264742498369384940015941132124281312273152848042235717545823162080282176026106494537048986894884343186007648068222003085508419545588612971184648301543916969832554605545120888344011738429115780661407893573100715554681758590914999913793160623376437126172488787658180472872133595297184533498575815540670901470655258454872098859265633575776274970564917944565938815729958172209524061389590747285582579041322584848177468969316609445113197611932608791910324162470353618307824782139406636889106344785950256235332460687097784253035976075224591115878846795551506449701265916155720962604339945068856819262096283394735098955197608440622665672414111731361730416870270973545198166210025378854911671807256539698949375162286470128947180542949337332216461674566502973558719021304014949382077689095595666529337337567072765310320486526891026827554543106503744949521869450920978953563353869137679053144419029979942583321396976444218848335878265144463374480881289001802727916724569281447655970085061491579200769847492511484518244165983414458534049897694006134062365679576150704520981986172655242556222168602708929051111433770607699143480803523791670036684967999066950824843335804006888634988162558669107563554542843521749855435867615559699764103990205285778448261914625436611634094606182184100782909750732075595721028795254338159677628758055270182264909366339966079406597049486828536427315965334008321489260264153804908147856982492700244300722244102628973811804382302229642943131197524602133259952394633029341809841359054433292831063512910131300999431976797390889225877430975074573656475722358161439965972670916815789459984236631973255518909377967192697216316703534903035587900494306253698031960862533496973547457695383729697179739067798704054464514279070280294170664912067572251186649235695283980734462766111224479024386912830341247281646863453040791403626468981669098723570589633452717253856518162820784873869030725126606241183511520005765826099573434517759955495803412795592603301071643320051857999484862017104124933207077736945347426017896564926928677841211848863883566309479469168915704826440025791374957818316906747849553337427920610450674920103979748683477843095036267075641100205786490454060627517093406222602456020348791020643410042563637817417931051453036448510875112823366864495681795507312698822069101233948679771991006247441053841141116017079821236389612904055109206712811021353064533778897626127877810752448170046416354025476411097808983289827536924756469324568370785361360275636569898413638589867114904732219706209302277153946957066148695782160315855555601816208070690471586394486853372741934020472539449858587646388646056288177041466796178044452949854181455428656329152403690736195029365649839594765035670200426819721892070134633737475198714087711772743320448091941113807828085124653449030940869628738460951793098199202460879074888240346766462680533368015275618911317702351913833756795664960732634834503777581979912228118847015383691252545601754896603179717489568523545122145372705142539988941917626585865481017896825530328916924294098101808624756324416557174657722343735123388174144062518111517352933732887008832325765990385954993527297860459892828442051058308652397976150704074229057306717465387454263405283644036857953844931758445424062956443074440467137266172346738681653712633144884421155126448162156792395109673274881292641002473360132987953986249163432811581298910548205374336207004268060236681055591302576614394461720130513897960187506156774146284939404343294245529710863976955986243652519812927094708272464169887989435903587794990889533225454587779831857097446154210387244132451344440738101071254478012598977437688679064510686569560552311727772644850506706657190570109057218552056542799697792687379522514200061078421112507730466740499979099341398386346931050913622878221622910286500053260563942618398729051821938979144419207412745531306979607160653419938383638057534330784797731395200139318712830990298417498968638029534760673288352929512912606375725140635824933056005614381938236705912629666080981668166212460599712232524147118482948086522164148584680251641084340677951201640008932115305542249793688221343447227686105897365628345847779241548559210008588759099232993925761331607913292067173388058299412885001132474510280402626116040115226289426655079276372304358395589144306719027005633707484438852825098063512051553609076246674606979143556424024331362373574474862222160441673531496499359821513456071393342958144095211478484782536208743107421757401568819764643695698190219496624933884267155715812024166232399178709190354347511404619632081191021770040356942190447899167931339338226741787292672873938400157457344299438946473272143556326752529470386642044786414735621015913796267759000554623913184209601142614469548449545628864607590977685222693010747032097006389557384801805730457039512328280967606310954578053456318274202902495767675211579907952953134124611434131573858499633632467161443350579096535530441525006181423904700687147989634814386694941552934692632225876373005549679738048740333677539139619077305666630790326530383274087480698915590253159429733933526554985409640241823190628903772704675934630459350027758675314147966805961386728632562207164400220980634746409850006158608658540612059662264340621093321240597258844426199858820240586791722142158123434088161926144124166209557139529032329802987976671128486308209711119736932541852484234202217066407810860521271985347168347452848310204029515283939193483939682762693349152094600313883342429936390895415887119782928002168245807487423983263542465538938154750668926074535835788809489259120233430085002592573149678502142158061756658193547605745553111473032214704517674015574081145580228128572916040534507764696349100485407895923879535439139541520835559171393108240089872731976810961080698584258869687404978765074372250256034502694748268725942316500702793924572989872265775775212567305659007175019358624479529057402820290930776199375292786924347914068064043721583759368086076758863156641854508745382178513758235011517612757580479152569462041132472933943518913850205395071219228530761227142161325145428218569900372406623453238711650727501854103766580793486236067912099465391006297418308923347386332275264728758011072050050998993742213616062976816211810953555592626603217305537120754822743746330092161521305551954029589109209577635968742150666281370836603390173384239625407977093919988158321234762886086326311126100126731949641801469251527187661564726514877175830518223912539025086120510410875097262426269364244976024235167016609579859721929048490516635964972211982565404527329725406732734064606452825195941732579628783818866025674665693944622868421915987352661984713483022379788938936794063463409516005077827697002495578216137121377224859140217081229917297410515443349886859838507572728045352601957018996647618306353957494187861068042597689734132159287723507413149281681975640202198176129593561425520806039144231323507591408273096369642730603368606544522266553013705101200969772946498493713684973274396247026301031799792759464201419415444831302501818370039198547647865559204557842608665752390803776269806411283701792284555985129073111378622402277417606737612238513458222172857382607443670736618086248943419814519172654501143515434821702263518071874649137263625679246087737877117763370287241000008162883943834021220533355476357616353710270379575482491495413581788062497650379019925088632355397553474995776778609322716593539886688403392958950922365228109297978139910938426635890589769387249654573297346051418773760203816477221463506299676931213111771608567098543466550491649033154425305887988634969400341263019704169747974577240164717798474116936732244114628664862885651691221708916638818869662042993645824824385339689777648089438065631369489430664319403597108741271064470438392339938103490641591058895003931032225453073782938433733723847084223292896890606852375090609593776226533280418231258685619833530062276211604650401686505238202242253788019341156186845038726833178281797378599872432312053907696841804320573191260142582791540227636780073454011427227399809560278338878342664989226974981343479927500156777960405104391199334437735961990165661315576473279959739350485098375990600867125624729332284622584329118994562185483208644135663179844528600593410854554960627966537399115451745510324985317121522914518702711294844717115105503229219702628202507293784525325243340304771205242846733392894401100270256762650914387211573844496354222813227970691894270149490611076272780572669938191043734483793185051142994827552026387701512810057559677880609468133688240953252923384196455027110381899432752696822293928089993876057890584505497245321446954124877594588231118712069965647479789175729841983543194473625816520627399485490616595391998345437545380734767895405133752920725646077048614756566617723364318413453613386080228033525506936740383833092289480830486525346128017065744809115479840863892725754083430956149972511603466321279503657295818511361174483896711127659213448929447169523942156518434647934220144459692668412621781760970083552101475769004831659888591577088600797533374505562118719183753233253182751060765934929474922472903698426030372155616848370712885975027554730072516773032077649075213496609370624159656499749794626401647283361482155520098224051737403836728893140124938703649781432506490712948401941290699877144437764805796986931721000275705191047331699291051094609395661976159809906068405027164393884299402308948190604676688473227080013533512190856798618604137052741997377514514999574876592297162168304213705001747068398725170672316775265774891484107059416473092554219059598450785625102178480966968805753631971112451380687301037650504863031838589302805521950697725315794315931564620258994661991984051495855003359254812351709829543981678331605440519822639404142300894235564095093136945225284132943105139574782815796870023444205414202543309206782405604991366534456271737496069761148878408370975801460598521825754389948156192544984830416843695872157437914924018466559723749981873202890141259242197358705165638978636646006955089235103293704309135888980132347350456642052384033641294824485398921514383072932914239433689563030869677504900500036779102663123586097162039604159712900872724118561261797712162805827462659043325053289934884887529858840268096826293292968795724166121369033997643058279780608268339602460701408172040523512196562517163674445014180874780705344303563378025030610928947032495869504213927953327935237687507506694282057559367712791443927646233964209855494117536846843838022875017923140869797932534498536000569459898364635976684376598244479271333153159233260980834350801476312768388523241673299164615417983761304818676664741603728342210333831703494670414790252052396587989558078302242811192209156182020032133678876994119705658680290259659990292867932773303094197145231892580052614810572246155870399987681949617352252837108089197834138532784101012366023347373673520211509594107795566679069444542143933706798792878277165418251519085261461318744838730476373351542512242158997861571123096504534946491399255811286423549064884348571800535033112048580533835964455197702088987065578880262900227663387818214156790109712293592226435258455929335425553606077709930866076246839284118501734051043022835746458144213869596752958322089320012174034113790772008579616243674391247820989852372088361843715383780137755813313920500391633471802682465959541956463380406188791241974612543772808778116681061558155065735332194409099043021620224771269028425196068543246327357105852692434454813337867263882139323186689953494666433408757333093130314167167437548540980971194369813113393766732316524086514874649030801616875095611342220128774090056916431969207405688374219587680559307978909695123705306835637923127294940834602299543418150937511158084406247600252988785763843944627166727981825217160886635244965375446894047588976847863844323264874272573501276536310009554039952713523359039516828560472842699731931712782603733526214360506206169679550266458225118090091844803118710685657782112402770385513214725362886200518407510831632715706105321190564728121366723310678152866875477416862689030797398194102913195314631420145256473821215530653572894915199866676058007225545773474950054136308175209218357008842934776046481873640487813418534995315543054588720324517133944665265178517907970702879256811880388349840356302497947496315766312861830982325547054743317216589303457764734106670436065082251661037316098075982728171022043786056708845265675407461615916907333386188113965884357442408254509947734634306830531650361077781334446962674513045140963996010009376713709796814979647693243128204769147896101886735704026441142615828388362745834830860437634404771084729231695346860750158681569367914272990321228821175587844238127195600533016435034424445578913726799274248208548012714871803811226164987292067273180833476145521626968591221810455646082639354651017247550260063719567960501089726645781079161231855606381509163673436325946287452528122851252666970535465347226999344941672012230867268871952828751319889536539145605697340542395191971520424342135424139329777956495324912017441316720712279610098300148982388545253331817277123435955987620181542088522286682749106911066522759521359281551471246424615365642823895708481464345257054791813102094019188273137881006482942242320363712576424348199846565996970983408765887655519929496991320616769787626904229995143654516352589099770164871869825622714430412453894028405943384754213818153783062403362188994997652364589125848707580108522735864962155026419858329013661281107581181129630208153240659332249204991435633711565993933439380331383829136328354843794896819804987717559704365716318836254271242385434872566780142898935713794693836470831194063433832106715564613022939128916214603500181433565234161985904635497491775247292833863394527993186671289153271494485884334999461704412178938420912976611373789076596986669342045207967246666680328432401531130699047868040524110275545450393581804659298311924807264891327591933743343678999727577854891208296530132733324959314099448555474289223285859908606849880052440541701289892276417703495125634411720962608974272076868170270997403593001742690181944680372315333488973258404612096844915332105665813582519235398621627435881293276746790897963680948389981683248522112007587346953007232622194917134143742836380658616382929245876329132131037476416501664969143664097812406741804360248645353130406918951188977678217416250467801729669668749243838770341374649505274262497578026494116955062936752276790131745454886090186404887022846280543053900696070803803075980627589451758897170188895218122622208967526862818022047839274524689393769402284136942001612861874418493635660065571503397030115745496942365763732326671359892718060446901545069370196304006960336988953490880685759657270896153145163134614693082442096879953734699166606922944541541878546491315821237186324484532917174140719027012930474219509960195748438160085154341486113362448334180162607927863433436811896471665376906270227203184595552758517535047057789137115760563062119914527234413869706799948252432528301594443902103454120528924975045674061587410840006196671084126006203987925693696490718773958002639762580244905996240838475756633375099709211931783250327639894658263058058522884474510999886361495759363668215005550781614080351365493417615627659444816814676260904832631509198995484600171960098240666154981276671306101286122452246584875695569923239033381176068114261999937707164491898921716927205133192099431722449598097523481931647425031485380567538361345517285206337061004595356797807685938187170622478749628981021240950709716378995545579572541581725534932692341894800784581581886054790998883091035128787540313395323359384724432553228193676912923128249344553951920857880266425543913413800333349534467273173434182241440416363655251884625733346917090636651902264485479639578856886044976779086835005370514144198317743614496396342190947833540558419641980918646517645163484843126038666547157705921812519277581357394310474148643391212641834349951932351944237106605555997701217145196297896220573679270287270344414618477281022451016946252866415061486275295312354413443878109076577464755397180341113007914366849208245992844494687946255606206667134298969480131344923560830475807347335127596029338784540079014378107525868853989180509598803311413298081968621319297343668220286671575765721685965276757107977394238978331324066653602465331622607497220415794073196333012535072119661105846146718070372382296733744939503096222113557305377924495273186610720605928063316156460040653365394941187366505897890316670366258533529061967064171289521280825215959036706546590877370036055545558530614322566449799636419404242484614013653606685991293251648087745689806519004480942445615452628424484266506861129264374627812561439236587220360410734041021795944059650694060574903324051543675613631433637839120617800231605597289100023528237334911276352896682061630452376376544592887175982004406440569258234407889409997618186974120839519473426655924221726352110990874809497075464668448268213674618932173798878128734488915715852471127535037969468677321761152585936444125639975719606218063960355874365177586497948757538034162785883003727807026081643755063443662225158174184943486471013060859628729289826399855580305784589144540131285288843929184604066693281893887815364297533630216065911770777080582346282649177282779735194867842038332663812472852010073366268255713025081530751886454467646451500002195917200132327072416031136546395288544594867028687724443472378168905349213598511858423767484949990874772502968522576748532539649216350143864024011375589821561073965535575092864126105614227508707260604856383692407471974702223965993135541365322987379281491452392177199056736619017845532384233993988228039121199018225976614528109270605519143652325761304398858060595665529019448181653184162380531140087054069514859498354813008498752971672731251615525516971851566435115218382527486457802079040429159505647967325936929941398588072903010360604939381312672764118292501641409989102478033974425071737941340210887644363504214188050540317510414696640520765280128421785525260501932902755035659264389311397228947048453416294595763777049831567070345717693626136025328525812976978780976009606847535188802237675311230391957031837021004117555273029039346030931808039821652199340009974455748664539364231033899923385345384156472302241327847895913581505319303760350345127418518517505367111492624762338858729598619376715006702548335457269625754707025238160925596826055240492475664011283249994147515848067181365446279389239409861699793387152541628863100661836086876400009078614325395823631985641326157865789373435295219001136077163789262324386712924118791999299994971580822747119300053183617754240999267079957263170097332434588838584013665547358436032475900988237441071695817778329119933552273461870338352071042292035201320291808659265147706725158907062783162205364377959150859267782670725377276529833871711905554980025279479920997469966017982436810270827165699730607784840596359354244643085423576110110976654583868713518061715294156286990887158160583517184522579264054217120798202946066061595286376189120068295729259268796546670616264467247180064597542045679100367955028618971578754149523136550295195800905405778749549798838164881136544095555341160812748681420418978017545997417089994423379363975429334042383601052415018309060572019939135739236084478685829498545818672648619903352875234617990490046456174585930495226196794541286289395850572770425374060480681024659236975183604721761298481882103742942038165046898106552836620915617879587318207359995055519697057664863120334699412283401380625701766355647607283195733697411578741223016916238508319370961914815345436561705620598378968888216474218198632834773394773177611324909200905505566530336707198946404397818688269671542091845540356427511619614325235876475901177950335135348224952268928031019341379479316260281514494887505231368382727727535746537261705789695167307830747457175420816880172083248668157269121178510623875555179242996341362971554883182944796489307645754304001679047971966996835299632991165638789750550337655484249039668938740474391493757539267872858319813298307396229943229357694194823898721864525472944937572226740742874733958522796683079806097422282636462357256766666309206952113473949021300822107435578258261608432481280782603307364091646672579665974454335760477653664732409911518314810228537109386398558318920641214793635571899558920248099916255624363983764543552241815702041206076318049805079407424105868967446014864188081024182612917739940872324351868434817406864012786416706084392750021949773358970988116116962827758670439582573510177314469686247343193333180683269339306894489520027945209855942791287265820030485638427138205075916694882424071369072430100200663417630030773809920527665964959837898672984194665446503071317968779387806666781886816438409536720182514926731301591621513917158993881358088615687537903051484392093140080070345109269748111439826207933514817074394493421055587115280074513600195611050565849715247151802536348504159885886297198639824293494025644088480341128757478915109412604115934016690050647340919101881294656378206699484704424536982695868502001993844352595078014604271297281370835616391761301678482331937502951133127388661973624606031720932813669414028607533911843155314589788603174991565771425573239435873235538422036804586631192038328453144837919022013115708807648786804581141525450297498209741557058862234444549871805439128483227512177634446341159675447478959373146893314586361303030654306375968922026950105376418763913255205030363679176860140966666176686932803383615449644833908623407302571133380505562354212162688863249282640798657887426135973491500761179841544967122247093698605224536604013578737765860757592531861364650942238257914434187961257998001240483491991222106361945144598634629783353440631568115035262267030774537347401604466627414990400770964143890429727932402189232520516281916555256487062613603064406039746826147648835185770561040923772029646989482684720901646014726333047864688581022533052615919950011439729274465279565805475436636143283444353698223790227111121509253445898895601869319227877693475265722504632174398995611409551106341825827812411696628526796394430333873980570865980091388165060900222085005648392551047550531110786769448822571705944105529262696805023504144876986241362682855371840360824384022200301581301382496596385838348874771721364789406106139992651785954618068835010240268396318327514824114836383493057604982278407621795903322612424097766796359828422206537086020264054170439692370739920370466037846229360515253198776533232552383525774695014480867761927348479728715490880340401005474198333207372964093130119254253787209776703524851010596041302145706182705463178707413263104669097749055008177400409673819140887410779758148671569609846243272702921076084359135133860640968796519487409041030975728367257156967506732948975398608149648934466085242544099657328654351074875375310373254867276794224539027660347480210551519220974435538419070460299453942872350677422097427062607684273739324342680187083234480721509745233823754663983611188342701210020671088248507565657976426432784862249405011064388912754908592458501053440891958111177118879730587324179330535374888667082725012064143962494592685043621113284978857857680698798940376269982180785057798942358300813077011778496709197616736069942330524056702549597650316092499322904879005064606855277279300084850673860459276798269490818307576165724523913427320694577260174881058225824403760496649721031023267296709381804047251792756313218039630022360301201364416040893809182882361825742360685870560876876538676665463907497575481356866872411563594154795459567039959409132767619147695623465728931699500955462884608072818897904295157218290718955426774080741872928950415261861951914479191170439777706488627752187736722391767687885479421843039299975178959500223167502841739774850244950726905259188405142616835676146780252616220921851112628269453289808768525934059526255689621584294084511392643281203850577003007475530733579835003738805479890055344650703772107126350031350556460921531649973490962657732240741948803694636930384858784768236591253739140324097107591345655734823034554270018643875167391616467832055188992010119503460437059165604826927738049609160737025706599312176222006415519685626917301918767435301252931871621711014368553770946844754268476307163274624490455257379466414678777149452268663910864730496630669167852055314625764977037337081377937975129526377877229318151512462743132129060364197898290534588396552527250680530338937806923039461295937937378787849207352395835460818512476925367272047997938357394907563498487940981567670996960861165211731223267915802360624835799094968139437082391558343043758065510435715894005587514369646103237728791017704342806171934068199216180327898775158836333664452613270559002093207730156759099785907225218696642906714425972320883371234084404700314102432857741711679711355955783731764785500821506541078827533364787443734069770768837972852041497324804926516565585800179561130438728896910888452168727180564818651907331870313208214648359415223563882142284804836079681573457285382608310442770541283478222028143315874190975517542694737279590560483748382773993524056347061513285337357778152568318120217197646847370820899547246933923559653129613679896310633231187588987704176893781699390292011465179338288773595585235818328799188893865002514225580125216248523020452921187161732062661303411764408776033521720957118335329059008960532017582881361702721671136993615105067473736464752084053013336889788850262241220544880595922849361375884318243572432878564302266116698920631575386621332631068337890685274302856496913648767212827405167452496513263076061421150109804194368986505722595555816147026560799490696311817055559374248919136033222851439246767417615073736678722513599456808284154334829791636419506159761682409718273362925634516093886572346099336126834019259021803752536140842734767148333039899471625198667060193471841161791924183854566093340955599283524539533314024773365444722953568208330722633347084044625200175138794274859576662081723297569639876504090252606515158530338801939430965856593426608092627229806517586957487674411693623287723480393739062677469331713897959938499621500284232743885753557183640977633771814370609880557217118367608062694260580707376201376769679158738437102755520245398927997621882295433783196550104733887778259509006016901206684206600279840596583556239299458178028642288852396024937927788508794690762653677407715751346408257181635277727493804820170719971871859460177123474493239573237858460296309369850510051498623057595754937576704619762846914889947968565353302646616548546505225041401442555617436826824415055877655513792707911260401654502045381222493982333989951758094271207487069624136272908875352871571724139200433332822091015789662575246470216505869411567028898778233677993314805005609081984768782392166083379899190332284140809686737299583886997623447674026628084627926964030812184388141515102358257057479646831680491675679995122762642322432762902123057867259480375715241239705441434070048353619301199529246459543562193424056690881766697869052007603483548638155591816362753852296379044636307980867475116738749270456819519610105228065558198866437350931468937120791352177781360803964030940459906405728443214815162501142848270797424530281515379395049791395787474779491318671367986929869430773268839020169095145685286906135353919260542734939098091423539203886430607873574944104966977469840099589091771271675069281558897503331567025700970602590384435642492890507183150175532990903862924352995133578123149570516892185025740633342581045326599862001775834903470845300636236435269559343810645827311604126251052045917338530550095752931162305959701953708510269213370486268844465321956687351282512247065635439037223628168747066851528904146797584196467353970782489171224755135919002506528897052803141387617490869542530788717550590655043420993468187425996572464908386300155035905806832465049994146802097092557633765396284933648102454040949779695321327543639734229982661433393555720617244564201309240481225530197522786858845051497889490055583870686107755049383551864560732907045150072129655459824340224623766379701046215784202024389192626094171467673879962488466593738653472949441148377311977081873696794126571860091184025102024406663497157922158971794361918046086490183700265322882115851579984713798895927956909426897561262197484258632047346964229837647714003864727897817791436077197277135358678332678578730347886619728057400928045152743483837459414965099029281218070506874497041569688931442169101224914839789450001547909493801271506240471842405896748611092896692909983889968419207922981117917974267849454921419828891961683894966065501470631601509820100588218101225788590215109178007375682522089271804492871994392715216666152192151954314740553433904667973733558220299775578865440390958517953486985408541948155536001330351535342315905710204731616612054444790343016254968487620507839386714579967028802469432884190248834903465244163450192170398586488381946764027876779393221610189736566121034382901786916988640367642099344300545587566516110271819497219604248839375179304155721899307130593399306076612388449763848467519411959046685593853410654492714058086775607991975958421130922105574054554199492901246206330837314556771147608663672336392567015861841076207180837031929059735412745623627750989760514632421405246092208395994742490187903590249155383882483010372254683998311127061376084891356603130044780256265399190152890027966668921208151975365872744541646664219293666842340458124795537109686598069101183512095871167547333654889306261906962569931337215894564242485879027765086756717237099874226472417568123708901171749555579505256975274170369165415792216499505955341681229298148811247031306731725546266057555784193988920273295960033066046882418734851498120050864345845946457376629818869924517399839120506698832784544543327611695766571906230401394017655325222681098781024817474397211190278174801667811908165040897520991491806947337009332510536058061452382033860186795566273691811970132901220001733576955289923223447173599197157680530049238514616100884096556994285374785246073353023531206294496984538188576190689302155578263548516939613955563114720878193429999017435922734095414715412704307271246137304064273831550107518223644951242420786117538983117406754517483995376995429498530082467832299496669024966089634176644995416887247640944300491268939670811875782281935088754488636730411761784036289675295050761355525985232489740067184614915922062456310421753638581262140889784153496448458279731756933863417730219813670712896384423766195892688672644613828215257053880895584299359642389652111502406899433583940327277922229413432781810617486855908610324907538573971087731302637621828303544872986978908908063487495687947108512099040758907686931185189862260228223026221362552914248548855165430525046850155430465066876011067811430936793617606656696669241460828863382370705602512704362769033486080374985763330806105207182579598468938274764878998718161767177324652731390396947322384731304437746528591156792574039392517291709263471085806821355477957505249460527768329031273206785548664935673023260871232527402929676748890020734216772200149498700996706273318792517260028394465379007265927090510341052193125774491994258921871763699588458039808804881112667399557253906760435426994444558547732227210598990627429313549548889578527468913785536249548056163197228755820618377081385896670921105683985026124816059604212812338024990916223502679991867726022670904051255335478363167155160177028400447599689052491284044432216847741584759473130454926299539006863862016832795996179625729864664082329170785390562564087625956970522669333284486809262002048523986218894310329353743916880021637243286896919372927703971553773501900906653710564269384919803060657420126076366401661191561297830131191231298082113308623542194106680430864284706708272130116745558107784210442001385005175564245692669026381086482346055629832432113769249692385961617077954107130820192115104607865673401239748128154750951861683105647588811230514711527896434759645500955569119937894782471674840983832761122511185797696196655319228277183929479620347312001266179661819116020858595926539510343750289537455947399168847602080986394907785104623136212203603936775030444690253921729536616022617964926687498457946842081829710685919575310131375474029038596409522962604553720619101884615417684253185914675495093136943869475533490014603353323939551502550340187598756089282388165660477617828224932652622729183118440248215385862699218153254355018423708674907315710645726020482101589158091575070611526882765183224470395721050311221176190981466678214031296441530035688497311648092995650669849727110093127563475712442772224025465540937956264785028999109381517070595348232407267131212150485129717070780300289372477052662076786030877246213809512341124111369529324767931261606780286766952179297491591922331724392418990834622195442195509462154818452447096614403468798018591275110817288254467617974747491552763803366504107396076946742112808855754386526931889893574216972953273102072129278412659172525956089191200064806397988931425905753604183302306556677910473214023931355471400009428834405172757127248129423456462514944079385833874684156649543147567447848421261166644270700619573499544727367422875738822033574019181793666279230783644606906105338985158579578950668301040866851035880779389827798254442679204974343549212252062152716213101290615876062596230007054365976868147965623807080032430895940499211456911531873440093352419640812514052660569764277664371585138845005467931699052794477255076857193657042667110987678866977103923308314529589538552690153542310553118078652709428402501808504368254893851521253782165247302410544137353197845271169716088006278986024415933500474609740522326142911652369532589738460686074843069011692306867142113424250338400256352457704266835814050357880010278179154894044495598544591457786992520036328328583525525301250254894495058135212197530867950942803971987098379561282258122888930290587168823337225102615710422736511092362013434990210776882273574549088475988535361591902283758249400390139507435504038026662450338846071028800217520678124450069444724796971979630185014737263599710296864494098491400465198402378896670474260487807121597575103213821613082945566129688982136492064347761924441342489594959517884151246003999263166873867620123229045481324333130593720837141735640677738085322448632406497069334743734336251685915093276488760710155152776694576133634622977151397310041239563248446404308931024161321068499086254242998092328477180086697066610786260820391630653294923030062190416103029985114689576104081431429898033792219506343093523661469781009300007822344087091386615990640701479508652428205942016561300431042151975494287199092057873714824855228075070332637823089100457979594690899011986699394156098365828982653304056295748310670572078488602892185385507558703740862239527437693086533640508102422967686839949820055455270565548031646071866536680407356777838669223280554725690283200556016429838322245398688207562208864008506556981567300771189515171221956603243881415973508193138538447835608143812386491315806276897788345639463119411708992277601325547823426286317970900077622733618303805692333816259154851080712627719562846427123093498289977404035998501174019512042318078511294276536172494793982122363120133879030995206773124494293680987664795803816928469285480421901796592103677901002846220772859793913578116381519885302444703449011580892284106773310822709018235545742224256056334884447101935853161821232835035519977197662585185221869750430993689255581990734563422080441347908696522952186272954839217359946858453901639246338341689961124495552024660868434059755427809306423011673253123693940661636271918291139220789763980158071530648042049275494716789994352510914083332852983986991486193907409735310911103072021685624348941431091368033101529541307909877743934217856014207482299179504659638489082679148857893167730678201801835834228036553975723888561166587189712414383287260437245084317476438639432714208433356511183790421054610003361700763142678075908745529016978193820201799493731549359551040761845954432611786967666225203579562976739287011662263332581851175900654883402648693926407948364023100429924330183947531934247590214937290285639950901865943568866820290253333746662093752658503782800762929943237562121097186197356341247146402066729915300361789654162137390537582403226351947833483096140059918672932795754529495044903891632406084922016470228893468970610919330811953450867019261558926877181027813229039144934710470967220085854792386148178634563940562600001200920801890040927874113998831508988106870253572683810518375183878476366958568807138820267675088936019229072839615651123752720902091338930121569931795728589232492600489121830570434284381183543002785764933663357055781541979368252791986009088698951847668582492390938679338616391056687737229718155564733561935514609052714922939120542467801955275383921026922515638508256315702006685541583772302090751273078694840059731574062361188465767074666693692774043891721008750961460941482627832493850119320734422221217935919892284560884376012862298053720040446152605992207708934128567072727951321733881041191109470485795153711382291918699955704239730721997434920136516768051049179888579032045545982219790609734358594613285373055091046893793816423568668447542281877487765791288133848504500702775553269518802122367664897057516740356832797151274814699635030645423122069673721061556222652629204633767212849128517664282833329843813816364457292139254471802842063996857462627152732845443604086210651087222120450818588156142243113185771538036652612691087957778184349156225070320720038959945361600056210552124177010632687586952104578454298570987970033709636339996302585480934061592544631483570694876436750414896020982026315231268794854751905940914424044716977106531165992917420025656007499881141525647449473292220700088682409911685178955470021257707549939480844884492459262686413020402953031525317218613892044367534828206471697726194937692670576466348940963732450395042823450565066680868942076435354666785906001546256876488522626108636465778869093252365807725326034537984480805532303000189393368757799854408017082566839054732748904893124715542342649317103051539166393626078691087824167572737237283748897999226964180514740033002587588251994287779397066004882768923562684345833580680856317733062802478204162717032240411681939358953029309554423587828643720118401129643918347085877704596053368658018391895602732688008826083018415859739953154376772793238612818527000058068691467789268135369523900752346656679420973306251101827324607461708773168041256802346028930634983388113943626205504123686806794463026750384922112360158343524698929318665320001462242585050987694710135869604412527503753736911654306697975674083230980392102904612957735427433645125229481037685707896354240504128238662543995308682542499342787157709173475112766918107652139139365269776646303244778307582196698656028524718690898871692098609286139051497119601658417066734741071655774851815112468742219507593143413656300552712412722095651408411855567569652188182129679242256772794949703741876538000343212869526431346364971542634255902006549459047115028454477391257804703542344032917688691085967961871195390004871964719854756593680853953232345954207469445570787169784992798957829677560025805261166238344844703064973172787084079903160800488276081504655346106095536590616952577809180628276400712073585923328197526709142030546225259627983313154976737539439683661282194313738371199946688292181902606332372923676142476681975074438350842395174810285582829217922020187113428519186315320894694752022354689710740333856989330981110438468601360134504400448012771569939415980978435855707428398995335087632837186699794997643719795839620561316168940273178856297394832534342034399545176746248258674962690607581485513974344830886904837671681464341876476046160361161230841833003674246193369288741684897590954306579733513716031510826553893212291334219359725719393551460709798801822287421456359980112312694273026225086246118142775999631898047128442088531827469416195056772806302662948929968530368582571560679064776167184771528354265179567216922159177919999760748042072319968965832626075170440724222694810920147659055748235949775161872404165300542364540128394137392126929370541231706955640872981346558682068838392015650439114467965696601007361770309715790126908352322666102978019238890620598179021230016858675864175981544423151187226344412491429991403679965437130752048349763398536589615462051667834640979147243496572185220506882313831601372698536381845470122465817619704836824634103065798936588462071637766113007388875859564099773491197268062440795551712973241272310535649720098992904140690390624422382983043550238195219177042891381813750663687836962776336093119066929794027399079572927689964262962581836941530997806533086898257591802974725555763761291963504101374634195416573893510136882668802722826913384223111869418302493454670748895835642836311716342914164778912579244305949717730809624878297094101444498677625140137346794543236930923546112727668495574356005448177373544446983438082504271972313804167759407534211501356553552894825600992883091592730165388563168973052571868422271434643545411248397484990902849732124977239736128218432142654586649606953952849902620760232089976717932407109845232908229757755698848435900220830770682247420557690996063041143839786822850337078852602800601185227220064655368741600234184428701030798236210725649275780287117618408392673345986578321129458453076249466032141409696820268655848934006084647093474239399478802659804859362299797924342061174750033766428790554089072519616140097932482059204479092513508535991705324965869749518691815264298694966434866439844209443270222874125547118660532569313571164250389648714438591960696493703123372619658252830042803477068482522827718301206120836141297415138035458163898427357420929116187719558237517422481295999331415327351328010141102522279119797033219357974814708806192922358578657139575497467284797973372676679397803468593029846763489909226277613222903976220480578102894447298015556154905034533524615154762030984652801430272344634695922776896468578196509425890202502100254732672779565440727453173712169224729755312549007398924056109535325295479194514055527124566363904447743969304578060234953077918082996006489768013943431489022630582738029310459177598406682217324292203212979480466038100070795335578850552633245493364350617184862582368798445137248848968121289118970948739245082252006338485782780404889460082035539403362396120003709398531216298886585449809567180736291050022884301726856856639332971251621265682141972609461831379266298942986638191735511146722145552345361473596368604607891210702993772339490013935855383624016337397039646452554882180066097911679494246558673805447621779111674926640517674225167263738615750392340269777790949844508895465182530507933639134726436584266199781612418343322080830407681518189268623710933833511361949329900273633115098272264014002758142263103322227754332856045850744357533558272461058235277717123960553947987762061637884793174823508188950657266475729022224217328333254878822421809026993569018623881262427370355710675580947225550352886164551670365983165232009684802497626605102682807709118971293412175356224386851352671453754925591276823252268741556277259143889187381840736691969436092258664629889879334310198406655174840069594325568609121222023787675307647921883145165854304270375888100220361633579586063900242502221533732476986863517190985288292026622933903154036518682264423507875937815020672277105942805143280108809441557155192700519547923847286432136098257617002011956671308088503524516278779030550435170319351307917908859720586446275117581412776603183548172482934228737349708849071637480821974157051162360519857030907307971783054445056332713746670548617843469233318762670898503295759409457964451649310250540614222353594219146542067978816369082638116897494744285536406599742013475219225646633740651933525425587047761427263033424849541849611714974121507615255315261036625744220538747139900549665332627931683549453373328669656036914145484417096146985434713191529274157226015289265790601922757975835873410010228685539831414390688732755385612783292758607397769798808884828199689554652360421362086329808676426306629907135660557642265150690024958716089857410263770579367002092887590022663053578588021089332855903500798217717585092861778157203902249598947137494596715646392640638338549122703376753647756926204680596397140342654911727539736365174951927237538584581968659275076334487586725576172792815975344771841835663989445733557426651220151500472005564370052000939973700630264639039351986629815774990118772743409763093591266949123206280492351628841685819957376594889265267595279399017795144581113957868903679922941301619386361070194208024919913843853849148321619941484769172465191332445009690673658915825978506254798989736878240602665407580387655703904947041295848662374386694382352158517338193014694061663359255825357654596942371051453809323771136734769333924316979363398439277569978139929790315493785577680773048747966547505788407602648643530844301161342383857381800302755492333502921001176240233643160095738424425017914880982022185831408843983473621748588929428329843766883282850610767336710968362612984720966039179520068792455852514935730493172037680052896461923284971923402063568782121523802863930581242234644981001622433984954796072141713281419707550634601629086492027071130117958376384928861716667421655569890391228606687449470649127964407698636771078981696223096023612572417993451178044592799820878769284808503890968553662459186391561589168645979526391752383690162998171026993906166759268029376609732023242945767890664491394837816487612278565599864766790266866542742356976837230664016791096255276359157672448947368451803699391127931152254104691435079147111143260340333450525989620064487852740632972357994262368476012719571702605119524402759273027194624718829320005281637962852881564767504484334698557142714612467215981941357757400351913963110672996446596454403534439485133256119603316679342567317478419053338058483488805557144858472518144446612084020932647336377522586413186701031584055930442075958787841018971241305620846977558455327350992278987539740170609508906879551949495911574510113318552375762235319826278363447320544219551662078822008951234520911048176220308843867470358205702411546683136099363776900255180491887748476994969298039286494092235136769783692634901557343785004425535782273206203774040048231308918848302456281711431998901758670510836540393143498292664351334545628022283089890931231271845803216581485352263177314119531028021735874246241148539036347328205005542458790440452339690342455440164515780930275871758913332711299135416867953018888165402894714583877650167591959183836438957171289643692536498173776854487151729459730304757589546220419686108771740536523253550369688323314978511959637195364586893881991471049425697936404471041944013107050044450565283208235112262550077413728754244437774772646371168229512378158990438541182321089187132792050206112053199166579859840621092329734139217196152142628628030569188590830718160138723569447405445779058808612366215915738539688330999671352285036950460105176267748853219504219208690156902266905636902434757297637298625870160999439116043492675649064250870182864368237015402598825562300549678847640818179364984851075392198716307469342631335060791303443202908606290661637553324458372803421777312455096852035690432264627422059927352746889492282932691569174731938632687928770493506526492762609471250198197179216855714431706938674438669677121176217247033635862942016786528189358483841519222658674500659089518117060041477133699418800069334576670565180971479311260136624738948092001418831191057381823081286839173547029592799038376904761869937678853767007805472508385032952514149915956049398447153871513562487687086965677928272457240716446651067714338297267475619743016733595439141337327823270685872515815668999889907476077694146219560984700492317664093241993849770905409104044811793451426554856301636319459825188938627833463619852002113658965745288667438646613075228243705123937234531701821348906154157706682996080414311183757886781326047081221046931232925073695054989227506432396531256202413766866617403278758446389224781012699237957232772478292558830452414584865607456558134337363265106314233147065954075620312110728439181086463078818352987934534822428934681047411625898065879955929107878003949732123295629627623730879823514600999673506648173070767163146890300166037753185999559035303032072658506626265690002597545951100154208542776845251054596121486610201430759998107159680152825138516341098706138298379192186116620392490277287358636412185301553394498099478463475639597320269232137960219991715440806042210024729641943534314775605320021238336746187913319551331556684921744202365327793028236780826373612896609368504885167749893356741288626717540529789785894146223558995711513790939741281238503411614654402102181663680439134586712522561826673895355168339886528859505599913744330346968120150336707659649374571964213991678323988265968223965493413185907027208438209323017057308198091282029674384824419388956689101817194575688146325628094803720272627534835664612086294124508966897410421966114745265257061810713958974598377283723233515076142636998487229668492149421776971562771559765207691285867310524686885021159147463731241615489448869337711674329315428193268244220862059980464097403920272315144015404221229936806239790902394349649635616217093468902387030524347035462512787358064090589682768118717945454580351027485067848587107564834717572640768689073830189486969050112015320931484924432875245640961502509662327458183738092534121465408589528657388461698072629834288256502039179270725590519233939229059952500015954205221456537425974040146260159356556766082621495123217551411196819092098396665398205118687184413672146190959233901132698110363228471269245303939252782778482102806624829143455880382991899489625753555979239301494112794249517491107147048310830607907567648914917328700480034903867561613638143332828452995826241819833793534529891446772049232878493890393011910905953359825943782636404797510148346097915590866024336409323281971972984922568279194221448154364569011255336249643092060818559677616372286399641594226816100418984669745958946886693729426831393309175455705279867810725133536114900082288358139952773446107439585311531544017491518672652933371633495833744304990970644968577089352954773967421679158413897718783191734005325243793603631648193466887264083599322050528085008494608063891535124641751485021338017145477404599918753191862641258504129844656445219922785767850865443817996444548420579400559089839867724286025183530940150469561413342930419755509105781492929572269793176529263037337564486749279163140472531225267272190661963338706801951185592389518048094235393413965155407804002795891813164814936114416698601333665079672533304352829820487033507919693452702888656551435946441203619200675109504342392174514521229089618818349044846216286870031419239623369629421586287338972679160650061145404852277883127839964078521151021094423047954756457605356774138061177667208091745395040145694516130317775458434800419491880536596953732382705638027289141019146031013635141510614717438463501290274079479165083608638337735126111369809795978909565674912702210408039490771544117063544974877385652862172285136764456734306653459692417350323620230705669618041687006398881421933013462200586236351338912607036189659561647753075151389413350916866868990015357453874222840707307120797558336302799182916938676588442572223150110375702373084307139222785445132945785929187741154334781382689511692071586795268472096283196857186828753585710817325173729007804607927370149716613795083022621247414070158380613967516048624700656033695604403444891349803332199085975514064957000739656391669339507586225982769668489383494231622147953940340283258192173052463198658379984295145106439830755136384426086405433450229744264857818676633084234320587496070053194739006196649505025481277498526504423283254450697858049891914919986702695059067417957420122001239223997312793366357516409198170361386073345733054230177413026029017926976710942077712535419128391937972344904736544397842650830430269468970383918938848299655244845049068466799880362075214532888196615347956316457466285384178100061503100919207501468908114034224875108577246875838777859597825300311673723284011573542039103328432691113918448084096510548918027079025483308254239229256033157622500989342587631139775195698374553373993100337132539262605024151219352670370412504821863904648259363344670268945037179197895167193911372472837206686245014428607205104648575937641717831625547409270823617651472451555490208133728290991722149168310373579209723631554877243726368307981634404784326170587757665859259663187514725731564998407362000326867717888665200054707890567345618558035015358199275288412400176687802758972632126743917394970698502232550403280684398170402820102971601534152172574600392388052878216041419494119203841378779167198803578232299732610777661542307457130763236627224411873201468720706719906642260086129245461245390590497714330936759783914881415944953679855527236415091366628275570006726116136500728715083116046030308184761412934440669949918172663634633680372478621730884763912784077226866327626597677300997890258296303225289248150287943833998752692238225737654294456882398745497054502618285141753038653975720489047689897335560797249088612326467484447910976506006866063238455526627077418102660892401725701450429339185228745594029983550648381854227052847419441851677928551337439468631329429495166973992469225833876148244557404998605609081035945742111048699687084534679889990095921703236018665902683960254671384556355147374368672631923795562190281688074898374827262174004659892772989988531048980258041125639449134917982292242103673777280969786927100014286475876139445937661524146491664326651874406556823320686363619582021588133552134581836902078371086075126368434459734439769427885923641833551640369248000905528511495904874890651633423569019652547687093749544376628793597724126695591185619439825905356740063858226931544043504040278079939492616107646702516524883218003489939595215656694941481934913685092559478444001172453446654322344354965572722060735265585297138148845187772693087344691906142826585055977018751908846149933942549061627573490664986325171080784815757684780742719197710230792768505682520538909459008346131807780938195532357251159541348315508801149429842985955323810067647117203700312031970372842153744348708955726237741052111737703050395495074830682028070202568211378650721010747456934683358387722609098252590413540228866631269606782151136696002516325526147759190286622882062402142048348387480582187830679892507173344818260675830648228506532252955052578367363434060793321557717439023402926559002906155270001495088949429187182496996774603779121157438533605136605035163484653314642142509116995340970999246341989528714169833270358664187098000226627830287018650318149017179095732137187827397022905860304050545419152100493814778415485844468611404590360458096609081204988584521077476945434533690081951618639927623741868774728754540964182895752861186332059672092950609593218933863474603513856363060872369575096713315377706750849173493162310990402818838283883783097683658708007767821115168963995032372793143656240816912939596123032998837626945462834145454539494589975099873271585857063252279082625797496472415116981573046317770619701540473445102811370108714227900081407664808589614097105080803827292812979657859172225479711962951900621893591446366413205825568451526184249863365566496871072664918930202661083029475242477331660847617277392159432074556196724259317674735161340989357433704588017281101059724768334390327942023225341305131125783098324852754922581802343986265436223035497490950371540809931384809116375369169381459077486817139115708741150824841798216998252839318360994242274337434951869777758933811800078791652604668846252299804381504515453985699905739188035955576766773863751105398775627284203235276999528780623226854035214644345239459649802250733140417744464488764374441275524708844337246579327831601655865974777701216649242816610085912641387155846880281457681469080584719663666677936664006368115926250196906821180229653881207096651236012483752156465746703158960864219733644227386475567622555172102299399485765445178185554000455824819510283098438259593095202735102434043058761802676402472403739675837326054422923847040211880249719034165906245213712846911904396002819028037021510245579305061836139537041092149405182090107949299499763109038542579429852771578320827691350086607429150644077533516577180690579625980761586996679984823049092598174844326199133842052261733974138865080790227021125307681569581968936586763612297337758146397366818903127729524453450694593672809378239595593434564189565145561701649846600416320620106425141044223770009463304251553975577130425591371022245698217009009043738133391306089775446522599167879315650352979740510613207179848735561250414070155006390086092512870092868368662242857799462811682103645198511676954095030799344338694527530277893436188114757926051270486586410546695143897932270653984744326755798366108441343474925005050097410874836215818125417729741028397029642143576798613384469812739747746082298360300357224105765546923834235644080385847300710641298014708543969883699081728703690189759639896102774635972808857477636960591706127203344497693648628126624626234107039968229022509796844452897442914534776204539802299703715534907088651521079737515862896034624795631566042314643160221888800924278164042901782430145825762619135312376083607586171930523944652331432861444253457126921586444029879911439936829564682075774368425954203636583469060070324587427241813824194690070047767961400719037729714053197607218261939918609966712627855276310128980334565249123746230458214308997224607852539526957543049316443286514051509871622110694191157852472712203686960568833572680843161618259533582696139778575010062729995091399681670787397730628874667135873362621965103979448870120686115638918580182495411591749835539189051543909715227167752479181870836361909023952082355913399484045042563557356803327851426778466572240819817553810873387770843255294426692148899712620402060054915429302977317786242320684921308195093482707081205114560271371605825255280612042161352428468410070273502508091636312977538951847882858991944174476632593277755179082864510763734437185096996331249342578034978032794080304828375302093564262894628293325468325161947338560406266311920905757176465906353640600232394567568546916661163735396470917068842224103596288388706096862491637667284138598792467509941479423892280334984077744436736433183910831476754157311569987428088308629979210833956391642413801399523416049200748229338334917212176438108316347260070246412276505120131487458513023953632911031191890828086980564114911406056718469408955316640797006520682938117551714522341133741836818520253972389922642563180937685733385793893853526825850151063716893538093836309303956344245045764027562738115339738509046335513842891345754415483511426324069097679635642704420943804339046344675225511628849350519544719978388189244736295449210899670362328692045837795499130204729007576341622238362133369706519149308625683396975562016763429838056203609475481544799819497004146990582917060967541790312753356949551122923528904465834122241366500751395925132423960520749674537850701510313617536610888056070908819190005941787034998971784000750633983634515074312842903658067981446137821853846867152133756457285989225911843595159293557305780395693153611810608711196356952991522734789718011253211896762135517111811783943815452953182452794549832243393260750946075977050781886279646327498852512462384293234246760617331140566749219382996815463481697939985003751422875199650077226853487510231418281972136037528415175759654548609017551812170453345534490746331404837895193165180216431310957783693240132546195291658417797266775848671308970843081365612194781997363455568750416819850860063143237534948522420370714412416189091220669725659920546056981047982020654019975878353536634386901719547820696406586637866894115052187905561758183310833600048050077442245400609953569058315439961520137986326291393887471502141219336247353235572530149035293275072299681151593013143683965012365686856355940199495550599304661684029001402362080508182322029808764148014027367661627212499892124689047019125665299774455024321048342123842023390109293349478045070980663711605403315329309186127076259758247837542122576182121586097675921217432578952789473322003368272292318695879237796062003741104215125162903599315451729187472767370269012314668368987165835853151112747685162937463441246311018004771189513706618371882950725430356051246897293108224721090743753206399018553198676711407299853442402524465809047945053519505345663628493322094192699492937888181309936832396611591135477271973051465661665607662437779996265847455934247609127874635302188505618836346037870136753889047503480136332321451134379568026979224245429135503992951717809484467347555053850405699533547775733439762237686087510941480564853574657027456114673958771772696876929115642662576854304113394107287529081173904676940899594569775824763608257275842773582638669284117224770526236369222905109121072220532758981613921116295552465906396207700663773024936151757043362251085106614210993777978330857521356575496916465115411262707708447904956775457594904053037290755558568750809242752198658651809908714854792762264176751896431723857099433699693073136002311406371894573950320331028558142903871590247233030606906943423918406318750337600170700992115666007149149019351591289114554744893789907474564653257847699912992481569164232234057117949877801571198489737633152193147089831152855979311804527377762332699603066343939155905240798013964370939805599837651768097201509945665621758476777131769643544528625289690297459626395329427137748560767811663587385315439482450681447129223194834814377083812005284439418041830430704998156904929894608763189520507439882356674542828290607927320773316298437459131566445689904722927297071929101119815692567633920303333382304022299868264481555294602741601638730525847293630958840831409653639691643660498661632439711411268796092046517142561966481664896550818243633986344723061209736538753300251143044891658393522753537238611858587832163131496415536188679269397437469454272716904620903735236895231148042546890440693740558511544984527091321085303148074219766757492139465983682342210415391617226615146085256831688647983013348974012087282810406896685257691724836307287584684105766588680330797539709010002813899590220838660446498405434987428699638406511945300781543552972420463575485483084338033621372050201675538955620758314369717790111477198528546884216406791403543859330798021767417532362146532913250973239299568918171126757378497305277302587907539357313802624984832423413319974634818760854519542893477475514052579450079484732464359597993015403758835972188915107947028350841018749642156215674324727633757368542936645203673533484213852579611007868257955006100050165668804271859167578729628828825618877274739506778856077284757622158504069335543479646637697131538066405966112584060705346480322119648153343068798892499290421760520177193499959024506795284536911716596869552760568592652147617983344510295259688210824103839998623890977199919765067794580548018491906891341306550765355921212036914071276218875738133116346478925610862808082692979328000097959233826054733211073137586030727712328147392221728009272894670370836761384371967584004267193261991156304782426273029114943599077809983677138719280768069204683311515085653135003032312657664162674242686112706371125343448102468931667265762332297902099935180657336606953566179623243940600004204172838235834722216378619763846314229805686256939583028821446823048385002925305069618408593585640895390233673712997846472123655913333171382955213787738816407203290754511113768534263454118300174335241457792254334783517405836429909618381913777377114312772037778120050663645023546053582294306736530933286930216105140190219142559799757759811396489050902771313544460988937511671451904041431442408974339897823544811123273883964931622441073684684485992671357839146642089385814083687013625975150247097045065050670314785216140527001732288519100562840267643606861446064243125548114339761402911209554829342855668125318909570263647339515844159140864790484246778988074785793780305320098668249579637766900154033940940623304990017007953076671552995937445533788029782125002307161186455130245424866576150888278053716569589190837019962944377205796531793931639100490992715883464812217718537036451979627086369650320187741078244400818954551737330178050375958876729143799755362956587818377557891925065183118265653140712653733277605025244339895725550179946125422826358949851888939752884032242234731031825963481421723994071726849235163532868111155863405863465501750417997116446927695829397495627668956114924124499900698716786710313483571529868285467820899758539976801029769173718215128614754230913507833474787227219224027314954490265069012350117719162805842660257426114852614477042461742578254695070147215108961571176450762894868418213586445385584231727521639178200048506146836166119925446484774325136221003600181982237036193298839367804881942504124430614898501498486116854476472370465436889043168082160098262992571433192918129317800736994456646054389638886748637214181156229290821273252995127403657904709984480687313404462928991657743510472087539876986297807520324954790221118468494056654370819737678153520525759977641461428468514343786274485119105198508739786356072926593810826367811015144691031034195026400036645913957402436940480938463479478067148853823516622408707985929576561935790586294502807565705428107816944632389106525960398602221162441765511905284252511986013892211348590027545006621951057995428964298458459169999203953590736649497667575541543851296380341987461291991078161146414092430114250834336205716782725854028906962949964859477944490473505757572222837852964127927821828829483157487076579292573455186069511039739344433255455979014405329891606302096256633860933516844217034926818815794993701149264482625884234455055044672029788816000042714876826024141365215240515573807215487221443999903414271084620908255520502382191650331800711654111253518214175074611864555551852213059101438807551662167558386147496280042045776579390771661953338363945696771187311969538671012812393328294276926411553822737545707209961661010373366326684322477453328741749359307335242385484967654499090545837650641432931926602348448475049721007418643670897446223674899085414518964477228347093100338737846443171382722371734169048332873317173978434648666005610857725077917072873816922860422860710237849654562124179772161250502467367610733070321851123727004367913516018627774871783433643133063619156030309926219271147714431531444621246095390439319337403752395986197086534096689292140262858240570598399107300085516793247743584051362585439734401647235575028061892334512076182671468438945967946917273224977101495466626487958139097267359262346742395523777047533447543016561677729325702422862171582439093964003789102233079514773208350946095602693501181422183223453099514621779424861357604012959946590738212265647962426965325249713747143565744116093609623794603531827438063871281616873971581415945582089721917105380342943052942131949925761388190726079687743091066565355273674937759563195281910175601176992545691598302414349745840084440313507287026040769719916476955664049085071423717563338095870377174374197847417120201815295616068792873643118323175187987318782116210837790602700106269359725855210565745773768777699067722460831250927116957463546421976538668987315781074280048350655909117810089065411916991471831343246563022886037856764977036827301905348256780302463433530175696413226435685247770787627688521597540025434384740384148769574032797837212633611535632089386890127632636113684271467872230505745050627501193179960692662103316828365392622536548509425699551988658467873911003744040620487070609785645195929635520368596288916836252184611941694179711029985910005987592741190655075983977627881028208889647650892177513270457250144416027897819675151798953602833626428050492003705544320301921301607722555166457967544468720151221819450733055693589238353824749678440712222602249459877085956949691988681754052056929371599872704037074668182918045023769144718790370444957489882966081143354390784728573847966982386081718226304120370513036065108957424442890421397330984939323125500219122049101340035979692937536108350602701351893024839062972250964736336950024087850428286979075049658346439143133882534539516596686264756525929219547869748856909684129566014731436552549466427405447193893032099082273204022640540534314652595547809855727722868919075137238414681200322199232494778831362050641660834346652220771145580255358105217656232867840882222080283600709552397069851052857152566078472816254340132999127210691897824058126217860102243683653025478674510252325005932302692836774102656533301402818471755742757882659324258911979592700625219493637403189121562792098218398124970011698777216087690467970388663351273443544169745004887556071118847867465524751522878368153855720950070835025772932729088835447901101514325633685542997794990934857686797424627038084108675826272675541417774148064010804186316171838653372332850019210583631939445111715034331540801803961172657908624262387593174151883117685916281151067794562611192089371338247610342174901385259931518745247750092950090363665119558163876689227501038229124232065706825506621847742023025898880035960244571925687648662015241072219168326471905807058806790254095824500177056409698407338973394047717548020325329373278227335365703445342713771659803238014946595027356909415821350707659430133533404088299654864147493293712904904452471161961974886392124355347815964984660683400663751708615378411671780887987554864580448621089613844840566499016493155547719460198566004219867170679296330948267451555829762546132267894943215763983312571433739712036056935658397392805822058804565516548944851403632860192863301226650159590712938099757101471096391322603541821791809085402353697101151616525135037658323208538429360577032564307573636262631984343564854074807852037629451445459560960652481055977792041362938045636383732563310632245016392547855835417045222737437117747322967035741200750345266918747564039969443375301036066252083673562512088306291488478797653390633277912694521303363090054844183176779506647000188426414658092046676935130966041843654490677564561124459736049351487513130592001603185362567364820205199203742789107325399710971426796332875040993061646779766481655560228416827612465484007327228007379765833857255855149289551946501604819500778695586597562766181604710211565043412052023498019534785884646321965646461567229307907643769704459683905956192557837802988904706192242728491459039882998394453593414738490290812150447383743906075778830638244556937415297327621020295325235867611093837378035647956130759623985191162156779082061631240340388883796223976230445572709913989065285928320535139612945501851904768930400597338469748918349237268589912298208639224580504595809702476708259895669211280924812704157017624221760788768893679899766998983343676045634590554045617567314390760709217302921930430468800603324658957693291005305845294215770496290302372306580898948293833779818207530524828766648622380151308882676533798066233210388724061030580286891145033942903727756445750555381172632126885017175141794515062592337343792248206883357777359054410032997976851120657251221762117269244437440119535362368972875052045438880890029416082983566267121883883420740026293831706818007912194066174379653509005103631945316606358357265849214633456002045775979327204743072335815176568530516010613319968293701402568429795942168065020170861852824506017920681105468317535240473304245777761008181858487518908656108162696602433572354356682213251914130959235599790141844229927340052923059919663736815304599577343784040986688507288269002413168158823712049878396849328054795497962718408234196437569112870905136769484239294952081876149186408916494587623710747076932001743524188312872676299654077989498441100974454066009005245008187125575984682257155503750075478299111344424901388702989303706641393129510996961311401824738146513829200727382951852924893376697110819729595629010790630114814457589645520486031652332166811127208986648347459720427934172048597597372618264206853001366267517672013391521456220651648159206298306338520974889678834281088447335053008535156869412329486645099546606694897089739527427558395071707486682018643633963743285126136860659458717198106189064677237424354011056605673335129408786307486239692593617326835041489776501521699873220147211346399515620283586609298461479842843955372385742866363082232782155720418665029439211518799065794285279880083054906962835152927629465424955916931396625515342894312078363979206458050713229736467854221419724647043760289733053831222456199099162333015127533289413502114026685167108957681726100537266470535104927650725988817354199157848744284629615069519407111179257696343138151349925764591443905135537325742589456192173537922475028802049759336646472288027430980687649207859108221158001156104660750997057127276746580244249593970058331175443635650835161367858809843256565003694625886465312829140806508269118896950586801812403742713726509818215682944341777009257590354133312129368404163755813086971021613232033634335382258820496502346636453939603821443042660855241971366398587975860848074042889562402218232719174254122691639057030693072784117058767724831365972087177059668767116779660471992040858588890423404264920326591701792135041921293706425771740821807462931556637315165692196512971295152494842972848910771406887241333642667346561152805342755450666472466733645016920618785650860580416961117734560035020692738742206539114543679384827343295561857050227369660184516976850213274969351034196962590423806727013973934750440492647994579360305280814270405673046248500128228092169335024189383985684605911222737783060672235182946621880859834467292296568748271213814535616756544463425290338638103110698309040349235358138862990246523654558561582904140842965970416812354706548240658962471724831353813963489874097426651026124431716141748560590185241162314350402638225813133651882481940184068261291920629434981732025767868061526760160405646865455606831584152737656334492869198786709886879747992119212670838943454770782673934190741007826810301018669527553813408600881641051846603089514581210858187305800963690472756936295837851950853554411459543641221023966787459646095971614203493272274025787262173090510998494204112730544795501543256147947900392893475980316046444780801370477712567301924431093431735748174715715579057477179705908957483349546713020337713298731736526206291852648087979137975425386406920207012622710158250474215502266651065219532013298377014382260066202836660965461211978426275073409533450197044671869263336585081821144831317664724012413506290928315176066446975203975974951234043543706259850618869487602736990714388657343532797708766722638286091250389665356937385399991766156610237022238227628620612949962732293479554772253816396803140781627177740101347722757710369824799718357117851641745738586068143920645034852802546930480880785347061603611595002896761514965038207441971662102746054044592063913360763121615523945648478071821371270272039731974133481939564490205562352391076607692395970958882513570202275220932053582695281318479121980070663027876660102523044803157795679298797475705982098990121857567941429229651291958847533651475936589147205108335294028900060644228290712269751111353338459613308978463870507482371842469549369045329434682907273523792659543390085601160112421489282994964100968139253879506396786007853295215454356337033029386981151151026289566313562435154878576291451490315883286117231921942090214957175343575974086966681359631410999593497216197035382182370783718297980255794326490014231824041132171164598978648860416848806627612120716696112846929222280741989729496518123452001254047831932200378959613966749979687988304858064709686953402576442613045144444744775711893998741026183801403709023844607786129189680148708913206424483787373074545583064397390242000464427609853953043551754896338986439556757059591972505298995782682718251129038539170712731499314578431036983706659959877941925226872976534163872023329826701895306330375754684722480013236866138384389378511163776363053148913778451670793203677980111942328601436905219092789959179226099351559157259677307364878333091684079670549913249615464059271851814235646326716595944419872517513566213556223029280474791571432633756091706124571176983104717769588139770999611368297747118377418007348779389536420794277811725914181136196306350306528600703014096863918780419915883725967416414121929858545621443406441452317280738805374530406681834694757797295040186634494494209712437429167561483205479422786205796474389839133137909686552555456913160324570852032177087296603529970680401204536576352293383483694556950790124836617002793781002329822318509907120420471242567986718784062421159477102419807087668562366754227226303896557532564520559691901272870704987098015580417390554699666476318732556905519177861793587620146424357745077646902574967336406502749307767338780484024295039002224774336203287060072788370316569828999920345500435476284689614244237409409795039247510404027250732781737541440812140668839998253849905007666438347170455412707928003931969479866323154171480539021307548996885301743174671620408860653191668592328419654539695795259775528419901543921473846127615782826201179864777326173097290065652590879422597684380187021214337783618644118119269425404649663433795037417490429997308607153899046100991050136672751539956687518626040746797908521937704888375539076204373873347817393493582994459913948432957320194893866487626295925722485713923846234821192743952262501027082952503876296043433220616086896712140403991952948392081558565175762305998014662698338463698712385688865324561387390177280476090753791800955024476317520475483061665680710993605978113142453804288227976208960821161175240697841545654287522514773474745342663501446895657561325421380750389456115373153726396518514866601391648602513882789015951484230181463539852667738006580490092212619863330488563403309517775289230274960601929344276897780264846929255912019267347228114140590089507551892574218287394231257377662390950217016276227884129724690233577377747732583746173336529926260658433413238447564252153082683797733504077080341917703211881713024044644575127989851403930123459646965712919439828915772061231670977998640698695110624655852216870846213962590752187901069487982476314986063480151113479313913443902904393193140569147515161295256084703973857245534468983048922610032825225462601249471716860087556032571173022776166411220153119512825727903337606866078365359151516656067444089748569790267232787391552226671453221650737695119521768295204974594238071027366897217423738735521317806875867382238000774784496792495092953424385364797135554341013496281704402495010156429352783663088136800617622524918962890506074856457435634584621577313038577774899887645968075679418170606050434472069665250632939122501165125673579447591701835463785132660129856994669658987493723367132246763368686123461125273680731267228770873475359694646475785148354839836645116644702165007419616380881759499048165171034603347333547565778754922307703358723792112011544189919343994290807522099257893842741596188487469917862215229343594761974311589973402029637462589912596927739236665134423742324832980853782165976342886848326758007274493526315826356747521465968794197158533343075414955485337338630930182365288220132737739871794545264997136736729950384140444570699761861765315055208652198625952852281629847852953082342623022522021866065689636185207729465638006876195323971020174551120998032039816987416638555622420929923695715252696352917092198709598200159773027123394449832756013812842760716208353615695255297159572231626896549311846583430340298371130489495122116914405951160634550275822097048182404614490588918456871320498840717891896952959786258528878422140895908779969301949419130171047326004293659781519189735056397132529316005035946276739550399757819078157163201434447134713175300448579735501262801232780754547121531001197303182152126136302884212217628014362201325450800046005939949822164304224594858352159484246703729121862312590566396362068237363420047507991563037635476957144882917397669728007725697124667895798985256894718757539637481387400186629493198248411650797101366587476060457652813209324246729785920946415469331020352920622203068105012801394282894496891015672553078765719023405358510954804307161027675813403575486828370346303050049179169527829032696736922641215792834736997784995077560657806527795870231877931426551589188496337061808341148930927189559677935868580697985413905135198222063149719520204784007486161030081512019894427002265608268085582176448588904450210198761472883854219884027085255051038405809709275459695744161474290016031368734059797164212041960840718341889975219878435109170787133290348374743282941930991357562181271528293647054497126118380315404509637576250200816735681179286940087132293694582039048548164337623685412950811851556584150892712791462561472060620090200188353991705678610658799151756810833333925962945185716068835236697240997933950318951415921404968512560763999615923843575439904390908839804953587869093853346641238204837626438273061570367955436062561544503830845633905575769887054895804004945770617032934243670925103381602815611688412409021843438743693249260732369445669824532858975073224308839448997355426190959883243871212578794256047124273164508901926203421238277020748654032251297057642795688157122350817177527093870652102692935290319694038230228272209067970263353473601315000466113076605070817897367067959401921844312665917987450232658083673152592267216442473797930015779580685564653080698605620918470177159695868165675418653979610736421161413286820947308562922161977596139092948215555668307979684627001382164367346933919155108443813656691345143353929653440363128980228490988052585083046943835525224516448388408482759352162877083283334191304885546560361750968128201696527470899041287007213976499152149380004417501643362198099275373396948773451585669860218620841043142116940844491086096418994500701469561881997681257075154883186947784541571874893585751682931369087957436841507214186739824538323660398078070097074820223687029762854918060297343944461529548402696775537587529984713749890358387471258406419504394951487282461658474490817380171965571979460439096068275860996881340182080647071828322902574037008032937640132087551756875858523278905357293349444324058143435059170380555481468202376197072526900792099257575664665568564508164236378797110523446979021651065215934273074548102607283306476036012128366939435908972271192501421967410836954413951506369408699917727038598549294757518426687317059829810276349251397831312076509000364956021318405978214297997247353436068738063497978561332139188668529227659031738949905687397570720142814917730771875237412796580732710120906904314795119567955154407930242439295185128282922491129886710049822436056662406826049996019573383793578709750194054770698047839945949582688217480198676568475251572429952517041828315211414931213656567019989400023887275887879393591754371377389399711820407269732590142920670889264246596999258475204565650154394367469555587956086901411040189547617632995473691017303795903701174711956336955156490113923700128289311335541580575506171309727966445491388144269778490928168915706691768951180841134486692319997960660358136790626500178836084290989204015977404931423418336475450433958445458103882660650619550149439525928012719847898143310870014998378422657176148453121620550657762744184908056877003870691065725471920575105239452778703543297584980988547945756411092611935572363736041173188796191530678146669595266293075086936788160522676075065101633819704763221052722808458029512832561390527297160995218399397864084797571744806502165193854746838709013244994650802691494535190792476340980207858033027331024312962092843145330004805041623754788019817832565947659145976032984430177223192543134654786686794251923198129246184775035645466009493599004996901665943794981533282659781336650602373902688805771551036460173113782939345645749585596958512339644433703819165613360889231503514434023613101813319108796007986271882807644889580089400837850191191133478611167660918467936161057336083860249533859219125671964549941010669421493041793069232832239061731596795893871609366966245173372955437855307376301259505968504838269769871633510127950744000491003472230482308903349244753639920841255984753755105251528797555578640845340447876958520531759388824957997620274505681985630956159655977009196673364322920021845948133996766331348768134566757252244842055612320090466221395285965364511310135679439598170306966627386520178652280290754268256285225001368806282404448890727317059715409268802576005082561904517564581206086797782088910075981443802414425648535188034761536958157001846364226357459086676650559273617152711512694962830929373029160705025748626398076035173112145686110938982621995652983084362842803736106745840687170949977154934215891513174723918071452789682825197208471356387497256162234303170831561467600153426334189233764440846114071486953532455971849922840805724040177206677540439719447186617219796573878552168190404249225751873601323366129286346382805752838877425630498924394297148135224188045434648597032666336526437557278340878876922889934036090880221931205413015678610480157014840495704287483207794048122097815912518700874222002479862865523668322019023726044775470578871820514987531196396150710366415737123485486149979195331239543223131346953509801235925054741539729958746743691179096617008417665833294151301606750665336464663535413245026563382183894178650186482734034325198921927940910738706797952761504633650217777689605449088900105209279216751519019510753715446662147760280186518074517307251943050200381674082750690010888351096748942124330867468778023415497000596083829861838866550647763082038857380571697280718061923940120695366757611519327752163425723940163963394230974305322628552037277324601305213463007559709875624363883784114782663765104237317812069091203432799976216497279721850075305296936055067084256736156789278830266941553126863532450013912585912572944216673690546237501078848862094198496626705416313032808206829394002349697625930304996655916364225972603888311056986298027863466278482322830427426040325455751632050605650400657985505181401989877219653473378274807519118434843912162792779204421897272427092639030791248856873082269166921039859613653529714784445203768245065831919295199865933969742004299123704145659477787756751667595251686602928449770869558755814375184067771089544083273639305324345262941469655223636459287400647874785855613526352142944899910490722984111298326781661616853922767138666886468180930793681970589992584541222428930270631486449609316054423125386907658689115034333057571518708700570557466509364945143570102647792600935688409805557729323160437670882955083249758972012194374504620152582218853376996406611019002454099303301903839484212274207099256818302316566825484603156710814665364755680225687825349703247383243969268769978418714559722871552780687614010613875220022057728603635050474792912789133211135375683695893923673927744321740377833215509959262124734786417472042268222774793644850285692832830392020511563788123032517905901230615043660129514346858022915999221949296283540523087900261263068602905357005027783134268818527031582816414351256726470664131885573414076706258090994565502159103353079556055837319431173246009249069578498667426806737318541389749418943329642939505193456907900640548045869026814106426415734321335916706692174832243059149815875413172350359777073147888815192672336674394435487015460313093882907666188915296817613318150839694405745238158369007920872919056617990806639659355366485096826636105205253749975830609549518327391954891494102325840378723068778340583222751275594729717009266123320249941396023125743729419510326377082611602208278436357017769611832727086938847778964205883125560493733816095088318577475533247787471576430305262614818743137516560370677675071897938192255358354669240570868413436112757299685198210057457431698488158007152958837277611709328650516936510752108913715863156356417341247189770558542510960675036833086253324789640678584066162771673871625534151721552858638148915426675452165622805215702913940987160391091500263049876875420292360255549133780108544272206960238866519345810115384725483816968808635099375299528225433942961723124442693363336847603947824593218087308741589077305710824029536581343740191403003069470781671441955464446429832472118953028463221294812890875226496857601290148383929424950700638793901166924820629747410557222203692980508783736651311069390338852121381790856396306692665687359431456110455809696111255090546589959049365293887827168225160974564016594099905392319681822051603531462200005360833699903485326665512042761824819454697410168170219095624227080881924619233196483037842229091267896184771086152206648804872122770018947633765406671293383546286833003085988900536999525274593502425838798669292009959816078229780979189974159968682459232795545901663139836983988346710101678432757138647350282297649848304065312702085871740475928899934881579569850001131008858630877222898075166447179629700087384595530703063317475453772103472426003038660140621884268179724472984141795042999462880242692172218593825946795691629021917584005841290746397211313633245548796549653194554332440040820465953542630498222017942981743443100323223143774433373132586512272591074733754125077894315776655630982905466260351652257986780699177494261552771566868877308494085199103527035358457130437956701940900590642634550722748167219272664338773909147812297470253501125733791577452721283867923299370396523747441814174371501887623061151835691427233687196986717178757496444282185249400911771338066867211763296204581707877232728313616292157967142671817039252251245282358512012742505628057383792543836289017320176467296616431509587427432385191319386872092916457116082163160901289329919268546712386507136817498797711838583936199416287399330092660727905459595841227415206996435590405391388991657778526573553529301630110339473501934571383693256240515945288699341365169491129911470734627950611365448009179946435147171832845851340140918178614534741392425946302660737077907970665540424660391541515358453224691736710818298410515561882345315685927427055417179289897797157326720064000943341836210443050826720963262433171159352686309325429281857441063791744989573715871444086021184128169409584100768321105541846863373189519082267966589522716971683426823423608376778934652443678594222369598958494684581311971669739570009142769918221101332219265938395144330909052621746920996827886529410774457694766540179684746173065393215852594202425067353748390670747757773032638679200199202447014005602698825488358191269621338670137449342804002517790422556859114072956998661918524988313196470320939348560573352399534723027563906972428157704979088660550308866103370392743330065050139433854302399015552952014874570020103138914647835600618132759195370790990613392755996124248686628002347435391766880824368862756856070363658986892499074452408773548445608679118898144004992716758646831685494548779839582834072860842300872884485234053100450618649888914720203947156050867245373918477166746171220738910695052342185603035146538102003616766907693517094675231780404303813084904677358448516376515672493081443844849965997704747928948004424256259027117230237651583003002527346387701745171912268928617309681461843000549537056973016933000604701866037293484295935189371206310114875750648705331018549171621895295844408222256824232488579477536557392593551234583920156484682121610898270513465578077276783276218597647626014722391558277914825370096387676798438958691064108986373508285273972309336482331592400109020998786941249826952502209427203770399969395759652521944718565810381592056804511835134971261254445294587592926325994114013779637031015544345442532582856115632907029014653067424032490108965471787808262208918706217574339311755852963478369273163782753230539093078423321905750304696467830790608952505305495760840818894984653922845952849339790575042051194102267505936620563169454957760074942078231163121633630309826489197667156558256435654165752132057043637607212873583678162544076172785259520476465297759304887932262117722826816010771326858367850568594083628791310843028967863136892482829741938728779377811005784665458397246338465517078311366936616453191906707951569250123365694621652297424459281447864014973903422837166066429357995100587371781914875793087720050094279547149853361918620616179097870213609547986012007828551650376177434105375799604192068633104835675452369831195164060151725782964903180784469447354349133803324301334612246095982443963382162876667512377218959720130852705203991415241243846293561487160399132203639512551650198145890906804983343387224232596833768895737804280791332936070678977441465289217437591091184147042721663680177615588536221724248577938434079246417576765158945982906601384809659270145361422211427600483606466313487880203357066471451052509554190896562578177341032588204126799264027766165589103754855730020386973855338872842766594174759405138354222745602724768753585098459620432660238983641660046400408838127061925422150811217683168331559290638638173128908062460699027452433984131175290858433805171674159507328323347768213142819547441352992350128485161232157974287168083848734400980016535652998254537257272373166813560052326652645133416893346857123416888240288120289269144616138307368521077463585619879742360621114228493452128934517620396010301626146031794498162498814556641795492224774290831660300382196220364868393576689271922168392550824241099191465806798794585967183147288120191276662204874805642039986654045002167467268392473739887752204483088899729747312881552378799311040202514440416673470484534337709630032214523697673032738029749173293250275735506813829404318334962347356556322730497890515130004667730837601603387711634645318575749211062917320954832463097174684602487918316177443215112140984959652901893545553425401131137158879101087768240113756739502441342072460276157020732411640420631217260412503414100429482582595699065138765432127538553903246614734033231714652907137630776741540124020090485599496252199512932804452895969280552873069918866064400222911115559659405119693026424370220895894486641173217999503861103852717854417006977169047514538311918317990285932269904204686192229396061988842192117294658361078238559391413220996902775468199647605721886580269383368135460462992619347719937556119201610217464312845638597779577522914962126352397049022867377303695639712364783109688064847435192065374696470140376559944341914562062194284960962297260814450079527701781589623887258506093328059728651167984866139031815371560885998349191682334658377121294725198060418795463732951712595761165329403843333561693231645554565074184248677575166361978714958662257210434462346260695511974518397212213429366769699000373403477089119168824481742429229292692427243356052490296424853389392330039913639243979820955998709649387745686858171521373765347087450871678421072701470490744276883242488756706156462989732360577799897178693111443557687521564433205296458784871425199935526548883970284631567552272946977578598169379442713156429223509024585405911495983934384366264912257870754434480511834668896940604517893603998330190362407050865588397793620328527692092128309326194465920144243432204707930959122168069364257884149469732032277341654748702209118680375359472433936551246719669322801027150576046633800447994357260526640888495879547802418307430981479559862168812741241206606420449899697672899835018881393278185598534821258678209706097891975499085460497476962924317048323474984246623564086003699799298998340051819089685949953791618542101435131460294095040250093936961986640637245717822537651928430045206391096616160455148325517295916888765092371374076567235848565707640025633726423768021959968494046117234951670272695145877282630578940168239412698317674448531385190840791778688268040694690073371426660192237721983416475348857837508384233375325244793784237841189874854853388804925483606022697142515776160023675022241652305143350423754999552508698930504868630633877846038521170388474600230772294201230332180730817142663677843442610635297425364636192289525712276251521664291591922590422567157176538808272985484388756297708205765218928902908540125986872759566458207291190811274762059248538780241176713093618607976660343533935294803111180207951869610601612047440147764687056136874233727853663124358681979910415989819162141332795932288626453585945074704835392796638777122469772473857415242958909347724427888417486972218126177517867252800395142771136049691838227979553678415140724667125362539745940506313747568997361548800685453139530203688347079950244475048423796139974842465776767369040552315003887967054090856143900607918057465465571005505174040006426953639225196850007387012323982797549045996654925639641087870183404180051950939227191896512813700134179786626628330142701187406859627733745897250381670880920475710852644983786210821825058761756043089272929832137693904885885163106134431282475374146493391404748879936568429075696039116751359190390760255105571332913114982687704591696889748148375200911915876962000679633123932021467235835787434640938109207624712698101630772573685930910226202531800082294724348795666894261919882875367828905962576382915156579612527688549324276911597119547448354986625945953145222530585332789126481643594130734749934094778698279709507830845416632455822835189757623165439475347112075444137186805899107228589586551678329295708794544555258885568499820498592154507148831299065301849049305168947784901159939090092986919128066391291861285411546795374569909292803976287912608825812974699651971342545923872893819021789999963355492263634746329072280561417254258477839690707714420781312833026811551950390923204278634763971117386880035393674367440656819649936074620929124160129206017621165261736367034345399168475938102611926742526006920937454809160826746312023904680912699672692931388490090701465416889859852945242056117559360434322708605762387591660820252187006535963478672413321409554431534223891600063550275574838675279840631289490754274649839015709757084477806355413142546287004821517115022347265238156360589469257623265235593565568377269643920760930347451485691797024900114303001143364799828019917867645886466490855057926726374600909930338509170920644094502845911178107283610815599775629409377970086919844302451194800571946814646409928301982592078811310893823419194802915820702456790774015211859711890783287715477653007511511663752940212980603293234216254022739320264611865040503594940785523543818765479130969413543391169977781727695131232013822632847312230035819258397409709398161460145045347275136727443973679919504869990406470433654441535569566513083171197982447636903810467644969777972718230364467245232379572871065388738390685388757226427302280906671124290326314656168429917484324060768253805681941505037342074776766860658501031935538216527375478326669918396842787783297328435426230661588240653275283991688707978287163156580243105264901840331385350919547167187866787954968701939884041577376471269618577723524076511990452166902351533816131600396766401512952758039283926018069666886721631304383035459971349133057115017532082628046413569156018930725733505595178105911833780040227087947812924617037728318389741193870913170097790835293889073068064588868780228939678428590282886902971893568074874230321677290443524807583543459653217038226195916601860347421407901300374373005108477055819865938663329645989444322268068496124186919528160906294358114878385370067375424167962727644738971142028018335656501547744580754110028600132801769905268129406285070944301864836926303979800990705403800434825995629783818782499251698060061706526205096879926321226732598601786739932462589841504258133755471327440571712743388818565726275014639735951813872443290066475339487087318230102463256227855746130074181672622108506249531084410946626221206554355870348201276113553484146195434624155929249603016441647351007352615203279575392254978866240010075868439995137781352109355342452800256094417613741872552018059104228217731929643441785000709831445548784573447237068438171506017293370595007632458864828950555679343052990735111344781618990246008057660418234406157250235950545720332132773395530938118506068868100957150622411190558268101286428017460063038812753892128194136500268493541212482229304729954322367224921862049906881223706908877577213380233531536476129886825472413222052319181466188794879103732964982652313606606354546978445079882547167473970399872599565733034114479182519168415399159904104871831267608002271063203540547441955367581660581695212064169324337453169406685725864898736766845197942695258873239184307468560106496653287456554976626661192656753015415785511004880627373659032153673042940133334055966939243891688677739764782776736406440245502612937211459999171766735791355762110101037076188183312740636746346477820333595417785126248012033547625174666367200191018170819612499271576771991602423645323765124424831036314049129672025704698508869472767563314793799973465157318813325660882383964813549967676905323090067500850011028515837783776211633899505656115245604192972277761675240597912565141567946556666329783312675668131967395386980549673248965251330602362396005904278549346046890689776941822086774621164009182077885354104378633714634319389512791125132412425217496542099689941198628391911949990777129230035143900869323800528746542616709184862149604352574295036811369921707196191625701372628988113557643724268697174541730734844886057802326428251009315575189521118604742549569719836791368458014112817909368475468917802065636071875369607547868715191112382998381795750693568311145410671602149659472076785893918251682136155131814868405888943410665205986680776985117658110204502487678942509478592325203592580633634373314403136470850828136287768055142021550493518978767706651409512889285491078268565100105298488106795610484788664253797560490712166402999117523358006638401309723181871931232825388131249629930758880077183459011784078176021735997047627984016961608421815822856435072528170644832375984067049527774106924050878793942196552865666686376264044835118168799577177047601160452719874927652996482232646192223855539397841910660554902582064160355584565486707818506890747870904212104524203986907296699901224539772152119750940334792885520574792667572060321782767072255486108549712158012669172701670261510336074897419158488005104870332348187932345211767442649025641947863172887595440645039967247584351514234965417794768824273177981983384215423460582973277903647428686391116097828549165474005661132495362410585956161966927477253144140849662160191068989818703376472625676251401003863683683791876142655377490810805191047079418426670802454499646198171789376035104117799198991217938414764892438386467813602649916446093936088865040722864131089903554706107643089310330049591648425512798321950436729454997842800099706753462092089484134061628594457449104009384895153364815035979515164035493358314137483804772369466317363235543539023554313997115783979916807819740412349139541219315893265205681259622918395823968488642262181780972714635391352865963872816182076304205208486113388512004304403142129984735432014437413258491103817451786677194408811121729139727075224450731184885098895330766422046958649748703002231052015001575475559730282619847647144088654139217328857053407045917835256952037615359024473237246300451548141168396286639455723226222798075649631838405148307470442959802819119856041312538034514441573351945114494973936257271844189056479780265210068465589105004225983833257810812819123123517682980826914836641018275902674744415346961393488142533080346604710992588355389468660720615297581597733712707490806223628326439188118105006573807342698507649228023707782170503045184614610187677747496056984444391658753717907566932411226497344286709394443933955658210174233067277937241055318944118580948368093781328763677141187047281347114318631992058256360926107790747622350145618247403667134068170736857862683274725541191744130940496108380405478667773798926866946489551415642405211438664530328139246164967514548871794123399766576196225194426408909973189615956063600125294840518873196748500618649637160480283393925741862095911886980173406508763958509361856951893178854659427529022233278307216215067893956514146226754514020936674225926836956146360094186941557494730953145446971890027346331208125044831068985649001047871631802899320343965001996124447590576020416863211787840834665062977872539577131053257011462982746609514116349420645282846113803397918564434916199359298417447645534033378760280200102206321740834397107173932645709797012847803685167410357072961271822316340859915631152218788774766170043678451288324317439470930866570193494224192849529360223325695018869717858174983720341744054207644686828377840855002999672971800880285793815536686074214743491188452463360358654755056436536381870906105139606298804411769899381380721761332907111811397243086045996670442558673774837419868782779829967942466277176075838735614437832850850054167716315068179607153924078958735539499918542544804453245030779042869629555970943085473524135807447701375062688823623239904796251812396341443661463978955769667429331582375762532567428348990009245037253947159678722690533601345217592513875304710728429743273398341175524906841809139486888236132244453999012217392266368751404905160302847024856035020132055009903343107322532651631002459740785498794090348076160763184193666244346859308088416355943561992902638070053742136913335707092004552959873817195172265726057513290745556874271843456954801956941924692254394888108710225959920026392725193461657181625717945866739375134592992591607802769760706328201909068906256465346342864170622347983683834093878761398562194072050656287509430531909480217759640563621672091154357021762843095083626663540420526461138362801960060492569004931074956692238670269999654546080686631120443097163670759186280559705672589968844645873811395256739995207441934080330998905951119156089289293800951124289994453253530289973232814859370948265259578274105359669646976007778659617334036997554230822675332022984989843924795968168124579176627889883853319848298414357361808955343424895709439064493537271338915257238428770686656230318845639571647030517608206501684031772328233773297195756360763657551911610645469585061804151531859821399718845419020150359970673021279161280951896461546873310777651413419712211617114436097803782441501488313467314482834601810883883584185791694726678810719126722079975068157206517065842281449679620043746954943424907344001999221234978486055075309797010531498122870237229488413098427692394399234749307404924686492780231464159552745694599531032431410057198397838941852133672715333510438887227479075923696376310795745700216718687890444318984900878817423182889820367748613172502073385495120964892460087049297472409745368225003261011631984462837510076812038067344704078955088390618279594327328796006903571309284313013379395058584802194296745519664093694186723899586729336698952812733145449959488283889359787366156669268617421451667483727617444451678639975115478116574472329381028861048408300164411152047736242114410184483347285577434046104691959455491175087809291706676259727870385902439086871427531416197745328313562005630274084716725420921031816975340970047315750370509672575102358001913238098595958789697532026443694938497112233789933374477930187359242215215921501702171712619974715944021593750006243898082663093730399860369119862241300430914126835974192226541839880901792094075001373328534194675753939271804982659735632630641655403925766537365412174161340225992368507856079658811433703053908639404374658122638441790708593716911736725313787749932449556479799165783736785344025287450354659715227985106451810039480975078278568868058531348515200311137614255242540049315031698247786940092514323984649606209340819214624927189988882232601513919645568308774442960492137400068627616030917232975129851346108827479203621153345402016094569250046564929312652481475885928244440436529845298307699897522565216651873658025837687382288743192870138425621397747902972146039752122156645830873312043632066647896886039767253472200635336747805329371826311165950863931621255170412957293432965807129258199872037873756251722973674596696067247118758023065882738315501206174928131336784187049138897429185370176701020286693508900138306404920315536536060926856774338514040013303468573124559613520367551826004313615177497634646486128585417525475895580172281613904521369889606128183554377794895355625565352596828704442988527387308293365888080310903799630264912937012976696873751657405711267762231989793542038273914237854506655289708386247913787718491901036711461814850266533333352586340618695905437176872691916220326445413356271972590348299843668939480466124651358598820485220135809159169933040221219603538595901649485660157333521485464586539834833394440189847831130947472001985919863952136779577647144663905652991829508686281134504240267513956137515835894363821620015337881522589596441449716254250643258055734585643778398862576752719460672294138367533769170896864884312687115325111366355040419170813113765548400533457544339808811399695258414636065676685434046488143745734666056702458249772310728408035785492382667710393056824387639727476244726405651907066467258420864135752620664181854650489498272473551103087959181865025848043319228668935589071251891841764879131058310846026078530870814079096750802113042396273541687262472603735819703367617206873572535769123938671880121169836432935907932274275436787910837930411291717311023151006124566159156041609377326053267231732577200947059073823141845236339563203269415216326777569177068493548279133645000281145060477384203368142365270461187595742610085838643369988741124156366842440647642544498880964821416637980429921730341218438800222759160185442344571014619193444957088978829003871920590055761743798173759702604723159548412285625601511854346322813348083382696092035193891359496296737375267024948750031505706826689549963894489800621397831574202705201695467958346405041198862352975688459298798224075259079424002647458687968747191575276028807748585430165265026033950919622391132884112975476732747795308524885802579461158137578744012995083876290595534299287294287532341214287603378880451417065058155076742756059182926690165510672552431514962555641692082874666274135560309601864241552508038648632443153133639442404332067967500109978057341867840900250242125677486948522744385043245369776792166851046998406735914471729193202672909234402110254152435018420458466789669324879417697719092760867831156663061177823600775231673953599416360279373429069773642169653840835898536109700348573178624175848865084877018885326356226620862230271458598836973182671830463390540094756851991932877303183814191129002998334575840721767005485933542810067203034558062002840974728013732340366056261419290420562323316334583204580276256970817897394419882803734258422770742822826349278275295735855345260710017026703029339714688413969395664564008731821922776481719007767868095109855638679817276897825211744292751878775044122696189195708071854207392604165948034609146448268690913077959424183037550924352029935542580113018829558750213066680644786398395149934581246542770179500512397152617132150428130970623007283083370412317945450687626724647862072727669775326524805403677369925889852577893515181977825109908933424875641855908030248922771078445769769192397190346911151487027935632122639113095539829669762124102678562182853033946146274463167787670236446988204203403669366817070545941130120910703084754979389826475347555823920965226040216822657247542507031976351902948491826136850642534020821374849524253665740747798282729615920249616564161911460104395465483585063657825427330644755863736683618229672366177831469790227816290683784840872401305362281130615489517512565061138822878814711868075930282693111402488779396414890723332847544057482124529836949401831722398747186251554774912718380452067727059183908705103129221893868713717509562128325859976512695544395970168122102682962195018994494760212390513745943369763895401198752097942450412172642334325767224713810666542811184142081196601495217131389846433454988012946060117132056241141856217927934313821132596389371719155103908259237243890884581842069523807005565580065037717722148611317803280885377339077136855115553347642392121859679309028258077248479606493363639218606456576497003986170179649123706900067430027130720346790768875716543508840154112625393601386837113307167343950089108795625799379395643799506523730437812808420056249521128664006605298223174036767176189895074310767038124878679122406664664834165789741877007052097819754414543653131014282531504527317219004267747975502394258233325616676673823022465362813002113602468881000217260701370302328594767260212818822806434083137148716370769489296423970315602225138236410229287064712704873533083623742550558514276258016110405486057114563698827475960230368579517063627458790322260149475473107036072932634975041877168535226051775890642362696158423883369265009872698362086206841233471141836843846030172186735606155423363251704351833223420252053771252402171149367444070017281233372918020495821134916529615222447163849028549825232047462779186167018645629837467392609311784681892570294178934297623304968065936480755677412748931877650311037953167527663456039750018510544420882051426069311009956953178655553696544300834167548947006337959404239711259755950855983336777199869222222013640963692336100207829375266953305593586979460338718755586228657606492600925978520436894979197697611920451971588587086113161027386011826807974813313617681835341235106229266778860980723250699493896267316142674544736411946556568095166496765635718171744365546806976045632663831796865093219838765504522380522295597657251946946673387960831469405431965275634246335041257543038181431149962355963113294578988745206674527231742875470772578353274126360365985384260057689917511591191349548913194409159889383986390712484969609452179460513455430145574108480492679467249397819200031592838344553124945837396327408296645162621343456071250295393610647403518956146679235031840022645179900035448750375894457186367485433857848408942091076042345185571649971460348087767224999581349420842294030564637640272515411171745202033582033994628316436854986311209758372908741547022317978562817385067502298854479081098998501021230611108148658668208807799061674321257984275254856608632278807100571250133982570919603730205649696263221474311032187437988000906438988749883373308369178809378614542776719277249839588161475173026468353312431981020424862416150202000803833719151287058596640750347151084587493786106886166674492308934198426953947418027619338044770800211540075886646328223545177255360801304366881419390506423606177491433552579863897279873206151333729878241437131964913904322348824731364469443426587286039756028290452300164439738137063292048296938844147472460516179054842679013347428924202770029296704239706384492466659297298537753115417954531248306790164188428621606839068696973062954871338022299940871629775433013779286815394494871860953822428420576073979441409750417747149837120104278911731042048917658026955291295707751549524777643223023458554320334473110118384998238421105875746319119204199429192331709469140804889147980275062665362177158574180564918654893513860837456120950368850022778295110221508437984580481722566303277614011825494378176548696855265276453518265087361386603342210912758507096218050411700361501226488092201632039482460336350317194297051220801547339268336079025357623147303591773482793683928001734808139773569755716034027893701781258451533873033775292985065719405492441362860775464478115361294476617492935263055677085751927187619864733171305267380073042864939395992411224458239810774513318264960554843945988770258151794553843920128183839808051841362549983970173911449926744648702503266223200083955182126681703297480551747854105107283638402021289144953171345683880597395183640650791424158916746897168955539735656258739693463600935991594954953726754163110760902626694505800065988410316442912094643081958605836728629389559630617238210735535195805921003700553740083302248788234344882826938162384897011350130634850902310177125306058010838581998700338014300846327895413550139023327077308842422565256735058843952806433340341541119408091149451860357142236817602691337388894355296413636490533026744851093655876579169432817913981891287386695351288509179931596569741507868364167874853561173342408439921501895595943377701479169165008595690005641488009905024245743290629977407206564980757469763950194885537732864948163131308664306908280271830342511026269823327896603131930392053986635660530115866726630814516119074723727822837971888717399026183200469715038571526143127901002510972899391189306371807806881347510883431346455703873056060939063638884595419320998960768432504822662551950026482354748058017228481948767766559109028613307756289407305000912143506971402778007936266449780369076086088852107872272671465291827129922882633715636354202142119662103603038661251810207789685588541663234471211885707214277770346058904869035154819513080764565734712285108291224606821815283240693575627113705022328906594962976075598878408219975751987360551221245295293956586557733481545680729398621286133548648250656286783906185307052626072774221897433421082890338247202369519281059177711057259564272067221598746947550936775542705959177026180382735740954553629298318171303612648610698799695660315416495026022970939646501606641415636571080389182200497848077371098686409571651451229150104819694979258514725190071480685537534397645930425662019306416139070863748328204722098789678003974643480120150297862538512296248696565731030875199209820490575162775516927929340106733413143995793667191406013680168022881309080846387307179948728049188694665286295827558523738031079037107567957490828499455327953085038976966607420985922454199326705385214415243169388520498208071669707153277408235252454594951262268838103842345464429337064428917473396267294950203255992628576455152048942466405884649460730795863736801949792116334125018874421504838825087765373195691969189895966848809893572163228886791003420589150217934274781766286435334276905349173078172038207746764961657279932041361165248215691993310036796239934180385660853734568988752686351405819573969865298029619246398502858132255918070065530128666341455109395357837372059947341575848803908127723926357204702042731527851907808642549298035447819174037110681373022238746773859652697891912546876155980888953363903287507326915861844829125929501949818907181786727487949396383516260852834388596237784561313619999181356752162938583142959328167480831615262723116096565219976065891649701296648017783455090039098048126485043834645785524998483286500498612884571709781124571694656488114288262363587718319154335486183329078349491306584548608661861376829744066590504565728354992820128457399488246791429107900982161421358200724006026237570387037874478842466029441860687316994174707068005515664663955109171608984480557199375557249194964998371155455397946300174177645513295644658698388568325470507596506547792905090082390614486899693392607448319125390662077348913850309452437680425577675088431162551236051862768632786006952476325553119871715061670496866335003156493328194564443640438630820779848516099301970755646974004616389144963727354482601259135186710481858074216669691443777121808039520718923579423777238941986319353602117291148686056094928144460089204808101364744380547664171533911389047946834087185675024072480016938935866071019311513068285059094516079205204787800448070619223596688070551642822556245048230301383055051167215901480027373220642781489520588437787744448317514188663138562483741483365538930227339961839710216515261855164286650886696981794541642359742931859904229785739611011018401615428343872637546066421743796429678435816736536366507948460268598409489692998404487419150400194534973353406581147816611936635918563188396946842769439449930055956638194905463640349109894042900372454635240471713605338434418116302381334022199578229116120034335445031836544795395628428059883845776479114194694962362890073059876767457069857565525148044237124509361972249597653135834611845857170176339670320181378298176955754187318785735074353489337848323273456329831410005629309803381184589449167989997623467954024720250746132049707810124166053637168719568540889689110095269608412276570343077319972937268351318493286949030313500231734951533642605936547364926841282545099215831327166124650404745065151175147548974707596515238019034129682000294687230078409675192673806547083752650711529794547004750189304382201318830066988520601591986376859866162758596840991454593945893181197552930367241818443180291382112470249796565246919475574549859966180688774010529588064286081370424775321794633041006672533456322755740785991542828022909683128655752075900835287032322159237905152391972899594468236221201715957525416574285236226302585201863703979470658879152466038562600305306987897384012013242474500605222005593158935261635661798434148590215046193542174045756681399656669896690766576576140002529154322855295539435400919838200142587599219019651997910771790098132607365326098530949563019560139621734047794728508161857188228884062433636214795607999502936413604827803683232481161288836184128640182823490361543432859284610086057264597482304401645712885889112157222371745035026949295355447355667934870841101493263559533816125718484543108744254218536468143323556798051957273212063096301175762139776681837357960808212064622310058045007402251195980536011497942835318055298051668899295256038545288564021084157124269362324614128121219195297478676048746462425644902884189071356139679394000514967286485586378628193794943823323930991171095375162163480424834669999568854574567468928010935909405570492937088345425782172352429096476540108309736140755527988052382058073334503162237447188002120252168084557505815667629001042144508235965681905601728573651410029645294377702562294063323400212964165440989203330953924002926332801710838928360397928226715590792152798760907221407962580139429232896033061394559926366910755283083026846379506128594708293168876962119551505730842863991124744097790576602623318216922129204873771923780727833974453209057384306103444699781551879175440541471521060824022517233631325699637432996316252275712389047550330282054278707016143327096684474016270073673485371092119958686405764595527378048474151686733242656459366673760221282091719392533296546493602582848771170381236786509327261607712775859666849572964213009541718066731743559114356717014368619828648816284554942107023002062610194790802469954376243655883538216605631455194120814013148258046683158773227469103525563149398145057919463673084940153922091965301980088303850779480137970976434884655317160256719226698030530143354447454763831003900985273320205628083039549482127145628124269843580300065719723551549950468724800665261521936892846521414689182645090103274793677441130156706829474741512399792419008398883498790563194330238598986230592595960651760176839313960079350967068044165074976911146061678257843648793303926307465798848949386435889763722329366503309311690820022263081796530721451513886480503147853947013223657854191742480758510271488123976468109719635214016420229840713803473195088788716519794180418546205675557141775871591139914933673710434373223513680814982582752023567981515212696947761278746330434915491954784539231474838104885647431689990476338554144503808740158566366764407377630970503286937371869972108067712079446539594078737744860174153582775981924834639314221179452805986395586617479242890456725668845316157899703322832667033884138356436655332337352943778004869477736618106963454021367565116752139233306620948697494051263382804042364719460250133794771387105449678409621443146592261110504662950466388858168539943467009415655943962988892488257203543691008206513404000435750271539006705837909926554893480549080916498237337804732110572223048108545297219956098974314986911057838932605216989296552884523794290915215485362847488778577680998568754101592751979388139651126587235590214499311222296968409380987680296399088874328966973093228199435773183642985583464596023119323431418869291357505533351564923158640895649823873600223999096339223752052249177892996033633825306259575396668385286766799059536352802419799050170705130819839074795615535606915630534663319702958940458988352496746098258809755852240476875310684350579997421349347995983079327795207457829893458110682404764255448680375732701520427581928466564234655955560188419813804489251545702769817858631119010295085470117629775384708400713120125192337397204312173005538840926038190094776449247010025292881531401489775683795402496584884042107859300720391411368266642417149621800665811702945609257026509618231031438449344914995423911821439118734530206284059799421590097589571430386271403939013173342442491186320109619772540643109253643820042418729530742791456213584754339087374480633128801193738010962621276245633987532679880099384287041628815163550959858470049244711539918077708661261641308937596324584188719878817325964648403052454967163543162556540788193205474916076614123422764819679921679957662161920029080735800199649399781807966118668308404481604202785283098937864130757244515736829999251125866666611162477691647984343990841415805928995559589936655597323172840767646626700594572811821591902332521915121864531335781439757378684594678698202665535088231476913211817797065687650580346941449425419683394756927278950437449271013430905753209796953511616427542426454097262593083247843027630416081969203841372782760526658914497156310173420472880917424847044650113733315221323616124949222004983427438167890479226409309737739969941877748320533551248532272624318480498678161018222234007566152730253230050296713218206732679098714669986761515849644764705715411585939259563957933472236638131498913791332393935635222306174378599243468750192343477071991434701437023341018012214793044428487919646753019341117038458109329624677152182853219288753379560799229957303048837929811797204867070892765528813510736654532177250646776264625594832757706845046629106811358361747623908338941403939672532679238749139357550180269366216558288354453239552431473058900378404654224740137932566151964046791455340228916435681209724394517553159236192859434342440325483795214809938632790257264258041499688650019665479556844391822611161412936805245560008683198485721602973248976200037875641800126945074497744207959679256371881526661536165554744095996749801953083563319499400332719926689806313125339610896425902971836759932895622327390477951096873026883253517647494435279998121204098003260932208150980925080988313585198793721397515125662218478321962561074960494760418122135553088150518777017472279381892304571211596774000328249622454943888693987644284272887518400965398444796538112581907166745218153636455854931277727207235409442551939359299105207103989457866903184248516401454084873394899508438706116972836001644977958658600914246331373403078305297783950254688629098269561726081996647909266644897315301392503088282455547378843729547447188818906570969858889175025117549824638688727318902918522462458524936471069307311456470625386932218344192549968504401123278469860928647484811239642491961047640564178230722898066003511039467373411893507457924322673256516771160967419729815186184487542519377505052629757018969456701975705548995788368311547270297536581570577951590203670473087802584875784965630301450559585239932297592068695077441742381624122026044186183183993667232021575628481944420911476839319076040374127182759533158324466097542681920457423872450687908087961785675652358191891943463736642553564292151666772125720354425803290440694629783045993658391221097541106066963723076701190329737271781081093113271282599483709198513364693541202872877171396454934545086489862568184097000018920516983824763234220075030665345476528859171629994115383621345461941961152986575137982411142281527984641427446833110295492508641523580967541477406912947063527134454019490168472675013819203704306561368381395034251034641093275547856901754545839276474681711017613972163524200922778355837275444706161881780017368000722502034665564459720255281988448204540430016497095759873435196958777558731947454099477287136599200557151947965822101674326763677579478994291190777981423761502127338801737762583557841855754151687312710547192230576753318603053383288735786607026637909467243371892878790270463984339749576546336112626317317617216452085309445130815158196064490425962116547464896958548092645007519261845125562259029610530248309716481491788003664902338644769787171118609781413614355444390007643903952468547824202338554088477635522462726745819074532041963706348440772553503602302204519278961344915470673960060125742043996690526781634654988233777283067610960111681829144991509985959242523917239312623062090417678056992316385915807991626649262311719154767799355865889668619329517897652154952653715085345447573136461874602796627632779937673416990107192555102697340771172052786786757332076897626338286467752495794829971412702497628553446979294116167692063583470216843316213642470345323431787327874434867303412810365789442751103957616037995051320587887193030385438554605449989867298492493325683516825180721264077711961675952156124920780927575163094686523441908701054710698972778328148247134126579628870289433746751117825449949759891460324711194067955852053925618268125295935682707468950578267100730116396743366362630167114782141263752412197713164891951435028000770011109175240618358064907011680353291959811289340708891452988625288758566710943900719424082820757586548987215824574785988451917410772997244801390057766020927331627728873757078984188105568926635066428914001645917103504588771263118380372949899765489187671614971982575968266535476816212244298743805046885810257557356190444913424882469119376339985832740575710723422957989796299951581440915397470793098841973359806530815694716263694582950021258231966614160755212000142072180710569523061321146550431640320920102052999049232518777781377331639791215406177361163364816784396433984982536335340902462426775544779119606883269803363259005927964293149531729158461048239799586116541574359029585404982601998974246109622729910843646514085345244169673248256869183731504943436573997711073209325225105131971463272664734424411985975417574741666229499356433576586841979563626535387270272029884758506296774711861952802849653597374675101404658360432623177031248274012805180542481784434909381659815745342927604453578285855447420927321083636139636871634833260173738222628998642524444105757296512703737459988036329117444240594856740875567998511539568400537314353193550530479085648208953746819767206336581720848384015156434048573945957496283643863427762431498036310155386482736905946246731630460306775344071044060212348979596577187307001418135226291498244338669828049033927903263001833559330715351152096076850893508741569436399411773731284993209473925365910107808472126985101813159572953768128643511381028804617401564071301356865879330221847774753132757262328815454158364612556354626439165775255095440277184310339576979286674815872161978674236766201446916404234367288298655214346836827582614718159156967631553068122967174418112121685833811049863834584119741586231979734482077079560079049378073160498337896908499028796019873032761171549537436774199847196503669753027905998961312554136872116991606323984614839534287872563941531311741562334004312386963565556563154959665728835361098094927425374654239367767028409058956721653270939640234753945341995832501043487527554722062962586184560159579976991269279597057108735195988565362827489370793379169837073813730279382829190374839255570988337222251913938221494041626009915785204809384343804544256158779785322527995087382731464951418091248408839456184207978654098355130943157293547399886714417257276635183330147834566895148062349955287547750149029500064260421571662373436119219940196622199204905570039755950381392981495409990252353158726229169495107490879447942616593480832013066462386070305725785015160335153770859363276201080411088942695117243999589658215588757658124006187670619672648790396174280326446129980201034147243064013490083747226085067939406839750148176222663218996501881364395355775481621687315383833786219097149603359587063109925818817136098393654477584931345096257068418502321265874033511138519720742508777399064768699318408346277571403077872522575350782029208002470030781023593481767377850180315318509427541554933727051154804007786243642922631309553259041852602164304748629757356890594887869376013907398087043928604419394232415970190097821076760682160527993547971517916234386587413827075910023706814206730803891645221957920390642924236563926807683245873085245559828163854610704335464190803837395507520032518964575580694008421398471069979978668798220267648488249317456864078347840592713412950645086764806879444980683565794352034714944066993879056188889122324661071253305044613488902498865805237904680568809768458084781243327845328499531157152879827868447194136863419106273909440921664315218304879422466167992895505644811883454085717381755991364902984074062632864551922599301027000039209719890715718042189210793912379053742912278935522006709867057590379557743805308764311939234732906411034625575054464475090349101240667263226097739641095736498420637827018317331106097819721899162396726952142282380847406381686966435505760537943491516160586335515166477680532941977783079572701989744152167068527910877401571132581714650699093171656292528518294379953353588930652171814078313103586415957624825317078432448062118749917579793277832266103084177425536798168164785456794624561731925747020443698471042860459191807928946503346450436136581642694568363572969371891212150795356277350150707840025931347200743577587229788400228307227806534357860921679967731601820894430288096215545019178850427663852917882158083439764013071991691021964508267868462971639568726247395829316176532346917118262594017129505607895498366130187772928362914977382343464539392803857725477443587540000897705851452013291445975692178310765514128309327217507387090416605588113786692614043923363051615885696337660852273709211498876250361647522758288029895536353623816413795628110965960076657241734210374862046186321738623902263136344205974623397522843909007217397039653877450607599798149483545161751155910130509363114327443733174445266574986179118862507869329018483264506659108608708745505354306132290991360155996262423829330496148731796224218283534968018939019724081929966443085602860299050401965235009092203813277309852567321953254341459004049019299333191479652109930097562025090130067882687580781482642329558083695850505015393868136078175153624401662580641693379406707476506400860134763287132768999913931367389389728251564488058040683429424326322053611533882647699934407083008898562719600162590025258082135374659584918303743382184779105861169295380159283381952830550457250712320633351850448937667525355781786368192386816818700682825123475416064653548130526453726973304868990460760190580723279767340356600856725211534840345476484971253375234912531551140650189927054260746949721285494329269556925750621134908174455009271358242650927155877655987247424841518472517562570881353430137084327148231648604632270398112400274471878125890391080605591192490764673426820386065564101314540492785576219038177704943070852492999685065836253898742956370916404324854230723563339845687280365206338638251986856283931046147699983634613109450848154898264818617605381458019611427730451653323700416548407778611280038099204994491033703363162737232569256389365635632756995271151198757528592954785935408374396411995802328041393409566183127419155289122820160116081947198387836890297513144653882524709839402060170644298244228063047841332157388006063458841329236680167191320689178067357692866313314436384511502875394064265719435589393082675680236832551568530550203968582743763491264236367834249816683137308903421368853563033920256513593708794921595846467332348802829368033495556592695254115091912584997436199211990065808068172091860788134181635085454412050834988891571871841630699073755195661375659865605792677369694208263014278129900208515686815118725805768303320422249503103893690675813222956224962196513007525180527228985631330342916092180747767998050914527714551184337411302852439546530230694089825347563920558391735744633010213221997176190472908755666323880554591171309858317704667754211868111998483339316704213715659637010062452031084379009082996435323454171084513895192205949214426321173042678784164177006877133982981646552844378543530421032948011378175274815157961984847824669858276652904222977482050269797702495190365237980257779200198720197346776315859221042444821975200769665143600130722961269168554362141852424595629709508149298404743062347244046953178620738708433207029700226015356082593674433272183336919032246963632546287122137602542441761901330694030360572639620770646850246977861781721109303969475053264034690734700235972970950437518029602347554785813940281283554820566844043468460167591004136068192334277784141482264169790172017560074879849214973625258133029457949546636603041236260671782587700336275534740393158032108822485439853762567646357489928544471090131495615132875864101860868013326585405503334083573446156467317875681826482169879004455096426677733811818925814172106702565172205663005867991326451642312107149629202319507210214865603194065835907207150055099174496131214852639823379270752508887907822798096028353361329334580722263028091374317839259981963032512059553872792920212097340944301642467028472752659099556487603217126180650299722152191102039807179768468407270626699811241564564910149122651389664485619496672216096703035340496999169050871289809895224406215363018948777726911903095032442354002898737869453834039262451223020821295213283897434871662930513033048299861426508958720987592131621508890879331867394746450113314035452602140739085483568385508453958942468439106067884479228086282341912739182630375026763565440703877743139205844960431038918343407578226948116707937654436399831858418801125685622971290047435265887026785995684127812178422577832886728798804912043810770559564732933022050625130487478749764099324870152898528489369005579559346465797122635409646640956565534934171435395133260782377647055688957500713751740720986448577456083163181588264426167061525174670276040252731238868157776660178546614066635090243105111177561148497512171712601181513577589174640456537173630014406130304540782642187450263691180224195705207902972621609281916818444673964477597178161377844226926588381872125981219217463551841617161831650704311513167976218172024977105834621443036993539608443291503872736571806198190108558206018255850736452171103027368324892881172199891387671485323707982413763399050172762068523168175214238937450902427969460460522795028223778459721730166230309020130077099679035684464381393458302070466705432703221567860472090867976173491629079177403815571890058811936804429624316695865148823760218155432517963893392857480005321341369752212291660392474501673977212064879164660335534139700797241988967832732187884503401857734727365767970499296645335345929677181083276469376276202477257878654545282167435828710062075070157258989516248985891096640810557670464153006371301145325387122188946478123239916036364738574142037912041327812917124871750452894722492140638655727942853772073102564336866204394687536640532783946343078454937162005683772111125074536497847175282942772043606253342973724716510406024767768488750007076117545981627628220504073875310096973350335071752682179275579248785263078699868551495372372213477078768458656935652956247309472087137619793451600363493790394031010387399764101173199157901312342846822439563249030460911066994086673398539065369562141850992932448987474583380663064445619395155947541359795771714395739461093262038788503457598992704163088497468801311690038168423284093926047483161980138694121307394042425547919014370085031335678533789987986663569181754977525759649497913191826289313899162198829690154435014646760817728672340357073307015888387855160203399840823582908294239197194467897131821658932882009402257008364579747208441021479390823435743983515682760919778238109961207123276184073934746269294319412503476252094045829100650337371101371985205439230161826450414428266182001689482517334568432705778237518064069971925797405907431930566062976473545679184607122860866151192775820036434538171250023142949292625065622258793195435949499066826841142432956589623198077795577113014735339500384811120064986122322246500769797331569727713118231785398658580319099843266430605197967728115358137294162247593469130450992184369984567739333710247927767734963653400462235660264441723727582731579803602183693002512827904776688775668273875556836438501445292412500168465840387201940124868006977725050819269116971216505696700698214012753825045292575239178377848234681454931201255297455708915846677015376154346953643780060685148132458935836524491686212912351049903796219452156385802318490412227061321165249353592540249148630497225180273953269277611611277437313611621339404931485800616029684526264736678636691870012205586150459605281443124330935932297322767920015288996662924624530576870284059716602659732706778552177431102093004986776454089725255678383611898176742888149013294905928639187204770579033312271343678301518599199838106729951688033260623382745453233253069852269917378847315623123651264241560887854475875735455739206543451259568114826701015455269524603148042232454646918732923195094134460563019404727289576726365754821892058350209930726064403751814608255005966417889092007531656564905372392730476507961325798537155856496542524321564257856861807104266829910223115096427580283957486618978652654685420329772805693521523345967822687485723214450603497194746247322491950957923071459319518292960116036014276563461969981907883788844241765945121360915833883112867160663473151367345520550473784072620883869037144626058706319659020529707536117112454704258058312293844185104845442906244888383647894539944080757703073193654649493991900800231333520225295948518904164175903269044579946410109812762555406143166969460811206356018764500669213173515945711811527447094157312318808240706961416727132647269456056376923975576253892986611603728483115136353691342449112985363299729051490587665503554859019053155718240739288135400145916334712609454826380284084405526737552943151060256424716708416686752482868791897256974821580420607628116998913640987779272392270666935879114886548077719957905520411639682263366182443182077398856453973304999048012187617135133973497736352490886375772049235579099701958407488044091888225676597591454159302408811164627926311427744017952181526836692234138125057863764333040862089445644997096750004296139785216268468456601109689037066013994172546790861667483161346484119783145303555723031834019285611506395902759339603873234992553927828845348860891605729490313288807094630576572533907213620196882666750701516355032216330721882691840361834650819441876455854399472443314093057169718236921122457432653536167950203975384528567084732123820601830239369674103252619630857692250526849499024160662441453393357866299334339782554838378532904601150191303452954564400870572027442747677399676100268972660726484106849161254810068356681881640346346708964073781995642148460615760820584836702366148648305296000179910182573457141316497616624266873974337329230670137635776797717795708139346628748578719429376853023765827530679022704351140839468265625455593350132998175322686004782824660918872047940432228563737109781855790324436591190156287033197065026635594254100794111939598378713835219946442243878056824540399430871922278602471929692939683856525532801864429849472784431636954506913855964952274474177263493341870107150329484195437029772189255234578563062392976211042834337183666200212247967019182921709840990330345566404539104409771594218271469936457674591346215746126144632936103890327494355626394905244418840127392788086600182466292408708730610044016822746960276987603306552638992281350883015729464394972385243918324851792860631200829635193950731611663324893792515188804467121715391310033406137735681335261049947913791585268375343660489141388532771580433885963162961830486377581083517232270639537599041720716480683261084808736215078410157108727355714623663339925831990496520795184398906458710504078250631206170824864769838337593675747442806884411208702073608415086306014464411285813005714722804252665083499209671336733576077639054891964955662718977915091515305722126630111249771952228068164039436200445690397796483945487341695877058919688002701009116729717461512178308951589291872579864914479969595731829707535592775511663640969801202787016321148813112738937544847817365391770876858284216328321634502469596397564290283118126426121808660374771496675655022299433873415302968217838582530277830987590799460705987914807184971970221308142576744458421043279474910455219569382279824982432153648691582634837454964473297900544703394728959774158252917423062637766299248499491446266389251192160939995032239099464027745390124343978340443209647649668185616120196314178274589467349901265803828533162367444062557485304256516194191459471663648800067816750234300860077564926160563110323560253701033610540896599981672150040656878977782875212012402640985570499577234230461810309741856924819982263117190829196220245043205006537032776857370442881110828451324937839579762516328375519825526839144259014634805546647480580623494556082641194848000762168995630235625090891991503135062860848922885181983137604325506871867197785355400522521076260813001371787013947691702795883651889950011250570630718207779631349033078652551690495163741891520566897023241931415530301014801001292512597829667445468207884973628756493961852790281243838912575928974364558853324346594230292770704956824923312785207505389225367130481232759587034858049749715434652003520883002305745384930284902339571122747289954068122660640500468319944074055729092027073663360880295859160865591592230789834672782941387202799470758991450581040956794465886700905634772181081527508035196762580588566342013606368527082633191126651937043393468563587700323399816230382929393982721699864846885157402267708070274478988122884492164585858785196701654604827463572173455075697879816366052463687854202037319364703146370946160379536370044711117779583445477324397689941417124173850967244649381195580170378385440221909659014993205788541039484467593096740358278598514223573604435240330248878066101993822894966136123776143126187850400092657428569427234462267218676124147962881730023318172816863367358627394206058861539862241312079305365671958488730037646767602106447172359128719336713901880026604966484592742854280608792375697044995860392877592531017257596498081264459222274004215451116701693706756389308254707198262843700562344298788114106964394603733865905810374233500538162399551530331123279833803315504582330039632877481810472633077356288842677323850897760653981661620714873717661564002894397445278742102174873789208758330574338458035521516373748588237214776871223265600570457806040112327251708155246740580950698112335425969831223621971962186272107446395184043847222510268773681155912547086024054147324287650117495231533887159775468387893867770196707178638200304523179800867056954249062042813219508305478828378838502948838693318217335098658550665468291370719295787442684202135853617044398907069277981022908806856352710900920434445975853197912909049405004626969816512026546006584120419627149340408248748669804471815225608258259224268391825726001541244460846183926881036953256092067815261128811500067700593561761070518164336070273753724532845992474949594112532495119053811016342452893505374707355272349769790428170613822343022730126069549940278140295450782415714938390051178121907057316250335142817200456601129097733682406404008301866676210142274624770671392074634895757411263212976462564662703756286066994046086482211813265439217581262359375396024531369598254296962953054652139281807048261871777166696624536349853230831894502709039737147408109895557103639826719751214349014551653025091177142349774111402841191086727130775814004460553056265762548737674386960388596056348442244071846789510402924770806399378880583346964520188447292370298981507859233204542001978492183948050899192264180001262256454330927262141423407799676614042177636309618272172148434660014497349606751798633920980554435910471330953290988105442024974835261460724608561514617558570900640016809452020370130050764286049656257624354523331724140324688869373719433688255191702101599921979781341604585164213516351438105228768158572040498193151260286764100696875150772726636980474040612299164730879670748606834863253161136424726545977998244516395310699030899054432547082424024414660795262277164439630278308285989351475413166871317929011956000111631941337011761177248062501700512699567896214773928393830994046840196425348759270257797366606130409714271113031123655022198211914842131902637860720699145607830693685645022181214610529340952498838632741718938184301716990017035093249740095983186097253396634879293123189335131861417761123564975296263147839373664666075869735005787216392755930355179573244432749675629319142634222725824434714582684503536563891964903184132442343975615193472503605379140466472535438652744806925703359574731270775106152023096615902487847035860391044971879535415602815439500623469610769197180645632688085819602575265604891836595226306700212262446242627421845366573492211473926015438468238517588616754021165609497944808091901413137266517860714568353828954661767260565618797388971075984378088218406004523068352510571318672103436063338458725149736027644512080604306708491281430754604911323961437585624278138000514236644641535832867285836808794938926459018544317530470847906155117775583658238119557662196751584224447902700836394274114967506198166695814044843738488515196683581320704999224478802739212176241728431657553688008110609841831754531670022690409551363696677803237119214898440420580589449022920935905944317889323339726405832845597417785261352499668333350110154520004137578951105560927409614643328190729973956415464928588322002350075926951691803081607720805301630047836168415477720437347583184330895444255644079286863487529603133476411978558016223002196088852198067085501794437183022600572219665805310079234241287989844434835907623151567529326524296507818243588883648934561093455935544868952991062940030440247692963097282556245422855331131248537932353620409411716000853631577859473659425877316875017620907564652570879485761557734498677330896928600418501915606719071137644946992355137101476166320056562678453227978528968323685200049523211534900411593533655161049391140908603323160053103927957899797110225679729782700821470770269800085315634406297663146018654501778245400873548772435004851585668970168766867534543202940066001174412036390461388736550534834047059094895582860629730177033227533428166105939856253899991781206340386577864139681207786439944979894579812549696032781137921519764926806070135692255505979841419203937741038057859339527298610121011035027040454144444998947714480145305942762883896749143597371973880183936748110276492197840818067647564894760162885544935436434123874195553241373794122689865403333735112678800787384185061339619108311376305220490428248349171678306626338676482675847238401949728458509411865350717466097340601907664289451573025048141228852193643328330109651883792329020531188887139532241268622713864887096821714519053967604897291208930313949952376437095440797984103861547187805497880751368102001699882866056815608690194347700948529551650993665281119129013263596295472617041327512741351673764878724629418966710366762647187358519285122201587869030814958068437817175069882036942377619624178983677428293844815454625184631863392791939260890226227278657171350504578375810267656814555923300042590796516966187934530847409886156203900633556048670474839666223818469892412942993143103525935725016830235792537309023784608899124113480066526684198083265431914137215929425979486420806725489203751033388700128359601718273523421364868126163884852977931590495267795886492700713519014533448906017859702298842566331095743945266772296111865808529973955725300556219762395140435975263457534250376024012154203842651007133080803436014769957422766826084871630712059887566443403572508706000845782921091590744107722148226032079770570532773485735459255159800947064627064977769510538413753938892899270567921217279204578611157932281584629862412259847064170474659917563303913583729076220022157842177770958822020905282333352838082038127431756929561464809400046532195892188101135653467665805276146807349214614605299656756904182004640464567809800033444970962182274173693487778352270149143563839143968251177824929667179701388084188271286214113304652415417609667708420032861144462056399246564016632751722506551976071381220602456396498340277289435931570507231191082076468334378301412526840947498026391545618067671268223920451148324203540872648472413989761536527037272143189121434808612340850515286055544514198190987772026551178012620797246683999540821787987008070952015608762769842466380342700968930552962019370688979771984235748972215531261859776734455588490420143876181592248994492480710477985694712346678265910885344713470200551631359972395909140135135715311797368779260326419222691121126875666912950876077246286711817547898930373629564220510405950636277498469232202141156152343903970789509223118394076533363143104917368786790915522831606268842522470747985865109425389997079727531225816631152489595427313375469841621057426520515021456252416515062460619261889686239179277325642474603125108657496577112865325362137460091782701979212098385886818296701764311233596897449606605935612159383466054650468656674712548962373716164389899791112025915688236954972648765259730683641608433738453408436898229437959460318228319387141603510598228485153957752239821556443733571366075738107694939008331281359830341397275022873812044221218803817324612145181434200385594967095598046257747713727220210989107620191105093347020870907967436283932356260186137566959073262547887261093819947086124648877253283523407234901396405426064248902094808928784705211043472816347697765972013789334880265863322199400420567501765425797908069146727415766638428230875419479644027713084108191962602853844991676614947640317640146156908388877267657358827848959593154544721324220749314791251479501672057538926346455458227909716515704705557903361935140410982274616519978952185796123619460727151583819810079393989657215267974743178741443144001271220635064412634226913304912585581010279071112690695930323799831858667037943348246348497134242008906046844001465414274073343935223723354467549033542642298838082080865211066626291185773267145943655328971204499190875517156737174522482832409825675337815657135772588300751692727383492281067327088730591260028473543082715421404774295161087511945023608278360408782557639810761994953170602077119448852563180475501518739082885548597692814215793659551875264300398634573666650775542615266532979744920078057639379366636421702888409643455985569597786021205650382301674418860782058998966749360359929396182381051213781929422555237267458829147508744692938273522923329769721742028495964680883659837505048881193071276329088175026274393231001323063201768970464377861488603547332564730999002606462730822590759726163911445889516301397380523580123961969590958556359523174808190672472449527856729062102122832439272996462672019700345153493089379741040729607700919674242788400573240546614419029667692938084965968083106732499885985874264104792515421462293976650198313050379492923617598598123477812309132780127092172727456698963628661868282463937197954810713224545951428614078620162621356156776183684500082123269643319096599272590806174818809484147642175057531013328237775192239122648496382852381056157390335862881445728828130054387250388510812160320069296612771072661226507807349645932497624727354849979549841801662647283083423364412567010507825193433002323900048615989652871774911555448793100219002585577821110875080961797847546416927820069589678311999979014874913281705379977423439319109604898140509157042241359362363429238488739407928043930662842653666269712812555414311653040106796509449721311512699936845839429605447985646518617128786544748645188008061450672401359869116733378352187975416107412600152223012792478184242157816386379179677636931162171974445079880458523188337836553490158627650723725918418807697575638377028832935419998530657489731752143628457361450720029453424499556594777652146941932098609383363989997391119491740375776961294376907347953068975426293380003243754840846917381235934625928765853946013996337156520000248273559026447878289021981629653869319381063795874456398536851539182866754202587491997573685171900082141796842245419958033577208412195695487037875961209971154405984186856202776096212315592343339443052963281809568211457954991913481655973310865049995518233990083995442502080003189808898084296121716569184617616979716687626702356018590524036988493132023735650591817216874408783205482628763778099145435565196937287441731711166663148215203558348406484122839165055901883670968641280063318185344307150857727523834889876491629411639778453017323043759511972526911442687988420126206697949993681041505180863388077555571354249604517638362204833177878733318398112194575972275189470804302809676284968923634812948993475845031202785474456304736358310170992257363022052332600522524791122000835645350032179695145337186326462348761592898253420948131782596914826159665517833220082874144060341810733051007976533379700009662934303970267181327364959762150795784969088789591778719712505657070315055405998304842796211075940028706106837473910884504830790210058034448711875744827753220022164229773643204920614191089813022131976674079748811689771419482179447108914852305968292471213055682094875308104290538847365035749998610980301759186013278225750617075326195001611933741443472588233348428121654568804785324597876165148594464183388593326669032004852121075967061218776658420573011933982597614555952876927788384491652711619810480862676729361258798101062736114149239456618619230330931750150153078557375307475886188579664148130348360757289162149952031228556842934466481466509083870286613322500592556355274476379325019060383142201323773586555006012893815331510072505760123824618603587921722697169688785269884624765676252523761021099061226565140727017778349274955499575356988530742007879237639340843622607514346433082396128761355481141843957177451873887076817957488855290542622026306889321442747642429604194304446936079566608024529525101858609406745752501304869565491496718996970614052591546791013483379324286349274908693103314963102972595237115611824598613043886587178555978838886965433694106591489770849094464284499272749354296936236955011745164077971691654905808917735345339568868899443168891385202846053708178583606998439482602256374756526797293323659765615989041580255915123648496556039261187708828164817083054625055483762329591660526815448114678707977509018752047175877497825802048353840326474865745380878395659401232566394700254524974201358089355216860725727465155000295000368387591325309200472889584074917414571131804868486523337982857691055193464573603568867960174280568706441189719345170489866115820957930824550696759469257345874071693260667049013545011595295146646737599188325101292637909159570730625087800979579517804198406721117653112221170973544315116121767652975013521259830008307435558239659801561973779006198291716552679347886106185892210881032868626191262529626586658531539832742652815070231022831889333674889514600681777455091370606219407167099401920582831421523895835926709153105573631421952752903780315709081394402549212791268413328104185889425654270492229474806054664039476946716403905287929915480840100540944046469852300959204385621101926086017456599559556496515723143633440622280595795801923527944168835873137873205915694092796634528932576801201547513000222670615373607825500801745797345032270252154341811403800664657237398346313861337151055906117016904744174553115334893020235953588688641210458107303752162777907976098979495750373981779532512765080137885040116904472098850484445218797295836837530322637698909004015859617545248953326614181182383190476575143249406330874662363343760750137655016260724966991203501773322147562756677699064393589349249035598266889473909549905930279607522521301361241470758438780451727065114744000227147927874078047811535546387017879782940161370257333427464856022486268289135686707164077161424671917651749174927056973717868780747894500782955731079239872500955199806705836975074377214567980758559269667160413747144042512529783613664313144934210553106827898559325587460342058765382033647992153891420081009970393317436069899162352579011815234679391160042067747614286831794461808035348333320942335669482789961047434794142344500837503822032072896378545313843311641092999796026230880344181499137187378865018314167454538179732396889352531825976944465240541060395315777849436752768135605688617281753816256467379334023424243561193671010787463627622970636574714059259800062449672845425021253113293993415670569998730668985408825816718415406873657236492677253478739280613367298111006836617246569087735433463586462079922416836281747012078778353625432857642346731281012881342318972035396601617142071523036883772109274798500433977983208221554304419096550421548193886110648106387288569822891210184154452680533918494770063810896299957006153565386746882528123808605558525958858867005338491779674102672216282810564875756410828325686193055617738226946876480087296926953684442081787023140093135344549988467113544226453504117350645477405001788630430063941844769826897829140543347761490269579266177829265990637105242936339827963063725662243487097673473333961072137121007111183368212980386747050098026373652524640300270769732424738530821779842126819192611740662378186233774403564264431170553072906850843732557718703483334792383869638519978674287579598423388513459276378209588479962239278006128056366971038954736059581000203737568826215834827972751909957554297495181098600785842044678676748676186227297086636940768845893226207627141233952665347501638802887945089391164797696610435804161404100912300830899136899709317059346238729672623059459003697543177423555481544334373685329270986980656738791663240730318707155559470533614182388303283998709091956875992910204761158497250052820065551914987172357572518335405505858528877999180108958409279448946180466760673154578002326703843989381854780203780245974150104700153046372178614978252943573390897751064677214809451739061154284716270096817413174712153334888882453498514185359841488858772991386113180958779675135519272725133035934093138331075871731360151568979590798815807583129871345542059951354582115999052000732938640347038435924853602805611062147375453729991428873005976922228271547753059903131652262361844385066388888372752751295956648138939270761558739577025056983672798758724298150309354694385723857828954308422657062165076236139404906424346718599970607428473433260308572827161966446852539200346499672603633878135978399962128493401031866773904411947953632475529019346042212970025704824695945036775247703043203096397380458680320589504236768080334285043156284383388177919690671375570778508897956688506664207106191503178073706536397796563078461949299667402564653277087967903233902573603660108675637032561441901270699518780668061046253097749601184102818561268098092532465315714796018062114086849256668980499572986497265018673996650504154978942970628356403593566160766797742701606070102094838495355755265930910853696868045869086284445683554094153547324001962828687029643370779055648624734167804559358522377341066881884076831006667576151221542334190767524041321259489041156551159020988858131982542014842817146820769521372838137447973313875952892991772375600698241279037580250737487431859766703637558728848676896200590412363275036807164174784557028533093899844581385300682852412112372666800959273492132675452173617670238775365607972100277220799343014636402123792713905255367443914611795685520688642372368602547036430667963629249304084423709277719862894488166727833507770947678256082863848289263574183903718485679892482711419734880373211697610005534379283857510849033429243600768725714417316329336083609133721145192335615196246781152051871840997222152039922743355530736464307648604429606927133603745921566704860997134564927809193534927438337822235666131297177832120109805407537264622087337549117100778814112860291730626493859162367468022073923970843432514351892402255650777699207386086624129677178144810265905902941046854786022785537065021189777503758559563171046836534005501857834013968155433945722220931499443852142702575201258797560530046933902760532881069406930124526718173891155809001681097319593804991747152633029524600032408858777211885882796416880445034940132544258485921137628418473539976885227709476278427772338971552941232144944576331884140325602316442881156119126752089738397802333442296640721633351702445645415566836229652748006706970489271813052356666156678220113178015849820785289104030335990817745465220057908539703090568388711546935320813663665055442656547645940302241908628442451537056925253207440551294622307865883880525323615035336789660331053636485097638388343586184850787891671519861159724579023414417861001491661148221772490632363116499377583480579505052153845598525915474225192960987989651553964640486767068144251640691307294168580500765208682903356656961924566153322934224815676843393127195320507392747246606303642413340726522792300778918141773704683316102165901636878661309644045183515664348195297368503314435248019098225544246816111619649422071314989747057775295224694819612331432061922657960856841216594494681322676711857486455378306368888663543282737933253779983228839312422534979315993520492338300875381885364977326344099534147999212503083426643351198335345340484369519998452809984080517972908207232882652891938201891425208508820196748515154184012886296941609981052161298287429818963232035316844261645223830077707572239956936336709431009770282978762346752581331538919506996741862194604060831861418376737966210216990559415102288972962800210403861194726480960286998794658084478040855775466237820718348308046954287192054586623820325921532058697619161666556765248461496247918775011267010116457403098809106854351627728869938949872565638816244542774462745135106997161871269271838757206974497033456640150775118461519392937626094749838580083848220705977734002695079551370866032615892597491040309908214259740621525360700585137901070312175110609804615178943655402542579241734445798900802929536180940994517025971331167083573525454227352223192261396026072204461974439612841228720353930178833145163096725349825230408999229198680277711367383193333609555028071400170326900737373177835193046578530830428034004470898677548859737511704970354561138028860914331284432180937319820046234942660887054772627342119310959296815847628918410880173247240333484174688865456549963211208672344678722718848957551027456905669585275465912148185391170889608644989977191586854814334004084885402758778328551619276280876374464051878100520399702998606126280011148465045731588992232336243727668811956000949989071621640656240733558132840462657416463765121775016413105830610716266870037914844173430117415957017561340761963210470615040560492619114952822979621525259365239430687474552217595691568742208121925912143341327524450920179730275548863071988425917021291204717052143223102236992434812011639112096143372946164303666013053940014892816720438052843580014937789710315331368538196471349870804046760556163866078633315801700678994369920581492723192442303008175362455179312201473214835232455109445616784352646962500877968111521905941968820217008491625203393429623675531972094530464437294539883361298916552768297681488447300273139298870004354441282418794840778468146384019589492703955784523478227072016964017024301291328216041545545787561283393381697935141926414428156234761354682054379880630582234815834839626534262151626066343062009600443539597743776271300700559973260647912263440506596208463019065763848085123731213413845485895401549910081028737007402295308635203628634234313994601718954324023191693937224369736345248568310859484904918744393583821778535978514254754465322408966142546609651338939523708932130874278306293701204937864976132735874141039984644276397719012309298687953543833444748055528300239209568424311332871275382080032474205806210785974553543898852970136213448535549725963691359546168336621717384954034480426626958126059425323757945092902327673079593663921857989210265258615787787154928352612996650021070282956827139220023745828008260996641151598422266852651832490859655993689822762125466118529332713505269067087653359525904596317480757469578507193296838902147133393586823319203184787490166648632381398595753395273161248783829847269413914244910130766620466450261785710454436134290590330657109176064952528818530533770960671161925053883092918635191948549225825543410111957033335134273591630258417150124040236014230903974396219837752412223776419247402794151054061985693321882636114939808729032623711239776450582173676903740889012105324895788844766367133934303048481398452928644754580911053263760985950521948988562962110200854471045513264315598851970636810978365126070408726776594516059892584432923721958547599190751942450361635363530984695398540373823703150024736891946057651485327434555187124432400320465903254940984931900226008541182078202232455060085665202750566642873961608792064373071718917251316680624805717912050049786528412319871302985625243407677979608582626328522270104752335885604539300971586141607633001635981580348235331098414495544237003779546932177076614217388804067768046617703531561364401373515469252435189235050610143553953822221078554736887771112180072567965222386698865328456673827518875700644672470188913553420156314648127705027569607698337484556924622605048677511508148327801552418051539548229947595956302322457775389355064617210369222308722694000713818434978470216440391235264632303760692946567664257589076611538015916494793111719058308020492562195021263712222913963905575940028731859056857141054184129643781095480010254737452104559194539693782483077511022686958582788641421640208215026019478944868355564382447184661163528936323568973314583932793992509809321646650727076692868308303369703191503378102621776149179879478561566237773047168415429007043731971626913214153554607109164647024640058199644947517689569100390088758303601311416594691222932276536410809454613995626194712824784053680430622023835335314782974260018835138532940972398196955969225360068395805329378070698658900331397449405694188142084483273586679117489405860582825454305099043026576257809579055695738764636076079824252473598223504900553718413665735800742510768340495671471297253215257869523980764029467963259463451656828232335299109134180235553535236741467312353989159886103975230056522764293291193160319620899683487541754894687813675470748820584740463542489196410021715139287584765891423120698073238765881418875323260973233395918037421455980009300861848026367473085923332722964973626840938378899251126894132795115810452805444343005702822875147908830271216651237392051401123234656347812854565444944269581947858346520761768267010452655607912228773697823506537301448309672354802284809062444326553836969162815961383740681153049283554099134578491510525949242329439471871935932839874983527716184181517750578578094113810983791981451029429127080524809817775023561111284977567595703645683512785135768188096086544731328268101057937581140213174335516726226909459165996017504639201199276036251116492751106295725417862726860600181571288064007227369985127482253190365532104729059733849289240645491452712286252388219499005885182923341934045153007587064673054341527003947174242713196610002325976666771982162047105602413361799659536852376305355205727181451759807524169255534401345348173868647333884039607473692771162934924080318014253114583826555736221043885863350436959661926431718123881915260822998249520536961598572942762232055688780033872122867393572363115778894163678754256939437815401380580348692443829327582277211082506240421890900853378323045598027898012124690826494702972730398457979420908656706995842014648560145337201428150199777364142156141635190707002350045090211000976365327817217276257121867715447939244031179691216707170007630178689205513701473537122824483570904804747866549250487030825203661662953832195022976136256985629187185891932348670066838280070656097548528053080689813866343663257095452870048680923788820198858187437514657409195607195634443003085435272980025918958158151140105308126915525765317803163102996512450383206753177298983249541044213004250467838120630486668730896738840678047534996225696564871123928122135180021472744262385127375391970984284767851448344405674204229096772135504138109172766082521756487183338249488878919393067497125414286186816359674357325642331983929510581769334681882598063192712688740912521831178108962466715657560192028932972363707157717055905573675000504222925257139188534179183133806416839045366908465017118636577941945865919664750457788534425417587310180531590824746587890519559177460730424224167898331288633384929486949123691041565628435873835409383485184157500146305522734503171719612186625944738246378284323128454347874566379063795729561610747914640952638578808138183078155270104557888509568122536857511483487651640469364040651224967773869169682209562774357580833152345857948056959058564079008629553448305193761202238082826934252450557738407880353141118055255957169253241975330722431383907586183633588863241196560407310804756924027727934687490237912922920749422203701123469734764451942704727445257955621199575417245097351892185340944318374605931631071478283835303278030519920673401290786420244781945907510381208040829569349348804296240460807043440324179195091284038309138311560884145783326039318209169651366926359359136354855420602597222517377899734122050774358172045844523123823702165066194800153940218554304423605984917202029735830693431481175384767465441450040297913940442210942493107165054966856989811667035365306221680821521475013925012004894159607981647829274584238754892128001791635804424935177150000459425390359828985462632737833057490806440446043245724693157729409062810588064771268566943358760336849446413017061761433959217691660754735882951822640169354000843772101730458015687284855662947450313426048140300552678154008833704631544611603459412148224621983430384271011946497588308649870816599674547825501385862487776900688808186962518051800874132016155859077553278652928340008338892306578162228279321962536774780087023395285277452615036660081332424468245579466451280893167211185243062061104767680376349422578293518459377635362003967071137391024144843266324417825168978871461410081895983995573516973170909304106099357375255479392920440398316813922999436511914178937707929352920532624402606557448374198523143428579814163091988013821618270177695132834842928663114861857887857393935972338859748234594223027768391860359349081497393826292800028102574143716054617571451946711639705760333920907918293613603108854586002128869209755912561589557935556948918875335843072993759421137709586589460891663756797254489742390039371954433533343008904999595667811078353630383030338373763573589825133270163830034700312592811849215226802561941553680639736768199643579630653129349473817761640103913238708592345782142082535766109008986302063319224189966995937395164566021955000982492672578019911077989868163356863309310210463658186142858325758289745510014924693434239048399797265077760498894864347963649487831358496734951850453857809126210083638978363575195328041728892240971552398561284180805127582319550631064459328792207144168168341902802183868054004919913572356355422146014823756071438374151832694034840789045161762885591355084222947690939377514816896006160561145603463130176971501629363982880490429604259211834815331770332279810722871025228153363265296570240437004448746438267088879037871120647004819105221644311086487938198598044167338890523868448781408286914202916839190839290175312468644490472623672950690716128358191008361551465789977782002461887873835121331665669896983662291406935276265778678802695039397618402195533915707231376871569873518802150334896302205243294052943420978551550453972626133135067658590522559999206697905412122880171046065533793484597457123294110752851208274917842401266842221456528115136006253989702624815415234413545575192469047379994865980824807136604500727108332937344470557097808965858859501918741748553500292778893554458962543706442111126451962151222440440871919695160295180088153645220501504639959065760637938877767516639991106724031075839497565089633061643970731641886874404734872456030752388428303544918275052094620265127774699840461405359332600471905314380411864130585829911020037064452280228873349556557147990621630817878835753694683257586577147142965002628831025948807804939566204877758057007416751055793433205011547150778294582263718628347841739384454913479546625044697894578011462222405519483325865822542156252959752233093803838812006692808175445214981384785760825978958570081284031250288545800484154441386332223150257382886915808640690238838169930902578025831738872618050480878296636177687875937682415262791066165111531945049423225426048352887702953597197370940995027696359198131533385017198253686338470044689417312649176670843296888705879107021994368509513312195894138205871540004734280504810047570131811142431437694665294214796654044210074225940484198113907622554181449493746814116132055887253789045026448464384002843773316172071553242689642076661960357509328734946619543402564522155103150256551894262629485807645364481730794266844330983993244003251376278865608963862159094696195325870253163869204782269096772675454908482411037365394399011317592540369767140495374982774145232974252676444441910627152915183880568336726777007206212076714188930148243281381671805043005400149247953079722254827599128093596051606969134502561136766978192411524805525080118098022614683240894583633484530429171883070264134525508900713225619430408610464649054852074252035178399868560741716207401550318665322305754496326973650882738923946168088524947724679466544337200624648241308470692005844629413929589316399337327957072858230846468861774518407898475931701687588870696739621492068889128618349749478782576514491849761011750364036091647150020494691628836683202295156983598795162048392763292682579826342317709484020843412874095102243369071905111885763159176497664761158438505434355426550933571143620760400934697371670935925922530253185126811430263386177510581313669731946717134844062872529451354032606249532492512803739795045452518380050384269070673830772342233174643365229213204687091826969713884406690258065628190452207622351624096753961166567646373536906933994887566992864841009026496173425150620920988696278288421938970422696890435363762885747623946702829156150254532094675882747505236250639804424425481631681890747321105968308955006091156092016184762431906284696167163846043485208881922040309664578619184516375912818909704501377147044408577897600307583966376697579134293284760025500451037756516381018767042568539710955285771769011986369064403364596770752326047593984433307313808169142987556604629313805404990624248564107622387321031362493953134303543807884492809192562063927743538129045075754402998886664323452235723176955573991278750677212811028825871512102576132231059287440176903308413091696269333450584291811152898325773309551717521206279843384549964479142434418295355526211770786004379765140093274730530432270175215245628033230061587360569427493423390714910139103254620394814861280043175496289521303368887099716362000255896328236162973910326164671542383088827248760512134035128590049470003440977245897423509350177273657783810539846621068262176484292769362067072414566897732276892391460281651332575482255979203237052454184427816471381438164113426373173534520895452952924080120308719078983221272242731220882662941346647034641148247214718424480302625306656495927788860331164523602032713759642039570768277255092480972662626165324130044005805284314928088860392785286275348629202210905830973537130309607482526558107009526585475547385290465220297704430039216243016141237201352341604250187138754066143686028429151597453314010878199589414209486203602388968555481329054965411701670204968804177670302438603839973674824267881997960250082765425550546459584158667947719333901502141775336125970941835400223148905463741433901241264365094437686635715765397169316107173798595346116086213606467009360472849251256480021492584718578924242485241789473379020278592432974377413408349303317020183891251604033262913955537357723830111491550384637212792024699359573914011652026262724665282446244097322126725622679324792269358659216771907197788578729102680963358661441640161548852029021057029817648118880135111374221181938867006237275313532750419662095500649797460154346551195115310612865030030130376176679347619808902273844685591871203212519373455795550339027644717320472948120314924498363424997918285136708848383429231216472094914942514775340592788729926971397210426461548366931926046682970307303995109470553487773888170470417006309601437330105920733471072474766167955390141792141712267638652265733109809208306830026167926451752652325676951624992489835103127088004034402793493438769095953200741720770166741996648730181469615942904241162113186200852578438234873772133003610820925042362219354581143643184798257856615956936235843169687755522883458670600415138456116895266545517976649310472280144144909165365000086358346839958171484801041516330611388567224402311955620739789225377972469839682129171720721546604074778507269365432760178856428340489123620301878804823431470215630226028293337123838145217641864336004130337669408112103946426010491229567182057408060057057794890264718622499021943324710415394803889761226751452669945037597213684078791971656972153458319791032152453005087792052646513358068896978490197081203417552593670288585946590305736431240757466891181791555705032590545195379957064021403373658408147575232910064325758123956023664969213663763684192150904482070304572466205752334681873511905886592458219511853963949030255803418489033991026127695400905725955621942278462557131829510545043102607461790530609301390876962521515761344396277928141767159030459200515202628008772317730194848715819209015501602633527651540465364326636280933587701368338170914947623829673900530032867679116094428713643185788222568581677657130017675417057370876606296910774872966597591806849315263850523742208358596687712162696354916830527628362873503546101902144092477134717232999261263898147286062267215402267239703651967706268711413843827461939286964322541303595089962938289908715254588367115308303058672209348758959261162736169310186886323027579030940736849388112409337218141016680423079111666798398504540560708180814603369142814061106112003360378448025330855494961161674376862851006772129157448194687501480127932919479604207590460518992665893112341458139210355472542430385756859433435947441995908724891832619170359058111143472125919789228064492663496287574634269795814132069822839998945711470523856059958066649941157941385202741751116755669129660358617152245095289670635214187593303755537128800887411704553257537830533189872336900020418339812761753362709640450323612491308163162783848500475960171884843513333697644509264590879290419585794657467112050760348472226699772038893784710851925795344695658127858776764267280857032606012246316063958372073300601288932011107081145378662215095376295617200646222549432473078722541785089918509541825595370231739797517848916915787534804752944759370526253872391166103254263806418271567224704660657219229356637001198892951204514785530201193144231039400208229458246571333242219792664163170889748925731837919838485030391657353875818807377335123053133539785969688953661659652963289459107531472114067863319901170009329474903426766972166930315077011356710060835058745935359498469782045123554602311386674509175088765109485818277429880873434808271353332409251102807595903804630846696891901762302987145064854169102995550468558651616548916963044404425439139882498861871636804478256792140014823738884714366209945398142953957306963414898751036086158237406401752401470905800571778464149413042589469863798187685541074384937696724982550704970119800033768361229357609964475287515035315294920261202662606685207068954914488098224661733152140446633346443578260116469691855665201610342293142469293587094811491061962943166194444574623035749874382802342086274846721512335309513869734987158082367492384723404014882999513539922550543800626396660791226657155847113406919945802954519644784485442071080986519981872203042001630497474707161074300140767607131540352716556226971593629855140296335661594957578243892939087058112189007822586850347111405092817629871506482731495644820706827518968655786473173410962580872504134756426493694967502162296303540699318103733376091377004724208211988582125468821254832901172533748306374801389846882655638401649399221706729811408351288059302121863238202478874784486851157173016326967537498834006716101447322526596792616398174772926600888231409576148363128062734468530400354877674353795653182742048181248845140299995367606961618883261958609697421188381722714619060710185880947825074037984742568186965540512211929631673920243758819714066753839147932424038397908400848396768357450386919594623395245627855638603413744048036496877227308241495236388895951422970517257273885722919242494445256300554717781932656475361100790053203837578816748937167204195679686317966003432345365934846842679324678872661097948366639825667128238532855450203010487304498611095576099091984851180428200865650487970337628225739497570905787852521601751613628290693908263003786885224317877154389893040861989862566651014405139214696998902306251074922340012724360785802561940263019880499389237822567317341582574117605884865230284133998514372711833139966282716289404998234738955458922127731414614741238376212806817008668764773836369971936295836435855521677077886770915726371131216263289305401097196195285518474843605060396549630226136803282029859736333243661696186399166498510972265667936028500189178215422344031875735875537427286629137868526194503221095861603823361577655603343057507201988341461463356350777327160388911939198250788477751632528939446285495632843563971346850563999857624781664571038575556727856660410106442597440695291872621631547223303464558030038790051279558185361698686184918756483180276678545664328739543121116985558942195116651184709779698593370350983567867272017054555570489652580126260403578657403305958534634240588374991910047958426072744186361417131763554332983929646710303233211583692991305693899305674210559322007439006962936261658713012804804755622057696664959988099482792578264689177121309488536069221909019950847568902903396846182068868532356650638248072588456303089940678115753024088924426686667057586727042235281069369601552297436883638035178878569511485439744683131889727486995862092105004872023836585592616551337850485364925784398587309039400969883125118578891617329897381265522347551290675422286720084462207242705291740715457306375651875650064059739973160716298710992344993568460500506119678217154583720700443904142371668247202671623328173088918494872858853458220582747581719331893716331444508597510117305604572216576158283360511480986055067036248937540773691605030711343351209331844520353705271696277305861452350732182281296644669398420978965539833561066916729456242728600068061308981834191769491945681878185228902833067190591049748153238918032552301223375830649086171330746567899369962477567898524298758364701112068036025866598874036706198930785467733995960783630937903523147775827186904379270183822122343506407381196111777825980936360513598863590639203637923709723228071480124948547121134162458751930930140523111033761156128711762434018350970804660479038605752682227876217977433150362455606010104652803523049867051090294301686052292925929256850431084275006253858342467833002033799410271291528465091374955348549516722880249258884186558422554094466734792089933193851892561931643900995483015038707907867229744829841272361186610990995462992792685766866965067734968874396495700803394835224630555330313984581247522425887309740906490268736459488466872171885788786912551631294535718954837676527261601829301660771859203342258539709889025895906470123581607741966771717249553359945956812668321480594435906278043869038752242649971389742868225260505509294382827853162027546372075706735490444764098856844773142883431255683867479690498052558720436866716236749127380354858046954269429888039849099170110484979261864399069090511318127678682334316971260978965040373230465186578027858447743668135062644618119763286778522177982792227709287256857426276005434759509123451453776752094010522998905315841907923878050098104857276989957979064030459864883937917645581518263613949189970180578360680108827460158910985586070435059274535322238522017169194338152608792900499542763114292908088054556470980998260825211225712536255331330386347405116804946756281092332575542262887558733333222735617232358450307041661391368228115792712780297497458887154241253220905586729239920426751203432981289733193101858881933667057433261956091525587331817495461048543036622878704681546666720389730167807305735668026467459698639934085341408316368169028543873131462750552185377436161889703797145381208223617289597935847848288052243582339888090768536055037269780681027396955317866047259615079781660329125857605779383097156207779883833840632798918613634802530125000485959981993225690960937567452983249680975754665859203866213885883568523405627541154352482486230721462610570174389304511874886924893255945709348545602140201152677187527392581392073153060790027610637976841269639967961660376203673943786473038758232471837090709557278225861946987685099431793301434653095165654299196337979534032176530229859645295763546980560733494109328370121801298464189322614418585406754445058286463919770138566162112225003698535563008201623840026621239268579468199317024575830398253152429347816570957042104386278557664160349557590794121421420754622046196689410793330449364102711458475382073590256323200231452054491441722476739012995719142106877306808653283751441537869902218495140117030182153822939353298197928454605142463391471995159264565373458085679802189711071267864163463007626122647471201979127080892193962908636971666857199018701222672244395128281898954166809970467083003735011120750295726927870942623975768515198026071429254758076793105498953559883557582672457282051415698360083620444409878357616573958349899934134708958966336899719507091798573654236638595266862515019983247917185797381774101075312812272459152192671225725919943665524146598848602933854288503422769504832205463835440452961592155999958696592071075966764886704958701371110950907591193276751747884053894057864454335885083464092334015341618693298735329690540588272360701556606401867466005574048342552787162903980550989461371460466011967123392315591153839340345362955358118552785133435993974002516226454555419100027937993536059221906724300777077536440064399205291790248432705407329811744480888560401744648053654251320951452913502771566004512127221353872538910380742148108495321092762571188023475998221266391539717197691170936810412356363435601299831219467438957300678421520128733828031001996460825980808283455224514830590392553766240596895591327344776648434190408974457545607417312013580275324431455533404324396648926801669347964707916227808391103844407014201950811074011179796747058003815906517284318126050698746676128457639332684060889460543627020206410359917107690849051610260720797417323181377737433164930896102514465415100626183475024122467297216887857028776558872973570122958588731718978329965803137976769994847244011689751135979324904349044944634392315854824589326102335460829591731539342804669650241986215102347016140316048955818214275949947266922158572528604159183627572674649009037929942013298051615895276651091762137829562261344274761866188339039576103814894290383788396351751829178739651095506517410751924863555552432598293041598193830509581794434644559857085602159360279102670118011279886414461694195843311661647190223548828145739810476200713310591159090750412679126363098094930822803295296222409211082229642999114889021439450002988182348817212852050316025916087943053848248002277907059302500918183273376666064963860061081806639770381769402157157512452704013857137487332398354940068103266841820772351635021095289160458053810743842286721143630806472122437290375189602716749463059278750788953113269223818380644210985129014442855517878646723317101785890877852143937358388912663272446288161447405536263848275388765227762298283975243482205407186939529431257848081678698506973644408156846302457454769407924973054505531435878635640611119336355799768544724415416905549721048000866215185143745096484484736435464635898726054634273359364385668309500202321245358789544749514329989658421821023199897363812845699273542149457724942129060784621236773363136373913338427204962802180039910291451589185203489147733646688138772357434529347703047565181611319050488789715305081274979464948817564471915483641744690898421554039300292062002331764853640230399695974837218700326637357788021061557225433126733893700334240881961207434673321576837096375083842959167470506418826656579710927121238227314790067071601282135893256485404829764564198052251539910695098398652079150657816959367168258776963591356621560239777049800488537363659404908522037724583897423464717459829014859536492643143472115719206535237280894128829139941689580583159752134147461403513711468537573968692811269911692487953881463616707689324895855512673328128288271885293590666947515734807348027015175482529701956869152689730230323357205249921196078501604713813303146806220163276805262466280338513706816321274285353981518368232650859302246374152750740456232798709980372730533259352330396287420988709135432177596379622695072083343855083028159960317759313955899582657271749720582816850774445324740136134933062935969215094011231288199184326875420791677942159516992205957073450888148722236079634972229889069354973827217334818091401708251797188051899914400762433949487307278325155317204914294426025188887399594450994076880858830960089888165558485659988929471145656956575086626834387471576366278102221718478050467142876959917856755678041023289796304776999730292029666798907063430509199763130234605510572136896883307593260346233633957912677556815770754307709722882472529939204341457651080485568377799169149029090520735464042490979637200166422355834783972276990112381528544773301912114524939312935860117162940321539389197171783056977803145877412574937473758240254781069693495654797182313064841986104309135093785261712856684006007748467556554859012465773499550099528508787934171512970629979843796348513803358583095394704490513976110925472130158047159249433013391224855121691445369584654602245550377320191383235656651156370291921408548533634573949442725619599712178259319432567547991579627606653348242360328588130366954087140745538017568611068514375701699342787747531178542900703860439012244651508006406118651826621139653635589701063161059532583664425620188835646647529270480406398403158941735977790934259778027077120506214655407160449262721339536969071634421142484512298488089815952821722129138855723064141844126051125707157403992527557004456547218763611821256047457743150780704552078514765802346326604318834621915418833678819619189354526355064954530525006552292586019342332257465579069543776743497580220440428702052077013129124768144721924380733577208006976105596946713238803437895567922179846079603181931020416314461681335099209084855251338450767564762799319009829282756901345999997931886708745646363747938577213118230630366594183770858342043986907214948583293913074249680731285269208841755795958524013135530732680748363467558679869935603542201364814664941820237899823955287856058558651098450777774210917958876946598337660493119785607117996909019267358540169407318497545428230678953020807053626051420411422534335047566669749456869071079769889565746367608126633421332459228212320858782316614172053492534062976594408333225502391371184015919219028823657361361475323463707068805139217848962197851440316293516628451178714262567217072156479412825121496268182793721817437687155440411129679107009294523541286075970917941711848872333655975814433014547303955589264933074244322576686645558349398787063882222684219958320211251057357954294981422304730314199112729322345987852234799665386973490938778044881982183934254166800197090892625203304965619178530480255353460329070697025362953507373512920619022020813183534061490345339896834987165084630884909655534628998944716017853063779664333116625926082808540104929736486057254480277799188125145779080247265967906068850255603137594186353764650996755176164519549722070801500853998507311460659839104793553599056358300963621523979890853399956485791251162864163486384532485884418225092470088248890658384344983600080765355192125830374008817730352633235533513669587430523797267002219487748647877582541219273710212627231502086402927991494811365690378537411370811240006325529185921563141721627562158119173595908266876266900967303253929702557693775905280225629485866230725140913516440230172361174921216833646683483960655248517678970582713022835627667386171962978316251339106910305134330256349632505358463742301198069708966372549495569254870548446124427051823398758940957269234830637329483904904257456440723313374866833919222507929555758451473666257758094038116834080155979960251499907545627144464860932720538589766365319223009546551957998211424994809409942417650435666706032547894824770861414710560519925763155230879512141327188293140993717081358518988594339717173413366511160466793906215629203504214185560692500276701097806937990049373197819065435517413457557450365790422919127888402003717863860770876695513665434452783936332756720868496889880830104913995065457328080146315465301243036767537232722375046224433581436603858900043568285658142680022303521874037081128539940308917818890625292843944995761082329008939715909454016368418842184276746573145631759229695753589257816041762997869105335004467833915717638706655725363744388831494956237345590186261787107467935411390313871217138808138444049322846665834209545224952448945380742532917191642069745312010255062789680152972080445773694895345148197274215281026399179421305059902456613950345980393664405280598969621331435746289226077705664811031472250667801133868366036762612304402994903908774047051006789890517303562878472999562521454491583054395694364788979717257368018043206285063057147224784901101322170927545146078192910539203028526353800295039040128880878205955266477303656633318295590106158716035440140136591197588055691926752145064248465695582025320007977513831700820648504938685318721294783054129346056304970632745236394742168392305219842771104245898103667017716126399781949012455273795475807191451405001034116608816234286219967018025056650743976018417696022363343408388593596660149441827647817377678658518007576427689328937185450306284945720472386683399995390488470538011579182273130130124379156378234186627738486480094120135785689564413774095003551203266605379046080656453053922946341633252048383507223671599719134710429559575370589430667473138829049751373494968517044786124441248886721997172055939360678101352388355473266862963460062869243293620708874304694714482798857410247443387342787254040335103099159974764577172951110320447103939892442281470564358810938531053875249932384756757978111510412941087589041980269610724121684534341415198286166400426058844423189811622419246053942210914191951097823600458435309264848374760471353810905024663730848786052041602111640708451345609212792989795351554256361715794674256496160097728631739390059905627284712863152618970281736371820712747103954412971356144358190603941540835851212542794607250390744945988752966419053830237083164505637126174491319757922564153276622594235446826758042584996922140002178664251399279498897825703326467349834962954280706554372443390343498241360212306105200649709392185274370907271692687454128540588478242544719201946772578870945091417734279679153805739717992437264375921640284108791121784416365271170572916753034084340247516221234987221243207451470177309342411116217440860943309628961293256523248685274031316020323501987496719972128669900715643184948052470049839078596381025062073159205678000216115671869573931575105423798766493526079364435608695147076049066798983808969510285628834513809444084880573775925433147109976233139904915570033976770477573189906812867567918619623218601509599085465406774317840584274435150851128032269949128125252120266290589601066674228695014532989319970289078742601403424002537466613117283157127340579141644137501046352996422909217628045014172322594091618110899926479221613922817174515593967063921055289796610909588343276146804361109144953011738767535394908215815949109084700383391645563668349034145316081785630618080670754399358240539557045075370137167630223532130837680305326842331122106717445087065198355279655983303290041885136045340969922247966971622326824512094199141870762194282767232179736457629642865742137833577377604566315401217275137305367322143152955431516976288566138960904001353976913295574781198406183601112710545753053902738843295728588086650167420158986503583385301003809407717989157283552474329503214796242870054246957079438328047977511097379897633028107686491755797264880955114946334685917582665836014549446226817213730886335163723513160293125124887418764543801556782009273506014595151721917297365184093043610833623680739259621433701083436041327302164481037616521348089912430965562368681570227364337753553086484295204073392955970385725694579478582543941098216471301982323152869488666368206969956414396921151597937241972101256655834430292427827728253316303691842537752519176096092894004755163879195991584109608344756505165762696219939317605184444794995414904490766163448959680244245759912684147947704740734697743757792888151351382595484703845519213075371514530799601509973248897149481315250305526673444628483111140559678851152834146201916618116662378508376819726306764311113073118841036773966758750806262133861189641916629949457709277862354439330329156132196010042876022272313775153082251759197496312751743488408987692371086354956040348167524849302936827811595538777348956499169535487377431767181028542746496166639423495073496499706243849390950496420797871190836865645385478505004533526978680871622721188976473119540745160388999552225233640915148513453809429492583232624146210702455091354800261243364399699617892388354185389290026300890377062906396470130962311156854782717520131458341574131720354567558999756081688070710637811217650334858415641461123582131659033618626786841000988383880866609169184897863638411192530416044772611355355508432854889051132244919766018760573280681812476950559167838088290408626954360768495685326437846842813018715009284571807279848621867523695193026821617600214370198306678574561042863645170655584189169875777277433546379954734973814743151412305255393159691853071362419131066676264768562340130610043567084088098712385160594737414225608361723419800240711011382191680857907102075493992787157271406162549602624388323260128818102162840187810094198960560601648207989761870584265874092584404320253911903595604450352166463824290239402521207056554690338393228948720956275127434118055412220821147274411506071974667565255117709275880014711910946576316060749596413140743743389125896028224395034580358179376500349126828083752400114996110494139094530349197990900976635143096185147376518948682999320613328193636154641459350511930884130570089730939870287985208342043585576761559637476131462547616459250888733820346056505283139086485335321554496961117058307872739169371083253145609936702576886491440633329325445566360952572406483954832736851352323082246913794512902754227773244707753334213449170470296158845387982996904526546217555594959189091882875739460524060791959213321850587300029864238234290292391310950498183774575868180826780039564233351105613654660466652107965152877025469551542849650304618152740717601020107542496053807425306348652900600768593229371213346280683566513032694741314328735737380963984397863505513724527408519321793828183602290814078770628933191086134459394668849328184149562311571930780457359693362719671525970779315046120068441702393533127001950636547937716585360493620820529599699856078904916205110312084872179852655673909451192305819731543387503291758807158279635497425723518523434731068541831519236619276007373781802245874389945646743324619055871601767356393128881580722553277136892773912640700426009343260906158276647119670017366041508228932371795029557960679399211653820784297559554321329827362190104809772338622052988374304277004831847742320075814974765799227333979227364113782696978367954594480278870690515495039880618733926494489190175675902890862399387795929543635623495916124527908542699278718308380481723389096006324686596150042476604543288438346510732150264799093443024765324613903439144650463658301613163022241222553642324105960706281664127874523493783773318002388792955332195870660414525891731491613483400933722403418568957328039686423851935602107182008455567655157132605804010521408164710503633035326401648505450469918305832703797906987376383764787626811093884381823570126804936832096863773099859947994978989804762414793243702777542753660673906237861755616712178692133245749182949336817816417804738493917630514553741859946600467091164204692027896085130331028114826315710875428883357551660486195927764417719626573189859739213373277466995218749119708092914053100631119261588473895205611375231250250875114174628867840023851957022498788525834849321367202901913831186854413596849257448889743217353899673283615486840240765447327957154431835150323839067254323062199986235317574691959702970432589707616065970283236305263739652266193754328085466568641248401899268005910464870128758959950107067897744673307524091536393058051138100327067870250341155154925673228504178843889570362366190963083237257945457043588896781684746144439520943664773420929356884560087293533325258383788454400002298086123860058396147581262603467350301057554217616014547233107390283301990774587508690192671492757481895740249653909005226767353035906208754592414038089247833854920666911551653768717739655712383101598573833714611066875964589808649213336028961532896165353565969431025057298421408068022602281791559245375092371842719309655427842366744645085845044531156997069366028360484949596785684943854307070766365818070835901905703246151021602366403899723749389398461447644768034323996321631034168641242835928254809492849910853496774238962675639738921635976861724990548376574911894820539715798825844470459782067105066401234594179650025212616620478956640410792858159323002073538421676337597018707560458279324982737748528595243751593522840857084120169889779930785303105744057451505917949111972269911035723882437968753543011531537684735891500451484598320013226767332019488207917176025456278705715757740529828936788501947543212526922128930693597169972562708630917837477763062382231149257735174403899311145700337076559754526133852454332613703072469383912689669965162880812172644417923699897583860816992610814770487507116342991334757446785113257364537639523972802082831457691169134161970462534649299727797668351558559895486832183117868354333444083069271472337585796677245920469181572635212812524556567250407786422691125572189177123973661338934025914597165646047675248064460159644483663770023460744929627402446786244034618349247499690048790451682654089482962085967991809439539833164645298823107363728366128658092357316311498695146676987917861452842611024942920798758902039612757039729056009938356863932532568228237429048828392042481450978526773825662348295174220438309949812568826404517936016269303892985280136225288314464126872141041272117683341568705321242255515413859937297921418840144842282345649724353621741222370314751162421033421446787517869155226339501583951776394456946176284780024345205088582428603891407909850046567729636605134676043298749637616451649845798779229264669367331272875141393197887015257345709554946350959898420581170011890975610320305376576459758521561538957031991230952579425155640876958882292487254134026914873703844730060113071495272231911520263233382397663971434213210115512882126507800546168267546739636173606504000565399024737090964671168961981818807055143473486729969172954675833661959019276427505688090541168398113017447411338679033722780337359808516967463089391523444738945364963260915013074364516082891352113550560133133536547059979911128253554028554114836940215494815866830890573374457378537611474029615408471574833073772847712855515295415163226235341456591364036212732196074648723222487430471342199682118578590125670546822605020290540836993570936663864060819079978496698556485348340405126023051873655300788117598898986340547639198673578307621354848252708312073910824325774717298268883991106976437959851637323172947984922687946176077013885097980680186478987772828985273932246849590560856393454342854378536824050917442752389490464647526394778584699279049807237176883409438113112350136747061106390577969392508015092907525248727072500798814664787816493471008896112381904160528496338100454552867720975193250948816534618606602443553770099024765279931203191597918496612610656414517722355096155268743906828120293093513070497617848309891404318856083835180663130551040741962929385601773045468350401726326856399847508908220574652327077637475638333682893725926923457018825049664330785754791839058553222310901099456481904654402638796310580003031737991735549326866864185546558979603789911835269207771848583249453434883652874337278161645885940831109104502455755496763620243847999926538055004228495677167720334411430609613641065901271448677611900001518930732466274486095458389842836427675264369681847195814530303278568001576337906389831086908070569530611034356363671686955383963297352969512110976433006718882668147674467368793070449872762850266265945627733945921669685969903498278897714846995972241836543702245912228393874074629280216443040059418383103082116407304808240775966767546301458661043125148298675336329457636561726640979695720625678580520674762310261888885066901521597179116581049946590312121141853102048583832988382139252067591026932326691898484419088125775924567972788753326906672646203578055670879673014934930687624263640928455492397371240796048569711089479762472091666269145659505581108116088593036504614674012092982533455458355149931371387155839293122404803285554985633824371606453423584485048269017752920615933499049827030410368779713972272087379065102512954476160162723930758116274588338449267203814323278303483302597366652519117394302849682321950026517148909391064424345642210773084451521306941506397803619694990954285001787440812865555095880172272774859004396960037072854695436686669142479589847890795222900076456473332194134127387639333233380329086692051414278738070887712635262497634872387931889973803229395866292261562344976736484941812465557705375110160732991533146654997561646820440169036425322328354138182771370578001615253466924550710948089375134021904752623191220064096470622615275493025704556630966387741418991954883124516512095806013835628522152741393665389026873402456020408667015521285857218785373342661048740206404672948838785132757485448157086288846134434767292130400306072679783911936377586644056863413644258291055126212696161920722736748039003563202034952564915754975522222679185969465322926823469650536030337922797341376455667332185598505348651138432423594428377632514836344182883179076297456872271507251876523455069580975335166180131844823135768821945368825746786515174141195172938697279829897374966935891983024891573961898065126692177130301498344178187035368852150181354604462614447065261312967474393041615621281200727847876289936841069415809992484306376489030339291307800510578294505320796476292932509394177796656648641075971424808721819750185533293705058818689263219910625112133004251597292078566606972829488151444636560083802296846585966166574152504036639511404654319236488757875207633339406663844109336173671980157739559842936205621324308346542169172423205152811088795812949291579712798728518594315774620757459464377907399330176769119137569858706569111527940770516103968760215349581501433573532834332584723196202797201402055006090744806462406986993737534185491116407946913383645233992309536745193909314016176068070501566260216415081252169098872782713215180294750626306121155100601363248043692182732664806178160909287695398934181042117570461555731160093666209461228063383311378374764967783661178895625620621316665173902186272538403390889915558592649176736907010791575963107618035674658514594561263721046132841279053409283954058088371185202092997897343307650197410643085233015288247109542444288023266087324375078551006794566293632142252647669469658412436929309223837761568489918503932545155503626384196067104870882490100924947337192311610212401710171456334746956824154296943899221709928042587722858991954905802732842782038420059943918898378958066297797245707277255217595264606761582292605607404503340166301092454476615580901919920026480014588812135979375465025493967936088547445885111094141332283183887970442398445748178093303369470786592668857834922496444599467716424783404375192951431277561987438510078498553283494084332734834258474598385086562294791598938091071749666456301432971390034814945514230318293695232988310850075187137204550490372023071715304341827064567727779099275748259079913860921739238707706093118770647170153017304824065656387055959667326846888126269258079046849853010449123870472485668792746769155767117083016978181448363571822071343137822220866110296843837013045768545141301003889749262007161101561100008510217898338399995373138585126232373347574635276469174065255677322934933212840341874907452588371012118878860479109982879545152921865610256618769943968382034809395498075596491059643142703773181730604915227554258680049562096323966054271536317764023072431175263470115983568852515666710314564955480765744721652405304859364795615558228408560479334582332711260495647691394644308506859386982820229987531679900158534307561631895100922470077998160162239590262017984677503683580466875025188616085602091158781132194470717732420544792248101285121450675816513603699667849013941872961212185121790675006182074867424375764614450026259272062297608077320887142768754704445127476032893878328776850262800923230249031984068306342864249863717520893592772691473291537041199161424844383650355535316671536502349948962012040785781803783434445956486223340227716612398351513673806872377350479447996939771365680139995385682831176971818091493661301902852779327453587195162731091738938536556663732351632090644153879958649144613318481560845513742509014487898681485720403585669528649110198894634312907915772761990069327345862663293875688275809134490304037995845019193133331058076569430903434604180575704891556665470751954012330798265164727980802056190957170179668834922125812665246501029932132507562619584821922542845520644705248933654564667095420832974551189609659009721302304922468033649678634606221704667714773017436987104466021558373471236977368625796650732782654292710685661637814032386472138955262359131560900108699868046786474823266281760414400634147596547256838256124096272938284697380761474697105690506350782413707435859565946526141278716727108608550083960468681474112167320733563366531352172156974632633048695516892618230792661025489022974077254779565898882931035746637847385289727474059035782275694998590969128779613762606680541430675274619828876062405367700758896935216711723785983425419419517704951013568638802630654336311475701810861434771122199642464790467274965149717369246720264976385355202889587194985578102652836833080150157471951729236331066346044189029846174168069296680190956127696915225560185437657983771707264428025611826237812295003749533640561954418165247535784362439284736492694142896205558969921276174419322070915336382436033634455698677335843886281274930227981476060125379556675841854946482593736057425169360211594096367863712872715899546540677571006663227253110577768284135211950631529655393455551647848757462874823204749461727682347407180099633223162384908485351675131461342129480043645319781901991950962398206309991897895887448879088332337664021745391624577402212113937038346883707945363078082522394822667325329691049606458882142616273517569301785850330963700630513785260773454215112982107151393428855830148083536721523555231523374781113947226310614083678158285044059384321526483913168736781788128963103050473343433150889928330052856872791663630441544233194492873324392427135142617600586550419464617907950277617796863615525528248312050037345916095406044912672958903938928084813116271692939883695470125112217428619266811143714632170176972558336478567541859607705387798041340545851109845731111379815611547209273495017975865433410355794070521975757227001373450071222191455569013595206776303495902551578167008365442010922390772732296949047607221896942504969002869575051630705745300413899720909513270842694553476583141893869862627527474083288776546698690873162521073940642195791318624848288568499607903800590751213126579327200051819004135989705855889420667610145362739588254637202572388599386105579233985011018295747496225296771707589522550431012699778230352725956508717670627707823409268375012982144902365005315547683487082257505691024896228618981507253727603990217476026350528545481981977660549256286362419288259807666168593619019707055830655558333367561728498672559235004521852635522176935650046745887983207295778033163759161371894640503979018255376794447370669850421766229782776514282087334385652624301698750775201217666893740935414836776499484649865698666820725010308572611676994071046770854454343831197488839170087526858737074499183472345329235462106808911533014113944728594507072977608664432005643238399883123415283562632419174382083871613920914253522632499001311498055437261964961666073733369370901863907335836632586595971060286020057910135944255003039040023798001907250250376858877635072257321989628872391958147867218518875325027689531972640946095711378492845455660325720675641902844237508354027469641924979862041430842135105091193398254717131101372031651586336330880124589908591744211569085393934282887923274645258496899794279743454119740243768598767765867306312787311881080596044589820575037749723253004166200073808079406908831287108942273592622080172388632346899590305101889080559084708811301611981564941977660867593031830844621792003710852307534440870074757733069676741002194414892197371505488203509795031395821402874579468349387996567417531188602917929282095535077175366953901390522334223061637655548958206697889523219481168266954348899780265699541115448916090012421679049617846046165852636326336960911738309968270628008775828944971071939610945956900107324946028015456983639653352575358062633927600589885779653058891472693109765209809237784144307967373532533580058327589700989316822048441677744423788062397770666622995957031887456279903943055751073783666930498112220111799069202075486533193060190796089121435815796009336838585534017692501667565408489097057217553092388162013557046344671763168109252577443361204832638872651572382143833175055483633173081993879065623241565870949073901233629278158720170752591425263491072603011327831792520504778916960727285737720032708908711338083575880391540570286494603105175302214714799795224766948916173188430748792019026911913280541046914930646408828613094267650335003950710748197490089779882249413111250939336430080185694347219027534372703961700172807339419656695685743712248262487056373560490420730501429624465748173967141280407475435222926323325173564498712801660061864051451755776930082411316800841005456241839489843307919267432555482066804852193480801802506278242545560439226161459040997836231675620066210057697911178640827816359699955765435290036921297685569555942574788227825039188246367920680350713708706444834049888172105116929832446817544686960042618883710812640680438944971827783293168777561358585628035614225854384359684012513740844916402583133893031773201386945443615258003024048518631220313643373403440271951203892367569912089754220844813915275440609433603035963504280174784266240459855804796273467937302621757744940235511218230046962214664289021586149039739705623601214165391828343999463778705050945846909496432304025849595840774059357970028773936627441409380586036867738077133807324817726813582495625950850891168613824319857788549417065651255493860443446307624184279449844491398143947434889750721683590257265481994277128058183414226717090162540915033908713682667144774008990516852153072984220939074775925082326837826907805528285697615894320771951491878963506842822525278940828276965678199366602213016802607077252744494915436372397882738553908056146054514738078537171002920623123049689118479441329053149787000335746424505657893987165100770422520624903660139729161062508952009469394732805439237515220792791874248866568499791793334621254557163489073237910762873394976194434584280687011254954241981977698465946369835407418995948208755997073096715398286292858261877063929036679713345668247262332849220052789358722135354722343082876087033880658066132185342941012544474928905392070911140712896279492094254054190420561899179056256724735237461478955484903384768472672134960722320325576188489433234415176452307395603976240374297544657088834091535278260305039486986997489793078026711210550797202727649184057322769692338373211837308885397951146100641805579557540380388078089538226097529134159631674904264442091430790029148835618517846194384219325741772594129463126404535358300934352055724368427000227775965741415399360853849832766220776687490181662488551079489848204750353751114660305726259987392030637012314957788891161554750295606048066593111398835657491421471483349723053281494612445396219727637630932745202294981325750268917203785782290839549242547975483506591246291199190018453153408515754618522938052093411231679484482278787247103199643597845494533385961952881156090385714009742003292554174915308463888281627608812188463841098463912959861278731649197143495366050900932715911382931777112883099286995191147163487535094734750148373073617473967066018209214582679434838632809806190600196487528569713956825614862401618144194643296227374587647051342466475265879315904373564233618083986730683334628497999804656831164126104555631139485471854825318194919971834524341020150898689373649265624595452616268070177921425686232497712986303937155792105114478603842388978830405047955943093384889326873135759911430650595657791781636019787707966842313201671437105364665207478316652886206898116798772649775463561557219231687151883204901156054685171879735577465247394204272361457452206379904657591085829846960095616456358900941435743745475887440811287724170028862403537664664244144635751084147805075183403754320493275742951999721208361210924086604342126912571627173762998091600923029393202823397511070179520316187403378574265924260229594065784064527160970455943161550382761386310144421969438734610826319248184081148416456142071203930953459076071414210783652906204281498246018241664689627616610495670954321491290771456988435494498802846448118758967127910812982288078504682165946087270149604659115688928366245762577843757359999659236069616154998427376421980922519312253361323043941403386501007131910622994400536037457612228903956616534409786730495981811630527485732430134346449102504169714364407809419622526933520133407361533390638728218961082745988939665642204288154282654997311838335860281021426774217855852406043543286119553210758007468556996306850016825190449867690768489041158742945333008219926158554482397181682458367738435763804449542348818722746121758245120866704042486473373302930303030855568736543042536346248588872985747658460319055378155327985016997980539838295486656056393702347482261499317977207995375208162770413995564214802772565429325238756196494578367395721860475368950898062316986239663394468444669257724402508009107661396336490277023379134086880707331300764153017753313058726528542654211959332470990017594222117677348164160730913527982360983018731871525186660927894170498285274565027906225324538833779868865601930923563435249227767945428776869132050352480262924049305468699062114171964531293069374149799077960898177590703909007171587437691584427743004783646471262653204041428110054947973533579214394277966460765140682628457612291047475021220683988739992612045061964454644890155617880146350019090239578749580784306406683075165067356340299995789758399761466873860115775029043902826634295009027413908712488047732041067071055726177064414118789561752255574615871580355583309820251046098381040078567592728697004672232372356652297496166033191791078943265305385407145896485916561087100150350324511721081653131400217627391156437180781240545884203447792551213003812826156170864567266129032399234865392923255424633025642264028345908484992530983953040856598221605882756007142898396834963851599655096815679475158360965750404563773920787723387584400458677524740815369712296702256500305302886782868279221381302337505149698114863476331508375887949482059426142167811999687538871162200444992178841904395908556026620457995088587372285482309190413395066465450556686393801073953366009403152837275579715068151441645892659138193003655548764039517834202879701600260635125413468312796019236286079872884198357716669876936769829185500745797652678554123152155225544379356304221672705859764824409890741150063087938226265740474000925189995986111721197206318427529512702320798299806667175310801778682237528987444832877619744022439413822217314686381581518931123832212796026344555926447854953129597165856626345759076803142463823978901536264343762544749619817962059253095398873124647963311748335288389899706887469645097618304316222962636649833291839153710779757612804122558880262214981620702192837864925401534022517083936976837907709337578576265381995950948501183404727304601899180696356090700729924050020436532204464704949443939050218442747575571526223716463486457423090543981495981788664628663121612561456866348236785781397217949318083115820122833282444662814290609240305858947790505152167057018112006422877721592402628026718995628249384887574307409016602417753185453835459760183971797743026835300859387850127825264937511694538418023894074934636130519688953777117131045471214101433154122298964508916390878905178802993707907963088981562760141142619403798950571946776211815943776145857751398752170418525139258619329842448954086274210167519368873500448194896835493886110623626236825135698152294895100734686400442973810347860634518756593392806579934669473269412952432718621537102174745460715130109793415317997831102844091950737210232026120941128945104014382888935620003213581054158779110422539232594371427975488681964602748937113790580969267562256171132900173765377899823790345941198291481831250395076892892938039868956341249026966145816736075294564750862384674510619399938008995697698985904517692641869255960330263567550890206055974982799001069471409947312251822512438588937411907162301423311788639965370650080935237943895473296133913803564059147517956300821132346063255358754233087558983530311291505268023909259051232186950031362100233122512466945163986333602317433596053029594312314511630606772515553540704587567026185839567512034804602203828496406987038757625309309999998865146836781167424031336858118831108944130037179195391050245821845856587501863934146432443813377588910988775301484790946474874155223942355305291489732826860301675495530108957205975395654461579315326160155119847210944150539045277697000593360424725487682157575187183065499784054918371504551200469579321666269852057580638043072999668547280664192302827568349057071180017548217887719171828275047964270100521251377217258742858192218284967697041119582906889542520107386860707312984777434929675321910053091259823418098318300118549731373030247622732135153200776003722036776266877286290820416943822407951483752613287890691400752532046175708206356674018723402286352731970867985218101455567813393630441484459604159162272627814779171490276133482712253106249424784996500559538304523905015438794617537625257290952050956160846615827003470138819003498411847901830574167821914725922839445438550564357995643875922192610094239358452764476994778565866080110966247920126062510288286362948052376597020946599727971860970667937865630920344834358960172449078758059667160125965279815151561568238388709488616063147440089973322041160063756987958941298979391858947074320720832162211873903773816572787688456403939198706374962690578410541739424587662318574149971357022163052304283549080426214482653179981952793612977765984603589892528650281960706296969330543652927650150296141097093031292104831729754885455086359551673563764660147594274110622982476785315805209118241236986280843026254323529367515157936372507732953255090888268788254629547444153993322546088154545512749058568479018572845015508045996521732281933518174904839395012319879052880499758037848553435614988104117296430248451151826427063711515015796928607569690755344611194654891796806521174734437887599177027625790934319857448400913407547228866566677058265428938726699520241245237818994509960538176809631911556776339978482683656222923353267805006109465943764790367896098585706317619586998665243574723296485328524880502031878327097975150338344534138191807487083675462972377863025287487772098229786073479180528172853045313674507763861604644948574883996804355257682413077460065994933841676957960290574915753291155635788433568262692588797084264697078315885783245328400551110531331465380692352317344846172658759407300109268913162666950240045620759581431448531222283581597929264079296651790233879007764771671600100139301757828697950513789225983585571511776697242219579554600022659539270422459349765168098037765737333458698043854265210631744746358621042758015139515727422786754521819059940858347287129240514964160470205042628656737333000364107525201178751932146203590463503284825672015362888228086730626973948761283014169300582392385732711235449424880697355401902711910090933935329987767501988699203417632806677937516025179932983289510695314465678344889499357297776697296973045936497081716464897234300738928533303854288502852285499166084416953643449075941043252113766677214831206176913768904215489895780965418030637112918640148889395659012950898473381474797294614342019523590702979496332804978607945562600497213238864962226978567619062534003746458627268595136086552322932917824768357090052363825085023957075877640277153704730321069871814583720197841778435622331081253782238887547817576155272196167221010508514545203110618563226610376888891008079321309086797644559611237258712757636193424878551784394695099098889002353589851119924472760367916490882769782697585084276055772799564143082454741788720831952701993413474548412724500179364026991764508123346105844500812982625662812003382471469607482916828339964225482467771770232283496097444360941004400225729345617647469844954684293604097405029553977055697167889951877797749478166714140583408802869158767988921987860660901178138807143927725170692646293470132178793436340666495459651325938966147763016731971057554077338353223966981365307748019714742232329953671202472979726612781519852957262685178171408755320822937812766496368447098103957957687760265443873509416169491210063616631384663721211053704095253512916176521842356753286074623746955866021241834463472941140546068952908530115185344583880009278471025708880725435933600500225685299828139315780457773436457682202061525202248955746476043261285409378781951188205678665028544832610498708898899408310599509854894323385054069803732867934878154507799507355811772860085558581818421603445251910816349535095542563072668979791431426491996827835145095185140200381425733241592984777320019057996583291004845554169624514220922266634362938437446351155828068440147128693052863493752424350753439805223897121771905196876419136919072497403068093342386777137584609674191753866145928396833827410904754468358442097606253441126372887069875033004338077485567416771919111314323904663369294169885266019531797911898922791935898079156787898671404815587922635529918410866792113541759223641114131287534673698624438945772021177297627375231212965438978436444441088790009732188893012030106111374221555714922773399557400178873723260749797486419132529108472771325749542863705979855005936284960500626595064531561320139774785547205507052217000991206052608258528106302616212326053907188654189756292566677589361148936817511441812844613148169573010731189230199345483201320747530655812097819845332434144658458574029285850966607309365111773312761638926592082663584230505126297358769241843953196953203704612185778347470338468074822939668447912088960287701636947576523285491787279713992945553519681615850165300625231527668166485894971766963947277352180895252809996706429186896957222197767451959075265258250059912653108703944616165706998826447934851291048049389452681973137881219630886811495018542120242547436789371413144078048438170543492877301042140723901423365607417908617653296686577438014507763812170718309114718318408356657700228014094347918249691554636817919890703031598029573044213321251427116336795045422344176373296966325663184744777046356980284726739144119963586021724011334375301773414551931712299410375501722910521241619480245143048327276570533311494834078691009334827802164945181691575752808790865610644350570803284849259178798943323561658089125793817736631610708519546974453611155054458262426116270254840272895581612553553978227740350218881366925338729888333820271552109267881583115263746083740661034266317562889698322578757947579657873254145422225766476101208430421710264401573607559790491261000194659938344481110491266956839527760023868285525406126894036558460013901168745584433884218987027955402833469720069383422738885028495305502218513187454904347860618553353220582338662415324876333889654433158072556001555802607943312215699691823199409448921822309834389512639294904947742507002989971670100506737365855656538178052707700042893437560354806233845063138690796269111414314657181730687214917574901020616435842973233294927138152273082959063025178236426857491645599583202569876022706692562738632292143143363697741326896737916682489298545088109810234595115101337200887860939961776000509260860507323393131428385708938341369180048754915742575848632545710412282050844883432469021933423275514391313151983369304590727274432432994984723104292160325839806820585890677170951051593342098947753824475036102247604276596431646674557824149056390194993413839567179445726808969296517979044618561404870877298683545934050180830686869596032460156145876589220786355126266955591757221482062807584939973380688539662544288890874609201721184514419663752599425356223500226670129421221126623839833669754128317437711175144732984163417936961423951221695575672322878625028031599160456387549644103511961653445199790035768917786234366123392655438242772454556389864229806570673925681907532444464764351320270121684417369860653590280132956872415072468995380286022304113216070374344817393108676842725485182470271992643653186471160747952618450122357358090222586596416787695326871755682450003400214059297194379811132650573933881179504433042603690290763647337053589795905039078153669985828289377170440739426461346516012003594314272662436933718683307288384251989822644164686191371751257484108725929546866791415137616316884098247662971443698645924222819517489373565121880174206119544719569053847909557024406756475207274405658000160657451588997393252787721749815586564311145605655966962486364235880739467977433638618177830576188933071846127768790443077591381988882131643312639882116551177758464158582025346431702462661601427151126212906236242146868683295694426252563086131974543449899029244880522402388504942245501840254296441301367557583601490372921574619302278879268105971208004664725451520216645964944147890877149665683315962514162521046712817605163508284609934978436357178872026487515530162031944492680095324446055849211540901093783956857152736564757704850078872836733914651269809865462728477849205559642284574714611689870839131836045609374932930566579052398459430090222560533150167720351686432131431132252378302074005110944503234307705226560788630241290273071072552286906899866102315082492671952751087442919263909780940786471975648638639671872821483213422580548359046125644692136913848808233883659376522481725208619324758840297107139958073403655924411798933519476571658485780456143300776238592237231997039505963610208531379230775607324194607160818779368508981559648742157874932644779340844696082877130141106421043139352738668191590036690307732167107132574449917031076813488601770967948633383357539383988994869053636463415709092243374206247177474237625934621242685554589851612521825606902081684095648761783973530560536917257921388485626543772033747505962409177863120155712246170153944166290418391644360835912963701650356550455472073928309100610162471708412392520138123298337371718730647189734925320260708112445331867773483769809113307775781012234701558902703446495339617228190850469716950685872517753040365979934026537256220243496705456038257380270497966854126058578448805522043718243944085551611986005598100394964418188215792389008409984349569374128364633844810221848491404141514817698358458658740440803571933758321435449838422819110771298599052267649122463714823661118413831024673171278096443860411303300216259896464819432429197369302416983933433281663191619683032179173427740842343226869560340347039488130398336718528166061862230664257785806508261695267613778922449999338474244389386914184026048973763643121795235603602373421819992640944039431826441121195662916979841581764074846451542589322549534259030929189874350261330471672205125086796376378863214867846988939073004270619829499295218705693098149026887860948514646083906395398753879105715660600803929015954831753836784326288013930181067047179043905197939697149963253254604213944988026964486785305589364714880189643470835147189159284968544786954981692172809722402640192504773679410306507356403934501299818797574042458061449068200849402945654810565839590175544681529243147323833654962874405656195417879986640450415678905313058767653422358375777082345220596173113959814170638677398607380982041467807097346277916674778493901457451013132996115753518946709777431768676268035701986392234236108245890735422915192951563924366376344739014250959461402380496078357360440664350508000014241395963214914557360365411891365031094027832542033130015198238848033411101632242113233749878607067676900528199845629388892191134399023129863324304746773717270605947803758623272784058291025627780057951956942131025488705319894399903133315569947352624667704788221784535578456211720317376596677053482644959842518099956302425720359067011993184710377890163413219916571150506354565668877863669196028632042601023812856953730469984323035052999764760609488522615934915514299275052221436312315457443806471351272010644912276976349248606089290665155768294473073541640304588048360671644077990999751977927445008791704480342484445964908469386306693730066314621056111126921250689132611826445261451830773588668308043011904522160515291706827532927492300783419334619928460440031875768268489316229599765383999874108163318821131071608944880501936146075190313751387355840290020869455732266493924189534493511986091182921169186155628682920471287992134787831271552097195141071328822487316050289664857610295601725971352247587107861164335020379253488802909309692604330653449592064736942274761578244601648672751812928014769066759771491370256448770716511926359741665387433692578538735936495710409807675159212857496496800211218813739514383666265581684548512546891201621870353972647090914404313139019918328392032291094801503542186868391851808344410093776155412169799478296686504709418442431151996218043137026052391290691850973959264495154855826385709912217618943333478886950898008590248532612899602870319626233602603666174773921885851538244055505952029047300821681257314901114529923492467684052632466394867643235123076253249168414896210230102978776831729234596750286683263985734813176204375776217657752956187006944022073656509781781818678741048708858295698839159149629809462555628625834588837149511365487905256839578540656326741598131832681240656400558642356818893782947837321436056607719785053455422248242313703291792415228247295333478863666504859648288267635331220349079717396943803019052003012455685063968126784367905360605110875610103646492458388087264587549415565589256107814194895876950640549194275879460555820826397004142529654269933367909933536421734055735101415843935997253386348289327239076141565010965103171413398356412910818874146096106116172254987572943058156065344311555210496241866334372690634946592489001841209021583332627722781608990231541010500486389776883396199811213284469245120835473048559665117499953478097506051614964632162435441671891115905564397596177395902225013882042215725177585350699984036175430702937931111870395009359521481842166228165152617768061060595415294214067991524498969266343235242610355231629948977653045426708581068544245943146206779430848478755925217446290093096870730554534104317562135915522031959677003174056244345636542988019456743114036138109326652962374104276061647373810820500974452445514818331550947525056013340714819038180689106947364938284678478571410954381720305126048525051326182658325364726164286883192515578277829098853451925106089712937208710446896194766256752641281340354969386957526899833774702521518600569466349795211336437554030659088812885626201851536920655097098509462507861551438004652678755101000122293167192429409774055224508727843795052456288072913982714200192147964744859691607284014241843500285226002838675417062089002061974217310207064747192364162704825813156453721402983056784219011688111932996522419848201734820064393206741007921039637082792836526856745415418886286495384039880220155941866330023001348469356703055076937562767554226844150799355329907231371132694263421941108957165233177364318612402446301009320448150977017976799254087420526951005916465727901131613957805784190341991249757327339775172265917387387079210252127896226654216564347202846985478436827620108706626295956949065824738529497438217264342086972118926801180489283198352325789028274534972975145048563712930919830590346783396490696710058703521981956750298680645471649432669004737577131563456456099014649743920330433626180322377274292695185201458640829516533532785404829252032591627884782277519818961286648883475526181659585909216850431673039107785506503740824437006718872064989346933725584149884031965563531700580922106351089293571522313600188804354633210758596871122258623882241161737886822669387411008392467501300171737749194803485183177605929835488176898464687229700242347340041319201154245996505537123512403495031540946187743963384208001469395555429938749616924429393903265648526924752766920205974803707048483672214033854715177366620628130792485773112188945027624939460222611361114519790424949401540506487723631913309323767399553647659687237670688323015289534106743308658775456546756679644670990525130187233748142980856336808413990902960710738844518032560449308020514086126168130621058335566092204147950877128004889352917430090230458601363246943530776524035492795461281392649956131633877685257797868961934545305253721398015985992406687440546339286506615866455310374830161954388182967881829570806264708499798404984561043845777460487248078475515818537381073266788578594874961386783952026279978870602228490501805921118899902593335272213878842192706691219908961900012311636095072521526987311288123718134923998826186072949197636303638490469393207561933646854270203825994858970133252179139564809247585310880866183435577466976919704805301037682589503489665845985986506521657127129024635386016764609604604570862972020984283245440287364245503214377253700544627440185753413078172746944649021742969469436814094191183800410755344158836257043496589136103072439076145264502749898273917313674271347067674910958065999792730286567610694983865118568224770140870247080062815517039673596077833474599516980380326622818219982959545818770776344240599561672970353211912883172908059091101460772152144772108795369349370777965731825576627097255953459468566837960373513816745431240507191502994914024308700323502057232875098438466857478804956826847376402610819450421049258174457343923288311556952573101378205294173628579398616284493517985949201225677720937699362034486089604584287341218121426302459270098263014982200737328858119617659484796352410463058533444588472083260036072104793100476055657127628799953996709013197051529148590676803433107868788234951558402561468497097296989582803494673441127965759908774783036441780739967617198843960852148554356831272711343124018387970308747360620145632851522846687151469622435428529510469174008716265055667829968190539864944705111464898177318462959979873566158331919140773605539098136434757470202044183215798533436590626856156931603180586150507534564393711643966608939780269070010851130020475022349314898162939735979023357322699769608011258302112355394116943295713650387016102888561567242332236514297788682329501817832597547873558538137099148221390703770061474722033778133188290623625796342388056961683361460920821308425987847010616154224822401034101249046539949270256208908236554586541438496658235450540082946041114640675048748526547236802026273689765095686893963993686565777110653763787554581440049687040230794366821777190283400526847971313741080956505164446679853176594166270954420573668825583891129396698250132008230257844342298262184521110812960863336548696031749637150128219739986239358699895652999778226968421055416694900875638819466128664474062108513704189433375638368954434774189474656621885454557163015613227056285509272836120379416491695303926276131482036847421724161098779454168871202785232656439632779163818235717411632686467577524803074571185762097755355102909223171559799526209299087570289398333734816414352082155954316482816550111711060871285344237554180340142718169943280276507131481677320864483781920522486635413497649141029090378813653849238121348716121839253818163538999114011363427243147958511125120342161102083390259663515577667229946120827467913932114785607258785556817000607112927714900420215313568061170737793271333170005505901021770931250190507743546140714109829758065770379572865656226817175557862599220765129435980049663963301910607729466722420119555606134380343947176268018773644703337267310996535823160892185020897115883748074824470675226940387112872483601388719946378932899212748340820411984597075204079791773226248898534943997065293266755296945694275002000275916604360879301622533401109618667416027585077533687027768261065489497188644293331377133162478482396693487547662240584558077167492397696002340069079783764580581136657844765182836913319705142488461256735880814200103395508479528023524881459584936658202917059767388222789774839678420626898197902964832110271185281894468833042623584613072485006661424645974380238265746883212433275891456888021960072532402666241967355401266914638189866397690395546233345894170828315750954506618858345355722575533861046653727395055165803565303409359778933450587266550219280174004320226112222443768460783137003780111223746614413873018418413607208460263384068489028140634253875893056012834906319023880648272364009550743444397010374050166026069777424773929750883520336135842709884149278497758720633302723806623994839463084906327868329153855876147743305965302586374778585970039533837316539969443871984831278442496009354616207017259647996083572335677732302160419417357725484522011480699936555093454941657960670572476043282964400954411957660872680131309814822877070290846489736414249254345540369588368521275995819445473434141249566866364620732875299997587283568394380026975640881191353830612554894041044011470357726949633533724621049909852268029816443540010558624025967335847210834780427078165853620873684710685921598457289743541088109309625493120093186338686528330192977082336121960939666970109418240067965383038195633081031060778931420286911476492978548409135668111135331641121435447614635121820309459774723691236073987460378250737626633937084567693823041522790514873902761024744232125710507316568681260958852708759644726574612422679975378872753796733178455959044903069212136279255935299313754906309054683095492524282928489084100420735544155607924521027442387543742870254276963215418519012377648481925056122501413638790430405080937939885310319429816166554456180041084091206517376934326010463029320452475247686889175780686039851134630123785275897943632923217646851436699115919214845674263244853797592683875629698325748171965378522090835739487141566608829045119721888139594261780805932422546961611122258114164082307226140250807364961039793054631781045800798041164427058853171005968196374891297895786817314774904765534599355304345165708338612790766087408613746745297005510829067664286770296733154845580543936826164042868463992135860086835520056463829487592690955604808013922694684851032981116507119938708781724779317313979020213192150982907052864700341542883703504765529135531564768125861336394828768855378700687445886365089337145680789659668551066848252067270991902707796834939165663805158994915158304146847879195334006343082745452615931583297895527913819932173634270230016611114565680818417480050864993138099710386342592866443801631282836987400529576412183075524818975143410060556253422031693114449161089957413708855134885434078983155199607013682410969833953357226752232064720037273913460826649335794943699668952948614938992358430419594176182357165467528994389176100725074802887711013267198609617023562621308222747145188297087077050247236491894925979354285981169381517901276498453803142332212497988684405888084136615315376722568009566363253753536025901676270401664422522458487472896535813879125632684148050140533253468155953562080275842750251232883992293400860168095374946671850430831547777877041595569005373237326555411963273964546166077250758344970600331789258345958139390719110722917318219421287881809266373332459749369958300009593140912366805316852678105880367015409106509965657689116627582691005648981237219147841281130377554172254978833798310387636062925755925413214414910388269984443404183851906222169074545772710186427074962513283832544788935707052515670569464985944438115122133547822234504063286297596136142293770822139441298900437254639107640098998414546667563364520105552528681259383165763892026797045617149331475206599126114734344455692665494429080400991003761606145828360358961691223103802582146598082290418227364967915282016587238888064217340717971944087372393782778679412624558179543876873251048599469336427154627454771363145557438940189027177229527789384420666559766179474539494764210101163192338669783953092339335378835791282562778483237346182994713054287780703735648099163418309353602684915231738198257334299427986589694741041603677767698823454275757372820019472566644876112953993634399034584460611011680490404488279377713682274156696506248997513153193772430618006489780529621613525977526145062419377317417344419940502519599893021082904807691237743538592135152135559243202675773518847556471282284454715541322666894530139279480533623944471603379389166884739967233283774153437841834137813798779878968435574848805235000738587947079342292896878182277743038003714640147244540758768869497316020776530250680659069128793046720784294904990202742778021280752854959989090371953194016714884826168028209804203596455349798113531702293647067559920983168965893210530189052149171245683495943933142302590908450114954149685757110915099943159989171695112879834556862001043817990045396531416019859236258340445045458145858004261458610297698357626302355649283985138190048424475015975680782881281264783935444415869115985719509850036525582205966061801202099158793008583850754038026621882117070337394861978416720787125183184473152117457430659720199104477175217195575427869462828213763543613171676525708244681078534975311015593976867769158710785695646954124177073660968076814801889771991642024566428233191044666990582065809472644456134236278315434269160438402220428672339945974962400999000279848596064116050735476679553675439768126259255954027193800471195140237342429288426044211605417042553881280995737654756244362253845446790994729262224499821932874859613294178242364047887807658314787320752032081139163503086301764153122323931114125932088695263050361340807543714628470918413147025904995338751221366794383498782578249436756101803758302565392624341294379352072602836725453987621271677602754809379159971407039230565600012980005322987506636444993993723168339664806006491970177000599828365508480268416484944523453644634201722440486499699147385655669147535912000199773163996290246989368803624823941876043821605531486280868960929091402365183536564224704442475245671397988001065830337126947071018251895820702276713232006642922316815323775885728446174816630328841430243448931977874970182057439637650515657877960799815581655676309183665533735090092134678474945285343010131196681165054484003774609401397421893292430252483574659640050553581696284026218261128316783473973812263601202150510417420816356534154440029852436956370714449220542907939430313688643248913547633535644694766032947315266170127627421591560679454106766577181514410823686232571829173626374605635768830595120631955316892233013238639305260183234261512238527698823509619772901412595566147744555055789131323763735490129094442128625297820168866108236539353384170098380605759741706621235413504412798163159457408057004687273079950034126601270263879011731057884914861671691010520731921508732908526803752725406333284400230907539882405202703672522497726810373088377464326340590906236525578428025228884792924847429191375059646677616049152851593303728919295010557957281691657544540247790811220212810235522793097606054792755058918707363859579082198733486617270374536003844811949609027443954008150285417761488865954249625148434541014948597021784506204215983143202364818345129804089135333071465347262449866637890481534328614093511275596023676296381627730788895087891638981004031602112393244611904656724177618342761951939156037498451960418324942091417392354180677913407354227993108479172888553017649718064621603771584851609202962011338845499510014421286385939286357190872072426562258194150334382510326975108106768921874548490705467567631744527269645976209873929901042400016112837947685687400724013109203984252645741462739693503832651460913791899928000795698410304087505751424046252346244420463821921614852986585696103488538873363277910162557900865672018112589154418158301886088940458443718478079850220749175234138379098279570358560870674933419286145694132352640946693318347482967426081311098521334754431225306123288672853105834771586051887431095278496675933286673428303120532826997337158220969432230725367635010918680984947481403373786365776857898335287918644443885294685131596858418990602015145734161536261468634236407890377759407351434881922687592813234072814141333166891219362450881261475590038084621520217518746641623870907602825408162945754988718307287425056276239082811117050184269068559527242153041104057082331769352009001516243845282911758440096950548140553280629731299706093024106477402095438412633137026164197269733325169879925902478865400432916305405687446704773725049788083926079825723333510782681315131374280232200083612618291416112003477413211500036157157674031485011130847977448103383901098264453462026984895514120651696135783077413279105733590466003512004632222620197240405909513650798358035599663144023653132653451923047373331566641126754519351090091053549252125151757437704314981793018788043261170352934746355881285938670356705333643391180201357940110467005210452451922582786150818622509395078954352907532087965518087088209641851757267409718479674404783385687333938365433850173538028304752824719985973326121010154948397418874126745380868344689555187872472705181730064091860913569427648697568697860922268829436622690715961166696837082804404790565536495276614275830252848494266913521748773017155350685389649533641977521055040939098505782239344603015509884818192763622195671142456931829792056565622646319881624507844299819139969116896119005055642178996668067873163446684898832522529763001753153752159884069840790708354519891751107706762479181234391965241931741771304091149943935482080474521306882923914886936637679146078162546273949128543200544210647654687762013913261033074497692011887135902898180802117895425291555975622528259787353098699836505063492285463531019669306818928403800488683592535457619826301238818129257760202559965323858333095772288657719824458792424897218647083372828940160843178219541423333287123390570777197996650737501953467791326658985245817772770467280231977662566543707580760144286236487387980640173800134782709905162078372348734537236549951633390079569494235640008707914888565557672052766039399118680249399777431625289216580123142284242137047167506027451489981370990666245995359952846037999518897878628285923575499559719874489771527529395368278627560400836568894353378874413651094813018989190025064924395506801291717412672692021398038476922217222175387548088671865939244442530997126773719895016924925285056387712096664236427017093153766610685305355634109063225255191523063345547126010511975562502729601160246341974042448179984086320790980409082809076563505353414388015482674947135999091666985039031023134211756738137858403137039120394841978022554912089133179937318408625463220683429104745372948108179176259830343957732996687176636255040715465058451305171083922175117392559161872373253683401882788696564157493475976560696798760643544318640646568605365061397900082920312453927376415539331483416010122929049152771992757172278229317832449099578477361640838094658030879831362358134451545156713653756316132438220309973285262836903387267383333225578659458458959502971092789616579486454625083059051325997553247872354818044631558265510850257981023024922487648350227239331179648332819963248948787167805795157826253678892462937370872891826381639986039957748706034496327445562922604394284433740176202065268404008596917187604350891364241911458945442535511483680598443518940225500532731123591448329972520005301440449116701765916039971246667830765366802447799744187401705255912417183220961976439493272417119674822947384698435624757007046044393250757710122915669624101234058451892461396098734351580670423490588275029208953495060370677144196372033010933555527279663250325603390366794450508221260768168409376051867853312406126565781893693851091318763131066920544537506246563125757096867647253858746255959242667348885705586622481985388333963805644207922290573194143723581422876970467302215148846933889835098736021289649309190832244076119401248110140042986369148496247897260679635234686218321045143314849671541465727333792305775070217729404845082394357013455010192145684552887897655766618511644024501683581307080155870420355484239872769677422322338888154383139287173368939636931438419414533747018024681919764932871369062280957906207422823086430119939235630062890032262513490112871012931344849127157473970920222317219971470464144674507643995788049066302203339647393752641227980824625355850232753831393973995160947902581225519794049377912643763053470153855289107674537591867798040815769616554986070056427286593374117248117664914523389720586006763649475906047544398223647271055319827865204466662251011408634946315477990283334237780825072367153461052355277437608338240656183465882875800828693301834085226128082064997453206044685811290353270066320470029473282661286540612323538043410275564634581256418916120770585403064462920263982843028010190042301055344342934536414852080395339402347048028748489174179517187903518582067229876299846854699492782906806329549214544363299939133376398281129966675127871988520698423838470729204940128577497285558776195832080168341573012175784305941485258506046850909499582805231424866369094617149508966661236858501626403753041926712626117595551453472444770307684594680914803090383123620061193368407328951333220450070261306215070405681912590571919458837669645523400684642434693464849438975220504711754604919506776962373210436686642246924929749456752933259586928887007514690652393318818967848245767015094835847251040101077385333254169461169745139140896440542287547859700707728354737561695262397704132485723604748543905219692748513060737061897303523049617178675809796700000651708913321814582232041910076139869718774109497239114405304094516702368514193957631619387818382064600256369289525939226332710884920408506212453609641270179001235282919645098761089897664249852853812321324818267812887362338486445413286624204894841303474485711883355740357570105761116677387016602499628286073785920183256536288156971483209506586364070571669586291499757759824068206215519607626059106239801658444541644905283198832873507575182802771632225936202327255020264498608272441090130082433277564415489262237621980036836923937598572190132753108604587904136036766494270902772176970885972806411862219664474556057709067378512618491083496825213422280877569244804584345282621851114238894061964326960233809911735481051951340666252978602209905848003664969225247105193156551302258794824967217868736876751283585795834908457908652996486943799151651951319952508936546102242506813928006075686099083016482662399064611033239608569563336553207392871199837845279901845300538059926628165252175981577068830243505529912341198571968097113563586020086412134336629012421244316313039958715253253765975952860584813546875356017159362988485529869921458643319457491604550809317225092330915703787082132271090894321106033078754070654124286486295114587492159516832464369153259330738439676216195395452512884545426485361474518772827850340844168232900428410208485459354705004748743718223630106367719405721147659216759329429931023185418857310452943346860437324797538247559715311772475607584812316986462219765221931924431748150215204376910456933749363572523587395818681608494046653534771927366970060327109026264371955353250487676963822553034575275655787300625699230482878795955548826713218197274222787041121295446083257016401588732973240186697995850539842721153806856898022047193512153470944542312749876734991432130635673811220085136517783001963486503350467180525100665490574518329103679626579210663943662449668548068679256796701499601774326692912648388349482135909435065947369655577834353189676882763170216233548743831125063345723243798551876948134976531641642397881201622377206084850611298768058681837451868657259703992223410252338053305176669091319902010467797627565776450803357624509126417283217274345064219632151961705951341724161662860382854049120520505323132525169532635770523065424773350917808531889694169909449733233893146130278913265658155103627748598852618473744660326723399825345341437442791665185538751205046999109471357980827725471418037935759179462564884849614414221125283465420794139710491389131401075488839296032950356197775796034149177801284542701269361793083615507516580855652191233109783276122721016542680554813886697479728201046250532663355183266893132894785861019685699174297411118230410847448863980140628059993426995476345762524368862273908862154591631980965618332179076438852871073510921499708338208849620846418547924353518746259197587572260936865734276275417153544340200903338877144838386573084252608680522820569810251731629746321756554132690901297631024771760989472041689930983284287026495262097314893634430594047208937069650020665900505536775919312747993630497552993358189047231186921927234953365985970432609982390341566094599975885853084366356095435549762762176735357966757793678663498838978256097550932131056151244939190419388301530063733241149947012040306112964873821130032418418498849103332640629353796278999309252980348401907056485101542287190313954004025850148714179062239508386201002082319175871118785972510126108021418354053505181116504240588532855346463450262252180522398848466717366811799744872113637281721308800318251270539824452384934049303423056014230880421063345885175325372889301275038588921569164751318691855883284019003359450768118985615522918485102803188574511116707149225573701223678334992381552883826767677470743102502388793236928232853155754705224840351952002036656506930167452329196439202465284901163170642866915034652019192288566640570556854970506998352280152653201330964868875372544853854672062831621831889782917882884748728333773849997585397828056739715095637439249263178049439890475853570540310255255226839349399592681380128314394028968753233710279923237944796729169170645645570192390169584302986440394221495785894821367575536899804801609908018354136465887491385241622966072402296069463218772202489079174401580236184589616283453964079440487361222720053855106582593661321404728738751566588912727190791022424375625284791376851870796296617116159820531192720685464339033232500338315184439330237889252274312265535245316126009806016761612524566278753659709402705232677164514715347307713424124116243763281870964945731623930269703619804229026668253625235784104511169223490655997194064671843388467338008013748143586468731635761585318724054416530004372830593143601083251088403275489892523992286199763900054261396211720689591371353080784817917787845575365978521765653038162841634449639568283677017811354945988603156014171703588256268177985259780923981317648121511661001951655988371160137207026964216435531885969900417523043806951857088822905816000587106840076828951261493289822364969443778596586668042364079700190649702742200963016713524919611343976752609755479547598990808343727187215005471526521630157824573943495193979030135447115463956919517747406997333489318279068032157757372299731647697955166405948586523797232613648991863194744344357698303093508771081296070599618704558413435515471782151753085768814713848397681177392937256690792669161565394788247397060651179853250715729327146463481770434122602142819162945640852084556711720741121401720077330904181514782859669491189990953816664585708523369263031828525453820500903563829627681985205974610043536718328057246864542105067397452412323136337342533414735936427119113634330660898671934928606840574686188248041520476273648036898347497045917563168331652640747591388442145614164648768102786734282301484134565180118134812527426875350319996863755240844326656535424606605027905087980652762932894984586146936898439685488915900239048214239939979365504360973790123290167236832011545229798456614678237815363787626172618338669113953143387459986237849699631523011401150298662325621518688714840901443943838122964198749321018513364705394042346154941367166781186523444308700676343912455280638439062396010370335708532104228968496065696762291548129321146576070347310727349192215494700873691201537409258310878897500520127461250211236469890553933220931480139365465243612786429064495539250904878368188573135284651273074451710058547083376538176357591935493310912146365898355520103703840403968726659343697914336269506674069520065452749058122887310167169646209816605483799454784195402476227714426733883017152881745390420731583794476680001450342569130034299895968192163703032720539132325173538556249831818798245660387356292527403555680924441498206677571926232725778098480854053668738644512822961385028408920623902303845414121111735065327753673703297809613081947707577386776346280723201976442559478341670918594415683281339734253742006569697439115672206166775039583087264815719661477006414117136460832108838739710611158998296677387121252621422969150540214581393524024950416618191554581954466217298016480309077225959734323516497431562487006453446333246793870441586492660996219762465028274530308893702621327868581081483385773386566340405846745579671482967297327903182345112346413019157983763193077016936942361197045184788966727181443688669772087038595178921193247986923285884431140551955067167695529512894465603506831914956882312207433447070671981166352202396775346483052190349887062117473990650824680046350866614195787402478264827555317142150759605984419005839221262987625679668659595888262628297367014619750744762458687702221710986539614190510546989675326163835833995176278880872928767653334484612095273690151588085894996900339008058458223886202428636071023324113470500583429317446927813182226693063309671074136790583387419913266563256902631695837037054655198484988938445074181921549070969787580648063820048874516016428290377623811362972778469925700506763432694979265394888735876862646610187012220936324163332832173413277171223643714625104883670206881628740652322018435981647223233582558476870668734202078786594094841995074452351302284211000989301339748976871310014926808509587488989206768124626602647122964245897085299332539252626529999937183829484565518644717039627815019117864083996124731157344097177204401238580770824362293067034163912917829601858615371592076268784732027797291291836946373070131381799658978817666367941613184900640146126155019521745912294746867282437994591840214533200677299726934733259272970673585179094243906199312610516729374613893794050468267799311999772866410079346944353662072155325208703524140507654673175149325930269736471619969733807855791615164696177242872920271770461432524607777199163136888957656603505584314112263264816867892582959464016984973301304149420129803298041177233456309833582909239928694779217491065422602471512344321611235395939894934446939390927789933518266969424540963407702508831672802157578350586701933283975990055725344151250531366988572392311877459340809755500748928902892752035058125339450698517296450211259473157429694608337174399653016219491384499300862646394829960194193628004137521320713145104523671915492800889656696464143086230684721423745995547070218175251158484677172786296445755836745534452459266436789995704856973158918520222778871551826968877757164109192620308798625385026459762354542738881276276370769792530337501025053908768871246066941900339546432318895920942140857496469649674381343021310039653486447177158148207415510703997483480232560000694927414487354737168056320176702290098532734761322042657407231279096656116510163267109005362663400953041886504034204350860343340855587575603732013778962532505563783946473977876766064088353719546267747721487275695410531929935532274856241766834412736918518382499140145296490190404060908723039378454429709839118265779193338230403077557102157744088410317676339294044844109034909386483038282279959456009413460813727666875907265635689593365376338803501941903727949116120380978646289701044923407045888615723383141266241156174263304355777592754376207849667795462673323736409526037444949837033756567962884071211711392502079810288104320018265399372618578731951082041629891781448469795447267676467774990921039837468128885348244014671898767740114020354795391553783118103084714975647861553983468217580645483479468454642410772000863633052753876718322616103426532747267131608827489710367910331484779126540228368143776414731020232546476343186264743517981245306130220923516665101520537886397275945830078686866184126276477374828494793021473031581888262268805825282380653577935066110838609126727799994848415107724968407145398718930532673729860635410139988883044110046510362188153668250982113045655760261630165888255581777058487595532756235213041585436306298881426759493775918579851483459848970881800060163727067221112904752482234017700222205970355671649037918181452545763783729386434408437384235030261952680400575936956213635063605126791744641701643494692486042102574691606964421275813344438335968550648870463905628387256785404925614165729961807534931699919568655569521381134347996661853241674384116199806488489151072159036795712379254494953295962156413616905689659271909717056801804256584966123668433044325682868956606452108464908208817406105192825301733552333747428842774069211633367842844433240856597918547586347868834167176488151228305267285651659468150026236759683407204632982693193639820279191500027628581194917909492694038615922104783687769129975787602935994326041832365952653791516830504469093998176539004849095131254759249330969302440098273510435643387356129263738769944825254379370605872518280232652117545513004853774264224362023577580950719854367279230009767569360562176705557861064981073812262968997777645477155288564502564419508721470813216837920246406021162312250049882792491228983908858641798489119045340434282930508299156031984707096793370206210300695810066116829389417364788549386800757524345554523163450453829709164134245203938449405912688771933684068390636869220773571268371065202529267037906162698023088483752513242284581532728424286530341628927060996870828347980147692948656145593957907167761587903631918300579200201972066088895564300035276716803185991247428034839788501949028740412737976155835020417281797118963052525624455539719656608593902844044786966513059802124798234822126817364035486285136623812277909800360695538681649418188763973524610453888239180903434109292151181071707466057054902793211410632103779409968278051411502977199530935137985829179626115025882310919046365718782561438835798328129710647988303397166916187618334909962545243034719292817073243093795481530998233749967249579294920682811166423146392138744134352856775366348485531019170698522143921876776826411107117374594436350495471316921550008866154973134455087032215760028804034282381978612957835430949581755340408002906840154554123342187433016593543749877477471383710665529521832043707674644713408949833835559631563305534324162473890024850302376019833385748457693091428447105383367331527325114994935846142265541831704886665850019168432401615384868990690127286025718481450859831033011271612635853155363989087215191564772595333594170885953318495059363496172915877189368872184049813754906878055410568649669404351871424348627084928289253259440318590735368572422711692783063428532406130625586520780948232833212673425593003646644179052083807811392587279361535874240551906547831190506344108866188193407970956111776091306861729793317232856117922972503388968627314565403789060468001072285767945309046300692471694473565953313221374001093310303653936208769242825418293755664895251707112831469259552517460801435253370748929225589994123215279070543242794351114971849152892854607997110062915987589655339642186658966102533923610158203300143669864412595781563914243420844402197976885458414464244763883152115967712988992490356694685176078166422172972711853044518000842238822495305678359509845507241836132610415123413559987508964374663046744478162828443577472741601858695550030033393290884262625120889403273698217323538225229791379837424472784325424526257754311830845252917906436284880384797534146589541659179034716255578271929425761364094203938851493791759387975966479644691172451210870614412278095459357059471126553261800171842787355205268540729205622277141634098733403429464900969871842795573099599169528946327027306193704277773056001625167895755355240895496030670055462980865872107484139581353428372707828643607140433921907519550045139330985465432041437619707334108134534038449881072500183114897233435322954278391982533884350302240198868397806156350119508462621399398611332660105050997876494580324843013190594654602730323212535154949041854566168874315319738255734938825825383985149842071189017585521278439385033258651707654982752354954610460714011553637218824287039984761515585294103290186193747773922320849545368847794063817167342170167283299807715406193322082042186947097660180701671957279764455421610812974489701166360840046949837495951905170883765380756681401817537174529957050551696041352450033984428552429711378679478398931451338589684064996645726778767273598555430718925809853553840527296000175274709330239146088734180959495953162424314875016489159710152083346048095825886838326010028091982346675667566958062061268296662671435898479283879945533886274068053951760969015295176418385764670248208889228145541562410203545237197534303190650503918231916166321815931032890683891771818788051732932542277545348475258197086130376436111099103275777426771713584379516181758350396627211187118386264860241862248155345149481251401522928136461969103554106600664968886520051621290201345765631203609430361163454896775533748728985552245200659566752091118761451874224637784871809747823244034139528345552142689857063779308819664838053465039125507053846133505441433445511933601290845468284649162909262485498768666365179481533122881437474593083438612400291723792792105491838341975300089345147160931813372842692502645819893476454531332352797114578863063351871085437580455930275362556448098040673982897209386406227078203171206625297426951459293632913227957266694582345142663446088914381902349685607903553610098449954001832140358354284710918279120464395161478748794646476411690877555852492686330149366313367979381961775009756484669076533185768647077630237608838837938301034769644487280772342508339248337519665121208912106259749193782854956411516223851162938912291327925083468029592213944583456746396969176233822423886466474559227647294829046387631986045991782274813243071307342829475485310698279276659745971601256465731005193237597710830203108217138785538127583657457886861096024401299905706763309930198413019668873287502090838112934898130853496111670013761821391231869421939448537375510106740781604864274519082366549831415666400522535317533490231158457386303525860785629099423219049590981641143345255646223162665714176516482800944398040369683047139230831358790060441029110088978236447476455118098026881818579277732076199418725526951510715371185134095133486692674677806936606525855381641218360875717989649073290004899951512807884772835320464255728186422854279844731589695839620137900725784346179054270441599882114760113721314774389205009969885489598211780454305155769679070575625439752946869916094686670679457335626489277060554151566073411461162156191354626102854405787479208563352535206824489087354000767680867705444436481943316041373904571598509762010548996958870081805082560663942940189364356388788576858081812376916812736463530968863676604983035526590556092499915307873170793907680272563210599262881998340886346766946211689122192934946067892337630609410007442470035048126222437637772738346025989078260889595493956830404829345337566568447913430810366013033513316549475002268344994749993767053467907996128021809284540832085782508632538416855549695094073424242614203720575654228606973639851451815546984125164519000128380902655809969866574715283492031795623859293548704340803504036351980697855850223035607442499482542438656578150630790546260077653126585045665327689479971604748009882857267661680234044499155373457252018113516789373771259913707888100516140269847465460498891806304949461237667017783836633458680338530920038126550967272474685906526779702409378810540915703181642973526283976429399173281390316152908002351663947687186793200052714592147765533560533331550903274295646738786048426738681534423354996002061155152868038176184580430924644569640934421703862288675854021239482415974899686844344624629403574382730904374728053280797696473267881354467008954567489826376895875910165226842280821261562530983984154100805995338181145125468473882304153768779378741206949277007154308737295619061832925341149579719826226319809266675361080687655712485476467888065762604918313944294595110721001026227040577290733607344274415849601985129544555813199164182405869857183886225247840619432335745195897727233756587226216218716567535676429810929079658521166989772256616707759686191124083031953243193883965391951308044791205226725142658326739278848555409339279495197447042930596488980545877052483498694333297573554383148343310455351171801827756421117178261116830716945045391503468798744156506458721955860628570168839537382597981536440373218740491004584817438712693118999344931511289790500675852789413459846297209573592052841875766771692814452001274893783569249321873055272260050260404726455480412366314282625806438625359174762308929605175616890409747051108464928344111947624399765253971647963496207114340057384344219852209217690705170870868475352532875437972280685681305137962897945799509996390851156330063108835036583469061722537823100447308360518881477830669141537357602032109540009820426135278023300296776658564600718689691088247156467006784419492154038768527486209425147709865283285501704275518794049717488624198664406397228477733936427038905655844657706403988309721479018009347222523914877554518399197168455861153912401202120308950039793892245147489791126289314904626179298601369994823131210809552020625330743483098280374978456536881779899101875158678989898946791151127152534580179969515940271444414228053654973013738684202076380565901266722505347920988703590355994226565793473698787085638985004236492832947935350808923444942821272223863373726551062750528484591642187475004560834379469395401233492854518329326779894598729587775604036439349067463030024211399791967954771048729572775480846261007786144072720649785602983910649692365090892318745895524183418611666072306252608794173678394700452529097367005636216916730484855550724506712119897727247240163243775441604303775935799683607775830776851421694088578342270641666084066293754485358893240018691948723017945051126428661924818273924821309964575191242544965731698605416593675604788271991720915906433785388554022620276852342118198351387340331711483129509564500476948169410901734104096358702961240323298558286136227927105243351632093555831094917210398520139003340663420142584663138746808438220794464015357833363102089540368727508017748071612236085726411170267511059590055729551340783625444001105156420717823266957335601785835016400591994951076142807562907940200120572426638057525618944207571419102128762690332724090821359683556496718153062843430645748561195595954707374012102314002510564954539607925656881800823412300341184461679855470239529642289140412088470794446911823222483734329669372800350698659143527441774421475461816162330320582805639966285680879916250161779902937676310851788779914652742047246685330461338820406724900133795612449142327136000143454675988268073151028677082700126452371453649323529482392972866440058912581323115746391485598171667659180596164926655636281476800331623390264431851292970083587859707147259706261844034969492481148636306428661444596925240882333240896358075867883689113223698471919360223337568294312086595663459493666419507867389471211497793581354586338044816323571422910944144246252527345957080473425379750303184498007235397720700206551361165291186228616878398385636256825427196144034286219836707372999774986119319049399206140924580212153699365036522099124939880692640047976816893500299591126739656755906198766880861902010701397898066686565038297075067799859091738157600848599229910594463862577363620756659089005178669971072538037048472349202355264301025098648564251629915434581914596174676010470075228380826876746994353862085488748651722944925433180342272825121981028885981073765706808976560305607539020666455015735695736487927805802897741275659779280894973305181207630845619064723992032237993705022768634239459674875705766004330289466658341590966637039199747805848347760195675177727409590421063184665267585229991568704471856065658659693965943830852606883447799870482418709321446921942006359046427503980027209274160116511696701548559547474085428636807211922202534124273207053743410502464518708362830257516918113622368447857919538301283245336607691296059802751285135458968850656926210575387577608208079462195883422289285327850536337938072689570282414866921380370451771307375653583745153156332103444784964082363540490288066550213669788490684018998016497871555165702426433203392096486240286084542965146086255574177598560114950538239316017993996233927919924503110503779171775299122140312078820510835771556677848553461720323442182132127805352598767619336447756153821527753944228514245583661449058481500120249665442938341351710299928710989477947476098645958571080625780838477628704469661760461460907886364770299702390181644285725081338187933040792885408327138458278634579452619646731901626578971283625308222888355309900244277300846799283029940457880646010648180575751788680495367831062838627722188161695431979331249309340948568295306119855878256758426607210468788882833530837176998213447905925021807471577742956416727092035715214047723856610097821895125823363020105773773907195684271111662965059369239035409736870973006772662904287802490648520314439179034909016070975149456987228545962770989276330468608232000336521607942887325239526015861291316786114759565608191196819338727215510365846304356891997317535078164842069748591091742297558403658196076921887319424463609334387041809689849838032147564902312075535328142014941049886720121465296071122795441738518514877821873888767195828042440030416106404126867361960664188732901708158142092803396930887028913823367954416508548195848216926733118477590046921680564246063029455674778934391117621832109681188731955372252644883243343486576157602140014911656797039384656493673266254535572335231654992814716900593507222767576029959030996233348983338051814606677948157449876905034456898181422058094197483120155981606476896003227915829009824458768366148576938748710169101605138893776684074003761101720655974812249317585552011060670415378263914655661642170808866910977168210005110803940805905570954081731838395999974667262748438461773351979313619671580809725718971998429022801955885001545467734393722111311615130505214171273309203930736082445213477862237487792814022608790027185465682439054436713222457720034223022449951397868718954159658309146472203446851974939014044037157075083901259238621880196775316842770830667843433158726131407862875464651819659452024179488478168538511617355209736795237956454977446686780539574852564746056943033129060697952770770570535708474462814829658893096495717015800611617164383626454485904204804329390345889677016749231540574714782350439496730924165296539628253076932483924962211914034138943101528519026329555048529573959774134487787324561392063735814754988352934099412573087042565470412807272214949013270075351792401483450476407163963667921552637334376702255649932176461041667475471204462184905659698288671837406532455871783318398407791227998237978835573431553813761268962161735833253188246792591700059085161859587499709205324139926401670788277891559994496518736535472540661607087414787222742343078899601710002656634215677715137304453017256473722971430243079416476262459262397991764464957488123978688063613427667909295514993284194470055709656557235981582561023633996324850996362821495918874885840371674757512791323376438294839855474784555082015448062182996744142342787171867533930646121663845834089181784859323830051975403680714170650096075744146719527676344591770421115228479454585036129709496370550979718945662467330577670768997687097336350990358694454450404903166862469006000935075895625092736246038928030780803977316732435740311644620191767373605353159578855908612656604178016488994123599451480471804774765061350387235771145994802023699004387901355228810311912207707812801500133482706860722586747520102261750319835240592944449606815073687367714721178339428646453860882239810194118066674472424025312169104125044800222533457168686525411836906271236527022333875539019286283927685052921381509520949968734291301217174837805913240306873441025357716320310138149807079146780657493991724382784286352905856281898438187830724395594707649056541288382960586921972879504236817386503023506044560733552718409148173914497461839899450524128161057071131007367344594443015846522674238944617286014527452999052938774694366482301219007127655315843045084964680527087321083092119762906984248129418574890447632257455704742967467360614205723219076282948894116862259933221195843696013210285403256520640687052575001265745760575477535157874013360907584304676289815373757322150829087426669584754969633041584372077679737248369561163072055386442041673887095526137699639318704040287289915487848116529809416899705616420114087877385629127896434039113569764307469159204580311367028664963077786804171647145888117737352987154346674014098753166047670916394546215992362336405244870372933711141518270355915285260525804381223097626157887424903534195701224450891933876290184676978649867552698069656625486191994049919707216036065153190574219452158389302541553859665106677994840966017943599389287366247146565336350904629698700914529836640579205632084816454067732665069033170913289924576751402755892956328365831526566151669946150165320237545206445660501741850782941383854829965143097035641806752598579091261441259794261474352289295301406720832615089642096400637315769882760071197735968429434891804737151193601842158376583211647118760266492924641468597973192113939228249582415818088160109145556349522167009632729478594186532257912479131979176974456153741876181101860454610566223790171335521926384153085619207088256618538016838190128680119340416925463205442021415502648151856826121857755248724031302831380651174108794208533674653021326501998585368392381633253819844240966563567507684595859571432220869584537084516285411045621798819967379750917315758685715781690631247699725607514332853424053912665495367535360487396451392839047892590573440031179020434781433285669179539864530600025510722158632402398657845279328609605589789927903318335670476429351735693967738674991015625406723227968760571184559492960110667926827503590023082504562740944821775744943349659260743819645803696610777608534901797563294967537802398418801228099579309952720793582495244731389280643304380685089423430437907754964695383171952086790053416526736151629618691650845636043604178787354699110274755708493505481372569198935523827885989119093759722499702528703651854226655229864256103898847536125586598208240494609561654569919269707333362971610676240749924656681684247747757437791532988459979153027560958560609920343808043357429932164958502899972718547080237401704507099950009010067911779657491803262847955144244449904807155376968310025340026622139882157512891537405582271697115398558356471913339398541714160616251914670496034933515681887647965334249789644230233330746521839816739030906958038698559750205721846296015098042877933466169708940595761741577310509667761276157697106524763904690827525573724502996284182210601166668725543140635159392638533660171702531040666197591607802343558490278499691533845380181521505203294872932775781859074426492187769636367266891840952273549498862868728509900849615044562477727879137954546391729121291178417639110059919812977262834468121058065595823545233509012812652348657235880847996767282435952038439357238409663726492149312561614827571696428094683425143710325843160118429024119484761483911396200124936636264735474773033424717271812753532497637731088248780306226892751724535468724481778138373623123838171331350215333878275914352852271730514139775600651124287065527080518822949719255667246674449680484426097898390936714434943476246980396320586378618601695817535223780639014869940016275063508050852254193761268895174771681436445522134162619550465591714973728999994868896600166818595289119940737395614686685873316691997515639380602232035226596256396390394534371787575884751116444022602099363569098355892394160927988178932860837211439390800344458458758274083437019150645807921384306001405167462003472402419294733751974802639903890646404061644707086307858427621416386441438714082433698052357417762809310980826202275091472030118553807388966743038509695293320302525961090918349885788343173329952056942199423260196561624732615565479224690423794473242163306146241285337350254783277454744603518024523349090629893393600733142960415486280993884429017896314576216023531113503702427184332713185811409777327585577820170014911485588396417733640051381400138517282866520506673469456464272393173582124419638630443130571488970354199873692280175669439565883381081721929141268534258103179673624767335580583616939823079536571718280300927374802208769411649921267642248230244164429272411334473766204774922014268423632944484177680362189880857892437554118930723586397452687439102297721245155332633270810796068975451261015084174236903940169017389392677394939212734473498424935687933530173219491620261395426950889999193620936333568142164219778921010834261097035445547842259370537225212601298443077951693178013647694075559708931527736575570087247439297165016772923976705418735964428337110219206043507294037484082187247321683592516020594527126939242762568595998434461084019643908079142396068857895718349518327595037196955381485260771099608227633432191352060651220059878541762322448298257196858626982004537964331538256180820848976593279123370094925715667921057651293630484923403052681642301121873784090859443274426484706207872135988187345525930355739431579996646492977626269419086893911874407532819961886070612686576138389477448970086142751717561492871966356095304314784856911678641992863257465565535748574338998620083815376275851780085051169259968511743467848984306785131576632564423753507757211483136068184144980643144941906256423263299533988610963139477619117149617877117779621924790351004574586318092032826625095497300710215619379104917194960264657637817283913240396613843817554896759342424092848169610076840652677590146438792104665180428365374930902343038309836510717578000709005979413930712307880673856001213286797981484236981815774052486139888568401895691320806470870411944578536349510120674764806141720767542517132599799284894575431232618258267643285548163145478999878450227943822385440916204125184533789934687480455793808917871020460487907284946597765602594119596831558765972434763951646624202744121655685126059233148182494115307201964283543729504739245341215602486635933021804915183746864071125962028973676887874523517752739238570701501202139831341526911115130322403093773232295982265626206430796975881212782180524837605094328274355221318137975040825908268153922410462487461568327270904901728486868589751082673730444256530801739812307669618614525046304651668353121437418345339938095169662976899517230116975367545493825827808188010290207051089504199457114815425843143425313261126659816564254545383075263656729836277310921860183217718453503383598998805368813697551652336295248277516889886201353011075322472918567310455225623521273536128344143106131793015459207163385955866905091092971831440080256316058546220409805109352230672657601934449768456555553734065722865035662678462528057965996985235857539307651045388406520836665469469179898458059886154504112009883090659586675370799663273152152484639107821094795564912312065009532089261353853958156013312860928919978850973519397111538380441733251944666191869443863142269858614111664479441365675623800507008980798480115147115130996817411177123299668483092401064384701003670044257054817904138544640277637302588340509001411219326122939064684387343879423655432299155714096424648536627626009299644662506685877613693127927271105006460572754280418948928197520486097716269505829091409813405048471386973171870205662925041141052164523688219728689870994544127826167632270603582728767926739302644941073048589140735894213066526623461255102281129160780236048828032941279525206638843101504287834124561212187353977118465344517779880917204454339790974205946338333337861127186101265685349928290007594383139113997971194281210219074301716909097880949634697070998254641970469369675900871566727509852764705949797563976877297141287786512827904226518652409806889634878630773973047541044587464743756176830380202726997246780997476868071173241658540640856758944846126910516525083906683573033149919016584532127162428489345959554577596720454320372697541361788683378944993106747336479548819992030197038707834778969877677060917346159797866347608327474920218898807090448017118827889306222561293029705839946558603203726340972874243160926337598613455797560767395491381161521798804760455546037264534981635656451402597634194340209146594836913100488370942335558999490095359074193305785722893906392773795629160280608824674774742807774374918382033794352036533756790210355261882030275309508973569418225783304927521132365480587687086659235264243066832072246403882406260729155080821180370510216851265486229782496808756573283886069544962944087249869797418536166535193527643330191197341999945482056396355982633293113660577436537050925889393748488472295992625236596395680490288452275009120276856226717265199713680108687153858899723454537390050845826526733949032434735372834405897081415403072453847442130900687509668900898903954677014414455370086448047146544926432102233354883593994639819614734863425686965916183642911046370522985410074344028074991815020787925426844109576710649207966305846744266955418088320725475594138666968222784445427696808767693506805143493757075639944092150789566388520622043133300634818841567376263559092081631731690020796714354955999071382582814679406752707132710005008743574321292654771110929963703096006727229028396227827629804366012084812896892150476222795370804697190856448185899780422347572540630416649155735816721673225161682546761782420073440295610412312264220437882485598139061493382052151884394836428419128878154024367255931964889950050406112571287897188811959160383909329686939655367405040746364550524771557107317177090389178768475598964497266751979448311015121703834002750075465898775930130540631792532571289264353787946831202554022595763645732247257259462972182965793459482974447024914012970903228017688974785217407851630094037135436291874673059801532862472538588937434198797190907232538741783489497587224812692930280799183303786823221856913755107050520092068331281571652208884121203454179272505266109979089806749768810843796788777121891009141129942470599231617764595489210805057386318768643342727190463763276562222237440806389278263056873324452106621948363757926988546853075418660724152269865259307377646045501219544067673566983049660143760380337081668065781523842375484725480073773079679007382298754104139850877514713074457868086413954082183155850272682918998052635688518642166665761272468578400644203946414887857610449042627979885947985762530370097936210885022562941659002734482296582131129022688105717362450164751393469504228648297343043109464823848820979763697637665331459896428833097473958847070201571437464261249559431951347394626992272376644931076121128664048629695830440399471598144424966260810024550160461247637064622344453253708474471696871416222020175696049318444822000403943205670339484418393914698336920650441586121969798690079878280136410357789770172210942017715273041554929649320810919973113533971829912262673641768902187591168872179864848794818536279454419045681851451535940834355147235633757505572091254194690584267381201769876779000658671415661436090423404918884971368355291359805616696696561429351286608254904934674414201650284861616491529688755355349439354261326023520356979102939566523791812735901726648515975619815887382834651082787453349385012167251199309012798868473563701742204182615658777760573117253513099507141020614734260758026357233457001334824116728121876235541295950043009108323543116337599716964773727512057218551745449631942474194072172845289291742070266001710858516932319716946995938235627588692101391197440940198957492717716294477629260509673990336849395092198439836939644829597483828275822346533323375919781686569533999691265135981365920262368644941334192659016515645659410679828580212049255023574666626942752504743149058338959936580506182510654874789430676448528138359768562183501613385208522614166809105262161816577995706280397754580731338079499640179017090978066570872244148420520433264798902040564233982923537477567114675358081443215622872322169973926621542889389270420617118073522273871020489429059325187632005099928710507601431421536557387651958953297061954608081582766673987684441214364248436130207648268707069912702985246306439396055974927255158529838867293653502628510921621268840901963512954500796135192662989811435860940637774041641918384954888654501604612445816460677681941929868336792013171589189492499374841564413809189310444698626952417294697810006839675065208237802499379454482153703675789551616202364461445872487757875288206474677160782588007704735685335843436291718694642705847528583103632714903495697883227979532452949257082957262737215755277272398958790419449972420899887488711619740426256437119929288423095944178088608645053263432126939315285071182699311327649894746178372348642394393813808997261342902399543022768946402830327805951159395731283097769611531341530019669654428361461727187929983584930039865475204800051196841525591919851928266590999993781047206447958758977614662456160471611967116829679595754116910436236985100748960309531347325796148296836106080396395319086449282130988661163043418753592026398798771199138198573498916008110775129757250019707282261283167778313522793498676712020176287740604160905902758785704862479228600986761997542815848713190795776450201645342464789378346240324172758409135586613710869931460136920705495503344416979592128513243546773219353941521097350486255024005136347776506004726304994037005332244993299868421145649731365231130081645023054477925842862268742427069860045241955562367903061200071095328787618525155040981697306510997913203851734433077958946887842814739711965229184898325393475349857368247940755463022832372297079282292219052364319894875067303211074193828765552911375305262122357757800810549798434302101676558826046717669484735059852464165412319821480688488554115589669182185916063423984735001454221212200413099743984605672487855791971180838946610370812606963593929814183099476070264791987192355400302442839699095290973750862416949880959632251563197355269503281508147744629954459074508000365285886766889556663067560782022212923505980332738527165597755487483600814431225725362882164546919762530849035331920458222241962781629301041071257854147364941694879229266395883928172960419402508432598662012069445818167512179956444655281252165773520820100172299255839619972758992415675217942322638332564036069742751360344942595764403627141877886195923407317100409029332654936726724285581933884094534107485504580852800790135902542287865234995995212454075450342967493855487040475762461825731529727161670738785511655530740391067753537392559639079876712713954231759525796488433286725353367717542568676382809107820297995766070397811995948540160415856492828052682861309016961279149543320434439735876613653696103691374638669777753088952923769358511500816165776984894181975762505521561171587729465809674994638750498140373447574527640869898079646536752317153491990701114775594565261128125021774739241931948875215771646123964857626773032145482417575168937872488321615148754665481644907200523356608456838536953353302117495873368765338660781964162225336974331827158329080011133700155156273547982038146395330463222996096599135941192972070351260086525195426235840038708119251042002364329444617948673366417954448857233173279056499446050730957542824998951657251399350782348053626012943735279762231354489523513216037135828722812080186917847762994641531291319764800757388922263011329490674973726559122322457090446188821791817025573241938892698517858551473197284274077472013654859301352913053456779160314950606840445149559472641748644784552683433512549752291115703754549341839124031754761934336814532366610506911955106744352058860151122973634569166093820985010323994575202096687422676925436273093539495656572696380169933601689038354074465370863652640400709075770130332937374345070727560979500834898210663418021050958779535197662491350505605266082845346287540432798751249030967847423484393676363319029440699200979117036403615086085678111345178192607364816987094726992125929240648157631186634317072876307877164694630866398410856718803341803544221604911876103785926909619718576595812344028132511427151561954499263596998464769971081721848367132801430345799785959305250850738785662751378100743517513204529501288787968908809007788698828389708920387826498746566629936511565779930193142573459491901049798429959402217932845999936141807379558156847211097305870410022677595384581149298728005911446990627779875450054523688486295029332636807086151684799040168214029777797682266183154055770160499378840795548771377046926982043987085397224503802161608594701931150872885898825732771741741638898976748792675149498845862497959822579426176196285980716706114927642164773711504122788689586987845914699773347463155932568066126965438325326592850209638124426075466661801467468530036511358483556068129533621891562477937194053277329176670991848824409591178449637177520077855842785173697005150457797942284148939822315205499049711050743273180412747705573884810614264138526307810167409719867171583232515564501801732855847161051041067149697805938968613123923933058196022700242526142857115827689645626354652012354201087558742220625082714211072428457851537402324600777024384127339042073239581690459222524858059139513926647128466342684700729247581310258785908562941261150721354240188138195451821201789637871746100940898632695760979714069305376518867234385713055790654812655578388009817526887161426021390767440113202636810319149373644897360186624597267924922352501533171475874979602170770395471285681112589982824533730470825429275282868040703063171339191897495020894505738609740255898058794339754904258798637246644289412184643702341897056603508388347937790533534525538217200518304717853560798403651493776711852500521925696074579801808420840555563895306002648752886240330432774865050220574651417792114615622375086415019792351240986756139696490936535182216085952577152428442157902057376336102852445291316729010507234028954598606314049822165512307476895110796543016334458155002628231848674301983628889698411348203127900351191713708918504374168922437655977044334913909314404433573283217526739006580014950951035557010272777299209208560183306164197983496606959968548351200599502093414629536382936639183271418996300988190547611578449774466127833455934949445847234770650884986841918772939587564809780194669656446764702120654716111785740569000612640868710442861649272486565772597746544652560115056522554529985186238045616608867197025070086948777349791500551650785858712086167251584833141839512818473976912251832208753651998016069556353505094814305665922772559301897712697017048263579974576260125106086832753118889704972908471879543048330832920662007805653887532637341009849438854408734977964250667186998808707256920383279122351665536272925177387655179402961754146422556739189907253929542555795226650424112865052518759329559757118429610503915506381826163910778122967861503197195238785296961299127707247226039309031368353422106974904588995606948110934249502852809970925856924125835009259183518225536016789662391213792575267549048895835654018696355834382151600544675452088058573578296050362734232305647215858882549893026107024830026071412960562217136879069569218963051849207159975524001274040758129596976876302216346160145599266849475248606417169147476600804783322094293630070460817059094281572401810320821380474222602940429681100947671063830117329745085781115484586540045075338759566132383771454593576653867750885479674255456759895319587500985734180622313547801608028874527342464143262054123418488425998065810267455017873083671823309261078875476322097492452356911564425685506472677257126728530844305077589924980391659662176997100429610831684970269307972816983743901566543169658188268384210966815526946410458058212268750292210184528371170341646319372275935422320136107721085165687787980767143678482154157617994383766759617139743579070534382327985099851814426654445895034191678703427797524162403425267176086547722820732572053872881166537115238629534301335432962021624841286878582937233418807657215397851814424601683218700306348745032465353922864092591799275689032795883014005620862466709159683082815107430600387121156599920760747850956071786115496493789089795506402988263016795655197341665493857299208207813498031138802300738806058834619232929530655117244115242932723130936186465064087010118513126951295126384322454734305780739841290351038065655642522825898016983746713306040779625983104995104406649287190421937563701893029869488463021565817241143612727505949584382974960891040740017969338373363516447789775943293512050951392545349008401914263810257592230839668942271554966890446375201849103168384909298653060377989150923806119260116517952995344101570913141125077647113061665287955731834464696378207194166456559266516890795034518749272276967236896445067764568030145511618637384081281877996475299467816867143999609560802496181841460855553670312785448068269297431171087632172531868690012630510765481370708361442435453350896490415678263072668497036097643977398466502001252956817103885340379838482933644740887561220503293342861750410865265479274652670728507511711041645253009740445052074496084329967058185867949003217124070881276950004182397663176141086981401768986913885549464406627368481650552889577086184910801481062526166864246101374298442229169735133170889284502241071789894208548349263084536889070915852614189766728134556388737763919268482353483948829871729328738236131024454124642244729564623115038869560394278385435067143029338207208418766895517521554370783343509691749501866418253825830149682620267248932623816906447293464041981246093435361420032729312026723638498325046660463251626510230347745745443738515835168083421922483170878918141051226435753669620517887027388842331077497503588916609829482838290969062352218525461502222698184969436895723957939109899913518690924476753629934756327215802317042932740746969980829533587338821156693851970570525207744676089276668940317874568240915541063484371214107366847641990997782141513414165968628120385336296491008905555944560705853984956352539935591973891730738300107085925751237704514413380702802336833594210266635834288241181577275038400833420887909622724527186930237123376932099744156321000600025674668298701850812500093514464666566513834281149307188571327784751792459180789653796045951443022351068873563185177559766465477624787609964910840780128052003370439283324325755502171806532024345616431862592532686331092964685855800842475399186684968158345755682163495982904506980821149893271385081503454709904545758653414144847389541679872261327012352472899966018816876197795042409908033950650206479807916833694488424512035962392562736974153262846445267375666535948478565001649599874262185342317169563973272846652999239079663163428661846753456474555591045867862544533582918210056682971324396979949813159193014128337685998116622377116899985622813705790397028150583932744151522638231464992261160560477278469696537908932560839711451675399071492929157622288127225464205873152980935288412393886162060476926400550962799772233012074018470787465000862579724815919114784570851384526513436478195314607240284557598933237052043836295896779438730278959974980129879367422708203394776694913773220426626493069758365625601514827083501659824943195605810690728795740615932786482627972556537001555983848487956466810517179572079090786053377571838066949953841392721352632350078759940170166845160012289821344215359182824814102707798384132505541061965961780985565218421832398278255271387705606572485742638073384125446753696627022347513581570424745025953037007827984043637353252961613639653733319885717378955579558734850187291886092725263130044327210435417618023241877162662270575704431590909854661268512021468408217561030993909708204649612810000538851798023945595438847099082036702168424690606445388029191133385570966457794326291524987243078616662935206292831289195023115956685024590639397147150554719486987317235866199128963897758449724305865209711774172621279973536140785521318504576098286299315392667473995400160802820657694921727441821767461546351870146657296676030114663405079793170644215674720914329730427377007916358746274669586891557600057977150033310489391104398793120259172915139458543211167105598080041524495550480801807595934308460293598430735048593580549164871683060999111737310740781939427705182781707674956754357451464274707453828180498511256441812475917837816241293324964985176551029897452215958737996740776656215680989395103701333982992547124784046150148063835028876215709356887988730170041716239915724991267810897235351633549265302106987820330734963766811541579863958135196651215848769060420610911931875241198224147280817911475771650027671875381430480284530675795127851077053852511942642570736879118378530517313318460588431215093370866105102270396991809834908824654967114395317322877149737436238877650668773988753397448415125584052875843169691293075013443233255259582374225338712650363678515969828029766559481846510624419032293175676844894376641082161344496721169591949036713604005358580752345679702666000077576376629372851438174791937620028931440263458455244237491195174362489727111830389427339101834194392698272234387550669801734086138080889809092077888836858039128285768729107815425940752677711953408372289106993353196013525308242271846320862683918471800323734794222273305868133242106706833453654957649658019996365000259069909709515134610949531198813286350333701656909346786790519587632673523171227875059562816391584127207941583818962342271083891256267466003646329681044486964052966483434943977140658743923167963970599716239245932534278840577422741830914380606490745981200966110112784714725066389584293849133216234623962794519533465208386386948030041990744638583152592399503039908524071532124643052822711065427597233899077845324087149042004028798877697613364935695890950790296469345537794495894899348337134982534327313156271651281161756759541070177771176667175417247123607445662548541663571224005697958715000308854673741021101223690692963196053585172835423147457463047736159782625025585260582823915431734176966635531394663652281047730480847858354576093763122952465094944382358398499981971834434418446478547177614866931689821628174438641153050823256427120181528586932361407948127953016533433107964508814411875895840315015358906061005089794086304982134868114760196572277211535422800290822117828783926493141308669211482471517900899222129378182225827172338134875672129988978106878367275199457434282244926558327932757975386624478981269211498653647125068873023147991253984985871475019417945199239500992746066835743861909807907145533441711625420503275123348864088270329683075090288667316384496162926095834518869487222057373452015520822958420992527176777009017570433661764083966197107813802141653783429937447150218596220300820758452991020750737128783427918757297485115263048542909398193486011819208131723062023465688630261162383319276550628783649359946831682239572312695991588597695363724690657297687500198414374804470147461506361651187574970334174525721227599119133638646886354379388762685058547842504251689927227903355041899569998509989877197994059184735680092366257116253894329772983282627641103236455469890605572834458132997126076884360116570045230842918727675995180128643676824669481386385433915095702301220907627139187120385328052452998777774135079859406228187885230651494079551760037391187930543941928558999323961550437963211699577609890182378381235496822173317119467788629573063832438670069375900759454841784872003033680551742952979999415374206436220460067505843972632061749519159732496636416921989262352368375061260504597705786264585428810245731357888808768326623296945978785701773457503157196791441615245797454417918766924045938207520799579914101547677542604421824705650885109753229830363299003815934144424837427718921093721535963098645232534114402234058826440419580579047395292692903105399826363018398283097746944705572505609256618156995612691777847012676070379463051822526873550659810172240682624007202580125054779902997759960806954900437949875225903663160923424177116951808218617203338313297218000960182981725140977433148460444782271456871136909815820894117239991604866767873762684739830575023732306586500699950936092877358579910664375790823618300019421929914159799432017246003293303234336639563734257202116024110651586542739218642347548669525941036662535550582210219478705274805367628106820943874211374602419830495204482724868509112798920466348954663211247793861266477724848288230332014157637604910715555883127102247724427240893966121314478753477523617275522303617026157423072939573910728193702805651709711948211292461087638074976992619249870282021292078748147696616327711895605445419584242237883751009107292763217364714491574679631499047951794018979944324544840147241313417884546071557540869634080580330034218329051090194127667024306846856511717837611250971925636554145458223062897139518194767107392020216945888767312538893474548934598687952744535397892145536025671768716369971655749057859860910038909833859042021726850086647554970411539940129755094526508146462232115015282728450440446466401963899213142581454271030187415074638875869841313102903997454379179026183672035223782526521877255797208909306355173464319368478027481900277820930325561525129721946966487738414778861298196522393144015782753565605183176379508903987805853584567732068206988630578229000825244118858832365388257683937090263832575418656661967646080962585751673065113869398296310760896116323479143948231915972813557227151068607431063890061217292173439778144722881389817792523435185683805832622621471189786373824215228928184720748524797537666845649711020427864965151241936289383381877064334193269408776908685537796258759510883405639699095876576152294486881675949406829135720316030287068271462513887733749974801514135662437924274273405084963508401744103386863188628848199138209384987772999689634148513065608857868441738037251154962029609451573686771905145401450043453831765755367666467559450529800075327552721717753413359024991175407077007481960945910577991345660283556352448586878288603173760411502977793046472120353766179903489073183119773240884766240382617842756457576970314007520040148916511222343032142536924390133480687042768818506918036056460748098515463608171529498619287839861956070814747784294443392815303190245694061769652116965428913320432284900243884265657330943691868808985927460555892444752125924273719926618349208791943158170193701899246219805797626938225143418982019597075751325640472352538456561461859584963605025811533990127735725675966636419131250582545006315220940311473023610527890282517872862219045679554914389181619370954921927431196669006040763359086272372409744820699516361109804711112469896931632942375146294840914633755726164341352871562415253150747705055034675829242293584323077172521627589017468480182350381217120838768285629883408120200514294558674649363567554324890906090763544200467095848427525201640338771256816282800698609278786482502309454048538453341361056966537454806013348659251160313554111497031828697348383084920867579647349249454590715907363965964690969985074869883258272335326511560325524132136273777479019676080812514670135085869245910137409431959794618071308475133264293850450763467862852289374336829038191247796388359321520721962796606580352864645968580920828851062532593464670609328774012430305257586002168044046532812516665504670662692332982456047389646744597304143603244380047309384699167077985804539270171969535855170969979210372850920115583087087129359530965681302286145841944249718286677241129485807512557574572383268912862456707690734791539069433547277290613915392742495515795460583074616890613149775146171795672530050503933125797778593774680994870243275934277743432466121524036145047439825104508915003012523240267040675461158398477040357743989032145130887677035126963438289574837106801352198635891819893405526482478631209511570163319739462826835339384460932032943378991132484899286785987687903846966763471279357746786828506347030331555756519120919700906542215454071934971395194639869279054150121765172474726814149903852393040644413009360355382593044480306079114557311255218062007918966973146509474439453713652746902407302393568201842358109286706682962795699275000114015368698024180985482399416775256322505302140709650566744384191999170331423083765045083867496017136279894551934178211050088647126836474203410745476289906227287217220652020689178696206330551966763191303498247390579981786620055120249351599556701465588736112602735848447676637197494641945434113590010120314454432940303168622258166944866394524041136138785664413316598055091058879398363558371829559160427348788285527143260639186483435312110786026917899667964263375311448576009804396992473976151147326477252236638464161982645186355489612165671753795364381103922776032712737869158869880463834551418180866145981583126669013737640677709486883861732585805565748476838837740163214964985569776083065046324061089011744100536882146849125943579284538876779021838119293329382359816296683808482903743992811148338610890644677105536300380226176616868718303567297269375121084750930792892763209851798099423684075967697357861619298973379124211657716936819979079658005112280468438125643236198133378154385852713620514579833258429622150903971839247990058033553721568015322928688065854810691246120837731572111970370043378456657085163244569883040934665198215140923271931179259110046855883557076052281722437001742780605704786774023250641920510817738792906591250490904627772482537484782624576186303784579007080873250155130473963904830269003413911452179704428867125158503734248319449831004980578117849491516363348220608017002263726637613047933136415909336460431681816847178615142160958758447941980016599422773305870123573660806961653854048268647000735470410242251134801758534740445128325564640771526567148499203535599819032378844665320313521047679479132954223850793642796763099112238138188673334809362095158055716043934819671326194614716387512345877170242750713201746975752182733506067425607021222709645064402773320817108864888001704182572488285221387179650601465842409541854904941215608997698408326652785589712871832321809286116315044456403093461939975913695218574518768328499172743705125679571227987170322622638468105061803852913246860506008363095980493314493442519316216697311054575973191803742354742872221643950254118828906105669795337927644844149594459331838557948148479341954570663029911968984954555947576008179866110421673993090240030809115209083118424385098283814570838965613703104462925858580109552743593807011364169639655957869127869839139492957506943268144552937952591382669630791815281511547279571015035134694115722318306055262563256234567431444696966374279869026801012117489335774777338631580179309683324339090353152853742363042919939351932183834169111546514612757458110045004296279399791371825683270579570803762591405119742043581138455178827636270976643572901840934787655723759773005160375442940930602806137679346564910356108650524777743905972262051441558861260342554805272123021336424899834849912782957547691322556980721094186395296862054226190851912062427964030234205274891250639411786747435716295568441604201075593277839653693096059220409409082110216348901882672455207809857555956691208689704792684324227836978277825926500655475115698475432484390663748739061011299765876131455927556495164147001291878387752474488555341919177696861837344939677691779609233742391809757510270923284980819515666023067801993791808500615810402591285515177527336344450121060467761053050532889709695023431679893114266667274788198084938595364009588686680938882475662882349277217109768330010062457749677685770680820919812271724767147324948613294646899902279429191525639118238625162464601645855994960456057862305181752601748830246692368690382210753252140015696721777117860905234396637930871537761714800877263160409567501827539568400177528962938691549502318345081478994139421548004905658402261183795780985043726880633014209883324298744270746814436985818975750658163381797860130935948482816529491470599940963601580979912192848679438045364627720163027686118532451447737654409659444358700669102585708612910590026431967436197291888859942622005456952118518502667446079789940595482194983647489940434011030610134272025841410581245743744046714046319482612707464411022202435412164326435626575902177343993424897142979663997887644850458631432230855705948000490782784348509137297252428982876785546153341917982714881300039022090972425660212507362773269864400203772744400082278648213702399133007386562270961962371884476865541055237960929747468050153351063906354335003551681697259151442225340309215464115517123606342274808160201049777756866898733809736964236781779181635000400930808803925023742974031727476834038680428198986418587429981301379934204200723632970880521907034068343888052521359552884518545196212688803680427944840881101259079523194123984929530575884260781506987623096684000458021186315427254207539231016013779223601583564769432822115808265426745706942385671813936420167223977470240753477873469827072559968183967042770574099202758478883109732090029629353035250586904102687606162451436255591705537554656565218253010290897579028049204250286041727895427530786256599978530248458360497459721506308558759837738542533551274186027846461646210601822424821632661220209833285205188528343691000831876104372118388604652271967605519802740060664301896855840967583608082886495722681686131190637034452022471813794362229375461067321728611041978007093935964976079045486195055084280704330138988040546633367530997346084993998673641064780269826063901940775109627361295012276884979988745637658856658517838674167670411906377143443183744453085562471632085442659824497678583566640153949999683265336154192945033073085867561278438451917170635899011314920944342416195457423517667428049991121717393034526571365381754279996349993853914910232627482727015438834509584333664050956120014489353474998573324256482716265400502992328147262836698792240792006869038842743336490710069948861316676348304683748056982526181572761308975686282663204760449321210804396644267269001016649041706685405371642830702429192040851642192111245852769841273418163030217881790950071323494697898926588071048335990025845098137907770181859355412704321790694026864455341296887079562735899215472131170978531689140590949132961747304607916709014143417912581832826183808767201314631014308177982752145850053600734354234077626410068958317429508372740404172919324332384081294986581502209873448614650372298351793280494498035855463274385808486897482228699082523483339610921663521444034240642999601178980090319221497496024689130167325640089329033196004745531531271431916140652376923185990357470268483617172948485657863331068251554739221533656363178411361172313504282261688313397995196529892380638929079840305014242830794081154683701266739768069949093922771474618703323259986562038234980422327650331373043157482117405572316417827865056554749997588755586230742959263353426980959585710102380192827630631846845184597226986791120438149770300378373281057759075924798115335864638961263644461919142562668560756983696980955954708871020696245454999232036942234979405010894654353159942775544724855019060896934070227942859699499505376650348721139921272601447196201429985620845287527832129989253642152903952295656913921634025340760954031144344598738450534613968481315806620203553243121984016496153876387312240060519872639911212878484823958051424643660445313318311282726520116948016283244353015611827626679913712310527581847717784904319692448916393270056985540918054269176103486647699006648414745637445390581047805218418533469721521383660451439260516589895133351449491439942874475906245935232881900227020711222569183971012575111687571458266835994677896281599327440472263544209529530004263869600208498507198085334291662186621539778468743998887119377639645483022604420595299846934738206199863986150310429469787680622012529741293592866220766765637573088966304272933926965246342047028871585408560846092467794298157718195357963547568417927012790627429608409035409597432850160305486948458510568219967349406621807519367163254235743855882423592558748202466375170791113103275286198717742775276691110936420864449589573725745852455227487370039854214414493870798473344106267957054060094952054984141807451892547928879149216146414758265960850014759386603560636590500027840966716455672329514020294353019472296762529177621055994110932930607097259490460314378996400612632952268227516041204359377104047069173599968843309898745270857681923130759562838901768015051909672159402351318071266442199015674786269629562161932141252078414028616066307039707622398996042196113218182205696931720526904725162616312806503981053432566550858226939141474232481725834796336832242430683812847655391752813581322950164131665952752740519451013280833425651010700368686770305914735279225177655107738258832247483848476150896518928942767364996338886160282917010084449872814436631976273264063229690227863543473488576847927027863738989783562535889539442686214781876539509744812409045202349210089372778511106308498284317887996387096466905565212732033231447540855038856488376161967329073622863377922796108901413662257399559356779894502381130300507168869318765924905533997595525894441213779056036722131187443171893015338611594213700281509798035942161256335146784334557685338652596140110667318350339730156697948395438344416997836267607375242642992374698036087994373123603753090275120590940501827346741294323403140146925632669383526451428768150414392687727121245157849937656512822975097699409176820528689765427228433202565687577603103603157418642072168882098441132633079737496133923713934733592475197281944039161442555724879556080236755613978541102077055442899413762386110391554249352003550780987514348652979415589148286342016462903436029888463366418099115920788735303234811070263945299644629948904564003044709016928390331827275214895921095982261292699035896718176937490524365702614995776942010158924997822000646212866676056311527437865900577811030066808087943996864246986843356077869379827472699590803562140920016773680037291544463445485826352644232776754382140719807322268826432370847094067776094709230702548602038616627662232473339605595265253516077200993095393656792183909558913539704895541382864023781044123759408838142916890373669957059934593360521769384198025616971807248646090630865976633825724735372675120307847377056440826898433568242905343656242100889531706865691705280911299065425596201379676280105066259198050362848636686275399925528535095749741270248122174115869694510980371557422087378572649947462957021810583891215974307742908085689375455187956493924863963199740877174814323848769732944823747484344939580970171299850228787943678909031047689415551296970086387669699399785457155455508711056613583959114974717541666403832319022750528120008537662039390181050196507260429977092485921366753282205614343141971927532279738776054276238882996066263169610028076738686825252906111538334311986648055455083196021982311577247085167114447137011547836637912096907427116428505080661744051823221295478760740468929695139003565340697699234708677061332538327787762528706173814669500407186626151930059189315523967476711435974133451327370735647831060434537622061662206202175376833898088394113932834348769851562633887455838245122491131168326197495402124966534350693596277282845705249455778470341885567364853154081480125305709065802378338453777302700094368250284394568217967242373995433561797517601463478565639061996728937751985016804409889621940757016431846589942031641794696174040215265930172163147606593919720467224834112652818363571419761994582746215051246111817153424784656356160084138403609243822765568195431783362756841874625469935244790728449945220026584485066047616499029253648077148596469469205986371011878994672446255301145681869932502486927663578132044633163631012909243690573013393808690522226278572396493880334708601499557285397298849928631316090458888474628022711247453400313994860393931449417416876272453039073122755107688883051252924059959512812423285532533533223692214004717988285536027328755352221720605921022944737575072721097266556840202675136171365022891404901644773830047596033807246794552600825238272918380692379047021570453782147530848600441447600728637930757685036054881507093248818857239974390480948686997971631109799749215005356930184984858734324546141784231299856033548787657329970618498377834349929443414134818439569784118383520343477492484520358423079162493360141270996425737228496275624471522040915415818766325670398204848341039741485559083119589993672524378344858622934324486239562552674671101798246766690262788512069593933142795382078581871366240212414436869457459177842631063684358004541017781656524331449116084830989565245122987256015317749060595221696811292710992386578935681352224775455375308060627826891544271943846924941003252347441967050660370623387368732003139669153000811190355861589862817362180026421666998475473102640410369206560481319571733208199764083859771598536791023634956973388987744169676986007562710273296665201446505942441766132365517552660933174740791345379803411117744452376653919210150015871032973346124382405886168235037282397325348376008709689651432717952075043951506150766767694910900436604858660818671418998666884996300542732043331652422861265480067436643105389264045098124104375190805246801000664943506338643474174081075284100637722580160735405745927352461253001664535278118094387030857946472692663477205088962679638100838287499124581778078697812026414790546144897145901201258629578045373876513218532240881798166998135447962954792098335551178423401469255617642899858470212978488569215844146746683106007954363237875050838831552106910084454278046198466081347011749462286474515047689035159612412973360911544668396078315789593031229173256132083228632020378656390871373758101657826737970654093271660096239898680723231056095808457857060557901373949898969366691746263904819844832699398581059652513619660598069829781275634918057737538210644894943454203595952072332488139245658667841663210491094530597042449466430304198433583943465662289577478470050765168387663700652570688284946893818675146890484803152857233790914515405204816784054574971883384272616225068791529947907709257755411596942840941714333085263630681757951090700795092443129186712095232346163318097791292161099942290450360123986245229577815823210912853421179689288644543594853369224732382359185510455897111025068089895855504226336218390957274744405860629554005676113080201834553277949446521291129256231517913995706315080498582436689958742364139792503391608450658231753629699856014947866520217375170882634153973981854581587955957106865784602522557219036043839149943387508470416658306910196145471607639689764714567736001856316803021493297772974495631289889621475871037408629939865207557752824410846216495103186377513874316780137269571384396495195567689770707197664022010216853411385662000489441485646569826799085821885654250968598535828464602881991245447036234819158996663102888149326552462746611354773582500574519319459852998970730078672869530058354460330136910454711435761500554151277392337918857225320514887715331967775046024659280035226729305487877722201701664180947507742600137372875537274084737621096940143022436504652936767826916126145129563408037691065206221130818860509504141835803886393814716553274715185968024865333809630807957925841745852816682217858241407945309050503861633576372719638630871486549252116293026464680823819628067659771165557908709826297780855777429644384875235743474835740996383869829764606465319258187038663621840434635895232568889655761947557908534175124871889423023650936635707737965648636790013411895320216780195450587365708997995963086304302143029031903062087006387468592650040732798874356628264338084218463894434142092547765479075094913239367808154722999611342050718301734740746142682924123859415196433641524539511148208549217727309917893969159355143541385089843834716372257848487312240433217803900684270636362217988369787537068674331254046406070961066842978133331344569962448078188878178685617454117932593098616059908452401817626612380752396385155041276642889028005498804131379041270589830379000882704797231950748847362691649951539588944448218420549098718346299280408106385487876969443688020438983974880799249132030370146387893313152020799996244432843710950494139906081906547003552085957120545716563870023237755200033881586166627898133962876842154280602315777784162404776743174016691891994282295464230255331565450625016697362824174546847944950787081920298705979095888926820867558854569356634723528628161094197791864328251791188084309115238723007239908317368252801578155212764970000079628560152463881137222149735952965383833856430312388222096373922567529088839526842630569575640685481336290792541015988777955444310057014753455010534191692947311476786405463778080914067305217681897209252194501797422948010966260695453031603639518047229438651095268956903331197028173825530962546512021090107928302899887616239010445096042355149729236805575267705927627263499993155780600479879660258681094926139103241425083777839946646625165099157435608558123550064404108024696594005949822020182872773200218361773471928074108071897269340253693536691202849538999881043631553619539506534824088100870007384782904648861653916278523691138525730658155188085636403585699592526707369179716787949297923322521151215425605639834878820558891649709519534853243054944406707163216103037534266534331487057623485947208950887403268305523013115723716424720302865938346738863550565278532238080285979968855230410810985281645814313840279870377031196634637228477449628656049228941124347693782178044974984866524204410093729082759963286393901676068765263836819608456562928183038712612003506126049632541006438610831174404363718846017894535321241395899584580491998074353464527165168106582728715082410936110312758796265885163924260295904178087229008325418463023147043509124991753293286479883200006110974888528929926901435711519283073670319130077175549060834032290300367978322676368738413779927206555425060122347649721980243298321288164015290171175169684612923929894391931113193414951979128482279691506136084169085017897456011290345068354311951519752999086820062605558173803101088165352941389609241566996610925463392079781944598289937898625886166437056734059957096882054788752770913964634851586738955934842862106163267333726270611512963401843594218437758309215700223099087868528513305344870973791850190091341801714769165379379195302991209609355058990096677944895528488873803411778940187257604923548593843947630968582074365053470803771121496728900630404929470425944807213733882606764291425606231546749568094872243155003966930391950758863569111325556360369696729631060784526385619903630830295631322487909075820181088948995391400471098879163185145888097360882570024043611048913537345584797498806780614790695987040600970676134132700852686450504065784256933424449185881919504974330796001521407469893593979872062685672530116765486296685372264628220631291336093221415450101137643341396484412781132906344492425225046172241179223096354817290023795993501899661142661496094123188812189900791329253262842119273716706103077712923961810519997014904132435897727231164385550801834344837672599530288177052224602026307031355315704231595775967568292005422087917046698084007995199644861940895291136008498671809155997735138715234579223914108312048648497968616668384405092927603013246945493982464616278317473494130407656017774101823850024983310095771272556057466368015397546725510040994893598961702116827218824966200924921587976854107476095824878156611684944345001030691567040758137780097120508789577720620876499445922014893620810315914198954228535907715563165039207685095896631178271029713250594458738013237345636916306775375473095579951141613017909385140018448235789436201835540222511199749587734630377761794853209443879492524562035173599626926083104708346684189854577734512326613176579381821461209864181333257053135286134499321858873962071209945594239805574815673512351247801448506924529933675208233121194853052467314140734786313932142865262238220473054136936176170920677163789283239762905871558032280674677270507097132196334411535656263513776834740181100430542326258879985839782629360605747956244360987334986941277501099440679607900503073560787335297728838604705197835841151276282780244231877708886257280333886952103677230473881521476416703320912708316180720908907551821256176091454272925161776505419050347916302543422553367205407743088242357472254627786361279243970144150424976634464534234213104361168588659958826805863132836466242578325201653579358971130804732109923548674764460814451186962030058174128915829722270259238441975880720034157324928642820702952618590070930119276791732631133004339480848153325102344789908152053969783237971246989476684196243942045326322103287660225311287940171296886205588867819454371715583999241953379860131585472989308200529369012240342430596192294980722286694782467222756594174920521937395106903037600211800405546347866435713106371902094563479076331283174225739957333108698735215564702749887365012055798184379937192754490684140854262931365176743898080314480820440596855488925055456426629404413022865581829207021647947851193439917557500887338656149352569116137425633278777903400454727442616825163094458455410103295427465826128169191178595520581595195844457258692630423321463856357688819986852158058597295607799376309352318942733937444158614818164559956142081203382495044747727482687400309179909854183828101146918958876242439782689185666325749642074807783848558866553728905577067655802142515621235974573364644112315753812224951065695455007560087370846004533089159912624216365223496247034302311141092779234516670370478908890083498107668535825002150653476596839902673248562110436231747079855799426332921253836366385861464416075104576988324614828798442826278394708034249801911305849406545917007814534029106988528737797253378467563169613221985446427918386266860106054997325021707203919958227622894932781544136102284432685871814594417315383035296205398659823674224372138318340006889907292299664981653368547414558928602925812658468140285801928501972308898391568227732492990965496367330020543438368029619950846004824658893292013199602846167520740252637584828901189757035744271375566495151839933916141114040287708054797582729908944637199694916131662832591411306057390603019606313964316469693054717271856836745752867049222420683886161311989915202315634572506096530562165261594381735289664915357710519521704233377252660835891799325376204176291750820318236941133751236597056428779872735969727175883315025957979000763170521295221212743769851800764730499037838493717733776132969843126169687845866737706409457618757851587314465029027681119460798552803893337590937897867061137665560658170463554867498300687226003775383730990139062027950707607001491589714560096750720290796039863554346088921709006864888477755271111998863475138562676730431328291505005234150573046334163643488682987913608964103319209007000706576708127891413565831905242385728185811771166339824189519321362485948958477111486290177836503054310898289259788748796414076478193566115135146847003912521891938460251649118305414444896634300028067166989413375757830501346184200955050341756537119863457606540052482857278840085097830045754547906373368744601981850527384310165927784988569394470370356329960022372485126184966158659627827379660602127292520367318152197245207999470039023071998644054991380206513200998010143194260746633774836479046571572544979597733032178671771906509956347966585373838905466561091332446499503473649677703196715092025289425367604816655295656163229698081724247117832625746856861807202315470569088040809937484122527655128658305229600232176921351864436117686385716130448142687702075854920703411327836693803918400529861430248946999619124874327288621064135496839003406689146270091044540818512311079765788752081769007709930306933972683992868024123674248373773648341196848542472853860711647047720652715343189796923205088734894672814671648020833328586680188487827338400541003731485601524155324602117639572453779384926142355040115759472042110394862589822390576376038764891248750169749991188844194962135836516824150293551363647834614679148955462646440312475379198511878737758272002339451915271352000283673410988852810377726890157355315930082556219902530497919257114607251657936820329075004208250641198155430693832735523056355493018584639882248694203908327478490935862152058218952209453411709434669527877078341327880237570241650599239626076154337999035163739288058459599210205571627046058168051162899222196009837916879877032929394157858529384523912531240572681986485266507983058731888342330845160400501031750023729231672288853777758164722722435074923083472027096852547577604763920371218536549203099077665227686216478179724242723434344663350334324105825649025745730041573201197291118626990459673935548444053083730714666754602186919522114278902405533485084706948139073657531176929519077380492686474588927686814359353108912714644702795259511714193222207180432384266384511388026451284613187133786761070305842086687861295673428036919180346175867433765556249240780118171894225290757457435636279876199554310525676261709131587651479233966723674522197709609014684774689377817613503267222651791543123087220642807968738846897840148006110253823897729455366412390229697659650515291186540972075493371088835196833333363279347415644656281488107705765470260226627611027065346593888526034107320061753083159140463538093493809185612653348556060514423781715877457042965523041955688730265903068908068376478554023779967546765031602220201781545426236239301728798290615560017736437916361470478438580915469174008831847320240485653504699836264360648083739154493652008259734913070743198972687783448840929347438748653584397800007314798308132093945300213503336860288965515006561481700437315763881423927452800099530920524119931579225223559906447252881822065594069869145539245361187426080248350238713049366135740902363890777708714913984166380384433166522507658935103079179672815341662546435207860286470186381171410878509414251184962684506689833104542781251268117505931254519842326204460202474480028151397248778164874510208024091939394624252902912277384997313140650554090858717524880258042298521301929067341500868688357175291659113825785426012360994289303439071068761861307262703836291031420432656385496295027472467619645350565116534000216353814930861030826443893525056164310987968920487631798779808907623687060841132820342732634492184622452270275036041151558758497747747055619199574458224139318056923091865012339319122832981690126182934068217016638333473376017354078279473474993313059920747285561133059219426232889855372079567796535540630706965634002187283513253508609743444359198149643950438671757017566492213664176556073116424789619409110513652649193688099997426382396549288047572250142691577098913150922844288940232899150329259725361696953785418856239610946150204104708456694258663144164860643894278652933308460421210626443248127467523670934040763824109824461091669352137178758910279835573375918769289398169730704444251270077989670684990598138522494599722149024956572468728474904831538216000417668765927216021744163766092685934689641084403785251383099358227349134601247104263352579556324967915839736906691896623306365121650118675039356445032808271883412699661474687294022452457060726149171786285534648418925646366481296289126141064942333287431298370178471176590466021384409508353719589118583672903532873323559580374651685898101519796492057646153105434385258957188517821545445026632585328231178003997450039228956074305271219041905192159497048331184848117749534475909699735584307032765416688886977306263996290319710242139462523369043592444152692094488078024231749088079040599477272960388372665641952262464028358866377229183700900375631012102632400801116584250491590779264179246107824341144482927042109291713698864797923169763308272542619956860184108708816553032761810801633579576051959430082347918436391953383505181021902164391003837224626482760852640645712069045535074244104416415584584618361516036818632514012547027928702608076980909126856968814131278507591304098756666481061694542860587846235116214284627724192890045372993670058902032544837426643211813580304654838467398505873165677019888789434992551057501616081065717935333090259555904598027388647819869013352452753000634838668831769807543872242362667720859576688632727663357969500970835272169431598908763507927774191441758091992570006782440779347764120831211286341760661458006868572832200872141550512987736295725811558076617473611012722819656364651397721166574497070518755001972356878905981714102918339791822497918668107726973759419966217006156679677197189695202958775113653357849830117211208596195043521613150597769196684914307000449547103629140248909709289921063808513421807724185104065385974768175172212546690522506398543190896054017962794518840412207248065628085147718313044489999112170787904243494789794631128729442658921439394711334221853242840346585644880150332241716685221940064693024751464283304366393129039990937133982771999479922906494156015539500414455484199109660961132718899671326051317509879072386698885091154562992312322605034160895007625072520965069588398052528579426863321235255868368451221982950839685486193151937870758475478876698967173577081967796465511290549252905374566182398741159954865023230714462906637406431549708438508510218931126867034969585814511959629451552490354592820490735012902778726984732904213453777039403701178046162372426831396946835840859179881151169247648307191166319148827877118148618457382743286121202014782332605704335271546079269756744678966598209325502644673175479789709364756111539200060760818365079744125287901700096211342094767645759857427578895967354360494286751493704072037540823167843668295507845754796893077961080573336495186434156555116815452143296867906000821292241306155832202630957710688338876676093189370184616155101172780202116606085322872395755196244711064895820318039014271644332740834934824327647463460702174727403214474600959182512344529166642120421253774433441693173404044714404808591777356339294452878645489585724530033031575986739664699105409039491349859246929863772979418424173386714254718929850899685327046637416268306060006475006318804837955158206573793475300118589889433593372162544888606270716848310241613042752709649290419647429054527860694993436669663304245554337286572505413414938334249038115293386866793251935010521843249146136538744679463189838015137035305657559439419506302130910982634759593012290758299114232224435029518249402544117418608119897851923289828703990976695281788541310894497286179380794648443920624285985156381860158833551216213754966912851849088959565202119004790282702266041184827608434655725006076725978548063837448335869958167850404829766759678444644384621326713546545596407632256440593722260044901005615179573274117878626731314039869569520802405007989935338215957548018858456139624311018100640970345178857844703723524020959097503726514491704545252799890785448737436649268073909044613862102255107051766592587336500089499977143321662046096984723360947136589068785452714275574641680639899274647525891227755069206911902747473613550171477172543413687246890216139292195229102677416192948569191396262496634563762504157577544844288049252869982246702712992716215803806011960860859235166531899680242211943583538063922997558514658220491038916861321875296153425179844119531489109039011181744875726800103000711756859590505197066116011860438733215171369502729372250595913141989362112186434668063265112999920934198461170053074875980887835162000296492235492290497914865198259498421942736544415024078324142878631175036718159389601871760764999609649425469450850514981288490420071674248723101881406088804622661608495512685720167013763906989999281040404656503299681077844991385008850142479362016244535107411905479074554224757534751110167087250816139816737691992777816670304291530796963884130424610865578875579351825806585058405739322283714536837888162595087152976433834464414859209930449704615334382180731014715447861984608646659483344057645936996872923061453154502963839366382502018471379749134941396603295975758814694392893204916481007356373641012064505867607107892996975358216045257478903559721126097353969014790259594490970591445299540598534725298974114975642008867386058143003035579200070860566910498985446009565334033558369039715501235486147341634509181676273882168483087431422644752853672358259284448091051233687156404400714924699252780676229411281981616885638799674333799928352515844496275533409928923640447481404168468378426168576738411552929074901246936233836989132364783376872242524416784004540617928675960165594135937629354762259536740721783845543806701438093980810972106200344206422477381617593402636645615096337151355937061249028930965269958088082806624038847129437235811693817549850794638455326905044273620960701279452200482141764649465572567065666092510590478753995169880253936877513951852955818317448095820993876988991477232357032996396087572868273011727110996502861532310956630715715284205269224562795149280898904958058654743593225726635716663056635748061428479799499177155745780086160969478376263124096353957805510974693857977385795883807850926056917381117437216033141277812458049378991570135822727213033331822171134187315391604336470997762677394297363866408150487891416521542975392366938852385512020108504623708236703668635044626556448257933589667734131699192678977331618159498961637682324628626758780397777593956287887477166621210485619892218658684749260420246232211083137835571791927010814948769781110268473246276579098501190795229546519068410494299707999822600465147901088783521272514075799058037667282985267178054793517106443231720675466172185361533667277753747800883455238740121257183966781527117690430897388665216016627550351821498754752076296349434774838081711794528126521936207340946434978633860037095230657174757573192754773727711242978253280513226643599949003242869553471416127438160357015339130267024072478700049204197587452540564679149312379341679459606047936155521582501374236062736736274461712179505253598294747523511749776262287497272837119182361938670167981998071087676449629409678373559870467979318985412528540125740966951426594267361137028287082151929283072831854347503926505443470782656272837544244169009364303214161851933820219431146092326157032473137354130124454442262648813094759633856216965160748819292520767665675073193279489739962933525893639760892831680170906417017203504812567523205490777061758288145609365640018495307274498617973632965032327039300898247513456970971131129828241749375639928680392264541556824023817270616572056219289002706562844308966748541911289918758650250336263819343893739383620518951587642812049750048859195721255251052840788662026068131139472408185363294065556754262029716064454077340121657521664272868707475650030934588587162351636088328467968538555225326189048877471500703005229577679031113241877754157695995726540330538966029665050199119538125247140535794742629561509312160061922450172430519683885831195124012316109654577939336916108566858700157082091327904195554358491571623049869946625891856871344742251592423380939689197814546735437771092706739817712913453022187965751770156485382947848179595767934505768084182312722707241282414103110004251494347230140239227444658015888359085224571337449615031294340652029010021463263887410852358063054442066199656928563013122508870138819444868032290674395516200185599091218901303565066057061855765887983446721603749195879042185356859787757493568230841125834510295760245284496094463925919512042532267942713949412045800538688069658273878043668390084402314086769614336071434733768998692935441488416922345199377683598842449213161231879970553346791402755887136321847326112829288106205554739449618853834461128614065288658600487775993439926816791177910761080908750708899487643882437856069251160265409564317733679531624334055020399057776448160507211660924195581501722316979845836242398311613895102650572707444039635968249390099424089409859415456036717580193682160795388361921741724377436073495437251635363026352581622867682741015086769784325704061722431297299470047838585318166738256361015116982630157737798469587718715085544309045297562079106181763451501078125341693079572404704094838729948060754405467469795751636752430279892126899637435919291287048000909435643260191221351118454762019738362932275436871771501804786541993995996449737818672758200272994324975943943018243626459591439968676774592778461655073117031397858181066430347289226061420817999304279439209731425497063534699834711994378421745605387110744256209803535142047390908886215927395999672968917246740584907407243377041743918394817608284702266538269270276076862561197371445941030646699849119111446691909130948719279547053514967642726156259091293354094758625873185649724041096528709440363375386664857300822995098315190979529556971443622371082080826892347259119656824582377191484645760381605705653620428292862010570870312980948601319910966298966924574979760360950189744289906170941354310491676610736884898902739254340055826192322104812855758356149242714543623430703751736935092954194572799972238255387731747480153211798381888380391045790489634879626742940416246931345986879432263656335988321685789830964678633011969557987474440581913397106178575321773947654216402133553873774536076765908714202383942456424641112638269639041686384118763966955207182549096137601470849785843686518816762983975294731805195967661782125602168814020145004167447210719285450540708088095242229004715236860322971584872562518617032103837599050021951284906250944487851013269204922890672231516886024753148576682761863201593125403059509168567962441682874388553699678649504368547824425430080708767799469662818805351416682331558793646498845855931593889323756998023169269981961244774321747614033978877733922783293188256185422261751498353638663306680439799857821606008027651258351138577149527426683850932984887561579506908365613841171061495801328844054548065268440677401035465593857646685582509153719643367200442953082400857664123618816513281990265070674101916837377009412995797605771236411541454328748152826094402326531865168769137658897263077079716015138602766526238201478671602852349167634578355873801528489382944817845108722758915448212597431164098349585239815385367185661965299694276027241662754495771897808003659228181384953222054189319666694861780920198878949429133267788866249720062885953617923005823172519344570088281193472829053713051824488548342524749481813213038686328693299156452155057783573649413014699774228816492250062339130442942703066001496993767713908180761986326333706747581605371896478587319400946099526293595685926280381481845103767897596536006148489804064239967013374209330312016993232127299856887539494051455409469997943945433944502764926562963184595399653525063510989813895724485654348558481305029653307981016226853562292594178382238224302881376292392318130044164271882940003427312038069388354247956017454420737161889493057820562297416377324339766993173015282869753671075446625270782388585707277531363329436642175026434896968002077985922555370299613749450276243065860017938948929429840903411982071672683029098774657561553817436328936764724465403990926582126190070986191460096376457285068387929229076271463519226178312840821826510965005231458530707860123013306793089022472794489922324618479220716277206565743571602974262710918925618659051868563184616221412240887078002013319575788540343318464660314255170117810559267534552183720177985833197242120701649701290372917916679424558725706622218234307329858365693473624994910182271091305964137558608544920704479707421411925556897662716898911917763307184676286673498307836699884247102538118259257749645016314488537788909236833191169381213941783756709199893609018245123478541242176860104135303088437009596155240650303039826783638427269202721884658637505562291237315805948406758240119105313482955538253235409301466376273652937198540752546553777861189991082669688257711229130875646326892920131196122713365152312840680809855783795165265676328005093080026541861174041076288313915935863980100838893444917847325278367886013955632860032572555008810595069664727030640264629990428653244848425566361812828669441595768957614170862595687065613085898778785020179938775928848831889064392377052016418088370249481083454205180650166126331251336783272603032664949489498818604038596172443794861894789177182317714901473772051601891544412353179071391685790002926341214788137370272614901768198523839243883029868008398671858708201191919143628771602858759934877176661112620194158037160635189521090957516919263759465587715522620579390323540884581172621433196832862800633736112742765699378532630680832815367913183149322471825015422509841134048349089826878308787211965967855647499762239914689818604673487784936616059274294755919538181160059742678590390584919748168333300460115989539009877180907839585118224285848722572426124401801137124952550130341891913857489166675922571644979654752887855524363116462538412671921094906450877954636814210230783649384396096733805520998528714842334019410939793922700471470165715818269933673383586176277544005299407017603720701028629647870599267974576784107779606891591317017296660780754533464007531908774843407316484023248443435086362193415575297431434494582721277316566602495763553332285497409111417132692832854581412590540382781784269050940929633594639980849321774363660802060498022846342985224568983289125214488529465432634795598628609261395394104235932351223772949036093798568141010719605499434861188130016965292496158000077402843978259539362833010802711971869562659554071274958791581064065722081762690526650042929238405145690763784499084077267320008578870916509195889042174070246301323003415254763223342342299672020195079442981114325227905592151999208790618835809282127249135401638690688628615825407825985186606648994104334436110144617332668408084727029638719448950385038412859893303138335259185277234313491580199848200919855729577152456530806676943209829161297406165287331346792420829466393564321251385821211547743238312445596123210565972514571969041276542445073113159052093099584706114301341490099343635588562174684991124476333504991111743328714024835110616113046901535669150219899810412673689153232401710474399598002523644131540785723934928176555300246043922185768044860674309672480700043032877654451774208096238894231126215715566172201368618359964333137462181405683006375898738670324987907126616823686327318835500275453017539476648873295941768845700640635952562577296481048680038384361794129321624563803334543714088560944819585484707069814083458195965999269600824886544283816902495178830189574497384479078357820889594648795215593308676441041448389778229495673641992186456795994537952892280109587493689031777169456082937700364419149125819733783126737794739729555476350608263985459952382031503103761315337138596865286489474601056881831415065528601427705662523541079046937425841829811947230894663809170165745905341372061627828367408510859642168235589627801576560036997509027941881892125296743157700824496794453060751117124016846173716769664246010646052444708108013577409465205713818774296654528353975755092865490938667497176517682104964387351893870513920584997311493875058396800069213927392604795869258524560649284156410443741051633895753116706550723374107350422550988077873621391441014465364078505517719305499730682978105465519577151013241103108570171268390459475257207063205171616048066830374620172277048943361550984446261882332421060216504906032557911289397789299318038454368695052729967313747473380452658858512028626648837268310206366726228921212368688093706309704740935176496756804482319807199200860782239569141135346523562115223673957190217979026347022725589383731964298834210948152251580081342860761620975366292146542605947619468275259718702810909693940498854141148707800698848287364746989698119449165325137681580631136718583818289010677640201145546834364263266010911192915837532162916932471915393107759934837684025138581301093726630184954606630558892710314721078586830805482096604377096761082561856193339858230580915701254921677798878388292789808951654880042222333513357686767432079511765250267004729503610632462444855339389114558328112715501958697967677813756395378116709549285677002043005493230323918275529756269992708296946016447504028623392454751397877187764940452613577636835375100209124089003747580985956325365375437089411552184127618446498177692521614533463439766812114340950340699628179531507054743829585471970151571040940536107334471469621959587427325550702087436072885027254279527118449557239796889172138014128872676851755912553108120010041057384339323577998576596907035724618629364746480513029659129724175091631093628705091340053646982917392108701182935380866620405407288687273648241668740500074403000758875576026376293385622278488767589775483094941828120957979089130345088598258939812072510972350855758001207385093885052463008520035807127374494401008381904169599447133584339489030469189301613776450304581272183040526017268951363080829384760904929300837884582323619353626614747360207337255120627988378723470784103658075553676501707019229044437445915101585260830062421929713340492829218610085986222176911177422812406734374809994449025211182155682893299746565080536965188541887542282020246773914598319076376160764647804365698717352656700066787491245656227654647385341212377043519345664199421393237185467095135855367153112822623316766196292364171973496030655108439927654812008311777648635252876178910114340413049546480095079081354333692685101790850331621736519174075486556430171472892018344965922360897256228489789886459014524138078718908727602030153652172704299881097816089204606323386271555486088838298291032411433426260012727841564409913545647267276500472105294863154430902410534263536331609942158633915637928222845856209672092237545522527193256685569455528966852029729836282315015000106115927019086564687440913878587510509000252958050280486686631006706860239110500442217410353971557624353495438283621430193494825826215886330399550259941587885006734915533767900594366096610535245918641293764989042011587418308988619243198102986455198357047781964992160877176848196912583420173079548802754472140345736419052582348201526458227883755645616389244044087397949744974862308061419447132711699976722873769823111504559705171064765626915077037180519139968626736873610136265627080050582244448741393915556749432225498207806223183746238177889791218398062764012118633169512796906417114124076986352918841895842102800323433659760520232135144171927542245516797776128621359650024729508819129009007952762729772393805632373251931527820834352538187814383944883197412498133639517158616444337030271571571503803195235245214020100268178487721519387963396304986362471132949224353896750537701957309549444268578499971152944470473837789065515868277420154966738468326372980179470826156965768148597617414419900813170713325089244766695099880614461582845739175151725175168157583050738573312637211808460477314702036013746409507200960885973613135064759313677487741318919917805964758021004096361959644635755102232435464895208104286841206233786432272248435564375314553302928746669060101771162381999648374019994442501641145332437190390340924160235112786990471661724653711856496009662212992788403477300308496705379267615931188693304910211362650134625038551311052821546667942786093933799071472402759654664805807979344560221406235803754236398861658994788775887584213867887012517545674820621459380590778104066183145479658470395423851764443544857951935940429835868623664880389265250089696807823082731568822191190038528133723112749916181596518410394352639520164735032353640098169031648513688738520772945080789455299812859031351516191540772821098091177193405802831960542804868653476199520524564329682855868164913809120440076329003246333569645462609488617931381698188335594517322341107640511745057915000427512969021270525396823873343830686750672759339406599884298871779565426442022439858903028594046019373999725676745103469083387298980333660067038473824441687702470661598851711809683680288875553227748241574832906266311926435577485441675784069197808513006895790411789902191213161612656021332463106329001378318985876583090399652553572838779021703210188933537762236566858125682397408589676417655031344323803242508539965938565715237233820723932431142385291657391696804766473361081499163663481165132717074524237830121665076317195149061348064839830777467570788339853103093147319317153831407025737619526333967988478553344407017231581501682965304507108136285998161588513744272077636219310262327037160057371926589681505413573648156976929619631223163389181788961060392663182071669939524524680625928447510484493441585761889201888660196135856508954302721241542042055191963376833295940036117175803543502370730800048186229338981063825534222416199224658227627302349979619637423264695476123808456735386656023338400698805381060310244262887290464343917661869741941213865018773447763181581211289011279219265379613833462003490166117298309905982241050430129879551516945634220251088714775062701970758175044568254269960491786828241855374218139259655494919366462536933809215673062056429968155488817952881347576347183777860276485597007444334869675734568886140784163503978145108765839902948627594004770390717051026839407346797771873518784668248795760024454533470729241427133180217021011106393605387345982185290221912180829731914255919988923841183689190228999036896764183479815322483587801640413201883991717197610124969196706697319142000285848710465422109080866413794267460205788896781296915768099702181765118235648456852023441345763107201804751950349252598394612183682957367515559632930842459878908214299570258876491669924234844264891709522451349622108258630938623981001100961602164196953846385130846369091820241358517026150035767729224773982807044692996776829347855235440347348667577982841184926632532873968290199406796518661450056995439757368419349093996784946165029287468533315118795122790911195326296252254330209945939820357053124103660395773675960376417645337231273623355894082211853731887641963687515822136933892175925426596025332158828244268446703877579913900498683020022275489862936401353473824113762816717847215658027698592117537208810961727658718196255450757744567710515901158523818232819890418622054029750329983824997839758551422048831879034726942101420766136536724411810708305907008733391361720388028484978271185500787673542477882132154727130204379387337563812351133163249310570485385052064019886730630295817014827177316855058874113204533296428461474384641125907033501695001775002588980780207351370170453908235206889946000207789787641501534915102998142118550216206397443720114759103845070130528928542216111312667565206312163934785889870917141047981258950499280346087721210848221271740673896250846565743784143386099979721793161199404787809759017137269729478035419119388715706775337837040206019186709186688811804352949023034535713226478193332298821154090332032531986854418335993851680535490387620763487011234408227590385669964444265854279272617985353534536932406251307489318672095002887143161699815025636930660392067904957748047302334407077212015096013883662419132928720625296267863335950178443562951034569364884157321730605719473457114285475251186837969738587165169959137202809735341988922465800429952844511431675417093741812836872448503941285707546866790898879918152491591063973706342837382559847384737130665375227958562992933460679311079166843938987415955167941484981751695878122718645320672658888556097517442412147123081887247720237597842920573077155315810020079923465995473013896967296510299609656619587539346590640802947037218562192860651785031178877054557767041567292111909487564044878315077489920828651862147943157281595954078329486229022415421044725244889726091365287124999197096773591234495688360661571846882397859694772267797685294374274228912271078710823048959404638489899113348338608041252657480009957740440459707130449928257429530523884456955259610070698960405988254274481633181064398216933401309842564054615042163394159733988076395312401855327566273021602332027844729165988440150509910276970638964953379330080958644904432033777097396010811461145929185012666302680866902851670899737569845302102931681038671265431236020139785675307261552777127597826921944587156125843948396541979406519390608497288831946792043374494553195622134820934787554492514031351290515442601872148835467798001785359857621711574977901536734868726690472240475238254319727949066033020599595379239442915929939057224601696190954232518477675609016134280059122709132530447632576806894224731212049807323213351380910298724520266572161184934751594438557438483834816990093478983331825307656360836046150641707226731076383666302735198136493003576070977108474375242053299649975853820465497441567205111632495130075988285148769098968803719894743347066506160154348498289124861518569101956720417853954244641666049298027212315412416227677635607268892599931476834823299305740330266937292161770146907134037478145289656253808054389620931855272961132692761130870274388028357620266957901610224054190490006678796267588803436022596448070924658556048593694561358893904111937156336554000248273809327473602957754683209544054513982646215720144586361466951294393305031043543392362165035673357261804078497149068276584955831412514555420303466391100462653136699243833281760230061871266278429457781981793315635047063051914169551599286577964181228520494437322364632316101078684878792820290055267656680697339857872685077360419035830741801542174781158833907138889218239336154141495538040481685123498394042835610304935545368313009350626316910176362848674392516818638797006344829746027634243112956492427637281191915183853548349391557158636607290456790446313566511648569843686231421603204615633576089212498513130833749425893281620621397021151340763534926537051831536302667422249166632530737282675323847560387631532399666703672681103582510497204839893516638929802006781116396087744193568081685071453026401590341322136441195727254901187558992650796591128806262289963182421343592036581395229935723108402218676586034278056405700113179938337315713783198878064955061033644770705441276816895883404561125559571586960314876824189111406906566808688642969795881800589583719952771438867861872349784101166585926066183014387497713025352685414421317796608042837349385618840080169443146717346558934144606260834445390751137942213799121379586372616446481997223012391736644566566837677276280082971452024223379278081374792571068662246889035766227740146960323971286076929007900130688482303942833977483341189888333546212364181471654306341272726555528272449833460207688546761724074488629010142973142398941842680698705555995014991657621759328582833667332957023396276690598520655050694856031074430560034375963956144521551782572105026749591981509449931487715983493156777447126986862799727131470642099955395731882990068761391118927698412867312505441627649173179160550529221005635591493373691852277318853083335363569166587569438326732305724126984851086213863597486782336855371958355774950288991214963687610297613686853769380461352596893828179980788760341473784932169697266300659259102902977054109047579464817282051145682891210251138042203518300569485331937137660907910398086575776848883834154794206128744159259586379937880090321332956635411032306651981197568476703000851031445038330883922237639031738685797139760462657453425033925542239817647766186903681113383659428965039046122146547283441940609090675545001705389852078314588864268759030225826736956593199446951906910246659660637757104167730935865423441449075127373154588550758499987652837472397590659721603770671815674127955821378626203374005811217405636729224425691462942890401074281463537788846110756751727305424527129701034520260124604786738991980883569809553698369808270140366300852193427913222898196831692341174775667565113224466926895008434887840579775528970849872458637838057762272857816571372082188866468791445311181536474494750792024716706440339087231510799567668714772642205063559570338807132970256714878884441953215523233319021168871358357322976052578816671305661221757011317774147336709658480152207799741579577011778836932655340108486999409209838966545174248785154003757497882047222033559973541227827135154712994278337422720059467479472428302939056303652971006552127369980679342109944931752330219609109068316034167163550802224163732337993445856970173556325611930596230085477008190174920248304485009244260822450585748210469387963428886313088544615250921324379130356690404357949690314897689464142445258669467256501036079170233498292175207338562499396151399555861268343890582489788979054586086053495362903594177542296600164004755812861972024715772666151027465155678257106443466444443359346480411252885933963508838828121542053345170434575338145552951394658339345071068331886500310700477527775140300345537799946191971241043401245028607798558208258899782321977643970688599933685816795456117167399274578774275256161682921938634603491271171219659803204063348626980217761865475921360525936724577321841896661173443848915317387552939190039891413638885760412466591411304243447963323289632367572316961299590966759379103315936634928788389765749350172351505917142843103810762273143086096013783627316321720381224788269328794019057091354876101278843032868140090611093354723186486943753400525744149991672699431115355869014306120672229586170896958711564700404599525662388943361692604279645663775468518778387873519509066998050976785399360536316996971130966857732316680254149833233856833162406415657837566604475111853411787786297462267914590837846982855034574324116639588545973388140362490779207965385223428853648307174799351732536040254601494269743596814933001882117380404812992746585867149771070410540009083591283354995342583061706436154936731322343731546394859377505907323484580368061915686178151016894034600162558401694356874420256201002177281460268105002672192978146898152060408244405723153945053683983896801332735179167161076572335915198690832572568389292969508828029439447527547660696879412327140950010193445132679364949323200025881663969729757419615108881575286386457536128681280525398080303757005220347996839259196140917570806246742008482860610125429265018574436235805570505778193295965684032841744403226675202718050825492498227793778314941215110310553719600769785199451676535821006065707889830219707249600724751975826262125164763541372475765119551882773625648718434781617470503539198192879964538327816510776552683689346693270512805178523529667390214870677232420821368996480003366171598106395184663619312079696629830640993482919022817379703027122008394695415206790605054491053284725880415074315478821468411483646294555084930077491576193478563843638636771632526734985459005084063226720060629359283384018554042159030853539262674823950977839231517573820098376130265233011449752956281546560501023219059280565592178176946776281674741389772789438746633823149766306066352217864056101911778196155983140898503131431321720811407778369625025507933704054532279297678983550539872742151345835950726175273655964250588231777861543754899564562986627376724644431843557731878604552994216828051178621660843243245453098771243245214728546310760844017498463612962299333590399971986632808773645881837481138950647910527687271742944152902238133781353284435845413280305843028224502978909675032730595894197735242188664436126920064543805661040452212233350249458749424139571757157461644752580662000706773698704965311224929067360965014319936020308489061336233631123499469291295274857739350454064528815078498649160969590765103708258205965804793768062863688032120203563421932664652649463711113884573550453643543732251829307231741565771132927536212470102245788854550892520778698679827801970145829975730577532499704557009469378701838551226732081828372875232824933244396337651463083551924572944622076492185483365711217905055167673642298595517981122501355503090314390017872092515937705696495443230357385451259640182358453389756229934453110836358422160299096192346250802816396500813537348942066717255261693930636057627421555090295042145768395019536822984829808466215719458837351220557587356539444215552836512258606742859155228537087175187341210696075637032929708917489971874265047913970858331026174806645546466521627768057977961527734998747320350593240198741254369041812594237587360173475657642951161804950599430241991895331383278396255229748488837027140402480269926668254653366868234054781198618746875741372442596851989459168684366586296276780830258663989580531151717413594001715933975651334785631388095124368984229197503910775188244899032191878117096481563745498976624797034840787826467607798777911482480362821691580381047320034122821571551286112838567911961357603037138938321555968561160386064170006818660087690734563184636196266327748350177698541379870894184230893522151526828194270219361963228471369495984757784880579343273499066280457449005681109128646758276732642285824201845120184582556001213485985805683787800741179514512027318942061748623951091497510778770152772283640203585316739972140063142076158618465405963399609312592424753478536052042415501585738224918445941822284440401777776617888539440854162462519826930933541587577730214611564054243528899005211025378095341782239007326325484130556823471390594053759885039474502415373676388804679951421257603513950396127246665325336455901204993877160359094184458467074455390868069636503905255577261454901726080673017377650884757493675041346135881189531087605857829613513637959270946314771282597980368453381374004070554026713199473452556089976190823527120616359662331593542004272398744462886230562640345395016448662238203023649140792159371310882892098736351659756534578380038156298217269370413944339964618750111177042296153843023365049683782486321242617500695410619611873268627343236386546837207670416557089114779007082785749913881966702024808212500946436406206727040168771112792264152923188303602151118061983350747492754428020343343040990718445939604728589802179487018306213164272172508580670839405909840158620473003293869363200227213075057351649542276669676834658479275422131286496488799676461962784119637388909031177677187991243247392953634665810300044703309880238092325005536016258122623591788608317059608271669650699403647336640629177510906096822319824975066537404324313684274631097472640252550054226349813377756020282240838662798657640808248853780102209463576863442840880975567073472143295248696136151158666959926996474374890168122853123507303060916954471854872202844206220423833657940500596359680863828374965058395220134533794966116728241627447344551113057329620797053149334266233740632069440890478918298123960265032857419207330382602699249118244619260525726849604569179620074305051915763493054025778027820872715291326155142667233758749456693921375776660681805262610675191020334646025293230307074142068855446439581897946981561909158620947591816850164610030110075412401515323126503762382926158292433958950880821830596690070374690401802909978643343782030958762518742506954861069205751809008857144965992465974730829977241617703875546328468095939400171297859127236967318708970521762786423303555942775772003081217992583045914669028378509235983439648512939920112079554110362664887105093959394297079352215678700615130642368807770236926437206162751986350238680157066401509925616311696889435915524267676153065386704952288337784822356750999433513355014360118174567276854211326104810389961686304445993737021732947157317138496693424325680759154261917752852228423538484529096707316474403538878327711091924101334345134523446046712752356802137610235985314835584227621345106902936601147160279328704599754004836672719853623739680307537012760437309836183139427262730483545713136281060677188943922377036870932796775589590022126489790242810421995818612525800992872994856946830946482820095752736816047688346088085282615333242413989544148586323557569373419199955557032518421461089363816603774982441210941858837122464803754910014065488865308608315612231831549730259747212156907679544955227325173403499279379896796077201447732857793784007346073306646527558732310619792626417745885736971939766898430229911660717589374530474606139149303380724814588958705956111810113907052571673095968837992202627348898484586976406689591939163948272231258587972519345488836561655706766874620194054564453432108139152539595563056479712790676617092132355165553754526226536949352466674582635907295673241274507944072387559615531668125514455342575128118400472442486097613337872837807964486180458205901965598610921619931338107027401066660519465256482555237045639109274157479641272781608144390547191622419340231958512005193819500997141906083542633919379527226774617289995289335143998942031600981715646321389217437254602555296955812354312386374621457357926989899693157146216371333468392730494327479634307167296170179173863670438551650175816320515013155535880182709901251852643214656703578198565498419100292220710673372507745365867094250703704325168360640965840289409357456335805187637700723572737544827070788643941805182216399894729491710549143354885740752115308168790696291928857660029877385036611221641031864526881494419935637763046629979918525928110326400894455402687217590702154430901202396536764485244447976904470574337607602158573945984868076614203247080473616045302367504972082110616344528597263406901539399911994930113493139274932596157946128699681124377895739119567694231799501894979896429458882928315696211225957102768422049977633498600547358306887175177801202520067173998582977392080712032559039299507147869017915829009228077505816741100841023730617148496228719120036976742501060120849910045604080896794252610167111315485932295824705519190377451437834522910896864521148870358845321448067974947555741009837261623416862590792046082058636507987905097218447602378399468712133350903918005860579571550111959560959555268723486909238827484077180120330905476421338120670987663935953512810954536283018842101670393958665819338931887012367894929943164632624480775840204693226905211740297744848964280779942821584219760411060370841597467583858124602416531493289053030271319089163452450124277958588405597719760949645829422914178345095234932491090900343621664682761239863657844719910638608474943782115885650295033496530681235483119214000474077414871078423850258149466075548022467343236170604341118951301622557964566239480625432098389482779739834579954218684365636684686551471098997878756722340564486857538877741232542180572329342603368759302498592129124123609301929573570652207494506105252354077331182050656896881594980218728198993704730710391171726562528733013421075235304162669889915218751470354071428741140592133456712087274018525472210006775951141526700041799564631766220051374414769365572241692375033810998290768638676966584151197412523551844320411226064849213700546019910721932334925316811253685378439110340591539521588122469233565846093141301516834837264424348617248431793785671111122624435087503537778165204188066083302149795954762988488849716673730237596886702645271023128455098999698545883143024379742588749736112907338629698254273181904158376884398488043721888780817002991295066234014938771718051794115818901073194923787278679927716926430432010964916171200314358318200796856483542280990698705129219804862670607713943165476222823856922274259894618132219699658353034581672745729724963181949840858582013134156866529852014202130585905611658984063629124992601751441743796052954195188965230830667250582917640785191864811828525526779213622786471045889063266293035703195138580680507198188090879740663236777125686448054325111438072920442206931263336344673382498529355022641231911872970310516311498788511796483580007766696560113749469277804022552914926519386162799312476838562696875797229288306599644484316179892625424821534717740272227442515186448443559945067474810977472160254886438821348237698935938200916137817303769494585874679837590030816343692794509075031900034102622191280502959797227495680026029059479097453786433087080235367809813845080417634370480788677736156149149625592066700420570575628477992490102273984764298905413925405343981832978027637690270709973133706025007274254537096843838479807686389315223653135662730987297421637768994251928646027517923936049611467707067689217255034560116768914201002649973522200983285943343693734952766983226437873520727042496100396670842001898691643791440822951672533505560328075554162543417084088197923499605228038546690985430553455987703286997816251473139678530901585953687297683431195980794192305189671882725825668808491734927042963669345695303735928801132638028607606181750812337699598428393691336094002429805213753414898244576879792143976012264427054844992541715263142564150541722614314022922369003829464891215271813468714470440091859197620901703870305651363448082166665281474445917464281461932511065900173146177710912547796581840789029577176798745443364811636581989232727774081606248696609662606632810298232307935875991816025280700467053710967504923079140506620687811250532426193584010159705156234463362375483699528896366772802429465730371891984013935373743494769402550120988203895860955214597235861655491875408883628376954233742419088100596877506821706624364957819565801763529794880141164869773601511541020427426169376710640218920454579550440674918276097399208522661469629569908378311765440728124354952049463471272471414190452060194028463597681167006886294320577564799137888766596115016465217309176946118069062175907026746682817220117421139009811824412830931531915948618637874327844821846548824043312312219330463469198100007304322412454441350334380928040925407769216509808849142986937391519918224294169382337331825925040479889116514883013742692938352123597883505961532400722537586650771478635366086965768696955663228473466057301633661988527253976245463981054161130601637569607097633595669511609901659928816330320430536227315604942212124527648733387247858057965893175902050109722015239778487294980077709755668839795992499767235902024478665227481513330388591527122002688369842817460853364811339210180986379720643264379682259514266694702238591322274155741411427422289034951961901899471114531111187965918063024316228449450830125486780140121419345794441627962879388523426556419956451463705983873213084217036090715624923770706802621807695593516440977589440685202262552290977374574733893986931160415665602733683441805114560250359564344049307652321633671521585191212161463614535699386625732385424322293812469619310267204061995048624890698138192061789559869454755113365231392737035053102783374471211729195244363865581879389406361306231431233959499023334599466388371247405307316825898573843175617683511795313541940025365499572761235956772585847442487902536786379155913114608702929215305142005258718425416043873131240388749934709829453654165345336853692651229735783406917847163837117099814962280994415583376290445597624763460214884968509437681480791631404893471831435086511079072204431822356273495623122882348722409498263133330593906953806822387452900855095320427441251330651626179061786620401866098874352806697686997259797536627710274461542605817277351422722491202482592618301961765041003057320732537917469552385005684692225901465884323006281685772194194764799216079926378599306502540066532227095213960483798335771400953710032774001931532861634698619807043039794280209528524687389715399699778088581273174440068603808960519787593665051905104616280384858709903137985227572265928179379655587505547239874493462529993189366735972915023517028136543911287932085873492365657305101593471610881457703774604634783397037270713186145479338388405642278282661178839189021157172947490159576661493113077147695167432016848852605979879107634281206900449141795662418533634169279285676605708395571332216130206114250529106013944900923612301643351001577044936047448666162371259151080474035001563557328338102664518063547917237326064638454730939729213156215855228236974869841947575008843614026219466848995668224584342666695755633635553196716390330546057618046017837907016492212237038961653389322671989145149229805014342381624131938682758448135332743066084120792814265079313120542645386117401541644702254744951639012274577361107010511667135330201197060552004255280307626278952862956048116624911851240394303459056365622431943528987177700752528013355718540734774867063376908358725809480597033397331958654015623159925107463550857993653561723665735486856719323624177626142563993984412741361438433297280583503873971332820991667551276414771591211904801330445002839819056847488816265539403839805397091271992650612397016701455685027880248923525727007332720133197694961877188295629801422547222930412214481502171370617264732723088774118822560073421971341700499725214275347586241447025912857073134634352500195042783448182025234189280337964375679088130316343290309875596565807766554798980812953991745753003681816057347246456659196195660065219449583489840870695525400333070225613890227072253517281534489375698700751304820442255007577446611460560481412212330649584545865709194474368034662068110569775736274201281669338440107757356734413432861435054749498121846297433067689729151253460662628145708861245278992169533276071758642464990321465051027221426722369871127090093115190867413953329452310826628517443615013080506763072776295157681629504960826074730618258642093834271439835681303585995212416650951999457777423427677799169791299617556907843794798296272293718725630857629520363840029040388234796164062255786631389403325768051012785427643582466854902490279166317605781833316556748302208797768694223819473984393424302560404798779307087658096701617362370971556472502822059913268200979241325884123839142235701357737094224037749907985426140342253775800050897556251414588484162318986597074667466117521662427383365721872513729381828454349410498477196089932456352282066798902021002378999802174042068496806142968469790244062665034109870086026501429449371931801164601850978942826131563817624772519463972518474337034503858239807245911491894689473197335879074706607111463416116391762753393967765732974514877387482424894449873105509324783686659002527509574648584730223334597361172926329944377882399270880041278365043612960333714766585382774797757600000939875436525079808285195555280742295801420151136313324527548416287420856831014447945614390347798996843178206567327094517359494119947951425739376960473055412866730080868380856669700130298449307748840475941886473412518538447940086661245356418794309829397087094966505914468700330428779130693230649571495564527934396247265920057133274292427051854892229605669594271421696013383987614073688872141413177170434620274053238920049618039392726743461206147642937959827299871869094086150243975073634143738118416374119475641784211937299329954533113633347662686005447777612052364363915371820138176322926638706035200660370876910727046259990632675058977267913827092295048745152992341887869929174914828186720519979247089478569936811669422919804610808560868597660482490962790618729489346178447798936307127656407229190054048646753265682146787905394939735395112286696555113609144193934095231561004884317696524176229251321993031308815238709921580449321575695545571669939902388283894702615736571688867932489880033962905056496883339588430109135287117857378431931023374456969479234495002032763853337869877584152188528235323619994444165485844648176582671782158048229714109329622224926003521308735581790669743338793550874175750495692047752251014546632432053765657856188424026792165199205009004059280430897396414855965726481301317529882569908263499820389340412077048553523777218744334157862587108323035969431009199182433323339652178775513995701591437494005157215497630868780555127932393112802307895259031326602166817820442799109016810029169520988136715824485115008815589080149306583976041714522085072320758484078671268994420389361688891782151747706119196018944807213605179610650479864972526925207780919064644120729837836237317030463915050712041899740812555213355222212206937464359640019919578452054458670211169375707585143219617820365563969623328583009936714121939422390248039006684541404291956727187678805106733604104241620161375555154247510677023068866486554473981838319303735682734175361576856354292702030016635155500718277578127279445441553341002169752584658543838198764710488418742542618421293667442248448898930661118767030388192829407307700490047119392114750397328097783645729446787624586907020247495819756603358779062683694593498771758545953954048528083781592210114871280585029839900420434128410029504956583560638323563082876480503033911960837117669669250586147867148692207074133283869766962116996393187564642791748006438020510415671056559363228406487316992360907035895496018987817097370296865187666821875587633420718247054465683027075730835189966277301753473252670869850031624864632201109499955909810334284881354614067317996654295305398001502596433411236938074619207405421732095809967376611362965198740803901338143768274043921744179480045651525336485890925728590454063430729084282767662607383536271291877484975465009969303103132902669958094196133647530373684053033363767957444542479356420610078783768824441766983663579501374287214767433978016013671971072698715812104646193918857389028123046820696802132630662619338537981622073926824658200134154097832169159225984819205811354415469737296436702660949402923110297209899296936190512187338670029362490717150189345999831957706584629001319694171227488264517686361371890308565118360642363792675806712338345931462828215491574600423654321773149273568996173912020132934148843402522541974893703626356821354372810893272584314481626929915974509896828083233543814709982832302967160863533422462639258301248978157878805544854514534618847790640945552891059360354443686171280189970715509259685737827726008056321386537293614892463914258015468517881670019530618820750119482647967534336040032625122135553802252981737799470308732417108940085188098342246938994618846897524502513136004267666387783220046732444899429520627298840463954101679071961009370235297232834548281413331799670231628992341512206484616972469938513670174861510711925853313484956273730580361318160099806876203710952040465012465979768105436655166432838841106013382156293021899878153795635234661716000000471528125080353728197321794711948879317068952617226041628241079716802205553526804475768883651536948212624114640611782432919180471023440990024296581085432638670417709535952685405829393844793228540669881349341998257944487630969895570162341890221658648612473340173969582234296649200038648670763976789072479982311577800953267052372727055537999083552333533991219743214950741859937429335234402893836354936995272997034057363886711075823529494190773959496078219154511942321842607726529357529543080704944775430003280173687050401988149785193617736884960102456501781064883689115687656887377482754000943674115083405406190247429138150605835754564074260106577353531845772211213225315423377186417830293553485583243733022483938144130862035061897632157971588528079752709984808393305802863970570264705413239084598386104884957105348421930249501257709464260519089346296181135617616945565876068254540774581608318851885896930361772699890670326788805551603752619512513838027775497906695793188800234538086563241531103393875103180966932685872303819810130837600974088979293002172157799388405017925284744124957594141939767235383268737676085787560745565347911701630516238281955012327004542929159063433503935814556010871705174135474035697539062644758106252510367918969543410153132721319137953842794570981312681982397342109600976216438026681454052377382265715007796079716952305444427252132600982354351776418769781774204535461438281275334365824677851542262062559146234616876236766330621270592702796437821877129673630788314674128414637833674312601643196862818057247028966050855822113739173248631258164351986514434407614544042501987887743863898095160125765990039038731489365032940370722672352548217023282888106661403718699744112677643749899017620290469123779021595552107418804184957815485617537178089204814979513155236525157863807733577168154083454181451468873019199657765977193638368079531895027367969358684516768899874978117063678909442902027484453366341668140080723764218495791939653665820413273026260705408681043347273535135721466503115355571308432106102376335244835206873380899647594308730634637889960440690545457817502264945499387952998871847193210080635979733326792710482191273221600753224770363781545929126742420714510068755000387514640988798109053350839506912775518023340143514262870703366443621730234780468318104266143141186699857340181535078598695116433904389241082274642228049821065416682157251584374346343817102331141450207223169832635523156166703267318182822039957775537602597220095697547662078236731009187871747426005146372680591719750020923694660478882792399522939039437713480088711074253000345292167954261665883322944244090346335795839509653327516435038850142481774370930549351937661487285009997405808914437661295348766889052875870513041028839555484669052322828253702957453226168342954867672095853224890207920629051534053948334795313060704589719294729610661530867266590392683224729997351255093709086835159860524776519081715799210570843818732297864089547444964154957831334250298216028559682816787691939193261783863245808022677071529052010889508964875182122799104586691389523911462997457575125308935515331196985781853609377725965472420856885477254140754611758787494924145084783209498598475474978217593177496927789887205991289846362706565748816271997714535255685302777523594152825861826445530379958701971571570791859527671551732779044599381836296341971115747308511270127870828108580397638198559912693394959053865967681785913053506565449902994006396987355361931716519560688072161907598343066360593612227770171340930461701450324426617900084932783067926822897214245965534953508249564328026007805151371648375587232491234037780901612526728352748414863717826981961208704903606865886203838837790319243905340368781184087546902115197388744728230123126207600235465902277808246910005889105931007367520346983906828634767581428692006292763356895530041266164332838308873443336473818509079862888879125963773999242371689330589139612258076430337148541799038625318042113605849029315240764753640911337727420408555866639379268734860404408047872789378585026760449113709446666178416781393395468918591502648707857499310437923310690879826245896889231560915958519569380164045389455728312461478483798448646243019909985861947309064004119802120669836339281943020244613957797821952935525363316832458655935796410237807354361167995759693519118428472583630601793170878584639966586874397776727377855532875634639554446176992211818964115687321421174336753069525059708088873935285893969915090933988799955092330158289940281055396966751852575295257480932568270964784326005775298039951513006998512997214984240621742726776701675433278143695586821341391907881252441648573502184543782039660974246612901283515632048254983031486479009191000511260533185196626464084228698441634524993570415165964706025051078029157405098823952130808878582200662022469073703221080759901151193086377954004518344536251332338352613198316986235583440796912906916094482142629288816766776864331890159104749641049758747099352034219051574804077488336193560660604293247949402737619040754204868300194921109604970047549938885403618201666003491238259829278273109983894012610391532229679913742476215274049382617461008017360587360967991092559710852155230339076318025283829392923005751795920476562245696288698413991265397173397176007993482394525548260512071156266181584891438811712672746563283707010266161311304665201300225977417896902556420442954669551698991775896260637513189890566055427743633915618149788573920731201325869227006446129133007452550041882947196243375462666504180089454226788014758933818025159865674944993373909908214737861690927046768883704615328609658958033580547883996434877134736360674448542533993976919475393263319059498207564813421466943669280042382723186001320347973179235931978323542953273343789584679286273419332421454181878769119354128309853750449931540069558336361874809041035917470260080167536738865398162629709361540871940415978728214699774703739272560959066593178619575347779481932801951827155695754742529451818229599937281699381360978308834990430833315167808304671521681664520808753739759408292978267946641794561164182341961006482116120814661015535011733539056184484591708084786124917098287295468312724716386572297401311705744069665437322388151975865729955100648994809522362585881852965313923281943803226370401304259950093083739910991026468361496370078866146012135969543196562906065307566455031873649413059071141463485956777372954525731642036569270147297309404670786401986927215351399908776495817160619781656365657895661471854027019867443766626701190071828334055727859393499768478603885401657705221981850918127372461409727153513807552456408825455706528029511350012195685213391432906206725467610655073462576848760379380006620580070071897254255634850812033473197965321467495336987273341038169090150784217304165171144303440979866453069364920020345579529704624523095884775572987961078010882755845221550846933398116201691279142781243204240443208135054061774678610641274391904695518543463688216122565875303404078495952163835146502491586119805976654629320559728714371625861677876375537590145361900289199251813999209401454987988936426640604945620407268271815662969332498426308526287451481399922595564501607042823964614642528289040901662225059199425099785729315792434453143864257917104762757855137062142223758142472795924478543162621407973656434260162009151157671367399082535392939709811655655596243596151685937052376386292884519731155149466393154529469711864186727228732126767796807033935679558234369647230536073820702948912554239366294193273519383770245279565309476513276648663980050671779866635663871466557653995254106077900588661138749736454393342742468261534222316463284226216833656682872663778938765349612980125428641005705088581546564512530188975680295752510615052303801638300509410125086765474708154502811732628902101194373491937928567004539412596382406082286265133755955561495385952071979839383798012752478371740752076422479800274382299418042380544411141754328675497730723724657779940599350255418486660480575648459814132240915286371520629533103850000296312649384244423727313004767368918182520279008780905146872952020889705174675820571578627110700125719917570059882517677025962663787116975511818137179907265509544716181881917913123240796375411955058939782359783383824420111647563809069404845366367476042372562720743174318912203431045789724543121098037586842699129625981284657943313866363425493908089398683451440976901795500548287586539762875259505992872067926961995557413878249770366856049918878003207485212520762060707031217240640242834732990604366044148285130122806802637350449666358308492491280854184649458068451610163060142272431909450602604100547723531867639821539320420690200215478283905038249076874613840258603971426096575205872336342588767658741155198119441577998579649988527457482573414513084464355376542561297033856318749377019797391842750937826561826327522542694197361438563304609436023946642888654110250102500502644738828122503071375524385192347344291769072149832577738757826197336547085988285469070526776313489107747555525602984997342514977320762744220766963908259581607300766519871510972744984796388800238727459670221815672935969757491491197884085169330919869571820707146984532168709887132483502190025619056059657273190939497647256191603095743793109244139313172489510093788003475853564131328217177889432122255995692352348281981661424260707904655944387370134225509918184155085475364073016580254611024570491080708767068609369997387266631985093661796798424359922172968854384004434390442716100855994680865305235061643691765764179628122788806008661655746428524486812831951792907906839897912466790527715980955507520788715274193004501482572065790786800750235940725618769388962452008016850784697238072745618528373479932447102302818004727633188331836797108777492381082024409980551067675441774431742774716847343211099327893225573248155212542418771563291032720291509834690986776072779429159606620694509947090792468259575738730552988570107729396263245421637020966660709722169287879606228242765015837775702896009435907291415203965192357006874316399851898758735347398323790016102656738907506319237130703854426892371161042174661849188838242413502021030571876948806696363761170440973055740779382754194403226832284032822630860139231933415409681221451938040083320286098040974297468301956317186781754532557190856698973716000478954389592672255137769878379214754375557633595613955533665954434812719222355963292733970195544007945066541691060540275992150510191553690533714909478979079032818522899458878305317992835021212000515580024135627334379086070485438992607712653437288239727542629610672593487859845223110835094907694869747925291413643417195385385700613126661417458888924108345225609277921419830682916976212978612746070134853355428123968594459512179539242015292620535403100395870806760884731103747896859377417024436184393749491475978584337456281440286738439128595249862602516576468734036241734928830143301659523309722080616494867649787375216953549333740687170551075468001049422941145642027575403269412274323099138289492676240763677824737269360300399716950763788265359990282822691218241011822578337690196062501633047380125419696669231496869465775770201141302880703270731550647539039669198578043801408965582660090763641376394470611742664341925653858455977993816120695471758191493507526195547655375212153631024745663807319588316495095110719029687176978516089630573568615281410014172879491127918277934950115852476298990113735523059007063242889679405894128956881500110377948678528006837446821338945457530833254500559520823110463189077309981478789017450576993962339484277833635247349418397941795762594037596861847460004528164268712882425832794904894591749841339017036926414864030151323124607184897006362230107710718213653495417429054069613669374233333717287723706157903718257671730742449862896638511591231932804456915545201635784096766142270200189860487281441621782791557503841809108339463360582321451460039177666734558939572984669369504517941920526565661637904462996148065212453562172968773945492408285187107816412939644722118970602944945793352219048907508115074615500980635343530417838038785137187793204746626699420258922049314528927268843793030262626156966595886434639774741100613634888418047718965687799194979672972995885434121867855781927901723628589387216687655670115900184070957890854829342971923512061359739759822389142577116108054457263895814230793068115002527747932048257420540716108520551717009685278235801176043636751228380422720274131570717166680504772483292577811842070493910157690287275467895007031020202518467629064224364576666408748684326149800030213684148610831660537789993844675918563638899718057618700473740686659148942816968909012115866170654587979277265919253935962747023629227772496067616584775618681794642821395231962783075378967186941949237858254800697558466551756852133444511036367002366480065042289133345656776901005944853789968201822933478541166596054772671662497616137551330604311883750542456260828801297226548841953452704232536646765050703482987397811776653579578610277335839794096102069504681786497029494209399861843982580220394872908880797216167103892496011633203875840381228984499114274926149144138588504067892218392719897335955525143225219711103130327791074422885072093395230178918380938048812433829071560249303820394864592077344579349715433906340883500567554493618547915344301074727582780403615356639170735916173659302306510289767873749283803698948154760158589870124047602814166994312553796749569132590544481719057803358516612072793835328235664167896046244398741326329226519246320308666641300266203144976552239170010987239547464196292180657522559949917944017802587141087776422418512836378255677620765193366065805548308202439508926429344558095158381989205141575836116298875733026051659873728114101963571931825283866215805780435790373393999121952746178402902367347309915760790899199487591088405389143681878249738619229389807830132731392705395686684103513678455727390160035470284176197232525503777670606817633534527520898422025499307164026335004517410590340702912167198433049742647944328666231215674789857812338785271054101236339993454448173996572882854297855253581944128172481746966734031212309145832703879219984776818960352338479017023225700541022506927245825782267809758998807809203972012472213477547358957877067496413002258709890889322482305546444467141604284896273690452323503333155776743324034538866474373669617529700839388875295428803075392876181409277790937473237477397957576680837817720469105515712553703014578543592459049143558881628698176473787177241803604056625748224040793953616619063683653293382603598317314417051869829305425121381958471094137961037541283956699833303522275597851840377129961404084931297196774737347489125754286419536407978694876936793103887724369560764957179944660859352962065368693591980901952136653201903350355386890252409340620448617107508914047138908989355743820812550551324777017410874485418230837969185952380227254564582716457076644841785321751122873309377155256834313985905173808495696426901379886949117838994020080483820984164655514449830555024082288286755980017914136441308449075508664321077828272027941086444135486958330435902568204341031225365036574984002755553679581475048136948299037133144563271491817539064758769822272135274674161086104506281057228300383441641406295699314049971570731987022586350648532429696590167118242483670416938694036133106204218642622362568424367242479711313303328716425757832530806971869866017946937392251212752523699967901110141185769024231449422164853977876289614728259712543495226373736516196935950511712343371469452585672313819454851658254016301209320018650840585371158457272552596269777419721396778969770604827101348415533336960544216743107191869843000901489236957082141626510562961087773120588722184160220723152110231468316536399195376188528132809452081113704264138391868755033430410008241070472467129602757515885288907295429775578241451380849364017347291495016134353013329512979995012580062446079005586647940240103249852027394764389028608587422628661974660941080094891010718290572042274995039225919300341022917571996252443340225376659041610151623619638268829528737403865620079519160530151108435919659024150726592603482696758572591991341382452344253630788044366153426446772757822049092509340366731322097030948934694453055119771631837380523212433262777697162525458134610611505406894227161951850292030519752989490594673854003339443584497211753085636224253166882049499356181517230484101412540912273226129347661862871466403458189179890326131148521745905413274498065900238584627825685663092936011531497526072854246739311807671029363038393275337809155912116247890313335193972396678120811751278424893934254090644221365014323870628170500545789370209474436790969380048193437031360853414086737887867555862506171301693839975869344838779154537850161987849372284447677702969157292840021586105871620916417155110450975295183953977092165968532306616665996079979472085476974763756190472633916617697102213756291019931825275200477384818343272831772665496454760594961539560455323411505502448440987139670787436242888393529633505908106178591262209201742582062722421356292858794749531049587331372266094067941527474294761895006155923517390784198464938345006882953495530214992670294138479932332642836556355485616698065192808319147660504286623191310213651489759893877166780844479831718719832630287844566717205182370046463823688961931116946691796349911580983557780697533302988273664685243186110077012144702937432236969152987642850070365532251616403939429781980088662959510429439958319988991068285050736558233575058003672927786475310839753026137355542197379324131380798587467728216009563999927631012730322802890787469724219364177168788602838600244473999834328904541156790694625341064640134684064526249739045940477275061550667377881070700867950596276559879240954263047573794280157704740589227406652634914553998895090422757280645545744133599491771970902317448774416314947754918413904786225237588907810060567619475499238226144721154185934978340723559326362478989425092360193375745094728861649579564251596007638829837722365420198360417376788781757076151240875104783907077246177666127275339560319270932733433544832820133160267627018323353499378466435707219966571979605738138665117989121327804583674974686855580398019207126185135033666957609887616343326787427832403843227818468376476839949661752005891906822865740000594252957040622577164067828082905412249463114181683624437195021752807635052446084660656895247940944915170561775156012002235894750070820436742200758148492263365617911042236901165271901209816161344232906029308981996152889108017990157555364082868931959956036558508396619626388289428055554654999938690110148583612416736217024794983241169855505616974452663185866220004960381651449850754203413524285407850415069103521275209401003958695631840305959438613471886579394891866877257695953919080084521543246560074261493897692986156262168668059259407616427613554909846821838505006485607750310657726399207404756672605192261026200223615023805305899680471083059845311831567976792637813458203245753762533423172435819474505908491712716957098158819489994227380056513952576663193580894310445583122710270081269729616674512421722368209459524057419878177675829429189818996747132976683095105561573622311154448140694971565473077179149537299159756936482988061062409613236165766157942997184328961381806676070080331780455737782651949525228549499627255752781677128305916271234831003700599195346105454747155358047274277532836138854641754947821437499985340903695505887560923070504420133611061152291268873942744229567796816511989094392117789787603487870184986351041648952368419291876209368132097014607391519209220578990079248854775391934850485324964296021891218121462837743777092466687892419254082592048279929176508569291531941614760262092963895927798593235187047742944166492815173907198543967111198030902311888421131415025710554592584941424916040289602354641129822106556544613062793464813432351747723279142085089391248755635965486700209123273926862980970828288375705193660842363982543686545770878697150813782982699610389910500201563856544302847700156155409417392696111761295992286909150105675948734688366546649353323014573877131235366561237373391160034283262922973714607288598412290717965375285604067482949020604515421075082881284467998015109310336396028353469328491471018091452561449182515001831497863374813541762703833060346750890383007858774440205667724030384441384320865424133247112406241266566401138858466687544377727940437623425503936609428804240541639526351033597259919243614273096293688517804775839108708970091347014902445726753952214995666598330261762009969687932629779449543681001987552964800157488678484456310494319660480351264705517788017744514687028954412378063753604838117748636060953767998510631806542999859342207108327619433832885660782121692298764584556099048893650914223851928598204142444565312043090155013900673959735403251521660894584954894057824866629495331865068691527624911306147096832594044625390300642990369105440211540290322959746613475794513922862080410494060953364906845019252398569227569982311628674883021609971654021379835098110713604887301397594638369832242587160822837653232349241867142306200606378019644205317996990014975636776065628797663841057610664837449444569715735851836160724272194736008599449610488421843690290519634663219902069889573653721689881850460406395876929867147390478751792046763143615504377870642999844817169025929942229977900024923801694667728561209545663895977473515257700040776554348925635659217040072469785050510037789660986905247894001060071206588534636856187892277381573416707443226388320484920279950840121254648661921296781574477978473481955718985971163133052286509556749966064477901122009631726767808709420938534912924330134729657295087686942371977833284304076262206747148845328489183408892384557578865424445782092109943387511891462060828889628647945142262785731843852477176937680847017288587956916635178275544896969029977156516570760663605476321567629800973759624041451800668704736247126087847343383572379999013602832634099844718136993834188080043247346505550317424295173121481204309908195800114981997312319675205175286243926859577123287661314488598145107485425131437789860161538390281379594178509647716958089133271650781697630995578317874324269564317906802564452612562931668670257561556826668350307056993263115163891792886200795624733410488151355112312495293744733842828867067828723856056212553811123334216775202399785904406947468313769246790371587218484658035554127054635846519584683857947479305896653422680587664750461949129851231327657869497096703211153809984070234087419757392685429021175546081520040506878571374572750636338689996065626797321462511564598525712620612898544216962427519448097594194883628426973176984830282572722100010053858128997091892878768707956859425308522519028878689339912961053374964203986332044798336933560317003028383572025244967395005266279734430904193434748357070890908913538405703478730190198222685957405167413342688851952122361692478112250380290553505391868537092748345109989686030889257830022341814022372235739680872287879900866699987781992039885553012711794580970389390556867819370813820751329185399161961134197406403652421213066628572097748090426722980375994082675647629278466253437099189091078346117161490383168870243603643155559253169920575871747241010453447312881385598590631038321553276753334289030149754745070980256679589132310808549638371625630206771168837542661685824001238499199066543543453426519360492934841653566284340045412578272426063042351994568392086231230828819626128906527024947463838161036212099140024134988064538968033491508473180772858628130500551295644002737995697371247016298500310549983011152989595250849644532740468184248924819048357407085862875366680477026204004052674025359490972194898099500821454495175554013463554817576924764953717160418664785840771907618218040726207059802438358926651290431221795201226067649492590115568332904543608241033779323543839600990089810905947835273486414174599665930153722997821509411463171104650119814283904726172310551473337748791834695444750266292186375309604088005853410965323864274870600457796737162435093791265839991851589019407921221690087282045293938697298626568365515787321100222894323854393045710788195255306646702996600433870522750301637307459123878320579510719254300815987416268055477464634513049405149504657591787702381439305899988567808791556783054066923102692042736632969177318536802545410582716522346926743962555653208549318650933598724662083593831200338712597307693803751766171411629696482275274470355915613660522577537148889621184322753812505028942470745770104917747828674355942675616671462828587229170511612971305737823959989879875270062062735213311096315333586496852015001353043759341955120710569097399685612644172576940782519569587019939640256489671449245076521744667786520438188827455075605085427520643543621308554372199855770347851137520340379200599882381983331621735996563513111652914197895099484879274330965515162348448626170619922615630373639148401475856292438016838223715171060823366112990189438277519043498553266614543465958327428931492924561259221294702512745558212096113736780619751275349673104193135590840899748644113912085960534136103277075982037953470121249475749451847649169731743993658862114237988314502695668410160176882704551162378928469309359637318577545411943344599152368615385984046913468438954191444400223934157835468647968971624216516960583770118077891761119437141906484013136342696685206288670256962232381843753514061516581905445295561035155838195647185777432700951998873202356456604263909214740329430537970454290870829814018778108892585439161672743818861376434069157318658425739148975545110870563818464036729411642653035804066735017880824049918067218997973132937469552127024574239790596867473071854393927550355894199228913274640393512780790509184776706627534789922987951880545834706297275229507113525518160322134089161168471820675820442983403226322834668714708400592932757609436915762148915130946257250128209438168989024251230926728841396150562158552631697224755444863485039647886430366819518808813723745647447950735240115547817380434803648399820559061293663047582856847227837628681469250791337258076340877341440040307292904642947187072743173908862315899532798839773450272004877624804454995547755463465136603954771759244146363869294962474976050374431763886819145881607217656614539531854097219575001928805261485161077994086009160764096660035256570919566980530403925052210773861722848005920390200791205813482109691885676040711248361587053904172642145895539567026868941608354702328792643777913776006119534976955741795045134828809449192959458608574209195658058954567969680350212845171680228253477582897590670717200274010761845395700649540824047506423216459997862830424938725449713471784423207982600055085794323223590326407833026055310956009742033226834485419840809108381869777198227156003202630865013553829659761246597947132361507606663949331943732343240758176318603743849116063669352690966846710454423174624339522145961026390823259105578665240823167728544402996758084282810162486551603551995870054097851612667961350082799752259871781923210543516002565910149427613655382641507465557583239922934772379718673395497315221906958433546503735243670178532794016524203006328727251171447062756620309364973911418839138934098044263335405854574399930387281970884438168815551677936043226779131942099954442075465257253488399353941184177527656816035760038238553622973887028177174341550313232885551168547634936284456553221043325493924217181230663226180558489239201062726873371329868432150137022473085209553913347437808417866064029161644661219002090706032564943187624612738503116398925865006477674736854370619833708127885328270385177509522035062308389696276317733788205276676088159390166650806967268192395878905816383444130018013043282134696090073716148147636305216258997383668280819403560552454724856241258973182862436763451287598223297174142005139395350514574163130130107379978936984559309981273627870367612215315617538187746428468382395710101462211176919188941938406650627228847680125380883634055499263451744453833390069181014652727777602470602870910490437920978937391094230710754872214642204928603236740104943347113872819005909178224025444038619776764752873840667342031721488024828558688064445220805525921898959627085973010193316528504213734598787151157815874290638223733341239110358233692908700371076541200717031166585139599277714402533478587262197122256692615698154979292002415840201122888110157686083373458172335972219436602381946484094493350151575694703180246504377498368393210218081151439202299828298289172182454215129102553386382198886375269120435022487430655007000286682760671403448467145031679520747081338990920647640993881847076902004946404406565477149186964414520546435767875646608679685003697100411244163324921671198443579685934192468327391140083086434876650346340329923909369100125309739838299302164480677220081009060800042408807991566916559300931281070706759291629577068307047976386019309898919406357092102103229716603520141861110944639497224565151260605881484808413307023209293138588510989706239090116245020364670128100688786396098995715685577709554795578312764185184941355411657220843486445953251889273805432404361055188897458304397471834496792417118571623025817467865370887311900409978432497312026951585319508987802706671309952772826841336803906715310925132076737586413122005513402097120882995048174304210002568988258396437608805594995256939571645598941599935633563325955162010868174206707424311801078319991001470303913387563146397410667518247322339490416835954794785212464082597914631775359228178070734390480919287966809237171275833256753339092568370775213788722638023662111972162259953449872277231412209935270514364125246778431382993708043939010598248274322744475172393020965547082382897272207806206914080560125933429748178567791849320094254417685400043048437797328776526963261163042129102702999338166735878065674583973257355032270851464742611574812951230234895770303263884841622703088018375208944674663519756723493308085415582605193720206664892053512351239817636370847535683291127780735074592574487420316343868600875831419951457436128297331665505555980667716963008760190457093220183566084820852596930399170828208638223524265404780504019693344248935930104797750357553201633392784071545279894091004975471052103062711139954043683026444927884954428452254799347103854292772552013911038650019045600552991850881648451490818320073930591348931032434977594228808550656065586761426255659335755951406228594789549986555154647899069754068101940040014719076520230415381111483284967704429402821129550982674885111800814754194423478206638879799309144852028620247058671703508141541582845832097581335432492065351729504203512181958214823372058074421746489276918711979314623380856248495192287122799577736424504034533265380583027826367231811642788863019658751666490164434387783035105718332385724608745616098006596808375516479949696355543606860347144362928343097784783393537292399436256830754814300603346710507397514475142296091047497925021617574174060039503245836566735597801969427089599273705520358471447355302733555757220442164915210235129144201246103828239641856959989601664115432980698122690128910288354582209074643489435068928301875157752563587417121067110583835383021017649601618689439651007800988707458034764439574504248130228843273543500691048926110104597308127872926811923550259105471716086771723277602956249324791009885421088408189198969119589605949683330330021443880350133349536740938337644492872820037753520645700740180378551754137623349921227415420613473708761693216306196258775144211520763442121930350516328371708129237019562661901843581884217856104051922922762958348819910994013171564951894885411295609749453655488446014152686962694876499483932351038458386082790769308308604622235803961974609894921663978923842073062191827817339959935294734517341499667594492279126512021011114046199838960325062092586367678911734894317869143664820675796301809855880864576871960272849347913837322260843772697559340894526430125572215573076714161465805215883925725965053063401578739725143261621240384227574315808219000912573068150146355279932159703635974750765034671775946895602638734471693525397124574061788880250803979058776716075850428039338205573412018694399005451238619315768053694142876572430876376655517188332870118182373485587192961338930933072235670957288056723286331813558605037541184549911982983523930025488869921336299441398681108946629263681260361144235416682412322827557007150024786141414653773959757409584703007666259473946030607328857059524903522459232200842345770375642256468466674502169601553994027941325591232733174286049944143887937869569510991289659677437701842963819843066300995934500533501543306686155944667043778724981597379438510506879387326938333158788455156801019304830841574044192100635588104170358009428826723547090986114829812462263999991440730262984733751680113374410342108258012557138930389732593989349715003871912887554862306815095837261241159123700820401968018537481096342126478639408464365585339566449149455380302495165563415253595806176408823898069339806081915917547942658364630306905239846240009835641232552993790847540640098128959053949886350061501748939849781439591456283779254704615712252099675697808421008751596205971196547314224612694431026479314669805000110242096045944861609636294324297677064264739436929554063638088995644134629880832809139303704547974021339754772355713833509429522416767630617662553969295086294982876650054328438336989264549508243718994163059499636529050219163735206204272614620772305094372613662164171114540124666252478480653093245182613139130741255478200280716479252110162793814712729634019591707954799507416611879119473198630858221293313020492043654639722839549171289870136731040714935483025942926724012394907731972754597040060956469897650254428915444389354898656134745181568264073093792447525753150617996249273417016915853542489056345023792140107076015376029075427436971316271336577201228390155172268731403048648561340666087508170373551025379403768915259127665621127943003099963336221878876097955776995733660951169064660760607820750032563676929364389309192788058214389598087330440413563796437263805814461156903319486821274959198855128402625096210537989067828863806229438572196878286509957089059077756552909736924467527871242328567495447808923768296834322744371756261537527278626008317214628924295361925859194365884281822377508916940086040394531282439765396136155261501146094495569651463891382483676453706173277184074577475633862982864795785768389709315228465758099538880874233179548842684298806925374666941892481227463213371307641818035064362240333542466192498469962043993814262116654169474278280001184527532319235647970805285682307036228400496365804292685862274565877752080782221007281650437853619550326994032136326045615492365998831704137348866288885637967525545528416102949733239072382563616025990837224423531961954186603297726269282839491014010856476638296970270248870123133826277310312847031414973695218904062917052772470365051034855328112819436473323654197627803269016533755263878370647456241093284233220835190829631191145480248128182799109057890030390164656049737419843940002250018660246722765867197204745904990881288945052279093069190023301810606586180315034433606198102791909692969421983806071518520597755056976456877400899153674766695119481425586742571335678367848581696612995724753188568155000606748753146368145079972386178132382721245929881173389448815512472802429232575886819395945334639611647873793149635925669465404825886470075341557507247922172160419935764824645336524125333474227851888621471694197580222002493227825850514698547602513172856764437620173508396166945720094461178980808270627557836874285124536432864623519590023974949111362751850075974455385275990717804787270002594000541807537341326955388146350928416463447184367024008371800593153645062935808447442380694931019292136738808686759294195084677568912658991592476092949712769326288133875677767638436789994130312933749394973968018946393041596547914063433772494635271463874452802479247599036409833892700724050436089681645464644059488333475576006350592769380962993809642276284096621046052136305781547068390606915945949330372369372625851550353880991800462230678668638764516787935888508112737868415439858528411677153982674621561692274464519817006771637104875228386272617529181649086445678348294147025603159172457246753811386883461839936564772174557984584576049479175333245693744517631263422776868533351659599467707038612558316632952282380785628859355702199500402992541360949795087154226464956899346972925401425053043020797658097665264966376112406053099148932525703038371427227352421235661159540070769377720174788246212665238653733349140968075317882151410302823766734140006386912478139797138295574286541620214699197868513906098306440149717115900937805875387441215334447988532221508131059057674310823713930186580441447297908636646913076663589778248681096709882748888764721334446165032831024862004503045439358419976391129457466048744805539251827023101638831814404735298025154164187742744455482123818433853451819394643848222313887890573536833280274979112109548940694552582846953629323232356678449897591027582026206672967638944320462073678780669326356906359529581394522924781235840794288457130785483886903270306392637532061748292579440657359262993875717190640054426745408523518256366247930335172420090693423436051766111691658948054742523920689144167863656740861241344840812160816432074746326608384518367709604403637859358135504286999129143647132225772200935536160898384852501964015294028737416809370332105383017899955514361848103351485074606522163744533928121941067249018757333659420200258939096295697059046531527035146404911642286182354925229948220393703251745851584913727885171395751371605696248450868798859812859526612645916278991066535522718308841015576034415398452041927599989971385556655403848783989055044588031035969854124045057563053803694217900501642533563984613569708256384377325719194366221385708571463894164910744408312033507514661889964714351665051413559977647447648807516909231763695366741227169358643321371709001063602362172738334256527065311907010567074479861234889539145213233983841497393102370174261605841020252483228602301460726045011672941890525679804186832609142282731173644119470765962496462627548332106278395174037500408581985573209126124749902993620057094100063814348014454946801923634818663566854818029156563178785642981503243338890163769324016665137688675513556390579720024121090571294430581881463376697204624078892002558663715334598592327077940670605460758970174425145881394653684054292567242020689288027234762879199800536619725199930058140023954419249811194965295671426971276806124956716455419482377089850694362277837697147874168923278247843352596290394923249874943208630717801445289633000156963313499529312039306320118867231852359699468495164627880757544210443181069621266076062070054905236347602757424312877103682580732465384845303383564754603479239568396991718760686090019922621554456180920489427010021259035288778597732762662833609573368197226998058107173571944951407936282637394631803053290334529747748775032302558132527429369141664229041707003502482190833127790206011086924070988752824609721531779103593311959747002346646896697776783188805073029466486947478756896179297043450344112576672585624076858412526798975046123057013293656743154058712706985514085187904909832393691973690022758379636104409847919949169041253037812457143061967312984232657895208140925167776791542619638492145828765223886334441504891441721806467991965122911229554205841194627077443467398300326142340987114551786268668355963368149167916295052926614385446151723884924942338692929019585415511318969161616174922655611321186510942167253040054543272779605552621171794985579239315216447248426780856090635090183914000981496202837788378612066833420090212789350947702599010676668061540233756635892976447230594317345363164299863294486666071061958222989165788069450170911663860906178746436871974541718257342668922738271446284881988529016390516418018924031722515022882392031674435288311828522208190429915804695214808534199626789151084670420711560159320569945055603904686639307922741470981325331068233576186561072120179343531578229549834286539681628748934951368272255945026606344189689240735469022150606823100658351573751077807814304904194709048703876542541901558437331012461571413332351440817289809871130789276628953944885485762016877027458779527530106212306329041086684709798043578891950629999106864766182705156098511653728342611906337131513394932341670000183883043610106110181554254418777372630528526999331810337447784796051696232048624499636160094356034682399494763484144898023601144979227344149177705617574193372490023323163204521272316212927176439208497915488436902696833015894400553720961798174350473113024276200285073998058393909060806102096109670360044005039166847001511419667841493584497800383307798365387721523707762321377658218220402399035573280873007854131014747523118718686482593669874756873966930480885685189993241596572694911315072284270557461649580929489022849482411092369466125171493456475317143972196283657233340742632907748032949804623476270279618910313937247144363905838396948000785616813598490336538642460248591001823147789106978330893605691182364854499358776760986164853923482880734857738038288585136726620696987121833293078816969364094210555721522842010024275170265598441895604722332310920109359750191667277446952921057067245876702005714401500163965200487646401957184504785214858295448282575547437481784812883082691096199604442232376023090760664159953094816714296802666921906472856749930346012465794398088887988974867390543510033038287973615190591175851714748537203357749503414173158358622184989144748262930606557474123171604042672416399245535727768738658256416691523803001981818806193251248145860220641132036417292888951661901799797241464772864753453572163620521481047560239970417562914655791197501825720053397402343708156661288779430436701411458456762830288888235282470137856353176054338275130312905869914202097160334226709816242775739761363981513645906909661751605575983676247559826077489186361593425587742064523362906829424283996635557358356565100555476268183847353148225338484888570226152749493734160049114200477938358752035418021930582528763312840396215344107857650623463383405847030815097793497594948647547849779428217395352102210522823488203787513699024752275246496367446960399627471456943857832226015284951057883707842106170131636359679769128807545616781394248536047758548938475224356642511382918379642166152957360399870198824489885883759114088643098843328556913061079246228334966193213402426591436886162482133210604950045914360230760438031220290250293613558996021966840610849022631743860989689908594209260009449258595674339347838108505204261419654082356866209824964830959166118297573436878152858271336506032590604635604636772469568512213635833969160024640765422344714978631023635652594526026685976186217598462382074096212305337915285812793851246924835121112775314450510872076435331497004068071212199421713068128688242824387748519192058438590491866490628685587700125170529672385585866335726662289164650453080404204770978936024894625319784604959629252152726291304313025942067547247369659292806539590771792118143104962802928187802983299566682749948722076409575034415205124533355497604956475920452965435811842369698966513699682717839152693513328293142992276313353059764155593251187292530209905360899387236185972377573261473255539746365595014281130707710866685606010456446464527352644715380728324632905572247262483167332773117063829732381256091811417323809083148815950103251207315098181961326766966966665314249190882377212637500483404281194897781142403271324607036611565197638284264339286690703518023991390688924502634767332293686413856752698395657113265284713373956944771134525316240345753419120828447419311999995935032467606204219170027639465863944326406285053076116149378937625809290943465472006309700832411368774936742786010993573715848357001894201718053316009568557035471817211970855797291219164444058457213248203062985190875148132708429173166347139754256878620755188527017892015927725193556081346164440376655614896699075245746780352995003581359574716051224106711165551547509849486063704661502632169079217165674054779303474721145790834273612855752685490730220930292691018615938973863004316979102888230772404167719387506083839096090859993398230430167031181697321659847408872577251493053239203089565161110189792302733491306461018113417291610469217038140672980660784595921633696832754744089053830761689924767933671821125822173024947921016986729498232884490504855433374722996623528691011082556992109512702538525510176224582532036145340653658525698562863750260781905552052246703668620087095576436580490315455032062977063508562048208212491792139559008523878172555979291608382292728759948848593531542345875921619080891097039676716391002645815425574425101481722506053690243982033565599858961290205438904416072212499612869096385747046268354659763963449679227489291696185674545623335465981453791234800033832852638799493324118421347881998275072805538889076879082836893809525354579157512112981547051141108645736373777384531379880999813925429726393895984525936146611738904698483560353633266553499076115571637286554495348587667300439293987574805755740621709269748976045454343920829980045665533215591291985088595444881556944625740959785912278910781806732110761266927013476747779318160657019969447512368423673481078827492676612197773333254429844164974146218024395967884405171755214482566845804320432234250628454809309772616301798541377458733878103012664506102030373395598119060402648260244825750185707536971113996837010772398490494252726933456866718474395581497968904142282082675219368889663712366974101070901031642892279720886459236812064484009181807759803783207405615546575182084032272145694931671249328802643686613871842408419212099375198442062509954161443629048421820538836837536624826240447989398332348910995181245745702036376523963473202751955240705759644406403429260981527730765785488357177134206047869472136363693529941432898308318317609645226480103926974232216980588499894754910281976027254850680527170619037273498650342920891823491791231519720971456266441905417226568233175903364448989069059569690525955076706010612547739130177296684536741878093806076612252453555922651932566288239628719579735753874005325625452748266894802592074769846836541026245319834172083644284437100725748126938147471230425778268356503106583161163445382962863560164147707322715289466965684129861564970451514311877644867956877476906891820733425647593245062912041327421800314261738264824369362926060319395643011900250934623427168858179650526052766178160464982808915399261187971932634998991764973303520632386475520259105691960101408874844678548947238031766970682407662655328187465422043151974118460438080693790601601427780927605372069736275069476011027905345075877362045952830200498988730021564321406289951040899740411768234414218265252219148364142233748689940007227052740402283795339523568425048233146263587186613356266231949921194597149601899830086873868207590173187537963477239252905667329882077812509159040462515632043693003444666093516071378965144291603436362375049997845343543944266591244223939410938463175381564450489465351193850349836081144957301627178517561368527946861410747213249676164311113813586505196091343896806178425131583017309603876605612794451177581273376631790827284589636111647978794025819027525088576839017816144955017949940156030926142474990423327289210893332263708173619507950739794463995756875471462213320450156515878610618420192051551503429777537426466230758943933741926030787980444148465104576666986434618177074458926164142579335574136473060718841954713737943295021648597267630485706841211170934290660189527526134819866522295002859902834089454335514765500899480846451353821299915442419479034548415624527647430142156357610550670794923836247525981518969259802119444784042164100341917396159772129669126044267890716761151232816319713045237908738731527582589833951575909205089549695938911737171650937170062138699068394120790276900944246392462961008068062414834207814720913745125265432101997748729986917995332696766359212372723083361007582386045194084576170012246788052980770936708909678113058539712602334409607281070287331038607073786296978668163352044781050771959772444545969989767049581373033809541696238042611864829945891680141978850953377283028491307909873291886685759539796728387169380765536687732169609094079414274755209451772430677488395689018136008074403800564557677513503544296080603778021829846219084741066919561774005633131525330643886967039952659592753367505694595950610666915775434093383369065195939498220440012756578621616892143963900918418614665243935445344227481754453196914488108878951983359340716782162622992875293303916634843045406356729519906763626808521722375265366697367900388952131013284081441766259229142564995965802195156507712571074434708583118191991417415828708676479238177225431889128884900668478922135590010872266755072449552778739936189672943004342552495788694544901135744852626440109880884014486283934068396446770195376353703149452848844017582253172249970181898112521339414307674485970507098376669185702359909823935447207938616832112508474311063235129450828698668898237084960561026819677706388173363771968012477470700630363855360497741972460965135504301826608807024058970106356657376973977016643491063774055576476338916840402793104826097607895027420810355695910981380689524157587488729251465831511975763972275205138803241290758185974422186908634329043080012917031253531333997350929411047749811817909337550555386110758405434601141352770997549423892971628127535732004743744361092347302944216800148711480045362160240280973615849683737451681281153000349183966359423553330271911608220096280473222955250675636418298007375945444391469180281373779079238323354453364726830380045857617331667636652922397686948492042881130900349964580764495103095751668300531435097241473937467492456499008482704443217614998392016379836918268513872484928018957966937116614312690965187925731808120524513587004342913374981704733206066841005974830746062247361254832566800986028394459901239794864256878478563227367666963414478265953859796816742977435067674146690388323420571107785372962204225137628054849723578908021422796934701997894911335388619406090285515408781584982808467998124050822259104165425509978313576945163333773399817435894352214827560152214712951010456385786211744190464787514947709938193249195431105281291294944659796196974947681670846472161412851187092241746474142839161946933985469809516781752230804407130127867468699757160848293528793124273426643489169329914068034847110983655124005047698587570176356708045952329964429960033308596384477772255180442380635060359338273523137147065708369228807877621322054765097290007108186469109437711340845316709881842371520341070311090359028109443002588741971400696669714341879349266012438514882996420953566482777060636450239388214479612616933054625526687198079528524958976485729456323302615677728081104569958237667844671505551932950847673010519553448790784616219199998469779534183275833365177751157624739431516295548118848865396044669032850360168040975091356906707408103107730261264810469639579793002002913134098677407342198804964861102945827831184557191789264303611488304375585736588133226750641865787781933904936109443847449102401740699762129375181315872539760450490994167726976568997701806553521682709353324490241823848620371623042010795289542792271961988827838894936573539993772967960823123803602802795485521459541586667576367936000741462709711598208073387125091591802038689486726196998879140154926547346452975746648989312573836576702051659141986494242157450332629966814463183661347389455728154197529433827923932330896462626765313110402736267919841625608302122918393934864012118820164818971532780013845853843726630549477247106219021391400424192159628585625795036760110334586663633497548611458633752456846895661014372432336413251896144517498548325813461308351349163627042864573017053771473215026695469885796571102243793686612830136122628032945011350687803578692384898651869747672433226056449136339453135499235291851811789146598694905269530709340153082041379128876942999866547214487643324930000832541126800758939065383975531085697733185781414941992909650142655975145417232414270678503268578501461293860772326548831345884042755904886754468116422664330892675075241714664352519803422474237526613411683182689687893635921253312997733857243781398294706103190202815328483452922863455635981036992637236425146282239833064477451845942952657178278029077059202720082715418451966036289979762221657959974549144927933922654579855287847257489388975048645477613690630960887298409304044431155853116243002591369445025542290773803468323290291929269632128630285613657681946571793550738567369514681535176723460028209621088940929075700816811373983528231874969436211644662981543494838001923529578653755312141692660089316306081147071661713704592165981266170661846051123283814963918797083189826805869377134344220754732071923153928719518946068754182573119195710107534169378511900996322025253106592273863486065493517756568995344678255449849736921482437800564494709616632992569375908050023236949544458937741301557566454951832060880338276261157892365359028535849282441879760207273764579925792114411714250320837257700169873929684713353986901370728609368864465505888839280258836167530087853527260224728651720426046958344773548909278642298555523104440714278193188186346778705031995743794740165982201775774602592484424633132452748050218719835632866155417422484169758157018735361899790823916427421294643033530560544380670731855865281837968924553318280089910062499838468844722428444618879580130386243454894195563332240205237014377472141533901430049203166559966511221757674438827317198195219929924495275153207482293265096043654154538893177215540879198627434764210611405294378695819389500414021468913939610709170554484502976551281316345714051485082584426335401441316685872081995296947998058705016114020128252507625637193103465567586432761547145919601919680369111744092443819256978497179295889358883381144493032003967697549376839010394896359520774293542913278033609269260997228363639846007367071210851543821169598977700689952928210680886730890956737613884091493205244255025236705009196530452540676968434759129669427213150348573891088114171681025864050827624239146518395318492780392922614632989623226389071697793636461471322458907840538962127963201478873535281759803803607781797726245882714077429853606146422299849214233888862103768450994499046006509845745762120598927638730275431718848146111461660275874257740234556555332207827019098558613092663228937556674264401311040306247774388713279739211754193494898586841807762238344871261365661200519615248127167566936513629182956321860039751587567783848708339964059376749622306675627987386263612790628378978950157649800537509762139059615869996343857914567168932777834269382098676642675133207392029493899963697322558180876079714233049070096680246520803582474631982391473645586779682547218909438222566401473875973323758415613765619883056658957703820396097757356094241175989061577234978137931340021652370820790144252049156034408182454286656778462438540840389844805968952693414649255926067666496018399608121371364287389318747338438011021755997014626762276775348839307180136889873131915472363607336362291812170572699804360354770785211966645595702793931064625061454718674302398612690633176823318525979700821173453555802414651594220041997879769495611919787708730236693055390817796132350744521958914514749361829153019041282618895980185250691640138390547272562427916058635631188056394717647112877226415363941776222281384722536800533765515275642887161486347364220825809218458284996952429617863107640197964601593911984734358646550705300795114816823002982732984943023393795673105002482303111025905398321228737706769096158192181994984137397625672957645735825203458800714111018382266021331141092743002231495225620578229852354450774207830120946573638414397608108071234377122044047921543687901464239968471336402168694969539892097421166443427903535959485656648096041485711085922709373052817643855796306501613845613178943872971668264906068413081197758929844794128263623451246401505955161158834744728569071076647107017990940978375933347383792939591227677617602992222751437409370309785365275758318523172613726771607069646580391682152334818460483777891443560285893541187733132173816081621401722301138813543031404595855641357907429061481754268634095313612583220576445666564259711787319600394875361497877005355346761198442142071949000786163310403955916228189267909150928189943910584430462707070672342969472462841029101065178944874148980469080917815494090040189671453185444124197240855214694477847568611074777942863556736841084371883908403642049506683090726642524360508262671039497365378203246987372163269555226210098169480304783296826729501098228538737276204245751112510899906581223384915485652366669076746758447818090201510729094914731544864760668637775567869548318471002712714069602200968477692659783041213317253260436204657786461906630913847984442081614511905302669148595239124948111618123219735075565230732943069591435351339978112183007500745946829753186719272830417279537887741240816871172871988831937133882390154373355556621581761825973750986874668617359132167506053275897415479967760204655595182326297346051487031900714312867203479855923848963662095708628400541623403238092505547271492737365413765619831173202647726920198305344774964354361959638945662575652576677193309459004518146878348379654523746523937150822688279857662538470820689588762815930892902159993781507207804671708366567700456370419229853689380243555530996588516312087866697097250622952193426058208270865624911212917815686681840964520133977811821876793553106837176638838053276271062705158995613121655654115751207480873923805929255742222466643491415169740473935016014506717462671751597843115784055330437735187326496728674535519991240311022005878936749859314737515593769923829986333722249015522291003601592509163583006625524620364354302148026606264981451920196170324116851007720892292835436231565342337987995126291601502907764110763843030887840460912666625811501659795357564757468971554124519461965765721855255112905741307916399711402118782721543102266754072035599095221842580756629854540428312812659011934918937724121360915577336866228238000132901216883808432833058884542969250620364068289240278416143655316919888665758307373688462695970835579989686016814408688209414596385891769735599992883843577783610795569419650133380598345048107096805011205413795173597935625486601886205728509393801306304936677786275885160803829352395567333181524539494790788258591866588764071704911658735143937378415075039373955350689721998808769215765126118022214592305783408579466725207671928405326137604281081916777348716171780325460219887799269062807584661907535446707830218218275703811037169935087926118128348263950253821296787405796474584124009424370193727656028732263791087271446011827689831949266134975156013307418619155126105781237981020560237677489522920771500644049907389313536226126722170869139145486195195331517244772181638450897858963211486372745208536421920666270760434038181314873245011831116771794731899075774786504432324174251091875493446591707887400614078088854540199434126023084012288032880691377285464250279637429091703483337827122946543676477853053308010075243104625397780664395928291131808787678184330551138067738897368202200887626574307237515752688535803425887919808509759847175022252085211581335361221314634167788820721089200320099576336987331773763807562775157786237527229941199044317995030638286492415413548373619292939337876446828776543947279521537207875432981647616095825048941481075912271409627769500237038603096555843477260564829259381404322894902877976934634204965619986084899865618781134340448498983435067470366936004167584008608721961745667450370680321503181881649432640019884709058734969586342043903204348383363480440779389118958329946200230357358065745925174360775882671187543675017769015512011976653310831675803709528983259715460774960584852261076504792025214668137350604926475113710378781266040539423328260711476663346317644846627380636721573006984918706376276142725834793275290719612001740315320399254150860015031633899957952817642002305829287997100242395137453255858169616280135988195589938597462078544017313689261744833364195418515463016708437158154689925170633166476660437666442920420551847775934628531500470998701142992533859976737439728451661372706678365489638059780763003294734702159571000219610787111741245731760109411700209809596980398367303436746879427756859222634297018763870669764046802148586876687572983699233163298303127411229875207252946273620879854489879849954494808162104258139176170279384105316721413835357851366720968864811770194107619137244815804631392522156791371464657274735235472697544254626098223981211912493385220182174045745264536370001857427882373954494456311779215443034907050945624652853297788272243795832739599395156518999688010582112020540576877196375391887054684924729060049364617615565538264791824868081336688593664763805726797154470145365667575237177865248727837968007820641382587163239181313762885124203261094071937962961278340180536698105680321849418994188824205240413866220277436669395905473609200047509593818888910606332480664783803866298021451729409574200166257761096360663869424403974579145489321640097605788706009433106952279466416107439530769221886427506051084102686348250756725887789581236162518657529502292555908834664533523341816062430795364385388978194535540269572503397841632529244649914410681257117002386998372679323395313826095581152546184080821521447114158171943670294413662902509284189899579721191743707192623468125123921925929361652720269991810418733868390722309913014037425919256879179074785528674219464974846284226821479445437195639994121653096061186661560743360115251898253455167592806711600975574670298779694390145519093263711411702044447478013415051341921334711843182730659859256399592382512146226164554743216331225448703904394451978680626857253971178830858626082982453998064685313451528970216082158078870208686982314187923081442560649755281435197619520822890062348705742140325699258793456031140848152321127887585834692610831556427213636234801006266100210877078770771198897159245284730511125944555366345846587258928648910503272675010538566757475313169750823531392094650964884779221809568878844567551674137937970840925410147391374817325415512186456212814037475596296450847354204065598657823837518447157039005002920164133828777732417677205358122444365986979594658787847789974720668645951549541392495535359550076088377756803810604032298436870767852228840785533213061014723392839921836242936779646756452687781364787209445834305216574388048619282818579039523247367253747174011749547883800426466381551215860793997938387676610467107111930098084998887163225170737830313408422090337370052519442803546414361849460084101395971826413149115959244561092577778356447685472415334138877679768263056129317113811098522567127850918399028692828537335220231900607832022125287676253759783942224356836220708476110610785938481669451168811621177852977737698169115357664386916257456256268865801907007467317670212673879810207306979027817096589117487233893398328867843602661910677875972527776705774864119013464459961535339159674351984575227817208206387706487491333212404552729368061067065318843438642816720304586997934254584225031539934595208779108441363514112802894037508774821352426814230798531680161439124781606062954719264971048941063276482197608101502994988073174005599953809216299382781495098612741897257812432482457630122609615323016907596354786895532203572427605191662293303439256738997515219982530641096325525470866010368892948480683604178052267597339991188731270860654591442499822986055805336432355976958248401832144592082488399484976974194659410127191850223286189724474140459129177766925455335420539463541413168774175890105810770122911336919649639248400362233949422226273814398882094791971963266410843962954776891707914845806869057883357555612999907337971315632956195918326448409358766736317286759233667438155079169201266711853888377202483474396243844002263238762955483119359779277190466576359889523193112919332161991546469197740829968134608399071341058213946825942451792737331512868253901348481237358833240225853811492863234877934165374086740482854098885886795033158940816674111146356962510751757201755841217175059153118454879430152845891113431167761116685775227789674821771661544291021796618472767749084880587146955520550360809795018415588340013901836169732183951094931043111339878009944659911390633045826340543627256485925024064466841129679162290124508169376165937137449464965233393102820275550440808595268023960758299435898117286636994550881395312516674066452088057408951739658938045066859529443501949820222742191155970964333353657246224836570959852805997081073417897833616282589023572145499583161603033045971267202290415973584321443839003785243456479307106743585416624191682327294115569271155426838134484224687248661975529649196589985243633407291835886344038210915114799234757745836145779284628870212024233145735688454143848056492600421858410089363548871526287579401673415236881984507167286613800576046314554602465849725238929537617496269542081652621127403961162752556472357341292167728811068315262134391276755904964056114894629204816198035219296162823384869011755199956928033207126215353333889427442679913924488880558762375149248145040968597095801723492859581997378317767187887004664421867010456659646249524551449335514414795256511516558239473077629924077787442950522617689850388143300577605593594430211188093480876155029937141411431250317095124751197192370046901402149195863958911592658563480511916626442214151188081100155135940103638848959581857933020466259736920722980002551479709817495947698976236894880663463290076313746268583828787420623001972894264673019101873401689139664813723878723244202162436057229849964440433426821863572432300641503036899248637127663076675497224384639684926518104396423634283569942449631169333768162586615756345481442465737404615725469786251339821998945439703856326692131996991569762648909068363131931074950409446470896703081956661156937565295230153169458713556889300384307313385814213207512163495079433023966263483380983753984247097884464853712190804044706803648307932580973062997641247868864970571186070445978014248598832863161579080193769585118072491535706615101460270542088312729983275499053812112842463704458083040732350756121129531728221208036094022505271504506657928339335570620962423194338312851559672636096230741228561317482079828051039790844063249471240924225930817913481987900655774339451289034703442849258104498430177855062792824437403306820612300302172880464984350652181746672673795260586943657007869334167812694822974343160114852288427993024595777902491539193388894285335127211698396917701217982487909497079508651967377357355232805796376361484398026443234387092928273359505935714420055215959389592546677523342805556350810042504751507762615070074153314081681457252047797660842295177020247205128072966006737459789380935363434723111766743781814163628991521030917447994576140015292872219775937045781131892068991218805081722315937911794502478306214635473214125514072719711375527255483712869199712215391601209361159828329812933949852519742361405175483195493658113721509036433094951009954995539661440367120154363350828594389992409644200660422548494065505698770235280291004502469152836753683016136094683312251210820300133061480599150315078283001869056907241913384312196987670439942150883722248571498356003611306470399855536704607546672743770484191794196775929453494890713202670279608305390714088827935901490110649575235260052773501424067839744038546222373553511138967244123479886480279066326238847212616814906535818233946071276252224105233219780892710637352520308384456214025017128744257850759521493900692152002458774203815086385414988061475563844801450946181259372945861618656144377633645232864351530823400816125979479759209689298360003615180566768729511224264176736315136312059886189549242957064001954115349098118303195684731213036641710742040024977708168289958467383894906990173011999209773329125289473718766696116304065768668175907472401963267900590809917614804702393568135224278342826649129056449744491360151321686920676946583242353220490027201349227294955046388495605692748525917800461459492603415477013237338769826329387539927998533959911218562262288304923385906388402353861371021838929107141569407932133705419951818355247874378738568778089480637457418238117214848536471685851094632440599032288160895584530564868873217175103919293055443143325556451166073675348394864255615575135288588286567133846663875390458349445124993831696425077987540211836431851799972168976596506318712524185157470170817467702957436369982110540986639123491138717643879897788439119242975261664589417556707484334299239501685431424232135471017232278395929141599292708075754588030287492708868242965242440056123962654037116416129564796393084786139620727256195500695578143843598504362737278088118382550713092920231846680751520259458895365532050977269615534791053373726480495740835013543777118277794517613250450981067162627716962345914797445756753119421804720398201731311099945565414201855789931860449710662345766995975294445480712939721772832071085029177622033935503727144588415284318260272057243639945307098307270977905896858091432466400896420924412946734711841044359663181039598344182446250160936761895335462612701857186648157638331764894180403360073223108665426632481597384527897960919902093017292953173926340177067778121387558651707212483715980519155272400932328329580071251433941299417911297344483093177433140864773322651981675361185542876054382882356054851435278330991302790473030966310097019467032380361723324018247025507559976596314838191797455146730181260090196102559419936884907018741278293192029884626617393893422885798056316837412611957540151615770971171156276867193468722730864702864349928163380727258253777078466806981721838455071617074109833950276436128747592009471405372032980946423420459290566457792546794921614110663485058269505225102676581142348926265586590593340778853365675703259975697957030727013281634741393232025122872249777201642386043695329834475801886529176320839785414921843101391249079739586474640600762834574100809232739975367910117048620634605559692139635819013711819338320569003007227168161813939640704547760552624983529254270589098283156683729469526211421697189965189811991430331855404634312282104140688157497302279651317159711844732508611241405733099643423803421420494738622893596033400957982251817721081150205910427473324088982307030086014291430718340026001835295892559957384648092740822719614045118506418324267038334536213862403336894577753320214153639564884554519183485915237522212698945137270672248030419806045101802610395138942171261382467225332958337213308357821862342838510527900392470361748101721214354156264666569737200603913599062942446664252301367961989295777154325326909568754478867226217247107389954735055659867825257965957826532722153290478136365156808167214891664262755698410828417916203436492789600237083813995698872296774772128502578816423269353529451218793373191689799178960605846789684175260268195192965706997701514417083038858707518760520430934774739889664130802514537832678241753954242462845056316674147548795018310279673918582025426224290256716876991161166081736396393623822763833425276667659779506794591662192432142466744610981542650798167397814036481088043998000059421029378112994616542106561151633045773082919620774021358237133067077866809294001790700664105955357504735029415379005474704699603507234710080660569522793112784465782636088405821271789534426793057966509086331499446323163727177778329386701746862039286043214575666913709343854871614058513016034812439014624726275508543251545408171765526493807327850782443140107831034158303907480360500758737089007471727581927329961156842318409390750608559188707938772833710605011332850516580714824024727184891577002344321041380107670580647389274644465109637161608023302733646078124128725431771576843431677547938745407252259970008111263656895669297327829180686962831847458749482044243480834734167970664496267143173000910806678651412724569248416334772472973624343331770603043996017381392302368342835502886165943081087330199709160241707659705945283511734655135789598323728763796538634286647700069845175477820510498384821080786200726856123638505517878768445508799517090190438844626453187445356503994627178097359950491144377612202170719993179161417211497472641029021919548603442563966014255610954672224362165214299698138581722124055257118680019790477121575978797738193529460797443946470991841782909055940393758199717563972890492972090605053245174404237521767224628563062148599941030826226605251306266122501280599193574740580067292200884483245794810285759143610569012434732287582531622025769179507146574851596836466073166886672418405217949668787458477437409541085895587977666988177855175904347658332822084649528711487247197521524570580054571581769413762836680917746203588509897222440375106263119309851079425638648581293222473390308979162059824512279555295962801731817533212516195848848041619945213357698367390819650293214658659612788321589170148120371462899264034329298864853503269624012637279331515789060714264529572176515841056472260090577521103332549628771333763798667774811106602154345762471815495101672517434888544924308453146515648777426479349726914924995833719814122054153506258995989623737382232750984504020292052284531399225354748665053991524936552724034854198618137276014688879765052768091247479763554286865865096255586272933243197014685885387260538198239058969243350100416303839402675478475099585418048162360909975357509966125485610450099279149005866257667038868290248503934227212441577595271219651988786229235690496165976528039134225721690703633810147056345543022173692361765145060675592893879938553885255955065807698726836149953915973363855826518490135099423743059428736469912754342241847452535713137266781013762700555766841854169565569973660228300319938090567125284215360934552160461308774876864948523559893966151800829824104360089448992413435959570312453073837807810740346542983424663540569123753917714582986125094333410119679844862612919786936668675458976467348873318697136292358338084247186585339183340492621151360446827879343025143763023006940139242121142430000971416525634150868633334146993721145362978230472684533450131180223210294743268898106409060061268627923978111322887158079793616864962660869075849647257970866736245560052285029171568649016359750931340950812336086850082240413238264378646820619733877846434406211546046935769588705659911856748752377249687557889618561539500412229353010696810997385095255583412439725486736241165069525244942736515729454868344519989261831805021166856150056680471384883712234381721985057110915391949167598796333827554373385766772430435953928538947810868979933167864360479703569547718953713633846708146548946952086782029962084044681081298825152568265607399663489481880039782966898634227890401984053304332174295468322031891886668620609117436020415684642940826532823627232403054757499582781203537392546946167130777270393115263109584360707260694321142243785776157479364457145998129648134655416977287242497450411923287605567164599322252148716691367821883615904504576670868254660952077893227427296770914198112922768950885184555553558856775842248128479663494663856588882285456346415948249578339067362575100874012830264637954518086641560189374211283174162683527858684556476928704724355797935098181029325389999838262832971054794208415034881812421187945893654433282674171176395690749653719269201146712914256653241614929776897539106892256064824418929336621800728120188594407741108882796696481521332751600982889706421834931041305340542105023902120663755164195774613740035915483738728808445172784755283625379021099378850725063930400916375900083778141317648834376513688711305819716312637827051589650183194778182150243788765545623925811016848433118223434101604603611477856955187114054551810590363668242810821534255007399290224403481822280261051753800084596457269908861024113597095155069384805009426368134868453687286123716694524271785400335297793982461609688591846359805984770171068451514384123106921545425079628882985200357713077388910040860484015156405723334489121003993002478701670618585855502155293537201124133600063813157369654042063260295334371998023730825524084184585064855506460046715847209439476613977797400965151202562238384390763870473138061363073068845347267151503905447904455443124115050746242785940977664329353479807686500245132460236111100825539214287147142472841951372861493215347675703893100447582735030239020991537229676233068915988292763203928018608742893712534203889247129596199122371046569204669909560693364128525198834390549939834283978611455700201290410368763594996742918115226639550208419849497078961754565401617038930371339062446117372225833946885375245005873789543108932834044608038530686696939334075642383768659073220927647935279490105937853662154792042674284279810440234402654890128833698155186017151067758937254438940880247452999517509315034089275728113177306675133018377567196713279752072669647469071696100530053778742262192139238118772660259875956988282140139092631085249854915464502169434962344143346029380105298546819555649432041714153843772424891389122656743574611480578755787791556756087426134299073426405050146695866968557381170431022015616116391755134371540244370054487967648747271906909254776573366382423657404708883542895223069063662432653213382994196571469189773786404494646422917674272339648527001120987269082073667854532170524253153458091635798225267299021908001391533526536812245647040888413778678158857175708034435480250431841836504430895131467136234690429209870768812248293134586526779122861166919967904531536495605856257797377857433131600787584601472327104558428539053601098241757306755647361977921009580416239034626813299395685558202875933545045975373603321521796846099320298360912107216089454362095457714210195422558793075374767774691131211886545914607275511988872580442380723724499039246988161300236802979734077319712631019055066373429267273365516057814728118700072828209728753365099441711343816175390570631032680712566158871935946526873230736750394889188043364666531522138952533840168995652272264418227908135146017714529483561126864391557563485697048035151419567040504117049498531784830004535752938105619123606586743403337350530985470799479881027252728698014175751768037429135972678241122218458050620910222002327888186456030616479961705907804376422817150146426818634538271526140093786815580453734713117013412139198257965088194246796901355448697584148713774493582414422096237804282783541433686284471190566059680036765388716679929814582836213027109667473289289872020748127633361439322950965929930177723928153560253426513801003852421518960378914403542219999404815045718389546136012153765116325431445773049249513406043649723294329654405249906909253143131262677707757173697379839571792751683302960804656533230470689727053305314232148179617968211417736824780840435587966859005656351843256770677764099206605839862112518708896127438101323407575504242972764544708746163189397474528102068847688714432259475419572018654833661897633295748383518602977333865031335036543741314383629808084583516036404187721971662435144335949045046037473848040324589789372704736264186293624882098564458317313341400026254483076693919636593361645957089803627794819666313512477194694332644604003314922779885048037274031057265594947018209257949121505306515823133430602527983079806433334482949576345184496677901040242328231578944753104286650602137875432335390129436824931259358918805592836674588633102917300352587053133027447735587634454714722548789320343962120014121172043535049030249633073888713839771302498548919478468913060465892367783686396645174014532800816245986229242049132823307883496148802006460846381048942829330631686675290257866441524758642563243932881164332350737139066705917573746009104285561912994641705731318758567569087010321181008379674353649598493096254000584440422437421315438581126238018190472055363126189261275778255243976307575022463599915194521773712217961028039647503332337451361182617141022454939829100575579026779189310612921033514797846350779086981466076832165028717939938516860681911840054956891314924521982350542775358253043637560468733130724943689133598200826809958728149024236619820257080088330310578454132186894164679331133858708981758357672656514946711929205750778686330303056418616352432225936631880467186375287631156987233839382448292089077701795618415802746061245159670382007288972146982804399189308190425163289498918071763353282190549281820160517874777089900234282519585019059959055894721002868226651714534265098314624877633596849131011735446180681563679116340243503515735611186735833693524595403310358785817349193217452210774408610243294588375463216221867581394391579175929203784496440741958829184591129833856431721590912572259259183763522619627198204943831132588076807311877364393750538907164153958246747116337570487736244636581536960362426517410856923686507923696215949499356275556807237275007833497899033909343042575943265675852033076005785559533875287590847511243023711230978374982036181913571412480020979959421938294239122667694105721800611662257343731949884843499284417108268600989956493295386477809265765228896548806374856699295693268523746975811404670018738191196357388685518201026366618855545954317645006278260918791381351614394501036861400944493519377176331392773527645546655328939398833471854489225884772377780735521952378378802493355142449408787433645191833230464006992952426967057177127442512760565888387930772425771746450640993343436454698033521864169689418351006812647881394572233246766444561512834896807439935835482234129591856144876511710217931620236057915479830104022465230793593560337585656602772025428291586735527525671583404786006439060695753193435412004762420479301286708496972988574702046667097529715489228097678116366894858801093065106282538690501114931948780352327845926045966242783274577847444562789835065932483751063999782747385844346610030042866412210744643809272744880491341726052410319349717483961090199070047582044339664063119744719817875539226761158606212315273802698356098795454155315652560653750917239836120750589758029983267585698031925245816800342676672599391984631910165209111305962452670199474746663124817968095732227011860322876124770790358038424626022572953699369137085608335140503556378602765778050738027205482093876731827026514718818338984618877283037469651954298059199970091664732744438112327498140439880397671619079597215537178374366624181970901864937653516955497385210550615746097533139886516451212130625329301688666601386540490510454335497767225658825644404699218673532668988015241859618198220333521646574718838001767510748065118995069534086295638768957404342967077575074771957008227819213918487611181382217535658049923283474847449814537084092045255924032743618940691737347566552830106191253209546498677690556554990359431415405916459346260420353667029459888038971254516285517320370293584187766808350257320354717847706774558037583143281503522233755959961745470095173788633832698299756208656784566906702782279025196119147475426543448847298706835851140760848849028442831340181279937424656793471861453758961625292335701896099384656776292081642466256780770788819131636222932071620213264929393549509999110063861555743545743325987293956613565324369520753897370947911881492269264932666830659089267466003602617010607703521706882948701751418651627400685876846496381532877024047934228370380763175616417211266354816044529830621026145443291481868810054590276169460232314104409626936176906687813081236699284127896468668036663548043565121771573450989814097901789047509420045050614123858275036477648938311228290438719494242334108533777840044844331797667469268900176958773172114858976663341016579477541172936437338001698532334553033866798350335711454163517090177538074173802551667126988017062266263770871020272038764295684008759323633615769383118604001334892684392350642773815087299543709872726545036739185958116558749911433895044131967799526396717092692753511559847176266256141832326452575101975164597572958851185225280062064636575967868392799356939503987599011433630062122233040028472932992727603039936774456831293227729118000614479053488225841577548001205266093405494877994205939852645771415633072999379928178019871042684366338305870902414405772012390904915961059210371691552322546607113198811505001851092647302933832977424175809480805639503775804262996511704935176485037508699064647299285780541980158560949718648643993031372289821797811021719363734220528430293022619563489108069323410474491233965383097600896119124829185466412595195208896936338744328276997854217980562093479525643078670885167429621865324144320691680279555140232409231765120166996967492920106560069982941006900194560262559469824815069308855110724446609819384108035000896799943546487846619997051599121842959397059397128965283652412003617294107961426897987940224298724203776601947884183704948252722332973242377125112190043528060448142886331349016774157180766254554919714238593044555222949205893554206932601398642879359725295242052855745256400396499123773223389014085306063647144774491789876303046554758317213653100604535323463060533556709243357129878111118057419542715402760749873443121726349103350329307613379965298099780229599629879992832967385529455943959926135628513283038410389226582338707609231090646539394563876847161334393757652475841934481290055950367049322411759995256135754387314935595345685556248421090985922949348432169606063246369479275514882444379025174733458177783182574707432925519227639698335472296606042724996534479609275289309693568442852259231647152829247454141772783544206533649984718881164080357848906461236594139273466797719672567432110501881009753856261566094697413481765552306551057847382690606052906300937964368668304785824791881604484362378125634392771764829650536298655755438550752272969154810028153906652095638665076413947355909611248046532971709086179836842562644054359589020723107657656966949317821181385413257714059006642877693462091794018466355862717333413112146656126700828017833246983180922570767147238217499634015250611989186275731236138431187371792674253762132613693349904863860991257751003309566520582057220686827535749180947392570162190398533760191997518949705501794292867301599469413361760406263217174332448417564716915019423610980253450669334987803939085531624775933844076437105756104321811632209860068028281022006640629356828245218424550620886649948987447047534933388840165873851697533742422703460201984128106551233961046702089610847972097111325170515814526730891259043250585173549505832812597144492860764668412386869999817282289912311541425038602735335352511732166265623453873075258848096286653859281596331569043153789936869131034556616537232360775427913846066556795500347389334578462925353226191160806384990623965083231136237975767680214866579778051428529470882646699573168692367739587706668305016677041709854195987980526637864507139882007526684532369884857875707514340985560931363000520373677523968437527136533079451841490335166169308529289547603315484886920396601269784469921009487524741819433066248206520545899870840660487448736969548998007717275210136171003496048453663016504173306711115993025212104786219163609685452489339906417985435328841744983045970580580669637487417901251554775851189691788422846261427940201809821666888166000359310094242007615853690037592736141479472748204264890906042862797062585829766506758885099765277527084453656922287649388511995337165511385940025410322850818287512812928493803059476475462182222729878863318570116073328652800214224029312224222319096793667285208122253822828097033716976730088462193678613223205043641808453604591573078190597911577607732344159096689272877512662617636437945466429107645082055555175871589435093519856985448411723429516327063546332852535900050412391500187704650373672446192361316587460066359426336505927007240446005898913652507357762062917366398779768360916239061143427724930345252240328687195575381069746220280641667176416186696987488771901309702941897020158068270083987766855398203653705197716014057941848631621868918917052377593125414616000902329670924925838589712882371364835874413355944472386132685608469361408507911973128637177991543584432611160339143813756767681477835894664881641140903781251180624244653262722215003753015836316939727092452124242772010656671433525738959405753543977526066449790263104699845578939672113627454382677991941451093897867071431701124215238758289825710276180057175711934343338460894291211078731985351750127095727973255909479224107873897400647928816945157356403193444385718794769236761936869579531536054862715083915597982242812576236406956421332751338710331018026379004681543944498924388423072335584248515694801664525943144828393484904614506106953441447187247100798642090521711589772266090574460522259380226498519058066406455150665198013156321901017802854093551861450603785197158790612231808328272001101178664403450544845411886514799712509332937910051001761271197971151119665548909982221550197135587157914661396908448988836489237051755662019427895912006087772761817963655736136701537252186173371561121750001440468076998865486899253806256967327318197387257471501327578727721249446715002864956306223329770980373707741324925134341794188988211925195323066748629094714692617947869462961770965453679829306006629687608427521166460628422792470090749629296151888995554356916478830981969195013677926635358962404638687402663587456297167505502974600042527894949172835228542407425485656606261109799777432199823607303322766850371212015963292540378707798680145424848681720352681270256384809066379533213540851168747193443601988047932851720244209990363591838973755375154230110393160824295617652032198889627150446295817297082698856255952392173587453406461277460394760105670663793376100406929838552205748373024060974337512012312847979707244924802796796326979574708334916220689943130020658884434505830146774227313269752026729469545770029077876241642545763147843198500560884665737980969476850471934191333384424339287585432807453030254001157713324975747523365276819643067305917620371767837839178613084959285138675396998646997684639295318064810331003052035257685033769475267325910746341756888164003959820035307448944576230855294391814957054660830510424096365041896890123822523987659973916841288253172614692310399747079578404049467949589506911512059153187060438010742139251488694591086060770964117572021967588311185379239824891002802347045568303597170779602236394286480604047881966868183394009947009291239477377450315068935911340410473171262796736437245485045741650959950675833759217319652925564721465332222943857352860370896071583303429995666056894395324414122032952487828836190290518881574282206855817387175193757915885750645243782250073386823660499746057896073753717279317507769703551808111968623348632191891226551155509089801589831305704148052350098780904001162974196163644938553151905925778155212421785721753346118818548081962908901013307169131040610371998138010814282974880581699798311732284038755037455204573862403413796006529368933932293828102566467091584992186575797213841154317316232820536046091536852464734101520038413760179757231398851627066799530904082671249636177757569285195963399074759867108859971196365617434891844336485593361710223120614391361836704312426462074746790743069855455561377375539238597298851990396838868801930349857827790729197091518408944067957148237603578041144115913004662353492990849453329020788909537358415771899928243678737422089701892980981209471360852912001407389081006346262697227783860577161167837638973464010241935253160621234298271635415237339208999424088119324453659040411873848360331273538464517920878404632313666082676206839767716435341280926985942539537153896951307893459647586543104437438104950944556030395222745742876433790852658699236139445250352152501296579259337823819667972816344570131943279009708494368189626289836853305591068320964288921179577573680734775243057716440780748724065081279276909229438195623013862584836540996203786969811293962478572778784528552706055100712902402011217034533136364085452718530003270093960888309589731706738605239935046648775091239461871874094546912277017598781162297338894312160957888937349550468429522455120599589929541864048558486015975307406928847504584052978430413586295586434836388832457656210805075574481299426586818676181542576222682305760125258009763728767870565217427970090636539485967911801660295157260439053410763509665309937868982852466701609020222680292629657183263110258825816669682580753645869966439267840060390543688386696518895175521792230165821277057949938758479582791853947087106844439237242137817181454259628869888079042951092849140875715761499806841475225404610442345645389342533668439541655372401998875186875913928378091875819308031113790636270765259856550001512920054593630118152174002079983079467120778814742592395886832920453199964029559948124125133829139657116313736190340632917408648514839774758618256787109865256756152618149748774910780314156483498720960213780129830143514473652096518677192907433311733723199068914153710767231800887635682412426220940922484942381032615811355493011388879522758230062721721956742639005810138839617328363820360469759559042261229138138401377289990374842231403752449146241282317986960153116231340349657428655700922214294503453309450602299865722347185509995510993175643373619289858472760706940988504107957731864432492651254794083728751187624834063033427559670419329199674007426201076397601449481222121900815397452048285751844397226697813389160188790628995031747115306351518392082611046970543143382564961726044024607219073404061234801168749623991092466949264294108470226564407187046427189885349336379513434348835406349000851159854247517451119595610537810275886837690486026924002404345406498211228346040519808617860424527321561941965714049232473429611222068549078397825188786307983529270065935337900256388778033742303395788357340201523633306686219710642565926093698917899024049414611560723023778111021249414531078705933591599665709927786272471108999704508611353550704589488157054402933151079977864425224594262216258927435700891404435440802906658365331718197526506084985417833309972266746837308837466909793466707103715764297648232765263856470186216052593915486345198777309164016241344476030498397071251081962870037274515153996273406935938585333510820305815115327857339073450684001125012682473412327741185570514976571097839143734432819426784490313067747473672768691595817613578311633517227894383236799938159713478418953383635475889064704150354563218031598002741547724022168650896587387174937674585355266036323432316804056124999636404589557546291625232402518341267707131429066917248581678623995543836672025692963368829298966541988939445723385315683366374020502764362463535409410563485331814802079742243451429431144066730714730815743977109993201449258446181535210592520078344410808089559020437714449778880920304575052768663879637083593737411628984230362452845474237556903574675006726063322161776504918524383093174045457484891140876467916598714083752982485359219561429925848410303327190332510568936010207895193481215257541984186401294275268616987383550022802945567727460264449094737764088272912783482252857615647217506343196331547893555082649753899177831090983211312922172446129466179784787200418029273488819169335448587754602659773194273112151744887883400265865045798519572740482993600564962536744668843551679258081364183787777007076552389541778301953894808024772040551173670726035862360777294155460095604777097678261148074465046848307918366043640091689790073001088258373969835511097985375323693225079058725904469727257067917143478272183209863305152175482900279141472511881095918698859463270365113274403395362985691020385114744072543468691166063089361522066412513339264926737489840384888203778292049553268528017907577659385984192345432108410875786996789946167843292143002393665798324117042562251191126485099070315416280097496993961477702940662757893619393001248496897351471002507599860272508946617421038793532983767914255247142897699770745617953347802500966611035117047801362237125991201075810716784934442523028311850804372194931022414523112610037041444422578330280554911045834034377274320405358528514288073153589037746148692392921331440806226401533492874070894978800771998514120853991600627773321169193467206431547750159008576076657584553682749092647599084405358745743507905005707305661684437765111163409163549352462437216815335339812953887184489690464473789998626414840442594638564829874558093558312733699995990000637269703196309055424768303158684773641595549246000828656978137433915355705756181092762610253883870061080081227614361974307200308617123230043737281859613113918845649332454210151261155741576767372471934329921886645909342948038522389872751812269144994212983492762329806216664263219048403912060490052514826586076755182900483367208249503436882073245353548635760947622083343214850537181507534181814286170142720124056606525594097533896989330317201275736959957270177879090857497342780868558616970807980382766816560588592729854757162780381662963986011043117220079358172979923624184820807283526431768102016355085837996787629758639675934690703868090858656724063649589481917189136345811555665654448942111601287667049552900844760212901324178667828157633062787004803548979234613427011229392220326383115662476444573200339384350122669191079908779699578630816603048582628951228501790574805143237243957979800200699781004598113943898357677989797809205486286298062961405162787834311883302228185973097139263698719945390247576801352840953383479001965557232460544385303711893054079156448945840518369614627291276990186913127461957413979861547875939424387750121400100720791497605594887770088809939434701503319856360877353511576021750752971798940338078564128627615891377465121754862163817732662258130364988190287488106193113653605711907593987132755191672363067185738921076646879570631967099251835674131494596582541582067312596142668807223696892597065667771103327872957174782390960911250859471494308774163948215827995702060414249660079737760453576652392944820608524540564945322984178974596167899936922085820492769398777749416604792324167515947430381133508160883471255609574714411907025301632602992421335312381955564336133744204788875005300774968400570753717781832567871692907745354695849733548646594758936125312978973193485060554582379710681032977003272487457025069906612470239828002624085738435446542655185937171378031345588521060072012838706628034926480844523211153138317755119726420669078117528553910585674056046733078297440254220133750322822068536297501649959992952845710212938133027835214638075570809909919358774371281415463305875589545705998051812670258634592324804700486445321305636115734310453564070121470083806041865508555685278631601235886519601665556689782256470749304972356020685618049397405860744473099806196889538533440398862050065895700558056270002503400075660003255833448829177843339074945172142917204541425345711123754036630203926594779098220152620855952088136343721809716552723012145221024623287214905220238728609814375588322323097566011483133642932952757720169046654040180327371087272043688253166488823165854148612802497411500139063418779218572264738865249827046196154673616903892894570135318245028358496206421384866019940272677757173051629059132464050830533966831479302490486954364263828523953706732538987671332613737785845060245015666785946266794737449373261754112264564347571790287804599087116430396175782625332883833035824202315953688527307261466267805892169848351614431378949084520220627362683825483711034861638475895595675670669251615731041235592235621134022245865577320554566135813249979205390846590961672779572506125338914148757766124227893842984665569633632141418567821078413448593246740645759036541258877885382156671379981630327456825118161964325877464079036602525000352647112006999780243014195231335780313911400114837591651354434086152350629025994934857748767602886281934247407723683583544875638844074023876064036361951316216177850573168407251217658586583379409804830910733247393612211498091517672808467758985563395776305583674889016352136098831182994790491804725269528342783982194142302039254278872750678317834081464787211939761687157276671319894307127635757836753369557527163196987683491825887619817617262102890875418591977385386591069051696438082185642657266948566131371115834646724361565651248878687834428766289825470271718046120833199291269463328459451003176336833949762983857113416458042399143061938690339937811802666194518739192115308418038287683433128453839311947881163943437067776729415368071204555460853309601466548462207775408828330312050863444653125605089744337955057106709457798524629994604257659224954901255260915240813804021977156174909837571684837330450498540700169063922965386496626217397510485301337011893247730771679606141743868346995121624856971776219887501754864753559821152588111520236554162734802119564931179159966697317931297616189487655186120172190180539207092333455432046848472075711502469907281691485580821035900463164430600301778589013755321102880470438914914530474449467546147238562672166480848384990170108640566654572310187013466163067324293033219822190031723412332358894204837044655268775621950115638275466382497793006017684562771660037736242890225293331651410457255148055826762635372940103061064819527213301212772332076858460517259491954593503657037164653087644432625735494228879909736861878189549682746618863861122483133397895530883758353464105028819144621372530664837615264070750784677235565473762287629493231459580653818231602183190674115638871311466315570411203159586891509361415206811276796897149814011335023407644901466520849616966270926188961628396749593159129326751516152950846860690945852979417467719320865520413927678232761568444913408877747207584225170201858745928626764360945975424931438851856341217180025226851137686941869514142392562359827559584857019500081715512355097383378693735185128499918023088050563043134164413123809204811136660520188600730872469199337722109107836036675210357335415973216393218178945679707563005871994436264851597076516473259277828631165198999925649336353603892292295202372302588683116990227918081903065654411863014832249330248666586635066082750059757602511742857807829227609982554660046730778634435554403672433728702526874262946068479733575198895954116932854711907947235005382640572863834304849033291073946404734743066178101965756565682237944406794301009698995295988429998671124926312269853695553982664598290587207984237932417546630364725690547306509030170324242764113895782664862038652873854529472604790809485232552645063526795116725518895288751631972550157397950985350035085896776054701678436178204437424890800028043559801618555564917381879218038111996051775900112804635032137655659349872688199985490397325917859004502545902122727758266195175173868657707863834854550334385139370684759811068233788612712176181330970770889043784135809949781288551818443057906375801973039873354632686606884003160973102851944504083452666493130033991398042715600658598054272381699117218180453444418527529953374169200825694762707887724037374954827348744052571960280134819273760855773440680048969685863549273433141706105781046424758040800340857944615898747070466091396745989531598821402702737839442336829050262912279034566814773948211514562305947693813737061878816178607357059171793764495402512171909610056683642891287475668618112964697628916086971211260339574619047646695320475673209150334507798961342058474155163175937239317737461345584154243360104750593428309971060489623276891656538889049195878862189025829344485635293665573606388884377466792707753938185874015053371217670462266271387677159052384707614584190356005168982724711017844950831649215875375225139350513733894376319392318934177979012210473828897740352440545621904699797423561198608095857065357294408195499745510551268339233507544246686943316565125357072261744875684601020613376099574333052810133498432398429559017753719100586086581619699044036670566396810072554134312481611105019370292484589193771203994129668627037357013739275698744882807510802691763679651932310227237705884227936297675820240666900655103360864131775797019896737369390455010293261320809587432540989893948905204567164803561780695278206991867487982006200928686608946794724349640806465780546299518175813819751255942638354288297996186424846493549888138256636480762760637754765706303519760611077758586045576662814403608507836299402051845286890214809709603917744290041996565587729854884084587338376760713099584804317860711297010309771043475388007598436143204216589119227762203167981407875402402150088355545648999514713779916845968269259740089260215813376919284036482332175591363968372621846772721402856211137379040691487061210349643942290876063339776430656696965534553186204992159228422641359804652360856889206918389166849350704335801311298154041430452605825255440036078876832363721716221019418771979035448689369653769283245008212952040821901087215514580233042189042330045912820355370949768482278529514569336307904719995047211885621987401305814665964686100573321484026882143753367339910150660089137185133941414317815807176599401588253493932602986246042486945057299938038216460474658444585542838597931163691199371982821925549166925332888655881952172317364672609865532445645889606434263087612693119985537380636376201056041013084640207755684569944402816387072256114340353254305253494658166729368554435694778876693371552116928027052108949445198494203145696619278970104315331708277779929563719381895191243863035989356922581763299616140657056171485252339302971231353917744365977437813459390648888694565606826248125733769209184179818699614999220672254188611194397370077040636008463650525924446802469788518149554264322992035218583498490469295635861096560433068680007108487447236732403801733428351585646481573004683350908560410933312272621021855961635150568643586717482483440615297189994056888273633248220723059199395469264998090185073082763553297379530341555882870441078393631263440419871005512420621405251348345712790168286727880856543860090115087769621143693981890012061450527120071271888018410627863034174970259028024741908715870030468167206222621618166917927494695197957409900309357992434529050903582462498074656157766138182328465093185644664855635376300206884198177595750161701296322743836420319896066530878333200871412513309855982342191606362132822953620026350283315442072887626918856448054229518096745608765382282753811569031337039957894985957084218545808507835293741755926697874354818197824278400334816887504314492136530018881496163102243209595059546865230207858419689553000523963815834327514659244778079393571833562568528948025352695001762416575848407100281074399053297822572045992268573711767513699782086917183348376727897030570952686114357286825982395906588324483421989603459792611037252223968529613816565739772609261738871191247826115459451021516028251767110206759666015411360120784039905595127239194176718224422690547185277014247546306935837005282449744813206384847945751185975269676570223287165091855566982724477882535214016126469572870214948474456450510473029040240506942173784174407850687564266666343804285930412233504941496408165078065338349120966860625858371325958159298803434271529336251544107130857856197166419445555412731656799836907610046795638518856571235833143019903761975820770564098318996553053484201893464316485631949128475493463974833877181128678010611250672906263553769112180736790450737130699880187834775104543650974405777682183908222953573045055472015195087938556981960468345906130724539129406964929236738035367076602252918193403956820860716859044122235990456497202371070951988862783861818414761390776420706078370251667127016458319584712324037172885503189160527778020969758218285314017189548328037732866998791775609808068135500581780887785571363095785449510655268624970902240989392362469248535035599829971501200052116338955569153146679095883042965780830639715613915516530035645559229826367650775258049040176010719330251007155353074403639794059232476484112078006069130289810893600424485668765583181820609787058088250735031783755681699873196907157488064658701699249324973415839485199892987895051231752826378300804942776707407544173904897767309039063680762495620194910614770967122733663496115827737306620523276941764110403745021259935352917641366068535687747918812525163457938103475905009955390492426116235953688986718575222421638386108766627440447685421080426990295755758109067839744007908460928629692974240097248980131938126232123601385790021382119855212512148191943658665669361328834064240276627638416963297171201706357605593027065940122035783209884878860396121745898654332658051142159602755094882141463013769929067696231531793612696701184860877988015874914845560790170537024636272457897655318592134037981279706028494661684946670865517658351114965411599480632548277749999657969738362447966820104261599147320003157393388403011831674322287367902639279112186173629711461327332800500181068855793212005081331681089034231814033514454533471932006511389449414464954130069452920140644325891748608862578837156955856032716531885075898594513006650752020426741517970768936587465205295976555730844257816399469995178997935486307253205413072800002470661445960398847275399815159342146648177163057701701512622522685605224768813075778304772760160279201475390022825580291543389228821779252830079070437229847274558485700443272648578059700987747712543295953928073252231164156403475201609121713183881947027625845664696722424256344761883943547457944609912311299685638830975226429815997287245580123310895287494702429454841302965120610017050980803728953497013405411456348160916678919457986132928960583485935728085218657139839635358811486207848558795776969984696023416300096341057863970197057825246892714678412573015983023710384321174845782980859779811088592735153365708230491620338666590068907025593152043242609375203199382472921211645915598159297325935296293183070644489645877135585174948778758059571844963765334010742820930959696429178348092079127906384285672417569981372841746946968400019567698401245761367296516448761144766443568765677362539558407623892979366948836948148682897456333354677164543163674205365413397120410905406934833118774069955880053564539861953636644328116453111279661001369797060007104732546750144195215121847449211342166484754399518241706333746180879142531240802981479275397127715218681714339675881621580682740206174637181306047969953883531699141685416636747226037357802049653653907803934023264332061057260018892399745255747233087648625336237658229107527044195231158130549127484542618073617908646869401693317211580831653284576286417527996015076673609467757976476567129081703009512644361566688768552536612902844226833013044966262126631802799683921199427284210665242420983957228579202005331858280929415852095670105835238858271217770219701051276161214617226020254313285083952473078446567012987844245961860701258653237590799518778655628466815938678449574165223189261052134520086254157270598201448351436298908208894915811360157538478543196021905238579304046179650614376030848501719824167360353222350038884466645610471376451080972145324099266713162444388289652325825877607671218095891183421029740590849749846449979169028970916134526745776885662120561774687258253520209030650462500453505103946775067348465757252198286594171039998837164187669492921163202545198107884983945724458006740565473610784475681328160304216158926910240899576389337494392080302387096304699051722607206462878762750544134258635425309791254250365841625221507866343086401657500874189103452310077863653619731148164433088881370465960200216495664622565958697105391558416102400611796811926144019927397675876670932714913077385886500737181000500042065985956234845504842946418494090107424517569490790526676679978576649711299283274832729136987721198524596459241336035790737914977284341476562895762433778631686387936312596057462320739699059581536770939872179697872690171395292864665482904632662085876452771600218050946669258960390448203669384964311878715727300538083605009303926091726494107421411386866460308058171343739374808821564682125052680019901073294598951062915460624863577868939415957216684490892205159392780561067906021213047381637211981471599533356544777575300365413333913218836266622982726146404699144930165362409779277559167365670208095829596264819807809229260270073721005023278735277634743209564336574594528980256692157294815127318826385490643368287546208546327032098246143217016382345285581756825710626533599001034799565556055327226542860010264972458486466847917487817358496719312775171540941705231516789206736383411899019060263530779219288748176249002536446891247166186519977467374788957707226030199487408861507094957029986985723754302572043784570105492595598311048123354328242736728891912898562069711627243141135863745190667597029998312951342192584935231139299786094805153072883631366864796520040375242671248379028685011543153082606249455562704104473646419164591139395010874894648276399634524377806423609268507270293626547201971028115058202357860287957469890487821200649674306876298396076011175351758845249347661933794358012561426746489407049850348634857252721820298390470933837532027913251502119876499248052294430597674120097639958329633908237440678637727930219640912040408067680938098026632987151340276710002961481535757392455233626569836213182560107885609328525842262462917879789397697852420810883321067543732221713493059992491316464055111676127646043644350953193509657345259763326945941057800001486168356536229416535519410492306167393727348493175606579127897369416137352373058583448716270789231593725148173141022558184952489370543465174225946247592137593938576872663504940987983396651571356390785248386298990178178005610225493965424243553319109174718405958183158051833446740986577077129775488091779354976182830881994446548268416688334603099630955093815562406977507026224821718001346776236502145215295584160095439479061333439219951892315199829803147635346855023177735499861850155541043905848934079227592826664653247149203487088299576508092213542074429087113081359985826985684881644101841070134842908147489137242038067508609202103113043978068797466471575444595503657849806023808782355764367476916739657720254761998054140739721862695077275763168184723773466234559423676450628910739494032817823781661978116256422205023353307708179213929139666519770390708386486534118333316536321571397163652744549447737842735279023427887928247412155070910228205184316452772482973312747532384742385221261675160283686457314480245825703644282374593280065329882873588578740650205144803472785689795128998802692204643724793737293044397802105786681809853996159511557510404740784963574668442721887774935679983603885169790156696057183670311726844049000476377062351199289592123615655008613651278171354684298685427645744903246567317841352944956934393395613701210110693520673292384642608317941848350482846313105272140425362047873864215526996265346006415034301672219261947719491932935657100138530646310789808119901463406426864621966750858229793638185340783082009162614526623655684897150445759328294203130396996812096374555847600419346862831271199144231325039811154192888390556014200498592456814989751776875141975679440020012052319697736193725579799569333423489661394469433314882481025220746697322592372373815577009218887533506307369448916373388034216463759523695784955165301674556295162374647796697701774267549964345181689739538412374208871595411413213363931710595633199245098316951539490166735085805127294688260447531364209294806259712018973883302891019263729767877526919923741644574640652835006464781986257263270729329945491695334406929409376178634936654043943668740700741976858297951648405730314157504830361690339614900453233616966983582691638089973104318050108647866975374105647636990944000114024200522074753856356847660420918597751656555367004915715260603105706367139552156708160101548591137720643053428506851548169155995718128000299754488146305298809612233365759346730660967369697560459230005526042693166443190579202651108626261197009168837521487935672296146154448185154621301012367445532626259373637027241431315077216716376969549450484442343291319173329742877656897253567507450426511497283608482400475624160218246906316631917240817717109577086205257752087919416369511159327513181204779713276456243036762489122016330343990695237405869471930781625664126350614509846081574562377462199439771958031118913461977746333537797475231492809945661977027067755129859708216466582186915609662096532501398619692043324805918232632287034803572484004408325935377363229201106161007556413408265850238442240923690490078636194429821087710992548102079621548716584958971187423373915084173150223759806299829457371258330941493191674284708446453141368260761362578232980522641168549376393760216861692169251522704773216148254474056581121922824207793482472496460402974986629158491350664838947352007758954018607660413372346226239331050605345758012544242320105442136322807060352950396693218715349782993715192105959646182544930585352272939411145339672950950251105082240630061035768793778750420585757768654810263692678723718378767337229254437067333632640231845419912637248258165334375060534411960754260509464149854491708038711157833720073285573878917019860750144534090132240200827703415652032134024505099750617652143093096698546404158365452524979799859543573443013969909710680909347731566011893558622055747820384296728776036068066801126525566341968653369236981120878133309837674033034492201211548210773756114220228071165932335482778959759265105991815235331742073066958858292365757752407044784849626922042698478394071251455117400679834028338494665051211731762256791749564160026796035398011564315939790854855835739676102913371485069500466557667522251485648533673707340134668469012798723629384214930479876314171928356063517499214402166059583479546607316785528312741926312618300892305437392193320843282434137443763549020691982200757816520875851911824776308993614579121840627116064664200402306110321479303882888019599635276846343444272781255509450945055007569098175094020697773486343944828317548018445171126232313789555528211715901468238039225804030325164205345018263018356127243201820204489568087037081591668409654743394478168537565741038011388315811901731922721709602958679760410846772061448102116868485589185979088494075571725912856464656111556834881603382038619863916617206122835230504146540800034752969433057326995616992945508144651683970780404645670246905052387053689650999501554745180712338953105513508428927900825058751710192671205730398875374264247870462954470243081673755482304526494112767429425551542176865500908593001327822704073132992157058333323622514363756462753034038291582177457524028194490188015727253811953185757425150010591986883196200704088618358327403451869354002081167076856771568476761077192652432389168503265832073190850086195587857222467011832869464233917934544564122347486029824792069484596074140114667895802460852541260187252397553235267240390365822922703426688058555495964637262433295317911633596147196223151347060758042734807876557960493612870191103717362916175409191184181583293765185889126667784144069548990140185581636020405529003774451221807972701444958679699920636473606378016307390764048547767183765690315894006708373037672770203956281489502381991995834572271961553751325231927222993870134438670309216216635453715946766353015813299084176445278906926874686121708488083551740654340916976848776802447409469299662589461432881427743845957959331278879577859898084042194583376528290427941384245696906083020317989209491846916004399719847545458665929262770420220370977634764541183267073343713005390210133872512448228829006776709476041027572558871299446559306876851007337566845055791832471392107826128615729246487834371134624750476371124868499953481232472184709580844867942681950979825630917089718792877809803420633622934392912501188068987386513757115104781793389900146371767987951795324783774510194840111726417177585219179968031081083822782489685932971338920273729567256841145777411099000045901227262332532482640824055677150829373928846840068588112766199871704155884293861828476462986482547529897632156742514896629886639238633118985155017737338931229220654784923372176317310845912006899214867510573327990200875767245549242765154522378366979052965497729609526620047486080616702898740457535254871793816494103794160384976173842968903902101406462774733656257430705547431270602262455474097061014629153504514948161659844682323525617353420933165087467315062922700001128635286782060057011665480268148914186303234589886284992560481803625097827634303540172578114866726178978371328872645695939656196893845708625001433860513185096847397794727271406003585422551683488238358170975708240513670578764239329612142217434639952119467571221111471254808995025946594477690787061485499175800423114895701204541695484833598294541803957975743208743512592873754719598442947716975030597604233381731991624596797937121665584406851105184393332881215005296109940570044642123583004198513587973628922938009205994412844353178516569022322538225670810939353630028897673366917454536923114578953887866715384813248964214961089993325290481001047571458376405500141662003358840670767246801228294259761158696927652074627611644213001938094100741031531228726414488601913116840725902327700695085964117670369854845770339778821538021672563491598650430365381933033149280643579553916486255703715737345723661760503226388410380498407365747300581498546549462304581050974901235357659903759574222964221417149471593404871657992362676045925168001680143868057347913321957790682297681403069965822070642783323280957412972335543198013456063910439928608230921970810047551685821577603443686795862599390238783371472812703916805935063754272683581693849750542160371813372332822465983519958155641124096756820837292632642760348971518770784482848415751615403625791389221504677232826159999991367303462463890560302349417013359317402706124055582950645705488132338087515581263519766928817514926165875308050579287131527068682390831374533348656758970020091557948403460558652481509998098255856819438501229382443216105046136114867605662862910212691736766270371940687762411020826277022178502943000322850750019286984356090359710437842434904209395592466364808104935685508268775439505789754711240382282023547212676275141046057782123007354270974660779194461568374524938015065646060834969665921623849593151903016753535162953819535124166162362227876058001368175425435721431266381853748280800780433832862979477811487849013625791825409901217849784542727983163090734795201526447872948123110061909563492658695992077024578624166654147882257713990822755164408621503943398732748665117186590107146021422197860365030927251171744677458456715858351504579362501243636993510611466196054293855788658131768340050234123900198081736180990521120026268780372059824626261890951489141100592023631278832012107620577059124710578500872757572299820896785821131609483246326930468006148225466403448591409910899617872561598396277419590591681729993525940624484300857736456840063883240345931788893682666936590970756275216658152609097156018440202312415328818298946176884722789940078174287548556191642960669224817161953887061990057492089782422290820316633917805347141870224418278016224680849206977562768383453228045541630872731630579674643011397596896449818445035506645195394146069428847597633161254425717964279840533804442316487415583933246019479703798138710164075000234132599974514604926162244915673670251876012050567462619744187885967121402049482670894663968452660777654250917323399643381654201723393789074329929100408197275682456207970720881188753599772781733609634857288671734057276762210190018916930410508410959736733435439751247428639571496910079519052395050980456215306376332385617213542354927068897704371956735443930382617394255294189040488675288717558746492232131994166722380492927111590831933171826414205773937500580121492828788040117318419442019374038479116575310758710587274799115253137021535524502207513751672866971291867420562390780804057602341125518358624408678151646098877207599657601156304956566564460479800518236881213058716454635247401137951033965989269027528280809547202361400374110249197936215027406671169448939208178416870212417724928446770162752170393327139441366461085989671543096890008376654498836967008947670948139830299683389071339677225042831939805297310772164422157453823566321195880913699477375093279621806857165566112460911798431920624751013666802122365072873700818325892088121070612633665004332802580676962491641336406934968462687067619000264183026896170267053580423727994332496770751965317712494286964099028631388768666721667774070605580932686960786867010663819235815015680813778297359057070351467259673802995225118439465167981613269318446317549604373179824191747358000837013145328374000391473825240038335768602051550673702829557666743335189124680142948349963027704961437549725389427782138905009999095207168802908171767446844472526605271495271059805182098876383258767387436918181078687428209043392962597850485050362815806831491889273747824844922589296632767571551989436878473032097912158114977730850109016637084854305256674787210473669731646068930892345253732519715622903213107746731910442583682708799636004565495635472036884319633940902919891667664857402460716859112366688323566429976729919439876326388472839088850652935763191456158663865217606630151728448851102010809415564872242799146029940402146561112296814705525431308240567043399422812154879777414119218785236955802614063824034952986676145276978702849172170509905442445932059305048206975101646807049640888814174516771202128396561858160860670228715307499819505065375346419604187196986396464784799555008728534343829209246798613249750376346753443719896013679863066766332107960887462404041974751303601586254011469045585228731034165274748496385128247537743793552218159882501579758693089291165520403745747784037263423495158871337516617355228217256697452956729259929082560547426468233753858101443812557575083930397140955883773509057311201053819581506233177556866365203565911591386479787578583155234549793000479420669989615454977252545360064314809259212166540525494771797162344672020410230271398352509526518692449029175950291879792886872576363776845999733321107707848867252111947349125476816672529291221773962314879848401652727372994237020561156312595698472838403075851168462527867727651061896402571830677683794527040499296585278200943696998229392025524764358637645525673807912948584195156421183233327074941257693235655092921852011217483297316696446521754461213325644897561444563159102970784153230883674582125912438425534100091400587680262874005789648307879397794077876395216680215616511095574087966916858090809148395864133608577908476529781098099498590715789213870119207579575553061576238583379686302302424378189715514051119054249859346887142751250617920251677478966383882068205617708193229148323636491589998462734467995259349985332881124178500819102370035916719403707467531591940405583430540292765769614500041243952866426348617337001372333620264946417029806802431362630320735203267454310133694081439862304219867517860487822917696342883225766153992079099953533772721972896041136945006374081851333438721981918056307130607723060016569667611272118730474128832870322142305286789353665715791481284453120003029340734077573967096389624224186854598450416805883125060923394095514679151653503311185598538944288466277017028746474829836361680856356324605910031487975919460211978222268993905792952766345630081059116024693793388874935720286268512750839998605704190740609516494609327826202845560016880312578220707821345660410923247863323504027280142231480467997989322117387172011997114034602685774681627359286914531206726043358355750223239834057649859718474668881065435073797659425679772574652912166774241463966287006414161054157535507391454565116618266936213505657380251021929674083697665603443853493186544732826902212758542410387489748471201872596412417355153867077097859005430316646910161293292625466452852088409925642342310439271309916259369006146020068766239778726098943518721913944326608399380525918979215036201932374886582980068389943384576330924686872590540581876492599085838249661411304345513566928851389023608618776291232384670475449155477711752503189014093843565080890098192871372006256925927631959387659638677747913723263029863453465574735291506519420491461099056669906468893584746440094248311883094277382985924474047847880179724137655211461186894878276074763685184504402557513298738906307428266965007742334789076574325447428570249814237566481046647048509355999581974405275053191465740222306410432039657776950777669041783558370627975900633188227010468482441749545283088608588637663060037012305044700011076627540454304534225270219625358064249429677371854410301822556079207808018418319155313834807663050681692701796490213465126752108616374942488820001384597109642345942364816396569278917343565721060114299760750578255306512767171828778124906913330690910277815265580512146799312595325860252565657028285450412195427959034613463851269278811353165083099296145839912003115364825349753780155756279377132011233584158721521951450234259546289552861169888529777962310948176693824342313556853756684986018181575769750231077141167358052010992188418656042177983065352335530040740668451985326744588291065952564635855201784805553653578367519510798519547021036968621681511969613517091267972572289303845826861039156520414316186569330497435974925672146976546104771691065579445223657126708226549067691943076094834072414446805795061967529464426168021722777243213347800597588228423651126868024011802878339549831805517132051702352176702966147489611670342598840140723499356340975872455536025209464525766585518095647510696952715935574066070421845134902325599912805061382533255695704443253721535903937987839189286592119628419380407206981730331740920602767276917183955185672363478762834441806245915567286251373809955735745365368657569406816083893242054038616567764926801643968854091946854320245504544247865421152893802458881300244436771803905815112769489827154490397768734891913438245298130171004719666366341156461023323124599796123002544603240340506503992252644937622223718865714541649323831546191217202928332863650220755966704727345299880101461630637187688829270386841503327604131206471017365606125567718367797604459289325970433070766886211684889573886719603455677651628563712254478292275403422506121701347612749115826492924567083721592545246582618282966645743488049645845630294467375539602928801604667239155393592073096888356848611305375429622812172595795399934238150530024441463529407895336437679102661435867524101792632670571881041686094116188620322424254928480347953012636125133941092540315904958206575537804358593613719426368803443960678492520421900159241840421356023854345387411701913200899133351664236593873946838882065444749886800232995336790088058736285464812305587980652526551250912863689235619682283797353597072453675284596451546603072469003910273441749593832298022724262066490493686546103653494043926374479093682738270962237582474457588115232035113475581472363506727581017674966615479167915028581388581973332616029470018125419566679008279858952229230704339462994295971037413939582584010215112428024275705509629016246957439525995889550175851883043666214569347502311299167076038735834760884926666103232646397147652841851925090102045515573897744449490478666317714926164335523999271700436849818103318052707269329205365984537661971891917104979982660706133703683960768854103697112171339926539727055555995531929090859141338280290578422425657681900070977166181094838207448577865630447819107994349860391050609136307700047551570608580214354250501703656120112629488562455405114873258718579980632094594570283335636477858916724372255511006102813154725800960042230183712539806363458204016251498954889949103137710591487537316728427826988436972552691908062156248135799033875924670298487293862683799428318980543843379658458524579836825984589790213359704370416750116364428271375235597231152416815474137543901259844481353975061611679947559162112506989382707524000087410875360959300025900158904034167826485543081728877053433415354559903049159885124011960558985032644494112804601526570582414556621721707362946780512715017963754359214515853231207291710416812146855475525099189848796069757928836737270019172776253987346715319984115645896028797603782828793080023411605863000355632856843890867931815478163185219704455340082204272827975544091127526704001366260357963785018315755687285971604539596858208965929476679072353707548683211146833977265751491378584537249966709096539557740517364737155594709695977095531767830481111377981849237092115045113440400563042697225318479058163395116357744469020391912133116836011930074176747333601326671196930617668108743204002738635197012252755324497367463256774040640979637415608480238293043322750459232411840762878330923387248694302249457010306039213670972189117829802250427633782541953798734286825807523327402326140029798602303620350735506063252523660577661514537823294588049113023305227963752250902762651677179221876197708310499068310916478864597828738466115959495760517716712872705522617444280324806877063948549481766859870102225060584956415178104429481082102403446623682239411571981805102366760866059228347992327878837247361939864194577806088541353833959302453376515475342067599443728373347578087059249713275459482227122247599154054219826520751013884521553396227643875314172611262081091337861617023103442672168505781578368618504173426925198682317201578093416486984362601893024172685479769779719732257292311240645321653828607375900429763421067528901413558501914728828475903583048660788191647339145200721965905161305690824762280447530058496765736304843338020131650652062192233133305322839307671724922586600002581290119536647815907996754475878247053897118577388102587791108342325638610263109238364295965962070429648864684804399656623963267529043894198940540198024528341383399565270750390515210744167700737806080362692006153003897287825370349969480819367435444843195286148651317135031778880481976401884916055306099897347492992099644336157137210095874090184225311865405611203585879430740915573454948445090854636605970330391538244180775176770968045055790206729220234046939337899679610630185523074877613172494177237686427554897640916987847119402652347400165260762729664053285185301522254921302057784380109509128578842773986876520112123159702608820219403072395062213889961678832887129713129570258607911387154531240014416764466140961327419449598591396926981693387157079612262043133209743567503092171598881651472579462761609257968444492055229978645633208479583680828633550161547535007566723062634329665770274276781692748036164915120066682542065461198436625509840494360322217859128204355182934018727224849740300573827195592963964886204634478003246785040647991186567767586570350249421083619831031334919423681897291445719869752803035351925645221181821445888658292164644633570341571946237142139199072576585514923716507258807131942772529583338209327536283879355200419398694513704439324267417903770027188844971204316899795456635249546976846278225207063655959046842300301134069690652428773930639776458943451162024128621592178514576054397918614512621452454507053212819661929837289057549600861404948524690261051867695086626400740728421343901055820216996107939809098401200384165012040403386126629119018791534107460821292651029500870646326813457657240958379438615988601751373957846750477943717098390995577447040696512284440169257252365362586804430448608948803581570767098339021951538571974670392205097161683249251362462006528060514422446814477033123000748301237085265990006499238135748112203069703207416254149002856655567261208657618557381409763885704674983372317058130641794532924213043432381235248024729362766479802963714517965262646047658128465217088996397895240380274113101379508219939970825926186933642146761555862195986851192634766403722173287745103269354068677988213676177260228426443090025402165131781967862335996324264633388833419156940578048857713977863811490988811794764006697927651352525111601506920102116892475758724390272794428840085106334673483174190091832407253005095490993214569570081332261300453385114392565705247068975342654400703662361148783719267740200540171046664934371765845463676452755832066255904309659033363687819583458393241570347694029435907062503974492870407651831534096552001630341743118883723901206408333446286289577186168064231139162474822344000185039681906609017799313193808119583308431744335147733500437160783245757962172017717253135908575449675323751928200579350967590175213715015738688700019220603338551671997549856703011939614637535319732147706458839049847664014488887759149182911272807779384844984336659807852644608397084222567852890703530222301299270091487823884900576834389271234232214283195783430329995634452297502633082108556568056568275680586416565133858383431653814729185639287385487979255729477392229347053222635159251118491989278963289668424484768884783990766078072359020078978103724174505483158901831254559411839364200747521832380013017732833340393958823927022853569384660561903906508406003587648937656527979820255597898473077576583981833266348058270003867251364018347779557255755578484376565760605324917307072800411906255413089805689164888634331628587834207782537143483397282346376149257870974869819178339145284445523933350782070401960492582901086865414926083044775779328585556661153533628162671913385964419797609503763906827870037119365153876415123853879625749125763596170302769842008201929610744406136568459823307335994270576101758996520723561615701584091453400884482062892521206495904209325950917890531002268834335569149415367915572412964973789897207838285200713527986211822867497611687293855661900338837087489706619465931389640051382511818323445663760581858589199916971085773891699523297055547894739889145294803812915898683024960832964451675248953447192832026064240883637147684311353254412134829605589806258170606090653915933185979607922608096183800796453858240126764109736136935786711485697361688308136677404064700953076054929800520358016515568193103224771925789923379540311232203845241478357714280670284274717626399541722267024647290448717208020464807401876302292686213517851305713921236010640683607548659949967853488727927571753202646634797092643243748867314034667222336741306845032033172636451632670961490647562535145104375332354739086712413651699358021740992992071470314506220614636893294067220487696626060584705609843299159921577634034442898013422448364672159541674708184981956926165164492639698822511239943610890922805446111415886717386382178365363446620012763114996899445432594937416875924575029028646497841911423539497395193245219076419633008167310447729159550664096368633351687514880766793213680304225418539059683764323686754006928400509298283741834313164515676577340254975672550788921509682367557086103157392181324617842073031701348968555355253810457148690648217515641714685167845454902381084476993811543869797119895815980567779188160170845986964246988674628351218436583336960230633048538929654420596717641479795282536646668980891114656451253024141717639993396854216375533952302518109308377785943286600937364058893627251611793643049633630491691635047640666257199414561449751423761775860560480608275804326672762728425527047060299713540069191405066507667440450273515458753205654969000361142855212190889360766523440004055270263878965165925299860119057832191358872700438495043477236248840410622026218157274064343697539253500196909925200913236554504487964481149402511760006001755220492426610730450891598225813576386366355960042762892426253876549173049783784098461938144111723184915037694367578148428463203566239174402511966687612340507356050202572701702186839032817849020723197014508835052113654292589701333949086353726280710511267083434900653135561773047535521980819869695570899121416961041702938657910044287228266731873102470545668957172183437919028939593096036137626036290284316925195231617286181571470403125649208950090414747644724825895454067961231674832455077036245636127004189270214785301613939128444292560502362910006134881967712403571161214394266089140694765816281639843175458856349282671226667264315301289558565922526345127727811081699505318966578781469274409916751000156446048561872109315670143541225334208509007821432100516393118006015956846838145189844925241557817845402497498366854512695359587069329086186342562059819007355095400544706351918450197702841583899062714803775751577379884571190007171626399265905862071758301861391956745365705037047539552853816073893882129416310894298628444815544242721553677225915686313447496439126080253634897634998520840316693449382234684825878820589650445102151501542005265590825027273427097158575745459960464270030279374370040200328727949994846057766336103126837725817325860013860574804780865805259813523143852159504094069910475651172461411141993452655013184240339020370410545313032286101888632661272650797145097110785076028254100201479077285918074379663074115818654030930836860048320066704133357083475914398966238257583497457334383301177535995862116919294055317654268020762815159114865158638256779932390951669827681030267511947070347729017674007279967973008855502686897104633253737259823159477333868617532191810237722883127428497042981093303536583765447584685466028359006831668150635402530897277188726171420310713884633953366056395109608663753456502864776836695468400752019213787689291218122766569121648572898311035819859844093614822959926006748677973299347581047727231753332496343131238612078249088601080392801436811390576671398866218604522661122391719742533409638521881206776873999471301500562108910059754557009871365575079756703903869268542498255673154543115262375517892884307526646050489639240915329134730961945160882178122517307002963998780509640570356411401331478574954581947331662912471425209184988593206394526791952541185318791614523851636806110416349736811813057668381077381434213909004828825189671123256371092895082565927412977051274365492116738862693120549427937639069675633630295948800966276301297278288708881921204488385901116607277838297837903843341372266872367186717161755760162366666211216415014945511037185404707043063517635832247850063504738982538377417865131809225803127836616012273623620120029556623792495865725474733291847740842756864264411262864148642373935713829363701023028680116884322771059327157161851597340144606405757628998292457910262230126506278035827173786460505944286380215495075846399947129226269152899508730508587039508028982741963365052904142355591572938286461485923135339109964468502721900820262618208429888003290105574985297323336664786530002808423287423935488725555396427938286463958822941640674820545524438012033501220349781590331600155939843803474913617508256144153514725534751564205929623337282452662819103365958155957396133666925391990233010258126089431778265797591532579869721600131882830890210118091368228585467797769990088464546111651234437607631249634936694449495653973930352756010584802766245892944960967839389909608309120736957078521418422119511827253467663962197096831416143295633144667322733665098163981340970716170515182137245568198424991937901892781376690898282554957877399812011068569378985395662179439683995606039858972781086229956256054088020135468135366814730929711508917924170476227363221434714145397604364210829911545839500166256485491007375375954879238903915194474305952561246082829823741429303144147884457959607284777829379990094656849524363647022165113963215436645949670140119550846769001783980758110842969149233777898227501699400832614100688019257706174030453162910283459644124837395828218615333126453665208805753051619086037405596745665349412147651502509547838397243473767231899527684564290280346422029709187250589539068716673080135245647198533980348589275959025920118534941170790360305320163870876891459628115259288689663875309357557447978256332814192303512225385592579832698036967336572173975136307766523761368761881165525779900919759476118749804483845864581865773846833229455506658983785939432488543685944076498075199082829615695137019072744646869285529647588875641156697611544004404500468984844025383741268877703696526175273567246437993635060095757641495223994240602102766845521473831696047820170205145268522518413379749810618073487789723826411278222108266205333708787310062835192266624321691145302145106873656739816551771448450767024981801842612276504617871349018890867152116479091145075569557089494068736381038183715787826260044761382343029197780245254047392742528703568582591243624500746029543429272878951837953587970004797971722445277349403650338768360171634232179158700255215085803444648938919929205745457306827834516815343925867927844088183107488074877792130239402212739320259327441520612482078533955271787627124557690056399145628220776483802527916413085309255072781241411602085193166848636538464176294684676057843482977913175671068966480586284105876893694221569075738886842812017449274024217225245046134666386628252894528174795612693408718981354618736416341079437022447515036358388937999039516239135283522130734607234983292165866178512223896497543422467966987270719269418134424316925207425773864582052884814361260075245113966516000049999196755738485960591362166868301928699761363620793975265986756419981901001746347404893225149756700365364475795969143382801555697091857641608358725128842580085807347054702912102177815058607113167692945228652804701372227781038407255792237455995116853851414228245034427419466436379919920658964632134714193572471620445961571263139094647305365604667305807455645396566152575963885238365429983499835585467801969029034042227869555408213607154499176554723631310930758383236107907335863503970927932068059707349638357851896426290984972283224729535446004325095822705878642752669302272414092604365287946312654162048183989672024291808778202856847863061150680704756616294650029157968005184179417226422220856897304079967109454127877250244523352713221863790952852967580214438855063837398080002624961213615501561396200202859262720546123694358259469399513132349966969198219788853997634741666860721586360934571184353803424404400734028337990148120203484924718794315318926629678108466979859989414943098728418094835183741337930541875276225648021351165270376792810374297204357312055207257251031963899712955985573809838980275297057598652147056219708391891471161781708627993653952954251169015147273261208987619976677425567673794766056667250886533775902995226218000923549846932018215183263167773871171949427445519612168642451187985806492300875906224981116393105545462917194091542958586273549888121104068813320490212300823331124083829656927852207273630090875576135731899400705506117772038796146977468634021578418819291832539714441182635479979273077980630670816146247427689634765676092528847847041380163177891216852939034685786619151880821762606605548942761895568823425327335596517672343085294793070871361942487910722341372856143629020903079075375591758839688441337982280875538230047448588650739647058527415432954216161520822560283612934331246167485079875982596879810680793969096400006474242025489687672216647655081035130675237137282925664177044022694103571075861006146886049213925424257359613003302841959803297833159362843443256139937548871300638313912077884345617245752902311540806441269407645745718104471415634418740511482114333503423232612982737957652408588638409952203491874785725321612446390737528191756656289454411031513115017709407874304972721164063469596120532455268941021314385078682368324222635696034271160135552469866558217934881884535903661512542217106316944492780914028972202938441017914207499685773518576738789616332735452266038827526955135947518907588993426687922733894141081005364139177819603987184503109726838127062849964619430892454592609751521240346793051336312076212639257429927243386839633517391514938249924240485001795150835074650760595328505000635902179654661227765223942213533222065228711562968532716150606525258591369567303262955862435511326230062958835777362322808113028309502910544183244536223622095781627520896304037076344061797106125782341746441776791554342295079611941192356766394001982214729559615007234160280355409535994991620771744678195481772329217045881371048940665069517992451452334945499713890595562063988532299206431522668511144000900964231797209661231724955483008446913688767932481704790733611743663979546875259613754386003913776185718600528921258837962416834585712878396523136598852416456663664929539272992904553283884659429652111365930036293019392491431280854549570359421835043876109860772844172875214413586615036849328084494525374825371262897242331581221939208610589007404546464255230869009899423198111571601390796300799422713023652907440838044714433840048806855626978222982810900227387737530251756130267958228493564568497373820774513677316995381074034995660780980654303500790657773115423300784367233681444128573210050503383612481764101859066681668100224345257826742219745991690751829205589463106307566363714429550743694488364543222161402379586472781244426426860546952464397303514143862241120677808040542391709832633215118490780804179808487019454676081023111374434761020410431720958951467076234184339911909262173075809757311709907844663049009018162132222200963700755596984117779763732708064937622256861469187768457068798268340012341864763223700934197522043846159889684494305977459118350646168445716628473827801263630446682736754598266378860736066070963397539989260115743817808276423844185068443872870756494245317285047464093707933025658577783166767561776685254400548619633255669328234824019986977827159403075801855849819803948774219661184610329358260056263475372097883988039028355104226052188667724515137599534894801450720189017113084893707686885339953512882826458247361002924056510737024968047728193996988206205592255995497837952296874751753311059313994051312144802223398998641725835912965922558385751468422020860241830137157178123546906348437300478032989940966977236236332755485599408252031829160966893620620905423763613604207441577226254780316716833842702777052045870499243370220321869356868735824626194581599318718531867544749760810559615069664495192559993472451524296329995829613396698668281819686388510114205085082282141103017294942480479080349784390433822559112219369658902688742695502756900615638352669091082117809192671505102479053280850479338418352616759079955488883071264542566530259552173740738937571081242268392399647306331486715075659369212088156218775022536177048144727985633610968942783209738538096159518680247269921222125698239274707385539569839712149342517631379835074087428473691384364511552926575941011551370043357510616232731413474522277395362677158830147716132499172338315730554901818289977960576684255661956630957439143782962651849330047156529623141594339193110420941563059834826965189951753112062039804983379071159872689211639327257966193645243215219439443100021187527490640215979910305536758036561258192174791974504345653188561524839980861511618893516515386067828022450487301655926950473811590612213574699899207837446353476977745460865447581737458826632398327071284753438648188475810291175858525024585799815116625995543124333834051386452730035410327189603064347247580257741300696701503278390157097360684745841050854628771424203044311301888873191869350016457304692358663817007821671164331829925136398808289674181204598154802861160685035479008764181721752224914997111463683127112922594042349595695862438794891146146374460198667595673395140984166606298029066256192563376186216006196701584166248405512337388388824946693659280968266128713518917964865175756727194342047830033544037824149793863301173504174522819438999776180393085840644317353089921883159879001785773795345905196184757612595645472754281906746807634048269230906538108844232267756268778511390703731569369074199005605877165763908177552439581224964090738473177181114913251448698498801171782414272414515916498813911364507518399111991790238916572552153791882971067983429452744688683722071356976023120198332295398089648889699112989515571052506370825561816708436545247728265222503958324209833730820195048366745716823277144498879436207691409101178089387287296879324240637428104245694036909003000715078102487775764996249599600605373330526561724967289966214194117863518520906091178881636976902707869599388255666194825884595212055724288569549161258640148763299514509607054129064575940882459724634614477363963376001298279759070481648740040056939894074985620447743496640535778816872327767918324930007594242242812686525004452121730576389898452798929661831991076487806408966721425199445276342151412632784987194312092167227805556827066271823530949632263381938910376501105803958037560594590341551750391349653808584191334487425202392127671457176639620882608668706756465695391072767733957634300788048176870636510077833014878136492527784773730882547485457895975359703775045991452857865881221670777253322647731640901404456189875697547538366300589203133633653575083889157420681108883029202259373588860057173143623070901364551737055410251092108903174208541074911447780439682581579167897608642736787291527827179404040943810498448261843050312638871322651811927487789898623968064670870822657748466125568124742591566947580660259614773448158642960272302503664308907818348014085958155932953287045574718906910876582819589102435284995614277778391100531564628440245785633239650052561087724030548767048583814190652616467471431251521566677024797863637591649009840211469635762084606243095890224744330786190434735344633358581578599955184167313555845163723745144573607169588710386042233746441061619944373879414031196070104160276583148190096601203890773610098119047791441720019193860340426236155541815615565405792199329418635438445635827034974749520186234114584838485475864341191749311379266564674468617953939595278941355245864509084437910349605326039787796012097817302302462545217247169522248410395244261569509716740618937311999654903057964298187700216989316541721248913884281773916657952049215726442394010775838119714852739759192497168788751079146725079943508043202457537558556450458553162280809944552868752067131937658325673411069009896325666358782071905979229772443852500041920484657945249375428362521958415910305150665080571888701101980967849049719541333342865497949303511772437465508071426768527554726978226451834343479040588973579503348785806700858705536052564242249182314539153410825515253768186461805067471560156286782738561860892536465955027464902351692327292468856757608789129360270717616531662970073725704659787946336023472422692574644928195821649399133615224085091514181955188580607826955509830624405228143109673430914748835944924649332067305132469839909299665408182187374680821695647473565035431681351325598068979554250047031709803206741670556584960114845626881292331956326852850333743344612152852915723442169660322042966485413908041244853826407279748758733143421886202844383024692187189260541589193273494923638820227575875831254821319467170831107827243125550976392168052705201530583348619532131355350950017371603290691375330761447080338507750487828986023617091500934228818647108951559644866278832949893790381427064638418646658390445516262133568313380319880253105028007551919737087167817968951167019285815414781811431504114614426954234848649862596590006777854971235265652267640874466826948319489549172474019547612079768807027741972143843046560184886563137740860116960896218751330790626186887480092444301130512951553305430341596054486966699329995068649956207574201269098656990434701955109164717286975627447836175162042044253336830476747867949295633997399799705757007451938850811902246740033280893041072979382855399689612515995962479833430224875892079286183846949832008594715619269980620099068566196145479520117227999715667397133766745628462402729540940122687875045623322695568516273072713704464428288437593588489268154603159227378307111254427023022200299495805590635540161113381471039394020607545814694179129759124377703245715763441754980228253618177255417499161932021218460202408529216951682271243994259955239256137506782608476191231069180290396947238859961521927987307408084503873102241109527786052668559216866677821202590199847537564567995723230813375526986836626303288488212474275405069672933625397118086266436322648576250857713077700689047179755554515265604724320546078605921958618086951464515362558931306315073481896102571306729458363375467665777032861376063541201103350179285253062425712496275325203256449396929846801132089707666498688121052949354704115211261934712544473066247232084993206880063465933385281575982497844724242226547120126503176816992012705615472374632936659489854679868800251282273272975586650543902869798271830787518527114483133942417761418783343065446999495856479335152941019872753860497519212122857125474226742245364089769828078395115391071238273689597936639620094701681973730233955109025101679358169502369501121141346010424025890771289259067128631000154965443537202387106315053212050871878881056032856929428485448811356623101283758871158745681510157946251529576518171211995130028034799791889062527999777042285384871711371252082121506884485716718739751371939617331901525343082480056589539177623303868393801172345097201518705529496469605416534132774180561633901490537021101018401496080752267314559514601591566494223314825238622960375579972608246421795739805162144448535402371308356730763929608254079516283508000103916722859289180413861381154913248314822018576897457304122208032508359471537014859339974860031945596872781708054404663798320416639260332556654774927157739099787519163996854243007233417058073951587328238895466450348685766056410059689531799121340600676478401730022163713316641364997635669626058726062061955051650171912314760662863203607064791596204599996960069498960874249408231713265156410756094790316225921369040170076322795244476305570616813486513567596101269630833819259083183546593327247314350291275489914101926531706493824940525524982292472536754424328057702047231185320752654938773759620949700805977248180501427692786286878656353923284787744273121571136574452886318970715029105236329007953798884725243858323837142815620774089514162102866186085782146313815921398735684439117489568741353946543942063433057534755849861635299647790548234705433371223158136637493974348911356228397663456030743390699076337583556294410885368185973993793142973808674778401894010185784825011281695707903466496733524602243268395742036385525432716389932380468853458641402770932482309906493885093653105844403901216364218067206504508379339612094808503361647298207426326677524444849734742380731502107219241145828058299951594477451908823455610390816982293733391201060511289551278687236788853903709661220127077785202532648650570974245948227350750718404111857776902680116089843616197217854044458467364266188298707619031016910118119963694919973156224470109319178179800805380064347819569447728922726126262779971213271755030175219403421669446175564635206084577168322201428229776868589321420236790914647655252288691555111066638286274083249232384201287687123715174661212958612912836133508026402552964857165914602136884880333085356210433200718210080225866018579508135080393567388539602727338405262609730074462961355179016764157224324226371888394732764152816386654099222987455326067913809830973844628374263510225031904426512782218639486216243562827586140137141338242937054411385666546004893703618855302195211255415477679473218710632661398950432721081045544733095138387776159266093348251100348638400924887530343428577490121302957659234877358189536231779891401687940438537963847679396921585935272924894761096834243804007943725143566726471449876437156157654987864918108640318564702160080860240748407589084121497974337583640358894631484262913259312203935430166534189990050186986162817481963086184343110786663485382726364646930064939329994691849597968537736351710035581594224717008532837230584821733689614459341924771580661453150391015074504457463503763427713221485993567153737361344440442108588468480246353134050477861447030566817522752634762132568302410644764880170373667061323964236678634777206364496574611068973314249400552507195016557714074853968860769507192901814051727469433278823468860795935755682664949995947344529630914747006110205329691069112832457893233107927285290777055642111263691114173560519997002638218891102754119275975590802624768651557394091236866925627684740268151602114981305942771554684535261480455449397503224773204656005764206144524566613370962409137267660842892724047098768523050963329207433344510710503152415046488463679489033788384814953250031905327578966689746423976314469543052008657138877051450910965656429782093365170091019097373153394095956023994420139676581997406295678233373155081405643792353257154702803362317134158796409556838242162900221073446446222323174150243257349438393138334815041496112844757243995050008296799424749212610440908870463186955106964437927642239918341050896257898829784194772818123462723009646650725501557949257416020008861267682194675698699295279814682363486564079166779018529679939417140913975111383705700714951847303316448735671931448260096720577640714418967700136566733413254817123345754374517132691619530175926902487580958580216205879174603885215979202587762752756231843655017674250710125430895198719748851376395437637354586073031935400336440132399168875359267018048418960520085898462537751306251569356458326320804249506687688022805510418187981263146345490320709541271459814738750284841929440413062412739579116761886065516174329991233857284733207637528852744691827382317353301796899944186722405186845329724093608369608226283023557330589578187406491976155758294370120714394222143024342556316878572660337959247527512591985845483351869254442829595067215436437843212892948654607230176951750302371331807515673254581846231908338533473531668619847911656361800212999731189286290676817136535721095771586903465383235680823776457857858410085281234741944691536746720739008162680170249104347862984787753778614010249169251775604199730574725922172524612414893412328920656675214449351578794921680743195210299166296693099095962516613622558241811293519642603384500160601143586191397972983939295307238504087039892335182424255604266429977036604653543876487456819691740472719260756938025468549064751372422566829346444151564340376551897780363359359123984831674503329190190425184276922459164569222078069638560350288034849842820747757748431673641712538790581757410211400486228187416146718622979056067588708829738468445434962693129927859324338000471080029029498517154220504571838138134968542451356155942531785493242331396095108730399461904756273610182272183940136647241906095657208991210611534209198930837712039264506099590334114868862037214254877754074760443438155392477721207853674983997572840885269661499644562450953289789116286155323015652757704748901289079872723093747183140001567941080422223448853959141851212777310726543433299205082353096043018070100585420168230553787117219299794392284053244363299146315699174277017189709257743013791643332300366109318970069893835455462585856953226322209371624660993223904063947978715527415771119063972465380568349503574954159002393858843955368029083609982075000158213685121799820753250154176850378913569978419544462385920998442251791829405836578167466666981253685001005104198588777825841199916433843918785562995023299522741828725154050065450125139170501201215862117499905773986670237382162099644231112282255235582749176227880567760079570430643989731586864125878674604659360358560737759368076843831242784105328953077781860059945243078005002006481360230653647236891482578842189709598715665761000367371132858529158327300238850576776254745064591538733178721543573663749934260785509767933045745709195296204364129884244751894440706603334958034920309822652883587967429467922099268560246568950443012676635061840622220038712426323169382264876058538480999379071201341609762559789235200183077578859287685334522856907600202369810410516422641529337880498082251063644143668592859155178730121272906169938567164409479341019159469031629892980086707897835314746674146735159305809770896577047079993845697834735312295337052550759349531712355464386373263074663833555517906863781851919847374294126439076755780574573774512167304914321473093117279592702915313363747262432481712158264684095996100268075529144039168237427626906227753716064929226975124477354332474470006204992943829661364643360302519946159709891702080531442825645061366701883900661258000651812367678871883101985544419820873873590905775380069946474979620107186238856192698524951087397016440641543230427198101498195089476334382779145712953113537489519834755208577992906303096401039646728609552912495990346379036113637596986427970200976584347191016586040720067725411140805214339393831093997681786356403714127239860804058297076732895733464620399544047094445422936524456245055920027295266450006162385633532294694875852834904398439221492228018545008698761013423188211841067802540465183366500797112025069393880914737616338855430851217803272368661131026723308140851766552970894589504716467721896688017376215468719655233416522644545448302055799014701359909782754473759290229518014057134023986060721119896558834562263068300834915406402196762418382651137229353352888309432972033852578118915645583594842702940705366470207500498948480475460002889502718945103142261418593040982197442794021265020846207023272742693964863565815360025625044565095295993384509415578915240177468828828697902695822829791268845620974748051757037372935025487226409153865214511141580770753599324694377700872788607524597403427489526697565510085049669732215315756766782780439227285864330207917619770004616822078272910446161797485942346846979880329870626822793593648101772894103533487907179765705194007278392281993277022682151177781398305775917495585526084478529258888226499662457919135772919817656139818999816136881364185600136990675356689303371605527085691650819163333211687477349476759970555806773180537039970851001716778898895008862815952776300890220005368327774470816375691501395694693798749855449545255930307855461969287213938061934525254918330044467141430240878096094651495079600835272605605985866016635550712249310555861514006967632373569574130461280434908743023103584662803429299497241697369669521173047975097064396771407001252193630111088297694980535685467891033908601671769715247579594979146890009650962294097239484196600480564205059885440366578365996311668201002484719358568044908391987614531989569052483318601994159885597360237594351774577609131793753137128181499325069347555404865272741504687090571877395611325796891788117885771685704421613778426921049033306283578592698931046838546208365702339172006800255242715409083496892464014307597187855263680689547397392198425347043815202470801996852246741315068567431010163605006273200954437779589050450857604351576472937119514659075371057361184098236154632236207556656226537564071636635123376791391906712494446137731149460920712917038548703236787903437779937931099818601133549887004691112744312509286015638965276790250950010676758123031061005535008219552312353556887235464816882137126690581640214492804856092094913892896612584160988465231812332798762364368070749554166646405613910548531544020320890613302330130535675810087625487548812525286993477475725271892502177644388072449042297179468351126230522273769829084140913481561852312154242856183472824068257787555099794969027335401054041599349192575853894452013722989841398227298271733296962262306221026913192886124073684187620347415031067537434296102268021364266094901469535108853044377621792550515717781054165573268442401796789247901887200972736745816233500545647195893717898139321433571569116224935889353532615644693330373264316141285174652051690977371543470305820614049044496537377173778598219303718944506460446577699644846299074870729071709411099293439443094132301980964657672607507001742215602626423716858601720518677557235008358588376825062022985766552587696297122486117965887791021554010152321238649985007912629231769369409878831910772921377217002874190985333511057615292203575726814280153848795361340431425455546886529540433066252062911617311279059257045678538189812842631314726512950991841357213934832643570114501219271841859754381791424041192732224030056320983467718772712268300951755625388362577358467169773283718734264936443052829676901173818644220520076776051275743582127475544395728506960243266056174662792060038075410790313612664765101467774451806351094476899956858632459988095872236100595318170535061683069730339358937327382589873352700234284497710991856856613831767893716631937975007953340828528998298133286897817778203210531319782051007769889824195064430604953816323141111576830925055541716587043330418742527710236055715753323658116845512470515178601260502591207446678615680074084829205683764302861674201157670190171705261357666834034480850426780477299073586850414204596729787115479744857018381735548682959166702727850787039199424792906092529388331310112694172663360942433475030625740727139012574267879598772174080184960025792069876545247332907886202627916934874679576403780116571064644056520860218673396643560255043117053696612502572102897955575574855123738831809627596140183822890082783568977062938264513682883841464404788573903126818004656192729309036865105114067562642976524254416288295667407715942393121521421620039360814050864933840299316892700135622632627784768920620844262364191322019006614351273336714935476087200757330500106427610125371612792546047286765538833498509453206854532046227826169145112017470665804143623619164550927168661825061239155336689203631664330489247569219398347205181667879513540754295445036911680799468870934365879409479788499653398459801778694280938562750287807714569733926301936555301174481849340318621093338361526301663543041681507786364735620563024708490314184750695425151157503666797889577668879969505414915892651105497555508276620455808699210914724118194382342030009508064679459399686349726813625682787790275631835538652574330776531328453799233417356639032619813054467448083337205731869416792730830191045834991359503055676733049870727564893596010701426360846262430168478367347461156560886709397666000227704984257154061703326704688527751309885480264655189248233151196537457359545155963686373149902698346532865141026323679443991472535851363691154842705737846234121987776344544450647944023180242126923652435896960330656791614404679517158455317968767528547009172981037206143199497597241872714950389198930002858717276634416990128064394312297923020890004921407914991004706347933939892192335529560944105709655432632926125736768517712455665795026221103217329287296073031227680998503048255670789363603701282820141491341903833258992417885105027623059997252023686301520169899540074839572912052023382229168347154385025022887121189215927669279200972361979746700542130055603199055656453395734721019723349650365447003490573684350624148668818790119047915392375033382365652521479713192757063255954721521377832198246179903442579695903192616634592045418143718983857898328017835063155039263007060998163288795245531266886764411578279346868867698592154174980766760505380874421669523404668054001596488367061531138716940006766373328550721041605017489120195783681296007816542740762687803648914709848163207114108939263049685152317861856549045420748876349945014547975730272405060788853912122099757760646478114604414885018773745418819513227679438448094397965239688482031227219661583359668991167109045157334547802740615015407052833727260007012210594764475733208180245948743623958326890182008549967337760024262744080578206111288362115754913963152415522533129647336824923524052845839775271205325611248578164136664951744904552168297038133384666737500934087278778063948564512439950372589057894278323696867175900050970412688774837813441317193107558438684299935104851045261178191089313753633846453656904030951618029746395000605543931319827021241594877830614459970404427021659350288666232672311202617767634741322468115562694428547980498722149797062323159529128301915129678202024890130986974249761137481670939064342966417878073420762381379594953978563559690751013544616732942253326495009622820142003136103257822988716316547243960738527143897817680051206863920282632877895054393745771887367856147111375894002551366823581011190109347688202152893490808781099092679857050978034270397021483670457094039754288345169940871284490474380179210371726035431737079068237944814155376131580559909351741687766955547340798204894907982984967688349854320861034903562847448245135601916364259087463330415301120307004377155605442272431971326820823236687795879963621924355170789685332903685107560890441500153243090344070724793261689810421617829030707600714048944909575996237175609759494406750055719153344000927934923991525217202865660519442893638189760713429484868912090505652024315981411434319757129948352909815467547578412793392421511081591243437344955840169004726785494188708958662120145874605850948893171104962678791292728872847336300972015478851650600024621515657793871685218527836311744228815787727640229024662388945314679654959583626201169500462511627642945190295880999852887424353711666147655370975039074426104536119193700183091763843910421083909280601564029671710369750125525310052698496336306857192418724282981505900254637485427460227109585851344119597834233470074707446876496453382907159560609504064567436550870194408369723012278384554571518593254801996406252142917569165520645623214123456750964610447178268344428740125159564032492877058393216520590719016092905069861411638591151458159554573255281250004723984500890482896330419282541824524695094216303391956510875302875152970410005601046062071670419209888233093376438881310958334150155926952241158001812922282538042574156360149582551268165335192121319083728186080923031962865486389081156268297445340788866606806511664599788992401231633425860927780804185843050835363261336523369991697217949546158615862624189809193092068429322378065271891442604154481055178301910943727139361342784729260564018073698973798221197987065518079935352030555366622487150614603200593847235169753638620075452053478949864595660968688054368056592687617376753452740951334049945041332077018114585995162976764767829930964355447419255776035590675122783871507866043352968290339155845175416853743400020619728654760091690232910862369254512923924511874500141058434289285061613420884237469496968227991182392129318019621385535662785491524134092099269666470005641379121120047768505029082725876674241346195217285012029390897868584320265003901129456125174081232154513731288020208167177457193777003984841403514582140333919040677169002533328400378004400510233977392943252823513875746839970657005981523480788090174076386887858506024913759446561043900968949474767686523358772315877509254606097615622794145609873156928322027517803725352102621328141868754023039013395257560869284837124485035694138630108797945760660546949504487926809429549437903151289169749577151028691162909840362537646339421393486569154143225818396513570893185176126298563154660082868071310949254700235711735582926949602956765132411121534789688072898248121964584376714857467157481739198921386855288255164739845086448791791024268182437687701613031521174029195352818392858471213329733190924924004474550683421762738562517920177276754353995927413052143688036484794649943885347247386770949777847307057242504753479329403146564301714592067847158342407929536191338056064101027083587317816503897690406526321858051728383250894987360444109772260428762865693327697643814948153958827245093660893974912242409051521595693904815130095274687109884972667903851630783275104703180087613136865353252845095544475593212207331667983050645949744823128183298791545884470601103275877990348140099885433619124607724008430091042680181199552614783360996515747100718538226243210606879251811507640269956662423352110870453246260197501829236563061996735569404089810753900789764497201521892024502534649415173823963401305936037206820902947053793462211510609653316192630729925438989313819969465976942475168899485990326182303936711686609439214753455643143937454096759432819340444733298417528711326770825159018859029362053156370302446518519894841244709172274449221534612782377550086059317046925979086221128581079605965164755173415407744386896385849224260716245423301395412044970103633543831445791657171061006390805159188871419964485727838289530614028273755235837681824381496121821211285940017327222762137058069115417891926570641528939683053577479466110044694588290778146081541507846724007533723009003262996050460062944167213332449307330313557188631866384104142335172005823076247248284748950800765918424131278426695914616239682707124545158532092965001004470794905653564658557044436618035197498676365157271286044008547840351755082828852863983797849396606536149205995168518303897352119034668787732541336008977354879981853933629223179704146698424658636218663078638943695356255719585579015931234188712983765361607371860014747915421334759130403176012656968249233703242950353767902427642139262318762878849044381353686832871126342148311510681406782429185727001128042897097246083501834220615900780552722003800451779356959736235547020419724845712777226457606765054399048472515004710525150003988745812121224777485765745311635243050383266254462900407459859556820393363688610961672872745365111650783286323302114415624451403744790982786867273833062825986707521117001997998988354238004503170094105246127740959510901557916693930636570550825219892161995983446536205065548379475652483302077603900486660942715647069428874137737132825664283115462754363832107683861943296807603356458778565864271657695823109130759977505225981940349467298911673491787183956988399447091466344127156846301029085479312099291611517918523405374085491616165033666595126547442088712473497582706201441660158373139681999340945176210858596290040884484474512377284681976210296398198474093119057724114123367501902542895942100094019395173688391370560221252468964579328129194958655687033749592017799303573685699799115822223284496051825871083259578504047785826758176825273480025105203155275934234842550653442404316196068465736480126574909134410874881166540932457920606141171450437570870432626468722977479941339611920902660451477625087696486118280855397283631387607334613791477453225734728748215515926450228800945608490700894621454034728453868524681875501999763860933334443635342136678261052426422819113806881900983375449355753897493793277396122558141763930015316747395721554039443708679929297838402927972761493818868705052805312698461276956367243746373353061947525283119166524605863697649322408594017895137242201621808551226015431302573525755923728054067047426636666752592940057446183311015481053291346281063697088216619606662115925395874937403149688930849529316670201399094515175109918046763592564476565158883118722097438734428629786519922182611690472706224113080271898131044850180539308966971014230675200628537337533652468917240540392730098851064932892577302426122826678374399102237436360000873121211660615399536897659846903434732856184354687230675277255626365348294563942754763707319878710750946613942539551616658155759749252103479331115280735983317443744713636907891169863337711356213567186653343497170477592903495607808604454022855044919503907421636736436482415561138123457229919812159762947628489853015647589637322783415670585685902339797372028068015783003919927842230099237087402217898796288745480279979904935687874178664871201904709598280008407484308078901713347941159661392651153905561443233984321372781927889122692505742102091222442936949173811235862060857477148636133222468899987460217265904698109909259964265540317118517186105673005160035278475594541095871492358469659906693059219224599366642589262449622739250074087826420334721147772284680339328161155824121353340602450829788939753879726673594217365837603809523848511848043940709194838797231122616286983873748945806540309340338970583917307091012476615408764143830136591276091795832626748745456267313979269983284121323856462741926432503176599217603355594674934235931508163471624673441488682383792865677078196772934180033752752784994282959604918406751115009455302700022189790835801973307810230457713301087676439403529449623395878975349915363120798843784407645027900164659727469959433454309480611987511747550571427550732602817849485702934676137600229397650329224342740909809734191664078928637576833514898899646667230417545638361956311980814476222707468778088073448927570989314905459567189941359196920036056247224287013582809071450988232558630044911343890630283565926782519296729991495187984652350176564431797583211522515196480773096633614062542686031566616965197214529076494526925979287968860473673866870125075624591653788378266224227560231994333430619879343092465643810102572746318737936477888919674077696640823566519893770887683062611422649769760506929555690626422489904600067434820835128460116764595130706491161719704042065190655231141741059679576508017658739807731389134236494584148663942487728225815672716065862502344495743065480796465506686812568288683445062644190679684962348165087007805854414314923394966987102785690843401991174132032653218293580890286342473299350239150398309637740040862482704677169847444614753385189458908325928640472008168437491277282864152577869431790124976770855473031057640927990928793941779679829159400810047073330882340603339348481316656510833809150426024428590891283410358690015528249439764902111910323994873380291705207905580040470898803696735394714120886464275668029133119908361600000848455022659040785164658365281677524701462116399469912984986614629326514855948880807596279120851936639771375324026699429766981570263549126609206989002275172535445569975085354005132093105762124912773937125380753420294873850002500569796354450970400332053687228326806546543165216366350751866870185567737859519966882044863871223293542181518637420503655230378925141388744565579376341356123361962337002220535851199257620492655692787065188130334502186560060195468711593147157311804007213274740782767833536206947286420636860791104181693930390298138187424850670542880321487009767930040453502892753611567093627239510749492217860749598070833172584810377299861012584000643720307453302721542466368492371812781298240133968141437433998549679105450106714836218879478349017365689189747360619143449627502423681537025045542701651867531979488627049858637454669601169250009164450534015318611682301292423913650651944188205263137893530842415621636455888203148722383778512784053093075094436506698244088097197796284567896183544810159655669047532909291922470604975197673373585129994505686558533908775144202316083078127317096869160986164253754895247930897146973936422368150890487541897758092324348570134056970229108519508177370485147390391250776631794054744411721831198686713563456815419563047673041432008849620980514275482043620860763146772665736051014625961403716641673787138375530314356664632727185775458519519997958547958864206224230280587941794773379671227135438587088126926811618991901918081610310458816224414032374518425674932315607285298031053660679103117936547982307997878089609024492571636141235423402233415742834503523889039897994492981023550102591922151754143429936498897355126725517969595606215875550469336403386053887026364966595648445210642690625017537812483996287053792022934125902503009483942007449387657858078645352074756985398350238716782182888433837122790213048195563506564317217921644153017552783973346897738541360599323711040949306787501227830225663094701636945339579716800842769762041711952006580470370331332706403073535507455580024847818530544122148116385845935648897986455257658772183293368980372470506669707398764591357187424148287057244619315944871608710739334292746270975580253409373826642612702503003898797707596647480327587182782028355149552568618257493549919934485205055523930125089557257699004960654332590717422814298001582506731003477236308533085773805937974341859308187221789884255486791633901056788717649092282418798076278016227925898987433732340014736070309005496731415693636538815809694363003706594515112777712731333284449337774810535636122986629586938400050388394837776881173965473047531604525210823578253656094251359275063098052199655834158039554378131100295293739856837863270133992945087598986080362713362377888023440712310696861746181503303444892857948616472572284416619075394562727244681487001966156034827244081902346040330814979920607767359063883130842523238952573416602203381111510248203096988060231222855418456486357077542137613022074950984894980772643847395766007639760675042762500009158657742678823198350027871985344450699055323266730680747717053960559498680933259310495314721920017846274998353327179071704680727126035404030824830723265238686595733225478345272186222433137501673520391059334319113274405212374849496429145538493008363045747844980822487539327323476290344343547479820581653045579576878113266846139004151985194809853875624515690097741846748781653574533208007372186914392901534923036776735840812384848271774155065569483279836498260287294682990082081274011945699344909456176181779543120092072828042188626434568158428233105900032405763547433961843102504790427911151329745586396963816287858595174129460690326433153716373996133019606278674283596374307638482028035380300759457074316934345985598291175560237771515426349420863412917682372868680258040918543794932464997964809715966081160318904221482007648515312840398324099098580566013281987078377985155498941288632410006954331030667135894161191587922535578702947927873904666271667962675873556581294604418750994570232238555637394707897285235784194030399603248525522626376746168955667852353362778159191541851530966283327201449049209615254577197672385394615558578182224257882270865711585722253673285941427550949186749179990326803434684833830581922010693665101992757969823581044249349298823655691668770719342757277194275262588308312022221242161077580008507424956223879319430725398407245144870633389661296765412522895368940862536959297055188794089907386314171459591253846460048760479725283112812841242755670994238273088814748195241964679537230759037857009882585824456311510554208557602925324612342408510709064227194988136147266594340573737428412617671089696236688170391174493324184813642484422571149370348556627967002463852079720012773803834195448383152932390221308705584705454864592052092003378228343743105415326234858974817204225956591859423841838719576256748902601824730470662731016928541769226691011735019937314106076831233151157903503558690110842701074511387915159139994269040542593123046693097362052985203276441238437208726456261480211900733239784087196507865946551774958079608290325857807759425118069303560422957573987915131574394457125021139842536620109512580512742637378171276608974834945424583891022082697173964966004713992167890993209068367790994593847340828133160698353429752404079678185146118089396513618132652818137936570610106155243643385994028156655562872326431637008620663535537216827804636097073092181149103503317898885440932651584417260006584158236812217959206325670594899120025531520213537461951823772994773427355564369657200415303789141138558633769430276906851531417152233822269884363860699071936518831358718377430674995663194531216672277150631985339879194534158209590998926016433665529011310609355953088615546670320541937010522640571589625376618617016029436349381016590857803807239082346556746406569088053380997862459109147651944960610212340280579841779210747891029419353554899553111633330899302325232260185945068166887991075961163042213904526205556234121968129696999891558175516559771720503869969748719215416603341746723117793701904075916200395775677849789273727979354312348422843152992922106914750328390124237034439635080181281378136749806080253433514552023190704893514958046021041105263587203271832840762071457900335718421209033163242060743360710094800096816309971704615687163042408433909315120362029645894366588980078339957821735546169875147650204210334596723033960409188427767993305583794303869839938775805943624216159683862634715312882798947222783888619804796137394210023956583330158133251097398741454272188394011760139968051144323200094369069078194410445669937494248232721344228681549402576365416870347153570236071422416762809567627420023262229077702135224127491841639280011630018230277396028311070907611651420648288170984924606184226488329952214465321906554686922129325754941905479149179832127360696007016689578782536597236174281780379584414954402525200292062422917192672098341012793595529041827925495246105845493764371121387243676256433535002676108614421185435589616791904772982196840738599240905788312888387242084894259589018642171268017423314058436269513556208289373882843689983926000538109675135969329572538295287099459717131190361032110449777426578504482272278611831131818849475097173619938992810360195686353191629779687324888895724033144609054171059925051145619962961984607303270606068167739339220289900583622924302599520975780061060095643121721768865566384580703315951628875778193410860855824784782335902487241135993198927787270051467134530629296484288698493218730259042714341426158712689046700865471391089909691483498218635114843398521780154264423427269383617201344985239007866311162464509998855495555959117682381023204344690660608708949192494391554888675856596772430629500048719013691715283123406658607217207183543179633383261689831222291369076744721536105955365333315254062582347469302703941472535943659375368137010654631368771849817951411829262752253924247014285340145697908488354827376073102470111323435256377525006422427064670256880985407578157104367779961268573263736489859043172370083137768413561687037348954458815230378031774638949766851391629906928641818429099420050291471097626886759549416318993441501881183275917426963642203172385414093914634698371803565265961111177344648228888758359529777742723894838556375824634537962507841583630228850004286309359585549674971139855297115455682755499323380399307457158268077363478606423541515037214469775934312080725846688232853318420794994890400207720010007845126795933988520797696111089943492828004826046024032281965599467190039298242059346949189787945379906688913075052385001717804455814146905113258967277853353318585243682082405987858023666979877560913405805528033305497141702876229223896809989918865185676229825617347738906495601380292784318228062861996457202795628075998457430210455565989564114555067145991999424045613602268397040572446516356109513683776874390452769843712147721489426079709635476372557377233181073751477502902318346648561147226748485871920325391980960207933507496263414509099281372321030055174750044778400985602075849247056134652775164826427330598122797893535540560203828466275830127149343086520038318637515825063017815357920443600738299125687175635885308268818030976983342969739522404439516710613918293010821305986878025573572573024779568538890317938478527331099556916790946084883337648127582280709986410472369880626280891364475077284704148600848056381208755368317753816613363426474730533007379308317179237996199467623782079797448087171578897583792643444853288237662555913391060788788362005563940555638342027663788515916987118234144413039679736880381474737147147270614009729603646830812505714210054453361083465580479933220946839015083381988786472496383850235555212995685106209360454293029449315542407480181856638547487564675851213796525252218448771774282795326225304940622695987085771030369196271901767531856655155925849004623461548525375205076364516824809034511813546756459984434404487997410798816990020389881228271544702013044337445563591926610060807030188679910671526523391368314587784946768652494488127632917241898981234226389423955104855013818242063378225401816181962527724504774858980239336819417633084493051334575110739871139304162204414188615146520166908631444136044820214499065685448687481858022738545710295701154001441161197582994029361457335734499459822102720893133886015657142545120014723914150698473078721869254837789525943338892407723960269206057063304845954310944068372101143970386560218486515032442628784808866395377803757684774036016462376236201225179369416505164222553806420747283207970271457461158301604475769499800836499508796857097757913261631701875401338100039792238881938749204647115279537051453164152375129527366765866053619975475386839559940374904033942247720672871497414024153008926119642384591522108965194192069759900152955431793837947938506225296539955749925155055299280971927011746539776000831163221910288139204090050886088549298384698718184478529075769267340406407140038877939801929727860595671465450995901547266243313775302543588375377076937794676831082671245146681002668006719411292973843334035298725623372396913358572816249749540485028100763586862220945501601703117323670031537755884194585913668371532800849055481021292106797691493299468355105514483623648707201431450524468588496018849914250071002623046899977053946630776265399975349375779739293241294668862302271965924100683041831332133072543169306803127784494708296998289601409404005558455316319115548324641532765921989516011084759068712771981274418915886864614470239867064869709190024216527660323149016445931200940226547541861188608485739049638142647125662928799260857844449837429801590426520589076987962878828172236516376060780226616571451134381085979761149481577906196921171907219979103600652789360699364938827326435922648802652973456845720316622249493950933885686880714193094697464405275891000415352451263665504064931738450400709195144770609152383181105959062759096583779985313062480292231618609890838943141574395189178572228894938767805769795745223296110697021380607162647766111472855016351805850738858938402489584456538812344405377279570962525723877480409584342503133280037403698235686464824276599338142752738223173523876787744873838664224838103142189478643756258509451834427295859779535296725243133553452351341060206594846708549895416068396522459830239699635154384954246872719312445796942965587813295326917412951280772502745811983019980190602017982458629466076343724842640104678722566839022380664737792420656143347242702323925436359134085377140286334349669495738921570324248513229567306027471757232847399582540141400788295845982649361127465973466222131922243015025855506446468244913776705521373139555024071260447141857099557926563700504311606375488261639754752042501424774358345981996111890924057914392381093981727820511974704635189496456215125088580984307687922534553187818881398795181834946764467781499048962099259239301468316286927551665080825111805251394187067175012699462300104902077529537164432168325642098380100262753616560748680213589875114716038513281338424395690422167160338377718650470759713901494755271475457854067270117937924251858277670615365150476776790170501242554424520431053341458174578573057063600436523314767041197453472965565464433716945102979194553971853167661576352838772045507828643880525959589051213850929223178926624483757226593270504496528248273237118802632488703735635178178221558480491404769801732868283466306515749045551119314991373674426227855290959614040527136788609152953474530013785450962492319738977467214173051254898462501493890942345992203121234336132873034666466591426040898617515273850121827666326437542150233207223858660929341273735477465814243892026699537247166270596802798755917915485449380694965283773651034049824753940423821664340925106747454365359181132553585093334134925375730033294844203247763455379900251891775440547031621615459179211729676375521013306332421150595087763223499615342945053865116824892681714218442209978483208121885331251513672510634754529229779140417527576974331753928675393045182807806062926671686884950076005777095884447198994316584451317650533437052372349129894429999253503665941375382581266855564899992030482590198038965919376945948156348461997852854509254362390527282687709118688694544587344718946993847793005881608356858320356465265083812707190989286388759780664374861093780328755493306073520242750289973439488498402432616291160331731949500829388846736846691829541875923836934607405252147982600332513484280305952998200436871783238099004154292530588321659375005908798072513331844911539260929713426839449712038634490325561702617473962388907011847949491176780151613388347739790905099732174836506073925002033218797403572658396869281352978082992687777496782521198389052239116750083368988494357672648527373081489832959144541202411111652993541862587747480639708471901725940069882761658699109603133796839597868329190420935155334705827764726554614001676204041795181073065826426613005096773610103712846342297446702716706199091959874350640365284338450325976675747959606006960316182425497132775213431334360728692492171016199002377235773512602476191699329551301802016457903299131917206940250887569779143008357801174388243593198357034513840303284335243224527869052353085610768356801417905266615527448613947868340322286846775693967250235372593974643199527564575927992092706362848496520611780499112496811505089637628639539805149701030909746322289165344812728434628111441497152129989545421661300558844766903199879743544005136581600372734780345961266451023233472244170349305452577207315753501824702994999853575803147425832223983551120311150618369902742403304098378277137615278901103453884905930519856554660853434772851846321395603622481647393906547834403298388944732323619846749044545744760579174009766876460283260322140384678770485108617540566774282963878013475121837394867867893003281921984465961429365821706133228200016289914509768203321408199241445277171547107799847946177800026786699576713907889794040659021300604465091808409880429825028757612099458494966370038384964260707496957105081509989713129189946880674083575959327383161687022385799095227354752348389540148693357067377988938872697779323876751382461434745660877278358237971636158589939663241224020502933015841434599664924763395683022091887371610214417456999900217579133717852020551048069086007631630108934804501905508670425016572595532335416608644385013662756586947540418196131945680000406712326194738688760279119515337952508478202403229588742324734731356414126732787550610837727804215584892333012738928138172198351774017322881028524160496105819226764630204661635555825351322170555828636895694135185355506489329691043622007188748091111254046299175202422982865750433887456179421296515835541188204737663799804508774749606968584813377386038633893959909475489282838842523821029905333876398865529418201546433496237040792298890917795233028527608562037146937729324179501528103788901721896466001883591804813273410623173251817368469269629745671859859129736563135661052732579093403417664302542986121017840598191267517099104734592973046358156517400186750704070607889014803639069469515670687892768265641672957562089161763456082688495236277648431863295797519330400547348143741625132008789874820769551095166147782513656981224931050472818709679351857154221498843785027375485943741729493418704768755619685386054341654148873968372365827522880525055225463819518756606154455904589559905218507399626417796935859941616868482684237679942929761128152888204267183767926542304264215323592661704337989122962571502270863501526251018451839116964233572685493996708853770068138312872994077995111549663502099898464639290837069437017947560289280898221637768853930506824924906377431740310218603936277776800249993324944080687250903047650646264625172524002944682504811118035269045335734948143392053684498456453548246161945638339543933312734960340790382047152101152032556490748051916123132195980532632275571181009618883999721938844429884501557471577803179489848489650106329869261814997547697576870564929172369159179957282488026961593262228028531601293387639094689320447332333410989473367111152410537399338040690586475699304694145164417826829333234123243122159286641522211666987304690181893877571563193957152915574327202530074778236384112357328339554998513089258180458894441921670161369525445521155902051070657017353157660134960111104494095284380185813413486370834465207650183541535600777151039140610389951016414324890532964883238805271061727848528931785589114958583461092693017372778484369803189414433282420459465207369721325984197399984010099045113423776511258780603647709913378258953999425277500421231866173132165983232056811284785844346829898732222006191203724666744413617640113844002094860934567634001891874965454137969298816286162004924382491440880871647354298454828170357258614678537050215783231251234193754276619962418609629307638983997063137550200629761478550892612095811986044927948095240178958540206081832461875559377814192219837348550545098691048185765495446447414162882307321181076542614899405883401227657625249721415512883575500203305830400359118998217374663702392055307419963297306799575695592014573392732766009271094603123524148915143948385180018011321529690537136927370976120052334096316864986338529201521966431598630323079911791172097380758350823323869522376005569853546207760772423098963955889851151304347516085394147170118128488948648850039663120031968004468282068327912463663318628489286939541635089568622745980076474119022687589897288707196430345027874317311605620896683803697808900715468570574876222064786980421215477051909900931818293790021233165948337618282221476683349115423885151325701254286255541673307322729408929176411349145058495716199595833706457161764183527719341959089253800057280692505229788184839082939849512635376450618650664753106030151140529417810121033843930998155802842848450381835405895017655093114037790137944650731734629579375736222951597239547989845369702925623121424464407736976999843384244943116775601565243254048816769678472085129102793213798600785335830548224969874835454096229074768668508797284122871151110965765174995218299990888752003590513628205814618216803868936435839484849867889303873223950192422787860441226927844287516857666026697256613566308410662865033417362616606823643061819744982017780758732555050296820063637019093976532385168537627703900814821744056531204502597798332833783180965339858520506171151810319957431523444204911658547475223018373225112639474319582240571058813484478250523824068010896747899075477858996597316960931477577942399872487308240337159763401373050334443871638185513899896359474137979615475300604393514071994968328566140990456864353174839675398371672783851483904931361052545592422426733924048414935281132108083490219346700944665955523236686876145431360023792123580451078924984397511339779287554441346521244569517888918855007762055712587039807580349444009440979325846167426398679207474852707794901688200087546925708878574168048870683212257363756141801526586586306921639925626453639350299396446492416096293817368962231804557374835027888852869688630873959658584084923018194119992256137995082960700118339501903558742326501418009152012831171308581908792252831782796038247595468262131977916803341343331015817837693897892410790662409980276304485082859471442002906287226711978266990295475933299036135018532230000247754121089957884190520908312057925812239078613275562461534663271033457776513226497176769426723337702422017382389924802680024675936604826996208785366132355141541142199479073388847242193430691219634136214490974772602195604341074245391764738854191072388469386442640435866211421541924301058293495304095011633677449131891764264684149658519423713137214618240356133144241901157400004519684005057290690116664068591497742704947460819828855419920752237687020375307478294159426518480482616312960684729771537651243486233575366357304850591373903900968150720983173009714888860193232070688572760116972629919232146992495194971380892429195221154135620933594899118926271535914114353628820537104354959227919778932321511416608017309726573278588787015118770390863677442799135656255624669104157451013993045932277535997848231303775998060686408103302623465743491634200941345392664425085985552374719198731331323158962628119798411813884747921902601509527940745432530926581270186980462582265980045671082614394789908302359223037251521024989491014928763135259455269449212617391680121704538070037505405431759834990889422469415691441806586704798526839133511180679433468416263167467149998979456855845515935810203900522759300759655643048527600013189652577506541626071884457936102231426526236830894983772119504550840852605341851556550089954301382419800335219414042624632497081781257011528515604147453762386667756189189036204262558228123578566713003138384816257338212181105032312393282994436558357255347864123012968028159619738933643626613255223044622984449542000129557447664033492242262346881739636672207070040370821484604575097374364798950119799811252731661258452264023378057754281913516423542893475911872230913856025605577564223157562962425619888938039256411548209638705499193215670355232236220498693177030852222662467155361473541253441102058507127460721752208551794479593887694180790900053868693633699372477359484202630009883657617513447559157581045940137197987952038586341820129649759155289226508466018744557081663251557216724208966981502974479844581630626816915871599464425759755305537195863620912784804987043056956499502414983678976368894891652939516871952974197830750207131895743405992260652251204414493501353177980131968488018382662406745014623991115311044317955214854740536185659045840791960280356260428502324370591964579371060335963526665046433064539299778040970530966008314660150116108029509797820716443981881194129425548298297891110839893214866414422527030414219273441109724084468589712657032645572140534684110246983545986080674119876407957724043072157798990364908347537062057896720204041416413598690271808355397008945311992102930010877613346021063623395012837016013233036497458116495166433067398961129081341234138853148318341438885992853188861625162270610489402206854535269292503463660771944677221525708483519510054321231926824557190579299120327047790709713147650262066102581014548203124624084484273214922455857166588953280845820204942203056689768369190896374549602273748408265640599098461340259227999449735374063217959908174930062039103798212113748290450255246680536842457159124746890124741197703814521435881003526579481382260249993194266055673789780103677775780877039519131202591771943522238833075021553916266393542010150187941023670543218406225825316703782979947774131712717973619888527512426872891159131394355214709276535912235328936761718710938200956848770728304928909919811486270362641791416991330644011775765687939462350162607282586846079093604542911215375187805805418706039266479157868156068693433491556502749253482691616345692315352430431766655776941518682299373390365468197530037011428591181779895506934715204110729393189024757103663755920420447634795745650634968961284537000069673310904196610409918608717320761696771780443981995270077893551052251696438304927849033167732525871690500486769488365306964552093001383714032570905780311746983115605295351871817933195338935611108640689758018634442865186490413569735965465398090168394386313338827704366998341511883573016460055474080269088605711859615231518716724969393044905139434184831249269970891811726759405054714925787154130927383276219523357050938052570572031787374105173380464471694125384003495686112521420884651049109680154014222557420842959334951994802012778221836388206446318422641882845804607525838493333115272095568509101730360770018725331901330794004482704617227927487604129765967277577455269156549691087841647523151535845682358109241237735011568712750657324621415924943632248334997026061477144148614000198726203243836818381144729487209611538158563144318808604968588149618505126937471677729593940914630272190757666896742939767966819766310973696839131025859379650501229220629154675921446507486987827960105397403448141498192976624704253548749439824633562429699178553859940506093389284056046397808804679879181914157436305528937425876254368701909452900298501124102487779095850539381607656655016665496523058466025568422638351909054615639638231224578205611274109568206145762528157652383108719729333329640478390088784295875974683001825243992223835668617185002647186677959557435629921062979847220439274568287342281121450971767546744102338821428664509069960745592898525612056321369234642743299512468529589941616530673969001128523657814431618054059533747679978418326538819155860755462896388338762804611848739660894403121643505697404017026684444800954309297223929660588048384186748222263677231034136578353652879005574597774635114470589864051611392197176331933278181405017036383634562718086800985720156634589222089459252490333916347998888580987795071911501373138497718876361395015062708582187625767235726691721964516813033878493527334050451205492506071177196926849184461973914966213748318879470034716740684390687941264940582122528194973618871938628588836538520067590655444673459215691255546629539406872360250712155857156805079486506594647404209600104729120470886313673697496961490798613486501856633465749313351854300889058089261601987565810803879021284397379137704701512661030424497317602965737345509723480284281073478269157798634366303394967622939795633448291037870857886907386728091906279540585378957920609627777183172898333583544124345608396532757760518069589974965663326012732413317043140115516686003875532355995959916579780584350027691504487292177304311452460901834120684397328309917294236614599186113261525534395188254897692401942879161511984845120050232830694148933355858197585161363556339048748418560012128102139817922720677655787325495800323357442530020891900234130381587612553449255753081252727254640601777856783781266272120239969999313126770514001450898700243929446657241986512691615055102863956720372331303665194095438850245767839216691107730384144716586634149818203728731563507923155253637230562137602609145023695253852903942907954074511876305643327065884043098611855621046366389931984579704720890289404874239902857670345711573866896877793704012667131084284264150158335642726595636310350540231682990030312783488656570365689928741178948720196460246417151028014142852903696471713271114256786567454459801198065005481322511190420591101914001554178655396496394267746372672337248353870891432618685333123996083647300853799117609025413097447831356841427997855426501647905420015469435509985681983339153954856889262366078706330785834355754740652695621800231732320675246693110273778597580666826002928794233117466624694169669115498102937246137564213184229429467068280925094700024478651380738682087270124851015623414710667320169583506381901851516588248968794027924428409310563093575594492541013513089516524446875492290257490598745579413755239491561347752757595053106031273569904754561979402423063483647895598684986374437758608972491917631856119890968174832201644589101007091409411849389257939476263255026849125730873427147654262469236389489927271943641092137405448875776910193941013181867663236485661653587860742164783271684501619539306988522762343300319756168382818083887913466201518003485540071209027428662409075867210380863093625051867770216997977268448838174751498486219582310664574439140013840734661305425374388731103240766869825630267051640786833748809774315558845952040038595791329100375894964345243499263363968682499895778685448461737466441122443812960425610083400369546043644755035410797057233880950543280514266224780164812882909790126174623834721327554234398542840126035336737390857481661846421656953388750358179043256672689722982101134588709016299375923852408355953775665531733980903772361481073087046096227353263861515363908320117149669503250590510911534894327966134852261405227216506500370623385772862400693253861112250372310034765629821049284165504394712891378487950744674246992735481843799961755992818921144607806825112055268110801262534584775255994538428549883656626185361018267737674874955233053514511027611374793036332552931570888960326955064792625605156202541918239356834435600887416171239413287114724938295957878691230853365293273691281578166943422765246784651339353748392991035546698198628770255923937135008045364993431221266869596184520402039130630885673274694698627885305593324356820079429812369215731537651015737405100510724615820630152015570108948917854445691319485022546127849765633976171149447398794229096949529157001492303746153125486166413005465169385706917228763663305137948912338674156003318353416016900681098736489813357304202930079927011685856854560512172258197167983034437818940845352128905577164837754957145551513087259251911699635223277654146356320185647227258290171491269881299338145992499479186318552498181824258588748406375537339298911392067164465688517561619157784735242936942555920587915670454705126306434333507913533556553532744371397535163299899073851927370325147841521786145403938543525719011048028521362021441789172202229645180132210873973247985645767841204757914897971035576948859645640109105141428510429934788789706780657480788444270382694032243818866561581677468945183381322685345193647753194613756182900315723914266769552070627318991788743588554860877682295045643842387850457847080989547695914418857021730635937154249722589730297472958531244755385781926754620993708011448340442445858518186228725077526245511490115216062491134284819587338322780737094788898393502865256429778150335404422470088763127627707610745207011318441874499416597342958177484381154105575751709559392277661363593888623633883963696285805227827520606007444426295987029251781531530752970446247569562654666655351764880790087569333129335756800360671433056077375650569098684838258425864494114398208913384046879375743250358606665926014364328808827993758869417879051814107393503238174465873322407473456819891960104627582582245763348303678918992368725311037296829598324331265782053460731873602666793207888309915831229064959207157222111569780208335521853326313437856089312215377009316479510277983043945760440258535549518182128342908258846941954072589321020176294719690485082937868692899574155035050031825962133985778279214887041022684272869084701226444071454809038789190800732912308401263410172032002255910064125168369369510982192758023201872223416161971931451507512624107438486073542241824446846883432928291441185731315760353478408916595460006097747364294106795966534063994227158174662402446676319046285417250463495667839645355687396555223452948635900682630361446690953077289251932171259357003136200165540524895252694801530121331651569442750384865344912671771938520126958662430023837099406188183986654499879401907782830023477901694798328646507598895950170526018585800561367279826213561101433587082761744223948271690853193508549654237809961395676287060109344724262070057609468489287956835491859403460024931012225552357617300286629615793402589619106135832518147610403566608550784904382160998572146240281308004101946481052075530563989441390991249648094681080087327978622620212669438712622701598506878841155088459392600798999637377208491180517704895058808541203614149324761652252492651299878465347312086217237674755812465175448350931433552502273353430881466545917953078096051015925343222897607544824639191891193915597958653273829080037859454745604051667162408588144721748097718964170000347328325806805038120819544655897756270051006867183750696934062192719119838428686726238867624062260727442444326480266142837963892030472930222000525811978280566446663827237271355547318722321436087481037611560711972861934777678801994187793139369613166669198690075836167758914133730053920239233222123482337703314149135223255340415780571526354437676282070985387993482745588928321130383888771992992431341689496993592449902466253129718971737926353426303532792443943950569194518376874563664530615761533229201005241791273949511935235111569729233674383748471919914955236437982168321257380740904063673439984040727692195288822751986099343363273989450374728234756698310870146867855474449670278405302536035458541197513182569751691610549877219149575899737538432426146442704430474626911403463956851026463285022113474079118848397193497129278577651935287995975900020222761626375979701277832028284150635823300628139643700620940698050957199947373538005664216180771578227476733938216850744017182953229082916605775124842776228411282887571140136499466025058769310686784666992485607822185834347648192876209367815950839783626477012595762829893969049057328804782299319090166646608696164229960861515454839816936604233535110305110401359302321029631968774679891088669653785199482849719961898154859466300628633248363163087490863393842973891290722637089770194672889151147337831987224924629247790527378454620649979747151592752690874500527548638089713603593309419036865967791467075869593268769518807142046449816845686999128514464457128143833215850839845855032924100608110983592744319981310997335870092057477293183604846073106782169499874662519323716855326076386913232223167903596710278269404150673152511110490766575669072428127673576084446919731696862224729851579935153895738796729583516114713395617038371788153947778052538544141158307998597255350469925808334175164480643843827624267229670479012748434430414309095298299019990905757121092061770535330757635402643113180064050293088670711822426233353004045081065540251337409729157983959873376335364121381980178049257600655741405144412976698175550533615252236322012591463930550721203936688388908391108256420334496582949983863385726682411908360737700191909056814331922466862416644208087386410721962482886909715908453259579611988161222554215299428967572188187364364780519868670265420071608737537126812742938021441172911740456268331190850003262161216458486273811495996605654027514339599758866810144604165547741975653442355672249115808812234267527475145042550654569397693963930757940144287196520660597051198186867218562451161953766664856061575559945749371412264586584277268623753141074467326404923391531063061657766271746016161867930045410685176008980351565452764277656531814291401442415538164787680184103289726003297955508141574401787820373609519122737769099295361534235287869302601557288350007650298133920204269576437485379346864119443788422951331285528581863311307592731824457874572892586051311817769427778087001990933841200857563825500442974477914402337149418237230720503146031101523917798674058678279615786761289080061972738592839397404650831068051571998112236319400719099133871486220578534733974487916212077652267963706750287909836080889166923814393903683722113937265192535356037057406016781807104223987269412076850228372162888930106015898080574246336096636321642794612002162814456004919866950220373182060125325905985049899435227089550678523232932736824623051665678943695345120512340084062705072521569395116975242419828534191693043505169320029392802990836591715317794904248288808947783200409131326321043912075157254841560454659865687803350417317909730804106202745025698770161107861442061797351920458824724235115371906657490292505877749285002316270106048668676124126496536509936837350939943638305931542504642445105294025333545413355671762762175455634380973183309997011485384875307186492495972574012058458563765183015229364360325611835858576729274586812164533113415677400604106947008595925659376828428351535886308457442574446533173253142250955437111932246414242426723082412707749797511306144721936619933653509472663122057760443393469283690823534101082670770042172909435251527095770064015033355868603132757478070542965571594423294773734799082198207218000219789517456075973102449720138371355436893067930128080116359960850302990248327027844013725581180491633220574746667909269783993143633672466693105495691006243031378214698103807853468017906182022375587979490440243281386579346960946613178064645123297761465588623101618754917493377642875131646593488144254669161842261746104668983646256811472670860090061916700143479533278837165727757921899990810115079315801198578152746482073534694117228489638553732312705049804955746899233373680463376233341277927257805389670451124495627527430040389482982990228651625792671301860136177874563743272211213999569648877375670011251173152866834373825269375057318374681287363066887341754409059085550043655878780761897181110127144513856457626201359130417557060049111934538879577777444657369167095361614270362193759495874091648986658631400678703742998995781256313802423364133058579932551906897670022026949279254695530137491995815335344596719626789510887566433199729581792864640793965198041342392824887998392459843826210461737022247583513724555537689771751413727285007618077058068424361802959575405002994764519034660563930653505550994412830357050715103266414691567162808754270051868975022089506384381098938429387578083743392721905466922675244840057607354915971193011706422881792158792207811244133179598169541452672089373962097261439453560852737348739330085045359920229763749471856729269405380988519238934157154195333379551205712767789633242927256590064247422899421073930852906683518028724524419059942734751964187514721593958085854062934832590514722927198707620472000595314576593128090938908537811402793055968805033543639670982457314108330837275375030793207893926420519337681350349213991540248829452889657373863273920663085362407019120582724818771576817517857824368776533231922725071746559884466248117598699377289543690169344203936170038283342029231178568334267139333636581988092793152803585170268953774695457267024068097961595108089791593063323767106459225902419388426430897820341261497504306815941125422950923839929497572962061468313906905661295672752549443939902819967129402848484121285140000830168138920128432611921488625616173688494133968626688620315334893466571017894205481742981089646954279092067872660282478334788108357541347388026402694567201944834489085797991762362531925803090441656844720584988902013375255886621310222429897733545791814008343082135211379675620852841968776011031134232500363826497871715294393664322855888764083744007948965873997068574300262183029654231949747539915392002001838248258773590065552692381421936084884982858469992926863429895953199562117874421474143949854515207256100257961281615274773808846891590913329640935582335341047540229966724239547888409408331865722303191465726767491630839431754010390465477711777346970273275937772372105094622934812707368049566185084289070275504060360726317216740690535816335152545914544745986731502096215124961829218475090583726437084911957914728572077235730095554100297815749977021779569008086812928164803170564109499183638785318670613557825122749815525472118849741717128484335194002912242594527997461405389239333755651166914827213211913612320262795912002967769151860344678769914515150072588258341387762102179101203802675971783263755632270673168313293571695492594602815820053428353334849427769740607774739945787762047496721592576107790564520724218947100834403282713183959724147006340025543288472494446670895707173152483853426171623252969859857605383455247029331743499755226715689368209797925825793452674229600500373039700129812496525682235535698176215695039035998086199477819489368754591332923759821605416643758687846243681621398371963695808542359359131613517526241106765531188528998805966818934251278143952410654297708002149236665184496075121438658062161776223607977307004844174671335060060094966400985704215347772418933204529129047511001028302389040905680989686733579313948351655983020557567650188220419518645014523570762524384298807950771337827437332163121157953193890417138390201690291635077172527547966353110473114720401048535531108065241169125436419744851017268252179751627808864347614814526585603873785279575231099473579472575188888031051945479528782160313115042182816821751631525820764008330446162119637809427986562395699832442280413237539260779775641238007779395795240176321141045262666926847017565759495700367289193525952509563207905208729114039186979446052908251738529667060357863201533677462143827883226786655424644255256089464104686884780611648120980283707245914162288141624901609444702844857576404280368414082460077131441022239551757662253803834265654761658079394796218652757410702082877797874361585197990661565342184311159949472775964686091695320750765805712076405205853693666064018500023817712751942504670818463623094657079317176930986513150131197904357873892934910838816501616167115561877697933023148768395343123676101429261203711966773102137859785728550804441812997164374319316283691534522123488928956188828051467208731840129450665524411762311082506388347491667045384835250074988755827521374565257267869723915144414143745951317414420482862040969664925155293930157122347438706242228409283186275121485052150968068621030746116831168467765632818125769148756290341182705372027858593585206051178444857243990244384989956911519037768937191652297856919527701623119133256434931616332962475843345180228961340372551633194657441757165217304387699844688829567949961539511925336478952150528381729770853008549239245073807981481285842326868488068799514701545918979218124791893801515439764730900082957817622457973704943972648599841430872436846527277350264613869297694714373800109247510104738131739279220082695371579262211338430680042891956835021735901804418256409616521124359305578323413648151700747006252101819561939397516565519152009589828469933327522663021274113223890543175530702610166368003331784997214746619843952083986735161347042928036301726047257056957558731702385168439815261459705153355067793042020389217060409981639049670336209294061454265462188270803103537343488661019637140543869678684047361614593155556954320205787923983777421616535022083833519875246542693055977315308496148950638919455222331961121285262040985940739864805061299089052059720645133117498760494751832881618904924697196966827732616706856062060761217087998657804747885268576627593795824921819880566770728197282523885004590258223468967702692784391680585022620580179993578949725779271778895787542375786074339004688025277771825181581941128029360026420753472019229096254122167053660344580453353812174779927276426414991755612554919812977582983245116499207276849977060145892978792553859843038862123149435783140291874851102427897161174672210890720998641554161471735649509946554652866469519596169381677702540602642781820407573580426867387963961017682880967224822754114689521419424257696081447599648171352998278683360779307681356799999777013333946363246068808143219510641896112870838259935407877040203326486219256651041209984198506110009823764554304338267600773087066093295385500784614651084690446955893667106439841735281531860089578697446712627581590343971848249434342802895707650460396276148013612022408202625456054539168211703955902513555467780417938767241328213072700335977780118438390486594911511130746053956792933476678369514409713292889869488149934451847057556524624328439117655400197827246376098543546695077829187682094922881828505143283454619855682257313646956248863905689379406320344706748981150733563630849468994071137726283033370468777989293470796430723603917807727451611190646571941949295775498356743549805101721439191194091554387968827620555154946685593938912041633567806358348401816523596035932676102014620105342924241415200547908854285059056410324542179787775344604472751038815677457202419075001145032519169866051219487009337582352688114248714704764070136309504327672214748007957412594497560765980900385703544760022664455761737590451225457419442690452963023439480859973204089313251264185869129604515282451823697797648910860206723754900588196473318671307393591841448912189037210431790115289574822839548643034282893783632602359968372691826096537576126822312271100634962740149391844415643373339146048219049108209349463870284921471900190121229727429119573203765886203288847437352510596771818701425148953312099788679023865515343404886898232553578699279954326341622825742811864868423516692698310230133329288476323779582296961489202936859121199149716175294703035039923108894008081995844457420629518074984042686779417206518184456350956134133963594307249249445446412082748276344199235113595819949381709482189559560518937752197663385677304168995501708655458788864004745349218357544057328590282819836650122644239336707807090086691381666208606549895001181590701106278487007972842920344332680343147813987754459269659834620164640595508030085198191164994953250068319358509278935999451683621281868903525157266953640106223397811654080008420998703837465433866249006304219177405631797126852820552126196478171708195944256258388256084418433653192495235829679350260922342885099179286978292983554634533286031522487147976904855318357277853733689176851397374302730586048575319566181506885799331454723124580138682216017276768817943908874409898301965636154337036367034870051319896687947103649310247024914522066007256941853829538132663646453749933325156412242077010498987829216879185756374988288956112935019798827229395767118814077009767965629060577319692007214898676947940045234567589696933128126104121322020332401749608576830832672360503873547207299661293762055966394878980949050727694966197615161145261126270034497837111583450788245242586200483882741983889068476250568796654818175517459733464039573931930870311486454332965807282856806760159528121819888600381510574223388455789149636782970619429252579186941987592005555308382581838699908215300121403756176834585193210613136156260262793653874049186744784088229490405405895969318893756872739323435251702594218740329137253671212131206377719852468560285463957700200130342324894369583502505907085337140407653982951624376966230327283844730041803637085630026433629187464595822838182533241440871400449179878382563783721860132186985120139561132119688822755521329674270711261072239504015498692563568928551849184776190018091594689939212718772520617626193621081722757802511606524137227867372631271666284487132980467874137381693466804979208040231889995473319322053057090523787574665820384261269228895127488976162477579050325013411866822409572354203351562967479494683343018650363796461476486724835007200169002483371111989340141863183735127115154252776681922217641569354133603046242838918629199547913724056183632820892783623949232538505757611296238404799465982362466527843187231689718436039523739850225257959735083344185618688601368602832904391383681209047528597276074970466755432884641618660541797372961755174756564645689540144966320327122729774994645514130745796937436880351595403684693893749412839203323287306483772294369367403631425877626291736286907870489807674681653200060880724740550401685596765475302779606427604302932025755797707602915701687213403057539948033622485356064156731637300971956371046589112401445179982911863918933228753348744580050529978219333433320304808430690921529973712532939417355800625128874856629853158868752295711281445955160238242080918689477216897427475794936239663296334827194749218218273754843943051937136995366720631940381678315027140595226404697666748774103825972009618294902441857794279750786082382681985650751563308096442441859296343250855601365035628962528038963671372987482604073866538432969711588320450828178887947449911996030974783092179418206367937695811034279960577972677568931496061414241859755607159464079684007653179737571645966844796272065326722880131520837402164358118626072351480432769083964505724074851407661954904185054802583945423554181461653993399619228425530843475276865319372220490068012889587102850519155246935364837881873571677191105110576866933064103749246521798379007075611010269732822477406108301426140340995781369820994370397311605023538936722263609865323576521026249890363885688327761349403993102786387185996015780534705108851449378581944017668931354318991666851645845301870037253908004113697515066892358310771560424406861876698838902933889808927731663343252447076328819455541526169928561393486127368444532027326291804854647347395131712998645907228539241320297296095971129038914676374756595047383837070570061561687696121840103754095419561678388354861905891716045616234745693508771904407384519919520500632284117066889068811574024674750209026666297737813103849510945773005769773670633646363423390230454437050992216640114891090042784072357351431487984084988889947838345692652773349370819722494896117711421911656572012641420310427130110293045578010140420585295613986348103470277062659418455688185014569923907744989749037674919708323519397272772861894109695476745981300706378544369806077403230428588364768275482922090115806098372457388978596958971084189038900457422992398378214969967283130949790200793580381349738053217499844398077711083712359404754039082666481782418074955720875421869688477388178678341463214905763150753519590288670003139668882560149131498137861265344466230924876293863267367927732130778722461117333511468485538238716614185113037565323758485012092920356727713060470442098710871229376012903368860440632448956749180520642538321482657484114819011296511852437801782759942360609139746515508969932940041606379858052981746768548906354111547839621546447133861348591544547472247742748490548531085726383501170358491182531687065050623911384684847733535322151570649447901671626862371211012609671843007848392766277052683670263854535942022338104553786584532916670082919980059802978534297523321893648930402426100216858086034523249181170380911029079073356977911907337466532398498393350066125347719387087929893914836675837576098169961993766066315854107447160259479817477858123620695924520686806331276087327763253565222879340983692598523872783928291534685861910071939807484335024718373714362532413359047828721723842556669307338883322670898488445131106055726084251010427088582729460939143521125890014986626446548826113256861939102363805135881740780249388492541778423426411032618801687204465499787726346128780330535621520763693439824029610965694387514018564584890280751599079764595586540250293339676314035053029338082464568078077697459914814370152529811717796313490143501068834411638101473547005937867131526693048206842794534336004915755118878763589856347228493971634592069539944194583737674345906978342895758548817282918078790566382454127436454543212800829521360450673958214633645933714705474959091134777693334413366045302442731215393231416257898986638108389651953216285689637391509374445635881298941195501307526071712348205933398521271544223612125037055784626626529026495360676707192951393717143146056356178021483229978879094905159267596961509147170147799108256786075109258411770949345063258931252873404356510665670208443721896392448629540792971415574690733865044213208534629220948162496744430008135605918606179591848709087864295226301423063818651468512904570089847560250183924176677134662850651069067550161656345495790951781379586167506995066758894473225923760774739359218967063374216184697405469744303376360367834239855693022630376246348489705730616543418150308982639003570902856847886275699201374197688392969684695115036578459191886647051961939101856997065942155670897263522801728807543279597026262102385402913339775981286676458506632498227718588839568430624307061206372379928570665876332432108313269295309671365455905192821269837727542879425767760331835447471593041727450919825041373049356809585687950207177363078912891545348691755078100124371651522738864396537009417234644221072714149700206517910466637625565723906479730561530905701891841514693204734283506413800351418367222966895436648629398789175522181469706807796561045305793478029180106816087566332320715405515162711886870444054720513069571673767787282767122396916345835786560282417952968151778694177205950584083712704749888116296708329743516290823001833161796516693542984812525163140841664796206442928136694311604844826784833371462435164543630260020516868325128894115549739916934675697083935357408764575104579197138297898924312485015752226983474748531802103935308146626161902394242561268374635076104360525074637975467366308739164491671884426577839688159967403233301458282988150157151457617590224441608183579089083006605284231778115396936218643196268848777843047530058746042442989307644895185914613757615988301154164776761407500475816266307950115239684206432894371803237487256278157773060926718965117832432166250386493168630177576388579127706741235936880853005054340577538784573998438128360744445846147569883887261479142496589349478725653297300791685016672248913812007776003724798513862721656635072544292025838596392499688430850183633325925691135497686643813876927894829102039053200419546839283132322408178931904121896128257857241346973827553540351739130914276535282468397781231293065957468556418001514124005725026488314798232859298566372387802393603511376710898187904358814356099679513905882452718248074303109318214283554005091391524080336084538650803494840957503130284970322172556699122835544024494413032545792935213763278503530048076526584761420200838787713213639647811379388746876925758269682263112534267145614657114312738327062247559194471018827866548880200009855756371676593398512794965700643576981705419176004729204774997364637801325075760353941911215945329758276113788961097413792910736049679535177640273306631162841259022846680806519398342204973939730144433037147763632147183095792089098882800683581078295207160049748855381119022923102513685097061627333991369077987094861467717357275336164938266525458162771417609034242341183194196453171542621587906976945371092843428217196047670333876426504697929509120582320058517790534777319982894683811897967761442168171277310178677019768887774461714045615123245638371877849179737762883889565081649007770998995552011791800495990213956168690820364043034655210842091494612265699204970105160634412553755512348952921858675881838068224246799863351337326462719829211058984628725967373208934077791914370156417222867413364204783802434850905317271027599234206278595209015966362648068684428913643477434559852726330285590753844313995709627528668818532822121321963837465397772399617466931345667621458557506862100490081325978734499503425058630880575310440557033044058549475292435172394816971937614181560960611064073541036770101176383924230848770690924489184705113381149181918125438812476083204586514702626363584587533169432265811972523188099683326381264260865165426924981264901215602897103523459149083422719519513648771685301963446022493407311734095317526096145881487615903627276895574976533403440538129948225678342198968416758275032164339949844128829404594653222089896990646064783075839665792985765618572408562184280733034667957132418634775417837514162707558306768381362703238464868052187724495163949184126021369906599533089833372455027940472615639610536608225144753350607710318032670974715027500520776859542946226283480788110580363364544247055607533658599421799462651616487153015052490046336391304077107183040218172279792694602097410204083339677631599486105135065409082073713712667747477648106650506744330057869808233939681780931729276260966562396220017222155655751392388747681333954275543130219901268402891843453277157858838604383964931744015862950306135702512403633205856245380252641976341052827015942002858573321743843683620041275670232614632351135125467332199675248186692941780729763132534340019985239370039843950731817530126337856649733452383616716258641172521509078672685408896386252173177153278374352023899417606379144011693522367095000711819925090495941672858498003232694352932815866520127969757759459002876848416870718926493903144805832283334524353645540496346122081665470372632585157624873554836537547785596291246754603898147807594244546376971646751464243914413156179076344652026417857388478125174633575305254690142225059952130844795505245856765062308487879958629523980623217531990071227795730386263256884523614974224971094903519981572929576107406590541950958979713549648474656184416101423589182137313234026684524705761911151583631403840344225148280445271101201588002787319968193652710816727958430550142980266353690174857781008837582344919321438453780663855322265532978975588244048734173195004887738279350841552671821805460642166785320019202300673872942062703846025164777628715804478344932081455458591087786103597818522488557848820121804434468671237125594030399845780498705728139068358280796169236810247823645619786685394857782574277450364912250799959274705214208117283127716814504562403163114019195718913145407165114582532069980689418884646115542244725039674841869241958287727654509798912792863927653032525737382600510713790957373533187441894249375485368280201858506986412849254459621336527090324418396255116621397086772037469163252909097487714173753537771817741374476331633328104032092961246319169592338842285774334452735194314896803792998702887314011426558100918448760189893841775972799001991566661605276503986477476856066510866698092305730627828790252905290479914215905147418768765456217284792148547779955557545153555947831288388509654361980259680323767622136286851753978484508835883032855754884475309742444456611520095879463197351979343700768264745373259184132396041723487862111787972342660577117503903701440603958964008394156653342103212897326500808817947558225701314488326978773247734531542571684635616521549911390282334548138278726534497484444296683543532691460758032573440927948477467718248770317523045577336914191534742063411444533973412394519079956796770446877777445234084121702105243074683313356991610720175252796472951929994780012900106612526956093592225056398199264751956459859410867859619686148695876871457248047593871430615293993657292615642129442957702400444890060977043871690766677230181014653856605712652946200551578865990202707031041649160713645001179394765893435193800871395340855187899102840733235560952498737157847330095967438339848829313379241358954185160914052110720005228580784392572011399026080261660930062721329984423134378533646670835518199056665864822514219051348482342069762576466673097616685185055448324915247258214704875328528283224109292637519126992185071177444921928469290699293956389414235576018187986541837560343931862207041894012539784888703197454009131759003045409470563888284483058976575288560728467000060785773208460080461987812446285743047749803505324599651402763140184347264631398000546723306035871403587159555912567822249644043584113633610013065120023710024286457057846986430105316582733505804069884266669831960880732700361785172564081277898668423923472775194697991568370753081950866892398729121298602182149565378128487143758383701030880478103076953197674990014210661547415681126066873820541452748797810889253227708251386720361206627032805024957392223692195370487076290873978532518906739673523312966339631160117291651445373697306713670264382286475355205912137776864404014419941067683565081160126542047482335929052722422339469510300965844719253275154827859413151301639062462411982338642680402421562155318520021844172853462131226630525211827603989373689323586158956263515972477216081453596003126356218590664484228011869114732845915240144061838067331336473921110060485033081675037028161331048117276779886924066365376878468538651697400373238485379677825309886946705878065410023234056631561768582140332250637509217243583629646429702278032686193488167908410426340716542915888171196816267131292742537933248703264688128985498312476953497406983080122763823387220004907231463587471337574001225706711730814974406807021215255719893650847588916568849790641259798906254171935032857373878705565802556643713665675494089765800039456931101898194987721071681332370400409952618649811659457531046832728193754422434301532956345598258496104729041297487780323813987459126180050144519666862702544172170566405374499181356983920938422445364204976754609456554511444971911654964792306823464868078147950734662795883210217675566746619379596858039221680500425723138358718331280540980822902126059131936916944922324655132628364099587771142480379826935003137646749647849491741153125118589095366833266011412160902789697901063671425821484927188914870886824045665122289006404150027016195896954305859786918243757893908294115571476711040949720978475655014828732282582747689511704121718176694484708734095644967397654745650206825194429863326613437344903303816438113206982059239131049074569805861147464886270309425906128374506759277985506751529260437722943968839746431917874985077043981606153883228337163602012386352202350582479260587632872517831386244600520384741062057032645441989177349800570669814267356906132062577116055418277137509069189748066202748699840807781952145853033576615558633990315519714561076171561552548144588399482999467965728672511387558377380813374045666761189544610638908198593385194790835020228331874351307331810617272251760209933993507599899428770646390958652422898148909609171509227918009279928720707829412142524465290583057150748029020517859780633402797796536262342693982108623920685048047671950871556875726445827037211598827702643837941873143161490875640838861200365445487087218504144442670268240742978423892809946851496419361993810381175687709784006531245377091203700260332102857372874648850246029968799006268583299449259883129741735139673168788658917816171861262817981847834576695805964883356632310204602490888581827499998521049219867294934926850174529080987696495971579760411441418863461315200322842500882362658301139140631726377696925747469887896010003324853477716506139656934087661969895566010810019876513012256340488184195224802212388093035910512106808125281566864128199571145436873117804368167809403188021814844502451001014981449955434407423737904509564186415466387812342295686772664338870935895938853881717915395323337862545011699763479785712478066571269825854353362145295182020976170709476475073215661674319780716117036918686958902905963923426172726944252053681196980928238740172377702669936222872076290210952063494456097729941812500971806231953188489333021215972807407782001664335816126078318173271813872086851611693286809671327895038990856018265612600370808175230451024424880402138764895356934979232666955674194342330589764386106509094138809702543020246194425151020636892227904453524466248076282310069339087752194064950510116059446437488698645433656349002586565881725761039760902129450964409800705869953458207160017864172373471374662654122452192817716723797961813084776036366566351278444361412331957642100161329267451230523400706920996409100717674438104589731077917705447138571878100273104655058936948528180406124159992063292815265909379742710981675846512923998334135065485215825402567094784044428962168534434173865718732891703563324465820342264594921842834866100350077160038478611022134993476712980979964409303630416441438120546687358786829522908194210432248406991918769136755593816424104425075801117641422272817346300079937034346598428246730849224616802683166527237879041635750365504296077184050670610958175961033998431871215958954224959330209377134073823546860620881701004834040284628301678773303217994318281998582641287614639545116348511807827831666230182861640133420768424214262501278663295164870019784225424481583207767657538348790335429965346714575517611502551430682412046056532627462250899504248310464465342226535451016542593433518950478026904093287998351325492308181891811887437511825419304024568098598831983090691514370612175876785550670123621234513411752369298325973873737284313162796319220008801049226907171874981797391879500060389776211777300042474028451970361904003397129896639958528242082274971169895309146233386726478525752725766453849488836620761246417432163531005857224159230941148585443153575903451137892305528857554518474956516251532592892454735913522913374950143337345619766727731555492541727528827704056284493901864887760342838124289926442620304534444692384876047406564270326973567858586973198825445691132161630554869579364995759033890437599353163041304186696992354623119843614838277784643025667340675747614169293517282346919445963793602157326981523562094585605104078975617582254754735633999718656987726975438885535549900917891016892377796398220700198345695257819650885765537505374827212229724610702171594249007487290676606473446331321264276035773174049604836178047481406645277621781629192968537260145503824096503525451562679380390729496721309820053638768939433976178260079879468970215587840284148485162003860370429518056763084646269580914887872812021394136747494204737316889243940456184693192804171092642456767515201424765463700608419292363546617890347239566629132064268364271858480669535082117093305907383967873402616385737053893899361623875606976189004710804896044728928063804149025149001804581322067069565746759650213641114363825702609880928990053073934414114379714783338001087337104761842432581798058400949746033221222298727525889482908526541211327455915152834774698650824147618294426113969265025848894156495139379387940403825148042121019959038628648127379981296739925757594466596363462141808000568878397495394324153929690037133343454096381952401612144991491082769454017395852550050727898806623106232234763805185836175282121385430044204028825791383797842576851562275704045929142432732545506221892196634699092436845969232248726560142289417314056703659358327678421525960792800480831476819268732111974518946684298901103230473509103641594560900045459871634331154878104702318720891386703954125871510544166959150468202373290272354285066204580666124707980900575335479047085824282837958336737977545402850928827665332073098476207216632696953887624247979187715067378864617634557166198255796318002320667481230572583511433134408320326497434887161657490006708249185638790173712284368921732010064297028119591940399553181513836070482131030837864791748648632241012732162383374287040108948891158170187509140990912728808496396630879003833889100666465754279271166470031386068105246128827722106917500814035659977522086100572280085029886992028840823153364454988378649806423126162426696709110746431829271437179219393040703558620276124016347499647984952682246973334989946929858148429198597095167766171875495546140679285598576279994837354164416195778494594268478612882105451638114027269023127122309420698390883180277664430247048812362737952939741298369551884982184993932469071086125498149709223183116417515155764482885106054103927885899902131315269252044883274041186711544835691342235692177787338838106466792698686028521690732244926423567218716451757756878555556043990649336506680941315153385255849789040360923859072962124121293709735939522812784240151523511369131261520155067914770800668280789508509181009694710823549312105082658457845786385041342414151333511427826954386725578576918325968022974587479102610680228237865149823972421800107097349329065764040123688002480848014526157205202949932389905104027505434923577797147538659847728942713296591234905965682524313930593774385199922698325899853164903555263549461565714239115093241364397661355175756573614540105060823924996700085773829445875542881633555703722441271627965064009057835209020349321448290069482668619887396949030756082144152997105025225352946237944137786398946805389695737867834451681838650260063725647848861160900030563061702332757183097184538356791382492129146925974783550806043900522023313843332456838203871143476793000321070351303615024728570356963260675165630679310346880656380969416890051410829670210378249538245231711388823153803499741350061524563752157786982323772587174495085976682644926663329891393855543354755694953685950637560594729944286584647677527462662825579532233207631572746332184799695460662020182592327030859515044453931402709810439851840224484670742356580557519913527490344604589213139487507614976295244186413870606808545295207956708399255790820855788327403358126251632401197622585943446492907741430173407971923879730091231440329443434805190060477690761395504918194138771370639348303001881876695253062649225288798388345092054154424402107592017833173399930600877517378520415003664917532010078244928710082902752479145556636056149615784457412141893676987515196230691852094195791495811027185019070616789470274049293245358729057535693399917834592791801394480040144640543142714404375615664459103200557418805656600387470949588652937464717475922104406364477709229882471748716596854320609879522561746162497027409111369421022703817888178024438609019456085160285542995423524969475133250841878696130136579570171318545907392647959020831652481766862320490796361286573305962764255853625221139120837135133605065382193924575710581085326311700167408220821291461106386815319950145926398453039226410689343301238225775889052734836611324667212675456158051139250619946410916172025368494071806446320029162996105428985178282665768999418505107593544349361792374415668345497873695371199627722675911892056257290105199910026401477025183530072617911114199450133314999571414964957800817311542395036278813320899235212953394874255583541583094313116239096600257819922801134107018943868038481609875765329589079649759153048466682488208803267472772620774696578829503531484519769357765193358241033980992365694712546025870530958455004811290437894793359070061184718415317148726088923433414341141280766455934354770170671676252414693001904383918004426292059058177949391558460322335664857206442869896747505168946393632860070361382564939980033897708688968741284962798553717758693466206350054586095805370724886129853506761154726428425545663130339113542438775824201165275227517608746200310673620268774858840849076028434312203031820124997176310112988016399449379710777405511055963526375874237237482436783435610215660386847443102774526880664633739797627756271403930947764092023204657845427076887146958162724933528042133105078819855562576755744317802353211320794056821438344326594077237174501561277777841993590290949245787194793207428727458060634690869092826008652425564290267199646423829940502391572339730759598133902149293615170664558332550727925984770440543964958989222503773403171213442414365534242067256493318441597708917071147288054725562038235700019500321567794235022378193634239362178994299379616033650122582242594471855235942631535473847094932796387872451891931606571290389590918636328490732527508774118970973161829869608240682490662903431908543383703714826718469913443755522533841397831683238865636106796144672030011828350583413053627011443727448467230239021357506276996099886644103852815162270840088648544721089591224983203378576171751211023128828715659744916715071643557771276364706432160708037625671958344708715000449772259299411386507039340073468785518962945492263087053195683177705236346726600011208053574496283917912414119183559243414172018344498087171944306630948787151099715621200468720330848022073120206965851862799577322696518853737726798334982683260212679738069777843006134417704473192332100144939273788354541079158398443720621440007947274101212943091355214043147130909489232629154130870990645086133457097563768416794554670941744799611902932687286679308573606120604415403350119100338673481704058336110998110549123121335747556734815158841166875706462037020479507748363915740990555386274843553019391467940511116598793745200552426730916784320693333492564767465364916585625007080983304662014570415551050366809649505716557466473110167676233585371745534804347168650638841773486280234253369669147527510927136061011665627296193739817699908009473826901620435528209150323073587146107614247561204128399135004611086974372251343037258844865061291695986990678341745966282368808055648528916961956953913506461911930814058982876290980097264432344529925898246637020837188684451070170609283123040801044441719175995668372186110963053307174798667992327314462955547647360762311360282342028945968865503366962122484129535281479773462913002900060786993116747446398515129923818244315525428718363514570818852526714853972840167659885135538209210165481962413399639618751378237703780588879885020413491837680130650655892156879923486043310206622491353500804831797121323118730093162903908787170786717095435136741336952643750292913341511902870805436902593318885843832772975194461492209113111800027904138333182139168218641893786030805707558266044100572228146965739875507702542034200522332112384068973756855030475835179340045443595199661247198168230544576391253293479795914031206017734195644791020133874637227721900311050642066675971548025374055715629428982094832430420863684045605283852369895949271057775883066976882822993415596810009071501275677610555255380067146005659276166185652834528866874139108728433443722870649322911978382059493753620640581284003133595707725374482786524739428886710270353667125315309377050357233106316648218494853722493096873058100196958803107908559148025778756351063019959229718244424333007913401059624584432179627021553889396912668948242041233644092414995112293683042920024124982502931267742465670977312490184502311769472913623860063051854049347035376209799997798981977844007853941314710922798746464689974499730434285078697554114201689169502289030546695950976906471672397092139192232900541334569042619467732995537118172948127153853334475450720403112292330318426405437009684218912826380864903825046657174606173802903569567257549401375632698911052786502623464144921629948794691934114580960736433525582043480556169193903299738509088144456014874060821478739565143235454317235603737692953277231373582830603618286590167935262568520783102550382771210889939712157271145141868123034472012853477326121366646492820558544607819229475327342862881414597825715187970755988333399672689977201282337446795819554465534318449625493137042978837753291478450364962201183113907798362145439548324129191952390221537193037245953025530330015501710317088361595068294399884160215777230384234085065285996322327963784622123576870822266012295925480003501467706772573917993762925512690418844839698736448161063470952793679841550104695701047165631808836273910589500798635458543969106882524773722170849360228526130243820327130968928451724690072684927015871467984838115304551420091202069445795435697141970450415511954195200659024819605362548494690568504522343849661056752793773104081488616588572543595354579803370606726759999482302867236685727415389035125641488644283423672240873420779037505747861811883580291336980618367053345167998802944074234849031634612832433838620290185858166464152331081406399405460887308691776255451580886245641258800809763499405089231754786552977255175337741841563540912977765525032949966981518436345345859983524234430346559005938351311923872573213406338749274512104505796079141145192679052279337673131698573980763030202956488842912739287077032150817137540470010755744309716368657646113381477911005036467855909840986338838074517225172690787212489934282447164976259674729096537889081536451135452987681804239564511456903795740649454517287376492395164569009454086027827243752950237377831774048862365201529956655420287169187336561797733569816712133562951174677384237908286721097126717124421176445559528951212338477241875773892776780920796130251687543222327075094141798131507792218083710590657171210967393184720772492965812009166419140159751806243636378075844832623685633090969473821214221546637536650630903775901893978982415932917998666872524165980114768320562586714325068689238097075006205627685803594551828366681519937303021604623874543561018370016009368225195739318024441351449925289657299669575303233793122113759887181048320387502006889387642654123721090272144342996133808969549913837202235850375690869581670546509823109198699815536787755140395042901632970449986747687913686909323871780330294689760711047873065027495425155324816844712093306534975296929242316996420571563117329288326366052660994295371513302072617032626860070612999418211921577172395281065940621492745138423352053423872271207047563900612453676759920138128758193793213271029019142310136558200026436453402388674165798061717456001816879807499736439089939450999922292519897824616211015587650230831219823599878633085989944711666892883424161403783694411427623872031181962842138916745886103183004669627161840803177065846166841115042556355776687774922502723007689489489019449687459297156368755911014713819163037073957867293480472242711002181476053995740311094017572095426442357347068420215168643538063231757166092163222893856608727054997338435560028004515255930570743808668829165037691032568249051194017245902629614192626961691788659202488255436529551759459993395822336341620219750287887377575417921505235238654286425496395911759817748132171740114623964262811754403746442150217149668193383486121882914574485087326117173047104918806969616038581532939580783592397732598223396934626266064959040753965871619700634004145633838875903537105163899880354235834061221692765243471349751437233837038341742055151670575926428271592529958370329016306089867375451597146375679530809547938005740078437544187021909355062487627883344518809679641633626973569828335030822113501254580919314899698029776447498502492321949170786278759498892173466699974976008334748164761922576887172846661669092607652543736143316634773162288361388055336296048375394113741857716592513728274522412076351150491706316408891148685045178230081792417076048817100257214331560418188019361809308103064735296111328885879344320355167040402805814481303822833643758040788946042447481928599439786749759644458997641320111195575421102422976558580659728514069294577168733500019154502747888909983510021165902930965046909154245142909471270094895224898336888163892626481540566826420858487405438868510261896863105664827685060880384003886031992451384068414125266276404785641604235426258840542132702682512498860541402709758562634720225329599773030721635272982399227814014328635187520883885400018901622542395424871477180192899367037121002596666428961596941936515516273489750288935119028471737596546717247133743661169459166270206244740017304249795660436509776507082780850245390133359956465699063504232736502447879812716909644037627648870876463301380087942418344275399477820994861603766398570649689322828258769044682404168338959234297606235326140468330066760754894807159514816556081773431805093080898898143221754283599971490074551390003060836653578512183417687664196881045528412902129057142825476730368819834081296897776601243999197704580189060618399118645424504163933262633238950526695038401381104689150456086072569473268788553004627518234932187085282306882446129351277200430847218444197097146723232397107999201924936063601534131376092993739712848245595987161980946515448482083837345665940866446142145871763465360925406463444367686046710045165889880311300611173610646972977417245030553126054515065778314420661222049951365287076328168350714579017478756298197168379902712835452015778742361660486516191801106332779541874477485480144196944435079985266165491049929246709199514065015034190875576693704645524203328327264530838597250184438092387246358539815762806855936283950194431120387689095373527017535432910648136137470560719000940544631660416799901485969924282684947597088978428965520504393473062487771518369943428044261381643397060136609983361636147143182914107385351200494001294173330000512526673973911836603526642254459104153321637593904802889768555394690685159698336717288250151808427014208558667245922873697610684981696735471163444358146314032191971427797632187944322575773356082450891604345860243639047411270311895260843158580586886510945154238223202475538346660897675369781879555249476189131762280391021864851554844507516172746520849272291780222032238501366439843875704510213920387380095388133226834895916944658268585929006524260085505169268511064576002017398865879302070952647554438864951929977409762956469753220901086380816134000691966342815169751555526268418458156803604304544337013709053132207108785551293356422636374462708773359806847342869626179270560101124729909279110805011602303845203209411532292249780159511247621987031611784522411908071252925764874951479216561057925009239341836240697565397643497380706817744106009751896669692112994149311070884004311029531974936860874576490205498647431496025893916800475431527771372240405895237873638664343843089986945286647808301807652569364901820820404101318571364929775234984428444926538443692751443671735317548572455966811858086483525136931360141086193423825299198059890209149591730544630798987743585928748025666404509531616768261025678991033432001107246775268239372299167648011373524153107922038356305189165348204888455737216035791997667799716739352928404918444443770602547934848093813220011653140807338655523393729168497502618294927579197443805318462165981291793669200490439723732345933013204058751757337945203681687778007510479733929281708362508466613656755508227832609235655194368428006427225171754646935173600502610222112060876145968301958247119817711285178315730188819034426107233688850045387520133145303801814704819047171119186652926063232756138973188160171541921117489085929083987421994264551057692939862639194949911635918230910456317131055050010998640389219974499858914291970603211082534438909169983948437795757900839472196608187528497285369827459128322640639570105194812238320280058836145510879005913900443417479440056408132570268374155075145425991735950858706828828840989688465215193359526276176885909548991895558118941301162740876475755298785140473668460362443119472662734630184629884528712910950534130886526864337760195642808501192042027825454180757088426381313160420863397477869341960339049593604959844524513583205788439261287150145497404218446610790276475620975603862436145358861667088631195514038099044363079773308041708773852802215467571909727076095250332108125211590721890027450126603461204269867574227498441810822111318092706029951012468277469623006141107940554491989162391400564379670115858879962046840674869201949920188650728549336560604480624782747060958272393907353246991048446892097225934560789302463650682258455982447798985176378433956318894415854481599284176856500766927327613641771921621940800906919934911824629180633170802158346172342768361173360121742140206408322206513073222340271797261281366116802040773505950379590460468319591183467668821846054348224438692902531664949048889124996412356709001492681181324046815920441149817889961504375211212697174748165289452770523645390896313711048212159717124397297414133255233784123225966516843407159540145675806286182696032294817308542527218497831345525332760568620667678154508450682992640817940152077635969432291856632229278908508176901303332781046429623704776854258681809247544977086501323572512170406212663320952465276930558931058559159097394730652747684388793416028166754342920711593130551239992546067963954220181775168846971008044513754755277711369075453900767126353964151139363494346912745321188502982679371636184269124992779176586213484182152336342321280335266667067611105939070645419150502806621515585151987360758873559458618763283877380755329739671640138387695068502060636417973549172265593243773612150899358462320565387046693643863083045522762383293824809055762666114016152624472180584779836411234524845218967525107537506290089453585046669870475303128067390449333155506956687941097946885288367671012078828845330847221484241700785978576758248420583760394252457482753953438866655944931951585365636884760158413210790747259393568666513946233190905658982548541557271893801216177168888147272044030497469751354264652251478777474705947153252295748333409068587275535472278470119489018260176835360786965296039230197905625424178807523084586415887844227961802043254277793405781601178309461843641160687016649632336453879783046002788812220131014573549572068787432625890227247086260903524491827054913923724699456568172646934395795560538903764102191857437882806341659430062697831114305449998027887786145053967191163338986999205016594255414427252462182807115349900631686431772520310607137145247452510900387385354507562962508622219801892427634066433160007450110196602472522160837832263854380596473120361266386347898961251567608003692860292916479054045111647836944393302541993539737010280570705304925941512717985838988114745859888329945936600996073232545566293950783655614140708904629864875750036372985302053106650980817891600505099660735885073961881699078249032542137977825553854062693971590137166905033517365734373126905567421114583539246870793576647693043944270245619087993837637548154350848307394033430536465664123591975227661876827816812702970329768056230456608306253905141401515709878231908910405665638210725790851763593655006662770669419477264856680893848674878080647563028123784265111328116668426498878888144044803316631561643435471412142886162557999262897342985934483845687163975833107145789665175455912191916515680626415252827271779749826862264195796593233236668630658088996187340758466332369598319795023768234579050094467616224208356118791571245838725879634062701137711028956849718471219780259479771487091931367251553400635903512018900886819550071726983606806654669795091232814454247236853046673785969785306444342084429651242470505678178208256012687065415645794778018656098353282882866864343888721144172099915297075557213152277007425894631461663011374983505095292376098248341962574889351532274595014983122151361349566564017200105842808759598755888240282247485295529981918556851128256439173392591365446116964498913051878496317331771651557135468155992275425471390759842771804236334514277184006082534428972896418356423920595668462158850577103731135519792870956934538784819428756160260437814632159421647997770856214924910725353631119452711105348531021715885962175139551210938451653209281058866628368565094430248175894830009770315369724628472782783870125404630795651256227209850510986511967352561477215280184126505433856692508447044712941931539313649785767775057161114330234386964616903787467827938800178998021099651154742194189699767331289230631330636315175104931607996847894039597102512394152427240045109552231446069317131257543846072391144129803353599688941659518553402261379394689177434044609891731090988360916838525509552432920046652761853344630599270783152825619501766907619091234663821908346691686259832904684552553200244976194114757574943290578178391917284378743210921031109577857780772656596171082867788270918517680123361873299553124562880313124799834360582534933886577048378794980065212847598976752871392408624610998081157319023320635222135419908336191058883303880093229216565755389041219946933593639955025307823676508949835030536936087498663131065235666342183949857462455041172546161272470886613786986612531714726039045359248340573954853498567226690006435720559127829805601634799916679685285839550120186124542897980168251994921348741517310428306925470659765589809241358345020063247364975498656675667511926340290049223524037510730837757204309558205633123516258396788006828849540131552799549198805300053010336703237882133261654660084499155599173580699623020973469837744609200924811513968308642464651076262496760351241496916918556875989034689409447170289910057361122576041492542136594316569311132375032543650251415280217673586035705121353544806887226996303247334007171015890363292445985538045856309277412008498569225271344557410979567281182574305081694398102530765575226698184594704119390702037085218691742735993609105715142485014474568073133298667617417094971973078410997120213243523923354220195945667619451311473275583841677949363477925173827858630239490292179447734926144561914724390433428666071465444675462311745887469853516798711417903974155852668466850739983068367875219402978571396511869033006934979996469034027960230825889651933453385196867527252049007842488651148901126046576544536109252257532593261678071799598005177182176335370280945845418194458672938387433872696401181993907589621255760817611048695079261435363478545404889742011060760081864667565827762317766409336293237797543508729217327871147379094255117280892072342692208930833938024205968781830732319880524302595609089214402518055159163681946674735952366739347371656916794691203025995137390189117891293442238858202088745901935422059086359378986260097245121636558197001513831694420014250080317370251168287385484325775158970095136774164649299983031833895784558721112172276511209102684640524828671865800940979612752217668681450667960417552729014823487329743226822988814108874586903092972985847114201664661639655413154407756505456354682314187254808325051464173168129781515402561970285197908890852375008410064174675889956595430213946344678867313585415243473229757677580141326515632317159195513381860380500955318806211934600418088540364546271923564502082591673119717737538592871741770764634515879168612741533022182978030950995609415607896157995336806446574969995821422131739350079731075349509321329437476476394516146585441004730666612260740715206126166130565659093047352785101003565350134633734083903677534299843888734824250320884522497183694591988415035721608002496678030437473343657751070805981128246395119391301126319462811126038222503810338406923338970723273144991381531398230537117818452024519478476040912386742876663940422561292073308418253791187130907959233270083740134155101315688758910309759307207356809520635204106755322383176547991098908924994082147873085701821184085215179338572719293699031484577487454040558764293091167943048686841772504554518863410267569788490797617307700423568043859779479103122472604663760300260612026928337277454726274661104150879952179428639690418230052598562767996359444388399009066422221885359163398898958222909507695205816741765066718571979013479945024676240013193719299022233972317586616095884440319360925555476799427256614948492203777717293424502370395646538184482362626219217075353997803641379966596430134282853803719860992652981831158844370294597709173692545546757840390011183128675832557922222538371109393413571264883250981052437323800647124866836454501727474006297430436963280497404194499554403907207055489584814276001828956220805398541563056697308178963438401603486096784035182181726946030633107628576050499856296704486621156971574546406680395626962036558869436112729576559220564889409913343373368754320450168898356826968129165912122564282317116113583389278166019014100792382270137733164848853678386569652140048135177404632266168275484228118561256749972546287653070189772686110988172205555660126769528645119980639622584955429014632957740861311682870769297989865517113527795796772102188997648465544271817416239570253854569056883584329285236746687303337108219653443963451332228166539321740419452752786474629669262009748614280459260869065318878924987972118310670913288779514160637336307761465424489038023124968867707808855221031564533348245682970403054249032346778479290655322332633622615395768978897963491206720896347879454081679005446297760528895930978650567326846965747455486936316602163342790590249432010916544890550599742728727197330588883874583742737581597210087356548168042563010410750963443657589246900720797666841247681066917698148241498489710460656171207327590132151149640281856346485471717943808496947673584685970606118496114696534101557195184895560921985402708441965661720945696670255743724063547281869961132741172776956355325869151065393565184130901458639416254048178096788761742800989732934127801378069962088196676001189173652547368817987574057623606569408279165400128678314962271821946616173706411417973175401256296499233151468440614824189978257394393255949201080681594865932758973725409007261139804597012303857173760014316151667341035389203140567695892690727354922874401373089844074697644899130818049284324790268962824201422325952453766204669087392297896171596180179200058499934343644969895700257430158128746929290700686680109293788946098952006847492669408460936419780828126913277030692192208612864209647060022405764310547362392048976459072413336720894002591379409118703718140506212335084429390722084235583939596789217960953623832742328643371858901689074625647039881292400995505815068640164366385904347746123460405339600969914912266956127217334750536070780927994534422615323657665837662075783470081398429296019956166096570806465859597010775308028537250810109260918152636080332801881703231679340986571244293318819780227110954320034758347807060029179599349371060756827958678189831931539914752582973919079519008770128859576184911254026165197248685822146818336453619475670571195974646957024323963836767345519091944242970259081567533412438507513667776814738939176820698952149233012750748173967742798792186936939101292156569332285324250487584623077573597170425749518071128925028852833799359741495975449574216918614672301454567189333935501104256616784373987167515607195256603677417657924392958390718740118228517022008059296988165628404744773096474512091633703195605623004041271381103301862751334812741962066980602518923298222069592703891827341256367388672425650183530614700797832120543641488938935629524347368368546635800721329847197622460777908420657468929487746858538704926444831505103069644135251273503709447049093144472376676287962818206145842202487171980304599973263119019239093117371403774780887019521962149429485211996120765067165995460377015520449019949383797600504015834496763633669590651035019648900807738989639023103324222532179681678215693546747504698512973181087825535859667648065564080645384954198418131477623877416113990796445759787080310509890633961174813521345786839843260371388159625608571568100692076438704352130530224995171362429516601614269849840126998514556476015254710249328045506829851223031230603603219172893327764379324954016639354065225454435563402433497048321278253775947098648736742948736781056571076876611912640068601448181592203306280472498978741791502425844148152774838450013159258243793775543072010198793985363721261782959366786133818524780644985237309867842109405227733624768952521399864863723561164041152919510216318785847111587299798142665047262406392549452343436917044285714181746908558772065153532592595709581440859201863174628829174559895837470337135557528600394698053078668698697544610683415353311635237407864251346243383264567387869718976315059514268752195725508188674998884459723909730765398170811110276320769473671333284243930586631352547378335840841862096038825661925025613590802466535860624072062150214903807124441889016075830347452328309784837290941950914312480279391143268200211720032055951656602885748476438645588359727409389256120304593985322319386540600961388385395424988544803007838799569712672719687339361568835096292229204722529955861138993728551012356086385007359130571415742601334866009349160141825561888342145646675458114333416023408565391768528487415830870105960298579880543802995853215522258954741381867060415630235463105862264216139693680707710385756961877867403110941651771733942605090879460187304067369190262115504972560123394641101610105121674640408288734499359064491587442630412726975486413643018668440736994045363181885303042903445521737885524473027335855029528268340836417519208802373411013205880241916064975074579817483520800379375479449135211507346750612664749399441448914832810001797859716541808028116739181161935038357432902606785748114304093876416417585604044668682915023929322037793068064371072252266006926396194111605999504405523978217032713492168248963884234388514011559348667809127509897647027703639530051078447110050226633688139489534462519999121484843016673496819514764438562455219550553858934446156677476694405065247012663420044139058511199328174951289354992331389040903160161109876822663001079923996577802825319902601958034796067264152857387150863813556455684041452685792509912777791519878480191037133298549244719994812548880682434692887242610563793723500628752455843961636251068971435141027973428318442237180942772709705016192421313240460724608119317984099643482870386376476760491906498704188909369841352909420344980591942400831555222051482595187444860914736989430180191660853701415553535563505709124738211397763926741935890528699603493929387409809124170782570906042916775749117528318760790051807126453908895528349192426759400176012788045173647325469902487032459869190574399657383979697290128710439797833066387310061935517544150078954535012178588710011204369770957507849685762724824614607477188491916044474363534383796180866671207953589342745405798013843754385019518029912464665667529958410937814218424866390119601802885909812136267767643004461938404845151864445209576297831807649163797009331733033061128107562672694297458821619046252550503796770079081190473154827361563769670990291717502722413199658907691897081890274743977901226602993593587910917009172459349447256500868742559983566967307428548227197691727244351439215866744302273092666802649285056931931955542593569781428825327561484872878673809210453579347947586376564205926371057673541498005322213756624099945743132723070244900029709390044979821537917777139365481996777879750146648525995101393370948300140336806941564035271846630999739172730908125770880969168960482322207327452606836243362250451329399118206518947559767810626287768747663239624951023629068040267644929034062752470306932010369262631542416206799520878429910652964267974580356559293033439041412651681006779187576303114607979536231571453194504964645383329138339024705068652408821050012192268622488808181849118756387346291370578344191552911355948434010811736105755092343181589329727819946882937107322784525116397367003984880319597512652992538974406496284265382678065583455772386050650229751947326589183052125254182423902616558939436427335266190738311868599763561643824280041892926101913102916699297944961324855083552355189475343614175442220436404031970076614886528463066188120721559394562152355615113810212466889835381168953872457193707682550903550928005833573307614703550042565518886553418401047007430220369613558267702939343741289106325527941670727344831998547828583016371542634457514899751168418162221304134018441061210988171742420402090828316414762415710860248434979124963942233200805705425004628742688478436691859417745206528193035583300359133440409014983397333051658948004610204549129074249110886314871882516342281913756765079064911504663813427479478264675549834458548937883603535493841123755184280859229643477324589345752746576136992962506777024898075616879256065381149696748305936777467588185526970349243947932538138396199748778420851632682606765058624741091512782403946277732756038286906617423459065306135750457925323263351626803499221638974558353688840356566619826555376491052576260304674725896449137104098714475513529574304964203632531725471324080286792149319731854532803590360913522635486012185737210761427606132784089723520871215037822501835582175455034530813496858706404503062997007112007028840594018608802422903703624603790988246881043416241673246693007236882639559349078705114482137476539550630839692355717499793363874077482556847561005600892377342794717431798094388736874937796224303954304522895770243127772027135390869802753314049726252144270175825073714402952743610355092024733704445669742597676477411681135170963021298272763214681848786396715103477975573040463464854204039669838212322702627604780061351406733947617739548095562100486836134849368906151867466681316211574200514289885191188584037064115457372660532627856380029117513089386861827724368183260611234748281096295791406681426606526818717785836064528171248652465141640534677826188338208452791143417158953793190712011665696343394926681707438175014731131035454464305007185910072517243494425758051275524311626862692521318398399046895506500308776975564732135158397464227111353882611447301028925547996615996818044653292718092338035544324483054102763472008643764939001069052858846391425635709828639713774556703744717343138888179920631399933477620237352051700917568314718378341947657047775133762519329025348487227364897002348008174758416983533741636532556194667752656642378835548957492093999427961127803517064347747806210241369875902318097854988112513205072703474399100147576379658168434461558138260631608548306707209548839141035900528548821533018277772075761819506021405864775696688919472412977237265219702838574502211728473812819231105002092195610136484476573940363489195129975155622712308284843725890560145281389982705019383771784926585899846165953489512049089537125810269496890008136192009320028192317652568763616717344929351181020005488837032001661129786268707696327038088120901725900896470278544404836763066234810951002433553388181165957172830043031823289323453742828208039827670789831332839994996342900788527122099905508797251283241968142796574535023381138160456080055937029708915294824116496956460351533776667313603008078856449640246780656111798977280196677166698799795907232501880212033924750238352603904553145209122481691485516500285663509437301893585428949585826686888413605369433526304816689273193484739072086790775642553445266358658824448774334961672235142924738302464258279992104141990228924991524623158898938936324130996659005736146666970234309022939294224940909932077479406261668586914440362089389174096409007990656691057204780566837225092210395405150528567593648774115386146589590406388213009503382811812661207499000774489825330340089367417796731090325529061942331519351002961103298151304985592389875676844894980814450011390091276607229384021057046054272120049792828445777322835130329750527534305551966179165368957871352745649207138547799767518454109869829799910965638418718194065762439246744323522782127261914890277530695604569404607259176066969940400798383305646021545408059627790456266849631164333593235799749403351344060983327658988052380819459247462412820605692573052616234677405118244716742440343275497188205170284417016511370567090362192762642972394167250163202490465516037152060013255307659279989074508156666215919205612537565759781591455771904699240970050828323823631850860798515233756751371030619138382181513405360038808529964427596137874840199967307341775935306985190226381549152373960095474120041887671956829044968155580082626828021426188407887258059509439284861167256422444758465512983433572156088471424139966618999704704240962149969420262516093434468415731301763655602346015226462738021842446684867354307082523619637247424098254026236782187846913273913130478684838283652846131016526549171617324347884765595777730951520990772905866945884671058938992209017388014996839074294457283728561100917404683535328899244826282555741795694172990260524754181672064322479811392258686625257697906703230187823100607552644681870674424788202235468893889890783977810577603124987513301709435329966758926076325741574290129858587203464666541052747068808956220171283151130551679398943120552667858399839995453080460509515999678214276628871674449574207084976409437001253572183631093418750983620271983250183527079567472910581424147047902427045078130947755590759438028911956955922842565883421408480683750579640826077021863571729479377865778425726614800931946097144751427925739091241563924302251703628535386485583510154179039166083436378217794191619515084701786221610163449513731525403128352990759387623757247530442709029093366583601029522202949886868701972099718864313550013885013017096157331788918547660426740770674107903848680818738635860855058787154775774949314095792308627599745450146737953429443907022743926646229642000838564275075975989736227819521866441327364935417096380457959322902402609632091545535231694408394360825627127527558048113796263559852600317497888258456867571331043309486697349526973756365111249069960831590696216635546556762783741534926531432458071347554111908400429546365236835260163072178228867557682304838192036846060803850997074409612417630056953359543266608499273889916569035401455467391871855992506800519043465778691330540523711991174064677424676444102700999367678771924875220395370620896466221216849331532990198358590008989128376707203328039688675532931738685302996209702711343606181944604370503193488085620864443621865328395041361980213808372601604112611790437934361496557337500537303362047791084485570067111976636863562776340400582998831148562184805961893079146224581250189365013707358473396904983221785097744095133329977794017665641788839913094660916447365385905885018692426243481651028440942489868090677837386072230230817126491634102114504707549454760282641096128590992974237486363588655701681907330571254669464448679383054286001072331977089203056426113548914660608240290746297897789375853259833250410035437506633579294746013352520532959616632285141019696949172814047163329650901093223103233307046422614785279575513482785167799456512650838503265648742963877355778642507298829348069068163718674401495317159031638308319084695876187041357518897711146506663540511539486773484321858640004305874264420273277468289200234218082591632258021119321386713721645104267463352832430726431707564813343898018390041201050769834603464780032467075715132602091379072873726511766390269139745463696749875071173505136909877821538336896998442894727006997047270257877186418696635501399323956853770549713365294949418753948195985692765016102196157166046625731887078045319844528551711291054129460854132558868587757803827025301441294067065077627644278727597933680172845127038978973215355832814009096560364807605820926018346312935623146718656239277908758705878598280294065557122490940787650448780216745173664279838647119261845984163892491314473537147499795533465986174585110764598968487932701130653876625603164533188601876628358938205126547911909066202079294835959504549449944871969270180567934452565251159557631939341794552557227640888813544585007696583758848839915635991329709160454084100214709939368821291296769087030969463593991420298084171858093019847515966313810473094305530229135177959673351544378036604295207952218654738938363207125619355027394480937954849759772650988110931343427900678305648480372757344247542879562179398197580883827200290827481469176223139999196505006893654804582323296901274202359084757130710807804940339408202782477623654144606539884432250855487708311274376274379616829472654050672624125268775806487671840034573477829107258131772196486707841834221408524989735492162198713564301487857816921940217346918366540432211442485993467277429421312858207261582679923229189771654488588712133028818761647136579958751463413086213305932012643736966995303035631342040878037013824734651495205873967225684256113901178119434281679990294563468371986656936163660189819069126653412416847998169976019218429037037787616414688695552316193485846322802466856345918392855733008170813330400146415741171168434751104835846744353886912952414457433298594710425408382199593306945394249781262324877456522619546138879372843197546709331705010154327675878361608984594669658550154128189812185001647744749331377446147450942686560617980380314507567684905843874195831505896712329967229795694609767691536902271730500163533069890943375664174618262328523750943230198485166080162754608046823021434858272389043499035012405497604034878763798328643911514821324175848806103387684827653230276608028347747622375722765677430226753442041269769318655652004951133526341043912836880781091771082318943624313777053186795825007870992164543525727037521396365633320781371623258898433437003027759588386064200164906728819339021652791788375595746721356260342601505357164491231140036730333329491567023049153824903357756102677940462154019295375874519619400418294483763854091983050987286064432635873788437080462740383186541438925571700724008531491802063692707315168707663928274630248492160634782298103714925617613974619721052795160467695905982628877011646964453989376805033375946741240795952769224631931771571176825789075718313974102139737825920189891285035401113549639024393682906540664788408772165389626379968489412129845482687724944368225398293064466965495661415534061302584135494149418607252956447105591887095985257597681446237183793589669439569624314073375723353813215474918712930124019926311808485811161346296726361728113063257623700513771716874097543207804008062832131620629026500412591606539748890348314712268984068958309131540971638458204108542102247703414393091298793568663702135218867258229434823693860317612519279431575339946775243527139251256801188988559570355363082209276296993520520424097900859376161577420878090306267655331702224999830806245478637618539925958156706619158209147276066086410028869305110342354934774090338867345732450175591598617721785591151092176835486790955925505892090766464849369582565695507382783637116892731588997017124872754154703817324388489401635312281012985438604088373593955902363803120020919692837156559905382802390420190150297520153632333538793432844815100336220311806837553059513699047455762253790576451401051255242914373507129196343232203245583936363198197265106238877075429910664363967211289967434697358112511509301952216593791152445418378963578241424564276747138176040017323738771992818605040225706675720896846972854997724606227033538670625092093606456276037934439299531614453023534638567905923496888210594934552892224254769356627059147171301613292636427111451261410720621924505920579833785114174811831779962333790125469267790393196605176691447828684634321008661219945782099366020824927114788418794828038898387778461668394868892453475799988644225504082228532545100156492575931643983290260038863482741720941050613767324955416764884001530380858891484280828509163696468751422661402449854820294521391568424331575540550445406750602155845187909811793288588906535927421786391833932551935755640976487977237755445215786075489106933847982861987218876746701704554846606159707661333513617411251660318570592721590129030096714406773538071350882226146650586911013800710101672333729523849027118450134732052377108538486481312788045779660778762091358612189937190198343206774051909214116228861993938679845775197736841929263809049981564399646665940114318735909666854106745285988637046247189895758358622430330453376041612567513211932025274691081086365112296902188860704542795035843565213596840689964178751137102896894485734624607029248884064787697138826998630709400355909064278335909949176901877685710576257865107172893075797539647455494376889526467844475108377160943742429554463044397391849660295054286508605368875851638996455247169722511711735138421289405738024004889626745729384719391250136186320587981295000126674543309913597509158035546726786072820376783227345242130014811011538495662336960897261718370934691466170507181075587439794083450985768364864820358994737059997903092459815770400110271963828292455946218328752716630565409273883187338580297343865709523322328164763151748016230385334292880508491984139390764354829742668409400625807334323408677525395995739439533431287629715748676806708354684892417592132227476186403146953083806316054853351673237820534867419798726101364576342573248004118175843172688512654891488751652915770963888251467618422012535111336100308780858483343603452437525286969868621289767083068470187094989890737280379273199350457081993190585799920669889022514098509192089028043789731018578694249362086940580518035197752378584248955566052430454488570006150625225166439985634236850939981726610906364920968965463351249790744959014405240520819136840877047923574028765182972264578232324591195242525306673875191419501977570711688962469659566825372345996718865575538791369211836394003697289711231919015121324277938922347430618590114180132277141493506943190711007999835157465637300723943734202429257454410196055908983034524566126618540264230092371223837863722968152961221495549662433453378440919461028732800666505255409401272591836502476865886367067111507114841404209875381984029123149793332971327037950648518864727823591227974779429047192815148297736702864485053034849889694059875168277020764461723456510750404594525207889036852846021441219291930532446463227310614990653664748106872993518971840864708867943119993121992421227683515528032603370266570012700685066678184044165320862639120512564220753956740564353077669857531289122412968086481754480204334106173527549114932597266752416110644362242536504828597352082823637914228402206174429346839467638809552159839106148624477252230159655202943190683609764146975192867361676672924034980025047910318570920566029160737875510466875901286657829864991747309321467627108546407169606657609175941467157530623888570870064238530511526161555450525951100206785090512689529438931887322444447936614543964802724432699689855572898522983347008331534478330795412821893462845894732846595057486071024330109251924216099329749653582192776068271590953453938722357292531737617278504240908248541393800847270832918862264570911019233457781293506301419375331107104202241858783247017175795853564242609675602740881596555540522167208343600956300987622938810613646140013920154790009793009203170442855285214641885643759013464517294079612386831231276366711993138377621595643913992108847385958214443368696466534084049153977634345615396131284824676768816927648478289360246559798009756220602780211795456962082082881791791296959478912273067206841774244556598694982556273277519995038766307387394717885342776892015838618269930434767823000352044450169458785023877866688995689784916460964594799921156094112147933726422660134807779048597646463797034114394787801470786137726327569864900638207838116262931478465862061853275641483937180757498886774395404510163792407788170843418565519975130388557572361727939337179434851545620171945694911469066515461028653539936290179572069474102652670310606215143351703951319786781263979930389729840830582153394511322684748450999809975801431179337439575284543451307375322414304583005858535737391823036704120625101638158497760071281619963936554416122186696163696062424957682701342454556645420925002430932856226643363775846244236970029054970415857526112849387679519675780343083964989287794262474237632568992750199362495106008467504921272761750999807961355004309086706974288402547549938561273582120984454595427278680108221629135652551516614058614231268571766410458728961672411464839790652416457723666785622376328825644653529966510659950001279060453451102196291873622517566057982571551028311516987674466224621810929415090720917156432151978309093308794633000441068978825894520135063771648338832457565043924107701748137926867325688439280680354442569177904325969135568100032292588473073834457143833369848958943303160987826121985448134534861219131156344670480374687613929286120953873034368568606352047971981380512123342853052062134410892896668528971726583129526126776882098506422512165579721622142741438077931271836484451206071938789379484638256462875653012523127567681181028345916572594231726843017848047362236270154188539105820758324684697891693562312641646374202887455528444483355320686163134848945300156307230176754104912771865088073049655049937298782344671160118142549368623531775803796240185855266588599400822497091548345603281710735386610094047548912828771231902213231036123507719143126503501781322814389300951327831147626127577488853898914890348837786218852666010732640636854520684652732622168796746994242871816261115642759044272706779614566988966197768105346010558624670488913731503507474717062864718891932202491979927786041136844941102292122136362570859613942163417978057796082761214375527442568311166953264833852909700760737875278664847451207194628531921461771063184010071304702376842910121045069391206769101091184544900781062196795682934609483749076071082965011556321139972147056343326626458581261481838252963049381937605747201760135480209682466185984268317275287052379126915891177536624115833152686188673113157893259418689896247166666361617867991116727382006672867743071919597282174001182319035264731905589466003677570487224065226565782137990239171697500478580797925878955402672384888261349834816038222003406977979435741194751853496013136308513699898986819565438315814170226230748760113319386179185597524751947326396669565600550688906942041141495531485767284130184139297983863344097241462727149001379636120855958960448598645026786551702999536986638777052337933307858974300023240010587329995608560622437433365842307032855223480937571444080152758673007469451822776133167108218873283529170269429468614071356620558059969652257765865868570758252258061906351028870052306274518720485369978047041265489613990328062936429827384573515939813504344228754141913431098246231100582804896219487343425923716800417791537727848792003418716885492757053335569279556844952621062467389839777851696025115322120027740936280089754075062857765014368228128009240599685974051928137539594378885467064237317009265079666721398846290106399516896664151277606839353241699727092880317360897218847997716246151701779449130770135890561795225560602503601031535398661975492782011294874319239091476440780363530355505469182041635654721613940165019422813721226974272557564122579570119139389784406547449836821914632728218330320715921640099355198982613454748870117517212560198421340209193657831813600145645894147595956475466145279767529407771119212055489793375644345207061237103717128613440095874894090581154508232186560882021268288233299379689457836655142842771389738383643311535238962518055185068116298852589938404816676672954149866921850998570354881430188074702851391291992961825522300968698659522557170138945707216356298324737666718967309859432008572295421022420976393469825551201267274849141395099109475756501972635373764582883204060481124707249354485879721579270289331118869601634670694743342456398662537993341572417688254532401559908294001441307576094137354669205028985209002963735957817804193097483919939702740893231748980056707630866284210203065180031614766062078255534511326871543991360773561015444124807903429357803786690282704420208432140864107932924806211153016256266669537275461502175650669300026088622117910432438272068289788461884631080501190957125345013867715175334279132486145955763238601700423309404371759297229052846677772128176128310245583765954183112063188531519057883694369234992132937166635716339749032812646829601676961084285772369132979746941177058121270295436583429646753117826752702260716350514498808121907834931349588142363845751595571471863729186886819470479293980800981598921716614386557111096906154760039322591498476318614191409176087601298366650265931880195024688106027040664591450745611049220733455915601472063187736814079912044009339020181134080532560564863563144420097619398039851667202928177444597330797388830899845088668825830459311064669876165587862438076336874403074157678337444920764840179799571546887418127359741342828232547185850323391645937175422349891190677020272704085426452354721628715052097435939971844776439794113796818924934052952721730793598891200132277276431759237068977832360298120749675189486161974661993828226559835525539877940783879364961791273744440157117786413636822294702931178329979556010237476089434890485650918556719410993475842617654522704485869269998615856546955742448580189348305156904916663843675847564451470725962798005670261309787894190868515565068357743827419143137078413891322681975723353586578490848733374862642827622725521767015181860251295558469758072638888767132585757938791377578391870501196426993083251171709601155030865161116663869934301714435351921276168111238739905784813889945404518235434425406946563586093476512393439897251346696638069176856559226903889325233638245265996232266743523449212045126086705027512964699476350635321620825672068805154636405434758517791245225896732474664162540772306645143208295203858128542334020245535195158796455253155765747398103977038677641537267824652356809586674892896783620336052520103215012031604830762783695530243177760809129557099304880496884258374570349807442077820015595975132073685888019291666594879269293308235011224210623660586552919100054765307496170244889132022050954607314934053774438296278316919150102716385941938452037372289019472328025200856792991161905976844623687876016687111951486336648409501355732441017471982346517295977725463492935792406956242708167722569644748617448114547574533086847956139863021942752508533471223009870493338558217929544435877972118794985386683517581435975897936486009185143563338480421373430486970638343554717023873805935153790629280906506900968726335427091352151221689646375126563519777117791674032960618417521101674756631720008540106146392761880285618134215622000242412350180213544697559105121661811562100911648017513039894997987664981309196937148749041417403812932474851820544391372872438668797402560539805980026906222541170721427863236321921200977039925853609265862209736183638591167149800515656885424020718851555742617325053251098240892838054813454608889553486822505963425564966200122440369549527428851196772436393773495294502519912108770922869500354573971726805526101509647830989218213319439874119592604845069977216294117726916717571423874900023109463342943551331420792958408489846770228001697616844132206139539368791143289086499149797283839681602241285518221944496262784792449627227390559862377973684433480469369185748237797571650189725576597366780999309758421218233077509931452161859939055071813653345380324245721535327297832807410352835588568683793693151625717113224496143121427900678196367252182168821866955473564880497583266304305190539217113992415249966415140069903229408424963093929821152362237003571274927231955498872103648276269075858378859432431290516825481636471536045269317209529240740662269662320553333744797126134168878107420929083168045784194476486526569345818822758393576593084414123178855808188724190167316390982756880083428163328764235354564096702795703664848462726480862730177888916896950354320382225668341259275183305663152758214145687326703495210474918198258312640947927596178650873337485076785957792521604934814820827571054826471047066629304108320896229791909391375887269304452623838600401930421518841201228241966322716007736897203966533781964351399694822552069427935385460810209465074788429626438985978342344216342092252155706059118832227652210765958120418053169090228054994228550806169787977917905791060326303060668032809416676987639965998076980468228741098047981397254094972857594643671283527158287127290724535690070286298101993611444179816896671615109044549523050207707050524679016818586126564167695154937457406137514531116757144123598401325494370430348330389670683151498688749848009814149871195416380417263896599006311407745567230396103400802171908155143186944953026204239711847593354686326840035763538822179748559613122930747113417874031236254692932434230085643058818380929843311258680189756976357074577693668132101446812441814986677843455378429993603249473330951263855620171313777238865114791597958453282716949094072727634774866576565944746483289892659111615461719402479890721753018535244035799734761979874427399583708659471106379906621421937626210197613684822715825436820479456311461307838489712532711099898256208165149195792853067951900001805669353067280644040809767094341153085520091659790783546619141690013033864842115981080646716741881040249254983586372115946642846739425003479714621122992154122935824411297944564435741838709346890248999715213250957849636505712896724578011268553588633106945820144594195031726679177267102173121640235225172508129797226769046091634185838484181913578367735949305630410888897152926482692762663443244420600645652262639109902893691928610176675541052434699718453807152949439466129036137974377340099334693377974642907632989783007515612379778788887454155431884462120727845094137317784488291054949000629424702567417461502852893151657087935911222100557841746110306798072588870129301414759816535393681954521536362997176280141095734952898863156040212655150569302333052816051826563685100473516853419337524567422020087361355767323546904131941691055058245803163675142212787162231442667504889366106371809759493250010829463968497862847653034107948234677794839238513093519495158929138141611685518090754657475987268460766872482262102250591051216975363465293706604039352050032631044480200388896178568598391052703870994254351519265285086467604764697349516754855278010089940470437878725839392663393610060860891635126894093792330519280121396624071696422564284848188854335531012774652841248595977697749843192340286894646276416318050816261717161369999094788997167397303310234402232629124940811592075005424791826934128766352819822638792506274376287314898765181059214151487690894959909835790101859573093268182545222553397525703324656727750253404041995667829295503173377614897240012168966175576132608402868640455208851056390615670263029590689762010498436199108830711451984740698737232673608113219422053116571546462407527121803482672536268936957585026389267865183800796295517393002426409774152463372948137172972381264392662168031967031690915335366536322086837641890497159263675654250118692636258133192758229500854493795316466772669641832207146657199432832337729908034615420193280442161916064765281630051335018945238879319252896022469799252532274335189067097499518212868144924146711309068854256788576680721854725431775755909288682989643681275941909608384061276716284070897805664208562064310972132534422485129949109174355024050319979982235737180915332409535387228155335360305481810588244226070164171845533351062754596975534238881627869254799189143632212093260676406536208017917724377835049485836499795184664987430667783713081677267762121991003370042621446722916792764745092919897018385119226006776579505750320084465377126977498357710974494107251442965291102862149739155838212967557543022115251551632137706882755272264746046933184648962664887316945617774091656842028526425931789788462365140352199077683741103941873067925943968586989250921308202441097151762892678841731330160978056733012333349992948677098940273597676585405820306196234163244850130705100515435677769421529348987383623627503167753016918516958103539998760344084346814921535130397788102898175694048169756541805188579411918045798105925225884549227736704433868074124078839252019454053913080177375022690578451840792132130717578745576147824531261002361279466920378830433993960026099851277110848990907348732688275331715747104190095020040872123205591797515524387737154829745861038284459441027202199922060961749514155287758520434405701765900453339609541336800595013012090258631769579558899856451069245487856033462730474760251215850965925866170303058494920956037499752073384514478438598945332423330510637635395470222880791220690451678683678686625679298831153702535414765557886393247055490950504093256771945525959275498067586615239832308412155611313838034141008941787427055809462375832503947368333258349250282416200484837368610370611982495356076123133877830565216311636069654421597574214589771162147875089212067433548948216454594478570990479518847213349811463492254091520538725483729889155954476122459400562079643990777172091016970707539138784337621818958149481331817382013600872550564071078043114396619271823002607152621239494450304178865320081380187625114562352388525128306472021114888928062853000704069928454013687872144433853107388428679426559855198689631887471278105653614163715993227175217719503961151260345873747589418450651635746988369485276425230354437361439226803545438504578787428730937068783782627227209775454701745421394995888006648531255185572251070261169422508944241706817024971917021123925781684716291942198234692792810161325490088903614392466055639347451641573053640798753624130911550633791206002176664919746369749689446702245573440751293098222452729378096022538584033950643525388304937570935848832235096580066200292016931951038371597462575821784918663249491869566087015655497540346661861556218868386715546348593917642313736721583283195310691228561142032358064804975269910376088392290127203427318388314199656253375683432865616775153903295672867297430909982594472660616592538687446912623367609003441188696519489456151050740048090657350590860556686671708886662300904752682578281469928947652710188746283773705289515393403315924368944398755446782802103484153555746034199419391378725027421576218625994080416893821477586334119598418184614480941606123663959838769957173970316808309375286094610053667197214005051039479233979519737536796471654414372308454971033119781550392751718898266271796203194458759697888721727717940234995298110980847044948974887055491442369307602447678940718937364001942296787427403485877615372004714751510888402102254712451869042683114297175890059617562894567914032531936903472134458737817739357025397836498834575624583895265283514499789337220741794110032379253725334144349205124123863126679528243414353584985115419823764535705082657924411995946736470103690382272186022309682499059153702857323402217746552293087616901832066796013063728753834839981534758408154251924095114081451505150586565129957806821695070000367296341428991483740708597753735477001914484192547954920340744613977656755414625268412902079660254864776824717342569107151362286632393158039459876142196042163120273267626146580317049869928832906170362765628333849383559368464181507181272728076958840508497594095662379051356612540699825041398520426703623675138628902673992459631662383530505915642971246140599063884298350409202190020535584724646971008866867728316606324202136794825605128955304409623992625826365592637748045495679249557875335377367333620831210119308123983163076922666747518118392801651332393365062096085954877157375071609585230134660188781693822514017896000207717023853902745842684630208417656155493881101582731876323970594766004167769831924862281373373978936396103863512142765572046903385460393470644354068523179506988613290573082595917668395532278791377866697551975110391816901146540069316242936386860746524964090482517164929156902886952791549206667386194101685947811139528330739884991466243206721082940762119486323769219677309877624484778127251869812690076833704326792716604681094431783936244145500338186272730039098272009537806303409339603312723094635968276994152973357806118065170853802395561087914065658996370533199441112206567308132455507726797842503570759324609933394883085087150531772166589816100762981287475720263718277708166750236043479030780167415681913965542287378509839607639768711825329847930910157015299629523708911202795877941233176911569499111934040619006572522148006932921348365070431839338810546408052483106891036816147663865777634176900100028649262877192676812629132991678864135289942970075962436036906364567963164312608223406810291293674628823824128675702651605170286771785576543590015957813713966942398260498455668950919016708204475765575017692067027236561720932819825273237173258359983791962181891245595516112980486820463530543204105517722104518088333318796798436314021406626312715777324311988576617688201837543969334055478586504582153167901611344301338602307368779102019765871104209552653467210795724640918317169560112170479363830421912730713613297093385407957067168066592293402209360401581665462391009197323572439078477218854726678561287620514455893190569533644554166704246936194008743764846823971025504760481049662587339019197343926579429500159806859770728404215858184833829475430732378134651009834805758320907665506627625065516411751134466177472750709516246585572180325448116947289182882928326369838584402065976113021262814169958333453429457605835032208712536190477053131883305894722252852606630575968563049198015058339977906478532912711402054868396899815978607099954307873406636088472211794262551179977190720833390546025590465913673864728471894323358417801043813436763715997137392337214510651692707319016499565184235806856317695721930407498177434795596003167306613528276159159093278464885214111855211905392128272554387877714874969560026807021246261816865517129596996573744495632552678916873043929159150075352889152974860100866076017479271695456778112834832012497425705141382000627678693083834039508321546860270607664390739125407913566348973791644762363197684579593079246327370830303828317229595529336710979125405973719589214289720725849784500886408650069228580751218051682938534830398778918263874346583883092010619476063348545646850073105447942862540887579778577548382391222266985824885961338675329660448449544276206143479589458505229988606855161152763575570431631721512627100818569199358818975267342462320557962056984835279076590422768767716488142314149979637336189646360791593894200305469929290588116414992003127789059921863770475624302729966287226870362093101567805800389989708118758296944078442356567471416891127883433797115921176930146872184460315849772841947764639552242197010573916808691109444890871087307176024257750363438497758960221363829235584443356045200221106203214421688637485168506800492338785852648134431961225851290719599907269859528470459954120180036566683809638578072970957374874531497217866441932324876702032348238573126218082301488222676818898629132139570086778492897828277105557117705409601917375334614907080062451928899238059290938839587959637709377389757074924337958942268309973322972737528426271464763910273645953217211839598025261166026108133247715334557332393640268973901791605375122341143633397337959515992671660078410470263605109739933298940694588498200840689653875548792778917657610357193878636660608555405404090159327424131859250982388254390350189857412631793185822807852107894197017104447397169117279018440245305094520137246900883758843491736208860057301529408406177474754130849371375641349520144860434003426623759584964628950164524169467080785979495824598696101898211831082135747892641104878434535534938789754233515351180116375449782915617511413681593818026003137579796634455249853052134704724600017639955827807195564567520602965375003271528045332749519127632680740868681237159921065095097529217818109303105882713337788618733018458587160175929781407513873544274595711911846339209197716744507419176177555763350148406205360498289970408060010746065905293849348489435624150270682540595899387707691700168582890965162946386901284612386960580971794658067759200361614545455832163946947341799773761732426291659422093648234658532004695619186077612002352413729007072043295855572801972419070747750061732584675115067836776022715187413564112388087189448238261667114996537467165846256166355347753493765822519156070071774067632589788426449529813553034938773861202342250645801862373687778688909810601593681263566652674438538501283486533723604540589257317197249162230733517768033303264480892076767435605958731861105801234254993823444021708308493611770711569372708909786353970498653054259061480583974751916271179715272249556318708761671743962360716048008395238407191171897888230251767911669105076279497640864092846162391179680924012784470051761583582826163866862475683440709441748539233074186207171027403734502489378231093339578256616885530484351937377141924790729441943617358461722108410539028327112075046040163219543777330561927633620419600104515704072349846016048007699203500319664025860989408879319126016900104959883924322684855379678201001370974243348614907971180057776282651096541652888240714656707469233835176722517905218927148379421618496158426250202692222997088345327158771226869264359250921454485647165149601094357642579971085217724265449355391972701961665996941553586362313447428929141168271167061413105327853802776127951107751715381790480607599050603248648535164119911863869532010168346246372050132488632634336614079090216147943090549290021835052681558314895682590506720185517399342900565128574215278849947062381544484623900724878757372196998701289012493595461009414555966389677654160179600081742896053394083314397332050239878233311301427535182189865837711981284186989644937646750715887163722785363648407904053077449165389102590304676251201599559447490052343718782431343778949781730596793458409418326670875951348102589645939899209654771530876922705437708407244849087215486357884650174794285557631896203432906973455719253638597918059982482167868192658323516008066668357850542548060374268687686385137559439693589375636957711529451596262423794632717298950903696818743604715006655876549366556201359236511650287238898484423455312654620280478643204718773062822485168730543492448892659968857156837823779994089079522402811430989547844666019526162700939822748864453187463587978545666809073395750107156085653999974235358226824749280796877356160321166444828006499506614009027625503289383906561060328026181577995088227205029615618601025492267988785213121969878710928414442453452780972880043927939619950161895178234297567233075414152159501386446029023409652260978358907648509211492468689857233247327157556774480117623641730680078047632903787175695189062860508207142869924563984915583946549995540017041502465561913293716303419086192692136335422828131454884717394735798702752873239580198421101336930890029946266610679778851787796799633736124703815467233645837913202277383402259445977920999481864214033323182017464548378567433176552605816201266442691755830875724835208167125971622262431275479829226816946458827331899508484266540763322890399723241337994014858602865326892454748945177207481351301948617911662626571906023848641091287795352308172867430054660496134367835141541789929339005137914567626666646574755166710315171196370332979729953870015665584998428892565533688126254100006619436880638224931314084256650707416447167210774669443769453473544144369360605125941801700866466040481413388922542374331274073125568663986471306805365118818505826519388185377037440059356613480349343667987428286733343747226174485972568728581798487278703460650948609577379384266852800900969289318400579807687554518672600116757806110580196343309255319508714902362646507695101003377661172084329057982219602872514264170536763427010099310306894607074284902735105881389778262034134448308911872807436841273549144018071456661769365379327437883840385387138304016198921867144805412680686521266597284114157275742528545762450381485597551310578988563683473474760997301479842252226493454800840952120774132684321121852437021340023014584996770783750438195254746723754302274595796770116470772192552261021996056261210361688174744171809234706421678926906713784797893157190866328902912734091505353058755491517551283660476656933499521678778262437026482952971450780560748236802699095664082065904206213369252707860579143886363685450245849204409672124833695148536482653265511379490729958592217371753421962532821879029354370919630176431550191451548211321625456968214632368201084961173449038550723282700028026273743861859572164919347957182656430222233247779092385278614399098868408773606376689256704248506312592061805537268004720154670905900177561194027862943309565661999365704302927130324923456559397268923126882019301786793989257480060683440446891675126736552331504823283295951521655328249225714924613672079399861652318001246920878494211682670542431880278706109961487026874595294602246372675615259176793567124756527885862151576727882393763793572606691709545193315236527201141690061474726840583311222069067953058180659216113259411528182199002875384584604304160474232132721663242815726533720272969516887568839427492262724497123456130818504895221579635874368173672511209379019177014319668262667914115420229416872826604081201590813001752358821364436966004296506914356420900489661864513404554720252918154213576547920380506325767154735049054836241395503452834600420033811020325221234876125490281003402035172958174545857427255563952631449305694580815649252466289481622049999513331631830540255547502245305198639349242241130705568310563734976235247034975166117250506218699580384265122181339789079503165921180853374276927274907707333682775301024902975272120819623382525597002862389553304923327103241007720443120493808731495121272225641886598216681850515170404229497552816097313947055766673145977119025752499396555252632168552830343379540893776891936103128986212743851826293073497678778924607206945281823680618856966945866553218435307049931011560880409401842256612370997047611551273136150907428805344428489754331296137838639743823449746471145402326465370449933829037458945099793383441012447523819254840086191988350974808665256116163265578136621123107480231781186302155973678785704197155466371576020666063743258061317277387582147126208167480795188041865519480097532742058629695336361156750622857554845672820824780961835847282096700516249459266518857911506541134732859788258868050360541430212559218454666290555189244351190293341213090228009667549346573727158451907332900779059499629025066994063565302406201709265988666682304248754319842760494511982810123251666658813377272621458938234146267944125735325214944923001424984758629109221302014404315084272994643487831194707587237931380184163701536335459301109969295927546747367127052509737289966436670108246433976373098324749645294265476650398610465358369772100785095579169497444193290786154264654054719015938609509655301813643308932649379354631763832871503040349431318342828514408462779402152428011898317113620202657385529189602973636551876444408262601189128177898637749973271889809167827806803894739172362047727841144139571553316095153241401263374681187972310802420653906996265969987231601260490760740358934000787534542988805539916035954229499888388305689163477627640120680524359978089583526541943689787047839578856108965999860473465563181606358898654677437436763257880473193079043756072347106857645896044552022755997243039021108886573592327228341742182804446214186601923158167370804909089807307626931462967802839216488254891022017323530963844966386885086554061694803771979173260423783215670245032730141537496798829592138144790766695002210661709133114262773783784021630699800354526826420183484143837058908844017464720259394118168343459166588401888011316459359735841350291767944050207928593805454271877129612519664606416351897564632956489205094317446708258174305915532544631071271780533518578686549538385561214939543973181209732954067861774173331675985036044931767601467959354755662285698017930827322740572401638665030550543436756997784797583021170073487258490906544131562408827435574790791677529190617659570361989005295229990456529030531466194017257597850800684229601832658631039090119557650074681231018325612298461667019886481873271591294307829910697152108520245043654779973952400220551150215935566660053618801803582145667704703717942485028864169946761335029558975772243219898703960041244422463902478412967155338041419638369958966437588234998380022881550156453700396881281885604963565892442134153459996556603162382823774468001051123392380208138742854802281294047679346512962243942770679379978968570036352672017510167604233536512579077756029455182353499896398398250695288604817485718799155655304331161478406572239028647107718773616215105651342584512332568507957147429632605782545462534948565331142270693526646122868239390169633357784267322611008752557796267262450312948952073963004307451005662155172227796104097078230179512755681901814977741645042938950668030010527484381807508147126697140951007436297385767056511429309953337973643616977317104963325876985293798337993693432816043916274836801966082425669366000606641139313384480642440967061690842063205060258307740353827432927486124289365633044731543465439922757475979423224316195201925710614392935815573033261626722209966783833199415916678996479643244682101258827245038562146993398225526116047285569785859263874824272964159327748218454852061097713835956034952218314397747161270788497616257702826059430135107325467421656669828897106085454139044294208365513093481694449587208215029251856721285060725583206088174520290296795744831102162690194736773621186207464117952980601681387078131710727054090202981399367249067795535008199965645950955963766137444627579864107559106687847764722759912523944318284604023043741961939228597412933657252370310256714137664119580760950567543213386478116764380633682836032487882649503290205467191152248006970402040369167954263822656795929317123675616072871953779534878403056092439312343572877359868119064397084867497082466332860357677806907228550608791034896833140778611006379186327744963152955718448307414915327857934424485599173652337242686230864090250892486608556028014870582396960559885354853871909128967848243083150019972971582179203083453853958586149515016691816958885655836812633317486371263603827362825070740067527375228581963114980148618978555285344294237517891177989387546626053921181168862752549309142701425627605639245623963948833215998553332972292219676424719548890856084918680472268538799285815006347028129496990853940230392121939984523374445987870275258541955262444695151797179885835654864685238153309826222376613753260580687246219753369858407638677048969811359529420800812697989769791427927598998380086044565209397876267341677824642984236850270367154773996614227455044838298898911654199650161688766367840738690588913853750569658193332899266876888177670275321632796830358670806106240288567001914486675516188577895775020773430057143746974828084949242030401516657787738136768030832863198634414959297781252102656268187331193925328305356160891212346738646525290228868312166428146516946762285335198311655998663126800572851223781723893891550227214434916905607567771794597053625439959329122526456276323122105253302619718927989086137535080896251893232206624376501970475395880003062458001928761687225476359733407944899054934967326098091326038860135492804942329791062774319862584463746707807081966972226406634248851486325687360697237757929113079783424221831721473602466850463439720096656831103318608660732725893554665800932477838154408654701520612634253258798697744726257184968359926787005519974115464466923683967331862026370466626539157290935590377283608247632965082248887246471923359111091017796735252018879007595220991194266311101059470289549379973777293322731838932983174659404016726706210712216649565783324483222762348020556046783938273440944321114024728516382402018694506198880642127468981541440264514771043830478643036142084636988082262494271199122707390950963662847477082277438776439979928772370666690625098796607059710133469719849147619270095246215863037005091399765221014652903772754027906134020479500393902809330514694010774713268703884598850355320817656461254275137408787410939210314625123331773018372524330920748903217246704737153600423025808985991089307483776777578304626910614901663033609147880584096329168966111453018682785315636544462608511059689609525347615897179492733266703650726604323583953822677046936845864792307724299566195669102450032618387331320376445540607811563421673430411808094019314471441061367082359743684741529895092081486245815978498396496921105149192385627741640622986349893611941279097497778948972285377181917749790817989292249039544795024042101641779929783787419981214020842721012808920808145858435110028079992450800223192270651501173747746852825790806971012987997030891564431425147298508267499225900529226990500794757015949967659685720243347568822307381963734334043124538937142197064567438484710165095104257672855519560851885436448263983792027658322669384853816016237936172003589660686735820930623884769557703732523762089583343587051062085104507792213500656444068167386989218775681024249825837988937697471918079654748407299121277036493487422318405958204968686628240973310821097560455096098133670482549609030627972789184313029648908006179725211522518066138668263444153670863315372491085530331427309863447885551374556571177899191340185343667233465404028297550320916696624280389760291434821670743865064281333915971615836047870486592902553641537579442264587156845022702765712662650987046086110320423622822371070780718371737500153829440979399911808343496318587405729405969878614568636033625588358769358825449530020412762387973579695472743753167703197358329016244591778675325692682466105061521358633249716483110945035505097518248502950575943172143290981988205299341869992305558033851181913013238829297916257817753167897976482236573609444348085063909246461504035807210476816223839996782583691120236925446694468967231207835965206270770600173560912473064007599252595667699581928865924365189245062031403542278302120378696862174887694458177255453721804189213834022531073662493318604981658214640312027517116178280383660766070174318063423065898563415268558007446342776900785594261568293102414459475557317971439815190892648027585051525959321132311333890113734673061517022549793257118226754072045703767828133727841818613874751861902852953446205286613801426558494147514375042250549431758921179215660102908447105751425873277662595935719581935356176985352841043786083603565442956958549294985417790716808330569232855593528057222101780425263779572599226067442585986475251416670134215148374957042268355458480272706375136836794220498506892881750380211210921024081518577867630014141575895687977178172348911281975932281664327185522116575223011679225508499456469581418736876384749452913649672400122950082400709875210505515770947381128777835229393408555059754544337939399185213871425322297549906165794975547603554817768323560169419728242739420820013321388424615403208372831588543757853957237465388132610997551062759658131506235233678878766562228709232582086888081904791634935362168640165733917872997759312755150194304759632537570094652106077207691086075639826652578218255535830668614410440994702363731329577506336390737922294312726763166743297155393044543115714479334781026195231123788507189356740418019385319608445715164467083445072849293112005393822502351323030414810586625610531104269291380720761933484385499138024857985442294039895323739685834034087091262647871925484439323882439633261173350507419151842189564959620624547271167917866733421461411092183943130531697359855171785943905695612913838471992105509940745317658784185615965404954400516583501185591127293089976832818402329022596379144867781578989216749443258916146237592517916909608214045377495165915543380590133131057136701076602637366820424460722924649977697794874438755601857948220567362973022331762345002186926046982542455601420518836654607917359654363190912876324012328126915188246373042799429772229501303361168785360623337140592350861115278493865110595305672181138036899958346919836169590255225151519256011245799919987745483893981758150843064625017643963058010156543463195984994432349871613661297804278418279439410098801165208535901662687014457008107980950869149514276398303060620947608376062979408207907580157080708996728009749788456236941582090901999904826979705224521636906172282541104704433216543501847934929171219584248006415337543999866888658865806093585277514508214293914792292108389663260489041147727220637272569546345290208937615308590601245027685629956159945357268803776576985665252263017221433011290203887596742748979915800569059465625349262852577979679278770369349362922539213588371538215216068614475784346556693446145628028635618904671919559889259635717496713426313899557276970137153210926967689514451164958346469523512096695991502902713466785295969600888551828228094137099101840243363977541600455172742359900000990081255442526222087620258022832614902859857988463138945824809564279104048890285795794011505002531468913000798787406521152960223624225790081817430972972390806341952255875551998845200412988458635627190503495099214307217124145176842950790159869303548733398122481470430319174759844779955520727127817986111009817989354818028696583795196781103652416935445465800986725825461309659073837436423542481822745053206736928315528840412700813648390417489537612961338423306724500754195629427977487445961132979844325005993574073641405765330470180889750459795822555854729236088815729197626006452249701448727332543195480266000119649874196516858268445207381772723318530788257871418385745788172020688500846937742225117605144521041047957441313484401122597530447356958907778798593038941584297512390014773698275287478171348889364847262289772136189583879349801066534002230572395171060697547231061237541446557362684553482466445444128394632500049699309341515775190860480903641194670270851454352511363563462828885519863537489351443683683718254363617202972029946877160284173240928620231716477129888267714274269078359988297311371032611028075470888100428036499115604584533362057069454979322183989192768782559995592699110772000306877798505927149221269832854225047806105192079161873233815237544715360262399520102262620413462708129527745170080263147566808837590503481718426467685290971285138380355987482705633996576484394465620054408880001349249709437869841492583130470976401844490651129831035265343302411804883421704441314461882675603529288767981903276433426471442721909872347313013369723538563792213710443639345386559688994248713592186226517128938191098436505448822315124611452245101081712033290854074658179743142290557841679520184658695143456219117527731097411547428000138386456639309945768313594719870918829818732502783067842954481944232853484775785068500306066679135808317624371137917294968802525299748264985255111471327524427339693493661189259923244915808294496842152549304281050398887226943764549533756219042170044267600983301343977557749420591344741892745044624719029040208141748237237264655095422307356524051168978054086720838792030472940819416734430133520021973835341720479970262035808769799384866356394381942487069231248706403074227371913257945934478507932420669945774857573748533971128519572886163073041123289328025849278824521960837518553166746768325430810307032932867768032150981518560626873793848090615894497596061613429399695499830744097518476315414950047082993373559449520771145087962048942094159345234491280548911066772338378836506427735075222322450152500854526274087654625341432383442051029616510958334196934183135740470425952933976856286506429156946514265635042350113791369996583286735481116865881993779658907966663110456582152506653441225833336785049490878105368991061307380863607157748702112751262532713909712861739458375511633856373120176702224694774274431300818358604755038450639173819733750324388769645981187579514673753118675710265802456797204975481934864511817067982089589350194168311646183931235374658844514973124108572566985152540605561093566251345287926446038947516023631639887995780596474568596757229599013136583192293899563403576277747322726036279744201536161809879722223236390428101027796083817815748824895054707305325537294706676606175796698037877611930541999093190896174279432899034821984746948996289256607109821480336215389658720858085645218700262269778919029959070947984780403505157313340981040672062236382515615717663403479524453922409602676283768045353876003789103553801269906957283991811243348422293026035035271906486095479515869962756684626510901124858645872792831657895471103819118882660266036107942600881968080176223702868681015993461084622916577341349970733257606831494710546619566732497828730151347266598736634889730990904189050075607123668638419850065491587006355512164870109340007977998796717850304548365106309135507379735088961581356884220910806913017493449891064108997459706149999169654418541117879741783631897142340946025685912621442994410317029006123049335164205982807716862635237558951554902515423563152686707560182210729675191333817383058856248530997068248778777329750029292086464227022165205663855386854332843335889496658870513673013435986244895776399586074005472891291523921340521508769691293204189585094219267586076243869430272057994284156496611870110945871994425816806226767707802720930454173178644625454725654164051422037581990229629587909596899221488730061881427444623452312190125231704987337112952314439907053152613954506483981953524851982380433251911196789902424734368084167351599374043235262047441659403804214024391643448725327336176896385188120555825912622011983887063904171073356455203274966575160737676892563066294088676927025254950123138188269149045064028005223994122591329954756159192060815754854328364644363681842451148235478727863130739494831131984133076901724766330294568855395012325219112353858640124837812540702006858805026029663646559831890325097949955732289971536308364363331510305499436243447780981273919117115537850974702241794344480288615934159453081405999060167311614342251734096889830733216508189247161569389029450912125979231097525205455805900586345445052958018984714830029349552345382755333863159691775937858676771264910262541041589879805705139544352654947180535776611758084135789353667106519566987933508215345280303016553671387253568013323026354197099344369488980255616379928366441526170065428695281941440450673431822002446001974888074985011270976842260729053474454130329279713271698747106412528889837581399935367517388947989228652114600726995468987706166652514396391140274796359780129628863435082240334697233647619046011183239084194964774343989573093333525803847185404440528457564810081118942864093389273736605127578186447248757705209188824983998090772157702598435756078635179721562716825995671340508284788457241013586155419531686777532478822645789656456436296828752453690931619158277128865914549916637663263832128378980497491340762214611066752891601248985032587220579077177578580269575098726752174808358740581073025821059706186969341946978017484399666911789380624805635150734005797184862092449419061827403304844554198251211490750625754263530140489074804887538632327281742545258385531516824069826054729764511599367195354440345255726575902640820605313380500673462863870428752558803224900841866994298363022434771413640384116742412369249577330911095170366579569348245401290727419317858761138254049320188669155566083232524069261872983502374192582680526757910582325983177475423940554513915569402066141564195355523487656164876693270447672180188793878041492743248953654173294453582994704527593760527952458807787069234260213398820858091574491515092023723524370580829249761506679669391026842693591067542435925568843113269278209184900812662448730618877766648863022185360939908709177097776849160025133687622450138252236259905278001825536997848277612662028076713505516136904245637624615761009422098487139291118154496746843515624664840147630967102750331423417234065217776584347258919012519127290621934745008804746086125423376055621157375343478467994115080717651428603712451633413958812864428111018006628129655349903505053875793708808238596688660568958171915696504140986906792265893853634812569381422653699329860696172437783033911177924132284634341960339227219792782530223823303887159504184045168125912756407221622507468658750824335515140035206438196273055280983258534959439364509513691855155824775497452209494273497510701916599308993577412849482923875955086004468549176365474116519258166799090850197193115775247759828562789368797321021782182723396190783279214166402250804979652433090647468572167090159707345911748944365301543092270516071448315833027199910206212866142894709912109024021345654242513728430424990002250240083080834383329211535142183869748136152666779632849121467090827886725461710347561560203006206854867059492722943246021032945407983107000915163636255991597900181450613676200284271356603276790630518092492774547156423371508534455150858469389578334289661396139397268904018239668550347590581338323710064957396935338025676464867996209162274031719725620247424283492529186161093842686003414299331683459877349695410815517241867213085228125514543951086712190570177252066616704657286303714868159299445447058357437798171730974027004977696891770271307820849450864118616054246177392701504296068672928798568875399670887080380388970717171199213801208192381845249394311019182069300333836684877735058851108270017442950498468214793867304398252833078008584408227480270439431177943630724279536485139884414777160274896959991098241087017291911802445317632779082881003142958250534732365674097868683660003530061984738365812674897470685523278158554451610751949397377110186011195995156921766966731775284744273505665097531141264885600686355263245599671986580920187903846454872913796985610317672506389172409559225497674718006382858098928164094891095709425113805501629819386642613730069458080248475316734442579087394638709872925489523005641823438479203181936510383800172627258935472573306454744199749889756761103992938254507949784801667263352002046906627791297423981360245871672647720420888606035346977240214116073140516038097919652454551341908641105314402996757665878621324120658607718960898367749174435055185054792414999517991428822697469973548745759688253272558991553344472633135190164147049967646061124311265286515551806474596286267976995291708861445553237021917261095136437094468720032139702510935087762362323749926458106424920913328459706393094348409640815822322456141752901443078563791617088304232686906124342909936461598281200913312197377238432388930987508980351427915008139964931706264047692532987472696010131004514516988330693639505347074249888154191376923843634372985975860512724561856538239407804739024350481298152487088582762280618358985799374621203334713351761674237034594212253288497449510298440774866180825890017321038968939589306456518685417807880655038408064515134161628774839707756604944537004489684098613924572950179493369435134622212371907459862476417776605983777094072525707472959161828367640143071425013457833279125278566926773517756772097656928191131497847394615793266045975457370290400158722028416472824049728548625937666367651281152870801156660364554484087278634591734095581676842672679847816055700718847605288348443218068915880484155131255220697085457763408479358048589376068711859765939774182644662323014288238903405719261335222407849870873265489658950595792140213047701729541180777549860272775538337889290538288658516096793949982275636874681150768852516069215544819764218768139821318122211707076188736721902848640042033853371312910176138168593912969777243096435701389077821834334433377518680433834489553983099369617983060577913333882225537352323831197029262471719171008345234172441511389748308388574035558200784188159560858887485269287263168971827289479901372289354212341278147724018023434496884121050894351750993035448747244437639787493020827018064135768905814376846350275627622320323461189787399365008752554603910222900285167255321491195713183099133373041620134938614952747409286789825071463910786897392071059442596991630362602864024347790167718366196364805254036848423634977157041484349182342984515679068642879751370481357931537062276826036956978878713735021349030321889812270544531110997417975964766689937591025813893604012316784462702430752838034203913098370381011739132551256424082129705112465956371943874895110595375743592626007915418910509592091906701321043728971344099588384545454073744187133884907737127498638700883978070363413271545946649252132055926079317290293383649410290487161281197615115594448817517422980033906464021641046823294395590127744310805467796390665538771483756806935785326423858043002702066604305957856185437222188947536582180381663587228224068658249890424378784324153745095564539687269732252596062149255666163877268196825249890603767105024805382580925621880893416756473397212245672078975945529338779951126853637534316051942801359532719182006261778899257622245582542720724029836129164578615565478499422782209153720529269481674422318824464591021720404918868608633043304323506395766846031386715904080123432366437750220380258314034880403018885100914611080072678690792862626135945476743058331118234629220711810686858480972721216688258580890768247012581375159139591442208151629549383342021527460652115020346255608094732755244369257185828789680997727508433727030829919371353247210254917320242956434076518548918509493666528681053973806452966839864805925924535204021186761727313486790543918147869034044077562123481442152172126901664824119952243236473226137777334885562099491753181510385604039750346890823262510971192196395742173851660085150375234596697819259169638130349872728135699028158611139432536489063423096375572414434356529537720032898851470917415743382710109844876737440963278094236044772791845084326192192413629642947149847544914646209770707440011237016948497633048528018359940688532444510030229320983407238271355374605016536757788136155903897905715925443397820439963474296990730709625084177382208592209515855819027699033927532770100552466667956583908348752996479098448200812632226095472630727897168256859747631590529273615902106708362504946358789688412099075426250157968632350378301641967082267878209007237764924807555947020665133896773598866870978195933498521308809819444512932725420305133597500280420442157058060026512297633450835333778737527388887542862942691180919634536717105452250780472967044488598121325542800458645190382260066366472520569297081829527123322831335908352043606854457612951001657534710245458400590792943594541365136193781992488292520382478695164376923379369331642453533472828426068793144211921628330010839840728592932516130115750483368170009152831017900842094108565557993033902255248659358233451332258818411683264625651103179670406219968242628631319008979009223793796052202868546338804957078830486059457066047145517039797520873795978982494626556724473586160056370102261446462477993395228549284363936030335592059638363329250564886754817538610453867030922662508293069583056815258952768337814823321760924767544816012624818649767446900173523073536330141441061304267108718022654011892135019038354266663040162753604255084284613018048867983402501919050892281193837782834429617548014306483629041382177162511615010856904532291455358599371976626970828684196947225860647112939436370366294392548668194494743899581663003771792602070117812266034805020739521498739804047519177805692122284382690506061590617240950625694928929588147365139971501705547228127080813916240627979932216093692540708894732736762081823668996554624943039727455913183246749581260379089066110123061911394996182332084103759418408030172108747849080447318083878840589831278330901959539297006662063737239748939429009782112846648174687905417407316326222730380731503635217865683231040867221298506757029695355667161737431841583309735852658719860273970619528925731720426003930088846127361112382728103490915387896013079317898330837518951345789793826952900642939867030501315944532976794489201310710216254686731372464005107009371411180868956898728299801403519335583188473270105413108187563427955746318114487378373435026994021643256681206186585058122687005522613730773944113481159774355697828509874362143907520173573207763427762856422824026373994514169431213618232707375574306268863156257121368886954611921142402948000027802058369840170857387542583667309950044744964398249567324160273410525231074274329760236894471580033103358702764160084330588048316984560529828271941541029640297765108503371745957877143668144154036760220500083459000991159424999678919111614164477781181747820819286669207590988942885308812116384556173694366047460414317414088326242770631909427861616044208717284035802891393489180497395512351373651008429120594002809044695504405482944889723120506970929097652503285186335042841479342095511103344609861768789072426305209526287802492690190193452159195419131412930808800197460440661783973264414183857642534295446013651217016839056128499487089911085035074084982716791738245182450532365549231720954851485588739802962938453115701919990453303948879254453968868952605297722250177488135126453739702281724563479697171062819050982532822726920827162192397756167637109712888065524531892207699194408680348352242592892066073486548367224738531103552066300909670458496358883248044310186006311720980926966898087300492768575958224328401500028058577956947200808627838478441126523843765349365221713947219141720080577215534468861268733387325692354901287861988027855667196328245343635541488454042063687677712955367316360181555833765677499169151203809589276860203375971229381114139780620328950418014984262454940587713314430232957842197120632523316487945390646658703374789831898429846430902167819805402233403330146396887132267118874635540421060627242713124276288440403191416831688116236436827013089187989447373610881542793667206255277909180649675763707449295233009652463885498286681893210732112928645916133011050709077772805381756816330630098333026183586702829272436935182597086650645270443244069817597788625309652860128888706551931316621589745999641399372690836226813642900935356034516650218616839652184051142092039958813696851170799546552817710767987337138323553536868965076891307176503386751804266263558110624493461578765187137881060784759115400894361510432643406632390416616992813874207661338999468443971539294058475523145606159165948426043212111759056645547414983149143340168237517715554392232919498866565071545713429174455273308391261512708755795309705360935057504707755630629575311337651152802727156592642232306477528608557147825285831583369662911865381210160567920154519518378501822042545837537080126395515912241125362395016285033807665760620586103804033801494534440739713252325527290198433307563486808000762205462478176852183471887658809636879989434340139002045682174975852490356136031571537799664231027233668984991303273158421207602823715181826617432211111799511833517812168398122862112634945630074007116247811723837588575356602470635342202766547109725184972064218159307824418518064626317999881590588830566290743866551582563746126137765034952369212973033492832517655462223562118151639594099578552361637705182907865431838325600208746112663786049048570312470188496114247739994051342184940314467682191868157293897618768335487601082097306831405871180233019640475565042148551950670403759262129890048957793110023682273055385596718578115113055685407049655091513893028618338656774544411630480882369545249316880879340505105261519311896584856079019992832475479340402317264500666008812840356617582017128814693881496452713964753726508174173285754440440707210507468130351909065199549209468122076896414448964219401229088281476397856059171435319211744135392804212092624517132736654258389237322337053294400399678949785183523326856699843457611309228436210006479364999980798938467389012176237931718716610461944739838988694214516214078396404186390374312714144296190628571036064311180160698821732957537812869040926119318776103221116708233421012680082536975899641095138827284227792675850797765287685631042765953084420968661198807175876315556914468313730067590551366869526406196981319428542090814659944597117382084209348813442517120399455199553046153065653098794464155741227630814194400755112252659819217789290615837371734617567768713382028758288137732344051224944978163514935129227552733208711141494318895697285699927174930409829193646446418705522184103807295561298178239563545913066855908377070439648741742867689847311085815499133203411193243314983097869211597041031226283926212681228125827959730306507030660799964033000613800256861392281139094787216165979468190600313769199037050253419049025841534367516461159906163150286501422763975179127815986286136821352077064882677933561443842793025246805135122622735504954175494850957327158105599347067807829925170562007467331740428810661074036979888046731174946466853789812099232040350729782394396466308976788400155643455483658533972840154310396436749401931830959681818557956604285520546853720014096326675971510412028633674945959633011298762201209763392931479230034799627448073117004660332591304999602394051946197264270095900072529918788587226351347269774576288307360947085171635210725693462015266779365234740362125638089983754612616707758081813574813278363380876637877231209014543120996246719382434860119811328148790010579848270100401659018473928789875974494713855379302860587703074987224488735974178204240948652675919859266234765019803651752605207479444866113695886750095355592394514425187683759578350927004888283746866493693309457844962574676548628809510342505223708997151082797830344057260776437419738245357182321617641470059085917107662296849048723762296741086863489441849105321219999452725515712794995521864777270432258839035863318078149272802473468716404677227336351474409001349877264666946567757912635997760686601006303974131770059991129701929193353175659109698019359255391361516315772272741052442628922512606263029802686865226616562733238607521800804718347180581450095676784746330657404725359099259435383411304264414237351488046094433187850075916231020662879733149565019277482272227329267458985256233460893062265037094483375113925590381825253829783389124847000866378633488995482013171123859386542820687083321961237178811307797916277259803744637190155018911476211107969702057427308062915270092793472303213850981112369224245496169638948194381648940520738411373348730287188521627244516570862394823856239956401939803401593999682000109298027582987220344258595179010566052354738614503647312642322882872689874117980541764844694094137392039924397484446360746209416306724821753842732777500287972417179130267845849227437399456181555639437166697457842180562839223343681181144309612751376638842571730233827553182815656694488557172704215813850819661571344333213907052437064626622952080154781952713268050667337857650492645001288622733841275149359483648340166315571257112863275103880731803781697511270364040163855654799697081008366763597165973048218581479348146308336274722370494990920107474860787438346507231296867644664046901994858263623421692773221536690269687853127907057536257029733541253682658491021998906504174197618777801353357565802635838758290933889116109928844128809013066816321418745122231650054371667411551439366278501391682414203252920245409853126358366891718228516703458023536984089459478292875178797593009067839953854836227351261296659277132041490356217129759329735429749335233135380107212233747673157740261345746563409260437341149170798452590334826957414599460394886241594984744398129141200306958249404976848092805146554841208872189793087517741604782517688227398252536861481171232000374453769810737167907201766928740869075373922450862209105108428513555315906869357788304525800682271027848993417534979894640466180553957412934977760405134609857849135868654913344438809780858906659902844360586086989164544471917467317973948738401399460034209308112777981223507277945224866117758403540584296729998152994203508074694828014355797937501745190376009971814778168049609422393482215230530431006310736192845515255776306524517323503014961587705374572476868236434906260539528674555311100517266972489963986550914921377781979999929892992593732095611215175200079192652222621374042382787345578500709444351309754171660113014941690283856801345770519947970480242035524631061907557284989451381476373854078143823765025199782001070470076526756952670457565945810237545315340360887832323560301656051248183421431169572135697887446909944480252116399427641476634164839318623448734475902255555380466414824030774939165953109317591383998428169382124440975210014640162443916319642685042506198081526120097694027523359957591372195133103539461000282275356654557004602548982175317112689646419945189090329858148401046657908234395637037938006591634638391417748982183276625641581838314229848402326173684516542800944006883276353393206683488280272817458168399767537431879999387861506555166371015635238960424344407299595082966252204654630041401824971472091085883495880941089183467845306581382062410874006475949640869961176386632339201364448291662545438772623067224199927685829418889898152388448105270475104781154476626900099114402949246427181857647517040800176436288497854512041417485212934617662078929989371991718419133456015876562797359970058307017194303010773757701783607761950240983937595710099413116949432125015328332208897154411697887171491212506943585096232518925660558365932975838567463172260553297649895780103525112027155136315093770061809190345753977805193581903081430311089336715748395710516872063388258796685596033519486907760693315909306314619837388594831809778601265448221938645675618049303508597595937678403656789086356663065615790338233251190363571306827081797202318545906970787241963655871159273989667000616172250332531348898685269970652283413385974345706240363366093984926217370983078735731706262909080272710920392502255356139934669685625217684917984492726804927301909620416796979892653639560097874095766836349999712629542226172662661565907696272627741071292490253575387312996739989968470210602262496369243103823726748373694981543341037253235640332370820545046213861129266451978772626214917643906833461059764706975403114310703552729161246886685869671654965212999106217503925874344194617656691253166884702631861979722590467278951965094079580045067878523362305800188735919928036164023094904689838165218149487090887160922779153857424587891728807581217743499575967499501028836098958795848107947058856792103670937237897924481241787200811690344850158222373265625079891050322769216441223065297682734054942353053903243961396842610639924791296480928260355058906474085595955698713089784631527899661539913198512318710787558698619381698238036672669044241663836054113617976702108344818536164674391911333495857813529469504792802027749041973600083225651779295315248081927691366192966609743177448446686111379490825010336638401050740434452108435208453832495140707301742481008725390071505576157569123175756180244003550573583743226936021439254133223376052745165341000700786466460448939772143408563921844681413897785509500585145997348902203142614622117783232799615280734306753190710373478127265367399746108028509869210358466216783652185241199684726152986454847154615514372401013956773526734844711245062209383303571612651761582325929705834467032147923480921646947506823754547154737068660488427862034470123330062614208373734353716720587404680971710019380158082061485207160064012505117481442561427606704966660707874161628993601990709264492379308180265610178504866264745432216398729930024766609169542680015555976948572439879532659990464922288750794994803495330556115494443418723211900115384484083849477124106469452636531852539876996730534672506874946086877521626444410532518307545478094917401223156716409021151356104286704876345843151200079029517320903650356067314054101147886559562524599877954005730196235726788051935784517147453088829135554514561531806271964454519708133434933050055166121773624396738449528952867698453618658425840651476513237200135588512603163738508957743605976915476042073621253077647483982608909212897383291801628652689589591038977192310340486575344121606881051063867131110658594900257672074533991814928082612408508750954839251096561842852799391167901842160531781723210055765421568890131978581347056693178721327949529612231443392420557806749681833469699169513029946673352599601561730495338677436001028200747960275913616365261276047014860298029473233895840869926443049661616338519234198487076735094514623723393653326275683124096713735075015214477530432224030013280660574220174327075081892713906043986979468780187135780780229667138254695583038593115302698264280514379975797215035795201840717826094168593871243070306935939035236482750088255981798721165111554983564855167482146472120138022157324119090368189381970360514654247584929849807073359307012434060838844109324926000942606936552883325167668705966405877274342435833637549672387202640032845007567225395041120615771778651022281563183856033047160689580298247014805372209131992856577463207153258830893486691690892873811014653238219710309948447625210764248818786968580562202357740371359016309895965246660650899232228128785226013963281960369763074277673957456241663203144057712100066084134016923669178790478947031881759620662727024129674504275270791023859019381163411745550050901818043591969058541265573422825677349035310286858801353438511250344375584723497432635282542207023706629449922198243635995542483143190806851251486286045858568178071790430426015253043078868982737806242789163163762417722035558441684627716222262033529953081090432441613039314175242449863738863172678113531371579535168995519799196225481264829825457448547287711509537789249580685237617644126802588583528738385548428514218649067488803466932822093550584520380372522368714052477476411140012255484153499351837579957231715264320935453670948121443495101085147515409860990923505524300839757261977294287844432685916232681114416407174415963781253459513267426388775645189982009435837443719610527543662297810889678628775838315374801139737281074250793603339149725521281501496070921641396874569079604887835907956092969939344236830716104934207921913653418605654089955316426392981842879711161748741758080669234570967296258788517597096966344359907338679577010654936205409742228295810526347981205850081452553664303675589584233519372950363487411262997699911050766123111691658897722698824944117108874489413130117743982665310498037127696546431778961785904212484437839025047714708351874087033285515010888633244766896287160440378484692891420882296231249407048503770037877332289942408324799897764566384046477163059550695715641942994371417573330170866154752264413018609804411461262841694674477535839356392918236288232397620247679805523680506556282735687487022939221403338244627308041592517602356540992439417052359505288894507108757302930387494184331887193012644724907896810773912912373185391859429330850776478876140309477361533641786915152754483025216607848853826066689939521330229046149760222709372861142256440952118973848985903078504528370285036524782289347746321558338594616411039043498795616290386678623145286636579742109191045747401404204012609061775342841925539695726622752455558620116669639881570770823559779357679155638011155818215622396887287000447502692666225870255368285170563780339349347367793696856397079478459410424864000111346792670923814738341999297231841716097981067324930509199411240642376919671490587462512020037018819175570452654828940841045851683330945235346677564948451565857401765867494885719958297296922736457353185138455632791752125610383213896627513681989146819141956706105768179137833464886908808590415699477165183992896562220030191225288687071583280257182984669311277011572289266580312287552410419961439933748365255582748955552953347055779387752828143831325421953432003638298187342738623417558511934822866033518456895753323523761701447913852727842962045828702796143232517522719321641037992630031064556836577324801109707483118163894157673969773932096658373087947419978985820034420819052875280083821303628995521984781140600385104958383791049307339804639850803604546322510275797879461325846706375687962113152282383221091784705093590530008135966987808819853045129139937365298083533854347982539755116216348177524630840105614739668755982946961577081503497875465226712643016056734593979536990786969735006907619287475895267318159694645374784685069644336784951851521577638402220044751119119048349777410615527199801035259712173997492019116404539621019629699290253494144380139907430027793447444227188064343530429252817678928661442865565840143267747171864764758494729907312516319503789454357323167103684316927101972846740939263121795184605627850999362136165987381381745651456198420924947582778084481975663181810313189758376715211748885932961272986236728782475825666604507017524478010884168065364313002587507361552543748024020094362302474329226121578631700581713947710583907569914272325746651162070188598711501399150026539099050483768636784884388890731342711602980964266138092869406054484429899575926035941441523050292515555941687942535312885134855438181341534328024899150940398272543062977712136748006765099388590763085722549087229332394203055616709851395004428009310822893790194449471164377331313148740577852154409225986100524541997515568589655726064237574256392998273225461539583471777805467939150142982821925767962828362505073108958653092233492888195392630637212923043863798697380214280806883358626448254698885894046995737159852466277911152337759753586349773114113035416283266529041267497330441302855076076196089915046942840814890296669640092768079758589070404061099530832594229097870826379259896116285928007295790880122254775091642076350824658419156812695197472114554870955649269902341860121844425540951780562697657315149968906366332251788876641080410889399311798739386311056314439187813391256747349415941975760102646218691379386949842733561119072123469836113412313917248655787561655118424031541747432528998107108336743622526082057782259582313210088921622288929790215285150833334561251075762245704653710364207183802397058148229302977241174909857426091322347051133618546541145656693519626176585935913171836622560213937797328734251531640675898132904391774527232997299059963192985878460483456761994100232452635408925520268381990223104409471400413260304733863611159056370958667515014751597164565263712984275159828187838319463230122203088341370404658474087182427053740650809979747858752600001553228683984941473044005634891738574429131712597351106388582513874088482817203265026764207115202952273457916811246282962280948451296533088706924962734883783971264026731314346011162645012084504087033138494086877495956415735054718041114247550166254813063402128692566117249987392303599180911538873928606501962840435199848792192527981053089820770970610350032959128082690796603535428975872247672187681234279401382501401195715129195700538726646206601679781057667875646874776411427258459374485203535983104025022767600969030990008418238958818750549568658926880880069685490475982464365163412419029973340976678571421145432282116195630120281229819493395976482989713476034291209140211186441416534227380645154041325867295769277677866029264465542701248829262818476423940280402161209304000503976951302519313530229633075054803276393660049136762529776025841094846737442568555237616972962436150227089201362545793268286357459147079524517591328896437447782239312193662962027302134437146773329497289989462332457622544206118661657873451963105672600172364792661997853312303508005005283313319786477422412000496775914294725482414346100545908172502372505493534943786002285905540263353624101542410615302124159578471615166070205600234993463963890506838716322247848513553600085342895369641045609889487747447034163120041531531427489457078445361943816608020574783430527983446233665294143401910086484321820651944858288192881718892019978194128350806676357976971018979146815948495372215613770532801367692708758397189947800725018506719580880583048202516399399788057038436502529987295828668360643366634462376724456338709961685228030380566776357006600205282553554635029408819218179376567016379037596750710327033314750435779281164076526833259431560746111440411951698286126900603757440653165142847579192676542224964595536476088353114311897323726828352476174883263975425931245464205125030824881501631271600869939720522587652791792638049531270283123233994862439146661644656184312065311031503735255995430532016204220187569532190986220980115469220717804375636527273888747629803345441630170514638519956595645986506931430514936640123416686283817038053857917566389133533271435896870776278250141600392246594761652535444281680913678993360983739011508419243215867387469460657127217178781437043337501765079599697602343504870731824439708049050626781499658669283930487042262171323487357696452797609386361021371574872677544772641400506801105031340349076757335398734765650352835661267947248036493661118777250393046464863321377878300586446285107742340972591529251509416399968170102638556347961638710934785513554269159597481946899444020627852504268630372255085868146085115740455250176442926111683862802032001047910915390379965850179557870943991735334220352482190839520384416180339081674033508654755669560482962529019916825367920900221622368992922419739368191484205604542956107799930973272445415028548890728777119972769114450573273778901678666632839187223302230906921763007702003271945889266035612320555844504359845833949275296048205375499586896146181367172090278531117335399589103407408351327327154172027090693081393923443455467922588322435255757416497034856044736634553749077797335810789568021101673243749186706113830834352444385212453445972653058998489688216786355469630693937048558746854637632421374905934537764966177026823144097414453960211955505878197372419966754351097070756119058995815523814166623325132160317300253249719124591277407850313557271583781370433496490220792630882233954567451866888016627756615149920468642470464230942600347513426753466546007305269242045867998406493019196246551082532642188292318058036686568767412607134206007742462248487210674175670797668764240166684543078989047378925056450013878315943946953445315257562172374979398923430676969431680548283614790817030767880957351910381122241587629866466055219012137895637039620568051891126610824522242517679602918210927718143263858609001636830726439948909121166448723482392883625022124616871517493948769051037323206572407371414252390256516923994907265718721605708530389574324141079465906594420694144875603314726532957002516001237864180889949545681111516898181301831829714421813106773615531278134923473264356001826907008369084154546486976886065039183395413295225169156735495117018248558325455295522171282624700924261862469384839060486426043228386731836596847398778248840559315341397732346345879187169738130778556396833830724944914559577925263046340265900253242770748618956236165125384993948715876344424339966386158222714907809774699913428411559626268822835093474575670638404102930771414363071557337335789379435764351488744247148033042910369450673394528316345910078229481316131535141415666812971098296802407596930088955248505521197806541648821960411260001587915402818424054427040956525233457586597358036698246709968251313616446386079853478227931095299772109048728554286533653573147875253320357644973032129775773268286332652096566801379518574020562549407936036067657554943171401702899444055145149457319836530872262440945667083988170208366569516877826363765568174123507409925472681761402277034211452286835111459426517906250635435268078405342157617522569586667913036073119754985822619643672462979363403912178779026781748917652924291432224477115091712562920074343219452511706416731290243247959488481715122272771478754947771527948095624381947116436147356856017456329742219726373090069161682329427200395662150359220970746679626818297429969195995048925971233269586392354633349910236917523893234901590906879082708840833575123880549482498510110469973918823026023608861976764026522713133433839622710320274603171746508185973726415142622789594361898845057309375791392418289175902262791060878372198301285314280865371813690429763478184255964078388474950842007839308078526109709906402945967432760271642293123922741213406503535947842983700913072014581678189512055047909119640887226932154996247346217236877469481765979854606520891966962474112281559957018816260284081663701861438726302425552176072849976034467706322188637499029231274946488294863649137917558256264447983883751363732843778592557640799542796956377167491658117587502844936006642175726257273536522164718128031627188603998121703065794160219741747535022505083525748083016751364830002278452226839731002019160087085497663113370545410220548150316361525915762433516777283683746405365273609499039248891038946052708861259824843692349134967042260873652026203676142738633905028958758204983442013047573971827182797713315260812029668215783208709501750565319559776975932400608986618263935453810088871221287664559123226646721553591979751220481835835942006088256632224633999204731324606469324719415020105433144678593467448862027860465151766100133106214581876881439070493442861123760506715770457640724270869719216037738848849467317555175916170246921216662668771429553554733352084064541984885422591591875516814586170816758874328725178492928212364201777993328794607658121530402497012923324530887674378007016758254266329912053674448701594711432214161584620628168413867267110436388258610119531547706047868143885912468510355370586751850229686544221534274109590513493994224860615018164248875646326774135005784688963783569050041239379737300887493839089774035532183082702882087565660203679376653364540872713109759898299858071740475433087535456863874070765269745478473944513906547618181898433852047674622503827303857718152075214125008005204812845144449261094471915361263590544725261885603376957565210312585536501330768552327575687327526725431839729518594791141909984505984229388067355308200766076888649367216241212345528280073931570992073515862632514650616107802472704084793285939279344173723030484516465203592370266737260704065019194686766434800954524257643908417724387973994606174681254932946437555310995533703755618799457423986323183322835695246211940500573187925500968597916712799460612323154104780575229084185290455749500403623479281426626467103061873348361178676637006964124639485115045971022989989025293859215565704723630755091579774262344607503715469146987122001674790067703856597616502123929817262308697176052258850991545061936260328663576951139209280959283532399838571217994514076730902523537070560775801406643669177482500081052308362263177904043684564931163067398294106250477563561877960895952597250173961996893069720806015950335962786827680559065639468888925714209009661756484826518003871953467583034513746604454270013303386804599162980189096220924254167440322586795716915664748675636046965224191060200460925827475756720103058586682721146659111307233146551842593507215119813958434263669666695919665330195804951720571595014232139993714647155645277372285568754793702912191518009776742224368910884180374039230421873878420192127455975093071330335759815457193392903196333715098514149720126087887478985016942286305213293179116013659004874481077943159365733746711092826614485130075818246559241269348041248167785436658883791190531656273053944902906966855782609409686722693098289711190678342100301970664137718973134367480219500717174856418402600707636754106098828203198388360092144630057509199685089705557746734161206700748223280712851644986662584107999784871924084716930589535225252657178770064171725763756651267246569039164705184322276710164487379346876576037399318734998819222100720959670494431549677840934973387699147017256569902174449385028101976875746902969528569693707672990662565937424332288681373701804246199383400603184988194006867367699484237179760629921887521057710366191843592487885058151931678526298976740986750329916358429608637366703429491078948440000612676891782305250996428543044991317520890809569464402170746875735973699962322617206961074832932941588012684525657536904467716589485084776377409294836821206854190460084040369138606509098418281993393701805632673300571979283387792161110350932734196356261288186404290897245778229184487368257448171463319284934208327528753775600125300417775374365674843320431246585748237505365671845600714594432230782016533728729579223486256133381001533932724235752473901941372532536131913200972335807568095956639785065999932836747575962450185258805588535346556556356765071588096622772072987470726449678219931623821396118978876490204621380534825665642697662177230381495963634618637267694846381111932248071564962504450240791700788312862122708611608539127487371958286326533971602516133977240911961761213386277061289336815144297168890125040622254182221459618124458149837837023501167980487061124275628367962804986019627516922185538868239516526059537707025515284202521016500197410466953125577178110432857827441031557470579729504690727183183052293673943212570770294803836494570164221355228285370971260755953305600792956930222053819233696981605885751462494027065336429148770078652742157027782007464392447839131298924964167208664667280325908598548539266820149194481835371290788215744007188731806413552207697312847484540335821895117130404949419702305313816408593726446016524803015288202003570521916596848531968586420368192498488100633132263624346747841745148808133431952031103796336310105922943217691738363048847566631484591136176618523963971581714723935319680939104487195164920458516850025459872406223566681020417466820305384429719771532142644529941239011934913811488681909153085516611650702634969430962161494023667783536441364641084839893637337210312479396604514683024055287514217940885642618641141836179583041235682232262137141734299915061103762865382680270002376256519891029602618123382337307729744157376815594698724104845754851701318160810231836372648857146923181719840771840298466146547795065169681409257741334730792512677773688177847153223418769946399360023921356177343102937379066804678785316652018006954415337295455555197665810630177249325287996258499928451297151196407090593998901239863086912946585537475356628719995851412476063691136803230532760857226280430187258804425580205242632259839895245455196126960523509169043843855328845346895560795831024514016711723193772852287008545100167706358301202699263279337976634601833044588835690889541453555418942748491452329771362801201647504224295231249250173662650556295090976123206020800240324198438064902833832866906992379309031075440493759775719838014085602755305101820364360496760657831893059572949257337087486410120917196569090841452177174841622159238458282446052200508352675733739629454295762507569937475617965720751730206890349745441274867726994156292354916602291153526078879753408425771120755367845113174876359166881233411970184959681897106470338558877849949170125905906997319306522842855305738408290156418569312299907436058320615138527335090692992205899330612511157262551425278774810053412964110671806283280899317417381005322476786121326081602378267160116142434705324515968704068502911926345718501250484218215111597101864423760857258487112035539394089383128108930473249979869724745287290090847120245594629757388735535833896327665517065864575245740218223428530034478174128750836635856613402525168820034901304734835774864915480314660889534041618805344393553658849581859576086527372360764205723520523854035321877202598136560277404016186095744957594032660426255474970390959447926226509747874942922509104202258934719901102663920616231976321838194346393413335267983140932222975302706785001203963395961522046704692745647055905048078873264476550431503524417877340583384582015861245786477759227963726960542743172139362962171393761848470866060970737407025608525793715820056917471093813139455235536248753120112635794716228858700774201009262975410714277191624786649287440056298874300152936560641341856814558922777889524121769683790469094089534279526175469155583376104092985452482675048138835589235170122716974847032436826629987633797678870179037244092075431583385387061661610963217346654652413821282914186481407153822224100842702929381518433810591452513120911735655127158907876308935091032413387280938566711778758369507158904154551970096018471216553498154358265318703185327093636719607805751485393487212425530361694231440849017580369783478222452241648965087359632551864293890575377309654519477877558148937129108049169442051965083861692893095988071804739252015878207097671140298071731710232166660011160569700308683847020178266060312297142400229297844619895230995835314562832597382168713309427917076536201084654564361721924279159624419325239956730404910296922525134860953066851892726255186999113367623748966238008147183931240785756760017147585134678489901642113452226312032444087248883333709506869998873486198657233961590647635352052627124323241200971262174990015761856962734095896194432809829796623791787647098180201748280686400309876408202417361502795110796203094548374949311646677023427993992125141884462725332103959176864069370567400880035016888502735387221479310209060442424020565541313685700850010418169814598864002895012645834808992842293430363152212857084628129527874432463384893827860163262648603154454097616351434387153358216171682757867972980632649408585522627023200510348716330402987742711040983249919951507305447448086906738906642833226479171388759819239469444983895647279602607381016520799663607289340518082324214889790540787225725082993216884763158054838408949824073876760099382720034543563996553568515325045480362139315944252596560158735503809711288850460665357701568101877075139576058690347467373911508269928220616526916049755088558663800980557192594476767385446217797483015720153385762097361357711502378385681348668025936284223058030034277216000858621358237346882597636258519072759813541233830118303387135741013171656124676493852537104089626939597619009296644597084105347402069237624104259656267663454116731860460711106936276067301591571878480526520206866081218356099727091210535712981848764871950139147943035687588897770138902971820546114455572290379201008625923396441670990052135684933987080459554853769992061115350804087076051454926045308187428397322217857534974038549424719848529465701784368678012652100358791393946094567245856135483770503194030600266919848261740715444618628854221556738824274946906523302191363468555422206195310217228227084077267403848788048723882588437977438938430881571523978958362475292861680199615050980647306317711315054127345065462576516250934352986512613494237237638318214288544739366891585845118267971828917387941723582338001337469343174304805170137861097073337719998745271255310524114882086269722681632308568605414534274181794071302168199525687156370730548576583621479721393679115232770675155104765738682940184051620518799870684174588189523270973365187492085245827724417498077105103061468309751106758006543902640071179883091949073520293486637039581131121730093121798122172002354232677703200874512073831270822719803062486968650911838726704089077399296650393353860466720780140771315574972686487608840682774077128406104633981940529213091855463888375300627982112672540093665108263000373365486016061896384326151883492514729930028244732500469348130882956518576299110415332260198767570221474876347147627871233148131556098010057740827971800775658562128507333968978992885896063848645194343876590827335610432785305857336534050153394459062676199522908686560238061840781469543506113611797212653849330300277821887021091904409048653221502755294623347355664211250217795644831338110152315688969844330748641830772991897775768831235501735883355797974837191199201080978683099377693124107819653614548691623874731492343582970178085774724396733526964852077738710530600712819462097354210868272157588660050478658283793279900271411297595451618247716655896668356526329358605687707552711691261162611665370113805027155819835610611541374387529610625241255628794437435176497565804352896437625008827063939525374740694474569682384904457678331247099838733148174727861862645119962130638059944605145041150217832868735868265825956393395173837943832644817986364471892318137080798406891662884959454221646846606482226308698435529499111982634645004679994512228168991475307729472091928270103178674454211144163614047412210895826620538703805084306315709720014031913342227186494912799514495590961495578593294500182276714419826535691976178385433425018911496860278239135428033873711867870365312852470017756306877582391958621932347125864025700787342078163184579620917253906064667164809382668500421312629153227550945897125995394738211335149205065007653054967822631015548293078412668438236021603443538236131892705997300079714574208742107132765570723431692273411531816407733537925174795047195404337826900766852192296078785341254624481082547884274492113100382349331275013111551108951162698592100027935364882075820153167469552971735940238232382345626717946906280029291180645516338353253653588446585783297460504530350268101910121345162147380755344030506800617734045444488358847893728493112571534741670171358955261136625680669851886560029760394348238489727308807992933947969237252689713567541021338769401122641823455869115248900527559345842075386478323519783970286722987170871459720495392178474802573062057956964158015247945598615708345579386073606757159946693779525207251201137515791515932873460986288159011142581184432554663307284440550672177050388080930179753381628045634050519230068302597219541622130130670294309235831792039703834881303673313552449056035412826915348114010440710027936272559894051411980391023286442467424870020706659802796861824301752093648460261750008362442992993502508746439802407655326052655692417270609223323988922319131416194401767826650560746139771309665303857196416000178572334936929364430143310617683695528966756509369877026531358949695374574564285358163358953291643317142704642103084164298224451355945657065833491065467123594120382927563180311444189613952167037564279692465716660980425202405022430012224172935828919715978116962652822637912357456125981821813920961253793517616284815491928915688323791436007308082008824056739532593613393282372137841406316225425382356886137294514986387412245021697678635469135355127564845517375718869152932511322886891015034155746908430964083329702060760139867550969386235936947688039130744752035495773195593883029176882699048586748149439166405044750268333531943884630939785980982028965408727335560027087729253933151560895237695247925101591903683290821158426064915156721750748555949423276333610077023019782910526898459030188536087537176038894775536889210145863492079183537937561017429630573563990660818548777592632653294389800302070203959833542793144762836189417954536906350742378559115582900520975939476643600420741979556721719697761056127559312584144522228188234768169921609818375904769286183188983529181397604544027156955263146594125627977451399669610188815958942728345692680607815615418481017307650885180699977489245503686450418418610225780356134436375310466832814133116454363839965809799648189003564803888852416878418006006424121449223690373418994100536906278631486269698914751042758807900956002579848038587538950087488246572343479286876143599521236430841025624092348411504282464822765836478402273634314118525047976210926332633921555295358929847317336626970282661896213394288810426707940447595896400616636299238024837957874105238649873557830801043511497122674068799044027724064068997415037955793568180302839639773852715102340508193212111331352057016551533154701711633872727269668532272684141997634223664861961756130700550105355594468230158678286381278708856616041137228290840433300734264445997381830125555927001444812699361262579290491983185657462662752739421321847587025125482904650212526154900179771519472865732933662249682215609061755325011230196997233441876541603173114246621906702168174521696226643863791084023586659843245007092164664324404956331649852023291389696925671609782228160335800082086111165726834706069591908523116502840008040973076437503670764666290478469466264905001751884866808133388837379713736144998726956574514096998829633337301644558716565593379021404381363019874874502969213227411279216418066387073753002453408695514537385695078123445938012858627336058783020717288118104189171173323921712942729549600301783052639000841688342579020753506575392284708462480858186089015153276546012964642751297675219086660458803295387921023104273363782875351674627565777199993855799632487362152538614945756948580157175564847555916757463615205173880781037637702954482259821183579745955234023500979615280193284505502813134525144225835835086305779224682813748279626527486787579040176161656900447893991422830310546057716542233289941267999620767662552737410021052329072032813956416578119652258644688935606307252038337308936009858161769235232435663970568068245511709989428937315398370519884195667856573378696380573100019949073093375483430093913689571551620315270626269257759068326808238468799986310959086516555170967680663679532332602622907262343911181980487831607955226492590398775669838016118010048659068268653725181146612722785774900698164994044534789774505452579600387120218896840335932427594524901613619343641010435362826280057365959811041924292084609659459500421410397338338074697347768570147676312314938439764532620508881775189207569647287508849178153773158673945767418228888017274655838939288818120924234030890587025745226803824042991090604448507325445375505810448390855993105265034144122842091823884164377165160075954440772557545007270443818960637979088139575177871630320782044072977471337312443940063158437033939939588315143492082249408933343775897030824801088649221966908735248260476307340147150167399850380179267267585757046664883775004693747005954700258876694833167833860130566601970810201985371553145513135427947316535436243323062513107093871958122858254210496507114848315340179818705610188950283208272424302060023153123241251931987432168966810653516145268542962543346849148488907515991834119816205480128335010481360353075046648951722150776502731343061189246959666989366501406245722547019214091114386178165505345251518720976747714656106201585595024504233009426891647796610035771560684573990564481510706295090108423240016799781536790720858175605640845928062798834497805079996893639638007803523936909504420034908440119008412738740228374246792647867519395463016708860836835231381897156461663439842763106407755596293905320072443604361735698514010635811933604898742717498852451359983835132915528975671811362782528358454933384988984181582553158116023013708903381042209594199505282681128119777452705382321518373054670598804437355393093447464584354408205790726974217503894797525842250695088498525770938353198380249491271703795639916792496540241533219609131536030208115215693908014117822526145706929437581278928882835469316544044707302367410828000116139943529520460989121302534101763030658732521446605354107484505164942991210031511994170713223290499177227218263644128916245524780543945507107733303445575509740532614446375765666353634856005511400747064026245416425438667294531030839811787150402401818082054173312481130838688111500349916062447040967258418244750009271667113235735375632157359602127442159938806421269692335648332112951413634089430729927751129457480919538809330486960190365182683850887184924219868576592615348129507056013714007940817249065682645741434177517884598670480838931761045489495173852362901217419781300175511916899191736228765089527997544589169956364289030161272907566388804554851759854811166490056310561915333026804513029923797822841405110336395035933753693052811047915534625729631040290000278589165468806770320139325165221538435615497931889294760510213403080031771123948610612562295601892102441020764612443441583312868831059919478414964495600932365396762215429720213828461310942934919241856866187620717825090162928377227595673532351975827455400869229502480226161744879202610088247422074246012781112138073617283524385110824065838497085580475328640883012246222454603937526004445832628331456997958395739387484200982612653181638452482695825736772822167819718782202088145137830419997611874147344877007178448136455940362181153116770705965725359890585293971025534405151626752869298829264264496435959830014637940323386624225992816309354530621035102375302517038732114249151095719065183149211300593099535774857867990450059453450633864222288799610521765810840766572156993801687273029160332982489736636107122386754127738893370923873556823310323961779080181557691516955521526381285652264128962986396752680121609090653069555843449966365199809640780917525360668362680622672921948431980749512937621128156015828110406796025154668011845026047303430328207691210737684917088171042084440542154407813209158302726580328089061124029017236405075213613511863760542938031901594609659315965336167840061698423725289278551009522551611836571201306291888860667949599759452179482094117650523463852026032953917766465265613221106415428155209916056100698255041266379343083033258428629038070142259707228324122106303964804306786511588998327359370209508465575109051109703430234417810388981461026620649014065727181810724169546180503918672404259281448637811921925363046126153282549400606538226073847864173536432779758793710256551247574330011653400316184514494644496676900644478015155535693033225737176996427329696268246010754728206175150995249219607601660717635160253853816169000261284717256145246144156088536594683008451374546360152615419102937650874280361356631863232980768825746491539151520131007698511431990532442274381534524484302712895587877632022775513964191527438095746358135959483647334562278697438933617863381858012434895914914496127699706155172017214707573434715009602131247998541373476751117743478631106755042387364151179473257126062469995071954510346725762487040015837528752734538133699044296596538293079952763787657253435953457866342770369110097537029170917207953567618737523813482875148530467718738625166428238677541077622388904317926116293126361909440498903159934473898256410842293643498544026888132138440958426040121794943476198222606672810733223100188156606536951836443230668175672486238261906199799382130913584571012623042512218963412799979162900340658491104893086004457183169614534027124570326829604386750342558995163961386164180979096628466738677553039294387684563378106074008176942504971135283813872422280329325192909307914476550699665982195130413111738799905015032934512903109016191878091470027331561188496532270802358830239887387066720953810031619191634184664843109141283342026661960877180077715668626933718668571492534990136700937365299002848154579596313170309105134095970385222911700300540683474217139873918510680638832073202838669551498946721585523780962396689059100684587047484720888694404951550392933579586635527360584888248018383329461313407811743435564605729254563044276499046524899278526241599911991975290331976910484474186845751911069570600535370380639899627626415565207327963645165015096203144596322672809424957066997475377218971904670967462381034889731969893950910163872065334638446390215470343022629214692597906026466887721078438474804377486457245910126993953629523452171757782164109166391527508123699119630336442752999216038243436709831490017142127909674248805543040388492879280946680493627410751613940711797184503711880257438303493808257345852208656159184333195949554302509022366879665217849545019955298238886091135366939711021334218155395764603290475414822513600383507428979699115291809537352653522661938343630686199523008049886114632518245765431100965988371490930210009006568393404191900588477893981832559782024223726246322602037763713627332062692561760750692594265443053554075911723609057473417774367005119477107202322979984337841192471933659239110468285730893709447798001068720804365528719485434308442274694131463676081803185973740486496074205664054225508167129497276843575488388714739821970751527071037330989145624061972983474192254288768876216013051826640810019186681358799555883426329320248526548167021690546187998450222147249739554070009186181255322220634238387425913618069253204765760482950898270007045800571782120198651644036400745206908043335725876980752110290765423410046243260380661157149874203339977091763639516319848548087389985636866282097964553740544708800120297535458913084068772877989572858737670792520207207607787197960759780137395335983554279109521545203518893462663266283065177551621785641683752416965476116304655369970093034299539684095863118090981109372316501316570445267909854406734670802371298273327946929931389400689435099741889327834573926702083359861687738085858407434616086777039230959953396764939345025882175743673486043918663176343972128158445185498054231948113154955482135377972079040004591157040087351367045061681611705205575454518570645926063830544547434440654248127678275152216391213694926398253829746450340085158973905883060662527700969572527098076966383636009931929149871634911935865051970248464263027844998488371804322846306226345129230588287476267480074404940030157618631637631661377955647759508931952863679381435088662893786611505912751921217074982311249944391008798003244054778646717724331631259723711061166849077804424543731102311083815104256054225578402495965301802435294806111357069653070001192121715657827998102962388204708399892727733154125146086043247961788577951655064030424684953774255401063880565418146936364277739924739883054356721868378415329902980904179961018418519133090004146286649592233914029279854908581547998070224343012109079321397976819976780820108874062217617599901377588577063654437290209171883297692705974122768571507071589596506414059427014408827756984304521842623933591127982117241492774052052254184684308984529958439355206507052763548551357111221678621128586953161465174505192145691952331608631481259481349169839173361138804259485007582253517885711483820542731573473484013132809655066773209812238812575857206597914092642978728084822169925680469439295353125887302468535248752388962768652109042362661672694536955354080593692062251443202601011631229532377974255189321754803172842958029094631707704078118549954737885227392978913731475040655666914893411640871382592782533428286854998859925310423559169332454222145039833455575627366375921576745982229594034481511221397138206814305134193954089616075798985498821672612476417919407385667364099450577156099216374665265743755398870731201300806801599919675776194065360784118274978201673039068223836920245513909404720222613750873580514698268890245960906988161530308948246926600235798277458611989635477041165995662219472333316024351550331966189783060070279212201262554557715331738928708932618086021060805021704173709832493768545184784753119512423414840155714475569785137277989263770097733545733485967572278453597958199764043195383694000552865127735523283268300429849032503308669281783678330044377897065628174209531662252505037803716428607828145275707773342233358419947223561725056765545147199801785974125618640270242432073966790403422077721133285149105754128801391317478225730986623571357555900443667145790833539462838505965045866877149050055680517488447341170040500824454495550954522269203990609178094065378026232576875071539570790582753688893955437114617395828555594071492496899059564526954048009385493493467917046653301114495966561130100002817593749979934752317493277017258613274875309460328954623039157594520998120322196938211412129044023325993091840168361527016119594227719615313756948421643520048988036086190552308082966145486000349341277196582769992728135654839263160830453805179118808807856048752409946945164393283201010691710935437461988242466704000394412537633293210718087522596029722741667758938057369822641605189638050769575387683843748487246844817762240050374655175079784540366979457104751033230009721613246783303578981010361625870427801822555037135576093254439631481373778091056522029766750484274608469618336782044788912923454627505886927218776351741856782621701000513434462745954306171301403920363141614366360460110328343884101684308217965597210709477062181580279860215647145866152671061719471726007694770351354575608376955994554659794848817557257255857380358592210129025237689973678858380582836996631072986895894411238991210514902988396480574348608362373082915046098414696272117320031485707583799021124646788002106760646560956044417849010581274719068005777472520098801384317592818634757478437762185102135748863340946121061304231828244052649251295453370144106509306940658966231362961595825220380159581581055680333264148752423159982806616413366978411636074135204878241701583049937967216336131839791197367251528783992512705555858677508597944798808901215695914729895155636155878030144812019203893138182546279360692973039518440730508172435312779891155936376395281532657623697392742407654062169841449350936571427299672388230545372662802084547228673161555558891450411775531923871511636551939091341130068495159924453453998688697187252854117789769185233639281230249648201384603228055421064165815151443138255477131039006981264161882728732669563203701615654887965374595820154865741521509124882324614388323839478696308605911692303714564156281886197249927724067365653011893654830117979885275194271098031114891844261464544301482478888771300607392762550468006362829339705772253613999063361508490851513756045040735036972245926629705269333769887967266212222945986132062863453248044248725416552704128398905074718256263265662144561202469061045527096269964636052887561236588081410840527663888114214969625347562156094192625712800158298713819863378867596517356845490739929029998075945248701048922676794636929308313579199328312533982488439246761727649867525381999628714789074148925118169252609168601460289259963332156024648438391922385412479810896330995730478754020287298729899218560054667926725021047867270348029653437142269310810907806084549165749125570038092720004205515943014911676706862167729162697259744172599261607426316646010177593402092158934926679720044994214765717022706046882709695368498102818510208946854888139404753419771756715831887783945041062915847604294463668226372714837399316458424993245065946961008052626918182857460710813363767093311913432240847048849286652063094489182973195896546567727347011359420177115377904561535221205733678123443358199933456681581177095323926529531557555280766702750271858227095505775256259833794645364186771186179969272229140380951956873555158493069281126855419916826478056983139867408635225425789814614668403361762688332765614109240564584271605786351185985022120507405802503093530316857197501680676919017598301412188443345060597722564834320347568057112520098895582406775334352572433721233371344904707500142079367944121822502727840675717924390404940506895279025228920801110329403606812776482162010840472350030686251972694464111957380121844367667380618993575477573185354906220989995193221419735187234450290764004010089460052152612464477296167943424639224707549671111612286254647601835535388704468991162530216323392774919005854056835006428114679465500579129245988751278700578452689368679950339250980336572018948034409109465211064764186623293782189826143397366293844710864722985620805863561586156502008259089792569071099575696873461758100296434825117007387963340040067778362450530014044632627927695786388573695189945902004462100917795751291993582666353136644418198690656260062880572814990500170951584274210223556385022356389742470245002345472271249369662748171948256666464139233031289309591903857496615863532735362265784596738004935499296688114778441197000442318020304932205904469632650072420974437805393533528714376851945132762647913703536849745897336116921149559311220222934033380670419212368614827728399932909718212419449379978252097304130123891513670613774154172899584786810543159370114671638280744744497697514456389759618811106172467021114596818709956579585547669050921369829157704219860493357925444558632746274861603786047177056569244099614363421891064785019736392223852016490032940363112251027323959636786493294032183605459033215890431024711186328075823602406585345484643202786518531679637123020678069967429732948874435711729285160281622210144177062651424086399122597473593390593284310937372204737940729344795608540834248630320567254102117772670711589713555167851174681313140748654648345037766043538700646149908057999774154808775220209898321397236368783264149541337066792221696223576772070586837814665738408683926635792263923816931760712116636876789229496705044714554540250055807591322241244190857403456541830002773840813668311575371658583016559948729662555286776832275230156562701455144048676901463429529427336484467049041938211155756641046438561054524589961166200613969339009889677393016193056788201291357590047491309872906815449123911962156298117987415109893243719148966933384663393450416474030552458621951482311322835834227284358704486368819866684937262477834169984597986860125151401321829526224094287960014794191271486573044790617942556400267343441740441103352519113355876582308828149570541177829790969486306706689329517028927328461263033834584790058562258460772299776662317172940260777047644076995317979460234813715051997963739486644506384950788319978610907966683154847290579590230772713922046045876710154911986304220531240388673813054733029497117269845169132318659285053472999829351262388925333888329800382141016613928966093416949390030280032384259635499757884697079633771788151120503147797032049389928321237060931257991123788611107173997367316876264887483572644145223619044908041545463225778336346512080392547864422639599312965875621581604998530970374560425770982083821507567259666606454136191124404619841998800147317478518690551795573316832455149481060126669799050779478888092400907701804007681779055582621676507138164517778409950424350046259977938816480597793804392038989235891620788601835963311076361005379855699779119603304266123932306059517364277607707676261398442322242636990801064946333773892846695058947906149976127920787008959036056841624348044418768573962301925211851947738964230416510467081762112074563914115682887337173693249434960307857609550249933927135471313751603344393713732018982027347733044204174378317362324145246790643204101803669443248556710114859023641488756606507793505444558095396927258247551833041620737316945997712027257106775535208878654235029448933134104648382276718381259532166917745072199473039590705633166417606350505417979504376682454829752903831964551169188208235875377175639149554375958402578400260721163049413781434519833025843797458183275988241612537447243536020199775157116911476510342621462749678802735567622394541040569055197701589273229653932999097225105355964209169695984926510639313557540888343308391163601788082107504758084440642522644734453732715862586381240412326239898742542397685365786628069856956983502396729757907203179739258508525339375842724768512976538909456829766545165979435071907144855263822582710446576144434021707659311889364832426218426246101504738811770847442853141047360425143385013067779568214236896982943263882130636395450271480774303154689528863142591349297268493516556322103197706249603172836137731850257496798102580671101664746185272038933036004122222739378096892302334468015712180947323092758724142614960369275099211896147739308579119730896787485341641251833062105373696708516978461691039420392214488926014240468502864121492035017267164064599806583529502081152409637766427213672411976659207058538057889289096748697582461930314723976726625419876645461034678490177394025775689529045677166725527207335199806722600265760444177075057218061846259489581102121068349881504781097478674535451096579625713748387541143063250636295078257273557129810057467695179847527551142249338507965574268862158083558468942284211764275197824786828337878206146037918330591227584134566355835914497888256466716557799849855646611606649341000968598335697711474512483616283594219625975752040742632387152566844321285806794896810476524591700504965947682630952153183015038099426966956791744309648912435628475057580911200983161466791671385293795721776320504225240314000200111247200048112727222480740170360216019076890240207474698363255569207699688386407214423322702242779992454650045274344184441049216935499451032779189086266873824316141971792695087057072991600634751554286008282293040294561678346055950336693477136326715909036129954182504430059911956865657640570874997862729281309000041335132659905436780889666858602594577027759266114617420200087492072481094574312325720616732275678943429474330865348480887843820329486556247350577774678628787425288191951033380155273806029375443650695644885907990435877738322248072600220347683010232409913233050915497206773038327112672543704663258682662453163286995439294714537002837938388820277727003659032107017703788373107183702630998518131000670747795371479365338120958657230996580935443382821753491023407185115022462577711965230744574949071295353143009212696411189393141689532937365031558877922412730825570696802540955474603753650412307912006353636639362408143996248158340238007470299686674773327880873982996682495704388790103494243091486949010359258466772929640581675372620498387892644520996046315194690465807747800265275191082075543330041915453247401307258543813118432867805190859742862769423802885225529461034678975538977438151605616827291718595049934716789443470471011701422648869142025531744584800141685544219827278086082874973418177514860877500715648359539393372476871971336312780575610283448648003575565853064955781003218541183235559429278270483791256106119953493019915870690131749920736944287827947482327006474424371106549901402566520068185952320603941735608160923787520804806195934099076009421339113183367502702356227495031019480523984426325753148741299006325545520319191149328807810777347504040126147807641118975395629454551282884391500790711212327487852780331791114081351232393017023723165187176150051470194538050351460606696807323292057888059464810508493732269146627010850419881574575481603506486639198401387842621821980257902236565723337225532321757620200883152715678767487387448422681529313602127777226165658447990541545027059749048350416397589211010151013137475854560113623905771569852543655680280898992212994705738073636546771879815258481858194426290828122198018181121976865247572354605268691021462851326112301011138105849644598449685660408653703398932351197422730511777432348484298879251802062745241121105868705796894643870486313611822243087651795250808864316937599389614876910627491181431867906595768500714746481363449842398574438092168755985103861021054986787276886199112538419619300660883451225549451690101378358047700027188744026356626023537170438936842360286785478220670846378996953892836708999299509724232660527315934149290701869879220261951846457071585230385530382838037871683725061907481570651612832137363226741915567515753520696417434602850056612785152539940016516287230991068889640158309585931776075838775509796138534013720378330943595631683059294343369872549533337321545120203178784958460809409420447138196929947873208528812210313843547148088385937878935249527123154349352243857577217987458765175725197658136530065419711227551581303746697308684156168276850409250673541563645224409691781155321213337777153257353851719810461474594911158118163214096471733484954455332035124767046611072395511807064138596620739377837665277860953353071682372027798223482280395292874021059427518915594696019137915987392183507286622526772765691179850952072882407186974832242143496685380642659218196891545730771855918796490071116816172731676450091152427407700480658724475042664779610354300468009329493107912093634044605072588139215066315564869593592107191767202260024543325980278894800003388363151249141939163447239362544257117910351994904591062768705826354000896168649354455850546232517231105369421767237891361690861207791100283256043271749187752137369232640366239305087780585894251784114863012153202430383800915150631945432176317339515619779710255780351668906031514710249655868852914511665317306370821105632435729230738308815389400965256112471077441007020272587898709326500707587933389470344205000124816174631179569634801581645675377752220070264207058508955737027764623836493814407465156685346585768103320498056527168475038452356156712300622343608931977274351972449866446316056736008961843309235330160400008246606839115682844310379378297029070221872603663969689855711282893835996034367317418134876515009961079123509311930266071353410846244765489961292769528331904764216434307935979787581720139792413001769329883584515691146713874124085329570332812143192595814663842435439555789228562127431495385530827317671492079738527272496363364877154344052076301257241175529001857610404674563433667175049947610577929973128007637636114613258995905169333510110189072175448209437675866595888230998248787017490417374687889318767532757127755416924700931968436078190227745119429248325844587568338169714421805242161724407194970393880558066094432084310401564220290122030209175723137902352088117355106728400564405038281259121618815583424532836283931588697814634098975182181271860337243261249622265406024205418811432282286393300272975486943245470855453401000155685335801489345943370967103755624781541772380846685847205955916386991844798193702236452026494193168131246988656167050426065468063032543597938712023277710193845714618761654967777512049606826265414359430438491937719244683428814691605266149192363637904434399316408801199157436264824724931440666559280024386497984882954160362446689318311807436797368420416316490996662296630322739958369904374847508285627852770560922503233299555971640647336578162197270424110128764957571764373411873395964944482221527957164278897433174203815216740226939214299157343848470070303213172692547361061997090771999190221555347514579648583092190787955933776984041771092647054123013999805421880796660533145818685773360985054340222331185156709478171313330241385164677303977290637779426471083221504286206332074527442330576976899407001809169292642270919314013093243894415682329497442341033609197671303460610546043852753485907438629099117517886242866673625759507897022995076458389233640010365589683783955516182901501023098098220908363175580381096391628596451742960274205296879968865539277383790839254065013241057117383546954777792087632824887191770051773828511644817956851901924681793711786625407546105923495809682267327694278332849055097568454895229354166808278644760401909733395561886329685137411398372996297530549089399566779243079976299020183075228057684636068306055257501976803408147590464439665558009203976762391010514840803240721361773834344491054403552799539542617523248370268471772742324076091759600000736407857748036671490840214367546513138519148643221968437980404246173213661614614309844026584591832376911602671952979825007346640601704384076410127486513694937952644833634698862513093760188818601123245293614877771065736463681522158393435182533826752744061484252149119128355897183116907438738381319771407426366513768579483150694555692250735484128513465311005703831417619973755837812673715669789690773322897330105102633198807539745403681105057710787071441966237494879387212708215364272663743851549056534092463374106867029715870566092129582332442143123329316280705907924949875639702395119915123341456306698363466951101018996130806719537977162067864331675282322946237969389473269121469999448386953379676481918868528144203178232412709435237138213124355809556440021591237196464203023655231440510686752076897250210760563227241192731402378892299112821111680179079936054780573289066822617022294336928323790020370773507460584548433515075823351839850086639381407528963183457777805823416088657826217504706880008646318197743963776783481326757196407435635938755628801723506672319127613386463608960234486506144771821016875816679482629464499768068886414987026905409981578435363545417042677338151751782114704459179301524651462687137146372746694773718168152569050733332930141293690608724486469268611551284806015818298597026723778821838978639610602677483158703830892416672900252345701590003662814947423848004386267192129531272265979208226475191601268829262234625612821829682884429652481107710550307793201966475864875050436933087702184588628559385700783220893871098600379011128381429043522674338642244598047436541902645230227833189269423593910232782187257338439159099156775674092583332612963274634621787794165175721951655617794584540049839155872188293998672052223212436862538962334714232078200723445420483107843434797919035100664284237284850534786722206310522848715109844291345393571130410339403041347217884842725323833540429882301791574229769247912903643357396253186815684572069606083730109936301954449469949235995904885595637213939549061391290780531850933381686642877954410366708415114993853947157241703542106709006854738602978350095936550874621338904180071288209515490236967481735366387000078712339108112422052892829680125286343583697521286501019239035146390030753068918788718520654609027311267395670344167686803617927349137465381376667783524331767318994407184962325494189886585789823180954271605705988816981131039137735793530847936595059998387431210130306935409747146499449041972299009690869974848245927199339976921016740275764410352898622482586165410820782960742734676883012725688052742783008589023519956486167913251678343079402217341717282906610633258552563724011478030889282523868404943140353694560887132424503652295363693469247573087729240364596517224686436557955494266135903492858030819006581621071644897752996821715024982799447523076857110143233371598600103048155950073983376691889419831199194555956507226056872763704974234870558352261085968348235187966884735730985899388103249184136460008666753893958029401156043727506442270690386291070295306359012811945064352178754717301525292455577021586862511042030509709933393827224512405177599822890882843157125015038368251131210006293004200869931775143470595602895060736028825431913033925264843741132647413089203050199784897014294793320633439155208582582150882457324642406051405888933811597897548934205618670337251179643764484233286985165356747955664381315360752928840795698415872364673799832235618690533909720364210602081390195575953040625193542190648386822019107267662561970094051713352834371013094360759055192126633284537303700134232431265570822474600400766367109913329633536386722148902132554960560882801937410778134943823741815715765236257837672118749672927644151073108465780611971532058811428666261645116025431194438961429670875006932649095387130985465554147694040389445282773013958896884148863504080755686268304603432813166924181367014554128111134605680214476767882349613521538954577636738599710451597394011558617628661910564222598234584137935585858082217091714513180809162737484707242013477633799033227250494136603194865845093600871571985511223766965204349102181316258745595691266168760020737357018793963698297756911364640773830084618426221432342543846598468009034336859187720726399374205553378675159328653720312751641734462877794946026107722410823063727393425119348611431972633700416072423009281580892538251093126637109523000571037138569957662830327829506444745561702690378709967340795866260301284098251218784280287989446305519121943739049296322007353738698124161386035014620774769397319246234487728222567244508671938339605656246610669638007058546376484363999976540516814477017465733726080774712135818005069263236704585601643971166105030303502774930152113977432015805079530737590071969449832397727365214158685510449216565761641424614389470182670183941066368558220387696753916376387256130289144010599156914551759051358562322603129812930377146542519064821523482690416043190428346968096258546758863068181487407187560243384586209017260611357670302912763923193468216549924530413752602823564497357512165906638425564695807286759527035970861269842189105042225627356558965189887355240447208617262575372494407049158154859055771391067133463565097756745912534525294944451442105678127758845842210389150671140783118190203847371828552810137288802313320906184017863221714780860842863996909213587965763317781974584552963208121513062112394408178403023285121559100367015881093400919250534754614743420841029840019463748148576402025282553766613543372613592436945285926184847638296718515744897661009454777335160618265782251608130259165065171558201439184110384416830033181586243662339969388528089126123213324618942267395734100663529184160530174416916069618182344910050240777543176851743821555453071904951751923268045364925101633275568568976256771858131294187252747522709794513626587691820553359809018289193768679947111475747437971944899451187550524210968027649338271203313309041770517851247860775329192422469504479725161630329641898250220831994578625673875170491868023600098520501872048834477192252634140438437055573251759899292452816160662467944766044458824538528689007804586571026571106150033101953668016677857054827414175793949330558429639874106649490714782084915831134961735146851400536717287308975740266021137447364034606509473374307067226098063031775134004548597457732976397229771557375538899656557014151864876602970407629887966768540819395482083052054618312816904887094325841617348421979960165049000408345211638261205242318092110097812697691519748708489444126372340385082320377150812019948308010652122411889205946825040911570546150667906582721645858919467972691669801219288470797148290335601188624134590881409554574328367011019393439017276960996029291254398260975304658324936136973138448668579127059933075389266981132386856036812213451617933236839136945511996700614257207342704614508557470494212142886432269942796319381445057829954250389659635978787199208446400026856724766744683547892655419278060182477496951838456310682235295207086680584068581813877275196627948845041858744544145360771259279828506210040100770396054359132658562368994218297443828575498109108620528057420580579465403472693399098609791162916892290827743930424766294731523488116348815554949175805308607283218944072816850314876583370671143639606156081853745375064407390746024604390081375069838718853239608004965241894990584671499511514281524203249377826937363352194792391664335869329865974458134545405842330003859103242293061386031775349955593066254692688119450265954125125426027615132752048347389361658800947300388783752094710587005421539800849536839017382048416733451532777908015121397359084792766543942611103877120418433323989986613780751159307386970324913989068617865089132445582516635847143470061526146440103637115642087083767865064281520209620327739717037435844551370922043619980004737910622085386595267718284152565690790446765590401883051635346358552802480771768887505848720296715682711161098891475722896822174955331342633222370958375473839738560029231279343841080396039159326740929734425221648662209234325639380313513206965859545054319953607019150308907841115113758461445227736966241259124122361739775218192703482621608602171813202276946818163503992347285235217427081307932117207263587155266174787370791296138960834286374324560789007255910776797312340697565998371285192704650307052891283965852340655318877685117202066857379667834588573486248673116576075906069893185115873245641938955990174572124301141697726649861177070457376700436679104909032135956544908980548132936902029876597531964018516484117513975826188360913317463302106399774261826409268949502883432700470823746024297876411606400621036886205955700026998688273454097462158404686003636896376601750790175342871438770493381543014197846856106780974299262270885541838001258011810608908977879768380296578746982486517268935856801341292846708691639637366782086293171805771368007054190628290480610816654018716224063184592558348446270136957253740441657477053017684364257130022051082551198813763515348312730222656539481311952468315771328520592898679537989223668055165254483535207004208702807021188791199808729513639217236420943187960918166852627849317247352856411953763627302248858301839393645528452158458758784115709647845123593908922122458318376000498453125987423665249523062819700324818135739151781852279926001238536046146066291202871632998881959880371597021225940121576013296486056767561789935555315301588871984875346582601768537403518500489680497992439382901292838814317089501707255246101821035419383007264356087984676368810201697794313600188642172121829614399472331325729258663085665903086019864425497000894217089249505242154947303817249841313725552183317722433349673201403571365588506197047272540490343194188585705859501897817246756373888345287224631716800530125374978213090055954125969015254688476495045654886758231498321321974051713804220920076416377435887471799510322435376284656395084199757993064866164044704716279391035493357726714937041054851878975253842196999251038405441214876196691318676771533740359291418684367899040248448342230328826964805992689596891826339949010478906257050661173587248009221476709438132108816720178603556170831560792154769302669531367868363147221536318141064328804595445156136126789990945722659269790197298370714089920447286536623530765749285139552580199293874637880440583617775204927624479783804616553071547699801986509180878066670685802994705734435770779420299095011283910469639259083488573577247820555562366159192488009089428542503386664627927148769045585200410380086205633650955295077354612532809828512292360691997503995327784337269712636733245802524323160969484743315074645133898478223855305199316440912876454493689264656632840069616831773349238517272976333976742141066607587877916820046700055037281136634144139521681829864360086968662133848563828324731746114260737975491353000054550239995624643719892110643902945442872312321532227835814007880063012742232406960229601825829063593499514729814453216224668143211157107575534282621485598909059867472180684198074067072303179966175636194867981812236818804801284344863910832207326678982838273651205702723824422281708366920388363020126672003937859315599151676419423094168241820412934924477311995838641417250245740446487029188708935126774922918816809145813921139013353486662477425470317377277082808806962791958461272048843708386367560541889954570025673720749598828055750409012035743180994611774745902861562679146231226451332502239763749277349213210140898644632821104330484167164583941469951567698031482139348198236206042497854537082647274858035603463956959783326044945280402911900710196275039243806157399606408692583314751871693514469730861085555369205214681378504832613771600796622907080311495727103109462774214084220681112787580085579130398602719148749811267862825518460788260284979842274808425617215019511222739755359525648470067959476474638391452446060793219938338720293014474901479658941052130602864759271705026770407037404029320350287319523575281241234355677094642611578373915286967824347613558389151574685388622217045852925222670068054061122745410500692877333149418505676552272885532340277859410882238181375239199781931426932407031807840568099926018906003971736843533966474088523775277900952858128498049168877438909637620366690171269607015060820642603659893299055656247803134765839096450966610852082673957591917981916179307281509374069185242707498645191104640720862820427620474122609732579156057316804497765379571237243069876509915921585974116972306402269304669102381285938097049488838055260688636772360147791838313187959524329839399133830533598805199768520895847798842356247410505683091092462188021141643507186966030990753595039893242468946006767430564398867972444718573267162998623271093959220489052220443067991468776603632852285533259026183880187029064221625454870722586381935814307561013251161457242115899521561173867402354743372811044705753525928979833423015841905963810498986766519703556884292874352396838911149182124156906152573675498565999653081769963184320495668064517822919715278397390635608768527403646293425511144133984253790146645827052779231545456981954660804112716646651523338436313721899839091873224481974712309371796875349548432830191608126624780664178052681052191864640962583371433949128448687098696455191612270409676436260315298086424266694842859988966441433912719617886062889879809588234146747918932116658776226092794857361179664253186444348638751205006165970973123886474833600607041917483860254358982054285523743149555500995855520911549524056081823367996244706334883137317057428363605307301331606198171178001984346849096570861613518598671277095081382171607642509706785082459231701366231343937422632367335394107773738928731152348307657549821618031604523229262834413495447836058952159776008607775400238960822304669088843695532638203810905384989656921758340390062622406354728777039437578171854681488954606007208153961097345670135314717697579023541271989113635809285226091881400657353472497185779754565350651033087460219498072088265674056774944653360161483691778426164193893091518416170404166691046818278642001663995783870780541685794977682201542802753409000892508834942011303627887748239816625222926858811914590177509523733748146890422127661400209106330177206030966298757447459454102140349064485899274873766037976187703271449867828816619204216607490733513865721645883478481249307684185530700087810684260422927425884198140552578811565650094722835509461827287340683688074209756141612651379674794907313468493408421779281062162894886981673452571890141928932908330040013975061089458164983418469515445967451755730454931611131653686327487462516619945273696774387343026678636886999221682109323337325966560366989201122319677730673018926163229485482188312768111916045028177678891419791891270031232041713864834267626452162210334977368600972138685518907909995378685419877169371035695183365373295352853636123526906922988694120205712086729263778615272521429855564350880216847074921232548698449116040624408019800622186521423601796304315372671295661100860584395984842590574957808373379707603092479920373736114326797036610886798033432431832776430536373792576227398682147061670341149190938776757291067312371084448512382401428546244290002525814860035124520534684054112249831158673189474517148912483756079232990958034294091453560343432299505189931970112806090000048576643115497656824649891069348674705330438572664127403164015244855143013383756348417687208242140185421277354108335696047311844750032865784941730606827175325769764536116869999172892809057218665335131474927450834833631772245658121691716584908013571674451143277979327424267450336877778956196256771490466354375010051171168551038077247530580686983767483911539024249640967609268744516908538222642762612184506762231616310294815125983998374329740475664871489216348751832265248512040679262816201584963253843718303976944946331788797896740541332168406900588008549852620814142798237030963042915672906395361409510805054094440222865614365592659483963481607718155171556446013927147872978891670631633273114028098972805940839712615788042409744463911232669451753458855904505240584157155701541936954373368323002730833521045318533693214651234168616869944862119187114182628950408872060656085024882042702731241072870676472351636264468048594693356481716264779730994554061198923598867142778037859818811645635545246735109016992411373801925370271398196940774993637007824766514427075975388157240711528574827804471472805539985160206264561296031302953191085974169515084763136346245512084845371425037154497212501117702289793611248260426329098814929725772174216447571856897726994577692296021810965165396301237960922400710560005272439276603181472303229415986425505821800402862048536727339482764641607034395454774521032088225588901119458537778585447450396847838904169225892756823228944742206274771711552629169137515776591512757699626747545600319219356063510097405310470284622620564704463180717394999217657928176358413922689662852427573739812723948799140385388932180377316959438884452824400484165591226674659255527210709354387266467382714185506102755053002878694146471575592889736894048690831203530173937705033321771713927392630715321003333786443171353626715000299041264331267085457404602943915983050927299233013469097560050884173172665528404223485285248954578265624176947909557964651872930093483550379384041004800645196187240925302635663333592233341432161272614992952488624362874718579449944735658470334099803493538628779697018796925173077170950876537527083380738992775985853851602696124775255115372663504816990108709837024456559084770746738625132559096168735175493921930768335495127445313698633862239656231771131038655379710461177577411635661266547809520413201004827767965996172983906671438068262285352345661173643938802822699776840504121150363279655038941898645304663172870215523244867126479342612474970827585088211813581213600457070906539314123355959729602377592957353784090985052613381178733637389740073996566107574275124697489181663765942677914441063831338317128207394844999401277333209032991674634281315627095981569471630941496227716876156159524275730839033349692915058612787510258641950196419994154101904434625435283707474752515641800048893344368279568373137515361363446866100691597105623252537601478296510679246472882972781840604255212166471382326845379172616747049480454768643788928131358596154658891150714413895383464202433877576143539044955088127097593002081186896692525778602110178302889133114534617739902517446655031380559950868411280933720504913804310261124993171287160210667614825408638530373556590143439700144155826691319686253099515349288779486043676467821345277761130591117348600836797563804672401362398261286222373115408606193821294641926019222252430391826968716877031253740705367212709594302885603600422130998921100360928385552180082193272036369179477504918696594787272117277317729300333211404801788381701953490776313608834250855354425035967490330239813621826776830664609237863105135422485665013523390210040806303277247245422955529259376018034410219733763573056923350398022334260359469304612080869678277420744929891537013673857556844723880271800080500991680038573499515391064841971999065056684713980469708077578590971047792482602232821107988262609634087188398013456299095439616022116459223683533992105771210824083894370143437982125159163646243195940863066505019068894154881266620885798332683627923505131854296375363037677847541973810438925895271445146095692847721180734632728290416744372768217303572503689573110784370869518985935838464418119252951384889477905766484708836377651969833958089406849789626449059278483913843628105006315745542249140697031669503537131265307560158273815076816332576829265725753771129767646365938830826988553554080313895591755002138313437079834721071769207614087466326349074899111525245551989636520605737990210684514069849247186907957986066861904624498890450018127767688640946835650156022189946317213091730409661213398025954382720941316493233562321993145234399801915291558858030393945742004446116337122625631248386956644916525631733154761472916914384353880354188368240418259762317499493013032443076899896812315323313141525057687433355143036370498577190764795632276185123351121515843759782631465573706170266878269257976355309114050926769034481752460045803791158761929162809918880436390292006786967845126689029334468835660893478190047639216955632094143112233750034499402569929647036883956600836544652880302382200855175137335611108957263867202795705306730284894196987291201537650522927076564946206523607296078022519448993159639536323150749944875789386450905878405066521398470108801000460889004005260186972584086043103187062025945772150185658369447665719866446545235921880540167422556634596780018745670613302846494330294072676275726957910257381029001274792263856355768181670290337639582380481319687742104742678777921877434221914969778444611627190577762443454187411420580146414042988470767955597186302955781107879375058804395839809045410394337875442265502251891220040436636141782263707935190277839142062738409368804742693924378815621612403685430183003393796065165817453093153809587735300309277939088227066112867026646033179761297754588458656394417878783255824149027902052259789242846575147272508798417318126651437882838747999559027017238197953946578997923063657351494785131643513690545574881269679812724268794570850828157186880342676769047712401458440003366616233774282312828006996903025698176477663840997920036237493638235416041518201056338439113072203962538799387296417498772924765233643626824063599211339835024143076161821332518222420383142816248095132518039590880860453326641272966577449856032950166281995577180061428324210987228589595126270334699826003512598282804521089141478558888324322247884945306416052779294754460447641018129761882401636803878434809215569524235923819649454209096726274426366176109697745077803639052959285463784616738796194463684371266055942354062568803928817913147855908106734765243406695980814417531061291294146156848656436447194011234695459013690652856660961306940437039533310594882357504408768653010153715933950143419220712188432514507190281736206930905893398303651665864159431477981195695248063324142975706695365908749498252482336010933588324665323248639706220005732363093374448337167331235809238207738981674803781277253614584011147825633455636503997154809808680551209536623901280810839796883346347245599856145197129639995042532861884669930821258441862887255349513376927816046237352203126872665903378980304610709045022312664990745097155225614285453308989907169731753669027297145809091549839000573363244177996646077299582500967299080471576923610877675153007843707710941029478606981132100579895971067308302827437190958903822668023554929177441639384924586008615359811120305846650323615524758039550346063305738645609843486773360647341107255857759168847927341108846742298535053559510755871748415617713824468050229122787246466763418343741317596840291488910170791690710362005567291027060663792850571297489494620355567662716345844039595718790085072048553976531752841411556512862967785538643408505177622876623975932660827368806205790551426138967791771224628479415440059590934757914178187034687220513900481865202364816129467420383459401285908914919744913968029368995559119589621363635983398898617074528658079166684747205896162937183515679730573504393649370858394522353737008173626956684560252790344043985851392240887465179481896968025110827282055513345106579333257776566885865152167764285162309277866384479420295769575629070474306195021007271685452259502728047715415740406778625556474371798981507224765214888583389008357002214180761863179941864342467633599987918337170684844645424044937570482333430244876893980660861430083948263158294237784281010219750172387559826347812620402979575136965240651192559269520266585790948926537987964244900018333365669946536342547383921340155344344478676775466967307015158738008238589576340969457440741259883440860606551726592287262540079821622280447304822970384063997778220400391727555416245706050717081752308844692329354695899025433079233107663383930856253213848044565879032192774399286862422071097126237312905429479174275162153262571069617609083240867635456556183762356215096377084536724135699822236661708242049848409833575173193783633362393849797330546041452773564222452294657522009485075121813416838195400619643805064951136090474540004650347026041696817747715517260378396902047395788818096535850254816138954763172690292218598920526853528273447913052068564088362020847988532801872306412068392620367756757105735247007825667474434793802830200060552133851857208463004724263853810614534796468379084453872170676613812493407868289877861230881199206149192368812690267835862408214741557041766840800113548959260801755357248712730271466418047493182485517895087329387239046302950431351757342549344550008318650099878854229935562856849317494653212749071751572892818522209385950204722309880070026273621369387218213105162796204355461051988392486775312621939025690090709882098969193253807538271717411328941112255755030684086844516588886458869778095651496927275833490060825846118177095927555290168089141807715933335190164916589027256554451130284023876464631484697266496718365788022265146350131362827839515057730640289404360254691243110321447195552728666213168262953716133955782673419433090043781887629682503102306293705715882010317503816730438204340384711109115707039641397019005953284387536115439128963294801751636591012691063637013562649253991032452089045456028069825688688253640016915965515056956598685207593511468492397450936766815163688977696860717677777773935976144710513977868221648889584515108879659832730316850326795063074584107047593228587064228582069488200150642845664560199327883972296797781082855772569725296559132116990461755109476365972008752376574633191918298929195928911712320513450877926512526227893161163415202781885721433280032817633534301081813263961358652136302342619357395641934005709488891353812761635888611530744955480890816428829490606518344543399894471185584072749687421676201780000612799156031599720147942049274257495193835828262416888896422783088731144839103446674345102052259916988904694943456284062912938993766876283957606270696132636631652969403427044387041867711592175334175316013246193749831332301652176285611467359686416474097750612979170774494009957801127817640598050940483007094614248644829459846775144783880735289689253361561351133222792416742986391302762538857104905310312816664072830851544362323013470398534480032015888026464531859041965140554417575303025453300730051557745037554188253732125159933725395971743557409090345482761994440150004086805571604831531651695124738328011381211329759363225038575441305095617716356322271543571899723494348991601414846751189097264128476470477110355032069237071034855166160014703839624953482035761648781558285256236989888375606042843349497876334190258061516401315771913825437425780033332870963941391902722989814706511086866277483551008260098406969277765844594627507280197724737448605183971320858590587968984749725323073871503853801036511001395132931851040410596764651945344799084544244952438027043417396832248542163588939747662597266795549235019526845555294005351706613418266129867838985006198415699472754995441229246739218555775232516840628442779511386577249011514014772469330776315453691662945446502741128175563083570556358933804022580429753998228844534091537203300437404690003075341930724880595581210978866606312722022566594288625096480237916736101013360347355772307446665687568211058036789898815032385531056657357092237024942234165778649985760559061008852065001448795602679790911923280652800746029535986881477210362223855734125552770664930111599662961509207015985388253026424978594686381724072306175836486642596832623345828478693590979023214496289173620646560126670728877588772824111254527432090160902157149729556057397294377393257705835309099785503778941917114373755419480943927819492829449442592064227098187717878365551491301909200129376238269535734862937356820326299174905482607195707241697547508785833680272186998042443300239942949059317203104099030996077401896124659561186272069390490331543783616210008293868546139145672758785015386692033109356852665146696058425586405176798644362950794926612091734725591225730295031632601820560745849852130777756769600993587206449542287990135335318079016304831529019380447005787365596648342121174861221989615185325485530254825641589365143379161221375182351733249034701797942763313924750997723962450612246977824503691720983165793663941906179663058156884948148576398260858957426019716403249766606389438427678567347711850504983558615227313003198707523284557634245768351487899921256232120135759876635109731003716879546920747652394037000286439358025228081335663523810066094485065307497524868168333474479264733033320245701007205917209792138601390790139011879959480808458872242647272479752848859042717294564572627186019479738082780932017699842848228479111227598633346398588630344989887111484778296116463278044027319494518094533409902918150565343230720644604607852719735348389592263827160365242078201856290867033739576961124276016000986511633124835987517837189376047739566552597770733913777003758451338007085119019785573395891113983192656263120342986704154894858374662807239478904159551669191868131541519766070603247316312006188190992346105999017878839070069552627414008390918794667089753054691047369450805760154626597925866111195206193918611909293781688350458339570927517846655289247850286301452326367554530717133615677866096547224407002848359493098239601612792689117225518000411879227299533289843600171922424534302079322007889707902620276336234216540277846829913781300585549438140380404657723344285055989504102485473543790401213652536942441191865905250198828968720627555048231988477590279064289587229558913807727208568033834393224890569672432619922824981506008945696236235522456450217207225127869657665320939166372625876245821825070852258246004014510379833028889930686015764796704666698504326536334734722913315886847635995719567455047611671188885852342879423832107552711327013443706336620475060202003416157601364948533935667146411082106347763654062614160391165148442172024855137459110568214764823818951482987553820475365974078341055396270543156199877856602653487425561836506698435218708542704828744179631243133119522889171747817691155630600237620942360734166919197010644171707559437938846464049574547571257220165334709719642501791177781247994645975498308476766536660751981914336643060152998501065540928767510245629200746353978176347124650378362641009108366131142846572723774064991037879959305748793335246804088772508664691819877818289864684974061174625024876640838983752683730892936328862329930027410084162523708247645654467215729979485805535552328058393984477218094580100864112861109503649550134316250168505479843721724447436227283531260643175940750660445626350607394469239760300082765615976059950448967065620602017993025568635062837645017457828805537487825984766267437961144878892604129895275774240404441358337931374066905277483397698893150558745594433253525528864033535181557470364711959499067831338279059138249558756313105950855875920198922763223166834440861667244499391779715935700374144686677426541737276059600482402383095304970453266070446932487150852717243213434452695325686084943902862452904285272549856321504116211412978852382373563841710169534199753702105168580308660536376528207708119818426340887315703666870212780884715391437484883838748318935612108081713712086423918345531775302784051971291556718033123410289208705126609312264310808930708791714615929619976080260948608374634125616273878881844298721967140077564001396279331968058048217479196013836338622361647248411007381308085131565143461702010924227236473817517912602999734394328911012832513118725250483108760530850394537460342145493224554689778717469886897475655968359879212228232471742553669947212070595881308199852542819826798727784798915599474205307468744046441773079166662046999760383249674379996672464609422929941822541089085646910377251466331071414393630246143554335065337195335353049247813935326165499690510798721765532713837040255726729631849851535836452092095096960315120954299562347114476356737595807715524558047502638639519834443752687211386566330945645769935088172610166009108463159328161192305199073634799846315440954787305090285992159299809494264267454278533857093508628616987788157697014196004921208294709457653425873266512565513547781805313508140829292902345555330087707803565582409216103924884941052837880021377579298497002055575479442688877946222708191507234111270596123915321773474442604777068651718695312293042047504657658997576133528224339315880208838316968487702073319738464578750115961391650732304441748740279394405095553145224135164164468337877165269263923095259057752387460954739246640147301741870867557639929946195322504819629511476763980007436767040612436142959667432301980470848893496641664945932078280879591428714442080190456072918000077026634283474440884714370200774621659328992859655966810498687560306459246819184409006155162093707892455292026698105914769338012876920777842383056551140170366838190592124557538042512272556393601700775037574901133079802522824626768809252885798216723481708361424547920597167864815516445645482787641447904758346506784292317223315975505295894312024910518961940655364261342191262809770526282025789028599911809743548056014829375652074120320913587344847743552245734361227592939235327426252085945530892913460874158228343912637321569676084487309024292618888446885713618403787088498663460896062831882225779942238045305601923261251658826201707876090545305261603456559840776948604831558305686189722870329432923156726357332895545948925219996679574676024171756169044904991026158672216302985499654799666002985413708633293998394093256009194263358177966024346455530855587296168394877392816257508403858271139325734284339074902213012363493134357780516444739648609322756346867661346890245130041537801069244654685148338861356186761615228917207768697492968739690593874119566074572701220892117406764601159464657561453743097324253555819817847155998373793988097709787664764917065640507787942336288714749116744864325150990325463810999706317994651774961067270526197435751008602163603995314423762303543471240415426524126870998433247517166010232972452293297543525236075102781785805424455789919440526596654558880086762002444820004371097369525259226137698205298411252185069023186217740185445143729337950991660051534660059861425226192365026562471020597853260401129988676045712314556643697516575927227335623394730029783751003232204040824826548150205718373695794444369232028581817101157006564411279325976197111025226036333264234289760715817760221896514747880425342265798855140804651475541009877455132389216781102727772822275430377287102555879132907625831559421146293502302574709006593397279127797522739437137639657010059634953464825630372834695605374376194548440995847227778423002851176968100284737424987878284840339195796642590351205964907590199984089153837031105276612629509821534475340828335531435651810603926385113746454379718983028007204945658148084470306185290371200041010320043466535340304702574511691011192734754664652355024438873916612879177163460505782340133748911696641371904572954806865176910588850728986227724197571099496489272340650034105257919255285382880277569497614477803246743972480034004499723113665744575094415855971555033786143585944457541447405823378040084984691454212463168094469464941807254912625484455530293951002374385831854186121826563822192047199961008227597638916507201928481391016771936991001684633804778456199783621620863096005940376982971797947970132339458435322726447570273178151635914527579657887713197767418790991543795823519669427532079609882886887665215313442355322462283892779824922638309092684344915524749835498346459162512413998459740328818975103597910588333087917556445223475948387706362821974889174374475994562993542124405693263877506840690930005030028427544440170722492744401825776973578734273469444378386941515127863829381254325343740981240877288872610529816874244857080688438430476695559846333527610009750079343424896810178691706420116957906156719510656618364893074891736736580825370463350473269473305462054479221568115239688753664727329945905889451871583199167511418097786847509069644369852614426725084267633715526298478606341998079288197958558923473757235251884279785543717543358287095313973413338726241263572861913489071558304508854973582605091526729850747445531156688866917859505995139650221927175405872538428545040692712339457853807548954853169359436726202437645801821025180345628800520958756327092712422193388035233566102332444924269841048311904766265310481265209786599875377598770655756675482044580767047974458936674034955104578993972526760508421733825296796355356103088520347921132647383611932972521460280816054089152063815325775060056151154877369085756004719601184415098992848641687421985987476320301404819732492277823467113965882031326910274778381630281954287688236155437392670156241702915237572713151109692478070000526805918621332842456910845015145734912605282157334874492271176568868444880808766991444015568247097504219931791919694177291858089708711799559434299417766243699753705843841745785728294387416733478374373589199718804071421614037436547651159041718357459594299991048564743236283505608531032931201716658468241846573455201590943374387785147098370133245123693946606742367455307113751863893842770749730995556511293568942948160425883579459330424806643046375686317308069221735243272027148523763155663494450250653102230320190768161457870460680449972149100838185595282606766233257281723202540499050144832650555448240258175415430624268927106656609446541623512076098064064576342116251083703439445154214837015691712065768590942337119342137436502996712975848874434111032642077770402390679365924803971924206095180709681242414178500089163804811623121348604736724668772132873945778837903013630051190285558901115545622255665928072227740850908886353425012549387978007747154192045917850836087092134111981254580993697259182092254013032022845073675733294892063738491659205217548818369081217393830624489152315891721641445379565491474723299279445931175796165516078687329856279128887528513932000213124884148525710468510434021045750378117137114026203459325078007911933508042996346946187852861049589546095794449582320578157561631684987683539589836176814968229818994439186972943313139499175993342987170229392361537155933686675780035394286420289714822450248689761493454908587136941100139224048769067352751114282158555039186667531642749909576250673315923333783037058242206016165155046567021163148062808893354443763551095820746932162074758199423413698698306923795545103605320740917936291886738656163219057754813348399905776453867278505848633417084806068025396687768434365058950646675503136363475459173623187602122836385358761130142372672176906914487711710552936180316122400194430023173276571928455167637417965328104544030956540740280667676585154217310289881732294131660452825347322145356481679308289859475879004570970975587514241304731696917618375471352757138328260701038206812546068582796081291209850102779591032426539120059413862258932145098871437334548549875536699055118735415963698253061462137779351619664383687822442688909342802828336670070925127062160079871254644023115430789309477071252597413773804310073970712303901015567529669058520990446646426780261692799848245962271105125360168256176456408439052213772362492524920842318088448699571521191586200741709362471399357730604415212323666271933583163820642529693307054513899977792764357118600538442017324206442095524959443473576944291702441733125218278839850871826282554824417353940876848695657662613323794354488369525951253014368567102169869650631372777078640214661273859495137377975898220915805613966247583274272578696963751814923379452583944989943257111197216508278657371239070227455978546823408189794519689746194252250946329998377584842346245421021105792638310553533790628743005934944745246315644038827180419694411394898607228971605045452947765351919945752869973352410416534546350830379261520279826514244881890791939553309364864396040947664202918943357882067860361645465269352601152499866445561930412689490839508501028437277222898721471138557782749982039573533366926777049819011450023650269050583137639218268212539442165412205019349729533512062989113647003718638232929897644052322733932850024415565050094241436939035386864409808895546492421349353845072326450591279030007868158023612481470832686568164851142274748205156683881703682783445833343344474911382614031656312116485749960824401355273628082634242121729512656570984935240798728962195220195941573484569014890143237399422279240949173481984884597287273633999473196581524209544726523223482786334148298934451835693935528112743502435256967236218534636387659907337035983766105984569753884700112952126727940507234128051502577214477060712577957015434833300502442570453487540554702542275473544358765770512248883319535565106967199261282453283436082243403375024655209073826836892630249838791196010817914411222117685713039640140396430385244507721267464604229914306592128608218123450556053001310537060137156468207815784699177427070598155397342731639403064082863935798500036580175116242644938674795147715161821384633031855799707928895123576798877651993562953513032206576136751566777790280762563491689318209305835974456571454193471758661608206365201440632574286629203871037671412394432194182299923724017236297887135406064571799098735984515213547812147715070500893604924874945641226931541331284304747793883688837612736873212713295484116182194599929437925443095828613004146005609123350001868580028459617850880061867941200812718231245466363158157701682985680166710134477926116154833107679566892992772102330233347938746776140530171643440754302013857431279683674815938980123513985768965882429075288698992777317899175438919091853357511868369208778953566739486228943158562510511389536639276231531923350873274180403555416075520335224711218337831995489276500135279376266143545695919417792977958101616142591388761871076475682018382420467053828340896265224845166222924763436808551669771340150875372158618281934669972454797984711434163592900509612824082389456881160715490891438348041829995896378764356044454112949454939120299756554277012972033152502307626760373461028315399419700008811011392145595663265120052372421063994847743605492355540653525598476469023450958691491198900841265985659978649369384681640506799140849200772539727579139154738797116394101202968996781217762816518597639625780216559582431638611249788410167406833787968510405628658784624190061738957104377161479967791665947957925182801547646745085755870944999464146118767833273473166723546777500677323533039979757685868989607648167512488125589807995639811922440489112734532700707132259619239324311108852699335674277984147621989470609468958452041890534510229835022867434026468457068829054078736388133570784528624724426953018531168713839647805613018222249693556097519770201682685865193309268160582050587392363866386283216495711746014187784084739780374802018094416522540946174396561001513957700559724321523053518720765326717162550171258170639020023087611668589791882806952545595941275162370373792497166002069238625775970539557945343964027676719899421924580653845472412069840850464022002794355481502830546134922748821651252916043543101089491975781575230261671631069472047341134861503423031350457899712607402645443620867239530767844172873313252542551674174901462192362220582783556996783493040934070537179896240483744093477629514238180463739545184695573332545872245310045050525596888553094174566944289117873599810972713375845875804598897091588520559741074742086356157234778941362036820463710064949958440453393794566015791336866909999284476331384564622839065263535874639464101800112546693687027843394361986389333910411546061365601011697934957018054868027336915028406226710614451387800974077587706414365696419016906079877868768880462534638758766643017050288675643923300753058156604587865644466549946587646875599418702336622199962006213641936406066199520531721955837965782656401053010954065886554324969077979976642587541580770133142176192744575785501331461664772017358658720495135475420480355508293154861871622845178393665810170614468539433331623198577607303617032998289517981555270986186408423104761147221905842598312645079918347532399635255539219666034279068670646720815589870657005297556869848674052747510001481984004580782471306203058773881133053440913458209972627573508968029343572438057225102509183320753458826053752323246469353637412347624121394011649582979074457651167154602495374927702813371424404852564588364820056418408503885698068489404689852752863697750084761205930736879827111921457785777185255829728312250832333731506251936329345214588198197151704507714539404211227452273291877453897298767335282978343292060757061390084308859845163631954263705342559912913684172354921589829968754424771925762294821986674768048854512216813527546239153703858651106037583305518624109701361517564856550399863504406278978674236592598124937563424471324106505900949980458879713472174497934136941320122434378274990992904907962447737310059165795955111380150632975491013779775681616712013456044315014978970533279905354514291278833685124521789717098772833257563024266651588608800377801561382557491843542022506691630247430853094555504996244374069271256491926417942752320251023437810083628777811968688259131483218811828641594351347555515830269452852175015681806808295258366644521306734556466526244132809463214258050602977177272900931519290266389037051691413509915305434472052099146184268123795846846040321235209757761720457590287375022412530777598486810479913331244828128832721854469864534981541078249061849208671219312492286805921332891035242656838126811477869234061663019715420251280924655542520495768778085477036180463218139417953343521924942166262833255985265085938885414475828156948407525982061474411653206424374995309882203117433341430009506868068726745057933520281723601644067145868323581622561383460741339547637414317832232847226856307237341326688470148625872988385468805244261174143315681202402905962922301747779242587541164328032811477480925934089596539032830011527091154873327064564317427878390632775072254250039415750741286193212793296235606812324736077297387061443182130836883105168060895726093275913889751780349792127812775139648043243639786165291541351653553517224838182678353097790601481726425756927213314837327588267806182972715229106909112845475426130917751038857904292357838223992293059198139395195257214305320022077718963952953630239738774920866720765921644122245846287787200716822613835334794675332658958168418994264575433704513097732807852377712729540511673578844230087500469036819398722703792817707538238608140204884687701464506151194955704432607813765748842018352116683098960106943218778708381470890060841770611395494042939438649310988586405460976924319831494405815268822942400294224136097035184617060444049307750819444194130484837200398255812679895034793743635989524394465258521808437952636363407708877434696160755672458676390942978682385271687978856126148842010662536492277812950371542841289769414314082055701640407875334707299321303222526621377026213969400289840953001449598825575250824193305468045809551079250035182324581785220976721685074277513243958228647688704385186993291909758923874202382187578403356122915910341061381581968659669241934119303289735032789368028743823710204556776607518099299570939035652254477156264486116391377919475185399865938623375150046041643455264341845079621256579858011701388409092349476243030489036888717901983297730493303937386525165323051680039969876579720521620341694300014678089788491270299138032012314790088780933076062362126977144985993958952094056859708913561107764022146611650831589344195258038099644146568405114785942503087405562637399414545992577356885261245238971640030811401065400090300448911300343175779529064058611562388194221272663982996647116193654796941402724290051837879619822281207648991218772471884367163961122159331620744290505628042871325704138839005372457421760024294049730268415876771959810426513562031685572987453292645301243057083576108770818756568547927444893634562108022609625354003252544101429366887449134578792386474109996813982750431560695284457744379263946850643560805235497131082622691760235794733274240812138589516054334972064591342350613659615489376460765411997831325581114801047435544851338052137106797748717702481795297576793864767689998898799703677112555939997555435350325124062828831648485528905816134173581469229242480829912681745752897431178832519050954833460819539460254210815779986273755527535358308230582889759580527914615963980610281462855225780702828935864142229098475465912973002761894458795244649398645688225949116983686320395799021624537004834624063590583059277813527923019396736851637965928243621170154690047933664217360536456885690532107413479252636468444101977651419529395316018432264723478847751125078164950596713875458518344350802094106423860384310678948351707519944821483886516518027146134767849360796363360881906551306148184345034659295484332046428122220098230058385021453352934859981996073814674027680239048774713170356810922515401474343928059837997712988640074830444181651130050080417409586652409939418214760761511568182628184265880958792682747141687411046507852083873167994815813512262433776674146137427654338865024131355599187222305514655829682721218358699949887681363706810998046873029862382389067421401779024899206890697372681513382314569218504671868688131003281739613456341304933776653138655959074012337427299607669505525932999487859518122556392243784002754367704769232843626765518903076306979256905548972051120759195964312311535763764289105373201536664696952596443547318576846401291006534661013312593261545418216354878879019765464425753893828426094413202913391641416310628378818365049588245419627768572342794985514491991272803165935555218100276745935949605909715595232169848443429773150344627594501590717302135369844921813974726411782377529208747023236278734351748233498529391387488961561502205053501490849140809541456342678360401233938944083784620497245368848193173019530034254147111649826815944121351930776327064116235173556790608230589626723934325977636081482323492297982065803116697525271988802238702568842769402834951253046214753758837399522159324486058409173935835280734344226996311317111649082852808756427042591726934063934564916580754646524366805096706319925812411400288249552508965481722402071770322755553500711596316145517859999669124846484448701890582669156181625137066588697307023314358190606311358938644120841223647514820473572978837373009485356730329097998091213567886025297077879391396514123483601675895976541104715525013186765830423458718160091303339770483374703467815979625985020850468575535592861223093990528338080341641676434939504520910410593687605881413383747644259562735908617226236973030719610238551245357334331562247538847742593862918383893877138802725311408341541276497343397099344730666630341636981981158473004280105409256448433535613736196491574574503076826481744369849788407877134425790556540459103665629733512880568034899657960539404582082063959933726382687822677564620839695825639016478835284646237349966336870409560365973700857652807136884056993145152227785829807459140508449427171769687356940208839010582681501218543392422005346909156494120821471994330783984752253719876576348208266039914152467029936906395196047398530846401400684583504653942709078963455260290825810108057270169510228794322583734594259104605765257750920623544919961343508091810276109063112978641698744209125696405415809752434933196124248922949517055083472059137075199201725427162802756131121501960471792378475672596718632272882684688687464193662048322675068584731460248830573765978997424969600042293650194321633246231463776382587000201239445293731251271397199305457006316225406789206239207661743552052668720655711188209757568908432024510448885707442080778939224385583084839745866361536146127439801668946220811615757246144676737798238007513921342093976401941535432639131678880895601956060581658979103164611532449266118673991881652974477976087932510785043623393729812795248371972738712080200141069508566087362585963630841887853368726162115595819725096332543309359942399160848734229127510083079097222285424149005384118990589991575794350392495292367673338890754525131013095409968753685305331159584358573074861247107095876822830111906203918084071563630280512361016129671594345455364536889154544927203157764216505116794567575907281555045570364633483911275331685137980682687658707750654968789510804143283115776498788025455853220884791313557591449930675259247129540380760295218442265194193599949556331706731107574682509167805790233944526733327840247943898687384812460393619297451380166492749064885625231638051471371557574980961344271536420456319513498450291511452099893091298055455433142960720680559384383671228041373009726533500847743938845578182875906334689096556285027798388339919699282883349180396602889038192949842160346337938079528548949139959440329853340764936965264618880605309721877659348663730345367989850232472465806751410734278749821751140259333633220877254975482521128676658808799357571374196918528802044266044783000786320474118331116543376041763472861122885407928185237299234847956414886710467907408715094073483760573760454804017672424512407110330055398981398761871481028007093908189149723662681215650172331284917281905089594272966800272825210908877034258596425737268260512267714057344802527083464363235484030235563561184933401641808887868401144017780599324985075758208343178725363042641730070619935916913292174798682100500189348918853519670292504077686917639197342927783779303819206144799467380007419125190693378162741382778739798892866113170805440987642195473027002235993168690387257315946744175207088744571231285543771843422230542444505097958759016500716095960463688862869168263666233966627401256134246771101479137631285798383201909446267510788755516215600072967215857428005084134886533432770512529897685762890212527756011919536547493541607026912619489685886398839516592245641315116825033844217053165370942021235709201470885499345871273234788319952986284380765803381037603505074281826210702442736160703140743381965627097149825427106254684789801649086548758703419800318792759294648532511005753218050474243707127224449228309127997621980283936007335662834282163771224893162551796248019781510215984251566704673510943134146871470854624283791654654929237948734237845025916033272929522203293340502510768553025232605457454417027444290584690783465831308107436004189795788578104306718575796239529304768068690580084242332659911657174196476935215302825111210956315819858389954527667665398885605926490515256991511990543550372365584040625420873500937518711506619112420970016437684649607981793033082241852073726200927033897916909438136176521887355609219390009338621537285830376886295795310051575011387368544885447704761335327900786443800019207737095615072807368655468655698545528388284238072191603738133915040506676386707540560710917279066412566647264999388555388131535035877846534072562469574015468698317908585935167717075852438345325402611925063602329928021476455729704269637391590064218395589761762457775759025894392310206854327211281922214467750411637146546568618569531106137399884139729251069876005263818262993253120864144774951096960855728940768916635764722954469196554988130465354129895586521856953269723795444487996724439787092775889009909659849078405381346791719862432380676767371618842235923937527690378538935927432913581563615175566969021056047793933060951687658490749146403297154067720819890049665859339719256660139011634100611175645920067716641237679364820857082043353887763895214894635001916751644330249173814306709921850544515482474893441185673896721259467250529799172882531937004857572128960370005105321451714227458339024064587736089060566091819677503489425868010084290262376543890748866616153998074376781244334899176608712272403351090261807271812060822442714935298185048755072635305398076981376731966686510618647094543160151153749053251035036457089245515085722994917949081091614563373464031915284637601119460183000297156989091604627929888718900335102425658580472353150317732306025209520608218964126604743817781634391972199996406287921670609665841588816754585266549800389482887005706439260654442609606935220237959273115557149707947880501553788619720107909960900114929843431789858802571874821534766304162995746235679487386178577963794863834481854902104032363608950003382884810634714782976094181030293352433409856554614459868571064652670999105280757364296470295036141812021469340053822341505958253075337523762867939458385831526484274662803417846396573918515259534252065676674423780369966613667644059633120540099110818589318161746128532742028943393101437610252026734528397897039511026486363712558732367179532936386962858487561571625856429214000074743462480952284215832600455595164800761834560810431471034066796511080168830399976550074432110750558858539681215991304775901314737857371653262826462226758147527525864311253368602874833882348402773831984618936237341681141637375501000602289774671026510765827358955806413545356411526056458307370847572466789575687301905202186643400598889503282525067476409918247696443354520002290909986138656386140943680692143085745371990193933619925539671405916622282790406301426583840499672355003019447982306031390471794957063117997822006899285465231916939875027931743104435179442841494631047373129348552594836205424222014831190627565296936082871735598658800102491219337766651889219753169794681705310720817365426919373608372775089310030589971805701927932970299306677367390281450759285499128944617572639697103912843973088938792167831476872631607584284509984438890684560565105166303324206360227064221960976439242829830817242876619219506937353362341817294692359911909881439637698978614863491253351628237445508294951564240224461233647018859678415624760513177910954895010992936430314138403936254311350974995703237384613843059430372221005768485002275054237460081952604465143998576763419990218007506978893060665298232049068180572932162600670896020462467008405660859336516372945332110744236494174314543774132241905339229171344299764914049204798032198916443355443165613760323262061777951228869605523033751765137754513200699585958391223887063709872437938046186657085801473787171892995897798116940373113404231643547305426041871137466117508025717435453834928494829233540098567557731057014075361083726078993108314581735237549355617809455417955102496387236646032642585687348352677011854709868027297613784950607191208472602609435151309949958194860036594778979361948619610751852448509805940174311412028755730097645332477326156753464365963314924658043574804050139067030769798158279546433151815820830120116717847799036286412259505489718909970421565207826490642904758955866561301382671841728564905370965068297222445843147525593517792583792656807904401939244533985851847560306540048901397730348221124845428941878731822504820046420271997483417137079383218946071459626650842739529277538299217750761716594028895667966938440290974547557146213107162530046675261261669126495705438536892595313817319173109412452630641972708521434921296238667991888305126471819632107530544887353606794326612298211321777255372556979104471214050439207692764651893260900689788368982162665490368723912596444157872829239100641354994769979037610728772545666028091958850799805209664429127541232096783489889977448828655128304149414907384263709778849398272813232698708374739408798587067785020326639577919822796343927197108168803966050728272795878601040459808405340213004933484266450926643845139319844795116918507446981606024779251716328218728854846154639642365270167381481350046487738916940749993701362605145722512479253854224070633889007472455776926461964814133346409213505312357411398156293568248342572657984614634680190355247391547432910090066541169627404645823567963766620468276270969000252639588124559165401711447766425205242134087356984968201564249100826236912841627814248562547449934919707234342545988048001164701620085846888386084691274905083363967676940052663976151243380938315904521987896122923948094250323268720894606559157179274155623892102356054347590645562571081651252074464447883808720197611217027027071968013752421570110112628670652684331659794552959249084731108190276844445942118898124488088859208504519927638980516729577610172094628107990620448912831429504897116343725177516437962200222454902636466936398101372521591681075566133526805700598155742094478495949391437459584361499472623548152557655253576027282118871783820065213982737833846389582191978377459410356507523116569259496203255021756023964412380152352138205772524377807692119292751074068858392270760085473164106428127700182676002270148691880162927985771262588585491961352630661262371068424055440147636610355028542514003349438472456122076637164759458195355753520112874563035459003202490216683497888650284077399809921691663475628993614243971207789942325306122554760040082994419636950182942427464013625996669535047864397749386673709626604233706541600203949839026658954734365125538213401918252552533281862429485172483060752387003441344825530649238226461599669351923962473790745810062534480986100837471105441494868039788854477855075972977998526920012151309160934961610643564279770780526745949578257321477241064286988356588720363502042486401627579683788403978407137390823154242026092545846589289299986385457216935086995936877936669471594902040479902642281763070021341682677353439749673423468985582317362023420552072534302161258623963627346203579187964757654547386957057115230722876058391971086688872891461379937732330975886395172188876887805812688824612805183435922478764112195727806257982389199035328290439015274840902301899799040788716410442948705884532395228500272320073896515493950803422896612391105071786370512424586955945244630032140046781744011648906164615457320998895433698525054577646163760020502713136299964653837691157691219695308158214235909311569455090931217944030985873133168263040058426136532406625769978486146420840187598470472961650569058600966260609003655495249792401847510688585425248178124870655235241938302342058326611001886875423570303317172335078032606937468259689331417920428477148739553568600688456988118965374420004998994982777320357384669788201881274119057369823408225080335173991764934160578420626284345464812958478367341913519144507717387842598498664721462846783008100179445832053876442044106489242138022989516667254224020763641600703119093060004253305923103823808343217433259352698301130773243011779156230563224408173794703975408311120395567579860165665314480744541111791254855024706330723300688048581828259730793409621830834906739440197794438554484851866578524858045272813373291246973583583977522092839956545558007160073950615415195919751667780028157410882925374548903864838460299980648978108541371793313555302247358149124213852876204040035053566564536352313649894840687064485685614359605435904838095126670628951329573631682172397214387547966126352004902567506171949982228735668946029413697435427614451878472114110688165804177943705013224882635541944499047216020225177190611565175559539017241732032215481567946379076035099103877589793454202662769039877148775171276709044925033440777947759290596748616615779376668529546108357006280592948989042842431941989394124946188237303436879435110278224662825626221750013007873784878955205065262111766523581070154055015800155976745518810346488182195173230237620490731337244751734602590527765236895080803624732209128897338363477113480285371358822383096498712611184415224526627250343023680338725719902714050600336049022049614816127249420130690151968112758219051245413784694403607326882091326913524690858308091909148042308316200810312209136045986653911362947309841822833752585230310020623079681579341697783633182400227938535517478356183959273283699286714758236632368979686497659992905198616368927690608397811301214610446032259761593741916974828667003923445587925087168273629726590654910234107464544532348362604135793455934994184146868079679160692556648946130423516645690002349022166286178525739211388767481212971050960476345752641698805685383850583667649858614681142803918611512948628453723466518573036698596380443977320346643795364006742361858099496682367196576302133061357234150125282152768846422541585565692041307651446207838834634995587418479918705143107846239780770316601105263252794690876517489727446503995336985842480112902063571778055987299913368526173011058169925495603032731974972161335327706757127687977545761695326464497272920331721303302702184620641465657315386286389805834949767213786587460756571201556110414016801880425755087798969982597842302083612047715600765431755899495618232635668440008189439177341457157572151150797104843642053040807604533594847044995103299045180277331617882230300402972470290610777683273939541095766109723405699603590457337285933459229715833072728509860518963770074195474958193765307837830865622090381994200323229539863862268306508917818354561423216154948819611793150257795202125141246407781340010330131426894094260370330848404483041976975573609664682142686956395092031346644759725436497570366424438658540621415577827169325665868383082029759447007681455112410526491809298399027461580687251998491129071330047557389144293738901020765016292246177178647376333738962792584606820552292402833416258182783953285133803467134906922392381000741426470663952173577903695222542616316778384796664291502683632114344117956751274270008564350847263629363622922599189032663374992585799790415468970692837145189772477991312366959995651897001543916856351335231952332692093424146429562993835232930360268172445213138610296925289500230202922190995964871896784052171526706302436833912899323423620721184713936068456509756163132107226020539697140986921808062845183398141077080177517234914614804560383492320317618183955531346278548194342135860788802759370648983080726880828892353831925006262813594345940742880047317208775619149249951724221126718176995736601777021556992174575036891861500644297415602328235794549606335350718961811249050255760078660528320624120675541693766621456552103928004651307728163144400132662287203945539688089933842924670494144382127056115003943620784412137357372300111355611786612507447362670463142183474363410908982163858825743307950121367520381401985793983978919160923247086506597951958962838798063083019974843825930181462709064315868628059402488045475816919272108085684876732038229471125421980646474519039705662455809909278488086832015032315497278534441202131665860782798760786609896133966625196693881425668632079000206621096047900622475290280745191161991138081236201894820560058454045020291895309033386736392180842055527799605710700689341015501479456285294730485700058625819142860732242609133002511033377827989852858725573006489786029731370406637510897824075941649595552724095034256145891626253897841069538091242548486280884043484983008893340298136517313444919547435947240905808901127800245581048958044631071643682797378080728306862654306868032520033178531667382755786507871470474724583630374710861035489501800611288591755947879912560941631765148885055404070625725737058009112069707520325893867256999130228262852795249191574224847774627885700821733868783516165150644594216135873066021812341748520047664578124178769756186389018986712929509345139530883673064742669180310970087633135234182408117492247372472788757242655627327850877051372281043244186836732172010013639077484905994795188731754539077142015417683592481934417608231481559378171944249515672071071852085545386545177024712666594267752532983903768481947353065006824656384750516837941417842993138650786871027856658027370573389923682968953686827169864951550411239719250343162437943486114859976003013595887503271925794385986987749123497021284790337595042406301213037854380803255730156221268943405660981669480115792852012695352946371162715623365412971719083463219851992028873202946891791152302766054199367827934948504276481598141595390503537383588229327993451259888222485558880348715960517525426342409445591732809646610663530545440842845777781271125263427607109883712183399218682948132125291101624992596120910595534798459265266544027428418797929903804749972964213103786434673520571060267578521888460497727053450744568546327892302543924009920385978987915759812965082586444497921251160033352887531403096219088299623982211952583730650271526939356950293941256482984076102938632520963138586029300897572606320512518797121476405460045510029944791990228513966639167999011535232229740830572960356558345812760711424760016137055777849851141233199867738393976883751933646259592807215727107219407402753377069392515294442441613422325436788507861320506966382593249979467748551510217180516902604522629069701180626111217246003004148850024566175659554046100788140744372209917843112449973516290005531107696769819703948180292137183020960937707993216507225290096591541672522619794468956138303362043550170572095134355401189976998325340666006119889099184300613011154230027950615709203540562539358309778536540858436305761865181073760978475581644508886427782282693886694811933062215775298554256205131813846483451892080104505661251324242148261072129790507518070995973745638662707889596807936202646016452811538110398196682503989880456024846893585543306137653256608416094843692369442193631060979154341411372438619103472022164058770236014906265850139998578775006549712166431831550729895074384601414615248743135760480478294587332633294094537180640948922940750659344451600515436598515112351867100475449915035156400033602932311354008547167817684566536078228183407452690870209581514059868235700352859857780698315364312598169245815078930399613753385501037286961971161647696561026209483599503448423031402282178924040614020348179392420214901925679410624165744909851695908401575440714664538400606033387377581715686584710818848084085917434030458143918071750465416822189122134908642743917347965103467957037564838204126080105520049779088378062184947268209274179760135556412495501597075406367781836918053007388832268013759520640549434847252635095289023528060954877538639970740864866526889868958030844090581223028488821012211166386370383954711811249741292628694620131655811281437366456194413999063650727045341128724129423495406829573552087880258338633001173192017736411467834126873537899548147689921500099320977608645811227436931011413166680245536875415917812107621000883305626619844221124908583739694066204636046204914797078496431309476454252889684814475663068587382022316638106294714959280883018677226894934526575155287574391765428791993442587311917681481478435437352557920759381026602452263791630456817603648495115692329965482332884011896900783073568688616342760036167156648624801060504039694946350501831251996670983800815612188099991870889727374990722053103115840253740597080994955523240489653270551415080577132364650890255941753072810797591451901741958752168048775554809361168184869505146657610616115513119353710720144703023491543209078786906718463888352901854726574915384882733671716409649633994515481620647541819963412658728524789790052663474121968965626999478511528767221809042740620593047107828992544385578918857878259104219698426957996162532107610946333433665601926618864751336732256434997358823991231558188430360964956706890488171179257996628775094473614276809236451660194747834447132830072576176609967359268947276298885184007001602629991667329862875596271633658831794769963255172089683166858185393418249291525842200490315148962202287339514411394001608740067032919900674095112690204702680428496349757514748171812580278126117055100295869760589587684533209000241971343131720677069902602493434475143727995963709605973180848796667690004940717507689870776018170635416076343456303434915084755194427104320379616583417259706249436682151627085849988018396683424836779144307666591002898400940232332520809819276061616818278292642490951264096286798020695719062871842891021898231433949224834450907567442343544269495342920266122363141024071450351232585671213456048557100431391121942162898571814477362217848026395245564739084801765241876366926518528865799470813444928452369216174809423845456969091993195646941057427714648678547108964627024018702367134183205622518669512951412548814838944313087988473767912808911877547677933141115664334025510153058629424862566901105114734434051594494070344922109074061424792880354092326374968777041472796129665317143842116149796524552209566619327585682926395402772342545171875872260586407104713859675017393874914339428340256318448939161210678496661383355335148938019128899229335841926323660677760695152285038332974316519594204855316011302204149858499240243464449492234864245081936010258880442317673779299457442504825677509932132298431974093990552184461799861322338792824351108026903303960845498666108002458000953452238547523662243245246223266465401383020039137801808701710713446626738814557016920345538573369882604805440998738266118663786720264472850124421660076523848675132199765249958255615161310077037113493296046806339554657614810631803867382761164915843101211193526129266148779658509335281833585365617608922495084333955887685593514074125139493107609687050813971689477533821910592642251956990667605469243788464521777448088946339478217334033342442627497762516965890034868386591417505542918450462256565972055693460753989599234510105101479364958988070149037757235601833397194746309617482808887765239364896141003060109502334917495632576550447150965373972713347370666005953144751467239052273813552432038271540982253307818639970146812497646645361966725443247613872023395008356034579990525899270126487781770166315582218298565172087911321775200590987270001751251080518704539323889774673495752176985074402618065160609261297174324284413807830716943505131450406017581990667765942363885060818119931261846486710478434293002731704320239989557208207320384191036689824396526749212788065547820401191979075887782425253547969532421322044850431877738395398576899594666300929089304521796176970269987505014712792330053985307166214607554790207098305683175921672887177731632653442649338527444915890329925446700218576667119440085355391869832406307455119423183994368704030502305695487211906387246554304352582392086579672807112519258624890350530672516658071634746542679731345213484519829634212892660523329407571757527676802075720973084179100181201159470922955880748124086966660769708683418675076403515588407640407472362746396727277914681243377854658707590928617838289043208065647257543146309595781308122866453149751624664700213753145796015621348938660842860169626676211555791540830503473648212793583960834635912682817170172899854143076341526492039914530291998046196647296287955925679924648388026962231697166419338721881820178769598548419032914879323387093781196463798266380687509454789511628145501818685671113735411562562535243115667387037851459380325581171449829913550014536764313981905881589215942307173984509208075517630515737502770606285497207237576399199979565040185171938847394083423187916008167789143414955174307511156077942290433322131986521599938303531883411854521828319403940892173795703376039878018859815595168670646854011138896390077621761284183584151025654515774693635096935177378841300911617278021345296283159164727257830623359000369657577034841756145643986727982018154906684296105847894065139568791623479676448661160350487127815922109449661127035722054821206359902766139336128383760472576653058075064377564885065415998160903505574691743244765225174737373470331455937861209014452032300941197448343592959842855375375862450233561218594002682416568952203214383631045034071606637124244161752678998621167452848002071900591449843888863139314599613907681655670581971971997185140127054581245620059831233891867956559798524373121977005402981892338290598593831417457959085911695976055019278134314019612830670954746960287946679757914891239888461833277991041821339886572772421689493067438775493342169643179261500999839379109453119581172205598004047336293337965722460022451650022176474344083904599366057176870880678427043176708249965849765279711569951506301870214312037894946045109079409717493019187666359039658593551516944100764857094007197600734353000955769003248856671949003378123857543167431662886286100820749918608001245288003756666429480255738776005981190561930408007600447568489881610018154133947554341995311779246154914784574419668564185464990583286280571783554898661268535487135067569853589453614110106075754199179829652497335790682624653757219164705006335840612990296747792889660319108613700107479411745422803717710538894311519852751213464984386285306493296325841515714557391431084904274074091308983291896473293117451944932111649057050066665213381991270106934241035903857191537297514782504735943499898144492598259633836801857884056335877299729893710416590654911436043691745035197656411018255019692823632082905232352583514793171174533312014829733042248771123405835912874869439980847328229366796900649932154183150354148851230624104688837565154878841132350714911797572642848525481590100896068588219573886371338196976529751326698023746641775929698810207367718366489336315674369273248269371897484817252141608219085956194220602449349353044950752437340730492786515243401438760441069163115593563713607778486440305974119910322609430798941736622059593618781288178185153271101067409316784199310057710329799014264050768660361089994624433557418944232960456268649270660209278486964518569704862695139804146162981436382122942685592665312044541583143999955296643297425260715481471706801260386796646682252001649942946783067143918999764680458199468605428239333575400666546624949460358469802948696861531355579007995828029032278362193578020054104341109978858497871097685211798353842137527398659837936844201354702857615998830685624160241382206256675840507235568276779151596575794696060164461986720685063715795947961562313612023130668687457694730374346487767722348329779232866396518041795221179748383839521803796185704546972636050560157456287924056406006504271407921156666197179365423083627293233595032424519400036442309900543254081737446376166944317267241525462627027893009016425663986407780202931069224973300967926694467322337220688822073254567400480118926259070657256323094703523753343873497407489314806524518815185599621346511659534745727439588830055284745126104264608189976571439473164840651184951933858551488211901708361160223339074835988378419413385955784719026345396171776973974529307236908694817770601090543947658523838374432351133368329899942019944371180953278187929083459812145834973801682914466940976741320537147525410877043673351421018171544182263468466703425863531349423163925935942240862615754885553318403387271455133360505613439805270777565173496682900930529194981369535666362224323257943309950303805575645164349049521722873497969521926493849794163130354755159981125191675029782521253230037243449278752607949175607061669284853840676713914950742259512582587455040409714096327356005200136477250698792061309330762272534788070264801417768980207402286576423917488409237629657717227424741866264236804858547822246615534679525467589572933746399939783686280542101397520822818716548698787532949788065707602204571283747842429962032969279926372262057885173166440627397911937401293517436567730584757226631249101203541898793403089889898595909149688431420208805835766531797284998962202532838776375513725377170767425126657652892370227621568434944759367057603591080527267621209600191911120941159396070567585353908109734859576350446092295171800075663378160593437938149692549299337569941331922309754792929744464124464906653338317232438375601635871314160886886898799179481358948693272944113066783477846158292401572385778497801718838526290212631491139441432291739238096880391163110083153012102496252008076596477661172113281803553828480987206330087212717683148875974033215008002123560054237182308670850064838842976232186866335636255839252604785956392945454936068681063655527996890039956799407402868767919991734524500699486599668412562204736584556864624615624055474808329365409512151410354320859116877051695970734287082979917006571279214142235730888741552551192581905828373368324055219690310104044431123690055103059368427693359628569081663741254217134558357874293760785817782818466281163257633191231927879624274093213061982932864148587002899713949363724956126242533842717949848953307570263862424182029171706770837162541937766713601590796519533005154583237348671251694859044587155397063948064714651748481213907810721224259267447205354500625932274560426383771351914117616056627983308838200895096738230530891147021033186694698252745565533775635913752417897174280682388108423578191545878756312755675941058669660837933874252995284018501427541461658659236666485596587670374740963200626028737719681398018169655443538930678533631837864075227040347364770023613029869365552750043873353379457279540806146625121632110692016720596297265360259790692349752322139267148422092302301791715155202932783791304779805597650430580116312614326400039541887416040697846982308766385081941202686338208726537429556624198045256008303135607744695835245946774249360869449239472685402031555643599438876934066183021742203605969098388128326585400844265241069129295272629359683027745979875343307875881500516863894262913281979645220170230954983590872465755241449246908586034651276652059762000050944778397544279914043087651468632827387074764504502908599462470803367170229118164294817695979528606897869561300099682650727183007414159600039773747879252403899840311238083604298123971148798993041238403624484310980302826296227437017710166159078621177619405574123006075949454419031707746440124697737913717299111795789241528828569073311990652842447802462389437506579181831753735884005334727504257984634457876115155660341047804271614807097232893240860983111236137850523300589701769551605751860761128855302916941103862172748337595046751500592344190165988425220805863719312723929963997447975464037336473859700699060473291500422446007611159817332290372317841963278899338223724169833317381553355618394866504790259968792871853228606962812763608898539188587101779383029897289618505000148708182790495144159799134260901906627760271349143078815876086035667563893838488716561702322697973324180736115938798926802971805180362994423156725640100510236018491654619038773504746511369163773587814159070699116772982869515812240093769178219905480724745280507323842057568593329902002827432148807956922280152128986750525044740176777207608026742226462314027388591335162934401435164993314374724330321214195131889479198221328704100596801347597530957937466024250260009055521970582235674727226154855848316714529551144448584769255429996689432166681702113871219700474220589024874525551873491582515782500310498501355707742754256511896305616748192532834882513635787481669879766324187199380090234668457403999879006579589971811753775350234989542291648283787304263744462836932890845702645874887030264030596998004388585854257434724468747853048170094682506790668333425988391252573957775371064402741777334828689419203758890271658255893005475333417855349263255265244342511697978467997399811223886307094779761671919085541763566271911890635702255999102035471785985218066945575275062255249539499567330612541578841740988488656313929051631133178955729010863000649101594532602851434581017234524288341330423715389690408198266891020434365345266093242064302797344466884947841931279135443488785312539214201159427546549971839446025540942264895590782772781680608385868841200261465293337066453765874815349049150687368150814347079380428424541807972062551594727791733820768544654630654389101130254730478597592565138031465718371991584058537572366086785820833381806873200566120211708972495414998653011804181514949754268469882610876727947161627299479159203667723749929148666440124666857190920778663423393843325271817336279886240636999808629931756883744879860017364182456348162781501144432041900488319826356052285261809364150816883519711456672605354070029276901572209613714070295019098292683219246733024530929302169871853747313380855675826463544243539878918503908039549274679744102933812828984947105338612249598589331867584842261435689485093289253983986883289765177290525295754890289865920899409328407100850520641438520425990908485285954720516293813593660820572893308789792352526708189682644315661805885631093235105626865398305013424367176342499297889357223896788519017791443437286438345480473623219248385749329190188461700631205479639085955363489910518272485784664000393943298678977634954873283277380067954297413210358390464922216043027975149210177353371015983122171818119714139304966282821749689221830643237138792285697205856604351775708741178188119132333282326359571897311451022772906965173621833171723843426494196664005147146157632905082869095097399246868515753080715750198045273735942254579187268876824074040132933743748933976491729625007971043137544228454454395635073335514079956871808631687828002102194739419410353373038020898002746221809016795866776482311212333814757968131157978339698750165222234455767867914690286955257544923447556307145263818505841999713501012146435614626280841934093528961009088151582406847506236845256166242005670206601744647772763649308946485660701023362254706723703202556082671164164546252117731033758733466593093635734551250987969017033229211400635328790208637056317438591439766856584056181046699791117173584616417820989746661956215418205955861797306163293685320297672107478292516763510402188219176866622103753450780297263526291254922662753816476495968511952235721372339833668775906031559803251949816388837874860987430214421454859861327089184603330582552803925000773469480052549694338664565378704994423693469128662830681941919257127633750136026431358016926492068899233839537629906222561231525347866077737160918311199205139394484289437006490786224022705847977719645112687115324700192745707969761121007848263110991580155454116450573428516110662682283440788301127656898757536797817473569153260561598762844645449623851498302350185850009647335552414913706717259446267249586522355570054284295860529287699297683487738003443595684566913140563899748554716348757092118368068660133328394350180047026442344227755136974353917549631404833955968036400493874101172057025475265781763722147212204187892328708826705214255568244009627635105534870501429540683857124000066257355341469505723283917711427361240714589108398087760258262834192914247629671369805050219955003568082082811437258939256971401746143840953925227177429613362448306932684755418631108140397647163400921397145567339896366033853091394431448813636068461934889368813932190803977272692600988676368730138169058900978727734573435904655058688446147333898535192687624505953225713898757209515365897548504366665086096841161469975565794708681156567819320101758043995675353354390888351037342252870923466844165780242931684508225408884957811474665204982873232393674412955672660655561893959820901803066263617181009573686867358670643648650212396460401913378509468981610597676416468177952870921670404098593743808668687312875163788698200003694098191246059761212074470917259916427451310506979145046504968804768322283812961446821286577748831482987333983784760337365122184553126879052602399589161742548562996009382581744341867878198322622369423571132166541404517392913132415548038289455114542743008289450112567988893906618787759728622198081479426426252516413701301426944259817830579561122854979265129470822509661118836582442696896719505948973175117248871611093162826879401905498726426734194138525738955846733778762638201929829342348971327485589350241439436482173363364579215101741804979263504714981616495596977882324551476619569939586770746317168500283376548088758317764156679770423438991768336616205941296397303363489413455305441346483187622138257365244999146107299098065132467561280359437703588245115479364367976327367502445869912404605598329964303641559689595832039484411952087232183810139307761719037834939821347617847655355440574434756172916278274226554439532719305198713108626223765023160064943377859925428636010256955665133306668801000546481816120205087090485693090938253808531474898333892251879402528624256025561504736795112893242301063416449865913133793138334344661978519868621222028007268314285259045096677627720109626398969623622558869523219450879042385192534625310021324987185253731102829509030378021512588180893838093853678674697403498842821536384840736750515403858167461047942454901001527954352214256054706639207210528478796343574013393023216501504153127867363177814867709906460161746980226915804495882726134950834521670880840044629456450103859181075776392390068381256398078396590552258223852827488917038052712574079347907519129992281110159567571894377634875923502003024780092773065305747885253430976998309067666636593659243478899874667030305651248094634570534289774940116006668152845110763426944955790436294420782498863261872451422024025577027564856944391092217885038461957117416964817566338120343329652321875450656973247884465595784890239678833743676610759074835338967231450496033882539639936023223017730111570588133491780780136214824337442089653344749914835928336242872619071849279692855504887297322332721685615794184687473744349361608905984642536713286589595458261873149739449452537216029300572880781423062645698512519462843214263792193292778437201678046788229744035636628867400015769993744370762504630119415005337280000042905401681546322922058629257906953422525018427727878562738215110440751352984867634902382467818884405110641551497685510806766232316586797173319926037381926040036527187858849696897316609548175727503350098738351149089330608595080742275286376420514432949650174057570322061983547627558572873508518036473349692041501386528122331292387846883443109230056711797330581262978281620493931789151227356883699024676231424456992362527736114193562492593173505882411584740710340354170169382180802107377930948148222062876328369494462931500618778569553544025502639791284865824668770818960220674384462069050870148096996358134293044519478334148596838569425423608648701648875974568068014866267558803479033243227294051259799102610014820101880447100328046789533073544410064715901244167435064129111892587920136532594718810484912220163159285297025008063901496229679064268980424767853409173165684453557545052601424548096445326762922311786996683094143284213868616098388597630904821599725189513311251868415167455869252070244396810595904739648549333976100173576914686074811828103269765433674968431950907889081272095864241597623061502956068835780762030085872251018658569237210146650625214877216568150205701170790077573967041876799587944911529943479608254175238412452560030527049542439446694212249536715806763034494262610880943076911312939268133160362858687885503213662801304934358760397897057508897064279586405013301833994815367545799221994513370656554624304835204476152092242345027177644668308959331458184049566224453027055573452084187093274732084912994934029107279487292107543177579302206270354609950796651514805221579579197784477256701222246411682335118878502428631626669095451469878503048779973193157344570936756258799558483489480166102961676420687341765380627804748521305391451481008479801091013226946409321983653878474956019809326624682052230941190207412621056493269990881848876723233231231870510927452113207178360225264793414072757469289027668026348451110759722420463858929152316783997152607696703388374608657295569691234172313499855974415136319452598898611260315984689070270948458954527611698352905401188883209042349214743179046544541956692164943296266942552449755074358088609476627646259160612029842031892335216559138731233402265228566248407580183267185086783495304240639134552136237913728287474466406747177726015754785459771036472463045200035765644228207727753617081667867909212550948958824371215074982352488965670679141946055041220730667548259284901004429824614646176706868036386740875700327326363942296981368770791542523622872910220465087214962042463951704407630624292473408105570906480012183258756265756002526371301763460076136936160869674768447455476386788261378623040360289649855287080068525663468941352906457701721028994187364791206062231631686108832446274762176318285827682079026303884578316158596055433303451870206106404684081036143423303188666325561818157758015563731837968523280562500941916311876433008615028079920841001565091005711114373592650223450344616112562412109427006241901433235060237483743852622282371071183275151888858976764770112574231955857257427876715832683367015596658693794873105190242256494629535434983662022847060628673507265876203069019854563062719079714276968547139702870205551477031437528499546197177647768555536136773659901570453592862291092923870887745230559678968714809844336074014822945618507961978496440566152202714479507064119802180559336973804389874638779003840253803745090416140678101616878951354509642952488741169794137604629324767327108629873398799215356728531943712782704061892780999614744694357081768430956981569812640311848856609569581299214846451342399157218568514618160012625437149083001659329435170762609231312875911658253346724901385140154079992893320489698129251517757872673378101798936600520363774317575411362515942997014614577080658535817768956016479198453891009996222416027919133449584032454560201805707209962809887665292502520582237652853684473751437747664245885080276906469636966954817919111796551053799534475126729254295947903151062281278108695726167507414389558839100351609164918426020119115161833431669574737861845492095839683509727411848226542409200024106457275250234793916881565947090151796309879437641703113029024428878553255107450613583878025519686565951427966380190788757649367107518799507688483988406140980884228193473689763396857160323789873814564963042818187862836907686961751360241176780938961110745713109086438621721840620716968003845942676321040272216146487788209197082124408465294287103361745819588186067661991456139732678019750809853860769660328131092892135401756457666560274483615625111849877411932003884305435627323406208705261174997900755959637661115441035561284360395187510050736548740974965985007271453849128937786434804824099774081286789734077475668182919826832513589104635328073122362946391464452635420518014567956838769797640556951533768538182695654882794360551742521805488357265699180756586143425722497952207263779395285519154436544638721418111372263677302668815174419787494967675746948518915533927453724422056207803248940039346430082474678811412918067986210214228405854387484060060702940632979952259166274940172495715910124293554448588127563720423392807704838559837472941433725569850132686586963408626881410601315352409758699652863842304971637199820982489699655691579571451945842535380422976705575948507388335702256597013659134105955341045668063095653107139592408983784745522421594986292516252002329147656277392859233189816921998600572434128335942737541009862983908284102385429262520159808353254250437794223222851979257097048411682560083949015897722670656531293359144917490687124763092448411912005359187021118637011140056239959841348500953598643242896992770603792828013672265283612108359494420789289454550192630350188420308746710412692228936216585168142968071435956980659252995243720666331421178747284357801534570709027654321672894991001533388940582244079494568798694899473060142027807991080017763193815186931945852505995178093440363203862116424966177557173474050135607451346670198647646671553927641240489579706014424889877434140392507722943499445240346915337267135318385623569345474769634203600227087736766352706175713113090976663950398538072558208423789298588314495043065203284331402820214937718825696774392007349050798547633051560335285208081674545181758045132030480238826741752631917774992693761828084482065460940369637586930609753116317523956608190084048258570790246472384913474579823034314040534283099769263685739072569585982970007994122809313322823212274083072587103631447747334712909177859909896889936502380983162104275157400447441671920992552840620708369567462643372057840568903465510505003843515724333475911634536129380560647089559902722327615947650423330215598073572331752026497256367133942594277340053028240780874669371902143951519390856174301310702430230687552064716648495134183874156836769812482648875973358811896866482791765396524313157963449143857615779146330037110653947682144629421403695706315935482890139160600205806494201840045420755190204892246342168105305435167842274235933033736820649389828696451722785688454764222937472667303238811818435520896172251243655885644012050703802076770217707294664576129194800330867461753960964173188610634390903349385435989626479216225033509008654423154444225629633582628236799842636374260385914494068010052370114636766580959568791698223142733127324561041099005291484008371057731622573420325566818535923249392504637869374674322135905446977729411648979537493714664798445077322487352122265416817000164348252996099968719660499712018174767335004413794372936298848164092686941297019133212741166914104465587666768843845941583928576244429062215321400691101417297000526685487244135365573303848363901761568032763247395073563353607123622871768861293661900935316228503322982150392149575437897314161927417697858445794517838388523358300096502506057413885869144138054924365788032596959146859465435951515482884749483943693585356965042687836397918606616379908896328794730010323451284176812031891980562141477826902435675482934128239087485752508651486391918637576756275837947244360533328450187842953693923809938550329164453596884161577231101690250127614218954328245268631067671791856712354604328790948406694614323524718602821606716226195017767260679934520808491951133427419857199136129384561743347910745770579418548436919791262917036666928915980419145434333251192759530197373161166085815541989927937131908868030228465892626675804375701527377561158397423834796398098232243921143503466837858005968229085200090600587254613212297293704264230486220184484147357928416940895642480183176281244030395894093868161966375836836741297684454301202370401082071723394440639008299936301449758485036104926912374294718174812599611354768015434789474991905000219927894723538361845561302829845507309755914074602475370910574753200237246002943478092434569807696276755101207664193027070636545317431524082348913923832496632122188689832239166405690361437392101959856210546521895385149361260623258219698337326887406393725955794837793532599196705630468033609645069250129840486998152310109750999500897959825290468812079971023237520002343184462324114609457728936587523213259162083644726034903081043625390164263353660683491027947446032941020725046348698165379824865658401843842234904599772719180227868782723135499962141285357149208389620078782348022380568419002966122423881930140412161362619267348029592654692189912963352880245476110544302129058262868098535376009129461217184617906960193517151765538867007734960492432323350220785869791705105111494981435971940444430337678816970280906660601595316866706369657637301306637756850556903086622366192006234938463394244779379097523947586694362972267433598417188865454773063454294329302591555409271841423309456173031033747767197891622829793658951425384221274978649264464607194679729516353539241222688897260558859932392769708402540013209032898497965774897823744881938871431606573092586400507113487598564729996299719577085611240442508731053716029179769897995222752803620321882832752041923320102968340337936484628053922822120364472330121472829356162620839047447824888557544872033203989010251527583209822488616195523091424131355696704066868578547596239433005236421552200441306370622413689020368473764817951414996273122294220565661348869500224352279609223342801635439024129608485717491240678198471999469244608657428418316344929057385332778575721399180805748254724462827834758713255704493689001314906855850749468266161464925073475990867304904880906705352003004332601203088057279963992004233786910719004731687270901661316105566371520749072683213301580747892344769288531368675212557288798698593473767674233068310447930246340900369762663935734024168578723611906654603259237229457075711075230464870183776719486024744233686212351661147117635790524568341987682057300875669003351992590850807147566187450989376152289676687158180599241936747277657456116030325232568592773145164725328942731012808272987190476230868440995897168746068558681273556266240459393245988937140150054830144854993447043792679939624345495781297748308415441560953226475792231044190181623871961224937543429935993739178797268687148885420705650493219170728594296806180151785760596234824223980808854026657811510763502354401134094996340152268756789178085291430830913147875398064740278590679921950992317728987244019494805382699919196961051500149168089762692966174230909731382633764459362356793227045476754247209475310982522013259148429691086646052181709570474826160402483919532007231834261441841986820397950850772213475767015177642356270433663243791667351192300862489806936696157707894233982194193420084924977946868388844900750965156770654824362045222069111969496125340018421788385943716194785997170165735672056180805309391482969018880579231858324295793620482773839764284174808058879546852021876723421859771910454281976193951173602017011480276339761037488139911869678834609336477764565262214477619915640329451873023258172508773030341981575381556151641779424904289951182012865668239098613403229996609374517150428826946786343638536361413475137624642923973852036132780229575529920257882976590246369898902494924936396752828499971390990355797978586499174934075237668890019262745704437531942311837514789002208282959413519798597472512112653813456387149295560550778040501611221055771025199005745068201515098884831513388420916875687383970419824988444945443094112443674102723588860011378031489062121331159448067308683515703105418642160109804093268064467655885452216724383704405756555963482447391213394481215831721983769167399974062068678924871166896980322181013214702801329774455202879891473037917684929426143091342040595649218815704458497497609197724183657547228355768784408786494305455237422332845795507035328909214558296082359367569397040053478821634360717096166261799771379011443856995326577684722459166427274981340609790548283134198923316662235284327438994729490180014883126320098753806692743825380207239873828770574155562753411246985939134244095067196559395014656569440010010741118167752258076130025483283154701170300495866747961979845065925475696585308163456170034306591962601378100755674549584536473475181524946879504203399469840651492113045679916715726947304563385564856938994477205754023768731616398953920695048690823760397919441837103765764183027003288490623574048026963405572733679681817846189367183626553676294692025389679596793817592499508854075192241843022320508794083871657292572143591423952661029815855677053869267810862066457476916906738132281230310734925039308844676100430705645489848352062863968713844819614062483328963898612597812248356663053259585856840694469989429386415803566039327759116887875960032901705000662740280238212931237562675133352811778657376662455019351927806723166359932909175698826573092416369699069864733234891814139801048661161042793045035769363120790267523035641842878469482060737952328837314912896302252794159284471885612902461971568469662566831641067995255642317754169400216549321395059652041298971463670774464075375617784108030524901584735612983283681687814755307065577850651284073514317570876356139576039842389038786548971865941134203069986982440065563282212557387533857013618620287030189623540434804433017417241491806083582472505525195155670786541438037053678899395156598243647344842926773494916098413430995452274503984643309272392339743916532478777435494554107943933290740542222569728123070872659838328322358133057298763106952803612142663665193029696724527143426696450830431419828528002535252310058156154405662313977826526802884967097648614133993921775531894214825371754413057504705089099771445402790471201075037614101772835406922897781530724077037601352328827645145394179305628799339645550490927024480069942226562865173912516795874292051830043659697101423904288977400419597319657727417613387256110318910901282652934044245659574599455022948403962799787253450909044937245196759835274348088047049939673792004190737323751328041685047475324670550167099342303104533831092480725300612561933675607491885684135623265334287354333306814447985376501699407039290192841256708842067100166838107470535005264444001237171236091417296648168892678212562402610424568242488586567491554533053976726787968814356119265512991210214763307836828145904252814417307270607965600781678765876161466654257401957962809026352033184031443627410061158159321904830810293223559736454047718149379507926627139518124172063868831053764067166513881751678553241332334705531642608916816880575015587094151076950706471322812107853921868533470477060395328747385509708620555581136310306908588790968772853726760384052216882980303945156601866355420880814986979959535303937705345165381609321596489482407469564405938929679301913341629138319563257601384836474641595450825079545654915297229363314900050513419340970310454181301489124603666297979595454965340778033168617147652875107861146891233027900649017673541612701830452431986780361931765725895616157215893297161104401675671825615594323194600672871055245825257025932686435026260839872112835270360373588326493741650512036795945452713276713759577838108268147797222643385601984450655932197669445987588749070777587679566599289882797990292517884985811865677273339617693526670030953150517902745227641428167439794623300989496690801049288498196879107445990512061619096148301249397430372758709187953562216100320908676989873439218122054507286904299997248182505690749516001438449615793892860147814448401702241439236125580183952774480343478500538743841256850264776869070303012894695456130743567196476715698415186117661692026503495370897800202233300189066574469561344038281073144549498158011063891477809165706677289187169181515944206158019480379693592370127534375772685011189989437585282078538708579214741453307483709126886310648056868144575262259324111297222514065554772421330133267538846223181939067049737095248402852198819692491154208023910612153422835891202102574688417213620099432933082069281334948133146127201413429013787656650689206393944517692734910774146383808023691223878461858460119183929793927940205814369876961080179294314506005215502283553870753297837071190767007536287955052903469653467031690260989505248449297287547814698249762008098254104678591362490015418079422082779616494050976342063112689227465730620988140896831862015795470888905456419266330099288384719614021189726391631007487479688923467210390290810309015480619415973861574282737366957027879526607849249438172986286403079897669435071911434005575373194854950834078864643033599405880137423573427866008262730356297703745699526721790515458015492438589741582687540027563246262593994711046338159324880937819791682977674037511548692872262322367483030231569395552996449381349855107306515022474341666310232165527820234794911213424100072467529664661725281691512042104862173105724752855119359243232500779489706306542461624852668406017339442893247382352638988963973911390127530556761155286354098349412247110613666567874895418402657664218435769288415913397525424621738436614267915898244020554866468926420409641182774352731457989170262807316922413261963230690423908982469608555437731854924267600200084432699978486236133257592589089779569351665160635961817702411300479505501763370373515020277955355861471574013528510909181925309250491657146131468963891783197590618791591730864044982945681150378985468711339993183356961349854124955428562470839285300750614758904785865041563648195011942319401699833702763048109139769074521410955266384231647850585647643330960801196320660200990907359316936506129128602830866953208942358552745798938807583585896169507196419341766716334498841112093935379694705790309568065593444545699477374623930736386237390547511582573832872203372781048520271083258088010695157066702236915348383720303682660446710580619603958704593588966445228039210422209425132511346814970982796847867132155703642939286515441388773554366092808088542166035572873674958818068923269711032238484944775489406269242751724322307498183768361459841115240156703742047816047848549168504980006238395092506342278915240144692367327234546126981021730124105048258537368923065685303928102959871416031883657945609815286021473614745560007132797155234918338190272438890631860096879856411855400783877095327741523287203551644846699984238630318621941864670294228638473606597933387313961868743212851001538704344444813417578857414284820475260050785948734931081644998718555076602324949205734403823504321806201483011656426156547848731152807801769953555267993505914931195794138266058624480695144775925468540207024484817582648149115552668116826735183406942071299363907007557463820196801266212316753459971844281433765872805585074487610481955430829604682513204152076801072202909599628493602549344306537423105956098489675873740750147483815883741593701028663452669617974520413805688762762479911906455303185944747021154880232783602668718048391277302006789096885581876915566199908530580800471680969324602216352286266669552614339935225993719963214215802006657300564528519757176642458219980544897590103388129788843423450180707519943100239035265493044003211462367031520973027335266869749517473942175026412108454926452400313588312078086298447271487971784553952293537662795589371336867622269976377235196378063763007272046900639547083485187253367493117633357478313095930535033381604304360008284508496783626867259622345743561320481981489655481721405632323090890510995694790813110859991645981617814935609080578984402214133242168008656419017150209963887361652286564093598808531866355125080232354244988166864971847339393178966132170323271718654636581149004298665065902283702071605539593342643788105297459463164536350001411043903226000546826844151101896094048114114468877139140135838178844841939132385463075132263699197845683331471801345127163564450947649905000966516919928267199243856961776530234752141712437725828805448514095542033848351389281233559456116703321303592638265447654432721894362155447889087589272987954263995040215845613700073613398408468382377513949649323254699525979177045870418411886740132497689270917413704368472543634231941585072454827242400894061712030002184019336415160302057788469331070418549081226816966590244555463754553959691384838107182136873098276905715063280797145639712698929156388497522971735799905884661016406090814020035866973891465416905717348682598937839018871384936361406541586994295285242687459601337685405044346887143821161077704580238452358485143343541921143148690653672817639880800649518512033211816397356149794963357166287901048889827194058273287332978595225160037521727169039386787173815654521457597273275308376038160934029097807585923053315357344145860281360586617817946101170226406111213708907421920186348520597754306567630186619114002462861315003135355419503200628228142613224072023715702381997393383054580861762418228623628097324227288553459437089864905335685960300521265040220136475909130317291577525699659065264990494682991640158160504589230121954322323026773673318454141557040583982140601826460334920635412392413632736449414419820498410890035320225826035277221674069115034504245135036085906123745356306598470206168753739475117032801457916267278305482161444978225846184266331350623786424762447604120129169316355937566111823416301989254145723430306752547944925963971146043700998928105604775963496228228010158827438604732265577433920082041868965044650083499014443865637670262905791699565761734075645905400612617657832176539179297234390795089825301196175769012299447948959346762017687943561756203813230641171031865935904731513983061160564113356761010867082276219085644015542712300509853424378042334007928595682578541268092004569144276591460691076988285585454466790037539717154434125840844488007078671557325157582774514693373973599884772399277585368722980658030135067726133989249732593924713326289532112629672833898377818945263377505125448398952207869173115127159634468155352242843648679645813201108498495850494786501168124270043714230476651622336933562760603069496598351708973020027776384336413914302301253695961923774622742121987611401460597475873953860166703535679790514404061866929566537452415086472648548557090023359846560874375026777550579210613569796439347473769571480915350239017023178650834391164824854094936721163733719919250119194869565755140979491662003806041696610583779821787447081738790806792961407517526440436682684911136979306171447916446318766908784001072335389343773950959783877620952260252430166174247150365244669989182811670138759602094415306226304780768100931719289079652448084735959039845842966030355440531327111745253322321779604090037608063295107588469145935817350726638665773880086246777589730110924257724769412428414514940095977828027369814522011734947237485636952074534151573642307839673837167893478348112968891267429501761716471515872328049963723880825788474423165051919521406978839182304313713681532912784667461730666221026913400241385234913002165570728736263192919807752052314331348607044428288372703340526941000555349555507789317592793989319325014615672490363695676424293214817452363786354495988593415569244511206406803793540015897601150725702839061328891590883654155960240996294884304953207457663071410211335971165805547360654929249257126180334165029527358468973753337488526011917371471708494658571462947474002457310061960859226934086966973638536609372047959102891678781255848587105333937866372538761165767903723845502635378204127847964815288800387101199594023565039689486350488414572812733281842064142935112773048787669006546840635830161673161460093643816207080360575412188308616516738661674940957551296969549912158288955377264693948780197032136193054409956754958296229918725945664346006614773719931038921044070851923052897424514769159571644564943838671144025233445490655705321320976403939826022039870205470289682135893920600110540765568635698347866776223294555608123352387840145193327784900165943140620886628072749536415791097485487764432960400658652718639122339907189920177117959397150164232928523280912514028013323712349034395191078919041077695528324850820789967506435726766038539471192471636552943623408721129889237971188222383377735399770168554492538339010133081794776153034872353467014589939853454475842055731047562271453139130033750132892343696138867929263302505196246133388519047379326720239822364525124256289441732856387634804103680526689588801189741944818228979468123042541235646411802046427394361883080982084799613995754810110341044377715902187432335837029478027672521268860218275713618084222325251859478253504889339787806821967662063428969215140055201054100118596165205221448774012440498922064905676913909433640215226176547283513639164921153494126677593912217703823059503069678467094135431541324046989572822506564893197098461722122073836514449615125718261950335485830579201773144391309513033775819317521380149231639106915049315615102875625748766459563120664659021236518761680377399442494236004848708764204893101213182225975546290324069050560457865718133103140577025111712070161405951076960166381818562226685392115729809311488866229073398412803675677326750838086004466511803998340233920523993400990295723533641248478211722021988206747566247766461878123084738707487098035797386874902734217776542145289489199507116774309982356332936921512641771887895652703696518130981883144195974779480218357537869665657359561182656778302132020912765739268020032019196668681743478706999880877861796050330942122525047372776506282448831071587183480444685641862010093074533435656565884888593811628518581287547565815493047746728968627067417604758571456799268885205913932764765316223656030867915038231278334158875102604610990624374292139971699494165318373301478877544973039454328646735727760121090651671302911387457808313565814373030287150966214234256311162209278713499571785546619083585360463268777290075583145094216186004881472608851226589006493284134448752728869421445151127636019978686935582408647160824538532929904523733772540936709513812675482092790171460201635045435496417986731738699806185037207302350086458917209825538591476392547571617802539347805795986291470966216159330570860210365373313884766258833814223308688448021249746219318000501805256780463062663195938099853279291005356140836089868380112727928875812782712661808432373411148219929681274585945841150694751403770410952212329104016809435677562645900900838921200981867636679374433764189671025451297929190167107836238133180382572956094715642390976430597908072156072629716086097056606468217507669256446726090437818881403284305921110374835047195629435514244666153947523463616489025164697320298375781472404433308817603413106456120558858492814459290214408833753052433260370382533809197696994060160057280648170551707075478846031467157441736198655581747960885542624503667100707910115859879982503721503138921625146316931881202492505058753637432839173852946150998187662044505626354133706202928153859766442469958979723151844251595784691689398538804997551021171654151690748549218431686033255835373837459449306616431182696674994095851369671881866173229055227260270790671284066559340324508248938087177236680685427748115843193592178322265105863055260988001900021611534847139362716789643098460991746531019070558230338419367577009042845800772606871369234541065463257474203440553706496095072489622685944027447965910571847350094787905223653624463302392510267583111083382760205885228826144970145458754421852950857939970305367398397986789087195100681026818787374183072057860547562076554608451773283451773571420795105420625106315468881706251904702734357179983304025870253507388139554620682189359828947633669266849119673295058355620083454772162041133937482647360961364170063468295961890249743608324071270478381278500272214333052906207869593443518120080270611757241527715460556490560853216083671571119801915659069016274363662652519809889957397489219998744622358113830954857772246660095199335981621088974021292748726931734235952535067501973079618002948269533926135052223067092434778671632820205252425510867519765103047039727961776479140057471566138461389352262521437012057633941036560990061547587316297492716120667243253675588115633563584988289365105127568966002647079948546562772353666911577264119084895956262205324026983033904245765988489292521223958196045341105015977454860290300550271621166448407706821475908061743649431122824847921456395634492703658860283831497288069959025238750512384435272283620905247369862784137464404624663917185263137682917757356325622111609816610143841410966340445795995138258542293930723739454746039310235651361977497371442557611647214914497808120887101890046206076547560068585388853825680457167793503015011009641145808055319973770815375558242434837289418335725134852457164007620084260683102399400106993948569241867703652122473921809602423618207156526209244919219119701594164228212490298634203660832411364628047732144427724597366919753869460953265217826974294975351485134783447977988758699882956942248658973358243458211020387656550231322555277458780174808767542188649187923592366124199679643756792646360705550568367750291408324198867539860283282216680379202875623949640418169366154165014808400040925284409834389157490927670221245462078092412118308732227286220116680627290461947780109895935897776797868153660189375235007545143442484774708620520782751024961542928404326755962553869954852093788569163548695297582791545841622757570156918008710116225895077965275890906311311649763417835401606945838717916279460672326808263843291092185450039576674109828565048127861413347046369939921819817233193589488387689667462242054940971778946238643459509647640348191551205980182942496622794590666104727879746708912151417281536983602463497105516491028182809938478574938969975122339948529053153174540940025806118529770676813184449556422186064480102107622461708312838656217904512711438986067243191084887799216954884499885319113418075042538457705756967339622286901127998195387880471896600614029774081047841156393252811314028319523331584832336741227422743838053743628192536532450237454026323196187425866182762978971776570757286744915840116781504105093639711599847507106471564326754342948292483000593114199907370625807663965670145284298196852616726205569691713760128242591405599437763188892570400823693621509738705113613652279825438065449641022405829862095358687961175824363402058866405214038650825051201280885231829954532106792229049881475467541682488731803735427790995946680353475586789160502209208459414586992869597586670318571123147481414347248062045829109115698042640280626476457458332151606000327494447899311218609214142480281879440399928432212737361536692328361474282645332090988150117989667795287139729954913331423262493896765251602614767064849736574019896186030603184837307047513987620039316734632298941535884026601968515480526032254941110473460118009415892684501493333731156419403722709112123490872427969482598577755529863622241674655886316131167973726545679718606787995089177389588525502709878485346180940722208738593696350793705508833222935181313578507082805194314635798043407348926299085361220260314063248114952565904914515208615286385042402992475246107353312094054710587028699993168211551647663102338736080609176431462022727240063896855365163948326223898722783499501509602880507648716276466206611378163104876755252072963240967850110199487271302880119968702965797520638683605286235106630133095005923016269495166146348255454532556038025449751174710318613343005427300276451698967982712537602122374531285647661071173534371242126138380633083241868896574812705860790523867551992812342408746511883107229138324223368257263348042522990645775148918562991164696647858162471382736630491843730459919622365286569965567957775725495120906704753690899211695728382047817263631416293701690463206459469477338054895374271112924921147221254832157211366226111491941787782600503613323729432847620712316710519515154485805460251403752519513261017166908737502089011249070312385431266404667705422511256040155676737386290130144579277876863774888570013366657435208066686448296017905397437789129452436858062070178575906000203366258405526307998577048525238648285619854727110215315536278556151792965770330943542508792503553596471841385939733286175559183340240726102009358613009696942038541950689445630740195356391392497068559020801695846804395370803174585103301581655729701855681103848636375524600319810208974750413010347542589462903751854640292152889852694844391202424802835666889057236769282181566349447759056968501213124063437564267180086635653049379878929431040584471025429719818890281376138698501346780718508014472723667803000130308679346190051381598900091712504175586639765979733104789655787508519359669131992881620310966364369949695135571722252968630988219482301483144563708605028637768359575455318262231738317133902254124323463432181339945735653078960180793715775014739726487799583770982649340521039798955886644668868000283589855109616909928733803312158529798766831233406760391489770388152120039535375413146543089204270681126748229602675188030392347681006141360908033271945824323026558367653411081973343489810539785731410030674590092525045513186050896149692642100779031823301150755589028602456969749625372809322158947558916787989731904465577596189069638743471955293479748214543521789424343927721081238973381848617098534956058091188052270843726554631795803147221294476743686693845510554308834860828229484047924890028732707221123200012879594719564031230736737786015437734831489203315464185080151235896230701243105142697851952441645560834016719920706081952705363134024187215517287646680518163199010341009212796725875283781291296281925665157354833497889876474297082873974606401001502164011820436099852833906272625028904170950504240405066067613862667751509478478180882849090538396988292783573197761926323255844507704405198692768780507911319777276620780325289963543006450195782346822216129055464969432984868218381216930099449821356877286358238356623547010947520101117224961789709778658020541427809478839219772453509578744837015199048243198499875302821154556700368875045996972640543692000639801918409003550751420045176857335188093866531911540972347372552353478504717567125874145304590901958544005754153309675977676078737881275200821347903390784401050154405289098423725006108636510372828499923702029880730866493059715439811025920700743152817016672026334360383393016291837381667819046194270513884804376774873343517715670558005354615596975661423845875217164657639217756147061529022267238188655266585409817365685421877720943580634252247275141487478029982808805979649988766864630214032693381748909273484416219841176558482623845981367468043210761612608231848515401402034502824728417245479431585675064514348026309403930059877084536026545441656511450973690102053220905538200479489150177104427706393681730632260150528458146074451769888043144459449555290254442093014596481160429327270108515259876156366688269577527526573078133196965456383646829642257855984545202809146008910435001412745623977789441043148215050564417250994055811680266817520098200317598147437982911089539911385521912518197337206367518577717312176174970151684275091677823726087349222793386036562951133791713024840357547933691019539574855689164949549814919164428118638627102426891730692176081241369715422820811678024085854986178963771223753833559503847539886846411761971561471539219515200532458166595448642562530394320403984147769908370891913728084458244256853875823761163991366429281113514616840222055576500071119542280830828315843492490890233485044282221300248590996625001811869718952992113896714394592913570204137613738099332359815802854155696448502734297998075986124427022238994654321252132310423289911980401387156396244278491913075882668546491697508713022539962403092939382459000722394100942818562048408951306906327784169228276000167720297536910990381265082842232346552860904541557633000030196043241745805278372495747983394792297684798867257728193579638606707562892147051638389090587658830943755685723816841191590912215747677485317162955077118213043217025642851493183196677840626282854507958462905259165636930619061381890958680283529782392027669089349050814509324745994426113821617136120902352307275167697729153059441575378968686836416254939518549348909054888323824133863862651468160948284816925903085149363995811777499416018252707663258550794126255373305027361186072221691589142775876990725641617721236011051117286640326582719989591958055716055350388556171506094312356961886596572169182202083855130725643631143536853461597664555293789446243640993454692957299482721672487077108302937376359025951185230544193380801511696201036739006015224493222343788320948214602393635163012578780548993886675090207577189375100374373140627036883591114390119754136879696309457367137445923919442091644387068539018746274864736675915582644453059459287135555945173012998949087924054364454460528514966813998766520198794257836616105525334040930282880490465607435229988930559582850865443582464520643765524908600060845817655959076375085339311188483342221853318585322808026751826060109586287882636796050916434534347194775210472573748889569787025671708630492885795423805245797217631245305254683497764183501969200998182480834936151115092772351465210463015333582419206767302566120044045080567783936712630636756466140052188098442687695800780120892353923742043387982066475879126400281148459193102620372206779786818900383596621827035300921871166276877238012325756445813274393150216331759778768303265139719065398759634651683176521434643416617921253567458611298360909362093532156792908835489349102367485264134505838203227410576429741313907938183963348787896742242903093627279410578529734061813821657627389530474515342714202035473745130325395561432028694153960324644422413726966773445137729393197738438107388225330866473786835258868474794127707527413355783628744302098884842596208065722807761221357965257034586632094377709795695213113297203015235754093628075903342304106857330142340014931912469238444006554161076033365308980563478101757365518520283589144655220847518554154861020306865451003321641737105531020346591543183823501108245339756203502107740170767905818039520880521683462934539771716586088129140205529112474291096571194941754293444905274148053097214433409722704756539565484392358026209874453254376815689826988969673931429664185863829368829241152377747386783125713925708406255968863095119300264319525185613534645587225130335482834067277022326289877084762029432361742608797807528364203251367293610270052757727521272574954020245992986194077541295153471978863700296684738742579428095579595959976088756739576497567520143917282397389000277194565071914759751484107624492712517984702917088196462810837920908136248432779426974662958675011452933526673948994284333206359801343364588729583660912448304614438901213329581667699428806807076669902012586850026671086341769333304608737131078281952983783394601134601561713094358617425685915689793737537191675872924474318199720728196166451890131588968028529554291741068935212644121138244943670219083820594173437649969212155174289364068753489002851084308343143706512169469727257331801781737822635713703866260340255871201929753100846460740722855944095636171187253998112069254577934607620704974669668181042024903757784582518087112935212450942135582026507555081685635816313471996753752186791505432879759905845111641784615144915860944886702764978920730002591832414173404113528182983025433711838108502852829578161605550109814622267005398001115902270509628333771609044888380208195863286029995380111018136764926437425960879870240681521629924786755288046911767257123724317512175356663879516968208327511354911007624445925405369677551674788381253600322249510348670006994432801602269411627959443290298501117024207308499059625563053637428883628202274698316000401846363645816396033176316658737931708208984600036402616580772533753971059225997397363986661966876024670457869662762759223517295802113880404938607996360533615750338782910035719706128786075466177240112320440532543047488820065006536296134943060800401488142862445342731194565742850285614562844262511803811193147284429046817442532058196191813571664595003145952567553598007890604958828363316648316425627563068356702738358703188365497952854685605017562091534888931990256119475977300602340600610281293107523517930369191703730186239934720320628664215717694866389604325948504558892594507978228254454723323348623534358272175181708018830722313441770991585118880477653840420725480991274321933892722423430300500686893661526829360324560017210929297869548228456217270088321503439021372267695077822811648541378452061028380022873673859610167943824326986789518031695229435395532640800207389744658004283796440857027711599341836924635523450890588040901523955078065198681122643674045794908498163154529514645681023754093489351936231633321997203946424631161839550129737606292545181129347119070986705264343699980348783288301783689002311907304902847860014232250902535249590115592835235559617489198954768478364935667429844768509994440048856364458318401341918975390727223842192533944682062511018821605320197247268702463415511987012923009051378504236860967436032978226314123908381866619228835911593528425980856060629181518153157997354505238041188702462670932908261781055598196580595574363760339645557964323484893131867919662757682727664095096223054857361738373658118761860802776449888518071206185811303699369020427445760492108272045941240048265446843979448393202415300279864545594763091235138839515709251089436650452745770656872274418097840107198108900459581873011629944092232231126212454340849914632495606716201409425366965465808033413849033019540923720153233981016253001970027251459162953762299943523476811901626153203858498916876298656617558040892896374593362954841016939927732620605416834293596839549891815703103490058737404234999013428517969845589933765393392718535754212744189749234891350302373374776543152776140150832407624137851232446465813878599081917653516174531478067484937490448481392791073313331798131004079593639432697597155999423083257359679403465755720365660386533942784687497001674178458469747956549876562858702313682134031543234183926696144965277930565187521466522976670843560019751254167173595750318971396495414762573069530939569684551076562865166578482528324201315764529163241591259423734234829753672466938464718612891041948278918428580028618279614390773395022489950456764265158478465573278295125963939826637270482266462267115761768805985931562523621714666931919177303414084134127224993393404848842130964254331463655583189297076669264411423713678734525007053537551574979106368182033230616568190304100090577899292538029877203456478720237071307139550428347897504538725998861891431389860037612575681504347416965819040443608463199542774456262046762507453547866398564776438319186488973524070074959244695314691948600031994846232249084674009425183732008272974283288062793785588519378301990858319010497357780506524321216423408994920094814483356012246070677430437829875655533186802181755844332354160584879969538319151465282288575761285530564638157892520023757730624935838238594522399030317929378739180043162740990493276668189993501339755337152662047579373977214912074719769790428047523327426853477761939510733565838975012193235605717228735497588683180883660414634527808281236572164678214669075853758775194875156724918638114484907861127178737364118977040865276453037077591482315462216523923755305849067908281986096015269186380519333485088079800173751423704703837994470976208625561677499141023762101362903488991955595347548061783191420709288446268079098078926002432534725552621797736496908473368212866468311455082950696513468492543977865644179804888871197528552697673805486360592752361714819467204788138871770425292712026349286066630261792448408810488330850700340609139106129433386662161892676378498150772941921653039906504646177600162100427354029805356501306783155190524693020839793549566576388870571156411173162871082371274376419774633790117303117313608839195645069594025864684801298887926796496365174782725728944797198265196329799209523888410176289323415197243385558125662548317801734705681338114264560933154120251374014027419939425928055928173479868940154383755030094616214519803072853933337015770900895766992053670497618045394061416482649817582101979777430689138992156115661189454107076843555617902889789367328542122527667827400687703643541012891454687249823435199140710435291577985727721272307178230749881280882838887041318237974111162996694975584634067780073101195770495642620072028928532981342275639755769209597123703833281479621964339665986240793822301585054455321055582009896942381862389029880102352972198193776420664162930631526088899678247735392972331722311124552929957052326019428657083079351961640586886769806240429438391228773181509432731942073075442376044123573758777449114819766253363347238554385410297452466711718196991239489541855423516782476595946282510424145359723961936430843910887434957481561583455916597548355601669519444830282775432660759808816724903010483743787052506574932154068152511364036397744505595248146074114475614993225882920930030163540039724601895524861482047025734606958227618600853484145070197357979348446092129354439469847426463184481989285080514792159867465361854452816086927480663702040653862554034980673099853470608109065680103246763932637504575300864238499385446836277237951751902486851612705966264819343879770746424094438789940580530841388495823076683921976083516803038310408221546010638735280514553939312774500643345988730509701214428173456818364774602663628146367558055155843019327327732017352018621935024239142304389632633862260869909064895175392002554430650837564272854053849439515462952432851712406130663654973616981430345712975384692533221480588054407431729995975379687930844923810872641092969227728488970795335440328344690238041780162572295084020142566902088131175150351317345614613781899662978320311118761767938750549307320432056922997910550112562301883832375270113697060846951303337415080809354388429221213438121697228893104223417090562528063940080532210054575671899246973719801182392914927628004721130412883457560602547700476391794459133801857744022608639278991832655209309424323599338574658755530897899081422491034312619856828835413101216775888825707434578245275713400036511600863256532573683971101492052367961508907762909815642153035689838103575932650036165957064848571942385980257360493224767566072797872124868581945970525362985768340607582803134788296690567580378249939967347475332539906365441188312683666354920547498270501196608618068750227610533730392256094368425637655769011174051927631208808628474554576726777121234364580617144638505197895820746813436942998887945794139199430137133862442262038488428133663010048477711139345119259941895405077667165227953181111142269349750377613329128550275488586464242530247110249395592245706684997874290003942142809960794965825574309462384899870760927212910910566692344962647153342336141486144322810715691022038334557920904872354107706958483367701783183997252493857587029078360648313076741756634182402985091159636725980911519357703584400979689790011439527558020461380510447996601977252034040065613893186184729920045762566408558671164635312452119110887153664356273306208746735320442600315213710296345298844503286915154541572660361593387106397121877994391976697019689511854076606469654778293253819829725079775362551576492070146236515774535585388362967982443942835788428295810863760373866255884725175886840779060226074097519333679909543211527684837493153852885772918788578919840619070883783482154057272018907923271678138869354513010007315810252585243947367640078337740733840606640410259627814808342918840894978341731230547269330609624499814849660919441161994669724399598223023285039205003346288317740332966238161793944415021838501120942457327904982379019117798917751045430956635409698549366212223347078259690029913059060370554515680105228631477759734775369582826436710275562084841077903130235807990926455254219281649882068880699180841942909098787828033417919565870363440267602250307754500593156997260940432937964976036781048843021245224087077214803308309459156834875970992698725178392008375766786564659375438954658047494276656197036464579150112756476411015642753397986802803115634636195842186044504231525470096632030180748914732800543085042621781801735233512481421216509927465324304377628511667624529553436860099126427403194302936008726945068457666166929590099982806059133800990882022641113469632661648772865161988033895574160091255555544492394458483570057733269905586570548133946408991416660956789001092536298772965752472947259570083619877789105393751672482506059686897769021807535042753187830471970213017624255286902743263611506112647001102438001443949582684620764852652867965289895451977823132825692038493770928774793079759271219032214350938940877045056073793124699352264346139704894681519990698028271965566394033382372805509894825184999595404285081399097315926725891027112073352248221954496448421556703847629257269107930989137156967120180823472665250844959103439852199417922436843370031731731032334287371312380632892863623721500764435863425984324313532483925220549495947759914156875446761175820558751720162037878111161827972980155418462765410839608600323955742499176538540891933348749312648265633295049004114636944241627225350197396948015267648882559355263158038840603638778911910277841890272441883346979609146631583981727182380766288500084822981513357013993119604661593726819053781984283190692883969057515077995857612996661394657896512320948319244695912492559943607792697164327180228573498730828860863646817019847610037663516297357379907026271036148197062419754417513834446987593008328762615916849641610105894688149398679774555781446817024549674109339872489995956255666167515766661767679598359791884581814306764328040142033203194937757701792007451602494045259926731489537641153349999405903947768884839958479796507660766407903322381250368763811369409822311763041053697543254265470224449429480291117392531243706788848793309477472471123306172381333890022759125127963021892369676498019167499277141833141029647017714083403405080817317603169123514827776840176968934955263973392341061725982578494699279050149000625314706944448411604858175037506543714329628495036775042655240276646448717152933727061053379624543183636718914687727122881078794348255935679169395341052822134279208874319149838434422986069407121990842036733247600212509758525303306113015700951911797899867335181900291826336205577935723311436235337626794539790575531630047418397685664904281437415926843385817062154025390249507369494347293598234491194319561470672232161312915301986977470675694087787577694188413229864051539849414847068509651511130414868503033810979146369944478642698995664098055404553179765986577738005506190646361972864803711788414575912086025808049501262482766129824771424204632423601975296187572525474019932661660676139999558531368954331173959027750352172608622718021627416025508952467559627949626803264061231920959991217254722097259477064035314157541445207102992524747052402650461387395980941765662577423707820550064067592877247957999491041405384561166832575918186698185311154506267711930072103345116027098361984570841396508880695151878847834737490246071631333975105415740212974958673195856301354648764436294440288993382063844646110579830380277936849908017352687353710687416144833333264408316053706211333388371306887797207564011086304815614228435589207059775573652304936131117902202330262842191491032564011619869651451989817052133623717415696733265318136782000287537273549670557568285403117691900537492267893138112683622578939947604035525590067258551630113796319317597080398392237792170407858045460347802638361147223496461425626585951067618467583108261206004423487429919507548774300322493261737296273703440364314734108450367654922956620521667810985161933534134927893852281545905248922301615261912293871019420476823504580792819166298534477307124851102721005303070527935462425723252889665506214281924240286759034179535683247553816017036618479911453447405865642337791778137080722328855963598139100943383024030842548360291822465498591495888679307972574476326188560950446843931685459295126499529837101304863506502110564208808636113182074713753881593321466728632004317378128533368116767485054303947484059884082817826116139560384918938319726025003176612619168405711674560669536711358592842935247101309144542902230565065318798113884838763232153345409939951236913400886961886691848170649064137843021487942435735070652357797210544432105768669527919654795289012352802524942375081632744738140077228309246914256043134054884928920510671417617983230113325643309455481851724179220667790540131168196351253206355485856593686169429551228677312007836339141470600375692727287879270966943662808043191112332362207308354245545826472405526144284092000151714959375331822192915072743866648559274877634118288578540373960885045496611049630091841086241895307634386695251137100272887542110242885999081063401826540810046423252568347721097728231843437470166637189269099560454283203803604375541052333117896073858503979803193703049289152580488603028765534231326276558524798671011925238308647874530281218404276619105846147421900446819589737227206400694913817025888906130280473553951427483464500987336158571073180947709810585952360491677243002835671246266614951997073828501096121811074680463555448949406736710889378458198307245261243316122177319440901943786209642655936660728430250083175279335626031847527241025432455159958956376513672471229747149204778025806720790514448744521186813451315576270687691336534924934028550161507390137528581713590856964734402138917539783024091336058603480669769873412722347198744708114353430590585589424809523367136359737899558846312116418451482830305997684882860286652946532167690601535187382405652343452768271363079462333447698016302579882009177274812200520248564594389741338338605469902577066008152556111963195139285471270440722869464365584092545728836326478975410179978225642070742215586135769815569331155837629129270909348386015343428904588981253747541323921899542916335970049052737689227735943174497110472851804546540369068928539803270446780716288264563614825796931792836095943451331707068363116342702191101170393452036860321106445768902996876588038998993158147981881546023988928140072022356955878157496040614197462985690083187051918773595404527665129431416292037692885452504930480236240894928103265502758716204858923986241744316472723861840800746702632065898641908274368468077552598455636294506806616755134048343842232319513637534172994686777874875687320903239653727531444115850797607293676269231161931736730754616433160695493667722238900044559501005711281460524473754778256884498094727120116337905970518563338379677885881556220814985824331723997313048075965748134560445771739340390781560642764712068467554510778865524675778694653050794643481895875200138685614430522072138658734393994541796604668746913430743190772988129340472065809665483382014323834246979281498876009316878163696526955965391133395721501723851902407878498085232245957260248327370338341308798319785215268213495842595545523283749708742455057765821951151773391346007102811379904618471021942451242438890983107491743472000087354496520776541995573348337977318518058047028446043497794277939363859176517047041199518930632502799384941493373718957694641834923806697503491968157919115836863088436490194536080973980628143512649407302757639666876669951492577935479045194306562811578698335375815136374109793917694730912083206061817979968692994342296274958605946624078168724220660520581483739127866190843901897291027465081607467351980306053954828237302914448419938905570990483582681204999164032908928319399109945575234964081908768767158440802729829647818239812631755701255433783728019896467221978133876921527399983431956950673521913009206445143544790045679337080761341353002646017350221811552910699597457349140379991972632866761383784707666677614264178539935626987239774202059145398390855759445361315173122549635902178829181315919585841536537454656052421137721809407333481829073630440073001104987960207744883325523614321342226397231100953912317318243142876295588520781235518549212002066132746095563360341039484622767469365475277578121495755200697502981829380288866176722365005916826447398931048918398065329377799903281327707826934321078012627103960460153407291890731858824891254472312887167638127736382436983728363542584037680537425809703102196389695425609930616658904027282271361722368215441717954733744550235775429621575168217456591563041318810854598349324949325940792877903879301855113205804958934663222226548067636184158052056821332913644528290009520640636920273173319798534320380428209238240850097428747742099448706275493234822136763738960344839259532224288211984189837447220641870173566222582287193297664396076635684314704541590657306029789497160535042440285542169293058451284711241759035025879727039036763162276363296320427744419694373096344223891231749514477391259071195580313417268675835116869127862466507411095371047924128191543449357407508049917774532149553272594621122068477369087372539778789614949101375559605959925703075465218026932850929289421502248731795842383180892147352427226204874172902895948334563702733527152028393721213238181315747907649805198034537489645779515563896594382209238173363300841934481010705828698228568978809482255138001062049709845431011954463636403682919874064960285736080956030915445742048080579326423193228652919970744100140514852873782891921826010679903371225321446033639216521920786680498114447979714443848508385220694882424570255352770276190226685275546358233860087075056878700741508876118807920429616460025629712745087086221037565300110963939378932151806543870923546309232364893795299333241750225546137352205429377688705369020473163830639944407581176597205868312740730833049732667944236260924120959572166508019618117546436653426859072277425524324973440882056393624320048781226315777830017831682926917809195642680775980427510888480089761250935718954517843414674821482607858922249009878463315294668570665298315775491831666246154571395703516078790704770450007471447786594038967702114664997806875185457340350136016721832782621864749619271887582395022360135641330196645105617026863084489817479476459097395443576605096184123844275664148208553555437675713169623910186384794516923120789248003230485241066862166655885040966909720600026521082867299187775357557366000836386887356921271605698347512099709531515188886905105685880032710118794991303105414072142747329764646228105251261426717891211898719032633808404081113116035089012379284945277165683269098563863550874079288332119188538923822933658646505481926283801168444341924981398403234591401053722494144611757768635123396754153047591906348440188456104726388917019750296882294013237427282656518871242621569972988341938185594643861645007279471298901727397494195375560807223285548032234902215547153377479980606912500097062877357317004856040833496966447768536018712044577023002833121017214465652656091921453740498637341286552328681344912242865112227458165220665310191398820227786942202701362546106112163018381239898751213057085489564354027429444165176385407880050330331205352106075816540349066789964669998930199628197768643161470068858405106306793586743237040525299715167632995978468139527797472804175368363667014800529330480484389638896590048792228667832403805464141428748730095923737406674794928011037793508145353688924429787900477332930567938758705205318332285090720503874615577451358680399847690094729232362376747051380867137891419026877803737590723329248930725411508363877248011990378350573367425889871438286735900286007458762489418444406604546855665850472447391976600203111298989263574000321725282805627730515706292241132789796355153214181335552823998474479446055194748035592815068862728677157052031060377724188741685097196463906172663911734763597101032581967485039285976124372411872916901840762247477124236964776396581093674271296098166015602103413836176170714831473164284218915351735190798088474851075671681756542239981176780902258304995245472315148627495761208101887311400868691071684892550101665738231788574108861077819425381840100611891164515321260287524389547308703458363578763379199331463935630747453379299445400672189564826593593542764446575877978944918477361323933778919753830974404925112238709836492372369791848982312208690181527266487237291571410783660938937511379353669519513889783707845442952872258258203658890389162871523428416273324323788303615029595683421777566302677848562003034598524163348344265377195372011053631262572945740289235198889751411573616896250983241482227750602958925308990936302589960106813008584016711733395291233570750772036297761168151124608398121181110199190445067504030139152239793936217181028646597416109698435849584864778002994351476430891341204981864988173554975291222407580450381851844698920340562051328561241535616644498561112890378927637649610509604096440774201115135919838238926851350979799208097490946444659458102328288586651619367084862394822693047109243269996405046985363472094358718988062583078754540693886589044930574824582488294710098563445350214040502825646459684507586248268193906496905752173825365202409280493154471901328108041572130329333427445635291681419236400743050787442458136525734580583915914410204162102364649152518881059131050785464725845745191170868249742840476406521886075530489748021258919000173634956105950732260244739902198413844959477639701043568278448995132881852075877075531894130083227568968476700667440617134017717197249278872124429961102836334982470988416656481120822030647873891521190898650135051574122975962430440738276301804444948085123758214495855084792187871624269094613205529367416699991754176348138480603526638942977549664894911187538958098582736831553170376990973380057010174848111384873908447353575466980827133963459227651386322730135956466393913475916140073613230039207027063332918680811277235115930941811866279434880638151911601411448999171665138920815283512239567557169940234706491625239984606027597167267727125934501465202085273115511207741461881240728212524255582330300679791668264046703578676754053796983004645389631600834949310227483837319557069102559191218889199630875993674004857687296266765504683595082235108320066555112699466952096741925399973972834955925062104581472188516213221920475056542774161034658096973383787743573652211415934381118005292408524043921070262936475253216199286814242765133314129534592806399572040996705058136275542094036811129258757559524579041920983838184937767215810230834050413292492880712651516697121151930482685506791839677108939936665813242502393615955546725220867566429947311203198849239253863570726935628278909069885921807689182841404552014740692575486425367945985752861326650578552768488459209335800465000423711993578574616521031329107091080207727561827242314918135636772750930642301884670752877224019931972608399336032376859491754521402843589201390547582937436374090795752016059283750187771429886010135778122325527186187802165997961824701062309868650106410362940354394026121096065826982785289587485789857703196015212173204039443998112032396007071604992869918250193911584026338136392835084058438795008207455138032521395166717473485045746081342065902394476277228333128698288377626861229552404711397922898621211617258136228773264518899058529919407110792709842279588297396051991908301062758454779475060559411608112423777166176054652552118596615801693705002304829164380047938837344283918321133081592576348315102373431893625149700541321620702007782829281017281451364869071685635649382722280595427332400503282981353638407043752804467497742182574126302281138928907021045103999409696055716070523910895224679819975175012016581560084158230626128282744254782112371503016450317824501063928341115268001494575332355942651154919476522256021872410529403297920489614158656141703376126341895107070660133221004370497476779225148462626333834841372116534801161726414227002053508857865121427944619700464201388578610299022434402314790050708634541703952223950404490123314936279153162748797299210217932786177452781701347603334771682780706168159879245129901994682385186268494857525846096690529915369468809523225292999532987501357839754174719789161454233134953277136990143709233027569304011678102277416719832716153061786368791955628190743850587078177691136151018620455000219099146424114421753219244497321951419884503194528094466458850411871741151493875021991839130664960331109883264710423515325663274301450119659874200643457083141516210309194697231435740390706914123988891623464312276928028864799956391275068718531803146548842607010394575308762420239004354930707776093597589108295366202892578733893292385175947589287169965486184964997129917299859135364551691042894784441442668777451231923256265923477829975022829615902985282724248407649375864465660932696926515340338049382719731455227307987162607775598015413224273728473229603544601551787064633128557992347582178935731509763730036220541856785268316177780040743152649151400500384946438658235628836150833847724948264461901806712764407070880220971519373231245145935117976636082126004976573082719602558923897224323495711901192518970857564561748349760675045367654882967852890490542380049105542231450192020329897121068834328338950781118670269740912254976012345386040165809608203598387054530703157660242760265081048636524514823763908513480677918037296826207476008624252548685094432253278873606463325169506270444196402198180568498973726225034264125110778678540489775173840487162694000130845048073169883304153645075242443418510074266412529368423617188280037659917019732222649280432227728499996970190691584343519691565427826911944002061984001573929679261888801767187297585712152692463038022098121843763825323622863340899694531593832263939288178471898334981366953569209151455122744232049659019611283404936350499328801148312960059630166504725570576906530370680856461872677807441932493013871239622865436169443600983857533486103473116086185467284405847044141182136188982267039959661161879889300939546391225129567576848654162649313576357843197160941095019889469433714253338202980653683674981253305013714692502588748648034696269023929394787254311486259423802179179558445033006668635725241504797478212432430518355012713140396209941246953123651238611133296574067455994781832174545711950977546453314704641490014461661807231216140760169541713398285343916346058802572928738825085558322802121525503643528819758847403733389548469407469751527300807086607855050998113344388314115392859580563801547034163096050710500562904010788303849189246168200957790922132105554189136484482160618178214597897225018783212270896720077480427822953112027555380095961571272995451453125559658360460570625291334237219832966750542876086534499190248017906190687625427540277609561187816155956166738946687894779478024317117581345671909825212336624613023032270612882021279173891851734566738651610603571931432663958095854243590766195583365919592339760461213468469939976121449449412166556545791206193420334988829149835063073841625454243646252111263229765125650339592888405696642825981316721983743697510272636022622479546020220522759334811902580709369392723158995850090122010734302707086059218592937886835882348855652862062201820074209948033991262086961617368898205264924648412188664542087644304763214423001273025368059783080598735294945261941555641536779495486781604446078903617903755336972003347870281617586973900615167680818392227669883588807666004103285045840413521789291047368152262858500005375811466916866147704296683575033072984387666497668263822132167501522745806116558169402063194366776916212587001461042173579992839020875539658201955163047689984153053430656419634726828211658052063323975869995827303585720655009320735714378238114082355043118678865881089138090943664479832299469232717557128756822400969731553915038653673360256003721987562775103758766851801874232472386915168119547464549033375627334939695287655702038107263165662118293896736851552205570973500184256666063432414978940975850611143849674339291934147683026450044914039346099971982870131527524167654104106414612615809619122375545987078738158947135425241804549840890417363839665275131405941973699205253870921002645041654469614907458584559022141906104603001972948140166658424216982087384505797416706694595604957861847867570505660355616245315544795382134376188332632761992222527773975909226513178588348160776213460781875698136430314263881553254709716216999828298654174639164072594804830333369878512220793292178011904404321738233098912010582487143522974357790617870024827753786521089111709173962518070856703968936354671750026485963338369911895300357551683342049335459323831760366999450755976674628398491611508651222485801293663502354739358812530755719037905934000916545630092996594249678185383668644281587243901458649405193256307270100688564149809254107773312512214044848407041577117569558336602625835830187150056081023603924149535979921822459109532289089785612390659766383840952903373799631902878559491603609819134542746278312223028751258276852191289209635848953279243315407494368990310882707182966817277127681780764481799106266621497636668119204802432059450541778009340032097703859995002360595903047669032742606322816731886939337305977248649453146000935183896038469854236204295593613687484438799731771911922423890978078011879330353059653493831887531830285233979812538480370196954262639297133050232015753496213959142506870721982354532652329966866041063778582908854117393631961995038596653700612760786718208291436017579519246033324432805989381869316401804583135189842183686999296450105680343233317643613577127978681752777515297767178996905758866617218251775172928594000497993838057435883794105591582687846293274160221195509246989479848056243074993425014007993573922848599890249791539072808023338939397171931895649131354445272719681680151957813444119512255690148130501617504342130892808849268615073846134705520289123591889447853650726368904650346303908285316481439113422690844878759223141250715666567959845915983182867245238921623086069058167843518978822818274102294082995343609190303447448600602266652524325946786833003895183849080277224699793700876889959295758272572938428626502131786744682154468641148519169482468621922852177081791080853331075073202107903865462981849939118560578475247344902266876142405394548868292963116437138718080112601031447150568309611445343212768197418979428554542959441633052545870176240769504021893343140904141080943740148495292446942122018823169604548528751794389486637586502984592456723174061273114420158483424323541202763126365866858683866722660349392222559277533774315888371650902360498116303920470796178909471773303277453547119401333740248406500169471851649442528004233732368903293585489782427116459881744197786817903020438813938074176357672067568852259130549513474496910135732171793555281495479968690278240682484931719838438315662616934727678539050049047385543376672935855656223713171748475272814105731022413560177484436589967621316425411616478991699749806813147277380194242610160173334266680511727518069657539542072430116273140853395637481278982011081799853193398581637740826695251236985052288705268082267905943158533344242292544885961079139261072662217583188959379372726639747131300988266254770802734689453033707900002014765517606098336337969262191777935018895790549044600866539570859333406763056339396494568361596777660915517637733633259309126680616744092888936511386681073535425723501176746994173174155604823599814106686766626603262731120434979028366652443743285005459742560956608143087858067371214421444659209092703787091303645485996467777732490242773902988412149389387604534293505255916213347516754635531178334418208275717600768716192876620862147238213207089102157277478082047844712668243973696186469842091764568872457216207320752778886889696721664712137761466248641855659436042998518957365036672988342466842757011782128247985711396257849776737005928426721410278537564263360231187561944253903052618791113576979459403883637109747908729305071768155001409986218839911893472685482027260675241528013495278533245546196807262746983141451796534691021792148952447050341988484865060001630995832692590461171140033967164521626261105605472816246773233275764648947681959374127086745311582991477177578749351667948818915532875904590893394122978914856104027733958985407308558967822365014038257167826721777005321586692418049745215391156634386748227535836789317572569454163913893597002980535227290200180993637824841712789750629790110026262467027120002313877688941786694115575038841116178982900566956906821647531568633148435373156207354986148949428765881962941918381011475660456543881925920742703208456640254720823079650628091624383043048840394928648943131724713132494541358709065629433035443227995997160473795472582111347071845125176749109601244273241909001551001881804116369558520636160658072168196691447150955155731068493855871182115726913174657672247686056661634654804479075895314727413423820448377310381776173143614388289362235110737303966762173828171659045930611279038482773306608951117133776744907146967608961381545951530164325639357623297937907530559966524188337336399712186037018627303388852965441115331846968944144407503158875942961943141407604792690356462619213241343375591762072883695280529774487819082413967802897405122166966825954025924018725118978269028025482964683551813050027577792679829215989781476707107250026615800539473245540648413924099274081397498378869893122166546788134910597685465407380482841443436936982817535742199009262027903326603609194618623203376442352841245980791415825867141496038467407943455197420885447668249916430184270816374319443380987022553558894611110526669685472377458180495550498714426420448425400098104366667313058484746037643196955139824305211041391083620980004361698806259753100963893407223208013480047117917645976457179492575581840424940642739498262126264907769205171045148415075425336370422809375572916357680776890504591396459800358874383332294781411675611486813603315408529636265702494544663990352996310326815363460722545173087002608259865530915152905099830659521299903988065659973578134818339058806444898397460855209106758352498155555662645244735899455530923844475227876412735795391649088876068630341302392336914545283014249846566558602571227630058133454818908888729042807378576573050846928156100093798996555862818116223778002580199534210381595258427993164189039164315436647957176350002788324533170985349691183103625652038428495406442011654513710115225255968974944039587610813916632752732127134494976578104612621885528415583272673131902804148595169656007375672807223378659270292460425187364267087901867592092215566447740227786487827026999127639530527984798148996462881883803745123346495823011680034417953482444909302010386061233935811061376768372194226582317141430991407379824158422503442418246412857816292718906572861371476386219528124000471277284785056191932068060688788860222884889312390250659370855556035953545604240715780591672952686339808466781307980699058858651188970292328179500001494781266287408677248880819808918591178347559214380781292620114664472551133099306650403520546217342763931122916905758374712096260623313064990472737209331089421489550924170860722693665446926698130800537978061582770730859321500489455251510092242038365811216614887458348739098601660390350973663001022160461115462002434480475977902899770689989059710334818118462668932692493640963609994288480355192405245019706004753266663925378196085205842897874287539795198467201066175775566719473881754845249239133989929770342752746127959898097123285609094955941674158614312680388837206467394002219585816725070789393463794928138393098434576621403875198103136227500537562697954601868630555184302105078736970406191593655246534135368141615959607410487512875657894916456310153783995793757056711930016536287161866757413886123176820175823401439327032954324824993463653344517113903921003490055116355632937040187237630150973398194350056322558838051074900261244607890447483430484480549235510368624593125554235338720157831224925745829414236926447429636317143363436306114481711372016093919523356176839854324490665107497053331969251824912258440443850406385567334672746310281764565382398960710326306976497993929393976964014204936314672716761250942290761523299031497052295951387817685418017149938141859181904680359080966917480697971371947743097358849779496950703280148817884228266924275929649966726899321848225674449285148720267759798681311560818855532146458642378513961875511065670511136876819358363241081854683837612161277745034485738072243497782748263696250401438402747247337122980598108783864198196675492715505031168735673310303482148625184344857891989119909917864192605429863286274135328055541101870324661435608758143509407499750809353726906063681313835996101827293813224304323972918039630425386183283546608783547003286984193938452479490656046427739284517630909783971389219151453545452705828769386367551831044961935856380632003172389798685854239859597796712839905536781277897863390251671399058653066927770410654588465168906559800671912029484131460142551417553987464731635598439541674075979798656835393013905579479486538754256013896298945161989930513021072302098080419310658222626606849478710787078682879321513326634317287152114568112638749231514195900197466993535755532256530137482934665970386310421360628489166994251988362096478840664974256033289854283157317610697434802669046411491682509794856079561780599134573119228532460026861995590494237740365834005618468750430226209691971053625140553991176508047928414955290132191584385432308306898398567261802813270576212375296587360457975147544424800852229287713673940108947767723029114067075855441489612766610509110607386170546736028907858148529939231427542098998206753582003772936488429729547878169712551362871986590984950581865342363414046889184054474334878530645835938594510840535682181176857779032983427054857092584420728640729045639079345300272575423648042605455210807509932958340043660567324457982161037320352100790567371259632189495767773111903534729318133034762324543466433208510744549634356171941710696300350390914012646151292838381490176976007193451726626507461694670004231898904173273502208874354494085338724489832359934136929934031241048185142644163526412243882637014795873165823052285993307425566642299585070919598262800792259258119697150232158104739345003170272198181846355818557999147791147242736244241652550196615821929009309539914042437680869298551815906388297177084378151362870803352580303167021375903347299606596643207960847952118887509125200269271796798887204797581666493419587774523005487703546652386808347336243769010920675607772825817844054712557134182795388348879206364575200987267846082677205266975754648576680052914608622829143756469887919863872431086525433097266003680994206248582702987669769532317621199644822283050430957310854668310097319217402656342602300260798586083171159542947748987938707131387646409969888495439021639982596151757410158868689393726846585097020878287002943426645729551601327832021330652975030435046440729213218379771397593981461664852371460763856852222816212528462838220515456761031169564352352051838854747007583530139018408534301968261034961224865466699923522618836799459369918270716758179385552772056554449517090451719027480903295098994396877813701153550193202731460897905330965927940379235188919825497449378369382908378760684717298574610546245868606211529027414991244788408722980232540969503106041959877312244159475024822654200790592456154736852108285147098977575491307795211141871095614618669659698777018987680248557950674465469651686445031318527633953566710890321973115806272381031160163283880686542483292364731759321437844808092989240968377020715455947412368163789975766236488564529380070980440414026916222332554429600799492853021544994246095308207537161054805254940022895169375258804293209101000173635456226100521725242017680005147444887469923851255801145920824286287563586313273050578743976003652662377798387533968112362024324565723071790400345384230123890870091022709703985191234174812287532662250964228664135757543030905641596249610767057076877978320682294420411980396951446779237340997094878584418789202148339581333923534857573944115963308786042609847292959869161670388010550499957888412411443394539651996217820510758868999517430326737828094087086285048065020263396984482358384300625513832143834110807076238588489201776929073127923420012150385545598935256715109400479257325287457436636187512649383016816004164455527166677384232531130396207837927337633242133665006844105654466845043064680292127903663476340914285000389978636369869337729226088278570904159554626394972556575743705161583635979772564957541303262494984447787064482506825794324990322236345753784474694497715352162306536293343078900080311356577426703419969575447455436639912871544614317397649446369262119124668149001749487818500572449341338986708959080263232696195839960612589175914919686717341122361420294006368533622138639933594895893796577320513273763285719215719034230535642626240677169869727905621949461430645400217019926488234038220435752203161911924336631704112060866381084958078185503870882837754088463117576162890724950505792604312482929064539704139846905127740178670293854820512118021755306011879166938446347129570540178884933924844852563353657589474016099584050294581998708836681172857031320833904474383750889212769466887321282104280313510303248471262034684789093981617128969095566805070343209174465672173008463276754845443714338861866074873800841216141083185406067244183052527419472276050904763018335417976425583921504466869458640336734701095961321963892714976067570504142696157146327981019687417563411567727340803796248831614140157285340309430874052241553718327072937218785076043258350895950416814527675191708594297446030609912491338321922986786899433227881837952668364566434772724256432594328517937246384076592705418850675097166040133949747719855662121752895395587422506721899579650454415212914690163451094382993196653404824945824134513244664745223677081671723203865799570457024589418298851827330892126525727544105297374725349420629808288080954110363275779530328986644182923912040763482593901484248257624961272691919618780390008857700876925362198020324684514991988320292117423082402387205531602226446239876310887371910947394974975436737062840433926296760534959563096862447223899883457573570804971806670219435576142483066275789766921193502924298110380279928797831333140576554516288162407262468594224186493493461626383766814128982050398282086466986523417251658689319267480854342194686974744045552796308705073856934755126651968180694338248788445222590529561154971135803391000679606310890496058887872465699807105185527128968457755362099304766764614652155595012001891612704901436208927316363573860228586088950703189978963367318015481941998437238774128601641660869744148732390016596978874702360400794534620566837998161201795018009073379286175397276773231447103371507030198460397400472334570916073629303333297690520066300983966379438419141191299521117146145201239925881806042256909957124048366901102941381338524867446915095515794229731112341714107999562686604929658754408777353232485451448499035859750323346010070856418689038845182376842089358954896303862154834237720299479120568504398964059655429298076149147094362785364168960742251204387085076447232655609384169278957578619401364439640737936291980605319193947469453178440951036462240880369811487886017084355941545857180931038131841843572934046404490142902983937456841855014762912274971807806165049083874476793109892843670267586768092151847385788349702171394458144088400991914648952060223958936679163341292245181304509372404680159141283628826242419086292754431470195925924308073624174834732471849093246166376078982022179863084688176650893316295480542000641336921790826067609194704921295637326174872481221712609172754221242792000963857723767589232181749106690558590135204218554173127150184410563669995668155780500465647388805272711649257991841708972790726895509162395478136215132042680066020479583503282642944502840665059072432216526562830148959797649521363166984371254540247877158591189844027324652022557231805325308772605699556502768624074843574892765050957121211876071760796633186282763861097969183657739930034353693586589856745356910819753487819165970406653542062737620516735236331857168295835130502269841550403881177109999698014150242833067576190907915339447050763241102225727050364535857086853092777833717089386490034675629223542544532356995902161511188667094441122633104883057745592158430919094350571238407800414773840260371022339096316200677404783298540105977578079971658586016590084617866559077972744344361155496076269398033783193114862853034447679764115838453235996143234720499625608845972942412806792300737379216704824942578207633397211039959175720707535171451165503335281121513246736342641176334730192760783287698389696182462051250553745384512743507713456039561931627057530106359416359110049579211480972316606033806931569394878332526667655821138402104660698562467641264745878380965923205871507810561510476166013883695995879223612405444057316986550041563656835044734523769300140731573598285862748753932446043568373338196555423793124666905083201554064114350733322330644277728817047776699130072644839282218440178185024037564367176311162424004984091294874968394925004502485955704674183240530539831473568522109549865244336020698138902361235277340782930513579721368939266828735064484084419581083230212857315984227185389226681707893243301015199778672282337199397217427193329094584893621811227078865471678336703420787699993434812955708796216961413135772806179322342920500830201675297926725233416565202355062306881232513401485780664835960475925728264310169439986089605304533510374172661198896925914806352509648113443483140554545279903960688649173619402208730122253411746863624975534842849714424089874153550797115086679411319088615704438433777093698588363548147625040095347621775106307015797686344811393584583763737712140198212778021381259290251194742586033553250663347978148376989679096114702356346250864635586076721674660910925113402248084816244425757399543985154699822448540364029807489279560465805397589581945101776695615678728432918748079119830980355709876596678450443991991585654503559673598777950824642612661388369483381615178465444580967905443052679293154765164027094214565490480082416849213959186660940645946515101393119987468934070891558462341740095884680969164496360296198842517419059222352865431067904132629275285417695044305429776717235042680618021057239444686339359729498511645912429214521164255378026286787905410761849480748826996361145583167453396596727947981604767002926431327447361637928021844380094183969152207474170289317504296311777438223949894200890286475460281567265514263095685096969528320870706311806754552544247681258443853363690714546519906049162826282275667431226534354353993017583218288746150692925958616886671500925373764143572160242240056891447507844250654033586279459713602820494960699123018813934323017457443148070369455983531528031936759051219546098044310277670581504668612996424042982167179901610331595792678087300101108066714386850137771023826940501698390464084553810830304778457513702812698572236556336904127977247962733924999959022416599355226661273953064817764190203891999626135699735332514550549737018871801817682173890419441013748799228075317361488521612374304238056815419106508843712342108937592031715562999748285338679623032929227188955209556497122744249417267155069269944240298833807992519035188023561329700263930481271530648600481374914177866386744249115708144999039218407532811410961307143887272671532819691643874128883167270561132923172994941241375153972450085082521578021223112476791651230881747494378476998533005066870522521105888819918603787810993748799839150928445417479590714335069594445074957835381154729445036833263620478547096422659803767627215081807778242843634745796864242600621222467627090566891393476905903346847477651909625091374310411604731371247786706610592651173267335946418802574653170418015811407507201259304887409654113050568209593286455512708091526816856743189273129914342924671126027038286509334986755435411845139738386545833044340970541389202822154726764736884671876832718602745296239577694500302790626032141325419795795560937881214426005586010996124399766208488587796010127459018946305901912878151133462856248583496784702484048487413423375026325833661733486314382640572413453270163681083108741273642149140651279477913254366933264310580677761055768019974110209909231067117794787144789678245137289866407328352321235135632037776458556722566994235546105286569499907396150761981655695753413539852866707852645100675891601904826403473948726572577659009152402896127147091575489447970652537812520323893596819459347972916768413451589509034971442835521304981620401748704782525867628415758855545107702780442727180650406931636281174275483722381958280621312171354419628571274922163669245814579321796616715615950846675638816486360220258854200213951980834218012512842490202003167897158066157586469090209463481457838450513747960375325079013287470658433595793290163780021032359979644513932001650023376494896113694599731468387423740757559489970485801000599874105226393775771600702652972921968099356515268619692542708603252080664082748089943699839469213253053626913448381974465230585817756424070290331553022078626663894651559993127291588384162238708614169393510742014654002832425614446174025809860436261175353342282025821784567065851998876255355848187484947579723412029307682320306770558752043764155910275424504083324963191909841734948973339516421703000964429135047275480210425684883043797660432404996456028338666458433619036536682965065736183718718761446374896820804591882874772207322499368813710840798288404581847152242646904456290580034179309139092568041867154120939705630051810170587475996716112714192011327032835260187767160773413505540114537550631280316432935274116555101133300474723699661625732976885511545102316764279300984722204746852133769098429620926688620220589381870744714201214113369987011493208251899279052089704968940455589437854030239316550487088681891970761084065621708142280682827236186396907035074697294702962699432967141399901290306401132706551964252241338226397466708069333569377695025063322508130065556834341678739663561404949299914456463331745204260205804939657243471818002845849199896633337648067308680350284054941946699531825052948964781061512279021403265509697162654276186318913639828399453009488595208486851778049719251304461940721491761803075033677235414361185045749972943068427861828592298728872990536612725946348804013882298015467102624559308706221946428349412606029797384509021516498818978629729117247564413672780872911750237935263011390511478654114315258141533512530079805135525730895582044833983768027038335392397184897814719134549054748983355108555377149779202051711627326330539537078054068529767236439037392741592261134532820832021670936843207254057544578579018419164506783707508967390570241979361738200919236641899256391597052176716876952882018718477141297698577295023799002506580447011807967605816445742114869210119816007648945353892879901887710747310996051293169323948752727187818096425891609348094090279188457048372337170263105833292265574924512871012774840367963140221371702923481580066772015287433671076837405582539356964202846191719114958175837987613614661247652825091863180147281015366125919666201326534287144937825386122472274965478503882559845265166418755893724297714536815559943355715383113329599327270631897432063550774277358477632239010819669325254287572355239534686162148907546324908942688740571524424514116991816957972905316278049329490711260039915318611773568037934899139601606500259203601388064148369755830600166240179106872134825530323237018410273898954498627708894058209850428107845345358697410449093691907439633598019053412089840269272595912737701559960760912753706885757284874749694747660286874648197285582093599856025293671494790693971521048299034381490067836522308266127451006179845752699760977606355587418560034493332986768815202950673129592449496081333995234448111355554184533725708926685753417163167760751764976691415274919517092452909602350452068886278701233964868439924986848396138367498682830650072891473927793215299570142091973633079809094792661149826672993910085481408616478014191564198492448737664394288653144963172894302231064549511809681905732191793386306866573460154537551542875252141784552723415731742264186724419330326843778520509946059283219314150223026614319922873610895116273595276036903728393119208792362967421625549759462191021094207548418239391178191525286887897972336692209192370357208030950224002975470882296845523030527708079547136953004244621591121607754560357776089638408343025612804856264390611896390770445695380035972591338561330904739613668604257618692557651113032087811113806176926132355555876807582155853558230390125310911029864476022484700623824524701915655492778729820242127038447772130939353198918601876100477557827908831859317590537389129694068163349983837591354313951296610248082968365424978703391959576317153736369901489117592677495933319354780807234761005626908362054684299897337994768980889817273801368628691259125021314164680954102225332427727813428793939318030536634875226793077540886921354835211569419612931943197046733151459212460731337241736608107961048318341838480056535660270732851789095917591513002556811949028475074808967306876928654822088005569746170204325044540893720149046041923256654630936615648798002099503476957453486750459615921977746591333379260802686209671414876950778814146336491455180147305627088284069025561367478914002299534183728010610756724615476962439733116249901654294647495679472774255684110396002444838662142048793422245935905128834025334677807883218146075491648786804762466047575815314712484176831476109029456366656788355734855162720583579031541364011936265582707360994029348477914466957347096511320857489476242089424685174515398325259302950942439019724856332506964453532287822182664332614831591936897851006149342090772965117310777082414833797118582939230051817204982424845572034039405627568154285212878259154065085171203351855448376903944399643915917389204124221416496605818443520331509394239442667078367589584653130316069622946685038992528919923864124148190636436422806607103405064321128710486614948254039304104245015767623057747918069913754062740732855983508864311630221235072143951025439338830219658306157967176187728416411488317531133418420447011182637669760069158268137723460903537613190658660983041957719299570557842954676195188968560598128138694303088881698470825244585930838600869148641140884736373936767075521438194265495175115909510773733323242538899536888094503723110940285506043849778323380118137429383749876671342090459657247696929914447551515842217375571728024703374469233998619192476030156673509095061193174574530521059387768442073711274340370577363317826247158911768964307529086670551588161814202512804964044730267426336914249185605637258962695551720882910269457429709013167244537029615082841509744839044249468904755030380001634165386030025017489130175419250179779005517669241503077694354840146214351352315350032791871675835987919967118955931912450934104348188175015464344810649893961086601413601104925641315191599355922676932149309422639235503176193706277209697196616725860722211442689548854762610815574763979337292524593043144881063290061340698159206320616802765113717974865304789770414209963052172197670162707651422535256256663787244928369563021860860205271876205117652549182590647330906322225825593621734572312734057234475792856691561251743234380699181637424571453628282439816631848222314965905612234891527852528384320764372177622353505971387399549313043625228378882872447725246770711290974713359499075975264393686811901152264723646374376981094491207937877448523079701714461893957130380901789258800417542902889007833172723818817514040004075343497218373592047772437022924145635976955932712924804403647558808135339383064632287195596744480941696919327612816681901863035030150673064486472917650639904636718148820138652577217548225309764331604782538993302356275044728251975253566186829285572500249969794579999963216174994282364708016706549166782220232541012304175114871559740015169615769160273668438307954888847652515330800932867524529994484184720263014198284507785715478513394266877092510928764596420325028513669906454564305417012412732523441029083979412189316409151069425692767029249268797667236816797605191141667079847247520276028536088438811606090321779284537449523319139005886389719345587113448588042971802656365300598223502488208633359487639773230091042659374189412713016703053285887979323735660046650156450343761702793537617262061402079918743332898813785606815687798351960609057598926201090220471180209696929155431298079401619287673358003445344354288495528927880150884815150089453481831643037057859763190244037513538180086882864311695015727054019708299904300488031451216267375340905671362876513807334406092340957783272124713168711745420313706278290113093362186371056888655584148058781750214425384707934362105372412064313775621420316037130460432085908267143231524846719757747955316332375212619520691384589973574040800468646883737357725546979600637872608955574873136880498657704457102295537166361578262535576856063196373599124480792396546898810990961863317432812512880624705097261179366430024526039580719717383689731296198890708798912519432581390628195343335665413506262024309248969938890842356126901418110516443477342906151476786558591384551922494440794861870935507294409213937889678540089349793604756799341373839878647041407810434464838739072931500459707122206571574631495793993858537659069065668017082822449600682898457726789849913623096072072313408635330377209685811639307700127491694412485730333953823306792742420366811249243874622162051272631436774397697938463131181958655512594850144296519106362715125180864262646868275213081068296090963987564720550527465572963691539610403613657596610537068753815711270798269772753225591395745944315249481098701454869108839002475052769888064774449351623419466205515695944393834018489667090021798911683355227271114070465685427894143259941114478544589826307554643151471885411155497869418092954795707435784970743410270652611097619638151413590517265665288415640644314918832785093784703677943420290567963111263950060183672262297371243014461068791591025435954864317606061401720214462251859141188031547366804121080750503490387931753184520704137195227859324597980538808890918507180459950179863776488544623372085146069545318382378392636617298975912582213892143606365773260806651051968778769896660304953409304445843589217902228375472151326368645408756361995716892630916110452715380693180141282800596979628099129518446252838160607217813851334687464579657277822314736214761315597629665405309156446298466037242533439730634628823430586361066626928672832713403873333877726375590875037931751317672542606913924837881514648783060021781904521099516224028220222647709789783086901339117264721422847459334221242145054681727873914222428800045111877427548728266767181564085649611925408270326231378638032484967750378063596379246913579355201892228243858044165783659175100472419590201178992959927434807079096132629616753214743221718451766748259535581098068658987425984133916812061015914606147785789068690954713904768465166612273926203816624175391276652571328939262391800664463031157468808967778077216336303035269649509298987890669815904008586412007647151955688407686151462273480381994097070068300156992432765838954945706819851432174340158933720916717351669142634747711740662869020584501287515457898817872923815182382041208823264571514014909593740693891550372075069179884056659218831109647670054400762867302673752808926263011456878519505631063425390188157559574001349454761621650957762417288686005273991030467351068431824499766315111380290119318245032904462493151689153038211795729760335180150318718900858751570452255444107714605933494102539232373659864244099320200027057330261721511969320499352428596392246686667283617002453994339344959697103045437922742244714102369087438607762490413882747122039415072138360565055509221347042078599515704958521561908240733658922877262272992320132399517092266381479404933111894821602419089099787613750466159080442813122689906381613683102435256643742762166164831988484404630882088893083133089001661435269051553191084736856560159269982400864939908817576332501130415432201718262937880965893769864637899941710910989444242908116471275829588844766111719075749673761896862344709875820968858568525092610552212281281866048485364867377713386834945299430416668580323063564426616480646176630022485712368233823308574518373730618050308482847016135923568624743530956186788338851992546431722425555624431434885952880778887809959361622503131889379403416397773499658512952887951533340201313641807231686761481641202640427766794045927539903401716392467572079395649788493480340204391484965654059173210183180909932551577077712399445157905242847186895877419020410887079240908819516680690354881878736549423216050701856465267738008454766131056165483466116133881208596095019229039812674877406497715287939831895326866532665300403527592725625383753979576313840606337123111332580712974409399574177773845672979480021339743546811173978683221325162543349579554845166188157868232424347439810664642418030928876213258197071975101538873962923045152174775001596223992062305348307552364535783197014406901958788411458140066714304370981997652081787490951318434864451934305603623137768203222595371430507301537774120639684449854832394407590408897623143565269561615002340820390432884695411293101837173507077224249175533275506982197421019079067235225530685643478437951657100630840970633168190014316059015828701683078801578120595256134330015071422362186004850876461563986446364930910338280678337060690697696287316547852077988264210410765475454299232305483002839100564550082499358921426765343330193399461669234897408469495683320745381536252069628444863686328311946229389653007715975466344087800748450307701267559824736709077476230838114790551864712853792570452823609566202499970175879908363917341989008791840454425348844225124025136441683457448339575135924555561933168621405011783313059791289288818578941487807601585334962762355818903762316871305194537486695369548311229566398968039233285276644591448607506406338728885895800515069351557539160407092106568548302862220067123709835726323719395555712876906097710186827241067779402506647202593977930506511429451751502519213382778721289511994731771356455170402068238077377217052488104211779229785345614903172538260379004296330856565019409601420745123379074179362036687354593910945923774421378587820220997125539308431565610325944111380117235485214953802421735320473389117912954401935089111512222473317868956511219046717232052205541256281239162412678879142992362390500114637368229013080294477367989418565618074518561659657837784563169584051163946951514499834041510266524196486543964819215356694908357098166421327864245059008992981271274799731242880970028067030479482694602795479315228317481282446767845459801784535464455044844102958574937395914013095743921922916306077644719901544881172470336722768852103252487434272039490020744963928750623589901564469244869698249198075500107754794496012550831634996567564576833170144100260280673014509919644570066748801218619941030234098901214922883702619743806587724617300869953961124883613089818916233306140486745405358268273734043070102802922208854729672007292027990972165734017424662803724457840054920694490375657062963653203589393665468773686323453613855814995785013845192656620485920573187373855697617834415866725309972736426614637090493841547305047593563372301030543273294183415812967800152427581425352360746652877095451685019289509713370100975722453045261035547206611917204558016244568785017384810876437437181983435285673341490948911006947381859225518530537163136964826533927936450096408106700581838150006443166628282307791815797888180897928884307093410677742792163521814649757455605349989658157948656931621624566110812147682320666269063033815090047402426023523219738661852727940255973625696624554378827985061239865270001285408340346154955506488174943926221072117628799248096692587844166534406277925898794140008030672424627898036318205835844784556941385848986661841643415420278160406301082454575764271640495091182808504708112315302083411523047100733540792994356699431804894985463207641356913970938948526707632723006575270708631465427924132987168430947312078735045119552264201724504398646378372507718510446589359462121635618098470796777662021672127093615764264336735712234029654155425630330170824878306334795446234525803729123144687907640781392385361265908038170137806345790635238487931722376384904330225079619426928359932970339730760037281190162360131296883696110373542463631681445068822922228909369340485478653275342311147084950526935515331139270010299031273373684728255210728848162426091268326047536154309056224107531960393509238327371175037114398232942405888117728539999066482814317355404134673852075542691221263595353609571703879725024924305981961936929276384699620956623312227836693858669835408365821478386975940091530589783363435158930004007682324491731058039383175045226839909555581764761981427272954131086293852252429822346444179034334125228308710496911992012147435993806190973936428596210438352157036996720749933762358337962170579678842040348687943042567208789163218015868371341421724227780763658553789039173300123537278895525069892442997015820634741842467976185414836511219422790179613241712989637565342750422185122046344844777643453899613086494378795225878869047530359691836470750592064623328423164969214292450995427072742242264480670827737224101781848238098893904186877284316597017019323350047285491282391943912166606870654428390127303523627443185639807393316581011157601707287318608114146018581712783091187183441751656180044138852696939352250283218953197661920891531802661986522256524345126738492022690755751171570694424556902086044878052290365023915731032716919130592773573039407553366662784033309748200144519161545321534024207367113826634523876707801596464197541308933795987799054232147636854624586522126725985055203004356026823626698727365936726424010269719558826779118422798354858895000358311320256629739740080752858369214506036412322345458007058600228237069191421457197886024798600025623665629269469758221814166970135890602360295693736330880655731613665092746700409512401874908505688541448348914415609771552063522030794244939813503304800914377502356936938730214961248673209510400239921301778899594679194058560165614649083118844937069371326870000853235540346134804933159194012261639497979250994773737042074647738632810392127564632967228314606315171206575828998898993845200637797245052996194272859073102297961033754827091111695310695591566207787793224944762758634249373622124667742463160581301907583572505852370393467775835103077882000974335717229562104516810441675500200893761826006510428125963931809302487731019317394969397715237088749135488866509885300363534972651507826598169592060756566489468826400197150649915836900031669881981633118655765168188961818677923060833531580905748467149776871779123141748038897816107070507223437784099997470650745448576784574603734010337415384135121103232630351447323511422684092895634154924342721618471840199267896232483835706867212666817518565653843323213127561660971142144085094926330626096093153964498433873705215941785147146639159820938046310441713464284497144872676356953619788606843417075313754660010994312948508696237033696662503187369856521204357835027897075705514190106047073314984287137277508035212543043174668508197624377693764818572629391312114122021705813984731511745781428054972174666966617096878048287921874437534548989247027707873554610841959560146183896374406612744943554431183954644321519580159053351626823716528482190659410034208383302031362488773622482267510237239259685107454699329181242866225286115739722642991048952524551205975022704001391940935397471927543117809564890693011942927187531910372766908392156469636672308876855047481869468796620374734846789659113840864976424137540298890598068431540534203112691032023151485957740830895454882746248870653140461545592500538104586260713393590886700483026712866262366736823922543685278795298414819811218925738698524234512046176237625900155658967488838060135703242945451473833543715437093205432589667354338887233870356045854595216334878729684552536280092530867372360176399749545465691635328155731020704157942794763460975387446021655371278959597037785800652569756877321351769203415442687985498939265754044720662199398456008674400488828226125956457216453551437164556491838816928373486816858174044326154729392547178101482571634049478061115587779075658829423147395985580704878200625787271887758388003375057298126524643125075392121952396841490600811121185030090581000382484997029113571118706329796975913958901584616876754781445946584682528904096466482678068216443505480466307409251659304709485867270435189711785139576721400111510074891261519122251245770673820903735743513565541748813588755289626129908804185326244992154848899282530275785671825325205121468608351776976109498175072302506702486054318033842875102809768526013996138843431388055919888528143733958043629605552411610190100762234917668655260596376658777808029827463635245578694994307359778726077101259496376891144768611614418637331519753634229330287487412613871865359919842644988940120653992487362733371200652657927667835985028701175854410510944054737388200519854971156508264830721849756500056152174327979093831147754027114883158713380366267868137172156548638013207705119896875309635003007563815827969151949871650185208412191180156256454654370717713654453912029622016640941608998536557161331423893060633694503420513578092666325227644658944775953868815069444213987129558735873644723018732635394404377681455728076821035889077167729711688620181447399171044722774397807174407923272610986983520859685028879338335789949289749898227934898270277360227290334303399969432362167441092484695266344613313784970989646121122720866269113481498860227530853196061355800216104271197179232889576338762825237793210158789508632293442123394496439966830117604329418129760179469960169316491417491974190799210404932574886743944468879530305679506479553873720678266432292761284544297424594504532128556805370095629380564142491749115290625882163025111833294057120610811537509939261745542441961590742111626708863531171246318763205805307614717974107446987722120311465455699737241278316389484157013937944391616695620658219821342508644791749552627308113890196820731918768501628618869093047669518738553495094815253359427188398073805715094845212419995271766060346121175768166987223452069985782373497109791595212237967204561565188702644083832713264993601664839484925879391277451558369182938041390770233657102128442183055694249307805530441823203458448097995700391585993036496602193947182702499980777217583961062398061164890523717557310929326482827529092614871922648121523641576864286550614868210789272268832561623544834639057824337797169281082613606975102143349877278751253487115681546074786297138564205914075146772132627685030388540029995850041832423941475229242589982781771864703578030659405629783422996589284349265727974820186748638695252852535746239110344029130585322485176984305172748406439617638524504550248718020211431551303424515813762538780833336443196399098439360888813681813435651436509609496013310641105498296796777822745071821375106940021074611447160335603126262476516237165485586880897484833077212653478565100316243589584427552389661210107265195359949843737848991300970285839971402852276155983064359938523455546143622577312032634808658137730488882887367658209417257613288222307124692924961882697996681336501271223011236563838582694158261483740045828000128347901315816457889404631819613064702087342077457948621637715252012255338094275623968215806674567490178905579235221275413736316946571849477291810924624120724944534739627658869848817455503221417918977817200591475792555552387357947625700536493050321165769564421127008910284682638234910492555024267520229700207974511382245642330845738583346601295637548668418828917452614243223861177010301391557248392269489279248548778062736216167187562488318765511410379551656877253276192312560098724817018150462189627877040264859242620151534941323880132123538648746287789692599485759599400364368492721872201740450785242038367568739404607176479911930772330667575075966728810392240423093453986366370738632116796474395517221757720046100513878256075191191012620402162902493861687908291436468635549499102139757531982349160898823812549401401192350884476864076555205703000001605179594062634392929104614189711586135942567490861269210905275977342138738645961739324151996888272458164850021151243444970812695877027328839731067813053875695343067496304707039813501783106212424249110250102014724069532241502138063081821573031600736163315491275034557128514834761017839384396977858459952998423311189287640348719027483332002503661342624045587481731070269940485900673736241469739977465532317770834597672938028329503387794047326671852823575382617020161368356476729892931216108063363548555302060371518259416743886794739133671568913148540151122914720609155664909196788772682059008740736322564096827304261252547577781311089550404915458135059261529012399532191351304276336665908816061456566176736354623673439696379410852178168219094547734897123298793541931997720534064700724517916348484390176116086092243832133290448535934824090654464245880725108258753176712115378874473711686372098706221117016121630272759643073322266139162633708584336637100252996199766582795537386531292172319844484082727717654571650787093708881474180364386699535082696147978138108082580188005628789035281794871530059587826716078453981216497586539904356644945540420520245990415986466566854060815949416260679230069833750486576521960493918908547330182651051767485894413967634439706570660992115886138589297123769022207380613723734488469342178062365403024995465226089683059005750467647206182352298026760854276144148488973059926660816783328499750957979951730724904295782981527660509813195125603267961408430743476290764604552047946548509191685646178218961871506864919573780273914386828694428474772332831105487949521741329724020903032762202753695856871625409569023480830570218489851478957907720515882064198694405475559312650832674633398754610296906054311276688265382968291070475321545019862824237391044114957596647269705312396067049263327074042199563092886406238783237525356457923673315587336256686216087286454364716875412319274574280661877117759798496098585121328609172102922456519780962619762925839587401925602125666487791466936092730939516044715191742539724180141804079650956421616204504453889896681705451598773360648094266197343767599088651848486339257927571366432315932311514389390404490046985885969161844116672368450097912068439958665629238386967831286699762197923879016755287819337586365571405361757858297828589894447565903698380065145677267955493164209706360253315362711953401458168401147090778003382865934659024959441218384127442179234467231994635554092126936577635324402671070219781668302425875158805658076878287181491367986769931832928778362252709407738634080591491159658147507600669322386183626400283295096616195292720866039626041319750744564695505799386535871674704892744009947354391637215429200498627973240099214094145038036092760845201360928528308982387197560652569529756446508892508731459762253952687827848267092603450480988123155673776631975914764280264071266013261724574591308542100893290834588285034369317252381692261898941200383727136209089350773959557179516707907528640915468624825873669662855592419147344519254696035514472787761449780755837512932161554374010721264095506084923299216902166432481643959762301128858472230144839165911095400826771344130528483293733972499442183510794485557902646955180849360389353228028835520829490817605473798834133888586351099332304617353824731575563171636727087561733644150419604143094852663063682959106803123650386058797274030797030454757940534917433815804801542501522283922583425583353650322149440368935594332677738372144944394148933325342632045039148993063275797460508997492332475268136097043477202791788253030709433633945915182340635365505481452097674102289121002932901902446214605926544004547569744391650144169205951145997757011811436940866086580337166510890891274459637052707824552585589185017594856013841324194458923547576175040021172083972614233598502724441964744124140681502210998100065940518241034853380536443162316177866796350596923028271082529868145608984367246597984559365928946153655898118785691619904323143919509068104867892037238753314630244058728454201224631162087656662229304462099236674176672588974632823181029595395155179724833550180448037020807857601561991341638095094447575426730158634288787483682634913432134307523256195990212264023020722055650840750827437126919162133506460010643103006688733525420960253398842924616663128799417210238555718891986525964726289921138832709618854094737733329157112480436077831408752428709877525770575692853348297848982967503755771881002508571716847165451212117329607762262475758247709435137112679193271349295504863710682212968645398622936667069466473762590008143498042905806967923355577338421901841868639097926741548487368432909081933135136578508329582047821014772362176020799529949641633845171068206923748180571848397790903932050609204244978568947721943441184284218007264777642880529442023261093583791633650883818603543730736265321118269560388794016742114796341933791971600485367307907771760266800165593245633665401238303195573501842875282561636222128599615758231774827189339751913623348178452435976273326054815208948590938956472713575196480977615742053019171096323423329358041689611387847129573210532131714519834149128622462720935435896293196737169142022576176136546417734442514961645035428154160611233491428803587164784611960131020682003212855243921493798989191184969311617055101252025637652407027235123914269241972350696791876312036238373514672878968488820926242933956463922304876260939830992184177381920577198258474548640031694295135008576031712049360645610064297085933037041381670901649149396236098726564518720453828963365908934437622027178609761972206405153437321506243361597238646464614610017358117104517040820921061818796554759493610092235206155232107810707260430205398867003199833793982400144368735062341363320500480130493569543801262194693956205664875203725050817640462670458476623702467172056001603305567266419398763891455044261007004852396448778098876853016637942701343069870371938815594255085834062935031425828584929971830560298168133290829352168837704931022096542967447868994386314272852962238435210362768297256413137285358273584543342963490217007936865959671312205609862092841984511638300105234852913856641724894367316020394361431224760790710487511737439423364249384009091227263186245670065566082863303590464622263742159256340373872861628484912832002210884798713525435060543896444282269565617399588517582915239741790424613040249409964175426689681437195711105344029069311756496889940792807300789095342167070618179372518842162138884488212191445009957372315189244504897028413332370060055403339536558666421966843716213702436974033422213457511601241693586809561876489024317262602704152335412206859295002640294726626679058136763821038538442247220867004875693548932088588693649511091204572018714640817811359431269865576287402154163482666988929084241772969487476284999731369017785788808274001492100135025262551963665598844561732448944052288581425581944047739213013981444940433485943933828479601167153505402304709392369853671215145760846755927091560592433706525167570315641687772905416369399543415472831838002031323368990159643153241019587332184283383742263833490462663487353904195032696645159360371538532114468991579464244285298807433705574962674039601641843799263565219674308563670396514797869907629332284099190515786474190808082767963856857706432308093129323792675293227719981430067334994510009604711944122538680607194557635107246797524030538171713696436551357051666764978840809378829865503084490280993210877442514949023920667651514208273939302217509302535487891771316130114120755998207734051921662194785119730132783905339281995240824031853655326189961303595115097426229443565684348376214861211999955775223243251511884819819690385587287427734126379546346210862323275974371079671244758105258336504939250810025272362033678430508627059217516143097445218918405271662767382932352473555309091421976246851095295865321614485945239952998108405976350919160336808257499154696692233168985409404163990233448992610241936887181170008897728916768277508779783832235303266062289499499855443648069251810360510566703650298738828717757659097382676539179791201406722538037309587936164020609758380928871725372692847218984262848146966914819127360692787972034774691275599095468953888808866286666151148277711855119673078270171372513459134364442857140633997839415954558056551401082669141387521495879248739575898285935806096743385602712566808725787119819164146253953767022211463287608667607527735430593589371675343290857799306251743837415783366613255604135919553197687777775775688250409151770853280049611271692742289492037440609983279392979467869689887936505200159573073626485299207946575961936465609484830659546098769093281516981101197587286443184234536071678271622213132989452495111541552618380842839094240395962744315958579297600674337109825754481884215154463991702495902852889571836425995429234534828092441749805168162032142012016852243501579894951362350611782455705745527292798282484723618358332048344688167539458933822857777274195051890455699305302244785029886141973546516359395811792817395735020838860946320699183415188062936950777542401714637175350725990407727902146202868777044001040701280780768524703844795791442776168519347325214685483332964953094574172974831646564745906696661372741879200437069559365594513880451915823794554457550211043733870170245709230083673025968126763235256864551832015882967763412377690305166538192598999664725847689244201316859205259503582704493247804897601463904067868002108020508750509914010982402960578956855844847550865956039364435395444340182855801843230935541859275231338815693392747717012020707093835075491760392879709187423818942952179556609148438040212446643020442057355225401233790375401018335331192996211798369968516119837724258762668110918905897561232857451950865090090202609950849544940992983675312909747585081328734416387241882985819310798370462836958399673416644211887986409784796193171242883631593095490951924216929139278839932068278203395098285193903096783158324479683539543380731778160920784173884018018912270555669869268472732491439672146555004708002174054351580225292485631643808864302309609674655567219460224584798383989275090060512821606826768263999618935449711960135094670715005237044744003409479796996734177512388289598320847552255146002056130724651485082505865809833701784119531294489625502262530445496377099686348258955352912644851964382143344069836251674109428886504540458897117673916211755068107779256219418328281999662539447401174791635120915700809261903421150820547098600395022030005063571701915379439708150800523250085516913425111754648107740018102632350673870179222173486694982434466166802713850249583791513697613421751769452688026815573397337578022013679743185321581481692364788350909626001874409933442972260617212001601998222414293327938597806912034676276542682744280327255222811055137596772805383348266267712659349708429599004500935556432770566713516899781423335716907133548283753404793712351333081483181357124996694698608871202892564435680174718432589410193838170716049688299876162497942962211622168038992269216130337013886774175443509121744922669429244985141453574360514321759330765638305870479008342731477498218818420838717546571219435885925713510767831840575735697011987585516088389250682281710838852222839760525041141045973827133739253823618035104000205815958199233085851582897615911538212619308381375035207538262652466078247088098669048806804912607139137872500814707704936101657601962735788057426384984564082462481894261792662022664120084908098236081625161904361632619244616510482321579324365358321393997009648725027141946596147854294866218495410001358875239638407782357451541588500699797061849262772365289259205309267029688461730188180562363661153687558945709559911147274214996847076832839220835295153592813231752506975493371088198476604854232908980891267720526899948363673440207453597151270427783751758044971931857563759637468323097545173658332554261400316256732565976590140338269700920371394618297262972668513442331508065773409161864134200843753207103099474091649442948857731259033852354066635885925325884639326430077488073200453325112150721181590144074251716772192230845385460574718959216120754886625315320423123142466479901538690899085497866481056229600801959496988780273865041973763410677197363615709188920122438073295094939656369907034511856517692722673454117204597904554918468782035723795397853103547611548856858793963902415221786940117616197910022639212119520602398573905288849971639958972205679031448433451387959449629524492021222356293498988720381938314959649842663503251242162394006385955498877532585404178028429526804138737670800200526104517269940954036732363812912006141271822452167860782390702830993666614709773003967887838899275827543063755968542015549658336201672491200666986056607140609482815762581138901728602740103684024856948781093329293427880073068811554838985630055034456427868469423469769390080420132570959979832577063468523319474873372666125647028358806995073763539636861546930900241180856967770264260662207614883979345190470806739036247024883600889978537695005091522076020185839268395778503025421624159504298388296086925196290189622635668312800895805778718664151563096681998505719678022188643751629345425153776463758656111675308923335547091321645274790536824903116792596412159651262199036198514880620447564111374304350521096400233998961694091885818143333285297186606184242379257766483771610058497656939137277349640166422302639707710959719683212757636698920906215441710365068994203067881693744639960545260387997327186539538365939159895265942048467265721341288288576959022688352673009644106275299211624499792965471785063884011597661496513093773075496507195591876141056296254169225580414073285859313368151177610092132165024219837182951624218978019297058422173479948270113420413355077640420854536557622470805606651742741323881677031931517272645678315998226478527445856819309466711210052535778966627605257766730638009193794284116199996471090117419846257097568850642793575703105780193028606444797785344926787689991643446978261121072665358877965614922077995807237484768582695354168742447951627650766800990103027721976263356825246493698321970124650886844510290238096289806224331287326111179649115401175946714596466406582625573647538513094045723282529041403471745886633875926796277168749075220863603264566436604481372701814183097329186137349455587494719138019017110904968952098695709505191485124261906726572995164414574506262698865425225205791886776823335292777815550137875826421332438583576734080516290917497975427074317815328209502972626644081048878717693404382924504053937221752303804906815345047409093283277268379615203130743246924175501086375449801284266079901952871284219487963116371541059930944203463865391913950002075226312837637057221566689512717493114675432990432912372661410065155972203506784214656769772615421642758552209137073628305358106056388941023526721041554287972787585025848034213341892094177440221861719820236420038383563014834265613805031981406803032881869062857500544740114301402074213484119823785135705693461200812961182780661881304793851628199261296433970817469813143657655305843587887862511002988121493070974732799210130441713067163576860322635262585183234694308001708133577980174497775467278934178340772626137860551854171617958128657872140280406342979265344936797526980859399043034350726548540726611167073520149544869998797381062952713899964330820160766407167753401769766353047575240695109051081739719460595065123005784410166596216394173009187307251401470008011282288115927705612714316378674999549485726098423360531213927363630253489323934853945223524166576081356376216921842325931352504411787278265456236628263733981708211873986745345050890002618136888943896548641183103977765908449674118994993131248432788381031584958714123250509410199802137074244512902729847918244266921026431185323236485514766196184968145092454432322448342211636757789680900670420843281244871542004613628435970681674230025103092990390451216250298171550029814371674897395194582345754018138195822884179051303381976883138103358800060341435802435019979818614210079077306397625180058934721803446642774122519024227068639537621826855698217930034303790426402783979346625085223911835173801498330854976294037241271257601895219168969001656061077038094203122948200289916588916101896720729631058471731366271402519296448256552178554601988593734432589883642237735014516128352383368294535034149951116765455181203855029660383445515471281619742650712716777214320955866741181483095894777832551871912567055885362270035850894079215150482352109604883877872331350869727292496720361917439965810017952853939168330465021217931869080087600673488123343693138318105815570608553634258172712868643311391506657221103745449676005477799398611236652177849233844908705786932831677632497474590471614136598281050894832785510402240832334823586423678047830444495951011078060620884104598679781836113708925287722997365177133513661738943996065928301806582609557233032977596255968076606793112038245670657428126820173731031769219305880177294457347282834592695836225442035372059475733391887354824121019724766748907815548193220131975065184852019855573155453857556990911264151273129149102191733563860540027377211153281759799036154019015932534465959160609411563559979716283400389836249797142879839465222287993661945353453279302892404494723275063110874707037966540891152032167492512278916255022031264317016934557269053025785893723655404786291919806516850379063709896541147859289008546928501090335240417616916207017578063272082462446433275988395419239860882820922512280872810677507605099414668599313931345882276662636691761394852333771541740768817992320510299708386534475218350900300305729622965110915608015748873296969669698822430768721443487551784091901771289370316719168957981540520989660115825187102540318796295968448449529085150132183335509366036476265170063646895531977425594645567177094421761813629380159318320633994342043337738894059959849114946017605316985446943621018845427420184579170732687684815851998549427872709071640050592026375657991352992667675064611030605966289267860366717264977083202871026057472247229901375319256998649712991400811480753247406689818369674324687105253702956723678277811894665334418586931887100941408584326511116532389758169258489669530521910307698265868234746863875856803703109021815185128415469125757803246607549945259933363312409406645743904216374200584782269329047615469675742634290056127124905216332338610092683531591909633688676427623676064296584023840481839250337570992149024344768997788278721429432591140789097626741115303557496499310775748515612968237929603952396301385457440807687810896821258305349358621995902135805187674550470635720230256117640322990211383562984433272600004697708498555255111537645845553300037648414943489024227454932998314873782972480860396093367457468451530853160526365437787951489490984922317641482311138246250022073258578147573769200443007201749415878177913723798856109355268975826279998821369269617429104030048008094827709863467188519351614345486203288281666932132670268600172760091232470665817138083334269541814230265418416696049406410962682472172162432628261221161067856065070121441345737124601100379691703963989856922053192211019392312015065232342969490222140813686553293717643640025693462251513483828603653686769824475948252202625018744768872697573082041033239759333937175908365085708851442630906954638035760520762405881277871934059981943450128538213802040458153241572177759714696402295584217968160093738517815750795362875359314274527320581043823381980362267551266275485480559397799335321432472221981862109960988785592194330798712152439089013571599753868737233152911066607428506582931085635626892046352385358481503859280487520787625615339736851305854094223546628546900942507805368376592967229074613161442294773051864360493272964617100461279910842189742321882413120810255649491116299414224112254726918043466901434423585175288794472104109816663321985033844939711965332515100964021191710961749911739986539879613751412916425459737283764447160773261520481419535040705073227908957031757326022896764670682683946086876031464335208384432951297760500604703354883915258238613752478351223440561416937104138710863481016102620524968253994328850166861369527712642879648605211649538388648637546411338387792130872048714123352426682185003468054301766603333783673401453163137532212238989577601961011226375727527509633673907902204936032324807744409161484775978695317170078431167109525158415816232376326933959767320756600944213495091993184655782613028661136664269338110750612717642858925856868738226994171866662774797013223840762727230663674183144929909971029742146838948042452452627151244747910069288512402453662425452659625284055546174831169143628339751697404495950291479008004644888647898932457457186189273889159143592181867387170331609006825495566115139968726497849574992062199312375731992432463428674833447368135178885806385495277675400735167843510787961218703840201040996995610130718886421931405496271711269350067147525539870356311074296632294012514858561150460915596295143677789969485058045126191448959012134635944281787471146674085959155313938890446300406808912371901053766969149832210398589278394083949375955616693421918444600136487448989022278144994064505660415043105984270751825792378361542792980069973935804079269562999953955171140036186111186364919353476610070315155344035874972589042064546878342621758227687212237530690527012954008756916262112985218379507225269654239073717072479444548537829414707840032380486464021290722317747930386556307363267748513322975452834282842259753952938055219781180329082418689620006391502537873271161673420744643929010712969035099041747414571363256702479540689784615097575672685971523838182270169454757165131335403472401298167265993193707310865100293381879513516933989973041227738146329735496006308979848346773597053888358217075357068305421992754154974482435491533615481141368587154393170833411192382073890397641510922857138916624785918358526929126103256838965769906459102511604663766646884149306798119802900374876603243820125489093534074637192954513615993180712437722560613375086579354907977899427998399604006334260060003146418310603256627599954441934806181469133066261914124612932986315121674963942916427736564351321021072325097505424287482133079816758979277351427614053433692897891527159110613787369626645897424280756435983722542255663186876838410810083236537129289156660552631270056851342257015748416189190782961575381162486649827992289077160276711319195879935317928771896187972023773961662234561160408473545330826629455626833729939768308501595894106352953244179282733876272297395891228598611965427402679173592398315716271140579758873350100558681720059863829524857277034791024570563126475666735004184441316326077329814463830299684834727649965263059258769871336693676412028743152059025849776857858754120272577963443343554478733028345201978510930661025634488599559197679816326739613807602918192789973135348263058391616789386381937463004405870097684561008833161693285972104652880749566458476512195055562497290973999260987265528331323496880788054732350033866903908904722198961735673138310885017862941875525579052458486079501931744967314226200617960165059879289947029858269965438040603391340439690522352765541778302720950296133670887856310532649562251273083478982371021364362189970712796768314904964015738784081499966765812669631998947746498474248249770849120284244349375482021322318848948458829040185444843953776196841476658139445892762928431393406208553205186118982882152956135799324985377673963073733860008795093210670388253348600057645820961933748532262561569165477831590907920305896270645131963329039151285223803178431585681344753868945188078922533200343481122506520708410270762288014347913349898153327242155395403035432805468937931043806156960989358227212718372259946624169385997257639958552262011804069522323266220646648202393779274798666514364694440841451927682858330786472303236198072593403121781687214440408256025245955618764015656470365953240672553079712854648654054160775710759886397623146543178751150863528662694649672685944051957282306967519829335765202528808919925017576126624926214331636694478503257995564500682695361590411814937872473230370245005101144288588891163892727219632772056925733894951479499765367155560923241489255244222350652348198396156319881588559520998531870625107889821689418904824737145254367231221110533399229879700683462437642311187786804595758819096820203188054960478499233261697003420494216585649306190209355029797130373748127508034026276471164388919307097428365596600301891587457502555760115569698615371748580622239222070533827114800866998056356528681115852619140451396069716494967995112494059722165044367080489585622455207877507684714343267125102159117505479960594414880426336716971998039977992099271175351379809309295268883599290477872837577833215667876083801530849876166241214101264926117571739007743909368197277108707933698484240266781166612731295264629417062352562584302628332402306149175810291084900416702253006856246839944745297518254082480474327943255101258026978075480234360292215568425567918891454062338726703170829171365264110483348212926771184944072039868109635045801264936477752267418450252213909808024511927302336674758332508498702571906061307796332054293839226802678978203581592764807951045969968784010057786336406724581583549746358307322109065517834157936658017729068075314058560436370481769133450851414835534104356264682204375726859887818588125057167444140116485322824014967760911393507007641089912764243085569405805768033047030899637816282542732353559833495518340248206480782617153304993072067673006206458462375592780657078569283645906030678947707821604300966182096260951463090642880245307040706045007193632978646728897827846416318984253360140601097690492506859822772865269372317722912837667682417479065845895266891805219973607399173030989402725982372707049063462753415117649400310235106704467762833074580199063384668977841008632212678130708736471135048944144917338209547836613079623364593053293529677259687683177673595952071755427320557679437879850753216624726823027684233032238406817602540983282358763496714197935963182979177348328684663395192341482841829743816693969940331565992645592803405489570861845304942479409858421773480390284764246384186176647212983353442836120040811708095198909721593117955743969963269596949025105537520110259725146288532879519724961080706097132320792898451873962145808321341353716878340089798154497341345906689191515708511068087150699530014651612365492370047421904790205347924997497021645273958541095486789779605052097787835546989317225489911949393369814345138559603564373705344283598858382312592983478832007580666871190478837313923085477446368490248051986609920394744206974495891326127566565131675451556220564296514219852865389697843316178644750981872321100099681885265425404441937602679861939601512321145497123628694005358444019708895135336282372575211195405873533928662018076070818401594907371903633115541707563193396816938158194330160295746390701175589042431609448870009153884946585819961100084984316540368047000018764692209265071057525504108291354278155723934936891366406739499340112950648126402673211779510101561491749073145835013278445792181843554204112154564004527176661147626752858741669239099502104514806288267185543123451052017267299980931374471723459539412899252727828572946932381040280310838275507829995108902116869853050917613750192846232058426940421603906540012047478022007019744368007984204867320377698508168303312969147929585156011648172504545454946308286621319432540520170155350978008017261332240186459856269123388579547643209528026224717635820813620408610462307987917214391689897910205700820708567186344463853631965279881949557121503859226048752894348583820448811381894022128190612728023861271422349466837412360605004980542565340664506943552954438662385398193043106635503942117377559263032984725105754354576088845407585276776990671678493153680268950151209586351010997908503843700289527513507175839815331010837590473421646173260951789194018177214768376637555924665240449474264666632580360528966999828585635227130221193861636173493043156816046942805765332957538129622552791902499043237275322268248429235162036810370179346861139838430748137341980283686369272298058490557501618188941112062542198562135484054602149762430375277404354860138734255974203414182305630280195108485074923710880157354735729625422625290749596853085817777849737934120795360485112826978976311684404655484970677234771804730923357948226677408669180300423824730299283989483314997518063678658992483614469644448497872498227801263893763594051201009053049814577053263774709149461496540642904640536063305318456674423108871097436455234889685114084052044334356252844277566066151877454363076658601693880594434628243150088771603339024612108771010706211098282981355181501290967204575752726088598515827988849606058572634018384900260950183070544789346462585794717911971242321122817097468795229528871898562765029046558532781536152982108982515835140409390757955494773902419692309868610476292817545947251157016343842988443886864163423801301179329358025780616989108126288228939079432236402839464359507946962902731559421091136554364677961010224399459516075154251596388368952919201976009680906833543585098863973642077646862975757489599092496974961571415615526193131422246027534475704959314097058676230756123616780487228531167499377534378189067794304777138598663806353023946641804957909746117253801239287902247355005335061912890348257472324183543680009263960658185544433925269813741881709196812122712511649988369280411948388069640876603165955175485427049190695996339668545336037024825747142446270613073288078334576721866183997618790256628129697241401321768843964767422801482337442494863427738339330586858868699019184692478601362322563471869454200530758454869238089633385606629955574339341549730726605711338255846479483411362811337376946058384532396067238860240543815601533690382004807241798803062075545113727010839943401268764353122690489379207346023863174658306129364891544498318169094398467344342239224595377692435619109693252630954531503323841067473477801255565478038814575694282179388500985468691620413825949651012609156755290069784293605291898277718099521388576794035190062037197566613064061016627475147120641202040700276377849252859604028714990122466262937900655862263089191257966994971291551219869785057875302812453944137771006684324248289893269185877051897443978108792004458943574403543301099113784786218972629126038301077039269122850472851686930165266016935816853712054911046225552029895119526749657274236539254194499052666082747231849765362740544422196738025704491534763611312881645013210781326165902485251032342844882348188413143024078285680299594306639889446236361676862195401882695668246221631660676662858714580739972917036987089713966839368502247775611114173386771729413619336393621998844251906469738750750654803421121081549270293736268705048612134449873627577946285442129599774583767701279450879069197096606696819056943563514651693801148254862740614829254308624700280538686276475709255622453254263126823223588145639184241291072387051285165681754571792040623222541303662612379047134634198696629563955344752568311604674952011738754716116992071668298768680989767899820671844010904428772990126408565123826098767821754280408742742391587952944408275553192415768836902827378312045338018066380533148360589493417303756040075170459963113429100351551631350158684653891799172974046633285906190209172482282187121247599401749236754182474505798612655853612776922561308807579445725043714051129576514191000190582464299966887446126854677156863360089421193622337740127082209485500940613381943433227703650699117864355641326579997106640441570072772622052217414013805862912535137693080089006449350647209059863137848827779531111063526256267751100060128149921380793791921073239297709492048857097932762927288878399956603588039454739156916436861423715301285924507660608608950464168399041719588787633720964508469142804781695024441009344729811027707042760744867325535945152977439928913414147735511150893965405979559478086856955362522026507721644511759294113620932371246921256505395490672590088703061552612589663464553481401125363189781138915115673556155233640028195986025737481872714626685168094530800769249641264680525894875551789578794431298769247469093726993231868413128315969615183804092391675026720081333329306455470535378762111127044982591366412385711199439094138557650096729912969055640063682900680904833331124029093841645257941646920586425963674656277087871763500810065801912065467093412692777468893789337052249539920263122761454323564335444194396253524679292428028638683548336338890812421342846279871422575174690341463851728173273597630182049434523333813078510392301056882114831981780536085310064467050657545589326077999307534903391298213088306636438568931499776840624596754522895064593226520452883748687748547604536092458063753190502341277502901546038364732527072065992953377171543623711814193511023850243882107895837347694892771064622063073946192527020406721838508685884718870740136647996430512878434317286931527351442703278998208405876320338801225123677190907040995123611833389525594951232312499748411584857629928993586773673220072759681831302314152785369329839294790448816187767095457484961733518053756286669063628796213636348017220370406937112595572316725326046680597331690698790177974950177654133040854135438833005993613824649712918860776732022961107038783720074878057957953231743578234148034335200769195906995440830759382308285306935376445688268362078200626260857250883303197279859038693799725504054633852454402771917581724218628563056962351890027416999583661867348820256951342841748952517107029268663096019172238386663398255078195078423315281723380550627153898631899956208512770351628228072882178953463798386845771430012749736390201106553790603768002984626459464341088378757668660373251390959689130685808047966279650969363926931856185529828111628223225786763598727226004417980458037107453313455000645844923251921502201782250932414155373540952655493903956283749079724510391519795801513767475523471240323192326121532084536039228167132701232905721213332881159075955287064743365227808461093653248585188440061748980230408640993027984564472935374395117937007813731278583126072221741885061949367356178743400222414530146082654569956241353565029559991731918466948537361049319513429526330881158785016926435133059578479846816516450291689939094853361671919490709220026818742414200366066689257763752667333857987511641228635861798591904203086309537752008535854336220187423294182828215515823002037038112684816449412367430530005843987282422516568678106121525281935628845757799335244857975105064532948288374529246024450568816615562412250639361226410670514143066870791139080782723536990857042806033568019133856990403965830734793003570782311416894243379144368630569384556168707331330215992727100330771022696160013006658412757699518979430927943496216292699713086478931474513357267859602949065886735486685004886947890114796532967276100659097239682399682424099070750970183457054907464396051556085654628457806973122414470085228688695523394217245876285139673030616532655987878727290434690272400303213026340704977929034130782650531419782820727769568753286558654850599384283038575660057695184169364325299220667709733001972858332201888630387489586845860116446498603663029311634248845772679682372269511266764850344827390446041632450816760065467101130275310684526138793335803591201197160246692612596339761178314788376980397213618724576188786018238215778836819892081831494177254847641345672716328188373168174448435017933521709935242009412173442947266127934712668802218910184049429430340001618250021204149225731616179983308503310963768696190002694710619661044145692825122874978795131567544595434993604535138381283974870981993768712180838036827248183581592912863889257259607598859791284125663796123657465739817748438917969600032365860967554611144018790348019911394096764956692138932902630450063969427390391020162539806644089745556229098179267140104502113246347863638360273375033573888919429195908610337885607009004964536479810063472366354811190711035343807472072858744287844052929976686159803698923661671340542752658816525616731433592161220219696806203131750588016328897487199940264540142381275326610718776428960194565584535809667250629243874236853146197682759797172509066756360023155091819857060753070892702570431775934111711543914805725073210879656420643210927778442180788749772295089101280976661010921215985722609844515633328555794582533207895962677770030067321507760332650529483515598207649154537239747114424494192971826642624385210611669903271328956695267696353283456416478520395443992594816284418119814693880391490855009834478465119310924539430549333657687736441166152754463828056688853769758364669281055899262784972005767641664547376127829870586669216463206246793316530304882860798207771062269736493230171145238556920176388052477971689287924788097874485035414503821651790272008917150497144175252155603763282865723193105251411951266803126285229994495033513507400728537030801668407801117464666047630875064511506598788745617102306828002705212742096697785808439216493748173693809258120958721086349677105385365840025996642177667054222568760847902780686918303583481007436948143978255108785776016424131497558425210992024912763554017969845166875129517739876472652291892216014934964647075076423267695757383422402070300265961575139799696310355114010954834421850935314395229030044414985208254835114983752800764808955520911933993636892074455359344502661670134164769088606920902385742498554628012988713640069025530515976952020033010896899045044071268687895414445992696075670577463484625211004956764006816230317231871128802493329936759618333875316230849793726783898411463127257265621155794521016948577356937616261290673521013585970665274018761668078653527102126893666415929577857686324963609982908235783264009685364460812484242545320439542025751772384011739134908397530815019222662140665304029434659115747634741045409974268259316379321252913027479056736049253365678967098148211064030574570903026173181429875702677697223831562222616194480189123148969554730780757823144472957378250292328224532742457703080251607673233960734424466665009187319908612028593546347418863378828709529431503859073102201598362109321552659995242269602417511369459693236228565908194683756600301567450399899182520356583484415817258468434466030939266680457903409785212785488315147065452292265844083857765356179232944991058637323108570480579345034836301496755802034373163466376914840437525673167738393910359339708801446478022792469764974833939281342873243384973662950836301066302637063382844325924138183038973063971951262832087093412912523674750616006150512039205310404186783338441037400310720503371059098566144139521437559371136471460029004348709288892507028858656734818451007949308585169622516400103489232841625611005140600112006136646881734709015993212422235289231811142316787948057900734205823018351559078498212519670109281756277647944320639784314563928913362686125958283605139186591508942024309794674365213852852530626385997746284621851308515767948685803238154313923558045873961698550650218738841514429740387226499797278226025195100693827569418465519341839521446253541272484921133932020263582935068898218769753137925283154202358484902204063268400390169162980382684136869292384116160531371832082719780638871807034011430201391473029263930692758015978685330509081079219829628602253553091365001975635770219394209171254548952510999369862569543808057633275032909663991125733839068265584249554860547191227093561950947299029192414908081002601037463369301880922992700364288678144276877922379711677123134935864203060122694489322531235652531250936390608423940086510219341231945018741902980283723604776522296917999402502472523336314794703144173472025270047687575784453060119624954742430763807335109893954424784669919465144438756924472616206825813233685978003413967715376773779733198703652826848158441411679910915350408334356639104269211216474212816586923447707098888620920136158348197140528991511199524331926308032648324811991163771233174715360032487208349141217302620036488852282052777429074001433317000169223893078790285619517097427143041807232373260294112747478754256559024433556339760702413512321285807958732181699391891305018836622204571628413197361823696867359241493759704703352365825216419786682414472628568804582527016764122025412844383472629448763214811375129276288664008608358094746975177378657522593840821027638344367445193194264103256070654849995201112413087909616602604657253842503543400471704343409877021178095566731724459612185831699229415633079738652528934565465373939977368384317221578065638462224871674906590176888371733417404641326373907548414179914269712938735104308210361376979356639748208947440465827835299023661421993513944939620602983173119129380297939434224011596014377651792252600077520981885963339533070128075597441458189441384947448194669329653943517978948667947569171437070222382735809926265532201302635721905303839522772176883213119103733395161560196903131212640938216098322526073182811631254220098616018744484809359321662727431600877263944612615509063842496925146335470145795256959517334064140487456978545445797077604737275548101280455975203309088528438060308694794095363232019560461790864613283054561288082893954543369306972482934968110076066042177345948589180539411882763098045344885864017034194861178630317982019675032379130553695981106518786682609474913551184078373837652634793670436693499423866338605084333581389342214774851915078435828015431349249374212395559295683409681687701102846920617409588987430191330116122988371727999421376705788891665500951868835916432087285386750278330084026228899386635007669930686378879140880501598007238674244233337015625811372305608257903741384133839827699157936847935920894862372801450308787288974382887237532053003488445749395784558672573030133901632109582752027588345099128616849837396045405311477113534132391238691290734140754652812959826171393748279733925048740436037407982579738510890047922501571901188252644847912733958560613497604517328561522686415464026288551362517847801454548895171978422276751773047519975959529893197032209526401895035286978727619727549980004636403522689901517401933887343002201311216213584014653280649116882053584750515763553757398681922661909139648589543644900019722364713368615502531998055326075623184437044565670478124362333523529017198849650550548201162057754436114472394935209222415405178402315191518300850952286753700040615304997255522134181486456763023713565097827344338190638602280682918935098472911641095072914441012943756101677437100494952435407550131160022019281919171883530494401996441778910652396412915236966681986850104334967900678062114799848719360658684158933150727243935118413588323889900605860376804959158497895842500140774146504122931053496544563663565466380198637582323546077248896413105584513427690776104828109266520990740083673747507602878417541378553226581385317863506477765577275446300684064229692379226768201296466308266026195157602150340259293666863356209045446842803805114349490897626472431978474474124667216439808364819926445321205772899313870877740217976021167486096672267052415278581911289341121138260720902651702575746601598419683723764814516039108753361083767422752331112697203334114882493548889651209862585071178830294137522082224539236279598660696592928940493149808194310613526523369267427047482318675430187873603014652993501498388704236792469779535199090360369071040998312073949313538379865304221071562446839554968806228441377335922258028652831605718228923471634196987405357395789678801636996481816527659096893525262976709855181390454884418497884142381141611498744544997697856927730232333829016010708718613083266290772417274816386419954697128735471185710408346837162776787044493741887893989455394155538181506597048129023393584794026846689194092872293083209210401651043552310735159068648038868346156628939112747658348835596064570015607916351921468378677133650357762481883025389353010289734869722354393500139917021459303241136012988931502476778935572979214873310412931209623276762456434525281061769005190069827654342611145396180474792972603823884918612523071637432216894539336323797161786650018789600394634430961928922308380875804351417616351591017781852886774939777175002896946720279967773437112905621503253171465569898868604598026323745255865862733404438155322346854106385531297506098084250831070170357829577556774983829825210379879804703541758423333033613533442734458691129994715364217021961331145412690722504424786527398191812051581053379653467919329460998262854044018154839462029554044022233725888338985573273779541305099020885704924905009051022285673172621419033337940823853730347237569010261029760700098828455970344066044386469836722189749564272545816279562951471661270673150137471662104444238654087878896082443303822845742465892938698128726447672495189652392002344534578312040635166242741791565563011595858248340477420970872969336604217599135721768710363837287885915131503947929495539383027668615606235874402054588292281420320136883137221249524679996386727903608074157862687075190418237927703894607628614358893041290215815052742389123068108170545098074472903114247705144465687205770123617341886502215736007893817204796729992164994781734309441745156982771455245641153135321672424999552034608753173289716555355268777062718169020603871412246515934411810782259435848706985556435870254600093672858118708170788988369029333918692832387280467996735719989101135076423388995377642588151924641055986156414564584824382194021374068907644709409505482397565346808448504635059350244893552172504370694859849499324836012989791207503427356291658760972586546424383611942824738879859150990609067261187446236381598570934600935933851442791928467821869108513639511552262540647304134530843427525223641798723392228030035549888441929644282682858650069618852754006925922413286580887512949415524214328847565700084812660470512691824894360211689326221033732343021174014895941783801405987453542002716247950542292511886622293192270381697830015979955384961449950513756637587623436219476482865520009429537573251938537322530801082040187815987683927991525942547308017294509848121774643864482993977906568183940415689016051582880151535428266258625729595159819157262225127308964693508217000537616228828075113235889945264289408630751544520692491965169669101882696009605996080381752718888578741254073435972444555017843444479241347360290622914562702628035205758096720635485524869435342484728707545950020339027103040397356662551536488384347698249947032006248526296457802975561712608389027291739129021235577306855552100668114688679624214792422376468467777309203305798681109320044513372359815908022249841081267958732813893285614938717339373454631416341437940195192229976546709765254716399454483451418353794676775437606634409947298345698944051499682825130632131325101258237577875881760407659101404799821161914587885388947088786761979994966302653901644086432825813462163928211750934972326530881148939111912472241406746174906238165824521416869098007882124331539374822335306879600137375373168305988790042870517102915209176302847981059011133920994469102669718738833345984595993454810115819535780530644189275566192744528492882228867427743956039077603142698840567926891776163247096908108457192155567184984281966036520062555688748487062179676614185116206916229527068225134776424732472511956234754128785722098772047791628966907679555121101757884027179121679953793164147941809810362258746767402705727271608447823114997001201282002828802880195770747133253616080160202529681737379521973895368812879078838378021788942637716921207369447363220082775404411971288763833145601366032083807341340659398245451890570457768130823891607588751270818861090767659775441684547949351659436117599661183569948608952092958438266302610004372164432568845870921622929483149636993141158750024923078292208204834137805954276783481331401875057287966302181788306186013198643254788314297224707004351855433016472081932710043645853826846258880720850896700636300978390335157428872848437784141470410934067861753274314912899437374633806248841657394578325031469795299797276009466867473144727923842408735393547564675644688918382664196155588343366565201985823949912856650013797167554456825084005047713288376813564235073454094280527480859493079275456475587905957381599672631702308765819444668165755432302228336843541137264607318212350482477116210054599291059534089530721299145113037185295525360423875396492262834417763648529474149346582231469986874386723123434084021450350141058773644290503398568750564678965733407888639789025406264150140458595677451645301386107323302017599403169664232379336868377820951643671336955783025274662872955126560161865087004680831647909912267627208363110778682985601163197226115300940175483937813220930539989205601348032260983149394036951563751291563463124580904752194132818739592071995556073130054456401309231297297478525550822075564217141611644295413944373990698191147968317344451627069011411162989523629117842091118630558560141742283292033610314397830279710288565717234875770340849196282663484172932369775498012267049076030188613276995471063610879894240027031267239701840730283602053418275817802082021889011744194803230902346068578469314062635603964969538136077944362352315286798562678925830176379307252896442701720026691020754710448122441788394627968095009097308702492611068447177770951547414459872862046256141009009241475411480826715978274688704207199989879119218231670410238421587713582198524374856108941014125312340991640501860055482049229002049876921802966220788450873758484538404271431425131489790711362007986671822071771581413466676742943615274874753170907563579725795421112732705543483548142931764403263407448938228355071765903888661080482041954937995684806135611012992691648805944164090020974147235105753610654829239394443068197696669374500333314084448885999734290776179952239023047503124220677309818963977131432293088049102784965713673114175295027992887929597194927906142861931775024282896872191031891352046163479708478854294185960971176108879718308663279400235434672123716259372417245662989106273999811579112850941588129703870902957737943168188608137791976900993792428051413729757431005403937623076331583329049290721167921799771862397706986679466178202291861827226430146852490778870790460811982697229145245995717085178849980295685539685797574580043016729365012535038177103121309348943487870157669361238093390085132997599255225342251540377619299338595153719008707601597458674921709561896868015363826496500235898638935639368446533889095068820877069665421273083943590072211667462447984708825447879362156222636921006741028735613567486873459022328040746648374501808489727423659746770953193231944856302048545646351813676350886370590357132322354895352708543072913319107707646749481410904901007221069172231527824456540470660198115445034691004062379280117358219518148248166553978212972723112286161591938790285875561795897581129235089778157168041124354297986640678243210290728371830676105587614212739178239950378787486499463731419136672964969633309232274078997260252415472058834768975520174377967938588274587430405093981423231621483409776888395357507619766954906962794188576189731352532425185887141852747526003534884274702188654052503144267489744878053522725420615006491514345146179739876177818074046594784640168187394119441786351664332169393918548289230580608411529665958883303182505426175577009211382964942369523145228650854697545227096039537813401371886264989480325862615203453068972601273077746314382662462853417400212633091205812752827915075833067025200314039673517097878994315034391093318654020255796666271525337877421221317504373020486168416004351375805450905563523190494666771554718172179842597103334659368738398797076184468818091778155054205725307646448209528770464106612432728267839963339829065498282834190567779665611193526655890420819788111531375307301350454330155449896614751048644119069974194777354869481976677597658131393799443072549349600786930784930771869163409542648140136373244789132794518298496019983731454662197005128140584104955041173982388710969736499759936645764299255623234116514528434665317497329073012900757198561988250681512191101136718626612916314009209073374193366760701995496322878304221108957299836298964241707138152617675813085936042319850491843775745912413007438063752668041508428597611679924949536828123303913439134605744583934542714406368661765923027614825619113000201029395168354325947451099876832386291180668577378957147000099870196559693026176074415388050658505405466485599822345829498591922502661060462305475995418533153669238925657120526349178771451640148853834507189507182426760142682022604875156175181209434594457651590198985989868763913106203515538844625071948862027758726013244476818742487900598177484167104373637004847594656418203940721448455912076698602254699738750993660644093651202870094882978232686532331006182465896607345654142405521980829780844708459684239053006257679416486976512862284337924458723943561293455996646825274708884666085942400859855755154056054272004348596791220657236113456051161426614238180140662969171230518797776507943735264561213301960960447745171544862942268157524693224416209956931884825242118393151497101832829834058662737152275542958558830326646280443988382854612310444400062124236946068660035419253061550668435636103509935319518879787879572369894758744650443189655548967768729586312798838431201729055466249644712362704964090274837256293558396347324680811289036212183651173135069007221947592249616480690042645185101010455359938417378601210445287099613000325475193828270307676984512258646997093485458562659210327308440649119382738437043652732125867894376561713199699907164010005404180450892895058722952004484653519409953982926236302662034040943355283781537729394122976810336938877923412572243056137762365003014124817696004127831103538221653912838214982090409387114823471722644271525744051005157837013948357995921710338174410516239942047486020592231470215397563368187184646185249812596285518911425606479565673631461559247056064896229783729946691481368483844610127784781305682053005354921072964870224594383676627281868648835184960553007285317068580568093965182457480175735195330118572461891587226849411699367567300788781311290558464809632472370739932561861490291816270359733027509833192752713290809186634436556041840963992939326372782959038342405386394726873002691981262185498981218213266780348193674829443668026578603437048903927970056368567919876918461423760445762070097067868374678100373318484894930180156135418437107456543781667621974085666604873741187053756525989596154831162750227829557174876449935840264495142119420652839908778149476467488013202973885899815602308852577657325891119559708680575423939955497364435370705586235509982480688224233176402035786771875205769974981891231069511812251228227336708940192510897423123333318470053223957740481409252013996108357410532517349508239144075013796961810502015092333424148114064134524394778038614655120327426402391163945124202076730998869059528473111324858015781862017802055563953117951709733426598698070413805291308113626745596529571843853315064946260379939727478073132968028331882474133280359175721147975737009604359688283873403678798545343806207629309624926708067235500422717060814601762728197339305814439116633585484575435714363931581411177873821608019867862857733084003785704636621696622975581221385256616558793671600166717544031708548626324510424976453757225058467025791680375572282235168698897845318325815500693149933942229854902384898087175407809539042487670632266400528362043733909875897876124822772251985045020598489433735180581137748780019335086713355594669576865199543143472569333677873855960536438604532605336045241565375934683632584098185581540778623635494409236158707020468373944643201744758910411584608724607172389663999015350764649087299617079152660023079809071893062247500004415214237813314959920630699229607333146865015938650117913991724252064302586725934871095512194367094782934369374249985043915383117225050818500200754151867489551792366795001317246007556863470166996729116312672600569532441666488254751245143922771309244272814246057020368935511087847499073648742717728706303074002220575300318446483736948460567138728316562529231679136654439556664243655422556092298163427237178706616452514585306481631334444601900833681699352199313005602804720661467273992318520367892151807911863061366353766993799410361010272773450135829255880586758541702767599368052608981355785237736554532793392522859519073811618850859927098796469700623036424615707333565241980906761522258037996870726752045098997342939744863683142315627281754861600902452756937086322500408547249942954189275373374204533500778143111025663004674533600879589019876011989014416331381150737650504763445853484470926874519183880051939777542830433420898011668528873951755064321878666205458933090253209543153915317823531188959560220231488857544229264386763972508701497667738340629600510175787606207434174712921337448621627789151561938569622094424557993884571243611028634936950016961170924391154276926870054274994383851139316207505810456806398249901552569488601808875996230901638331188751376764915340384480747077252468467273558467272419167014863635634699777418963734667907226961831860282089699673067089094840461305720750531609255664704072831637732626180635220507926049684029540296694815040638051495160401557188653062554429923133260941925562252889754694417326643131753062649192720372723418102278649101727081816248777935895223939402495060961435844476516028611953329482150832508714993899249007078045666900650226928129972499209547330970209413993403800693044727164778788051591703459608277490015871437914729799141030233749742963808252876547798637193378204929726186730556296988408462158692840444169382511290567113916750911488549487960501926840392250065006470660293127598760160227258092419255314251915222165716355420685637571688383251797563983068321874594531459890042909096413969123477813011470083676799709884779117083351949536340100096905491847403666211534400275682808422614131974745073900094051009799420976701732106548540093649456537033620267870378660303275748209854904914652335059491297277025667585780815948582057108593820369268154808511288418444605814518606442346076302285192949960027228435482859470046878709074544437598194889960706666260671031288727211523413910566887985102086271146322957136593381898645125167856597855275542437068480675251988104741594113630187378245821328514356910866606085839674403645908403507978454086690675419572394168713465739154343790541575233609941592706227410971391562298872717377126401896892251385389486686979477585467335718552957216201855398279113806065431093575198284406226062609736605343142504031785103706937232776621960102523368918234205138450793371819096235487998683164958413234920032781974786377472557901390006661491579512933649508761078859887583995617953392545250932571482967157434521415977734780288983855566520045070219285835759318611144997277679821819071399130337387276690202017905818897677570669208813757866472716765514763279933961575170107180602951888985814507971416024687583376735943333665522502827926592007788772594129417551820490774107265212090178994867164737091320391727748349278405663294082771736047477821493891404867925092545477827959957732636486274524219073921884692679122872233412552076418113617783340419900726631790673692207400284707326031543374931472857921202312951776575569525289913381677203041349667251052716436301348408501751964875385603663365015872586205912199431921390268047875105774514059835935659175058512285374753000051122834314388237531138712397767734474568020222035172675074843733696899174555477166498061087284387720180701422872999360089282471441116730767405393430679546593859859833008861190332847164880384307065450679886949633665396230187508341597405513533165630944423061149137137723326315911305541282385922624000022883181598852688465514474234258202485776412621802865542250378362781051814783483749947140223105621660919575557558598519451087703498359541235874549469202545333398306210771541006114976440522309626253810765234776257464412459490002427122780223486021292624659908733289263825166061313036135828706171362001121492260002638795157029683285963151809024088948152144772860476086787250059259060603884152717149023069231686390561335843715809167504676574354675364892212924484070310916568162093572308882006094153729020643930923836912824294430518550738692586964978718715244907549926120941138820363486802303970225563708763204544341840371678007659648850346164534724435243791875008817290982234215094740370527020621707127760743491145647801000401440566465803196738988291911724867098942546662652700449711632708939136190873651278154187080377036940548123821530635120628590251302858978931549218622409838020826593002165823928926129693138666475238013841116238252904508331901526402771232223275011925431987406168266810142900488050477618526061582078802992999186694949793963269741211618207257275846847835613650437777350301919088174877698765645878649440939628068297821768052456036920209205220918537014240595215456336344104884021488968597547481715140057468720467843955598149556135573083786009008174510192414399969905709104844458031432961762862629108204259263563633272183958480721561628641911585214892726601666453375795182461747944407200087316139025490214222476811913938492265563780089846753946374119187006654029404529188000795552746372723803292794238805855621467974314667220052745581127741616023206489672181514217546842780055818668726926892504997510357054581786463792223570476361269707411080844081574474799300893567800982274121726542280399658409981427251810652972252155215080119303875978900216064752216518893935980749068128122672328222907313749075377598396999140406601519678318177555858980730831842266467674509727295532645868375312841130786374961027281415027791860868361045890658179886707061742843040993284957361898361697027185140082373124957058282450889599043688058338989610111262934833686863800997943844599489690851846113067634279330165005707448772228619743869489808864410630365322976764371080123520650791445026121840657351343598885337251130065682061382836706900086844815150025767729249039324673999554819262933727557389513761910846147433541334834268606889553822327025265159381260327066364360153417515530732789757189714880880118551255485083133398172246175647285642522876027325439571014170637169234878166653335036116671829730429161704825960190906887229844502536641805677163823338820362740888797403717068591343190915739397375208973484744048812658896074298827033079500211322700400607210981465138711032503389137692647145636389116008743616984322319610826250736564508719919963539734592211596503074999583796229780252255893834569510275928983138597123490034019099865521592121232121006474741314148585278150480090512603281230895049007331550032282928788698692500831003806858095679894790706611642179551719737351731481177007116964534830994475545682394048108746159024601337532163188708349482942536535985742470709617233936685558965363539505890927406942058787359677603033080550877045970055514452859457475827771024589218976776653426451436824393473089719945900540086768022621835752164571145352647878339824911408487440925072107253939630678104971556542693558061034894109216474941852423948632970123953927650165910290477898060393262994886725520815443426338589017964348564033158757447895221043269753432033613536298953751077225817599717654855635897715665879097426672944068214614012230164411352316212335936361551905208776804633899271200754651903941197421065019731783234665722301649463140843482728673224741917567655495854240157714327114056503350683975708926627828939487927190780699662442821097230195064519391622335327704680105962715655773172844596339879650369196368539955093666457259008061550526929506216863217124038822410770678176119591986487876072158002491881744273965098037398671568242057308184545364017976327661266619726558807395664367789365068611298141733691633868849147733594939230389675002669098507089627909052764199057102189166019069891194122169384466761878641571308485120252237656576525379021124487281220771424538372201653876363843099739570193371171777118176682052510232381093793782332903927794435710831900807243230842588561405438664820932582941516620033008037451657764579862182893002041275610410480807850301372781030015297182902126984976582807031862295947050071602661052318622492685417866136364858784187974964996000919493259252666549539290791930820856536974394284653833845897776971715701292410576155150425070749031174567830498841555832454018075437675913025927208168353345687643604914882482816821058907039637303880049048499884714395681694086619843655838486041655675293469647218064692454595110809002785358557734281493028358178760915453871305387995807240388746135025619746810442597611460053479056695551436303304589890030845658064179145487586204110976473740543329072297051663669506512437868045342894636604828449556329417133402119114806494498110965971148932491549291595637326148716452976315580849322633217437255062645088291682450918772446476478290208899255907699743311999555683535309533582659236793066277301804704711364824599882168014443358773828347012852926271980088770116706680187289824885164147144131015841054418512460573342956744958931312394671655373756127929466007581928362127569925435418449199102717701507799776660550823662219382579712915421144498466503013098438938903900799195768693373583200960738930541035577878331387881711929674274490091963280582267352236911004711156633181251407834886936813980813835988530928792439529110727730942005350103671925888017638299173484229570942620470119926420906560441648912367198947857820850346613492184363491540958402774501738391317556527244377337955213703776584028818933175305702793477963345873779644379888743354833654483783571332289653935859333593128564517060545651763889661643544359288157773453101481516946399030430123310166906608255250014768025584372399290969886537563302237496468880734294826084206334987684197635249046222975528675172455927975473933927627872975069348317667394984316552063759222278807058175362869101524217476867335374284729171112535222644772139124214824399404375831783409148864748994363800288803622525999200377266144135869439562768997478064065906838905557183300614945610753210724745588446950065429650794654785967063611517612798167266574906012315365409165797378943095636129773800850015375348377027511946305285085172078054468326821152576544182311590654604030167641802836952693734365510491627044527361938362126579601381730624950896706642255459108547869053537100712547440578181079746224005017703961799273526169460231130123135242921230432959486244221895688363302280340499351761534314847746490780380592931686907006095402320684056140411515713128318376206935976204771893409239839807101050551029260276243362990534953861668829667353110240850213813450048964982698545157054547944497952087509669048473280529017008451327362929424857057862426304347838052002162082532558378750402304534623539085473591778360614906001062133607852342511692254196120405060385314493121790196169135145609595015464176831769092060010816156332856759032285128128915615875507182270519692889472818234200987887341215135329805289223931848657589023814673615515772157424079650936673422909292523193845872789683394573396325182906655359862165157251339452014217878853519361825223398504010808702655312506607082634804845750045574071673752050102383200733221893526116063256872643022704151128720148980533383039926004769310536608899569659888713789537091367418155260098169201256901004707530128167440370714416549291872419934178614667121438019319824473383645941422081319319894904894832547181024789002667664180275353183032167222637217640150460817436008445715821396290323595459650975145110269739406761075637251416580304282525709219605851940909545962147819588921335173467955255032761341978498348806376127380510313850771416972600586985778305286953987901327779118777334754360542814288939368674632808621935549065960878718209252314229193162907287314782118878740337517680356357549046154109614163147844586678000865465835444035891114544432507600342884864723832937565614063170269278802259247186537033840132668988487907854067574294839422641794369410466354507332384224733620682077803703469367984562591760806933657683792491855897437925445211667054013107183288975790682994066082722690438302420213983367742396366322110125820018512909113324770955393171762397454305501379750173495464464903297208766852777271798826018730695018665968521510637657282982554131907977181715247917617870983962307586308126437150675407436751033252630828709686307740767851636332845586917540276165638161817742159675630555937642890401092055406143941571475853175404764187711700659673351845707489315696325733142180171237479440870834332400139015855465454513551582096615648669481969190873965795280536634957155224116426141409605880565680337676033830350652700153387056838222760462655156144125079611615808584827754259388217332889557041022819957595928352515287945102297442144860105960847787282458899131314274901983734576207231830730545892525659528973344827825254767001759310883163290662847613547562201489767811427941453605136308821754218037229142279876499585711653849999930150519200047773308894648480211652692409018187915697494314448538813012157770719195918104568357794434174578466572897128836908571069663050657048154220838154379809642386747897519113855126749662000801620401757396729938223258779304007700173267280959639182281196480314617452407509223671826629255856583962854674944060607861324554277728917261964074832848105624206528107514067072121420859255731614887393815023486392101330823986187543245083982104317481648570504267002805807271359931746055467280905579237333635839737573271235115731698035266718547021881839458343490920081883257719829925940894021624958719186075194997023436800210618132850418055891889522383256456530191679424302231981743523290324472314892570534274206324282465431519782853098460235228249597253380157063934734706726893732325705355523388983694063233095021865869926209230970655845126064219211670531182870409483311906816399390037583094520733040883113893544637196208185757712541506053852506691388702762936809928711666618400416187955576970816545742434408656511955532040658053183679098925258514845003567304205748707749143677793922037593858620107298688935217467829027021619068206499872141911598337210485177916321125079369662939498471983305875824074987117014185747163824822749164669288543358632365082047481648152759190101666731140754713867738087986397620610660053401105177249074056476723236101250698182501967576974910167478959014682588142588696447693239059342717721499845505499998210242865010745112138177750113959823080471983328383697292028544918605400229791723900475527918584751332325505532846247686868527080210395669761559631629014914884367447239395029240512636690401540162237798478613109662704314000697279721494488478555971969684631221118900273432767354493187330238163299794027167907336410951761057494017598206524698364415704860854500141678434623263679100885319200878187803590890595318611107833532804095066079445917439300971723906156035513156655435336048142104262251301444830395252219086205634234036379424101350550654807980533587443725214213387507193580152710732358659444296587868472780271944647713168623880066954082071959071403060026826139750800418715859678470746540995679144808153921573179794899329200418000732080347052603217960741917179077752214976649143248536650576580740674407539737501059685482633861443557394727709143154643559744548524608618604159145202725164325458261137732545965694587927197107867177866800394990665209434401671535199703812299929648626001741423803624511046827891898962223173422639155455951616052622620425521192780344327196056685039058316522250930175136196797788788545920380147415263952142852059519625044639729167676203529647687228964871380500703310638844589392070703821465350947634375347639359881780708367327407830378395800249520356898302043163251338368365237549858383882758968383042636558781945763478366281471935647907938845831026770785482949636571651078229869933000425137081985588790547486330838055540017155167637055158448864813209367916148787607399730324733975227518920473469061370445088732663119446316853542963376403801319494906695488218287060785171212112972646720260888853809777564645878632313970318839188989238506476737480023800394515884904571169901792723795329833780414254572273206247438657944387044187051660501732904739390638631475055987353324031525651292711045559070509633700732295186239412600587292478743014970757003984555850563239440840208636417298048197993998358239394515329455035835189853921832084729277559422203481596093040316713323885096520792866546052026393652619056198003752751993887005590241654053168216436470326249522336461599956082689754670330789448739797575039574483793339538331084571550411134786261183768261386730503258410022982405495984692542021192488397536833818251129003206510052719328952662060530412962234937879361053424666296867928623694801946479533070807622206279837065237486400050611737510844136809655526991093173398398628688245431157417784923893020559405133802257758545603607937644167912996032078204134343895253607986179004899120340431949997387281929617763742138603270212165849891244094013720019915726549037997750246962985555855570311123844316395537865994677253285697643432764148782593658984621656300575501629055161043554937755110487842273992210403069911210421041978808264749518323240649668695278803194604864715051639360506038823289046627891234730149734962879344989562627607218598417428706334460426264814478285178077171302396207381955666137831630366023677098637325519768084253230781622576923203838663593476169549884218759202148107473192912202131371675438756530950171989212236782189254252906274623623025939999578412907121172205521625728794952247598809849454773022223191398376566647779176567217484123476044372013197200029846042429371933273342218391981478630177044727030959230507996944787149842539449627416631708996182507642102980575519866515387574780498308103441096746651447850283835523657455735118555760618244918798483669581949588869367537504664600073486082332854578110216480115580025910499596507266873676486081099609941454929205239881153762205179682952844928511125100043329791757165193584191567989373585852897881986466727233013524747431220269768811487975911544145550223563978745003534507863483848508223534782104284462326670038370502617526482523226323800919910205490074453024007605738098384684341293075475233005138526789964807096134945054624801432465980533660159367161378309522438571473277278213252060773881735259741433534458878623189499817110352481672200181084667751884867048480366420495999271721677685764762258897416300220787847156190871868180822291351967984369436916111649576620689996280424456905189017774406203765824633508280038369734685985863369374927743421799643751273559047534430762657378249436354464836037103867626940020124269645747350911684492199916767377920137852009442072519676014771376709199837418456853518323931836788375088555156777933504932121101868766719349730683841967132369485499975449756533597996325661466122230484866942812517969650263329221318746661064390191561485992922868023932400901492096539961847963100077120271993203606131095570470506938747308999085665962546903799981404529728183027890277326169012660844445649949909854765502313196181271324558491279993225217698254188322090312592103154209847183453851321216593976232817870423429119258749537284889376190570318949408745599826695816555712096401955652209243527103054811600691172982537837167544037784702969221950282936538484086011988932498391787699767694987616422945309876462546779298086822727655261017357043193814495389336032104949211811605218669273842175496235129479398133422393880276005175670684545078313190400816413448887578909408614780893850850610995108438923650225662449212624822947905541457581671186613726651333573340178741885975878044784201155496961048794121700757517997143062763240861346039015620540991320757437807260322112463844136267608025514470397882744045171193793660421535614687375555811556307752483114367725158312483096877451627468909265377069053787996821536312255615431187076714278669206642388641072053165794336692291820296218629423947712647365061617864658976849015461595153406635234710812999389168455897947861106211711099498168123016355971909387370655043096907441308329503794828647886619713667132854598876629285507782163109204044495179327804618972641741391246334005731339699112109227800871838456350594577558895262342750594093620445984881385479299399804124456205328147339714024296581467641273198350216318674501675280022023121894944610736335929811131737994217099047384168599172598150114339282628492075734352563173466538158064170577984580248971027412102752535710804589925841194960221709086973471249892555388210180126901707576055839648912082648051543609061839781344835561494470515236353802771117985791606979510139574324070839592433515065522911742761832916715679024484061428113908361538385512996911539406647977302798210541677964959067291103136088310478477353923671730888229718770331296022319284896288964738352428648197971964568417498445701409106676158435346595052778242254026928283209519487844687160340981812621018964557149369537391704394901176345917010410883116631669057301085776643571216942599873580881654628207900814826168305987538481270623551818726710322394527732555106274947407838078310830897522913096068174473326935726933486955567225129361888520868954847423184540369967645736428150849006844935868113074041327663740829489910920459419971545439391559059128362491780802358899984703108007586798596159060277229801760819856192255426808680241956089164798429669700649043910254620905772822761749903113464671742030378283449732308738294015363316667318375663660894954099729884985150417507147836031329838083124466979114912289532733338038323613193473566856454801514157897502303854669507027424869103530752110402291161428044681343436302138328662325185411494106427555838170796048292089450959651825928102529966212187070519934576919394696593980448541467409368276999016171243611756698478940205848157636218624635869575101668731197378170668059775174162627021908934192835298682756959265300807902395785307462319261885064231136239893874763436466547318360779681459399114361330734990343583692390911421943104098853094681849067459627796991774134226686086384147286461095039116862773310575188518035806012805356675464554092196513050043659111210707688203077384733791004253910539506800485118534528982561386447551370824667815284571071936122944978271019640281790096961394921017385183513388255093791426477490604406178732813269244693248111036838923357806345068929040967569123360103589351280213511999921407324364296944532376454093332417749035735216731130790118126083911377970759533420183035394681523507127439665015571381576689399292616003298784493915657968220125294375739727467818050502803016681579781703031367377252643122510657543458921474193857766361318557101567998309316867695975006533740519982283895163180416671356292152088281287972220253315031071041093038915260229665982562213173950616026957631652997123410184319440506686091337208123134072485581758577157415742168719903440425363321036832993600433125540026531434435920040093815644473554860233425657497295520826153793368304989816844976601073121007251685039544836042699330680686942043651270115073488911734848407994770579500333337719042034761350769656791175457669552537046475482777648689255517608924318274336322928462038894495070347120458608752353021102285457955279597886092896752809581638095624554595146452773257648360994298374418670726199413144746690720522585692647874975383719410423834485603009041287280360252687363912701187761040382386626617295304303059407058188374223457684904077893775798812153126606146524045544458168349112355435986824649746187238479692776288717399622450935292702504289678782868277909273196872160331684793958289925633557116014274748659697946365469199048648978335341287452720197797037977767304071948880715056573604678184660360320528117888264160317702531501078367408088740501600662017620722933340344473740613200265357050589457230715114197029456801503632155180981598298424159336430625872031020696835724662853789712464786663362591218252748554829086307522162557121992583097720186060291042854797808053833355949262506594730191458138271195324576119474558646561770223728499221902069406569892523684804838393354880150484627042118003997592215311600007625418524366765394220093430519599807694391396067281705539871490979593267267975976846442358626265599624622845129718943852718904177650699528210323805890957286791028809903211487932489760999874900729788314273248274201042908662935650298177871930219762751661412920805040875557314454702099657269816939344160120801168939552741115885608577292645533131050798205143654399506494942111336410683324003984447802366821005568253185287982355630521669864747361072557068580100266859399399341813155874896365371001840533562319045041461761281709783821719765909260521585906595719581125261239854957832096227965676618312806208654962841390123138162708941609244478170940954373783984336329936018220577789397946358287353345761057212249161191192379937238638555531051340118293240966852436588631262940285962020437679707697047411270848250461773949477305692382915292473879053791245671930189504606992625686031823107130484315175301197862276515652677556178367888763783097147441531521071239688014675382871610923095039967418770959310538365479505449062417730835820782946219648423370618033238435823129080349051866762962406688863913034885949367173482822746041008460867132225439013082070599824464247473526730285346338797121580213749853145846756806996524717174556710892216513016113423197818342169453992987889682848135973996549593617322896162583613523245214136326379182109064698636825222072826086201623803649486188160564436092033345116376624758960285043660269601119937539875630085733011991472826298373714379586222500773022684486993550403926934867442513486269368362068694759087738095022841938972091295873399519638018516533380334505381699514889230143952099180667984934768587138456561520295390412621386006111429467866797300417206620083540209998739124639826857360194900522502239547391592611265471154318855700771267243499924935607288419263462063932122140862564037810620409299633272283261651330182854812693192873048543751260754103037446317672453693426765407231921896967441269207011473345480058581872089104713186992298464748247844727076960828472237226959957641217143845878713113538370008605222368653985354353560779253078841337967497827640530230954355289587211934715268122568621385376883763284421137924964512643320660068522170491537098218325088199377306272666661720733945287796050055372810354270102353843185528826812671179103373030481743111390676680023346839556547576853465990035063056685943284050144457222091241637952596396612042747414677418828832922636801709819386692754445730715758532296073463735508954292229652175208149403161584217158575534549297419619924631778247062797317245468655952932080499649834778947854669196862123694840314072162413432808740679700224272811084970715813847602849188537934784027910719560884006425388330712797368404741473661404364800427275722546158236226138355926517543361028274138231911491327348908031380696744627547129273025171186739744156956905623236459173440306295541108109902033780977335836138253461244695326723783750147290378768613257391532256970591858283540106005928484358319868603838824649627898827584073814991223245981230098268863193809892905119418004976192013237611787258647664571661175742434905479175274972192146917542175798554069177099069376570302839698092769283070570868163474093738601186050287528946699994960369294844848151201360425452084698461123752421110473390413565527460574098774049799529079737449395852671109566666415005434171276933260417859530639271370129038564611991806006353440590855590882336787687196661746535154607483215533896043467799356929639059304777158148653977879404082392266983463317747814303675023861424825800072110035384728955716317796929765455393840533431360822982788489851370585984302107680520018167431370066016428882153013789104570420610685420067092666492627877894785487247568295718231734166104978241724566002607944362136211360726319844560966452327129307449776421854348618310082804612116940239031290741208491680540157236134870415386481853107740521585641904319061425015128926953371681028439186673096633006812532287285910972500054210686451991338606512325600791055464373874913425179238206196546675396233199145968438388956644984713473715004395944906654342431035013702365830892633090045558255356893546640591495873258150997412630029196786196754933539651087287581714280686153444731884361110167657165079149576498372872092762941506770537834077302373809887374391335255630486720139104881150054777345222589481877634852499908993958386288068489342863794754362965222366112699809168361999265379869662224735396881665849884651821177578610776274017440796041059799340979300856018921676212811693796832063960071995843363447891577999303892829213071618867080136106324881837085744148807828675006736632745379098689565123779615057462482425094209415793345055476854152447231193531127866619140552339094270543657644339892496900147727107393120546417316819647059321780153608526013446825457760015089502012204723962233107654936089841091946551131123752700222888623792767989088694460637247987856011721380905305533897641544993185811811108499271212676924629698102427751964435434856545588101937147137975352933799721387301766883697007013406020375629266884603117733095982153715655549393510257333636300884523349940139176554625902817600359519470238984882431003204302694108956325609840946894620417204075254354363832260443345979632819460755760392659399709892271178862738668364780608501759996423210706753647605833247320828865380316253052345358165985114423274557313871034756504712465692849597460614888478801967131967461403730195360037199058693462388539462653561975225305612694827546836569625001899359353374697616253284911819697823226209361084074225588538078112255228216554853522695748978009979555530346065630139924790570242638325387563141017483119781905392835755668298415286323170398424177169598574667139969167964324776016554476295364871477785224123599645752233163427958857074939277984193057482589580041644790519301330028576550524870621375725388748400969138386795757425626744343138931721530130972586955518987809184693565614555231230862801004968402946001906936833810686222693075904448982455054582345553103391269048156112230028446774593277596585030739086539186193251351206560237649870170236068546376777104618772374219096894640635603303037885264866229687008490040156361120599035534871234522037043993251343939056625841323743334481895953978821907099790628399551633464096617616163496208703301052757158200712874070505614278012674162184554096620100455850729262105071014451608294334883817109647249245618601563484087954820916941541857690668634957808338315646198519776283564505418776309534762319524276268512295708077635064623832046399064365809583618842250647406720502781293515921278153848241945105995588542474467026399413148414079531448236007147453153262765441160994854028238985303183434270953813399546264851487866520287649344153946376469083894950553088445196226705319459600069359816970734943232750890818562783296845275707542990967333166041275711107096122429680007809589987203524445457438694359457058958062961239760622718612304093276776838345890064759547384232685240524835038946997229785541687047272128710543076885023281389960296284087078909064246024878721028099296820339071866447865602739242471143696391831167470888691574360527360870941661240513552660670356960666614514215713931812901071432893240114380774260572116184069184951898161662704744302304988932760021389733608454754853171142077346075672166375108132852950880179526190286031710186849800563143923859511518371691314469750288072874274308127695987736152657007932640037518216459860549269287102742155401050995669864843954274153581308903862614207186171095062094137237318353775016534309309836886045212718949438584415850956560617204253635779835403808787049392766230238191696851940631929929411988153758545263396794902511459538747782928553815660366030777318343331325881345631595505956959419048681438146475707110364143397507207834409492119526080338798624231610303078631227130210327637160059118391875063293924305580792393937856669916628960459231762783731154071119611376943734578678422848990775262639154802023644195114946518183100416353920262781130555614594200339429469632911173035284135483782627907022651439702226811308540939910369019229082505616345223061353404012006671640980879186562168493436563639177700509646220735588537125579113604245290648622151813373823391731758490311040074654259029749013531709014560658290560659630494728952540576766536088889828909598903477096612825492238527196230868876922165756324458110713044130536333036674788371093851467110626455114943771014718508360301928026564958118635346599546092128910847415815927298934606954977620938476357548508971037253377329842959652268025007391725941614317518505662607947354805083960254795007200465681752868884555744054845724005379717773091966740853265231769210266165043697954733717788027946224418892047042757967011676532752793986845131853649724818794285853358360579917431327552326242812714220316622871673554768464237634375092157780521124173331900741565211494690381775718717826304536672614931230292261887597380196314084641149625061145826529735501467206162765427164224027261337970172054763968059425292899973506406852565516950123309986151893070980458782989080907556616520360612243661317974399470985208257275831143667213045058473652610208992748021366183281322285233124924198961352909881528890880552339034121901212035854296502375647264507570559581121508877637636839269570948691785135824949065350767132992801362841560316742686042010385781902260176079698347125123092660055106738151148647030741328034697990384137831544650526740438957912262090615510708689223111232711261316028786480835794997498501337572421918697347261480742356010163378838108098561184722797930720409261249628260156640580038639575559377419201403741319502194503352908210165429824314526258542738304319706069250144655090016312065663697420030947921972915927863221368084100045651498768007073018563683565974790364400811013594773808277878680787712625636732925072614453409974766314487088336428458471844525430556350507982059186790100532007454384969308796496418755931135582983732522541271185098054490592718558330763581989952324295917025641351211812513063805961261930699219064738758028753697510673657788970763060697122666133758065332612208994640359104733764230430994096378171191007091198376401507921853931480224710435391651842360017651865442267126199634431197833123571019020266594124116714632742609922645236257755829509167839002725573028697871884452959148282908753518022212397349146987406178224813239705860704091301890113854991048854584946868484736513675991618495505241963691297828134581697170633294079251013956227253065090184732206146428667993235091061555185207609098653613899500057398321354798590795137796428686610829175947152463264716512037183206149629893246959105102610398513389948379043979676052121259969769423320313102838154408385147307446215466749852784344203503339655936230646613305499689455416858319489188596994386678733158500212760913342060365715974301017972552404778617147445694760655021675331499612269169122387070369875677421438952537754193531337723393484346323488693975826665204766180852087127743853156549918767950631728374732866799290489364875287134754227204347399360256016048149977504734993130598955708094269301408888932472778702864655300889060123439896912717099133031257047562052903661166867101790754997848650298410128449308322130935015157131696158810534263270892771920528885030366419114334297392653099288929334304466779864396375053977523920612668238354764500743030419109694442789860896820852489359409144504631150559681567086289882269559931195532283710899456315102697481751257542390986952002045814329806720168308881642618913800215987288506605272665135375974392111427895499698799780133974422760428188237581582641514172204492228861198805530662947175521996928769562468800780098865481613616986559011503833006298827739737869438435105766628448267021777452495526857214911063515293072037578280850697430104831105678960210400675329222446768747735946599924544996485008216668857767848886292993034246982430104439370876217423831565144394052846474030930533996690209176436027580984479244817049753206012804132863914231464680612052104922247909967606259127607811087765158932694936910459889241476671688998297604837750956958740528613819375737088959007766590398398358126027676894769084405399424407877996640929657884791437065720310877204611697266939035758402393125208498171777378632788480943876439079701821608166950586801344954080954254672270603324320972887518029878582546413669011104682097324755138093567364077501256238870624563162403735574635148495626057065780569744127350997812340193087981763680450992909754315673268492343600129074442292224265661522608000536403607967541603798635253838844909697946579078552071205628121568926261601062859137743067755344222365164356430919018110015523322038443688564472240455716795880481585781048372883282969521078108361117524239789831001702979429931470299541610115968824523855679574731842617626447315570533115528603525217188903972281422161102210944920341280459497182551566448438160197206177761492960148690455586759059403857362095822604131011161774391539415839973262712828294075269676355028004387035903476867776994983906594491951870013020557967117766855253273271911734966746894129473748501045883733748573432726124077781735858836796020834232592273510052555714062991394169956372877120840488254022060738257288612557898354825946535329198802655998111165270463625305578635338399529205472465372711712025002517614056438324868641283846288081107833697823408504194094381614757364329531038289131028593727263421398640554331275259939473462971709158345902008075590074780881820188770083069190965621400021746734103965074326842403934474002660956610430033439762744039154042200750187901302429556778036743545500623425784850172873965681389871810918510067979575278222357136486863734460181670070923934594382225451292597854292870936013442403972125668648975539605380867230028008789744213285015507520078227625896757375415567131074059461548980115812683992946906768455293445329084711536605642022506701666199629910021651410591599760078311715922457720290525844947363521012730925742902485019467084540517131444132409811481585820651823291876062270593142594430286569133782013095582781008591018219239666246125408307175636525927758948242166649415813947582116762760933187447994887534472144597815963112457768314628745717680502756156694453914074272568041834056234061443340788174738719198109060250331297184050059066315848670981700335695262950217374910620824361687610245929247579337140464271909692608367616039208381813885472776734641955940528828145122641041004750974624739753070540202040334285168142166339961921210077876425166176446215287332533238131559724319565971663269573696751428231528768590017642403067537408325626577251924538712359299122762907022937855244220994556647194141737028961432461007855379771411150719393947898379446513322162744187602608943773134209597394832316585221906838464910601468941304828222930152095010586829875402068328968171022333008941212654160014912085537585301697709829934602046567193112763763635505689748838252478179442833370705830725421628215771065697105331764009823728680987130719837539520469687645964041957957234194210236367839016658908764492808292140135616045477923438957593314907268428090374499553991627072470823508424776876506139571976847311927931630924103866742829139292680234210401469771619680403664541951228701349303678482491160867152794121986312763737873899367888064159734582121954433100420725903167569926494115312300645230643187066047073607954842571866044714257861235740397763197491967207884663644657625230114262093182549733318102199164580097186691555812896285498562292128690143498116011797691266925630040078510392393252278009222165343432160285818305839133519167860898042320027473830160816495860167417785919328705744283400259697650628404866271770727385007945591506677634441831527531562763984133539303722637677108719553540905821071003590260358066125354438793174098409867540943996018258434363248674686310655044168127663311259693376735153414016082535690328619894087586047970077823377925940308328644880094279865204974308836928169611326780348071253705972330373660577673181943524171394564990771595136494054330747313511420075169226836889252285184197473776769096199141434086642831032823529043669574792407983374113861226349753865357423507984425286876720002430024782551185013950021319097131149679621499945424871366518682726590284781546526755096182668524802202207483419705906996632501816726490176636736546453213189726034462982495463960716201241598913842288073328219505692689189340012909915680714513655013117102680025565876054442960516598821505275395418291286406829159938469918821027760359905688585971880968728917017620197307832230743513319868809818308922147381382073712500028430574021076367668269790094349388673390234067900730260499481021552383479403107688932523743992229162354704085185221163765809156234456334550546600400480038833571327932996824277159996595209864541559134103131136412334854449894797778547441077155025875738992113325797435249894202016288973817672400070094365162595208987959549425873790145133868165036153511604426655386802490025789737941146869088120108158650935276576856049521751021612336638707750744086858261319241178848160605185116939856694975260311033768943647066779934305868078672530404808261034468935070414202928668914948711176747959086419318476201159598240973041874008083311428242642958445096325979882747130801981104369914615761027286900022445371898585899459177669060528982725067902900164863632022741846826522750398811161364493860099981726808031231852491237269378055357830620518059414936868172159012400965542258098538287296807789350753649164820539314075278947977843724485472668471201537909746999551516529565513099847405253911504423021467784477833370797195686046499463249636227672457307673309752021653524409056447198906954333728256164142476136065864371643724955914247954391423787386569140018750673781636279128218465524804557219127491242562942110059975916604717755372620439280238355513911224241703312851010806592602627448978484976373854320005350619565088997667707250748638167072535015493134430090487079988902943193876044009657906687847605239298206898305802539296444357436600473998188220391732178320516218095884638442422694469003715021081731878879808429911441515221838566670381267859709399354935177541518970560042709220316882041696525590390467407431346338156090727805476587464882729021001310894295199349873329531148820597522314947491662801681720306348714380658652740571778959610924356214681984047090696668294246580842782089722862704232377208138444809638751808748802921747231078258559472287750770297908124666051351718222252558936335427771499864217569367828038970316664438247254477385158640793333309656627891558530781144858321635415958386279226557525294154016889408548883696993503056302835791951123460280138394703428991843456576470667102551795104416426324886317511279407765514965260838996596391764421190347338198259370214313637710018839067716336224228663276658466308134103955481133046304703699657026873100301236711255257551803761023834438513873501663027242643213266031008459004422883547884681265437448574672306508056391742078082865808566268913293491103256316957347142134497461092617612469026594967390148277541621664224475434699533592863615925137156304475243058250558711368242111726321132210067424011043620545645752214591803966964006870112834235388103175666069239487766376318953433554498224069707482672343605115513725287835948314645794773216840132172526336364724075632484738280776717182073553018403167920849302538872147509080004461841472323629019778081040724356669413310745442335571961071727652931691604398455434271326903843958649746070620735475988173616522414530049355470525376903922576747404475651481199738422728246539633498272719519397797523997306398232731031330682073317391966888417224636406643737688898724788124406860939093763494473500497198071655885810717229292834314879721985357507619318638919226704324230238405903490591941030287392688244791469799311176824271350847748171654413805494489019834558649000139648132467864166384050259400390354239866249576478390183867973475062056068246183707177719342166224765049480513029094605293978571960159612802418550539291575143758833624184343586552820319735196332655582511777226649326461597336448775401862633244043875802309982689662480557117444999124117245687772710194505179653169805842128327184975382032038812301002762751949122332922955786573983637571364843645987389275219452661199227515461841317077094817901439466971304907089268302467492917260807770611955162468976477489683034848829446128045139794955216763271818389921081696603812079158335695835905172444853953392910534514459567749237711775399315411489764504780887182737794289514033479713087525828725449600291403154691996249486130282804889597972095998225465496896452574414013854000772600159716423280198217395528492563961046275282935955817141472475237241426619618782369853381139388010407753202255905842333570226623434593738562031017871681839144757053738485874524228284378910720069630057439424282360669725606996181864310253422711824513660356465699345051555168829466427369703717612898792074754660438700395123620629527448316265359003925078775066248242167297467336884764272197574079818307619631261159018590383891890394739926330736977002356305390104307497586185221821106259180524074857381820119857661134233472394614708130813014325056948045583646987970301251342792575322842372401913084215911249678193804250570360611769655660178340906466427225861925818501269989483297642860105010907695027983252703966222040308984012222777671959070535225616138284989905928709571238324318664843923777563745235900453118045360734805902339800166156491831324214579401549342755979776008101832054238528088177116023113390333702698906230330267595075571760527469791850567090249830697841926499925517853846126067824673780756281430359091999374052821714997054022042933926314253312688225070006582083497179734648930998739104394458036149364547362654201802809591572058608045785305664596948320557037236556205205983655919716165824782188652344504600834932393182741156551811008652818770961268777269432941348583204417176889777418566867910376624232039248129428606020783063020055452489729093900027563969704018241475408894205897392525989143928108253523537091098290653672685898166547026038223236670663152848147716183084810292388745393327478284504310157851990494334296237460552220060200895724725519832502836586958923772748226327035382783792506764300759030130903858722004740104350232918648289081296763552981159256709816857700254292655889719080245446303092449125320199454960208450422435799218828884960607671578756181252045871262995005341972177994688576267351223105593244622443341725293771192223584649412093589070343069589919561259434199303775254525883001869459545686803389516099847006910398634784590311539770047558023613533036611322944698745951523496919084485379811064724815548463421539208795560964331668436542817239365854829069114112791437973179788293066799936524294228323118800248017379463718717661169947090732779405669810546908175067833735558536678522112253630505468767597689741684417673507071135840746996427411782353337351706630109118232792768898829489856133280942421737780169812258714417327306979265358279286943339514787614918837798389412361434992936205079373829075894597334146896526674640903723398624894673003039377853235585169327705891555491998722738987889600671312131368226353195838830770385738455811691458560099348728590028061483001809130504901864027416957143120779605200626713597868272095258980444420364110124633207359627530842339776418570765081607996855905902084071187262355254863039571176501734016858802586088870726035864957336153653488726235083678492811198251797193017026602758826825682682864183987887641736341004627930715728677205505108263835325397869339048983957976788717368749566904389643002719657891827978494460626446615158183834387879049370683506669138432619303700347582593028414581636229187645206758506735724326768656846915162705296957405234490715461903657228852812850601535183778601773948757559886183594966958391948954729160711126408403427780572379434792748753631626919141299523421443882053107832410438575116904227248098501873462589465772191725460603790141456679180453617402530847108121446976846748623924098495212474061677398124713402185379387152068758895953142085416967045599134046317714282554663086792805536562406350387061804732831374732268099468730810553735341632276090384959741494436601875758293001143135495639392316093553292054639667587975053114092061207973363187144539389747611435979587447996176563868016348164336949040093341322030740262396100748972065104550113836045445546227006260859556297933882860546247746386169969235614835024903527086374135348143360007298549851961346017530350532332962945543004339418570305226323403087519182070185769752976591057852091152996212809799723688539449263715198710024246054085757811479416307070960716768087002957043172579867480193457031893356519086281780553507712037735522822972192077620098550443646822450436022935100518655373810424995417738265230973124529920462528993262496701903900991887345323695944056766855043440613319008329849010323678877442228539284026336793880809151472030606752737114503266137386923253031602931126395648374905655768185822736080782905267246229494051419284104813543632758661744723095564379275412999513817284919511027301974891579308308828804242199983832412993933987073828110526939592646810457960024940806638737357592012400895128985320451734384063194449217739820084282460646547444884308088294453230516250472674271254242701570825859706352089449092473149709784066185593500446235583907024849654129584206672457202053587200028042724542021061927353972151181217881237551852004578327064153984513572060103251670731342934286621289139285947309244212893210683857322425833063259519957921650798792689088917475478360336399520584896658748738154081550931141879708105968650170337464015181948702805622586374758215454852654673799328315007944035689887484458016410000509492502748909091126603509314438176775916148806423966841157873571146282503468607224065079153474064682015646391210756797535200786853458345379383415253082469211229166527718763040790340608110463304280980153873823816936123124523102063167211414229139651985736540632449661052303443067043009295070296677836549326443226039071440979062754464004596960369993493130408148563068830003224087837768539778888097118324514617425767755949209094617534160179383578603412240659984702225144069344520605189124812810509172493696741476400560799390682854962317377507178121913736805235557099768182464918882144727691927480892272799574974079593225719734393364921611934608415121678562400511640311101240879895777285662858177128465305591084298158270091901010489048874145978822385591056556075532042764934628756738074821739751614758029549770357561274731745340465283751477275583849275863843768059402764754733477080832083953726348344933741363870805146227573712806713422157751056931628060887159137838336790455287125413262718021998076312265675529976574631235346679952738467752706301638095328433705392229959669089932086321141771057308834249855362656341667871878954861273981866839386482953916645638210881965423310624884633700425129147140424228429849324280741355974839907184328846125667523316543989231226713995185430708060705227409052189511940319212811068471518639013879222462946339419856986209220733622858281861126886739795866466961525284326515160512308093076810073502921444193562974921055322015687596489941947288295161436510097711159424502107654507812304297680852553398834052135823189023030987978807727471851339328575201775447203836702280780042740900699034334224160093438939321651710135139520877027565023878368935261588610778124885076207264158413406524747823180131043266613594597755211307868944637679029164911878660218453621826604244250292085761280102257304053166798012113860777698928656308669082098890327702368529221606276426912058047020864475318011869921036769808791985047853106276305310745846206671049639865979149783112768233292037550782624828117260816264733088604145034254280742840707090866163188308927021205938959916981233061861585935164025409950305598538451363812148611441944058597132010069828203643299937544989388067129415484490137638114293970414924581340676668247806747997715649537065041794214301941996883207392146057294242622772895333509457670151225846034926856014715390740601236788345517556665468102508757309103914923080055667405869578874364184943341439084260070626899536036610646945921391038063570800138295065497335337634461581700334338456433965712005493484852091020994087404397979144946209493832613209107206548924669185017169222471511653462913231238080356476191737841590182429340318878184118244845110428063421309429146185072854835035292401207180356290680846744024369965346897037010597585968453490732147397265215855494679081691016101044997546293895960559923634914143104181207768931892388129600653548304551410436449065934711069060812129529761110628371254699753188533785491770173623440981142483557973484027862656320684844994742912710484063598276591291700603175926467496936163447470104660658303355725211516024602743894402771389214784761984259504159302162159678960271765043010125946595546889179233264932239799270054873041652582341764546663535429867317020289103333305611042136649829399414301459742354368319999992421109607168961206963980899162717853596853324063406122623981089244686642128138020534173573960282598860280493437344174692284520146899951402568050386640952906666251585207675424123642424419148650451809680406401135156470181747207468321868719169588040557391310564084306826221729873432730875391867727092555290425087274458718269268480258649034799941153006750756133781542601309913660183014222052228257093210296496930790367361818636571800169015406746362512869085435315432444058215059443941612149723113405992298359142188073808415886062213746758561343618449755995659285177451054331117743718936916162066587668171145899479325690686286820747148586725147789124180264518116748910927765662446585159744999555001634402833364690689837656884761306569709898667721041957398454379031100577217637859794286416591549013009333412340942063597484193384843506031179296378111713638431700114253975218034688824728666065379121576564411247725141844162607015834745181286872307134279547167568515529200382417438898061704707857431051472614775086571639281524125500891549309773727407837044486170761852628854962162404235354595556299427687924885765820035358073850564405119437193077488665229268118317894978933710011739983871314408272000967270667238597359610431502559656030541830105924502854357627516003708396374486325014599280949480245306303980324590131307593552642281384701267374312257432974442164502600502294940372183058315414172235699350879697469980605276497655133980417823228753597961601089072589888414252078786837771787100857326605837254319645492412340229838838887934560806413641017441111756480520693740700060626360492196179890471257972644955764902509864075449009411837164810178936301561388936476356461318298424706883621416098087665896881665905902772438548196833933269963472260446407215735830243913694335995377528119352026717423567080104477714512108590455094362284139145210378225176853261582232190706192138389382359896954594081645384856123710634260062126401558269536583743725961331594555688882252754721149244376037950675693186422447374352330194996264657122416144848663805362806862666898330916463834395455369585915631000160144194314696484654645483809605766694548736621555009169509197301641951772733322391466879544744703542219105999148440030472469202736952432753390352189645587491190550351875235609927951528568742922165695421147788947664933583492269259150560029965852183151039628548799968354845423704473310597903254421481793097886855996371322704058383068452045971797030874271277210519908315112022347138580456886901850751431581745822431247475025828263133723996128379412854270990956040420099086920038158419631159810709734948153405745726568911996282110090112542256090550044770684328034539176654560342300287165764359129436902462950664934431782873663370692095978831702912640229103535270390445957544704222391598074141077844789353094334890545390027737717606353563089511798493020718604447880646106369776806359470988310756789090347795840701579536116461617422681891753306383952024902465781587188057049269585727305317269163504962658215040509988287025165490515818768068077129653565188317969842330828785552268325916970254061058664660853636751461110017214556487318622845280731053988326028608669531101320015128104639753042924076270523982755928022643210482845090523265431901294818353820630509413851003649492976253062585367424186393348645428581643036260035373186844671711025961483904022033008819308285221687231566430906399013868320124580534368719535833147602260065957994969477125227207270171023509607215493891377308012957212509951189798307845059495412940173314013872630782617349556615048800997678957876106352520822885063223206704084650252291986109594168997992837558914799322897800040806648327652115079402698926269853188022013924552390472795684041931691784908836146279131533154423400680990851954271687109019473161866208691622114714549084314561426185784296017883255574053158893510523503567702229208933342510719084233340404646601469557453889367120701323613763946850807974109561888101442101545927074154614011674761497046713753666372486719097383639817643189636210870595418283867582846370348405879022387341734368804996151636044416505200481116111184401893713653582750828544056648115956711507004127727466709039718944640862434149433532628021084799718688156632745691757396775820845915889895588260821089258832718971485589233313873731276883691131570001492186451934303413793997235221621806363528330590594881024514507947263035589187527558695164567859806817374783131659967235458101762599809932738560885689658540203054598754605765012183897616392408747806620399664655292640279430182582843402676609648462073949072354149914151865373578307862269978238478652726571836040109569836297220783952929969111185868467393069247009971326897265026790233165408433974097483315401628790096114174377488594117605603815032720234359718386204835771964799358239702979972197060379598062351257622218085290364356907700357581653966648359467596054231158083390867336164396150461572257595389497738771184976125019001433828677631351828290728264165406107224228854258341650343653350884403753691903428204883520538139445638047235757138543896037235322463257387322060318437323126828848146215814756841340082139207918601512025436800834529503172904682637969527300878085925189891193417806007363052396439438564745413688890915969006911282212477794261232618057334170379007808299014271444102250741493780275221037427949813556939617229597963992434696239510804460872553056933490708477342585779817127157321536739306477438619932939541052404260242760747409765417965560771186530810640282625540666801490025060922483867349915405098595030696952701791600407571935492763959980744728239793433484774336223216259533661322538534119189793497395033824250958480864951440863139355350604087241920996406779675661751634135521028273751258543472156273650798952276447103332755611219510411592691711463083068904005715049707076961495525515908599557946703316418560336808468986060460542860203544361303829285054843188642882892033224580374674049710040251248522601351853874199161976216751337817762483177136930503874292667934212867023166413411261359895202587200950279682831823416275479272826897237083285275572172358929772649998482752728712943990465391235132601890170088923055287566580656977400499615604752542063930469035879773997006351861681327169347456263829994394885870390550611432985402437915681655534834927644381130126704851159886773072764601335761155604510682861311361754501272518491255532032310923349211975644366353698203762191821466047129084629618358006620631360221436822701548757793380219844685505503717473160407585479124964834648278308498732394086079460818107351657984933233751321063172308074993409350965229568394482550326036377147640488263272856460874755251395737353797210247394148011550214403768445403318168404064430156244605386642264749197799439403901774440794244034784270392769371311731043171551486170767213347991533232344626512077267598128439686539194193915746893652996060794804386618214024933493205794989283780315478989688454548284059225045002357632511775809559030813591202400577495897101726875023339535910041960733540323707861950596616721171512806772327937626410644219831637810585301387024917824517119569073739557642365210373589236276775495135787183609223798830952026127009890459679426761067804403967734074432996910000135758414332069708631572873443219679783594104449173755708796664848737372844827942753499507206948030875088084988713213387055301274162889412742239112634251421715318772681527018533931569843007384816525363708258815627259305269648208340855612227801652759027872398040797343782655371224725449305684623225961187380164042499392812416902170946759680312326589259076665693891666154169032712081780522322206587567758370886578510346383246334214607633767973119878595027678281779600255978446911562497309265666081171365908158608986996122431464744504953681436975519431517135563306026395364361554039831784152098808434102098260474813561344022052452211020146447920978210211791626792710200501984106421946195137288253092241848234923795504380374289345305638526361561881162784017964012192232853607967473249831994834238070565270831731779917865907606659293590491324482099528498418584643565357277000784306917679877081772089698620119608074121665408584121971756656807638239671894439404894266726891773986049360846884939927168062304568982008266929396862947125828901010523753263302159216196076429358770069113282609815266845082386571417872262860766017104754320744720418628655693804879755350848470770868402052833876804478153490228389041054496979736352955452379869584207775819945414645030584663711381159950720630061473242676292320608363757698787315855740713506688944161234384169766993135935208768901008952555779138106124849493498325216648341512240236115659981544385048576602577187026754379550366712978615996245543805927386292430634561439456296116173975236273848622756743553148577201435232036594526950018255567189004506328278456026698114257935350377336304407661914463999839236328925302615001877413713936576164504532466861362589428005208830920059733386490384347241511785554228470830458776603849927349850544601271798552452849908357209652792076463870968504410176408291263574457880256044675671117561406642934036808035952775841281456689107419184289582960484070618591329932025830139073619100723159434258751890333886503043918510706170065372832673150589772430205563749570394813919205416683055686574273034441210349419384721201826780240891659150855654907973305268224235054431245699546406615149765343438136214133220541134739613878273849202243210698861111187661778131001284328679655635134681039901050822200667598860491425060783578017888570382131670386124969744974337022198380417216113895954426675527635133938363239626199707139619820952209187167433750495023121856783224820944584028675713600142638536558391703927512601723251441664796426182570894223694287033908823030344335068021773124905130223779102654539310151395586986650131389202236638912094584944798374251049380241489694174867217811612418822002156149812044206401976198232827487114980003007835281468266468319224749314892796721692796826558361377301704176678843802820368767721309642936233884820161321002636396992908853532497855764595304868370096211840914193410644828489694725543465188879171346385279746136816356693556166388145910165170432754316903107844904640126007946747455985388186140180227719309246131876307774518467474447884949345567195948124382240691951162549298448265696994268170304167772303038514744533160901399350363184241641815177091706685895150848323681626457110013571688070761818205521725853203590530068594156132175741088133712055756846739006793187635723026554558716361669047231323589067086481200842940416249335888307267545681627940481890439507969661865663968122987810985120938264928534765357260144084709033574592266856878428747380027908427138203131199710633725798812812059252550858264467948143178542911677261340224285266038004824214218685007341487085777052175406594357813125235187432750392454149902572456342951735523751338508696953457742981311050691674281523637337918676951933831523975974973260092059436386324953354112820290802553170219976111147481374862211827398435154470674871597196110813870770132561153541898575646221376500097266348877803920401947547275895627663059362957261980940546499026523933849913656206720408729995287117601205431327600079569436568584681706801394852175561525025776236297553979141193371816504845711073981055913099838487033015831854755115083703392629475989403602627579605936756619639183239836527203847102441297644737385689288829175201114577279306181130558633192262326357237045336068265202319114842117016190709310382920790633503818913901832452859576375591099292860800392071243845666892538513851861265734087831695837264493232547725942950997714752796964972894675377090521377723354781934188314125303171774510150477097530695071580142401698815082743980911224784495108756522977899726366756799165861429807555917285425509847420011867848086178815247557451148564553601468197031359908449010565820804204452711193286968890066159116978413425429896771537849162988186023032532975580448624241293681177729469800844210136447746605844436879454588018116747129294102727324396352719896721433297776788025204346351645391877696499771168825196112733489820391671165734130005631411125871922331972230393649946483431426865688293306898554749341852806790071625563644825918945189092148029958418660473245058088032955875279889503274352917412109011760899584031045974467599559657625178226736800755452158048048779209639937063615673014776952304264964098317741822126319765512698692170856466800733030547079439199276998034134771614944750577244375946649333404917579765721796392217477048845758880930673415953333523445388254152280028433655444354917387925802836345301522047848820641945765894582142875318996203208962958613755795340194652016417840094581111197473866927824699824263248304740195196886731313969471976916176605745807478451764207773620276592999973641303029753460624422344381239012799092819187570939000880623590485013203246037226123776510202491583900585294928786461494149322252371981557113406232580286455469778075587539330310768905405966853506312626405208866750522002621948439084615483971188687736416960618574531513156557714543444968497350166833522175756545210914013662299646321050664416358417772925073861915808596671853478795863663215772618810099436197232820646274942506315439375852043626134312118392137633385019270258406332146407534872943289407023847398429790539875061802602835583476816746816225369433466650252704044619903350352347223850923731029551846119523220901782705578046552439509975424810571906326517735772876364977904449990235379080737979560591334196889208552813577278790663764142480291715759489259407873810230891720687312589111332197208124965505284362553313413624683305289340772269156844102502414302049827897636298867936691830517109238815292879715110896806057424677624529340847270930227360966554053065378784106862933927683056585548079923433335122330267011335383784533933372873180493960802537091909822642658412203829328726183981870114328814007573337503933300079622201527387418359362643261764534092958783620989404652433439512084989214679583631725891556231241859524588769533064492971211751077998740027479639213017007964109004853554359876706654500269063932811242812732497163182864903379102287152149745213742222798661882853057020265874135018586308580113281836436299304532254557066035723180757615633399857315812360359047184114971571204384154329814954503619706830225356267378683847888430974577900093211277963334677056084285597803476843008649491852375154797113087073072083709155602975856569600377343490406436579507903972796710016628604326527855745233773974399768361264343488947890994337041713315166914425327051393944354354143243129851545871309036730458958832720016951848488107176635357957089080398229959388374694521182398234042095210094422310167350157039205223226845503858483680892133842474909507816584715911065870282246959460120596694394551394900494317310607510746119472264080013246054564393989717300354704696178490085571106534605178956168925567334702667277070888870862641239426266889010356078003151708690138035233210395215997217064598185841991966088764302143939250762927060259758742514459866952160221335852067867406841323173105596341298097494170966792346883327388988962296772775539847278842169883870199701100960924339713130433384585815565258823152416288819112629455636640828209158274784348701216409718127480091021417430370100249996516085056659068342731926088420368414868650979587878017156519241656189476121213422165411419446986711220343264006271756166659383110911880483786368533965560851624410828730286166595691591623961802150832907118822436258198323505225977416040772932879286322213621502285422940490255437232126247310342841729044097570612694545620445627102936584827985185124101933411762821459507886656438815460092134398670225307027870797388035983830970140151493379133963734938250587876922248006786242734268614493815916607012418856037006656287848993286539567278290940430540125237707628870737221976689544230474437274403476713848577841506944813024862126091426692327068730373868737576773188882967086692613579559775188258260819000221897139036262357915165781067603774283289223964332722516099641400488685414361067124423450616080254002143919348761225084536452179067009240529496338277160618714795083429651905095848800850777593015915993133048640599922979106971386191431439854104753015260672302087493146031772902698355192984738906479733918739800687417223060025995763463815834122221469201277482648759136975447742409287049591389939658112961492282859412292040221574093074194286850359987063329106509627564312441661844924129837363083203150016920010457999451050798471199575192926547951362441990919202817188429277916752781905196148928341059063215738708078458949253341109015693832509200648046051124341491922553643621536977386167847538699161023867392864590810793943439335511643571297329275214941037674511303219924428314579475671065475531454218693525791917759873237793161459546644501607886981842628586699950908440798693159434673898392530226377820026526121900443799055123653725979542791721509797408300028621576844968178714203157852279416813136444898164354038994330763793591935919785809544487314633120759153486382061705922631208549865039233568421176606254133334301931554564967753423011409584576737316058258426298674088837338811376413786234893419564996607047214556678656816356867628144511705408018852181998070853978227432362155118277825208591480963071416590219042218247292783837655714542611968461610183149092240908562267238946153566471815406176106208447885178218292139031855571151169892402261336931253484319551299739359048721558683077791570765088717375270397964584250262202713064617673138037489313569580852670476172749560109111069129456441990927297576621943791269107266081544405866179976172129915573798152158762844700794647092879798373174227594651498425242472181647389623764990144425304754292746748356806048761813305466116102718506868651406589776617667086546143727092216890713488496694474906201984238195869882860359795902477962451119490816379474617434665716020433584184471033505715421147274695007176639173342696861753955932959251293163375881481419948047816661408435235237988792956383007618779309376604179126112845943809445645852775674323771052158688415625164854015202877954163073160849102750144650895838469780602174511147233319081434268873747552749948201352900890749268270589097313819255966145611441962967153037284332093661732186263579409398128874460055617845929837679756804891076260743560017038603638667112470027552225224457972845931219017529995826340923394968290430709467125868710539007496316226617643648400647951451760528658072805506692652887384826133428126248205835571005656931559796431611739708078007191089310071809766234975430785852761585346430796738350521504062840184407593864181281286130590691765362136460771026680332313983667851189968975895276083889793810670070446741653151337661825485613819153826787232897228596376840202568638660685151578628286632371673229570738915855024509654102339265881184264198267962146925121920766999559523575290453697340859360400589783235516499814158599774467283106345813759916509267514725237426833062621052748371130544666811346590025658869046974069196001272969034844941787453417077842264260125216809524475268242345585522925490380311564828136234704036967308999601386131764613465978648930593261542857035062058579077637445935349010148322275607521154704916638067066743703464352341904947157502879598200848913889505615748551051923626348541909229421720851156749562525812940224146976962081435330143898281793497716628127598908211512433485474501865655827659287978138426017413509276451023499212302835209160731525147199703716015677639487799798074426345263722446070697409653487417345761911214867131027454289466640174540148158011041033602447010170262321562265271197455854966366860097797741387733878115441952454021391109399773476254183682994232771611361376128597205861578686506454208605644240730714781875782032205636820610196360765592551764331073508606945419835625261865097177813374472749161905900226185640170049893459677201786877625998275475959324149042950541475030032399468121485166048466423780417936235294141856692747329961980904798703499435440790020073798200715131125030894731047814474685232909106123980441167760947891535951272446262469829194450501565827746547972012839907156650421677715209044905051898364377579591149916898482666930029347740436107898436822135578364659272766673799243160662272455969824127665255117806909863573361616991095940123636374307194333924252361132813409610459976269290547508315056152039366231639010285519856858319342497685895211600562108819064595533707299366299184028654033475654095545647184185148683308804745700199473493957578962453085676360651782075624759870967075441052555914664290021844872730354911353709935961105928856355726400823724762269631879200866129353415712883525174024344646795223313203315703308624814890903149608842026294937868080951214750042497070724468093472059564559840156001918900298330246756252758718110299218651757790392430978444784170837747560524420143103286708398853206086526540932256882472107669825690529382371472820831116541888827612276485568866835164617263652247592197952984656866502605662649550131757132617311086453093749458885569561898765781114025003666499553326143416209046757866342561177928561218036692096537197135834036016856802857441517621720773788971359411886695074228429415896987505036971062942499666967408647737116767724247776828038667811232998548404513830007433601954619334470739985044153004548513792425391187340567556719371928741050232044904365800759990638795186385546720528572760144592180968177951089651851773274959960753916689458588292159683971551627156629981266667168292626688027947603273563230258907176118336693116159146235149111304048675244267894540501852697153035134828890695413413584844724363101509070512175646867592733258713273069949627715988853264779002649499969375351677524342655858412591441354687745998207308517171742257578573804280750375120277855703636518189593034623449465331510040184850145154078061173896747810098194059044793249677983345853629428765958162773211553020429490775576660229991211087253253263991715848832553192935722467520999055039668400409078722275647483375233811067275900425246899620457314471269984422781430721005271909816476593836229940447746987795467527401811546410693082944549120685120663357978894652188330657408615937496159886053943288509705255838018684214041941277562014252851640731607398269175051334786275266990762347068276828459709166356498175001608704341352633257329436011550797808547541488828007872893621264124680688809579017678328795568538931576633184678207390436573727042449559911765037369002395797049612531993186089048815266468865997500715663415500480931171727008569718146909759861293872909822568214163643805086198525782024100706868742758290370488424990389061941304343923054648312870438287632042470556309618121019089839550691143802585025764016148340064739404421961835753878906283454438244700914892113604276751700116319137647822115782598577716875644483561878774038095385399729440798513384070134198215622733140940778274134948841641766995723917191144330106100706693567693718182255344636751882511296603163210063017970786853209360102562332938286497364491094639732251808349566173006166285131036685458397736889030633571217401727122355113949509631216738752569579456365029541137752437906623972459969707632956760630176493426947276995466965178308637677944049184500851791568395006394551303440777120546671546285337692283805934715734774448130387637244113575089557328341623067047635871149010021710474181877777598530821896327884195712455787623900053019392450522950549503053394545364800534608317309299793488583817824297215877327209106919793169755083305265388899678938091618695086321597443345402709854067237356057479132504987115222889079372097716388670653791009384462314349272022598924064076588826017875671469544156913361148476592912666211164059670988488162138417340327967407745740854155225365974305617993496232808165462836044437826298961591793949857692467249211651669571646814629581638745913739922880405658292853085340333941138182800782548835589931781972383232983742833481902760218838152632336256686298943948695076707608883209004595239470650836611993447895574248381313253932016493012971991510617293917589250220749150669648736313503149481774251720848149863332776640162494531898124140607658484949261216982962762031512676858975326470705620632445983847243365724472387791563224061021094083160154715097473311250689120350261586515004382333779170317485785404897947723012331624752341005905541963048430414424424629762658687140985971856879976025300276018855413621744259395058557660340942219419180560979535392999139532849906871890084663254459973750644439615542887650789532983931756841730981642013458559998939618091065082376554617418947630245660857770991961887490135717810282249164225625061191082939010601726446523835402595278008616423467177849753028294179497522007366272058322182515843024550405261805141330411042340424055216302869128144207638270083382203214337906041627640157865212344871505152834723165298486598951050852174778250067529024661476163437677632244263442539027553002905164865288558585464944057082405056786458523323980078282609447998301264439616899313676267958138383406300939830136270272922910940948229826997835617227935332214242216929251347725231378959242462354137550220984278488966989226813717872933797772356765975885486204270998839303495532367497379580905277698814928840427470546670254475673960554752100597740249830821026876926962295367958642886757307268634391968077545827580944275884342419851826712641188824372615042519722886792951014810405019382779774741391094346066177154307194657844787454339737304466685664256912944262794635996646773118244942637984207201899362986265397416772533847015287077305691506031143861111708524630118728260768357008487038717118180803785732012989799176192304040232040111427664147418982993097182623530785750674491583828298433599308598173706726467446911907328821860957053094606877111006335146394141753853227054388514425780369393847916785666027915059740804642171861180441234562427365255191571343131226084742333750354037837683811359735148773536431194066528028804555086752950870394189077280635457037557809243042194547675762732112619531888256376530259991758664898939436359661814240389903566766829698815232503405693682818091734303932501153121427016249189613185336002486250198021145503095129259360347370005304572099396609998898277453515523114889109004120065051039935292684705971686543047164943601297361242075512448946828430424146604642917408456000742737142034843016269355621469276095034185460738987211827074226391210361713021039870079856151655216009621601967387117472405855039345076032827066416693506727783316501301193161847420709309040633618899290759973112284164763323241860279274761543932593342840435349230463867546493999653809490671553856945770677149003558089134280396304241447888874543210326667167982382924604085979173031619266327902118593068495566783351882196985129385820114385265697557791536788171018921496120821170123456893180202795172543156525650439174865214436316053262643241299864595519524647061676625063552522310893426766770336383907352459468571532284341598480399002467105215627285828007944747012113468314598460793754137266888987254517206322300792560580902875202116432877035109023014887011248597812113121693343204036107340203472352560887261066218508995898402516367102556603393499410524471784214465838207925179725934442015140396713193722745052005425585003579070420156129527498436525323247142232571998711186277505184057193344830564669876887194299410370164570848273828415347232430461027300649677125924237584446155386112338363918592769027498915847495520493721726717308097108533084269299128044349132314951051533086264965190086144572346302829154610550577420528613800356740767688259604877257072933378372538530227882541264666898405900677013535379644398428954886222942574588198431490901708209437610540647689045677011881430839871038951122481740799959031916495155406183566154270874644157595766681545448866709511745708428551980471821951604304751435323309207257196765842262500305338738894406779382353015947036013679759356872001943459351753670698714383217796367679918738402668683593833569757481323604011173975821457590719600966596864968952809852549639105223576526486922126061290166911527587605361765428334111485407082417874573662175309790117942407239946159725344437877962626228057300403184218638095215425805384250474383116451842404846865491628781928017360283600795183146418741417408581139029742666685909064386698296651002912021880511808694898467614397105415457371142580612206387697172658232550610782562893550029338530431055550032341278274102775980447824455981816875253098556644199057891572377345657673643824911279264685778767401570614996643143358583924697177436139521460921617297411106234494849287811350661564148139452676951015236707938707796696074754996489712133323591052129495296389754361340124144761997776121043233599204264126069814162631432543700519158756099813479410894913260029375984153204448440917186969118109395221294047746219114112454468528603709456172982636597375685306532301321728928032307119246499128424366443222955274996700374848936199116917996744641165891366860291547111664893461929351787253290954508573958964318660013319316772387573649208873931549793088803193481628559109190987483526994015478735551267742673496394473703157555522648368045927109885454889002293917957318702646647409739637331717356619374665960474439520673592592192910387651476129101919765851180633726286057286905257831671696237014706207813811911527720485113852575863982253412135534402274273283297082114371315863412113518928773421771596966028057719357602696995669956045841244718264873652847561983821782815862357273992523191678296636965005451750368438532069563709814411002129962036906838401348547505043883255015410143097143072441451678669977625117752682143173507916556961455430666530218872573830144732964527495526041172555059848254499429919934434186431959170265112580815523709760407211795279462343750901746868289679579245187898507894520644604878250904664413371304552531105702485237282809242501904647579363050554421137579131532158239851597096774493256304351058138581959416703430411617209107197292768502073751258316588961335119167004499566161693984870702056323454963745517726875441399499807012977779360491980227267515064955605863668451156308644839731231888835109114035204091886797067197410203287909765434189371061044413715368107852429554260800189795324702423949230005446951712147535875923081210250281303570288344358714143609092643578899805800710950055036355260729293001341968886407581251217207526137018834725669745432851793553100428367955191492672846670116554249390217905600914070620717449219359871838698477728395036856367924041513514532209276387530090657416839397726396392775634444228395122181347156201116001666808803933799615826831930573511041299869764723040731780894284655651029545052173811444735559662717648283643293759008783677030108747116558632848168609824046782316984744303660168751296690827314272764559086373700728178420622753903855880598568536678852693391285064643371035530923194921714250600611377457166846759852874619168036023131189974301710203544172817742729679279236409325663890256242266194534286702521839677531189188838945553280641421238431316787545874125871425141130730522776958941410960469950193418661881970312428332216420834337380867881063823051689586008145636156084563481064193478872773959594158235567013895489207531303873839815468089737086765235323025821772103596936641069714015949337136331512977030748311260532164243957531120978620905452984447259157213037356499313321373916972482696293597192006782011880479689855726801373297747248413721507956389388977068504943220979286323616244401666952120687889198829153531324148542859516508559376964048118467968647239142044339264660263583839060530297088990948353407622468087976458889796236819841334579396119520091537797908146853016858317878759851033473839604195460806283721909689724754414610857752896879320838838159738964274682824712369144080214754672891374548484847667464419505837190641822358655584587437193360660025856075384715717332481546958636771928931312454762828979176841327198324239164973168087082879395051976376161775205918097587666901587768297654077344410657140486090346167268864988186126521301391080180479338981149676575382429806239792140787719778770967711196779628984238625523748856322395327978373138022305048956670962011023092155833738400280227419809332428573217427624612180981595878412206053288845882608874284012199542974527723286330128148529738648956101311400410319233865193348034791493746493437978719335949089527679313662976825653171463541016952140284359590274042088174817976629923133994459544750178364229280150528903301359911251246721132487993270251731190574556623054836531944114113726141245381757176024818199335836232528838023996183568365850408782187389652878499371056970190190162764590347693439059588905048933783114744199712492814432027354573177437569987190040478220635712472717401062449928175491344533672934441243787058225784469187195234104994227478732743053008713927564648117085392080409798699291372669262836284595757414326545328260891717447137333441466722875944042437132875660614384156866492340289842664555958238652447875968980512141858225124658600718262974478157851480737904592851944189982013083564950078482140991755949995425124657391110022685569173777622878527561680055108959260720247631660216366530955057935097936012580310593924433805940471725338222926673363261201383691138458554770444951850500444347753861393702174088545823244368680210527136894225933805718895440098447721901219249156815341432237686864364796147668907952065185633495712598327603460338704938856778708272275503473430899575016918131534266249812785389308903749378900610623129087299995384939210254005705730481512087022256136010156077758577866857647612333905153597695818521630597295603103438679832736676741158844647679923226357386096733565686759475655534843146887868792599166691742637507215146532466775967469510496451180067865003533697722531082391010045407415199749423100629984273276856891598896422398717499028182330172313010061991102418421075710675057831978474884265524307176894473932108470737608967627736795997917625890446476042813579538254631553293039724495994382998720959615736237503063905358525692807623914007234323380657298333468482119489922915873030261840218311651657169658600539684739307314592389062735774958023184189962662047394725554168972840501343650140106177232366863762388386518794331249781524255801765500133288154168417086063318472884823918320261580963043473905833152516635224268359035912797405445197090605528113190464929266391072904664395946935814838152536349616558609606723779998124295263304183940069678126335663685329003511326123622484697514125455796499040980963354107388036965470568836148192921832853622640020623088082256943139132550223658501414941149674248076914443748505971242909688179089266793328627132601211425670143739681938117754836454336408665420836168525061108195072816991528899184229203532408689908342643467175320465819354719656978879689949553401632743491361488683897561564980804307188998239987945090300447841741771144515454878475520175906947446437561566657443794169800341105741068848261613140210510450660060324727239547038554085744013838916875097006461908327541455071943380574086998075349363323913039005177225763268347312108714370331818811618258075861957845084069926292146090862976504607576705615969176650345709297891472514619380332763726244122678619127420013902496933944293422530661570720989850654410274633003202078570807766734164353780570334334874144745206124198235681474161983923354796904976980593934299869801083720279030433360328754346349141612085538770819272877078846195408590265782229566522389117762321657786565289935089970155778570922222396438606146841672790093129402850430031445417531420179834325048724096540986846575599747106324075028710216570997724495391484383524741499930601478244449497460907231147870238145475270671806916326396445186244943628339813251019846083808883768843151884481438022229558323141395060877384826737481345600389663508762935225123530921492088310280450771951870056128059479288975509947316887165736421377981281527353336684765674320242518773825366546637678649692747159273182959297992036177889336020249797561700291957731130146309752813482175935929658622489579396589391752969026518555201151720056318356015675640639401266183327780687845642151017569538317615381449358808920847294549061866553410238302058113963173975983820671723320183105212475364184828213420462745509432958843314814905997063580973754089659700276960530446860332256364605496873504551138986578731670704950242164923722311323102369620693265388440344620080282683196999335805275745779065835391063167125524893690779997560611005347469908036290406524129864307309958708775612817127918905722247124238860357896183013252474715190531300217354263704493806326304913045082995896353293614760010327082273494260101802099214825912635315624000158839048416469600744958889334319507855777089477580045765758388145891085874940103651913043089787518445618558635803363945361415671104188851320174235432065723140307874289499574354403359741557359984176926496151050211506049212964680426498708858865707436757290107338221546500058819436342800898838502063645097539021620607273347600758240306990913210978150173159312107183386267730544042211956466998106840453197644102553032612191307647150758709249380583686620714127539411001247308082294748728887414813221867356885237403156508911179608754149365934309513557163848675920965004438188566386984327297536822196847981292885684461466639619629893225562298032197560930770488989834202521804489183096334302030015046791060349494452166852318084638697089672656882646237686294335924388670551947951055509581689425406907130659298301987567950934205867611987878207815964624940542169637681553245776746123764854361599595771303400740157962763814574010052006721021659431544468658268858514199048582504390711630516148986130384576996222294566957690554974923191416692056913250652104966138323458823156551782604811613554466712920667404494537677765914238082816004966694259494356195470518246926221078082878776691359162627825442826430951162026897957048072320195902126201210058539359871318688566446190903045240482770420159087193991015171046284923778429883295830296016955681888558152543375877741411819830069679300893195950353675624734003152148741158564593719781115108598358260414603651921136337554046077998639778410286935164874879162553281630518294421940688768701785328188384370861261861832970936401733144346713572868546647451378992865575074770293051947876045383959361365035591212631390373478770361893296932583035655814398817434689380761072659570269846346430522335564861366639304379953056842550003275863934991231351826384220619558587217241384017684698102215709457322655881410486018957642362490550364346679180029528799792170944621302302670143551320212728381284890865216387444279611000562845687616764556956658765130124752392561166534981218897252556535855889749322722685998131456102443436434831310645341287267083219928931858592837616312751509123517057800072944313390901601304305849354865419971997674478155657554641783332815577491751667278105686143776620473251030875299512227141104147155150931870999448979240231819222068627830493160954234134081575961671142893003555549135372341914428384661467693386681095168478898491409399159845307253498946882060095971899512142047547963275945580431775142821211793381931384639372787552963432244972997103982058121460895647951062060097558831795348010448704652082098856196901261523957043069752898672409185034473807558845524488005771619918206866135731656752759868806825936542562177202244217214938432701966317044412159064314762682206367635114263026529667023111558205676678568315246949438091748100705312917071032075890277290900425203932673642974926598430763780099274985813407632611727326974242321208187807838936951897023530095941894960832213964124472621212724232161699571076568670679544972224829140284137132534291494672674690610146175647208175130856968207089831392794401771050686377909820382919187159189348052195029328199056727747922006480533524321851652643346290369757952274127505285408991273907103195061410508117091906057138422538039852375293707490387333448231299040762727593689811547071431086058617374591503042686005703439360589960683305685828962124465287516518490928755159058239944328787257489814636153321383904158104105329548812337961335562273921964325124708801795805842454911658772688379894245334255075433966497216225820261999344239631505518638309373317773437395838953916541015802832710674141350107238535418542401951574981920088182668877636914783966113507266067721271405921029569821499180254553862858723952072616910798954894994205788378161062799747263632584470711043948583475596295915585956087109027952128772812399369811153119858587398287231172065167724468993297985848021262051297243674727048491321781240023602901376348326699100429312261786546244222875882045539668320457507986952375612694845592464503913530206239620093469178129209190222609282264364577270001051344426996353902988099275949378548580218409011519367532212978661803879436166634638102463478437219794888683224966545515471449380844226242296152404843805799232848267707559451426237277433562431731128106404471292837085921201833295344353736778904229693455832569388618108031363571413043742549931516474686753417756863424238673538662826543706442679946747866740567051037700061643187474377373581192418316486441481835294035836905708607401133569015279095887778572443352402713603880605729816957308819115470959959265724989468144039509989608495875931791003898503482906613451135637181948337939886435241084020705654905884108233865081022808668776638872638038130623384193867781451991349389906465411220327397238124557084865319493442784318378766787791400505034911232250938545614139087202018644450740376789111005690859979889026635829543363943717885740986976334517767375509244951421947047760328702421265831487461465578985310170249461468214583003671514190863331470421779969958667933310124461324733200729310874990831855377593860093454684662725730386101710774683604785034571785907176272570839122988166897007393707478595825861626429120391943016407291367218054693772563744465724063704654676520551430913426650024536113582655945492135770934819686743331133430526187562230445060890100573369462266813898134766079907372298572859501113423835743299679966430341853733917735936918271678290378350464428271961127624719333881256310642749206493857785162998334626680300557421368139740967789627098402317782138010929425453446811583628185506054596040214150269889986831303427509289199608002373921926723403909316448363335296601225076623055501239258037143971436734900524366728558050528822167274749748279115750089048353382036747013617372772916124828580360913785829167567354607076126295651532602436478126294663204204998288175351962556704664934316705224909627519870803395241925572736622713813276664295714898698844925024051960512298562514889690116434149142354715640151689477989162181964289370579443289924989146218155994961482884718736541870146181082773570008127185137195101909451453838667056884295705786884440354707513139946182119256935460860741807658778236430843129891180050860935856467543886343402284925480008123391571158632663505767401160868204581268132645454065385296553325001531960745637404429541013924218779255347985696035260277824441881009388927653021420594964093944685817139289437033076690612442167867389695358522933711127630568722759377032758393336502144285178388116697443738627166284432637241096772676684644236180515453215732156469791706552206846200515791752759212720580137079478330637566677441596915374568566457503794988978014679017051207133775848370491524753390719688668823166318223869492393083818339349728047030076723792649243911254589816853658961169975834984253427538659427831118740541573774494178196890018830289078666872537039670079038333207557283730687541856989228817528673695485205094874047175799495743341787194753978179749103899670922706475652772780082603919953444411116318085512755644544426881272036003288188327560351133435855735835725686976801916727164367195285812668442920329909413935582552824182565271133427699820501971114949114027748815291945579166631486585334949405432903566717133197375361510462646992707194841936211097598095205052911251674966226115745998018146503250934481888057223507317470465495281049597345935346421650830414101929333671507315875528728412954206399569618609278405516565106478277334201491977499193133712714257145210403908882500634192047980519600467021119824065297781350715273708557506093177012136062337586816077827470005250792348327528416982903764649612817179001806005391785458291727541682075700638678848980122483548465944840418827525254978698812482832323680099190197015019381953258300501844255030649888612571046101783423036432355024653471811859612145144184274039964781534489976256628847973738532673733464383846115244618423828023913242466542484591136809456113108781836364607509845524329595463446684412524155968243869493766673789143215762936331103012557253003820607746636318199553550853406446254051313192343569835755485940819665017504842134232149772444179839693104051947204345802871198341879849998077563274056387905281333179959474263880399446571043563069895440470616864309311301443980833388522639761898685253825055912574405022272147092990826642624697643635040973182686311740895378911363611256126763969606984191679498843463770834475477914485698511957928998809624993626113953595099230244496828342503200112546826779056462522341766786379849302731910762029030887776210627462419080999214666178101143174705156220404123573143318624166125076520243054065492093933215081239438650905790944207401092118333778701404574947793172457197182546093885298201117179120327437458779656297271383520627652974904564046399578999709274483221135640278717684847617309325268148584647490264583126853150484239364246727181272422986498229988080273654284304321224942883503095063082075267534502808338818162153273142408072784867900709822042710924035881073413158995899934306312515761434453292026738802201697530021476278198684780193318499962868344376380116623451656071073921801430547386208274168288502165714650773191765504058558431797276349174524173506815932426638225062439884473957479601109722852975742026866915177206239220025563182870919825227282451685168002459920461447987765967396690516791648694028623135144447883790343331932477958086277813610083831138625811552599459484587399908362832546524305164502465605487945656966811741637530940440648979096893765230808497675851815020411604850137943827737002332267319402846655380025793511415960453202489409724272224568614008234494480355565869610042535978378822694727325966596479709484298256937566463981516246678966841757542258990837990822756011482408403688787472818129730304802295206285136996334297589972310886962425637112744548781179504930398878130360034947142647253830874225580026777745426312499005377504319874770858152178207582576135379208718787333718109604496988160856379839519991419016768377249253444765957464123022648517660430637785452640158027409594046893745488858260168987086347292328134353967715552948041383853912877164405531721737447077603362886992482181069914036279513612887834510461332566419404668622545567441722164064283409789544446560647734826998863339882902720515175081646506471448871740225332051617206702391529779452160119009100847153211881226874725501418997655815160058383236848063073926415964000762986148160115084234898663243037214819616638182467981114213601236526150854496960026382402749820363318664803865283421278183491223116158812829458148166878683369106765545523714454031302877859917308149286085330266082172795138007021087339085029863828655715176505300286952192292166697728527966224479785870133457675995349251327268901902889254518868699568341531040227303377177372968967746352632063042745231141101783979957223738769085696774471522775913908138340583132422441204421789503341843433127476586684139410448639240895551283737097738912019464783326462067800373441450973599784600768037609175368060979592205747096404143190551718238776161054853330463665391846038415633821803084364141756830402602674168033715412058981690128065559075444904212718542638241842555862564579729432316256949355336510131486164145775016619330381102734522774732484389451971776949640406490520532029813676342885768036832062617214231463004484930667091587256545072622735685884759713613133280644959041724687324420844856621327844848370893565271769255777019008226104987664143840961482604760335651454863911595636160738736266623354927986307516830512467699439059934836729765450585735288318046764318566704422025288955249079277537626578897609642658448849828701054835019351167396652162995531427001609947400167578004195196225260693138972219380360449815111277241546548188403838255881946415130528783102690627528123277610212841479813384248725924724594684944176210227264370745107908119778447943190214130296903294606806728421978487090628393558462390806049757743718073588012955546382049043096952225530226817294775306552992902408669198122796911325390154423953906455556793048378691615027669973217122544545757180422664254603619798477527372225326984703076515701878758577408787300822785551095502190176367702093008502835453382590146811737887082711498923587570801552822536820772494808604332029236791345412530329037900370531553810460176966614020388808532042119064793373946950188692872809283304718473641735473344448116588889408149791359031795132157609481709711710007063982325872855650829491702346993971343581594621806570650951606259240013777690762380930207489590114987988212502645694078147611329281449763266610047095533114077526039902641692088794630092302347192922673920393654093742043384151048871770902744814087674605941077774290057510385431675601581664511965563519643658516225131739081509640529664026317472211378234228056593399957385052411601876479677086519360685721857194258683673468412479392508475719170139094403319358819234762199942927418095622967593426716740472263971022565109542640835981687065904396969711624123351527481585510034879576347555605614783929042676779985338719524356716703244539636122264280304468398208071668787908306418636080892711932473602128831668898505259381890696900954942336404010878747967533778324910284316650239220577078232806926833092309824914022820945299250392286110433400717778997269529137267070982264547496100817259574264215485086985741169460069447610383049129365850995367038288733423143967347835207833925933062963888015926045504252803020275051011173067774368617027276691720790248596724115864675562659613047598483918714595868982114876167377276950577134884947932117790656501839249629204226966636665019943132368939090594565017225840194337011426434725238753644709606298355586501173417442920658110436642057970252364976692466219534370434466291859538802482021551286558862328710334555165016006765305947983917952974603663248537380352024934224314863917338522148639436211329735494059964016513479973164842198587238378224537368600655690465383535782810334463280494342955825154408329267272523703880574613995431188699713667321696676219292974264036722456353534533276188470963082696377296367292667221449107806550302056758091785022758778673133242884378525169134110323637452556880628841629340365981167239707237875559886888521724592101261625654117210557538332648180927303233873843308699148718010447678566827657392124196387107701854228500519886415407799423824077603896133035380826773576246897599156788281201031345714742953368043933139081625626590266985062642435243875078596152639063735463636963592975009839426326151865742251350261633038371134052532311289180250162302501761388979611929266479439932369146704656381843926373168855230170046115214703791945563736722512268004261230236571421988911374789954863818139916277819491922244055456168168041194389849931925390269673975501294590439208397353580292866522360441189712314898987366003093583527640371819236195417142387718854774748694382257412547811407064448480019852282249299088575498504828217564162342028713569201121007707569802896003456705907934135651299460851790567364804456884963454801547449266966209996868272761285056110450906208857199329946866873330274587673932114482815535162066354915977566138036284661497994942736402898673785974084661035775429209243013253002537385689217506804432281832681309032710419226889166296601887729604324537340776417529741261569571855542589980702547136971331787836705002375745783289420296456231856065759620788160281735791851479814628066038587076377620495557438084738205409872823012445998096141345096320941024403706062815161256089118161627696741759170013392196748599837985771567177370591315017664264384574123687844329529945627066309116063905632107831002140115525654806120037143658994288391190946095536511196575677236919356613073088920778404593380423416347829219965564426601055342215714440386066529901249100565101052493054115817549850728805095394441974785826405688609598535747257397133823624801446803966341290600317901608247757844136463758512323499449504579186256497410670306699511146013205340158467154882855337823675812256228667554445863670568659075133471074380614643785979705723854822567039391127176436262128692985311820561479899798558037035399109427926760578206272495583682008482568726238579729088759101916144726223483818394739078576307599159548105446261193528490571955002824744674338640999867639329760967924109833545642200838511586931625422689270401966169234147483513748576406973614880924674480881699888920544366197490070869651345149153560468890649242752533756393516089421671947073536792467651954754761369649480791944421614223970642612080256537785893123056610768833671960929526050927768959065532435297447024840872465234495881732543335502207028246932284122630647796830049085708350829357282329204699911017925624716570468524338357171716292367497906925646988943051163487059241674316843583852809192303503342712186172973012533928396105422903590088683441233168802737204363697849003643779605943338659338020837290319872965991818731373603288772484456224996257206835088560820233899848666904960746604035568344002843827035541118915749543379481159700941792482076808925051723635232327375348805274054102857584219645534205730402640991414038206124420827668176473239862136527438877149564164733733433126754671580743813326758831221149304577597444987484587743768084023206463183081702434339630362589361781434500467815365126665671045906771244884353823422538095390974703764201668341991316511704952978691872999735003267284950550175224025338432465107615725334442265064843034247893529037544654187399568241755346299744480682254971805837158765209703022201701539751437078500398301968016926093534069657676035940744441758713061923459476088933490618780504387688222448166704409432180458674249553874569263323461311689045816098547182068523496829000613892001828288562001349229754964861125249016873642590721011767314182972691257655423226415969575275591458768377274673479884244810144659127731464083208463702727085746465239927598594259506708825931782286866439614200335324887131168328310754980608556044500134421865002628299219883702015693950319268929354452739066731891675901053121499435496906094963954067670118647536212439100653705150243089162609406653571971462956077333878305718168949441229217467160855429915574286063784531405464268437658017376327044553856484188278566689938095653549630585228672926578298775949314039869184446500309614987106925490115620996158207435522244207073274356182578854067145269977177479727650662513063930484624102700603685091978518198218117696233083250586917923400285445331878042102454234604814883730881688993064186298713301681729467280856341992666909375100180648655182426234336609809710117578444561340949856575848115360693782928712393990374013160642627543491531312210638970510304749450219047599994168919265233575187647716117168302704012011167500047283935942835218570035991509708244112001797678790454978148301984190767002480231371986846902158698046920801506173695000185848286588728799364541854521568429195943560871794181559080669694615064697775817688397512831265675329426083574202164656959809595210420822388901423997416157754424816011011240761972403234767511272605113807990022101561120386039626168347610503879851489360637518131262710789613070219730794377673649624276869208452838390003676492871464271061435563765218195294354124928382623302913900982068895365247818230784494764155554706848815665597436766167228394578823072698795272065177505248708228056331895531459044713602676765025427512510699256614639877578711527315226976036487034869185652422348208392547032913241736593472370758062879786150270655272205940949889571236380144257538615810957555485268129889837422684140710685025076635359676920069132908338120467870039882655044040321732557339109664476193331568483771458255911642565256309616205313791622921132254452198738509264230877314282768015961350399832798032552989659668351127833739361751976528302869228898823324433926946098971338431880563135122281838704270304753755188449479070014828815177459563713493545853225057678835746590054053714119290681515641636322874928703849865462559591057260794808144721365742360151295704721438012518531675415993531131226702748482519132483644295522576942542178736875519581426858903500614595361471426875778311209725341548821183876146273484643409446835740690054361825981349147017797330677983377777755511057888170623873218512090434697185440119040175737758280164527507621619048021354787397447821619977153335271217224972561800277690568956398221605885214847981813365156932349013518936554444536425149640484373352935410254844759412761756860189494767838553236673808598916295290529535825362077178889599281012802874888916596200769661077954923119550107487794974799962915593385234627120173622338874216346916780776972794269738871072330005734276127771644422736435745923460863210475644505948391849465403906134398129769850073391705530796214713009034591181260719574518786590877873945933717503823651217959043741692172536605437539364842134160830104251585227875725201722455138117801849666478189686738211326848653305716442214778218770782615900470083815766535399839037947868899500071759038650558125107544286398057916291894158010953871018823099017957753806245630543509422122810629081817872945604895208989167445937975318606842629598670751053345668260761222178112005707296987461985109960276432248870417205253693118478031121610314661877613082073435595764744935532531335501118842750826023109770491646696382992997310457574394647367282367039538557885405577513736610737199350719016345204151425137680320128800488304719001603224334140636051098023115247642672094640949073607037171497783168661540097098390288249150924455683058835264935088677598315475542224507157762393055787310954341219569064191385291729371475314111007282813630755187334676847317916702199312260107870230102878922560865853162173466508653458100453732211564440000807322538882704402735822702524024651247734938200505202664693219575720600723788767329578631568277758882075000940008824028890031366951518025337641444424380171970922588350123398690650401907208927413752473323864107205753139162071043406756103570066965436307744797493853984321783102161758142317686320875112876790661825050092014528226361077347742009356281607432233962546188186321104837180464709152598804278387700691135751694444544309380630473571349484727726198525741419673663430419742299068624413280024556187072933969214461954484890820260209766914070508706600079818494914044728992417727673184342196795982068387001695683565198301941026973264071664121870623880532916421848081162598044248685200281273466217858979375145230694234549077845625867042007247815118678161398594075557856386793041428938631236973215577006995534137858984142280654513138092649257482185710273680553786452783554653808221036849579738072019311020016793481383109553034487602810863141569093972985539413403691068272385272034589676566893095721147875677805187394103412117036012034128134595025629105775879697995248302927872798527327406575024049437445726002614811194365647543473144358262135488774468169831479550338966012466350499168842670166188745412793432035649562416289021750933005321663523450961987745817436926018739705928072316249193789724618207987913258538317714746804279325977176588423309304201350222334779120594475448223783006020659796756817921181287471733869387845295945349882242422344431017526633908307708063628095129340460667484061823432890927457175878642816792295181454949642225983791246685877018041023897556540443032574819488899106927034632057940852358528832466223115183767635010369101569237250306590308423422514710862739654819559151633473296303947599797635035656885463329171432853317830356589229162679684648969685314506002615536424341004743294976696741212089016901614070785044184515433332967934902346785727656603213979969267913243793597033380560523874692642067978167578493597902982353164937969012144191954978108396371592394359856645533201909352007772662566609385074473046678962274738365718581749448692845769681097787718398858268399254833051960263575456143602040633996598712261011526785983011586874897008113126356538187573606853153868458097027819729369610495185555875685618211668090321781609408200721298978285967686077474597159006929165627698563329376308410271069158665552250183983824613316307119890261009197446921486781972923068715925990857047703089147181532681297032995045151982576935409931556931141197932885004866726564657971885717630261401857887800052337429412741187511399299297227554688265412786345660583510656908916233304939118949384545251426166512039782416065593195708008567514386901750749190559996539042164491119638635577566838816450533997539465611430905303887129982788156661274906372829747502657784587347694413501380788500786425836993344403997552758258623700689128817328242828807157253506795568563197050538538924624704163960926196337698968755154841221492227976063701781490318018548111082408330405104572329003749422659228954430206508261139667550646553243129017608668149054922395686606792581755382957825271989835839436061736615032549163869354803830759616922678156994905288287275722311990711954990650044938432458208264860161146401395833564553934560678236119994997963409998996437400701094768107023478001239307872221493675739662422961430461345001725507041063827735929885129091575269501369543941714993867456464894759690119482142714189407729148491891447806488703667011641625489448716571579803842598935768227385110436766892123742383687699040045123719579029695564753717266256390913022136533220092049059337564218658219581924694755602056654361401517006820454768230261184496051395798853512346219342981894593437481721778751477228205206168411704285986133690056865181264863714585959153978094476600672727047638576822769246093523816680945949159030194224909062434068148950717174370377584747555641574287481026562684899208249237790543838127351521996437628436090705329822094814158684215460238091999007885730686790228477659329196383251979232496058908071059909900691156946526039843917204030193631872026676289849423071876725164524960525657547620691046441161528895329683518451656448970341347153244528629729948337560846899519872040319829364433913716388296459739664404263931145267392088259839573565492698123973459420656440270044966674794608530259379658555981427028665228345777446390589352425313734194249392837469612254776838802458408080241648793897911695048320408764975927804309580487265797868517738751713921925620925865593211975832343005458064192348348055096453304446322564473600183085834453929444181592848168727742480531732933275519985155267113678623726157521551089241237034973319963107826787881895608633605300951993445013155794225651599921107543197262218818755230200230881379063729609504841946905524978531986395645049631014103632056942546308481399874429327845464777226677973548091085107362056022191068233072821399471184296548713325164930874208055748341284908006564011949622813424103451652376154139208942192661986501658828466119107957299941018814843389469113690757721864268096994958092321646714071817921049190979877386728227333800066315864700474959256447201185466877433901501906928176008454727185019066985020828126651145283321884286835010436302290298748136887663900892811779154570257680804119041311735263023692765625203489423067615109252629228646516468571892492579316703036261951151025538209475706865180184295428417379169288007534095162620432986543191215935685249185131433482891095203689000299691446658797308415273182437872879258991873600874981396858601544808047204899712995290599567601687483741071945249737235174214880157294047644646912831256192284600445698517977174407475975250433223752664466911049110109458656733912458192582391843667089874912939389009603931766037036859451904173964013220956398292427242420073910347053137123925647562661712610773364912304924651881781958560702288156959401831183809898071768053759192777786171386622353235918926350117165551169076749943122866393761138188442950206064094713024041448384314440558804998995597322255532413184006002590596248766291851284147823293116794298627669403630306401648951609432996470397446476803017626929401422461082065881386943725390484665019231623467803825751497302364909366172837760598002898250213168069036455447807766212412416670209059562628673253886140610179872828140955174814992084777116623898591888698561568975930948851500511831199153330273878374730943072617916992480892292522950177207650418196403872550875226186070212597279173405197873405744154753228166507489387889367799365799409564774498391982026621323151700284125277287248278924157242255275592301878345874868271916942725186322969121089110625217714356771955785894971545239585671875181043613042080150308242911547522773096201631449417592270086756469908198346452938180330768420268325651843206592742134539387771482977152001113387618456257297876843680018397241532556850121485976048233909361468563119878018687260560606614988751890324983215191715060447085778909421913368573606397824212497407103455692997110719696158234831245332677174188123394233614839713506053059266680946557645691082818693153839350749239861515794341988609458847125571093350858570424833130082726308964039033084479611673234684603202556835568194508888917666396883966357051190702081246603657176329626346725136669268547667270445499972166542200187836607895951179766957694873317438126756420453240588668724276817623036989956144591270985375349815939518106397122577572884168836916147320180311760494542132433174197691759872631587321661195532558366522215171096652329891032858142113899506094379627784683732654806876724962641051403466972151328632577263859388391834255179004388008927099684503117044896550106069919169055104360316167177136743862006142774025872644943939189007286056890481166422564889053229590579904098562626465469926277488281749034167284942590458280445143102797862393444634020460799629501267084026943323198118232313131411752771832097483841030447840655661020481257723048746889393525822044836998228136242474342507128117594976286271475956434549969591146910139325891854693162073812040750259002640841915723669549085245808105566164017413001519218974397480473168829290555389882363620636402205197018568207052584669664725295224688684727941719787487013265056514278075449594464252961640013002162157383366885282546315520639047125132874108622553084729418148065081363732357014596464682563319395573424332261543534043065630666414427769696088669620058988289864976970466646601413974610690761866690244249740985984846081750012563060698825341820583274082171069847453794332278148678229235631682467588334573438619724507286426222880792594898217899562840778697298704317502805236879437533216753688501536744032226908574393696752561757604114777173156064985887963756028042094117024696866945166178505163653468254582505873172185599970445876873586449245991520184724338301207137733162080284392698083413705822007030186491586100410288839915893164156693214584865347338331878590283297063230733528566679146944848164982773184888688857454948186918579119803841963309411558822196464133489080140753979873043719297364377242861550461022485727412727636567711043512540786171764936885376233610204553199063611555709385170334693554870251753995670674938268919909557604045948913758824026551760967858314370195983256193091458560180726103381280764752563219648515077920487968270909636104028583328387370309915819592922951088356772965582108327814312947285473416182034369314617420964975821276127922754939773708251204561563814363226504849335092028097251161345976823532144577693894692290028955912648649203982605283345919308598069855066437404490331798015819742543554704872078917569739531900289020536357734377168659277096371055728868377971751849277456279166045289703244553661569955926909502139813007845973057038067547830366704535501102964999449290157983820264704442977483694809719996498710458981102059436502695592248205341859828128706284775193791623808983497507905471208534882051139416541447356697670462551391319099805766946771092558878889039630796698619636241109561180369364420147082149514617740422796779581108111068346787054666310116839419426194758828130027730982041983196176947456656217420810968642662637663481079830990592111112225704358973295527847007149136633257099010658656460792589038605217799813316512645212918918845237341508714589415121153549549319494736944103549836417434724577036750717131685696174442859650311873560880718216718280939278667511526665801598295828679363677359246264064037924969877635653323677460639559367829156422586243833855901271653526164620108729108850690046124740895624125296314556972137460902534738889651247837509839757980537695981382526275642123106090360563699421496588785299381938019545063260627659336256961608438434170625008217085454743037601382062241789352163472639004996224727221461541679413758961551470870567886977853283051052564655045274398974166373369761575921486631884292228000555557075808094461964950833419294510012093267551070011459093299268054792451119570153062565977162871557570984851809267064087825989379007717658175839035236669553006035113688742380669759455816033724322689515012181162734716933910919161935844091862564801314981580453637300654350657947715037427101522175825608405667388428254026457034322613687311226981804089494574254958599569256333072772040762120813160937455490502033261001903138415573853695851574878905910321612428592050750449160069062142745410692807637175560370498273548638828679377734655755058492114459352492902631795594343506833607500365288825758763578426281126643455550884003572094386081355061772088484729592861499843536562609621251733830995935541529635294247869815502884089676713319712407168617697784622675686582710546599985795001441344564608389722373271846507317916386676269967856919237371713121713836347132085408715934232377507926888163215122720811022228402251938942436482326613054893525669899049116434572925503190821613552154959173929179762431693568281840333162596859779825680868573602364137814096821052987973788657764560219342835866223363281977623568296664814834952060734339360198304698920998322481184003612738389667066260940891185905563189922695359279537734904330049927936534874756134299836846228986943271242462612341621629383102123548950339121156676742949422059358283359684272335841864530679978655334515100686845769663690293298351014207044951421996983108813698626481508130523622406879194671562057676482877587306972764043412893738545172164093772632253784745196433844534704242128861699814404262499935565698051789989860761427654395507916148050118848784642457181454530432832594836808444830108815261207296688467883260749157904328031840894032562229149119498029691140132716491025582611934914878317646660110125604911287498443746444775697782405499338413435578931839749929724540400644596808887225361607271943701765796012147606887402457730408132304266483436271217054971085198237412124153437198886924283581357028260539439835956267182376577082454228271276874156483533991355032310928624734526393429287093826518563026849355240863832243089948843288984351318104378737647403712511792371932966408528262484330568184918900143159493873507338735497280814545393235152597389984500809731904867504477659207558794238942213378724773133066266207466098910576213964387103142870244959621501611951693266039188960911646435827041050783733381092432150690287614026048883927123289836511019598669124605967932982412764201698546020422876072963675857784491314672652132211466640692040081642228509538962839993118005361758930449459494807418409190491639864253801144021497724881989025893804577980550523957456977655227951455874576310175858737876433229481328589984296625669146738405742835453322827326552016421069226194951534334968572935426496555526886008406264763425590985003940183079467925776617017314503536160684340328917606562478990873217052047629252436980762390512194006032837745371819491453012331688055049916187402413550049913838634205228526326382144164606578323331097401100073992986094437578314344440852756889868363983407640387185774181585736361283573102825910798109478501326675764682370694965038302755681595928602565849379428761844051900040816960985650429845416830518184974216400459393009203893265273172831468431072439049048487932885411431480898166373066364642047032640237172037186921878220049608896246805620324846619591698233682129958503926233065767799102561575809159420119951065799052922604187510182897823801946532737680335436294643167999523532948960732746219879722671855741144309415156949453541853105203897418823008851738097382101983046953455241656366188234817989318431951575290443212901176377383473663026854712661491606515370693101097227007583175409879487100011066647598228670926944390277384368643722380764946570040632306879722332862001220839272249988825979264208240112452289646283427501426335487081790064541713975052427774939498607517627219099344290447748706654984716125003898847011978079293462790974852602502708894406969051526294655028069382389392549331029579038204122344828357927422026808240180510282089648519133961712104575367729683364582702890987479608804031097664890737003566399420344326420925922505491215247291802582539479534865387119559163281419797027237577618439059022499542262012144066608026973495889681536001742267587256943105170150391067626632454799210014678749566061353511645915235964286090020572437477128001241436392501169632853110081078233180535255170593588112462197681061082323955768438379159477359201817167206952297722290949559106548262495569766466842454587043464596297405557863638774210778359196534824579526765655324031895102353484159473642207368260402235158593904985296678745253697603615249009527709044064661414027068691376940762287870416766072261633149757195449548866104632971396031204147317829497359673517632674613074176889373281551901899649400524470187698058430214940828220847011531820586396556826226507109943686292888979299879768278492755324559013445485912800620035186169658005925310532668545047569040749065468175016149218369258403582583972761204031122900496482560097112351061637226207392676882609459363353759338913606313376650002443828790640484348301182690198793698797322464602561600943257493589460022619594282264356815558933685416509948316965396264293021921153670943452320653816316642301478437308123660191149062161249113782400954612805945107361106516710241360127759225389674581605460542653684093859334458554402851664406733182522404444545784217708594055953288606014217789897901274293772503285247353271082940949145303088030902085838406105099690596322679656298920674447545304705989300382419816436447468534828705616753138144412050715358567261647311520516645023449894229246153797045428025307756737694650625753672254593548453956285844045085409237935634083724043735156444029781632507485766635041346994363534695948877819340458687503676769566447182389637490365290593403927130737495398957875759243118768852857183013253528248763303735600491960876568095722865274116286617365378972342428975922953161375972653789779098561272424119784648966842640193492818682129278910010699876406612377353794991986824458572850458735041239249996855964875333728668326591162180749022946549792323206854663536487064339051039884410563367136610928967411813377866269307668191797616481575087662344077257240576050104318461041911490745512505747850503613068354750749723086912196057779502660114237161662598569726230331396459303375128063105046741290075880980301893467952187926705232604255992636336269208504095269669584992078224732454454141864297848068788924617513659360897211899469900380591003238722753094396857171513612865329142248927632567790759844531172110573936545681976452634576441711597057967054194001326874890964612023487485619009470357611770704425431948253628885015069892321041579062694281048342265118818081440477280638280625553973597168589715172092430402432879792980478622272163488234788440088799984402776094620113038269307199095549372203323018101351713115223184819035753013677419063171818204796483085359919118904990921729526673772145920190035715067213916858247579787341504100755626110213998800880323196451924982687537180547046112961650980029638792399067071873213243711401942307376300677813987535353086227258355464894822236934080683340095659702904792249432805260833498854092684560627876405318084666726749569282363916464100906321275187717209209386833434452470485930354253788579950762413634196734455904185236119460981662661707086570468813205550911780387029650864953131195354537678767170409441264460926493408035912872173039265131096457579220315989134649452633814120273281229653326573943210354617114274607657653302643111991103767851379026337231251191407666645222273465119927857850320511437550967670086754455264285266064300884503492752326846247466267924212915482256187452793174933317549380128083247951514686301570201272762107209926436442389665030669512910942852786840923073088550806598851272098653431016898744427103155393632540784031908076552564926697920042753507915890793038785450791108894652990027558224616199191718003700926078779881974235973789543730368326174676543344394602770276110178676018165653090143670077792452523530342437698812977101308886986018063186959515169670812111380567929414782472513163323610104640084029743523335944490817315231452393888842635133681754539216294682386412236999804362017319938449996927414610451544409319533875816303292947626319700904836132899929967541231409558066397465122172299628620139855295283096998511912774834280467052414833856373881060870287920960634748637334340108997042716896400691262430226219471510264411850303162290649206153766377078084562954478215416937268552967703702026952236421669144901370468752828538039674071396365887088793432680156090845424776697204848123791154989467458879365843068304274864463550749429106581342851711090574326939233232672364744381353960251508549450394732299689006985377526543997107354813581608007514024358120484341111136571059812028928889949671070321786868688431710594295352564038220068581353512774496071045492882042305800200063813455363480624664271654465784363517538209999025990449709100187084298014766460771676311977687891264981286783529979406008856684218918662381291508679840129307556239339181406856173758862766744563043303300837089077785766099351691746840505217744610095385491395099605187117808485276534325925571290205603549651722151458095321579809284813584289645904783881633400020339336426785388867459720141676558529482050427497057280854997268434283515069826725495840673700559489089443977873236405068351247082332851262149853219832566945618799988565311958405691504499759201475621996107254570752895880338695078225549915276497569631973513014152878872809513916221165976950581408186182783044519380479588730601031540858302261357819240254399485948573430244824636604983852813763012306959635900376477489506073268256919339656627787920804058782318395792822526730192985370277678081635099448657620379758860069159770848487207104442217737895281580535077990763225940500908477777150348591652853071242939717872770551594892066435908829945120884876601851822216131840120784700771446102139765916993501059596895109310127850071626581652833649851340075705812041440735841104499424200649229407975019695632594862381595402788707400387806862732385630666311034757767936272284306107371374521756046467495293532579193246333052312760117421120859557718784876903022958206984790202894871946541871085337913736264346877905691837087907571513508647061357667053191897144821621491605318327453103707730262827243667954234583582348855777590671969542745110493304863023961642624964228032909293884765864593726192480623609840357753180750809527527997115216183913754827564188708624799805639288575917313870331737192427856942719690696999167561179602661972099157912459597634760890661425211167319041596344703575770167085204470629533712312130693995974468438555443939002574710915765937393594408324344271600129179675600844687337443549774275161810231088784369441404215967819628667457935321575192087630079134449055926062120052726218597892413226928848709236548564497876625681520325210361711390246989192682765196714115671379260330557720786183220267902595412562241147295353844718054744248513010551033696639520399733070858907659216046214552806450056034296536642794728126219527906001381954582753006318199831226143413768553735449602323935315991936419292531222654873003816618086414045011244196649501840109347173602696762172765837709329390843413889189722188858850314864621889629374895856669505960578866017292095487953682412143034425628216859433975764873742281668068589278360042571989290837639320653874230662203464984250228825493750056542275039845855614990293903738756453421478075757491179505555758414448932976571466357853132065750253732526442640847098380485928547879761192624706024399392651914124782112126062094030768920833199964708874051629225285958216080048718782516289874261192218606164916213867849314858600510250336548423328192725955094428978297874429275929509356860075958601028182067669616129065473583639338740712696305436074590863870452132819922997228340213721294566807536253452959741416844557357626858946495425398975683123270455322718489376583861894539278425497525990084661924439666559877933074259511952204811629706733957176788291752417676143180795345566459735882053535184925016449794989093127663576535740060680790916870111863569546754785171559875198498138566519327066631012096678806659147505375181366038921467314519132170497632823024466089261898177590849439446159616069028653957106352786083176602085763087689288304872519829837566463359708422146114038967711992136051480470225401207168460526670160376995814332602873203941606746428378039610329256841629447912152013063159674117356880086208249744092054594924781432448845088913860486023192381024188601300841020124868724035231077625716832971584564539557871546661111285512573006000561149006895067941921001788374041351231954690735383997302638891835772705463016586382347052924839097837352398393436252691962325156791338646162282320013687371157657522683570472134442423933140559083313204090601625750036740413401963675041156710955277900039622961202890616920174635016250878183456352821560585124599674966238160357155318238077151447081255859263389352591276923915537817690243455273776795745792747447415786097738375489587833475741043169855423544917149975978838802043406725554056598972375484937636831692794038480688875827081185673645294706103901979258509939875995292549820274087305750260601844326429787064911306477574450191326270462782858853926096078132654902877842874380218908397426150222333444722520929262214116267967730288711787482646146260276954788679101751738530471557260011389316741461925955438612253631368223046177063138118930444046280103216868022782010846266227203708308289781190051244013692422337444593838456026773898514954107933835394289960162484349265870280402793706752557865375608724875337128134707406088991518063708726710496077389037391040910076959475231203770207037158829109278054946403396204425910412471809633445535274011962591476872741008062059143988410595593818982163113223671604378526354232589186557749249661451959499897718536345752029115089782777174086253271444821751552331140106933886110459129736783337534350295824572030498197313225323323825035289787194157893358750428685530513503932300703588833117930818946974586067427741470423453158177739233043217089747976655854396325993941919113737648625504153417648095890998359556347442270104851576335078445739785203378724470752227555821869549884155726906513465686758181613775041171416059538122857619106316201494693278847908265372201914384952706615978310155017114873877097689104447930410108484684196566151660244183583066207711829766473468896290404923990539181418140215296709401952334175301917607571296089993048844931909387944570540945555569925789217376114950614526214187644804318477955312951139425943925239027592199892002732265096310465690033366281811578587425503502016860376554770945665008011084947631429471874809293936606212889368387731230709202776297570118638511861170271908090109793738418945936443510962945137215831380252303132713317243747485415592949695588217803030503083836368630856247169745358375435389083263572831653036626472812127147668570951841410646454749892298032439743523614530709348901262437491426688271585796699639570433066034606498489731622028569656459628075897401848037687059011270367089756624012417603435261416703963357123481726595507467855529406616378411651990208256139054698896696311796331362276043317633853423522053059627589412963836471824023272591650379960919946871552338469329243895375968515486440055360487218474131015229332956889994876145370581728076249120245195243033479257207743199454899128489890263677789589027233540744082567916025535427724941361313173085983843279237968256294128218372974825841405677314986600517522221364670844388396606760985312644349135317767497340483708003584200356479817566089246301142665217226375115237444705036642964886267452410182468833594524938186724441755127445568269460938968605715850509838883422147679717924477491780408203187025250758031732225254857571348522630769772600282186433588109826375494446385479272492551000058065383901644877635073182976625975296338175134627280891151926148755587552120644460949265289467027609783978788599640807203326788742597076880210799063227340330409380464602762537786140943029902277551095206376877982610261553393626311717634899684711618602067989544093409911155543405163136159407826821842550721816074861129096422734394748993370585815576933844532804671312345681437205879199465568982957090538545771476042830006203939872770336964628385205833816459570944672972943187850903922495946073875442863134114353971767136465131707537606676065799111764151075981374825791592419465934337399119453476014639285459696097177675813944470248154545826647886352504798591571361237910188355120741750590066923875064074357063121331954669297455760681123390000478415797866696976294781244143744648679662900079266882132003837592747381470444917734226101266913619642377025421993092706676291009367880866929692985273654203564811992930313153003086528958140520791910282415242783094224593205797702066326476908970690757874073606014278715056071621936982995840001333247596271581857942308668716048965267337477122102328422008010559391262996689151791779117344901807576610390419125046827330565801589154292352283353666792589457412154645751941978577244337909556986711788962210070330836944585098038590659989943315218529557787020479987726041344389108262397899095823859754647292668106788482970333575140714407094294348177302945149961672355403554602320635397920124921471371854025872681256551857005464742319474008712848598837942695310462546663665884965671733695865335845003366115923468471884766017134208368635455530646358908213852390150005762049997545947444533212554620796011660910119770977268583710382443481902747567142128385136789789311757593945882722032574537844508710906184684131658619595302011235955274723620217529374701131098796156845778647556521927710674648738745347026850270101020498302354219277034932140737898978905694308431864301125447076926848400746969489863381261021272420947939226937403634771341228231662585473017441165226596980321008202857718091560620681502190307180054715174518566618765047368153821486928268744299747673440131735445237384762173169045362025359014057808682611802276795437758239934741816087387737279011952122277980540504501524563287774749849558193289741845537796286126983599564676016967433084901556176482885416762781637635247999424537291774875074331479045190742412715953197570225456300523774489899815924283412563213703868870717665013029637942469000939016960699028682399412823039535514330178790743963612960029461132243241131759538023133504947814001838826793351608086319649515831686690790211455586292923981846028945288271413366022667062179303311738759800903709238313056448007523080293506782428245614290559164592196099510589461591162650046738501941759293073679906180974544157564827888720807461281023477863225379030683319251848915520087150271390858071204753156322159689015941352067034882119292719991266894883239859781957502574132951075163223294121263095119711877429489625750940917714217861217049951380249026676104758022122522805872828635901953973057430288603884961837060077574906091373650185651509971886247743342969316204385804163663089643043945671293157441165983223822153378209811973266333915573023571104712497621493873815007748933218649200017660459132116730459379905046312017372866081567098957785015026645573604883018291821371429972362883495627582719266602522155208736307035298296397698987711512407487024526831522536748928420355481053059224202156940972711337943701589796517021546787191927646432414808779378012464710877209965084448271919954191214913877145039807710884912590418881561209043520826084352323967562376743465607744186634128629340576744673209270755560494169384242295994578540486911750222507647825723683051483669803807296253986751166696653273417723001270267809170870623263207467091633174772027376881052601513912859541440462578677376412804921016087262201957983980351011421226314638380915618569842867965969654471782236177329290217557251095448726153993186534062595838695619606278548287151199828998155168098390427853895868552565280839571856748533360437729331552957377648497194996065253864778561129686212134063131405305432921177038427712231018071769196755460817953535111127360504503155642581826078585585767676724325482483536039903448120396366722249606832232462193197443712564573520372201400110334009047177202845226346522398126523568049429577512235297938569430686996171617743503009918852189708355633229710781717606445325992907364709983898414261368854766768078029647103888930255150499746359049672853893503035793469293021203079714825864329623463227816964096772962409332611694176102844629047963836501585846207495068061332628606052195090165314060775637269664370816213290108698702226621979611964431571742096638196529095146013103587691262124382151725107806140178824747678051615335491748340501165421217728481004676728232282220742927131571168852253582374738267793687299008142353792091565920457158075789260653612147076781797434163850966839608435724377162844596682450220902431232989033631820595508637372597774729261718574259727952846830920797288041804953642441456674033265160714645942870518816195734614486326933223376822120636930055861287300972483960376498296468011509751551908049095048666732659260837584816620326684206346032333411432224807228701276522182047039176592569079447838048256760456106033716970670328563856851170331826829978142296525320624849702334478106361563824843728681733602159258091057167336344411317654870252298603839409490254429022384492478524186497828678997956254807723927287289300693495589250208056246863068759981757070115072456093369631028123914708366379082852675188661500133517721042898445478292584844479466023008319812181282480999081306095777009955857273822350338711340099283946430754614339214428616332291242779999508300540907687690350599596076350538738294170433225289603339239020870967101984996945469672663835378690332149738145827899625676184251922863772190359771412257154842016187362121550721639506038142414607422758228525997896120238874984698434730804307549483074324065479362068014096142565837072117318676679412332206880118741875110920622065256039788209758632939574058865867446776002488807970858396769939118521293900780200368972093010259659247012672979200434100939335702831895821611173721389909948330234393067629471102960046015572720960975864079008569111079821570825069890204175649833405819547612773727014661646700612342922425349027861620504782131053897111724653640711489444268852763045079764487318241799214459389388464756543278428641873666226911236046015116938623709279835225286844327679117453125919207456034431419053104116464121791917552652786391826955070820613558614881783480009582221980548152951484556625046738731442026557227349183276843681809119635415249889458373390526019819111699432146714034166306662627070393234577640049547669018214543520089398163291865773896008131398397254057444104442695785973474643040657600453449058731539177910343618202383653137735843270542952930395146404001279500678365840536312157122360137707821233155327219238471395813419034971872873372708189259066843451076325658959443600610187642232245725856609261597908205616526520843487994972569259916586267927748692449249528934864036553129438882686966787934714084274260005498192708570257502884660444906542664073424121891054881839738024207548399703275946514758068008821280735394874830783199854337427385727181213689751451403740438661285877977089157775849017618401066625444166522213931299884010394141937581654854011135453518474251861089169908569993055667941590866989823379432301818285470344298396371627319046146015741855016127640969336756761377420670341206087938112249149689667549057816798805102108370748781555388271412105488688790424990709840693563498620640574148869161220157246921745746233725999985242476335038047780872233915703325566292451143941780383969127545518259789120328327296910333163102874940649227758351377738619298242406069014386559132029486275025109447857997926791850383348293674400079844602821144900728027408491409313240830492222121119058477341208374781179776885254568624494183070155287554018791376612602620402482880640366845973052461172081409868226373034453208074432116669968922758528180118174540644603952115698611763147821845297780864984577488420215687098410299326218562619720018456680694330750842514682405891709132764039567907173571406014959793599680688065957732216762894290888130421209377560772025026052948890346484632599086826990647360923457719689416297026609400484921464988353475237566091367031705857477034081890928814753060039061697249854256920742596743882636424592687907187206280419321494421482584308506228247307566461195342451946696700360837189887347080171116548783882039482511464499609712720344681599311284223157277951221593839124968689799078762892484570329100666709659196866914386791271006761365445302099171518080345921173461613019626293089293137177424669447650617824473741970779109855149390096033778258345575515949295133204358495066368486141396879625620373336746248215530374058749151060753455649861000224659478906841994409070640732130178027153159893230695624874200340948085695017868724122588223647711287082312968691785450789118855470070653763929312103182230271215687251133995116084988395108593929526045640563488189749214953273222933438267247044153918189571754612614336326403507106708538964603974277444859580269461868835034581858427042084420475984167582232838582527368483307930513538674653109122403790123463299869254291126228489165831250420284771927830763261244841219997062951364274617296347766441527195892698733920332171287425404903386586464790456232749809775010579457703005082177287229588767904032164148486363998531792851526436958567917012188958293547665918073759625113062943820418369915715072639409843719077213441068284071706401991347754880967677702889134296791961285341892090678205725657728824160353582958994982219512504380069277371421889630800216864825298627334797879561905559292157982136118767572895991966089258760870459347861566779267400804146467473215667828461422001099900034422024030618497436959560934836614683145675752833962727353512816618415428442238493027376905756939125301113076026982417520896942697842236902120956100820671296827876921907352556794683409834518827707271346562569989297362117308691851558306292953341340340010596483803007909919651994064030327762333773085244372760906210597481390483476852288930776391990194512430494839335443155858725447633844696718324660192749088870693347792919952588609000185031771352525394313311766580204762096992466062591807738086791875789133144240565871285624431242227519795631914729981107482377462836207919906904820090753867251211228883266203897658503754015871042191857520974094142905964616251853192166594720450527642397057680642436926002381068289578047743186561777497910387794909585069049407446083718011341690864449815421850054302019099598567144246005320985458039159525448605838480304735253417787476284218628468033798530105432000532369039554658952196966595898022247575682408564134715523535012658493533954453059885384163169237340619180314931914439499098991866744573087874466124705221652450879314927721587771929198085379332685096732644276350341567580422820884251081386232322688960143723859753700931672328106232805264100237061101159702273958565783686809419842891223513626012201576261080495962199766088814114892424175469582029150007960921506496232169360950169525525843782847506220758655530233025815800348772666178948828615676728634019298180481184657343433433078311841588644416301714780338105125924724444037608668193131043131909658972863944846862548821501545089867561731190996609971019708189220183688160702662762675029969085671448754926845514885842760835274789321332035608265844411163467434659362276487503988743243083578785805654221790451190949247643684084097501137210104902136201364299038187077144562302003134345378715168416920862005904426711714764025718602650721369287786950656198735744034753876215652057122284982961825630671246674090483459405020829625283510406588290081265255069407118488031709652654431120843620323408609568411527447696163939086052398786634854164037570419958876048249526675937325647190581502271246021376258591608122287694777868683681169606079355926046138925886960269127938039629340450900546595249784999986355830681948294625944436797197016687707006970875220754254490979173050030815279616050209637456031546788663449050749339907584831344828006716407430136964999344745666853175131608616519422898887346053197500007062455344912998128485854120150636700740417710888868056492804696231432412598429703028486174532309778129599752854773807768854488783400411725981514826926891429506678778341640389417639676281832751525576181216725039171527639641069590504296399339300851622365443326076114451646430789548853434220318809452142005063298954237569331101984725297098065174310661066775079419495032315436219502579504388298434942385748280227338760029517894010763725391491286796486901332301201231789349690863079878986100710288825653730191925321215832099654922842477892856127182331420048669520390532124002386328058783362322591841910455158034515331973100671346610333917607909995368310310581814542373975322211113059731418881815099478900133872572398616276179520029984170582092176757763362734515300867678261363098762072758728967720081511382686473033639247093165849736102103608800951635196679237279467061220665495902004703615046920460673441539939096358702853475822089908485849777598692264422362657424460886494479314690878754690585501496663773978621325845371233278641948139749731593819588700009076771319770015538853556614037549589330528942165716842051227402274580121744549594312844946832098296930974131127969289871338592948597741274177005829291852470706698562605267057918867005611793060721724734240479859874865917604922514796885858327507119660969255779270237915182148284360558143256946895904299175446692307901655307779224414027943438075318562323461080033690223466370102386412386370096432111383814793160429771777784195325448637765199640778345917631056258684647343575627775291060992129327922306361648032946554289477757482978468835330798778634404803968061271071009179598293831172688249283200009904892631824469263198735508946311865262412723999059277928769690354562816015337225179099785477392964830680099509715586845761828184971498610888605931980683175650678226967298904210868767544259261737433676228054179300619601486367823012805026584383905344737491341590398013703509524585948844991659954259836563513759351166197167753390436408203138519175177349276087077513612699482032000452008459634468637818505737093577360468952196970322313178049572283487116267541705416104898346957624126417474972817996873568231079320667632438728470128145889095022386154154586947797186257210547671405832956011029031565820010682190759254844424118141458370431389829920945951572232510736296106889333568013128627053904037070320295984884447091126043534488441374737597642008440021369249374404878675546200517411335775578353547418107786300439284155084294287332270076526556367326882840750164618920804058051704462766945585414641380701865020269407934599154134041540947750907832150080430443407942594143421004742646432717045392198379851993189984003198662809654366768275871355230390465722615807048326296766140943424950249432086091281007827298412842404597099618118455943188860419437427904484209660039447091788389220269147660717103013535386222357978711277690454239897159097035969986985887490069766508041625696538032352994060516553938678310315117834653752578430569226726589422137774745104263422575696169441894394224534132649827149855442121059110927755514928485675894373713620544653757381044083797912575689940005429832825771641206400210216448335582991218919283818574057381961409695954953030893229113945358544144769308339049896597276339253565234665110383472950523236585206278916482360049125858957930371825987984336922660405393765640138115437225310702080320726542202249823726401211252125219166400557757309146746132153194272908450918600887261440494843531819543747898405935491874752699047699435080793699250268335399803913302049302137071479808822555320014999171801728540902534132877624841267734463444313064619903469215417552870264399896115595454257676057693188796225394600222712340290661370287367806460287110133542767752546417978148039259106453910050243297968512691140523833712841603916374834475937776312269816702872836248998883003917415240943357848455774757209109290562217284254212546856799961372462565237750095166310225993767705260236867250080564890778333360091058326198436551281663493202361488805637554033083390961977561773077766044911475384823625045243189775041689592962641460378126696595262495381322739987475603182111618407958294049927682979164093742219942164856704705768541276283050119317289402496869812204629710323674102906240276021111209555660446979037201984946078862101336134765438499463886792353513214627714425186477817892956883473068650199018590603652707863975947134266178541154420166111829471958207595533416737128103532018630667657358256290393132800016259576197283526364422978525560183887092953100063717850628632710093714689863725124821986798142110571090410566855440615447421896913910322658818383047976880799647015460378665246919546634343972921875354836164360698484377230352668086124765402847482216011020548696070142029229837475278078826629215892653575009241990636523340742878630503850634930658530986682616779863652001845305020488572713200861491136678631004950971406921277155913934282097641508213823371025411928533682529929763106885983213323653444789258288958496839885818420681764024100606671236677587042846818145817142794733272581492507553081101412082972933131521964786362072100966884214189035585096970029811791240825312704095767621023725290654495308771055742443350744908743940729147233674040461647817710234987608728201606184452530486925245551509392781602102207870442620988079225851762002691930432862871898573444743337314927817567772284473932832474869514940813534742799102319864338239051494067363835790203569155421267355967068990039629749888028997230447123339485995285551429949926694937693664925522946825473951814553274360089713358193027108209973665334431223275124035460840932973556499312452398530940682455666234220116330684398582361635495306711527225082608973722346136429329705995713827836559841914286504996606747265171781793132009688637135494807613654818853574444109278465951916119047671195540278564071288558221845618460602713373141429871469789158209155451138127593345438362909797467286704493616282706479908413588804305631496962354516837042052181332660240507758156777232906978105846334365725813063261145626508361053813618430421286681644886780661634891043930835068288077295228244657355195288242085747286523725264125384676059506012363074795653402427052685807940931501370594106224725757101835218489358527118609489360433787066761686326474995901795302421091275403308267239097993984808247133779117152822361413444302814840085136816374897100786702124087601889795414707251026981521106643984877954029854205997615253796763713162724925999211643725074004538469716828917666156192438272560101427186164727321384057205339859950228160001522110249031547481500696881071696038432240385267062072216984173367170171565318638344467001383449470273544211025835333585745327260494987267074519871104073439974949927458849417395174272897064881098469964533741885919310136593130065454342896117999414264085997317477723549589715093252717885289073468390533710071139770789453254372956017298628678735003745316868724973834652706923671349656968490786567434990266006806065677123469507066439109688517489269641440214527480351018484770208053988509460990586044146491724350930136263058470814817087236990290330856545603200870471432788349746854099887724123434822113771135959816354605622432488343991739825549858423939969530557575186154265351558462304933509711753038813480530241683874245429308962978240696889239911738644983528235852996126907835063600802238232239333474568176240829420850133129695063528068731840567231512971695534809993165591834982811770490714100552150291145748981260963051399241603328706997339700062589943674373005163726429863859928439772447669322382569533480655500383009155110941917078303675521481313035439905271666708945628629068231665750512610419710628223698233388245282432038942917633615635716377258901078881753994346109920160013483141147126914036271158107087355792507064267965674357012845855600552556371138818274776234765890959402152093226453073940615205122860461996636292367025475740663493252378584775873306944360807269360352624361961988380667762546154928039366080620910884020626406375780686989026705251823281218214335678309939413228242491657504554974925422711454255294414734290026948400096484876078983411609244051582477757782312821736681085914951269521894490205132308369785868930961790771842612680669222951242948002102238653961618011985758036506370808111330717711977348055976104154202592480832362013595583492688675155013281616546953940847509686638271849398205725744083493299425456773238951198479237953756109932415975249560193108026757887297204454141773827910926577057903296905981394142327042234900261367871217540748032320339594963004661753153413903495548511244145429860320764439651781571308424630341177740046383285281402093659149093044554528312955284916397565243885091575665195749093738627908919375587548697581002300311199211763782323392085232609407177229144187225171711295029546722500578255772350987218181972997468199766980169315557049595429300041874343987144220520267398080690766982112372256846307138461355884972070702127379558343380000206375967662589754648567467388228909516897044660655313855923376993486665095753637541353136868244861189816062457035098616897247374779828632089854566520353211223634003687219850102077960352667223515078862880251705116296399088185113672065247676399684590013864933589713315323187105292118541475222439144717046194143900508767768716827894611508429076078805017294660415508889761110623727475655584920495126340431446873862408971162826585696409468364959439026690109838785660258136574942808592024252879305911327652321856663673738889616262829731148137439655880430871615783076455392684966862480764083379747876336122515783167019122068260850304399348999519472839608318550443509389161587294902430484795159918088631292109999456149728595088522445618676834652265704632579871237671951968267827023937424202599079720071736506039483108803440821582851974158941348579215276883890242732996384541523570111795232332826953908278894981322480225024044221077258424441267389128025829549763493047975412525185967950241528813699733408632923307829943763854126637417009041055970721237165753955544951751614963969725119102218414906710414158984233865049298806783260069848609561847874278153540089187916845825726412243356309080943181753752217635500265040907850318662210665113722748578037596031656740674239188522369859559908122777772898573688349330236520741469996549234103037955495287297184287078392405046814476385438069142327959821205212553680474321516896023058769273189514851431202452503947403141355099855919396134615843827947253815800121382709072988306585756037320813925036020515295009146452717956946970609346579895661002380499272330231016062149595441065172693582631347378072743338468015557619872691516966687639571798330536504035251235841123505293175045897938405806294008384359769447233757120701717681661657044746678274352967156546245872652340692065283693297763993116026105047270281802594964325716830427766498269991711733605902866727367246662171053658357988285114615856907793111315360821655299238321539203740764941978806244195293610357031418339896625309950672800170380146566319156571517797802379862095593428594727318365865573895891711021538844373020440758449879219236538782535869898092724109864742445846791530081883738732871437168749421496942173911197899880928211576495269118865209091317524143063645181195464995398835303638511817641412359248090645954144633943085294436946429401986583300965253003287514039357960368249901152951782048819822508086009701164983965495543103827592797741472852859128667806670604392876131662623730296283095986104231256391927605472706736962861891266415029605547671983011058579699168092324880119553530617499252361897958346160652009268219061682989706389130376758127898510401200085504822981294597505400517715585542049494796654490992641460926573323265635472999227259837485071874943781806662563271529078550132451317351857217001754059729266027327961690694949656005182807155507077063831006750077119621397893066320536193614164856188974230913359629385720588849566555233350808176657011205945832544833810814620847254013620667802714987625677604884630643280102631675739513698132780249879259856967778956949172545536013631646297929532507328253460553199778991488686010188704250863780603802416361119002138434329225737465825854196602932601121137227096121072012670220291456077578384785603477965682208906594255181515748659990197545872470602288969144597968611873189924123224723896106393000576571500549053002006220624083035417738500249367370610140432522542059133840737119694254350082381762493594500449291295876581046256372237035057794811178770189105488029800641295196005210663826785936999769867391349605731636209512992400166812042877081576607719334308033124103066650620456162056015091408584998668772739940489786979585339336865790160830307416723170927123925890897214217240775430319380146272911430826039339929469145735108521271477324841922140450592987613261037288890395469394172721345663043109309569607824288421122267450956096599506418123295158120813941229782011591503991252013797773674764899391734333877887239609930349355775560593589031687116227856170029395312500458337083126171297383662046740781986101510711075813841667238754938215355974255920365296050600930487735341501790402076858730848676513223855374030371235047094091636692562135811562390383625845198501975992759511824143661524964280181038073029894659802125630476299146240406391380030410061492063942380847092444659114031319913471433250428618565256632726549281874482758402732930776064657594312513844087980997760267592640296753435142733788389191408562212907978199185800432074801696909334057449349553931520407518613059973003917771213742889023162326350204763156106385487162709911380940312634186397917210222420509968807168428524301444074095126073088027719129373832922819110637043330963166599877084175962088579530342456164463616443227843999851159337421705335115161599846520761315802401302779701424095621764166523285926322128899272993127654431055358481213968512823795632211487459362979766926152833153850086454299142718300961092082982697443069054713060370726350002450438372298443265367061873497024427871521596736453800487774226930092235251870447751597888523638133852273327684060705832854655819448107794680483561388168398649857192634582678989575971676533106100410710985217582944692964367920093659157143983174794743123413361362601880376660530389665395084963993632942090937910354229737084671509454293576413357383187879018270822711283554571972477266262859178019413783087391908160548240418929009378241220141120408833903343898544325330561061907894004650062745974089769111530241802062333216953000055746833587752624214477852609296090493162014564767300060264630288669627496651099730628819834282256365438341045943736728745476738775008739873305416786734892391282484051806439260756014927909578514370000663487335874895449958980830079406262089315426953355672742952379999574700995650813177974561836792930056810549446241820922842202053193557457183800734656107958430490612238567434172447188948094774638006540770909406861223210483535502485500612031634097581683882431343050046559453188226798181753752291385853397303228401527170190199166508394841925752356344569598340583458070841640270414637281272066192770784187740029571406433519808670209227652288644293355751984564783356491412043215324285530878429143875721277989605545984935445879014447511561893062848528498475058564939783078736323957127209834541805512798607147842571229258317737775744271733461903268250680977867725698377700678803615396101988389202625074488870339699527260384705710470985773858172422437213238808649005824507592287432707872986120057965262959259469971261961998088262166279428590433787937833157340748938728708775925975747205913911356443777023211362190409932809705245246314976221284760968436407989591942073194445084138274193666266980851128723985316838923402655422645498626414424844716455728395755571092783915444991692046555617021567570383313346815142366581958531250678639160110049539171332759117026803961152919512945494247574129492317323945010858127938464016186788424195718813629592371309347899781594989068876726099310309959365285137006268185556032415257531927580425242747136078846988717023135122862015041341965339736909451487135658044215758915332215663287002055173411098432195345858151251429175173509475255608711880933402652604491376049548321894408840877186663525486880173347998735839706889224179725018948810303180958870001367641922293779583865025337673446586116806824375286331643060319343185277077788947509924189397895702504393343161928096302969515406682199999698742149972749552783821079946555236546939836038278352529518876218095870918113028693281883822463218257089749312837832173832573065068426971791123114479544618856280017639394020174219075392018100469819406068092884877237460731935670945719414880267907575360250861008889082688336203479278177568864557086782474243982298891821143918520975186745550058053083120177935077859894382189434329808455489630202484279148291408414199732250508129171514216403638942182797263612696663003595810751620514525245894517224385302882901509817338717519132865328600409776704201728606062197576677206695459731940895654971343197282983322376487279391201587569590916677438522008721376963403524116664169696796958072675106407148057565181534118339337822898420156930325055590003195383805180437126728172938006684576610859934695483866920368212873423776869703938649238840691816590415827891986595085674235505902339110561123682196501623947927274656762277910650977167461514923464693901310380305993782402796401363953067191938405293494047508836213057462823260739304201449667748841127525991062544043026113792179080063341821362112625469276931370401735951469678685822877620821743532527182319038969920731428697088688650546677306408346085397159757798059113050660966222077368390808369109598030094696970405822958487655772751618954418693056586286646877984574013091700881622585326798491469034773660057967682248979785033291936664834897175822017673223661367631122928291834029622636713276365126074994444683407176938710583986352884886379732146586541934389312268243218422438447939116329587623164819115654495575136765586005893176482329899650460336482616826715708337869554386217401620117062731875146450418204967187148103357282537873163176298144154468071481963429418422327722929529959637062436138081142273438874345414288099624182676684345020222724536263298447690246871059896075079009734509132562200025104584977423682135661452787061137648372137196119847986264606068370973830272095697334468274163591105355102739565158320838658940684223487829768670059132294821241489837336904415927696854610267551333614332667835732033529373256366104021244357802342440186218797323023160165183104403511491765297889602490194141046708812780300685402518340352715990128374642027276961911476563235193652276524162482973643121325842882216478679387678681610440323204911176987723959440182398533018647833568626756061383650547131097003257681474730337141104531643487523439724289745605108516465538183321617455792442532100260151859667493118936679644384457037846949803936414354210555878492846350779053235206810886845562935556633810860292627172245362602096459032289261356238490080177722823826473346608217927779486524396890730766100521531108511166925742247773079416074261795087090204339032438975212445994631260768576130286038117330958445291594176818734278550555126776886416217513555818897930173106045392339382584614062487808390539917433874529977742404838653346564778467468854070548354286579487188862896799881034116486491808144011590738379232854644036559993549736852458620551108230001035861143455548251226981804282598074708478646135777429904423520266344261559782827373446983052654578641475839971184889947189691465246548340451063975827507552009312724358806477638336320382198858085436079755099108660516574577670356088040687697920487654245676265742391413744360025259599777652793460261651243102184490790517510900159053322318010332210278669042234978010057370293516464138324356397568435686400282189625770937944352757559019976913250648832549282100420903533183831183784057132230259552853622627666962889700923962374673900121220582891076588506709211242934342577151784175808129882874493928751691576110254282058767265368884401941986416657008841209243362175134299866496672083079044979087306963186013495689875305916808621020813721034567191956546279189049861890466786291039917713512255555454650799578234876177520151206756067892849827658413554448338899975446323540417704273768835873118333090985199099310521852213205004991405126416115156491506045020742068832035912796923444827458080224138191527340130089151856202384042650130279808923253408583169349484479762238313412570070301490763239874119439739831205317837422650905848933729779583293251900366935577804904910833341003734803405171306668551648314707525320571238705668465172841385621027959861346335765916583324947940334182975101064305629982545152614063276322190891063985168750514492576050292291339545021401918615878224617785649277515950851275541274305082238628329446741108321873184915940789921966736606494788888741867315626589212037913652532697895879653709945466443954917416809537882896881137797369947696890288374488541187753937642680898805936895470713156619921244987832394125075085627727989436604607274174895996051739581280031862541663179065757514100407085553038942600005769772173087502214317119532181450499566091455357372322684829332472268175810920201517818570473747611162733849254145603557917347909374278503099443173197626401584477190753760147735280014979789750726332901741800466500704855840705646630353345147599645018083599200048323368549636998674860713524209040134602742146111532891410526120553560196067429524695189437374901134017032399584653444911426816001277192811802454683164388967000488808265817936921842968126991996449226808892857038927324418166166945424857047621269054309468690291240505225604248708126348906271932070107101797724820183203732958820570124506873988482695625464064509701488676203652413272737941742722688591620797879220500234438276313334397275457165291525973146460829955988681838541188762065929717486599410198102164319543662512416555219411218156765214414048293496367018737658486241456116678661130209702622976677190460893192887607309581677431864724462051458060079828711029284185942704185473732024118472326989775661946130502665013619692602796067979457108071364715249415448783603491628035843769549313635843531898853201965206602227476060639859933067545246871226431541385648989908336804815986474252854670428708346537305032879840860303987222495502693765916135522539683194736213784983421030670148672963100064827603581171190568312909208966660872571712280759091838402964828844390508202163106450785880881860233485812306783649885517677080954821651107008827012541627893758246598137671685097523369485434871657540477286368381979351340731822065004181423951396280388575087401612114200310477852388227513422288562044937163530519065673708023453647144763875734868310225936367050745133793061562606689213066137768796022844581126919715718325719282100138738133010417273932636465144288610635319907834644588167020882082517379550610694020854030904136213584139523190188669946966362973359852437948501944243698290207659423421240199757956845099737025279977689093174473289909466564880601689748960662247319696750369622627565171374661717092224825446885249908309483164020234270272567659846488005059820839988666267338813159211848862760688330929483324204205426319630003020877199750552271188750003810208972724173178615452935165341794393012730431797368236127798750627016983449160975839148923701111025449514237953949001380232400209020523885176281095350614683147445512688826540205781098896842104590388243479810268026791755629701713153007458613874290404719715485183964465879701259706066728992065720684007496507224716518149569707584117288450624787159558110495066010931590555021330905110598891901975246594985270269983856983805304329702068215997275542732098807042600740833803718784669528587966717876112376783695629072676328937344215150516580789768404047443327903616011873336171404018915132690984760457382879695792318794566511558605106615192364877852628985114637287214700017454254298128015066636855412581422326695679897856561958892086879667003070303194636516699680411093109170029220380389038046684860300926142637347704118235360058028054234599866762541459501581528424530705979254625487476337129699560835608045782700216189145278701582181343120796199462241113250921412433260337707452939217602861085842062775936190727362456601445428185289395420906051105989899433699870090123065466907685076328251247203990695994153708947822784032142377339148967723067512887872668702534091610736117829072842516913241857411621610390302215778506620208319868549883899567148255528740067937233764380712143039682933425849368524912494412490328231514536629979001260980936155443066960980140530689000447722998162164043522156088108799815455170848814911156928543870934110179555374416882677022275283692599861322505173557692966408717882780535666298671509114357120665661472586424043784526950730975211300777370512691660008212770168644436252947264945488725281372157560146176568402884724031015573116092281101377902914406915155266894213427587445017965403006278950809989218448603848960613263446597703960528774045381869632852915653946944864665368048433991369938728293645500425265771875190463030733894098508045509601873818004495581429223799448367800920691151463617804353208139761618927370107489285557431859721863151783539023234471397702300818580817250356368120109687288191026825286557405339910653081048023428704052297385637474373837675165060132374593904825742833147935148233833376295913693442836070431992939730155919149789777125806713364553178688863410101781677853497091092555165471762098374675459223175517272748489612836285513308217072927197490475977689608887237066701519544389644895295758087627829406561200961073530777087332797914284014234800566021702630651203162291591435267059176485567347953290447275947070897050222213378382428031121326323113605986731778833325404628025941856473601886253012389588514784765634532342267638812177439935114512156509303888662808758233129385616092693665560548864440008086138744186782478758815530631056486839587889719387144090388651568251242190218462442410222323782782421276143640752234151931843860362614532999762937402500403592035324021403094517720750128948063133625967561841672669994037858001227982655145827102203483632054934761657175286732886715980247842164242280344141331459541425638624865530031733538278187410962439509778516959346800802295036035015357350609244116779428173616683449143930329864321010699347481954360631359927367645189086478925141244549959805857913511518402663795753880504981612738088464225566058908841769743511974462575487030624578403687340967495872852417064665016427840201260903106339778195367177318910408299428302121847522647667139961393340690299191729571249258425033340013630747480948165601104450728031199530472866252652963836798673045909617905249572302473372637393262995006675297441528338082755121874934144551660399915752719740473640339690001343741677397374775492628589166513733013563618819626787003647207893159077451554553475515735860493455832364553259359048691825964282471984107044490749796728432753612033224036334870189741538730634351041300530804855874228146594013379055818223408672294491827729335334765348946003820405887424041928883491741908221539721175281429957297359796388651262579695970938235659320574347047108070837360029724581753539313976022314946717663091373306222829338517728661030465179258640229551576142087029660457489551787604583822513021536835323105482013066747535244580833060112093518616837408423603950068611161809150955860307757930652813468750568291459006588369687919610731754105929514449860398189730623602348089889835101491054562672108575876615424211703360749132801953583098464561426580496195700439591736371056951022007214999261352756007224724432322373940103090409512408079324824474620394791656762847894028176454317619333369987036066513609366683468294569527022190130700800391131564717510110678822795586950650774790224063639821332962512678681062791428015826896357174179420494656619227314124082946054836072408546056467704736809939104171845939160532464059142119033211769065712589468110665329073637022057620400579673615875050090333217760903106899515752018017260997412050632026059767623448020975289916013207060647325828783066181077377591183833939078746100345751893794426517643617283922475212325614258347887532794357540738616337173808425685926911343867211020124478720513969391604463805702211766186646517499513151081876438410700399031715975047563202394781179376986632246452284327604086484691997180903922058144274102783805249254690654193590522554698678613115108836236962207705379155074398114871866223267711631507495592981334991624940818748989331843500228315378716456722710055668859943815657254377404431527901040478429693436174894949147874525756364240270867700935622101439662430393608219255661781227096712789557523228733267009808448691744809577428083870904083738802205150442104346983466638855822261795998489382602505270251105547634077799731625287411547146440962953725592036494158383927219985248078329310315389018164775423710027508283145277452608887608235024183539032790448828951174725859755278408281420407289448848591932042402953982249818578391267663183596401897399217126648156069862950322985901411602411346730316178059022571381762128143092493288382517424634495650704148600065540057835510961341635328976398022197814389119566470492360283542727201372163878995344318386248956958842683545873556900430906864555619854034969008211670671550712814369234792352310041198187096445135012840097078893135932593092101653215261123055576529570013153444832622712421725992239456989459405769936499001731342828455112943482508722363882165393777423277801597479401419859459646755845056903387381414049352376854936551601670310690367581396467744330571132396571269219735510317934352630312300689661630188098297735997012328941400790125735908122738646969697286877242003851682460356693705664931243536884196766752141934510889549407160781583464672648668149120729944391462433863839739751451330512215682294612968396021557698719728720054361487537103502715306044246308067692349532637337608274894032680876119926712802270888209752446116829236070903601800477314676558885127640966318630377758617807644006011783408558423166491760124075690851390928085883680617139276611375949062739872687719873936823491366117231142663821860403554964277384526375115603884026369264577441623395665194417918985471510686944244795535652444405503827219388424259473422415078830089403195962886717188427574270982094728364394256077560616083169713777696508186227724438157827783201002057472940540547104121427856553680869262433070523745420686655457070659640659294032026640065251474198053041658329642009279998180421651986500750674882951962833856235962690641646186328046147989429807540663213265219797911327322586536181188601335714432043901333371479461609652119180407749970047330839922005457552936319680600784474183984185020562626296771036250874044058171900533815173499681738809311672996501352822632335025323045086122962623955706323574008959690475703103707153810216510932340020577185064584922810031833060917302378106354636573323825560154214602004543160646517438416225834291885146411931523191163015773637226276974197504701233839274734813345305460049644014084268240000781026071743380543539354821245834844208744636191556309597842329660081205688387337035545329743351078336545969326067560006577082594396499867319619377938603508643998845326024807536114036806681606621526231864629953773087896760703294379560640337220588066232258224386532109688162894831565364303903354018089860701395772514621573332813464430651921865262744613990686482450759198447115909965875737884868736599542325014000821491551156442509490361729450239357920870699569809958895267744544486908512445044749833849279352609786681509314672926295934491546752057166818874602007685481117189414404965844639370575161697775976736526440093353742549928916516183705246338013104929931703785098086548295871791213998388977433232676919485353689302635258447146335362898588237239996064352031003641588178337229528381771171011390691347991068116641629528014056815837501567734534141005886233688363836970962952295560861706355713549210819495518396404314929349786036394940354871038054295815125911991628900772540829146902516169209351167190239268169536324099023220647715374722829184269250629337682882670710200188141747788130690518207711972380065509720307320334014723779575640432922911516875181588052490919445967184208778521696408567674827903780801234352573775048081483103331335199073422326937218805060696433708521697883377908780991039541981130426335100858099260071466701435969860093256465150441614738122836170841255487251043346608445950667584058892824564906258846959647014553734711763041811611016192627350509519048578099698145329865205769948714325645977788309010594251063358224790011552196011241974242537397031352441956842921138068983004424130100852256322338604658369427175581145178860586197591302390293820107717360143283296039549417764405733540119032938787707361798830512754824190048656524123509799565526727453376996566282840931897007803638838457725705996074795186076015272151599112532489584943341042772270248520389567849408670427251022098163029281900211989060603233738570849853549456322898934830393545132223502490810153554344895087351239673191978280353037446937760922113991910860434546871455492215740044778013064941943225648076950818676170447005193495910008022632651477235424800720820971334537512667752410065368447511521012257839158534966614040864216969807639231717205285186614373624516594693575801859688984694456612459007476175540787929520880190907250513864051734440498103611918151036583883377835073418248763115344787136628468700360964818253302695044045172478128096170516206761135976586689176271372991323459344084913222793047586190307344564444622075964060450703722998449060389192379273120250518461888629431343216077078331342710552405156766141090569734026162445499047478160094728822626614308892283611666612655688406113636373564727615647557944627178087833849625224450607223191910657302175527256146669800110283282719595148135547900564994829810756669808667320827362879639281727272817100927163321269075233299617628937784819065567923834338471474735419802790798620197316031026600796385609449021617670531824492796208567321827513966423548388563602609614169792017279573983249618631811360386668062651568553230526846478829839192544942355701576796118240733932435779676719340834290020959837237843105283802951826927782734876578491678279602405142113697046145666484110477578092417413659109010266515068647357342386300441920781339579744520433970289210679795436657953169426641949025244228795940955927065716574744486477023635340557889519604019651694051903732970742681912039649246805828379867605867735913146324624745678983450449658755503416702889587433936518833427169859000597695302900790237749883449864411916087140395697442842279082584719222751304604276184836029185581782034345326768160348370482355455042856647443420128314713482327820782565340165266870296788982515740931466302824635688330481489827305752317817236572080175948514523879801880234644968036418039582072662205299952904653306946595753564667373069340044515029978742136606521699612027373310035871345806246632001342267565568832212883314677350321423379750055302793310517494566031871632491597476481859903226372009807550993785911916609300513023354685596016483472326096397079394964290299182313627524505294698576231332629418144524596797808112366467498608703869726787629908807777197674749324711474981606270674320909691572564035883304221101915755744396441892923963200927252917053786834619397056101865879395214943957323929682459942159041253474584959914716389390886056557508466489884416573032493784929447537663675053286665440206067616473770440111347343007146859116924110809379044404016712697273579898644988110007916015262350608361922138580979881781772536694946570516388715879751203399409223855352933702137996407945305389542708545365412036835893488066629838868800630242952144990237530721786186883731689769961995912895280166608829686586485344608989671899912261635731040930061973800097314415159267832023622434703048687283308237191155658175654754434629018807479251308456463710739858905761885100030504038255330708692067537703615559642353266499876493661019988633761146573801122130210447502454493019885908494253898577472969886108939074214008430120028789939798782811170110322494526773565808228980913705575782881486161581173356437219063488041334596889741529885831837880191359468586746741616375896452347550392602761687106267364111506732978422136929353929854948264253379987869193599912826464369929019600255869530475175697218639309986154021095269031139101763377244043863047749487845325780507663648522936884821552741931875951515875259146392713554807943481358319594120550631591111741438637531201467738486662299565318993393971178351864119495845956762773629656990268738748369293082697387108869470560546100884694751849039446004482808290696741741501128209877436057599070422347739735370081046113157285627007022449770607262652188172294463572663050245062194228041163992910445793876213059251133791943087905963884185354882965213147167733654357767519271963694087514925825065689410306546832623172887558898963473285534183199436745103569972947307544402812994435598770960771335861652325583913791088152688424008632765572621900513839282908403804858338804095103849027098594466900432065627570721185832648485629528464916807283237281520641243162541707977818449532047490675086442855187287877197467536172381184550149644607491244931179846202880053656912415259804096371963466316847605557104733050483632983901024191562726383714767381208576045955345534139025545103680187765101046999876707853768787750126528102134360399489667845535693914430864685003877372809222885341347738852378817327667127772876324535670831714531249160496838381411266281030741163935324243813735765023491087494337912851721856161362812345656149630435529696563458028726256589659544055081477167931853931117300248961447263267569468385001424959301715417169177485889693651961445673109174860059148218934177964022738767230983009893044278420672678315888119079415004455514009875594114983082228134643678320350063137243006023003584880706109794095640440151160691679919125461336800157898330371236072374954749085159375273988009242077267126216225298216528913502736127194010720217781569750003084745463797568473688009294595287505866155910982650261369653032522267553344025780309104659504283002395963851818287236110802757979530676283634426458491305368422344867486041111403639990209413615248525325769320925866524195383977589244381252988119000512917146806820319041637767596585863370149483803673729472979325780881813839735385313993426144655701944289406719553919767816878691009067458160760155944757202883722914490958007498722834639165842374848892022074665446949899377584312302803640362512722889907167503913221690314527883401249652099943719020524489790692503753111039614406601809817824003165387942625979686074399739755923210849610248676039051605830449947789422750701267087042917287058781691656447870811519307476643738290798201747058618139173165015147829677705861036155524727996168236224342679410841185945793202098511913549453819559243401704734860757248381457044761787384395655096017004100389360109782347305442717089274604454245083893134817022970494674613229971946651211932633666999852109431792191009115064949688863267988397228123967411995288952515377956530606170370467601058599954210157496571510874510425575716909422631287480894860035931804185189106362391765575875737665694828717101404416893721328778049475398089613845300243736185737588098913482753031492771992663589097056939587106543867754721136448069752207246128636271270264050209022143736009373101765625433947335678367645724338646209153018913382895179065715545985191574606664194586063488225020346004603170326413934394164843275435916936110711553922344503673897975729868159970710982295573137501731187259589504167912257650230601643933882901698664417764254228258108008840795556241132985762000246512389210165430822473053758181351511898849718400852658147463554901367013750176342313885287466610470135200685170572642581506254963423810310768961632366455092715636929757630398451896572033225972110213859563307036942841077124001165841428897726789786993072902127113098287374423631257236578468700594125919503510790677515383813956674140924357134738011783686424229553252079328283389852888463590592158549362680871917665620502733478133233888951163225908973889663574539309741566396988607897694013097362435994168468228734333610053500023931142209967121271644644823876222756988778173232994341967523749005081535963974844133157506167825817116061431955335280471157055145794502676676065180224667709340730064304806149354356578351895333040081935689175168653535526905028088301383664286524774121460435796385161693479132848702098652298444732332839712331797227145614685575653389107360526472403960181478147846039369612909941616602540528666686852213890462237321156312653026827455665231916633148982592078348205947318887634640391170969197020784741312262711616356045200941700773870080761242525006359310441353291340749169134082449241590169724025411021499681953001311461090144272569842337367223217172049595512471936763495500023981410866815631875747092055265218618014445558683110752111501528682782604965265538855961182868007581284512402772883622414561175469888090051028747571586107807854886405172327815002146794111454576600857116742266965220497075427313052389388287045496249300658389116074734609010529672445805600324500510730842181908851658309515785452858492905255969115823226158992992823776701645344980713383083492668730782486424496407092298742584842877395127152887173010312309982297213528011452192339027165787763783391494501603336492839498181409825814173833348928469960278195947096478239243841054099537764776712789141686948154380311130249225670524049810115275467265907488442914722099288698193882240513510964373931328978830402809755099380395911881757551757777773179495585085821357743368263917901429016817949199164359353975712461363824292225378351144554375385322095317040445134336984006206175761623468872295681565969974211156613577397422876782185309751637953724953684000717206244779336870134309885667574799084703003760555228169931399260853957183757762909719215179527714869480497906982986176813550999941185334830105213515527846564189246800468625832756806624476175252358766582960444462152662453304866234326667210813778205510615969429701516882094849863929476635908144056040490698232804412824584973256501745854106735722864933477587675114910838815488601528556207704920418262899917789008207576233792397826135394209245541265576119644098293510976321226688765955041443976928596763490406140653178288049362388487298552720208638225597223580548557441991037963832435835766979585572438948921892725247876910648072515802109337946576598814519346876036601985317355073623318097090860913864587148951130223743317973510279448148502677963868615718307059888715447121793408692566177189768499063054436045207608522276739064009744910668177096882086982255010808381866366268774225243719498185290427584980156197742840826037441216525163850107903655199780561211714174627940099717991188921497951715107497323824791768280219796793382845742745500602976395279838057472328941079059300954899393982124505802619054337591563803447977602145524802452823951960955870975477168144979391717368217650204657332366334835326169188255562911502667081132823994896634612808609851724502631824030799487371189489786800992541002719120980942195173349864288885335653742083548053714157793227422489466198127111765295845468737636187853800896140985448404726873528454114717421956784350199313292169214193071319174565814435684724142105974457444701219035461129326959401017082927801414899652272129545044072916953618974705421084991407479598855406059857847525011131851440042248650912811916965651499210525642164588202935822757697864332212999095564736550058200664651647380437059554075625072924487512020984092530158772271494010734310593090616993594126638711822583677520239413791050864182759949477499279443614671625835117895141546025361421682102729932874345757998539387698002221956290438415342960858932076302417764070609956257160610596742449990343483879703975377216380245075836663223144546653720029871138053901988471332797792256588802182822539183051407640161148976036182560652634471477424885536119324952655276806196163690730052844744536653660800025831855462066767486968443994707574449616506192477422123942512496939601442506680351373940755908617787949264073454373164185969308119669033155767664647884335449633942147835737659691656891780861233265200169792489304072856951895970388268968134779190130617612105052289129594862872283296409491160651599598032291497059197464475135293674432028399437784512577436202951021758703231673662713178257296327597002238990840196490695370125473474971000468267813814300679543079063796432481694805457573965294700125929563112594033997047988842093899665284305429389541284969307153931555615211019793180010602753335329840163723100344429822981604189768870293011798964956400306176907762808159295095275974277289758982812746254716340241580201999632600382082802285054235969113351586886663605495235601736771759679201105842371707326820980078976379628892642098457097650999518002574517179195215421387017505688897876117964720913228391332080081859965231486359154705142357748537691763865504143345492032804599746045029668629717830521839131872860974023369317341200826422856325901124971612731888952551726055114678491247732708490860942140317410938607758411170732843986594003234532180341450579973743837751686737729690038686706030201770437190618409263033298888198807562210487193782768187992754140234795707095616039079506124366158609248525119840695893848280045620478551854863885544840587698743686076266073540590243258304984377205045321514391853754450823962629123902346540263624724756765605273242754049773818572343237230966772376687313277121615897501324553841008096011562185781541510235345946164688472334953053269137046185489962503388562604708647337534919190217112922877596849115708125073971266717885938312359764805109430261297300239715871360391020796454076692594805988246858730236565804023587447256768564708278026689488838866874737115638161396366363919182942767587184998238885482583277331258840223998560542642641416837064199710024496160932743703466510801102883340730380657312118649331723672176865009206372221542200598237631666714982238212979164855951326867835699004490123934905391596808559834206539980202523722969918848445926148376058946355078545642786754034119046304142429063750767429738801069127615041451214618074982753715829669592851657737842472549000632190017171686297468595149744019003556027512656941053413907483438743005358373176573804010390641443943065993852852629917241264927919785842117787413258731724953236342646143123047990937720355868244002940996355230246400793569844556559878892333311620273699008603963515781776465496337986949706444883641325753487874126134594139374209748076826896873997835422424278816916417443246843125684964347113782305721542246818233344963081244340856140475746949111689692694578885129575145784752291867775909788920170709548733039422456696318128120522965204295263040013012830919457056493696749090677788479909000027152432413308806709791674508357168343380497114924011305608184859241697014710944536571596010617614571100333207825760840789793636746238308873441144365943990118895851347763196876795532531325928201835793421692382100258677215327520269745795199264873423945637962044432563129488104777421101076398157827686658527845594119086541066899976903541723129158338210563012371698233895418449566183464159199995775681485717036437798405812984592144858909241534118142714217767763438947741536890966477377611915449978269308955302530517578814661183571209673890264639251307219707527168041282249728196708743350508692134066622010498135551977448150600611429145795147054893193222855279778661707531389713994069398987927659673980814096040964256644216770675423730022652865295704877864032896975229102607738760165613591308539642840849085114063423319671219929493423772596364625713065308871072718372088407279800547215665325702923560792955837203062206111129208774611331403075267016819870766303000291654521131327549986092048853176090112787000884666290229107029716758814608926951871341890275848054026711429856359536890584899002708380896607411886566906978017918431987549074143589432307790383658413702629887209528060525881483424777712276567927360373335764374151172230189931533555671002061327303555102016746491037198582709136437759437313693384597457456664903156389062764154275789363717753638310176473403987534922373754211528421058832789689598786196498436143532606657799697867517992981849584819563336093579247446917250470416084073709674749240046402561647942223993709245528267478221744708797159050096429433449007759726310928761069033008927613038434892559583931352338681896742197522951337752129675072476723129839472724341597109645689372345664502223220818125281952055459238563130875086128093375595008593529510549802374625656157575226027166755413291858913302598652498107117151541708007262264996847698890910071213750267004738567272615868209769254795030926484047596539648523692506010958242561676246096828563028668554926221018455228558774716587966047207320942744287059034319907268805306400621413611436874045246832809844140811367573065381389638834686358409802823870000872458608777833477999967115049709058500367356105161500381992654910260349631917673890015937129606880730745647747951001085404869622797467754358023689507550823683801129012865921362724654204306970981728069374922812625773816749104655828912987652824339400895214806739039653108432121027117120984207841464207532192853631937956618083614050227463159519581345334628254322293829366133628542692933915527204711651597848122505020844464541181367527774184931124142356367568129070596518249698723714044982221923568155057843853189413587234162711686366771292011103434661561738173070941489658692636350855323864895007771995456914247256971774327112571788873815251218580469283473772165666375372394772406829592521035332340319968226380959240302029614758055852658668167407200538051417394920115854839900029475081228969781548950193571347788116187720134954659649292129036515784100865871050031290707820136750313443217159897613713832684680455855305309037032992200919775224495508426450304809565312047622455091738541376889744035225612716757252952762044032096815032714717330171136347248332383805765142073999178282053508220326509810873603486083945000569904466196323505628485562977016931058260473597600157175054889477964695061047977040362886207442771703279042054362593428100456919791132312912918631513400245789623171924787871136412141693081425599606461331317910168255132607345813257349393302311660025042860453485646900868143481595486995391583153236794485406540403878026955604956756454273535611534906700283661937046085727483529661120794474157586083045967147618132090961769863565079772733121417078884035032839653822374441266733663152366770343451719955319511573329250676278334899361752260559715700924961204591263932189919240035099281786490851552087456044080337576321537040751610631407490647717193581659468824054823896593930080523543822222458889167623992607257203131423015608450149543967296277115478150028300063188786552679838009575841288001181763201672535441257623997075390577078178792700998699792624711460705691706374221422523998702532906568749661118701771505464653206491924420808969525420185846621171251232056824039303589162741775488710109159933738561232097999750380074866790611263365377686175535210207070580564153228428932744538945465660453831909060945035500374985408491252931806486503656875417461630339259757727515987963121275313875992508278081074677914889156534599984204578400243819113030439684169366329207415259660107287064115139894830080400550224830507290466846989992607911679761719181167597791415617566367867682288787944752458697918823015271668278258464066484960342173961992969764652973656358209242136968688036195096342808307074246924055713625425095826448459713199599358970920747665650291679669519933744546911395299899148068142472846708913146880123592211913302595305577588017948331496516344528104570039147930450416901647562092741340008704159581889072250224512148742333538112984657784416337105809302386197389069539780829732809995227204739786903267478530044429530024920603037527142554583720569947523763079593575334657314881834488163542907940103017540942927576933669015115130770430529597307701762699545824329148389467682964314005676349778267908283081337299398464999590120119063008204648899721115988235984195547001758830334471692083485925052558090940682721669188774549482560570146254443170519029317762015950782568985478112126893106587502830283878597064513467401827299512699041662327505024719343573913524538691389759891095465837016736439705179636896029985193287510169708890213938054693477919047485172741322405850231274014957430387796208585119613419694505362423963478297934008206260979643042084374268935490598547498576525962800219961250764948593065108032316900170579678494352805840872319354998056058374785432537247483859685154062625403688280670072813327403374733276491708137569073214288310257718446371942595984487203002498315515442277107536411155106860893709840680789308908790669920811717283272000861426110728628807842056459688744874331136956789804009820917490198419562362585156218798016542187484703557947179878349365686358646311474972143116650307868426118420966819557571020971819402262236026114396499824761085476241005295203237574306454680365278753635733479183534985036355449736477447074434296715525156513436554755664233952952960116779881362765725969354344817227708186144371697387901849853004719991401427772398855745926963754555798006026304531820815585122705031929198779285606300532626576768679148895044855658138107480454589113463329183666463227023459852499104534582095683070443767720314632639281828260412951582348874436257032519794249064182575389027373669440708973003602695359851421074775328171398018318266597594465060678997784843056011179885280592570128445761223756675173273342702424079199604911446647904521996696643757744346874158237288869630105649328074369178943104669979335834885242879422609255456236006638750907184236625271318006087602064427988537365368786056683587871436430686909112255550883425145769571535500925151514843557552681972722360827422808151626709758869477680355823248525188659623377088299384292801814757773466660686862402002330381556807910178519736145567137061146541557941205704295071450573518752573603254661073197916419275250357138854335917892039999466308278983012693012783126223827788012762643138287399695150539512894062379160281208397424221290094542577422480109210185742591159788037460911546235642629050742961067725151487218839284679747462415063297494881540409000114286818604313618857175777726871352175759701958709275544138804619415011249727598610977065082400864475411018530630631961548320699105066174792532214753314875967815300733294334658528203215289750318703848699701423555707327392262015391254358997064070300466202759952783707887281825576205310403808112304654212920214378884659114155782835326432622928751459895413756782019661486900385785225212093996686720989233439774776642531050546320600810608038865712777974381881045433353988750617368684599372083733592735338425411862444737823135628168924498800764260148068864552616103687682888329731783291302304319041382323181703445890791710761108922843436546333552723326187670891587579688726541362509883015797681537506113316942127007124128317040756539764770909170189564559828153807020305548772404950571226364781409723729402791057497401958440576758109618374324726133422510332404665436302927281123391149664730301504111759764014300462108285711922943871241788806352290319135700139639523241220393287107354481898075484016230528629430945013773625140153644673620158545471626466737312414792523835294816447890642182984944796870919896040011545588759086791385078733213909852691425992127088186226891177535706423219537067064943132640281977613400527895338989838653901681065072733405512418454052514773560581987375095065065740903179745973465384177614138634740528861314339807002289407126711246954739048739277120926966422108143083096414175217157683697495485939933789576515404005530095146329458265509615371777369445500848782872904428359421051979389089073267101407703210757755040185723543293081075037168916351394068436870930463320043815339632468415347971971434644472814177767607828771174090265778783921502952450397373460308125961529445906346780094332722808961732580569755713080119483557376037684487274608901953874854724636370052387689484623442572702399540628621803239530393979404217769691397499814005802752464494728291495358181320281157992854613147709495814661388559217598208281933985449697626264588736324375365016561528327582465146441067737771342837444466960275723204080257272698936862378777926355220274438860004709364954649076704047993856636478311488874088142913232874686049239626400241379397170784405152711471226672030141291656404369685862711349559173713235386696962929601887665700723715072382836900007952911071082024995030125796727417231438192056199548637121394446090353784675773987054671306056894029842818235727745837382583125644040743027338823216050013140722353217285918245580789874990707863202845968504032506824383102637741303268914405608621989990984058897469224909545563098418656075635294346892686111953532604596944305900455133909608978135180036627230949833656648606269738489260545146280645486835744041958138475953755367285566976739017931202512152011575888757878504973731833591791220394894291092242903808867703613599911101496684379327368121030008523912356678651637068878111494689545499733815931350829697095366375473366118731649595948335804910190974883249470956582879151785200638408702449454816862494309865289094613417903202881035546948261297317830117922577107395286632958231257776711825027673275148714861564992109278338431881616374874244282500948850638926339411410262790810664747459988892558590120058279050539072609277324882521083517871988083423943507416642831787067340716711207273873273651339594411680637270362787213804763980173912816338746102206941587538128762631570194866836617245236139872790321192213217725034279112345047741052179574918235051701939650740215167754638160083831734275801665171856155277281780422769107113057042807854960192588635442870968013460672697418830898207335907879786389483142141514561127765461967159957234666176422754468939174524295442744523757815237559272693818204217936088243125483233154460179141453983699083455173749125627390830916727933551004930674899103701710010212431260459626576842787455629018134681930108063244560241219177950467299752843348897594667466898905821636099164141302218188094337066645375712033617050249874291536285418990883116526445237920512991602766425667978745105601015602531682148443798092148329160089725331681702939635147833062700573286165326294812616825033670053624400491876406287649366740394210209259244160447977144734963286544470568125635236269683433307884947794547959194313128195080755046581233580009405445003890661889808097652397011711473304318832539700655626709066455419957776067962833613933216767410772921105222472238492551895636707915887275919735183204339003368191001453701977746707317488476974281941589274081122825875636157739400463932187883233426583059810386913540396801563793614331911359315484619287141476193711841474511719468835903538303584624823723387522445322752210652246524724376505868953384935045427973167487206308814008197042389375142909234664646796672530155501833413767796963569022042090217157082141459327305262641474664809288293264537222561218242028231913903809748047099232623736730821676677588197315035221919500197433902046433099007503217483367108255601191455054309415512862937110008619111399300397682680230403965748513810504923247378693265643228913025415230824030123029649345184554345444493664165597048443881877606711746097435931181689544537137815896407366832694962553359161343772624707050569663712059114012375170582351165390182295761550607935531332768991945377287482029850754954122385312652922431401859026165919526926043891247277315191101707046988210173531415924507498732853318562780741067899733837323960598912099785164791433205748760301888550035787269999395439171797683627676445888645104378703448468211366083499114866521544774893526290959771166114477916854482036921090752450110682130750499841131541906744896504531298487550731177055602671343090545077292901713964883304151859880357339392792741837768980196268709864674006088650364030677200840057606773720303411573790215358211840153173524088716103792981103178946507431512614227510673225349348464090190217318871656216314121768969181692452737065077360773174774569790696946595300691909920380306140797889797669223162504208134027677404082430304529390657220587168967993805902313291812239137889977861259365369182912726664016827353891279887342004059079530848896783659951857370766053911756190911359883090619858445741900030770701221954201540954852824433803632225849620984940551380680004505748630516410422684806032689076239019864367453468124748960181173292539380458509961282913835396058544941123158761157195237008536510985808119119338415528426081660073301512673740001568245830790465711186438415133637269242281324370065076456769001853733337256558316330249254133504022903326064285375754158287863829482465930314815414568264352292704912103441255262376321911280631110330954916402002272865227730399682155735581484819647802701114416502450835538547083656872089210531976281421421727918416337449814344369235282355478150731006278948906965940712818732487214891145945473046354111181012288328598318199706218615513309843294457321104978622925534343768611655607806143786071664135882211432544997230397966509311462441895531256943018279930236401594751679845906748487309974232087088078270718543754931981958836910604841167592867009500631451183862525513673681899697010194986225604364283970934803610088610156404433733627327247913045609642722512382286231411463390773470821520816461256433012288703467509599261973629707369186896396699487902810090114809970599603383828374500010932057570481747958842820459277189358451969580996539919810201457305089550496601705032591812614633732392826417052637599962105141721563337142603279559719186653786471330141730062645767437927841222808117204199477590687877377774869352718733544738571376174875871079516302983649634949979098490248773452977170382050128530199103407924511113467188973518956392630729740483753624052510959884320504449682963447201326053223622864955724993913387964267578448920093950332024250106823851447189083717661067835529804115123878043526926676375486184059311225610808402147306689685043929613671171402359600220608937245145224842655633846240922822277068158706107698896054419824854788804456134581308773543554949942075289883758039969864403422105266245112198874909021160791682315326476240244956180087137647691012669114638969060386983337308537647078088335278382955935419613114596880738852706413434228322458338906037132016347583784731550394677913243641979138925479731968978025482250956212118082418833626793341876628530437922989055898212304479268585947877400718010032091755846858423351502990342086289930171708417534189307842405771705586266217832867478374435871718484439714672352965329569902556814127026941781959745514409427251978027147060564350486056283041137878834872051278891246984428107535693801364759967327592628820242130241636511045519477661358033816657940209683078733124882041886786244164117375591311052445496386772416845980187512723456944438355824085575775557171717175932119127549348065378064340580623671759737748371418141230305773433811781798229602858601038239313147749943418424662947463931829735773187293736719751887453192464225718789628780765963975553661395308806145311220154352526789547939005448741546624908138309774998231230916762837073676604466193177042208540603048954026849540028158398439283267373202282899387853966795648601277788159484740766124445689875346825775453206302130183411301893398577192121381343104259950200246685521054299152691776570393289634316441439587021104156236162189664174521563880677547903999331936993344500574057397942163973346220001966056300969155225110272504346882460783972544739499269291033939151365538988768719745177288756688923099888776180546748769193973534403390691866729831650849209961041887108189043735984860156149696379069933017893026236437141583128534776316617135867134551768927282243310276005546841569957059645571623374997537720083723556123921361353461670595407932271404587078344473271781420926232517410171215694178872352219304389094996024763440205846356231335213988029955348073351589081618735293953548042771840304850490030518655784096926302117866867125693727360523511770172341426789150485980524511746343485202283641618203701764527182752587758251215996268207921851114849990628140851349059578331431242579823185787602274727738790707921296521502066812667203127831146665827485007988539833039470228782776263427987948352430819358845923733531732559488936436051141375950547857466166571769656820544911851380789728384349486369450508226268304565953633510796968019940458251834113801616475026843491427402768097602749778013637254675862006881854900707061341887832754101855513916898596530477138934850965167628539535953906318922325864044208376949036274084602382333272967313487915853846369574158442268217017287410677025399959053294796620967637849460213982494062972894670717335875274084661635752820018553801329052718029465262554576273740791139936443724178341894320551376211056067773227589109113570074307030784334714306859863695481392623523479757640367971370815026816564647569280752338960705699262530725222938155185215346884733866285713828040406480383754921180060873524984924918831493511232857085425145010374302760925922701156434035852578603824056403737146653002246619013609809727550733472177084271362698542285774492407985123143674416199413666675536632927592937391996083072737563899462086656764724861556772054002686949688928256602544192500710416361576946460672145190474762409199562041287116819051730263362915536300558937222039113887389523828590247263100445109614655928915718498629202930218071372446560526250135105579836846271086792496964808392474945413303550588908024817824628707484893340330526222848984358107084418589048533524840666991046026940865932062914226665430842729199597209968223548397645494176350616853602128360292840130036666162802495414448673814509091933181051231570113207391985711810205754032931824724922617805063901644465627273731663292161136015800602720900702976602089153935766432367669331515742867906749607369876490684019069628870350971428331144301613946226472704086035212212542116194204841747294637191011469858126412494042006568797634977397174296411600507073204794384106106455026362983795146315735467364397192542681529020463171496984051865831005566530799218137164395744652930839032559606051291747059056948052169770691844855408222019713129629386767644125855715815098825185829638173867347599210533188581261404636984863511940815066877617693440753581222463701538580427258861311189699426472592399311249719782313241518301346779866990663712223920427686908472139145951988222914035425334941357708580652560326978379710042867657053095832348106064089892905865093804303589031625777850581538977738263253308084960787787692088931831456874255422142768411613178032704165703956827545000338349232898328374370062878689267705390243572385333035864695315069049299450916278663547887973656163098262002085352171426537843564587979447798011394751265333087516718942698973607521191100688688637463816511134379162514568649955754976008590525051782032598287849181686404969704914650024374715679586846059463948037364832612310923071882592627759805609591071864732661150344931458212052013843789450465631438189839394289160992662338999817017411070393899933128350068759633397623865920414613264067340484568427610954587847365374210013319326837898547547299230603555360695435781487512640283593848363817862299776939079972403995864936576572518218767724066207670021595239934940314860162498683008137587642754084581710950258447034900190719692821758140740679773191559986515759928625467465415510426607004022429329289552280133917086353814135857959333653274418889430549653736753308645667574625784874004739643262780811247971591657581394169944957999780602718753291212452000920747142156064877678239044074580256622888568328458218377821649313295756782057115539470786683422676296879188780301304931117854093220201687162894755052604986704559806048538027461358915407079116667272578825192504567445900725532280316489839224639523657851491666298100256213421114468938404150540770823665734211472260517947263978227399780850774448048256224865219450211424645704569798733436591467650504923154067636424565665250502238216512156420197357552930641042316890335662851287931021602454159323468827172326384046928804651815460652150155231030401063062515770040051344500901198090548502581218237584553373790562403181661281731773669089917549979580313241519496540476080150491110303004411927717997845688184958853763334267952372930680398383934998954815336567821657492615386432490435901825365690589220284081572300748194317957068339319345817457176654911230672286109733185494504269914461614710291939634504258492353582391693277300792723761411193651929493224368221167035627342861428914602687840493619484708343379989756463374758445941893429100383053398357407803244842791214040282859426987251667718607721434639437151522190185675862645780421964233705197709790737072513401341532864861670910127313437029572006048155535444057433613733463341652575163985176260324727015424424196184577780257953585021740101071252582394753421994545623537469559953447611055013560135510352901700717671879642102374091467972906275853724946190326119971676685611232381796891950011009219034055674643000224030542418239709590060537166252129985452943288995795498057930870117762775748915610057842199665369013123224548684095132830814496528343132380615963132452402621758395120877922113592875345230853082758224475195397061618272485464278866611495320728891365690083632496674575574189179854536193253836364586889894555025652814339097096337117284524015932302646402327906122875678548501139945196062837741729960556324186880846471074587050054555704662809766081688184871612431224305422074233851250628722747653495230814321631828439154314102338796400836488515576369814858005119831057878921964145831272916388739707846174144267897080025117879143097606771207175897048763507904191432659600901770438711673388990829004178012342010420842108159655399844665168375514350024929815959048012953168361361739879430843956690469079727490887053285101695168484145846561822828517248401470454741215244814341868597516551647888420536112506589951974637035391044488746911848224061534931600052013635502190260579109592285860569496943337564673564022900165030910381782877037467204972810108865250763590969799790273273272024423598274252111876015516553752794105569877128844782676602605127428818708361177087317472331497632470394994451297987094261097034180255561372874123836839651062758077270289171806087615670264566342379731774864784902607385976909286431528848030562461220725518152023211943760266380326185829908974117387817517311988204916218129680926139642825724215529751542117923036745360335716358133724178077441278933861213074612582848349409767838052737453449493288069454790725908475689745789245619067798252528439924120361582447196900245708634157996217002677065798595384509122883653122680573294698184747844992024700437472839157933514977791380662283171823671724789099783978766456666348654290928157648469521228107023354228722798498682883356382611029910152003578420621850457760953336299710807747721932834007350668422303183350834458693066017165136342635041464435731297937835813191913201905903529291115583715799585185838941147301697959040000264380178945820344756128049839337509807444669690982886285807861500136413304937425050002958127389834620522335668322924769766204066798697746509916686319219449515902713952147984191765601899875844451951351052164970321108253106934363373615297429685517514963159846274398068579757588463096264050575752931715913441037693823808031218735675968302520857740745968234721242746725837375465048019279697097358721784186277465764861336499986314033370715157484430404122395532804385669585967270703786871784345201830408218167284756265524448837394964137828816890112278667693550739048801892659819251331710462994926349859295817226058240232089810879538568590217828221445550310563082509716673495427541754727445301564964709144697497905818928439561521655945671330046298166742850464925263994694188432242105397176074158171503268348263556124063532223062186394925189502552849707063950982194313428855966883438036103380866534351003908612630777492493707239914221876538140595413783590525947880909436222703934175908880715961182405655895290064275025070911302680683688121808011107042732092533261874482830751568402954815045792660844084954160427046065665929321675897624484914401205247553423997666348046284575686407739986843323973042326628533225434099438377120814538653140099197016890336809784697530438224640319336865201340145161596549071372108429265528188465491803772121945427067511751305325107117946032770937134176965793446517787131429488319139406184514267584787429175170028371559731906194295174721394884665387256543539652492310392719448394812637304100036905353924737469010881113614952181417262434543987628692607213827459941731061246628713448253109734790383474338364494783206387922507265287737728049540089517517274114909433320456756842504131239999697904169122817754710052547347094583233950942589520018114898936554264465766992719475788411643324460707031619061475884005266537104650558617620797313099394119929496735992002091316023140170599327914408806707742556704469128663068763436937804086097768275910778524029416660271861117306009662292572624196830546238149474190736198529142831899140893075918989445964750422047249322703775435130519223539144707642953429673462674182709764790944087467146362763386412861545696510296907992751656976299290974685101331420916906174779338012346895679596077721046583072059163891278459134423875695919392769163147861997710769943864881670430209710261482159226363995949095848987805806992671237693434117112003924243761795479261295614722269916678490691423268450140900288308174198553969970842816397601618581415223377144176819963871486316723069364709023437098321738823892847003833945825810222898908621240026209222906330333059386391498057113244027260454231681205121327946332973265003366407080139847994061846219014473886533777575146820182743289836685181871792397913765301651434448738678366978682088468271316585311127014864560023376999121713010086781471259640829407589615401840616969052908117961334857923515556462669126226005940454898261494365433162316598959158105240838757557105470121030872459685409063867479798500897767813447059068058110443983130313641432325148260690962399956143148357077963644143239554634277262342896327797255273875607407649822263075923827208510078238112634180386965821178362774799160404293438146691966050433202206470371282340482468244156343581611361980950668137037604026858448525164815846113038253331694656182724273424861423566164799385512976739631883295364074928308990628081650453405642661248538750730014933793262204680412594886375242834909443510389321114411410733103591808494404741765305015627138212184960563886530470130591223455413091338329699276355604704433824658048407864443416860905301875059286886365430746998915828764563557326673626478749056485994844549018537050358870939098137644907616676100076301020572930801611818661211203075948182541009965947532491855488830211803245818415372667084921594565419394429866928889997374947223143276846149016713073891102682112308638396788874172663511329198416025574904400769474891926479699055192632280229927224550718505621968397469938172593060031020660586162164646225730305966612854760574546214173384415576256763123559288521447089117570956762022649757186612636559147655202573393881395021518668400707345792119161998877643183830659898836981047004664554245427676022122639277261572101728285470910883452104031281837192557770260051541849871801936731969108953050432573408241917920852414658298049699277222438526995133851262222129834787702222948842187356511793365791629204659063763025165568052791069024497180079374146783363135201710464173947380725362907771137056400923532496108572024825484121234889102755362178988606818925134631916603783335657642467984999964217311290574239370025770327216049776700601081379662498186371729722823734029653705479955766834552537259760311017998405738880694723946067077839336582947499285403950364193859740950129803875336624722336552215246849499794783332549491853144053631964116417001748472739243854985102506656511463984216260739176144837260005529803360632942279271816310417717904017895481536887317630059591190021605883169363180235213852710031291121478170380481380441836113773442618388978726296332739034351240844407500228479105961408643999726872873788772106037851538625451621745430472584626973158478510916930140486514660217327317792045089709780828921795947215440952425048148059305335555921826553068448230458642161580328332034363379451868198284487087069643154110491057771697424233199361690813997065301615480098139745867108010074080769986864197647565768957658439901699892896144153705981508108638439677656441200193964733771609136345469449244003692210608803558162065553825422220756395657091174076576811280911256970028777395920002250676144699661399267682713263051341873713255670680438687557859716877682519493251573756818967234447861847812481414028133245719090285540047813486168035979599267060967110290549361199345946903031439040233266043214035195220785529179576592994556812139482970121854676864070054232187548832412526687833590577559517863177832697246735287090681962837145286108967596324151902163867951263418721582356941486195852477818332199024908246515352921320994029841296612575392093200940226186002439233285320319819143044726716521774852198407694200031687258444829838560565114434766605398053200713663906697164375132792548071761705426145434500740502869186414856566362582111014934040701371966138439233650342101239573084092856032036231290922968096319910003065593879158200019096032007219224642537340250122943977782447411633766437538249764296693063204426644316091860925818676108556061311504631050033652787836847311370358496786152955207332579823576922153223267610247380203810138252829440495905664991773576054479596361107859857263942755220660564032624988575057114757564607602429917966532974988603737486673089060671791660391944241840356399519447506497964261992984498076090675757345136722139084155795590041370858085554661315302270617065637735822377667259997725414102088871673802638820042503166640585294320990726729924909865023971209869718591760370736651108604228034117286580266934704427983922566491996399735889725640682158329620129314213096505705149819115958138027229516692112459367656753919629501709176386140017909537258437809087817913053708821658553108938317782634997319200701333647052727284477899951938122651648509722150343825905167425011900708520448836803877522007433467878276089672511410914558370662777687973087371082044114213140590266930017079728696817530591502603588769277596783632151722551696004652787320487106906164366784031913486064584868742339564218083190963456726106604724357158987273577808716117033726754863414210888016481832840917019716374854020300083117950110976208917001398973193631687135082258213576864953549255758603913164774325950952812728922297039459899740990221207393177711036842394667476869658716835847936434683764728653200292272974514242429008278610151834878217059812030280932719824035255372051233928110358551861879239183673892058575925961552502465101802958151503545942301783807387187622258915403756474119713689096586212780977478343452265424772076697664744399688368913387255398118334092994333926627556597895655261296326370554312648167587022917966676807986300570842522384446295277244243280416602737670442855995869911964428351353568894699318718212671108130100203231830739000890567451533177773948402636806294949136496756152508320657225823317088723031726039181909911474524787033835510978363217090027388617715058425549632158791222134998402784696332981397042594179844858700902710444869755065867232430820698297730589781675584662263875253912049252658347180327806028066385419495677460520548682549659653596869718446876906604455615701861164469462123459656330658348541558235301126811218324906097172853926171462206283908575687764922709381703069356884807528844821511605056576102404038844416406589724196137787153969116648134222532480704365939901710639159436851363079592072790913375081891944287903468805870953774997368711409906011897503821373304963200573920886186654018316219692871744699320535440769023114363980129648806305025317534261687935878623514544529522981427699097570672815724181452354291752281471740208783739964592635899280150233639546234888495085033301075711800226688069844724215912818329092535152927523819575639187895655406109392909366379988008939945234171457981605175334438499391616897893053158984720878636686879279084745968266820771944123932329850530576265209435969287765918496042599878334466041633034178295453010173482229660147604470735848182630038106591241883616119739209987232762070918531389397615996079599656368456553247936705233126134272198944474903607470629133733974484084846923789832679952574826901382562553330516119486964646953993841090781254200040485909941921563039582805543072907373468465357241880016586810229828044491602785080292852262921833947036362706332284228908123988708244318768386125430663702566004055252253869440165805421626881009618758067393445613923373492768542059173681133108192491433253556055768077805089154734199056555500290200281361404165623591706646337756475357518942556887858086204827753052987069169093077741335025338174920783011920799407295708171899621909061565120452134379641817805888064808425774161521896156445653946156324956837988347800188660214609424444984958985612706137142684876645878423463420648920069347124610985019625928300106917770187907983429092600895327024358960658773154734473273089135936349440395167882122760708784548048620825295418274622779444959188802746836046512989756852697415802960295869915955648789135156549910131334388152131901206012735884791736357476613044225891526161987417326058954788646414472345683287780687731603957797369438060918966299655367991714845143976721414238936972305350198996477831161179292005432513350823345427236475588585783266784161488903415044356681468030625892946243717123494055654554168388895957694068864548745929568671955762314228928335374115208030377147709992436270328365746987588464615342780764704280644586780508236917208568834881100211788460416314352606245576480781896417449226832287049925906172613887911345596427992893576818227522111969371870739045503456727908916392750372700032923537005473583934221424572807782226222787033569609161811362858618340687302076764029624234553967490035134506157705184306589568309969861548523263565315222191732145946007633498877147147055641238140150139365997430098112999312414800649004612327773752302707837360731507443629091468381209321538981473379130628401406262187922354251717649702236313853742407216707767483083637944800046122064036032244283518585014865135633637679822047370236938158250357756440997141909634780138709401151616685205468117040249404616835184353172338121727139153252004142495789233290857871276592854450489124778202610985154875943400213500049614703452064807589989279137095274696167405059903876361993008416981080101412695194562263418155585117233179206620754090202697799599976466615638007228557470593599147174431440714446889171105151832175228900669020045629464928849977579904274905319214074859047675457101186117124723591659813483587450221026513475934186465494834445195123230757965151688771992919884621088644477866320489732821323045243380440083414897572367353656632653337489584785660665819054920997219834566487502301089663712907880560388662446887456117832699780532210442584056466052024266762179507330422230688584632162608432952501518328210417475701535015104486197289386243652757091385399107247703972472726871198350978139816701543880019639587337413046657321507630594860752668462097247664234931163676447042273514040103362640406002374255240889832463287473825149737622985743270763749162284228897986776795617300592948951271006617773187282213180931958349206480956224912365669157223064441534881024325401585238389832731234208273476588496164632725871827014376683588235324287271269601130457441096782677494377508274682142910471338525141598944486760447975380049012009951345006137252313278474449044846779765368762182734532055014772874667660699761353986480759887056938066204206592538045799915489399572841790914014234986885005862362225605195406285598857626885204938158480244894554552546522074055744517422849744074250142191814513879443264792486383822377748654925629686895663627207940052091036206680157175996724584405399936170132406665589928681713123399456108402806139531055407221838957066643248694063709716020909984796476412882266255770998098519271836356109086496677644251548667172879667076038654747661129591744812301289666962425159209383601871262257857348492533412331645291559929118255387721599773601191247800604672125053434578903197851545006330892125692553392932729227812944035211101270673586364833603151205701380096593000371970562156492030495970080766348028194982332441624122988932517303986007187639135312665155629919877493900828838270059000025838021087047457563661321317525939706106919475486120168920626670972391070887782828482342643960755370126431013994250198934785880309694820686778549140079092917144820502436081291334231860293398105408214447913478923909349263480736877293645576527905620336250185335941594626902991118132409459228986120164820740925540506147415610386123989692728682532354600094548332816107906623228706420531626445444534843284657148199806293833421396795113913320620240928014283283020629372715072025943028930495755042421380429660837584609349952982981280079905705723475853291804672392857206722874374409736925871508978612459278410826224909564927879035740709686429738568974186482536927080691123485459726742900668772518485725415947453943319065062779816919518602285825497151812315321498187177355892479041005519042059047865515185008205189859363330741118127223773186433111280034678536577944095434396971081667854881569242211765924951903316817087317094424528584939326617336458593103837559563484168740320013627097123805067045105230926061084572844804762068298043963898271442487654982786279670272680229218148213573782249515136760687988066010936430231006356957081171169144721836697235837971130810628943676007220080349949315062334641023453378570174234084481491385957072015416497218629658501039408837828540883482998347348049737530723898655840272493709235840248617595345937219646041930914622169601737791876514778549135171255011447695119361575303847877362434607247665676270760847418368126609146884032465029931667680365879484766765744122727548863752470682585322281005018460980553754972935257626136701885092383782784445441458349796435084775190527613675041467435302695729590113970410969210522379767765283519479488993980368274394566667693161709733318812062346834270167686034172500929549471336702025738389864446099350870319820354975377098961967582535455765780488870237525555138440354330082825028326911932518181236682058532848706319418032573551969211452465971389477644546469205146737723658491916086786970646601232790749060780877279962897965994695812844193569603222978617343398376854627028360143581734173495300258774446952113235622711832063847759936317270067962610798920997658102364659986240115095291821910495614027587412860532248312965574604665046357941815785484946404853362210504579522771926580309269275822320491220362506013144411195393478936417413481377586634635507060230858684087725909195374067308108381260580073780030299337606160191584939866688097333255126626277773342917919628734584725157538080694181180253585625576709334293597764048200038796353488330520476181978297319872309598367601830921164393337268173637463693180741101361019216755248142123313411271551184921427468158582894972923072200079941719550738164518540215973932343966841913001652431063096199054336543037013858032978400550838617166007432980808555669374643573939271491858194808590097083175632984587009688929150003233284042360031445719371143820085397079154846468134144569197739903232013914295274078451278976798760384603615431078838594399415867959868763198980046626282178207759239562088860363960029952923930682959534843040190602068273267472112046071323077584507444452674300102867831657992779648453895891169309723558273674690622918692028304118568754882030324208928339598890689065928553658616614587965802268158274105370072845023368499310022840797729024160380578697743353569975241919850225715040282793528817413370482032320726862690128322294864533111052526952747838318697236667421463106643648926162080691820921442084628034451380038326869727172189678500474001595051415805375803358375537131064735817582392273731590522144888712833874897642751039488440630524998105608486680674903117003252364840026714945137020174154225164572649164861111676418367960175068357968846759552060101760193816870412446110388407576104662863835686386268510128062219655798250476140690027383043572397072143970799764246709329034517373928854839802172810860989822292212060119027084394889566615495202010175413423504017032939662801493440473215686243688073243099692537146515164757070990851644496084291983855027821856168415347545984959352946427319224457697651577447749077085093457304126400916722295768905536039314938310865903010401125793120225645701767368169309870741513008348756390492357633954659784854408161202986620340072718198377200240812149968735125709223296375104072502344280088326167806865145668221580538276342493386323430732289286922597220171968840687360732641377216269451477262772016640573477978907928341836978627566578579088829348157262754182732207400622943957057419908426220122262492809754384973959489906083185379306536956140513360507612028708640729998433766237052548515984194629203548946373587744655376013671223873003531522335238134051109282154428050759748678799105085491063932066034579021724247143364021064878183465603852797691386086829780919536812527696136891325986759213143060552352040479943233720143087689199662449993412769677308805414326331915479761604114289678170363529292967846516143999119201077342220790257313102563609428923275802997698836165377780798445757544737581706196068079560383025303224874814526410163152925358078742108484419799172919037133266491021323640268095915137140863461507648448193268929288880856355033658541239708467003093098263248143480569677471479434936980096707839226750497336326040634549249767209250630967392447084425205226171698552064909604123934870745082088553419855416842082076139814299884774636840409113670736876248067502123885860889050453044421467842310665468168111671206508888326332175413584475306425209096844359143835915197859643961763130765239699951880544076188083922508224476109170885440902989165778341436396069251717830943878671656791590288245732090504766690745190976241198228806223353308722753679522611078085923983024617589836816749987302676936863023699794638458921359782036270898964480452832167983395108663040859493099904522456514774964823186915339352066451604922841557598760555998926073619948777463138108324037091263357515491528742238996858572282654217373910500584319107786789981638422195198927333547887247273972673204858170635644900160838257635981265142937169501485770752989931405113633256317315500138152482055933321110898337696042037667354681158444209712398110898656300382874292934445549742562312955232565585352767289955814734273995997262011802224595972572417725430627304027554302594949446950549388311449762028804476878039208526162200758427169210557669416826871088663516802844654512381920036018500160076857462839164480042597129312482067750921133425206934019902705041588654163753494861780309288253416905821333311585008695911113844711243238349239205494246860156806263131137856893607834044489833366013204223592249567007170914993469089562352633914677454748624314804050098679484439870852823052090956517588833519081271628968832228710132341958605333458886328171329927131388378721209637925832894815319624685524067272969723696835185843139080676708356374501125725644943411389174593587410435714097927605793425591184664470734533570462597211377873450484201476724929611710137074873514225645791561905015364760299307070761521028338576163623219276183591826808685313175050784974960850719616798649153566415918358334571501440628074039362286760225187486541137850721398344157713689448625354329746423373838032915648791062159700398670304860928493126489518586358775989251075155652278018081531419802722553705378153803834382376710757428969668953246877043863437247993302067495353599227449637511878853085135933097679310348101479219935990539852095860663528523406227666233782048438735543715520656443191077652699005103805104394821316780868587076891892949875822806969249794283945069672098578914515618303784880724589418653503466438977495835108033665031329343870751447255704651762575530027729116222206859740360422534940736514565016864048393841505596533262753340643799440126781773508941896541789142421369757100244863938588199843440096041766842494474083583414262694387610884803311203823603577202381320080404759094312396928247099923991868447302612987090203270623907495262053090817466509509073216122369504037736615370983362836717222061998007648219731993760944068943377977605600642324332977905540017433990765978245157702917888131378081355633818244951939680999671716149742338970263659979008310902358220086152640370209820539335182050685652724781001505462715146022123231370752706208335296271276926053726484633481810256988111178981382981677081612633388761551059538776972220559656538785003277093933695705965399698148253291558885359714512891773668052308560278336531906261495332283633225248586897175226781151933785019795744078241494143263362746150596931619180854786025277940180988486914355834905267076802890952504241089852008608401469585321942972505559308328069512594949756846309875592094612203276600896902718441647568129207458603648503318418853805990739246766742349703770366912336265810265078977010342623630635574891269665060313018839814708820220957802784328254400399973728282823284004716930118283290393182561195932385007366694597428845243537820501216760845421756929896089456515220438638516621082379712906678364805009905745955554410893297944333966973951115529593379735584084052050593756938466672110883283474713330515770425528533413882562636892093375985109989463817652437402319644937569051494306557900758986943672442050022605825185991799295684935750197673150470913579264000707124940941109473761973038280475467431654231433774217243560694624338006595348516762258440704153635562201685388490153667782554746672693298354842001325089035030784389730500022162644017819963368581111892387322464148093823934375885021322929855829058147572983969318182475629389625802382503421968200971295733748219823624418442013925426879413313919430076404300523102186038242432399761019179050883000148038845927207898827852799515552503198357358970825512294489869296247274893970931147212976831241133345729240586688094261112542782604111407107653057987703381263194540637612987221542691892974514790868152230131621384736369220584040433750842974421892550742585642460454588799214716993153132761678029833801374983738844680094896775464910401631811220284244892924508703650480668921999405203576725084876263334450685524611796631825813251180036899073360928207503350896004487535800694022831465946257297083708360594730709315975452486990440197181883097502186409337063707070724579370747791816957025800309409129027129483067647348428317619954760243829581216243188503879965377314113088350801445934076420721762264837874779069083042976218394531459555911360418643135712631612857871840904808858912031160550203170937234026438791882006426910457755511369031241562517554654647728764201316036047420919042659491504699556116996434991703417514277673792663369298709986423243754636436725997262817765266258645800558650336200733912556352674035359187609873784558218786018045047537806317761440822954212673919191956151781146064232970906971424886981048461174926208385835733867216587977481418274196484233662981857076329039226016438960592711847790804804215932431798568220043058722570165280776172445867823921079603770940055685124057271324152418207520188598923657000348998340497610130105442272760099603770488038562147073907801638168609147095181976144060151950355004337546666014352218632694119717307677069709238798698022885443364017432528463896168837285435161460061493419803443342579083883939900777780832695108828592260232700695093916399748661327057493409983466875801741094583113261283402217007782831999964232847464702504344514641328727062440268067433840285802003644053303454135753669069297400264385192602022199189084636001785515031349861930204642520109796894294071547801583190047021428026235740853274641912491274414285437342758242662982005973521518710614517657200959527836014741875403649209380799614000265215119050110994484753834944207583196251421457999813140908470509664423781435797857837439859371135995920227339163108555555292197931602081849271034891011413797048708745277472812743335161881647996252874381693638855303447268895356847241879956910829698880746869045184838289616695532870353367607542676837102460821003184334356237609759075101300426361665952565921374327993768767771091027187740912992727192444286165157580304426432694116276052909492696852434767476431349985995186233183871623882952199708066058416010730398342116978380972286331206127386904423243028471020324612491939184560599797011923414540543845090081871160794189965908193088407500293632003953139835935118187457757139799125182515404382596209428409516945441419000322592940430134975595442563236177253008440749795922581270824208389520691948939409954067195008102363989799369326616126238875453035946182783149682952635290515615639102718608979087301187485845173725109361100582113246838322027107946977434351086644098008099509219269355261355537395345409965061693216546364176484209363677134282822483312181805160957867526806689945132306360838337012151210848222406755859303151504516114579651421090412832819405711860837605750188642537440831292622526604389843072320641633240889425149124957909957258330128511615667787189445583745721104978733855668515828015879170771947339761052609632480255479982840433022255521044501305202492534999481380508230913310513054529213218743889343670673002934588029400952534232160939817793486454286669085157116111477902218110283418129709545904416653543482815621272521906837935616146708904439280046130316384260760567399230482172851951476449042897146786789463967506078827644775183062953954647834500386064741069161509896314888311851925447107998343867035735239293186489357515421123353205824450691486510015108028283102947560295624981241833581086427533795526443302028494547718645634081401612577679851679040191684354301018062741122491592425408416489428494822353859610376082585710798951350590261952194596717679328554953646095885612058422125908379958861850787406036759754115549747981757767285371058862418389659523234864708996694832292333627001214418222177678265033104528024079228261411664935646640538542618620125674482747518104381678452496361973796898988601252037699165493760921439804197469360852798406809023336919535132800985457038942121604535783390193530481155288517379014594823508438828767504020860229966028003914872853292757390690351801855306442763700427523265525123270396343945036845961346261756666962587991962673737936694556840678839253328639192908026684874117747635755720247955965997284228765592784569856115621417166764317413668500709831724735108273232298437872143244971800651493967599230779029411713383770712282655335764531403109478634945290332545796592693622287803869261349433917410262352653466092677946743392379329325733985129307788784388047228108027499768259455052898515468466844621132354922608735599492663176533934158936899451589337308369659137877078385477476709694955847164540809241224560914256671203018247155525524934830025970990304634204007378130296386221006843458885998373568517936814767319928975352957954721290049902789381944636498350172090865637271604406977559775769160232780007660225982262485893660677313317940107283440834287094964162963707487962700063274298755437099497553088959347793341628921773457782916402441278546981962288497657232947985804078994066487556810337139605402145422781096743990909798921210628654209634267171723162645398679956514973920730808368084338997517585927042161117157314029543088909593690298887385344467569733296274852948541930595298970979789774268820977200502370455723389570779119623886408702928744630892197258050960839853288680181105480007129535815309728848666754827882009593304561225583508436768314277690978556920492084755290880616313085166425086417149258831336229428809656934587094048109974333877246409173997955070706235395296154895804296858024866505702332231363566681923677246309408068393921962000605564647618852210931744870339913976363787067197997273375183016129991426104473146292899839824988260678822560802538223124072507543449664334849593610172095694626956957739816177948071616189847369653302271580857479813531732796058155037402358018490393303361718785681737968316921576949607071316685793437294878368808021860097904936975149095841960470151481352874615328440054919641146720179420445587518889410858214699700313475425912287344018232766190832576845037139014526261886967190880315316838439647668335305008246703099889389320722495996225765584091323498473322661471122653287872996720509512557125204889503141165532198375605891229062932009334102714059989103718911967333496151641962924719741149731372755432441273754157533261303134215871664041656488584893499037181288616296198017547093572739268023455533445184954890822405392215182916979697516707880280059250814129940253648356819283794455940028868841694581070631270846191254279066622852474914819705043209041334447153285922813721690173282758540201625116055941447429514173174791082062281674316201026391639522512167338880650946828874344381483093082076929142775090877045231689168312871249983835355175942093237017010952023042017219937123812737380176398993412034595236951303758714276949587485507497741657597458136046399517324166550934613017600631005485558500866779123675478648082076046847952873422666434239852922511078053895591042639552694400001684274349879428799565073526017905168062493844592451453254208305461309092311289569866924197763352706295087094555775876181419813911066687496892499630638215492571611764815606735198666497084554645678622853798860984440056814722181540134323705539098488699980647842999829249684571683257986329493466493372268785067501803136975881343433911405120483140690253390719274633310805907037053314564666722935294293016035288091637813198901244950069567360377171661293159747194566722981819977980483317947351686073021621283955605065983090608811055756109812006396907324961411410880697183260205160775544334972729401038035985812322240891054096386155800759662218329614067262855853269646993683472833991377848315615269603070056416811723256150979888950214997717950450339273067780451140110839318084617609426438457413710754452615144140256472339329713855825006265448347873998771236112210227478928387890838646880794887682075392179866631252272213608370592770407525541698792565882685850410171622707234088337477351546272823778787574561411537824952778506916046967114296715741876787360124639762528070913741238419774839815957296390868032482899834652774490369131161681599932775298155791345214324471941137671551654207589683431211388283738211345188008201650781339960741440451653130062206695209967579988618536559436573149829953153360252788459816252394827203825253374490360139084825742261182410999871280813263291239310797910073953994198404950754845376082632285825519274384935715143527396734220811167861576076772074120254249247200322093466291512823596454814072269515454660475286622221992417765993332043580961538942905591410004324383096904106632489844395499057749734681322587666889091252320721929655435505907617263615297273373674277496434529192311923445574050680479061658687183977321826114394446134610504627080837619884476731907787190791388200539128117811856490068513239651478434795045301514758926051436077435935472156064643530014159709563675280345702675757761110078090392036112671135177753264928514469811367442883177611642623367036648313390062199437622791183151342526894073070515604911946676939156461747430310833857775051476568333623479653903245239251728764676031367960786406706069466679047392854020012579715041668323694067476362937184018771831416560249496714339451036096602428120044020032903041619821983025948149282167404957815006595434472819796564702553922159219848282874416053063030020100500322689809203667843087167026243353053845618645422496876511977691657164029235718658878266054228101866241196994161927770518510145740667451812709889299629624864671634035403722430810987853510955635231739373912216398582286965862825337106204417080012336484826385317116364337118554255438529749193419609053480696545672329554296605647281998331827254681211767763375824717057525135316192758263364414135772916545407290832023488252029146130144566722699580861090888935319585777947315884638408142663225922795686106852407091375377569947954210166021466708457675503435036119527637741216880282593696629895006772498565754965599226477434139408251366644591866085472267155180589324003537975794589907696029065924122498852010126514198436945273676600214967250621465350810566470686443271083277079554590461143354741742530301811666797711243533569353325994184223471060419339891690352462560140834697642775635153638159470313992397980671426428753431469830821305838537853561003148466367880715409795553991019554975991916596082089692193847911244358604594607907462400143610794198199881003255717195969348659112888575581991389844032339876581459198926586715142377176197302523730921124360767336716432162473446742475751123189653952581467150358093732966612213689132500204781056784600869154147070931374154052731760929279903448500620017591628458985610758587153454247634828589614897135897925235209384698886728418376059616525416155214325465885369993562186639537724265790022390963616989446943869154942502497694871443095480878747461459041010872041514479855175361935518093716735731507028329811140652571792221190055566105605729136755688320661184625584933671722732547895278714540056656207222971543803365218213629799895226073848589404200865268405202541944514302053053628339227007324666370698015142530772765811370517960391413326387289503079751380568591358557697903924253660200972558669477030246442140351275480150056408080512554870773516518693033096710533235277634981283850595629332754392698576206855039159292694984152722392395487862198237738520625264731082998468322475130624824459556099617916134628578512147546812066968329393553473019726518053441767951236373568119904024268211013972010794911154652293856862797150022119072054198046005396645413969372904117462826424778227916333120454197640230299031597598060157346862597596830210179823824718611001505152924322165416821511831390848799386881727262700189716654217375515071703055543244802920664644598833058540248115270277305368764625826243130418888591352777624255730265049925423506625564489374823625043298798037678334738887904922733940576884785386281162038182446081002621121089467822090869634715233462865721835147218473885420167849525084457841560803956324483482912769671093464536632805993114488750166012335502737722854137142334216345195193229762778475577389207687074447175516284272299886949540952783976804953478717181304412468865707029245510947483343024937704829470288418946133779917162225957155396665373717156505097435346149660120630384028051282054445802297669934586165870871149027857112745998339786774695898807190258969818729201453658092304180612362029014446028422662854128876362016228652061477375045556356503777957318311965796688544352684127330414844104142741347662271792313932003897776736274039913749802002921325469866927745036432616543026564830622957191657685358965170366950062674985894284780469156342846566613667849500456817107432698589459971393365434573157293354013195327089208670113273704061467319024196161075255496855023646738123138392824628420793737359787745039588315300915179360927391343707295376615042176550208198271353757536382285561341231923247502326538484531323507764038601681804559482840063064773253065721640057980130253972276612378273493426607182934461194284488731332053624668909555337053228852069707716761484280048636181462923589267488562978730669437335897648290462568035543936972800599682252586448167795849288303117548662785501745460681276553947376907921081604678189212572651730725989382931701198500268831035993777686518134715552085436300390984971277315242014582762694368346927031264714590204672419275486035164162081145253830198318911301495489432232137166130586371265410577969609418523538757903673378174318429468123771863038580073350347859093455313986777820286110270664877782428557535387569276510778637723015810138203878539319909785544307770212636736750433319448432683327207804113049278815108640868902149546129777603630438249673464721728833661052010432153996754658843041813310201473046048153837241967073445396144271489229323237209556965341577741253701189730492713581103522415708702401799712920932205754477022339694449836836896648319200156813891342279654912851870679039749087300993707713945120528541570104032471016808812005677464992193900389943520108421144732807719685821752426154717716722844878937246871898675702914898960980146461338396994420826139114476236718874643898684022580807605904760071414625556015086012438715012712615953354285673940501030388793220217123207590621831724477589529488450237512060427298555864805719417905992476217327278015029839483385422084851437117963661329384248850672237775899313352617714768144095276242728946806237643465418812147479333967383821553170942960438367045427035387095230298975193626281059531538537684921717423086861533038454491296356197512013169766430713439617490610635877798531728706282361087655604003402198294667503742487222480790790597464612845010341892904862447272677589703257672229367783888440418135226857130909549434223952183189823113479696475902922061806602882475995635821203899266887811161025239729707438335847214211150062918529351340435988294678997603914387905241376277799529033056504596368782552631451010525756238584020701103597188773482574131007651039770768145350157500744543040472352322778251143173305549620597477654565085129451574499300719784715213021864010587766319169279502916742054169542772800245089794923125024953066637128559144896519044951034617482222358177971913185322061613145453137201083231091015194766779016684940457102966638480688690131996659689802562032409453386426770821242619145662717486631799373840149610847003341062513737544663052270351443198338178714881045145781325245166909981445429543701746245361980435012907525269998971546787274376714889151745166690286589821549115065330312718996421523197343798072535737409007469823124443223931424869814617901567942099730271726425167526116191094412260641077910908599661221394768682787043731649211303916911884673883810311650609113153134808142933065373547098406311115717437030914748656310458211162812037008350205735680060198912451808093432246256726687368538125585188228180376912150549721415778246227374053121378578813638189738844551626792982356015681604624247233923724308642132021195087788287434173906926101689475012867735614116087022347257724861274719771677156356205424388044388841267217591404565881540449714780903048672787513595232268762410030381154662335080425360189059881536411349340076804947038170524274494262352583125399789392624252133469288050952422023262962796857426060539562741839145724375278859980425034373203567369676605710356989090048593952439345684545130056433242672018549410780180464322400691845236400684366609371970829154805296103091902801854361473108439860271593947795855775986114945827548709635922004311838357464816402504702535569838246873893522949474599546640926413096436789645139773173138681564239463635162056161625430187240308963220821097217745114874294237634220746266878513708307281755292136814617960091847956710599039299063100980849422234427811405462656465047568065901488883719587818455921569073387378232818482032283585514086278962062547167985318907179048552079219490806546996525011424986936822125661597774022480731606276592638149635022554258224909380862156633615299772030826617190948294449331293739503402966376134651491476150284860049740440428415674508519037787338368902358889377064273890907841183605614528210183570466195984202872226368887831705340423797583109080046761950441503318305525986351325479410929720856905500656295385310731922277370155962359526367641897567081475633028423802441820709110813364709717042006183217369145455540618508000797489059384844105544705853741796554780759428039281676380534563975665045883062197864318654727470178857044052831964673734362314340325589747607569731663292766754124528730129434505994938999806875383035896652214655027675820155333044760511297943743742593832096223753179403657199046117131383674157950102501840949114781997468382753860370625881950457435289031315065832731960140095687207214208544958114359793561944592830873588884712879066260439882315790701826731016895503494686345335752248022724514749338985063999714962391072205635403891646397636558814715383466279471964571281493064544965594565466810738796871286277803245185934000199540224164825045833198881943865336206949529508492967299953898807642047116494965082167130322980008095665254251527732954416060764722680832253685161400298602687035945601850554408661672516298579964226207904617933939631740271032165765075848728283172917121876581379046418130968660960155098042990141288739354957533763439360373278058334894476424762422244952847945710606467791396875062033980094540433935177072781113926225329924282872714563823221424537576785613761439157251397715668166485003044140864698756632060540728932696027719443961660639398329446295045218822598802144847893747174541368203931346461082370794849875175461107101424451114972782898870253361803231415363836598856976778604353232628824949846735891926673409862230432875439789654773693329758692128015321502034485802209338258146172254238143193555053935706424749529187930416149892180117520549955782774662122649079712658328971985430781181088608711233149718504698329388105975907191380566451032763982124755942469531156857200870571338101299690633236290862456231048485996135830420432230452113659301445804734426920972587801119766284680039271713200583583200373908393933700922209746814502570816330867497548759005741708109565581213276486815538336446295286777316377514075528531578770229820924888132342995557349520891857057198809532172465742724351034142475872967977988624783985982591653935279945503736112900221739398619240578931599788164793243461196843595270128884322317456387885309012309741764285246590088581562764166258934257896041740895498797507730577522389112798972205546029503015450175422205410911459602204964213217467458816835499789928552847536018821964321564382335288084274961647924085562042416772683109460079878384246526306072776794380782139388444162359524594517864466145646434286030813821972942465326439441310367754731107436523863663170565000817706826039085506236134268332547662732263622819444093611152975959057802144813654103198742300947689571022759172896853004615611452442154521985786318851078168074878859077774463676780366654369006672482127194884883910140338888002202025436380664608807359624807169960743810768304699369280620630741577888032716328413723422540329294181153672557605724378931116585124941482574300739479279330950014419934031920067881756316396047021293495736876877914600936038270854848754497303653889815772725212122032172872057863379970710467077186701566746109028189806304889526530395823995073860726766398323899464410420191624532039541069354542110660745387414630026599568333984350460983081535234521561184684437441726594060125937126062536711385839611712695326524425329911420697350049236503636851345011127828112892290701155754816429907081115998967173007074399831771469284800793643202099812593159892711899762415290432582958324721543913842971285831091653281595145694342649256344033773204457525914690648166092700370584334747784136944958308774583352790479961782148513645322393523977641484754529132326026031099075315380294296561406490008276584931629862511786263478240714841911928582868892986070116297698465291882315005865632024464977756838791032812470463356087363318245266066669215076777505803218758342522242001040461179987145245442789583981051926824576860947410688851025410041362113267098852707765738127160268912175074797787748663978360387743456136487346844973655961709054900318815399889020104319196463804924001308715270399701997811525677168379759268298287266022525080570591556133376350947333126185455163956569630735200016756506457707316172760475439949788818155847162898864563100627819116915344777888941432342614214337726983852106805693730982665847053001433418904282362652999748032292082257561897970179437639885006316854780844803544737556165599192960472651504020992927293561523119382411942279830856966102534916136807315687642952311776212823124839516709347790203472410081427976549578030049515401435699970501191021894913856824492514525445928464237201863305679998221775636718525065890652284331252934320566928878315455280193983417087332840014715025484224759104258577634481173739921726764606162235423708075008324262691478685283201299715340043443815515791226559685845094126223436269205715547325808030773880859684537636354848812856382671925900896936558068964693767286815905038411787655426475262951271707430924557157476569132814642984412053922052401633508794696964377979803927892255054239309743444977892305313698761722741131607947047738334697278755419234266351912451348904897457890808094706513731050361178228897164536541577570753819330636932786428879501763276043409887398903064249709268349917047125089682548856025368734788655791372064451573648307974374568031211467439557572717309184700589853132704204983471943541228969781161315538930424187547255889793217438029077238494285735181372077617701670105933173559295029099232029069022837125044658769942410507339804690551415083958768248606960226750802976608573367964784342850632744241886879881903975778191970054804869693173376072613779333640383491025041406188405268906521791747458236728567896976326926670606083914144179458477304114648198330379504370535093311145464039922176148576484035427174099286446496751064374523913201393791218009681599151696135721384902399765516133106229892325266108619312755296990525630213483709476491911581564978901467243712246717767289258475651741017190136481930581506569876015897091483033329378277007508057678965623024985111087699053243229946633749758658468302661081546945187963161658675917239587707987037134630960757472452952936747808105408174665660785838825829121491881139072140221237052576272592936558015045173916838322619204151508795161324208500634673795411207040271700455118688334037625234586373600366192770058789709806063546114496826973161308257496089009004509340392996063353318060958633018017327207717910390112488685987754400901865199084700533540183015344310971427649510886778988829129292192590962845571754959911978248881295161996539184641328252211577859074452467398810058448379222430212605491127143229583865129730778352641415489256945694980672134707587723199090479536583136429848466730631704839101936128939434838132522938854470196878894098900397113450991309240699808292683472204204779541441790353843151634735480089816934224887604343408697979256455329349075840759725176537487044055669328832791133567559253104928768623769669285620839918097690129740726163806892110796328167084931921972311921419893070802698466406324569924356865648006176558340816251316470438676347256512780918596186306603861216244662828414776360621619630114758599179603355368490721898643492705229661857802493633393421925238206475274145018892757837798430495146632951037878044931246162439102527727438263847416601647396373535572374037938283757994609762093148474727262297489300322069786199385126862379040748578846749402950052740689973507073600965753109167069364877993815826311544772558696150185333277416460147896018631946084329589303276951691572221014626871054180603975849790140440784275356646409512976212930406515338116140798046896790070786656954737795651411642271655830544576613742111677513927842169336666231814098936794086888918105365129284188767539283933294374300197571058310533794450826555757279865256042387369556240692491781120842794550833241804153999307969335805438799737396095491817870570070331996880534154529651214964354032346980592758106903909963182413342347646878713913737194128703827504910789392355700652233984402364434218609135621638656401368929443424539678750254372051951707844256634763887291086834526546685748601630069596329311786561436352800646387221349827485434198883850092787204895862524532600407098773399240869227694362416586319146683960839817185359986616649454626034435809303708304546690151997024739262377151447997564911922534132921396562963777047112738976517770327985480733762261479169970961093646120628707862487926170953985558424561324270945850889780469664942240532353225108455019806245477299527501174087141115565618489340639198980495361090327905593537269942593552948648327559434379605467552435256446592041638983631519989767070743372305221846638345634272560048072365330971878033215479087396951515418400062114068375867947780049953545456053703275010802477245191743253748442332335097983758294049101118322566041418947261095006902641177999278823433789819297447072407461479517995016034499148736331323229356000480035416793599136689455153652838613356209200318488722075174032104742478631578674150323814471609960860797433072317396347974557634837133232095657543078782448952248255101903027332597998811483952977446869967784402348531633769650722522902115007062383706908502980140744988489467693747823856242173236233789255483487421222304951019478313486306176858731054675465576402316095138703590632844519869555769397573160276246790835555035146856468473926771576244402127969374492796342982468521730106942659087211623764743729209446180831162893490305160366744617540792077935532630920135722483668262023313650219816613641102385576650853992061110671950701205725763841747473300588080439540641545435990101900495826825915782796087809463467956055237554023165352120820288081051613646134935469739853679621786086720317249090294597040498834601632071082014711770629499149226505109395428976530759513082856289127599843189012663861196323555983275550288118713782086782127833731545939939130381372663907239209282592031388064206958752412604008976014957230076496683968063243708171060039018804890821410774754494819374989875612568882224224655635757796726614576625202718059755949813914549641077554139428464461549241078377143990528635068563216189279330098122559188610583553046628915972825130224099580814566975142136813672638712262349303451292491939206140419895894428349732329404993285841295715426679997726518876816495427409929985530375017504152271128257848077217091620179617769137684228814121864490096890187919374977068533181349049006515877876884289419714296747412795441596096075458408235662083085641403425927128886842175678861163957662018659910834217882745367574918296809831075746748291205803856660688463084896853427065840700450921780943674486962901082513553060346499831178929388303212526847518854746701995876808062702953908829693671049787744927646503777984361025530215221523933413152741697788474248363692192649445620008642312000394420012219688166816119623900898259762316832804908189625062845680139034761158037454936705528128358874488983459997367133232278706687516704887306536025348137797985445511899220423046225325531017541156946215613059607743521106039751678078426669085247878193507469353093190042093235411256611780329574192629856569263406701685032666684238070214176986633604215790004592811932959596917535159925586202263848707513315031497630699216367023607231569395754171031781427960347665723836352620607898516708867516475110904446242144939957840974023287719692733819472040523355564941694794112505643049100568688217838097233248405013107693665931304199329484115354285162894227622437618734060184839921605493252790497873043823312020050484307565020901365420988191902097412848190060647934651116305723453484063607228081536949507723898180802456662156691353271246583994627801926333254890084510866349077901322678586042929124276485056028684097626085661712292468113958029559346355754890040630231486540899803421390129049362062648142830495150839489321670904513848026606696179041351502139089026926633640487547109766266217998669665573322531362857699939489589224487064041207226407810738023009708451638695872020332166072103894136726647351659903320265447345035163028347562235957362816067255785568773606889105167299358571465689271655892285542906575936622008810853295361989200563305085059496843522245497189897962890844230862207401074710450487884720070494184780802465445746800916354898690766174452097781961917067774363311358934501207099948108639630087211938293426639680866196481385737566705260431654503444463904527216243000572778252347855165065248078961833340826551324797604818838700677472837064713590861036749127970976606460734086648908658642423692149664113317121988007649425756966560981820513195563908094822928791772339924544802149970161629526782275602139659104842169718941857775250394805425811642383538191946911971384167161824223781998127346263976346478363582826285048306880375120421701675825479467015032110656179263757080392394803980686863313158760097383835571030762885278282215444403352062782890929437211283714036649963068549756626725512148021452072921302160646793509330145697926036518033684973723014670557667655049853696155437399233767067680680876318074982630877469694683328679687381424307224393369670876059369363609043458730525572850788837602500714677874530783546301274601392978534746586028108040409783258067712208836677921394520368529801252611841209409479073968999876181633155740362326585099227403963351008752156440607984565115621141495253666491333747282327521838793917044811825527350203438575266776260251012747359120074041591748657940061540106116486460216473439656945279222512695125590826004214090169814719793123612293972730561505964492426366892665551066739831007607854089746830667568331379111205341464088824851028906985721373339012254824650124552441045740266732935801408044480351574732326114503956065592574230461750794684334722077972201674458980135163710808803932188169416536741152244987695924376233961344492980781634590547705582702255581371420267174840371046949028625419051973835358870947747922477866925711179285508485539446651651592241577046988945273715487580282320038463261032962707505363931992162109242241985676532354549931801929573807477017557636014537311226767476006833095939255668776980860751803996949042612469456446777013943037299822700367895549327962576624692466693320180045069446605651375086964526083221751600634936962160702102167742159888097055726689064432282579727413461626563966880406862804223081095969996594617616805690532653583179709173579669808062531377458604089342439061461931747738696751682146654440231943487147613174601505597038592052597873458257491984399512676868619116047401873638363507715909488914082709149671745738984573561495861700755743069134942022767214064269059092417610500716482659761171429581016782485411716902363648964602764699317800487336532841055145351766170723864703603000334038319679086051938720291391343045721214546761159629756047310333040405688288433904169131969483913576632999309348720480806538206617023207739198538882169645803476033284567252324765300323843646977908571857226171339665850535409331097687166444251852944746553810663524992607410934849944808073229942360958260092046571274972379771879949009055431080304199021588899729255945376478700823378481944067197441245489835504441857518997044250382218562402810992510087293559422571837866655031042243406800555361565869743308772057420974784843776188914474628515782998839721530728919563137616362586912180039642680873140397992966623036439799600432639201769084905668155689366113458499653161868613404000019276126101327328295229340521611471335292385812182787734847969789699204386422972559503276690274698777365355273779862189707402550102311072634691743837791799804306944856904575714198662582389470515887030842038929756547654597068820437928704478710679517893571779743251837949480123445546309516435504442886631295893432172860259920504712910609139572721804760744975063001911403019316026947314040986664430374478398949392859932664051301897691003246662985653295644382199630431570474473269475457762491884840732221060739626532136258533415928534706517851508299939349451410447911880714151258138763103750620637118088191497383052404638975226285167516228804630310050587209415200032641243844373441486327806782990342375302299614225699737572708927228335229501700129484983780455915842023915108114532358454302343996783785771888374622245682476271699183738494362600877463764145784934244901029659052206349196037491954750460737245171764059098278934541985041815200247537188466111507651472390369967005719614157985211711912587282978005789693678721790472082416835772520046790190154957491852644811327314985781031725589519087888850291715194287569242859873928726400797012828865434849536014472050219931224567178806185435612349114110010046252010288235624109102859870417064977154472077582160475494181954532425835502954104830841419951933248276817821994023134106238436387326296302335105384818021610034246384827262497477835645733164774558376192642437088707443089937986242950530396119970200948078741921734564249948608667093969464927817367984764707900000740872034727034590827601373279533345743149078785387512887474131906287479689899345485549625913883138847707230200838382986791970310280122181258188021201391957392710683708859368462265815520972336973439244436748165482155623579816794768715436271180357249939718116189529952803716569776594689544752253095550028871752307288969017925892017374788565270068126285303472435092544929893836527398790534737620327539550928623989268804241244736478973298031854644895574574604984740047261703680313186688922882415863095401839822947559164444374783275980883799099635615262181993874464336621895255043111717330180482832990012283324833639279888087170646614846702729037722965533370317517836531809809865129337576486222576813273494081733144850550697805840350637747986354913450593438068254677134347302352287233980730532086338484892716280819347831487916577582988163406351049540255000825031309731855003455203264304624022402476986212424216730474411231191638049049302524982042981762428289854333188787924887460880579492258610732083380778584109616098289588327610370371625509623605833701630222393531535055013103186929976708653886333058940963892733046607771216419615267498450203633861835280366247971623862743558686401260509276386693941461626520032667060553705143812921162812659539221106349418853841419950669077007387659623883031048382352129495814598366672127517758562500072535065994662230075781967749306098821361995353281570255510188934607187098059599173027822075063666198258736337181371409462921095253686028932326861043451378388412042015407632551088873550372231413908805266312284550500742499612305262853534600390723606414236364334480882071860250281255032874525290324190874271465469529276964610013994543498967162522309895210777167761765695384442818454286971337304303710826049069701344353566672623343244678534114795501429192364876268547709611895014842839301538745745565063781758561949554763949887065902788242593565511922673348719557303236395648529008273967056875140262393700398686346841516523097806268639379016718863219494245422161457359287682166813385861871430518157345557723804383185091821946913477013919890402923972481599531583601149261613645883779554009486011248557022962888709103284090964939311434367494950012237796620637092210417911931226120188455155949448151908624662183813409463999713536448814637605364618457759791010257652308778241731926414658577634055025029568677853304579341722082835389844252838694460252887791822543725647643995055370615990959579290351882313551756211872672989530734848182732694074766189623331833421792266826215208457683690398211197600953532175861215241973008616006073238697678957897474714410256679750546884049801462316187085193062946775352327278463732546291660564291247718136894810214146075877846598814494275148841297672579715636784493021706630282216650623110977350265244323062662273011238866359766484882682859086798173812462290733435224104088751855677092825804589437855938535123223882566438440128554133791834147924263395343813792146893054351692764745699692300830063279367470855421537012734854570389675748327753384430675414558778133003016269631483432872734226130020485668141290518677618799824110049960724903740743977259223918898150541256014109003904658725193083761492443880936549871040049716989596812410150308705579748641208013697154436778394261060127382538932920707164580095806432219736857236694789455497555504128555365580352695667204910989804869009662758259829499682366285399161947650085529019450768898501490795843684319373523502163238541038043684072562980710465060497933989780567592746195309386555086290775361899415258914313830390350321109039958664379649869026285068459185133411552198355100262374480657870171711102961371210072049466333161808590358013995644043925254082475160664475222127542697023681380317685854024261305152938585547238418569218599641734423634909966217588856327430601967374782546229475466009891269549462784078887895219699854432574564802674367211841099508282187186901116176919788077815699887912414368993869491682212600051614363438679479837395357432284480626850430463063312574530127938053761953558712460168852772349423979378370503505371232737141011387030477775999897831162634339421935424376038198564677952124538650345997707662618570197154116765890661003581321423929046994530913696824470876390137240350623322384055315563860753450146350981292420096451470659144125322594141052857833091974031227038760932532981551989575128546662130436278597912716671063764255486821371788102766751516714673186314463938325289528783055104571212112227468225725559593692245792800819147054993330276502222698230211181126550725574817451242443568702767403555851329981173449684291146855359600800686188971582922415238045393198552001500212594663404412432466159256827196741419366841991918267413108372554035686560126510024580237461875388913140712301317687434046349702678935790514618870410119942539445387417834666233127084394308982321663433252341669150530907571553259436990914274305873502034597836548328664125095163696402534528356807707769999198351325946045436179615167657727156058394769789329260571839556663451747687821882379848723310823357042323480178892404151587127735072269183689552461309293839396244380693517766778225190281400296358563241617447000103982001258889042347051063261748738918911214372527429456373225792096441622870901265232616927086822483585389190359582644164749035027436510830399485554793914785239044392945281345721766863284162312457953710295417200749303792506420576811872532775255123108510900421135306379844959442639192633782430015043167292873630115596371543099049301328501987923130996118235558550864718409909647804733099808907989426477129564249350915872451983617782392487642687038992551087252628851083043768473379568871328979055317288278097150647622889628078437531725692613749659952403506374817441867328581001915376528376857317793330243740343051824084414747579153760322070444715292813499024330826559067214258594227858714330055602564759056785516099111891767887928180200846318978052679764624197317538352440785052844851752514753883942827463885753871494005834263930451188842327373276103478111596570230009757641404269348163970487850476554785890636624406100975588611116447024885461553234349313059446424786408906541319764938576354971912227740338642294600203768410880449931875670968582208067499903380893308143185139876472928873855700042038677581541619145008742499918277168967400832075334851577241701654889152252179592961799361307214439363715084133740741970731848022757845786306602195220336819420295754053485512331594238693866914200341863485693839605735314224321709065241396959317606717377548028509827045245315117291917551861173377787660845876570157213472073931345275796882264356129291338347466336892728655572589409955119557324001964847587821454549806882341453157747567504404607005672950800043406576519126879682394955439692801841134290390728317555779856189232663316834338276592668312364521674024583918475709650066054799204447574576944244229688551208294568363871495589413494290241887794557187964177185997410372846108210883844527256268391701804636131469523347428099285042485919420467579737811487529280419425397275912904057405173086938237922547873666596218687004389807279050499852604462873361019695283820189920619883309785325155141723172859813079288691014001231581736155852317300639773944771220407755227824407990069218067031762924302453921223738115145158273366201630065016925444103544528172246368702470310625631545950627125485991375906560008553332299219735713033701028073065453381356553344179763789188112506225740194810860975628798488096678165324130715105594629370378109379169524416939908093450056564769229016585349404435168704785768735398143319915987400480939045342990985914060373596789684892221080069831468873774020619344093334590129624244820970037972632103590170171437024894200593577704216082448187351265907730723884881434850258529506118320679045952323909403312645885223714994538126649650414445118421662694704034874395518346754455014468465206379807782702256544065714907302433286063531559541365735330326952760897260169051231392430449639215765045948338259779685660599850210682849110959619808099906196699228887118530000493813860297797620803075319877152449939710977656520360237900748259203065932939317399668679643481280910233610936880365041537039957119857811938100415786312386174308005077597562983218468460352699521175243841710911625116560746722633458845038101982333167180895874510087225240414433332998705334998822018119936938229964074781084530129344170506674258379456702641408173566387364039441409301154812509174146736964655689058169224145624409300518261937434502312788745774249533015848622065040899371722148504558648528203145824070576075427188634982021111240772611230877685033424085044026504463553057039859338199164706200595708911378840668823454112097228482491593964283304987642932348433865647028416627278177054332255145098700159614103588035500220082372707197370793446749128534132779298701881248311019494403594054641587727242651758146531753462091760968974999801184407964263218009451411857078030518898685992712457215829008590629931878289539791575988855923529786591963376684437247672125816589190502272793625221393569852576514584621393838361475290835299835634129988192071473445266324736707756434842544697990804763476298524486109720904022639845059903850842148364859149633400144731154183868140285051520915000317932658832481184288938873293927395803824842547192393797774477977634659747040861143489732484641827365871871211025931339515166485035811019309204027431606866033709412478247769597556676384163584686499168822638739429521149140071011223028804317128070410705187317569681959849417675691888024218297814881847059012861622888358488939572386412168836338748472762512857228088840706098154435103161767113646103214935205420339767096947311023795172673877607058543539529174991507880131181077502995309994803572350549059536373652071624946066751870099258903428084304831014198336387533914695379585287690499040438969132145755694495844434383955735997135600872197475189228536610356703147861218812667152142116309361380519614293326989673878475914747453357448999014652858733306089109927061198610243524955287143074056767919292919966736725617409958886609324917541970673153270268749125755256146252972767842203894803161015558788812171798103343658821701877168486989618670435501781489740211456708326929960569773841194761417290116603554963083887568236690653954279504913858300919171135030328520432687309535514865712580931025424721735459782481818935610313681724411881016804748614083455016462313169564819536168122668616883935557721269625050893990588837539661069098360266811372513584743827619881479143396553988929092024670796474274052706234325254973084185213634356834464287885591460426896739061652157420118998746109947337537891784192472722823683164217288957797414385593146113193831216933193665569959515302139617758558314043837628035873524421468769505412849248005638849155816872992636681470292907059729699423036088960136242029208607434132171603192716426821472795353770274213750029367120603635100900287811286100636718587170079208959694327473468825313244495696547975903937215643292906428115020139908591003341267339571730515486855790173322720264774438196160661213231946165337187560002059073161855240789668079042477340243565511088809661277222326423054272002800200345637406644446036635424317922182648413681222822517336258670978189238558419039531175278619452677849394896712154251800928967609888601085573690078423281502241839445653408470725035226674090776577525801321712043510140099648092647749846669106812687051843044394268924090831555277079478857117457859711798637249489509325081351331668970276224191694416847532688707577795510105773656868438300883961392488146991657480883199351498685295315937652541239549772426870729375463525271121151280812415024824709854768149375801043800447623278236353507023768050999922859725197252024679230354722411013088725694842877644321870361124661231414206794381991560310395325509055590704888496223476841025278075177779592655719479634483208852332376132240546481294541368862360675826404316328062397542289863054184353290000497611662209884627026371642948186719038612432896875017933374412531700998396246170702517233743166012737007858395473673066968453486824659649419468727139317901987990574064284492694054873244862862811390309593030525162522998721873292181929924117292346026188795663445377020338661413102326989910727312245603939188894938494795411754962007770794883677083146737715217080139987873389313463828198712085154693584805254727474904233961265795548246500851341330797420939672532848254884572368842770794039172830686822261155380915151228432140902869545150718561229207569181462655875910146447613682587852805090963730245275128298755744557205877681805816115846032296129928443888673229677245571208728656292426664499691470064648497797440190535718508240844132960337494311163956154481355388661958380502332060645532181723123593377674261562985954228670310793925569565129958332492309440363662261510676160636159119467623817217159693065097299300880269517707804589472686710084141969805300148069822477192083472267938528016625776670208413182967250762251002880186677092243815975734367554210041022279743680469917403101673262474591855116223993709773137672331829526191792112314022092233511914570580201543998906142006795677678123308300020446319442065514146944850863875705947037554533493310456115437928539522445040688227763735283202057743376189762180006460303979647904357537872823970015800955927032078011351479486878511225119225918380763244339082220863499839035779048672507379641771458069113013636890859971349480313431632014920229893424410285429014175328853509251436199339314483527410557385538584106897700029522360335962102088333085004242030534889218260763588016245789366544691673536021653056851471543040975665556515342331340857004877096982698406235423305470111330878022532253213894001928561839886473522356411890651476511376351464545906521063861293062364306474468642415817192884727270341091428369650803927499963613683025046817586847103642498831933264237574410944784629049240762948187786263457772191200266291755258069706855295819084766489200747314301625199265641258031264387019304073064117163021558397766226673211928557288011705389379026732720931011897567613770747982524889729568265546794862245747450501516995018562576842017067324442731364497550750458120495852424307511052652103695029986208579994337608956944048976346745804314656214223865624844932275107015220270981245932132556552516433984362159478183484582168263909217003035155623177079471275946203333299828105878110063402441728121761748365978431305201695469862699501207772045437507413140301351280450712174617246628901670784003433406269110845007827867044883204727773361771543245861232062831072510135554616103347153604411200578145730219254965874235141775011572043086894296734851193701084375339167292714236644075280266679009316651914246963869339822366151221212533455452160056831228383087076203888220417590737272995829055202110156830651955977916229551152570664667796145825269169261131493179018537319919957960531117340688666511973205409905301722313955431933989261410832392813437332981146367322972070898127149826761762980000034231241793073668218694702289966184347840389934175185153181489863629743275351684466198747017799618128651234485383029902302963703360933143270754472610118481561248434492328864260466589409253806016000600425908597466370448640282018479366094289430616521672045214127559489861575423091022467560646935906619407957903738642537925770676304367267285764269821931333895702021051030423653976167167177127292716174965496187176137127379572910406007926262432523283789500738884674036529286588101502160486256895918277026560607257653493621467511111858261419733821394378947887564304044040697877139967094650254450207596742015328135965408930606112464109015245219883505700241754793618613980347059974260387431667160040132660172020996517152505880492100245728006724642914156575014966529885548810916919704331074675576560653922010653776581782539367787930627086802938922736897550281021808601244461394431065481277302684318848995657905454791246976847095708874543974682768309984067956424105418309786651704274184241127286471895705947783396459522475872297604375351293105390531436737915033611560422360931486228172246034559482203141196831311092615205622773700186302953873892630073286366054794978790632501379766477687738432124214316177481716159638266150939771696307465792264675214540270961467757988417472782822305639435759726636063234966122406284541283125789021582646332150715697939500480296166585790944458922308463795137779503088151546706401686460716445618100232520102209350753639126197572039395798262572185700594416354650455103169452352827061847945426998549336639583297054876787328963337060632722189835197781574686913101992133903667397881140672625021323427271814098018997818126904629884733999414486715796553434893545065431106855758588936341811332498628900448036114400603176696863603798451976630680592825229111566941136625405151783387233927735706323373464556027996250156729732564988222167087989976968775753534907311494484279507628185898884417656807410106041806634442954426856326521125000817794064907399596794822033427830283048555562903052488123287281628500663313996308263531203806386012583866401841579055302642853330933553344656452687204669829767766131237030449216230714001568344849324175034220422982093746644363576889089263106043956894149289837238205347061536155207639994308470851436674191522357180460191145970307573126411293454404787620290238690547508097612323754044936302187102450260511814240082232637215359631791496984708260722539476558213983080093514305305085067523195426204744976562725467527320336037000392604359981553319228646532649633282511635984312728589923547205418200295088851528071382677056239993561976676133215609710951722827027729027772913336714430762680572931757934237843493322629645772117434625671360482228773929630048705505278960219592690730953076264002217124317689349528285239428073394053318550898980742409340497354590003035565621523611169809296194599405427654794169069709926050117913426599671813934298427930763250801038787409964856316889093365016455002205687417535240490768336644765189330144084998907077465126809750502265382150866190257370761993632939019409524331955863713107524668722612407653434529858054844766253836917574943078002844941253905521047532388563040619013231092387225386153550335272232073672776876107901993717763883935371867866658522259873243676374459791342688976134533915927481808799740278302697469493411538055679514657942490371487324918675639894583397167907577418554632977665611267007614522363039847658463478395221070799838273508370894803295118989538672996933015817154124987060796748619125085916560870942319152364451970219330631938612355870822345601396680884400392409559622260460391733958676597726348061023101948790407336994238047224338095346901299617910388418199284015125471173252923104314950252414945034405725924799030826736839949298667026814684317730956713952905590382658014641092798699728289483869124808939846198936492080440680010945040238962493325775998230155575236384414139995747190685760621506743647821189044979625892530706747455734898403425813483217108082725692876295817617509348427097005302832010037302381651938734631884346071412538429108220976766673964456900067403990914393568277501198586912627534788305655050654716002812499473715199187062950663396447435161801816283118154283757604051915550111675780496399807375735068393723462030429542693205194443657670324581911061061894312598118281851505745601441985843263802138212404313133761474846832262235469549674885562841417984349398428960974546412975413994646254076708105134930067963736887461122033530162401660917600274627313024845032349189330118559857396327956262850621803053336380313344232831048812826642570265113290042952939217123043725276605998642909526963201476412026047106480211699173787573515422341348648366876999790313095138317595535670835287877397584157548700061903751713099594542120303470718358717135520677910979601428223320742414782423716846988754401127311951412628993033071578737442831069336925525657007295843519051087996173141883530817488030095912913030124089144267453596810049410331780890329453085408478437390612612996851131684289578180709863346146262430495106083372401419933256292640878697086602561819478827921429554016365222248244845821143486906446943525593079047810195361828243347599609383320441498979107496645832018329245492457321272039744925894174005492122596556035536943407306471748393392551138735365563266676153828794016915338259173795423028027924916827679159670373699005785584526052732549666969538944558835950981384876753671855847657781744782467868291649842884493049253339072123912472037936469246425030557386279607158185908074177289151027174070651205427446377635702199422792270658619350701117437984852346830068046670381601058393283051836386122351682403269831413965208979538878825878141565440511639562501516103673754737639116016207379576936837209957321223735408405361086442275433280885505918588701875259147169747599026927140441261970172765956266327119821273544656406147075310062045946552932633114457500386577212353218185565395287481313643814790351311796511959282152252777740179947192610433704847052056497901940722707210991139368860464035522017036170282448194560285820964076971206289135197773935246012573656643875779658482797894436161092200371900420303918656666578380241824813262578971307019428530003599675092777415517748361110433408718588979471206273608144861646642616918432699261434480011721819434452876055711893004950857380323538951858588379639083776728482835833144917587345184561740979410747145746805184557339635426629389053135830228837594217420573158664446826164961137028038310062996901207335174939376433932110903068324842789296823678861966158173778754964470722900084045780399077222710422374143128485227975368179293715830181612461224787358108073900303417807523589050212871068906990306564993116167953093059945532415786795836603846043836768587262322795965173011025749923344201351381643882876707578335590262660210595911135369830984825032192321835738414986155143533710054073583415451967406210019040555375971741298156078139482682950293576035651125035734096938752324267341685946224920231884492259198989700658899069094323823839812824117626371043875841433003609183744878768074784590878860612681308275052447017337321174731767188052667254411982812694311037045032971324526214542630735529571736550293589582679311431614698344848612939808287227325911922465654184248597136495954453244672096898089782909046063557920542694398165615376028244981085166444895643650556304089018514377137105509148840754180005595611055079885578330254553450256553229954212400548797768797591133008694654071781911710128792003249452536113893814890891259744360884641117556241228315648481803528719152623428248303739907628125438039572669560587442279827141938052432372195184142667435549258946114019040263926566233941334726697330723924810451370429434912746328655932130082333957814587755837928844475908078780722460096913013423039830529580099039859452882123059018631579885661498281194026688999985271036503603092701648703068971170525179557285332788674456547572645573577027416890075515003351641194748699664824813071705798624698965280801628471927109461327319101842664816591658938558985613848704521412043565312910401787981418506607339260062950318519178432921119056284153301778482954079117283370950702650231461939230947620939092438306370223778453864149438320413904190435877297484237057293159657407220739934051923184427963819584087706714731191371878680061899095384782296046009713023103953704630775682500852682750053669125820364017151862524068097617707792640725544494551418831594733589214483957972992874221191398728404422203129273698009203316282388965328890351650405516725061256193336350714265576166817469299037318568541174614335881126046946917086467705118156539058203513857685708923614658140227343041934578358946527378421164231453319962525070565096150551167611830905277827909837058493567805506895947042991432420585719126578310733902759919253567762591282732651840729112567228601629224829397597159238795887971073808590432167539222548011265763210257698560841068651456949169448203658081255136796475776981102744904879211549125975462036470572737187656215400302453562014183108412455645231698756916152609352878663595637073412939216030078247906184330558283254747442535426210562511046344581494422554486369205769155729320292226447705076625657499459632401664021583759885934389224469268698701394437533099461695291522479375605595150084050149978625927354884223149330458737829459244823028141998211526380447981731767995384106341342203575565155793110195942873872202765000715779849506945730468217931916102084860252928771101831394894027379735398273077058277143050987366677203742710026909164884298726333829351318395625210024680314647185722685742429705262017451961745812360332454417280301111358826397783185803100021132836802924130267521309500531639458349446972930581230290494554630175680029725892285553591310442614752883681847799599254550034652430734866263570583793031033182571480211970941369711647261225269927203570615252375223315710945936723800375133119275127245187358748039438233876254125029345125449954374936045549299124352116230921882007630660657633513660452023150811889618027366716150086933701978886555742022599658904373679062919732342354831037593165340188060854141248748339743368779965274008480664808484071147326399402974696009056177120120498360085967142294376829428295496785090395789812791389696664846224870220687181679715173311377729758186900734509193204226463794637513783329079819587755093149481718008618924574236342957924967181761297769176492136699030841953150468583359642769066357742998429418932619351175963538896745460390540253350667880740548637568203196132452120827034061071901325785655527788678772453867561544648077105540198655427093303422469058642616507243109418223529289920090028130050903681233829805431708405735679680307054460480048046019315492676062324311902316551615432671822044025315879178634507460996223783268718131146850353993557100682306073653819355963888688420534954651557874447868967177546599368149906246015071724299445878226571498369191584684622360044024533820068784451300159600656914849725131111926466032553178222807071671243027417548478953994716348619372675796378756502451032680139314303074780924018515026409190259611458506881600508041362724812920649033308490970411679267368283702057425810461968629990740010546983240936161440179752566943109478022936216872174798195069402308092797819939614308375914663663005859643395384799605636129634996094042392744004962076439830729096879344563119004856365343222551784569327930888726550356330570023382884553965009704388408593972519707629285746667429149052066727956322582293235092995999987674849542942538427976099186300778529968959795539227057423391251656293531591134033947153339535686113222473737345823325885415868316628656498368824820904773763729317789630406266766329854368724665883719218107497131690867526517603274611950858644808858784071719725010908259667338998542973747485108673370387599986695913371226169096981406704330523316678850485031432138172250246192218781006164201519160030334634517380633045478402850431226443032305207180920421433422360284046284264206812831961092983940720777842197106827469704036881917466230001252637313094462641207707979484338296078392902970371942094295307980519717990551863161255938187761807530978190495445601006433265197328073117089989357444056465254819029355181423848525717502226484376125384647728447066795290983114661090794943231464598057668842183568982085950928075900197919557827730516156578003389643472439097074818939549260500919931792736070321277206241683066029370770642678068633388671473776887392440853128172392357418721973141561015672374899064590430955226611698525715410377936494126054668010206251954942032127123949973467590204827404308824551675072501190050815813669057093497658864746510486229842258220088054024917014335462952695782121924996215798402961645714076509510171225737154074491512901103620035154622796992457455015367709611423343571412981910009228745808733449212287426146014859070567691711217617498210992765312607355812355083756570616536355624035842504472002532407814639276779525110422471402349077255662684719901046323483147313933374867999500948717622059534548218930746222512462924933796226431488700231239714051771899891056110481814559900577981611973942442500064936661219601526418271609942318577753398964044572592174003356529317376441386653662115838731581402798169328070666630258396080078514785453456217658228277777545698475590443946583720853540285825734427175727763601464760641408340662513071260500557443545702421614976555297774433297445506927546657719435094472938846136802837656105333075580822291232452140152026696402137184319009886407566222676438549018036108205970679899637667310867052368330087155014977209346689469743736968778753545226672405372151698238937054341152288708388435806894972729595519295327520390181343176347327288202767473263157699405267095924910514346235247517139406028692607301673031367380242350366907898054219041740747158841695602121095300867428266353968941177543773681197624476693893904897043494051574127829426168317962247082823114990798736224784575461247078663125218127205668678553446694660832583525233861875854710042816083343380572361312002661749176269101170140220376246123481885653773779398105559029586385915010339939510804603366154553075017687424800673109592620998583444950796149211021649518847745945993528424853313186739043771885273409353980780405467481229335767896371875160040428551110653547413049438425433490614934233516605161670554031770924594063084398652203499641315098517015049882369687066591103508690463816394696006214918286000951415062955003038028163090768230682450458823838436116180854746365775158578715882347096762607860827430330972717704304472674970366495281019756476280619497810550027786682080368895562368109546239801406127963930245312636190638663925374977523192141640317283540556256148846610869163450421440956502992666057946028482122862823996660630630889913486540854211319147738185472990781485102974381697375331277643426710997522586538936413392094606148280272118469627134893171970704685153868686564545734563382238962185181321964513860714492560065998377942055467838578558061179502619879346116819965339389622852995651615397223849647045362194834338717092187217971586734705457610364674385237878654886458668074598337865316388706314054306524578141155405991249047079184033537699260051849041266703135732920824631808530386577154609034752318034541204393679294061320127898933623304152810522135487550172735341665695067759561672280403899292345625446150243943894525505931337781407558708121312745962248136790314153315351249581231927826842016198569189561145760570667512555143016032523478045205081908345438966092473435902909301506960086752548658238586718937877404366291842282832168755662752855108724005817904500889053769029967595028788528686296689678054868978336114088762456314219459904382345165000534793673076059617116220433239254831106746849947400301050535536363774025458430182752603003062202852810081753598804229014774144187843255531747130887004174840096516678964884005155725917153974231375281757245611505068769809677437256535235981664623023038198671409768041467699586929693933302239965115501475220939846077899567149581958419131871797992236743781440649948183242674001628085065706566581916755712274011471228749370387697605003013501879991474988821845505857688039464721129326282077608125656574905349071777604248098369491630487033441625006786649076225999386572723428856445933623295973512913368551180619502431169366018277542211114087088067618939282348992887095769504589965214132775197979337433003830432050048466643604189701213844209372813182965358134633988127639374280153814272943988226454894948868569218506904881554430657743037152892980004811704050222392107927314317715910197027832016314359122602393848141580543868423662137087391413722233985210552230713934466599558622062830762690838885647788185079506004845639167373404196029321516521390814589611408837415497619427509857953322029897543797333100814313969271358450521054776955572615018155825773282425676069673974061174514014732215534459713257957224394984956718947760924665559329891263858327828144301211816485080989409034792931817091419419314986862284313535088792205898392652174210249950484686136321859532198666728333530595059195259035132397945740160782696058758942272487220739100371946308638709201010229891142724736234059122977557434428229701936648393711238732221514603990245865801898160487339967783707366077440767300100846750132225946832857856657682854167516656279466908093802767149387613279900964760365680516994781782800179980131162668202697182795011931177278360690365414482423893040761719875933953637478057330303080743822711883691407349504875754066859952357359988614646136822714440035604565201993852662801992054610134860843795676377706610859582295569662697201418848192211725839896242519885297871402101578813257395609477820870006760658782693735209088520797461307872513240673236851178248010856465215853029527063422414226980516501542266336679439381094594639696402965628582729677078843575413773013361633277556267424331900956238055139953753486595203383947610564786824422832094857910428748731522122690981125266443199672588845733587951386523210017690440310349148283201199855338518137909613058543646056417637305383200584168615546087736074385859813219619981898249391159142584777386096889622555848785934515926745003661503566966839780550466725345260554550391654275273275460069080266941843305622148774806433759556241082579914673505875835062889556861002788884592971577613012330885687434659588442116825216401567354122597622319008180192582439887522657129866976616513272671462586325399984190674311167525850733302978734220974626507100843656386169034539180547684639857995997267370334660511509396209032875686395209780355906121161958608183548999348499190491375617864028795445419107556652185026004329899562381094777856206200497942021465105882995470211110664570520174229450748960929888648125493982104321743689354593012777061643537789627112933696142402963083397125079535683325062837039383754244564292201459983422388784151147907926708276055621885669682077073274239967149421179593810706155472455283779101090839175655597385592191720486857856408163854436376517402813920062866310541965828251091605187020203472275817257457506633386844768187236896526834242529198859220074143658714660270080624376304378286667322180613437532926836707116623001179957088785370155148500591140512236815584691091678628900153603602720864358132962441698464916012983922806976722184634654028976256321264501347753571954646240796608994406368739693723298900610142399740619956371404644178766279195790898312777359288498402397125962134442787684263677067561457277017620104105383711879389686821216790384538123267112151600156130801972774702113955205563638290106101614903411137993865244485754108208499582919340884518071946840478657900814265289369801966405400395803777966494415173190046328647495352413753220815018936035571755592345710300092256286895004103310705713297294855692478930692884425765905075524621924887612158852253979256601619431406130558634718240756996240996179844357998998999423196298105488677988358656707963032468414948849379833518141658272334121534407091409412424575067243119589101796698730522883481126572653437426891387837201880919701553872153695852001690320572874232240726891680822024026151169432236034182897477563859482598640176332384598059738343993736503258370820612017497361053390879897446427011407441375179602663855530614942986016120585115999662103289022789924387342911192636161994526077286882830597762717694823054746913469730386045093486401406013069292475640877637409282884604372153220027196400585692493493826660639545171328748709382757584459417318175793136008550948174256146959347541107304862336478334422731001853514307359717145390994238931034289877079448858937518841117534237131628134961696978033336822254219334769613194937626310952656706603345933222687079920330818752868126966664120613734185396704424427223160893514847283363279432826193894925295980154096353631531478083111578260605499397630203505469928667358751103521394678575032531458640290836885344551844818269730913247477226140949948394737594613881344846458532107767586311122654759085037623236448892978618533790701015280076495564358465507296226925002275067204909480402323565129604631574340059043126082117312763214767624200484593556965846878338793014165195958614122690267404129973144552942508324129000480688962556964800613422873718153326777191645759838076000697379549233204095165988872091550134802771590808523170720820293582915818326263413866067025871952394073643695672272409163433198467187167525522220534800481696015299354366886675176068227229441959446195365362143106016376508307982454874971630975403822070393946906479892490758433081281257084903386221687088808051289948804330693792524836094414442532958305569446367940036107936602042716620718224479306950233613076607204085971826688807315032266336238546013475770360251544802744122953689776263668959663233712458690271927231766186458861529532056980058124764221522918243599065968515916809541164705537853796885290376870994407595131111664175720900847229831682266545567504490102269947458053003976767713314350689800307085893342976070593429657090646838672728442213932122347568909846959452097297750052335666814426226048552244022285124132311340134438037899942729952500657847171215597644648989234583679998874464309266473411260215517986591006327078672813234584468304043333780598453470688806089257194805502247078671263788205889575593318999572920557142410569454093774141755448162774074416427208531687738435231696242702645393984567972207224251412529790335737222841008382088702704968576809752957196571843141528670546257465985131677345518789961973420216198847874227149974952504719175039163458903346668925540991759070310696483660621906116323563066298852437317752007922889663415914383294208059587361921198853722324213918278448618458161636291526725622323998456297513185589324490403030664748487357012318657465051422687210352143907104506279179327749699764413963340285862256029693760562922624127876318837938338864874490918271168366981277004532066920286427735483653500849409662456976516717351262868798865872079123084404500712054107582334640012856152301923524419450952588882526095352842767871799620124472581915834879531596397913171408074087161296043939016579587125286958516988021198895544010031497353848864705021815858121163001434419119451163503228269469053481647462226953451349207332548902719359507239508456406229026560143393273078932720367092617761900086916288729249964982425676862232533134485042210836660538077759445171600989610556708168365209472832707126680425476091850725489907119872261273369884567885558301158519977872279132571281639076619004847798306544341274079068135879218457946202003121586757849634702499866068991311288231383896956877252407485082502150699407797000959887027901473072932227406024342238473810848632403965848790358261140201364630971404157096809662806762932783374504560154904020796101227936334617216218544043869016097253349529467670951381018711356842944752671891586063379037067137080897400474105982311390035350063158230295718515538617506583910440129232339866626897438137773459066267379561123338862903648711277171223182414175535857797982016357111931647289220791325675173668856411377145122421522479928265506834429180591710245960492179419541090219386499831666587299866593205591716405612626349925526920788775095013905701102307804075751876803133091708817901620027492584379818584230961126480354543567305232721032826255520316459487016510646784371022185289768753898664224007670721367815402811240365460371873793938498326951380914789679075749910941568967827256539471844052097870989029426901494858012599741887167842427592483046480068519528219026262971698268623824722929521821954343929406200937618430562075844762142365617491714665674200522968618649974406280802902639922727095856302355679580558196347797731959759353308264654215736503264722861332809290300533527991188300116377117977597617940165261989745897582060862547093583069465996316301977512849374240050812807817951303713186955125992788108273526065649958250079551572376481271671582807487177720545060337356244605298442654739357480740290991731787174055458697010022313092033461490954424808426919440589358418674104003398233375499249505253413789535083638697062908068327053601393857748893769329331786903872477839136158290712540504757774863912112209533823982275587604712016991777052031203972049196148592389498439329055823815644534309987431641422145621019105807817961881505180600150440934176485373247479279775220717961816377418053365729947719193692109395991484339319294141234881258467936729786061237859092401276484620751764383828886040426509094185976145925238679297145604636457986674841396823041290314033338415189384464291554175453543172476094529600670690670805787790545433258016315374646163840827647764297745728646704628411214550455095229578344774536056309491388897172530404127545017929786516951980875707467985095967254440551010978788650270132080377524920985525914616766587185365337143102952240482247550431050147628077505727273149267389522734392308275887441106917728924541074087236455484869179215709352755763527312551278919292861057539982782152815593790087279897516793424118786404999331955423652008383588160060288153608606458790204644738452160407661699067116833576100777585158944967357434185908805056217370713133536825260444623380833320710694724794086317517302140542113470713133722226142859035178562960545081607715670458997233383543747059803879437451439570582941655585608940853865130392186259763428238735048290318340282322954400714648580846047881363719942873455575562228954319389555579019287644237837217760462696918297478655054585580429227120631423881378205618155685295226282065367767650146727366874459483861149533478497476843848526443485013589234854891151491376168378748682663107391892760811897289551851475237515960674036326833319358436937803239243593912781793004587542667536139452766113191171434856331552340109632177960694269809287894677560109275157982073305656273296311590840414738925771169721034517957290598824831382516300494366785367604848689022915761981453420002341435044744732523001370573242665974449055111145035770369924509802346487708426836057465193304444512983736310236007499410201207972289298296834895344810975635390218218197374216659709369482616954183964060914143703828749812882574050234827903384354391107507432698091846006088474799529653608987661796172642699316300437469985837005501207135148034285362034321513104436768539545515593194336056935267225100237736776918863111838546067264375092641776900413811465111097344114581534419540753420264164433765792399556579847325391213232138840217515192706304057199826020525329069812091117807516277541341064719244692553556514594993604594670745505880240051625099855364453205430171707755458927050435270895665659750231331195855400902982788514415405178947968619048488376536060895170491690109472424747107222232117525141381608559792444331867793404738227954202656858142948451120846216396040818764822794088514521510964457666596413654775452161780371379577593436899659377806805705610269677175351268452963808145943286730749046961304522282289369294707633524259047085605646697878073497960298840791307901554075736228583598618160909745577772716418418142432982984313923861131270345508424007447907503127908523015125292043846397347501680031971459376942679458532390949960484264794513397422976790761619015960021728211507588241531900522441808756130531502956382893809374990322420634788294296966506305773343902580525788625392423312040075212532506201646134006925611862738595056649727241549013070487519670750588040598851609719252459702486425914819419436660332448150388419442130485669018540220693655021742898675835081172412392259811700836450655607728599765177753894907312125666071616255430643175631411364734837571958495935204239138963672418324040762664860754418798385780408758119528853449390739495212178590107882807343955853143854370040384395565010117849193456083453630678344483026420392746399070107910984260657293978192873604389030928831610400915887343461284130080549099583465320525878830803745516926346380459968674834559943977572970925123686010186477678120641136583085559777041983390022546975858635365236002461905715692312568672806070979471018763796024415476382530865218518063071996320081163267209338085944827372764623971331405411649454228420307739570136323664450252197579962130526295900897016856858130020295246411143230524439736287179782289336043725393585604180460870699871056882338375597379329630535437389047938263562787297954433359831589800159924275130104150247755239666931381964056735122528046795712218159450783896793127777018472064297290891311227781387474393096346404697493568455128890181117278469566728649789853208763878053944259360424424038493433514174168244334973303796959574026855172136903157634912959714879151684427725527784286954433621485483461531534638238903898402644457395219194828832563940942543236398517630690509805453053482623766422762809033723960068301075844008029810874826797254783953299537461501322577081029551737517435770608491940958039425069903621622842490864052451625577981857657083789013317031933241751510060865678132427400653344437206539419523458872206768918075183617871449376894973887958040991470443718774928654318851025789045371534996212038708295099589807560723195179477634784063571215615887033069079460394534902521571490321094384655725527938944186903614433750098772564463739048189075642846649785277806833014923419875181713853636514028968513305656391133884287160409733520780419936263315999739310397869326774831153976970916446018456236825480303922662931329781402847305384668562604163829094857266079415522923989958321612715185552120459295953136395642656889933295935186519555759319670146741988328008976232638249350229300460114523232421953223299710905937866280404959948902913821454183840012536671247534504702226438550889591343592105810155448327358576327247273670513113763568141278956253293479401031752615808018469733024997522711444528292329500757241110870804164780005709898670605765161133362722654725048350630448400902672228315718618479530137072994040090579824844189414338990772147682675930823431096576062761158393227694386576037271552775981750270907769053749617554296060713687102785231617265807424647195109839418510832487096069545788982150204068079600076548052547040402125724279545424041428995725217902703315577996836793839342811211193102008302079607529317119651395966712469478124163287038756730866973543391422288315375761562693017843150450775645068241899085157936030296066835735772217224370165187407144230040503255401412045270613473763454190813799341372547414219730711465823523363375943307173668795897146998591444288121992033021761292548913845869599665783864283699137288938274400573306428623781110754693750724143646236355725470902271446124556739751935301177566576147936155073224123568050031669143138295479310268303017866582606594329616940908750640849723823541561874402904933839444725752298094130692497308020109576356524368938745688477286078609076631596694300585882681942026751938345883932101873191969225350441197516320063215315683726433246595438197778335785175835340378980425248881393500707435111856587958326700710124798110670844013054057601823030763066219994846502235316682150575540880065073306035603725584092310670665114898834754156481189186029842398968705771742150165515045625565532660145207472734868526169743229711437170029669277350278647075739576343840279485808959668064627833242432973248114230964386457508909664800812478090757764708617450087709416142640191775458292542367358542073310882425927865471310366484432047805006439407327353211550324665917953902805726233751086851178590912105467952476485926670976032177070334379233505411379169020031449102223201417812951902396207728880008819697997006216685013716045681989600430628019151918049052585999006283317393873241322501528470812438415062365863070756704364498041178903723660952880979592923616860055932857922975331102762125334001156992213862990515800716943716142340967292538590022388404240800140433077256727825215933440185695350283184579523818535266143877376071987420056277129889354083260676819572292258314982851368820534439894746909610588777310880004817726610656150904089261337085740983870252246793003760507909956824286633387877563077695656558283395647054485653663961629376162787848080646008208097799562205857615299938251029776412716977592714817301850157811215476997557635396240432107223370274438782529388297611117417516492298747657998675810860988704243034631032816016477400169011433261928095135225345902438823667050568623072177162228043803520197978806242530147077957766117151957592755357831377089320961033368381533854888999757852581596231984164768800973214971765400491652509423075997274259762260891694860928977156464070788350828161094475912729255724714702721920258002490667628721946500631230839916879012810868826353583332885983558996385487093369652978949213478560110311667370803163866191383230727424750746287563662003724122577455850252649570941021283955758811387896303410201145932782696531699811681907427620221805213732028189925454642995186274665551643412281168465179118087067071018501184725765006108422754936829540574172287632430231701560943462223646903710831428567382314442153768220746468296533382622115546046423474429695302601168531410899177222456766867110764003680902612383816364660908785867748696785246679700164602465775120534679218409149525182926724044707522864578418085029248564505934704404491860598655197770829407554511266836111211930258414173047329749846561909677451991852992706099153820220863450915457249320783801129684652363838748844185511926111073295764653731977474773119131103425364878908197851334817713541556913007560407377784832160972108396719056250590511419019972299104963204231646535246767349784700139820513483811404412370464249905397068958295733484954152619015890477484591109973018613965888869990215346452464986010286783955747883862710209683885771138601020121996148380592702332777792299320083133521616044250720552257662273941056996333212525644939228142794812293045022227617768752769404767528529494272830987799064841125705435953795404152190509492584849285442040429429892707344726328737499664746659694465732962857130932901156874679514872394690653776734867167544040071372007837203676488632648266560783988992518493019446723338759980813191677599471597446982021892679845949774755619149808565322402034467772931766553725735674203931232323292465880521986052218660869529561988307925867183987765862008685984413259870649364338151424625841210843939596052857771575686872563225977998555525158558125016210202602807179105185670765279788116400356554801296109675265022798679010576715198663893790728493686130243703901423971238601847106526217755914545817079118178165000461204589239999045208771084514811972222861010250737063998820062618659966715858464843778258511545138528074835028063293446802678316324661690019053528204024240363497837600310644695740840717447290970348228641027219589781153747998734814356876802946713218340335573334550174443555513990533119291416469736715198365047898782370740288844268135732927486776559589767705130583895693151964377595017909068389996382785335254757612732909620746005785122430261710624765229980713306538685297563474889134812199031205508659226471533592731130509886461057193125147326338639750634530508795126894571194544884953571414268476062888463754923182554347006955133043614388325063545828385200989709641653612299579692567380881716257222495816847165092511189995080430095071464752783038945163717434588600077629070239089135361912391160607420933811737316916172177002775777879539177814153730245143390614084287271660283064689339611057531597448920761919467157472183800605318642324008181507718996976118015146947544227783977542399192970513164457218790927908516521320495415481268035628432396052334548400956116377010024014524298096248572453820247170131738121623525841190727611418846767447358329074140057783956100838371319094814309306035158517803302249459216502781905252659122820438891885986117724651967505817599423566792419037365397575510507561072612709898708515022684371821431798830799204589174228264305839964274546912983794473578904438285321911757048712156079760188435852867660144812727847420702659780173971740522131080001325566038641292215359733690309931962575585716017857010597913923603923214612285487447916555646640785507745556505304946859214891347707235364960069664310343789784144114993462576388093913569899211739321685287610342847268829144890342533417503489950988506999016444707653789109330159081028628112892404557022139998027475410713864342743346139519635522487569122204140283079405846356841443361038062444477764257013316416680618899026551787231683052745914900753141380661703061708016431737593267303594024388031687713389418990686370185105093614702781403929741808640379673909648836036744070394009634586585045235432887037724511586077507630329061661938949033142303355987849237386435172834879861234681165728170176570023578141035765869959745535412292984930976676489213057371814546492620353435143357965390862191385273267982301875658313627640551007963461955805604716372555206733989114701696794870694184588091024809551140472202218610164299058919793351474608426200739247729234246223752346504902968360542524796592796966379095752244201301900288807018713545595968081883080675520108667383240385724971209180450034453250480395660313446621567770912206650255082954810450604367648308988083706840010050522839489554482253682482417060998857812398740613802517967954047638062650518566706688134014422060038417149230592832855992221501036631048589921110850923787709241371265307631712228352415039713652983710723997931906989761370465434865240150672319342917728767121796311851962979432015213389427320334342102026027374653096445216396738912499814551783695725430257280721172487632350691092422575572338938011737997779714545227178670042648543147369442048019100493583024720093190424823222310677888354185229620888351210442279235653957476426196797934823181585388152521930460620718594441370352364403413578981877968642044396623975401708589136468839972392852388916264725491615898069245287992241445418898222639710213919302880404451590517678971750707509961123798472538078914328759014733105464837500838283328086712654690604719790113803382249427510562266485446206367205233220052721718090843037365508877203861759282166092869489523259392853047952896363785885895106494065139658302928015209567879464905401758351969901252754833461824120497528834220751996591995832899593111590692244941073896983386507011526011562302928956879916256584076583597000993048741389883633291317383776734088892171092529509740203858021919845795826739805607377129224957670242801419510924509414356161301828636735337159035588218808340166437716291118806763268089576143387587069374389076645027570962574280669515033482041988636127105048735566233147979117955185453660321780461302891434092440465634190238522795273645301759552380980233848037432316211013577191621191319956567129365165586622223564164290255009610525895134580122381836915787559100768708159449184379431405716301603902248766009951842255700531413248478906746455074172245042573103053242457232918379111881867895811467136943953967798737520861549634374257551454880116302515834496591441837123090022511481297868701601567045891906287982969395689405985238278545572280908742250600968193053928558816421961079961430913871418501432919629751390251810863747836790768852887205383352240874449959304334139388436628083924538510444823150308141642085228178480137207852858447887439837574286340780866067368099550158549800390990524124309675048747503779088459585228520683681305667543669435676400100195530901242997644203413756351228300056669873901226404789091896059458294867582950206467351077592854858812748812680181347145076053696491535136784046583364876445868930926723812291300863065258415021868895622781072253914880107448354626509345259696808996226529441801976771100387451605973121022095453750100495350583682151950469727481113165654437076931611495081645198743629770640558403556825915725362049826888613777307234523439794362332212255360937482916318349998519430073805311681572670822791515278685505033378471508429226214661833372030301445324324179196593272675674311949776244790557426052258659121115964990719149946806862654235530139605930450350767208941152417122395125598952892253018753223227020450322391939434799653551183611718881786207530622332460736838256810829226617332647921154066348998645466830717028331486997897304438582118241609357464447314030523914806228937928888375015732993718272943962660452683082147534738886890299956054620038047241020456295020026365866428779944511841326796820847243504834202353441372578630374166670817540435281143157662448364557126380825091915799694353908743618446655144047636407136396344053608633221382401869451198447805206544223777311919661429646824139865928085917116103125613864610152976872080984087519238336706265753439324927520647142630893468665580613477863632879858517171674310219817605218440672488944722902600145033744898244727463827573488020077588564668299716821358123534414675219640750608466385916320907417551045832159987780818784570718059327137278589389577817512341577874923015544986347005309021430625785123066404213828696841071598977557066887411163765418862356112078057511324013857537450845437767419664762190749261709227404526447522229149280515162752106510900526853919844407714760522893945981791765518029366041816086847502537285814847402698268558033183498923566935989345113465232082621674425798179146967719641188029873716306945623726615174144407080134489958833293757021822846906372932114842769032207060832633365615490344378687600317420701846557796517623523234133156165606796472395398495403012511265899533916967898649119462052427465848389629857206046075539051476891224229053128942908612518926890880799660790638754825059731846435264931938259890389590065949776110768875179222191440623278251992209647162715647175227661230065180750073441226720386292752298556313864121493589673552714284486513445688775632715654751487506415861505561586916317644436897168002801608450804163758966928156153281772703357938962074026686348295952090114208329563103141095035446889303385122371299083017706437502050179843702750269369527688802379808706910550100720615560116462935858679622458519446516029300048658368567665069091635711643260886438527832477617468503378659152504525978667190761148036656487104101117005573189668346190274093730780948990873115374595635288827013584869299725707312751548170590586718823614155475420843097683582659005596397760202484948381125162830892996835391541715846280924438684172355324461813357291356724570166573580622994413155681059933180293470375799636271331830629956896457234967797211644129728621450207395746811484003201585699464696769637606565544157306107813900642715242110839373872136547668836784889011328641356285777730499882378322213516803752280479853515361170373484568398147824795542152301308875600111246860049663162296608677360462397296372208212600271609623049036333338540205746483508308840864761112821407376924555524957270755987418413930664488780925144896705749703937515198546038731447340575510050657518084983976324056684127769149172079805469520977965430827467472988395828858179394011260086414656321782208193907010274209975810612681869267168659600255607137983498937904335442894978120022257950733924562344821038308941164005943165667867019417340215195150448956359632464912895733551711988428743303092508357985237364700979526887731203853170988233957155928049518206237670831063510664264133727837633938423527338966076667429784569169385097062298629953062180685612627038757521090983208475601001005781494303647777112150223437207985432666874475785641227022783680398994817567943359667862441543331057640157819060011470756153244433554330255679327540927227734331557357216098858114437924241400683387001856090749466389555763279174890357502564949949718280201387037702792864547431355003100144846513795013712145786841938413934514297979354272849858314418457324673376906141003289702770406974161747469115102189113191892723999128962206848613408224337935595388613260599684953326448839716805132142095616750379672070800948069632296385673526886702607030103846114918879192150616394348526297127454978083738208244672415083715624329920231803038401682565472550857261288680002282424821336923205403477650496361008259307207532330278360975495329470419656995393240076947611636956998583115402256796370262036589476347743602781250024875692554524063643453975605038381971580662957958120587142274451620913203478453439199152582046791379596514715177461215818012955797150034435480447755929014085423917436092595765568169475754184300748171470471420443767967683944748749177340060616680517954170375271871402143151249071191919070894830365213349710083912232162563403365399707720221236102987560385545907370934711221822205818884452394325573362240573272140216781096157196119285529474015334952957503965767090353885861473516268462350110159669257373341962507874719292832030077248188349395962326421650612265823152156485266780251229219728630584635970568019780130368363209566576232840292823448041261396349075871278826932496225121994528179980021009659058231174820754866730324443741046207993940522885929066708958900565469876948009743971237871176399775751891715042934914305373084884581086592720342011108666891909233686101467540659860641093274305454453799406938811711415755382435030399278166627727559896029606789046987058969548573408201155179343840349409104373621419724844236593349542808291689503964992621256699432197884404915666572652210309098263452681234728017660900843818235776809370002914093622964962988649754967554069981612799680258169453044811419960188762816280140484960559570100738649570631767924700587681193753706398585196541945132120603569593595509359685401980670607956969487983095264700652478954190148908859359253412804886112697779299263311865282709741342775818427606472107175976079892281469015747311648300424298839410892468105678454430335655804636134335225387663439965576657902325377248363887177436762026528676730343193436643186947256670568070790592872542518577512698718760537580622146282628957128360320962747758227410394090855220771993632646865491000247106328578071196792089531497573272179244384562242564214863873744001383416394129239584730135412084322643975065878976358311089314565131291007021505224596131039293067030276510274139728649466207778411706697423588064697784984417350105737044129527292146683053027827075592806100938182942763200051578321076158337139977496948349401911248144856118845298017059860501675331038988977143939909222855626175311064022427830204543487858829199639437499206760691365757989718872765068510257665363812270781848444514206792973980734671250369803545895394169397226597695678882940511232022555930417252540450131360163139389049799737266835881651628265723542121825025610618976642524980965564231804158458539851090785719865679508907960570005582939876885220360201476709945041487552807751590452011248102786678199777574218019267685279946714177787432697445351895300981595567093572647601997930529770472942918057352093601577640310081062214207193677371097838943958554887704383520732708104950370317233991305702450496292553693595036594763771273344178028825939299266043930428079725688827699045635821253773139358905260991367333461259388557363742205842494857582506131412455871622122078169883660852596015350247620439266782733174031511911462132095868857701639756527986949830756432229504938081900410792316696271114914960886116799869821428210661222620400704487417803125254611861987204471669149128883039884919230307001800073853758198092446828362353262880626225147968432527047331911982660863668282075028555322423442152742042999626020846565136018556273302829261095739714986956114578271432145393421430908628008829312815739860971148560093142865719681752883359074529576780916777579671572688658391849799610277768741252858431800520765418625620702752379228795945183004809137976005821083030704691447757278317775162421223288401751311849085895601436225822561918435877798824277751408042311017955281293136278532690768770171015815428907856900065385731887391267464449782121419368377704762726509093908665224196736919130727960128658382396069320729515370352090937170088255461705106852762477616579057780218952999344066980871002998159666928777016888903461346397799085468963848727197546836345793424815610435652298837228790151047392879132577798870899992194018845795228240118720873830255528997808320779438221530449806491200834683954178494706694817874905992539696337462073524363691519670071111143971486803246982362837412133552960584253688218660282135490523724490381753308872219981130983632016777821454221650284822752303183646016145264467333477956948664720511666802521978961950225805392584995014666559080962088967026253041003430162389168346963740988307630702415474923317458938628864360184581432033032248159945692291754496959829225524684904236752430868110339790573569262665339792186761365807831608771611911246216118113703352203376415129164790551631216734138795606945302096950356648300678020024409825814776814866671836575064874638849787917394037205366282299372053174946605576148941821119021945381696036460222153661725937136272795391356900224584120698303033508897269225790117956815548820237694725182739045075994452803510998919461216133478605116401711253899605161164066392256903966263122287809771723904440115481616667389820971366121419050404235414720616786616254915492405963335416810613802903582693558309565334012679673755753235860416768780820591361105425394909135347602944320779202407646249917269752606349846948153893172482574087013728738819767444186453278393669558215073807554260342618743028936627342230748522786606099873150218827303556310209110207694356434953383374506235295437809836031892701891505117763519170271526602015673977835322084618026419692818391857687814064984413932333112907513517791509623696463477065417429231175513936632753947199225210886485510370653667792682671471540957799287079033083208024299672017836623119943409601231920913049807370230381481406635535721810053780914005877721889202007199728252298194743759829972474883341782574781020401133056860306626248041122670678037746013004036054725404272646503223133152384499196282996706687020254690659579772131742495094132987581554056451861280311135905676686317358267493018193260792243292798358930562829917973709671988364773434802106016850831212520688155953287263684083446882624761794413602144807631791308033822549308680906149449627832768860551856265599545044180614954978765057184568361429520065366310225688263720154626725854915441522565015868086993216080017689089333359177110426011642029628524176635248148407061739686330736509114811359189587398150950305186093035706357634772725802700239323507630976496960292792761517314328598657701183806199126477350342384130622223126319491889771350464686019961193577305152612219170543981412209081691082844441936395846243190305719538279102138497877312198429677661104292531293476724800752701501871887014945788839142164543273766175825519238256237729491382445008909966138536601837675592089165360217036325788537698865743059154612023709443952498244273445679920149999614311245009324601012218243606651535624311607309118229164015683338567759139091286044725425685220308323052947327782143108074344333582167465728494003631194807080901404276678269070988255405048720044269505828420059950545123175525846957243378208524947485281734743213294517246928649575997333875941672775985807459734170883796357311355242140203518192824094925622899455571417046256672884996693195005449323404855238245548759266058626879103560495114331282458896746270145546456127781160040832850340649836729954053613348040170791050303593623793435987336127765819469873452497612947649090397794864583823334209439602878691474523771958233050481046321205924561892612971944985867432019634343594963454449454110720886261931765598429063577960414894060144129097735751182801669529542136968341893699745901227534916730522096303522441652653049999349255221957146354012036130101684205262139660204031474779976520677543381818202836325748793548969425076696445915656490149270069019781696562888321133307723421571619302738614921364784110840742174318437642188147465218980186324676794249971570408462050953362058520312475366740903895064627181853811959605275337531358933675522669965666431136759007285683694342904488799963978111388824504685747382526729294226541385240193097980955268578740489965501576778274714683991459687232887161910119107875931454824207757784338717560347056383120279975912018953201184969605644722722700728421808724204776586185449211333198241529253748198102603373625715800032062704900636743673110277413540847945686959137516732561350791914731299916635910861486851821039873358367647166138669732253665822695851738282459232809914396093702369929434992977543975887441307824797802551959725875655809839685497060502346070247200117752576689897901752320992691862752778348663435012283630697590631004542210657296733824468786983096335385121727611126059161769169099418368395928387544389705995193592593914966453539675088409795605480354969287497510216594564431047738942739997099402269444142668721449440324391402098279597288879801815035378645995570504318688006723489696572344203999312032916216154537646434532519763467623892115057889864834168525538771446908429091760244112554567106459528759225260531679193449061910358536751613140643352130627296424882782961030476762129334049515682059739122249012001572788333949129047261549145347627784841848381059663330059001411398474535994557010186740703500218034087455676770457049167097640782970122419363801416365912351493737098470076712703019527640343779929021700845579927278815630113998025420508913571890590236957625015866488282082729353398051935484073948981511965216012653895332621237766977442228363877942196891965597023920609576956309352022189586731301952770931907778435776654907963240129658459325516952177769431858043243884890488892034615883167963978712207291435741281498424987504215141100378821368644157950207319733627722519482551805168293077027853241139001786412622980030584154925705212770933606286725394547879530467797113710246143949342099163182489238119461662956741481395273967754945813292371862446322946029168804826085202317387365417813315289913390094506694107892571020399708085725734204994312312072923865800649217362083460502489342407651441863846320697799086771793339089088411294562530403629193367696383648035112199546839502358903970422743759259645854679839729887800284691946879711581942857565332554797831613560326453894444630990929428580795324504657918975704212400636925954870506068048177144272400216548154515094862892666777229016899777439709648976782001307574146150523877936095221635397491427472560419097424917040936757597779306626334304480222989003339467825505084510788478985374625005602183360294887820787053304440695745428761720047917146019395326454067670671764711539856272611436375909502304694039648126034710105183127947860207341723628895394287993883844305375150106492378086866198172703172624885868365122617890481291410446466140295981300808041109218485680803816504180843585909707914443295473485300454400342664188258873567404738210725146675092358914985087369990015435396805662963464042840767067201925818460053010358929241527932969332511846335421441658751561435461986914169830105139968941740488855287111011884438128807488004196079407188158345440051647791453513664009149563659266477978255988691602364372170967608693431277307122094758653694608019363541615201110155198146289759291951245368365624557252092315287205794343093429227339441669719372818696421598840720621461588847198342596231835709372654407383370240746736224230884796028437964854306578021368396709084195264663604232931217277540952204003638044557992354981532581392944457323505849510114301329079091465500436460338883270744803084525088427691121431722641770741004390260521604926917268686436282341031319749370787317810030827318987210037177482481163556451755082561181672016795331380226792166149488782605948010535482913572520921708981435626162281020709848108741707582811455791405823600764445534630590149695470552357395931589550445777079340587469923131682131837946268075057292701384381025771697576540199368400175418783875186615426594127072872822141294091799469304486705027279009608010671642325047706018113338954159313435900699714121967207553009414584402104468677911036903994062977772528575351352576340127905355506514701974472000824103588004454626669052426011924379144036946662568268210335130775959746523072527021323694335602119344773136690717236023621970529822847006084373989159568027934724747280320591345907592324453448949940000882215012803477526769911042036509181524427879015045094718492906906631696832661572331227355067343436667743924375838353552187082700220418254436155818586948946667643828865632360510747929094892333627976768936873623338563956251407619409427053102321684715702100603984703318936728722010458295841127743002344489921532438378566128328981334147340008699947649702008035385621925781356275712624235936830021327072897502158365111495933028778214275891155939457494332636969939894959017592241506864024606361346238018291034672707762625258162945700876515203134675237966022592458798761250772645277436577666726417293556227963848816106042413936933019277211302122273511367168282237291166801321485397177999328746603504879753811946235710486320068065423448720566362571372941867097982492777560928533395156144037354427661420072844155554124436366497279312240469500399986046693164530013535298520891168608595062227507538431778674237070571945910150170062383421559340236791832859556945221753851291227448142015520349788485223769242546405321789870417922877416077349998384530153148543862567816441597694594565953564832311993260807517036928947748536447412190868997350554274710146870878447188753889249555363312818112074912043518158810175469655618336203278548253416108850873376977999343189823893572475588537238711599031569099378663487570674960394240600343900874588033567851707085318235067289398022816184870471811533517647574586956220997460620877584806406105361820274432903032970450728001884715159428923537177729619261531153752095143734123272104100379229467346138434279694950256485632418422224256486027514143143883150687332998664947319671617649558685587817717471382926445070608363513325450355440524379213231775722235407415616160427623846339540572028206193078599572412090020484243079988888241290231830086736737151386380517944430536421898238457210293971222940007856428805985365281913761284573230511109323030735046707390494186424852691297510403817180303578565469004405014999868275055861124004544472858103588680473886647534779327385866199992182827303877883139737141421871717968364985441321752917833583570498453264868293612014402312705934549382542607989554126416641789444115633597941093306801956623331833575334348774082189612197833758240711579501098380015662166411625470368363431079178510162852968108021118290848975580354588306195107137438380750061455465315297289932207804082341822154575761270399979035872816524816404489109801666572709647305871575414189284454659253796417904070863732913635821216110819254151068267733815541831487280405443099970965545742155280733262684307546775832320624524773500647386849706576159244596972545833228712452949358619196394176429808953273281654420058936881796182480606504915758099522868684704193260011683102907634899859137649873329077004703436449622950198622396820623935182610548602212800331904840181043410681253992550553714446642980132215852921003386655133055994359527683118248153701659229432475680343400217687410474219069685054568168734984777558765063041722142837622973203717018834105746998611859035242390788820169677088363592510153230257912273962530110766103638003167172797064642153943118194311530259699924894816994724922714282127220037954127066456318931135957020891373444612910207708382931453544331943473717941698873244292858559443377183864584370862123434405306799243376339892150608319267892435155978167689371278279980390214362098281841944250044139693229646275828267300173789326529198804490347703573689107445253008900822229161582070506562242524809504759115959528204120378454912737914594228181314931592763784283489890626720947077474352558017870220400450631276607543750838317254506978210060167382213671848533148417500031139113188982341928998063570370800222240872153865672563989663314599020498122298560963213975234284225871266447706583790665990800596750311499548414206749721112071641960496567667181838411450152156612205422789584993197031836726639770158294856099628023390997970744410721107995567414247153197027155840602619324071460615341657701245223565344624721832109667808716419447342602796343808888895985707670689587492029248846260801026203089236070792642531555321476946993549681754282518590613585740087481788340894077894547755554541523684893549803658173671617656259214268048467789383278553414280820829743008208258716879270584249823338197639801346034049369466785314429768753990570637820424870680202832091636966732906618132735662006987013708216827110813926327120958269455534138135527716593510215490329581208421570594403281970027624584899831913011001100587840275537981701818445461554686005590980645148196018127466742461942324949059412339611097842282860200429958527826221780849207718346996301476451644665088130722200331586241549112402484260749860661114693559432126700104697340103771035935815138247464784929130911694581225997835543073944855795629546316303712967921968783205482051593656392686689248710363364869203691124933604121203639307008348869748079344199769402469426883121863714710313528341348421802184117429061013180260287926487422930629344888671931142596167385261043330545078404885404232223794343442783692360984971288280129756422325771698885828057190299925518158337622548762343526108664416087634330563002451678473061499236670115497981662287296065981317004532937566927863924762735833470304713060294658050621625801170813144736750378291565720654311118395025841154033398655819346713922038348827006877191981290071489242086053776136517182514493639245119734289031020850932704255103916242290192752514806455452176271045758094836707860146985225816782262209726479838560413101761502221210665850218883768058986706787800613905396216184348869124590173324996012347814156955397476803926730370682340124665426249089103424310035126564170813576548569285982805922748860048162178031439249656980342686749057295016321469453433674123563512168365330464165240018931383802821425922892893668189413734933860013980881617325694276870160989300362830998628553960478477513266898160268664406024244030312715689467268775423522761199507061360420932358810659391031689164295435631400658482587605574090294140137667872504199026229158238371470436810504366555392173876450219947411048127471316720672606172981118707774808982344806370469895851187242959538287232121695243549658430181382420209853298617144359089678539053839111430392452391089526530824773145856507888836490400793404764961166462702868811071034324928139507891359502460994438081758232720210704635356917303929171885454464423084437639680324502667493418975400893959652416727446942115984288816035691768184339756971103580309352989292359564680757913729836133355038874221264336601107654071991141624972217590276043155072637291161305904201861566265620621634764966627869488795148229476639991095368171203111337702911489494291303832054570873065896921495664324154154238337238089088216265198407233560076625519818026305852406547961350136149986895103369001593754829505442096384667950795187613329832573904322297904692482203778934632005949387813014368201482984735999750738102639020605190801567989232730509338100743769987391801584724865338335558271372077045275927409249240068752935262410297571847866480811338559689290796603037776860965312561565409562608906216309848149297184089184440150066310073064949873737010517195899655058899488573953334860486233600907955360130888524677699878014151879541153988173281472269888050762128583031114432902384424971756365027925976945171780426216806675434010068468978527272794372730603789889417311979274402312354840288228192391497664208351473873792638804407702521305956985507648582415959344025781833931636139216753453074896860584006318658751302555909897786684532347849818350269427827165856188267277915713884964624198002997203155078048229263669290441675602971200573743406012779400895353015882512531132200240820006636420138522648052277582661905860962450787765852984468191453675644658255467891125320988075114733357769220532684505483485219761497112352146743465531568961912335791691306082279034803868353259028298485555944157575656110676511167823167532582608727133624042593950465010277972384598919783596482073311178512920877387432636122821576118718265062131509958054176697168209302571442680890443916716634986533450863132795556669978208077045335599989842600295615563994273698167825910904476681977202729597965075574088089545117918755166436127577839893388747137528478803285267214572875279499656169818419623193588224518905191153383133766204095060978947055466293970431763602040797217837715824724111938212124125218922109355901060854422036878341084621603947229155222580710822461344944234255488473726572341802472967229387022287159915429429759566756279066595220270288683993483528459383307270407724592914588818036779146285840011568725621524186952897737243856821900577285170954950350673391508322146766278277515361855660530112483718917141236972639611037164080668462713947638750228877191791766645592020485820624860162830185805502328558692778282168758907152414005438329544691676770653292092141885707438196474088717943946741873069093256270843596594756984219089562717111988405467702059825598561984017112634758254730504368433026718062934388323936669666125105003854360375195371796528239325035993629768243964861233343990920326384361616660824471296153495211825649747479426407664261392198951520215983560320123734021430913718922862867424467828905966850682553022534098590242061174215104543576963438209217781760905798059676323326464576208578978883895862957627520717189337538646344888274393018666733442719390997823257704539297249182655373378309627689022082275565217959283287029175267311251871088347400737723677030625309312170064971190343729003630072867530187859620182839842052102726576173127905317170303891929953782361909578671927768623369159142151946119240070443256219718225155376230011598879337970736198788741008833041220107820651430515096313554170807267514387700703654524520832461461427957687664906314702118533579749473684170495954554325706464737635440278626412072142998477045772634066829663814364709997902200572076912439975569866458777809934597555221150083053158817179750155240886642807696626798298416888883268209435043693954582546485895111819068806164190655184413649611166081572401892840323989227428347400006638063370924247975853621811085778298693218408829133355497235831771800929902360406260706029394806155021217466299693678373585263455843083377260170920571583009483025470577397236151942562647115498813115683587084516163232783867918705959616899369426897202228584262003062419762940815428785059918318331293074653625958896517322066607748301613339128543394690236258748413422264783441931629223432022238534105154085040851750654782458862134994531880420082509884442859630670907773486033689740916299004463675652376303348071598954171582512579424511688367940844150558440862760626734806009946488391613861699215362055846824350138829534300567427083099187079305006885114195872468638011956341473908460001012382118732197270047731878222384590901661424341910157535771958860557805353410390300668482231302631517352372241316072731648004109605775213265855085849022159449354806478714151567707857689595179764732803216654305679300713412671421484771456191321305729838274829201779422160883895962608908976315621754400090178151321469148154216052001763700678864489580938942052647757876753448675464184115527180397118531452795040370615331703925537017766106502300472731610685740632620791806290209214910442771458097703075063562690991393776840441599764858419764896627866637812053368806695322296094488810723550081127714610114542701635085255943754879846242593172376672145266912779752207770522975633109671289614689409987878172394250892805880003557705662987829874685426931666489635478824188248651809364945088967455961079024147450507817283390730040642522262758891882872408780937261156283456626234976666542419877516548739828146078209911636166217073291943974906267094881282734118208835393600425770111956929100008616705396870038856600539819803337556344754035830441366004934828036287883139455691854741233022388810494111687066778270464653419727819618738789886596770504087029947341973587799402628446092704723295431917803598662537393686351283589473896555259165008459908178715974774651531854329531111641729592506413648484991490457617179708153321850753435808118887768920027909397745410966675368480186222413704220666774970185614080452254928490690043953622402955378986337236165007276826433859217354010304419713888670580785439522034615968707404722817944903188076673486955071297955142116870346102985113671459184381409713619821183294949080726934836229266019838760594311862694699258841802596386208663081397984482457934630967382135775721783367560445731931800464105896861349990761437609115518569722389125250400952779548435090526016756957681094373192438906901062830556407491945267597927271808358266889125557119528263234724424304655118500904588366822994378891117759750641900593448597827724000270943949816526744583282831052814975237500025922244326747335721266106991306262196036697873557283982879380749678239994489705840204673230105722464621469139960307405786197503798573065841104753419847634753149083416092461964615770663847162927762986144214701802208099179101391034966938636851208278860777237678317267297200077123689968351750068535631814346468649865751340293594001838416859156895786959014740808219300923190847394710206607135645833994955444388590982950480651279791107584839686217993852796358310012379495008032717369544779882436074590185186594852959339942738510236145044191200107211061120799101869595959842697208331193664354493185905351506866152033379338383765091154414964281310798260366159407256314617605186220857249521240664164072707621406264402327528197025131050648384601497134481563693299115264274739332950107849692215761383160703412006316505559667559673166892065947988925809727937313126804315548603399519626012697744373115788153354553015830745574408434626277624483014254718321001099236905679598352368938264194008442916657132546035633188563904049424016579442689597461867377603453778235513094715547117607674952127148294597633184185371564386199586531158867969694142463779546975023618485735694535011229512786446232226046951331673882267316396179544478742283699121414473400795941652474441703132795304568839135245742482490571614458254983759885748725624419367893518170265548237956003800254500723562572248201305403448375569126945866266626490275630938856812294930203314779395068244901205664428144123316893844351647985433509813770508578267470984481824989567251633161776857389015237822973590056702678212999233607937165759895813938052860197083242031669273466603014273459525158624726216605226017740586574630504303434830303868847203277200791837630203064960745547013883176078989889246126505973582273705606010386283444779937365634042646696968664156406642314732393308934918939750618996306695606327377643635066794680735834967595631249308151604890230114065218441760609350450372248063569234441733347177981844682191177637120784906833751693658799373509438305137910212805922335082622422615800962054954031240669181518641407849763720235964889090054856278833389245336742427267819549447069114944223857977588012579030154132713842509593049616607364937226559238187879591729772754227605139341067870932276260072511587509530241069011917723636827566150286695551565256468971636651304218770541607885064860889229242954393738576579228863931653441608875631596238233245298659483631786800505216249520771014825097359768990641831615405234128293586346492165896221450439872522034618152873364669098895807586869754499579783579263816231196891756732496864249796481773354410953014298767892521482243441478183615681536387786994000685500942721996646365279848040698071589130953137656318423926751007746540844071877635807320232429817836390202860805193177226638229022395545868362048321622044868236022893472039868743802521378607671709557981616299216294989378527038633159372418513018861438779102378237784311479608193787139667646605239440355821584264044170220250587242528989784898870246578375098239136820775458512799293463368723036770029905427873853138479373933824041910944812244322163619929777263271004463024238290223403291134871263225172800143902745909018001159829017598119579263077106531719340490461615869889677339863642383306641361239833823109741433050576943149766953603506989705547227620018259047686435582233912056671201563276698766939747601485192882711014482684712914318577673358334886303388972280659972615609157481314972504945355559811314383802718938564409873339821666712640424111391821864792701045615392112882604975512186458713859156861943855340226629800957990473728263896672498784998513371709458093134143378914984273272587009222950555561696293425434300266534834696713530266843929972093278083415567896858510051236063684703751757857349865277598902611688967549652608023292092377724784824921575552617011778057512884330675566918357547920894418034735195861633804682348718038070244872786691345126193210457542131765747089476819053143164245138049395586449137942941284053888955104336724024346762387077786204696266621134881969251598011566356934440564749723069518250948003111510201652189579933446077626143804771217233956342779884040040945426949759923917382583308563904959079961219702232193419956750275707237418442068045111415548475392752767916236889447051157542302423084290194142043434333693322380036151722028225572443781860656803162185339025730089177236877212563631512485944642113728319608638885587863343623026052044300918857668145431326017512168567575692511961827626376498609375053570933452237159648274369891761201827946375895463013438460394894147531563658828099123155654933119959693850549006119264739594879526908157960826045859506538029895240645321207570908570514811652217812815596339559785233647529619155422575277674747636965811213478009786623625322297648702387627378118594143280357589443163382802352811498375089494669613622693590239913332418780697228666153691441364558532508847726056921482275103362307235516233257412548380834397107728510578870447129228182234676844102630214007832079206039784079041140550668307592305705338980247986294933855609052136221313983284134551293909924740076989780665909191317989790776712428070019051874478304686524181386315092339786945655673702901118873545897017809070414174152728639812625865897324433309460298592271560481092927303781567224084529921312203395391135936967123658513849443635676249297497265552681638403241300640068958785958067013785706486641734782022506077857553797944136972155137852367508226730653913373454541988528318948543091082270979123361569571323337279396097325027784399845409875882973950114714434697641255489627121791808767433793444164025569472252577457259960235753981216874066179222164807078254928385016402640863346509485566829762140216290824781148750318198670421313088167517433162929945842890599626084517143623945139183806438939748222708923581311806242044940695879364705018134392480305903027526241258304199333054317324726668455522118023155399930757196140291296742207221040989360019351326441676460203423901058516993016861407512248527785246879530561414197578675139031209312281837470034522545980023341574302776455125851971973470294907783515999046565159491727745070050529738305445912975838777828281321294444884989736317213896073670250814041585618302050701325124548498132600448304454070731670080187885038916722953431609825609852562084187894329602917790042644861347382451969992686599008442391087514049565755440433101470818732671397811165290367583123745262257559696747709732539071013135663109299257956456423577653391496645196615908824739797639886982133011663013567746046034619568852926621173608019654979117753294448940031255440135601451644756018389318652322123537510108895828625487974713950087566897291479852702028430514497822143320259172542221485130911037853726324638402000914956608458846323958772470101574852250184155804378832151675182022517957149727100731421597076875561844183126507240245790947921135512999256851776675158281108765361688426109021761460393519607440890342674086896919965329468770995937026350169616680545722291957581386259119853852616753265160822137630680959734858056225368649238530853847859152794128410953267951065481008422448819368582271390368766946127781161626830509019999910395852664009248786799288024313865561531153997032703741887472746828374423336273359746555215625811712926588492233599248208177500545932336125681019812760566673263615483558420838976725383761090852915792196150331514575240354404924189085714352141355650810641151568387699475002842977729217801515623635399219648333986492267584207901042700449805417789861707477524235769035082310867965046603487696063063646638319857347086731611137974425535163099328139894662618124721659076630426458950758794803923750964120622131735016855300520664375390346141970228784456095823254128966098711787187350432201571874547953821185729517310193836223153512312586037951980376435010158772167123141964408169331677340076431432920199689308252684379067693180978744369519112181729717544998026728073313210504567383454800823349717944835354530368989247362191655209894516923331113369583837483206158848247013510381116264812283008718147103278248144605662209526760431246905711738875144839468215291071185937563675247032420245651194645516651642503046743837658514339189973534441231797932844533087848673243269315688893019406344831326765572749496812289520861863655971711753337947540496603698279132753446302421335683002469700793792482216068217525186487676259234078011858324011242313565776924915971833509983365452346573597648499820699942947122216403564985082000723486731990372824568063470668398513221069984582126306524731649805537773945027764198268401095349005319325979090586648473933672123099891727928539836276944710960538232123830969295332080371616116966222703187947855617187782223358253470109509932519667812647314181700662839016875145216894292516601703066722871016718073684681057840738491619836154028775764443857360365961254819219031729111178024211822621861865446689827531259777587451821297778131825650881853848968377532726881187242555865409501036246538399302842553281008062047197080807840704161328989365370655320153038791546681008932602632591939935245637198538983509015274070979904439456130494499595817373205629320649972179592353067015096428479471381466030456013425235439808874017357117050343719304268359126823158502403904728007959574812958761805946934934911122073171926567640817714446788613504406634911808819648152292185751596900783907777674294754460586095405230029872162151894919550148359853511513316765581645686715133687390231457443237247841933366333779873735730764308315516572463202223721436337315992852284610252368996972067588764387661700050647320285586098792450441742409216189481046751683113494668144122900520476827752378525475052564553415717274847232340185869443930853304577823653403282908528491482482544933547751328510728353793670978207898309937518741305972026342146728690181460810985499422542352187100461814459130145396656605869502134813218783441010064745042365118961693680131506710285766641307378026411079711849745396336495937291173173707243180181310897511633881211214425248553997388847123283930466393353783779836659750068589781539362889359708153762481307761097146398161367748442749797202619079260438883654950388753728148647697364519730705040920200685142808476238717854243651290066785560068241964636175476458698464287772381305408116624029606804465605108571195791682765849505162802845706478137350936612867256362333180987272066996708971779003281091660978264036179826761110963975838010328374741802726448169538995943186658877403592462431775548774032594232461758453231395163931181029349719021435011672496582998666359549900966405467400917373270918010742300482743418273888669676216019207436533058836262121165883778153497148364080458931685132011075142293979980002179422421236697999164954977628226997204793657511467243742190587934070913771549838279886121874251672550243384928126985584469002141755683200511542252074255946545636388426556223585484862662315546643559893592532100228511851941937555837015924853403036593908482635760152307388790173834013040461513225175851517682087049919890118211140593766347402909686385530161014735902814721270673938952545576358520469324448602406407416394434562638880378466507050481364372325809211557027186176773771589139324618081070250035188229265452802193247452844004578611798073955873908674205841868667962657628107175037699553864602620380807465043383792761856213065436986904619816682509983731484105050083167595258765367514770104871296330587708004227693779554976506219217175635805469161035742732626581359475848041771603185276878250389561177374700006722517393955838536716338130282062631261130196422528071801092796014681785335697626319906059400178379558915255333407245980162706739222581546090011641862803790889450388276276869589255070984928363393612787867707665565070085196548955671733979385750185139215243408247372581536769255884857896434509944467556528354876106392411842739738057493524998801168176210679500989289771078253928953687720942777566656439553929005657893792076803571677995952360607531759027819053355952644355363005635780751391517769728567814022553985261503377589660733940886145820781535676749899989298882276471279515141208419903657348572793739006952372136753542435389579199990667727578651085742535175942584671827359671428378804687626196586209209558791944831577954951011354453631641935430623846458346160730469391412139486475689747798417796794603294358924404225851221853305727976978399791666270451761219085556974665346936592668242513058371644079941487615912404607409809169843008185491656105617981074885684955268539346906365473789580040845889239076992784386361178601309443378817413185911147268656717194934814132617564305283775532675167024646347872085653994023087770480614963130550252688828813544491752807718317862407866521521478929507458838276361168378861959641156200530512937619217148166995886880824338525812403628358505333890439131108999872018831012719075151981175315299365390930683626688161019073369153912070564691613633222793142971059355344756649255978225094620471372575313672990486217357432984525890592089094252135494745409520390030334921851466921526329127484845016000035408067826053623875433740321624272969109182673731016625095507335733625895059858710809261531780806763992777654329295914000704782934663795483367974811860225479143805450420820363424167482893039432112826129875877589483491774429297410419541707700249254872041717865301901386642483933842086348984749055790793881949573310132740141030090443589781644527773278346286117306925377323657834103141115099050082541004816590384670160403749084147594424442423137302853326447661508922439178167575542411015341540964341746534107302535658167719227186036575435730959617559066923704598554555509805859467266797447334130871583334814354517157434380066104295424008646752400140721377157551927024968703081684775384794216671901440112164189668529944788419003314647791709342229490281486559940732408547585045258541495315836268773523623499328971316146679056307260494135196990315740083119844419871746686321275878609260607814659590333903877589122005229885031996799256144808691296478354088971017476578319688566152586621915939940056495361223218756018618815241847583914809931129967541377018809591331266084535192103175371667314897843358923334688434482287533047448643791330161809526591742092191377203497663743591742532089055229384856231673493660795697270643507862371027204506898175293304208906487754506948449972746295147813525350352356518103838267529024317303279944916488446300094899825950673580302915042680158247501346577910149737007104329864395235434181811706094047227364899163557374147840740944558447404338133306575355312517584054002484179995314539062021945882594306143302016150426823078318532767402332285208600234946521854920054975210311208997264677977810242742250244659477413532993136739160146968790680051740689830509161660729399741304085836397937140145138723535187885700243718758674397768822116665869228854754797216124060618890949877607541799848758110560176043799391259414817532489793238013167338978449037928618559237660851264038189474199164284557898331404892599332341477874695428110768180107483839959011649797094093154073172089041838538837469607248935191145553617589557120237722510281137500485667424397344047042510101210677610647700816835831602158603179870374220102750317692642111242147291730672428866703817991122485718857225123608749472128830926806052625615523948351700434133677053970283768795565882178912971220612104303715966874212807229553192578192975208587029817232768998335254822102427149396221873729469803907155133993505983958973695112354357306558261364878697093071881087777724047117065718909124137434225881773349320765004436153367396510105480621434411367510187855450379362450161244423821910548941706472555714562327294556142472718017243226604874636110803962256752864247726087746268578597240606376405514256213951394671005747739773584772899742661239983395769276825911452704160990551835257430758764705798678105526940879787953994595592871164368107512780053936749679897060927933986097647114465600571059538474315085230530745302999407467455441259645411048333703209351068358068559460086665277485127796917558250610627780213721082371792422691757170961919578678383711242197640231339588957639407892006269813133937069444342660884009498133270586992456234569662451878155371791044680903976155390322841097023861906394403149314785450942198879699549707017278677567799767873178581515080373846264017601132854965444202817130138641578713400817058724899531207276372305630195210814695258947042502467667870346361691670929230483809899773871555289770445442577090863447516911782098657673757426389069616439298060014904602416330144620832055222864751335727172235087857394684675779214493708245644472310452162845783400460241467256078483252792056464489546744588716784593728336724900506884885487487048483084819445282167790349444515761423181762237196049974397884325018262269086457296538589991534949266858506082676223048034755919794167094986231332745252116639811320456494323207501496936346392109268362034361715386484602427855730459784978264190748947812075271394905046747863546353352123305931548466906236270972567499757760581560351733387733088944339693388606905819179697531109141652966305200977373044104484614987822985953189740148420927642265552330311237094853030609001914069206424654040775672935977987093049695319618859665918304246015549190122084249097539438528831037899025174110779622173376112813491339029657166499691036136386519088951216732435452595243546155885436727529245313671300479714945724615719670836262428161641628032147860124198356207108381014221840221404571444458104412783924192510066701063036520703436720401467291465147328745468236961914716026152460276541175534325974776170126066152238655692788105187262654221233301059441450101937776814202164636654260800863956378500190394601346036173249295029433481848912771891779615649386128093472166451307961189287704918622592433910211594893092303234535326700980286909134187072502790648063134103922307492881977946127712073308954146716150851882282943194743590503545106854155430490282512997510217463491465900989066572052874373157762220836880489534296523109472737735793083607713751492688740146026922995648004955794659811034301615500647629591426072768292737995570031116684973702885097305134663760186455608056697075551862568809392558385578281028615969489224639522893140842749184655574530893077434549652063832272533400639610101249523459813292685165829049269393418732002194676833705973269337460229284873294350246460899402833373969085674566469392615685267790245586087427585477717105050993440985004854375332181266294507970660200680513819114023914608411112776699578107942126757720083732174256500971315895593380828259718064380563347473951235780747575828463233948634234925463133394623188200905934815148641382262148411068529847394302087047231944329792488671323255617344263565797222484119482432423002948418555671448576487243612507628822780723964261249188230745463802201627400077941464243468778503461830035696390253205602329309324132358975276873749846521015216450292160641376353371667662488961615400040517294473838271955163943734772994103100512245758564788056765594432004781672082978610116485962464738080049043606750939953578940012260589006506610529280243435452873499261232188603810067813484246727256172249046802243105732159606295438742509530067795289517813798774615494803986953118464916566851818674227518689149764108030317876462220781506983866930901114602196012087599998931734429426407995060537143450263019930269529203543031246437438915823578262547420128050419054612154982632277752548241791799222359055256773251149501501162120837784621874656416260481668074061534595270252333316013380839741020210397752054027752890696424106584651861645770600596267219280930578636929690429664803988101623636162828632661081845779906832466959983416782792530244669203254858026475051302559048499748804211147410808069072536419141647412099326974310375921926463342368910202257599251446477658424367153537938323159950314916846633301304787160020296377367163664262724827490628663918726679114392656375496344038431322718035646209226249123701619172650794127407044640415656177203578204571941200258927355699318024938419319089479385047686883732762095915323288495521825755444139492455272213798487479067741028192658619237374929254340778740298890238630441852998367864839128177573215889547712873463868806408303009901257675258344314917410093186249901492363703238931037431419789020939438889782629721815259027923193903091205416320215741575392252175876309574270857039833509148116539555994552306021103438620016622704233978413607065864272358040961556369690975802948200384375359890092285122843328839388275275436869941540610663831877121766745100821009713541495395671233065096870209923649304760129758039913096742192603895099842977094676069106201030791929090118326583763363320790094923834151388007690138203176808096067795102369076149043739223500371054136777610707175599806776092906071888853033343818783777344142546274497470386611982907278556196596340665165109253467010421632387350718660100468013398937326164402058166378418070407349647722916497806234969034445165031474441871675850902901631728484400222127630185393277536986858057886716967717560444855050821329008553692508062942539744645506096752994410296483740010585413513577391978034095585308675225307719191772418363799852736899914162521881072736541563502627304822569103513759705443282549194795026611980545514829984779918418487259471446472421496235386442593048801048236695232878843381548136095605461651509880472768184572149145149459388096304936467886823094964445757300619079252303673464962182473738422198807557609800000763863288431706012342508929724293448713699222355037206954069768921864070827502507789882117165296927811314839053136832043219640244846714456269648601466877764962165752923350246643092887540934767233186510280800027241570403480418688103706481458034411154565223134913383600428579583587254370595529647709360674318630192506361915427870947358289067334360186009805972646957834002834400729372178025415294865851695308670027167386733200938574486868944555954409778985224790167764082444400763514566777920304618936498901804200125547457557670964520156729462228486691557445455660399032643622935259618968984943667630415914328216322513303139379756578286447449013130185748744803364786295878881660080544673239116872071736718153147580533177218894327352023957266368893252545112983375444628372515092950465781141435373882145192596081710281409963078585249532132772121941332774751850521830735415466331842602704676054749568630768811502029290557898702819708949745718522616434508494561080216002812353177074703945415658469159570092496087074561894644274139912269189809116247888455214388939644810473896948807793639600529392786496793028779534445895448017046439419474105954239761786181501722972594689246589980365453612803271986721687606665970153780544443233853138029127327714440368936092224095737848281547822301847763342853812895277278447864971831964502862980953097078898503400954623122163182526353539388940318103391809771356164162599680144779580612348866978679214310909494947501522431490252745010311055197311422733502359083399649437311407241822830029729807940321083473456875326363397511219575689948855586582039201311465379572417790186964600782214391957706456608834727410186651947162510769881924131032813783489534988074370120948056594818237713659666539862608492694905050852553286656073015189113857478928597638878895196911990745837974345052931337846092971618021872262767582031621533019944140788089060426970796487823217509892648472887523642992070402064085225794594901200193252203457489518236436568101856202499655091730089578431547481589946722251492922456413089073286054553117789137087751962961688355873271095836281358615822991897214299022623572600938483556842732313724227381995618839326809133428322977302070931629115424320925007186941236543037402849942540598551477718803725974240947416329550633282606734347576126191418338134113088766993072158646958845670282096536163385274914135232891240728561117225008708809241830959697505529020070072870497470552511361163250286735447899996919514532359200135468883129753298583080319208331813038222958065555855198885609185733702202018116981676889991860596156586503551114094471609335197083192096407245318579463874349332071537280529153236424540782075700245284897622924859144451188993005893081686161238129741119290817912278789696270378317728009137935827404934316548285403927825118751347458144181157528059913514297879643057299428464813060567899951009101548024795307027912319530277393598892867278331755268272578232093589696305399195028468980207715716608324280325118608713673945841171643083330192730563979587832413963403197422907486907171597887507669530430724185172044752165377148770597528007160014482806728095223418388540808794656575278338524650552701774004536713550375495659354880003161173094765534428564318317795923228576056908685874382440262466088649409157997728736183287088797685109250793543274409288272471703102675744854530957014444102534960458000618370103735959799641627548506407128263676569393698340948425224663803080921673936276547307654174035561370293852953440333282653478315328740963775051539754071877626345314666197327672087989023512847670807650182838567537301219752410627605654217691123048167469048924195757515502939199216123725028981851312223077423882271995203277893370099676100395752450125789785935583180934185283941895893140927722438324938201418124941733912489976872235753127441951571364417589552766182200618910476135156689109279863121906893352104540505043040370460488492750586729754674066561645521911159110930541756525502275883231134188875975081762594736900638586940092897489640909299461605404080947982374231360775758730515265620063189049876284146421547658725841152300376153141741344055190868516555616170510948722396517633618512721172599387358134702081471648530491317615681657789262938759595681083069545133410461560947016194408468423771754068756731344622357261678064959525332330244017161396720181802561936305405589426233097855298671222419834592083233005014972441399277612231193329424114409790455190481484371360050880310519039450026544991619089515079625507852508185975441580747283558185411940860238196856912201061547919147517900158506498339209184192019380537671797919556006724875363034400541019846338205022609882341152974874531026242746651678900550808629567692711373542191674716865953832188524615211267659764231775572134818722143210743489991412366136437278421843747017002199556146859116275228214254134946067602667988089315391421949880708937964803190973118519763481684296969720581073098239436836013222861280127779758104077988818971360753623384790710936826877517832926707481681864813009277487928259320429412182398771123626022276051250365948155638484931200228958169122133234732827082347128925064718359190151412550009345208890904475954172730150798703357196280778739589222119183438482811365179697442838135024956982256628393464828990627501129475210002622520615752206256964900420871950346251773633565637530128644660092369228428558753154055630998594139224300826712237135370802377654821775046998018315614087207454037091998125438255969073739629461887021158295624756270745321349674187630792398948784385346420604884554148689627449035991441823721890175322841644007392069230796136086264015663408516658308958041007534311190644587629082143711523769031274391857566643368077397806240511195462736856620249795528687973258326175509992726735716611764528437968324180201798006576478925219525185210304299610296857180776267232689039862922071002951137192659504225383147701064615208197310269175615028796255514863022992361538808364157243970057073361364615858273881050666368365140033183915784169373850155200705930723917735112425779813978050124468029847413522624740248763396051865340632719651322930981159558241926190188933385074780927988740039791517855261048992785250288050252930154851181093073590340938933856672557051638446754537650697058168453870953998739295623592996567842090784121173830035381591267192161046558192259540424832439570571969094941521477549270893310719462875770041458032755913064313133706207888631585874204410794112047389509184178081650568871712590179548856070813894134868670373568703849506651572052946057053321565021751768358232866215988130068636806795616486491092817424266814056391040228859161970546426170827170188077091045185789997586655617649009810410214395242794499797844889167440533067343432426639685004575531623178644315266272236241233253568390659965527124991422775955993361019804358438188867249959493487798226746142019549461863627152939761655772873890238012475431659833071166369016330738364752465820185810253632304319031380187347930751388898611506092082673700973472281845202808160562849901548700580448698062081247899006332423719572300793418609884890807682953121398556411265221377037245308149398315710571593399007636429152839842883019664480925560279366465029128922555563055094656719015835321614972053703036586831764884782692214505683266541153258936460291159752252663690260947133743699928373856230847806337068672299435798777232201462161707691454251912353214889581297477316026586865844869197737530573501886381700947206893683757904593350828757040471745723638388748555530299596966714442446842834449514232599497790161313359396262678051672122507938499917077248291825785792353420504005680018166250327871095609455366906731341348219721307224391260364379035818600370631024655421007342923907559070913097880418648319685106695800840142120074762616502995672026064261924736537012447032347214609793946484958206394699654723135781628073209076940445090566442395322755836039685189723069291661172587028237108873567046305657884321931425534260702595834225217429276436640862421140290583783570732281098347523218004612421976613211559649593583479857846367198230461112782046618946231835249987762447918929652307399494840324033867716532892292231120391886508196387747226016755987160646013373235966217278663399094743189085395841631105767123980454722693000582885706921771186656747221290087491007823348334078948948295002313069287045790705823253371389257718630756095815612179654977471240297690217044124663683341244044868490649608557885058411625578978192828964153741240906283703849137364384958193724695453839025920553928643047053390657591756329104652090288233634850304213504713754962309786277829638480400065929767129168718760576964658896699095029433149072416107033524621353376796412012581534666436722610467734034142245343074880547988186634340799111813703443773491468579923370955891200922608289304416662850402067644475957783405566355292356551040673005020669219022405737877325447893457128325751848547691507379323914976915997211428908334918868709303888409677136417033649127286619482142063716852521469229308804455033248695470986054447347954231425197870064369206405675898337649026554011512784018400406748057622859995801004548410503614949043389830745969144051165936265769716271416164170167239051727932852676393983890977446901064638923846451140958452628361544181699873942263631393764447877683852495282432129873336784833928584262930721210602569323322976062931406714886023799808619436090522996501053253857055081742069769759117053338438651255715971065445952094714084781357691965132844550411739689919110585719787137154224515833539702262713004880948705408613735824690730111937428085927545907940104067142769447720443595730964568374345824763860785832551536655283809692209418379344704194949495995460242867563998476527239759608351148257657849539921473319919471513846233480057501276561194115600430054809314095359305414910068587304396227228992055352560450424233204029735476485799872333423738040651588103407280907228234763814346542038221187442938361528207849081309072751257702828311896480513652162501783931086140709166832149193491909772329715177523246316553013588445852836557225048152460948829420751228527627132005040511421716955504906592180106885992417653557912452231141323898763239170395043473640372826242835016257107476164068004899219583293975574933264509915677675925636529151817763792803563926769072615734555600471610563067483225662908578363991296098148006889190742454172136240425938898953975186419481918162805555622942537977575260829320124246738303446738031381651016784066954210315799251277510725975035377145584954687687113827632277434610274931970417924222746243542305553586090957754570162300377174593746876206357579724492567448812320274883068387558195887870045771792714463706372029676674585668271048992087004541733294370379186511187380863754393402587051273113096631736296166610290432090189729852581762237399515330430511364597116519968307794545694288058164439312926584503884243393411916526919319477138362024018753901845679401958473007768550046410780567664594775221239920154373528875794430941741731132783502162361064875289599643545954159351405631491611709296741850047365409274698587740186114783637311166883675760433025341201344856873110728461754329716055465590721187643377704545770020665269556258668794319830065627608902802143378540824017605723510470730071562037924207065365065510243136080380192880038281493757670049613403108459248300159258988764353413390509302037379755271013633476118277842621606205124820064170496487817304535697637549582178260165688581308393427759393692457787204628441016647357795638668279476770175934199687636795174889823457468494669125750827853358069573437490434656007802882025271135648253130012696353045524306858102727164143085590596034109225698041194497749941272227313580922197233299722399130632735558871094211077198887671260584004834501899788735690390978390867157071604266731332284104186104514426006033779748693291875133207606502311176559914598211147188829437962307345023947428577587184959829970518880761601522700131769586206706317098175111954231147333917455882913522449651864871896619203638491433462078385365519355135792317231986542172747820803303354286481134169756339743933156772555460657971829925423285365398512534468174244946418744308591702772356338212800283550973189978580903105688152267489698342726115955472256575889537064393409942949802625238055216546842131822749515262876878577697329187959914180491135104751309583785170445048894804438795067645747474766453965448475903066712780455743780204002434372094197147281990017874352919316164230682041158495771177656787920659304308626171857736480608083293171969878250105746965705689991893901142291209795923496259632560476479404056941876464461622118556402877270542768536863727361948087972436084759602005130290654864981736274499398270812852566780254024594334115368140193581462144595233825212523555225404107478650094313546184217607263109714807203232750404978367258552121372068952249352111292894646473989080514760637336886585173820336467335736471570383110269427121414713806937465917499463707629693467177263717110021062470013317042513522135842196991381806938626308763582457620062626097363131018250475195199564257118472783893126732654679321526516401693213278561599508089381954444889279892556375912742852963341768838637954743092392449553863536915822839546215247777661790245576482385472121745712982134974567498182733419699670900455077510479262771876187758895034714259580393218903377031341668146614681558132721279001114257364548382176136441921921558663245447120711776203653047921264538803600166933151515085525530917930000737162139687921907604936438911977205782286687413497862880166526866537190236501333660303405639072659370715535886426767315130121858577501793116270089812414237280105523292488758280085772651111698977152041328477553966041541340224857318281297244533757619390963479388024627531835683953599991823040434602924212587550099918515127429279438249356782276901821531920784730958335283924999437209402327814085634710589950967620016423108198660318155444680902604689407075494017183141260545468144214927560577626111625323474333447114406563758303580786921531928138780223379940380874371753227521816422991851138543280640957638316587995085064669869304841461995978887056227342598292219371178322213083785823400830260046184990959206031904791043574630203978890356761640816440742775084887187649124611893006892867401409214583121896956762880885259363246254885740248391301800499374767161375842984814277413876386610911387504837822228863274019925261535580356909328955733220430737979563691235761417441473225281684927140073227633797390809937838847208148391639124000531166372348178719816473454980696484805017161311336540674151802680159459455275330911906866371036283374229617906278777071344292710360320674507787501948441625245296314854921153721317144200997712960044225515028238932526747773472131418588246445427245874233194292866479328713273363658920066871344939890665100168610116525841362820988268071695868393351329478995498851366168855983473072430156204000782012251178378906293536371253531560788498961738610574375696253663304168782625196205495577284218172667122857631267827259734461659998386160477988253530020482170931757628146189427252131230614906239501132000172085423112897244229947630882030839404048248713749101822630414616076004494460851379566763327507393463477547279787111970415439939678786736495357641241196983220673792274189482833593827860054801873701463397025382705109086347595711642488211355233133707652712172377349323010542031875301520408697984399661704298135096055632695741632704172864952137653913513909865244827734472192305911627600713888336628691384390712093376859982198684383093088824271254297048327807822632904983295516654301191207057767493341273895914837018053980079405047173397441258212090978809948668464689637429953214201738269110516116859009269974001563372500508541411474728399198649474532482251386222693191724306780352264509064867555167951086481317388044433245241105313292300805672266703697424659550745607226534403548514368483234963199380565283578843283394411640300856337080761510136339305981189063153489116242882385690721907594737997488435933782831945737098218468857090580832534987893322228631409739219203053498929601013447950238678019949344777059940572583221551941388206893482518302634537097123697766631233099060442288425425761776242441090853026291440439178072329544808646346532751643961114856867627236405695600364083950365398260806736069622362733281683163419953279931323073895822589665315080722693394922074895067307862148622474992994925041870218001355563800752363595401863157137902560011565909600249415792220184511062855119289930241907925938473836742550040915478556303363549729605453596932936861023260432079881850019388550482901953225220709942686718757823057386262519107516598059126934020948884449651373025661578976648009742351483613401830787116579791569752305638246646233575699592500508205286339113897242347993493162660579290087628528814747353790439213850351900579282977604742227454441641950680057182283061614174124806348796913457806424947179083701333611902798655233789885683042817922827840942949982493612911979825656098986500970445321671408729956559672041894904613275924456689861306534682689911357801772973714570234232398315178563322142627071162777100209218563422324573509138461620786386370176923457256978291805179712082846056924554111823753986937343116358979000132955786881474681820929630308731367823369152946219326379609721313099296710820520271364577190515971790859632901242870217197473711832141426418810830830894781739394805356141134959293388041449198315960721461041926492735604169961688003283425017070831360345724709720586254697828306310078719324820810084245849434132400912400555734034545000676686207065552267024396787946787509111377299011446631458716483569635304150829677308209719565406161813735576484493353519223703792771640977196826953016525357304492950033320965914540000252577164744233205150647566749347879430523494071811251073288867846878781174988160902922528925875630103431479759949357295197063491368853663429940969306681250819834491971374950530604033005709766185906148180020479046358893611324312341950764115209339560357805083910739243343723437656944630456511157081263831230835397198832402902592735685325674286422582039837651854807494356732243645190993791695895121220932100020870012206905428095632262519242865802532927676244112651640274556376402162056938555912861898647473169251080003413674499358514781403750622737891095020663229971988049607940154355011624409371781528162740597292944899713929898698552772876978522661953311754642229944010667799753483146512735080795160830624866925002358735574966518726402910214713881008935563297357649672484317021226691597104476337699573916940466879639769562782223568207006123985723553185238871947065200925873434117018567512494031958729974030026855041227381553064081248744073169154820896371635426371159115173294532276775330960263162567466115881349546331220677571265963724328805890848420145592696258333311802812547143872029854994614986163282513172255059951691123924692508517096278718103512240300127759498032028051825536993349526232488971100935735015569625903469297939495641647260811434961463187138707767451347555645775791535117333288465371555583438757382161717347619418836950839951627162088632959175945481147596583983829227949952313230021362826370488595673901023894390172275032952180397356551085488032061795657026966669537094377029739359588970802155832175090563399454279249546266394555211227953168586397955462361283477919172137829089255159237468404783588093066752203801405596252520432930255817152069688472150921045730487436663180559824118471355954117759406093448778827955362515615003495958810500892439896124409694902795762404512959042645775948565822718119105436952455050629432297276551466870145161663398618764540708470823148276005761299694418736655875327847470221285902494432633649548105263328476867404820389915744967556808635388512335900959954750369764505674001099678334788723284268454273046213340900431368479008312677052199049485825866111482936658522627979751582006710579514765160348004959259468734500558066901326693528213620818519649473598829201249981792926074604953197623158371482556993717467799012113180453239359173114815042849317683419053340360552919577398731529215150781457554964762333318093927607920229724012452394809892070691016504021923111569882086762732303534248339641569499443150652993390099478562255793586410219741469061724351941495771649126053096346999909963419442831277970497544260555304318529581511762208654089338626786746287330916061044187026337126281840798232341694109335526053675737792336625830851127981955830458277231780395089707930632937111091477962146135963177758815024145111644103115060162190080637427027584017063792372434772610746714946799362990065994646499588508190282986202304237547322718987136485015495580746771701524225868011395053418999222978446102195508698642293885956137915965283203211577353119425986748629390174274788046247637641181982604643642848754033100480132936578872788055702121866767571553357790013939549792717039263454194072219712023189324420075538565975225887501857002586888764743146140777950215615461991286350642682802945360334102419905124524803116783133202909935705022355665387886285021891981091273700899665478279049820338072059730473600963037425281427318051463900351197307874295254506996651844074322763175143174379349896154572339606743669674822465340823696384352560995765848959341627244292396179125904003533052922635962419772528674033761768351497563078936321763340856873332265260333977055803484196860743531161707661124864937475573947821990275047976770047968454692518299258333185827754294225028471921164294860188831488638176020957338716940652849879671224060288869793317201131051009217129514864936601940510944101995214435125414407715330353502423107252515296003624719870782349840121839551462210879261787076342451626841734937901262576405704770783936778932205752083304931122655991979679160077420354208850040573866841193667665814164877717750347396247165993945410238427547575211005711956312154277221744686127933607944643898029148958939063897698657011655732399710099169414822540248584804891926196077662847403730127989170631158003085380147526370131533764049342438989784358767991492811326198540792697208319405410203086422827973313673544939493281266961497397816127187759006425205671729616512989327129313341956818198680146853419943844447894429857936375255933362491837965898973200790661560372825724411664126423249439319131017907423743140116326938245489592014162124227214279059435019660362643587759076902115487527279078182450320346306398773053379681464959984233315472659683170668415893445603545479719583816202939326583889157969781595297916311902331313292020494904512163155111481966068371276893947356871666021739500224819441758885676449084603688546332321163216700449237745831020389315473024150974977286455974917496271987151113580771323675792292140601019202942958159361341742399616157968023342328931581855956253456749568255512088922063668918950325923064873063585776790592265641029791099971927184028176272998126187239338465610553420174887946172738035118089287828311890429573243305778892062285600494339818519692157892444849080962101886558715454717288367990601343909216471767599122412834213856990682620750818125164316488443714581653329548170074025745595960889519764053981697956662467040492391287208020650905476798368336151627539984157882800924644737184959447792576122251023465833162778039610309045346030476077208659307598850978761941826605286143282426371595193179298420991822431232581481169803476002159209966220552549968115732895532777729535539313657331288097415739857539169678767874293155293673994169872136027586668343317766365605281163913400360789085206104452369534476415563469321969569904647455393600114272930937449887904654485967453625598126239550544710867642494011713917225152821576142315281323131326641824813281156540240982197407769358590049682761943137028664873649750614761132767434750281698305579910321936297805355785495033161304412657992497062092953157537183891273404634372807243088120134224238725895686611669111716312693675880393784299377703653969229092736208610182417791626324080599202848770757522926750560482255998099666274238028299281438914436688731783099070442111960394295461722810141243311032126572717045864804143884575872228073363004303037801309553063283250984578325675753730728915284461586882625776905495322685287843434252474013813113448863875153484257700329405660714256825488359781396663986751231949213817153539288279116719696871902653229454842139923492753467527101877856772407937723086981082161798641938817576894972082628937324220680906256161894658296186124356509683791165736422440999152333426509892335048292143946217633336880368947789253141256791876255661571500656472810738411844327929680569738886983207728635548716344187174667598587532484991874610823187710309712424638721316637506217696698536808187262600124849051664890232411537843653631271578759249323651004997781405002988936427276634884680911771745612098202518718950217854166144164093831136091124326766368053156344395763845568078477980637505580418592039369435019185608949801222653453524184576943226845747272179922906786121826747019865399688479409389924219063829989161411427195606133720331290070903970466553243042892375420146691605759267339370883921802336310773074896409663722372253587285689188145762484671173627643685256899612858597811526311164313820961158386496347920536530867486918034254247215322037036421714120302246112795695932153182320727151000768356163698165503997358551358278139134512184628086590409113124512930559590212713570037845401688132046737467826185607875892151728053677025046769348772413500655379739023820785503095357279972148100101790141283846788033270616121351363365852275950118350996756379294442618345466067384464854623722425058020746784628005933241299640090624023229353468259588524986735522663883425623064666082943806692667840644236328356576975655166026691739151663523798054095737996465108504902641627725617946523064774106604214266269435229500408356857313330715102156837064511766887681352361613886025820555707886846751996499537275682383432969312436835640492294311479170432493270122769708303539694362055079591756375048819265999916781572817919736679957085385363145587644319212360751752358302707923893693484069733813119706235767700267056999492595894183042620144489381097679768574711055938975157322177138943532698330339082781166456219217446656286260186957868597174621050591137618541134983962140866600074545708134941822778255947113834464714183914957929042280070818349503375695024222807052594974518717413604947496821211312731793946487463667087614318690993357268427444132325128328144222858146121932592430931508515894220922378976741946147803476774662124796679757662249201464136821656479580257669260717044492702555993453227540362702182119145793544636972261934816735941174776059325746950239907439495970555917760330283302003010126071967951818106914847912086242045787139570793757428540544970781309184488031415049793040697132619076465723462627845778732817394353201057987669145732335392008796362655254034279753917727727601570524425185142183589595867341206590775048232069459340386630930998683049980613753538297440419933746601204398081639883759447073694368484455718624147865797804825006373381785780720872103058199301650946664680295499879755177626481296888024193919192774791011261918854426693896176872092703316848872058780558580088360441345415148410431183730859262686774830010327757101972038309149758269179015912584097684600912961330022216632747246082305062530915547104271111499711626826450748664045601087982667505651641119529852674353538703898063878631092513462543417512932548706950072006541987611709294677322778597856094825701879714262886992336442759889145809982105436666288310875082010789070709863410542038987478608049807710506596623326197203309900625993596500359967817631905216864738211112441335490338114138054707629201971121020355657634946523236843675879317058769846945932420489272146647308521355554512682315507850637877554837854130202259683095540663822758622230839580488549150227799663753676476457589374038058369201685597755584887955801713448673484719495286028940829866705087371337869840571562963189362498842060089751650501243102792889190217078868905641727024125650817099976874544480210399811195257582307157080689888682634877358798848874630183620663877950203915222234277538189547630084900898317097569565017022897029151593345711549764213023911603944564394249530555240723808205416763592893641502637964399100863434205035490661191759063502538735621689421165288298985887892348239960904235340353762480604551995116687819910589640540455535627239047929860904644865205712212817641788817361565577341852229245649135303494509488892609349626953615195540419934869758352683010012744055216655391295521831157769937447146691235143470050092533202795579216913267693269247434618634387521897118309612956164658639153392818985383056483504079811782146750582246395058114606662003563977080946564028406011262918499456282915926330391287782065859301255106675856671457038847410586714093635079423103011123751757668274973858468002924691397119319274838592334059570879583890039271727239665110567326916945136914226006790517008104602008876948478009693387757826982270405283216263723831993436909251010828866161207599399251256668218165412411689470462353902184150366046960976213224227230699886451697549183140485502870816176620433697888517521356669984237148661744295319720527550806792344136865321679991654347322398677181278620154578974071792787146332602165603393871410741706654971102908982333289790880287481201069220720022217910728295013750781782242477800317332235033957360778892870237585605620097920123938595448360975410956013322743433186264677398136064767378487929234379824197974989131430041736693313057694039310204489407027835423184969470241498647907792356145717707896332346688056642196038682019727879843262148353938021289651877414604337261954844424453955512512379572852083381791447464235064289881945159183692643945009470588165597665949850508069606601855184424031058506927252902152635501051577628559364655703706566652991762038071837072666798101716253098822810041981852121496872815698791241393915069958312542997820931197895549869166565900030677650732212984493985521648760718044576300394319768105563771346189974004445694853388119735242119669124602525383806566028344758469693031170422622977328220546128981965131182589178339272184335570349465979511929850094364164060354153644878411585284297465313163489558941323321962977579060743454942633393728449095336205496866760365391139257226079661026731122732757628021624387566611742021983135603057529566322833151615210991365133399652483940211041013878564733676529191101945586190651852961391101193859677184338613359364231181478133801396776580983206564273425126526107333700922876956963669983937747540878910857499431368635805126417257314430387629978730675212929363634711696234732601022929017971600724420013105350405826185207467765430536519534865520707118914041687840452061098778778801655547371869131435184172543784002863697561464760402615506500122947401931635958912645729676577574853285246785032668870309808182828059286259024935314515886515277167991886599758037584865415121071855538161152761253966663507862968377890199054748090782388936761029269885496269217292860341026740590275184095904304286083863905856113735307001592039264423637260155478183314007485382152772232541388509596240929148459618773015662907673833641785573909917099129091435135854831744449631139389271599810121257523930902534683347191714227830357108757884794532834629442352319332342944801749768730674980049403522916743109392956796755874441912864968951059910698734528375120045197699130723323689837054564652481250048983918193469104582265861238251227040499777492873833559641372511731049439265476367634844083259134779897187408736917186979499252716367463089418250629620390992112756823578249530183659208593520938972323014443358938929296695737045337873743215142081859121449154684091227020365678074733647008947109758408057786566360216499617553973768812337503161732685406554311543656378398229556553006246525224454212530258132671113679408905664077630438191616960611130610591416437907980309019346920565512696771885494593737010894446701473904932260463156405501668840236503824580216274739071427849230043856827406383225243923203601573490452447492983294391345240539904414196477996438671180019395719051733330141932323200440313692508952636234352860023901394022793709028411953673630036781501588035269925413565135464960405962933199900110547585810962522319633803768747981816612026940333478866300463013385093593642884972362508186655540572417910025574806737030198070600518319071147763985160495819341592267392791580193980856272858052987877690819541281058861261349886879041785447869944855152764965843023297634417693166147789958501766903682740708444863706605731928346704978049867715784457126411929348711250196503190416998289254227106678558495820833365152465351154423146297656681973917735802683282405019487714160274729212378378644261966594413991100932606870753478602856159335126510741425489271309068575487853528633948065868258006433518679813119210978021643261703562226049298840921921643330314432289584728141483221545996052989742008766779362793608123528848968069492563214307824263720750944242931656956648810661323821751208997389242371323514175175250206836166346008239449583597088914078932975796095002756186908034056335054661739671639468901604888109422853180186625129820287960394239239434002137378974124838927056303481579283851412208713162787462710307250938868820491889479665361608966953229409410280903828875272374111960281041437434994502889671918036648288308736987236716307312005409504267786590983283700379244747838501148703001648881702561353888051209005167156286536967963880063764168266726483766170917265344781519815617556324149532144524445394267000144762075806419805879468082503018461671591736216111569717785842521985709337378199916144954740449908324095522276534711119594702883775477262729723498960761491663213650684183954648159052313069112416929849896199118556601043987546190030011778805029104962911078593762524951926760536395986726643003413043772479825515869219814606208938482092039077638095331164648046248875238651949944369995312153140144344542971707592666019962633171515268890492969935149762524476211087370096590114222986993536805130519197479222246238649244543386048251517655022203758351401242537508181614350517108069594293996531216247946943007776080856226231758700821008836335153358001612162865623420503774025590190322107164221044100031872508179345211475174060550845363159373425335420047465613094415903318440157208054729109194052248558058762623025205012294753060798962420790169203287937956397729741636245652959682891604270058884508528252409293881468016566693662422329369347263242524039044592821983688585903454151178285524660170640565066861093020135640087718437237848701153343987853213848988044904397645733110729707403405495239194951181316942980746693902708822062474993425912908191104383979345066435976298157847201955163649800411639605629204525619012939922678246721231364391802007035855766980064650430527548159083733930522564283931730559405328947927771586781832104141244896653441983237741325093731054963865040642206083370829151795723096903208002896255387809935862031999833790586729842779794109062031836987201618544268064000197589451056283051402291455217461627646764981666039633474445586482840051017581641589284207847345062802036415395711353625218772416023881129501025258529061423901811265887372611719742835731043833939686859432167956887534409589079447560675284152265016208163938708515552267657374228767369177587905972295544474563438359325526075009295875337250657816172921391941151129795185929841306893663926130400991094737550876568200470883037173085417738587039908896792204157650513135543265525420093634885307717626008427290433335393077526457623234704223771615810604877647560424933289637089772316951116821200758778041220253472022142085014880195680157861679475426618173153222565941283061613390749672157518287744935673005338464134163189165391601899146209687423695097108229295786719835469628637680762507495390644711148096958423070469828473464039893875267147142590473976952536998729281663949746656654791371453441220248151285655314691969367591873041860623668574379002776348806513183120608938026103036036184698486082712108537987165712501001741589823392496545781819141095746663559595512816326052404559174855116333765933438904087592118949182519860499175610654760549759644647679875641363541118783472151001663584476097194991909183657791672335609038877680460515214727564916204150809265099842408493611454880468134290686959022747547313228788654473356828156295464708821579003344756158964397878057960301053220039498080471797532582131864449801287473289570835378272903672712789143246154146308890378174309836465874129062250273830772703306165874226403679803503922467970175742076746148891414838208722100116064724628632596665328042729560493464375586754895280019931356789588719309133464250428952107991146941029991986001020134318261839523850191621101751773439593698752245151227777019029894629517327741801610056911506621759151527939931702648267013068128934973394163473492611621502039005390066325010450385470946603769975448837737363741124473623787998516876517723958312314025428414640722024888777791922214311843929787498180696733171879868080406405752336964196228542276046490883672014384774290467682037940015945385367270785534172111142206079744524545743150868648531536416271771321405971928760984404907309050939154463730060466294591612059470291074320187862344264678463544042253738814814587237012392937651737738183472001699227787047299850820938802273408599573717088460614812089761937822670474215542042784073064451175406858026547249512078966685408602663714832171310167454408845808541256442404890579182441942115957115027994175354256724070719976372453222829723030299982883384641271250066934079245816194915452318481549720189595858714732185293547527107424114228400017464453292640508444131115713767257381746031316163716503611538684633635673202570475922140374291667616785164067957943640047340008133585123625190280772043020715158269941433514874548426655836022992520519246740592993786312778593609634164458311516909247028570571131811850703559694148201037230262289042455289721601335517058698178705605881791088054639223382920908900807567560126506159753263134029693736391212392766720207740989631634467827706006143453322844193832991574158966243143007979694287257729179559270780374542464541338497286589844053056340843349188897794615354866020366486137883853104009852506540679603361847621319934263390698139978190841081635216313330030653999482146076575913333706467914669393673988180916328254631174757676357879152665517940655221424694655505455270841069104205720300869586960013498533071548685196857641216712796325796889034048982843054381195650835444324925202773980498841862065791138410012710840818345900260327884699276387251699649168124461032487513671168396801429231637259551971730263596995331567088119412854346979532155050653281489497144627178263299192453052221158303680680846630209683070309909522217134746695118959692436825989851694564311409586092672399495087929894113651750870215985252591587473401467950260200983709229381861783594250345909451235472089376464968777784037577227073471926260326308776095149451080425437848817371992925814091389936630216936161546990996629702029475259992681102552117854047884460707811995887088774804556714470358168584611332294020525688369791218198576881476266139555505976874503733830676105825192654297133796287273587781318001876828114928578030721033571569336619509014392682075371780318111795776177396345388973611762761736545513785910305826606939612206378573131466400046849809832547508822514673411059630625862190225822432469076251202430230992285062195734393047572619018200295175082087939623312434200930145345133319180372024945065543651114273803375207569876208223832432260932732310756403145359269651360330973046939246221635470172714844624762967593307375995801804605544714494784860413221758780074330829940797727641654063162063044520271505184543548558708010793628557511857057937502837695934759698106874707812941334649320241822715494526366420047717777456698960738990855315625341619140019088499073601394623747430661242197538724563535666983045411921026083548073067512668437863947312684350454381519904217948954445181598454391665498327168643375264263403945344223431322599196877827493751941053431527911941480891107216033124558128036335736513917509924221234377183094277808952538872195686291357205545406933720653611977409057843096724961819500387413911971215415892683503030902489210951665348892361330175642453613829354126080032427621363480026854383007886639589557659194176150821572721045180835739121477098882994189520383784681541465890781308977561600747134730829110129532431552435452223472609237096283342804023799334427348658492876701268101240450819274658254952351052046346989416321739921424567425155432401251407484533699101722094216166844408458027463976714860095777722081479694276015756321699940032559941395516585388223342503751812193329663096159523372697465667985775732588929723606013577493088710270432443617475089398600614419274661898559557641018302742363435729831062523564884598193743851044385133778664121356965423559412494964811590342113149976957213021052309466124981053858875930909844526635277179651334573245669405493310133715878665515079061991807993224827753748308733086394049990677541655186267948496442379651187836970158702557525108216784281706789105437174204382501988757985505319253813336370243429818194533918670291056472822913012998093099671357311419874569253058785238037363492633174157799789508477085843711680663898032732853745576444353005592699673282223716446383158441686072888380639397199614601894801630870884797007984632148655209378977398607776184740222583082537123681291768415383016909802429710182073939648202794551172895315659359988373020263338460948018975427146718463101984344225947521965654445988415214229363712006544700323257137653486311573108791372958448381064016310527035525203832313281811629894857727948370717210691302037073040204284863915219748916855277844889104097156120945523850303055654955097922647971282129296693381663076957629309581614376464264100759990821554951550151318587873826524215162427874390544921740248373512252093472692157915034491385669940566339716869678224124411397889707912256420590719585860855692939776615088209839290660323071201595645478412471943844446143299856505444044167409661952822854511057111348708486480249859713075990130561105054429109920293617979085290685082401246822993615650142648078687317055797639861761153544498956931379247990700164040209079487913860623771959533943634898258695736347770506528294178341957093948288347037919903489789984462240921674993943179852039141478962932511945406373774919349042040657728795935077100558068669409448293000104362105128517441462094803654331895409581651627979994265875120207227592313860322753228511613524567597803535398210801083804406700514982483077478130717803544728674977983348218724266549613160025052757900265416737731858896024022355709190703676562955152667416242246789595674384466759676375112022956711129930958692533501242424231925862883045024084988275911453464125617686913048639729082032187005231921857861291518520449698223985576232676291806624457946556566725843893579149716838868944232405222632284794625572787512244330874821012795547442166282590992192835137455620453619775691626370127661761189093111425919818824796507511582453604790521979614385423297208917656277189891149177844706325395897349389360116999062559263635003873091368555075468243785664517372119496108385005236446870519225666482670251605385576591565744594828247898977575817378141945955484022837236822727905274985048090300774450007222796157680897921290598578751125279363373848456614719239351559850300481307093134134077102930407120693652202857059399524094198559230011611978648085457109547132618729351070105765937329455841124445202594214634403413999782981797550398832653828944851738977822488964547390889740295351049541369647939793627178571361070290170291542119301434514413661466403973309811745560310040107251219618290426578406783716646511930588819132399065071846074463400693257049597357735833709552948555968767511666603005339968439546123533642777047461843625047233765626880291330659684598785150794775309068129363611244783034407636418623641129369148948612775252423128490897372320743027895164878689896082208968745121872868852950785258435637731938858197610021418633347022497618364168983094727189735177834772157684317909282660064151895262145177413500868186515554951422164643619784813291577351546144113886390805829641640032257155762330870113803201736048422861388099381017331614545479033604300935228613250303623903223547513057548917297715120593275454338929727096010717591948711389598059000497124589656307518952934382399746049103083943189950701870553811690306615330962020662768828177617974040900591560990906529167657788669499451413129254259539451441961623739521736969260460232790600054013570641317502469143198957015797338183702312414949114994937305820897696631146193246396095359261061571465896933798875447736506328146703722300741214631966723668234953665288886598830417849076708953328034568595055409986363678145059653241388922237640017249433676246547731830564564017136239195962530008802115948840159856049833368150817630689549218054746259493926113606903881754170306918293442905125175144451995675555635277039223963873298521053534089301042298956647139279799912563821000935863020050499612478044573134890979333567800752047089208999807197845695740407745259728745246255389400235787133366462813982390435074430407162437463240677696267558506220320509666427859716716614362148158629891602822852445207906709651041993291012132245422877287264633433607541363894565122164185843615523655402812051655533956340517282353874073258240924731676351919440458581424374975547855805797228487791441658025407882080770497504606013883531261363092342346566151637821966052168408104969546183744320924226099573640058187595777047316404391376890455008326507807828104612091984668479280636987289732951373790780039161365552119620819975207293199647597162229617232423917572271945387107300312441496408407590031178411067566579450195083072289954971377809384550389919449299212539730619412932235757030584110950281328952492013492487532817784807677100835734741783767113128784411052345645963027837251607391663053997583819981841302785055348270364301390182239251726050960157489497114378168172400547481887692125463642989795421040013663459241706324830784269737526357295904845393268544604343355376494492926814585210038471419623848957768980869072528578924359146281904849990550355675280266144670833056142085596741861953673865068959723723497017756982181259959313446284384762743864233695613295250124974987897561335869864261816573544864731959677996282200491778138431394850446415569480390377482178196459952634436503870294664205175389573531747076533485559057704451741111946056143193703981874398192619043610112058463901188904586154879153908068373811347482765181004061542052622487344046748617977189304288147583374290854705736902500236389672639857597636706274634310391079725314761101058893717064042689881665409629418174263833548089902509749995607076577329552272767529938369207104944594555127934892723861763873135284254911078483883839649284609151499057278177629423839567944671693247632427826700570323285639750123221839778600516731874495663203931202059573842798971438004679317504596497227266616091037466303412682398795024152083746044031454995749874130908369574617983238907830234640999342954986993670470476063151925454211561488667162857942146564157198455667142532169636981044737271785885688388965913901961304308188750381958267471346140914373505063119230798373646107548845455234977914345747487820094184100533740294127571599881673587849304240982950896654695397442445073633430358416618202927318640566024399418774080913338534177174004974122251720037775813342137982782236745626355388337026100549449512525757934717302697573004370568180989209716468918314980994949112177822255521601946156805285843566122062724057144336431966594781132870889370668615585341987081535856352244292986085317817813271811617090887125922413522573348816139795493730907508274685364748595969383138408495096195260986211184756181977660437568035234258600743610471096713812011216656700004971306072378976187323974383027468824741991987123629476947664694678078055731606266216624400580217932271161310395054667686613027957744381376574588503941322431676327622450088749670539825861535796463977930915528570650907707407364135856179858353847758191783067176408739780829038195850236860224938948569137476302540765450485945232562795460551505095111220223527893402976776190734929949203106552029894111667438909715710517560613104542022410776669113931441257366663612998632312068036963653255687482913803097877592612874386303708750883683645713937957392460968925103431683700744350505394205006100544601142905430195009943532285400762224165999253215651409025336431833346499227846330593257921611609856495380106129615904311523862022322419875917325350592850973811289713168223703364839793563323518469244242953522713353226539066516272525480236537499107065329326431165928029404861416741452318603988406546899358438567513590290810303149493767927615542279112661998448085355849424112845288170220846679843339753961754183606468716452163709067290047580464559528508262497264649976117395725852145656443364005802452640126650441296873661050347685658449541867591838120510286443870156714350118311898407397654134200775968046703892437060441787680153622706448116144410975002937475131506940880167612175498024505535470549848260974758231014536289490305571960007766913912291621227776450406854927665667635023150540846967560716182646745080980791149028233970173239247704405428062005779301179892828966439577682569848667368207005494054103719060481073566588532409688730453828260484837536262593004853228489046098494511743288932393639233068479377537565342654354060146708157368859082795634751309913751591542902596528289355740804991744129949489988532459005459549590917095790341248724103660860615240375057866698684039686059260217090445210111348451993536933856187718278081288577095363231553367242020236740222375683986737561928331466142040946335423076863005093829697663166956949219626743148976909421419235637657815989755189823936141758375819593132639313211401316253125567337602668421368973509134745348404052229265281339102526401242277647772760509420557388989207448249773910931010387943909328915859958614069344960690986295711867835007910891762447837915263145793002537076177880059001617952849813383049640534702330459442600219889190437921336534668730038189873620816390002583784109566284951225254640510723068432242072726895887645560884841206626394671343290650501555275163026132375733945253185487961283570668034743976967403906116861376967674929140887887737143483778276176571527944741845527451507749150208822127143645419575540712934674557058657462910285718188052143989343890144908554415504824582468010629718470507610240852639023782688912380397095915865683665122350036033519877152261683399055333183201101948976117952557997446141827287958758991455582178489730549561011162677989621074106908260723445381946502713552042773086407455280459397286410012449232439622684819754820133320771020429153245280854646297547636513092020256774612814589530706258644694585635877095435916164411908903781387438244320266241918034070593939558748183976688037732622410381350481847026081453569478844053545028157793767884603864539039751699821093828314461546633244041663277209972931301983976505327454653152435493279334072515981419184608445201566732517721293506435109593831738906568676947571088256319189833226229923977590377435211973870843678834799958037452841964543161919624950091209426364941020140960130244548634275078832436194518341554797383498836840900114819973256237082233982606837319757230046272709195016790057405085448696049202567162152128213424309501813637256079352142207117601414823153813855044419131259194071417153404480702878800497977555932174531396052536979988299234857786958341781214510021737363470190148707299230406155235419226587319200560526502936894798690873205635407358568623280695917086094150952436574254868630555214779685026132020840861835078801667205018203555039764706442260659961565943934649915576519460477466974345960377116188936072824956175541325016470297677679103601181359694571030879239405731053948745681112238363800170269737828268558831071169433266745683753074067423683998818796465611574176438710672359795678181983893137353635283506297398561260636864158914964891692662765428134983023923259855612611202500433897053316454548467012096163426879383609812366572040361014007154609717259852511088596528884923183540216303562063770466697429685140184954722990043771578692297777351995296003795085788599441178388462918041164975018310187238481994119525716539227366362980252352004482733991450129517223775678714393463128856619671017114840023223621625309419725989276920231967781877243962266815346315653101158039274091195383161690829711691062906082250616997386786965376221191739176225589347121225241240415109014420514138396153864121382144458265669032357585659491728894567681494818661671385222333627740724440768875838609992371273644934010177731497974562995877371707313383475408377197055136333257029005780765255362597691616030977833137041711362335568350699463174346319563049649604085594823483138549234247889642113851170775135243553627779664156351206470269272056888611366055469187080567093217145873528145462341762282456656517743027092095808226006621035404328393981836013038983794723928178378392745884068524088663047798039175274756898047001114638573733858459859622952204449491133201527514055468511614552360966811033744317913041831148385464476569895308353074639849694404185081903300158811390042325367498124635800080229026051074738788386036474154894814449287955540456773497304291635157084411699392056545167242959434265840539836685133186994517598915619879332676385265851564267644088236179831414238000700979310770533641106700348127180058636266252772624753317951247762234854899452276040462436357447500981969997149769178963381502460775602938845363787878402634964482149083916471277697086695872469076478982612952534640625143955850478237828333714052665285247955639948911269659100006532238027593769417262213468531647981583807896732755848027049064950850315802766752687072491846131462706496691225316348097879926947202134845477478819298480505591757213790655307835151991634462743392719664296868342570672667916589103473931115325913289950185140456590035484553375074359016338888428797217537399637332313433854364433172944771169038293054018537518506449315998805684688998722963343604853407873487764720419984807515581609813700022180182321223192709455622237612599818900264190200191586047207782250473446401200042954654486769725742724325111545579840404438877466734334297545054253918685277245285996345979317816765046219316336026407974774283986746938517246005854717070455747055818612728151299125572537067395137236701836157910800741832174628673603597440475778830407997067712892090792465309289953209959580118709964598485268720875029460281406274163348612488024543654700235782000821817272174347198350037757125049914257008034379059068357917325967679721794271417110871801849776923563506158886284883979068201694205330677271090506115496875497748333947051731583206765127133100639020987719462582988965980124201138956925068405718943055181671722502175218222266891330350179730789714808460357839639341565865276931727656327715661259140259827305216845688607596009709453118639848081784935786768399994892753527747308336687950520406310736262180325882058651751262920664749994119143165323099244311811701248048176134778900804817629971618505781276813580909483442462064851938274035726770490652760595029295741341899907030986097408376243240743973179199726993378149271013825215868789584049983385717105224026970659758358072943489827046870502217172323141216551222693175817051620360820588788595782393827483523521626651433903288879779133587071048609390736850686455013811978868565284356359264943362450939737800785433631596157098775930815141195621021697958541617453286629846855507187978601688940469385422972085242587863271352640082925353937480884442265584928473079508353068662288248739193392600343041024627466434630524628823654235400519058130184214030510173638947467818289910020968821315222664775795251607012168135678976086097868884294111440288139518333468979837751876881420246335551842680862002218102605352766444045902982997433244330368496821842986716560224708315543920785583315842972697110560000960096188190416594801227033756981104017029167654327350181655697233190188085391725329376463207071772974896061371981293509544473021228977695985607010390485934713605183529723894305335324020372921770809339172772120686523731500245536689468249157537554719121350518594495206517959643257037366067363184012787630170135501760683859081250753243304230160463335635844855948585743650699484989945498674337782317337468691420610977505321348048517375925142888127369549369064172257129069658740840002169076406783853416789465918816663755659939122214826348884427464693699866068726291284688047761997470190589465228421869392405711625012679815615732326444477529158736983923199089026632592672296235209713709646706832147781988438563968551460974980054022063493537999131699650566092133417849757490435716322511391212011807612854221434184840362984536750420768230882996609325922529908440871894379518958051910636111536246833692033026813431552411471948450105589065059068815575878345838490115138123127526093610429738769011672134118507823079527958530716472082493873995602903729298055356077155748083063278749942793809670356659933995194448214486742299496992863201364746235932304791912616482888984140442056826437228685073241613236745557478892501606606713462280777788540942874619204991256157388766038718424184564854951334880438428676978340793472223167004611152118911132946208151923252011758455144089164171478909110136544023414360199716947442031440866598015885316033042086628781793532944622763566526487761038802773156715233618245802449086778839095915024303528831862418418273681159047616936954160805138415801988637195662201126183221176991427332201135370349293887739802675239818418568291920659382154476560933143140345255689178947555812788844161374703098438749753467263430071270593032747174399810261405668675957918372718842187139109694766466079851492518492407925249886069576110480995285322994275428726324579227588791407179693773145173592277905743087908557588221869067798153680529363821187253595979005151078088453996944985225155424636580307440003086358767197665029240029926863532253987674775306287617416870150745808266270226643195260110853241073000315651635674254009491921055122911953587300723755868220654546160016147772345194729375230995296532872082813325867490346991034043733439452643554019709890318744567537906785786855810029880098481103613628319571259904663697805171225974735196875572015075833129029805610842698649108115957790285863853871730259990975533529549801016084498771156459971926292711390437791831661338996320576363409336900098634813363599066089042095277887493153736961428604523789289141299915407252219650044080807131435324416373327168466517622151490022525997121354806342473633081239420623280271970285217165798156743565319753806619743372160257271666992971249286954705975723522088339495251852747203062133129311679804524432179951101007566011454231332391585841043382495466690929484330033680129089070947657301996693299815973244364208378765287996591325939469350887361318221331313947234216260520621542191921476558841850523316100307318253031442375914699396375506197064734880790301138690422741236608167773257295149708028738348047176379159753224637310373939945906641783499695941204157305833940368279618672348718139612001353863915526162399582992719761972112122939387833300116597809004535703312359192805595211996932568810681859792455294638811593078120487415465983592887404400691580918142901422462972492602781519601787105912482272942565277568859559509249051208481991311619917067013703598496931021791063190992360086782243426802081328535180486724660553429657763741428358173745062808594611747474105937448379157198735178073942693607202195817607407640889722212348707995931442201772932882680490411222450289624783054377404067018085819929812760781331571118159968263020099171005361728638712961725170844142367185300278933856753613458929806973127308878484942025049041706992591227182862127834335419963016362174389218800589408388504804791661428044941139466345403787311954166517967197697475843246178068666398384369947826815805005266536180940906285543965424828381200083030748915829338265703642772791400031402248748235457202923215054413228761682116074309783375814190999244237692248991469180720563532856968117685518609053834989181480194156323982187290770956125559170658752013795639214719750638554117573583018700301809900433159289511192020695143333839819032771147134184704798554224252310205624030335160362495990149548605778083042867606262856502369069309059167052217070929198616218490823187210075863038379413214130740975549266688946313799913878321469049390137657059461079641548458565278658053542151792516911125249080979932969426320768876212384159310454832352637882148876229465871829215281126641552691395087994566959145562400302566546018651651935897818803769219549555800053226452988582171503784628342529196107771184332164842711331088042081588747299586490528055798281516109032123829138346650510998350763837648428403341087329875492692203482208137886940466054586918749403488113708504099609219775115417394071277706783899470135835381229516446462581408244845108862329104738046751106402941574123218711650480656682674552543897964103724578006084639709476881776062583873137804313689009640416171413955877836108659733340362342982808692194917843992488022043923330458377123580124998238694197179061180252830764851856996938914075620407836224930115265340547203789002072522371638731957860206661168242859566060959981391682010533744419761049973755494996848331799632836771331251056371544497813439954502975887833858769947646606306742467611272314642280489605914732547023961404086804999349914945539450068045678350533127985918800522980245911452122193276441364676468021398521518355169976278077706614597730980595006435344047365223539558787394921263410504929160593987952413557215551703305402059092453077238244518305773792782404177862093337597730712585862907458975912356002109298922214737657805934180297564798756829593287826175410770994632839047116344830878088607071514921633018173193189131158760144365878196808703404290634421250503143945134169735114502625287052188667151405143167544732263319180429960659462947067843473317425987037108030093127059508011793120732039164680527344286507475123410771389321064906555834835736093496789225208234363854879230928154830558504249201882152545034881443643755436218113716292075944279425791952023892273099546733504788526564074045490438985685529449822646298846268821249891098760035628573458675289235061809050656694935226880761630527705970581070886368767278080996352542102355118145605080706218893525796015628797790224927402042736353397168748569134131292377674691661942853735490611105796060501988535427935110825403246343696781364656162790422601078589850728020587527524891592053082667832324677498792628720598365486427087977794984640104895281860534707763189046581598919085599049909494940331592682393888432358865051975236029420725269440772036652768966596087008248966970931900500272811862640864804579318343150089868150005460230122166407165996097989423851358193536354224213089987116977101403639617978556725681358651704978265975193661075567340062988105164217326299632717997564983445405353475059889620809530959090291998518603394352046957847717065235388913697294370157751821171275340535039969959527222082323008572942275413909054593221819394696950717988289479258045281215599048146740441853098494274942588976109920728030511933248759072844855477747147072192570045650172412035975983929089570909049535553646757604934554905857101204035975783865857109856426145672120514673221747008918006715275494937507777455245214085300896645725593038328422522887307894604764669869754757114457424654568930853753438540992706298335978966370728004747262137091252164122906549433473845558690637113645384831012745537509138908559768224527399556220429754302486206648100537564820442501017326259651912220657923624753265872516489510105992152859680023572558969861406366799446046831203233649036876251995152563906899466261301799854348494408209459894506146815018725475811640243052259932919407010513895228567718266346117727568659688212232321596363624523265092806772195999099244882123903505067862111141102909394709355964034404112966914666692148368674565301500165876993906142636880374509246089272701275711816081196230077571617967320332427656101691371449818278722602856503348283228471296932438046586544009172798166799692877215774301641168449882719312948983146609944911898420176788992706300423507564370311970674199597855688155594193887185234817368843952061035427481951893169677552925646113115382868017069853001149681028068604462354676015946403716230228089813257516144472981681749192219657567880763011031166289998503266535882996401453760689260066513064768239080786022902730267920926897484794936444800258976611980179352473382000493822016508851657646815699010083536190814406614168134570356963089936842959250475618573200693506541283358672113031075166471801715969206825723979689980847972410994035386872129261897783447298027348256134105064834774997783996440160096479634825240543479638963711494843995106061392727628979461305152967935925818962409003782832536452495045483796472133866857104959981491983034862320252635431715410359552254211104583390218727749719414529814078606709810486716984765944866844624926557654623760303196515846747802342829867571410439825167313402834180261425986764487284431792622225348526877052325488750395243317228935722532554376237587679273890400137659695700658901451495612274074096668292270579311800622772568875857626669241876411821944365365142510558035196448028741873533626743324884657397893115970639485062973606900146848932207754025287245297229179696210017473304485136744531261028066139767767266394005309999232928740024249363796006505255424764998548828429119145722945096720703450618263371934381234668275086837221937159361087503953801804691651097425766657420375676752483939344935059952908615741901395711824584749039870477570205296080202105621873092482349784495949794877991802177401362946452183953605741472017851581161214791849475678541287883684043109986103794028248119332913998177469732270351768067066622644572870938120263043659595463688509745094390235584658875475903486146743997879210941382206871896075556233155840703807008087052013649372871726721645919336560614914162000004151846241248695550719680393848878196352031880025400042707489831854943194653189946189976571182377386854828846470091572266466837617228694950598830575572144357640292289444460879134712937221004024290712592800089000171635819953019218118159299920150103306009957330016574237055983926194938910135124110221189554189370948793666529875877869431047740490782024066847122766153315878697663511179827150960011406633809062322059582568615118144572112836353161702139814990026735618600639833391148646870900358463991221982965583945166357469607650899666884336041051196678017900275219866291060403492097349815720957959011183209143126290397011887007070488572553117838946815930258488006443619882782765765207326590759749129144473310815975008819908628428597414435729180195582541211506650921956216978895484927861531056817815672948458505768810029235813451783188592831914968586154496849913889714543975642365873323793167797916096980192873302611065286026718733406993082339697169871255001107149555575610992188833323707058499531415619017151305855053362535338147576652007175479091287865734018762779579346406802007763304166886926866789470555611193766630405042252129823012095621462794659506750008966931567870583224597772061169645884007780730138728344603735730749470257433321435476175699308625422399722556225139094677079302156428186822010969098348131516594516920640111706700053826429517848960858479803155061423473140922703905036145252244218194451050865411456093467803609058293538243684394049281602102086582365022972919607211850777981376855427991593704699909298694448920739134523826607034753953721618265359366609303402452347697656644674286103471472593019966846734494184312971988349911807651666678035819695912258432372912471314754609939297669417065015909640105461041245023985227345968480095136950924730653259267191092813843644230496666159976184133545541930493228441875092426518334318898588443133461584611227274660173147304106778565000990617934507031387084279769575685519620536990651077462952595619017625336719694470365111974068120594812150355338421468375079533776904960052770918095977767075791728659587266977398076999385748960138462847239107876907731817422621083137170815235279061643840274242582903439956334571379638083502128676269446484970131146140774740782339014447007166838476820866654076991856554729565345015107648315221034045114434393377337702567465758508046192710748845656216484486303142691479351242538081536133395735612185117586773358272797937677688624385454677067264993428259724003635335471702922574960173804934722233816971180097594153717805000046592780920925522412537524923295213243984698523848854738581602031518568650807137931837160505643248477803124701281171038635282835399290244000330773719723575785084991977783449414667041548595646097071054725230528983700619754100738415680336785187561316607933013556472388947506515231277600806850511761078814650333385201392694490779019794871553834793817897870822911670097042562641922742158122538061644786411905300675693293932160270115463914085800996843018830544003402035348913887958591821143523167030786317861029054716184200397661125414207413240824694080448226037890305622512550588633513427094098658155020582218821308888228529761198570454348500762627082976878975384807495184777340958348211072074220478809166736799748018790618739842590473235484073890117879251704412610996379781187234064359378271415490154533067638573827542959958318701422232571124877267824566869109220122675272522630348640609265544170641303928535939470259538070868843814759674509760504935288249863174397923171960463533739086507500174183831758042192521312992172975764862599595433610669591693679493636828008871799534643069018631134626066487121778084019894637615435827248758715238804596106172578965765379568080634369429349282728653315727694794739963260456577568252836545309270699749197930948817323691591053694990691104588049350892984150056889771313786818589507785266472334520704159403583453436936722698661424394310542180391673291543926450956254765735941730582304958072221580370443538832741311273521709461760410520728814789796489352364444635156237429587683475647303656766519446613635425120325258852221570781352369157500338307914576887947897193778047956913137098993295652336273305801738360516467881159437325266878081382407699915561758776898202665230970475185920203074016701620568852678993974688571682090515699977690930102066860968056906219332665129278027576488696681851279604407596933916346624713080923215687512760968875855224766111888929529203016987469456893429665054633537955757311280425287507351759574014460058083473450823442909430643658324668547614467625134402919001714829569163772075117106315156124869964381098248422695234290680612362515203825784482482364263960233561060524572696317187348081670402981328990178509382042189462525382169663063020390107912469071204266565560946188703959103799852856177428740687278319897071575080932237857992510541521634468031613820046005232222175347693038143537753430845439254022044982652175548584763099661586358066241073451349101816382397376538456280195497852356981373209123489586247782530117729402588342860620772885716247080371699305187374208776053444197021460433160160593075423617011084517768130515091070544465260087394189712688491148580307295275206090939908211306853327664261706143413674222654583409527222900547859202665973824290264769163339843312806221282274211802431881234973112870754300748658310470366790171366037315012834903005711004122833618479105021338206722441895542970977863110554453186124726584726004346769260088019756637145768756590882107290528644745012690632206584829065571757018200520440557386060044640391057216668751230263553509430638598053550648524508095953530404186930648734318125894177421745687027251561971614948425027343696377454189717442414741484438308320569123365921448285023660010795983786728916302260685741323090830418182186925496824345537672242880903468575211334492618182598738010680709634101227946992963559238300473764670697832125145919888371961353734407129579332327299813874795755408755751511030489349593514227116093419661070981897613378726623442724608301604363245740826568606311190116872799931733426296744080847038223926094116814471226023056815498902398974498201259963169672428099891954047788554640507962627428429091788551581071444685475339516619322188576526899189786345461767931222161359171547370237066387377692348605379058857885676762882303650753833300597075647802584641062405774057246711254263283758162456657660199551766382865175833391809091104668183762975951467589890635429950719109802545579371114052788508571619693906398681183189762902630231878032635436591858120051722993847802199959679860687139315621086945843030705790846695348243953103840220955027325593100575674653479682239279490906767913543700447931936616085216764026883611409678112540984633764983306486856627010359643302364670600277997055938426322957607243962029167443099892353848706176797339457668163744969304744014774938156867634997009724102269252226901736472761486553602941582928030604535777123663193447612022221750550223676398315037648881834714421033388663341190847489239158168046571948355188120096957833970167822898776862516927466194341376381766963132421079009607301584993893655288728201047260421071403550957915054981935459626020589660627490113050841887608830468833326729594445778214926310201789325551292165610204232913471667892168764054556916128746770025116506009181296889038365885314134010018133123795924537264654888124862808939543232171144624274896504980169869562680753507735620606225112395733361482656613275948856166723652963766193207128616893421305554110326535869823979092413007122691132809332434034712342499685059935049618417890211411690684249309925770685398273126868409528335815392230191754160899665304586111134249374041311596561295659347413986870669069622008021565847727680308391302374389585681054887525331311534610485092201912067338771705428085477896348153856529980497509418200005756610711925583885462934963768311471830848383403791235698483045471435182677648440662304477383357317392581099046977506907192769786917712203890141178756134578282384700964782418408186968898513538286064841885684274848695781629750487688871028942857754135065548419250349736130512853104796788579124034859962966310367268116726011334456614863089891481310202920348451066130025344163252229126351028697487451401601187914137023738577535886508620645832319988230208058153590955735753833532088187007601953019248058774903500624953086918396569074053053547265685902505305447309858506898388478440046316348799229684580760948788992597694579008616458557573027232291530463507607501229345873191549181940980134183499416845395457767838529099035801149358270448492692701167991253838422618080151406002922911799641164866256867580163267814530575860923371872937772199251371932538962412077280195801627892143415442852095807531897967646223071401989684038909327423334014844879794931021855701636194971325629646237796969390744017743273288239738990813513903483125288714500874986420223915584341729675220370345388565454820631578417234145089094501672022497504499602334670998072635112958738166776004548084500202423811159099187711663348733477566738736465038466099932725454692219567078544219890878573138836788849887050192953772527685971302409143948080251824515816117020660855918226396363363516620892848470501821460613541142480104128173645667691759276506695078874471611004383111305907751506602278419999226417394345464478983983644056456073289530769960019531168627135665347349785170217176495328371986167944024426056858262600253196906974443684480783761421514597028940519438160253615030364591850065295031148602827616761342362113996610543765993284760549386006014950500693857591878656420193737553218850860524358073630443148261857316069967341391056316778260957756438334894366025825510933236845056289731700633187190650134499708412499259410028375051139662907645921295841366226396780679190010789529904648969119220031824126498308165831070929927454218139780513294975225699658031498747073878847083503315345360804045817110707853093751046674552903463637248396186316594638896638923816151074268905944567664768361563741677198988370608860869138481940507141297960495460998276152421343127678081540903131183868269648531744859053456956594252660844889794229177690784093630320745306666359010458583768029856854230896527467619033260868459787573681637198630162062498458599163236388332903535098891683263756346413091442403290969713331249691246610267264556607654200282315795792915449548476121580593085891558255349003462927553405529179283523212920233823789676987321155785462583050226654653655559983997878311419084675761994285646338290318139484096151422153201221947741001452126552388920611987006831683771242422485278222859810608461579472742622882140297345788660170910995493746666261765252952587802077441445793952024005869831438317619618445634117036809802717314910145472395655808236493197886693733853214543668124252850281976370205408742603358344406945767865683504598118802594824731604647748893515606488442549248913869750032906294656146919230216350191598778820909219875078052119882205017173915210936929652953419624421224509671275567832412989571229946973745964055067561221826742325604780844191974201539135699590861378689310364631793868415698303551550557309423555066812626574499051755324220613834133039966265826606232522806074095924931908375989672105833024707644461439014685636270920662862645511068168271183626078646055308484683784127183420206871058521853363528638288009211289531439133228744232138258490051044661631627604777926899904761128700051912703525930044844573488441773404935232435832981179511941450740055575475229899131374793663581921879148464794702309748346105049755117994734580814553730474494672240905141458332653164623359228409027338955896250709377881114203905262615192694125158773066940975899668983984177858136546252289286168428398205700246416940408966791769521432557201132749780002257190823130549784909755053032355168001513546793804014112463518039399561264703853232410722783088723858372444704644550901409528642561212807736645232515490524384023593102685237143551973308185494720623554433005006158105298359728662688884997806366727495149685457493076234630451458653015549930892497488937796442084966065249421835909009394651578255490718991283331856668273110024392920601075117985351631917738204362746405615371083837111579844630959076426625984919759751716102872269256217619506829641382519902399449761281234516042259249066268351465529232802484738372967245618457620235383432314747342740938866257972143517939661469736436595460486567778407134206761149468322861430145102913759605716289631134320140022498820103846983895050099468363834540276966139955676027811000147676142757923170109775365068209041748788430590593761768412950967805975930287338277045193318290915559506712092390857248670044413238668629777925566892592836851566741768091115187596004675721776024733649463761087771824423028951098147765090959423414598599583532160389016624774621613349769843418357674716747845772045514748568934187124604335269583589154604788906893748289132674138014568746804004614423907894155802663989707569424235918091911548704794396720201613399277081078032748293278549609540992286378918777546968030567984483998076211395741415996729724049884680556244945672452173727058818977359987679648910248732367129417482123673408128604327586685983686437633368546774429379963093179377656792989835713949524419042193374253436808083183583838931653300874707312747444536420110192174690582088836891227010398468882819112318372993336932366645813784474623062530726929468454168173189626817633517320646609802128445653802775460811651461763176830270918680264123685189180278632151719334397672473603346488376481197236536749853738467538052477775853684842207440548708202380711795660796370714956876750166668940502892957228659124110401326733709248162591504874276692655476618761965842424644431398497375027881797984498091190298082336133908622580704325001584748292373139923578100971800625806180838421136890534380751742158482635287080999378297466534485317972314802285850417918688951836010489096146957585703349864411813344086729049544792681340317062603223589654812231574000640859155247755421668468238354789212003236703818731149150309749651672487353942627498119293192461821369731764551663461216180035864965247944594847704074492548598135520904305555804038565762912760341656135986812986651337741597320751889695302881212006920138333327322357322542381593639313847666060135678128645496632354255694584839057110886826551223688224624573211196122001647136618095237796631798983142150109549377575586252117641762280209956800101094219721853786016866041583864221324603205754349420734244976842709911563013307271266705383558394374488871185979023849292646073113738410239808311297751066877388328296562087028473853717209214777242996566814601966059467531747793029548778606421653303924723362881992023586617822117532315456392140420732830116954918538942759801467123621147955326683390643751083183218213316192958360371497903163214819011193837289142272531146731115000909166874817626632977648475601739796908436889442031797037529696034383533937092396244105262460749702418913730091927375397206342111682292101858855677140718062748878684577560305351592209885646587276710362388747435313249318089461857280101567038497739927919358426849719696377222821382307222813345651645474978051241175622981559496998788384274358818974554204388811758522807207960738435846497188007497551723686066899083676609037424467228054257112961490548622933048839401276594394295151495811536475740293566149075326422423872384330603781500904507640873812241541527755910739719419403849304864561252181223723302581790190989491185258740979682653734280054642556716133453936185057481695079102146371121979141296009443165677429062329135162507005617886700078370856856954676611909520949134951766937939111672571125942861942724422442100515817334962430702222626887994601513510864588787049579701171725765591684438890339782849722790217166610303959743410626551680265255225693397495435421828211941621385619930718823697247473296404771192550428248695208224633956720910023028984726820897093177107428588308071653625491664554892189620320099910318950069019981938454411470088919842016460315478577274450957781767126725829519516357959488811872943217657756707608744906607138724212107532234334467322417464313225924681233363167561938649932417630579300718374615942739975714848022091924843834351893775347211089863863375853788564430027343186299104280211159308349199240311452696013378824402590951731210662715215882245902064276430812062607799658747102722490969381137707506331517610770634489613224865842471004539696335654320180451699866217270678755842959193825153037669477934487560541392623203259411083722546538935426519172040017812761316412445395557345860675087447095622407278552510540929866884945081901494128525828540104458428008439083834107487130143172282857545628697688970504524664455801991400496001503291340856519875566812454453629915555779505688998538869878183919086618372929439328745675453529247083169281437456808875513097449070759857928838187536963810555056495728119698295080846834509037492819266332763061377609008011107275972315236554426744822937375503241130415237342032142828588511630554057163651595466411704678030881745922865484155298967549448164595266537005481994249213809511163395873897475868413411079838778348521216045071449475431809663655513960195885629155858009544109765264318121242314463789067273369219900043448002484607933359845239466506381599569249887733514519239944267729047909784965936504853212743790918048981353568707757023451611996442839627317813756147380308672313575594645188640052931705556797228744619330240221587781184781035786307148052812866516811324929646724506621128849087276200634076011898460942967518055005013688657722173208276275117993633223968163085259970405706629877091056306560011971383406251153224880877424180275783238044649022934612196649827466194630414942018587428892072043358034920063122092761826797906888132863469653254803458594903831181910171607812320033392873758342187667205820895836370810439345182831059272298482195430375350976356510031598152240064356969190013972997613776038737145851831731639594420301424061578739815337504755408187041727308134350256394896856936280164755060484224293084546871868079755483844071108605041252642848805224056324552331556428916116731396926732230222083342596520492151680947116058559473649643460657808890784440409824381154757398186421196735246345057044809411406021311082248642593200995328519951972313155617279289701792404339635352134142502360390734985473480761541454667385530277142885468411434169170572384450102551953409421286304527629665440463169210559447596856366837378533577854765608140504060352651164316112152016481839663645066761438382083621786170668529817030885309377196553727163300561796519318327596047925596342781463394656582995905285356375256745117175723162006147431893253287405478354965252047758549910757517735089641707039118682132663993562209667207912149485042028453809183982084893201691021320148717243347424030892929631381143048480104154409840900600777230081764339409382585539346278659882160274159095226783390036878909987797939175366551601187641933496836662225225240619263479148800571217950085680472928357042920751455045939855842186692830170523178679893748518262022614009880247856491998151051003174859527090285339334883922524183919920598369056627529847256058154101504183765214783857492944913846734560131085312295362612871277247375799003672215036974917340810773654956775021095721664380319986084367803661526852063570051752912371964238033022377513248682631234715573818588584931461113865854368191422514896487949858386079575059552885648330923010071894398499641065074969545937133040840382284614567616704560114299054668435805353569678190628029866204908090014160747830724724797222419110359899739710739553032162352372147776581941282611805778967320151351331449868541828771054337521999600020245644865927358179027401724541394000480268871132881141338347585692298764429372260000790466483393517534675139951603650949496447341237825092508549733746604988830777804082839011100269428920545441533208148683183852853263240390820004963127848719139270055623595817465577415014684133656641666283820096075733226384941736147143115797058477561753252985955050904710728578843491905982214166350306214756622749011316799911494779661195614942949322846251230422903063651613893498114482962683925831584718035086181625064724068834591218370666726800303048872199932280127496925427004884179829342383072197976270870952462268646518079161074519249625652652934930417369003128760023360662670817881976784819040107472387231878217898954259900815027363947920876493669480797691572087542599987937484116547429710866021375411286490482043006787650012266235910299890391508459387917677794749558588154849985231750351458374434694618135387649469789197153872207045603840509959715631231173519700650654652833701831463016216587164933323064661766317749163510934021943825475504100879134625637521356414082126780355597604576091575087302138734505174174599712018077668543779676407616659769659286463729946329189821726485331149691477342687043475945029309464283812595388618166921534359012635322822067116891838779917821574485214735289577877711446483395271665171711091461242923626746336959483454183994823730731600618310236456797004210454123227239532496651876339543485494828794368462123317566798890439347471566192321527320063028037249930552711091104696846709930303329592444906783705290320667441145208411453882391806714538222216572683833555135302249551407840432635000474983687297003732074558805381283845851136360089802451210398461712159628480081802002318782515320344746123221779413754972980144489035585423881735335336050718488204891309669996428877093623460786662838816883860017030964262641378050037075550706773703430830519154644468196156891209575072080165884139980257043444373646128666930285643539551784095382479612281795693570483920241027086742879897359284002955924702859032218568056103954404829410460256426084824604797744653764875419351454403175339190912048366274854973341232924122035546509270565118393575125806093826644911849641588132375284968604440911760465567189572994672769060804784322913379239541894995930173341250309767829892082083155891994686083012441567141741198942629550697906883723104049752980605179073431503630755138183680451880494088817821671927159670022833013239482185923430641941718627857707625894038762199539093077354474180435296433518441822823406446662611238645431934531091930972748769792696508704373448017238930430390610827468001487009508854602048616706609903543212061122310293029912833497095201706699150959558031647232453647730374205479040440468923236292259526518085329294693495779211754873598522659294129144486800725072263560883456713522278433243974550345562392965543795142997366628223943870272625938401571604589651802837390985206002528096503923396488183099664726864080013629709552597377213087722911039664453019736265304413127097700015364239347120677695845671791017119590850019621165789330784569964280877970692633876364288242021802846743944380720972179856635818624338036612283260564261888953701962267946642523409744759500504178672814143372970461932147604639270750853978114114975042164571748880620491478796027004571387524632869113981583317639419190386188271330936744048937601790216128336742508060923047571099009324727058349771048859036816746053605366285443585944379106985057866961199615179627690903493255069749921531782262308953317042825630591169291596906292063410220963136151336446803446838223147900834389085642725331898292323442701816447842550149153775008953023630576948767267142610794785494289799698571844144931979973875970952526155148061848350690257916047936963827413021418862057568985933155610860826111166117997763681539974613740525933793211880113049196585187035701010094339955423775929772679611891244074448743862723062420706538823394282518787549012135232964363915176383761155351443021518303377658297483951831578910373361622123807960698277202405771176315649238817686194762514145816164359058448538743219604465006472569370227058787530574190409204084514360075159857006398914467844804042506438648868342532385249369561805065527298965286666066906472624664043022807602958646865862603656284169368224468113984046216722971868772012812209949849583437352029836520021231624325445661438330489936780244814157402552291461345726046127604345453103774875487775777799628094812130477946504586884965777143249138426481140227495811343921653300861821465830742171125335368884752172817515929612880892020479686086155998665727189808783821880410238723835309948978027047035967863576910307917143590405756706260419902959471109857332448705077703683550851378891091192652470345381493107402039871353346910097067421303151042579165916507309362418456650081749884057639423110879750801129864898047095240332829001416781399707458765133632835501370354554464782967381277024142567016997427799312044648218921310579637995221872448895703722761940262308351311494222116291734072554514980467293101351894841849386680513707867943180241913308450384258619394973260282181397978117501188771766377646597341054736079321845231104984895494862786698322448137548281777900999070585963395109860068311847808606338586740198408235950580424141134450528582009547844306220376627811917444585146549781539223178881812959811916622781543295600795220071846056722572025132561721866247707081601940994418640924638652827622896906489733500559381279301356753846941269824853586920671819881957938452271873561412847718017093711321729022915400974858849281821703849041456810995680221780173901708984040558826044496746731685272409874271174152283980710585972585806765678217716858471710331448822527799783837226434409013263043667295058775102859375728278737889794757515180705952162709219781382246933803001643555362614421549148779335871226937007902105868276527757926205559063606379287779906888636624529940475461429211748634434040107416814217776975532916489232161439437258156781523007127634807543190585518034013214221123489110537113791746600931188201508623188374043910522322072485629658239489963806849780244612355283967137118328582124998273877319438864146728281246932322396886119665644744508123246112397130324240019775059609913689112182350391898665584055170851490693410635938631836723286080128787459919784654147207720310655277242925071022727825825394286657811940229282462584656938970527859632655696676820485798670242734127502166653186414017015819269514999327692820996498781926559800225029196569422347182197954532415902186628351767575360025582882255277347476085976029746566938723614624359183609066431748769312045557634636655585702343526124760255115066916200411600114566895931629191388435572330962117109217332655502025272804930998389197695586647889506271416307125646648391381406427701836430307862313638798856249059175206868711528639568077246150739392616097437295244147026882379874786556691703692865976726996602520112571254539179097588366396886401888011172516255249346582749737069030196456794304279908369408064459105579725932877839663889088860169539642658899949477758906332737269383233291062420307965460483447218919694784581111716903754197794054150093582870018710740620989076332904617942324275855986118671620907050087810023451134413962308827447295630738139903418601148965494885007587936949311437286657126001179846488446138760532664362113700310854831274378601263994289245158812339044107050314045113939918445229730967752939335431956356815866992656461731279595644192983787091590609030653633534973524128019675440964610326081918059000792767599805008061266809135287999028173302698089423562422399000037057706528958396682734705406538240959701223723687888239254542378342626724574545528053687643522829717029941648381341492229530497915844415545404678551481048394796619832408036464738662737305851864535222780042979424852436058889784150570395585704803492557115024709001190627384481745768036138210846644268277301642665753591006296062906776618457123692810428292637054596291745405115535642123788075732186892302674630855274856845002598467527416031168591143978493568970164872440152310023599273394402333354566889513140488434636751728802475268068691462856028849392202759523449397628010547224028065246784185898959458408504359366214735174273636720088467818459941159572632248599321937852094676951306476466327311242385670086908672020137546431763018530942342349427358359818663290544885539295129260974929764446912425744505861679533382705577387917092847443383018921139418705200513398127419340493368933892049836405620303720660839552839404925809146054217865686122690916984297461912231910843235653322052094945010987940298357473455942905552024133819284942088971590385535981507203129042680357667510221915139514745393041859423883546649886939807059486685017634671021785922417500108679188438241682059781089453906497475915010269202214849966390016333760848625057938926677764247517453358377004825677996937891501395331861537012845878247196108526805037925121031943231358351732913487607622795766465646139218472361666740068187409905774025465687899960730838089874484296264062216991700521069276677473703925887185075528001568080602156826609695028467636059747666168480004376087061741657426024669505743245275439368173558040204517791192908933167304010690006148427963894089520129839090783549830901934255107441904169250156070478517771564606740897915395766284470456155383859417851174694621545373084847875399497901651263561760711673422095270594507153899591900439106664749631806687128763888428167595065767547987089830964316690243547300434432269470087227672427660116443761977372944821072937764822264421589842702623861702810310076921458822377700248318906664576436249495305585933334902001737458941032070758950648185131627333633987310060057422650391986626387213990946882080667556965877248337852543598862380737545929383433409192083626461068907721838807495037455426104509702365521896449604341994831065838316234440691919743631481408229228085813857031436656669545201817003327595445441108009020007488762932239019840225083590057009971280046556051749644488915475906566395399862767719593596503988848300694334494413160444135743865026626571885592969176830069234958807915919321391133569115951215549174706659026768810309341733868485615485675027867038450902630725522479606935642831843976060789913634047750011755837131604978578409193633966261801363554208256532503424968224552086926314997982359556438143213783288850315224300846276120549098813220428010925404070954495455950358761920825059075897857501924000085850513987793819666433544057128380506125013016643390802950643844885159523789141895958105448655412336974099190342069915257755445745284502504977059485611677801865972473012923039970213266584017912797139491184876107512917109632978227331465730102494072212939751462929604488334008179625607148129338645090459598007668996431373306922837724933342528018873198709191443583751777266081408183646677976297835162038341991395937111457972833430591076411103956765175714798680086080644253422915140724683864650300365740012528156332670748695335921839475947411733340223416379461721069325823079178313990610788551694214232164976669264711468527230324690895591551113495362856524231430093317371159988595490421074759234718210341763818589302895161145853914442698683563560474594693206548477869252802729520603867232364927358043864233478782157305518519761818414132904379444944320241904079360023442358670077498549387362786751342650195936689181430510247903498821056969478849389188227750609411632114279157471382890351132244477166823630257625690041558165234129597032752546637596270429751576474686214320846866904710318621800336333737527487015175921226716835804325074498450653198987457861505605541836041085085945425667262935459889182390355394190137508962958298945974616017961870144282248657652102074028528316074225647960316855886620381631459588282038609872193209221294746299958168634724870354452376019108938810346216260870100217664849726563875507084306364786974666823213871411244419956606851168627024824697004433494115509513248240713142507076763713094963322112897915538522292068974508359812083106089294502194235089306186002364588617413318142377671768308927297065752069693264695123880162623896428185799354657326895079384409867882564677733014032803664357812688818103769112767012481428693176297374372792833722713885926048153438212536213080039299450416319270653473190088598094705442848444726371008675196827598057497061775198148583471865580869872308313056487526174997542265076749253637789314714988087830386713951862938203242632955233107569970474194352069436916922289363455571448652467412614092892331324556506469683055254483795716561900369689082349574715542329322893281235985529502629211261125207937067559893816023096209293967364577080580009644714124723022743328186752673859685237333314592211270492679175107838483921949576220566165513449559710487457062296160580778830683327900217101252239800011922978528215433062349515377249765343602468725246687884367327555205046087805064214357880999089048723854900578489932515738947974505455494203836459529727667184056288873318475033063926907470022861327724775708910487272181695592081852049180195882657329213585310526984915654002680171361927369630012964270688983143417442137179718111793543068465005399909976343808317431682815122883388594087326190836072390212462468503924554538738820528912587941176292298441908893653721619614007573712055099287205281919030718393390487484389544250120352144862846585793573129495949940817508040541430740290047314466959660827941849278589778095389027600452683817732712895155204762465015081586319947846203801620727062642029320443894318731022183769469178966486447178857997983439932300688253084455579340481898661770575590888092313169005342711020177675478711280580519284884772280420564819722803045457782840089671747390512306831230472371124062690451844768676353231655452654321858719268851707776646055324917601999867889252658279622836662527204389226073485995191981855455210587710902163180204249457610374450119231285797532269883065779247311173777031781047701527692047155235468562557812334491248376317171774423903330440515459769301481857311978009209699685269358149585114640752111192384912227275476362277904155617079831189219849198616031047755267179966268834337188847519783839531271627546608648472037493614910996182958486285625178005426369926379514214520352533422000706634885037458709395299915613345905171360650890837763924996929097697803477595880323103568313629281981472608486986159582190335363235163693882841984273217219897628784196989364005281633852427792806285813491942769344784297681322289246631676786055368288249407918533489852977909967218459146460650977389786824267813089094268968130251844791806256877897647591502066328326463752788592537351314150595672620465917784839352021936138518565125112511190513258078895876593096083041802031402446146661266497215076662144498634875289682281841708071337058185299040446284249261986638549415839833969590690385225521844938651622480585257236136030301427383375813808626780007523249405384834907816636764676464174521730719779733672839357868732663734429368458041670655764792229642060234929908239793385530460229853731497972888687183078825040380940455865643078248250883257541110783594365230912536497891234740202522191706716296781122862526598612443566144291736767357631256740209147685118350374197609118396807000477578924300875239797121848849527772118479892089297074600685351858603822522872160039339198774477273729875985623682882468954447665921174678463532256566447479919356106051826146766699839730423613402910558195037319741369857164536173660191531978127747086624098001269285711037012623682443453680785986165386965021154284352271216610951764184324669010656988921302210028312875134590626524566305589843077182950450340614600991246306334574877617775082387666177636561303973826120686945926819502154495194112352697285082505712904616308694449626690086340530504689844670480444047116521685609067535198877565587814982967682019277628205919021603715647301704087651854351604896839576664484894524630954030894295570633346761565894632965371064790603423709560549904163590797625229167396719965846507629211806787461712753992712801078997782466148973838829314647935247491781188638273222063994874526855482979882860826870962567831426176325331985030598565334309515271917643928761952862345521418093133423715909982838296935241317207781470748241299382004716556947169332083226026148829940516809455764470032451821169399912806879064591511433983244047506925651224586699193314045635039919285885482784788477523692599627505473432833250653770672855747487625240023023038799733584185273549284830700611272405286572178919426189859586170770439908511452847921959479133442311444837879097078077175074971533776623333509531211255466920864627858380359916279798276631838952668135772490839163212602922253477853417572743888724507692459836347046882682114887712740048283856205375892475478209415758954796293488967708699026963464850100687600996186712051410578344901260973511696582253375564609274292056078321822486109947625847770514347042173125977502665872304789400158554682650949192086332466711820080832435885339136213493026807998384610963130175364638278935173711874594107085757952687533037096754005062340171001956003283796786421991572768801713413753277323267378001410321275829568001986695687463901626469033861803486910289182832993608148639948035561886538527277631635724723466149644147232465320346046180339507652443771052042870938427395272936164194519358093007998016887635472197694896840154464196414640450174516555552827259061951881704127233948735883549854845182517929874541220562437105594877292738120420425027659733753196130711693927745026542550010535433193356991268997045406989929943095665285435603621561289237403223219039724531347012146361213814860379471285043253351690680578191947171588797977979363047768057818030574355566886085324972438517716825640179041665243623738738523603361730323154859436821712967719321786326261844604715392639996338978485850646809518066542434197657890927360902305124924795430291092357804408432181579596105709577280907969062205091363343983347428455154048842485914897126799344726713030685246193152378804919167884460953731445382548813594410206803616596710641196931470859910962012854260225359025921612369752144483493212210150029463536850953036268346071275075675077866096570699020705325733164181409734520875507347215158376202228672581353327985615197524393370437250395783039527816493489922461915398771342494708178121432138292266596785208295757097682103114198587439095530012739006187895390258372616140858794706707960449299398018683909885150138484638038004631699143240040252519602067678894800713012837471400730752307465963477102198696254224690209214521438070625495820220417842257341364590088278254596529204530036725982843749687207091870763956277817123033179149515257468610501306542291390622750702863181258645148298181398499388828252683437186253548893602134668286098977508499238846926567102324887870770982108156253725758260236237009795840720621505024782663749040304299786755888308695928659136830825553379578085988571807478805629525028197571003378556671549523483942124150284537006496689913102274074970787655281425981458757735805736408699032140380128350470747558227073765181100532285136605352689124428864638297562053122891440361274723335786581202169243871798908799931821462472958125772049367123632627888991793188705622864361193805543679633375740971372877001366978815394088511798943886092953930374516954707230970101839905954136250191037687930480756830199298299986372328833424890606343255013718922294401253551194030728250749384978055048411549579691096185144144102280614440724338118129685608019616650822162551045494851955295863998274121327849310699802738586720248321746151334699886826208072672954592045001439145149710302364760608295681250605942136177946350574139501699038358909652442649468953001673495115263520509259943148377167398905185189394011381904592284961686934622412480256088644820873293248469721580216913848343494768032140053794935080625028334188686887455316568920010680206482533251605566015528416020286779956819776956588308124610458069288871642004666144040835195490190647894139633483040046999393147265093166702998841617584712674935636217330255412913136943164199904992886139580182028955593489767494185268035842414459139791950141460851298683504344745852669571036774810985078384402390078238541435646817731994657455182167848394877280374481402324321893672796806769928228882454619694783298251489779281552380687819122222718762272860163837261651662484119561890048263120447246244495182694945627668468765672107357841720678632388855242913936452191839762711944239982147351069651596819862671309817941211986339867516324287648326293315889185880292939405692462923898267077027989663647588808460456181979158457924685323002029948143074984626634007047293961747393765259945682476733779047030005409570963682528622470434351583339366112031350077886022041467778123352169956765548964533886164956791710037806652065960599358764287579237372154186814775320093627997310781102307935810276996837641533598522250843717413217299652236122212274510142067824447796367943806351259593616241959560914712042766272969360031949344347953464119419594011820042565345571838836678712057179183387567940847020161484977662810406436679231712134712052751933044458820825531635294585202212471508620304306182271381828208097159215970428403777792558939848500439919652921163314817745063721059395203808671129562130103385883400304817759071396501057099096887196700943255093997792894646083440066028623187259993544471140919074385836749269285053930202076651770642956889194505369126695862281140674021259200548403854041722600927886096529753177169106010126065139579487572336467989819281392540697694563581287389110324972025413649611752600804517542984357846527486457253263624103735764601570548999444944811243184115782155880876031305456856007493111764883390310090530832126384088955870253556069763115399280692267468505476887168375455865308217201066638712845240200706242779782240201756914056691562143740949334530972564070016070012934528995666566071884824807652832080199589748754640085861383923670872650104692747626214984974973459875411724406316984564414300095593198946889291457340368190249070107336051461801891811706475607876079315859682131060568903858783694895682516097415309556149232369083174082777173608172594521318493514066284972095113796191229062423764147363825743564795757909643168074172288495357293322285807269726791675782419510346238063771058469789276497095142218263883045658683859541475148795056924527459973327053928744142811171854692732423131414233391827295758660711052972277506986569652980062958391209324192204344436763393863728618152781445372097660206634876053496759057553067182712953108282500945908235899429003480922639579302546950933599253065896750171969583627962350404934725696726917287453901082999579179854945041405321357597852047035262096583735405332058655554358388119157928553805974783220493649591869281650018243821824975033209647176462188694866167539771666003562556495820451217785112800633410282648562491266577387492078525925616790898797462019553933086635850791495326516664476551296183317253313439542276995192817059636141082886014320625858880185463528893085530447576450386786181302527651990643086986803794053965546606177056700155298478702025753390080418631855256472911182660373072942930767268882155177152925099103753043483683875843108823598371144265189379668203827501989241631817959484776268377133131901243010098805926442686529656047745030264312132917048967553731006800601923802769899148640859926555737822435496584579070363292433883570391240191629922138843836930127658569972484896549454571349374634607095975807369540914037182166937001377285906789577592950357426473612163442399683392831731415363481206488283963774269051738464897561131308317892322580384820018808310476560742763574047939819510614863982989212946933404648609004224994625852595497203381087825471159955686984443240101498262923457210997927719132745781979300669149463730738639705234880872003044004770121299196411826725017697229715747989569647232138977194176860744996878185533043420227446658860244978719934578451627608665735632752350985799766814502445326996052339065459714195481218477935982911028243279759163292744957369678566257742733271381297772298569555029299371765894165729077597497239642766366352505085966095086602008642576815965807121929903190904157319114799032888576294899036518317148998443823463124008651155526000855050653777737714743554264783335718972774421942402209869391533708936426845260821553773777403685175367348116407476938120775536272446737296847883215303148340777356508457563420692255321213588128996426197174309216991307137865751282494228314741278468461482104866969233608957618673336645512845005673350546743249711967528870550294629467932504893954555514762088298993762982598956666515110792938252449092031662734610771335684091874077699984456225208380245845526522593946871825220393162787490103971527895816759782326576155343637703188335933463772391754562045400101133115889916288222439711782902899752381570960345705879503379335974734968984762001716712753034272966548723249473931352429804482234318097634011089878937804694910789655058009265676191149498771751535577417072626085820808246910577272357479607823733863196210573214074924528289422116846299280917861629366500105843441282452364924588456355979276657090073180710821498756912415979091488202204042595127157126198206282897652589041049618773093094218329247913837400570480761334998523258075613818217943004219890722475712622722599583708750167671567328359851350793273987544159877177010070935790885450711751419427381793835687493392856565834136201280019855765865136091118636457527835299425474489335748001596212304109926952610970573544155756548021038941299145326755732613340804859842432780693777154811363650813240294470215135288422849561862305749493347816111193328866755832669879932971055120891016445230231093799992384860977206816781458017358989540590593802524227922461404276639141507676707915420422247090771570104804967456463987361407867878187651910600469221339449346217466183044337321815993820758111339832831426311749986072912946515318249383114022912985650665558074942109547459237692352716167600346589460798747256269879683216198958573422049406085222675793751283193730869759574602708393933569236752476060887600841259579960938954473973786648681388703905865553311063460607068210125383392516526231708520012358655747896196464361181471417392481371058105238623493628730255770062777507919020595427437420890601118963550106824558051697441706959489112561905583984618751747934188435285842394867733036551560101780994594786175082156158669825390713665213831755424554349642834021669580997888177554280080644277572850032846030609306520092433425525874456674925098412709702460062779581107548186444472492693496712955435295307079918826137837873077554249444716672066124812984039294615593843501184393146912915467468466544183326720951463137121392852883736462129923114337111462630726687417280280213394936673544605290120046807582925610125546527040801541436350334149791200265297280705719430769695333701943684342323437833079407715118779071109951344045515040760643046528101902648604255237146551994437030326267471254471063821239041007342602605247479499431442185050909751997181809304749321567294934261313926303821119195319551821723622426897858688892417765370270440047876028079504874108151285937807951851507865033162675548615594488730611309061981861179113308909433289789738488952716969537747010952577652879113901223376899582667785666962055657999991545775125444857172451880811425985285761972094855291038171292616530158611962698713474752284902572584777783682729355324602676035002018344730083592902213708182386242983097337738190433394247784075925100512703023336336969014977581559919293093311047075326351467285673401635094421510876809474080856195064170146517044613463890115146256286175637820281430704618178703688127695536455494207495944748002903243990724943582331365653563701996912473612513553751791697746365655987770121264893577912732280833239132395145414483605201233251885184740675068347851291077487499936035213316161886114449216944009337511359023814988873399580706959990569937598607370822190000030175373115315621547092486772446647891544949696882214907667237118083058852540481105745353396574607651798131016913296808381411986823342331387860365162564169827929202950114069553058316840097565889945478114233748213361767440406479726330092349285085091970814062303194964042729386118001946278454356361118771610900087376227567795882357161911313148318944878465322753038008140488915367886313622765118109432938665635291863686759012225043075896954768487148008039359540411173001882453179698579705516996427744324894358101932835751689878279941520716822324140580474084687311582699983250039492448542051699740176164984130492003999557445215480282653506949073445318605508370744304599206503268794741909098135819441613284692900998217039985990609599661813012928640013379091020339154318248058920195427021245890991756849951549560523006558765852169421599927765031830516284528036121743387823374751334438845001962816322578443895413976824498308804150758158304406052617250745033597902740938222977749312062433049799434708689016536814751015350441986758313364626079319656093917200114968367531901463273584151851124853537000158587336567541197021843224178313408354355320951330114790550075147140180298653321765522481573623829716323913481660889896822926061758297932042591212091474153790198222573033139273959534213037464461237165160095783070144737670488918784912259589450683416091219931155016141701774910179002641179266901626910163976919496280355723755244609487276245433810725696123120692580678870023192067379712214859571931038865691193088135068274521034244740949227552008655229111880566810181460896695915522519845466536742179025207064746046417378988432143571743031141499387982162673431265301422264446259590130698321729404923040303660057558308553315874562480065452300388266362626288296713099206727654543986808227146782898199347723185316957658776433886384762310025079183599191823889943411941227770773166919145805901939656666038903976321146870269048430709935089796250856734118204259510546259335520163697564167929090715500563125144505425196001264412936870045331110769951530721825663650660648054330332146019097636969462399234227702912006914547103354344995819540379422137391167078938354738568334304196158841264112008832263765529247601067773800406168716236988234622772032395255629877961089850532195703065889421205190940298640161795164065910454300260551106523183918341477205417858071206392042884497315106903867743700981760568691126379387592402394283453574445272661723787186747925118556783649312898622554023265013552431988572930860472562754118545703757672120315661558048478808427838053437521402056776655732996326801069493702383712152867853964327672250529572291013581149225627008137921189741797077119450674133632231331018922738651876046633189413742780027387818307244030044507184184894336234220384136998080176121667564906507781347359373903033497967820541673053142218031515984109089579168872063386064723527214505739033981971487466844017899998673812031090658989895178193155724839906343520894129026201440644080300883630508222423768077900748968981244210326237840135137753267079759784154548528691468657377737641391779179750521801528718114868542218459693384348903912921250731914999163474653551162573480856255958185524390486110028383230978513981403575947227317677973119831029211725479078063797723887147864539007654082400357917273334524979387191160728595572150609583956129949719978337471765874384152329627164584775171512998593875779506880850213507258651962336807301237888190910839788378345585741049668842650472888457862478463384682675146788328826201677695677430708526247036886947284999585437775711938212997765107287579647686382289695492104067390448692761696571362115145366743186479204094065673499401646490133253661466709311510617532765598101282111333349666272512616240996192812862532267713930893112790847014532789039442508339155819437687512977900081457256823985078751927871060452195380869010226197683373453954324860578209198722692452973764660117893429450256955520764042144525940681447933444252443686194013380940948483604874708857575505351465370211383107865508543600443853723681043316210739527333429719801820298072684744646860348979417010458477557008549734855370333898559654806483647055020697031010596082095131703645847313445831146180803539362351451624031926683072525628458199040625037355307929124661296574668211436801102991282530063259098538560253018553885075961578580895683492245762569281473490422028310750738836534223063346967407740778584968932010260958781790490685173755898721840372714454252124405783256755033293095919902330309043432286723074898481240810280518734901225540596690222553665984119940468562948111883914644469255025140056748252843061099001092041001535916089732561436767671351141868711544812068557346621223237857177878340083390885287480686618306541578019970925331303249383246241355771837615701831043493003059591025539066849058714063676346670773901682909189421745122313027587492261425125495054878851396742071214665429531426165780701021661114376443622814255162124502122450300938722498751360398173291298076390780260072177399786610756228950658001073744612556795839839686232720399882157734789125412628305700640664923965096840005340938233421542212428038500099637025261266515781676105770070683577619984161924867231478276578633074495974071903680915814750351354464592600141080275280166875296472708985546435905269108285840413999504774913607813863217672192110786196861129829024482042016024838766503049239708768074787816273955410958625432256845894074563065499644851848198096081081247461601931585077753705430144853482191592203227338336289596314179881303002634490887100577560785481315180707005285227186061676994740204990191577389439738653154572109677232633486136790638887969128392253052636831072536834013243422896829273470593843478467684168885480550332508788801834615058992891468132880393444252106635740161301834464930509878378037985377073770901201858871731568291454092093079820544208314606384207658375133661633767151955907233900445710764512634560091512319321369100620124689221642144750628219290676029802261466402368169220066703065984539146609766215873739122017171347470743160539826671077282644299463013255442089960709728569443294326517364360278814721330473466899072004042452897014363766256361856370763226609561467802863065027739779802719541619156595061003586046842505053049364320923626804206132285727367222497915289826996408623822599493837237372946805671916363916111299364590075138187774775069032878846171778441089051281278260704969561328900441401146607043801212229178881325466339909438240659453039064307145828188970974909682223870118785847518199255246474729580619497079565469269640343497970526881746356075327864611819288296777559938499910539628761721706602795152548718585460143301489928645745322745217653947611792978534315097790925606654259894073148015901024694545183787639543682781568629232516185950799898954984171287809721994985826730765269091364621119220968970077202396048274500361175712753705275200458097903527713224178214481010392624367416299270149649680257893834610560257123540040668866028417014986285009289768861192538615075589648594274227453075104986115160064854774826012031281919010233371931971381280014210563918147649591882878100777447154414691487984227995710021941115122258640376053832168461523586160334629929423079808320604989083256190752386550246807579118052943834592164371220178662877859460171443183409386810256727932435858316703081150960094741896586584504477768418963980244872821890535455045866732321479324113263376683838704298355877974052793897770683345552846078283088817534216739977745261357399669223853793668097704639714996282322234238373305560293270518989146874958444082262516706970976112348666114061552039454485011242551144252615920271142952195492746237681766431549448612842041462928930273682829059689856896442277571932907388429633861217581722129399082411452199454483991203257099873188191665066644106758057425054956100197099849203383785694972765871728526374024756162666884789707643633620672683975716923777263699499576936552715359637432576938446503043508953856958296794732232388587994029768947827584846640333440815947466058035570949016872739965825315179611255642141891470925033489764740997863336041436339835377390205777479618957556624086113483327151737713122322336703860725302778568350252449025806934712486782612209779072505124962899979256340284119277495312879307126797014407998729300059217611493476003007429986606733253407946741680298271256981546510679840353997412448325789310434565570952908668451874824977485889902064030313313111500826308096248350132581671547909161696658848319243657514144937414303272730821474176285851696702870349601624342939841940395961280036728791995041106905283568157128134300729369230899904924195632243228531798585391957474808812805547628859819080377186337556867868143616616935989389431794185653231959089547592625606966977883890844434525172809571188230632933433110195157226759112927218763354150471833770138227021904694263030094137724577645744119187675989875383295160164955404404823291616822508805465744532785231222153906138890970495755209696871608021663601708872460531461322486782360832348268803990697075234293068285507214453180914234889395437236010653102541008713786795680926624495074355539864471752253037477387106013381638515975458181238190466544688236535985629108027350014979427112236028385763685990310195593800247115571465700619249036331989923323389961227458010061074649347699725833617071768753751564513241102540851874494514161020274301249422041597519572500023995972646814424843005207843929596367379473238789787067018045426043216386254370622439830387286059566873202500439755390218363662828372127689706597593114152642308186903770901061682077864395990325554998726891413212820712900676895080331258356003711358743775920908582853510655726282010748368155447688933119248303225763446706274600330707062447257796173970804019822473579961994475985861169583973736581521798734188953829249908951229426950459565948124531994063620935475329440835127433307868682276920248113269383141110919265911620772311375424052118645067774760383196956378419856446590665756978615146756291120862438629613697558890364329074842804894596632663383009988124437658430932249905106412587519183452709919125667959799335769557841462567692350652426194870631862723735142167233459180712184960603188363959111805590971097976785720564948169664998894369459952512176796802507626165968035860305369813636711394351594861090029038160918832473257053523870989110190259067732403074310226517037767131696895113661863240801132917153924574363819437758379726599719307076899349714422939809423002993054111638081697576103748628270797622570328058491987429294405903781730561987908772154783046106301974018248183939065586561422690876735550078898275202547580918753283904092101223336008510276432238470567061293185739239865955652092133760333716896227019555633468933542800786287245385273762956099751573074637055006105892348817023429833424414609139305433002510615042981938747389660788918597717539485311878801047104245177261777753031217657625020197002057628794214174387698336481600787542969896038050600701431360633848604854029605172959070283531032598606866661034032036734613026664671244129657542491698418888599018449869606721346444531899952993975847021071697628646747499495862394927476664585402585075025624808814182175007948235076952382725915523622382929387944414396616995619430350801306375235663372687699521012093149481608704658546214885799686711722436557901818206101239151807868296207259327558344180629586276165838426324444547040125328289695010938122515959536456943063994288276081877545989878432289431308842142255289734530747791157340450462954915904641325181841447776820910662326817683100562079719316780135102452627173191231857432350337352606870508831100813095616495980683574431134226921866750907737042266972134727538756611679509141575326823888436545259578019601573705502356795218039158236206179725323664810488370357069545559855889416853857973195956874500138161841818009056015955143070804616319296939818590059610890488888163505933104244900910710366830728332391113022542538695049321464828937722756640615390205688696424999101248936827056310342343526362710566220765198069012625073673665363550336839294664535158914728540771177900364229871388910557748297527976424087516723548574415878029573125450083201971765102189657659821858942441135724204704280639796105580042185627985351971024863289476711195596406564757980711314073187274057213906598665406087200940106949851833489991877324348470116925172660555863205929964299145556873094077055220700441727041328982614486619628348798065249628792205756495373293998053381368240835952023899099873652966359656540768421096840127650675303040399067344726734533693480196828741062702259155644267399153350621853999376973557771061777875631373666431840032819198293333618408830792436079796512886219094646447470346306738547992933019217593229745069178766115643736976920123115777992002625153672920739567026764465153692145255306167268474646485076775931431301983594214909258234086585058171593411829883629908394886912943042363988698712734123302723600235260937802421918949302056563737320254692787152358810021743673901541971756995121578211313391463468861938397573027452522931724370858472228897294789860365440221953094494897823524449409108382339294315231958118891431396430558969965061093683124015830209697085451886504915168480409326016447310875570631164847850818530295300083907568517501816881869565642090364955348756323706765877395985435579001355803986034092868135897186463279791637224737720246044924798496016797878819523168997208695776367198933102080677564005021842009760484529100460871765273490680119626657108998181227255091261386591143043780390673209099952294240957206704958198612217046046070635150308231590383336437776825346627642710527668257047775705973052581167583682039587319008762258404733802906867657575643760409681308499811480232026808698970897306397230433996201817981153609000439143259300560189894022113301798631867469795565568629606989213894302205653127946146283140569324125317351973960366141348367505767886595890416896036327411534108112606149805761365778060823571987323187168238925426540095993483344854802933191821041645305469552553923543435584806373342263099344238358121260711686861607934360602392651535263396590468816788517488408651992689219548827793420809999228482104816493097516097247968740833230705860167562156122240372756408453372872337305366417791852710090212730192262434946029880409785417178830455344586010236669869546539314121813485903666444296297700350637842278979466861956966747812289646584339947531040411027022051284188334465083505317118121031769714084139186139045815562646648140860534759615496346062992168519916305354491335145817486576936846152360231529692672973576221889248971520714212538319702601021105474750814898138253459819618115122106232601827745786848383044810379886883574460536028897066186995743340476813405850308651822015896673829311455732964513660041777538288514517110827446623540497049279695855827586849400478984117939007559781210408089286465881105770086505881048796857159411139389709140298803359054039021709047248700280491210519319582579289318059218695010631245929892094137891655818763505146258119968740701709912057140715668384461495467010330757718347168113386422605182898547309057940113932215286277796479839074364399319001649261133644938510404749035140356072352181501848352821709838229130453081646794152505833097075568092051018543988626710798273750086236646841251948718048987598822845585927834266038185307063191580345016474990812191405227426711972177783472622087378411573544958199841267166413376824344024282630700690767721347476645326594044242532455232847778267630430739449031659547320257638115351515618732358982433577496907298747019107376769594814963760686702910950440678376715997841074308122740075753294880754173105790967385945404661209049813028687581443322046936165025878664932537583129067477259976827631344606742112800943557289057565435390345267925562513204350122401194874489769988436301949261781600242150527754081088693178941686885256128873463416477123769668535150088865622974707915397212365498127714143391486457173369728763290635677662839380603149795645884562914463487689153472702464122352427959863874323962370101677223575816361341280873069753477747859314846509004447546412058721876381194104306902630720873445320950325130655311293987865483699933672826235611271410756114339949005380939857846711190062664956020115934063468689493976484037772308615538081153321305685303231042235218333363048968772389036784231500124071326743437814494498150791970378980488344303923423729167375073300841977561322009874410769148304140370262056570436343351838057432643103954643922504428411040464446954741476559149004994495453621988374947768350060475576399511906252908531301301796648225184009858824132502261455754733116271617817466940791231539583302807949381341894280291780907500696168186509171593771197201315688970083908797780082954712881118580248550442180811905525409009728982604006213857119037943875556157713071709936873499067496261693830496331161213355578949279542979464364055632472656361989926917956984888238342656399900714095786793480744692580153482258164122506574962027514473960345482720859104090320852153220105542885415290117344163810890804458720589962833102354800133059263806596335604272618122820121355250207396757598532979145660816858570980168983236912680394607343972781290073801904614897295439845838672232487240036172238490087613459678943339180520271644865248864701184157761271093615760406936385501400203164035150069892565336790377358528825265828971962813625014893156789082628533679177039545173706362548465541770928670594188199709172569328317367221597812646312195214241784597501122388346580880978183992586974208015680862620401342899774667916092378615269302426972909943631535846106698433402846848258532738495712406128237345385788467398588214802325942416632914463247778569961191611336942183222193582572636868779393818391439337633095858261239501836578444001554457040790908684811655311458187969839398135918457551237592035152958031285093468834438434656012580608536043306531507691476886363235269399968221743066214256571686641187420916121973632961002704498087101919149919810532223606595397540862735142660805758307958554218626849801259915298804902645884806909152539863271262086040838993638785684567120330373713507661615036152614511833712170772360578556154256374370412423917268610875347921266310692173075065681424498981545278713907570486081472561403441571412042424071860089486233985104323688423724905156963378083716994106256450051338922994962779508888102274200473343826147709338244437025095427339370822608107342256884962091607925442113138161919339992276584000683473180275789431793824070351821811462699904699004605820633619360448997248529990877704443216914893270285800247652113026613976096442902146139896705411023437907031975851112742979858781412512368729476982934467618645882428907360966158924860947971874652484749692688072242696691126374942896138847532829160426976898324563999482992135314381534358744833192863178467952257984883196095431706287406582102414215688818506317381822179628657657476870694477995917392782545166660208528958036305427993569990783668475026475929864256483761077083337653041827191428402782316836796606090255770236005553698199002922800434098111878655889116725641612861273452138356821781286371692835084231918837764219911592705630619965003459577642627103561306043048641125775807515055582445617186545418402682409424763658293120394492200555347242635874443203984555626769596217589306221269861420696039670998992839875821408852869757431006419387088062176230097433527266578787696843730563174515819140202351976327797670130910159710006469009166966808846095507079788244347587458266666136187439017763372101829584953305540553824775892895997239927348513406997443514962985451252361343542426895093520075639150461599032021876073701545749133729547527240807977961228788327298102607852155070885965842633349362705017630611599748452122952376475592918883443720191807591161864066122112909925230808133834716195172730875900811866509806359642659687589949082374670334465004090361243253417793181170389512579300727094872073044819463226684102868129750544769298272526833296362749577975907422636108983347136581475785376984516132727178012649485364589899006892948153462990512722707774765612441805209945952210526527083676739638911519500259211098644742916530585831860233883650382475017829573853051298667352355386672112794225705818612858015265516434150735234738971943849685004819291516629886544217298077392263824766589510147873199874769435168109318824387152590711243689667322698555037030784444817140923810569212729233385261447989680666448997313691309578145110830559792595833115645001957160571721167623301804537274753365291729884995199738822627913072670677731770228572993390534238104880464419451022642056227220427135317647467211712428949557361414226690326714110522258111998630840708385301209954474420520797166409582942241072350270278595897015116352316174517441619683344815389391529701243734174554778226863186558871134113100857437706914385481402977201127717998878664783380957930227664102678125053432610045515662860434497250143153702424871623498247233350881371298738394755155760491264461183442245620438835655419602051241212113645490680657255438502117611058779681107219505077176384470297159151914039995005227121595963387307800437508285186465734009578571237440461727944437880023393685326243486656744401033310155946420198209172321947158242804737430686199904075076325319327334922751767280661048540259861966146526703408889098287288250503613320447823240217793112872580271261904192796206349985007846759347207655205921243436118019060411997378718444977901751620315537472728525473237912980865600499358710872753707269856702794577701303115314013118049839519593200462883023272420486214789698556035513005340896952285254223520512423845312267062052154268530618291556508878012524922069516486895564606911573917398464103197546066948795463157327666501399736459224200577949808201699972816539311236499962720200706466737979572498953389646171688474653414275407296866193935815181807338250558721626344963817251738715178662538833511923291839690564572703944055149055822000711462135900720871901418783142049725273342342407013658328503143857795699581910179583023435317139050460707373529434474225585507781189042777253868098081612218635626173085037819642814941033449331529393074829975689919400471725540810602214565016385679952367482955341370647751336722805858227184711447880566857994410815709846134086663379954068588041281078704711319496826587354710421719155741128889594047446763716937199191059445327898789202106920222188377589643933173754778489811218357294409093051557883104679817823821360644297810842770295371501496923759237850875948649636348937940457652547328873100059909593292127404165359701996646351152883701046098598291542494003996877578348556278165948064718882951516230503092220349619882308033424938073559122734508209500772139932851529179693639363738275989941875445340763401428721693678750733625489633498724881024798199388359355600943051164863936593038331242418654811088069629804938733013633963895036286782893082941163939545073505796766991892154552681376056807120071313962834043493948311165047530712250588610485192710986018681182442037891641683445736058539867717944189369927229574265517852659742106785142493635065235398988312916284262025493077098178833987462482715757515217762160925794154906905429754911087815562450761636218944955249464366951043939411794393649244482595882647683912897239535429312234245562394322501810039799763856684829061490291861064976308531534183421351804871871429562287355050821399751435103205361557385455569163231364681345398431853304621461056401832490278903726119297147157080865004738914059862208803486994262464931078295182090717513410470379165623783494444082506126890320605653989074962801279413953060973266924081466251869982171953718711366680673905552331870811068822910297844888409263126179711105551316777358799658399144589140779518329601995984702806539846219781182819562792845692570307073878551365566291466960787976706839837978741624551541117982097769554716884224768130481865529496429310149364773525568463325512879600702413978698807135699886677007651333513341241916000992000178493783067570725997935107236948500693368266684259244193056060886355005848082567073532832123856322251798024236576784634514870348756091591803422328156538380807524735486797842710203928606236329044924237581436149198648665081518411984837854829333567258765648696564926186318078932558573077297972635312101971076717832190744516786714629560813799103991717714035580338228087780223754549873702297764056513473915800683950335953121913400186195820568737709545110936900248097532183572173569249232638257656041200495470819355144973590722035579815848949379318522303067147849934814131255230721611070968085607442403827050701006082754602319762485808522520181153709075476833607863673662574381036233427549693321567928664595788536406481252719140611037237700799063406954195277182964771698907521333230827486867358240441470763628257690299259461610505666520011632766544266819348783845475350775674230466218478571712375944935836013621380090154651485724527802040917588453545459839666117918019385601395090646716865757066840786711276833142868268569739082736016930949679189096001582764302920835791482373985155036893588935677331578959198363922761443825919290654611298115228736523730457062207350293901035107694686342013987613670805540831915274594937405071834604930315147442178798272019261333872400382626738062999264961758166827250273326122314236817625684587271090712777565839294601041822900809574511430347667727562339436477049500326847109282176855435953243286962639654822903993297862947035716754002507744460793525015530638991391730654565775197169386416865913399340219057925032248412232070741154022177027295798457478217631483598290115850266801512721372645773573632343253137088001910427031038387336358172866222630259082215602531260402897322499324055866374585962648491102054981215060749766256861011699559256227950756625267938253287173715958604074558384752233184413569373738869340360623513989945973301098597689763881345358720356411847735677475824795024590079242912788096792002372784178446012592579311970843063081948522290013807261250782767052997816684027886741993136493581917190065981072733519579503095836491798352317946697685292532980245125342577501339491754071799883171653413236096203160844151384562756643711669434598748590445313289439906328046024041082600234845920028018239647770027335817057846424794657430410295691517444029937102856323451988552512622094292094492076475962808950295052133749822861319638117369271326856954477121153166489990291296047287122115653477970078889744162427505959442033658472673605422123894175700148585689866983414986265110672449692810526534422052399501647562718157673390888814165740745959561341661035551258860713302609228627731505797109974871414127363201437749768433188364359428448105178522179669023281952884560768503859823951742063530505714997733918336090428030448587416798893960602140461898349027316877185537164637830563334045056451015868278606763081275992769993277531717066106110787837034867036928524919028693776537911209989064230607678653849933453381786207652783793125684507493733927379271887845561777044757931512174699245341617250217124614839933493269104650867865168860643126491253828933525519831702459581716468768975476007500320516162111589449376744018394931963750719327220145992375784434381648958824184402587434340641482363303390868071446824725257575089105645467390605942460258168369005475178651539976401973802722516430090364491109632642368794366399630054587833142371108648784517614499726341667196028554759179376198010211914435337911500259708362703921148107812019260338678200909123740298187604368892337208064418628049002501460535668284628923966577603863011366891711328855860275154770900738609576518876111291874808821639863300939675086951930073307094165327587094860540759400869682955047584388225288168917008660435662444443318090719196424950323872485484997853211830272853433139842950171612073046600289716834132378358515551871642823531940787257430372420979884639978366432811853578635798071909735001137917400990633840406671290376521194255366739655730388692671849869872506658506554487882270381467086357394810528902171268194217967848968462144894160419334090088118764085324428817860665281210921997249356363490033060658095610376819862423627230375959957883248157165639958785179720159436328127417872855267041637283090980595318865013454704640973782797094311172286489068663886355169064633268606210074300430282920291661483458001021806196608884010626391112742573370772018305584008241572855386031097579724052713904600982222184293293876197165058776330159626281158441464530930721757575911949045287444052418182788482349771834530634438404130964167998383683741479883890595542530681790018378615217105505524732463471031159071280936609927401378015903737823636063827830805882338464348558989779505415821711209203025051284007351815621249756036545732726349663558006121769322498476847732176115551457306067743814545388934447448145795247612490344931867106510092062682722163643014608779248869742973532798968355435163437476964043281735115847887273974236142300960814251484176605853220072332185310671650644545347427706366785242157842590442306232869560824412921284509232660065464125652928558837337521207129122548686097163827975993077828378419603819889458059913861510205615712948813736938510072772126994532064348198244390470997123884701102440749996728007803583981369503800542720371866578927196051344470535536618971730977770194528214676331440572729756127417172895087931116972584766748181256092738319958806199117917098294192827419665375090289362227727261843709058418821684447744632323681464049421426392731071053439477549090899230014313987859488683013787351584293048415373636893449797222605701259060496639122163492546650387013135437006195947705169879059012974966377611521151927290705648596748430280063713709313785948563323009271623471860070523673686966436695976546251788774580166151790963390823449863780382506313966105175269603712011449652142582457752875137938259851916809977441574852742639831522428168005011991797151045777602129289470649975549119703307381955072964138825478982087292732808026855340146888861919462295735057763826358893775851465210070718113661489372152136890222824123603486649446216208328808646143785401158752211434460165935499555147097418009114979367622973915078057203496115633423826742213950041765605804971469236695975652838318207627295383154774550779401551613168593524096095803211656392943329129507308779903995042023387365442619473456526691436410424317778192925903504781835552683241014571641397950800658283027018788207479973779504729972674238322346312398240512615328709306575691932272714497336539385494259136985277072972039553472743626448752425544439694752118919863130079168926462147217186398141234680358178940243521157155712380950421723695187171028696489091852301353860049896918590131767748848764408047368480101934976120572140306672236544876465193109132958782501181796506822138901129827969529936770499067620982675226238275796919848351132915678555403827784143209287036984641365274154316153466967932673186245085119588337513586877340014544380113489918068152281838344338349163974297998475214132169210783085101920173617771537081905407789451169188897064721021213040162738623213058952965270835082424200978995878913282773215373679063592287628409027034583319539227825207984177452563445158677443823788522948840171490176619367580524705325351457132092508826979688771646678619534568822175349247441185399313045673199266356516853027654805487696809986344981704965896265782008126337770537758478884951755898570111494507175649754382745779499632487229504129112440683216476567455339041601400626052719914429757767782349940351219838007847010590549220051470240998278407538006833373593069276331116675426576083977647605113769798448198406862539491393359565471208995871246214954869713324045754149463060550293474147786005847020537716964407900202990357911046653579670526135067483967991321952921510401136097036388524440581177670254378173848731119191675641372602327115767982760847027607192047659452502840990026587732786757442453742149288467195397939310499352588579314620216788479859280816105765634319620891242545331261576179886408859781706168652506149083930619781380829050857773025124793192168782600446636583414202327039927507037865792720853881127579527030233358221100113068147934023073117193106419790947818346093829627065602079633305306524178089871960677545011386396948122434004023751945146287646262952566066562049240496097988456701515101517620020060709524772239115283880879313205385846702691915591321888075531226185224507955809142315629375968347538922960811926741887151946030036969387469197605624669293235663186359908221954945415144363188750558404920888181813516522622481822916887862607453808394914470727317122761722875170611775782355610529693710059487913286823112246880531018895326291979788882985040968785279617254227643741716344394652605943846144157151003543685043741651651328737040666211216306753383102370719804791474844469309031289730245173508145994432327313397950913419221168094032068834295397985148522359159809654879189037448990383202621787301968682469288398278396238231078489061637914917307711453167046767702255623578642732279259510371581397724826621263090733312075715495917854846808408977995843362049803945341121127165688848693972490789687815467442691521653019496488918412339782322532603946293074260135126562759722581163404186544307661418472571391263293830870026070719927692822472368278253607204287985731878120926273013745605016110751842418343658980806573270731630643382145951848601071026332085690241053912998660722485742625464192778314151438507687845386343440128804766347362593848739705275150690830868913653135330280414002357972119154077086329112329230288319184774470491202970241194669764784879320154112613229271213105828334617557516536205436933402887860532775793447550526194173065240026809673043334106418985623656483349269803771906778855770273439561753538805404355803851029358119434930215127369009190581511995742038986839424626116670628322738012121455722244840266375551700933278672758820213147332779462550214135422081566701481266281382844630971326557753782365263646418810648740395366072538643983447635785555112930919519763321595714984971149693532571096705299459945940112882053098792655596069870604467315887477369721799040692475118760200344538030737594904078380901460673034971255007720986308121472753489428573056581546341516624637969193622770221039736403503846125073734643127382738944927879061583372685656204902267982583633567748525287353199943666005375954632857492064838029589182441106900560741976285879106343843596178966705959146680873732182048435556631407324801429443068870419400540024589457768504149991976838089761860227212390659485975875291201243904227176193050704312573778830534358014475769825980391415753274008746910736467484690455098872312734845924474985985476095047878670826298060687646134227869937673069882323024889693427525071227130472065669062808766132089081574893751006797712860131939738799481530117048864826331939840576262518842323452645605297398853750989766230003954469270024700748817755398548081933632819528203556683532937591531912536479818180884339737828410032599058619533255991185641209887299519529294884473292698872533778294909309419435479273931356078093360941256201871064897938455715112166297824598702987812006116234490195241391920092649191249621774916842650414359212692313572313040218436797796799112655950668490728459956697723447222994899368634889677867648687507639543077243362215153809560891697049358805447122364744344039094976523779682718306869848366723178547986097510448000727110701262246942529328996409718646977153512853440622945855677795269909539785478138870208346084838202262903595880530612512132303109988700179503376124737889257360515568848593485920167028557037779327000260645788790308257788323021258461049109831980866928505551131485203996896025513745291584870055071534319155094062462860033759342177270281611395580642416039001766274296057032609852520628296770896672473986069234244680861188362072627156670361991025155502976698518797600784503573304256620765155250289210346852036321070222326964631446925145591978168693458144064083947490234878221093888687884400592968141114954742407453963594723030589052260702176239901871939812478757190684059327056445349886918658452110830800258165811611968979202245489006276763922886639560850506837545547429747532510260140165188007336470768984189072187887967465375542503441934455691424041437994637944304559762689682401575218102833318200238935909211975933692304079471334350423874350688582492362254952395613569432750353631528769520800901104270365764397317982026329415125479985014599230071384969545318725858004526106544593411316956597452570675784590188431518075064645149739506581822599201841969247422171358706158456948180592022655973766179645767976807868122478116866833667084971006235333839777554663134661591567416986059714812514630149329228932537250100348368935485965219404025470574530321252713438352251051829251601516202942919147773746960419973652142079296543477966801656333613302478364534565768092935843055697209693908084514935221228246769626450414400438552199439802488301708668624689279412582099802744211648772566365980086669174641013652048356962243433036425541982191796529266134539870381713991185143671164383692175469878422794869547696435260544764717485846320893877999718779662592939359388124391705461280058390731386171086575672810229098267080965817616029852449260887418685733982001987820368605559882553826445099308270380840842870486072274899367921687054067399586297015609172901720396826503020175813814320701709474285430592205799548921090952299333774713303099136745500768748532584826702939398487004870996455581222501416652683819820531462981186125363627318486684696169518408263197298109959607731882276700565276863733735101962917017313521306382497951646202104271695342298349054793389999602713863318366549221664904105418534446587031666525283737403095560571717481946665657532886372009574743830743665113058648096657840281711181594185324034429588560912923133482529571543114041932008426352167012044683264860067438840126953765782849830979307916350307611351205910148482539265495814760489163877928023884692614533227314100588663655349453479803851078265922495307949823927031911950286795011939530275196436682932934214732976837410936448938872293307313909844107379121851877276324088197888901875991197285721143730606123249695962442149143626477010056658019397588279735163430424209576151513238177984310634758243217424219941790703901563976667427758237149712941113814170848104500495614933684513848419510424293640705680638635331753915036143298566292265962094953683259345877253819033172477767494282787546608431908897054244577408059815499784648671762682944733784734682084454198333507572556457377439277351727924047311657746039413990610080411576637320177375710968717806486295666084924127316748215356632205334493591271900255856714649564632887088309102685590895766065620318904777145087476222297825009145772405843577916524411598374773694674473421737078326464839893909354152233865322963566008714506481517555745117822160996062179143609078546492324007930083262169784920502903238052736216553875583030148910221633872184974739911250736434920126275802118276268571073233223373511204234941048191433293087345258005135674906378004923094617513520432017764514575567924712746525040337968335413411314404164140790553881626873192871726139910409472259287626477393925711808994179162473369974999363278044669373850108803923955807217611325553953876814006593345351140292087823262925100389490096024329063873411484349152671167963449528819003346917896169011380016765043067072748942449815813074642282335560493010453719955119154570644951637637045736744952791306514337786991431388882732219600154581284463122354187343571459242186571940561686371365168658562598177130912766188601711369709228332052853705492060027257763152648562001651664814990545655437178692476134548864964014157151740754995738008220577639182803166412893365450275922774147594314545898691352375688564788260121938749895711083906813274522160677931862456033472673614065657109540905718147757175225075747375388745595916486996613634957494006977220737991927490007089384137335625261013618222813902247996063744803263422356618664815373662318389203862740669171110246556632696081398506908866203818658810633475201878760503928619789014838500307482687324674403537615064728862907889251977661980278592939942793183415449147150737943363719136703839244680910072467402040502689484738189441018733924694870311673706822238692576538480845682051197330940549283176351165690739873978685801727941888800996983442255174213681786909354803820801447944778705019153709016355855443518191968931112210218741275135870265762128335271315983189287889188336419464509231388623389985149556543457140217345157253002913346642649087505684429496347018356370568821973828736333543097746733058916363082365893399132815332405259158769690936579484652706259710345638701295882495746732615319421383388232253135479532580586130554183309145860754143346982062244200776521135330314170576368969095372412216533166454752370406329106013075282195056532116330480242509446923736659705600834562888104315330277897172988907693830275815143941520328413054254534650544728964413421631884075006595249631236904893668414530686451002627063082743749828727504322913490987991058689323772510373669163733162408017870067970574083330164987732010669307380740449276991496825729681054641627035913296929879557204894373900180470763946544497613305153385601449195223613918007290433033320478150505638724484930638793327070665834308404746245312865284953149203162237875776902293637030987580145418444701704374605543668951480105011654405900368454959472421973831582937484621055391443795325729666103120747709822946316962894188193915270592570424591055298426170790201841251962651711645055868250962180411179116334574060924574340217681641278506131327905812125761208810639387340141972087546032730484787113236009183815852493311999874525410838352742223850903992328089156541412610818168133950780867989246674117691460524256503914064236366334833992343395232747113101279260698359714139886445907607387472576006541924339846797415300488220325604157558805381863275105798399578608584412542223436929921128934065760232018140779757289771064075251862542038471204696704872213486197951953365978196592201472561695047152185972576853917945477582950537719127967216238981211269720091796003034936629287194803529832652661171111509113492484749326794346720812523541904335585160028000526856695722411492840958545268373216096055133415063935333883616890529948995167236528950752544598275035614958670399269054759175237615949653474651914587232180309810208269807935186894002431042863016360199966518384006418865585520545283368594288021607574601869146501436083668338375985340309105175102462131076571860983185081538698145522723663229544234122213779708706567572436721351149103136331484726617371476969126557243222998284371140074052983278869024394909182810201377418729143370904069185522073101227483055230472659293899140029443384395260848010454132501706419695464188461404838126882701734127545706662855061570390277721107487969903390877132839928714796794970832866922552670929674505172278169598950444478372977422607552756942821933037338796473756046620390777901264172873571503503637958759060644568130292482418187331178849238669675721375926271773847523053807625334586564527266554389861321550578316981830050247441298732283403666898061939001534779914892283837642257864041970695689684290795037247028623393437862414478955649320377798228000789890803798578325171401389220659309196309787816202687158635702970855419112900306213302429860558367206339877873651613280899335289111797302157497532866565137405944139000430792816681411658410653833464935196672377935509905020979170942412316923846081518099985812273711905306282681873438913985444470736265003138222021717738762589988519092576494663113538181071128471962203229555906107450566775420758476621187075404845629580021678292577057668247201366614642814986010970829106453283723114030955337668301487171457951867309200910020188027456385918756919330448150377912887274330126357993172336382236366517095745092341493120393894150909322962067472740750967726893329947893874154094268924580588025087508570752232756383455360850276443845711330774235807713830270603302783340704746104142585232985514498962623421056436395736893687463174866535960362816139240997342615085599727222901596079445930405142078865589517465649036918369776019382208050287272730458300492341410753404350099117990820593567192676923350329834069583482641128632173568011920190412893672511905956036488423151849569633047114311890546156922823344593539381816162745230306042175218002731202322596133881283336729308997458472673560077903408066388664271038902734527242400282902524460451541358782875470653427453728830325549588117069714938669275035931681866842758421825166473920186416679539511601963651817322467261756511908019990218171435075236037353672121175287043346822385395444545325719350411701855229903832799503213049282697576417947722906698632736516235733503153551489418153175722018827989290873239288895009126757304921935696447688054215669939115985236041083263624227219329276657565437445399965457211793241186629066755094270352617692004141840072516401270096499067161499423723045644981767234055138021635109593687577678696155261441065162417464820358794044982358161290516392462661340859422413488746843713658333412491434338340796005164642702109161312075593032349416827982949627916628617305987239942114021196495187394621574067948082479060945431231149355474065888911376622812032696907491249789774361260073431836671627612615749382398104699951077246960941206693768541380478070290581971929090034997457557165205797903036794771217826674679385591324605460795324518203990809151672617753619427768555003984916831248526599482581860729198310173046373468206615534545907154902080974120948359989424618336727035348980186015191899657990675432425573521409411807359321101468654881552313910671637613960544521359139286681916592342775792177225373233919382619945919421950213155561855171312288449037922489597222024277456632718995447075159001101215463264336572032270982352328699473461720476295699651281279815376342948516354994092186694981321178393282459111215645061212403624029451545435698146111524200940056897552688030618378705382857771356012341915750605198884029573224125408403054106639548108820249947763248006108886800887395616047884093784752935020900076635310465498821754060130396491528813428680177400958133576836622343139059898146855898312880374861581978020725347692005824518375028564682316646586617162586922942667120396009643455805869149780638863286278418664423589452338934715045762585774429409481905322461360391412765778512852513860780084016462054191266572428652055633096847791158924692969856416705115204963169206493081657564999538512012501754890551545887345088205420648310037307885718995507883613539021619591065880226544715973857035582179119377751266340301997759588047952758313095270782108749569500065282429688346459371036773536819283337606733169166942623323058829104521211277697702480549434285820560992981004003724967370182539455691979521154367551895554924354666860778470306549849440904283634476699560988751205383644616564589081438081702865830919358068032775337723931242541373776246012916505652166022084792445230915729374863677900041669050544898580212722264120334034157418920526429015583962060662903785639641786954411227718959729230192485023309317594093646112897144413624463066366764145499561986572193661471216191716967808482547206341144307213141442666766798612640485936666923295927110944477135523947390078835261934925094811859391423908571971389933360053317588818709510166324735695285326087607400089487722501803252981941225236087567075780191497589779900317767438125118360369929660404033431739400649896121594422702373255167165470216730689473086457880002333951554881838592019612779837746191097063442674125139812786044790120067873745111328411325017182977573974511265940868368060389264880808400923966122841334625249967234255905021935163667125638667753995626499754692046190203840215859949379923570377211252038508069508866940961143058428484095219948027460983715138702045731723797876829338664582046321681646058301604691775423488681877829518542391836353382260152451114650281346339351018791472568183271544822036367067687861485513983138073637923718650316809140673722809036707476408236053115592780001376493193677134835963693610566745790759945164912258451856804913682685999094497076014193964503829939224104371309979667871394534653560361627380230715415405395752768825762004385538252315006682249932250298237217458271058085082261939909803074044036548261728333203834673041612571232325338823111137448296537147187508118454599811495709556251209331451224649750737689717262477636904973503292988773512161713078837825633250481413077476976880629711592524609259567669476897505373650867812109866064759492614607498260483212800099180543259253167430098296594405636323990486966942631180313152864878988444647583271672861697410824949143922043780012608046062163913041929243341318938018531552621409663982395766938164518107743210352120545971998607078435762156074542243466281982609372087171437335490597257702096744300378803555312258228944052790918126383134534432766005127241388714869982355260143249365430467559058996342515670281804171966296743136528378841023391948351876899019058277014861219097883978572851479232889667748713795886302237951251487775906036572121859132493985212282836104478396406447046190111758947431576631468627276913131127210351454392135627208474471695488743117110586445574930415064841253952550053053525227639566343421988138302121676918467166539753396336447372610051373239378117403171276370916582548392958905363247153214113792367088600973494275314152832951229810581572100471648182824347257422931740686511407025065756775633824990809861323662232219113380012600886331477539001855831965712431080671643414225628834459321392352737446611076975509407927867977567105240634374578558375226124889043277672167393468813055277655791411255343061793837501434455298836021682793352768626951047987420245860044584210973526413989774655228453807106275223483073083665431136875635859418733443321073510437036668199965673566011691925177873867988256560221044394983639221155646944963436717900761937220410569729156189608335691142090209519891009809889830444636452428867381103242731446758979471548834285990709625646462204514077984475194064389006509862130619955732836964946207060563522063925206816209503764320568289064425259994604464329537091061914831027750184813443523917916483652219360660133772241571750558741707580792428457271513017415738246012311687380172887365246601927194489707015859343152231266037649986865003169486803389892404959471253833155972972499690836596326524289319059315961847948142459917853905574161953172815736615517788453017618699521841952975460100462815475108332542582118295575621173605350373648498022839477140744959529226224632239549628107840040305301164399930193039377106287243929573673538826245901616979436589813634583346165796194238337713536584942705630289294991579085168188835054554477775036788499743707559888286611573116520982330187098878396754681335248083414535575381099076127971940579266434533509944377533963543993482290333442319915348354442197826732959134814424309332098012392257216802649139595238054070669744693502961755343017083420524897793662762516317402346569416481015628233042750633474491524646843993970595411666003241954904608018697493194021974796758868381730128378542230066648423615883018831954387737517469310002731821485428748832498411843360189278532808975929796038659799371194426753670342200634587248525058348657371591225608480934257404403756283043828054112618468292449604938441006851814531621953277996353341974032916632709300787548870128895644297599288300200533078430070674380845612886158974297721695828424392618563292581515287575019280632441004556052406512854195682277028278594279829453065257474549120248708763747376799032285210036850171302084381491205538356692723506090176605568350889380980583284614437725950281872828439398992030350329745164078466936611507695410219489594640763904110893352551268459741184707582339406412039424508336875848674566890712986783777329823902076912628060071633620029309325372584075636318500163088602973979192372915200012605000492412743017352028922727968388299676138329592011489900104747004804451302110879152490516346852672719741664917101785374963813557073721291924449071794256154730601720596858418901650957844275040583668672339367038410223294159027672178951988085558530824178317013253774741190717026383965782685005335125040890495285255063241009445839249735155002817758206157637759939839848382114656213273245587535775716148855764229294658820928314541008687180025741529552837754831906851934443611686961058201613319360227882091449976874777433025353419960312112049226287869730317924168255708035287139353003504260364105635954110111293622371301321698117125043909584095929558383604677744174915118409689373832010879430271439481228310721826005662087623832740150819549172954668842910420416189824772511120868149104143103221915252165142810578594324763301875429340899230913416906521441714895807267428668001848178573742762823188892738599291437888939080477688505156918450573051522561523084880975112384762658966175480212742701593845258861030714242682176792841081955727648575850175990217657853354027384759646901543796019906638577083488200056635555785293737127281646320695405254181067306963149743843372968650921630333472479569979716038011062850170440211123032571405300891089119034063838641202156109132426480112412555921142526576821474450634641965720765724937885659066200420551869089769466913827551251991612006386642076609578713565832199022229024909582257420190214846572925937310104809589250347144878744106628743447463876171734378347850136050958020387648721354278625012498871380072492526073892268949704616178664539824245564615938902572130856497351575407895623535603360532976709544363250348980707221495539358148917102524891645585584301344347806194501377669065429199397530733749748700984746732371883198977853488591374978913610854307090687712664215013037043995501166186031612042187738299104443359108242233626682989447550697486095500473208912894709508326463988551981970931802856833681249799541986159018448215827002475258232776637135663085333879575377008312708672241089111647032675363880129677224745559138051518610758658421459226184123900543998021776207483536860783030865454376702411924435001501404393597544682654525885726167906098016387047965451799860146515672194197207218583882144052062984558949347460766717819504623847254023780079989656042903168513992562635074750624594641493176367499829267760994921366294526072630268062778767125061445400353567882419592725122346188545622660298723867331670954878649314804261980249562906672167856763941962450940720039643229714803653004549349797022220709032699028988003043445776215418036126346214527003270635063568174692855682163479885520857236704496747721848578784634530758780300604080718502563033205648626671507582857300115994235997798860628293222442528971925544412368661796002694374221164969901950811776418938857919414983500474852035042258241178721924882599222514228227389889997965204571009582554106957263128390526196756803964349120035367527387801529940377766978145838401388679071030607045817952286976683009319196446499324260725892912023494840370168308292392870968132193239575676663770772791482931045780540743645508503334178337325783355381116096328557029655438837154329836921654361294548140210905233513389403851968811971224160724211030716239908861960415884079411732297700896092499937680961438381653322202659389119136642680881824313829329442199120407225323758863051098901422918975221201732872214153974084969464764424289269624612017272203018761610944535745727270332460265512515973899263394694916334881600644018031963168232827439793658037324453257691271080454737524531558111701451649370036641432393316773926997389848265022642021325788667076693567828630691933553174415410663708457623696521203187742395709524519625616750299435883238655541711627540028167179196441852645983008418945692388658441599703868181310928644023649913603491940691017375051712985931419329547935992341691641561982949307480921446623960798140933238269736744969465988438404195051397811444511641841304156619272381601356042273090405273598226890181865709211301402682028169099608343722382621638620759024737794477457513561842547544203495289991077531449135616804283003746989714982537697207091674180323758401378168574058824467729966071169985782395054170959619529995377102132915872933609483866615285995405648225226717140699799141804974986918808014865565688442968291463073644697945579544270069139334739538462495081448632937428625531062371711500065520799291574588622852901868487729959249434844686442680595903278148372278312644498229417471386295831144252691849751329073706914824836628930900335912914281164153784421955709475531065394431615408522826796014540480989156804194444282847259447651651843360673732012432886422668127527033814410900518833178801267136854936504840940504495690101412196439184926209109072153474900580192439869149030411833202724385841933141429529436978388531605598532835003510985135053840925550551466843600833725587741917387067252731251478415615830406148897767792682727897747609755233624520207070899001019403759424095136021267112358834136527548691678198567502779887602953142945477682505996746683097441166084203729639950707203613056499062946527368218137200054635138453282039762739344456758599109186987836385670740635175204874996851183838901057887331484012048667638736354652021857076420329066972449587027849216608399854543054736881312136523179494017856506482727386087524330402575576891247639412506702164624024907757307394376171961721435337521160945020445330518995157601827087644878125636768353861155553436823919096750311728100116465884284780654326313094150614584410474201754850435648294669448277533943843483993146178779779272218652049488290517737804211738427205101940396369628033623631634457089616310418117701759315037223522982586995038048117249876620460991418507978624957413883842445460562485824273032330377426199499982935572630105862415246200829890369073077048888873216340746866174168808533912134612639727410035187903649896026744475737029518559456322098403897107484959504908237072734891855099789258600001134316792979737001119495751467177205523280125130011855509048379270753191547746418462593332796073525110204113278605683246789372900034466940641993366510573992644394437179257807394037877635362392706283166118982846417935193607281159989650820194355203202809998498186284589856934485370909273103635967112208288256747579558807646783981303031311541007068969090257614186280110674980441629909501803944651207984019784203392738664486020784580324864404784206644439816120006978033596995726186038468523307179300738443938952107579475755955248250895898115680262180072146105766251294104184711213863000272447697615370239364017251259233679471741696570748771434510121234870501233116778459241174368485780316935139082962020346545229180502526844969330656309360806782118570284892325353897997478953258118220685423855502423822717299452746149475423739958888704059865241234976348627206854305536805179182513779391025254948983316038250542747492960997107727451992158098748016170434670619468899128982652189014570513382198537088871676983964675874798634704594965115988971110661313393834945902816104028787322597151245959833505934298295676345560448145980608655572774077646548627463113711961735539752401862636426477089875227752490089807212635622115363810116372086909751427343981336356308279898367091459495687625021965276246193192124618409634189936664340752595123390177547522895450470640818462511739975520636780065815526717799213597403729466748000566706377582059495833138133074078259525133150264754946835144450131260043084054304368508502912573106913319353796214487076851043573740585549098155245593895679951630436774331484848300451531601601518816195889251688936337319226280950074235158208461851375531331026135370700144120945338143135704527501394854789717485959600160963548802361224314105672289258570274624861795536432465333508150291875932278033731957529879096323909919502920042747903084681170361291912723228476753453398468255639872677556091300564066294623071560705344066614526641253477031446353631507712996164377666736649291244571701151998198354947578531579817898349304461105319580182531328789478883054078148002313957901069761421572853679460595522708453784753260669471959568931994556690797543446859631662624917044449517139105162192454050889522676904830648691788301682582765951342880364788896065363665486309731350966228953227738144545663953429618153411895129224895435378447669495001765085070493092108121592934238622057919002461419137537000026844084405738937146073655443518203901139609597395052678381253656935365385593498449864582714634656890965777964582590822704738835310651375443567260502691147453544222876374527945687344142681907435686036998482095183397723861972719163985198804648847266463547558837694102468998333214066112394336236884704762222861465361145987852560148471331924034014819456347064310927053467779564735233819397544487308436667140446822037700515521457239115976290622522336618447536757300626199467127923461692318453404448700834055225004146628707798001043643048311963564847804021788912817860195113299015253707701314274550469902502713969322700256142542586990770067888889609451861808606148086203440683307555036468875512647427665572396138331141327543131820576130848673313961924190656094816797866082741693401510515479927093873178965552442364393976368836072919139908699516130593458189844529061767880536745681062467098097076977403760076962171726978891290016520222504761297487242413600332550503743572724688250619152806148907584131081146960625882217604483520914082919085400172576318361199716931748861073901640834070742450406360656601675855894333786792745154908828414776455436539446764207539080292587140943093251130306446121468995554045763773892600898017178542770821024971909537782888611340012413165717649212936564431783526874206241019036300528048816044917950946220034414771061006166790688727903369519889200592230488958100939120932366134831997565480682797917860356109347418599115631422305813105299657532684850247497647040610194974949535323676092263199896505574924128795756166708322770852731060656026305850060668923990444179465551272462272111605629124022743797454224343803127766078509894032001419642523133027412567889344735476523130845505544757598533769193732469331310200246681461049125989437758572950268719025629664857060700762392255875184094299848239914475820402735599015025449437721255772917464231019948955491674159007859979445644838911997905717771484766015373149045289455161894701806484515340289738240363977903924838164252543077896723987484359994240832876766169060744769276677492425424650070441365875085568977803135238923664780005427404594021691720564999424871076180681237971492974535071262328793994595203788177867572911985514485715491393007805390973448407894074479144982170371227560440801838754509779681417360535924474979839280158632333938720927744241389987230430527139026538031689507318161732344013069964336455118052130114220030848655277598952690057383656334939136013741625130769339326234476128814276921576418961429533693801331252519158195169138012398038045087512965011845352360786635970965412395318603297488432740851558777873668444026985231503836366014363766939291924151988111123788594006019647845549940627312605113749219462428024018945978176569644435056223305300661947986061730213502632962509109590824455671074824457623425056129359217640671839098150027767960975541648972985524505961399755817632766920144386427439261327250765613276862081502456902244521033771268643042543016380883201519959099293242078492456863272584679727420165207050812576996701070361033003077277655126096606077709766242886698480251512752265593475545429566086903023093466773700307164929912998542406950228510060688095686099148929339271245641421526519216249702257699568992703980486466335572418693885372311422437092721985437793583328819978039741888168155178313080937159723304388382153474287610914931100193130062083097766434277566486867523976082365077753981375191702376300485529435040160079360168917664232756662865832310067105575411526323843721581971176931955440561404672605936667026041550514216186837203816589276665896957687658391654690099885719888285852554246817595520751003538825877446826647270949112566483836187618898234843590936793627850034697610307111708122363856313626028150576692325354127426197545013885485774584713054656685142264415876600098687815201005853782915631882825106428949240602951699858571024263097712133969458302031560053469704207108166030534524344556192593171410105405502020581458204804036631176084394696129173147221070301429783677328438727372480556704256948608238788118803516996873266822783505237222800724320088658707237486655796713521993091699084608387456751852788165782694695198448355163440180926256624158208236025797438070525014659336646371160418076006535147767878996740088315494742690196692083313650730209197328235710422207766456894920591819131079954749484002252958565052299286136681599602488966106779544435018616558057814966844058589426440197166506759869931758662345740473762932984345966001276511131242892827461390247190152095697680329677760290957758882846121212719826951117094334526062731251558340328687009255222759851993350956440343413654261253140396909817543922618683890564647305003380890046057304637511253347198227665531104642000010323068136661745863199886882257928833923004589044502613978903001677157405687650875002433873692381255818406204515306009374018157711281492506388029931679977326396575618333929279980679041149226945748633840659880045214931974389275127649931202783856532021756120128288757149474141393195650416303688863402835057566009585258206303844142145511611549727641926774960237484229361944009985275079230613050982919110712657012918410084821693332979468125136377666057249972154622177429838641867792612095021480139687694779666861380685467784284290168898071686033294617299395145814635343971595576775101857550927675180124187634181049918411886739180766104488944156606491227356829055384274589515496220810512142355849753853330729249867130835490439747929932848849734975916523067632189997075959578660706395908185376630777299383319452223706089671300171825983522580097084843598711236546348323733977730305834421954393161142138523382990153569881570612067195075182007958782331716453180168759967949716520339876524647171189907246899932291810638247246400322612208378220638416585814397453986929725891136169922660148429660206100183182549172722807819153042969882925632759179064163333183086042313882693952282766695212296420007795008364165244418467468783706429098129736855886416569309769529938538060200320532634995372985717738774796557753538508349298822937352749761456250059296225951859397951944975833684467103990902983094895975325112604364137887587550754780668346278506989016071201530159793318549399707587130075747139472714299163201079958818152022166445082878754360237665231448148994404104343854941914678777499981046447458760211559479790703433173510467657701774116620668846752550760586711188917950277829552111258276642674433405648463353286932604309745985110670382670890223140862809568052417286543281450314485298185714039704335607920181891138446450825129188275806378868754194232831226616528548445240714907804218368461057085928959635185200815901721050849191923025517422885449753984265983750821867558573628398942798270302040727216732367091478077134902961205346184799487791817604527555652654420524095161464737203200512647345676099920763019675839003701279533253653460234251424852718697886592060468122270752057158653261547943805172077656951632325096617977450305329049701452024925717313073812961624295853632473491153016688798233794955813493330413604782055080865324871703909901070415257245552766913209525851526496549250521695016333842581011691681590276628258558163478678175903246162456647559932556588952520423371809795531051888555785395762746281318221208207677504258529538025791448360113706557727962185926209234504870255673758405261446300010368934113037156181746429846081797874424912882812347725757370760859652078003033667058977538976265158721210884826971943847676843345885359618709375066166131382298065669376670863439950733061809565471450837852261359452864173194313727808777113829858333514506830528362586342635284590203713180306973026075837826083202800436469225596660815942934444665729239487611188158182459355314894529803612429300719314409765500386964976092685419161683184718628933035736856176294964766322774139929007193683844766239645723008538537267945144792429478924679983973494187678334417998244416218620705513022256858916247264563982450467105133924706219924230861997504101500965191926097386370598141366911971326929100867772847013838577266415103734817892980678418439070262357642262548802345899469461161692777160510639293470025641185046440562210039856392779605878158401050137868242851968544436094134053066839791984345590877793149969495152568325053594299458947049665089212305447678051431946022531493226008341179753973398605119099920358186839495521493352167001303697243065660884497455778306609892061419008985954447673884547487900498463706267376850145588351534062170636909359952253720936139490186272778729979924427897428289514635833710030259154990594988189580498120995037885612692743361793398636112317632264246271729138085270044145679205968279945999684648012910566232490214015398051387532862377156973715475909396631912825720505608314227418488108302137711738689706079577281453438972293401049122072547896821645465159693040214350850608307823966169106214161389195307927220530441906281098159793039355425215138555998198590985658402767169429552191994642181661775271504652290979974783308683490270806094120779078083941751852115268330556196847894278240099051482460261764383189782081399969704424135254379430641432501104199273599121641983787893663817147964444339144800667495488207091146681834480629381215754589922892881407735183419578272021235390782048415653872356089066975903156894242863911965053183407251334470339124632307335613880239917527634373079662949764267469998046708436398092724767874074762217632195952227273139358926161210056278706747334876867005878541625556774606484702714646571396913113916278821486507503184453727080468448440518422240043748764917032221373681873186421557244421977991266358527000500556496248832127529499328641996030759720722093721536075423167951239536205829297032438592270281181473164063017675295413578906436319461626395678558851290048814743708149475268779796212919687519966231949273396175661071132767435067372871161324944181198040132246961195261167567285007501014909932561956288374158860540840909614289268904190521129095374735400194370675230584383443518598428178285464270705124958755405990944169773731371436615748407908379054007846996315198419940324479519094394667874129433887066775689867255958656669416434394204992026244507395490661604096314017350709141347494636339441757138482624194045771969449212336278809874310246285512557339901142104943628137820211802242717241592958955471217838740982093301124923181822886779360135643141280694283132344468941683499968376448150523000742154006284024069594418093781330505954082838224822802547658842751067656208871837370306653304035271297788075263463013005655606484331854900242494928003247838627511179840203372723844841860193596154959874538855337629555156649247728720967321322736259547598541995275869644650909397007060967084079074735355434218755656801186393962681425466989189155228019017893472243612652123338120363681427528087308348034942897243032613681061627903374732064117398604979022354978413909906934430272348960661497202879418762423088065530997006925349001506556692713936425100148563224539095386935028292941301828631461461861845174311572733250863275177673323332151500514243447280533518031501727771975342281815511600842913551600861125849056888587331790817941883155696155376346421061060011910844388387802161143689010640740883977598813722729863538560485072328074333353297218090700518706750528835076059752072932344151039441438925878552544339031025319170578991400109621413902994229750528015963449336072548405353400136518090566850313781313236020804400022059147015971763674937862463168793870376431157109656301645769134304397904342174020285796833915804693107815147719868490718256516420356123468671529799695048723263433169561223741415032953131115667386799851401516330617315246307094017168048578163357261660932792132108971208359297416540707349511315519750656538817891488453217028882421525904705437033427866094290490352060765779201466134617506669734433093874576056692171984988970355020884891910949097229795001766694534584505412195525432119555869547043975663194887024571140656153407173044356337960705603956377182143725951343511622559275008661788721522991528184676600610171528996233973387718154054220933010062873930633837372782139580578659177052355588694650535358840466460728897174014105195148060651470807509629227548950592483694111635577327981537361852072980177688345284118377429546318500947708986608938278611478431617984226772178591331433919796687041234043913376115170284857276784240145366988901849372877992248879351794630141563468703282125729627500958892684008012186391873276360719014780606639937913063895836271993478283513956443041446278908325147572078796475560247018282405787497214127529234081710350370745128141620879462046471312370863642565520225277643357070075999330588832986841427840162032509943141085539844533535206006283058254650294669937782542419074598573954091778159698966695139592241557354533424365748542033434539039559668342425453927546346347384978118504116438315670054591798699004240247832298349486634798515928414165359960438880355326939778505521072154743864728263276303804290788178590517286000901196037808557151245668983353871636824198034739133383516337925674805832235039308080314966015765920920590150665730245007249657501854792145830043021740212567227158561231264763397110425368106791478559892365996370911464086620747290231023534044150759368514697688102705113799928793168287958391791281473023073061458331048230723487952749096248518411558351333941091887267931034676879397262820619200445360535127490805458196621564251773036494236379244031837284746153342018426039885704687544330447777097278554268001620252499745687998936613537547617686846421155688890662010584230091516942117531236848538612625634957638381419490337019473140187011600102804734974841741054501981920627831668724752333195276887758090008314933948243771744616210717311482267141885058319337361072667368499260287459337761370866243781590755358412221888058165551149046733608050836924563893720755045128101875280137632207238901606899809431139757762242560752464739586159525710177167765734595209300940705716688081254063879456742509100600555195184495996533254863888783301434257226482920083259403495665400494378478092146820114865682769495133374632263158063846380562069815190647398100937879861694097275510816726093641045847149416965742948552821771416966857270823333829770528928226699741330393613911313636038014080124968300876368419302021663502833973075024135359623351196392335492726037020140046399759631523052194165579316234931365082759468216108717892816181326216576984065930053021414008619681261407022574643777377441351061295520675133863500930024557822904488820430003212634981553011661535791423702880171288992370250939668522836628732061816890422460453505648031771839489544856770917233214794233325980819542571021039576938664226289828092919769169870024996810391926687948957581384379901086572914204378074764099792011323525933465167691346103153188125377454618124838912341974918614711019405254405418774362181994267810970264021965694850607707281538758963948078523305367789880129742082640627112808115613678597184885388636902493220930703272273188768377617470726283726437106459757690264395306077769034524345513245862600630059393869452121726358401317076890139486024974546814740114638856928177870922157083381143619482384770776093570430732703252632942557719498671235921989743143422222932729399809628969247645554269099088999518996994783059190264285050914716161120952134714876240318637644640618473166529055619270957849423987578385580279660786669557298909469245710089583485167044363391237239191107470386406203790264481624200265307013229766839469527675034337082262071254252792568149862297148758668618835930426913566934318133354149332303884807401444065713525462100021729946416874468975678411287574175137771159376785179805261525239188549617517745505242004452708123998037430833831142793685373715687341181709354448049590033843224349179142195480168676993352602279550684025485795474224301328994914617644020105077500290343917465526873429324519838845107232184425674631332605865338147426277365577869725081422389531393018240127300623807514959506104530684280951407682614564594396343595370531089469291301353683770223774863343204558339160896134800962616801597113774391767148925361997279869893297722678395740123232993207389805170838588701400649488836413068205393687444350203438968781866905168034313164601306383382831554236529169415045890646197474198099641060690547311944282594927445595244642678046750464264188522538748739822110053661924751017814920994177762245218580551761208608447847755323554707550298484414930379941698297450937537641562222375392490845024090889086154247987541709397611590960774550570010318698558728648324293036560172999765750770006589401769586040206250328702405759326298928446917525423271497780487494324871944361117663613595733039830173888435587014698775971452279575445828010325758881040810294845788271540908687549410060741536084596533397182919528248254632686329006637265941046105141318179229066877447475403713116206584504939162926454421752158379124976391052316442110682176584280933720267274321856009775969267566254764395001775012691471684915462465174445369382768478679960866637942790609195841340909602310595925450564281622702440590695071547078177555537333371555628971709265744988416348923092370266312762572463985370890313356136820270895277907401164244792360466346477200167797415114088447442542847749328751912259595902046106248217160369477692245699343577840217885456068632362095628337217608186908540925869396672817960818411336538188797985747244191987216599135895973004315425463134558557340243887074891939911820202508055015119222154169839670390446056322446797416255291895373585673604644706871687795624874644602775349979455201495062018793139635299244418186608837228022876100028968457214936080597700055261367284664273030540786743186021435121478026497901007708925749278320648138709025425935099827429711923336374934455032595329131069830430747153081615742164247990560487678537782091264175263703870574266807413581462226700933162558389056923800749415436567332056351393248579192062553061300271875750372332051668289592958162523964102320126808473889455406080301829023650035954376419177178541226495736991579052447776389306283563834945304145424194684942851764848983445293852109671244797731085277275257366469280426689667769721640667276734037538711892584246493940946673950411709971418009339735275205465174418732013279389258279981137871366416412930069333915055573988912341372674023319998762213500031366086050150439799952049852719612570078524877498505315721410538708789842287875587732544458577679929500877456130379985793867152774197047290184806264508387643914280327008410503900241295923770155471749712630932438449626918295707376382290954819815470291845032046181064787538344687370333476294331030889835770511130667697569183388267686869305222278084555554677427327382368290109516560751033593607898202307309308271159013627005129001588495809749179184358107885290361215468832270483691334903607228371975873948342299733896859563566501662144208513942889083462471641834754444790424778382723939999165814247658188941495050378379879777148396154943599987979127015302349300097047984835031018569654732849266955701193045738620995131839761482811519837019119055018402951102407766806623616853909742328677634292177391014923776962082907061415455504677389547826014579849012249010837370628725601313254638235726151374750412246777124104477576749347441826043690677344334450168243640556791650625421074692226956318446075870225992581273559598096245122302523122236082829715045326184363451441859349587738523324355087031865998829177825473793840912252011004802629888785048731706661071218979067588615556259222929563957167671940521232111733827362890993029124140795569913626933438139607052598687154919323908286929097642118255922709075769393377768444356752238829050273707511742923931167452861642103623468395617541422981034188358772039472712241501679206324342018796785834786233056468764129687969304549572305349007595760491708450191651554118364960421808370475737912238844521152821665321760395810035384469349403081417568165232381234754362091166788916055336185058424689166047977456566093380708169232096411957596923629004753617509406653867753366187254049472459512289359391293572900396990202547373840801390048614787195181413926361945089206308696431615033396639368229510194195735769335747012266876600908346488159528224662056474368635983329194695866081329163872249473595261827836061906594009433530123370605755393884661282611134834582092326639405933599988880225931277012660591911968021376214053073026045749806708219752293966543169477142860006023354072717023259471775226652834632817322536261807775411918957056384066622533309362578354213057377918609534063691300703558699853191450022569913153117106825902674117068140395436967455731332373740887648874695598108867021742278502137398505965571005548875293126694749854204932928081095367639579304750570447404829110685987774978278762199286934301790748045361852748343969846183013820344668434222567213425915057747665643046801993965120292114644828647418693800868438515291560509765864040156838519923545200040018416786257480925888266469189046629303486521029419712325640584670417250909547672126025003854209057814165034276196723235126055693186547749998269214604546432486868562197478033738268911269409127473123785592338756292301750800871399229920817298380049844721834503011172507921542232407396503500356795571416550361950761846903097861621574952030594552276584331880077952555578384881237615609835825405912404069844115793159855037322373609531025417057078239231739901832506276032310149988017928458174499056413868966788046911891622934233583809448891659320902436459063854973919241592443693711544418212747753900759640759021623645736576910695927948110365425658207559785657462441198839285067846929830675899427361828870919117185042179137530810782990806310150905909625149107565323485390042717571480168565383189132588261105008696175018028028912220129184731997796277987937975766861148245599071217085059865865402725841068423299358856419887305394381805419259446825713005107059268373288922874526496485021831390276255715445110118819537087518949967096805125808945990161381851743887881631887694738223999918785027834294660556150903517362792398627324485081474396117258135366254228559583486191798225288862754151434858523428847154429263386849222777148201789769863911361583733477093920705583904819013769337362399556662439536346771831523834562326256717072585269250297167836688375662532359068034249254702163291306747819540422419002373064408252210911119949743580761194778786309943265660640023865456800261621405214578720820655565585660568555377039700395234766911334543018861642901528389396368397095706257460899088051776011217388352900721224114260878895116883578101744283282533777195402069902277926960456752984940084591854856656973358933237309908205147043065940172377621191426670582828617048756749540673849586073319246701229135518743731158529462092811927191445160154844509020058814527444575019559059602692682188872232557973616315013731434476668180806540311071865572924961889829556637388855214902412191064377974571899563757156358172378169528667241394893404538350574182939526259017223391141323518348417912669392026131331507432192357883850390828081040980053241744380527841699455829698657156716888824936480157294543342298326870503713525121854246942521947445602799183967229864752491650191519813954128961405061824469163752024956692743537161332150056897460598981990249992637332741588496624332071690645346266082850928054060349943202005311016346555897931285877008536133654487856155577513909398140899786548726844662709184882569206127796728814115623078703195556865219994332893060973345454582957549063101336855632964996171827631820376214199571526544610700698931973031428495309471426130179475064611192551957159865859724852044916755529880865814345103869753466932033645815837730792349773933073939632506124047863112941630012722435955119408987379207245933923999657658800844294479585639547335059160958245617305618246852622947403410513336153432405657103363852771266333238258006782570163852391326586719101034938497951306497633101628766438906432843134505561832743109999174220353731906888612442311961366397143047602145066221978380235551155676817140556415009102216902986808604426306728281126855313016668161929047996153992767278576504597423394979613670760362041892546927670134099392411614600403273714955141452020241618530050245739347122789848486814490681486775781331333771200650616208292467127596468584509036887143241051146505746349616711079430618834542757103304902842165328827123197290506430156931485337390765635903229313176309812309713801608360542168334148260550278839828171575388656114604734551805333038381284508071504043938339200658178998014360641124277282643572704047857377604913053922998895262494908837998466243566662874631351578074569757179211086197813297459395708365534042994396661215742275902156944369245489208205336940867531686165341614912591762483328918908789945446686109327300205715931756242308786306821960272465164489435605327248304391277579559473949946877587948832376547428220350426475300766512017160395095578978539183775543156180178167815552186874931820968947907752032529387554453822058248084076209494734940042832624456195511473773724721590878372671609555009589151398510039937882648967281284823915172715755314662615829481137078192509442520015797333188396492479596554139845750401603772799792711006694712333281217641504657814153925433866970885780532962515033892000728402372257525828495980105437318721884430956946299055353996236142550922976479952395151812822849222713097067959453933898366623211944341402804993892799673462711315642058760706489972916909531362277609731447884948273398365945124647069431048824345269713464851494833947851359756376474910958600703526478383849678290670514127743688105846430039222646242456366253441445796231761498906063451016484681476806295970055292306223122642137518996614474368956970676274054598636286094635465344075933387502859725428977834276389881841716264694084317119162250631089628481058413417787582430746705602354594726083259683732363933656273986778706430708032340472978448299564488372690205880466720638616626919551747965476719259805825249379044924022965644952348516403531272220746393043962722793041669139921152575702191457427957371620531945707061273106551406935570742499447959419931346813730093488225671462529773231464913371307366850021290353434711409458856301908293670089923178933042904486682596254991075113567865366354301163706626112560468323569253340771541136059483747784194575972781893742732053615358348270064648101863199790196058223462903439725994607087312791810743878991346069713153888295603883718188630011490647541679934692870450457571948066639021529213613015887376600455315060111418479648320782368725283170723702177100451816794215253460202638244208775327699574500907895278048591490158219054450462585439900071905839320217629350286833685899883266971041755730323811968768922917187472646978320252265017967323082022341205110120363822876476611861035534727388797625237091938388517257892558147722779735742803956490666600651147655730622445147976242718124666830732477950248893429101001745158256019439588729443587692345400571087187580710399801675630170623426649904926388526560718532927468783416947979521238135573463011759342111175123313394290522046946515816280047667420268714687340133518014796197046154006995822369446893573834282060747040691827774637286429016670036248460754714433284087636455254557512635566905539428279356875208907400528039281542037879980541062802576391386757209576680662895043973592514502154290811983178616676205596459037062513047749094767038094517441240605828661541187985000280004152378187346258106793183444477527693398665039596964815194526506804119707472535864001435204262112150349882934805811850127433481428842174041178798247805378246768200884840042307423451434932034098085088169174663083067490731720765675955098963248350182467127369725521553124623969695541276793056324862613757726388460113327630646744702796204254178166231354546635363515066455590607686841154538487257132939700733319396177855511088341225139900365821131026244285716162744370814560381285276634524631241966498838943503701814517811270835042351997202403127666787954094075798106716914382468517005351669901679053299832084774180777771113836497922449240892194201964529174886168665324257349283369953968394304671728750762272872940008279244947886685721151243275642035544672216400870951624263107502186194234561773489506665659720251525740641892231722277062501305534750543410877888646616886512612425791363891949547658245423446891502586744107738366989212682522670636900041113535761296940316311148807892633494958526471542397775935232092956905050891423733300559192159075669095879218080216728000429107341933640195180733693535158574622191655566128777906461670062072480028286134072747190218631301066127322397680974187881911957633652753266888100505592897904256032452630482805655639734747060664561035770847976015613614893218289579362089708418725923118187971210338885961812507455927689069968327128450230834341072826465348425018910545491580925895908310166690343922541852399127185154217618145127771758703713674109281292176927235358504275975350707967050076474486107440393294467616336236194528035334612945931616178447157400383979332549166019508899897349459020921855277186374453058021150501472214201459935337245738747991499345110861229548329073182020391675945487980379538073672719903501656846119272841842419267347184162628420929389127493436842381128257189952226273450178953095481008740924874278979402372984718371135460833090712144440052397652628557917973986215438917814892112719082017847861284032825920596974383102492221270881295783041778091657543557845839697468038167745349659166838958998441854055884259027767351226805748785736016443722497789273797582419507010701005654317896500876033454905600221641950133106922702662840226201148036360510542579788852471690795443406898482060932183710717836576543773875259928645323902610210314647218880039086456100497515197445696059494522494429378919713073860203504247071744538278407409945718224978052423091542166297871512490336056612014946763471142776278356331218371353539850166524713166712763647239382311612691066259612276507353907562196062767867261221051521544145941227347685837247140848162994145967791626680675209906333522201382367943569792334020911126252416273645614794609549846352018605208019623373054186695764848810455471624501345754869517261586636443815077057836007158957065433902943593798734279307853608668917078782816992407576103623615822184356166799893309431766276187274770148692445393567973649432050298444905850841667841046387267088867212859068378676950801586264789395232535547275983832629175201424013877340717247688004947957107025682024086377279576192954521808832163242298780841033904785634004176827269851943310833032727305352316910268847859643721895884496823680160012240512138916297900894112673817595371135969964188177910599454036923651359052005260202059599536346476367015966377333290168266018562347658779755308903133378604306479540412924656777976601014606933088093729548045583069549208426445981559061893449984968696628674122647170281565616534095120429408768759822275557993357862335422049409247090980826623656178457421910086471530396681245844826182054686326093024779915143488003311431907742629049241176092295363563947693282462421485647262863713805115319095885343639071705948899041214531385021854711162596833389169597439116497759493597789572555675643864097012835046386650588084180559229310685427399810150819705241514725538862272802095398047676447671794783545765448405717648068854668260553533982809637029050489490036398038276213458434676336639304430931915037638705961599175509449865272860082508239530391779471816889907177995383568640990457074593024033607618659836697665337532253019667549700281538410921590871833577472629017102856275910326185561379089036073922084736907913073211282037502357678565766644052222757222794760950198301552453752968649524467716588085782342388866267114212908641185766576337612728120455643338244724929674916198322629547376073939775489344687204213293717040727909584623254390740196293082716322986469322910293290065923301015897146919391504669466932084801550163418893221637528663046115287619204621776883117232620395404694807539136646889921857284987348660543691908021297305534994335439162784455275749740167882353923815852681980772869030243019912854900714061078036372556936496021337430014313828587344771418743956495994487320755451514071011957656547296723021599062110384461239741556543643734858193578261710153441497027900856712376284558329202039922186080697292875801750365713536421389225481141335082813627058057921314159951175752585144809352069798057652759431214267442457419808772071092342018503124893588411903191653891280812532824638968052419492171302090559620076987974288334320026252175630809638742879026683180380850008106236550000226243254960386232037562705344755889439882539697599793298835697800086160932408944402839274115878829510733509986483898711474151665127531017029375730668493137290574726800341086695763994347918762338061022056770552684439869631145159101045986845412209924128347623778686032484327605354659892469283283566729287893542797305008027365164313972993069006108598389629600749105767346049885307930094165300716943791142492553746959387600208688063841439708101567617033017365807974269202069006199687957319792255322532707387794793589754432341046607245261581097423684904133561444419761541921517696649541397420734648973008743637905645750797893973187660210217077095276096696112901321601797379455335181652462872336771818378503667219868860203531421002848893119943114426605743361185075267062382694733747624872580671291070342629082182146887161368415735963664283442819225698190633963645166809679454849992349674838439250096091173915055816791432491230991036808380506370301999179395257065982563703429678089680285577045502510366582772782471063699609416452092652584931266214033992784229844111325526463510463579230293154896023816689746445049960402525558433768584725263962098839170625343103710116655693146283746984390472409497108793483702379710905379585736440540708288288546734690750871828195739262144181020001780063216424655148177349874005506592182482601978158731888821276115361911894882259014531720464472240997225611113087175366594148404736704560103807769142684725864797526477514190257504089375336373585411584892496243429804014502454579259960303261305117797348613248555872235481749348269218130418574485230566771881945447830585874670962613556180374855518466905782824448479554976953025852377313592321033706637398060402854427451617100347732011329054087049909611418414211147461881164925653904182791209554042351763998448704463996550145248297287530341450085876595135615004927441732263122613300998694912549762112457054205413314702150144819586295850363528443017311851918847781512483982844932369051969294626132126808933277399952041403289723434016279100941592853053135624110002182968523127151027469001900963143517397012420885891048131293387111721889607501673874304103132959585387557381994737042917160901214502144169743538932898318088944854357381191204417135310980111598069525462453852558132573455190905344742722422363095230847125408139143141572912839140367365332097599270981721845579486375730322269217914501520751099545690951994420207247489621755840225871603089440321020183716014930921641063212560919131123709742132966752841179369143291508405271876162094461301442759080122421362066560893872049545976914607233775377962788072804066116279567827591867471122278157972999848954924948810397419167942824868316053920282114132225279297508430776369026754684890796490874601598543103705970201221431696163154172339086663051538255084377345389212521305461437522399116739376569920837780180447664729993906014048167248412386697221022517433308070714750088330831674707266400510087532266036918976851918063625472220983200891509983589157474929954258967150519275409129086972313247020687567712287545970051004329818726216197860287214165522761753540534789138676785027306447365516180508381542868128210760912789873475404975876035672306260453147445379133137314953571454939002409522068790817181590794932782510923543333550096193526101302485668497547936299784423095091241264077539354590572781343722532034958983505797310849329813374757374795791718248077751120679951119850222486664725320527553617291789726713360289248877815751130122430503439258348404572949566848456897314518006937998815889968357820563692476537322195385460547243117447557900121579383939150536521419040061693761957233934527051580067559164278275707473937552520944546650019647737796237954710764084205729954165566659520887796650117980005654398170318142118949010183613276332369214047097312511744019163772968426761759715445918860870870880765029967152123227546567427646987999953110580488198391030820051982788292260172033314200024640272466703535351853571237311143322899852199721237418817767958926042210531913839969849007594440183505014188346071820832233206759791746113761236591480105919459935886811621963141600663544383619157874363391981480984178811448513940862022591513894471559052597758097160017896448323828696414330352818830395737873828678388566148091360076000791552731301736851601571352267923515698574607397541039770902280596940020349259185623196715066806896159852556358677878232122393434388376835628040736821716568531011266974383228461818486666018014243049520974699681131093186748633888480248814428711356550246488730537973324390252044331143436541134330395100733607838096247478225108721637037961063368263698968049318695232508730981149664732329063594749344266883014548186198509354060725428831049252901467430859444429801058686417769215975286894575956517314744700197798124650250300039313070284235136310869115885591644043846432062534891718128963963936286609951353229763544731433308072881671830134909019893737708080212210216484455920760058914480435003699139160232308647809293787356908742599887770551878298571968616776500434703486956903441476603461775275763741562360756301455941992339850089816952668731266668029969332388761927261504658446577395206293242398079725819863913123696557951118839842726504591352519929523096875438025964221205434285374051021451190276684390260055090998323195064932913109408513692470513839213631263478677699969299145192002539925333001424343380890611989676781639341138458806051044200415598158488492618094169333082509957228252549881511304878806177180900037105126045296237922817948437945501692248211907873080489649769274106662386251020390270677681186858798417161354767756719249029935824080486684233003135173208425214878462053862582743900188736951586529487442596586563657606915106546671143956122675975119836508153212124274288108818684952210630515388218643582218562949611456009579264780729961622583203192521399131080973487212869996928289770802128576687170777561581375210259823773032286488211203650368314381481150547228992189511206072004765604057151953471141064548687954338390559342779012646142200134203241873531825473614013190451840130793771894897533237525496437048629597157828015912708248693072720404048145276465220000542898866337731137417831350924539419708915904930218597042944141690919727398462563540544458425874689826194904720404150247908253182432843215559097042965190277503443801600572222802010572634607186975610680985586984968105663198357402775055160236669504895194554262202936611609299255265688265800974983813461845992615801720896072467245425252756645019409551603117040255389355886086469345588745469345441800942758654098020701552147448639264358977737379531202050395821094469235707355071722828823722676643501767606837232218182600880700774735474642805793352508154274124217152047679686336629902697568364320486352738336610713017418630172623207990226452441327335642323197242393317046337171080348346829787241787255619169741189265979745167962797005732720382168447454980470041869293079582003642838426364985357663898051545866604493246657160978236681261248037957980384712075352903236825584043729259780137873633479858006125445013410962795586776792807683169471118225235664849436712680006830636205529825331040012609860088820372229253992871193379419995131918564617175332139276747526777543051828781186858283915701792094820784732070747025285973569823333875707067218204312658026632274440065320004916119236431200463476598544890413487087095853219464652982136149618805345392035385917064621702285073024419784152530805350304905275703336408380140407254927618832561592102433680368547844162216770102209628900479425601112667875973587220018250212784488580265246531539064413606832086898283910226194186709950701113594629448277724200635945347347080423724450673384468440622169607751618461009098854593817256081709118911230363659106805651211102581920560767636728739161468615986596544219129088110012018416953755178797432279072257964837435472274459278477476880026416638798273465485355991375049931256058819143065058558901563144450428216089959110889795090739786610319216086327247137679261928927020854810074943605971291503105118121962443385200202146978658271572454287084988165798383881323535819578324849266938753272920339944786275057316259180549690004365876689461457902222634832752942544977268669272909182209983731018393019262033099867292306999755549914850368714255789799105207715071544308620766631194704439916222260590813957603953697717075411217212439739039045693353477899173547464541882860864433580398346028384639616614112490972607091926933203709056389182965248894487866661338432129702499186717023040597710234108801075589783777119690751930222766040424907967853699621015212951101684129050681410714024814481283339531444259760193630343086446753732510010253221903838445497250399846650738123148742775738271953472590234051257509269431416229411463954525586838249288560907090557463358199232852646741635846369294887156483258194501678479964738746009514938678207853912292828399942000830027944610249591082695484423713418896988415126447388053537456253830412334937676977365386910100275039269820178914436816612236261307931381926546899862657764525751926624881874782771336813230872940047132991090789874998765706185953030502445556656429633720992559493807685905867167239254535302539547637898048961429631040893865355530165602077458089561717093994111201052419789597857439010979900326707219348003133832129658550242684422743347423886427057514403046641651625294673897427324955401570137423764541727359635289954764839143008674857202077525292381275182885011798715652132077105608482721820691768578591732542982024813935422445627239702980471701712876889072920945151588772786248957543596430770224848681323879412434928482326260323698278271062813685676165654840898238368311117556887771517462853456684773088930957795965508473478657966990586985284952183140451232570016216987555920783466018291094131979359288487532406086342084011698016171803270994919845252679739255941346071263135974592619500219644522060782832675494716379022058299677218631813490037466542609762117190909660636543544102513983736974068147596995343507495174405378383024258180285867021399084477781753654757388267699588863950814815557472492411311955205329566644808522300769835155104234380848254584165742421739833642192907257721391215637767065392396762818739066424521415549639465729869827859030411124041452429683573211253051723592731334923466615753046401752872682118979906772322358415413870883127324999121220314544573512602825053136982931086525838599162910871916872251235321640475199256048990691718752276102634364965394383088707150906452496273734250372180005170587956338518922686903558024189003483399332806855583175241352068719738903246866948450930069726127671560862037859982799219897752342774625363567200663352471524210607520658087471292279119922734624519065031044264344924700658538445783044085327711020929121100519803165671350808810436700703562667680828442267593491086634217577720440723248425537231825090424613612355357035416870675420492927173366148779835039092303799529245055485537572323482384758878007448882503900435090083648529526058612511369726518775809044103179932194682679718701690991777985970545745361105578680490882369523515727825167023960851742111176471080180510110765852476099881737949005935498675108427061846893436074102858700190814001357186144066269327676045342116589560692156534781719702857523308405104414109949348418027697268234437213670711911398682596700479615198128353647678614651632622927378911661501870274550774432807977749779064414404537642374624846226147005245115141129098087522367402494602722409813732463308557737540247174631846037791942615833063060651005976142520701718330347743635289110507120804011804287411052342444398331462317992385328603985432962547405745491091212475184424490524556401743295481566292989114358119067955205582502199599506548691224627577924188649777739979387909743647937421221255676578983058675346703715562481464537197650703819072975866666456919865091327336932694922618379923797379634574199363792897359846482140013922877873262890384504005701586875802791459007263943645623618672303363491974164970084845433719709659460128309343944076377529420156598081584628599583532325792323336748569142152776779161000655546280602683062788978419515772977860816729206252917266128230748685206287265756759682948551010740797743003161169374157230742103450471692211172883183421111080385349056814429584265673961229230034053937479198023229237893380218946110668452155173717281934537494341426913114762878543383483391003147405801430325332736012478294610304947520598640639581131004628903889386647835520163819296757361171848532805884568203823289277398062760361155185715332560840551503087614935522231695342673588355572611811464058035868534670287782394381583825192028637683236065789499537840656687434587897187388549927876851256082279876201688146809833171276784007214977649876507859202854799531208727742926435751365376234995473783969493335150685745123839228817121016345461313660157652232787525449166140233984492998227213347438399327491028580560667082307339706257780437175499890017066462462479563726978744756437670757654148173798800336276455802734545053250851037452716037797680491735835151940227113767010683480511976678612862744189162859396546328821686450370564781627061540034416255579152731007453322148238549941897167890737746564681224838750409725502657655627830153792134588490391123323097755300590004432501452223550074298067214802782794231497880604467461680762152963358066214566145834818351045273421929422523728558325707233085533368235526410073719047409843724728271063330876319797824575747000344589390243686625496368822043870336756702447626123914560488435223313167154889648143510580295080863917476526519636000606418565909806054566638993036256573247980276887133225970410455278396536446953236783127337439405562794037144439592083532120152446037735505547592435282235024798398191438027193190730775602887182114793549030593749838575694726014769460064870789065484440138297087325711345366204555500575689333798942132432555812163552791391465272652518594750748174145276923636520368849570245262176792553282874722215029398066083216786356448039361335405439736203657557189225569098520791707690145173879277017509470846052731271553201151385999765320128426479954109881239790479478970782174916788047298028988586667027508583099778226154517472969625003843586464680402075803787980686549537818091172008236777256994344239272877468235666149947815341681338218756333466096091994566047853451165518558490237908170745084305324483870830182223457824452964125697086203687539071452146112084505433482060446433266962380382667330190595767336396680285246171415083870442650793094930524381606010066308834689315875120484422280633247666629868173412368062907106779461860363632301138339194453268076482870993233386953044941366288432789745394296672519044044101353379193399924436637398710378263534743729774189274943512101280232663471064763645959685409390658695810075510139618269241383382385871924356031418102437029532607500099546862124161336072991968301088938342031895161470654661401516108641800140851357469733459414281696317658387586596567219254806778446789710886844115467596454725230155096547638528195687078551296664036472367651993601894962393759920843930388478401463259939669460168314369425699000143042826395225804997816172202971048221638388776357191126628175735125487763629882858150054290403878516902633048046975862360785916870389625668359095825789380859137841360483560689764686622150906615524523665440462314988606531005760584163348565599650682200246450137980918352473687253050984700017617750185753309841475835671347403716860403253846743343245778546201100953278858504551867541621916175984948534197731748557881936986372099791990823324283187043238672813095213611694672507226419853990311266966805397164565505181721414855458206762548993100024589721607302274699777524057072100345152555457168347998001515107913614240133079177958982739569981208957155377634845391423869815574892930453269047657264714094622042556450925683821224259216702486210722262943784563684612778589262508426288176169232822765051033421370754630241962084486868885809170323365586569902350110152899301177924253147067464636566242281519387819064187881276261409821618579882016327615614047306653484488742685210219632407079529265661944773348578938146221811466921962941018234307650273486971728477120192462674277224864910569027041617100314659936326363350511407500863539115377738707121860636336758517422434949068764499176078479984119272900449714748826551135232134582172637451476221288201163547392112903901241083562063513210415686213516139781971401941204124611539284793807445765032510969387106264424816974790837376580771396420158249071801729490557297815669504861835401338778828950813082369628689297180521068492641147413608843211369618241013338468160714389460431866083056278683595515991120774679880199819111801983874961359307737428802867121112448144831945783281858347126753176267507499783373426766838476539182122800406982238731124982195586116871805730765621041511025195005793836234446467106759770610679827334622533947211903231153565688173352749528133232414757441802251522606767891063029483229102606829858687998518821143949262600613695619395205653310727861910123539081451242597936636409472068668638167222803462818465960700138422575820850742663616232604215433317788047862217980250551810802371894708432087044433614232565554391745638761348280900030616940375837586987806235870417968588372898994370529182116769672610551744327874753602668314029768359163635659297476003767835762431019213588662660147188713659285467885054539807128716632240559732056567495867317345716153755309754009214615275429863027089753407677203442310693100538680193118504059715381501663184104513113518934858849809309739606486859041297896759900529798065183475546552288716052724259706999381191151628911346036087898918297176118043595409664469438465593365977157277998605029376673941339452693894608330000458800293164840899793248035942381204571268591952542590180747528829140287097130169905646166133632754793063831882067174852671972470069362462797080770154590811305111533044045205378634751800208374861012296897247440386105174563463239736449196266587447151446261540205238252023881998943958389670471701369669540838567085735085699667409430441082412302409367251999768104607358383029901460324339495314629018340570485198997937727242419478953011219496368111748999208074144823442475813566923479891553839768622806838263170435687481841381087777407965274915188119588389839599493877926135319119270571591761323633904199425075488726345291152554184999473192079463591987040255859413081610232679055217874084564465397965194856926429292558282963420991226956098436673942154496290473298930295931369671405937399635994859059089095460492876399776505022415016616446926192673482204216837094949167089418338705539319083283912185727534292340860694703366147338996285224095717486436034026988154680679260605831247714454130566979218583434422048561179356589704302030070202754933645266606345568394056891386017017953305020193025990814984655675297550564038162029006278479038886359876942356912084857422492708805747539428472286069188828305081442688137473239122281911526641738767539714318375450627219192388330063643735727359667563435742207299568641155602553033888284482356603163156356227634781563413495565659547963434730936617479072494970093555200843755230658364949462007670138088714368570218071761274320841571964534570545133828393706548819368891714076157957189191934698354020081024780723176131667531928593699557793327635543815729124617648297576182515771141577233671879565759531502775639301809845066078027145832321471303140769279877775261720221214031719660657500768952659773897667977687713789005771883836834687935701953065482964829373025257542383413974890940475620539997635368321760667711392547650627191838070843774268510584737491588456662381809393794720215566445900675931437983639578722367066323438039849741780690416895587281273205056008353151151731842394988862636719083865187243993702567317997090210350896748456245719528776774788011789223650174732756182522369808032894819500846019723632974355041657406847221378216922507477896757876833986230926227369247750777470052572520440501426186685556576546209215148752463012447603417276040177459634035560792883952115832850615991498013614847164588643755385320087175998829983143210782065682605551304679107576884424942634334837101702587897396708148449542822570007974892349829710474053335147267096848303527165238874913362675176004473348421995778568268989660718470801437080164272283057426287329099881798773361652643435845644813235402135008344760394367951032303987270096357603213748378767761567438643562353174915984214091121851496754582386313695907809207306578650233769843405419648233178926728132403683271677652694152806320350145048361770590729949824813624198257351144534002261222438819911772180529104038933051418441326058676607707967091085761968105714310427759714313604507359401398902722400992320999447262692162104719283884926201597061747305498249689467131300680423895502056459459691154008957986622719822845110191434409915510037757748463639185887660408299048794520764185078809916753338290847545877783617981832465150219666984184445815759057723144299863721795562080002324248383367563328843093143087537828383294000329771865131231818907420043458998408499072387338135788821973280453365492153956111523989935450694272275903505132567900580107954902371656945247493744883557899009938029980569841736902610238351145042690937256533455943171333255245774935659391676209691030945215934974657997462502847933538343926657168634287664681949880086112602939629368858284301197906737658462958617354373784775514286261997315879700168274895634608446239266941444753049977535957948105723796258725639805099706375096425175038816287606222826260945247822425232529795051480882642154320268390964035765247915386006390077491155203148814114165926729484783991301882291867097873178543008884506177929254465461694192223742105472239639367066273481208442436299775467886747319343708777358577052030953098823242032286022957838516884258239599974133220439515446247285019318555817271982148509599536331837181600914633464014327261708368262886425311379418090685147635848988529835770714736751409694886400230342973456686783504366565253102356194570041646178801263394896351293643353633567873565444004654840636060349934843708290190759915037780853124820450760169570856805319142311313389892029428732384514082307677606777582283745873500493856556977579016975442061214058833510368461755023834452966071222154054632142519887100241050457537251007845741832976382159258492284292555236828073589123322930081225718258666938380784617230122127841318373018913022629806747714754982346103708278287487168772464386665889634505169298238615937302982217505805734674691064068620871836030421814176772414992225383656943395365100809230903736711635321914980655090693942811535834986614657229454134243502071626723909509587559887969097373420978046844387223697264554643918680005738896946042824578769485016517366258754462594900832996468242968488040236620810137258103419083728242152350981260637959424038567693996863250690233288475516848451240057192588370442297574549930161761587424361880276273575724521915856363906394078625701704217786642089888225896443412456632828647426755568562321606633496741726726367347881559263522498183629817761466615387182566654214987982422479552863703219411737591396346905020099321211889553716788658320048934495127165940308647890079321762892816619333706874238304941707734041152143650172308343194648102690062822527609956151116231991566580948795656199064714367556602479257814492234661641074347016588071786960640150349453134684044512547788502136063114172847869676037481965137391623891710700628691643296380496800467970091275120334374881651786634091585890741999973138159550782280240526868568032437732832038509438715112710113441984534250970879706120877824356665272226888184770692166884373434395088233625957822042469154605142724798121792362714215204721839750134866961392824819902950006122038139314787298427521558823010621135552573675927138172917314977972810297242068843669244914227705022693921580368229185730425851312667348094569894050595067683754803784033565276908323552242073870465469383262449412815464329415963744886540515154439341093929487708889907049738591427575299378632023783782596816590825098669517510362460183104155899552684356671988818747515326340694299284214493478216396207131337571558292957603579534296347640397588954958972450170000660701867051354967116568039179790059440155052052230302008329039862007149950803147397560799716124317270753641435613331172610660986549956602999520774197199972330447189932324933156565805108653571670656933055551848161619055013580079177811184279327953835450209906608842663500610851642767450257409943936811246910337740192657482003713633848746560999229111372260026458190579167212560643322271906720075256564300444638077076814898480989528434668245167366369554742204562434530196954004638571084842969563292639041082588159419761346597648966606506335040460416567735203179990935716235670525626969445837824175237885181667112278348405275142359284358773012046944143833876176672461648421073436074099244501289491094844105455699804184413132050367839180366548742875176011691355916799407231039500449116409862538305705126944268215235486843047852124176871211495819597575351837500133976099884142088945791429015725376656862374692890438730085372835246806626364355692170141843055772506343588677784362070092211290938178625345692506402368544940738532360397243286226178101018230887018667989825560283864414268092162999333657017184988006945644988207811912150449485859425949021278164044097129677589946653121915760953192922640546521691437590351526304839689922927356579104657561879916101003449611329237076567819633059428126266341701604449896140195212674692836005272477124990793562394783900091894186623833116748902989727257134460834869802740969288493512851416757501248069350809384876519596301451001481869369177837808692969675961879084429814571370601303273749780506248318349781737380363670931109612932726467216703962595207443480969740385560562881121112790704528168521485850817977798132021502732613948587793923104261839578441551641240357740032985044007251267299086074824584313973122499301131827163377128423802669154764979402950054701279272440974978548054373473197881472769985430307041843650920332479485264916004786240329192669987272339094374826341773568957582626248142841856604383885777635921350460509582178238561415680972501206519936746269664451169559632153223944118945457381228084038308070295536976603236859030614453689493751440093530253875834128321965436740205242870215828080308040937282289124274380730117089427999328102584486661479541874568556393894253269235521109552742886595074513947287557490788615497493587793862452296774974529777124840657186572300374574383316799139612822630221877989248951057841312661736013019006696731871309671152929268955926481680710532805965593176891020508469139912122101915539704212505548958380077519275310694452594499741243008862360673913593959632223858319772169180634860538828453667792620936018992097849147060359087332263594618645952654361074914468083198395408326668185746649186024650245237055494263798893100063373784925365700104751089456186325877003788927087999475391626169292903305500552776833399762439792305062956093585259448598300062370403295802274419062861030263038600460424203112678697057280627387344944308184763250468634683399538707959752565275404454842938089514525744684293457202594908609694844042598084802710612148934347180442547006035136417991599352646704819243610760187000060951482711082571023979557658299520937544001893320399869145328701572449112501849535134114068502706234294838788882635059856948852564404520165023996655428629980116119186669668688548130628719476555127772952048264457580123077857956356299717454079909807308579473357900307468566030537110867333577221841651720990515071820751397367387337625190733072466392916045091480078770903586730687604899836256705006175978505937219699220125857395013681501332091563221847586292586535851739587159164774200821457821592374408396649545054446844547809356325900782171725452316073035165621738961000195415493858467498685154387542754559659010145678043034832136743002309336301954108479215470587184980897734253314696998402563903693269039520552300530476383203801320747040687578821025617016007745483567510683335470460501152920846873511990586657390529471300357315175046524999131680318950807650198908209325893233180966394632798897172797873014252094406811914310485584305365986893855577026561727731119633702779035949103604348342891840122508585094141611751082557647912554170758551564213418977384802765468190875623432769071773386879091058221897779792745195987666820982459833978368507637083328820871797784677659389192031287538109243926973782401534370277275059448967474177266807683694417207820310128500798703542991337451401140708286860146438861870997710472768279609074729090076680419311370345454431075014330551244220997568919940855765654965336930330494904528595217516320899317887200395669711865078531195978007634547397464668533468836938376822618077194027856405902720547566669446397982998715220603567381530079943737516049231454245441201645460964512697249185476075703615712735027069151159524327800135702756369330253442333834494182764515493130219748053379886726101221670891124401867962104190765105893728806877634349622061316920818002212914693001758583060580523524314231882410593957429821158450535626269564005745531950512464571324131483530278699800400857883072989548186786516230588752035321178658389366984038374956292954545515437923921759302051026214749627055111375276989903530763447009067375250475149998228109978332955267698733320708064628354513602739441700923770473443973624012085387188110807905643828533564528159114146132677156747114029604076010339375810817415379646381710653321809276130262771580515458632788146374709991706008610788030296001451096877139873194510372388290991945636061759019256741139153771317158329568829706599747729585745561904686333881882022872467319746427443151795644747386813287855500773358238979432064850504200494219720606540336605959173499230525943356286952805258997591506243991890955159505105987278744882583025485069259152788073980142657534006489337950340656857129338347266057680738775876192023081131392484525516293340496821806448764916294592991626996198918004790006768561827075257243794609033212491909231461722651945395068189778346554571402133717195218625289238886367543419863269058495249161965515633577925772144805046266520894607108121916118712030343853541353238227055965833433722498747734335303720955557462172901829015931849913483590865083041061687936056049153336219416586663984294821103859797785693398959423542364179147535897408827448377828018716333335675698763630758432814180215490223288444557712601782267295231504421238455471419622196614427890222637354874716091152693411156281613838951386496195970368936946528023163669826890014219203082280162400545472210938488918961032901438106891184643088419423291418655814206832628511829701423470683144360082062859157852272339273365920956001127495811714288934921432433636889751519902458739666284942385314234582241602373548250836217816012222050142522258410650093652223839682447577927239221588314179862543690934252852196787178048026566810611608423024037580389606763517662465149750297244743495828611491237730479091809386342930295409695809100188381770990588322827724889425491859783229595506966413163867779130646561895584913582713718190416845847630150358246442118725728554171287962187405578311576308062615416508964067160348707148720146959659961077732396749529773424634092635678955606983755405190360065144570516607694302445551884686241513293993500994599860271929258186864748096683296633173400099737073054879270772709690131227331325745902621353509123981944921124314760907196505203838551118655414906057388009559620941852145083422732075780184708478487460724175359758816619848510717278914333809836371192257167524489108568223354076180610940475349775776901577305443212337696385755579254450583933569659675625111416531938848113788131694162674848397116693673350537796929688122908484921328776994696824948699746524875546193053035352435475723032514229499500410854894069296817595603019692728747676138520231708956559617991465938192470991161819600710400233040301713656742770932700196185007003592813838754706906205606244112522284639526957773472279246730412180528628899338229041301766344818319109319328302826758990320882928935193534864667631064996850358589239294738124849557952705270245562725939593559376245856588559294856286243613296256852599148330260773663512446535369269418342665555623130386929656922087429186462892561800470341728219709302208052108101231842762815120720620778541486702167212163968680623247086657682648565858877676271741077381010673699857841947803275724123681015966851654678157092847981276457444413514034824222335922553685292893495394311621807506139310396084362005978054877751901774835286362664157955558348732156693789732920601597041498399018338645083484295887132253514749712812031407478845023358747316704304031725620016731458105115089766093300209932166981886137005627852975403644819000601764040784559342895207003982146047516520208274226087662466580215123101611203006174032817798628895811129928004641105945310434144550618803669035966575856689467347178730290176187490832123378821675276794938601201468303256277212591809496008896335347976130845418066121911288297074781151659878747038379699795556460769956516283569682060696538180335762770987349179146976284833475187030697581944406867334531104244134928280202076299872790278750298539931620108933830079734918214636882049424961419660412372694316885790070812946753702395152053751431062378785953283365634375134272818281417142668486484613574520309576395520993595495291323255858850059420402674289413118683491459611966963737246147309017475479524334025025406388809597992560045164631127250903588998073351054806507588453018472220006454575349844642940139350611417527529567276084372381454928216651543327296794435794396958780355695593893144462916394121386385414935317910203758207459259960046657695308118842424994086801020016654618798494611878673448578051833872029353525005043556596698011382625184676789334631483702726651085000745654910811733350798591521528797828594920439477609847683968444817362696309708022437859762918467024797800333484279798424052348130828543630824015456153469167894995879722157878960994801274070132063438290756066041596513354164258045288169777652343964866982778621187222367800271308060323851830314478949184860850227305277918180023447139268988991891009705291161302538619129929337091959316851932428560193133448361375334866234243413564608420848540663789871700959133032770351177399033064197729334392297867645179545299723992657025283153698051849349953834176374996932254884174264329110701000061838368176928490638267189569865394351703081888699638255747316217092773236162746451272926095090200521777302479198919540084203138404626014310099551920939505305047749152188932371762092338588307588096961392727990754318596454484693376995170034999192299401596534829552070989919482796084185294700440107787741358774154917627178796856469916507095050275067570500467015286460576104471465765348313414527358125436369322159424686497185175708991084323514229270562048356752624992534534657276602745573951122502496414341871374276363415149023795467963419998427030164343219600134045820201655555305924195635530883908320166340784773218904211862389129322897559835601466646651436448973190557528706056839079316635753211277839113963921959620096395868046245841988298339030221351135988922762461732152300917677350255273680702187456862426254112062883416474409289295048866537609824795275847630571765606954926230607105452062229185832977904016492077592793747524788218981418799290590592063947342620619002745427784270318097211020386799479823546253958131590606178009079721820908374141750372009854806856149185708714066761919667236707729298603869877305984054738566091682672003545704471811178253748691354066790027091961598238795369113202771875302162242411397606886392406708383305980090446147412967473571714157272231995513254641353116812492965160439412248118582680026673537521707722738291419014923860368515613655690349129201827013850521294509017606658077278402241175554597816970236026093259455458255075263228133907834170661241861426256253261663263733571396237787790275810403174460739784352398121367254023968611902418817095658058968836844430883992616267716590124549943060552840440149175923456741894187546754122752349720760667419092648661799232125443474412948069907961358049750866749915518095891450660291501484593418542654379392625933960093242815368343700509626417129179311367959046809987901964484268247847064647608557240092719779936909220279103186219880246565357314599713105816085623053256095554858197805338510774056786738465518570708754876342375328645128623913503869657476924440943398705976451713409502358155755262296033364214952366112008262634275385135514825528902403463774056474101204403724270503176316549402929643163437071088169770673734101459520228930367654067869883589314468046842947935852892893641674560828548358665408577500657002065515923676686852214329748396442594424930769479175565593426789471678984058955892720070967834493900801487082586726855481088981004843682237626704141371158275006582760586042049068810783389077585925081412712655370699485661305997923320357380791631564225353722174632923665995925202182864923643112339975863606690341216764375376908314748799381535347971667711691870970530592887405648967226822363324318769848309786930790101902270616716406823533514257233114877117612518507266276413002821613745954688348333591252349899704113087104390118149789274562380973502040159015859482094136069310471557028109312213489313680783792371092288967804352026469385147763954290197424980939038686590883517786349493343211667413349641860957016400592902453062898844613521864545133126107141792751895345145523092070902512397698947732370413528534457061712839284279055336207335287624131339119526885304419284978883841377375955186176169433606935413269432656990293242636214816861996467435855402940534399003416195711243583749442901729256040413912614977533649796154975169177919854314995805828326825013618236316514390405010671792643745145784405658796752940391365242577761501622757108702660746652679948436302340853653480929488934031634854928470411243650575267446544066358337695807302828612469479999547674135497976613525167474731648852973515922063500110301151830530413302815260396489257345154852065451299268311279930870592686231163703063208542512655891226453262396924278862936382607783259080312021852340162366319868025789936063326896142910095568927063284877368951935176905560157356427090079981542180799704085444568302214972401489469328169949713584855884519288054197924336884405198762406461466058703604788618456480741662116470724815348851043839523433555908006552491958725238220266214093419575857906112345566885550737932556065866244525139331776856910327275173683362862053803474834224602317842830731378995761888299993113825088209210378683889876441383747663908984782596618699371220938755305514429688120805953511007722873372087606542433281980216292740687574964547469303277643323459071990288516702197385566943183860556280537724849993695827288652329814333130201926378326002163986670499483708067404397142681880401456612597484231402875853156333483660337650226067306458126129962241750905547119485374155604832141615816896828290957917996309266358443199535798888513967212090967891570104055182664571822714905450374972697998336595473937908202051434825384928240891051093818578913074086811013907064510603454302189811157342952227722774453832517071540920537951344832559901790460971499756279695279846763906786434052075403026044463436829112722712884128801536398713374595730887836044421499975252920508796973219967699473383293320776439185263246551719301610450565764471951451872373746221337779909589019430012887788120298821318649378914901923433516641988328163456572980271875076757046566347053049519714620603389776893036699994954501933056552930918939949439508188100931019664346410950826196176545588408834881592364604619289337920651055134201896315343396289763152882468945143489781512020628427806944596888029630925074417416700291880725404414339297635496704031886221744838232159484605834953025400811891085393280548120377073932932574751889447080325254456040704012506505199779927957816156765444189629204616114693455914685044918879135792150161500544280034870024920971199782097078231863596065022653857826341529691289516703586666246670452060566012874989492552931984248353600499394599348871764072735005652592574277020352768399885623829219176884778831584385577586074175662821114764861366707808194642393759150194404597761567480798024432258640254121480611544563063733003003691876789811150179619909133596682272952927625293250927567267242700855322462188420424483962231113861817634811469418922453068059931719226247888558794559874740481191998306179247173837310640237553456102076682644708094678323635404522774323903465940935066347717104629906728309784852812178540269837040479160192985218951118179813403548180310071919078107598111828693534112956953720679763112079325847064238145160855681624745859191978064601730752770596484096401031542937513892392460898993737335368790592970613223487974675349411690496138293795172368643165470508020204605104403385961473969296096842235703477948768191253690092284147137838342661582164947517705939185209021943131514298835680640471430205016195806589816241571019294511282950727319416535245382819602551548142128189109261723853730429708912570012227570824186683520734715525552982284453978217584407357763795635158726733319866095418381626152288063930684977590345899817002964833392188458353757487643375951906291869200181331542486358780775410535260272447933509162055334940089927887520030027657559463118281875661248831229680918409671817667659546612898530453073648139344460494943826487145936419514482932935794423244591298937304516116243780244742634956775781990303592694254685798073720519793856884313208421879187148696481621475861419628716611427136636107091841587611942371778350945739369882413942058932922317748528029696091031638756472898060630308994729732863162638256260631686577137621409447745450360338687208836226746029939195729580747165916136596352738362091614709840677285283936286993675632855801577767328324629979629723769427885225643187898921490390925620100613479327615658656096774210674102081579467419402767436172804908870166908010898144878526571347496612919733129981185177241297482956956540515204345604854673629848298183245684885827580995157265673739692585136180987029296132815928675669752983781896790211333279773404293093712579095127209703811932747293824172837910058597992381403547710784700126163603718316971337903246977749057408974919324548530590336564286122486491075834630295112758843707323507663985345152281851518177009524821372950102226282623145542100416775016517632009567409540820348788328542017097558699447435652218648141506247563021477587452414386746235452167599942228514402012989707326710901587429554752176670645121902688995548241756626907154598557824585151694828246737586501027157099084725399215310429722639809611050140698153358584057191859483162237708566152757112263564328787604164224290480033872139312881468467530693525561109534617623590007879150040602434273618724139910363203086541657701739889452769641388533421103008491739677551944648535987595901370579819491756407914983433624347382563555222994572779904544733724524162663949655983337774531976127478436747169150198495887099113296442329254286658421036793717640042794641754980951804269197223935371485830594100574977484705037384828568651629125353062786173597260954322995311395355045900180785067849513779852586382702635456983976468943272080539023918444283165493186907471481629876938295496985470147002917360314778057629440097845778717313921598653550321699666645766041974967176146222711382079823710825050986850110787935796429991668658895465060419920328393329154438215643860678737177173121371228677500793305642111510115458488150524242076514087507265130509020357068242140989013883978510625202584932053918321715368704375053000944665790914519380159620827355721641442747393916259060609272792072865970419908449209741645955205200585666916101394787642828854179846044352664270664700080896873442759877201705685185090078518373664518430846361030668070600281623916488462081699116219743030423135736323042249385122315516090911209800617764405401211217237954338009082533830781328487516311322036510285470246879684741988362247722441504500338699760719346622352798214682742251831082232211278518067439904740592878531833712332090030989235926332148518226596052868449498906363604175280116399146392490695782506053188247821698503659321073162846460412721529738356346361979720869103856859622096818828181982388489966144831303937902718632889212689057714481410572134113570914962869887177398351806968594174379443940813944161952501925327533643610961937344740510390447634543971934002617022918070150813464793610487128048814319304043389919111186332568259456819928184977305978452147573743440061796849318413831448137142360851287886869669521037814898209457976466442460082766433396719312240617270591164519538872124758475339614094548224941884396750074700980152687815930933751540607171597737933432225298006219104201945721374703564981545592397102667321997902326425651535316775373504101714467351749143444546152829929723371268870553537220475723475481265511867172445934903514859309093194728890632949668348158063212033931662518053611466914797915620146068871887126919863717132814240475839935959278273248069846292763926117405480532020974093438357212982388496580643086015412054623353644759485127429702936795029052398576152584147272091434050200542116251477043020514249629222656344161648109354994503317170250754280713579838622843718929107434594356783595270324667730121902573045096718336779965623121250717399450461109204375365440553936430500648275986090123790278945032083373479503813818306367191780389827012345837903377056943247482362846544012160262612260487643300480886480287011314912765640463119295561875305407321418829268493615962426087870987112948945536632963643955611956756900167259503105791573076673869514413239443678259570459795301101625719941681922040867959125512420976745865616853333032253815171160624609930269543591465524232995905705923716233602732082310222866018532228095722786884285457113669622393267635461714940469734741842854270119342384907634177277565728084590895778491730869850868748837434965540371215947141179026706827944153910357710418282752912192374307643572090039540293199278225692113105751863341732689600847740132561221330042352215434930195596878018336992333694713441232609830823877387900248547364755232761251738782421910001496823244857948720957035062697405785277538984705226382493926795222731735051893370512585476616731590733756464803773758814047574992332324983058445014225490553534152061699947003737772087577436901627660386995485958252353906534958288573061511209205935949174531111269114840063780704244128361604530592638067320467099340434708313579761268766936339359114410015178806221829311827773394750584215560204574148987062078151400753732794988093843582673659952613631374533907750242559636243756510699761539515563500987269905881030405937444154091731178218246550998170129920763371596970742180881280103417915331564975350329714716448087467941151380965438340305893966309832006308222296967626773390019848727514423035939769131035283595633077709353759720646296521877666881015747258616204621011640475970306994691650164224347771542865295571892603262811957456982037952812618594700439235831275965536513632893692032493024589198292615115605912083400964897518854971940966585153036757577434907299266263279154745813967638284495252138130951643241420541094016379691163382212254096747249000514520610376169704399925399811565076540134574309098415279639165947213980447621586427722237774291344852928569776467699124412811193359280275381142745353491228764497885661927827440119901227664709789315057366506554134669885823610278255009501990927717925884702462913112134777575339610016030754464139286203173077914690437101461794594739196096007585147345154628371598199250761098165836589476131740002969110842744401463129086452090065688389799917289277601838810048815618877762690133919874891181762176615528781500645551973292987724904731691890527211725380369571637091388713419127279422708529702379083971172275253817808115955574076197544770870853768373104192771421736833312183872142444009610972384689906732195319051049631016359863610611619826068704160015354998007302021851205568977069581511080810999631585860105585525303982886502967084369789428184867589898372239795617532644825355709265476044056308516066118598435084681579068486574697716097591328766844539119089428790389947243931358289345701011503377595125892374353913718243302946834633312188691292214774860973138477806625471585379927625695018482293330125444069720252694435917785621104069214320213860326507320253314296015191126141403592974720653297245749280006526126843379025229560375062334457153360682165670989425459661459989441628723111945639566389959076856361342549586920477764651826057646630018642186030287258181970731279696814098944504652989566341849821729755757629458212273384697716936109037671796358507359157203227680362479734834732871727572943329931771470741551066062766234634377962634394531337110365675173006980062088971081912216289217120331043944768331265726805351873378541097877055566195299266417936460040394357312179056595582051187396833851141317605960016058674433590913670954858318843978020085032899119705156368975128601351969160605806891500951575622010856584890691402783498563895337830501831506346905641230514930446928618959744069231191413611268579110898468005414305433300927057428135459143234873023362765377848063544167590110499997966555358606866515738581394608208371286517250438345978331050201056702179253107688075525740110949586804851319181355508978931139150398645343817943823797780384037668810752377635720451185652156263216292727806896134202189452565256648640215929651231648304034309425369293059616045079968028482906097461311156704166625019304276006692930170043390669441605474901029846542050253476799760274936744212341870978652083174558500611701695489007652339053140038331632752389621495596141932954353481128887016100718442634763574551489141084067077215964315489252759649926468216060499300430120421097924429197717009539010474991375503859859954041862272386798152408994098508482913947956022456350870179697471559529357315761941081555367905078293347539960778760031121635907380201715148628330102335593935833735089004771823430404373274781594810713347251923436531228251615742590635794058821357702907580209666645548758850832262358214276557990936124779154538972734038666322455314175748627140884814546730713215222735721238349195422335058319306256482278279481683937072760427287113117038684237403828848965577388195462582358547636658821945887416937086960734143803981080811654760965222641892404930761866056854303513877248072582182703778928885326802535596952446329058816017120189919340105496097756413036251721678960772007311239701356669300995668786993344691809590400706319524437107926571393894583951683913526423248622932631180124679219283237866917286985429702477229940066295254214917030710927813418883779659978314406233311870196407803794923006705504147101847366270865088115116190009684198293914835693243004469080874661340355966344398463293799862779780637090566866265931588947314560979745883652799663811817826121186565563138076201969762328104607211402404141354261121253241628196493464836328571599067290914025482340121157686510233107518137770860251867222039179485681221346892702795782269895611111117174974533541905966301140906525301381042689350144944924415999170545604408066041210675885336521795432391300074504777238928222026137036716038752450752265682320898102335013227662714991893517115268037939508263379880624081856570277456139534480287991481649451454544120605626543200121607274694803942021967193440737607015760394369907283706583595366890710198193299194367061192136327938557577917035930482455225335236130667446042432972222670313137217268825771686047185291285047599103912481662363079244900126923419269234984603184510491386511555678717265648058963191476044421369912999603978146010951719871509494309133905119910869296770501739649678362432487626157071418924213136226852468277785027295660230119421418179861955911902694695283790877117744453382063710620562833966043202470395836354107048305297553246579811737432850163149720379107252077965450528803683109003894418980993846120322461097210931494151224532799908389888813466214377870504630825484315919386543483954445932355986450163562815429554965692260660058841128682394162912108382463640793441164358416412769088032839970616180434135892178527352690851380828469129499599578511569921989298272768811476861724903259442287743112584998913056488157572763015617382955017520399966199037512765755182730502609012509001116283768724000076337520133580442255331804141296591178038730871939630280384198215098395221150674475254467419859762510570446133220141731215660194505321370527967197080663277411259706070873706824188893431457496769651795227653649135788358316250546821748732984761979654498804342405678055829396691078334387122874424315558274442053608323061929351749249517041746338434737858369408682283215400102790619376093774381834120218730143653030721904947120086889144153277651585654388629990404353622665623299514263518821980439499186501057674299125994611438113272892929298541407953285814910664770978487060102428979126948554158568916550938830771957142112802380884886804232404750637054860152283110287184438684592686519202112196524843274212838215725824519607430324456067362591907317637138384938205815669979013016636066361810129804223219885829178807912108676099022382076678233549340124444320736898979362184222884222640368803644015638844771409055751525760676403330702576937806243889588659685114389708360607953669634331905742758570255770159490947273981220343550578864454057922807657619994027811146827204014953319119039350858022020982514019389845744878413589876567348031700640692024231051470727585459007660572776967695923620960265493376655217819397451976266546827764049152075568045654175290656389139470773735877480805594968814807172831705642561496493015234362599139828094067223385080846381064805582421709782822291449828572529464353363812559112801497636877326413675669599864349592349170020087227477079813578167190465855215689346246990609631590191244506448166480512513828033268677800435635685396621861455690546430368607583057211520030497408588651868616633502814113101611705411696548334314011196766249430836874401353562366903021768002159985931291771378035761761478636479409265365856158825657157861998331806304012658985704868357978366312403142528284446492347190744927721009135533345093086083890860709287715039573650314161788955622658299250399849864968002849668731238234613385386268807720826311140287096532341660726551581289453845308533445449565952387940758410317613887465541941550658254676807266297460691554115601306963666700965482442098106463159891579743912480553850437221255750750441662699150752691277398539840200250580274646860768138774829773000580954637576259036160130716918419517441650468065130397106437349479408197797981237873177008440988236234483526660063126666754057528710804599178457613785643696371012296136341490445454157138611550929185712464425422172251028587360890995496483732703647441411598281969853053140847132869607771482173074650785668935926102878339311985003715215803407270353884126491773365184789150381715456487978005040708305104856524650566954163620561721727192753347663862860388554380129011275971129397950342339214793577126389839866214449048643581772639927882078567223483835170380381543936695238984937390387760125602034971449596220931015356313463660979258452761558910736329356333233444242108720574120630606692525308386620755895201433815673168866520622644059255301735459777250506450247358724862806762818037983511195521859363803135251644394482676886534298916919901521937113421030884327206906551701239070582863994183874453859277042001149678505489666593429258426540638482459989730097634940713306561790906915344367202218790084279156288986111817479328543064931762036579071871823017086901485090756412819211189668323086252183776181629370398147940812705967034288045592642210356326500478575816488070569902464281788676992990592803116152512837538067053193173104359742889210954441284361979849312934661157629058090497466780822561944495038311719709216549287691979545745917391790439484456786473559082074822500873323443656600383283702614495186190860362975422925020372511514176771960948249428852210934877898769857568504051479116537695822359256459333350864911603490696886901732804826267749467848529727293594593042814348041310910803027747739293254262483519717213305951121592936323856794228413195527685205767085340431693155264333323975537757436435600626185493436794215731325255823606777624942297725948902326218376245517221385413787054402756645772221976466359947485555476302580698986938070147106279284217626887869446838186798801051307313664743970613328632240025905156929929820037920617659160234792014399680444048207982414272782582112721543630235225060865305309714149657484097020892314434813168840337259807324569676479519263346861293081670097395079900922464283833535144621436070719794843022439515353543204047456408985945210987871815276677868900577269632020513353925586511795945627707390084556850071926297262864217926577318616603135968167634448717481080032671065609465076562761218840599563817772043496918280148069729047635784834445363280572837061727862026457738689295572298511922632847680929959441102192088383996114270621949484697891158561085251390657294763468902110935131782785673883132896639244926242818644682504104122887823279145615759995785511479845020967233370241760260648215526362585495486507161807972137901245567638987905270182849711316491657633926825019333539023806979105299476780465969005619227206090728148416571382843769566815216190175168280103328125895906027608160475271269920481571179281832947474509226402614442150281950066858237579790643386832976909438438688033103927002770730461920716924200057871612287328945440253290676747096679659353796918632671042524686389199261767498281067039380504424689862519333728641093034645840043852082850542103513755709939628325008531647659780124722399394184901671973149727721384626941287569883665785973929200955160969046241760545513510292769404185529424940213563673426772535069826628576733837828114696501297200334253554802640452955646116708282450851682686804899290392105267238646726811222764262238016336172715671656338494509892001868159435354637011236464432075495255163081605797484322832569592119699343892565920227710004218548039295036071754332112500025998968751435011038636094860300369355268884042493925959040770046989634492090138915731688838782708831962692199742892864401123161850437194234502138665932861143084242098538665567974421601779035668959654408517205055270067800988630630370734225028710744517216841161008445624344990940867816257300942044530448452100896449668709763183308544482381424857309201087409851277564476430290708116031154750636304372925213658943111738083087940423282693345904483520645035753260131134197900479953041333906160145448096183479818711342366114943809760603674333437462813857821784768642945375302264122847108168842823284416699724350014741057567534172584119035578812562190314831782375762966461232192921626143312647478989748211704521626228721465027674043253969855030811599588558537192662739521893643471315859886355666893403167802806913109708031685519596938174567697087030753561349027949451966039311906016110642532645319145050491974179502071343525738472100082116166329569082922774423981020000602997641300184734536241197562402966071811405459169987362214797854247238928628073860940758637198191930794994320811758666574821212026545249281690269478239739462804664385552608006640765983428280953537770918505443210707983885811661645339104192846344480789185929393328357168728631769719994796776203635888041214511510726031983952578511242480374946522308182739528408328019297526773541791292527999709944120352534250806204034619036451129188713002872491721796552619657120000732480643357191205690833210290308980819533461071121272051102912972019119875769155881165888878407531231765611468461749505666050343881160421758769571331305075306588405469353288768390053456521487742680527609954009204540437090777644535190074711632917610221030370365541797620785909823467253110805183897310558112183097925350333248468715319554042720549393325224049338331155617259825113477670630655765104744257826523802497450582587416106297385384764958720112612234342124133140120643605867327843322474519177702182612219537007829632453637820879248237703041444708344384525976796176426903995920202414751570121610888563372070572702917483408890471297823611267180783117454884176395349217733297521860708093409209686299366422115435054631594171150465551016063187976945091397733407593374001802266122523005705295770059252345976963101573764112710058885405509440507763847230630592554181519735212474098485618094876085761290723727375414239126731001050285425987271706920607339386274441906087251483014465183692072223200684157274020976975950467794994904404223701394954121403050337945039691450086845393997992656061826212630598162577229914629113713218112994095025463678527620680579463308875050633559790777263086518225839042233175308309963633377210862748356868471568058377674648361193393753012673685609651420121675316658221277959705146936525962295099829708323479847563221965819148505288938130595114054658831134990699960413195930048834048439060508780580764707582725863795076071511292313291389766125740593928507541620640627490248518143103294396410323534648853780812579837986186916360990268155309454802742295911032897985802286633565747525608352377246715416065555239104651911115188790954009561983541019746888004982000583551782484412462673536399932037468860015816992920050578975978503178333827654082249119725292169060297925124905312860200278035003225235880430977284838317859716839883620671786302733861088459840735790820751887205821876566195953365956265313997258124468607940310509663348106148741680990896239651662997912386584983061704483223955251728359556372580862528172800227225469365667946965630343919844075223299792625976370301679684149077288320593893547796793441013074727920719432315499304414698716461503043281045101177389970502911750925035141095243067208382498177104370406555526824391436943773511798284279953089695968787371335291717755850913322798119027347878779308530920750902984469737151355489741106966050639335191256001051941651847400249835487674808798753905660646251752180569752917198525662438360079288510839512133841810244398001195921770875115824880696220554396388983027861062207694595442336368083678799223794043841372311925549702213537893790353938157789364198512025864508825993295329796119596121529312119950560309958931487627764258573579612928385087090066837056129177231259586223533395591366648908412797479769807295272383170273620066203980544158134453511261608300803133283291389130200129691127889100217418889448440104222396704809723476482938442902261201264962648810428358197448191075803249412898467331022452526318845038179900538057448690364958167932246047153159399424958826025505203672862692762387908605293605122881361279202970541060958766064918216410220089807068002768924183037077115912061843321102745519991623188793610709145317668303229278255995616740260310927483342709486721948342726764048208728214921322967995166043019986162602748848025369885111401165317908099942446158277938129745806280595993951690096050391907756842633104939996285905695837413978927325531078594243358745271515260705318764073130319114082310054263437963906801691130267139087479718830532916962825610245407903730209635788023584768825248445540920645815039063930993043222593715512043961419963592933352666632298508556749169830752834933050543125220929897675050150114789756397571135030687752576342991631113009844099403939591262762226331065794865803243586906500885122918241497986911973012894242079945448004165349099208484761464726843845963549902126524839503754701747734851831997927530996113063725891981731412621419080929634548164607786972419964965853488179498744522838931360743578754827682567566142884143937215255094377885155864438798123110610094309747262898042564633300318524524056001569013813321538083033320436108514293444555884633646935753679913288495473270904740447586022054035443522934294018436791560922381651705649239697938262045582389684259997646378068975056355399960516907214486203959059627150703326265932382168334110603324604587542079129988889058248627221563337861107430123893111014873886701865528502688848918348870048786437080826320323820508211720418414120269733045404373796287749143755634599415503674979181666388097710530917322640112714285229554454775478939592453802891038095358917741935904872381745294678510320168489560897612680179321292528584300555973310320150690898744367806410350455094808811099218439875688500497486308777563783996987662729531106610019132482730792772503463691676073890807725794992218127054426017808798829821522891473193921131150636238455835046221437249286722814046098393994847930511202871259234845181359997902432098906772435373128196447358637849716823402659662195581077272813639564583269106997021083414542411025439717332793073306030232183331292686118783711336818366456936113733857838470047667115889609909098690702353405700029262681969289111519696981530281665657218534799385717484899354303591012243101022050286098886492368147324731152249744894367648283102374412616952882007021885408996759502836593792543499255405493888065154101023644796632881902107699317835020573255757120572634646415050754242872930174351299285363741669240233234317364911932495684644414674732384690803168047612103439390302082447763537874997018961979996068581161581457670907232807801116231693648867527016251598650828345109669592982518073329744539503946490951127817812680045824331133774127601146175120897885128180657704432663306230527442421863819238111958150341050113397258683375977766471267524634487822207292800224249348124552718614231359874279914146674575772399835587347944909121184132824468256102401185392002663867105997566296083433959610671133582491480859638581172576077447840101866685905514868715759539490316203844735245802287225922600573618133644135078350906451080118100658594729875019051365294434403763499725709661335880890989212843905669017889323381904792826805369205910512557320153590510988499349080333586077989281867623357682873620557852201499560897696617971365580487094035813323473806249388288470579133981566329140580161614374592451547216514964157685100464602945547768974511626012582911360654069298104500217694489544478343056088712532293969085863626242353768351829419909709005708544502853108287387625697266081852633286788253994345395196469643260803458248006337574531122557685054933361029662313386121477649080951821837950364637662745433940530464725014935315894207912173936758984403766843286766163840752876805664062331873477397283763300909450308097943691060032686692097080083886808302103474320449596366121215103106694843925172366119359990339206482100388152190945992570602557245637438259749763384972573676543093307677981775534949437718658541467043669761249443549609860820745145399628583477828694125337787188972584433733055600329617706058147171569918673775978970571730609214854075766170897429784781348797997607111871011529594391936177379399154581247313017618869183861543745752628024543959940400793904381896873546673559698393776300313198716233086168487263082187783443852134610549194001530347017611304479113361892626019816924656987843936934009637696536354879526002082550840155135410242154503090506534779417907494761813392878551326377356770122615232392372402228717079115165367110361446497301259881667984654241599369540868246197701534831639130270545089537663024087521067670401929059681250014477241276035424540886494396443137399677240172039097842218778482648088026459749780728016887024704030481740920883864418305353369771532973445824266751457138318483592652366657375122253618722509557816884495973768525632998026523166241986937505016608291694280526360582700085298093967143332113409575005258238701863419205037354834074268168203906971832553907031623698504737414700221797197613857475374850053391697548680847466230098428215266136908560152245218097285792945941109120395446084021722600487957042334392907719186593776736098034276351166635190250209414726719810982531015688567950387788885970442241701494305203473097899175400070099688285150002733772856122174313207711423187208238530649359148732879218283730556163356632357883310408244044142210250784700487682260303989669438005841912012764045046125978176301511973648085533559006840249563283746477245385812034837968263581900863333041315033452568917768143845825656809796571879841949738248041062999532228461582917116568201859580816399400425072893193208349898209890453603205771188192725349653026947169752669653804451988993277383720379298162024564196348536240825238740504018831959682363538351977108741786334504313112611715750916066203806659857244493871827802904581808797610789873406797663632567388061069616914934190836095707821372174320104993904846712413038364273425486617449409643098791779172890813274378545811702301981335844729992226005016252322873335629656273215393306419110665232397693280922269478646238447492801683602100635582130625305967564831517867391236655535576571879771499046624803045634437391222038834102070143145514517304773375326437222095565079345896123864706272281479576764404198499713300921589907734365995386609403901786239042214159591175871251635095077999280433895703675252620013267070019592962866074402238621173329229306691522392396745759368755150511815505164153652170559596766672307342381098608362469268774415783555401510431315218647702431850942706828905828275275215257773813022925294044790232734881958599544481491706998944417250887292609103135153277060843859081965641342756317465112205621188763965090793542571453653563402799678734519995300283803200699019512131091083730122708201555213743567879098469353472232697319124995835237738426423048189394946446936739175475265778104654483606645851090871660669840583301634013792258520099152315300672384030730924820306810923079191793542605695695420808293655855925145350526373021981940791248616050315335262892895458142483390973360804836676254778943278235480493544400145853896561881420268900264181737612386689313781749222647036561288674546174561378109635099574181394747439017239259169567960184392689390863515335157172539632396936212974680129496359545622549610920992374054640413980906278763161555135954502285264835299515318928064032475872316563177756940508788673309459207890796968287841265968538430031301260975342450968991106475148027950457979264067967981745807430241203888975140972334231682612896392008887527817307321649339213167743022142199690631131485346067027645436194684100833527892378434339015845771980636001728707412081376657143274347792871577585765534052677047967207093075479948546895732987440582203803545282174175485368059762897485394903790504977577035273580834740429282851669954075848074747630852399136495075176295518649894161918951923045668779924981021160181622801014676232903253130229531829416374383711640564202763542752437552471463647578472517154064419315907566745335121383432189292160123782744585434338181221728902246064904401526022479581372279625588611932138112037192405738754753658537610149468755629730283398538461622104874860457850207895461961793150259870172656830321071778633336226086611364600011688277101250906523501499574229993017461621395296836534742360703854390922876387540331297467220247734605379044927470166016327348026472049969124382404153384336911667445229623057974612043373767569487216647846198446152385322440506555348054150379250601165263712254064196967963733848520598772778169304580847609969319644306392049582459241029174016157722319058151372602828705736213894090894065167106419656302607961638953058823840175554303110571938922812871097666491094135519343724833888896112444210937253454140194110145753934827972200442225457634130231671162853777289105717395491415250823842980396823395498053096565628713936165529745450926449751949254963608194078055389706900835394154323731517788376489023043427933177554394156270204948337710390092630584650649909450515747557258636663911796836003722626023904546853538440350577278338593457418757328353805623700485010037717713600084973265144948120852840163415873884893232452325065672846578718624776656936608430021368142725914398482513599043949316042115863037940643668721390900931867792336320357544120539866819806783639099410006735722651755945544757090615578159516524657419359582413618526511844412471524174722508387023066764667294303498940501994565615367786648781930800733758948050993378466769981263445833857648032307407873698610436205334729930766719149485532075059765075824684127828910092261872831958542293727331944216298718291843742658790905073306875247395430971320492460355644817586548544648216559435861992121406333750062439089680742524662505409880763769414868273096024734807499755587915557375690566334571723874713743942454716376967879875104344194446980704453122724520555880354713449165848862290687462336942025303315205580827293940798306296259516329010907132476973093454717598195751284822136952597038124291827621060808973769111215568292935338306675148169990542992060366746211303932255224434807153516870890205722304317557059152654920307682089341831088405835030188544004482638878966056419851811244455281557899055873118100556555099658144682421409501471960198633522474750624744317068838674071976136443385233551384431907839665765416234528993083728220844817200866761095416907312169608117448573086303895578917638916043643705859005024000912096638546589362840014625069822048339118944493326117459520952384250202728728936823158795887627787352834346321248950827013250105192138715884079539046179891899623537511165459638706328620297745691193097552191750764212588839234054359509853820915027836738643690088362630273226733197202587183210728038236248315373282998332675078006065506048925666132525199136746141465245671491349077005798677187446135529182153608424667540943965034430495597605565597050602771573750302944562574269362342375896621009996121766695114563654926672364589090164880070793249353560104032449704552992267959174866150233743670766162649504075482443491150073602696255139994798573265309529262894087732096583862642043842843073654389724429117547361888145805082536798482459641743830077965670442965629925061291460235058085038244260856061570319829404820849343131346977709638916375707576301469081640043154662865922159615505838170518102621557290278264856247837517802934037378889545716108571682969578417403082161283749610226685704615057032559901144485018403418384694775846447862003771793022169865472753988588445169856489973369572302557766407101188775842391410143328786905583491634755857624664882003945186978292516256965974050916728669769312563252224555918385178344156276797089583987199790998108782725664538177366638058729520457846041414741671699860228275115460247770815179129105861721623694671862472081236982396233749029181931700181286040849686851021399232301224632580428816745773733078284478030070645619018539364348186386884184743896269976236185693210592724928101053830869288104282444405198187267301937264902686169763818851753413632526840238546646609201492714785244827115446522900731357740827503739183729571616972790083934621494518514635283717945467560046527158179354412281948710023536515121244212225542588287814102562010002121588538244698326093078462722364245414207030975834027193714507218140367089832120750105431887400125803980315973508688133189064903167670648652027591400018803393871943342194585897279928998543938983652221288294996590111268799026866960035072687227245331799716372739765391957969928030171645699768067377721861207894704248901365500345101131057784687063591970367160560207293330634072865207610622585916246469373220715982923504765105595905749362031168867756639155781133673868375685716679683771751327858171034697029090838220697963328908875511210909456745169270951223907523176275472004033827185499884904131511098641921066876344677357178985051379462219059041469156123307463989831154138775290889461961502059136696084302609874947583235755923158585089027313152813786863528412984891836101653995496555947833671644674107681428313870369500067407081688613589355439894832158524838895560718891005045414313912630770264603850030346152541129104678700663102069132660218648178926142601387939931444823433534032884483859859922696400160971248182776910348248034364754884052622734599521775599091871151349527515035687658009494316749578310964071079350022033508994892245053929149592169349357030608945972144345251811795938583387188064748216167441851417696339781448411401839498844206438855457412716155334755040580006567427862298587224637054890638703438933990653520686998075447307940053663769648037115662257701914246206243511633406786069759264367961874024867923140475725497001124743009572717616367993072786769353238167339518494475224704738467786491643635835594798781516683298609463071651519964011850793082912167874734408511420073842001598745282952684531392203487527296354742729521368378291895458193778492089967139699895450883484850579490999553140935146731846586520802343890058860933133402695609886641247547173252770645715920259894249467998275266330222797683903869914633375712066454042684484097451360713243091426708999574047014467611181643768854934656656448697175023539509286757833239141000117550123149750476092454900098169638299988902414572952320985543956900642387978255217244122853237179394356747034016320369317750785173663164959320026035032353856492667333942300895406903336669350156106317915989124244845557517576463952247192550297624058051799462898100624245332084108914936365234552081062332791295338261264343259739003043041513355975389446778887252615046194114267736622150117105264780922889239940007262550854501218143631465385819489618343379092872056035084788580885014679654039219427410114214689958681859486774194200299475134347120821920896008478745456526049411450740835674763946072875444829035427021238991272914136486376515495818897677074992442782273782603710239606041711027844602926090018945653001007785950801946113010276882907335593104729089707735000309034726785810114021625182893897078944281367857632969232683453870721636438514093243929314831899689271542746294509432028967151785323885459774955583201100486703559841073901028716956354787766949307039326467651252160650007605449316951937949071642405175027930887559628724308720218818046032582650376530716976228175828875644623040544529896224603822910254084772915927165401805931264044506579999998314201261064009287592706081096673443695447148143954113332592448239340210489791111538456967744770673016989197599481587461501854852458176455617065881545238195804591879470701211909588217337932252153705788575287670130228695018661138152199777303212520364728800642141740188686249733651986359907104533130319497504964968900841775259610638771106273108476548262810493819612464212987272573122970464138228775825331805632007243120879164549439350931925714149852079123796945209691997434378318481395263634362812573385389867678848294486596204785723480079711349443265104317111221048069805526442141742468518658284921301702502156582322032323982004334737287670794677077764200127123013709092643052220337982002945221198673662624944828421926204281290048720502530454585584933095826429829774626972111708745972604170509729357291883642131977251477576263486696397764934029438816191558095634640057405066560753638929181704472614587755663343020966618157269785236445063262366621700004137452593354728905879014354814589983987938997707593758512269734439791120602755491870967449724310680130288902907540348842779428671517785477218349543638205119038239248020787869130407074679495258035189083921548839650823924624865793793135801055478241791583786390330457875193454220910953764774800458062948465010087953174818980526648488915943412873569096620155682677736492444018680194788137584228870228142350729287818301312667130212031697518772741479380630591610741063773862597084683735551280564730972996038422564908562804458297015670018173709276546354584751342802060656442819037135801671029500562449933522973371162793419747965469560360058627080599001044604499382563220103903483718158767033103372398300420350280827377208785952774921858361443847207543644749546329538497122598594858870116461721013454236900394058378926142205089019577694558219654907622617397102716167239138512227928948077144957193518574301849088450205661633518248661142742048387530854146562277108515438750741133277277973448908341607739549359035134632099536057442363074173259412020553092871672755352537166108912774231919712951716191226189922678965453911896762869918641954216628447609678463482811073984538572317123756489247083193306505458483655420609743806204143012667574004752425726540904449102745183706662947505992015172342525714689089480399362921478012589608764706825229558050598497277077408404052821290341603022877244203590158231230732112019629404063433737521158157051319154429153943290392670009409209107962617044168980273558741076644811772408581841836804428675824297910129854444509545515881659761166962274943469127954360098484374557514844768155008248069578564842237918922608354550197693204880901922327687642710779546354748354821372431999705691079788541470195560184305200877147649806578857487025399129226059554368907812847954339946740134760622101686143154815691268247818042005324554304350897991071295607028414151798801675696842010508326652363345914140015736095016052685745827366610282976429966043330547128060050794653593103643246966744461370117474050674418252440551931995074662996854404011134230291509624420475088460458266982936680486654969717730657766121454312816051446250032025984648579607415937168373853848638360379441779358972788977510600094647062103642019946176405577433534651476126914180501862919176368599349398415666138971741033721952998023802757386693850323994217053207930935959379568153777106264654681278779868156641915999416169064986053391726208336284475005389643646670509790077777372754780520565376506314554177829291377454148254041882104458511685521584804728036351029263359093083462234909218524441636008856338628361226966278374080839018171658684196816150671607937861967312306603857800972616342926868892122903344148817913583481064102653105260736024402849870431595527344980965884999149696332443396146574400276722896304922943335536020009375830901097680778297546325222514507310387474141322587116467323366216963981927213140200591893814897008003346126094897237532985814142491254228742493588853869221362995954633420435473039882455824155575608175841840585548877602964301144919495502875209411943543727532679082509129394205642139465826591114584601759616154511725732237574605158785431357938500112454772721245773681112606751683619911087742651452064114256016734231507619136398620469747308699632112347587375376036635273313979912369575866912299344224409705514494416733721140808637877783618840535002730232008187023426143744617426414253771278610226121924157297329938728676905923298063400952741451248048596681938220074593448374071011948008288318402837899320532105467818837538479814096820511613887604620232375339237282758493312665624562353818072333524997388379220652407809168077421546503745495330623174368688890393978017371112063388653947490151028288133201300204801998445792336610352135757258420158113542133491165882510570626632429259976576424363171582553747413838355633736673076245396528448808036193703251487642193114085310507360925539350170072122670529398013286214565082622552932525262691472206816921214675727054630330519766909141696952654041602114261385301690956201772387412932622490422061856255719064283439664226627758011763425964317300345821065372606536155247497269870528227833418146785501302670917681427178307504572819406896722985072607549211935449305247016108140242373881701079724884368929616239091419914085645176645285871088658564550141044086464686146677066166516009865789263021277153884259421281698313980565724321927716666676883208832838264808625123937340055127651064868267080305401720195417969011241713944195480865169088807571803495750659282121292779567508290758196981146724326006523779161171524800441556178399540534090849614905733549561003818781761849312288027544496178366366239783558548662549973507135096667075246465051160525524625380873454763396940445220295506999023041178939114370928896931949316838262444056392610568513029032582112237744643712580191925806669567138814028584318090707038272867832025550771269873242604097119538801579759220368444149719966254766042799238716201051808008409586912291573949753463397729952920930066623654293635494006656382564552297438001143493322148575735328043075307469016114961139739564291480170085800829094063317376410522038518694251324147804285923041142421498424379510051779648208064563332107370150164023202206476765384661662843296240771530370758275769024399035026498949882638045338481146881747768543120796266296974024710902119633419266351139669332216035419643090962959548343792765358822003127317673132978078470099340020037039393547360504551060503783297375575823468989087054583504774340948061180215739699696439936987063590422803648990682667765401533355677558115606821162204495744177448458609726469485483911795658546744919155257318521324069421355399300353285800775776448816395148056319108458482029362248481373113587238323808990023292787947698209316627350699818505473391623864516593989810557231950448195694014003397916293764164322772037020747645061419610196610598173142992021957091508792582993865021544706003810481313103355087559391282444247292720022634056757495540631258691047574329679016622938575679336047942515681469788639653084700966310235432681263870196050618906221546825537101888773021288253110931224518703310778933799103434540558647239733141970427665951050767533246180354559940826594692444277269947086322697572336851454805026346378427460193646824052371729381508527810381602360511705413241619817039669309311072982210258763860374776929610846422444182022817080340670630221378000292391187594513910486046369122993739534280065461121378135642521795816884392484330630172631259402474428139902624801939093920118836544736322931589434755286587786638242417579596399833400916883587233229863658836823423215263185803888230041511559692184235394213211451095437272293736545764828809664720319419842116296759721034350284000153503938473904316803603758118948817788493775306945254954781828280906753940147284759551873384096276052002165686685303116035696775911388519607878366806471149149665759642150748734156858136421382995719382015936146847818245503281539021656843803191742613319222945309055369371421866093777569942142342962912001046837054008674928275628320591558357528821089736666688023257431123631083462215791811390881296859711085122626498106803745487611396211808066866028615947130579852609962241922126116300236329708294657162097977124103472785509770551605264109511802797652857805425010033379478318282058231620435932127407031542872812693025719567799466411846144774827238215421663246950009309369151524214478501989744443481536009821113948009776189374242855558846249266873273816181454109037826065385700210096322813342672911540473216505303280949535117180835015600374506358412899534544068988499424209782234144396534877417539080638087998293169665925133254898982418637302401309257861072609889661742717638270053431037545805802119977905833450726940985423104348977382483025748932538046159871741389884298354953755998265976590263431802092260799392821323032557254452656485240573475704289435634388342798257120572530169444219409667900913434759357451761474404327736066357852533109469239687507998611884912856264531801206525160771826878812675585679147041218524729102337058283749378700584902168909330653303197515840840005487480694121368108603099859383323026683257271739666928815269483572360488772063378826725886656957595652869143942205802425746663258293360261332086789118752416882825467078295549608280896552376137892587388721847364712005697066385925843173620920340121457349269595716574466800541033613948055944083492785430051520002761524865175588982664108228817522483622611132555041257161267822989612955565499408517405187658576753266470268150528415777756137650583908639479536042279346633857278560166375420184955966616028899099046867131485354245342604566384553653028396594631312305262006141646216223843074566635640742596066988256838477044278174485124569137203994416732112879225411715094388053361807482557552075422489423642927362450984371906022550809699110727340803668399538866112788244846098006979194277201293153121894176994355684640959538463201812985367750077063367040813322298610739811514210344361923671503082703801652101030294282398912225449030804986489304248237669045721736719509150490341142604954173035557680465149509954492899047153117199356222857292619714322603674824362546160647824618082624706982407108695599520138825915001702444692664449138730024247588472644073366818858366512219585721874653173830737016219646505175414675100236581670511727641523584664163992745355679483776814119088052073865090541213012659187681420483375901801052635988303688300764217987117749510667789715180468711430444862787341562293127246025872626874309816352365529572266307745458459908175299261027496774338472999862390354142905269829810215994088506788816400992105901153313084250379911182467429068759304920451984738756878157808726241119483733842831634308296649935403081468433280205670864467421618991120689382577667981909206036155002448781508646994733712256482471927678968407799863788658028169195083162024390437538762013550358898447710380599287121459475025698849040644314578119821040291715723821780923171461471162613471596518891485869884033821530047123842503934112797702306860031649599984889965604327366691065056973203786559688962491959368021521621523378678432454031698368028755280999958359906432978511120571497054657458045499473654164246112848728746355569370456843959928973570835565077367354532717337458861367689425074140931459086810891674013310062155054059745197126261558903095686821898397475856769379962769542724943491917388563032827273246157459581349783529734413943642839291375916667253775264769239338000723781337376851397556940643127309092878577611456564354259381593544169335224774011916143951752635190398928217973514512954992530069393643774322135200941070982089054218845470945991886955956689742100738830210135120973916295173464444058180638258184371750783378068651522861290437100013764959067849158516401123654024981681935719478968385845945773692633543607606959746699191289822516872937696987913657050750161097057596825461176007510245065724348812644117835531408302256330990807881851126654291278726529750961045630354748324928200206931135830065577377339378308533083620732647541777827504772800281537105151440672041563870575398050579846281284681103737673744149264704248093907320046359119885198591389388965082895790611720146640998347067586954569128967353614329947445122051656211994546384555540236206931052018553353748060282847425705595356818565500004125993925606868187764494491285712376941143137624048193932797256069847403206636497196739219838419992546008069007539628253726069891033953847340533099562980299322411153396565890669612652023191311793769026557942786891596771115143920343894936400363251454640182608144116931214557229084022898410222184499860845959951293957365727315199932650789984671964888683246313399586878490430622764543414932784659926950418377208747547442231577598263424138982622453936166555525730320174362314832552843122381058382555377073068841057729264899289756742823277788416317395440879965492892076200724846543758484716411992098245086079076657324904430297963991141974120469803735518794012046882379435822011596553270588022754856130162739032981811070246601276600175651885241514956801359644586473996541859581821730114687665830745117390587797722187257431872497119485157597554462382202729698381380980631722496572122148808348513277009795335274569453721411810025865359333146792742513291430413134072140061556080026299545496719888041385970788065018693019902772438208837918404721608437687338233790285473530608071864810798437607464390288306503542651649585214516144909338267137377877782820518277567587972322121506795065308627513984161303571288412386168108659468049066654607803589853188920669335753472285893701956054647374597460025326537757935873050776474211889395941067911173886480872807093541570990612138495408808484217867154416657772991821482718783288567739243129825829387375513419354090677843996378796117835121036286302698831202752425266342500183492290966845579043136791712474966332663719726596792145115341854067872473326638412041266190467581314034313928540347161932733769402979040118741935950605639771803215549341022143455743136159762952748557550673363677267593181599006200128235672896335094675033704319221498044298338222261524720486773182134984123152996243054092003535477873149521191360647634301746245486990640848035586260660050974059714062028414388138013039463324695850970005437163441253653341888157686686884823065814971114363296757810948834094420158881154404145643115725353841092171768580528168048714362527926854770626182266950265407389133262508897846896607176708373348031082747313263288960295355903319456932269808067867249286705182114708464389637700207569848076354996492394731792120510488811459606330493172153586906016727043699201688019267911091073255972576472886701716011193668370266706312825896570532354472400906206128286180595270950501112432160239804818845432856677117525777662419044424352113588784317785606770806620329033945574981278177834031995776816047407778779710718110557589084237979562727839502793414176101735483829053080450098801185543039622036397523287855515908726788469446905567258529852112549736454040625488317559382011224252784039914460189160261663300635179322163548368812328756505439084657122105233534934965799006685405531888911695931395950889714385956745356920855398400878290638857513648900038013129952834821361481044676526005728145416326101269393667619846143865203043149454989649584951279252852434365300253315304743322464663487590595714120656973286057692073738133875902120724496042476577491628927700889368315370249684172417307571657198052654683230076219066925584615876449806981297591134653250899732255382564906340594733209581385470714737481634589899843611937483390482846165425383573638116730103568667288736629288917992509272281705194952175968082692467092298338118054874757824952013510212442525885662951930489107292401499943007675688377068793962080648897316978875982111051286269381209077707596926126953201112309607651938134475839697499411751467929466730611931642884017812459203495189607816534864328234533305152602984554156354795838301053355095476721603547801978373666797921453148714604643780710837633604532879787752331893950394155517563811454954411971418744529552343592936952070512050124227973708329292402152477504484593398355791388705102188263931688143127437372609247959841399512231466825210409361859110688362021675435663746267243754844489583027107419369632757582633011336773888811960167940620513395117752229631407286355638073634078703508243762991356553175764562756674976293027512250507786846878351847682056983205597780295313925307471518416925967546635672879657635180301461779246665652348081147578333054282838356918311089494931925759365268280294778206486404938766546268401249360143381708985066641102883738633362072989753844138194324236174964157747976249634630740987619911862229020440158063195831606701233804951624277440731721704238725989959506182778337989954902860761317483409603924653982765233244193441313032896819289083327793553567833759681095931651203268590432316187834553839232803959798993699879786167759536123509951381605232462068709524080042817433597690598391336149649595715585112812614740124929547867945151707539235438444264289226401523022512534113410080135007114362545885775002896842191843672779598638093762897749160237266925023709046829252527741663139712491134228796347190056254842429028265297677846853564507981661358860940534314280559877186032085794235381666196999077570810529193288525632939376330471154214403178283830339501662282755562223581297936715815899257398859509403075276271153894981460693260603075290522217636466870863866557289072908525403079785280074712247394780732117446107782201413407034284917059054941760946853337708975427525883818583160430549623589682008660359196875260650392157969772734427005917220791015597348443787518151711070098238127678690830276683682125614290294932070566433236128581324835084208149762787588101836320618211792433069887656376375941138192569070755433226496906407775024906858331029580904123639224816636223657421458994323738043578578499344276730444664172377048126560247317275308852005683185825332314603260502909582289241619640172768727199343502272919498135354228682900934683726297674372874715978169945870701538750778292883252305993130599760590986758341627104402828499303025435983243932988631789163994432615070370347016708650020620549152750558657765434988753733554824122152802740016123551546026542262282167044688290671934758558024088951564219132941015449289279885862432984052135601753980567786070206965067809496191884669372247592983358458203325303073630053591560227835871550695539339812240959770402290643771444057101406101333162624992431702291703404487980688187979664004598465065061006892414930751535398178536207556324194509942373939006859189147603803262059800962782425689558994492230736590740324838972537580490094028917340866443177730735138968512936271757815184366960875395484836004635811227526145933940395102181966195019102236969600543386269626625081507192035837703316728137606946571103089359506182500189860662281009456846974986013000339988839287096804763240753386265306841776937439240646447390939234002435242492698991346875289102429899095543453266171794080529383879813806480830982304683716941604405377859816446577003851692742804342389049878013604015776489714722043026457627022114539580574991305313076477386773163682688321450162067516053409761169346798998107894135884763947215098263251617817810322740973555426413231644207513328593980502731271336861669821988701505424684530075191099605358554454254739049058550921921601006300261765028054930169115433482676066280187759067618597272632710273846074144478121188312590502144961563883719832075352667923246219892805766462564264336978416035411875021535926481698595805755428142219240607608274044518781141253328174404049046645049910503970156497927892651327067205485346276423566977579600955097750829981210420925287457661967669888876388624925460531674716721398535849086023062964205819968268969778503909881674991979000291359127059250005587197014649220874855320855334463504564631970077536155196217692343715554097067728614253436994127386728476839048941874143467417167284114999735780659267509010523791668391423307972604517197374931257351717018403829354182002061468085947124422441365048728277230553265028842765989178213454379471623926771310388949329084673751912192807686619324873142989183962272118604164155102690433482359949970729165771912879895032261502016101132800145112920298456729244195282350440639850052757783861258102775074747602589249688101238269255179248390875546958649257788738131537953312246760466353149200346084665669404797856238780500620151767245902800791025190042195093496552461723485719872999631540768662769153800451904870041287294002695498216371495426848838362373886714799825850566757743884245240322302289926713519568080067363398845113400015747176396387375707672209135220365003682975329732195048851763109968609448057314961648511801223083647593528945015632589575172834972360953114671396709660103953777234425444191084770947104948168328355710364863302676359299450090425995175058067133840146169396532496030390417202121350164872791997547443218794539908496011921654841592091288113439395844467100718223605669585938472171390406876698971167549137091765160755124232809898335738375994538523622602375400037717901972837374682192199908143619497865716509604005034514506628720482717708612982387213418637895268573913323820797108717589751478376175571967693169576284628775743985579600907798403315188569937813506130966932327270934886602885647455514758690524024862345681517174999202766901495732388982471548992889205112318359111235679161356497595608984253597723455129716290521642736259110713905031538830533625264371384477964844878991082241759830748341243601311136113812267455175113829185597653113138033360688291832148954022565531681420450954242482604192794325394641317471416471119840946460328800874897424128816238225902229685558543448351997931813335384268045637627774128955191256614953183084599565396220850448403112192021341742879773904175850059880847437118336654165603354210428646228422059155438640851923846225985313392204702967055754979725577609604658401309735566759659727101766232274700753352250023024530132973240523104004003716142452171549266725318440037537610215510422153771095227680815320665847550994889739430237050056077759173553801713416824073433510033709364959238812711108404357895552049027904590882362866218631834337180017334811312337660310047200386521374347327642690159365273227389540007437316664951807513690059403301228596556127792609464906167596994788284193773906189277183439251443652588028237664461191793888980122172935445926535387078778943383886776658834492339069115006296631437526419549207997967588459574227550094999198667004986768707586911653265315379955789726262627106902767825228550835362012303108581259851893754528001679414607408390286505859325331728471209918634950332004826598958866885254408168044727296604339819688961916647796814751346669287429089536347735484116184787715832954137271417043296085128056109311038474887509492682897501052687319736234727914925789499758837592942465147190393728805183834207487922957593391993558874476626787691530741867330649117994522086017675221509406297933733408446316333647592043445930184008162103485606864885919685548346262373019370578240448355252578139937500377105737575046516265099072196678388039450243788570037831572107052737714205786742067023102027374036091170032343287842676969732651085151366605640031056076272600920173612113766362679630077526186298427032575453488084706418546714334353361973293020333245670309521532979005473310126310216162866666642342824730998502370375803657982660192764863575538003290160483571032075998555361355884438046164021734795997031417507728499815557112524538824196181486002925122939114765234509208743057232032867071572850366694077516621309375042482020874856048067478584536272250928230577770000986977159036147729243863688797858426569520215536752153408979949113516595286845431432167980310386228062674895005789446771088319204877447894102734496066179117760698580843666532444254437392776060011600764822737842270398158230184088306297944676054256243289951744439234718706790497031338678537190087456506363422056452215223536595207973889734647404213359323394966511340221130141594870911700001369377247752916549418713716509110998705618860115974330031618282488134169434451976740248750386674877895277515957789349202956731754402500146507398023544084252431936334663498137623344327790918219918522903312562184639551159889210893455904336154568068224082472448584924549692133098508085589246813979616059788904413970512624601247606299307876661312454822685872488833431515522110401075606427858670231026177014852004249945314608838637594031487708196568687129961947990944973323381845659564543402805304030550592853195560208839325116946048183757438577894047953978296803196121448788661707786452149808552487155257764632425751763574869118341923885995185550694881089355773502578558012877158445140128402699230118277344218903044959275383015576924142149507510908947726050709967329887845019189825476330126734557909849279043317447662487231456597816434079318791600554869418143985876217648348798975271904435332224090175966977398280042350287579270075937782030560433049574529237569845131947981677891523272574391231342676310708553301228704323712554879194767872306924294337118639975136668556778822488995215938160133361021672945000484478117565364354496383457434033744114640049175394280068675898452838893150680457210723007492528386441244165684188464540692636064920364897123706126295369660570184035299174731577030253480600183197847318470694901274240704626319592201445379244180045489459147252537177971265018629106586126562135520959604299275964810761389785905161196381284827219249763249185542184336834580134290866284581864821394746212932640232360064693947147460941250861523474517271528955386615099009365989007368156592953346881031477616261550263142480814619222458915914073863596097571614155215973502059053320117922441108813138223856096533511774155300047554318336672106363713898440452095965110245044262603651390210007040992603770150710817317829685172708544322419044010056650110630284189168599294030877062613659330289474062931787308745870827795345605920684395493770361071534127386322421300649466766309784922523759982807563360012470238198088170169160955725065581325405797307740172840350628439966155648144741854096152601864402882654090841772511015973140139679481441859182974854105521533743043616950194441253118893155129570829363875639753708652437539547186762159075653178870271637520683537177456982903544019436003343577876554295254714649597321557759938334629083624718457439060738610438706624073423222385155357398053658252036329904473915634401087222294333666033993416888591690993408839232555561189325821805204813747816229576433192166530448064708182282057414277022446736502043974188473548803390437190096434463625375646857438520470748061896077496514371146306480212803379454514844356524541763259831383251690039712376204647190460812868235298273847549023558168442768310225813364606080634095913422587135152897859755777101827143074127682585842637102772186790705296221221076991469525198283389872245669420175094878136239777715181983376970710652022214213948941099104444812851534906290802231697771008947028652831060983919351039013467731812877828257299980928289126086455668801581913078611609933725928322540823172187624041192707868346147290442196507753885771026649962095031714259322339878014671316714082253333528117143135698439325843732260407043675893253952026883173182270217226083475584993554075593971382917660388707037213327936998234860545871628308116440331832861148402629596937183450389728896983936506353047139422894393348128648025364753780264650939017411841581513981271367561997062459432402800661856119724074065397484598130669387214293547027556381672142122542130565847047807877968386243718245102318071498170577788961999020468783435096220943182066685424435986951612880155657773157395162322665780620783427018987687013404714210522501475455558547766419713489006401379716812508730721487872293511838620253803192454783948747590313527844977729525140572697079349302024230836633133929640594160104433480431332305080848654281713011335042497798384418038068338653913635614227600809353007121838228080853277680900732660599668822886537540304128173937533268181080016675337863396744124951511256848534951412145717152985579886835697222908471415602968610662431361184966348127614797295499524103704352483909953943790146744784819544531452789064160901473879550265773031580748937442249994595980646013051634437706104348219002594019055546099740037920842300592314806044699249996087479201976442788287796470320891605400650002857764596226246908234352667974131520125338922897453971424786251893326325173542642128362112070797954415317342642959232770632304875403363586114807564043573103674276035508407275009636443600567836842624205190297430500473150889915067010972681488837231932202561203417232894232009433392783156651419541751823635226649971788784278792574932623752883279075501271151526007641543895798244818308085684765671163455080474190438378355968649757792288785327412035589691380678060889338583545815560412528554105864938249460249522314324622324954576959518497004512799412562927372560111183338074224715996037311364537831234408293916516025397924790100916309071888077864027468610342692698263918332328137422658302573402691618377995363720558716204809837740029031690467714483683168447063589526946968400578217115531377242534049758157615201207034262681938890853120583411268702659536641696859385589471511694924900400782207735734506619919888388389696919340330078029118811057551236502801749062853231811424489026456014983882449647065152107790954034304550868030981287778647492621320004582047174942230625347006469931750290440621585756571418877942925398721530679122952085343201045683981021153384085240171933462124415746139798112478122235860789991570474103425967020846247811924309766877453826352338324051762150509279212462621470061946460810244315441849041297838289122640760959826094100803737553183567004109330555620707402584596261375248989694715004811169627732895952802891214862846154586290909529359384440474742160462332664463963733736831992799344858194935707621119069059541707821358298623079635769216118321108633249025979046217941259580202186275285203091138486577236186807616046607048655757744247852561098187050529199134129280657427967683109430160813239650917194760975816171129517600754374108585878461667125336693152518044066915035253190519737151045075099438234099254190458137403708702373745142109198751743580324314899671647437427727564309230109865995731983881890188099161212185937763655709959819762402893697750495792760006361782774805717018535958854322033314376265035760793187127410855877364379186720520746941814797058352491574284566588217433029641685603203269090927110653752229867277106700952675370745069322552260603462303240259319877871290985043946724110180545810570847958813908366767481687449783341687209543258130648731482940814412973172118795867716701479800308704653529556470995873126844003257149189726187583968043912032637141933001408062990402092912337422912694577741900149354133108539820213171320367606952474089469453286411379150520203735238033763038803257852126735100697637726433179395378004964719093010361900168854644138612515697282727575417087149663506139137940690454002301197268647514918309352632952862673202025453073846093520019045981118431304940697077439576420198863475766174578018513182418972109636216285807183568696101491309126875965492786770817122508974109292985665905386580089540252284217197565139360331698583715544549951916644037300394772820814033025130414933262453123317903408337397039223503634344320932259195145788766568313783206931565921909089754653830927399014239365327282367919865268420375712403295625102734100403526856829619863083812902130237992275211218959959248510518931407555178632913844767323376430598380779004800519944786133095309389894385252313705499727489719469207040615116872923124959309232064233602629530017843929204089414949519585379278556091721435004144321658253199464641164104219049479674782049334824196432493962889188024267875511300003002749974412560604254291968764700193679618135135647414246820126318194887278466330284682462435971819985067739938146537627337413565936624242594291857736973940284140470504746494689958610768185346355555647723620127524552679284746920259820855140209258054761794710108935279746782794982987578476784226152967878649055077655978745811943455539524057228800927313055896853119248255567461157653042364107875906026147840265309438254324930923930722161012347093753487576960950498018328290309992809937103176420388962313665297450537832349841865548770347339605613318421120681346414183599101158360344577492027055108187696431713887146025620316925349187253649010373727952316234282963941983176180802094334314231661998411952132353276095431631802633794344481625401057130692978754657555426090082843882876026022968093057703733831713316875632539215267806244922445632031342256414892239297670359183690551316153402935717519484380952717313384868195870192036113328042901716747775638576300756788269337059587952855320173257808056304866446285425586496541716969467837170894069991160535782515379397124413892155392671296232247607597708917159131319132953700257675207587373610483154915672293890619536691265751420186608395177856131412876652227942639677454640817860895265506229472056113803550471156342437127645337819713507733290764513601246714456821360129044777660847922051467202383314976376195383928884275972995467534303240393131440512995884196117636683992994512346504881865643808091945455582565100374906466483582578667915712445458844891526562518228857350123204954525157144701455522006711167117041887328281106037021699151778382782446442876339856614228520293005403446732884655034880786804679185950901111592742389984376230755022318098307974763525803382989841158050721948286395307676523676154980610265273690753397374528183446465485231305401473823443259672658491033699736156282273747203390982068578747551303940464481527353517776005843593472992952749493857506175899391024182975372195012452088357364748395794157411051558911174935662601367696222202252359642683857887106218862109920434669505512585895350452628436733883198690015636030195260402620831216722023644866168060374275207918615681357893586332781249464097432712786373232786142087921361073071314401592446846628002401980246149592957787894692529728157650941857512718762234224925573384347789896176226943229838548194322392624163378484064423999449080296517689906224486230571092564445363950089827784788014260845825007222054074192341405165039543332887555529918411457012143400943917811356260172133545174867474453381306011092670696489387043782016599001945420929230763342231375647977167737816321048873073033818614716692594056878410434250078553632857028448951724108131886493109802521418528632695045402055025519278520507513452320054521199209730144578376703103547857519565790348625745618470659392962382182625087645386630726256813829692335701027080223555169586393941732938671996260563533680279669710663891468666127622933170443183865521129783095605744349325541559885527891001446314139849560741766700412136755698000224928228141882313346249870456638059350043416690071195190194673026797381204972669108882497259178053789034676758685220934523900686214573322353291240818327849765102743168507133784862841519368935693621229051286180180130321695663205003960686349714810831391349032041027392743583759070767364575040083638354512449167961659726377435616160924943993087292814609017982539030924527559553806639534516601494362697945346069199301767044050116923062336653797940909638714976139930651906867529056362448756013882809535813374535425881944472009403545080446009777752164491934995090023578028845646993546260191992557925079032767356785945666945539901000502755049778326215761863643514527880913521772555747009058483388945628644388658297931557437385178244993749721498819870887770463073952733902791656784878585431296140973949814554025845319166745274044417348786452106058760325690652258160062167188163049936489474142691589581178181581087517048751111444764162714054228468488473642976832615901168405618287149122532601037127451140231828386178202883387690585894661905579360205611539556814033745073131947416785605480143673129769482669456161221806862733300712992239508533353210580929045036508109227598958786238239621962206696904980107885604334003665334984421330248365748772464019993016165098704614250929186515349146854661357268037753901241470351125393501197826633461591656497800508111011946672433564213772921865545541363560036628885664170118224113940225277923621948171815518191682534187562741500865000361030441868595571286920596207190110380431039947669653189817000971542712772949885551684671867212842027150395118336902609977702700684272364482241235695639747181018746301329125028317304098813275948347831829313202580888467913024106814465830408268212346083112695804626137152888395161854219960565056411627849342517174892032043028057630073222783273291378482548464128844573423474439696928947912393652432906687831538849697081847445306891731213188282459702242074063390394332693235231888554720821309976204257167558010639592696872839422430339445778799413620450319030592598704597281741509716502797942042205563285339786049230750864962767042941278317403147853144133096860581203969671155371719868624560947295830142862617473171902990801349189525011874694830752647815242096940077940062145896442155988307829580334387300067351587247117580338216095174487898414698006662303029842070963781852354760689897450139573371725693109257696669195382434530839973295441023430801584851888063916521973092880810716340225475238595876309249074104665009955624614558801248659796091614411769347928232049171563969034693207697455875487244815489811814439637553115524993404728777002288781574209207009568637796204683473849547819481934222132765012799098127380652474013036172162830375200335668736002756108986188775974663448141311339763124489020886527905442191390042444846325911239773721130777645278696583915662103659309560149535385641927137350442772968484677358963257714512281827927980249610802147420130408588393583488530430073523912498524727721344077532575897660898074001138074057963123588312201565864630636956310689355191925923205856449139309961551443272991615391505909733109768897492862087753433190325989531063023426568651740610005916446905203670592216949965344852883921857621808416256707735248317005525091517140334364101549187832254859170002133616216981957547576368486763816630545194278280969016109701410360447693817915101024417253914584197357014437413204373393453894265679939954823182095277123773701819616095674540577558082236388218629090317332086159181479257873590008399175468550160917428169893201442587845182580054567707051459467104860293459300704730034830359328408931443007667670716719663550679518156106419526559543479911670642668322044961535847226886920506713558917040806969586036308720401100863384529826471962244886778851859749105362403345789132564322304319277303917613600437468458346186597460820385237544373105567903444702310410307510358912404494607607256595077491497385978868597699873406065970414099599585307923428211285318959406316248059873379820156454921501164189748932723456928803121701843875898190072503393508433058643560541069141564132493841094003116941627069635222121895566374416603660998966118339868615906695349199711079130207933953521883468916479856537815708239425372127288171754809314218881539443609049694975888839509253305153686038307125664350459542746892306372143080087553787046787659548667518357545227266381259508351981807850530074432070974997937859099885131226183829652577104351532391984660699707399891147575226101420309075395443507155927212632703961681518385988557270900726757757524790771232152232336498554348499570133012544112321000857131849006001226701325154851943265199314198409760258194323254080623801502589647056188158648028245517045984321433613365721706935228727619118725502847563151398007638627399043428267712172885399026330250737260354744911644501297780958479193201348348046777487198837230145858425599959984249301775454980125350953457634940703871159710856341974404269127949675201048836386471080538642228906085840610340899192958554723150733701382451415850608367676467299950912037314435302828740223565809886994212543220994994971694739500366421506714323538630402214896418221328004486038148142915475112931572495133142363062639871493996954612862213034892644479948512766947482583365698781048128591969397013691867558683111281478555528914989707778595581740354067165081720627928231404151448993083814252663980847868591509550710272596141955332890107313817733272799024089365579618392752802344060637439511905349828275036461102481604118567332620671183999564226333669271739750070316969071014375010023112982050897973163806076403628964473752352993536132096213883213368072984965245027680725753353069406817710895972859490362340171194354023493435006194828775107537132968349942898022232996421986570776878928074433694194192046878618407054839759904898227524233451175992150409857455681030573923884856081091883922504521785476914828857558488634937263344134703155947880098271249707994932603806422888241708792894573979404382227048819669231620128365434062332279369822132316900392355936052538199823946081672625120402117431784050584491520464428298210716038184776926710080334825473454900755966790444567713820154456204966547233583323392630072880033275707572509848051004034721680118108356936612698614809946523116265336094325382130442621096306255672649491423010757264605991218222844162379594135188717343703267476479318629989185975782660649347540417838171348223003030453820564458716854588218985723704992387043023002886241294638718504957057814624914996962325777536758474870055886564194016516021393773865501028042827131473478331722440804786449198856653228145970118894140195274560017505440754623860691761704203740703324834599712120989604800160953860877374716779013034081992133503921514599066134471587502101197062960680985445626122090551497076036375122589242051890488554747237773723939894437952112918220600225615996657867122517937286683052320936742514840660895882571109558657780003001607668851787986707019127687174337438286789275718755129215589529039331527851456089080563531584683233294769125279649274531910643766133969952305191665769680634402022532711629614718553435239292915337901254698757998813125671832527897412196499662625542478037371377412193297504117460868174622485837357616632583922089915355077945687263156064744852620585904070112672804814691743146679294096594190502822519563936573083003449124032211491699013647248821955787178945463236024264530260917584374116308329204056913620758193739564956170327971425052045403922105868094143057039234737942200617500837044939382672661542621646091516544189222104075904853087654633822457191426888408585099659045505587007146721563501388120132946725374255272961704016780431576477191996090447002659045210343135679185004273956915884435302067209300190403819076810342955187880621979745145290043243749081257434984070876015892756884976914820838123848015644563029620770646421418763985871942756063889687418863152504418071759050581180693246370899039073039380601732423474280846327361480768835882397282673145509715512725290800850027406446335129123904829097660458623244406199375617594475140508966857072956832632554624106044997751229359077366550325656928028617784354616662418568298584575813644943262022066512274230485072880965673753562184361910301965220596312303908128181036864901002942313025122330346446510070701957780512795631019220566984662867409586659835401721099738085174453291628017184129520160590183864178192793705893075594594909465600593570425542276563099733945884077869623249174001869845008839053208331332233825476879332525207667986032525941172598109034935692303751129443018096773644337254649190894426852983927782043271048177805911796110394189986534039823990410377564359225276732821805881696528034493210491523724978235120912199262871049375369521282477624060284665131215533789855122742851619233457588863908991134419720175973625402651383348795340253991190331465250769835665511481135854910113269429015949502234871538535099104719058093196598796005038143640003781536009649286997371236830432041897440053835066334454388597672768573088573176211734070744784433506130058286552198108262371201104475621252928432160279202713776623787366726319124294206194834455343955816809926476937480748607489771784883986768514128697969051317636009897635001759180624349581767680274744796575971498934744210507439233210825073417680764557688922127500195790084206915079626317490519275138262217580434089909494660988159059899948190152390943708770213739845388418584645942297792833873614666911917716957243976775523761256996561339206995292947360854848013135174976707396801550812356090708486041375457502265159947649412019573126982437025188251368507970922452464784986253986147148701963444516979831063694990586755428238061109046928706897752132564225464360224574969454894927825811998950027916344749151713369099026778156681568902253498092716287906870497832185743080422766893087087369020156664008210219680039770020769175188437824813367535953925728122383394175072774883772606234993766818352404925893433677118234751747258864055880139307803112955444425106925907618176642712603176467423911466827252756199466800819973202330724585560072807386531409263962692448557341839217651641633564534901523440681343818966691570678724022519512495895208268771097545391733664881741982066557727401998301445422003907875882316516955590212410742731796891172458747036177794633330532845757789098064272797345458060534124946001025345803161922102872419492419605955167897634672728487625584240325744356929459150415201619186451837337215684567954759232932766277834471674664187356680017989564102480265178113317269750425269658229662464980859499256868933892545368889754063956318357441180142714522522612233689080810869942123371931917492145863066335167428358180709168156248750722697657227691719486462342585892532017345164792070798192839918817036800600315625977022818949457008189443529322044569082560372166554717462804344960880573508483411830533000601211521699877817559119646664305188141904367512435212397353087158426338851164976772454765224739370560396941287052678569848849379909678294603936146003787209829827585300388672928276284620027346160664361940742095209928839819366125199413183309930801515636797808400940544642029918126840556982499693277833246336128761930754490638315010590362791580591173558237839150021505751831726916220304525201297246258350931584230438862571678069771088846702885338370559832347585181603956429954512591169325793426317930345603833363870830241573186160230020025961398015591186030184348465748749533445744536450739644277138183057900029908927303865577013229512343956724256728004158757930892694094618080017595284256438460687042097363943677007147711242039539429464397539097474837229440931619122565243210680581372692675697656993248062132494124798754237666027921533280801120037454827901227974000045138752123325562823466881542799530648338801939013066254474787563498597086063171415900148338848098966481474738907675863014480959299904893319255002169705474318785244635913063306213742928589319117802656927407001043171727797410146340484079475937652278612984069308410668877401754844208192559256766726702347740019778971190521858191209587895135427729211587424007488464452647156939857266900766821256302489598686727686630163134943252022350446950708404498212401830211443740295105135122513678115254825310759340624235723977569727149393392437355001433756967179246516306282407522253451361218108115066612782045355097604771128691555087939424300227232224666496800350301750579276681866459716449462818932730153884910085332893236428648474911108898330211459189739654968483937675176357504494290346315924151099209567632218822601607555595870331626042616973265308260213867639530354456965019809738420910481465530893499061361336352739999175202250553979552982651331211888160071066976897054262791293400640789072024414743630742873815912085538514455422618468394989620714874892673972248856972501410731885898927197530795234288209996992989394648398080711304917574885761659639053363186162507051226188558531997049436689790062029621364367908577408415768672279120507563771307515728234628557882265735702130195595214496976866960609128588323481652182642216527111742876627658387944311636255422918699582416840483566673085458615581716755732681771327871902880153172428677800891498200141309939441638357883488883474119918105993392566833192867224858662579675707236931438181250036090387536427556232286133239486652261045931204982852128805107260960870231120274925045511325342294850403719704081236780127959273502245464808416345081900216610519757205950190701674976478213116745256149407912001932603578889989824692315655158372828189479015750454649457772472048727067269082960809439444351262253464477198297265366223383813945513206693458212837516507736808311174154761135724583719070956313715670632255886919895433857353510117250129532386972759706296145914782544720595209878666197298365063062138689661857638410754328174387926957460399379687375401659420838225257827374376488953619931745806006500752328198587693483570586487814818180578007632059723274219211874014404257121961283053667453747560217577973591043909611100705314964867735647186535870316348331268971830389055584821944842573963389460783376639836935575775905680985394152773012924460390623905671642218692698437958693061317549496860804816063344874255672606493648809115303225688821361101059844021452681572568382152196810110950868243116079353059552711639620857800045972957963779614590716007331294700608024435329293945197971026881887112132488560969700937582302764147585246231646980099968508732042284667999266793787561952520982945273370850248378236543088828961413615675118648298685258270991436006949378541015363971212256235141888848046980444994550688360955891455100452296007839361327258904034758932073323043797024758860879634164982305975158772641304488016647957626106310751010816590869948723553992225644256821441163737671983989624902520250553541281880919089604497082371219270149703165083904203453880949284632321631062280386542135082521841925462499819073442062906957051106961650742311376096772753936310283807757864508074276268632207061510155754816153408739545215206170049490764155051622150626847638568539762746825678370428404162524457302506397323673331159797226631499662723424933957222302636932696598147525241698769401243533855132771958189415452190731766986553180334362926814457249669606940539020401249717029164137081594118886789491649837270070007104937571794966309419614367574393108057652228566923933121839467000500286750086640354184834869283432755893693230662262051626622694723012799302346780360835498038128125053938549524309274129319563512973675043251223015939949036966721170184099128394484518705399507811465416036529515165387886674035504595372332457461932840265952635071741827915557747551114834078876279408219270820593292679827830566477145858210131161609311699385901349475001668235015156350357741497018619522607956614340565018292976316315051279354283944508015809657175405781541891165842978984470312239797394284629281385445253959835936619909026652727333007343706197489534723283345586873513283468004698442259483521349990654413541740580468591890126107557744509085087824404299325873139590967751154563567170128912997749797213523687618811719201982568416424772915971193621048941186495878544153098462624811903253944746467064749925571185376574906820327086843936723957732047312801194398247796711909000689017732982726766912494814164337782218111273839906318027242940658915319276053997624420107785795155640519288459960005201019323311227325800193979800501819649945770072188828798292672943092914274249437414692763068635992249277328187980731110214501920495179206318690847829707288670375837680315895343919564654407069191202197700263219698313330624853010551316391664562442213655953339257748531482354888555208107032191423627736249197691476515403061457691677792653329869074878910485073680901407337625037461598262415508448256389533701256131219039788908981025912306406439137119888833803103302911269218262197183188934829762429813354699978348722779038814807570932591121993752035698387328920907847411078910725669823394397328192601027658708698339786686395545609118839305218374132945542552383100972042502672624032452968409312303796871526351389479633054727533878891408248680403170191303183040637213932164167456160325020979211778999386397181737364004476928469358525028276031911487228919394330150853640918835034434319459824000857032999356043315221283053174008479857590973309090435599915068565769412507643118858564900357133734781719370386660499403869534299004367487113717269155123551347078138964318213170217344418553018291497632030919414340809328897370850222479112772281383874408899028508947416014077419354679643659445004451080547446213402720895786949738673670166425058678528888140180304407601879357937241660030297737804852407435175198016055914480495925087706912536016901019110637782170714131452239733987939113977984147927801128448719882159305785725887869218173799316823480209257734066705200164648230333849250149587525446886150097609614805568054183890967298413819197545400727367044809768749168349410304150772369895385484902781084298695312591140558276218596518283272341185330990043286880407219422748872670525043507552625145648374167638228144346501812277613099391076405701753529809560134812478384033113481507310555868269716432743615089209454916049039659308970433895249666384780875966034398640156271212360862801032442853255943862306048299561427620337238141130333022913875551306561195592016489209897658305412385230808063782327778456486189238891356946002568377853878876636867156659703649614071642678216023802020713427515377240064549979151678272908587683648540531725562009336000880199937465850495412200808635549351578109841974432090168061898174863771816448683846321573982011022271624825904048454591818087327551517505088286792579263913140251378382387219268791068522206080929597058573035066879036283191872765187122323218249180516805235856761291791566729310517148383847138874580862150137220952486524003102519529011031351424698552683528175348027790849286470528677688411717072043255243778349068147801166569518916845696110281298626954320489260217125676679883763056608112844682397432906367421294808974863809116810093417853703390076706434162443207293149294045247491057038001542818806974665200812378887197081476350082374416311022048503287590662493967365124608925195407801945722012804678472211088405906854683434555188842556609479513343408022695032201255027027092081581567435774265368336440461657328649774958521776088029065728925182024261049929227560865682698906163130455109415858335163226459263244438719807291733055056810477972425830117603510762389679090815040436066361179667617415361411859033136757773636764112300916016466613175770826353829051681575280424056392459733547801740526133472813561187857269854840131473757732944333335481523992817740266408858832154247835931422514950411618116752616865135848213781881771110870330261677948419840181434041941788845034459139744969797846737298316333685147185511793181056517780338300788257306295817764907516794596217865622745693010139366729452927568455654798644641743265152670874016820880249564142576199728534327554894830604848369723247556480775349699844314775076628836591839656419106770227776495193079176164575413106953409591644538040080923148636617829596278651347428064218403649629142040246350817489867504332062594110209065345193794304194996167750851843849205642468719648273030033590683712493876898782073542892460404897570757931472606436931719158716231215781112344619121848449019431318204046298090493720999051018460857806194785924436754348570549964067847572718038460186430611951956238293030963909730972724333069483481892504515910715872416057309923942132021330965033512677023319632674253332689655534719076768223223266664188825466719721554125575069073742519400490532252602291447795736927207435630126001743329858580917177374884141060409093301764276780077353834115485273889435882863292771806526284180497665467799823364649158787372312324097827616597737206014188821735588090998112889380922384519130413103454161062146432526740130371312207717249091568533574342855402651070648116813307889672955216994150698144892770456631978205840724750771655611246760931961906495349376643523466632680621332148944409800260844567436679043614669753502974953287297614850989383129789725018580220701553605412165538781670505247182586833587727701167574534250558537682281497983660953156604289421008716746060325590992760180397076681105323809481632248792514377628113305127988672932886738339038040040930943843708179571095894365231565714813487731462679660291120068255658227173204512207769559442173482406910016700885924449451000840593679819469458529233449984082240391348974480010349015734584451846333233378431552715161827807087492105050795283476697127409634773661426846539992340157719174135256727145737544670049515955900106455014368442272321960679089474406374138331936986011071575974246749585166542674734582998327064454760442453744965947424321996172630359617074066947838763890787933059972197435526451266859170951100212056842974640529495487294246445927286456076524349033674945336907798416587234622431670749340974164556901950824514108788201596958470106088737603482231090230621340212802703106669280222836291600108716483089793558568959657520645437793602897755477905008004769494088516107842088074073227603055309493089738502401443728199049512283689719516364514273703959538465095665939223042794336864426162226856558837377164034265924483953549646582331760710364951257982834856492212875746639808222346250625188783636785556265806697937571167467377228104909053705492839624979536171753739164525004489313106928223494639142848145491719480205672118437757456934782142197680442987532697835292328748833103925124897796001502360763773786508082348053817004242227059713843612506927067023583941083241512366418150257867522365308145715252542087129670683274587243486659131869799008917351174079895988059528990833196265569363997537488150847254914453699233297195924596927248867427580312270645802127313509467490694495743720978223750147048959289906994202028541464092394995820388079634619180376114533921472594383712641089418352647690852435982403909670561756164680054264108242871832833013037510003119837323436228236677911237514738763947310816580017216908907282343928560646759634737621888520692359381420182060629223111681521267569845885933187853739437443059172872794250281982313331217870182792014859880316387746850780251503246351495122211153782257514838369472245174230927097681805970388915642198251838456144181717030703732700703671499004541788911903590302718936693641590573913548915463611960831654063468880069943863839710109038148092364587957104015346456160122961402269533100518915608646138179517688260621169686786505120872406698020012756633166827319950699508088448499907498129668057199738928277829128202285677884925395382055820242962011724697909351330927864281540318500433219809024565121179270753017460955074347774641587753229617246685230027696191176171826224069806080558064407746473982488943041849193196847176286795358566790244649829246433625624848932891805546956988912021493237308756547111767349285222088578536873301456065708629387063864813062938252176658632330907582836068759453702467581102184327139723057624858709483694808601434985096361406034075395697488658489757240862939193863355086091631532035881555714183471831073479126124560443782107640960634625683310493178528685871833284914396678466131875579677226696684037007365319189967641599904338269199119288490794873882272947473972636925858264930617480910396896631129499358385572783816444510455396611833252432256300414446563200937195140228770157164348557236034060167433387548183011113051293902399460496070300194066139597588824322676368494844040875014175645567112332387674928324001705883074693849694444649972888152393011080823278906500215972011364253934164696824723230037447228970409087279330929116677361858845719203018991706526659059807651091954775242747589350215906859866698806666971617544250732990672532157993256066721555762043311988129305177667940491173612080599235585758891459490191307741222439031364302773718851865103782787369969330421907310851557272238583051221309602843769697055399842803752753827753533416138429681130688130666837114716853698179194584158029244416621232763518372431133286768212043003056266346499678566228091892485280467833872035386318711941944691199519801477421040184048958190850759789368436529503259988850164296498389859855813917265801645248951829930282528386624678421525234949909638580089536884563549062607767664337817234733447040220966772746564905591651909277558805503317358160629235349472530657542778389756467974230580239288030591229040871427023241659549612147124910209572191970447559044448899857258181583736489409185541155941846925223052796640724426814627701007534682003405690804602183095708807688216663640264863157804382348154725937322034596960954379944588629779893556745467222107704634833638679719558145788195598351505835185050829954070471301320202439289305612864438741649623643154922494743213483843788723971069348325536630685130643395003770621503761725034181665677907538226024863942078683891148726346081707233972573031775656711660699822165672287210045045625534535759933559867124645030922746837861366066870669376153334265973105013861070774643008300664554879282199121310935398350257119834950292178223705347081254217146401726830615621745285203210560879369364221895182223283003975241567544646565364558033720412784585639579573837329141137083863606936068624777722828528066014422908939890910983321762064171555115061009052058647722743386462668028864757352963281893564185145832505945350101479685843031222361416675929662244335701637246426170630623159787653613923728143480718166292907488284414907091844638148201334766259028825993160905188669727171603640781531628515218220042312087135796263927914519692239624905217598471700916164703124612516644309098440036560922918901001579751756372216552996980852686491196830018987515153176155956620253596732993017395349099883912999165616481615021236051002915051915077711360372786578086903123379785858939465813634527834089360122183228304334896634906559346645426090991604405708784214510577836381511172738376378561013001054681497822541221912834520790970606247001883669526508284270854111457397927125594171751969859036279462534223718796251576916366058890603818971075417467373448898020670988645372248330257319013629513325575205138529719194721869502812385956517826672439574927104937185689909162953716662352930146688798598185582452056711366727082127001663667301196523570873399382884329824993364730640837696703016382417712014793673042094648541939468032621713698617651563680976366243857592815363107421604151072419349828434691843453418312241559962775923895521532704743623652929294429856293290617831109772860710762104797843189725958557701557833192190049648123114554201201505210474849575421037578666430300131403427193329947469190914897656955109936314058156856448602324025610015213428521412649121107109597454619508594522967035871484216000227298330787346146769779818492772235699780741027245314746126934585651108645824223533964912967277883964240328849491101003338330102589214820767437238699403226536655838596600457318319410317151860430457664304014363639784867012351483841912917111609730256476924762068654430707382007292309898663195455741282458846637813033988373075077343582354233325927874785402975405857247478921717139545058084191585781871249366447995781518153896671443022344961761335197662886100475044825800849943758968173797203008771444734884192035844639175189090466062562315283366289496639742844833925817123665477753591941151566091621935624408610781586454176696307053845082479595506577003347415889651096420498468019912065509504040982723643679934361852566414499674084098373347296067659242673496316011460394430782791042722326222590486919213276660845061761888460111097126902790346837148002306115238336646137014058211553975184608035326475708229626011766911174620730581144703928446417273267997600694648349297778316546999612472220445594786464512063703865692864732869348906066539508186604458835325483135588342471278699640094180614833526752680365027769109671434246954497653466263719248198783694328042185342677287474156882604717241066247636051138991705589094992062672879140552717595416549279643773178261315783028367895054939413586576842183963800039651330426457203481560054112361175395744993202818816830504267658194722425080548404188059127309521543657998515892083280771369870925117168394673936490338776650633271354314240282106346443928758146918724923103978026082896656939988700518272687552355450621472853868714478513381681086175808628727612730933116122470193202571009142136231580469796282766364556484541004669935911655369711212038090968912548660101907294813792511476210027874838574333171521003790112553254766218608653710407159992110189811038926518795671580004395908863200900388245939026505760313532680719972055974179733669954286040289098807578228080337008260626548257822476218079088219679865627910181990491188659980824980368529315398100564136576764320100331863584504834515364761554359741543283191523607315381360664174015714687054385655861440550189525000023652935487209991717176788972577564309703012644479616024667207125028649495927593237545638381727658196321207192531163956598765157591470258457896525180866531997038190419552054080642552111805409544869730680707442323096133052432088462729211254997188009060468137525778686235280383186587616261921956531831051012849628929840359760947999689047432228884731068707967290147332445898432649281853111951765539441542711553982859441753642287861831461630509568009507651923911327864795583966462437861739952338597198856346500710359960624483205293518222484275615971652663193624998112433548716149839009085871525859921061007768763328558592912287173063128413031579393028525438774716932419132164154886714287130396668681129686934746095830629994531337744023594275752593582704613385770015780248933747540240620335558677474027440172118627022814578648919077314955738604320575051912333056938914439387272122360173769422884326240884396409553102315173627837383648530712472503396117320235349403483500692974312142932405517738969613704978479994990038924448958272425828747099496526971453703428873164492127166192113381426010650776719582564656387185737095678993913309975079937671579979502994231872211791688619123310107686177986336167392777693067500861752471900490529943313578010299347115437413179349139292852740384235757928876882448302690179445386220696684105338256337567693359228499357794415599557991689015629592202922395886458603671298838916156817142256437859389241107769849611444830400392981155258446938910697263861826032648711463189102055009200016214986177873674628559675892175393918451664109364704159569311958858450090349735949733904230807230212554605699821188983087748705800008856526430363908223566304145073480987564295596676479880721469898146835413365838519885053748516422292929228405191414369696218316889994558553410602831362018487234964719988533344819834276908841305882033177699603754169875731799139735418230347541439940212386302042405596525825332570740553579932383375657992082979685460187796689062085231225815953375757300077713689330659065072204055866683039024997738896367841128996465330508731678137490750366419203825960228882286007231855863439644655727292167780356072216992341757903359670971968028254221730392921441090361463972425298592276441149839408499550357640420658083266650676977374621829353107783948167259353347148941305024987398567014370683198221071198180001340312751040481598124597547738803098478126545159324909443500707797586293989450015263375566584898640825539856460552253556757436600880214818549022067841122251540241059269515545589141689562962651902847389474420918060108588117156172984229413188845752833878622407999649343788742847246913184073732341239393136483092698932188391258108304377862192220476235213392128764549102595563622388782302343803478274503451871337903392375063894202764404557908790939654481865713075351844169633836224832425620133943002254388249519444017625876966704017237453838337464745729685809145846199658311754418336144864775556278584683794843575472846359922782613608710418317881065677537471930787991453111014371918428873379816663727363705117672664397350493373522843303959747646870594501465264943718131649180210159305534814026357658510042721225062444699145044129191945877946268257295225574669398679396598010644685784722787905211591229533296276612766031740077552607500306772427222385272725707689055409829568815149790042025291880089442393095252459902241312710637506944881609973165880556273156579144884270918893782026180299003724560005516537703371734147229343606305121782667837426040319402742337655270514559720115649369852795952605613312287407199366382250669306130855249801682317922451460928255817071558753501455908883633072528032108195099016971184186567280673454792767558563890787107660589581482046984298648132953236049582429647077246998202854381440930482360655134505487765098095394958659008272181622194315593586893392322111473246173622242970898946894628116471865254043203533694014296106726693616861930010342518843990928385823795367606214427565486112436293234984922258005421382234367289064367469204893460403864546005342934015475343828427565932377217893749759478480787196789228476634423881570264061744141468546118442782475096153568274830120541420231319573488833940173718108064773489086028338689310370664235737623614863660726769877784109865549563647813580541835125909673737706772593120877702797034446329405346476471529307503428342278698310775303119038764457232865835052700140580386763868778908801564814937366858422099315036688884182719269078833527458657969878581605718831001487347079026742711651475563769128181720285051946434620077757219734912945467628017807313998305426269038982862659191781005642073812711531312933473005629294553581008450369211962736283795842234075391752595059793929383143417117276649857894739643086557413842406493038868636937604376097240763247539217093813462922595733146825526655759215905962988626949629247657909196897144891691188454102311559168913344498913470008190239132478171525348014379611415909052285524122210364836457065762438681864401152626833350457769030929904493202768662833922106175010540041823340826573961548239781199816703790722841334311140656285105203229639062287858616489669239713955760865812457882001966452121871942559318749307987456016458932203360615414924483622166260186768138782342632903041996472341685222521964630626232167285077344762544479205506662581675764212604610989050194685273395341824642447695474131382954150628217785781813616412950833106201743735357213929062305223464111558252202397908741066311948508913359661729703570526681745366430548857684034437193574390158106862563095279518045929060757979917098592877887674134990894923107065962343331854591226567485797469569869277054250545288117773885993730971452677078643087749415319723380765491184110151730653196558199979980155504066444957713350017387577781730610052945803262941686238768706032613944638250367092082359542291820793225172869908957295527709785683016076290025252719475617358762996562643544909696289841341126565155784153179595710132262165432849372249373525201927197160136487995470946178966294595496908652789960774328867681308389005473574135655103930581551561126417997531037581539127258906897233221805422580569483328375336078571384167148945252177227963435539799840944702804885311500498760873851440816400187253368257276185813190161031868541717841735840760596906161865867606309552141159928282257729281588110321692295769309968876783460765272359785500874906756680176874081250569490426474776636131492159166682990723790325280463447921808084791001311343153792933821911171118484926034218974378407953326231281248871776184207850311814942531567736835615430592506995570342986896683272369386998700103075938858252460629984886649447430814603177504816662800853035426002403039102046161790543265592009022783870588596561243728515414913561927279692311025084832235939438776449126476800152172117327693759623539130835772211450116371217398583426731349340823012955104673340454299145671050278743371788476087956408038607422478898594110199132239740622999845844803252651074244083454773262901437467362124179957179672547690929084213350642623240379812066433010441783340370897361485564683701227275213152506844662800430577868057426722747116873204553773452577775195010261883069129130910097762501833433924448421873510031417865741042496478322170667906138030523016139156619950632192370124584448103444103522329668466281773378604196013351787715178902833984265416161122521952573483416016639033860933024011497724214106058972176883233566715299163580059731731234912303321586776492788708537473479224232603883271762626258441915523208895233691476221030282756478120498446466637084315120600900854991254042446981612182061840982413026811127973298133235837285444303764684590021448050343561366397481856911309222176801963410311127996002231314683029446177363535956900983842926333177952872366949510350194492355163132326493329256434310641999072140209937536978392953655445644405307524053917032435035313950412537215695583395602465381594714475973206968596468259001400335071476800988993690779927254252836860307459028497198860460895953156210103017355530644730636605725936219391893795466867602063085945943433181792216301505077947003325362263417261884373185985733800233231062244011296038124788841258829601650552698129648092456805188030859788586025980439762430056594689127013681529464288234317295264140929193632298331045306345040927152544266022019891621306530510000098140702868260322378313286827681816837696831572251352991959733639467679891378919409387634000924022555193957579149999466853177866203880572172571776690987554064982989177957512014387999719559683348602687488211661014112885728170180955925900185465320939133426449696766063381224843289133387189746508881897784563442827854682835170957284222977784860524337566174228578245385677062557550531355924346774738069912802257140074736690472402069541703120788460906064560098127646655982971705563691268567920810829560558439765871659013944906781069232783517286712344962797166250902161184681019826212106952336602567355398356281909869645740459779075114113187300383459123813692166149419208019993493804707860984420151463362341124416486060658391291507387683760423331600504706698506297661378314405690777554713152847563331128861990525304179791669773866604069371828111033971894263215080960543294717103405695840213005190548223027887860020333901983334136957817598380036642955224848143953393623846932844004254444337646206722147736680867628990237143526889925903818553387742224262827851774036511581680300203104871430878425965425930543263161848514907935782319654145992502906684676219389288670878877105070265136843198396971161534563680485713766232685069708913458166033100290667714663318377489086552641723062783608080441936422115606341115180443574626910139309426425908897940209934519215959659293568158770905753912372349438954588603933466853038887220997414164353840658676988680443314998470596978445954876809227273334046420665592623689886578787635198332317445731691258173195599472381368594914116949643952198523217525958190680401136010372487274900802113489394733895952922035289858084499213820232501440386101114009348285340188813987565554901784512593016427554443852924879853391139324257644157447033607575519420651722104023359542143641943333804672054178073490826085506956900812511336802548969791425254738361261435578107862279590245563037044558684637269774161581588972161506960735755899949862047587778701577532726576326910188013676462715110409600038273652940465055204530853677128505198034256843839032402989610647277833612088153248934610033166960773237595750637688444622592909452026074778966399491717562400967412433060414033280045371799817697636954838561674114029042573550048696999854785001065292365720286537872689078061811744263468530160866382988009075430872847962725638293390208620012089550032570353707699304731155948003403003348118336032049299027031411754126669742069826289571087132444798800593922322631840832954733090881725089917746416817764911894349100026973255905922748212539207505610437308512217249749828972655991987524313470641918681813712945006494965779648003727246009211599685818065342725367973894133932997013025643232024166067810190177590060329520898081817609942747623770493279501640987656532348335837108843324252978549284380465930330772159192978303084029866027981091549469645613305306308649377829193371499185275681109956589705598015662222604598966553483382328888579381002570945743231686447603329329203949502253934087369586985906839731466573941246498753981666483011340298846111395148983062183392542271061701792779114024464952453430716673242902702164466428270607927584037687639887825906917669501051794893677253677866814286286180440443507221949427859955306897348625444828876289898473301175156327862898195641449225719890589476479909290403260501319239627591828096691460766689447894332509779319106900841976701269258304733125394131649601298116739461202145704830347372305616338504136159446996709929854642531416652027450252629541143155539340315071956218106200390957428911180957333202575103049437324473702814417259228145744580922421889362163244235030459893068462012083714628471503303545970430085062229872470452505478887043213771212342677406559046717769256982445397242058315826006197028787963221321634808774461551133678282965705869481272491705512857517187426704645548142302430025400374159989705566385565947533801723707959459002583869059479195796048949696498972218407627177922369661847162695304059529238088025591701610557529885372680599829159883453505465458392916275250091082000518209786342354449483594138147054826647182476833313738752609555826382834883158411637437462729392056636077975605335051721178923115153336162097441442543029733215169492228840899517870842277484088007320007560763829388600957281750611170232643678533172664722611772616528508343315713297212438537196151665807699725483935297262854025400400877159457934089308835469589211292625988592785897451058299283738696570308383926200600029767114190296384349888083391209196874716072816633474742893058957223630447058122419562431653958855860587677402644152144320305937633287318221820438429117654093020639023313300124713771668671151576188512606244310859548861697937644008835120175570406393673617111302582083229741920427871402333451703702099005251489557919939837349674713443033964861939000913974707175756165205175459585461301994253445178320104400234386193456587171684753062323455210887887402590821824484137638089092771700599056277427373309759178539005237484445140986954110612869582722049675005463432071280639776785531387984221474757598826637093957169216467689820059834430951439901828244783281592394806322590803660443834580460582275996007852701421399211312008739283218861259861442351228080788534186548032261571848939708433601675180686819798935305178371210785302456795078313305053590461494104469265268945978946556060800289602499746388914815397178473496072053571815545553418144497411199928767793320839524057744822996532062148858724663681723504297980487957800564489022192105870686689171975108987889631917530557299410806438273182057896497845115700658173175087923937457478174818819844027775874826030157297392048645615203768529460309340217746651023569880343535468023938651194215949014222839387419029596724005819585493636967680788808781444090057267308026166823181981246806894712894586463589123469732141195807636398456648607573055033822933369725241022383525125103919337645814942209760262314847446279987747441025729477664872307684986939292840909227085371306953728732621150648917306437532006946710530481363433761696957502700923355943676021968899598024795711404534104161091945475452403406464230454401046349668884305973542303601204568444290029236123075451353777789260507112810298896199311728204728768489289936992089587066118097608597434210819007001493246027770524627074885279902778937097537215446515212009731133011777824467369863617761487182964857553129320825173464476269954019494454638876757974059002826130243533999920136233068546333566919302437728478512025982295929743051765344232283808255119977596894426431060025559650100540942589427790609621553536412640174350702467532257676134443265730465835820711890768588910264495516228039991541027483671599916647285280222375686299529299507680361288552203153868135528881972882799662862647460989508130165529800600816688941968870278795936983650360575689090739334351821676183372712110349221439701647371849675846368804602765232465616151283848002137573470976807982494213797045273636894567948126591100209391599495558632217656666889280028106892389283642209927470733773662629299911168896184250724799479590992386920278779675146110554594143988832096086689581226320040553402125609477212465394432972137240776481804540674434364980356628519291123862664571136743316643154648617843831925838478987546351135638026012298668057219343527304052381441964862395106469890507942522611516072582690142559208103856171992915077518642518874281908141518324845674204519137274647515794990178397357940258839833521388377359532221690927804196157087878848294381764154338745846986985772326280191264435440887994157470009612609798737736720465120619459367289354368433175113309685951814779888686649327033530824273048233709676823647181193247967388302518750170726325235253611084309573621084380123121558765278055495511870537992114160817627050464978078515617043226924651661612881126306129145314462097482732575501826531966854382764408757084993059635795942051390216349166986173018511381932307821959927549557401865383232524165350079518527598583265091233588652269646837442186738932576590856131066194682551121799641015547877609464729608086211524016036821072742163037428924721477259607241759691497530669288463391865963102644617593979849323534329439467019144564081846177532674472955657405121367688469048255005552013363682975522445275814702239077018446027231389070672824651393870092529893319248981397931191769982328039402888390619675330543377783193631181134735636630764137185418109184414194116251501427020252536015482810826588006831669539841661767749244336116408706756308135092219896565552548569657205787868679105423523167863078984586284163536777036141871124224915627713448567474976499191866114134381452064866918677006395373410087748307049862284416231483251621917891905244949057083497650173238599584523205351366764973133149997129598934244587995105431715738414804868848059726179893019194163965527975091791456486415243859113577606438346030320710181902085259171046008253186968491698266605905397285506145590728662345167779341004469025231994119078866679438934909716907242188257352240605439097854798916098919015131495117285042843259026896343516828430819393058670461620913132640888796100692825808935628719703008509851558860766192475462785089547611806388704852245191096942338700232796616591207289077757825453958866328918744999519656792525913012511567842088766722913212204652364955750849904232579305378563267966954360975279046388679212243715601974858181881260873866872639028416191239939127940747678881036611131936353214243048162946232913931388403140073885388823023331402859263218175272737215389239806859693708971695294149417294911162901123965886945770191680498253333713153737647904480792119843264981571473438040178586541195196443091977816014077604172161849712363977910094721258995559075917584616930239693490072640050736672752631534698617402537243159348989178693741156859694273670356096126688108128944435339927326952377867660032994277415112093543263135116204271886661115593134032112258827468414106887594287569117728676510382377307042932121996121556396428061218813619799387234694219076585208819828469800827823690228837645064269595981377965525201312105016465585350182565589475256892188643750036059688864344039807613729744839141875862323574257554539931793491552233792489696433747467930444076062560232846853633855598011438028109310685583054095125889735350281478172875567557282938747102622579793173670547459342736392674928758356189142162380011060612561206934281372785400097034932999721975917848277634582737667245600275131109503012443992669945879318452016356501169772763939211312166957241623325545302630606306288456437500676591008272578527546595014418989946929928684184295347959231064929028957146791230776190784989934633875225550071693084846737394743042519526114710930529725966261225427843035733311581773077403621652855869368499873279736309657455398843407163824015418328962416405367198193351372001655146919618728962969877059718707269701637683175277358830446979537267422991595962471360420091935384961858209135641843496529283999577077573372522385394916170997068092648495206847338621921127724446812340466996306740913404928619074388197720344286415364568311064228767302219400257142608459147126817039413441896609118016093398679596105082542784463042224372421122623774645668128125380731119571260055145540803425758031238485747541607293735810898913169727861757907107585614530281142922082556296954332812925039408198984679420358537259134572392995451848431121233907248299052443671589905618140998040173338351401368188839128520456675620656265190817764549429177874706950859407553646075585654195439726990757264751227613370006153785318837620312813354716137234076508100153504570712113168420007597172122083364505209433041102567982779921644485913031034370949165792998200670826175682295209415209300206924733691031157539546991992320957816851721263714083821577855555918016704683536910324318767100325135847072119358325319619569576223715736246249987108642366862611760104944986563392039579436957650915604023009751385913511528983153481440479068877586669818219609335459236052091164688426326682699084118502742104803731803232913021233667634463576689554859048774318953353560565600760514158108084086783624039577382492412238578128424234629508322444731988139945317009631371023976071457379003791003186564398800134241182661857996842790961155963488444686140123554580724850713039248396951283469947782290477961887506344843079893682060770235118427028451110290315327617384407662911416656096599817748573598105868129995503045414398113104794900249117328897938434996938048072464801908312194773681544385731929337741537275473137003509611225597030122135140045070024827152745425463660842881606077528113391794703193068318644457386516993816582967124495687614391302648682924593370718287377901769400465338925423894956782243659756538789943734118274254846418553975890974106722321545509645075182408564003036133191450413681818964903090694593670029363450347010870628288013295993336552349108909344581265949032885698043449023697115899651048310736378045946283838846529137919543205012127441234472048353525053169331958296605542693926877528527609990934026981987359708676329319731366292475793963142851368352146366570933695414954672818754047606204103134128918059646046334232449642795314465921122296803711266327370398833262127761142744643190071832869433824079555036268363599164574518058460129030910390858545230578604970375590362313004286753568911488782746082090751193841132719000257187352433258500331125701135978899092201621388912652596643640985577807431415221706862028815454844946254552444538793922007705102201541861312779271319906155711677403170616328004500965209062811802397802434223404864024104276114505025109214769499307325080180304575905348827063712928578059342287619525589181688643678617368222187820822043147140482146456205657371643252205390441862843722504963691888919750586121713647655639358730330273140450732313507556315214631869855501505699174937944988767224433869950886035069884221359732996239921182554688007863016947941003440051736167464263098445628619529935721722239773354925751731809005477319931745257596067158808032639875981777153577475610994422999964823975617946392028533647919527044182508415031428830280367446161282481580802757867938933345256682763222157608486797566386541708167901941229926119463869098040510372897844948118206680155063575205607803908576274442180079579843643794478302963087360424335194567820321793131763818633970584037127915606393492512088064491088420936673921661900444074099443508567386892550441656696078895708405558018805780406198965924554685831341904346507751144596361512169259959080369314731924672173829443513260531180614239598712576262839512152079660818071829317227442533491315720318929045248864959704568169445577520937976124186295184409471535792191865009254976421030604977937341485328536896781911085194627546744157397865050011308359526544426623029328999896166563452101069380186823010499231351279843955281934255283204765117687929423539707088811022540638971548775452776053440546268384306302098610176158027641698923692926010210238453285919111836712197938849639116167045365881084717972809044413004505587103847905375409137402560011729230140289719335684053745382978879184459317426529762071278710312598300207085055040564988405372474767909222981997054651130638878799505915484764287499284099201150992926026430340242062973446991497711399040263708860336588643177406000993435518272245680653564185424773081905891002785656185378298972337286350333690897186307524578419913281625055858943857207006395198152221749848293360046812535060874766859717279996054678229400409956908801402177526904010770441261851254590980381799873238721117366482179118539324581477856857886032986999760933262700018339754494615271074843398732563731345433565071177083527259589000684067297509919800147034853400465257893301578255614974641036393194223483928092320584541735323228983001301886449238858480314905301129970991541184372705957462201033768185181751849149145433928416201962265580713386878220137984579507641717416540283661643956919426066662408574509241161482950358267631050718470239738141589177458465951600900416944594187298581890757531075660371181293966645454118592547671339827683760876275010209480501942235991747247865976997049879744451575537608865747842551168458565454336868336619181806158275398558266249613445526823918976673707537814925203571691199296171699961751894160435279171082896799132988678307982235354086003693917746272399223413661646259230931554157543696825324628557510057844549407345874985820143016890270526335485330754131382666059882995806134337494576009728526705582272513382359999019306886838612721515896639899733054023023366592522071964821635544867947384140336231142523866937793851133801664377395447184250201807851551373451404521234372261778483620219422679937903787056381801768538576974726125718355020521576750424581378353438399166666961506633671712390711099068500459672730085162365985918451129875857352742876905825292116033980860632269838099045830416962466847985603799392465859930160357045626651252187513324370681014723515797494728100681553485328222787440787650956302139741483802429191067084228983017084276041250696077424189552899189823310077332364004668068640834199953038455755449711917845024639054295767619299433255770034425741070569595601480866652544990630699324791184504729785279514664642574499918268687856421609582413755252407044267072636369369533982484486112135632528039404122493728063137956353671670905744921764523850590047935851296396716332642787801990432320420320902147866298735013501625144968730323530755582975623038512764304602693326604608192437556901082385493674186488280182717339833618118015366026881007358922731068653016752871277115074553654548324542038230468385186636314502035786307953541886048706395736719424617179337548635335472613745432133698944219250795871828535734994364722614831001687757694739281823477368312322149903278376358362811384900480916387947133919254522921140402049474510597108710076363537186962385531873419230934819538770258920916517155043933929513032146756995196533458142192128577038376617623593668681210834781501128080350010997073798548291534182373872429328975626617346838785487126660216594216129743186839619205157037107361359979521290149855944299266165705605105117916205517773354189390750835315776159859633994111482829688499582777042117883171895659462962525601604726630421327867878136773968216201368349204893741505538609508453380873342021773307104184953102001818252585127473367617926266019094465716993532556575894918968276780201592172897745822473794618975289133428707001464019217563365991641265147253001887841893125827777222867094428214072391416482941040838091648003731603762029747423641626543640871802244944567726627801263780451611778607265821597776295899839887576904249711355699046546194320800596105756215851868218688088107083795887783527120832244967971515711904288171480838480866946784987016359676534863625165167845801095529341367350460077877791499066451755077565786594705444569184004649779761480312471338096335197840396422134895480098386754222610116493033064897755111542333178876412925916242169841356260873754566865826108616043367150428777315042559196444508979457599053286773512695586714161974675892876678280979106746294302996268781055783662455786071290777471283896659235217701212607234362983945015615857119872426482202807645678218119810994695694541344116873769706421702268166397614592626189256560271299935123120734901345587378738085172194749620565299956811904045339443375285992421432245332943933568023812558157747746782609758214320739350329850364185603286002463284258312963943923168237950640162547880111549175455425908650140178336177142889269733529833110321728214244413472540788525471267436406878890039562933906094991437456233847081285945236314757687896249592603375190508144501661776692516208481352916777197077469578935533505320255906430339986613055320491655893782824390500553890140218812952326853660550324150677725120171497061321559415230769436856941269598006138892707154361570755131562063914082687501055448116188972562081734750714882405700570979558428352257848089236466121235497270649390227169746357894504870770146387611448256359067023432996630409358562748320605625774516743865683763744946439719393674705025053562142764455941100058026734765681538219260762743611279130582528065144183703791079174818965040220145195636780345678672053501234302231059885841786935695243470282949889641981934549440318760482466440685877255241274053857338665490939208950942813389818575533635835487458784223013113243955124678824593063000619855449771389244107802500959211749932744325887553860156610288660018804646523429899566343866235435948509184227896263696587421470506814803395272117287258112627092380578533624406325480486294150058558882082501569025780298742061358020151844398748699231320852858882641869855327126873440170589255975533598627466240110251914330719542991738742884532883316756493730584958182006059657961822829125489391684519876149352413440959558921640899422553517182096856100175663062343587494142162955203239579139645485863848912183553984699042798094425442312625068095592098055521828893946270154190419580021463471730320140527380993328911698452574793242343929841242315004891198007705072959522603708160594369115402659868946148114712094753129592235707970603983434465225899972880568173651684114099531479409035886229299868284135315310291263944375167929454704730792602500421944490240935477736711879543360433491313134859914461301996608214968651295256764188133509511413242875381020919118766455958576927511621887926482911398357495213766037969155083465979725868888987042741865602519615060008127580826131064473069333581708404211410182248747460914960104981864680594883484772403681420625260083365708372469693769380392113332099756692554504735570923726433747366372099039857158938367067003967003886227769836087167561851773130299982732644594732085613459206550266931125969736872334607911933338843427579098629340089210332556753435738886499772553366148614710021028865664225390656894138507472187338183691126686189483305092535730972617022875635819029006865310194037119893174572944169481864911931324200272758517270248075927443560027778464547697802506033132722298166895879903218845133733250695643971652762224920121413171899642063681807578130432667394621147621570819698223355946614147949460718553828318587666450464873541409430087153525959400770096408466454746356939536822021442629829413722028595392079385389542719618116664323016843151064498168370652520514796383957915298553884433680396191091184253394725599206712170270443379984412367842083027129618339132763674138010077428782053440996820769409109815700766238199521079016450167698285158334891663085822114335600481421767756607326505861360110389305373052158012860077390475262116333374804368007531180383721512180316711105226570426475702799247995658984828354529652915157209917622535184264614670296654865700608157530131228312466970173519856917912745527756427415036445619027725680474601319268942720324197226099258154985418370096275540692245430809948985841276656952677612601665458739772122060847674907435687194280081265559974783506265527447049351859106829059606092445189481320284296311888116653499503410406032593498682641691043083686372986071199340825871558637537405909326690949213850091375109764627442649413142052036333608491077349010510687705354641749268066127162407506761281993286843051852407650001190627212905982779978367377132995677743632052638856965740136861134570656538479797694734411182583132968744493940204981222786990517589065014921145857834372975019945467797714026366240520212509788925387975913267688254487269774633660256915351476554060341314410553653197642551464046811023283298316719710965878360753093720987805411098741324125715840760998192085276761218751015959309016917651933562774523189411280536495455839559269672917376226642081508918208789743958138328258197601827795293786044517046240680744634762620080927052230726961743860181968178527827109601563694740328743398397279272685329335075336388281127132334712826236843361180770003657668921945828596105586445463711999874032153675864386719070171135846149850572705719051337632396728283402871549752493619098423216864899492854251076552157438512370979850595540405170255443510700021918606321426754048731260554642999461523106886522285284038064712088087282616218952992112564422049687629358727992081714610059800017803468990096007394598004072032627219785148068332729373003248225313845260141176521374247600804427577428517779958848472437990826950950903140131409259021156091174453851198945743859158893651015769782576365815040421118881457112772224763085199949870940921795000817978135331469041077751572428737992246533553852257073491717063118536036814122594996636091405626786861722148871812377771622414812563639880122634940256122088108175506543478162701888513534821812258569680552582341506430624239107078458983990640882182909987855838891159119782958965535001378357617537051140389807016438298649555032833368245944357312928615245294360466898378585827384456560440749258359945224269278194016534672904967638998733391929360293353498393516335520987921016588150808599724222514218254500538526449733714922839761130320076407638094935304529266681270212088193157566653156408396667506866884020527032460155886483208885747310375834715570128327000588890595350183210879343319744141805131616479097643525908405777916526753590019676250886833711154663859170598419301773089377719698696361539020467116072203618821380690620696670085658178712422718539049879916384964963675952788608512526915719242943193215095513657280175794948481339995858502873235030991015359975950736383731835066277711000195996882697430737073937496987663617773573332793911268998320792281682285721644706268712955157199552238080059296871279571110830275174965998453067952056698656743848989654851432120310219545548606095564428256124403863797346544233714036968303855563875067430729401731174783085440934643765520537362752184434741959692034394569739826256786054449050165437701974640734963094866015818780015329888837839311808218837688523580830685150491605572784686469471762072761033966622950752649558507318385406421325037816823677013027921488330630469439454491200621626714099713881789237385035095640412699024359533387922365032645680719129638372756879097602404250776247746842154420011692493529454441074520216370794496126230766715490463984623441985427947549897480272352492986682206464577128855238877554634211713910170950730086309729809562595517100618206879533945840628590646262442588272221467393302232901156649780507323992873184510203360635739107506073759700761560429100008744841659289747857745439945175320841676479196871965663973415022736476544381685406067809002866742036617314177324076474593547944388848848440847268435534852785092118827399144208643600584692565408349779144370317839325398173997154641687906408526867777111769405023064866257261660925666015953314447875739301949694561251433365465937157809144128025648206737873525200989291286836329295968980423706568221366111414809286858547462849047183483932034243385219304342103271546267312545301193336598489441100850401034565909317750918131546758697845241339809342649374728515077626094290812252179475545117881380683847339286252418117975638717885422054873821981836257101209991556680118469856900633503123630262795307417139575985736625434779549210423574624803587433586592589963037282396473034083575561561122799361658189872672997617693720956844767496230503304158953372084644990091393936921060061182811801713696317663302195868662233551751781966497237648792368358427323325093613291218088942752705589291762131298172737456944265690585151947468006286475078023727056449641176223418833996273712534740301978224075868760282633804034490296521993179002983276606948837595208520317180089234529805155380487872216692436300968955703123939721240661354908336237334929471845275463291156496995610236036567822676453657413411612105717318609993275111425659138500446527094444045403390208816002321514798585439932324185382728133861966442815161792761569785669647588732555300818708412114369150186144009545409614485401849265388184017766226478245829471616303515989688181545326941720345565014804949077051229536170092662074051734804172914040243414657171482159844132384037068615006413787210935853704321310181461705173636348993783768018806526163223597129444218259872894120831538097325316621383283070882763257796997914587157438557978086275116717255841269839811708258033575615941826109025233984889950556952794821914021277269710549430669166137697559454658337978969157424360751192214441762819731388378848261797399789809697687513039698011675917202605132001623864021488269476615145009422089471025535416798947805602152985978177885596929923695845554640365582162357258596038075685621086627106345084677406150293301517199477731514485314445711614009802593248842160278411632604252285915264809887077022342787302196404833300739270282095886947720261941266626963942019998899944164570613778261547618201565874486851862696802075303415137971272507529204699453693938028951479082453601702476981152952095264243839454090508391386673845406514753987493713961943275040124319568696105864493784922676962779703224728705343296675985703447516769607074374584971258583611034957152783448342720276025440770071686864355270977160466818241366029443785555865327704172894881080549895705622086946140418099407773594232901400514218410102430641155562171274279386627457458640613265050146368373699108941071256049321375325662411700530884825660693360065477158398392236896964161950482312319685362983625771510468642406990716044275531509670449720564490492423034575775375663914154794808009648634120800336316578181027413977720135456831862242560217680085942310487131647307512436953216245336450075646880532265355617234759617809699454221599599616289256835144697780422555406274518009773692114586901977106410337971112378847265418941573117493266192964026436622797197979951242610597251966688541415880355871825208771387997408376782126124129010843155207199800194689092397120972290913985504343831089715474593713010218237597051929292543905052419443508520944832744255444428323023698946267551621751379887494231476552908190491884811824844251139234881286199749048521336556214769378985036829176890359431066952549903157473458465928520571052915116185298658657832992210276208002129238609543769067497816277403222309892422973907260282489185720105097961174119603881432406787204454606170935614788532175298059722243012217972497225742638753016123199370699145353148196250210111617007799216952157477482379111363280864498037592558517600513732919873526725012611586932878350577732482414432484447694108492332650892427519418709116185446536596476881784117225288114199284219038894011049905798807382552928385448664084610855129368833180599096834771291339722211988015056399737188641667175519819636620980258169938181383748076460896211893036786941373569180414895172182122123511858174704335570665724190101252993724092885763964265011301543404306716633120600858274686186993732868108876574273573339253098074492091135040028142207133970216011651044159696084243655117437412018801519813709732631387906436041547254478880841987012687065973201552061525125265157214094555186876519139981028806054080197150699877251553874589203908392053708346879054776078469629151271328849280373269598212379029890840050244733402910498906386096287768536875463463160048165578926368000887436461908091593094595236730606292500704218114287990775689941869422912731984850019589726007204656469697917277287702148112483089320939205820448116126553137569163654534633850422656601911218415500864031648951299038461306747272516399624399388377242373951510227941739512217499108083930905517043598418255571581375319481805376666548822970118223328837444758285253176749260461027898480942144220719328046323262618763412650256901238873439068492390997143087350650887017768540206359654761509458317214368712475402100934691972405273462294375377369829397110256812953021581727841969450140589708386675112580604941798930390259402726406188477564548625623981155664302330761606950170749913980080175481707725748089359842964485910358037881175551511701056239201654811100493347109135359640504364947385451452575668459333564263038921432078767482785273948559866916603732413636136847824864445096761190678761578312041387497934088415889306050941756089792181705453274085034823604840607184978614574823330255644511136522539787700538834274872731530233749307136554986589853761021004142853806818722509056071773064281267230071095317990499921299407948545883885504640297484632370365371028369237933844951937717759467021127347975260293511141021513212402626968887457615437467728360235900538924414688182330106801434839045921145831431768273945713247317515588132514891196742984571337920850554166454420090173278811239574044161946292943214047112796164690518506410213681487973032991746995065167080821862887869733592805646299922453859981231905352751981469784384860881779304623961361579291568621139974252912254230163100767775966500784182070676792283205973008342444814505424302387402297524328865598471154195428887622347163796565612869051442424757721910899494964319060983474791163698666854710536885906318144249859287479976424734077785889109396609156714988314455531829685662800973625496761912796144432674903215651800579822901017403161015152823701478349746333155061852557091625782991548901240147265776020243377601487232945342732977035442368614439511757655934146373460799953380253847669321578740520029294156263991707744739509380873890199125658879851770856494779028585646419193898032948044576254114297517961914372049003996968069941913587655544030116792994947990086590127851586514882113749937747910942870440720403140545189098657501050379380194569449249546446313652542183400132949322796828267247434388326281627835621341268382185401010782223583611354960810297297266051080131427617520108107639265025541352175174534300259070256676109020418627376747094421364198213145142104747191846829714070717601396078873408882251392091358213711057902986735416691114129132616873509486940597475527671728267375868543783816378396125049528137857539101122676796538829884783110484972581036954392030994410736604314054595472180392610034808794993491473130392410102673141615085589269907980611056977382204718849901106434092055936926809771147992050730703660531874122101077527488638005578495108549722499318340309088394251282251675776081401372674315732633012355194496722337352355912200052923291948410066205230382789685181158487666531071836327546661882846453375101296245313764345363414024469624172730279944487037045340059157830431351804322411896420292168607087347754879723611667990764148877696110511687979549991653920867093710540414745246042381086122173381426038343466716125096290756064098755229066805178771277715306084221468096715793128900993046328446654717645166122210591729283780967917898406144693655742371795290429016983525728240091489827091552313275094402874362717689929717245424186222535985946472095583089247357775573941358159020795189906559332056074617735685479331321239575705733914611295869835306500969602661287445637857574860318943605897758810430228071843371891726326440644751539860927866483953886526780913212471002836116253696580091665282396094574224004572793375077343179919813870117565343258319439968665865675384938533365797004387370594473519482139736814747300732028125553357137239770824849075694046127549907543521757733471790740941376236200295054368500092271956122301079887531479375238665407209878562124807407364062802069431876146939627121675292162552496191686224399743573781311951587950644802451338815351799938227884624486868869388468572570603531277198477667728315021923963177555281404468025737049015623580231590892458856342835670314191770816839056797019039518246665821152562376032021814700819986331448384123517181973511284485984559188105085922298596002898762889397186368826853771857229320068035922952748378357027825320690296373945675854828518397853228876377868348806180438403108953866490527716881311371680925203265779795398415206268534937315348941276226842828183199898950885096365958287809641652227793425640075299691473897858492194437050612865395862524516369377984118862113936381306199932692034073836207522643465807789059274831818974198395548463777430679483749511065977171607634412941820084506916888838084693498393352761764639152902625575579109510389660519356394959795807178954005760275675980699380776443869350184474197240459455874444078003724213564313330518133120510868499625858267634839269742924484830953851963675105111940541105106837530047009417745271569717763519362431041078667232401853302565455639144386903288484800834407145847045480522271205428187839392394132077010778049081741546960252612916558975129191898416452302904699602037113373028998750626264246799375793696869013719032946025006046018945134151247507825534744073861037147379316945774414307633270129838703551108389596785893123341207205310322271759802772300912510065165316843724405433058429754859348485130549094746126421328068519173362759502697274271773944367250744049433457686698313841147264843305001961458877527926634599048147589900568752220792234326829837825114601128456169811872841702129080540847153532966792353169387717528477696225666839819206808727548016862622922695673539579768861975917996048707501342595595320452524244292197340250647227383136442649596798460028943978716285893110140094503633342764890415681162243611684026916536618286409557277763458193739585633355003730149825234889005271002399686302694960987981335125652640231758152176450247326916791578418796592403564708838181438875864837026494412840247392640345066042362405651368702696954163517754198620474838183125938423934676244522033287731548584240155774906445561457874267011389238250514336733529259507172343794843885398709745969443678153130451739051610665181276246461123072247296285644657723060172297264490450292391692644582154209241691609789541485518786140832285582320112759954936105498562060895002313195764370690296723218034625160474418497568501745514931859163347025585628764347448287012771019930832384265909014871148136125088080624863520310098212117630245592686451355774876285995044943180435638095618353501441967357778576263414655104932825234287448831951112032872753666881517248835038929553679001136621453532156202741415451032616421288738003566897960247084235499760588052006754018160204462669514541669629742258168111145730940151486602510072811102357945272070526438131958725080271724160336345373411097084757179881721827435187419787787812287780772591247231941555579137137618425186782941428876689012033940125226681807143455772502487692983336505861930235508571819993939288814373047886237800998994188570157616223279459494683748676781689516913443180904721007731084622647180782836449619014625612263488015540499920869964887372405571309392973565573197598730050844995516182972321783918451069021478504481566203896588722074350048970397180770049263282892734381223700953423301418582311417668606554238991242383187184197786306172196532681866008244152637344539247358388031711121738403089687755569937193816499964050292931806396856123441643236803958841487382444785061609525291852925884268994447308769146828559544186741010037595507791689238077507748776301145361365223598535501405836793228113168004522772045997650550179278232801495361746526131193986529876867271032014917208951341732715031664389236412349545649544663675873687472320920534163141015969832524174793695905378211391348278862136894967397197001245124847740724572848842544956555070495280346316341117987313388064976364979894105038987669439116872733108695275137157788273676865111281191009009951161072397925028074550023891776452653594225162726304505102713886629354589428701113652638358341894070440144302742035208857186087696919356702650182626699068851840553531376442057099154352783386535385581212824963599866383169968825734471040473320650126484034819962654644088179530144960980992131904918443468480504658476762554070647275670164553390421340444247228657879742048716688334987336348185774720167938903140179890344214394769043231549930891541841473543332187744707068424883947014362218724689101164244217195311418067173069178474984723854109503782298794606351032514309882018628385734867472370281497809231906888779622327997564405128404991152290433631138251969482863716405757203977946945203166274156425115068324816426597502700464357558409143688296810583176700008480831071175246198087881599110848585725560188180725353930263235484183686208209290283283836253266158470937689843507946614473623959511160430850718380780097578633357418239354512749303152577581065587823774150099711642068727291095733634693230616099390348850409625681332506716203663681265949181436166018592887070465897204726741583764298463401923376088202416212929241657813504811117387229469659330305825035108849264110850132451083285579154390496823845770014964656817751701259423116384324764715073319539771622106227431095945032674744753637753025054297031181588936113056956419163910104884232726795635831061489234513604350252924470547225054359417197254987412922864124186632446943864763640083403867318998851502706206971678194023845018958311790636393610234529520709310659170510460533478578699635032585164533695669352364082963269228277959706571001660797377477598562562873208469891819162695424639124722663308665980731555562956426674655043199147618631090491789292729999271667610838621424668682027081486296947873737200695524322213681057230753638169150877253288287071729961935027675239075722647974136443507748082023729605141237959317346573927375545263162022912863972862574000170415938778255206805240030716213049231174764786723649974075676722976901672029794276401603382995721567447562198035441584154975159466464885392529217089536038958951096614803234538779898955420045029707436371237424074514903352884301161985557157340704021802168176321484970869355215630721956984139708734304625012713629218565882734037076080336151048330469139243384271304353277504016088538621650767262914749341449402887233966664272657320074226406660385843854315706082485837993450204128535200655466474802446645031338772181335837941819232358311702825183580706647554726875164459487812810497108122784032722836603202756717726200661863523265021244513547441954138229499680185949499877343981418628683593548270316164899157943278538373263767586740994032442200306320396685997505120395555206688043062998368655489606743838711158818315593430224984085296526907747930162620321885968329565157349113749990743673704303205551781894022933250518682978955335488326484877202827296208649941471304956826614942052315093222000710515600746221843150346109234426036048050798426250767450907849357478824845189819506142048295022938080343397831424805216871962215868470518361812422178436624674137103766251006566983906707042049012766761234106495735289518919262090176214990347741914457559684552355436948658459015056714337475821591317316381349990798734810420254184488647651660488118229266242399377623267757622130550262390883404768832257915059846532345531269611684799812667538960789887173918814594493713185324886046705799554266272231837012391593137865501263095086534406278197496991766425400851548661291606481130889947223585054199396655621565358843105764379355074766158727347475443699374752004000363370926395959875158599108636146519987023390079685903215618914714955191020668559997842832603628417760919654820478381260612940091812159638594824515238660667684646060130429392782063760762684740391663734235006256645435854773602127417027604245586343043731532557920985110873941623557585332958777852936116054933493357480119035273621292753060808339068185649617010140092923020598653161829337766888247813920776563915870272362010948705208863063004222904435682389114943820032080802189628456866652851643040342393644289592160979286617904035082912809361436095090407102406278817174565410799293245760872412687948114531022354940436998137306154058847734912657217798317621145788433211766780309522277491299733257938450541218418184076158529186201374068484996529615830576084292988518665042082149105708382510103829736917737251480648547611223961885976771983420677962358515398157550620034707339416812788948393138310860236227202276319026421459152827876864710764824435213653248995499241134077481968403810809849070517623009390604869917289367827807560317742965352157333495846590302847750387718335395511005876633879456752086120402226900462246563858974150733496758141299587143319451918741034774162302390554867648348669707828262430145794065520503550573041690398956020575292351666836621546706686331253980875893359864667245177222354138786707459552374146002022145699843292969022055382855510473928419592210916893050327947604760277821183860053212064405758681532049737972278205619853033110167788720464641469865090681128298523610807187104919831158011966067357751130300830923899789037868174308058119086955427185693131721516651247807577310636726857788950186676229869408849809223238841701499368486118626625556098802924769212195142115275620977845062598484582586481558744401521217511477128193878709414230812157758150086114908500109325986771519781172415994843411142506584802728902847181893825555059039669268522444547736427421811789288892807762356797544830517722447661899403930367910605128730971658372625279740555984577899552651482582140902989194119222947045274562515935346836995113222540455133587267388933806080138938623650355335537849932923561314426775064457828823445879155788321284454220181353289083949509160110218424065851498164376721094517612690232913337689213040547413011895476584848548465548907955057427881700557185443345638156569208257543352874060770254221806965974323062982366327369550159218006870885188973974481076427630647781601597727170071536795767969131865958419499686219677000555976243779357118049392200467616347206401567415049373412061849979654030244118504156031416550725065647051135464927651441125852760762835378405231960957434534815562247822503697296135138952574704956973259914700532158082031150746881101449713462626161611985603264798007589162511522828698091436908105622715281418808749963936203940613107028333486977261524020936792514455531696220204900304753701558369728303917656326891390972058911721740153807059460866851443153134549981465444831988795459747271128528760665526286540828913840679217909546347092624250292451627572266276388168428648224324533929295479685016584583969640462001099749961745301119534652973415761885534989432244774129811596113736929493143947989800826846254169898750655084813242425100952786335732460235788844115917394361901483587238503880609706425371410483359585436325449725483243128081823816194439754893855198474451765748877545401151220485700781442950004892668846726788398667715174701135550618117905320262300429415839623096978288273952568311198264119346439198724870760003850728559274093663025791576768130205881815525254603465218637208312431591183535779211729909356978193881744950891597187815545788144480320023926339697980089114979625409512773654023542958631692231379558644767016101279985277216441033483722142362030575518369958786125161513519900499936661091496902086563256362243807456157073729057687306071342522853201647887154807270457400435822268344122790847512932564752086613518708827698935508025118455032932226513902210535040495080192993705551140703721084753853388658122338680875432527114577009425964060328595696284538279736285524862060676296118580947035586719364729767200469334073457029574670221858717428174092718019610903163940157278073006824623839173427346508782394189130554372019218581050495018231056425071230038715523614560891378219586906145819363132324253778108098862823043782202886457470609739873024559515875920999419751945493489233324821057456698879426397218832132811578528890005221324509918546998701340921616837918081881949309940529183690400408165042622734000951737279963851211961791849239044442799564793707229471676814194266877119501855819765696181766647707284084947755024767871926597693036613848711209369793867926247174562699077364694603436895206067704670919607300818481679261919349970343448059098262734236910030218970865823469000968255883117682154623909412955704815480701995943908146709323555368897743368753965136541276712055496942588203969123503516006547942752334762088973298721424970251761624002971099027243586399046410064790758532751388040557154457508035236084788816518621768593694402489830222679767937383275082351109373731560508660358198049609543185251669271262340741266504555800121810969993410066854634855165106713802257119277812998470472590063562813295535393177349017566752101136606805799519597542705124856333816086427974630306572585245090904853044867562327456032269733625504741861634373100093838792502026161714245034763859202070942532922337092095504736598305127772983594295176857046181755083547646370492654539310987000408466266470620616321296192310456121521892608135595926510131691610197242690081873605605869200506283899994203770563870797506888487194101282041514212076380871819980451216358765447961928033813204893243066830998946559360624493984310822868090984945846198517372646099097257224067778828225891263675130807335377150437197937841823434991693463667506867160803775253650982591886882486713263891831788116617211430295197103569103767354995430211186868287651996144381667850338407832968075902703358949068572108322317186946385238607039200097849635037367207132976697951835112870479408174936491243915173649941137849086714684169060243047620441233134011423780534129031233593492016396161118101281740246747743662010610214575171571225326880777303880009076112214739548774615003603750877862785102111714640287835340071147747678623748308489285772953675168438871996459350362720846900934519988374963626825465168493187053288426506405378498535830578454819967848457560288140999675737440576726590227166734392236457447755384740821150233185612197101937140682221879494134489224439022557938902719248357141159631011558525368444925068080568570430130094008424056600628345396438058947723350826635140820112434311133116632119069005639175580174437257746138141418588827899126355984795497088910648132398859354543765876055690874190310118545713503039775744907940452821639499284462508798077412012848068718539185365608418728524956740379929542802261712128130440785288744925230248212693451819885068326492622549590300360808583516396643677497884404885050276120825702507818909073876745026326147109581490983334430891052353821284210700959539487407908662022247103159497069480535168961509208702955864484292153312504489188552419153111514970779128576229492721767568715333864375096113113348634161534188523975716513517893055180820650898126443903961401324607365160275197397186286644674730880822149704971827341631049716647091173386672444412896743361873925874497916278917527325630659367892056146272249379899624168878702776729297550575981227141903733422844688262062014592766345674988198426242888172540235475707455843873488863326576245173180439184149694835142154494082906048063099463286352970603375487069934769681580443315276028948582885109951424814691177501857323990713291287787199271246812974362869100833297735742011791167898247321276568050849524781993996855387828225980528838956681282311294127453512761355578176481897079735342955611333412016443376881202059683890432078097487837121457622643951620216634133747890297545188305928946508818514719500266002814760760456184448670858375324328852511647672226124110000266994180573251211986181367957946040598184782834632418964485695226069919594894424681318824542655010952571185056140019998136235497729604538137164561566975445086115226950893543754062020015297199413458197079727046010753475004574520774731009179166895772793653312661662748291714793130001365057357935436744555772804040765421156335375038696864090108038647925579279385953645820499442476428126712093323982379888113544449760414239174863267655506142291861651579861499774869534723308321810315556108952038044891040005240714846115553019569387448876295862489522909389327514975212677274314319102474476877968616631236828286204023829134554567156020218568536456098587657236361498233467159039443069415203885009706819168230630295830444569277517153586599387337817864643136125959701885245336259393142274359120587958614049703090821925468755813331018229374767766112732614345387561821912264322173511901469783506371695742183591759227566989775068335209615671422751220429923531853690184629156646499426826008919939507210772524429646863133796197987651912690143436357187061341087843120503596077619934608610099604992357300130639608659799285836901792992260924207062967653995245958477314062547446840579950212894603381237060326762678388977713078647258855125731297947577711908837605508649719460002899980542960765324111359200796692668362131986025556665071301805556320004157861310641984978849465686450534030646116603011668045871053880298540196838696019051041035080738188754403546763724076152906650655139746238563355002708898577708648157173364272137803944504682824907631219027717382701519730483644254540979191467016467065963708312862411909352071981607958379899990261145237392657695582139253305286919206909288753353170548173257350141658802432893743759032232985178947827731386126879308062933147343015592103970196838881409795877587755400220486979171408162784427281574737914337060928369887876706848006228840696792329861378571490621286230534915747069650675366706609392094486415730586420440231324564636894725183446753718752655325107306395419025078547712601400715212510639726631895114754443059751308585300236411002512017620500339449475916342239120473963602180153686173471990158588085528994313229353857202327107807566879922975382646369728866467293495448287813066670651457290713149547226469778250186771523226341264180932797292386379052633074459311236969677126357966565251103436073045182235346067431364185119227616692017865352702554872072231873744847179351823920299013630254553980367110056926625498260719097315335254578654785816726174828476086600061895591342440629869950309736212350174997017743690102789707895470544543584472877093531372080114411526739368456860436570576978458735062428876649834066476680669438098885885041765502597874833660496112785430534416519000973053454782789829073415305040382123416604828776905088876658654757768277544720144218283477035042293781238403510318702829199041636204214932972997843197570241096218616219291185277156953884091398652148312176683344299599652785653786476602254359733693223290535441342328428886529685342612420227613247658003809463571755622779206862884270601509382574240769224822858485352601745875239802159115437493328029439593636891000455939225485783552707459760724318803797943986152610277099557580102310766402844989563607060224411322145045917727929820471652586412541963893436316084110390237628560765451968912666396740809981910455111895486029620038222562440053705222264318444544746067584957409198638181020807658104853169009646435690263081727694138578483204677052288065629162890326978942708951445443894063548375657447270201526141728954669320169997199701961039167174466813114112614198764639808574157718062654387877029372298465673244250012805458132074502122999494452231054260840719904210908313852048327381948239323480390911141961419886066181168048301186030255703176015811382474944645615428338622084167288918204813095136574082713084937138114166940594246522013800400474100746507337300535220673617430124581650625283856125107888167799614111726182792530954795393312550132204307213334471392568855647355683573668513775947365283990273836561907273585969706245531518556310636467415609631537944031122336281160057497245433888261427432944771323394242876034432529504273224084754544850232418046489974978038060725747867734555423615497058177470886164822193609802081777071567560148813103969733231092511858730921157701163624275815820227816560441711458953559828705911581450254044623196405715758924696424142821447038406620126542659464481570766850343706873377319321276842704906891866753346683086074848733353696163525886923692656749663685585838385807457064374717893648072194170789172149368502346762684385644004726343708839232960865189681001463512358577048352574494960186275531126008211069606010948521748806285873069840483922113774954593761472625904556046907676646144640840316925807098580894324866229326209912025409618307391451511050687063264602820317643483043787346763728128714451488325779583842037353959712500068500656174474743874522651685621921408097821759996914829642897947499932314619472272666561640566126470130175597870797503243654398587565364057002474567037133667292524763050162963478205482546569278268962049227054130690897142245764161109909609319449723576924396529176277280281544685446900709846581363038433031837265695057590238480683276188915851675535793184378780263186685993368300852095801460736360085111843434181199773578318384736495595367591988704586995270697269468053866021680073623044019117445540961879762935307288204495204433281808394553624665695496957719102596827035441404351468697115503147299814498766565301014720744911290323724840238566709662396676704967231571481716400623994504333860834583073092769343433783514778177329578163127954027934612380401297490461015763895002705923809151539032170383382169008571179441060651149244610616509151609229088390140286880043332342767275842486254093800503534660991331524078611515647785667374375857271666593106200259330227884447705325771911470238665824416262245674103233519472370492478903790629869370061813294044395730793528151461503186411728273998557318920203025043340601877685371796804294497218772136256505240365443890014668645685123415468113796772820295835943404249278557366539371158287745814395583466417435015987966134353314729790013278838519904514130655766509255824990867016893484289710877925438586615697841589080533373620876757051565007261753903349980734744835603586764870249449501084463283388572560291952820897492083088363656181955775496425391245798310426823513239161374062060799016446885333103034282384595925560743708183935250098327429230980907944359289592767508517405516414241449919317237536061732179855071704077787299310201595673088479369258354153003139127548848303367014766669667528408622331765843199942011013833889056285179449677349570574432439872444918151438413818278856717366184222835320931409992066683448739557041241621810131722945210345914717202236739445099881227380901683729757490954456543561691376877215569989612996681135165098882658339397744111677447333941106139502367850417719419900434144577105716422847955936969667942644740122823656833350948770360806429506125933909089912305364089184321174200213986461966527052660953244141298592641396278886117532898059826563232192606759650507381807817607468544252394499867119181214705556756912950885737528186471239480270540335147868948996605804728982038426150770423919033134013652104205908606539365550129207994058080134318505406753943069234463376011961544513288790659024670730587028204073453246810877205698757418066999758095718975605564491346941482031838720056048681474634109235097201062035733090829323232392631205424580824037117747980697566413489839793905786682799500916142055294877893107986637899651368554038748052516918539353533135273514705211802426403220564530197189028771219352390436727058977687255183994556723642433019601228505207721122052806426899808964969866599120916117170631609778598775664598721732205156406491267246606311715286681506230639920867470160976995148605761343199233358566293610210032479287876441503397142877111479520831753747290247756689344348155102408540550650971123231644842099113049763754658460785901264627626770660365133964293321579055151848955172845859158987784946382019447433110941223634301780930670785613172142665407773832130531601833554041583197476373760781857791616818926008062931105046220499879641664921361432731361713889808339000996122599753860055659657772283620544865425840576365046970956000966250601736610824880480818217880684934253328808264625172617664198884669939889912736834112203026263945660172766334052083329628746702632121239536015277316310799490068943009085081784832147450657392049183085035397109530404933485973568886637099881043915827571527456184281824983742045022988231624860739565054240888475926305336585401277589972680060530231058460413277451003455146122947379462436781871489639746742917719661552130243906323181720398092733667273066896984901186230137349601833697727717491120430112716125907336554159320183844800852888893155628117998591993544467852110766262613782475639198272557065914677382752717962424709768361175126478004685437296094032993431000523785779440523053326891827842401551525768922562035514028928299779618351832517715265075709186446479486835249957240512206598814874091141079662621474539467402852322035943392815289809617380724107126892500516836550801092234143132543847581869697521769604851115326400179619210191867475312860679840864374075698172370987038218523331900999488626401105510872972990917801912153618734365175481265982930926959186104958758233824954678524309041458116501527604879868393356668869122522856967428414124699879549934099782640187364669032588512327286691211279952749165834988745137503412162382508234409914628872374012423975028614069720042206269762628221256205346613957617344950173966234710392696168045757362137563223733236833429275130233395427244591714727366815088020673620693351515033901089903530004706210534396322634080944749680327813045293672199831038539438514274319872221129891617315400225476241371426576309302104457641564598563498700281712018860747679144751046173433415576615912645705953198438955728271636746033679528787313099986321976068121062207529761337339052559503851211228413313390612469636858397146105942528315001750059010812084694431610686824489321283954820942591926507370025485557953009224387431942213250116146961480396660226471281051443556198204848057504352418330716512365531577472006663897902660686096474699109144869791024527019526736201699761629982915022267104857858349545019471965687840312360723100820754503013856093752461515141219572953736987459859458036804705708325474206403757139350467584062410684874362020662722932987629002776489327531940150953538078531755356977220433864688476367626393411016084091549279771988551372862176360237949410492383913582116916685345234062756695641758193538000409013265754026458242739123746503592988048858299920306120204569510910582869968228188616441383259745124075729685102124610047878189907860537509173659026706236801215595874884012186842872820840019869400691583656217107852068849027257978076758781529526757918923808030367074426639318158151818462880451543856902444515786171224551653616899521060375815174630092969918820756752224272213559689464700305104428733777648865233249930096673199949463874838174480537611279841367905374059315209781578942413511839490354329603373711072476976937200637462122811177281743656046986167741699204782246737251215037615192363566884390276954614482704119367464659952957028450135793052431089098607472323688762407640869353562859719977504951965786084470363100059262815721772726888367800400970023544399841544109650261199768328235533829797975115406317235204262820895017496806080275847483264636428574555211000083467395658928811003386504118662482789503929031187445320150685581608652565612420374521254255649814655677661478438213495025627061216230516029107016823906408559108185719795233811599864229500969942288080487729892944431578148056362496020991821723481953348160845934639275207842381984812121337843980031124644775282464280013051234136906950093792147596367338501476026558821105096085142366817647636790755865235564088158462163764942091203972501461017102424623380991819007110109016236103780956983874087455256445303122447100478441744115335542045769689596530328931616637614009307219956539384331843856281396314710761012385614950723093600304241318808400441918094076243368826144439939956546209078731240845328838621620947135181074105432772269132445265546399815825298635066277542821419356170367676845310736023825288097824002430521469818622559789207860517710057619357117184546406216599439018216773135624934878583206349052433258787304312301547794476905227690495232832258048112188380863341672682917895628217534540992601058139206538195645033984186294491873672223322552401751080777085500806993503988703675699121391849144777384173110912656720049396556042371363898472067896747179663505422402125811807764068864528471881327792122971790816745020651252796831264234372355959769013490850991418401739713343498471554930236523395421957202733021306575710447498694474144380157783822220581845081587068880777558502158956100151036233346720774025582528852824638588416164046308319489013978833366777854517375609792282780202731137567873560298873973436181006661154508447696972640162394968629969519284983627652538099513236988283350606079990169471965574504802064234871340851919352337067860866146614733306375857395938152540779843430284709809809676109225769190759026494880152011732066120806622863786448303181596877663631476052973767386150789435501928289169715003508951162617878593026728501555990220462247948614879848292073479181708052161607176439977249221585886237493047265205286968155477821625855710358530636211991334287955239783009766486491267530480712498610080052587610420846220883176137764625872022309946849898224214495210492646239758742823516347884316862374524201332934451902775256773684572983620132821495750387200779814135473304857326369311487127582597307970220680840601904209085848195573413125464688443054036718063035483508976855694998343956940956322313789560727713470019269960597567272554231311097337884996837568180755256789939544987505197581426716347814816916024952927425079731516291580565999463317476235371588822435607105436446802413028146251978737061119139961415046870548793693495672291984585612759797070581511049126762685918750749734888245723314924021649047190764553954316577144319430362984431649132471574907486314488051185501596030160175272114238608125130460230106687252844072135558253855547020697065773262940356226822510613525963168099058828645981421244450758569357548307990955576470859750974004037902004566107505817162332371880316080834887542794559910769548922779257522009450266490090944422809091343936528368103807787521208055261665154458939871561582928082888285116122366980232959535132096873456710748466916643905075528901032611188998913006741349181068893953496055401591506996723716155401773723549720406197982283303888577934145252044837135169929394470579779056167246780586156493469425093018125400402922711672255105911334772318679353543648793756832096705428571053078687016742712172624781433567029691738642594459082533712530699740211369311136140446267472712648132710533031297197576622177145404175819047259001686728935908404626060460187183832843730458246370585690463661916746101510687142586524565109294872448994426542430653605091085166748253502820538081793946206505883702053215759659159242036980066145968130501844177159022846183257222492456972755954497941764118555271877964348276668947021312877196451908350205487837585916277280207393128376542158733988735505192292249305729400730752838833011026622769469711746970644818348906597017051360909548340213888063981016304685753587784987729163635474639886373531069989487683413468489918566414704532117831893174602055431187262467616890248040730467005215210058336797251161278211518930297789327131249414334958091689556119727024175653250874350732771037823094248119423253735157960087735673615558546520760200577849060399527219614640650157478661928048966514750496548665977432092405473481098269210050411170247665102332621850274718487347553363861646489175935445986604897370221919863232322680778826789060842492709277473997451074202911727352320702011690819193178636601943776617584446095651464149480509572199278020587652334795547903020615843005292384427222910825607517970661606939748015334068668088065732159451472588064132270805767383008285750095106862589723589626638226755142447262021954207816295839468267855790842760523210871641257748703947724302320455019578809515273130636044952084181997572306510422078988777730256981140820561864873138898960370759227539284201700632636000496917225163787907798192059998890441526346718816632209142455948788663114258204080388053351456386667451894535889919506904257162944923837005980562120189316967477145809182652782109668062102908642131478725334078920039772052182662467058581862600247785385756904884241861970277288644494116296102538757807737238287048514902519035644106634339348578475526162625529383944936180590601190003150778855685160977927149816224056790785547067353614292580966305012604337779624259515312178907666146516362784853509405685012089381834390784599637999932977138488734387695370469118694266439037249298558365663443137953789202510727615066143217715276996536242728063407758454254114722023998599132771743272559983338779621649404944614850519164366602477803840938015190703908402560535685138021879682127699367797047284058369851160869628871932298343337436356209642027220989992290362895403972288311890972551828468483131598129116333081848787035966040543496481517628247211756210356049198126263342134468935996010463400191725756845441172457887589615424596611425541300952350278586978966752588004290682091121151341459946379304497024850429334744837845636311786610823668439426230623724732000172656557679256166836421676224920312143430118542562412771168082861461344548255837383450173412515091224819826514180487841070506752809530236223405613358450694990027941837657014929854462397509190325923879677193779927776728441766936698635983988029567880737150187358203741134042215012147761254357694081747180251764829266791494846239059147699258197488000882245732566153288724462652508199041341449621679607827142752465623712057467841164974870245986758881907481729296088691536973869934755504746318847788837330255485197641067144508750647298095333821256722009025970098708628880998557445685637364919719583321220042409413016306001858199546634029278690402434373268934832895545910070461641676055833230895678099353443796418256148219782148438119077214129821990847880570174628404063346884980972959672302904177369796223623607350366835464279068174531106182429398232190202152091746676859236561745754625768761793429173431638811721581265739132372344168930827795206531042655473488963860918819990767728307648393159094445143029680385226731958788155895096970379438481078492708852757312036486110464389457035011197499388344306977459334517002297290880959323753553443226991196443224003565699414508112851220450944186514419565937371774334824568819110187730396012554616438428862318166811544793049492261526760050473361108066228899042445094061361386609735774633463905191753925744688431667517701398406056024348070665098863858134107914225005490943279145030181998675589784460192769135000040679704508739624654719885805785972970050446873285372009111135512012312757472163149508861335608007761468225092075328570808323788176695780634015861978053772927680179376390298765345097427783680177735046356024172442816052433695728655212889173412267652477951433073142028158569306656819806405131600073530059309300178570895338344645657601358371770661085514761403836498353517128123236977450344840948060350471476232856391645681895113696837245719774832816162440680408393142171867088516771113020273164778450332605714294137075864110692050504109658101768731188069743761422217081379037302076950275335232264030097354999015218593530293362106619257651812906479156728519330073345517192096900602785683230206408140477523452621834072461407408027393909717487314508885139583834784678971625232153474366432438665852245724368940443717177714638037136363216081546243121732562335176523481587495442960111642973036744050578626798358608538667029720602766435968748034579760461593556174857284393312100098463005214981907643463307931886681233610611158527409491579690691647619228180523483768547786061960936209081007499618295952862610044025186868554801528642850089059296856320669446413149385806813082643942369612114017506969274377008408015070641659468577321391623871179293584571550972876094578828311614808809847665839001743227726461735836662054362594931476770911876475389219146635778464782076095114679989429229210995682772578351212865033320049354250979581177353261527702927925051848402463670762878453433390481843710540009208677276209150515595070803241720342661266329812557016804723539382948370099095790286575759641610281475393492067456019262546412866758806982680146699167829811908294234783902774887444915641564800431596711579284231832712616916343103633938864170106061672831262169333614450111562105883319659636140740629311298457452361587676344439741082485435382964174647195548264973996410520588943563587583548788138669274232830335365059084557362432305945131755923056920517415225809260940801370823201611626845242278310164713803399522210753382466189947959379467879401284316061760199157855140634582993958704556723756196591247443279131955899190723552104222611176096669363045913330762915334438548225739316390171446986794573824560109372585461009470339280580543316731229533608083266877914389476023142639566758212795892203591923782859442073633983472954928144699834351449732095675820791028001337500764610075616891857853564093318347673461787306028496943600846840683835063107128693270362435740201581924062933599245536958609272274328081512223826008727681095854213520823109297401151874839385506837690174058312804324894637125477074443387159231552253244499548771825215402579768820201267946621981302754865610212350179575519802728793207891519460514789310254212883937180293934748506257127822607143010696577196277578739318287129622751313561181238593426329560390092125889225843503713258233914132718222377523827825872270861920108723775816268822867160874371560673385989448022758934701155477705912105654569918418238059555811487414528876366413124185087577111248682744124957775500498484764639926393648626837175218750708051419363520647840107239811172970201180972801122435488334895165489533814227864473650096599597133093021458626620265076182344060515254832162585966888290997503888000749705777039106793776166314302351447149526442904837408830633415803049150183585664841092441763033994994576354092269518572952859821674302326245466000649611896553470797422060371684375776266759544573785284322009067013142654776687143636758034945543225209158688980294674539262535123971067219141817849036414114643783149268436572145568067082308912696755478695124813635711037382360818447413750652376388065860699684394917214660947603460884567012087318354166303084391914106198530465547395937468132363183257517646630437992487676539567023300097296594188628076649517499118724816009373979338118004036185144228232285220684934035670864549039151512541851737967781943512369219237548406979722259750425179416111587642221179570390708408166716444784762119694500614082954686464414294374408590187740160069076317748755827521516661547202576262385306153117411341010162547298340605433759749106427124381087304202439805082041145161856174327040766257882223263994286928439520842419524211263641191250549122944373051796673646032163723047288044287960729179968661943636771344586373715353545005645697934967605371171982859743095496682496247847233906506709512861647746402260927492867166858795508734300366568750368824542500458031349191704761382659317499504666235240693149788914118666781444551431767179261777133568438524245814347487518731228991372924978603337253675620231522081588266382154162096324647186864435742593663534574612486453237479034900662006220525844156137923311479031789360271435539821996430915795863046676401964339331976410272375708214232592660841495976213280319365171090980115398233884131441223680320363738351520269368829827325075388494787373746977922936273874150373541326193511813929491444682996880034114769405821343898685437419352782491278713514189921472728107767808466786435425586116285635425850191024059669385616414759358874380006900873083131882230539529605474387548035643868166214396707604262181076184420574340346248156272287464089561510492550941514192699964542975383354340322126412574046922407197353328879309710696166728224841373693135559255157609136031461195953122108008444054328936732529642721047985090308264791617148573756445531331316811106153808184342205236155849340708582604392168624324985370511252445606913872040982905469442200868372573784190033286352062778646362020389391629803576291619431024874738892778988069972625960206526204808917847927094961240265558728585262973771263681055984962538731881070127667072068662434068087238174207521557895242325324681149290167393766322158119265983044589477232971737560375768288365973272106212814819203520133837281544327603700211690414722868736897313991882484115081639501001932878487791760434021697189911513778691634560638402718543979012930852113170350674579966190684710285173188864450886277024959034921766321213482804994524070358826485654343148756498252722314542801749191668820262710753069631181025568290494337452531501853478095851620694130525204683411803650973716635944258075646008434201277872672540633805055180917277178343512742226814893073315607459027116165447550396273423243088914333868005186251664825907417518501616342668914492011775245789924968212564755810753835783352024318904165870676473585354191794975343869025576594875761038618958062544674668072895035176092193288695162941359644106040971053537212457718145224924855437197285315106016162589407135691037516223370079476950929502193622574929183846886981734911508520099159040092345967262201273734833203327663409345471427170678729231748867141997375354179114420551071400424465038854321084747984349145217940156009640106894016712770838024089100585405317857230843206370601513957713577288799366801385801200440454932367363632310669830184292548515519840391630741455971694351339532445200083329084412245439001614447783279640537430230558793940607651258127861535027812435648874966257216959302365635183677018260591901936380493531365110256244954277948748013636349303565713504333901482305529783879581827855702878844410733724273842917802337894699936270281044480274354101758320154147659388926331783434381330800356255031697780634705451575286659293189802154618248419863200663362533924536240491526111495501210230208841684814267476056280653319546651183883604031765730547058113349944682861149499063012977664529784025771145014320119187845018806597647075327027390420038065917732090183293812351512304632655316634286218234888018062114320301158370910610376216902455637317451547733439673383584936415642408650983286112890940064854929983374458615516225148476649990201168459873881276588685537077327363954848241757333158104025305267927214272584079993145714626234124160608132891393354052558563562256748040476700784803190062723214161549486083508814488063938682047962949322887300452324622919137302100909800853418427999580311159816296555454904933014383246213565178816628336690986892081075908038048145856187082415188389864026460395034155648574321379836177648564793885024415285824095742445072849226695676136655589186671230394731564243166310568951828426483654165279590074300902305418730607648512526840464772291028693405702430466026067158178679444943487595758493256518318135200748391205878931896365009401286931214130506957787254789099911037530738349878225923809249668379239138434750608055586094204703392521122060731941758163222908619762032389035547728493748353569769534107825440801962494225883987281471529117341286087143048517893476232645626749362162074265795249921562262073268060400516593459963705885036116453451919551291821553108925790982077612763713382851726175543738294521198153929846525381338131766413280251270575253391291963318534851882374246113005170387727367415765614366352452854144701042655281084690224568797898612779264434791748853999547345919789036727788826512413671027519169268363857644118028256672378681953754409865412952047504425163262099019097456106413225923605739222413227800775031748621217516391764752321902460482988408747346657543404492414628831362777733328318311205420781302963470716509322867569672371658911865033421316923747273348846240788477815164447178402423808341315112894780730438084156660925556379932800058333532088284435530920507388571445108446736489116984261257318639527859364987566753294773489561777407994510356764292871072914164498564606615019889866713076227957652968685039708709593688989413363379605205232877489033244096669322220725547535550708625160201203656560947765579138051615797729645336599848825797789432698889975397622215533267309028874724820887526578450531244888487424681075841825269200645223024917053686084436339096928269446769097735215134301812636634609272547941954073030318757649313240755284324022012391487149248591720806066875950250595330285762149290320107155606993610540445412428765952996472932311196415562609133290979640034921304289398750888952118569562717377980349226511493414105025810580864392891855763658331398575684485295688960801409458682317096609312771342605071165415841572949947889028926633820690866175439010836157787913675847641017716041731758945678122784338529938367242352960982624350954406715094087288646669352465584954084990508106731652128814948304891062653727945773440894129757004726730843931241214935915392146335789802292261053408581685925125932453757457832291803136340416274372798519143237588548594246350183454408716829727017794484363692373463641284458001475246176298267196840292828526889245603325832415245291226904325462321381812165013472115164478554748580541585628660289457578788408199056471942027965593211330822246613383820658131012317879174084558015622112360235770510717338961854558763640094285740489977984706727757742666156661756364927013113752098318857908779875381058014539027529385986922812064865233756116536378481272880723906028348585693947405249469993780383941115283671473502789316807851748997665169149157046209848057967157865536655715836045693403479744638356628426627092847241802223588773432481839471245257671830106818505295998647003287804365532784489630217536702074765869939340380048441975479472286448521897674391165507457353215481154409147736557611899773239413579790124759106946355292038933794561515690507789343578388809557949334908165160395231302848474534610915857184191515434180707120251969821594136497473622023627523049074790389723458043126237185219177437563529579605669803452926531948767035310698926441238459862336519318757143855407737950248124089256917918452574349593635986552191691361874900579729528600348989524012144765523487299353027680823151410131887598319855162564501645018374460707074775411448332523169568915495925047859899495142850286923375913545103810963909412288863366283277946385776361117154237088450763900147412701161046978026867899360876573788390889980869977988953981806560093743704565389118969448886022781080607134693232836772136495721348074353054834315705691837282926034182897877602986486495630783108462626508013067215500090008556660817572577951058605186745355654701196782086470049532232577906658313988185794663415135590004036929927955717128123723178658071110500750528278379516643646431549951674087281628889063194285861246326601088409429909663104477675920608929893026985350748231862095111385501877582879495498413173133575809263908249319194272023070037952485447938287620310022277490354147326198169996563855225200856170425358141960506051477826727114143198430609600873043592126893189915890218549323952824244164946105252723765689184981998307089922556242677331817703491406679574605882158046659823145064416533919388045009886283142178964295297695920242040573244270565974700008144098710058642373620311392561553029234737138031999036818534601825213169887311042707670977584338750723949415513461315216631666050841488802288481883397773948126064275002126338019928259794385311753814706801621779926924664481405850412467085786136327868422001753404040403157340136971890782580853641138094606768966754582829941918429712828908791013885819479973554537699342138264217710220864151329769836761520529834720705251017081494561202600177621110081421850832799611121271530379569981976449377269674695601667533317668936998914481137979464523095153099157853155736522927306930571687666419973038140091181620572155454786577267385833241129715398853078213047243360092706923312166559292724863824378543709677235727734363598181858514145782539550679096184439086274967186305436409777378156718803376931796272780926565492093443373749681298658504828681178005094156677186795760994352198140609919807720627844855065525174173965148052106518848100820390613667511071163549923932459391601617442256780431142517805405031197531898542368784562731585089288569611915969128721354117274366645646155765579457812248657589684288236945397115220103806493570582110803209807400732531271845320218718218583334821781873381756715178249696844826081162362241611699077409846878991587139964992431412369320562231255033183040712472144474404171387817249238292845356128719419507708657435622926371553638009090956449834131882732871223045707156330402021896952506670908886632677199699468303981824602521443440108436791793891064913469718185513312484288575785080640324393887796723884009316567664326584800618837137005790815095337164354726782203370297987156649126611221794748674007752314675978784951757691944079697662262912879814633436843439917430665392551291127105758750841594192950959192077589789297730549510539759086216815920920482880538432663864894753886304536804264083078248480658125067406713353811553889056729429632950089506377432140454836024001900451661179399376796334805949856550543073559724560098711361211656731431820024983155311840806471856129186469506569369111943806758503671908476333666746106134733277457469730379897077077506392140260484756926379052235448727306064429482500959097904338296079853443497361394460101802008934386779595714168364949921666546603824182865411652833355014996352309276387972057205418516869481798613121070468332197400450372547860953100982998632806215288839480834983717556913849106512878536336941281839867862985113655294851302875437514610502906200525453305659361790507352740615875074374817503334651242408858893114058638840024512351668477630226518252460049726400677000750915410638060804237450322142030894714061640439219950986918847704065628536324904758241245398105329527901572589511659302519548091746555345020446277776131237022971682616352554755453742985043851999974041469400326992466908208775780467587421418860886737972874979516166920424228545925764901312238909671343210884656831833099837373666625374019562362921305527605746262698091742110847829873785781420213644706908847139198870989751700125403978996672683104976009028010703256717941812636224277417213766668984511270798662009822593155464730963815426105717957319433180664573840559977022708431888172254033802402456735270425004756969853730386995097104098003882868161223365273962424027324922776108616548751611917960453228240364019236678614537887315629600763630041837759565248741315835034950743750191612008435281197806544233714891301126430864174072551351237098132945679768409954390465000082920612367591837664427818456423303209582703063734789102838645070009717091719825728187066356382979689666305399037637557157014367409202155810402309913707980472601440378923024943329141319063060425522548721451184634666899285876890375611915107893985236497959523697061465194470016264374572684281636223393567597856349897834207940935649062265617912516542614567389668139701490150649572319012429988938490498035238048097033552379109378906658261042539686030953482020078381060493843464172874033340518861046968906269137302982103207120893055249936656661741085322986856394759004008258792308200479530120414058251529577430337143731071449777225089201903023984066540136201903158367150200804804785358012570076261699858544058119300860402836581625202529592910735389314188632583347390021763405411451549118856860148368600974751757250113923347370308776248068775803379229076658932490522726130650011943221010197697393720392722182274442025232408449488530366156003774986636010564922744847548967288283673621682880193609069604890339543148966550952485206411861446287275635753188321817799365470887651102038909807113888835515368572567261117493391436533439661168653659565912793070984722052792388994123272500308221479445013481395768580756770598014900606910759623002473120822038241947534055686028558046595598434017256484766094698247557307158137532093791652172577133746474952079662014154866443887225415533704220858630387235395281347087731736227875632880010411442347256163981692330408679755041641441560284296850654429752926609048236205121049908588087549788655523940950844075275034718008541225081003788160264763920575480207731680357863214987391181411350249876952408050071358659939221411670042154233381484350595956104660790067282237624569949189340139628217256498950025537789956653808955549588149718366637160305825406249423369835125942427563193216265622190335703106927681962029561302411893657809673129540634493308959175840303084930056747963276254789032421587528195648627759092926240835850102458103067602124547780404544384906804624362592500098914779329791215374814562716154577592617448862241555619014206308866440511003185226328445753439799479978054250605731512910842995804433377598694805544290232854599874740081632440757872061943628225426456793126435827747165247953173383531818746923475640653722368906387574898360276371921702505357044156924831644131153860577801764840702008874927627581288595868456806575312785432179469017064394088568581397605846292894663131278960303118926047170268563616626600332744210530254403036987287530774455785875082193100388070475278102658183394717009519682546236422466506739787827514401782949686437821642388823814827233325980136666823002044478748915482169362192478899876442924606736973052312170535998530063437540146511723624951375202482231352816348904028722486441130765638891992983192989857147475849993293988286731988979094736085161152126779560331677584492902762218041137795762854593326485955366078934873041676709443523838313002163539055972495522358097254116177128929834000567799920941518909316689108510891158350227597397185472343376646538410897793064122088922061218094141620211964253962321771566545078660124496406016481076846963045271209108173448975517571442733279217259252359332118835073652732809688562269288288838963092862319322746986458074457934357889707239862566665702631887871759549086159552463955112008728685733946563957020837991927449348331821794724522350661853932672328798756955045464561238078887231044299731057382847894749383724374735927879306328688655689757159235357873016014582612052337337816736051715854868372965445900125979831494589389508883568842135120956623746841904571957274777138016211954094466439968185895330910382182433123670815923599784872427829922381400339626808581206645201034449247586212358803993619020093973717827730677202662230717992035923160440844506606163396069528633145562862665250620449069115618326781626622795389994098170951326760309070150160710903203155949883994066553980783701442830786815305265012643406528905188545740314087018219579133242570500465701180480651218149415393790859973902283544363328301143395012597533727422291370875848901985511855345683067795270244061282998039792998632122375852208465213247336055341813016404040840102768259107712530138939219990865006938226818936019860605887543628809792496893711791711621558902234225634956835002011635506913343515937980875196289819883356365900718243200411332290079501648532673834785528241072620941646174934251229627978485873171161229901375877658436571840342429349851362820535024684159950035154610960183205058956058073463333306734077923647576713068869262069648440084388547197552463324390489735632464332602423488412442605278094239979504436665237842127848513529205416773365102422986413558496649223712462342977570327971144004108052141117397100989242415623579885352319618991203286556508479668033160026120601966013208002186936122447238191044971353099370505154081492609163467705710938445644837839235722492072820269982095009238730628263266136388426779606749291890403887444231047005697031268118485192152950505944459891044949717175224510269849260286244907904217658554835901394388384574411206401856925261110358437741103989598747021194509013164519310029861450813519827858576169324351797357888359719438389557563333220460804082293284650762719829851220838299811230694051454257610003658598221060879796806558257085724741362041976648581392036615060185890241085508471759469904172132925072093791327928194041188810117002977906689158208628033660903200729978812913716444705696636852640137882841887332900377271756264958277666371970947465070306271324120697305937032342762551748398333179051791519692095583232228788226206228431510993434474114985487071857770117679272999832580222014140691738759396271045225020397003347465033818139400690706652905068291909885560253958748324043206599183820399406464754337316643253949634656228858958912474525599028418867764219446119574733408637018977756129660346957658268537320670417699002053159250843373832670629099053611840976745544788964693650028764317354581217258626753650045843083191995644051982917598271710804765876250237049914473934633459080993162677639337271599081711537649901482055341782945055325922696246967291785867102976895166524538601742419565324091148400621716502270995002906365623583066000305728944150729115400950819932857806504432729935718833834262132998647444545633155165951652087337787189251318925343367295386738010842395453504677220106941376806207196750814204411863581058843210129056960203607602185478802735296809238909654198795817621997655416048874899026669759708037391053056932270502504345910903050499558437113256064451345674432156710432593590039381602528871106906709054215665477227547841610978850792561965542019559945870697668025401450883622471117092040117856513812864414376533143858114746140344351269551040402543189307277490386870348345473690997068723439053385608206884059820465840244031071682264646404495883212577308053425877462180699926552827728937368115716871141751296134779958680162277593014631139840433175295107677931488821405006847697565176653819476189616814955877357554696894982326825087976922460083052798746448480592037633116864768012494027688294265177008976821651399681162081803405968228401754673521556140071814604170796175388139524057082408997153908165567192317837569324916132067633014748264530760889380449516153911997862552267379197413523414984350999297679025967385651633111916372087081701543257919790596814892778675335645746954962546458467998906139623692618344995585228658718823306952647708967475882882436727483155762696459680654987200562429881565034338181817514122664092614730480357260552717508423225740964935042152328983822977142180338685649253240182097586956038762982790023627116889732698934170461993622628780090673874030305568246442549494551582288080914454784357017594958835543592731126331362983301129222205981948647951832952873677553531814288076517723242281279530782314506473284547491216892533320769832471329916056346455518671841346188550839932214752321456792150780880590956527154821350226245983641023461200473804715781777367019017442531933530831042758519782218689530523783361234393568529157729265232242940434053818190248549522382575306142637273873050101632027393488891422775382199324669920883502062898462424969764299247505022433712901273939606538892922652531738078087158498112379495982002567055008846281874518335511564718796416206476668813721001668962099140225573583749000202896926001291665486002665448784123210620199651040462627054150541097032287110492996264532854126323890906076095356884102513574488344199619346430859229499316419552314385361630634534060479965271792458446094020334320744069930901643536396940349898225609911830756269155235156803514870841540588057187068279734294184716263988216605231191382652161000151963478389847958358598149756984776599880585665483295505010171786881830503461393139722994785720724611135602429980486625186371029514854290507199587553701528083519788661529116188576612262302909640464847971887599148693267036886038942365645493497214524239105031632063771771918068259199336010340302480068488457126658809273885606572311620891840540089490710595802181491522606564131717387365602197547372465954585897821691733669727252458860305380938121920474115598048923223237103651903980300739665921411065820918978440221935778793905973716773211916913661768167733403797021615227734272314747573039502649617071085193374052615422620643056091983309972214466225903345908931887275117832827580446994791850295971815794898854221182503853321428736574729859154240860069439748256386069023339930027882804157074863256264697458787516512487676429874903300150210126486747444821444810023623606879439506099161595503398708804417053402425855549427300989122857631703064188483474583057190586592315182967637375824023145168863361370297443330801718887873708525310235674013753267099468993888564126616128161589697573660394536405644090364479695489520435510566306183037660914888933843343523950356098527452662039947401416862112043243124422061014989998418380584029122764265173529257062632536960267938620028949267720803216095701355429150334577007248046552679239325211431902819367093979618804178714817571465822671287955430523379268849657302987894530689281441912395208999440516345484160875524450567686423479344401059384515179182767632173486641672922779949961213629163677238671733618493016792483081607734678203540232753558395024432783318082271747611013902663894991270739229917771427227331696124225685679296010616149589645024206824816878247122154075189406029184676402332094496608189532299831996543256399226148578691163157873006667581482255582269434037511143461935827251881933605410229093041901865954147706157014128441533942903246785185967306472571145962538199642046719532476491148320411928497681940008454775962456171326703947848127398921319909428237124945213272357054981403762858988473036217555318986140824584024412334655695133364547120069296980481165886740636104731885148597994913132331386556328562871676172652675628250320356241630210345693284483027127723403891763574195820722968535729460055620560406562210900863251921315214927820550211883678686690979039489843601123236396818089255406521381507944640151449071978906901326812445640299280083024826074010978385683885344390657356229828753689423356606661440838130080382605879289179743207805187891341420145868887052046654021811073818844156082903081765800381042307872397153990047777313859858088009306253634272595431838823902164152637291454393509050698251396104120664588870844856007556937886478640121604229121308961925631051585439870927492092878058337720775371812305125802740253840137676790262062389388758128833768998065277506354405083491411380173895782374633176723585372830439034846577310617496791600758447641057542418370094779622449643029947213327348444918910665865468565366091817355555654789950795680569979418360636507024996398779402761028260034884334066086861054043953844724109385012453807883218806202209297936718905106599781477642331732972231651882838639242790810174758711139306983742316722947687111219053635453258892013233625864036804191773729041411240477437777099795786842479662775345016532508002189396766575157864299481083912617404412237077270654102435114132859252455094964346934517277227148135806849176097956841223671638082293207002432006234943193528066049934402980010750888342105268611503165441435955914486078759958600312019798062143010046499797251088931664985974403854268785578818499891562754129983191140067120751054846306954135527855481141538555265182739642516895817383705342046376256415446432943743369454330239354833053419915710188051035776566352354143232865422432106394055953090861628676185306097645804537003281216600885934766975080190990926124466926380032794385514225776782744806493020363033629852690740241858239442864908706977260189754049537806157213879608664175325915105361374097102441100172788665885143683922680582831829254693025538770756624392072115757230485019431730434401243000292650689741830864634831556340413634179887311637668074167294874311273093986863686902960732154361027177608338074302352847843802227385099421672655266409140109346314359253827653478017673889632717586379454051972845361385832868273663846937347359017770087774197900812498770393259143962494507907308717574920096846008669288730834332405063264738900674190579321075510538496611543787444881860544258308663360053738654847049560398955899841681280499496549178575847412463626317059188553071075879854791142852344681551665657057825922958046764400340622688708620341921428247563419820708071542975933864438955840789292223116012373433891711379468161575076946220894801859363168112016623067774274017191953976326823695390974257402773545219544310973893467228559986815050671784855411326800870033815372154340961028701574828920415026036232614235448194670330055931191954505025806436292576274176400074129114185995979854426345783030085072752413515688071657852164637818604836728629515893746840569168111022934155127461544858369666061538001327397555850987379397985813424612254548132513686258578451498248208883034873854968994575084176308709630689235957659881342130220544798621468848071380352489084285489718470615617380732240453438300774317364997697362687506672795134123483201852350086902943454153473245798273048039435522003573287205637478433795427037090262114477115004983847427669971777678682728163879370952968927328986869322678390249560257885482494440864649337560873894624585231661180424539278435416596984865890934359910232488537994127497835626489895703604869675597622764347262366077351548208754959604858597118450082178765389457973931355257072432393236529072897156945465636368751886633857173210789366551892183453710922354223221362033319733837945230731341900576866222521290845258553977190178065639579509881914871891453044228169088319338294475106615677036935407728802186865364112304418161098315895157199099678368749991943838293282076374913525955290664554512196221224823387903439213875860013306425202141137540730473234054992075913881918949972534078523518708434121265034793687800517880556492665981741621998710299680235594108747743657368568686198894649118887310574049654805538940988246620951694346236180085010102566867895459867972695618762795949844348271635264673863992436021351787983315966197546793329872585579343922651837390390331366491273563887648411719494557681396944769373492788855449443108929277546426368145911631761612970895164555215234711049266236367577740352825788264527926599584431314916119215664434598209831706643132510168141049055590470016998893188297792715293061347310050288696823833062742590446935810588796321554630270150011230487942824173161748358808442448157081155344649464901199221287034270113950571857410904649253335099122494579811425327402390116870955413640181673752272519700176729420020113305295157803451523471607824216027334124073482480502465356336990802816913607850064483651791846242826099547391081586961523603391761638057755343569428709810379399464179860997292035579338433211030566199883214193483538330515445655636926512596274988613713970964009521520945496207690448755237216856732982368289969845407469719769975842147653697483754003328300330602170304936847535489756515371625346520602600271578590940945575949072374982170588058811719183961072965013943321041076725114972023793439262023718041433427529517432053565761052835005371803639794366562339740520527455776966390276894844250778558988635098794393975917085361066709037945080751547958133128429815296040750862074058188863917909407787378038996767320900556729764251334003829521048156053829670260003080840200619902249768931438513787452409516583249823499386570436524907632827731062523314644234806708773910757328926491547890246199032616865402870647885368401947909403635122541673213144657154178064963143768515008795505616172606944379843256081997386114303769981799835486302052611089990480558066749075857946834874743928245738820068722112534629389595197440896149277046238332727861979802180047461125172014130785401928159860123059373863008050984132079483363289660005432115420396111877343724548403726882796847932023379385570139502703335518348015515310351517254849431027971997180608080554904532009347820429823506433368791190286303947085177659028252124912916836313297851667388713781986176451873966664505881100177576183419881932251340944360090920063554993086236949773278491710369369610952516867628436460277317219761088693165402091226619623865619950965507987936894497108453113037100236914755537042395727987527856678588801102115686049626505441169668728455120553544674168363640334312982275437667846090783059399635826773484055209985920574890085421209952271721279767984356766175000539571045773319758648430941885815455086947893143653644070159758957545751084007233308763686251443529688486443532882112319765703584349895265228291511876572588960482466569876663773522218353526088078565741583900097342327834319440457776695409417668272285028135155702789258221905746122172793548025972802647678296383664684597195044803478177014730848134332912130034372364805661977347872936775214632146489059636446416092133614770818867611435747343407714451592428564577953795485676839929473801994879719889115388658374105167824811878360781706216669682867372647581656059209835235591999684418123834212116006959001922819761527754231456296192037662399898939510127565295909897222178373237027126185601283387223374798136447101918671694600410531688727135550610430375192295722935481155566127257506590094220040855006566457237290402532342877597722124259101548277967762178428406075107904978318265148648082507925460274521591251897084561221708163625606027953593241039272531511602001024068243360005266537038012537599236071819183077114314424118390966971320453330333283711297633940400463942347807678488263028087859528404147563843587678808675528989712883634102422908616504845403543733928801661492800815289624097750870887542470421078898094687967321489064541923283027686564613406178016423344028313057933582249419881971641761199238590433354699357123769769768401996406517169699220025018854250296747374477059334673584667851693988627914957167503374799726663435115139904985162692089887869758877423686597455907935240806007545286312916827269125062418928427805100096930476271802744575433949166511552974015537162369248021442981914038337327882417757741524544467461484487106873824101607431203547480972367034394911163860132407176123095782066923007770895398582126990623278091527122014891519642057332303874052153863733120689128812314663132361599493114673219665274237409758802767090987660769963047018260964239183523428801484650211887591433188696200694103548219316392358463912870450954579992494917586677343914723301611812502450261404899053168476718158898106575524601238977244114903400105549248449552410649034566107142989380522426817991933445354152468122841854181494925937616300334562290025507476534383646984448751636042545425585869164622542989265094000828879156601735145211568180899521279219005526341913768323198553620653002896361852417852829735251752746136448925527315193463765500388183734199459409936401257283255189483750531530081700547241757029638976911796387492632488519623508193036373590338237604262262159385035042003930306326868200180908579944954810792513863044029367554313157473260315533111027697581941034105472903764792086049200920948936879046037953643723412407339119940577713295047526158978987108579704739040674060546339658715577924524683282204122559938584952873024468933550654464653679380477772835179434481914279720891704292941617523185723363675239488732314358450129706221918187795393563087179713261937585674863483842407445959798133444658509421486747019021653516787007992490045425274592492952636618826539737283929007780937337180429884348407384029553092245642671254336002119977179245469992720771188002990949601790202837585516617545375781687130014109597946629767389277242441947699117030322226038391622816432809252850970619550923094829662368264448981971270409178275106631082772072754523064239547277737516727891119374755697680874921491605492278323084894755146022058767837714372814832595974135376961612951776790120253979173482661937495597713213529259864404749257053091800161677557900240314884869473099523555923514087812904468023063705319146367643654483558361315542890671085615072045206786085835580454336239006782016906281971614530826981415916935682841500417901602817963464686068221006381010126858751415593872876172393099538885220649741253711402325295594047635960557421108857903877082146314692500298682074720566030269175349930357240421584313758314897177469016945971142593344079628896641793463764418434899690214158484208471974072965615767420985483695404525811985651032868404795793989729534306984751643825248366116197446092076901848211539953962958816831983567496090379299262595864187702222450803067345990420040335196352380443822519626953653865806295112254311470536141329881586834240775952245353686326363901789748689802791843749552193629127029517497867460128879355098425732871730437894011048583236675628227820118992033791357673458311991172203215618636851171841213694805884287999964567558228165275656137822797998952965939095046773130184904140021403253328074852462225638250448580001714089618928136587303284153486050190824924242185859421894780424463186197662203481707325282037739801988242958867223672471246942440487843805605454918958632975901351446374301924460987282227480402511657107612887960479789247644967299979397313214699461535560217550574203416088301535677252001143424102686296220254242303264398708307525222570593365127061078104684972120375526128237560226924716561554796619546276865121202839870318115746514751405032421637238251332502049327280695056938656992065348671285555077896833608503749901688632232998316730976519109110707900262782039117091859152881162764742956587966146660875395802767228128934763202267826494885716061141995347195841391499437211625003608235126290045021728872072283428078248252610007772687844471440976155166954166027566542099016999881046430542660951287340453822285971669644915592965847487055573828745308802265517704017592139025043737693212544119900872671687256843418851577865816559694515066870926173254633391892178372486347858044524122654577448250151829972080153320126159542949268976878497563065636177438504633727289105468540141147023684414282555680633439296785168792950442616034910550021252899343169029878830904836667583052975101669461786834227040007464901642419532304879791005417470079931421045773914421666440002605719382005620351984542239056861995391501143671143051603564347213773346113790773823684990798918531470364057661627076934882535287883591320077346729752093691149089280463192582397666840075988448897148121309668507443060462113872934949896783734099555838796541467844042990268127802224438633459093045782754133809269310928688333501541480143391537559952592183209378696347625533081529404670590425124644917722009735494468885274740065555314185650067170326435606907922249083533307178357430395936246219722401982686297179121891872861018134593111550242379100240851776425137165482872334961173230318750389442161704522569616621307956533943353521159389310472939912503367839660603455893134851391013997386354982091569247393368142123786291331201730195241292508320147983239947478596687369928865030940226800819019857631294575188906687884185651367529269906243301119063614082389050700743435501036062795117680833102096234367333694192203410696133952606949403133043267634165142904438866394675381041882566783266614441558744440833197192342822557232489825037219884395563374494184458576640506832369084506268840843492877351638659586261897819675564553061411191347639303348251249672554869182456260367910791985518571743116686884366102070033778289029996613248965973551099991954213669842066287882023513835912629594658594562380106933347060432154439759650979254805163029975049398911348172056344631205785135308031920273124971444197670038229385636240779532522908714255030153542507746089416379565046339612856706187074084523584879254550396214417994712031270892046460212335186642786676142735040915257134458112662700168001167465163074536844407111050084525583590104461479746688753019602509990146430038840140137958403278981261604200512482128365598687163783422515603721287053361667123998456566957717863061021886804077074375993583925556584301918534517142977451904231071507616356928263003543983629383399060146833910557879920047651451711251624366087671184715969304952542396413379427212392054082059023894165200918567146066796861708560737456664685230316343382406987855939536572542611962409282477108401671549982654822431254292338253165504825743934682137226661365607687395978760339390280090178917119930856251615698215559039023827717023844380948175977405863403239083858026910821187187927206456624698198945989533005778718375791218236396432427535520818470921484046365336150119234144411489993110379403347207987880247330784542091067928981926911313733111914593855239584805217644810487899105776135999450093060144784075869709092752211214809892650683249047751545795121263883857056619707879525671029414927992355446778766435276926517347801478743945027832902652202414031909353405375338733125491921425861001708780360817368046997571356762269157976895093854233139956385309403026960419400125182686988161286526147779231166563230510725540076140570861519320295510608384474848812674831905547295164794936962553338247519847202669026651585236937795007001429251690466378879664792486121799458550527081035291208744149761049180296057934529136405380294099408815033624116383097391986536023906328097476093998834552576672960940763871900136477728440131743855813576499932820378779282257604823394124476599137587971575463281909122383215227930547376010945256664173447390636192009483326195369229354972273726916024146593503738716504347353016985478490029124677920968302610935847702457127124847130168055458964085029907877124141254143651025162871144787580589974069022648127045101864932168711133087498995401569501640958553949153355927903382134156247285773657012821099211048699336863133190656277030901106231961707466578042434651219559191553019532768665945526852758400059563012232492004979673329221646608201187003587226548537327319730907091122242588247790399414744243061031022743813008045954745147241575006270660328475090493691565040300043573158430804412146314772737515227494188885594862920299809600245479077817057777751293121719254562187634368306938013296720682979890562996390397906993038268560439301130905506279908099888869448701330292922286874160762138815923835843575182616185683609498061564000524857677255763147819844492026368104710771179549174931378939343389793800182471980424889552835363962999434448708488936399718612853392124111751108168271529630680102176054884397131357868833487687075674160290893161773130883103490409846032382131372802249770183012173134710976548960674942192956501253091456530864084978513296808038800880667518322591419293504632790744541898745292054114343030066714362682639251031649436451553734757883489861816351833861938228116389266600311393590137173357185397181141600229167203588284164455475657806147286839514533701239471663190373776994992961331601104763307970517375815363084187839074029946544495930884070064637800170973672068193884572554932526757453825502385081393280157922735600756782275242851366815373414936193129313278697345590796229297860424920631016857985029245166803810762973387611652784912663901455630587443554678270209860160779363741684909946322933152558410670612010494185109647918561175422808000005958629124155823067478534989102386633234577294854645339009710659236419255165039577215426956858490756099576269206012331063263549125926025751046253435269407918935691397734059176870324703812367294317635010336625961608372620562816916731654785359617657629869805998689439675772207569404298666646263210561826584755394456928343482402990724976061528744293045580358009799041622528316266569288923458538727696034213732147124390265496500773535792053719353300306679237835084173679665045314038750779940005194570769132587543567570490785413670847852698828084191165757862428272288589182959056714653892803889663119388997999108403011778228808720491927893334998054703514688539336469169110761026596165042969169577292419635019163673287730811161352859863795005270943449985853742438420306873122126284666732291608481843305403258447303621260127803415415528499650344979005074975206672805501200333811476038056211114768058486778438723939362224874079302511583364524128417301034896563424950316498409284068396115950194435310218280219016239576845750293011315186009441366481674729096435374274500483961597038223505200202538912816463296624671846211657009086322667885596918877653850474573863309019157358227828425198520626298540967293273930919165524210488506911721823693997713964038478824044278592103084257421218304557043743299476459290155040936664690432139414228120359284273864802662123364487613395107988578798979428307620765589121981239260598816480765433337047094903133519016767995306184389251795568236147779188796867147517280701773709607755426347245350873230608994030425966079459992814615047648731744098658275806389492440809876299589118271101608531155151391663878495901058348943998189261803836788270549125585842060253874916203682068095887589101347012327294973045340524630579339892338806030981807389790507338991169549521676151173633537816509613559949823933269048860608537240353235891109045191276936699972748085300567241107559695481153099348875955293223828262088277616676526193437236939209842636526952622174960966516299495383639420794245879667686271929313144157198300343234399359498856652003705712011812764886937159113820909302582696472996812544563902111307006563078459560905899987077969528401176057009884835811419042425452482449513975163864994900487686646366663156645544582630534824534428526670377293246588117841413505599183161808255099911813960000934538376142388142515446968901265532328624759053462333133223326223868139598416641333736087400097898149064193727823505458635616268135585681864046191063317129172580543638234147443903462664678249749756074800970655888032747053545531756679916445610109596351386344389787897374943063738057779024477431917118874589294538315488387954050379452598380622067313557011077500131571925429138516859032028596329202565897087304732281685801152934693816053040872502259275951967736116571533417191454126561907712292945850472118332129133108564335492225621920789476171497446150629291826501805284037904064979564467567331743958221317338802129104521392310771696516913295441735212927283601882661528524002071954728168550034397003762707152858774491581466147896026747239785116814275084799564867567178765239175703791375240132479943431832459742354696613431479671131742100511039571940843015431872796944529289469445578487815843715048188797986391595823041673754012618447841240316387833182847968963656900276376741299072667967094074897745527893366095475427350587974825461095312510843102779672055409055871133778344046715139245365035323439205529570164747710294955065112356059585173971802132359983745897689978104077603089157201370974861759939491551335361223452604256215859468239340493958165488454419945767017099366371761577523291831957252575426170934335356816041668865156749951031586977244684930838680443257238144136790218391882936931103499021914988555151275127765894721260757694807405667433588286827388488271024029172911106475826917224718310602827602825046617504724813104380666824998660002642801884093315338586154719367123093531362593639963062604282951315880457472164498252025414014024779496066891702989698523203614764822857793739362254151323396588024366301684290612478593413664272560144658700755509806006687347797760722123560551902310631780316934113452298964835494394134093789658704759203495029376960855965280481836236578407215059487928328217045817098618000475376629644294284914853788875302678821994684441539879841918277578963861142463932673579168231581684683642999847470409204828889118265310957214470555304104833019854841505116421349457315778343229930167370814773745917219975300414029966364809158475899183944516183703952963912603571940458533917107745405414733818410627225420361442335351526455994363320923736310703173159818293257796544449058192603529870327019027697474000504913768597585397074251783144587224594691566304437218874301931788411748203618121191729064960953272857126556578072045330620541274338349716706181926524579488613462063922538327590854437192058624801039402040700094846671842270862018583918693157075376567855469752528331335683737016967816893205383140310488253281807847093302542590072511908084686759788486196419742129770552255893612188414943763621654394668687994991922667573842262137207164300415966399036789627913800573918395909124651719595702609430242117989270402019363391802689916789231216635083319137833425305323813871729685924129073154959260127364225482131233092165315712541031731919221562771291964071318645459997833108765319161382564629277008649729431912877356332937116946195369393778292144555689011830527458003773669919807373855398552051356975850513022612363347089591780433190421506584046941916341330557937196809290703138151863300723041333934583230158664190792625605466863402520116832500564096145633143331369680773259619731142295766611848297089677546645691190629711567435083107322100995023882738391612890444861151751298005083169374934846733149874746761489101793037331361426653760393298666950400599819710281147608694592394094283250497649701815103169423966163755623877550933835690799255279943728664839926033218861373678720828819562646032922191121618116001401868643724844423504177993271811529193527060053292489897314744989283547209908458422754766741409532799812271513539480519016946361778230422222611361115042009301255953740130514303202731202322191793101054188401448814698142648204154922465696328467530967495710214524503112749288666524558127656850458908346384563354360870523602973641157749650404783554749688183634125939976785398936403399104312109072077257278571306681207689277673541097545767410779882836709353697526479319842583536133898034299237804941541306896619867765549469436332342263713574270350333242366296104992910071776034145412654242082981291266688038182963839803011686986930591698090988716890477097978900927043634133821292275806601275250864375203466891106912268214583039941080519678917515444929536049568877168157484012518174255250612187352060543244680331953634384541108736961133763413240855043529788000549179633407161684800302768403009179089987466598267147109834610110109417895387533905503077990115665978105826223875919255674337099850935288073977315856082373570506621263683103243110737661491221126503282683266552347690629948768408193539922239013064848079792268347334613073906497761765733985696338414123495556315366843573310893015352663473683852960288870180049947867813783447738603781649729195855972880974462855192422221435295087825133840878705241015524708925159463381851454109963968197240476931072860553669677976461200074553655616411212173346109850764239081448857008831777902926231174450622468708384678460921059795765103733109721192585301889773337025008449911941976067772818671705641388075468280544080982227265438681730640090871840801147293992562959054656250966200864747841072041714554348326067946746148625523033869934720118472014368243722396811626124969898226609451066497476325273130269226731382184957415781171980870635522633806953113855707096851610780324911154070999168552334315708532706598228059765633043224978481679438307408971703904802521512230862300781075085100366493271912667892353615815426624816647556504728277587141107481190737565679826623802891643264101745269934404225438347631815608321060322429093608386697364689415835322139581604818485606962320333663094970940802028439713169239668092124468238032561435106347852022562383377589977619702245530166669044354404344760311334763047852941528915158074528590437636358054126732169893378680316616688401830152527853222755916230714843435736536217951967038768191166319466048978291934122344736446601353072269403072448807446840440943725705600507400978711382726009555471033577808887709412239650541798214418244461397590695421556322286057245361301216571002732038904790660937247689680321053862774588567347757612434214777551426744362934855043145855863148435318921934954713355139132901532398761518850958569912714158328856106327439273514564239406986398495408255407040778373034943253464450592844481299753507946974401661452514228796944316144073320025999710815357344597470816764383996750050807949742079530433704092272148035014037434060480585737238281315110991273764738855761715513814641566248464403299727622740257013491801341083158581256370153748682032862589807942103040761115361948067872778324372870158179268876762004453452841663761173362486000776814896615399386609367533378681604099515852378290502203903719855653828044955909051559072813227019093561786018297030066127810037082294705948688044525312317690038485113986211521876548456860148058901582417922547058505030689076482071651339619458439493285042657962757369802855593451215325964036443892735714038179273875753007712832949245254943839355763623908921403166219628794097050169326573264780966119255097147764591897677423317261463352856182071484153214239164840296043298319621137514948021175282114072921689619614741523953411836191046554873695595716309951616333146310199415767596445978032036429559672306830837084852637373126692815625020498529799168057284760651809537200885917900201526175943613248778991399345852431217815937298835238374813877929818801133641179843320779704972069282504175450924631338138996146583630199470943179286468961942569361948641677176354650684300439749758178465955662655367754731899139644990246856542795950458870132231727987585885171266170935776860973014735134890974019626977382982413403921727248277019569120244453299895173765680175174881714570053085186594511170920455286008734545635281726871270955371537573295070532437458389929165911377042422018361561622023114111843686364671628995117118902056677915715258018271861697172759541552244762096630282774327934642037852662568231954982085688229645321248502377531922716504222029325007935435840940558666802193187881375578511794863380252536846638385784092720771147486634714215607198198364976074372202956949803469920732351274570004297096905696512907430289506199227112379384862038406243722346668800910837569075956577424433262215774296463716985630180286590674839469833401924306329322685625860610717525990224230227396907074562324978542301459563593269448999076119684973825456179677814313923112009424331852960491700688142866581573506005790212711592793292790625275370605085718097829864168583811023454402563596254735152519636589868117267929287220669457123550590332641362453876028499573276070236142354950110274568334868513204252139837737757663352822382296725963181049903177920025016955302753434508679623480994460914260043914748335829529511364488480518622947557183216833269673164591170131944807863336654834151890369328503458560413104635353092783861571140580244506379910149680029449330670173373399024108871952901564805306537362573798967215491249167385055881642623626257547654771183123861092409696281090680778773774843482402495057943428108912858577854814014580708863087160888886090926069567674386075607601291883151370441253898542246799577863093537083655510194765812591257482049667190695122968414754185384249180950657851364861716523487369376730009641983178495148006659703191928442655915285197711089357055405154729337669108993850231202414957564650320400502294396576997730338305718776237265264400085112686450903773642712403574787354022988844742105448964362327769008281806110505489670515315077500120825902483777019562094541902107173048634881240943309470814542609349512008062184330190726079783918999135725295433081404362940541890179761054693965428498404564557121885125235084149780005649936110771233642277206647821427550876775131518106001259570040866819602388836896255410703635556047873354774298721009637645811230524769990180277187238911439001934292931424287025607510058232707205623102026604117422254017908697458529866777962998371961668390554389887495779724348203556944005170233659049778662794236148109554958210149644618574911800679427544811328502374772580883510760495310440974112370156479954717076122274914463549786510929004977309477075422960981731324447014329027187784017218002403534505545951720393588423958287470359253327224783458555012072024499972826864671950041949156768315895546800919982464030474560896300916764704440372398713978884232367140815731304727322123372164732147479557449826087268008658323644986915879477303236501668111586317314525856701367315251765412189606705188860552476162199974809489989049219114714332102812097510247367990455511860539343721539165747194592781650290814031905401475667574743237268078235585559009425792142241933223874852242373608311207550144306104368828701187305387837270665897652404842719412261934302543009760671290824013792156046442948107227663894567187857010706008853182462527594390163716400972425999609582642755267978094261826733267513414936956309581906992317327242485584189503085681798799602993235327943175138604851367239796700667707000423915195259782493378070928846182689226256350457411447801321172850828566694980206024515689255295391975742808246044510418566090842191648050173079230415335895843575255354574971260870441082808106099883395640597549229945829018633824310081483384969354793300730650871347137161821925957893027105103507072452525030067622958436305322155167070173757074956300414982536931902486367488920427511796292282316040728227860510967559990728902930907007462425292513980924816890381985163056924402293108748138064020812730246217051119832191128386307021798446841719243674449817879764664155166239350826201634234975553609284077378082607680309484751219636034660468724998661038963774449263416496414238810097892581612845744286553788111101834520791326488465444693949547898255025191535284546354470403009586097834135356016150304425136555575962275823603772838902159771786222097535153135522532333036295277721952672042538183401105252787131965543215083497295055717170451619533984436461709478373491461694690280003750023743843179789175547437714728083793558231807791912094664347268142868151437041096530953141453056830532501356413890901296498384078183166234153831297743259225388274762301883322080591563921812117362734303274715100833863647851812553001613503900073446185136234224456006022188488910250609983516315874436833079077732298872512812893274057426106835170291259973243429133706801961254208784197446150178095203016576269845491889711801305235574038627051439419518202606360356592670436972503555643814230105620753177717731182300813499690636481493602864189109083689724772198466523217700085044980708974336358450337443959356837983757386120469729256105082702820970968866261673203601907520214513213070764773156168670139616199834089442412497594378401473345298505655065483857503485560661608862296183435766489014319155238083108691195162498490993154307476864055970075736967523925220284717185427167803367977587145571628738780468911608512753418977224793432305111157070444931443230164924924212464618835004036320518648703721613817973747214196797946853105065896566912096459511369048777171707794873183215531379523575332005433859760552794831991327180551547633526350342229333166264839352417676228128331850340791279685623901008393055868795097379816227580789385777207056881891897091446307281876060677707518907719695543803829354593173628450359959207161257671833065084444830690193311368890587983701383317043938722411958534412855841746249308157531484368401566801033178277283640300987952376361521284960767151420181312114613551399005959129528539644329415292294982077189685666026426570004680164250290648986440920703239545086111907558165193771681046137776851576961517443631998804720128454498923152539283724243095681173005327847500570084593573621212433539182024063994208860934074339932483758863812750574926282923866313034670808761905669369917985753535359410947218282726653330406487326093506280094754622217015696851633560871818340280854644933370759536805861093982886161370321399952725303794598717704278497230773037767595254370775422343090561833996770365227405040894841726060248184126772702969529591077790679132831759001585171885601175212371838562299725726958422661037267701595441175302711692111983833182611231702261863554085526790056800605213176682774123376156932407530973747232694169664691970056553483240983833695015124683020870631945898976066610795666587479311991491515180062135455644023391328469121760030384200376163593995331965137725784539435951557641647648811019579530173970425877589912132386527870589176527209321467721063726657677285936075749782828415406696592182286761970097457774636260959607971135215004515064830974667464877335062109674449754617252671264115671953653133705499012361059395881528150997226642454445886440357358920069462348140715416755319179715696893265987104115058845302013725840693398300592981618943915594997296020425016457463145100777855921713754505528770715504505260551253649491777520278741631785497857579238156883048428776658742220079159219007646432824391047714056560822122571839828799402607096879090845617434447519488039662891956463436372660755457486355546370382323862492275168993343108626676234278132429636524489011734685413980895743952348784856666029773937895117868462073286132076815157542800619087399140613636249709679264587567404267828131485174912994349989602445299011845363298882327105982106658463118496668047262457401296775721124938423845227652172815946769872964371094320981890724229724202241899151469309344058864231544488898790049766698010633799453640671155106472758167271089398671137170896250314630033388952193866595182770674038774987497998110930747337711422691518989079524151125259697820757992799991558927823364919561156252163213218180263860992702950010823566188091458917464469398322149242849730010563080635212324623076710351789135619829539790004040028590172662455057513370698738926500692106232013977349822649574918655646194828669165322757459123697188448757475192991195425049620570767528143255432389283626505826823128932804314318424593833487603174601342963581212850701543070346783852264980682302901205982672633253280139567641342896763471605975339810069263513630156853289104630134041324185203226717648262533095064728589341460661702627402972205672677579314457520842036509448393077375586545506386591473545116559998016014269390269231435124224585699810308618502135242026978521982559037079896128756892004183186215264907188747409679718916605595451984689939658097028824388735726641602250171267257458439808771733094096985538354749019503621295899725306349619508045247850730216280061880716988039568799271589080607330798189502235534561841082569542836213715408745093305814759267484469270232242163195224497315157843722549451884795637346645373238529412648033414611236001399550783311318471610009733625495456824575456794571530828092664830367029549295473836839663596113635171723729858851151052402697023328092486071995072328141704725832860891801320380347416330940585726089765660043410787263815305681248284197726353447480838727066963205741051089891304078015443390821883279880107250267781462342035939815133519738787008684466294602370650942021825808008382160095434141243706757919683540506962264838494757052506651386496103217480212446330141085939657691049918158910352946752252595290547574108755572035459800649644996321802232732012022789106623863161851577443097464492604516250537806238341004357630797456291336809473411190227310822775620364012263216366487482550528742644655070414730389557658236509691823330566741223115501322002086081767224169578919669433516580209138049121385650871539202402064309630036958914178752449288561648899316566273349881661179605683831615592014640715380694048870193517492156489905211951004992122324370377523188811757622663927310292439543280157927850047189608883163533375779166770225658521401957461235790162818967512191240911888082711938498903554598384753271561893527259832024801687634490097358723811950854267282967091448831295112856550895020468017594011288369451991283482759225255275597745374793530791725416527198541512744161712937193292398509475266060764445781892041541272929881190126133185354336285113548066671272330014707147056531366954752413677940633159443808819683353766632114363605612040367554831895840962953300354239277964292867746373856310950591453106079385799870901254408388501263647761285698517375288869495777506206941382878821050844928171587792643545032795200411781452490492518102347110428484961635676694673854967179493473804104101003772112201819527233052658988429146685366512308001712486227696913942168902969874054753968178591688924282918236704793653770295407258393261774237255914402700169090112050621546086356738169931648683983200896256429575345078192491122413264373455097589394808940986443183737497710593318254982146720453098681774782227159977673162453386390891080483907781119682133857143864999477729462197633885374707711837151366625511767040924999050045501734285310307432573598727591044029926647559131037826066083164888204810413602895720435375008734830176211035710104268216549331300467701997466899282486777448121606727151808854798825834412977422691046787389510641923944762693402245269988734181694588414447893180260146009440412539498523926662572648143100551024077856731293058250282395465232143414101069929976077319831447319294828908280294944682744448779271870701570369974459960994876023735629388868214497096862782014736216898264146004394511585842599404547161308995380583676049754643058464485589274427270548934604850018991767960340212707857729470246017456795814964628132090723348016709343454264200372723219142138632712408949288446777172455291232662748086155707828165192318132142720459935390313312914101181122483284017084402841845611137002145987849381768293210868795253464439944023441192622856440892871213453284916178384439817754831896979840453702871271716408348323084871877010400911904089209952440870604434964713432214332816932452099201236862494512355819298963288307318390211855539753877734684750006520627553393535746969206392637915882994386937455155384881860229171143792575361951197367565623795035395695310648527042187135525266504409345795661094827684998186311988468286791509500627055487040885132994577420445517743567649837451537339194505351883648664672269257466370329005882122917729960499419523010218402821055000739738317013296789397332589973456982314085520464417172335717786683177242707107769827947635143492283330316218399770499317998732812703038532528190524773489737066631075669969895154080188527674809675631989014387271688906122306548462399147399051386382431706443850051504339892008541132652373473970505432032853307738951682962020263635112226840381687867281848876385911097698621059417038454605490780538082194648846853413700727014359015942296328777308171785366409520466495321108039093390182470742444335425894932139832746467293023139182874502153182505009867398678833044033729947415836270584523156625219616606639342808216581106967532153981588521726720816072722126337218874572063237638634054897670864891660464795017451487575103847526956910129354463071788222607606055159166875348309490602625901601691606089594894546027662651211008100162102422955312073643290337340975240101848156358687498550019240958052423761314290395179710349759962477155609599361462386006673514246680109099203329042747782290541289089950232337280758831175320491237041624214921314374450340375011291569824820488891140498662117553436472700198178736782643648141226062005590949061900369487939716207359440822418951698048038730018904560190108163106340257479593620493733208317394773770869211039782175967792491784187298798761053218907601540897587686507764604094135588669738636906943113750012135789170563357747397532447437783789253589907862155787648513275944228190728382597757419671827378724140067164414326827433766932451386968638970144032411119486206194598992901711347601597961799558777444542879265710852355098667937501374991137878967646092031249912028802129346207927677147999068273071221854540043879844360398157543696965982369008702974319651750091451938011853160712067404410432582886064816175030222679968787487824532092062793935459484180921752314741299842302142962354664572691375155273662198654893693939798153020164208221994383727399744164240563477011590769648998860460291079093618302535484492582757591803295527073341845639900343697208081468726642742396147323307481160622731814537423153588755769172358662693002782777046479601041553976518375166480324796551004096759412386466531144804194280005576689138561422422515144784603445538747073138377047633172751403944771382277524471339543070505450181633814380564314844989908628393934471421835369290102135496560038059088115439003271450526849190088926230395231570503100335552361762757371450273810812533117123048353514623851525565738906351621758124528346566841850351168733681224501508014021285212420955521162848267458809454164686979879019090172167511541214672175484734624954830191964943435641627631045498912003405686033026839841152213321113326838840577776352080821135850674382875967550316005581845017827958381502188012590263217444944092925441805916050831320463362463449156690686993251489234033146601618854445442765762979421678826208453086822441193712717848752825466948955683674996994307193671123397190509210922128925865862655853176719821658804773785728421907917775645932369644834155046831021149544041783227817111643720599014978434887377791174515798032372648215851872448067180718637693973823312746605318354652168745477146162286875769666418324243963854040045426829102930699481687464585881803583438422114914331181261179687867511501372896827958264000687868846055976429480900487199781970530485128630093640234315515950742507649036618369277954720649158916325835960354417489256090505880737483629170432138404620463103626601958829146239649658989969459931042792000308370211226016075537111261817952956816380511341394648519011660853930896662779742999196560656073163569235662687079587894114096723460316593535687801472887493661254931411816531295748811710758145652185776539709704497938355275054255247506274523833728843269073878368846841519072383014238076538854044086574355495168027316368939966512343849229367386222485384318507839918588904296210218181297073376077866860951413401831189093695251810277569646216330193130932929144125154740551699685177191651235794295448544687998857224532265064611340645035710859428062957280022295503961526297297061932603842680992749592594878130360546798109471443815228214112716055389550092933883912779229762338178691248384123142069397088771758513207828001036569524093273218744584634323772546126830847829855148511776267745909053593731594051925562041965032809848374075181778030052103727574289658866839245018423016394617016139231310750518252427170085089893599637776792977433266191845337913848226850813596617451821814257648010249305503644051365526176069563646933905240236774251932011665111654209178264823442633255812825586487296584645024545370668584944355836781381384271525929105254154284859169749907310952117592791564402773785445147360436358583071843105293409205286890623968711689894875047757210868559005138492698630254977851365422643386929028071902066665983266314376109902807213283689542171166057565512895422292092982891708698995816026216867987908837097421692852473797095990813863253861298293896354553375511328564505598378637463381536750458710383574694728893844860158306213551094019279727721368148369287909044615016220107862320041693820685650066843312021528010953296435645110997725532730025197723477982975916798521694501355394960440185927846472852954960835294901592922019705179325579696111061855575642490598532617415886040803157037056182128061053440577590556506021111484838565843295947437640950592838231919412682718603223353074452617626138780389716154946404829136457373773723121682255155454822956034635681187163849710339717555952902895472041004270810808211213772389453895067980588584928730092520035663993895893170224399543373495732841501746572157936810336742753773815189203825365340967340394342696688211922902344553626987152772703777825216848282337504559333313225798128548985010406404705675152396010524622603003544686891769797685060148615479033820143440338916806431206867188397652759754869369805046300683410939756531578511494827172312371048014249467125187803592947438137972415818205307397853555723773395851500287902018489856504169744558259673712547406590756720504435077921335056864342031379165848227705512675982496388768085211522169791800201928779772798898247380680632159374808767622505523806816120283104553464913773345154210882137749754739318220268502004174129371977417748140782316469693757612549265893570961854824182354251676008243774143677961907438995935600687213172731186624313829279365966065435571546378456206559743583702353877845846391119588262317553539706316367567068385530959389605093513248274205089517558589849321786842656156152300032685019485431343415462146196065466501516738425265185612083169478806133003097412128178327640323398171336258380691243177760342577810642217930920091466871660785756538584823084679232352664698311253889408416384640586972239093977314047000823395015536078213774695742970063928966160336907875451444724262494388704131360385863125709599902185995455051042411448480769341051196392781264095032193397989094704699069014381676257169695514380065062438955944999943542280317845071598397936793769314906102701800285722320345595117232369333619302338032761709144974384435279685258068972379117411166638842938807899151683676929624336325193050903530800125585322977656272388562013795169794534811320462958348112868982506522843561966837053932277923048909496284335045896214341596931392205228669106170423725989301678232915144729731808093329596086086301233468573744707548104907571269344977467030888711279090161262258292874224106942741814492575829033836473610346111449900905137104019402151727777946854744244614764622776610309938288612775638896682076791229270983750995235832617120523311548733795863060216700892994805988738955665413321047047728602795079806973113027665130329439307566478728414776546520914280439206360277911877543554599137755669000491772570752195204208853502190629561670865662654538037198594727914456206169934532373760105444820912872738678195110834998929690640416012165586313078168628798571364792182458274647332258685854914731496161933593844386231361809929307321009913679323791790769965252893104637261438412984256753114976922490011543225048107722444894028062861632507227848441396098422804458761943582533462400838869499971542656291019974650611468562433051965616102025046905664503136035945559855598428536987202144098296970929721633966787226299955456339973296895414569144249982715716488118274570483378815917169618967747494252250861608849382094844671743931472922815550726972164918907930765582370661298239926171094684973874981956783427877277113726672694121059332629234278492379231881847593868587378352824154429360675677641666269347688137714158924472839334500830131273532080782950872388111772735713008655420559856951162617807954715299534491423679445385003492997955867177132368974404049187714440700424174621074546230384403182972909880674179900160128891745949600932067754659089344251281286923306247812622866345308726981357874830364753661189993094503655109760052705667102412152627285992985968777706892914917400788187086714897671133389675249732776366936345813115987279652137137669580019947575636148826253914300112906299063741380469358208707905853040056067722446915078078980047922146838488064670901591000534582002405182466913449060049961741659824048628614452183969298599615098039697535948349587670331325331993534158523292952656773864682790173409576097598814013733838397035085722945139221842743088753902417726132783630177881736816061486767358210015131694624468740418921183940033681062091740711632459871432257202873903050197711406919787906428183184170119469288642110355613872054149044151219221839335035379194426192909199249947719429335743552596615566600138761988957278115654303329896255551225522240406457396764321697672691340655504477585081508698915414220517709059256394165120285737755446274879130852299244382528487132173954458566129479336442102341497488588509699833238093230603641943122329385765062383419340271256711779748872067374826301009188782100108997958897419444391729697185795539871265353018670697019509647992586731446213361905765364973915509643700220545990211355417776501699296977914649904561485021742524787810735190382471516136113390584076965232039302775153019122414086466398681556963012433499897023914133071621526117016506994161744337291187288051827255950102475584389074850434523481681939120239364490211691050267478176962226241305038166707657984670646558241213783592601528302937670851375139565205107906139559858656663803194906791177179589523514695148900955295482087561867694164129513987627679389184964370914759054149304048206700081094971389110135172561374504496745751812208822081402814426928382240132959584132973529209436351363801579671598913791985707955436512615680126050820020549465823348960972832303825218596366192859869181211989414485982269325552767901912243697628520045337052656387075671338343703614078878062596765111313233362355315057338639592574370306387002800970819944551952202140619198333755309308511534679529813689049404442485093905907516986517102743536471033570802442792802881648278844665900775895268805442297982770229652733755131307101928793966760517042935137730625785507321335926376565488501758778220311860727762123035928808774934781032218795611240051762055603787029560765126266849971665679370677471662747420693122664580542306542815738953159081796846579360066133499834075400978242459109660054837252667824738867223122045556777816448751700263974373265918443231337833271263630510950550605939146389494782430449014272344910580500570611154273299788585340074515820201276436817618657193397697475700312305036419218079894109475474741015848904136333651058766440415370763169297369962870295003323533890846133341012361071688041786722700483331296574666083088400168907769191537493123410614684970215931748225656859185508803402465479323459626468948494724436505542502372916589099706312113494566374967138581692089745599121132569931418771883799147319893332126532439007141049840645984007483246200021260144814346041370882977183976754042209148696623216993011085688783918709892072739594120784794894215345781933110504137604528795019327904488128744118240534314045633137528327436858581770495024000958807171426427324746063400530878997697480705026768246138398132259473344330397024332045669552285950892552547209946814571194364669591368326876260518765333625100391637709227734735189812482794306308383733066537185580291372099906431536900983270585438862518579323438344447126173909798580497087093523108853825711069826175821773262406126627716981432633604569772862161081374527398972011518307275872508783326780897126377636273172391779691783702127400625468018510557520366590683922810292308396406504883234317403354805435847912302334778852424362884467735652240555433148562302100403419721217403674117324436009705699738756441687361390876858360298533029659045242250614655003380133612545214308091988246635569938244857982094651356614049304090699328648886644588089131881292365744477257224348115961726737943964200319860511201895363030388329222046296688389368696731362007741433737693366438168983815451978765340189715115387071661312540676988155760135783047980691525459415226993823415269276692802572472381160094136403162594069944739045293876552864009067794641247002885757833475949960917323024035474746103581214702561408596425694971952996829953882898993023535446060486514595401458547244650546088518613060744452226172527875652668542502807135525924741761569223226412955829028463323853909605766596597033045010063633942731956930471571423098675604666152440954550488106780125214111713393923843381782238226313288376302682603344439925036145386928126568790209280733936059393802754262642731826299667922344916989861869231175591641274106964325416456826533100941188984127306936923499079985212820511171423467640573439208401413022812711185560784077567403490107026614431931461781735483727775298679222739368276299472100288699252076603086735869243226689786277132177196123731480515826089269083608035436661835217367693340091831132621020997768155058451959866804014221768492409235894900554259727356268191313417449561026929732919311792596122905843878767406821079719760891246204893711422215012935507202239215332727463512884535965717473846842774947070845810622654879555151821389250675249956401163337904423109331175803070188369038924724758340437428018593038173561122111448723852648765094115816884901076262701901986619861921472951915618428149597092469226066793519213876203573379378648116240130162671337784970230725127512475077207987169137768327397588272959470814948963098689037779004469818155822341206421927793690143299547471310149648129547464678452724762218463684368937159297278106014049756475202823157660347961487734975756424286689344327872473033579617788395921332239131003574677703392832121311490628314962088469824905962517055988302171201524338414743883149133832098910350854215738544432027353346606442593550193114303401995314575120640748096415502455754130955754382236448190944129715498450775516036486530437187463798718273695661084035794767317287992423565492033735904681960308970354059896034201539526574593515001135039126263562235979775949234966774317684277205182750753207593633463286889470744676886175678751158984151832612451928051507731244859101572722023518061191197566650773804977261377506025751343757425562324576035409792726332838729257648975089745422802909347123298314192173813662133786906654341779778825080401420982288553371896075746127575319597630491352445193104426059124264043644908898085094418095050519229064589565630601406584920146376558983511579855502382332072557197178463211838622330239690088145989967511728171687604645407993441250029980242915374108431383079785325030246232544730423061431090875662225378719722049943347576554024159341919965957787280263957270323207183865100531187260998809603373044611028966242653354825812433193097275616586734231585993000772487400374381728976704306472905752847859654392967009223920472963390110469585755287441587372118200511145092864228184047387451005590244518299257226043224608948761362494713450046356080992402309110582224986258233136618624412403506268602084454038946874489485400038804730185554483629220698700248075209448117173705694567619653902187730972045329160729814004288485348465292814394349551901750748080424156498510218430363476082079299145281801366412539330846129558895273222080068141103514840963744341793118148953713490585111447448172798791543176780603963534437990833792910896988688698212322798973138628451362242393691797895385326189510067966264508406413520607005170369723576843131254975493022741432299874820524037736436128339710711329410482652287030590621115892961421827059758946808653319148582134173440566151399775678656081750060426761464849522008048458404637065114722430130943035329962235784205513287976587974976175723058841966090566293266682763485833887740936662834318491258222691621672416079468383034737475304090200806073577297981549430818133660735159799154974747594472296815193903320760117673536478518413319953285201300546899882521924119528223198007934843926627669342131110679244338421326223979712673828082533077065212680089477214434393219454587847125420666337305658331483165289979114502632768065066158529969263037882744282307883270186258440564957081501007262439058913809402731848598761365105322854050703267328424070958692623212155554018315756766169906966776831033201034360761031583493464593061144469670210889057146151088154123916639159510355743668435128169966190646607333879392153965783199394306292885935057637956095785489699426338988925988615462273394265935920802063468197236902276948454077769068679629930662255771590575812142691039170256574863552275900631030023644328867242638991881864755069025739558203419032729304371959636835023513098195829488631695174794723231798480744731849176119862855397146761562401583500654850897407960175774775967925749870685262977173232904502451659326798411979524688406696590903373179980470254238007553574582029029908178277612763829175693513934870072360573151719770291514750036582643368790304601120365783777796784666630944618320942938673394820132348993540791870263741650861801895770368393993627890486797282851949109785339866383908982756484239810275674978883412333899722680381763252643712684043174297848555881179776139622161888564617953970581027330588964114640122110211174879150963892187014562248921302718972214478552195233859654823236187425215373524021588396780784425826755694618369407426304632493563023880475815633034861775001971814528806479648846743088282926559409185600347832163005117573736962037243641756047566055285695774290877501354130259776675283207203024914336780819082266553920704999121841444252106309824035206652830678851755431824636816841322836785253988128034665944405341396541239164806771715303101973113481960476121484685239359671664520024041622888555475205354698932385809128791918841869696439492415805441255828626824795463718151920455559692354126531450179497149056205513141418786415996534199049912276501508866934967419722659710476372356102807559235283929486782399253755304958659048768084018797549816620463710471724218388342608513637426278091756405970063570768136630108256485481311431420560238554152803651549811258102588521863287720109153684672204773918585386191553411747217795748618596959847459737445190844758322583765017539411162734852731631928979204903913435401458584658788853492972153442668884343997063637491830871725597268879920406653958802983521964043470778016475709080964691288340046054700122905451515203653895141123125272746586653777814668989329846392999759540594385627437474283179532404914861379664645523058999055422825213641338235005914251564193684037993821687785091473637434099429775628374376700433337970691023719184108074766405999616434095543495795742978047283878945850393439276620316692009935277308726601464353621533489674369892560170403165889574180474840331345023030922419984519977163843817603075669705406435271284439414543218091764268466565890240631872647192844091529837094810101578393170357619676725263383220005699758340169940858101035311370056492955653476234708004974637490991265981710062537193234925934597280712498130399057044473424774594708576467810263350533056344499641780555222018717211551754646370767586258727703619418414961671045439444338244441903761337203479395439841797856292637951738035078707567392828122224156740725033055686813221520808410032055751821200103367095105331846694184079604500781942163319880987277386708470019629358378192973365735494690093425109775592323690720791082667009675681374250610274891392939871603916106273523476492287135032090057893191257761401720848561512503257186508347364609220399923309044014414609433378497188166990018542557327600839564959878964848054899386300775872654224320447601662452430581339452680034368165301115190635915633240427748280383917649946961031812402866603040399062496327586298411700124863138732733825489917855196200664920870885816008352497180283913456625729331198225781697957688390605121472471150487742542829728487058217505961394268969301862245377979834276655286656897927856739194428236053171942135821405360047279542973545333499367551143766870907172077551618691875521516139392955745754962729898179371148431908379292875131778989141305190894988115356714318440508540037498478334429995335666499812545462187524342699842620558823474764195435775594024085759543911775225756512630946410456545248922194399226046276296690341915752741971278875382776072920881687019155125790895126562650562842298147496016909046872860671854004797156297133488360776613725515785904438866515482073041028663170044660233647525189471252698218209016940243521206933824142588560040454735849731644700265429678221205649836682601151802107622476517304214655271271005869106447324968892333318383311177167206687512016539271588079905689925107649486138014774909655208726280154548821421191058665841608651444442587119472195708014886986636244691196818522525553629480984792777505824136988598534775740407944119634580310326369054133355788853989806827903301535175997424401824593028935474758860424613762510286437512514578055428531103455062899403166591026971218988982241708161277789579046259409595684486517301622041264155410044941212346296603362904855055259513435398504015207297484722456906171319447847844120460581634061686703840284175613759351720424795038327104034856649260862041882200387752983208784248710811430460090697775619391980722747443491476168648200621207642331191959155904494787032151010492258166154963523484988753600112543939210600658996334771564296048633546955388769577737371037725864503127358682202294623906371642335263384553817391590321717981263542967485503860924224594353987931169194320291125158014455853304681652298674235215622403491370691260286219698142497767800497631733169547085970539911558421783271051932603767636392992136122681933216059982560790713005290373556126479047738807711186173318610642883108417164074573844136803817723476221240502141150087975875554988038488605268562445246593256270426486160750090051333858334129247420351989974054122729527533205610573623044199494737382841341216111511387996701547814825072175832023846267257040662180111590543105120062918320510964031866574694007761042041070872800696539497404958704723608878548514412908583060539770138051995252695146877008941676216609716461014183273059609465875867351231961254760412180040294647700221304062686133979022244344932459921720408933866796213893300211965698539582363049267606254429299811799201729333850742693144305093474259561190433097305094295202496773733868523212471347602713079752206584566106416207349329316144086673481089319865189664674327203431587537641292629545439132264706399378663242929051097135885567903170795125978604778914323504959729196134099924851491797101107912975437058479250399757143339220428079683063951549847643972272329882295076045916145854172459701421099466168827764305917527105627815628584727513647791442483867783397131284809934452645832785851273539639372572575411533081647338056211549689660021777429867763016258697144013025632257874208718339128341249222921150446647338932273651883407642723078434992353829023792892409069051856226128634962120497172955785742622416086107545070851493982733003327033949032880087751530342755143345967436249298447619809041722053277095525826268268087226652098757793440824232423957592715363121303816743869456235015450508696234035894601639007311846006458619481215993851937985917428828795238494893020147937582785821949385860422484984871188286476259239131545078383417617704966323767806391807755070058441943213287884677864603608770044167027672612365341401302525852830267381136502010871217700137731273403423803972896199690100717984232153197891855234012910143161177373430852814597768045127555185026701135378729067106085596217517861950260916973781852109791225504653515551138542625662255925010761185862101870032089283400763158726213608071184111230536718529887708298686340753482247684321282954531540436815859381003411311602365255331571147936943326207681964467296766663766558164587046832329703318419436256768732981670708272182111518094898383709528891506269122803686344141420393536284725051676764357428922653797588092976306428070149262688707164431681387462824923898042434907117414085395671634662497227504972609072822493769876331630970022867898944797769867747217779011090765140729646004137609130372617553061623928207630147049540623003789658142470248161176307295343771449931006869947724938792051427751065608834628645438064312912797531515219476030378336489091269333035133273969014483060491488398975160647164923490047575756532883895969531498999921941034402787393360086916456441614328043471029808322191102634192858359226821017002665172440583510095674285781442399210850837439682057851209878625597251804656864144244240848730258824624380884744382633101601544235323921245158450457789302553201352601784567713861132475436335394455766914804325431785151389601114518647129003237310751561802852861546417449607163221874048721779013950154616927987996186341895550597137684206868488445908154910218634736087691929948947095071881716665167624480424589111568407197207490763202775935444855495762706170525300920370638641373690846721795998722341429574957388897061895971853241010359572946376119946703127809069380416156969784047810818725708880441712089333138449351023865087655894433511236494599439314279736575847076730975030608763974122944571371032905977583481792892056524055335911517494793221728396813208383359289573142788641939810845037215944205598882947159281580450557940010087447778215608865619290503350779283398912164404399851691639356786542197259271172246356258539122359604701540624861524291914616183208367375397160174800946579686592691014252479150119096176216732519450629191992562815603551654357101498837712137625908737798808946418742260601872757243797632950027903399211245414326342790197896891237074639302393652113132393790146730067042897637515975565102059109892880675554075005925879251672307637362055636242672413694341978976024269687779509627037117143811658888596779244195293781542437971688353430106461632388267187479791127652063905775843094973718165173220353856917384071031433205302336963141918951428346768220504239387307464296773978981992599662202770201345164643511523572754526041636311329544783846915011731868346541932926137086587847814985311267678436734969041784363151638661154568626961788856255783163002605668114151032467933623292188096671737656818662196435096370357589110158811914689908001251218198919894209313945644764437873205123309057367329422954777357572135226956717194791620243356313046792892413794111250427701093854790585033177390443368927950195540926495713826730054914769673383737582862741689486399846507628688604428210957733222186756201616521294666170347360909405345404934927137090732075339350450491525444675180754100880273539277118667974641296125834890338507206933934286457548362869839696646166258223656281384544825730604858042561225543934308210928509654821142293893448933157292814657225159387317667636552224696625339887249210871314028242327530949758677139813980638952796048483598257953107246957625832175377611539019054549299064703025088072019923530218669880338023757248609989740277109609869486003722418312621134115200459038534390954964532361644290310241047732718128557047557943224145785252913699344380261507763170276311774150555780447078738385363453051897175700696218391342402483584992072306123878192590584805100335148313420772315899188248023498619106849194062115134984127779465888285623093024848918780212470379497572228930371721357584966248000171338135765767582420639572467191129617071715953922435587631787237208729718521427475673912762903492384205322938281318471143913458304863231651011463962668125151050870514037047104496722228435868457631762307116020151784638320917468631565190065218441857449600036431028126410070027846540074658941298713503581275359494349462984907192393079274653050291413673480794811201737777675131866361093329642668655212570826136024700685925393432379642556388220127555385782583450137137437956766838954490969562894706819407556945647346976338708845825154736070790388608271123757899869348395971375045279752548579578719032165795760800276645638372199167476268458083909403618846808457708222938147135565972697575836751838252570333296779744467050716973728609075071276700405187967046638631535108986572318215315134334017923857121794241138826924743145077451320099090511842577993340700606908619945660014893548014282726168235710906094436614842416390560779685511872934525717028501965041223240582882870274715287141387323208163108004328286501815439966091650564476208390321794086049566399913133407376424839397337703038534447540305492502810502634985078798713225806436707627793284206252325350173618874287153512604707304096851947458886389783403768600256398636439645382322214633512370441648123398344798043143313437275558914028880873537192738990884535302279764089194252550448107910242128324966147979030851272099259490631356588335946492356482965283802565706651934553579002858193364999081715112770933581307237202674625446259508770654445653382269625028604055489134442772980902539905495952126896492898904631577652591713039047994470673072173146024051535576364307495340867694061750973557315685888358063265512837128924564881587099049384138151019857336785623723878135797916056359323284735181261024698100283626726808041075181830027563721726176739815686075161482453646682475240281846777588336081231828239249593783289757132553284414352902755107055955763914425502853000398883529875318595534901602791111129448309896510888630738902007591764082517622657701777660405391022003238401703205378560929587389188623209426044287997924936089161895132561513729795076499076064324440958927674215896186287403060649372444542031762541105729430464631759915849137849254209839028356702627436486444822118018306397135291549619875028622047729061590752380420190175160195736405979519530877372053127759539253167505359218752172981572985965593535961642583195040203668208632646655828435173727698858432189078479281259395037953662348178078952413696322858936280106225368058071198920814072970330455652537904000258462630083759737063970014484573478062113021576827665570095747000463150440949592697730787706583890235794883768196994473335076455248067985183447388020001645749387899427111532252768139806068292574015661410068964617652979983108448533859176087576946619497821483483719872141821062843681768961239836550728702440531765157445784687436990015578798240699829958910544210243827344489399317858865776569429364914986400836277825292586772265571880299494871300907941349665804448278228768289127606855152665932088168374863195954370484290696821521545356736984975807779939384553441082768268333276621862305508614344680960728886891006217336060166821524917475781745407394219357487895253404356487592395728897867134736817412665349480912256054088979067713714455700500404830875668915101765546951746900208153565376607610014634837802734759313289816630135514691642796224351950061364464127094126185491622996441544818216048800794866851536273971338145304479615183039058198162904268412171377227351968392067609431848508380471822457819629418320295019861574475691204736865744221717893320468288081406175315903150724538373211785849701197964003180995296122188461254315836375085619516434001064521267131095925080209519608277839852140256087950644654241080591648761023133567272659048200497244818487974228848309496277155642836881767103432039109371504928843387960132652362114062420733564925411724423395790642234465561940562833559075669850516256752245477501291906764518582639639972335096695577637435631825819147979987926783022726792755332237509110024858769691222836667405692371475971683556893042986522653442729171277609616206440000434268049292763488800109599445039323709685231848053892240200302526495590018015023051555588167308548852184785886439964709904949364120951757651343261298743525695920481294559118738713878162751911051856370086063107744596647485197777807273025897973329647064370105184580257736743879072986427807378360952410229378977189403344398696592161433810047289145208196003552672120435439438637883744346476859640091094014999652964800957144349301432534811429567952256041872812236054698271096278338038180546389534375705230776244951681736812662740491306810185581724511624180562362036262094848681028773922758831104795199838132471730311457317030768215432042485840026121845245801187492988864986210375676634148675847247377797503309317329211013320345587659752845467715512047138524153299028219492669376213251231553246223886772964249430019689261323633915632063141397764648863383252808489580909380897622956980221923232409831692792570974956253119172280977130820948034691394903929331698464741890725908143329003941750254839099528268567355361210036119380510609165931024824903378904401938737898032350780124721750703054450776867361296375630415094650507408409172319800283789309519523491476329888448831402064574108838045384383803228154027377132476119406510249091374734304280138186140169619980324872871137026836371131811939343414314368100728385905978180194788414169632944270578308206831045446628697930825287780550432802668981348571612656421385794279099577741741907302883872266593774155097793953077462313661777924621132979883423322996293332412082384837416098199035286909369967283404738825826279273707511265882833177712867076660947228196904133675173077355613736521228048705829135205582674191675241584808298919756131228964943687601429315658666227206274303806456774434563074249351424529180335291502347220319220975869427765925547110304297134419133836651191517055305286204175233914378268608391625058645784926838206592295296358248418818151020635333123632748318823198277309730161071377655289062738806297610720759980565834525793428160070362851726927108515799057288998808283176001071168975383902753664728999982134771705359075709762355007171460465946240432759851585516517283369006468065285732849799055245537357952331171618419882527486404816159179748198374693092565798132764043250342201272000780385037231593632441320104414759590243632667743377274086950677074887262478970084584500512937991811673216291452961998163570457537763430187258308535549168309757467575978026413702813554474190953401382425287231923238255711783344207624752002260839485074345953113187938869354449225229764031539818060308515071437000407722311203810777430537763933401059009350815549544205612935375857336387362577229553208994999549025189813719531324138631874205485400542284814705579733632748119931196332022210739871782064774639188983733860597842839061734218040120303860035194860418135675517168601242931448852823682260206285444284630678907183083298763187327597413561596520573938445895921125696448036667665594028786447302948801183222361075491302425213335812001918383415967483871567315892338907053778965262841446311504159410248414190979492869050144655799182535494766424737058957909112130254425464492221959286407746510391685398181413782471330876479552190686652835215217812273720122011320655107009310934566460036853590704590899098749901014311891057380701257580827558662077045794635519201123111783078143611465653268184612229879466147079466790841596894104176545436706752889519690199033493696052107115925755874413371467354760358325216576792310383919844015420245568028878694833583893419870431593058728251558828470564602073278319836288043890765063551135823575541241733485015551712944785557202040368095808061953259583758524302231016961966767034712320728931350180012695749488266950191293062507235408574281839495164196278354816653550161919641082475134442675857220729371384557817175139904770927902764018657286446258082316398098056560602290323892007152767100451530454234120384826183654278409456692375433152666463255154445817293471946774693873905082221122162516721845806130843713986759239901911994815173939819122573392334966662061810432166480150317781080990729542267301007739687769083724589922074944663763800996270780612975240819358778712060664828707368849613143607448290886081856085494581007886783748264960690135409468333569645053092921128605492553060742305782347385472667073428104159066594280983020063712626845988452556060272487571566174532830071647859605782018563333900247070836694786087347317662945342010241198548787278465633551727343257697926877882642716242716411683342031860314735771165767026600648577016298599216038653079064047128984445827663229434126981102909258103715918102668386687017874648792572570231237482645146569936192182441711899989141885897625530245978471982503138522196817167304905558641359973491901614451688304808291271612625523106981170530200404906268733736128076471055279518663947313613002085575745467315094281976093785750281015470814852141629290194300796080978989473304357610160251249785673237887942868262022902709120081223881951571078879209757255095839246600926019676309664547016615764330318244918471393772152356043439265736947020539359800267188618940777689187081508199931846923346118617108160426531385733493272093635553465840608002528913410664618382333721333082570259567051730436693776226754121374684992608724152059196303330844594684208633545033521511552106971764341980673626361225295326642376087066554764275800324790992292469199963285107250400429988999575928999359388354526338099713319510823581470897846669812258898842504504180484147611954600670850672089841269219036681261898364503039301983800795817963256615890546667795952310777843172290830057007375559429124081496680573998932226869420259560396710289425481281898522021401681094507885824204347579488889065316458426181286699023624267006741941403893246786982863434333325168245424533163777394529077877498804967955075328537327034865909508240534732629921795412729719928768480181552968990010775670995536508337579418428919271494866235462381810316399806711538457708613290965048873360941373532867478965206159858800594556394583667032735732491890302683045717103205767210343031065739975082570256597130366328755691375935669520540947798284679971739358452408256920039863376890322758519843308878512229955753554813604225301152144046605973283168594702716086848595294536152292936439953876707500429409384606404128565596400782396108852833072435997211337290196186275557529963629259613772185100669428994477570752395074877094188475736488973763401068637917086540733202586568132466929123187053030459818932957476158432806901513587704704730637187074218295752219753263377705220576438766670031297801541454645849791129781368065008688382680160369548831611349563435513184329957453848800970747437847292385945001469426528310286268314697812745858021592317576695476326340532201598015481247487582871826289782958805381649572373499146348202298326524807054721777170897408075158600357855496426387121151923908287583052160296086814638696826445562416540575047194066971516815915012132666407178431374291710112897711378498084493780431385416654591483320036796559950741245424256100883564215202224786845742914253236377680970474969125581944991804086645472547516734538099412106273830340658897192601980528048161600060256689475375931932744992617342350231427665332449976371888794025256465520958697651996677842476678862337966381678340982081275065749998911734406503778689052696852948061979540340978847620824889412943485481250743478216837805385754176125096326009542128736848087639732162155229941507780150270507127018637560940019903171458527131379593538558796761233389315372619774018359090982288972821594609857600202611463195309353212996780782287958529575414557905971622930220078057669297266393018829129712985373679773931756297287347808635100453549527065234723033206036310745441439836641538327594785689788892691724638054621813352308726787240090423263700392320933794241471947337268642270075215123311396113434938086379949318846456277456664668160077952045766070890526835457323673985058399190100050729554705499448491608315578635433071700714026574712375711527499117847643823773628798328426050670739602170391769141303679904759735158806725005354405988728530343031535972154460216947469875339423311575822888552239021844986799881261516892424594474566692243392298549639075172934645692634425790343874228005054867507687489551663556439318334240049756228360076136196039702315464831304062141099829153481868100365852252964186688742142686720845201460214487820637637397451016908302618393559527943011726924282734290555875098301122138107205143822667400652620677873694982129271330016145234795904441583651835952583548012951362205670901228903440583805248174689901577342283765364960554453640320823959884881175348630241579926340829791453275079705267954066862572798322044058514055711428951806636550727699907669316210738711103182614118645039349823839384592614481534922682388146080731956399990693879059483984047304197679196870295565506440739746317568023691772393012327646635178611212393251348048181400092373874102871090062162356833445963195951529387495803948940978708156939720536989598748615818712657550886009911982103118834707610744662868599300798794338608193312816084493956260541780765018881918007207210224497017033118354569074862374186268899627139266805396496351079271582878908133590462228383436764279414399329318698081263693751510180179222825681547297583588943896219844450861070447904377999512998352765302300395080056259194687060338799593487056241461544148751216378613390504182921545043451446871372098550779967958402581907651719277872015986597773730220350378700824471372352259949281496631088807258690243250433506213496966353566116535596181096274537753618731659791136682107934468142027862161876614305583986948035357943119403591368594101936205106032274948591433510001529885541780605474395096612120104641172232121969442474009596665006841698566535831794443124473928345671422578144537902377660007048327960897363831581034770892751603910457512131018158928713505617237099547879589202771076443330486400605400589953832254290556991901956506901581762771364777975618801470253971537393415577095807853159279860654293294296753202015804820475893980675159441656137566983674825413460441153229168231421450862046563352239416228233414340970891191767677130379480147232355247785922766015843958663065434549122885837519176391009199481125023751906307905861806721275893513481786543860004031575673972317560461168006263685415488062004997344865373231864539896842830373153421023889251846610214985213492857107687417714954518853450816258534556814192852830613707529682798909385072360671755556900300373213859491301002309841506946058704045686758986072808886940228692802103429981324722299179061345298758038702816452965988264758591112945777398982131151243708926914268030554531925026630815852705852318326944220331025680333339932405266608642644363551290984513943573957991603823755850756519011066358418177928854063079801907827489060777855380493037345913692793287954924636172770985003738790084364918131071819648873720049928636064469196999147976878540478114744028297298933230691421113784001131154835039282849278783923253387066585068376711960297486410945882733101512350533422912202358057087931990486151154555449917376634034776869115039958676364882289531802482615416326758895223720303742903747729646862472232668161724921805343051680031745099879826605916844189760265533471870637573096298222496748765119293352432802077193282529668166623603174383740574352209659930689565579311089738669494660216920035132445437586957861477949607272516548097118160238061328731509536008451395986372119605545555654021709177486880783154907773711712224147757051217796201122719986678805414639492342790562202262465237962315288567180844606745052591038672046212284551936186070725523130968703740313799450307137741158617999107689365014620685925884553870315717300927258453166930168295146635005858264171974258280178274251129040856197822626736239488235282615902206527552547224748109772769892607287268397357410431387385503390354359766398425962032496972137505197068483960840496214013990054364195203386011347207949895179066376028489889975637288011790459484032286405265605584383904508469997586603284834081022360185485296310788557243773394957128299692892733221629502092971821366793554301719540837264428351339009109168632191390226674795456777033347155343727055553801774939377418113995931204575948299111059780144145598117159407532535183127420992456060645048476348580069974991552970012961542547594722779179047328086182442521763794040796571927785989786483015921615047974952156188890744208129935772056202649904408821863954571663674230356169600533699402160324944636141867283823281038756617595720699913510540927473573410876210311229696573145663356996563585780895474007646377305900761368404430454198600384381197761943614917068326980863434650334771877940368843359185789510965750368791124898005227629646447698212585823296808357725648735669645361363089248157108248670328719356089058837514736284348232302170108886743869721786734277826615192332137868882494433347663548266202787905192886373645784399219137553052244386889900499697074198287115742099056968294761164549615661884862731425115813382489657505552351570946265130617079050773672592119573227040787126080960757004920297191785429788640507335836821685130098039845778211945842143052888216718109627292606571346872841632408193203711924170493473977534628549821829406991097689005141071566712779162847644777211858626467879404603217754860802375535378154964101132142719096113172983559248402651848736121988200382648798412111068285864582261332346152515397448445889885460680267860391352952667616292437293297333277253587102205376557137075727265443663856937501273582093833956813640281190901283003916472983098736500973218628553347770386675365770097834720667485707148323385862096933076365605323560710932430409870421629338976772698449501259188199645107422042380546242635944828459894217609659175883715787698343861255020080693318939649763517168508432537475299147971406379694453620911529520624668634351596156592709566485187194814476034360276853547517762250574296777884768954515372107353889701973031221602899948001633151082681585671451387451241289533670028776711644758735764632491383615022160405410913059221751019712212057935293322963193950966739574583771753988411456725501665021893123161192418468394142284299104675728907223489428530473419094099366758351320122715739201814016443981395766598663430610537636801877810559256497618994046862498221279849617871573188216085375374606247007889431077944258602846221286498376501738808821677051381871538304255488041737729237827655464534121027689860393416632129577889137341020218393699175267424970875301359056421056889611635689335879779114144616530421971614099250901534561240644709880335513410900216649800023358942597189772651748818722556658336059396225874234072280269604775907562318946137550204581908661063382678280684032307380390711112937826354213290313733627929571083485460148067957624861468018918889735212928784375582256874416833314006207577454532315837983084417232546664976475961588824156704528431589701673191991583908337770264250972104742765784196756334343572233402263959783589392886146633331877563772955065701243854229054477554710390804361119324213765051202550941510368919221191964304229211891359017639872341867779725612920579771811586816585093539892191482565834089557660359627701735137277907645696538544360310747174608545431819278379981554453077809703136651749771044482253021342140809917293808900921772829124802375351492947842894617106095885360408170069041563186543444116380219749413447536612664109755514833929887113939477213994669579995675733035165542797828732308027759387043457026358443116851446391851344280657575686679949599827183929938171415988930630329940239068008128194140113989806893048472681818886501877955071951813295856612361467016724191256149617245089844006664889265019331755443041532483683595948466374001677059886688126382524108196651772518909947228261116310238849053676879271636242238336367570492091106571252723482008085055263837015659006841646962442570743763982631721979876125302466092405491454589099504042915628625753269935629686226062929909973975022979823625736187381762933581329848299206707066403653954805280273963689675828569463270425565103214382818889017201344862466981242005629890637771332809831801679945602992266056361607819498528537255040117981395716866188379450066637135764550950308516374284287163880151488388458183524956094395780693408315225440953808715661595035275024568328263313716837218366457587864403190247735457084447808176853610250508056014821640588690590444904669253506659111558296226361705899698740171415401154664595807572823388367017037740709747657798530344949244685498219974290822617562255120709263171616236341182507354594225505031318153291204101393998319430034823160975107800023126249453848238491355181125568238261424562883413054149733095522323086048362156913054159877752338697026664236643848258119751834605742000878679813972331963530382255642271821833435539103688881222032762055242482492375618829393160158241298958736370854613832073906032658846587251816570179389012618568539918270718805117197109460772063213388113957304626298492403013356848318753698984180319453916604669506148062073124279038436477688927886379433044848579051258353900124800949772451162322405148884927990703067962635300942368577502191358539435898124575989933809943438006140302355331090081680616413579931441473237914002636448056398392056765274836322747647552855173466383128592716025126660998732283290044797702265910924329204488956830464478494060891024686937340283860350917146838507791260698641668788030358835438108195508662872057223545602804563698946153541339055556998401853010055001647147599269242913235814176003557384308979237892656649198646423387907023888584269396951643097378024097003659074533867965096289807426660661733141253796022717668149938133506570520310487390451117204947728799381356399585593813658498119957298246553804365873576535966205239144052886551683082985923017106944525060728164130649698013954627160965759250313507685923744605223863056596411901477556958784647067116983459406354230601790608755055559730895234448479767902927284133483862064855157538443367361719306546842372651206413561722919953749292768616212466059356942258941979969296300879737432360539440902122420029026254493257340271216054630394982804166180020227174386436043058301589084874229554050248906572754737561551108044704682243912222088467249622653174154778176520316491894875611029701437503330379674464701053844059458250286211302256061009863037024550983181146043592994193514933234047534892906625018745658068566494595775061442644364838407331221707021611243144217211838415647653496142613609133332815239966993496239909569697498294374655809352376483762039520412009797626819226626760713321424444543631694003742775062927645775773494546600218937999412275787013022082398527168813856836334800038679189941603000626778829104726496778529094363705706462389769354486793347701602971803166741750812524847931869673464522436078972988451408537038290073537011515377566598259293234628561414752884044792049050775734047631654761281029725128945526704473404785489704294612533497387863051913601378962864857392846134628511999039358091553263577365219312539398907786049825385797883813169244867951934689888284857116518820765203003720536523269312771451795250645939623977750052688290676524216365136419310138372449267325422644756158900409511708525882389886233777100782096758607089547752599423925975925544291239963114535419905881971122087207106670441758152140262141507102896244443454483148408465131934280954239376986198802370713918556548249581999142150562748365295845633126408758642042299769451819837957966942488746066186632162159999371454173098393038890167505242220400221984852081998170788246473757877636383385871499265468087568886534864565922767676679316470954491281710975092281928678770242003226708344846620808007978932416380441825003672697839049738009294409523215435998468752228588762004558217073715796128124852529591557817198511852244402263717787151275427266868900315634355880814069650083181089275434978932079585331949445221826430923795741873059166399439902076436376038574066659849275432321085402619950980985728104995946184964435373269616534996223239976932353179867172324173398460385006666148524671382374227304396262706523189406921567404348225706812029371690106608517618210763819021101524959570922129113004845873903441319533078548503778134956487627550113112587518596646747024581428620319450950446231727241954620033357966076147988736433324933847639049990943738219658211761680785703629549578382372456857311505735044490673172561612982081276795808387291331999914186779719947131123346770589477253100232930703825727557546203630060193599213813078682954355312269708064822110149195663971368662665614355146439876803316540685101729902720051972149859585604628659587766513453098049514363018037461606110129946139840323119110615494765715284580455515611208156178322339929826834188102601255173052672627210899238526038136999901657727461338402213417771986023896562160620902677206517801366095340863796206012212110466867661106918892527350200806102812986046157312762944182818715762407906097385276700250473869986512187578808354691232732419080746237482365950588741181355423676764558191776313289042062488738103403013240464989262868706768040263378224563281557331761942528191811436725891734378450504405144292870965223294280107718483413261297421478216343829289725736276198139119447422096461271239686264605144541427329277373831153211612290339698007424334586964082426597000088769310299014560420351058734420508970448120126304812359400178076580821782541575204855128610505958055430593079879413719505032104143089765761009492047996643914550157189062849486430130925303051013572678466250525692332648353090477626837484206935389334670730656284671863575733020362010080485688377765026284929284728394887050648474696232691748473382746420546746131405441987164475406789300157057418781721151792666460874015674614918384795328416174843996095629986859643238584573282373758353694337393001659660137407808282750802187484459367440827192322855248384991119589451256543813553614408393688188564630900982652495575829039588825222234576731807142577230874449917329890260049641462215813427335916418063390377107410796358356009711396101559028579050116420446981149190165746865762935801730861740669057457916919085843418283081665486381142688657195102068233546160571703310521869942177313750864786193283765296988466618077165322473496659453500335731973366636488043764517841918062503428769144082431387190018641844878331939618719891794561881352284085995926612183810459581900359989350293520457274940729227565543966544759869810924021593099615830272483848397973406910142150386305230871462012242554262684005781525688886343704535714450166894216986216399511261638556821618414337588989564577101418909199732558450230504982842080353234151929639458690276024076199293294371301059288582965581648229689054977235184675241769168280590320545176272521236506516143876702719285985614569331523429582061921135780460182500339341647860729269524126488837584779000762356722378988910896464025917319460799494358304853736906995464552447934556202112386252800651657836918010053983299934180986663126205314371740654690398124337943498438675244073701448284151377447435845197199317153813958041708256025105301782012267887714187473481856637999042132457506132747164711686913417096817512771376617320967052606396430207436493900714771446254019524094787638154491812082231003842100834198194399697650378066132228792964018476814851752437222287935531638888326836813993937666932681920533910362185553586405170126245599044941165591795370568601831676203404364450321547907106844671741651940366969702689051618193576121655771796235539853395817107361103103763962425221157172400744816455958591203574415211557580987834024382414845544450016426559544834352816813390948628515914855695584400746409866110199340505874107710203650333479639328297803175887438169016688362638312188114432519080611335265784557836692328512791784342904428410012968918764173928715925655611382536639417604534478639410108389031701041564184146595618136374453129975127279174563530671138525811975794408357618937276143953344041776222620303777878065718902191808239224564279125234121955057214327969763526729582731455305511188216090390030734377760522574530541100207579209048204814782097022374517722735945514056227140483153324435459571669263508755824796448627238637009970037978218067609939387644150009892102432701760114621901956585945885237972266979963589855466631951260221476064165007922557509540113036332370516054038752464168516861819738280851279786284332255905954862312842464216900455645112661002548168006677358118844306832267180308168279469585089097972640759071478905167673072636990686498393111404525753750432692612429698527988832663482901789701608554083682945629041466437824993307724874156328309872156604047702835209311827982907432001400079448115140922119254549218565505438763099653577421338561215226460922214073473524223332933785162014626582690838803105340524892713405311684608088426332810129968952932282920340561696650937380513085916985229923852447082955246786152841046943309457781468114072979152703560434044760757004512271458778213629490619170104298351391120387569846351285688361321128726382564936819412296009784264209137991372939250498098411383651795461356132541160601275606235938189698829075390079327816926716500241705875994823248307626220920104658159262478616226263098628678899004910400399095165269647402021594977348344633348692016459926307560176442641538438508758318539915181296950047618121375168687031394198809216435071235351821942204100780378717988754579611271867050025125082947676110632138977106759785279944652594930601705636221853465974799668491151474386103937859520804350012113941153570875361827707099484575282900918015127206875853285047788281041630769653811523310971120370438740088457082128202836128675571834052272802383664010868306097455681957400527954072260770315125431372621473328886008885064579606344985709413764389601396582530524655821137413959119221823175148419625657086656847375360230228169412947033294876488585494415210443273643092361373160647866863540852351822890179652279073074877012170650101388673574296588432947902037515441742066615523707840663143361101263457029548947141895996985924720120746555167983988442806263458783269052349414724385678493200280964991046460149161265987998822426091395310060232174153035130035468681465974445766361581947360975426142031027711353728309683562364350048246087415428801213803366232794333992442020421155757159513373500398340539412004129771946561491828919059497010604824707468697536096495077781200242877957686419739325363959480098783072905832287905629950909830419065324807344263841012018110970606045010375388330392026527126866328709772426969572876161826333535440283811654683169565440099196666253491148690945690581466941530890460899332762528070566845786316257576776108267109230641726665062425701044427752382959840649504960531001774332842066531858188162658209889888567971670538641608813375919899921304059267476424532296387083081364020836247452756954124296951948455612450745716396493192823008081019934846534474517995640195247909645780940664625846290553361112104277584062778776127483820312434603122280707421419947900425485778465775496760513088292130884294903218499089753270518990927511176409091725866939918662529898235961200406577467981831398766580078174633972614536903570219675434562667923504133145838745137171759412643560399812617465556594960039177565099421649527374931288989089454003395348868089165410948981618755810139722978370686677338272534636330625990546708566870549116679378103321299923019265611783321552954403690122662054093435601878484927248767021780617589617516773370687551829862458244261706676166271900435431179847218862825277539697263777276164883411571077406634905525582212850756997071705110555957816922596830974113882735563224542592363242875480369728397440525580037893260628757300661390810512868663498510745368830423555996298867301940108362659554908420623671883143721080928925892265558285987132560973021265010641494709987617090839531493328511470987167603361638001821772396140992090272320041410283064050216295118228255919564927013680473303397492525280428306353681112415412118172240195914542703549848765696670691522644209168430771799804767885034244601338544248347346544489539236754802280428318714713863854427744940018272442395294157372009733460778775423279639848601332983012284233792380266976917173700828151807385641368130016398900961522256904774208157168105466500034961646540524280539322728230974922942945653473440784849805817413594893237941862578280776605981349823963763768545898075801589083855207455205734374897564357037765130414012984150956663210830221243795453252634450721396363345502777204043339961339188976504109257337623460398330463019753482738199681962312734207403468170099976371443805004560301261257176231612539794457686449806635661769630850876145163866308761162956014334931651283692981173860016420864342554067584470604643816302413358747123760738513617770729331264816470718598474579009862157292298704740251635617217238057967774920204163210342223196170679626974117216994080572900894195649831092649008649216925021511837576016353500878987646036078975628507391238745905307709922065817030220829450930670566960569817573852195750105087625764829902335340192681438579139380182221384000867008750052005741438724114602596779161327287260258152150959302182707755494165005039927718663020518445885595491924367233650711020845700509802569325732935023529973332848563750897832995907036403976135769857316587997355596826550133249852043936759046736632766945935450617588071520808172486033318709671291560081077500594718436095975571405081663001368722829300028562612876097471229352664200481133960282261858186493679769149666285238883959212336319339144350315769927145477221829622757065874750352114044608587454817476916382502546537075266604066673404198284372505460509317818495735749975631187392764257558737784945394720935038739271022070213268372870161931484457482410922365681868064351850778018068571860809740838410204318857096487733478314550119586461980615452441760739908424170636990127759804955758208052100021405354151997510804817744308129961409893075549492858699065896588015453395177782366509305965390567927386848876055477808627619691328525500997650568776922064472322662744267287889506404193765299397294985744766374946532108244510460144220957620190130793105119366579078980036103338824067344496106544085281332189661865986987264368809123956748414718809158478537344464652840925425503043908193409676676941872468307511176102675703803047551709662363574572624905390762063474891406150536470226360376846844942726106166945121676983538702687004018863432376151508237861612715770399956039753829906851951365979043161276387936019162092984860680562398135023725699306261654581819113062671487665743606714393650521442728805174979092163054545176287009694994864996886284871468506969087117647611949806096183570057519776710723134520675129366048615209219247012091130573683251877286390716627870213009106149001762576930390688436134552180137724042762562212999570975023687283393187896881015292649095638844969834658560866035935266183170762862650265704068371277657901441566258217299894563207142147267600802523924423950646620790673664916967265783851360027611315463277085381524916371777509148651546669309383280412294580718581322030548827285757792307484234988571448518588663193632456008032949654358652930425100122890168507475142071906924077273547965439754718104146504289085977565003594171829615568586095097684683918286534705587558387788386703462709123199563170476961640411668272027364187176453807032830043162472444969913145684701431470231958706529166741336455705823344621036582002009877416309259717118614909234781764567531270339159957866653730213639177711015639159915184371278860788000690089021055541116334617296954186822658252154547698689913909098655848395260083158301767548702857981098579242333104792160243404499803308892745665877254812643488522126683193902701702886528392790968510436356923454585809423691184161550802997396526167713066455845889870859419122073190522005116920401107207436119174705022465910441353929953942924303282379379530891571289090741198914195933309627339868502393061700032202359967508462126460739200320283695176047629152623533961890476488852740225434722844473196530600713056568792337043171843676430535438325710678197390755711807756319462352614191734517252427068580419112305527762512502602219604350199901652517381935520535789768924094736057096568110093112144661106954741331634405283969527487734687521653936122919742606211202662808495719301195413487331353390977133383006698757635043862287962324147286764246596326556264686455321055944140057955126802083529614366672878152669009534645797484149419252665666833174131240889543533789867958154378984418298235721622869632541325642671208760601924279405980630841390142709703454106341120782572559622575677079293861098906188821404261630930145161050793383875316824665391533663904736246520115603584253503490454178421843734933740130983053690853451110109296845303820352348167583427742772075778978858802371405470557860467625774986718703878102698522404789749347003954202591622860997046960282346494133197337013529629829068192652022992863302931881452044500029674133657071089149723788996809985751016477054644318686966074184167068748408167820994361339243135791316165881017299643158335381115299819586706154886313801327589694634069366964430803541304054489667239959042696521016055287889517254580775059610395349696824211482540925921418817153817987317167422742824076506830258129529769037063845080736621047113770476857906966807439480293283932742953550484562109628897636636664904403764248677895145478249744487352913775321909144881421907773355278226964698786497456836712258893527785429101429200211386804358205422911177277969820121429373727361819878750297448552375095822277287511849472570365999636412100000986864987614115186193785968629053447230855716086696779128305030539326684066431767380660080686995861690897003932063258056690447120184343697250576894395539144601176599591434700658938474679266837741829932328239528162703996372821217031556858192051492996231678781303495049018801558086201560225115008328068786948928119202790499006329754174209038049056036932300915758712682942187381413577398177594804169198642836662934465642369223930706564616893153794876069151907838419189837211515287487493085674327132903841486588346360321399723261010965523661828659100859054332530902961470433012324651132341836120581178746473516922405002599290120117162809274448392777802151752552394881288649774156845504009351875822722910078946036648862373886246290085687802805103804962015209445753738187132324510587210972976292277481441301673625139180130966624203472000830221063842193484682968552565217349827573023513017226677660089310946310854356603195470279757892020832004200792398806212160204599403121260330722485144986266156749932482690667200099030891208128805729933063794577357557823306239936737012380438678862523485024746322475316244737230812450567969917226520101646824468711626625027204384472842362735096560948387513369146198590827444971681392920322665715170195753703050500651099456272219926777903589953877991058018698179291496533641899057589583122616179915158583837891196848095152697078992358736466552323428125327652375427227066552113454980428218657968600217868399421954624010479989356066114491628405544361284072616347291294091458787208559303617619850207586964523953611979672362758608035081480202101575672748807509346467077502942475677869195360337479750842087510692071287552952418262211321630892793681715458933749524537195724495250283425873058753372163461079631793971478245021222989627778531590518592397312267111954859128578278586246901802078697975697286571064983311247985824836074336385481685097376750536553236599578505870989632643325632575839919012237893772759722694868097388438501640757661600835622199746405665601606753073607413177195039358932427937800299471785318407948734924110655027602071960243137068920343701202248180200776554821505049932890599248537649701919682017075023710119221697734526773973901048508821524808817361876917227799250776511629595988671069546089429317063672386853834156475817591242640487839443051015898079899674199735870257341444588174376518874890413489562053771423217941422657187170450419255297258366103583252250832984779108185563411496929144999213954545651173773450154585972833871012552473972232615743001937183621813133501530783537175754598743832007693274307944581131523353378828416989242777428054645503918271274586287828082619256619372087186590945826175777981922656546087478022756650998020232737075272613276874657420008235654342636335663830410466277898681978669737811363309614615667668924505571929119481486380781247822472412266465369699806998976640102019460251095772096535840392370825817312708710017084039165354903104679402034847635971859717260911905773978349753155461523520741122529717893000211889495840446782400879819166363598780837388470381672045381736747905934070594745584566673858878266657134702116838290836349236117359284345226072114121972984974714726646790929149603893091440837999090172165256180592346662281767704288047068155886360245975570546129091795835791151073104965238396342235811905979003565131493664252861072539972341449710822719119721181253212367070120858073426795895112614101021259467204920236589904582890420543857498754314977855019763853565112448964252126879498507575709127103854150202429924368210172235882335344687411975072446434205636337657769068333672390859214463258933293197750218106475752226618276049121800187339744735249831222880964059684213452676831799616550062095341877212771801628416889698689072982699649775339524359897023514833478694859559472485815702348842615852550561966936840089723930751966531226865792858114755415335958038800014809505669025817359091855456723865577195659676793447870370690643449827076346781237471816473756898852396023688737962049672668962948236406390300411284759115214865123127304101944414157576927833965237747538050103847547189129924974920636202155297762835291973193172459199863959349661127580560085244161371968068932332237776961267897124887765738948588655235704868692814664315679803160216324837628154316639183517023490641735239646176088016232323182933095019277638971740687925713477963332866087003084013376780094306243100564584658099702129365918671092900513694349563586462352907295859782341359219860022828843403349205556038774708074515943473972670276358996535550552216072242133049892607951791771106758930460613863267912609960237210403952330099435786354761740361844669073787194865966572431601842247206822518414550128773110614701886765117948563375959791989254471267316212978896752728974132400371549679687183907157017008237407198674257073144480841820992635922563417567170081732971300973106610418073184339585932788366353377827317113787853598247174339132186361696906673999823300960192211217754765713181796239169841960513795748103967631424542633438139164710171474444283411185109373096309274675240614454233031281255163235319953316526257207371348996072861716258150118258146033011017891749132563094552791668919373913250383920488476809656387795506798220067343718433432814962445332103077434446421591691370878121192614083407773135627662712907362245058235095707033377029668350030411514285162809522182510025389484443416014553717905476875430461676624904419845580455116827217302705621972470903066164534746275753808067358728385754071914240015051212364102562625281619378236904321108497015305497416930632179440363374776275279979179157612178295760970096497656310574548852869076561072814464763282081976723893378410930385836210522818074998705219637668545872543673084055761344757857341698106275921605241673260105006142001422147072732927914988978745969721534855090864089551732737438794989239084104995466828536568675117053902749304890160269501796331904658623751922600934341348997840046487069317259260453422853799951496350615442470360341988427463608672649934677415396232865097210155590367040645168010976297655543758103887313549881641071675837919578811986892571147462745091429477194649682279128540024457912385398794211816343160744934834009340965404631008771698616929037958815115929802958788137657724968722350511838819608737148433652959925386323104915414046725800537745687503703585633116664629649587875314729235167406464266002708869943855100013586906638662595180478765465168867024462765323803733003140433490761507566938623801489997885107679891369116987429596767652778626469880059215381576560848655225791110812968376520059497810087400161541542583338577182321335785080827118380861070085478836918282242340011986928239288784132808319435148001409756417224912458990190767337719396446673417575425062756733604959883319483820493971533571883766147768459766508647512607309789402940573735783165435609682327419121042019081239312100276669226030392385243477767210910908162654621418278597682185449006432450475172609266481406824382597590101971097162906958126732810766611500821287412753508214403913934142859921846188736946033695017204969468145068498018898974783729342466869385439206275604217510061110465184061724260491454243072289283206082501237265555057791979152208411074811908750458703846077279036696834873628127134183839853932013017696150029548550181001449862473810556254964649718026721100294380445787375865540584674444219539740487188042859422660419494992168946525448738925820759760856471563005029394567355866497590034216932302174461946229607962299218093637192688377357808442096718531107200418731875278990810277415961697918890453208649102187161751270858343401959612088713417204446206449426240836524505171179706516760495908238248492470377278647351496732052272998315170114959583977053632179389898413648736294853305379474996112196769499160812701498401887860274734835411892971981890699204584930801815076579113927919995299630574170289210512787455478799486902203266589735702734234467519190076214211799395332662761747557766240080698633483380208860693325712819206423320278377977347827750461975665869060408543662537897572514431204505615830294508759561768837322331972310194664851745912053318782586776601620544363960475181363678621686189225784120630098599114116827074997611519654165636675891791007316364681921734819394846509900641676435277565841727209877816970186671001384815536211858984381386768669178519933624885138988568293356171602784646134319187098255866427162829918098233835126415159336460654987109732184532312067879280011357070257299078517316393139430269714389972837864994573381007628806710803022895584801374636691210114419806431163104157290146554982167618146067706744120429393529602256749255195427375214545243864518725952852461500058121867873195793274760592361016472222149308365565057109620090250842948161715856184954181980013159919983105947323097407759227888595629628883722876397661537010623293748926071335888693200830154081337242449854412202129244771565253854967321427767805418235340822957426752398101405692750793758152220376640800846639916451605704525865319888913150254431933925642968364921400302849868917128740387292380893867294612511518945506099185531561357593286088886805283575568448670408559814376969628611634525541194936392584013657230499734797699090748571701899149814549667433944069315093270954198647676317622691347888373261485958219354258418634416188024652667846627560827362509825202798936847318243248987102365509728934281675246695735914406329764442718800522398943974259923209929425863585947439808761310080235007898633180464616340855577830404800394716296584851781507648896528011712903807019749366701663016525257327014436642792396613384396550420307705501750267403183258213120755575413458376544658093392613106219364987121017132596369909077234660693092171569921608004346905055953858251036817709651177883772510273276794817230178103362172245966099715081357884654293585559307369021744622149171373692520407215351901431139984945289853959793717650067042227657810253661382399086263684619639974247690643916765992225028300394718874836291663769812386913813947441844787378286402865791213243247171415624147486842496920456854083192966754584164055161024989830101585958199004991742555797075284469068717281097574645042083235433403869916709854886257655593912332468866853517146735404826433675661115051482665336715256772264133065473939841727483495197010832760977711664610868300792673075844665345180870080788624462289681410897236853088515530096417011868724517721048764438003310362101678504773234332229620622535118123584385189206916315049402852857650204897773171337899964008780385912973583471901479149315211791391767551225960536916063513559021009795492704076524153215920323599324018176392408083984349222309462834756830423231245339599866491177703722835363308938842096930342059076886954280285431980380274309411476983377604860471790733799184501148450299253213812087136577530092226682269636570251378439425213961858119350608224382619755836897234594130344693655070816976650588698387820838951755699457724010514128065640134972819428377997652482831688127304564573794237345055574409929379321859936691848316607129617064854237523974399134054680598826030971469944057720860919803415942356480913713881893436866572049371054684657367236561611941729264135154274070900625667352963068692501845184697553962732819194081860181462740089052471133436028032201915098281459598201048240673252709096767357294436887955973657633662913594966566749711286402206865650404314751133832264824669246414019178745484316439465370781430691025252176191203286629236008805540580169662232082068416459791418371445488090245447013479022887711460889651611578587087937384442480995586509577828970436606693528949950874724321612969613134600956556080254789127501424321466425177332726074202087716819800502422614600367578340993055451703807233971122017704025667017795953305660233032608354724359846586659549411730806141034153995110523636061619303154548651550191613390307565887446864487694605722667932051985332093778267349189399242971851312378048552921349446207230189898664714496927499442383863256764601367718141154987243784713165621343100970426034479938403677233792244471480564484184542284267273306324136788451007198453146378188951400497930947901115318621904291103887636512377426501213146531287668042445531691839450046202315897519940240396718214828849889190582367759513120319785542784839622149416440474670122460406982866834730835348536598749436669670905792298173352073675941312318663899628079816088440903958010886863829292011915233487294874825898737446344478442352277357284256473949594287093362900529952124978215094854222764216350721726220475997992729910409201814010662916053761288716873656241504466912191325217669025311441570495100964112407448394394596088797723534999295502581244448886129982801196327720699879074293825155020159011688319881757282013631266006003479421835637662120439852007429959126784869918838641351011502206537784213853083851558151466772146272758925719393127658495436341699456373660737367330967327194711631363780098714455027534768963029733523743031328826773897868357153260835011779448096283968675502635959975526734797027319423143843704805788379018327293109667129736119698528685807624518864889356898161100275727059112143891755159297810623513118292826525979516551659033363004297581176772664680967617014555022765763922973984005530685045234762994069333519412569553562646200990056917470792261580044793912363804570112624295146181869340393647667712898429020430100158328790069241961427767189474168764276843702652547940775007965341845139123284077012564792468484081719887120033168793826481141620715029608079498520158197813141402224493431602633157133141333533683855918380414532856646134781948025741107345709506295764782778509005939765677392989963549119470389559146210922154930511299717223416206886938106166183263737586849617923452321132026045887704462644349325402948623943354913261163763550330552999885740968535297367507485671341447001274703736644428555542348957037843879700911546909906386974230505661398795470660349939699766394317672695214680079564978130805677472714583115861628923482024941798918077987951938873833671771825293674674756952287284334538278203039210882968282838018623513838021140328689543030591228086402558144676334234042025011284736383800072237027799301745926837404852018490588865876908220699995492737798503904490631634740285990574045903811122406736648576295830763427636531040971254491187505689367157173298023330734871772451774888533627335971889351192335166834930508141334256435682291669089026707460574672400098471226248687355835142826651014412326506617907815275703881035742491447474153071188386984288300251562408811871538288177102024905321409565806398336813958296574824805164053365455225421877071632802055191223846662056243914410949061910177848814417155270765411542109200486618059911058935990193136576925908447258979753558664075994818080137126570430360135977648095418685448620577725528843635761891474035790151070952809001753302980903119798976668788760905669529210215274425897800247721465073293975913682602445122048510789916816108021659725049517931807127996672058874293739443470003347039883777945284723707415190125594764902739384261512394976768201283555111773458102898437865582565665921372472059442864408094625113508078112252066640958842365308745809267213963135806628877380532795310665090452051962060077850338777370098836862240038932459872684869881101577536913522783730440755629555628348195180757653377915331506824496803482950408245797611595405186587846696106690540383892070208726361844524882237832473053769660617315144991839269321122279656693803937244375751783624851314065523510452003766692049005831697211532471399946093385907359297463459328545329778032260895433902441622720499304400905776037090306202451558444114130590014005058393139501674968113530867976408085079274293179488696178182220825678586411991210050131958733244853001772104206519316293448289421879310917719626890510906538626317418954045551646979396752943147326892023497883219826105782923854683636081906757938815189508396428585446070167322242876966885364607299673125827898163073266515421536540555321488940710305219651445515679081739434482361464682486042351578496804293439262935772176876878355279011272027974298291080798628783735648942414435485628115249364714610950560232787164004642754122906057890336891814185937350307176729335144091190388034865894189591864357213448941052128298856284621149079724775953526724100428726620352512452170039068929201950941244822599924170828629146547530380934368030938724964288838181100633055175960128732667768487420103077622216984411436086898982643858588207450478001489279836528251224514107340716285006072561020692401701389844931488018160065075874879104501827320429461113813423696734128275881032238791382085184247703335347787319691439017246005355409617644387375482303287877533289130452404598685913178258050225501518318692262921576703732206721219357715541791585229322861369035008901253872430030702366032263546444396881506999299999737390408297247736457780513480471812219586939332923836810784174899122742060362131035071824894216071439988675582602185980552806017829436003962747238014136254279310860862103359166763686463244002587303753009698021425360429614954328859796618558835673732077597241657217746856759692339229046462555919821585858889268222939799187492748664430563597572836769559968643854585202768264498042865774493627456457517886275636953670688817801905318811637528801984362905606884722560488803725798042013601230845434086105559835124918787458195738877737005686698394007663801912501643041607273461984238668586255520086398294720899325190541434516919982261994920885864708692422965480345100275687468389651700415846798095150468770779568005114170630017538863841193113264575962540358612820012632042391769780199308209471861840854846405631070086583581515085680589564815844356123874962749154895431385387426738263123197207096194267223406489352217141181301965863505373086338526219117987603151643417374800489220837053842829436674625561825760151235427997514055888268797589631120872113901600889578113734244161414633597957930850172580988164049977657117189401298915847810133963090265067967073014649342011194158833421674965188346243670843193579926429903937063408755729882984655213362210513885872090662619261602924312639178063115612878091052532555120066762514824709456697616974403767349541272970886177246568456295097750053162966562158046990340518367164771235647876809990542750619681566119847916112367646411757605588886905778588466933107336721337035152495374481887391074883280883947561212057926408789059551983702440824807226004977836930892733657743936045763368107914856972646442120281573805839494784235298533270502394072587123926177086611199512944332907509347949675711791592361554006710646022673025986268805004364774669497968606413682246064055922590219683605299855309072333761172931357679817471190321657009998738363154211524842999610103954778083153313454101517880916670843555602506218707326934398514654076263580924219327652236588499391765882392535430647055777311092386595767714045316555043999132612360738960451191243023840930465953389231623413988821417761845053151033884186958272263746447913429074874523624782181979275718772676191840647017388760946195577143097258660342962715055703930913646440486576707221169215859152575082200251268286131060899859910818729879213648997432813596522771167113545206101550652983420955756881771559161478642430952586878948009276294118723826957435843475156859984186591983821838347136219277461948686563483035619722248798821648278984530643580851064004766894234311272594678157601305690635737734845293824959908786813196340603016590214991525283221858455126346146298190716761255838493927056651197839444671615256006996966424405314495273313857730494162142957164208620343410210784200268002393459333920256057732909879422106631364673763124437419245536200701913771428142157161350747650778086913932686831321159089456630397013597177665085052916936212204371865009800434228074444964940287950868195259995762153788329339301881309733295821748992806691617192388109537258652241225558866249912158830620117462016040059590500521240456881960188809714442706635286714259263717669154313405258791391871581760315052692647690337115927336517987858527978223179187166613323750972105915098757405181921440984299770393110663044178346726129633793857700803460613431299053982500867411379063260011042262683549431128243571995710569826630972701286070836274251045480504177338942072957442359148614000812591053300651351924799487542944029269517211182948258589722704067063913798016916487717670604323583249861494128716655629634409426452088030393938335913851106150947201415083835651857885775081723148875966059134513682360069455118845380575026873459087388370829470873891523418066837053799238972063409973741048731838343994942269282795389698186337753071203489282974010878235496963901041468278821888357017436199043253882718780253943868543531142755550565203284634829704867068998203936196420527889487095377919453362085194298787911008679148552087010580572822854098918621578927267507955702249606139094702397627274408760658929362954499413473523589073253051982915850640315040829098102183452724597633345841942707260557164264611358187762570147393772193845662087714889526041789866432906687995350650189431846445008784964771717637325914473865204573159743737326931343993893323212377478134020802815078171009213835336894644842592074044243379029558410205121229472547855636253908983708654695004745529731679651098986414626109186410101722249957012589832916221648928131193609578194730769939105370062345242200237733987181914016974447675457218088035207318189236806091722443586295422662286813794419240821406821796005414701413378507677663330610427423698473523580108145173671409126707498864319391977659880767864173168079988089486924351713532750318147089188049427458770833013484620313659396810660573621247261665713119207262651159469459035855083102873480700227833640719602867968608236996935513707567726884382115310855623201354052510856142258922199996425211385042347974718735665927271479352591842227961772086517240101875759255193241699857694390898132551659273876640982799005419450801495969878717857665227117761854634029533894762510402889122130592807822899800661894403314325309936381122923056193447918956941781097691752092417339790926978806292944505539877708393161193371415253150022668278177048213890479772170751769410456670379813920552083279903602743877406996028569832714437795298480783337286339605284813775131319824090123108673711891937020473487547496994601548073091523258355278776910476028376407071703170766448508644886406792960653255904891430560441537561277341323526233903681048091030111259520597238912033512435242269644169195239528188692970050714217496081057924646017444037172931159072314488200973561205421286979553405591016709955626423488777756245685337709985237936668079493949770340640466156905638326933338995011611791757029497794359472133100000069148504699758464307573968718706531806964841084073326005586886120311033908063463679176530388630157629657870150136175152692108392047798297199350142790767342929406285845200078267360561788892497656498324875420792944301876428908599811281269840440934914845498904099443882146035864594954187357889988420084233852231094291393474831060926554171007240964794275086466623284504628234374722725140539562105500748084396889320821681786842812374616242467559271519208447424763691171455387977268956792698135567157261963071920981229013639922701086077374642681931295284716816392152247179198915567600322884841709742358546163700117803025513742896119400809090333419150890136292034386305528657305148613106036997626371590269948081283449793472512984049972351922603828736696833270477705589496935489306187219017107483209687225979762793093261890354191136273641512743865960318182027608687185623200120218800899882649776248639578643112008636144002322462984440805400480342191946506241311095658181673753073391049962907303494709159644847463178761699772473542648322675164894739413852742439576221033995485648369755242214837990243935338197826767115949741064646375747091261087445834517256463314407030076211886216239446262874895660195521937495953659202153127035942192664158838001992745539779308672311341151858232213853918437773645736593947674723056947421504245377566558836046118383573687314149237949751675355823972331142173639317509682646931946226448545077551888791387397222067401201841407240317440548405378482303793872117907373978584609779650569642033724062278016056564961953752694697828624940181834257320207691520362127881895137721087530735088145235242476109146893694949393076633713728052338678310969726250638310017142418241894834946946994372932994296277877439666912831836368086749581486201772107357291073314103130271475580960828499282959249205820275785732840664282972016917299108180965656238565455076442824024210332303361059758461624028096818060398527013865164151571941045470685134618601187362061433446599238153440394392623754335633104990808563692258264470089588305743864829278520439115638361423234413492887567501544131467006277160926514023119534521062639923211476175944223544286225849920942529008148475797162651439112052475564408833265249037977906035580840017390081629159699183752749959546457329370335369832284407404187877922373461029077660930903404986417930995733997264138953347007569904244961521517818922058489370854886943245301627253515735177392542914430700530500011315024460411797710249692244515982933468904284168717293477771966912751500261833213201526000361871831063773918386459570963549317448075747091269722433247208596950712851101969199047628698306981940887339563006911479374796895425654586635132118467331995113436812266326819664757400215738887005081355990528996659378709568722678913239737771569466160476977664010766590484401837463998081033861292126921582396775691038795413066687794247097480459726131072383125384449025574531638755639957616227286469863351021925239310489062558083232669868414666396927130511969384322845456839102984479260856140181555702549220443201045125321062821262175798212402283718280166302458377363976440933321079737325064285156447480343020882578966990567461051798398229160089699488307200514387400282650634560491795920520680592153608027642543379925543038720410922190337046107152365744857802378249065012637604406923371987395814009766756827946534242702175585674786055855217131697202944884826053828484455770019457597710668658888893179280435314710881846596126876276541355700394376358568011148861100649645478384268457582787786601831239669184361596869349488962931723087187006694866568439356985301964815799166317021195976139395362901652621969709262557105263476182930967935614110197672602615997453603706432660746438364998329667306488827554140167415519793305719131647166678170195208422807593043448094985058340883170573052396211535817249637000824342064784215733447400544572505139950268304738393054345708435609034337188595689725465773632549002623929148247431678598205681323206494102780354656874009015632433064749279969736214421926608572304208056664666161257558327321220074545395039769070869121981466607724709417706689812647804891741938167010105989061535926364035514107055592408650944699430734898573132107258141176419326779326085766060157535785895145536437410574972283377966084885665831762493032709142180958935226326172054526645181706474737959308675068457351111786713599584727303640248012912172151239139326137550968618739057682717182135156614655982811534351542001586060919655897853469780117088104127538008035218745630049803265833653851374980791991597423576758267348849844146039650730660027152179312208533031256535100611663003134431648065190080019957395814321766748263949576644674955673680623419328265292411191190470077628347977666770234552541376932699249530708129325148763220897217189544592532220956511199116139649748370066518329713713554216623141231682212226266475439960503994327656635621381724121574446734217776799907365019733309593789534461357049204642335749910752550304832040582203234447554692421888409062293034987060801612564047547757507222094728879141047246039037383745361847517274063640123788386306869547553503392696825378205394458604232153479277311960862062624979386388689566554328751866621925086421704608436786911907037664950281474441605059097154059033879087963823964873768195293011991477445939968302614367448919517366165307904334022441986793959560913862189950766907456091002854115664236503346300100122499182069247316455477187329427783957980589609073198663472058526950767585957754011252502780280796266026404776280502302072753114097765438413458739418555342033816541949470464994142792952358777610302045068794963801006313556189475588450000910231950569418295548355332618742894864936089444579121516736290827122592130747966106533436934539318165605262282820296047913958329081776255843863998653452630431430583386489683763640514563852074394516264464186510085999814688945005762429307462588339411506865188826194487956748774883419449306719880701206754572991083025360809215113166978627949503922291207554342907028171530613585683638176331801041989898034166119540170655749748340043181272649691763427269707105861842788616270444960181545599285658538683505228158520751528436318773292242160568345873336381339275557058443358275177722745969253891201304011266552601276916877145980409126666900476721314789975027609121802447957990956218415601588374373895038431250622547611652284022227113388780423931483885370686528510995509634819491166193180187148788552464575835261401037615921092199173242641399942190890842173874008097218581455446895313510868158417786387423027715535656839725014841826123223072842800572855543557740568559532910370371089276614351676476330334232545187587555937042907433937561679483214492796435183081894419786770927830650301333365010710326060495127812655469515917029828057383484467919751718503028996447782935086607160937094340462437861414001909345725426888771214341788328901051373423424005786739503881297367001140332852073194515493409276210422678656476280504278662278324661711144793435421814264745121231284147461927294046615736106014382316951564767874509358002381410162338290450081567191902063307032126160360567620639233716826418866299040906598524670101312605367191509894789765376043080682639675439793246116184285320957646852284509414483632438849322154507090866359952557485010896359367309887683396043105111684710361724253720757772024913943535234960187803752030136564435654134380440533272392391110911097744176773463596394132475908050243056985319909275524493829336875258836759031808553594743902126220733540044586340830108048025326638761778196855768545065221535127083710346100907375829437517246370332386085897060972969790621074331566007172197071565423190406131995742204371656712285434369813796565669573048179276276894485045082059074121355206181362051954415763203254946405605634163295840117573589549812575503514961574293730729145282317105634787009071447423443747507161808851538621968089244379637027153218374591655492722849200200553353717835837116085500613791635872766616817233676555098990805994579529940052117068016833362406334228056762869978585573291943905196320514488717022775062241105577343652620389713290601081975596937006392268597956735508747595183108461448858023330911601158759803196210858946920516150050430780342410668249364762997607733287779749638687756119424014620679652579977180684183836385279865764012510307814150682076413600285681160392944541411256366151557481310719086398301896434380150011310287533331641424034680287944737278343187356844930106414245056078756939453021949040771073087075762515037488778688164207898441853564063762343476106991751243346035746960624529118160363666246479370362107661975669639996176486982851420850317606296923007349928668671269628743627710227304657797622135623827235657475426763202297431142943597112319653510424701471757242722525697140879016288742473696292224565005712746475644990892286914321946731053660475477026066507648997750419083923318921155740486327984199836309756198438131672710231863204764205783774366852440937609515548111116749262512999013429511403476613141363235158199053196035319885046730420192887692854452401860191345776216490854503064319053136108242990067498432087009040623584847207093523018659301147074665017092039138280048582058878020749904587789847179925120357849720453110299466254066911040509841859115276526712299538462442549051096360879153644503600658065735541915936281986705383310427871099042660025970839474886440552353556211278777592298909827452117457329834707427242869045850517265891415300268439781599131056407514894333430118858245002969113105165811043516196779475423030100905714737313994965735478500008866619663856512226664658588953021723363715616154974210387555252632962190931090046826003977460340173886254577798784579920630322996670097150758439673115867040286508050397911495070943449471152577262464457082941633783162905747242317283629857848483491350141025325337989164755760282473845499061653935397854268336036043249910255152430701209366637941956745487349778149859222542664195887969493474058833353640815719959411189811235094872000659020383133376844511131849992591134722379219632958379368067761169729088955147772276162901342419637616242745224093929089149600297263435224916757997451127926578526428541239593125528048875578895522076979400788333675456626477426199755959104210977434555740361554206603403359944486072601430874146224114768331032917381060655131414289244191759552682733685232341755283578239905715798759110691668597515916078977920719000661530000086306449933677179890631066095075798700691610714449393456959709852000814004778434194299745800911528868709740922737765767966508596336606320281970710652790296122220339684519248531182846988530786292935984773910726588245496247951245195411397032020795014961012164394011408967790488234793634388402140524086027930110904924151171413672273907067522530251079722096632484957132379560331163696537280554882702924338431105811655044939782736788450478393174996365783015627434542109631199640113599827024366575661653421438882198970224533149563735308903120084340627974635574370857267653552852618252559092906132927165506419911637367229283298613969169156475814419839068811501598556668071535433653617717053288907681488778551984677818416902340648515472327379817457839436372050049172563398525680507117590436658763822441972771950813539402113930289646876845160907329897894150065778941448192098619100562364228361130759540740959899912130658236573169543936228806422917038299382124413270256474299786382575670058601520254262936511036725369548292919543568587060124946418264692827429302748346388095272305753566508497921312301051416215181931342763375273615985916920804974467524186848078170709843939237333669691136741411972920174130579863549597444584327052433867084273661754066951233491293526010240446219988759586078379898830777715996229473777434571157504136960757999085589316255899469646324395754700791507455262343633179635646829950417930766111365490686091276930206149955118526079288252945464144522445553849507852148158817662053694386526062072135442136453282272022631531491302014113153297590229891752850345249883670994701409103878690931823906851016331868420578988834567557035344307958885925600159440055762129409840447686796044703672072658034133276677550961309916642608250425406833073086367587314624508576233622011296027844202457217635078317027251577388334709164652023633171648085888772042667830785393383780224502711763063409913707916874836243519257512734797406854723963017891297778357741850737626620588079011066374266090992441128623097765804464978635765031262693464536038444123456667459590083111196138715926366085379314889715030049982664398634596455064636218477999018193095466876858929394942023848658631713725012292253047329005736465217048605072221516041359234487563385610183237500900027557068628860080431446052692377507029931225107752142459139658241388209119758781891369445462230649770258306607489888424478264011543919789924489058858918384565077957945052316262812612580341324352293804884420520945133145921650088326679411239813086520922005323441632192388359684846659710353943010251832973499300675608906730956696101674770530311396538247997302835128009600466277958173378764616004272845016808522985002724308760097073945838512225607219100182457516838480330750252748398088539142929772874924866866699514918958584191689300829315870710736739006082795582064788158703110347187240771196953833999277343207377283868295786443105094854407922275769786781114125407975290009943500231284622115457985281955903566983878362412096357375186423317438332475130834628075720225631246394618736396059209122403053813089933383338824187991022212212614308144596605793233471981827217507322760956110117004947870859659814772222219661196766403948015610342426534810129062691426466422758518674765488359749828221640242923925458878803307106106656651918387494125080136651322819310568052164149562249162235310853457132943306597345131569367111712612793256702771546142997393827533028635521959082071361734037650030941228349544090967904145614137141435874408908175995244040692546796840260042209240711434200685709323062201408343432340275991869590078671233273263093169190945049551634838002001751129192134319278202744497804966105219529099754607545392152135249970792118813835712322316445546852652868817826240998506435455259244074441664963993216274997650474988164106812311865771806246761366420392610532323000808869875567338014592062836608959668142836404582214697651732522424886084837120809968523705154173612704303801526809213174867679416982932407654751967586183822608733790985655349320031951825282087877436380673772347889152797720185955368186728893313373199759235349026587879397020390025882985815568962293073553452713507339287364121716164097426049156864658790963345243421661944991765919075388762219645704255719303898793246338943290680348373957677410118271493366745908537136294035211455781450916521162690776198791266240870121936327968520760758099249269545383001959512355051396609059649292343159234282957603025799238316326244988570587665990730497457617053075394637373690874567452226631573675740696055298234922614225530537111295214713236249717564121156911321650679194880933952485918750565689145659611195664555105161861702370687739751672577816359274903109541936747715578035351252938303070211527219939800632843551689079414013481366304522058419109272190947638490588420040932829382355229293995100958878728807178283296065782861424272078340039933717868618156037284220896417184815335996794045592056881198293361234181693773655619981011556478851308782041917020894569661709432572731577263106990364160848630677884707829912443294832958141975268114697463840746836617563179001107565394484645019179234848098982139703648188303150398488453701658144705626198438794571280836114712706411955689332337219191831314100988326731656905730092492091832091324304769629045641815803548589512178095404202349492454326748873682758100792754089897404020659434281607843033801023263755624928259086411048467481893093386604881259539846847448383548352285640582968215081624500970830922020506396405743276985104351461572899378266625517526242579885828149594527441583204464223400163605203811835846681112668984370000919269590413079236275558933282979575011939044868164096565184810764958408620130750771407796042088890989167949131636142354042902009722924942355427066464559919993996665875232507133595078311118048287793145539049437077673251410685944409316953397063174064793456842312545763035051287677207685292721988047780047996378124086052664722810112567980274010582128125560445664292108260531028557586614069039905304966507998992610309916505586398756366327220431211756191293759701931338036352376780262443443703521745173098365982754612775198559160220952862290116697991116319989049496728325593703180399306267799661931747523318246130346812776882737885131077057948952810598410721799755310071699783127553739520542150577812056680245169052684026662683968532693521475792237272849654879207417204527196056782512137279090822513840229119734882956958259205143372523788925023360335983324734389363066317428395298000430088310735380868923470747596397498580528961923355711430280384918677947487603564856835386341757451629898016733939021135309963845715028515831230383185109022476254755547707956634281621775500447571014916096273948306599876126142660528623516120962110911780604757825391517017335217419124791796771468725603937419354215429181866741604932624563029966423316213932417034694367024545767053329746398535577869404729889520848665613941407797593161096061257128870160810958195239615663185376381439094995193041241225990485516566854102357567504960136528679792888340618353325865996804916908941254449555930051922136232034411561676215843109348822595194871415076740984167181925560248589738101262354252520037134230990024398937010385857520994999628205125437139189576419857357776110485017913706099694544240690618820518306438902839342442335683479663751451585510226182430435529814327477708364744791234445999513169801715879008067977547477741442483805081855534990269856655465331263558330237630838787360295156164959948196970314133864299626122950600317758579218376682228409900850798711731624815015924210204625448524428657966427168966511394233297216387130340578822273076582701621434521746756238752445772593548722533687740801459034238824124840439231753452487820284558804932825108069720833161172122622548182444576845600833548821954063089273938809134406803671638020698879153784976123044264797895818508239904543675195949960309663392788556528375588143142294959322906650263224193542145346245291355847984370112838271283673194154082004190070605933165447259480743506180025954140684921505298150140599468376050386078900302213114058192509497163300561144036617371960638397039666712478391189164998269746326204431035992327490532598370212640116923094691836197488942881972998379120529216989481113939305358061288124418238852884829084862271138788252694966984080438030908086188817637269086194608879597080107963238221923942914563606829859745127628917002238494428808852993617616044411713899909433324283748325490722931561115545028636099986334470809749223941236175551881042314924297993575541545701168138914633784553928895411989787043742894824912129044005007406960429890845218283940206311911272150513543092564333708018045843967984140294965957482416466990339699298215829161961488365370700984132197342255807602048024305875725525634216458678980762189253849487150189294643896111679090340016997286180243330120423605198341947976929107480931934033740408855008905430721972634992394004892081148983290238711718971234137224511350622735560954897392811369374374407657538536339985214089381805113670287172028005543935972945759035132198539583995548390962493102894904412490684809957379158815743681203571341635580763259551946367734237507909048787098943916359117149595195469611644951430931548421355346678279475144616785271250782414163806702125685136894337227962497796102097439244034947363084988648922422882623957007943859743932407321698755711495135203596056871399345743113727418873426786017888931622321867297152814098439175967483007155810483901447056311744505596108918751288025969078186302346063768015164353506866788377997960854239630820567607073173599162043662061558517020378502132892372159244880887045129346838733968992764899441558268715357788045556027993238603415465863590324835535564199667027980637552021227063140055540640428470940470429776639590804318135668192127845741707548293511472336991082964559273757543019244233423365786741622557542649627316065970574962392913173630213704987589708482915913723113754538560765678783144627146414046459937278265841796284736385059957394059765548257865083802601654915228616276057763986154447352517052100866212179466988897117380611565566679865004427355067107534865091827400986705272350315804217187957848254612208104331120006996332357196917484546916651326722310230905902803941984370627869628689072248883449276399287805285102746513846315388481147285650893204529261910014236070514465218323905888694187487250241239434350056561215859686257162434782159811465315019665079081054784197779377808947291271985451826061688762636453732179594953537795092525432099055001863893629434057557864447315945698429755836910210045230941650007832801800766305671583834204627022418093472717175528644915168129393228231268432519898649953900584278827872605038320622042756254440606029673091044124758455312441137814958181086148805491017783126200248335287142004592863390374190624810276240344164151835103222615646557925443291434125233655481244657812337279217985911346243265237237428265363763494836237236601380025672373038517468659816206655971233138026192786177171302024530633685416978198012249026181216004212052208199585998399121355705637867474157789267411666334635811486078225554163577278614237148527829354617670378158588959880784765536041818402769042676567985268451784361139195098117230259790184080063733866795583141448934655745712095846215314600433414242269371381526641052397723355972057921571471348744009346847069593750081968067997387443823880053532047636367762475040122230363567776100682423512345310367157037500497680512779813645764651919908707613064057005206816843653453007799988631681722384124034363022050182324279336462398005206100022683299706558353677974520189813802247553830347241923862864118561784715167665053716703226867990667552244337340625969049626477184991274538346149772138909696086254300690187993611232652006752806506145144357568484407120658531071057808549384176422921987867782853733500828001541473723495599890594707734436149992566698832326070146777047353092705479262536910121306407604173459924477027931561306268131980165966354105992848453150369131192490021430174814379611613407051394358470224489245975519368835056334975457069245071476359574482688846355203550459024002592389353900230347990837605482678619909478037781084027665292984804068343542057656673843685711585106323944120103783332810251185270373438043258834303021982609317812549505972514243037081749140731433671830856276684052430351060649090825920687597488515200537140606361442078659769123373503185950498032770093217728446205401007541761194979876516152292300833419670615799698284655854868541410320790646095605872900529122352465157935800254431814513965500603677867522589493897564578556300954186035440933114395060354116971868312322270442974388201289254076958881293797009388780165359436767371474806651590899565515646900189040123501280251361154315408180532803381944040369046697967672057523490995456490051269394642571166659827718952948927279898064127356421735185392637635237805733377584498353105200456491447497936523847874813100999804099799408127539017744985302896020152393747206958302739349445153089025783854840430254662410691008229438342577154853863017553037643393418734975173906209546556826785982473677404867885879501986084444732774902728842776472807193254523374922468455301088634573760028559612595048720813864252886663350811479398933578670371700599622050248096483300675879501172679788141112362668869069749277879188365591199556611506788320858060099317089918374757987674648347215107036127016503758389243943380186114108202804637907644943328351503026459548798578244800290054290856084892865606561955663846116886986322493225819371074608902435706498964907802713601006653187804920202213076424041983650174311735709566484019979519980516127758047741716812295985455767191945343452249085941808597292887335298746856268138007073631396311146308943388792148007740035913601937399389828117031338049009233804853878510407486390560602633907039178552958305370778269901507149605317800473826274030139108573145613786464738342103761837111982194135563199308835002110494394841363461961282048448512756693799853275239048492526887355882010300685185281882388400443775559737148990804938948762672649504918774151928767141534533601467689851756498805913070490715579430878018018306842833950146080555280460460395917463936121868382328485041222928416775108072083907490147141164401399895788465502826167993747084454607558394558261787801259640219516798775561128281741342430705449924356871810099142366319016357431057108745685658398105868623960300440626012079182545786902700176545027232579932099120176694369827074750725481319413447599360271223932743927835904013395190516621358109556746327449088673252834964655371413406613381165617255135181311039921644426975291637145768962035889633002454777103814604717817803123213899617040289680784565125379821146820406779513415685063384957725807549177473438791303616496929949309636910738346168389176718175911648510866633649090072358453563665822678292198987952402269800523997453915529517530971216542119139223373289253629357332562230983517060197724272883869277705106774586699938450459447567766340711020502595955445902849080730321189344538130741625412821558967781577565148773511517520246009618912943039372691858902291603288542456155173352404635045331255351147243722563054990786227845907793539243322826695420516587278751023287401009521919378994207541723972527580567214387861648183164906179811929673353406081020908151838037587947497685832338039274971379355461058986656889303502489133993462065250081938975397530330156050487122541183710925206457087493156344676974283004479485002685556766618340478596731464148409675328871949920047699795636848609956126237678875654581985464043510126319660753280182692502935935618527073323231646330092703187180218714861377991137836789359975635852260186416939204319010237930775003811371865154291580776856183093994456222645094085925316814312519425329411629279812850689241849253332769890088541641680294504857009008106641971778478141663137236316380595654692120879563221342362714118997751378305781409904387706203133734465417781162872956203439560649777509502014080118022814744997972015970295521372993185424685570108836483652855459353113633742133255686386357449699686098728559488100798322386713583856510028455222230197373501160873817130673496396983167103024137143531734734347483838364465081823245999691145299222879071352095542697939314269194680748549657024642605628161706788522981359282475332848927354335444184484527342696776036692070932180857207086555945180148840280672540662635111280128358119186505835312890733981451401346777910055137992611612679869158268050074485229311282114832697046500480168780343272708003176741715425517514927468733078041382937258922052541607049424607849627332232261533430163012207287398085622415332031878391390080969033014744957173419644936690144099346600072650926415885637619868680682899008196920682988628624671418734243172778853941287722721397570982626642657167417172413414193809722887348722002821173821239703021944298400696606086844083232306912019512876248277864080111362119531938897541012315940790056125784414942763748336438794016955923938850266906300029840488000198596295965650504425827682694506065455173353521101529635109020119191276440243394545165808989034611985965292928723751813824542105407114521867040497146677321956724429021331341869600539390966570334073445690497860512240495659811607914416878320918731430046429797092167233360480425466924403992224821913352984564132456736099775693870463174504242879884152452715462625151462174652232537016148622958298669088739317307353019292816210379945191388194817209885360029756692278230135874027006727921872344376665696122898049191309433697877217371521964715978816502323212154342116761239530207997323268086824417595428558541077934149255009767788951952265631078634792630721460692936468862225315876167336769278831174821136187149619736535454301958168203035597267891540376799679918449918876722411815989189631229018467789325694534322001080968527217670611702690551942621367547792381550685781960973405774540978921758924820137575898357893550729031595573364834894197565580376206201349152394917963699623068870777301480641319606070891481587861276902231043907391838294192771986815477625262496674134348166119815755647438934461384333320247479489129043419175286222049308662702422192664152757876028518003614431135425896844797441255079179087228430079218104215955657149433674999791057288240983515772679047139546192481628875335277083543083663752587263707395196895913931277981026471922764039920213767530932775709612140621951687526864356153907886138026183391274530640464121708353731420311983486477263408129993241119269693522848541737051260030910221299742361156272485749369564706803284003299583464431127279160747259505478301070830731290919334143222438751993699652357810959246387563993059294132155550334417087694235711563049710680914929748346756111393476900700371858823534653800520610128823597152922631282576336997774049321972142371208577335131873524872803575077563512959532953562922601122004742083440382907420032460495316041929457719236173342757242249281926043098707292076310037474711609953309613125318733502538696308959914463945771479137652529401456635575221035830463431090296068088367975289387490673197110911307256037886257224774817847593740682016209529525161878123055546144875742944696149304254442037120334696615025935197014356732284242641421365551532393438879028345629792985143426458974140344330966985991381195687156098145670106614889998670149937113726948643269200202214495772950260777324988230634959095551773967790292379291170184420240041337233323873671661610733110002881889864652686302707399231469307570238404561764858689949257125978984705140804232146045473037471754294334623077494545416662905971070142804963618651780630927663745468331867932677220675432228340457656255892847901352526412859463934693890376499540417314829396070606748673461697925100962202030803233725445113164547429699877078064540360322509811251452209211896804331913703239719526468131313366942576428835770640024698328515968153984491068473277338218871917069058906062824025974004477307219282259621075127571751510630547224332891268223586354649800081083136015531689103392101701514343417658963834966198677957493916441582807198672358882493028635515439250186309789986185435636295555577728042837681256359228444406577289241307870830530454823249165547850156401012459311352765105723075485438689386271852609276245281733644136220462801802056586279770437789666522309369934547968026719586565208127969940693447490981646472141383282207203837498903644349486030729827587473456569579682784177417107005484984579084723553396499324473159945105748820958982293751432555741935325889405720918559011184380489029120676430342708819517954937743825337948134514449159663862590615642863635972558512789442280130793079842821312392106986628486530850479364627030582130945670459230246459372700611896595041980940059622821436081318472673654127689542924929196377105420484917221328033294145716668046104500626285068163779214763180901236646704592802833747086801358006926687382512483199968069397915641744686695711942874163240348064804388886299524802132251643697091690258882207293246548574102067026757522394136038834887906825769800115186915933536458737616265024219196370624295810021107336714661132169131420480374270155920394525640653504757159316618432870952172869165166208558299951894554185042450635285254799165191531365105828046677124354983313841624898961254826788571670069355670678388659983777437299970439551931245624304459763883150277246153598206719541068374095266008365535913039470666167617930154297021082097127401721355864050038698064403884820338331214986679452743487535034371574588339713233201391111873239662903724130495390320954106795828184530871809939587238167885267164667093627958441110453632433703212856424411833054040974243029149330857926801428562427292104424110770765727380001464412533877120635238112008663472541873496059559512787602728884273603336206063766582934819013614759717867677841592842689089458938812278746276094969546018604354103760931256981526356898110165967116620037876018198395474801545294569683535508886993689979755502222045516718732359057608296515285693109381529209815145225249529666231586770248556846740922545642161132987326922596082156188431538308037102108478494719525179247117291189617022104731537802506241171003368791551216300685550917266217243557363884939434899416279446095872053415308657263518256886261946726829574988524221014670496879583646775580705205087074445909485788169154136311409256632231329172913863248866832437243972001944820040133193626327573310872613178301874189795915367031110384596712402669250195403796550207357273362795183137870137546925207053082305460358605302240548104411241662081196410808377886995129379261461328610758117310860949655148705220327666547314712333756173912274001248645014305851785571827165543015418384743583769118257863309715404566317923077521342783565827509401345767091658389068139444305611110413999690263355132806960535151402840677020488837031994658865262455787104593105110017468962574688835204203443184540407074778737876966655246645241997430917359159443970178262163600616598584771026685501982295384683817696517263824237429390793630038806942085382038031110704342541285992430763549735945683964854468023584464368552872316402535386552490468081511724809110296759468760924362363448617828711769980458530794704016400785639154924246904551764886150584697863240569120512520105308413491591843371563975910997729267578991283631842771454280619511225551256394195432193332554704915273381161892418323631772442133290758806204517175950754205137869986315657762629802134438815179749181379384844452066848466196548143257607406610392968389542446006890125741544703280635597688312121111777702989979544983543710355317733451093121849103034160221945767030820206804376755519328002363230125289109782974809554744265227433093241115516711721772937656501943297431386626104946259597968349758438085058773858305847122940223580341345284517140672165880936835938656957498709882628154870032477073718866616216168460148620675855158585482347849520052558859896301564570438426056301196263271160580362348708583649704116149224789704077914776125349097751560547947239310643452273459293721962518228151358103247540266395999850390510367766538730573315008569823205377396787783733519381528388947080224919444630822016073880850701170437736329526940562791255604765155077793183995433311426475855450281803148155882089537281597932578602603321167310633971994308951991742334560199013602935811399441159449072938958676845098437478409299817580715057362028633121980550728199323037725595352550444849737091517332197015386937728804775207325768535193774450262358209745479853262889202537812260548890897649223443370537960007723812583748901856916710080291722218440722121282453761287690547004346454887738047412192408950762953177378655210639536151355179221616375594988769519985566089102004359311617139030470850031205922614421234910023235291809662234475220920099002649532815727691163312299200230758772880563296211405127475364530610382084081856916928287371653838549160392739000275209784990457818541520306476955008305306681205871166448520391433536579657703653948616767282308473836944277261611458056720796026522983628730885383075335572627781884922346703436872817710839583979151714871413433574699119046563441160672729106884001595507683524577963219437053490361292595790914936576147104503968211425540981140676297531842019593764640697365284324244159343244557602450655540856326601985476760718588635289873762550374133744461914017543342972612660422552685215762426489184855349149262611352340845978612776048041978011137990553945294939668119615604582079761379699943617062047307869862107839319157570157819384363648606511316276568526650491942454548277268108509933061281908484601225028197980502320808300139460906160590926637750217687677206333583537012990579338294853799077539162553340564552140505922270985920961904571211187711452871178136177937477631953781584529756731548773683933045122489704324286411185012911279229409559244045711634356033587079221454388373480937243404775679714282192776322426701354425599444012355491920055593610332254591154066115283059912766792267792370773012932481290895041648127541465836015324477923605944806428229947967281510570380994955318955270758307093585766873649049535859213068739570534714358114535854599641590487984149299491444217716638068794180977838214624684482014924444900128552990938323064178184534519733259468091312928936395706642690614333089609215313980824612702555082079693208995006985852188392207384600997282607977547852270339118342747893630045876002631138872719281462095744277687479769626957853623720561812136990061564966022982476101473879291379170632464904641407283760803580065834011977157134259481948481735382957706615875321790043480595301997305256362422201404287590337318868044924448618227096137746144001132394965525288819502983765775826559444587727120589009031092698440323025966624228668917447630312844754742469104444598320681298633659569715602051246474555114135026826152462272740107567124471733692815329974381951553978784027172659068997146771046256551360037881995733478173210568544326115981859960294882388408691217469256125935368983279876296197355386387174762577286891851527903120754003818957718791721943907918915642738225339019398300759501786868527248960176950168269764038795989023178186616687158971421070840210264570510705651107889756562813987874487162237692676411319607203447797687923243856918392154741871230015825637494661623146167091972903816179887716931018793119627051313481093197688250965997563487377354661804136010319727063126207758266314475800957490500535193632765006252505280933199215754219194898280960977414151767397616587892272249419663926604734533738262275566137903580494199029089518841935391934663545340785045054812426190126161973882397672028395355783984429986464344206985936349536599831970810641607507820428718579027517140012605837181997148239138554086193708039436286618162051174369234511855953738815390914210871373949653661987352730671144051456714788227836226884554507712791600726141322314199115404611381833990036662787182721846898456634874991636531990539486899760880418831686610204491396722489761383374377467719302337850920412351555144691111423397204613358287973121197290924444531522965099903474681442763343643352246099093141569235640682379217279533351567271816923725607319188541837375365276591191780671905138829279958542996007969722690574529111765419628171412386789517137951947899955463825629610814693174732146228419941809276003187500172606358282044238262467099095799477253102513231255064825067580291271794896809012746004881786969184417475018991177020618920298345578735683969911587843203306361250239858911671011547788772837986403113548615975431443711954555831352482309941786141948622433170196474112130949720556230706058419423416457696686740343683728246898282808605435700239673977261407138076606200307899863713005769716309670686353869859178961058483739125417726551374943241149783439559995806364062666005761069563445900491356010448789082121534914478384803347756298950491631428656549791934833751948456921435148572899636580967064333909338025333615588309252043875162360607878434397509470895970130018085808094215840617996590723111399063143857889562662055447280561487210813399941715687435023794072949444143438294527495398975770566407737239217242774405993135900783454538715152299020413763399057541851075771333877326210847148839341185476237307067240936935860550843476831931296646045684414116447807086233946931768035019301520545313640373453951332546924730082200994307219216136113582497502615473343459513648623434481475190861085511137826215500744966249398323670769410894811362000466691941413858308945470288120266961537081340385421908045977681436495874449562244494014072303997139611557595042334582077828726423705443966369832229242923218576662531624355912705851707993071254566502802085294706287546180691269003931965039873517510654727012215862882029376331915903482829204635898898323135009968984172301494593107037173201684628933415841685724230226691268121145954395236167388113280779824005208693641689080105085682166325835500176590782456911037367689205641816717436149229252267899016071255569313491277367566957414949104868527345980068142578588156044742594009567999093976035491261261996789392127752277752673309668803739479778008091008686789521232455304766436780274329187540964723875785514131221284793071576899215420953776097520357157532188096430677632624023765448547266224163196503775414701498183270763910183572790047438679493136139931360241174413442455103629172121257491051169292335012881700132364178102553036022208669541989330750720268816599457626221744914419379953100982150097803717851847013422622530957602359537800418116646750553025269779907837348094840328668849627098686526557137701899132185156283809496983771114505910414071518736211283500708676990924222579343637250000273635688888125568589069616347872627800054545210984182097059681553665838027448657580685547537380478750418358373853814266002760821250935539246106572978656603940146537164602800784829623890451543678830667519140650250257433497797519561144284031637816381920319214445054951455290199404718204194995196844586379192365560747910441385791251947983558112956760508562386814176885398345961633421420385072092104610166865948307460254716236597904458924336282286948821189976631835482533016817309635158482840311467367835377566495970135568552098001116358214258973750639498277030399813759486730990768828950081151045109925525794799091270764465973538862902817394216089724873280791694008683117364975725867291800451764020763649565229598165285948905219276530519808480842607978770096196302441315169490836146225320238563691416256744504977299139048459858823670737647456442344021596449833843402558109069312355152320883045403170063173682610901854274568530968003411588464155580552159318344897291372822105626345422092390532488939987178324450716536936325879859509185611980295455258293389081155294491966010795626616316632959740913282172789922109749119346356959852615214200873129991088958821185276430862831793927047940987730524292266906695790309559924086075459135168479551196889392582200366987771115131100134625643577456740641439570483360667142705589431251617710084865393338244384286943024467616511933731279819380183465946861771529819267264999813758760017925251328671479631688725258607806116815669863935167764920655724635031297869040819378748744850504843572188362979370205377548438428591230555211611638815638716348115429025720266285846385805964177757057228579921146181837428374922265806718906338582075808107304656104402193927321088776230667090552376728727528440644424495808137190569056968531435307423467067338619781365435594221763371940357827821805296831460952158112745763177618970563256996353491690379529568369981336445552867490994945591787929928078954375698299948052337335503397183882934812928165931184785167624972103051782395014597157221322958070298923292273163781073950478087431742947971334373596197174881048941050722803810809297915550696289030338507507392453070441364186436895510838208061967421646010937978949138152663789522759888497009617389545075251057447444062511241629203096761601695351724610595346857974802269270730531857656616551812065111192755898728353467319897839349177383466544248480134166615969021755770602512745555004973770333552525737467035281235942566071713502599224845644450757780482383986463312982741151146717048310698413796684559099355015242217919699433831690384473632979628026463701774764068136088107412822813196009342302731503197987403529976756112250673726475907136398310066023779192615496089981882792095364158877007428754923253565932454876115922021425566539379597396507643867356085146755457143293172729240622146145236716889359775190905719724842265159087571970254011028906377999612990674518679349972160907041064721757187860430284704135655427440549054809000525615668286021725001272308508545476236330038234894102597204266889809632854758240318962669291338416234868158463277540043714417897253215169955840694462653575876649624690515922981895465049122147889640648219829356097411051747522241070084434454030397127521123244830315331074371926485868561732945366836730531048655724570002770921668913142018324988911318362110303962404016399194802032877217278778886966325738486402500811507821976049233850729350624956344019990016842694230364124896650842012140363419288293017882904697870840844153048256621230466916035540569480250590765330212877422593869447027969778837666380885207718309383006275493819982068582088766650675810263068443114903780873479353764042104447687713008219366501432355462214145503862798507118713297331752211308235115757341883749406874721507999588281711028359269892372394046308928929949573842998202841229559467586836071071666392793577967374326830504868356143839062450532844637720568291971342354755694178679225598550520808163980519399727602947385704438448413774395617981052753445082723720040916461989845968566598808833086279034153455377231896385470863436599152189271534604130599949558752672492288601324639125492626708951540437765602358361177997682317033995580627072981796022346503126394122191461739156784122236289769612201161388783356069641029605014246717412479012458794477922297208743281413692278915542581131187762843929552445605377783126028494289102629498279140489630609432215792543284573223237720162951054753162789519575156741510622662463347576275230736405879131121182340003709286395952454250427510764680327109473270520105158462241453368786175869515330151595609695321369134923263266569132937438808634864432306729823811835523210944702355336287227363899968599699920736900437494065306413093890349113992855692258873540174054687618163897383480813137668065783408475708348567377159344083322411239584620262270536694911573838331728350328044322254981268645581080151288660391832001980740434608692026185520989320342505591503899587488620641018890289304139210212349863063420698313320265691015825229175993829839706941767677928436172900290467793920205450945400482505054710008006837916310842664559195166741069150765564669149736671069430800890629779661363335746329743356378707993157305736857888789231150684160184070881919815974939699726547722934889653554983634857675007938530160494769629705882073102107203982413932042547015245083365880596511235324883417774634682728784467234248734074475887299051246694669249255981893003640952881487977858169380121478468717425809750279889061526035378832609094986268811882731485039677637630319322828249914550337747464483311177070623700270934164005757738535129959628532432197815087070059072690391357451024533544697952419894270998336029406399358078513011834834285776946945070509404168156519310237891989814470006901281226212173755825958787743625396619285534420174485717739804736266763640751405770836726000228759122962733571010712919922884053224359750453175544688433410006198023994636542484566573754476193716725087966981069253369499409602846901236757771016778510569546585411985169615352203348642418884214767403918914909126826558606490510057961372594891441439471229248269250510463489016588392822817571294028091813413253670901715494765770570848977494537749620392660796471592123128143238382430795921678963851345998350036890750398749243027240350298088080149407402793735523394048952965533003440036757314952168995578089922613935813108650981853850755835381316556325512806120281361298361574035617869298373724841316651326873714438496350728960317474206702614589231431203260570331447593886072812309451677183887551954854147684897810532611003375957987991983852632115659032985872408933512903522002596872888630309097518080490910811760123741053571274705065495666481765343578991022423958100004057935338170100615712966976656404093232163573381341947068558048353203436440634218299134293995360558207671414116075935338992659915477374526733565961135843528370945779316945514423621752742996397268994560606798814017624499315451517480057779568892167524202626152177562942981050252649276065994348941891901373807719015660189754603274978196837938972011709696986777686954155365965693170228265945752264764814678190285615827781398055476519423613516003701038474556572264036790035386270564266378391936117492368953703771818794058570168537671613772405479224623335911112296050410538784223371382842352521246869658894452761243727374797307595471993695499296030148687834416820973138414958329147800762253695628207164406158224893235989088337695660285199532943099221378421546717831791179605611803084069491051036848675380260930135175466116544458865459840615863975263431723252291807669817476152677855986137262647938341339885544615845502307957305314507142621302172161867953565457601793219455949725435064268794820158397224849581641131293701433501380102552422535283360608562133204374856934389570581988910472079617042188870613408931741982725357824968012165743145881772614441905960937468300565748732242015389666166752029628463910175600452324038336236046243061876087623916872990558730881120249819286166289134339820259608657268285984233732623633501940409296947799784380337765031356135084878654685568977471390758450968516254712321511719195092747514804359439979295797224992499025400949769528443447172977778620251845919052525032046542218274817032123657136147186178020742090098970535969344302931632669352877665161806227436784847521570728314019808650267097203059143643630125465632451424152075965150030133407191371662443488299887498107136621085616595832395676178330737309899466533255649431214631004514993240499990970488778031062432966979179789951319801241542737616825215768426251548917566655818747165117825533941170101227069520832662536386227244565162635526798143473252386012278045799563702877737017213265107735749537561656063616324538667916534025115662193220231577430876275185682400747461471333931148623524446251727939437456242934457136696834215260616377519707838132689887776704966777043069810647749173796964956100741477445716735986939441274641134013131385021503058016543168043344134123316960542684471864915263020330867852266746870903670361978969091932219127612782794789777438074989061586132514374118250743140963650939628275690582956820551889570385172212103502376549396198773590383210196272686809245835707101638410634865135019020350251001259219466569517505507485529878231113609163488677875691107395340216045481080518229316932195119275582870294001033375401075143591787601615918455071991891239913856254184426125855290599072083967024807335705817339126755697613399159510311260733069972400748517019394482176878667558117555145300250514790016406718329365571969363725157083048002252830279011619332206859124434918899079668841599212918608348569688668452788255013539902883180734309362188544126467745968621151959716898316573976000794785127445774873263155866191125361347655931772886895310079395476206578961661414108795015414117115683522597461647642132078470409048315311756962796040307950119132085065934719888022817480128354313907085949513041718547136272003482420403271065426707758942165893035890429113006456580715511235163850645725358613581078580235221433937209074890166811097726648456138339020272891281484646448209746347059357571649592108641056305017920065913929864419553119283019191460945307018327411684991140776079689870022724878747517913839200686005754014150628300505650652891107689123229952826589247291683976568251555497761540658846030355550768197752563689200564234866603267623212978816397042094010154038215581125379472676362251776830901552433817462865514654415385916639914308434163658222242886977654621687347544928612176162909312761238843279870336162001269889187584697408267706582752086045054820867597800753118673958914570227324652863908208682934565785116940711431593684658046917583673713682189615586696468118891042532952712721558423164131224990254350698103273857960490203233259437419137675654091810765028810061183779350877069221385353531846209068821918227102927951534093469118696474847567239657054061769175046824299549538284954069484115629230145060338098608005426097312724517660015833874523149169364463952762677111452345629258507641046937843770717894927993415651022901105352158304938149886684073249593062998212440863739099749747620382002836556241740375465820139449277309995068560818370888758102131606041324726685706079932445751719681768929641389131137177709544053593102134730796242544978320460999437903831545500866192284244995425795192618413555428866728329039695217202446796019729973054386149434675919587041408870546340252582436651758043818609014659133420246159605012962308180357711330970467730100792843271568470669328018518127690076994138150519774634914602137215526013366732575295127255203854215633354061608446362077810401020912907604897087334933224969164878717433735430907984333768962432076555176420095960097361676431191877185937103563835268187663796599056598759332589371339236310186719406001990628726794013635579661713410215057275370125367313339789142193019533731421854590358513409586881667497071615007795962621689027425594056174953996675358183114611394179944799395620241525963267516251736777497802323239410705406780022488321185937102061079790734755768173432727840634387043525742689880205768643730096098437649782632511400913037726080405442838790694457400609086069266842294176101039646879289547504174241646842590047636193064813179152457628463792561994374570446512866448754651829532827542144722975815770108140010044351558048633816057607086923247176538545607111809747696747943125632408869431051534360932749162555776251539125708946445737441223743207607525272513044018905722239150568948743201238500907806198022470118282607943965370745052799229095116684224725186007567724840402151194631779690607409793633650760878027796515289320051326471219767399207594399900475390027634485113504755878576790578719296643777803607161319057304930787694898946827699861567709873734520724835209308782653236963648810129726792645997804155093807545826788297324780667669562417593256821558841827362450475838731238274149269248484708812453093028434924097261897634893967929996861735099668845180221285647733574377829961880520847007351193461573370371273919541284156372334345349419045557000718225704409477101220557978569201580690814818485526343503299107750005182283285893361719796357131583187170361344045624736391461065544082287541494485993782257333635388678040567600741539910290534258571103493856842822956594244219376426365525275079086654017218730451540352537809397573978553704422297716802025943498357362099685325537116590317626816330624972471206721558002099138725650327526821130573904584995677539584363685199807071761358885083180615880269874635743542814317252160033947718838833802232818692459186796794916576806300505999482408800405334895094085928749358678195904126435599594575417110131773608741473606371211161171982129641440014487850320392815411660406800132066076788595777523524428066616663391200677188284072386414966990777018964582344878801401118607578273169267528955653819728802630984150986994093254208430013143001694135054372248113084375760508805108277950501387190521034568375961653819162392680590527247434559979998879105597293983081805921789420749656479619213538900776027807101353538012034798289991063539670387791108619036658029269490256899942127008032886902905822550272698737550546967378769733646288074433976672271208283652793344849617432452080275657766526355881577676446388960159543017217277383725801315141921862413872032807078545199976123801534751053419511372503269547760461703307252215676723055419134412894116022828725843381676537648249573458599720221183838600127024876831784679833641050943432299569844263431329256603532643162308535218164363390473368101694850696832776218472906348713527786731232836998686886731959981132927592343708631261510847782587408309640815614134793873675109696504907705511124370334388829355515442739666561333486551285382318873752749709036340879295748744911735718360693640690677552125131066672651535096569308177937702548375300694730149087000956595652240851449416626816808809833097980817719256821025368750148881108086366930394870424743405969130796091906232734011449922950256711914195558494170858596111507054812412154351637301071317728102479109960357101281470034875308226931718548220543682935492976462348207263295880996743288633878971628402455186401714023810079847814883333278670309552541960959581850848777165851624623918614182382421087397733774892514884787857287250536759242821184632846075217575600597687531026645350920755346425641223580009919186263604789546584604437857066250287223809925247329997819296201167973856637356908456947184506834907972428117594658365034069688733269518598732014152392474614642851106578887050050158529255111496476763282758192284999580227481046756878105024021832186796421845852872097463383679963822083411784652010818791570773389465421177901034830872611587268501803859102816609027510669796747534105982828554332643266951664508853558031290303590224406142525728458485415710769764102626336746015106217326327581478181298104499282651157316291817627423755063885249271762569912382052570522694564926281066727253720283050282682984946229542262078371115561614659978739744839769885015041566362581399660495867396645041059816910416528052731393551920378158769352872012947541277923250892456063194885804861248487967393769135424796806304278151391834286280752392415136061522990267862235460065147730085598825538753042260125132655747290571449651133600219658389244864229909403786836936198403325876460881647957279948559833348656364511897903068658342822596835580179391927600563044748448245260432997028775825004778205524320895443396770563161195294869723776291654619220025800547720876538818160883043932609961115926719509053514736835683360099598660455485746922750917969742863616632979744316057479126016641808095876562639399666503180352594755519956753234387980786580580341202156473846509310496572561365957769472723634426973292656647953017821672139520244468660086598419225330815119765547550118186489271915154969176758259945348640861032828828620693706487758641129506406543405836908135347780800491584332412882084215915131432339737224999769973273445052730958504252536143221150507284202633355642298533527783107353995855006189634992178216781302261366232212950716509754227175223601517653720347280437407274124572991641083665966487386783776609855651279691114260184656590052378396105898142409051007998363547319611778095307182024818136284516997362383401829896190742577774469091027364477841867525477824235922188939366721785300130260958107684536463507266959025990111342009372650917727712208248853484187213000893390961045620203348613070212367343743418919697190802849468706224020373137440023932553975893794678715656674498960437961801451882418129106217497721958317798012318304315861683875810849278957611307453433988945810753044737925760343741504890178627532287941013782906589963763502400226490866427472424647056853644922157370686361359759288665727649826868276971697140441021673276548855586551076299052126720468733589110071007744043636586072623824158558510809366185563714390275477968191937947023372879980130240640354771316730836557172783560852817303136774620878538692418331257968161036745801208315519285521745952283724293770154825991588580862439161370476931158403190244307483178090467539170598128739956096165809464565418939257374561936060228010934564439768360992398583120844166062038774182263245575909401260592996955732133626500625658534987148105084326992756982567254730025094152124235706556887771743102175231761804703636770116391323505561956465240684935121316075728463925469561121691283288587005900756600061358036446084738952966037255167736957266866786056824985347798430330653131795484917552392465648367482147193631337300298126785251249687618739412630356599085552877248119373377244099504960315764768961503505534501289026963277953437640668013792653816108944676427966409015930492974746220738735948473519416785250540024433585476094719807177881536276718239894023762094653840414973837489364414067090668262284426576568729491515272370371905334778846475176147690513976241033689024094310380220806631503182773185593283851617084076533941697194801826396121003859159618689730824092151126342565244324278403693950569920059490420076546752677650639381208152319367172709852930548179392363261705955934297519186797888125776993435208947647840858116407872328788835086838340259483166871170298715583635648024331245511803698930409133781030638093877634559403394389348414798560506447523031568637713946624454798298128154571080465569038444620760173288729468407875606797389277770965321374282624600795872369250278315797247396232844915022973873967080183074951365800992699131289062635025691022743484150003582203506880687958235660984126558690553389332530013230961225499333520211882489974601566204720761276450583243016358920307383567157843578169827965689171258004556317985739991277806009461015920914114257667267196929088373686041268670149466223357437893266965546337432944507711960547149455236846953751824481089710109143209940132551745389182987967092446654768566425841039099821128955744165280019236103585705760775967370561773381863479999729967213310450268073520515236640675420041903725424951054220495696678193198216164126335571805020566522064070851503274628002778823770297883397614509055066647893157002815544597929612374569249125504639361186281285990917113639430415944252204401414079069332396948174367565341384913835478755303758913306838503631503478385104264745216353146421814217691089914706978270105023760966421462160285592762792466370660418237819066634309543874803020206464649750249721376848230435806976562369159291274115259974530910344015061482270815373806552817289153491749888239816916015514324607874873429928545405255689492276258592617595672135196670343035527995454606760075104531648891845114637476269144362169269262353133534525180588886997497046272770345326682849986382395527283849307558308314415049950672432871654077589920706903033341531204451686216120307676682961990197218772215515957558738167107502329126641325971561365451303143729155245623474671780422893135571700463817415483261777420197341484707502332676071041953699554421024637326664729676525544780323837863176959372396056048900619779766778648957174195846398677703857625356093308619354882982049925254867972656982321116344304652753316849602657411607307835390092418998801111150921225493155043898232558508945190956643759233178207040681245192821650583186159728491381511152476190731197983470361180531927941259759110177906120259974821682428695923558074781345329943282474525006284066274642057272407215800204754371215471575921728789887673977720478872013162664591603541092459744913975604331896566881719786420121331480951187486817898097488907290490848424651120955963702926230344399026705660642471185222065348335759971737339830071738874488243828099796109686657345237991765181618007463343831768337531518690913573260141734416511408785803766538740869351862055599109649921509913371863504889882508181972185555800125330550545762166922137236730899634887950113327238112991186445458744000455019029772635348058746033170547249421253729766307008232323036621350972887648060651292899527474615094537696263834881362910592567216828909432591628749157456307528237128203153914901924418710164012982099810153057218705530762176090248050546764139695966737072828528501740921317261198022607677935361253555975635143364865251430830000770264252090658426929627610601528060153702532843801250619056907951212573010189488723445345313456494503672631179394305902990638634950731922158264842337095591755332986945417074154278548228146927113391302550237818315171903359532543429707408531382946953045861149678165896799159614419375549090780906776518146165753154800792119935201430447009124335258954879562783026759557396216763741138573341125847521651571117626003035390326358375361081989044142172090945849772353544838286924892182365817711114502557211129736058365485223711171096611121177872412918966427675251860320567306823123318255450610824788084970208731467151683556842658928738977443962298890775679369792018864995917611011648059339240038550268767304345280676760993113981510202569563392359425586597543862869399789128710216881658403600303711962760524133414553465865935483622173025909422059081775087006223850903653731508459148009713940351047390913763329931242458474839219649330501847076303019863976404945303910054532632922535251464486678520144166473245841839517640464182442158505169625811882520380154196308703215036524430011927915298351283617066156803820014980620516899068214889982789771023720134898281449023549408514565272022501758411306935072015119823917575522957883628750356607183437345603967650973337218322315495982656152718872631049084869086518307719224762977186099602816783157572998109309819308480603356460184745944655787702886560131389646039859338719030656778285488283827348926902048853184982413739292039427866743256188609543329416092389815929707472071032220637554933178535922965714641101589821154549622285221339244651145686748368047251532171250926943587882698263428624420097442524364163419519052256510624212179017682219787179596109189613648338206811091225520232250108464888600281458742681377412277306546945458696235493285856560811378452318910523069246637329166385981179280670478849965102732230928493467199757873626372992746403404828720851650735528168859625604320584397344612132471623891183709917562395455450645574118263462624726530622813665017038585540066065304429116743297161676520565155703158712182110561696017575338088466957279787100289017921458563567223668806677053652790703076897057950437579310925972255707181908456806823426757212582094138214763989811044400551327849559767500736572450658660231404030702361273411956944572491074940481674703648636342570052082750830488196726719868741878344840608194903570941381506031243573484961053086554119628334520737548625449282242727156077373599745882110823836608750150745925354348686805875824460069693422532172194747769018399411397687016884627521372793407508437110998390323714851750301598239552703519993907000348591069941124929772243078305748172650124272175722940895457485772960994143130785133433201326786300720271625897644753332155429452595390132656528340283019866864645936940590186780271730308035891036633881373343315699290585047556383697749982937292599214912158219661711722007664232619252116198511283119270154382598168411706294390098759092263220524156619345448711419464113608807956960359159916387503820659172531490167215189798350591133613718047566914854970508219815372969386419780182849603418918582950238370537663043499167217607499739079400836384944772183602722942890350672021050641383650582222516712945711067886125954401915672067175211625953784238452117622209462631749668141567351603837025481537918265462826858219933103275911501651723903660563815529923526257793902208273936695214336142493124164709290702632158769320354440471326631490585353812364680980017444657240665678956661207959034197625428551246867949066734860495456059397867563969922894375547328304790979241966388786454558206217635413871104317390643385436595711039505153966774588208384360254615242245526621454564180474606375149403588380082750990730919303551402143948256600450894763585036317671087436496294398677230822766690778695318762059501541682332357909088489405234326640139072840362623395758820151473224173037429775892489393763169257866782999035635798845877359800327514271964720352562032082337663954078410629259901325812818679547044610415839114596929134458334735906150587275040364501041271991648091163622424693246032729528729321218655139323628940966775417707573488373539825375496719457281901193349001559750659867861332203445403308437444309517418103190608827335240678908628569074084914870194781651292681948535260385057091179908914264306930503869433629264525094050076017885772502559743671123598289693038326625081257024630562807567731186199772764768147185014589520347181056357604650553821596473113155108500331274870492062842501514930168421741366718507934240679217554538311083026122973241081282201961594402198407691718828403204059757107351908803209322879476597581634721246618680722469796224371666126533072633922359565416151105386045347089249482915669016042278654574575090622941290140251956335248632302456783472826457346344944830096421036233103141839545684918304175942916938897335961164288837391325754002231597625537671317392444103753795009732785004495003302279953996459889609329875842887781197944814793911916635015812052274865286735411106926642725874646511788869803850752777066343826305996191287392886084984457685326165431204311061206613562268208148198684387985540773875069286456196704626437563463191021483857429102131162029928324802497394927946755873044996804567034546648488474701618351349631451616536790636875886042774556961728036379398789686342308423148070671118297665819506240599801625343896850903188648609820365326582650874698575919068528353466009295324881497863241640198639645014311792280098287694056785134109217186756081174459426739430221968076463109720023996232024503261641113179626516953892477332952289949464532500023918313869840811969115923283957987318664946006138072756368748801732068911020129802632269761682984383041384577938636474678987840576209865623448027814116038671686612045737806386710852848656145985412450013227902895667253762414617215606924070840972878947982109684105484300001135224151438789044868804565937346879112283590483416086124566957137043783086325165165481059320107865308875073948705785358456759185694042804390072717201591830037668865721372422544186528379363978779210337721655789961976880903601032308340117059249736954085269552638414315174725694621100969174569725372130836630589134234340988828324850970437349419866652213882969461162659033227368694760654585906777821012223537105114934471024930742817077488824706202302046425527828262924003887444790092674963375166587517826866547318428227372306902607682239153489401150352975162372906472606977716107172075125307986265271700993352658680702847181090700956915072878684000291470906870234209609054402372199867791415641813991836393538398212378464361040496746656349337954553683129141374718179737080728393536068918625397669494041891471770742122785229247092028579229807441291015175125843566935059375767328859744485122761610802260164099155672649611832147301400691661915637684951522020871570597914797503762654859693388726768868372405057716777669452479609096412740171544229773540203402643277448615106499454196362583880470217684480971633733503618114028172093986573809949658561632455908077080394894128362565495691139461854637163101038626784294600063963357612907425033242183209335160952052096138699754113028751706381327536127245388365303950134432518672866298051309024394446896820201228986773134950377863698361669551511785559444410162307810504321259313181705637810089906355119368720851148863168014264440145574604926411919597298251893705632910563113654709744894865319643534993525333245803525222264185154993929159727253544325096700500465331999380334535273015297289471267403993565110688078413747679902403548520819407524993047057239808205231533573240754969142784044215908936221717298264389868569015244520900732334585711219883384792611273499255940426091010477883642937073324335815481362753234686377758010680723922406959938263147180263765559345971462251782924228036288285501860539596595021518719022400823944895867530032163052201046098045898935895914937893564273957453493090381966566407977498152695161329951677626640904081591600578065194118760496575370072625570536357603156291351277821642474165459841031502611085365798587617791804369652379358355638864543069498809570229108400384176405157480586288394581242749540493397232520639995677185541453603471719636041288769134178247182828932360183957630880670256702736014763490655545629681049043313715759225195730626461055334577869784092491476309900438932322654299637221619209716572723325747395833127254462454964935942893872192162075510235065290858987324822054653401813367918789573615402705188520247457558567893201651500434410554855314848777292845331130336413481780931572804702514996029111426558020752296720229487949230395330164245116464295823801812911750535871191742158458889820758107691854803622294832310948149543870870634235315575336071842602801553973435686908170531536831125540036358653167317852053630071992641124526998570154850883589734677926339623030928247507296029922354805363764395998038350408849540506865239609084866388119074896723408704282017484759423616196842581827598427428635890992807695949805794775335989970102558911529964035409491467648863121628477113421512249645506012706527549084175534165281220116213221117413512315042859341742654530900600791328751988965184199178467868379532881062643292584048894072966184217276807273774920166678375733425731187770227317839695750660141805093425174577626093841092664571704513991985831710486626572340012782717698120847888582060299706758631647519212732160760593099779295485732085295706264739816640640661327696835538730334432422461335542829935820880028269228665136847315945950578163517339280508921391441344039961861962324561881670925125165697304412440543072920410756159238939865375364620561226272292343501232985141657218687150267291840448903503293312338239829358847004350126883493413601986855976534870836917052939411494771115992420893672731089815304558449036692854773233914421900165199295086572443406876351619312691453777110381765143431530750461130657962379633584841975103041112143636664416254691018414927234494174342555244851348338959982604181064625592559781854715519845931534450230275479646186577045583940259561279521525919584615089212214023832979591431612676218824298803006744313643868565501611631527961853767036167647951343764465708765615109695196565057921779942861786596895400407185193245950360630637265845118379459796688660073559038562107053414234121762724578512882796454739689743460806626566528456060890945988023837500093423857396825175121427398582053537343243293280520981531252989238552228138321613543267545068780531942780717481229024366886396463157596450085341718077404298491706353513321766421469364461729803363701717946444340741214869780340360458869370937828279904369533783790744805785528408447923312013064465234316006515853715077569820442430016657585008005687405983303636104144586406495410106156822534186091435309711491876221362906868523034611681248359949861724053876630417901969361128522639410179067103117266224624182724075505785862818707600733083601993735536614677944781171911774860853449522741013734305961316119034818934160515282405992591865621440716157480874330003309049732285063835715681035374883174770532079782151852497776895812767866648085843469669777226968363997668664776897047392398314627008441964019495758952806760827624262517764196968624093452381036903690316886443311338833154190915206088626054027740969729310097712485408357438193744598856218357116951813729753723230910720264295788511297463787768241111908531093317226382336416421016307104246572516729438221348524450948725749784341221279304526531199562023891775941172205052153941035398520098120754106682929447990760603325291756757943165201789557069762853555399005624267305779795911044263792392384943016787560023056238152462043052027342615779247086684091044102629183873323899010911121833109029824964742351100646225643506232428193983777708728898190165273083940479086319900654135376181922228946654821795940951932224534840193910751675710036514315103666726936379515558446609494279214713484376030130631805149029378704728575030448755048590898889788092808607350846617001493676501791665691619434295194663860192889119899715507337203054226026911949189903126463716224253152934310664110068753759229537376591935289814504889916018975320529627302729760467563055863435292734681388687902729342081932374609912221659715554178814147006972940772323493352514270393323144287221382364064765198981711587593577174756574746118597385323362508054418810705946781605941837698380855412336647398359964030116420961672639758782205240474784033211490917100464941895243410146252261947055724620954259900943422642899494297584663603260219632604683607038767614960746640068922746394772181658514668170119115384887430879425860718693457296835229342399569240560862522559211802318839317570441415665883971549639598237957599408837842433709807966595315214133985831529906560825307613777911182245823809906943895013850296934486893663118372280522918213223911434703417268612278845653181061626339047420491640766140039789705692785414400336702012579708444819018859519995748754488646246900878481960825131465555962109527370609670380936723189777398812257100675694315301435953500600591303248956954362368608462264295584791313343003052959184921144275162280288633114599195344535586453973667501742670279277292067326933437706820149293286676251973744505362625253212382945963177197545402775150587706924484630050031001759536720922484846991914976214302439712434660470473408463049944733703397665356558949363834068289264709241244389558409164783797515465199558777945172841368473293333585327442976656225351701621139522846828838748710375680256836632715362264673703733020103838009215131065299674844493237373089871723700897169816244465448813824519250340569671563136696479648224322630726101394751870432444892438247870404727199504229649440547294222323381985077906671675885782502763259181861474852171323488282348370951993764039158202563594306394071364615239376391556857183614666467417289824445261041781283814412441289812160828189967329868984515797237869571851803778859894369894450226274882995028970633358889697587950612721788031480166987615245221437338706827345829296309854762537971762627703106523351457613906680133441353829929178890350912577155834169212952927190120982787485337710905024892759259385255527537248520694171617163208853684935223742033844478321322771284536027504408833889294225453313590099033871646222192745483433415132345642573509930260868469619422720107206296301612266608280743841231014866469536395234565305248385020293880431554897973453456750357270414766754441969296807112979880249845933132643293975114630170545286581934255960708518834953324988576632661693848402451231744911123932535014659500897473357061318495715342562131019124423442949181426292161423780310667269138380099913836352586494590094779183680316869635998139616679810949046583125226177846792447484951727548351743688482930630819065611524804447761001690760043362339534946545203961990232466078063616216973478533897093610870992831022089017855288096028186071989414225440204732738614597158258349382442563714643134239719106209412727756111159931490561986030778305640509555736995220723889325939222040511000658620631015001428238548919448695371249152623000103716393257669977376300952408818391011241779789653002853738259560408217498737097338641977566293924871718587703274297828553905150512179383999151729948531639528188561568646915865390200852785368075856737942780971751591096652194177604140790729522203890782567414330832410365233918277719410867740279021197915995900045290494370939712359959806869884957382628378651043207484661331144445190095511302529062952854914182428180537852664455563804913866520349751049948478361928230471203340623743870940591312153494070197845347249438108686322058384337380142556025024068369710415702489373114625544620032406243507793713573070389495787308875409111184893319310880854416480569388093431327374186503972799344197180041299037660702653866356895638933673372940235318087188818070749549791580993185922936433360603461168247045376238403956064880950885004167308193192190726914317465163189462178787899497655653488074761054944169509264971967126652657033895562009854913082369020553153471242954838055738647498287330763609565907741749969623924882411737908054359876021665544940298042561545963693519439250345864995235306795190674486718442332490060091408225750159478381324148879174856153966441112839769743831344431437781430722031189695778061860965942117822332147707519449811117253702840935938331558808093267181319714586012942799357073951417617864612005574153511860229986650969531286784945124865657230221391722945148736655577820129148589359083506113210051219790653305701671626935657343189656390328071982004138121958098427903363112707358425125246549711703303709615191803775523746974738222706149693895953540896740493297570641916740038630289562315650217417689883125270195716480260629944819738069737849168581500245032279738908863695767744083619578862571628284296174241881314105626184697657473733170528754675029119160274011281135988287730085298621336787611835481842433605312549267569262488137931958062685675802727137208355906734529192633602957058305073495876552769209245018113533997305576871551014301461311162638937561720648281299452016528992104105473994491911794350473171556112596090271925443683425509266757596746108139750595668402592739034225403755420061650396871513773571059490247446984737579660545596885349133798314617175562560227612978803641161404895465064892178658735744490751563898136493354086014397537093497228874157414165677470454337349472526820986603209825199863136406835596964568840219042848332359679160021868790523208135505430305883374597884686156093644144078646965911616382474015718822891264647066629369589765126259084379042390826469975266590230979196191774684109674048034606933066576485617614148072890227807430188688118186780568795377088772105715259494283504287422792805744517322476011413733192038159935295779636918606110969192068447843920873005306744096406412664525510843391682573876928650329907965467152739001392344320763008877396773374016481259598661553642986569565548833529652144753713606160895879559725352300011074751893302791364238295574720387332380797335828011125130414342638792810258171069226139900023255397185833568403558942053589023307069819033039791480021638673627515838740610525866228950043262686273883330976117110402272658682289240813422873770471261148963359705919027772960584401382302501092381771402536033578824750831346258588884554827756296174267026237013753997451194865606368419690635098771902269283805986117240886206482042714778522943202028525411921578838534595497547841716851351722084476148334160511515759357709267730027212914696458741990015092612052380696556299302385875808003800915248810827521484899095078169193014134346386224959321234342661160575979549669163436812233822562943565636652660999736905456939647119801656917138150516980345142104085688880383604505488969648153322796627198787853972422841000431876530373911522597614501927464560773724639324293893117697778154386810709274151771532736561913396583638964477104842142577290683229383643821618131690129544793162046740641212985308587689764625703093242501601588304678221891432335638465878525213659405350595742042943487003492702982236563649877173475826303093167418818491127532203848928090437906766343778144518819850872295541156215736088910053876340731108190066180683626307447943746472756037367424401171470671042329877616361230609800955043244395911364349816841721713456471551868517479268838627127552495687787948712745524638141051620703595224668969558368769971115366987122743684308968434987536337127023311987982585173138685393606339594337961264007776419718674210340998793089783806805582976215327392583313237902723615324521196005884622355166486162031030033101265443621205168367860714270934239708502199333144252514965717054673467342056880907944113520250434968669072723589231534805046364527529475535090941449811094502681489869858953570533164349282391933010727047938487255931245081967466391762324980825024374141134625431178769048922715059871276174942353974568626227581436276464100612094886243851837952760083183052071999270793440448187644052884616752702986712440053592459887730638205246163632065529533546458818553268785618215394402979648915796458656967036946519456004745965581012554061844152902585302105894314169882612964082398600703801249962934356245121861899110413236119372149161236231669789198007363557819061049185179746028577662388749101668483348456432391781173395353934057048120373853792357212765676032220334670958716301472931193854788441848150485445111004119911022239537556442369318699336452086229193466016706691232510985490759475329806199465498578049165164851421762671215182684139132419862836918062699702752192287750802940605072986912875339631591439756647497524057076067241553652053267555951672722320011273888531877405970047826371741842212357099965141625431383669261821091030797980667888078627171493933941477433434934191129039332786325706133637190961656461885011877513368650407422851134495667505410618602113797294261328912553574776437168582953469877099306756909813119349341330143242693712441236110644739719162886925753042969853750090975594853398399836945809111083576724842225004531169503206396352739172765591452015599166579851792059538892782732329359840045504357632582994445540290430928720125301919332237886121036578921293632497852599664394702311720440300265450529250608804827157950347248964915316582736245877424544431572123063558449747021517918967077487530572605106505105806283472578957131718024583291225852579743252036632273517992929828794720439337727778360027217666652216336398348990639294572139861683512514352230704366643776833925529788636372194099404664206116658724416145967100206092911180036339175006075929501879318315881186026528576377179498099351271630532968479972328217808603837394261994300163135359977243174710386455227208911122781231779283646782488986812644467468524380769762512536210522847263255924519217533569606100470173026236683739918103975377609140064261309165945898475244894632098082419209332787067519903174908298204742300828801604337573510985015047563451370824374173176282487188705065493743505289817140957444823994442441750390384613317764812387720719447873619646895954002245461556165335131764730291549377844180790807508576920941150297662507277628691569635290718186472815177022311800849167617785381051932284411970469430417107189976206654068279472226107820645709329404754917174392555202704699290227242138765698269217854202514551546546531019605140887985765820947528055428004361196664679717967341564666382677165660495603213963828970063657760476849904767569734415301924053811417731781373138849370949355483521896823767551170912352240288427538331207328264817639668715564235747071946094846966366997796967197585086801831861245751199844595843979349956532767402177872568814235585931407070868250668868451760312019650840676651687408960167427451660398728058308928951131938886034978614095957386425816604852600960055254311327467129865883069674983089631844798315800118692816566373365582872452644842802174885851742762851365641901547747774392175898427631352027746413958156801063022599564490475581212666770133003407281278048446976739833980895605908431937019022403075189361181387200361868477537117239891737094889141224822507436112846341224622464657548000682254783858837646057696539220463924171661819939362881076988139678467980879609624833817494076361155865377955618998824053587809486818493858341360882758244597701060746321176845099271401455015201249152224011685313806437817808196124228032340492490220664429384679827997589283047785228865814553882510425808227034844293551153572279131637991969579567463778377922460952545405346064299510582461875193205864743594750246117607654009460720620727584839088883468578908299897319151063257989734941573363305046970810349763562249557334337354187903420045646475189924666185635534223127129103439117420049395673297578338469411903341515486328064487009845272630775035984943678929934195710376535459814752555632078469364107045168404885752750741237780222050146688636611755424834021276025541707016438132891484039827510207465793044209981247752402858477037963437532939938358711448328318045005565752312798450349119412172161871040951237000375064339556236766547507795180078202705452317301084780298523510639990788911132977388539602682402301461673398785404574981159492426231356197492843801263121692418108077569963600735486474109900396578248603298067028809636725260902796256157363726036715362065795321371597741503831148733840268577235353617018451967932473185452358091451204629916450768377980425710300253420394004251545090550342773569803409179658460211720170420543014191329995112040542638596485624426189186813716683013723574431325652163055429537089597337792220641960813803748693914900406006184293717715487462272434089966760844646706215032974745608204186843440183729541077071535955528313727590807405581507026360708369870347619053524152317079410687206804602583558773294067665093032736586540236024952780982864239741687193467922051785653305650214442512202430483038135319715366368761355896786447974268526861724861811607561567736771253970138611897606705905937232773798455232998900247493785547932107102029359806086046918101543972214837187198629740489341792127854449761865461232843532428033966841873068603735650164817678280295483360581771592118966074166191558169439687620097935431342179932296363335099336076423201184577785653366686966206892891381384035675861862884774918766996904479928094212235098191187148275136794320272818745236533776280038361956041098387146833760409741360563142491586694806251494964389816401903636708265137938496357756027186353026942761557847942153976595276608813694943620377470059567735948660947336496288672871026756327457228125469560470060303985193890929518471828596821041023296615335633050609395022737584153116188525164708610322680811968600086315817605198298253286935964951161701520738702081495404249224819251895596532815291942360596589176804059470321605344624479626458356546020830375954882456914866678840356363793391522450267564563044447662336983399389938307854222455042285648184436013752332841318612965515797815882103112610963018748887794336939578812161096860926885550131015151445298901937188891590655747780368837061877568665289533815719599195665797502797569426039353246000763486096086544422805120493448218938715652096631664146223185252063427383210911658246264257722489182833350668642426431889509110437903862351273224811926170071621760187205165975877518165166498094394140044692577002759533523641980153573180432308506301696291560683553089282957217417100098891230757897911664235481608368283111370342098794732482609666773517913754271459556163649168015729442211632777893913884259630945548595038156387151521527375150023315988757046009320883799728053300836282916693158164154899630157341584994234428850577238696212788761382923075157577437306835513385946951782723932247555610711694264687258875092696928736173831175938111414205918227488769586768630184351732519838762111188587413043836668291903891509619902858007283806470102796715655031849966160235867113875514735798870794242773146373561941830474487587225061086068876143573609889244711955059220197465065811394159288913589077690561440082552140291179283786129346753152592352183903255821164005022654717229488134573405552210926187716809474586488240646461348766521570693471629565620588148837042498615779469725664570763018009067685995288121157303788222047328619975986641698340062823290046944854803894966627516492624399265279411173601870412963815578730541504898835329416071244758372153202433850920197865802510502363493967745163453066608780790656953999301438612060891918093417599607532475244287646565792288999734382223603673884739082770669838838756286966572990501771940401259217268537896799399800277345107682177758785996035916533217354054889265675403909606389439030886466393316969742298059534521525122987601596994306833513605951518685999140445855920569902148575928761426356512699671850272247075252390471750380093623923912548725950710916730746883326198875599145087690291376695568359250244027014740005397290537801401484560992997641241037360071417410715584206435346602106091522239775032668015898538168452587670200433671385323333818351180308851541879899789219731282198623859658187165279057960272346796235855752049397108047837490596959635296756076647334051354029334248090995994186065099946059977207281549398608683568941997989344501092526585475227919641242922744082423018830535585161358500961995387315698275152756736669308497556178866137468209533179859708787560880556841492880321529886794043390175765582924530408632604132964689976867391391590344628295018245127154885457057549914990007530296189269906876907201623737880501147614470181247996925029611925717322314270743698130596269016686179489200534070828220145383275409041740313270356087620328068227943377495063865759268665499913481204952749360164089511744453602735561711614914355098665402578180145707972698713691432550855619715330112020702650647876507969640592149942405608436756489283586159851501121369595001312742928632572223515003799451047841637208012383946597325234299806982935544127239533693228377367522199375543819927051491173470878234266654742211749276397254943534760200981830005630811403162033374137582171030712831360271568854269473022327698119155341693205787824217485093800304966174811980615038615910902300265894999352405347932783868635965115222302611133754133783752919179626788775653731125498367124004003672484969894364207039903081996242082508218763264084159101736768127088142770152957153649706424877749636370817395182216232473242080831995581367779996103968933475822926249120883937641458460808533034829308535728385358513359735806108624978584477516488673270274372365359010104205837094228693530359496146060682515035899971541535983414343717061513234935338028543158104492081357787596892479045950519435155551737889095050532709285414367841982076984297288187381369730272756141432658976713104355092090847938228872992833405919258622611961033634641463406533239759792082228526841430150966522771761629211004531042627476682406012433888629267641574902544895865749266437554869525068738243726643186619350698202287004700594835876472111457736866596476196358531284339984862085377484989123182667247324774177592181151955318805658746665481324603608211155392315006486946173491789363146147992523094454686519300467920020125268630082163600321576003869815234924559044560916148460941065867492890082886807867316613550203309996139606192125200955912331511693084129961881495215202921865198337293692067181587488531069949505293146213947835397593364865728149659050014999383269787561124202481507943272132156122178027338062623041662812824487278967173006844623642778281856875949760580750776700163959590026610742431904946525693201215073897714088549088130454411475018387636659513405563025571952591073099958945228160456149605120179024529801047818791785332028733622500495718790436698616605105871782111222893747564275320059757258423350229301925450600192683397008775521343591143610602821336985200303356730790478960684786851303892667881581199982545311595604897055375845711755318396507107529184233529622635626118730955855190974112273629905450615419460963170311745538119324824944980719641436402171273254563856606364178316025526925628211394715765402977011777394956946490610392523060937528832837878642424132750785783932864042690296396883578051724986350500363477089429573626086140529670629467817659622769254287593339204944472571200556505360580779593115734593140904560546035751450567572987769648810615470514336280618829427833239471212488595506426562408738476581747577383529427997255585733343332786312853774634088834930416495835769120845380358699867256344804751972312234659211714160696425266584869428655357007337197464121026995101023062121640743605168932233298349751692495412350667153392626984385494359965096011113104454930367466250908015365616786774813411246255629458204204824398492401931962398616930756103347642984942056537464683716035276633579880818016075953647467206278024878849441672088093464367848792108274158502593429006457095543371293416476950472621360755549567982932720735791309078362937047555067366787540973733535123838443303259479787305427891333188934605078744127730712958211747432727307798674112584029530744107133542979777062828899527803965803300358649223801628090198145662081094926443817234742701818820213539751077268779355891342400152184515567032193509205331233453345895143982907643731280640332296149768485999222632603721548721875275460462349170556716708500379496034305762080656986803285671253165626647638538977051374532006986584390667737959543484240611865422692229711964794153363717915015068216754129570217402682307874009174199483157221911743298374673268254037117350006341879920145214345638390618043029896045276074202527986950193887212774772814126087461824165022205160827247939162593071815023682376010810767170171755814335247586759500597567595781093875042302718030357786738413568378542665651917848788698477926324948269230700583314891238230807402341606392408480400947106026145947628413256671823872614494865971043930520308000999422857238089474140709537851716025272489162382985086017894486565382189993208638192021786387503016813607444407515949380022185041793475424161318397048203360311637118862979759528340114804700625253699158198857913394184578960693349050629212226763093230644450206207039763727826116156428188871763868339157022963775985366825269809849802891900906203551046012416348492064895480024371858809226053941676470213552236553887666904400109517281230426236888803506234274599535660608323210574660090352936657257153635535350903677858621969685824263635505644939788376193904934114253721586356061320965729578067582467049696709093564013879702321721972853898506048687073203211037728129477815841542367033565997847302712124990992846093715146098446391952109686171415154792958733490476682435465633628759945540431882255348781291835844556119345442852372891471223574845435696130796062850057906962871262266727619304233755314852846205427153717769893043683684321941120747625735348915953401353130894981160556484944775698191066072336433690540511201809571188017032898911145851890611185768270894813359151742900956010225845244136720304286600745061153484328704829896919476053882232964015231058974317535442223318592510261904282911804944467593988347983438596575505370037503052417123521416698249033027429633496903196986842294434560323494553176222398484067410992181585475094795338965330010888317446248889232132180205997739007976898992176842969561420014694668882446791804307553036402853025474893263272745694375753717101986476543098681580370200285212095606929041363472761284030025686890506319962045928817297696372567034863282367709728749164231198738189238502691333668889091149626198749579346117799222810187759939526704479908776881491350268358472943037499928292792157134538154730252944312480160491739874641617641686669127341080229935562196689369379494870789647973442508239808355755050492011996461034586412245528637131728229357157016769293737214423178390360675773502785450071463242310291165206315397312930049508585933361144668434593317837722114690700931849255375069507273020213783825948669850544330720356128934448666257247567263195900236724372288140221372949372196351028359467250105747556709721059193009916341779214263350117826383611706419656785818264954037803437053645679906492439337150631457634032544557589251831981244623886931511550318872831242935757090339997973175858430806489096531769191526876276000890398614416334288416925645232224244364958447000342618609402056296425487586092407996855499040424737111884737496749292343113268817357979527150644448525056815197247283112508222240445297750584762915416872618549771036875669652259494077153218996342139119939609379343581297678507105880162307911474260879706717521759811990945385643220030712216891755086106068765150601325037726785256301771858394891757696514797134663701258300653328775242430313190952187587332425654218328302560924607842431264503745550797564314022942052560202221293654012919457266820761251276180355145495968505345736700120621371112735771881737879376088281306156551211494386195829348801765493391989643279299983396698625166946097465437499091228557662308547763165533226114117647144895148249175738613715647945717779836191523004403460961011865984125875443323249362808149985755689161035805252192063389624774306460279730041086081682450206833326610815172365979287644226697699745125819649408769649652032419879828726258875864362294559512312484115487732306930503079707401546438746968610505459964432446859938923669667324410501278038304426559020296331539061636352406188929411087013655807331312356008792367111370858085613125969330542555644167884946449488602386015266284832598145674557883693717059525207357329574258975240336445928413606111049261270405088273604272383317079883622832423665755714792557458408986341875029122534692446352326710340441176723442881001570743564814025485724413670230826679791732454758821056334409387341942391224826638519681819222903750320753694209728117652770636830417668241940180805910558086790175887589990653618931400162359498574952021510024035699109535836556029306910908775016681806010356524820677466011824353778999596877164972508877675986325585003935610036011422271713969843890250938733799254921317104265965173970817231776560538189484405083165177832929796711017636003632419803383173980721061509417459962078873630753570195837919542253824099448886102309016923801428898681696749501223591333916583905598206967067455107533364012606669871430228069717649793546316480838099997367739936144121516461212758196972378230615518451309242294482763049552802545277306262856150611043608216729316844779011643157107659922445489154217013604369437184526090645067640303870666517531697038907217005850818448294734944032229578298383214977735104972946502590974887756573032636458375091234087982779354490760613988441956071410014288281414652002226733312323913691987193378853801044123220257539112680788488668438888844291978386689483726406673037200595460471582142493520029102311580550789665361397928685500837757026340044707743982139017787779676199702669276636473362617600714767776963995748364066597218608978370983003842601759719273898018481639568601498408229327756438383728160589334404820275649923878803090524334487587246772221181825582093983347209529290054936594242809403974653945602250193019801334890247397772364402901877923765950114124368498008252307717165531898844905231054930641422027047563632919844737556300937362784547556703918713799088125056077967002216775787231330161660893090918110433410164211532500661100101197658196064761183010348645080418762591497879844809274911663036939441486634643422809867124091494441847464318997813609309330400755358321568893193361049535875147602832222785964633792936349371587408143657281294419062814478060766723936873962610669764309509918366782578113814578443213211996489524508493298312809809903303047013905480180776706673938449088972790051315415261138284644571105006148594798256787607206432857146892524467995755758715631967990180265801791138069138380407653288286000242312881713896832564551300858219562771927945368007444298255211447313784192883806660577339101835533931316768309764120749763827237640306831529469032652940573956949128651463655281267040797748049165170166354169766917845246884008343392545825212624691104992705203344771579484899482203025993892644742486657888211518366494576758531573934862465733152502738703684819477358177015544616612931077181131913363370539745270850710974275076092553228803975777502984264770872343589958464481317273302343840728788301706056545360619998942472529117224114054480932461567441722654261633501499346984075817305533541094240458640363899964463851085015124416612733208558230760572237283463905572509978417549677060504708106234118248637458477102889295961288205249759397787788297109113182485461227530040190108394884864277653071187619616360630556746227915016003316084729562975347845336545785837679191541728725960931841772934302923587151022724462377938023815776854263061776716206515098137682485814253137344978828167297863068215730958135449807687990500345366649971245304140374956013570322214388908529154189526651522063126581832012583969602972570931978240192377681464820436694279321078768852404643752785685009069222118170267971817936320481972702183029938663987559672583447720148787489571045679627593485594024401265306606869318714958325131994897764632947799892495796384998681453536289080991235578768927770672265965646152889835108324674481083687443108151359804991791748525248607540862422053614943280941064993122604404889447020666898570442362058859346783649447190757938977916045046450625695022540469617235530625188911202539097780509526479187160533230053433939694375136757499580028651317618182915910214737072002260996132350458299324194596454220643227897180079994467925913288304077628824446578566415011113712006127343992298107993036719031362995622324404369292822708486722916130050386404532196660250452096306008421017659132899557916092166111635367782480416095696355340114640306467421698761079041447976921746786245733258451722922085135992116115724235553739427467906985768978776685260130722363035568652199130995743100480692082339964491183423893280180625101022109106754105673620958746465914196772251433465391511258500517755557357539333156986253853163308681819385303526063478299202512223161633759282026442012567035405194589641780771287379654631512447567167029237628591020319208938451043330428349351439400842027772096335740191503734766239236944115349147294915863883372122010170443244360146373186255183128979243161065972224438763741174933835846252334757790211921588647433678637921167912810350350829920178928733663403059340445730825584393084492840431554434213502869589780474716808953068226395236351411765729233891294882390613062703848132154804158764404567038627380622553751877439573446032140543579359116387062276516232855062890499252741025127378099745906172429118956956068175795702315125699711620830062348463876563692528033242605949050099394158527525782689284596158383066647311280451777183339311486282905413481830841957378448103256178507161009572422641446346541590699214514788882492915015362008504932910220077344048212678203068993057105520573912059974867002499177050519084853127283754929164379040766525557748978971140138697703759122327217547614456866535362130774188651929268303461963865552475436088815445027194452213045595005659196089063172788661862202357538729549069261368841288625867283885392243562756814479663536833942979609829034414826790712809029607116159994192242164630707795633143337461704747350368632820184861575280938869939275899255157299394379607223631000035953943009359498964403171407702202213781340589745793442595866040860609240336379169157733492856455999599668942991686080471204999099788605627028261752016133664581587097546194921922213131227783111423271902585446916158213400360196669196975979397512132338633761893385238849978871802601723444294402757224906623230178722126341610679954423782476262020875116468538966917034039631080930976989582522600573858054438975249310725585298541176854917335504205837058596203060664385571585829472257067229227255561363505416276612287842877853204557630872542301310103401741939390063765276560560140426366063673346647374116310413967854360035400837971908134883468191502901885364739742280509946727599512439768984937094131795617884745476289956088048928463524362382393147889726190486658299635799671089326384134767235681949392443255643968404822146773289611719313155154572977485757442304240237001568894954418095962002447430681406817349261693012417698591509413580836615980094586133172568502760361026035333333446608456069956097542996603390889316088339672486589729769967975977443487459947207110645957869414670204655327856319081160093953743923752784195522509876787685908782770627595550685503054918321249793604266742387630168936529589735620908729470028712695994834042743875287440438443743991281977023111154606770011711561306583056683706007059734110319999197008872602581121563972953095796497760567978054476776586291505181636852117418720774637485380583996309962783168058803042492338118348832633067266208721148974006748442159433561446233981608208678546134961010663186272430344212899426961760198039647221502708780143038857283925203628441957502408296181961633894544814241039741172921197741418500785916583104548296388499290793592359469994792653852418800176498482605610486169454773040152792202225688880022339561851552310450730646818313210840731010839110569623403588597680793265446561808725047441282362091148937978629821882851128789146186729706261941352076469087845638226419014226257529057088819826002764116192068449713807843836434304104941097149073299935362634904439009166253148112165609029690489076456159279671848984402246006919309435164585609760861655826930723826713168606721620457279868998258412228376794126612935182696866574657293191829975269792536657781060568988299085742563156098791527604796204866914142986291926900171316309114990805854137628041195962041028050094133710307291298577198257030204893845706810020715998238946843151857086019058444031614148011624171478732837837315123880265725165589419556471564459147446548394424217783854142271920960399185732838147029796095025971151557132015975990779831832564514139252036084019811067504518784647352700103302501660567397332301121752850773571381210966191582900389078101742474184013620300054756605860223222286342443487467769765398345321760018894886367233878702620460533668545202046017696961003119597412202699242776445458067590249140868491124774508895607671301590548973003625601229943955299807755103543625993293031519497867230475587366188861680810102979404656958119214297527042965964343475157336024220211977959662516708657688081422656592172310773831544888283719817979051427664110245647127520311601084425428856581619679082471248142163587545268308222330390595066329286912969919349937471212074689897967844320150724763643963608203391495680898091567152351222415468379643625709201124501815825943583800563735398152254822659667297950902264034533266339901690155352743378238628813627012452659360996262472597023370565328151786231519239425388336549090785344041130884945400468367487665313974698307893653984368251164350878877567190039114466919960368146375685430806890298735488785012845742384805151136071126439851876454849158724251982739647159914472779612072897427477523331595804938094600303146746119961203847594308571605061677805953037935687955879175663465207597059293083182314069470345889527107475965250252442528651204105630388641577360643018999441879747085821105514832666115705671903354146286139428479921878046791202049693275572820848256972508542114732731883043064385751402628098341538195096764018239288433076869138147545214517326071953937792650893221854474078125686190089484416027236965597934084281491787660345460207053732316555925453438774827833739436686923956723113106558685964298139335341849076209688759072631318439659302697312968802022921327760767533935313962183147676392996034000600410352607572380845924811629955700211536938262533903498976924784638708536727236540557516996734843971714308687571145142996963417325033502105827001104221862132675809973934065038196004225855808616144415119953429644890570220369409710555637629733268065235382415929997970531636699506506915534709894519017961919609747426494497246769778657202111458182932004132859306970523071132479325121013357592267253026331159999931794205388793541516730149550917418865025304810931018422374544990550776038576092265667311934210568549468883942996950433200985646435984376704971879170405338969197941040936957080116274734533338525812920876437019893130460177268940585301708955318386294648580925376767313112103110993165374481675942868483805002258815889612520055333266452839450555786168847243951430822416424727791851726359194862359772763973319838276211665791073481025181949586812841315066931739976173255102257765339643899533139208031679062889889451293847541003208336222341574269084952760959069104936026896049432628699952795826709748731330560840221515805166426798952683154342506780496890494800365912297421597814941362019644724645128542704086098205837584411071081392280085604645644102236083400655219430067947314746127250960473583763655871535658271809436102404952580849588145794253493506355121887661945028604995242411344227800467459224757076409733859811665245949282740598404813727202032364559708226154970557461132218427962315235847056772679705303305728649738158891678178340363353064259089527238123023883200142036949283770234490510438617859946013119051108250639555596100295887267844327147176114254204249703013233849937976852566842280227073463573908693903772312745347962143359606780161587027508140438858103436377585847632103436949766925662637368325553314136468832918705599395748578969719787216768172049617378212328502863684180037057672266431222022267685767178489238890329220968693356969348164341089198840301911989133380323310891156122973146557926748395234476321968387380573823156903041412729197344042104438446321805694620718414778236256664517504333551454769977096709640127330216882258365905766148223507170434235545999207781905911557052329849477087956576265353835012262127143497397331670705932667437047302012015647713270038210566812679933715936808006596914062026588143631421549843356508246333002986815561233144526962243601113679683428061376544814793206733023918911223448358855309946130051149086173273951419981338534680222152758980849099437922802620995392249493868404099894037108642396686631974823831234203709100458143276005880100747207743967391699197062299505733217952273314429537665947952622474623783914829191902360933266969944246667004936613290720383038782687433373621764448533330414063801482255546926579429634344982166238697806326208997306853399442550871496093073271200964515618172964669095108236253167714482025431372500438699574332493109890474108128599905492030376259328677965473390349452573442582705331601024826197801105818294110457244020084415234083745208532695866062381391024459635912518849950294398964863240889273024564329613388030324576748601542807334481116442855438084473411232036313752303362625497870572409510585085636057554862552093765779523857458598688141389681003549982694849170306840400294647632399627352555294211109047546246008453951813019654238020530274765949103352732940202520771057646646627647455758693837679911802302111871471459523640505610437445671631892573731725838618178292712168917512345273066955128518272120132373042924508122528200050039905569111276044158725048413957042152102099739532145463461763554350494344729360104825335058053712995836394754414631075988553830200438580907245572747992262084596310997675202289211146536845631113784928714252812884628757623406016271701545715026996711042625692299454211657718523368456209038287370653167912879206101765391957537614639959570961187916728728104635306560742767034466149796465473476693237525863350930987321213247673772718505449474394722557643784562410556642276829867198502222281390824253976556226769389654190383940755295775820677960217098117220087775039066200298146494484150957005107783121667421059544067499291828570363637088700073264541752215421103659175961690469557500481829644708143610106668153178020810566724812186216879398418360313818810001238189677533556155308462492717958397536630412558696475835816334696759738205576150618722079351898023960572119107590135101200387174004846087781087957274660124529461297979585298762761333998019116408593990143709274138271086010507056683121174144393985920219264819941923913985633938527646059668219470576983782452038200601202510104361795318313473933520094579669098033740674504894662386831859443282971541302836490516681580858464465819185484436513679752671298591984748192017561003060509433344763847013048903710933729077582311315361650622732491007327679198963425209123415802819713802471929081115825969558480112118879325409556900988142438407147449778286228901708514713982739806716239909552650872401469642782992034011917644552987788808746378689165965939004128738181241357357628598138603529760940618742161494612974431688405814473841432586252194990814797936975144365303721643305367919593010503367084810418563155282579577717706172831858767112488900491806549612385772118178777156772993281095664091001362134858416908907957151594435933410565929814438116088298574674034701150643331318902438425451169018896444291271638805364728457738159279869196106972824791585709747901636596211225903451092852823435624692520304042897435577418251631451517926907501904691654795789474628105103487705835614022664707101200932959005755873131272099348360044222395984535229939695022916850671883605131533126882718198334813349288838132258977788603918631474657383259699082699388948035319498209342187784527231191138793709590852948945604243862832796875145047689901635674785105453031249049135944241519557890277204871954579400950541674374866850840393141888017446314214755218700799410076819574541833751754132826232267436776399883138184149384774821324306556549653509917366522835539971691598829651239581992574584075513174097716547498310819279241740297896413051107621714568734313675208803855286635183948393685793647054799603345720642758290752351500539597355985446137186138981727786951435500089314933868140516099677924003852350620921808867800411592202513456395584971374373499149474285393204225808672520599912079740156674533894816759496463040387883513210134767521859383126603939730015108772134021015892400950651838398452994524991115192454386145721045557276672943134534485179497328082913107084169947360083772884205572936553666503652806122710938674899177492873582453857034698169336716476616555269773479157751528172806780562631466470024444289067880647890342044328431885336533276312509174765419595028615714529183183602255668180963871900335482071937952851207070988753355837182018148476425857598402955606439488637707459841419819050130862135895199626205572149513246280978036956773495557791150507951633979798301008426834095746451540675914459411133005723309892591896077134286072700114451043423883538619908695992288544638581444635981837262257543397278076763061857788899555268332259504517575284147178536563343059396137613976243788586854573411019303574153775162899596554754946723131527247812404713844885024026423400533193704156091964362711061232684095969394670342364155506728804089485731261836261506888811432626719492897474796882988356126012214150564012397823744601055602648250717221308341637514752955085459427105161204064616051056422807566771706261159693951114015208832045953104861714589627765886337673241925933029613233679450481935530752402842423234016507233641578227318422391296277316068584063406513582348423148372789782749789072329558224504586746008623702616901480382480069469375662546090631638547180081980851203893686687611987012126717762329026696602874350194229133702221958976222623197721084474134479471245504259752417301469840058979369938452404938839145037872461582121646291675785803437417082724180686281552137423507043149954102400396633106606442341084668655708726510082552645028881271794553107907307453683306582615261979068248891526614286289089469723064656328991635306014216079022165780056072933054678910440714287462025620063293246180456462517239939419399130568602529270096021175515087498820993833744053358044873907300029462402918992325038819480641104812952745031250568271256076075962391391314740905319134259018613760155081439712655332813133418176534040984043270568857167927710902315985723279017855940848438716795835659643760192786605910625375540796394826907554073574201524190299289605382767271308746272699429594791246668572852499839706647901209959118772637482560641906437046381595337700167461010514539018242037554205914400694699883020879947118673159786883418168686896444118374455278012275013952719755565143558653648992444693377176056607138615227577359022172089193401860013503820385602832396460375847346847846639242279736419457149707228236509584869186164850076324927675885633248206144118859270714965997385642653051546080597160345138737039614899017523535519239555210698418318954617852126255934132303618618472989950456703970338331797058017369376538198911844241079963199098357284739748506596547164749968584188884786576556148572638544697329988614558915763042007727985849407796619856228310073791399700169856530589983364065435152530123679437041666391660819449523959290889099232289942852492418276744388316971763819087871754570260896888042750473230252782648133315431948323274403763427102969077939402851017477184898952448110104261341205429598946350423422069853560527446673173567048580790865631850330928188413272878971472342002678173410126323915206065846507235673706086991927968736246847586826510282126100915227232840928025671626537323167364121328284167390067005640929714156314073804444527493738998416666366224574510598303697405054305316405528681647735883047110459823809232747182762657213947887276568825852425368619520694257552127472088505487575552946334128704640242340902482725597365399042287673216979104035244623682793787686903996498276416420128770864541859601199961748864518344860762710793107167594755778777656739490521256836367125234383673249107427211893120603200314265320417287091283245691186821332617223772979904131839561058789974254216661145771662214473716554379789935977507097830963869671881344879057756046133270283842579595811535982397730527381375510362722235281443763365747382299491166101286929144082909630720124910476430959255762635473627698278853763058219436715824489226979786878760593890061582007223090606178307113336650026514886109359125577363824900623460144359479257660486072350345356527159151227002930430850757824706964810212144469828887594468456348011107957980360141898506986997128710530563367522809318038015857316665486429412722747165397305303603069428044066379248920005551315350762866442470604260627180509013812432833755608922104530757890702042232684234033106908460333831160917041151234465657464219011062731893513078338466973511828984714313507605354319677331191018338509581924570117413193283797678801844260089034372636386000262203656522309863362114479368772270817649430311870689236228333286790972142590886110434069215718503871338547380226978852552141060184775877603097143929273422730440865035939438501500307012567781082106215207491029904788852196473749353304000563007908362556548981861379414376185300317811127973052795869665296351034470836922826987958934899711011375760043693079628809895439782751773354906399570197802540700274363569701810227881304711576455004841165034564616058207861595681073643352118330022079313886288204802936243556675371585016173749898903304333207834982380112968135970614449296733547155175355664347792007207547153520642812600927942140463423146984739381329065251587924391352155416559497615634606722004897069128742034747379587215872151507800388416112592934401563370747805217275333974623200601738433800951934002838470897426277826598746066180592244637121668470758047644616645163051689852287951620852496430459972992500839834442459402562465043989662929715794416903961317919644546969050484907713493536127549073849673152885788912508079176690593345548557455561847627904948529863149531419823279214853722454831374632430932027213569129056010008214636854667184316614008776006663355948322088716416337094593301046884617458281038592840210046589076331773604182636330579361927636569159942758258279509197504721940689242748020646997076578766563806167484825157590715832041697442997801438731430352802974811753564248693525600895378602153216428569814047500561186564026195752427031831437521574558662401823258368514049457105183356824709818034407670750223255252709108720389276527668274016839457019839645447228567919207499776100965417278551652113835831704957852873883855470702064748633583648427236769271216061020899707630090261722310573266886295994184697300900764588734196064650166397928564786234511775250910988812140104824488142551781783129938627331563844406065473171968849724151953471118911882933730911028341126833301547359514103624623406527628252476794086532924494077334708620488023501607981748243275159903493141694304583166033639399647859167920564174322638816370707275428989282864431075437877409987377502959007083719711796846612455451038938780815123906121617776906749919357736742169207029858235950836491242308305268821256927013665451563715978385647981273692300286930886990371783393786273574473416986356766225134410228711411090851817832954976832594990557699495239398267777762376084384745033482413785995798623480858778281381028251691908222373450214819028063652736697228635586265362207204705651516376460934656509943203061225622448948252721702112617945813127301703874640736349199165593202160446140005024184398484359167719752821337563926306083546614338875142415352608055711266756287616682533933029427836983633205853443137748036415731688084702964437196327845236750324193488877405714186512749176743919286283049186194377668649640729504407442968282341491584943564291999698542848716839489448143863296514906073152971340987041934010076156029094278221404456943591353927106070231949215652206037312874366268551895603433603201983797499922811265109191157190006838390614869027434692298149613777023486437529798869076347940477198930803752060651634947621994951083029857695956920130408726137705839125071772681593571335251757722227882623346296361424116254800710209221388656222585324740755567657873986227277721862407219103293164330273397172320628252507651558820607157911525028452617156687046271219818287813979052198098699826401845959170043895020332503450917682504477728527747518151761457875188504584614828650597171127097346735528884723137548342169272240232778658525395387780976466707715183670242540633520174147971386409202190583674800149937580912028455629657321553807820522208625216086128114304457771383496797025471531375286819358477434144265938845841526389871935841063909274174275555365339880001901522833953455630412977451793357442679089105934026356698437702856698638380552899945238623869838657976686262746429361474444630086640322189994232175803367755728788787262291223486355991960613453406847355196694034411804057230716781220426783046243398217691476365232711305036988286690777408121241588979553751572453688000591371260614467011643059935962091162785551008229991480737441448282615338487909381725930633554209105502959083596123010667926844265086499045194572001137504306692007642340097799628958140795666792038005979796257628256000493900696874332517141998660447868255009038988906323024142016777140528389133632801820383048173338189261822833645105744926065891855853931242769016137494425709250494961213929287646612027217796002147382507211470800696116788361449161742114068807845346862674628036117159559607314057447273254749128010564422675618337661978432264006094286531961675957806576942900534102496193819919833859025926750861937513228849293252984720295699454338198952317420593581466864954246448128406353260579102543972986042027172979225406457723869195350339141759229573007585274495767955451299088502758292782473040996747362432315661428560081624962177811234830914254751496330163716222406901466358262101678102463259127544211627351160961471253100648051098325532521026710621863407377577895053487137014403668602490924687964031189286715279068303746477721321514372617863368811267980636516371418109775585629349438263793645029278071482404338899759464879842896258308186605149721870165894992398763307415395681054789680479691102358041819285119909087709553042056956558194162188146341554761161938839128811067712977444416726976515786740395753596251473520828689487247995306403835068444449854968096134144182640587497458005973374808889082431793847014646973767178448246517899329773502471181182804537383143390807601933875120284079550893101312123806844761010737191875941385955247468076412785153175017762797059076017659572124330467760345108008520080138643389314204265481198486424356971871281277955812033812085379750973478561503009794867365504689348409577205507478156367766970083330011315182534174028494268760613992626708541865909827146841958057955370281338131486070175169651155051433131955362322670145228815884338718986498018339076020656730630332534001228044181859860803518291791731337401775866374467661093842200188391011129183274655086610230255758797190656654125676921299926199607910801991493154206021525053827484912257531808248471844460441176496557120680268382821556907658562156066884320222809113089994818633206777853872749029376498724040999631796393793122371920587077962077273893446251778716845827099038283855306720777796749245330143556225323025153171995043795663991457649160832389880341648937922770196360732198286847287053781373021798764686841762080541738201608311743163033671850356340066355701939513750728815706896028308886180585186586208681435644664606615752602963493783957666490342566193919635280051340972278197803599005041514973279100942807027335447082704752122428741297869932797799077435948301163521413998710674384029822464422920802884500450924727103989470585566812701282738265888809977904124288018334309393326802345421733256325383197870891005992609278492031508710645790349285302075583824814298882238564645846249978987972389177912227941600083065676608928862898478957628942327606244992940385301940503017774443377743556511319109283532928575074125107363473315894137963847876356694912376456247551507940508044944082809616092093398697200424171296563473244220234486495722367975057448320673319648493284392135549132998289641006167199546877911404350035547150464783577882683025523852675429452730986645824286788261798901059580441348434144233188866525063505533825703799386060581386302850895118880583972493047112160554620774770311184700302665715048541633736200986965836722307490070877908402068667251255500421388393336689385587471041424833649591108018822551565270657591399777007454911011195238282777084654305606755383881510545612730194159672973630941109109955521208798589786077956755476538806871808080104889920553500348967640095117072634810974484967241648240283003199340934297162165409659365415432835981981921842279005797925238712344567239251949016040967023691276431105303704814716933656414650892576222911313561417125851426536032985601236224698554392400487609066599946957380959680077340053205086904914154378648027895236950442000906451274899642849960352438480054278182916981530018057943866233781430020232495487438871688839517160948715370129570218732211902739895062454982729809251442735986215996772966169301893185391870934316235818196091861161256475143711025647798215606748079522168548598892701220407765375146798913680941075020503091680322021632749187289345985440886564014305832237912185494916520665032967531145641369451562100635452025992998071734146012610823076094889528748565696139373078448382847175600288017162381384301694937648567610248041709151880587404083253430316605042310356913705582261999172227120353488832093717339327824933410196264671087656129603420581623469995954342318330927992945359015065490245363526514820467750213219983715729746061468758867172962680966624630663449882721875522866229779927891911888848139532788249760511827985175108076288601224176349303248917323233737443682998832441093876798432759565465135006599787120584896014653902966164805794281046730836907577744935561263463377384898413529382190562395139504816516691616180541622419756726910336167073238241825079748514008623265801106518602600255037644906176512315047638513147913354135315132990792433479077622500783184928126578861299927197794693670823958444037209960528224016509585813216630515719400269188895740791386825454808501360448321556921153200933741671002725634676189601658631271489887563992462765374518592986914275740692797541435790526482510353501344770993054464558016936152468950493853777899870567981094268120114135533776354475190851457251719577909195238020762495157344210149700551401162500567472997550375426017053380254787770589567275712319369430499207098835045763056934924537004247292166687475509548550211240881243561004080345118504208575473723926158600597107743933978790050303210280528049122409796730610562462858772953678774828001254398830485581906011075243453150560728056359989917826233558122967273114109753240008769266092380862686742131347467302629344796207776843679126445357291046265520858398284207010901124453854196258832916136911962131328223668837157802116330075551953790684219103704408603581245434724334019485485365574078464092195187698268474327086777847294093704521898220927720027511023843783162221970780100157116997596210848876819990764067416011175943781880758929715176865196457380975859311357362102226099658621197592531355461598559443605151601567298945169102699704294150268619450967322396650696515989203201520416391380214888571059101526176188308422602534910967383319927928067662651250564996994011489832212566544239798883431368853181768907557253528514559334751275325763617138372398169143985563592329569574861899036250763436938437054089155596805282533728445178430722886602507261228259818393965333104843066584554455369230556508497595498252276376607861457209380104132014086080074433217134318693237509679727848406118332027270179398764907016281656423148895522564884036321405452555295490764507117570735187976210988944003866379574624836390971549161926961746803437051560558637765040570563748159479025373475383153149253814330842978475969133092729137431050516621793811030756194714760118454908649063852577456343642719009836699200684783995575621281438272799545114107058620395036967358670569563392032748195692266260490614569098861246130716681517472921008113018955772310384486513871263609352358667343169619565894320991521257571195372310977811559484027739215369795111899408810675832311011066224536381109201137587372092066116203774614318633481389107830015924628078790551739504478313200728854510240992572703747084724556107391487179186028187463852290178712244591124771137074596827801970653959958172541977031820992517988711194511768009400961204111252278631165789079553203939847053280745745459609905763323602827290241130845206434298971178729350655405245476619554275475339933898654236211366546657102614074381488000046003622768682680962117038395275532701321630928840555829323368300360985447906138667885812529681894908232239071177902564718118649072597754699460439628699758040249118699793096234046612058548170889348066490190556102554771444214871890998089624781725158140153752585243281655959304682073674251231992810296014895583679934677361543863889848499334672797872699793783075364585882591741018690667804788441430141064825605361026276951908527782848751579982572363263312682314408707340834746373239724494772033043385474607659349793496782397029955985687260385931121317252112441444213021776887946801416877288867877945070216439158228630561176520461505425340832932065209440806581818348004283783985712862144529327434548812495040347433350559801393368265955690551223780615829795033113851954406826280296465383609096400586772430201330029280146856831768601956730637936563725327656209798460045644141545528498261037945003008588606488125825894742905775941739106175268376126520291298615397281855894789682697400624330942230780641585010465691960735522325947121505764153741312709447488846366077176220017440555426469129552246451852824626205893844473358533016421594347395780403812929857130171022265889152389305313798461277511049936490615513601824703415475696124887361784467670117305551863336745837381216501866408760567602227894232847147303604404501356823085088741736282095842252323146654445136018559785192313342346157472161212485685338411877971536359359994197254848303661251242485032374158292745651326085767785431777096004475016247230592843893338324068668708784782725784630108436961082786718075736890940271003696864646554487516744286483028946087124728113385770690029931097576399468041367328941314086411375832748736362328876120158204024132010757750863565952811558568029899921351867185182214719686219037645219444174212307151129603424826250118848519907817045958702841558678381744365255502333500837427100611499222861342269433472987389708113718326678866896096659516954265073677677332490492001719042840670168357276645963585666742208863383383253452295349904447129372846913437813131300759285908241204830581579034122927673471054360745832174843087561782127804811067608279347773881761941039127480053426604887905093493332566573223279294102379122894907404967503390047891065118267198091119668174001987508591401132804758532417680068714891644393540930705085293287937972071875918645980018179596106155981830578125606043553516548462514537693876708306519026010295049383175015405683820065013848805262103652803544035327625318707635613970445847156548799150906973627292839443997879260624093838901251888325858694510566738828128643132634608118457017566467603699038864368660453953742780799935650184967915568262302408850676860330469725754782736611047734148422453037784981235006942271134305515756517235313335579741841150588166253781462269876513622610935121951148758598991791001669900597555406063717269909063204712192670294986146838247220193740949910093559243384280686815651532734710786901053573226344896570881671349108876795907360011455070902621235584083981163004715435976335372695697801335729387799438360573396139882735643638711495344211330034687169601350568949174443119513717157476598280810478868845653431663765878091761143110213676112062897889824539997879279273574718352158578920448419906269847776424865398000723063436471619144872845131411092572827949464652609459997627616977839301492427851294460472715373144980454321269831088338152978405795130308514292367662495049429020641064322062846092473575069958386639130281346222411387335136242589465071182431771416630850666298585838615193717974080364910666969643032061210302760124573817520110460037224090298896351781978936342407285108871220405488000164937925302653692916969930654081199778801429571764055011260556373035095413649478593932564804122241531389689076050860675263213886650809735347776660273255847550984723814620506654891519839341089401669533929224744152801043124091538558107385269134103296960339537980549370570515256898509373347865795772796727459737749917953594589847405265928079768597205485252751481749101736623374512209726239008482304607017061469134396479932537601693414896890601737290989239000832216226462953960268957967250211424435883008976900008218259100162028303356318480315932018191009406929711069569483486573709497731247306336767610095092370282509593094241030775223316352144351226536920790040003309008552541204048250200564099406175439875935101177364807544004983112164349542424646582457495359975233581364805286209482951286957057814529416928125661917552092845307816672715173293715317161371578150041509942510940898275750906423888373171278541187388198643498290898475652446531277309484905722027384364631165205510146476239290256645762188328987086274262715312875170045242391780443463004770818982182965259690404767129952397064240754380988087702427105033096273277209447664330176695148435741019445157452778191941806582489752173265546020375808941416531088209552271131074402601126670938038419296478996610458709024858434797542303184503976150955148668538671088435811293940590400231994628463594065125708639347211721914698786154095609763738652342180222443796431305087480097372265028828233806152123970455472710085896447319921696595857666655355617129881723895788629540995290476675078274787622161790729311795406402639380123487218835683845962334368022318171515428770375642851589783069146850801862583300855513726649160637079400258923279480319984508983129859853306103302135981542375962053262332056933416125800033393315719695862943202430431439150655188460437158697133978212022198354749356440365062625030489556429934409649019522996837087218118158147759012577584751080135853744406466081249978715048053121670924634962742254426121979823232061077361481697576311145201236556210991810284561485272121230520480624847761007058177625030078570843626134100898693301740832580137720191335716886102004292705168870846909708095733645871631676201161992310236676168519927528993658803849543857894751684362735861883780969353776632246489701738588621211256715705285162653009434704274669888172113027923527747950087538060319058979247545672208598094170222143898935375314862839390353582117224417111333275832494470490936499406176052413000335155556386095468819493272851765392424052802558241120827399108717002644149653462747342188660823368826722848020392455768534997548737123765130529487919978341916690507842000829901177919773279744158148758019440813747009843616519093209631351596130458891230336381992368045877001577201575956073713773840462318506609981448908982356868292643530325879865958959212278678151782349403296421171319333996269383349088467333460034941815419379996163457696499399072122396996693589092167865837505045348541391064282470066054304721897748384217976945155504303436695213934882525804933456622321433156591611167118021714621365557616539225856367197513221870515572065956734239065081452282273892892373947332729868460984922334015734743559653379374566486230723661742446725419424578978430785017062347336219909834232648669237415518302780417551909188129617785247456095217646253557824029561550183409393089323049151203286791065503795343575520196755390259703869633624433889337085702863249952447836927508873173069853579550076686270662798187100281438872311776215342669852252294273038541409296038748001041752382421828611668057521218209124784179525555908598562938334565428382737668637352002523914763129839272135833730553567777032189614990761808391700762109801816431448915288599140545125099182849345960081176906701925907934108335183722845753226708507576818163852745981899646062792933370096322503561655787086754513233323513708886852237139947680196736188765310397170353539093581255616439523624209359657814615917785582908482283250440298192085431417972643980137038621189042035976831428134489899590965211932101685412579487078313918047906863122807998930224321085807019224476663008026451835362196701145463476506650560587136997209923295595716539682578399111964779597197949131667761362426608719323741204610055680008045025828633302972768618382166801275668639480167027985541659824584543951579454862726163583065490642008676510209261892972256325146510932524029440170873886265845662329893287717767474553143674761760989071219342725278243572750833574759625595104089262118904195865913427623126438959730245042575600939533477491236518948065678498001316301657967857220747347500467215474743009654479066609507723882039118975212995378463829407565770658972884988100767070149672740038297498578893617030326505512323530774382317827755129596987012396550149380029907877665887385247934274460807009503666339772785919520389291204659964957993213349143649280783004663218131354742384124981653465747347601501006608675325693394944865130980432176705014401357568074438395170785523077216488375265913311642319310784301006370644304888169002692994630350132252564669107488220157088429318079195219027968323382992279220707353292912594424449136652157663840884893678210394165823003352336736579300678455336549350843318615547231865920142464176227447074453346955788682510001269795544786133605086491437267666946847911600468030918760583743776265000804631681507947306756907135252207792712075079834257505286280151104373146605779971036645926300254199858379731919641498019106260991067977267024131623660562360425313741862881032284164595116782090511940148796716292028834690570358153351200798069580579841482382221956219265900192226086055266956703360743894545174495361685894985457021939214548627541987297905415117012023895635536197558990072886379997683484562631561103272243515976713094562290145073741198639319077674306636414418471574256336581867099247147286141536134731363636962472673475658318999654368732927722154376099369518795625965724620649693699775013284754315246879260338076427452188612865534208219284137969943605782723044536129446786161736533255519883229373820544477480950074796678418357824394101210412321043985391054448376503799917205493666134939400118207175754358493422230663044551583434995614227608633303453780843450979812976027780945109950223987959236234884690653618066075064067787045989036180691213866764901052100779736153999640000846761098639150106225995295579631679741018630975964757638044767847397702116494187074031066252299922062097371659221065777465833236753623917531849936491505327863947994532543953928272996651476164131754748036838850964618254523467442421913408275482970218125979708465868090236863999477241667791568110193295181805811084470799783687996559041967995551585394215702838964483423221945016553940811523752604134090153667746958394358912946358670072728062535001187446563844804615762867686400350741814262099465330841018037934950047887175436228658791278132278361232965925233066326214256811912880562495719919546574869410489560647850050397676131051621856983170992253950516188789838998636541924947243952749589617048601488094091381613930816024028648365630288976724190168556259500223447511119220239738420051763442598392077980270655561655322826384875704163331503594782075207023626189515913889423041627182984544792906725679341734545622213958405134231421256823262503873570205982354826691730958897678367162597161850314191807202147299291758893031799547167083475455804634226560156392612744625338611773664162072491998788098868198833178285472248431991811331804914514490195749265382358904972655713444073739843631314525133846854465212375724175615356628725893525259106255749891907677315816790444000601767701151594987148256361463628981426904798253265478387014840960873229067410113934193134220541332302676517552753936285100701248127071414540940084318851216051741045814533817496033022220481602915570263993599367507795529397574697587463041014273372307643238486145797617854353439817681941161183874248062342540207918928437129285949487176518652014183685019592051277231198954021815871996225221077263038014696853633930704210267727447081160965443416110542452202548604127154101859527630968171241737732657227936962664839062311522292527938983881539861422854768395277894220513618791346244063972852224980168499498021795136651875137919575993351444168561554033138012692896514090597947648885977353681697360135373071296882071558971540675682382330270544749439944988960838984468360789793973602998476920922480148735455494170637541306700580438969315109036589915757179797192136654120651038412927068283114366888936151819592515313980913145446907483050843306528223098540752062120762086459277492937348039429287446818297282045793536330831070149475116014997501614593912006356092979153163588448386677159429897516960696008569537497666663883401444056756962501035871148763467467786850768254852089992918704608660201138432014758316096247365068446413117500279423995370938205856428023993034684346701309632955219031761896509500677960360526977450405633257459042793604239178388160577178968585533264203965081942897085538371219047409757544854477081338994688869553168674678211104283792513640541515217973872647605489431438005311046473235232478289172481281998215520729376945585855349394637213943763736892306598204382277774831733446114963596916233497785994509196108776545602681084992308651468225869944151602368444527796986564448111901174639537566985267444455896683696287959283294744282176731150278865909276517467760538207330151674057168949725289505694931252344860262271381710049646802851737466526787165009821473862217293228503191711138751698866155739064189007839265089410217939740778114117005659752670397126217305514250336464926286493926353286532697474758551683261352570463403552882901219752187001863796200014022037188257438670962113413792525182798372603031610628631713655574208787202209278433618887298583613379701129814160295896134724534493360298821105299953122845109324953725192482935833550415829521013765619871953669821850372127566576575897538383266643365743290392195871704214059717546474754754544158867427733786647097749218449927058791376195379267862877805417826292034821885171343231032008611467747653291894281109825260712103133745590058164638660649287744995089828845849298452513563572990428796170942175212353356510276076262939693731959363413197647091997001134692071239571264255639909971841618371553251212615819828259039664386844445866379939860482730685233804166070137768186269085982669504274171604094286356402384190092200956976887871481900647999967423791876348582617510605847316244821639135299142690467076174105777923228631914082489941326419661340250250322260344431064881491380309588710576121757451599545836291460994558837176217090394853120205690124935460348917932369705594892858697962933775332601506619962021267604108276225034358737562218084056237855775894853241053674507746104110164404080841945725214249863100752918724103482537515705088252643884104303306861664731250207449776581391041119975913305781853843433639127869913133449945255511118365858596563845808212708577910039691674508826832379460533248087868999927267025666113117630331450599131689946796274410145391913709681433174253035562952579007705933650731370489435644799303052841014453447072536338848854390021242756626968119166913053688925217440317126126726712104166528879585182631012298145410228779235191565889662282414981971835538461539025676080862896403531857414252150720682278378281382250493883172467176557598965898818549240289450188001591462335331546270606561860892703896173548588197868505669247687633239748135323894978396590994303236765192861689410429271289969699441569771471291810125323685442280876773720741580294124948726498248736224909650979153848836952135217265528018052634656882845950881803517102231142451736554665534855684914082890070286962467539146858759803837270311895618248825463174181226895343230998071025964025984397347545326455325812696125497349277023736138364500436424707882390522329943487884773381974630049738058382527409328871491090816141323613579971525749175509352020641218700859683151269120728218764316433764840425172665287785135084898760688645158674256262510836599680016820758146539947398984063447954478492414684184699558462057272195776663157119983623905324607540581623349618401083987908239861900567912058278599351230706798778726222187749930545980169659339543420604028080196418505176245288416171035776095686570039885155813378315316253992431641301751646932862331369908478031654180064466990572568229047535592030229522281094161876810686485742422428162939052133240407592070284399117138883446327987757021544777253387998180355059582963844652916789333056663525280681225268422437174525194852540355943983418509282186697814598984126339535572752482679811726115728138384008345369486643678052836438573501133100814043820911298694445442698739014265712243378777612123991853234614421396348255201392125387084911035214599799358689691135958060460294260114886895169601359708253238528308330107809991450445879239549729241578832093738335937809952481800595988244615960504597558405240400310756153301435226099069183375847439511061457384199355091396012486025074257116415225147424258697543671186177174329601508858094888862923837415831381198650501919506496830705904957486428398781341960680225372073459980029421927349230794362070908126895092975113651917801451597604125109803618205278800611000207548549507314600553367646139555899401534199436638316274019754321793287460425851174014645665114444244774988979773830280507557354278165281040060001828821297758709307323667079184118866545265873657974080502240765897580899332289214972661858979245433453764536318193933949697313899514119359635905140149023612841963177162136238400418356234095351437860643632848040081642622910423136515519711265908049795230833853859152614567577303803369170928337627319560772153979752231518988566341328182987547336514077466887814680676371703916614285006101017447463541961433674195568542252349949206445062432646613020488789769353498704775046381190806671231669152682199768349273526774955298086483690086241881803092740887013687007164467319874457894163452021141833035069588022510732504138866735506687894188436356001772235476891676736435890436931693512066534882626891010471005660100595487274717157384853473675492188304005051343764177537370966123446574751752446045700017556380988234599115232270948272636207386018111674036562670493644869655375394953645757896786441558694247025390977149675436426757655442866514657719267797990270240866651475549097560688412105746227464109272755589867340083374443884110165915742651311808972521891418072239804921900060773375025573458934979545743494700079233663996474791922461384732015111924674220494241543031303689971824849085662240726413127344598978491121427893990457354544236787432100340390445296634701469595093976231114209275855848800105269246768776047566062284485575457870003455766423999312859490965730469160704471914477102918487791680223607416393174210109191200126985004214775485121420733553657306449378492593449203319770720150622909686477290646391108728224039497407506144744404613296860313743286987695456479245675582668079897441345654471034155802657187846779718754110218758248719740353268956193523316528384857263131599343293695515192648707588622227075601524712204512109049690297971260645779222523077142428320585008654759921165519084930007803717785652695082481017930834064846891809949012652822740729934999388645534083641204732862911973911478646362377232573426987280354999334244537822233655235507134077607084507445487396759421868250278710551468149465800447608273749310838903613486331687346175479865965459185602791926259711742312300904434822618402651371584857336385278975497993966574482048177432856497263353509539420937612747902811375685021279189873137652457788763502270359944120955850819558856900830250869483784978113387451058399768041048766720210044383392914811846941767618262131138196642065625263748827812265476543763632508514058079265777563692296049114679974225832191214483734237588012545370447744744823539816344743593557488580906722108413735751835966649139581621281050899818344903543649460435552512537012837439503465484794074762136154419473641948382924411450707038914478993022197664883776681248767387795881559477391004509209396157442845106169678433396598458960374820648468021610824170147415736758270099000672083641536330721169289251908022041488264704979687829605135598048736965995278968282977762699548982338661956385557596939838513168228321741594520758556245692446403303325862710542668732424001638953305149839410126110583605883015310446962218715102366956099711855733936443130790772801578048808683514409314300006095755916389346830659275001624543953532961185401295042026290340116658407969707809451764267408455346979330116280038695854901042454870227948154067742780995983327674784199148442887374149714374971662774039982593197077626920806817583805406572229366966381372550161387209511576004837892564898048131563271174776931795891935553528729041041608661433763139272061668522002634460628744776031647196790638928675949261135813143836720840481881374720040326613654857745021694022960777053770597707560339045176061248260342972348539504149855269605470564816667267071131737126909055230726945016153292164448715098052049779233784601960201973904861398785467941995443520259988177144793247267347338198189852882635192153425642924356023913857315393919403385012125697160241937515602181593426126654798307989191629281571161447125846442450435488252752950374774061265813784842496262581728876784216248589648748373009776109737245536932165918583152297661885091589325373505325061364391707087070426975201794609949924605150080232530853868375387840408242426844423761561461992261336496427084543413108971462188396150665392759849260603702720746655909709187539073627623029830527572637332935949603129380260086113150883993688491033370741847416188938919395755180501831185594522551967951139282800176572089879095643012134780238834092465831388510926090980793155253703931116032546275335584699646992432016736979148066725116422196154127144416485268279424909732809066073977670936618376252719157886890700888424968251960737932356343594506451942228093051125500160261730449176135927960167994805101987830696304027202609561613023667267926061357478898671674095845446060860700771276859124864190629198378254454331017166027861207710428036608324235542792592932729357921687568303214546585092120649093891234042282119603329712299793269351926288484365840163945822372514049481664965498377313769431810250953940988812774289237126149918016465040597623086189612013172846478177685068925012320387271565935199262953735493397773014402687451057404972285634020607684509565406527150013307368585614357917036378708141355295838924260381924467979272054277422554863369663898733770014427904325267948967662824692686702816614060346287127895348834914551724629765290370613413326932442187807201405011618618019421266686510929305153941332254956868589134786007619758218816287465257469507231688638107936225034230699986607965116940934616769532052408420532271222677165501397818801586443762949301596164348980331540042574633809186618389754316765383754548659250035022027814887460300832959185667858025622648916946167660159580983252717883391172944735037155897963461138207421652265611699027405625839266943067652469129280771999771400434938443055589942849790331421222015902377760834813658729998976667041995549583094403111895758217144872094301947891750619134664552689058066188385932844428039964774562500272648420833447225772899329045083455501789513649416699003573018638915093856728871267218380693631403812292989204286805534511067420291869549170817598444276026909911231333378738212903242671544485202596106395433077093743991046046468052007811568680630893962299738854017861206866804936690557657125669554524286817578371660079685238801239358896484719562593474281199351793776675370935276969099281578788345247011865523514828999817528200945277114938846714614363268054968320911385116548271644589175087091170993950997401843131742312227615289987213048008461456582654369148192681472963793500629847375320311004452600968427760869927267083719124231806963260600177375497663986141064593484931180629199473283969209313385928175047274678095550604446683133123952232487689759449869095638800448018344653756851147871633365127615422460833336772135238001098864716081270313449872660353986500265627637204130813669198298817368863403781144823655783058399879212282655599387579452848788252668255197463400694743985322937396885549949696235925218380832866263581709025896232100346981761925362063764003615463184101228546200621914206174364471087548926773934851377449924192351792203871352367262860834577944739828544476034073127192342845378930680310226811973226798712388180024867977897512896069094037629264132448192395333688061993604935408040002295702399899094481487536421869782947808374041705415257427200057864742777880289569932965959139643937322039913443831979965824337692462341240361044622385438843396244935729031605572198753092255835371090630477860664239653477944183704085301240384333751952890100516191137666110442147523240048119231813456416159132174529191536153243689849873615854704474813347118882202506863916912682909916842527512852948270889688635441768220010731535599945820192586802043297415790102391528715084108515607628565749817315552696536790748185241225384703996811696246450615522114159570815209182208499216391466533988201181030983645607753428902842476433586105907968065074448945749049462053185772976092944588326011107671921802960018748609152660773711005875042498275254221732932723951601065553963288014832973228980897601338495199660904339650699435776064610346439844688015330368151974393000627427129198748543413702022209490509902985496170893431654459479685901321829586086431927351156332795842968512047387895341833585571797595804221754635678179147759006361326658026209247948976349310428199316995037950918213189762308164985245868930671056638441481816917301213212981545820090134397007375281917025406654388074847590580662869335731704652611309789388872901701496587516834746328003878136916016616457303166491065129219877500978024244734761932916455253701744641553807363908314851833863883139111578534565781244272807055795425662576462663420759748918886928561618994150031208402123441610717329162231340423184666551058152239407107258955638755453718576680581473706340558729208993619255984951655846152400763478782260171529858975455009348965803754013476370162417869048483190535228889975194079270545780942524764078762665370118929981788537646607851777568426097364508793189873817191618855483166084205238948816343122767977315075847310931926235994163939443192052150827250796235507981301555562307551612927197500283605801316388860061320864257580696273854714662308268884868411254455483752168267258481411349319226501816392033963426905008423445440608981970587696297378500353217571731097940833000833113013987241093126812427142252348846224807122016289452465209317451141239031006380510196815210774275686144358490594290506846046539065766605244704625985699180614842383879769764631871882156888827039821725335753244137065300808558137982154674129029909853191697149689384099654094057753813575599152186548456954886414497601851816559077946332843746583700011712765614662600998085058709297969047792767585697611458068084317079278298955063064396640437207011664426766168457948810128070043132624161966883758688265173497821571281419957794737300117322368662146877263171856888701910432790777782020916918455031209625424693442532871496937014786018027310032661109117399486071100262165423614780558142692466436783792210227815639770432962242886680570117720273664968988335781287622898636828047804622364787335612454675680820917352603942146278846504652595619575759534213464572033538815845673627824884537273106165797636676785300671492553503023644619338664562927066741424268410324565921423123590752346636918301067241783149474453552159472268830656120708549724984077130598611828180908024989417783466054584447417551270472275830593867804096440696356879778834373806199040484845372691652663379135694319234531436950568951480053418732586324688544464090265764583034599961447119138171448004576126198943995849435781946769481957906448584518643132069230284285012032328037224789325071766012827887188828943597535605789710985474745511403996131640071721647600167964577739914576342241544880190068741780265238180814903135172813545840398099649126979106590412303142596667842267778759799747477094573290548072230707952024119809523428466481304897331640830810824262064208141287084310171660987278698540272105425239137652998720692901886849575528993621493109569101790333941306770982855915075547684576103116051205305889681877667841197767262459702265258597790939210744988255512079022665291692641750058387752662212595314269953398559807325920173324786395278038568613767647769674142053741273603915620172423569988368186285553703086083750978938004376598352010311632671610949391761006486084152710417215093763025896357528288608446759697405121151550988075695064520091989878240052442765948246776904715502228464253446509720399741087724284087570437826779161200902838296300025827146177870333733167458807370640867906696756393547377054963088591601649881687540890649714514858615432127580344215037201021096933477158396242824357033388817715035236143488632773520324561019496053619183034973285690712845456600516750267582208990465710734691240522861093074341397959774852456706665993138504351517646414758708083694273299865323135532463220773989645973252334389903199862556810392890174987574497278965001935944183155428768974067216286975796883540578042424043439656165264854625459753396884755270291779634583556423246544935791973977811681115465080354576506939306914530290006572252602171860308554204519193963043619630832413826859915683424579374565945200125219787934251166851867429508606201745145094952147677329364797831139038280167885787278525186771501790492335012650577101956387282916292342027791408250721001539866910461462095144097173938004700033800798722736308784580114596186441822792958994833585278778156911853964408492208652620989892414764346005719542263101443832161334528164718159546267118057049614687269767323394523823412712540469140969547674595523972825896169991005176816315839232727372520194381317751699380783600195359554136636340232429774686151791001425633304984696856806697983064064915057698887028347152531727438010823723491538465816309725410389223504746839354776182247325321807011397347999694982262061121507890772798681536447202113775729245473479684172275633438525286991484562840376872542971353301306534212951584931211991456782207062143634066679205076488688068877364887169320007476803251358578259684520437318057393229712026635245273868217701236691989828431608536520188354083843427084535258459814253360948561988187307404113936291774453197052033222385653956110597877839665593272943826351509695433335261242587306971532663314959712211618863071064375055802622673230387067987262148654396715827682071071799160530986919962533811287851433926399980070374511862033773586912910624028739000491032471027429320788572265652759334814859985655192688615600863607352601547338254089606201217070894783198874077716990236271413858769718523612020931354692703650353626888970468921215865232007736286997903821230468463676417579452090163459932349382300795411800868983720863403490326168863950096820398619148613326418513884820494088200710160238240375582558094304075016442475642116977281261031311778514447789378405738507637449188447632213671581502849523365661241082952700388469888788595493663455304664342910358510062444840946683205261162096091832791243370107495734442269609511879484478688380573465680822983704452917742604830808178222729901039581402658671309292617052255534067902684988464358545032020800664598365311978910518813103382578089649236713453425226008666183189093589358986855813680453304440107279234969228192853597684813619788716025226745458282575343190836452224060053585348760953731048823694228154365404135506899594897957799687289769685517755470772017001861004124491704298356664534560227827697007165123305567540212590807062755939243424896116822897813427304829831018378598809237014513775147709445194628884766489188097186211511431633368764004590778973461443881310994138897779332696907150815110647560995546975378021345804705922122989862229805368294528398922872230829984986786656523281756000877330874687986473344509789574107181002408458655094552032287913998885129348263621746841000962678337838644458398788976161262479916626455781562958376511496162355765907963657567599217000827857026760869012497191045459428033856077857891616081381118726929531773339766608754516417819117446828121933246304385644160345035424767354946303046378765370607341641551099400344178925172880748926558380789014616884632280826913048301777603666679457476181661098551114278954332433326229444254513748637767924702406536313248668943975818810095086086838489499310222345983370849825062406508179703339613187574361972333953382268549241352176323502711805351053687043993106990548264998613626995716618658096800261464510309949905702770224560003600418652392944491007716308166060301562638379155268370356951388110433516725410976188551579013986469409959168509767756277802144703651361831813019292076642263050037076077026426123087961939787235478318693838690978917538571104194005027959898791732135035769235612238413705570426583912833720352627623869550157533152325227907797605334802983010287494452748375287357391521030327603444209660963084016251412762092279124573369209578447407947278508124310509181943025620147759092683725297634212348862460876593832910086683858544108050227356412432098447070030717618941375173241091049153626921421659426127290170526114747375615479826425516762254683496619825362452277172664190431302027594628575605306515948516695476907955153812923806207151942827524423575484667700093951797868656228026172024696199972660935330800996409792597699421682014777622387410693264025911426128041676903436795042725580938771713094378654246127402384140966119099481542688215371527281682260457569746864611487278157598343104886180978550763787924832641620322819606995236246396965301498340802401750565235301824863948159352454377234361302130610864040582785059019910351600839335069826140772262084028470672194521370044008744733737241831127383130192906546369707379459913345362541107066562227342661471572556694493788520774139872067932323669267752876881875729739610582800886589300143454563830747980453561587624332920397376350704690463082251366759331662288420031709986733286371670613416526009984121948930968948581964399273765608533222879514860995113900167949841884398963099588693550715465106203214663688624858227854993947235104465870053325514690170324653179440287115101705116221557094312373932118265975453854330030503945221437621787086639618423996233425663989598847176239904118897185992009609002676059720030164722597535326048365126736060961427439437381728638768000551471657578184807972815415230310329049108395969469832830016292002635343495181207840991076656182536993939391586016182105486751449086003458849724880028950916514726198757564059211199036404740360344517317454695791390326485920004994095344376927290129162218405941499334980666197971437733307233434416106014901376146662840441443923906051597226357682060931325194208171252751697114415334038035234897877599564328983429003294495070527258847710784887414985753421583274310245821049918399663484553082242446690226983275907610144112213452189747220594731003149357116399739115007453002273513912311455395479517504273145864508991249981786743695946060275894152770683793313294481958139208065516233115343362523872491607606184603247574521535564434889362164650793707794844407423872569983658538854981347457673772451927530632371439728137318111728941998727634062531217556831212048231485246722742828742020850963594156932887912762381083214484039617505397601836584420720828658462999659257840349541756525683538601336568081148928630049647656234095892637833659838846164666742945039428364605485010715266257484415465330865399120624334492676992565483558734864314274373358251070633001957839285886406465245607692332468895418552883377070467975887983891014998094166262108013946359860467707734475261232171045471908270247649538672962082273515191202573719818745996766430255568528069639598427492051304924014760558459089559198910458610888576627560161784804345327463635141284639913437431463047936478672463387035481932895520147933121666736234894463582734000718329063086444155181451313840843348780623716447667081441060778876800328621569731469982759335464366890971072038916015744868551686912411306032876506482995384397092924092886768117112761441989079477997968455167490575129940453709178929884190687303214420849078384253835727056572692924368750117117691396274056857817359026664312130343894263025559655973743416081496084064276216110751413568386901512520281411526708699012135328622600628722184313884499210139525413053997736567749139232045011405903066133576459057180647845109018656362099314029142481111965498663315797446652813578995655791806429153821831842604678667377776837292857983770049616486284488901821746370796625281261733355922224798319258878651789348391281772183251988904330887813013691232553950205256457413556577399008506423008374099452103196017038711268321598949891717948140887544172809060779940455724367122560611498847178984723314498652339222794949090310095999291780621795918456940782904185762087520873363218602283859117631166810431648280567882554891120877296335890884462900081812566376797363046501040515277774215412203084730500214153730584336036178494925951616882090761495706410103986650516767150739679388799356683897086034401445016801625382035300854100216431972607336833826795468301527363649919271101959031406376383959003203061242087098210099127299689877209968776834802010183302541115140746696516477581805268240731072635365784832288668422783151698610115184590754772795683732687589552159172014911141109352935731327080904645001486761837465116086570511076714005404537223530074830793773525413197626447322591814102287655348513236215100840456363460227024863391718998260828773879123730840880822010782894406508581729954061204086220853797915860702539928875063971725980146632394433626329961688844551863721157325352334957063092894917041563442438639988967235811361459477052767880076965677592353342639033106540601339190201916170562961564552271967400059193252233692552242110536222385886436045471765332679976841325914905550029763850680413929976466896994855465286412566419288582391221516222036266806109160950854651489941531375164418662728509437867011058809734816208194009255811652708953766858486234163575931318402826928154972750804977353869752749500011905973990163286105553661874876670713575679495097871221182174317742773429091718508471579126234896332986478139872770637570716256671137361998728752534617323549078432018443212083678004156654387210870114564845040914273048038810968630332640573191758346203061294723389428858460316836483187591442450327988329277845294429044630413801894894844556811131949387129884013526590258253628785624742587586441170680712483578146840977595217961166589356504534193576078278977384969140291964742646009555423874178589467368471953404175403423268982356400893406411541957881890661797309263214691021839056406446243267061842612844922674603915181586446423517024453496128199158974254391036098098562048132109676596642182708344182065307224625059798436332673195001965677452595570686551007072771883820603786280184239882353959118508712644869034064849662554079939455698753892158859361608153904770568457757964995942970277721059441640198621066140664929245877099968288475408992008994309101921837430772316463007689112725855863289900283142494190163167982656712827203648496145982384692030724743708957168875316510210402538749210836606899615059623301742296503362724075776725177259318816209866746837310284453685039951870407057940724035516910684009558122924465397322394785400005802043795748176835488802122805881693191841063385021362566021558427185834229236222009790368508747499540893554159343737569940089053632135739908222700191774482519626813294810836695486796057758993004154628536082297558121997679094873369478826543567172916937649482013077229303182730617458301348772193695789675136878552680465601722555712654035078625427033784274456766217500249670079274499941631969386684292389880154967786220885973256258753011974990643880758855193856633420421007479812709610591456288439038411902471557252361475208690250734706492945150986641564992166679154126714566988103816431532210296264114128181452703095599016901331862319028019560121335686633658752393328420889161633839857692939808581214626393293194139571355793049363963417807005961789533451307898039563049663906921638423735335815088300008451016522737385654541183248615099762050058203016280655455656275520351666955358973948814098689481203663649753747462679363481182267925051828946500523968290413280127716413572676006127629435259097652575699780438005518264594125523370464070054586960869062303993934241368018027063249393541102342309171529153828914097233855798497478965813257298724691774114249436114009590980507560067671401844467706697635416364912255102092259574626134592878335465992897768593615829344449367071243382881292239617379391838546877865656010404870800282082535886577558593852008915656407413493833793761322347685864928815705768703032364848911702918633961805748697232490018295588342479536546338020680612791390349837680636892971210491470397764010974776189767669845316217591461286685537707176996159725371904685698806555588937569357519938276880813382840963676044625535035443449057411847435206055758968111784501148184499265103161380625153759239094129487264799936070990008289146773843784045031022605881356088705675842200492812440067839393371629299133773940936938537281717541220922716695701253912752344615093309435188305652149635562985692542063320245105668056154297500527862128197550773144042637686702920890847292788452521286831981934021524607407300466297637084284026462813741961476800909157754029243493314101194006719477468831003768978100742868896816850940665297748062423904447537699262242768003316836839582007943900824839053232051790265298933842682991417818246718369454580921818505377321969663776192811107853705234943004653242285962623525450689835592828483438114090124945225972586208302577080482019754833389897679789542655444456273882235670885016776708056793442224756698777115683999845947381050422609890646357512276244476169647696666488127754049884433571453898229431845420145004393681842232213349950485062804807660451785795213514829270904288909394485862605612263480363159636636727150214692342387368322555889966693462062305955435943435412431713640911372717405255309110190277924574574346332835383054956400094309213194555368533483005075831929761858263686011670679304425236103507498724460980853416128717739215757159960622964214630118019360677323263696120179500282470489012628663014012939343345231205320048184268054695135162929248497035007596830378730793180617208342227019172642606946043094453445018998902154907367206751287503917496193966018178507594207803554256333847640729503710645142940851162436422732606401805265803218915559326464469575251382372725178778366125438010518157441855459593833934773192478453060875899098005821502760908448472747379155606821697289034697532405824822451545455529948676237638926279664246280748943951463781147119600978057159991798781001883151941664056229561598032499385740663541085713936745276048239077365415279264194626082786755495811496849009749139087545314246064903307121753837091811032097686792317941103477495319136850244135464294942740323286066123691092532042190419757712054015022780547948156638868638155051938371929742089915731622493989707606169039174263680103152269233131374084952006388844840906970271241557159818321692015023606621186133315019765000663922499318003110645884463049748870156026972087524612156123871998056100841823398481870318619456988574437640268562607549379828150452268591105954551725995995858685684573758646371740272892406390978742206644880653838009480212046445608869099111743510524244769641937534556287907618033026831026750387604175093800658946335684356165320409373123759813075267684058617092594866620383045122681509858409023631184461482720274079499219317337834813713974330132158164825383509245756538268856765476842888154233280222375300955193122192991778407610333406189225002700261726068103709634296604250557790142334650020218609538712742049864565470115832244282718813502274812876335098406761850006623496050774426744039965970476512955939602227472021059180753031654719703765694512037214913699599237072057864831431390899721560508757979308117682380987430277836998014932837333298936517032997693466361759423862663029436520070236820955914582958054266792171062273041073047044781390767852083310497230667459396857769365328247212587339556125400790309468480098419057845677261009486215383749043201846604034396862095617026044278617341308176743762871080634616910976527213038095477159225451931935831834859906825023806030811278451854643325115327554924767266771886186150128534704832571133742202262086998925644085193344813269754280166227899750775207588251062051275853798245229086120472464154082347455313538016802554422379757773196915857447187143154054971453468640748313489505739120768470337546821530114806418646691824242679060405452365253238206044271315568699477838323151310135310917820762257841036177677276815737505682168381712988807480416849816514206129405485479613744244001350994916077834270919027709845785429959681452990775064736521868385028280453089637789580582963144738549796831107477041551965264668184937331931218586083066223372640939952194675057987636974574527959714926641709511397271043322342069121461158417328705432387405877917357736063942864564214136514060196278168662944562553431141822882524246499505296139408850093969110949210164036979884713207657812227623558684688670223395581590698939293607224752385444609229780418665163381472032320334180098292265750543753296502062315389715196647644655280031821094348840280144655473967874238257201470719341145586885962537441982701899741989546281157552840174740304587856104776639789936731703331444027028154771080215012202540211297562017527152212051865716101524219354875436859455202156261817494385054252061955067977109052836628278366994035682608880375994993600876419458425870864444576324146427037243065153995008060886105748496466161306870649158925826896426043879317874608073058755576110004124157478592197987231359207191030586490101509425637587734431306088997983685693166197007904726451609733130339190988158426643902896564985575406714585219851202474853396563262976635712442436967474614041573809955701740444704224142810986303153408340951556750597706136590042178952201007805303933134081506206873057066116765807211587995427032575531792257975592897494078961551852316847236921742061956380415243180273073483064557482834779631834777693885132175812156900468697842968898757068136664899504193010835729709427711249837922396191340539430309209281237770046233082912595498221326085707077606610691275557502635279249103520303053027011887874350271408679213883328779900290960066582385502831109187125815004873819321897234228635654960234148304451922699649988514210642449147851320655704684556149940659997504210617573228339599845790091282410193694349183855032917183765185734803744638540522219716094170822041885456027026789870344639345519300516133510778191348037868308384687780251690430344969579018980493661853429050522121906945337353233897052546327125297769921121755949021722903076702535907232446692540333754380103309621402141587528758955327783833825063758165978323101190306061878534139376056517779027383636118333395712466852723745050967550796866600512647289705801552448344355354890032157209434181963135387033257991669542933647565244182682457228817347079207287114717442804044523112463161650087712393919080362568854117783326359737869187494725514919688714034277463582965363282913936656373306772733998583918288329497057229072010061557216878872764359669598745805198661386800156918112442259219438217552725271865837221723029857590936645769215165804609538767383826439997620922310649121004359334403722641129915481003596576624804480521407118613970498563685299692856683037967867408483019454469746007149660319898579765696753342446796513782441745413287660883038538065629836835132674629218609658250873416563366633588436084771136087042126013318397138316350644586355118013490638789302620957295220447316672590039595730905490553452310728024840684970157667526007882709178732087389699548882643786030753058780669108964578489429678203389793618343473441101162767462408240227422910035587492207282810246803206549344746658594122242900058606505476059087753731973757289031418790658990621692367437019924912064271178966557586844414062533663664991230450166933159718692536816175701221267163082086466317145434657363028598739774990420351824489714202427126419776896392784432149041638736413429086269018611635262574318002294083322039916537328545955745852584953906173658469829149145689636884223293634008162853737701974228461151764905623851932830970736361080046913597409881294299424083219848627880963413405609515545425038699490238386159223335134109612399843056260210931510293086797999030478573515163749745310003000363303556517936080207877357209241752971387906036345206337101553920882367474631169947452668688783181134201336877552869473301752233663077126403339042816276272570240614221118128856258325097680024156992927010275168681062068341000056835486339392158293982750855681062452263797522193448960171581004543131654322459872232451413711882610755102465472986118671309007048998112973449199703349316507008097241947008989638374381599045859514664305150927685549706485336135696174942461140753609163659186171017372923076467104038057287928783676735254237792792994757502824791906583176730665099887486955422351408717811844977517276842276097346285708116653810635159742983789097002697927655813917827968604317903817183951895108216355106717701727193348167987267732479680336493344759118813265871925131641575852133411127819180034171255174905625013400026660360810985033680657622292133422216710821395188774802400969812237435231803167058507707346632093274269538726853939754569499504525512601441884769061047717071738465242285537497810987675045742156502238006867170372691559697655571687741859768370824167264761564681417376601519633296066669016473733391797150880796867779574033815151367257898654061829732239834931228250958847308637453899892268407447058216982270592206793376173726493422860551278200713445148546201682464785833484150626202424802408395555506486383781248070268943657639557632320826219849995114403767586990240190823658114971685610395945848291943068679885447035854909015156471518186471168674881532959837117414589037640120601781428989190111741246067617991038891435181707109357366972639291933500193505884817856522507615650994646567610906560445202508456665980922677116878475705811268979711541646335163051676230019550410895448159828984671997520302141491685670590450591877360092064966180174507197221664118065652168080566261458169451626708092596811457653905239007100117269698127809520914158446569203018378461593473352205926512970772616111985899469526018583665950772299580771177378439117233458096342284275176056496024043145481352535314201661212979204485894822508578115765384335985207491461639738675405099585595742704540075099272442648750228816654020151340233050468784922091393099998970913821542460197197055106807807541559668457945901719578744122824288974726535887912354397874361209455623181207565372332768059068647598183726565394523491129208885276623325696970990464831889140313202192678883191216569270907983051952050203492790466239191034936539327205697338694896592268257629835718857503115220710112577570388914191325482000481806271433842111170776064836957880801340724762962395996977475007803884610856442952209331771823798013356356212537556350795894014499648507085206273678412286209036626198932212853837910019951406686615422006073832080781145432459860848458435332021479048149473365270830698551660265548501849056890391646272548030109322825254210844438144068714679722576605391299719687108120311645566666312633610483229672864016348134257639918381055771652976102076686575252991234456494048397829656501939216512310397134315018330598492477388107335721023552096814791971000845748028445807611897532301560036224289066701244737244567229255481795206651716892523862461473743818591651903648290968443596964493883494987462116665934202411976643289567570146206379038522903863153475716992503934530232226566771693295937759023791828763067667197268192390806276644819176563625916100719147621878177986519190784995316154194295924587741427136164580970539934819372180375806772566398448766017252636117431998704119021668660360181016234359303002998311177534876055586439126255834817222282696015948075220324406215402067009823870916417840711018874475417843006447937717807825896556154755410717672048370307233247549472530269760553076772079144376066513428296771650189061497686890633210041276518464738677819311159801924932520087365868706958029556289644925791369343010400043929575059475093926511556168292859802095061767989485248569218598490216126256054886470025902447853795507378063552170019488580099356203781982852767683657964351805348524101291310415870589788179994455823722787120783534543115708434730793503479466718726882592779767147652792480865640531864437360238729880266117545830519775963507058960562789905206761522490970322727966061500929927552917456323431328320428149549514945577148030542097315656284314076214705877357051064589207717711158642052375946658409825812726802842476492185605555021165994370014757930691673641468301098001206578655370443372988091705253648075780985386960846722159682091163582367651792921821416306610738046979779723437784775792193238705919573462401385916225404722658083487313878386432826433396037394897729257161234650013658052674711827559488419717259472883456863379517960946961304004751677426067320973009621275367241729502996308782482208606845240304786195816550051900743468657400377015929511538506241126303759894456648492898957660927994841397004266200913662953484816260097964996561471818890371776299636913524970516834720432935183006364399593965786475060548656230518027578857142005227449454245940511390283460282188243316409307532659102178372769567516408586857034820495251539253717240431111094553979102873895742877666393999174348682800915869339963940331743655116311845262183163728357464291236443702757301768137286542553089399801614589878295151891896641068756787497309693919168148753471323225956978239481581684166166326038581114624871415380986559856256458147057404840462907287482546852738900691215927774232741797359654563807870537609797494049944376203631551199540906663712075315968052797052835297621583418084702694677169860774822588026974172243831547972290146892342611906691411768778962460168601271700227632664675305228879622645404171621927069430806421226658866713281607273864774745053430291686026693377655941226327108655167106046387855087656331488576093932984365499399464322936168575336873992913848734205872527248068589761634606426430608547831983814703978558508296627873192132239812975064839940524601009602636384218682495785172599001213052549734691553462248802063307712876392418080190529186704559445432930776347457497111082410058304969621191699106420544727748140576685529687553615460589718797693081895551842638621666818206274786571731051947995487455119849501889708799138202091416545859871914800413647593223411501661965641898626138552793543637220591410767732206883078458877998096316604416522303582031252665618794072072360821908759682136720971130687151768398789868944962370838303832677190231063518332964488484473289208739967760900121947299554611671989795233633707391649975461408966250455821513366876923636075715357205830752657025359532873083598493041019173431698060478593298825528281229164232335464859234207617014270846307200635648059723510586744102969951441292133955454230758363932701590576208428349217904714384724125711980037962607828678082544757688033960949011770129158522455485209174785092701836139561779723874987081185620591210947934865184308076131638348879714366908905281411165323891065826143766021291953582156539109341982383885236847323369343121016258255942449172341737158836064405170637708752961569232633926430286941752890656679253284093460753072465222704212849469429745875845440187150494814963917147962315983639723672371238853430867522767475154250473460236398493652103311217681867294743046449275337758862021687888928346774522899086290200694074193517059652671052206584646775833531445798608740826561385350144197836695815728889979154999440431115454101250956124031146438864299781169477108836455857629868968113495940087299248198223138723176272667836602335972899317788197653847291342794842819114328758863394351843615538128260788464537545336526815129400247510089023252896979870947138737635381340435054070076989769980803010546073824771766518894512393019410155837682910729786624890679333515012807749209536834192790712087417795893752838571654585476452226929803363005614134813951712864261504119255463623340978894486908840496897371868018064228727584232248651716884408046024177422699966829307101849702312470998606545055554299835644628372912212838167604541428302752032524344305844132370707888558464844714665464976494501554408199520789242463381678409581850068366825098282893141733958396844530510371445866000396233800156472145143966013149847536344661432534851289720953323545972159881730563352379973000104569803416224773192218073170796342965833079625262124384078639272451199184053474511811504017665774451046901314220808576941323644872313796763771379450655295412181993522175580874931201296503956409525799277087369736369844525601304743545655771011810564363407170345712495886532564566218448549869222644430862972562762611004155235822199622054150074358098102274868447279858284375029347157036166947055004034599548082797950517030473991485704550090296580883060879824340955661583286285426013875019166405429402217848679287710001477628570607365045115109320378361875240579579972453988122662107591082828175346255784726154774457802361578372518932711259909299809499121435344493657100195820847599373284424492653842833434676713621402541083552984275954951834903570624698538699771648140625986885847321436107809927718417085724271060519138270041094053835986596893932518419241494026742259481140504117550555970249366878417145819506698963830951376650704060716046876645325455434808013494744437340698823800735785982053448393437946626696610364359009411727237574970609299828647110660577978565643673887104002355170500918827101454937730701674209536656341231424586543508286772830947272208751956315173756053007779526108085528534847346141957176418986319476864034234427624831792589646641726752933002978488981877283873632953969646239304191684911344446463542373566037775516561324511932372201141027210721379417556474362671618070668078327917731033768753259225598800038573056958043109990667127289843545651084036129498978383573305282753756248046665104604024512622227718137283230662090103674855368792376395625212204050889131053711253094776960372173452839827357354102263179622932700217879611935275017229919359379064315529153055117654979268771815019413373372506505273588824345122956257733474522423961392278233649851452000994476897666120237753714255288394300557627437100777754736358472368077384407578117816552216354917329987228522730992525763456477421984270792729059894654084904222556688130835174111893090726301602198940737909869669076861432787332773764774111083614000810124223649301637066005399505673563974849805604294237446253045715022410085509299232651831190925234340343960156950849304020757045081287941723102855788660208896959956209114807834897717044325340477242271102905805521686873032500177746150600939566367882474586065570673674823665036871230628040383014678067341566505621843461272479972592531809978275593391056481202764187470077584592098302886542367774010285763299293291668426246658238597723989693365059202811804342011329832930707089008740704617078171261241417154593472564015573332577719193438239377131781746547924970295351975757536184138638517548800495905872312321331283411738514138127643075581186802341405034760670483791862646714544479887224899186171752658937243902038213969053559819067955513365013385096778057520449292001995775926810720652839726227040398197934666209893193080661344270467949952922356276921569035372054655056983601643892092187590079156988677900159584787827651566236868244775397945120765468693034577916368846133893475559918543888273670431648685838779678940078684005671956697908799389784043605674966315123110643931471495782916227738119569409666400577734807795283797253478887096978106290313429245420093337175041860812894254574214885744952850881959448703565788810269823096820411502758502231864002614192860744190343786836880497077022893815598896870137890022653929020023400028797948631838914329816752031371129681569673498673441489051519537112424730710869611806653317344426934906950859117579623245242259379780912425883811695940724425024682523647508434012103712809441404576100248308458068047368062506067236400539982106432621005004174581389948377586770690386207045637148490954729307470704869471520992502750768460882994787928361373788351564265358171052791574073467350215278826341214102636464562133224782065958028883425039245369111832818284303682050535033224749297134704630320800311414081041717222960792783987907807880238271577452377146251679528196229561746871703092871610879938941579159904275131880437297318491640409694718835808294601682523919477115766608243692699397382642404125104579285920576079287218915888772589494756280542952591289766047058245613056194770022745848468764616600826497607391253998229914952665890986855993658754535527831714588262115771215293658493938941879737712763853995637604872685669044484951778413385310158894054652774337738227894594413379655468550693258212244835032829184568011460038766530323603104683258493355544791105408715235298676014924692194204424510490341270602185934413041918882679599267635824473423304191490701164955991707456709056773705129945509194248811383417267971074881800512869612003669303507524069816300575464624810568425316379885642132488636626614642878758529316633056060133995319842149418613580106963107978052768327331584473740846272490655577364585623303015461431988648070279644604695046072568962464113612812459081021277305960102241707649619530756646648740576869488091317036881236287170451103556510366579885794867387444204409239768060261726775817446297957747951834064541306870749298830529707136162010350619112290028767818185944388510576468219012922938498354638086392093000254069224619333688182102527716032370463231967625312607802392847085409292447435616380416332550980761551075777115591897535611754661553285466094640500829505944503861518628908071845559070730615474827298085392812910119542973780713309087282514491415332968190896669620921609278472739184008252737913253363243609538058639617232312933013094929311592692982599812790156406021411358094465514188477567176322752904456622573197455992325006848981934418099983638758646242695715351627783615817448611443164122603458086088824257726217225675749997302515403617995326482233738441572836669030383198730920880502103255661580528240824108452562899597357591246456722846370735602432993836959137702951622898741485029553910429268862727675604213094842316103357823233986734087596696216486744957271655550096209041335393755274314063188132921834869180314449462128389604732494440175023792674354489297842139019342150369557007269010677251478068798004581023654671311971175656595391677228055095240643756711039001217352671711820130292964908737938892409403496735577700574414129052444026391406186320205065007526900152094099027715399378891936371869744952466435793888542063613133814731982625921915583454695133626991691327821550002056477555223903994510500453444796678894165332079625050495179422092002900522110003100797744042367595097799336275815798811121739778406043137813477970800805508664189029213687307417166085449644637439094053872287413977653017791373775900139786609746840612627167956661219955144212300804285012134257515550473437454512882876640370867415064109378233014426440886019737085329193271548789033436053187506830038103157746330167019337844831043986952687964509834152937770793904444301401487880120244091303900261166476171605104864864292240429505263327457524074081928413991553014342827929034173165319405995613010367251743769548832606870020932674077856357311111947046427199323187645364280586461488842895419089460309518473961281778285119398659780887254353062932921606990627551230912575616431406683017463890010228880816770603205045537098477219976723253787609781365401734329483333685057597032107268893509438482452209956279820703120234603419017482283445808458024752400802335078249460962942616657139459762572299605150582690611967746173948104396363885194175768523643397649131576640717670935839849764805154754155625123543481795687572370937329163438383416361374688676420188608411262064837313724802330033886836426503520632624249008849201786858500383589832644645221022126059234201908905804177515867661384014952401821293252169349395147049405516966957422458282790717102671241991031438413055311303023960757814450063760409328806656539300925187422017747804490758265774851331025316560804106875034087501336110422582157334347658292968146781657706701025790926447098661135209834922947123813094699784619128983558477654693253252938725070471510479961765055390319005425933310779173386838413809927505121981172185864201198179359501976558726423769617419350579417194135445161664045840440222792362652645682279535989206602195761794545276408510103357050474585711740200901021829083549900441827981510600051756789290218333389683129553334641315367439861541032273421353639272206202858950739378353189293924207055007986634614745144092398785766310824576201116818142486851008176434420149276206823020915379315666897952371666046821398242064497809204998199292510314211691144717921178345646066390091224073830875443329136544527929319666405817697132328489837943960620453034851694856011345481003870154448424185733208738989675914565601936058832087008303721585817395029103189652688579036254767611979452680540983584683898041559606349764199200132176289126403283132334899108558136207323680526247435109767578359548004216404279908622760941428298551090923423833741259704303109975726215569179165707810991161610024166720958816083946570838110206532554629178626363460960168817485787992139790240659282782431417842573245643372094786228172326214372191938772379956571931487797379696317634008979048805716130891274562023620772515041146878266775210653515501794552596718806980114589850112410959825283130573908494507618254272844674246968396346286201967283008940474264536996885424288826810455508359994586708609574940373760335868247820588550771921822576100750395193349410742981877152781073161282448482049561953659856228253164814644652184997647807665894534721910727152768313377425969610684209217095035126305532555651395490866795358844685985720846643987214451669776323472665134621554877449486827456490478650977388864725821532530801586425778587395919536020475980613120946631677349888846174164223926520779858533207302463435735559794617823972660084266789879458711202724343315231142041654089769853431551551535787450700935646111160773961363548358247969986750001765370518596636434866708525155728256665831025982642445474701087575083259785492409774158232801888892159227806616978559245634736848570728704626816945398383851232553845716385585788389487946298711014084938805831478699734853045797101995968618759369972236925350318812297243035253776630173631301886845882850507009915095682942142710692308028818919726805086075265544229709402143795282324418195988365552244401275003489837430237278067066835645883946983699967571894723896678053478220063587612870360016103342189131735648424327232924574936623752360725581794172202950008445829645810048497708318328069966260042376258115601250135230898882460069976047967554132123332369618572996930828802328478847239324061296347099571751352665100795794628565793270797005710885023011513431497751546479689745001751556018969172684035969965644937630987552562954599899697060038693562910039811729976936777298808587279683566544862324401578647098809949865659387331077266418528444437666094191005251113319417522791712410557798594529098254959570902795245572809479076787581411468761143998946152537246214876882928433302416945875934672486769854725232753905684714007413429645193731394540359056305728825911186737721748348979351296686888956648662901857402941409969030687647294465542139536131335354419973698881605673111049003492808687819189780456095099114624081652757774010149197234805836070943418270341020068602670023769204143446463032362032030334281293879858485863050388008174820863795023309919665625788325685301258789455460669300814724678102989074156018867991325259788438019200813936969871700503280484744916446106104267485913206692436091176710773272298709962046405266950624400089246478700732684238646056543505786006047660646988069436199317146431556811036262427977147702191182928525999886701509795063664757652308720590266911975287419955545273979880110785955065135024451323195421904449422660256020016758173846122293818549283587184743667948216849396725123805336465456910544118073698639591146986142302857379394299691376912941595754431909082369994621799879677435934781424509706369105744389622496487317780994864991933127064514810165237838536376081810573987019999539565703842869624914063408917293612734121748653758179129143821276927901089888220871929483360210785815149484175742867938333020453811218474387929554305756965791774667252802376644185076416239036340747316294660963459689785548825251690544465040554389784429561778546311421140829527587043767727038285894554463564566082500773620056261745329724528922210026052489821510497485611538041930526855684563812420274963950735630469693776081606606435928560810422268424455254684286739105913061114941743042241172233686809989596376522916550731663143320701887652694706146747448606837053968831886460652968394318809497104678767971067669271174120961739219471523099819023025865939390057378241563224914477405042790116200931344415011980813273840411037386022929551055651234250424066446082176773773589798154977460237753030702900340163516340822618479277255701803294556150505960124339412876866441983292236907868844762592131723217454497546376929378213256436688454243581334306030680509799488393339788976732664306682569582053305796927230772152839457645154358862432536795935206860005925936660339876892780135513122317153651465357358604242235202690058575644270831349722245845482055380244197119343529860333429573802950632737843057110012509961827572312479436861031917510540326877580109097970389485248167348154908456635963290923298804349370380813242001183240438742699383675161526508460241162661608691759156709119256971946773961247645955765707339342304271617400364172834951243896905146535896840154533440804518637585673370610253329134972464145003668079050474655732106972037214521404131153241836813209313172227945601612198296996763278299942537094551011023442779831296854654591945160313226430951266123201797831455950785704655237630845091072731877150215567947769138689910697937373403390073933972029355359337050084860318211568222852147294414996176351767257050187687547985181790638068923130801701974269735762615685364985824391327523477342137362767909562212091044066597960428928435553320902980255255682257891342330425112995301038088943021002090966822198972501482903676843391626492490419234998549953545527836093727514061451284007334314119651631976077108367870849527159698117600548591217711168452774373887262172076934646294643537279388100011244856012883080426287066009788573564095121551390660630897401143035878808041368654274223405052051598275043220355381700267100235585467409166182484333667841830708135514393443363044937131409178248898427981186040446737509247917300943884651571433872448164468651499764578028229219881941219175575028410286729042745967367360183580680371646929144497285986022892779928004025799995245409171889996094007275586909486573424390579453400181082637547522289290882156393004748611892704357993633536111413932104689234579914355236251039179007509408882459026665828687491294789741901402438660941714347503825734692076859068488912741460778987780068735573182947434682930845999012171776503702723387944824789792517141404295399527865867533325148155210864817375907791468483825835747673794878544393226076668472310707305764059728596175936096739729061505047007735188730944342055877571664491816487091687003523481949424532061919770203207108835360188835354974134270523996676726160958181525565180147986984831623871216488496962013364551068007947898006667599178588347307430688475198194769242324004022929227442454268098683506136783827511315834498759124345083957901585759594805551837694209492003514548070928640091042431652533848908922696340073404004119995773342761468868615920832580733288968984730538909412415253784644655841033949965976696034480946828160246338289227257372489942622503237895998003235854569871569848519793949262491055605783003245635471236688530256016754043014911157506771852885250011624246182697189751604892170129179746890216845253119005424716091184889397433448929506973204596311078506928151799052241054179064320188998025067559860453050079880666475669666791762093696109381470972293136615375826530264713860472695691422078497976037385251655856348985025086030713824318664606117074864590606392299298539317583180697337013037395243074480038394603271709790787550074274547310427659692179271932266895018502108681526749810856795734835747613390095563199937706616582071728498357201556600335234341569492839686568346787813214754164460696681778190365937132239870177149886793943175759237082200288015202711864342130639792941353565704660295361373245478594405579347579830036300671896327742642654734239677267748086033350517675077819910128880040763738874611211019594310375230369348336347546303822394006157341928561428325598551262984308352234159536522403574896986962388530391710065224190424307177498072212022214870196227516642343024217907607244807405887929222615283847336250698671309276877853438528237519929618000471146972276608063453407615848656305639900146793745294856650092487908960663690340383325033486604370379782941301001347713560331526170914008054516760011076200718025366968888412702176403081663345240865005568718270367049735029169859242869811350365129628753935712323295859129925370282038022865907018041602057454787496597727217627188981664354061920630462991183050630067845291220183987166044876054258950090264419010456176713889656452848475500938958915891532734317462592729595772580863201276966946724136225218908910304469442521080116242201239903537452402213546087322475804579094162559861822329517383762946442601813012566812510919641881364521390788904322121726933117360329991996593409516182983156828437468818319408450163460917453203999953271533308066733516623472132543963652063711077702069584737599102344346896159353896580555179548805420023656992442166845781166880889944131147968692277072332075662173297965973259698515863256868307598369623849525436656399737316912665062388523232525045036571746556887492568445639368477790032934905848836972609502287027032182112139804156185499986232213790084472316212826715537824264113536865936986515021259776472839705902101646858263069514250813577501917109782963383091945855105961814082700834366888394978596742898370105672699085537302740256181493402100349360717953572515742887442717652766285531639945343163347555933434814450544344587783515600432205665794900765569010160873564787668166723846321856663529762057311190990595972154521508793716597256546382245110255148779576772279599044334407552549719305518361801289270830148037325209611777341209261728854906037862885489495250008441565472232294790345251617792624053513612342370165190109484994751136005289172369972334808355011589372221605771695967749165639798510264811378176392953224747990383711268070271933798101856634096309884555980150725216643978699804061689948596699802147527483048425282994043963382084681309980254863959017004849879815980399410944722939554342603516859957563817906830535697892327786603109658107437646417110100664277755981325093471960038549370487213698274841201161954593270262699056579247810912209488391880454413619463796447109776558045867432488699708486226387608819474496201270977608602609409838735377421037039513318804108183818453920205041272858025989305142152632311912985298861757637081703197094797199906973754329087637262238214551070069776294511373955032370196446515044401037190937868785391910383800988255361342673303095400057888540585122952216832383732453606623916636498215603244147238960476126734034549925420695687749640274750937103508220072245709759121010276947606107350329820721346006729512274426468303045741153408057129844338965472794216028859907007964960344390517954373129618360182340487922464152887858495682939739483841945440207187156361838888069019754255118978972718483586684856982179023282456823830640995704693445379763044447154048107982262864397016863851585562073350705756165368438771144986227621826434953887917822930158282611043507688421613490427340738317197688391317130522445433474974768674421561747686356361336462298520736741200342662978994524443550443934194537575469267253368802286774097472090801516835573113543147340254544890561203439347652155020704594137445380413221093265546304374194220164361174457093092501188745077700414172705989128123908576936618012149637869548047628568571805398536055211236392934735574607604738120466093933486630933032061201281496595069913289631940760404635113044614912817112791469131217105404432612411634490345756829651443916352155723336036867387086758802647559561657054928941995330995092321010329370374980856776366461654517067102154458382066616113449700945257144267520913687217189396630900016328063818192883851694504827705364240260229686838731293401243335754062033463272677907970768745546038398780768477099019350740790503346979006779303914279870572933959164362643345275608818561548306085633355173560339060476874873002689216106695132010024984649378119588513148688882485861201772149613773746388814319376021214616423932542917225227299296128550983782437840458572590489493625046119306846899798162245821543247375059559589238333035210997236127752489624564903006021721130261511478588692954683908755531863415315483568951642228646234062547628628920775385387830728078088186092672471613824436699175282234101576106283937057777771975808346757726011487588920463984328843338488058661891245528704014568387234233300526328468815759359227175346875154382469164160876544257631483457984638526894937067557410702917483990166178769611660616449203706045574518401762432188827879777049057035695347838022403335565779116022717793691355604905344880457011148667216456239921509489674514568719477535171000801068001144127535299465947284093743650253836824852570036705460750947940024622934908741507147306858166145212223891556305427590299465655299470225344260390620194406312768434679027427205864943597200153751995686375839664227053176594542834125262634512862605046377801927238141157861522766346499038121474959147043054481545928394952841813335462715839487008728821405607696424009980819641541598686490300689105292590717934243243660332674083852223898269173690946357581328495177939135240733076271445904108673034753291074911142420925081635197483714960594453403859597918308859248044872345660078946508495504231780698580830557090444621564930900023685346415551958058500601744789019252213643457163226112792646899547041540272897866981525893292942663725392834813027089528486857888943043160361175716048543720261149741611053068988430904280774935954996196443995986690091631033415285743694681652808387107476321446488379633215525803286052451898561402516910450059555053221419680369553657157099744238836798298561469524742597102507400463124600037121391944176018955014806576069485538759293185729053295864422671187859967073860131510584202454590017353714738547098379419190728988187800822126630565724980074624172722461841449541970058807703001226127409900364410409731002423640792143454986914072045849995632583986009926991657570748063631775812844364210805152244428154053600192091264209357645847154319114214199272144813006692599732111191788148112310833535725001730036312877877461832612548434514291590378898319847371599240845860123388223404947191982409383338007848440929855118786827894655439777245874961840360573667389765358755988608192567199211691808650076829890688008227860830937115548064688888961490321330979251139014539972220395135660405711114193730371677961995162956704349022692166996327819398844030680828778800383788057836735517671276592363538612896541229904485001221723126833162055313943323445784946863824292341676328472930000554430173225757013124967853773848118022249594275704416813817571707713144444907697654553020501964258214439556010953771676595113978721697807004667155063761016599685767736195474680521077559463190596484485378600046036416597530282903372321510322182111652801567290606708709738246474195141562877577457290505731660821505795056495116894256395330448537742447299177582970134894078540512105925409286003413429949246501921089200057730098629447931796044458704073824721364218555007921653264311664515273818545713913665889417146292152958222421732454823662015375339151937830112838535406138941264182814826560359560151668126469635369759647637032086900572575233653938681665344790890818290216274748982890094450955711575899775680269650279852886137498365560309992525298692462912534311063969114473061488879789282598724455598861931106368505928376308389069531162183733039106179494811843128611020004787253476963838558351114290430701646940572153377466421664614898549149526908951282423660836838031873040950462844266451214713697945914205654219161581473740913477376846510301165121695357964026980084277761016347258557717617903842349231199328199546209174954071439215082896041580189516794702067250123172215779441102558601474636351476296286293724619152880288296297337159561567005280465852475809357579446651385988405128002589438310504135666588283164705562608253708115789292716606300134336469645275547828077293092158656651468033475565101001227087071313360399638988376682799513262838082665928764612978374614366683150814965973824388828853595234616819276844749041344940470694318222045143043374270793098844101392247320497284018486311367181729459000611405870667827220770721719489100757971665848625824475772583799180044933451894272211676365306751292521523496727645197798620715309326179526506975640688400393173788401257630922136944185875307412821282893358773382589251459515629135700739964486622554084824967277336162567998607830594335385453064280253699867808944502342990628422893271196156221232192773170604861625780614089422590384678175698975487317880401428976375884364391241831295291468849073769537867427531071905187528639532850236854053610517052907466760479374669855890712320056649820101361780140923693880548911934292270628393970294257389067422565755839562963521875277548597760475408301819468974203518291686434770350270521518929478021273812551556755532676281691995275742422559404527647924037221598712066684842631211327785761037646073255551071515826283226089866620139022450204126781979747858176223066103191081468941668804221674949883852182911035756910212878555971102180782800310825794919365309718887122260984096172769193531162919937558816187187409083379648299778983187525130895262669517727280818940211487897278806493575404965360480899593435267834367122963046219050480697778017246081627629117611139042469352676311180580367334661977775165563009328353657614802908890084677885078234633362799124536391502134592859223123794830296985994058206347504141194117871813542659302764578987874007894260378205700999381629015204531267305907300196438665862583662667473679344746446529660038977895529793704742783700181027769787174807688729955043439315093947606200119372160171240255996812907369119209888796405959592177031943446912848133514573493400392133846440989324308995328216829247233924933326163082381873738313949306437227545796452268748610989794812580695111822071683033865189492672101441630738321926919687521032717043873305528933313852907511980717715488119630582222786992106757255071254198991478366391357958384112688574376284391282411271422007787315050012643590403609806794938581350027415601237752853765100723645517491996333520309580528815028572614342204051402099501545743676988825371631375572294256811053862054197308957499257637918840231091468958815455111987355006763363547775725582261999346778907899180436480426444003275127249572490778464178327780852833643087361971048258636131109262957623334604421307026556328939063500455768885273460406076416568583765293803928778972843211134923584506621383761840539515421201522303491803499070490466761432893742654256295559171284264436066610985409643890923498982197615727874977642049755389641363201872066518618915496679396360117367657033130027483734051435505036868055133395826009318664963386969588808743289828569589404165956882367079180919261041295856918130743992995402077542879432382901132116987164513753348700459892669776331549137680780861414436905758069759684523612996831042692886478028968953347086705207352975891690301442471431982056628172682896641620544232319058116031542259974768880366826033788514110886409206931965707813101007603634665511092400694391437438254662697239953470840963408921406690519676443112450798878554399200724488649559062640837996396745897301931162592134192940249107081810151911991501479619431288457961675368522699094641158745639449993506227564743726190962936877021668184468986909022771306546649597446609327913537393693714816675219184195084644918662670055366944813129042996010987789755160052390381198166572265122811619371667555651276841995277308207311917195730828190383974542362358044382382363428412070700224679089041470027275384807569379438073898041782835170562692125127409874391072554906293603962549525813002069213939323633163785651062555761244004904522455928028122669440161920431604635550649947885140251698492151357138057214934385105750466321206935279579071428722995323180984735945458968898068144510080021267045038366673786561992282326142512821687287660898759216154020931185006004894019277642425023434069681750348807621559646608390039473522420688944524488686202600758471753853598655940602103666281777753220660708398390028896602323582218760832177557236603906340252146203643914037208893004620693061125153376094026462901682517066273585853727829398078972045801336574209511149786051173000523939659539484489948237657894270583007411949894143020872584128165951453485203614353382363513441937857148424526891547362087223754756914936762962361441251457083335601523133681703486157937824369870929246004393576188418784754703906599996661714763430208919594705074114542331490486819345699930777375858522912389884184882613523140589951800588383247334235690354249073323995666880597888575232930874551243246315099663499187781065383946138741807834485869124149590101448987730974377289918120461394119880947228411437234917183036710868015520314847449940995295333749258827765523192791386449942388572782636032403713412907769061553786908931907767804137127353958933267293936063642890798302236890731982493744693141076950546921966325536189495842211144456716826251007950624444203618436176791168567108517755991950650241073202823353064633901312103171322133961891682945256890049883560282632535035727256896794917563559356889540147819776346068973895840898222727675735302554541355732852052389050400738735102129303045446003157875029503876602576095716836600947236687569703761219148806445188412653105331990470348754709317672906709044659707636488185868858330030723604350787204161676142141276089095613546630944776077788156137584491725545082658816281317170864601687290068356960825642699144043017494858274571002308209592626411205715613215036661181708436599848153260366966582278629092412635493125527485867847362977860739531279039249829042941693370909411620163795558717722009777644170306177507887937932690384915126687671806138097784138051411914706741355977931249107103992847839385796629889547360698474249680441195647343520834725707539902350852493321913289774416825211844542831868345930181535751222239476574938950204517792725472630726681703121871625726476577870625628133634330276952777262340438001228552560721664089350352494977010567964185602783975883656277269468137939069967152892952879837753082999003567690218402857884227595964604939456987901416720084483778795993963478867711872613848356418608147595934273746553252720001589936888726843968645782319802552529051372484189320000567341373979496704016449004421907507224483765940366537769006447458845836073556531049550488735168874279642503404093828921162042455773122886412915143664231002321182057267480724011135984572877489723100577922321988215556801561254566974016294472568612493871197848572616821047070582346169522917467977143752459656451014747130360907378901787212735686275750504713792305359044452357137718894980810220023344443773738383059788238459403033614612761883784722457758520096497874876540235091008095656597218709699710761262438834840381256338470049025230527863538415091963174992961530706077406700296135449792965590594232158384469910830307922487981226889585402353994776530694918258449258423292657674969604501068729497429978711416314340111384609228897816216267014019592305718865743941968693488836619545574036449127647039256302050873182626343909494448946667257396954359924942403007563315292260070880873457066236678445285639747840581819895874117984904824785356782908252968337908615969164783203445074594071917128730283019908138735915982839620512609999716081222767895747852854429048940465477892902705585182836694497887981172853699034447924516356383765561382164008315521815769216776866872796365185321556322117471647357387706844617670474504015658161408588702346959730053336230923744789191839712754905296935933747003056634896437176744813346056997368612005980733312387040837049440058171304715703597474894764332074738573585484158236542789263890228605379662253871214303138104421250027870393931655282158539556915217621110522041806823583435631746312812574251416387198425380269813142423217693056997720961201072855410591252212494370639383093956776906286800214721433171350440794552384771657652326084752034953256417444450313660233460382246943699147278802356144549451032930323456366183422737424205785894961476532613564026751964301949763057252463685877832723681890182923037462303708685708297314449250158630672669607498086754098312151008054142740485173090929195599162059600139677384625033551424571136464241843627953708608618326751944250309977002219448654148256591782270422924386533069520687374923052403134748371728808978160572922808261223043160496645339457597017166525234435100590074638561313116314228686628395162765846491641938025538047124960225376838649034653417809050756207939363605942107627362761709529056571991441688728673789024756340149499504351389154970038671852090589903077940916240179093075759009105151937634770999999990947446986165663704626591675635937362428433592768338806396516266819024036018802793308020124926316390744367372811474544688912727456128412546570994914630966599569187335381593714311476643314071797346445501102028195583448454835205793977963269261638805404195769014772727411382491130226492549198202529110600334112123925964059823676944529627625392893772036217469039676799330886980841785449205841332503806255041333486953594171321362822684534027899817841095921377523866369868467555754823016600452457425633656473490035660979775785373518641985308393962766798564758381174583560331571710634105725909024390491667320352824519336552118450662318527959265542371676357297653500718992356967736266098578068034701961888972905792538295883615617137798619605808339875464022509423930084078707949142956761963628653311931456495195383537532980882350185886906619969394307559358709344577819567577270835102039904282648319207119072750233550126894350608223178008915808926014744824860376261005054001589816733333253684835813375638775071086365158327149656622666110530466397997207317020886560861404709657488610999116590760401443730512128626579655941178037348844369641605391282241474470771761403825688426624175461513622554006344969704580974446660703170849872498764718842691625443625424301866926689364138955230291800528282603063265534396371163670473725561553868366703941089466894782557824592201651473097945597881566054486397465473519318351348060912772292124848117019883613768513409767168896973438793359318441460262354920245041877295999167779069719682002368607269296783936708058154211329353542452818217761817818090654217566043050034485765995343091429292790844427259836054814592064012775586390612289457445992879180653008445185076168171671417465663069810901839427967671927415506686331233725077353387700283705694512353261061580582989241576708911876879784595166330247451901783319551653944441983632310885460481142813972912475492032700073356904123233727755430734089426294730185666029383415752801287311340515392009512829346197240870519286478355379139311811062269472268920855991012984802800760520640013171545808673635810830741068777949100961757899995904324875745674187167975074582092244631397875766281708807755171779886499802672979518159202182877091264817588992932494223005561625082622208590812308783969773314743157009777362136357206326994546793208137473540809499376371501646339749539577710032835843408668052649915893410269151420509870575185745213007341785193703529790864132693329766252485168885420107535529590901208255733783366832030451738262934423023773945770056301645758207098122342525338302981381336031119946706505536461146196445401376807248192073691152718569592942616815789958520100588137362348781725633931272709491664038213218378436163807523319415075737978668905350118908815040376504741863776835770067249014286719201607169111519238396825255174971591299939082304257074889744442591886346455312281808099501226939336130628958688260422633861556986384307999363462209564590891516864205308277330110199076643278788919705668311384760179860574709379573976335368908095310047074249956425596818396603943309203940605630010744922376551785041990083843260256691360810904774104232335558820146412282057774705815457988764288450635937409823924707182288534849525755526347004701876258686321518338270686868276427801872184827805829569696165206132398911644688863513182883572316696883763972217556378591471672452599456499072091655935501270380054799782985083432402736078988498835716149000713469824393661057871935949929550890004589606509295260229025914878854685925546763359306425233825568393245072436882426099298134621935753524546522480916568017265601235755285161687657633768390033366832264251365444564672501325177140918096512558631957171032410259420230378968969436914056592269196390629047340004064099172128680987720642869401571984855194535022291514396488549444898323818007653893448125569999163763575629264859327174681594754869589201516341497392912221516838976430507834245494631081501748965409478567805824428187063191684858922257359322995665169475780892861237783304952852383992607568077557867578715908339107809446904087889334784715268869466262892769731053446762358700430770387728971198373082196657784175455210850379477119464355482017610896732448267562882994390666476102296526868116040496448804223147222728407637880494880470596776204815583443513586316646479796764438659900533452671552252927944682529888159868082251543894408629510563793721589875006121809978067908087946582190058124568413454527647210171444385454499525731822631221984749196563899267860526550423239578395605782994096587483862825429248100437192754548365645805321974834761224195291283505074576611156993223990296130153274971812237226636983702977966438678938577891201400259883938795455644696240110587810747212028254542071146391520073600749092252999964443726099827789939705385861957481222824208203066688261338097720727958719852106055134700999113484442405761108972632133618863574280789810201784647291979514006384298688711779520623032795758966155268334947137086994627443537284010916763812154263249656345151956321200810144240813639923279713309488440841034156688230419516679918865127361496985368387008354920919437019257362006283593841821661049969473724662961686759997112630010195935052670134774266383369966300784149507819652042172895531369270569980208935069762468397565166081557482290791226104893523307773030640103654944489245275764998006709056370307287812196273790555706312666197123090042425184691157805566581667065109567234743152791383009164151885258295050904142532885979455850991910320383462267098968470540880096988603885135338055629537480042051388290780726411404463848703386968212963989707861795641916067342956802578223632897312393406854737190643248976893205444234534006283004702995109225988936810959592137036284443047684200765991630500188877731968693185928294630890892751209162456943328410036788682534763138751142667598658951973900917894879942364194160438225751298753521535956621492180901914297509393428047372809554489063025618187833723934656230320879087550425435246026491301922329297022490622328639714155253753648635526640736991572330854052954809958871940673909031504139809152449386732289562959719704645570792183002098936064573383983945893651131993376160883691554217289685918899023405357275587380624425584084263880453039330694148491701310430401768921760706382595246991987088252317198375250162567196789424672319347760962686265158218554456306465079893371464007735688968962045681652176050358573878950639736280369425482350404919638034834567649153276184888858934794053038072412749315346933267471089519089781171130268840749003236998596883068580552521321268779600648361202757119647424274119740288240023683202653467846311058560016695266498454472533768042684418925007598250600598555454977955538824333095542654278745922502997104684529672447853245242826487625723835146608037547041438905316069418977940325523294826240686998472239549314191681285825237280847889713199755084865382370331704210872806248978395624239486420491221900915920711800162607368167873303763605482446714096355780769624569321472938749573429979655606696290804044687449849389238520164142177575967424921725363208887595467391331512696155794287836269200702335904312000094416607605976639299204705933094715048509849000999306312666622915385280900390975012381640613659228905485504426396426081847198211492840747080178984813187918070818458580807439307782386166768713364609774671062713076596220096693161570542275375626404305377562057942566241861997172642180021948410928415060604503805866324059812864853388991177524601424551199539885377600381412032788124113499083480510541533823967231923143584311682581480293813790359998169665537861371571369790757113262963386763075232716818217422599806651767712697278192054427077256837035074246434865319037513280753008619035982136577089426821869819751313037973764310456788520172128459476051622574409025588208240415958685701673266076012185906102211362941094902364156645183910065209542625692209500912902021167014064091855829552201143731749053207982668461764467416069118689602372804168243270115544530392888505643279049865221091711076442129436229842367907913915005506547527648148712724530050809691037689591017877190795796531669276301712096317501323347691337421716525451746475051386824499244999318450063677864597403724975608734397513695804152381960281961469248579905253463590583669900888243274144197725607275101787003251930902614386018864927596858296174834424975408250474397732951123768824754320879011049488216649948728284253178748066321266678337693691163655757119900343256622750732388204244116541707396233142970525694040694346763692147148144427592492543467130475580921853370275953986464765190762151842642111428313754092885493080313341875720864745815669909591837071639711683483408340988114945690176758578318047460739217961529749502540265614192790462882186977772004208191131628818916157966571185316054608663774062905690398176061417411710670582178227139680617079286859791216643956794664367457014255666303328688419607119872462611332597752569033419647193221938330373562898239046389586106066530753037563755379303201809184888076622320696620615657267440857629198435905630872223419376106089502601519252001055143215861366751054974540019142927576075853403824546079002298237757827149203900892048241146919094774892358527075558052510444207396093284697971441960652173374307242629762546784468496507594325318186040734330425498169064111527222818042082026981347100553564396432886975395458995410862582726812113411094064154121057359774501506088916476476102983684873002110948521216483112738556524048246868126063661602312309643776890614456887546086707761025521327137314357714196530604559238525025181135999255271740864225798548316164622494171140758438186859381615864072610869295752055717784619694823537481415848285991370444862074728348174847185308335247885432235577667070470030434257480201342740900400195377610723164962203914311201235444663875149365437083078385303014318089944999866328795502688431094335743540037698830502099191237379318723245269726752516507419487946548622505956343329130263798541963655948734372896191806783114706800905798654192516824271201644437769977045202420121793017960055838892144357003374335378999907480857322383291616170713820935976084145684155049456226012940827089740646229136818649576984973912833102723553468799361288363109297703657214809996886857610302831197797395519314411539137822951073163620576192636192867910269547252036563045615155577280814412178422154051958846931831691854223856828854982522446591202784122304695059928559470990012427149787868259642610037123989060542226582166828931594257292464072482229902312129956847926130696413249314395868354359704337176877736825790325938750689695951136397335639275401280967049707283363515675438834621924754729228250022863499870657771003405335159597081890703395072129802870915334963052477683426447318030694387562209694738455392985339555911762965223649929210166889900031886806772007676874999604330026814005800428325839636498879418482387210713465087940425153063217280739057039795819631697261937708641545598043825873635472246199409849689668924149220790019560014837877809472269811188180827273205928785336006859363327503533378496172662796480741697243535410097048924769404976658443623380905734349427380192053599709619043614749813018685367192787574907729598400404490813470381749614271936410489966436040521489302019957636951364185598949940538887410907913116300110469384178494358671039947984329810090495866384146504770791747875933721818541626265390402521398861740288289862855971021974138547054448772728698129325060391307978300240872176988535175605999469042599278015717607666131399738981043872678101369741175629697859150460200712461145711049566812138547849514441983653511063202756524209699843942872750637456240314694906618800835669176925456883018044075311675904687629560673310737653379222352593278298527331699432798921755605961020027868733077499838598816059066011889403443432868779226126242432585356040612595405421941053429882623669782348835522198340349200183426277219733634180561091434647339568203917157322661048146075465459840432996966250775903223847014446069454531068131190567838971933821579584734316639965667218825524258507564375447703298018523433277724625986197925738387344510573759434822441600919545305761826915664563422944980649588618300619362515338170300636559249733291232739472795535505193350913210553329079150385896099354325560109713855988978916468890179054529635919203838843225454869914891833078040939300388066663856223908539766189947815750834715982147128913080810953359073539949563510214077877753959840380349467215946425223890794292908062762826941423778245317650614901370442944402137645567212449927552520509107166814451544592480863560502921872356478484732881443768009360281142104962050649200963075602311149064954382770971914516908842059119051354489497871281394991585560049657860421288727717455344123925873808040588311888211775560692480284369374843832883041443776737048691936960003572003016303680246722470849975038173380592678252888071655013399302206963146731699443390738584265784807714488957365111431265391463365901420230213657783744378339336504357616777471242004029791664552143601011780451112370562791497155583593432441173503308468486695993246066043404074462971202622134820715292146502049316915737037190440927974609394777945742396737044426504076241965317032759764332758098987526434798500651549208410441564251731872268895061268318217501029123511207954025061718431909502867819199990539511517154398776080431332987139762983880549273033035078048685513508590940407338732845045604534245899792754960549092882350113940938462813858732316574187734564667940768351947145587018348115030636171092179754495630414837864919963249932547720636207719477057333815786697825111993784061240400810863079092062763505446048642115079635035696544904132878827438183277793027540847929807720216543999369897081265017234365033248985003674504231936371728226500844586479605396883891784520222476854416589534117956695698271297082664989348826279336477878000633759204445248629049376890590880142146830863161352264371039643194519245849138848998267147770832993661811304653869895683020189117849053583511122683846057428790692673103290230219224276347995755000281441648627613611294752103907735672218533651077964173217630805486122486726898160929235326657145035559184525251358707392483017497927411124834143750199964323198688201624476599001034341729741179064127585340979365723607497323173906605510546075423981834785577377118524452235892047107319127606882955394144028259620345957737953398977633348635785267663510309501921185680008410646555620242435103368747823280786733236219361636492348460606955945469932443731367574811435975332089288445805039280797687917244177042734352295772289072001668380075667640924484202272880291325416456276566833634113428854368106322894727598389665647724994829757125460124104572581705817272845418912316247230830287093463009754534864081072561397199300940045860431730771683678691818226744275917122554166917109457179637254095084123833963347185608475968677643822802482877134874872311504454965363785694787326441910420727854376865926185339185919295799513716068223374719404512623803220549496516212085078570946819105181496042955774948343906375976032855326820685964151256020865145946325780791773766430328489898140634908390072845779018662353235850855542487015809289279850031606288660161603994343384184763597746799794111971488391654329538579131463118747944910620763474858155510515783224075947918667350538032685983675451183196655489578750987984827446298755596944798645653439399500131592710604076580286882024230790874020336572085079605487070837673058295250359905660868190549290430476581489310561805291241862877892881926788787946290125850474874660672435582464058459924857742906254361385386144588283810621110590897710427360239973724438118390061702975774045821379839842092917269116810575103117314987732774117940469251190179508398114489373061893297390022821414588485323320963775707420196873476723671095036789574129336489617098704994247062977718769012157117501081548946993756989155301364556188200502547467567291050030225299145958133099606236503738721548683749259320821203814385595855853704551442800486285234488721413047655999082213911614236129318036979995555812915914187690192693658001790753868331112983965763276579213283571974593523109364311783055692537145067777373874431236973423273649872318658343890379569342359697878490539215926620813965843459553593889614685520094783849418427555970309389440801770529868431082072523716089507713384572820223868381008416849895392521684296381222012655975160272875198869670348600566355799953344041425081764388155064838435839417901675427491505283472134138054949117147163658244651076271895996833959018407641627048896809291733831302763471818385365445143641609618420832975116938146188398790971584541449894085478157289016075462938215553954724825507553797180988308167720193738525544477365682458075307370418847732803085988833296069869990698470874025978743671941082930732404134770602681532504595386988643890968477015535294368539847311710430154185207147015601434334104865055367991912384491520655974943622517518178751882079895583692511460040260257248903931203214395743403467132434846586617453476457769872538006152998920029270698117018140058351373403696493042930446686259432816185420800947137403183402670092206524471791979872756273789695582446214981875745165015986571420531987722292018471241560176719991712864929637345949917715645517204310559865216036259864844055680801978151001483973696336408497143186641918479992957605589522134295639138125866426707246113172761709441905897028883094183845009133743304983494629040719643734964853440714397099962974891933578697717329467427338660354823641678438336083569566164002248431246509341988861830760661658514845745352962721941407190642455607689469722475990028409666787718649996916688075295546451607931694211873497261210541083356544506630362656029718465727119195664007267629830566183256451324549896393876702885147120203609104810057163261362367403722981115765900410504852614273234267633188848438536930181781971783520950506507053147543833181905651970873007171708961955538167754593472749721446208438103267449453723721716379958676633341022270233194583422464889518615005670573178072695076422548708434709031678350319700861784945165648181551074002915680899952493437847698088294405313819462219224066589652700803115373159439421412283143261783193791036803720654416565778847372269845977459506659694563454174456386849202093337071868545307996117796666662624100282127696728656758118256313650599221787016701004674013823760850443402519138356403321502878536619148639355517844484502191640052706099226150237060742667168513694666909831500509800796396060558200791449378508531829148579454484061693600063646390827825827879309330719816454392654677927547983400626801537178530733463843654272155370753632598906658150153018170113397937195016677091576499923359126785282700746367070027203930858932833756937413444800550794954666818315454171804262944658707289205402365478236710181388290382231700342423785576518176572403603285350313690806569293332583816270536972004753708616848928131723203085730322324674635929309030854373265891268015449628688699469431398257800878939039592937843647874154142166531581005591390613724650518907622317223656258542562571290023223077751062686929458378193859055460430987404398382820508869586792645804670809203458883746655919752401876027619763184228956705216230440930942233363895169698844144913612560785279842853521326286867345968335716364682647110579345769341323845252648826656707993644834203002282382405558804515413501901669970568808766924025792081726189801995365450681972760379761478800471779349723999049859029848548492251641737287892203295622521085010073720462899577791176892752210397066008987940658547563606871564358727920996865807661552477521778544097458482497385712403869969172693176055129811642243199213707189459271706200736715999777757677362294786438221183219014559092483184791314708911510434510789596252851311546377004464660163518746714423363569880893369822529809089972256019990265403377206467614361867819477587085104745846192624199034352656923483760336495265037661203242522808621978067587526213999428188319046668933643278743048485764330059326955659450683830258180543076818743894583737381964361139976561242666290564241773413436803927386961039628614542126230372523614883769145779504394434662632493042710572720934306743770458476215563014995483486929913418137267528446917524889168184894079535718293746170451860678393613421552893436494108501551550301022644892787184613430239073836976909031011822025054622600579602838877536072262771331738930901893405349430539667965834033284337327876423479535223767605492481058710332929903644229527294726559074348749992543948947145837428853489407933417742961604510731954058744553773311872144970212633786386461411620684705521880583545538761074241196797793749771956185756958647217122654417050762028421344330608206062602168835637281980530910768807250845566914452988649603187201857219246021906391173337396693517404278709546359625823354751837496778055967951066186698497656370190488863185023485480846174346760561642425645352893044704437368222881410649574037503391954885218507899717499245105811243148761685386983514123384508446598566791054528107390856127488729365309395908605667624248368771317939696878399218461438177156732760077844025781933778563983847922429128069898507851722178203176353887474281763043759114258673092772185971759962927936511844165083771634066128918550746355988102358862574823254635987382809889432605575516641510157630187950593624477050768079593203969160129683556114718094974589850846218334719168639761208645398864148903349765808504218882000269556744298285062457607391145416469682501461557206783715680643049731746341986574104458010368233537836122063081613694753533859136302613927681498966648454521525518268034358273176023544845998939599639077536873515697145379399709592065478046372059634817621059320604318038686923267280359617741087979977174942419451093592179164550373204299214229720919590085951828710132635998610264091790624448441313327096968461078868446274785020212209554678492511589309487743934090627769667245558433382133915159568603332726035914448833872035975051900422774724352005459574187767928170807561876819211931447644512645153832570061878062465146712715061236224532137350127534073619545083642029505910703422851818617106027425072248007528477969067985596226092601742002929805104175047231218845066341539173217206122017179718662036362605836552455021146977680988928828857781887848428481457141997026039753434435198919294284322958233059908706994314110922314779980462246551276812000543046932189479848597027700484813891042354973909350678800506297373269870825161665393204541272685036927933559583648720102523713855393978485010863539724013765431313251510257471031592259037952320940562439034310190577073851380632326956861990151564326022994089540280058703782472570287782313066722948988361069388423176640643602274000909602336463964547778834741129954766846869870666676709300813217785568397390014156355942317994714406485597448730503187906691665870229145878943518976084548799422998603011904327631724260351261855242278495771804044025567597760288300135785016019983973596250114815462085524715777414297926319039840764019122768712620819565531817172697739057495891869680602848856934215252172688534344080915848477003164337277117610741552850234861788106935643498484842474807113752137650263023508419776007495377318060415888141450404604674431093780238081924677938726201350335441636405172484963982434990042660468319721039262902738926673122289646168845654585803629576156672703630403477689861951729861247661660707498909026322518353741460559139997694969593907850711952125667906853922114335241520183757462469073336525762909501073283097671441608731327261321129363930138837207679777411907784109658494511580969307047969336918820248195410246712587933657918373226449281554862451863286593766874322356979623004948237701126555170041460915525948241551021235156889039217448255035510488385165533767568906098682021040478176005934208923430392412574391935340866070868748027702823947062357667135705531962774071770702279724991477557494594078585044815612696902048044661886527364479664779912382900924859318204666826141557689393761095297491601259112478924247815875729279504271379159167354032918926658992608792084482047989219718642948485131325732979150181999972396002571389260811144176848560451084271209747992325564384257878981641599671945448979920051564852110623999520629548815659476394499712179366483840923971137830616773253853948718184315729502238112990581471833328171200574222655776443635443077000198998674027650636870020472436006446944529019193102164980221308591684249598972188499167356461727990715063590639063964733448657337343304080849425172303475121506940119740059430550492540911357743182787115760308862097812650855109920686045403342523044989236599061391137739318611568169940065781121590436964231785340251606825760882588085265356163830593400212664192629041419648281320774722647124175970438433878134716694284066266982335827871133165559698028045450452221522757811605599457594067188236707082808710072046487452637023432717331600931475484252592570931688205532680330533304074903419552491386134059781463492638936563960355357440884832597056192337426182467078843558803101094323783015132157850466603916007614806842165078469431957525969527020667508423707093961620085949315868630772430767060957845070979493708822234545807891544375443855557085234980356290006152821582711349011470757955107675153557408239204844677194100478035639850378025976881810085081450424188224768884356516023184916867645176586103000339921146270783375418963259761818040019186615529371760604721635552221746363281796445044186895814278301946512598067889705973232451861542297739964673352621256140407675395877428664233312640045503155655330241798789886254962880186905216572033495683210214600293978380336388006996394686654434876798971371668635598153147127681582632539563614696513994478565619311819503580339256761393020528086236717138909174127438315033193805842003643411397165451046418114256314582704358047853449217336948292301685788825045106570803464840874479555629012478741652745486305717787211432381146704716840226611320906244217363380333081488249227204029107240483224417981515912908434616352641339386310095736041987538774908768809595632773757058814146826592661902247304347420817526285939127024260671305330206464326246379110972410474806629390270932671588101585000001087368645632566366580199412079900106968128533591911687976125822308169607364766822202003749706539577099588188936034848577207904313614114846583711900415028714421500415250982089736888505792467696839186281493572820778103018541691567484871343927062676142645858780270582958054471642707646629333881596478590940016373662278796706308438960953585735882872204498397108942614680072428352543515361958901558291512630639110099462896857663801445154507011051502709772703505013170934734665340443901230110654546108867694024142408718176390096511602274050009877569306977473637805466385131484036210496151879713455294995225675285078909322359188500551681049333688469976654407910087174581334414596295793586600230191463805301392098427006932858586080567297861559431558783859416190784494998041921640654826156706024739800364987562911961625643662619143130176226268130816366604143122679164509004216025540133759989014823645171168545007796005653363987748400881800177360475554399973128780581223709760361127979028585195589717908754249316521097065712369783802140504529398069062060066096147526794724133193102452754094942306074158652491960364422422097723046995588273445683338544745297743534738746740333239941236745279967493725129046752162636119965711072435934558205196368041508879102874820951402152769357912827675663058670285839687742804224974820098401277517323701418032058946635893412360822717284910745999354354229800775270337596557318317463019893886060291910024880017385371088256411854714447592700380253614375257608857110885119596519741079124558356157481392650838970500910197657743575987867529062331736276714855208328338736440565189269330911720554381807709940572695464030006594812302618790954183078559093141157419281587974584248520810504418180414229386357495205439408247002751791754371195303538970671697155776529585365356786503448467536004011894199572813581047601104970093605511374220525171235582083326696183768144440115662026388723372237599956875837059888435051997406368462425923086524006059853362310096835177880500633924730512157908894719944158774463648969758220724936681633858178450955213898004016455125543921028820143970798920254228352993243550922118538708351160228377005795980727029690642781054816361875914934049514909301308691160798404181801768077522207495477190356352266662189606208206874419264198295659258801362726115021930282388425122498011707910794872128512652967116956007827741593193478231692464795142109994129089961412652071879606070582391497651598880333924852805263709449511802606532230846904344567694130664638245093695531253973907567964561232585210032885203156702586766856846753973115679961665478252985967299653093613073003819212085795589540310584914866820299081234994657195712066631766934197542290374356708296819623644859997286033287392900460674686393032917846249454420935343413613285635379861846482489777144539991150305110669564327647746721270861247009492102872245141643213686051892703905080004559389435259210143424638055717322047311819777873931129022205394859496092373022122570826703865602891395577229394374812338164823306717868207901371128283529585195368308396164162190000788049395652589509818539719043051517223361088125505389427509543578351772995948156922305102706999393268954408887194558379078095725437568733347854117716103649900763456866093843238664580266866137111253254116989134939163748814373743647750130754504647973114870348553676750377727967441461015878224893975827892783090081237854029759172176511040498684173667695541127989845687266340146415265695500836632701937664958949294829575003783818320231701888219809216241958665181553947039054178577110803280839376433580209682555151029357413007556977745680392454707030657156814817491360962813485016100596585782507482234999327844368082439323457669375245709132340917713072575969623515677707688615479653253368325318405345782166422521621142006119698460250111446219074542457444353418609901564222066100713157103531533517299774155416626232817552152941159901398829180325829870318398180245992775428084607402813738006239077100173647156672909304172845950725707545056938101873566391678422747060301343014592455224229597999604229085109646816497435042428654081128729846736649907496435292992996970945258348237599303241456889498489277992586476332284319825346067466026617548401943270116499620424329476494594930650183082627031497833798941352130846592408902285784502410194540686019695961537403380879326125219368781907333473864554823739447157941171485073086565289947751312308635194102797062554943752046448053905305203906477994935247913665001310463470568086151515314335828747511723987080380097955651057003031053906863228118251102954153101756646679723016290164116911160921810113434481150919685419664268760658301028694527354693433597639572696803349349656145143965334835171003725837432158988786486764374572255407087052940519615455935331591871701751833384247193055737103080898972962418749147048957960487439714762240216154554838028344599619704702659885355760179434361484732200486414665202469601212153605283445449368960191729515082901258974606642333545107636446196864386428229549569556403794294386703820979519600445268721942330837769651869937139692556714222819230628736305662427711406042830042829722748718347139792562496402375096478246891756309820936931364155994496899961765946003492703348249790830760903931123944247776780502657557070843179628115617792737594975958263124933318714247160154458033490593349510837879222223558617234387094240206324011892001184728535113601531111454095101555433906300994955885887367813696707465238420641663579973336269882240508175963854936810089770134009096917830137516729308051759358023508668729159260930676533223736183933637614609013349506937679280103014729588579075336635463586882116747455714280618270689703292972928404532106106950928028732313709614948435508995293348099248477355640597531314281362312143997311547718647134975974645968064175326743489445385390898938939705481444778066174854572737570700025417177917664962893064601228678285527884374257242517209803125153105199406652454125545906741783994851703772796216859228131284366829843204384539230645158519716560811653291019981775796871986532987197006200400148608921103559696995508785508122949210095727065820794260511301729420549784799892456634439962736830801957239896595265288076446070686534333192844801229817517700996885702891321630142040201077606636292045395901415982279885724659664064337229264642548282255861449368529904184264704463253471712586410243284051154174985891547303872812239354777956629944263022252528639962636245082047149108228016619937518823916615528773309138276454200134488876880319513545536011741190402170512400329306765248900842823099980928940907989885755697658402061723272235320822107761223493048281457726373343828900330363828881663477666598363317724006596377101750163250188671420724900152880798137354343368808088222671438121085445582584130430081915765764868488533217552126217310028432992502680611955442844064516011667504333392720542703608765634133068829360897149706378322263966095180987476218902081241666239029184211354600901533046519567776347628116411127072482906171850013468656884938358037775817846337872534207638545411410981404078707651171885335917753225885373086318587361496208730811647686953136723168221287238848802056964614391173602047832827108614702194405180837183825028889490599504791623253552551430669025191023433597528916295020445757852585617255889680534107390068427317608533932763709230360875401674655996926764853749613733724175847079964002480444911727609955974702190753980238932380570152981878427055523016173400291596942411844631299650819539082630376869447047134714683664484495909819315562833700855275793772617107973964354704652696579553414931647948358796624160939105877484162337992384289871634972682047879466854008281414950947262770726114792473147675152110012988994609785821649410426047723954936302939839244224616035657086245119394949463773209647351955989877868972140812148532329485461858438902168365461192481060015575257536769854643681758448274206638536814600066840067800259892576161262508691688844454570961084600803805118100956807669607294067285085384472479170262698190646210169190411266503782214662873261434736691365907963147719572757396225530570669294669195296049293054408832012888127092775159294925608041862447558748226902497236295698349317569441312762679521129209013004107125766330924932047300215568391269677787914774070203407923695873614647791434696068022888776612940174911015138577232698166746516524668984716443552445189519192836909357282172239397708058601295553521095142227222731703288533969680748565453369160147286865382735924145344088868108259929661058364940273372878737480159014774996261547464891798640887154943500904390504159732788283541571727794950663252242709828463092327984196916660427131255996265261293530584331425453285678411676121112895154849383219870644851430197458606757018102050338327391919559095983628113032375483370991965896606878637200969102564118824176208900751103350516573880887655954594258798331240260030913643463800719485556336391500437974092379131404370277804539483247636394953882072319778596504279085370553947746022725381190338304890659913076995699735181918654439896171024454686760539687062037547468611215941024143152737725730579783806459450806925460299417113417101256738304146645614915358676491268061821531017330536417285167980066464047890802991260977058766221026619038397587347098811671517663705467888193392841035214093012406622585724364178174992375682501555039672118813800003822711899566709337950256100660355899450672739643707280827610247507302925786993186062952192835587980126922107335322962549987063792283961296228987972608999865795678188570223478845769480688026828381466733973251454256856195101369104086956154799931480603345042358977599912227226712587707467789087660464996356342125693217310282587951349308360851717133238445556986183944352109384093089535131013112311465726395889750783791656812399362793245878204836492669359753040698852417684976490410018290137672788145758923541359885339268513802704109356270599517841356594194458544056922135164876479583973787001216075246283436608085442480399827666218182677196216417515041932144841265332207093753804633444591422071636455657024829851939898801585028268690505338843432031846660665315802239130594445181679191982596420275611635493512753809088024548326354251057091708878830535473415223156091727443535387931537074318677006719837789450642242593631207218138891866461474278447008468037686649039551307901395534592749568510874424871762534920368193670839211371291157514756230434931489516424647858933404658854278631698441931808251513602587512806924049572777520207357910905672130223560020342604490820454650789599642176085526364105734620093501011365334792770464354737551813123348298879825994680064048069821022976816506390335350738060051889756989509407258744580286768019372293250286444333729182835764219251536438211592086713703226956435553235474623894567471464647952273295118308788790307375572475702019974897300983607827951763064052320542301927436955300081399304285763285794391061049487060616088409066120976858825729231604874595741712760323860869190165456821083153396499457573248631748483959899073985146328741862479683175323918485030999548440526089258199754382080386958637863192102212118277454980504130901973269788041688002785671771703007471289874422688912127573784077734335796936864561736310614679891871853050611587954290941847756990179822185561932461776472847925596643710930690886245081165784077277562031803957620526390364828524786287567589401861359619659619723280027382779730635010100240205382928028112939355116622799853406174031143718614619029894328923695910237674525204257689053310338336784754747064788970949081982894161964667178547490368117243590165540395561425203394360754571408360302718274953862406366816509446722930405786066393308160533519029150286523596238730613789951695490260838847183130883287360128407474492568080221369354508516443847455017304439248946794127774958218947103138086595626506356132927636266400403750334237889876526998384104195731631390145049861678715428299144633958658950408652765597569874122687222348514266596172401900378797383135501642893710061248444894803317793287383747628992005086626422736339483539027056721302595304840205460203563031328002667996326752710133135960180598910275847092590175623291978962169982289474908971749164009989401481657830709086177608086293904923053143163748988208570945834754930601131050174460281136074046389400063475920931260380572659629728662398566677144162763401793937276605013732384936746306807045242378445923381797552193173811839659293404728083609647474776827285100882033377425364668047198404001402462383818588124789548627827615972540582695725280941070690850848382869050937587668503238045862157478045692480889872671410355355314746132863090448275818887449605462493484728205226206907618604004341598719732783144324061425725279030960017558963803314093873209491875263880868092441849886396556640519992084948004167279819667489921620617517455973393164024554138314265025378461778910387944025269815217112966148674692473777361902162878595321168391415340095447105643058007898505845788983721129214815586583217277913780784447149758657360867357012959845925634967106923660406179941782860068989191132488705374310314792608088269509629881681118920665732219469551569980638883816790018110238336727215201745408605833559960956318958990834875715475944445004849626311993087765182058267568272140585918878478392644572011583276383366648142023220258047939921347675292954168989238383874416070412123437360972480542675373102832802407197082614139940543526926174562045406460010870855025692896341717951058741582634104615206107353050362683252764353035158965113012901674635206687631370496824248996437605500568973748404374682771568559898915796809631856115015793965917279077680905553077681582670484257545804444233297423371593966324184885141912541004329301863964290583738312074858244123618807157417527721358413359086305539106797957045961068762991331544524518310476112438541115691630237144931504973057850881886898046636784690359772405066853046620831373573190119712133743310072221744117704697214721450677658859684427308030037482029642841947933390753507155547602770890426472705764748417922541202339583593468643849758375711437167195803145627344068444290001157572568206666138495202512040167052344378398318042666960650676185679107237073049508565210832953778187608291490627515539177352641267049315656553203694990205304251171822934148272291885736629917512261390962093160782472433013075960905510433970411453762339926276235591600331470980323360894218709902467636119722447383831904113644338875200222386437354784017855015280476127784517960357600791543642303487434005034901477545180197188010489085613819196675998090957464158546351971915597387193055723972630501140155995154396609569066094864012806051077411711652259216801829416534595983770391031581975601687896307697816016171787570201596634312496544339017807985072738727571976615425615056049975132970098595289044515245794810969889621089374458269141879192200826185586826858018121729823530685904003386234401020820700637954620748527799943772864748441523840524571417614308627496887227827824422763218122537012827989230241809384303487309383509733583291261598193028772163736266561018120001731236781407395680841347478215049600324934699924204647191721976277861383914260021908218630300257235776349170990270351365014357092337858592754123076581489505514469993430901014327372873840556427802514030514663015071692155721197375501261743498970878021016705749583425527472127399579908185919130706401570954464395387325210747506324912290568081302091073819168797225848651089488403926757206459674848865090964095631034068252212357114546216839210143679133650112319970443733411743674874841832611043478033992421773833514588464031579765693288017485943071846482417456861867166582023038034930237603102848605555822089654100841288697068768607473515680717688336697286329126431789058140657030790190182138351645702614637702107933031539544109490075080574455358344914584192446366269824459749745676275045422284618801411205876684181791347957351121297053693321202085904543195011794612992355179454009844675453146948071339831127529358572088486948077033154528685927657419500755218946864365979165407162987003066771974120886947311449608776225160092112383416076437400316702142159695811647875155260867270073187135738152731126121737700540777902872766762339287887866183818815172575599304593473251933004578485772003318756320431093296449698359919729134683887406529480307525098170539538424499974037930359342953510691454351936228940963835563230627504642210116474687528582721201403652169733865071079669316674174924355928271007509115165144256863225932731148717982622190848998958722843805060016122375357517710757699959292306628704704400946144649229992543549936431293159999227692960623975107923552028186395720519249844373774320301687389136526027668130648349868235013825159509766039776191431726433557981167786233565869376753365464419016301885700563398775648623451766362839297721940344583241810434333711000965620840877179313779821404221932330826276202606142351872941459667186250677061242035523653624683645140139738505750696636268226316373610174742912609126851367969126114550314689986063053389719378529365319560893738313297020738815295486932379926387103961026092886657876596485339690014483405489904936142563646567805782521323150717825053180271517778062613082725668451168475671748705593384629938169329202205731831826587560792038788184816264424388652053083230958632056414773364173094885014033781919502554334098208559081208367870066739759433113957271379968226039872515467024077015983094601994725207405271672583518771173773544572848156691011922423552754860648702346392071477676046880931021911225910145254614762457053223130846907771319007449514381535776406810744831357443030445616770019378141059733889388853928235672008655874585108500405176649141081961659708393714408297663685344718266507582623103637757362246031387450280379093912255289269036826697351255916930604824554349671359639699206917334931588041127725897740312613827028873193891183105942501905504397475796941797953681653947004211054401654518630306655338870922164982227491870792826543461003769085866127248790152349512155099218006089754791603005315438481608166800170428604712790480252484033810380466196173039519400733610679411577035327792347543063130587645311610934794321891182819001976531935220158101240556013239208356676612685131932759416108811979266183601837320485532691332841046573555390408295927564440607013582736484689442011952984782074585914234727083108106630865457273289932977879755138686812681018583664866827227168392492093330922232515956010194415278995061506418831831859669886417255967105525107596267296846043669058938641550218118982679106062393939168577118860571918394121860299649889972490229406120177161703866717049571677311443171031021850627476966483454406419774523323814439367276302335950129010680611256421144535769004532311764631747429068423278935869580745269441023143703013322025509594809444372494737436541158280771924652434246616149574849124306756551703777686288979478137866164433836327114332990504926111033270871734056049583868775036390745368924070302936012630435473773322553984757583105096244013919366098865590063784827074442286712434817506255549065867644043457490043323158015996094396303645622701884206279524041564320003593226755272044033631763130188323590692189477292266697618809319785190443153337140477756098551818363121818467881674424941389598197641973961535760763736161803261531738900903902289102370062572214940937400998198681548706644734116223293087105411763528407771274626580347801459757603265852822219154135936134825333568946791924524619985133587956796732804373381686862548629811396090264484231059800431788277738773365404528062855091900991971167375777494547847215022505964568917959581883970383004685027741663762795177597245004691449510408824374421556147613367942381396670350624128707219234971829005437186907196871795459554253592730240803341395727901697283165642898810850313810502557189286791168961331232917374546587145754296329234224168544657976001873532450386914684216903562469672384204280441843297176882791280371971782829509639103563974635320142861180107826325641862696010429449161786637264092700117385537343170532164285632329714528000179380364691069775683823532950343128210645710951712898064575671231582036312233099768127478422171559684895279966150973146884362827159041394979035088058275241609260830758375646876196433887089213267477792863353143329320416228251104142030079871665688299804379672655339626957886704205070688993393916945403612435172415924947818646860595384692048477504348459959573308521340836929201547118936539201724195980570008142996267455642249461625223770282061536976632611347764098455574615623910990559308871992749848234888713065598443159576731995277146725838256656961457874208199887736984187117349109497810321209416346155594494322104213972470443421600073496546828418912601663960470699279937248812329813178881810526769423211793574474480905207718402381845803911273776046973233578492147833024663539871963693630130582957792443539730418662272910855474617102799765645196873737469574390913001281008210110352566537285960747985408977548389126986834225193180540299858187445258221002102092868432931192745027666763690645657945095665343944402299503307934665274572669997198180332937997392723897511021091641561526962327989788523036729915213393746038602195812408897518519866475889869397882884774831055702075663820081374245414311009082724079413382846376171466031086328747273691495748728465609269724284848235065977711678325678754665295975492674923514555081151915067543753705293836478359354465927006905171386435713792651783142103124333162246054846480581179071065155649886970112835946804848274481604778970187124230089764595030407526342208375401004394489573187165113111110459054300643179348661607596991404355669423873108378925239458918970585349648280612160000907835806213849656614674331167730174357721653808100340982105928716431805905838769414050671116300632648988352346438998937592834958730183091822455221083647435417533368884807701565412473592047705939976538061285052378125819808804003452885261120810484472147570995566691298944482852113535366606215964936835227949207764818975994167534756047636761106314570388137359802296906349148277491595107583645846070860519843455612926003495189705523744999964814564437771452871762068475657807177828329361344382356687671276755133991969745435991977433881198544005613140589665274431307129194996642192502823146936434608076963838607842477365024275644715811989744409477015610740229774927039157324189268672421014765313167498395079653183507921145430284512322477712067496469630855526669395572847217834944516288798235549964811528377840323701916207063732105892707897868548837103401641174334792227796635835545429868700179393407252793916423332587718587293343707944610911211426268348746061785737966595280571750674891958236444392386355122717293458917341168193084458340198689065733249717515901045436966640265007511000538022267863444801496680447594283708082536596572867247612549978316133495563604646404635143417452689296791288054098268857299107865025945288165181784053235388238615769348212770714121251928916103302453701080739236938548917157061151457421763256010636769213293418947839553541661570334136256915649546146887492087296931455463450594764003446181167492103218561201936447812184246075338427631020226659496723841474245236893731423837869818735692914366247845389573815075987713162310643518653998751671865642846535590070857057535981266224554060524036638782102039600650427919856309654097592127879964815917274522118996338768474076538234468438982911485991386901500509488292876206288766802556179814171566483260420156801084487584368139987971627155808095008393596380574894906872805880462175396135852376564409352529594583507304657057338446557710000552320791165762775671917152530540155164477822421014741460746720067342231302495123160293567017167320240739093832448487243185930302179565753477512729038067046241054259846302100249160392844732199448150807641340518137217450312561147896690418022650106447216295597092998405311008470077240542596873462830536043789504386848022855443671212979774393004852236201414233675618286975149040832260002184627559883282372353636216477198142753233779373203424320340015487203135731650535308210244660452208499112357735779607211759743211439919766804601750571716129196747237297740597954430094236970496058156248120863023924248226929234028265934897813564999540352376834988149661775246768536090235805198227780511686482592150558223994761315818543579343047233912532154968318264326507095091929925761281204977741587303272521570739214896829635681870323942214096945200902540229074832047866549374483342634862131807824285107920483414398222945397294391614884424505548055432230584844424571779828040064768926015065798461891052113434708504079107069367577614646233861855857763622704884104974351712626858498928803124327149155917183631584774130162514143443275141686521335026960147131655801185553575875150583525959359257541101520868805750720941735453229361570694584691938156609293867402901131105361034554310829513405067694360426697817850169352875776099566017004629471835209915683369748286658888390821754916157794163358831202252000794464898220070788708956638614106071574358928236052952970878588710111974367632402005444548899024916270427887160687622588219240590673932348219116769719678864804459973864202583959681177178244743242040082784404716696188298401119106557486859828700667050152742617469215390745146120542308899984197802361034603583855819842318571531165852483658651191099484164126614488185396394617807014035838904093170326461416283651636649855880280908787416183012582558383725006031766385485822481479420204357284143594303434342694539485963248441145696060701028312822987405006333313569343435963386808027781530580811037510039225762036010755015712827960144314487012032782382432387852626625597129513133925527444107060349534915189507477198540919369812981093105651862304777758875997266184820601667335676714584283486588407049959502557982001859639516324780023800292264907691004964999761383735755629939057747665477612565808453669659823489789869406028442707102331862127159561965119928905998768281558280901643490914256082244452382794022650833260492641176063656359689353405491796191566632539667338734767361262305103155058796647613104619002276109780268212618713540797335995778317849435709852467131382350825417870227193412570780327012814642673639116222394197172743423297854033033437057952435758637867440863586829581817615610219314006595575897978907884589693154307872064556257944245084440542654338224038918482640613760229727243540895157363932381759075219503657867299920472279675918036750372455160615694140494481706186149336910797227011119886275056359452614199821388040198617128778288679156309565946830689582498818946632040548325475901463757129950342069079050297805749913517322350228987976063250707928424001305537986781529118535030461603027214415000831523978215073019395591019411733440404854503948947623420582124228843416834297187308066255729902246206022857818397365811841455718469114312867573175493402717903706661167591691789411081567747072543643029253714422495974378505736564701042231240898473673761009009447996276803901790141367452806293031538057128101082535403030233303297292222400203183084174790789516664554357698266234007741039317513860961594357804914347551450220742140988054405811400515552938171580004283373583671727871770474221525333947047537404673864444700924875433545387360839294026202172435051989581416878631239708308309863221699691733732114057173253633195880750471201565745244025712662115770707140878713770524981169284509217419866377900474665904001641151588042136476710382899839972039532878900225023532593243862731177656585914122643914437990985636487760791536905985241527784912422702338244208010686486891199112463409913822173080679974236965230017982896102533404897075124477029165536090969500510619689276500782370916550835113357370627561659397660938463355424419174692051906662203303698248990820042343983835193923665173245128249796910683604580763505364078813213141070613490180965116093820990916743047382615912240379020838931882811578120639135889488669539794978287787477032285195151709495210584411820189072263033738277262995036664718129221705115428574030277102497581437021129710349051450842986202140648989688086735964701724112373305020534974340618304450104581446654899388533469244758876509330760681494028248984524099680204440445910816318864463239553284841539905639911044291607971910444480538864486241516264617647750215441752170398055042204652423739968097336069874524305098317497074705324583467424498491798420656469887920864497228617252218717403385260820890937365771734611668323619595383936593968193947493850778955499738085766802455527861083357057680185685213630393742781042685030862006485475478051463907654477149852396553500572409542055694885776895476277401581318184443129103965941801700979120626056079139898743982671834748540108414738233153654530372467789777751526234026747929609602737853450674651722292723462500060375551737961924396500661594556982397108623762541495150729175086826850328183043929744341465708973218957684783370717438349581200495626301740471807611842729962770970051893816068672291227107972936373145429986025452661809216492600043254069590740428932697389084943737208679420294348162639804713898616788961599670490151715268065252133643630032211139940534513998898354355608261534083870165388039783116787435334937441933804865295130707018952000909619192362573579092335511159612759421772030650889229605139141057489421623967985946152438744045612293131635172007706484160219632917750841131115734749861370782951404795358165473393345834666120028882845573920723996159839057799357660154774063269777642539258270996820632857752242105278570959260512059408453261932017499935825901658712811064018962321732545796044817513482894882813119217113249438540406121236253465470007679991033919100621039378541395419548985194511203487014589000355822112275439941604790538640631248735353098555439917216163694567228713299932847360725602479109543641263652803288320675499794883375135275387342561091028772055034191882978878690898148345112910464610073029873492036347649076298905602786542455280991639978020413881137451939710880320911028028639185480293468440405448186577961085967303951632217347993314349646493364483314089713736869547602848489842277918168315703243337416582470608932261862068136289693527475237368072015552654866109471461045270781099558769742109171720042364871891417720467634305943008011013196687255510735243143588924515017992784227209836487321720681580861907866270407974162032137062088123492507043047809249751507604184908926394131487999403726895474762924306858013694824158548463416729296636752047837768728137209397501583015189971431287051777836436882277184906980984928517076894101451032544766303867908308153111119584567875883537595024165494051285042632150923699329310315793450901562508076988552253481159776125259432493817075390677473684199974016968449421682814543222579504578123557687753024016698317308213336512962341671583633376341254558489275068103976894086568816854428339268436071801694174137847136264078496164722190347842201946019636264050148611546728845637231065412187402340448057581936408453550138922894363252399780090216879354232594364289634774851446090878059309599492425313810505983277450569744402292065207865461504166102632721759673192911089883010265360237552513304482969624997652748747003576714456651091716678353785250542310585560462806665876002322049487914798180932825612998430405668159032044973079279373797826961905977083555540407829688667040779402686243281776837005936196676707505979889938781783262782919128250232609094306163520731590600838823872341073232804463988633628471645576532453733611200776495280758644416677658842776679777706605722473964635410987148667599315749564247360967310489884001618763416188251935698694059914337338736186938701387007701195311301852634799444769234264583509156654074982645090971653812226150820409759302342111632155960086948890163844633189198082258303212089948756695691742114850280248763585570089255821565173498291181630464923384051688823732891696560219592486144530733407739032685538371974510985154833116501918432867532829259323181837824114672948370673904724329653403575980494584746012056022847827863672653698750883922211602497200056135262984365408652688454862764222748641844602819336635572050363813936875146644635944711385711111363155964333021035075005890027252363552360316088180477289286796455745538945374742416727171866924466507869789563883334330111306074153339329759720132832544742221281971384478662150925331810703913890017481057765408992883558233849171587519598565866810187503053355480825846946203701839428461473197909155084877235769281927485549670934600575653115462607461982961084270083229279011023997715250055141573106268386508445395187442976146188889413366273668925931698228290258078157399580720021325156625643702409452099541856293920325789179298252728089181778006123662437736782782724823493047536069818003277267971412635221336152289289986591228031871220599170284802623056719930112751578499205546569924742264298582494673794415854585576700543673556628892770725030449118329854461450043238178635430699120397890066114204174149998277735305687317499980625758255975479712795051104231765532303490943622979780016037996455874631435291122736545351489333960997762544152885122641707713643240947743533320877561647042413653352709831992088222964920771902718853027872862404274823184063707077392174565922013238392739047707812167204872501610291421830042986316667806146677975124836555612628397125612300283819382782307624650675384155979372092011132435127244485542102672916951885571480594281357637870483157969364841010019761972166004339170220166985969684267502704737798102690068590808022249325063875566479286669831906067310893913213879055856359395467127167490540546039843918551820094014380957035144640099740625183632414610244201527558934214723999219501778897622078947864866444573997977570144403163526255047354649697653698611544102475353359986753788241624980308291778976171721788809597067349641331269396064550968583278562423723595921255673540303969252168073657565347965233893197280629524901274339618116751950175654352570426855480083560911875299390012954801037032499140998443296147627446145877211255980325996918218102573272328527586508252777525724445188593730865518613980341953518970009869260944003966739618047141577924253078116654815513839262499698447060141315710253894151527710038880194530516102673866206796680320026226036481411781916058324586079540755232128149840616987869613994700496953284941447080525370958267721161732030356690498852947440070440467388540298439490379640219082762946324338026845230122186402744480669279399906798696996332579706980464794935013599641014687735846560070894571138359006953219719543619760360636099502808828883249369817598211080556223159002820097754944955573668489878652830215622208135697514445065194411310131405114522016272193695231021346278962858914301561904403904949831373075912886662851159897269716857327490800714610066284660244846813489393943252096935616167553720809370528181710210801608177323283298477857102697213272527880674588301770128929741392003084570054503594086311299858421212440239023675952820703827415514410101387712248609695098694667853454348610730843706728511894029349327159114320997414188203163859519744483582441856689850270019644210856932783670124078702398449557717525772540921791727360977660672066814769130737134395241498962750180464675223198912519448159895889136242534205813988342722777436847621128215600661444958323044152015162586155963954893935704274017276820416690282375169828934508589002734109145629659366314713904003107048355060834716484972987736958207323686776184522322013030963980721146871945293956740229733267708430316704891188029137518780887019075600236326647879331320911194241667928857194889887188403687403896223235416617554758801346008961970023559732420430614125883562037536595100827459946565361506627285290695652742234456557197575903928748357372077333781454693564831445048153893598864410482385292366340715733660787585507904182784944685655099649974593112863090086446264752706735011023065138308965103594399591584681658189809400766551922061538872781045650441339343358167135069361544652106592593763907826907684412922018088837673415131170350908388003613812548529190783114893572221552123085306574774136223278730431601882346667466803371119098397065117033581378896255529156404548040810287878541073579023590307333603765163612941300836829200232465315688662679790238167053580053362012310846833126989019170971329809847904006538736074474034457635928397641467054793844113751362505456283987555892505032562219512671669331118644243306683464583825584867793623744073528734089981343971535066398463068953751608998364355601377774544410831901232993439697051887477140835696404698966627050859855901211853220032541235864514655478053234887533417464061843584803536727551204664125857178541937973789987447406060098855592991488230555700138979559053458945596272966396267643654396447350174110899231768929236488374106812967945026228237901019248261432822593071388108412903902641808284648111300944856222825992846899581412347938317399515349948552031087664304620574046662274383630502899572641115152081163980436576671569344634727542472224833719569700009128167940583636232476756148801322006186692548232867997630241663626528837669446944411470360049427372643339469661543973454336732960599265265257470156274457856712237297968875236244773173172755674019251776518887271005623120695445330877829418668013307582609611590871679360556720956633584964241812882326654674429197927375999751386366417185523394277717195865916641281048698781065100968263979051431285822904742740805827992509150271566470664887175676206368486152777624471445487851406471554595650853840856584203239066037046006918435322304628135980194918732170215097038313721519735308279504796817002818458523158036878253395161610772147246454093179573995510062381657578237215027774600596011572852809120952460585066548577284302864723811545212201506364677281538038521019451071274987136782871055458144103999983065651535310426894526063083769439015686219207123204626254374282389797232396698580269292436792921649221074958208933930658451127142401945205348089011079045210662946746294231516476681710316678732127781533884292415939380672121856590507804406094462703689512916316391066611119636505613320537486285248582058571454690270615554431182660474677812396134807787742164402161259466783106368878882969325596743876942154237573313556693974502357391431532313548235023754372920290232328054401654901667045233393865912069487964041195316974075373387808292146359996351422992863196877710322748951425278927957985892563203496309166606790227666947072692391890729951373391685671470754306455251713556437845198639990202626936895996292896290194955653886283878042393922805958536680674659615310110789401352523430732576544590243773340454322810647337683471852038187226401405276280168687030786085786430683898284579639456348117621254912946696103442133815979690786678727836708544301947811670170591545083241341418406642771870991170716962832509976434997620635155239294195962579245239075761379919709827868918064587669520909422353832815728857997537863264632211671619275031718204497534932585806870604132624705403443574544441525196320362306960463128457269658807900167368208668608503938116812002166533903623601395948591546275275521847384035789926150681436503864936183695815460415484532487469728315236609586215166302672073514341358513041623062105863580142168431739055596172467189930151704364658243403351633600548738312012817946856094951161435698572259088000793668174778832075723283410522861199494957409822896123781675958506887393175627640910499103919941426759395090340612853274529947950482582848252089077749760702102977948508924153463632839004635772658332988111332995540076546533162968815498637387211715512053695158755094884275440622418080572849995696670389909358901078195232004381046007620961043306368802709403385283962087870872298008359411489261283457831763115947274618690335265785935242355722612442015807397194564716521363507753204921269132638929181201703598719370895013455057725115154213174195974475369096958832794871098116486474576032564613688252816916323214356506271336479863081672326838849052723883084425623432264397658690676738236469314558070189945660269267436359314888228780125048498913681886776879449091400152250997275232860674984349561108432359284453853125543909819560982178213313660945898711939723753265622745336672577517237396381925518183966494000403266530958013156916462243275305923597545379432161122326805340654299539046606065341632757104923875437986457296280050190037733753747720977542543746718237922189457770986022833993106292363781797888198849210608335965145350512643879464831270420180000104496750473266784898540317069916860345412635300876019754326562768626282901270464437631007902998135541363180397382113214830738993646401923833763809397804315144230708074131755415410595429735192304454248943150870224550550713242855490776586142134099184427021712608341670306704212631266235235738490845434436730993591095475858197544963240716020018275069518205533710952043765850577645926565803823804685120981123948287908550941336691494337950585992864089685980689632713823845773608852734972520178598369585770664864318471029493234379210290625703431699947840884694374417436849276787023682246874238157507336504296746429650108374700280980672838103384327064663120929657770472878975707372635316378753660691226370110294423991454781993372545982557149326275110634570872970639629365710776988650930417913372902391419935292516748081840329013819752961157220185371895331284162114893536767762783260047337398791200264609292875294335009919869180749793049894092505914319424981361912347193027271189040591190999632260504920237680175353223592889721048615595695627501013947635854284415217131938284367994724921344304644393986819728468986432418654005381000186684911473102214217027834413252212613486124892910637956742203734450324370009441263613968141815273507168466334032666347816684659955334136445273077096170218546936498590804170798137044043462005234861335418379003762680276599671929055779936505809730066221139142257883848228580342048338122009436983759680300788361079830342449275411663226814697370792394022876420368725621844046294489941255758370997439142800464439506396860767790726327331799182032357165228593591530490580409972676389264455876010067074949416917836065755249707266139868309545675267377176147210701765669469229102508723366535298599640264072256925096010856701837585158405100459323129501577187371861260149776119012661543950735909590650133539235696058340339482187288275513363755636107257804893894309999674088394749502680397232429305097597888658019317511934667049762949966180390427411449909177490309983558570891753626465676329874163676544807673927686768158356042982609443616645450899284493512031822215640639165059877978021561798330667304861647362162294252109761984679624570021311203807720131244551619229057639302767238376472278526373805187877735662189378165142153533659812358833502769705393715162441595137699094760105988041645633337550966107329292736102366995326417001691790507550921971829093659594505940185212290827299423498120149549190306674320915113940329589444632858638110340365731907690142844426654383372693989071941094639847265544323824556508940428107859805800141940745108832163898573714065165462134919315074574416449437777322707958268838956531898447642692990470978647705170448593822663522660693883392872819419790926372356354241504082965345532993337697355654232088081866962898310981323538657090700080470106124199421603288912768377845023366232921059438013955432921966302885071197078812899840694089889458296513160491971969743793023221193676133694531760754963177323527916264868587177008283624862083694719294782125839495913939676435320542832261546152714532025850799028319598688462421702721712247918103902195425842277432549617510244679668372558579954511922595419048318247825937154506613197387085974527682807411035085859635489716941723894601212402918317974846643226469254868856163596367152507110866153018722453406718954080166097052569854193441350909811959479422472695306252725351877268169717854011846065327725527919091184329709355689905003354118241434777041658545841627248568390196499203211591502853920750118549761068833455397636194954081387518111343433195997197277530409427374572332281888430797683062538585253483518778236936693087027748337497110603200124792733373734895822830342453214287526623481458204490787393939835868443516266877131231196776412864978546969630294073939879371474936490173150012617912483388325657507648770379755984481005232631544722285642047301168100544477405402402685271590979000264442807471209833105158760328621752058179285046983176322030833277390037733583641649970570907244455188137691089904016526934096781527311401448769647656076702425110359645897917168205207776600788183902891755127797164051055099418051471838864352793691261349508260928562591638442850878620127310885184092345538895768839474637327166839875128787985468185560969855998979653612365855819030501044020274889939782606598741008367368142015852969576402713625821514279914577440194658452107931386437662768214022809723052791704397681780894722723425478485390352981950967523585420376474550253847674683686635096076779762968094295260551728297099475140574338333865413425000340597100110175919508574990667650886889848262231563263134116895423435607909192424696468699129423875455365155091575819072925471859449721299073963400133960873721329633104052252678231301198684445670113888110551194163154615211702546671851388401868454528175516738968277761640908212982222270211563329115294349888917489769001513063567419979013089192756454965721158039728516373240249381633516856990740369032173056546235174948647193750389309364203489447410136561558309539393257182299090011122656442789393673725660744367389141182314075012204444992067044790484621625468397961166093438019581611683247195918488198237108515917649458550252509959987850028505085077629632440227331849548184746926949676744347598933882554086231584552958341352645259090710608664516368772236529874105348506162642210417276398537328690296262550320920664585361690546317745228024008182570099732066982587195228799387911076761586890678379459230004163291033807820272945625134531479166090582284868072032837879113464609132045238666157662526879472340947863108427553372435662520429204618632525019409555373205586504643508717445227276385393405010255233831033330402193280220485888199859126304432460435456014789359768486878694570091706782647300456167304577884527661130374972457592022200508589657528952161303226729275952980016742287063353206953525023782639941019123753867284105054077339722064753876912014814263078523302732234241822283578379712924400827859243644474818496154174416636498822440968212218774930684882772689645210315458439627769613213658552251208645161206516361699365190012213499186038985783199298918669555091084794953641423075857839036021986354938525095344302319649417942310029220926775637168714405506479361552238815522703419240890322821531042112704110923084800712319287830050545148733998992053194417427720583027391980530108442628400856955460778809168782440259006297960608046389555283205234288201303436175252058470194220274732625522597977680069201442987950466834132826879054378478587416443244116105347814597019525306243562041145831998162464916023500580550660582714042626319875796268023950623968421271354306128417422443386575595702383679953627912498387840849249321925352186353224380522476551977998056746858467883216541205547759103650725561560844963789997969295377509799217990104611440071327410167003792209688138191684076485674025773398582514183771288175676089276412615137486622648353010419251972774351683072191249924678287355184570683076726556194773052610817164298300096647966588276236241012714090357165681200924599106286964709825901678238054997608621801150103767532404538045772162268750037027716627172003514793638041761919582311757289903894456400295216314347884357106404121477158253977086985381035638200136633605758002870193968102204630394346661243896298321032911935323682792427578842289840019764603592683266723586331689499327237457856444059839834689031081944645080468391987934203244930917129956364949389616923083837498206650535108496862366866302254928813227391088213897842710415591994564887666081313703826619594612656162260372125506679359100871104876231257781725663269527270809264602174862784003753998908096171191292434552670354640819695382445047442894763670925474956536030999904420571048764499059819024289703616012940803602442662575300889177342474859617182871900206935940902228008706229442738166724511046395585404990923187647243408313157204592396031438160050177481593693480948055674586438968198852489800311303008089191131385521861455998955487870037867439118526333459640874356700130345344938483429750965195923432646057792854174416497162375956518836276218319517029665925663468101471954672203343932500452708155449729275324981539406718988305254911450219389731616078853110547245969497853629337184520829582313267013378352915532058257297821262931132178354163289202127468827584110170045084556322322723310381056086079743747287000700798341389281013130371820326573275223626986186366854602795159003407039519409824829190460412333357993322386804459086864032910021156505608842456041565026776222191275388734539834483982475797782730616203866311703433269993192276094044754937691451749350878123890684606926374985894054030600964371893941355662533589457562303540186784951838066061753380991806963279658621534620770980207281004673980852503342049473024159753987811117443255678684071328876336237575005764300863126677097413021152087469016511048612965541501195664588646035193049828203052176946093266212013348308776414983118053383007895464961923274658322984786095271914536429435775196957782067066434481217525127464836797629688079677755656068346780880618628412533417736031731068968365132297093953821633027516326526633702657594277425443130420922117970673654022001569107531302289036609181394940357430558387034756499481371458867581060384885989528717739430329549202152480046397781222519359244764180674128362285167385231547957752584699084766103092827040750536485800191214040882380580010299565222126601683046608513423610973786097361157398898878537331632971150919315084308507318936235200799525953533086541859634243570043126017586398731308972349695632444499485977519161342965050814984513934878282255021605332297625339436859944565278658540236333545289298451852601881667061242972494656298787765183339609344690021841798688429239258152395611432410991627760062777508961721385834568465047634816449248394855310181595974080724455252787693103412748711487570760210242055283725032305458836185566329870885847375627393915941335577153046708790507536067963132074806670463387052108878599753537148343683121897782802331182056344747607680901616410824280516225684254389439969697673712388122347969339667483769862816869190124600180453412948553140600355541286524282326706386150121716600122047988509868480987604228336274063675384212129408399303525620149974535531252635927432993275398991317148446421798121450423056397231908695930155097254506366100648572293635207738333916172373435532191127554144154062383160728713213652061573542545917148105733709700170133456734938583593532015936046886202591723255003610847092198944529708731117834992557253227950942886599915190875896801759470133384752319292479194951830878728685085894701268410375305776269703900980395946965445019073394684765450819877545704855503956428670499375057588611700561868197991670701667991963780574748336890312182891370575575178841796609085368067679038355967843661614884777582102730253592476731230129196389956398272582614195637813585619887575339943860554851476308753942855585606611998112817385287952195583306913911879671433667277941691555870571047516740749903641396357970644922571334035908769612509140482223380552865014087237026307188252312780891078960707517291275242692447330610341192830543024806216591357639059843366108322702610822781171937849452572153675378226034833610527678163598054745960264531302378140560940824359164950963999099162605799415485473011639310483734286637369051787480092263492045375850263299525481932996516415033329234601968866052552495996337059629760757614716103343475684963155243509168519024165972592134242501061135966771677505083067211818335523372323511093124501079909985317564947826929008737422277958978646725185799651037138529079265237580966996457161518186779093575802003095935470401572723584705134871011328842609817857263581859405582461315754141218752161408369077187098165615440888608868329546497266035293169600116485640395873752572250260562535621369592021870102341259483699632015875525622923185770938187133300245835915477947179873017654981195651184892133140099302022043703102346757955160144065910927848392430290719481463143830106536975050865451289000244217221477282827718573269372352865351157846855813112308571467301890401166085239183594493111584499221434650621131239048511613169632536725324041120498473112821430695053127863042972063729161674681507950144562438894351685250551211617569080804303568569849165648580614211930352560291470806773313006860293769356646069326734529191133744102550608561021907521428231774594323572890059071626877703121784493506570765570717077897263750587705590310955569250636687953432273433696111156121979103474964103965581674648476087093939475224190118665446969096269432679493729407724132931125925237729653365978878837854596315146984250000277750021221319573073689688650637250915894662723077510962877346115202745548569093870242915893836785150655370919184851774314423831401588723896865427241383106575378885738844085526344078190734348500795021493984506381384425413369526005764807565924887065587492195300882934865473961105588075049336313610601980799242790863831799444461670006812610005276115150443387723977092543273418035486774324937096575391919149958246962750600743620008242867235612534085014009360598501735690528279072373323037773806442017707897271297712673874279043813881897214111816485080605383986354534264891565601392924335012697437805550440217486850832069488611925841440670534572940828701250727964358106408452128509526040562870492496584003830584819137640933886944633247067023482959610735729032921677276174322121365866953177838371029930166288409264272354641590455932403421002180623804701885550640174825471671068533249264286470698206701204274495492191737538967938618475326599864946212573524490838941325427544050655969945574393838712415430153057225638354264578669027971540954553083420671279707387229294285992562330160579966705655295407035542464091704619584249316122758230415997152902453039843557888922133615586583687321277392139337642327233101351585245639166793989637011799363007149864604186359292816973327604720476383607813228715103987975957281167687918252912494398196892745670703619252289599627577262880309627533291798212498158902586836161201935275650566425677696253168710243673560622219929550824600141499174060493487837976519124465086532567203930742818288968067705806466298993891930721946939395786119774676469200138431112093026940932769009221135866474486470666661104692313315201017779831383450359164787348557885767211956403025417954830609855663827243515646587833669220734762276046964594027641679121544882080733192223213688879404583024527698044962861373339490190913934236216324148879665883000640414474191489426901528452794979170769902499831886371475343419391141853134895795048108350439655493262013464451364699329456470292850936769079161262186766707441752529949697600579708089425585559185046223209281336691497658329461615853422139495738527377852013951947231278708261463922663801105091697883200297427599161333825494090669171748466557936186893197782273404203214798688864838933908392510495143501230233994528744054985475298933486655815394021704262515517016055195980755250587498973448064291953051763144878243280715297300821401408312499687820450085531444101252531297776170550609615061219475499644246949126355259441001849221831570792123959886394039687417198341882266344012530249824792781964043224879606473590799089894275483204499601260589359570326144439254236284311947791006616778487712969761782435292403217233523269830832864116360245379146893990825103001894356973190997532251315116397104844820191539605458534415129158356982824040503160660914498773409749221383832902070163985916883144217701152420794235398959904636151958950742151416777899385752075356915803009130366816288795211505162536705680349559208460079985782103436625991386854995563774890818083238035223437282546534293783253736518736564371789640137325540735785389161957496598827223970987009393547488163676577764937335114607659974365911259143260495854984121904017556637708664619986463630072968336653444679934698025099940820908913641612653769332118996697816585696592716566199869278025228655638735461492769062307813245842759100442435710935752345711459805288955793886945128987737969209267268553545700755260676287784987685050412737012787123858494883956099939824312235093092876519846864010359186454980116185215431359776726976138131175278695228150322038067675181927221623569327260393654929950459484676226142684813927215239178073700458940982306772397670849154551158177199445761421275801861058001270127952587368307594582165918372695715903577787959129536705706110356497328264724644421202871392355976196400411139398585405965459438376878412052463455820948630341464205119176305543457378802679099540896370047311570257044627348344775948377063045701964083008940135474096487994911527674468015111521036769983774834756795170206921170155337124370642768905664721109980758667792137292293905852453073204033513682672955139861215780310179506029618794607809878857877449865772976077393693226965883999554147946683092122286179373679338140722125237487385236370740375391970342245617244008667960836980360569625595896247593017261509941681151707501713263201273881500875802187762869921800715576495431857304225188702065068353891928990551777715719113939443652940836713711311837347664046124441091306705562401889891783661727061984353059478767372411550032444652821153547891052358152907956307650351446299662140659414779940227831885044041701559187274335560357772515617408392029535208161271598294073977112400293111054014985522188431160399307509537750927953698611388362333981654046440018793884676558159716515079715134432043558781317199743267545470080418736133943704637547924344812060716732832559182692085372869003774528140952968183684713862430943589158542394431704888512639548333912330816497323891694769899845467183114990339039813817737263838153436882104550490190116592342224650222491634369097136245387011402799255063316242118778771544972319246596268798174071989445803048709055531605394190698447378556196474359048481512623626806773275456670567869994822789763495411053086135096343137992187498562296082190232764186496775185178975905752341025349374644014153264192793097852831403277444098409557336036198416134742009849608216154623652135717197698384018784064349920387487163717764469475253877944977735725825346142052455575917336821326279678005733987747255678265431324998533199318777482192571053346831177130915930072910194736427446545279546138426168278117367410322564631274938275150870724247151095918709565743183111967052653439492565345868166123212238689277048155578329603512489485766411894077217164368964964370376782390995492197707174084347924897134618958310310091757572232494743513763116993566845849013401080490686021365421461725863143385596657924541350544199930483075637611563441029483807607765735589919088666919273525485363174818659683384446062169220749258823970805189565372949514620702053099308441164493022353316699865690252604149297784059629316885871369899376971906281582989971188885697435378078353083730302096933085122644751381442162739932001724830303670018911067518150051354717861289981514892779826197116210185373721917490694605469826870951886908468432588932022166372327859321784843003221716063002606542364958788661113395660449077016762516362920901426559398563943231358449371607544059142087210732771044118771553896808750611524640443213770083203084095926785769936963038903440704567091168376411297314842969925318309139119626821162213059186696987089568627051181822015308927956204864366634873120307034217386269039113508014559404874269137471996718930152382670714572706515998853497741080170008666623109164342373766872265954252177639408274107578486881919133548353073737525683117431941493876812155247889231233716072663107973570601258173998905802740404599170100409515892885794081136894290536058911178352666567960072105617768983086533425427003715081715951925487878392525811138380568481453395077212883323828658657103084329597074866500271567973009768971539791665275779575313538241402284612939853677740297993523576773615050177649416512427578341321702899097594638122621682619663125647485908939321247596434819230559832123078107270658080825514590037540723926345217258098655232659806796973706542576652393403640241543378820632504706138377089232244924322134944677858902813644778364960308892446238598431082119746593694899392799002590114770567635354075042092815295921760311457777025834315893142949883922488781625249599040108398826176345013557927589085629727631361521551753191751848167128730614309167771072916504451374577648946560883143098498548555868622201098796365205431153572519403880687799498561310201573575690892324589157839022920640997003370393130405551428154258483375573762435169330349329168734240784471876093000550121748905847334757166344705029405330479376073359613394021671163049913691426810148155703439175236417133380489170510762651062801123029420185707496552614232768707873592087702378282585553846559249020827607677837001933933297440415661858460494376995419585981635225792338451330517363957753883371862945936610829903588907099548494452487927946525517221654185506281111238783581699026005881011723742117505413623250133919339248343601622541838780826279892173881485269763611887443234611694114137204167592040494869536579081016754272525212332891393894169106396403907058242061416298200151328789710442147328143067897544374831640050086698195724973401657344576284251922066507324982781937265422431211471333839129882592233521816979925568693675951842961310349237274344841677173633106865890819176932422665812224581439789964699493311515009333423541267845515998843879817794104062882994979704827345492627872710123820338567972418075190345507681653626221157710680587930908297447982719689387385521696047845373286791479837598339163235692280197659360588742312219648703350093223330930849672360940474072281970427960876034444954556093622953300375565733022881368271610965898177721575879237384607561721781082143174711027054039396761366883589833825982949552722915335636147271454873114340517656905555883313242900492232301288485512662807034078630138876131188503238744344104880041823306984339578577694075575562185129122497285423870085199466131565587662900628818044506921291370717371133034626941408988147603048388732724439093510539594917600332605532217252468126648144033101799256967672816192156768437356700240362167172074512165104905289403969754089283539777160258912331831404358242798603803911332817775745015277544936119726875437220903263700161965739813333368833085806372297205987664340868668657161632578632984042713996967830438786519264926901521108551497089288877693812308132280414193525218646257069374964288055127215996357770491668436793452112161784871609257144119803304182296625624869388515431961309886177901362491657284394270765530178879941939646772863622475331716827751359809544690248129125078697094671898666421703636719047433370296796703776723279033542056535549637648024733108106968891755838064194779510738090169329536360393447628029084078730395983636835047561126547787211937480384853956842794038569490776192983322098392346004581335812851780571382807837503600253455453155735189164490717883615125351391014848959652384555048955609856748761191118935854902066466979042415792617597223182078305500686377766981795448901382792340546028013320908827798997380508571124410707155153932978355760173824344797328627242670463556282637218342202907367275936764622290646770914152577762421063057129194141649896646825482623671999321834708651445313978691143269091237884211531790056031074366258070056273175595768680558199573711539234800922272462618456279660141392912446402351574575167938273050455417932584188326835354242772850277228318884553831486231193397113856397608490991692653356608410125493705693462298755257216243175949185619349511301291761860310150625379819036791395342991174654445157921010123769902298714732674212216638543654830406973715012807083587256536144141208292212424677754517091118733014141695285787249939749657874705772358397928005573935390008242883032883561766738221132896421831219999471085154557144617002816471459094672797845131791592200285206039134664603945183467536088641545899102875077958806548919958440716753398636408839542405579836913988962335663721114463625600781470881882187181502701561261688630293766991806526544631459191776857633972532863946997477507749913644586423300574464669232689097139029257263203813395433849540655473264352003893499666211147150217366435543575011961797262662997233734783042752773215820424770298066844426121406084487364558617468630072222993202204545404215394683202857456086570044240147733847358897503758973856814517219584043141240839890384458485809299959146321885663685649911022324360089873746390099251801282647906185869600827368074074255965852028841663881597804083018878188782902257408140726835859565963231030602919899457605773067566877905672586514298466177134008913510468826685514870320600792143668494721287748407245529355534975307963688959162919352869031746186525055270070885795334823404126124064225921200546790421826484242389009874168138451003270443019925722954092991296424646481831171826854072642382426855085934462372861753282404042868142995426227884987170515391778705864370760036783057094805576202149978178072124276924350924583314212872144071302920664093063125430554935380330059510605508329342385296081965510820036636710153720157155892528812412691716443030217905544562238622187389794640361571398813244354098231075210143731474350678033282125099936436612749955859405973819630582288702998135449646506967980811601691666586454882839034270834139076041389733609078380234300453781892459749593285557260469692877929019873504948532333145102921467221470206929336449981849695599013980153914278500516117693475991934956753908334772908900904166071975655221208746891859767915186714456478880884511360907395952714805521492700217918157774889250202412621057424715312291138595305850512341953608243595890526926972822533497527643864335566723866174932741943130730452958369749117149554713136684310026791903104325229587478511541706282688702759924775521297486286730956714009166029556513884345921288317963751246251207327616917274682137134491189971199024906820560739042292803538776314589852229518187689266398087043309961834635221341813853842277116373995738318321107621039917287666223237965024326657185478994075899646329043639707987659468736392750493219181603747732407637680924395380063104473037671621558314683372665800355872051389858991904067302296819105394993775110854710479340561866897910070098630825639236894707537843154533933478226480963000560257497202136539237240926386967295223551140509667577813659340962262943483537137138734630947977120664118363948035841372955636989477868979816333920407455605095833336852041242898486032523514305501413675206840291819319643759894367142783597014280688607041250031748651594508642852633471059189708936138253613717203950672389515444576850256690750238780597165325530267663012922445671897754468052064542440068333954292694208920989500106178044022831282793091244559147963411860741360072248466800732304952818999592912966565035589589882952827949317447849770113418728394684375079816252804265582302535600141239929849419596258221167762963089056402891993492479759854092167966790031365287183498575412152898400585160740224640216731894963197025969769101738390396696669581472671229378544587655496394401208679572868955638558493062676282135053657820223922271499515203388245384247223994914629647648385147171330913088814178291060889751369936111856620992691482029533079613046838791469686450599622115548482113338581394936187869947499612688708188513238334915111721292918892892231925653776631920216705416855232172990899240350918005503060683080270270150461817367727831865519683728989859366593177394605102791010693892351108151453034957642850067083183954115760175420658600459774247925281738697945095424480519159804423637970371136730020871861983470677344521608785740505091648944499923951853742347857145349495573752733436372200285029795012256809802276319845387647054530550899537635936031146671475470827638249561289286164259906110600438089537805643905719197794137454819803228930280516117112470133630021972365187541007530306669107398252879975406691432621278762430638309276383660274041892938433953595720661959966765680214805151314241457294653200459204040017516425746034996963118244161202316243963303007913696178897028258133606459010439759950820634268663864414923298879047504422322315249401583248366311844386529871905767563273646199392323449421097178929490860315274850502900861673525693277291084126204482021675933211182910948055517847073490948504967482722470750409477990410976776824050389608693865859596107741932945989987097321440319697032733156125027964842636303392632481957972558649755881595345738971080222838685202813780210428066388420862616358874721892581783114977775412924959143267524925450495869849108146104079695334517871872575749942197937861195156113905032167883999472354936869729890707571497110690034588335323958164881924817001782420470260057944590626357877786234919086475850784446464420813348503446044136400602356064002870608579385094695121722062534335805434235440536967053241997459531604112910010456296017528788334497200989146093059911080685755283991284385799132990586254414268407874796615838131382569182019435453909001273770119469595853729194265370821248465164006138160763329035972566043322704910554296743127687323265506501018035190220673884836976021284681376914365233908734728937271720775924427182676592426819962628016388105887093007041410101850210297897343945624800356198634549035932182535763976965889908850539510217497175605932351530294967266606575857236980291751207290356302889644589052119477962038537521531682624214467593914711449509195324682022825528141242037851918326459400090220886621452419314526808031234820980780353534559302643102564232999013315840458391210029034928861706197148371511469364564161176034969110783317612587057505960307777357776987891014212016385610547110735469145286051771474687300316815999296365440693957269534931734388032482330612573835610729105258572617914427462873878660618593678184387186143743822612523260807362165020918631310001212979125407362043086401718981041007536011432823976423334019560803061481778656878004321140500403540082632887114373102443789222259958994127145599441142518298531195033214238615965461942738649042532668291557134336083661915203751489857130715694047056695193010281343197874820671133678073822573166666104378083574964723110804748684109969704680315510081202095077767450361116322824052312044839116467583654652009152755925799819674325054437242911911982570556649758270965751434218362939693588424626371901251391753560224381437382927829254888996359980859826079623650972699344245175664456405555057740483113860466369252737007538721658205464161577477577967312019438032987560324126159885039519908945352846851810196392588136263160957600674669586297226578404823233752823585671335512400333963909564117640447929781074192319114181704934845037258755050196023355385889018678336724066580754894630495490419185204281900069571237125303582108841542462265170711144480092271375226613409052134462500914648835134205080194286587532239124316958969870404649896499070040971175408213589300350483253875240038015555673973280700912569109484270137156976382004021847067900379167993019831012637638378976526660839146278622112949782021243335063387740234092701007394327795959572800483124435715046220585740220542094134207127680938948375682987398566049623502835266829545442289478888529171888365645462786608592247845209227287515114068491745114623232914025703850965114187792706564980034269669302774887787322788493436973238330577709273225073378369436257179991940532287674875458556326368867585929756421350828648827064641009436190934372691381269498360536062920477267146175109359816438365887032489068833238565779898837533276270157878862467967478144480848967867278623777346185064614670211028085372869476475947545908264869940118484793450650704773621872974778938610341384467500993540627649976403980291597314848833294271765835810206741433050485444826174003816123705948192057874697693522550716337107674895084563949614390229225396837719393420778263993294400233859992600394955347428316097893264498786126610293599974821164006599385261108956276696853664003846991018322862647217221412205561118947244984884761353938451041892336732264669413678998437600778493901504196982336272417266010746773666660582771623391448484882625283660965580514033154203485498178259028744349967664701060708721074900003424473483793157132984591935839965430851018482500330276011786495160751669787565993815985205069941824435713035990447748046359204264193600225591696801442553705120818335149117663888296058932417393974751131627323241445637466908283039311669101211083100590544130304854400059089725975870897537592066152423848939090598678156721997985197075993455250318361752826873264645495292249772325176592009014083329187336207594825017462022595564247894273884348750797267507953125809586905155467513699884587276342953750352562489782110536954012984696955275291067712395025295022947134341782647700284899357548490224248644734003917100554292744421572391557670536740075734814727271855187286736629526933444037298032816519743474147238180843599307844200695904323046373753139866853011953912051606501801380926154933335730306268497282924933083570877347093667659438734691738242178865063801531971273781074812393589769951130453895282294250773845835254479091940503743007822606452342516115328521729260599172311746659460990642037993780605832894885422030022357984408859423601026314331079280163511255880844817841304146485442880094613716514112488106646323315596769876716542064439462115031549465798256147149200430408248433148305048064604585528077257060550505074988983861048316942584251002719338844898528514418227245387884605238997167510159925645815964002665688920928961200464777036224380761157690171958817256367081697979410182542626327439400253760404379298312783857023003894322508516119711660803454231012410291543039073596985933103583156431479519502411549382357265891593416375435203402277507884646862105618778326748632171003159105530709377792443817154616580847709547073369211639112324782309599858712034773046963175932530314488952851194721549521446697191498606783896538241399267447492900465389204209776053569808388032646248532677616966143060094772098884380239159500138603875895013636231977296708267804466161989466048582034673168983460491504198233687033194878724654950394098681745748938677232734472134134529150496581861188672633926665145404614932710203884365208570373716494334194402142754177011136404812520518149780003907370719413749853851345068758573070957869498089260657526261197994396884705495226263291978879392018854577394699009326445010173019627157261120440294228714188812560132823877538993909053598606286369750904746577790214247299293146037434645929085818597103652796170898010758581913670872926024296156308606843499798886688447377813987948529512714903364234666032106081192309272291195440658162228432987468744528635785394552999265993975039779813176365117744282400979533574457497014225786468915602944007246301966359554581116146906228654064166195725614108591146746333046082334500311323035867095422087713051752613552232532599741900520990609153407087848354456460910915891301660503798613838078950598993111597766461711369235429103299571190666027587338373085161848384939524408152411234549435362436659680922611249408806420467881317129614147125790461644652045453079335511806612030878106935155403820602340347953445967254589663627535231049579504865259173125207165489836835722472211879069383065002791108485015325313197329885478705122624576418371542758870637991454733199910708646876198736845645299128151737056507903597233597444657429853045082642500530681229860196284763616520661024311504512562291320701122356790456173660582648851414135197258111280679722411976182039184170149097107331647300132893206260936426130534595013212265537662266889523258593725122663848241112268434167359040725494035654317743017406669805876037028581503445851684397224775199240612159908115572233555411436672511582495678031705765343742003615735535958299684498081499546534183067246967235099891585108408275175964262916092062935883209982262682300096451994177444054907659744617720764574593391441370011719756759189913434604613384357748008949604450823343469713848611951685852888638545995642458425738027841168143888227558446437269765872047720855309860363149339687631334820858798875479233487182653454220461318017539398504436367413970737794414792608771546559152786007550846017633668567311764313312440966513041174367347872971394399251702676061471876971408619472497184445834167591894628853980252040183928605748720943765151023792891843926179147063459815214250829384575096334128500503397749523366200416779271383755821171936982509165694727403459946810247345346211045793719851414083387094692236257283707860761496304992835833453638077599154628983603399151855547313652516853361606165149021419488206616559856741866682425570559573291903014093264087154949529926640747425240903031551792445056793372530784962767687083988083909799447692921004865536967576104621306023180263689410819687090286595086392915667991108658100042608158570156396599812579951430606589946685958879632833920000374481937504419562393194692096635975947186785811809591186982966703000431939968731657654081663218499946373625561760060486912727061657564552668350689603557971197947909704809273327506212405835638344260398370164026221105836353508494889354355993854299272920023548487872221087857303999899571526830722119063708901002472740049035768283093601149255267589137320240222942370936073633226380329576395583527820964855382452110444352799699593813095002293844587530961158347799857491912898940764189366747696002999811369205119894992332114951466696490143994895270876140727949061712628398220897449090755877220815797528479939750370757786706746835719296490799500249583394106771602224700984014267854453693845584962946771897755390371403632119230003232944685332750470445924267512604933011923375437161136128148643155352679889642723086246594525423452058177678134764777693517534640055466797534800199533534640436001226484815079352854528423647324713910138716702542841794922931760058733123120806326509823518022067941500407626649784604689895660435844050221147994379399549345072543385310477140988380501381939775140736297682729416953947532822168969044386785340042205490361923114120774530601733236069714850686884326496797299557511439327419963692857612230959439281211768923940827964766130001875838946952112928071369208759007452571515205317170634168361470692421297011918510073823678491681344292454158353146346815472269957305737762006672159522325094208299787753516121210784768455272223906405582191450144404806137037265303396726353061541712709086365519289766019339292032202673451589847886377570775367734337367645429518823981741181067215231975079053614904315656858895079174775598711871045630877916157960276958802120734530721719894085423551038190848782447049411136098817615595905668350604358517808534163920392159806159394626961634252425168991988194156477081466281129809543630626378739593236518404045116394908149455761055641405952883912032610116684790759910557204288459214209274200627853266978305627615574310505435227447461273922186234303847068982890001389913790725090599589665471149318020401814491399882944732027238907962452538538596594231551660993943469881560198753882138943369638154602666475363608325942669656238409042236883339623145398814863758213123378450099634239393309300113592031047491447006480411524516116027239901471128540669328114340799074005388564775670110665185779619049482562968071374946173900156415628057647764214683883696934202353830996946206397014181822260163118687695334971331636810305425615842215401643975823614568771610752764812155971486308047723031019065298488634565582068041992244600187157429939252770633047150701591736026341152601303174213578120603822393154024096316390489859272583956182962386222867339940205968791658733316241217096036859638801767171246746267395322608576894737890100049004076286879047374114996734809169527872293543317601085966332881557817534561042431052433841488210900909913938445283272960017630527270750456674462868414898997323360506664943605388592011483359449736423158019647183124543321779325618013338618747775720345081950512849493208932241690127542034839314977201261083250947213141455095477695434890073900178953137358246124113765422930632701592803571254121456574268393875726382293589761396015608306074669653200622183773018993016691216972172326391926376769032179434560007348326025482082096474035407326430579426152839095054029547786408788580095659128477893575003368616082076980678265383976008585896533260933757016909383730934478723483376029867882650250907228995616807697358858589702893284816087472039865725499099150152003279941453612069076097480797274459596793615844060726703332357393305951927266006398241536442445175737329389073295438109475748637031677377775770598601728363226931957992749110153281561059483743088925903861241448335232082255665183569782109587843095172171682028407491175065970550346074501423286235201192110717039752095936299506008642005114418796952100255096029042069358916445169279383695884312790070411727029595840525530325370384100394048793967469520453077264563243847004006873526030804153719466201948683312133673300207742215993769344701342063058675793504044311630362547872098801861277520373544228293545783262004973152671895510218127562912623163192644995887408250175285076466613120266181324827710987357726776192593095812369769083772823936510777461439079095833441452225995620799427563691703081924951028684353318182161897667631852331462501762345591252042695350618988366368072781038570134229356650796722171167440250533812473270865608727007659943424681664546426372430632047628387379054606033151936235262911689372042934492546004311834165478728998913882624844568036131972894915595997621548926195592194071582921673914316408285534047094433508658474402879068532256520599413410329198427521144876761339155269174393294688373624283527735837168033054937932280261325230906131948107698363077590115310807914262357369397287365869798984231830959190189734195214714426946022570496954247317847785068024704093924717240852910797304246685396246730659041358366685358038552357913031063573283438312044633668422456404661629476530279499549620611159343412596997548339434534074101998250115733581991422900079286959714166593646916648151607505727048785880577079844622511019504278247837508962989578613201494508738546497038081069954856579428575304180550998535400908235864697039963348679193754908259332923679625577497536830646444192261004848988874571911492717499846722556015372209476376349165383610856101201150887312932547570429115801545437844727473477239371397171263201744745429854151724921171052484244144857216816588842767738151995890781209078941058920539470750666259807475944672649469425382066954855498131214309189049483623811852814019918338135502778496843023132498448400822626529248866395469683977442629098282102136680036550066480974044206570447280580712296250830670234239755694397389891727663525763789209318273060013544461218678796765208976421506745837761551079814904131308421437650704762356908474381346889854606915554247677818339707680171350585893358966118484312936694902691744049898934506718249691451617145719387327712018992585987204287887857618243231112243114174621599454968597069194687612481256114633952746044486543285291043504175977854520708272539290995886082543951553545364580838007488153736885952612841412481470631591461457080308098442633886774825658285538875287512469538533289984656554548888912761789595149731487772386724515670210596891294400562086301058934913758886751462929076332379920910994544469945032092435548879826938342102397715351469265985452322301650096081791932145338248887750582864482217920969400067031127369005387010089440555566212184897957765593420946843455426235531853201724953793851006241778497325676601758817483505400692777821656057119042450488293298181096153332943374531649211032251818097113306863519749580929311928890019637519044842694715411404711407635881798743969480801185923634862880144011031886186069478967493429966485770983746943880755804137750443056989104344973548796689772038417037411079377030424047101243432755776359323719240394328841169030442001108066159961462257452559136071387686356962335624425466401885170944776486604129217729061722284005298715161564059688279153769793071466287429607818343258148968541234284179515414585167330442791349387584557800494861179565707028692224145487752128845525203980333958278768844151231908012977785836715481080249289603260537838823108792065205613009818378139390904800347872042571382049611953604520309520786994890386671700153606199020069905073427739614859970141578009165849865769619378923288334366743183964968601795140093427942182255237766234644405769712622952292565981515258038097099636605009273975059175827609316003648662245883499422225916988588144919471292429411026982270087781839886212269847778861334205107404130065732015477814421823248584276047100289178531986317119577826541778056120075648548100428959836608182783949522935193815272254728331045212887182040457550112991003633878208289897923869169940443882820008113816853056606031205099546912823984523514875182805193447475133521159757348200174323131826672354604916716309684153487438010954606627975449943459082748726966345097133696741384457748639197705030953466503451071775639667607625123912579603446866530690286535924995739354181322875928948350782554571177196292385776041861797124655282479930743887817956295067334030940185802377716435093777359868853883873153699779593835233950263442333245920898292356876728736832295618379028838854914538833500947517763263209685453652270428282749040294506824501665987103813123043991030456862010998539413142314242718088187483395464082074890355438072663229629572448978286816132174445030940575782021337659754082394347830087618684744214539853326290385891715209970637863252263717486002788819532798941657607054513240944617911730767331775307320490205393797551065197287008640548477478486445677425375818620356333635517990939606880073295687944080485532847002023206901860697697777891769521982773993427493245706600962497057345697050492125448517454431141939351474420797343126700164963567724123469254560865756979200935620572095441266938369785234037566773891224666298554879686892896988069793010400963097595889242119929408003636869143292745168156818095026181540317874849588294203709668042967493642437290600706285680625713317668071477133320626839811400565066855857833792523858662705471339240270469554113833859001285594864204697292635319626394165373587416256959166526227914415374202272860495801374956787649502677347788211930527810033359172904516805764268165211975181662002730768360393934747532865135571848392685075354862856509695472010938039063633542704076641548679640028960078189229521369755099449746883561527730758559802836573044443889047637051692243202850720144294009489526455564000668174453236224178847865664014375080611151080340974899277924337703667392359546554604975682980455019562194296013700036648448049983255847965108973064132231673367201890470059248257505271566231412743684018092997056667624237017763865566564277896769427316569320233355198032092728324465630764438360534490829372570399033574541187884871638570090226340255415474978158296122245286361620835662227554866574487417996591514222526140170039971142675540916765046077827388292209149636906937769249622809172614093299372064400678395537411617826146415324676033395649483822734367377380457973461516449376333458580993531992308853646932936240844168082169186924076731231510788251735923805794456466101979689959454738619218700239489528295417483109655052484588245193874547714089565738104125932071232458468307105555712221839994036272296237807945340587903159812920617755283349576089743017079302552787344267166819535895528590317114623498727483672786599928934054247498436288232187160088546172447074852603761535204240337346620042708220036657647942021758874868711225376073896040441208305614988182194740530235415063680329445937634940298622767013232730650606010609402743055844433458129141576783303355768247225407363800816990400105992162748070968482059583861736354075969667196006977188480574716184899610107815330327428467278260818943945484102533378644508112737426107087623209384863340415756853898004063322962166664986264727832911499911986435309620378781316184455286872314127241520678154663862371903752511142472225205511716557519252453996300951961263278584529474974701684136322616789437920194150966675920798426165143360405999250709832239407318360850448603396425869470605154863597132948852346349535879658309453975962732876984296012250163857741556906637338888910191209078599322566158879731116550090436008775432824858779245006477033897834641925970357374971272192821737601453307271735204915792282780966831469072403717711971087910214942362259139944829083672758576155867957561397404314141499802882694926323071449594372497326476350957055569466146638898802207679413983673255075697253714618814823892569461715896366370317472937191997867078561334289159380867326041316958016738276618180273120880349779830681191558360063997187427988596639539339935242250426294507540792004530522350552486838225750445735772384753523547789484602344182531634960780411814207111347144590518827872308594335416998198829575635551188993708688782175387549837296994469483942310422063787533747880826311539870745036884578785858896142718468203943242469519938762768905882877261509483786954977780376112004963718943070831077529034113408572616451156609300921472370362377736747010576962109060239484732157184868911532018766662284390303541573796150647576840551738414073230782874250353479891662508702697132040747492457665872397733152122860811222049905596075951734034942414364368221859274914333093507400486469652760678966741376095870549139708080124343561782312428252934820404337658529291206963034728294618277616566745663003207240740621813590505320087330836499137071765560749817579410242765364078827551226316699985560973519132865335750791851219964908962153187694225807023181503271071595122988725444239331219825300986934419273263743092962906129133494192101614283952646024853797041026472458014363973426374306287365565276101604311694249346789044673695817346779399278277319293298875914250317886735551494837018852914041348221493616555422006583853985050309682278444961753438570802679349087546879566628718430976982605344800370990802217581198975863531830001463687407463351833511182165514549997289698809263636047182029421503814980611153745676829152559702509048169266864997102480952532133656016427945750845307570803494549412425182469949931369289342385231670216903341070558452376126323259589987777359228628478696255738330583459400052212257552278404023065644643013475889592611894582035929564048127722406820979018490202654083449688873194334719527162570228184411121587763361992672138407312820105320964970032064480513814586124816507784004637400672884713125269753134895075577383745228262900483045671294003884910613523290603732478545612887646442894081438247547956026480444345813954713090650494151023774272765106015698677529225239561699509879337645031923993626485600345514418920012489787388863303065904428119512826509105636804187111655207966761591285355680081080502279166892572979901168941095406963111636568614443864200580001119363615547184291571939611837702314852044262574423007470280999410287582875886449579543812977677795151192334081080539202942675684937954175319768443364576721414898684280015104804843183444329278811051083279991253507303515523285329952771277106297466399627969852229836977382753944792254690193575117191818297903302462639495430934478792993795747389852434728570618768955821984625289422908876966694839742789132867608684771655805845827674678538577015167981255958613440491024122214733126210656061916871982403233333357277744786025763007581256835815536847777546649356357474263016425481681788644966706356009488981996857358717453455096973574120746846963847980267079878216036366974393500752776773491415881817789256241739375871296274287136011618776986544844441053587995876692439932488530559183390979745502932402809884477173159464399491580977306401842035627516474795419763054824409740171669776496839437074627921495006491238468499883902382166486892116860101985527588049409040269460850490403208358911332050030620240289706121205955834252135064747205236732703472743003769003901951345685842177386763212176599244666314850218017393850021178296340674467755635922375348528110033435260334908027900222037736699933851209557688910786992045680794075572881813440550052159729219602491912303980312233081146545170929953861977108646504309038110111522675947742704024875738568928872308882859819779812147552032071048295505767259276176916620928122997719145096502301432247579062301879638245255968674953594077123430894205018684704538190434063689267052038151384742978985910881006526771009617272558709813517195732035587073500634649561859623304173665832769841300230185457932056588242179332051179927609775931811736043821425508639538072433403345391163625475188968988299126417997094808743190071424904872196815059712232533398293738675142011336915909111436231768771106479983365083658242205360483588675765753095502062405759336219336456460169368448836739736826247850389013316835023156967148169961599871920775423277027015291215394804142172509605496211119644935093077292759012010028057710055327789263546132366339076912792869766107563353675196538206772002243685800283159147530595920905840436816803211932175241926028621783891529174700508930928918724498902912405187032707273252494785374224273446876379497386996944970681718050508016479009216344028719057705880988998936664422925585993589643625059061414281495832789275013536185905357023610913231607079077267716507405401733063060519743203837036097816668527130376390049622909517137067853511828740691806245501635932531081752517993366610014642158268109725727390083079271218477289903599325931296203960761760249618318721369035441435304225693755779897397298716838698904649451036358979780722073906793838718348460448416859579567099311563818605762431372837789055001708428064953348950886593127369934744034736426265208578528476802193598431752137350042192404637491232417749642678147859507213310050247933838860399327862936897430012124732623036942189521119509331244116214424770307809947636079763016096866259096248119420736068616772789570935762391728069563093320554356997604433253499714753180022541375139516363460397364464110723147357915149353436166327108255944593051306541895780281272298742000341923135885687771480879584223146474156546539553853798336329170152734247756174885266701831958526735175739367363401693664388982420300707684438447656826746643148508148329251437113027231205448028754713817562731134989751038096299205365812018495380907081406747301696712257395253736606611019680620563925615214691499935765710812032326116901220538294525815190760005643106551892363192737570323451969214718607260244864912533580920202362989298817942910370459643890241341907459498579069832520624057064331115090997197826318179471420505431120820430564604718143762916615738743305261763435630287412284436832684181321865936849803625502462015136329521811495643495142078015029380759227379360173271647429020206129994165906347127278999031509044175267184662454887435953504927258427117310649818052721748806495215796744835025450300033794200130202377419024323021644174208642249656028434546693573866120976268766485040438155965448695113995387415337086347857001596189048125921177395610555539905042128977978930563656426163018650638832724587782021700707713804521323945918517067611744240469887922895438982596246109825647091922839415776422253920539764960261587267726424143304823022840012062492524845558992941690257584355424865483040805136988213448158677264099274312023935531167872305584710363888999360444192672966464722701934907184505593380733008622886741678343481351177601004981844037983190030331682653798025698447477194939336313432777657873086062508994823298137722027085818447616469423527704192409645533966930427067824750948906758641272894160978689966437718530429851265169787086402557735188074375133503172204007632003322899180334864102588918198456187024657450155502971307816500363985178705250883610724600021738217793753385278983282682800050209132326938008189753201825859930107086715282074880362473837740647694946407163614211031266217279172074600564281059726732116843792318690652265535091176858554115230004842320316391575413993812274884551397188656885313647308948436617223664726466461873138113360772487348878032286212300039896599437301065610662857538704394188453497786160663769517675638529219024479826699893741205844781960974648100091359322962748366786147629535448810249129626138302375810757829480539790225605290634692554074506977974196589624676008054508639961249452199958149024016289444218496366524332658888285265845302036319230767329716609001184804770595133253415744926489942371960306703329444749926536352446180945833193642488435611630515851208102993469179803407159424548028685767168871888304901382224403156393711466191737122271046032579281232762464383939487417799174078800147917343678995146724410653080412794290365706994824396151541204475866826864042045181777215132533310028415478116615940149923141531236255945209311947959898068965306848949243637676478001165902761312071850508561628659026559710066506282219704535032863200172464540554205825692797867575233955935025133840573099051496255802817126020156495553794166941841896265915727037964508652663729477254216929995306975551905099276557614011569913280298419206512529585087889502711334885671905896606032177494030756747255970284199875816811679995618090127996252073045668330582199811150537247087188483404128185847644502198956636721472126522188512633057780414697769691638259141102523806464927492961671826070867189664023585712043624943399285879837824855154289227641033570515769677330912714453665144627258099685700913867166837256546462741204284178115433524117834718201540971312234140834513675908597995128257332704531405732681415784782868525367305712680402503801822129585768731819456133125329443825841058759003821554565207548302268149486425983287755406509455880467960936782316075793237996955133783167760707451149730497793506918414749182232440988780726248391063604038036522336777730927632973498576586278679645170761004259026140520012788647479156160856350574998790356842172058502392706940272017725420099707422315932444877100540148982465466503139056953586192347976292583788539190110320941612094243061689114868965237602682211853366514314450094102516732295109524405885105891114001349291061375115770915946096189756402771175932942352204838504263336616688058888946811342989812068451320242012088350838091722300665862944640465654694835596512635939853014661833431260568551778880315854066137876478505272357115542525503489326143363696642661637560088596871133205329932223980390715302720566618511226011475681976754653701791886515286514491521456361672784349566747936121938539387892700755794413697431112041834048073715292493994705827556433321921863813873805345489892000377414966161450512857767905220708684887505821252715185881207573569710481910919727410261245689769850399958450430376695840807199257297742641823813521951536084159051329352563291495222598611136758180958999969500698728286811721650487762558684004384172615000977478921643949788673110100607638556024133944143621961650265820812277208296503515222899821531439199046847001783152768802779052241278096647168539378998888667396879367619657640864736345443086888340363255665184276416331316054868331284289728622851646212745840134678618712874384479751850996567600380053777877142114547261247664978971515807986407179722759668547809573125187976535129712988685457992913563991058781858698635773650249447968025494141351837387433217514781824939120135485534103674953006788576325537996102914683054421551929188776984427890094402557472029377478385443170524638552635467943116253838134670046874163732497998990051052385012552841153854332813695607699378725249540939758888761498291270327119833890745089348837713141690202738190120585298974843782469383811330208971444045710135878805278458402817581680104723233504492176257985071062465699589860707094933302719861308672888300454102979082577217420888965171518836215260643198192450048463788164944995231436436894287068754166976062971082000805824466749159309314137105136488908245267801361834965732600978915889467715812627256214781842304656111697674802502299654615709554129177983472935177023220769028178936950067961369154823046041298693043409126774703858128497836485258331615351876423660610154217969364289092288604064286797110534732341115750478025072906299945003608088024087983091473529217937036196152043290993763662293052931673513510176570027184226886044568918283365450006131971427263826702411027246980755208048425089723340666089021712783848334119351648003507652609031686409110364929804179634471489682637021971210026928664369526896257672986276442119311611866447728831042960015418428277374722169706107454915242223730180607217370022707263655427015801862424481960644075340370705592745229152444118011770521554399245391239308078951629322204929997285833442847034765112039482768907326996458836609821114595560479643971600789103778045425960534876119769259551032242513946623843556222645723170191786372426483200520122286574515607012921115851302569969542750785244492522033501263326249890728148354057721573615520856020014421753148834220010251088447829157819945106890537384790630746945047601238360884625548478020541844359018223716836057220828896610991781011019263409327064772006226724822621145774484165276983939600088937860035119936056701332589968138900210900106204275980005499310864184536732039185310321266837517530939860059904680714199432568772591714968846436876446210102063946239556564297607222404227595673941683432329345951047072198478489436527526166860197981248937265472141057829404960013182922637532899647365106123572836151347490105540091401168586837550025306918127118864437977327804677341512237825342957814781133493622995191003658820909573352000552928297787446438103246122109959778409147308071868473139953991407152869938419259772181507670559977254124105303455843413881222868141425159798581629588650442217499176012184462925700608891798798474110685604076545239737041307043068560218116454029486228278744910174658840260806835886165634977540984672295424240751091700173012840580167532263725026468270210172974376841023673487285031230695375078872435861961917210313756949151791947221068963183906684228894039398228190424837406637347758890618417216228395159573462047639757993961024335815300913582654338627489444859697564429592921091809974365885547519270054228340910541243819385871647993078712627076302830705464337126385250907749251273582437767420986180240326211349829353804028403896501396655019339461455944631836175230975339960154228382312749475178960391863246072316363503277485086547144561359435836134577613613138222375450431752550701877590255509138456526232550771185532647153518756937482073276649087794019086975880185682707447236713848829813820606050646925052830763534036981143175326621678520149706374958455558821618332910832819554441883765893535873241188687210167331371856205573971380731160996391033886244444953444003145089374086875345991635030526383461158663955269955687230556577926473650007295885657849434683647334188066805534372039756800970357029705192960729214294198695817283025119886945962259095415426875355775670540891001217926286692219324548605553231331788880318529909273485583092245733386321344089610519508739708971286854310667249118235941990180181704035389047591592519350217163264383545988163120496431704147348390795065410890407592493342076919192357964794301613077845032024394489109143014095711776308653866733588319291838946906472287862463462222712660568925951758197057270717732796843320214546239190887570625992887934262459710189887723567149714966560097561661107990769066257940203286925097749837342449888510824698240036797374360002036830355122237883164120437040774782438629393503868366774127234452000535980297681521028536997238340995354940399463815940841098161133784335181027915776163441705721788890908406687835868050931983790960462383582514472387563895475183157671993090769805130883797922042251716786599905287307383381710039541396726963033835726968436809679893945487084482985485094138467832139133194646190945718830561710696764527198003867315262808664531565265692171816539505171344441546858146092776744392222392397811716238006489229167772574294486637334469563785407938220471540285344412785398973549358019720354362041642867377703741738660754572516709269167906015397212825554853255931187920652829379348733900846573196851606412816155112796685070592376339091660722241752624934752198200810466111004827556272775481643660538485733213034423957864013128492692625163234759193023188271729009701545769759369294576420496068566844347395196455852987496832923271762642263219675714140844382766978186537885410244726124792472431915045809195222725014728292678682498944925506234675830047143231080388990711768576632950009199718087686800606599097728749992162431602918975798014884122716728235174187871510360044260540744110199970432662402910776012775184809806454602249421306688001024427455624817618720840365100420750838285824930747195229003770915769354241518521533711951248857968889876638699067735243740845599610351921331792767341694162799613576299289219889723422493681930413515697290082636264722453369806905241780034903254566899269777344675925330715259659665953536305116328703844557601089741745551034387418911407212488653954313216918615064015278297738695842037684233395321817891334512022048668511920293246585070829265957183302416336060111355008513427763915218953280253544816990380624861020355212817559859090199297135888100425034477548635734124217663765052970415797755160027989662850547181489560667726948535506494807288830337800886542134081491178397855766213810531932097587998296233319668355156404883186341733892885755093133244624777746282164701323038951408526849592003263458874782934838856170407510878620428510571351633242413738398427246804536052978748539644740034198765412850207077250414305129898826165976498822993361417700601647463701258595110134317349919480317443853692158001877217276628779635696990338854109164266583198166130996630802294425521191081575475051390068191101875017744639511573891424010289720795390661310838029955098844841401895484860584749473565434747074723510582106833549682925657053737396031529144802301378855254809012842574382574012084373320338556040431946019607649103455537980957558201091114714077353223500037880214840898115599387770523153643384205329649544677713891675501451642290673515685046214249608341568726196761392015595291155895603946443850962966367934935126560261784429477043149048151880854579865048289785825976119193200302740545912552384941737097003314705396843866283698835841404261020296253683661405035934161450301960596618373498393218134095884609484434504932378742065895421041383448617999202381669688335593900095378111078196206995867957547552951903976817433979964138819447713289477181019239113446749413784328431343942046639019938224081539316860858860110042019895164220051244744627242737817978439212118757618097785735360564659066272591705496490783898666482387465665992527000063722528956297971563836560232742707314706279706046894556446967671518325098121134266211100454544425912679509176267342657974290992315311705785323655685731949017407267614544130053453800505588756132682807350901983568382858099399954607181124194398022618218451109401175707130306096888627496738135345628122883833574374572801045916920177888277129655755906231689839100694889013386662955864094473388929108402606942401707167808779611482974723041411135703815355569576804244688578738340199403797595028601450782428070671944050107997287987664848910727095448821127429028956347298863001725596187577325897111022807121099126069722817237592964443767402544033404265635314601922189248296747914212895937338385196783366788548407507147644232759578207770647144559460397508555255247834120613492428985778101114780942993906105550598382255446266816950486245288027134955374472559238731655618612015130836394705300564000526920455361738464722736147557720113397903022707386501976610687492868244343446914155430130761799631604481590433544292271718542748176090995907847140252634824399377464684509320017843077837921047505536106130724743371889705954181130649194826179848881359528744503143916389401739787410680548372013168459746750048879786475850777632134091873726104245482008879186672054105655245397784270276026229792418441733048995254686074138565191836736107274444990694594704060072114081830752174574520145560560706561182516975187137167551443110366870671323556039048745393952384661264280909295761001810670862515378528851681015033339955639283948591599881315638020724964645775489462649444767577632482176600101975423099700742551360703039210902238525638554287905724251264179965339725597545358700834243802513430221747280077397586648303361560816093908566079818925246729897718941719170477904334604890106011414940806649133179575910735467602760081410245168814689137552070683344915613131196693567074845300177673513765640346704835182594685636822960385371103346280027095470672346582638533131444167058733172199530814912337702142812203778136498466020942562601906802764430515093717562206310827248710921365106563422145506264501698133215705920334469154421434384679161726768461360780283232719724148386172297012728070161868259596653595983478232139976062278976302981467921727951456953626894934828715099249586884791522397790882535181224786021509922177608665043772814349140957857627452336658510223772040975766948118730093060563477727421336604481023287685557051434614997274487073872438189301682051415083606476449406911161572359527192710705590879180984720068007553396020185646755390023349993211002343751506410207200251858897882950320901070814919515392808020147933069105349854767288254986987798859745339148075883859118876148900871963309094018303641834405437439354578808442719328784782369597525666226435269781167484948596242326712009761094482686424715703003649640953015372459382122557197476887922980642868832678124954508168481362475741962468078361108930214149640113332877549364879515824366537454931963539069306957659511703184386280309400374038605103195021246519393785596584475639453531621173980794998890294099052835737431849675754696548609391230933076737740074975050974708135883082123544465139001076516446842466405530355354019045274584911440079762418669193237893630500694939681256817092455270670947026543103918872116136337689183073484175403750079664263564424439756467153721643707022704569697822579689354270807636940057884577089276184864943385475876256661373697771298222123189941217592286915096859360962787783043105932538597574371502554009300444022327343501333866366559604853628941240066282794867619129312684246207179896543284865220714842046267503840099399395175341127726874191528164896576045594877344333272337994845025496781647781701888342060760552049595627051784117478714755964541626412782604027279091595700332738693321610234938834835251582683603614718810309960557844038975315739145259037657470939472101014208658026108812431913924987461874190855172121487274812329590918801642072905421264666694707855784205649458729692256842677928709625441871766919733580132127000423037005244383192090705911396517131636077193761009749508264074422468994560674216362163574208025135012735259988172582052815188997672901835886628076347968256162906734246892061437910591919816249708945931907881558927111426155621920275380156128802636620367094671259974192988101862711149285177944215540116479156124626331722627892585700183199613558423542256166212106963993690407556035227111976903052117763391150514630821521823473534758307910210630147444084761844049135056737117907915972879485267873382574202571150913589507438324765814340964545456294018518658684348880811842764709155543307361118159089594196087273924685834085743092025161806343390186300891750998567933893897523435769465069564649855242907939788414429324611142839588074663577238652075771306003359582684175103147663067517206092710022733448712296396455526048066200701838983549772373925305197296174689556870957420675605705298284390311418617102402851980411655370166398531088471419586363223392988311884380817523410203530359265436993747068928298547743768191162325015313305819067152218943459122921247034664352741731967951339086569518662897979824655105719731913671771077697930001725532569893004075044629381079846984925071700827669101312321424254929275128938984018603249253623571417116758271168001978855118273058066191368366184515261457559300122053014823958822820684900086051153190441622807712790231733894479866048948587438913383946078528428937145943481671894411579900355400688785328072102948858598801691434111993482463924408198213383289824623658611854972407249090055056009071603556872581831040171727334885530214988725195287435059499220813568971369320660865578817634809459642917507742931688495044919827727819073118350729049296543949978556209456062484399895121112091500303617091557723234063546473901089413434171041848017598596394558978635873146241894932039471732977462722737193199384534167671910953748378879884633252637657866236581703457338807080614812105219213733886741499801925577421841761916403901341754134908795123304721647149508145849846326581154343338416341072818042213174169346228220430141075400988149550053340520040443146183787629444301244876886709449933359400624857444781024695408779473921816679452158174497065669026932232076431494801616761544675102603453749650881043638252697643785494731812351531104826219484958077656588433149157028160389892218237468850346093902662196536188613926963204576971372900376516504084384391847079069207352560453780566835749681016952751142053910525182199238631874472012247059115292208384983635362364888710714228287928751683223559856440026361390499128092184189607983782480158885067596897761006211781812763885187137008417974484216672546600490498529221970282581400689605644438875937323901223161764192719892311620160891850121457776545812868375325956094161053761840743740647691951155557857872619628601102781965631480622142765839032592454894589886850381978306111064537296803142436164440040622246032435744122082224092912755192563861725970639295502402970519793109845233499437253486828566461567868677161500240647490063100789926791505157163200855985400356783259620977620327916260534753199196128745901039842526198727854854804521526769445406255831473248628811585556464371542013317769819858801553262078766182950485767614109078080654594836652604745817907779994055588106896131398316553537781072185196769507801551027775141651623927616486710197745909929751114067349987679873621929676042501104864383152105021303492519556693281568704541707429263461949158687432173772753493888407823792705588495391766996250387199521195638690876802182971739022977347282032435161783092286110046088270299462909120220312556511107804148593130153001542503817137750257138904421809316812708540444640470072929827203644759554842031080676737900012955883635071200821185982673392801621333508718899900500712741640949324039925330939646106473393139052044185408086480064981871759404117581331029023294230819969413048254252382425536013476353536421974778871425084201891407857313376011663091681053462262457067575410830616747343749935884715480007089668322803341167506740646619477294103766030940650373770125607450996831984783519017288062547918175139324678345526284604776507312756296069587707695856976333178598681986077112080998583760888884931980649699848333934679308966183546329364261532604007890325594958713608458449700133961217971623163882135395973463394598066473125881127699243673543256131812992505974286167740312822001087447426682092736729988871753148201066394201775083628800621775269267986173273482541587525194104036008789514990251256792911764014662698845776737635828219493540770472616922182475062911316363470289769055041059600178649880492665873362710635187640550316856954277035992330381678160922053588054052371542736606495650333755039831959831214046259125221812298492653453530466087847200555660237931621318654593536509447874410621613337951012477130042501462976014189007754776218708373854680179386784182868648845205370930193421436982975822410679730503727015185460630380306971830255390248161528888927302277557578860282153100470459890766216783566855282261254912306811951332734946291091808708282073548162863508135367807727852895737288014060582860923495037904680316800605914660340213756750270172373194172520156597377940377484709640996215919137485168534912486669026909234281655689001910739219159446408521981183762427953005995426396846240327229544483060580210889113162578808447372292184327058219945014015431879555759922043456649328594185429779313526833219744762385515397676350264258447725685716411469787481989205788017954724091063894582994454936954358031588359881938267704100108626593256760268224603388865017783213649976317785828727790441706880662358716352823314665055913295492870888953506782597835530742769871706136277498830727065350454040986617972618402468263454383569402067585575252386239686946319125169420446674104222029943844852450287149116508145547399170756002210414565858462394059741226322499258880095968663431281257454325748828079441726122679919185904980151121597929099939828016644157305842626493801022433576702905894280470098825795847472159214579802719749747588376533191896308764238758824421791998530310790232469930748240445474449808088675351818064689157534100006316464097173276630011975373243938052763236315476855324409542953454550923325994649037971891353242123035045207330941752571926392483431486273548221372388887059155526058140146140872949173878730902780796141010210245329071407316755162716625881672292741832724599950138299069062710331022428050398246277728202678426529886324921874201705513335048356452023454615164018506202518674484922539996118247625481524068550184983784528338540497411015286459020011250084313937408715167545087843475685692322486488670884726498809638853345942405120258794623053427712083288585574891098000772299732560072977706945464985577241900242977934316097538028853911506267440330659749464327940789636510855447586790979389554372020874476737609045987890053139367817011707225985588787293404979873821843694671768948279054512057896019785328834187204647378187275489045298695419425754559137883518493698101138986707712399001166091521528713532923046900557138314766250312479280748453359025876158956860558553825533846319665133359397794257018832227910795499033049410798858737137227911547421589294107274224644522413628566599108508441431270515280552376141821449540161725936816730692340633521539193563886991653872039281164764495759630874722392258411179807951373880983156966446493354377466062301885459618847343439815392925234800591594416876397701140497054168707382992612001160019703853976735809478476519573853790910180481138508541657618094605151099535528673481980992240698428617974859335572522954950042360735974013733034613099393786748510040935759048608691218579754313361009098471452224751207099168882084139500407965179418731592388534941336426938158553854359538545286890165627885806842588112746108566394087896120581881939529845990496135149212862519883970366243956063719932697711682011989370340167240593228017404281706940661139017215215048267502058737683824464889817006377245954406909902122364383175451612336413787531615387700806059358338560485471495694695521505772711052185640164340930796459099807219213092137477117517893705431287113451445899327184214596119296041578566856118261393218500725358801831129926043072841697593384761896336498515668655537824374849141446205958121558546098157221150075545779692730081238199041282830181636321009854679351576434092218897750287034642084401268991403823875226225204745051881293204071050541513668810512938100678296400034524332810044100867389000120467714206408074856416731580846442042575830293368332138550012282247795583700573453017863180286450859415198506894447092164060379405334834653801756339376283779400719409823543457775221753366323721029026189275706019502361836498600731911161126449478185859471931541139109678906641484303646267334921211302973354409892440750872134438390129266532892548541563554143568259643338518114816839200378909235077735982101303740403784503831993806593438791090362298607665296725600041026612788729660860151343669919953155257923895120510385754687330238937607350213483064593169639570777699740613736980990308244786447972952856648813280764988633224841517635698756335242947642996920075270532768208660035301068239425465121579861500862034452407385002599825018751045755805262551407574906143040273827689142778488999750688272865490816886074079646548845107913406029096400256895058026730652793875618467166146046160970369406389839374469284507630482326495488231696541708702515283634076727973560632211558374175625780694421283335583888820839861727579668574404218270445887167257997903717828724718268589345142589171680271542509604773424232883119430478581402406032837949419879753860837454465532096462247666379238157803954757562784882804453293419454029172589064703298063539283440063661125942447809771906667539431994486086641107939689221063342319759618499813900977839001664292759003703387574094281414526181276225065347490634409639904412496825887887525710307815569189761207905871394653192893199272644439693496794941554767976746594308667161867909648619628418027065996638289960348575162319072217100719173983518123578433687078915376504400201108373899817030269345192458398063497184013529189785538175157411386263672139182855096778126607408262020424590259202169934826015071059920969450289867678091398147026913916002973952219994542743287218236189402069019173290803675042331709970401279592826884507531483276598090001216799927594971522943522589715163089355991686995117630609913555343506787960974083578322085338290426161346926965698959484557726899149627635325848172718667811137849714469901917245730095834058055853677086797579716277115359319097632607055789570113156978423294770709950575544749522020330835006018526418695990860452287523219597710773221472791941611137352534585696875266455057901259207721529397582402865677931875100929513469475638699702801829791907522139515763676470271003910425116938500135307405343054563294818368977105782233980057254770954280593736673537430263579573375816751393229877438209572520337844853104105734818976195274300862773610022124994467326768463279929414052245714428633165347213590958081132579034822887165985224321825107223227631335682677682919820485154824691890702337021697335531569677536015215231136365419586721915110310764793181798062177229839248400022280115875294808144740019856758587619972936866363142125390385657908568665931802637639844065737438292847075481546561146425407960319122352905141208459650420875023240302650370229353802493653879538574044553198635022236252130877090571422267543645108544895354690790823387917054694845143828407754973655735434817004635481731243492962431574484644187490561753394160451805763492621233373084359662475999451657066218645424122777225233664700422360902780156995207368884203854041174042728903507963935549748400640162014553367895284975272967891256072735573694950467600478697403038773673120183516803008622179948906039990906513904310554974413452328380653291241191389816969361268002941363079362282484430167610885060676440863409390496400190419320459353893614553956056366647119373339817463349802592484076616950264486861525382650919720697801416093661930980330968459783674383228708888816714766667925227315326789686887573383181414828877749896283938820260971066945345205672976635483517570002775614014919216810432186841480652003317301343644370530051301069883202705082733626013155045806947311860459169683616412089746178725786630535180894162504885917923718988131759041478691826379508856626540094839289846478798786420965644602627503536450365261076613235471970674871927427726567810474708679873683730909072870989764580999215973107285664591916129772461822972235589474717658769105887772748866688169363415591509454923494809719937819309444663824994014241454557868844302843821279978036505071673686395759270978209389585872250981794235710017818498610476081440986853754260026586184604821496331465552499711393213176446208425223089788761441383168962790274823134505882108950139354040018191023201097719861521114373006247154171373006626587908696879333717680556010864803507241108995514737111094859626326981634557657375982825941441139005679401295003512658465852278039402316997642910333855678026150933256382326898601412531444847434649221725217674019120312353868960450174571519939906732536014038322614600673642956667903014104311604526953149949702080253301460253472117470443516382383933386452369494005598943529563476800539602233384303350512048879465407355652690594824589962213064243255928177863834610562751047101754155161720573730903610403743585215401255845824200380061457400150209160822222492785043580558860598593588490132027651849811935637750351529611623691271480294071260344138268595009292690812483614363916485094770448988494691940534941892615486743323959321594838579168604084110761298847205743001866494188996885905678185168473327608660406320962636872572889342841376449117490035615048160652681855219258252679695151688613038118020208956615728031061505617822275228192883759268062817277206812213231316755047899819172455969647071527882184719849912665190749957737761437452894276040346246538568741588794333376022780653161531825920541016814867626565478754352634045102071766166659613945940234916582292274706684308326955285618215151386458056822438550097685458473947206182025502481310974383548027694183923713729076426689978349972831254387398660196271110917503726606247115168808540685277582878754188851224214179611752867009241084406824526523993226605884954501915387303964911916313923107814224934807663911075395357268793106635571527618607356603332580368644412241834106534012175993173751342251385646904107866548422873526789184831139117036991019608723060091322379017590175554582616402102308693077448912267480918051563314305702919028239638787686962291546203324191215661523460509658179155296109952180327184940567499253195933035273720503485773527882297219922934947874502095330654650920523704066945837277230619184787539421120040040103033048692214922004783570216124664747103210350649826747419568415329722691402888054262377099746263099193334078996166990076477307187505992756926191884498045903107865051392988979866518314736234278542314857783023221996387042355522483676573243800878880957532215858670608909960963229463202746774395171581895155258856920223914044833726845775393983625898482387762263148028675841424162202671994432363917938995528310870663538965664106325569866483160503242696030192417949901952148260746038278262288957189844778494826313127343858660444725665989937217376438602849985575391636199456003035305764626691212349381194158939170426496136667208108229272352028152342545015649819469458597494514988280845321645797466360645039229057815549281009813505198861361761050673309758067504009010155654640974009880719782143966405390185933235691908371291113398245164661724956000894172345038440094500551632902277665589601959667681877517366282059561330405560714930024307962934712753848780649751243934038543279913029256755014226958565664898444063784518405837606851414799811478025386093736056702349735070761037785397744995446601505173720319972907951844531363371452268441811196221154381269718104351455485885574694360837227244182783825491527572905405957654915115566939123169342893456026346646674519200777330663706999699433576424193679962306768226790573086174934506053093746328285498949986934756826008245114956510913395325050606876496483091908963620252066504588773272323884534353097097161218685121389087238601158743322350510329706457225202629487531663119069521352638920971969157973571343737581362916662311727699111907731692868588168553752372440329769561311079870807312812832626906001550818933929164783051816605286880836002682990924988990497921879301794205477163970228836766167932811334829506307696278199998392878624796108038415828874785925968764180520609827019300729272665987596042760805350257887381209076503869945521937552921449003047974539659678610699220140446997366210565905261168689019852425092924018267828089961724584920391602245724041588755921393484438008007169995448911912355617579107584870624211377415061546572902184301092953799909173477787776226798970094792725215437624282462587228768685708345459257816890684402870747181166046063320491388747232672878870284996483128929918844793082955651685882421269199256341614677323308293109065424022497557004433521781582167553991503504329310819380514082005865057989387206825319334472979385924779946374900086087224613545500274385897205352267436979241436676531543791414782169923400494665438097972098519458209918763379746257160050177666661203792021010337476506793349374395204277515628467797687111798704988010576965101447241594301890602513255921050057741553575830860291269631566562503081791878694831000404124812338965707258413843529347925906951880075181505280020048003698502264149904791908426658702327479525276563563509579245082898167036402208338511904483253742547327688486819097375259354405816143482555364202604826695229080510893575869926431562821182617820780216997598736526811677219745956041843781892643978031795951210878973898582434748349318728489376880765201386787455897295926741728003502167785859198942515755285160284103987657390835538839777880322899681980282611775987256511813033631701232318676812530070813045621952463311672624545851396405180298598078476295111756113314350766568859777761973128340603109686084186750146733771649769263384354160744116369428669607565166467217313483161819080779965839426585344166971979790773055312623082527825142666966083735449066411239842925112986521855156711311743573502911482368331236163585014576353777159836639986048680121277551960292494560516871734718870752530746505652576245641188506336122304875216392730029672876113131666424136742569693467487413327553032218342017922639665113287750929642944748254023446947436746195895752804293566827164906781130392865105865961406269963175944599195605585438595394734057791692846810165993622190116774882006836477433223283992573971796941412802942945307868457731786611926656949444675334360348669574676498455077385599614351546345647949491444780931589323897925357358606263763304109342261296973553420886857516670243656870046603040473328164695743971289009490912584040225983068742013985955932574516200444679750660439541400990595670004215352106174878897436529356437389543154269151698035399466854294663614722468437876981626339986312634826076123766590082095407353908228944880395797563114867877310770737624217985191592247909607696754816203327923454952568053483427036210221787581118366080355518729224254840664654361889611934628402936532328129180984554242457818054190723157398552805576427910181402684535217772327028400180266443857053196051028546735854268256539774815023746929250045228013068504056700244700475688203846946721893361518119476864355653469297073874942296208134639049637012758196029227075919520103844546685211321852362992352349140155391636284158339039636135807989635889764408029674377800448453317317570027145600876449406425180436870688427025375724687151928539119622273436151738702415508704941651090603653675314086665042778995125687617893406595114381912171752582317668638442127108379036434544780114115063925225211251019677780163087384255362498757428603464339018719426708751868000156169205110213263673237463052099441660418932803895578596993946141879359463828955901043904571718994384128029476308972201509006043896624496316240084059571226591340007871892616301803865578425248252816894896043384601913215981463370853180282818229361570091225107084183120011804851849549363916238720956593841115831891196882818605474052518131939685574326732831449965241985638589951492966773250150450678220502488453503085637105411988376546964192242963166707982509648918412096080929123915408270405828741236760790316973485543948765378150925121451906970598677604319681481870097798396530503198634671860770124415662040059920859633007938379757059268950935349581661936918111693531998797725431568619195153932738287024604855641890153865224567805477985986173745809108896606413954963703648988888310845492954076301906621504653548272806840978271337647501380209628678685653462661244906029580928434488444954262815267852569819822270867892385669231298873068619796654187763119889382255528349822964070049412437571673274887701379064095234898640894535671993318837641787790136997460785719695450106614391482347173582166822225323740143645169094549511077166644426206117329016036816997265311183621588538879323358358340248117927481459301194993308545517522562181068757244227514233924974906053485491911215761411426154712550720972677543244139386351769561358292221483505825588167198684652065516173218320208273760728160977524659565335245015737724095432198261678905718614669024825934117493017166557719986523938937240878901710938323981887030987879993565045443650058355146895770078430473854717874396839342981116291263675957930685352226348473354752724621016595404121653273617655851701189207536304659831829875854012355428727425840314660030181629049621627806952265972029957455394210523139229586894144521995231295657652801503221871590485630844200110724788553239692801928653330453068331471931741246199861790694440817178350555269097040356263228455863843339127474863123223481401799662499819189488620852909945127928183263696665095989988855842855156432921595930443578964724310252373698012886452681285142099260345803676898204139670569022231791233957340803775377274290434159688872985691824261020897711587022289468987944875684020559899461879944938778878345523191619779523807764938702083219684570263493872300477296037912361251882995148021894219312288487495525463842363207344058637137131334520291097172866025591882666478620326849677090579727681961087510210867274660562983654762327807874353328969796720294650985190902268627139142858625084516107979300833902399770268662628215621810107080076412647951543983364008509205316933286631476586413959856484418391611685492830768137533508846093289740188062592836467091450537982938772678138042391200590038876403025996322390145298885673845256063531867458017459158228088207600795716780153061801747055320378938812061221663967616952876626148175884771183665230737061436701725401834247571681928304483131865211320704665476022362455990373737015697841012662243126793369083986529450718083430732312612160247106123851949668920466518166799579853634601235590156227012028233695551483872671322992550322264523569439554577382266669570086837330995016522555021856656628023816267554615756695072681347203275949462371420366312013791280742060862119131514718674472771079486789058832406393483349789667595978444778445283750303600428653490347871121333959891337288511845624382515549795775200241611006803049532268284701734025453511580505463181653801242308349417760065738124723617851304747955822911291061968696533044532360584755314735992379628095133110901031108526877217874705992346510417883255613952352518521290459774412113876422708880945948143405775979395835977507589649782212939732325984388147975291743952103145860016876633186189003844499407422828400561223920236880113654905941436545785889562784686627091317048004573687432246506619389018430510993436080219810813303397033405588658369269773180282645095652269145789090207116583474420128077393070070073313199633798870263124023340522378687093733069387585836823851408338688370103018614226777103475248953807351935492638083986438314699375661843313963788222348479380476187502849060468612611056030004500538674483502475306541118476128519322124314965941582804473550895346758738838607304288562490037035851679489083493418369025446823011672441971320236413894609487285175273920787002177578398529968292169225678940526915814548167772286987550420958965810497710460571871550893725618551069424639352156664482800803979405824872670307997780775751938681249948395755936774189155879920726397156227636083922337770482037626099161307126257248855012967440457346001663733804991269566582759420273486614759249321140701978094980026030220520554374438655223017204608726693576014516025628023338409006794509722791090306304527599371007040188787178788268467829377705997575040949404124667731682527871713686002230678878624300224027395023831230562924335501556905259140063236262381440452184816409337436866618617991445381258536601118996050157822954446419495208094440521040818578362929997145521822585809600078950605272043669323616007924932728248154702836762770453953579836976874762454500190554987525223735996465904733196944895379733958995342137860778863562329218879945994644807229497137277038351387240537329279287019977272698902154942947609071713129736477771885097770696142874992582924054725501935709880084634342643650188055310346196893414445090313837873925317720074329384829167574974511594801052413183554777190242889000867372883208589358803112920078162788991459601971859252136232170905937104066573057576993675350753895604208904918435456152987967676002665488165899077882911090633931258921026881659728446090391877085797850425903246669905176027716561545817680235162920672117916104074502633660478688671430733304894903602369904183097157413640498566091578006302257312922439220326433684077096034342023022772534487098102604813710041182418870210368958220671431927429034274773538500382159431910079888109235268789230447306867267569469442297058985666290113148133767473317119989815967488281414443333986959400324022553286714885604771284951506197010123071637525432484618086733350625284446658312003267896464331651562694789054758608221990475146999815870243179808814663532324985484754988132912189799662352456387631243975340986685725359407173133254110671838938097565324970639222487575078289578087537693714479543173025460587363295831115793687348420015511367777623611035405880527435602810668972654640705465175520650788229138402928261091140557538589270710822822011649814020793691039535535038809750541338294054655433138943052326709486436922337040223643624801535127803237542463718839724265984534656075953416545471096385314851946409808997525529459567779156972323107901178761631185686548470417604480048290969334493313056001029891917902981354847027192211754857939006142243085641160865306767121196446922679680221609005065384015678917501581580889938033722087286465594686146255116301439077515706511254511184930178163973468623709419288004523056660172103048872723609031628829336984334222944218478770952477940865830184966934309974226936303510478378944338523205845596851481253584801977773180145942313132586968819845173301509056786389751972152297405828328359784469993717640593187209279388446947881543091727293726871005000456935391937980343043940664410433247175164027843638648240891307853051793198151360438973533987215509427372655710335073380023280390234032742261058705697271176424943812415028119106791948287391115010165747796455163929267441126970382578780619572983176178067541519286966569473777507464268612873656532820435359567802369335687858742578938305952324231944450884142733491771249585056077869581029937324009708958654267559180381080036097252671186407110385696095822663166577405557193743360837265980153113325210867002783298638579927307653549910499596015973888965125886105288310642692143154753487362646733527916543114089095162017966167957121141508876418412699259712247134596521498502464943409619310576083768397058322743158175290327064842820210232804755290928290625764916444958394386119839278693433168926643949538019739702284392773450866963600593309819915570167862753156036851348102836771552506346603349796441479753764812259279447312030513611598934148954947396467342971138141969028367751895179126093420970984016916812417821064920149856440292084802831991167128132099287858515231385405755014771889049833755164668328135116699966984973923063581148274425428957708588714563429140470285601702110205677315200693030964019266696669061907814017447203020551186113443795143850983434095822938805650477276100965107949058658138058912642430833204152858020623234026044766509913639465818762160117141812644143802579598799051372215752740505107277689793869665192572887523104824788349071719070091878013067936267094394563205965167118186559400844828267899659820081646866828247923420322480528712283934100406935535520910424124844425910129560710427408770114040830443114134402108068096143897722900318705743234116952370816033804112889812599253618217068796635750427001802981354535091033211172411143752575966262893012887880116876518214370419194777807704286357271994811373488517970695262070230167985998721039070794469140059908421529118430256799409131381050337890181462415471402860591165265101614302278059784454376201392332159401578411885552314022420887670798719170345064371757121393892210317289891285033305413012523126451519608287972814764527358881628636368730008023505177819004618609980499081124096992024266960802803881292895564474011113282619053203672970598803487686056182600624265084408712719265236412398779354599675816521665792723079254293588578240105001620016180432735193425156286529787815221829362324194001493656378030287770011593221980770740379565056543352812476363034479082134351340487402882787859527270315586158317967987996252147240893270985229226258155773401698408634149595291866279983080035157643095338518556869630317428119195837429529740250784116797617378995590310058988595146584639174548170552880781360431177818427470749279522939289538716875013746772120312789776759268117438466493372577566164701639955854428655040088295228379482156407379359935963784158225700704500871079140383373141967618299105898445342851586774535300822160403527661717540725870245108416730520591977434280282847544008907054450010447780307441665168207636732378382810651217580506228918987601036702614345656755780005835858803162040457060058388803697843806611046529778032179932417445981983535363204399604837335000588666869309197333365979171505900885147341157043751216353721295179632845544054428095553160752602666024574386950848071037156951030380345787650738680926295507059618034093100561625428674941402854860598553128434932228012286956228634393230346005367075637011168169954246619091643534799638525211200545812294012793656949486193057725147098441965898824046784913897202219757270799609989222459076796634829493702340094676403546462721896322986102918305263552342637570479045945615990905751425536482491812928327620035279850788430353175816695997128031022413857245801581691530618599775327168051093711733643005865469118078185594866894482505706056536908628785884422619752742493972368643894558269595088569793097369638076965427242302695340420761200350123629048706042005803698722303890647822986230553623351655783023515165626830528053546429498643412556634808021236826626090611215742139933626474002401381803282986963371553293651280769028528364752262000561382216175992582210516431646467510018238784624140329914191874299937194186006719579025575378420497451712960942603900914395236540249204879451765675768104287958160743848593107509717624906638670176883640132354062772397750123549496930833319918818773149499549262046819555921898319747065922993976677508368033049037202031355360421324172658300024516525489798569391057123340797732584338603683071202665297461737900209624122866065367198523320199837961893333855327663671246620609120986316460874510057254484158769513024630285789692107924237330062074652031278094342815967142019638087622911785425936042453319768082255032488147478865757988275706898699201490632275050438348745392132898022312551831677601522669569885932527861367903785252789611786966016535551571483830255114497670512609745144425193362286772739453497401756053305804838926771642348911130882019741625765037308569935658070485603561718155955242388126361888348614953109893556470934429360169340563056929120953180032112419228707991602110403807660134331682175452507429281966567194057605134849775652309458185045100593830090450086826787071544204737097954841088293411230101309483793207968334751393865663886029754895595920469566745695410140325450761710864908115230541655075749698416180388632271994221251904540044465696982573857247070192816222472371977790422922227047286111794105846514605063590635198957318091081664278961413085673733252847884692196609146255408074527301111590972906635153580247609177719344105948405141415980403830278186154291641156702738686843608041065804853490647374228716284500562854320131029036646956071708170347757470989282788678651840010344795839681247761348827101137567967871462266860861601346304014644007076693294555130121648989719621571283662484769012783128948204054691699136112541373057845025078246960529427267293756505318568240264632161518425280861769474458685719569702869652896311763170022846956270175913162063594739940520056397039038586374731225161431931863196519394400135465421326691524487250552769745062556915131064174604550418824017049896746032332406012403423930684725245990759906557269836941495715118842797602496200895434522171980112925577419594394655140469287051214738570937917547131780293355433295442282958236316275124087464496427216484476411026959193083731703073993995394816411189400316690976384749714786232668849968916393330168947756590019033860506206778865469041067152314329018231864051453655706351715016806530078635718420250918090796429497205642640651927060203642977230361359420914105540475313985499146242757632097896349748752860148380347679116451710102846556221031809949481588515148836676631916192033551279787450024558162322883540419093678428872857487010531757420023975630859442999890932070850829711497083241649929520427692412500100618743433801557832326694229037532726050602747237582324866732138424814505525117971115722462627102153296862574917061119453292198678414782716311972067148993292002250892123194855280535826058789874672856018370109136069383106548477328977622149006755522397494662248686985364043081658304087130034994823777510736441372045444469108490671882665595714371933569024341119892825779058172204961950693931497202087473491004399198141688332505006409466316193229049090400786575619405940526821655143684322464730087831907069849108717643113575499955732318691629900143834097265812154140125800644999414160101412965511988758929121093957053465702654783961311458214637688623893168064826103811134052305394582476542930564285872980310252151868774337923233705386440121256371936624433653411523412875849117144521812205891868460352107436350997789295869690644066792983548561730723917391344432051628316714102535646658862680660911416649170118710359109379323575238533266997880770940582774463553470664371294785778736884358546662184555275432223965176320769933182236858351122251189342677520886037793489000526966563745150300155845409559137551013038174664493115197219816154043724407753221217101083956910467229346012116080317264804409170974437057659259599424482948144288838179789011686143607692358915649822886590178376484672816188052509949670374073921505860753999148254217384910499961269957362907736850726130951248550048622545596604734198352037945615214969090705944520627211649283523758973997102791025589734566426344262797400943711366787172943424704782688369424513530135616986381723419018361124409946846809828935238156407012209356970672463682663469217259054586329583798120653452104422268444692173697902433635653706965774339856595642640643598943268017101025254689331562940891762758439157341774766816463246239778362990480531151630120846171379881955652961106639680941198883476380644169030157917536581708605925478586883781863659667206731873431519824507935311567999543467583701094809182443216012476536203022727825082290211058887573498735592002192171762092342144819544896660094269558096082773754986577880136014219674729213772839663502851190451163333826326331304842067064486154992357876433255136847974803810270198121794110717735955684833150863948899401617693360056238495828299096660195395556560348655737190995880085410096580930384750688836373464120567933025323183554986161935843341557325745466304635622617759297759769952989034237378380071592811669894067400509783124287860844233131487826129314435478944780707846183776858833175876813727196181284939522899988842309372051736984905861217066353826526317916111465239204565299676561258794423751556136482570259931095766402614220220465097041663543915712235500136166971083504974595561386292048931988559419098698918112528147921966362798863547559434349626091327845090753449655859889839500453619120046517768958562131986796392447467535836427583374648050200590520578589841770326144953525843852743566673413592886760444587808195517178262950544958283793230896731460953115551226383737429770811497835816487880572205258640177185216933143422789866903408954394475181811415733297047319745180794843841492825811041660533260621710685332519442316321778602014901879650258185815058866285986907361621260843293153372107433090776139947154310619658637807750248814719130806625428574659639434598914862751470367445597826718022006644737960107303815195508668102412995611065350896308062420516335954670212047889781399774160452315107080448108096897175128554686551975719850544072179871582065139483398589189037997897428403017156045642857915695447826779070527566248664058918811657938716193342492913724774169998930208108950282432523489169460473242002324071149001281675638184558756897944861989392877503247002272449906327941739523827016756398986829423463959682706380813124803732074330512899628409209491844910757279275408647354483874380784079464587800682994862502298596826948770084780429158573478907351987336658358536574878629955946763223547561297732275812184516834894757862311882092915374476834248435866110488868710681190278784470072569702322086949805010111589625284068108641234173756167939246305461408694309000229515149170257600689336388932126041635869277222975717579934814749323076419085163318157264538908604774869035538430110189691294663352448310590777414697446132941659935792355017193696493666048999022178979543532154898225970073299440714625499132377670791683916033310607203766833662104911752089533078931570697347050850967479403925637166703389245112523074027433894682425939808089547551037968182471784859670185245708718334625301925847842204571488486084703094315579660862544142032895988417750516187344596641984826541157711987837105811528078039181946683985427354846846752952790676875312689675306406489428400864871818324507622287783153073960484994255212190313872971739493473176605978135021648519624128273033415747092511384639928700735189484052668140752407005916374453688549790010930450381011364378864957594373989462793637764383066294200142878161336521364982420494625627000448068118325315074624292526922242181877533059244340874035377482793699341161766836424815355923061130846982190936920204579433968438276291455167165206404856784711459401162758198240618237355214478588962661662925465902452682715206409359537101192937528718534750591295843799855401950431819682101204285381484801009524605542870343193400867833514432250773778803412089803926308121465326731482352782023902956583813823757944571352933304754328864660779983347106383417881940835758817326069802474864851952949489236357732120191661222741660159196826402515360705459740446941910473568773220107240156805941390304311034483984828081965156193190267998818878583705234434851359159228750123580267823180506681520102919201547529831898098358277553844769375050247289367252559236953001897181936278044299714387575068816446984873456666949557508765219282347583527019686905112719250813368678083644912437157597584456001696267702051701347318547983621113361170007935950621838189995840775323527918442408622761073648540753937816256947628411046420063995780967333811109410888679511392591670679780508319243305469384013134786858558746809024119750960192897799208158678069432116595522044283511036746080387935604160252572478043661536184679263210205285027906812731954508145780806538190251939182257481193547530871607338653785508910415726982992877159729088017323655841291970280122722596369522666168530088851511947358858868402515920816904112860381553241879098832623925100533368095665122741075795427889736792151330076697058704564443911668723951959416990830501431685614919860399612064822795559109431699315790200950921303740673513353314128017669312343652963690246895085386167648567009612943902342439255368746896723233119208738874584181990535689237524820319849480938621692298535707860166923581128928708198466574638001788694031138076756926441585133960880493584239311582477125445936262444763863820221744204834111864876160985209312732823576951208209411417427883086433451064218505222008773413950447297603951088069871326704840086949175248230952584623356055210248602847594545542486300342063182305636133651085219316311178911820108109723229248185872712892284095678394457635431508974482658782028988766880429662779422934237228746633447036484352894877154327156789807242494289251241982674349685211286134995159573441686363242354987725985298668597574077671387400561002237368489961753262571683253111669042766903029482138161951487626845874683867385081662447756134280512697498165504915059769012514089253023459836688324941491760932097482755522288191095157185690075897427512168918594167394892670493372291455777617589471289225505318654071557047795345813366062248177147862654284054347423774821395334654976644824974093575082600158348099998500557859274599899933384759868107241350662330947587311110704066803542019110034763308152929665995564319364783801864404955176805136431909515988847914474337425250118544104175081452038374348941574515246341121721720884369944721983973539972078718736106691719615967612381763648194210008394677495140385025961362069297296602559485357510686620719191667198229370189091280772910669768572606473439857202642712539324995880241291968342426830858861586043392315744067826836823051160850525929495085177921388766427984536268591588175652196368547557463815842131078826712487591298917074308739319825942370125573493495084457180748512206232739867187375358461037769301284233611306704194029318089105241515262896886269229641180115299136697817496413411822981492622772284322185522074744781203086965411328361950424768572334496512182153526666012599103859341346527784283558904502240947172871735685409944865695220963035952979146752224116043607773112612865522706278318706394592889930835789417591174254804531840235244746460814105586795313646460864564100105666944873608053816521358580862761649674023777968825308949816651878871936555110485292888732685786509958063290311583359512972338031635899998148007659008677488088325890020110266331999472757227002112762877879380903287574824622708022101133877975730817589932405700194878518982100331230191320247969676371425642093616133245059416187082376577098157698943064348876300313703793914631905878100912062335455518484002762062128152473430169580028865234802929215987554740572383239079817813038806616008492934762751166192215558991328260053027985373680972519349513921011187062318167630382774964275548197811824092218964414933648567239885506794860558870654739004822663101141920093011352919643620736119310759501458592283057262538703621853526396088594880169760073863822024404998527163781420783761431234449202224619217236075498346809465616673434415409399762097450893831878001578560231100073427334293169012168424210639415598720594881689240064046022071566882633887289059272380011775845491401243036965591251147779325560431990492144668750178008640551739640084136943603386689454840702141911071470721621488445248762711835545759399099247465751206875450626909251802061172838315718168540102390274967219059502876165268055054985106084221542136192202617956492137780428926154610047296886831473817719044760586392986535464244056808916644666046624720510048079906841462437669155682065477810154804101824838177899985749256370496291296593158698765857245646652870504223098476378236397098523243660456001182570083726693148726674448083875393869521041770325429952559553049170897501290761777513180565633869190441276713328266608932472263781285584839823323974583612479964281281145653999545870731299269917629779613653952682145479119205482435031251243915589850874257161351188942890997021595194468629358944524382393244290899151208630515453610440881406333765366935813131557563629446437805293604215985958649865823157921947771872213148106884968581819486225044427070877196847774342508023532012076448044563983972609611824874408511281127578928014818569363016871477130202776880171257381596147842885425436801033098695355887829816817705437180818925912645614216830533059976253500403711711553806457612153464278904096840988433699112138111280598146618994819005404339735689615811644862133534543054684433598539977884710643825840528565088272584690863360258982632757345245250404882303756185489407579483764299149199179487796347685469209830887746314769382238740711837923818255543761163223404394967907183934125210110191677077366975222802078343426720960857379016086771556928837338743057899210302620629910307299557056066233943789256759305115814322248440519049904925475684899590824605170360340482069624545932192693249674746290922973900128479573333584406245025453717160265879701514653520270740043576914547581827650548184373746598560989160591227332689009432627005597517664725035473977818422816945149600122546777247587301848240433453579530512057638378544460710906281398779565708708180747978890035629694675576372137774503914720143717918350088776782430717075808771443779239643382304030414789889254300410617814477053404981234554871622375894444089692289024157657101046023887360870888367319917220817592099318970155993321761149976415930670831592015984240994103633490268360645120635716414727049046995485995836537642201473687023669124940175375696301055276728723262398704819788972319689739445718611911954392169981423019136295798554353738995041373043898378014916618628009921418512001893383038072574908617607667178298200621975520574382314709193631836842337854100090383358844493261751057903891598564950940155155578307466998694799324478270255273989858185018905924927271648338111827937419535338697068512078405879777830087689894719433376985484901946843360741124810002731347298988183393500332440856688608529835776959814362028009362334448569253536441622309736953359894661719201294814219122209586776395388325491873431831329493326253347250809646255562034663674868485580929737238778855788859116613632707341317334670641644969784639469230329059082624042127311846255343394438347556965857177342272398113391249942627043314726365006441585470069079364490821180553325980624272556230150748569725393238184664158969193058987363707028532342392608066816651975207314389847203831178514618753364392401347626089440591444709445926054649832101355147760451459606741112720522810242859481451114213067831537771097921618354839564316369461459446251245771464184650337992561361527244450671546491031810472592366280780781547203418749316703555714104959648836088270234521930361716312976622115592344005647644326731298117277829862004388321179858984468403455326800592611405242586729156648270308288010662352467617521497889715013761880709321539204344583568117851772759540099012918299889040615962483718983470750303467543927273410583698837899338924484236095674736132304918621290008474773777620566660479666111077285152997616539793534641398381131684492985352333440283763152383070601611693954846599804018444011590230736926571940246476985488485423242763934354011519461575642816193461672742140284189042606821033522606378840548848176512321092244570689217788636048244424500876900463383515892509391093948282255835287502369843628935343101715245343153420754225181370346385699778477204150123272719071323967887390547195066667275153734829907150246035221891815158550993174688190517807528282317928688288609624895436193953674219963140123128428750849845679624808376005468527821994704118074616513007948088882662949407143819059455510363144931348595067936324808060482630602166512152747071950694036765439757941873085772606674493317372301731268505878925812865569543517002546901675310645956967722231347224729810635514325334831141542515300371233556185259912503681254629077841232058085197860053483105849985373718901991083216865839479440639556317355479889066192408999405965785000323549184197652176758639386535415549078341861612152561543164550465964370424341019068881458420869520608976135170660050053186658714444590504631585067493172714851622055294226145782105606600619565063530002404914789773810024524856080745696015094968961645446974578475460728661823839621642574350431126638471802805742989446006249601136611448828526629883906052628422883965535911273178221231014997649024289289542810416334622603915539708063766396176520555189650354287545357137696535890403157963262337989863033082238529408226658209295438279365793807469952409146085217483460370649355436813892881658451401736033949048971027257819191675209902469715043535974692415314641476930283577138561812129896034549107849410034697304894488381825482728156797149635330807981440635636915526412589253089100445453210352970137973059038269169921881977986214319890562193111736644622699510473435883262144637776834792817340031890161707867649911127906382132770018402326964770381808826691870547958080604745323572352455561270724114677403270404657591237101200555391812317851972427363762834847240470982309373726054711763386022388923344716394994734800144359007451522877414864484492767371510008215198841780404032453496160730902155144587567107254853544284758652018079154884475380950230942146503648979972085948604708022004423267756882507236396777699426159861042341169080151700090224047805777596856723794885010533798323548099996088506436809689973212995684979992525170087686648100114532656766880640029448537971903887241104939142161670740695000169788013751135873576879442744082815460959426889988618437877573063954800560634756115896379849935370368289484747673594780477884974796798840663488309002128671425189557086623197302055961456296976905915252973430250208962288195114189677115144779681048504364764285121348286105469234001397972178112765696231807774702749613128473571947641043401968057192711705505693516549001303986364939689208565135423916788362212624579473810572034701477286711424089967126828294596666377830118893756324885484164590881999930718575411219974344328373932124013508968083133318171097968698910368569046412305203443759056672215954569909855152994352274286947949352408216810586481535209654234864275876816742901073953912130008985979569679897894994035318046451661720448169850865033526899688528560524838310732691018973986656846177093694530596740255108057712564453082989860557320762322290451069125044382505913559551846356734901473412358521642405839576751771408521318654157813801890202056948187512335441541434770485834737986580758382067317824964800308938313458345019032325564445678429998613899759730742844497740982910405872584821963804316042525545145844179809439513545778860515448147363311039839844572774895553756649937492399648662915005098573598300550197222404146352406411662064626045318283381735735921005991513245597987974589380812710981127075178008790896355056790065548199887815052717797974577152922399018157233428301224946176918862128850569531306646741640000222995519368375182244628211602824936688541904786754191260995341117110509034199245885664319429814577307103286495338162164519073104421918598991923929579761136460954097705568952467319193757645930082999984766101018928148714620633059659949236418734879475042081766492060560410820739679631792887607931981012770061506075171968755727118365950832985140114608685712470632500361032394669822676190833684168738449984161772025618299846790074956360809132165292340852767387810834401851251545006675488931019439708550445737260812501222296673772178891317339103778542147536495942323722394993697156017360819071003948913578277525794706303768740729443706980283449609355570645516805039782228292631031147574304544819830378103346555561733030265018880874439137222010356629255265874020512126255426941765479271783780892890562081617573551152861853823342367545397824096960586294869423784067493781260841054963226986006202504929559217852560350568003496199706500545131175496098656951745120243794475442547538312106788364694914430872430114818350533007693674243580809145012614128412689973866652106301087172409906878661486697287438941772200612087846246158385379026289595789619310889705703956558445580160852760391930392084436093777545609109849480158307697776303723447746887644721745428654479186278364038012223735938708179127808671343229541557821599093285594802449959007853725414680476938463118044253153549625801829683079287693011092093283022611017503112027926175241448076325333892126021439933087948919043866362434774590738157251258456339249323694519555750473999105651950166315709158712964876551945581778830835854265148836089714578118725117095502750746271038178162032919476164530505161228461467734252558976448750099543759411390258555125848482606115293872618650216900982529675834461535058247377624323314447141082247250943603530637930078040200985641120646764440739970357225606503674875297517989704301123038965869340145119374013004612714355862731877174335612527873282688156326722180199708408326585861715682207605836710170218783434365519962088540780226738636579438981783765520047872808394820154577188520682972684249871587352337045142710166068175236484273369217600892697478727326831611927670379068159495741183619850581625746408019767888005054609018768239978052343994930660707653604367557422017675626426763817808086591167588220599999382322017798764304498757440469559658787384415224707325945175257532584093707210749989598870411243380621254620459626243276755855805422307345060134323195566912571220421415413829904340252246796957897948649375660012536706762700257054041056763962024279682491109369430427832506588960562187671032580415299998898156842972426327056692702754608695878743140778218629375007963105636727055338834078683779830466266007002496944714230508427469858134616413989694589858125452392027557018100572945825327682513413669983408757154659453414603201172741338551476477608925950998945606783509622132641807815586044159371393391277325288571032698022632185976828542404575978563480675966637589312992543666709374650750963741906085943772506372170001148958194007400521375446421981966477806312340800677073713895460095334917437283434169363323259033431075940884038001861532560828930228717791164730738443653729251593979010506544927686769226035687400254526014158203682242736761459040580168672597080914218429111443697802801929138284865033924225831350767384748458877884494005975516698566936930694949163649087863769479642352087943757502925554008932048012496683150030550143127367074733306249593027062147876245942855456121043545773697927006422077568991633609877736404341950955971664437316141566771258877797350803549412232045692750765655201230883977450649728223186562466150246978117719368557708256267265059924076082591821041228128564117142508117173539127434411934780206146090655117094367029929829143846677176025731097179779231422759073782998024278222309106202704769083891750493854159596090867902431134247409507561372244266383046538179126373292139624389952780793148956812324598276624746541566031055715537954483658891991067147039223244873770279277786425125572828919676214134381590871814323757322695558569387928992618753399167332098859132560699811499273695758227333042702734894411204321125867560021407147647983480078509368844740415817688891443958173036283574260424386312768636281089742771472030300069196485815729832375857781926551818786716105718691319571260184038015704648259901259280259734383556641167544641458565268087806345345290522133426474748331873625903802257086250716598140720853916225384504866218803447860619602040601441646651397262074561126653802927009307442407098837165194959688318204499686655286562704824227120992927136823166114593999355945712171505425780310091655836558891540353920582379127632261029256857752750466744836508949463351919789716396048726498855769276071780687493677807859085483538192942698458878171522001796423639287492846355306228378753063759700330682051950577739138977898564386932476142005517865395744988749520258813963651453622398745307666016394390976536826840965459063224256976792314298866401254458918240983848589308465678021951278442113160576228727859426162638574443694314782371755988389856830906758067514694398055134910900956454759218496385747573255986715309257337683204491140663138152119544275839273920107237348458832099495512453504620180811295968904836508964835471278973176871282115125480236784396217792528908674629126370756126651961051025603633571641289622312964797896480208474800256201445027476614190903987330337327066548136406054619002950151799180225446565674119543880419350942499738754592467406204327574185527278304998184983257543745164892800328993391676694409763751323556625274777072646480104364577644142597427026972948468351838033646563720151707171960664649899580970265156013921434692779455058105740080311610742150606857790104753871402031155808612691496694553457656364588625323210266505782291875989526924546648297330238909485741468602448398835018306272816985558332357257493088983394788520256365790128056052602551930329709845001595481001389555268963207105721830776868756336479778824485278624500613678947916677751553553162828786306830457678662690253241564224007554414350526528737432732393716390908362927091219096039611633969860487011817505873342971685963925026228346542493048607845265686656891696246520277252958405677050754031691451718472114526409690542896348362437716568174022595335133230025194810021837079158639366220893854313434587592593944025264215049364038330636036032134204032970396933261747216161773864425106033059808302680594039959116753682993596535145716929479671653095557460525656353862701211808237465966360066430465328467919844370839105596938592753063981876836597466772601559320584899147764836103729052833070699705810651962413045817403447146251217092871667070685846224559138124437196961428770094619489819142880811003743586763205651007786809861221563689804533946535634959459342899758389638861778021533463161074818753097112057026618444311396651548827977963769358676430983247647709448278393450645406620251235172842851505811860302274023316510598467809058781564743856261203609674289350788008807794779697429871964762356115248679366956312640542609191351155035906683193405457493151392800035953906700325528534560872686060919281598888737777276188200561548258157806866000573909990247983815170926925061422855051253869877954944783015890241393464279565344674615785392783248974691572084586864149780616085658256710167345948523600608729045058911597072587758871100340501840324987496048947292850597024669087156526018300647158951617672974235897038488601987233263917143426330756680910950895427058781226481409300923830066963024583675614891184212762235178248291519715044981456292928183778346824200518637205078122206450243475707648494692605528903814148251457473993481989559158547963502734865012382315781479661706572947186507463766228629271711288101945796930471522581166645785919789750064913151863531551607302597808791621083772405790688833719334594194470965357314239036131390619982432500679883723943926604677169432645873927757174077751488846897452584750487655121639425367727581523986131409413959571418532394737336446164430449366630562324936365966452930795322829618973050678150203090836815291541830187422289983314315558379976100834608567078449973259426730436323248814668134199019048336417026139183707440331292099269724650309227631241061067135271882731311021638429684813038065034357674675492290942768033247062098544260530072591865359116827901591053534498824726309939403060910583913208872502088552112794773224423268106907929502969319990784046282448605026556106962587892139986290479130655546617630310485693859502173423768735586294856827798273153186341448025586478852387528743823057424693596970312689916046600058962357429442885480394510493429696265018006889571605382029594472195452215013995574959333124664485146152131801828385973963501933865161242142766463061013330786158584183998639224721033125272071689380792937066680461780165101330149632805362479700606269690516253324830981356053027896530751461248675606757094402684340735689428513882695929045507713560824964705899690425188218959375214680031343482617656102687758796842946702785533004621749295348081676094658655777261847022717329477118081702951577040547975374478276059143320219453212027362697075751088283348847363569362214223604268694013792040728084767783507090317812056437824790459790391858560313482303816966052919327086670751201608054395854315360695574885530553614743204692421553092739171928568624702705667473534576021559155372252064102524496505264081880601259601435818476929593143004859039254482047477983218345947243005640083238424799211369791708748918403914513019016037346248855410156449160047677551565386310817912847532256836074640758379853163684575814165721400357941506257944721478971832941146912181925624864417254673246903033202667157873008104026460042385024926844915628260300848313888958996831788824921255407941432585336784277651184397062024296604822569551946059080689846324620347200484589668316237294634781067920056091213451052791664135242503764276106476761319160301822156564356255056058065048845534417488402778316463526151353507552575586380941123042255312814135831315288480355086101873204181145107922323688495214364818394589604226998153499091131904835683010892438629086382099945568319090745619805175141293446194987433144651234065528212137328132140944395430083639855896847792897801563118826944780762969699103818053754271987232289146713751681240559940345924039107724474910685707848347968576462831652284739049318171270739829623093747235057223876320669103741153467426397196640557584885867240803595807199459518030846655338830306355248599195223690174028522386572335606529533832575367702158903634086501199397807443779352345086718856648569435185778535385134571794072187234379429589718468513152321510611059153170289196874000410980883382459296541304958174302055150077977808910472628385108683020282330372430295390928942614473252315443712348732577595859319943196633287993596560119278575388385556467325155823117150530410547160304907830271939318023220578610946290335229947993419288038053029091149078819344913373599478865571953874920706823127927906428488582627816969356229536159950706738864059481883054171298486135295306148643629899088013671129302264902753346768347916415026317047326294316475970534202062017693273413677339187633014831067439881334852123536585859709394715869375672221307362391622764403328336382446434396206523897282350416910144651948394385958190839725649456016582717486809322165468363800849170812466325379094350112163175341559045956232098997274550857236662841499048714941516291412558342595616313563450559922907662104172665361863749713591100781642709276491882587946178221463660970600464561126288281124689147334193626599375530298429561877240968914282003332496822907850189597177611287476224715891878311691327069516538410895888656079937777900775701461755958674037525329087101435384852584017269641953447468646493133301236264845800371452656531391241165893902906957974455987409650196218482465257796224013925786702341758296772674605678596490576517893617353706361220597876591393731780046257512290796717273464933897934234481509118062517053724772793900906332465570123056133748275544453297809453311357956869227393774739006118968118223178361737296253031028163440356742239361281448018789697644614966026093579105472218474300640466146725118799142368421680776508022034568428026942423216257096726772595962480063953604884736247308086909642520712336365578210602217934023123837946131852033320111211598828731204113670829202148263878165907070372665050456819474673091845680466608270914062394662205828472882635584424886991307064418925974343841455114132280958786773417562301735109343846902938581504956988792604738962545157092043861341537320853241820249120262300137490373257223615569762708489796303537422948841303374465267532507102453545293502361798067902692561087303700361694946469405423423835752422503058951715672822683184565425773610049673476677858388483221887981302021169985894236085332230402932366155453620398586820962191827779389316757617297053871808035249084961939292397333981358034965864668350204524962618847552803830701438880533718447868113853798814795943728121956152559091647303917612537165203089672327930960908983332929575452200462521866187551131575831807663555696130722781173931353494690987074288508764111284134701038807259334914859556018721289670650433911892649280119621726291096381082476496029862274720809640443638111060949828253191696918136339345760240500255486962387596053966758332435222056955844535214877883669874175921344854917500835941789661495960441697276060676472166262396230479160605938524188612307505017219920573500228963142549221317659659555311675699647077220286601035247377204977399295681035931141550019602813560892064590955542283229601476489228422303988434147003796058958039804968256145644535556018054435796354673436533949955660027242305502535692517113846832170489874019616863995982792533311112152618155206145603749505253616915503115721103996470539431581909636932133312785922710048855549207672906609096508809919845436974695665188891078247524255368470383139544324779460233234517134577650467632078590342940722702107632963590004513469693423111114273406585741003413650802694276495147095673542921326297145523283076817091546847467698703865074034232277600188682367094464657426429029038103288703046394036705768536389938032209885482125146405863348656682114396256035444486777585847624619233593666127891676727689094794204712871448076529944498157360237970807049062857114585774902767313151222487719892904687074705083280897492174999752170114817605377369044802285968218313849151042844997416836480025463304591096467949992746275473841475786532381687916785230243610167293991699321563619481819108902216677565806043718451604859984551877621917642553625458499420528946185814173351682939108927366678163530435190900250971836298339849101908390317533835830242426484753336236558745650362779853024642463507323983037172439644032279324406350820045352372356012750549296485517024970294414079034684660185347840530406875165218732447977046150980532051659290312787137437431128955535786099720307406661561731878933534542921537574064541579722943152914551364656589979652573951020090616847681684798582302191047781114072878347374718598396722663513697037299131428909984170468640315090932671979578405964730827567400361549418734418316249696064615339279811397562650491621619962926921930489334795368921141111137864313213711946388897901395106279016941775147134367742957458597632896696714392832583465015771117260002494510021252241385422310012014755109429861973240193968849648455611813278508705711670837786703756107648379719766745312263370184306400184104766741904248307667875454301499470599861254990308812985364837818166138028194095976994134802623001118200740041242759329008492209296470332795567614209396080383847898809240153714718419854152366677757038882293633694164289727183729481068658604542035252703266807800741748712669208510423442143619925831181486243128702360502250689207525011869646546418073344602395137237180684640125625995866409865853764992557369662608846090520994248133929711279630318304865906664191473794799999103558355991306639188561590127930852685196586656691330434035120133073953559896071068148591211112335048721547720121175148617795692712584779333065286978217593506120825074886430550768859680488818668084372978887325320425263921388739439764846993566707833160778187029115421562284778542934787342613558448540964561529550149885759296942251961507245850701521747698441960888958568649224181188979031611763293166857313468855061777775497267178683553803225360695165116957741949474205313327278579039048818494651614686607167304457998750431693901632457389055059000837014083536981673086160410510530870381716565809383446216763644223367669264603255660165613902870516992531481960166469954020119025773447030639566911290549164920970663554234298101616249150155430709486551165664822431091124404571053893306598422858187779088168803613791403798692074339774837929503991437766215867858196392685769219702643234033772835752665223429298720112577834929599992059925137381978960578315797163774602886230536441485201786657096147825569019473202198049209525389313274947878009192628297643022107966870996570840263861560407844113166793745416233229599134119846185598080826544089314488768616793535760143950033561497548619790008349132000347579416774919580580833495841915217862070060019804064156512473916611246680389410647367112038095831933446205408339220326694943725089339292247553875418427064300051428865425226004879780450710091981548484547209374790177474278949373359532213516465007105266652084738177494259291408041153637894089555671902104203391791996213180206834782634682890531926978763863205856493557875544270132530131871457718212441239021797352718720390243396498147400393574379794786092469895494803465492473870553817669763323442354812253432265894797255093070843251016605744232675821101005800052472718908412012806347126920113434740353716286743361269101087763271867756873371468093127075588590297073488876932444459319274862446260141092170280494632611983314322196687959311873604159960900362951896061561292075895194409058286761519315839182694699575756470096436471929253028670338061387625382272435934937802966153693520059927338459410354157366428241427426095131227007511422548779663146888101111569183784017582591965965565720070733462240420338928316537421523763416680844080101358962833941203691395063915476894498269413201908537412120653689441651002710052970171162361972263635421909275628188386277096834098633783029350864298827936641294820743463650464548945906113075818216604436942643038458459364754952649493164564080790452417203524038685401131180807069092084094963062093109900155724800148955008750069789172212198094571831654559949577649276496982635039981754435501881228474757997593945315320022791525645177231444864907326966082247277320511872814951786688605125823030569638347612276218352700455898952692708138555461312398369017049259792293790640223579958335858827173621091765298805203015577336312355212350724757105997078217649748539154778998223786336997149108815209988058173973322251605252401021007696174582059942945206735471868319199639044603089601920930191982772968256538738016076081217364452964069389663183201992109955240164733023394896027525976201625642522358482353695132587685305048959814401839199931463645691675401340101912213409909488330884971183140200306486705590890808090634367937725202141823499796219302665057015493634774176069585265414117577008937771070907374399762549414049408298473326767798276154368274832654631278647597093826556325189678508648505361521363531334161190301612258782762965202069510990272429898324436119261423714677604962474461456063743588100982722783298329135613413368239880739879093323488009082649775356577485311753580286548536929255082784983591623003171964400518877524864402869838879294978539710541418352258135713471943038994424561783614302517071197052355080391941004894201407578305452731157075989896337591501227417356370988437704987682568874409607784576910344265964185093017487354184529412745859855485650872368481268627218678816109746661071292132973934406668601639968335061486785516725493473080553038808177572621379579444582570304923283918647129071647687799178474505637589605918258887647785204698539017387514932978378001347684560405586637552834235371454200971492591860205942995722640915071141058463390784724855925532014633717042611907448287242688086395926991469496755411970832451479260008088272668471586529205914082769423200147577409082078611986554792180588393635419816118450140339840647865416535934293099264624929950056370684718855332878412749451142164485177406607041346420744924396908364049821350533900350892382776979963878912588498089553066269183986583442681280840628683729729339573674351606083461772010284519503664694339903212056818594311587688454762361799151255328786487090826464716170545953138475044489244604996179248179567763836486648806837461458872907020952384279411579913170062004889881005406849776348819057192448006578433370721778646344493679898505271954602083629076886820454015232036040214313228935688424506800992943031371622997755631430373468993184269567741990216243261594417600207704103338989936886983574458137178348080953310349505123522554933780160517094927493550360776981880230871138925586528528862959389770771198892251206317969126859074814440453207697893667357842992298532263890721154532813611338254877641602911748678955111779868482972758490699823239337588465482776563803439558325849039716089471500662745340331823804147618354902724290421813511598801275863515951806080061206395477795337833827080014320801382735283858579049537323818745987171400766046648242820372180677471371045448402548331315934169839728884153280435511672223500909623486141537192990978061765305731307802578332190344418392218894610905050769174926197757820614642746993930899319824271827781078718942810888161127106046457750302777232832518082835738838293871135787470320938298077753228149542497628355658406417643338404482868314043769048703901217437174704225258514625693588840044693005779948267071781870022269517958353902351311937662832613444026674729763169983531123920182324142463184374125297643823409265315620595452936264668124134210541059788574614383135116638116035045122248672699125368094416942245231461013487597184491999616900993485866975082065918640294138907837456299120692047333446128546550693190759725670135442627575879608253581764667466188406884946380336124350676142093428060993913525250039880704259564034028244990951230011345600449297716714044512566124735235112847405543376695649784451040909653861574315649990103531817543885727198325487896271781174065880099954162125824444047337840300123817289787750150267007011878095066252731248057416233074445741946852025849136587675196304375120575075490705628836378266706644165186272925719346069214868914072321561773124465363330507512384567660701790561745479509726589010822899772471944288707003685736215204761238721372980578985427309678925070737805566488557085066607147861820376712822416693046473092163350282163385389940995584434517786610438967556801327391823066864081436186656648975540610567229008828512507486742364543942535975886930604009274868642082318713580498374134993642733925410418820646913572798503177288107234053431003587209416774419310381732446522692121044765842005711956715856711152534844984453345275871828360636272295632524141707977887841309803494730358886707676229805967272960428414333021128415313445564048309775208604683212117198299700988655947512947664635873292222013163702157336139628522097904341906680141697118613107149051911862304085926048983837157098900547950814367676649769302175530711852164743661630674952143238138439656647339735542010686751722195718463814013638401342527179812745502010644049060198955911778091933494200738128162322584010775225302632190389425946228813008066756988565771484285120528238142662003039444349903995259765824253528055786145491024749660627908862065849417962381819585911367564678043172719922495600046329845967657920953604796846993596615289188016702034603851427546528014694082019349530541232701410171525659512233843118156465954160708152046576386177287577217074945372652852646701073411543670611490323149753226214072892306740229447404852779811306603474786066056041776890281073569679317366569829889023856473097096104704498724342247035365171158887054015063058451731666881287722832596257679026035189108598427444398129915564612631522076892325036567508505171173397139340317287421607312772370395394480614325712234283342681190619834614246690957846343518586798970503525658041123538195507602370826282174563291387713429308260783371366049345809482135972445384351340374143313656692406260950994928296193945308355810218007009404142798409034120448846667397420637261870649824001283954622444442357891066312293832660218673577188847875319986305738897878827033054106268167870501697566318342846022922067557125290459649322630290589692206265234946643091400339954597146671113298535324703337788101682664160843132853104074790059596210013793991797912589362097501724561176655139530266088299832467007928582356499538757009544824531434122638407653700439741625599157000057341957031329996980479928718826414805504210164876402862826904420265040415996244977249803903180125889072268759921680638146506907731173475707057663415913371165353910240001758487588698301299645139426589810545298891338869636068011855820937431788791890865678173437990820567445357784140736358260183939712135832495383024632433484104890653808086840560481396269500628275074731420029118221160271212973668759660379985433890919760908655477362004184244271813347580701956133924388120962995108175064422735852866910618386083678759970111319027604966420782544058489888859844490300016199752884043601114780458673737826303152557136135415844118428071460473642138974182574740291119179618537748362350870865522379865623653127097859381523096704578194222787651579292775908407194204406601266005337525352792009091473569012350236962949563346418264133879403589854984936953771062206806930043457231510249551080473608060102543219598715492162927339507009805429559747314468097795465353370422927869903572033297487589588065572302384192901206009077562748623585454671167400549178990997600234391246362727578778235852139685082416929475273830566137112878966997592965097506514222600334318890282505511413293194579706840687093960253010678504470858400896580269152187355299891450333407596572678285924435708736014806727422230952702634258256901891132042306127026171409504998235432605224367844318730668066936199455739027289925276254797039195138549759874470151272540036710820214881131462610225484183504327106978993484923749328671457817962454630075288229936511074225536322248217454818101171519285309555060861845485440212045516548233674085303304660980001252503039231324764964119291115227521431648176330064733366249798738872919558837361967644658283904069657342217780587149197473120177906410970622403433754361142034588856721781670846803822288882679284720636976005566927381543074196873869129564232124797939420323684657358006918314918539043911261610273574387116677770069977677602893567698728455667633499158170890206951683794501465525152979225308754467307024264445180302101645117848719440634309699393988088580683254208686035402633083983556340116788852312232145523247926129613750677297069279583681463401966290623516179216823485138895304126630580584526292743963713735081545139452111151791410166039479234415747008751846492065358578867625929243425014897625437599134557930872172206980128997182187245810674063515053868880501668795121425025121983670683772255104928694253308392878725775356484070052733351527539255929437932516616435049948875067386418459703644368025128304078699270702961646266093653724315209321364622919524842000257341470072395841054301225434408146431082752420485470689799320874192819200158938579943083672591448898985535325990233619870538194355760858229514224436721240776376846698044368587130275062547310994135226096394133568878483724294117478863594471719277298601064938686147689912071234233882935755972331979055493948758718763718139540184752204050077478884511205772562413112887213593247688222057855224313900520280384240874772825367071254938108933441903136051723633717085771303575245901597638815818336262747414763406037203049497360603791679985207525086331347079462355991415699090724282912116493751128460740285866648097211294479091477090566111916794188649459180576554743833743679958276630552166566774396697363996407137586444301215562520326881019004570636599815934395407344994115515420491259600293074384528385914049472449018534933401873151529654566157635174026160257632267242150632949901596258920041858434886017000484606187677870960764719467184244153506701259706967756406718202629066014015869817039716946622513840654005854627434480854336117213657572181933358634302666800903722927260437622451156580547879374113723614351678474026424138013451196489565495728259801587048219714850180114673601518835421729672132063280473232951003065798743940479469826629665462340553250002855747163322198541869017278837822491326416585979221266869523447338149629597626882508392929126545899502656439557219398132423567356938216603443265718365300255935595355316310820713585413066212471738098816845034267347886968771172158727487263125356798037249286932379505110887775027887412378283322541631226424579917948557064380524219264845804745593959032713707440524785409483840194318638592069356215451190230379674572411060965342740699210532796802868873682089521353060958620985959769987185810769712940184237007066942787696132543995851451609921095427415679583180867900101740410281281717214086495193198406148391732328817454205538832751498585091496261393042385436459961844716686477745467449143736376626998494615364906305213951288985737905138111581953795521777520037956785064874165402431197802931561802337200272911141452958694696566291391526577608168024851026211390707844291518997476577940082157880659520247519589828161494542791884605453726413668863406832270272477444818745676805586801204288683396141354861836321255519916659251475406308858279935846979653084452185916995554997771124391109999615226410277452826314175882334419524042708195170949042165688105774657248970070026480839573787944726691318030754616229376546897151221239132220400335620746866918104682943409730154230522496157896007094854192958959973879085017437355408499623029920430585099023804014163210473697558433375571264306920089200059868359137168239198189963259356438368644888375112718824478171460545500936101645146849820932299254964318900573625604656868341618331974612934049466953268134599514244303506841141238175054668860461656906602574371563810040206003653894655298617389238043570572692897162356005577707739124156040290063054394793824465046741692528475211110456780145531394329232333148993778202496289683172732835929616709921871223312044131462543661955162891272943867184284471538958657873665634747327180056784568151536277948966441101406395598515953280253768701862619035364754712413276093023272736753258567178967773436131835758528177681629171829540857875819599069673820551297795136295786522618114252749867635676454534831836661697130675413111342652131112570316044584879442533618805473040840561615224047567387063713785419995834972267251550072120993236155343530043204765795406309923367333958312330328866288148532791545558452261949220803104188058857793608401023377272059646676863960132761576434004759394395570389597342711804439480327434330652910120911062845549636603137146020752400198980475321613886488778516693177034416557044891073483008768845469565238010315697844423547191688541573472266366249218633577588284085732655201871079487508686219033149484306205683588885780507601870120488501901223044867010112620226316166741856687437649185263290944730910640534261161103557463883071223265922278061347352702065067195422827310348569485202990549311502241880329704875552010262424614442271203653635392381358415284364181254615420944831894490692359543934334996914281633436488594940437336546905129357543263173839689959006672284743199058937452166099636480316316317304710201665910803093523500139332791504281313979282451886634194728936929475368298467121592470835207587098404802149760436049462154048949172608059926736357905497266609156817975533797695964070534993383938480879086436137737230413852243706873427590294679928439911276731961398062933052648620613351509104778476293549732477689079646567514411793210239531421634554535295372133962655695385262893261203480396191953950875970750765702063162097283788815554325749200215626557828544590857286437406973532256408829501794546852037924720234298677308068528823866326790287885728899529675760269170280718057466694939732718331969774443423395774592833247799001043587221027925713116033291643099103231567999694922770431589717046514551493078502180882165225628302425883652338660006560079118780618034348369315892316382458879356460353461691891020739932184937014840136721749586932526487313817234905316812777093656406303577595564266420527891430156273136644312221802329050925923355362245807941045787366025388668736593624074163862659858545236560096099276097619826460307608760614020894426926220275926638747696263414840225545262042132811419173231577770252627317023720127474334755290810765241184181992975962571621554118476851114613032918856597869258878591394999547406283810267774133179246604443201924565819886091843277211194304351899696377229424082635217733061845767574691029600737048432810056342581873359750795898349186407279232164208114268648893736150105470567657552616260709805952833270720991486642703630705796664620484938339813648346432708592807380576630185234129498434057951577862092681328375353382566991632922038863605451482483359861590049485009063449444220444483493815532479983334988984385948839261153885799670606540820777386067962115844548912476442883815417472335745724918812812407571111480732206233467508158937297620780199514482593422210762620779359241229961524290645181284529182697048825382730955358864294772934187306984439692253324491100300021123468282855524574138068407694111205174268385768244377371639491869761950464669592715539844708825841494527632423658411583774120163203029352303557046784595323836679321485438977365094180959220153748132941991353591148132684162991721291472133266496808809783101075539626057326449206576979209304519060914502229174140996767165575471720204342235309558361420853807650632843871536464797718370985918501769657556988823718024828983514663863876091850679037242968292875596535062865219683051918489456148650720674955305099508350056951239482029552381610772924195884076164704118658558538470596908768791513737197418749726172999023115036207358213166958903999216705980622125701026885103079505600638263523606644331515257637281534978164707451302950096185405720052464727109324985773463397974787922499112097326741534450502321186094735556400026992162853774067989529369962241003868414541754154485655455881861688160864930990023694438069145697526929430273289019141726524030765429051659711280086395931273636382620052013564777099575172166462937144441917837270942443643946201040939745367930012230823919437139735900234829149236793574989060392773177821843531986599977810833197427905436601715919090544746143029631190667975706893903220792742139761376179109523342001816661935294009579508213339255115119824594008314547579433166411830722539085125685101118686708062328980352620028174898407951810167832132569110664775160214186447817438674128080761262891685009129053441936365834281922161902762553903217746600150743116897819095129832787173802120120177588049768155954741007939955457578692397008290589456924077187042902183490261576146659380070945068602899714053844457617884877655925221028156707762596090058137591606157179195545951248983743939088302424351990934785875292444589335511718913341727174654360585753636445038806888766905007585780182691699144495659086638954508808118765875896464362372359021575540045678815021946232783579438141175293184343035854088814236426602263512166972116251816261442539175459612853233905561297805763594774231254336643328749345668964365450962980418818436813707812853014408160044497059694138840209638690800440897959185695083563868179246147895219235152751655989249974058510147484530921748542914634983072121812687799935896109457479434701074501611051270668090904222422303791786749650601498484481547603664497739298079132660129657177941694954144779650859574539492157953506691762418704140708633471852310762800602463950455870486620569851238450660114937622183027353802102953589979187892985212990560791439176908840556719858473681507491380192522919866683465241323927734182565554884858361110947710803630953504508850132835306034786618693295394624526908797223211115168176736259434568251174055963123928004204874472383065132792170587359385545742660717070626790945226926026168226509468685475467993866756358942815351194013868071741164260161317903708705041866862389399912125335456630238289166270820679602435498997178262889330329116339974164488866921040432003245385506021524521352738564482924856826986108360593996392410309856602830018435954413038280770330238326756027395933393810586209613551980998555933572319100117192762624174960166627531263079094750192645127909405744779177040528691215336114470142016659379732887089430467408480571536511478772929156765125117643562880778105479945383291601217231201710050707671800685352384299350255399269214339989287203880521917565563496217396531884829596389255158304044758835497855444542492081779180137376898794725443025983220027893487285435820425403374927505800797305248148536841085208526887510956124740938495728338444677917737234389886742045626651693167197361042337538189789488763385883210700490360368111670261730790500198306563346113120453250803866839751526728533626121395186979040750276025728171646413927670249973936607368368100736567040077569860505982379086364458899756160621782735437720584294119038745778530712854009359752517255716716174719336472757859240526980648776759747194841961539202365940904215593739329010779047156118067571813033381777937935165921563288501627829910430681336281993367694634751311523951484314011532388753396650554868661284497862047698196313103738940818749354699124437542962426731380697738444350269642205083567169382563737187338068435550606015093817115587926800853962432921302400778921856656150857442408283190207986363500943003863987672855926459730561600289660052095335076001278192278323851033615182011986552925323222186901160858376875337854386944872103946311044919244005602617539735600565688717959846267059231226026763321214429788134572113692984897777926116618172334645401133361041261681007410110926734009809338400127962206019846588938558121438276697635050826086522398739223865306868748834999981171918558859550592223966711449298256379273530590310026662006803051888833263842737038129946991291981835534209261243806796342986855154628209462403618401646694210811000000901081275419668317330719534082800658209619551236033394146033765326135981443523876712725996071463097673915614945886480454386384809734426237486793345813570513136237746561722660359489741096909565907576291799855953928138741857130897062408097115051750012605599752983242905962865509578329939601055557191940602544942465854036086726295666152460110545527634318986203968766640370805310207303560378139557939154719813854151999959848403245875963843302035056581318945818298518255356661481330485631138470109989898022959750458724757150800524846201860523066450192022980460794048638315613531944002228003692193102027927318289361637675744825552095559374919989038608574595507637164138106553214465930876026965043303176359273417261406297767257251710300317047496222328132656767854830641587619867991346179925729844582122629182847258590059945070267414352017745232460797311522821426966167488629110320231179280483130753384298518891096744346724273630061361042016675445804701213867700073295019788956103778669376524264800244909975771407325831023551207825899714829362116592661906626364730537704863728900598264124483609875700837914983274261772216368534905710945441054020650943470314510811560245407801283184958965049259117267142886401015517798172353530518302498891631745525970275708332791688435511582860205099485536005540734127035277606726581442638091841907599338705105992633100581969454514720025439641942121766155409004506027274476365576784573097998293340144848380299756717163118976207784324861828569628552618250056530079884356097505664390881352454420185120208881039330394314476787544292379568882290083830170810458257051192455549625698101526711735055173651681624852796799420082338593794830577265312020441413555809796471670577632311997010690961783134821416326957835687149931804656286955066766632927654612157547958706310177216216472772441614897139836603655303569922659355111767325600274689268303024170600401740720853384268555315625771872355376315526239783011755851839380618250976566214079091809264828694020126777750725806487725135509301334526133896639220698548456488987520755139752453242485410957331238915560609605604116990401108896253635749722813699245499911516411788478848641122394314708134838408511305421209139830151891948377681672562999654402139837410528296140974243071223963711217896581413907160063312712103586904694911568858378719038443212893495354390035335887188912034948114223792557351127801815106244008555369210850604593800788881798753200584838242259843738444751276875088518344907749414820664138983211761492545250800581568233960503853465984790742338753888113745242273748978340001271384134241438348053863571144396599959385620004860623014124237860417125118473838291524100469291266160040154582475468293051093917691651155668918720790895468633760529952085624581989401573054034856404238361945531407694765096020705859102113920007911430621440347577456560638457784226846797574858597477308059264484434843338732233491182057876946656209474649406717646527490712445920338507833291001588569545201983356614129491779954916047726948797961926824695043409584805971437450493446444991291935187561728195106481213533003829537432522267226555537439270932245499527254413525470842920926057693201581788846698716080852643012364966704869390071472315793580714796241118974456520747304366888683876478202945501729463925427259987595609233492917467847001460918176470803458626449149119542636512948025511571034567654846245942531425830155337138962652687498695782037770393536876535082894306192493653670901361816355611621322042669775383435081170342259401111398566999875023491415514089936076299814537554131267574532801429425457620532361541735408684773865146122919583857026058287943757262952464271714370685015936684557193590395737072060150509593267211432458061678151283304027481691472026837195664226038787095071989604055976182193440249730850641104486194312004545880211458184419876474665124325617074058554552426594424431090177823121012692295390925878973992470434093203820555025744710359913909271836892959030726197399856445230051138950970834786258361969526349605850986209888503260855722094068778995186359978961298955912568933727818730282227698416512511260816150409788528197137023841967456602027514652847187303540651269034505495087301512616476387135550891976054953834355689054110691862741266357238053855699061059112477806469271192999648607159009498650774383015987167916100792438524126692469307803569078275952843372580493561557286744719711948421039969358324601152041853227191387945865161999291800240783816344388076780063618675262179603907075843167452803591366642393513495756248198448855981471250663796897955390337048440998830613834302721094911546721413328264154705909263394858159501471796841839622498042127161201792394755993257785191641859687777438104088728166085486352760212462111364695498720367698595131400367295492549908087418398704533940855103972358561660318852376640400035190446398317412559267672834578785765255925836479408966210683343959606950557649803288456150074334067696829661910574634614221740423336349044869520618644175675372871480603078879455997121523523296646559857815404823417824488305828600064878845832062439261370357245316960349993049469793691327734462499689546587324509035141736396102784635277665998049322656369492290177604400883272132272594568266029332834632285033276430510920244963773628966122680105247386172676016878935138162569251005159815022252288304766790763302877539524539243208981304709059720793871838543897398421178291894070907312641115089062931936409331142421243244496314539209831163882220017320531634068998095565078047783031505209114731479054125528072341783283029028150677057001417041020380422935772284869950464039861952621017234486161064652954970253057208474698041766293462754286610155027701081120702289342667471667495437249706415621183174595006569638004123274074467094672399372918527365416080997590701175719228946088140041182946401187573876269911667637821228683066787170963058339253648530033908429156116623011161231750975118543280660717807074871963339121109973272558737570041585657953916426609588770842357096769697343772076852237408604977139806392813957490238872481480717431563926953743759580574511645217537584686199139944667066069258403168671601703186099152778178312698165371934942521184589183863240837536146889783049425989160886342864034834215426595543554441149388531491238008641439425956873293817049622946488193568596702506761235637040330727264456491397703877627808436471821518919019292681814498322491079896797128027796700899189213727842375672949814918377505153459129206254965684068995073362083965217278583091759591327744889295939069607027910707688175031114164653455940520167244573867579524601088892118179797316438215713037991829817931594215370285919374761146969552649677524885130656596653752680163297354028033647859197450141098236603082581162485479017306004614672626340970749426546987941324432211741095977330433281172332570562317717188547246825405180539482849196796039526906903152512211413238986729894658566057511946306369221166456466637043854359429102617200088738084375516704979489398296685559061694610296090603812634500809933526280082087533669529639756462564615163722883313510234147089949267531435677711273189131366962519912497384203262661200981194912450774591385295945088304236057523878215443067919639580706970526821384516762952890787775010079480944872849787986005405255002568608649263794013106974050739208026259719571986246868494057401950949224265457546022239099052159871085090557107219368158663757584733278747407399189443976457549768204128903982464840479706296554387603206107829804857754342691808777082894996666679131413867793467313610954204185063371052371510408894923999948164209046578569591122363783601448467669301177167963055937757649032135875718090471398374029219158902404490517053588355740918775172401991896939991919462126595663918048214046482959587763609391569832938865526471028159495635024970674172415895038421326617791482136579866081279482696285223649723245120892351827606263267642921433142421713224982896938337692265781390264590090292275049549603485994478188295955457363399971787426849185942749816415274868814969038333639139028758971281258228145083193392277345812018016357909169765553005782909428417681456573733116957775244703234711380017910021299912692273065737439379971272924138490221774272673542086984388187898802414178757514298411897761513655250297493077098276841449026102564007446778495889835718192538217409788557465329769049619753700871407524302651890808572650247419422998072698347766152495345280767331522717204674482916871773152868054684749652385620436804252517097471761270433974430775990921649429214178541457402387147419266101513800941289003825264619822882368888555240146362062245733285393992112398898705853698315034911740193479323350257681661264688315320229143941958531351268759010162031492679643148449299785749231352753632528421921414295650903045354763714373141655872391865482187186435278810088648344045903306471955950634402588988906668756685119300923562923471772653600214435808275163655783378040586273756051626038366204385522201064141058158952646577778517875531995663983469509141945566407248792035556167706628829393133336915557416081658096776758256586409340576588762388542897108850794262439603225777030249669739938437793560452840201895334561342903766012271730781483365753599308044267198383937250885642810259041797441798802654075343373278061167243148657556016219473610509442261512186880944198983129633214722980973304702423281167245365409602279268504688140839514998796889784123709413789929751497448159499729406610885791377098594704614619111490186404358477261592253201464982632319339736444394191380209385352750864153818152670238157991721387290176345516273725327447396827862149374102318423251409644299732083953499350713223263899640744153682292590358518585394649534792057169859360295166738012209453080267317687575404260094424649129010461433285671810698512200404943494889004575144044352584050625818339113544449930748404388539933612419448381861157689308254963454350364740931644057687988558067711556417808759143187762379318616313104156078855007323803785136520149639685425159157306750329216663151688454836523640032033863360052739541730970387269359219851057295901229161430443071712858126466401097679319495733062285987311301839563289375498442311714421984058595690121149480383415735701647665729518926137428253453781433103647326892041574014759747916465758233029532078900429584162587216882215626637410132832034481687167362723973931855575103579419061982529691444467095499973830919820620701028610559206040244371907411933388788225706251164499961201860121460627328839098090051336149505265032815321699166434881808752536160365418015866433049897697416374935981088743048955303675789470357717096116829570407476060193838377765781974235724527208981264996706283555618185359960650363940957490919636087282869200267017013849694698957409754490832735173374876475854197223875438453832341772791105531376006742049011696685139382158230860890549103977646060528712068368849375153109396481420795938838202510880634063866641879386051396780142930704670130780633170544435709794668561519855131627253740342276930052256651633995211939397380763171632794160478013581781340404795750219115994526760299348988829863667514149430232917130424379713482798274534055578924834735840320259575674513256532927299232351426711470374847350072423069828147105152499830337470253284795823314757436034945884376734132012357250536679771900566695332544693895777053481103962853960533418853149718699515322257063084026498738208690044918271119026249195042294665320938881473223502864520285370286279637369805508161639811949723630789593026550001527941233131892984115091835466559301650760484522635149950796076363711453027369767888446091877095245607951373355308371583762300677263078483090497363108593400436314007938600988082548076050560996660176110634241957531649067919897942418692138876568282116269005308071573472479008591066296330797495123516237323506252167042590439664234924067669335242641120950205557971443629468177288960314569720088270269184461245919272071508215127007710908486576462365126213725176823865578851809762373541248922269531547829871736809581504424536306384449969742065203530947724922108070801436010779020852172313186663189720796332345048092022609638785374254348560883205852695957076390375628001558781329326424178711449639223071819704981071562656495048404244763198783571039171088254728757698910769125206665969541954293284653658207148221506874868367201020925502504558827296251862039278850162403040647193659102819726329311894810390088158948773831218023433161175589722344284478476027549280154457212581365803511249898736652635458611073215540705932223294675440048150944801308627147267572324093270965691228258516113883009913018194743420285956480475822077785245996888628914792612155143798779461623296150243129255771538198352826085099512071686506226698814445844935109974078054178786524484060408601125011066627109736952843068719403549082327280338633973776457686815081139738106585831543852604638780392611620661697754351614696725776306611666684589481122250529696610149504925196927214923676008981194502556716469722574521397799704282072059272087802446381963446225888902542948305988475990312850224301641158903815156382097477848861159796571340840895759609091195501296470566421063163746336892647179038150269997499127705519963655262679973473877845553343178292548465037676169577611941072549824074299253363097287318982180510867300688078516270806296855279949813369900559573978385304850624372918186740215345328656077935869252507407871399861487177925175790058754846084507616319500217344917600431477121535907737537703628454603252468297732116850993041717821392521961157370046586609387209722767916613904709504104235743692137658728838190608011060064688457146620844060523190787106460406704748441622025918709209235096754872336005099198255680795022292806525841715932215589746430122769051771932629854828214141895474734669587760516474624417727961758740225710027966898263578105737027785057806163925045204390497023937164481987828211691624357212452648474491474845610066331224636438020808054667636696753763562871314135934562979369193569843250480176546182727487840217547599220991144355940329193275707460417053601412329100084285897048241225180044072101782684275482710378464215303127868985416750414176237974415461658756871091345607351422949182181289408949543647615449609971446913094976386081726525350693145510414385868245980528643379973151882599411249316653631028334558852959346261465030822142039828707523463167191721147072594973799540056752923267535046335727018419095104167215168069679493580443616903804301636047811017900660924008729939971988776167179829431567787809532863239004782148847413617183763949252400837579207327314874895011751120348515191987159660799802010025439510074355918540074262242017715854219155354018056204531172316923790531671557719347731073222464936801516579444030420457897891406241177167642521879451522293404530737576711709484831475019779549925020341383755653693021210077658848764756906369262738056867293709266430405461385559951101182072365469120246592617518396777361259874647587890674572633003492944476040102103221544694895641021655702044608071973856708602239149782113514120766023346961436611562645826106504802740665049213207016546173431718292532529015569847586203832862405036301931374634551634520729527282642103757399784841674484497209687196548621677781136227446128343700468310684162457687613389189624357026782581785455393719192360133765860001651269450577757851188963316651782242626873105960452375199807313807766445786292403733945092396330827012411768228925495120748725628114340388892378908707053719525221198139194159355074700257559454130803116772509194650784545116106187455105117810877027469333924776639155583460986234559742173460225495278641144093400379859144854137262584385316569749783427458780837026740698549764258255168936558704998896925827935452714084018734827630834664989014201714677029654229206869490676980151753668963353507569970316963564477015356966572197150750690987375064989502790869756480908765028553838351827832725028602518790966157272312095410146875959474526520469518975383256256646637929933631552848384754091668775989352476078163516893301700672291559437216448687212351016247001423314642292915274650960716294886997673384470663388476783187864439235329956122121870546289352441458000182272361088045179265377052658178323549750005616186622933314756350579031770414206414113852778833167494168117072687118235266973636119843787381704514455475291282140959837495975714803779195206090850212417691757175420289338378097171743524845396318068199083917471105426367288004502476454029746366418202188604506023390871964189850524292274970244325137908118378010798727021371413222600181746606399712352134433536837345023812007824972286929531609609538203606038843660577609026523880609920535806695084599574314056645080570461263078492459729681796557913856826650174147935914061426891732471354292646356526156762411810315157609425026691343176280498639488576104210699105804317169066956621034201586008945317989978248898098107640816149524977004718089248344191498206202865353583088555061773933422160338742518227198544061578543225717917224547003074843890994085372603140444589076465462503111620308620727063968621476599729787410904489560629823679668744813122357374108309399004193158620285967717051582301316015779234098320589051048212655495731070281434088666253591127409363972904985910846029190852600645068776050216100811004301133665509551235700548862011558492896847875468078746212183045669482585081955515834302496460103335833872422836321686658857828158135107735531041267662472171043985308848523476202033971162161698295724095578192366342071325946591270490656931754780280069779451004869246031094416006324541796538968183162967500379441123928719641634186125861610285211235909782199486685726811861836150855764782550055825236941812021877682596501331778508498794558148031423356942701477258135925995941903466372884912559890522594495339195857298992984682669390301662813029359186487838728947361526040605381020508895098069165197411456551731565381318807554739094505959720076972991258951232835802313412235492860822301479701162956515571391351467713168112113420597268410953792783704923072251074466360358866153790766748564678991679115667662944563008311693063954957756863969149671118657412084883513234722509273730833077340847472759407613983713670908999086984671338347299483252020441775518964186785368148641465890136209059948779495374976202818247903264021911679871078697109109912907476120305033566348202564880866448679572317396782402943493962783851131129464656763515514784317459544105154113344236890778840276601102364608376510666231956046708735080577585343589711906507929899929277618033599720764040796627974565776906728222070564096637783612835503758609521481739779502434264843400982786299570089647228913740328396112122745292286239330695204423570385833588517906045355277333067064097687812017834821866077944012570740681363166548641005450410501388937151727266142334083591207954717893699170876795957753693337613711729921872113917440167029473950737595106187506605036878821150451295678224638590434320556073961808380809992474656425955469368156651158837354550729839362907576085749539006080042782862121231808887499504687946494330573048666379914848986143935062936194689395253742776675266542424940002627087874400617705262668728974604345020538466788563909918558384589778851680673771278767835499412085133390886115705721660031034033342227153827755719705873777086036150691073735927138830570690515167216172367234126462099927681577131141069589388604783813420307832587090136667108214899564866341774736960291451265414305625055402847645858215240420255192990660780629136626305666054045153617261642464919128180716925779302075926057482750600663922888776961588079030258586452420498551083367287994142882848591395792041764035505984095645519533045502490447563293160034811932563166047803692803168158350737615592232854188631970104392395674839663895551616523288054628761042193531789728655800877388337966424540144894178451783878023975734688944605091851101083738579146412789849451493378417748010944544131003224811240184474757800141337955858175354419437297042877986631014531392094642963135263219995152475050361919559345145880455948450927774252738168451709013272607629595311490265443300764664952092370941665164708597512444400771926944504677288100524835552757016586222467928879732179298342142458097249174438690745274607812062459034339087038803832754873736482725568082489372139629977000685721943508907115766823960167279721576352525466855514587483022172387253625798848046779500848126835824555647654883715863972675285977961531488131280687595369837109815170935049380383176836716160649580876216318214211153308477599644478299662964237597681063665727286429641031433454840205908407768925692169720745937270658039035079124700088891187740635521269673123239299081118250823773152173191488714622372179449559968109902471699865849404485576450220169771936644410842750688057178343335800728587968135664996945452933058298382209989630173364760867700163419848362753326583456397755808474247435565995290209796674231881190348686030895445397710561353607248055631189954416788970815284314467163340972693031891798691613975270835838627164378539876324023531727975286417413519248654753070251152528232567955395692428839372209971719049666901893325539069955824482308675774364654679339718349821692943351258763769082999161804024047166206883476138762850056523991793130039569966706170349353503441462365547830987576286819189942839307227059380476085320983964492315406630166557041735668917037187787658786287757712595333161818252370500302136060375037279708988614016453146639062249665860466198055709674956700253584228618616034939855178401269244244710929373572874171953036685358411372169393969256522017125820581976475454028645450941044034789257920042121850920730265343863935868665306787854608843909869688392425997646853677033569365053530624939408348324620834776195923562902500196204311079378237539576793204413753728968078835628596576040583346415262827167628566834378270681200208421407447612200240465872714638595996153208888438125651451140509135293703588408260992577935015348819583165170932865057001972255876795801735620094347245604503500057401445651715394497861449001061291613131789318022750970743156010913046872541841083747742813446437256415305739472021909555796823536080859977542810223701465945196653925181442894834802265169109452288491514900498361422926328347999237738229383042902886466430398317253766191421370014320199272162540364590368747960751123808314643392983181204678315200134951730709455050015850738641748138706418992324003727680665650892955213514383967563340287121023406597931494794934215068601194745538587486903919285406582568181098471624899741498639999245316077952681906882224078181089851683625443085341799206416836003431367735264892319444351802760535503418328682003531383261778801293472944232386360863779229706983061919346301891905998589286628598209231474221106376817908173060612119659205302182599949854045120236501385677050905541452101167117975854880750819080488033843714236255895349751085387790704964981817323640365570729551128740773851914748054836918554517501426168306765119248432727370890930327344997525421535615958870406427290315225272729725507238481533717471899306365124365086590312838480644193908438150637361835632909853730201154110324721595952330840344689292300708580493044399546497128899898640004272744659938080431941514046995415667820899008357598224802903783151886184777346064371054379600863347742976677183729338423410820121196819910983379962980355841147627293076891592102325291392207715411635638610526975709039386702909624184858464958920034997480522692695050321449524644390248098830418139943069877143213164342857491684619042054436017210077149364785625831460961520755959789314475958340851945861437398431948406651760643103430209290870589401936437318978696094080205314315005310893399502908611197861047969944262009231270815485002121403069585904088627070696718006832377537686922767415599970840939677895115994598263662512169123008864067827482357787753747069125010427740989681064274062119156817147908705380104838205873300132217403394539074061284676643958444747414770618612136958643764572891937919123354891710064144074137585608424990522030125687155627021294332539797562552333888140020727452647370500208983482927692808094212377168552066735458145850773984572638996310371834371384132188124460815670446093922047402678654634220663570428274746738526026497839926651955049248250397551024375061285254542438599320357384231009437200769186642268624429959126946609192440609487532018753219580436613248160411403938745361622990830355583935139132291510677837165978057790786682898917011440960607624804592617475351152621897336198875923629273042599654973539832338627006548471151474400376615647013987610828400461104035937872205515072731579149975274991565594240512119922209379434667981429077602468883349863099535543261120179551560489134141530725958505373110736655673942034912049685286652188977945538189877824312928803540168206316113403055562781068293660504858004543335226392577792962374366153533025293507001059094155627414694865876295971740911194033781996935649090571727247867244788936236438392506755571029144796656003489353974016160845603304994658474640664391845299214398853965034788270073561330339252215814668952969635384266705737590455450770472603889838424609907829093383525973282551237911273523942633609296392917749090801143493373918957101396440392918989989349254897928959098202256298155958529529195657836361887681303506821165033947259190407336270319815130384231475361116708971798299795263672819193149756301954100166256965637070142728909802511199640056342758274188399114657914730809456581155568968838062400324812184115095754842861180949631893250994402233073130260530083800600057619424242987957416652432158752187598548909672979822497879990972587919927622133775504535871288720398556561784131753821744274643704124907296495283147427633078638318525856990383852687963306673668028313961464394902451517383751358593957189249184847887556700643189104879706969238779976154398852784005989707050735325727500858763850821394233289783203815943771348651893687315533817800289229142288115426875163936767675189037124888719559981032710538778002454284668372880421001880074135293651584658097371025441305220182203653023008655173797829176368250979277610645809207545235173171062255682679680013596219968851432789382173086540434944678445019776727985865092418464616599175244803239158582912197381402476297186766524632436422239356709377479332624480138231631778374715102304891764506391727325532546591550390318478095260225928907405957909403715685369574769307260215699440116848261839845076077238356517549475082979607865666613209089841940196246694212012083158244217920339937158588085708807197587707910140989663105310089510378575758939985678039812123455653385943168109198036641983985888446619444797438810594197700830303937262522061824443801420361179896993038908401443503836319231447420526674456821804847036176033469516045680896835461634386224525915021117905306882580104891177276950596799924202206025721256691960243333951487481129420044107899687688910315315352460443757687247877128244851138651219175243070389778587350997965070166398101834247328642504121997354039280284108379946243583312578613464380640022997702881911377121451012478291768468375996461077915914960815704948138522135842273744385421356883972211506255667392687477664860655817281660885821310706948766711996461769335996252763839827449679554673921165850556103230182806220829757152965379815995079059654671037913785981225277644718061103013612001696397778009879090237455075662550433352949016315240590080284409308520072764101183959444048816711357532757353056229798769118062193132614317109894704539765854126349701440501169619356057313619215725667465628211124919617694741860593745953173296664337348846089972377097701338985962307683484350619772219190076663176107804328498003139146832044868465469086325598244304793252905187412579776319662068771839613326021041389731526143517283510987276603917491864100549732771886064543877787995077084302931802242520214741917538574467864166606771479677981992376714555349426965145560588676595167274204741399686305566288592378402166455080866362596176254057330306326702944105177878832116453862377609495616459263596365714650485500936930549112444549932504166240039587716495472655929162526779596680990590079115784822989839189592097246612389628940233261329423167510597838080459789975487921182244415479501246363225583624165646391165554150864244228982518062121171976287211017417702447984309528394625951171653228715359570842535410650773227556801103633874926090205423937299138786922757375963915932878450039682138250495780127085753556643917989060409657366827038565768973116968904729520545942671671075419703423607825038709166338385141101887540130336676052047130785672710355981990162491453727964416354910440362895514988478397028498758481493385538671705887880657953087851499749201057769503033583149833409130970269587634187018663910122391838309424600637450946771918038858508112631623020875921181987765896132070129893539335770434800286945688133888735329101272282504254118763787854044429653664649169580862814783815722252717669284564117833495199419216755229658652838978595061122031354916536735531330041470207528413281118006958268614490384714087421783481879957119034591395677277157718869531309471830691269096986272316284188042502202788378974937554119727655893303628058494575878003250701429101789483907606814509431852610519568725328830089261834936513607917039156334983428879135460806368380894557056760739762759109498287522567380153794785932164725762595044513298555872898955668972839218723501537891190846037891766892684381230310089790869799628904451880594137257661411827285655951147631225988875634016920038943498787792347227867977632556897155546633823741592338378167628367094050413806613932908729155093224183532772118535984949335170435856559622558306260107254543881053885614730584718995970357031492742761252207363388170849675885176715650414397020267099934047521040806229882000838949558450399215066973591811189039192422584204075251144476669029324979960463122032225842815836481374869900092658267063704442555246760894019492344900621385900588930772975630357608519091989416709683425303757680988070085249498084206973533410113934129047135452789391702231487165198393105866201061529292378989637851820694889543988428492888069560527725840423108505134053986798634365492947812206801903999092540622740955726809246300412566216219776385661564680505409710159492410926753487658719276659804792166739786672588126392519551968098627493345410349363318691347486575013037161815781624460343641048456690641615535578243273316039514727510878608737203079162045351247280442993959357007090744349794682695277962345385815553431156989754760896350110538728876323110435555563089566313253690964423120759873077633931989960873859425633555513734641635199778568279217318158381445904823676862115661742841245330402587026292664147026975097377737295063222063875700909879915253100734215930467485391518435431808463385978979928026209380572565909092767632741279567623513977953198842703458078941983003494523917083952999329006864162356111745779601539472235692585439442638227615828734077166734490685648943260420441531615357208438555322832890265479139539841910280224366931171527242104792180504268388908123824953117000025749113521147107666546461315664133529551332138251142822265257631032846878031776582756241676698310983200864987351146378875132019536859224869816671321471245511831244750432144633277804064521120725853841518124491963840453766322524974369490488559601554748773599114234898609772218987864358525171467676439681480644100493317237731245037832263235238067104159528126259522760813533234084556341673753454481062243884898798248171003212492919508318760932874680423997778191369087013045242676548668874621032658993012421233308127354058778081494302256721861538222629938544278359386079150404653715119248053483821520890617271275566878213611014874864859106236200095246879634571513040336858718089021503272109853448061473198168345794811505143232777925505700889979343291422410201023471210902381901499792702977495367380344328383264491604152457435715822087416615221587199971869218149007041837873742530965156938409458772471588926641474643393654278028216963743807869071553993047371518408470267861667198703062625099754068375182557179297360033557605580075425293447263361947413510843575941311687936567376143282810033392656185984793526485361961768514638212019520584450022085462590137786717550643564761859457709973290247549391196978230122441547771740296266574728379237455315365973051253935245796389980292761497662848848307536916096569974889222933439045895851799954182885134094555312562708171365861420479457528130947004616408578144363425369458201164988737263814641302002894249654534877107782628969201801628598807179716116573564559751727790186326821450676977840947574662777418700767924566520980190496027334098997988030769859349879005041011535581112105238157143280896615098202779358629294007755787041397588117283632510680874910349677302608663895995136344981048585733366031627356910413048079783850301256676200426929765642970330553263231931955723544321942759026189792259767347112630234583955514699162981133965437629735392904200670005156672201599908131094291979897395134304103964946271551116647060466125556513079430532075227262293564053838168646413744642158778631776094363286156729092887188159681744497611097776196320273289353763354886870984673471289082196883942670356777886189731770685561152265788402433162571790608926415215060866995595742840963489392475628645745512930744976857259875632833744123064135993099039877824923106247877234512174682922909234632684084871077956682597089448331415210830212731872448564144082575506793886812545794852424415262752374090789731151896187749471035085960549073896789129569272973320631083590439880752146033487177180286336225205368915987310920966724941697256295450525663603306104727189311807027044474197728890125273852008670627847772682083896692840319002096932012581226495751110449972854439582780156689119411847381170918025906169015825174797959956713403999163764550124055121435129882935216505976547856320215012621024298239126012122283064287140060507696859803780105172352825715753393709016559832038759124444881872798221760608068751803620679282100611042175062570064690137850784194300128065762378300142263376555616226376412851806108664117943953941974057539899675920261705723529171155725503653865491311112845363148963161678214603081882138606357787687477100921643353564102655499774182483602367591494623429258638148059062954431541414594403872105961010590437101087950017739160175161901498909795936982501221256090900303971824376795293862733014136821907553204806066526945055804088363433804240233713071724694986585398785451300708008555497736289435182684198341487043908979816891079435044763204218695762929741850518816114014124500832503643221858018605214280969790705807123072715178810764906225179262110776135650540866239103373932189532828009669365446569334341481997445744815565733586907402835284634076444208250947358135266231761744584687218765144895451687857196932049555184900891650078026659653061376184990029187865282220941342359187334502449174877168298793043720536906264411726732417840798937192754206265959850618419858200820555717587814943118971097851828839956975553040708928124405895021148964462836135147907718840649267546132429390645733069902383438405750362803750147939854983003700290246402796318692809459663598363620182369071872511875997693679824024266410088712591586457622504611903042821174464340972747033512737490872707004784355785884339525634552241354134040981200583960800153093084500143885496281005846360437146017116032100317569144948568281466083398259574374569191613765759203499745546570256391780713418028551871141861042218393570658524238764443318917773292085417472995076761768756149174440679797769405794412812743925384088452864775646308474346068019911065540398387432967625772600915876682670696551440709133199313352774376544961011687529993465191725145940180437737007202189612890847362238292939723128100216843449309336917770047657996508740049525305528989691905295856980474349576781723612171376893401949985996341154504494713831755592049291294885550176403578250288872778106473153410264707646423539421146707619482099627426798028880190988355309676961102337007182220080337090887969404041892278219724639125834345227552477140810609814522369500350307798163084524318217836147974980112430176063203972288643390898482649257162558882858365106264143285934711170446334249194148899080480639379628174155503456039373462561450628828483049467575377985325983091120841636720234159941485502995252762319037249022118920878966674567463138045213832547988393721948904700797837262460007330685054702445477376079513162553448371032888768934069982970932025081837175838664394808565572822289022827229028216725782047808559676149645861134560203139055343442158256176911520936020794961945521391316499887743152334182848145148009758899398240613839834181501592025263962544302838248746384499588262452462987474203376060542272606858726493489194466387994360745790279044170438536159490654160942737467683922238573351480704066416131495796642803698265018545888689218247040587283722189345776016610137920683117180806694020528383324116615344855932756064599666309215139919781793957755548547934131380395429289348631399190175094531454535084133650667314403177343661793660954006664381042180296223150469350385565281654498199504145878958617403189760982986410326361585482623790682758363880542301952152116088335377336068190642850034963598604573628919208282243998180918159553377346011309709787589043595602226055293426391565548770018763835237314800209761999070081313481370171566790903926085393124440983539267517115807116887716758426198766494208545757839542074027522955220251136051559754259207055545376203833266721861780999498047372042201299486876483852885847359623694972947502422205599064803923440545016203795906486495598826801612297413747928413517504404947797205780681675810215652982689295326229203845098489986792948647921366585282170697245794043966020839356135613051100099950727640711977654093491425787847880457599516713418715545583308456652206433203502454913917603167792644515512288348504954821078877615879741069830860818252245282820660023583190962688451293684367560374125991283342817770867930474995807499336661565739649895089709697114574742952662006851551961927725948646168298920388443144603795541096421322582333967445757403471387497931944379084404011975576428662253897831103843143461944471516809490978240509513425286791880871811574349343725487405106067759737852170986086151566381258891638834526715362309095470065382297511043376243363681605000351562266498573840291050424709891595083797570877915414337007586280559962456668063693560810202188655877538039202400951890144048310448994072654951433303425937003520415998500509515206075375553586248189357241172505688056665066647565287666280543475144829565616036309269894916529225905552491998213362994112314315681555655131752024971195386107732719459358207221316818335915450049325637020611449924797120530127975928344221333980897724700339668916910395136765153048976097564889944353561004980212422875291452179964342998507553987834911739176576185709854961852453702258824746627316158947155965600523206420713935759177407911025240626913017931071951187821027852051773230415071219412197467069601560842991215674959029546884459485061439151259333840075604093401041844784731692813561910566263657548609854759457632035744589595535702941982567829301872172679996814727570066526383656034834269998837829773495829514261953223617244012143290030314579790876592751618673709071934713481569113035504750776621173378259931055154421068676246002042140000796681032850686443249432254566673420870244390171030264171447422995761446201673415474469205680647888508854420600353539004471016916777509235430852927817968806781709088395506206050146310666334514171642466388988882439205008044186439203590383884580692875159237770006591254426094237260918838710078438513534476023958525506554561740336572185039970630628526740568656474661470726591615756614517929027676042872707267799040232791911468041087310168524098807898183830514788301325656060671829441422081769725137596017608390653235094616117628203942079611960423572658368006074251755765847968182301714590645479605831062107071205764105164566387236057597841935605037083791770434827944307516437019448793380046319179116781739016322582720084569317836919145279829318400323713361772707840766083976763147016317102448646366088676163492360288734960031036544181191286212376609461584463621824938142157441333528347655390606212667018150476831094892419854975407523946243606730063834324826221067099746680988046574828962394419694129748919405836894920466511373664930427417656010186220588226182118654875034831359055210573344221752774679557309790961220440730684902785978290690999237047949516996447757082417416292796247528904332239887026642119938273171067346920894495993459007004359822537140893432966867012775228546399459067427457523624748585959644812096366027833035745604541402335127353544208959408098430490707548455273845694498816741962776993527550090243454210625288077666114645768535533928386575199815716468057179836428651775658016747403501939109992529340402384564236003528945168688406511295790029488214446318597223890881660026266908353674384657682742508407494640049705384687435230704867065680634870473668664216854136641535891324610926850913005573179074636405498687471180562757589977248605487861495902543416089688767112154346652200293841277834421715174596520375015722703802226395596528613398830008453081301252081720411231257109680586303598353369384971585643125427047758381666983547603541614219972155525801419070612357239873507522945895215009691292362552398614756063335199034484303500706085482491187431643846438324642718326516844746912836217970283271102021993819786078872101621815717913458377446021085315071234993815823497049523613835665311670504545743412005863950939390512268908381571242036362070167361778736082602524584852206427377163161306820146038732553065370296972380150339967141757416603818706725430949865853510977929912582281470940676250840150836441257107065352619625140903941273377990096990873163467158132350403052693834577789070905889930430720943389162074748647392694251416986098780264147232311515815787078883705999426182746351877508153943555810041282447660973324839534134588645419130370573515818644848914627314371097714595644633780342980871519819756328402773955142662811254022007911318774356175931171901538457584032899980527657099645124649311808105006500798990584101207695732152865464145955879136671582601602833117271958950501733488851490794704028974370169783876263738100676697740450702320765816728468233480848675334105435782770857687198888185990034491290229733465326905167559879275855895663112973853265470608872620085236777569326351229229516540299658562264780295250864793838938161348308424048110920714493948554123246295063738947873622346525376786471517089523923694862977529904866467929971833364408696705632503640806815999187911078213308344846807487346302319532689159500443798878969792746153428005439712296772580225505061112415633630956802182623878049910505708630096615256869041449342578879257390560290935153172322510743708576393647372552601691755839895325374717936226119163305778843812006961819904293658359371416155958761851804978265303319012674116355772901314902834321519262153928086676559496016364791311550127982698485286081301322056669250862392391700793640376994134785212355129373607021105834443171030470443601259130029580785290724363017002887370835752376994726072761196936174586835595934970198992863098594405649223396339695916738541268086752680362789127662897570480265776114545011628004140106573062008768394097874822539752207689351919186826424902324090506444066913988898119292169915121788232860039684402926772134743540357906916956525026141682264028561026560668287792776672393764903008693258894124256972014775670287174739019625881556535842827707660219593318804206223138093631460208983271629747187622789235758168010817087608821066507498045313385707012819242330230633094976114908274002269669992686379951878321103681822250603526721037356398405021782768005923081243216087660305864688076525442052546644246191853012800920966419544945803270293027783732389093209950034336119597108282506691987854505843313274181603962528800486961679408550843683627928228669171799884734291615517315364119209674201559479518596130383909669690428310915617665711203639864309768661042306377151478777268803989405724464918576055507951704301085283073901277032126270201177402816419468848899364068907641869356917288762313883777657649381630970249305293347175838576026954768342723750439456984840128656933261781073366587218640365529217443611453998745822596029154322770892715600787805836854323959287125176841847912365902957911391445807848505745821816412811153488023726806653376844435634236516153983922488120739453775160791299512913994558849212684305332988904546175623009897094883844048953280711114319686510527960137063517103858713817961510650051985098037126439927459630692667013622985613126501080429639252526955536344198533483255267461919889349163175527844095592664432433104480617539769463207706529113179414849167395090882874877871872912947263675334541388279882726189511931509642132137746684654412177125640939800970576344418133941558630030912771769458599513348512651033627176044406838809093840129257244740987676081903120166514130878712650630463741579740585277740800856675682356082102630592404662954270848715343494480730143123071484652048009873171427624005485204442337025647256700158412622852930668411176493289764014609832632625803642093731500716338342430650151393028926588232803211035881554770647336491751031998964321406528497207520146928905505103030311371649788084671534331003151241239610272810746918601466744411082549999437052164264850445587385075638782402917699675694977948241044427334477864585668094404564508612341242144006949130131513152352824330901137521735429230744429474161279915589966710563942863545094183311853218509818166714754645113958347445289124205095496813455860450373780666345120985858418716882379959825897006668036601623821328379032812520352685329427945161524454683005980556904797413210663719411703553701031526596369259948067827765029753008874608724473672760747116506381344132465881354824630279543519209402693803668755458893312354923741794612173560569526879796683217339328718950469726299167155389168452173903415908417707333112665159559686426980549460199261528318929183438789977119638721127813839597623734651453454059764550009234464208429806727476237220823532425054773148379978098438384925731304815926946689476947906276612723962776048353217224368297807235520706246423144472651457260187872248810838459651177236732396399645459551098080704139300115970592357709167664809175007158146538928939953400066725855666312260450373861188216489056873676601508553852476831172465475450995755850108656838909196834882154164366263328544239878184084486258568380354131186468913550157626444135635338009267181837472776303166739499764392502630764469956473900486694295515904712803004886895276716155095031681533669051274241161609137117410709491694237832979631001693305879009099171330547382097557014495681277002641360797131857858216899251652595320016736049739024473955611209456562099944405071255282636961441190788659108505334428534157260986016229991883676133096063321189148525482955066870857594141906978465579564702438223787861413070012360871596381445723146559615657062101502628601450464655089257202087836027234950892985952986914359177064406568839734488007935632613648318070330436625266950418150027194499366637833662462795021443722035714611368841882586866096254693924887022812706940504369141700861230297361847899221341377921530571288294935974685958169348679132976020877621388573597727550206797343459933705999985630914806223740572974347612913288637865080775607591522410627525954368598525812623920137740538212686179885381542260746183399185283187655249976685898162271592009633037917816520547498968499110088357841396962651587671602085643685688629361260507226692598478872989569736100357848562423758029363551043719255618768770382846639417623761822197854862662217596837102581843231576626140586095403202018754403571429049710758858700833391533286123817556721029535121962104610421827619859960276156291637133153632285674616902498611131681917937944563285392404528785573639822378054548942409123148276563796810938114171018006307229607033483828637619249744972506269138649583915452479628715122968033120950297013815907653172715023028191956965684232028351084160337107953231643142179309209906101828669786279351301804106545894315109737518698361919074817149876174493493424330621622889636471336649333035103294112628913416449729741496573972032107714282815700519553152824538089920230862410937525841896676222434394746985026337776029929747269101103654552704361983003185198140463791678101546159157783607846198831308453725653478147336279153875747894150897741215512673720282672485424855856135578048723077585856142787753301120617681840580015057613821662853069006169058264696297992683101458603512965181637647646754386410895272915174330046714009675210310450880527271381981159727942922001318440309306334340640902166910186137493064985793179911152951026174520475514439554139850258800018431984490493438475057842864987367123185430409270852881999405422371624788324354604822054692139846337091443491322500339133326860729009139183124821769294672414612632687352020827761817009881132539336864068686716585538845751830121296596666530606563483496467080878344394510858959500890127903376552194417960900626731534943096628539902699900838344256701573660661326937687705763674096197920140363699076433596945352491623964256268860558970363695617089001078414408084448510141724283377757986344366672660849533607342147014935233084371316512822425470925017200024837746375251473489799325781656947128591956407625415305658974655679062273243209966897113863955646894621106499830505114229712362042006755208881923581336282900920277075265646888178027250345030449891387690962272905149265271587966359380860948515982450592504085293549829379243040628887897036981120047235569251313127415567990411517458173991551897648030393626332985413215637716975424504317420397825614119503342179755264293611801599584792832085351001076670248340026834723081931180881846902518716173701039457372293930044214930295783811996010034537949841432477880886331360582581782781384931002027185610368519825698318263748296054143615854199888781313616833519583338721541476941278978579359648884894289358820504721037216511412180622765221556378163913443415802582668753980700418951364207353594788773716909691155193583590815008246005805494879067017947698400354068049061817997913487898655016291960673256600450161443913471455205652439862063841015782823662520766476105964289141909270757222724973958321256909788458399124709981184307975037915179957336725826240312956666593092099912777287993447625508792366203310089464539687589603060185982538136974247629826447163588229919482424295367537869240564088301806544067659313198300403489127077602399773870533734469046295508472121466976122541298852626383978702995259688591010659375542210485926051320145433787505068298630870440819662642804567820631251175862238330311546720180634567410241437459567977079099907554103413626727736296414737589071680957370931832820748164409076349990255485857084084578858662896643981144781906017731682680370465656107603967038994322685873724334853768548215111862649256061805362098781113522195927635925501613870279257587254886108534373237064206550532993800283937555321407024391307281093921682122558816991578025156852284390302987166496962908116083448060228511126495293158433368665341534408725087306065585534731465993881340056865718333883639310080063163926042627136263043492001620988579545117832033565320453808032208240398082608776116290309445820304777330145894860383401570866458532219089357508591567824807769693106188244294811620446339938214793626673541128562019822326120690551700619904486609499909992121342844864835107233059221501820185559756989222213499829010321273113323848724779533437191814999098196006809725131303264043165018784084234669484094165227858453059958226311982353209782239152775067111106142148767227667319275830029041758907729204151840914365633846626211859291626537930417441157811469439776900724194433774930322192985384010553784933482181646493617511146594376130365473062719205223509510181547127623851968086934432184981579532603158673383511350864581650215203463250116019159433310786079597595809203323016979640962351273959451512649423361593899983157538717391535749276594253062836129045283165361010013697547835339075202382577744673736653960619418335094372650552319840507281091523646403779011317124172824137743411464246180723711102849070159868521461331970377105573931714103047949286152013646072870957209923509107290383419075175116592883735322138026653450388721710140883123811655668320991867691191423709672101178817171995818150529167834316709763491302240920683124874663558247368026242381453827661567878047287880734150820385694608958957764101523294246871196953339084859797988729281811088215231185065066618527413289119591472542889187656106716059534128208332019910827577816609478532419857863690525442853136275146098389934467341428761524099059017577642960404139860256733290342970987922537213231164302077860532927997126339806880137157101404320768411678405073794520904335273671570679584431761735517909517588178718837582089295637262828587661654072782250098627389303447826924575222357529268296609589702972895580272641102567575603492635643312370825194875628760034597019736799892668066084742166822006418840102050726230769024380718161568932539418501591432801395312281551432971710972765266276956791601683056737431230185545875380990925838461153008750957521261530095802719980037373374191540256768703944316808423730309766810281384692560279140814285985946668460163095226706153442701464171585308745508465798516541797733745069476366490174236040962800744769253000056583379695801866276134592054341291552010878794518168200326832717474136883191627321282688546061902291993712460208433955555860136440197092943739659112939517893672944519263045999353348479633778656391018621945620706489568090259373866689744462785064710279345503654313052918821938446059694982587323916907839170911830706370574948752073814067449405312621895803327219325968184444092266519912007330821555743314492256694935746401863132633829658686209548871490865904460385807071496156896514394809373360730366380200878180075328297752341829843092491887665753036161191287722120013104812220806678834989387232362376065984443617557141542431775138759022014645898688508598768628535704432073977589570997845394425506205534366152797022461583544963622630527581318701096899383172968055344036906678671401195028914623571129034383941163592197927996125923185342983988251572418639875099899822689234273218776359849007525526761965423298310809394425634087268921532266955895271942461433506187325782688185106589382844034249990139291718591404217455409041315182808129615351228291600886776200399909485778921563154356575844939628839490152272764394222672168635423298703750446825438733691581860066798136998311543887413241093097473095914172094971735709050414279444345995354635813037827975263626033239297769153031362920964575543853337133146705063096545158813203839591560628793658773289681348750878404144210015713009137600033676485647308872546442522329969960685502250348585197504681735400100235312943736809285004395750659613013424612887559511010544756440754275216007095895384562010509470912266999811048291641635768720157435202743278197724439686047502779666631766269035574887197845644497466152327883589251667058178451496655390386335566548776909872494491284828421909095303091728136840171002287683782233235974430752201524530571265011689152071662156007197528200605290570492483504306593960412553290718070967873359046844847432400015102052038912269518147159992553139004911572562737202615300356635886974464696047623476019739319591070089751316410069840201853222332558707743074898929535298533992082383653645670105905289082054568273965276789480516869468203676066816087722660044862897209696611901475843174205601092364420376871812852376941038141602209811435375542297767884934214650319510308088168779255353532238721401999170089648304655988600528270013225876796955264400386413872587587929366817194491037518585220608277117388317421293573602119276037986875169972111938325480180365244646160772982437177515856845156114917333707317378161220572085681443180146471784888141899625053853857486695362268126209743583305424194752266832444414542656057565710325970769761138624800963645724494221682713900626443320506478952635937557061529537465776822710054000881927787968536600079301413784270351499952354146917107979196587246494650814040384944914812741236441106878421324998370266556020590057916463781621150104176276896979250870653661552249414220431434147655430678271816403524611055583624308048246207095726590078038347606568180218496678560702522044062767843400123483426697308104654345735597014307497108834280625689978967587291585345887184043662905648164305816191488741956862438620619051322931118847426505162256719604654600617105375536274906741197208845998554656830274511553937098559669087545380319140402674723837522522418908947921859436494640687260881430308641945489784620476014026070249431374702369242628346770478181602517372549776553828107745338397882728820184841125919884285647653091459256611582139535353547688317498849994934408734625093533753845141952119282334431035972967271144656693693991759162083649947295557972237310336257623128582468508136130909968760658188545868995614873590243723682743729589301832672320569262361477857543075995406019877015675721222596361391155458544547383138539661808693781038447712471940077285832945859519356068026955711373051907413782629682162704743378462668979276470761482438074936376020691833298456149860122410506544606992291229071888877380511567854673603090623158237348514618819494013332773006109247011234708319349185462726966881265033090180113887993661562868898405409908154969614003089720180838634893911659306012476987182671007846333392190084719542407472875628101105933084078858552933407693199456863754760234050655530623853799259873012785002097997290674960513148959777910460726782504934789762989656475451392283296613078767467227217215148598743650083487988243204549918140802591992198845203907784914004057556024357151674890371523851850485111995447871199636334401136660315499637482558685118094082667190783340666416524771511559224586092133216746979501793448407134981612700212385796729422410973366417128574904479102845190830159096167358395719154284339254520144134031417339273472438404379281675025863138360540080292595819371013763229468097129983775090287747096806959662244182657750781406204967766875420177618560037624101865346128433367612843579474532281226216090721573151065424858684917586254164748983933170405623598955593955142366138313632228654976625758635111680333248564675299643428254311872523863889525492949112198394813715304720722019272458804495669815497433309016233917759715297490454859103649434341236519530375439233886379651985175174916175820794510097676067155148810852062909702528053960794892513555213917970946157478571476783281254475022700623849916139590715013179184181289654055752171019610918512719737371533206439101608127436491601720961635563060812011082369266250472615996536231517942513796466029912600204863598302390024733228111852087121981709490077536832595835479560678389238883271741768152980535213168886503811028625911244144875368484794092329662965314053342455797007936569605284554693533694625419952287971723140481618457287969617246148739931735352298700050402201731337294679947827060358514288950093189764208805950485736708645941938954281454711736603638923526451333868649991593154687311224831057674950460979715341301074605561204117630631171606177892803537923669806724952441267738606952305525150729429676679656873581678427824542876422025232618244668177202942326010154055146434411388784906459352754141204304231226260059246979088555840238367947163740615064934537316859868211190110786496149289696583454957805299584036767689184548742849443932569480695439471207373342361232883483096754087497312036562967135836294723901483648054714673785489721317788513475389530265574267106133826660453808674682528803551894208978877544548645672320000371310931455414811331226208880339644213334327380347871719604391605776602282754971565351645494417250964468512329941018258861276094275366354739881860644800044666484646431367419928247263287181569679823957190824745026660291282302699624310508374272322493235655995184960201013622494750004015652983264522223475515031612805868602092195677830489045748654408175090619929058162009230651398861781303352189970944944649187075460712134896594614404221262568040435752427232325334402986459872145578889301053578452394512830056645580117681479273688269732708817121911894530899555727838663444475189389884636634717293749219917607474239097907546336186451414613377119475243278253466147454448421577843517583333162494011934268586191092796377847963524044824407356629192134711141279523335426626127197011036875996251769595479087456923206607475564484943650433031223580068241236021261136449932815254317476625533285991643541177921161940736666777022689007673865889829672747756421625018708076934217155742785885719001916557856140321453625384001386946747867477972058199579445305904832851557275103659895406441465156319619013501365121602790922696102642914287502809503716663152689338878784895920181657791506691733700238041926885813365543245004508762466430214974844386217306850455461557089218988438462664116123118547302836259171108332643272251875900285140442623412483504518936145039406885005088621415855390555088710428543309277846735163249563218281370995158777970275326967212021345700288659131480360817122476511817043730504629482798163179716834999354273118353977927527036549413435495726336070990980704309492812006549756008315191630461345981731915315541520509424208478680083710809551288693184622514829271996382720583480944285671110013811626613564840977411069149873377714814372306680662097138400834166957241498743736551158313557886412687548279456761925945049098282260227548900801467193687912051172469261471968869473823350514888479336659708470796002523062731232497564252167782063590353797690475265330539610972345913460437405179198369930594071468938070721526949427245923918503195636274715034435802921065250645586217394928349146499873997019451555200893700202780360643141341356444830826321083629138801446271072566320138746285297266554314954039408463773489372917581585820343903657338267173706489326071880287588181288834610744514025435002435539084113467479894126407509432520522166188633820316950124609510175204088197513951851084291624141431097899817348006246936451181197913921366250456718738692809103625292664305682231064480573266965341994972337847444875793806424493342662784798237823559174044649096596358486702230885321213406941485490134216970795188221711862278206702547170049080284764993403515013079119940549179688504210007875164977496837558743629011512984063906492900921195347690903388051592740428679598712557161608631877608225314176770505996347763563164937936095395632468738552786319075462186925183946968683732449113518330096089303409409998641430206573127610912214978594748961224238973905085878204343997496490980160269690381298211205155270296188347198866682113130782288542907819374642895673585429898488517498544577608789866299883410880721167356616103940138113348463485441899867023090571574923057269066364222422041246239649129616056622301166310598754862061860298670456820535280509295810147020498325965320912956366061458090215952998815091836933723735188344257291859787787026820606086098671628821198994639482156354904536745107780064573048857104793618699487917763953579617589615000628882593844475779125636766398727295250930816835972095733933151967679215199966573585769000140027771938324329784614505414171628106734115416864645845060421540939891255835366164097372143118699883163047899019545586284144917194501341198666891114986597617316754900114650207799154909664915324532980264255692737496579301623200348797586485330214552374895081483203383693328302316272173877770886212749071855818027606056916310862251181980662002309937549836373018719621553490593938718732075909778908037246714696453502463523087241808648772729655597936888444386322181265406984063640006971131727377907715007120549604037991822663416075434443575256314786963720329039121078388129794102239401003838764675783681554025140306000904839268662235455310982382771890575448179406189229604971012114707888518525642211134128552835491805908643209283264523495775218277333822965259428463782459819863853250036232154745399727418879455529174413981080061820156914621814510626575748662270984800561162116438580487421803872293760295688769883617703297435075493807008187940285448761668640007099966981050760264815513821939777896298875410687876286315255408529283250789677142125859001768223286989307691360451731555213315480709476426011278765584645833398857203615500019298516263962954125120327633209393425435764208370918743206720638793813349186108336134594585866311594026928067694033054728443593940133203206610875886227770482833304650625520829707077701878652238412365026011348937237907285242527060197944095001679070121258313227745020172333556260304982098108631540626683797479268841140342363684398787338809114162106333557582908171407859392650017768433379982626829299942561132347554980103195091902268119621175051094353533541595765341464259049605859529814885958729865563525984458323373969295735818630684249274683763400584773796772702016574008132748945928806311092364566329331258812480590392341133645094065501442256684866206612438069877803049799479008977941736237467053882127542192153118360764036841826412774835022468913204172455439761887882400292754596337019956238534546525874874565195559313599537032394571306935136501864857544540351219174756738159098825142928439177747296287649764603749333324448437169595645907299937202837625286506151849756830799872767119739625294763742168438058849635425175052830064915248015698188612815170973266795871582121414563507643430423275536923176091480262029911274332012759651982090414622177915158732792955904615632731045134205988033796896883807512362909877561632664479713420744156816001595996501041641449457281061993548051342442504832532653802190204645221946505884017251209021379437482275721233813704763220107689041811656585508170506970062661468004332396410511811703370065209130770101552735182353074961616384764786954743118379560037959002924444616134747551970808637700755574277607521359655761214964910158946404729442188842543053513588039903902488578997296306192767366421080577213643372929025353200931540408742559830125056222764490198722858843499145377674165475390261514137148849994601999214184429656538390581324170628287381729000121555244578038834771389034609122846216066974111033788180586548160321693708595158810735982976499990422375173617284914401856468879985609053446360669187608670384308559235901024679963699485761777513527741088242484500270862725350738932943380001875930017188310648124126727694790463917552210830703326258036299962495947426391211624719658077875468676700970123081994672216315272515536944441780606954626921464240530852673171569232914385161365755358400718241587558035041883218096529547430984176325031650735458411143115776521574820255381744004834362379211351575507087954058838271788382081093306518050125085919194378237479034154400015375791210782667169601155414545655055429930358693951836394421518914793945374946062204356500932393442252154699881289663712544929983568511543146236442445115498123650222394719047154808410987779944860553773303621486617604443483741247044202542838279761808252518941313955243024527673452497979073724610981460284950478929538546561810175280810733188082853206730532639321966065785959460331713505429718323689993607813054141941289109365039053951885007096069300270987600587610605235372437927552174657148841735329104831115652723427098605461567446830978863066209269319231714389879678788846127222769464571936961132015312471792388422126597864064009401550334835960402546815041040430781980312969171912973793806598080060317641726666685745189568216532912452526042412365694579505865797314866246379429728176300380045271577233521814311651275778546388553741223867118063567923250324126090003034347061048867035817786033897673585541350695115537220848372810078159222967394094781273633123694070512683889047280899952718848449430963636524705492989143482807997097718008327024159158350321775011069555226553291215079129508650799671965610016795906251260943692347192062343130146399679664524371532557824696318123130423865789529677588385126055613968020559870513970969538920717099574196237265899812671671989718305278882594089438807600662506164590770487583610251037907252876176415199908694948736602885256268419392511787012176075554132999237653776892021778610195048138283300471841786567699959036473745488392406914104451891122257120280935031614633598959136943286245443130251202046014729564524246875595825714989987435358306403218283625144856997266960498876074839302129064727148674201257517217889547591190565830150009403397345027236169773624733354633529327525597848138444495145880332708803993801889951974153087389489946034122712399867749710884007610347094471967495876802028406068084150554582062365443193050483859231743609622388821601976287767320198747706715186123210201900942369130196648155519997749997292526787533248675442012625439196708833793940525103022380636283208287100089933670831290596486501049701014602812830061677751057658420247493178526366000444753571844713100469659094418454495208833316187356755375816420637398792912162942727552105379259229510163935100466875534172028971414250441582764099301708867148955879328864809048732952200439248353552444387475083838734795416588963934949760888707038813210302068532242936820427166947596676025090097301699639035888502691015853641337705694142021842785588833600506136003315749179885042163370802023721154789067270554273816702951936493331250724483394354766692679418760368401840289459735427151158600098595114513895966071996226657339550961335424299585188157150491551104349197104943896630376127208310428157525866993184720747971376039717080649955094388533356619676656977491716168835441260925815229373109846979848022828667051128264313596038005294249360440193759613365587198504138230470780031944577387280849963127166238964373621183265793914052214745588123868554022641336009497718849502397239469655108669373031747635120793587944522302938684733563341775086106003762526029505963291641321319736559780646234549670846621175793651638834876708139752002755704803710501023902817050467123924739232303181713214849220353900071932093469106353003899358545690752623997766477880848062782924188315399223737439255921382949625933325879088173212162155344559917055158055121286397034492327241674316619323473258037877537959616060396574762934741342958046135636650013368472778990793641552016530680439891380564170562002986603932840827229887172234932752797791542083565906574392865437276085720287385511847476306672852814532630818999470727551193803571698792659255279142696267450032338063070775045468007022045647706098917359123592231772680381367198964918897004594654038016402637286593100930645142251134488776239406793921356439722739418392536989898689979178090970926215675636407744424527576638334261837589311592595878899141813191675404912403967589097925549940117370514696501320691552508382635428893003603973999350475275695731348568360113779704454236573180589969213021193849832919356021091151720456369353759673902451124569678901023833882144522577836345275467161049852172652255278271752365676408542229166351883099564352388841521661371007950959669707888415510126792673651198368546960658242104093144445184685001895593990635432390579644607141927566997107077272628926256018917551439557576227098626933334283664654945010924922972408530034169157071975254100171676569766805740993370954593693033724271893967491884846760252281018939903060949041068164062272678171879425935751916506282778106367144778002248493105047702718921291832486579633596252050791717988855260244499291051977896184070351942746154647509724489520566409064321956665222237472283675776186331679765372925426680619248015163539301859956913132356839732618406177887514700967501480059715449880004855369291613179090707235857653265584450489501840443262849854028565429791151720859987993615005568449384780595555343392400217171986280257595282961380888610819787512876884980301799242668317008351437900456749190101886977062562823075268238636549065430329372225926147029182128209717388714621812916308475511822819833279538032351340472470674826531142486796694741561115878163625498463825567623751654280763198842920285719913302811121440171563295306657973084100012314117521172422672844331056801273600319940929382117100840547083031095583678449767293647913657899264421985441523685248399583303609453170548277994105030150442710928798682584726829431270611130134129094593864901723563641626376357796851587592782177333438233131195893124485378190486071673406241377538630127631619113015834821081462798845047468263970906881851674337161834215806893058593420557578025348319662524581859556824483499499651665688729802397084883831763526892362659796447014884172706825662431104705737421114865256876707084707872794787902312326681009887614064493535802067644366551466219875547200764486901369097886141426998488180225501880752245907372259427954275760108567772454105883964714856313135108587581763838337180258988458310141088848468258196474989529023391298320177658824533199109918882264151725769024708169151218461482647008883471729680586582478680631927763183213810991894807931055365336926116958847832788480317868068269843449991297700258772950780813851443756234528248804863368181976749454532669531650994116722081462557777147909968102652775565383058772394425984008074081760716329443151746070195977428513178565440491364709692955663555378314928630282275071967692104059301002287559267978212157595158233439090416034919632410603352345950503944031729226349320629765595764815502708822015057131013631609735609901241741729544000137606443416834343870408999140933514337622031491671489152115591898385946997300983879579300572592631740045586778067161197719157081190993782881777047291455827352803244083874449057898844979981232592534751942572245959696301787094802263507044314314794189438670205084753002722361129299668443409290749161796322562438852150235548158645594972335209090754239162535961378322366490912487258774103124640407842273591667096119341717982326548860273059768570412434513343933472937869998476153705703404202515225126289175921069161702307192029604560983665015791700266063802417969469112315595192023997316179405699919684718235091676273358946681061025341206675745341994915258738253748537900188993711228660454516148235303142055681661945475061986293315011606863357532331960271978187753091214551834322014335413519940799671476195198729935889240868939953213138710680621518016789321784525555185484583207200662990654903879223738875560109010824199736772365416777557724541513190935604093472526214013960294076705044393267635772263854473734727538817772335610651502490677645970663325706400469502828440736163287614925868100884561346109068479088175786379866539811419839124528586955799530310570994879505814221813954144046125386583583293609043143926025625191309723864591166812106381511392346344439817016801074040098444047756002732348084765302761636972253127466399354107929271071225326447203544054292387984480245918850048470055941938546674528404983999861623519485182217002503175649170785522598997251395925939251619005133012352930394611764519742277965702413596868182876994621686877142425427626949487319499693882266688335855225874237150701406637974150424220691545238780731677922481035873186094562835355927143790113195853078664686999407795156964520131294152366443987584961826748052661636000504897325300138815971058139980017123709601516242881106729293733933182388900994758497346041838979874307708936353089366503136590624401588703890682862314138150485715143208264231466796581234843421891769831167828240474866745154198626466800356948042597038819080071894298341888056424307926375727474360869877369832637127398293473255124190696701882053920717020939153329832016843596030626388365573957413762192615102001036513940286024624035440298157259624086680821849831431158738779319552290912792685196362027830525125993636301136214156244007154852753360400770060605414234619545268812201620263740037604740523712679034260617153417357782476869703639213350153238574220950122348720229266047247968502778604406880200328519523790433163602590853338281586826976687219256854588597007448021452429167739301899428652511220870605181941887999625164435509561668690806855794368750229687212550094816860330721464939340192378646084349157185175350439457491447727498041353189362935777313022041036715835130640072840066315870906477355119140634690540064714720536103382368031315063939499609695259435390558599274706352663549612497858659327934594491078686027510254113499382513632579713398769146939465222487850674279748865365950756085042756174887004466290816128957226938421821945668931008570303689351195820702036908183805174052210456485720987464045709213737301688242005184824453307403580694682001445755912427507514953587311036119698497646823070118992703779886886012037551772948529870785415381281825212611831975803808341474187036255588844455736929175591051596726854098866516633924148770409574677904288835138826133623640589162446617046593658634756101029308543100374892938424661719861468785423189538872422821982069421212418152185730900978787444511522130617684131160868563313612885699553104854242533262139564015999463722126685937520413000329686396886696864932829091588314343395485897462095155852964246866916107921169560022729560813786477533027006858019131379073921979418474610353953035243162935541545906792665510070158883175427509787004968427729172989368604521947185759133909417981764680678115505840400832737123218633047260383527514294315298717663726602349378551646986071788868166263405595603246601626534372978925068222500632647669520014322797492274833438400067669482332795123510542245065035555435463060979086390014983638807348192247162860750530236621845580974349373561514062753021462385447654712506141807362064784482774078296741351449923338200677932659185858521422033871635761221945676725734963251906881031642967010589728828589064706007577351520611659096540241834217677825179878923282196640159660339841755970278625252922185967442418360116671172477081427590161394713042471788333225110311971506065558550686391719583138788421777418062082921274703143376730301015208223055333648969734789879705597313582220699398574689006048151294392444948971293496395424344437171079028717703176830703007878682740063797798370967007952454954813709426862443717657689501292053030706778989101016072941914475702311413912158671246946513896428380254972597527754151501936928959571067033471530835278184882937539769224171177379629669610442066052621180333465903030318061595312838006557512166466328997462400961111582322228616313752268131874777074001802255051857282387643485912199337082200349365587190241675690722051397461638905926092450015118677502407605670580586825626456748002209767909988410928498071735277785591189151056094997430783042042925426809369363232575369697510644867627961177284308058463557150631699563796340302705118039954970883009102373641522292600837988414009882356230088939490133936285617971422269053427663600142441376602313414536754909038951242193530464851156998599610219125733801440891921110464450110034964119459744096694107205394672095451151075741000885068134329304232273495212307306692790804883713919139121797553665110656318574413377294136086220292638179421991533839220475009593832622658632718048244194010529921952603906522398610392297865403007596406062401804852975132035729163207633627289916030340077754048103297909477208715074201588820286465710789915526585180417342724478196750028742651430269285990494290563619561284908666282738601910218733048106741417058743832012737889591178053138785657780810223142873027043812385442972117222757289648876244284151637489952361661715441862535128522699583158435100284816510234638496719172036431493425710233862093699529084932328307438190556954005174164474556328266204443249733311353247166746163045288368998935325793046623285182752893345728566826106235797690286201885412522655992699731751855830276827241823382945132724426648905740873758487881364106941055372072047789075739707903839552960495974375610722427905399215851638015290007349122358864564387075683061725597279048954214603189638536236159711582968913644115027170184084010238235048665340963029409088518715030052427332554137281908350742118852748630436767918295000184080618687699390519312370342912345414581952505852702994884447630329221320269773437408811427424800505151276159036845801284433094336237426430890186032915540359689843322230739918480204245569025192499927183587072648309661930608033534273535910225533668270065730013358726521214433567843991089460193155824295804530639149481757609605225837616353602234449768863692600707565462819980864413972291112204346639478052157589237075076543910915038830490944197512775789661560516096548196008646773167110081506051956713526769331333098204493625450601968793648331226195363820330859867275379146329616005294867899081289736261552108930675974314747515095068622223881197830587078473858305719963262349680807396179954915301380853763676596779028260617244366989104278530809258942657366781962046542005378434538292670324101228985974489524862430137481365025523408435021871731446350415155414731351941371071802941089823420933806965806908585156525280751812436356574278509442314356533420785860567042066729591236558974556509998684583971479270784856344553544854721647002923511550391647845069122581354872221482946602846800185798552648448846200479597844412380382970325819830076851041247095295419534900036412074012573180125068461237943931009746255381397580523320442816721906843626508423077276463290493462375680653664688729223365412546181211740801014542812890525194052546697305380111757565556825817945200718160362322644817386436704871567299374262660455200878680717739380998887289605051523656271013218027518245137744835289959351599752363231873324393337542978171786508952822002978479933741361985836702330475745057168128185155399985394323288568145585707591849786323580046667243997147133466843085310126816419059793652404764459097516549707645875271283550992084269021441627849751695495561224048597960342118372485869588215199266995178462195469160914553179791088505915020882225795767133972991548803111832193586680509606793210097440377425865628360606987377965969311299214993588799308412905455825813885183343434800028636211291111124871905381376983819173412869179454215662971588702169855661600473678404545311846847113519868474744548810790249022041984326201870341681818495008848294396569720646610303058082162336031041541720264078335120427803638247318094485570447084365157730923117022512714471221526723554656734210051230382430866865522274764330802761483355278415687467380685232026550616763495255014864910595702506525780208021414243264608073938618909464693163971181183758613429408452094904941849367094054791698656346251470782139217761480269290191173514575156352054502418839026734514490843834337825410826398607591445827182971334999838046232920093489796248697154543900346547396672591833048790119866600674170470745026018986933129708961599512989985188998840672927281950967335343310221332086244476604834500049953989502593763001278540432284533596417046652035925736974127741004810387466756489710009620661396121885198103202468987684242734608635592155365060039321827683584052777533033207978067325280744266240437883934144812285594776777024799407839944722303976688660779584575685357067735994000360342605347935078544533593183525873386211920802065295874613726220414342214751877278070735014034247510545994647755564191372958138874378871713194593528547014266647467361634626547851245209101888189405495362118126162651183515952035237009172628982318489636537667115597416876640045187894878205165005650689338636230677483786405618554973549241572460272218093495044357934024845475758537277352050010092263397789766413408070949577627833478468870474550211236000265123295296181987395945557226132518659591729289393884439191972977168509212092077469271544145901828469681252127813775425100602203441196553280461164142655291129009044308199103219616927172361057842190921913725381345276262722271676050790490200553871007951488649497734301061509397884002502949749002026200797319686557532215274695055439437776557086548960478906621576038245884577856667024549413889148383380779505797586480958165510998002832309289342727418968379871031671405593160183402336460584115932510540864071959715884701397997442532271285193188234927640322952240144544233000267843686416764597527720182465984959288493404251592093733468099232660626616260805632741730217332779832103527112986430074863691624694987482029904340919082996743929307196563336743546460051211482576573305584090831374951922810297697563930173510738105856014162267243930812174144725319629144935744775857205587128239097267312827287545720985945213838935470546172648070356631266887880488558781937958716222168001116007348179332305564348894059740156948614719733515614430826141414798717261932958464424202976258833422711873407346146951976757318072363876895919064960041367134658328082056574596155377589025415986211190708358288026660715338041099997488151287331064800450526375751506089362137348327936024974111514179978472761195409442558160411739996343694548936542264096407363249545467476077144860630247126069389186182363909970748713497110960577768253872672482794287478075005267339566939088769624095002456899326093152338357091056428485701600311418131399816818228594665347405000724718121820525101704487416418969917403187141328002320729542917491471483831841264006313839311767059282625213963142148756965870704056770585921254968026190108501243647720642892081035640204434423681850317870129585432150563814419468323941930563395471719706853548151456146092314449013716193212505433873726793310612843725014014907933357301104710767258542373567010000387558831536709674498877967912493095204742821530337699087604750899811492002942246915997593609742989916749979439497855331344391753930461446607758949203962716318146452292921199177080485201179833842312606819170679147075552874285422483318131906642492333889066867119237204148777403023608130872965670848544243201669284774144787992666037231384425631075945672055989020628602043636390259126987779468297759761661362095630584229894874141506331765714531414979527673562066149910255508021286936548562924132827312034782874716606457924466611872025238553338276344928344616359373765298212652516678085365837475510142496957493473869656260417081795338731248060223004598015981307588725634380206246982581083521523790600510416941887049538981304060512105537097170002207028804657633178371631736877636274214448793266765436888592082412676304086062076398158640234722888664756949132908655400520924785370633150989038586017677832175633699339311592986690257945924628017838875080107779415349387294032482997742358191408602380442092281460278317910910261220155886525268313051757710081475726275894852867573952416300668763688310402842611022940225213853320116669469445860946959813088672823965494655014082003250889520691432102330215879745599367563391691680400140759066820831336109799344392330969116428276175703481663408373350130588458906988315357540787335428938614824795941613516582603108570297179487421653020968096880540534287620102767312842367520222773204507479104443276009372660917171275565190564321990088746266593679791590834976688793008626698864421529081657808682918617017690640824232355921052610617834770249410221134215768670447723811250750224695053019109938170525737983184522949903534554220972670636805409087103594042929545618073511621138068108407826024327985694872021406226532129779727880616708328425213764465969617076628069180717401481656989718843067696120517056657135224390395883431870751711267720127152730750328639249512805786900722742050193708026807295753170292491862012287428982853035469355649068517248408615792314053292047721694199146853874565254488597263736648396483622215369449838639555626738800851316710219513110928308522716876471984517234796314616582202993750321086313292224435598499761926505926257809157130951399923005739219558664169673446774923757958010084024275196749905006082623489050106821243402792163991541202004683091253523981872357797773266089294744300038525048731073970488954538080324945128288663092972689986421599042477844988799817185641513511093601024665774703567940982115776365026215601801233023231608823637031162447906527894620966288087839211630814190543905087837570833131992986283156716610847134398537082220736638644803712272423580481445061486958841348377523886587166773981683181368029901631099714700805027668322705509818379836553215996925855285593044643261080278074692314892381943799853811205275491023922451257361076810515366036644579985658305867649060904592371793270154162673932190733901478908662721573561842627843298764922975458580776148374660780797130590975920186953310031646801906655003578435514527138174657941986999069169254555672558136709899744625333397218835879451645013310316819096363789963878221036483923006986514463725835873420958797307008529557867682905258085355786509084993313393261908001745695748290831507774321207658773857004293926734479555745348459575529063924326430649926712673040055280129175140633936894708350440170398154437414965985690047244356179714529026188416417744560519242401049295702926405486874199620683061649257051466566582720461143165280373722041281753971987009662972747925960191017091573222086075069593348816606902755622615237114908739861913520161329506760436301948502108772770222184321331197262872614282613374138547354129722133263205761938369262304728444023479423037532008351910234334261607584026754209285185028581799502300184526043804707497380843160618119093233352790680121922421988423442393910257200342588232519565225226095396908604056803396028115257980320791547388239861027754362067679982907472325436481712854349107532151275204986281835879178977442230466068457435208939726413037789105780505017289575873510995330761746504385506471355245141088316349317812029214707903079454381652519081919631461281294807076973213875873285567892236982637266746793827758355100015563480916217144054479434693676700868607578295183185208928745996802546200583072491750885773627580706718762250935987316571645004911148362910731534489125568908505283382180835686135719539954236518384292631809429080329955759748159412879735420668795454880641950942797280483249898572684233908771191314941301966459002577102624031819302685449206471328022138036527623971358166077459473379976889175345764209135785578035176434446312983749333482077775217938512951638785502911986880861556385978552883599169304741860581851467154901686827910047420065411750456735117762489948993095763007099483551349858995584402927156194765873043174181334664380034252645859089623333955034367413111353451578039604704674303527964218730405352911434523657051089646180613151862323624787194687717205350328929476455038020344463135371072606813182420096615643692228754061910099346170282306410744983817497634393390204834196918533620271569435139878197267455670106857971844439730242201771680497576066139282062190179693002927908610256824053339574805316840272422433075968470848028646501011629345237891659215390987521044405253825576289084210777286441814698965991837867655449100569633725446282077163892228727241004863216189708073624168216547875289827762893924005626310071417154056227230748451435780559970724897414686667003310659524916860181140603388141349058782420625969565413818363310819007251378489267963781547108841699773729686731621053696250157549948796823896021647509664019838078515135081555075350377823953103946806881886856894710222642687465935873576755902942664821364859367605279658932748072395466679090222220192476985790093260924434210251120536487182670990974211761243696675976131804620299747138594831053609738644789449718178055494617822359200884617941580022504956766435210276921265152455513918148040942890546505060473995206953761582965062041546898651553212408171610459968785156367091486356715268387404040997732257497369340681890195980149827996902448584727368339176606658961330225452773259035773082115200751161088333025810039947045509284436190546020504797467724610166449913120342012793175893603204327396782957217942549865851650769504600865154299288491605030487967990429560715433194528952532357303252792653474909594899313587455504921039365082263061283174053370195079434049026098411614054620791350672553987146738615002619154301117148017343017810777005662512107160316236684005176056712910074441561756963025833211991721353218851804323120603190356885071023921491344283352040648723364192444249865888700140627643799961305455275157062637726477312401545447481370533637261329625396746792174185503711064465825562266287462656484517988614700328008797309548552981784316301963318511726473252146904177753703669071573978292306318821070946742381666636431505194074144124668211370514130510731147533156399627674811818341666174680053977393173219565008063101869585910972051827338577289465006039208649375653864451620908605906927557536429784303685628440909739289506869172006345280007405930815436827608764138641106569614299847782639796287502215382881482473570307176141899043373353042855022348749262445414418962443843845996522124203642665694051489008786632290207979503381948594561707512108104076079672215366867052358372166476202085962189351434387521334418294991645271999502722792932547607599262364609502439277696175463478154110853102523048137686180210899304851653680718581321452406657282380339271793289555638416711501129143273026376602055127222779733728814550941468301173058676750020424524416210881752460299480513198915575187643379095480038617044882430651992142495960819014880176528453311242255490464297267420416357342664719196430915285985553907923170909414340038726537720646071166107851436392855390230752791987420581882229787435095120383588645866021975136515165951501370798922528443693204257106418064036707120505702131288716751087817679370815284250125126011908736594370691342308843174892566109694119422592101571639269163637127530242605039888449606176569358121942869780413433167474204115882479098429425278860595309299577825864786414140171224489546672160467744456577740573024179768277671122661684578946982291116327856697876980030507799892088741586910626158642240222190113179149307717032134749967080050154789734083823595154483616275757244194229256306410608770154780140789789430648847236425105539792961836771260435466156571913311569757255518763356564428689413896671357345314417460833936074876232039658670737411838483192941791618141832699066476174708864710984049243928163992804930308711698436524910424194970685760451012032171122533425772426109785854609953170080306527921507411840500972726252221500339024591909532496221036481344873000887166258956461126395538357234619968503233118623697773483149042609523759464050572513317364384370656662308443349463730045852822896574183184921371313047073915430326220247872401841555885975530246117612343672222398656742244063205915519800181328479910937036022181941207035513669586276931547842378766754397082032537417745955627246586082474943657675201598010902651003442331116337883256358166966681102765191014475440509646170880837878549497767860316813454223865676628110007837713154243763771530898309749980276129152868689648181233054374480666335429642383714471995593405653553617392102815840222553304343582852788008227577713874664047933902636588414745841570530459593695475312711461800244112920987352973946149636940736951223554014815330407577133770848984919593682281992996165091637810043493625580554581518290840337865388265360590252810902799101590169332509449513891214948261748486800716187558189740372008999723729171205966987259333818711045269391390869817745015419398555445004430710723148037858453554706470696918496474786196421085705251964176894556903678813748194657743426205734117222874850334261281218923482066823292960365791202908986397313643004306482245906666607721717101244678229009725671971822452829667556957052829638248913548916143791903032986687789759823477509781651743909349031066656835570690497868434824094895104343194571928342652680175737338605389692291689567691417085664700079478306112673898787796442526592761601706755777286221489292685861050815191123004352770778637452355608113099657066729820840203822062790137527127375031924342312711618443757874645520021591502259590126288475168207603385998393848584665160518132804440277925623549518877011581590327066722871155434320304770091215706129390416341754648121568841639405933826806980890766943105957330207062115327956169020508532175012138337781027088908787121168672360815518375187124213742662808392279445662713540328071703998201676374628933457370894455046729340875892847827189366718235222453824157404938389748384187544102098346262958099617786195764417636572189070372754192274635348160665987556736980717334023730922987613868180718285237094004600645028684235749735983127024932260211015916507241029404149606939631771410718733389717086713781058719494361631783952134816456460596698429445742910496760324723860891275266694301843211887925453020086359794121179705276119814452658579359122406917237289674664900110888277044229728627649828805709931448188585909140039799915953992553118302884245725572738849295584339545703578161876645963954445654780755726499166361654894746695665002509181762709426332482720522007668602381004578029471647660971426095816007418346354499980391689490711056066845885777693819429475027421021065730666659777939907596190103875683646037363163202674580372815784226248722419943385353063336744578680636424643831347205752108244277963275536303246243277878436337041974579619177590383926916704802111749281592749825343602341358603811216960744705516101064755409676978642787475345285898991807684780874727617286458968792606391031626838440595000449784207557304128430205491816424488969008952683759739898788286865149581756264427272642669609059756701000440700775356739470287876906516002584135808823081893961666074649179766688366817606547563258764657262241178047755069876780029420905234037487738048767511751335862619897984079841301012416176508700453602070132603772963180694382099881490652755795665085455474096217897067861282001652048154160816471265610663600434336359658893899251108247594444031428412168195199576225214318301259494677490433886144642598915013899441127378180979318415324673056875974767082418786994512698537317470885917953430574560106988097989398370772524212322491283639752083188144818781099694930128668115155821632684673284095051634309105462000202049229229161189843539712613164976053325083822631132491628368509276469800828294648158686575927650672601755997009087292984114861855739746119077521499627122377070400936735337006772178116814614802970839658756372075932308068767067832835293283968364205373574739619745885598299702145495133410285094512778820007872473172793393403173672882854668963841731430398122467934036318395222536017806582216507248223607363635393270003693577555926406392892602116849196578495270477075824418014010899969329256232282165860745401419141980806792974406459030851340351239181311277892026403819530557365184720858417787043186493283151671072416582833031196880441194957297100281826036628054091151146669940986559772970263659176554433750495375437014286697119891477892465169697213441556561612921445082770652696030370981945213093747805728961707182386025248535701093854924573858864555446874165751775031945299124609254141537256141979891269884451391172648857519100868786242835896574534211543690893470555754715016148734399670621407056191961603590175568783254924124195715854975306863610433596092763672094688140649560656081602005950980694144186517065483078969261051254442701513527971290525410954786944905735929485001810408555822834800667696562053319575225951848414844855117645714869112105403133340709119913892566612732035663668681295047188237276251500667988707565430631001270169398185214585592708880227154320148633669601234220094271279529571244315873529359100566734006884376627524207455249244377914487299465520273737825324121804939100055552583256171529342132435727708338327187587838179152324142231894889063791473105709120951061838620544565210008798596320200645939562701263617055063035146133210521361459802543641452651423294904087897818263795291633294172928643076600953720583403312660985081314354605539915177231375542059938946106144486873506381838811759786235645157104508340794346577858774409896854017349989778211644210259436728856737514398215981173998272329632948413945312241232910694421595167166583610381691361898532851663286360023334899528495157367858454380246211513218074748469561320485093003072978032587342480717852463232166539029663413591015568900848256596138650386965015755614555640007503993132696103246371779122430883129518553685875285667040534136120256582854919269535357950362707701243004177607767026948500821030563244995824846960587573754061677694645934160447526809859027763303618969485441916895513476996648985128633575137854030627492442292443041737467315433864449218089795763493946821159318486607754779956134599443010622016373951678948806242754704668041346634529786513815206815520577212975213322779416116133199084513492740176725010044530564398731097360894413386601812991052353661327237150227051008498720770765201408425244734430654824067287455682242986844914023939074566341468397155017296930298178530851543964950421582688144232937536251148620451257338282395901156592003006631861311221103469023162190717617879752382138354249013279388765332438423602707035831877153110885822744061610832619060274752938154539055763037600402459818463899898995530789345459936752318962552135281660862272192484707958011458919272908781988127321397374089521742311944108467804612820748739145067495498214647607853232470621699214505610694443623280269268540668471761944752620853373138994499631626966590688757874824449712844333903369646152470401714963036203289120459392269933652233570562859942075657369682047270595240981832024676269190780529263665540772752890977363143292644653068329214481008378249994169720471023130471886691804068856481675216511130953118357266614214915870665799293755816270549850304194021629163414687161107458138228985236616049703820574793662126584969308579284297819069172084769079630278279093852791690907415928493739588092286456297331340785870617960238062405571122241516918222528539506337696328597539004036903821304096112910370710498080141631599129149584857036269249013032338350916673990747001723269265222505885057574408485666302622920471828871332847404611401557582986087671276347811153833281142849192229292255405510296603009341529674771773367418042511973940355751156053112975299012901386089065380197060372283614599126854698149509899042833345829653139013964083429554180200388680222593542371491241794031259069772594608556717776594312724035021513120257342821220030429988583844685930623683456267603407902518229768069601555419064640566082617395188510454004289661834379622250787562108156907327116999486166775394640799453537305533804311598874553718509519775609896508482736319570155129021004525397134613448369593736075966348902283893081048068179876348978131788064119709098422950104641177866917644734823782313603448922712417274860588858874860524670485629512918793366995176327191288909234713624481174264264525878140875099263907530349687408939135243606199863881064245337991116594689810380274134996920827286781697375023724131494351310220628540018729786348243082127111226148240128529170976263701783296943508595415200755438481008332148016442843998973458910203432349246142458751110263829210968437256022463044412033447940324696075335357382951656582520916555987869406695378287267838872969878970748771650159306176464290700960140078591176723819002130384117866732916294915072611961471649975814119429554261919017758733259752885727630953211212662334843478067353260537656509229901973468740056286167166566467635205010904920623473335644951733087376656336582151796038658315877236519472327397503387893715350655257931726830008038144325045218403246770202041084349117696135875042660218940469051850395817118365164113111297572782027662697163419209796450399126819431695417138829003886955269831048405718229052554628686999412208551838712894427413256656951896961331039785171921217131031851743313358933145701410053913350890366608853155794127589845779928790614516985679588052404223931944548883806163927289286470223246356132818387303511910001976478050639234514944745860511932066794038536961731481377008116879125413946980051845138233287437703067836864858378717749844512971807685367817928842289333431111719137012307991834316393030866123213680131442852104799675163090899507139827915850664407771438310383491651075821975432505207008274017868848756714113992352375655328087564194230221436035651600435036476990730731849343802998068985670605151495838444713804554220260349830900657230695029445982442887177117472487792596171192354009379366920758192552117438693197884021265903184541341863109756975912078940361777710582810989687468132180122691157018830754773413392857304714683413202882784335645233289928837974551105666051272444573961410622894109871834301086390218238070099552523989497534958876559808082699091631536790378125957470771027193156648451356593203795588338110034105207054807505055411593632728262202189027828855144958963515852925041747196916173680318685226479395543316859751365819722590404631594023265931967347002369863266466292187585410645326484087452912528643527799280850040897851000900984595623320096885029474547070166389044156610168984901348975138089611481037006908375820566165292705501306157453593804021550026795710595031237780127848285808279564217269848438564900424905945999850371991278306675667479663835117799865927247142198767916484668213716123473685123420351128347404851901250636314673758871120838695703371066377730394983869716041256288984775119366372499598362705600853136811768815136048673494084234668055959179472467542549467559806632039916778438793432892389113752517380337358696376270315318045076960032537541107406366055864324104887436704757372094867900726039492356301405154062156610711559888758759824541575040025514449191493337469292942905053804183817141878415109537924128622097581428513070528579522642106272696106137903596170521345852542785783047757268049894085091459968938810024569179574112170107162639562511751005519380871926863355198725387352615241089148927973657788101919662530150719156029330998196931701300171595791739406221371215519857307707070213064313860268777067615321998947728951562884442750229999586851556956409197983503358357878205022654820058433673573448814107594857897570146637019534009989671081443115038647389181308316229025831854194097680089919318671533163022999228207396020423476095152842506329973629147139214194579096987796118965765033169403441822074690128774652947584884481438532358199402299848484942983026912207638899765223999338351407768619880707141801233667378940075539891889073348906372180420889213472987581328935379512174225346857203976485612793243671077885481717786349034143648252522458993427380487401483958059019328642295977583699066703179570887324169612667419543280929177200027891302358211405958035968723654148852665437627165040007963042207898547856309229722362233224635366155145716670840802955164197784724864222614613861360362271254989782984409987353706782808644579902206467890752333113614521402910546502989521836075172171001804738758946625133991127701869308941662180688808810666926445233561744988840359674613935117695803916348836778543338151199068084414540338234331303186029115049217623128260341119114323466448822350250726440687673057278673284465238558215381123234249713540177239633395263956709114947925985690699465750599240185846011436347936904576360738849757830224373753999468696060008156794211181592027675481806646754911931040337978437308562896495951256764038314533213164359932941726075260019615888974008565133541611548167814663960137646699075421671039513031406768045049272347755194020894137597096283923504538463160511488812640017290971916630047335811449872948558154927087141096372159432150716347825942901129493959781757961836008911999531340312935884677421786714490290437536139564837902391788568058072003327055942001600022566111099035838076340031215633029673334600673564712056206699752482432481751131427363491247265987345813531391103313430545723148108899574619903731686567483186632607869222707381021005830486792087987181092881034047560739320056492004440373982750198382121217031081262377441231011856624350994152434029247299359218084265706449664269844658214546959695443488103356005683484386613491324110044448787966261671156186301448623935297404756347403485189357322405420594398035408960214051945325194246567754588441898242197293706011539113316634309991718927868040252665784689351057789186986194347512920297646206551348148501284124498935511008990645986723124149357602309170239599541124264266101312229536991964203754598844411125241998928922513730788560447829524980610718445670040033569160344076750839216030617943477936602336276236631595786611874628959221075813875160633684884371355273038998730933845579013339728691801674902111972910207269686596012120990117460283851021812256778420180521660965554018084961800802455630742119806721194819667670200603198536221199721260633119960491246207370731511812034790532595819717199614779336971514012661863256944470428740793346215374945288295703670115656772137195412498204189623783745738609808409977852227966753460009350118522940560275565335356325979826899376196212023660405512726850440569478632878531257664438494330721047020170236087841392151159783925956856522366617702386954794848671003848438525946105403008275334202558132848166200095401039232347656278479250078322286549410872125108832132325558136001191974831573886509987633255576684476163643620451248500451193807165210235898999266351263978017086410468084024177363636625946871992083835504454786237738980468656184775921708722515560245988645132163483953319990141272548868687404349897462010468914741919962600406509307579613253200680202995703071532579137845325169275069166642878154349484004131678611051049519884364082837226906695035015364903436382353929722135947162408942612935760697567139292792279316829886643853684129168312016240624043770699770190106821228786891869713116667800433670739246252574680209691676318754672518497398168572349877517232384280798855538540640629690579849150127134091539919664789176357339090969656553222735365587056196939762041056302249993497917314141523995966995077053677645699091958817403670751162744751690086651267008901070105665735327231203247633908278366359137490153655440558946460955994626852083738018623870535129951870353786930796843674525246233407195562716073795759136017753574144252631688109929889904046109239086631345964720714907790867137403580006887512926676846107957544156061910997261582673809244844914157357885533913353923923962518831646864207801610245988199302479889783389420274323936971828411306387205643484058391804968304829146711273624720203033115311281291290319125891297911130565546181156575293799403828450977200073810115485943618954231779270812852930643047910446581413932840590604250462871084291511479462416102121602347985778694101553774380880670504187916396593088331206505668831220941097771600374446653330334446114576104712039363432478448419261419298492308034382959862134309557224821415835963472645803350274763149450499594311862967804534349374471087589699073244019152787988681219067250430747337649311949604779819751212231646229196221306517560649525295153832946830416272933589733277919601343513895921180013620532610108211680758122241038891081003006605128719037622565761462497745253916889212875766881730560518244114151527864947564250817787982135184363520319964229628232254152947558513804921914321443186687023838165034503988944315429488371552270130336017488553968281234979771736834182823546540244934913650881274677576015172683962242812735838595031938809378764695196383258262293402159377186088975364386855009633225769610448369398939036621908444312030141840136250111169113892790556913029210073357939384191324777286331304405211927912782986169082372976623655876458519438011860648877112636412814809135752738767327221385304828342737070555229432656493742697911994345124226686763057349465437238137341596699512986304406111139873910867798341279184199685735549147009674467160511597485517888837852711744079609285108136324777563850716369363672956318909088633007334105436870659297435069729928597702229819547867692202240285555504215549655211922317501996920995607450509207653461023203943551077838567906338931195736149151868677136007759532275851026240685938474069070015707362150286496951978501616402186772228634229650613679251267140985957586287652480917041142659313200328232658832597459850330417750543558638420070517613285184655333671252624072735325716722612733498794059219925434952437109653087108705994327026144035964117501667121068425294458779671261859493992983704426600959675913767048999803383918492526805441577724234160232566047866969456139286416362026434661469982090815183517622616790295854183469622509789008040030596672203102387319217307509032878718937807437742496732103233844065574571543703205963268787051979279302147029251738649689864259569865646109673940698563428865537420412095583853119556707537264117276172565386582278322846597619425769805060184228996552274210161063444416077671866556811842208951655507820093735820601165085778285619370517261036246603507174976764880467248949945217071927191586405114577161980649821067970147237578226470049694139380624978528015249891305056058437355809403496321016829546473830325957895232548505738224050725725767553163985767961348696538827938415326332958489447726953383144584607193835727588893615818575588969807081712254014215324978658560072814096078836401557506894214132536862996946418745613137970910084126855607420769758046705832227004455542941784299393265310911074451246749223666625701206438085012511961144365519952810583699368134653365068250832749121558487848772660250050454999099211247314094893064511402152547424787758318142118948986659250626147798769768523054590544177280478852543579175499075864893327383744367246624273717853917775982638531449759461282025859653934724673742296569015731806756343131764544259540490136517852547207708246999329273850252723100549465473949674302057293699960862133464579440602967485506231747811515890411670572866693443775866916318629775232778084296884391612697527604590138708316843097600187219887340885548364367021275978747529018171978205051828423753324039651425042279012217864489760222881267422379848575834033868289344523404061363129992102291319835258720763574387043310991879414369344380384149176590552242414969987015072084796960974408694683710647000360195187678918114846039615588473291924930336134178226823245677532748867969752525066426042659388572710547287776770124058960535065984658313686705839252558534298563891610860661542851711936763252454579704706107348101083298471325268688773362026158795036821362173872050603802358858747675481209451550178406443487327490080929775739291865165161092050966992024604051511252132264878287064359949901768256216507712251893589364904354544774309612760326990560226170451630063496096471304262842236961755400145891197682188171737719921185599701315395581312905484268882153828235086612121875302508624702540447182663423881525239693788711080765397052701151044773920154059502026448764704247861302238929501070375142982888833820396356928831942811507909794693043445929864497004631713534384328032109069945210848479236777341356643979449847859251854120208040972525635565482512113036318214856527323796785426658660500654853295347764172539907932755130758025216062342090069708850303697174123941251033830151394043675445136913214933150336449198914567456816581328460364691554186197274718989828111793839723976260746420522476464468669162142109413817171335114762050086262023550020192867964545611792961000282943875033608112247078882817544271414038895058749959701350576211793883179366514901514199165225452217865295823781071891150117384484907467348516087618970220463772389822328357641104646391268789062420615160824027126863803073454364784413862227502020348236563265587043601011990665924120624095828196643723716656608880477365219653687806545003545252861033008064390563869370296735532775378644266394850657559038491773414140200199986790553798499690603226501602447893132382733283861852854762811310079117736524200874280958973107527434954263168251994814659820217423544612826036981276498117699242593781311054253958412496248068331264378892483188976791083896706055514812745529350138202591258351063558780615548093441733403306729130760888746907490286410986950340972139931466020604736687936349157646785941657296962831793850003558414335754191175009555498100366640063215335669365757758751129275164385163975984062374959843678273795956910378951909282462813133744020135943207314397012122904859235618383152919874416095300503298579249770198766353156323593521451235850319822177697459620036484868558711979509758624322628658425923473761428740972603847041829525968940547995969543138992492182714151935727932381978287897953831235973504084689283486156280231987622181515903405454822796492450898038572168054530391236363578315560095115056384446232833842842749705437711418921560549934993569873918022300675653721636317680544064863820789693360796562209517714194083111094372912367135011247685834573621921494140523017298737000837858655890640294257867576855406633281343241813373555179862389987999738162794769338528086620775327625777282763116745024985096392340055228556861616534209519411967211280885175314045462218378355243488531921801282022973375904120227895147723664182683602124972096270517829323381585308959164907668724765357876771458382179049147740224652748217227777631100420193746448885311736080197446520389666309109738958070013901991050069550476928547667814436273889092001004695507376994054253398196031388103980572853754876072453561534848958120902024704662890608095098333589478567561517310825639885501106596012565308183204822280079132919899205456306394208573069336925903508606294234023241924608151690341566919255245014418344996836832453656640340067196604543653128891585236225091020958607726022184730559298161606039673532520395264868054525566275885748818326189115598958773025483602275907073140327374803688151781394928784955127229413174474226955327230749342958393377747598506394595823620344786286885210041724809791814571987074602808412843871788913179474726204097694038348392889724245264716621650547704336418468227750914300631205411845607534586557532582131486457166342270191863157803829808167835668102935462182710773205719602514297775300869566428649532517884093692478389885112902647990400944307895201297342482988187886728231689243447894532499318769822622170460117615542914566492832432604696764956609442874460712164049909076366232506300185015122161507425095274842823463210052163035802685075747388863074600826864922234971620231770102482417451911041673952143425044621852183994668392384024739956739865513084318819578756351838292387231882952751771907538609607077628574135034448591320413352239081269295684045595110531432038516629768861347177748196142078791416939761579301430913254389969395573805592158411632642249352286539098047023548030458435261516965852149800385064653037140708169709825664856752634082677146353868449047929262908374501940705868557713595379579990201222721696955525834472607733951460053427721050719328407284159340988980609547121273386726482256170172075385749652957003149310426052344490931662036711233376523021041407212627033447112228299547460121718102758349607679978385279896788156448685105417888000877240646069970036652872034770071765941145234643489673643695131944474120286010296516228062034181912997618695606446450948746323501529571701151265705421339849152189220489900711980129785185278675438601174042562380754309811251286705048667053871789928163875384241278553116945851163131717355776144961091105359404248148493186385633466896513494695901471604911391565741905042307983228189004296452084577665612495737231609813831733298533831512547664642593928023387443020017743957248182622985201890902009345397760249775489862322424303411739046245321044019874750142243584945880840239112370727592414819705549273718587442278870733260590545842505580207979346075445833299020598879776485874664642684225319565328507620249484553598858489494494834715895258282776734612612866924775784060278477785071330408892256452584932984540173412234366579960328103155065037681710503786142983931545181596975917627435922076463914439374675008382119686996289249090782586514793592951216740141981576801314449985117612385797749453975919416653771313303418255775016803303976922351452855560628103902886144235621737513961042251539422614506556384035550027283484593017051018543938002281084123994949694934154814340787159894508648269571962025950640149883605254755941131616448323783887694763028035501138376255597646322790916029006070794310974792076520493257748218603211120219971629695823568952434873924425540385381250017829323548423684897171747774773046031558584242280862842497773574503046386275441920246061139793952997100981786903648050633525938543821238846669588828487790084160230064503655081440397886058412714600491936995428787130274070869801629331234799499703433017175072050578204207957024775689175742680986279347768775810442651617652867097730682314885262545800825726758489095441547746699152662238025565253202741259933940361412453025980229929846801919104170897178330950799445112082534430303847257958087794334277885734459755494769221322522485817060684546643532931479946725739907299698953948098290845038113762731792494061809163192172099347165006379196191759758717820691924033233211980686030898436227017891581384257128881328941114131183984885860371416914248546774125064745139982610275833934975746495419817179896794833541666454366613498083316874442375340300966608777501123748910738672087939306529172404684444305392021098833711761580523706304755375645204537514649546652231616547352816150954484822131158872581367395076912657868308236409116336796638255686298978628385843494116898614728321262321525091729681323417481324584445863093141092190472967058020629546826639721602583067937648465847572274119238491633466025212556998042015927030570900738292679868717841971586128063414243323539525295424297254250535575097727766435890628482111557639509176526554635880773281802830930555901043069996292445471035821416125079307851167617996723614134974340180399136741436852871592480961377562696235910220706427645549630254497208862809717588597696010235544576051789214648476789127008023734154860662055500591875455301757710868950677041328433119041661021004860567922994875302315041350648881740640151205759774015919735066684480380164672691008851603887172452757129986851094890144533910982509630510274868853678569208503177848254138236041858131539312131800642567348395665158933269573186174854632669248152009603997441928909882791141850900231468460887293409015713475857527391889382271609229031453876569479434832110248008041074863937793030156699977986500806140076674528131520131026902829259491207382031952790636600068640168694342077912882296593266740033886020781476996027965911868096123923329233550393628604606957988666109753366008550337519880095646352329179488756669512923381427841885656592778359761327892313292975298893099867853791227200386323413265853547228016058048337806066116762441565252423940912266981252175269501871286842464916335062936301572983717889429647509398848878618615948409841291753587494532496462014347367662976994649449964252601631352607386704421363558536018512738051909027314255663944629429358669530530046178987783978573262212629159303293787096761050385050789609138860720455255025260740155925869791131765302714280185669290189380554014579733597030544503930509264896611320179671034597801148034148477200433506932056355102473626901047672261981879860193336283593668606161770671041128452032082921636068896349019402743064521242117395660640412699433013195084963720868939260580063667265411574581957560399061615272840899882318543575881255600468286757376100441776439330424493468904788616817589650811784776701892876493483619203584068933626707379997780813211693343157333286571073035818566659289128115058812113015625814869203101490174516810338780394335079335426991090122093909318907371277000442617487516496071577828195754641574774557072644940838797775837847923732824498341639614560200664773553300609490649944635860537142044734319784444609193902062478148089110045790300302790502016716354189808182540188858859427884115336943662470597387141849751501166665303427043472389252993840185628582969318541818521661410834575582666089689375778301457809440479730372359677299036506317382908583134407374240688519743132819121766875457309153536493516435305573267179272983537287630859235993234918148317498674083397671517858566612987932151764727090702486985530932718171405562168542545032378644728089169522614171493767294034770885332190994987435555211496779044868665740970601621991929178567596559899901801392997163178695572180665070968664604255124083434551732156485910093870996936751120726719243521562127388812484361300437051327715921898581660864215909632506892908600241798058289960593442786396396211664755284635198490374548756542006039103028143119623068400401980158327503125273205986336818797748574884292229085172515815522084494466462824214486517333794799824119165560228144808093700628746494548585807753395196889832889189939314619519266555884044354019348934617378828052785637463804983902923267543760701556851779492822356454520099780576625502484994922010342787589840098097496428706764531716566172387200165624303572285719145829679200869858560937260382097901059575496204572995435767677125816614911634546536813420839680344986643086613474975838289113235836650977642444201250004403897274190680993079469694341850255842886635903574362687837648841750197913548697809105912338940597302924160859386548833910057373634752941248515943320950822388368531023718341644043814020653805076699673302543397557268322917944753569430197166987749580242551714894903245338401307088423661231181265664049651309637997838114727462859992613390134122944345396943706970131448825138635049247542348628810290815918329325350447883435240106005474113400031891955296821107674042474432955348578355763243913068448869851006984972892275789930020304582945045629294268592458230848089879714888309013851533548357413959879185847120279381974937262715029156953363849278721345908811148066049901330400433803671457974950167082050787658085663578005627227756595442579271005110834265639553031511728621933146192309710412766080879555725293552045774214151696146354126704173938412091750822650194299500075641092733892018383695378834405283470588618477520093943333623452653617678815107578309650489129955450123822603174063517513901801638207269673346480643355280594539881623955493303401460630210300214282908775556791515891593256643091998726437456690771359654256711664451370062307049846836817168061319274464033460293596728974732548578134096467851573042714852312578608504084316500202444668677542757433232137269095604996945324212994203395008695658852146054401541736263085594168597091770887140191984861946452567719168979807661955483135525022495667859954923667637839350644539949080098036150466332978812301371620840126810612962804066565283538000009780314689556833548347408334356873883301713125213056413312088157519880228186203813697289049083668584811139464086574760084741616583399568332103722929468826119140797399288846543419423284609921591839813631444859022979829200417103004622935455582331697137451490501741715151833880913345092216014680860357483770434059683882766175605278825933494531452588127495093908502922636097362197958614011262228190789668065877690816991076602655784574381977913923170165628715542632694406727459243706091841303340882735849537151331391809498733621853142885590061660683560131551952545698766516217836006965502688891793379469983589734927713227619428122645133276810147735814347753690906512203981292262709645886948527236938639213128521366233581425458808088712268502501515097562995050944611431153785427529228188703027013234007042859186751727636071794979288235283968555841830970276152111155827025612359570693905735319912921874673965093421182551161427960152897440787917629272834505104728202114988490981516982945118498179164290539414170569594021507682868751490560224011858215785942887711392877449733310031158670162074477076249407148585190809656213301464758199771611435530862988382891104696901059922856436730216351690050515707120744396005678107326605979188180280502771731606636210650702263458890714617399650317609948103552868194534891259492814153336557244691643547024195910285953969789803670721126417063416120335475904233215285237051862739574133713135295959541355720760153270498256163497281163440181073525751413588557508575906184453041100564427520660144027754385398734630651690783733284396067575107375154000538943323407460360482716674617327138139289535250798812440603215691247361208911939307007663367515930851482304894632412336948996923374357245858896106271558547861795673152005406024874558500733163677088743244831636985544754219832105672782710820355507104795923166879241710827247934689396880121515609008267764392406801979953209271235638834420947852242195308048860706124672552006546188818112386873336355012237367322588918038662821014161267917041319467401826669789111966643831632404046391862140976421862943846151714813585633777029193748481172584891916475400088453671282623632604601796264029515203405802323683808068535501421076980462558218968925157035798829770200465059451508197776299031430863453978131982900497160885497178070058076814526742507718611087403594947138528030970412829529522156587089554654261068569052214961358132230422402934446623515214835129495135488249526595460588086123226067773907357161726495763152768552082816703894449988721992531156280499948338434291740255131531902412903616802734243081770960234370825988429554847132863770719269134248624968784035922329041151507736845892241956751429473414134587847536237076735941019360699541009883699810527887293075303920452015857076929938310882651711527029504117326785550084445651738550545441347384971392326130106807003983394334012262949927746094733152865220628958221068271126784524235103632400573064249613492737279001911575709644879788883466246600043341621660814347645205109305981856797551385882456606971638967878105424633349784978062172526698572261992161063386962183282977558888819284508723783059762046586159380702042236903253876154097120009006398949785255783852103669946959857732974987650266650617537624701888868305892361427945093966007623341250678747313360892982142881539661382261674493498251438937597683926762703451046788416215542793450835142256784234888044127844860799598518760964662529277927529292574439473968616118771825636817133886667612026543348110395663481430374187253691825251956046502378350932957077182497307327230134031543178763111079918948338806021165828212676208929846125273273300391848465862155034180767623185774837408183606572454764484808323510015254205515818215287397610364983381934823463398279821983129226656121493477819534005186144300387202547401301389186283576735533209281778234403092531578597148577421408685143034627381890309422142620169371592407814198184862946355260867749495427698081014832457414156963098832560221800210448447952926974607203275644425696358802285614210569024423602996396448686333091504697331367962552120943560852018590965537909312033387713229447485165102124958516747331576981421394406620140784241458376607445094823474498003312498243760708622557611660858606678341661456448170203226457993427753892340224735020327957609871817255995465124600614186656692533240224255037051779889959564969670870738709513904905298873746534290028958174600243800293352590696347132611216560635888355400860871913444890068357299958556049198912094819046131538920174106941846164840123374385476674485851734257905836525254076623221561086974875606909381207254972338215140945921270235508147810292142900999559857162537197453475359113323740713006147812691585071296932276507244028118351055122713162985726688512622266108836552358105303306710855343072300971997648420058831777238296360230597541831766480234423128517298455925784510142043805138568300837806763714278845692945350944169335061862132454923924392888874575621296710961345886963302377598809630382838084570730982800204493497218599409396221857767892540776784009690885308635306436329447749107727937097061151117017384530068080228329601779109594415146060306276657638092193744968813630120244708279165754135526789427319137942440214904949649860683963503130546322240895792413063941494908372402201221786422926252973766597787132179397974112389892889113760447546380187753325552452027399904996853331893995320137370586066377289283255513393120895291865116018747712615870908244516239924932089208625966187786106382784114976325047902013935436664565588646525530282527885000387895281139737829894275820984820084764832327716622478242361728465997719107993676344829116109400579546642730823756692278327098675154627861664768437194732914273980720919050294794427149336826204825644628122310278684524360112399768094109356965009880053601652703075908014340626476834331933840110307763402205568306752710787142213305726833798445197249273259764012135661012428905874226702746860989529447992651861786385449895312896155289486365468294232282784492415755898720009350193864372371133777931483393439293491872066861620549185812925129097808936831463481510931944409258098342062494910279034723219007759691881598162793585742211978475634772066280807993043903958290237045676075130074189917738380994722005147565817404751208718907601476070657621574379393535185285547048180237534222298306243844764221679637315417982000772075960154036610308528520553421578328903367950263701230961563958021919400134979572700446481641443927540453720745787583262803367023344520283708981183826843969901799118207868621534823155383308612226667861924395502691457629575689321258562011938658671973487881106088288342610590586146139654844017778836042001553844412069476791464192983666921491854792811376441050676633423823026622800553055257922242189914765022034303797272536421119167038748790029056561119785957906098353647751525118956636392520522617989499768144867137642773352880198385261579412751320802935101724977578941849887461823469461875613928886601390673234825720745233886367402002192908725653240232877669577151226687265109160776069592769851890945633790273533081800274593264303733956810353537315445138504561112273788009862431998198118109593633270228470617252775072299381389433568032396042860333533459723247733805964833465958947192199092444932034994184131398181203218633753063894518102111424098123449746928971908769494763167086259291495986904744149977581883645203265563644267507359577422158147580710427598901062696507178868736188001091964840393969014830598515035403984389089586169755933228182095279114537356669478964939161851346546819440146309834758405970714245198254271882190449082530238378306946099066321264033872325832789375491303050507691645179836449430262415201309846866025378541938461111556755501271361575144707525115064645337785360887650866365203922708955499582779166090501814836116693526173825718368646713708314502967313580330254065339288501886916026877008523963933658641021001834995978670750546147984116197779466959657310289062409686116908805765680708138564390120530530308696925215709071549838004014130165599534964928329970109595372196104339948034297303546740787938735167615752376186353766013236043542950170873864321736801085200974430951134712137496737983208127916016709548301572075418895419612389879604658348244628428263752138523258047618285892547888809405779870327084566997592074230350856480711064060241704264524581404353926579217251573460599988903349384799641969809612278159206891353325295800088423403860207584255980898595483996593828595586777419580673361376085353938199646270498428072966699373949698930104902693995009632014865307542991649978144272291007641843314423738628849560558594541501990543012836693289933693158098526724362383170408797929923572593783449087786656438531182063303043953778776421449925816270637748975931300914715430976128500485363268486237613002452517874491691275956747910126600906030634498225945394678230610222307245513821468170233396221081955984069255762190642582646927185386578211694269344877244680101849517063242698954252930485004536751894119701532878276845054029934647237278916111371201719708131773229765415554436649175196356986718434751324769538940650934694512637332042384563101631483750905633223655376887802873869246856749249804979344733738329116079083203934826221042771104099997117492422337518287737563378609952181431314500659929491957943820120405608618709604465999402034983021373785375415329746524561428264097674458135229060607764526278798784322425480711604125958926327037701867140178170211388287549930602692031597197318511862261916197020496954367915211437204400398565070290745541927561256072319469204183913952054631123752143134352981621421823627420039943991226192063414033811229148911275587503299798794783912453340296037380870814762435918538986440826574337775220818827103234858762215453411042022294420536896590019631851171879884006638084742276497505670169718359395863648462351755638775313732581218670312082744272382219932527891026682295646853980799943264505474771021611048436962197930337220105220690939841291483487432735865227909547792449191515975037645858680853711158795863273523911803304036531318478203492878104679389856859158658047797990442917777119897135102336333521677738159189585335797119159368055234894635776936691233010003073140431781995906356406251609839271717515998755261178805979551014851649462887415842532418310520000490434879777868160800644558397790895341959281734631792889475677446858476285958187787560845692238422299626995056812226664911285695069286060622104278907363753410285254875671388409157501712688277016457582450107251054669567620853107961864575674081026520005384941942814176175204481404083207765575018580599596640280436857020780485285710825574308198166542538704409152249769321675585292475245073659296783348181834056472199896820455601426714206929133078562263848250471334400697276869066156052555423322504665060968648989845765148315340152637521330904887956215163240521378836178004179511841435809068271200827747537735651869411302487718256644869462585587094284019604986199036594257309481560122814769800828688314105228061926116691748920703840970561022614839954541896070141080066209881686713722346386120959764538943472373641128554886032922238629034295396106357595699141060428194317115239942547116505177446614102942708030476859134777171732603465180447677849958177791020903682986926064830671522069958492609697532572906248585782934600462522445506250587227596965104928270596965180621928797613388701406031816591640223242827714938968339517935763252524213382845053128853109543066760616211036519673208436635455721598044764531968125177158991231724733953496543411533343746045282293566710266293780864187534038832828098583538972138673679798611948968718464293706575667465153252433056243607981947764287011159507561426594109244022160811094358874485722858928439455154472335065080891145195210229083109276232540666817215511917109625379368525980217393488562598709259187489240600261060352519167175404990896166164889333974437907097237827879982832541899984880806991964145712562514501597016385872415614753410283046288410123911811286856014035360983236541107130357941531146689599352941857874921058352400085979810169602480118115168940312752798450083716293586034717203624569019267269373374708682631745497566151092557989003689552672794978455576954516700605520866490015211464455829479113431967200824999228961552963825104949814442415198883172424733422612851672595337681485397970246013417340527134275749201690265096382991552645536914545754160927230150842419126861880996985380928265249941740904214335381513665139309934753873625186696203294225580505764592240448668983568985462711582530659506466779990474320152073846727318373572520431795725055746010611040931712840816568631237744828319440328168396800033897919859457865232972844059566612385143359176436732280129417680007211607431277135740772485451268849025620255840265571056828989944358629887260187526877268358949328228858438237424601948224400534860555065998837098312788566104260531229163401425730879372611597415225150265099897151548506945964001875909686871808697106380996553888130005511335415996930517117605717725847087705674394254713897959634219513080055120969789723740130775236648740301329997617982779501315679403649974897970734784007436898661658474684160054506415801333599822272014416102377169340788142638176074038694858638191197068608168555523035766947501060944241968597360467431922382034738660790734402923860369015566250820588118097418789843517304819905505885788672863549100329807049303089517833922728671783051579379388577618754417464139644987481019322285425022076680747336184933985148639542338987674488799493582464315310056897042339749570486492313322817549319641979016703585383177394916709244166720806500088924017961064863203497697697573783195175159095569429941396643998499841145353803641812470929617710293081978440158485454871412493050057267693879814499708056886702236291315627038164043775571238949184261473688233724165713511123347937314298167401474964348230470098378970493149859285202378306774847039760028731985950529952099778148741555097706171242995124420093004622446574213290319615159789852154820609371461568063358201796431021878730983530083083137238152707180063927690594607470209772185366643176072939391141992230909838907521631217059944402863591846458019423488131777196163048140839823389138555559390907734620177331766396642671708962533717536634672541895266860778006625554547598049848245278561098747999192031257643721492182972949476001927370539980754013604676261263243764281351446831428993744190093191791150969239383474806304699818165856452664803869407807825681701997573735975906748260016902875129033126129598080011790950960268884004052730913168633690782430543718221364418632923291758765108826440571509464226453936376426505633762934628983148504261969161690553104746679682440404197493404541229223259518611078497887612803430036420422201898694948882084652412622029113341520617262011417445293896762104699395802997867419773892750815273801480177901864616382614469241828434058736025377966619564823796654150069895916901302504045089818783254918739196080833363214084803450710267932917193009597911195757411069439105179364775353283386630738603546368325369490018395533501217417840332738287821480247091956366634542873419958972336998395959586540165486946534055708631149404306215296888003193070727606658519527709711729689128398076476769470495005686647329376620673291696335640219207515803168235885256361348657602809861321306124780167764609377526642199866080221990172981386836173151927677845439388330594004577893383566103453148019505737314718875967864369180763760368605198574986858833116492287390119310870919505287095894757966178857159594541151039546152232558216791812113363452580359722886815986191400965827112411469029283397308793601233668903352481866670475243036338172998867932852007521062929975122919876674230192817740003413174779709665038096995495724896846645247154375802255349373497965439738171656104950215985232275348229285673942723757356876522655985441267385529206101500578316382792108567152292203759988021709258048874181703293167620840208687453509278377237333847565050976784449421711041207978063286505895043170640198885143400662618115663710978150004912305602841005181070443036449013901463069809691456059813611666830485134314220176070649801063084418984036335209840295780345276977706477593081399127353686034767356814795513406226750161093770004607893698795079993667451908439831291441515049632123825261164016340945546075321641705200688132618659938280050544782133703534979649834694274263422357328216770136757184026775585882840845519043509955027696824109809562501281053126841772632816820578005108632698998600648009443002352407040269731959919842325667838952228707052307220991372298526172338907432588257915094276248519231297220809369818006247564641586521583231172715179848245105808220121270869617704752773264004103748945902168181314656442378187483827992307086531070315099209321777581543914249711600325807283009739873917629210344283506873621211169779329782089009456784943460931979524479255777810137498231402465835005407371413973461506831455624422690343170616835878824784809645074243739260918990901086328116540828183228776588394253268988842160314490506977983075537351790797501467868404083711853481699989635703615958428168904105963320104140866886320133449880638573610024932252630174335744422509535215859907364201376788881261770565809108395161125756301760605643084836806216937876064388711361987083423257398274682607394768912681352764896735865687022744752173484464729650518176771345706458512555757033887618276591760446994941012135987577636408807101372182412123256895150883757312334335114184514594947327287639607995663994534501743154328105884327765800466475386000921294209548383408956073108049110159137025974952765521760034855855545829848373872380850606226532371752804414125742587184676873933617945083773909617759475931019858271751895457407844565403930568432289895265692069735488912842325126605833338677000382261404335953358181266291519930889682336834653652421791767610194400816732848213834790308399615152407949700339270304162165253784935702512420183920160158088702299035213114288775696338673518527486798523918511886645876462126947489899602524878881951734358910138451868491078388193303552750694851951999925166149669474414445573555786960539997841433679730526945576690896046617931394890423692227548916404002469847907048691163032371446699114884268402160365525490924991564254269177509235980612300953903869269239205259676729863986106495863366708142206212792115446985698922650195439889497476834970598124438801626051313863718471958167708110960311359170919603714099438411878298244086807664377802201831565556507436804816981027322585085037882824843882441423624462507869770106286417927854340217730647492618271627820142867279679524593188111336527170403761068398673685498982076012861168015073432862200957476275533099618080090163885724055545390690671442430822719099463285387416203444101236555227703733385374664005362608636594476657960179866514113005102393332537668927930503132655180157627789475609088710065942099336879549085770500878925672864550468012072572676920495044567191999102441409396598384239066127633652078790452414561259412390771177007767865266808087163330031975354815709855542179234764060402475871007364876977717417360697049250718588053264296167403792630197720778843312384071359677099164558847929767306092298003123965295306156928760803959808784127562234596031933105608650182413351574960435251679037455817127268128781232403216962928675323498220965074457831075975714035296213801486894382966174336753284530049614322288701018530770518104040818856797676760584352969238078216432403900265015378468906929155260569110387598443312950750521444835899549946233944842068463468205051086699051460789745072733220425640603077361429591774075726734234249343785106249463717442498738244635484757068417097335709478752944790042092810449646956541855998572701351681094483383006276404547391961118803345509277301553744856140767395232181832090879079320448086041868185654025968194475438491425939958458042564773661419731740786619515175466806545232801812778939340127563521078395909199154546032576080823734749600357892593029163099992392798682051305000861783720187384477130726489565656867865510807114784645320213512751563265232424633583696362104151693689396360733468197220151820341003945122687230604628012487001843046195286892789787830391993653337520122576602559548198168187604294118527075964975402815427053478712438082166267120194563412360296649207051317133883253703663609151414385879028133834971436444293003983822729884064995939527619371764203112990245568239724245705239006210281038233215575394324745753594655534828480377694439664893538686408998831800690449694825130453953438878374149084391937810722854907677420320092576712086521599305553330471833315531644336472769090169806800403489035188619908645897334432258386483593996715803137852775531826530302753056209140781041093752428616196434822961428889492097271206610823158447255858053819683744154154339392106009307584639399544676376446756217749518804227818239601609412348367904621167022167657062146031171572988484459883737028610496882249384451872134968116022031424704478981602538007634808993431925620673949230714511962179144552885614782202296525292360504226036081470491258564474886391169777394157133342944796723991500008928256567313843138731366307679612020021838984841491373988924103264708052765608425681437052258664736983674416185521058132303850763762166233631799429122940124051309698720226046354822460087996305948018336240575843473134651711127289659391252970123909081728060045911310648006135445849223614934113363293527485568294350723610148104055166576774405445596055719427079460186175563130878304651202317762234893444350986566525518612763279375736469490855886770923477579144614895790030954532633263518356498503174676259259809510084220921791857102742878805998893051731503272911844415729331727234280571227282802028906751170930423135532059419097346231905118440254869479711719588408622794506524719550017786199282892989923516353863554377093138994782486974844412232882896733617727437333330685178277549374525699412802810888027176436766129515437051514901003091810799681994594016537628419139485686021086726689302911326099777969233802583364717887166616373795393203383315993954426740222722346180749471259313311777450258950307258747241936668658905624162590447092241744913779378066673852029469569735306217944189818861876677597306291858776014013679237895032235579720032905566719624714382083457178904233722128662863270756069024267512697465127152348839055053992574102440877690889165378091658346007168631543458497268980541885911106276644632795733866119645644357684918143637896522522377961317013830277516039117929721661182107483250752966367402704011286365064989856444608466341093715883796418617954146809318992289185438404315403932686293264297032997496900836233053942334422109909624810538681035852228003610538767084734138233869059542353694754758932453846184566361377482521148650804544361887525785001811085307767346045293052800749050977371996730675718409484760033042202127167067514742655588722152060515804851321074756131637619650561983915388203079340087654563362721460619809492441320680515326231299559286888251197643052067720941907240770387023709314188461164087237211132261396268578102804664132983415606050891805581537605175866904011581589077921504403723720648301925319608700089347039857149336000069214137496112028471286240425749580914914166338539155388691219654988094919865106203167674183344345930649994281635390625458104329987556460786464719630879992273628265213300903638708210045539236318181183722307942887105967289118821696236429315555229128970371497477637574693811861973688756140652702660398985462705082636497185311508126174186342777086053538994026514921642752116523555318120529005473201721695167021128713438275999016806198231055385013998247333525314329192539652202488112481630566745324824689559401617239375748860099605708840050663203608080147385012446957823810239002316200108095112591655604343454795751512613160177256392832708917673729449022230070610435671433551826414151091415684298789152991223488869855136428318200008773819387180616975541782624392599076399897847035225004866172403375814994135796417751845934552721110349202049173983661555037747246887417026150355474671021509738623046424146614076058903503740233843687929658162666386610424732597571904691559369690186407123794576627729540995723492269231248260946264716591611624536693969894981060988266691091448150266002549066123064811108786004996043067162885601409599283885437722008254553398371398671028907534149763873040041301875196267162950832987369408952751783711282444587510790904132819914226412141392316594111823970968614267543871867073191572900865574462249894998715794926469549051507133955927308134679303156687249104009075519878488223149367551212397569128012921181972858846789513054660127242065995970925941676540239717370692210331020221768819702378976858975613488839325371274686543048822014098434652305642304550988702223159395450418761741418628720316647683586215632207667858084929381490376242928982271482095260636037446164278352376673108319739126236153607784931023253414736560980002357836625689261518911178233766299098657274063154171005727736872607488791322377400626588426953050340996765197923465662554164757252105343605142164261058845120831408760168194505485402062412607250322293257910234996178609593253400419166665233771662663416653059337241661484944903209548310463602937404972299429881540479538205472551224538111479780643941723373671352832988489441578707866251796455181802293723400005216517287656719321220282699941600500780382129545573749893113859573994925119786192618245045950083214924830818237105941163554686913742381619991262686184056758628257124952662095043915512839742408107539597953781640813969942797180077742091808045661207572471540864767103382471900184556877127100942862952859378151206420969044189750676996224582124239142427459799155020677096449640315384968094053454299883963947413906910112439588421636794640104843284224772803251265557134193138435502248201935097408869742288332297684275936607835301018114817411667868115700584815499056336148952849187634797303712243430062958411989162515571132816168633601113268814849871199584987868706349217868603577889497713713369318743768456810949004295075733010081358478477401233754570459110893647242404278489782761794552177215379071049156483668477086242395794429083056344050327676475891987756434039922559342596427763095801722007097064099355456408362692815678897401877723235106871881899446855496302585258555673485316761605933293897560909202985805381326766930702201373939104206625492685638026121776752645380587227925357689722261543111034887990083541723767734711728630603088461907211450314071927473214458842260599838444475426343979418650901926622352907821125063629427917429331777634264766436953873040208436593059767140927117022345195196218984158629881189615555077658902524829372516843240938839085003940898391907034902330533200796535633600738635698592808833128143802099006970085754764633725197559739772858016315722479328435973885633030929784523579288333669907425667973766915911737175668531374097837214398786244270668152275992779460862242030284442928268671157402893634790723081281817649021037947977561700220862070215444364332935741032561878754696207140774073261822675911360042570814492345654596719700128733207034148508411947487433509221160042784812168127890769389077149557541655765138925032126420402453171740295039230434035728154855940894694077204624986599224219005577971961249929396312818963227335503971857876466889633785117673323648447140701747535127367102606879810537429126629401554439971733331476577979110680826297713674009068396747285328548676521098132539131997791944740018782239077024068596012151272776239065437968301130575573034357292804151977526341736318493272480363571118175002606092012478209847728496467300119223753653869032187914140495730966130349658402970942881340855935235538194363387639191440731667522103772852071761989087898431849873363366057946968241693577673185766461053435984283467048714678127760152054561305490164706518487348494231275517809370462703052896192581466238824264321410470740586776845407192953303134025571623271896987283745334835771626050495600832725564463916029539597658740985021054410915877594678624979942858682899567790709769461190040873696070158217561844416704984355329130291981877664908069006656483896007842562092730211767776888709676704535133990175255149194681646156726141772487772686131369143662799693124883344083338315962500697013304176923307728814493358329066574453654064747279417636049891341241412950568182500671777069541534518191544805077848143283078809263362168642258705889481030325003910919914459117938663893365908973492356284945091105488758176977799381161064335648127799019465979342261891064317976054977130912913804893759971225542065496250475463770315760142752431700943673076483000456062308279938552308879775414567084020301756533692464600763600163338661843231782748234076059889117620082525737868230072963013885632921016350549567730028238269353696862736195845067870588810437553350082079546216993525105463634676829928598976469105789741415459398290232156129717582377827442532475593002974424545719121051242367554596273202984950855166844490003106866267382582370852866787964431404339252164345610716073232713927734294876721951896937872808896179582038173058734132790583000078393694201494269034090514175362194491396467794988354357006494182429288530449753335271008329499464326155304649029237339561660580032011563545751992372648436700066863153981597784175272971356243529283766513815934948384620177230964976025084415968018230054244990014370630455767749367857953595100011668840214278402037725853489260317950981562813517261519677865417834302726516941293388972762433203959800207784519407557251243479147179661484385369741063421008402470481312384097740279474627214429029283246975418897234980621170830037348887536084536198539615968359187154946897113381284229326391870578678661814488965411622258814821769367912497366251294529214805552319347550766064126815896503128236951181924239480100646077591858478169407526634134960582930501255033777235383874481658729079592469564626388355138614352413931895454685569310185560652841408982162261732264669742864444852778337725514733231647473786112077982431105953411424541752971202785747849979262458767851722041606521909576719498497814451894491428142891872481046113420793226307412237564805331213839681050345448252776657915278182746224840862011586787010264793412090154874107366456572988012406009090882338882522156678632195201862943142055053000383476117221792426513282574335200401042201479865973847173332351183933640733666366498901211832943641136700294614869042420611002949473266941786329259296494778660290681014558579734242201474486771314493246973857479193011286660227636807477205840340914800931065004927864116195171418137143232486112973546917055591454740370031732637344659134723843430440500743366460593332592672294708470805034957346838792464067006942036795152735715887340300110340062525453711290193138143833501903605557667029355836569706816374469792889695669709053311712627734629969002625727897031932671668833466120374355046554450006530841538220432558179457864090266481892051166965881830091685946128990528197654666579893182047259416316715475487596068268043379445857226816088903270593649352142127591795457964964113700960104141114683204426619465215579769093753158249338618675645427211020483821127043869491824419773925168753901938661560924998563045633880796645114159543583405859761924874427519070566540053434558496037980844628355161459112085597751115197454384228033018410094373927235921703621754263991624823539494353401418233775579274520681140548800200798663856925154609258111978447711172436696378207847992187118021359851083384878287205882419750999991701635205915285874665952824658092810731305606033157495941376437725084714866713859965395089652694304899498204358484445257406007460719961540271501526126813634833465707573354708221211176310202165930162272869742272989185333000397347874299018024809539259423358685994059520837571336882967457192815999369188560693200386283442857985864300260983829607183919484194460136326003295181562354615231158143443905378963310062323947939790169180181343549848088721009749624137055595969541502481822851022525801654407227347926061156670623104418733291635121045073830975058443012804892990726368268896825849242241041365258502927516550024877451938211619355371560488850720783372081109902548759296160592674926280181314903822482019665961462200333936282514057489741135494674522096247397861760351497948457042988420987800164531259750926123872954844854232196335605097712507062640391010900675872647626180547872626537868204059670219611623613680996533025527190762574179739723217567433686552991424444819773316907262523577859305410069973719549368214513130003088752672229771589132503328944283351898611127351976202775796581444967637489154018083596718787639981659080917269487587660402025221879059821862162025132302432317120685781323857751985760507235203383646062056363274188766600434277835568642752888040419691916986000760185233108693572904819750570824915129838908009399018599281608113674511324905449197573072406306622517192567670143693882289979211524122813697397587001233321854831224050877412360641061572187330600429853995489108083490455467424396644817772471086823069446841598725425017680859145449742834543047829913392952687499271662497374232364479672482871449669316629960778104633447641682142607370938607345070806532294526829826473172328820348324119216669562826029122439679553949686239704485337529811476571229945918316209108633255524538160291450492985822388581819429208487280452304832360424924853030647887245493411749610961317287581617691067364884922123407455896298919875082888341513385894174699886631093160622464546174132544935763414134120648101180531328688627517480495402761756295075937364527654627046199941881401205885243980813577220665991464703452722151762411660725788797362581411397471677598780894694704316023704050140098459441034050185623054773660078375351316101901655752377172313405460907898423888265655820772767016418273985416329255822576741419477978749034540524744145366643495502232136141241426561938247000527201965923355661123152896375713332413382603231566000779127247084253506376486728324243233770110311194189332962933190887267258861262468848268349169046008020644084953601635689489746146316863029770471778197665989150556595411175784321158105044968227040469759545778403164191456197994796321400227079411792846308099106326312722703268917110383952056535484303052969993160810332364648554752115640291606461698069336145518959587658879633130690692749233290085204375340757951492553873929085149526407389113745503992114849745975067625986190386387143369478515535317232882506468855027050098152682632906866382156445102821201094064748697624926719407745386884725187676779299338044353706924627595836050015355208984692829326454934351617947898350560735053667875361607371060314148281522580866720541637812206311338065453047985007614169530568913362412252058905346076994202494392988345387483038638702978678787654123975154374094422554153213476225820108811707676838116289801892119999523150516429112756110819823145396427461121304794456599219252259406819376813114880789854429076684682764154718683581821369974938322376049377529481838808207842653805296774908338534979281400149500744869764533554780336551225443621816521039101553117670116768379194940733972260167677466965360896002064969807660792201501202765864320317317351740925121764074654985051111813831049501643363825464308387608343420002671497953867310607448307466051909656021112681855701095225867330805908526333038458343655993115823885776519129510085461398461540460811121541291114373159611997418474110725457932039410026796890840165633482437073666657645175058675036414959742129565716779441200600718329817167145934952734927420768719901615831772752013963701247773202145734703207334816945258072343746599466243889367306377526607287803361040412081538304883161620278523921546236461571610724120818746567422632058635072779076775477750429688979061356532825676865179788884764435503121322631863281836524292385603914548308958371575257227041708061323233883065655954592001881744546611970321089700123187236926918719917368004875688645087815092312756453789948127116822631317777879334373319434828692409376603466716951730627898158536654291388961435450359737708437048362072763193688331407612959394034990041490380957531430238524067964027271747839230339674429863720249937634019581612602018417715863130583767037919418046208553360342518983826312517982271999688068893081718294892339904869861684688323152459820648950591249416077214982318422499051704990554290582692070067416303426465996754156911377001338082968620287467079917235104661749242709835362940916663547070908673824362275573516057385237217729855536305632716319662136378042939526004399645316646891254526712526792369327746039854283986146569777752970739599245577041419060522819852045808773699062236034033776196674626262336480033944124623378648983717980560651473962983961664125568553208469160414492238898939364355144339458325090297521019618645781269580321026830999503370414309773003500881031872627980748481955684856441247615324162761717034291565383363891550121788608009297417775419459336196808255422823908515575926343614650346837457510216844277054384457407642547815198382295760046218478856922932203246555744672224830690707005934380037821278443517114509794688483958268469524432237449574266486283693219836483826300367154516909954057884653152789005964320150671603020529247716298748613647403632690181903497062213396369353876910458729419947384176503210054297014564281192148455649704534019004756091184642975817070485447471286042702778841246791607747041455493417366885270198096139681590530143346700953353731349192394317099546982364489668428736641312969379383503233249971859039220832389626875305235179350202979063740482673641101080992455269917996511167758828540402783822063583527888025718979042102938502965473715484269949545210387751691577893134199262340336349122391661853305924763423116071541219371195270837055557327031831828060086250695934457461037890796479451692535265833524799015815610539740341251631972661521548307875919728482233694842933200242924909108126717550428949415663842226352196320195139245005948711058849714201408589777528906917711850698308451245279127328547342001574820471678594244595760444101527417598966402464684429619413194080059109860112393485063570933983581722881369813063506482937243044935305600080187743877502569158900229666609663715592660834188421032508086490927034027405736535762635895603696592560529056322060084735542319940052229274744349211792880035435396328611865264532266923438333655721717355652930344476595495086648757599553274357132602010551296516298129711478069784205688313790205038456681553332756132864019140367027422572865471216293853706868240742460897909272647184632843434734358513134574873829491377950625818562066852836523425934768040663412032254367634242961928432120007194368639817026432068176965560577995944776328086709199475370208937582426632270715217094549710792120509748268594896742561081113869998334134907381019820951095320706037994587102522270784832814897745647229279682647621636686260989146869990706714137850964938344061640629781745453522676708254440726148926920703413010103911566532296575757583855326975735625151386504477923981380827729079885425397429257200432417844498390694066231621728044271888143372823865237163471663832694441687731286323565024684503410099368616841448747065654750052417952959654653165758043407649260120144473384210885484502556841370822833595210377395728160717024356098494013677973292583638048159960431673255893602543821516903739688768718546985686230019713715518020292187243348153992464958688548993652489823648145643764198346992246196612650672067037666739259928303955511962131319984929380227841763811637546247242160281620381987747079195624482250961206481291787335637536108264880411212179549551135216698228560453274134672298594990182492012720263959102381536678429359308235957030021091893436084115213881428709472148711998329338624407570337442217641562646992510694722318763590636382568341551427078838466010974108158999092754216869509483711852697075128939861257217451556649186254445070738478015885756979628284012936383858691823113891178242359559999576853809988356396111630316238844509792171513738449127479602378270201479271968791530308029964987124367976440862517558299882151035450244282047434905738062863302965839535230248963731593059177936190411670828077471050627273971633489349995794169312354443162027191842266193948229906534932622721929062782153923077281726903370557008067442156371005762245716288785340754498780356918024988972773729055001299354595991142671491779729645737347915901347408947789022767832913565418183899031850069560761750288838267791783552031079461238153911333196482089892118104397879244985338704793365247445656781458482305572104993020631882235768306292963925621125038539991596062757493489298741640504526201976562080663479811906326917735770676828203412347347814858804062892683524202376840540138813669221653018426766006128949429555005884763236120996311137425859155196687227495714873185939359742723036294588759499541748612915248444034631629104815400822694453262012538922885629875931550982585101499432301257963318642975968597764392107214504383075523872091911317844141500583397200048304934414668395392004677549862050485131470198724893330986459106676521022139414372373308856566872801363272369240534595463985658526824243119951568079270156686894139793962565233572986007903186249083039863987460029933138837404617019854871068539319897122869252519910118256951678296146909505102722708484484185645415537738317059196385051203104109011035137405191314945043532801211571213595697603911808792103381787570686943242624847505511485677379308258855697985431179862857666029070170435297162330675167836604068699346563996371351762218786726748498732238529906403431743685302245880182478801620818322861064344348514801303598750977309392214630402698016511359896690564757094511180576052218465640510599966745702052732158454838157146332057737369353291891699129336395111210935996024883025400681048831452991402795137655612676603990899181218652297562698715869692524652136940526354310032275933386264603619716834773029437327470427826139554116077376607185457433472941223050533486006863619008955785217078774689384613615037393877599053402886779093779063932187634249783955059352268820201262707238410686189345748478031384944286881155021723692445911883572706644683592590069085644627964309531639254952217744612211024541184385182412527015934699502323364409245358229558151462857903446773437451352623442551654091964396933592548820062107784814125156545592038933339535090192175564396655018468382171710390840052238420222760739122921500501551089561607212516031919727106231190738542014862107794739575068569520363934533921240069586276363519615019965966334637490354493504865235628476265951202775952018029959170294808423177434743177399897179569124208929326381354557902965789054945088486435796565385391744888285859051729016524347376263961513986885557807106923642719103656987603524373422912538747582478085417635853510806532498289591088097060284938780367834162600072017070040664261437515775189136092296186371836984428557866770083790014505834415450830045922469467007486524106571549205082317259225983470810859017131352255300286959467358697169624645909533078240241892746220939455672855052089976918643443685660076649151889699647610381145453060906825761435531553101903523712526669149486357994768613051977898864672356900240844159204972741617232042103730256839271738737717275098423105166736665065009812474341519220826631947776412468322205880152612518344082621861020193334935153105738473032709755940304418455578828208760504616613762837842947778206100282046505472746557621700926055416329775379731782159401834868267883266165016198239267168402097182255446984277348365835309410323670503889258395901032939215257869808190332936620091604298759042477053479679444535815454708818554684520305434353417528582276455969916032207868603081685431514838146958122215202316244952113382968240109362918747398541594655260923675324694397970828610284457988324974887379203989004249870699959557866950515104961664095917226663450374479916118593300053172042096029315450534574920269734926898263112027615398050232159605367447095834517330301094906591265186545402356501115607048049202499783127061736239132277779150696291108301195111102653568087338840731845843686104035633037689342462816271578822911502273052251233511670840189680139277688219259144449846242936988459636397138518787132502085711138257571533789107373470131722942395239814409903242073248528319370551301586961790028325707567233387161134970676538676408504748852018691764923215030239869113793987836104630668759825723972481187190582685737256819777725270735906069626328468470420271056017796270012895596943333193166021703256374799357222491298387220261474223242867788121603988431676136419495400732859734476962750585179898198740754006733212542180421721511573579008726744445729716514551923846327811239062307347201373986728760513063793099243113772355548646130288096979371015637124702977828844749825462086263032103189225872930393951348884892700059347821125727731726267718401327611479793085610168416780592822113746248742987004337555821585380894094403217174614247639851611352641283962680806244694022556641948479351035455052450249147022113986042854507335799170936470064798737002186103210745100877665484378322066540736580734513849646837005868846207181364253002714981714193540264877128392499965505988994991277032912050608604151748132933819786661550675105292180544838374180380054725646944447416005656249475976394621633726761524328792600187708012934515582278963147250017575901342875879128283282762816097763144980666667749525515151473274413090167738852039386878236299566930786979293074698663486858277827593635029979219908180633119087940331820086904659542939988703307767526183638042992314251856103095048505554620939190983991514099718492439628974152811173391323602549858880496742824022769395115813858618414466264493885911174156425200303894782060179858890850418653287147300980003445299634857818558231109022211263375618600613153486610935286122411763032646658054248624291049472844930102529288751515549230192804649008568097419677461524241272012184635398586705954649079309843365741551604473855880743911804448382780016502077332459383051260698931072242660531370360873765562143646479014274071474112648397804161796381949301601017635505440131110148759412537646254974596351478565165343884337327107146903564747758948282785071386675095464098014234531279016064137962310236866311042452840790715107496653607705457491906929012116801676516231793859006413056886050491672490502062249204126285486411551928587207447457785946861793114292061043929363709859329124064225840011758598213829262084267541456564232994371748290828545365786595002078506759781233356692814657499750471495858853743173464938603241837112670227841920139732024956542894385901310019086396397795065839195467741093694187499043434257719888653591091369885205789114457295177382678098130394760189925501849631144745490710367605139519260834722745854768927176342748537974051334120073033185510847307159630024761979609013673918608020310289048425351180400521164865584719218791826398172967240901253134220836109626552224649941395134944110853639745119528734200976429406531463445796891176634750863392951840057195641226974327867642356523698663173651703152798321631394447948126861868214001860144072120016603152402435677521164133865882292261812089231472084532807607286420333229506657054074871276659688477442789126693762878054636011658466487948080408092197265460068192816651574854300183532668940863990217740558552040006728042831041064585022347590395799110602418470240136379505474466149834606603892464406095235604547131526505007949659443382012118604640580994414479632008842353641904286511054558167291756809681736398677399128139791923301279696092378769991570501847588313108678610850309843411430438125293227083516762230844576888227250259710758447431531521347675359618008850534671447423715778026305852302147061815614077184031408826676830094770601539581229185943206011675636223250047847085502362655334543750351593924587084532284219972946207411293976608938657474417494271320645267071461453971298957590628093442881837409532116999456761375051124436080782710791816089497183640801343600249935473524819011795022002913902201678641261297333797228602680236253423707061706668500865824434122387112307189464170394150191677840526538035208255889220757891312960785324322733513361762722207652647980700232111017562430976512963905478147783769014023431140107277738944001019186718896691545201051456228023663526116441313995017597090994816022295554027454461897460789690021733589001191143992843787050655141633661304645669711547189236429473692008322714677487103015095908211888843932300952321715707184921736743538897631665255538338505734536901895816687902359362329828932234139954272047125097992215327978659274990705068204177778352812907028963298091462718159633557771434547262353147380217636969865937554517049437167560672645695223536958153185580592016363219061698621815632799035240103666174489123207930686869807558243882255979771986349017416244536901382271276653993263022056860641653216437679056002918839259365912061473552448425115393993550755478457093318951594377782693489837943153552764179620081465861577696789899639524041064094404759627794507679137780926605550110412530658237494706841793388712450079878257489635025627351909719132415755267355710804372882062334369283817859989469332494465897110506832911918853836797852865384610806585570402604274365648064213896155499729156149812772677862402673176607041200703788201252085764068931855066256320823435258884590102557262820737753313891391963495750381384496659584979821397394872367342115694102446879404591914582220556759629954473150671221253049826709698390954616117843917224389933452066536001910365416733964324895136381867327690316568789003384796913161929361957253909086842181315765740913363394406279821516631624872181241546876010685336092435722785024326769262000601692088285469822604738936134229788344378728667329517874380114868763246868655310934133321286741193158212431563196444924504501091987098291902496355777799170999306674986725287005808850291250484572446852205790524540521304371283578832703680417937471072468443184944384321823347602212185939579325865128353349370923987322296922946541187743053029444393134601442520319692957262056898241680627549529267070851061949059218589120958914020914909657378114707387991446191493052714095200262880560877720495345425522660901707997163853387735055649956531999629418852473671334377189692664302442351916342828554527310017322141254807514892139411919813885602383960831035560878239792310478834250006888848664867101212065631124253610608505137499334965355961334699218129064262907797390311812550405478328624478529199432593040555456747303595009668843062524456853653333669133802152134183277051312578023106803122157838828122002731918704215338042945649559032393774127768316348336905445491550885595837465273345860337720217510104885997770647451034526162489260021925843169719419338226707901413197977964330648690177261071616967174434755065800750584365868108901861766586020309944223058920603329433145879127184548161597506371359950855872624991013576344232736435831336985340232788945889111473248032225403407267064690889661065250024516976212910262134704838905488167125020750187257605458145521871839630126467372728177526026011864797584551504382017118541856722227119175531541966723940662264585103784121043043384718565290163856002161017117700251090529853233929994974204149330417235925855178095920002965980970977247888050798525819526814509330855972268299914918300396699226771901481107479105111141352851873500810932797651007447274102109226422066497169496246306131262047049142559592343945204417252145757775835322215201463553065494923861054527574892456924677986865165212567527436577127100396686889942288761996144916448546536635720811122782010341879049775738202680931844864468994678362939039823070762920388711963591503436292674802795892716552578893252844756360743670518133996827743436696718597266822025851798486107925306370123014801064516254484603802297460885664304748755786814066655906718884638299604583415435712029584516811641525873681209842434087454051496796590333325312789882333133161752693234299090453111005789578972725938607667759389456422568575282784642244839445255317383498596291253151102354731814041949966308412500327261316628169325473564283282178949535624192368285887961334193027223004673036807507559661104908542399289650386970829411586180689695929574984692550681315994306590496011934335829270785901484871208715408047541350003070965289312392891407109081402828339007977671386709492842365143355518355613429361949631195238347625099085975637691138276245076235257122979087175104309767045531456677841000426539523069853364710108299257469899401951891791029102260153401179629411878482767791880144611382847725281667558329752719950069728200651559820508502478010812855352173882177816055292138812315451656040971205460097751510248770522883949251058189313125088757679874394622275795942345800870538513555366231933758480976139506539340414081282776091465884140358808204653597470194397806465239200505341996241077570301231156688164469572845779999262005967090298505206812714932982674198455895123402410525382932757094836597114390362553725852411140628555158405918530490804452086762312407942449128753602994684316239933940045830994432620898120870421896503253592071040317580157421678620937066134670360460924152747829951568067459758993132714279498249132522177604334163949550603591369160059608361655073311880861973230226558754156165245672148956548154985185226518843115424893251856561996958900717565853710943155730030170581295438233624297688258878363058435461571146355546776660700321145668938766504581717715165753830683276898246983502281136028908270177684123068980266744331788309486685118234653725264361428183029100131779854881492705186602026759024783287444500866223890125974017103205217125241106617948032019200088155076241074237807996805362823105722486447684466696236423427787226152373724691114750116770395410299726125082876136018710535979104266007945966976033659294153392739191304224309463646318359219258210655702084172245938905131609812613490150971095664661219325606474438910041359249767992547149045822693786272033153571103660427291410980306192916051019539013827843408106179200878768553874701259159335000875073814256764249652516891529329906299372393771974738721876366312103911310737249407148579816471049182869077641413749890703417142587969564269840257602957299261980858314471870456639649662685133952473821931633154076243919093100308908541695886286898638442271287797719367057731349311630028825691784409471468219867257426862048834514933359138230339650743303619507182870132532059647940702939207665721953125484174729472299101628265498425059993580206246741709129394565651521317174512780037099381137993147879205515308958221947888391274310260425231535216031709882916137485250016382600657817073332736497440644847739174943189786899439875769018218741822841435426291118189752795488966207440622469417868972521372433807641627327394283203594899415160955387428668547597013340159776146308865717754356319636269204099652633612643172778034959831380832777794137791738631845044127561697469172690632265500332785453680737953220969530710609308127167149663582975943005468343352452046738718423643779894103398787042223375027947666575854123691535975039179980713002375881691684686731954171046928405064707965204457475226861073944836848153722225079105407150395660823944108423393682826732861211193336764149375798348563531811929183970929627892160220331265049429670861402438243153986169175695603324835793880514495617538477005445076195120186016069684619472020163264315811956487312569265534352932149262482725937984017058908008175701661409395992183031544280386023244988173792483481063506202227335692594391989430523530981318389427109989351657925179002598816691485737925273832934199034188122395818716906825963874016068021840060722951362527422227012473217669073977796065378986580644606071119340637964635710567265869463794977510084498673103850477970989787856109770865496915575464932959378907670014243155660351648181296631223736790886510547525819504120187944138013931146008089946702248451009527005179804531011182537221439692838042965444321984711241455768621405044813033087578970077758170550164666569171902724821073535370427459918074080319084785419489418587374598291492432444190126942488295708499732150678537254981175834378881298024004355174071946272657533775255842085351930925533790778870275040434141944387113749223541859467888364090798993975338882314710655068919485824703896782354368791425020144249361706896846734770897445963653812327518389229148843973554722465330604156243486015483963295098504958790213178511604194224065101740421564798066339972303760771683361483607928218444181424997828797864603727471937644477671827553309769636533917813394502710511971560514175280410009824952119789639055295510718132489364786264869817112974631715797766447576407243346248075613903489025056484313355902228482537521359177929481928537696848945283933757174769113511102622172031569318319198230759790522364572776442698511615364761728906102083894515802344892919440360359786945565785906373317874669908973064772258069280587559368365800112201434267143900160593017431231897066218325926483167003289546467163435310222738056228976942626395532334400403654540170682371831623808557591767418068322553944841907263006684014121684632610567029697097420836202016375845916163302334588288709908218666867253188297268386991063880172131852829448765610533413127750494935398189867421784803587514810338391630279839936197992797651723026557926279421634514083593183624737188819912265220953044463759063107798264200985897554684367751177012697581326683702006447678647789673702367716954232551307671801381368883651384403715227366762489715531852710445350203828428575469394800878530633666015990543220391489057556057012613866261099761914340673895563594900360706310150826608833570909741755541483630515044260905997999865809904951789256057877431508658260060516415685976347816225063562455270173750916815286433095143014626688406991765079985703336524641179246678677351878002174508992357597071866050122940834265171988105404672121207345964237755334466913638706699501741215849675729719412414342410158336971555144828788785988014673123550556335430852186127969629612586937305757187573824971268157749713790738884617282282053242753249929512060762329533707326102419188826112320098861694490397958937658731953720240143778548029262165557595614648740400162204541433381488691582386622428535777105177740882205068895326121928397646378971181253021159914109860627997280295350889222971028493168378451990265149184040253528297591435670290484918316633748968951222517272034803815999016803564436019282241610542973299048269957816031312506191479185325788230970786171822308968298512376715830929990953133188135695681179239760607585704455719682332898393732536593291718974431306517379324006163242944902092341222347564294423571907921155791929086084975173476129731338485124653540150923481113268029706562394654032688474144549271524756584772938882960836550840536267252435794310519942715111086537830919091538844667897072213483630569576152481508015229146462434059738864320484115769143879666896560641878339389063850804098631610996543226594939745253344661750948100469396885289196651835467546393721639596890359342801620502812882185952600649318735311084017701629501079553171219004369013672151210749080299049711771668256369383613838375622807437284913863695177211508102814111236656480220551037551650659316936569557460008393227025573143404411562598181764336644675630489608999298402596068990850414068922478636165097539743514748561266880075743983869465895382075751085811009587562515186704321205140540742538034730345717067175737899855734257826769343139880186995900484450881573839488642236441272989341513138525473044476177564053253749407494972549426710072340206305899014842636505681387324404788377002300589205477053805824643009499802765754840474674875955578090123936107067505605231661353192620795576514500050928475412030991431697399459595822579674040185889857617082134886337422345715715117351547790312323603007644659236997351062830696183917989779254345996990879081971133744053392364991319528297540643364729781102189948000723618611280159197834112878353902958735040719907822161418773995331432047231343975582550997391006023912711312036495740568159025527137179239782929925128878873916357589638313875179092326328946003209024586728611817906476679312694872277670129397852441516323554676222978849957629498089970771551830772482785686701834786551732020010275761282512640850886490772564906782225700401561972733988605934989159659451040193446532814676498498423408267634534010874380941126378835158027408749118168816321950569009877428694917127087400069984290079353474698044468748732839724950713002170471467106349351068404341952401497301566317065470958536595820501196157428630624675433401756743640208573915847273719166847129570815632200019329974159842735530189441831824792163598366702002704752412862314219905814632398535264525162576622239155289626959760543679145595218034874614049687327833449411836934441110100773317446806119166520755680855612961634528966597871982915437392905183894385838713378108933988982258015470747727090739540860540664151980711383890312450527865150227431692575407599014393566328291234687059426889245340699298485310945579956198743845751511052171087004323804163896215055479724327829778205459119508093584732490388515369710226188989996875707802604927414779757864929234761500941690730429259216397336768891182756119346438091353900697595384852092921855599043542773204819824768523455004867578799019457644441249271044569917879143349209566139209502622453383685353529956465545687585273224864262740358875905001548650208245594221761499317204518287024807867855546594116632134899425710358530975233025482233483596608717466295774005849130312218693510953439222664967208287830039187128490085699936992214692525363071354243375031544921685063448035856413692905043191736457781833412786438060384645928024939063868093312240442629218698726868739610017660129070065405176121424709821853888946316410705710883529255912966354021360926627338861290892334581865435496070525253927772318351129883956595315508875712162428623763276618347239787428015814809872481504412621164728808169903285505888233191012070824402967816720530496305391369430086971624389837164766457024278359419956323866254100249717690017887673272578257415465744524592449355284263069689958793937305018764194146050380488964232129787176424244974362570739150733368994602747822572251207302950253507050515201534829539453564997913144361294135324677137938393297868963249822750986374345287508013924003064296582147363704095450371287396275199772046134123088862043951222991263056008229590939601506239305578010190252736345491973866705763515124618355705367630813106561603166762079940087700234999137379776268934667943363594885622931421702671551455522832439217532431752592767939308990081613187573607102912883675336617160730688394273086078627034863205134602182104265204870043100332392681382618707723960519080737832526611743230654047840795635546707337151814386719649659465971358500219564019119811053349128072083640525432084934303631826338519251855351656423206081549789495386212223109936721053766487625742732211171164010847364866947206485588187489113088994854321704302745629035774042342789498235815142760923961855109214299053291027871876942015600734237270893767695921982963071974009802202251369547619444219288194609927625137612915658631453391990567331028916452238125674437362416512633906335279561601404174291990891643222963046709947368163877728548014149413359306684872775594636451571376464034435621344922699904736777690809435294934143227098582996926996356161676439218398301501018232154992320745147798833916083590895914506760324101131892165216547084002304923200751744588127441895555029448832653594030368195200558403221605917292708218120384013784450200363522223893789125251333076692385188851857982449549513441856014236371984799163226931092308818035382979906846927396281844050869267974927194540586695199474836451602711386473996983992045748912819093631980551523050013179079082887869521324656752952425996116884146645032730827075646723393080724808265337914614478256378235423455660421065259499363839607460257504791231540539035002862258343316634462434036758518296845568056765034845224049804060225769184056331588333595821607769742729230391042491204291849185302209786544770450359438086929444751397358157756284928911668240388822085137523281679700584296734611083288580881128567161768144686950707811384229488497133048009397984603422137592797298376247178485267266794965174435666665491111578477899995779341646934483612872072921395079549584431646330796970808562730426618506790296848564760210556167138484931670070810238211011465788115230466915395688170163168390185536197948482366894235012743865135265946462604045364829826226298529910569310015245707187536081851153551445762647917954188539619641738666093978932032796759205656121089660828675749929667309755105540624430750551023513487376192285490280285823014245532140540428428471198893975332133577978199517851613493225292641303184040733385436381923130690629141984656584161010482243121425872883902793864822213215849452909423813671791003517331401799174259240333161685443977360131088045585759087075543591375610336696009572662481405047156680753544148799551371105136129422185300275960235496911522332480415358308289280719761385975393353592123508359176509658509458189426031969744896805153822424039889892093833989735038300188546608421808551226842169382630548640439632428959464386616181306400813562899939256452324268790050934065245807482157822254616270065242932364453794798539012204599442479206460694456337970259098783592210423830742326400262490953971977726994313420205305759576011709811710342917956444823976674824776537170186459539763195706871255822613828681403797823955984007985873284173531179295969947115623582855474718997033858299487401677712412920981488479961909306636256155421477239420172851943629868843954391049103525705634793869538723259615296214501031735794116623970321244074466830621554540110701402896067022996463585621197697215355345058646822801245432067295570142995754206185361734965024161531714400251847554149988769158479836689404478791332426234730530653907658614606141499704183363302559375046134864388053047920982774392008999514656053357355943517015923108008798443566442235139031155562432520788909686160011081988939174227599473327534089900106020557651024297614800737455596191588880851960044262664803655352148137648322811043642696938323682823459430982946480678718933009063472174004209865921568320293189746325101231855557441447030414082098518466102412336204056396288893000158919198028916228378835786351301472745413195155492931658104999365552141018745867418126042380235324799110282201528322008467048287701664722932982828514353063208628048467844107079791769443189459593501003578714323553662309815177081991649360670785279990435055170348844415644394434465943387847988705705238249594446544467552441001851681517646970764385393226507739863174668913307380626506779704229234345757741922616208742760906494359555064674554645035720464500047091842408562381171985188753152514426160207134591905089375481198294192049771634951680350269562578103531542735892653365359591253716858734500065990802006936672556859465484991871288707210793282676490783651275310082236067283195304768903726601943279605831377785587473235156308793010494032876182110652573979595938750848277198807966039810476258340197818982528003278001245035835660201442259318753070512666350002916199019495101709280835658796746121354062522492503083559993571343024749966999981948723581339140477077759675004851708742643382999627129193347642680190655934154058039237479158702558205307257420564953706952166134125594048688138458733187221244608064566289153891953408305945038795594036269227829443510428929375463844463126414309998675112094369095775981605029547348861792954438313542531996187681616086300699108379894011646825815158751625593235469380200133356620336966239872711446670021293418906357541350931372963434003157784970164275983715806930834903720322957624337964081497643352426742237821817267908685142827248619865631369822426607443071691633514059733095504157115042154063574119475572257927072842065787948537046296305337992006429099581069369547866260223877528275752660812150239062377706265821187508374489533858105192645184286049089217381304801880436145218166355166524778925006558677854065967691376500668710506405183415136212484710890024961871348723490962591525267039767590295361699387493947854888374596206592628335895156333263074299171988901043471198286150388052758915102281084502594055345066623526098369320202029605896455614593512364290328176016657651854339725308731961945255556877037324676121405048942869226755926145661449354384115527232487415113304552338795491411308267986428288347483894044455633848733719818159563835335164457852049505533533869532290511102808424245634108760110639984529002455123028232116442042612222998865770223634213751192118364078350623472143568058305488201232430810212921725572129989943137573683917949561578506350140465782385289110608218283392264340194255177332052692787524503550353254203784899996098818822198904923202038785548211255891439720059497101829954161236130596982763437017918431714604399598089300851124890987280658220339139004989910197767084528486319485638772424886269314230772981133046508152229084935165485692747920168576818410522497836597108524699286806110763061544935224174396583473008595008677160857180393286666478779479716422445806663777677294048568432802032773518911622423896272369258635843113799296018005905126663910808313487325664902055463668928278448196082287255814442217590768588187963577116787562530200671339129954416333364418295244326853449081604913368988871571919658505970878276399837330566289074955945763706733209093955159903871760159741614470842384004016898682392552348731552473508944059903347883555280474877180658112995150681604082955657193117927317927588332934181381565422336450132909458842588053070625214489729685679948519644424097938153949655249975400491152453529456749778051552541315603742320054949389085666941185204551492773431158297500777365255076227185516337407671202814947629776210644247234150984058427218271868919499575324043135359394945215071158138005264320175178190229564097439984044915326029659078029417692480610868564018266973113091391839368625524629839029856161956667751015648436608538518970693305550594066966046673321561370114607693804751086316719386277431415130662854839929334979612466318218809701479832997935373254485282330884427562060259246700576987427586540962323869872030414559006143886634220342641090573185111042205835155151988384410805684868350099076418511262647514749823068338670625929781053804740539999169837780095927563643670009761050299521341063022315461658925924612912578010489907232541584071645943870328879587832685546286403130986248287685528013191719139947185411705574932071830972726543686942073858783151551146938344274475431924821191660269641969952216571293518354840491258679916158031346124800623760101788997367418631118694414256153829458390246776462953921340699852536264594805155427171754992971482601075861584456084244303450250033216475097949336370533711337399662752554777844852652677232232833497790675159199484941328107837120913062163203649897492633122561730548048432926557450693430462781097875381568386639734239447126251155925706315729662357333115079374242187474981405226524167861103077879829402417015084521999103751035778590805507400937260447913097812274726279818108444639643510036231750764011665414575595059353236674757180239776699617681771491457515108359481987723398361222821071964840028071079874175652361657403882793375078590776348269240097003974201482288451884144781391373254318585684230012354007039336509110509438699457353502519691027147351404068120921190000124605747034654405067708716391778338125761219574434358724233111289935589215476390300663897916787731893839016000978633598356919551809872903424625473076191359408848782638441724619136400344594856870615359507841622022430241415143710750650482604389611924746128634227542198664243831647567297162924131416253134124947326090086846959719409762553845334840400206164506964778551793208765316115616368616597481860773197193650462676194280818615425054887678269311111494344042666416345026318183720284864813562440803706522957595637173604046629218331862796871334221313241928718600504800374846623893947353450036247130316206978710189339437592525653859751135874369599103756379328699610449235225916985459708219725315399528188480888575359499161262458266031235954833964262612703187729593923219830206937936892957858873076107809019841350664058261915722568766195128968511267181920544758416878061848604069621713881447179974661931701061938416033610626919895301819926235172744457196607956399498985036928289945983793514354015233096163831652407565338404775091620124803906933824934387795200027688597500862514233599322608227086738998375439810210298985790438122633168873957679991107061688648805649715626400964017678268413009976448802598211827266805950464625076894725096215723420519319066126478177034219881453762768335224922419391806600512782931563863957956957773064647089277104712069203060426107126322909921067168677164902808406869043090001195456560678528812120791557114633477807593013614130047779712276732842396617600623613279761857515448223455716287288841114648598673722109059387094901584409715264273819929777270890494362926841209986762195843636425712657075320915515453799773403393504376580282084311247276365317198882046722158554630229310294799729836039347527795347330313351076747521284010802044382431873034113685035045406572349708919540817637574364024854431509434958272812576494936762889358232513551177975050558411623031323642787445417033272952400925751065014278133407778364767081172170717931840690489308830527901694945193737184377560660952966696502756897922700550348073808474411969422188486059176360361742198205075618559131841831547057104736418552364870337341962707936519126669132928016651191928783319381617920543688391201151268537843330787376628244488416810286316874677850240678256881605181194891150167120756880931922386768165176120397478378949624781720900061254159612832368894595735201389010770903896367864807689869802297836694340027601919179207707675614674782433046405624135466990748690137765590484056733353000577683612348584997174160400790559256817151777539445461899957514839829025808166139243558718892923694898508836174536148135876878596220410437776842325425617193954575975273713728543531073049243554345936236593286668800716884436387434599873762739616635000332056973683251781430507010574173773656317559781891112140434974509211198313825377597176590550837633285697356503806652530401113309550805775795683602613833572739346105294109437748896425243404796150369111153941839160619458422164180021849384813107235431046602350293604788910030205788720607945935910640354819104493441984208046503390555666060939008558779656061735781410327468708609964200366111403831745473162965304051031826838311033785430237052032452046329067604455232961462988747584212208233599159426231268577241935041287346519241697586667333403784922638122742290677355703651427711699000548571573994053341498573112116917363603758429045212501808587676695615844746651181681999377541752322722420059618276210593402932209642497173382042661883146195692154304543722380366740980281341926057502559395025484288234517824233381115643407990399879450711728290310036762722597380350173503074931222445112310641768359169240211627279417026499626739866066541955388238130343110970903865145247813498786212253514172928758091914920084067960454126817101162046681730902920498591515926303140837934936785879619680281732010930846046849805447177901351496678132603570853223486853548187852571831509679777378976591788818792847397794140864516670744369700959535345107257376221749540226143677730804341268652251338525211144662591972489022342401783631041428657380785616272827695658562504863254992398248319887147352570530976393854881269483152354702932550859384412149019920420452199042059276341139283964603020694268906285727516553745625419927631353696042977011372527920051764534488548741672888079032089806593027156851894339969082834348499472639884088150244766623729165611414432653810067000693897587624402434524750751491258462468081149191861018024791892100082710277767248397674227639139972745467759006993969093930710498098201604017565396935619556787896612757399497633178913731469707209293445137366859667306344812811428693696708390729475662118972347874877656887007645881838158568642585851053859415367390382678810733970808080259890683842395373963365172118223937362455468434318980424108044900016295950204530550942379606291487067060452627293499341703810475666946458772808466339047412269172118023019621608257834887355056981521758982453120849105694014657483290971023139222926530857392533099836437310524482337378187879098731332005955844332167192676548812628982964835654383061765006010377209410360992347573604842062111348854398262216964031671363379412629379819641396378109584306630798634841368572335467012050019511621367745601144182823114834051080314302438367413323911779111225385090119526224588353879233656391988762936692952008187964901831735616561476330142483974232012705703216848471379564016817735317160555472283011762037840677871538048525551669269043087062675704397009332011889500753509466351984605804857266138149382445319914363062106830849872653794370523978286572369266142320765791049626488982929295992668548176046035573589434514761863334321998532210825237480668650261731708373694013753316385478433327097679025233807639419620100775373793824001234629899008698646216931406076598842444265199072809213658201879143298863556414322571271581619398507790894378777166339965060737809357180385874904902247031229103722585486256336096165726673138563081088194005011875987080422973871073701622679262908247200823592740826280213755139765698250905454312961175160093589402671829224314448727822223349208576575868135366800913533826199086851150605706037756684952301147483154453217464528833945848920176107198464130957915099983550608287883127572822259313910165615248117778600196989515108907759033666099193450437894955102001026882115426603971731014498254030159794123131767358833832758084765771515104740612282610405038275500078594868717772414601633163032874795935904023725708459316341025829996908793098325846265652235820343231214372718239868854407739214879515764146706015303465297090409668260932115402131009974679621079031520091040066729680682165739292326554895758383870775784410210190543425739237449928947341233589074717024863483628770853978452445707610584408305602777197557048974531510494828141335539358316300330372668857811200565234316884990455134267156236871878499710006117723528256504137673324593824037629014010335005940933140842071134238165811793824566212582140595623120638187784591269210786922864895117425363803869986927065929241051906594352470022376665942513610917344846588875628668833507902693781999947762865768678844624010886451745401036107107275501310440218624903442319328642052602064108763621665023582695096644308917502780721289671858452456198533121918410766631039865715111351751263389574749477278671166649557615407699357528263258775796646399931878852026601059759568172455904585625353137110535795306539214524941981851013996477473847065178781176690116449569361060557309890745647775598940573592001918574024116652364757108167167051214945243648833377393800190507721575591612965841037014767225882277131237701714969246132049025245653314513894351444200139690028337407266449966358196077454241318638935301939089466481145871586956402892946358978691740292426742322606410595910316183166844196820746303471331774251385164881493647366833712541168191055483445330456271620534108965517321533683456982747269403363180294872727943286747164694704910835490484138727053001096995049115234440362142999432367846186354032413700053067841023815184014101011307341373629311779257231137266879583592689369365017238809224561691909944748208975850556244536455735185251192596790246490262769064460555538410504186412861962050687015463746619360044791655535944237236847879772183111795653749804262018063991453055729121007325871944064237976975540272726837125805157195554674747833643587486687303154686308153146353041105142114806903468575822619909085308478465756148373057902375027222647158864698456697176063453180442645970748415222968907705115375770083098382039283746326427213779150985486593858719974575337028092892846615076461370740366066549165584234259006969126940312446686789176425641034247993814998084721721427368264781629130377319890568724878799215789162718537355768650677584178607579130697256044385237370603420745182678726723964713425691831368156142590585044174146354051394461553902729860589905402634975336135259712365977136181581710739630322515183585286185638931885865981948062919635344504710699225791512430202771923748075091750315594349300776617278921840886642660850416390120682224286061032428657646638226911312237522418473358999999367021069406675448216552532141627752057267071630495700964630102746311083371621750085969852294903701017312131786749600437498387359484017763837678254984907459997001206871452476738131778224603965854452082945866593007066477819460327007848510334137906719965693695274664575889078726288000103602178771159309792650255067934946754125165832094018291578225656655232073863760327316655912707405736013320267433231663485089101534751113459431541924986848961166872612124254679522264837702972277486175826539194580877499047907927122054309494282720904889840796059754677922331541123189015516023561811527988471315319087753111139709652085673101523166950083877320451701465926414758701694290785024200462886987781611672244340105696560640206454267688750482934122963788305744561637437712663616368399180083277318870203146477233273258830151741085976027383408630595272817445173154815205287030211557726164838337863171303858477447365264444502880976057506275633997107352783095624440700920312394116688601302192014379122233035274236805601243167102943577835859506971070130770726785590971411625135738589983740316101444218746894153594602288772351190724484217226653038754417940707335885630801760892808593694144660911243545104242215809909372285202056529857517242673017374103604359703421656497520584905408809929363048481872048587910257451387534979307459459442808911292749727775275744300069099030742763486332080579160736663899909839046532075780146172169438085224117855413107422201514640677259550114232151569369075420040601531813170276635803002802145623814027096471068578980385876314710926627429610024945717723869096272968223069226325825423602593743162993751028584052450344372479516699200070952216938353197755998207751004529941563535536759272049511264467251498660004045035147016790323828022591401910749965120412125656016114568630019403434705230519617325480859021047773957386465212204724977080102199896070761862464267870622374069500484188766153442633826595277107696134009506137789645564894039437906432858121316876857614492750775588350105959985501267729785354407868139926278646375217585273593683714944858477372404879438813552919895267396834584856757492074485070939926729587004357526221172773550780725813367305910222108599678285816799089967123807747059563851528400392909704084733850510432953985920532524848271549201107628655907588144992006727561302129426192354465448285745103739894844978231273800678586435378467399854578898412154485678728225254474764973767423987114329405412844737655376766673229108014538653043917003987965024357981088860137659410825830830109228366033615142978655217686339981990548874842748680243981024638333355007516018922462886013939797597952943552406155941386169912088656395033904146255805896924881394602016670032378636695149604074166589084193812090171997357076814180941072166895716074026587943963904104131775511839551295066285785987601935890499985364181449116916710339815685438281099272930240233627392905238168969092534667311396943395103978589117719090754300318773682813950329803430402776372860759611383214097186784296024002414421179011654701447066654727279068200331462380266498245285463604513586132915015856327203562247423251595182915556119678882232301483555309654050369386305327778017226888447873399839338654080985614705469360908652947310524855165239371615902237183005963049820347714365264526173733641765859280125665012797891954211528218280429448317499204781708442346172984220188503590271215615876172083622693247393798739699812997747069523413050578177248550811793560934504157110835179723171745705258927775781561760942082447871862635437823404565403628868052528997750520435102733200257375984950141099121173966089563301633790291432236048220134176541980847805135503709533531277095954069992600898405051043045780114746631554974431276133386343646861217699333087590997251662193296200945752952020757413891292522627721925458373138188058255042559127046151549350441651600514774663644750039464084659009888380539085295033691982456653265796395883355725291412507467132371602783124064733757642663839130073848313478987039118532293171382061735158466544206972733956520300006168558587893709065477462649645886598202915793590300682867587718405113723553561847262923422730713365169499769208181026586639549953369097515060560622267516544153598135092196075678987440950868458647689807505606442440278069914480972410840065012004467223681538759413337961335497246503386060045182145597131303820059766628486803824762133367322210705344753035384827464778186624452159430815364935515957239363043182097013794249677773374184645373999055416635060545116949745119423965409820506179152013336300472950296449484062771100958397894057157230911811583932798531143759326863543743035066234688463883560524945222212602906881463866178712771212349061932616770638237809380638138111893329935528984703594035810614998625654082218400793689926436451740347100038632459572430400937744719891771382308183484104542045991099240273436152290046963714274334693799576716718349429908821126962047970443213752641232775942916309994542411651661108164380285220167665207402046422829200180634673302797316784258949578514466725151492051849838265230426905937464242392048554034597583293494513778305758017273581841496305934424327437565764218520773782797832819826149941826429720931661633481773437703273554753207591222314784857350002204534394163393798437095754467506639811389625346973926987962051784173357983168471919226924699430932619620313706644472360666803181566737206724508187219828860114548267500795846363466870349725257186159887645530893688627676463850846581843537641663032729220395954615581900234852199519023697254736623118127516771220213768357858180209208051158514143778652169780243217164117887971486552483158664896826202326577179489208790287141673358878996589839093190417761168615625025216877721878092762635814512839894010894594700662207994059201685903972629809735104143714410940636907680151614274873776117768575136763780235542436223136115728246470498518774752695078083622170880060680483548483824164851128554543949741862418582290982296623377931233905239956584589265164081121402876763658394216495819371515064513219609611829904469707772825070222200626997727442886988700163945979560983779283819338127905743125652232831905810422307989789458193854554503930565624452831580021523918410277339002255273877262934973111991122350946493395155242737105985203645152530167265840367880431765120002807626584024460440909019841410810864648018757362815488683792340743930322804734511714155537235694501187636181942408038987402867100928217870737530055876446973607901305618129886370309314953280769846475271399154037149635976651417530143120463364711809066260488509766558860715740387627048496591809228815863182001897514763252788125196493686616968972741428812614822874539739264189993337718955232893284026155183164366166840189956410444902559825532226371164311557075823598319955839255232602654539957187878729302104115916940360396072547524438359307129070498625320477836922407278157066463044887347298042862994763948177468809679161138912679362169723658837487782716665408051971267804749310911952959685208077701356344265675889356708816279717981829447157430463205892759727238669210896764270696133901813649067964095641810449191547494232249513911510775857418393950613844655141334359944867701743481154453255289306806551564646749013585969517001693199827095297748718219928772150016518107952894726640403104140514343590878163412279844777971490496635800498785088915488730729042889147911381513524056868806786293958429614329991268184321469153319386614784773962535332811030527777712190407232935164310576207888749267810597142304096864741147121822896165357404161376017880433962505585827578321270467953571624974258448358714511585795644175364280329833270616872467823598650487768977997753340937674534282132744487798203294424577378179222803599159388431844911482282898356909447389681738408291392065667370924872848947370053720687453594681834782844222228245932922228201248315785355998726895653197330748802011160307851646883893658350554126875179758890301361478650105253962963642973607846193553253070831061514496244193280437232504418135587777035437030542003618640505901638270507215908086607664043742882530549035430495112499512067936948746382184407768067131734823182946921999379685707522671448338558592296375292724750801129358729377152754270100759979285404172247219138911536094011478818117686284965636931148676592421458212147672338646790685411933489051637915451470564796342025694394587760242396240823328493271681380755913488318252860139093379062356696057511836808296726737017413727984138129430579646280133170275788281237639487588420629224958692128460091489535714711491576617930893281210649079147079576540271873669990092810188776641494952130821190887067739264759772089517381149385717085261509578485404183033649417001311961668496250458785382163355828756862078648410395764171865232564632580274584781821403787334662286443011825260818024724830814691661216138475235261704453077205850640371722534246144938429991787945630719600291874204942484843057724202728604434166177021090854135859702178077442458244928924294095510697851996680793075071304468705975430134363657918135733255185705624859805092458399470745859698833914392290021358103819281515430105213483497134978920776003098732051925837542869878581382330562876120486911867122190238978533379468444713744308618969420511909063015445556917007433779353800867288954793443377761757729227714712772161137695559933212882663485704275041617473795226029785737084633568663972778440458557535145681080182376245013862302754019174189597754495621514745684507716473771881429653511654708617980349956506317054167111147637802113687109230191394719471249847061232375899276765140806749646752928321467895698078530016207901533479728307816782000108265184333540231716584286317110278108813199988936108408968086730141518430479933261386489413649488818710232555064752541055646177240346234104778590620376509169513949043051650718341779761389959872171933337500434047002233987542338104594031300656061896439225067216853711891857285586451517364422309160538652741038076021648356380418707099565098988412731357082773929731404515543209973528624741910226831451446169967442537154155513657281977651682415281113044249427114832539931554303320610804481308291388185581306633077096150694484204047706237729225769229303739716489444761428497318843715730329106712337320390208683351750377466331331541325600796153480020515988105595834840444804044664690145196861081300559635851249729332512658598620783640728613755271393139645700277470137996607470988708231609874029173274820805525659346397453481530988332689859769541730924066646918583301308481299964584140083644656532427924140490117856793252170542879989906922372591140241450376545788986410563768291262018228956460395438860011411638218718092966902967164586656490582953943646309597784196420962711096092244197577833829928423815913062215239818952287224360103838631033904180057595082504818756966983762302573394986677378859745590719940695581178012831333336813051510005854862251414827438397971589739041752408183791083759116259789047797586455426746514566580619493185693524483602089761171919876553296690440149266865230090629494327912643113850356752698622915929866140897338645802770715505361318562255085905218039992627776338817036928141831643608562611342573364943368163662261819087916029163100213752109986789372231080075308996045597083709313174490640659775215018634490668296800986404305833917752593571928079796613263175915889394141276595797996383030841867188800233633656624671384222282834879076275199213906731655698248481945706117757843527215066449805780599163911080689740121056454737448914604072440917836268710278688192397897354686053641065768484682359695721174513823637914058666615436166033353257549232804178002847759274050168643727620512325686185276953446410819619664957222178684427251238129474429266852838228278804614109380884706438630964596082005877792589122084511028007093731142049608796902325487816976808601454788990144607589085602842795948591006432879578561746695285796808619866591519060057491133662096056654833400795278932865227006387647990340625310239584986542148011075326032983132048543941408453922515106551766510293585752260982172332483842588287735575469672682240406256399637208258362191865763987415355891646442489768189351868598388063562772812736963478889297117591175605314440067699740193666422912950092348090518717994571668328861460821607397219268847581625877835397502397897114678828962221233823595750921045728962191988638504014108753147799107049831021104889180930577872593054792456764216304649778993575434929800978778649599254078514199371446381710442795762637385935585238471432308985418964441396183968332696325672851553834411616449572954817855439643454824659047450021838432170428079140241893414783869810984686477362202429093591804798749060475832180739607606595963328788519056267448760138878911455408052842118342532410170981491050574468932175932566880051167243312397068506052804366700776306983716325842253705330326764047191834383887704891439677467178914287218689795717579290569919487160317351078373051087753904026749165156774741127221185363752993404398156301592825990455795403403497459405643790540074870287672530346681388812508412126383308172675378789980695070188362061348240319669578074458868903240017318778928249777822307832343891306247182262612079080560172262631297954576447582801447543693236911190108249607847207358856952345466478458628500802627066312790755898659824410688874814146823936062954103337535426367888646769531475276943225453407750747432577235231008453670976648204858803611200709136780428317716819765409947390327282814685035036304361734021871853829227521828332027751361423723825938431886102098658434490778356183756170592307026030039197107097604036992220556485817902381896109204050693823436454989240946121491571264008871004211052677137766474289427246087529460680787305371397344071140539793184014111534466176806282729682059465986423247622210476466112716728733262156852489836417760829216844216911259690814817412495251443787387340047075078613004018417879080007003666419484173542876990931892249983067897373851973928336063159395741111987425612505838839690270715961644128349582317882383251765151086362344139627249985800444867012259267514936809425341948395391755067122709685432576770110591598709471056563226879217958304113167401176304713836172592180222706686875373362148483600674117888882414341352126610709608355178726926030137849058867627082804829430674336753671059837512700066860201079956129362979861506525470647431037687985412389165266209359975435622446538795933687311846391677874625219982785908784496314439356681316929892137738412882845536381170145005104547016792961913517720164389993921800483790375049659545073128388343099340046648724854722222095114841173237424806681856215253611136693154842094983928037000612519576826797062887475519653512791375251821184978546342389253650119916272475005131730652579522815861306957695343800697910450977163383677169371985169771777266959703234968806304814383579162746525687902180309091439868356738306354599663164424577016995605494942470591303157461976481011685659024995753410474845732089465745698657851842549435363265483137396501856093998493857713250698129051647744731441094715322389351208908261576600190934589301112256676994753255032760109527501334023595812693820426159083246594386091077432632802661562811000096016953860740003951268538921139955612572218708148579658518008791487330941890710898210865783902027376949686933036021858147725691458170069245011365330868914451206383625744253348328286524380429358318669948874570317385781159294345068621404252973903452875375955808540955745749720105561773364360479945842821910135000175680788996179422457853653062328606252456053370331374828313571477297310254031751263711698571267377244382344512974443636463655222292756216831131856786245771732251265631011570310949567052002775023671015271722223172996647783509934441680433332498707166062459022250635114964759271032615757630405174531306496213082284360088972263990698359655780104446592156513951206557929040628948112403041660000673832702143681632537633045892828004596384978246390475070425714613739235533543020132199761601839199670118393028161982530707501042079955357788744359854843965575536402216515317261021342784716347570098030095241426113988932061821356053438530584962358212371952331564334942205450001068745481961998188388177111430078811415110325523630135263003571145476588732304996443479816735702472811233222761143303377625757812863271239284759968445057334133021609983322409893026794855450615671208844176932320503789751913637303864564218499275453751398717529765616219063968801584952735166689795270369890362513296739270393140085906394609812977824205827876279454105932862573648891601600894866157660765082935152468124414447828388075630379873329015777441328361303156015822363509065489435543259460329231144872442980114349628031581802207508725110376804284490404626110459602389760086086008844516063832486166925773075559614544446029053152090013870525141838352255203146858961649151189871747011055319469220046587531603266809303295157699819929907922259668299404029048848400737586340626947506878802286294124340650098276366027677732568570380930737891772663317550014514931153802216755300958037247363775198127212625182419023227947842100274128851596041462601515123729309865675266912633697220221942461779725614204445869145858332964712075735666393603847717542907585391976101583914644676051916398031904309730405784734698967639722002171927009628583875215550952940140891366658345502354169933803138872022168688343773958141720651175662898868172183337968956832865264808449708191628769538981162391088962789716230809057179031675202488384973607653977467887272666620592627130659183533167620813137901794959772607234808459684124338548396756247936169007390225350916785678191345658163348584333896600664521155927042217618720039522886705659974643910291078250907416029352880498792618045292782678316768734819744926332812252033687793547449931773371059208821324557613067315391653007916793011431475761675604595179109014878900598231377651882895097613362402356969524499269355328782505661675876099070391961553673668541707884100451827232720996525282302534550334318145534205042688475067052135696176705315774910603445621350686934212361218045506921386028148364679496798802179421377572524037570501762922207210408560427410738316651455508950594976301833889354795707689888292304306903928098445534853896485823699502189402934762663534272359524231004777579195280391136159049066507559403436105494013701764254207401683478341467723636280226745020960339576489434799466316865117096120082611418028823532303787775100261760497201488170981584237604192607290439479095973982223423828808986246071069757649964156868679968415598678643256111426815338444276667018508098413795730646301465753623188327940151783475740618328976614602901368705887056467519947033493475064155456118431412424076887298794169739559079382099073163509952129679643555881015557261052750195770924869196300310448686757243191124814602569086316255283570135203344211187396079800857991604559759575410926091030683125989685042146228878584785215964768408811796488238749532017308745270945619246720436030819367802022900968052019633367978151354398694606073053383492628403245067277443987764675352207666099757107506402769554566792396047740217355303153927385982877762775880182741761376364736891339441541269482579769332712965776190877033783364300710187754917330548650897887622441832039412692155264142110940528958201281849964581536592786831574247500328067522013704881771755196688057052604870057049393799333452093380954095565054477431463969387634945356205979258944722358236629680993717639549447348424777568469549922364199431979306908816984719736866475121697961612034828636528640961406584865262114583830410670987201741112652516487296168052114825081663330273458526675049376869481882455365020656044688920179857301911816436914340212608119454699157403324982586221938237117369813975293447522643064471233572263702684693456788452062506518903422149554665205385883513167684762261457677933393659663906053375563109359028996131126423229831514132140687266289896674778055634882739943807935355060093906379184127780726002153990988709927591393608456805476222978450889842161628895827905130765341241770640702792863116082337762334880321814374635763834781852852351735414316624539315881607624996703271960624803896947857987540389400318472046497282482667033629872474313902550438027902137625089445716416989255916564422432228828026892476198202894901156916962562223378315883299797245531300169344908687027514006079172779447531710731208555417193156317855846903122016005873819895889242471246066404747336647375762325899264546596752340699419933084866768628556060644668711538027687400584643127225154727760200747152646401195677231151827175728830295145271240004034758326436652020993091614660997086837947916661787003486825943219510306672850266312776337513445481168483100895443392486666316973391331849325776707619536373789470576541678127025544196204544227964560111511319815388743552428038222277285900152080690180541273699847625828268993013556248145049176512249879291376410948164158039363955195117994722012951023584341366307105057216396072751448533811386905217451003183347874050464369404267589282180869601001815489594326530452161203135008109784186385742307734359863376178010339406355260180916745746445653439648589356730576765228085719792408762549024312994369371973754951006152035554503359257674496414654590844983498858973363209243840133249979479790796701361270212554570058010320115077302871771718896941258725827071426440225666339729908215167795706124406457369136953408768845032685155719726206384997063577962081696402578143210640453182074555287595340353439947974723361410429465875897767855657256827698672325612507359429566446347754865845789177722156845820166999303431936597459786945124587496749020124806629559261821835684983098168570587367638268195362290830629490838177378792603384897086884620682362171561142426514598196288596307861336453885828832589282488162511633154269325203980300225022509140588434392724956752650932367866079553419281113377184855179353880901873583216813212206835003868312892299193770603274982350256676571790144056619581546143284375764201011399839634706209061370784604426617481372183506800794018628370817136262824874131201275529771107278509326708470816365528527361291056851788100345528215239918363740316364321546382170473451057315681851035678582080016778012529766870878224697590767948418599560872466478809373610360237921790709266286164147548366594559204657080617029426252415967325437119908686222906705525436939975822931528113727387956854019177100563189016703160344504874579797783296294488704445381476130882338408268566754009464725800340585699107113760092118852091353595853719953311476694839343104312532522116756375919697333140862996944939115138417576639873550994836457541227236771266970168916909697171390921191283888494913978711352038431053854697785059384453931382891893365325485035464459831907625102968710065152538722631841829283768771895351374100843795102597702315924187773342218168192533856926995462477608795698173211069068075845233380756611185834962237756417690063907345317285212564813835161978477159515263842046861368390210499232215837222069412108131826241966582972982304170159784419135048251576833747318075577087519079013128384536904492070401435587578896665895677028032880619679781918422075671087533583253606853135459036376120260963297323027355589929590339951055359205550605244840557531790662381112371542620821310346732970637013334306315044309357954845086535551839950041236015936081933069433687752870837447870987296487948032580496320273607175155936947207099771801108207833940932810624292921217642256278163049405344576389822117069817905064504941992362134003892408153913562823161460954128938706455562003994740902727908601977447472550151218750799026534092415930911213065209346543933625877690005888536893916241771844741864380766115882529707863348160017203628567481980582954057570024531723547340038453966239683090671869550773459954499980662056960300764997769303985090097221295891954704088200579377752413819515358615150336797452390876034584864701610933699006836662616142875744504118416571027352707930242270098762880838122006444875315818777401367183166562264093166673652244879453988620619257653164702267990642246572869789349982847438913812556029559555787984525512775254859956158461769992803646331847147718749019060071976167636009336296136972145044282481908831918526014589903419638065025240213110480110280347555011377268460383249418130212263279659815810466593056198343745863237785742334342810746273981190739241448577482110148181532522685405332251666204978144501724957946810508862238564490257116850303721521489745725902512652748154792246055746598236217689968664424468092349102064319801019729998467120826519641665059513184701710086351095779252416940323767279461232629673953023045671084023783895240814652190815028844620359039275616766012757613562104284859146567660048838231816228936188136981617079276942539625712993539045751356247702464837834690239959482264928715367133271273839193982760461724431959989295573846050751073497203322331943473485605239467964625912585726598537950123540441097258600598273474266157783489139116631371154211375348028721431602018843232956922054285365054580361622770341142136382535321797416453805120424115317541395918671840131954710938922437144937549896746716330921686217261991288704552018881267314705052446787256077159155678147265841688164509370396124788283541578253651851591620430201768424290526594751596556781963403750712742724418651227234042071002507164444585137148206387373039624144678391852142683126373000181257339896524146016881100124734371135383106771492682802299336199499193264856461326309407601230610594849423567363150827267066070738853557999594795710564573564859597533492732740203670668067158874031868960277942760455806058019901374327160127446569117126022441717806785613106528359244896123832002307013742812916832346909660826225222870530624971693637461383143057107807921945570746990657209117588039527919668019306932746700451369972669116777520040613610550273262891313480599770293414655945436561171197578625013980375247418302331707124176512054357493785071510670777395070806509388335557405183980066620898438548560453035039569890057832498041640161992926222234020172905295333799702767519720625729577811910594701947107918189755288961187870467035085161632500831711124317626201868445256995619211316139239255323064878121936087871847767680524201079578315293040871034008664202720392203017586180345830725056750821117951629109530451784984659204892821413095972481078694614583916664652720062071238524240117146864519814603599882041373162874528885198667676989607033085562066789859302338046872289091843781887407256847157366592434835920306587152151434947341356349382339841734879727875000152389339597690794978062639604533748097264117790527263089241466299599716813801889795270795823698216971596357699197979221112529828245053102090615489303118943252706260043506417224110792376033440114373611005162666413472025868868853000954291088769245982595696422450892123166751450159718450593673462404770038040277547022121837707254701689860466563296989405834197700836283393538129474359021583283689002536626513928082572543881719324029983542473768066476003517768143898643870829482757449625203054715491765956664128938535013267129669712030426422716121339554111487847887869507304984118242462002046172434708510772857725841692349645125863018100402806700138165902788360440090452380213580644918387315190741135143266332452546118838413116463725651896716497925473528073525141827711671106301573257786403874668534329449379471397557428351295814019434231383585546443710032711303213114450660691579033590463622461635524437271481810871283284662847882643902170134683340449666818290222559961429019424745927478189027872554741094803790169161784938106455164236516150293423127942849976765999726195008187784838534729991250583386938078816942675015739048145315965480655753055047787246037889891863706818539418168438426113352875007052757466406535429607583310771714148670270868306019750165223696582945064411663932539229281138690579094724683835236977919494495803876808413513708988901298821503826060411110912572047491982933318425908782472992574369972336563586404493777227120985382635175473064897676120134594364037425906340692931504149849491990704816608926313859996280273995483562021961561258630915182780766618512863638078378183846708288836063125685373603505165945094436126750487189020206139068755923236914420764658475853926732655269603054002710028914215375386635783803036222659108793774463454210797995524472639196614660598443758165552730830563491378118291923654896241170477678514439364017207870864080596539573728188650487004254605934000069687195002801963007824749954176784346814022808687422470460085912451581657086588178372017074664560689456824129615611250883288714377279876287197716893264912697573422894198358419313874271125466432910715653140286965007957778935993518368761351801148055606544493082542967072769891196806615671228853156897796198699026826094889317960788088585501398884635633773797456440292445197381188207358824794104191818164049465908390905241935873804840915588843675318375004250261347963079581640712067644669148951495136863809967607313281767068704163839663171365078238564076296475534155739485466181745008672896219944792644003293246508483747650372989454370328022652615627887107801836763824819644139702305744414644747615836452414888256910220193273134991071546571171613219797046511583304202334463093497947278501706650314100053227931428160929360028696756146101382033522103980579660139378749367729647430690293928960895447236786065902102699549553630610915472604687053727387803990093429220344640292584378630242373203086366663660282862529849956979140746768069644819230894732372280862918535554225977676732776826903675791570424844371302338559278905809229674043905552160671690919098911306925953271643953152616470869862248153131591967015481547568904845689775660020914590454239178623733769439968494231768504073200504444101862827890250468852486314176984902001975954647563188670394708134234306908181099859902056944519101548906761244840026292483530889889921691834236534901118978152598370493803259903280411436756150603992874268541688191901743617066575615356074851209901145642325906090197752173324719131120006623393204438212759175871150478672057966022919220341789242490440317332139058997556097921536303362303328779475957922114894093805972381977341105763681272516422400390829856445489665074429085099981430303288653628071681102713503524128678765491390860818081166291896278319064049159829125901630541271810308857548290327215909815040409928654171438970743631833138702527635798653588806423000671824498769266447704872436111589858021113231393032805258503343141767273303583863758471321680007430104410658774284931599721932294656718569088746712749860109385100128806946330002124780597025979043029918228000166678971378182594763603279348712740091288026836269975056794873279876409559830766032100476819001417171446032281078362194458265257896461865378162687459407455934145270304759545786535769252683295993272796309596104673731116316204628647213216192058064836279578050322233281107001307025351083810476723062990164314181688643480156949725969236438028360379908103913210506759526059538309273680512083672464807803739384882453671497969449383198782175063238370587635652130767423387100405769076335622375821011406924275872135154255495441016763900774160414340287146721798663177843105687589047139158841983956813938613213725428989175781551495508600164565962060733007561173327210840969242092836363010570493593423047920834537776537374807091386847405175010658825372264978163704204282031881183024801335819791331646455588272355086230690454429869582356498711746849529510524396768252350489182935725175768781153723135764285728502602833324209589908001041190438443143896185543194010834708779135967574659376957488618685512270740204357110483992791710778096982264016244100311601714468698109356073293399843001312234967280417812319803255970318773158012765541016868022310624850510939624375164751274148423232429197169035849052774320930383863211725096194527969359586710158351923755538803893478939770031929401429842870680336985279456909056327957408791133447727083501870686426386786991174322075104624201984907465819119403697556340386663558012054313393051829814688239769330686768788087248145876540170386032421272954514404025214715227167578226885990618882904457793004843028300008009225709033506762715165657974493317924751581195079062872134000671747917267352971213070902739734747457052471351089051899611517693801698133809960182378741825243279623131161987966230186831274910102716554490038425179543402711674528450015981224306847096679129031777713441164246667563430945022889682396276800718458011050411287278793118047459449368105279841058752672518393712772760667216000528053360065138948149826264094369332724944921416813894088801766236868566741493528731810638650208019960080474979949342138793029061221606444373934233824331581152175529842408608221227702305714215689102696273939973602122730030106779824854672773355590467542556851233617762625234924859740718029561741213166199734325930840000593120695446810753689353304598062107294739754101526651368142325024497836721412950524861901123348707174846917649755453879308213145244271797058207471544495400175581548548882472812144487105081648314267266372653176881279101204216419736705607719174301288840763760735084881106253107379384167083963449213543722234990924586260079387333083905565673208840460154116067658270352567644068714067489449569799719048957454503715295101134757090883162630569310553924185447500396683160773559260901954511063855248195089345789082577603077298198677192590567264139264355039296438565153560089478577786458984656532691090420214185559638581275494024176701563324240559983651889933279189726946621836171094401873728880231101452738828684155350733940160682404960579119366224329924562097324818712003128420924032721384540946098916177037124047130236638720838067913213085771391571043788920234937086491518919229501205739466797418941653402556217826824292217415575846283617191916933698275928241469336753292303545961947514087767742012168625988755440466389911588682259018342841149823040035196634654709230814648690418295803720086369986903001521819852582597378627125432183196353548310364621121513382561884116068983401685574272377181370033695969058727965710100022638328162630250430995683381283939446066424542488885223818590400511338954405080702728548910341585286762532866428457249625456942158667192649996988157059778645687202850341482455789000629861120426829782144498508687387121153319007635152067699352851035529556661578958523967133083011446451120125537523023033382495121913685892647874578880882179429384458739994677683080327884843316328562643748690398333948327582132013862609454608756675768692764695054207300641476321099396516186973606965834142463105208446977942735996313590001893347362046854395428783418144695962959432542531814953837127877368273567109204475016209751164183679555189304645068741854201011506197228081754903657894405270602015187754096670500067513578804439612757949977903768125360713592708259681626723537603190496741555646088650409527710513833501148542469700671465206209640019255944002612726381805492360196028979109786080697648879589978842930157493932219172854443884414420701245883321603844425880205431369570115005277842753833441642715831893769170716639194413053029872728370384745199829554114264137504624944841157323911266031619247686636177077797806242434647125054107115409624763463795274810306216478555434990670903198614374397021240697043467985801192119833916799525441680396439501654883026433963314617481914870317072491256343221819741273852768891206820405973441244846639979553141499015337903091267150298785303447397876798788476842470730382330663384533206473274794539904475890512574751074237106011866529110008405547891085825645737991359708245644711034138871067357395039705112342685696932455946879529333524703092082903202288495051223260586530224811800058915615372005386070480866800369711289622321006375848537964633340397141246563441464738059117276190460283346098881433826451869847100286651790081401770854959640544149975086223162560892500465099328191786477923235073982796247044252020591973463080703643171562576910678078347859319569751833415685733600771050300739606861111589070803635060407546181888767807439903278789162426645945431989413075681162312990277755277283856048412328778919105656871260580884834242886820736715558604975532300182550274073160335963679163893428143828901779861964543629408960160972370153070597939020886797420954574050404137238065094731854982882891149335405385509272370992344182880054420590258276163882072716815170299151523840794941153665252460016154116876545439968000167824170354519477175108267669281545661880232620577646471754102067817321242270143565251218035502164528730709745417217545446413639837971957698738970238056208033210876178285602071792621556197326931690401491634920610067376173856577203714503704067314515436491054527698240256052072536528658125160341790411261809139412839763858422227201552474459904799143857593288807673209882217976382945076014672687776237818072324585072679230668117282805969915671004292873929459216540287208530718612956518890885618901255184765292615670413527119643708230950706882123023872643841328071660476078192572984930214657956419761907436508554820580180454701101235401183358315456810728624960443431970483000918492241348868971346724109790558300895060739229218007503644746770301070576145431061260384381316296913835731343909451033662506184757899045995061259281200842733259249452106648986523864445914616752598432173072366936472380192956707476053327773785041241942687557176017467851028001488826940845462159031251202020267365588979570789437498156743665071148027360675863955304433938735238315082057708628805976476263640605515299776807608805846656309811249811390233850692040179501833405860019124872403806801161186253644927774804576291474468142737262474599172190732934711552534232325319851319695439258177205903267959539603265236387946792557543970520015848330781567170699626934268544237585992454472585581834213448328184047894295325293467320608069862070546206888607945079918039958715790027204356589061483005380590548376123945951375438350800635382461749743358858225181334461529176460893393003168239332695370491176926964469362407289391643658773089292380506986884610270078812063050146296223713179505379455925023602027800618211151904796993932320333419549746918590384781585720273824842522197483718942238606194112738797523778831184569718520756203761638032311227163516050692756552222997697225763894876547635250243777072980987451680088516277255488042295800189926764964526377608675993974816422497665907991858350462316905576383556568543509857404337873897790729258657064481250143617753909100009573495423276184345369024342802423129795400540757451009127060186102744527223522645002743983533876669710347068175533906462129879695115422781277734896253800229081059224917797599053810717574972152171240114840230007681171700255224015802514361288380624575564586366907810594126377724441862176386668990766642361462988499035151310583742791208455106856018504138766430473885908306731673858752035055001211678379517502980090439375151753666635394094072410734094132192600229492348197666842272458239443078213701521043534944730983234300173205610213835119784785718043345045887026396893769323211966853677401837098308064149358344401873173065278527672006600614393627358232024440021492770177125981068153638282612604949830953820374457263517525410935053913725955138357307623789072528360629598001920337412743235069347100373279581061012824731382297308963489090545247839311793595517665207771783140563988483243429838558217693600437158191604626862207722274997689682589719981967560314169987803561600555950924762940895398576993587980102659536990324362579229662713707641177927095819972194661680036510748250266169005805714858581252463462254218239632152921709194062852412733304962726189681420497461257564089832510725097973874619893872627190545196449021304347376767433059876769941602296349028824000331397456352611171771315026835846471070202953340940426291472121379700234584488329525326220374847918227315686760430837110413935922316908150541712971461839941552092872217689347039336764129205114352798837462505505009875454116267969225197383205334832492684549830570836624783395230579931594487124486403582819246206451101023636469112672363340575624294423054826487715342548490264089784319223377697325260511691746310435869673681873527474560387160596846785585305827419227163645557204469982282603200695634841019981034570988163593278642813141435414622389456645491194388614254667197356010921550326290095575403122469903921068690565849157312133758185699511255247036428732821680960787461957115911727034562972664276015732932022680336873161675392388429642997029494126670525537944093777719024996161976326950438610547016973645291778122256736935776747262886314479011510496917739055482602965064251407363489228107011448847846284219586291716407514936131127384555435195936550226426786319907380382412120715084028945137852564959016041383237900339886514453892815405139808851812501693912422102127046266646731311691696442516288070363997963832405766984579419351002870853301096046649206078747948333620709862847752315257458789391785477071166631223979074958142103295730460570318624186910695965368339724850851933322069911409641312241054765408706692197586377336410182082670471914527637322164629995460500988416963729795681815818256554580789285312362802344915790829849309433706380185816689497654475451762082731758633172539934373279709212568924328924346022352410069671695697023788680412925625815064233175367342830130906983133355211813044858817341376012611805647566098666708373127598032305505754479443121365198299080681774809959416736895006895871193064967937858905892790567890852488436141798988939550456371915783997108203565840676639806927574051578418571095937736419152353370876070403137422450024322965878324207809334853165365139145114648217927872666125616572971410594576827122353324458558984700587070958517366355132755338019220987725800595267620136868687276637838906544952400982134539593699284237213919697597270521655132604578486212939693976943078940415292731113148639729861500650652094925930829146103514409949365213239506591825777475076713365744396318240169171281959012594521267371453183589478992899564941362202505992399369414510553785396963102336035436873838313800314691007860850845686677745983849910601171951331349031981370710311885718209307151661315733510027689269045227556399281762293085252469237639343123052642352864306703265813557087746729235995868510336249382412839678046812399648854416288150256327397030309178276684204332159446876710480174185233803175127044478628503825255061807906070460032446625077036474904491517250521119702551884286046641186726615747853535660118042444532563899895596975683535525459448981719117019955556422032518577855718296211943440997436524656288992150545101800649640491297832968671277497374696553273364961054833595673973073805568235582522604940856999616316035676076021688749634911785151223908596289129988174883945891950779111653235031764056419338163881468940844712979242722325315920366614944342976254252319897305237806096667689343578732744187254477002429634954424090372141578795390024636461107828214869591366851255318185714449332854178978563297764580293404827092395508678136774704184797016508519004799957265871774917861005935730444192216295885962135430848663742475179554515908511136995191470889964099652924539547274593762183356152927315310583674200752511308317953826196468595632606729629376554924489657670541714260522746456954203952592974283437304906619032577696468883281099256551122416688296617755357154174478235226424456020172503903948324704776637492933376657038284896838031160098388333592016644617329492354792163678098630653200827662988794971877996784821106748804581431725130407110173590071171092247913928377240000822292495135245915949771803522951680159707094161513696766608922051414224424337094961201712397670877732291445288856449313132240873985890405055253742198639145708597231781071925651136248794427443015060373028705633299577202812754150232598191966330993846949281779240186101935680860901784988720524366311078152772871328261824330995530566748794735659692304773108971988651229167275400069263621651184061912049192827102804807779907996847816868231074508614357390249853017606403841044067199029579916466808223239686930993293596506042995010643629844470549098394084061387115067207275274488589043959205252642829202766655892577956236947975336949919395697777542622780716627708167152001244606719507535229420362019457664112804383510474845601789181802192496724762526626392564366445604633954230054274185845756483154586736314850616415850648254104384091654785900640811681736155748827961502173824229445924216992912324675005501137896161339996477498197181162972236490948152197583749719363239244446433815662631850458184279890172567478673503556291616098166032007973946111851283899959175599003803849099270635669602914850356798060220394463001766049069722944763459345741558290399937335491608238661233594326912296598354282063287092432092926611923796102064037130162464561024696507357273878265019032316729433782478435734164405178552272799805304563063481069143854782877532094322472962321190970887745428382285421637631486648893120120414187952086598877258857561965733863660222800426027142574807829383856576248717133117846570881023111065485748310302755888519071401774287097761455160872453842723876799354195479638958751134099591385541695700043959834942993458238775636753336353958814691124806173346235855847149895371370038756894071195542398414621781386668237935810221559606854257673457468943052221492723545680067314046905707648171255488183791140762250363674578080471789249519829782753017624562247553361005313929628912599951158457780818941317274665550897969834800109075112287335521958302749968147367632390114909405752307211097156025978355790929121374762592126478909126369333952736841691823839648987258636141726203495994536357378201613301155407837307386331405188526761638345864867914523045382956105660564780122008423063126704375294813537477345857662246256899741735348150028837031892742186218881536775964307444697910966495938907182901556769807078859198273025592524208184391124850239599273202395789690231150339135905528409042679518238644539831373437936676319156625296593992609611695190637624606485053636031239991544123241211440391817472524377211711721080206070567213151161433895194931216292998121195621970256106480175087714173294314244677280396047165475003643417100566920795370902739675540383548435005861736992494110605353290982827469804148281767398697731013025091773256837593395034414240975397693390084617528083270814756955219652727154201186632340018484782462174585856030695342021547944691312427019840897926671212769318076195388592602093501049402067795017541570890875947263135229841734854090794565776173651982928813333107391475284150809534099603546877867689508642665049982604018460271858179445928109249035408161454555585701958648650142801470975500833982114196856344287915635715610265433862065428666286467555978896930894875772603225279996716311233346888672253538154349914895858063875139770291023300294628438899709261844256590723537418150312307610861102486173681821396191115436575540740750338999271664243332968132048977640929910511667394024201880129062727354601491643569624736021837880738961446427940231100174150640483384488988371193018282444325150280133398511390915908075125598174938875384708208896462991885294958789653519658103012014918221953391452418769083359717552257780400790184123920307065627984663744749956223220413471480560039987316026398122387084887494481557228963113851067772307294340422948621287873706469616672889873845559084779605535636148982861456786628173646788586052935094427536748644861084440909848471586458214442955308595688977970494949468168827082370239088985508761845279775196337810194345431724263030076067094095082372983497364522318734125554529621574025549167986226252768170304953274130692238892996306920357584366894274248158709958323274468101103381767279551886791731807733458121672509814183230076126985126586868202921679027690720715168451681676212653913424745268670383969250456194969212635025951541919840563177774809820407753957492752582696107888093257244708895525035384265204331569212132298413703270096045673219569838295623958140593930410913925237107277447564422556990593204353916399829061547752885865710397770605163221165427627456991918564475566864721795892556733029505977099331906758026186433865552464023245460263767220726430990730385142480694132165725259575786169134375695017322169223273506705778391609590274857270791045987955476377725852564528172132205472492119918219760589605924308390286348965229320603097510000246033235948154145604495421554057955475672248727446017199679469599980287751538891483797556389471256110191106261122449316199483030081749333343871290484779459209886034645454332564944979993380701675458491206519052281075224093390423620813655305236968045779845306328485172309559989110008210498530464691180552533611695652772440819160808692228923610610299188981990518395786557846278357421301530540487745031010610716245482448501899122831590035632947634174607702179654431606744631962322447899145291416031455712543799191379486707613667643934009281299964792527084112032936945782668552916784647587133433105544049380059610845463288308231292393279356481610995316264559425129023116437516690361488733382235822920269269587340515306621500954723399435280229456548001606376318152056562565478142126423843758648699817553725015421323998789714485247631755490762537157629355232876877285978742409245977602065764568248467937980270089344419169621654212623992621621086186734487098903700823880725053776973631820181527885287244683354205220763686451077781770214319102791832056566459101794701089107890701471249165198362858313676183029089920755252945636121338692449779718989591640128573936238795447377170999524497018918434327265695425290244927895824621756585080859056049859109019323693897629314597078641314719984902262729831866345056010808124527363265256767612204903513694021986559092782645173782292179583284289186058556918494432927527759870549122784616958668382392763319673058693108033267656854824843002836086447948412663805260652953562508886812003548796347142935659858915926322133068528579620132994605185369690107178359898535813361010343582636420679976429702350458956478282686775967933912541219077407356136316428384808038401349636893566974158534823152714199868647394802361230431953206675621903581111847664331117644131726786228472368296041718523159572198362046684813114093627199167315747356555943767601404899064571592881299957934009823752763331510071275982594240854348367609717695533873028780806028261071338377740988369580006179314708697744532664745718420664584963683290961885039612313603597813572609317217920685102135800241150047957341630874420346506685381429310941501178168416435472913393617777309726262403476181872796753965606965480358735042359639490892455487254544562078027989392882807977762737391358669097519496594443421542625284656727113640035017947734635230008435316835504043051615577468394321918591380812114113686834724644679554755640962011045400696984767100216512151218288475015516043039187113078985562222832994125846240951534533174764038927610216003238390152146303125878974536509395750899530233854756162190358916619532388128131875158762378975400564263505143712553709769283622159422320372671480326548455258356483932354637498337682502377938446077462811873960221852967422208745498074152075998990334878879110192053623695030422969603823268260208699772260478755720456852677424354910745297563851143602419901590795178716884499848634416571407866045925832885479759921828178526636683895005487058445746078614428876839491531426400877856565263606594237873317660371838514618277225931360142172673720746593377157511173332933648683838794487945497462479238113612167551600555470320607519309193442618894710748688075882253239631217934115460970582564778726023141772255642078782396513912872222891908332643731074076861041403147841526715634061649857373092171408313162828965221471754393840764733208242691226001534075285191669992159102539432744031624132529640026304906693980842377579075728653404732394073216906825611118423342278825647599088948525992787902759139089859049435904072246838163999927963711209209985169214029103239231287146392129841436355906153496099580687663068289353296132823577847210448190122290380978552534438242886338727602583600155304575276929685138933614810628327440385105550606927841937657366519660489883648929655631542182211884520179025996600471563144285371814059691177092029349716386637715348077871806859267566819087532398066648285857827715891527219014910494959177701457672377986952190002360761731226334758137459798488602984069513528265723542278741473468026776684414290536013158799943084798499111672703913866742216287277938364461740948212830415820866221075006280949890070066016523622356783588603287782713891372636435178795431467906808607359072844550690221025296836430188311860150386134285504801183358742785196342627290934722612705931889714143501275537197455363835107023031860796054077085322331381042943907197513980862951164247027656116392391480561990821082523555081267093183281872344769837951498159093502741034185147740775784946776345926709603045548272430724053451518667838738013744814897362627987924389224954548832397591243849353809541115365039975712107931838487874063528191873220137658635746738855816496324881942524844722686601546937899946970812505587636081834983568944250898410251215306690955150000323534712877573750590461965762200177773965174503456182927207256634021312676980697082024444204999819796590174128303236186552266745011285361490915049277130870048127866465058889222364467345111766846964100229766455816507066908049167939837032985238650131005091512546838499487170500539642873768551515569137078663081188161470607058254265410170189256706706272879068640698748740815996844673193368171686047723871213657263509051580989781741143569765933259518177843619345906303757053851676400718115543074027635022164324492638912050037249537711394987028237117645943410515574502324603301111749341939967549802899079938108985320816848942595548461919463391164462133525113387899022110368544955878409053894065435957044750124923695969096821600424531224244047043152272811769552736069747871449862771348583993473808070355760798221251095328533041951547881126537362618257196559477359927005403565445832607082724064854186613277541354465805922283066250168487167426095268178752514379827320279809026382157856810028936405673014079068043683840088572200326711741002874200628876195785532464671386493120080707164104490352932294049196475912541784332104528957536903556342141745447638456151649012624093649611138634984582449561544724496294300336868560057475261186547630662299283095181419796818013257311212267744871604357167106543388739743510306996905980948495916811477163819007705887000083517897101891545686993219567352137259239038643536214506318962535909582177022952920368361195685823149010956421251974898235230180924485566259818969541255513774532129318800401422234452697945800008851512691603443631123665165964916335355999385598885708768298283472882567869188409238474784612066370710673767962806229931769429816633451596270792847877137084990345392306442869005647149485940892164754780189460964372076506869792372837052289717113490385613766770653341038465748732712199755365400468048100514318816352600379297067370671746462330828222913289267027293323335594694899450075652133054505442921175585650636862381379446483557980556000905686511507234922374207306624283024328302380327221338232514961851839315095618080571895794594202910565617664802500466432020127226681503090081882027014295684114268479519060878963918462752160109013421116293670567608605951028970837419022634746175666882660524673942063825119073790909535736110125286655474549633903250930486182921697992759030143464530587234285796902509171367473317459737551881162239107533794819769311836275767243315287213656876281548909447159409507695713607025612630927753668950157227093427511354312659536955190145385917240198236342125264936106635993161447685880758751070426296023426433769589092929658417303304573606544571056085004925935182536417837711020538385259350765086938063865552339471393726951550808188936369772209482318458345346814399319864546829020193868767411469875033678801658875836656664632972527255047543854578041546234453464102115036748062571495063866830246955746485694234516851734211115242045504462208193786130917615990655163019130395488647782401747733609044906519518966986117747260883802595887695023589780122375276553613791245770579062858480324353384072105464212221063842394651346139652926442445006047837271842449220986845730340517079458228788740154634578857314219242922547842993555033858488346145730329338175712557701449774800756892080315656682486405766566629968281450337761175870859289449411978064749851681203370135358246322904275170289297391383133773614647517300214874071644176758571491042781100066863426955473030591067087951900589845451795965500184486488132035208432959489878791464410155315803751187175834544132620996313811857472742266503680409616730439084026518948663790087496661583557365972011632248242187122516271422665414405416421575786202934564544029715052005918773307084363287923451815565741788506865469952995110644825853363756923127058367561099183343228885942682861003288556397674924824448574337730180947699310478036486406597628563277650963621367605460388186941967203885460487921321754344808939308998358061779906337287035792918102081345261848416156137325668294688161999501717706871058419656090926554714893103623085073529148366051434948967757637594516376983527973047479964760901230151549076744839798584236618636089068714179067633406704618128957641323596041307200910720938599043403152356744767532798592300916261859654323682904650319429679782515244288678713373776367882153666809749431528434455139162644290127541394236871439844102181483302542858952432007217399250119372554211603040061116473995588686323097201550908786326358939360688631743497214884911689660095404282015133416275633886367257856264063075504199206234358378377678957001840278540793781352691307483070113059706559797120473564341397747376740193597250878024895002419843656934625293141429049584537742313767839627704015696361768387146761389198855320202084742603517278814677074216784100148572462233639216429711643818356616828529612242513435809714184507326303526431415961604576293409968483528562761719136242790954645059879349136219197751020213520439278600624216159642088102507626142065199448085210785257556513257965047336755469973555176764018235796845706887838437486583790751074071910418316156729626750931194111690055365818229046249729230655778951742090843542138056854203534067331417045612800944572371748136881433090909318989922821875065740526478460406302793294350386150270825783431302838618502715337652387101685571398428625132239125039298301312748799262768572114768733812337486962464106004516467376434043677488340944776562748624829016031546713925914111219478826632467819482013507832659661740975907705711208414650008854377370380460543043494492264192130403278032446090350003708383186098377812866164626551484218772743610535266000164236515365756858499679118982146632752391896316708915384425346876710922707123822611506930989507754759159353833553518432758199178692328731749771005272454146716164895930802789222494013744461986437030001523023699144377751364922186504313296720933311317500504317249039356723467208779482089079111995734822482617135215467279739963991739103639713338474797208592757900361178035791746358794741434533628605201966666036984021424691001613311866901909529613968601653152640905012693547151833010533297499014773483964393218857367817511544947530976183887697758073503580446703902669781282815709509195423188610212062619248819008772189811810545155354205759809428265203985888910167293058318758997994209300655552963376053915283227553201941837910030712418773107121335987000800356054691751258992683607139257570021229295610871919272726803267598377525105147500645727018906019296997925704950157785770027746549369144793713225660644209146219390047203581469155658735274147093320982567445708102764524274320865506625466591920189657334317879782482484358895978659129363332986644195323480775840413157933124674459249021610034288425167543745938854337001316227318420465761076096799384960337156573796933219298937941551412203544574779949572994706760205113096395529138564354385950995227427461842036425250735565543303009969364381277510710259097014012006235294407497640202750994217357108633426353588808039597141999998532625415121355022473513295900591041709785259220419555514710150248902763910169044037700772904235207260060786685313576767579506747952953638931760018254342021276529505699451863759290479985403755547842234123942960293608052916765382453129977913786306592152130666302900522809053017386179571087758227810205440368858690481373734666122227587584902520875408993907289224296328141517228957704441573665048706025605834918695158114129657378189230317961245599027421006507225007485997548282856616818337974869281952154721691084174610697832075846450666551999708899376568949347123978411337787825863050344688056294552558165883382928414929734490804030474965550440153647501706418257981845231552215668780890521270819307944302035816043401084911508411806227062932053886869954949003876847248442627013502606811221488238545050585830306095176677951330080271640689183917063024794982308808961508187418379426791593806065607257841058277601292827665002773072258007474162413201968680591024326072367408617197297773174586616876100365909248359594212392352745964163825587937700287947047877248296954400387263257974410988431656924226813067339046997275070992168453363529678022845633396042728011944660781479362356166433452090215413021419712015309537731136028471052571029285210809458288873290676505361592071788522413959268963713324174812831453784361051711569942608764859111429602621476411336031548339501500515517844897814498219319664105139617545780382186295991759820210560205658613890184466785297305383589046941450277053376743935991031630761136511827803812155573369199327849423845779717264527624644721927684451721040337242875298696159867264127009409382010534160996984034021815576006806710887702598362615892186006163017822540387248073528531395597257682269462962642946788571135672717596758970845217338265407914731200125420496079648738068283874909167121993402545286719157358152913946474645552820942700209217651494588928631299068578354237555532243949136532464433853812969045181995823262198979991621906463854242259763457983788913193315790402921351783165764165814287674067567058573888570762131351867122774005552003896068115673051461678432078199520301682413820336205736369165769331373568865517781165788929906799285771825198427444747022880510915044387522635829601397771606657069357227324852613491048608453620704554026571321953895163065263932039275721238331485935749946862280967765104763028906201750387368194086718691129164823663129417696602844113724193220960702190215664703664349540971342029600963990654778078939627145817929525354218167892261135352953160623056889059145547554805893999770973784256459478139040879650011510753593360251795436910402960806564211507796017190217110261955473672122950822198573428684999507834004419695004044249215991049103168688295802933831804546603335276762404397935507960981242178402922786345776218315983427915086766462496937397574994865142285261744781236849491160961919381830393758841631111561215755413430510575960075474188154813308070639451213435969566136352047590871957332315659150077730955842558111490366820161840216086927369034731176049904489039807294228370105492782925288341702637575123639771551935402255281586689455456838397205076298737994869335560689033569210193365018710434979257417679928069901742090069506527469412845268663914909096829851486626669477237567117367335197386865097955162693817713282069247179743945250697961214793485153692627471800141416618978417544560237988420105684498782291749099444124805423672112252556335586020489490787194234521083591732702475597117866344858835230869002751036410031828915407885589909176313032842193207358102482669814010656404871499899625060377901974781861773267259628433457185917726304685579566461106133162120338503620741859073912077751375844870380976426307068173708491515304917926796475729278900175440808511863966720669729735448116576863274791381568493359055056227266854131962217465142802250274689000976935427338273976903938158691921347109254391312400277644946329590941794041266207064016136772254492899003067606659393374139608448051700392048565657695882944904252455989660317765635380187287345198505583805081782462514300562706109714312794997806650037017981848145607476381762114998822380469210643774340167670956368760168364925348859760643749866580198044674297711787596873508691303641856344366483177982255427409792670198803430533288403734972250469170720979195049459022297151538374461733826805042456758785961876517553466728824869897748497187788723038194410654050664897149309290735021885887547834157019477326186010337351336373898936127830571798250696157857903310947412739819691453316132357869498112424969934171814456122064326308751255359153951663447916172455478598693846389405717665962337217274741102769281857618500255441058609645301824716319649467250515412469997008505743775847092137371186124884928717041632422565809138565850933042986828919098256022161678157532129828371676605069310375087751190079970459225184997185215835324404244666910195874866282996147023516257843349369200272196459172335108685927019695120864405541132358385689992441283350123530166348659577358553510887034218036285381336136220507124252514076149181368860482674967980187192901478790215249138065240740514513648074552626700317654577104758002459223043153084517491972371472426203765522881877863814117889292194422938237695883570475672912809759566743698072258891108135291272495208033660294648274849384480999623096847810179145070679232159991182855398257943995011582582937657934035858731995451638541803402365161939810219126161048579680294742167684450021884893790677118020565057002545328277324325081185023018141029210356008951061956812717694197517320954756945028624227684571931487619182875125029295396015109750048776630392247419388738504985714479559862798290753741940000024680307180317234980327938390470486293165879129522008021108360278152306902185974623487432796964506177583747878567898574321740571342787077625044713237113262314358608668789467011809691206662223254018918033684338657170482897356211651966834896421586534363563899950241404126294153844388581697394649251223126354948863453110621035792763103902799237159967574437668109520797969537126148431910830130917956531717003993610741297955896201680170951861790594084719841789419290290469643516165680523661384481697410118276451296151179952317807383891240449666798268926312708398675323526271150072252341955546261579621488649001718275755007910166875955159861286163866868875173971489930862086736232645395014496834779418499376128660105585227559251440112789967875868942036390642460343276720291686475327122371658821609805809835609401384834736068688153273756492677185893356782683569269247525475823830399943471596980805441132143889256187208300350475474735716691229991169752365043197438183132697677684892312285842889742101007796005578570855809878910698718301258260790816755445627692756206686583938665815711783014134101262442557322367913472826549117802024303564453278001568511977973130266078070817300033875120167883224200087052650648919291935748296711538552798309411910403137475144117157544500144873285769884164731827314164975704004387273027197889993153171215593964572787614284349108283436047868281353340144189276814565023836559741235922339437380632009458563403779046421547389452341895390951087117901861533674820598458033397814623113871319664598884043250671439831831652716374468540298643971928591209087935219132702828343896326433760410503917020682354694335502312308724106342463921883978733012865624484269208167928545193941638274004896441828497152007470279109033943384158730289610325214592455613355100078328089703558634346669033218803315382404774463734979628305374599422637556731237789335773618565997532357256700318613919542318896142067656007194004120326171074011743700252582180834821030529604663408423594942653568255454844034172101277504233761870478780669130051419813939540792514869165877226747843205332752688260901242257957798557440428724131267258987865836180862533940847265274050729407632507109262731082204363585344657509400941572184365259595463324648653911698292949737754561964307924943275263603193583542336841736517308466840700678381336637556223926657599888153872654101307442944987573566887868777918401780379490355160188160111830021879280524536449852377715916146368884270633588137366459227489055868804149808517864921893184924301657226739148632503587079602647401013262953270201971244835730209023778187556656873334135846421072401765919928629030622953455514338087295861865438723768061760583838219691801228910785481635137351084309517099233220762234622032148502431110637781280376654054653347893208790394472261179993771584602362183659272121111905641064253225676015407710546610187505269759793985580259384963070826200152512227610309422525836903146066998581393458841735383944958724889706523465102712989814652900669950112635823710477924237222752611878678903509781903855150202483780383121538644457966909580126105382060089736584975477644401478130607453143614946792258942143890156044901997804862456111477290748286380374917675580715299522048702628762790918352334507409264510172263612018174141676973292423198531324183456106612525348300958430796134257032556939821077582034709180466151392083497697885031153705741901509233476277973313126704339116782718647797032243340410588162181734759347998855513633957788529203713725862615495208672325230342493516475624705006861577728379867193386338732207013122598108566399008931202218250916080338385852252478672578773611600213749298172498480058515119998956414614458973123586855349185651169548630750032444746732535759735854042654374046090871663807377615807489073161173048719780403770941880203054931520747310288947928898816023044361111801218507462125412159158627943332532924400359204752870722826585259989691905492113615846705730800734326752612681135284264240988574303317007699259891889040272130249491286481218633352967440226778233016749999878649647955211366012771135063673329095303673081004223894379931895340472187682863401974997823709587309231196613895594851603159696428996088122765658183087627834654742309132860412169026213381090996503139685705290493921913204352455091790861682848554695604976455477097026087475639513067050999416598392340552069769954376042845337283369588983718375469405774690875872248500914066246599127219187728625087557382038930412712008424634229036550266074016163476209536031939081646650343347856457645568153615176151126554328242764731877805836978516319103392105233155095295947449352779215948481970899291594791541667989575644077642868918186765180220324690537276505189017120057780997862563347018234088359614926499436287780551424677136059055913227039091139144854731924349115629040774542880584721937930094110051622500203638474276244575021639961016804329924680932684093536280594533169921345763641218513892615940613150256119687410039384350939520185600344193975947574941794265084343026806648835370298816867741291367519725305774767434917820458270791526078164506200034914070298547774734229029689509629788942014405545144534571607818721633305709934961423460266845379626105501384991170014761284899467642666001868172778728537245991383273697136130965871989810446687615872979636336947391210213942095480580976087795593439242703512978349326465227895349585207531855359654415271803693893186054741543277641913898644038761931596930018734558611109002331862161991084829828227876086688358459055732499041125652311732905082561721624683545548226568466192331952395526785247240275372133089153370820201008025287959798051635443674519347851428718655808639193294128465414034396932250391475167878276456718430416389945438655903234151800680287106830646564151925599037020494161416830004887725687866812490529812771857197104741454674140268227420102327001174889386767407045036317396482564408012247468506085715101621049904792423828858549936117295160128331662409465093955962908280168922874005151715658574484542174909459905395867525905181004058391365566343781289813923298817171429198084726294482773097207089905663058342356585814130175235209068457594829164510945923468951518510270949074732902113882207868169067692298985839019296744856391431244215340576338572609136324852176112278968088498545877687943029245394933249071588678127270844671878877054273941529576756563831090235557056922936863838554193663421990986150641632050522032626810516033362868816973538975791080910751069824338145396815994586127504180808673641452204471647726339515965842356941719576917726304573092110313855778787392092074563137640619458094097651541841263854990331620205691115175886186963751915389746316219963599483319360992101640804853405155702115034082694797555378709077231788571374879295543322582685196648789751326944949620163900017459964919998198937627967495702142818737960366117821130066305596900633599619243514941002133098994112085620777029339136496509711472742972126795384055524820240975565521009356510211942253459166721192329217144835604424067145063167275190431571708168848501481805624070966782769148386544683398935966696698552335717415505151457358552873715996912295501947990981925134916613170837057152973669731726016251214506582132583551826942979907296775989229867403227265293651110121807243859131210022021098532773063211905381541494877566623704160960263673053203970024655897199628593179559364144571866197429662345952119698621801975475995506988621570279516363480793708534971433013339060628531327583204905532233504983772089402719010093613404775200598353279508674791300991919613313395756234767876023712521796236113813597091995234109701314466410313657888953104102570815625931111102172216692627946664044376175862884940869527226484548276306708299121383161165283105792877864384731263598757451330837883666649072539457260499815475480702351615262713354507169335692716659960344200734967399449074456847613175050508785461164660409076179371978958293700924966102857057759413274591503128948682861425216990470361378541592443404326091393895643066140137249584405688235414229804020673120117504216701158875367975558405186938253715085048597106195894723962754218729420333364250566943289407329332100994151281626596879132397367018983102551234088778588633805583347269206790010308758553358791814699360947681974073155816695191299633492526210179242666639270386347361415402018773858455270450976662543424811574572513490380157352482542408881801959672001492037807685137943585994550308296277847664280652897180066785052191156858600276310452468909462609866467947531666913663788954089213130555120023957681110763910531465045676443747141739967895804879216154866504122563093335093079924496651106844448407378622812193902642704753853456964939756209896606546521482975441548910566097475494786995799700717576874378012448172332932834940029808711862275588947467624116292038291692319675740237986383626311459689052014618759531054430111783008821553206435342971143475571086757815600427470102022437844659649147626499800472615148333986105453512195540245917740920874339067852970004024122027866185908978029335599570163839380741068877142168171198605000941380736394984898801748253019602292717118782359240370444968423705355491524464318995511155163131060102966576379417923158589799884080233883184590143560161867079479694281352946410719642290782365838013240414446113694778798578193379226514097894337795335393776572165164399337235464446833909133961226643621505601339900976805935914968727492751434664251077063107258925838061189471184752421096895873525349014441553752359600878357665227594969667580727474121791373643671142121781430256133618248609575716463520962681357131603260455651593152061462552128999616965586182634582849894805237045925828214148688335756152290519142879813300634558169026996368398425455985852023739572819169084183379282647439865155085315837756613168288952420404661643645892541760646961079382442587920604767384902259841971581511627932829653107041341981239535616461430234056555133133980931594524904497484213576618999153152956998135673720737790700674866649743072932145491772157194530525286975160390044376815925725325033925746456105071553123832636161065959637136415917569587835311976347259070526885386343610002518071208770082519750373980619184515551461632803761542892493138264352740643922393468290292878702806184395860290933584142897650613896514452946120957267851026860462645417413982418326689894477791957779933910366104578032773547392514554257588813331931385048107049846605945465546963449018548066534146736460397461800950831204255521998277794809219726435395994606214798332922291361341412111577867586374623709978688865087495067415934832850569633258043652536643180334454049067757122624421059119040954381977396871199509235141883361607071302092455100893025066061662404287547701496942215450737293415296793735560370581424755994846381554740222092615269860933941651189916231307460818153006529057677785010316838058970571011346416385915441336036281511575577524843471870262987938520932439313739414892294722594575254803349619025408652061626820492862112140369982077880291237665696198936590212585950358968143935470660989082834008693226402075133043178041605927889463609232798305763378575021737489731606076702505992210908479072457145124976111851972988845905599819231267411515838221996775110601677157157466770901834470923501921879725243659866586190092191660069696100638120916717290638671493144970937327857451859524942519874978052554770635108120634019281432638007178637758771277485132051663634212311481627248922946132421004631512536744514455411525822065172275063274463764688060492419229385520957948485483023935620922798062971357737343827918942381549775904610460206112018361873359120559794640293871052615794138220833601687165117052261601510166026014352272366563695862439988904741619868943371748102779356338170880844063335868082481706900958461367460329106157915096000492425201234502156961732636248277818276218632681108758259869898858981204445795387423761342220311420060729763464867689957009344739447926625850016764320279549261466018272434921595099987416202082726473914676372271330766757947943788838101833335489020578049012779181211766640345039252919687104592727085533718785680601776095356875578413268199696390894505464615211048059838528146760298677327101867829797252960798414939724944002289232451628296787309337449812166836340387317933089823897034188596024726602826890391244632079803671592375175117072005291591801437314663792046339023862510296364148975865522732448987935713670570862448509392008285353815540863984256391138557564258835796877939831789417786644686710348962776886894072560836465461266797881682502067035218348795460353134831398830909660425362788880728075253585536072343854325355542799608092385622621139305258754339829785321085777348674118186436127360824500041971797408229922632551796476327425822219483556539728251447150032844262848347825333104042088329388923303681933056290808697345993958923585708020230561444018333113142471637172751237593680411376392779295554132941612287144400832117235570336584955529456869386088057740553818864484332000570661887024145250754584573307483162684515213226605722081727539686734864626791327041614517255469772861844926699401679737201723064034676868174211286086492903261209885427546597033700711150303438648884956452503086983568560961666713797505612770771735412843781942979193972370061309475791050791569292561065009223668206069019659894419382026892188696325446823252712542955752774319855858921569139668018504534774632003715106305860530415426981051889556361830539697663214013708639562721522405942338049206702232241034005750935635813598662811745334740197245582537355289169307906793568238357542976444792816284228316347083600118153740676286162039295751206046686852567967892379417002634400000503778789621900977697999418060903031229488689610304125486424777073071335218272695292369267409517145603850143607095055358229264298787587262074628199579306344873959925954951014338497882582718297334774723975736779323581403111196470189525225873392012204922591118948463238782958984176217376046349226675153207715894888218112710588740599148627977222150100530966604334671131203977515469669084346907698341140883123909822625197127793030113216650743284745243569842703280549942871526621091920389849564389382597493035783870780384695088213648824846783166792650862619379581179356040573499268982695342006365443362702765968184480366759662261432698222308432116453367947664872148896327423087503717127449861982382701731538364346746062941826905757492144200064027020393408921394289066604149740959341818913896825972252792582496842566729674742668275760910423369104349891321955167852633925853475961161836906706917881959779321644858518318137093892358295404563935113236617184724186765618736683006121559822137721554707738883325732749587187050041043767512357355252566530249633380744102660582596046419990513035501933875802992002691288455995277737513477719010439853218978003523812757560619458357046752676754882357346522962585907150466836772882316644750838557290257310236324525015568411061945438751632180303332175026612766985547787384761762634311180219680565166478116515608050683351818140270147047831249077841821398935866658589663670653110827820290831264539595061021469250676307683640800843181639549283864717752296329758978992575983358843425242219242552915525983130122942817262501040942017271745704377181995217204262628267542266483167673587456422624002470851256172044156511909359798648029612627968962139025297488708204125891617604825214098173075015015105973347053630670320582144691064048021393518797970868436872200484648421268654573204544428462647530246063194002790364173542707888150438291568277820291841965767701111143183796031666970920788127957258236034437021014230208506731305315758398514450833331272633473659810838564026373246358580704986316980639413806076719932420382639830836151840391197242702559653749339196376387850674840196324558291442973828112290200720794657493787031363904294309500665471160993483368264601790785558071702449579635201242002098658077398825297512040106773741786584546046045220656009604112783375139197482035946207123281344548748704237322358492275941191812722519771867685862414635576500838775254579003515229544198033100161578909141896186768380277015479440483503009178204816823338343930716523799288149704127735773505678824523382110153498169304938444128566570637214786021488009252932222068230457991826915743802429036250461843436469007424716005154828967501333800610211290959789327705520605838140607603845101471979320783939544618030130010354232702950250149427859345526203471418827689231285026528585171421613307204097187494183415741007255622074245122944274929803923633403621625994324083681202570129466282611564032132760553145254729403240511777787386979744593895348304545406700668617999354446228545478794808084429161292580091136555658738113308803085383954424798717086608382888222914164003293936158277303300512272149147665933845036866117533252472786211266402576165082408150217821877117026359827253683927786260606119044986764681419101324272608385374107875094540383579464541172768488994249231702834844554114424915095590001736930504216992944145492584856036410351495578654401814239395189282961005895795147012847523610542337964918402342484001678791786654725067729897217772705839949668152276286502736684384024955877190310464625412915900065133901340143652891388271667044848555240101513003032303773690779210963052154205364790915537021328191278262014909249033105422759593751209599079901062101514192867559368555357775491506831116557011932782508498050755262506555075843055050519169953864440074925811163548334188753807234558502655943806131866843857029750102713278064808212523720338256173540223428761446800434077435996184931615435168328252948745874102277657361716185347659512119089940881809805676713824480339409318266979615081479100678073523307935699223878910358505120729067108505865228323552681062494528916674407481555051856262960544518187037078889910483191536132204852796020095729908521782794784882229855134603250781469004420749518121637608844911165428961497717581791305127018701129520155945356597557554304489689465543419661986019715029082571975007274380860207081190356777185527045983780324449583455703963802974749362508293328017836290672157174245713111632704659211264230891113956576576758473679340539254422023734948086011683587373071722992732881927077232125427525566972778615685863086406952316603686287558313596810897446458288994403687563464469189834382218390073602664274391428063296101925315841747781534964462906370355713938469971530103427646094608882562452546165490369709899953568246086338875820429125892551957591720909396086641334467446436430805706180670262845532194873202646826607880418874227517293009094771840632347836005583594049656273006467475028404365725641445796067834740276886901608236269815061632557342319974521282885092008474334171071849207380692261997915313808716957378703716285816656048439507804003841671132317256638039296295012340284741989868610624297100436935049540769764415151321809279177523885485918647369201775188461734685527737447598946742571453388157122215947566985454034300728959939420384742069592449144429669241314904012019502910998667061981455164278689829476695575812997296087642160057531747913535481583352910301563882465954016633026256830335586042225707021066607258291842296492884597784277088914559126573213115391669416431416992697986774295344686450142193403545763984903212399854601423387529970071412723671493844348583896386684099008668844245997225155242685074512043183366093657862083640543627879207810310291835707765952305123263697604538664777677025213737841976255579515656054828634084268901569623054200727769784016941714280227177696385435344228051387436381216951846297911181017166265563763120740138976121788198485078075936295557043527662095132650635809233028734539834506269443823176823685278394263164363394642918102757735791972138568534685156945894462287625270150419639491191270849037035591905994896867988548129298658735089775884343470649087904599775962830322267684132745718685355739481235966912017449481124952216334108729593522136626744717933863347129511115312279665190096267244721030186313649513714743228234076417991861828082746176230875860252620257365813518599316490222990864285693419678456533342059543763829857128978854878871312009534373499343770307337510007604370388202794303832573922301483318891400863500912943112498628681766303308753539012012852334924049654654110767414717588336741508322983961200623815884267812342098855625459943296294516622004168556383642136731473109617170499322997793747592868821995088870380447849759149232476161985610431326437654995654978251532985972557487992134588435577371367008230702610218270613127023601618773856670067109211113355233949595692775266206102508424110683709432201771171463472006005057993885185027756160601817037938480498136360682936171755970076394890923840478029024826571334398422879396745342395571519196918631129496326702833103003565264794071820585686199637443304197170521493672355988251839438925747264134516754322705353481628169250762705815109270082495931767196171221909181379019749340887483243331787661457048311007926246632828435787053584252538725049860067735251772847791308817386439532068892137315777834117935903252534914070544404678740207094691903573645444058400196099473842011456982497139334221928641727237417038677947364892332168316710312619850442620527415169501588820588249359379911567040108122612095443101632678658198532286923814213968541183631427173159517756680626950460522872418339729259158622306106999786089682356670413121862634686232425380197091283288656988496501172000836874612063997371358608445294084048896400134931031446759318639366931813447626010172967877237268042254733390694093476297180584565069091661927744414106012769817604179435156947995297410613068481265114056984986547361150073122002080036112856413069133088878822550691132468657237576467536100380560461299232198731671548789941158780781466624047719084293776610621463273867571252342898873739914975008957377624121505164498816368122493275822402910968422925460801781030957828358064914346029755698336054515794854985605950115023837521412948026121201886672964583332141076389627993727357540555886473042962741924314331273845407846065525032240380845165486348109147116547206469569388595037168226361315563478750310762357539576898110289166281072598158177714233667493211725488881881219882901017066851060530609213507540355540963604167167158226866017003968729074538581719925176640864337426775069350130360672543191271782546636910658840279752882352284615588098949162884349498671717169545065090793022820458419368539134137565314541145478499794429024782932686770877871896426394071186444766215046514806013889825811502267884827887602376285033150155746526255494015119403537989026890012955763831981035383171446158087880746631772883047486468824167540322511403857328943094571801338679783927328673626932309698169690942487052688692764915568880124652437436844781863286198101349445771517766359275162514500731299606151255436144842561959790409352090942813059698748362949558201142366693935530383543602441347264708616037859040420768995031843387256810544829346494898687025479350132427428360762744106226514165003027999332036097365328227575750248679364340027126858246085131982649751947049201220519973043521051457355995422689915006182977865486679518852578414001463979682071372835523501630438752545851532223148926969196514433239403562124123384770815410819107729871001113566503230723613912699017342225628312769847495074763767791692876927854496117957272132036275621579328952550461565900044622937793305066128496264693966394211074268355668116480561453496762441969639330970515568047960132809740785931668880422807719390033599262221901509236755291742810277196507321919065747175710135745110917622512490476171139586792342356480912817806872011716343964099166452056603716837060437940891216689315900276145915827339565766971448281943217624818617577047842749441327404641236664786687881581120537036767981056612352247329784399218347761173508364190751231487667056681984451656140363992862324422228742080728202004615998513958324229478957755539780007448691027976349785834437180771789325356941717349076949367924427279433243325907685851544914504774381304144296668112951007072503611271601204804795583293569885148564628010265957647920672689254915282212698760927731340008580887892199877541732629086119528163258060812436408866141823593111453123234586641642382189323080531278452350964540470448899813444495768449659543792798774620203867214553065235362490809399856141724979773309355365503192402604114981603277587237693041667238531834963740818338680151407527799364813177833914931396227741644554248349484023302088062987377070559822856877418073460617279625479059042904660029253764741835213547869587171553723638317209168764022557014564089687118705769403178150149845415105265907559749031236149806176239728375408453459369292493577589306536897474135380595624643750022625845414791600717906985310769530211177698796156156090957728672286616944302343174267770458038972956292757342338092595788865032101472292994410272553312113975842451355572099605598079316178723282509151665829438056609447147721178674018478644609936920676332855619105204843641899497440123087142441558392600574127232736719535251662445181222279044441537049783126580825199759556926587528266633800898486599637813632612055100811298500879541388110061633752232143308924209240141612448989244441351652357929369167303597840731624258453141552727254285503434766368725926754243106745637760370057418084104569299209607531259605607491484484482312972829286389065625505762419671920406659800657463357915219126102165041048066961138338265600105104301247318213592256650966666933794972485552359310126304822089282456682901755873251237513001570241306962270101674834721606825077260436512431235117067030147272105931219925622392313970621753255625518387427947818668580602438439431154903432663511771133874094385733971960581028216174609085863095964833077125460668205480094702129578627860642778380775264870676784551558879523643207465506389187834066846553474789929974215657468034871126723761983722148075528774020227648163691829308810924003465734425841281841740296186721401124889836449002912146212657820663624323308087996846375536690125581588508810263017332531135510247476711931678411999209600502735278295761843747474823395363059929847767738685620925901325032626702497575737700875424467598766074168624817395585137253220475074992843950650048594700455349176014740377004745738613254309366593519386848672360628911085437426089325963037579587539227185636326081152877180597633266616678191239293087242332768914461324026505270733742572099759350673596567588412402073118504659668087159066291216119584996234744628770304764589677868519059310897291160913261408482185849800292281172198636361503994394053224104098036875200787331849943798280417034142475270081382744028259623191848120695935804599078208190593295997470147182956338202666727209520503948547187646323423380232341278347309549438585563198548336163727413936095369742425388048313868124488908728687943526355979364126472651710549009690647895920428054687104979557013508074392374263857653666953149140407562437412980686941955732825504408911267148891125585654102467498653189617944230880698807006482722576872932781235221783870590847033382047224261462238805178005529839180429935102169208163463821292919491133924083200587107009239976154212161965657213088656245117516199258748259588021145568569636704384302547316573113630788210448837479996648458151095639926407243833041162156071597771547519083284791745815875870905599533788368412456367435993308809488659819452002696465745297848470514839396926890198589946657895249250503689101354649903320826451960045916362324315753474704320120559905204374710242660237619738175648139320671895002890827671288802555660993864628659301810878911828581641957250190738372317375894777682601123879236785756544101611155797949823404265156636285054961008904734842280129857734913365889248338183043638034269799024526192895698714103173516316889177888951451003253970605843457585063600789360897406044118882726091815184303016500009067000762173000063682490609822323213101321605181628718190716513946433984863106730377521524379407201475537453585560228022258302834373417073581085288143085773068772575332435026798803654950625065642963327529767397510355824009042318721424554001646924125327787381031760094957386775279471328797835053660063513056132873276915624770265451742911078764028040670810889791303120572578057551456287838676803164203646946518813787590129124092376666246349250611254455417075047238251193741592231478511523884430779927607066052237898634228399169548417008252250835320463074519803817885172149054808707029481002915164963239451831415782480103660607752345574628096388734257810580571366160185067089354269834948824428719459597003476414015668793905959762089301888658322874591574425259724315954214547953868063158454505309587952573300983881457809602679542293305322480147591042881897626585625509143955110407891039887668207132886626849729477949912172304172295969446056829317350260083289459042567016345017227291799442252145149609155907067886376591540847238063695165909558909856500951238358801341121041335819750440671542889680908217472631696922485373549563377112567856486650907919527379236543109178745165744335617479587127410183825849004002985709800973721979600630915489523700101528259051314284610878547937649211047982179913300172842426164528931569771302614908723398121895271915417030203728847477357275302884682361744859040623626597204675764635311401853048392143600260665451796851431216590270571541581721356891968598353878890478364593345860900809305764927223950826041001340373080156982498643179687979704304058698285153046388016870395931105894526223909836063268540286375860996248921132001152686970334593667963910887617335907846104840703550653517678078082823819595098309288896998194382823902229113512760077542530296049187321199218589637928766722755618747836332026623696513276881128323007798245957493844727015576099944465643306117451556219289945890437874256264584175157290532840710778151080241092278492009432866527281563615139183040751103620209490285675672146561300218578784891463135784921735333425465370283820392711895772047925014816826267376009960509750124055205891379298936326536054577311577955102418807452473828936077571616569970317030240466964291559903021999649402639041970881995619337666640833125312604240166474378833987179976054426924355869930455228182871980900760577060036107634421124366418268428496505579781412149366991602614587676617995673601713825568714880765371413432288031457320888192946091495751787282033826277773598913182388659147356574578976912063610004781066937831274660398841642795358049989922222328395806817353383039907206064545413831463221716861339770525275388822636675465994250435908495772683824164362340575759323375221890905301266863848752233967695644973336631260074727375832536652159882321488314367619278184165914831308333583299986897053100578898163966687249023962344385032990872834486841290879759300172289977568677645581215787166851757612614314755354380915156319998028762793605414178116504815710647070573457821198550865805691641889216080331899400035633371072832087717418296416691272424987001683294089034864613583133596561481517390850919010767926211613195178346787192996004838074352420223413565831027945168140999639927985061774504030398866309027782731491840215875626765998541367281114069460878618573613745311449048281050350682642665386135148991295214442909069089392127544458527574264056978528493387994440020388801277458135608677436211878262643090227423506176243285256829848028575802536997824050134682770071457838433238126307589323458583614873455041683752689086146872635582734959245451551740043491814042620763928964602616253072798450578311434839698323310574708216840167795672791503918117647155305281640325997098380438507012544910664950559892895447576058683110262980527017010649109638640410938874522631651215482259727273090422093088270545830482000384146667520115637999735859259246299154999344931155102822033447148935835015420134326993623617637167238308513102864935229041105480538147723265758509944467802802068311869998299068683932800859472232663617745530850971346925482493310272611648916305664830543700971570785207183855057941348466417022296753942754919741220458256505478310967398827887835738001826633614968048665656952791046430788288375876287138771955003634654145336942891242778385188569727205451629804347208524726505902680701514017655370261797851975410616899445180053264407446997051407001882053789975635367239333004676524859160294258327002972461602861754633809761714583651792623304057030452107569292275386519193354254443409388306653961761824757914306027488213616406449274960638423738002612501284751831391776828881239902087743914639785210895798843613071913573734335559829401765138020057493931870728523995407827469322305620620411912229873510891795548207636398469828432406892486905253886576200354316507358246614491655584137417300431220487247334413322388674183471807381929359105480275590090487981471147018675867247995576391837574229355319145126363267199651331565014005547487839432604753976256796679001724897021826220099420824790423945670180793180888321286924810781638149059321022735067866366293853054469530421784680349013371194164986141667934837154978635064351034347011785390216891536190608629872512633365403496479085700089802462059814026984094602947668482387219278931204257637593590335885616095309050488084807764932290190064802979620091994241634588757825921589354201289969407387651199764611225062706923091951532904028981173570252011188593830518140678609819179613613502877691689991257344011360366537698358239019955350846599743466783822329810018424782431513777694735730548859965240658196451802496117858876005209761336511426969770333924118387132433932231141427465007655407864668736277483981254715848763223126569666744380284100125489494761947033201607158907086111592949136940892961601042445700386158624024542358821408176727733293108026566446390688101078374230630236311636213875115235319414923352993344981080629700655643023023446037313534217024016369986917841857706890672502267509651006774931725620409955717032590718581362346759449275555665135766246891678073180684750319428175922179432100445604521440218138685325151135530025654515969841361458054412621550399078515426022327107493473796609211915210895293938083914156429922981269110343412367577335947310247533084148404477757201845579367239980072360919076781337882670825046378059017578380618394409961270365897872735051816440356218345033899614763007076141712387478283462643882075962681887385879290597619246470117964741215941314760053495620328984300098312334486617035579284663774495266188728242557317795682764324758997628360448143807509563458610325240414757167712946399075289151423404469496542522141202482850454401264915912816934566204937087967757566802148695632109506183080057890581734875742702330263714788869413769947913391022343725772151048325654786033233245141959342794770307217410914640582213132511940754934374730785582438278895354462528815617479283224782975748999822280299281910632024161732035073999457199820095136057063409325664782012403999599224897737537990938987415227463664925303389729982869717505482058080230101655098250156252208432236588257130731403178214576135230594093189720452038961537669553802819321262929610425029280225339400198212569297374579321493207535039008634498093029917442712323083959737562637414661689713910878857306933039308045758441983929570565344559690845858568707207907428903815007421557806474681541266792124244761510844553058392582704078155096274574570374060029420562754128931224444639515413039853242087906163317336261461041494826051212618176987575109922901049974294496284382797165500138955911574642089761549838364528444053447840784551309071876037558419721761277608373342648246244097946104872605530360349979440919981315410735138127796492593261450312080808615179119708134813482302129748652610435603243594736769768311943949741173262084900861379571078236875161640310684857355248463262846473180695365432031812805345731986211531750251229507491956157464988374877672799758587605860203379237466342822005414340767764369980421598213688907315413626612319594849032630010871649873064424532108028170167310956923131171418018530927684225291560478936859658575313661783357644299719677460680656257951198502856709350304959540283029743206544770359599212922194383158569051392486289087954440699612694875863527626663429461629117653239298030399732354452597420450478602895111126205618993941874820807975806293619127569660786617224928924019392882982750849107659715165171250081943288653985751209315590985457467569063037281157569033106708878973493860313511296954297172220317255740369730225714609936277274079949517599546932163860105180073305491323246881244182232456611679247504089296159684553205158775096023988339185942481299625792175408438332221545166075327963277403081036710120037068138767064779026493642808706646469598864143526680114137220490916110302672351177278984921861745810278350211102852738078053205877670866374452182226874369695811102572913845058043047526852762003774169397000324265818205354110326987914503422140686576805870175133681577356406500644642325769123596581055009294450887612951426683560183960227690072441214915912772284238564691905201762191228947158493805070186156855225013764604419252719329919629475083106759496027506932609932816361641582059844256387402192089649970227981459914804617149629790040680451779265881822265051757228061792957197895060607784574407946511583006365215584932618427096240351500807685415093081763980275235187945471151038009541941104573466815143275602511911349063453274337057468908878858729055918535126316938391176115555291734443480891367859709820179122277019042714507068586622933722153417381185601643806025664585533993477026193411270722857154530530428705517625453181300120891826322481819421653826923976183102036312128890831034015248410499735908866227263776583500298799885842469436197333622704577211185176065301214703237637439188115541187606251079298913742205912860620186681904876948481777132059416231131389111825363715847234307916192270932816296333412114160783039640118764291725893393632118429185065904701634583426436654194650593728812648681613919725363181530850874166321900075633575217120742417118856506601552117639847786516144912721189517136358277176593513878973292103102685939012662888254825969289027781837468481564268435478163920067604628760901388298948422753991811191175844298819413025059827496479583633027398854170079499224875993476077846793887529819916876609001933666523317251556582272184618215174453158576819440172179608288128301087908613683191231523929874421784243288120180351674397088360269899900785668132652954163224154509579063950405232677456217554445665762554846798866889657714728669977727451486782435316572180539826189417761852202261720009746397520240298864666796572371382578341920330750209226453419616575258156896206961347370060547090726086355105139981108463380054480880339776390710935944488783100855257817483307150638054711245410318906608327708884661028843189231524444921677436413244080046533917328943613695408296072582665362729308342825355320915758857931224798204867223558331012639147699315267864684053437692069894482745825835631419647149468870335867177458762030273005490986092490218437012623677591939943110202553556497636839107080278887855399188394354519825392639259068914436674692039940574669371989554008254537135264558404415153954288138121631958716359662553330328584810578520317435279163261970018487832570416739606900844171002164726066750477624916895380794062020529681449878172734488524354237789374286383211484884196673914153160969000254344162117159732176719165215212053408685420748966687121334997692052684769216325458327725014006823188004962294483655047601647010175984065721597388791676685155321242138183296877114653600652594093106819290239858957138212095458974808480148992865406392323379330176438821862173544192168182867790486159469094612039899934140973656791823739388384124743364677413554020086197232804528601484425338152721449245981679880592989284538593690081078662629602872054146206376890191749260577274817569098855815678841208361764819287270548683038571739219434867351352260713826518258042190158499760613567758610431634253662443989744659277366883919294577607453282402405041259796853320568328271339941711586837251157921230401629300116821971996588605161538657322932708316206500513972964997504163030247715413866480290418100025172165108549619102085907771287603168712307956931525608100683794941599043365511140243851691219667741401314345442623741192844993003247617836678699730283292915168387172118397549337858426251217857029963855027664186535327014328943021314684139326869772445307916589285939831445178572712989049492424265671134699450157562422836265969058588115457353971783102534291988437284184342488924867212888951440408182397913813336650216708005819877366070626151211709424451863364386022629611010398959846409223645274308183145180073475553305460504326175689301773256700193291706523134262455735558054373353898287692592443720733138677044877669229728935149774494066309581947068393032200668879995807033071280015088367174691555621961639383629821676248442471808221306575296451114381946014572760855389545275732722651385195419792400015643945287369543874307085156620229009428695707145642301886555069391137835404294468589261636693190272427088233638941078859339829647235130437572344204231013313194363378175849416311539198000605433871448888248324666094929752838943373678271222506573310663580399357733318679334279691455793273706450761786001423255774382870144278101880978881378258986022814529331765403760297527276166074963405665141511101338056155204435870599253187520617742755140238038810445093397001641929233276606874098322943034536290066174350055442835507263572562805978396394837734359695450198361211045437512291645279128234718659235898313913578527796584266851302919687349437536920339556136776915153262309334335448148851048444873862079789808855670128668314212238230386164821515826819453644096258764719521245819177888650388376401216866611481660279978891322089753893307342004337931282108114400422233393200776181223508639954522803078285835756747235697614513255655055733999597206036381518635029185455813717801091000300668741478754942277157169240064776529490148252409665539977110728778520576448976108915288694909149087498947782334676222197980554791232480911827021067525380801661956768497748053253497058210710552582930092693577217399949109806687814896873299267693830862530194215239772011434614817143520739977202527370963928800899398818172773040761140747337332371566167480898965640039213108709081440827629444534593619192869957297371744063986600575822382594257354998745768242496659680753827370132338490709777978289478546163757872474654201701297728682205221504639222855502984231886526440600072565584721178515901275367879900181729067105892081935705825041043733900844175394566724076928368912065860437530151095239533322004259480609839106284584172721206485397446883738592473021562102994602225950997903073143805652014672957972956003361925227333696146386954289337520867199365567880569202576067657487955898483608450861623898534462681400293523917749004044007477819263547949898769004198855947260259740518055460290651610905411790971564798407573462102692177314901738510470398295534701635987214723248085753624586036575219089318257465976749549648914854878195564278411186993847874793563510846029906632392102993459679708926864762370675584688964458478463397016495825333290478510022963842104740696548475914999966436630086772170728687974464433012862337643874623288561528640126259905643366850273084752691828761210367213501201512392687215806203792818563248320580776114197783611287385466406201354069744543144681930415533982472943304927496629141207902113866205429597499160414602605188210392687977422182026936868797972652739464475192289718522091472050127137580348822321612022171953312611709854879756301882009331297174544394702775269979410100204292620284558177015283781212656031086761704055862696689467098484443736232043885644011772300318966250831948515584766947234027990017838212987098970617902660078790043374718766232988810733087960535008380580247916977099484721630033802311756987618305715044256027390256146134013385996950568117196997580848101601512267835646556032687091328252298941774002542661450505275018595856501951264494088955379641145961574464867538402221309562429884798595526206667722270618240522731105449344377542060444151484350539893833638819092675145551241184795076546088047927247308495491886054636879911048555901049135317368266703505284238348459136204663189427618546240471525897536335195951014885794245037297603541294413303417826428119406714655209901810523470579636856325073944940773557579706275622831684887894050753147870183574927564768634529253140363987642959407216197966980245064302375842777642363661906918040217526576733326744353737694262920250447232781045291972194029293236351315103939326002473893158103315805650685512684924179745063379921744481688272209121780024798931932202017441790088895864272241095745215583536146921266956307339127351698561064731375612162194516114595319547438050105062089718833982443044192878992409953133102099074175708475764356895374673881211450184616629633041668379743848576923963952589853493999052904761756775189395437604751853314346499690806002137739973402522583115081838775954697565782400800137308326193830544296581503138569347457609204050872163635559050937961546579194522072117089082636668382509619400647681159653424039478986050254635810257732957172809341365201685005764505340095307118087562759941996502720639277685483913095366392355499060218352213847180084372331779132548313693925362340075711891830573669901750242910767208534386344019148382201223613249250981700159596746656697135081181868670729736698494777740876085694339189976704007869686600410812197165036985233602138861152829469986650827868125799480932826742196079969582927256617204340166376346639500748811955766935808270487650914021038487761907183962523532372340015951351253236778241668434187332660023302351245714848878722390827610966095533422483172945941035524439585181625704992069756895869551152270644572406681704071586707881277919814867099546578698342630586375429720516871990237459329320381825303008960077350930631368229083681215553237533734911504335098081973142636749882828053004464810799127828848732997079073442556744505039852572991991806277795410822400433734529243462122901689638138720720451682170762305323849462281226273138480352275640421239066571019377913843401321488370948917954418461520465182926636011794810586313009111615883099538974185307457481136846014470016784597761411047890940025060498621605196020073523649097909098873097510034662450182705304924359668415579083360422570274014390986086034895609939063712265056202400723482425711461340901179610637778893739056274579250126107190676157972703423611660840904594137819156529675647629913033581999496266195290263856011568042093148294234628824568150431759218810496222577194715113674503524367316151827645222699372570847170603994109262014814742400025493167685336410116261593911167055102215762147049948591449916466716019108244873806729841571682675362828828596698296614960804915272714169064213165208440638998185648395062217937274617687251804847492850301961878482597985465291320869323638703018950579874630391515217238119471872891654735997335797359801070307860429281610833506788892032584940440715968916273412104497230702882119546837128241601195550431825992506718021131668295682756050427273829523544001233050735618550392477204048116880054794798335157148298142266745517650227126466392735306804667778890889458789923478369969576439704654711491301763649861302555639918623237932635522522114002475423479370842760546319316290077628856136198044911983409095593042737176566031790881745187599480435379632447722677115138584248848011282651209355965316518587335877386498532840542172483370623799585597412803487266324247566540283419514425442918422182287817633117988000768397067638992942709760247474630564708319791566758976623577389212961530030220037621977969773945400391304209477266895132352922889139469686691908414295429539820058037888614574803791036544779654104841707823653249422825663760112792544951270908194259216662766119748532980800354289055141232948160176305578229084347645729006174029005593911927201820657259611975009316179510484576125275646953437222111300988982604408458827310730550812740562052057283739330101708689384583438650441824345969763434581631172221384651373960254479151786840477928075356343254489115325569320728393237401685631452564079451630796065221353541177684291094064458204555943572439501232711353952497556722593325903977461027338351911257382299577602650660016760856313155646305866481892799317420575852063888859670747167343553720951866065212210301384898754476297311229703212042311547043946479424359019654100168657579170044772903000794637464146292642772687108149306217672696704254383446113061701022240198050954592676132663711011556339756844799922429671760823112972040971622718842913226261178771010202870253528072755575676831480380501581211699866063567883733720601880460728858132914497746538814139626390571354619149860414458312479729733051588876956304924983361573272973477023778030946888363988185440543994290236885363559932417641053820461057258762861228900405432864566099625958018140112025553962618286681139450035280684071798390395708721224984860664969458489226381950671357813249887608415635561021854460598444817082207735235217802887740313232948261473828589891313465796978087064889663186852617240143693856297049077266891933829960129754658537790264416484581843881776305648138760490815085657817880720169480108357697537430299341747641995757666005916033545507721113389087874849511907777583211136020154048280038505635159990054438478233356374220098967181306075297596893472850534806021073422155612714767199699569271109346085171197045839407102252254811151268875589469347382382708417286414757854500087813134695957344188186548444262503781727323145212718197077603463230742051051677447143775725975735367534097252204575553164103599419386800517642697870543222248535671115033215834325614771529310773315728012379389613773906141763092381103108386730766589680517355342037236110909078568061571487441467499377521442611747490836284245281757547506850426746843333134820139136695578403153187871310133162811254758221225184654903182166813494123411638600916341114326325778884576066211958421320579268294647745777099325910239125215442581338280667292600590409183890406361629647442026306575417107120832589886451045778259453463984333892567133928657857795624914979300440103195169188671361884418046905266230493231402140113497988252811953279525621873908946733299608023093738370983978021356351401579679964537792272352682907510961862328865811931792500715119869780998725059493833682536527849956052308082344175482033396844459329239515208425560900055107765970231060131101837488126751643870342133798023209462066586818797344648686744401669922520411360991727694672957903231878575078216127588751218024036541041642207581464631641022715606882073313554415956074248953445920339364085861154218855369711481074985503335624039570452679325992710674816600685169928719264364814456257177572098048805047698930103880198215861392751276175561285704795012406774743150962566451282536805284269622144337109406353359675473824361576594015136828248078268753607687676755365136398840495904454720759874860236306811402744684247748636851830975019879279103469660395039684638009897260785265425536194426961029185331315587637713938949682090560766994198072194516414243962165453963833105253072760517008046243024770350346264948404270850594399477613435899678272512634015157957699889508467488765002816525050193028205212256216841506403765667348063574846507853342835039661990455443053482811633963250342506027037978905646636989849337899933735588386267352431383545333692089588419901945570545088305017568994879388492043116025895286865868819426952397412526346099714336872394781310051525794798639605761495047878152535059480635965428086723637354990682781329614928531216446473695512245937115202218112238762122772143451104018098286529475568620838529681532866596737946626959355446069320489401522016229627842832138909611563478505200531545350403445947624499972103655982484462139633988863710489624810851099399810702056969998650179093859069652196911785495560677487866963611847474093710854809395437138849007558889344835456452258780433962763229846780125688453250912909484587841678167841465569606457934587979874832847343668289714466213432015527288911585483468617442405051550987248143498432843799089436862843343330584050868436337868747101009602023444472542112857627582670409603351945479604609722064478336744339893785589052176760353931524721776489592635274962249100372728192872100326033866041728266100479152715349342559023844572946301576523778762249086537293438147250717322216980028635142057242453918740755439351716366904779644287421524698266618293167538393804772288001112160785611219679944460155377546349234551061699968401778379540567533096380123246308114383118229000190281337407404088729947673011954623522866474007132881275301295682278309382293698596875436325810981088773132860816096325786914481751784136111695834209353213456984505105190242774761827077844018338062570132087271479661754098502898302224454656768736796333825734088098603703231165102816158165955577233760677424634411226560786916178704738808916523881868798564788319347850159961044399467967393521643998583744330878567268498569637566116519665801387231301821739555125521425889487969783794812848981179518032273004577311324637978794666754070918539539206605516713873003919807664372381322702711511752062844543523671978871666484209999091002110501028129716347013671174474511220437574922373718607312401045711576521243748156633600419196221932652022210643848228079961072059796660552505404259281951915082300700759711638804798016106283941793004579594181865594240299756303235893007649540327050260443501923561982810746455282111582593528383278508802766746935232396383166238369187714611217443320857685620082061608271455701850188600460950456229238490951154432762345814033651281012388817317452557593192235262430167160061365481402752258649830277242781709802646105829238164895596714894249750194909819371197859725894443118044949998909992368224858502473960998320348497768871659748684300159396284478101950783072529417370386950096293659126750696539094164498924870974223031521352812260200593150269406340792692099082724063600881097548651077493271705150695142825166881592401810435630648104125214473890507913502780864859903040289141937539440863776610795227489643347285782828986455107415800755629898349530453895418044577809071686640183926410609974664376754248674260259117444411312855416744880596979647936934353089839702697343563882692514528653117225920020655028055479566873327894580837489213572807098961226035558677501503587157733847119878545123272220191039638293027542631331657589923940923967478077964137446012566701913514587768221875777126713259602459257080768558146397066117553037176151820475526103477809972994652100109485026630453828469716334156692319248368574557821649534566308205597282103135506384015241929675406488444137820942031566753505114977726749464262950544910734143226023446461144241338100338445854109951976134459648752231606902286083075360709404728998352555341164484817583431997420543841292566110928441306299625143575130332553925964986695268065068925312704499609189101827741154251402068701846921359027047418653222052501770655541699462377673976777019578419077393430137300344248318393701354715529092425932755503983589718028729329412340599773537754788737797922792635528061211781994789337422858794354800400560320407630151201627031543848694954231033405440274997218432490323097797349260015277463919912121447478489026927363452973063009455356030065130204416168013029881535867920455948094388130062711382916633449411565433084623831581695919918830278434933191947949810672710494573481882960459202549123450192646138503122465180223303278228298484544824684898380708029712008858364518539376323808355556811067090140803350038082721390648589594358820649855536912755456106647319991400666626300837875164597400293187496739269564406440905488572805362414099369181958154196708591841163009344128157543957289683235202680158895990577958185260210855178602991079351131245127317046579343385087071060489455168028130362332915856759767068140927448428552787037022877704369971911968785675579361936611811466600060027505592187284528004920042726949979197086700035891234019877371778120984809573723436594460796347862432490902558612597330541613859576240208510645618797875224168535925954029915020931534026675965182316768269920672697258747622829049377682176709151763004262815588976857447982226475721282557953486339131575449318458207780232314504141598338285267699207646666423657591944332497149769218742806318270657261187583274707848411984140655147123102546828246973891208416467125899395492124302821222664239297603662604228553493364596973135607499732496730064152257506339475021861508998079966694688134395961803373742341507573697605741584380319878577671630702585639604871986004369921359771185052625117452886091184207959876539614901167875873434211078428521407115057656859312654724851665012830610507155448637266575683588589712358218747633667171727309837641105425316568328285005789919899124831494505634744105026475105350715881739508948934841697974140605601073296754719527332270938831570300404534759263821109835748941387566730371340498837160783579768328719044816532478192035303228077735126644537042102609511525947190757398885008951074291557196286484089903380452813277480037052940417576295907412962693629032504919550740238586100836695562006983327693275080878224997925404149570022957151364555020580339539679496609489231055278153025899716126803256304294964716740451176261858312416705153919566609225537664730198863577449074596500578606206332084995009391614537415330129722697451898234371654727127259138552356772285435281366273297077879880436605820010488264083264884928680627122199067469906362319381209045960433002851180495705643145805436465774230520158448224998650657961555173115443551328147815434856843702200273019666009634806086862866070796464433946332599487594924492598010961482648433393493860203820880583294437256558047342741741699691757793420715330134667677735200721710143715297475428525674128282413744594529386187889227192849225150335082597734511046286090529015151493276182916345942441896432735809468149004073086242845732437720722789962348569715250953741796614826904892433440802067072773948870824284962388246179381371273830891255828608837840140203620084447363513732522454876852882505519254191651856391103840379133886993758776483991974543953382100078706426857807568398423760250173744230254403395859491567794093813130128956358891942032181555599377505711243424175881606103623917334978414150919945777716381729898462557738023523114242337016681368471964091972158401542272339470823348574249323398681554780724308681571749983988615913947210181826167555863270726491815557351967928097128660303939270631192781443758424075453562831974223288070890693933889097491689406791199793250379864264812786296165553433825651660637536826731782756927066412760189427367301710624748274281912271115019198348050873527526889506124780329974567757971452866495907327368997358554874602432085370585610710783092576551627955276376851733737256249569188761771680055144733242391117307547137187156774579102692496640825852411116813431471548396080775937534626259483206922977938246026203734648753110094103184897695201278331946090550902673253313667409839791121379549606349190638806206212510874409305740967315491489093415764597620755397044956330208726455826490595321716712197920506771520272454064339147043488857464149481214096306564279534757064260237017741252661775157207261094035492937894366728839885169074273407603095284916907668517928208508033628274315010098974621862400546215028091666050804562570678954286020693870453705605961658400709135824978762713098379650568727880920228284834478025637717108021532667225441089811989086375897684341658482090209527247218197598950900029587368965694871233314077633341653268761876359811743330969039680408047975977281252951335895961179153175888638911864237341359905076037095945002667282021259642560701149951446648511242105702090460495495374769926015707202614101689767108662904864274553366085187060546077582765208744598068957651031075628173615575417359435715873430600758990208721370761863454426043025046639983521511801329117662683553804816011546017019918736513048105922812520328390457029680244648803550921237956910492431832947869090892045400815364004786376436721639954719228231183171428341607863009032282310066290902104247659579475836348469763416065625605861233845542670856500160259662465741579548177693393140672964051307280358367227249965933135680488961313404929588697643738133494932867116830652296381677372920106202702624126926952075055540361776145616056917691768207754270793441427038927809996837318312205983860050796229316857898190364853942718568035659425331644920045027072474727230246633472571328337420406817507754637163824097920930473056851461967621726590791218363427053372847265299350998009452998604835592448566446113208209452087242336198747529849469454323831564460306120133209071205949397509215857389250582209776612362241240983284977942655732513648761553344559525236443067465383734019727418794705497298033540640239081956605315773325520512600397809548330195066151470920011252409606759501629199971393225946180254185869083542901157685077072780212146234902070084834548474323985977139037019902409988935882037948001852516448994137329442507791161451190812358994973674739467492871667450147933844411864350234595582590865612766658218265733053163505542087810399194240222296750468286592391828041986347260771626817256578685354943963663234482878185108763717874248950063316593178171794613425044733239158699694491242515736015940473671121358250458431812950135556693436624876201821878051726293494453529826390233286573356770736532915149010779915664843288912956690708963447115991942569467525175508100412931146328391940883910775281160028922288265413693861207128924223269399234233562954985877048218787919612389840085909692892107401087671752434008423372446314807880831921187006548531212319128966186049513393039036199266021715762423633689115006163329549498318266575771434176492358809954670070719658561661929205881009661282032856437228477548854546364728783944085963295698572495676759001522394332298387192147320413157117346663177744178664136879361216418979923748647249995664497326781354197589799658292108946885363451344504036090696441750631881363724885123528072360605971230319073971824971584380423242237344652513721644162105369588383337307399475679037484928454102003674062159567906113481878228462245784836152020110766841376803539292281441513519747511139814490629660253688396591736249280104240294491945046838966824976685227119174786167693993217034088274574165701717120691534210635555091900951183848407370965978267279971862463668645528435875838446677077793163439737565451197983841529353282850569990648876429409855739728171856557035729904721538261131526764802441841653490122668669289539706974217383318396170618864766692201644988151582383962084230238632786262600016940450000077858183274624157030143381889891643512915350791432017741043366734687648175401152290045853443379836822497657341569545719104649108454311082705808609660932899478506732132627824322735455363093298696148791014351061284911366898545926990110109215389590607607123382868665647848123858150841389544517287281926151705343695059203006622381212840029708185236062538281367412724381782504573451775200068943589039618327674439214232479494796506985819308396515094036620352266948483251808584050116492647132077413701680897530854524320335590389504516595859111164259091925242111988425142735875852912132773506518245857083017323054483193382999888575041150266723599908439141492419961153291437630247698976724989625393045154670128274046059139437121039647153235967817600444754700008897418553453906426926791250721250768729565405918362865949341661114309833777018039356053558168875750297571160600155010609158797265591092945593582430553013401906565559378575545867640718144882729436174375989717164039704312576073705223457256989582365983351066259115277580261319619067690244500707404505282512518273325361648984796340621949168215594079339114141847886180221116825955664824447337595211108352346590790382191790129075460659491045940190041926687339604114080066635066702486814229781146441702335693561147576189195052641916017877506380892627568160816816985874529118833777470547054561692839677983612019755991968748283360384037473195395765559966605567269205432254600949260514290006545069031573433231260553585287926123501627849666498202836105777996608743400651732813835120209371410727054057494700275173429116952677175050291068559180797208974876781023667230567469015238870168682171203057362765835152054895486835013370742619619508875715144605753645094262425889975568261299211473854813157967121501074147853764326941543175280092778384311968119689651670828085192338305076031494875469537294308732074451713110312847974782311458096355654670908679974818178600120960108778381349437832269020768545522007526851210694088302262779760874579849668699872785456797414778355456847705548244514364890039498777628406350901746256214580422825641486846862796758820757667318353657499331620040584848727832138237829381707683932192827847510454470442675601375470350047500451545780659313635290104869401463077613618808051372329513942600885844314046276710055066515452836231296114387270236426357211844316979513918373627969932455431498503542972322559770464722058566376543937737932698088248128578828065810777921020827031906202999339810239881285107027542544912526228608035736313110910627182663590659901420021203066281856231278043338093556100091066583679370454956798395650090025049366127708967911372834965693663180158137315928833362035584338668594755915235597336194837288162974808281896749938751609981604181265463171049115070753596243079443832970350564975463788586286797064321226460831876948044669082663924089783402197675503576261034551682080267488993214323264393098794457373740724435826882875394068642776809073090675951796912136560135548090706632901315705568005518813669559289991880484013077221856490201738684838636609606649389301689362587801983570277019072270656752866996820523633136443241687579472889278846737866800427237830950476519530513851253173162333701465250376549983858717481157782754067242316173596919184711907910479640813409995109255352261438611427276672738335375639575495598936286844239867956891059190400302005240398948104023563651281775585397585053985560787324799055619692814148488163307328177565080584076549062698258046171578002029170272028654086088742711733442346234200250040217733501500561969771232519605793983211519991390370236094354016607885577086416448853781157161560346063822700750244927933647415440484725331407653699040804308385680784201065298868978730741681488132521218871517226591317112022767755893986356724813041275983590595257250167483921214722106985321981415014495135962740669394154751477895237957215548017711726724434754036333924922971691553948032294550436852566359526518342423851426606438291926419069765640702395286412428174889733120510263756395022114986836535977652043688167407489109505901408740163042376820364919293825424030251324002491182523502727825460384973106653761558830103654991201181814317843444452389889551425104444140641504416938186275576660988167921916849524799910197016595743421824216334722166821497440332078805664683501545436608725884143709087222612903270574313513216208669643697832565773993427400373794445493329228492955636806694140893918228457987588017864519309187872240775530065071864884612558239569391018046102175655376077852069844193707863065282823073100859506696079358679983814393623314780828977152724692597476447474077712682115293181172575440744763563078815668387962855365993085502278541753477668894589802238236400609988470243054811452498912426971433344932339012535172781479311144063849696514377232937476675804893317538885348002848939625882323883173677811064126478348332758231203368400460827105699902813655209028151529907794660554984236017940011414263252871035715765271449358321000997213282399752785094569353299021636507305379901559072830573203334982129005142973789437115781043373798696960750776316595297664254818766802268670383535505288525642024362507280146463101404607052554590130310445642237956462449044647946646384003461838462419870387356855876723688620544664117605948774923519685180597735938762337600429016868835660194682439241628119173900108945617232397632133614448653092584854989748035377895119837093634709698762342685850986056103440106411788242405332302642306832615513495787545811593958531430292017571866382152038678709258509836134624992288848841607256702748777933503773985075897006955006362882437295889305366901577672210619999582073431556571082128532375766360851482323394304352151092013629777022491196454177161939629204065487788677999024373283087475307903963620770908744373308126712804500632087229719497188216403733261073465392362508704440273081288195062279266331131245162880637637194500455345880568265871118295825493372137865496141073515892857256782216566599790434920304821126253229841958972475060702325628639132173740548960854063485961212183125758779386548430726804733219436333491096518974085670384478846531030550823476481909198742859539767224345623379259565007065586434852339150096473892319049340022249302847619862932135484592940221601662854670862289194804473281164153838238595422448087549872545021425053056362522669547779237494511922799572335467666182875930953393443435289334023522858635606705225001319682816806581003976195212826108621524455216223177647616834968504317725877672782393370651551650882113933904092616222843976671303329828975139176717143445459008456573559590661086803956859671492918157744267489960624106041817387543326175335798119380306891081086156669473145017066030097880022457144035720286330077352996435319787354762530936398142727410023394136646691076074249829134940556382717906414908074309421667762773181119539733123047915025176258486685394951160433224830991956966939262986343358698275821028440297914163608368248711871907702264015247868540011810087873902934184780876953079923366642033246769996716457248235546055423019678605277099033376218612559776607773849337853697456345773712329106501969199424240656340514031122976374002720553466091948262234137880107627296044892510077391048054044286621364890459884082661324955044920221776732307229235003039351616582849964765798354335734624377749199415528736496943333365641103094644694684029951787463737945142206594526819436795634113493132976208459838249356464064498102131841461747609876234367977149460429142192597625534655016513701160793478941185426993726502664396178802775909073273856158865766851491097332195081260290294117655023872166506681348921838408921029034108342876611908600678233278155654131754696449553679345878322780585299676976147378496627270249965541658530396257545689561955528500938417952022744864312536806022206367810917458097149028651819308368467720743949373280232076289796248589159147307184605586812929322154748596664905888473133729900994812330329275567954193508065666139597267397347583540155624038915535028419037670608183668764471018737867672268326525999994177794057540595809485960768153874571653640238186806268510149543071779860173262918530489346874076948725708122220859611912330667787098311013248002053254331260717560555733657122275405411460418469995360844372345101655016711177612873994542943703924276547753684264508990174331420991312090106659764022357977865673716650900194035343664091344622651033853382260514499572360534572314392214429183699729077576965212729827425874221438639763022539793605476852253356706050475656124769929494313105190614724328990646116631780393590891322101327719163641903478462516406778691334029215762565283620944209984708947941938070623228494824364445381435335943809106174418259752137801523756865836092339334438760765493858935516628906964872733175250180763617516023929837426840985784808818749817001213618947903116374978487755427927421023192275429045050711634626142429745618670206636886980905807147796894544484576978118022606747807641019396845663811382870169670587563256212305338930894122568811610816555058710525120602339809604430257956203854406062139669637359981443240895358091646634076957888714968831720011848800473033644183560456771856641266979455951494581283899890429955990494288631751340804608915325806648197923591198776126212534139039933242977296405057013086202922946315128942075870870276966288443814319429591925785229067538800835172112874211571890751610309049150066011034164722287017454157667586979961971999764364343806405788174989151694603035994119919916789010044950155485594594838016000932790516433662020157904327748505912627688082858875938905364701858445359559371336181402351660302166007292216653609997403215841157835513848730522740014240823595778394508824894336217568374986542539100462298524561808382764419479202025114684139044684532025944852210395488141485493799241756658974430419196224776251893806250439407925786201564472955375849759117147232268075544820857607296100403766220207872330825335438223544232755376853522047516094579061081332764378238751466568932364739865696010355911262196251583664687785131729211436416010101870732405174411841627435147037448879187010059890597112039427613939600088892339825931756482957702543595712419700994987091864641528834931382194687508436038715969610318387461752495033650857272014817939798676787344898424216551960629387020435657318486445603573804849468144941187149866184662762099347258199957911471496254246088047287970338395427888522027048362170973795682544192743046641402574692994272231558308856513832761957553223369542715437493467723052420786207586688421505099992606910796864707633192434227779357876001421614961760005319729121221442248056473748500908302271338501252697150093460291896027485369652975985110125975105719600978111961889919949536392801942270204599901320915399524941633604239014181073459309168095662723214014935926136091510612641446593358821775903613575261814891571323225811523219799732486160482647446959026068203010151776875155190197146703639780162985126731205335524266706033775599216930743579050873568415801953441073325985154242862803633827340686948034418516828089112773343695652690719488115417201534864199964214940195363715200988200833801578840532174577826043192049770093103167408051056543282478912954162393313013836502613909219687470050154684541963724678497035209211358479185430281078180580456029587980521915690219478750338937516347928604333112374991425248072192480030791701425852851374364584556567628630405434735631694794618418013892646604127988341441692623940416254462025414928234477970268939264318606587940046756707709399035178497652925990696188986775041325838391718798173032787439814256589246901380553230769042782048248517887368858623986490675540787821085596307109098155109677605536336386949481232121680031034105122168877510420361331372856764831208903563753227226198203571080761536794913253448268133182410774031285944107563752539150633364011842170061779045441298874066528738893673907090567526206036872406314709165758471537763640335750283867384155286393191570509523214093386214460325930128544129055899782188567673140444376846382747489765109306899737278975593313062295559312138383343188849298640674083912423634461589728494475060064371100945682096025899521929572882071244355831123071223410006380442563514194853751407735124548201272783217161782461431019433990959858095233667689288380649629636921892758511075997575329322178321286465993381846677566483875181459238005350520122480690660449220628242016603457147075577081144219058844692724097747079348413744202755525303628021045031361028370807151025766546489799381936307186997419158267065017632327688869022099223404034164553347688828697575801986444058610777695170985867263340798702326967947836810382116744901794617536785905319665712391251356355407343799856496604177755322533149922710870643241964254429695649998461762344588695797704132084490129895175770411466163846086580567307444157697167877098109077682220936851594890542301548027180428573695837011627670573333406630280320280002586541800598869739523426496603013602988094184935150218658632716839613176907874313552259995519956296599227705518370653027778848564775709996635112649325375220189380368841864114140619136767158275584865646151534143952485660271138964004862770952671071640607004382375367308336238477513038055838305853258910999748339207314202666601673779627998576647110168590161493967804880088780156455998867695500695454257412532782852854050563661131848938332153394420663515622104204921668330077328983680995937961943105509583374842541176058529927663704701906106719589473336465515497094771979992789160719930804297494314199392871967847986780291391329173039279104085615846206951026211786924779235266335984702708841393954525843650690403664188460371356590862672253498460357731948466269276961924466940133610844885322386081951824087072161167257029014935593951663323616626902799181390951023903018973158167517360817222520412476597975026928876923272045982311182181575437197570998928263825633736798288953075018382665811207998856429963334837537752631143928255655406334454328135577600288881816176063581079440165276777838923132016795655297988336394736771415735962977362132925286901658094294170479930526622476937585096920820291808143073054141012431834660926147159369187097311468022998686988828538970062831074832802092800860105738205675099033856639360725003943205849287834854485444810806595279460405125398180246560848649055147991926448224845647389531724836218393771297729755691005011151190158367336157522616298019744602632838269760716297574510992329843119533759145418454600268835378894240498523439666156586776763081548199199213521644849201835815327622324317886069093103049689618875929655093226820400090416749752021752724193612896530096575527047334165600539979120414268546574077434093562848996977676450139469643667996710767164181482395211054647325148956985780634557211201185509852205377748582918976835552786633298254398178462757051172308057105788239419011454840715922485536463329925520821569424670056062176337033106307162124885319172543767253671353733893956857373016300358071528631761071068719895451027962027998339451917125796975840920021174119943032800806173345431523373539194026039747616040885213444903229451096453987686387822033097666912833769077854614603003125046868561648342281104993969808992475674672761389697451636604174604837375441810480074860827418307506070738837147719739426074487831872724818752749787339037019490169646752697623741513918368861357497919327331169860417540947067786257998099611996676414060957355326112922846270671107550137973415010823135200119158452877857148785799645144245011425092830610449614328739473459285824301262936584325672656303438633587408664127062240898031315250145727170651616460819583456362800409628918156017398671511905061752528924434931176247547562570183108795555165633445920348651898915632146130686096816727638456267923187540265863688423153210403002582029367589148645014398732761007924600808807470985958651148466897445455599426379133952986998219695403325041834308402953592152661520052923768532652303931904368532395879235613048554546569551729890679015047089948773351477002029513219446023143921794264748532101586625214738536819345935536168037397247187842102622186078943420309736771718276924662295493434967628675054093950080943737415348616256764915460452248263333025687984769133732960721702990702935912338564357977529708311625611980988614007634182099676357361250764538969323559966009094540929688196473581184668957853339842500291021701289337978647946997778783984631331209979985957299778157134678115137581222226567671667791748831719903597846536426872677809056763959781577518275739692199589372404108568037568430062360044796335942838055621724799799392537281966072981179308727544845232595704692145903103958146345280610887048806808576460832386485172174495342127184892708767577138973756713283741975204564746582557304764090435614689179237066199187858094768285010879991833603665334645708725592505541265571277048278370551478861280921575196003566538602198598418716984375942532603174023889207937783649488894101154684866026181845520514018301130832129602998332835205988354079226186539815815725413429434025235106644820321344001129471820315207572150843134827729411643445837070466636940003038948104479898851050563803552832651758241446933863534091932183006972049687941682136737893175637099428962661948530950456823472563582955259408473053848642138963162601739118482081114135325648449949466062902878745295300270326033543209232785409232391255052256341589430435156137292189495296625505748117299619156422476384645217191818524515432298826589670842061342631622221843981321969380988158888615584473532849515508349379672688239149639318132302116690684622388511533845718093296056293126674297947040992400348373403959788735836559317239404417796626130266223033782708764887454021748863842713938130540300062547585713872887544197918616673950514196819194977961926008292518123572590787788280633507100626515105300667926571859915040015694998609177610352638990118198818410147718732310495856463913955345306267315704679231909954169948938250098987847418998072658074691530164639911955753074678474755446404276329893501146714500424186185629946559299092940030307879266826008064611268637444814611280463241869239826990945719761417915314022502126417083584659426824340066879543424345147094669828350998585982809013397199933599034402751649704087428309137293959446198892734310091000917857618837176607182252339701574634741755752572708996499046276774351225262556536717639358039667660939616421355963253390046709577320764669223320876498355360157796710979710664923925924928560802607628221449027835776319891219581642306865315431817477565126651927442819362395318493793410173051934137440698704927147762147448826559490014497216075604444018731898579819919424555910143015924561360034496076664486062382870402655892788777331603044425584261031104614826805089468393163496216079973490321942888946337983378141508815827915206634541359150207166496526745253944694121601753740479922313450000671318924760944720376512916716095067189597014037247524922368010682162451500439570114907925310828749226304841376838074211730104229590958654438096390097244270382921568204327954326738461122619552578388129190093016814251143133772345176009183555419156408883986338754197180281371523499942239902384256735492600011658893908147582803592982515996740310493130836493272570897184273224382495206134366386104616566736346806279848095169262880619359040883668287826466758734075931067994532391029262128501802620639108761875610591055845298609943029628163211515151646677608853407867018270609977494812661046389581281741535661681820016420997401026155325606409923326453056277137677711704304548457193218981644447212936761350003909159500482370289003033710560319689320673643966592808701072187200587845461796988396865523013802226852791159300671935519167148177173884739698953926893514910180353298978009254235765429748339206181493212026870199147962890317030148262987358972856848034032160185918052518180248586488045323255691661023037750349644315888832102046948227565629926024851921792423998607285275888056019532636304733765549097406051918279868931451655116012783773783566758453229503327724952305787897486923532601939294412283856944457082279096230080098063796047062777461365942349939968071666858894791468948884100916912334640890840437700406914005170320195710909224536387937287384406634034979151076072249676980668224288451244120353111734972848201565921403268831164529825235621817605596474322525572495209346212585370481039606844857678044553475458127747446279569608501413981581030299523428993990752734384309786254898079204307920028642865439065343739507789189601240441044525515226433333384858668839412217561053194683482488740448658824045050781581506012485971639756064941321015845186415558109813305397415040337214439460250991020321544933602365322685587342040216863444798452713264070733130519824572308938211404597556072328660273825911034410806505601407521680484168499364101731208839335300113754072505436182025398169974875809232997566298699249644114835595682478393900323815082982924272069248004171545344604496524408977811632258677302903910326628945920632478220756237857430334892100524629341844437626106420410683898974908589074125183322261042200683951502566358663327248131492980573262748324912418860456452953743416408002479824674277936630906812787510307722370433623715556709436629473295261813753805262350093734289120551220322426975924034713423880435437591668265822216194851015304395267037272172178969290440447932031316155773444406066433616108507501108438889586904546961847401402029357859068463853736567333662339133571028283806069422343990425631933680528304241205144695261494553520048685110093926926836700006382656647192739926501172065628063507137395306326677274809807176604824607853483586590812058231248117444073328394961288190359150010868145236614338211345726737415682464235461446648695993681153981807463930156803178502983524217606496819807954745787054531609096213840355615646033058017887293998291565971875326278364953837447725658011777591416558685722822544156940753989536130955857832814852982273193440047443843237812334404618085626666346626765061369661890636435527868709870613124135071791886292105392099745443109088231811348089754243557147131791477707266733960586762810873527846254596569135274907836032432326539204006609712537657079630877236741919284845290359574819557230927756503132839705756430957377206974647840693754485810629096096085172409941642538549465341116859054966126979746255011927438420654889952007304024312323240355372179517125961385688917100435535620942959774495006613601130518211082725805265949905912017029543610426965828462841080178758144838695252313017706461538524312152613858378225799486697711420866586492369089027638719455532519696599221091272922850829228550356509642141795989996379763936664577853767931928375366119687509331044198943019688739404562522941490077382649431440216901149308458638412524577344439342950904450834590253295578122029822251970616046035169447631685580132668140398178601825427556872430661696824916844134981915609958930079155704693831235478605083836129080520904046816631235189188695063506712969387850356821001312443833471478552532741853533458829400704902424767518011187796568683312713427870109657418847255844471745171906144698447422918527663837362036330743786318169305072069156955153468722154963492065058171166150817259761152441096554858066659612282799538930125054959144043052115526542219911556128238794889163724614207189123428597248790277008799865659046310740024390364039248969298016334591939803448973444751795138042448199017337310850861797535531104390869844607052511027397076015202494087462755035313333718240881074319887947989461055963981896372302532183962874826946004698645923800686904801942022747898804632746506716744979079817680501268155145076562930651781687459905414656973749496077232460948907018783717281013619293025172824739942126821233542114693672017372393411030738390885387735485894761433187252034149300382741007898214901886190186685846808502705231475072726607503653315745503051254347420412331634786404031012155695950812124517381772657791373332504813164475474041569013618604532176020604025398175674149744985288365956558781875886991731698079921910246517471248559646847569280539330064649089023603239595102701085085442689144439058778244976012980403098145196682670509100326027012836036898965357860724923960201461609837563794967657496256621689147347077627722429082751954334748972208466205845123763205671634225286414087112493887118520150268949854901591571669216790908530290081048878264741298996429924842697492009475970082272380945832310906709394041336421209062008227482853381135025159319729388209230262099507610041888690365354673499579861239321726615784333481650586654767713309152425579617228247346519327490179696044533229713311672954807179508005509572333282530269267119228259901343530016536635526684313719961734757856677452286485440603872952734247866524466106223303090011863496881619081124223475641914980719112024527314813593937207623947129772067204401408322423489985293871924284417200645088329294513505241698487345273906887747492103242540256033352307017218104760400621683889114621520919964669912803343034019348369111160913711723015313274563746897883066693934703893069886909056157926491660997480770227058917954241734944034554678223696985854720480807950974325658051331859746917395403730474124797236200356654445161482368366232207038201495888511834785023778750542412296526019952234201555978791181969748961180571792780412571764217022262626519612425265336866999612676012087235852917437569957845747865790439559528604131603048926548696901635096210663915391279116476146802150015150426261354154671560266176180743372057725134014391469102618667917481906584527123333998987533698152830376165748288801458500230675555300537036254576584589703194857983129067615925738345176242725461439116235673479296018617140285230297123592809729071121295816629284760758663310513306778344698160911603385568186737075879274021578173788618650355709880467952164812614883197765403880329387200721685175032288660215638752464594662767390338634318277684510672799505032404761809763678311577594584045500377821001839971855890908882352777400800233512286802717658956991934690479528461444060160431519642727925346957305573769947579527430628785430481651364738907007743903461394575777215339918781466002927276999050635058814821798297949644605492612736029324796275356631254096401700303718985664020454628256408360202644107503652923790639028200948502834499712097983588199624838026360390372463496487226560162450475849901903870671035006978001207508909947761488507339547118552115818395890264205814678658590599167201881941120627953524735221723783120072132189285114548145660750687311479731188717838327482735552304550835766368571178091057332103731883763751426877414110209013720406654934971295383517572113556944701070948024759861979796277132379170464200212197607202237345479139286412354489393930633256495074829890977399753987624369456566692469610703871015284047071351176908301155880520424613577484360715592925083312175464799672308498674503865225295242732614926856257819225190879929996782688065340517643837802104051312483096374698006570380313715767616778921405233027504523705227315659131934064623284265008643452269727833139370795715407574181244617960554843988166892364132040918182260787620611349368980185193040092502135768088408048798932731859812127781444822768850140738029118325200685564105994657226721589631040629048987174095970714384308224913202389772135387353477978629318575561365091238389408060696703086685811440822303451545837417302079300863404157068829602599594617105421401084801962612588546309001478133988972233677158388684196981085046100110335233842902730737183715485519604396650409261586607952769043035102154349135033412809699832384722061043555315284839395661628308881332125314092214156312938094441195303725829927912327923722113659500403695593887128593401275220827568900270820418577098030781292497452142168379251576194616987485057325904286404531561248893271138818236215226365490735117478312519872531682145970472981260866513956677854683872726939132028923637254520142055381916329371752677092542533042815798380020772573254597547278132127244909101241515655002886403855052279128464278512903070475870271142567000604078353792758725494509039908450226000515827022768322092977607334161750528321779770675310433280513178307182233144995568661017056936079408341061293798099116821311992316946108612455309431733123732418587753275675927049258931590192127711846750953605812320165784885296183968241230340423442815772790313383972975518608922902705897526756283944056593335549093367954244499798564286348007221955787194910208944591608383948208190756268411958533423071098250051319919650586584874483668394492896492165395036553809766324791386868905767238549485360499639283253408097218193619576185905374417007462840149403585668608726358043940045970963234386566342632726194919744346234936550438005689651601986249562692242672340685458558528996206769891430959083162055199618602316294008407331485807623315145095842068343273662594143736845286100258055939079591742924104914771716005418027391104040846312183780418284864732942192270889636815796353376500832125340759276401825007285213911217884162854081959624650491093307527937155526336907207767623160224759529634369240672460381555780166182415474985580894281882789001207893047692939374849217227757205900381708528020655157314518487374203761886514927179225567058140027579020375676265556545751369133912189638677693663191452565685619485701197984812062187839037613324821241109706355870140414964901926448449774092863108413947408529521777210475835379832217789984970671504269157473575428556015369384125600723567386007283081226892349181770122616420777901173203727962178413528786578132774640863588911968461039586294789962006348262847662701877127111582913116296351128288511117337690058822264634222480221429234737071014112926314984630427837798306629811793837485714458311174410224584106609456934766451627877237082816034208566114650870964946694782652936031758623493707303542612678323159252790716688955613571636386483275104328724616612882024601965006012391261239025952801393181947098596470230583949992155280506350548240242926178188233502072383844860095112133499806202594069647957939350406486427970455457658472556673192220308821168001463673728670887615460659338163770252759226829413106247865100955106335861080120461188135680067143414320668534770009036421138548938932418654610382612935251976235515904069692301408696548210209414989036951964918346575533066371299361799261795698559978543530289738632169795803452802028233779764290252268709120056957320841745157109514414400071295052073561676439487101968026187971351670560707857569575292109859624082900708842033241960462914938216304836623028227709121055033012000089152572525269205032287370728245379827757869649681947144649259336756463499140453321085822720830478412371922155997388772377935276019763236739543417606357749916119458345498692960446030493352973492704967109679705249876632322911376875855324584025171454962717490180398547864589980810495780942630155347378863461521095426804392034332744608086569205872561317690362971882012330430410180398891023938452404536784371447473076546795608440313488731204338928199521918700839816234742607254364830187556473656375155063869211406293794408365850573494557103654133827179544125302622958455093118897059685035759557830396485349755713913497240383690750348249285218593882172513315243018138005600143422411618949762308645484811716083003549246367625265470264917318647926008456550582753220663278732835444906943789548076281638308305509833885782351931606092441596827483917777863466799875773798297274716123983396436019279773249126454832004676912556111422158018929884937769460208365665088729556502285323245750649511312136807605772935300789261996098637503661243857518166727196961419025258161403817189428127605407585324654623652480922914615872291978365959381095337771865984992657853421691648114242022351065084163235047307707293292509566143340215188455741699705447929880160194869605245513554198927653517020080419155723728129036558923455951841160121762635527373744994665291343575059192704193121811002021682282926120349757503782654956820500256385867588811197865253608287111997609699590122291416704517539928868663672680308943134390433958274231312185596576826054485623426882877567232958216081886936911905428986163901374838079057232874116899482615269996684062303241595127427093284461947158507979476807212360161068572254996211567652402143067411700412980594058080857430217165988995564855914886702202184436359333533404518575482997158018362511946289648651836634789136218778821574228884027341322112281684058568198873085111151886033784783809135755130392999404378651100422355207481798552825855695882259477830556155688867327945534343565940013465864772804510505112437672601195157064660066068831717824909666824558164380963345630973961280527328765913060159648513222081553063858059601054981125875378703439592206572313655386205358527618204026545543772137611457943604110502804496182318672860532153278083725583552850743108176612608887395213087994336618416496005720326079128772282128793513114864198382737261745927099945047811936727637769049049848276688938200988498157362085072666092909204541494886836298336583791512004112998107958445570438436629301840676552928469805930793820666365445599685878148800737146266793962148743313668716958431681993561840688124073675873120886651660747583464034900968815148161701456047631898970899376411755006167358463440169231403850263925544119142864827634397882339727293503890928421201336034456963190434382630362552877277707664844859010928893827179990299983838454278473094427808902862804931312332936948249575399998955595195706012270181367059771913425898897138451855060188759869050380202194303383559838334678861538474031553607365480344004118073175069771781236701825808957999747240102012117390990445334783572277204948850837635778774060233688054181275905423485478373266236943849531525814346205698217567846895764309295060454640932874523404010177874112413301188387291513557683219082486524227946105346824325706821382965938723620164215403755438856186590583417871919336222564027924871546884252223421957240964708045194909523351414833886190959804635240637585897907477966859303455134922618998046601731182888316486460985485503254880826297981176176361042047115220354068795235570729156875406289288687957633941017745057173390413561823532629469239510477306270264602939730459614659661982167450708481268376852083442766957804904402273852088713430555730599114177660998773404933268716024937071584318643313030967764319704988866541352826553757170476305373888473357758919570481675593542388683365079016818236369427417536109817966221043447142325403450745818099379948623240745044960060025589740568331908494274969816684396795966894242169493203708124889912881890045328952378638438305387052780417797315474894712143168238699344916257686311143926647524579784467222808811030763190405457832982100022537987801496545805710870839182684158834827765208509319354287210752849688764342759396620675502658455370787178082278865240945265962770198110032700375856487531794142110245668493168846164899887129090116034812023630515326723827079171119585035187451452105485761540497266558140626244913699491988132089721400886187747837364005321830146415326048828021572256531150389138705580395495991274567034017900073174177961441018510190633483460274247476431658133887212461426051443113381098387440461149853281338438819429318836713589398820857506112681212257130425748965121342251268658277608831649610307185472826786744597947237500927149202013422630647691503614776676731301008438195898930096981793764404378508798672969182991657109442426996045858478568698010332277636623111635149932656874869174862461781811902894630110447001576919592152379541104554502986145012619746396349991472195570431524227723069105384231544132428244643897554082332208245456954671282710828491619078964190894283759203748792574933903429930421852780181112555570975115713696570672039246304913144059282956749943054439277078940206984856337530623280287370360626591131195607778117615680856431978954305063513288460463760281989499554030550069989170554884138417829063349529299544512702994067591071530381346264919906679822220997486606076782390512504369716774886923997552452942445304987654723095172229986313481281992343911080926136044479111313043007083943911418466886842688335753980518713536386231169129135972027506800897661397455595611376753403016377670016744847683891188326061336361140125758724376007502844961716551643121041502388777693285700069323434538557398028675932883364745331008912168107550576405044480237921920251755238553525705852865604426968238336363581392457854851399358462175818027206500576146787746106432014591933877459785011730467799134827911011001135089055739930715525762053122838832121719491522692892206750299946712975333563613911065872763092025396034603577711940892541626184253372789670792348686136788573184032710548324485644583410448559458237917839990482774465595407541159586891981609811708293297252786483514956942751397753788386071669103779376714588886551678186725344704122778024883715233102989256400481198946546634116112814444071610048632848039445164740962524032661957399176609289864975611537000486215609013889822562549121003232239546490644776071812170401761150566782184807724751251951864878826583058713425308418045642634097298862660849405187998856945278695497172628948240094318509434488307577494049827797779861940730750206636836615761437863879191137332659406212232017001200710439799390629702318968589478888662854704838548751442988763137717685077525222379442286317289944073291267355024737610225534370630690751049818548254576198672659719488331125852736001758886033650703051643149315472379379149085138577136808596676904476247133450373265454367809493180437914542741235714266466918560065463980654840453032711045376686238665049092575380291277235698051585430425357979152510997621593976590367985689372250035998413547572934461678191769492425173261539441443263319409763310973216384101504561317707947468871417230624075483667212229570195676431406555032669953754410754973176828535545362509609418466108183956770086997478413136770829846553828253688823945896787536646274907243457903467884460490602472784941337723189576315380774845766225967368277533239557432740870738999348831500206233207889080104433585683052429270385857162457198458282046048132782251942942301136200817498258734345826660573149245646322974663671323476998777503634136283689844262972347134136464156235358277538846408354660647663831377591786904740153277228098943470380394515924468616104200705464043743294755421203401612505744351858510150624946412618250051537610416336149033494885650602293952103961915025597048704105030879851798043951670280288871914986123380733569324236024869591304463649093672948605041722183362011200885242240121866347637282318596434382781106446108192189477260672877089379038819823744459686737099451574383669625802029776713552878559425185344095918852635918884955681796798655994067123122336885685534995741552305182347868107953581998512822297548544120629895795101901752342527276589400291068766458088615473880608181407239788813437735560926051747588195313200201285987795916177819096292335894136867845397261104021873125204629119121165693921391904495431652522810540313195566121372437052795487905606575255917837532678422496196084162968201233246869665780866784007599803650091816314807509861413846233070920398202908545450506685755385019817885014457137753362929565670410876393643929743810860660740630131371214701402420431757634083770622307768030298633958134185708100418707934748839192740536485934595256017511520092679394459681331878973341667147131807924098119713143378015173009050424488465223886453334022398400012042824852032262213155306518352768766155722131471559778344142445398288258787202252476529748297362785148671852407908395139765296592374540838217499463702685269856590526363947718381388079803980090349421292652586662436207472062167851069160651382518191309509533689806315629321662101963399029028625123298276072809750614458858049518788171999154188901669951315981984812203093455590219566341343778965336001431708959761636005955747473421542635453349951083164125066752979040674888663081286180389688698259331096931751102838459911993576628245042196889143501602162890892617966079046527577476680723485995652258368859536830400821565409521802108255462800564926543681403359785051032318285865024943957383379545023784878305229162354041606708304173182545422927549208793710090158695718113992465837886693981094237631052981682938473726450077203779609032708224876053521535639781439417179652835086285007876459920769818381492981750498882387974745805716423868293869564340430195865860205896529418925727455066173626900741144056982380569852144011787519572953769133287602809602364476999110691331354893306051356499869646592636395876512063722527406173277405561262821716628048560539493484260941919751871765497720610193806847225214025824826340055702996414473593639001689581128717366139345916993424654865841081368103858200575035382029667910055590085463536885701173203319579723772538157407125146937900354788160134157247221492668309958739857618456043337467156432592470675436427822328450937629680274166631306735208862684896786867439634513835003849519312872720919685338607880891453782568115379087768110837989088105708050099239690952775483455526198391202558716231952829911135967401777241063863966862420116346448324267006371009351423854939186374976989595675746069232480859502037701987039817546242470542674468759571915197733916884689920954061671438015943164561762634478798100049439955630092284248737090999708777765803855596727073817244594517042535258292102299778907705714208398392207371270720911914339562101817383200217540468739607171773003079235670556649324101473781986178773231912856813668201368622220907254002312596124821690334007246630280077751105023580434582962420799992882133041979503592529331898295414582510081626579110030771244183460873514361698326592876936690529456071987187443477539886900274046879043024340812675364425045624715435976223855366321803909913170814810424040339472728437976119997341029332114379570278254501769420068704705366256828384223551245479827356879013748000820994001563141395471399963563874477099667924876304281741230541691973685488312968382297636792178778477423737014801865800247362636252935195639881581093518548133937844132162374583602831991850007618244204267434403131242501499682471279861171001287514051167008725449603046563941923788941268614927441509112018304373334715576001617720041197416620251692446632454593586798452718489468449064609844574046448668711448976673393691544184128814082989437943430361970898669076549642776954101299594092872639979686733553222235076834345370473692323846962721279681181625830155229960221525007260164026457967563057022090614347152522379279885131524009930957771006530138485888706351907051233267459417735241881755104223814359377380792289759451204289246232660093077477363858016170817893645193564379478300580990822988802550525499858923522239058553684714553674502376035890893678409881784923590199763831487910523285649028684981245896277140581426046935339770945506688417787022141491363970211443117000078052946569606085667975491760799766461061553395102961071911637323555809776557118333232339155876566727672587257049062716741774866633593987764537628412411975589964928150400979013084089593128662464112296071740771304712623798942087841733528058624825393821037535918401796439440081064717037980894729708312851143945413801676646396720230084542174416160302338118098697056041881734216621369042747466174785400235813407905180882547252510502972547831244378509260481024397053927130244778504375053218851679841114200760475505693755203183534424174920648866010692964250505224758084994973968094039460252268573602164030838965173300256549998937527232371083798870133623316200148046031228894800210688713108587155912694298814555613003143081478735745988377080423676644923610235749556766136630602468223927159271744477049018364408235675654238468171984270267453418129175276294292012738559527306804873974311371514874703370918050808849624635744386919736066526673657856251924675721291917219430023797683893246229954727589278238831622250162964415935616513637134778343730406359178480201250885021041469479349751914483013854039399246681901339427215604468525154968833166065438568453540308698235112506306370392596805685516427250165714541408907076993814042139341271254686577005477439584146278308920717869658446642881187268294478227973488638608466097124633155031233166243390588185965615662818095646855963655028019495912996462468510080224908899987876925041647232583786955421064989038556374176164564030113337294671230303894375921874461756263193937553283532877028814226275062418840988161560374035435387974574034519865825380891410566489465358293406880733487786601961338484245126168527398009195708162284413106646657744051551095070483133720056879939160774281208278848951532746707139106922572673859811716645740502303559841559827250497660706850547512367370524127694426806367794062081598255173528595587745281396181301250292018377870342768644622978642027112871605302992300839738449070772253500244808611863295030253672104413710766281872588626036384990087411952076691920742850978084365580322920194760506502806438501551124870019825242734787943414616800124194863979038663240791800543565271733193343618103048334440685591902003078228900268712663374259533509992105397972070851896531923389252264882901786679971561130087011442401320788296486621176935066074344649127510418396415057152974102271232028503942911391587461458912000085598457079383676123257341614584519176533419641195888381162179577574337377141896575552766535543484790567003284069581247713439009727711569427807129424755527498615430504945199213971095191681266916540410527514828600413089332179434668979135515199985998857163996976121625125125926379475047138803988638839054645077714217803344319924497095781030578943886244322108953939723139844595374342988767920592127369649898282482835057096367907649777770634011157002362361922281980283596348672919425509391321315856696816915682688445638608946474168605071188817728591397611826780932925925148987823201088865676133703588064006107495904685263748041371339186570875994285361069827388916017284972898926976277046912109111170795381647340714826950234453718007093317781365365243697540242335354100821413823524536235630801591899650578922016450881513672622392263576793923775805759383654564744256809813491771070723137747926314625101740750907761547737757430606631451744969734777106309294028628253645001762176188103531135648326521302765651720564305749776381862407204673258722338045188963651684705362655937804473639562736452633737387156516504970384327469616686815877112361384691397249439310233494956117338428737426798945952852435124092672146308305174611087259531762407755764548037798794515734156967051698102005334912879182372474548688338299788377244483723013491606681154655939869836351612111761948464791185654010388817252223770454507269783023450039232477732795432237167409498529555743171104947993734680364413002575473249910070499218833814260896565852456988648066782293941243298469089801040648241240509817640945765428268953863306920539513310588896871778818954858273136654632843955740173067803276119598278202359856634703623261784629363042157024050131276247355266575592698398122303553851663987137926842847419445322382459494806320465441696849998059167455432428097316131073429321716781664510550384772026732690630833229127335016890222037649005383408816051316865622480866412559618958158613321466501071329323856941869853418710240508506338608919014414151324877339865844373642045452055064794848017274067546822599970871824654533536922752077465595595390839229072539792439209806744811844668171552614589336428199798831454086775516283855050207514583927195745684059014047365137189521403747650741973014075586534874480664105369073329832789340222759756444071190768665549453609402751015419566208053390500426031296062256270313801896415546797410668937837584965045383931280375403974586614892352666651624339040612804069805023521109177131654239595391487188745576583094300124932250177806718125618954518692846349940156513672493537247148695231442320862153101696588070876993594171321064156983742548027800104064255651907572378919484321992518101997246434190265492819796919826786256871939710620838740414123928083743580162261146220039766094651149011953672348657092853264462990852692158852002676727929478429168322181191122484018912359306616294499218844675983383878216731476927067678651908747823427935880932711165479853190051092759718039976326520541520600507419228938177611688716059448254845811726122978813565323867402199837914691584829001884321038457601872101955006173764258440904021101179467554797109591118133667384368251882549074513304893076943816536797160874615659554649726374223335268978429042007275474061239100818290634218256957476763121969752591862896809104115546254733895070930576300497128240172080663788004173762746256334099189221993264518602684271482785434690540785789208846022347362674746518663087647960292037798011178967164183744484270537769993761840679649048596081879605374310194916298778405344201592122299403412579250413526679429175683853015801689511778791257443427769450027877882567927071992906529171261316177194907775346463710563543620306840718684984867352105060480745093090937924388824733433116602705962884248579849527739114764273803135873240938509160178842880386985514068359992817306618564225802416069521746736825514076970042916013589765280756821816879681543433105552204086152680751884521440776936647434575362831518421903206939075261461949073601210451699426575277487092601679797388611791065950914135598170906274246128244113587471636806849373507115453880053154023395292219692563909159359063317416024556282427221297129029889074140242955215658166226841399793920873718133846939584900469934587012180654542578524202573189644692817664473361755370259216381934307935572774488699623020514365291422630308735542411154852272123938565310048972467391436666127733624629653096566323832306955595055467354150340628926129271051371517251024186474168568523388045292457784349946121257069286522882961641154391827513197379380027753530456868631763632215139191650022825670312299588299850569455478685885378663909998831800866346913733704037297826325050113314980365423074310252189940596887413003816899948092441002877103866545863573879831376518639510662519569576191999490786161777549724529963217151375072811001942738977689739844352731484061065785349571624402066638105533933248324487599943879872267949784727808513729527618291497181827415246619084383094287474094818065212623500219871394072839188318807250049344506926645479172247825993946879161893332657356894453307084812529180461680343656630318473323175984309079136528872394379927927072126176160817990464959606998767591549012637829386993701789843230328169183411614796777609285003782370508166675672370983174073956368106683843617599204202946670147784701061832868978429573827615755614462565225117696260860532999802293854828909179638116920573643274879859428611751701941262902057555100781405236264294037090767511126081579082970370156415223244697220810896583817768809573638132959375500492583729225583349806179502687520127207325008734494492608354714275887718712700301822042964148045852176044582261322621296565695334765007850599940568155639502356617629771130380637177005120790901758758511816421122871344246400803993399507467941443194980361825975153588321112589279220770269545575641484574253268202812431610751476299699316381658659727621942049747649535013354226366503611753461005764929279608297165183655611645860406977664811419578730083116082072927830324931678829017006129760891392514542119238214845969575894448532135873512279670446824753437154345053798016801046259924649959575048650863463786091031112682495775144466956785415884324721706851460977808721567584512848068563431959417809317630790185393567388259231356253129415320003215677815851537373445146056285233485643069161110322775331284381460981944578850756488665759691285798642332864790116567406772062773783405550392391922570727637003195232391737742216414790087667972358185779778766084391168000193154027896285675582013023988388405910971067857474364148667003247805770700054420342293914649955713158563261139481166708882790490466957069995350852700831251450516659758821478215769237062604467805034905432740385295118948939228848830109075856426077314896507808037860483530302396981159086399628234647279926295772377812158865049577127629437348964897868292828993647301867750693449046746054498923975751679404232234089710302136974038707535564098991939116950100479265922860157215450512127801604559433855258057188222449221272894199755379527591331825510106199252245068926060518924316925680744378301115451405742130419368139407362483336826390464541676366569962225775883106701512007078972162001060698127973771701343622237055958548663547482713169891107861811340002472709100103393003453336484915533675347283064726295170301978123585194783189142656555360002710185484309075431461753652805783148558203654047974211911377839245369466789457393584754730903565084824968639151164251847817666494379953226759843218460353457336190629516824245470587004695778463778497358229817325790964804561165279596672861586916337893960188392408136404900266504685211007792217871045353542428265134193907854839908832881582298707475089356030357969950921324780762226812450693022166937196373941973176597847823409531912600822640704750367369923365206179511289731529907491811321070551588804204853349408872536317481982219504182780533318734951189197565624779869014661461733523993789321678431657416069450004839726717074011425957022705448175838839522694527804864165804292833360853311971405720337244812716563060982060921418791828999864782661285748324810806716092798837117905762983929789032049642319758312137223597019215980929832823613598379094052071082822318935309635977946525635644328419297038112210988685544880741636400091645175593621772103091559503403034767475198389833620780735417367398403715106853123228604903374059283755353335060866363407744312907946957679335502755493402859576495572764391723738141028462834763170956422503838995419389779985340190526886474633603495287646802807882010424470547989840425073152471110513309346999527930600386529312602214881818664004298686003344542258033724171872017263156851196307507848993228576144916561547130203876147778296487621830653747575293533972210991764829828819559663416813131045843838252510903330941474500364477670490227100304085192968737326870084909268706259970116655886790715924464220465921839780229493785377967064068950682167205364546013848223596000769736959639404580097588850729843351632359747801998430795886582953829308647006877748627839457637599423133593488372369608942189675077780986021270873527849197795259361859195111021266187070476105014557296228225351704241133546599148778027774023913144081778949036266895996700177537986372068496110100532428818793412493913725514822787186977657035488503721927950945313937640712349573370736156011847912822108291560233478020379003784545973920985979746090469151381005530421881468170844789572235213884487586981128542472879644588212275946992345234766545728578930832109518427836503294983110020631226065137085360499584372031442737871818949958456028613104036815491045527349504560751286055245815397226270585695787316778834733685021222882784712943344794851281283507998863166451767829936809068915552206028984933993056114894350395981022743157494356387756347264196263901996210048230761934430898054193302880277717753162145953673885722676460017901813576209000738067419515511508142629979091036508117512001803306912670549198236488190951500561477330432584106693693393125306827431518348066088442752543515433075735877878644258974825586636726773562473829008425531465602018288046631071076298944804264969547087289537249447254478216223730856691816817648283717375892135567659866264421317875943528950788203211798525477438636083897491855552340431544468825878826417910751269324405520765673887705696169837418805408397605649714656330484680441894449972887652887442866656346324302240326320024317884962155098814625092051830532616954655470211968599544246637110088806693108096347408082565754996122727838208994458797341508695879585831065402054744425133446250612664887869946583399445615702896882540374687499757688872517776178582941628224916871631772066883875547443621143175398520790291197587272085786111908041667881830480679674110722812072085932856848242475027033092520984642773129043674925661889973652122847515912953213407973112741489748207656780273655662780926912735341114130664310044148231770381209531049518257710213158219439597502061729824952905539029468565701019822285237466758270017069167367867283585688357770849447063561217173461363112127494163812143301294202383215730264734733788894252467506394046871104869979953531434836203437774376288709614602166491840219515892570553954944182901093881348432786993507703270983525835858296449443759714281506281016011097795890907802013037744108588255346733270353342159010333667199832768262047408896980245425199170173003044204402435311896144217395951617536241418609411674339034190238400371154763811608885640433285322111077550556149259908539452391740201086681469359667352009387433348240467737259217615228173441421754834471043238910873297227934398289831483988547361610181544695168733616131971723334115732413679778373321129139024206814210455888168100496221138265810353426720114756666247142925721100389307789303321827129862235449822080693299519617426195012021302394381265461273319156889348181836558601715130201018993897245451568353267930845653556687520998843749259791430152418086189268600091675267190369613178483022133291443581533920103251911500967607049317403538979915913110396211834015177974171833764991836611390472347178494783319351001635410493281619050843661483940308609546133105402073492200086303097610958040203551367830397141728003109771478775806178727545215959562049093569814736199613806041134024467261491270727949891642192327307946877997158623339940536995428892653246938708527728749599365769298179840859938152574955912585581732005644303618019721017576516828380167664992107984696111705062855306654455491859729414326187327522874641680931629265892154390242758272835111084281755176958111853434835012147177450105200178527035355987763928409345713577103117891675943680221764874511878669499407137214672223600357170797484840492600916686389435164041706698881732034648323099581939952695775677703134517611823272425568329759624368257671628483920217291503189928771094993938936094203630789516782155693914874085227124342678477340733186969970248231063446518922657910239122764198487223068804829071477750010922480174964254721488796567063271024225718324716026446743723481731812036432763880505342315997317053174756324773837667646570402084386192828846590016945966381925190458273900227100282605075262691863416611483354014391579153334532636289651849042602392303622382056508458475855071524420564001354984948491695133856704568837252642202096386027494555139503191496171835376831226037599021199753393173721464302607743540445077831980185420358473644376386088178892013713166720127227277861480501740847935660294632728316422149101872505501125268408736067193234604410641139426646944921783129925917065050694703675180656234517417377714090750923692096997785204372784928996406738936651860801778380142513098512103468907577112990153843345772416877954612796413939162631110804954823809675228338987678805101065869072994751427408287126279911794512213395518435893467381526436999089849453847568843284342664717286025132358416763321829813451031183872482697212271416997108757650761741879064015244548806805648445267752930852319986021978542162381557394801242116053396149676180670383621339768218532820155438572495346109322458613905630588842598544872715345989113841184255839872581637408419505531375830176783669453353040498709851933741358750526166817145995901507802125091786813424572620592370436472631899582326598564832108956009609989045742944962503883059073195512054193202705978273876717171452166726505837064709515719586605263477131699607073189542325858964366080526901051957318975369231603407169815211056066235026372808916235451452327686120490293120290709125094529975937983701494252154097375051759988965168274759255988936949164542845413251163111509055104229015608975203400172753393064572571813038372627711377336574579871152730618902967733433909758340999535257331220065142657729019498959251249317674328987856577624594141326522835631916757725048410978804016681070682704535141181280106685063754757438821433645599640407137213040031588820883769202013621005737607373422673236656084432650879323225405218869536991471580389991879692501473281866684406831335101983512053321415255747821885713972121581025509516507737607818602272785773541728731239818940746461335073041849391614575333428879204043295476814567677758519300735612810320120921548648384362544713878077722839366196704126618019326131348259651416939904880721176426109676531820124806522654349960235492486473314548686414175303770582658186736034084006225269740570297480470140983648184339589009668586204000711928760090054522673945245640751796680295972742613124233158709456858380884122338031411859350920109821473285064995973591848414142215942056091742350571818888116095218329681268200840263813639768246449220188401267356122804985501309871280903541727023257927014952781380941004076716817767014886006458061434823873488938068161806397137551282007134440821050335907139270451008553615921426249993441344580560475068650597869719490046272372924286385809377543162798785891296593992654412556057652179656477066935042307110969254663843333378387850054688391854067788785166127284135892654646515790452612700683132599469457439915052763403997884572073678632705427610564458196340027911732964117255639115364303443954915628797938688263693979946498960184710590617399662878302984322075217748824283002040644364798383784065864711920347702776835976844622191069060558683318215620858375726010354246308291292632786968675121699195809497998914215442747376116499068509006004072116033457159983016629137639072933747744832112530774154956261287815053773226217494287542384784836166724150073803161854896137763666930026274506656216198069641096732039844866608739616766934914746655151579678436124887962592615275725374566534041277362453850781054851858086361435992698515642640611069983760732846253011267018922811525992365544911419452160990242632825490559392250771267527634470459360623005255773222954862918832028329690654252906927999403258636306985681778204225970048204862542707765055487062055902450887684413122692100145251578680128609358874446729006670767923511937640751662142987876921791381760753749009207798700312190383669793913133863135593383182336254302674730653974321176664223991180934581383392683324555068113266372658890002509481969695993615679029819517441083694586752666344747652736554185742007946643443620497665110026817653721773288741617480836828797798875147798770441940928212902823198697644578037210554517992465177797613682517808550232258276695165231832694965921904331260738824266432781049232371536810588260253129178825089890432266162470396825309045629497834821596004447249316956315673529084458794491983963735268751145795650066332913305479177337062920827536342506005708801701440530682185803873030052511546812203755663094161790213841382439167083968658639582836140466443459670839263697103997627881546649135228941329436525820490992661480523878523270419181882988273391409414927655914077113543395667906863139312177533223567068194013604372753011775985093010122653070359708835445350559125181423436632874782483537440097087539549682307439190278521794051443219175971176093529483106509807787812974177829720523608658083625567805761805289128837703349715952656952921966403877432632516700186107238475873573743901912994782876621991422522029552772845798273634837040221181047172355004153139094494930799816354467426693759229188772390975403631333834981325326841071864864941843328749139540117917288620929518154067567761069036087951187047733791899599699206959479218035366879513724726920003112507921784525404804879823394544719614978310586288867803387496441204430352034542583958546745349589739976929256253048616889177150375021598187889498650310678987689775384331112050479515304807480969979427526313370071671197809565611082222499283805544263137769377096526638789759422774117373019823514830446758634305173341239711265144385089579637683861286736560729922955598599285591564739427457881607869151543624580789929849601131527295601980695161047179941715617245206177678625736947314188829175199057904443040085642190090272968761148003089098200928129099005435758118573003886247062330812225476307781061230396922595289900769703410893751246403174937487482772204618479812809627859260611476545902861132342881349873896990518210366409837291815364616079749214866699011300747271271049027599853962798465813620792663468345984266237981813236204680306681709267709873456397452123892871231630067928097898586308885650312225587049512946765966822284061193958389846644082607333631328669953485350317051549708411289163588537398962447607165225350738347264775932312245207667764216039988193218635106244886990335575990713577276247460695500439375116387477836935608665322368566391079487395613161380133631493749022671280535857259405678959137012578520178731645774764628879527893967480774269586425598500919333014070052173017988145157925621707779736463948058339394478161398240558343467726259966138097488770782118282412534288766866255420782644182740889880203840503769455310589949541017687710172168187885212646857081384553453991789548699029736973067016390964193894626174753748461582975779182740304435527582504546544065720064685275688709241418839894092043079606475220375530247615414668634809569185969603153466699413093738291142808154019253881653178557098825689108518152258705672779905330520748520699468789330944473919312709538644209322207813810193903078570187872932863670569631988874747504892221476979634194055998630516040157683191877498195002426661917792826593889287752897352479883376444512883038528804344481999003174976254935623601263922379341106306394083090497617371564879203695804425132285873866788890653226506634939546485708709778555965788348019857108412149131220119763607982056503815683377523613711864433360534329595474508616115415820229788923575413876834730965938792341208114780364510124207258972681787471597449164621167504978833661552355556781873210671598336574061247849960507086325229849509403636830811634685102436116325195911954352419174454031229083850213685408956808599365293460026577669046184234473250538763380834917039042690997164834067784609344420363886146509700942409633046811469849781481087188987930604959546648753066115866024992637243386863187313369293934024582482572117234038997190683502434916866063349588315635298570862728519828812361348223685446489676535937885833164048131048941498732074605854028245564868346255508628610918437835719862431201145631086081536194853830104436216390173929703815124804325923158469382898591216144840215313636698921371299056984372488049326487369269659306642951633448237983404558491344166330268713415788459797427747449422843495677932345903849691590320885030445948908099164678962507672842638140502185871996913018063993082061404164460388438687566752145986511066194149165666278001206025740765287132624736190961905099778219457647114673276696056609821941316507585156897535532181022352385444531542665024642830943913086792901694670950770101173550092408330749481404915073411100575027843249681967955094261084979265543939278280081298311282029190575613857112414382339405750274045752135287261479692320953616084763382055050610960691877382640796880786223307935636492499543893855104854251037290712016843070450764341718114571882784400255931209917733288109443776445897781436840422215142090607150504461746596923448183383280422920854251703907444541890391314222741818361962019726670474826136212772873712920916526121583998232832878374350022753302366876380810881003216933488234427455183594273671639339370780665452243285563875870604652663181849022086564539795755443053459080096807921969549900809610802823343177911149443138529668721223458772089402648251614253133098459068888607615532693800082540787788225554804694141809769064641393449837605746289647104999769804333502136696484499973119701432263373936344548381993180191693825341978595005056101918863590808272511882073434866087411357143458942158083622568596668750166856670125229152954991358645426927490640570099460272181587044607653677557239708051706714417632875331226821243658001284433361697408679211745943306833706495704161286774941289307877374562204016166300472176361284371737034198337861127002549053119397137492003817075444816573656975845511260653741910775594121872760202947937920344256190850862993933489426283523807159558202269991207968542725913243668366660199050235169750499838732690028099425922618630609447314082828291163416545176630533404066645980599347617031304022431148092392602477652447953475198455831698982289226948235601196467939461371118398179596716413697019485191080488784376954393815294879179309635122774581691895247727181033017575856681781337156379840764583186517560861053799175336980142940747900539318290992618602420875021285051429069688303478360408292443277427188903814765439654007156757651126340795732247348168204016026116280932605092384154002582853761716591416585046996637470862934737974923485496876857587490493691432266216111083893090633041445546369468213375880739999305771879007295583342544549413174436378067005622739108103915784422990407652450892515121588493585957540510359230075255257848048993805654255041244529555788768572198501171045986195086652231043671507234649415909283883659348652196121785497238643948366952319549684242166280253467823980752312927340929308040785066214268392418036149152096481533629759007971639903905015407696248173081765069675474320561902865441810188606569415235469762672346145469257064739586062489370828027503287414067165984574366258875480068419211539343987287405333028156584278496617348769547245899484324083187241319769727177862161117396032312281396245127071095201839132827140381895754829417718482402526647201261331645361775741751610559388865436417164616768110271921101658024761804420950342002838013836582705760996286655243975837823409118378666284650369214557755980417988428729914729787617928428771767017554457621463788494357295026176251987136987125986682364488175514241866462457760602025840889645190913663023536798171201443502297976404966240114589212742718194815059142059611473792013595551776110001933558953658072634453316822401765707230562356959982180021950667043421418317560419281832467262000910870512413577882079663477984592459804338967465922595936762260279261596512423133639340455134661787270765070344677048591747660982255246555682497803984227686646359884082657503819583294477427337032742198266938217156830175723819925167769989150789690387970079584381476817058343765327365193363192538508736139376551925020267358528859626464010831973976071337188133353707148931592100433545137290246890659138821594669348993250302835187383708962058642137502863087357891405553621028900632283316342509997721944462060305370656953776317316788542761346038752604318804105822725635638573541012934745435188896080945989708808035473164336335380737854698974301857295492866610907043026363213997436185737688064064268758227030704571055240035383021181666134813048249807623410366032350165152234840504878354274091057001115867866088674792544379087526002547258169384207697698173378805256061012914933713589158867588177812498656049755377336857393658223564577075947470908744023000680978619111028671374517892475176936204557596775594044341829575746448057999877664332045624313686642047163288804551282982963606183857533095869098403913241007446518759281021041330517970175269374469939102100618819445476234619570311101041627820922577724648215977721338774876307530876030756605466368188562029101028892689545618981521459243971984866835422571617619281040561023409187581166848159282767056669781394478795751712729886420981512338709644162259484001087158493580828201773794001104793469087928762556748150468322304779557146157873919460974498803206212293201082560359235992744962048587278783354739951314292257042960759185093123543501538366832117857788200311483154939239065331009150357153355271304852486761179721836194545586940246554087968861649524462317226868918031383168237901174977195184327324918249299652593385455644769509621714890022813213991737040665710505442789242535710853260766424299922588513453925503311581874446863286584287176312647807051051421860770439195284151796863915050296059274222511812478221719365251011498282561411258676668304699026321705491487482350015904585610106270456565389378462469274652845260473135474631844653876679865274888097244350395706009508923002597867688190248933166047450035720538759159432640798271790170148305083988918884604647331175420467135932701827847830000410191901365129435699975304481750316307589425442922304517005934986145608974998257706497341518311812615648681755399367885089206575179806020436596052560765402364748337925353006142807865550444825214544612360447958290767800356755181865091784351737065671002906743119895122936020984951161884372033780926416627051408961006527386877999751907644458168375849329676883262805350737303987670811735763337591542994899003088425202708813773396240268097814217074107042208095894577678520947166746055383961367998649879129119985094834863784128149170877083143506535971127885559049076735039787884047191233675422437076743394282430208010790011316472546258438316687143842117731667937795906457376435445281077124509370283609760301074237333165952731195936531742719000029209924241516701746434950102925545047907832254594257318314796721924809450988880052055636836436182490635148573256147313206270450527832619127664384699029607395427631163579850145458365190141453197604007400892063125106668820129146215334792711072705079397671375985893396385971237274144415639151621277279249348466991386171363800603588292207748642669244074220767607198916368725965359790827056850699048675506228040350796540899309370213832061304073911758456415861131853897015054044885943723087702009570174859058415317927090630341534648993302482843753331055445679573859549176259385340117817850193961184885613610921387370037186045918676638966012875345566757201833214524395564860372523889429776661277839712376321594734480709023964177955301790737541346655456439056483907163997859522410268879888653774854596728241021675490478630644126246118143425773253131499859711135620966305413212302456869659767898877245776872286956779566359378963108249323840357843229733414414455247224328103231727787549933190216084447868042922632213884902273274708755487108554199159246550034000577709650148378745350144211214982292706084142373469444877331141424969015282580822550046724095476265607600853579901246049705092252211325287967548255397724706696881028841388348578811032958760124231735032510909665123841883795723077999110349002973283744591662731210456951541711445863713915037629099372242666968513048988841203879068816582393653140928391270164093021421449294550363940069742246797114643591149250616184954200057712913791475188392106357327271074426041025688853603144470311990229453869152181230201184323607744682106408240641997376353788995729634383530636659875270021746431143355505473107016972149224431055760241960545925953336257282276655232514520220326896751516851284877513752967439747302180187995098179870003337199883736165614952510769652533625818748239532360226882066621352062377247168562242085808858493485266442861201673329396017646107953155296014904832115574328574524189634509244052793782769524461714794923374583095114566932686982142372787283097426595231582501444262269159936348625097793029199975292188368091537550896397127871699703093749173282941966089965414408128272622804485977859486288853862878939854166005744158245153611933257420483786781535695210732851354035724624686204609839144536952623732630000831315173187990096226449885358449539130194403816808959534747443195214218418459699766364595746492229029643940312004614158045606773009662004940692392874487794837550375642039213049746426194935163318589673713176666768169623153315034825002190094315956511787105037787172435773967874948069610336613073840972325062963427072317061719755088560093996135914248043849350604211636112585684779746940349206626243792166403304792722598789678726069448739583083296978688042328069530094974804988487533312927529775941691337082484211964622117882768308875371535914456346715192080140927606302976514493997283144645136847373665367053730119211545998843159349459950899846169504474253550257116596853123195327613907701557790102411816551294653820945457596647208830092011274193749904297295276749392664408042060371574057564422991206007170277997594888167484168994085336614102518539606865412803843207498436770026996921884825068656394120103902983304098078982256059223497631558016436458431558550148514685254664571215770270585038015852372963814584252967341730842002839654273929008924777795199532142184838867967807498019973952291981134301270317747511164631363061056027995358944371446367171500606243761464710998367838330559159747565917422902129529187989143938341944882791301553767170878448825434017948334884723652415038782671227262157423015123315681126033753538223441102788321453670736511095929866847341778355553324678394469020586174470307414045949793172913375598915877470710590006737712146849124628722042079635342480599041572967460244284460322396803513764724557790474411004102581984059286660661223674564571354651212867166353743562170715356446248495384562724524877205164994447678006084318159360568269984424251709925881738416762239452527423163554594110125626260342885640879504734616419604073696466838674740033216763148989311880799140119600985736600116723530126015633534404654340951137859220127658409486801703865962910899510071499498841830887793055432042971155543565231236405927477990415079287566977031574230158299919363402293794834129683550659695818092246376753173852814537723191539913159973098972112176320091277715837936206774238093311416867913463212996428135295696809929664381577566375622755279788863960701977626357163624880187473055564850963836451521648676147740969220975615444194364445984337551750734899030555472999502234712793634220764327130719511978405127742493310632601821145771028783974357301468574044339783060501221968204215545252073766726216992486732829720185714565413564832143958159555807731438300746505847090846602936797066493016623637395829043827039730419151049563246141913458367779138556623552503885555886608785990883540181838014984632073849930670384449093133956583832729135966922947902089482057774493438979325440813619888411978971931087461158953622509864899662912105047865627250333672515030801860644067452823766853043803007078319147427212427011637772098751815318385291334762620228125312527953811916222201999360590716684270332051077750889686300157371828058342802644774428893559284534998977408111357050620921189940877028247354848820073633079514653384996372089607780688976931947240990337871945996827921794700431530716839857426637210157044481530330934828953367178245787061774367215107364529056741790632526109785375863400067096621560657339471208973370979915388843996029381221990677305502768185802372106869754016559651856656639427268202883001674168393768258033180132641740803916579798548850713867057674419931226172417679273143697366162831133321628077962406447371707888301170777009460632317420384031539517432866000814322297537208859973182383370318353467704677703549280731483313134709307838711947220467426943382307108629910710271774130528967868684232103965243294197027610226313842445983630597103997699054715501472369316620038987965677777635934936951938818485112923468270197564988263001926132971759391353264370430069630638263345304000142441353791206277235609444277757771098374854351840437531143131623416548430059329469773818588831867205104841975556364717069385711202634154490824581346895704976566282430351408648115831587389525628862433667637148964315814548673794974710852433913930089928245726299594272131182838178252630511470323275556252551403547078453267036413218340234115719268024673839122512007765368102580211578380222054346378883582089606986009221530134254659919751832187344245689675601869989136468035739481501702892322346732091030609215512417376207837795710850185444080396758406452894992227654729315538316250131723732634260034595071864871415371759211961558257545609887585862665121346983204104293444374162672858841099690775593422826239449783570092519086487773154005974216863767821830435092775941277724495711120985060876625733858400316690273179857401773565124362128964313276745081239580882046251080953322112953993933858735257177263444769965312993598717047321654970828425038444610983391597597218643822430208702098686871522356404476087615445386213019585095544055749780053249007118605901768297276062852038440006296500806593805751453145171264083620558810665908439860979006266605538377850054860781869836568377013445368367775322355191781600193426321277239797858462513483800962751103064955517797963234375016040366748018812651206054318299979553368421264078381163682964481021789244071958041817022012209192863052591073960634158826085084735667670001234192822144073272344068526649560125072206996687390781548191677468758341462142879156554629150280300623750953198074957889887094805823006739707074519668002510266878346700309414351190851973472705681183626172675844877629105474893665335066587442068488497820893215654270519669718707099590523318799891112685641442855283379765506724558745977057580187663457842755683280291080180587135380206745815181100821896584720890171666484869475927688909286319676673114923894269082217429288323831021000660885462856790362024322861222054204834930434930399587652856343008223884337017963384339852814064465395001496034409105678717992630680597227227305919884207014489652126327535796105145200757058142796102622756956943251222479067037054645408258889710585008345605329544558292389087750408701302475609113001693651980939852691545784898584856111663140140457064267782305015128358692791467379595764688256555386907288640014232968227846956067407230887749067356442761034499764626607041566000665871753722464500931105386749803081016850530351397729960689393210876295440783435492792896221981863570012355969605650437287672868998195042887403296852469982147256138302860575784538296444808885682188260329963728448076939757245833299349635996121022338842575104455871436245822809333709692732155736987219716272434827372752906394888989923649813226374661627216903449013258176431759765841190093094058175379736999244759794573116748644057567627326931966435103567318875210421025256574517171309508314894433905157491320576571062630195347815169393605326822918808957738005924635297599636836551275851117107425417936831887565246525957092642697592260368065774003117726428212377052930801939874413433310755063737629234509999480141363243104501039615036111989216592299780076949419457836802678703812725953244331986891666277261372311186157794064029388131323312460236859139170294902604854937771227790642658308542653237166911697708794413233018013375361872385328147033236947044219919796160910118011557919353609019335455165192585682400492004715295532130370983126635280971132451381977246576385858082928456236964047108265783956570085266123693368501250083658025931868011166853656651565333060739071998001289962937806161794788470890722552457326947074238413898605854673748047956808161061147018093716182800931636501971027874188151935317808806581412050800036795953026566933107347727889725465419094202305790111228242640240185791558576480791328824258814021545433114541573965700254603914765332973769150784518644259613497516076149781520094317033522810609753232446995675910380866898185033326353475966693543713277197157158435631240538508220836879820084550597952450710896306825853871655081679462175397061437382306448164120522448160546209245665150700647051540782382832261316876787498119935371499027552704786107421828051992961071043153523288543559394871236960130567723993075259897581659013531171915157498078074860221818159750212328016874872265997705938996227790014585575535730072954833601306936370158825721273013059160533104422485436235780606861988239648609403297318671627715613087672997425336127921598640295694415525269738496991061867475175179116265998650395143667283500701231633586687631771802322045493826568628522019144463981992220772729182775626525328520901755290956602273142192162980390296263306249399869192098952078985222570944107665590011412733148683111844194137473703362677898231633150679592365546114787808743852782401398608530396896067857212405137010983008124628612062891079692575281343425459122053947760497217927249180047270234889371574120059583498969796505966093179035865240012750430475903747010751616315663286357982059159149182457515967464120878648085769432817174070194957087532145596853951541612515788262766508958580797836071710488176987934587159354026505028879665538193015018204759023788785968055569321165612897043414174072788726088057231122487846486986377828245845785303238341875199609206341461215914102867692922153105656347187187712534835344486513291503180687279115847725240280055899998280303302119373710153720039174785188833096195937127675331983812115765616194918586642528332880009822010976121682606167272670120931967771263306030384421489755337326313814643995709567906964164377685300244998309370787319392929710848001414430659299188657914898909036071109191434355656248822208844290851349411606482510452744903278440660418909684218927090937492865209999795221791675209173210730492862538036052997238039877484649910750482542444563254491768968763143719133093567149481956859053939823144607331079899571212277648254951290937908812599978819815793838565285748330640021917374326785352413569775652170090360647111728698966881793465995456780851230845176017978814878214923704702064137755844769523567199674099403396210192170683266136180156649029801686564463278468521344144169791423716766258308953386106044936034648151250432650393821552622739198315431388832352317878377091486879957359107920472115916624924746296761630088375380013832787567908389089989627637082647848144505227917168122025997275922814653282734818248364420973187369312421362480490354473985394544428922508160564145818817633944561081252396526617199184723213341418669963456303565268075603133651544523851636234973343026645934709995246450210320319667706746812616041355074043924374334091046829336267349320797720316898578546549404496427351434208748748037547385097652906773353083000013696876254722179919101004262253474133844512043218703437054996567519551880319690452023776774351569700549300568492443524370260493454982546084224983696157141838099711745316071697563297344784747510333101925973059335679293238822240179709965325629797162969088766894842547439440546052223311540932551330979802469729227900750266399328348544691126594728802863427713973334360877978307342839515841795537099293245262507897918682016942107672868565314092724700435003261306192542452906026570832696669270981421328834121271093117139079127647464395119610798521562807180904009777484315150440391678714122328545505820105915691465043751535154735806677895542354536676972090107835717251650552979881939427664199641881398737844439583721614225043265290412081520161497196494462907955267640040337202282289646030348011353123283995643325963151381637568516687034108699306448008709204619080068498492903483814673344902968854463211735457899457418173056004078398236843362270168948889619271424893605794201650293739189076070692485049782931430135886137064119918312358030538909238827200037947163383099503266369775775803053971155500906764719922647600221882065508837466472506796622385336371778787419640372041730869675845625242168384371371405867698367028380224611537846815472031274788109234764028686553306317607316641415027150904085853783406484171819979277495650621155221527067911679087380647543766583945124655012311649501889204468643291938080817886258817390897897447571370249098250169152599672260818702137580241849520309910853294628710076066827372099166590776307559878547500357543804360867928914041241189899332285283057173958114513108489942227804349220394888790010192117945538389387496502761563081853189101217717472294739454159281567383119949256209144245768589156218878995921881828007403706427885188905116434064449482224187155263187097311415784312928446134561772714776086022554449651048920803774858079962698597702399634462320143696475920169718443922316153041474917540617380418376098912854801196803945532969478772655227644536602729734743334187492688151322537961023611468644848753426565040839989503367734545186879833519489324537303062522641135795387599771644178906394647849561779561204160520291847046032186983488422684988750584532362153815990454396474720467824111074936101689489681134751903360213733187309383764032812725556301270575613125665124394593690946918969468324279569480352387122857179400610503049488642472294297787849729637790904064924486611644616678012294301430232689910230173280584133822255084235832478287417143331555733287607995328844951737929371968102321936048165671807785911781719881749446008065299583931555065571225259409233981187747167361560970377027535574354916697204657184241262273292516952045144280223174320469554822042285427829439696096336253922484207720676237663826842614179229319904101365466364990969422491250371725096002604580802473335449049226542981200212959434529082210614345490946137072834382901261463551199933228775295610342073454301609596029551563330388368247382726075378166471399600926407158261327269299747938138076873570005623234618003858310074852235213007986234286567309840888590535599127323189635862477191758505630562691368545091790877666317128543056736295022584164234230053299245633095466968836222334647601575487719761804514896506141168407936754834924549764596719167240322845354034059129672508403596538557195630509366726985698448468022836771293326504134996342414066421860786113974066370962517794982498055228440974488466665541878462496949653814549760978023265303616251063729314772083293130898363786956311286060327954885361759640795255368001270249180360965704332046466711519275471578506066204525636771251524636927932585217331011546971234860872268238624155756943366545735684987268093687379350956557564587881510979437411745966070860599353489398447969125181889719272173358001821924217546227322846871568074974427245649687020059997668040607486951218659550534793568773930369640213461007235908235874873227733577517836087101710198453627318595228719524087076274316402397996979077308342801120329741279197988483179104932485059930370309438533154111743291983490393821926766682112751706974978687448146957422440464748125366025026587522967372590118898187095380542705015730315741897111020804520701900238135523119231010648235564490908698245341972484070690219805754723221692178247680065178443177957398957779682366482127376015031883351109524437734607850456510455276370592975433897846820176726197768661448257421941906636613891895270302002937185173865122998085544751820812706511377526359677443274384718967064352183260477690384117918480873307607868845924187578594115178089401937940694058519886433162796779031733074977649487683126539732156414505301934273019873151274105910497566035522512618607629972609550344181542636522927974469495764783552267217097921529995779605734595669339304356832339758988071194069865689722458312735689180394431680561486238615896096412400404172522553722022086817910969198770469960434654158114841157068242133269195878800208123066805200694904431344117852446177454398626808144518402675151257828692965724976096187591923013019985434892195711971012559997876037171997778542813682681041784904780580408232975381769194092078404023724434612553797622637201084285410958041111063754791728073190015511952333591140684343098415488218522519107059724454532426086121557076163227135379279594292444099691547579687130329435648114954336346950046197687372890159843467161100658511439243660836563228428127969554499877216419339023521801433567015188536214560914580109408278604032553116082650443303165426877686427103646797291703239658321070211222974868082774527998037374737188991885136583244981648705076127574980076465563889874502645128404945888983939967161747016246220856054828100194768210456026211290222898871932577381610027263433124288420779049410443714313850261281924732984392546362582735980760720383890705149562275012068380125206771097637293929451382062380836252670020805350236552771865521379691059341677289730579895558350545309616421231008854497818194880156346462910896686447108895627633352321048727028964452469652884033143720417656225985778457165198460192509279641657708161139376419122799679788062646453901977073107047897710926857832999964506881024935088643761861088313125157803582651521896186074213214836445571552358051489224799321854624930049527883887970603256739161482298146480616911172683026731274565915550516159617363489093509695608691858994641721681562136401389449314271943280552468792418256848390273776277157077491313617795181549107859712149655053454190454233503579916059856235392255789761966258277590182398176917833115744253119637247709486519790903260125939913725148964838336992789878756602381704644979900295038490296222916303837800977308845633897950754903424122115143166598710868868201843856699318179588041409491071162498787721770639191907131963856276503397271390388350173389928620391020902618390429387312270095514834338842496528910699094461171457671250633277127183814990156959367385710207607146676354941169028551631557829065889584318305856834557412358657244776358246117989442508383267201004930322018865097452851895923212426100537376531956120422040720215104941656547730539919351955009473047590604654922111767998815208662586545641355214803162893105439524806896713669345039844091260806760040737605172352263497648540669055329504502595313655157037721386974316340455537338513170499648688640101271573358889466148393782233875545362284084037894858495725471100110353784351586555015681683894476190058872262636815058225065815049252100819722484273849962241392354233473596760035399303594708811447019611512181860462118636796304977895724420716855229457582488168943902328611254538362307839266171902332019915061630107037396488965324396453040545654089161448182902708857161314707247157994498393088816245443937939881663119949524791950163329845074875310843654820919302970414157008598660472284735586641483578824349607606525882662011170077741312608243184450085220059174053079185530431707561172548561724505524530967815399844750907234954291830557124903725597578507278546304713784113581790982632912055148307141928653005778895179081770165883961791338223735416923013333089581676956513282252093890731369838051764226027567065345376152123102964883724222620010588952530676570989567948415572811014745856849825602335326271590014882490548782578865627583701742733419245663387470137054726836313974858431183927703389670789558619031249173522579759278851286141641170571373728217850667747352485322097329969816547356950939184945751151184687994759560576732976251401739923681180041289918328846957621353301943987088702172873809497007451333567205882610370714945412618638561749299007722006585359832199903448495935891442995899010490419507385026600986762415135941195368411307029362958396419438909921106889463794078540089758959125321322063574449496672365729853099907393598587225391366921383977746640632951483404084797587187170655574552756769677480800508453465117540120000845698104300447505512856666423346968692764849616475049067676213159258864543014785657205011752133482540480661199008119546120574799282222090046225132157582926003648006306441123259363052977967949018464017538310200870177854432569671907325586515252885585450925077413265494932673909977013079233652650088522950161284586602120938745239751536225271720794733210551457025919127385154000192502206537606569395802545251594082070283323451140692685223702442102926001536420149787487729475460382666155793688092483488028617563578696470861690192802512193328287018613719718272107691306412412519477979814109567093913374791659943785447016151185823131116504053712814796210168394302718724216209462370829842390307050862296194977591055213003029808512694345165112648041882868726087066872825374819026019111694460714652385619605558416039421196432826790581303427032033645362473569351531620971275814352438556011062601541612221584493500164090018768087757626258071318923452217069338063381992094777718417405042251221274645448315951740904806116601885112691478425147987572384287243726791515724437075460143725959498828737300021360984739393991034504955798113185944555689336054340577969752509436453292872905743376011609570920420324379394962396852984454675138984105440929492455744217994184503137300488216931136444959626448066083556278967851516990390781517083293121477193346384418316127983100446008712020070476575996962912634910890673501933442041306443223554035053022382325673485444573638538154442978135255608957939886608130672112861145852051748154464939711391425634079507164394486783158391157723612155852572296075946601267762488029861764566440117910693101181814552048040652692737308785997523544322155034759944839806131578960137245659422596263496199289253365797983934014384808609635747186553152363797507940764095826836052043990916857224016596972754849471186481848403182227135116022444591276956751053198358453704953960708483502320525984494940975665979301592854839451291395510566064289186068689487325124710119294965177217400948975108263051228297706832671501650566778070784837135072621931241863152791328640210173817197686967652273880451436173440740746271502098864930237039405347437545625744497761456724178342131707864937736157145289577268423112051251668114430008900515683619225661989449409463243567625007799849717670286260005331680398284659063149244779056225989368427473923117996933432187838577088449178257058520917076770154520876691361618440488570860724917436316185678057712071781302709374663972978464279578865756915892270483531755928968232962232624681911863176483743007530326937804400722913426348144040067140077080178065578879388803825515423464533822410462357014963005405244225412380689447871424327611481125659895099286790968011387285793452156757931225054268768005223076480208421779307099525300808729656873187390537935143105990742520556717254189612884148325008261672393488265747283396748338912210890926055975166693623586803553758484356562746211505575103036462480576016515570476647901169500384705093085134087732323032610165101117898362560875631758610855698001158337377392589164868947122739092146059928314111878580645093364787990895919792752188809543180376086903749359916083148988858058868347369644607605018870756141553596430123503087617946442525557100077683343179501176328808441271274999260596035097081827911188956883858122760718720386544100794779183122411782124264727072103627941947478426580146782555117866964997782269546591599647590210716885223182312510319803509567355218306733516357348066256475683658982853868894010209350761243471639424211486922848877547239989537406513561650154976029602997214053040467358332564886731025813379191922961456159884227738842800734686424569364884085669683034855198178029545853962512513748589267481502036509113186238198336454214162782209471594251541309702911719606768300405546084271809081572111709434190126350656495014602759429553594097643270906973513276827777681202427857622649550048746096655850539217326755681233548687889348294802501818546159372136105475854554966402791092208558027726110943239503620290492835886437008556973270895794462326182837074896130288119041845955103334629975233977954541102967974638242849423396028632556913824540267645611394781244557943648980797398271792114150778123132492342341472797188108763890881902029539814824470784456386221391872403826867206501232788535270809022008127530130744305206109274473146417129497105127591615537947040621691261026789103137940605934913764717636263878530948893976442871041335676831791101478044667762198662698033663690371776230150909631991702389942397378459995210668870208579056415282274974763465628596037808133844295547468588219733090961269560284708507147181664163688527381509489045124171556110321884150205693416419556390027111665394173090505621003574617183059916152783036486234260911483248032296426921170628717476555899770226282937333316862948217085971788675953248498339716521985651592317134642177437822748803176471572609328650736140787856162810765428481169667211624293827819757776990062652021842788152307551567240375777128185151804866936110992527241481950826769806824912463975911158469892428454207204175465663640828561641654740206054035325016402681521750296774953604222216383570343158763487625568265203466771238358683069416149555542270400858655502536613535285647606482927647753282092840380529440276627170209771166171648470917779262529778761032165656761913827302190653747624805541006780063425268716829803014668323585297820615672433049917338366908439210963238798085701385758378782385767249485227976934776564443297312455868983503715358167551305170472431971281589446640785816765322223759983637948856648383272617861625968673915816525302455912685206718913121207109802152983504092474410334325629365757192485000776817594970429909930175736320127242517718949172997832564015364025212494011140288050950567007505800549198925641166157871056049700973386476721704953536310060140837715520732125751333454358084788813154041850210178996889233000071452852948849738041869067344853920800989895312859552489737778014230670672348935402524462303969345435382786293199691820419612589465543891204330377954970565318806195948212678803683677272428858328072121296456955205944884884858759919075355636727912749650501828537763849336310864806679393064368924510793147633719005909977097698678883317083854381346741412301416422262964060919732439675899084820444341271637017669212380280148944781998664324164208122284678759188899569759169133217521923846975400974994742258994715472738848977050649241085439936459123883965924191676797833647944835463302916489308655680890390956877264247136651776629927063201232841175416802623857793492216397870673748063040360539391568511651103537348057829685086042837787585786306894274893991658793117897498679661871474871839600454571778659250429224069455730539281176403781325050040141621426874146207707938022025492672422863413952987925460282921753507211530567225121654849243524020741927980359579361034041164677347781957103845021055592801892871046189364773666488226294056250131161978425382350336246545346435718884236065818762830837708904602161105130039709471964217088288169746804328251963973444439769124237006907684915574965406840731284688421939402996411001671991316659164722552831243032142067254824755720520735604623993538076502875899551288618579156136023401190008151329920975917063295801152179855997182449332415259313639611721711561082432446147411902001083476940215688035878712973567514809673394116850382995730717245302579983369131619259208095866186343565753819965358677183504105219534687779664006328147311088677218932538877077487411381238752548231521819979750147744232328875190672236308663498738203788325767973114479475020786389643442068019161754750743691038454754275957531080903849290912502861776109276783182576787538973486465801188650911021823849235360684654562196652141078915092496235927664123347655292845439582667389958691231402478756330576357435578185988445670348045733497095743596328584689853505625478159882734266813732545538891595886485868888869195800040990773421625496846500395034457214419378969301909491434151502923475960374660863939516280118664849699986480962171421368462589538308407688351271603263702846904255891939119591131840030564500808819184745878579930755960408718634354075891330599034670956186925411669273822731261172678602938566705646822016105837723943430791277862419358861423355259949617099829189432091847286235358814034504844154492938268245712560128591383524620542771650479095847508137733865098137881411861614471254296432657903065443692035541712626515669052249046802961144359873381891286539417265377528072976874211045615753865104559497274024990310716068716573926828468830519319455495206601616690738558013291991703026950944456443370549430081331017788298671368865127775472574853165167883916451029214453622495561907975766893266096040583099151228515465631856747244304117951418095427130201052959409679703870388337743617094452588567363208803753280282900895322254041461901245304372139127612470617851676570650799250962947187636538349032124089925831153473869921012608964431320404843887399453126252929119759394343472454719128255959651617509350802087468398107367909526944406929003585966211798344868586902309036754919515629981685013374675952279656242203790780886999445122109893092651313830483508762872376758087241829185231238645020488786476358305962701442002467959190916196985676175829065489565273154784640682735961562871756601821774201862025469148033229544128376859528256826608453730125064198899203841548527851456989200190962191405222883610828963388246193002444979129697958411247369225001828163137789559185959402960943466784033981182945029845650391556384996505096961099396624268168808479121894220152062763925839604293780777991970686904811196580484032134129455311007472447248777258059699412903152563629712820096080040667977648360829279744792316103590488438205253487723257006056076948458455713979132740401194580877795239558087684374271296056193066056210366711672574823438095858857146508875216613994921726652363218647244138194805696651633760668263432054642935765365781842117003333934698415548627463630585684566331743795821444891421261830735046760678646675230708178870533282223802669557414925915990637123027596661474635444361303373280016285088348446425813209458288948904279540493894005870971321887794338582723665097284803530273458725369235054553693861321614549989555896457888645495170814249943434826491985033358055503375807855489326481161795538222092692654713894354076897400247938121478491746494736952091424691969445455848565575839155219568040918139511277766472761288868752784889885889093953688612965462529917231482950629572734243038225709417728910004848936700421709989521839426123741155319958465449241798245731952635926567033244892275843763679425668062685617431078186776566646299805176645329815992531032899032044701070796782505880881176322957676427737000423420311078500165572792790982421795988514823002926830001414632636367324174363674021437720642748116316631747908374079047947821000206827463195602515958325210977893317033797175615313887547900726850740688327169633055835890690499630771604971362340341487039894495289442993264856373921842920012938759909157964338116869354781693241958315715408379879950681533301499753331111523308064146530262232216379458866542171384746096205448236515609436062820321398116018383530642789107270469703990153305224845986677018424292410536553078732509213163945179626325086254534230686459805871657224413623392105169687902670704753338530869753587961165151097318146041354145189982555770509357779248606462124536836018485536675247947486516004583043600076628106445468201251413328393753306681290164205257055338773577327657826074915910695558244294415235436718288237226978602320894445817796537411429492931913660623507035075154328588637456034008657613014862315096868919076510017591331852352542345282198017089898892444579311042253175935730814575609267803076210247409796479578039516522588156505710833432438610099771800533651578200322436260714381824736937249267809366786856353208553113253935757149143994163196854937680991345919698170761159322509311486899765059219471880391976608609738074119835447465388026591576206120222195566493437688978176928551835758414073615820403970907436602121772509980959241782845700930228145720684298755328217280928261815418828502455331531558865716661562023548170116602127087335366063141585180672273221808131654612233636180129793886413540678946207017420607572279710832905820090283804058542347379121448365048918215208183399614474954569095978884852631170197973675867624130821536522466059037935299371357550128538006604308313970587604245083781790352067477694916155588620483270903972609115005600712085014655023785653113350934085790245133443838384198442321834563970248014308469017697523293626997302362733265139014439544629010335615514562468416262104985615311111176258114609474858773384734984745537191789416565161783487719263202372785342963183379529768902214728473666977931530527844363791768917177921977917812964874412196186458514888820431011080067497289744932830035867879116260097725361465148513538378815526242810661843691827288389882325501133592328731973973728167147664941585075255937486843532824849672658689214032606994719432805455980561497105533806977732132188065384627194562783984559841323486763065521037988566574751297854529195091883585502720232312916417952419892596560448205114961402408678695739674708920129824792945857206742614910541815173941714705879996254675784631051873142654396635550850343064799978284111998731311427422058289832053889896994485067773233427273376744440006616285659202423965391874938101842756203950604300032913391984233889676529890019932443001180398218791078950016074441513550100586431134679453169090397040952052950468270196004498026502143009632880368775349535434742173043545675031243678303874795987354404065335973152584549463540268668423721246297757247333010152185257064823624285438996622678316922156982892401078824459228307792791985473830760023678814958133728086833613168398847827458604601628673356437278877916915532269968095766504710165530722761618740528755483802593914759945546015919303889385922739856958962842554183385527884210896172716020679635349684714733391557838913797742165331609917251517423672978000590874020670085192501057641353263274513789104195762821219388964919103001098686387811707002545316116531159592945830845222759734899285817734033154721912101716678466943451804423402245397621352984231821177516797717791005866731439045222603255598306720280287477021308025590453799540969589052632016319394159698688502473058698538376099606754519028549920262897673006306196968988595858825129516219793289989890387252411982002785183047709595147413571096971399262194719278203045349156378881600624564007440150188715987619492957972605744772280353368325033726292205371450436480301714384963508323969129547191174715831070724826129965724582120341908138864719581681825017050483467677966263554741067119946567299946853897140809647749490735404406482745274224399278248789454828799872361269026305764095159236424848979467191461222629013319154241071707157750944720769474751998918749378852102699297626134696970236021165244032527785390678891864250078637351950476241288900883478163191029450919889297477609314351676976931809506025544133337492331359759739345428154747337374993168304442978368868184956060846426750023496508531119072684675205879829919250503812213553522585620354129905895403454536493371199054453094246875446883060305655728651291830010131028948977513051466392377267882048205471970662199888419142348308165556455801565946515804152352012322418059391081744666303920692013419496235983889332795525082477526736226023942509325798969484246999819760207074929057918542505455369652909833184925773285480160567080379948275354945584089975684117035861807748926405724056486091764206218692068481516083736975485603981142019819902258284223106920834434636904086027555731540130509973714235590248007795337547369786731054994926963737809332861977399608670060723932190598851558505417457704021938673753333650722687597491690110326435816992367994879557585894364613697360558042611092772796842487002162733369851200395423641644365341662732779459461598494282811976607241902517416031090705718950724104810175117632588567148113848652281119261513911298731017576108909849563749843761012097113599129388048310623776722309647194575961672969873600108033027911036471471576588906101342277755516445513210146034194701700837650889861833622102691694327471274253629834758621168425496893110922245805431043975345464504300983722023215785659239904249810011188184763737750701159277027018131743563756653039458578126517825384180609821581480550272477285096905454491282620256640591700105717382184009644401102772160431380183764425293602518440975900290504005191181364455923262002469641314140230704960620924999935867958408741797152864209649218274121108130208458697886017557982801073392574934327103867997968586717179748765087395769270061459921825682571969533647527063106408321904522711831268885367765742686080876503090135607863904839450662025311193563482064121471934367051561661987122380210185410391573307759430560235240000523789846455472457407522027712485098023856471576020176728968842088682566402417931365626531501293166281288070853140235661657737430973703783143376854504497781918159372178996207753421389332500441081592930114289138172404933597631371939263136555173958728817970814698740971763764499973024796382483167330559307017245881538009209277745397636795418029153460496641761150239680698742677945554880657843112375927727117224132219042202349796873563057853002965472318910800579701680859124666233639578546218839446127895045333880888315534519414025329204050467866334871206759239106788361058447123401310247272908540668808493917912963073815178868210463172882745967017326301997686517699971092859394830242064696258972328816045126134567492963175620117487674491364885443537826095663877533205360263193437223479945978602751386218525628563147729545195124754002119514716368398205578577771351171083211821232950252460478214185572654746712732302075297209923774922268641457997424065230985786594731396354631847952516988268837966755013299580491848897212471450811693164396183892857695725877485352935333761021366454692079178378854557974656576740098310324039613021879317494710325547872575830697658466476704953749948448461888393271633086789501758068395656310306071581804933856108911666346123130838668939764563932431655460989559889652164954187052529860479019185214153241938810529151599122903228005358201148255538325622040783132862596142783533977635165122892060170950725085301628516489946825131798037381395287793663019935724160459688971367740772525442856264404546377239225354840476632808457648052147326822380155669944987592999376057503327677677530280810828830639177644047910599861359669757146558878464091264098203100607649204511777881553253338761148029252074603519581996870755794700062633715475806718428416793618215156870795340387225383610107517177251622990538059585365712603667458817759195270540857452543472383873639445534994767375907302828078337216878420932439378231530690356090068722743675960160611535884993107286948376739121407062502707441674292298583773923923521506774625547812856788268692680602434654311178429988129272605976015767955864196075966855303390429721593390263493749420059605203761286288697659098615351886362958296598074200845888540181400091783261628785382129616323450716072781749253783226201752574968476141896267317525662764537216792255964569398389765653501222920334483953183285404564092223805577586701060789718227478762056492607516296935926174091699842494839315516162936275568162142523959864389365711982126653463521903363181258956675400366783086649468508190631892693878789348154702738042063457387738514746789967363186260688519854449714262176539624156281648139515851676380654721063694712387432711998732736054344984615895371728320802976414538219842781132254183601248045769252151623235039866113276867420310930771119364500398936132669252879706800132139924852393383300030911405763021041419751210484149006246260356057539744175226736727088755011337611717651303989445088364120291848963392014171090106759219265008606824283831501105757150742672995021563417762724849980793378727461185466803324045698816521338594956439158635316535983079571392849977013532449221220478450877790568355137097430802644706018605498000308437021929530958961275320955252637894391767597596684857500949696861841251713917265772099187922987684774859999674715804719134738318234306668038975120492558303372355471552770119986214011378911126988811622788437693837853946615554149549224939676733614877526717597636353324391620163557003764551000737435721751549673943102207506427336065193659471258091408408457900231469074133961717438235172610803331380122258166917105276378766911679856953964873076821791043350573174665219809824270313156783925557742177070376271341374615132033324592276171408153489031420108506509512140693646514127322783093298485617428427836873580449760250628753454004601021082668101850149019360318622645560119593660955161350536587816479504364777344390791290633603015928776629553200452072491530780294669773504594995908980664986843347288656445614328112564863114396028079945911147650363821682546903091942839429674799614516339462212555615304521485207180926870897273045150890983345368379146204933964135009450981671612094791956307474777213989602363242849823766328555775153860409304159594840367364916237211856879863584108310945457798721684357460944765873197620378647489256378401921135844311902524717722006087647048910092248964547757489932052802933828718896248290665770006621752056162802826666403490088246166443975532930753172164103608603657146330814769888968684223437753273405894007054245068911460149720689378683946154318720300785650950619921654699364484548245902596001127826175402940503102956443107560332927546384685995965978733565166890454905704937997693208043516487621254087210899011316557143244745538618420939326972287494193742868161248160887654372292275393555480654637427686682334612361794204218219558162061008240176076216288665917428350490829297728232124894085462256809057262168790067029332433663243912386253517738573422133970289571030955432793676246476397353359918507814004146304463793783287458586674109419974309107544155675607581783928600311815551381029246266547275261919776489276412980350040542614115813534260077890754328464014476907039326171673361860158551290268717845921691040839764074169843642942785422678154666362864514697149559798852296079469682774222829948252249806511882173997695900033471248267005999724734082966904001154675922824934289280966343079241070315835422517544942056426247972431087702554700068668930423095364862009719251291100603902841290761710453332852880970171643206750770966589664303601764017757441395546300077274305819064169296951376061144407031784163049931376189998301986575078167656533268583083963986136386336538133522440706163738635654967702282439992917344039083531161199251656057128172615916162829255927783348755747586926138699707364275248296815305617774280133856249184805090489305490958008117002895961548418666870320483469556096867191756451177447003299017084544311961122819531141425626699644279939888393293541265056852250257775536239746610272170019218536747436514075960735536420543788325200383404109865610765769256648745760142807451957912382260445523638213530304058011957170628379007801516136823200746160174809920861650598925845263703060255608972504239996388874227670151747271879140025282357757202287407958413130395530976591182051474808882096681030203779428535847578949001068022249653961926893918759584275212321923268134435453972622444093246541703142026005979778558148373699312777810404847935356546898898157113014088487193731173787954432963261885832540118306449012748553217051893435072693777584380415724284700634189639571062548250963557584631574871189613229224045082693260424304794037211992816080671066891483793918187066189391783940049179200476609423570629640352985511353040425950372649976701101382206855682613708852863511100924025559101017508705930422407556482040852041966590429232836006251742896627025146345537176595112568089564131660745730399072208916397682777180688926953210796821704317479968901726754234182439419199662284849503483087204859984350582368636790641073136140972420184914629690427363253275759974351560865749010828657182856803752753985260924481173083960761709810583165700149946543724764675429538110892924371273781915738855781611508508988948264809116197915249943949264560485640476185553372857566889894778593599425014368410407171615150280596641295145423456903505451919066126025729683756467993836615172435873329656798785365967392219282898004958838449321021592319107807780368988147891770155510093108476610588679903774692511548273955405035579233081612126269618754572659470308673126828079888117281952131051660872988221449377901597103443546293839715229109289705317118973959925356404124833994490334740464012149481256891307741613249420717509465232174325624733090771194475655199302989299046391943078920224788158924778089831827968400354261772610649932989078591076113061490887881190401279826032706362190075611944308653488090246895700085247673289332133997364878768868745733350005169540636136688294685552627284039313349481801911196361949425033269030563479025911625242502030249103729926346059065624977974494008713971172169099274495983347122534160397935949808835889524984792119914602143855122347393050283655190387645225336948856024771695144653442450283719559436048728618368824802539689679081939721850864879694966620212995780239799292888741010645378768790433555881536734928200402675161548802315549452735099182156722540636152764655804361727204494741440609257982978851372982321065853643704950038001175559186745008440244684967344685550776598951003404621618555490709106757528288363263455152726253449954830241506765450167341821651452702157593509394297106077866582560595060536867482846850848376918308173445264741601619529383203687441971472375611888099826193550033075927233365044626593941165925936265844236253220297182247114423133804931813172239494868199583739130324719324774560122348105094410898446473985521697034649535688502094301007992590513361072785444624707012202490239260043596925418303474018431563038757350217418669476140769673934549730473934797512965298168567970709601242767076545320558408389095509754634549375737351835000160129673132488441993709812350004388900283724159177310771294829155767940955609655085464892573787241463412194099002981318208368992675953813352843472610363784315171414166942693357297220965954922429179031900805711093468323340329059895335050097525854263481229584475291148931666812546556444734825042868010113995242761451695979528690454919109733622301457585853127798550450439333354199745713289963271517707400736131445762143747679183654441935651582722218172114111821446449224622312895439133288662773487482937951298644000908982591010816239765497388966454470054796103080164571268587802203094824219656660770703558664056284085771563751437875481889880132408115162410927916970689689579480305538691315919262016295370237941775194837667779001362769277609604638617078410005023841709044431973022727363302102922487734650554493332972212391496246157630747779249359134439828464961621665964081377655114222278323399303709281548106727407543884896519432789528171418019861252201788536182137272205073221221780800755051689308714059893045218891919330074077079707091954115175883443601296769408439737760523647776310839833439805654776039526557374215393401644789626346210559929068855065358343014456635924601973627002455214529816612891317966983875190936802114311074393742893434950556001880204391320055504203951215430550481623915929117006073087327762645359146621775972961814702977509498713643475183022790142112313261171792100184144715041869811493109362800703330873608558444697070617236887127368789479855535528207744460826398407245819488845883633569814492042254425989880639350016033406629771961959444060279815616271144956508682761392783538639282627547211991954499530146268357718251169249838321700405244193118749606072607231718657669101670663008417865573976856520771778504746870520540916730369128690729846188547260732819967131933191581143623304582612201639185578871067490687011701132789042859860257183289020145343549558655399969882704963396405204491529472740858090024945284891744763426186995474274595459323165618240327253562592300579123922038853606598359579446480775036810348910939530966938638507190267361517718012172167972820695228700659759877518055382693200700070269231052235195111341851755662973379101618493863293969568157538178795755772728130749725464924995098293286237471841950040259898792890149288934434517676549840200522927830859961547509131936403151527592909071705286859617104631624667175395979913620477621109511735995961277450425111039482595745479914047058674373008188266753962793958088477412072756953794334547369473340767734461872972987864306532523755603249162776808126239020520892735209765477386699720604353826094273924449896155863243093761430585876401576704066745728068163723090442261426286364148761021355018393052896905123573907040797092299163484468630294624800059707110636856026888826983753774091820189134126967805411542378981512198589470548188508936677775190933493605989299954224054137554925136523528535014297040929913023946350943533282176394946653037332158104798727725721857145069093181599255086617284278130015322211431504378953288916192931311284784308928261469391740099898248953259570027513882776256313538414048500993330060061837998025460453327838133688351693538623984128486807408702366620707992872561667532346287646424461928987933578150724102496222772802776847959922691672493180710209311372286781933339570386479718819447174253745462095166075776137361040623143216244411237443803712972083950272231520871235643831861972720454359810840727349465613729520034341660772312746147434695270280338858159217905567647803048889869822526797525250737747573403937492450950710176728654943395840425315686513626360475121300412835761059323310762308481436242857804188408823303617824500987897741010888963644255116371880061212370759952479675899138177080615599223045160541677973890876709338784583420091560655060019028451533649661916591965756660935607956626554640336205222350890310045927051858983664727280691062581733570833998420804887679208104458117357996626710487443768083678293325720433274292714900938185884748688950847735546110689266155234999495104632174705123282449978820647627623292287674259707193193005490943436063963471343366993593475065659662023920667580428681109140604665658452736302897531695825493533389666051645841042178131998612013438205147113327515141033011003369154834963290056140248013995822178989519233640178128883772700212951846216120784391346929891157104366683385744013367240212333304572454203812293088424460083993512427363954360734792595637616956221049000827674144583125323054859635716029193530893572403398570780414217106532273650934978720849750998777076390632147593723849149536480004456129299311705796884002830246297328012912532211717482971587548149091418601477342591325370154451727239297299498905633493945661000966697671731158611102880597672621700215257664969775907223435227501452128843442752440940851502417113252728735128949026030261898574713445687604246686909494466564777881653491170009674539717371198244255304328093028494763991295744340780005581320936903071107193052058591897124535348808604105395616929208771919332574429951678735884409351487574926874509849763888347595489284361591968072667712546067791854839080051781329180538287706212518206231017661042113156690511741631669148420893456922664968107627017244263078066904678365507085202927009988643904463124498900495937677056381469768000365654930019628450623031495685080556287316071523720754797785676137961063213096341580726629291157622389125073391076012958458891209913740083656586429595853100729383431561200625651344327653572941110127820667828007725128643772797193040151722021487557901008716607429143923026868963557937835932917124911769830055712852528862355610431137376878090715234300208681159316252640481458324827684652719893749095213081144310663907187601425887829401658198732163678246264988002222110008089525538640436232285226971928894197840025233315129550855109635388785772089831394867573458928270278843313029589958661602849500696728949726702585277035336146443277815778374337492392335323535868410986258541162940498162457573585758367230681886803176469787996884198425632882364782036362400396760767615991977988030911099497171761328231653562265559091606135229027858358705033893436148342656398425715444005804265325539774146709282150699087208671358198850017389801831875983460500918908023053974403868571304291235484311788497863726335220497889606716484788028090920033880453677950160886548708390934053867432322755595651451071202254860796921438044425094092319724269503067505940096023357946541043784250682545956232841594343913211313621185815602649644813428611826113572797496963092144817846650778192002674360981215008407904271281967139177012472308876848667628969763179945353521140919814999532968538058097673201722375147530507761351708941742720105957458604809040635257060204043362302587034038503420714355831264701247475958102467359291383398966716022665043247363734585903737575461413466581238726778364246931275669521216075144928974082784919573133561623328824950841796320934615172559185436873837647627129034290690085536522747707217330273542963921026863446062193756201028333698751879735542335764854247025086153698164143346659194419985237358231643394477643695102311209559522674731631294282074500592263016445803096573099689942621067162903782255470660065182232740434559239156537487997308682953466507929667120010062684148671554215934502332362612123930536077894502835737713817679260430184102625688671798091808142403005442654627438618370123889489747655492639776202948147673009063091693763734965218658149677134410179454654296609414941155997985759962279584738882679103755629055911813215227068246261824019072317472869491952654887113561671053908530269726852491872550506044049131544932886887216832042021115180890166051201704646623552861968261912112155999066458954990403867239050499435939593243659910506859322023976084998476072138478640171179929757210321297329230999623476486454887831083475182763815986418833219536489429219426382301404885296427402668510174015224219559782886780213821731606438349494538401131508678564939401152537276560914614778710015643250871912685550322383538591753644718045391387351362653479685872868458850359511031731193119535599542226473790904358218846818326995553630666576661077995592493106466169513179781599538497424842284879571351597137316630087053693502859927133956608539243868214426500581213948123890139945322041477503921135063301446433537468258220964025525440567769985839908277204304680624820534748631679731629688293776967313153818789332159615685171152410856531531775198129053150157456451632575740140782540054022731202993333090183986373646538836643869198293170192045413815010146323474904944701584965155543261270028120221727959349450228863656447826865602229958492395949557605746987789860720888371128741882420579055793288853626273724823709223794658299424458965548224862799338701316906792814606459612335239351656857852339746338930832140504315304417981489539202937223513166342163265194866325092635357295611464394868608901640521416739522106831364265096278493835480448062169555892188479378515620588377628928564586173181502849064533371161526251351046176561637916060708528781338238186333114551221406281113022908073364994411585979455940141682357062535702879513113080473485330167572873149212541321315970909553542255786574023613076015425225632017114788226378017105834055055170077917045891049099172535107321859737069046267009854226958810796920523486082674682885988531348037774318142969758189503494267732001392392545123390379843559853625409091501789810397520191907050224169614621436077526677849641591010531838094935444291596261960833218011147806447905898407881162551279466422802114803710224928136399000288331680109352671066446695624901692639215661717519486921008448338101144776208058988903802258852839458210369749646538048701315795970171146698448862490138038467992358923259659875644984251319335846018505642239625152640295274570310649415542176058953681374787232669042862560126275707617249030754339824065891467564515713756150415877115117904490143095466725088476926585516873884689753805691527039973734394140232940870324770934214009563571672534265312903901642114966344053075900755136140757663269889148425011468922900548253905939939656070071810184090094796431634064615007852824647507784009717725027673032940921984286492157090368757813032858336494920035208684743126061445405612761157289000093856756851885659610065100398042183102832989375220687423995494894488656458461425933314144296058021892722179091457341096292991297059257248361448911309928522378938249102175170105903814824011484782172756240481459824053956695441161829678660206007012004501242423661799658664324474664692527750903615968913233791265128839025680791110020350546843205737056877863407816921430736321811626819008552214209321123805052277333744595321499209231804964387270305004140783785639494042231342845485163724826968528016946028467600579173905356995408823563485335374215620642231673298480298801980601543249005433687657713544916606448986347374227856211822057913989289682612253212752935660042003647426325831218863496423163088041494559812869489205672288135921817267577586079892331591237374165143978355307002380170567780753313698179947304450679725725719840705016081159700257612277113590338764614548770610466420516206293305611609783242565660855917539595597043715124818334826582265065921275704488930776663912899027931947606571767743014517836193388765835108688308177971018287786994601358874964427922617905144816062809270732603542615635011850547872058170017640703630123692799780140012795156766068898987927562627968984278585994436738619351526325003494572606488632964904622636712697300513849249941208459044327431769859487377103787445729762189685151228424258881928518926751588495014333818534066627482991540829055170274175748047451794814909395345752565633205852852165160870604110854351265977294649550756875079659706536772098939641656589279974916557316888117175294989571357001781812937660431277471004859320658635173645400544333132415554756128483593379606452232922534955641442845049969729476408044293670779034867547615629029197677819801726360140068161558901419922412908979783277844004341647352040409065779246069490196815218633499720602270634536936515107153451215744646416153322781173158634471795322236295470215064698493945290333833874804550388312527546885664022307784619262780088877101018841574526626865943174850108063192110170095511121986591178181493758690272568183287561030529051291762473058907615161913388269565396273434918311076413701184292002477943572850762880534964208519576220313694951274055843291269303206049069429073545280804873869673546010442032490425226074774926187019068474716910758317006056677738598516075057131914343405943947012661435901846123222837003713068135879422822139194618927269878385804890952360668762058442381320078806499834937570265830386429793911962489211076168071274200349571252023615175901155058881438725646297185922465145616739015591097454851029990171505402199803984759920164561541335146256718627216995463429841515596797744196046306266124644409881511197966891260357165392776849628409338220943769160772370257830451102811436581662615635345061865575298179135212058759112827795043853058397690493093886585315216222446061796286033947761781239886402097742831874098876755584655773146757315296330802167801504579266474667758823307645913941112257656417438876859931163160870461402146241982539798602742222633064294710692208687063624125229365531460100302519787824777189216838842336228582250818472603366476875881957470164235028580753951397048319727443932603359845509295971816324196165388089401904810155663905105824067926619654142299838720433292542217976221347270353384520290646742558860079213684773939449187744014017407082342262244077720233376618619864034734361899302208594641621312223095899957043906065294092934283075899906944497696482417159245556748019278685804815212466997763232391875435193923196054960170984566293558870403525227570616464405621277718657250652067274478409823787409325019420096484155400689944730173170577154840469462667509719533834541301231145433680506654163541720120657732111406974102997739533968455742087877765303945284289290824345766984698999472281396307651199665714171665818407520192013787168315898925865393509569946074860103754909985314701067356785160825993235108868659032825779189920678230842869696464443693766254213303353807276110883483704025181548100618299283053622935738069728102297765322086716198622820652468674010200242256632804208024895779588933506544090586573141983602182249984860096993930070663145611739261757963143837540573199390609931661228817400670783485651238894177403386765620288658522366030607237060799304676381678855583908848671424306045935013750411537477212455989644345221627735207945686478334348519243495901282644274201092798891593039472983809186664944021519264735662223855287396495082686175382517061097526642534441465583195390833616175266155986053569825301434463288505316513063020383503428154605846681301835029990837874051865933908698056642503116390951625968857297260114262634752881567677498040178035459710922968077870886562863569288334764551783969034716943758913478491942933876612820729413614891276636682775207655219939650911699884550515550568651063885679745494013747195838662577231375499245968874071152010385774569529831077063390547106013747770637623906977177228224624386229507651420113473423295325563593883876822281476126856355560447387600619999712331115617621129472311954749468587550058910623038816651604203460632701668875165242349791690965765881691023418125390285416409738182697295215088994708907402314925264767456070997601677740707950033889086932054005531452146495301904407786499194695179663241665688263222030357548737150961509768091055858920129327380766995132879861756491592064335149026729574534805246729620435772655614294000380526793623615466156928534324216457718682942400327203690697083036078618804675909874147606637801890221505681333331801333123853030761243353867631875452922924283950338666995235746138220625970666526113817156255054282456936811503966761874470400134992420569306747147701102768180965589235542578523018342051555380841367278667872534193539067843033600946955325753409270681348005545016809275078529584328395997196845266955370507869974818598962244347368646315294601924644475000269620921722688440627123368282789051324314945459137391154972991240653754086778117813388878598042408973452666603211252489101709901340754809392778979513043726844996630898399776132580750452486603744163888359850872556936083249560043743322780723112866486645852007293070223333806932975950217096362819669831619567808117691171539987481030355436201774430863434987839745505911260103250583219010938720013336412738306307303575702708338499524174275278586542444699000802573312108562371400240485382699294384365876771159709920999423916043965468345279932896813618888091970984426407532169592856968307938115327951314381729175545989192958986645085407491225432364889922718935095993507924119982731203120892345021122721257434873965061508101025248338007933462372197500816071950504687454843437663955212642543991407983232142333553153393350710964195994455693265926365751017789102427686047369403038041714084047798382444214166058652840210770076391503614380232134728411468914802457465683024046005272866335774227033115201195155584722205872721764546609589401370830087423395014541300461841792029333882550349836273137569362010300327324043395919095606999623942858062618609038712353818861651347607564154020526929195118647106095255669727674478398508111133179831575253118698935519305215503230847022641136209087298488014231813768417080148379328462358365269640155123099292312194261094309395835127792608689770450375365728438157667293263840871368889634210335489800438489775251050214372745553423203606545734787249482568699622457738543721125742572090583640801910945775777915653811552949373662287215398283260496887520037112423593404985047178188494647666206361085140076119033687137628507368456126323215302677686588601659202738113828824855523277382245467287855526813126184745121654463488534050782748752271802294093617636850093138478572487536865820049942214189846638644593019744520120442669338814348273697831401850315589511006552186967409082445009398994814122407524876879685315980331444023444367112368231396945986587675653462120131393953117317446914401470300828846449650056431195693307800737253625087508104246390493608690761704858534015242100180931289461999288380206904573495935598711669078198533889299888046104124523706037433969775642411209773808309185344651317154092679181488436815163417317574133526066769973629389575085920910905094872157343281792630178022476746630060669806738554826690948449093291886341195255737495881790242545303633878444625677357519615881161222884288205008536437275264778809246002160331687019592574664825978538114502465882491392948306624624130412219707501811701942964357691558043159727489535480149276873212821972301927556521739632581877019728085150442995268905417193319918660742522132759518546011064233194598467368265756656446746589902389087751704130039394029205747377533071469038394701780187463898280054460301363511767058755606535586651504969134157823116326012886077058277931814561580498071206114173837875263193832950463219211686558822323964540733477064220406115077291571417553256747422388009831818362634949123610486811125767615031205845573490648485475176832630401029146989881506357644322779227064890876039712340584901979867577989062288945994106983283853821263014220847792945939425666328809728396486627154903302024572870102123111597446727627879712816504186288046630358769306845834615643970129079634620087706612135739850037568725634431378823572669639680671822228130343410847631211913637413585114698930523123270719203753259226186632786936396962933376999089320489527729682571845890091339928336264903266674466611129120985825288604952459084846359451553939595646609414063237888873771770105686259985173789826704447667356095853943558993863434500286628926680135116224867378017762450932133804593402015741868988140088083462299489852325433897326091104742275212534039477659354472837943861224494512601232812862181542352917656234827352514518443313267216950923752387751252378058950576922918615407889617558414993523978622831744695666060294991395133194567653734569678276756726421320360125645083578493407222265142362294758627016737615515829337613188405186385166741650755052689335149509212373323331878470127028871080947253043799533686603821346177380747363167037935269910640080906893538405330091924650094687253796836683273415239047949844255761613302436294439726132626440349754407986206148153488243880495139840717920334133483795610698835323421068021650712592153836905800917219014610470138150386171445832017739025527425469667482809324284559620288307990191618874082573852967196745601699533326606989892169866324910246310515188850206440328279879088217500062266131166001296947776471941095418472631641528491504051010820235729166031905103990388097026851479368528996682536839895445753821935631550286943212744662538665904561106551549196812775109939516541181158333750549513710314566843258368162925106396992767899694154449378165538732177164216054195403936138215478720817932947056474015713743094434472673704527269187768805894468735342882024440771711593966952095911819750138763549849030810301474403299211436859899282722395666896565042587887914527290726048509661935468023935549201737343472802963235557529573384342619918924237318799541371605675785894324383569141048566268040392614270960670691591628462138450171826865823864072383328948583944635232807435061151992363547666678651049428092078643978308923324304839919502145059873608047021442025846405407220526706080243145719861728227339373561362279157897687603701728315384410403485285720522931587960291559735869866445207627671123629328347040465751652910463252029665577300898711658529452644878394434357066995385417149924877921568955272747407616081807121868915084355606581599315091995364480690613249369839302019160609101787156752858096259905978948876379570293795847414801606134048148285748331150345935031648122741844443283873018000785868639582677378384764199316386627475716436142976429452107533533193793974484178394703299263544640258792498074376028409779290855065487234906009903829474231666333470242804164018883768838492255933003035409334103952871968664570529294913712070691139467150401489762968732558409179376702573649584823881672332008003205934821392310215980935591373098205817943689704819476908563494444844735412960460113086380428268389471654300176008361861200799610490307159184971166786171470350724330549002907561033665054552617474798016220674710404521711617184263605612603244066807575344111148964743314026112674783054543589189426374053708338751106287727293576701927450757822392083705553931291428769271028697203799196024151145741740257087017386755545940073559230235241257889584824246533034405981681552355882138404366231185812280280452372717210153075467434632171687646115347853419964990199535924213387916861631431522412183762020534717246417439551876228399734076922624056794260921169683565577687556164245746421064430274356687536542607804565769699942362714847812277952374039904347191153709068065884654409294494505420158557549638703704919942004729422717928382272341655276436202935300774818122933570293613937604807599373685043656501639881069006698867576735090974554140746674318129447012197550803655698910229714375444122713840410009078237898198308507149594357366603986921766670051170081080324195687022123938749902886061164526336357184791398901193371317897339833920560863193416734820276951577902646131479230243066334488346206921702771242773056262244897964453985778446946779241448144041419089509214391173358120496730497330710354713880543467977974861531121874996388690781108037391372190098928514780222484946715051241430784420157566943749950837648488382021802212400280925946334755334297986281579522005691758680421800330922105047971136667375689666372629129494144115863127272763683806146832845077318277462320040911262266105637067121395951269241499980065107059697046934923309348231379719404809257910081536672379101122557100039724697453172522004536352657187137636468996686020160545731232881303623217265429854924016938810047183509771087292461723456013611817595969504412551741602626673325404482831281307781404114207186320978551618277800237917571669415606940860639875424817945753077150725494573254506656700622992709065484035893878801921977710496675558360183741453124610814787162915482305137211571638372800384851107364866660276622219367545926896119935829843707780797779464298342750651373847365474937194376078634711213812036002861841400518893723195519338215390256052605343562815009979114389068887797512968053395262444413195577985962567393978532582503623195858767278429764604077924234902854465374601490963587704683251248749063739675989827032366114708624286212148261792167060681075490447012491481777163648933638836534922859820295161976368486050077530726458640762561926576943466853759487193321689048875319976133964468385421543387430217002836857725360402310643268451105747961986371309598373350592805758633650317725406768770887509900905488166998618225230333614090722964541008560248530780755585978989299407572531598366660470375744403545509359110409837383348633942490015948362492450908916377590177046800645750157437740643506766392802489351558956294463722560031607931363870379816126643709908090170818656596567736850986807540235418528254172265426436384355763943959405965395047323856437071296303888413537448699099323320214853279999651245796653965454382670034567389452697059434857573981388074399609119883354735313201631064432903578285073935967791464082282807425888083727359260436117424457173600813935993029493173162857727733080492642520736286999636588935797310284748406850450262615368533806065503316677636869210318050572501866588234579776483222667565216321458895702845217150597424421693686906611859713616787412453921606312602485124429580452232575564294308381008072510801328600527256470060965856025745423551684732208577200576042115135816406945643977944826226183579083579284968571183956524966718945716704515376061053113983103407743930387924599494251229837176607097108021438137057725379309973282905527824903621149298686271996740997873353237587851420069380134709427515234283700978013629285322588192911790892588447973257466576310775010173756014104658934373734707053737945885636782090314239329099890676935046663902351802399097469786207647578917982335462546546581427984562135630672700428380432657025323118813216920359107524141890204053606689157504201517453189642710137345306695257741436602211186716031060832852469343853345812835948976358183951125500449153628490772195746549301921025747039991142726111174385829863053568344127364454562074565886238582798493548757417293074373112593883790825000653017053009842819247044778175959331357688122589325244828613559128387522797114650330010844374562769744389433361220611906062662550101908899279059363076840908042424926511567640756261404229548787960445598113659533129088970518645916292857101892217716741448235051169042947749237286103865971927793054843264227268115416999617551512013407662788976219065369157807709106505066133722859465409294205212436131511649293592154615329083408459283157950527373213436423138406310507521602835114492851519264756085251885848003882555543485664108128937080248220409270939642905243998800277823067131257503219348863449051719310286059400381765539785008980613014499723815822513356415501238545896087652774881008974747206555269289289385894557498566551178073021011848829820279910156039386759077839426102917867015013844002045596509255639632389819545007828931246273912606199253081855007747103033218056221923428730287648540328933112637620765513841761551914215922641233299485351912477751211089844623013300736272366933627809362908805894923776684998662994491825171065603295127485428175291887512968452400852324442118073730735296731319299283699021849992953829605171002852165242873094629257985260315620162270833233810223970630075225759452815496778721870237386091082024592016259158063048777586965698759740331680538189242518908995387741975574987159200819313235239478638865994969465142569393512678615159832286621669955321302577623060847311335865243572846429757262714767070631187469925782369863127258201685121851996030338122404169896829000771921567218072728091329775639404552355856746661385701766183118183572208587823054591276526850797444409670495771630332911363267309807755935710229566047854252526929515166207846778716880447099158835777849870810151637913847403485399313630850629195731904987008363278443839596050206069390393064323413341178322402351951150492211957134522325121267835950771771361676954537254921388479111733172630883803960010774071059707659542721351556050732997784421791957777294352404826555506667282373444723139002358094126011939661829749570673069177049762613968459756554851565423560338689093267328193045799392006841100120325110279306113389287122070526640718680856907668450017793288610009167130571778938259826730677001297145475028085502856700661876571850187240210152937770873759096959448396309115168643143370383691170779665968656048647847973975426529172340418968554905471775397239513426519219431317621588790995242793206321764004438400948280124362956715833701301103071622518319595980697386233676294666508954465991112912603477080674427552208605506473189460444982215948911633033224521612150630412757948593958663539821653617737982449511365299877459172460564831831365849725262697866965176813978953844888379025840216463758851756962776610304052278083072874583844936788380366270133800065595999563977668810736093398310497607912190734374887019464611117312977757814627605204125031013243634327218044829798748694682278855072510179063382859124067987787244967998048740877522453841902576526522908508044548666432169717594573021492150099618298812508887599713074807991184826278280230495529405509388799905966026629886708218612357648017508182737614423615355237451169294088161585565802385751405012217307036950022477432306023342918379618553290834839252585650698210641141004155402794896094084251550803477491119823122858185511192348639293867336212936954389591511472529797131699542515568773190342005075271643989001786360013664886620766577159294234831792927033497231491022918458645694943256172961143815624827019755089775482854930796129419576520851180090214997381985523142433902199589679819945596432177175292685607603917243096390290792309138027499936181446914033935651168584788439120400741825882705086941269087574619577354481501671978641396601326918507419675422627812730071051530150825307823905417197223920500485862955062546905749143023783514830901140668643687516143738192916150327340069997024328378434070727687808132526030940094275307014415714730910630008722822079286416552800899892891400192133858596746648139816125150077741733274638250542097778714750441267360945115946631405129789221446142513582125893318504583737723225459175048581427513555313119597354471843797114130446947894453227839017317553243725594825445447537033959960683291403847760837546209081818183990028818089704871041079770943520535082317865370906868886858583027387486908947232629412564759597189711254269136878141503235618152759253881882058131994353378579728649045994894268815350586345777711446271389973703438566362568812762569239534186350627421058091505770682862339832269664531128979711884833878577074888050110074761417452576319212909661425650027008532894486110254119138717976946924315973719359406485767149699446967911358245293032900061266540873632515201802268540879818512525915958342693669146831717273244790680481453098643932346403239934285210862836817857456048761829101240853820303346005774874702858242919896642479947824973980220872823472242481252354630000855543031634152884308855071975618422513357056259653499620341008914118843147549807900976826856212835577881746034806665486120634134970829986480932772451844365138099719941431224136418782858881561621942265437471927552674696192735039614820416882263754888689905234861604031772813775920500478477584476238134555555410806443516120211222583662725017608739897080017220824216519332566376952054899715909316478203414398195996254100182718294974596433041538585137173921716339802669504287411154976769565965364833801080595331572307250184306554678593113144138349126445914445636734197919145980647360658117083849124250630223038696480338595697722004136773544474699039280482197495346206074122659494860777934955651043913486616446237481302528581236342292011257503086849211072986709604178486327871698194277440347382191869942632300894496778847360922753851005921614030148373797491265144823128073843415579689785775230738287628494720405459484919703576542545062225551553910761431881637486387824987494168848840085340337968011835035821951941891994923833897211586792168963483639813001140683784414981149663796570725508542106583755234055261680047730729689117874635922376646419124219014639046448157670409548207822828227341579120124289676149261086691718657619907359359636906679645459459202551127090049394896353014353475445453604869534799104527155213636675481024819314360352200473813454466281948663912401922001714676758282892880068198656855731454547501023478348011980940947937396590794464502404622020293187743392202384752754958600371078790242955976675443395776512878331392108420973621971259674872028566407238331670082035319467767895040252246268868147786306767994444239703151006213513576657905158329342026345777866370092343858687513510600613154885475854250677779159874242205399228645646511673244269919152029550402367383597202036426465790107977690800851883708563403463930419497949253705079672714176639784171916579596624758961183775774771575915364904828013109019181129671598442382487455519908411612431548252619731358724858756920851858417377976450668005018491271745260019768518265702011674706706767768769448008155583645219630433789663756292102442774303309864104922206727709861583042516976748741960432182951682840210300257508357619980852663482934853134763429574039643938675478368430795103265327231351125009474440987780209056382929705837191223519300943465913767414312984364766081075109943911724200120022696297008855173553705400632900497803204713353757505283526452268489836510528092696271822895526926188040544493249251984888096374759040527016106706793694247450950982974586448140890879561972454931863724861800072173120513160299129717607375587783252131595782690224603716019504000174198112566366533676719775906099209919233182175361095980206183810016641945468309287388065735048126290862122923383879300982683270982937323796303556852398110029596117986178040273545398910503126471814364580241273439851370658934344893869970739709358685341991930056003442226357444331459234410275728636265974925032072095383948655447396734322094250218028597257676664017196678541601696933556454682616037927194192823895790121537998169496134109425887657581244136932372202593975643498174438732490662860184231084068220316939840492790528216857148434883933206376312636340542197032063471426598247710135661896142346784603868360892796916707122436754109388491209726866992202379521410075485377494240389464277787144756109739924144012298492721074187277859950323990821912880529761414247102839679493567354171312550652983956103833853746941967534711338774807201864682530297174086689699505537761952449281911799370777081797549855654664502991303418228832721587727591616135146767030977240554408924228903768383445513875467744972916522507057094306542394581655760305521458172060747681841682904016629660056214813453615573333351369874350571517511407937859875378442698178019124135252779648829767023936672716522155743474789862062731387735958761234558864738344522343326905623404100061759871807291155872633306144818102373937931713051099832377099460948284317856222675419001669155783232119902703750261556381582572074464401481912986641761557778600387211022265462614404814715689247065090215465368570038355585503095721129013357944070744527650862705701666709994838845191071435223709617071236559138327120772322828831559401623727228181001439736314467467532632074316648244341737819204755704130313480000252226137537709318315278226258321192289087401972986402525012026857406526513139922946493000437700376611392278230743601662958883405457774741099624543410221144181560329734800665876478882413070677534702676347967106367671480689597481897111499624836269210238008486369100966171758459128374047132610151147936357233942502319291262007008481477109364477545705683761276916765481077024670518976836543666956113216719723107479569555976383440366467080190073557692299332784044455069585865195682237211531646997712001467701443751795871621460647457416912756191886213714865618318420466953258885486254961710613370342948222246254018435865543785894616677210556354868923120904485789193105087640028881732680407357494588083283063585331157416551558151037923742854198486903533999035876146563672145122530160434152148745853819070069887504864638399776082586490761116969752836303534631776820794467094840062276133963821725223550671671152123989031318150310126441794037709516906897762789232415906256403542885669415285732827179465831992976539838175229919720221300841741703016556518608335966270526684892633300043058975892627569917564782958134781643091127698826390978930406966616551566459164062276300324300809017868038454681452062618345281519001863180646927044586218575698062753523907667139372943917071848901667086433210933489850980740977852474156783885608020679897564889538310880053379431188758468706301138564492137542043168809852683826133874014221890815216875405221269936331791781855089270004867935862216407395820967428673451996688732001045372146414366827887324014934967804186967190527113927567231995730100307894780504501351261301495354738058804871232311618499349577582990499580475126545575382192466495096593873750542878334170511953624218779359271877310949644717708404991923648533323055082753398253992090351859577033602530768962291334752517687081119894025572503637403284031791798865223445705558669540051251297801030478038434036127796374853913876497637295852145744234077044111899352101022063891354592288138542628368463439085615018841285959142984503054715748057659175692799029016004662068554984097880693791283928209915749415387884696281730823117652210052338528187692463686302303267485533726191197188704054091628850021848543607476557196548929121218414264392839759266882065328771752345234008316626338743720980494732298468911957179256214765905482375592152761221258663552695732494945284969220678180454049288121164784719303524392615971464806522266514281629325124226760402151677206709651866659651315568502083785048611188695853124176971887748343645619364624588340137729299606785730802257979238811290981474647012579206670985982219576841664469711747936476591272710809837991039948440661466890360327393705223239365455645204550915898245630570432391158282984288620652521904719748215310591713769271746653031208120307887419568990765038071440273122973555442648431253712932810398104122846011651246327457257000131505529206209186628159055439227674476873812749327892168099550620719198326347929877424751288594222805484838839874863583841707686529700644016982370203517733981277421313355725579627539699121598709356984881537975391834800136412550846818831787444157547330714843826787211671446605934334089796939277001557434172177140182311324669493877316690711982044141576009197822892384477202520120987504745683394848852971853734803817308618205599113824522753253152299660191506209318309812889182999601044130507523517331749290430683491112897036101492898655326764672289918523539258120681511333102732052705763450119442150053027060833950761777223348809840577414399939847803970282522145572427535361467572274354476408516030184567605483236684570909753587484622859327358595647028995295047922808500756271970583431620900570186769728910652439580095894113109536784852164300946634575281753305533051910567522285373016562210644070943973540516981609818172037610544233853710378111848173179366744255241280178036889506019105892653245402784851496855471266302468238253867421204879871366543763359624892760253081726157551690559352736194751609162168000109713497203878640174531298078127663025249917707999295615753233283362573215859975121696938800625300825132564500897571880483223462055455118867786540492581109925436503977761382685947870839427388658236520760178859051782002577837674241327440558844312168776660045660915227060245270852174600096299821661287063300428788474578652966147981144597953970234880123933546068477223125478459520232208286427925425139868821710154337103510419022743179355886465362062883008789119478190637016089204757590460652605077894590117427016492540674559945553499137409985964710591745518921965087365969452662895134611590577815598866424710804324907217239418213213053881463614273524260137906485932893050286254428775412632198737679459484750385330967853649970566987385194831146866816021468937238317196968843051719732898361626783856177132106598832650568564047715556319829789422746791384440020826407245455527044740617251279885014637920641332999673842963500606214836599028132085775877034072533226115838378753345602479868272111652972289799071645812205403553140317956810670789165668927057242923053926965871533998691183496984569407175332002952682704543380090367728468772151600186707481948200019259404519674377979660154653936261397739646214935850323938797262302093648725426097426845241973857304583231708468538915620003628396967216105594873926164428028654429578461178939078591177402048250574328438949611670726135591641174633593905008426614258271326800039689200309694629448961113172080935846809316484655901076818812135324353296151818856577378644871742080996448189973815413708480963551245027146587023710510763227473053023372545272859519673897432643475400607200493876343625652190231067388194035918424512971918327018061624079326578831982960607716851944519040013147724061380665585126689625247238047081463431489806932787486182153925160793428172784022402342714001489096091669459732994421092735974655738567484789475988832743626894395714747872547296233143310473586291217272783135844461899863808395179804088480171404935603314140738981543794845203612231142197385877987404163032028498492261285019591817119727506226986257848620770488621867268038403802603643425878919990667655600103708354394446379016385097187283658781099048545854594242547972710041575962038011597099560051520873936355857034754701729835801969889626058919031131238728030664378385103335926320578134434369976024232150559292819156312561708741359009314116633701945772718791642236663620718571759899482549047815910627427814201439098402706885511568642933797893206332178997988170283478624058443852533861004971673059472785345746004979078590648040998895487754951113272472211881533645337996113464220348310640510516732218847651569323352199862494132850258294519705071287374892139782720130919187876701856028583597176882128578816308666927371487450465452922118378422628528626746567344177425581189119352747050510064235689385865640229483141244252631780775060933732307152539110644544610244370342357923972656720501974466897894244424801041713762281148318571692294047100178632722196666376110542976558653765683023351770850901637374444905217479790361537432128576770911778379852148117034701143118379989963673259853930479478584987315806360035005953848434270131485313829522524921288175450902858052104605000672711650272228556284391692902915633762342001173925801732591439971088788704254281814947980618376252833794531836538238924886647895991865288503344050529458641276911425798206587545135062075139161999259301873673038549899115797996702882023746558537982636843033609529826814102772175433509598823593929874567936731877832899274751446787109869549758818494224051619141432579254446991661277910123302532741932953717697964367666993025228676756649318107959057418533565898846869542104871240569553556970326155779207987983717681006740702867399701042824817208089389828911889822455653618654532593983028771426687722948617391847883162370995862458657542169696863534677612588090658160259877122126298966948532788843490812756340737716369629687850173475629767022217429663028713886105114860935438441042706687421214108640313049296603237436513483282190058274440482018372357853157525525522627836392396211491627659422633911650913035139816357096977459697306525612424590541437202681476935690415910505057898557512761148498422960271503615290476139970403532701469097143720522695249962450313873185152076556601663092857303204422498660158686787776483016276903490986433845718573862360571630145900297571082510660409112988543569046360753130535328689788362556045619370176009105532342698379029291096151585904627561993966470948334256348279578932926635896491069286180823435077235160367859102433757846490951157991445872498233178522483013812226261417913837608632913209326126890606809334152780975231168640332821882443959334328808833119518188909342186913545987477641570666767211433802030393977955677288824406769078474995989654511631144298529536733464014165641123246836981444838914212186892073472210228170757786580293439429264823189158496434577480915763578462675097529459896865080488330087907667164001670151630581957150415579570007981150497199796859887905886405502517388989312906111387301447553259009662604806159840384983870411660308944960031256726548736121342384683996984381773266766629889533620020497786568557113015006785590520583037168673241657414344602311276347335223120321977569737176775200949640768566245221418128811303708226325201152982503471285952087631304810900951269368458649812683708888192978483659880398732223960487138422705427511764657813130120988292196044096317147073311324390194517646854350073567274633928450687352916065230557103369433949978087563262133408738259495322282069420421954058029656245112630321491698486585856179635477839052321190769849310173197345335250780444590773012992638054505700257007755899337760026937640692687938597308193274544969974502845562573693508742048931165548330215187007211429483311517343439699930715825020114820386677249542697802138846503204919941783495655539444699389037403681152766975987841405886191099105185191786725221223221576584270399084922477646251874779652717656595995368531681205041892532454191440700168042192789685304555890808237851103612759341818511198662248418812508414050802588914823475834997079126162926351029993346466415993310172052180592635333660983828218455117550354078152280390142671535842441522404694208634547127955224450107366025672059563779420134074588329072268691757758215398233146911246082568574459622468887114399010488072905382637067212814202151201283867165793250756945897802864923874793668363356572427472681792266360572464416259961594497173253426722535980792776290836398506284003352330187854441150960772612249726803294231557456267408053079600547977775382241740096617042514740538248688717767170984363865798042221940038123150233257886632572205220547508123726670807899057668816501910326792438530574677645007478812780646379969009860270189027790839616107537933047606812189093713491792793435176960166874343846712568823210286269801625294160505612426777128978946536334089953888271959851749657305459525246444508679089794036337602763292373795128745924257760122313646766362505482758199610715679114928658998721519372167956324496864393252285876107495833799770978646139894694021950072151196719441336570383160102593039353250738678744813038412908725886395261114753581166303181011490780597446726861950742414728290725904226552316819505051366259880703548552617708387205727543030362608347642398472272892242839598864281172215163154977088876423545739857310280650735855820858207509235267647813981317454753268240878210304827404754140690921665481105370883099505990525920270965872247378696801143387778632384793537670038869322583122137955408361226972776073723794944903107338050327272437952288841915041547715324866113204576229198689511093283525123255989763655413060788689419490329519416288873156943540387358210426977829371401090586622528915052103314109578256404348976531744604720964747831732303629442328653242596824127761785866715970306654740822311344458151200343193092365232936654859461510020992059402693010334566713020589796021554337178425951234150810641944219594547747847429016150443495300172781376737501486104861669594372372812115720358567481015827604628550351086988010125611078642261542263660767894887677101843995956842886690942019533600468779639184157907894319244538886638497646611738202840476961222927495131119543771208859317349724563326045796608313938371143222627826402803950932834860483069987466335349600404250669303341888746395005820850344124118872511397526018929688958030520641885732750240756991773217676466918549581843939073813313224204917662343497549856681277828410757510181793698041678073497530941330985480833001196268963395882514379147158609953707589846029013332978034442095696005272679755446195342871837096179923301464141042798891484888254578754827023529729285345933415131721875989322099903800188190408243921656282537793357191628658095571187695211641465430965520305053696851068900746317858475477850322196057709502318346333948408114058107933088689932843203210158901395982135055264805763462304652788909935299584537676958938644061608748513110371038132537215554976201173187634149164557790366756152799743157532024459092658271732169842006416224003933491681074711459489033846168452614481966311629000906321441449946919526060521071994257606322000083854256146897959520735552252741995169782198313937816842716897528347977029602075459219699149148135935282679911936380043345012998709499600218363006413157724713150324348018265631898386637787792519359245251223785556911304605304361182716516557576259719791408791285277337242767887469149881797923018778327664853527360386963642080358547176132346689301145103451536274093605369650583328217553915131747353313366528853223048265984801754092047057303655031486047784352138363052804349622752951479947357236798924943635179408873388850796161453925626803914484053065971565686437035354129499167334465823920158171147024258769289768702801888586307277115562631600807455351975445845957275304011666893087942003296809654967312794867556976534855808009774479490701886972767970109908305884420945680278482784749544965328699430285104668936404090800043667780217202683827503754320807201698029790563286518940732797255459270856755914200822753491364155190299105218066857069050378257675315824452235846758494283972085489996932051142876512754643260981467907966715890659068820870875083330344592111670649038406963284072707104572203848764994790763302179631377194018017921300429460046453379257736467650706603117596380728593725026275497218640972840357902558566659660848709824759881770416357510998713084622996346151298832183220514933429389771631509937037926496273902981195556256554827446670632409500277417360036821369581551351591886053897032142033505350669278010820477512844716483648373380846496584915984057032730492089936916245700077105105352991765085776272341230591249709551501243578245475578748961706672417722503240709502598443794686579029012984060106301005400253982064483582764128318133739813381933788139801230319271731552782548069350314652953894297399794108430747586463397160788351404811937217117186693471830270572910282943074051992196227703434459120692683654933742138075606713487873410013733151076075434079566499463366747876289846597321767799629561176976906115879446339150451227824644636782990555406132415735579616569079180295813689327920731675640078606166636659657022097991616373477462257998113747850436531308495093771645829380067349117085790929044636631098729182653395168973337927967840553482733606108794109960933983985821088461264230656475192426134731831316391689901226527719466584095865295333106557521561249754498540363372713705926189367284163165174553870711305709592820924023750940521167380194531190168886196256045982474015032034084485029359672562960672488732920920213835420181296641909111385442316238119008666461269674855780657353581539196724940863311237583073605193222114630025122175562090131013933899321207886854285914358824497918047837934725403940800949231013556781944953574357070417481250077904419643685677297673271251295060575789895425245607400266251251967495560562672231289405988522477208277026633508504104233142847477164470404478334125225379294926224337168375352309616300735064747075504544458338602151456547730816071357958441981613557553409107260652434239371058766816951825203247562920101819148695737951387185563195231391161615236579378998211986112428911873392372378441267279125397870730339325245595764633563879420112449746620437374158593263273176383455845885682094700425439450499956986365365646338686871006824331819899448594370241855212166067663641900677751035159770998099557577231950993501466404690261771826045453977757419182169412460729332335104515674426884342884937657762037840603079418446460588310316892070968260088898603145796159671407967465000250098147047905586501030435724540707442964754061873447620566395960312313695211993151407748759684745104140197912471644955000274172357092786552670663940951411599922919889934041856775089683242854049653619342703893275856336474984745496411356406614484566929636828361665809566189012613468140651982282505744498114627360489261566135081332878670131498623698346202262598206622018742494845897976567712367648871291899585274026202244988741102653134765572486577075519837064788956927592462086450213017854829736182734790016335814486973733612608004817439172664511851333347469908697921185586426694761534253185111658771106579295945431420617590763712705149973931716132984448179957688273765660381399469128105717406557889064940151578318789466386183909430528187645455813574874369508040307896485628110767173486042058744972471864997883183680643564995670507640326522649389971978156484125664245602007329081908013826558551455965073692806515000847727958584708958322315993210661713551906386953620124341652417259455284331748027514277531808917452881653941695312070854576768601593038308646296466911729442573871982204108675360569655678453528923890444259541318547680383536975211490506455759922659777295158897564663010037747115439854556322015309603386926584934305717500747050435017888579008517281405790560609003442500595204915781789590625415985216437613659539307506526441384469662741286983040916639219476723247086823567527041385699203747767132406586501800888022280227960729363438070426189019382644946859211040515847247633826783179538901851413886195923159205696837141498420109314962079141268899572094670366636918535393327186784156697174991207491048458827338674044873298278281577194702652673738224460025313035983494111176785565924259865384745223969180451940968235054912944193177248455907431361020340129395957634995878970622882945533808999943181362727153883407779079897951282057328246051719053128390442601141929222612785451881468410633985915365149492443470595530147700159901562930186686182775863677128041659738402283777884820007798200220440860403151216341197232039863432689819514168176175268986938830328203739640141079695041642952958080671985527999530461604262015756599702516368882491536053141307560233730456145667570924905607269964582060111677543820946185463512906914675346090527135031370954873625835674031047967686584342231124002655407536222986653834987966004826747918454870260208911878086991285278541983506363952678171673061582026201065200087003643514596398847168848175543649031329516180453048013587358008097314160731362754622934933046858127978459208985109364833370249926753675913341929713742948475098937604448429687846300144157142644764776913054316499496273899003704034319551899848519699556546671293570520901172010972737406739196538665864016351000453232222934671037210411688368965924779973453093615735138795740052802414424414609228098848713239069362860185339699495043257200141987907852958321701345832428866066930583669271811560582044557002882142791820760193171239965801846434103318898242362420387213077324128965987115968902662824401652880816016685389251135790783341676341502140049042188140341946379616136780319787545994174121122181681391299048623459822352437198036514035537764872751007634743462493611077013536890232682638698723459746302533110854991237571120679718916584752681660965112073406117417206686177398079715057745016881856890133729297286533302532003297808798321549300900175538504714976651261443360039252802397155304532644134385153474762752969018826246673550222164657929277777181098385238692612499042448670184917768373414706328118321592275471910131500761144236420528595631413270267077233361834606346978358804577987438322021601114507769362330625440210595822274801236488401629774929572417521237146004540996524893844781919072244475202983975288291968314079218589770138626512724863037064488599486136719528419496628102836022413497477269319502511029429382372996555856298233636594341109003979626289121587218632314959931685094504181522719163056163161435862673791008111950481236727887673514566017543616349309582391063453340828706346611326171703965790941779898500263034887062983607433231861316988724949225731078210121626059334654120566029219847347757467363455342890888513703431025308518861721203032217158930770135701133096685155581820430282109292338852718974861797275854360159463185168709836634174715537414221879707951528082068967402480094006849672498852903312073748526582148427487566645960743320229584814307257429134781623123266845715666044210394755174585599917228431939192801757076543186779905887128565273366272314645740032453861463212142595836058909063279127346621848515455344133666747759040198340660314371882438402636951937892214631329751703590783189312168395896548082425587556596926242561088701567813594180875346484520130910488069897680694677437328154638910492410802345678119304302583767897231870309066068227213924134888323964562051582140729889133293685593849715401499258051505188188644207763124737539134004859182490551483293179573047615326073269537914975216152504688423228282414191806080631729361958329903476179420461062981624664067492417204281956285571198178075590292705844308551115803748582981742214439663492566870658697568359993912629381371154848148106219805892145604668033135156609952085470306356565209864988477035672684944016170245727859774493576747016819633216900639851257898685808936210413577742871586139890869815828615871244682059103128810063870556499807266156965659498890569443983341263285068542615402609928070454787115477206616139100734168230249600671031671141618739891189327953556948849975592806751816221635242024551485629016394936618687323389422693616147800625647176436139102150239773610957167956396778620391704173181329928478724324079199147009637399498973779853399858933424277000586385960813027703494381802276958690444720125244476142414685851881239872338366825686886940321544321435715144952873218208414794210272109863335240394031509898634326456308700542466031148527228328966853425537726183480636409986636506188550834479512276498156170527648672281543672371822546081551722080778172559786084396276628707380922432429792047989514471420420136868445636122806241406559218670016811718087223972415581924990655377755056992035144982815807470502654576680555728812140584514264962886963803878259055730688451568280743658964100406160868951197213789756775084221093454663998683929187386530476044868295887474678343663132111910935410617911003074857739555282724259122010408680251093483977306671833722721331131386382348720177815805935490857627288156292755047493183463476116626856298057379053855121085959629918904990283599795717064201214991691736200603633563872303925549775025699690658679850935219143699392700569045626346700150766018605250718898814041821797983093532938560368334921663874889750436445002420636840367901084418116944846121661255106786760593654717957348449142917494679333087991632066721224939222861049891562297248261317767667274467555361908648398451334451785421370243104346992542755398352387997194522367904262686462099243350264173383679935896945563071587290402887802651668096370484640264181639983724633329885373750442267644742345809928681229702800804526334338239039226993019258876760710736453816354325133382565146618316418689997228808281262215551133587821013106779657468661178233217771091617571374143694662329614509088430827351708193201694839674228360178184413797221833151179265898530333226699778226831563181275137594458124904109792404779914142522954211305707642348263905053605343708577281648204368719920970541043481441698568121604493048282653248774822271211593159852410900183591700997228066033485165156797180917786588131720265912365287760468405535351504760462620972709769153261248969185339901776034873161337150622643321135533091049647823560179457792732369131139951746523500940095383027130022379631505589982653398809488558411817789319188474528390430210868683815113174683108024734492134094067422384699383642057979404199638789705505912287664767455003476574311142061602264206736714885149010167332676960755031593091436342760179135831103858298326197844826980352533635350896873256695061954312830594237244321309729807185514619602905770706267512952327253170912316765446887933770019631345821924716765886083385077020618608364643221821413840651963157872892448985221611957496683010841163588406124528268068679648505310526022948074921254275797431599948108428970399285273767030629679493962230754178094930289690610050556492559501585022666001092834151724794520672735526007366606463411619953310745309820285924994264636735736160079438930912452678265911948047034712288107475406090488315046918797759924490420328457187460939695597693008725146061137112819393306213884843018470126583375029559654233770486447786129589988119095609460921120724821549983043543044600745327068650644840306881513605477320145899910042011736916636941248278170288060471882041480244245417553340076350113689035866124494006659207242634207145102021766916560005997617623889545413266729579895826447855573885890224580968273713050558786323963268213073630132988604872677985811545724449517778259887874302046005418098621469939950736890870863074806922054375053041211662691759547117003629583329469934314509098699126402316944150429988358320742115215915090553012510975866478519180916932823183386995832791286790357771257288087184152907613362748740714798722187320663383725823076777416768285840422528667648006634134587543375297944592922986013235571090367928356898444335611866340537455578348769812375865757981851589724699612630166647442535841681011718023899167134931795115729454909823641701463737747235660372903237547651947673732018278388165249938438804396485531206802676221393514931447117878193449121449489679970475252393967372133786814217539463131442039272937278677447755575376218254942236474793019271775894090565634794901685029454320928443569922751382945463042983272041243851972107524094303164731814257217892842744761145258377718796108585090043060713867319083807702550150503837064622888503578737292292313153083372780435411375167652157309610581443056010138333520857601498936388590143180093389150367656257149978208613518776309968224373198383307034278417647374487479068585711210869087643303986708045260591837638698160499959600783978128989431735743550621951616613250449047479134384492014716816083623017682633886988186425279399318824332069634129410984309234633112113390669230837966582403763849327413475760640858757516489160659779001209059555563300774088708804081314914064105292420928539985253735288454740386351238371002715835458562662195049931652516211816220249494987707620093447775647783450608113954058334553991864542528897368924930864225539458745894659076749958086933774882432223484328207966486987390248506866512140846264954911730008563296140612068759194106589015538384570175501664395496291889664914938065681802487399010516465592106580775666754745090775803351855750729399916122951086166622184476345468258032788818867534584496649838171806499605107359830753246046729051247884291540512695198701682332723565319358169141889743620188240876263268717477795839535004358735371334426944418635280724001528620039349225386406405915008351714768662330761241042471918459831212087391138817182610169798564893577316419433634878303293096134040681153467063618247863235923615446466229468568648390981291350179678266537385050730243083291154532805323868416613648721932625977092817330175194037416023864200577502189208936929205184611159442529782169244450065229682262920146445783203203641157112021679378345640687873152361115498596793571181833376912358986959544024183301653231541134467061682200631738068778832842127012850521571740710095041515546801619702593295181224195280556227260937155076272886236243437315758261286045798974144783457146734934622103701271570480255675807836446895059416459357250276246197588683605165260947888090697064884887683262846238567633085962875243668305913086536162796280762503512404453400869364052135816192927323289577343566527882616508030944405188709988419947779075297550796535886277172465693263080517195726466826927643199832573233587495054451258944441293602841954381588441921641838194268944609916009499291682302962934400496051064022499308966741464379221975710442651259090921164011218287708378911183191696391862891129191441412017857740322670141156210628213843447877665306177477535162442301961911081171095787921601855315800832517673643157332968875128130050901042263576093941679411981449595953068952996173612152351127952427673935782345328250576150958431786679822340935630125092533480256774008096675432963468659078596113266273566192877831573957225908525811708414097004068600246306817496613380258432544709213007949870722007479914201061509524055362031795529244720220930484457339761096198516214737989645526997637976575460485029183072072737760125441503387368788159262120684891012702756925776575827280752475456224854917917063836690529091522953594293699793939811801687972117916409485575078503269390053506278981867714746831668481763489640894848066247002130622355293457060594819123711599607158580192236502960557822231343015267255692946168501240196232020976702471152266769038102916117309677369360914454291144610490919646290585017982190205152307861423793506754780648833561656475685336954646231284207669664455286950990167601244492275182587385185582104958782897660888913066462972517665887364528441703634945919805125746594428105030662712226535523162341658134389766771935260252008575806632946290414301614038588824915195830592942909398963450582083079993015900192534636696374886653590570949251401463490431394611569348072075019143429511311101383381937375510230596189470344532549596096393049125004419506546358632928574920794593455537491908759406075727139731458146748227375520056472281761232209063960276660578631018204938560085030106502522396792187079697684444538128868304467750366813598551798131012095420977253123007044658567596180565903581262970635197659151155574611110271733150873312157024532209401137592336124718024201810401839026588139184891051958917949246384102549226038274909578302521463539620849673322751209245733322519546162955359502068630784357454314675582830877371763123101973488260241283181938721053685424277649712423146042304036342217975102220046541362885410536901580849562500652085801457094819323895066881311875223579661149424402224029249984535595988596319569115367120121710532860181818656956039043594188707002821612624852286531974341314846716057929990491613394984808705690721230459914539547731230900541309462073798396780411347284757214505983178402001007845217319225086460287967890799343599974166115389770504407386542424706480651751086027255401302194803854225215636975560307394220350411270092923175174795481511270788920937646938697994424855323253281634241070112598166816957674799754009410927343987998838163833592143245229266239708220756129738595873308008048135683469641073898412920744949537771271180326921376403737907114330360332540767551943577925571425139090153388245484497112885705712725261612743974317925705128578224104006325981487166500291290844793857144344270791830522192458995882947803977011459197906394088046226801361853396047294859357635214968823337893602604774158717229987179099409065040401715687134272794649842376622999210790489087746286653037281559188346061426684296018006199124792356599700720031595976417975826934816548733213796409698209576680382732135922514468429169402278391678693632396244699919364081057531924866103164532625638802084676089877409806440122782888289625626778866376709506450814772881497040064654855399854009901214958496259149639513334531513873246834018617128292889124306373880666451188595197456290421289429196667957280535145925574858506899079179713356723728670002140155585122381585708828042656347553967595161310233982513718586547820465772250096341496502128777422419695428781445477571795062546150799436242634050481239994872633718212217207556171938749722696765203031724741312502150026441191280110821704196170391264163277514648903312007518537657941051430083030826451119695516613662936064669075246065477413478197904493661680458002359978331010509960263854724088978946931518669969049235020657875877234902426038674869172330469102930965188511689955130858674773704020350706782172937667225443942340299630485103015232395710475206012314779987246103305895520281078941947686974127169248144249452654885225899138876470230336024017956678619427077691556141688855050688982212215440854005706234935740050872084984227370594443289330675785128614333764023846127661694572645857589929139763012503475561117146945220010877017764370344122624753007089929649107356940347487877078856394311904098588913717249768913697334131255600588355531738503780260067034601069348200184882810735489242855973663039130311863157931965494174648146416765858651712060523764681410442876335081397407964929609244481113596720264797646831069987732451752683055106358487896740006535333550067033792856105218000584480748121862205005087010177612571988874644422322296100257263647502012530508758426344890994804617995115462235898365937205564175010542012951892205961453375501736916615335098027179376123914266609581603267001164107268488661474731229372283896752174198911245491364226145072689708573651072742815364893015116998797267762609426821018442376839736891898307469789944134092718425896255781493625434898728556517766744323527496206071694535289227128690052515099701642290689910553817868576413320553451420582674344014168146276458009454684764257688294244601420332785149116052690970295371820921509674651615867311500572700173955653702397350034981473733819188088775077040919137679272867815574310489882686234795997213600224122986799510303430543127952768924336724797616285159657494487417095423793287984914450805226136512575656415975533233829642611724920025532350559583029393120069088883044668336958808109909593631414014142471649641620350449030242307721373427238082074972852373018670875871968141230973810665999721482223203460737121400744341001594590921415588526913631694308434685385148931162207102765143439528973166115690281607447765154361564321933126866300431244371714779555384686017244796343538705207240970537476140180045648513640055975577858108229951266547766318344865544010185060372305119265997805657495243749154683117631550169096873554378216814333042982180468177155365535811395802496391288396238711704300376940847416821769462499712608190944025648157681104197777701884571274523398809072593101534736487232627652276588498055108947648711023577955907035974098654404030851515830985245457187680170008175102003020072404653266578087422130627080086490082405989990891706695750225590766523648653210035299507388638325528760344314604830037529666148668568903045024492097480629758316880163754295028594626291101562744214134889715361716770274214637031596977864577362875249372375971924062870682317682887979164500301161177056017981344558957150055664008253407088383059463830499212651950041560792683541180161988043971986143845485011522700251225037921197358120994982538781474700366320182094160840223195594740818101711166017187208874413512280081706545530194535702154951591154112429560210085174584576590671741449920719702026105144111156981413446696873520788333808074646408214219705525810545159871597442608144200921753629020009718652540176650985622313454085085214576616767203257260662178943008789469723005548895600810824184045602538860465428677907676793383119264227700917891480447375511686549929660853113333028234034538930414987886390009997330780353773939766351723506436289890673212743064595420928612172556313459534088195482747653511214593408567292619812566879458289377551609011202107389276626135027561064819830496598978767381527794375841651686938874333199451577063348065730665540153248464194172722254471414200061514558964414301427913069905053799272460229941611160916504815839166805810285429224819174057256166158191191986585963307160434550913813323564348752007156769002672166732120870493588230188192856032631898791920521208591711424878989089521809829750687384117631797385666717491336303666933699748961310354454932206352557802416024639980298487795882686218470152647843933889812882513914649653044813280268634640821846448901252686090405041082663945337686954755129563874213034853116047259618194918884533267222931215487394288283314309816946628096737709933610076228808799521174005171862263747029750154698679010303221720399248552122289848963984895318611335409239931622716159378155439187001164505057524135741329503934551123747831843470502431187079844773464688051746573961838453922809167205423440755007529314283936062315153395032026469137605965169143327628147103877131528532755451167570584324186657117965343715721095372100265967988785232234545726112903593686847702366513444324207572234876282845999753918737798258919521964148331783316536314875517970099468382431319871880361469282207220205793984420955545447532995679406446503244144857236928966694601227767765613265433273591902356025231546831608637087655153544337143908700642810543971566997464102762698065677715683627518085809785205729673909515611955422173964270174651030019537514683492543396732682823411886881149302824494996791807714467691196900745283036983217841629212170884510822039153784018381387287238107058231413503592450939605486820088959880973021232273852022966657405088011496748008064512404516729472704338828567094350045246640475366711503122774399061282247128198768290854552096074788841419350376666195950887407841957952830522291527642772776081236275852004128715870833097705231448621581995362217147845816857330905121342331755519927135486176744660700908830548970089143929257528665928231746582730507348394127145357620325423526263091187454336375335631026128668625164082308204478163087600593747654625341579246714037345595857524500516390021705535724022579451633610684189591083152590626358376613552210907116482158083011826212012368790588569283148448046537072933144809798911356585322186241172467747269492621774653818756315445216706836957894034453269400232802976518539857487345549537494969996790226247762785310933718597316727459249841608255504835400089999336525497702054802355670065447334084959790298744023578811358019528974624434666471672599769667054435737996727795811517089666377745287112236925466655730286394976540979636076706252594658935900523666657562035186531823799978693184686275851379438106576094924873384319494537035751895476006624293278642019473294641512193382485454066574693062390063976879134268541021932650852374345313839330733825630324260610692033989639109283201430186274092561338002140667647217523240215724481609519596596925079890095154055285501961167841362826240907926519108086535349269893345685612925281300573277647745818428544529653972893345198771689455997937157362719356126909011237725263933455909698175367989813748784115741025141826428195629200343221805443016199546829831451549694693442532010247599802405526263572476624681439693258425330621944597715027476901014715058835467547273978116603302426932614822633378179523764334968570890103545352765839517585125264102975639197487942801771180625356107023857934214258250744092109959861537902957255255352290796088481120997057777833086625639560984291508340865984305252803199000340407890851224233226783809490857145872089588258016997308727904463341115220467774135355481901685846579130440763229957424715027489722416062677114912506670699737121351699276827730032437617181009861152350068210852131911439191874059442668060180446773127065346790663786594903471055731573687357335599283059734952178905550446107033499869247367711522852362241317558206652687494764355565672374789559647215504846294764681855221507959015080003889620320061451385042076789465013997079470956395669884683822801263385926085017623283285959147361614131316837137459974066309265454622454057869384235808076617890246869340675931427818413378821570309639295326577155921430457510581755524399803905059790841868944108158408645403330430094230082514322425688329477317172447511177955804553570545281492140072575116456511259959457768063993368373368189127007877241390581310540696597593400065341844619825778279744514350084600015186045468080210447902052867049633647784429123477158019297787845327461259283279839553070258547933651700619833701769228548199500542991663631027069157062081763478208416741794764432173073902238972411082993391958370181092246596110079954657418696499766614111045604001035406618343756225853639121600819324055790301037156968771735222167194683859280617808297574623671074679497677010968144316724901373696519079288881681279120785404875257335980312810537738788894035701704064642706333625683556945920932048314453600607073333115689474340901630407406795777954381152541017122300053993905588362553476561134080177614365703226481265405753188477935856362152370360646813308248957176817836441165442714367054798524788449051698826935560869386138438556605714477058130490588141913699341841268835935815556223069465901129381414122324202860981339748874408900927595892289629135496172547658178618012426955461392674166925071516648890182767563104855686603756033527924483000455332523725867022126889491553605564132857005085269587562181093131992529362324570979444443629119647538331212293587965196219028431960906489100111199231394058635438049245229362471305257484995938282596410203164367568137655000103901527160612838820437497430626085822951770225847390397448587069436849642365704222639545304734414546283448588572222834149314651337177837624890214006680812525565781858878081632589007266398491849670477578622649726786883844592660404890663039818628849042113682726218147673011028777821419377226542917570064166480500468976091398552419239358570512884456197022356810643782021058524510886913758990294555129252346223213568719074539494730621909056896939600858807580737379880536730642217658394996470451450763446961837912319748570146319832274242977166865170306620249481003717822659334425744101418017179510815557119858755917234968916708100320911835649883257346328364070507224796827759956322960159185021442717743962513286187955315127573946861134236299161233668543963630521662602090320342365517203476759594855144899735379021992023725694997158431267735672872923315995626755625184100802966816211875341247358285112106668266608151718243326291037785515369858393206801170082034845203954824662852259176137150817775555913498133383266186316544881738676429087867232035710755669015374608670426680753642982501166637437649974167333289386776012815742191961819645516497184772228732720959552172534151610657391699232764392555878326976875464728152124437695926632464681462995339685357429661731422686599046362841350570633185226234779178565579827053384254639058566460333073491848872495423349105192839661442631997269467323983073376589914870615941932392884891549817697506511567914195109676366889517855271834846946400885682417708333138586835709438327262366996652013342167685137724323660848177360527106639140587799369588533667665475523014076327075249485952506738198349451458734060895449538496475880525632923560116064722944679095025553879574890488937232854453497969090543103137309445271610662162318470080574394236069718282078507271098308623378103396540594670278513965079119464994242332334090376419792351345651102118575594376962003787396096229300306893029784994612331658795580830032477249087307911616916550964294746103358868619422406157124974723702751200750043367410526061851633620001938691681937334380024525071739721906735450078955319124854982117783228442001462486399132622892324041035556427074041573131215798767253667533256633012204381224606986695352015586872870649595310282975366609581712409332281783491289187849243225183958358789389466122624158756896502379031570028880650772728420681713888606239129605510722042169016345419673816342962630981234899424983260559302259827937026756505107355496856255764032047678628642980278734758043220453823639048569098248545689657410744884439212031200309296284893214051728007743441190250095053661438835541062983982489902685327389027721355661992029048997793681885742265717274029659443473416696061769667012225003269934448995629104829938771020324923849915219489472007296023620181229452488263555077976255506007070519396583038564530434981536543072529520504246198439672370492162164086622212400366503321185582205116913639311342727175433705583194527110220865867446991756204178084271990124774203672947618148111120870455757797340560570279010919437438529741087533058430238134527970644397970623526949666970198790623460355052263215374992677587897457163707252329131264728917063982839061906186300262115528259422061969984174420135848215671536557984827143992911868115179982463987148369191377834508171121702689108478284947164522033337686056137574879340518599820124938429344414448135697404621361279605051576626103056393110855484289889685842755692782068264649160096942241160283448782158274955106125531417401919189730604252265792355226410959138700622093871762025500305241824815755556539593220149140194366725761469799864446215020257928742125660795774334727770961991596130267290041681991670109799965554879831816657070495467977077530884845985847797723073791740023843385074515949989617554076896073180010467200475047896957208323764926952632373240507203586830760681490333553723921830292965223234108125860320882411835069873682088756866802281268733259039297240681255803975892468557146127216169883855416889213258095198439691474926010090037346545279012369477102950397226958485712091519872449822249722974920829139832970582020277288961761580764003789523556838257525780523065855078775102397084321073401472408501652291056911007874155837934114033759825507243120652592716089088535703124470391307822869109259178970651902902170071029090392947873213361712207915230260074919858264077528935258961359492802704913189758864995000942386033881097108043800532439130093778691285030822813505074006141252780714590034446525351055798878525302115547885777284040148488508882357485484127311470378248283941302644566049336530493466607823342031770882075645726092622255747804774465821195472159878592849791699934762043281068334754265823741337660313221635236704051023501194084498249735627702135146717896467880450221714391320371769663239665403317935707207806238562411958225950763886401348158408174201037331597318597292436190594640957201824077118651706340138509640435477561400857036748302001742870795659195253667732936356414162252379425360801511372395169513583851465229182602324131720677841913597418718536023653775030881165122572795591985415861554981993833072316966721622639971995875796021981379952355465210159711290217009148444043443050606708086724575259364027855878866784001227586470467413649067050994562411080369991308309844522704141119684887964361867863267880943234784735042913230091084070734404598177756316927611549688764274623614831415072848037797885834566977133649879122083626548621446410584515005150125539381695765889857359656308999628962642359369913315706560950082908115446963648907587776013770026577989305416222072477726515429425197246551339374433567889380285300165605177518713370637598837476374664471351114504575617990575147629395380708646768413675282774243902347296911181785276830423131761848129188155283708337325753415389898493088874014706136092096931359731977503382262734042037414297351441548324459458075255400026754837001338313548600639575653081468019876299124802122586618728931038114045785614150330783340454806224759119231707401127993803408310709876150897696172279376482915369643267218945259561013921272979870341012832467545282564940461113333477295406838450338156228635541737538012577783239704124196644738968452188856021375045221285050017194648846671113056829788150801230975201311093217589913306738729424007105533002073445096448678028819989183658647077433385168450935514472002118999180255164616251133795868448165605728818818841471695351779989135673181640316546750179460390237719607055288228718524107424821555568324193815662402488570482548329783299524091325404023224183989340623773006226047823757085957636398707564538356747858922732922402378561550914330535594277952314390195228328519190882524398562375564761378420599769795901840894628016462405457596273344879394063016820415857841316686610380563128641836427457182907434392682453327214709709942329958393770389363811451729745187318616355410762637134757218175186863392492147686904147101875080138231178030507231019467641473391801350361013523559978261904327556050798414793045888150356710182350128410893851388021464160856349244715024026373697101981961327239978082108407723793878443681892119029267086734677931718046883513724554659858047839101395004708995716412966213674669860697961069650313165395795961289579752316009920748935121074007362649293347191083159950257706902876121694191588224126556292990226132631378630296281273586064047563800470032931482752590850156873215503353496212335512790710662000067250684552487494901085734100562987877020964595403614887692869376173761958978532316221257290771906071708967146377235311194208684478816749393649735591667809179169458774621072471182330867234683147531089952984739924180503774583811037393346686408519743359155970531524805997254054129561124772184675846873253154414650998510416431317240457707081484887151487032491614267301891366091700925646925756558196953489946266144117317437917605720526619256404005057870221272881924589548073126033219529402627092951434492049813846978050352243369680979254267703594391624764479486048914801429368084229212804185727402312452516815496926223535778325049697900633857439553710937199725596375520555050142062075411473906848993996158609408787495192754938734453148508952186134072290591612294804844543002781510098998719136757329922576658419159223166535533976466959984854278346236394089012683116957921905313293137280395080368766252157563188871881528645266561184351896549748067194706430123508958552595169061721654283729169458838764476661444078536259623907635576807233348206111846444464523353534772535269618732352786727425477410053748805385219951009015643931448276679369573937827883029868079457694479298873903556779729632501609112512817458359256749076389709235932593197990996366248735610392690653027100809095931836179844337881667852811610338223627137015323831420322842792799766651940734142939270578433638152207921827752882204542413652805489617485041262301984832040539105225736886810774151807639558573529009091285379713133114297015852296325463990251189908321799028642952555717133965686285683985868002699052116555300380533335460847872818205968124887134611907301644015116850145929630308711053174955050910312433165380112546644559744194545937502041347783849182649420255974786655504973718906771062398989972683340370964326353618199844359293941622153649203731868456705042492021135867660047859130566901871456370068009072830431737849351335272915463989604129118222283096393142226276097998825252864264912489282704613118715370766287783770854431012560616183845047505998448428207042782350599427102825016517736162722054253407271668818964375862034540761046957036631420912727070704956498068093343175883006708440318340570201211918475668382464523635441222920661328426518888760848822014107017895690225474158032732837588391103586464030462711562728103475699156413615818444697137083024411092732815729071253172006018235545764751943177360982073911799049770610456699418578582224761229993042133352916653423707240565045171460816132421936413393493030349267199456379787072047144489556435137553691663980697639031584370090690444838036590116212624080064540846123430697421540747032724568516543765266946408844824164656563772476906807225769211675226995983073235226218664548610651277119136063700766112234384636895600635678311716506156769053251688002347281604744281601604067592028167105710982677915102541311689518651955841520648783279436722184987594571513825501480651066192579019663310917964935030687410681296603084031026945766246738915636082883134784488766078373289399086030244422688042217447501539985959217638683624919206697912161943208536927337737092565424842870249243739607440652163098232659473187800215844055190261087978594683549823723550428359648851901579752936533549254057506140688546997723453349460018400724540592681653535817856027407866265256784937525347868642097161659783154375881435523053365951130356081009490651908882726751871858973651794970514260774691651240389197275390048484587388456020110016494236390412942929080776740981353839596763677599201303387535618008638252671145239195605522106721544562188177027951526916892653858018758499029199012176115395717813233686494109508290752194436967173480291875655962246053204078628592488099091278730470862067667444705179784975322194266942614464117685623184212360778110313557732348304554039774286668820949378444540183275058807845206785347834363828564971880037954932958866535681253316772843711162282464119584672122852220666511327339181445875340336669539213596778183084798987397193272709721335027186158529123455080713085347865910533319391705833101401309069709494352223750371020560277577286024844350844018457167101882723510282513748102478681042472663547967469602656528574779663376971618634872336176186717901446234692382175069083742781283580997401370147717114292719045093447484913343377811453165309641443848034432912432569257178751104095568623497067873407336865459702362292335387601210083573994833071309047667682869407743554032643541018692592857072590602292215796055015081313844392326569987438512003742271547408049849407626260413130437686509762348107988810935300758497074555710615437362190344569028280385753975433535775201275075128691188631819662594697822810334090167625760314186508082901794157219596038734070785623172392198809017406675145993203704505671819675920669126743746661217881712748502872999449021049143201876022744060876758211428204703472422583871032851475774804426994185777353714576091481322239792726952815710450226436121408466570819393896534444021968548978887015079751994431878376475785107906022550131314374944877720704896604832143656140910517046148661228490244180369006339550613001573040256759984559377956137094510449198412060131335904721778242041901858069975715831477765728026677623195593953029570994955283180661129685083642072302003738763621458412406338629105660328685232978379882578906753861710495779665625217155722097952495766534899818015985910529124362329382266420180335120517348291322685949297181520473815239448324509176633537229657590163205620521240144208337835567654205383409160200472601171554276747849720390243627944457247831353030936115429376296006917281371487082625691133489832338554042481193119384279758798263906766736327055561602720996917020393377795412610585802691594117025909242668764757256106512254688007929317944070686791019102365667485563656166601507625133890516738273865078816055834818765219096618389724171866614027438931504030212428315416034452739407992031636571800022870262079404774595942612458516280815693183752426947967408702211527794374236223401536393393603933285093532519806227332372705598354524271660238608429804517236544586009850195428300625689177514952641673198567209147720543729583281167995920678442330637440834758659863392237020906983372448313366288947886624824448593534303778087424171713630226305367184861934529520458412875434854673595667643233735085782237303633439750533533001552635517378850089672354700171323985269888863612640275180650729123967426081586435441388536165049240384597446341861878283186453299743198029820353988052806197526216057705746659900375396555593247467992057687700161995811457991074359971647701588781620150846459820804784140737924395081373700033185981547675404539783609887201777759009706188674881903100546599080754376942752620270585624215977884757271755922952949012115335925340633892222057647042734162408682798334487110033088232330706860779441354501872085306249598535634267322721874384019742806259835529981731801769842774017622947669782590810460759745737961610577178435378848946955337323802235080193265944975538275242693398308125568549384520947893844376440299307171501945130709886705182032902625353097823511804858708092827232171261641441025214961167967836057605514857451611267843352753439375399732877844940041092407088429915081397920469160864825452716028039519708137721387923032469571368670008229370525927570506286132262489349640455002436772783074374941872936824328142007416816074116959212245163369895284682357760995486556577711543642388712205861710936870108263844002333973827019819022472654329042876613681302390954491751018578275337318064461026022911498992433774446078635544313123556664135357466992658462006346662879668624870193888562397317059617802503479846361378842068439005028389797206318792413604998901797533602043289109441513081032796120248897633447390011839573692480604693638459889916705810380839865452505532137872515345936712406234629607388073383865557974779110539477418772287348573190794448789181867725336930215836333209058681707042243019816005645253681064770399108110670602921330595541136678032830248368325632945950671264710150208307890278850531771323891294282472812066796329804510977607584084380420551549210153545883768592289271861030827476261749149233895814056503851990179763640248810860940777540052325569222761650385956301297197176014074867305468043354240957147677412849664958243243683920944564167604890250881330543279463279875597329306248939515289476584411932328166884136619250188686517005866231424174072044578847265958989180250431875669985062481614331949149284517732536163593737982606487802458622935538016247449573967426370311815447189023383278792802270844210874151434754718240338884614035890097200879655758117087399132999128079573443634950313212996858843987432289921859783873224963265688585009518477291155601383102001839027911942445292063527537872485154821259742464560554208047928220074379588550385740013951069922843382523162342174427223033070441770254240182538023298347901755300933497763903700864398564036972361498454525841725128236439804078442922640264912876561466237820606177924076753483814521066054361417912397069596077755157536004538831219510554548832639193116432416966912559353871912386614894821305945495239331784757819112011010888869519078873595139894590267957065766157243277884549241346481037809968723753073050011980495310482215016910326326395172954698927372460948690274141214420850729113282114593054798313800935397004545984150690463971119876646254487768958555707271692474179979043192199676854284883247740168426848598555883668925514795060334519126010994912038782825313778707140528082670984719819172791079895330850610726485344163384905059694963713973868569400550006875310795821018264441608418485530917256376715204949536230010879523765022303554868071321068096949729672196535899826127345204515282297759916976366134575469685939508116503626165083168824839720344504441773465556336134733966856842961775425125143373996208569806182765042615987898463534388194490055047495578473795891620944607396541204187806617574396814593789675481516508577962721329207185682857542360383367378607924888316776053189019656275571279284498890246910172356099995105367398248009791574095081911805371529075789787880731364503580469059753887763118560363855140362432307285244297782653694826655073510908322005875540052612990658326404800969305253045551958606158787476538412102302140569606243259590743663576321998308465754501580399438708961819926785638789295554508995056181446617729850582757101823117994812175348131122705204765434551980654559169876868048301406058177852977222529383311010703393792548748014912265593400821942503640049535491920485941892935404016525974915679268298403433247013942589214999303122508985743304785452076708563822860194586311764919730428757943689247431880141453327321856422514644000131814623977714172637901465740568256010767460043838536796073166209105102721588238019939696771253307136762652136666012833050417431401487814729614827656545187420201114537460248201292308429006909620967573424990565553474476661411103625119383001784721575859857311138429238708070572816062542303508462324080861889323798369837108181355074666739462834698385699365404827918159044462877398417053873061390755227648859998061165327829175370443327227733206241486143221016883570976707846836853964130585152045620793458573419073526788546842968858754969373422689621257004742028243004270921641756180309487939871610143655112396897155838424480021557352632905842520737465766508363421804824690820542884006628758355973509273546004604594186004022831782877963211896513139720628911266150472700455956980294760829718581575590598377820222158067843990856419676366667091510148031881393127097251338894128840772490354253171884908366672622390088968529789922266079928035311825733588316882610215542583894037027921678352733809198074409166423428890331049367785651582044597973930825416737352459365542007721671472863988387207828324895163652145308709489997381997861997632865881833613398956607622613527255302572445991619880751899668566972547487168600388144176493966125620759831067376695969714956056538420297999824664931172027325962530744218060217829851027683163077778059303555819691479298044226495107225759125298864212139680615318462275181600418346115808618229185931079410837249101789438970845408759917603842123013591149828350986935386060409002446529296730394038304491829790172926993426101012921696251203009737437180857561885824594702634392531853029165040345323032466519848922000525286335837607689163707571162891991611075222225398904867930857227896693994850079404599814539709446698977810211216310331986422522376575215816210885156677825782370730315527495026583543615439231515427842985256232290275295035240935802544637268098864882316825866300699356838191072925724972492168952819533995290660324533864169887409523712582776959389153152849081678989839493396623062608286122442353929333330367485307750448299682238322153845830180882370678803271217887506424864891222872511451412290060467865251495431945570630133747584309079306781871397374983486790841842774633080149710853470129139907611744373937725260927471200131437859778266133329595675396411452625277515249036042384821939776211786809646699107321440597114583475390514335763176455135227476539983021591596056721664445776677748395491486108379708000762019032320652508000248506400682143765320184747900884551002380509345108225354673813065155754434810222437453218882889051978415408275007976420235375417400483722204998845723062461308361836819437377951191839133348031233105662350986546201741386838882349341744105475882722835474116633321757285898214096502565057710278441507218485460501473696798204098518416196339402585616310637154623389457461173797149986627905012378970241315592573620058706065717166644156709611259404485021918569908728548465016834165251193389250035141740799196198589363014955724308560156847461000163180553784168320035221394464887083085589451018779686243385743271344496835521589489952005348682834571911241149486551959106048270336622600339765084544277697246084206846944563727700284213466806211686836322293452234475291034178235402455018407407019605304050674484823998761221101907792820232977801120398549288896632569340925853461029597731877452188400015894865860910223700412757656662509909036218463649467581178369319802598318828088695081943747410801273424307296387864629380583478120531259670922245063396888155807039609463966037242985699074243331450277420501227113708419175286814882480829238618523553704028544751347947121776896345949411553396456039255880906989492586626033882576328645486394649021932154775933428090318199442188121640688986787406404852198894898605938099006289445882330696366332727900744874990500688279068740135855111953261335271777141778377834176711405940849993733821185327312413375342041251142696392746151437594698740972814286791736566552391527609200666088790169793185393530980699064359647424109280591209859881294247736320325979805557488027411191855232444627368892125623779294130090890782975982434230367668101582029577090882856331407987516882280475936566613954251762591542955828733838340180864350510000226572221958225044000847988228108225222809652242858243194516469711571265124484462078131123193877316712177580079183305660127602019307241023582914672693813081903215277897292989286388808689507102966087627690534781658756406668006418014960599675424868159089870538700099142016023920539534706048238499379255275469128865180518330598863255148827341021051946349130053775215589015858826269608927636723787953000209553909733398802979752874807066751181519688486300202660011137321203242406745634360729678019565532259917198879012172566999259592667755447701317154067400194089089102254540353532477390206496050286005726642617539578073922409302241396817191245555398580052269735339821028308774986166318154059980262607721173558191769748784486351541643225279660622163341391864276369849857990568183106725722101449663471142396763661059568897223544534388810531432150686014072198917188361456147146976345393244286435796549685126100541776555790856154077528380238657734622087880533022946395922304192402478850472562253940193066481024292936569874319541814347414140567776728329444018732141465607912353866668677226197553265146491092475886209943270878172262510151129089542972179092718038326227003455743614872535637424974939150515546543000415218422856870510147671946045467817693528815744560885417389254448977051116838733841282231904992461493103197416081597855761410083484123159414825785080847458198820811709476384041031310582522010480268895990401201091893977534342269742711046299670856631393963425534394095031584086735214717664100063914187063953579205515131411133654066788827073440930178231475857628517899674877413371802059288581810377240609528554493804386989826057152501332567154654095096220906935117850155850515631831649189164056040273391828558783169085972277307924501757938005609914542276740885784282449810093969230091686515752351161136706204962994375527107091095912224097455345517120324915687816655079965904561899626944184293254262292386852088266936750964349454898620162890416072912531917989209322748567555804341122889942411522149243043918026252247696834416018770525796836904243139383664204197432900128746697152806161802268749543556343673633715604898822834137296342543820723417761232395270732869183472435317328939569914375350957786873314812848665034844700632583263078278656218453951736956463025946719411044887405306744043189944710611777546790753777895278931892500198092169861376109431379313768911730879389944052696405298303069000280155836400588977104787812022058467234831035797653969742693380748754250120838810750360683451847689403500390356151020192854529657745944417712065922990344788046067507416551659932557576836881745955469797307148649330383519589574716063606896732320085082283681200307800543377976939366627032156018420933398939330788155154185470326965505579878446044956897108746436025659713511977514523260573553569031479786274382517173397873947545752449909150378992517810418398161264689230008152535243946476229681402794081756561604660546948514243642971896935638940589451487641767087541600088349332577322297022433551606472587449338868362766447389037153845807517731737032258890789135161630049240358615169176104512210244102110906530640735386353687475668878551312861288709462672675850701842297301416287611289668272523926178633219295683656893532135447166723059379156368292414619759377148099311909941338186489635403143085086523507062577984397957734427528550196729373966962983343325672252924005214103347893886070522565192163453014701837380989353520369226504975103088946986652630532668224498448986022499048700869443106406394752656836140145237734209686424235278211062806221767145647228258451795187454259573102212001524299182903038524870649424301419229959382588868979987884260185362551744836423156344556423475264089172288261530448796856479514650322795052991684762700934033145193186282028398337825950350751328173081972780347440633239409193443492534611059290754495753035382057320664530379851968302158532136480313703448334297435030073319028916689929083724593447103465471842608982032671427404530443178274962182168471511209434469602746497172051994440070527672839869209207240170745528879650728384870976540028399826026440676147496532982034327552760066281324272826830310432319392218719866530604476122922500255309705177360421092293162938202317893031941091387077763751892355562371281505547884186194048908437279369586828477156602707077513113705015922008934276804377664172791809166890064156055745041555481387683602754957665563794324477636475807832552504999729443462574917710311124340420525974377130077320751561761897714079919891662292867183420256040474771806278604595000033797641426564332421604403509884325592672300181457249550180296072955709250917232385839892149222270265871387458436557054642838082135034151773575879751279126724160360022987065599587147860675612487391395446992719207063267946029693411926408206291411368735327199075226007176482680662081473708061634531323637403453978587026726396812985011339285633204467517442946718584446295898782419885974006598724535861351264160411665079016073283289141579071760787333642344369748808566139108184164977928863126722437038379945216220684236218250859132884696583936341548812482224609942500719729930375424250436488569462789327230533950924397374494965687034432180324273132923663513814820084270652826956269092424218444943767039631582427388529501551740681281264762265104997552228324055371705475110168185707080433851756482123300162138931350448046250516491193582943023356411447544503579914954462754189857488362188322178933226470299743770092495290096088824549503962653656714643085128511420736912990775036769110524931868822339864860800475759204789812187831582930516989904812676553033088523725830240168940996855732471209771261810432015968736951763154652335507924744701317806265742476749057005629246264408046885804199219422676261303969933695382214407718730381561720348804855169974067728050876781807937646725880427776365791613556808353097632752474595003038947523300360509507719725661948610776441304647643842677982627368361244606282092986337278461715265997024117149724132920049141601037453740475505822842920328243294082436946861079914867112479125864933089313224615395495433559783968597805945570466176690489175234795967167335448300548427986151976009441194151651058501416333961236220083903693244932678570470301959624623069421644469307273354428623323703206835396253826802836158245298454960982497127457494809939701157430587316600930354055080985607614212144892342623961857286917513009947426412992088907935078782016727801523106379965311295173290895136350278967278012274957431765929078095797850149835181970057350713120066905029147757619061960734735159357810327062357964003150106704450568889926075607075483352893163673308637188626159199405897122641279154470918968815657417401779367504037459507971046126210400504263810783341491602541168594441986610941791980855858395658102362683593906601915006604611788621579419620588017941460008535085798625718948718839171732263078521861197507614069035635634095849098787917548107814777967938859946993615267207940034109863252596287199555290485213825536523750950586577427832796740096225190178321884097905559023526603711753984791374811985240386103512434725338984545252232560182398474379657610707587917445234512958008860121525966117562291701521779487466793845781635993795219699263982319340199217628517972252818892802090867486788928715620523617996489472881113315825595798238531794563659821354656460304460179966919185249007666783534195399849633252106081002174539131446029097532108387127421887508865055725778670076685657329745450268422121498004098931229490745301869535823035618702173631225065697700685955612075636971839176222384400821480531989345997429059722552618568884154721728149975906615906421611078897952473005859885283409236606059483148071648869062429034264363133102299176320526017994844067879998529331034889194218490655221222528036525283370387997711203336258830294150112661040251328565359828107459770011700138580683760038083711224780316194503846958414172535895233651189560863943068170149068903011361094380679743591055210553886055250905046958380885219039213419224274025501790337156820335699301547280250168555381784236847277382658237807996680893925925092600298255391322979638402206590498120429435145871182266117834223166579368991407560627518065838478265450245210260965814645827224988878454780853242468426701640275488338251978767038114011980968406627917871643822996563976315780877653397324631182855158692867634620470004297384643787315786514011296759408317412115581564092366900304618296276278024657575972577411662034374366611394099201985175228958872305057756965588828375860027101669567991030542201432119100731106914292222208579962224340513671334796765504773544200377346550329712376136593948866334080020303627238897381391304423818293427657542137967941364332260305327865521797723601356060545222360720821153562135418580488541059936677276485431971957520216819054286493630689424879417601053381378742437540268509257613386323178380672279701640845546484721455782846762236940154347821334513787958191283200893813589717038298961474941716959954526571708420979699086034100035856951708272070301273728805761212404793883946398142955300966863682674412076156450348767789065307398428807056888037247698687325336461061512491960073618336376611136796856045041372600597663330920154548800194688864217650528081524733068723872939523070024714800266966134032808831447062900173336985766559266295773393146439876466637978496477560582524068371683544369487234008904190728591519543323028316500239797057254200099577023737330203345464207033882496030407610011134706823044795209882186415976881153734234457061672137829335752064268454680033346835464919904600596867746780095801230563697778728365226207028931520665724158644043708496650100346592561777733661262718676635093438221713415351874608651524673851684481032277139944444772892764958588159028820297683559666612763663138579315894455131820840321881018420074245814376151657782420367009720305741541164155993765077269420893399691438499631053096301305127554332254160393067437106005979799976722874683193324770485826309792098132524607710264973576452494966238521653327945655178319455121004863497650040049478219152423780185165271319595262717162245091246262274061611013952089835800233402956057628835672539230353669071121527294612509140602194526850329699924665928098149353702047813089716676592450565855565023831364016942973701750544172982283573672632217092111148013330371026867565666568364279163864951482696422485336253402046218845755283416269599691686432694619975657993029197972310428554723466154374185469394900092240856773198941595058426979142974728726040916313870929371345258547433326971824001105500444574474984281528220922310459578752506786497650317539659672997930163285966380887263309474702682681661368647853519534357830681245291329818735824395062296496754323194758438054739389405555033771244329787892114116550871463343213113579798564494769853385958687315352701252238802648881138076275615364461227806015243722310559332710443083272526933423045855852276124248102154428031006858290630646132007453913619676811097332088362970780894439369564691286243530121605796630346528658466371550163863924078740607269827951440302272805880997386115441600084127909358292221659159379817624166099730671990997651912454571263533923569146419577455958754241505099993450119772169767170026743033166582137997818301444995690610069034508019594210691215634381820648138532222946717170754275518826612884841369172949439344417578420946597169209520384336729473327883400957672242512362092698236042322664583909327073590769390694619145009727695829673307377203846972946311508319765236192597908998963335654812739935139640008284314187045635703084440026622641221827389944559237663780997574116770273331479658624980448940934098589404276081396716705363605786551270871914328980109823860931906158621498604152509939366173704245894426487501793108078706781118857535363368637161271435462562312923652066442280844697410975796364360736613839955502239342148961134404403687287840642564494776106013812825627666805943729356800153055823453352940889542506802143209796315595135533231596086172200843002823173635435180992097612250441829751254093986659532263399591345121150491699132917350100973541405249795979459355242804438569640824338881845358967844912784543726753783679379772200900120492803959252957291983802298018625609665583573786884968507158484456616274418479420728853626792870622586115413971291448299482257117860083464984559480868014964434400443670297928356609089825731278659663366069878452253458383032882266326069819856266885966403583375119889996650491921380053560941911009832358099227557475436410319795291756548331361115964627128859525792883414879654847905141329039017746467629796797343363983007872618041096035984727619166789958350395148674523089142148365458589007808254856165506429915786899844136361363958130944151141404733592088429025160660274392914004671713987190954418039636913378208803635745071703473986990255783695733862172348209666000521874454455207440919167613998876509836645026301026258927112508891984001861012974930530477404611942960117041225349021500509726703179719902633258201414091440562403604612674447184865993870175529497512289732545324845855385867563877289906181761305778046478409950852544396448989772293807515731132992952748732945973343681016805805966304199250668439079167853056453920603321986049488951495747748562222618518720479893447788393012618231194123403575323538958045443113475925024712174991655360302392339755247349468174322143651983125475870379250948143882176255680552443025279636161463641850316624125827763703366168585315462591782549188403506670725486627889655783060019652747922441819598085105447268873880982975554928224298722074747133222474911432926239193445463054792870945297254133446263942843943136216770775255302006145874814091521750112776225316331715808923150896441078049691329530832253884028194011738912485844200419759347956064480298657017889654481544358178373004116129607701731568028992122948887166205926746882666296755381737067346140412161463328065767307296833124986005092677327528768147662103012777994621333014120878468532447069277934000747109143631808404130339655067697245167632409418235230752501654889805563268174579065006203529433354006972069357462704401370470175676074085135699168027597612175395777410661922213220602157714036897769638241370307994122351112967131233494775265972060842547314861529176431917797954522286711646724469768076621574441854012126189826841372061163536040983915419749881774680762834031075568850936645675697876742385036447278929867230307867316193148318207441397229161225238736951390467730167473343199094146755031771700294722105087884039357071714002488917661401326357415827278222993914680034762621972092692704867579287375510992938673726248946917385208507547103816276706024395205205839625153756363153113646955870742960421510092568116805429528389558603674437997339380031856945413514923725942940102021751610048249541369010877027258517209866964348737142256841369757935744343393448908654417141064512538695322252191461231362228767290424243072255845964235570692771187585016239947512321009052954552219104419041217884966026454574003286443847929160540688149565777291787238344382815625772829630031259596287431899489205268993428524338141803503701776851037015521036731238083368448826772868581546657981559045167906234808694464449755295825890405489810540461327164595462318132083212412187132504552726663652782918580082580927304151755288387395898966407017591592851100765325617177695941935950866129022730761733688014793339699934241043076424846757417801536624393690670137852584447875006015452754072607809524455838689083676169750244867045748618459201177980433050064069707260382554565128006044721822906577998855099658188408335811975475275332940094624673116616787053223602381731567111079867850020727140569840565467043234765863784396852084929360110094452010802571758634661978395938937168920285138022976576588343400130286678838116429298202631126198074658315637843907962678486049189719421094418241001405124766361000817266393107007265504540858115839010354130492636212494219501777595901948878130655609573365890492107137870912558156304152276602930175992836452752129556335057691247199419951137814336609348435517820972105744691939413771845222976524643644972697468976797848163266688487753917862137745718102241469090350096995493240080827315164929849218460813678823747973564558225424313097594082089881284598537473671766583704510776533823285475279150326946661883359780951782079880030160045822026562325786955894414191871551454578869459956708833038011056557227015717256501013832350197562845180103146401707293598608094264475415572258276323613352378061637944092243130669220329665772517393531609822682964704787479882143633422849266524432375930679041783979714769593311323010502512321120220466695501281027723646925466842228019796191656842296004741425476759681040267336395341605243229604862339295893224719865235061870988935129189939530288443144196582361683175239026508380016973581994841962947123099629621075474151350480204364722194281554506800011902626130142554286190708476815065868817825300557746705967045165905241112343599574442876034522502379770638546028093041091487277751843820815795524353746785275003182576096968908653166145985913639594649057980570801106646080516308879478697964503525537164238246843849058309271855468869115772433879577879600731298329962016946470475370825728929173543264388720846415580152319416936043204713095661260361452429332387814704212842955012848204018823798501583287379268094559462201836009163741231689841438216992253721816918989085019112126127819182625795261992901925460751961691342402537899256097517517706996934935718022069106966527158394995527453733562139348795988918679062999853777623182197155037589670897321955162614274591007044426943955498116355561643308084512621415901785502914564008610489296743106813617933299394246544394288129202705070815905171676502166964529639658894886955416897902972981461550058649168450260076387012018504008240361502250104275339102516471348329790713815731084692780384452066809060826198832387794545866377065335778552389852725440960357614669819935992030929693216226208242362023839022807798976991399207341071428370671386927515454222455736221566383418921890077128866882236616946781051162967201777512345823530794595168165647007776176060639650858108620505812437024040758360232143091448005760577042039272155631423428412759702361389486520100154574309775059284068300214073758418167956710748981911454289757755506880198601117976608695579720318464030591165525677248784512425622926010925260039169918296449486096122442923806458130244675396471777182251662792196967511989959953980815412959756838831885789464062481531184205462726059327794394132081043123164588285620673585822088024434586471191211672321493928531549153124731944115851661059158671226226718209498701379349280082231262365619600019074183391383694884566783482514952996189780086216138748004348859799713712059126463205600310509770617026251199914029874682128769335266138711826930214676598953119987659022558443027486936193965434065677321423863478158133725744386532984093618648318376068267124860060123664676226680974993722048114217406847903694355589867973153485309784298464576785905244268613383245609160036329548680609548237231428868879222296343202781853276456784887546863921082714055761029160069141616256073586738194460437970568850205768618183326691694374888084337508538778382372188002419556029764503910798774444381820731465674000552411845871122805570683933478592426836537230935342794067021636300577311522848579287012600405499897048756914820152788495484551425758384590537698793536891045127573943962716856955793250771276307885452094795218606927980091889716441931296287573495442660176304491353966220616209559958835566519525499304384041664783957768702659554627568552011405723944764811623051223780850881107278804094336493735418188708596142377230297960858356013859310045577435762868529513860266020271897352188560676104547611518221021019049124693857131298575759896206916136008703456202405616422881338595112509405130166379655319330894571815935643481478200833757938356009379244419696534418328264375363476524550931771844396412093703104987560063061835236031735249816296449761738130765681280598818357520671522803643965003390732526640733352895284854252618044654084122598931409932668918835141618763844292898958106201497643610081279873783375863838912434567895820209590007371826430067558055996834820081480964547170014207254621789147351766264444214407281086238909922162720679109175225107804724623845967438523973840652842163134733321576646721335245008327057775235718297011552678652868673831266994984387611452512529352446111115645594421039417029131332071882586251176804310295235813816608292736726168430740249754335143125677316127739702456833337292995775179294365003253524459912124556605020191663045356911969902508136682361366940617302875981210591597567469505571937259553936996869631060080674341110436733212484294511224060900527555995798619371596128428039940948623480559055027770817677927148671575970224440817901503345105909659478045913030269398982574435062679065397244153130585630508093486139305803504176076988481205522994197678039750467485258729006139175992451660404026777492063425254458872468324629821231202425940864662422690410130963350397631913399006462412191935019679220973936596385145123659234956449793700227966347706150662595295747670912067647434014459683173471526113652320675275841000686781212249744539431010975562407668752156135453614323361061151446754500493598846092183522563886014504880726695993366126368921523361155241463655191757724452190504991114183476984604157221441234892621618382904979114887496242520688001293259939763735509808819183378944617071987413921689713465612795650730475021454922570612408034768551264816084935216219246869856325328413700130261300138337686740594636830201417494013936837592948788697789149310456447131982566907759823204916720623674797382674750682871971545858982606017294834358140922873276143936041938565379568336950561004495959226714599247641169161401358344806677303373740146767887270912784778076400059090359885684307685255946702313247074691960116394080494501848729470637132874396577892483010124645097976417125625415665334657403231884177466437886758774718838480745352842925611232699064990609416958652900897271273140057850699076506581694186595401204736787113467155965781721453882952176240091432523953809006393933064024470341276343888728969354932360973230845721734311291740241920860528529626264009358250579189698149177456900128891686727984091062864399564844380998536379240387534041386323284855091877611453545176511288397079144522364584921883038542795039963531735561956159636043965580481403258103686212801358975062906911904962647437812798575537730196334157553441320146446212479423747184132332046480344438072806505652085187092721257763758747944332846397864889420606213947552703271913938060475497565636228860815842785758819825689054264372652810954041530278955573719361791906195230271898765353348228446832406931724862720360689567452393435736532138807586541094164162991111959386671121529072288790277904458176606161519034108447414412176094453581301324558116165426303092941099775912093730341162211552359564209255148804803851874725796242141204888386761329001459201104283819002951067077125066744322554605385934453892541680493837018085215269667871832035726825981964515368381452247479634119268313297153062247353731256009582677120879738485499087548577074872946132629938775063961441133132296105071935378656687371284814522475692581926036423871579010321816476445535129722839682444034359884849446008524740420358291406241352062223870629033814803347556599951258886970916419026147930174081726009272966549382609082074276756877480499029984032453380313853598510726911675547101533256117422367002516467942079285318607110214832926383603790540423728572150138960395434385249731722899104112544928624684613896454988058201105457570321565553346468951857476564931293884101500766857442943707356469497466638324133699243695370547595004100626150464289601090127096860979038526306510779236525978001527902064957056926869654357854356283640579499926023997136655284909069669745435279427161727174341067191911577300666298253044739747014062158670546605170678305360808195305757438870844864639466364215698495174809468072836680924598662393552756015938962451747039788023113976361086146258912328341889722397332178049221298726681011044887200777462715793222173532144966090999602908330722545384403201076037934846132108396846230836456872773447689184162006494765126636031416537702642002495553706465509983587686721383762482608816850712354098747731117755255166578482229098483565856244426568872323092042324615847327695805335555630644340376177179312386850909289641399609914924798089477619081111377098097673485512734258523927529876423650972216689434506022853614841164922412317035240611280883888745412939860315743625042700797786768324334104813794759376587887051789386336293993146904199891067109241536138967359834624819770586577990564316773254998890778344561349633430096096684663297483578948120927763178024790936992769084460050820540732450670499160173031354931633412595029242894933395215381362162674813803561233913759503133251682945253274396303407884875625870466766718508565366605979150796317302731470701665605083229357004353422265493113581454063203854416821807497095500257798081713113670942491803912361994363939192244881509367628891470974427954119284260671113753791408438054761717129656811787658031572106842093659814485549551093539130055899361148951346147439404803789764101826931639696070356637140350068630842028906085120780561028578446931676682578877559928984214269238829599631158952207584826159164650161943253034407062064145525463297435416898391434220881784061933960105600300747022994134684775727271381685813475589639194275696784903951911284665470421491958125801811714934110961270538168467591470897454716534786889230068860223326990947000981327501188378753092089897767457945126647366280766287578368739520221330092125597372831095332046101221276070311262477708198864031499904356798808324739079442707105437034460185868974112403873534407933431414297701133751400865128958141437136871785463505523388420315156997593511065784462568918893529824409780765734200377434421611637783930023373093612812912302768584680882756235591316787339880688760229630264933684272422693176848209033429547780129129362478920260179386501686373279306622914132067804923309750957633321945123992905131107798843741821270443245256372452019027883434430492534293679516464298004848714604161597713559726999266131436987361010650000698791981478387991655588307944110134107654814228340328826754991593549732773344380148012864090751067293393924618023116648107163085365284377422307941824158896867851269258246306692217352368589631446865634705225755276305963228048356189762220154287150673704872292468377909458420695553465376628520039361101786191213382038748343145687312562070644459917386557438414422977199181342360188419656877586048060185255932059069337018984178706824744500976086389408147987215377513123983179027144362385384879666050755940965344644475029681174341506940717317223112448030142617715479495644494618420900817652006152289424180700885509141222826271687357129009879808186006138794292937047818452271295315420420176874354619264634819402096125497059024577144251059271281739083055954833841300648243029524740360791140315675074655101366503663954150478099645203387075770481969406127286329892469251744527358953700331647228431144708265053671811124166612693816708892580748340016700181953409512671657004988490151650836682322473412765715342793485687183733634973213430216863352905841126365183111699585843500611320765615917295156533886457933301366181660853253371385244292473588947723996509763869264246586406200307981347732928787482137751144042015371705230430592966321972523190059804005887908484151973830562837150696965704982958400024641387297437815171056038042124618134512966931748272128605469902344966430457862234627436542023610912928487267736374150072210045412651404656326780921486517857003115613246775896895222111732074025260575128389781231179419456747894021111482121272265108381385124833992447478812521227743942770342930506217140435464760861458035391497297632147267547225839793072889636588823033631713703718019556940882524292555021804060823064361305772389007082078315446736235317585765720742449683066275579625019627821322579346707983451789559691596422833796323289273984174329299200827128614284325766999935567641032205579903211538021721399748745265624499634957999683285196424240874117812373271394509598320921961088809178055631455211060138379625498016005580470670290913400258678688193526114945680716294805467438691951826412482124997241879125847435913244415051272320118545091445831579919567955013050098550780836680542990716992471689636639638859082912734353318238493240188713500799032910202183434872227569388140352010839171155582081665217075039469503106494842436215991524080829813062730296285708141671313372887317066769771337229626546582740152835637845486038308242169057684646445672953228621403571966852227232245141489653813870361678524305459965139162333247862115795441000509499333691954247099052046111728659464689031449487205305240469915328612815842138124707306270297691742295149711166205937247894781558204530515274913412356315329498897426070597747513297875100050517229834853002384039026747558830356916790347865989146717088879240933632413289663582972059332027270864652206431992727705266989601872508610606706203433620399581291702394057176903147801998900766480566570456823776343537540057234307408206248332062629308668530532731693299672495621910693282921010907668796655334765003649324477742192680116679244181697513021311601476144743066351076358923783413537684596068678646081668558700648179159036985541837997694277914542271446665050060001062746194668100143472549271489812107046045089840482761750096346108832231043118353798259881822617849643857229825841071645867042855674753594003445638175688166370390807597833960438084498190358108590067433835547422355078521399811278658876990761064621155368419759950260873727665682157304162928214103563088085775302913077583915631438534793805107570775238666327889302117072751086551464183679468500451656415671496760978146647611308028318330708844452407932317902899257549849586406681018276075310469334846868232345327588339663960864338812792423677701520214290593952386451261380553824253837829594534286003618557716101276069972011407613171078739681414857972532976792853928146508156889085001654114744437967037025602268626371679159005407457764698838633443576238841540075895995924204400307801606803900813914318689215152843400187737857247651413914460808213651520124489254330324871386320101373713989634361174615581339506374649847376547156256059045430468629121207512079218686543576831870031921546046498864432482633343477114569433149077666321126443980187890391391282418105368584620543695220197413524745049305174728738262312806570835286435400591468327388414162018990577641702739104907521745824340754023740002211473770686679845808203230709319306333551639030148438564335267295202404267011957378043804725410479897757639654963796813041536932787297192927654244594324058482785222917498216790920371721415508816539096245045800507403878164340214856772856790684259043243692299347451256217352957660436881042010696602826951669066369354146489310931534086932898406940046431928580937117515577403623952759188130772003934711269795212062223082964930821423660044928599171462617789049239130028134076272552520949306265935058157264095994039280453698834816638944214150410023834276122305143837924433710833402329408878928187429636547758014148334455281268082018467138929376810621306944765176993416023957175565508743995199880219643315546822543812053700054320750102526660935025442646469586814279641145088280735939668091574202018364860051728091755611873928109006826305611615530675417536053153484713636955436003605398534159995675964324288593518995876077042781677579483131190503941779119112104907607513455655344580432068193317164515163647390526026960294219860559204778567359892935880588512652935237532816250389173889718327006328486931866248903270367727046517682676098000762502775074299401457002240592392304059526812967931860899286767764670777484059234555942017041698117904726473923857929589221477386884093749236830451618078218628359656425851754813916504832940295222590158961775146908415632480460572214391697308259717745746425479223444098754947881721034796487429207465319959422544678228382934449817265804064609686713474892029519556362626234523976436161395249616779495096129220169768203381409862940912606699838741922216550372959477496225408693404190453282669197620270563571400457522987798493123682080550408124120990832085711200490038125020139068666702979060456669264062860968880258474406128377861848442957320673742204026520514103066865763660240257733340369624296350370188036577167941318913385451209452314649544973193860298132006326398175665469228046705653406007251281477835267630186431623601760462226324609925781459554442778790668063121610696940244776825057221560406798466483030300468703373856778896648122707151245838400119579442532277420644744766361689333860903336748122518188717018201005320827263117503136382103701332252836364648649873432809712459217219812082476197618758429460546316912561714578050966881809806949515583030395836274945988657519510970417866776456810223552466309611569464573654855522864016996255988436155105500541430109373597687334638269021169584869699456790977282656067898515102580799569100098860042146341366043838598499761836783743177886731443843404607757579473008181081961840635798210549869840673283846789325274995844991482718731455336978221811764182685178091999545792439601965295597636553885179345408051651550515380365720066236180605077436014324889778441904898890930086154856398240298483666241472125997431241878438531744016163251903353885369450265284885355566863517791940684669936794411441550764039292184287101364875263860273062133165019614354587952747641778795566226653280853660812470382225380134536924579621596258830972579889587440416693697134260043127854356360923213523701743874331610065903752226024612754190081700088084876260645803282831682898189731705025147227905425965953864724145831448983381687975742235628044238640381681187881479347706562457847184751763225529079473307724145336694367097802227215148966103254545299143770081746493998398219448768173847199571249745432656998296200047231022509906680295435115384250767369598995105671038027216583045694682055642563088650471557098678087684887192752879223919792855065433274342914772579060789327422198296009626996236852644387527406759568353907134639179712885323625980976464705337483657273605965502353385643508529091635659669989290058026316293448656420149103479522628523190375019799589346368782341041509495212548136229326642668763746853109573729324736064042303909935009061231457731471693657578494602918960716098115876343857250926079672708526213054850465833119811828256655805483120387942885115823396901833350586956581980678472713270167066261990994393658781053900627342242642444461046373577527561194565375393055925991936570785776601701418740762270957648398731969895945230160290534979841990989123419168449556796479713222984974496816861715131473932537175275960861566594013451767109709010051309485109262662903041784438682525254497772606379647816850114741273628672749059828439017028001462067503906295068076371193769217507896665774397764176122989860132263517539263550495477806760527235968051409031423367068167060073910285777078749993522371798677663574427489367487334929153543826270240866957728053856743306699447030314424109224908814326000447484245125175131855708560995506538555069721070860219064427765785297592126375823949926971877818439206418139009274403876123891628868774104981540488421899161616135144041390336973562843378596933704585556599446314819354395067268873090432453137310217164194395281191998131503312100456051773909629730985257641249669155525069227067468484106563422927113920217830366674315700168721564467260196941297150473637454323405474100107019193820165698645722463447866934350568470656833640357041713249150208078236728438888673724860101609200543218502465631628314609620852083581470660906133431885141433985626242807570717012434588296559323719710167871230356735551574485349601906749494639207911792552817043707158536369921524965340768670568924315404770064450003495863140268501714817494400705827573913636249985704039410244567806398535060198185809315766335749731140152706975159207425959713507243266835143554610108727550263589291458923844641674833710983657925381965830706750296211468248765522927992992877400113237227881854312051527191483936138662926817264709195456446336818130678388787217883804987396036949025636846925847457563861323635649740260979126111361735373968042041054699255694059297008113530606580529026084572071016842149438538532869673422400578922018284738354246314713965243481548054662803375359604369959375017031117998053714478656581799619202145543251439145588175384676629155615951845203317369360843401211893004259120923872770872809679375365431129508405667439391490449204165783582382953186390462916181313971971421702855206184100217205196233019630756364963100006173405121359375446637791314029915477104017886033900313209661926124814705418743863614568091314458655577935947666158768129415981217253587757759100927221914476575642323550623437410848862493167710203199192619416526850992196140972386724385549085199038781639440013166031644885834718761489687454794753664516654008710620357626299410338561730258989290414304080930568670175485526464811792940885712782532529684995560749892744196616372100290316834026919080256145022415344195442254664808307458706004579844167024112420764196130837799089313069928505098232320389750480969327467866826535057529645732594030442060654442279178238858019954359851712126705830164727570286597562184391218830323287172310915302020513383021023068552582361811129762135240278900480661898196650579941865186474429609643410847423212642916881765397708564470337664435112277839452838969762151058585604007434780256759384907171886404549532674006515376120468292398358578545211536151671003072229309203849404132387513623370920232961759847653611917588314282179403818780334154611136151196161349478958503946368321749957501036958262089278274266451747855506083549970062931111773100260143162445609580736906222989924213308547124788886761182716455713748334303425695950459054374471634016674778693857352714465333693362284511845097786234023991104514510949064113589954680700913515251031747096110389349333600436672798334595044716278240024826479975314564457509086415163265331585741007226886464770868063969318921222672480522467291448908175475485824870914975525456844901707639424630805460032166859251861965514776839515411680008734625159398423560707822110182208359949056603151111514956297601955335491018979539087316004349720018440157559838650483514285927537806653899484004174946978619945757838947165570085633356138742788331308071630244205251012314320149780851863091860814850018008036388339463181146426194533628142414601882514402585876771354278655280998787437915205987792377741068399974362964480709330183861494254527747939993202888228260601723659956887813806028055030850005490746122354210552948748323866671862668067342301383976319105662926000904042181203406741021070877663178958895436247834162590404505147389498721550788895985387175207864424856581389867940289244979777239342580149484741354350478613665150941329487880665441255498543298785594186435508218871990790848050921803325777263495330661964340773870746135213298974947560519314220084475253679760454473217668118487760234707618342758598376756450677169886414544148491437688640445055407488178851738241851654952322426870578977062385265618828636727234087289808585736172417679678507749904363458829072868669163141167636902981604125954696364832686794395245419939116206438351829391612024898169404568363900368830123023342134926957270791610845906421294476302679104925517554804185771570267795607902893631957137005729855879287692608860952545686277774921387392024252285883777031563095032523054355758865473960592088530434966190750662152045577041905097066725495762353022911480176949168016549183195071566503009328433301410175427536787182849655563514490219925666310714095143834542586394302515135064899755243042377072641778560099039116874040695908320361837641793000308378543839367537957401115850077910265563040160334633211284957047635588072399748643189351781211149809168672465001024335736433272520455098117916041499344914397695669469712039427661437592129940048047838679411340504235531067872370292545562294009399719863410577981447783814949876604183430190049385367641387155941531665915638355417340441880551039822864525521675821799143670508475480812304028216043848244046418131344125626588140415534946942311976338936456827707756643100403495787893420710328100048338528262432458690954830184405649062509021938980464649507353769780709877574483231083497518465264846603362410027611049911383483007097309043053020129156777928694159056207649567870712887829207189705585338788076170560801059856942605500958699132611824886163178246999278531997640503296301977719195556723355501212577351102176072292087991025844028966235332593149332263360498872024784646672016474301075373814364513746735003386731456921663228690710195022252110149237922437578969327770099720860132273865243790434621182739140436934317622373902877758382182813846377469077089201014570349177141604628527110277691804188445529229139476777700716443119672811366273403415511622802542542943867675432337168932497271084227574356516643082252496962000859920649850062081379500822877795917954223424869212027214271375693808560974588760399951415598608135881314963656826946521388639754496644969347086824142181937868127572091251925670325151960929644587757122686119003537413696718196586353699481110474783072701976824044470375386994335490652516216794232651178137967399527717039199503523000255908287616015745909941533373181301276157909307302935650128376205103590838072957964274894319621061598068753513702711370550370226725963968322234582157018050722607641284469670602834349237081803184830994497649696256879064689301123716164025680559517725604682002219950176421638634856248299002545333352757831879270114119223619742207229814856590701813792244643687914324152514505923783414275182112105817178970813088808420189247523928535604859253484041320599844353218315283325088786425940535783970153243412947801857721918967875936938713076824743257450570738094412518540716148442193178072157179190127382525547454222746718517402211630845105739923562836270848198980178683599934176994459184280274921193597367758263185443307044222786621083513011744368525699529866584270312889851838759332851721459000867190224015699927189536081715228545980719738007365415772736591861042660566225551081347135056034478126974795196655428862734284943537084165424170336937226440448508032347450173122051450319729228781014061550953882012679680429046080736609404117662678549675867046954351488973459158342522333534600638662074438530101324580947667105626093790276314861334375148018092760758143180804163870356100248129302966682125138975387734448645715485964692289121751688572123948001107793717648409154995437688673536664924598142529792900437374558775169076803061387086542377437457625243631377979494373397022956742656403466302876000716136967309207155555983544439646548757051939232646271160177348499610064536572525709847038452426263457415392998236830198931102385406894023462869907087195215187923304185684289372831864170349302965324849871526289071245247017513501878357863117654604546283464664818251379933538374015926068596872067833294993595215928456281317537932359787259119618751524946358411969710827306892244466946329673910120913682378035729855426755091610746978648777833581314162696519433671029775561377675073586588332964726580219357527915966247538998941610710437265568858081622808314000608633748809378564831981504605258846035916418247865190928970412777947323617118468113287150305658488255293817927513780018150986498307773925012662168992247497453672580913156668110334837454327431114383657130565273872571434573055391281106782011634835299268767468060431397324272334545066233696679767322582629274598063538927934788401974266859010765009169707923351825007292481307768212885900133312219709656605163848571786142160138210157238132569805775142593273413738793300033479996698877011744198982517365706410035835061902862395681798704609993280040419461934755647652065675639301753180875167556576116730095946663995586763462751719508873977292637886593287001812387140373832662068566739712829123721565310758652375362088625577299376579531294533112842858996180156953818508516541643531845600578472202910915728360913921913288323307933493154643299403709260351843485978227041099863357689958852419039070591443954199082736469991473204122420975210530966916209484080092800929095003367652531863246128499876055866900980770613960144803136578846561310189462824576931239862119181539352448398471112508129989767350721286674748406871546507358488376235602651832566590198660725666571567771138220515609466703296084707582128115589716740497411933362090951120955322202292779371933552035655808779877321730199483242690028119376530058208377325080303175449417783238868015034554480713160525533330541363549675771981646261567812729867511392531825294026437659271201366667938426679222582059547551422719962606997353967814817592654116563055064712057372881315508003445171821669790690623743022435024246337478916632251467274915325646792246312954316580716477183381936743171540144503122039500467552413742572388220357344811381771827681963084148971219238773548069431696916725546454238373992461300683836432542217023204746034747629564730071401608943312689860003201800120347604057892764125337749611687089359981369836444638536281611991159921849131688315519244889755350647992176534261619497652363299337009929742199817850110300185785053908380453922889272453817069017002370490532384863242203760800004628456108202112384931352143427446133113419565295543436260323431382159410479504304485728404414186609796224030774998645609555506161691272162187720561871798668051110966972017934377593130026088491681695740118696464547080785354773322126660155456560513309961916114198360020015524807168789070135899036610225680075434113277501615077579560043845095359004860941032147815656776463166287319980227091941546402573767978117812577112929560977476534450467005002846325959192855808547412147565377752935382183282613909164280782759126527725212706261952329851653179855992600351878977202681607247156891798876640300140399479339708676383565887303238673886956641943660684681674698333455618182951504609696860175937553059193279034730077020792919488290053993230874787800262400709145111085524650716846570970978457117838651418956045539034866514554895306069468329189213593948429452632832839040018586187525676242033151912285711873945814175222533726061181372991505842769015394268894686119786884706908285210090884505989181099796285730591609514610614141972181987934305915279521163979563583953632873853826546071639109670294815282781617904097856470241507561770589953598554671903131091242657148757169078761072806433534095943499039899639001537280167473891927502308113008199694534996057008103442874273775303046001645244437047324059094145300090308592687792998362646449685966203380240508410900492772613924966364362229969473875596684453085010096759778944294205671360917000687558164587984381700984581645160085745841370048458068875648931973741983122974672933323230511138759929862386768204846943247835401486616113501750383212340287007636945653051083903228935790709846837251404084481516036098554440147511361575840183454468834043808536764043234721453120430439434966822009014699922036522163015690505984393023661967280783531485264732159229114409532033396472519648932919489221095091569837557845131749191730025640592968209615737254160220214527898420388756047115966421231224074782733720027560456127663567080049021093567726379413552567200103700227281003951606787761558066374338146469449739054981221692124421299809357529431374498601460491469990490390296003924327148334192891881151725764320679457514021254857203019871533645337723406019417019698681009592265578918823967099490303929752738385150228225397558148169159107759458981234306911719659655215167408588384757144660660221790488476647133649778705058843295163685468698926740312736449072395230543578531275591413195340027614025060378733755618044862353926806263776713599154699617751018538242273279137475191391450530558566886370839719797781187569610743642909069240532039118161816054892962039114663026619936841345918152893057182305683215198192925817518703126414711698136996202174909576410726252741546366950304937313994130296923276190453491093515426503681659550158095589676420891447446909917621605899930056499989467765203309468764132566700706288308501794131999824000892386310935954028911491421944222785305013203305387715413422905133884364326695106395643498073444160219274763075116109639774285809283344194737741105102632461550828370027204280737773867551010402432874746356690666329865026402515152079674900624223052479006936880579370671905903407553293824751084130787330914274141756198712881910756349022628257027007158382299860986843184561820224349857009435505761573647020198635036424703391417970999112954451603118155046928114493923875788269893467206377588762862283259150791537432945233408774999801874563622760614395467765231687683277669014101556083527013347316060301897963708488109648642229468673383150999506011822523996662372755915768206139121880293709150815701188446540393463006732101808595093230369604722780446184741205972904958230012743645475175214584216333163451616413642436208782058747448271001464009046725078410378050735679135981625779428081233664443138039106440398851214452766844180571314475413425827833422564074838564142733385409855874293800813669628492416004596523930221503692905991953808806946296373543912064241997363183048454788374072501523985546738712882656344451932171281532048540528213168535175336925918628343865504206138869216410091659496396287926693691846180569399079817943222007906623616411408650470851544651040898885555374969432701849872806821976560817619903283254968368124461320352789268567235751974020833723923447399641506765209425938406614944094513509881062957193003338767462179348747568076364739719519332277004449371207962063975936065212923484604355142929213612632400958156804320374742442367914917601197011832858216610021684291805249866804796351704059714984091291216884750372191459472891307327776864993222674167320055414670018860176473064637477796023025620991671211546689375601772456557243457545470390966041636388068530615443835141840039260259490526413747673389282559180014716931436828277735787899932446359506799838318964077594484691431851563154890082158987865365196531107993985404052501317654912652593660869038222761250728847902353030201228724354783829813606972882301692489338310975491546706637543575636129634256493405028155062022303818191831943090432265393652044472856515043845541431046924429280972486983512866676276291562988341601140364554127846270813277691301091124374247133513849093965886215206812041577412934022995449869145011710529046214489110626533824757357597827523340212946780409636266876059035973385854373431282359271677117130030204713779833091257508718469005956120541437895655289693168532048433377858470809398287219344883818086699008375447374292162948536722336219204394459768090325744743839920264168896749081808932645883930752232657990447729857382229327461392439000694121043054850071259933500929838032498291685201414395139085312743827457143808849122315972710552157824541310703408772377735693730073656287649836668199953625203808907370085033655672264593213060292424540001869537885574065272762579438788078148405127358221121808920192582983023542446234905188106527090853841831899819920183872217077818412691202107955727804203723011888390078400509752604762645544935567242297488728046931871932136517614358769153116941958383831475855067388572099094282988570327839915564078792930813927075385741151069212248339551040954971560547961848836188416699843650350171832364750866748446900021921273871069299406646892209181186169524203002528427907003546966166578527301953215341101432765255277274255588980346545676952861879077169756909131791288582294242565154051740287433707802079681627254629627519214096360396778830599233334024526449049998926306446403876194312193005037888926703413167991578049450570296264849409830278702748234144021862784390669699700512129380584672575211700802770125896910122812781581763858319079639551648672495042563152796797521859335769650486322065188778644704807652832248689349818937484260702684523897736749289333866028491737831565736368402532016656200381553613843530766770475124000253866946271631626200047985142250901926978937155623386965743931485840153725960957414688645238220222829599107856766782137046192838177916693727851493762433891353121235382695700968879357812537217418029059799613791232751998344690059519659992708564774252010270720298084121056231919936128178069254657213608572976727302361431820617504799098008677937783565004775851123216827891851327277747550315987862138470201299722967012744847378509715005371307733779731737660522510269574372557141055133866952797384413351236550672992789122322946107444924999996873168791216692233389744887987153890153556330371263925130667927083446008183635771279237371987028007537888513268311619304642070908716347674976242195014544182484473577879247605829927420672381388802398541678045528940180435112718375039697154124721929959076048930011918492586627160297044836386765891930649960521210465344751009181271135611512956363684214383249812297985890005574867977765572697091728013520733599746792880979011466274188310490625224685471566345968187934159455272882999024786408599167437669441949673819737944249456956912306936596002531906320535862115025780011417030224834508919878585423689331694899403815488861827432463735215212591954550145914335771432549200573651127277278960269698355214809101853445059553677272694813779218984585136660818082385914399140603153626519028372820382526342215686405884277361915119080023809133623642788947564584819623859378252009344218213428609621406097421289980666885376821988616609548381010686902259203437789818060971344817685194343142089887084481243693203141417940674251377104276487754397819075562909706358738693032485558523176834009476819066264307585581223432285222711107632416622773128674393717260610380044676420319976611531130249294701572073549421868542454411952568930325318933646420049611783225063617752807530784901245756986512350428429007258271855484418230426743564268830224284256249784605159695652745546834671681737821831268580381867870278064802356591602901120411809506886799773103719988834872007361812291955423229860702149590275147030845239356356104341222609025427749633553521752976959398755263992139376221848768102096188641734930303419535920319294792581281431836012183591013912656788690734528276268444504066795268786731869890195607137144458107741586315758657478057747288962648894618461584562120872669926098622835482676831245888418579053244863184949684016344502968703479678560883501890789422763953123411690797034086489697482221926731894149716961972821488102381186665105150271139464055553878290863380554870042945882415361964013819015767068273459210562576799611640843325473695595267174935933796540752997313789079199917524614761413202829503225878412511081966319507301158303874052446372346944174330263618460417928706239724712030277662805883354104517355445103398595891810943779021344467825816101875480403793789358734405930678921264408261571009368039631104133241232839159112417715776039956847446608382641715530352426884161399064604868093192558956528269175587703957931061958358789023456963399170126886754925074743038288515829517244249662164543746140572463581253970705680348763096818629344867277136835632725979086476526697958261842987591445675955360425069547851146687590858495102179693062022247369458646524487087641358765077617253075401122356700833392820640881220452243612404271682511448212566239965846085278249629842088466198359470255653122807405991397173230173331691839905282245733597236494237291585765197461012362164975602460105114658943631350975277549878626984088781898055115933898796043840159063764457890066850597323274753529921332456950384792675572149102149180634228488268940222116752183335792492303990348864372810480657024515416936019423655535164934160139746120792400778209155298292861056491118781986704253013019171480143210104793750160683377549782283798665742240394323993805861169760491436918709311437424336310198210553831431482781161557143292824854106703530276505746296524758353255978943364479133332353659857027374541773834288864205958547470629561555261828828045837163736180039289982022674679394094170169044598978158881582989490370641980061203027542092758572214960966197154521524276227321381113950919852683394983511558158331423885569569454086499113426991223803555476749624194597207995959287979582189183891211417672395465529797395104745132545390730212041603527863406082707411073825172939537258381983706553303451498290562485417235497749910102816072844000691494967378826763251802394901988249231104263801541504025342616195878769132760193385821150719965015358664836275499748901518199072439032198864096544192104482365344269509613506420705455019756335530504068410602508614367955977842005273849654073474616367851268159660868359427733159282614623713956663665949200039635121286598112655037243656663117979563565024075443883197686967045013878362382205479275995837124253132484837212437559788176631679674331817683164636615126961819098120604825925723197451211535646705226408386559160501453492495296423916243703716701108195784566206167082763078345305460457302188464577274063903877015073395081407183158329570043329017058521101657004337282329529455528294072580169978789715508331562450743014206278609173929685154420360909863811345260165215191438050921952505075913310128271281152953984247488135927135231149086441450546444480806355762015151716114988974351552541007414124557013273312909933712306157204292436630483671657450137370008042016910559076982731286826220243345259793319816153600885307839055082302080260255796167004090566228409272994071225440116620756323297748677859676821293799205781034669734828060017162372981260113436919066838566692053899918543555985811851891626560801088315711496451316382803130846255409756456024425952996751196677355518628428675366623418589970419584957752298843306459523593462253129372085271162034730704103818980727479366458695131047117434416810426883165205705008758170381222003832115010063400418369857939079324917146321144544655745208201180317365238016401447492078844658527540877819646826161719513181953421438548422952230622402954241129620729593069257432306281491459177385363134874231540940400260757597982832767519063313557987937303845897866290270809471157135058724580783414174829836410455500688877832954325882023055041928423977448085314352480898642947945159658471116858658491455520802089222451054796384167509074424182364303640167483288454262769479177887840080312867414873272866370314537685442242045662519737198884332237311753181541330113385498608587993351755347779034865894431440225732971325235421561901180250295326040014741123326475193891536241568579134920334084504222389209677096528533972174656306675989303081973223925230429843916171095850766097066716406293205321514879041036588831228198046452714506878547941584866573994178358611991485448099252319922157320913045115473252801361317043134641232665310446762626681023499651966500338320964043222880483069544806066437640977379306529130765360750555288778910181949361949715219710681862679929602231378274571482474115582614637398864413091207713556626612105402233672687276983837267431071815403576020341535718108436275469114517083681330972580467996361748033317599836116210123266970215901859853159370065445438056471183838348712069678125179897168559802000258831124206681170774023440122829733151018860553282261682888144851629640191109041641695321011442062758195968825478549743167390001389306898326683692721179801347005556313379390186423051792261638758857173299700897907435655814456528451225893031867935870494953853941890207888853903990241456558812792264709456223721332934121902086954305995321692209692179469547747398285497742255489105680021783477163428250840497100429782622258236762161599133766953200340899143593874874755214671311239193909213246033377140904640459780670235006093836145061024353100959466066709935741746825148474158845284247833380206196442394926256669044094086580070992726637117964851823099513156772263108408061807418204471736604877839507570455844051450395992317121503972610777132193055954572756576033687921945750785863725394365745838591843120927869452542608893955783105949329369075141999539309294510539482629721790726012507066219165818645772243526051885305326936165215430118745103043265487561720825865740705571916751352848799213649655993359903421709541431420034191748717939374167254638786360887511895466811592342888105213753069449222316559909041747906866989956957016150534694814714229129359336946520089017023577928378780006035403985892762442178511215037119102164224409134657476396733023348775398069948428581742501118898289262260982417780279413399505663571402907920299258361662120544206788788126065827042665947133742196340150985870383738405054545299111730920945547283894884953362318174255130106362183575389641910741189652406796251806781910514027182489815040447956639463326430943583721371840416899346689911492348507445622584530583819431589723647661217316298564325182924397326803230112279068383147151560682780727238324252334715669992375957613758099506571616107000409858964990334237484765429917160032830989104100093958089740519901594729997802579601166459389311676493769460379251239314368662159357227292643593628875008795633524810280514448950061622210487927741814157457325477319177232532474410617855022597851671988413520206213758078554016462279473274342491878347454645223049796641488136614563371804939872717372154241373606239987836359195121253781083017556298513674388086310216972025863523472376765969548458337641969444966141312661539430511544204925960138846596765679529739189083410842207787069509062448057292108682093313115453335240305423103962755070958949184124134295909107924072005121110705821376328208368326935758561505802319277828903769530225367477333803685088374533189511277583214187073735130488308701201777539118184466130217252235924765292992001411092121988130435262526707379383989619095045205729072457649917669167158411793420659547214244635822670188323596302305388381073518114491154681223635584038959134492761619304396802914136286170628339546051384032289854958934412927495128618783030881232162050076369831933378801568142057797479302806385602208894039633267184199655697884544960594627033538514008606237085841922323277541421650680588309631289638967062241608193518436260948563342104230813769816082835283284366429834625419506021950871473263672946869199718688821815053345321125766177661761678152424845177539661694206782226522463896279132353333038160318576214821458983628131791383786551987836352872188511344019465038199226167026278497469922276235935060456668058993608649048844573480615551669322686998540153620660683142948884346576115079464798045726206495416809358145733419780161410772035395269501138931498517075571434171079595339383082410067270610715878408216590674793273177931839149134531491893501371164910180863950326820747687858296622103880549867157961199731263356902298949072173887973708935358354947598473431852214670573743009497874653149763504538161955036960597935599437841454047727533539537125676725462669833461723551274180050317634023053970251724046365373476269727254095021669603181457113671910078657418810067506098493015116791302050018132679702376974528498682553982817982762023742857194757442907674611821250862155148644763975709452424854346369994081735217355703120113588764739934877588188397405379623891300854909847490244815246638703070949744412371867576131889880997263622793413748598015533224536808056843668081751927377263435803910955323327961716205998616767526632618018089751441669251768233014827044855348967233370498490510588384826235297189773843646158234847173215742404347811042363598563629279639104290997677135251649721833707987945089936112171058219120331993578326529510756222222273172277353706753893612526765429608898840131063853332318779661510252930863384857262041850129610012602941659584042922766903231655214038233178700327110226381002466017340952701481006206767556614012587159333903435658684733218060048023339578329233841642149569625627692390551042406559084163497515132782428296681963885372984955852243806983437086523053705566454879594694532211586544864512464123851707465644870179066539663122078571772857622445354879745523450042233579491189532289984888840968965604771016035153315402757856392725149102913918912825972091116562465973885464866675539502846946876879026422949498348863099813428679838365634462572894688293552323263687122276272679620312744317412591091448959738711449306516809655064239736508872398993756256109269105330366467915982022606006984068171532368369117808413204799339621909969213286961370679616773759264586281051839128531761406612819463732721497920312890689330773983842969511496227994555426310731935345216088767414900651023215044900759847771177034023852839934279652479244096216069970050472116871653555757321208065535927046596605020170765334493424360188252856077793301865511974316953715811295684868828899211885522850165957550550557349569377799062051696403426929582725131894506561235160130783339568748493350443907446060255318202588655827582240779839683357887200410682485913897915513785771406048010319473251262211799360074991055706371032388182394550660061000062072515433208048174008038903669219353344208976834627332650939597612317802512608792512276834563154575402941212874614054482017314093887144630029576500897205143233709930846408662160226305378395085371704362691148712941443979572077219142366050983197251991359853652398814334006344861221585497614665660243487114242903755007740157993639114302109446360839837386581088826784816684159253207706187432893183531229399064066810824108361869240609588993900974475859100891399729032869935384401007786979693045014812184087371821205256355512128349852386697565933382164660641493481988972958943310350136577294830531703517227489748598430548164588418896196159965798787117021910402812296165908413092747049326733514083901049445343450292616395786170054911846020933132650597130760289316559317490256361161911803005526755917144178087099581724761956777344286585047571149280061653817928127990314482566095213866581997626923515306728643801791083310850663439286622496586573080844669768566111740074369378279207706511970476785984944403499177316568921785361441000407274613995701554149791864389917415758732429061937976824453241191721028946025233639039586175637992514639167698769933902343384108818671788901226412306699908523562317654169895579077675822617848025692861025839797019364205098775697386641929199025779374746566625397328115125237500666510131936425898945914059257497488704842763113890236698103358558266629977624840047333380527729816133296856819140000518610467207308868331601327533591230970757071613133899922900117705397480741497483819430654512080502250834543169394314284363232809603557215913297285039065840786890658229884850622400961353570252808691437077492796001898942382436083893437985481040056064207677469638504866578068884787064147367432794611034975055795507290166201073362343900678270507645825098599187000440969892857143370834127457277840865450500982775228165168223314610866475384799018570898425697379059038626120654812907641816897720735707121552704762955575896150722032323668529645988872107969527211861394256661293622622266430348859593780182832402794327507876773482268071907327072732756403449212432224160338753948333406723221101380755305345740216461087758088289296587656309663328128305343141518751517440499180736329453004970084629388334057814452330896226727363615083142019916087974015888692968233576555179074958942905239146138947532248717945676434565849047824681596861981902149034619690787930365390452027751144824425901293303657642425745864516309535967975598892164540784579489906291789814281131853608071516202957095578022226026653911471386780983643153728493152684020828263643771642681603446437449261109771339651402213681429678429987708981903359947377464055760969841536916982601690864447792740367452408079294913628281877849330825250763591407419416397827523009340322191813509051223505997704315687061074428509987727275567900521866535641025965250960812597224801610983961048089232479995864980889767722504640339566887841145783230238312745615870101105703863832953655345321911336928166976053239371199734052316849022858031616018580886173105713829499508729371168949032259309062282087052716749332380387435480490131615278079094902911846502046984676699306046833814346940386398827501364360179425386914328780364487012915558257386609627542136431655858136416478172004144819056097351024668104527392160191938677958254046590301914481627068851641555335011541821232464556451528159346884503273505939512668318343595972330472787974324174798718226492200683861001877292568035992826263482112734748386419541586371052695473886744416256989646074226943198722388022090044137884180827208792764391826432470226338519528177196300801142019357984013348717630711981694664385680526189972093036825089471266722124101401918784468859039652113937157812006676395507610566042801661806682809526839137185204931196652540261608203413848009258203951631922347255061721035086861146158436764832855922727182685118157694096653398503115280869340435349985848841182426510799643723329829655317583171946562973759597227029617017211808602795839215792152768046179781529233717038908504994789377724362757378921956949798133105318704879698784234847537253158462649396646308267556059186310041000594825906597866874683873080641218652145498450009298315673885003640945095486338372271778862207852471664581449639692176441132516477078935172343647400976154648449230083999543707902064115647115549233959799032402219653890152461802791595147443830975538644081410123533996856249765592782965461336723596984879228204705928943126610846208518698021706986552822164693455089528806761451174535288387784634758527813740733474993306559624120854958181463238716754178907980351100487078005646670625566558517094547867999181843949085148368284514104891008395755292451554067598812418932030795819769827091042630922987542128970889262481948243884249329011240599548339923825666043244115034651209580476334587144654426829329520536336017274792077520763061884177240824763512631452219273418082574359779801426701253208957785717289850486911846116634548505640533218424041554309533976755045505641906268730424239858996354146572655497063146451422838327914619556237246302441386714698213876101003685744495059704659485186837831927483155623894599298230144678272642485800112950970516203262455304290459799911717285682741287135806902587365930147011586052219641689287351486198728457685217605222329782738447838893255662501646074516885927127318322392877078130590414867643470890241791590361963321330854740647493279439487201492833045789555913912542963188747888389671133282967509203156341361555647732356288734666085511912237195862530361491021335726517421374642752968077820215011970605719566393979350626300800800797567283310602826215373675891968365302662212073966893624154299691911971539324635913025706090870349835799423912299637016686349242078237650689467790975015791889231820249327670162436778361243414292540130606554251681329394691636019974251534796240681633597086868544554209724177861619502423345024364177101312061462953196571698134466590396760440947802304292939206618457399795830236757554190349648476897275597368423198571385243564104742547894659571833683077452630190840623962801795195759193927516675177486421123404065590590018414929600364752682328664937504631219260198872580584262988254545315692530044968967580288959930342830264398073561080330112024797575743228504781829012139939876313072874329282024861072748488359961021580744918091568728882172910349218862836849060454204209463999469494316755329671212356625638455223099819407721377457642980607792323242035951120291883874079344120297095011510784538386549371632394429598124888238487416394336442486563987824793081766770628827311767782584590261317700604907703682866835130024255694945301426851744666578397024284666075334021783871869496193840257229019499958416708415748484156506851405888059068692676355670418555232767548263173391567400745937428547678336208458451836551657638516491809124887748613496001519381497320772791640441990197847364699923845720404537442446152305520361202996746519704746655357973196610513329040035153460979578836355196523660341454052977429529724210879690264105127893185625171570784272083313009092869980978852184295781033698068216014272710602478120850745522795396300142670990097633125269352110747086473666083291406607003603527142547551650536906633642405707002182912791236484546835395136042315941256184497726742647428323953222429230952564730387258423947640760154077934691477247317349327131676591404575580992882457671753208859642663278538999149444558131358640386135321510389488481045428601437463069023867982656523950651485480376704038819873067202148175619526680427503581479835251875247744683264270471269313963226902992050153195605768917450763752304630881322226474342031494368145914590894336127164857241691885371354754169855425111705541191458309711991402106111732170271298057010332854233332628343680303679978110089365753724697532903476420210710108066272776714427463679060207367288603676740948512701949425881223046524834949956137195456607883638318201464902416986638282481515677796084931633146072873496252259601646994051803454487834423275339659736745334487486737834661080890322993253652457964049538451552787573374341014080485301280686378865498948180046405381171608518736562179768446882996460764078517168263069130360490921789513624469556233887798758139629985307201784681941520291266936897354780392921242213738620354097851759755637029372358910996334876587712688230388926416684766586255415245231032564830203871506524262993111633800567113047043103046222068671422745269404816494572517937491391659890077929355709911676336854928766021205819630712977651636684826944084153930785512705758487006373932270109765397741574094920788230697516208705334461985379973999783469485624161236563137651015324495524753716803879787510157166456316648843663608475013710260470214059466924948798268654950811799783666237672417051577923619618339512266063843426474561734599535969930301603988904891802974171009397049836943721102083938323907636980469240237936287489458068876264097151856397379379754159435683830026765208590329606414310234524460691943088510863821842794119779145375040225550705066269982307785918493714020238442185395850757329900242317233281971827324885721126732457900593116335939014797138523632962587164116692923432161263785601393451557128448838005343551596503965293921479559868218747171750157223114676947454934954778798882223443213381224126479756176374539646936782865553855497594041214769057249735503515530280766980039524703697252110455969593652872188279084819528580692306898611905943982527558589490840534552591887159142086213031690714396144156253908771697222015232706362342077791065756958108102329856978811661140010121135601458550878499944474109225916272788754478475352047066984868421174699239295735311606641067914234726813094188422214967259495125933875155599320857892860917733837981863107134325101593619989783323116002323770610733616834488478625902036176057105994564760082810977918173561396573168353674689896293358272612176272375202831836483636483521205402924023716108590451766747258298639454528836314766673049642689978516142440565502049239821126627675045238747269775058872439142188304953139329203404816636575529197902109490010016742128570016758946810537179565805673713564807231095767404372568808530856371493296899064335855788083030013859290006830689345246260854374652191782711751255075327255577878348002360748184033220674678284883385222769232334043145679773842918377403803243828102195769555058595749236811609017662812090975131825077503493792943271182756490504284882207523981537861216521619290676675339472221167471727672861874545921734026307112262793495767168493125210133479105620325933072592204235649939197611672697666369415973971804234970605365680201943873418960766612747408029924046441918540124583162626418361882944295628766502095501042010076148894815009219799053529436883720114068044614991045982328572193086191415261635023689173932437387263797599833875241843345902199958359587471321521520867994433827723037794348385128849537533876015748883773178587644340118056421118304104455835750176730887836681993392923986929597821048751899369022896963827309268480345951245262969010740847508552120367905354634272405247411848212391875908720544941610951130953068219671923664632590919763512890112559201634464707595459142305488108521931179615689476573859276607863875731072335783468005096388450569690462797851487921086937460478736272916652951564450106054147327212255622776637727019733057092174738438198217370048833752938875005315437406315586883243078843002419824171301698543610432209138019664947361611756215011566404103200600778659233839710039984125824666425143114593566693071756920215750803476325946844938446021332096245456796571735249650747382436793574854363292238565927307019744676395714896365430944847613386300142118188808154059768582056373140377713904699514447385389530263770248349764186841102066908129858343735812608489025965066912203991083885609217580868674297155898951056294998015228673881537140541143924076223540419652844580242079255891825052705310161928249029869168104315365058637672365229748135946964410529128217843255155723496558039981918217034827891082953066967007935658974945438978300341724971918981264678588414650997408966708982279782791878808114105550308544660778703072679510074663293051903061912967018904537656737446775585728382021201244830781403771402832043941483133372463267051716401683023840266809350953237546936841652519077121991014252095656380887855881104323787387903559716563959505086917035565760454240844776581700528007772319339927153830011639289662977209005588779297352608738296574833340514479059099065850414982542155962712804923148796750191104371644805734021818633683085937349529706897736373512292561605959198484258385803858959980926321892720710136705501185437927575343977058405267763581825353806394982056325957312441133278327346195690131378499136728115323596411912996814156283188566518133558665875610761421852773969912441397082936704521266675275065557209256551674059775261950097782917174780309242258535476751097206598451007977328723940693292755730521666486743359282402004372399771699241424306417730328373472640883375736151084562188335471881675743704746367100228710821917379357913415399406722043669263005470879763729510850913601261742428087475041669030988803712669284947771181638033547322448279628446955797480952219328643041265832157998589508299056334241507443278783952568110011316013961894330657956517156056474956561808155328982352612706868628183836432807617435743282695814355075851284293373674398108980869989373800444306585050587270671676166051064135437718160814102990675620506509416625647199550455633147640758731523809000946104940091551693670650937157689704371386954667627851115082005506813583816459815073642846394126104166671339212716731903538972318464687809451806692225951390516867853911519420488365371418310466190232836581701691534159460224639100370704712591516744122556299591523771395126476282939178172532416652838012313072304684404874456283290231135152581453446826472581388378959406504267967686235313081509290224087514984265518342869939899098604711729439410465253154994772838764511893933846955273300026572252883249523232751491465960872611495443925374992805657205359914865802099544972205228481623894645593854322729884983506640739140726778990693080943049796411799138045530145093441642169520473338001503126037978275909818796417887209301589291086256239129136130848905795929172420707227103568041789467032271951958838638012667497152486910571581032162870520116453340876283267223965268010199819544659203094751146918810009052150482183281352699766208016865115584626186924003349228481959475675337493488167748392227002755926316343982854498491111582142167153325784161048632715923242238491159568460304679257259179938039864742921415288850915983063260741316674304439874620731653689164536077657446618902547454278236814339649124415082418631497780480728162358741037257043313768822745927531647780246611713523645479259641114182936738482135897094352824427511616479298204986726431934211656618803101492773960055119316376569821987091642289171882080576731405922575773563067112649015915049056014159105111123125490832292039760907140366835547023560033893899835009616511811550256556593940946691992611086709760404591344449403747275156864509103348500168496316680596006524010628010630693466247184023313058464503440771330760211763018591696592488938918780729487757725848768427648706028430082383265535864838692688167357038853854553942123044488210367167651263025279990932934524888478071265636858738139428057733263365454059457082959614818795829371105829843761802983599043991778652439935543842435510214295530998524325501657380511258175828896621942072461374039347594673132128864006254766348684717278941983185226340315188361220049556466216088673827795941687410621972233418416443580197647251754585378713421833472489592462232699563348800383337324239351203408380658734052219984472341537413817345857839275863012593727060292413992284822449238408112739216817105329324441063217983188131383041389342040040847641683608265111841412608959417418929711780313069562721966464010941263188520306934450238304976789796532864792016623957099499388516231988473279644772271410823091705070526784591795160103749318680438936061522276867100504000296820507599859529165295977979960131208969190386772533830956271495320039418815083962589690165971815371350249511461870695672063166351956915360078775850973290280828403841441948600883889768725907284621563807850129753651504052984386502953052810964587468950852755727956197099564247459730332038225601665754183663525823520758330196429835329049037912663171311985719982041107359488368516618650887513102926870230688360409094363902198633250666478652853287597920766055323241093753901120938473547121088805422048293244629591188751067339223532384979798750687028094784097649013450886030557042819641771846160870139944452957027255886518808959799402400349087670119607235074516013678704633982090317626843408096661302991267018213731815523318363259958248186569052598540662279768760529701240439821330210690426880445451872544725534431735819679464218625572160119014569174188281864457013526928475001180754724603874267614196415464657402205585777818888824903614888932747554418216721305016301340969188570710690227293570884120542946958479601216313506177027354946520014443073161789895760914304838546389074339116602106760064157067731308668949431903423398424077077046248619788883600440616651061301489416130139245163007110066522365968564977373797142014979695107608440897062464452839550177031936841813371893344281310078910173174785066707745190075930387148933447548701644476001750810202125347110083547613572375231001872017422358243501336008113671932183789659575332998990490355030278412495478180389473586932564518049568173831992560356442563705463187568914162426285973884228557683281057074015299600948440297423034370515258373357580211063088924487037637238189627210755680748936973604735556998175407760116401629258946637943461295412007593819025703849722737225109873332458404468061819076241465161622862822172230430393256912250362109538527497163740423236394817497272797292598713713085592480697673122970578322484218477859668707072104822672223929017398004945628380702262028249606200839773045355788264528301880762718331638830326068579384888469787490593714508333535544512662761305313068171749256848611034844692455186266951472133068498416329170379341182445729142961483903604053600524065239373293036094094895060561959311080199869166644887797058682447666779015160942778827305083155062666374195565889793748401352521429097105341979297765038133274393938403893294312875976114791879767586989706045909507792319641840444468855283656242649031093316540398702872603310171108927407628507868383675765669794818143648950861862284031452262418028200229693283291770003434627063581149450183830825248916965960602387775329254365910356517567190919430337333764385097620712431863889954149793817903182226523261653946495812277304703668272753604659198517546567146587105929526350436782341293914216764468181998075842954539663953321835345561915377981172116496151352713591081369229474869743611464549850960559439223764195014812167792644177753952420318946365440901320995762463686488727679095891042425830578524548459405305920985210426297961098740592506749797006131927647385339072073133624844239325335724988217991751269094508381911165207047116822505569305549362377312059591626228323089318749704793224113576799846178114925399785522732417760158865337298507022098295194788719828311051656230246024595728061667665567806699345425314422409491736763160075757074475190754572450990916914575238326565658452455186957405035156415358485339381252152211212230468662560884899049631129875241515583120325866902399873363237513197886321564087061563075902517190085322675368835717340076710106560758726411012730226927066906897763586686755153965615264146917740898996351545819790849173591035370449877577734790537465754934980783458904080082612071596277164633347321584196726698018349013253772825504810135462132309500332891284815644676531221025499214036179046120933127589221742291531006870729593301623463910727638128607811303548046256189451140017239771355506548251759336062380892965549780284644127560104307919958788150229900394939715362402278928379810451562372513997699645565736527031747575553125279278464915621549766396049708634165018486637267475155204332002898118179885645500591184291227140584661221301936398672490073773423474242898676273597248786146064842242568181814333109250109358646785591299683790751270856524181101057574766490483271836853437806618687066508227689231548240339397665679092683937507747498216118434783544737593662533926437456998765597660618507932019381387498560749007722064173992685343258566737712285960237183578633392137132775335403837141151308421504753113957970668457886250219430344170940368851245911693465238840127433888645120325482018214921715051794255853333937605712130829777374217213139844925333388599721326826643000348054830768558983275265083926794354567779715353793329562996999694972958897605382482355129996347430330866074861746348594027402979542656319973107477113706857576663717612885329528263407868443552710723510838069361248725936475744298817773774891025097236104900820905946295923987673452454424103001532458746010838025255018646565352128773574363366701683535975722795466534419907364905000835917289193819759448056274460287672852238603482295457879388519524925275125155475420002922225614260122324846781833776686891167423991330308494461121783473476159390235487367911752089775398977706346132445731901014521508750033016678147818602531552436803446737277215849361407828221591165970066430274372329392354198391389904145707104070547576524904703016400118620443150423605157361306827596436736158609365178155763735090497457433595231169536642372975555044795607368312009903864792667663852383329014307723823428220375085557577383257226253429661581007531752269719711729729693475512322956193313044666936915783610008682389492190153552071494379232922995282276388792963237707898665982176948741954101521481303615777452961626426068781721006582168965751965085177039766837552521563261327617673184759318517070264095286223757603344961023430768278597104122512230320638294887863079650949696421696726382165293285934851410859569037647276722955976820685336563500085754345978520581785778384089768105019261823204688860828433312242022934990860913833223248358466806054894201060533906375545391959603926075904076351896549822298200266172507741959477107352708235066086141529379788058977141604665734924957682517127429855989019432524381323139927226568936205349841168886913580717663297624567710396129750075140386398514133102016009084335527272757182598523176532815161919441265577710481462179213094838793078008668045260989554829475009139565447421440600251017711566531862964596132446079794405632366758584160449779391680636429816083692931840531146657079290583260029072953487699813479483619911288628896897060088065998805132466862787116301431572480450611371040126625753164983981943062220917568934875311369208651492226454071506673932771292031983459711665871248973826834263000503388470381192972260527387916895770205963411853477678788427313434272589494851651886983728717836534081947643540690505807829775202405222428246327560381523827927858864286179074778452281591263340470097218821030691391690475924793826156953904696138077234133513426883606852604334017289904423154133972277555707895960882351737224417330102927941314756299997283795905922439692737882833172100063443633553596998697648406392797021427394873520189343484196822294665013777752604032318885467159216435659902562974068136046546490177690625040154243428071042632147676480499071670891653767680608046149073432032269563065715755523067965716447158495089088274031916660279037820043182439293389614293385838121164423907432672882520968756178234888191593617900231369413724175521101898062892420637506840838005480345054138079963262756217240468076968269661122049512638485219158675661416659232562796667939189294375676885652167849329901189183665534336440159160345070959530750730581312459338520680380387207784359750143744712673339971847125384689210449317285252547223081988967839369558464997260447903053883642475249081729549636874562375545784473644140898353590774193376909556199499843920322645287291098497783573463002353671495083433968667304775859684418447777407386491292697755554963007562772465976392391183248800033926679577141758064073525439401159243883189576518696984183086887083099102015841294779656024317104732254569828254996750593606480966966172356210021884543315643660460477073870377069550114594099578634690860134207850294745975854445547717420676744108241678837258474562952454890803798955375237527266193240495283687873004181180229568225392044901595918042388342012708287530533372794671528780453674244101944723643770564436897027835806414375135342269098935476632498702390011953740207960352391099127132811808649689489223907691397549367280889689380521683115002913485483698498246407582731595236246225331238170604271376023090196353206635144861927361466314124779465359961413795710748457806648767054186692980055661945788605318152810948473506831372294150541723361264274640438723237169385487768029578946737091803904337412532439933210095948680541147450773630243997823241138470241563903747606744796872303389735248853514588944583997115280992372414080638357165792746688628830207695495157404175798594155793903062214964348606145876548029685663090959881554273940598283145733027897414986090168393559037324321182016157296457533192440173716127502741614853404774456096891748690551598490168472355632880370520201843534746917029643347556208159784554854921276828322222645448654177845844263720728905426173089342424917425979944656216347103534199795809748891021721433050569379329940825435651050138618476640763293337707368749142407602303718332457099547968480892577492484456391680794931249241208276283689316832473704640865324316894793868124089866359566520558227075977336043665930787573477660175652645172130382654714928174458039265799719564864691244444426348263390393165363000128276639438159813431257145580866514746586738299590192481654014053352700915559476918144167788572596320859943370150236928563151911926352494247985066217732548210122639162606978817825179303411518665690426825711426109143054355887808798434724732778096134441616378202738350809176038706669836489288501790785398194726808306626798162362123483058723034364109178699629423994074762751369467275084749018104378834575415750221147989272027070113369712663491717980056281647731604541142378831031666873387170864879721808252592144458515411486898968408983441589260400757178902614095152390618858705248383139070590311229179995964986635926960081468308339005678844464655930736530136880817419458397577378863307620364205692638922586613257496895220143667520858565869372530705834412743835426463913989149053902401987633694272642537429950553535565656037050843942393975476416835813774609156874884931388952610954423535486481201885414064237917071155728176094171899291922846426340486321721543634020711156339513559117147001837321096533316603493429048460398288321818900782977835290013380361124453011889820595085479180201368627486862398640422278765353728102291918768602194482252482160768988979409151206416636006780873977906681001799710443859982819866693299812200901600198809954551005446081184815943985253694418243160204414352615645325622813415241321260690415466253079110023986141171016176076396583040514352285566977553596971157305341942523139004126693756585959647685946593386286916846071837610570246946763859849117004569806763202338238695860760368110757162675483771822536288930146869866808729334042933378357258297396473099265757587453800177996260184957561603561087758952661669612617245534467199311276058367855615418642069337231916546851423214811141272553312715832981394897144496798486582399252299463088872231431627013322074151837071739715588914521657428151310613161708890582685192515041074430972253079426206113132363248485339262286079673130286659811750584340685881847354668828457356127650434983251104755059679619256184981000099993926386299325062100875008279681570127812422966896061309579117018861567236240885966357335835869191001723405994995495840161205957485972176707128093553316735362137927398902533711776102156379350896097030277449559103224815338903861073238489946183646517807809936813328597238347754903155147462354785695715470322852286376077943371779815108327017013675761756403596719574543165773020551970142142347719660914265227125417652815819705431921812447861966755340734912169443248457646312968253459873304637210566897413633911901565343885558439040466245334046305571510573864622113228204868262080984039262139147098621930926077011320608832524379144381194479597514009543754243799611227499710451491164827943325774041703120538986148798888242220649993639148126290265203693254837582911744281462144365878241676863613537616929744490125624099527568924098196246537562379646554565169062031695739644291823629343651310195355577984208659905493034855511123541636925849887896077933025251785912160984240330174079654504309907466173015785824591571521463671136717011572413368058715534379738777725720572516635911677832554589648637080823428526469167223788747597438743424755462626418586057542463770731505522626983940388977373241784649271690392438019128662134806745387838537895605513033805839375553490424348949504640805685108705134269571345517932967479652801822483936321879422985463518067571350332848581927427860022503341111797668057634362055674350444981778471652015313426374863170316043027051387170266355545685084246510344675211173668679412831367535602455170223585371944740171400100109785841290855554666815848877020158205914409558419731350625151839146193988239833232347687866414019360040763925078551942499206281864396800250957632820772711852253300398009285082728677345392120666451890695907526280509779053969393485575276783178937343060122287714989259943263126276952863958424556216544678242893026336378774380567398778420571467604652241006657158845587398290244739021832102471627823198938045243049460058367048122513796579322832592681077547215324271333902276684498076146270777436041896166309142344256839578759911949868010665784488876674802731784507520600588777116541616458600459291463163609139459699419105681768067602249300795992704197341103454592278810246788894511474141115108701722774211007054890886054490050196955598072657014852876073728171203974899432471693718460346743669747002566097848668476079299908986904184656953850266299683237438287623851487965738486173849778151703547632815431680172379825217817284927268891902814120284419470347044696242736304230890417029974371055332550943076499178889274811736793113883064478763913894663472855570220806065081314480928969547778291689852183863619747909675973080829205468437682272819607500915813019361278643605921544399183833273077393984769799397571825699104533920843244214792207170405906680839895093182886671847297161202076329368427306861815272695500910261032692963003397955032322920575947803518527930559419957662807815971247654957813463274984772618455689466754243459213380884183548824726273925471995098877990910895914689193888059238738826841285375787959664939848159055997416785680099615514500626595666517297375890356001791006045573403589840759442389195504936421367480740850751653378160813398061522882304437988219461553767435602979071257021136556883740778127220075146032152293139449443137239162278329909387183613844376137087919419427261395136559328522449613293898059618826740584733802917887381071549992262401933181937774133388186151194272711457383692126217502696844268955115430796161818030537079653206348009659066162017534974911649712606094365572226414209527990992653123784322523135448617050451604853609624574036530569765830813257068580658590013862782217093176363793360968248114947655698229302017492058636430896084336351114398266989812160807684780177391578733668203250495239736615331681414912117530914469329297354317992893138594311462002672070132098414504323305039049808704820802110460111075809408063396196544519839534614537747334831613155774797204465689253086118565788833745290576520820512064978128125807831239048132056567350763979344332732215071643622071831727938822696112253106945059899422709591811698364844006749193449336868329458052599462180496067135004078185126380654329025431174975797281659682014926984936569603219754712818058520076958024402578379357295098228061950996871795532119282259951671895378053929622292152851569985622870026601999598313658276525542997233864239687094771012560086260859674543435547598972032528038972059508250893099596520835211318398685054202335926412567753333467738739996000435227165795945410655111856419321838014769915111418175498212878035667565650994588677146855640243954681309682201789138417440579881595595664249640502253658265175872103703066106124018789492772985577414693794207873644754569764985472458339259759539916633162870355798901723116601256810392576650762601438128155459907985869865991012726680211209995560865270348885213568819762776179943867657325235094798370779945590659089710349797956679977343436623144373751528485002928026673349921934466953654085808451888454051507972756458048121977303653927390162883545957709475490994493372762921110111442835604412266622278278316484071020008562262542775624694818076381910412436536598472782385833188590912504513929361531758230705943926773546382295598731944518241925834919530851197670662316094439008765492877551944250973078669498275727944896169254736660989695202058552876175746802889385009839855396911867133334577175263511026881618002421641839262044075195080620116821037048394605367560439849360740263265679946875195556671145677008578740346827495844874787920916521850067499242132541159467248511109055803912661760169560621535007012157699120842855444221263649202320229800053101893361839100362573155503565674347666682774328217906789588734141146490084931775969926603831389542839421801423659677533818115955346270380805551592000084177409288118471965885308159081865087398219329846076339952053796071526426827364532150942350096431811384024666701592229118774001917803834896174769185440925338928226223631467647059111715547816107822140269742826268576552196312090818675182511439829547636905210919420639787767857981049538752726658019988067136792754219627513149823513192504015008500835889895694319038462469635758486559207397287739178456169397598237599259126630097795173636492445584606570248206481269028359915282814104080178611878153399748055385391882901486991849487272066063021023215721539220824624325939344953801536893907734168643831766735092942996106612447892841577260595711007144012891614415433818776092993662687754940051802852612325229794465376234084832076864827060376032783896478009965881853548638195988308438960504114753907551334257640488454333494118362538537897514237842576271552218305910474526872454350282829296671188822251796479088229894798889980100519247493313743185648155045048175307136521956229194566976078090806840710800428707927158725236192362614878293274421461822819175484242025194583759070060206220237253981174329372555612119809423981996209039393254925667170528733624004732738340668466016318181998802291641341753662674498700334078655881971081240682464895906975717619567526513271622783917408774080992798312636361562518746288037856419662728304850348027516282163671602658324780153090439324963839413741434734350973794283529619424908175949769583383272736931754317928915282371353589747960594513219712422736281659783201869638436068736041843325716961209858290554780833789144963388463139285363154451617696258709377663530233689211840212984288557595116456790471203073336288154888527094294548075955976746117902714262107338989865985807321995439794228319269636321204631700798075943560816249072580894934516342121495337848826877395921948850947307045464073119116377586384090475451982856720896139125431950015038523916174079472396959862127361643728986786508096572052061582523613595949941350567311869694277604839000779118608644669152511244270684905755775773493088382387698500345480002918596229946674316962535475533061262398011447877729041971078187141683936057726676721393644747208746324310119921500250210127074789621872648423869920078755276145463145992254404495328478708445950436297442172540629081548125471456375221560612368695445968890515968439740308895198934606026941418250737647194577833474427957180654500716205340029494360552099643222951808277379972648275952139677055954477095903226115118442479177140413629453044097369035469225966983615052543534878187656101143099500255987755125176009246863034936515521034342269560464780749579947791765167504917061497002826383000357925700962053033204231806428656523682105421779205777705133089972949350436250539416874743031595826793454611865254484571327911564604136492536198730789301389376142128649394507671492030207552270490519396864153838794438137044691074068389918140573047587983575002119122437648440648899875393963230810635636495101785405694934159424446141671844283554948971002297608380812057503350027824663003908378582979680698474301499967396680374426736771038576027871469983624107040665083141130695447304037209812404896838931625012310915019117184629542138167746978165369295274801568726789167047431981619334362819483788241700013777206488929971968982879071416468660882480323864266477900417406410756248488387656929621647997965327928603716481209110591306739506221244244451320548865253837789224010243580410368344045859455021942608592370829575468984586211486630426263657662812199282890966545795530514054774016197459468124696139064961820570792201875529810977092287212190590288731382970537269800317763162105714718757743087711977016640248102485620814514548184444162217349684444631717954177674383959523724904651216378493377526518059711103704477158913574180099493851003558175820724410709590129280955893455197281874217532632949982704276119108603859833728139680505302820875920525279188738736550522305886031254438398709915850836863408129909554012105058355117568009714978675889002214893193201875631261688073463566945792344623073407614103772634194645733188824055696744979255722771376371464437537187644197382137868240119354477083599251685608768742481989000110395931573034122958186226205356667600049829247597671458294071449778783874412788895803511602862447579657026436005333627745369676850031406502152843142596904029690660598701226190893857015070953440664757901701125222475016922441422867061747277062096537135031153818928666202738908078054145005831077805114496722906133909386860677856233477792298880858479653743826757365467889383822518586690078852869348631643939535533388113317185070107394268679511593794758654276478627421037643867850361649711307319605558152811697617544943065948988964568172539443709609693853703192011983050807407623660438682264412100781811530225280395827144611211246579692571359549070994743590519666584264824082062870932834929056636417284956795857857692219476377843463516865222694271649234876905229483099095561650473787009304284673856192478754502276076162792296746389874361480057804465257676145734882680949702093009861701909086592780347179988904859453918213071473932615589614923875194420498552804757261879450525247191852545438052283230191626019421387677520730148953680445651864401626935100604878259127789697588114057473562067824977276616005074790691503635867132594854119820059809931333237476464272783796836747560722669755785369417736080545449301830494806157636271109113822385903280482490402674011142533815974351445138602532307256304713309927594642830842725597855090282997219906113628943460361854971649286018141310112219248526941253596602584208134354953816644829876063272999126141334736296383536050177474735609977779933411989393024168420936185902331925267390852453025178466359796881370788531524844740857511642401559250875507079910353037502606639471710506083232763959618248855082773957151543558860449240451781008964692139031960478724371101652031682622985476563056206253126899518259996573768695150561846479249810292974253120133422223361989841635808834250740934664617033820931250618273362918051833763189641312711725355861305368448684904421273161443526599169448149863714474502510270376405056337245335671857904330072878471017958696917592113921149978234490952447454291924238114812089458177875751593870546139244928400106379911362730260980999989498635761808212111302114815069901286229177526222573044792796794444938378128099386559314817064296419291747915308016793930648990648763142432594654319748654802843532582598349721897346692193589791763784373698534340789203403047752921798156652194825883211966178700100189289578942417463347662293419360982331480823127220902174541351326585162050311704865193432311225910240153685046393874788232404584676347155966546235675162208893309003203416828046480535609938585770516480902181039014657317897237479917180914118763538142552177302041183652865441339174275728613099666984864173938418343894782219144000837216701023268438655853833850817295474206364269796126797568238187481091097553121991127187550524194689081891726321057572084135260341806032889484630984014574669746044651850263734071191035994574738228322269023933983127188471273643278314513228864802413716099418944095324443488619916482636872611489648435904471125277900601708746417918846522566596847273922716928452359545650769363644433565102670000426429398082362046155593231898249378425789180693968720231328730143091162954970482099929369201853958143274669793241861502706439543174701246051897875769594710416237204365536648681682198329866530882094856067185610671338102217121884991759082734829148216816175977843542932792096425299368477819829528299593610487233282790052699312947764889067828596835350134924653901424047703978468319088876455601630977712913573665874876456997663723256913824859712519516003086589821383283425449797446585583999795580891369597449871849024744442279049260570683542599654109720534678666122700706984522933331370309853311948398729343291802584213405718097973402081927972586028437693985578667593249589477211195581725670939341551424771237857623884168970987171153632485079921859057724735060908319967270515356695232277924932802677946261914843731113081260723524040739578338858754475827165931504116196542295780100396013947861974826431184632426199046549405823961980265268063055119588132795379159819480061506222914328601284964915689036571435885000914628832218410507974964114175993501537313406923778935403201051522154613601156369008901874287226721548540129837358543068898086883264839650735197973230684727798500022761800009272483991341222504123455003700304281067822334849998004364466686372333037988211836363235902038847213315160958434406546844690282438977802601468186570451935717329556361159864332827017007309781071855748705836817234972019533174139221963450054914152106503184242357425784567327080399880077602973860884593717002217806765460233790085998363015944032094921341848803736283979394960769020672705079750039069316583692345037443936789403568898714006039778449678138245202975342633724686600880789264825145387687454666766197184037212703910463888805298110120769307126017694331939892939723131274125818799306566544371269226806315106775807995495198172444530829905574152087426650139120111386568700932144614312321345967036541424448278078679141892650314906590802705017271023808816517188110242308674355994089807215047729954578402028725558069687199908560215682705784150317441634336062724672807538754461984074929951271695570917278000361338912679570763963767229644639031409627690701447405291734837830745115653878165253555922515940788787271361507306523740283637707038961142192192622050005427006297921241590537119651130256284369685445895739755393228925853972947090914471196094034841569076596276136554364044552355359379450544867360778606597130918589153630703929942391172685154412909507409930403459531406639820794644008090616805598993167889958363387636789833468719386497927545905295980155595296746219817226491748083640438562851991774842416295367394917009998545100259283788313646430853080375518971359894262034485405636000895375996323374434467651766042430825061194954544384520501088309878410487929974910997145592036464953563608414898594254382140103122053573145448079571414391300863625449857811639697747418443563123740642289899327775677115325995232341398682059917776459441541082234069211533148658312901877471852973007904972066113426313089625402496633037784244355351680573689591273416419521316947206795331905884074066427765324176308727039076402660955276302999665173951226150724627144853970622221616105612865913679866578024765593904749735722754936913920851140544331717596717057862837161285050518771301340835210208922293433131145363578854694149369899035267635914702101927040979297827880472294792612683176104856181288201031436682978762423397797247339285053640935544213090012986338548915144944881870710012447213776458256861685802267222490742257521393779579150595987271111220459978015167964724344715650559293024668411102776285600137340309510096025661525175926985996387559611009182449089867737575599434395789377868528572287805535483556922195463248435788329294597720038872367982472607563055267917028284973147475497770235581797135081738404897507079966633709930862923641086291693094135797246605529110237781383525041245130779637564709598469889344342682289373410526862885491631428827993455486626792076806870210230145400948629840944814355537223547615051085510382010346029464709542867923871229555818122404301489328194166074185606407859034089921949038608099742586699457352610736028834062163798831370626835839842383865910848490746225852595324847969898876967702567616796250117351228084905671091753639508454930051471207257478849045253677007428918727581595604018205426891856887753334805763088909146339093844093681780390734385958627594828100713471027447895751087013365924834314474519678123278861136294937028065656564262072600956406863309705525471799997903774283203250203403987891898992691524465375158700403578127178501961916335662154082036251135614259061033629627464308042035381922763813195194404554518403147237956208492242138928536248273398819345673122098958740009767612383489603011302000999325381825559284632985050311809586265077071184619415567764592511817454719884325966891677614954147292303571210808595145043373972709471580074984806858928127182390317758260711405008819624131340104065274683718408762317030192322693865360285523841323020225763911335192912034706940661479446749361249609900879638409484167770370623878858361454920450845995495644055617856998369542561621944192926037105603336271115267848481826644629558748479044792982809258727220196459695737071450076059696053223396712412273152267593957657600335075433615696642092344724925732518486439217666644422057613901421034776421594772614985990383907615083690593302490156699373896723439125993133598774585514230296107020001580798390988796410826840868755081643114594221532757865029923245816265777971257530580738941883385507336615948409017344743825138590274203745377491165858585367200920087017905991324979517658582454207935940920743418757912673811680336839588197942382142078936346409482106595525669890758347828705759815652789165713319233252580273117034282022465559274465957979565991842371586057940707892049471328848827257517071536024290312351556646855617078253642532725519904080941154827896426948652198817485858469538035118683223212830345810974024833815913663950660516661581106754542873526177279235750091338977131142761990421104299437385682615359484208973305490704650171415272862079620263348500600635892168954501446765598986630050105518569909975930686693941326974988462510108991376330565449635124157359091985195610998916889913365604920991089710301002336125078778111402950528657335168562759036280274660605704915483651000508640356302960899118046277681691189686701914598134524243727138673931852372535950180007241180286764011763833801925615844952650476577445759283546929296843342088675685388421944865535491821688035989814336504785594710519614461422196767407963151269111037119589289820680461907647221858314595268676577790018949551898367801438465479889057499080219791373859472154270900838024128860941814596783845115685348801520418064756542598406446042062214454991715214894526439752077163227116530347388508910415205758728927267194608917909767280856250038370694633280209128872757417480549632477558814813797925098145383209451879468674268263226854700470926160127889272981140678875788904787799229340280372357155446830847094773457730549813755557099101081548906703994124279434125132244448569135943800662902572663820322639387094171802109438198505446232277259169279062324816534643768228098439785070529134871038000354658579539632712966091431177597874755263798473031277260696382573125030543462987368997002699026289510248869877175366039233862902822823535921237933821620723237951006104362009651135689851865867852573640296402110597232333103374910745878431322031280904599004654317397296703144027344700619186193689221694881748097885465947357877034658177029703860305517681303510349931053762319687753594220358318507143771163782493323832077472799657190398485112670730119545994928594305824268692887391851681628359171231421970858340380648173655793263659291348199485234410926579697234699824099175391754315669922503359924591924049547623723097619702141199833983970804671454005790563661488674605408082353218463939587001705842105371388022754150197268065139176257527848218050069451959976103088297529570807909024352814118334427783309271801045140141583710227532341581417914082056272422167437608930702706513241906144865195434105286349158567608666014701176209857496576839581388172193801876201371624456049756223069385815878901994357705515506678528566680408794512430849524577573932669053944727452516548274493353172222010795530722973257151255318723486656527785574834406058195849975134521546588683707888865577673198257719650038698935630668605309649285156730035482420899428364148726785611331346470694140721034403806989593760339167154451910936096673006081806313965492655486904666112697762399741838856335687341169121867250576925808500315707954877744464880043060024152102641298726927020799239576813207915395340028584604311697459090904713165413159008724067954515181993134766643826202397964699185750481700637147654857449550662002987347482915410667697666361050762785874040415352324892368374213251382512530730857420699027520942843748100703109613378136871128626835531950518270107869635107214182661523785370741264443349273955704719336856094656962069448936586617162943725313054764918448713522200222870682867236179787711975319696537199943122252114267047588591080292626351254992583669279365846469161945158912133140950134925463962240393350295996299573571434662616928461977855424451496160337550801353321632502174972495147312213980603870893067479399229418257799578894836325657111213660845338462471835168237578426449672914916348973717408716344224566350900286992325891045122877723240497023287401474316942276000794679627869214152369544206810090926703361496869380065749519858568503778379057157374777848019806103479605674183573460283103636596451582438761724784095310952991463111801423542036988862139551426147661156932954755768788937348736656268939498569432138034532580713682336639784983225577840630964668731989781665631207067978225959153094970547363620104470197502428161995819237859467882840087102874561570462972911492717522716805113971651244946396144632907685657953897167830869579830525041131871318970095288951024188652552474536923421504473142783779953330235782491771728422991551942302129058266822896787468467667172547349772012273298511389655495457629214791121532422114002758774313733492108798345521167982256253103284357540472086540573786146962258962180217328003696523424828044361315811912849269693048213686139978440906156764797321640536766591449721781585147650354991743403103876245912125892569716900052831095835938360790895767659743942599400374538617501113623921230237678739047418112682042178420561168431892935243720209743041146628572909689871886174336424409320818557633834805203961049186214951489264765225967021948830951658499321818744706035803634282229779138147826291048351399534238631052474791834702637571610109199597204756620693189717590406567222403022995823826543441038416287936719315887562583871572536766995320666278747110074828019836683030870640211677897996729924279028029427835576664075956427048967694084525174347208563058777091673795558004163777869377269385336834852101667408577443456378229326703146004467670243927698313639813510132307898351941268725925091888334739159249906768749807431318764785123437533229436233645083060321725219126445078425052138777339478532536248241016968392218774552265610347566014398039683817029422879410614788800929993399351525997038703722488307537382854261998334324625342710761563502911949485280480939007741162450800940876428999427403454852319283057577339703834760688715278938261326229355691729768682959516778333018504535269215706044126794529107572341267074683967065474601922137695574511487605770000861996869877944177492423530627830149130582579370109925918464484010477184462628760153055709786236538903594056777395068066731553313777408864064414957610125739818812352260297683224685789299232675241811637887663343551237681955428615766604146888917169010652483745476971104996559379739952356346695098282566643389954413050296304219819234094503513979005166566487800387946167171241355393446496849878140770526434742517716424448516672673610361318685009338171911005701768394483421722707708235087266848708536512130090727649314207391302441861346701463290662128712432450284041284680596358385352217736187240659752436266791746536744621846487849116543719961677674676948840564112612755846159275711255840663214163053755189101262600105335275014232541753741325179280481059993933791311854241771419089253357227043772440615980655208559256595943053599997436381064025991145512812475364909867711332729812163875685543147718493499501259554379339629280830052988879803320326207364370266204353365133301410125077126363137058746562784662267797820934550662218793996675097630011161504650172670013032593458827648350463024623257009424719765200623294628360872169719915687822968204634437066035995183263229819234319900948777708153308690498593161069938905214857706009384556905921884701965538576083317473043140158527113584652350722460448940108788306511570537522298274511823659983646026083793440255277577782001586707754948262625478886904999981468682617885639600566926767164145878733382561163434405880275132135078885943887544131196555495981233947597785185192639466999302340615752966981873329299400256966902786860243621886856227796893047238766445132463516210046203515879107092873101346707157966327951695252780880986019845684695950240940506770216915899606721616677731219228443586017732038205792500043073907474044070004384624174168114209366189459490598486430542535834604450900372800622189033840703875772240902728319993647019762504238230030042633568233237507271618409714536551819010046814106029087828807786860432796370608492482908879140317187855030710567653396811227601744116840914634362628735471059060060654617271633664420723758000249105634773296604254438809876267068536176994565117497449922733853547720005046499118439067763770815687128736060428338561421009628069620535055776787151983213449299697207473832386663115981235494745387161119450533963262173475014489124548591592094466213888984458973637189827632114565525725619836053243971018542088945305432900126304395961347114215507582565365304449764788045080587458813963567406714935614414794462066906715547530095880259101801815817162855523981721276885145654324469192097620991708279227627020198244937802726927953585535190761243166648028192072663931889737948175104074723772252850177019277702021427717710268625119080182085799202498422293978501768093247984844763068291456426103225216354538310638612858913837837986806868127720595557891859471838662562970209607995190341699574832292997985120349615069569436238162818725977327320849822051861010136272807485901690840371044814896109936484968252248907792697337157990706482612484228458760590255354041268494259080452918008700421328106132181199646178449964283425800205157941277770388086751437477646370303447588908991000261622930734790605628369633456862363720622069079631084958510422386127501787407106030343045040136958285351082007586931779501955359554096283950860728267075945454360336422850534566291702678174709356331693912736284216557766452351482906688747491035727059506106484795482354629750267782861199630048838205596418196325236905677750884054072042781226199081409702180536387404947626088232659823769534498583727886480565278322590261646016013460395885845981010556036498706589005916249599091222953772935838001398708061349729575706721028233931574809196124543203119133853913486436394073103191001445155059843166250982075928893530496890583833696346645850853931000656849827315438628040704825043991727102692832639741945826544923635681624840922711050157327325701189695806652467219118166727417320649491457393813267798241626641586794002409009393186024269426469732285618273826746386215447798727680013757089442774921509612677771868634334491127459836257864937863971967010937573969648474196966787082607887439543477485971946324746973908889864340056389022582311925390934604159396206977548203803990559189243480049937985377899561804941476182604288665779478965155320385978290443530129903454054593007365544017387886128251672534710478536883170033578127103655003039305748508397729502712505840247667000589049853010829076406928443028973243534944898793993695316424000995696134333715499955487996703233578034323807296492280941285687702326549901396940795375291552355872217852940638380513773820404552824106159442414348414293335310115113216905651723999861223184781397456035221815290521805554740302931017443445041085420535010342058504976369059158373054927043286453433795872688284447929478158608195190559350736595916895445855479600829904692042085117509292683224773643141953108662064963455374720086122314795505062673558479482042843573402014602001906545131788493642166399359873524308503015560744259437892807258326367578060035483202103646705926211963257774103821651193673999376447981695574119682303943428014028333180246026217019774670082543134787446237176100994939718965408536422920673104789567269868676289887905395700827623199325251198704990706036987286483701668636938016761955161147075952338998739862134858485385247009375993314979094575402280320837332007762160591315357006659176975958492115386600900893872763244656366191915803455348819369033905168970395441899637250700460300703578066856858589779878370356160054638212770601752991457836897666439561625942416783881647867346910610822682985918150906079507783302578799265385361558632310779216654776444089879600913837678880388322364594759397102127878783470255204576418725681808534477566151278778087758439531496938747632628655629327145127424040166174951315711668095790256631894083618472852002146657762797003216382617075597228420874802493774436233140679159391459958896965300177469784232347344646566124325827317661451353197166789335543484705637559601694657329085429624195980662144604774016953552929593231997837947307430843483610744956451420151629568745876011040448502969758239710841867420426425940314670489415269015523492265134052924790996164722843371180583089843494666033328628615348116091404070787431542588076443852551063029048284197092206698569973060237241606675752296293469198325220834494850871616265353684839670267972915376952233243124914660903453209894760842262845405242876377507019187527975435181499879805456381971194149651401029697301011716141115214667318538942975112529275935412476528991137094255824378222966742759348029931418941947247304758014451496708812559791077367015497642546202942548096012898724356250150320389500928657789047264349475946806981764196839466840450576913880744798340917523269792679566963227368795879381298597205459012372272351801426102751197822187480376813346677385715457929569997146602814908904754743862438413613907505815389763834164740451011114777457131342805397226790912191214355380370455297022261366005952249953112666793488426584828063148621115325798624213125084902070376297748346443514334043273772985847394288359949231959005188503398395010353347455302489660230780875710016649413070798596592168511290307626848370797325690910648365286862395444631598163615197356438426526961213707756332838782907205463253344376304176230819650575699122792504395193273287040890623875614869026057906655293234387526004625060725594388799455997912835997276901446141652150899183337902926063400528403314356577601433175141537049815290602703889779219874394459599340932089606370067973395127697713096792505472530203203351330237390264080119758490081889523161025188944111544368780242261692332193628354671087631712802783063286166149442693182552808407155727723183003506909980061513272212768170782117818122521213970115480416926113818960664173400513709629395540560232977812252388409027130117223473062547646507921329840960432616516972491687054381667961072322200613198431180588109487775890000591630696648106188660298377733547878722506382765419756542747111371615768605861009964008385178071990091991992365088533124189450201838153174909676969981874435178511633249093661759362363017689585041070956951467156188604598764336664518081057224726577614582484219519659559230942846294104053724051011590615788732209048752126629670058109964855119131064489910349106388233868966339074377267769364096481919522651905138079528597958048591544461768592719410820329077572797715353289554691664805566858237824795862801162575683725245724179697320489546629933622804289938557515956723821594069059718104268316899140451331548441267106017431994980570496140016898838009624053702846080325730880381666566494380052550328641616589006853998138720509150172964300726181959334871337902187221800106518635449205301633305225250834072300661984676085180174997754212312772340151776225316040354441322027963793423104507663495145709198671027076282911269746764693106775485665139987260504892903491433190274707685411464661890304380171866124327775685791404178003838357512994311144731430525361059903163109172248120080497713999357883418039090335226153423436526833316019409962050181940438914704532137246992325786956475778337537853358164013640559577602382491865407637603287301462847500195688329690337384279531068388565625171191998385098429224525211223026000539918575496173476533801275442593768899339274234798930866207116691456440652432810250255644624714065959140292076134110884139751961153055385761424066384561345412894977412469274765688221703466298270231860330329888157084075505963710473062582928093718304682029783913121159893400048794641624694442673562195255302109209784289492482404011357815732225209570961983139838972389871302075769132758125519451557446805424758642492446789332994710050857946436271125113136922709699633422287681730221945644090170030408780338331615754958679368696708422094745120956872732378191354228929081156721283009986252317345328729229796913916384422721685805779518326919333231393320264790791476993688959989980932866310438366173741287846644178867657987244655018671229400830450132018391498424342485328778404043094703696457356958755792605913868367817379917034120151124048994397003907356102672454044928550731831289202462208800877217837989524566412156344433645768713070264111977498492638573694110108499655292633743282968590532678493771512079454223878827466506741382528152821981262147778170425016158180655833784361092741315800739189838666210672887405188288215249916623236686899182770748953307412743905910591960171099295112649216438283006532692198162503232377573308848747583499540133401593238024076078029313170951689193286359238296589216837955391818698279471108943531342816400920543814665327044365751038207053197533269845957236498761017952730619699392405536822078908467483070798757304000350071464139614186764092091861530191402601441335101175152389635618309519168111495123489257058406465082805974476859586365553738386974967188917779983481105310186240207566284451759593919991437644321407459896068209683639621225030622384888532186786614745166933429508715405431784311973178883805283967690452377773079579007561972332673481260620351212342088356959115402666473460362084841444639230299632611875953199920090261489198522710728065016757513301054961709057457837081449441167414132628947963655243211954126904949618748718132702410071342245666448150555581657566770671400541940468872922314905911088986812355707963299025454783335676556431850715120272102548916987214318027775141139056997961110490954838608932793701831080481803296466205961735961048742275654754057630158746460686309200225467785585201883988609322522473279282766689980989640601635305448488117834072496825133338211710407146500389798566254983868080143656795220330387272755176521696003218518391891972418556544562957710699774886136454900454119303164235035562282110016147006126188217072588357557106495667417032048007152080268392126379705890786844007860509731158913175148855725613967772342282488105733752480420072683590606168973409462443283386421740608781567328182109476372757921567105733092873899182211696292985530867247619553369952857417760260987550957080959536485294586289357752394621297540057220639976882127163563092159482200546919532858514109728882430581736843378878663498764712419954485617479573428896121210014799319569386740418794134953205641005751401238739158443642394214137803894123338192360214018676430344569504157203742123787484133010648765302137338318779199091635721059720197825501534402865991612964583102158747297091182054116959116226472479474848030054002707189264964539137463805848977502831144755236131804288772079420627241248528613108857761970009835204437341240498702174584064076213820286693164152514252613269332057821813510233366085953104705726037847595572074697225351498253209624972355754750223833456849171823988467665108943687008676063200264738956014648023369956609490062871203898113835621966422689608476210814898952307060399602891690139818255377538237906944951227366879482640856159554969864644822451661072091756692507540882146366532724745344418343921876961482171703585878750390794557088381769499554479903888002168415305679685029255240500898510116999903601486676914249106670078135802266731135444749143306175077760549503861254939586662505406675121332238403864981602088420105305313338588680307959657911999049207827313299508666272615407795069367896474324560811970181543442965936019475963494160772109828275131467669861805913830766902723921519453501144571627406462744225132238450320330009681864589257527192056657152947353957082514378327133504507096722660279151414210191576647809331475686486457419624448243500106707658502748049109437830745367379618033932241578054891354734305699138795948628792300227867689754463110278252134629624760934879660639028436096398508190763758612488279435087053465205340593754387650442037421266185735513685387114332420755989651449928223721689614172945177558909997752159967025212480630136247270776562545016478712267357383668121787406495524183192053364908567163538812561033855377629475985285827978175958283077724376531749465631368953115210049500728962102009241292623140551142138508432095259318694512415164784448371692388223615037403890751557908393149450043229787631367787963888819710748833946504762511169155313781648403744178685975242097931569679358597005278414620279197544130020364552715858090587815208564647769822953525205410292688270705618150513621527978930836861613506297387243994386630229222652576406930878904467865886763434162129238732562307655675203604458292000289742170242720764100481413498650884693878711819835246307344319199318528413378924061559970328572419063845220254146452563981835250162246301013206760142197672804802322127886844026202251393228738961426823433717852712038682912288472512433086073459555362949897329485409949927474233380117434654442596491427771696744127883563748646132386952050670479529627649549647052992387355595570283761623172705645701273085541995889055688415329428840092728670546137993152021631182998703187226896688426853985508568208008608104652453100305485015015798861498253865774317135344186765606656136742017084286488643861745024531401159435066171878083112973410976012956879314937624977602909818960471410546727353048095960402802401250736503667140507196649278008515013344654752064992023387011950325231588376612536378721704359029136887529623804851419394176045161336839063346186863483874995480185748147318098863635640456525588031295432358792652496875844467477032650928961264340278104006649716024734731226471743028830211399606062495878143744425930751445512397937355088971425044077561324855039580750723348478338827480884893698485679927546498419760021722929625162903379847740482369520267212594103448471416897448313118000678419920138700769610354701764102254009301574555385908306550966309141919482104483602113557645953747974036157818412842531920081129707280032342047563633365621204159611007314589515293430222343070944026026231444311983479032375416787295271889013903487420516130932333389848282298257390316523720950816980259182459019043617467047953971831712281789934908198071914879337626326599185826445815403793944530872849143039758303408536797997497113209310576323432454081877976649607350630206095384423279908461555464302678564265402896592887651218061916079927962848838918563877077442073226800486827370528383007681472581019005458535126237219910267898689951276708185676411748735568940785796423478998879415537014181582188106291968119437709201141336450269376985027214253906065467438181248859606861132821495252062153496288890954182849183693708827173700414375963221969479230685194605477732442593274526339999869190471617536515468423197660205399691186405635743527220944141396684946397549796593006733506176022757658548652983006656005785525973220814002048715043323780695067631211749622791359215596672503797965299148924847620447531480564773022817256814913895251363955626629449256849467969285956949529120378784219695669854762347263413540440911750608595846105906401695230669769202685098514547026866778488405475294578517119460694880983966362116283386676135497524712611005926943845593803324575762334912146304433690590358209510366655001286685474075577777123089326226341095943728994406742956198238964528357365872877495177135433033385909115204051567532897869683743927186912461407997545680696042561743291426311561142218384483680930708745876447755214642632010449071187690751761838495520438848280180261608986297728487381285781757480930044017446103980378482049662872998180715169350416455556108045132346978256088767164456761279900946221601591734189198554656746638065452239470269604431156232160246611278634771581048228763164154225868545679502753983666678204912500694644275582766293814425385591575252175400822901740285359462748042536370433227623810461361146724948852953604269990499779916650324519118444470563008232898858717175275148048605372917595090600870082271729852322270621275110472733275173904001467758114530820112760936147704906347664059391345591000593585356634405368263015334603146970360758186281892872070107879312502707988591459849861401946011320649052312479596610456317979525910711445501623716727531763660426967561028320993553614601369323280037133282114095150787693223444073428066971585875452699542370234769849034780843061293614365652628792401245187697864204582954661440154334697246825172235107769103164121490575548199787965035852697972322267083016721931293504146279491134360946024460611642943055342724592452983502297171472146475142248338114009471815669693390462851175775315232403876577580354950183416808860253266361682701870304223687912177101812167609006381073983944195308784955726301643958608755747695872977561318835644052414066522581600704524799148987060689529436707379515921904832691073280763737619811153676871624938984835060399990940289931613755735212038370705552659843976157764409216433680198151100195570184652244121248358708301343722519933458931849251259517837080376627105690546955835328871237834609377689708491408822905424366927931563393178863015999511208909581628552550349418627836007479946202530110661359686738677868581837951925371220751987376054378013177835261821918966053146251250830075274353868428030215068733217075473911666049207320396181316853895799713336806429087018511420851127269949695911413833536198786900912253770337225786816101423304745047941417316236431886939428938774893771459391675715015322821145246279613808806503496617398057088879529619770295045529010349858941656659499762140025272024037356174287030596089843738371353014311703137019758410293963102424263741769496547641041491801845306920415802084825641262731409197413150699523158109909428639311501718038517786255443144335530009581911909057373777888172502419787560425727514056374527025170746737452940156421311843152177302944488527392332550466112799590848971200407758249853318665368263320604418930750147835178947869072487111607872683263709607645653572807078663903676030246127978672619827576287114762136197319849331665745198898232353832732489472522250818066084524806791045381661126643631817548636859719155773406077276937970419065759146283351007093208959597459714204564220006003287638356820131210069283747155066685293102859900014556086835884808819088737446102568071720110248134818208456641935025612862513696145681009323211876959056865496724994122806223142226878402514650669611751796473491831098708774000631773157896556436456039239437035558656583369003601538079970466600222363971127601419521542539903409847130923396021002841143442573501983765652598763356517239356595260354476832207251399777215084500152847753656453206972767557601370157187056335102387005676919318321639998435806562366385793677282465960628627865903157019513967187884848990838894177313233714976393970017993470555740073056574406873617279394849254314746378999662685367121833284180860677735230185726150595144620433520171305678716562860730225323310701104283102263288785154119417014947392562422025710813219072412363106287995775480236256209642474169573290141063108770611360812413116893797024145318581058615441885576493113831289919138179727417664289371917489006400989004051939508432996956052857336306284292895895334530882141785626432695204641217190470556061211589806464979965274014239179173842434802789986196314842168388097980394678426522203643517850932079238517036282020863467136858253564665781422238530840769112133748228670893806402298665119521479905548369098346737270402740763628621059948721144012309253302318598717622721225446472195494382097025945140214109434314461243182605747022551583969610912658872119106266828470741319760449043779779041659648768803633458420917926718808349452123175231598088969005209087837927308034909141511188522402173050000154194367939460349138299164596115534625895199242177365883411481978264475404873878429060390022633817718151176767162110941500176136041468937161233080474996296542470790149416089456119044145409589770122532691020132412231656159201315971998960154284392768588144702723945727552392791759409618680323681470664783642241449783103983604740141592666856445749805483145696328940513264788681803207227996513953678269227142807545873856017433137692181113545419471858267559142226080046947792316350325920517442083457634185520344013376740202852847076214145348179207027642344283663086628718308781729394457503586600875113138977333774880535865414561324798699666652511047403140729338857974202697569133656910565815596140699719114780937233625998410912880354836109512479085945421429448805297391803994688099860047962990483775491354710460776676745770838624129539766884881046260415887587644537461302900448044950597157426497369206081680409107088557316462831171994163700380552810796381741239648102441026449167095029967955429797047186700909231784281651436875739134565484568700966382989965642717729144761101200284630141818077909890470256547048005396800574295610712111484284516383448383926464316898087050976744796300721818933754536753110483153647112364235308415681105553058724524126278022756902530971971069829943549166307989205079708931607900614029625131588173111194490636935200080946432952254926737968911238632156780565575956273004652571971841260638049464231808562837094184167609335229269742032243298655723926597599931836623321070892083490285258666986055281991165953095471190404446812130396158546663630915266451785461238845908303016455523909504195404668361285320732850772461107633604473711112343602293162774767594576386631528048709643651159897067116784529263672042064316346248626234140421697072405132050295608937762304053674646550268243137852573260520433113165745107499049974491767925988695847991774891441595122228962743027028812682648380874516983112099356143203872187122535058083539022784646183580546908526851884394771760651064640476424452283915809016061713216028571004394287858365875805322786494326617623803788622905491460996598930110355454667691607164621238335803199714974374803081563001079717137462606669719790590470823398045248426457495409912217808021337821161242595156439674125095992056813025240086227779844022879761352934522828386746038219593746724687826157737303868897973147628830372192731104115000975283464936319956279317682211054608946778956193041365122429890616510529816682809923663013530130555370012570208787263782846934082622145878919573803205175384998052496080337757824720250900638170120013782451258920202588237706091650683160308605098635606889552010058875042615644792934921982298528853432248309944082746131388891051326394144328864366891197812575434906977296709727038822269098811426642411043705691099316597259880511077170844421897033971006428577410740434043287548889673356155343886301545251056024127584722976389425576470340899197068691069694021507150864270777405200103210837490108595271267351473393361034036194635508010873613165342432125897661622863095916785496038525456807227916553453837472287086947006942590843330842890813881811812471263715370106157342730814099452969277936336021606114215058164330248631004168110495493685550684255173498738685865546983199459838072807499334127073042749343555440877289107059291002936113846844703206171143474661856736238233107025941864836799318688840332766389299096259289157894095630569905168237499514019950740831354383309480737063399323159196881620493662537797955667408459153487535152536442706516695399643872667456963155435077389066751543768049797541412046199009456215792650784791094537586161584075641172228281859303478952384985090691623626076989848372028419834939704820940695999307780296892934421139305191849536884523557616388433128660037489954666809161647543248976621367766268631610796257642113034996059329901026465492937093474132845622541063992554354673794043550682971023816256876513643628279017882403533942906380133149141020177081980801570799777486456715183871006849893259300287496115566031385728129437669261077067236384698213932643492754590326808936161361298350524502983284424146067657626009663629588450759761337202712515007201274707327752746413840467476680358878049809660877392958280608406041579853728379939366446855258139990427817733260844712305563068843690210440143807431295565457772091558104878650519693574035539237019422089950020967422999723504690469252386222358908015657878884412265193852372180997048486377502588818999239076735125368322975472698256837145671296466913754356135123905342023089718832839078169976305122380310192370482137185052625617669943828000954509593354620647608803280022214727493959302169163525926600636937641884642959948995838060529513891668057685149473536778346960024505679279706276127278713055881705118308218147723645764046717047979926031936629031083873213263759920354247661110672097068693492589649158780978881139225829533034169348184646032893230558054513836151164402322857399601183586549373180892009217999909738626635252686622597170941124957154685385469401181733946993913825218502820924363966278746949768360115491833833131550313909121964753659686308318047276693553027665494398945328062321836099153916813661837918354310646014931352130272682094622827666574735914455458531425456166002978082006695458291365532062662524872151955524431480367354107332008847407923158947053501465531934013402992235444274676774648956411640730938774718907238908303653097408774878036666949157006628177221546167970663971597183061351339447553400975238013861958139151365961659769251115641922603318531053794014272801744094453661425833904785143210557145230654048800238239500367080374222739914390523433751044492812869902827249004617365660343904571446778280933626636251483564687389937428777203906678512029065861212639484708763004746473998032761396551430463819036390519172996590122366126558730324762268708177584509763355438258580935118270278126407578352341677520930707192880057518040893318297792179844517676550495884617585620663990997125103584116219035954597176428078876402508528815450141804329269423921441893617566753716329559754688626555224611720846987091248667127571884405685341198319277254655625017861889263105348275927819430660405735419328920086702700455718032854624590127925957698788144511880125381456860204617871333438523438745836206109019830076873577066963263427252422701212364547144871202575761329907926179730281928393376751164099684818060855049483604777634329082849948641337652756251574900195432340116877378755443875512389515797768205998119426640590269434061687798540975689777825123158808294799264463957740019532724054837150435959336626791151908951073806135807790399275706755353295577376609693231152063395559659439088247389539251497510481437915578264109627026892226304627765156720644061112744258038806205259277585421386628066195417022300134332688616668647638273343044054973588676915463342153532274250679688884681832034200671005999342013194949142673645074924729886311591246978463253952000614609791298258265739572005275299581026322346259136015990209518355185411409127287184376195737208061244446114657034292797101976936085534121938568902099706768115195802898197079894153721947100528922512269613924582361758023282821959937498546642374809631371317852843088093059534503728728975297274440815593149333082700498348562297465787257637021915618519630427561257831969124496408054516088779247005949786041506907643992342168372654950352533321586414889498955887130696458045787407652748025451284676540341473389548727404982662383147644727746071413400946090700237247935608799386389344848104564121670255708465501086994158476085306364694877534481075941691419331387653252563275201719118239315465715209050481972678659905772451919342819738300370377232424209539511170476950964851724736540216529835521223694349918122685549270591883719271419704735358629417236104113490423576882605434418700292507830633326072750664235595986018894572451914112143898630954829344911684345411906805330897847945841939175125253230405217588504989881128516741538783645511353497408259208002967481499498206191013806613235493608060505416821495543001304380512659085975862340224912570601479187478348892501016881110191383846502552751265221486618645508039192099872759055184714592903463012576950302668728698812133465591061824305899153861085915330043000919048040015043260394941982596314326744324053516176660362061163950789854262748326213248685157100958419608245473876136170174794752602331116489395871286916104671717217134482704342454648802815078280904970732875176353891908036670156998439499447022902647698523080038342981525100735242400791285113763449577649406836442584134189838051466855822810686234627076253455461366970874083667640480848676658084907276004234185465420701142867165493982702983097221795155298969013727146908501646131608693646576712108693827700512258307509182923070349803039490839531482755730315497688219009163639697186703514833975287607131854418520173588326295031165043075207896760543537740197095486840203686565013545288187728635342217213811909784284200196523040660559058696743980222095373507967956786276516702144310839585962455524030057322604863813378255396638625956975066992246673931922212105525664537883127601877913741638206867302191509180653809568953294792313148207036224224589873988311179013968536499717856825844848639555752216366927196261502550765835670065591582930692263587997024795890520749980562784707759917850256859385932143680557936739024945970996676214916020271057297026591541740492198590972573809356535861654952422751076129271660193158107062292418253137065072322007566472339050944951975298936624857998842097416440213899061061049645801327673916766847184363883561018451952533903671395554640361671134192868298530606834889102197146347908962348810957401846945253012125289172697245903333336534764737187766659797559679064231211523481381375941099905242285555766891919283172916889610350573161199106559865537259859055685069186020444401568644627917058321906814590948836622500584301691248446728008645180476536411141295008746760092256519349920437092287909246838755884364539468823467515807065058980130370510085236075103275810396629085621427065919134989819538250890725697008985734869091978445527346533791037651061808859054070812343734540933052448229094697844820482289348043624337128041891065218837204040804334121528981602800967471185360791148222409233295532249754408731030481369055970538717790383062375425067153085174947517678035242364905319458556436403209294116183584090911750512644748728632043455032136457434593150996882771466801943415100097971281832299877337183201097146483994441933295457133461664775821828006159495906558195629175516232868871279517620627750061123281389299741997381709232393570875907629003068936890773040342113168380914609509509391959688412123719685603324362490820237483741924507519115612085105890239972379089704365246251770949808813703968140548726631726402736772507447303476045368746180076367071182484610412705104830289114441408430387096040282469480713206215566067378273775805590034730137546768845395874699055199888575855709599426840196648701054626447051544038905734062382891007214959089582705182060151498976902626015992228245964238673482584260917131471434324131832110660384284099403251971031155950282779721140331989712307905635353552636606076916866166212823894040455613424088949973146081784891832555076443592213619593163089788313006506451110738076202485372150113361892630682014809666454031391658539999953831977152300393916985598023536194413257150501797301739249892631447845834306485193493530575333553240872007945199000049836535153068029241211135476291660263162372142232840922002661329149842664200824651934403173608082037795659027866347745429281271879850355478866124684753462876019998711068924527573052680296569433161916237115505892116086148123255610858844785549286083919959543488063976326199863391858129655440967540753873227860477850549747427102242788560678651532091833236500064662800952248896228515126103753484575622104593902285074378864047689460423569347021981344678202673984375027104567915691278333415723971333820781790640943098503888320938451819235782403234759140047305062446900831892890716082953264793187543996739064902315001210366031054256035436968037953204412683347406477556900088769705714024917057960934991035282171326274501534056002720845854552518057975217505880511895693406276270975099413526880930086906907951744422135118532024969819170853745034976051719199809808404998368428629427900152076567887866288913562244582907024231822082963545970444651711049927610833773595802277136616711005746638753210271500819248218553352574836761895804143458412676491875324048368119700789900352552634922721626110922292503906294279469956208015590209759081159321913238639614939529696731143739499768085031272054678424981961955511195293678515265981379239335244691118645340023169451084892434669628607057754808779526731420471897295146489575686318519955057894234383973850051472356285198541358914759253484081446021253958271126684857873725278540282893637370843632903946060038671143043733094226209859084200871096602462367388515722029428853992163506991489961449570567891522926506461149910680301450579002789188706908228871688482778571646981604375904111387938033629273311897299465357498639907841979204985016476186251288431694869550379858576893275566078793688604071668647340872134933203318569134961925678861684851956330349969860426242719325621849921073359962292334032296289495587406878108982035841272298938620584291086978790666789466825755290127561970884996771629939722522210199367396109432048212016854453924025796253137417158988190173555434423784165285070786946518039156026479739352486717612495920130120862528491493351890892465646591741371583385921296654192117546771977728276175581088450336328578004053586142974568032173995938843244349655004501359435905704369776057651634254987631896409735345044860201993366098380883866036517057197152955684055358422707715715538260571227632058747108535292605912664664328943188245326322322840958220248673929215071131303544460156957099753724986201040456832463947500948996418234329647087985682189228908228124565179627952106111545083268148818529755119754412585794018217697228922175090873026795532078923874148886851246394562392174976981234066792637778189556817829020059594943682238469234391168674243221772436295645095007702781353414270663551899971258184531637846965254888338186449451497246249708214990878280980854360673675014182855435585659927959542410065620548699976001978011726677561686260063576475744868976976711482792739528231660654565489981052747978404647368395329063696195355841260069987016069798482710173365356967578557501037946718287090608277152785056416616245493875048925267031636032365321755066005495539058754913742495334007668996787962888883815319290421680582043512030272776464889338206333948923056409551490399477770539831003066949391843464109731886308945268060872602625215467584773204720236911649472387429702140513633059863429884572610062975430423385981452085220333763284873051377298159117566580120596809596170978372360349214182345403033593119870384457604816234948086642731724509172747297018689331589711340111018552354753995608867113149247988822482255427973368597318455597568256036884300171880561790658283825373772316112135720369247299201590058261338259345016465084105618621139350320128957071265840201096292853052082831589098210093308129303451183337059799928278555613733805431615617652758646260635981098078148942358056234630944123486004473738221976754702983014471232932003578567197232293033454202925705132332010401188836367498002319754625109277663317827230284490750577600016639156441366462986701991559356103123631178154545892349991771402486080232984235579973661194482972966059350318718449826592443422133023326894294171468760230480969657844453266783172559071750241274361665172544779258289815126504951940968227337106536357404146117961042773142687483047260737259551914671864523055267378413837746046138380522196957284852760607143161916980443472530392031724412993839752782599409772897072554989409547566609126097264767160979607209546010900173597626917372816296265854579295017186938681803760229550551805959287495928327734355462888193661396406795972892851599674647502514219431349598262932539457981764474617747778564833033916897110555414603946496738300482184895878068948628428212752949774922675569007930697902697131188949516026746011828792524130390369123746865462076522700998886356201680185880724097766632837441984192511527421580236982101042356925081443441085155427678466268922201972455348223328065436603615530554679893697207072250814351251945390850454291765441641815118211328179702021841880508058998192092046949971116712725904971994342658689164642610198386650417024020397233071597942310996574546378367723620626490130248640226731677564757415332553164468914931328416515286467843955497184504259178857031188624651252692405126408044070368692317616391424487267553367766209737091151853663983153610556517102717040437315350527239353736699040686232918116571936310633887399574993055012770316866237981708170698731108343548664412071306452139106020341339084858546316147893497766876673438383762282064785928041953577260874564980690956321458341981750602318408012532887887039847213168780697542025540027329933981505214651047999784352011741731982503983159470687561101551822249705838940939849366626347998474809452431374845916688541473001166982983783949648158117140451774059801409472491427832343690424755902202568905770920523636557490164673489098190817465419821367710192054484670659081225498593823693710558169971568475159945815032566873305057833411265475675195525915968768626081887722743870868824018242626418123666549208273036707662319058644715494403310313825318720363375751297535689399667155382065441548272795607168909899602045617704290263062769105732933095222848116571828481243637636344254839987978178495293410392529777860893971523023542729971774338026872231859286091809213776268406717901032746089089771833593296417940225982971736521428859788391837567625101257659664104153137283792046072853646805996055147008515639783357173384103788772078250286536322923921235587706512009719233807689688264862342048055838204172213915356832766782169002339469113732556326881740502751205286846699237140846265369253939932624089544160747789284059889237375331331438388812436216762464410220916299378224887054114945639781835792942447683512096471634604242758213225954148074664404290373911006165186959959356723316721637676368115743874951866523779925801970854768269207758743783788626915621946300196104338543103643793767898083200185231754397393905477176287235277655325730606600779006115617602754673862981257255393329714947212272395452444197702003661503122370063534812477588434391569173676154191273078820708318517089319587335007930155789234440137998212945447700762505316478658550573335556008139299091816072559367557394830685299411224338212567854981855076214445654127601621299207990221845762535883743446735638386503612147024652803339222687065283611485606011292699880631915873183630599670721539466957139149589739034450800984538878385946906823122596313107699021762049060267328225320353555386740794386449946579684760676353033136366000292120808898883085313901256351377960819889755279855004474997020440689881451946028547104946401381576266031525160991525271740416155815302563136491957884098148428414664352480813165041788864389250289941446058688154035980308997124493864948727810963780786646011442600816528301434618489017835418305096143471572353498358440929026489689373539538569931689846600310130080632056710566657998236933153726630704508400706054334621369706702264325232600608371106210589231719652618411568323266841169617836998457351392873068154456730025983090044546962182394285660147054187553864805002987582974359365122087429775730210872477746942582820823153895274735792307397288102336109838638780717148940496398348552360167929633795466082017192043753462106152426960338054810805468965574672320181463123651230732887343380859562290575234148467553996482983517109195800028522252890337998924797054236273938815104193841617636090674993826713662931219255852859109618624791715697727146898273409035285982578331350773045073095460581046595619545290347310299361670969657889264399728457060926405062546645831334202900706461124357397906314813987600214760081229524594145339080593647268681216980215093811338712599445707053116424738356502001941860908377191095679687459965052067945726128894360982273860487586606163514563129723828758622745477996402370845008548339587602848551531057035427724935319656643823554232823452804742565734155510859522804558870870821182648167038754821211991957049075423227554962266957529455147981420532290327146922847853982531586300823444652634609350431666998368433994404450933167552191529439718856501321122064033884194399466849982654268876687925858262059553055191636110941433479717707165687342002851964467802833703572618590412423985677576116628399049407628219468056479833137149675667878762995648989771373963729646881241283370335011544862095625225384840587338744156671052101446614019057753846882355813650420197939115814039330323720077228285927752861460964187948533584934612448595014814117423132762255455949309369664476280296369409790808957596142796774180222272180754973018085947947857475904733763312813452606562007031865259357114757491370227134847297415005393363163928041176306307116269938487507245621812234813273363276986817360260349689590255965901579734394901810714996627932300786730917294144852681253877577071880266520800110031550806414853288619807554924151749180572522172716032039324484589035693349626269310857812097897617652131574956744638632849780732105390085648288988892861398388994961780630320707696011667867671228880219229520652289709193214877436567056809042443020887412515021242205299915020148046848094718655309140053832786950136017248046887408008817575749192239637711025908525127499345630443401751006745142348735256464408598211837484405336257197242939366592215343148647246963621446084403749614775353925869862757972704056084083813589712083502406565491474217082576326574291105971673313951352978648285929280540498142937938993582583156055555273313757718345077887028315637355698927429713484932397402885598456413900129462135057223376764120881336575150272883369550159261852055505799540248236329098628274621304277083879320931850548295182067042966114815169359651292015536385168509347321044739934016647846054022692727574654003504948858797775682963882716054070743132221776104190917761216336082662376711473331250597068709860613755582029208576848229593048992607870158761699220319297582793020852586086270352253928854593803410548070134568186921221027826699992063607085494880482462649455306733196059938978122065137498722214655577751297682104784053710526770491209620755155612461475409378276881897491024411057458311074132404050955141809778443268823932644545226475281154283706642913782891616723769563885794098120738749399898955915841586406652703550858398715201757080437935032769607752824847041443006566466597672812213440961704388104133545642676502143476772894546797356990726044419818435751563698803578301369472686804069135947725740969520777395929128185356824961939318306524440611246391588802727454334864019296913338488922269582673912022580790213948450058947673234341948337799551955269171101767242711205631252310948508312288522181557878754443813189113706528808854771636367647853357671958044605026514098295405860608098602234090720486154518221123454582413578695264796243311646313620403451748560134393353587056967776371678682100990941162533283846665210639133360845280095315144870990229575338338042028004340700235349958332205283533196090144884394892933382559389477529045818583954186210563728480821297873448665645707205696902880696026011259672199960265918197818274979949103422145851340801159315240931069628448624111319417429011238562414210835038641526324977573184094159441617868292540731829717869213944901334954874633787988584149623184425977622411375077307406123819354933452646292063012358019373708162577216608194350083849495721421111744077451665869420458950214259639228363222878477407722708762605523288703734297461022585155444473008449506608432684967618121813060803675259332337640889051624254374112872032647122104502569459846704721627130052902918039719142822820767817959628173104482405681751311915946687439294832346104423373236285391350262902478860073521064212805419697106177219045579767966473332646819552707034190208042818526906439624550312864723848579708810032096361230607514505686709060467475762774766354235025748435229925702007642049276747429590741965027495765304840431585350287198571555710925192191108224813739428346224626866193063228982508354607724712635091032759961094401524076358787769572442606654248729379343631300272476972870376369580941193937804958858386652209564007693672196142717050139220849924379241856212596258842067848590627670199464223909467657761741730485247624714044577291895845489690432590612909407203628243187984153937371855813964055721389348284219614259032363378278061622740328533284311323668345667640337691022987284736585645904835606950866394820639477254047465903996117924130217949398976743540269179317630620973950707085921780547222804862230329246671657812562784705923205469137044863628623183033772496764146297578393464663598686946617740610377669708803534634764786616013744337865428408401940813708146347194522051483243318069019568520992612316822202984787798530743219417838003686009366969687455366672254577073301917472862019296792190707959625162847312265338804921967851748970332951501058031928595152030114929059574318159275018998916211240704894841143077686374119127755895712748422831528548670979208100936203603171618039641862690438045668835264731475898754396059692498006913203206984486364246956954847104520974276250489043427417663906337322290305788756974455510548184898998167894939207893456578981467547408431440419099767421536653862325950327210556432858500831628561566882897180465225543529624684694705937224963014021190034738768532256432335972887057147252021747740449081574249418188008377688774138052430520806528531028893830969717742895096998534819066017183539235326931974644099357738234249115758260353792481098582332090101169743992381306097447733874176091286647744392558483988207089134379660118419210584159814388481870702815233661433685280406017663817524463409101879078279415544762112844902219714213825081696629038461188878390091601783895384480329711896536932455221264772994996689171671536919842955174958638505428709859642209007861596535353449492372756327305111992796231973304785732305473782030261096211077764464647120086874411105495059929183707853988655547327009148430593559768389324018098614671754214257118473761432318982153258949128734522871443427418088565345318247045289873671325361416894476075258187487797837719529781575851454083810955097997858063857863793007867957148375554171037099799995139198353283232677014598949216346806242178907836175238609840616708760396737953075560152673635253408463750771317423179935912135462055369120441388114116538029946431686272528378166894552500564666891179547252135204258522300838626456407314994545585016135052396182669792942914316585908819177597261044816758883454079767944648685291301410650384225044778812727760818510331045952788171106995081014594331171174144363955023915691921841912011377254128885118218836714615309199619729243004420431116270356642759536787446865260538338501126557439886008364066285580483809358162379917289837018033546985369439889989181419955398445446647510753705581304877016490926136375586418359101662495492368357477245364272235291611791532871794659802825156385144257978479030270768825841270002635346178944207260788217741278621345212217511904312348371303719487416525190347608439319118936375007792050010898996629624765270597854658356175801420667046401827059137141472376251944556559599659010832665499359570587203734364109801981552866071333131459021654797733631792710121985345847266124272417965220156635607615214541520064429445284551882376005273946527322175331402981175001627544412072014979542346930169630986587390815031100775137352231244482251520629371695797624108312133454072125734025257759210794333398423825729035840548741401702026359156548107008351795673473673718042009688203834267200762796498508549078516666435865335188872353340705254748504370776316647240353161558352378913954918304243709194934903423721701039342019912218280372113227966782557855514713975806244015153982501606106189010310476947303219441022965124389501274684233087058436375506013093087451777554827119523219155082817230302802787454133771680279782642253727304163017646624714986441690759558170981186550906312313329026285615201730171286158224143877680993858010912179434674699241427782851919634865398474789089018280492123207201803596327771610788393765592387177769578079194587359045442941350076533102904854052558073539651142723807954300771333621200995563566476486870863178756818268534429661318646504671202880113391140501433926438826146320341987321828627786489741286234151152150313548821420604625115272862260330371569110516479711325845638385296395552082903305112940647662158174808583977763028658845637692243421190967177745913232776575802472886567714620803971897600900430864931024406050996246637972097148053821096221602762688148575198088797334871508234559033380339856889644305304989527988843612770790039690979249151225560359379066906023174899734215083010390003938278229994836261993787182900434276440091100466435305178030876528214356178254812997552257418825685064155832203954311640029307425081473622367131798152416318347822803589680863779521852233694601908344223305694918523856252588977361389808338316639308770026372881779758624111138704674303693477722391911192867594862642945320412145470951892743847541971407776430943649573096467503903456151792414920526613325628843829193193524693956298190324309543027848617987660285832419741197099471896147726680648043491044233988342242651040076448105796547624639689866721958127232045374303393892237645110404315309114183968736537846341450194148521268300626922988694919946852545989320122847641436173219375506012714509547587736477435055823742378080876609650852824201662146448954879494383143236213654847737466084152387832237494249085191295031456969566143375724148339438297878628154278703436019289209897394636568899028152062312227778250146253502175910314246840837456754404476149280317312295103075457961084675253265564066005294358875481521622121723076989541303665366779451205243665410144044186694048760135112345454068579154336716699403536295350537298486182609278117013920480325802532814873943787683482976633438881712677734435993593466653126098642697067480545138688008195409207221291633001541389277871111341837695562412714469603781604480749553971716454587672264285111594333525468237812491255666361544432056092930310683778578708513325619064825446672054793294207803020500968706629772454256423418161128553176859260854376905529972895906755157604267068768187521498299053086131146132603075865454007873368683038194251647574059349014983916127905800005012997399604239524248595946754675978571077331723094703508387758571142835188319062613607924410589232675894134433450478442142755945921931848900402311022095402622627527646669607043993516037048778031423045027703454179659830959214430497545545795292316651451407575256618466948135127014199105058915962843152560911211109013253612910541130778974142737996714507470866706348070432502897870866588226570139709532726812073591505172000381799388299510675537440453369914994551582334687351503978571153194085891439339314329490959319608873417575075675045050655832305057522947901676961262587345562592595955376525959485571987853696068335606205608668132583930143971170401759059789786955001293512266689677477662947757954294291605102774116624387661663413597008894869511472622815039807798054256984269965055618660391728803960589421997530010517613712093165002576424098244818725644928207870669731864709166008103716294742622932819332428360618584338365686207073766553209740498565360772233273370157943329441912976738948903944601501100187169717689044272514424447914756812425727125889085752409854778740434619875886174648637529585349149235226925749624356126380968882534352896603826425948348240190345632953580318689452698526006926727767978693654340741684142397587971615365422153140486895118355035274850239917536743882705428555021036974859919138530519184933165101638255608164575661088830431825557289347796914007438839813864454837185786699517641352741967332837976399954701434010840137060719212486095069175782301626896813530324372596952643656830134728852524144254459172647773783059165820548704662319945338116321616948887619177340052634233690580914793000846773256085081485283466284960938196858538464331688711798206143369535631202503483337194346343594694316540474786864354718461993988963816207374472423098025846211236311339399287098934091401842970731907720205869152459183518793180807485450832904830486773985034210171976710114499273958821592582374650352932142780356426152277604449124911653683023921378431253398405692456072743424923273252277115187540697785772727216627546217430748166794766169100742135549459273905732328108383247924798626076960602660076792774509572429365485692429286012234561861291141452066830645518452808286236642013424566820832653996886000461106468345858073519255861479256318577964762551549687288982343675431738133456287198919771351571420621450340074581510668107122240029078841146609169960733056597465875885502160548867959486813982207937336086247202599442039317838555540338163232859708713524057106271786781585543450354986891295609935769903683537394051327831958715969847614363407148470580557928691885517085631068965081850736359774327133791017208917660927240201990816854427551330557166343118351950537241009192187684394780682601294013219181805770135452087692994047597538495530456887428545482518289882356775224999247336397731473202627729009115086146310969679518084290198024768203622486295065487109391880536223231457172625980580020447043216478215424402830550120383203676969806559201145609408603804067461471139993409230624162627351730488506886477271125650760032653932173686507651005352441504505435719649861940186647231762618158581153119482678471422171270383144738815339448769237064035717733525630679851168511428018853067378525018348268689035397984618834904649896892568298071026950485435947389407702654576165917412071245671754051422742009522928897408993283359841617807370402446426251917080251274040881668994086973484765762612085730326929587029024657034464800054225615404077782668281569591362380846624024591583159918192474570761716003387324502590108377718607483306160362036701072266527141383041830510081155313632302627127396666736004354813867526860636526165180720961065725966982731762281621681681416169550419125847319319978620867109051406090169386474970369337534085861980692095379513739438552321327038044040364015893691574048908562960699903219449428517665754954355496906694466429433833377543654142572983063821748647292697663560826162397165716490217019410760124749519758251766878506763416852712936429002877859408447493306116179999988289726246647440152981802013223825645325976697629122023117635166397556677857443378626260881533516676476663734437567057906671171694775775123816633042939419600479672128618496870806073055618270016363775940459650054823111274876091459843791618780775421858167489203756840369166514842354211838906921756014359678609639007269985811447955348773095411445577928749887183619081390406422607724752589636129655284993291612743684435210996210487078842715223462369048304994224126791758513742037577478749957291699866646107212890146156920293902569807450520099974617998884977238374813333787923154987620945238548548938457805320442676013192363891117988526483106416562966110006219202295293437955837496508258789705039840640292287993062222816038605878758851674201129241746168748611923668775775348297038244359598596712921873858786295203259057801937622290190004683593789542242875944482225790998674289837231182309570875238364877551899129265736459725113054583188552213977686358666579129331381513079738686974076327996509103389613561183898323424575852561551656019263929973324006512812832283135368499121083633609346182947973369983742623595614695600999610846027639105123045117247590212756288983287176247684374503972856670287101194348595572798818973942522096630117886961094763606609740911106801428287519859783380123562070865347510605223878979892192090205465371914262602711331242850759571736909015705164250208519774854244644748684933480094145898970871909975269645115559836759818195539983019861620978364088264914582246914659334437010059788326231584720726994086397822523270872806321454657432810433019634677431684951033874561988822701879838404121792033673259105537244490619222083402857843963591848607473003179943135843097817964522214259378869688044800808988757490382557060137523841352460379136478873563883717773901018515749096364491800444543877575015804028420496716979809077664743298819328804024755777607239862379637535456301813204025333074260583845323951775133487842401423793000496485126623913313215695842359365206540466731679005512550488898003401911975629275007809608601579302185734975742219179340859348107544369948179405080733447181763320460776603064963787487119560097141604086735535057604152128826232803059727580481067708067113878980573681977416774349780109989094978411844206091879732843080835447427887652683119495820448425107820941277534039917727577186399338463086403557708562438035934994301461007301569337885895851075798378380423805564020041931766553616606542953049136673919697296802692986916935894734429366902188162985392654366052703591459161198477295395192179986987528601687538178498111984387679347930413064275225039109474990421794491885722651370286221440098337816690963567134967156093116061842592706826560953523679013976914662617076328854427090624277730535484203608606550159269435247538229045028338871999236404795871023572804202341740836975887789716573993839927686008077212837509045943736687444172850525607955708167027828613781684669849995964299812860547327010354702929030158855095261859902911036204772461690540430469772964322714043639902078002847961047573878222684498759398112235346744691643263810772220811396489143598317784810919884152077659848180882730996851042120641834611088755062123277080107564478445376712085761760642410941775787848169456228994780235836019106098608844552364671563087862138172693370300794772811478752521395352238768482852830965176760650702858260582664275008241432398234536374001725585163733863126416389874367621755648844924456269156486046454262226191635300053210095577901505701706735542646637976053791775810397862815986706808607740826832302222931722534888216228190499368453890277363735268932084613722306483636021746592141228168767872407654953572360160080631419929702648578093176759960794789652915055995665999214959892538643954299897990186931903382627993101620938687440327189261818907193856933223603810356830330623535946222865622884160226871356510183776669694261683482248690970631643547104234025294553558181045028208603025393146226212296548082871423718311213232848081967806291964080046162815499070364534496814325302864294508967715261892036027979673662315676223210202278591761375861720093406793430127943442149183213557484310012831015708067412209876969604996305364714796758387158737553441589939861358056953066557651570630744648899666009608426539858914974965076543452918635610583425503650704483687264596126609374827941154783286023287348243981373423462955457756796894304742975484983668192549829671553512973712540660106234953610969976751823541109464887793797714368656433531588032263832606269764896733118412534608803634743993633848518815568257056124720345408041127557321891815913242199624951392235824135272672710887573417544785342524971469017980423329772330995742367299947054325867310926127689804033066337276560032054246849452212607957644823551830336379551235916803407940010985460614976145360879274887077446614868664278520332858600820426115920652523343453152760400356414725736810222673506953393591783047484992207418609362010489362111853332457019643061869351966427192600703189619574664232104492140564637550526026596128834020041323631818280029002252781953717850103877266932450261946301235100495234022297410852248255798559733955306799567054715672988900249375796343767713824768964246248896752049124380732964117123790981514547145655118959456745409697232686364281309850269987837971737443699463377320954567320570317051462610613651849922334678625862582824879781146286624360815312785384296966497651826403297509368836501582968929472647721374479812904475904036177690466400780011251640945971361176941075398629551036124166140773951731516611832330519105200041492384969391804358242587239549761774343311775266734066829713849968486917887990911971685323948237807735948909106257751903039248562911180909553303215638994377458933650205288821249508654180530702675159788751642426548409873701506980582515099644877152277528567650231515532701165322236620166405747754923303712414285455910170734548416295482358522166052212294982455391846519381503843464777732282368819969983056931368465230738648238307547754855341051856735552403969390223662493421154795664022161896713827722818900979602920259839628779127319480357770025748122270308855632944879932048460843023836994610735996236174793082695709055899310089343352292762014306771131865225016109592324388642349392537898273837804009602435395746977957301537720771356240472338479850077183534448520827891672814370925890942835496400691648019321899407795689404325022642510605002290456255630515272925933626065556639967532157400477127187121289345783379729498876335521977893402840111953186265157081664752098611514990283944934314922371276286710352889921116281863967431579092715120345737761441507915078277097095974433948013313342859600397203249691113458282323611475224008403204779977382162097224864617028874564434443833028027266408839765204173407330182578949356719843456914321408102068705589336593211516308456247867933175518796147722475125747758727429595537488943989143493187562869495800852817789698294134541566789978244844196130698941267370299002127170088231238700639583418965733360455836627514390114460732945089446589017282834449301665491362830946736182879898429755364240421828915303348863058443224122729281327889937648457285936693420353267701140142863131257098489455214271870855109353204841727570487239647470199989442565186666462031673779579157380481163911946682331358029614561922181790630289416507377408581543593340801692235993178549827319074809879702344518950242901066669850037235344537257405542569904186712915582100843778953510731120866739216732540433967403044490313821399768568316196494851380314653201690654277635098430905037259612380628968565679118641150215419633863415346930584055998885794712378734522809278313466515675762871188530323953075957764957180439988243162580902301994824421964763432840200298226588086700008434065005795244635722019692791605647433269216092270952157508077421576108463914137812681389427365013818685878014056528430081240625436663879921205911086613984966135563117565850741674634210869854519930560496765819746201661388357123496437586833512444088144707671412738969136409443036899221195309139192037175001732102566814171301501651290430642623284475071841695931820032196382621637931914377766715868242358789350353204695109093449419322477630963989109307340889151181669392448352052372370907392047423432729887689828910855580750198156612922366249221484605639976943647334887659227688450908844923344720717392540365532386669052263735075222698515179435198514022509312898662339713308210785397832045802780162435647446667534105057910616206243544963610260132307910635363719909751667431843786051521719595414548387506993484991646540274840572479728021358252811951279789140205116724608783243243778770008657919135124409923442558216274930901382542850289400782231441352029571965266925454681334331878912244640442835277058974775692629668603756830615403725784266817407301102624265735529974839601055217535772505552851713581627232465797127220337273265140680084194129070205350621241408525139779600476114452199397202984880496583781785097203993511435731841877488660498088540914834774944736679211451557870128566578034006406361596504323959136048492666809235688734897609187341782725079547825743540806444123289692227759717509029120188294379217503134153980139437005712351111878778197309629640334771636171332722264299389470974249119287376281150488507425562378539451393270045412578123572081187551909640030979081941143506379618078252816385653475862128734616984423163609841840536077451804430393960084734572831746606512309260812728659452780253378788781463994758932145852481259501828516642468526529286705713846850632640837790958595502809014385962688362716821851419339024820333128569756599934070396699541896881555047327304089241052862697352885717727585238343731503876522362313436730069556039429279711100953209011642414786395996508720956710943078121286703321014987527877987728586368780246241216417638137546733619246370004450535505426642116808987420989056270620559015750386518629816705629791771272819523953080737437204911965317292662555864693959209458408804228381277626083088860115443324344500863535833316789015615005109316454959096845641353006204804013499280231736208109704195625219622266605947965558314487488958886567845403808926033699375796897511016621505940613563872195200645240320539547820324859974324629296516827879455774761839340243267869271880032329420215446179735835950964241446782700275331167537705918808012574731637815263495877380127152517444676061435221278544760990300500437002564671333272906551025060559922505162895966916196325729448144630051877647107274654170165056999175217503436490309055302385359724010068728498069935993274868086607650277559646558324138601993227794495726994882169942776253085375618035560486987894060479188742067021735777665474654407687934497137678392953152925441582903503795203964974237905104325003769922286696481489464141180395771228924983874296283516901078610476610629919449291606949274384995382262969220979442024022106769119493780103877133911511200389056321970640286419790241807702574306595696627351826051474806397568464117797216221601132911497821523857836329957381441388283669618295215564888332091975022951749685821845891200354882042799223706755561497776149449241476279087446903384843357366976361212377803051774832337949246539116944347564455738644237668905373441075605438692380450389033131377723836807250963725951463145101371197643027174018008870014083165151447539416921669516368464209257950136787823131022074938222658654806444360849802750700983159745189544179426573723343943163202801977010924012667056787015494268262778256785063891529065063696552413380114598208401770569023474156463920513836774218053581837104850874092661233600391775768879588068316235326446811601510127705378176144450153992594385489846355159539200850196982885823806758252982197305381019230525830693583777445549121278317452760017301015925932886859030570162890926668336083317904565173313908277414116048770953885889534310333374877697125276399689951036674339182874760158356462545240416637881785738296827090370730809162886805647228510516575204922987808349802300194844002729469131840039229074169690241010470239587857563658717366452205655235687965010950914091046908834638928137342771888877563712691851162086014953873955866332888084804774674419791092554859350213773179344293094422453525650852444408805672359918076148994291639100255540831009950778266258741412069818380315878832784835888324750638590415039797674490922292019670816539789067505066763268994280758534822504824101197302618305768375427198414843877577181496933785543494334901632600329606187401400643075074502927217456011056759067386850211480511608239575236867893007606275216407065474585966736200707912817486636123564752291907937449263840577635868680651557636301380215999016004282737121970225065837378403607972255455238377212170813829875882365787101816236474066865683608637900170100097685393569870538196119228103937911673411381282857004667364775352683860651316927807120747643000527634865126376410738678434597594033731131173227252659136040422185337803558463065967814788549951296832968900523982869263973179012144933148159856237095579260327875729245545808174759453814335111931264124013837189240836207125560126724287692792838037653217632459541380633254792492316033321423160393561730039536837208871147232964206337425330409992660156080573507407594266808355452435687136723313916289680540132095059252653255143778104765035242899773044717831463193927664470969461617221999720326500218305061330059030654872783396575159591540695529764909281866692046462680981926335918199841481518050984530413922765207628553420467830815836693323996976641062461246396824902126612478872402702901031284216818210475610739901934156641501759208690040456185363307094041550542663879023767257171215165028920580550709955759265604898675704254216398247964695508782345619081428330668713212956717238427940285058702751187584140804702749068140305768682117832923775676859032308273932655655424316589285164896450926940248233430093444926859131804766005784188735717438054937562156807272774916125125757696613719551009171059357028831217420815330065801085487569812700913016598214893936404157748504274763349866438700924003105158845015609725047677854259407030856079976531315447588919463976184334073348306362986067820278630733153740940528145078221299500809284361307045093588717892921389636591405571641843837425143431285267265492947271944634192286728385517446481520610757750441674260991152624055931185397991813854654968681448471314475002885227676208502503089514548083014327876402951711679674134380973525735719132160095931513615222021543115340030091365840665589800126500014497095412312516464137498452291350174118025227997393078280957254595516035941056311930362513320343476209315081777713955860654460874612280884614240805487117303658349691123918034600078157168007987463885867493584587677444231538926476244507088925491784563847401191328245162653613253666559933234052932045150295114409601601126076338297371845063434361712589615649321608182609979158291173585491509004384885056384849561458882812103182238582567208111389149768285186718680156340933992867310383894554914066762727510054835046809671091638443101517391860335193046157583330844747383993171719389541895270132504986271081910313598072116230618590474319539666826562604888582572001789989816089077431459340655598823903786704065880395323413067117353315231175385597224233651911596895406022576355366458736002609865834390462545416209154443794091284153739493651871551442492050309813818010805347310536288149273598707198889176575639585745085148319500957516648030948682912152771511232175404596243933710514055002444103174318610667547981493503271341837802149982945892992540529195756298269809366655625297937101719014749601608697858287168904689702464314697397523456244817445541231012923510611170616028326895922580778181633061468802818815604378289669983176331292266308010764925825190240430189781550865657983974081749980446268756640888419872772213565334868303572026974612241557376381720185723279037382221037204488789049556010072568461049092866931166084910476058719424351492413198544272276220440559780815310392411493894013172498099664445407942157254923460512090771925378351911531858420375557666433479109817963626652170857811251240219348097377820699784175628948508726723316704494306577392495741012624285946636059178947741412870344239557285649160688676072478852508874890003845808741476936732954639014701749801770367125696288878338780876824911056522210863753966446184883979423075526369999045597872348884007815880537772547577050386050883777383621745656508679703350677798119872168661487072652736432070410086281054189486010897415359491479520700469425817284570771058727187574489732603881364823429910949174448644110821256302826552575968307724752982278268567830275773211284758624153130887431084066548222405963051627851844335879660420497442758178982616404259899088293321435369398305131569761712034023673025818337681392617448149828829101284511951653565824078616508635881319979107341855275088241549540454677333658974411565317309042119112006174709648190221527449505358134108954997025167725232563500411571320974728498848649865276969616272269371689387447148664079803242344097438052255727937229889701416185732926502207560395963521976078030744885068940213852277588053795593031100189805671486817489531309649078650420968329803785349185947205743980235901762421568911896885931865428033174463999088607321736617710277920200464464985830856204498076022974373412640318066286756119201535433304905295573185838352668051087316892852121133862763635376135769715551683410188885746046717703373272170662373771556855174398079239406111007184666153304888755780390390850793306962334636095883285804917992157020491148991276889886131096268795948573933174747672764452193765314982609448316777315536448157155638192304316209671648727980059086820765121866703518855146354682298174047532824707434564529209842078115361883305899126030679039263101691995229006992508820420008458274946569439658582877377693577240491612551627421916987330541902633909522144647506134612860237019313616968922996765534989353590583875820325560024128666921177085990172700288041389152939147102730558713474003476624742698341366734129940621148688558206604345263481103672818649652835798278274176426030081309442794657353905194260792338806294075313731693049548814783652628210030484381093640254321713164200064847924819709302170934275710362224800024011456605683180773683805073142593874528767790833870236793209139505464847398819592779625678475845815281680837740651686986720185607017532974283406221799341908882637930598506697960797572196565640215997601611660242993697630835586909280604016212851689235100147804764268836322676825027281159911462569777526199915578769179974906157476933757075467296577305673000629510980056856032959224839275696655272186688143719768649810880326121140523304367397169104825517474224034167429791312711492889630955427588496189848826060117293713090212480077784343163978578856917069590724810614454051169955140400509135851719101172210541695447856719253765495939961635610677209136537418625327798717507693830673498159172133520455522072827092056958705108663468881276399835110816259010311254209661063003343144003783940703890293776094222828985758490041800151935270713134247807725967171811236924206115581705704417443281455710603112288746659871262033752991033939183509044791408004228263901855428772086517728923308374086640977518287261615537565416733915420542576835281265690849384715286204494574952606806094800925914638597502031509942407263308301444826339345302265079584791068731703830886726533250249042090944712292169076250577283788467871998558207742367549185524941002882964461211320519236854585714671624716224401356777366234165180227976016301670545170684333266187455649152016725925579490283218894528591694687545135351549813836687705989232977545529040871796484632988165528963108166799716930667730289224411869445660280515037984169591739427864564568437216104623435940580972580359593126167400158799648884727272891918821086650467970066505327001083066392435261729398105204025258644665278037891945770708753663698000551511636194830448808046402583045970563250942098963907012030971164811337079213612214624934933204704883761409852670523750870027373675740534705595309569115064383327811510428483948903081967413066050691937812022992079406951830294588365860437397825460176296427737849493934092955486284775409092672131403661778650259038664515568417279644354489794375880142205660787226612424609386122762096569657654511079261878425708554220876089267585143019383182439766416158073273068679928671773352641165447294617260601085933015814926999674649835772016208308420532316011050992498802957248622419132652753295979902335960223408927224204306955004524914559280491371649409680640432887697189277031965729659850274175082605701504328396709691597005460119246270742244217874465154413012648734001805716238159423581418206694159913306793336389079622942752767189883325312219025579206831177214453771121327422052841708406244895644352605596809542108622785195982114269489719506216982891470418423005233808954308806454380002275903586710675184133992025725819674812409995688095054036102809310124487941280280341374014778577960604207324963760953879297286703992059689147251098625559889660951995205603970564469354971082632248772543801012499561010602660406913616903025366959117847148185249491637021333094740387468632555221387595469219417813063225206170192815201028498142867184332924388193365644556975977924342736780315958199804661282567427212827246706101576440464105246274782026531605758155267887192866486447805517337548004874234067488406361684676933516706844038892437095573701224871585686374939863292716310766332486188252441479579605703322412709623376753515950310781748600339176591574554234551559515063665077937540842694073690121118385148167197330439409718307713745040944766857910370131213517310078008472819590763776447671231055933114563616113832814019175041138851827313486582882158479220498030766289017595623521572491086171340977092059874652280847117255952513010583372383382702169868475380667859678190644484745605919362718776721252978073158325120974761453086311351348226325321540795768211018123882427256952915919703856135765635681448028964911345167868935275747933176156563794499279321877214624639331798796723124470034956438526809523629096397365676391754365426130750530806482733122542838939035974597694772261880557868250167069797140913663235387094212777505968221849174028691791362192746960249357092240389309764496823207293880283827172526923519474826052870613721329068862727420301287829941458614739766538820363395340992685345676614537797889895400048698397763949804564362257627514910784625089939814781801350915395297509436362352579703510158156821165659156787491312883358538276406809063296804674624691614094304232088785187719280802789435247465650647587529051000483465974836831819789101070173320817436028712657299149541592966949952832595813406325584446886096163523283873094406216058688455121759367981945007285712746289135377275397088198160386722182021177961195323817049157933728840045571536393197698735112581132611214656298074016643812455026009358799434992885002563316841225762588474412991870800853178297235945727580634246485355542419298504187661031839505807683230177789246453557011848038943022205191830738853208067641165280293397402353367845249435808394242749168549191757676140467300839865085179857570428137062277472739637284975777605439814031472903417104504851632146519837337112517062136894214877421727856398753819744569769792825572977530407217722749326548416276369139714481520954604102035178645414904013740368698148432961097385938512303318368274980999245642092686272161483870551996155029383447657044951092724140917991407382427603670363893706983864560660912570273382664047933203628926197327926715716070564538334510198796117948908741276452244305051625095651005699462158907111360488919509496939104186155280015241477988220491666140188276093015230942257486746120626367836716069775856522510262663051609684192989085167121425556082940904696186143963481887466282044175706634959268795712810732746251337099565167787572843757007574130726111868270462498366595800265876158783991144502788607954144707377933587872951787232267000205802087719639096690688460039688073740222271979358982673115734453523120085097699402775874278032670771478253795953434818521049529891267433314752123426460090754366548484866616752923126754625627865503427701446953183642883424400901444872971396647153810393789175540148288718627504535028056739364349557736543652967725138741891645153041382265414979288099412538970199021215000133181004960726459047994629469076177697376843319856440984417268518739790913507640739099606207333933523271574234349683027440089520454182163267206280310462031783109847744542843801581300053162123568482329823514382828257532411641051533402797430020894971235799199999917651012606108312033451324623286032335669118992275747513502508994775575582002088179082446628072282730456332626846636695235646643714910210632230417055252323892428873407416651286023031627326028744145742267358232546018083857979616972118521566125702145349857581177005001392974918352941293576626628571233054885135561867242750477247538903245462882333474940981987326478267454773350623257743654915931440836646653820202377276771731103477455062601321638298677590002317330506770242698755172772857920802805223936285358046990621947519939742099365062651038901721681758607939691352645835780877711623429229312462414645069514937143947427963787314769495920651966482646638079430661879420068558219597815220483275653248597034698699169294549785686817480526294285735586218986287060496335824300314204171285018334202509485360081297606161236977593904900753173208545359139752902412756667697095769606486505194070187676346377639617726930750204429578622078331696594827251834031193043027980264270695039400119339800104324530137897613070388492166247345654749547094000780852211852348297382029430654067910631227370886292885679721902054403335827534333867607690760977875301410135281741201176040635782139580395813258606742743091262469094483916963495415848556543913909157174924180164268058638123014427441680710903964403774159558283010688691146109375116517068395280357471829212165826839513365700593321025648781915967485390077311758720957393410329858820162018596946769165052328316508585898154389966540033430211010929940607256930637718050688590544973866656137625979103009721806059189477882258916272415705545397464215937099231977635308737383240271859335379155896367137193356378842914304352183446095668806432275855430186354051101842490878071572375030942091458249169645119387383862508103281798085966402081870897766220064414082057712857721683229304562763677876398946001659720053083970997475760011611773445909605990531598891736862122866717181970641074354470288262168121643154353617550544763184707342960896180377806662836234179227122298392763487431438765273386656777082309880836053749956767670866114888823845859612378362551708880842045164575056996597032057770249360521459954866209795109565834049532836162346693613785448001795671053647282090462085199913096817380267232072526343126818113479624726512310576568186131769066795988132396088760655543988894854945855647595140934708028465827642119217175330713156821217657708787945837748937009595894064687386232377712501897833440729298943056531534454526398330011332386921416662089795064772379241271338955322862140271092031127458658981780654456665147878254593479562967672024126809572211803113184556211263335900728980643239447363649572060598066248982917445796232597160972720347500627672300495301924998318403307406562690588362156263498679303576909031631292786409568991587670168729923092553351142133045162368044626870819815571828702938881593099607407098829404819207972654046333085392158908149779391810684550720797984813769985477725412572097438374030661158938267224761295458041791858514304219616835690852203425910423063554825109390842504405195780310376424842765253382663639235395868987617324860169174267926801808858284591769489525361688448808576702205486022628155528842322601432240928564224355241943590843449485298733475031969682218819889808829973565958598525274888034662046890267803547494252015701442342166134695404729306482453392161876913383831019259658139146650351479719571149288099350440202298532747856665570539848703070624807965204246526961526289692728844471942880415500161842496011608382776624262640381637346443636172291672484026847763334013095408947009869383226848882617742478073216720797992129997897711736724306904996405332452628286612627510161605180158016165782133734477420594764545398977220759995545957662999601583716786258114909400371517226428618565854796516540988470832244676566285125355930514529756808366637953862609385708826982118898628204307859754650923557815271892054328983150165108917206966863010436729875602232378995199279611620623474335107533398027421600707818003253214244220489227934909758372040034666861236734283884469453866520212258300960201996787044307559399483361413815418972256608261400974774197246758659108065839221544838455171724703530176612515636199768844813518730205622395703496266561201579909069285323894729701450392236713151270311271829576730026808722779427995031756821428792094283874739047378657702593516185509817281825632752188682000474906880534115117086426758115692059453597782297360473891226713494570268859606996527182782693004994781347142592071384016733451326364974678695672225290366638224701362734032479413872088941542496948972442316868143304983169355345540450355242133811280212317745583004387017398240557884784492156808920921398621845901996281554014498539084472533940424842688642714551914539145909849458780456042612205056416182524820257938277196751577710047769558390618494495495812031327983739791814622339927396886784970941987107794905631147638969083993075545537554481497034312495828287139688694361958620256081979412099361020751166094901580089179570379926549754897806003446993921710477211177996532143986341268424639477987688098541716070014906858940609287455096662815600278673021187264526215913895822079335297279389683435006579330158635116329050365886031764392751435761072926571721918861179902375432147739375452121921152260933524618228382127362255595465132055377659949490054854322345829781920867947023946769593598319178452119522546754663223710482110769625935407128654412861930884906811691264357858467787829436495453195937738736558315907121513518628628433414907192024221096149946297006999047701714813205367167225097725603030873228416519340708533822374346542937194351295687218564791279908970137394834775012422414155943780796980456073708687900659032812269797670088423714637370565067745324980568356316911349945704080333497985045304018679819117194429177236728937004908261199038986464238282809737711195849259850070077646055307533444087202808011862974970392504461647407804751482052812842905635280567969779309762093827668220640324630459053816013161678248809939981750194156350289870443316119823567064365306194440045751562216531443905960569050568920028373347763989339559153844579550596656752433495687078669787934896626892404279585150057831094833283983606035287850720685863660505206509164825898931440735920580975708132691464477870440322969524067198302116571832024665901620671485515508596048959299160986156017703420814340635681760778148782327074656687195673304165029867347949863814948737370233498734755391336318400379296019480674400745233791789914901411548788853619319535908114297881098870379080499598631743048090633806568878129421535221185793280995432744417003634442730613654852152572089443432865252823768317762114567956395249138111574062151965132413662087363557120339880317417740424369606065971055828947266145216908054034668559317575192413569792369814202855112466556720840311517523781318329727778472154819064423888876644331782305414760754306953994674657897598311586208263294278093419468836787851545991032863664027009724375148670064040836337666317276522328135001665512760311513603512854636218339772365801595059977619803806374611234920143707984988611437454271697576865724357016940759452305569166551567641016796383494388140950552768515728033850601479778378495454512092059917167247799539559247232925239550570516828942414436575264173521152746135457222265792854807032396804870525276086737636089924457242684169013454382475002518378183207689632091885364509281853423716897469442832132643240808606894279614742814241695123461639068832887337117695451115585504190941518131220208523078444697031456833168715169471027646885384719174775094220393231013040663621958022084834314280899337369009763718889970801865400561649163873483009813331868734187064598783828683015271799787940357665681259449023386867090213561629444792820226469198966233573847553982455572400840028095777871471421491591215868686050066142892775878364594771072821686353507423720204184458534241852611648600359181558817665915341708025760231512117896088864555819266916403665058053204891477069214319047553889392276824709732963873013986068510395505937161628121361366014256733149104171221712368885637745309316687840747322925487967034440026085947589255460847182059456802443626141677608535589779215393144545656187391705612521925445208171435904244844504480202292963766530471676657218994891407870930373845534145505706954683134538795975871949498866637963221864950997009110072520217721918271766656983189372782195100542172540778280626977832949480946266035171245900274048179895690981033049984170529813347121518046808967296379235391434983146390013412714789753067271812042219481279925424524428594282950754380724023186854450781127074312612442697813582967097719823155184318996999469019962873640899090457609880445483066735781456623284361057831062356807997429947240606211091541849323741367150750571144419130746900202695839930519882032173998091314950827286844966134129135146870215736153498389515869053972412388124135995631939519169726888946035618107477544625376861364519198381063472845117936130786104476002633249452145839994350196084709075175209243913632102979864511845276989380052620338019116035587044543568994055346029920366661704126699312603226109507524232969843311374666002042496471362269050200203886916753178722410080028103790804740801591070904044895550734681660890264528044624490150835507153223113688021647086824598392463658574710892862717609691140030171454820627560994491338899767213236758536053190652060391423948301595015359319580247831685124780211093092264136507105075391302531857647592242780457688233336435014969150927405548943382755832993668895988934117565114252811055037632595373455507052320391423025934753948283165901400259694317413709055985913915985971225392699842412464952378375190397752743993431250516075713011133204517157916878635251447616253369770271782444054974007894246176230362241210377311630198212224259065197606534989633504493490036782704599188206141520856917809404300243592006323060836262407382137355450543535320230119793910220810783295941338880204472488947295455303248107447587688795447935371778979820104340104286573167412374496048677606943402107342371032033134482164953436524323181567579844184735934066064636344509732993341856587057586373076497997579887508270221751510032623613873982056287561024218648629813324437680916375028012531101760822213900948471136486367291187016929023902562300661358815892868807297022317136848073486521167674440703670878777430083654233148282907182829857522943376149972193199298254856800155660827765986584678468275326205334204903206445504121921249016954038328986090806675328839989251931385939467010093922217999484219142340170011157411915239705761648698741481281238166725246659373648887286288466776568239991602293762421198825504775085561431524402116052429616471840364418025760293401875524446727339710178115333551488198964004768179937790824350166917437241624504472256412679919323023455795820465261616511101527322167931548293279817255746484308304461848595274049757029804409363790330314203881762344539727879202171604859177426314265382592369838595268001147698879131455182383506021391456199735153359487080199767636180433961571526894913489965992770594094462737687054191884573553113674679075943949839266844485244478069053305334527153594589857541149838176451320002726836827575583481012985240336638713786562593951149125289872096952142103719239151421685392660304941562115881968720597986547907616781173023281400667671400636037159002236192219725378190165313898831833597071056885145666899987815197186063362716252036995409394589828551652760150402242761657779601529525096339007465640189311359289778461833563588140330661550387541845881846109802415291745187869758599496902727336623935027410329296708884928735635522894219230735184461578678459732799292033962612778732119827156973392254413004381703836846298286332302564689979923925761806565109178652087958521390814875059547548129497437159659939688838617661425037341670562877598985227994072918467433605920002521688195979253229837256702006573414563415482709433087075872044052139088605637638486265263566612009984759684223585161153419280495990766009629247207707062228752791486827767340632264861332871719862260623061083241648204966587744206075812535831447199807448018101246470665486597566140751913818041970798978200871763740640471633222284076713448036299375233190573076290644516107523445213132442258617152531801368950822422597560918014725433069649952625213325860398630589387463024091492468814496160814375102834132232623571193315504123783356995453553505726263456808513362430134903668571619230828397670202303007788265188969317624518190129480246067340173674696933488543351086962494491521338320739800303466119863644776360749096222222594066531977379161479945955636985814911827431492740377973527855126187468564909953613700843819829342845731912343064560478880645618656545679281102469302391379357907003324152069977673036602609824664531875862061484943153406679590559996716706285265194841789504730679122619579897181839870065603480700028686884698141872424003607493931838372938262470493172200849949408347793110612578016374333008047200056111171303039973745980728381402417832904947771960427290502868950547864064722897323783879813820174670731964753825193892037543222839814824995036508226676345320341637070643813958912011473032970504560264128595126429505939734234338227771006777207570656932819489289870381001856956138307903490217068538069038159450914634708853260572818529222760983091518436056496607514580076348369163377175500641574168519667454875278469725609815944001739803956402823850478412212454770247994374461820615746848939176608395940129502106036982983772761644799433874357570115947241383049308836548773627260842949280520120843399165978706132211239478411189790445152294211291678140760908604673330077028281277128082762250805807216070604717596911075567007913654344111203339934135348533991695496989076956069309696752900360786660804774437894549800494854537876209130427261208163739970577625707293680846011852260239735169606859754408103905431023824329001442381092983324025149899631804056971292661604978074149313985971747378638813659990371364214767392897909556846164485906899497257689223117555583460031436341176961043500863871459681741008299138745121263564675137069318666441855868774429302849308023338860933028689977560648498987347018464400150957921433148571215444328036835270776437985935765569324459175122490970609434632957664260986470091479392340326797538935662020264825711809327043537814468640012365976873007460607717140956480374021277870555919728112467926727626455162714116287881367949819769150026370565827949854235308196638723390708315588024874619460022153125841557313107514757216240693102527768500661932840948147218460765385607534370810398387747153863188302522764342752610683261319745951117079616305271437537115165432715123836695204953314680454770865204656741959335093993380958714288148727822951153460582270042455608747320532479720175864078217534133097850393215717099734856980382095979635932575380585059348410261574627342518154986979641888266211712644477782779884657118300347703239717341827286365711490531862683564155241655415589236349562677616601598822284261559175789905206156558013726560799526101940947437486862792799184997892173639226542310767986635731540324497526074396462712118965245090549267187511473772504415001587916433570525133777471784078551993405348713172509667336459506505962330059323351988222114421392657867727214630512989482653980246720310653927221406376744030868745958045411388646910063405871185668066618274797001347254492987655101957812165161802571466915552249846536896510530268957259493722534115155094988460344299344224077275472290353882840421911715997348364443434550094306666009257047355068690597717369101875244586055380656160363477075786510646007900923469191944071851934456027342807764747799424769062518101272386680678991012928224708887169618920642938699981730104841359945233668545815466751858355580805905897763070556487884729156363778128820535756156967037689314473675313014639382869514720735926552391549261053677277891609679304604532532987787064961996713739964133853617035758190280469019840681587219569555793314731994182891515657716682780315386167208132194693037795396059868381750548805578012486982301857408311087329818731828128227475351286553278396267281722573866244333774826381859709041132452252350706624837684287634495560006924663421190264834409542099636549467526499560943075368705726120257248594120114760041590009418288207979057280691883161754420368358530213234726847112327723970319936423000329178475970181260431277266355135145555394996446004053402551734691901701366133062862858197760079579667810879190533195812276294133430355595898834563092440215634501485610738163403203529426303941523275261708897984199052418260851302399924611157377306261920725243400160112989837510632953497183048759219754794701188176544868579990883085147221763394263482204016402516361697195211904622243404980301917594387873172515430886051735795361983989745243043050854115604529777734101323803207553306722810817834956864561974238216379518782831842169875537699956997120781350029290117931141153869406503485047596240641088699471976465326764922676378436612713697606402659918435090707924682370636949241944742620082555593546708747841041740833932487936215512982040738111187853196719850717682205116654766082456618628204894003304122932112830346937114858300456885266552559501378694800429982674617371884484519036374335797842635781927829320993543699179822938721202630644974732007480040428064370342027352355192770741852837342526769900086795413037168227093619441350150671424189930395128706594698513159815560850138946656043440481974491446313634789704221645404848155270680904051370364590434897227889032810743759523254251726596675391021191892991850281726251334245567483432634711194977546751877511735131029948003225750349388058542871160113168072731726649127039322970584607133658948357016310474181493057031845978748711344866028486294737639006741220082586326702568004666157723794128351409346630884399761091925819996071269093896640548644945655238856486639926819687869156123157727636818423045170199771700451072445873973932346675211819226693834025501429240395553410539466430069301866408321450562523084398032012432433097301624013773708040117005845075435981983098292631453776166912353502172830079639223519596958639794626311466305250820761107530218540971288336871026478726436830548119211441670007053370506883038831257554438166221343486136360736501542767937712337523721475673970749922727251907221906108691323734507025108830308518214636171163225154716442562384918522259424854953639731930480841179640340925057500115024270822248507154268310129846727487117712089897835859820533869638624998308407874326694037914757586112510166260338016463331195780516246744913000124021124023297353463744732653871143051803727601827213219894454964710959490791470366181180528730217418569472934177193147449363157686731653199768414663165074964893426163078293280716508334319401540450763021887423552411565682080333092445084708820970034486639013600387433488164376378549774272181162870358918943069703097233922711863467378721743427014325271259188518590804548554255916819866372185188317947885083977679773241672169023330816145085134540982052375136047596251696428416076439094575960634937221266340620443194653207088984930803500274542961492207085151394546618170869459290048050155845040329420345713952570379401761388899770434487388624125318362525548164096421073053878975997307781556547175012539683482751607026026229377017421299515504416662856039271896639546866442168712105444818472813616220348855306209514346731951745768818077601138711495802497538155642549762568404113973454546719112915255873888037479992230945657787401352772367487942683349868842842709137312984638083657546588299069942189862021942791330180292701088987890206599729533511999130718858007001901052862873489028901282063292478918375816791676617003282826787811952770508690589472963254070207431891914670515118296567534178854427354805294983763285293659755918674190042560287601834283715764266625632772995258858486922070901834571083164570430458558584297327847326991432876083055120069821932171460137249425513433393768905086163892843130068817304475282527556880894157472787013177520373998635654069628812121713558939343709092698958181870726449535428832834805227929506459786281697617502482145019353498054151352930035395450562906509294164903437122647050249988984753984666154757185684625252090404175688478083943251088995254193994238081769949690610840624114782149408499399447934241242487925974826118135977879233888528338086068919242894028370908702113528851122247058603176754979592178071221428003728932069504186023273102869850364979703566489760363298472472021190509131627467642926679000357451265820951818926433567233112544599120483782161183833699088429209955333205806161451998513301925809819025807771173152794498738168425395552441589558211645139409293105432933220310410118036985218931979491174461825267032956993642249908215361417379929695018171845979550544817286382631898416485191668998744346811297110053884147687655991553407397532677349816177447583362030085071490743445319609671391891545602919363385769053534192459624844220866569590988177455367951799388360796831233666026151938638370076017557434486111057270155388161584616320161619670665357500879863448826618416122676882182456422536150406592959244119795820183245426165349779928850990048251905419389897249409615682468758288923993756352649658131369302073416587051636749190613793254484977645600149410583172630779391155787378656757417080234338994318695298785689173085997081536733438644141559086630540873083164099180007808443975857381652887199279108192269532489989744032597136600195172045199496166372308003356624162893639026203936772938094718226117549835902569823012767588473452595549889770339830642472968112976628210973229560175539001455181065403475099648645953720223555226257726326301042775594687898458083078087612001886688821132857643025178159323493869051471367363777320903836753423358275567865895771313065827269038344591766585223996935303679855410135997844990321162601388465337329938151863946851292766592011010308770366366688681888632341793736874085748871056008669611293080150165631909972159805795514521545665584709371842526308203456521976099240469229797637709626394355889117060229543773516996632155684360635894054552460938596222165222144414199794487470595901570716967491239038245742467957875965039392963775314813415772429153920071887623164208252061448319832527039406347747750958806342485973631712490122605636865281059888997888945320291956538753613530383561676452732834155365600931959749287170812941575676910668064238221043807124837223608126036332557894019094511846413798890358699452704032944472991983784836017558721740387539326891957887815037246047990683431951872576488392031254677362968516997996900825165685828234912148090944947188918024639017087127293652625579573467568859869315691131809206974581234776794850712717876508850695486005395156212756954996651797455287688640082826543746729934928492745978946205125472994674892864881796911574515284201963917104541250563128407764031336241489798154697039807720748935574899351601739641002621960727049629281144313606832956615740457185440522373943715051883342945817012028272280805605824288751879636391666184479999051847276508089272895760435285157565313872626095266915456037716332521516241248956372195132379455146610605650278323751177275994908201631567992030999351353720593399262316935109959144179843916917091051037186120184423721582499630959333130675957495370252124012863464257264120760859976840310143635907354402867572022040985701667388101584807781129890700075130692800474281437600629744807092872053020763045162494556589992651190500428666354180024383704289214490943339523203325934506489057547492999387666204896734242492461203864995801372940470630723945961343278904285188070528000151420300378785681366877994203814361141824671815740923358401646972281743937651920579203245188743372063017878466675086313729285287178340426498367234026619553189151278973958175860810085099754755125711104422914066111256216209240310287883115040328124621746350462803288831302004346261677508338826082403754253445295790315745283302976536689373932638346158543795900040296620548507713996915451567082795687324363886739759620272427907252451816673958140166016954662015773602276219894602232833264097420125699862075847868596003897497792024819534272088889108056869289487966561853772151442151349539586279648609919222766082818090991482151520667627725759740926002817101073976079316888824949053618309607360983933844741736397067279157605981293770060684194983602106543824189536285353051717410455833892510873782083121389986872322170412257475068486472349247765007586611001416088333525012494851022905438067980257863133720482215167167552649547905905368937733040288465760460742605349055691908309906388562745284030879345949478661816113464571871325886135745076057080781150665902012362237302668731528444072469024914003335699085755535340195692964982109485937428483779961078780523943081765530310497098446261689631570377191731814905559535348530238948934836872173234380095620965885991357848875974455431175731113791428093688221232533191742169512100764226110058847820878043077347381388047750385931487413816031595206454412729538647692919460698256594774274181841007901533513481200372584773085814985500812519503188096378752602657396228170504899029955808683150444213449089071069016471471038625897191881577826314924640577531563085709384515734438869382758561765317967358177404871083945567002041955832491214711449452797849531676791667775537238713309480285915645508130247295647069570833838607484666516325055291776689553990284035663832822572610277732098093846817400943553819478825292756727188341645373980113080538316312075676587944284292754552390513073637328743614414012971856669043458312344090732303138411894035672272595111405096320886490767445050964397089591677540612552478636971181061522195903427864390218777891646126377590281958397957780703085544847497587274869636274856384681838684268214492088490042685055132282390101333424984026686116208060759469230742009743846665471625942134748488909584194859582789553712027161191032743720741289297916213795559332070497417180491031289140873002077516911894807976774428855994987717342614700103230669444669675154719790907509588863868382463987537902797653356545487718764321302225799764649092029053816180434144944948762464652718767302884030757161459875039603485619663087398361041469089919126309761819879832044357658552053201421628321409741883545564832666546400984006273314450860236460629188378117539043330447336712138358570289903575266696822355184098165841767639051830306472690072272456360870185880943178819664834344439442441712720895802789995150189242177183520618890607583295378585260588874319001181350435612839870316197912615831740051272446380136668889687512209311137292428090060934191872978672480653750982305413204689694016526227664368292154178740597946979723210162124007930109682450143153889963923953397154981767200352522397771696273390359406690150343153304497469169224705930626866929492354893058595485461055716329452460090211020729499764036479413790306516927948305227678241444659138181229963152827533391448791081153018961304831671863123877934666185327894529757273920001820561446329652337518221697782043401375872733098568361757337360339190273510222812036907723131778671063165804472597151396342396355732885187404281406514033038572016633628023133113782436313694644079131652871779512389371538694175199012865514767756246270239650022375702004931504119935217629039464361389475951391104716080333663954208812407217447229637786617017841212943814544200935016902241354635979270297625862854443576630599023239313085805208434798180050094031124352522710364346427355728155698756966872191741329993555080832025148244039321383916561760410280825296033138742530237567520050265447199786886335430048320598042631824262519713221702235803622457550714533244322231495698662899212519373392587189203555903164269782285029673651049101239408059507951527250341358616477354220996182806181375982520963479353018992724998352022821914624536735760255699485712132728291135030925440066636680225907386844413555616290715321328920992076891874710468024319322752477294172407209714534689923185128651998946729973085034483366981946785008618245786127102974238578300500368213439199762656099870351893759550554716732179909471414687366946191117624427806875739960600933859752773139291529873141659315250496493168316919151059138357261548627865631083072741955877200335243072452096045837409639917173764353340379274434026431466651031855021380213424603550305474604113723552780655254875772154297307795637848800507032499287366582900930229215070356555962938426033502366459558751585510349291422641314270913816484291862681066969912119378893888340921602022120671219562784055075517552300196628826351590036805912358407172518253919893184199766104480734593141094340065318180156615620717895415842511191010114722649603538514891264596823373848147050024366300662144484644698919572395126404596172842331852634182184788698165047898189377766022601243822136400705362033306523217639535378319434748767768288398599957466274031481157973582215282685019562823731528716100316396282659426511573235922249177403820721912611867743960945099114840036116883073269532336306589611262688906829614948805896631088506210653929894156387918145873093682292604139815012875298919288556624816262656072522186257178951883669538525981058445871322178933185699009074263215353151688051487788784572456844312344017856646542159647038914789150481389601823616575928152333814540913058255888147774898998616026153237926297048871615473578587724413390323435740229244941019512140460516921300424286711997330525264196128142019095271002581011760228479975798569279732318388262938121725904174522553228072911359019351302982429825414889877795489932095488252794602800517736336999438424234581966372817198533455769211203394133279856320390021124838267425222378038566778177161025529886206311242479171716359234430742302212792047557242316202555783141775716903719241807947682203816631015507106213847352977916603249721955252338071006468131175541637132847680982395501876716045715842491949801232973627778021251150517460727149242686599965332357983393837594696367422832739891290479991601071835897085513921789033840688820037683089362033567099862108470027555980824057695166319499121345581183981891561663138225858944150472507883695601501144549203955713402517473998348348333872833422196197330177767972590360079758647600548222817740265794110387602538387619994647147582766038441340502779131552630307367056810097840158525033564801116294085069526373619749291016772471627964770447602921197738015429190527927866478767919950234197561796580888624661549907070932975404341250956125319538817850431168984423937004703954455166255373979930754240052237388062656119162819933709072241028494388844012071074571162235956332043841252048204553389991324993793778269197818821531466308886405967004107843713739380359975040281687713014653810479807515357059296343317991188606790170718452404190844705614797374593603023324322318316070766797460524026838553897520061210406593012457142101190608595811173211856738933894377863053105659335867770978028559230166676188466798053247445855467102413479053337224329833838429493518556590068856411838432792597291374687616474814836340399203406447559670053756413036423887409409731258108044759077167880754090960065526108547367813994651420031624326519802134083482246587957449896299918908319793411622558259787536084936170852406143172495963380458174807023390120119340936176925351875036178996207606268608962927275995185723066740181341056661708749033949082584182149864365298574168813103387236813969910880135175460606699033880898900057585620327942772770131019987493096743431200480834892604447834588969339657386796334621617823909749582114293673363269789976934491866548232089306184681365302403292858800709689341438160646917706228934773135894814225281728703675187000419047066671809038099555135722950068366125177209344203330985036671054100203387539659757347011273101021865873445786124252950020041276476639408061674595940370484171307289793525032904131703503219863964744154686489940195626203511064575196682407567531783239448767030949548863383211121999732158522125830603190353690828699433102892737536618675325623429556509303553839242247313137031793995387327802596861107317142081195004503648973468183209563127386581992558085012783276219370830247295110245109709751008764945825051777827999892335033094739334252157469585544998408094590270275858878888770890882116547519686443763970971631018088912114237826297181678028166004351026552886737796606006454712230172178574802431770565637172678228184741712168821496558396375472524108749852568941921284004937336918383454841946835451303595481347687640706135228045456501959873589835694076523615900662173899973828544424756427176856910902613219125303760197476927508286908382244455468840128163475836123632875062434034074106790491032128382405093331247238696523157043137572945786513298934124686337042583346274697185819342116649759622448761772596274591752002688523058198947821947328696100298979494104927145609863159383150449600112536309503897046643346016593276690635186787872418409198153878521819668105618997596980855350472048169139488564220465214008896081204349905511393330762205377661871098610357212937815447847353202505840036416881795538306956003967566125387353073945142800522804537189520766184396644058487545902705935653120387933845142290186074293516341885119924510026079468276409370378438064869235681114614975982805604670288954313789309584799678165642718293184124600122193700773353018715740639398111176522006976685460173535448881463067418797066749740323319546040709694536662228361614851783116593650707872346757081231897762792479828758356732568350584660055528885062258223737241039062809575277855812950097112539377913198096681627420855085166962153705980797289474174343264124718063822794162837801891781944014811452859138480478656835693730026652089976814542536928943089387694733805165229736584458520819489406945052787788315563018068429588352509002415318967906314626424203137972480070721983872214308037813348099897447972421977198185670238795159175317171289027190778740620321426543695471064444518442321346323883439635017120818091136266271131956577138000837488974532903231123827578005050014338978650172294169900160474792983086526246249774008591793258437490767896208624760231521060827667651450792677047819918356521435383571239599902998940101377306936182500433565086493303719586779218841340114182902797996546057340106331815851840509623089164383076695744028772844483926364501054349352597877501339373427704557187050598052213578342694729530477509523315779486909874699694856326372671588840907026744892825641008499085277587801553105571483980745580624952910281931869981508641826568728150628921874042839871073648611623133366255063449571023578950218991294304977818773647395109864599137941413808472648500732755987638178351829809286313964507110848933437333384754475344523436512554592137337260574354533044656359851536568430609658262524213733275424151783049175982859651063962620076825597383436590969052356085174778132990356572680863456270193241416799781467796460996003588853197629390933642179878175237944688710012685329858719606234288160589052418232578670356737907590562281444873578289671234153198684198440498645693097926933429413659005147073754468278271967686701849600998557418368430497302578532871762781893358015465350142930933912213925956263519669254627431439560320027583193598886066250315531070728614147203368555891806030180881895225081206841993632015350432917515644151893009641629845196660954121501641580774531040389775329193299104499015774850698751716368137943956482613710705654434437472384060389254389241279875309720942002593533188513479613645964630138304143154540767293886030213633864453814791674642653291508132240300487312260183986125077089283918829609100371395097092657991846491791982098842669426803254173336298569710854708129888037815977120167242539318719390808299096529928280354102310557095439284048524591266248360817268584756622108026949698767943998993377072160456737274619782507855486713004107086686203938273556584982973623426738149276462190321245731931937014787750221631139535344398921780688430636043548990586268000462807759193983299284191430494199977085345328886964518405222446748257751764791343745752799093040005584696381645624192267123686794535639262689814644094606198744054744613348894521109356592920948932088587137687596416865310748155962768836330954672728584215877719794327322141878879775407706881525882720971243639413373325142547516571767643910020494585949748416764748242981978446588885351519826358741919169497223138919732712681092459776149569249509891046255946689517314613448580858107621497522766580885842524458436179259900646380447715976522037068350448029834033351615908165143331605643269482648690440698092695956058982778861008079783973030317140535456661819271518422121734654025149113489796594134902692265326987778097726020266116017582710166377017638550605376531708102765682012174051026568723872855002153672036634104962002093087161044460451532053754736264175169823500270428861881940157791296355590112670721870354002427341844834216157655660843478687318023481238417751749201511059518787229444523461650068510478454218050734446767055741375653577836790759749740372718564615530812503741063081445559542810789831427888312053223078545068714486178980534829618880919788782007021035716225567065303004207206411971445619248188280195511348318784853354574310188259686513314265501108086913567671237351435586691859879465441748403113538820060170529153667772448185265366713558213910127460964812411140245274686954366833766065562906013707827327567830603203372826186662279070806959567412043736957108404973120817719842414436765036614472860344673419523064571776962430437425579859123342122095634918456457750526268257403581923700588531272014172775978724880389624410022299231375143400942089631101911615088608218457478563412207580891605888076280658798934229207989641354130048360455386954429558356662578722889571903276726341471203316165580508185390340794529143868587858881195289773207790849700723357733369937907590658469520059940040677744370822485478174689382139218789154159420332894336101192192323684274895449006746014282486201450810757058347620973129141733817107631960561861820972796175485417701368013697597784130228699530269764724498044735037665307327434373396928596394946710332544390356808871699099326802418364916440107547766429843549938164622942794544241382663721332972218234146059801126059089998400461162574850044008197700293127477935003975290166403147014831006142544793919632355673471135483323873305782403232205941620739797286835630046088389120407196121395231675915129094659421078454112032876761041645859871849086384164445488452078304862173101489548977134843989277319597296611040678149351169019386572554976206067751217959874491298744190843971275803854828118695599342669373961926108196662157764762797948377364432521793398270256506895463505434101709346204556007416440331335430331919429592242000856828892692703404875333674851157412723821656207134783031346636313628886253777195382086006852500554375797385215364452461198152510732710397425845134368177133379759130547439656757804429942839954169030662848498242182664037363503807252467629146445834923795593042460860080115655197756896949206208678537733503994048368573434082910000624471336147190118664704745116836330597097334434448518813384915796548581618330711280196301078055575945498141954572806248125964245290248177639263473737708305487515132489577673591213450012169142453080687915907404276765599601910105264765957707820323064517382000365954044918512004523063834424010039469561029143172654762108127673166293995992369713464206137873896282827026678174032411068541139118704846998828770439597988223476646760860118311620402186622873769116292762031932231304513331321839825118640427191286418218817564460417847777106177505019103138409758842885185377337656273668690254087462794455320633087333487081860616699847257613688454470911677453664183550363228292295799599703174945889551039428002337958310148624097402098763455834291837181074857923769716948129800823097604496890982194877028034754346117687866224032950389702698380229794249577725029381560633301823648693837470137788022521565658647788449888768636796902122717898959239627127982865127383613842645184818822869771381867322109256584320431557982094975686530207754692331651728728825749230065290000859390519915721078853371522880691577955004679428510792067160133539179053694502696482805726376468966181977675491075768262551345339723100034414958537113547142527009825516135254696193665934386438305101566084165694697966531134721657408985803193062746754334144830165643863151659715299374646104448970308414020981661795906900313730406038744559341879625472447808210533081277247010745625805373932920905244126628016779785236820178944804177948159686009316456188104387564079685024575783888218695140865439463231568460694868306137797902339990581664524145259139352364474732615559192667528885179364361076980231348714579441844799210665778010542460027698343434496459225532438262536054273967939562839811951082772497154224904578985631429314595873086692726301245971859222491714003985768078741160263246842191919490670292754029755632350222341340377476887318989334462413052843551113273742774190160419636318667855407068535671124552079639479230235709768829802405637266439815592913015723383358642098154719791630436108600104477851398257636690934604045587175525728705434794203279151158590584589071955959741841784278260264601121021543896198025626859771471694208789666829966187995997646665092947239153033139182636562301593709005055827877316131170370753492584319553412572197822171103695128053363800663835845876403757854037949895548945239213699697642401724374609679774275664673427407307714566857609623331495696045653246331095261316897576695378462177740105476856595517371105931301347564666273509398132794951594918706234615845298011219857799739306156506628653396681159170391280900275276793277916836885642572185696345448149162226313382740235151694526114111488378786739893321391727625212890842227454454256286043512536227004030744227527901619930767979850250548690607028011656578316043346837034403555124805998061355677864420834922018465499715747565237872710481374816951312477876627914731211599057417189100048937256860459363553442749080296282341727431116195148136633154757972635949068527013746520387205373593772671754980266752798163524567331169946879277807988457321174547316850424282657632269824170286254046429113501210437251892330867574940388577240403364561969274902482942689149186593986568287250498880989099943932652466376704496665990398390577866519214945750583289898824828461630425584522165600383528380107190944143148873644671417470383846163413660334254648969400549817937393834416387924559250347464319557681461252213643955667978181180491316918851355242932067668453912168150576660342861707506076383604827595025361682561279069897371726346127768930356977587324501427134719849357019864121825051582103363828145146950818314366563491826997407820552022600699283190784203866795430651749507988652439824455580292703453232597182976143916269666217064803824671574569572829802141629096410866084331748570505385035654574332282628502253745598900977312938430890531133377604260382604356215962585488743256422798086863660685798231465682708041358324720573591744291117575028305623569741653611269586639566482930494287583563075541036377456280575462464179140046360116205156269639451191639689641525703300238475625649733941275780113674097366001599280378688508030333561284281182134031018270542361728875238400089765244128132932126801573552330504495580576697837158350019008687952345803077238426808446894939055526749747848379047271957914160808103395222670435985800088184251545759254762720482285093608175214114184678112431744476808048124508872946774389680627836604815762094461689792487526294217871469996148669629965025281040698625150292457297249995860922939229594239034261080179865592755953931982510374251180916927977998742624364711322036472447658993445444766559867520819214151470277563406464394558919833412205682487382471698470912620216099898700541363553195571705629633483961764384683677466890882319007021135095364888780927146031034467483637274195838935769824513568890124418017228164788732790829417362954692230699377674069791796925434954303649239749622977648001716823598712749879500390518894259744085089665280158313316513607609259746900999155077571570382721593609038403914492420951048296805586485184693867105271601345877191397434796624808284798901498531561389316413282740761388860185556412089320786368034576852911294236985089923730759508628829387191478080057358633266725389410795184344136008083894195935995938239141955198359046976613890125998888541750861839139433008672446485842524354911336807638113648459858145464452780903534732139495814062607783489389095104440055768071901079253727558838546974751171745815133014372348246443714269389860388829547962404924907152772952955634253216382449239378512946095166269293696330812925435530099781435756227483565179758509899594142270364526603372469819122256860002528649073053530510124096237343200544769065566448140496488172929472387795028672874159527890709691234223067629655723915128056083126284826439749971571413840456577596365709171657329082133443779802372732893068247846562655390196592390813610426240995703698213836362145985302942246968091080490849017384149337588953785438135411567456966920021881154415301602756944234408752328972417211061874371166295413649268346624360538292440512657091661193368320794614955404180055528119500220544012967552991078553348666897176216831727472369126726554084260131473770801597560930530815464117225770070681907131565872445540614779620970321075179043571809265172517987735442330875918626545166728696813206807864500432126663091342548933438293272929569527193353639298006971097136662158329275292489709536484538048386901234772674484460174904414010684069522330962212932810471502669532737752977891705770358369475031668931161859482672723377860268702600887651089354502170193400764636114044936601666854605090274400510681854841731651581551601313572553444552744227632156689641260539507128460552096296217087956704120418040415856202626851428268503082783928438406179278271879540802794065192155669592679618756910092038834837395247446737540704748011652966021214462480853969734319750108497148970087404797539989394017315363454498375912417798111848126812116052632491438671414041906527347104058197292175518172439259307006440018496043685850548933231062607958571891931009871143526308492694258500736441567527296912498885156236615596726729743984284230309595773444789629991968828740932919090115523011356176897798274388125117367671813319016357885931031646683982962249286345656725968349132182841190937669392280906048645057540650938915594508091524038345161858169825411857248263883604228560548783562136581351095034024011917759076740643112130541428425588454412207197278330080440867222907775091284941342012244103071523942344192996048785665432754971014941484398503352425914731206650052095943781821464443494619597214086603334372614757487382849666149612774292025294691441047492508972819065520354069168510242079522893744986041104519987277476625200922997108413798389733869022976139544048767184033898616531682789620834511949013964756504177442158561386406798188015104897447006814172064130976234354309722287902678879430273440498481435768962275956848286064295164028462029085816743098499772415436822341844860477889731269935807520626522590591268683075370915283883591116791925153336329931995692442712041141486605598892373129569971905787904109719899156611443491493603754018778817515501042685626964574997090395390434035725920955536350813219268074983454388268832683184649423457887323010381101533979918803058370477607044765979682123541278580804554102008338883663178312166463632978865245774050497548673121719148391320305285034866205556798351941709362042076989284003205842563243829594761209257827964988323191252227570337296679434145650773053323135068337281442177289509255188661040711657458440928344073620357014801119643722738451355276580387623329923745648244262802400706728111468018233947887370851497124844924651400403001400188331453122517705334498680435789930134164142373988913180628910205335197222859823595252578046409797373441544129170243584736570533021026811313492565363577725029341164890771741589611126540869852489600470318466953026746892666578398518201501599643129180693700296238032670451849988878453756040036396159566038139497742972191582020098219671382343310699864151128048854559011255634685539793293550416418294487289927079445671252194978642490630941181865334854399066641829063303728032855887414490695390923231425061535251895206871214001793000954052183994131700631670317696813439970448369733861831140228133465980794372298353642868492668918673897057444788675996750111141831652426787215458949017558078249347194721323654641961187197225985005994797342364390160449421088196583514745685142550454708097245694881179192982085953345685129606680431378512645783095073331187397906495354544372904446255246223928493395563701983649180050831821158017571924887554647313027322257975954222576212103219731851031408947945349954009589784772937681400137220986701945620219808934150121252037814000624112699067998292493383156066815918702027782940860262963689652593198831448528699151687984884531069035668309859796067110311399288835261732372408894998138731650570314192955812352727799527441996808827743666988414977538773847710803943735305859757802505206097756591926068444568212263869298092581509638730575038653067807244240813536591520554477720481821476733047713910165398257728648773749136577585516622262785883612931990972044666995114030132126573594158781763552132274405626726311733832306494954006174346205298105446986588873771251715778362694535847914965708619856539158104628307600875554020607111941026736943411638797755158510401888845555974201180004947796839563326534261497243168091659291381896231153558796235448241434024215586551518416876580117917568888398386925816097442652424204124130752665044819727218654269720393917188161047529692470105244286693290043941277114129343128204138163873466440126199100816696562287443267519671929949604857706583031735886331112862031064102718071185553816351835492413303269501283891543329580868193396765665798493769926593639870107008257930270778507249130932793367573677055754760795653432645547049689919940121933319786704169799187922533595723382573164109200737245236245829555282155790954055273311576169287643303827956210668375714757105980578230222813275625160697889261907412389048142514190125641554168972645591412510507909011530799660583096810760730257713516443656041863938268305639787509824570345425845122967441958108104720080072916512195298984307171051953501567335967966869924310744423007801636226122477679205788818292991678154105091843838249625101902151062428729657904876313341375130129097258754422483606868363147156194750729577479098784797591101505274709711245774582204528989627339101015036259563545304186095268096243909114447385163214817746571694909460232292523530768814914251573397387910639474433441757700721967154359193906225137895757673742612937071902184596642441842231856783230110242780832665126384624682090657472806167142605980781450617781058745176357424395150798429816486048517020528980732992922387772007453947050446781222443658459035653356729669221621558124006473630255888105697627214552070771981128849301454068243095762298288967410712560938715730186342051563049004663244096957489122179742634062964972245834122600891520432173789421652026501724961687206229184869018596019159669536963236354702532393706753664173957850572943977471136484848164376352754409641032456536816654797850040691490679674122546570335214893360481175660513829333111594815322833287942156839407097735575072411176280150351110394803876549624021346290979075751814785781496306408789389399002743313444567273634749349476448018037886692480850986186152492847540508557827494099208638429843799103557201977344574290104041923807448857258379599271979219860133275357114814011848448587974159473920784094031391736431594072483551385088197480852370611282368856552733970800927722832722399072958093755159577506813500703499103149295001459390988216131179079928563061966598882966411771006670706425831391878238361421402193473542996182907235792685290488749632774692358524532180436058754324341380994665217627036882208431805413142647260740555634253451958916647615481516331394132611087195967849827738071535266149689875144656701474304896910153343348285810301832566734465864052521558190928571629396848476721077162229944654372938222741749047786961671995778641021310559126742536164345309659773364820577710296864863964551847435599198681593494181439267244408492493455489928923901559160550641375760126476724252598201954065892672296561722400489538201656267379608967325246395080743544985675359740132127194646980772924013691596389883822300198054657309793832482790707040018117603734782432888720553151234322292146027132131881746423566450664080553452741374244747356172311329519614277985096366251562133533833368221425498767651212081175031768044428826729977508255165350682051146929867731266434685594075807245006470419370640332844023589043271805570642664457343739593742748148197255544786029280501679520705758116296538204982423785107505729187205916730108883263600238913078965469332246356532671111611071842914962959691310735580434386505460614521841217029599207686779605101380676005975843926834756532161222164179811554384939850722140710500925904287356570039938606107380931920000831538758835371625047993597803894745169876633682210932017185347069628463522058107051073457924082441591380643266504618825360699010761675346119088494495534600724307442725920530990275996222484640899764193917851896199682414925030905994015675728448321722216316358266357368199045633223723009774027802300284376043371067901778982111410203386949483660446587333328714705846828586806713832256875959604953243505936119766572928946908514309174787537735714839390947752392170759803352613245613151857429649556517729853575473372434169130302564292961691383764972192926810032640949572550223323754806878255911185761071727725165893952641255545809938155365677306878939500575948286208202477751836826236934284104933942155422820965650643322245513383323716639330687682490561372098961637355729422353730504379258928389956760328583110720000644783256912681004674163802357979413502161884034276776552184513628912876704573806323005250299615475981705480301175041316657919087505287421102223927022671301299662732494570250599816117892031999579641428109150387892142255189868117109686911602289991804785146969598761329192784616322574379444490778173652834148426677182779094315886347680242363574706936685421624720460099804840255682857640993468754780647004724294863525517725911843364743923189703733947998514733770730770877766470301899175599235097295823167914228162652737193926501221562418636222389830466589998079705505981044545989477498665961071680263932566652108382253718533479217796147886561098488417402301072039985122119117535929403404690748378190002472062897720888718708539029063129294445300252364068791980066005228095734674358693492017740748690862025601443101560502517118958731497606964554408088119079297767817705953718773401973396786537401458290520688783577535749567743569054568352136445531610584934137013815597398404663685473979717348342917502004965626764984044259508932400684907392631263284953308638678195332841128764466035995714628353165928590672420600189506343645756072130825432771323717853276144020360106995879503894592266231656497173052598047422160868016337024103690347441382011622574412959960018148787932479280537089980408253526019472496038553129994535947201186802362023449389970278252844058505607294215388246736293944233149746641403444087924842930342494730317456024965028992066658278994664605999967511319874785447845881656317578299255725645145986723440517910856629418778140587534495377151069025879507095784944892098430194392702824326519069411287606916993577637834706273096976444209006047582755221075011194660773261238083501336382173344883841682235513637086061037606808840750247475319634027098419673922044435188600545352017550316221015552812038292033117395155866074214469257546049874884233607760026204938166753049875821651982560250679331840460404171647645111105563447559958969015948466353690528217862337615846916039324966526913468341100972314782512567881329156897316168703098060693236101042265997944692619843899364340286369989205049218368563786902003982103620236262213551339471306001131596758185589030172442875655333387586599189894217414369412670722850321842591554787228404750608168573633149419549550794561728604134316899916452420446533363933605977460603386079385297306850537879507237988897975426077972316792000285269827911228610873001345831913319765495565468944704978450761731323922134443908893043173603416854941349363948568773746193190192972496163716299372066582313134745929651603795849152417209748105997178766830301592522355956452655329199622135589350224790637883953823204580428116926715865669184242354644393763613839927546171150498242835407137203333769364508583931069673778654944742788195198085567489456885004178541822295838136785602230923605737551975467441902599812170586368113814069666538927922431970489507275854505890148500643885796784181978175636905638058571242394836284011878155429580762960718829773627370777021136637508289208942128838946518314319533676384198931720153720731170062913210570277211652762459596803496875395393899688895369050371216616039293060978460622917785965086609906530094048972096506024447049559909487996146758458629987368582463160751012306067795825880400794382614308769714375093108671549482745109281163211974157149934196641383660371171871916323002031677669617840440368706376756309171066412350314242415218271431311188466172455494595352591967905727703983059543847512252208924614907674654219150326956980031542102963128719015798761816961410546103140566182932904213709075758210153589523683686829392677612899076867960346215562405466198821839582850204417368198044694592297525441963895706534137742396755248928368300389366811361487397038826884793067999526353566329134476097505356593717342170520038722626901294507836718252628876101420243078551450676132146934884620163124258213178564437919243355096477011813429952729321155180993925240404000357915741349955526751804145285804556526161264865992556160091312878597852698777396637442874651810706795677908742521032777332037334330677331875722783478100601541738329363405352978190005012858863943967132857312791823074956067834803548581865710898219076547547227583782306043896129785765416037868893962291199515018437145240198622465718026251199727589300443501980712470731051471564980176508360885049816599964747725656897723491422461220813716558662463764824627954041126996168161883709218663590986631714973919959099900293416077437589661317777657334621567561381461365041904026693068690889016130227284209758682951687601224402792978044886975096886242642500092178343805172615257393131814481501178009336919270170583875151917035907921284782754064781555832576769076529336877534798266987348896552545914174874984445292601554384539901659872241233514251135436836671814557324588408687713645996953873243714018613931165415978040229218073810694208617404794401294052079342384933068245074083330170913220761992219216245403743547640918419021978035381082133635993149584875155185398309096059540283598982875635208560439623676570629751452504916285909486217257043712585178770034117672766325608884470893594654653791309039227198639986616488703970526772770586601200934240882505237418165012122540147039477908849158561545909513129928758508027796594722649324177825607677963997834310734719294763373352145695883376538063200172666222914819074181019561450134901121889653941378511590904667055142297828230463283094997055123015562624293205551491562081523478128153112872038421662055378680608851784283205474780347545032787776313348923980416868160449884050788446112430964869529167273824514198167626604807492894868467850137607721758907561305794592849252346835401734509510014822097228444786017160933338622619815605784862404728615289926642924622172776793512057498647640397378736884778673115541198504324243211153847800190114125969231367769102186600846585429942089584960548858291212842314481625937358786336030608520227928151403569060808892402743871738071179286439119082616291481639538570976470380080845262534475622081211453877433151389118187182078137080552479555976345681319540841990731661269033276191794061101376193356168389281703829356585370003767899851353922619452676312203734746040855074174549207641447584185546144797331241544583113010101252830569755838816099366175998027204476009485682997508746843514673412190199055342590838550023425382482461101704748154689134588580362060634522299458663137359446867570556432607302955888976535439553890788992416409660889565329746588346376230476737801132539028010330470158320004194421860232867767880768125334350623402291302482697352304978493112879465561242217350079862000666656881816029242217941571414453385980194722248478087646228142591753535205367129761976341499338169048123405207152876778348315957706376826615433635889390050908416807180803698101785098623120842968892007939877724746186029513212286424425697516976800319595165469044800092446728388084475929803227259384943429900178468589510464997010272583567239795385356381013547597955440315935462431822013593214771144246638362570451967385067093698812435812122502055222957759487277705784750157718851206918070883991360484729295008323235900794783925669465226918595576410986531893774901144774209973882868195854026946700353118748334321619693950566686831560020108978344301787027718126660117593489730986218156295032998666221629964323564966638693686251633064466623350949799607569599430144713823635078717208480373657661172255487152202969722230386993799238736350867955102395336375046359909938269664087565990812114647995275672571176597495063054924467694998184143274556444677458681684357448454036813927216535279957935697986190163934313743355446856722426445644805324354589550699714516380728041738025355547081869205836077236874979580385614350028038329888114131432590013162735630605916040102166076473634496449510384096746621707188581057389701802114987408562475616154662146909711482690502405431381168454424273189688083048494265515349119933347177891901806596602397998594908281263049067978248823412742626621827760555778715840422472537621442981058217521923657714475525948396607939316771868146537541977521671845147460371203754038465434152661531961730254974398055156375965064579969495558818281088385643213665934625875324640811907943675227495819258896984865931254062511202824183639201547156745021118983581175567852216473946510009358532614554300263176108668462759055579300777699195184941491742199727224092149551704361994896175130325108916189734858487432946883362543833218669490963152126455811427296790496347289724854043335481893560217022577930094460608021598526310349140088135374013933936984351638777503397341191489211806715254236607090103717022523329122066402479392409092297029696684872844916501616743278708051912358681512003101528416321456699507715557755655255314115143214105324650937625434778387124212112734663647073517524415696248961187333537114817763309897215125822056685494404295462850973064917060215306532456760822691568970368638823901361707175200046888583060835892074808242426138123038960018942617566879437684571645546084711807434688605654888124996895414892528078067887561509706282622896476761511893029911011568918687710864734261431048554715652385985741150170429556695017469485159007403934911799458777195641838849102336713585353163935885268314330866889344862351388846808479699329518005106559232451345463322272629221713117051203820988265156462539494022006393840903163740269142530854424121468459780820517303879704206804817529921628957399045411671641594466233246481445315848031484751794869449700003036933003859513396735554021011684876691665455282054877587379286831833323075120742810735865307868588203144804965533779293733350743806910055463827622232893581119211674883971811600023769867041033039502168706169577844478397253242321723534691925726150408829006072230154611462941318263127115716692828717863557120726706684998928411444563515379295398462312806813458887389145807546436618527053626047241108688011425225121069859964203675526353618843908228091939407147912751426233506501732661126727453021206256046513295762510494599006303817465256076552519105075450550383033592863880471027898628744194049969033326435234092017497849294888804483063488021058965121552372647746623551131345532275465590145443364093145669821998473954831268647008703654463230905457249003693524071813442966941594490086599696309450548664638926850683165032774412824922852739184157738421325113960271835614601858342244462727099718655995315808129073712767614318779198997025191475006133354135267264335135423953125445329354875870779115217591461849006407883303667270487849527758161800355601960134353363545342218364156104880374255333920847539132543283230857698475213873849844300219780108905501170099529532543767491589979013642337303432149723169238607040973034978068426860041911041716376519440996438813969381860205012446787728250702248155242583951184534975109275048230635647280089794224246021821555008788505497057397838818617277960842602788672812222561717691241822833452458243634950424226155389678088065179654265471279210889098979370745180630938718560432521452636920725897010091587960477803150434905210598306291191875230526741102347515496909083188479567608154644774459139792107313696972419364749278866473188479119075025184050720656996106299233288065727164832708917756326131568940963495206983369416688792441581044887139724337645525083853035475859954918360443187473072334254358949148343853352340668979741031302237676883150926290010139095804840038951787849363361418630047462095041691926994389266765952930958909084592977718231111992007053945019447087701746548841762333618814826218032144601299121577358837313942498427154459674208559457073170279372338478653681183051068413579734608941172792756255766869053668546192617331578082973363939378977430390519832188644944094159165828796392955009064753292386694045394860662731979492766710669493915276401304366404379092384219842432059348579532957338849198759659756036285438215308001032519112598671996001172128328308292939976445327485025756107357798166936852854110237942641962709381950495852881956360410182621621651095880674192995412837808633040206805940174214429081080514697429548605203660447134308508317353902857282021144709359868998563197560904241889822187199343544476569399766521978600825161235440976478733938342577542612450398221218698285942508148012106243345170685825173680108207396262281552504613618361083447269087130611673056721461682715568399889190079504509944717055130033162315710305572505814613776005469019222631607154543851367089191858933483849121266097935401374360962734602257090801211386180540458379565234915176418865361920750149599689540009383505985910942062895389273075970257930720782523341672288952201860554197633615255119182276899397700494969947698335523750397571040131183508428577319323897331272805157136662177736508892275740906158034471036992362320944464081503263914271292755363259572861616200064893047399766721449988638495502839055618318978957921813989353318003136433216780419917465017886746675135567404588650612282280230599516043730880023820171149735268182501590668040932815759299208419422756061228485658829707346966811204733280874641153041204164938198821860538864392563877095504900886835502412224314470025695938142903972632122257392817297190008284890109279502024772708683223834670591114855127290341010877536969686085926644573798371321511845596567455903792710889286255938575781923142522222693855009671298896027854890005292613911213024631879575273950494966678593793126167359175290475212453721339719796233972410116842582752792300469330846048467190322608858726870874234505939408014987871553625913989731308049209371587035579499192540053879878627309794573116019622829371453814381107801857504553183229009031881311626418442455119083017479450833257380461818476114390929692733695667430858331401959129384343238222317842565676972260395757421963980175198970087466734676951957129675186189320088909852909036913667555154002502805646818683397043106961950614748882351132074338178196426024485688881097798273911730231144808328652068322774912323095653137621203669460494115569170759490220086501755087047204007477610458704716552220473873713568964600072360550637268882064153420657163293855181746106199348453801284447772506536350406095093276530124163839600976569346242622441638632310004370314763538941817608675748136145707707363372099142746797573179886585528080026860653284717047824297105095267397060346951145227343689682141113140652498440378335923009659067045754347158920759432198142935801841455580984142930536519181727389372997170004647596073464578853441743494416304037101018503869186290085327915471163449042233255765719141855009930498650759509820464519150374494703757327712505032280695316194737556333685530295704460590908662259110009806129748090184623910258910613179221353529607401945940644842313778098867817137871308481838860165300536633996840422361836271547239700486575839819455855675902416860441044212961288507928203994911773157830347916296568568420299170417891614891762467272094085573652593961706156281944589399769872871095036331796128637572405364141525741812662774451267896688508853843752304419868392497932701022938008069375822819213575425389180893078963322564874023841403483519910868894359770629518751997070693681350730460263479147837546528186497953653897553235864847357848056802274783832494155034566891923097133074117724920776365369561822584868417663353128793870014068298832813302588377761883229612260759900322845743558372835562609490440480348027851890077364537603349899958583372660414211405621010934927036473287555932837632458750799544328583739050966597584514706434734421425295240353171268429591965330653455527446700193715097095728553143228189820338044424213220210573470971680042632563430348036538536395450555816473600938741303016019862300215579241053198339463239214240394070563785007687152395651552807618876113126719072789704927114180885496816570076675312936205961924363663054537174203414949942355766080966137127807752732382672361093007407473285258570218677393797144027856269629531845030879482963375786188070010079633041015553667469806052455898439213802818627737732017587456985379901211386397494245842893847318863898435317957221584528966052747773543649724473121014842943789651728795026495544965148739404380983497084642960637060052707659407834309267642487810425172692003644666310472186199873150454442191785602112775999814363516658901294501084461633884753536182489494423943439706569296504129884415794081491041409597511428525372615846412478309960054221410514675395705190606616700847307426889077171258502830679248716469779869164809507428501670397475969829838178920461007506927173592665916769563190020922216533751844503291947246171416301194196812598282680251831343200304711383827068250583252475630409362613189911904881847534784612955205825974097297374134532252799744056974192598680485590434395490957841248065120747312388273028325065165634359148209617109316979539354860490996691337605314097473406487022947745149410388312214532805270587482101239458856880913512556224869673839475585184970304737714432080092518890739957330025170361969353877808801692951130332829730114424770017075511646534108170925654350395978980491155385613495376616322793082866200389908375402309266541821823297909464867944113403259379203599169567430874135171173594015215632504606050622295749263001007975991872629577036332673433566206237947859006028795218553208743169532730693260313378274397085253775563654074654254620318043786056217458819047875598749995402351472171640058236969209270811014104634357333847737139766441222614994000637755207086452798247388504442671986032646943908121697791261808403084347258145260276285005396105983897142222105718709413305860403644938006145717883395864007189510819198492187583553302520725911011803218975131844234881942640023654400833577525844157483963196724080032529161892432291846646537237604149552513075367427068397142081794504068226806285802932797685178466538978048330690454291512338655237726335659922052582345278119153008509219739923956199584218336006819332946362944607828275799675622958896358208567473547639100641041432892923472612202113090432255633786850631277426163620422419040622500537000788212218716260857135185897836208600654802934033708647640712145403871136409502818917233884354957568178171589315241527680544342789041637577724979220450638285881033763508830402434494701084842407350134214578736476742558089456023131251761891617713326771440029406460036631300795874147630476576106509098609782624894876999564552191912186561184124123139481123070824570266890047597552367533677117659258096638854333795946035242088471609977306082837777575525975061037055347837870482031043365531525901865045912118141492096807209536107995918863482785952903015625586098598203570681043829591452345911425615403152030957404309180663013417552570806056949518016005711718270118924032317780109686829879839635394244709987521986320496466354544187215966022706075823590933447255284397558939970468236290612741386414078515878682448459647652824823451786344134852484135959521948763818398699523454889730162267973081951720886809436833175628172265860247920489397588944577153249492693070440748049651314443321505843250702410318053539380091679574532848359479033629846272196321019759676235130312112840521847698848867380590173023055617530929169616777289426313776942339829077923876259915039864418502152962930688275557723421410304495298070596962038106540154717625070887508832504072739504827981991216998759133731187170143326926748862665533845383630229184719991157727718736236518559002759472656620231373301713723870390173085917568656416029761153161059196478896759549114382664351846388709803599999540449801082896091355444564526545070579975328921628928832729104874912979367330264297126947765443017313760604202199268826764494034801049822985830776732686627402133418010778364251495949611343498654479252512945018746006515954993639295930017199478058956509395071661858715664249960753903431459538304739383413772669997420202287404809971158119826406220765249392082370188430523621363959788222087993446868727775086646788952159563052273151077019041144668085264292240782990020521492747014400737316885575556491039022621662955084572420078458603438421505860338492302269715122313705147167805512860506989224160595379676259781552275615960969064421871619189803611560298211577656720602911753131847986056473222886684722146029113234093881083230025473359437525765879268766599773094877842264099552950013873808313074383452724199379152355608728726290582675446228026453288232807975027101135962929719290960111521634193135469638055221261113908046196818057098054010051339270627001425021374038584980320436350954786422117051939667102132464045458943030243389887618489008283320092452256819131414280231454169454985944759229252791340663094866647780657964103785322612600689427566213836509097980934593194173970501135740940290466665847285230297351601987024664641264533227413766346848474705619777412216436488902350267934240006596534002076135481589148575124641280732003606168462852749582482646210735954234318771641634496720055273957330595586922713240095156849689297407920516584523204872074272943155250016114942036860679130749350281010948146136557632794120419422983549986699216360913060169613154534309272741382728240447116701645043790378274586025400642423342199891807206635856690831429856322027341068106100324432222271793060170969968815140690748830474855670138429385714354276792942987693004678544713149919079889552598415270694270323562096228800567888134807649939683492107678763934220844439662821457224361517836580593439899271623491812530736184554980513020543099020410369573287674637063595976614823511007818736829839851991220001284647379260185794597947607874565381192453868084924888823319182128919492751412696598257700713168230485103703828361474934965924720440935087942117913831938594736536297261254949268094919456435504355632785287224099917919011908437819968547598429499054539406599856403546975912631248079935896529696622747956964877435642268093935032336415751664320964427649164115982114410033810193644694224534599712781057525864881260069320810604197186158706018994106272941724505005543813931448872706257587992687955362919033590385733658337722232599044622635071254828223093404005469149312850898236856800779860846444271132447369684981253044332830873049680629794392167991010193897623038273750964659243408797091072220694352365492612916887982535618965406479974590926526998768358584024564457944018799928453967933559344372366842883961055529667129594485175277787427614502474623718095011855245761195705710584288833638836553748792874045001041660135558963254397378996628960895828830005754253370770359156739203791032786892972415452173562189064775121157379498830017580856772474466764595124878333866481603687998781171906180175844289529824199199163734385951855367592301279167114851284269424937649310344900415847423020702681351811926979133768920443278135963777433077587933426628890721648858117888402451705132050757262464493028250303370544845044495257934320361635044378558467458015528947961110761957223686804990152059983204982636236820282779508706680545281013123345022962150238916581307052547696290801324534552040184477724488589887066292171945323344317129539709946110441571610569058835437895845935889793304929026642719441499331259559772770404164900540285210846155390495832086866997153974341281435968933195386609448033555859681639141153339789662968436421173592412763106028855919911288102485811144215676144012976164672224956200727334270414989548223649415008700894503767709428202071820188166217107090929950600302337084347412431719793703332759317502165604358235268230008208058854819110594666738305024799127938831269736691882192957773997814931375312894219417246614203504488849041405266970462421163613537915025707245871240137129109572810484615158650513845508647282377179525953155304661009072258234908622423293312185869196278000227301434986333281585507044968234724079491060305866596254110867713911408105299815335299778179260024604757409513810698348004356118679197552093742155596368899413313214203092548673951266656502044954275867329709970091958698965986356082550021803890592428226564800621897614447031441953620484136053182017801120112958604641824349870331369468713493340406614512791714942697637208085282342172399891447686290628922975832219268172375668286967707646545917816907207515522144195896079045689645187538205487571995799922403882190416981555260805191289151726543136445565536339305763275447810283187778422080160581914599512285280074684907374697217332151356939842979843995067702920838374005699034838874357233702443086843549528628847064349770212357624642348221322784832915584093156677865389703796231594473530752979802994272393788852012928542539040622996033590694704884482178644148546371986823232235155484492313853704035291788988494237386487239023914092288905954641174172607453356472138435214569523372560787622246185525824383639334779080548706484790572690489184404500135262647239401324068733806572992884672542284045242624063965476036023354210453933909467177390667184043486206668613375886229468719270003507294951772386466411893315212514561755692753673562483903987952433212260878279403811088072346503716299504161886156982583871149576347024869927510259641998939465226506715796779394867270053713116934802548421353867934209633648181033475510262163493976666078450288924419849451649504181213938486434722318439938597755596479327630747714845682362601795124989164111448863539321032367290518200035577754920305651525532621937264726752252114767793315015741096239211625146075008993205085274036139287368905671857110648724011433433421268688520521936127614126122178931844082774711259590366202884891641971159077491005351007199496390165893103013684991929769274308759497373610019086314632762767212881838233986583548114989935003961228369698009419383043390952078018040755493732607001751825195958183974584890951684981786012891999025135732770423640453379803006695807555398393951461876464726528865728999553295172597227126527664279399819181865586070469918271697619775868019037267719735973094748682839782157615592186127158123186077969356981900789992719084088725639510385208512809950780730266189928923639776075377816614771981708686038709528714733880231801667847017648333972181827537327766823799719832909050383361583148862857631974395529514572442215063122437752637064260034598389225413597926218638426373069728450022248183378101878652330365889394653615988822744854359846762531908704036631623323745837158037655227563976425351103749938473714233539392258697471262209123775438000224946439018183382878067145860506259699320477734981739946862382587735942703024774095024797911520385500486180168125292505495225922645673368800385004392792834831601263158801827083158111666458213246267639294454248197369703135774379562431137016301309280443482642135551172623435366879875905562852553392635870683868230980805810376222065331784750252379244236424660723091390619982083258642900955094124140506315129301411973586966893505622583388760217504536754473346230139974247034691533595842704333889946378056581320019763786035665523023356856622858079730880604412610452003363925138829515518875974768498375371943742217567403909578947640744097100928514708883104026345155213941882089123824386120133618655482296468573928016512966265804555370266322062848045306777776939882355182941940517127255472326698581260866924085484208498816724405034689449079619908590289299239419426214458816922884424942190032100511793311435067555765503192328064621403264047765564011964915929400245347394322029823911670746435312055605960999187269993860596019462554080393838892953122678956870575254710694043732841830521374238542888299109965756752226253863474739819608658971112841960577701471221924894729011608134377871618080599473463150227907523385617377325106132361792470879874797204778629811140475539828221527211149916563378785260457926215902708660202392484112172695136100497817157854828399005934738497115114752474651106754835321317280455610122298774983012777642312635037765869723742142831391609667600034199643668753850992586112175326477104467645935749598676004175366825579493583336465498320679326770504544517411730063833500274969710201404748954025882746013605383195455574464335599762389106176481821461432873475928435958913011857490675791722044564388540477357428438997358724978205188111168524136132797123283263075422627699682221092596830864486200114777803100562840906130410056125435991206762716763048915478734587720453533847402649205110700741700430702134911565167764527086290602090991644537574729390877007024986921420924810103064832380828760065839587335532118507553530635240974551447611981634591587728566859900785027328842930771506073983749464942822467793960132517022185448552202200749621522310776889082741159732044632481830440366011023333982977754552889963689029967465456926983022926565607182107673863379588953280466324923527597979994237338420442742889824921339047851358127798527181354159412258685130795096195238646220891820888914103006042498498136073485331258944198693723435036793979975387185127961585100721413162174300634804645737220271625760387301022538389705138769937642154255845140869192634584323427556246115907316887412897866033858420522853724618330961377826321184444593616743753889582160185682458472094128702870578176542022903884468603701611347696985288397464464017377676709486637587158067639224677743678191596004450964095965495581558907824180360926847200539024385003876429240708573458343314621611971248445579671897889495178252324799934765272088086351912378928700350878556516065898247896732039789304183763079991401451578281552091750055863948636554597720381884560048300325196052189366256537747128927049685976645562073870106170798299563670946076612787974333428408496967476085217488162920798053413263118756039570972512976965832978250805040881752204152457416682798516576111917670358423563903108360771852778681916124400065350941816615289586590568095418193966424717600536417850972966324065907282780376704291733151825020497037750892630949674850504864523910376312446437013204021075006451460847161090676264806855794495820130826712886567192417513734711457470346528038336293165545522960560687150126795577865261152979650633642964789598477432239518531059841297682595486014786623935603448579065841065617822034253034861022054999089742096342930348494531136386317985266789754580548128010102888783976941857162423685717743266990238830092316491529207530104181974375023194022557990793568910509882689868460647322138750843114616300734598066974059066429667287926125356107799636471030770534397934028888533825387251854824140129912390995152361729572210797166060748305262299930074797215672122868296496401949288254824121752418785125069445069413331947818971364700513967700111443055173965024633958863430132505989129969978834352439553669235309718145630354430778454186837114062899929889466665079701998062277786933785626418463281991302416639942145313164390739522790579644642473287795463706131210665010033672386709906046516023210269333659085839805988686110833049057927576515836375845505549933114075359245756762157253623518642469980421854001289269474955661376845149884700290435576209133228367542203322262485229001012053983302416678004671786493073550520957378827287616669549559785828669593557182753951026030238185404399262602504281435304571612886118080835408216860317999741903043705273552506149063098784926165836002093177086438316112816526337250642960224571898310858745128086564639564945618354344808214330456180778504097601655587523153157742196224749161195363309789519068953317277562003427660642217914607778028895213281982831784000830440957443919793559156653215553857883829305187681231370804935127631390855998354213772761319256105542199570366855521667647974210038548029761441613408602613150754012326920898282840852980197119520756502964370326858836034880186321274748016570011483313059030617665517634149254410421340483803173406315496805158390185290881638361761551627906023913051893505087441449784095740784140706082053872174165829363171119227411285226978769223456868085924117614918537603303836622382635744566361252927475917364295170705552214213477706067148600837149371920262355379194664406529228523183706346346760626481804022600028406423914288609726067754708053324062836909881119397872120251252468620232615510979371816874848392441183387232345263936595276580265775039012325059112923993962043478808764896443163704818540906998796761508732701908068145254713173860351256030751809903075771747981698399392454021930396458073001312957948451655338843528288885933431942180515598011628787153640349299611306590705577183683844781517322863409114303075107097930971735673682279142269188242060646354713628552574614887264191919043646165486067709743949718220442981161695492144532346296455959302466515608568475210189548349835907173051945362179096576005064004091207961910357236398031416290033846965788579783473032324669572598128086270957367782672126203308937849041782731832395530197272446193212365963762047665510219015930386243796529718315958416269030087563231489434169284663340864762948281804667485212026181981582270114460573926876919602905778535117799678359292666008231055528014202515276186083725070319601308252797904053825724966628511841317493745672107796087634409537877691230503933839871987418774517824363113874146563276224281097474809159335596801162871792744937728945270510616754290317051632589451198713332666241297706862004178861783896051176071724373112703234958843975962874717951716058970325675514853275224808360620576896102687930290704449797065689077449937875919701840237522206041733528938180952784329381134689466251677528154344431282643307044277759215621406822155062332867763551844475866699609867010488166282420053292607162158950982997659526329482480515172402237584517478925026932478468600838332449012037954340942025090677299569026069516580815830483625926176187744642431831969740004583255505389196867427098485982372096436947218541058954103933839788968303394670212814189204215119366226925254090794593194941776407258331448565581640862306396924637000696071954412796902813380389831888154848488936068749448461043794647513516828690285912703207879059421131559015383610490074051287113133508800298625454885914322894315360331414722724532035289251935564671912363792722244848400626660570030732614837843503574274181924061235515947518877843308968405150980633850548909645797397066095980338610957701146620106383403020631247431248677791260834301094280124489559722920595219713404470277382444462842974746690071820532553532447906793466390058444430299035014959924651075456038707121405269433555418107835683105788612689398123439809144611204712733248167073026795079692423235641956462655452543099512620171003846629345774381575860073306160381610188135458671886231343456175877199170183706352555553418709776915214122894830067360358000779170193165433762069818630270955030167483563315653731982129469542689020237318791139213662204652829033781949059131078090404532646243405277533951801854055655296807382528695371630026260475444498394954544357226169514659846959022054994365115305934184919899941859575866557865995340236344539856188475222088427989257163793308896573571934814088758647226247286747671098500766598488468165243107944329393691140403018688800115012462449681682291934199953144948780254366383270929465373532344547476704563023786704126781466871004038330330942815155088587565098499018678781014197417925852452433329038948772264787469301268219666076479627679430438230180230772303759376225772434767723872922593296898713121053897775576906706360035745640784788203330527733790533510109321945333132038883529982898707561646126946302501292297574406569488941283432443660023818829385795360023972386667154545774245222921309395538319375794959840715609184444956428424635870039204654745285989833861297002347113167645640489107013398010868786419397533140960177036736027829906096740087460285148784362295390074294376081145975744167677420967246740318646978582115559438457693513595087420583107120425119669849025446255009141862216306630806096447226120752711981965201662239561048339155151824286271086521598339825784536456873405921043533091333976314140386836924714395436418728317210457029421016152493039432996248337911978909421544161303039639538318695584112730550262381138602441493562725666485868814012353524532021177259899436384456057934301553011090212623672750834996187277855965377670758178017774970036281180131137582994104475110463469114039551704149627498217684094428705600200602865209797561572816449428232801954464776266809237695467639566440742988123706480653138557541023734002399863799022397191594151618945117038520456318470279898587346867347938784746558186460092205745573062916588617527478602597140021305931403281347506977571583718750808929757473830463478720562002937903310707341361804671539417436603434154864745788701186556179045293519453916891370816531543232114644847015696429493630573296811495460465066086294430254840903514175076481588730803417058288501253112762584621179708022100601408005445159388547134027468185957637453315080822945589359690443728449583422292097601526564540990799780205457268040790490822224968873770549054937388120691981989544594952639310344176493056140358970754266588822599885746566340162319380168210083930788340146876328424799066252912532259905887828811789734198300294410236456025784202988417873124451397801673335267954809310480017209767391139719263090047894051377871285992714791257889732567475104719430057180188910515337923708777066372115416646340642487544223434516541446832463709268313669389406633869807607877279968463653095603172208717002766291297705564499069510962036350190273820064785990253738872015503128815356238083490575225195410687196174569377448442781741899006731089707570527409328092621131351673121961920071446577591511595772886110942713133630244143289870856367350004559030801910857590923355313354805585275500335517523425810991202276223565363400292523189643197588353229023280197690181165685354847474771312351881684578037913546120645096332105443470176803789494371254721604654236042166912644168954638146188694212174217316377472632999660354036873575577243005443925926098386692311279624908150028147623560371110624331559678865073988539809140438905508067890977529884513478124877211334804683185438885470781541219859186904733989698341045333271230932883080128325247968038616929463711091338871503855344634943468499044897417591083446340944082067850103501237094491766275171767795222109266115767173368983226194591103673581285197612584812341663152877594689415715350379909172058220380028539685704499095762055027702530181375812354451974507924490003798038467070887600027082464741903668264204402230784224270174073656851210407501051609532518813941120074180273992049198609527488446707185873431179568247121846290126979936568144474301862264994203341106831503022369094294186714455901247112408756362437023127015212126587196864868052391707228986855176144668015335709437318414689990543249625708662024131513916324765364866108157807684619496648881789229636818007319242536735632629700101173428573179655153170195353079189229247841440283752894135640668973316230173088554856556397162127246373091925307173002062291890154047344751268328436577567565109299511125198924004937175832046462435467580804812835003032394575648431589906568569102241969733698165905315267075105050107093665021431030894203561973165731479076556872936821084649423542298573259813205867389911663326423986054257013889246890993263331657618184967063723563389076535052870459201805431127847387276204334593472733285771355072751498067484714054870261792862128731336418044644553738672725323514631592236557476466796720988023172168989656791628457560833774057276455346904984171491647291263392755870984118856180754838795651046168802457053503788106907327072949811966139600763904149889633068074060518581586821207898831424711369343882174508204019577429665591983454774167412835595600013468302858199510784898721604812517425434670047252742393496320390313192072866474619793592733173911179561106029222666360753948938752110392019701812004951520382560420294084189403697549853170251678085053431938879753163939782018415901852397496997814192190473953825226371397308863590674157599426454088377750818476614629241956039255653343116058315184200581416269372607134656654502293540010548496188535524284913801496407205756673199064586565111721241369614492443568888202302276883776278747727780859669143018958220612403876452530074167577826671131232900557203220685413068513648039048277802038900834741247178044803962694394453562060785369156541938901938841062925248953560573819820761866204658230874762491138922936203056407618262479175672059367475001195632751512216111743614626607893384178852386205898577197180649579572171612800328274257530987679015894969112763153671022629041962652475151406151001241467751961204714314188455092976021467710666775435231756727381806052860352508738085907333866337760136884067773709830527238322566456983004637313648822084278867239174966806881075561823508061953881041604445146058101343328759323647909626541260852134114891723871212977499234397268766155252830877172082529616192876967072565945910112817195659092940014847497092939495511246051463321694711070603395607265303462238457762451740770603224860037783755608026506389577675837149209690017822107437652235938393278421328953566970601829818924592233863853351370861254525295101251561798210866586814257124045373982478229263561917828450519526635805674282152651128570308542305565725195116642840990524153375985874215845951464567844955080859488795849030307172709666697050649481928919921909064902399986636660430526507716562741561043677559588180180867085902700008584452432409577098484489102785619035102127855488655010600028358273824264155794595162003462715726012336982827143933614548671709059156404333834453539187891052677621183137951022305954079079274339478977344812441704505936816280485105073960563475827197694747601273173926244628278756175159275864477523647632785800376922372248845331870391228304336721881741573575077317160161223219104126520981021451246220348841414434065988597502246421156752479354607728798901756900434353975671394515902422606615610711725760342409314670452371192141371304711732389211730772808872366509969699541152528080216406910623865547947719671374538972831162024529728250632660308199005320113837967959895915136038265866329773414823436639680395741518704727216328189048381463498930817620638169969433025952216596439161483548333425408358444512328791227541880703609012434040203397589324907115999220147938365677730651003655128777219370291953862339439877727375993158487280991855678509342958554416625048488952966322858457002781038718885565206572446526249256082518208520054551262684232927115019765756477403120491667767732677334594994604688735678467327613074678778830906806341676285685903183677831788663961094451221639427140955175619071502281553323479539644763706240652352830520677016179496356986960468515041203604623402440287095935242022446309594482830351431989195949032175739354024747127843782652054918943684079202052251675068323798106378109805641828041686879835843620050439656600060881471149117202258304157556842644813532514794107768846425519524513161828293999578201955541395664395641601691109681725179195144457648578713530741502301964070633942756558703683034765185925128975831601632137499783593453031949056691731649963159365843161202712442074278324299486245445924100724922537735333405906093828785672907871200758702897164143344511594237214101972758718784819640936179825652600672769182555217764742510711335154702013734686117982355310333857853142583238300703154348941918794653928180362227327993541212228057381289137050094919707409814118034067690600381217854377162106265371694788538505939114203682073915697505911127375396440765164604720562555095980023047252059813460152872253765670572086420323494682663254425698487349011072330817153139933006164110956462832111920499490050331444133410058828231138668236172552249641953437513225806228363401853746567057472485733556656801932973874061183267349023191116889755161392043684036693096746311548759744759500392446256241444762093883619699663635990730391781252401181939473531507260532920187678541691556653864060699162154184561800802354080643818893605720999748290797574822153508164069130507169346510753517644041225018690199066280329054056192787831769958012382487398244951728307325721785113614466193977300076122906268105718934648321909749099809306707867582013013267211996210257589135753946237711613477282241916411532144269388516379237878493891981575427337152027644739534800025077435466964035389358673952626173579640421074760635771526813258491981499124713480341961312455098438701768011014134369560391703546425044920109073790431948610498053614866045032672889051836161162303301070145471742493482055090976498060990677359211115333768570012746055015229076703326076980697719487653377846367545196209868645590982216809145956475353599644449922187216027652290685461428476594170700449140308567914928342838398231234945518908055820778405927968698298347299333555670222147314605317395506195756501358820930669696411397498495207925100508345181138559152446023943404125895997845083467508632671268255515075280792944068456303539742415720629269448700582803380324816761667771297153563988453605174883189084657349494412189403250454842381475044244361601627081536744489021845845239985272467087433660791055456067365122254738110653563968402219297298668384302044931146844828866342744569710446033629638755170637315390825515799633942111670846360677202020669294681938624328414714823331368210493467592228977711898210685966247526987536187292793791887132883964678086893803352096095927366505513704017845795143126120292680672201439820031524790840727188446575490493022576111091691836817603326566395274308342132807818899581497926273332343333405023159390470993369366968705255390819639263917842218580737138822006219634679163385044302415874696018661507121687154053354751883819604542887545368732906474945001043300550489030228190979885875212811946655599507356154506353947415529326992858281741160222039581906083554787766490016791349564520784836363946176492772452749831030081529238133235550028809501893103856882543595632094802279886151656891520807852209350693782537910733655931361164323580875698514417711301808459889274799251790334573446312560193451906938049407305975617375978034145414107588472430090199597593704427297018691160870164477115906297812599667884900476573429014951695737983595983860996858039509762967001583180437644353218890140023482023254372302200323144012813581966626229099934465581906922391048640231627110458610214997969975241791391974741651705184483496242546044694164873014064482679378964961932105550795227867387677019907373127859745708693783356678364841194503634441401788704029906160969332249646632502312263706663450572959356892853278708324987678941850570835464756633640953201194582895067034850803346463421873942670880116341791922703632351039402214748464417496952668898896076663296314916105738435099007831591625429963221706231909975733436026483424996346429671709389708576868791252978342018902588837220726358044913441177485372409346058316876778245591347135870787284445163329656437485312816749923993645978418280628717695464383264972418757197023646397837656535183306775311666395994945215702140712816840212640464997169680619494636629025880967400992081317464534344103217455144569897171789937903741532454004779897110615582025937981695127771432603988367214970076670759505233439857714060083737288588605019919911062286480322563357996742661232967143803683962173551312054672846065000620833594886220812218983849385686313248986662500813417910949567006262001853414406906406374406206441637072480323103203278377850697522908753910680578608452262524975627513284168938841313735566596302640637615553069055096993046572217562056354529132523416651203274177248954013598364487894504259836603477535115059704078309365521054519812356108837136973242015496256293939461549775340653530652032885830789142028932576257101487659253394159353761030520755537031647084108634684069191950307665781156785436902095095453414070793710870410311212744996256942460581742281494277736764235736292706020383476860885628197699020714740409848698106657433927454412387990275679784928695564499356310223649398997387504923703608383837051552399458619107843338993235313458993767567164338687435384704454811403815665964644909542924372686881449290365347167407463911574407774026265375167562659939744864651899447995372091976356075091995633931471610226604771695368503678440307948773632667104234139934932278179148041348119743002869954410916445585375925742514948740371534836121770038776553165353381114307644034388164733520694980141987551214540897911699528481829834527947698530260830462660424343636928951434652192100476045203470023642368585353932542712139184950351791465992412933302673147352581764735525640353226806863351116379985173656220887053219678072267121305479951469947005316944742550416375902588554762802980333460516790158861788387383368894511099906244472663859111716910405195759235488933405304633899333288110259311784101602863479848319515905347581338745541780953509324077550407418147207745278407815726743805233321198054432598527304004444682625157878271439505127483899281019431292039334775158781082407390393823565441918234659877825899908211918803500178111339704754733420585833729872894623976388523435307710703754448990817312098166523938062922465332923580896663864835828568979065628008563403114783894570845980364258366506451062204688704421237730204943370982571392919494120405807630286258689569572304695875895920540899444181438259093124275514050743522322877506840734406114081424609961991403811809004178536861177440795899290474104061910795260144625152451369991450663014780124248743622588082994964153775045879216169468358315673984079688216901269751774671216838947501650045257157286825169781119824528658173953347186734706494143178363985377860024128986483795344537839721926447376809948741865300514048972822454278011639475479006221181959247325378903200646745190737279353667058710533452399755417492480221686048511167696739718244663149838041235509994515038483363817648158566572876730991472095221099589016613349253180765381381710136940343675681343529631360817121661383867622915247268179817669848107139059675256773454570971471512990051056341438459172879777277531616771069885910928987415416465377649913631542389206275617729698844403946612017591949439616108526176621190354097493087440497023962796158744994891187162385546167151449385654967941635010813828648462397567850166819066792747771788688915516270443336679319433505910976582501815146415833527171775168283275730999393178391418515692375738603521380516180579087726328542607119315298196067036028548783083035386445259391010539830934887512137616626424726299385873218302072752567784096267472787019500999476102327733400683927292690867099278660117852492224637517575648228675523194763725540400755960419226344620898607514476382991628885180834558340439180965655707165101091414068655880046386841146731674818262659611849974288365681000970502771323921940904195474792263932582415295908221359630171657192533614381666849609557357380761464338929207007506008958075335681241333855665037653780306590216778845109505343824564811463687666169255365541608595818527466069743018066247133510067972602993304899102696843712770379662796004575127798554461407017271641083823486494223627999948738664066806719206096305201764576270420914444474358913254925391995510622413081347020667590311851061756013733842455155852698252451104183497855364356845345534387928437081664748233030248866728376450157844481500314431864837019367529159978280477107990381135360324924285887432267187971020182505207898875118156122322234884425480987735856994270248425536501269072787393338644173448022306702586176046146215176664525534299806939971260646251916934396417870041078145565521128151869383623472841354370674824249616033341667217244317761631203185624731958269784642021668853956348510879232493413626579572152880731791861052179045186262797944066217167803559004860033450963786743780630089770468887445614252033036740794851414689976033457031551495673299576883649468472996304905862961900715919549310097978930299253111453768707986332113643655376337932463316429406780299227794097258877889205466484857729193002434779155434679554514177690178258893633738259848343858854800280010832453181736329351692702124485934184789060080473382770764583843768622059217094032372899974625623646871761721001994454875181781675671191791026624780306275943787928605774336126944425627158108724455743648986062939352617031326240955671928631675281591023982615245365774331828321569549175895748328744544867558671352076391363472107165110154622396328813962067586059823050868338765758227812042835516374778988510261467833695859480016345253682638104307995739282889404428256055336874454332506331878481411266241394456390615112497448270646416944463690446830017598146834272779364171050819796656314568885255293874209606494818614581864601233941616999451272347604701312275915872798611054793071231156100367327055870573504155378796203685488455666082643940825729922028542134193908017723931702013023337987291065555507005763825004189399377454421752294542180263528780863955878668013590197204735742148867053302909491298420145412169478178312876384641586969523751340816201612564412182462329780411441397394621273221900934904345051130268899338421511054296782268764397052033438122870688408677543471531511179063862994214476793100910696634168605259529442100979385489860895817342787411595429468079852235472423298203844504503061455742884959623358503335362089203652998201286411025910530514587509234539704760249729334893895936824765528821664580402832868131333870607260100257097701164395528091716622306103822921732675981797735327116665113951825510186002802977630469770189362413783721214694181916989494570218611075343331324382267964680043981206576225154005097223389692863548720798110332223482486040504093191705730820810124582026948822331916134332613632151327661177481163938559542534594382372334664614869371585124085819219287351544353515886140300401844516660432003569812443358753233265890943439066503058714549794536905045403487266683314131011835197151014057944571537228440483425329470210601092374430335548530406411008566733786616945532030918313118581961182708989059828640358462087358701280255173107887208703639760366635976909227461861027329382121067472358281374738927668594538853934847444979049582361470063118317345273035054918734230737408560983657488159461606223327594147393917273021139715295309208068207533910574509355495064407327875474755176034355261547110788379754751557997317994295583930654624429045129620031184119250884311915557839198459062336537110205925698596487820644065065330939329416007809199612843076363988119437929596001107693111149707957051889075774142992070187509427150755929554337400172547880793564697487956354733903152316180098606117904894103659768674384378560576505792597434502623954697108039518514200162637940070395429862462236978510798038941233619953941100511130784159286134074768241084819520022782841526665480745546715217707287457430075501555255499347346079794583911042696406331760180926957024057366380822188149112485547735910807365178426549077949361506026888211707393191180502619741826920607361822938853531960889789394989486331092906706226723700930497546517320584936213247155584497825205037250396236984090125921934052430086029029540184013550312159589928738797367285223621961082879299351131895746813643830602449476033408973312323399898778159417511022359259109503521340584354834729102976004961842353909029018819657823220175535918512960291022605894729726934505445027217278520861028698507636281309678013378079198689988090015964073028927371324285802664501608597728379966227181581240026981570873314923714597350083397218029314725645545909992906235588176817257108673851276895214707742010334009383114340942864192926482270305410482300002658353014033257519661602178888245801958621395256659740203227897194115900263074210408902172583484551835632620128906463592193146609542498530962304698638212951902196091728011196939331790419680041363010679209546444220366492986396669156287552807523234824346462370226285541789939656482175102587896965071618772186060271250542283058466680295247616239124341711592932239642643380754975913073879011004230418360933966860619003482852095131261725784704264741457387846091241012619440417133249818175516594320369430885575107383818919582348532206943686212165460870704669687922324105528010623150391441196836679005494067504442685124156602292855332419576377589365055402706707520360466237954326979150322357437274282253662191173705668267987918421962928879228765437078566689872556407642274702042750857238006722251282457212033551787301508245837173860565108215183686962601538879581383427155353968068030462656474881639975567827171956683684722225047040665553082859891035339878095679817390294268680119832575701687930519632544727749637652930626325607326718636706301381910226018765681473799864954534606524511200464709036250281149079707358556475349551156391445998092745588558087992242727166117336759458255184456570609358980464691513353652242189549852206928293633986775399415360858823445153599083012313509357596020173815923201873198577283070197983437393563837635034315243905751458488818027906237000744011740068710796234832513611475609480784014062529421739651389398500087724232862648422126493108005996631156011872896143817718218292577954454725763511305361023927591763092787936481134384198154448886257681046675291732128053284288772567345703599833916890537248698100350691572871352376189533371531286624175511902819048536841853070297644259031187801668018743022432306965313797660848712840775814902393812483851237594291111842281374302763877729560126726822642034837314937077947836824676595400493916512133332473239948776671547254332633915662635965075405988641128209930607034412255328414327112800317810246175730704280019546249431820099053106082494121397654149988107367599522330220466861194283190908218544652872418870251513928461671485539277284360957052167294198207645293456610745271748244004532333823196847072540437017764914109851634992092923416133007763149804504660965874055535999535295476283244662982348550700639662128107589812464862893036433283824735287755259757566008157111374738285779980662671392252745427084748203268992815207656170074141337146125131172840429527557491020027844436981737367297873686598478064847575927399405737272185338108465199097180127022165217981432289950417835922814936898722363031706412345719302582007174634285221986573509323282889109736304252456586883070911642685281214101884397786826512177692193937190807968401665268985411973736801697974978859470800313166471023510957236189220238252213826566832954120996541929384382144199817300017814905162270407624638671039832226805640355103829410181238464032118597985284617462219720557605300710891075311554555969763404856253613381109803108395782053350349073906025471988503042707998441195382118338227142419506625896087145128958713942055860653779567211846573126658847266048985005324919769812319798979108003224977648797987910059963800974861116422320909114650023819078421759315093305561430907221137225229792297146405658468799956249780379349618728338076278919770947210158746500734830054128866113280035817154899233209760039072321669566823915472522605762502528696189254919582084955928841644791079795240670205575113628408471486376355329522781062019081305297078846743585047369894302295539857711406027110183777821932793641695996866985621822191710934246203574955297159614457164580005787214500430014625207261826632948525135908247619263407438755456650319005273660131507231232521633063841316798355678534232974611408361496026884929064980991195421002745500213777889252664478210879587497658390267827279388391088869257932381440099028352618667681759899738031283754550359337425071565371659287302381343290455716419027643297292299443052882334375978057041664814021494105058925308936629269131024725678520240312785536790081500369969286877356984360121502979686472660698745276571292095460434683363321671551041234242257969325786743581264492572463824890210199290648440605338761073470847575710636285679581324378843010142634833467743355684703221929751683924836378127886009129884704947562176684139857003647001465642375587676225130622162782858171140108500899825561921774078568478813623900380440594347526892646027287100070946675236779295365989734196821288990304128618251944303662454273603170535061675804317392989779360891114103486988427016548968383925476217774992895054672461877858390436734233170884816778603543455218125243108395592874991749378207128122308850466132462683808339064245996929030276765824398916693922834486764800801977728862908991666312685406365594821084185142723868420448156295581827124154003320831484758462017958023358467840915954357924644522235620622027669163186347787093035533869024361279006493347088730931601590388043330693567945408929441061195698067866794540693518199162826371858975386359416267950755307115159965904036490178198945710588261287743929260851328803014614735258148039413185494726473358025056684397434422631507124238972916456659163565061680722019580259025366157991072764904133448363025309340313961428490309579078113140593180866788064608287701896425153238912452419468954242033856110667802779064943110245597785388720937402104094710956936330131050250798543441617056960278535991579051661109337233887967792136476318754774412193526718010178098111871793933549030794906547131732396420189695050045974113646104184477736416452600557474777609825706939061506989473671602226156552752825482199127324725760187719470516400579184493905537829131747976801124732345867448567276774661894261440587643426782785475828122446342642751280200429021302729326757799650926615082700824580303804846338073646710783763556712078585750159001734870408908308603501904034779965675459587863458968701394945233078886693726766445226257699159291055592191760037322796632025769425598225507923744607789233089201383088668081816772094865946505461864589620860917616858639672740627041226534475693162672607633997697610513817810638362333903284687025632598521256186494847151378257867155450507436007638034418080236139416969249696202327241783946201390413337625870198930431772375939669023168933967415796000541102664338625302184278948818534905658945206184767157028139629203061128060867777080726658604346686261222720177437334112701844673728922619855300183837145439640478563939898309416599494085098058282706044323806723597496104834108838742228161581104370769883467040347006031208961508207998078628578652419242221109148048094030669968286617966652860933820762245084669305857139210656414243476287122412244342486732519683538545960298197261584553924837455680791677938681366942321395647022804321753697308424651862730187803622925087985034845283226609233648990286968646884053718600032944919194882592177432622890095502685329735074471423891113704893519089020557430953920609924647958673323365450103777308547914373368508444294134266347800208341799694656666818959596993591404824833332823480068911640892166232283266529351196177611735645590844299807973600438761626365850900183881301792193127954702987026363591357883700461976405306344173656429619918706756664897028830762176678135485748443852779413497703501184502383353032921128689634443866888019763529096233517741063506904135343648633448318953941626803666885505509927388232579342411805715432127697528771620857284843169015555438632421013177511822623112464866297450717905726786230452236086100524045076777457926438437668586195834197785108791911479779957705947595733536270198016759106844884563352566687473423933030099477825781110598603299400457899747599826096812840404486538127886951505197249506573633927185850323083676027543806189286242450834451639148535475297745250738976393467916176375310909909277940444777413334039798761060589958390088186275111773861781825509655691607507652391986627622643225074833948199058363040489351070318913758677841348949658169427394324665537060649420543294432197860984813421053260435432444290947690861541595331743605780599166674876928685649486534698783790171798991656651626361018106185036423269313395129558879546828412674615422110207918732458119053311864300113607635660772615572956128557731685609867078298062036401111657142340039065270459609932355124172480130113696605965001921392925939936692241286451450214011901996684777082451595432158263104982858559283347417267843495059390186150027100434322847741447501109488333420585991083599580648720017197845453656225846553455507641279302054286798661660615450247329750067890791896773717774813076014447131880318991387882586935901893619734551708525630393407733950284488881481713178533347701821902823938356499736412915378884544602285990770733984734920112938939816645600643294460897181240656281197775740989164532587049883813201092986058141258953152994507393383473827477596399896249321045089452474952795906687017433598900740646107865722349959399273408513771348796625544718111909312297076186549529969861900765916314464944100430781472852469971364833925118664448689396029075177846778568198493983192788806615096679158594841532521770651921752882606087367304695047659926575379514512100007787666577759984851382318887364404161057331327843280328935048286358171290990234190697188335805261201815221415784780408129790712013299073069383240356713490383024265056190656491980043847366381901745035629734732419519714228754216606006594812686273119146734891236835009234804141332961223791595300023197245868478655447814105520600995422561518973445581995542797677015938202710431806474273476994888382415436845937302662286409641661552084082170868504626944797020087080827161711499096294462629590483190007237477303496203575165326836691902393657193330300937701634723666716817003570040494005627487200518753424091507542498351730290512476866552651236096466717763638563238531339471762801302372390617545568235632116689134160669385010153580825331630258262654438396528457884504063724419981898683559138754390169304269567608869388746303617460497914615656038214560381254512055481709727631055080583474897788160821758527236047802633931577093251867649722040308994675213225450934431519405654977160026022231976673673063899753848716673312314147998335452479194480316659770339744493420626168396184252822450312197255785185815333436351231603987573710310966942545323725277976231329938722202906125101102355060509373767336136301522213796430223375165696944215224616603466592127290755725938496122866804459362724831737117591106679017092496290209593029844244044830952623935734772438432647361274126367668687420564873582316598182844068393506447417341666436003416421463230569249791212324952285703001610041059180616513564656465210346988086801059039549634132706876720699721189011406545128555756459574174356999696677964647657761194854034351942288976120082135752771033899966886428882578163240538750489726981447678031339177890050444699694799980619408252186571914770064388579323465607786345853618085378228800881980261849696189140989798413673404079360401300326099576569825850182243011476283979746497547312155989842492968478985320530755497101199933326621592528645572847367340430225683051838943071042741662982950775510367957547467433508794845943864188404728483948025575692337182418802698803701834444124352764395499861922816317878352744626433995493654854746812621025403648865209031622468123647098417595937659488660996823540998955023453149996679325753201590436003160298683526009167066317167222177493522854639209692621588231613088510760536262940725832536728829175979105997751976930436412426206308963716993395563074648949528040241839168984273548006012070115707057389170211453307629809417730555393202639580892582668846925535377982778750830898347918545456777740404315206708718750449036223710741415651460177122647551803713406342138178741604198265059869513049861093490040239640565792274374183057021483852521566094969054160357953794195806257998041171815057321703545803102729965549796832734346276091326375175853471252168177158977161821283592825210446764672628988146623232887042347557699469854048493877244422974662845298080671725815063385475686391673232766030986393049310119586048882529291333980137382491938848267362580238249286121976350609074981752772471927996326619836379057369600856696529818944274197100219757741418919232741618539707716021682715892627010238442710314351256779597550939672140567794364071986518169376565013730167915410396068302131110569822617080469756203077267671431796119876402055713319375370606485303722626805118944415775666168083280132228934460642500822250727176035812218998907617546792004497183461656989874948531213928665929569797210871979606598619715754087682536562759501084456441998651857348760375392048848062926903433502341899575760236713275478581091771037036735831504623025338800122657374350140877769130823828957950757621584956080047085544026077723062505395850890088767637325827103662379298149267800864168123961429937817144972824223430571995591452971620616387885573193116914644718439274893650516832705305759082597207752893128298220706545026322054654161524869537883129117007263046395083492078261585568825756339566134615682592614297229879590387947336876248945780929574810076002987457267779517283848891281502221371033983664679263802800631945995883649214353259081609674111090467423834445999940206879754706604706505262453990504694521598837630150958518386104223906253089864775557926719813109164275637616363887936584287714337893022184714921025441562629460520775094498724661844801642492308543506776927905299544635002698667332580756325592656429759039416353379074500216729459360838427538059809839803081877070933624736283112418441774425134486453018903885088134187653465903305922984071119229529067839173932462503557408453359061224551102786108230566344569927646050218628217768926677926618502024168097857102621227885575585485602719883894667085284813405830949355889653970183237872104770650699008026944898118173197833506054836550935643089944632573076398558612346179208166418697685130158024299540153479299502925418184537470864220522989449531699141476798253176062696752283754677209595012554088592935817108596553935662158057708098696639866568241360458624244739454203248790412982836486040294002655780272300011378155350374171378557700088041795060899118661969741261294030663645204348564373657070076465382216879454406992399673348629419611053840965886574436236421566079477206692567849817413767387637086303647231440497678304339667795711699742644623103809037170025773138889013381050426777663833531027108777783981345227513366941589265214421611034550937939690260403303674133830031566556200945827245025397950864920959768139945975261932669291309776413845240702895428821819304100115496726068549848735522002756470423785703757629932861587697926011189405304508221926721034583094049708854519731422304663079636748242521901663478243694805874070304384615738544691031038399843224210904979914464747662009858090186180433027980912745517977816667381889950030029989681537280456157999893818970839804780323282980998681656177322882688124523285244869941583686939557587024877107241437897452856944413703102294069472068446259380476254832609760243781137288556157390220047362299788827206244267385938658643492964655571052477596688986520169794255185253363559188126947495350547492719925642676506306357562039561249668025018131924708741590955619853959705635186112811453450814829456955959310733646623074055501739240691828432774035878354648790540424236869792642246316189786670602045328446237942487156912109444038066007999698937900299840365785340605716231788616921050517345069801220727698953392695057551991360344994752209434878672704323070433246513943363716394764044093670367034211316744757551599708120586597976819118659231816511940159721207810610175228741811049194756212738758618436878965840460684449799490303322701148958174588460524424625475417705833132622786570128027727983428051248174511112221316798147522185207389903639127327036645545205198520917395672844003852483886928902185421360886683215122604872760788140389091468813046066861587008273876039658078034012903211562930163959460043284533868272035300565202528617580492008103178155917375353149119508758711963855116599750346360064694832717077381771572897440233776578967286158212337314025018815765636313656223978059302848738683026426353797982658172193023338228294629537536625442455751333721047260336876312313560747012936946666458773172240885657689882712553815817192930468908131691367162902531542877602494407478013485480358644031529799642419646333043282261231963066986974545825999013946414275119673216307464044008753727193322576305119197573610607293172318701871880436049663025878793899233153253052817014431682977476182963102388512534777520758222085933226675201547605457442977062276085356059724954062447237839950887479700209654594796738763392363047866338500938735227212812271658448915221120046354267620801966503737983699035442226299447640822014138238350035203396527172162819954404935186216699207452741352308369725700366831590759997775913883025926798540372575865569519256115681790856605582217624057539607083579736646049613122351801922293174524827260237850911323389817005760780593406412061633533050272417869694065095958152035001285052976665755854813252759615024923470126330562288371764682783278727583086041082881203865622674895914950512480790330279306192819391306515598777395549527178713740760393875715215973966910884244359592099525143662801342501769725251665867998913124168987259624037978310166738194667322571487253687272523371692900556055322343545893500627491627448837922624356014871563262129618842188907189128194977590567616143913334307689991836709465674511060331620307774916162520075042354897529480244899451580549385816170772013866978594024281582411515258581303438761182340209183294848153802973472762375753935864671572182956658573863366464579627105369338079910668999364048113900513925229834225321900247122255669552849832716583196688950198728114875903233469642704498999342029425171968204205323877421008392743534169126840403389984741869480934044109576784428299056240913868769045263885770691996379407464032424285656269380756155520660992039815636497855216852586012923397237251215888919321832016256955133308464666712051799175393223880180928814513751063718140964083651795857114606988466103123620719856575077974288420918053948713470884332826120073782416716269198564681275270442300593962342669670794908844960612287631796121620018020398138150272974680193347200511384173291858229894045091664735570219875719758416114888647667642851847630475298663440074874201743941825974369574385625672949705047412525201126421613314292189045916393770504106533703058271796150989221246927899747294219692298584679329875251219625517773375693914910880097316666674598767140333412291869034895116555370599935617927906887003785008690743679097592362592590537826459762620728827470546257676627289966099105334328154659328598905942360596404415732680313383504076825564129205027033546955079414983675556090158722119007869768236764767076536460726927590000706699412764117962009191079613306685984317952545817094500402523996889317701506579456379728380245665263639829317859795736218353853695006791367850153186360994308284731359393156737965152751390411142266625217962351369915999588200466485313514674914691956644997421166946396487690638403824415542840740635458046086672624889084744999034212632285526665953289258605007488461728496688055984282391790321155659059526555347747873714958068903591722913778797978882888528513634090609017479583250096181653226008408390486142401368393906794509615176948898666480559442114367906973694651967222426752240280875338154567119391727978748874804968124648930584933528898748296120101979384970322242995826955919495980924311699806362736879211827148690349125271127739825002505809226853080310424517708623557717877245965818569328968382251972739741784288996285131370373096838004552313036297728104734054343378721299395412170221499551073300843127731115615448482340176188545723444434093573069437504833518090757094966844444260397216703758781973879412195473642908675640491143291417525432533378995902667538145624486355088684697409328039276890003984350574321796861994917771353722235647052613451113708329327614479676787744747098793432985928142561120192268072664109746231878609173293825802412183721930013100404749053049134220564984002724521950360722135526069612086868775899457585850963306522684658891873313688906148579530949931714397918706076223778819147911929975672584957331873378569260366751145211350028109239648370652307606070961680718892741080173469462437367908005584388597813562221439337155566173160252072068267722461198908004421402474964178758110632129290243135713370883299776546261031822392811011200576333028406511269342198790785138526261338488325515519480938620112952189496371764122128439967324360425805749480572380955012094626287833465164020571744139852571013684094636581972210881729690401364722390079738095201896290973361364640695581731868288801362663048801553317767074678210903551791587271014130029877282391998127423791082993548694078207195292155723433571921122886785536105203216693020516340529115608882519730329732826095043263491128801275739302961779280764045422147996791045339123799623072609511324022554837780488951728638230326157537926646601218457628069008111013669801413658204775602988710775957767476090897586161641919280373843695184195111142309034830170805305806850424241023487488705876205821080967468919871238334458942588035192689365643809684656521812439861860628225281823163741763371046838227823602638367100131370227121686991405117470488941891210651564693537591149439751116786141630823157465212386062049341302674186579449016044779899712085314211234330624918199192566729376572789167775325550594489440617863052593810659496098935876427385434409816169703554788482852775400406597027809743931797811432440780232616164711096560805287405271375729051815007377854962615691028419003655007814766330748696753728686392434802933308106614020293928891423269965731396788252783283316632433114542213278011309690914822352734902148132164431473009393820092167246407242859312746397822781573638484192879420934619500163095646968502557048518642969360521765320648719931641866327464771446961221276426670063001930484420498381623785632222792357987337706327722909102053033379561045432749528619402339314102374594415489940644797640344041490053212525164509858878845073590391017333282589365944540962087365869366938619617384551644027243711036548949523137608601649802933861884431793159979704838958166723934272404353156205836889680364276755537018917748134923498333745459255699778118724600019940674349623667478552745496560403657453559460596382256143822515788674733093262923003761642651653194656351727266894052695678078325293076441429515559470156433015209420962614831470057902465483565233333455262898767291606048457913423576270269222369339768918180607303239182538643567008577432097485964275014503908678903448480242347885025311436305240200918557291656122336294466611840832434825257046944019592665917122858898856221886964947964096154926742555411007764406326031218510767822193382139148462182912317865501056560587787318178822858954700674514011711688451285666233846646604129855884274730416408875001938524693550521852379847940873027172881534021498725447368927600273592995822938910623798816497985440538638118881052244042834853937937542253828990000103866074423730696518491004486353623989238666012043864483865459533073238565329399640153756915019100750743149583015923399759750749187865248424638892234985342700759823858048726434503106804503657058425117224870764316606872497434394978038555287808845867985657134863941657610426563083383261378333099849538428893560151282637252623761312340048653442156141450775834206231315059598641014766812242795928656770026139132398568210422585866743103053462928057186760069283286579663856226213335363768674624856934040890584634795208530184947597745906437354680866653773981574324901728822070872213723386545378701617009403681908587463380775005766237247717581949699360945620644685747136908875777917943435148005656071428082933164513246890697097691471715022431085696276883366443831083452376222764487847532220070340513655706612810807266457632455096957890419284692624640125798128800870493771719692646950397578079042528851511366151145538311836838253464340113420032233008592367441214959173188699072638617200754112300767796251751693535598646169189506281694525373749841735829859550941759270400826786834964292487375568594233905627177117506095506705631511006223140336126767332180046974048207797803365959595583748567805559784806116981072704292897258256131988053371040649230548251803463509073202722490896104775229057339094520949996905207513967569436996618773002402237296750972280723744058286148166152805356091830303490264109526069579667001426215201785774952131290341697825721037272268084839523535159860613528941530957870302598990018556029134560745338619533635484595768959586137190112418003880434349625706156464312009787944562347488426322275871374381412828128047921916018111737324328333932433711493166075196024382498542134739333847223513951279124548068921171209486787283536342350155383387819706012313276943186067598530802208414007847568726354959420895673217033691293011377489696305079457621799240902094255709367346670106080956865320530943489279733104442943242794637632777453670364133415234313931802742863755473475919326628285762351588094613109983110895269900835432997423061600692403255862972210429219269158741353840787172556622926988703590146818793348481559834091510238320615830969883952033784003331840739455676202758716772362136021801885388608977763247207123134641180453099473701482763434545825311834475565527020347886216494960592425817076135267614980270581747548091012141508151446302788139025159439363645421511902625375234439968290788490570595352060553313101165436775981526937728506181310726270410010564773606348671363833958365371815935233644979347498833277974947676481889693600525365540171974815973545950854214920164196298307402893835017930792707675839177325639079750305959697054128557948990211010600196660328652856962032952306738025242069475272764904478880716161624758242555660739990172435712622853709596915985518913023946284973988235033976425387314020899813950844197136201072264214859926406015010431846016631964887926990820313014346317472445874630292926478003562791846830481839352055724658024495252951001179339031707030352746768555111821716146755789825060657035946590172235138607697383226420385965673423903936207498611072251449046321194967099279942912671009165411428750001022060308862186117017523449506320723742091910875280220562560283613569325228903855384681750009317022121582716661762471013897977686526234890970906687661951846934104393721912499190210993233629861800357581695932368897032642060397265381623001215132758138366033823603623964865532307336117128444347667790601689386881083076896045171834860154917942086977758620828792962272126635219320135281840984351403114143990871441504565234568668078847337618182127546895421302837111715623921552402623810209036608081377881033771053239349570490286137645131745887973635096065908702457921938745983652479782827555564636929023779367147786423911586124421934050641062996399698813970479843590357970346234340518786426083470120117202963042203860952451247169476289772577432225586227805720721511866728049957508517759328490978000018202970717965922622919224671945094822942026748692710804318401542922160062364194232369469239331339331589033949122885284084768784095490830286106770273637481256230110708798161008151625765514301942285778142633898281619109289393649699925885857020765351063319838201363699361789174517621268152403269335966155567351846168623139239964830252793639005278058587376450965050951023171164660244748300005971327044434316177992574477962814552653879529499563649587220055887947373222211585405877323639764357180589417541265412649150018212438822274008695093850630251216304290499429583616313202110067982135197322417075702030682156260616499469050628591825656603820329130262477860639433004623595110463977012266559136910031715591695639058347420341069416916588222889580455931412258122801391033037373455635282718469102166514928286563723808110753974458882507927208852767760713000002301077788698567303591639970189131788650361997926051665678152451635659292830876700574921371166710993310980179267061941964331009820796564596111883997088443651852245683059754850445506342113082823154953783066794032811932349645710489872678053790532731707207157278566572467939392732521701691632907890466291966350797182312638856481960256566045170462125925819295132378989582785442331580796560940250143499777876947552382299008092837725247087626812874775688451268771995165533463917618239113622349332037637650936613185647637343327115744524502081635867290202462250592254509562577300170057169324458940119695914828026228598305243597852431048003927071655571603423788858436504963326745415131787509896702503875093250197298883982848047098107682947961266675550160352360433956674600925202070692997837662726291839937934098471558174063248781228244646763758614969480892367515318238432120140604961122146351322735319131280193689601838915729705795017276134681830755798017720023724849804246947646715955350254490146757925615181007870251445785210090260915159697955006880597354669601130724531989269444216676930561908724716774708304068843349206118280049108137130831718587715849439993064619951418859889480479910803649253601481328899671473340053673448185832746169761196778840043514340540204469257094358901417326497339619283572770305568393422279586312192876268006375392593206568313965429888527877398204362583167043362712999482800635449841025838170709721693812111756224309531210543036482679858654107098084335172171661897484552812473026851663873608513183515221839087189905161279426176845537642395786285326055363052026901157911892378142147442565657305547415795966555928727238330385789240075043220457024258867622500599553922946255656573435139149313859741460054443126977216605069744258989921837700417200400747976484822095398446792755443754015527467365366914925427491074461237803694758825249272126460411242658414235409469499495774188185213085516497209629210601038400863925063295421842134029484498882121191271107541953606832332602180686158959633049356487257449068181614797767497160331670160597321125504093009774957138551425654802565613952307589607554602487519621054905227864791626408249096247237075175988764485678966013619479666405260104634266388480099494086405236407241742208576393495252373884589571354184202568933158763367385551765406980729408670730060771544573345058179091283380881683478000727726181273304113407903008661521571076155589860078022536691678741851802237473649586476797341878038567150638092117196658808973417877922228563322933035107831987655000541673819115544151232926219962035233425877228489302867684743735121618854214123477377036775513622861676368790693370438273659046199721392712472684406560318047001197044725633731973021934185257745495134165516997758254067178120695998360655595472017243724711783104576882085308173066003826015786301151688155078955685818660940769589092779307768937448717843221949689581142999846160326671308071399598468375024849042915351871819640783353730155159207274938836801734482368742330207640787313347874877057360654504506553503998374771160989376244420457892292601125861104231157234565714580078560339880042625695291495728980594232221640464090689408326460402722440047100777462773890387709247362276787185174582996431830389418628735551800990783719992247474266268766199532264833919490278330249924771460495395276134211076344410490120494232330980681447518435307601905119658017336477660366653708780355382684201987915839728405452136614636844301456320186025637865153456615067123788431783658624735804948846615017952709857029791235130191670597113481362545491010189293098433338952343686650944256761933721614385696661256687144936261895351071303271321810017634375180523504393399352222318153097522144598708573852686737995632685941691116645185065083873698059662678285449338418788983367498252822424686802253433329206341960893124940833834173372944418211197934060519603293785622179669499165172381262794682490575098372573905677798174023143088956003496396363793571214769040267647992096925256593959862492789799724922766944262385695346526398887742817685260450823910114171051681955095263420701831632776990243588930535368731556873234597559088842277760528669793960394388037087257578564991425544289016746470947796851213880105953436976283489423932844052630088362633144303623652704059959291386434171268455324756452319337844682877002974164138734624807284323686116198563633470743004577880100669406757910190021134129069044726306692976298976365847199572253848255039517389315714742737250886798199698851704226981316383992805706802419776050048678527155036979344777692979148338901709747215124419454147772733699772358786161216829044979679768888915237923221025786217375888687479082818703274608054145732113581957366359790402087097395878940084064558107432780828270224484851388012761053047717503060477111238643023761314785310787489914658996844794165291397159174831449485493494591415666252370907912595157681574720907758340008744582275641830663061722293172059974374289170293956641859330897061177304144917574702837664124947429425347967623283256121642754847594133038780992237752522506755304509489374037165930901346208613875263922159874308573471698964610687259279293806988103540193657083606193201220437626703634755103895013500388614162580824902390241216621925431820274276920277331967153024177523619953648160091484896136684031329535319135237036518467137049443927824432774556510043931026589184462439092964779211300796544640810287160087410457785302345629311405018310608247029536029115063143275909254057135441966625914881934263901565805948242756673390139115752377196852292476664793126968099141867995243944620760213836179661503845829783801984335533342285549988828011683494968823448356494175335109142045478301512954604667655994528715969597977735478171955754109270124863672441004586825115440379837570116821491904122662099328110737697261583941976254169846828193429110159331591651130776421312697659640222160223353943770666902461112615609728250888546740429897363590118421483975252766149332857244907948216918253751920031802983132490220660355828097803895437898172234810559581697738958884686801877106174117176169313714795941224919474091668468135174600817740921603677739506592653986808994053607089968950427163868763715646900693794152631293545678079189394640955531708278627023788335090399125672894150204664042333799398119004487205084881172005027663995749308997360710578442546757338397083932890973346077844693476414725280383837226210487884446125549319308946977810771872908076935166637664122974503793048941269526276420782141871070498931753130095059357699423189513985641595524176491674932337870782628083031013557004125753686249519410408031270841244410014615913346134352708710884004463462573567276858523694491737755710289880559717369615746993623199086974531799611071624057897059383017133049544017467460681745934858119503558740465326088650942654599454608567662884841177818811046580866357814513380062836493870769316413016193386240125592612149043447122817012774845917944950882318087514633020733969547094604636734050626275732204572304185360184796001963825695310189572310322076306199211424664467675559643117179316299782884909602204264438271439335510282832070187551591441511037516593254384767710428675346708617371946102199042201184775850086664812498949297308403318381936566553496290019833081870978455907023422449221224347652012157970486172943097041208346580800515230978858948458160095612296828646501295741373852718457084462298395758853503661137520880362880585791265006478380441632368906388720807821096496289039691193148961659125233963783665329465763165091812936201731661562984807281657246993509860476338173196524232388702172797636829405109539020195160570389903592486497452651630875973994106979471637106290332570709477416828487839543199980388181028153038233168531316674588396453306078434739237349185825530712505760776904952703112747137104883635381382786238803064030502093261742971185497807414607999340242438106185801251766623683355163489176189138585581211570936719092598313073333040590959490991460113396412669881282332845668977541757559634718660249588794356749244063406933668853367065015069876892915726620661625678757653593019018990823798020313471635637718777466113333877909010103086262894136770178495208250778576594320172374099871772642031610629641271634529075787622962625222131608003157834730391825784930231515452822256934802260995102484112678776960860678739092944582037934351315018641526925367947210156494446618027695477100671260244767186117305794484187368303944937922753807619904866596540256708088129774453874328465914707592365105892688002384077313649589818792996299402176202285492087741689140560982089576082806320263298912262344217414788675198696635717933840954035017999691956258188876266904198994996036340107301218209395310390155277952748480999149727992809622532771847328769628349561707278617175390001919772123560163650758348685137912062757314781285519869411170780758795380507688736225673621831718651391779862275810765072788101336688595996958445789696634830850934770170505145144578025723611182483904738423429875323525469341596999457884985560872095056680539587200802749262006303580733262736018202140649788495089123362365159195121611438523426156024245384735484741760703954950787980019038519117289464505445266001604282785551845756324880126179442057163535668654220133352846808035919941376884852497934542223017090695467726224066685415171766277289209114350977751298727256350114109851076135623087664148395640125948708779008192546219811224792534540874619206793684975142899695151311059725889131497734919292094290157065107888488312549776628079813044679929134441255025804275294957750707330698907657268685199741797277942463452391027461471087672728837146022325331006425773682385983604919585967118725626353880374497249200515173537955365729905384126918963148555275282154744810926957847060056078572824734578529523433173389758822261449630503578830169390261049296000159106462922891153427131089882147782672286240364034141348472499319398933899169851831871137427972810239664723785102886730490689187681012970546885785438738550121546243491093711375140719880691765663951720015467697263323219861859475398921055821623414263379017277785109571320216751814421088695183725801164341006147205575518611245686079410510533394339830052224321006990725854867082738687092936367935334246847216684133971034601202952254999453758877765186208724160966839045290947408285596335519613215427679562311854742235773318224353352062680259617314955676336175682251299941342436860404466533992654244293351744708757282854013689814317598743751828754208840372629020682243374578327994199731069448962529095084066907934268033891497842463493955658264169953540664799587153171174979538484621814485222853447397378830597242193402832358649106646024942591375569866590881735139969670236335857347731388073221569277727220518000257189518776229056958917668102818092874063749511850776618144199782958347686092317647618754275427389463454593110234688757166624620071623554343841966558807576549882637008649679538958987225245259247107355351580882308655919803757473621700610613139833130364017621147041638852031222656399879412303427651882361316580734812676788141492383361193867143282356615030278869385722022159685740893916145690483968317362480800689721192985661516180955425131740480566402725806489476932624183378655567503320506804353725269414089665045475072018892917088783481073974609853933577587198105539137655630572917338652831075916364197719280159648280029305670062713738405562973401952896867995482047361585433057849856211384277247346211629325987449993064032950983743918876138221393468195346996037859716585238064143487629614849187444325708412248271965297850412779870484393526085930649718488187970142525049733196180250747711186544554373577359111880375173145850193053166277766595127370184389320689465629652198472628089918534473972676165953398781033989672285069751636936158398439106168324341291106555246022282123004208223932693182344898607913358142331764775765207510026628338555093755074262563581664310699343964493145658803683844217980454781601714314683169552434213090050732328773400494670617142878775151531766082941950909572306956915634218743160228576486553225214056497672540866158190238318873722558874407264475103819220198188156422544550733793419047917378470577235958088023305695930705794853795481254358226346880198904743154551081650767154779710106753946775341660578453728325713177580212271724738668864628858475107071032397120125965560684605696683326000606096043793708291056899231024984142275524690644992408899449155265883118156021404258796270170172432185641076929648438894905241332583244075521753794942650326973019873703534137918969838295249892230218013008881430622122594707369506433653260070698965443792532968992214091679322288870772805384706748928426180908134648523328048193456194754142390071207333922538231482298014213853963479966425106943028656671230955549159936224096516439258923246289566095162511532760665216023336715329188420437869024019019407974727145063407918927443287828934415184578455628143397046011460559639718500129620314563109451102777575398548410622158257752047377705115409814029685209388988985686719365382636282706229604398870590369250533828102572139602015494668613967134228525999754090455183960004529659693863336840372917521056007233717084544596727720651412900206179747345642888618996195484167106279113268842102674147417579045558514973499207878121455405666199797431151664934851744494246848818579198189071838174451228222427904690863348328341130438824446958347515509540947367930057146363694617277524841367163451849047836081739763067513893311578148171616042705430690179698727746558767624460972825338066661837014271961237066444725786617213257753049626499362922316864909161940284363994614005409598386058568275450698189026831398897657239723662447606645195951427667696277753376583010196868582165409313856325157175101930985915594062596816746861471319575549089722306887846141767657727214424921707740937281684610397774806456724509232608011821602540090491104267621899227593835771656478619195735927109516446705592113633010886265178058448614379588769487847858715291191286172562517058471306297025650596902474341006975752726226401609568663905889550026305313699832639078353854583960460627872555886788623128311893968075802967663316030488175936284309478786161679598791002195305452499822587773726933963514898543406862263152811373228922049909634890956351621248643725657615391769495472099603312227534689726638330079255715684397355768105411518074490026833825535202528546789794560264981051939851360309928812342336274062882077836316475567846170881319238372133853356063021056041939506598276646105652812876741737051184255272222341532247320723701533536065105172844488766726833025314082501027636809851353185902909964493386538996556432866066423763648222842977520660468323222146549402928215593632252347530477311671593521932744958961102510888154847711268404461058677059776162237802258178412550960749725278015423679238412007603348889424107798718884181506074382560954455319260337711104567899394009478325169330861919560888020523009380743802595791502215538607107082597297156827201562467191500704817250228350756029283254823523971218576494345396349448562986931442378537162033144737624929278564363027667563016947673826295686182510431727187832141791164412137135279278475667591518802653990485214059898168578478433282260939098579990852871810050540780437059056499076802738190959445838420248355581573430569382512451156209084154401737160857225177378417483513651941407920991458257723752977467525231118600552621095038324658958708252109894549572953159871619313726887053692497122006642788225797075670273880195602727576485147180965266772545555094863343027116229448569498259356527662902796539557647074148562744476349134988787756184908272514533810648992152123274572824678220731662863760577540729233520258301368021672232886027540645384358626030829243570579349415600330346322016318991549557068113864809787479004675827016363853060485209373219893039467879767201632926619951208098494122924070229483811442595149686180938267554753389015779932817275598652730273269467807317201083617481258462351297021564151239724231126642660057942321785142623366407550447127863444536789294491677791809876662955017664496845502387431170724229786510119355393421789385674162103539972602330624161709684660043136404644508296519837459157500532232833197244683980263527220434289417451697918782450857074534148862197549803153523615097144857945264546626621535408851864335798249115832073254078678569259292052008921260257217707334711274074249133980432721782228834131860489754944787062415553652987139439974409099790157552178391154398892018650378230289293333590051848853666576472259864643124390647287120143400559877178766397609782477935790411573988355454451510780837543526603924699979965474313636703798135908091666762659051802193101318031280968574267004718750423727397505939505982362277746685234176879739330377470176260003337548525898775539727209648710095164999685938480949811879930564105387560468426922557829233656096564696072896388687904702722540140048711617755679905127804351858069874928992500650014266763503779825858429323978354629477644392288889480413872140151322795694996223585165565011564592051054836798701595574713510376595403789652926474039293623371592739358568867768985654766693233594876886916346318306363490475112767971745023395553367628758415176172849697177888512776964327166369393069183704594915293893467912645376414299495041141464641533856264092691426062179471933149050728803374475889470514010504882439077019198151457117136440468533044558975920076708381295272184969555304899177822196203844605216616918194994964391945292758856864241101365315798760394112128773987816748936480759572237073952871911344811452688199651210697750231230721562810229607968234929226688259448003732094895092465142055940617417411018371097161454702504116326595195963903781557332422283772982131173997917359781001246083756632059887487398479757515828761467297676178994859975742495856720828262600222277580923050312038141311697263310964355307361349439479354033739326014336546184530230237347712847160855721417449305229342097741869776220258049858519991861573504265546051102232574785565119247436991211971361690958370973203319995933347363415934036623018273643413711989115533185027180684556162767622821972690214789063503551722927396454630673921311808335124005801837772406898150364874876710149492480954331906303464105572732747419195106896399835839180171656743342887203283264362751187343918091562466916332320342092222782631457607709590879322044495083400427695161872019435523917672168869164331192411506942214574768714986829522613880647560183724180595857693926476738523018463704250773101942816143773567511809216468861470383426009114763887557639792078138307205688535337112674157943638121695818108729286977041969463706240636447571937825412928683691294726165542971369387426718481095921599827372877793308807812056514663725723983344758006081122375922486979962701766826115039302970431313849574037898263689921134075912897276450126683605232139807868854165057863203805990253973154368384084045528297183251733908583911177019382411720790005296746486951372333996445947219545397068696281315532978514362233619217202099846014092566530567705077294365058763144126954467147411774948633214076744009403811733945006186732380642643432372430062772823270884059775061055364855456980781394752199499592374313252121336560750086196652892214155798119266451457333501819533674588021731760855299212716931380831220840371569924205448391036040410005224862474905759092191978447612792134385812171377523833878261263149644169769293457763881782374692195154877209134264429208517805942686646342098063523886939760980251618197061032152860303630428930977943534698572006470449069903098481496149043360090585335651521619178040515617139747505964633350484104935670855832274251943720399970572702921296284656793180119698361574085428571443921746560858265740272563711399269468172885941121483696484150215507751287395123621618044256322468353813134830976897961533919354707405924959968797572000538385261106246283426016796844967206306321977573378985715781832710448808956704803163249309850654335683069333988144405181664024569556430920480224057291134038720181294507103392592666982346198304911281130304570210493044129533904923247743680845617035340936008382362747451712657258351002234819131072641695019795152260630886518847992628871350884500531673658169599157305182538106567607083811649603488754476045656066794061411201661474633614176188913449099042499869487084643369819388582824256264861136928275522346038133515574512681552574983222465960130503330128521764122843912523056773317020464178041233055685381922067099192870955200190843474069247966245879947649329863561311099647851625021521273189495410512733195567918985507711609476440375399923246133781137111403780887544635009799550232932709919102480241844398663361968180952774492586927511518414076087960969051013054702095013561035027878907889697851102250615921764200611962770361967924775049978200026796400401740945907817896588525941350324604566949585133466268512443439533899838436490059073914348721250220253243393931759543015475226083964119622100412368935053164977870728604607266997134800624999019557800946585069196823642610815603796194308045105361957882091995033691572613189539175046536711195544271005297076592315012001697335550762802906068153308320531929641501870697335221484388021703687048194594132582694801822193518373831757324741885039047582580036266957953201592464444303731619244469702599006037048621231605273035728837814155333667981145803732503482260459028271049629902747704998140605366802655544860945953140650353486638499866306323745774238604255270524025629922927131013220643006323967302044022292578820586348337846867049295151057319454189531747949956298963317944207595768227123662355535727308117358890941110208513366739286925497863528990485109950720454442397539026097560176489880435578561776313547032488438308751832105916345900112078310846981225998998550734861150575419744702165020199925903595359425684603919432495745924762154712615313028100573282526776074425659896011848229061750050344737083990553460756399775661268929768817838770283522905244842388680935759475548022120381462879263404969156083187428106467663961086127454650425005501382822925654942726551041379174429357950657490437377772809106846403620868243331121670803581937020264415911509950781850435064955218892339457224289258212440286642957299699628608515199346275934321564018371281719480254495428376646931671427481657427523232182060616456783382667862095940645312027235114502766630103034879397303694513752666176756936747777415543700151802640068274151753742623391019311987053230366417761510753786844507768877784606228964537415054396755133683174653112619433676480595266148441230194546661991948225019863282254067736340055834892311721765722834663529326668296741898421281757249361611073705113747113061141551997409184818827328581751277667120511313871876421323535106254330542465194271705148041821475507756547189159775301465750102723195597705551994821991771778496183427826061228386154439186739386333133333481753339729964871606132378743009798746136861632721060113152199285436809137212356560068832989712274457451254647064349489368249803366127263036094716420563906305326583624516660280023490671120388021226273525767942458887608069980714233365092956120120204272741249767516687818725076232307869143312418964060213230718278510475133570475283328815879918099317169266391885872417103977719189362959606388145226043026328934554918439082698383188127067497492802713052796511943705600514396776392877078147321030243135504537043784864390142278421119557725915255465877687472119833597387808928053465070701265400600621090215899831175375498073335145447301324764912548496367443385076973937238398531518155453358064286938048061183170084577759742410066133292798292449701746739344896705526773477483289277214121187696193515233228198002140297067337485207650278483752022447839769607879811791661298407367838509651340847398311812946395314616981620330129141048380018913104891836155847208521415313525346827911660154720203171845454761075569553933340822363390478311003505297739475820928878634220603963067712348511142075393763729809100226601547125141818913512573024877335424693844215661966185868197030836846207819115378885892652817657183144711077270362999368996217875101450731658274054337436036203763036898356163528593053165056460348637404966123279872067889530439641168699652737950808406855832501633051302152450882494512285380083279227355842409834109097794555134044235392256033746210200905890967453364855518425764693108772435207778371701648606988913919341935637762333755836731917453330597509009586520195433034628538316285684134766409367219399076433605103995381953830482532624501966623898285009381742572341072997494062340678077604922323670377336169962021962753814282165956438823705983020363089031681763537368336633750790144770202441219522277076346234150349261784453020987957568373209226246800956885221606739546270242449405734349694940184339714709709881868573262194118686702600038611563092944155580981048881566523036119151154291216716913441502693311040678561977255650387317977039244859155158834613184591361199822791011270799578378111992916433153916955687719549090360143951063051649595233561772100177793255769624450585822948975464629879598631457597379357184717872006606758544711479987634291446965925683688839424336387132053762284662734466294544996140790606168344540585024974457352362929739759654702162934323868062314312729329167441283310422547168161779821646771965386448577872589254168706899208046868257444142609137087826230206552855592786531214071777084752312333067767040640435077587213537183278995316699019210177325085914964084338144391797664857714508792563683169471745168238443949753103968828097249544159336872013735935104820050168347314576151193377269153305554183206936196050179220566848460455143665260678423249086427922223326597859970709612652464536815916512202873711153613699605777688016422999724914291289733611863625409864983639783329283750090599503606352302273016018418977661233177585819098855709871659837045852242012864639600344962258125303388219735351385455409557326387756017102965365467867388014192803491022207006049605222175617027355192723515249576437923810521428877400210189531611627309339520265889298196695196271879340902042539703345592344501935065861049479051648214266273022438035817027691419052315170146141497921129215038492709003137609114130454309021394960081421110878754761490305641595294523174214276399776543216151478032460666592128396630609290895993944033285290130102925384654205399832446210486078111000681549023428548213056416710579128859582992897590733417243051654035918850537550148196175877758106429822747684978222699607116249857761011761015376783137609747405283399213370734580027935167778958886436138410408356854752542580438614207970472275383099851447679958877474389004162703667806108625513933460215127461636765425944039346865426809566381975568296824591566371402931411265193824985698460180023300278410128203598581351557491531078562544966457267443814477886318895605222361940029451147702080137144217745644159695157214658996535427871396660656907946010683800041100738833515866261924698405816812174638621807174586741305313786185657612647869602526787421425900070885732708061702415836928600254979545673342605364787187795700010004610078073830126168648350408149177515211802678835755401047843478607188911002237143316973569646918485115770392783898919305658952698114247689625934317680784692978206950188072289933927161898624563457611951134866938841395904971475783313524059264491049301093219180375203328198838243014168643685237186789948079114622316207966018411259330140644288107363832731529630019423823605327828954223661859701103299657396847386791862358409786611038626173439680543303076747104612813866095370211214113983204913235902799848267549813324639786275236124689006206600491443623840642653928270987425674994413714948128935817002329629217440252346690056769236846131622006360684790485677253854233925318782624919369366841415206290017197836677705707488533693305746283391847202355754293161109246640448763814816745760587634406945721700598143320422229218753461325018910854597553884732803561923845601759290570544463128947537115848098541300624559094872707904772593680177469701401739469829656665071303319919297543026397223478978668353072829646547149894321536382600238186643132023745468620143108297702580412302300022030935555193059111664874079119438319546311799434396785139343259855326960411030567659765735490881299826344448477348612021325615097036943832441665078338152847763073734819462664596468519749121637285693110357078790937423395635395651062411264126459608370279663545485423982059856771993161433615908216244870848059436433618786589635932426545008564918506218310135815448918975616361482090815621806452861296260977608134256424811776048382417773346808734490310175606118797214785950083218540414310921851521242472926311991740748245808045422706204537558251382561511204911652658892526729055104405071652355482420053895740593407842343517299157834735563786003912968521026704902034790313083845708547416060897198057091970829693644276078008527047529457363495768986524325244936554548539786260749394945619653403113312367766934522391218894355853777533724199065906419402887751115198144259706136233246552255477763974812269018184878127136064661446231432503978915023745233433488621552473018731239165027413914586799237271498358939329889327231665977806526266932099514574791038551660203800866759571585190356146004569221475731900819747577554188836896654358573558531147654014077323472119126301951586474409096884099027266899510081578543766705320021370055338191077394344442012904210780275856684561657257025235459156814250868061885237608101036141862708002678185642573247742424383013075600766306972812704892397234310862636572843990032970305860823289427142549386397353311511081064710128367470645123686827953458523667249228582601130536995229351884675168353849432338083956480901304820079750689670632713819736871134828327661714253089678691921732931761574411033207210830028492098329008479840250225682637272585302680995614925779986366450416122371238843513442450999242038355912616513088904293584795993536076059325686088289763722339879178932285293031668688400604476779110827489986213808809178552994803285656154634473337974961610737218860849663813579691147878966680075737902396956923178532598030983286538953119831726920213851531479036527306652872774350450053474430106196334464938026048886903144029659504810827973326032699190743256939723974565585770129305885199555832276660668382156711002146391240895933919968529863946429225995379931729934284077519347496775273176755132253188255228167920241557820576984730320911494577880059802904037807630981054628720130630536597426763071488760267270703447018825593920956977925429667512661986579862161991344332552155937007554647525306680133966127500937904144037825683096849619430044390863599197082950338342650987208473846052660053166179856193591420752749019480478780067931054776235072068798130135410507052861514807815082868014529973770868932341391726511518493273414229283926252572095090964691855530547461733043361458945090053718248023061986388153251491330677041360527828824739198580468023257835827836844968685280379036223534728464254507012749000368030628974470843921485231489809905667521739438929490491115166717214886524088676573376147183729706152551276896569904516103779614398826686376872716082556287739128718698636128715152121102466011278016851897813037040040258674619754482903856108720784358508544678937174770812412890085532997805785115943005562745527482316796677044918709042070608103062954545933857186937467670288308794663243726426063199057188414303278295490045332747519774297380736414340108479134570293980495954068439037074490101532599903034969066815851449049162236322097050688088505787077157580111117929564857186614001578259541638932603984905379977305884276730383997757474933131100624481548108183111578102745621320556618325584341005389996811256828071229137615851631019429861269249540717744644524120410381677005645425219557591849968836375849585060806765771028367458085220028400988168874794714653912456980562042707520227050185130635212580499595316417112094789067459804080917561571851644769439216494281055597360598267102249857649057789436706191651143737623364163686110227492317881330357546975832240877157982635657295357578304130080977558688057801833445614051971253833249506888106607148372058879578046617415722577749136253852733707087864217858257211356928891828329654973868814821470155208239096560793061340211451360176726763377671992698777782604173578532324434307541887303136095317992242472438780494195066710406507386086365627045261930339438879441086791983344014988506022012356479087300486542469402106735807709932665782434665727605993822597800207646880108988261026986478202806756157791937376198975054379243875438873974854022291021887298623891203873390112402344265257617569056273367021958938128863342564404773370073221242848814662810964431176706839583074717850841560299576821536049258287779261813185513626608913369996239456865856519919613707947474165308578796057190515990184511728949929776737302867252689191031892362540989279810651942262768391898143273958110175655030714946740259428326072676621448164540348701237502824376118071920506629513790233749511998586164115300701885642933067293894936146465031993272680041358170072311046006858811266568405012052908939888056224052329815287702287699281286906963456037566646518452274522940437239329829408951964828710544833685797268775220351419523091977936433914561466808439690963605495762230662257095330578120850001596334360921877309880174001527089714401928977156168899331030505559765503038420240591386865968393554786878371343955460581302587178727291671326377489727564015717646599415785233980908070694890858755125093549163451895453632834490787124387065062062577853916277864130645841613170760083887978761125294905660983453021812674610513634183621820602335916884082042890706546219676798076425273509714408165757711599286585545486133375931874422906542524722773870334925773905710181863461249691048736120577582224529551527798605394074864006544810189655802908295896751187020931491721886018304363228632440207915617793990891696459126768152067446132327659441673406244095374016813039161824301397291159555213208347167077674075465037910689565818866703873887601944454646455965669833710037797558686464253243404823050266332158936362043511764808122770266558771022239933316460821339206460973249495177640992191621644910602503107858645165704084622385395953059387434768216541576866502103584366200341635244724042884666878294161858855261646761041884104007065915290455701492506180161884502537233797864393989838129695363217926361303315303690123714658430817895960419100626956156065659147418109406125575100088907924575770170172847734620327234671041095634739423129623467856763387155947207640140234860432138214748403012039542480649465354380412692341221413590722712408219424522595087874590133078588637308100871547536561016379834504991489610413658754161870419771102967687826697896165600461529765190076019908254121982443548023827321515532461978322628386761410571286417603249897928704932992540022353241466670604722164488337133681988005920529582516153542157063789940550784974521561623747615995540547104355380910258510816320654639399560788873109312674121604190135785124507415428252118587645029083154105151488295318322984133918730646024448019629218794427529837662619403420361785773522375675149141364986075659928354924776250850989561394484077516842716709394767032919029309004165652208871922944423202504161391934681107911871737773525396462078984167259508965883511441911988142266927160585965363409045122457426564373417030849246163146235927489238620014171817328805344872762293768312603772505202900036244596141396382861133886111586219391786795836491473951794915033127370130380573612453758743746639823448148844996665383015115244440000007783379533886207913447310067818536639077969523256650193928516771377689840679392276397812558908031903867565642175553727173351212371334349120879996313486841180949376323959748112557268864669786179376771939475488477496373469007156316814712730520512648207904307632647588838587723761110643510942966567959199186450355992242788213135805874623463601603941177810547022526259866572793601805371676766798517218781842069654348566654757778330192732335445070723590768615571005469767186276218348855230144756902251585452677824247309728659562770587921164097701269797788866102756047548703731603823630186729332938056119192647689656768811132002223534311564161708429841224505763005207359575790760486249478948420206235541106263058116860670616346100943833120997849998215427167642127634012064236806719331057705698060293131846744024985146799966758713476776705660917793623884298522558568644967555839018371746299623719899719908480710699067256883002595754841213399882330078638368251899349779127522813865772347657814416959679695094937837433861229982184429558614155267474419178883602635433509826054376900127743327119279753360595699631735393514906070770183807777001872647863525484986471579378825716632546263129648553468401322789078247295995494023682941751356413114449591792158919777756512177011762992044882751260014230611827442892090542645292180777471632162197348141576070689006791999180787319443871798105982514128071680684883280627027042593064002846783317087782674669473831783104026997445032553526963332677407349749423348533006913013954136768589558928377042417428591053016972461019475931293227026672796730548324505365999318943150855637652247810564531381149893748311392162029064853566464763329553370757773891916944358569136229057960118274776663240253653886243260423403104269857976863039698515065719224662802540097256635364796655319842491935121453443984679110453059032216698021501305178807257336254897091336489656089944369996527419409691048508875777917451364237951993375330824113925091502493230247098666632098119913369940330091567343071600533407115512271558841438776616919919569948553557044279595789298489495352854894647990845545738170490798625499016181080503016251761960023417223776597577247553818679731618693909596206927799146695188323114200102889863325724988102592000051361507597837926488554294261349234132379615188545510054063690110759384660793739385827562695309098446347172040080650390370808315053127858723364640001991613733107931931643225101884988694186961855523471162857960392918284548256801734153300957392708817847339022602451675029797637361846532690048563782338291331140057949484226382957891907433512521353694628979980681285483518430521068128705377731798069141445638579683786782918809462185410095290484377517592533020071840931459389808720680473177754959775769597293637642696703318335595014039846852334222380910127886674486068573300543427230524766849269367024162442612838411411200897126966449945466663884786130888873177651794518822588121754185268567905581710301739788535426706445797701005877872703264353518961199408287142066310648754510313970758339646812139190277746577890507693821486698012947756712335089842173459664586126476115416580109833412097286735516638518151414357603783746895777934489180793281651138762900438768558275154894617716596216470955473445409061196776968443053159969920854592752145227461787165151027787358309309798376580208377455053266509689198963210633001621507954734856578162962747596213868989407018784270802763225467791496620010703464420946125062128508313610788928945795581615669023482662290907977838490662263899714414186728119721958723669802850463458090529327108072250313558681368030518837915953541573511928098472642500941526690650672627059830819085085097672087908125555333102678792318302371822595013575574521809403223075150452435410520794158474128564356079416663859765813351153991354618467796992345761736985489440349845288056227177706955257867086421156658301412379602561095126791059097258997840441784266364318603413344562489576928840060759827308895274076787636589745983073771477869048542011117325559862928394459727005122203920926234095981118309391260662013804434804040084320468751972539909764529504534925691292862635959500642173904529764234241122256296358673749220059022637600213776336340428668123573478058691846176696956685776100651369956539627420569731910930272559415447785154048121015936468575523434306185510470721970633541433710829435999131678835483683632238847611766721635511892716107768672628402582744510898555328111775891645826974616450561158936369798888470989181730168709781494121180299626830461718325086681150952369986115352067148804071795775926993342074885807359332783556010715013025086338644176195280102762998011548261806404196137171294561778356329261752271674808664500646647745050298771970331447720431294310752335805119911273955910103544928582795677709249143165553273938602053109861285357344501006967732466871770555075244503651600953901708194575035791436089419602292814668508456990806504451294468837552012815932419936684338228447575257769223489060754105191028305616966464187426997440215565202763806383542719697791360979649476764772286684289398626196887759944410289221534656145509561508587134565473636201799364217550452534723294955692004637955881346071605833095781789233323524054496271053276197411174289710079032438321968854087543977060176598293695197053991180720988675939396063426591484252370141913520579717267651073682688038958510136479926687370733939157043417312322945262040931737361803338744468090147570960786999752912297152343740127752429219168366819222015758004631582473574806140355797297868622422775445145213228765391284830978097554673216158900707246278355699475923958923631715799855658454652310256217983833391973295046569070423161481994644179263938687048695742021573711388030060387597916678219081938571748808817570547610082853832000019240781186469548974383823101273938683657624442478795732874944164975144321723954798344863270523700078407723939350638804114652111354521625143523202616906159402137913087626121344425818802039540304916525351015778440976357983655629625662562731099425830965418725616257482096235392051544779327854427409475633017325734579806556050762853277024422211284756701860130333832946269582301992387613973917514804588848326820418392831633443030714804566526608577076080248470186094316887836613085018827021040391524034680266852430013225114200453834440955766758908950202636176634408996339141648188446086830270438097417991871079268959370049335645870884086367364824166277774934164896283202178845434926148229631638752229818381728368368121991234760399677452798271202728885643586972657481877849169367326354782855829552983153310030850043106077548627700170617801047829895169708798444636015902678151241901100222754380973052013757957521304899944185656218976494311250170263427752511361870982196973963361655953494684541198009829993428028105443405879890680991617096542160897752977419726424419706484797305450281545783556874742087533046963946070879032013300405487861508214843758894632664520658586137930214049048646405643131524911688407760371782348425591406771638249691214180064301361467522333671644710125269178410302617921036978364807679454326348692489630254350330059846935438454721132563290379558195250473996123003322290858903854674707487753228696295888518027209480844774003438696370378073716506147160443441401079337327757569457548603570083633228488899584428246839378698168885610511675235751932612857025252030303704262685464010343143809190524079360022655030359650760515696496423569657194398082939875643382913693378865061828423608464363530025676570844346026362680441979839418471109873222733580889618728194468605810255647689684542052850461616830866142922572033086659825708942118538157424134981009031034221733974220636079498043786098859792453874439880348894885217286785131872650332239853784859137961678868446840898536975841480337261180150967027108777538496213326313285025154386450433781500059402386081425158463021420899299493320064142394654961978072799717758656486441933324346056072273485208549190191957870629619714820735406475761431031294578976181115959622695364482072403125735083087672559672752035586599028670710946039463214291413828892956076477423985122601152273827544021123554633485858437281358101532187389329342888782674076567772498306083820832600663107190953610510185902001855013379664358871607823675173171868141674850074431472426918669817150072371776581980602362277428196785948160951166177152739592030147995341313093997974770689302001351990254551922474181741424382095227654368584719552187127247381302202981822317424362743360397788510935806506450210445719557844782600837421278764043186847143161652717606770726052362869649978821534985789004856818973307753034169026831277033788601520735099019354445267876882675002614033877466446107788616013373377786011329308405801703084051406854562475515901053483738501475998021700495843323462948506040188543739593945517831548145276113189980792728757244629165969755978701970374175626926659109811558775298318211784862365296055101246845728169290166486323706771974250824170587494729414117181978865201326326474698554168500552597696719046412212209924633945584126925663274045489715333646836371087423071963551094368629382922747832603256149255673980288517894528931752427590909670297794387177359010558297466203309273660080084915170422418391233755198083575055352958084640999810640395182401723667292765021933077111961695293029523687527595624891867444074458602310158155921059422181775064387897988707879539810310476936872257486597740763663777680038621251490855237908617949894206785640352101331069012680459093731285526791981001810615926999605725425138261136043249402575305735362500911477723896831452440634990587323965129605419606418956642890614448022436213334371098691098536347286989238250070044588764640548973071157074319283168815722414273200771376132573063570900733544621410028759428643641219501862839563021484892600645851785468241983664054195395680138026741432066465578180809942305872815111573520718871811475200398108735829925511527977442127724166416038388021107566320671181727561468857326250817800074116203160033183992714763464171125945631183339145985155372692190335489512692851448872069856103528216574947689898780574993188738732505995862573233121604526890713193163018404334826616835602597707503195216170544325689807107086572918003523094120404288959129012679716105355224489975421370233944763380900537328885842970687986184558440237591287915040241851899230214222216122445938285283129515230167791810241525297443428806437686618256989217846664196739254732822298173078999047339894860569336744154171881649743951385095442143431014117007747627743947753485903290043645911860992733775443135038473325561201398350188109103801354448872510209293893768712721159283934869443171668067959776386636564990815977409869915041979283080274105537930959754286774159157314168851446884555810065988109360817728667833624902672159933327773242878937411962509443755039017211597028193559127731936391612275965540728720396086181677369820254014933550377910950933665073285410138975492892013150325362534387648624507173996375217796717755616763880903139882182729465333706026017754858940262581752966558009756647013123484368664504898751070824119809732776651341399937738251881134096072529134794551445004649798328798433999939689514084863064888622932635417211187386467982881400750264253507631044454605878110450059214813519046501083669986559055139755148597191009846215112725539622846722693583045161740859841328954825430121533591069802714698590857892301615313768450361266464155875238946384457097867829533883672824609549123653482452889912732709823895170380257506565653597165997811726572463333864954763345030879869339871936369183282029513983069081968039105759439227005803924412812375007369157068264879863345299937412522637970473167853018657182047668085500233794009488657121423654629119871041573756124210299321954894757437206607813070312134082066421075589611226184173121758905472977628531560196087262647275464750929715002020237225488500528303569390787355923156709595550138520786917317603969431284637762074075777309930850482872516545589233590268021766173274964977033350428849271751482482813185257100080796605762394631933281138626240300584584597341829697316171046010891734036045738867991486502369940639842450264811287077724461163743314778031144453569233297284231524044888435282185188785747479649544007049674038339647787718778319630749537797894342021213709577727664104172023673026880615022092820758987655269779751994224020619127201944814581042909389102056976082468475580350062333475090822096844705790897693965021835768030127996206077250370009988976659850944901408733354629818286169178461325092844199256730163859419354510433546279887179397213523745108773656053973232391856590035395578367273728684927576642445444347666958268542614180829427509183954064617101371967072626152528149099869215673331405601311633066246989709383103486667169681607270076538809486439744734018204471013212627356937130684573110946969066781916216458520834410565784935493897727669460870900855247595018306342639693392283464942888453024861367130610211374047743878538430283208106356642279554586136548954923784995131979223777333082711345762069674344767052244255338989946697002658550915602850567087794949301825019895408229013474300087712559581173488642633225262997633907615242667089056827062612736396678239923770603093356193775004536261536697430757302910590820829778833004927687882369121904585619574914374098785534688733842890567608944097313242876728986073775091813810054018599574736288040134853999730856692136657895373522167459004806569556375759811067678694668385507489335309380644582381348612501675487174538229027849016514744660533050014684952533410583934014421763260203794177630217928192291947735845716745915847780574355447697224147802350860600929693763483530900391808092815707457314623129618882988137893403768917095547624145460905915378607311055025879233265579709023472344343182151531614105429815325216168204831196878368494717459473940931941046502165169604995144831155218984548723774291299429867098379850862634144315764411646254817467504131160946083176819300412627587975248510102204005056691192660193565566182272287608575680583077769011194690007103984475464400032451966806867082682806289613007809817584265327943984408853740598807455776489525219640732325817169376969475542748146534064828079590031816866357992379433804212326628736351750868615207893215617245748252472283843399040135685271111114988878092609736945679639830416679869331455782107666877670179020818518647832707852876178020313550120096119903518864131664601420102146830012775856031016575892677043130967548285470713207214437192863453068333543592335131700340178794743318242512104024182498390759374055138047264170289135551157249798164590815966228650030679488763491378831874038798051405766581581687433682775432537044762409133008412733812269351785093394773185826193415768921626454296162516940771778095260439886446051386067153709625351117681367194081076606212452217319297464189514751145409988896682656013611567774050231625596493286026907943320926777807363196172413485591185776073430446053957586240845750272967202489857428243507747077288068970201037151300825236464461168664203858404881111320473225343524015042507442661953242353818202767373571236907141080580964410693418352964867414249586713939911483643471579066140364372708999956391970061361552534017967697663988910330781665958605500635583283915541165265269275526012557828320824459250752995195912584967980124114198715950475025908270348303416610128145387417541148682210539746680663429414579714788756457382693385078086817547754904848758506401903300471215563637015204852197792217301269951824526899306297815657078264394769059218764091579656015252392516163853813763758769291806444971728810165160542379148987069599334061643173197474828747674848489322317527892934980055034281795285353188317636937613322242084671377351923617792320126325418159089123831457538079177359237645538745277585284643154580960778328013732362462701469798762244419653283475495009612562341862248396531216249343132952806784923744546903957509778304475011885604673499892259801110745166503277447041743764445070022125181500684586468716143770160924734786374086981426606250291148025960985601405877550492204190450506352793115281620722857502094394055945449255593475183361085850411156914995097599300894958770173438387606157729213776103415244738761211601205388329316178631970738775772561913451178593216054662585898302294432164106599125122560729341835238841879822111197143664209456885365685102795528088760994634489856019141741000990770394932129810564409511962567591181261055550804405093958043012548748510796615438144043830005533117522633969380640323169166698141049686278258938577248705699501413098493297398447497833880078808913095388226369684295019608137833248672259889856804916507677388408121285701712552565912292231455092357943627570590754232462224622538354560053385824669587002227172206323200529550361845047064130317944324473937735500996198121039806662772388436614478838558481399628175380780125361255528516812206047115165594281910887992238981080033995750358170116283322103042695113602093731281255002849698529898434425474675061583610772153513331638826500618234456820798867905737120045990911580894105223414643712352818151093465884794704327396450634333814377555308572047951839749848695385568657373435091145236651835275805652089461139930067503617092007530077694307357698221487825702414833978622673216505477929724931458534891661849986979525624386648855462571596204199368566325818679597868735156648632412920457544211949668657389105723331252665440834300857091459154479430806442513514621221994926861111759387519804607466830023340450172664008018591778570406513653772929805433611981842241159415749047242190874357298643267642027554803646155371795009865443890738197404310212013927738873086596187624533148836615569457017841188450385916211392724393144080497378308035935793452697819281104260270402840981423649609367427523135191424579110657404031979594658036100217481463903116191938342162959141001569662983894205708695923402133392690109828106370920346812988009121346944501222866846792558565600727460072638104425393518241801903014418108351572585533882159447245965458423078525839296645129517101140148245927168375755254090308885599075293421009108585318342496677757730602443793622353660356118249303539718302290772815659228395277751200759941806035626541080677389004072825979631745350139810768434081167757953638673242679009956917064570508623103616985718515066324391364813442720765425319597918924834221782459305392729747817626307986910839873060468712331088253475799261579911117574145049665095740813599634244147219218792663605177070575571178086730322495592409400542001764110480067418794578834053869060292031887656863470682264939164848825910473734491568428860115951955754230207988928092586247434525736417219998536556525729308927382176642571830176202666235476936960602594671195887357985452501050265319408872405042788937645811117370410511753414784132725555450263008037496434575970569513037875628906057345339765708081314343022001134932714205865374039394536545764709211105492733242377626934253870476426436203215270391108559767571783324753170407124976407655586678081333776480435687078719320981871942231597310958753131389210847155483973294861406542991637044914866491427392580351015656127554018847126697066262730546083125644906978427491649077652134522861587929960795694443397301693713631823918943985152272100043212491582670605098495323844802278862962401415031285246404177868066066565890326953112811580993241801775594502196169921845582840174391664475471457560785271120840142116271443321876366427558303289716122383331697290929323189086567737707329523526256246755849883775985109452988356745965357076391228164778992654740955379785625294438881529148704352516754567495501078758773918306054954910885809206541236260839894937379040790433600816894017174029187857817746204204449719235584160634676043097248943230729182611542883609739821733326882384428277600660434179936666782091002240350368855135780412103723279723670063031278417454367891049750396450754937488571394159744705985121165347038859845555202056054963965112798622645231366759637937711782366894199880658804059229902260519538502249767885957790919564585229468934540412473486292010708054166852037296395972719144327760616320299811940297478921294385080646424517182224520930714587405742810859427707298901422847166217507881963926877346249480556094427409375467144236284399132810664846863291778178859346313244225968985949006965531661798927221114347972263375553355785956825950117342072622349791404253659711773449353333258014602215332528380450642450686335149199456044408978220312537614384265368361745006290772923649052894064550361304264165037566960505127127668024636408319796261986507659017249422235958237393471040652396564434984555192948480446942868047237266206925229538116487673533917660512388642225150834728164070541966030314641997288880365849730390826603127515053788318032502760404799538737717447063702258246775317579181171728841518438223108202622587124726928098233058714744273084160253707446297474556118560276521877346916143113042769264625205953182261918023239349630744675964620135824474546181070390263983455594729654726935319720870123222813515132111730493098128903535391022471078898431614554135358601986389735431223476030844582682752704067762706818521329034329383004566776271621714285114831214561294125398456259202344073741732176913359738523233792394289586286872621421626873383271060045888718719386716446996401783800243782075668430582400792950091980736741352376182636623928110807975561302948520828481844283792091210526690924311849569107452696502690610386574874574482353953432395808681037303097467226483091203263097754053954538403297297819140559036083063913282823206254012587084898875939675896721094521215819934044259001005843061439104417704246153590734558840772803063328023218823136263317573337416491910693679347084207002136484511977512505188724854664666609485375631921943830358315136056679645882974551205405070084033433067729480890265460140970630733514683923166432062996174118116438630861383224765515980680072384224476092709485773859088374655717808352944900979027858611873553565659260549366978383526952120706654314409081479027232948408719175471488337884888978104241937003526825422189021855555995863478676328038454824746146538120661808621193035355029202567600458935078641129181714760187721766949855404111931407052227013065388402752466029997247397620934435641634805328214047811518692326331681962799905393557099819258571255200005035698284778014059919956780841696944276030059939721819991455393781506058424289286331847128645979039704556603489082962023741930179057460754895703126570867157119387118424023680366402996104512335461598280308588228145728730481320060250402757008772910980648663433438551473838846533700423166750453567379315844527988722510020272989161598816869122012762379518379652054747417764893291282108872024342188952852935403981790178456119258792678410102267888093813101755053850404058283794436725049202731378945896780491789666612222883050166215739008279812855243163838333142227416945969102592666413108536675038636037011490591245090190879247617415345640880592099916787873438479230779898887078088072581210784786679353878655378674452191292749734627732503946213349275920264245595091622716112017884281123631120825718791765238642518049152387135449221890381607022873204859101759776429981270199357919079521244541359987665205374194695314198672375504790564075061511146638873492760656064425611752740361941215109805029567207926504388183923860557669802954676855960794167878056896011256544315379698159120936508405269871551705942600942669326619516330103648337673537364702611642191307235212279847830962062872070010237721476418206097014913056540286137921805099445627040781662266557981582988317538943397148480095874777444674076636171948742740229758525479304988408986990413043826951076280440163458705141006410286406356152914244604866237399483621579310669093761225507492072636942056743364359972436508416020819767725197091275719231560110891854143401370336247372353531945817875624009495198764613840982950691672102689516363402865775238570285616713217205149201744771427169473668782790771996392351330982091303788097506901777833683753797547596804696966479242416614086838923284515822351997863068335504779804991114766165896946573353027042157457299566425230150850433588118009866971283848758225596596506058137384923163700774559390010404318274644778309345337180137281203068934023991951575340975524685593086027688851271507788684686407908388707354705312984871230083632082400078885777610202306453178945161273040882618968786392578058509621860900413202872124884660291484967956043834662294500201637698874434958222392214614864106977548948735676789812644316054556133480273993016067756959507995882059117177546818072631813079436664900904008832449691019654146494601523772057773104082128118996835738480719260653769719611533854188627144732623308378569957558687840600104864016117606623051401893959516763591606651091197034502949656622640979543855991003777407321286691026370764987784157300554283810755907376451271010613975059961595751748562880542849977122800079838712304742905418477795865889220358615163664888999544996744936851171788027933017711466767623358403097775337354512279638160572143584568186236551716937554047045833755355349654699696475798117677761522635201694347662780112015295639388074351505147750009958694358665112732884374050213290620152136997007220814326052725375437162681442468598097186517707596255356820139525139193872539964198020530520540140536216057373727228071013392595097073309427406400040125482746328514893969777562217485930536680937760857942699822860061679324742356939514255304339876102417856971180474807971927476632190443059577151871079689462387681948404041320811176109694476424808246522339993637401171694563660450143255020600230171387057702003776773785492358301205119292139644275820158277466015228474889953736704466915576703530909937325728296306099410117117522383677327606702672054434617693827959793400939910052481819276496638512523334119368810314574215102658308497456414498871495683835304704014258316046679990121973802414267138018220710553691657447206609862036809198911060726402175889620101706058695589627938972218812465127745206319965951778304942256078338775555971714527218908921119355775015556187545852355839269875493900144468251581521996861242334923070286026808371433795225531120974071843227481448002788635045071985852232829246382072298793316318250354265471786124100485976527971867155017146566110219930238293107219002240460090357372376220086765495968933403302647104009010413367362774205961578085147004514479581234974398832112233494095253679971705236963041683630620127647630510163603833454414594628862837368952048044247374166159555903074449393392305623788575879956332558673864713387943372833736740901425213477240022761866791365483091792839572976696382053391093123190447748462754371090177970711825607862968694756077814053923344302892578735009791732450289437471298289322263548284132624355737264868375548449255810449210807071071495202926878115387169611988207231970520396135927544885745089698557881340324268137585240588240915486954173406057689545639005854329731940375162222109800573038140637158248527422533250955211786642590107006484482903279705931640843299263886879548167378578554849673208358928004659070584416849604979198021763232721632239051656237499493835063888187313580575041073267269271919861707909828011996631513908549143839704853670685393721246212454350852976481845249897262777042280533628672268613944268215171785596689332017023530294634384479284199644596408488787641600862410538936931985977377283253400132683553063868988050181203744984665190042680855727136681311023385722353055514812755962742884047059454486647658195312887462667861178317425078049179799051181119030896307330658338548700715466021033759528181744059510542917312620754761162602327017596363241829586202719463780993422309507417840833984586326213138670680682118410008382965733635695964447787908812250855316619023732893569532402263364699713575299082385041925576620597814681599194659827806888299431415629408586660140209816969777680037807497073134056148264413413884976619455910557373302867385305378315486708941345166552646292721541908085475475964628741860686344314012763037768811175563234636417391447403044845856963594810701301380869976104164493778616551860143470535334148215206102796708809276351452611860712436858864684921039629726389106354044517336070248915658912605953313429991429225687530444872712060654098320183477173748617260399690633420798734007357698039410753077644534219903002132288259162301158746158801262775153334293203590037804321384577621763550266728667338035508516051112571609353668613170633156590420158530637477418168480392489532109818253321908435149117110184055368246394892992818132128575957935593593401561869416947404339386940924898357616464415888536575198102930227563465058820800438375825792742027806435339339834222246249110729995272115395160711867514819526069757935210212074834350993160972353122873696247675684517751074231466934347598286525039652835298714528931173436800764474616008230844720060421613325468516255616280672494151751996020932499884604304790192548988693511713575858730022514221712009583401882661477475705956633084021958127142456979655266470130327679221566580077626613030056539093913101447120584742942886874564946384788997239155879725067006993799826942474267982802648458868488496304548251410671109818956452846715591791105662928169753054520982960548044737328710867093577031535999088346551593325078588740899246683345524680216233565637202863137227963365260859592007568926649487047022604020948114605418138327606886544921781222887144001362735487686056632150764030346313732391079935033072163347868727364132410659028585348709255837588248563290030589579152240769716263016301946407937992288869664616063911401957309218840688362290284713205272728554590277121424092560042935637266956152514777048035961581795881849434758079684626623727636272493890067258557955698661008522768905470461577123234603245246671186805754966182215916603484419048492847857493602689617760393234086499597116599179839004009860566588251892325729644916693993586671276776005515355523377587787937003780221169741455775624628135466575849999628009586287153853683972516673249060098314315771831162796807969334809760184098922365049209824048176735840166352366601523112863991457364458544715629807710822103830171938719125903522935254015066477780094144563866303717749642458276022897543186829312110692900719042876118322701632358041400195423743038688001010608148428414280115771580625486900872102189773080628756277823332289281608258732859085844868440801605235402647106783640822377894998685356943529199836270614732410155182534042443116003766049925877727401326798899607898121662690930030406371729868902572073162227156486229363465819922349889573720109526732531156941778826359783990634465481965900247867710409667200433297920996633615930583561514819580631515365187782235924133805234871450416287887681207675745656167169769314025673912076465868250303490572905960045838736770265259885855158930271588749564113251370158000281282177263979389804238715880085953786994916174900223921674519944180410597196467806830575389445917560651531009482651413923811114827815527536617742072195191457112463217238934621425915280634461794195929236034858342327481210016282097658181593319514298634840383093284902883235792788336387200359996726021290107298317234382444826656748683421952242536720804779719314197842092884509041558241962844086174848366420582929864860856357951665588294742844739828003394767430636987594856207805327132246710638135480322103455691726893319873278192830054521440273616407755285555684668935749793506934715933579803271061817937617833242390520780137944003217642056885866386558064243518088232029079695316362402192695502196062101298171529619517331501582004883859152041611569899145352725499519983769170297154028406944464801012805376004634028613782603383093872428209999484018762520738708295976345635518647278816337556427073818572433901202163111011300764351032194598421787779421615726660039699388762961851849840867738408269656538673616382724294311419843733709871289095755499695010014384027695484231900479239566859841122032173156494053730535571253182663026314711776253741366124770025589404738958997542996867575162602963579820524615827317649717955756729842544015506754785095153199406758055092524471382808406928282006925406229692078277901211286106760580924818036319053974804470547433016332980717188203581334247105743624123194170887252809447198398151336604937125050073945921667175896679846906632279562247216285172605515897506254025241677566093201302700187648402141569808639594249093218720905377761364680098885969112845505796990410233988996311340553508919297096941565534895415325306953060807945576055139608189448060343631481930230271461533957832492000159868801829321024280464786598542675558294926731797896300521205672951911095971617356546040034801191358894519332251017810919395856881229736834650889493130466078291398975941280242774692604205851739135514357642717134277549349429646332220058105844687429937649101890828382670892317267776587882938903448882971926929840609909413884701493538154637525207661817140588302051777143975892056005793358131578539631965112456332857032215464406999972524529970560088217692797649507519779577404044526374849610443869067495894048693127430737143814385114145219007234703649026715495558516735224259654228627547783032511464470258163401722277691032504706113199600865214491706384580766680465710574116070024813563554790551329353773708402109901362137852512009010421011001039107539047553940117987256480000434840769804886538846482287082788806096960401150410011902692582516427755001881469574836861337162606159288381544697273777401034767895768629253063827441905595832831949347405289135406615841815940057878384473935640524088200008377227506911710298295914874434073067157315407103376928729300836953205592303766216996625663060955775874332727475402404160910698899373880249218185806304461095783474574541607015424025371064744310557751673966309986158543436516915038275865624928594712019841761801241997775876788704752368177732241390530035062135989814791569532871340722963285692355560214288819870627772578992859319160965707998945317605700040195931918383854932527990834359171029613810733582540090650866977684333983756260015052978669039690759560286893714193961176638785602989643244749520207621905180326403614756833782836303367740611482302200781624831870823456069716366169065283603250722474307737436460948550006792940951897439587841866098330583207173583119804541222277872573628638657852626964071640553163864062349761170834205379948351127286948576714627485890261785141720772188611254145148636748010882099967017588505889671608604572934502459564764308837001249734050736294415275179618345785338889553258614347585815215491104153014983605303730352016979574690512553545631734555613088260257995753497142001825526907026401096722039658098414435967373391986686549518693289475652971241961166359413258029941342741880923803741876463832563236324510106621058140007394389312340592056878457131158142772336215925422777392391369978223838291287210197526175223426535216285809236877045403227823783265038626487600646486748884208539017601109124667562976482454493589567930177110015415689212017116172266952953700749160555489719497530651170201729832139089681742554768574855969535716259484376874375893413956679711580913091273277906416787862227674470845960928829935288841373516339604262423256766676261760755405512429773790541941778609086193216852416236398152696524031279574568619278014282967544149450786382737604614682638039726788872732443904656160580990593078543326644861787391599281785022092270725739080225036301422238719811267104537667923041201653738661140585629057638191138246322989862203010441390656047678766146937160871556027112582937797853265156636241695454173318955844029323704060295724883811954747938773067119866313539720799206866158942740289206198930185638218759037021992317854340598231065524604679222395601662970177833065668783755016294528755648443928294381892752981191572969506817804875538832644951114649606025713082976352728829742245869629488895668925549175134064468984626387455314041516016591195366722105393725357815460242024966402502783589912812192863864744060702934785588705403439910846451075748373195956485842599924151030584979828891739810866659490202601086004138473253410385516442960188337467223811269496943592250194332255767005440918797836322478372909192650644564847771126701054711145857797679957143349264985172012431076187510842807074061346325365883984316691240804553871014909094708571192381027022685759158932180652814690567524503233205941810660066692128548988471537534006362167863177786695881595970434694965607671251139542781991028877874725560702953068316278351502312495353170601469631972351034586236770517276417116752014562099584377683070808056884554125117491585320890650718751062577303267391416283668871627543393147815153245810910974383121541282585849875993418465473927037351026593043541610700494301146850652980806590677730732176682140158374862773772268819725877054777228800016477030907850462189867985941520482124377577652891327133370701166680519571229611293631182003049001443168037130250405560156081331617787235069847200773368306044391568363743985720939040812047705318666289298494768297652047059695619519783337789293441235348518219647212999033917134336688194364593942564041698739931883840955353140421921620995661250618082761343123428113031994436851136340444635781175832016172059331440411517368166737627123358299110547655323242578474814434432991398142963758785805147781526713022448444869025932997553396560643431434292846571661115260395437445121273655881786532199712685674058569455061119756412319715709986768894538521458039257641127491646999484993927722108921466285592302275644356324780124206522377646084201954189620912937946478475790008052657130150048519238281941907391244180243456507876823443403489578751120466961631896433043310029315775039620219115781471603403231672878462257961654045358327195375159676051305276040816308883298062109970541799955082454639031239444628147884805639138436387819299019398397155613181053327428882860270596145847253745088308231184825468628795556413614172202085136988171102401555820000708552000147531054419826810415436107632026024811281627174441689393627969806492646079527438528974276203549417763569430350995468539573228337453270281716944505110067040246138234128659410647770410452438243046812714215319073096897118497707108914648584319173240664764850151546484440115029423346535539934380718414113275101106262926150814324925096566339911931950107675289217432734510069088832117574510466058997713888505294369849444531004588746116783953248242312688509607467852973273177011444628708014637397579334085702174819720351114727623631866835813356495205779780785767872555960263070658337347851999912774517949790060951952777819850503631337124463377749847049817597088284690462792819851664842063509139424257755605748458970021974748468648871773130483427716307680558281795649932073112900448413667712090030342819673806881608750992607832432333423698001262334409516657705670764395879988269118628653631010088942188094994773739073571754188270676510461079478238290170475330812119547092211486289174559895200614228842792891334677943365726354902354793315633424325901338526450476937461946358082629636920600673347845352021497263558822922958849234146687989192824441626248629687952072447013140174979985941106687876851014793744813953010544011853134081225802260692585124452946053796789207452447519664328432489634333349717146051902963064499598414586194385670095199075747072607557964824574800380562301058077609092264197641092005435096113382262175671959953424650325133048719780375100662967022963648501817984947968526578492733142215683058999322088460072148134986575942705981871249864007435349974074049289972891973068284245903742773727353751519253574109448149653610197494136893249745782555102571933256834850674966727834533785271740999737072543858100622427652226078754666186255298414962770554944227340642288945343802174744811346312323430447813401311099853986460381803027443013890097067410023282095450434992996646278941590436452656935356122912191699339872485398319622912859840408983155539203187776329309008074633611276231899119852098590641284939744701716841459913040080003579728078665660518017469165562731974766231273418427600173061909975565041551313841007492579511172162275232573907119014553297559238386425941953368355031592760003425662633256978444045521270523546285393551352578453940304067922661077614254060397566520360771467483708492914554773774412477068884896331532001864238316268594461784985353359163791080362308049962852972028377633050430997883341543034649555220989899378903777972299321068677585371308121804647840494240339449897705515075153460618805317382279838473030398784369165899952145650761615909222519360830325324444923425149009686858293595509347218772282034298774205309499361945747643081822139227352407532524570242708837736201661863750636423322332082418296051342130250923283780204741050248354871734344221105808120625335536392723791704378790862520498860421564436654950716719015026767434355401207330323610630721879600019555905303411775440700915957884500516663802308544778711323549949434380518572449680991851859618761209706613969357212902036685462360074215480285911078309198202984629416101096291957705256361644013387416697503135920365404742975646142697919543770178227085772612395313500385905843261448801153911844956510107623439906232634462349282269858251616776611057900328272510926113032797406597271610591206897680007697905205825862997551658169880622807119780514732375494461310313458456066133754055594071916366016062162882309530333227077515243580358331009662412383712839857591346114878814934040189083583074978123558178546538386691617346281451837861382983437452295515286500858964346649368831040257730989079384771566623370023136790785866802026393339105434069109137417108406106162903876669327643138985497625759293050269811804689167606428441070157530162757224779312292998732313481770459906754283205164395589274636607117549941268618197057717761249551184485701051228561904138285057373768409443701234954510564595115651507582474691492395710541018710311225654102060394677859466137953307234690374877927726704176506691536842134233527275014230703132443005568290392551789587674186834668328662497747629058121107355754317218507500239586345609651195748785453817722625372640516111854071398302484467748352203625649085812631430444354004517595643825303006841050405609293992726059219249944932387147987244340927312053296715810765522585650911556168303446153442973307743249968045584894634873214881152950613090601178030646471138993330129660785759834774645349190658831671302612120687996950444533399815111636468761728932277955699143786429274278704038108812406230116059537228129086218471746887270949467888833728363953598333437423356782054295394916526756842101683104362830551659727028473785597747030725406073263060708480305446589005408182478337820801760839843938378912323445483213876570587979824919753724904331425720760957280545252486928721511922474933945440947850869761219014281270022714007766876139166456593814153277670463120743995929384230082927279168741489059998617593867189500513779633290472340257789036286948105917261328190661730970328219456670931597858935942743512205770927381842501394504383003368701629651513202475272025075023169230708973253531172652596279721577876109247801829278247503021378205618834010795934733514462079952501639726619224597885555879532956908495025900297736644710546560323040413876914975749381206503841493268767501102328215248788401091402199755873532732696664022532191183564280993307668215455187983444093360051215812588676947047276293642836725066736508709105094044798586428028622737029579505079977335641742356514298951092774879592209934723598930356944683716626797315921336585963368752421017934171550820063478422076507003280756428595002897124027209769550662715003010022491308091160037887959593646014176054915250599409451423169026667263737544716188331587566887763210635883873644963733268248616923018391035818110057376705991253074834879929397537813634311015230793785452510491899593560419437878608218419916820499752081863512192095334075596484478243786401604058018047011917433455243801705415950546987907256610676551041838629056135225803662441519994340166137650607233468103917832125771163818171774807257121674462434737789924315154010320955180373706050954685804674776690198754046126001534218321125851761845341707503256913040765890831115144382856107238082228489061065069882836400822974983781996926507677734610429901772202264527024798260171605042470290331587473797040889865536030377964554767504107246367988276839064884172567908289218072958371799756238166116041992784610033940246360749409416515296899221396813287575758172842999659010308542397067924532017387194796022415730705252446657936677690015801283453802111633963268038902160881074177616662552322818373003144743334697131672855903123680940640233510147895410845533347223939181374321349347826184410970568235338970107324120530158896000453993453767428871473287684358786036456325605048788139112907299413496177653812120259710789039815860788049972958040814858986699930851844647711274957317425536744358769483943711323675012366974576423098675437602649184330761609839645116429939498091743414312083602393738284186481729572100025312205299327883907312326692424203828357784180765002117126504974279998081472801630765402845695559845529739297083088126528499568335633749177006659006027337170175045601412204265712777007818040270742686644789636971036245967731191749983858748016369077520751737818340583820487419983860610382693342165527046989983484416963836176700969351698810730211735106200238163517724766709266488159698713710029019286029659181350602882005497424009526188409493785498933551258945428263652514118884032612518394339924117868407876861503390267696109743140581544684357818656362098052946036877811727752776949244741080730163234493020879465907866501646341749923645918083474148131614205949046821642805042287150478851484397868674441747841517204762292922248491220544831879142079279667566852493347331336802056781731690752477467623957255353248608382867842845130581108309686079350398362216614530960127362117443163583322402044361098374567646436938886715012793179472282935942606353720143609590551591719549971780381538878233716431645109901977841749231455255852812184214748839355581276644226634309078643075699818448113112954049428445000343308748074913748771819331499165842853942550820650494828586110842593652800366468210536464839079987891043327435745864348627727119613739458632844983950337023536446769608587586831667780402017886626564759218920155818662116079392461449635485901391972378135451196895103267870274772178365965466394671873349630577622462807956337961119020490951026704496485586971786234353105007477049723847098096613654243492551612137312016360001748851917596435584564563998034998238945161492582024720086482966518696837114244344346636042108887335263482527362142352635654460624502357841767150479318955950038299482966140773278027959882349794644547760014061211504008035621728206463057800376574944532593044019117943456154411561893090700825699439192890831380748952092054368339542759213857891878086579770082812583804483934190743249994209107536510033109729886039996140201914779630616259979403691971518029337225135621175184090240693514343316589726241953422558830802303790485872504612679949789875137833304820859433511842107753838500781028113265665914709261562626593988204450525747871150285802720010766609050199847512597566002266543843352215836160253887424242253960528572381058299063361203878173519759552715128675788613180110181420808422152318707734627211859505073112246400267589104717728818018958810139763732639989068682212786530629472899912825876151523069435910197730178558393873289686497450874537107688411908761283483835195846110586961734401490159293128962006543098719439404404018228906889731045806517149750495029935031884365689304860282827173241092550503466042548215298114390862025316401848965846759339376401700805455600780697168333326305355235646264648543782630507227553832235355636480229139293596382946626579721252979746646674774431576256580994623741325830220497183807656673291227252553085044895874382580839781334077715939946924415786371933584408963676202999603732151104635604070541504339206940371704509664758222037174851392215386597338609492468974251431287637781559841552715337582071227928441059865096765987201459339726362292862736248323064052208742183715089380144065578869537497211406275406902645635660346629034856659195005528013233173718254612992756734434943572852196149930119552821004607029414757518250109916392313137954427546583096888315858934654391356973240146027487952398215225672093492460804597910923441531904650052247883522327474124568039738988687899161851214143253023202300922323613344717969117053221887242176228696888785774998007889289164891338122603195722582895873103629383114802475944965157208705593174258987245436277942915133341281302350923768022600062479516092951998806649264439932667751894785358192729657572955564964230467927114424322937781180872611190561689506762380664332993535459525112601783875992221449408098605928646962309021274889170315695473667581313399709113809090178066417000184205348270903966874211518488732573592735060899357381422542451064188719477561920439790957011694373327145960857781079854561690056335569490682431978112747677446166043135097276934632686850322502889909824445210813431489905065840386708191796668595516575295233719235228355622176735647261780319746140015761165604436184244270451416895629676837995982597803525363822947220726188603672765191159505305194092107856299011722019599158156761656276810149622498016440408820788852442899745769568967046029607552660129168572046806910508748855741449953021457587943977526006208505201168116622137940337207532237657100940461333697084005779433674790629507364810440202662762124253184683529530650045641074104623655131919845865225849100348533401382750075149461786657303416897363915955208165542531363197562739183057169171632053384843842350647534951579909516010253346569625389453780092449338378567877516067429473909729340339723093491774052597102534621902021845112664711294918423348542716163200385595187035013107468865030313061679710419238692541316121387452045957936681908158234976816319445497749595965500528279838690653844507536885560082264103163055485034391389093799449889389783386606327745915266332452095205436665187805383429765697016449649371884011629199653323153774888938796230608067582627525172231786367775568320644156755398307705280117780494298283608968884604624996217248952524085946820171672430192499668805432940765499969574984940319905620875731418608407283370282122064524902622194529781134311409742539269210168650998722050964351735889603138294232620898755867015701228858601016153174356398198482547701590708650414500802398871900806670003858941207558619590090926191229675989634509297584823696265928194419020201700050384758794334102375517554417395044719003113372332371719590921214103011281860107272332736795391972726504410672340215657753575942073701361972402110468321779876202155928691859160378556895848486059301280753860499742095634620221646952411533999773991751536282834314563318614089299505795150942512085058327141956669776894203410802603090128042300677305113371847413460457048125200504478752584434985984490109842145802258597618958111808879849399589811488304266970894983028023783531348317622261781380356282709133578730185211698675955848511108239101311327132516619692498352186860177595004219352197448990165780044268053210259978706063407994023282873420493191506724042628856773854836307650932003329878944705380129798715310322349213020141851605705045238982324456523168523651460316355697906164267274185287399602397525265490676633559738898838130391340569396618482239208445951143843704101620589753240756827940394201361931289210513213333807360343530486358863564428782137522601132663222484102421106360683797722198619040133728693497432609284350720316545226624202255568096307709079992436135559415788124575858538820279872401836330278319568107571912684582912141021022029097294351016756819361886442320766278730903763141295512148315290896380341420131314726733631025454374214551955980663780325710797581299012332229143444278261405188239419818650190946804007832195075626261279109915391624599021625533914211097303516064019339690723705525213389575843786638947662611261849115652944732624951144803171879686509524138377635277145328810299758176256160439978212627300053841728259782422940565445027930654059414722695025695547804737466141443314197257467535343873098454063982789084467891772166217732962229593690539168940137334639026526029698402920267018906158963495107160302610854244682639507473068567661144785495213577874942789634824811950616240958087672871375383605297931941462084717491525941973208452760819412394343291595433323746531178358590971233787142707223080998090888325888647615513873044676830643302398166295526306291128365127181642349115760750203928636302641665792227062403883332751149912531110288304104851933052122945577383813996005216326115278487907907718420898799401638456450551494845380867131864679240263008909507563723011015635813759652531223391183753415556772668029221679161489167154819006909258954734622531358058468505412028290943038652156215274619054554729062412857678990231358060499425830034783096745721300430876479159697255787448881976107701922971851693074691425671470915868360725145015369076191399186216727940268538600372275506971872014481471634851359847821024700321046837610241366153655876684105205046703929035068482738672367685179620516438527040645975044057965004806239476261113251490058321437587732551866480164022381835734719832999629382224180598677292332240048170693087073890716363532732505885759659434432581311593798008179016031003921978366606968991463132884030034109587597374543937291876962928378144239754738268687859210687067122005273915382262479977592009393038092097145530191771387812136975268622027247878160703918231935665332434062541638120561352916779827078429603021078840306945993299010620301255719076809767274615928354494212213693464426959945116229195056770576042830269371141063440750127434562862000890441488091222802223529117103516918100450137322373124762737590997035773660447377762875101780784014636670726477795644923894906210404128152203344829510698918881280569624656800328327594230508241468948366222631758609783954846232263274445270073627503749985152236258890136886247418675702104100144401107704140089542581703609030847669897091579545546463821207838467575435153902308980114661437352909149826692996114268128961129394417191869351948686097282878496547010918411980621767159018285867670313803961585879488689788612210101968723545447111655287341938045951890413333189638325255863735381049207687894581100453378853763519095582839588383135167883477240781994846105099147640966748882956917404381011799172278006244946005309856285376180933782883750220965411297988506387351832173207585427950563361308350679253232157482613373247779338693668775134481473004703974931816828880540573279328180146800956545843549289220829456540046225933602161201967728783560221170554575039912382241006248838680368206442576828741826774725387314135348444101941778833641626239382206663481744429076450786158341103789960756649431265442345959116242156660570742120117275376933635822016566410806314682665842506957066857368267801665428931221810556975829774953542844810403778058287101500087874732468677619442797776979165764870155586408800740931506380472859788048739211480244363695956228334690407634354175991827267191638350589242904008416169555253460727759699423113154214051593800402420729084988301219051287874593091893674742360028861284620253267992999727787287105365599305358842313422806001159576487270953003137266043140472942593835639861250892190462489388676814719566385188512191546525179912414268204679479542435610957614764778700167142753770627282287230153261146114885501171006775765278372876944257317830479174633644422167960365445142064052828020562578056240966254017169503184012844261448786392405308294980651506152296592911281294051190712663112580929834985388860831860793457921861352778665032547934201609307024535698226351426757514330881768234355308076744135844569651129605450103932501773362449965509214579719098835112408444490694925999625002913261914422028059448344467864993513143338129265245129171438455478778576944553078864905182965021010904528511034944365104091256296262823549399632514039679626298199595967024563762942313514312642009516042225289340231151341741663073970340654236239841511398904289635033815670662506500222633986587462567782317014711237817054142685428306358949432516519407095344850070593345995274762355252467302206367426320864017059806656452566340742156491678784397995316961892548493853774784381190721771789946187405943055125136834623085656380723795058197279886140837469752159369588914349399002458366307891684511456246119352302946232646616380497665364541512024640841695185291220112967523367950430071330745208367301434614273785936906518768542920668492560399689223130268310217224960022058963111276785111600782817772705621458732546475967053785876591566750926161389353986131241903037433263969973580297636591283628101816782345154900710386588204864108158948364782506640058901954438808123490384960845666691318225094438935704327474147206505942345111700755581345754324098575840016637546318592769137113577732193337109507267115793260823574930777096600745120634115135368083926890553371325169654462116188644126783312917529716430997148144060428946515517960007898880531402376655771885653078028419395745917534342974084720421712138484249630269838834656081735086674784543379724071239004535568973074671784980079874629066112775416634486053634357304766594930165769535390151452531221153243982322851583971697282549907114192635433253321036429317794596050305331917921210273671754093789858585911532606803758924824253622456320901836738752656161191030071231131126349028113838316220765535251162912843762679204539687771869745206988799213520121314538948438387091569822117901902225452307743960507749782963398761112484880393906950450441316533652759137889292749783990743617272834710685573708560180789993486239659126369775310541654250481213184851509673750514546068374569074850688058908424059774376558563384520149313165882163932261726305576645167854620900832426582862151692589936476391326348222815806458215914836896100211347820966441455221233296626650844099580559697682964191862776583279306419155103685999650945033076732007274542193338260957681282346575205052452921440139522782551157658624035894704392477317014257900247882525097416852904825756447100355851316982826444341770826918128557740792291223815902044044173913587182129484102313596777531125645235223979420787324506703169892404716407403602493145925992288083123574304556674445481730462050579904152631949910722861021956953549568238279862484723298838643673918642498374667303010057125726981008811023393429742390830246006767360847173765258845203302193008257355948044254157234273828240960222466546411278250788532535241707020433980772407655846975591412928794931508310206068376710580941004148117566402785436438191140598588166605077133982552524123872477823225661061663322443218736889035413150935944809048507394494939012108590517386551186965609054710104777514408337142230683376047835503141656808769369166265721363447924288513101573188046707790270879503380575202350894564979111135881046162904281261299924078365380545359620156953190501512912926079561599598375563053889714631493708762977886777522768622847975863691323210987931412901597047167995304421733278007164846239820706437489634914561515604753828370982481227822876712672938649808058584697438779456663371928160021255724022916350049212272706956675078374933048270829874698635859765447726496722118009840339116027918408950779417640060336616803005241170835708348552755908941933009234779478634564744734443947613115835277522304494697981392375482984749010761032654772642289598105043276808485924580611476568414044160987909444535062929230003792111136986028945370562364737533973292064016487549999128497340595322070031558758775924832113103947676334957453105323507246458179155532192105352619360529416510037335267139814563372527581533087225223642343835760916882192831292671730916691401369236173012294120928422654325894480265159088539568191537529163287289757509311504948007750549226264873378501705734669046370001423840331611958204272186805170185411014546945709372183862034985105809346788940075722569801604068781037190272875442059850729479428402550973508385148012397294108595109309127056164328236988042832535142218258236035952644021430357148821335764288789617143395358984629028463418736881173148013078775443718263112083190794372866827436836704615615944964032317308279644856965936724031564194363110077230596808534702549767648799215798407767542908284541320090767303492378650054481300715271212610336990748123100120913011658286844621681519596149591827887500446086290838930658147098925110162003332005340798617212629342149222488907595199940635838869180866011793770851087790496203659042335840794879083392141132093409800777308680342382862750573187601330036408128909958895689135376282623729887915138222586303014144998045804783118935407929213246100114967851041631296228347920068717129088216149340413223166883707622028032630379234776528357848802952540774921566060762240565860987574797509474255179654936835552314011134199527117237420602030886530471589069708754690684080659594654375248597177906115374935208800700862381758246687019805972211073605044620379621626375198288625897305398607492057482156248953014324923253054465367074300195890885601907586891780039400803144093236826294118417163353667350729097539538942807078520935345076751393401383894842493988554527877420686398041737269601579064935965098600029566244378950110744198179489019842227347286018176177907381309783584393244136445603109623882090802627757152991705121224836296889771113239643084417500083325610157352150562839463516105690663507475916307554386954019943237944391984141786738268403523177199919974080704015630941347534561174068583656862071073817075890175892964472797810958321974126028447638252929626024659929231426558000337642143183272826671292051295372673906526041764384720435524552405704729421876413082531389870636891991712308641059445969142219269384666382886390102062027961146096307845573696132926009642914480187995780934208853229311331568437875563155949068850301935685465118070567170343917276756032889446483052584027655972578987881940605778925051612925196221179753231371899723464635464088231139583332886823465876946853506426771526042901283054411646567481284231409543773486407778649581358956186491407351644265374041298528827809529859434570219535575602513223030466050407205670255772743932669943754729477638817165210386858959247254732749753729965978490787113265111278982202311517213935258409451779535928378487999469162878871897196788670878763545188888829385454137276924954141489552290113929548045722546182319599179912946024857196093510321781131944365280734110691924361872707337163421532171950367536810201695816791097230489100389764502295912690989648791966134865132035280960627691452313824849349459602484345609925216249888031100918058269109700191754274573471670782882691129081802254393153277207658275423354193951123952951906796505375373467865132195677268648215062733392273124976680906664309487138704416649368721155078709959031966049802257283222197477161861929725349026364574632239914284420558854694221919654876085704136055393806024137012694666926410221747641518010545064528361930952104953869599496524790512454119018393812803323325732551528590777731859769548579147798927857597437282188423814835521840149361360928826806030596795401744369899272907465757417709890365060097912029303693982170880298082839331287345499309580362196235356351588125581119043540935536836348507674775938385779629551432567430811189703654015908032284214373220460142508515363347147341252633421961473556093273385221314514567149115625810777123949868961337106524759626580719650414878611515243340881501934264322472966014639508298456712574106910906170240953890907892921160572880468099940855597614622392114491921802753923784444408030053889365727515468005303023768344586957859361074370152512546435681072085852217838872395626455681428250036873166124189744366291442661370181881724128775551027589364291324446824424868738770675402831090130269400306428870956442380434876026488204891379124503615290455984443735562064408172252173391704922389439386888773627173172334006994632791727595852799806989033270459258724240003601330049336971692308720836330827917388309982375581731309104887562150890317303314071529076912065268059277779230043901380550929772598622738427763673986584293468507811041162206156539953431291343958789098397323563223912411349099846272503393764520586701791767637204781842076871013821965840101763613640089127502818019684512714704597093708902575964884746418753745934459799086747752971736330693778940168834252168700566903089547449313755955949623921544582978567659242626780636712534016813650825716398032660473903469294068447180969646569396623981494389504425858107502672320317088490500461175310553519480881811391564767401008748312657574569372882077509278135417928012170305516961535903808308616471472295503812637968638445819539585011648187909639754856579734034139344649042073047249946388067500877241124593221411442606821991109533167364372930082176172156063966578093640987355296986375993342306651495446538107616785143716766240475346140573342975630746166634603932059996519505301093715209884234406007741856411622631689988745632050322704812920378737755713071649561420343118226957937939181362207274117584008327144622425164822251992654149481333696559471292556509726783354844860790532214407781597800691870320503116338945363878619032759554866670589263006633589456863749734224542238151866589510036356221695754882272343271493209949818763161481477613239635450092480708423615804123685734257937261326206369153435346124026870388500626249916898578251399269293668333101000807709036671362229377712898246593030837659408523549806727659859540529022344967122397340173173055183755049873552159157201007859614861757404810766751869710852434341044109777283985434033445498944060807044672024718781287983075109525483721839397079607951940601502088428529774101776332839108336667145224299759416940717398686430817203299680822667780381723371295432033853634392594611630690710615963730270518150269420834116284825967556803937038999252723610350123569748592808810043048678713619771693366923855352622426227319148318721374856122834416970184655124020844379798612366862428596593204892210400918798194050387174991178855752584626484814780419588876243944886417163635709876456338967757227966739359649926607083276723474295776536124302298303657440023287406552999719204516836910252756817629596059521588389701607339609567078667042233636810847648402274506122086349464966494819431517889561496024921243376221083222800098810336727727020143647393781732805073400224513113867913607381150346480644308676516292547988249169448023384462011087660540939371021229691125508721263464634457460610643480908018023632315327833521341389832167383380229078079422521464004866586391862105247916330606417994791408248781361141634828594139300465668952891944701374970202633351209889710054284505889281751205376943032855158678409797273980822296547361090913430653358025484828906067766777979807103609906415825307472186064295170745718071646318086588812932584896390746615269489185419259871825761526592926922272394548267233718187061886612053297247504176377572161396334132880118445202037787423492052840592429815092444788723752544735440416178628091843770049561652349982224068420074375447011970696127774046573345110348560599146035915603074960625482211700264731848779269230386949267207224715638641130351340092021760075701444662658839309909564166532632950136996064615162522154845846988843366081639225848995264655025090917036470648361035443549519393523003210985503864605422280143954054555284731893876004602214269163926306994543097892913074131026346669077498570376068737279222927848268200476574854901474440046645365812588287131260221029725653535023298730859588291459678496808306606594538463479615812155745657634368467391033873774275654614793281915372527576708578496643587749963413403108578953528715198222280061227428865094925293090979482997972076088257825904194978707720193817313054558558182415298315551666948006249338476231252342344105600176034705623060188678064802525240296049982778798884699332683062025586603016105338783808843026366184611680824213184400962420653396182858374048794326461342953768374955910169670099470361469182859460371592245828476859573202599961802107757446935718324283582875738862553412022543726813097233819741690367773092294802469321012444786333410272130545692763913697288200863791062296581907034491078505457327495963872761552182716598798603671459113929776709069251845162422944067494343770499077775016108382455055771815244758052791567838314684158091721754432158944123460906211529186496496387439337632166784345936365640222363970835275388159629206336164651078089641703156012326959830537309634182458185416769824324244607673837381175665364901291843904814187195991968856097655006909367818086446822462542774494221965095197094133720556559088982046498604032749549851792989765839374054761989589812159307537307922448556493258180983555241839701751521190946856329337944797770934986119101447124238672153020715105845971000337105404215880394901028938670443908338022185007725150270595690015223026166413664269638558212011771587278589594486240390152946977337643457111578322175282819915547167642362750460696728369514068036734086846318471545367811896475189608604575901188507571687140952779132986417259912179311416710168262502522786311044545019025349644743188178975282721291767482867606642275825544183434555643415035730625941468073599854263425009516306690844697047235901799721633307181073016081268412927259618464581448622317739105551396594211314700450521007993564513489859276496424475448671966545703663297153149254650597589341867548296893761470604662575939037589541113543182018449413475467401300370026342454456872499835989753231714185508804548714388862683597722313665325204994391976557938918109636940618381126186014944590244744549567228119071820803652318003663344167526163450574740962662128307722232173822705139012088887797514827470726125819768841961857728805519897928430341007134051834140023192992015239537017486831592928117620537751345749535410396318618756666391126237146808114280002952616699847708020296356106198031264908947702533971814404091379336694379222363968537601279907640929958329814504044573038065135111454481184157901008877523285341941754104489248675165619734814434979837296872275886469307779032108703166020950502818766076581989541274445169015128856248163301921714321228976790421190262673815171628069318395064064238284519495977677364752292864786996403763409443172919114788012981140657834571518480883899457564475732769500634232107012111337415613009806737936631500656605239781182738937207463473646863484945684149436634899292339659850441391787096418835750197041165826366185030027882382529952028196433118621246103188572754428780818829609651129258106124692070039993869548582822384594403402287470423679130037392336685247671759280154942374312875658321727075059797040535371431876235180260253899648806340100939316398206881882138409093911885771986122902792329836776790634880718056303558826508660530129199865259675125017602829191005202599671246644972449321539492827087390588165918523642985739194555110572457285671678056437678514154621004577479358568640257464963260563501560596354135581068580335061759890166914920622305443209298544766659587835551444845306775119292356422178727607016264282769399421124804392693568765595500130196058226572728966421581423491177328896826864744919033543830330821479921810480072208022558480416689967803033382444223056690904221830094150210406092634570568670735588298417228158731387564974577203766911997726035461368381752061334758600227465372809026188176668581714610000102758411681681600288412383618081555429337529065794275779680108164521855226210685838305021507273897991007504701305327098018278050135399126479278014019211005250529370810115091961821091491364726823346573150361019661924707823980730087772014410335146228956106591573188673874603624562672376396126181697088157495197427534311455285611042275239956804975512245616505038826842506952783412726580228914564881182109632665361393923404922685048881566930003106514173815426805449195858705335571239481050596808594254693462790475701791282871120564637778297647129808197588750894257074457305852730408505583071478748726344097329867497098942072398886822521238462991703734531869599158579861552293487033286175616517801149541981222501961238521831873823778625487126638490957058357794776406748589302446054018151969634454507046245311649912033862561413189628136263308280768613509890119855540160911905670312024371583040658865616350259918703454543342190226447099238034983544993797283719855220153358902617257214331352720124008868810856149968374813162070216032048559342568014508571646428466783542968136103490584412076898195791537637573241800042071665968975484833683103806532575985196354976596018771551511670228144011976810175132874358127369485474670412521693460808815734052197613908182880956676201773420392558115135418310702149972368385541935026491754290188072047472971631752553253942837136800954580674701509260604683874242666828048941485853864155883638808040983040553292212101856901262026166451577686456813810827005521911005631683798075233657823067525451420781765919211746460266048731486327911886281054122542512591369759651814585146450870193676150130426776247933840044224906856562988479975055184544751418872080496900771426583154578002029250724577030564944270911912267438883123070056162815043009208568147519993118653638843657431014621737454505622849139046834485698234050111805421625446858707855958880554774680169257608570869371124189951803672276743932942206577285094588510210377939297341281250325445413813868744717195132658168877856736435530858448796746376304041828543506645265029138411362988459228846959303297178725378484095445795568160324215671568162726287648787804007696692049980101614770942570887152903604303222068613938885591885530564614066760264424331693950028755792302964203960012197576185127608348618482527998848145842838607038282036648379904022108787196100930876321071069164533852873634166680408430004565929752605114794846713829408468412513235490164814757617043798053950867899760984560037416130007268045541755829210464297710192104702186257299745341243022336546172744314458600036019216132302277167675560229694585597271183203282373898015858248187775490434910797852500860758452395727239154960458891988072353097043319412814159886998104574557130042850574259941776032840324429882956648387234762608447579032145598524677856980076481904116252799009678034257300175485168951376733534716739414638498450821537604598601824827605420828518493750114861856800323444096142966214323389497699778836847817348903288413492198381712858598718991040789655358067868386019069866599927129563145971113136878144216520825149724657549820232758279670989080096534372044269988976657368076310170660501866691346319921981331861689942012583710508330906010643889481427597524303821018126353141329263647322094931807302526661143123734784877621941203680045175359668418755761994603897277207080889963582329645022259836573985987951175360092822652255680625266618584973144429282122844251461182192144776836908166427350489867407356446074852083349702144845159616907676908289562478079885886046215486708749520825871715615569423457296902040117891432774739714312787229209656528162223305643303304820254366715458306833585072004900973573058651284908418698801544883927035295349001584866688788151811228507757495724294226897141807174472502419176834819989327841219364616779941033348455223074031980191819850487774441306902595459494369238961930495622656260481019860010683959803632909026762549010307582058709285668102371108700439889249059177541255060641182848148477204354396300573607251661277003291526228162149886102082298703629855188879676531468417758620278246218433662757290401418857010844840050946300946060279768839985953394783717484738079217751016427352509308923222372228895272443716682518895329955538431946157600274932135546568568420770840605420137474085038010961107415631252483816221913519531581913810491898420483870296376560873882323409876318503987499892789842966745760109354167446102454338330648452366882739224405590526167241461348541616332401561186137980847304055904712289475086001010087765748967367687118201767110551112156583143685926592917282871932373208955601504440888062482038847424193795420572353822747838125148324069351715983149103580093592459321908320052702838650743892046973199891379708738543172835716639436971856037208525500816186808378837781323886950513022408110623430505474827211102814894111959342971422798733050729049241589493194120652609840038243274871006779901667874495070747949860411618726163395765940548554369544536819770760855448784742755152836753647936529039278751311997815931801520314221765609742372541020191267840532259488052763865776690243627262367579634983689219787409075494909006398243183386751146342605685233002015626746918188768293645060820029062578005289805652856750412187972424421561114491149697857562761801393293531480515379459352593352709886140466801561124218154188830334194252228766942051986518162066945265746288699156643783563766739911608739308900977134439958106104544268089992854201720835256857794753626521223500811770286550618230651311984513916512709728364673939792677511339745107370775935890360046555605529263594260090043084257454548240038681229885250212698857000157787073685554133341678815229328176641780165767616122204108446227986152099769467732742921394294415419373307875691563258707135223577899820660603174522686857464932461098481265999189811169187060615442734093005836893325342354219820823660250948239364973250665234201995551981437912386723928316827068077826356932824014067027849567694364067193410728805440754236460154881329162380338931656190503625803671790833466681216126166583644084862106097242939334261525419407491008506954321954583938428481683360860251351541474696256594074381383027627007746709677803506578000342515273041745891266330956479029939003257503715057494225715119487109742339329414393604180009702675765107321487437912671340970008438611857642237189113007088587183367175656368837023966525070727705532259699316402609612291241580944084552106805214825287456258635978184546099729139908498263958449693068217648974825440940977154542012633124534919482846067505821229253049743100927715505425647465473771966891807640334662305429251493062555659796866924013638961660162315393931492936753507868621769366084933708775007371859812221690114329329017029769583199997401547088208924374005145530118105186441396682821202432165245608218724072862276715700441894896900273967220525862273907292414882925478400822646196311925742653342476789375020456072473202606647117173673272119226877669534860637637227607312648343096777136953023565546739344716724262740679853305019927523056400436990690812374110260030625721076996393731787342937215144259934036409937347961687178500107974296808086526263873668971356879168701147841980254563005658625175210072291694648002683342337187082595055626111593002046660784040711810528604066664525984191277408266656592017847459653723359065295625161843107431347704878738191016804571974678662375334537636735146915830151499371396941500281502240846535345651051734722486866077864306016290378033360546916364919058168618840668693388053959212816631820377871719014926372271897283704568562302306835324901305329173461797108036214606932566789761586458009412104559780471511749647629321942977730565713415379829094813311401611880497366555050977845590152971080539400225859503386326491960317255890465655878359336185557236555849966188137694525482021601250397894101416042589291559855855511619649670167905130714919958620453164154324708439507391616795059937272083967614633002737940812033585715080425611131249561921447177239264623762623871839564459395710154271222090967917507857227528126502705447094929310990954325993624354604315691121254115465071268237659019549572521187129138659180695559922702090381738279437756503488616524335155371842324833262207564833062545631791261169708279394491719616118092365411041393193304471502300825555540010295023636099779467777388674762874098411690291844026805539144526858435975788262539087078636551345807616140785117795284795850484861716666701346868462257984641051382477797115503074527342137668879085407404259986472714833682035986378920793286419452808914142447218373664795687918388053208030538570350533636752317844037391400661104281932555664805428061145922175598752272889561225548585015299186413235882641899762385351714862974185861492621803015034244381838757084691548474302660630508888105702523050461757715423077623936670207968431831443779213050556868386130625619813720147866499252713496565973833308522658626900099618029096971031771471362525124550317525828606363772193913004709659741287562481669803044999819398064323095367944427146290330241335493697302269773096656745262499814224701879799435971939864571522608745479880592294142551747464291615347538165450729057159619156172463396257530496474372564175623835154719773253477382993668360517284448532161353872292901459306924514238807114430249975171712887923116475212299523911853168655695309424585774428847397759214948373950368080722386285961304159798159740769706196932499605821105190406862891376491142068270121311203578780918000111658377839360001024418875105488734584822377565677984084370739006728093258538801553108663882999318331873397216093116164686084548680158419121499930426429808600541296728386407607711821577160191579707137961295361219612098594742417290216194187662308362140893594333807419706160632773752941496739020166089401017909255683567738636717811874655271946101084862674170382273472515378937922385045444813475009628545340560794527027238876154950160703084062803593094023120536159895754475259102048740451988387152230280895898066696842858056130968238568176458735407884926439704557978558280027900496057022936409783796803123700655116912833865952068482047637209080476845544078931549991358329146721718116418829033567991516004442001991734699864011238339644394196889208261529532011312223717274630769240766939780042681338632700438659402474309412352542987837367883325562024405790633549593708451661796743900824667013224404248889204033993139500057577793827974716846782598544845066811178990495189053123370736775335044807361766656685307227316534479571010634052964144794020965372513646711890702969389867233209938703499475120286588592120225601094520497565796249336600155795532159477346703485557188631935581093607809609934608923761268541546011002263336898554971381674406407994979867271643864822703643700700760382416530029899823473478725987752560736038684401334293561042633467962465334334434768055811554777853251562018989599895731683657786059887645460561260858905163764318987450005075913098545178701137682040720759628855052970966317839166419984168810141679573999258787467506384483465030404646131920396748881060949024430531221877910433752926281339582089170716624866423115882279930094387167500972666875700042403116613947714860172643166865878679999601752060202420086870190262680127320610912499041741487064631429110547301233649223957950080527693616577814002638755637640409384302841146066324270117229853670306080298177518744918137169063920578281728281715228006422747634475500641304263730027507097359963367574065947577859880312392760023752012422550686176990183090058116670715575020985716663720966110289146124647945231512922095373581532006889255793719381612030419305176967784681533918816822029741160194124149181640566047933044209985911074534573032538897041996628042973891269634881546179745122494490674488617909134585438112517608220373273402446550301863857370739075680920525031808113836079718773024191238025070028195103472679902830710899033548663111884857007067386743793016443068541916990462082070350013771106755747161810513943766273629287258976759976544337206903179214386700761420600277237417820499883216553923646760169373206937274045962078172256792232389136422215788345703286674168726918354817645237239309228047835398089849199878676139537944641983386086258673186694737603901049519829346564259183963894168548702186124644944909247931269340040841139540283889838542590636658882504983041595222991127911141626989053697271028681534942522746262801742274912944773284925724480612716193628172808381979833602215776479712559998243862241180719323064993791002294397420232854251239152320385787916388677409998421236299111107323925669011171283399747977392168527528653905502612792992237879963011426100327924342374085366115888770064315801208320864348120856466051125117965260471885940246620887915672624550502091685740680911049067644749796861498199199007466517137137542870051358261984454655159651904306175015500618212874853019995468335450227825542146860948690194787604100240640078051844612991002728726467470650918872873124889098870842872443379316556993943507737871208466180144435032780180186824545365360051716320744377644238036550363060197925581686054942273462522531685446745523432863960016946802890425538454614998156687584584966069943781324747048876789660303974367898210153055083908035459767703080620077875422863208029201487876506994389916452954714500914924653311558131947979169091409872604333159660472443931163676765112685749279206663618371727620628599515434666224377541775740506773351073068536948514779596463502594705067130172233421821795013874384565901507473027848362029116792718488747210558119452433142645269491040898229329156562155669627370892612821002259248574963264606272928566392450464961190290596539976896318846545100825943104785018247430927658584157241085349748259840486348475801374544527260716175707016923146961092427344475926018365093632290604308637778862690800128172173418640476378712053116412296244852053311716289131321363763904462109301939240376843014464770275108604434552969988914774146520950657514046447207813730763985568402906020389986779682116026398461421591083472721665274024034966373620016158084333140823710927853645472102696234820193577739518108852843585461796896880662872369081297518383415506688734635963644569652073000781592006511367749093030000672120453208788930194135153419225809397114926991580697985899744921215025702434027152324237111543164755360198094924790496631989541536957321698714668700494757555654262719924646833660232716629782857468782271929017931928798786820675507740685012091150897511586413042996250650762390586914805146816100547616407803051121582093577473226727211543164373069625205889193010449687275236407669691395663794556986412225029561005005772762489108649009366475102372941235060441218708087739936253821267339707063782218911741989647124926055566320290383299295784185607742281560417822650316396673978324881726260162352128047072843066921146150034566175866943424772150219069664834499531499398222524464343437452841676444343975953644876106153480908418538506800630186750586218165224225218961873825215589392356733188595701784951151022295578704849907815420620299098336840454523314954226128415223443280243446021167711683777963074733905183580971535070222784808807660240223973299020967061208284407887740739122810781140386265454427352616615806576022832924918445645437737536754090034124640391338175389440612476252251069719507097845789463122598617765074361956112483951829764129077355715355415798016367056717365667587191861017483560549758297273754420362089560664998019979155055149834697615752448176977207182029419590420862592301785498206898307419392574919626928003339470840880073828542977790321421841149884368114489245080669583863168356229316725889532209252028037806328240776790694435463267204493577837718142806092863187840050618730100665968423239006850820112845707813175542284779624021830639029832672916689268241731460059796681583257394171662977250810734361034954019673126280912633731481460804057781274111206209159301440823138297971127470755211112193062087515374092166142659558127684954056951852549748403238872414647020075522871894934685330739224247851145068497951269297219198334369921542972251222875507276728739058016986638054261544852457317357595634741068390444762985259957693196031003340066876470741714282384756974194921522207411738727477992756104970380490418405662533991785056695110775269698399911284773026069057088683514801307779215387437257779458357675070750640429800725203574173460463164689061256207070578373088018484445098161403888983606696273278190764297450274073659288110867667150032512765720200612515797309756753474966609857322858225985439761966153189017311375411701609980396371974986879213915579749263934018444160103558995716749560533371427391200217012033523220826923232729256976891694698882690630931593474471761389522431007715551643523518675410274557253096400302027023833758636777016459018059004134584978044123103655825967820258858910613509769066314413157353435990896328641949633907059933292736858790253689127525479291042705757206279202461059000846601843661623220585679840994053553625598544670556652105475983558880738150467467578140472138350618323358763883635141537670918167435131521015436992528274827870348435765116689513992502678492461110656979951617194476675936547472212973747775877587747240723532390917418488110276392309974405581784779266233122250847748051830732148828250143097302408842906413436654890485421534385232415654724543915746917812962319468286533687265815953372754238894748760604955412648725908061463859627110998932015003412027371117806944493705922694872825152400243189138203295411704000469107643868740504078693103006034131349868747876017978235472912626383402602705753803951340449978466278573281551338769150422280810300890780840701193120302624528378464309230860544290529168184182931124084328624829925116421496986127650955173145541209196686315560084676272891920923761066749801159396070720581078903321481104037481908341751080409272857196762625253669641950306426226353630721455897343857703313859480707086643778456162668943360947808283612704799548998553051246688318880746769825705206734687679792326533104894965211915730738479635819709568877710633722457840430674899001357645973780080537092191101721813957652421366125967395505182805539655705998299723928609835572194643982670496205387327445058125049653494727400072322769763277912044208606829626331571121893629349951299451888884625781182064784672938403229794224698372918210068085136894785448725864441200286125368471199102936183421978678670557493314638847740034356122522298674451666367970530815145726683136666949528373638949400938211745758155471607348753405935537553322379877911162038405595171312291699003200767513321156207588544881130650625285912797424754067940292801305317172973756981690345012278568630785084864808240944661704473440758352538980819254387707239052213435976607951262129205883578595891446720950011544812846896302164316152892924857440146531899233407029582871025856314929509259448888805476493056968554407810184827689827108501956988080169364269889125430845453844263595944213891109812549446128844049108016601753138187370390344534615410608962008697192947966250833162506081517363810498072328661838397244611169285840369000278300934034058552941620965092033057699136181250215194859644813410421634679812014973835495185822666750389193945411703138108647461177446275152259556830054567308717672043323442535218739486234088739427178620462327251040712559174631388524002959851415007468480646295066493922776248424723439305423741921859271392021956094664339529583783549434552137557582827069482742480356489310640148406146352340358505346412428991341376893261913754074584829729490634360120847314057594667763177620950900058796067300411735248766981878422802819558868223899164622309049510148434157266744131956533180875967152374097579844425677166002905185238441004746292128197643887256373205730027020777926680015728912801469551039128292961416472993323663299353688000903898421048926994407811271096853598644083908501659791162264299437551992243199237007119476610949374689425595129459239944623435312340517751039722545952593094265219310088978198896787166569214115364362951183365990453848699666139796755007165941097195519476139975219189083377610455139046500864103063802120030036473207967051958026698969466824162948862969670058453428378532221663323332190502083674090016334577846005899048792350902419026901064408578798000361875663862300302186529962161403487226377132716859130400819737818308381049927351197132529489507068131951205768650065180996583371597642100225237962137183094901622997670528514941564353095736032549740634208343694262804456156539217506019795948568504769136967511614973014588957910479726883418529724263749306513910461076113797005035687710284691058951107247159099107679944221328206638160492122399813542433449072064740639956719805387956992735581568817895056178261587533788997705934861051077620754502883465322052602374207494527885134680273957735922965738763696324932386406999472532942491721008000754349456710904773889044727374720647997603019447904482471341588341555585575306722265032904831967286547036291319683276931083616770935804282136857548531405498934165177098965272712598800906869939150653703266730771675735720487054839977315940754035312048314569070134020812252612022994462052691778631124092728364710953139446413078627627716331676262844788829126629763991532277290235679317391238463346726473098693103809517769814737026700052521101785693425854128212768882801441360768285350539306295699765894090218610844601408755000470936723186887971358270947226806317202274134337100165365310781677284383731669602045847607388783595648435732472029130998562716206175604418257748550333689917901613226179473374341224723213257369708551575416362263577275839622806227387282807510290778627440416086331721932176160316718220766068999764575736345027817404961607050729990890278497202882924886217530397802566071574686560676602653474975903697444465128308075710759096858831258871741362226375077820172024097208380348320548931005626987997342561082732247747619029881594313019533996945838716077198018477802177916830196314980300403854193263586172509278526911641014582774254170752911239395142112958696502999232925858875301209676798891633789361839464410711009916802532779414085950819259548657084227293919376383252530074069705964852814801676023232945069422772896239455242253297555853986049373527321877066041660825049113985849281037036158409126581786621578227904379671934775815035368490423585355272184739211456542355474457720905549909302649661864737301765391726297075839202178177644599627372825178813102750787883685325175137896119386050583376977983255891828844927802183605295330960175289972334169478934262605497058276422675496344283915315728121624797326484041234739430076567182661554252095930198410986509517254742814341596461632075073949685180732850005957034695843664882498849910843997981047661094840750018178621841308241538023076308912868816311407518852993652043456719678942516727125476793068287905548331462083165971283936043368005515707027734275671581197536204262876760005487446967860055564619331998975236261580008966817709249848311783730787746750268024076359105548888108557269333665725616385383619110714907257915699379978010407302618940892143325236075146203393743909240593591593282837298995671005695897304661603565457600970480986722043397887282666722940162413392089380938912589543782586469135809136734689874435630293470171018064113332455455850970508457839296470543982016294336129239544599437031364814583692917189159529755819205354166918785857455989146942146028586138577687358629327049954100576670647708951789212217239874208173267406314847057608538013028488632162954262200486311518494208456845535482452689736923858908904705872377676779050166450347716531438139275388485173657453868941156665219851546121805088312112131226040831549663781693574763731913072316636660607880562792217478691375242015833264110807913028416932238549177567167357123238418697080969120364491377042195628313194611192716950394149899930044647039518569035592658414703666795195305826933681715230439377875219386456798611175666226241654046278675234969041608551193560708437859980979138578889918162237318800787893935030518355330321315265834323343553708726108526391571066750843831482623590445467629324951645860282524918492957734659743322549120559703154064588970006888407912335222893697527014182174208505333075204900780905900884762473157574761345934111006377903398013344700416581490648997421514145044963374852629912658240496694974484521731667868139967852144582239739315155548483633225039860686959708892752996813894529351571700918321936590828116984186176475169110125668028680178702936559048960435263697963695095904551793968241513433200144861269520892472939111400400813546428937558995324393261758044282317252719319500055210255875762233478829104114547072800613202065801103625107876938966185052983891416150288900107017093817032932525606728943460575096497416529747607660225723727049475555500880833512518085043221634847543324780435223545402648903922659733250968988198950036468938446847390431356391965741064357997197162657524283055150351921055241377589271472754948831799319468397873612839957065739444717352388484115216022071803843288166228013030583527133388910205901030865651010140901482068527159568766927073812518235723903171377866394157208712132731596849450583892134152190845348441375463598618931134290953859459754310891036048301512767422200112547378974917181406985858485563638184819826456606601566603993735954219610527543189279919268081166496071201608958816358843114924451139604021367826058734813397432939835271120009977751829987209173155202519294218712452837478922743078537087221365467257761609902562875215124190319249167103686789485343549117725076039862216095212634416330546117253596283258693089088978813575083658043224299853889698272859861297690991783836245635886104568506832986418107145188518919819925306992970239707067055801098538303323627617081326237591807461475142139879314352267647424025252670680089328819190328550036666937423613158199828651376770040751236882384998787183103330187405409007949564364859859197523006030739869801920713291386465623751207680227885897797408490778704272842291153551654048113385815315314827020242756091839604316246970172861979047463742604448667590293004821374256079659123007255293353551837754582261760662386885380469557045869962271327107737223626127350047325049927988483023610338801103662919778477811995250871264328698880137481365988885339673930768909560344453558460100349391034161737793971126745334328033249855251221559642535060923443754881260976302241449303402462474474502460822745368906246362273679063939089065526290403077917776382049638853409965998128597313749020329987449331862746281622612824121839136859365734073332005779866107523800615638593466347625258984008679363996805228264698729072662333888443716619038377107673004375683593949087477865969509712121261162325530741196548435980015884972539548483914244519163022671259107904342142323567821765666552934413602755400260989152907809741724339374611711619463468863132918783637899469534128903185618810924959395216104513740197787363933620720766718567606184174156364220551190222222439402623185985479640958702836719874503393540916966674273615534092501234031294081635680909318626586944570927476523914190847413550997848132106300157878702920902169630879622810814222739852386084677718102275946157303874529467910276902355395611132516771962322717206540829356622092697837744014508109583612477321889328039912745316048949292630759874857163148207083010582797278216783764199983757148165638841168728396793080132749584248687624403198070268823179607974434113514002784764177924998410392333480542255733167045281485954608621802728098233433720555528380150204265773862881179158206291481935068795801922293336164564704678924905610025749427753610298155249601079093837964632244594326917647838018928426664369124843213858937229048958772468821731936782319990313202639200104334517327690394362129973620941069614963484431220489927499255490567179537911160439535631081168359607762444647259530022815730459998323084251310794779194347432250615828963605640415792587505186254152678208064769139533180731512681804115034396820965094804617147812770684142127324471022248270373114724166511332792568979300022993024165194847620146303651461709081061055358175626526122934706363035519708300433891219600165298575686262872405309097433249330490046348301132988659742817190725757162183321945598569169016587676040396199201680140958796800879306175578616263357021489933673082558426608968053228748094139123826508039263428083556744565764789977520327182550589378354212894143870210020597950001226374739603602581483504767372802742017037495970213302741992316975400469034025155243180031201643142285492673922208444868195899832440331724188025568907322162149348730380893385066425854367778740594181036516617692199410169043272536506963514119003922273907142770807244845189228989988482057497462367076968559022962323392699705932722847088581556106898628692326122290425189466572752299775225687320116936007820058768674854855460323338811016607766461433552760345213114091367870095174984960056038251414154717973370831758422648965868517078960007614080920962191896758868561196757503369639054554979791119658601601163263103492401689231967206205105448647728092281201756030184662795831447304419586379499932399722456936189297590113436952142386541838053794588800970481637803275411652091921082651466280626282346435230484910423734105919894396370510609887915422759229556859424788224642180882259023389617829348794842883456282994145874568045186748516880508822698147016013745349461418379636157577303265133951051643794978666431499091755899933348289533340382274479043887347314258521193546263215182151255137410034204471751019448439332382907144136075900040806901310556735611844985874053525387103649592555988302184094012576265796987263794193326310945344684839882878962156048084361813857152017917461778351532096168284526226960997587597648653383946803396384560337156164577055569225150959404850473245000608527604465336612616887264037526776692999353869451910346599199339393347442900196508257863402155468545713781468147083273165909025213562909598262284921408565665685118104199405783960652507955452639421747294137919494131748270785693744390855520456458323670252289314724260689128831863735289363947556980460831394021885526504027400774323376781569237931734515388529218402858777082208908294410327085858706992763723419278849275607977527147363614826254717681393733787090797901187783702529609804998026030630983915533074596442930018583067285519863266105213992486229505467205401705233955676950815237856406542442580079719198638174366810320969209820790957934187923010981713901745285887529502667876349640723597313061182746858890962556271183755651547506230717630997891711327732834007126303724682630631934320849831431111444291347908637174926767362060583569815142628368255397314856782365561572954334300628211479130101816517074892871701054513530003144821233608220918826031663510329582710037421519309806504594510838697026447601205944371436138677707318978217126205209355975540781697293711733546481726314319003412834751316087825622639265406655858516273587071721174350469462532899923330535891939879622221816668291701779993005742191251003168445891148613987686990036168984117338381639007466372235729792560416749404645210680292461445601662936367707656530786451579141028039748475292682330155999640475534428792396001287066573610985395814946159905058190208738827778891439276258077347265993449866196633191888856979974800739234773292825750829118445679393284556003246001044253460415395569158459125197816661967035456579534064468706589360125088104921853123779530212930642092161739282563703075401772024355527299217655376772739112613722120177773031308527860790921633084555267177202214628359951340093314353620058624642090278928342315591690520589146173976649838439400895838003391482997335054122015360533487886195767423998044718651905916334233233213454492036560899023514320868930025597654601893092760862935545927735255190530723410559431637472170439139629871072092837066253290197358173130892845384353771973828507400184090573595586581308632523151996038762702965029969909494236869503911195853791403946333370827339083321323932643619509373070345995821691219578684445388844060009929319010500617676502140516609889880258790982504727554989749641990268752962475337377062112233625518743992944097304331271164168206450849414113305262080456800864401646947073612763321204170234561603929769185605245696885701380153230453826220206711300595274661004248331957096247396193826267245844455084502220088089912586294962059314989984350356160671151850437018900800985745134323494382747844424353981950759619192935323196733015116013773111577697866065048725100334436070873031644548937602866702704269752695676017204210980433311078162118069212670242864014735577243462642107140824826900296240901657212504498343119319045838906985396102095660802647778868297534476211396194375744528632479082753409713821612739876568085311261414731326009025909249617333392481905811319660688817701794205143637537632091699535515556894595491732062802889862984434619736029261385303778145588880137454597878853152232171543700291230852649035182194032418103233010304816581451273690517279050671090110438181774354754822484639990942469319748409385359404239125912262352315176410034954613238796926845188260611779760619267921167709727099866963150353639272874992301638834439450259004839718942440519919524720565908294055974000425889706250327625814188243348974884666934129671282911987766524706401100729627865280663800636808731043783021123175344488437205760954149579434609077122996902721382442264686677886317353353331700955533962303935680296852844981723290586025738917989067511619403138724100629439834924706550111899122260712336336383870501941841260257669050697730091913732320560489559999811292304821810273189724596248704573936154898119337612341957836611709194779721746792277885457326948397353489671453839487493076958469682282521651398741531787191885316132611428911102696235263107491622027909275243693589191700545744364295989725592311293032728621167944350435602809740888729956471578950127761908473140647518712796804824328295081236203679349166419852796152925297884122244132058733871214490440675662366357568326133273213962343383180658199717032349598047765410896043205917994903264329906266474932454389760112466903862407962205968328007472751515907066004719696754492279120092266164478072778890129817689210807017959133040114243114078261682882489925585833979933159747632961126522561706819125396833840937707148508158972716400220480733891872397309479405277770825655315074600091266787029526407479505514256708761207477649714802597858241951767088301661851395598619072077354529193516315643700271270046066650179566942565471849963247633879043624221998216468346476258329456519516653135485337111021791289310204649372663724570634759920924588044610912975419395809852261712826469868280830686870837115296477165072151273600583204784688301830117386202263267253145660608152558787480875261523130930675892281589296176269492346292995582782345333680770576454229044500724735985132752887403061691653570345675583252650337405355703281694144624316091956691738067666281795623259919326186882067815282270659699145802613342727021300678996725418464741662243590503382772647746965030076762928544156650668259528165337491498762379445220520411060268241744971084792891899143998890326621763613170450047781181745524677273400200707463629333171483670234683950333158314017076154771712040320950674273906523574143582341035635983998921912790495282099578235227475343097451253267938362153884312109389640986617777712325283600450221823622851796687848504344384159955528438440163542434322940680604751407623505095964640158472634654575952576059479938133206340178019335661832235099928734292447710358792483221835535195514845961245316032689087295104045428401775275709038896081209566443756890078745764637297199623776005194273827528347357919442278572725699356995551961413122860671833901438811129374500706623477795530423265797315545945896984760876582812593168365560564873416874941352900024307947913731547855947788067109797840782704508203079351180460215852989046414785052513110644668949252322869104240970571240843742740516157501974535855409765362705422965788872017765799241100391273392273928338410237470826742130288738466269492105122392029849325585936199183776455922695542033223678572540294610106994807258269275394147750352554340804995240736447819216466855572571111130883961332393689883376688506362169102320918069848470317736309883500664731986767292772886982547109161609497402952460626694681265777599993181301229935521358725129948516828529080055780609327765664243816479161189240766331076647878109574521158527357770878253764643922994739144439073733714789138192833610062502299315637915336660733968114304951097127934243128267993436582832232229087174537680486107431086378547535368986112331516055254268676913132018121491780074965370016935016323048127210658842136173522224009739362737498448016838119638756370435512338484172306994733772502039405053322980259791507641070403245384322537519440918013912528688761067031300075628547950367009233553258271282871811323517925016873290186308962671238906417285141700886827889593242946128472135650310130301520863729569476587523459573144021072480355560801589043679509309301614341069224153083907321583303833978464603851118613142967530513891131472751376088371742573593644266588295831282758455543334716020750595699282469774751377141706305584901677331239092049499497659541426173035727842697079587304075237486594081990969749329396558625936123028247522571824701134813388631344485715271514514648771110405650159987111464643585064702158937197097802832701538247690313771528985283395249500999430082401071373575720584363769913259929325084515384357647628279555137020866046182008958576355983386129261689296241031970257135210186329234728970103954457809422952081377095347910780846331552868608895761413891327678997133165382087833800314537159395508082708550308232574296787043108781556260904345626369595776017611596568823492618518962882022537721165971899361542776249899780614229042564574378433550182795802664860230643400375826974984182427838385328412195023060770761036372876708378084323378524458546637425002437690340212150314497076313581669261641054940104994159332407714717761464744603204390114037764308999620503170776396344804389407728095919539882652937600479463318357247931345878540838145432370087268280617556300085302728957651751660966013661449127981646149343579747694387630168466140155883239201252993372770008515346222445350276702141013268671776703829913994865277989089130745276850432780436241936713012910027372311334335822293136134137443907658428171419628122699857056741459117368749125212969359443573584856312703946353067389307979705081120108502519120548357335229391587205445171828443482611807400678887762544006185183627310155984355039228689480640165671351131724288126423891004328200155344382870533105276626104140927810955239915259929059859879591709483873261743168043352660277869483345390442548017381698939662321040744898605629920106697521843400724960663609068865764025706683104857407832157893198817756926899948895663248494695260035400871592644923076257973531499620693781073255246945925329006409647687354752122045271794172685273980603308868215256384217963980122950317042322763586278979062352235035607729443094850969798813416808423437985792761149036630042633071508804148408404039820486070523372249399463729111045100661154684897507386053704009064298608788767878420580313969856830560862112650010257359332458583065503465571958829202162127465386339987085624801515593189953561677480989468520307233430473829499469490137203121727243580133857674427582340780237876725548667841648961580379511504259729845653900280535615861963897528147813681656039879177648724305051039336458758376161761356658849180178002371544574924691220706644233420845949873547712131511079336411729822977525863704919459212937597333950594670782657359286434175310492458093946065823026251322247996640160612235291862000867874533628451736797511819519013413536142303278365145126445943214286559138515738118510477936636869291475152140465808058145188760564599811088675561937081495599180266319556629183328865267503082832024670558422978532345867559989097166357157042383148084337848068272747878167360701707708130484118380964032786806689268827701991422084384064076031757539849335027824996787278318100556016775016174871798643140183854486084668497692829702598200072751965016999466729924385042382896599288037585129175928439012501526908825065586802167577215515134092070570922249548148738850264774859033492562578291527220112533396918830834681151734688618303044855361762289338901699733208472354879649608404962186363419216060430286985610250002929601383316104739598514634340184586148163221052790647071069992496646346331764097560857237354774620092224594246776053435039739357352479381990642781455557552432695091916655959611681531281346789243010046486645757018757864635092063690893794742492019305501792409229534151066332001514854104811830567702132997377711012428374615649680162093857202227672972854124039107865447832674045041796355260928432692564489498737662350209472401199460386076596260170701676134891640246185267146643347426481119255625453211470801095760758871140472494117530602212020561459917832674582815257065036705880146846704390017933994817947117249031254440033420253482962150378993941921617929357279287029320361450976168846628142150059504783014118924880510802548257318356443582878421861074936520770478045803683716090640094384185307253136353153231241913663288443645748321842748757926930851693007317876333339305867191478760778309007999593613747587780090557595847495070877872383308620951045110771586232719583581784579292618338311690480850871049419047882237818025158283319342904088177396909720526695026756736762589643227218528977251318517428242175972669547701076481236836455287483064525899094524465347206387069337677863115350313569931804004601401826624243819993517978915169550287314462595550184848630743980140596848894106455276245402885911632709314718822412911843689812535202965821052020486163056405609222725147454459198055263526217024591832565503151953599886584116259210469680801362875878496976990939983452564932797029693535939003656546839741561973585691451633551572116848894472377043357283715469543482362455770346858823562586032669279466180661163401759997454127215441281355790304541578772295086553534305520829334535385679987894940772238090723451994871742793092776285229300450804788743251723014956438384344688448956753718036453304329963578096321222331789920824717076251805647331968761030711731325578856064433081663363677250933482791710060088663041770382333471482561724372773757608893936951358849685561436771055483121899321545810600768637492687902264489547586839862304510796849512767476250136826564331332315547321435811958209022122894302681288694921060841307396191512534536989592259250415217775797577289682089690128355763679372093327758980537100965517913761128242895554939873756269501408061046567179519083102789826721001281470583487296604660040408746447449272220119685278728627334773413389602707145526283557118182903088983355294370307836427479521373482182975082550137594606736017044011455733980627955130330831541174330844554516710077352718551430801071553773690354038799110113931276247663682049812924258770792065596891430639124344671899106148961800701744290844583114460712777304988940137560643985193465238793384080337343063095101472892377480579985114262466226678705607771122580165909852586634969057254738915261228542137730887158064547476494804726643049235027222280140228792617928327217018328084787979716672292353296605351545413618800155669588746643589781931411626913788838131504154820656239830378019108049524456917321862587784500565249988909527367191686736415771240921072757861039012016744902426706552917659024266935908577450275478360497212726592289499003979047982973301661323248113668486096830309404678047208639016124770041131827474233918583169972890663060721107678925242618516369957342794819794818405207575395001081311805977862346858402934384993014278932024881951435802290352841735836048421043176525572822185659255461518901490595965432208119092531811093887693089458278286667234967381101577662608547261669748972065840750332902828739141493658347324991519456806237730501476877654138152651525869261245168439492165966998569799369005381059418124859322056130000342973148713851534179979466523824259345378807107454749870670212762686717275487744991923359672431851401508837908554140787323610925073186719055886330727004127090226823475207090116171451118365671050342025338242294161319195046785345392902338542319048792068625746297532065208174392102776271054848998812069022791549230514753382249153155737616570584567656635711500463843304570284760445418355277756996150211033488782214769688616846077079017537549640666842571969354372524008079628237292084131627580398354145792763810912817404279878930062885902388510588139918687841790465690187730806706931201204579935323990886586157633748663133341128126929747375838589553089904322856439804050941582604088149168888721996170575838836324503088091664152590709073884512084974225862317847529148873791126801135145150612871602720359623997381351069719791831895691910569980484977917354059881763403807842619745637455472974318803994180562420770321142255919242529499474533163093644365124721075348742235225008065859490412509673220522970543926381103594132414719426817504594632074421123120094390991849422501558271169771432550268664774426441032920558506812307700022684300947615006564146935417848243670973565043211802659849065552163384221695217780107069742180775476828872382260309430442997992258445925466470539764278625249930008424596335024801514285276220063660423259539518095010536185943287439882880385973690693537039466061333271795513596228991650365494787881680957033046292852137206177034907940571078258620667611944941488981820262074663218330384488182580406366683100167488558031895265474333011780220121130966510720728358695175518394190002947394014579018503926107089171089749505103297698590537651964175779926022052180597694717157672697856198834502699728811827307107674632425953921621567876312330438469687605456427563487741591057495103858319191839237800185312521285952266298737198928823892229112230647455329974320545168931767481415056971988517758073423765717754731541295682437706723184863487823502589394672561434460004678636124824021600229364030830741317368770838158970834704245549905654579438611675592345872095354821090874971779669015233371583289753732888382320676407786612096504990811515983614923978512774657630092398468162725383524384727342163863530848088490092303081163157616661747759952402692033068917631439368381032338988192176833986180303196000604037235562144329834030519866872970940244889124914215689906844203584438690209263101160620907771948735955727445555362301344122696013394769678731075038453198909273776271446445679678921570707745848060380205770354428199554677424823400200569497273640293219891847343411487074193957338587717913916438481773582431897930245308756209476453245981156825844183725295141634854054111744242912228612419527470496244184865972917413820848944770044146639261662628431171539019432577856510668618377649473189383682754014257597885804412670115437393044971632562398479223934645526631156714050435089490158847209932412079792195441697223983542302708286916978415042298955510151670149140674976356347493475625596664159328543080642855409612640847165039772500769414231917251776080001862778437563238866938167603031227376311102160655792381367131634626498571442057066380534752827089652328114127240948753918886236110418996686265719512133001507494381612131208082114284375435039892214497505448600791285294449627484894051697434706234041383850058248773351938476529235475565578545028496113058133026289979537912295736694171972895296030829498752523962892271191149545981310039482356930330982599581107465491427827173729775106368754460555320922115341370453724665981472286385482516926721175865801812710247903496093385930806587417114376046053905761826169979545746776032733212957231045789978201799501353564353901390323117941130829961836190223292098398247222200343591869019314051484482598694235928303813269373151531817497152761771193029167224209221260290464617165773230481661589813726822240946296301348686779761785731713316660098508773841342386553071592145475669123878164174894336198958087727424324095146976194964851697246596453577455536179824516286385400189740922740050878879016885671696608618105376543850693206053858477889397210242161773041364352830610783344127504193789742041633274371102402847109831649239151424895661152958856952379134275645323538251668599420860052507599102972781870562982442928334413640127913944022039127291935530417994608507735365535333013006581737073938287031644367125986420273401180357632304481861075884919145960287337451591122752061313718998048258722554038222723534224777862021690593767906830046184015391539696736100993364309015859767784106906115795420545958590250556974966371470060907836962700138280321769513668831245349557208985496217502956212404503221318053656787781384457329645686740135795797136153600220071956441725310959004579912874386659230532537883349686386249312241114318018772789415202775407590109503247664198170534811563478581642744590209939007891010181283402687636401519160701515467160428899658175180395555017877212732834878082954234843994890243099691967572674811850474085653657307343612830926398618545535919886793318722475466406656199629528648865421232283188185858175440494161795516784382501780738708199135447476309534726418818594551971248730138132222766878855471304335914730566193655634077928618890147362664632087815542447680913894336470346573882930265599285753257193155135753884101204631899573638483962914348888136918066455540145294377288024036976711003473145836020952585588656564167351596658260913842853003227178157572483221555291423826336949920704906397485066461851328189487473968784793790804100776929831830377239591675549097561222638394081041396743834805756987473655255350207986847598734532260670786927292119377934042839057401462449964863975079648997042368015855659003701101851118800253388328624077327059762300734506173381154678417706602993257704035873925920613077131630334253131871459435480379147100917876930011606211972570276607628923263051044501040190502589613856416161601150389919363137597404175244626054956765614470569814840664905367756494066588299348176917901495886126798652523219467335700185182374720723085147517569768961622295870984583275628422184314234634652221959354439225847151287749603188750062617391247869229872594323864598367954315621368181448551807135047409503989868828277597933706645344607221082067883129558838956120935106733845305758943884466217023364779515170358721666863950149143611332404402593075019469439942208629426380258295228017284391332714290134175193334355447249123012224672903673310819013256147903943124125884005130190457750490674224777626184944362115445247840416524941957072805650161448327210346267153780741222859606553307940469743917118994673427509890375564815168438905747942258246690225471147016063675538718452915074339208216336928070662034502066117419756606113816196886932175454123255373277037009435237314519045364160433823374259437464877838167986567315778969076155699233381570750891650640250983316687047064428676841627334796783695094140730622566175236635619475496552851503828283806416813625202940189793758537344810644939320208640794545646339838191293001173020849899479897309662836607846151326581513183297783506798613291798063749559574617523599408168482575524962678688626005947822679307522838391439485349799764058008358854138994371922313935673415364403504224464483879266553748453736253807959502185548505969700123988299286755130614961293647954998234311775455430198217721154571924215987792931312221929986478980454346599443729423005854248312746154429145618849448016815249798855840562131649003566703385935130335350339401220228900305546321653150407447141618155313705790625860249100842677345112035838369305750823862253296961771777641446215268737406212450683261775669460438933585565403272166294517125604521061491902323105117280168144108313804555994410572930433087898603535891273456215432387884308462260960314897950812622190785197448350209994062679075150304990528538988612089622059347699986130511479933383684798910002286163080680294911714701733927473692558618477189552708844813001534716218474558512716881140443658838052763791030226569283867011291577122543105358538865887817268515662540306947012382475193917589112535674035978028899502755015373111606258396670631951456579885286527617981933142009625048541641883168445609197294256729476731948882456412313737875013077879302886021327144705586402058963306307201339148601512301483930105231325901201070618713767497996089621638906389029745700165130113888582530897470899162513986958249664178639826624086445408694096633815080252329152533557353555197742419001901907105218435375756439761525209428033760883639537851819330132303954808029986643632962430363509835890747595956883474279756987302237540070866267143616730286920379410421239134243337514241311708629036962863778780147475144834930942271841666268773159170521561707491540986899295974317331982581639933792378046308337020343863112017063243707879355073328217745107080315744814003770400344923366344419137032496490148303963306638574994645080419557271228044188448446512808963117130988151593664799246495293309954914432371973358199639982935277441044474575391265231149051174093167448742109940552055406278117073052329463870062764838832084762578021248243465633934913095003904336739073346142485910166163091811833570196262352262317888705819700121262030475513690628358939381848481163712851080139790595748264355847157087571838673529381700079502081067131873466713141901831497548387252430097726922673714277346006664308506302503212152969241507163110795739183198421651036516928445641623146001214549035729977485715707816025469285567534481316004342352441817223269630779200587933641792025459859802317398020966786048706527371218743058044623486789885296678497300450662527164380002255897410755824481453621405899598115763680133213795112928164937218646846635388160003275356024884073681056581200488393854405135148434493511257526947350973240490109400717411158158868722909730183173118744070135432313456159772257957608689993797725066654214694344343602753164679323272743298734712288702468452069386880261064348997806296976701175714892351712662503539070530304156943052221508300255236260350524595196855523506871063390778781368030014017274395934117051597512938043983402135145256495859476512036203881289188966711399922566656661930425982453176429427387210534517699917446344940087908674836279978640891003227251864540960525564708558915609446075273184818356807143836077060156491560452871705088132514843854731934503396593516190149036657118547404184792190169296173509882914447156380788419774859063558226194111650211020108568200325850914519821179332068550219460083371021850206722492665281873693542260242253403673024942546082776462041482678378036065725652331341530306706062341791460828978045100521907737162634532168842578861313525512787043561484835407989377088886661597014591964682226021284240591447978916233161940809458319003479522614770262557813288437385812037185592855796579501531767880774228034351654769840081088931978719451409539134325407602450508176418389059710176203229202793267203179653158057975602713941186135627692591702929011113264098151635574715943092915756462270810328818197313874861256860384000791842672022679799741445450208431558082206456488955988033115724442890818197127592202555186265894799095626318177227286492031932640420876465846591096194309041137999311289277152241023988695494574060789177823857967605299650443898323605064906926307270703123007985282050203248574398398843606832258757419110418279937640739587736243162236248070085743714037221398471202790875721588623527587228494568250273699717156401415899687480873238781399929244331018917853511044370528212768975214267767161583901520743102002949903997748856169572802303669721794437720302424273425881861595338737611868267409682713109456959021267338548551616596660081067598095403442765644055586512017519468131739279521199558634682507827196331683808238181084072195032377299379895322527195892667760690710656096489119348011232992866246145039185628023075505510773930396506919360259059329162701866507671388870767140148566665669777565879501789231358091762918988673382696834780791074295319260765836699004576014383674180007157537421718911374580601180942803812230683633111525452613207865395444256108628346714259829206428304468542784126084360100643365180777523705841887046079797977756191993893961075772830661797932128514502899202296769807341536682901369282155432883403668808897738022128190679049734459454509871513705153027951953911527606015894755588053588956595850657541188747456645649709574561446736702574214551598545080748139250431034607856133048810104895669223171686056141393456126869881977951603605470188750808098147294360952132292010224397027544077992241818155304593374958854127364752580828835060005263431111936477776784264683149332943337793168281322826762225676277148031798322220532673884185625073043530769371896358776455075534783402895320769507078350501065308010951888169403701913137065995976383097879008552892652976459016829961445544666816972598276408056463917140378217658528851539394999294932731258108126311877387868862087119513007210578430185362581037385250204253571282977044804801038465954362510258186878730795189459230369579880113354059666648162551309957548761016848800633786978724530230663530042025542193319028321952209130130052179897265056542040052691504104980782817796079206274190007776376388134975149170019512885214233978518181234470205054070558401714929998439179795870552431934292955391666145022824952891013992626326918445885872845366917420953539575856548375937242341925114070883293890408678497899053395735202515492266386329580582585571947686444202897257387251580442273460175517007967961870976452829281260135806160272036426599687348756706259376737304431140680753410629798596158514307194592884832532537680951344316247679918433352623706758969623694819584759084968496068215288814226198792380648847876765282805265162092710468509170779053686044732446828978157084968650918535729277704903063004415845278145719525450279897542261723844378050405801282495588761406345308833164185545319843895141164382386312056008925110542228346560156957756517037594595956734648844288485618743527667580952977982736383658359531740186101844707768528545227130473244892358449610270143169181543549980919481509543024561805577403445099222053501293300263118971378496023757443848843926654519804786598564012702029306882854059688172670625586551567969170801499412466551202201651531520371272029371645440710795880540937628276585182651548033831367754654931912688944020289784114000249251633316972274097305514111465244170513656683933090950388975175273084704069763079598893011204811871201050560633566623510477224723211978214933521632048456169839118885760213982278521230289724570863914487354922952985277497567821827983495024495337006860589814388749912852093229118012759137115190425362495084882494345898677686044305840019747431917089756674097917714914203414907514619463400651744498672320756960969577118064122157667934126634455117675158753126354110023980301268666640382690856929997768483368241846962113804734086514659578019239706193899810647657469908850481396238737326542719128555374026731301898889438451118996647591573044184865032998300374685617010919168143918908137509116544819478124567616579104038815819187502326688032004926724592640314714506292436935941696208239114997667256174031596318483178651027697820592832824756308926225144547191190250715443357688181930618302743745569647715488587361149042765056966370199062405098428568217188604663373956111176180652671849574017675284873652759067633635326336210474719004597729209315235920731851093345149467466355323738627061781855313934074277995810039214913446812408220997264356611726166432688007219997196674932770302349227536532567101044313054480125896021411559214257970124153639244354270220263693637116136427629471192844139944727218108006734073596039597209482901900284892021996155636584268215092789554485495394958576488328189426910708630330491930751418327122027077206468753868468902917696459569127775266802897258139552368380609165327589989084897988521650826070764992007448598831111223435012920129053953783861125729166677748052579556216020260211238412880402673607255743639949246817907256575318822219669847925302155227607305715231947202859399726852092739086753448792498269113927600820830122139382149939449362235155273693467737576421892889452872678073404484591423877005415414152649064034928115374387513708266990747967670795365634302005447131561873941029451701169000988033391814344515437009859859537215943755712520200318332275886560558733220142730941900545189816157946650974257284927113167949948524164883445785400076569536848014400290492054488985692859704996649414084750774884657186241264080308070998224735863256845815583252231084634001502711004235158175122160829596557934530340785695910558870743201569926950902949096794859527057550995861871029737070274357117144797152851518768451338842437778830797184279111331343203676619657853947874841753238674052004724738997003018617798633538442715646982162865644039874470144914003510842788843148192136380555923062393038252622775215736305446406240171164472353251743535975441982733512640700665069281196382739547205770208173472241193254705396227438240715615134819988133045187345459457868253722342549818199304973105590138213931907173208494487081730046074992451441143459286232013216471529974650269086180102477940971128900681454620712250697308086254055286076955875871822593642444457134972099255872159130397251862359312476383760404970871348213077961526614044640593689329017552257023853284845800416986469224786749810185589639139981589130844011603753049729220210228546110370395799429384143058680191684229515573849131143993328351884869444686276277555139406812613598531559181918609397164884404188639732584129870898892995417985432547205508836457352958272499793102530643763560098707689765916996708847616672915136747452460979232797164656171349017355230809213969535858003918918196021894137024806175164858752348105974082106447325946238715663660160671958538695363942450352439334206779232467494948520799712921266036483064028495497734065446252857307171201793263718095840620171015961192350756348234737896949401607835701655769268686354395734776638452350165624237609621716961375663228570706572403475887741291951043678145820338091085289717536328725540436696334400613295646392358667908682240247150453997806822780817903721084671752241351736963513066830169598319553636990983676677727000131043238184456632759098993728290316161806751875675926765214566114130864793125960127496289240837057106824910672430136907808255795605753607032615776351029779525960617233797749273113152570993205341217202368180536459054313190661594521793679399851647330543357220749078574151698185475973724783214141657509585233997787204697841210076425951393179341167664926125343896194719595775657480922152015301732914101364630904800055725234105159405165732484974042080580487799025948285705430218805471679975496483208470769549504513279333602434511155792542776401870790438065837146503101826256005973605203389951731292417901362657395418657080813773650127576202041179696474492536219910609327407245933013644558833259532264428426737229763339235542006290095034555708437730503943042293906784973684933878731049052164909274752845081313992894387145613257782076532972497843979321837849709389665056975161604476819983472579966571232693296491385452077478174583091608444773103629215383151640324733903154293114711416526206268396681033444610758369548020044347165003697867609888664481679044631614344408638732652735107048210172939011219200438257968763415186567034017266366817164086886006121967748109837271993146757411236441885923788691604059133178455693928723568946000317854825578928105930248423245477800086833265749318940847761421691664102388842069302855495803579112696978036218495505749761317243716994199089265628613846427676751638326031180796440375856963285412469723945203484172602145279881067405595540864411685363491912001350261383461851417281134651101378751150089023116463183575838022092109900881439492722738827492330165088932953634512335750822412621667551004082056380111533731892742338017345499589181863497318149103002639756775154210658518823572525580822306628543405744474886348058195877912407091633198371057286925276250377294964947353154529983044152893757428050615575401437398824144344394446799955755176222404705954367086627163895715041401022937052559733611459214791199852371890264938348493566134681996065296923259185827647109143537737831247282508950541196341984282904263886025188860311628124047494443328329425141702867307642817632437671025824459998481760955583024486726260071266778265913536352629114116355157156312697982743510262423500025715904571306684286041689160931776292887478763500661947536201250948317169688996611518102366059520976573949096800855058907594478759121083667964425099568963429673547178192398031200331370285378267553491572085393055529297259880797627005326227108747857745510559902659499112389428828872998981072182539848434498764509790897766218001247670672751719133383535163575295922437349248384401654013292907694106671800313402354757995528559183569586610784503441760732172608965010391120820288477926555858237517272811195663557353324043640394396766956087109417008539249938502474220062861759156894410741572468304791261204019324603420002100685839984842771397690379541797976931521892561165221622913268702252397368553632362656960286587066356694681018521648559175795549729094667203376744701426748411180223547517755016406474735169348796603425021632966554287918290517433112832730430173317268659937176753583038048776171718033280243808276527182754930831354521938143799730657185949337203650862469307404987755423520295541614770408467745202686657168921745200662518883506104946037093934505436894593817503013367256781019373284214477168031048882874330399532022554819145561466118782450189494261627084243146403912263549802934423092309097227907108456049760937469160101799990217835735405638147040379468992353895261573080290253204189178621421027502252563413011156266040952367222419943628214095221250237525697067260456943557761770385825943136921318558020837734351218297388627047180906637586143053040168394034680797878877980657550157546304860712800521704428170437025139757530300823691572002928239315288113467492088962671471879434260246904801763003058086639777241733324455204800464146833558863533669142803641956394661870657323722722918257938961083076078457435682872074080516236108265622150433040436410342083072732390762528326034379239770610354235536592091593247212434058387881919183630146038949532734486836311719983957563711418671076811750312240866213019578939842615065246577803210071039357581093386980429391036073337180358355793897943353502386725123503595342809657050128186070823475263155375779516445206045326231542889464982915613818841325568343163750345613601750172353172072676591351398987086506298699571819967751124105375858724308244129762367535619278050873050455246850834323471403265681256839486874236359889579347675080359719638259316152093725224466003552087597167461570760300432289298403021107942001642777356056923727025996196913985857594600777902538578688548963891467073842646410048256802464246883550198556931364183801084287493031176485806565821997576365249605771893105739932623006425885090254301746121106204580383981244614562269800550725111901866853499360662516689431782666184199727456243541802130727117523904429364708770617062064792444780401140105618443860423724058179921979469087697737642807137555684021700095030174989506369617546326703224465759872540594749652878644276417274387304269002915555381457062171439780763635251346360465682288467654110184731289507128717597263068112087825079879614131192577800217187872871143672677194110225520408105154229959099122458444301480716262332021838030126923514859777794565387616305197557328076597841834611623657924034846542907014250372568578886179344480725696612141664160435669249442086189145908951124074394217461519524422096381675996287820440534681399691303020297030390035320061431224275385681330040066812057536159771986576145289405883907733714451928882921456884548864447643608541439812292115598534737254087464197941170854899135285921882375982457343393854795214634427483045148850524491803158139413313130102049568613369856635745285066815843689408977442749308084143056579231683203974801993523889238616351505543713436686978760628187099621140884941702999306850740283196192885371129007863446448521717817676152501488065051052035632515606820289583635458548539336960273837518064784164781422787874840102697478783540864063936970468287645943383165317176381756357257818766794039376558102681634598493607830533538859343567090340419215742733735169898767555501974086128848980679204416596495759432572606529203607425139862843594530414675265682417074925560950428332995176478043707672385981984838089333363620812830715054848380960864221332244407298308349110062061130192580000362475985048669576617021389791928546728585926426683916033637143527727740883723362951889226982184989850605626352530582382285004067841628381759258177915820577497802792594627032473683482492146246802375874759651424362872845645015354712115966214144218344685092430212046020444866547292870511473139989222969008396731153614305276656591341126183303876777693853204618133256141314040988894277147519569572340326374673094028819407601874651173185534548695117113630461250150022238691657350158334139052826076374556388081724859197897458506162089554034269918123700649571413325299893358324734587786006584972716889223976242848303065313934841286405757029309088484836641483439532929502179455661987973964899190606917427633286804847905419525512883231585153839696913810016957774434953584228183439310269415118998228507455704884588324217033508733174073807517718631142835856539163024087765403522575494603488976390658738635454139173707915210520610599051861252042671988669481501351838054322752205875721813145224068855816281105640327220710803544524225498898638499874650289447619824118548026647214844858916936688842478266472531538480876010753544016040203346991458837812202377982540824866346632478359054216671453413741976168350851682715538328823333249831331406678601519957904202158608245490774432241799024039333674031586235844350371136548442606266219135956440116391377212300939150649892960134501154180236880501822864838699612987391218031130458777110135622053898017986721368436030282928548856060160591140991865947920229934521000979487032922438932071020843950601752770915376045764743892590700812065459824777585467082252047543413875702701051844058242052982973965534357595656349872691633588402523476480642035533350543599509314202306063716062337335573020258981504197477771101364979765307623377599783239349870873958117828498249476322887035774324362257209123825749338316479577550526032100328425162614510686884698696141551000008137755590949284015285130952645309674103083651974720220458274723444421245556432038398602159315980230423196575755530342339634316823585750912920211424969497464741677252140510780969984147992599332808238402072626738422884638958819742063856253996925962967490906445268159871672853131807827629058898957535747939136159834829540982843321630728715330137927800920499573686865353855237553708156903081915758155028489919898267606388773166775073227956192863742221590459505137158534121800657227114681190253454796696914831989199339054223752725306353452264067442605554195479112366636027058323410185256219523166517702813528060519422364158170091970242279953547875747082048434488394078407410949499847855716866262449619719690455163482854338889327902297597692409407875197533336421905804925734037465139441786766769693435914665837455609932801279285011743402777249820941894788260921173298048041767837702788228973658835534399633124883239103393970406269759260056095787834678730493566299352331276637700235463322821279830591904041012695829043986156099375669764666038704280648597747847011328823860427022902701003195265390370826443405301785939762629747313375929442585615882314904160108783838902144326912621324424313393367290411929522990987636944873949973592846472579689343683517682522147919235230903644682856235580486817184922137934705552090970123990352695082715510053808948933402860302415020000809260430441357923976939907665802920420713195796805474601786009710066172276105060675688324637926607699024910406397732485298805248667488397447893620153240975268438218096658152401461805367575648648007198923191783423947022675488604375289086217488504580506911872346176860403656380579141812937368804933146293059983416805715408549760815939825071953279953877862804859679851099392972882657415100492817562212020540417846352482887758575350859853672410028120373932710122367735752395040990143144189134297734230644634417709145249901935125987374358835407846197428887115858669209512098049757983468516192333517757004501402878489872707105023991591185014461597395828602724160253702371530111053248212543282348206392829206215896373413451881630392876811126287227775426930106008434015806449833769513675027446616204103737624947823413872407185462736288002390566982093042852225727018217559620739819521022273383294890248380728342912278573098652668492159862893473232347570086661759174936280333833264859693421776999293119763224075886558924813806641835970060706756023837246767520668514184866279355065326858470011055110284367243610973348802264043001778088656226715838803156574782272212720009612395114342936444838113795913077646913318220726872457863521262351519466964013256571862080582409694552044681028631583920936958105202332144856242766905386894186750405945725567981481455379126789277836578889612179537786706599850247850042199706729467177537843090997061538563373717023250820891752895433205232033355247304362270263612501827312247989344588492136493951923729448946175900170506996405185568800529588395301697545869000852021837473482440744284840375424447520131218419636923564319292027749979011719384447317798834727875662135868645225965160031587271772158189377871492206428828173104667494132644512411162599142545914635386787773073874915310447726139464349691335921149310770687594494255869890202005581117686374601459792846391550180748336555341763264711678590476653874926536121403920031545317370592361402906563157025945824453082505047710284459113795354498192479770682406357430611304257347911177600866316944869310986390214578194221187720966852823091012405863964969338594508224060693445249377314090113062097895781223723602332253115210593857993934540653885689872126369754490111415389773031562380864577300095314210311394955045608906546898144748453338652339974091909643965637054327362386035118611054988485164960841543035542403334818874750247543013966313599509038210581862267725975405315988021373995235987162576157017669274175653245763414538991489159891024463379084857202209569244243662351205117278993076712983902340522535800051797748388798734152929058827937369957626606878564789076981604904658670734262906580974358814609573227927410533573098779116733813650707114440326975436259958071668204173337802892769945960329871600047894131820745214759709184296360011944911839946254817816433128700340699913295809085082023920281954785917732864000636333109029477821957135165006462074605342688003374618367522539274586191796874941387514471907093518418896973147534125180569106916056564718927660371063182836640183268510945601574828944335486725030802627027573829252680043833048934336953773448638976864540874007352810108742705469365200261844251604489599201956016808735627203078579575912460919778981282904628050807249097127437266515144210430819360009853633439729259127808386213776957784995088590961338717141449503866062458638525611938243239241854287659371628399380131389428458512335322439928303158241484152818982584527472368337430085795957576268663213569540977334545187550170197533807663132469445520375678028391410860311648621532986406574128489464392090056902072055234269471515861148953688364828243179293721650976690997112461158073908706491902058940419823670301261909098956365920677590403384378393941863488822853365258450618049324972546747050847017319321982891660997572626807353664058122557743911221754412059681710425062512620948916479235187723704959760743693845474291176183036296484046253451246030857045721048729251102764955433412875916682491558553237810081623514566534062543269712575187260503751503774253198216115689506004438645947784714980946950745701712509410819052621794148004738881538072591195009128229395491039593260682698297033541093403930419267409155231543831157981989700675016026680978798169457273796469813427946379349096605266450810891865289908182042776248568007513373029802528603365713988192113289135957066345567418615086224033390275948355352359236384933216544974103780827915395263097367283636010545016621308689371158584841355490153346448339715093624147512429546859682014049866739837644932963609754509814752612630606251666822547240035053924611030866562107541954674877797933344943681171397345012468684861928525547206487284140043322322793746299670547105828419977609708605902622944670877244536504710316445709016574893878803730215345292186436063221763070349604396718594241425821330458741715883246493279139696641625619261896878346941149428578626178293908162002746554380091795736209540057250735268195795841138344543051981375514906825613584412007084980833283745805116600228679900251829433281293320910764724849752606191237121240764520556237565840710025011906925170619990219389179116378919542072848750694588596665171948524034759811173877022127356553234531018633581804939120975456610268693923058290253715760371436393168850514510061022238455755798772940727658606633297252007089792548140690191021604982999553808814246916223916587020689784571974590248667528216096537163762137528188266446858779529446576064686081884126179959137754265238255967587046858184735209872534545577851818264925808707996019740966038931451463039969627258336908599419033210373905172643922501751668390101802823012639372059405803836683156629850602049498016138736436774632368358144923370865989093491618283940936170718538834271195622211234322850476441950079384114544824350313808908456569754442592845131128732139923258529355394952477800710510822750779836651142864308520810792254003376437641466492177887484619104840677992859323892980406875374204287832804341476531057103799333797299813311284705028438659591405363662534250168786048064324814036850085383346376657926337948251944119628870141968202978707249219795186166724364087450780838167209706655787994714518525872296974817575777049428773042825897178570127763777483619631099862104498544552054291840123552325842646754717262204107398924523988927725921175561233078716144203445993486516543129556614623599422413469830793367493219447590483770534756287275131084367091053060346818669376861766584345342206113889665266945896188716658936470328000169884403360180466389762704423895128761261440922629629317654247116287125905709239704224892578319268441055919203130624162781981049628217473353386883396622684040415876408099657606491993992266840567572772254823418274177723925928451185245813907410007488460463890229164661174195081101515070630406358514652958590629489190135826117713114974176870287070671681199149129640606127029566695117746159614043979429781683397547477869696885237487862324536948226816923483494994544638980038798615592491562528820338844216766741506891898454611938480238797128118750158235341835410149903856911524932717268912689044349861772610173958854907607713706748989625886684326059174990431608504348203305489939284448307169681338359359093581309676032620407962106246322562045436392394336277241943201715598974227311732297730080032110643323410502335291687070960058761562713769376067387061323416483184300742420482267211936268299416378341515542417876973270647451658702802812801949652643406684680203660775299519073308233361947435673188109044541329343622202783965599259133401757335140989129183800477719205140146020875023506513905939751043753246980737277979424103846969635738265802237401306774366919270456053085960317381318331455377450685019694770396403248811398586643551331008355473171290038526139308173571553901011178216292117474198630344443837412787519509485678336119146422168322963601564039745716823266625139570988243084211038571989392796533817868572313781419079133150147435006973993370669005695838170037061908478284529999752650682482760920499445268455438502375144346943812862226078128625982182794509153764716848339788895138317828792279469033966551692128959074858187601985268326834981299363532199918009519917533174982775301178644471813891041792570513401957432935454366489467041427307256313906506274617314634025496765328561752761180345265773122422222446686846502503197269369079078216646760105558271304606123768922230599584559136082624757177991287505839840766359990558455833812982417839523016058266409103930950431564978002914755837535477532863143713729000088918413188777006475589965316714053531662648254997081222650975498016236418241797077909259551928487242366354863703592698587774232101257640930561851147333873456312386436374328654530200714979013095614859958796177989123221657360583647595251933715005246014668062341166411947076200843651653265396280326748507564088568984229635318392887018290647079224418436604209220762283107304053670785409737196560864990064803652952891787279527347897648324306638123887930765909106084726518087505556232636892605328699915556787216648694851723749543878597424286019354716983704166915769395395557327345394508384167194391552726764439033571243864963600401177558691446426892241596266901550562284150876153063598291951298404386539002998269650474771618484825043604423067960675664148554726930831686097165050377931924010236347708870336910235677679329514613847603477379978468288440471285183646736814632513353307894710247171577811316097838889827801514518416636545192783287345512898345189717485567208373156569677364600980814059335982912010450310684026401907998988441264861267276068469521954728979598570238544608482218823502124553748838565168841833874599379518231117316004736594825669936427989526405733190994416834884040945587183323966928510796639024581089712699380860656881573308342877141254240678928470479121307424640851244299058220458663594264617907060786848758392904319173183763334746497057789021888528510868457996717971177334598031776072640239376569035823175114964412110549088580377196465355923538257992538701987869833093392626441739356415040429742426232295319585635611588443116378210657058748906216023260144865552832970478032362377494446350737108664051721835921272789829088481354870954436039184592725321939325543392732547697065598713999385020604610146889199359648542322872347410055093536780003814011832661652355812800206593574537640814525763718976291721240011000557770711040216298731916886307318326687543131347244646257540688751900941049553528372538825237702252022560788253972690082437875904741665124433438121236991713578210364217993139508847556566921312249168098760471741803220659791568145542966840270596952277789243503009328707780240786023055812402596539102481092328997608892627264535928088380894415283850791034962936944206289403223439787978515851759259774668061839415454172910426124359190511675064417542858713768679593910926868634956887306072515766629547202977005758444858215559467810163321554501232426161369577326456946791777232386455819150561396098213728010489714640708461789712721251453899070025871695983068754470768162305100784449959162736418390490961519031893405567855555028669521365578280771826368866049336691698150392821233809603199128059905433518335701964556927818193236554795496816296689582939019610490662701169005162821910888996825377590585967841438494302095271539208116942051204239875342595568908063078793083347925233271457406007262504189154450527177614341284865720426651416390357170623218004821832949310221096510994127891687300349409102361154324933392730939370803203573996551710875392535095532870877912887963662975622214084193663477399470757291556460340481569071745559303579850406466902585661299711101187644707925781145441067999589683193988786261626321931360039490701789213115041638073271681909770993541899078781058565383603622026425958539563452130168829328191225118441115674142014634815193755033618609335296983484723291555331775376059562461361403736789457729769012512843159712525674251128981995456970113466384524259089264445295520884046059437036072646259765293846555187191234885591598849292234816057424739864030376066161796739919559888848511360384882545789769583657653944160068373178094457454951141197664168925561473453678272540062588085081084552699411765258162145900235122911354772213211306549901161215256901955428997180122011717914007993401695688107527236833410029841123415784499460292920092090133541663424739747229312967485862876675778248217624968054901887516489905121635717952630821590206677024563103407594117092879542782531277252702971972000687462299320419690400560710737957999863755105801534742803109575239388844132207572177179945537276086452355064915079090652984314647129954963099526552512291847405283241843795267802123631422446256758577719950815731310603991212004737002957010973925811089904967861646107540979067812617393268286816399113596847547428842333661866439402831582194952906020030100963265497020618468126884866130162062352925197917649207968076971022066351331694929545361898157620335499484568450229003564721879683312827661648742238455612108018442684726499063786511122685914057512335485005607109856246656416898620081523791728663809694119204441144591449544828201421355438102597337188010001614646021521465197845899612712957686571176525131731407194654954144034072054044298183790959362490416283443935582874402829523326071671236693413236213987246436282733663105009819620771407387691839218815258598183383430365824053169072635659405840592076944306455486528403219754207986267782083679848635532541436840911300565599895435540124334956404732251223169376474125762687131338348949534487510131233928163282809833367756691493953949902101154123493531703165009151916297822848452428670820710578248312275045073480329733407983121511571456548895158062553904689666732058217538576974219610300970087138147429808876357206528377874865551498274662472581102528633518548136767814082044492219333750957856786586340480046079139671297038576249225291469585518703095028097637691464313275649167356480634255675682287476774844281391009662662349078825755652220286687031180884591145713227818926442816139637893538907758900412117002798054682267206632175984195675827259393994690032989700301121001536703275190488246358145554738841106204168401105646793443209257565701542429724446289114229756723497111182753723426689554200114060165865995885294775523133974293155476239535491151588120283562025054850956219832440767564410871091332967626206536930742387441494701885551811171779691801291172438775320718256021833865676493945959953989352945456358654361254353408365008485009680663066135990999914295738734896713598323898139858969942551506746579100753761130985237391750705136423389112957557937471085546669125578655723819305549658165457546146437045858116897336638975637548292922781132670576487991557774139191048403531149316547368759090617640184934216109418506572214371618754519900858520836247026848440957111727424979990947622710519327183334672827263602209571023895283667731094740861930227033831052495679876218660911778558922515331883522475629101675563895366891957889408445935380441769276389935328281431140375182602585437524904184833709291240217828021452995182560205919085781829778546096705591199921977945706654937446872515798777550523814816622902626437364279022104699078843079207810830644079059908490285248011443366091431964598083851271854948922580086503684511125093281785256847729036774939999724154307966214377133937811774033803227725681519715524312945593624388251925718987303259934811068078999345379947176713167567270643514285265835894000305409094153688893518234654845436559145789434381897486976736104325007320160606991291173870470598520845354706528798048203401412782097271525283345252868720187997018101845802353971442323647600467473482616316897342385342808343588825411297707820872987676421196305154399262031589110959805261414981184410601977210400733090471857716357086950391561298837138937730230028045233458553235813929790594157194085794379967479942450922879209956222837457146555403137722476854949777944078684480009921675963306560659945272126684986713705626660790945730574259463162488564865419540500108334638504712669158465946693647467660189829787322813188157719538275513528883547929244067221021622849768800788665911045321688303185446177145754881190598786055888786345876803441900807757786723139561327958827615653629842139971019143225975349848376825589236761118776533672280374287619140238839471690289739328106187048466986434864869802015682513755456056298066088399896898323272681404034951509316767033385438207172017581489510323414093726169344421994807221905343822457130270246452119686341115373115252169981226550030703862919194093788946715652840909201260044625679024388172456362822154254163315650863820279869586102822627811820189634956536393256024653212995550330993870266026650533910827696012857875991100146711416196620795944780548367133005042965505385389661013225593466987886859324042213822799958455133151677393206421190861469852118786529098229797794853590372490707326058614915057111299816113541271702805438797296578974799134001296994046555518788611265669635031162497081519090383375474644743977822638347904280392353834843468874504606292025305400984141125330156997877322586778940711417419817148259317853886469244181032708539969644648891275958079327933385713025109009370006906979452548158310792646227365442284018742404473533700054480340255605130466416717876529322258164524984757513217408591820057482037190077712302429033423766322327568441121266563745604633843426810415511002672937577590836657617084701217810580740051704232323684583485364377114878836862278126831994475318814189368865888869726280619615823276746083908188139864569393888306158141832898181057812342129701368737557523924441650500008296594452179534127420166903201707593859763454744412355138699740359886884905109575832226153595703187968379084882689350628484847080004554085343985553278694348212914213120983872676669343112586681717748531396380455510024756491056449854738907828097027533314823418606301594481268515243947589074069551633160861492113348176755035733775263608500737556375398916512372088452410378047757660160804360455476918277803899217198770149610138563960039486386791493017733707125915165885719803909603218772437253185777596263996312409491761648004590178953395402683011551956978387431395095178061977298731232603850616258818037759988649490103635823364235477233323540282907588506021872839861494322274664759322206464952485638688175629707623652151405255584394743563710856281756299367073807410185727801810991685801426108461401702738436158156445987628063559790329333679215130734344849456063923558554041559944144613849045974342621615277029456933613306584884565921745313638869124081005512965207333460452201704642188500356021150358400323659450481290538016452447104497628887458540645638602467588371883320698667827768608403162856805102993988414663240317959318326619965573369842011732613451295954683851592568932570370153579414451543096015779945946344340507071009413932775027012488992948299167370972745145918421873525735121769077594197271159247213774275045925737439593608069742240602508452313956064648127511339690517019782654296509080300581493584102527449082173103936217406566244181726847024458707488309229989292486785267110054632127694357372001862175514397101820425269111100971049918767151959301070655103881107192306074583183217718251693863713460666345814803306629716973615179344783749375051229763487240793576311915039841867728171963677184000538444157145700897182563010530447436283779495259287714960240991118000216087380805487211890736535253089899210819247457996482267995336301565179831815122361020272879936679852490015973739615458195937859620144282780513590701697268365714877615375926636486744450400995142966718761492364086706347828308805038246890348525891057894054220362016784792877890882586773369849230878812281917659593153006936517948024084942761380770510484707040525937483947330023386533373177568107787232727665597819490654436465586714356442972913559726803525986222069426650659447954374136667197818350577722300211181577665083506839232749355966131454220749974116305625603859154989636504760034923280842755856305214976881194872161657265768747453471536514714857399472919098436308369498193349837802958609664591723911522390334149820630587287156612211284698767428316204313860233355646440408290214437207278647373132801947740427288245677367417598462153558812830225674459892458794334253855615695989030779776294272788596317918369956793932029967628622218871267081186527329536916506506361721475487403781496328093720124518556505681610167120237606417635188594967693738632931189519517616150714156381015735935128947844403439614431454604090786906445808246174750380782342238849668118464233645771293250613681983490122343932112365084106928093813186947723047395672705563038946664941061506314948515192825876744543528763069513426747968224611838219772812727670018496050026101205571473711825593015136171369181389020637619227465696919022182151829731639271817009374342694287848367777862523510580914539712514465080398934738015120294641407941437521000561908439874086045294399487744133010402905918535451597828590977006921231553572530029929960596975063298026325371892967290984056079558530968817606170919957938416940829608913252681322191977705275929204819154768248815121165447340749828330952283807893842797082623547556926423582195304476026017039804205876719019399518802835590233182347030589756562964041426940163103989881101307215484159164824141197105584192380693094689816842738170452221110587304481687796394343198800659332103736162140869565770895552399431785885048303102561060990657199780407452661970333929113145865279962572513790339227697801138834550351254150187565292547498648080477530264020567164083561437562438337356350092365614813456171661651241740029168028748227772401737042178678549541385716751262964778934633682764577816008699987588758462234243537047960259086800212717967236305597747767941136002290999187951840082756533922748398547862225341807190703996579200589866694266897904837761910233914754015032165504883429336545156162156702517013475287061017347257955275768153667283964270440779156820069096670537557736819312987103139050690569090309594427774759509194682878095588435696286848485790885394237172800533231509757644497280536847987953623259751415222197243720862916318405091068349143855332471547925704943973927614557629424897291296257363275281060895285543038800730345069681135580575163005262604478976153071968643461456736778493799103099798865448394942198701212632468668774313348758589881872644752468037127085149976807400484150608113295912035324480835979463448779278970497312911830864798048690189121052635285132797841672194525291079888911656544712793979173134463030892111268295932552389935195804175412362253015823505423785155749698771873409225616695740929815235121999510295081315982473674358926611618501879650466957915358108658326980587681328151960357085102420612501794600948920937988048825764840645693174901341764042710921363261977036464492510581829144930889784115957779781609744765288786016375265932755626661163824249725259897173561872261453130947884706072481052177859762489349395194102582818462537214128968863969039750084773133783700248176459215984919605813757710264266788083724894901832992160742402771698273471336732486755843741165489079684184300444497010335660576571126743110384749109585854534823374134158319005456432007028341749195605499568136310531495179145949829842746047285139021816744970735814049479769495213012941944646809164002879941552001463349703466889049385732009080582392096956191541292234355782537209638350692478699557016010761563984942291620626393489417494149070888806848422702789285464014864025795842303112252103948680805220255933761493792446027073265068961805796435139385002979707144686493283015361070314041007420249568159037738533624120552693734806975891142362015028079140806239917906976595796454625095197219763326955904565719663740262836857779245299162340677918951951557881310413115830636688719862995396697346162127382013630347485804537054176453681584564939924716873810975812331286972281727466082174207289658360887809673187668696539208148127934467430464190277227286963245146067327841444758736769903236878904987209281893990129747038052877463239961860661897570030502689346319739446031189005303141149447365616705821463940632842726027963905752592811956668590027672036662358261728012872652198473509809354200973824405160472453549378145576603238201877942630146897701000961227509239312083127265606128983217241919416452859335927185577175221352116125113652334554499776036049320761246002934214932485888574507428119057266783497766646888952310046956580619248037723151139532819420180394224786680769987805214367467998950711987012257102726314648005228064726320967854964028026837267319797067673681718834285849639256306548360607461176234746519635528091238475412933157604327020973934800226139963554230963966366384840943246835671682089435018025005532577466351667289829696758985884037266568405631139493411995859596140213746551651413993818758283481919248529660904745102393022582436326569966391979204524178746256668753882973667535010478480100950350394669055691953133199193727988601685985111892961944534369536712504434700773410154877727323517015091497613817810746107646401760406684549233369220359848479930096798684937695679440126707883416437022394056973808754793005732797351942108508100594799198263142590195762810617020774534059789353090869792644188976299527091076824409281631023554411484013734009608700543334282797950447203221757006764203627095697010986901602889245182130632324989400948482978249091452999296153416816017180563308518308361850143610726745066147731429156686231153871697596842396850349311265309250006055082385343331539334123174015707769219970219969864082688703929116020972647603430743291188529289897080593348532535311510607684901820323320815179082946377023504951414771145143612568051179509804203622571120583954668556973344642555633242940185703429611241522593101419423438622501929311610203666247729108314777032554764367438335859778718928618880620904410558216636117100979623144224294394240074154277287925956867970715234278400671316836382953808789630190786360695835009462614399360387482447458028196591471507924780313137305952105523878433764910335531190071520877001713139818744180958031846549801729966322295208332440302221720833501213901127699504657435569364633866531905349363648659298238230619460425040613758428532794184403974162722551941537328716692391111335207812565831352356450558009874930689179187887743282587663445811536134534201561753620252703265293199386267993495579454194185927119846323260711545072850810499585120289309855026453368115406923375512134255744031187328601999493221362268422001036944443505357825773795150603301607812570685669733633216468714285818471367761830575423594544206621544775727646011493157196670606026922444223212568775638508877663129899012255479147945523240886229637357297597705276089832939003514114904149168975052419769117817607317845594480442397933051243437718308042644856071305916455050215044673617543810035723641663398123888597575390980973548966263481951132230262365756597945924280603827926370647195551048513192201589527168427077462951284494605051182102429481641671479157259614001842998323587861126149151697086018239738484025149284624448055862332275753918205273487733852459126390681940805365497413387832271614235414588985527074295494106036058750849266417377659251479680546029988716523892560326519367485482969595140146548010423184530510707879225246314129693651555792876227938277195485698809048961631673928216390138372329334400278578956663601436838586787913556258630924415697472661818897416889916895228160896116652310855125291138729861044114639622979132075814799577544083926662320888378476079228494993361887143867081937447777043855665612623046778563952619754774599814863314502292327272975394871817670584373404906195571211828027630366467432226790011373159647577261345715930658302717061675906813815432820214809090105640908470246402227815323787978127527303944288523857487986253180195013302299336580931926433517686635469954539101523206227510306208453237292297767556299950344712813139351095715910246028291506249987863769837526163365117462979955611663089595190731580536709781767813142734262332717881401963574711516057022882736812100440516332765322974258224260220112364511385246867312695669752531023763883298183392694788606150691316918313014785358363019925630314566013305725539344131680407778617337542767907568569057553627325414139227303808076445113773653556058534864401232052195946694038236985134201824935024861268740001233884723450282514625639936539500439720982051579254674740857390354188166666776305250200685485729517729998804407966586334867407109198743141675557461912812990230194276043852696656497532921536538564584081373233083904608919504299816185862123569043390072723485978636107439440522069565615567629723854974114713246687979007800176136211924226467698860877497885475001325120466843057632147989660530202534194880208884297547169281234925888136072144181789784194568611860687070192533435202654454276755954485069836391019679475897787945503461085424556840216219348398172725426532746451296805385899283349241783218699411873752179352098928056432675512926466514193619681922029244551943313595963716706472223627927479101145140895770925041175204102202596443365461268078653976886787111745698897660240959593046203506880859095618405900312042426468541197223573415131161416988997633868128126544085498223535409928056352248888118464910680167686929002860182521621200866396884871981181218752660921702378568810978917589767136726060418937824909783134259661297201843654928420497775934955949647880026909738752916332363184683366724982458099520785386580433975722063357528974700988906223442862159102366400332983689732244929803116274786368347371581961922989793289174273157256869493594547299076361144230713349627392002707452628265469905569104564958746818938218858098026316260994003250695017480456774681750345063306422278162631169038945781794078831192203244764991179726529628340801832043992805327268425069559191676879827888387312264346822563903929433738366113081457487916817927649528771100218300957880595867317270465486360442653110491785286513851640403408452298729520243144784281370899006832611636445131699384948037402014880956080254704422383398910192094024913485035056324319746661384341805796210626331085195644041045178389454693150533390793492558267810378122610460051067773445948203134345016340394242049029911693792850959336429965896910892800965694727137890838375384371883453294932335290652336989692134739900918501697053015917389498611572079245276505404011506882651972068250115469866771985428003712141390367245078517100069185155026750783712443820476375122021022394225444073814091774543334595481021096490277658975795521556934302115781529407358628882171280901742644038545334768994652927503867610906523247792982051604380963469090269792980524952252481861006845675160545604581797403315811247411936573635672533641444047232222905642305030173205298025869930414447066586796415839926326571458460352787973820269158387494895612300922134906837865286744807199177672682276856554128920616458638237903830999487743981838605344075875560594196745507617517502377353485293221796689996606093271037184201925001500589881170869078076599226067978157508467912957234719595896037091141396203535100803446171029456150162641682880168898241333503260939538935098035558042029101470360783260591422145336234417128367086928599374331344267950703733670718978498115246551873999868774907307728256598615308691940555572046450340466746896957164930024600248839337330977943482742727931582993657688438911040119002965391729141751608440869067504077767139095789949288040527674139476570246809511012931640198294213727320614851805333029654181097315401505046498305855680105012975824645614658289824203158041371074432434638455226770886876617044426124718618306217821693767499511788801497759673414525559693200586267310283721914294497986516954628255266488856767166622833797151493077398501978433671710709027032261639400287822736354412992673544470122442175808104306602430832636951590413073263735260626591511711047771678156346147249408043709411690709879861199684405709250820424825387513898847207731228803083011761386109965189333648222787498522458492030447772245872670863900507592581635554598004223675405911415340684010652409747103341442356051749639261846376933978609439585579289874940959519264949289375218564696596290398842468384257355145458914286576442559032263792634534423610082341676366115922049016865081013065070348535781030319514644606515607596323935183759011238611896786744032092336025003216286774229000107684038519951328928739918700568483855932034536111506634581924440993304216852717952971490914407033815292216486053458774201469933433414265391989353334027329526044305150023203582275266786381565992207695126305363337045789656305461068585428078561961069250797592452017137945880519869226149999939931783697552692873451338356976118775672923345073626017245312107331864052680381082604459360566112258602295905608067307615096955047215295114541401464385111040023970213475512636133785689603312491712754043599134085156477169598972791690401160235585664664844371043253141970113911750605601608234764156746708604107249015445831893428959162804866153589073527388040887157234838178669772502018260095038156779162609055585810357860638512798815708652598493611443700817828172098287582492032486124657016391996211993380904527384720443955408642617653712089712972665459637620408917248829087098329109910570870071941329415070843263266505134111479253861236085402385904029230251859886748903093547597728158100944308258954124528518125740844002952648208581487592297572587303692720659577886091574901179489812744606001338670222492668139616620265163606410780767610586864227957778892594829820371419153835078690870605006058661220790254414040889516814935220938185637011675977081511641747802816288440912085236347791167154751737015655729290765009502785440459755508873351103039604902672148670340363434444811489953395395504430032414955371387238575044476553949511738155530298116108680798406417378044143359793320221911124996485032232801661609762868856243674528473116212229014619455953555562567153016783692832368154865376399791184422561099948232449015723353795645123047766460433913687141195842744595186514979926767033499258962484480261119443725807791245436542979488493686278598572987257410315124750312370079388259720166542703941169796347815177561857003361314103540783859480379522906970035981079030883535325012695453076231159603741516091089445736865574242229516067756781927023073595151895417829736730116790183243038771602803622223055291900260771756296469226406991682593023693644512557844589582805949779032541802767905526173881923916719756732249330393074264693848620441124412959105777223340134058117739766710979450751518398641412138644216256332544641339203580624419360022178702562769404802851474613145796581188525652794467338850554547665898510720141847904663956928021315847980084001836487623271888753725078811417073828551806872052092353195958978802653005430213951986847306322222244453708538726849346768651241092590542374164793406144819470425421745232157329369012045496592482252903225081929781360438194432023996417796241066505557787090077740312068139564161303788175371366517880479187112483788153211703500027333089184354383906413144063030512847759108529967863638715261888569994996451048001622549717945314032364858383345870871016861322800014844054477872095099679411894300618434613808266620621913396159173560802113758949862147680628058484393028309555944998535267027844317330803980281592261385225734982823261152961086500622709707882387707506625095504638935611754976254868744003323103243646976579219982561997456854277330816954208971982256337579040793671834973323766872018792865843091872338750501667054002859040083874337500255672936483075155586194041586983945022698142549965123435958955062436945101638818732644270888463727345437981886989366801813689536409840763217164662691818157626857660036730900217959566661379476027919732008499403157112303150371454417506902984034068566807261564605652927708984245298213979566214245359333594860504821384476743741413907185666852170350276805869126901178052406695566833991310216949905141691319423374725667139124512540535132018657576601380794275712028146395492224858894420098095038948371710007476152944131016094814347053714781797690186688845388474321842287819401000248488162930714760648540768586510349122833538481275292465090330267179511567871370907082080237321826081825617321979127554902489426058335655552299537853369989321054154803801926490986768229719398567862035750292485347045857589880117024108468892830453626148413769380240647225984553273838684300176339124161156041001746628620999106531139770599192934602881827504904038420744755686811938243010447818568030249933954898236889738235213715471404953164088139528572830752507545765427981316190518392794404543854395551246683086969737180699961844094271761704926943597752168267098150445413935411842225803763232516631791154063004051217419201850368807147112685333530974731581271517593035259376314949477513144322830327354347702928866339906097439225550115558026825588160940585789084437771603307917309661179269031394898193985054637135055336866553695247507951720005835066729376689073915721156850767666109098146541845791148774825703715436546725037740936216735342304395429956387434300802867736422091440563381398937435270700472648417067660360541341633662783774848379299609328041979472278914606257877176914612647428568694440227751315228944018999392889900441790860812051829253629357971110014091231728876135454771281874032508850224219694041677445817497641109091774610534978757367395056613990437397650742747434434437874416525759603497063558425511123091148609417008433041089020266844807793731650076582859226738604437595820325214774913893436362603788303449285644377925305646291505685798662843372632618132884159435080453667097546613711153796912052901625488931205326591535364313229342291285542096527196196006719365294988867430488393720259236105600300207078873376386771618208764978700908165546271033482879724513612309718708870960775687246650434749247829898116125843805148018666534159635223855572573555477026789043283380423181827909106462156725747250016022734139506426141129690956318441827813892205244607486837775685133679284359408059533493674568835850071501852965853233982532228352453629533114524615000090230028829329384357440135204630509421594033947086494639200436631871449586775577447391412583809986501773758386682330253242583036965907112024679086596407363876880427953559154647835034528376211615187463441998781529218148852257646626388678637315223087123804116097974537851543641493792994356070256657697283758648894588649785688214288163415737158560726848225998186955197475689650881109314443445191058905386852554117757950202970328021450200212098946209573232304048435166939191176651428546965278460343843073832242454097625115493865156029174484502533256322248019994285721761623154357236669074141580520695129912999104431578711529627528258538916849902435956890616469829716960454222846029433507451245918115484157825553420810190089534382834141079271429210739135847187402200903511521243755151352411318382839809129902658391847518089336671855224585590193402327972908899741960112914918438668540288836438899313774268777085888888300525924246430128671319701499576017036679361635223777962774609905993817657035522690343839861313973913107889446937467242391008580106335176795745028162878753811852693971008811339417619660686791368793273527814608620240293247102687566459601719862251585554232657772403460388060960462133023495253695721505418459738757107067559323693469905988852587006167612267281329869919894765560848325509706375768736111129597892011405891043331610741635497931011432566265406467275791530353574625130068289231442633501258302721405025926883869850563266470334930730264981713484410699392543925513491074305459540682212881116875079556031170190971394632200819883359306211483655267857241726959116698349107822719943180907804764592526243789766919572146278157781557016119582473819025028808768822345036406946354072845851169515882234782425385234459098939757167434649924498639438205641111548873813004090686784551874499381147512373836496393273176701257209280413401610172847229785649314562615759803468917431664737219308987800889818235453788547684551171260438156806393498535189695745773089515414302008826241933738908555137622109941738304848622474068511630149903022228758389759500101399980830939439358204348865686186860710287973187458887577705291849964217222641148029605034606732942025016550352446081146057167147644648152204816944854650206026522348294581644634297280647006838664346030937023411592462954549780535781918613137743820754782576570358227246046193456062453895000509944213976452845602213124207622253438296794373309636677431782144839500638808780883030327707553439106069674991831128832364095336995966063339976357402287573846586037118588148638994725684233808179802615412366113768197217954647414163808354943442664240495483680898869904311126185228865957989570325408919471485466382512574943130113616526054543500288618988926684491787252585262469410808499381876035275840851381372615491390997205184583149506011686896113102926115811637549111974496243219797128177972778320326775172863155138913603628967744065752989086484142080396171935426290154767587945723906522391838450634078328064642648622181279628353270974380620707836847207678928251794035637714459181863325574635571428922353482881417185322878774400046111953301933155355187422379973399017271235668774033868907302773715880311125109195305994929896481354734540894238087711994250599715091485004814479776784304618651319467614934168753845143752201422772064203052090968933617421945520947759425212586251257811944542552218532327378446458928680590538968443553064199107623608993857105261344826806904310330734721043683397110928549182514200768221626172756657371582589034688957981681480533472501283758441928681259318442244811274697921142545836404014214182974098500295999601679628578490522392798519067783096182887301510286573406923030217053999336871430857525117443457837702663867502692032848343674307840548392749251661158663387082503532339623242133131078954082075554945533332373028055640530403278552001750303837877363652313637365005182677309271165979537823271760626593262873590141789669251869484039891187582445819112802533145273472241039855481543988980385518495802303539110737530180348859475843620297522971294338062249671857424233604662220591318812649033942028814479704471294729366845784894256028697058854367404188600934395165194020826075615073420846909846197414057922522723751182687862481848837646824889941875067701372074414925590212826498779204282475810645712001649683041677071360322054359738049560808247139990940077213799345297427573680327313328574947550196487162400099823433744984056249438238456286590279808772366638672397162741329953225607295630813872416334883196387427006187343172558733867046223609322649315313586076197739065430317496874780614727418143881337116348194321370075539199464059683619345175887933302722856150657701296168143174249576934805162597789294876522959549844478709063490080190058533699353622756125655688967971325684812537709069625908082041551145534236303164091045114738385578965850790124498238929015252992236867135895583795405194064872817820864252796121633387134559351218771267772034160683286879468403058398237663846745904196878783266384814733434587196529221348332683699885199969624528990108982271003241513815219365980942653575585310278995238982710729280563291980895432765885452770799640695768320594829334019029377585129723608196363659681467182224101209645478320745841166023936199151239521592909158620320988435045439677172614169478312932207669482984640093335232288546791051154380203271777549211026287895376047798541596656161264385039204624233722422542069250748935606733024692457407178468586827559310434391620210630651378819535105266259633763473174975913258963728423607315951475003144136302544055346232615002475906598609035414851126764335160898525235682197741834407655472017395309946581204746492336911231297429092942007542976832249863901976988779357519652465203395265592462281837448584888894627596805296402529552335531939134083131650981956762692160656190911696423474972630687238273224291324295033415319377283012762661421708087091056059156835120280574154175130245201291427088771634119300141157026539034165888627059915053092829022877706705327839081043227795118463490819743813616331928692164404174122513620202310553812007081395890465790921054520397839668249877808081015371408220745995070191292306156738541117519315662954092489777401755528123278094578388790626913608896514835116827983536669435434967802276687729004570424246222163851731456123605449574368380681935003607210081360726184335904866318321651432049984146807860523036993031346151712804232307591898555852230120895068481956010796021781670702527012738157122006282576430859527224624595246271384282319039751199716404810280517245304360998428382446926701171062401696804994004137488384544549029980419298498775275265302395454231142608617137720218564979597278640076122498324956455903942565825510310686986428730377429103338895052619014622304210078013807581474911472746508975623350661565094896399848217676203213636460932317420781060423687983411785681454190236902421747707409825871376088578465662987570093435166331906989658228077726609668865027061404121492477296723397928447068036066477575549144373325625000001380963318648609484086030259227551122097210232895596742478975205348669792190755037243582270291711369920110406194490888260623756354697847300874237485543269580090485936115802613960979101092550974603503629113676883775610604610915337343578521921131893772872119380689971701302044577015940363297349297541283446195090170384038390743408219614055728166570418501538511133350136380219015739966574362360384784160382139026969810986716138387989222957170788490592842550708278307990228273905147759582512901995299636805016619904759712175026659082388247311999354776740924358586654919994403612065449296590422742911484639749689898916996351366776576969505865020565357935226545001319808607900169779912282034779120933996234173177579006804704357728019763710568686016548268070730325947067300656366034430731196223234335943653243268350728413023542202817348058804199300841994114580784898703562084467791891858232913496705317331136059558491527161793263726904269462822183068206407740399159221652445811190954770750552797319105462439694517979291138337528574891827111823550413857165476829181589003316118913036111486939737931795973728421698701633658329532864371769620371203419180906587281031190549253390340619780320848988984883292800504171337967609308600749778231103228274861845811229156176403023521070805416449304969164703866746812137382856620400977300459741704257648827182686488285359995736555756209343235272683907418225314343832957067990242857505828811355282994138307483320081968536565666661359442328730160075469528648416016924482287030792957777266542365746360888357620656141839335507219951583058444600492092443874787611492993787496354910723621117808658490840324227826046597216557377518408486234288085202581686873703581914481490098332537227738406544329726261647933274799877382016023273895983523698366979561621925330536095355575449618196981166407355202121327747518056923845662730421209654238855250314851377908313018960533024359128071612199992526671277918226090480944641679653463877710653820781118249889193716797514742734691365792042394818191257755417984159647081282761881943937967512348234701052024790471566794748150610502307653036391727070926231915297651200441064650603707065643320830837412380570575683824654238736749752632229671633047159316411132959450304229677008115550255299471784545655263372309720909455042574718434115538978375463970892732941120321591706627325408096463163024416656460649662289877313080897035924482382941136823867886877969981180383780271552415487551727815036272261795612318512994335899222436899730956808046928633154380259817427180279300877560000726235537185822984690692313321669762519343274726398124383414002122984390711778079159362043665696414319865410114929768405868927615595265249771821963802106735161401878334076375641923943403298115639181614106770676195802168078336602694066745064557743946045560344384690583729586265179260726123530416635901460407640469487479951284614976794801457285339151565521189594954014430690254380354548604135334943758400616949533118066283837077287918390636303276998459845794116500585240045352708405350737608287367778285966910007989530626736125231985402937510905876934151050933509368028656874907477226250342582883336430693320146904060849397906130134448338402944605325800662601426324264008692379357595099760870648596118934904632172611038346932285388158604310229372933081346881254567547077765607240842603819991656549063038382695221548227831742149659600149784738336563081453120596104014252780203774696826995220558837399386223583718721140978398723340430047024743772939536395058847726127228262480385460520586829904945820732453736182967290854014688984733274105477731721123382123630484696851001826475398228945273969959201694966280655345798983308400322649979439131871871881573150116802130534405625024477636709610755689781808283807813462425962480108537502750706674729947083955134216280736106405042729600238190388447125578413214389274461659418763061023057186630124433131652034913550608484579763889098250296095502631797929806391877428033475721174504611644150955634683640458240778941625902274959396072928144294282658918519166142954512311759184463807142451169690165566862253316772946076876411179277495959779667533732590168561469152003958841561410784139889006387435328336090098561928343042423606958880773169254279982194066252836184231870379330267530635494130328148539472338062041275801606358677399453971736027826297917047399348704050330421924909227259289398695165072692740509899674350883622505326850081517741676903392712303213750553631474482176672579965753447087978774294737788050372070910006542957094567089494743149826449259475076947637365712097866077933379007618549626150322106046456349695510784842192639092688460751878614168219999202760619691293356446867733088136775151822479562971427376676288831357612610131138336240132328909201208653163725364447453209183257516151943929235898538114449325091458768455560296847295173531567896320821010182088536009624903416003691158068069871740871451529492286529093481411421054450790534731597509067556988997780225441916086970173933204504093601274902852922604113333464231601147593745284836272709056789350198134831944587999775326061040030245499899929094434559253872080761813552152925390796253413439876205398110173395802444372408882372834686695431069596856173014258737433205585861874079948950357971839558342057706108989603416870465630910227878458069929437654213713552269557386802508546873479125932092847616305240439979484121509667416180486144486151188398294377966123517815363802568271988583893002764003456535529096965695503029719305900646673634125624413567222261370904704533824308004259878566324333903476560402177025087777643408047100306947213500110711639950228523457246525316465426923848979072188751965258289349211052800202204998047756707274111910744034977423325744880218322983176848970956951327205893975018161554328231518532440988441995738060521655216281654121600574956606065245629151963648198825371799092957753621428300860072524779434976531290516838255698537673202498920787289604892440052814403822519297614433485779271020871155090592610999335823821287785177688803546905039390356509381831067824206691006309622893189102980814034290346299011447417981463166083176017964638270054980757214206974013614789871669524638806411355041310674066192342583050014478798438165760812694144922887295737500810313699701406968445140857108946057817321442956393498871124797930415768930359550191871846346139820923223826596877899558751248882175918623680998439871972473423746165159852963690944466909643637954131446904429900333253318715627656747812595502396927709775926239746130415173432222434936598919193818836583474736574706445815744692057254437469050849950340383164512981075897999923518291337988920828949287647342938252919055703654770986984536519487878073706580615171143434050971731422816286274510029209245621799132533584979313153416655171720963016188920211837311392680284787780948521878274780670461186826486630712031709453096795517808567767541023728394139455001396660749187671823138448300410188690075191685675243110896354725922660298157677527405104397598180357750542870222583188286216929506078692767330484043749395227412434695864150934087666686201448308593276416592703540730482809989549385697504293031335650838553739635054596627491408324160270539501456688336078745665496832276376810585078368665370639027845173324545911966967501717253953139682489136998445944882909404545235173668538447048051626206390124851967812908163280276025511087967071271071889657621717387010383163466353175261860387985302033172019853076115966440502126556714466304573212544407621830025782423142542312297929754089258067206797104550114664159006590376246166972227343320562031066464553437803448630777618668959407785674321789636945791946032773442268002087924574206216496087930532833516840223897250090637077397263313494292723083856335365508150608404875161145622043256052756296458433054615748902244203408618919520460763894062905856062840256275779808919396689370844812501272970375403990024204029520319744154740833350616376377851859693657103564026803856268928116880758514097501894081502622569716611878775498407332875603745248800040661132333636041869306276517383865337169526086462042934053823436107938268548609076782803456634660781095963319178723620765784523843439197907032253927119042343037311920129955837549047236600466765792847041597682194930516256186098535185393951559436808820953267868695649124223788330841742325206592655363793103575056809577978418709141504428026831638135259687867905992207281226762953742822336086053016904203806037308168495668155914625848043377290519537975903645064610299985802684778235983519979046033022352646340487303807183462440984162537879391401822088022900741310241689280732335047689133453334020138730942396052356052066916303393868931924178219116598196144164842035501011827309480136066891025487893854419344148324133225994132351199460282886545956290814931139266123206984818578228185947479627864222598119452126937282089861762830117311027933338186443668964005476300754904288921596599817561466617442480432703010005654819438713249466125303223854378872509291146760316597464690945912142378320821500048099104798030847708284290805150240286569944456971103326955938742882047538416300945206873743582407401187545360909885281095814165078769171857965260459032117625210885909925376636213846513670771115528496632556792203457466055980909435152173273783022022513265565497753484525572336600264109560828788054449008603779350846040826558286245333346780407222160956982135408520837563722652470457730316962912640099342159182633007726661977828394760295929734075695914517398950000847057436932670822706804872006296084634093644178664312416211494157840556940544501065777596742944633827066776880704993661004345824597327067631504669373065555076840463132122425217305255284920031140557258034911696705417239563600002023358888951443699274404632371254224917142472850341977800718662942089521909989748119518910369384178011343212775192966338618135377816669202061271145903178890335834766596758595855811236657965558372012328713566699030021199964658894500474923751857321639654487847457931026889880941331925320334333452799165872630905385094830283484600519992049221369794187164884300618510348190584995016820611181559540857491584838818534723605806700024958173209708141963381656901820814484993893504807342409598353168479401995584150284769411666030939408308106078168720078642916794723820236448905039663312734145711963411090067948671527067457083153245336458464076575637351848273821559475532512053893520170943998814161170773692003257106221955489911530086459634765047775111443998709630449443317701071745820616007535519412975033777770508673603546152972210300502854990247469236476823610636485968754934095320513809242866583003253111021183076049382937625512555077353867935074497412824988339287051585980526496551076475681494457514959203997691178904730246465890352046227061451896215586193329014410932475947558336868247615047747618419265406019140456863273547511170548287146114686974363951003853263048036096232640149772440753640134033936195837922711127672586625632207077566615166152599662778481626075126866923462281558031707437285852800746663785666216712917768767246225618751894332435666870423458812769820359252269850155378468778433677155543800492970402893891558476314022236788713799688043540513857873663873771433856610681260032565981790157668648562913854585808964797741514238009319695370896264296778945095558193988855577321143301640167738008693045610497749351481509661122845742801917498120058088469931562154969072957492713582127707803217708297555584114915344884168911384369228337701787480252373170302193629083687029079499034853423483732135649318316134646308631486131849334288245375087147345683429993724929277563475459875137332733895852822191161749053220048420670115329382331619422446234846256472191994847255828917953786649748651883411014586958364254892996397791799432480509718864666199231240169990196419093940687224983171906692623776025342913030977899433434987696760077867494028805268181488847408967586535160891691760315083832413979771818670512568554124797982074236226189336919047265495964433746120825411772927988474360610835896886796324859524093709575685081410435576262923793131394838356555511740600279562098448138831526414539368903471559460146669985706604013170198408525452722261170993177550925340721935036822213568897273254605370378060993791346514569462943407020468612599406876583488475044740644514398537814219805742638402170570870568654977193943335288270482053960026047366764168760921024904113429737264516349103198207963115408805713562399628773681406269511941151664358395596887451703407300436832410465692370072470637777032889756388975510820442206127781747029798017113225126904133820329272240077464230148674937154883461257419667274725137512397620130346216267184591950874825082989478783725587212916689727703259243069773504798010866168703359464678824296400892861363692296172856494291215250041214777787823118750906180355282053152708089603793539493124054324612326361957076060857527069736566978528863949264371927863936751738210733596242597778495379651849713869155190068225276502463684118932582418487527414268054674352450371247907016903952477824596361692187207824255420184350515170406964534892779753617647284566062809529995629851887706419847499356084011401712476491142912172626765832583061271595967584932960867025858493665058149876462092666388305930974454764815650240907766639311913542640380214231482257051172889950794254960155969685990658188474941602280881784730721757439619955615807824950219601845956364866436159705002386640519168748964400418876339255909206756409911740477061006063808273876754383078066317854539866325750283060073025354007346186330252984019246202629176449742245645765908186164012170250142994536688662826955481842385857398509218091653477796844942732723469933223171387940676881241959615405869234793473849430039833335908951151558527557878213241691232940718452378466969425885822558810187665781810962749078031739726016498982445886039188865555210741367445315454775746229941457158970057951970629621532922838694812872503218205260193819447599024659185014013158516869729066226099481243728771802795846394406912926682163650514316839046718268281948022381596806188998651999059129754544690751897021163664750225076683277104336014643569562581140991826660242749732940044488124663800291199618279724395176295169569412125056155303186258599640330772746799524107567667341495551019075104546680621487427249508424873880430483557543389050051800419512186486335938186981332166021143308006005475984195314243352904866633939609061114898787150383978036669597063572586040568112028183122733176706623764135977632099739931151000145623581140143190763021946727142222762283756812632443994311780111286954615054811393608146070487543686121582047480282837798227440719390646148769656338263737922799677428444090696506115243188505672250245814349575642044648387907633450440322842373706478674752894639143132228757466964560283261867853280918148097274105094385567928330463232445314307690629722323127146240503029492367236727407453658329865574623278720222091598950331295211461447563841317483336171766817103255590517782652552629131073735754101073611511601818089636742739837060149947716751943146364926529356998702898120670257069876290784682878894146405603339802974507201947260344530042940421696625920737230102772437097700774255136682749613744159994148886837068079928512715686791418277894810468155855409565461026673648700947988486019437195436359186495208329264064390342630622726902734497715651766783365224080265903333087948211638158126605446555106851146993942855430522021408215213032203465287723237974628357367859765002488351268138830478483025350434030975778203303222523020808287262414198451281956108038927142696518349099187711960127681383833064509948875419274248819066778486496493678150975159875454989361632394377742394358639461321950592291120619026909356836545834202993894639567515923819517669558543869940582679997372759607505274618998089770165853724672109996596775768959709368326436877521478143545634320023198145906524905626224588065970238410497724587474928774282230816265363443272349263202315438749433628965431124866660555758959559722144997665110324098937261721045294315083727274182273392642130237931934381061527938323278861442145700531605327716332826014364191469164600623167185161903274196591985336062702646335861816790190431258283242769748607632339550060495225034849517545369495475364485776690603822062111360192785734086945657643052696022925900866512546062453460562791590135242414111570185783549773970921648149316663068850809773909106424739047549792784252855364894338289295282776592695184140534815048899023028276286506914807056351982148555605886823030111953098149609268965642680393111002907368012641654565556318412877750305045065862212279573466011697518529035593928126939341265963977954524420614956938948293370676075629229797073319750191495311702076049597247325980451327795561526903664790478034778790483712689621478362996745729797717746103874524631973206104817934373979074031572538456906942086049712534684321215879313376002700985845537106304829357052591734831382560010783414124740509268297054749577923469996686678292319671451005975921483115266381745049193815450462645411872261403365384951632859325991207590537546208409996396486634225130456442024445405238483998000219165886398320947191312502616203544112860287909466064979540029952177528597984142390374575678413877835228095069090419669844426315887279684319252714493586831259052671582375155430651865480173249215426739778045364133984766916515106506727537497543587259289660371278065625601381227164094478956425104759076355104288631413321444296274001659431046746172861753112969645434290114420353608440367233294350341362041483982008565655315326230832364817483083591022536256458707870071484798373232721888212861387968303367825736779042122442238510723652548530358530446095233973854489975028310782961560980332773680538969083293828466762350000601690958834692866122556913219780866470849995490449997794880473563842771052901916264861983225315805988945681067510130468699653638050055302330096408344420063868977476183999808764568723377174630016564794600193012916566872799862416620361640168995468449776060039370068391418103807195502453828460239769146505345264184742645056195454530184917291619093189844752892516704011464063174523857373809125672757954335931357078021197860503609293992813639754693801977769286408424925992241202812104098270369664596354600227524730402840355235963949023944087465500018492826878698775657727931838410634356419096615719720539260764317023611124847255367055949878853460260053568136336334228320837548241532135173807801566230965125423444402665293670534891337322365046677489976243027999650667951150882307316061615990538735850986382400782395561557098344914520533515739697253303020460553905651780014300317477538478952369092863708723399504956236069867601877437477166879729789455565166988563915339248773253750949574489723919553421512332021985997562098609215655595393962790941523561682119436043028698364300670015801245268593033950276037720534818933606884521218207438805933559841060459862970940739528754562713539558167990046312935044485938808205746620082354452422595661123733014785083414112886227825126071215438264178683226276321019379037907387897354599636153562400221746612198095656775480428640698584483302509945686724588798133240440975103623379175879598075227990113772361074271413897860939247653500365557284046942673029773444581283547061984143868814076792815400975787091266810592545313079606501851263713655902346051538895781017202637384336449910105650316048578318090339167879660491721934648951691321864013748328185852615961634658907699043351118433041269484177098516260833126653932281922284883352246454986409907691194307367581140470389393097866492973382158203531218908186412877016359776273140951989304114161683541666485951342206952621505499584198794981122563154766469692724095264965385592169797254300196205277030978530623294394346471612561840565374955305456139817009957864892826391287834995835790534247985460665844287167482534574106248400871547536303607853049220651625308675384518514000632988357483554422764609396949597303351729498416802004725224669697907485772069255666412888811483231555622397519620216189620295198210840224171183454863741417843169245892063011724032007937408538552650410031313809101229329665816590416627491110471776872030329099017703789049557869188406129804215827991440031205875003547258070902484358949718973864849143623367042254465298772793076128676085932277744111618975914668502943964374779070702107103147319347727053137940789695682216919764217112224258963876636023186400957581444402963628546175725999859035776506859039634846092684066034268542609160699595348980485427705123509754623255093723402166395930872249396997605942962362293706009985775891569186478524618945076827054742468551647272623765631302594706757643300404452540873617156791782666902455292316450649296766589747860892086127818489454085906897294307650236765613366304997581703059736774668170479070608406187488479489849554969170480725807254722469725961049097856241168808772200392782286503586591325159192878185317585208559352217457429782102327620674855759406936439991593083532680272144265996693162747687434283965643827932058933750561636671944906421270478523843882551299215121568248519023551896342966694176309326300140950658241359082749813559142115060404928145156324094303871109783980755959027251730616935486240066746234503670322916103496934483872851994111062244426609211818365047052973632547645089951871437896315944357599119841836795132544450064880159868261958213370554965042539050868984281187447624132203717041270220188832391078450976371585204923827024390387869641387548142988474262631885536171039433621660516794253446984132847510546095202748226187386530792846174277799354665643895425591518435544440372163951785993833185354437276678574305955353864054495361765664455577667471948110822500660295297267204961742463638939423729128119411169515976449211006179632290805720725991158802452954128396919135806571605344659505705788356101097045892015088151139128289123470274140746598078532004508932399494094457463620706056800936046042005745908992244952311713534097493218971009800640544982113248188582302529647429701789922190761333595726493168415000465546703409527841223502047323350244831433596554417293010301766962865014318987422463331744523008112225518941877110449933931261188339711924984024907191691581890297368626474171317860904517645843311709034476747906440629630895128860771033033556829944888314906626837087643605001561946864822000562272650707992276729555779879606012433470277738566411042430076615943819169343505226226833229786221893310055355823037379320594664878476725608321192652675260449508746886521618706006396962386294427024718589576955780697914211328326996712722748800686706136017998871299100621474482287121701019275082710882308997867927028695463459813883260339158623949693284683441019353249262748419536562366379281302546401217236029691350036526835029657407805240744600667165870999073039614569860017800228436049672385580797951837633371903254771908693746284539565061735463534153775600024353553021155715283278583548826789368977788973206636472980544880215006568985402401418101366645039217591917420782425034386183268170229572310367688423700563447228779551761121788222119539852778819756679974200817511263778821466895213649454558274686278740252363284729189355258074616718028336464954764993088696475546904961443613978163205229039130768220611469860386822857940337209349350399921523279302518862412468031391615660814525205015973412857966425449632135963990559108129013439520199498785967647359675309630712397283944398664678152943853219934854414885010242313686767520594608862729727462031640860978749522138523779374960780319733204826996670402127158678820504235080853408588053927954052676561808688211791776557686058617988907774423321932386551500412506619552935552567994674423471275359751891314910100658929257912941283402205809846542693375761163521895580424402511644055173831437215675169475070758201398544417631600988482787491053175671226505681621360909663316612307140650616253944515876137406429382978716363846673536474846939595498305711992033140253880439861283924919901574433361674519917891752753853948753591743734529188540548487406605666752034919977016006145760224656797153300504915212627305351288170913400294490645193274335477814967783124033510802712265377461170678892350056333772239310385557455646074765847533257424834042420480534850959940144312198633740047311051438025470765665493397561409044178825159643510675670383766078304425788819380705174972292321656607284437790605486215684223352809129698229942017297644832233025196870910134317729140186837014679718835303585706569842834628163749024932740583614395240225782012911635410682529567402398634648642233275240425064519730933391655589711738341862612855213003934740288049409787222991594215988678752160507079962907908613469493465145634438023548888109502455888413434067942606589666861315795037220607373514865736559698239499112352470208425291480845452137297304031756384671687490757123667518334277603905763687705231546580377925843108124963897050953929936408081977357462462058039554146461024438987372999567956404597060568266666886308026460113030266729383148711713658061994500920180121469642607862785292340275224742850530016640749834056824348344754933500536936130789455962261285344091179232152813580662519554245810094049163307203944329494601563637621161166859627219770484713954629858472326226957757377888245787100463118266512686834015007248221280912791851818085376679808158342073059511057833458234688927002722452514120399332982740978583974031378157506813977180873172751188924478371533152947292237879947535926687805996845131379535250821541463489282755313265946928370367245980091143263661651746240296777661048511402573660431765821539190313478388253799493938056057098575738797999598305676174508400220226096185135676412195472164507297067512792751218670806199847636890152431756160053770611286293120948600216001748050643060133831437929705282597808757249057459102456936569286378164076448326680077496088685787421082386358024112171585366255729535359697817806352342029862554630938581342112225034157374549185758677322861002625090008764434520761135133477928178124789803852434946229337986628305411137535530223171879671895772805474637664720015416463293586574556793748228066016580365957175294494066324562424755341196756976194766470341872159871188043405443379377928628512194723106429411280968310693633709331112753293084689195494781344999015723948244348022840750668546717596204832740623029755467425396389662295342290284347425493964836003690370454638745403953808556296340464183984041377164174059531616942848959687046360455346322747596275670597918677121728716090301607169823256415259318357570021971982219044541361560437339368979646487504188217448564093935003201104183700095078365865332922220410489886362329256627845726749414711780834501020883449236204192697501735708105375969201411104419300910070205898566272145400827899106162029876133354607608656640275382594784628878340301023396486479267638746885971666935381569057070387471817584570421434278927176671531826190637664977655177312854931588223034290971000432845795253601186414847807217849431119838247148949216902528019210217180470962128915277599301194864302840854834014832021017048842451258863632242309393590997368097888995521455758485937598935398926891767822076374822375958900514199082645083838158186865625956239583534871751001702383931832868839651733798328827207539418580197240068420607723440941127890807277569046639454336707093100326524429461759360102650045669009937371297555160196682266108186116184746321408433738931622797926790613785665675534725105627936378821981471906257430131926918842288581122561662529131197842076153825073263608200682614373603759946573330647430841655750453906243677710541561547038764068155163743748259562220474251112258226567365410304707647237405687370494477842523742818529316250514933079037264524671193757076596895726535889629227352839191097533824843753490955552130916542733466988441645950533696240046900035879224280740615830178558753212837861693720904782448238718326547975420344578339352442754448226892711278981844948033688101602933334660772464144400787501059304271953263515118371608708000281657504981227821133920582688031205206766924490060702035748801662486391880916435074142251854026378678724757607403321517673090736196716551375069027441381723046273630763112567954987641327567288516673780008567066798470944515430999020886620069953329011188585052410486552401461858203084208670332205183646753007703390935356982173112036473637170822706351001935552558504163676676360322983072177243641883287620584972926026746002041640974130878874440241022661671279056756676908352994002404632534916844277873831832501776071627949090011757309370576798655220217497925440727262297883591135278785298729329761265346749535091835461038688920278880639312301797007606015402887417453191195991515961897611229137997476800262460569376572965370682001114945392573292529731465552263524852444129048653399800524967974683990014331511951028705497412451611389491106257721551636274935572191553776828861239404344836029679587240995498352492708116357444279913109216587795710617452420278912599795184191414679006888567018752906644619007591291668105985732354159027491101805888321083717189048337191152116879179721301570095877256050342864504460368138236430423010060447436499768742761644853983249635534798915315325485726717235777619646316677941293675354887251456930346667769787879248570703970741960622376589907243350591715708145665212421870920029854496603447529933120367978509622105956855561814806696384786645049255502469647370534676841679254100261515831342354123190267098508142833174688814056574548631409232784560645023629621957664521533359212895740578985490671886365822825660351006515635094974484991864646287053446215906246067032666041826998515197150417710854383012041722145121620466532849216303463703170316642930728906818480268547574468718366679211414434094062165236271053060273633414421262165884680116615001165560651837475543656483254474455458157207450792794335005895503482771680745279530273502554852575587963289834869507239666290042441915770867709264860140609502767143962538337989662460721668281539540723698448123370062284778493061050834778977139976302070528734245900881341401110640768852877572236397569521898518100414780989048981478923348423977497348028819688076859233013703153887452077625341644528705989345359907642115485147385680620968443360298676652802737090934104812116145948918837881787716432730189887874516897541934358628281247581699303469960644951340692683929225752215605393899349814487750621877129707176047547504559549627527677094904205398541557335877018941496666991961078096883043109211537505114247841739197976619146430899996538583589510442839257317834181768276894619364501171554283446602146860294071802308607659289478792348821105638135202647331587029055667556596661957048891513656566630559205625668000714126550856796561062283023251675532529303586094418158014670318023056012062437715856504003801898533480812734098637296491970146040164181665896665844315185890849471196784150931930591758186759067735351667885781423593322616997252306041791786458186322902129831705511207813538398750073668261509075205921147209780792785480913057755310687095431509871686779607044953776731395265824626301143879828898909266206124009581649842373215928287881477442942227181812377061776966109714135165791888312393782758502664544441639836601955656932555484657895910024832575220734782904465521484459368303834358276246237484492219370794910125699129610693865584019768488477015489649502661910863697349572910378198378972924584070075389572135164207872234807084343405362768869805823250725774104450316218666274517512327309797655577437281571785549189965386070936485622199054540099346392745933696372355212556405779204319110022803170363507058164490463970086844080642462160221481755712594188428089052507674321289250307694531522211947272815648085758566729888887818118757545895022874827134528541351991074029706910010954328541267838648136098488769814825492513193940860915201306357308787840050956687323141177977349968270110858465981708674773920142912030365891848532572315546952047960167080226233193131598380254659884544945784057969952899669358037505024670444350766036966290329401944741746440998693057957201331527106112739722947994454118158547520327082154740929790361900249709369322786964262235155538136222478891771446738046338778596371270486124480089242712135484670454309620466737722633904567862363387571134987465146285283971775125935801029241718452957209454371178110989916657125833738710144311358547709604248180867900070767488741287614810724161100833256093406790726272606987116573382993918672211060363110709224356771885031226682503767811870748496395848116436705579891136542423228305787510724233987570175376744076564162010295393610888889625959558979457173085956646114832176919921446883813310786982881117082088654362300667608260196482335276026873980089191123174454893506820723106482218366589948954077155721444291420696767868049753104510845335430906406406387116187564692990659056477222339446860240296445006749912917257121555479323361742396330209812716848805608382780488891616921629523921471485770980040309719797837349270896165366517202420513857714489881039838995592271984916488787526712014691563552666008176374667645295768894484078530590662783724373634871276756170726663402813787005648379424023904358167697471340066779429059706580471240217018653319735855212076817634295466072304442854121967791557212568587770195323335886689836882037538394598678424208673951123736339938164804022284662088881123139456644500868224201927513047036024391480496911746796260437081924502982660035800619268508190616282435008611349609109038904752438952949409545845591775622258868375669437131008204269565136250141882301525794420079938834205098542014782331477637306338750159898879982000430519027205558166986414733674456677105891190942124640904507626730719560001946234009092847036105028048775148944666713960732207497106757887853564414960649357224898333857422441785066192156415248129278527469725552325727430155952753365410023144183778785490996131055968610455425050606353333351264359702782538344282103717303887855565467812283598554482580646801359317462996240096747754987072527763974271652409284761161953120013933446772533069117607467386599645898304992627425793876539065109732071755591658423541673155847893834059721906212043184894398525206551745281576561483928576667208219255333648886857714441431801622644793500466110611032245104370562244495867165839841137389958237537075407982752951622585130309830526355946344663081852601689178918188264715034185647571724949873810094064089991282739702154233148264892333785799234984088659539378017574878248593761342591327742482144065165339145232392857404011640412193298685793329169095488901708576018848730155223443154124010100901288062558196671759673343785909082260362236334611494255351212823096766303797435787726693573809187438047384291622420871988892393890566076043732235435916065325224629957824021878478023731438540935785290590329336717745298436032035549167306453263219115713474292123233823167368741639780941248820648941093759434318199209765781740041446830061181157684685890389708128233106706448502062048460314866464525679942327515355348690802056781864602533461899873679913310616250823199475443537156104524699921234282938132929876627247569386903301202015336094146915609182382875381661349894839013359941645362948336456324480780663418927198806530606324600435020565671704019571257889723911020677373863939103209576796822791270603691100971771500048746624313839117272169401458609087344375986776529627855210907610577169460110131592493524926927744719202154397061341274862511546387893677882222875215531880258970192371178781537709446180224455332955352097284122784076709773703788698286350348913472483695935832096885610722658507377891871756915855571777028668640664182014872953659773080965424612319804291730744206625129827132149380066831189440628869746535242516751890285408260349345442827414830266306302028145725268601658898662714950142654658398370527525310929327599889845770027183504549514212169574345747906676283061331155139979111075133529589766727006505340259199020867043442316918471732218456783117092432064669666880234141645769964682265802080953168685922839825803317003631606528379677122742932438485003567362247017688803005741781101823279152561509304257318685515376920046258884072488453023545588207206238894012829117262993463381417507455035937744534017414803057808605253117002254542810865935221979978627673938855959503348504568224698420447052360886337536711600091476009422873265143884909823149909071624208608839421456941535395349355522444636900431240846009878973815565230957372770409681321996940994952562050838660439169347140012323223327785987490061603427416687232957272881929256011518298907792663502736637784709009695163686193749616151164319730434774721059942820738406556848665628238156944251061847497119214401160005518896725945067766684347349864257078106893186490867211363380214827855281736066826237628944400170269339763827665858552555130598396966757095824859649881033859290190962287494530072759500419625154337711048450351463932454516274323915588564868017069427344772988020510410843502667468776085059918563414202823288350988339182811854891930844378684920745832289375773672684665891429502778858592874193049897524884248878705822411281133087537981083918154108576165822041723160223499463561509343655500629797276372451009898213974664585055985704414210402997029818684780039461473406946237285994477694196191862218662033094671831678035399323111807724753321844439426941814113693748779114123258201744110929447605055522012525368529218011329013913370868057364672235608270920604046711430396152367871139620566870950125832359022967054557701480131765833865838568983686080882919439794650493710960419964354331704648267432315827027193220096474828734192430087891951685630248551299314586460680340394157851422241187590946989641320431162192077292037080936755275614690623357836848276940715088934014278286207715469863528308361623499907638362322935947506112347029093365470210395204465503373594251944510428128941152082611025278930908724113956370327917002313918860493579496025689308251320751916078003237591208781056241922818496805885436112962525999039101618952223459273638393418671147411183210387582421384552503804027393209209171109186902448103036309858246023577406661269487300297934641333662643640338519250213463177149980306701769109801892545249203254624597886128001171104502105024913093810844512977287373214450216178329411330242076455240410393661715673865635107475673238767301922636955242092267932983899449940118171683032482029903949676838359450477330822492213737872274783735702129013044418179291741360578259754965377660804335656100837807375555471340563736363642147022141819926630791927646476758981548802542505973790830196572152342355912880511777446802495779978870459586782069995436926013716162875498598836749248451024813535075151084433790894556213023016357590230202867198768391998867861549443800456818810502941209347705421464280708658895624585183311420141101866786392018713634576781967099031818650673065501487687735861356826071403840199741925249935632672241256204195192689826352719456678011508667172593413308082142801194107836644539196767848097509931711281533294184292208912734426492048698806404637545121553123026581508454514287836451196584244445795349862611795130053416546220316546478835151571080915706388397632882956008798691754873923759139899786394898989889326048041954309716211469170791072004734489057109430847228057694267943300135560809966281149958562153438146766031300737151388472511378095867118155713886047962028275262610009752703852187036472509480434076213968225902005174741267620032596996700289304799893802126660141829400832535875600571832614697848670717584803472054570232321254717791556736352473674018120125890872722685340894605190725530542768354393199255571162446415101790566795878447020065283166902262128365412210155448385824379709594158995609322703778012140443124998432588893888064850208901588424016092208292547033657379988060948311624874618234642160105053619218918401720843983508260181318560572603355013303309010249841263881653505048260898240444550549976131233689526195129647198828649976828622395908892484106119368197213711788694253327623334310578333313697737780368447004338576862142140261682079367900063091757222688000299181773776903822180452431484749276616754252750752723131862355154772177790138169329987204339707887505090997318572463893165829941068797301257901588105536993030866069041270647444546172906426268208564551264184616751536903816094051692420454760130485575898218071521090624396393154119958813276574711904489026125567065083053934907444583576446453737448261112963578705875730565001750765971802482378143737051346985961319084219620420562444588560860675794621560959448476957103236228555335638933401075028476951863174970407719238547974944904926779943810987579918299074823859094573661359628547679522960161857113823514450443857527962901791903056117423947254292216261828996739553479064784561330138637964359832830197263173940728648536547071766746187343366164085122270828744693882846279638748226286975069607716047012495399272264495932017173688653893328627574550316820666046758798827089405551904336674122841089364973244566097455685902804082663083840680891147414715583513200191605022478573734843862287457547944202174886770134314986125979442654700474231392787171168622594101923692155786989525951863763763542651696122080144113642275839547983452030804672566415817271686074951746463133843822081200399518246754951321478334130756160894559021013110844756660213507206224035428790888369958463696839551825624099382847759845723772915017761672195870731471915772800118561630243566229133451626706568890923538683651165744305749457983612604869544940425943493157003965133714565595087471693400082174066656228339428149832122025664870376932675208340372780726126029077199369782732701482822319290130131365153864365654169150774002639873030253609764176151860225627877472875021459806882966049993910862156599793108962404041135024232762210244990855048563006629221962038667981620335848553956840875192149176661872398489301073012428792346703166886759333377621114003710453782366186097503458028466115779066867531981647689641482952569112270626737897919284842600335155512565923231710287958030810051004475429312739446664328211749038318606576266181031372089493003268041708761789595310047485311150549108147058965335353866184631186076856231770965567404451602215939186351918394618414660987123345978787987468873202221005686619180409694859494927886815239547496458649307405303526825630572573742186923375703975174667706761498498070838531616764205482698075260128861292061229739997918117601626374018355049339377069141198389027068126681706550916478523116525230935772126329338774321547758049989882306262178514660888483881096484878271546832042970740656208199893383678639679841755206602968233656569928831552232612865086238581344607794960000235636649096203434610627936431195284408276591154101680866587525918424752149598826287852015786803635647937813461438485186899160507163757456741130415841617223367421488264412551201275705700803260951658986383102357669407914803581572799382724992504012651661924576790010525781401425464700630726244180594967125192853973096815899667927035473005051769051027401073252652429475255073174448878430473099016442468424711486265384190249447179409487955806555676088118701092217882008170117302002941488233779253523025285033103955148981190379296295753818020747373055485918197895100678973511910615637135773098892995844360766030193862041996108817048724162677063043791667483922208446225402038400526954375547141564402409716660388655776231172363638996937861196716497794452912322495419688186653864197362177824883895389473858155336545967774064324398557381635830713664494540293858440561325955381289805357145835012475507144249758284641352439752688669463072459230191215261964743940428278436894719929681354225096064608497381140781942324459048594430325904220992007191584905014922477946253837475690873235864219901526366403759040471265432988150188818349838928790544060047766861673487157762014792304778414042072369879889294134266408597153684899026525300627966571146647446850281468020196890523099235754079901709476365389292920480718474852723238486781964541889233291262938029440868031468973336967201605412359746010166632291294833281892201226197962330346137875655061075603719320195452032461029363839359666700668622305074038961911875228178374560138581428763386499053541258153214799034439897636416872296007208397340022427477697414576233445084823888640959476855145703263056059019195263293999337170593033052067038025555119120148393335255775137996300628113588048578192194006395410069538449556513403425936060209959812003071848807666685000295739275632213243073334511714793773675817564406467446265832497346438327953396181619113364944732459629678418003578948119259491795059201608530257642124503708308153870355003277263854258906918893933744356844495887438730235360715228367619540966787818824217500069698075293105860351945522473035767406677797162374521361250718525807840538762659059749601076350996514337572936111926954268049981257394905046420622473305833455472818143180445949305726508938910333911820504655212623902497958542991061668726739899208065575688524598396682530318888087042495298610134523194134532576753337217657724033737171709395565492235249846197460686493013469688613571828410019124091791432205603952027150391560112602163876268354850069388144753202870399603778586573553069410499948561399830119799488374104370070729831498447740401754192299928390706164981122048959131285332512923521124845811173357641058851625827794723941016566075253464075702432411616704714455439332399769272261655063621426386569712348694000921657025430350495661478277696159171966834616688084030201200493483875943122473948453929265167956045600485347838211051995910121294105342724921842887635799292306283324152911766108999878905094498466366123001324285089497894293221584668454794690911275332678736795193832011843374855666243462496817669173829668684117569129151391585032345736141571290982955832416977663513679753389384698875932355870196551074531888139911799667803418359168614041569888753373714364262654054507580998637978832928332370820538164559452807634235990054680666987345740562482236076260557225642494645769292427116516933198800192984049154373941144695992165577378125006092108540376379074943453942601151790002673412841311089094221954775267016679924616560132681306551157459940066305573331345238467911484664396092166988207482494728612533265849901601556185300451197729232207502994717301536227394553796723797929418419453573094873370661236933926896195067776424480613468877356327862613149940836452029663846732597029119482001264535912480507905940882256962348995567473198293910716545168278818351526729169071705902497320378845077931283025341479487702985374828515903050014949664653132989788804113389619120501447025452502584983102985649835033130888671747969093007516014530312197686801685291243687736195414045499840788009005518362698799367034388303666354273363552470160556851168026938021350336460477132700059080668121641500836955048163968151833166801661660185305358288937602311922242916295249503690245239088496855172115526225294943508107961358216567898042760131890252426386967727850970054082917062059415208325159266581497946105532594822794733041787659667712890598991584463839355679727776046639528386815944283408943701901865298969110940112307308058017501682101963876316188648946401066760979003074787325943854454215545114579426344830967126154863786033126735221216391828050565462082730466321777401163644886771411124902899227582291651078584889200424855258276498082402947909962480457797449287674222793237137169132263727386159971190686012832534088827763677354504824914978364217082812261573677324188191168206729084144071662938200617588026499919146888920654521538986997221839955043876609711116740365581800339132335115949927621139732678090078958284197467094639745620534380712859687097452037176839203936467616231038458616116241571668886369792659161373583470837797233799966841137849988545455722474870589632791090734896788654218312343552628709865869072142211231547169701799712241133856911555559231767793399075916586642188668339135553515669666324906370444136581147982105294606861869118600251553725878614848633833886722993243778832872300884247391658568626965816962205389917485978821978847277296573847425349491551418916857953845327253929234149255840283396910958269722611785293529301691085324914312452987013800414889995562066363896340611585787218680288310145985703614544092432303431908861944694324266637545321806832045686719749888641335732332582470112798301726160036922635039340625490496791473213921104859864028136361637343943741395833238486662276486513216822840441027999604661660101775097811919586834963867500999523074050603418229287347355959527877731900527564394167940251842547131675450460116456906287641757168839534078366581874499969989215052203190141893395748071184142361786647508846197025210717439073835094700192046413408758500673791405656493173024187894136446301439696711257744589385223133966104150664275874051160293858051575321609204924407527816949552532434121581003683620766331959176981422608078327019486123191758633962802947341818101807431109778908539184225101820277599632667318992635375256441711390498342427228637063241630071810010077157078443951890820161996362867060931775443242069994609760347559811937976266059870860645588799375812293016935053031048014604467784608291278272928618657634523239469760241628068988169182247883725760969782074383956136185493423517744898671643018178378414840612445092348688511932506711840436145438600657140162213508474860903693486198530825028864244122647867284470895401228270787054496328763213669557921864776335644220367792934644047106609530248564086342405840814935629501589884823490845357568007124402853346384418031925026964405395986074573719556462685522094423114816610586911235306526676959373178574318256738704630136963698813647306511192223448034368382151730570253971536125685483291043281683448274254100227414560821078723642623729358380731433702512993377283462669094521431401164694979431501222648941363128090125326485817760618042578135883258530570460184494585651678202087268479011897890103544326240971485793532878752045024714179509206547360985085651081120654451825698587212457896822291468064124624221065074466109253565018837846324922441893364280062558074207315860882763544675307245370383045171781738039847579312996815738637099409187411908511249429167085373801469435895055417016154656661008747485403464338876992401951794687543749343958032286610958605896874423434843701406428335160682962497023431074004166976070501546080473070924067756276407756508334206963119173898606989880377149929702157514975894832751420563018330270750778241850022065220895192894636942099851394797162531519007282636634502061540837207331681465932579879411110453419714791253748598032189799520031919951838149444234040952050923268663963013088662012737492304732768647169120659865941554961968313479278675602046817865248411087382800908011326401266428845283907842978890593054488304358607283203100466080808721671580453562626450629586008023888608009518908055664510987138567316486127031815955937599000134434518071705737253188360244725776911360348387268023209921558772572076674670794814391307295799059093325030363515845124013902499383806988503378966176906016488105040518548962523175207971758638740897448859848686520883037832729937246829207123856875280005545565239220491717640457444889065864330592583786876745897444131999866677549931770920752549426734422005623926924938435105041303718506566308156306776201547715457804285845861176971662869872594236261712158600763810601835786296586964050027274199580358966968251895811377805212206354371001886368161505035648710393516460187734274977223524573609213023664533988902892655148936793579734978481866873564132874626746540444147748456798473085133624752535993580507897859793324134367377813102736762444115752060353984022899942068426617172678122581666929192454864368564542167305396846128265499194468477154856729373935120326806847028460173586474904110948163305451298276712369956944345473186545340623111819862295160388216624140372055075211146652367919987754883696627659088616211316594335069379010875734391785951510276620085541831138474471399951775523957684902835697379355237771594503645864654949565830083326105635302301355421130629788541916070046466499491822560152261703563328125704155711516902274359482681806048433649305141558691938549860748149348703057555427549877560544680811203145649770049798088847921228745722622877974562338066845784380344467282511646990172674512325691786003673174657500185218248036405677474638097579528654561048257312456092586807479922681090594532690130790326434319503064482149140328069103447887903154889393897986837865534109457566984389034326056460277714395226714495592872680871392216087871009996231258299073340873649786486900045920413223363250182086272081043648250272941639481642787846236612346297998504313475040182469435496341091193779497462995470988132750197517631128239264643133472481647176670789791866769290446539004846922457632944202699356670031509737388940438033792305900641712749195804756746703157116028113324878585344288038704263647514051369024759286685942180258527899573594611237364329619333322056169672938781675035237007179886291975982798757581073472461947364815614959659215803692052571983363875140343945334690176982968243609731228398714077605024310617824627739983837381354918212754998399563458932332551766407587649427777275430471462366988764091155296852000017225457848997014946154174328760220950937298006440524638800331002329522651157121458591458306122615974185429358323036956372350776737910108716911901196283774940344451835644215620896587649418762153884011014412383339094433588650797048663356723751146079486456065647783787110651304118313211434238510368196436365477266486459061560361364964531159346860003340025718183568373199619480975494021514260187642174564686174905150756574225843644982579447032899697465726023744409051651889692530433363299606501754926102750757145034671131508907358625447660734081018697596453149153398532315288753772769688252001803892368493537932886732928808818042897567427857730909488495047994148708524368913063767303883582770510559775459708949659114052634070592517613327149453700160417819458962230559686642627569223083699383268217999242466131669332144854666481936685319980445598591980017242456378174711456866976186091010183362065713573388212495798491017227096667050167456948064512824774577185798583814965149730260369225609606550700478206631860815715061879099693404263740898878877916245169762547117902507239370754619333361831628051745908980831139628634091050609500218480460707452611564668980168443151709369903215284367160291760098674583705315267020577312357955033104701112233321298898984488942527719673490760669419086624273536706934017606929861571191094362339170880531954618011233470921714678911406966824666347028935288031616871815387618983287967766487328536030606459112273703951914812484946909316417884024667681489109734931038414387994168349822717515206478415444960622785616433355711171831042268586012839118625791695944225028866320062966105498821855193180199602453442004107164896621779279068603510605500861143638191769100311832800118556750802868302052065888897368979748118428398614321419004115730276676897777299566959755885446336474799370657565863788767519409928802720882975809323460128184771710546972799208336565596813193006725309825948222325768065077962802465911133625548035823458976402037125207237489539420143551993497235749041338179746144654324733191122631597289599580858190669306549740031379623040754290610675787720555664089192971094261561906542893405351308169205377935911436551168103759179296652854292523789024833680924403521393503276087382945582946095731552787965609213947740162922957350216356586583436308160922697375600044187692880110885845364671441642684763995523243183202313131526587794906705764771498843496065924942002823368709071175869620602370023658790646447319599044443833545160738566701869031768852719428293676922148538772702166590121776275618414231914281613282414788779300968524914748237093170445413489156061350986883196233283584598597328818892476411844037564257203120388197004478915062100336021027445582610928305886788762361241196169712151400510782333809999789815669470915061705854994916384165711081999335663116970422838461242353746155568930578246818033374122439812046142841631095815754010854494428552014400059256159165834914065395963570395335659194657740463425617105333524280782321430440947567898446859764674440105714909588545728816615605134233918948244809023454774258611731234672099972654759429266505385053634660936393606131649109823572136530226564377827541350628281804586103176552521674271930125689961832273862036754741161472515247794266976050293466206470887202363409579716220000583239992738050522549107169882307522563340894948702763595079385900836941087206810737598100175065508333488540598239695892994113030356556390244599082848483398400152275205797432306334634555737840720688677132631556021015448924376474181699282036943587741212850005724897487029992930801577272988100646516805653020836023924302089384051893968673227150234716434946509863266168146989414750337237019158829801962133357387552652567907081120613756279504856903904987669369137381395557505878189277521999178159617037340691395831981018724859909822721354127605287523272438082464000173136003617153849211091163304920766346538795770442589746448436373421222864076626954696059178791211027907529755489784005881820317775582528629926617810227176239522244433534583330665259991088860209657798650312588882653423162662818240063107275784043830760087610371071900042106410925028345791573321342471349666062403729036271852185727928247624389374835315236158819632733161427481438379193188003502160501958672806741930462515825271726715159563431719457712826005535813124046328725789390623949380286288472686263569730685270006608140156899568936468374667667145634791601095287958201557590800465960398829618780001536864878823068290872900548583903807751778775912650680912071399395503587585395281458707874228801851989243213528214836284068079146777641686790733009184309473107723449860480588321933633019168906477055414903042109384331455019286706247071724536668758828114083151224839300746991595175438321303607168945812615737209039291381360121026261904423596839208580258090877280536561793970184336741604659681825170470634636641501323101522139462924032653591447932362960934059071070168599722508396175363967426425115570525225619479660168529533799642403722251840254200291603660333189454003680168256256756643060156112173570963263626481546976834377047851003766925107767563766107464651028212243409959430121789120758067261899325565180276510416985072641195077136663591141045174598605420692197329245205027002496555752906915552219661242251067837592149795998690058715521488541147932603371615609011330128696177228621114200906985588783897678748452387791962870521779993506353027928935655565924785269426362264987058688578681538019897222378424112705975907833969756459939980064196314359104027499263684721162929824467863741221748989226384907677491283527334633409005010993481045322919135491988259386887972739693330879035715959036612675958111670363411847101630603314007110286287074319499609322997126858726100947566892306398836744225144358167648925227426583726179929632039282751904134207466306260780639949951435705352967599727486846266864467232819697488313756163447445551547865516717574083535657598494937270549762536655454052897892810584536921962824639485566074616974427239334516179814868013625396284276619620823845384594275016870860248625670321819438399581116706377700267810183127568016376075146377081492099854192843607293147501331322713973655641764679586105752302004185540894402438113132529975569114169108037361952207349246123134352035741661976132145875324212258053039474680045742859909374612344628641221536167875382255584770308302849605180165984812718595184897274221910867546123401413435305885493390426977219808043790203637858214261092353671186202116829307576305801281610873653348145355739296262271577065793933615959989297682555207679627684186646903170474595796549712799036279162747118062961633898446159933890770725671545510700583283030646826667102526598071771553942857105213622962229422865234595822427606580234206408965717366484889690869097804659983608349968480515957672947440202035942543154936446879941965501593903598951216295580412558055068240332865544871168642589440324446694341616666846126073537779478697777411998160002809474490125835730217415691867627293011465880083031576808636027456244345149609929528811694855280584740119625155954281790044711711475620391724077600730306283793091490848594057596938198173566583886703743326655050124991669538858945794268783315601813297350051223657247788893053368271317435317138651269721348747703736867898001059435662822375408514365407796296760252816819990253276282128208233269607871674975459664201915039947280251964869293919072728522842802650445739877784937048122812993397018068092201788385497054082874884326350499067398843202967579159548203728425657201393235001732591566061137117097576856569822709840582654503112956617912597183231418853603979097015751686698745457858085612427154980370597756085599219859223665420555517040224707239553632247490906357806790675752916768858172284914503542605404081897235013668247583360903037483775819517987138063951677795765412893570023366985861713970667458461880577732865792419707753910561404174041438623583676705965013979720614408000111289273223752916779882033268285730295194885205885564769552670370715319394251719363250333056145514069136801304874809318286278051186824185378866994817366294033280998158833025098060591604313854149045847784715262646949312194868907289962093076703553311332165367426672221824375097437668002958898891347377733252796109689757759009632774211686654632734504051275087256777472704307040628341065803236149026854916539005872227674332543157151539819296247827990819990937119598683603804466891588385967715163490771717177889284590672296332560537022926144340483837647915870263965539993161601662243149883368081956193076859968496791951064003845946221730971163848380040353613038791787266445022215070828172986408079533454898430971630257549393704232524330848191912858797712912121425188791649957421279756197153150696759347370009067599472214852787153132694213909505977073623568233088010245183865214296697852805264082231137683741091747234162578050563379963673313040675956998601114529918813196583821217242356155218242320508449401524961516149432592701557466024592407370167794075149429716037655607181539141976715921405041630327640490206813476929971997051514518030798174424144788959596316081285770663637817909988474904719748031891306673840259088067104885012557666811466688021186464573152628649677742996947366691949550389354659861565833781701915010930527269224424290556680525324083716622100898402043956394965180814360079222073725396361211983422725309623045164012973781009530293475422382889173005637842341866757264337430715933575224085523763899689511960079677264646718639313438591501932461068066593594586386822001112353059825035577090741618256479054620051192703306580357091618519428040625899902772453269523383429020967441509346837274122747023698718090453482224666981273932093534754421473035245411788173953798948609711774577586465282295557961267140179782109728623391459926620698219908234206183591367822558005890303058090009039428991132408117471943357388513579679728585471391901298801695858171509301693725505083717011773941302397131513968409522149620691939115013181323769101257991968751547589194603892605277457123723238229855640874071653110204457059653305034012555580320542830965394586169385527953780779694664008004028401487317126194021761422614282610491145628655049388608459430151391381790762200025831587463740678138528731983468973681762051631249388851725352035456451092559379565589718657775936793305129237729280810601929143460735750113620161421532011077539702937355283999525559285654036048748224680352620947141741515141177413538020078594603826441474878871947654654486072642296441003139786302154058859560318147839250426823387986994059650726970397362462643302465662151258568000923059297798889487930634714016335825068878216264356076793258114209494729781587923696956447874142207689753874732608347444455737607242565043786534631295221364079779947916327626859984492797928239520221571194395430853647189891688867651098361424709747268657569352516016768746700753994636911674035808049529931762970399646699563669291881989077969040710365105507453446010280796843222895636403059220510383329699877516104877738514775317218761544008471686896904143413295739913963044461797113471243482710630137892075790987753780915591240398052173241054010330268123811354618384017513313006540699692737078871445915672566610486057702578153074923222384406281115551962725778781896526152988363788761046883704396870469611217732071281827533952121272060988132935561153772923570608722701788094564869589340571368133315257256323178651149520880685020412955646362345546373371664959666372350588522933966601446943277697043502396796507951705282870025125508654712427260897579090724443669558127371623576919272080361525547076896674190567376151317002335881709734370846847979754485171690505117811944656416114861238209813261240264687544293654134336206845575078818130287357003936032212375390885377621045515429857315797273952203659428885795163853056342341057260077460264318356662772149930176497215510254897551438533385111912877012359872280013471188196708590592072926496010341403289689269434398702958523051797130573983043574200632686056016951671355509085223006746209714063460995422106060371080513330184897463321522915016211960166642914042575711300057039314640060247607572376597579630152437169899680936524477897863467110596324676953055682033067882624587033958425029454246888914162015227645386436060041876102716097758351214473592583241099882201789983098220610001710331800791851131422221666938324453653447589380547602760443659661795341375094288711930937491330615717881048372443078340475179012517140816864863636139538642843032048446624161190152740358806832611662820543086636557771252262124635568303211244569081902027309563776913332057965378365706682074761471161524110646880493644664993956191819019322534936312838893464942760891786803089434489576981273088232604190508413657063955017785310085095707537108592396814702983108347823733435093648954762553798828432307487116719431833913076027189979222170086180906968394403337471850410645959438789616710615283050334826547719282804863344193486027294851230031459930855175275696013908984342924681795221719848466564824585136787047303784217894247741225312023680946104710167131403312060154468586975694219662888422260948928264371256640120621856861803962165368226271486547799901795815187630849770658788283826663026129965741877131071559164037053530909126618574689003688555246187666705261140906318782844509184001522951497216744953697512451767233075295630410413517564749686539320464506822743597944275771520221185846498373002924888118504321526242312842085241405399208481023019259203268965221091923308364453669641014121455104636471581586141695668141875223338188594989824031949027943428936217637706151991346146378765765123328214392523021519275411957782785642445091130151074517941591158790091936526957575961942757645885444150395722861340120367044226515996448872394751633365603394031335479825789354848572898010363155629316008550388588363353139131053061130258086590303729998858429244047064181430637912380272770753466522923229586524504782106054764953258369428721899812933977531236265280796992182827363222536250934083126809215293516015393422905524696445751198061893563729570409212033416648279172995011441854520483411129331537610522517089588368972300092785237958003790674617563002830855785030412630498881356963450131511735835109099231282320459809609264348188899902731181535330727236065820767055297339733104482373188076587564312748183271458097644087661453948868360064871879023675726991069562523568325310275885629281138717269257259425175380634322829551489103696370515609206665136050028859300122835185622136301742407877957192058589171109116508409321914182437150187915940405326857716887519313028125654879098746993484397580818198544208320538851629875678540390566913500327877058539964722754512800536439290268587943543033986988744178180846343482334648226451465728444668729525203266504298207309600120682215243715863519351460361877018813090440258905419993337927590433996127653511022043289028560808570732685962539611157949834425566998454815093322262796191689527578269897444035386340005089075977495510966450789428838761643080886444091447437232441593527829434308913347714834028633517990778316025517794852924575244399518188707708826697148594650924080712260461443115086023723280526238772216554641917419291241742371583944337354745047783494812118272785079047635380499389802120570938038426281731606863780062976151734953075980755488324690391640897023854349634268090887834132395738246369934158183416393801053920962923162449680870444662399933488084421746202372059168634084974113520666314620981549244325244756100821228485589084643845775706884762792895805462485571821940382954735304192949108894555832296539153674919123846104088599402008480783012994328194009229792349449798974317192753352667171535193980174584486285557904379499615482281555599072659848033709068321733065272709886115620670718231409293133153383450234553332437763243924040592181070336974810094163310214023700645179276307055047757950725525728319288024307186911587248737217640321141036537040350647225217625492125629079551973078615693729662491441557038418666465597000957340351759369782441525342128099554870161471248470684796792544179437588209031805330586009364848917860440364638780308470120683504216192417928444816290099501877006887430162410994262086637401910182704048860271458149489691270071934679159846467795327974748352120487500294417179318584434299693432213444512232384120262150356711908424282719833783143253582173876454053131932568247458892325581594817376596735509049964378916254963948758691586371071263226948209051879305175465533745484963599752725830775363518616219172532058918562523138385352140407223669847087349527440716135469997570680084315518184871714194875283817802819044127847781979099765077593190909923369400816285415859805803041863748809719333204395608723338087065509479119596006932626253738375432439525049527462120754109628876514487427372620579422377239287229935860268131235763936861863743476401131894443426138860435643451528611831408732246146575618450875809853513166676339857575779236373783473337476067843222279724153653686516441401432604023534713580414001680795362277666513299872179665481689134491793952733608984627498819821258234706471052591240849179953126900651017370350652109274221764484687942624173896258542215284545326881807454683190474664134493202980273801025613567935128643383175392461426109043388422378020816873568674098886606044906376081135193998656722968872204951695355774310139636419291711319609381779138983237102601444326794221996207490122003963027919754036964825014830301853672176144886452321684819303418167225854723091634972900145745431517990291229660684786361745507745913400964047810278582436168627551140680257962575794706330761381630056729708504492771581846565568999817588516427936242148169719710235648540690024467735885686847809621191311585141892293540961947863763558344190217501747742949247280420021504071736927524088435525376967676304577414498517006428507081596084744985183645197766968454746049980604183404453171364560711701904674332892815969432138200402749499262197742774771077651889701060856964818657988313228424390588675561642479737784543182039850599302413203888266723715283395598834427641766938413819164153418011740174548137515462767023150619557870145857063153375835138452683007826538458184874885445660709435128505160703725897681747043648111613778324087503982813627709615730205775811050073039871565276699066510714370112874085033096189256387463634095722422631117284580531961400560398368118680469981790709462919968150062120802360153205101289933442116966940838994580893135902877185461297078407666602497923277194280074940895986477171644176915257302695601728196340774703539217472919695297031178470874973501908390482877779256483153809426943233357569408384118390678728344201762617600177402324450697204021549275263083840266035246627784972796118583926802566682960640795112826520631279013946442451533118502104893758167018103333681889138523624359055811102109750843870651994445851281372381905820905128084952429147843109813216983831547781024394852599678880293729158227720438260787231053109056133075011029362192324897999820230127431420371347403961487207148618245362069292699191093219225543677392355320414767526466702443284067150630096898455537391761723729921338199530747116999770223876611164136677314871548169974567011321374321700948890645323813170589467044372613739107802457710809725572675145773482201476268767325171746948913003739557129433790508924049281015002512160226657151144235644894306566431536925992381266442900732663579730927777934687526938706975703534811638227783078041600852620376668714598701855905536151303276056293211789337403058699211618396713778304302678420749173305273189394670013898341646399332482870916745480527791213298995548615321319633724754197298568991571462658366488544393550884891422112705165235274621741049459829978563461782249682719398573979133750001374527718656654148625914662075278588303152020795452583451581522704834625450601326642662622912560266738958272167952722395356630744630705516536455780336037021885135747994165287388222428023547287838766928635396748211244060160941464031345976914498643668135575299317076035772964865326438519006021450711626855542663037088248106860036412222064203954516823608791760136589076717771120042451004922503640051558834422176017965829980934367031122223306689263218935507169368187972036153233224261189570022643798655153333492149240241725355085218206038691810200192234423560350319703191823472238798793502265893112644748252803549204112672742791915685744429755306451529753938695940400468103227442444297800339505302038991776015545205889487108688800311634055807203932083553753670183923636581213772065141437029068266041159459097737430620133123070208600274363015714225022706405578435507308568400188530689200020547094340093570231283610156707989141133873027834380541984906162961568839386693433055307894121096989789678741277468478679678652417170290492511915308020779313245671019207064124996530225009016614651916870813648558359540259717572292923278355829725928095754326549349013486492422651968299640509182821224765631413207437092832583675413625058725789234132341154891902075518287569300843694741644882923824169945644944933679716728892136303646459592648214115752152352581482882782308530390052369086643491291446142315308235039738386067162602912185716111952815662161146301737631278221432058698737695094597016235116445386578346656424865298367720973245749301046504811936450553405523510999491851441114231517375022498516424300612234612595642827111176146026258338276721383449570233931821628208980090256606378368445717824544684350235536005339764274616074225607143397870295630703472869548036488347705589898944985972770708370460320358028915112105679602906196419709397700060076917462775554963308410241280223138478918387067047299649028175395031258895531197979890625800125020566976859951903746969967098771300544521715185086324230293518604675049035807415334525498446738091822102309323083804997437985688509384472562413201883917366619126446502351651656074775899732636366439770517354033370999127772388693182629224291648517762648706265434150449247061165706149884983154402913892962300079266389991434489740092715589046172553708291006931173941865605062842541202858369400098342821974380989948754549199743807241468968021949312966550594586730859112023141465795565010449861443732451677331691333636908347558500902809618555386689297256275370376271827737350554369913271581746785732422982129317780023293048094902498467568189850628422893217958796313738961118811269815066199263505686769730799831314241214973079915317653575882107588100884094324857168277561117226996472487531394276520706412696846350310203261804730740512946277177825815812023138031990531267300077799465904930196137273726098666133253323026476493190350106421035090368617539950701767966072682709724337120339515330287757012567348489977044248037133658988813609351605799098620895370029089840604121622781194274958257097470492758746236344961834104786779924161001319948410678511373115437517308012981101763232315832380227380970121491123911471660513808914810660745159803097259805097989928444096567830789445573890071353252749185723905401115754954452134138613323954513131587421269367604054345027528684517552001765136810579740156421862813988503751356245270183591803356612463772776013606470516519288703485345695991168363832521676904211813332908305988154869148893650293430355644848430909226356020412191149179283725630965082155267182952804324787330013787206069761202248030319975337519244762573457917360301437384228697004887668654652292545333593508447074137690184831629674855710617255376610598127949688402340391549038116618296124158609350980473813385022739433462965383846229993276141634966674653822407095134671156654627789776483540092029394921339997207428870198207052388107878550425078984464719849244277121309293159430377975608230725646755280719921836746151847665369583618768030205168422387505313259155743021350047401957967285688983115375601142135351485411893196804980321520148456222002871805946781629924051894069689836625721501701154528052063340973230521722590290567282467557287516051208996797595483693385654839948951969558130445691318005620598245032055976566257636957514564491918444863397194421397095715913659828313235886016811973253563480936676856799704561648161583277472009391196649859123400316419500161428756630533483862219329932505685722157544279108786688816783591219555381255838097414295882631251859311881723430618706204790844347500396169236135846206341245397304409556236661934621905370690303947477425701348479132675180041023779471827697533373204987453066611864190875695250043374973804668430896130045634599628974179455238073044162766859864783162503395174228415942090749063414632099548690906970136692448267797400279962294676585389073866050481471517139063353340214639471091658386897830861870651397760220522912028227576623990738162894379290738660044715648490382076358194274796399856041998204456448770272867332765411224738284971553165523236158217479591842329027894192014583414059576211464940039174446645625312235628893433144221417683254547777479531132176816059561264831882840934289844624664333622415868904723004502419625362166553605002949393454239218658327694150857325326446247247104990716733318129467231279147989103349996770389965523536991308657977569645068901400630755118338990861548818983411531920799897926372779422542123396673086231157919868561151078202752656772280213393870655316106045441831051155872286653370026401675656490112596039949631504965188497633706168037381564138640093893003228001250257482160251443057273579219747094475073974286133981865283510382025309608278549085408593631853141244559806654992746612828696807600032763557216196763403753799385450590194395862847971559659470898381992172995343975396854148512461302867044857961062637075747095086583025877125727742793752852512064328631911650037203576875533388322893147983789176861444378976112627102216330045703107638578800380259896313529794666427535558989476119086694023227230860324168310229318754414762489557032354970220855794843298328998771736852884541702457497558382709707624170218922416246341072018098883879495104685976356631029430673833972028276762900344963482210591645811008488522831377227873610871433535182999060239999810045039584673377700857711031895965820747645016287914204074373401524047311446191538277614788344315471762830504018346690738624112545797146617323276565785366360750854621279292379994734251839314138626208428549981602683780336647480039835383959545131203494711377173801724908277333355973872004505826331316329925507591527171228701482840048345152047445627137439713688841321237401949786334199058752981307457115227886455065249603459346534588561146029830573851894748036823513160486947700202848680788575478024396042908859432583174420958156133939669893599561592623335487018610984797905986481625949461136691274819206060772154582468832215632394342278376020054014580980185572527758110617408745456597636659528145029912565545165292318295071509634697068966970981430480608443997811342411124729601150804745793836853319890591168305541105245164797589660694225092671866244574133445664914380666733113946438991506200505853931235261035600985519682234459191509566596811044181080021978932013981792476775767729034991728296748234614954497629010816512724551952912728522527918659795170238330952468291188839389948200875197081180309698858849725913047940773727196649719776367956328754828159163595537795874437822907231139090304933278334894794607449836497431771600806574773289944557963929638607182630635771005762365895809952362396930138885763813804604953186604687052940314009195299500517010662504219933279999574851168627654557410800460074303600051551548509777700539371066699049175584687497689962618123051676043448034211474950815790946835292836351395310332081914107693616823531409778886961502719039943447315014306571309077903692747946362857639324332498788913570127635509728213893611855760827968679945340470760220184239475392579852419685882922924858150809012137689432037328120990042982187695959871490701137271051236379264584326876255400448370848678208514538055447513552459596157302821386298843372947528520914347644879641669201463673410609691294229315326786269745874631026024427910829405302457306908065243546710498857572124371444397149229535346654699412455672249642948228276851063593226881296830370752499294464138001186410167922089174834837274222760878580792626475523325807662320552322174345972269955426155050069049654069700557146353531639024374507722643998310004973794296180789713190767183217319873302611814778809481951196428111643266607677627681209127434755765532629930835015241303764654840116568173528694105481366493757883173801736997218598842444567733944188317521981151067947116852242064645518094729766357212655729280588861560150687311758155876434393042790179559276446766316211235486398286802340094405235956167230770037716102566718268406140874200158344267586684302277226900831591500999082459814350792526977221590047433258663162498501303068093382930445548703519785742741691259769257576040642056748381096971822101527149861119593593354761934460475565802369378971951064223360517971516792127414984957955430062009848211981405171582118515681900168537953779875125278675550668973322504295741632285681061943260907458332442672130639703858830816542498120974281952215518032546937269703320744598103606719360112476407496119693048803510988481097964622387115450922391798888997043733482811944100570499428217376758383804925244308581397111452425940415826379800744512199390018146784006154145576580048720675733764280222643776601922368026242955828638902404318373963978394783736564489824441696377597218683547910646650348464899427833007839916712090814493994971168740173308947698073856220910431695433148982842157114970092009752895271939411962982487305279131107166805257208025592528488649438120838845069138951098715377084097029732579507250574835138503128750885867011410567558299030613488773710279855308442774224735671609445126499387902526810483382503813094314411657037285232879663987800467345696613410673683321401548701535893856053555671347579819527958742884357581807968599286996006525322232295594976971611140205661687662783756199191949252002232033552797551522921455730256613265998216257493603314723293124228747994998234389429996692650949638410381400440994250850013514288069989720691029292510515040207874528022186629695905143730051652034169694657022654533156376984002529558661741299597578140513601741022293799764701332843413231976155055831934960430742259668843247879081196423696882532498382629114079334920509197372719030064599166962887288006581768740898926430019914141254343221019840229576980891151173659598442264474086614110867100379485990415043471862067462391516208601776753387516695611553322564600463258185405369571261258570691656534541158781387982888180850363573371039020523846863100958991208183245156365450110399011564381399976911619014185659874581130881484134043123049234776314467210346337535254724160644322947135010988769919235089966744972190944482567031586698355827436425864821361396073488817030443216709640846373914389933580944042576923326494877585957335962896197525703301769273549332185888752673313121035158115484735786557256259455699238390655870773359930287340097509795953517278656363698491698685354518260162700057630953288620763829980851469519713296484942971195965244459397057422102012184511201698787496094573413176330799683720144031932345616623387676364009971262735993294979191838286090135931241946553850381243139329436858837787031276774207271198725886972393650312772398896867616017738530602255052224222779396938516954762172279279295585173727779686841799756914383022219864890766953042644125509028182494622975335900521658860403684953221769090811969984529987007708290984843435802126641450299909917470579242812231477894250632524573427953304039819370175670264283811700516086897310030379946359922220251821946848474117757283689481950223114683658791867603745652580941298386997984136869401107506457325363999431285788437128489293345078770714545461162232166423772097338584772886585687116742631465165416241717002522291687410315215075616312625826768135174232835709618899412480706208151545384904756793405951728904355800628631799375665973039416856894407726020567283307474208139409944833991296189455080106850231116029352927478643466370109299990764815248500820531225886767202859888693696497932162788193031724746459525298221671530328279483964294815991842974692063974586447965103988306572989192509019147403165147477110818745836161503038457546812355581727907517906931334651121349491169524577389026231567488856146270858246174078580439024420733649771749529435421209175998621085578124146516105128672479386179281000365901709070794676108159706968821727693583338198964396535894202196988355848746377547542453202821543619744737238007331098472948797918057855296677150212668824180856729239305338973432245006102697851511341576159007868883455476053980690431745761819247132641871990696272783302951325805803140716920424251564335154710774386104371707820823403385162336871698627184243266468613499348904839477041528163975192541141220342642920813673392483513943365256900079306855967848248994243036133847898773899730094771773528073444534454263584748009933678934460089995442808951258058027841227771501335148366884370148486094705426571735497416514977321483711516887119930957856777111629241046429269747924285770804912655799075171893781742653137060406906319194889577327212722982749800824923143060071424323400021618261961223103994334523257358642820574872002111054258749636685612777648877086697072090027333436815514065671385243658613500301293426638262603155730035510444522380911586947930368143541344772632551489426108220954631216942963024508043044020388004428287497759677985293956618131282227872072610675091104954374263895229826186409610181748741591960356568522760844220115702727246523979486733345120200991185729388027532282647049553737815714193610344781197251646894029017804978697219824394987727061478112068949957326542349541325322839134778398857497665969658130749841728696190891943423304473255830614687001721725417314745802740797189167031113337561675507419282934888375464415249559940500589714325065493120236102423123137995905204307496336764769576511232777289605770636648657620532641788453896040582144040990334101574185795278307929971282941841367864494903637073004822734497536601490241051989632211470422594623184121325436334417604847845649761614503358670283276404432738659319926710098505486026220499289727578904348556948818504076197372090518560978220915322572679547130661671682466028659663229871169040429178274264102671850638578694698640899018592684038043146217991615025547996408112981117761873509316208778116117874664308882792540640853838875396357792411169379375198420229031749212597050140001556023132715221631241978407933485047083635669315385626582986242383835998527491824653001151057513026821207801101621412537764503844239869552030127457160509541286467382033613041474112431449378738857850625774562442453106326743445532906362261340524388498181928451191885001637923811138558538608086515315900542048473657905662381538339582301739148010712938819679300307836234593134538115391970543400293739507409558680220079741532087646685059681772993034019373660116713113261638695982606640287535555393145446238697983521755306925804778180566201514311291817848753742662625993984935308575764494162170716273838702533960782413662057877654897802438321830994691874273632232475064200194425756234455537624493801580911384089787488508006741197747884869507437485269948234668904619893607146889136313397192412530427745619888704856054446703419939269418821431816571309899478354900104604942480589351882346130630237781652005832640379743835364378521055646775563088877876699114607757671789229112533991669555163238106847124459999636093558658202445774099728294927194246234031104755042059118065997290763617585721333102748834516196307238948636209589702578477966856386781883212156845700339659274574667313694971284468145362567356837159291098205492905603823745689582141836166411709116173201813914556335476663304639311358522810012154684366641583534204789899873310980084955997862079619799463719981756425011083586109911956044685455238586500165528773538912776486782213419035282546977511552540726852873607717233265214926147300760393671149206898647562007865626077645581969963728879430726735442596890556447593801210536883195974652539274524759253943224704254934446383213783091965923007849811792601105391786593872921031501219271150159320890845494330012747700720583690384493764157572126860449872643739309798136755256084152063053081462205414620881066699276644103702337977693692447686947156258777997341286089806250542510371984160161771324339945970644903665115155807038966036964355398306525069847647316836000958170605719017845433554570613166387536170850985183751189986132051560647768848155629088256944902321811458760600312496007787311682769609701816656917241841575877777333295116239784124624555524372204943602361940601468711904396169358164186357517904219931580494257527995595147589701593490135948843778199010248359782572345571658782834178715783219104657796035749196903984758166320191683904022050868579562809721165418908580767337346648498884184048493931248668892274554786056764588860907140447466461769095729018986206108914489952408070169695040404752835047954509646435837496153126922199828730054741403597997549462370078045700105186573679382683519102440585269955478338170662059337444115036340833640123591798162931453238362751439206708715906949055823289160909073324605941235727712703801612547805065742205300472279362111110508263708021335239549795758759032282181152326238623657491696620393161234827652634732698471859556766148172189538026608474854496494615225890893662333603554519914871480098375150746071671222968790504973944642925880745219325835003719496573692491419257766232214476817871148520436155184432669621447473432639373622203156354170606144121914513368770846224427091207126849457391993409792204943957245101993571575798898935262863171176868428422016207755705760446865501114515754071379473521681211120495620696433448819346276142917106216622134788221138753868459492198153929581106920348362430556868040021364833949800043721797552605760239139036705920624016232897637091236090792935440143956758904105041694961851006111194442358256407412293228939986808129340514151447917022823271923301208832098697385563432557662967887565066726240840816523363990265639707278643324409501270977028416195529032231759878894189504255265374005945866898650543558631887572615929693977565598621492185363423198818281432084643287718074522234836878464851787266521047292067335333123990007043771129649366866098413877007857032963836276701858080497385353166747320409344976909785016877148555149851091827744536892367750611823250502362020012103660483571031807547784519790695558329467135752691747825214709533548242906182597794709266481991872060757845794642226771282697114881621592241453975755858635508487199100524431856183742384454018651980646458737628910239528068474398988761328975356532913203545398669954022860020428290845768518565427954863070861079825524691817342476232014218455915125518320452502585153715600742581775253426583605380865215870306130610579057871077835191518288493227030882921711947485237329201447044033297716050568046882324845999156353285041145651167624275665495137156198774136739924931132945867607739191979112674094861100260692659075916013792521409922703529133990840073984767130871712976119114513008540815120084758482279139683972934012575234859787129354188376789391225785327572740109853229790819805188773678900127753841271827286934059639047408273786233252050168926918956005482877225256184821424878992006985387062677573866840091244780009041563887370729026360526859619670541963819850761378280952630570775508690791642527244082281777484541972946640128887152595226592819484519337043839914449273043340111276146214110687813965462940937026905256525715786434686379207824396413165316965362443171744130552187421559897813695260420257733324873330940112702445453957045296077050338337593774230260105157419781184591564994956327538340937786228659717072477077770147019645877671929835676503197969079206454041443821171378202290866156360364513368889714046729507014487260004747049879266658874502521513587773479278587512980142821016251153140655007981649665206692150769465713126920796534225939670117196142406957420053502414302611488745661399902469848265852888562016384558532315211169724017934974157727295764709742601678398527903436972403224897100244483630217998859942005848808422587070218298292926115405424843957134736408060120359495457965280902461661699749067691127872777765136572356266619178147588778646505692954192361704172908632045293428434655350276429465900819947918021922338800207702012803118502477434658638596875971210503802008306226141974090682521175112303063209969484773133128448947966332624116299360336133316239800808712066508238143946126581109549538168487618861781364321235541360589690871296300519602801242848682591183937400266317853393406437021820203113655470857794132756680622967674548672169452270340259135312466290338987738316080158589608832650537397927502440752770014019658299774209424188099833149536934899983555711712629455585018582539551215878802728737911496994304479982995379927114407206699506780662151389581086861675337645908971232782242178935932196193739028004027710180154212256750657012444232108366873459773526731769354892226733883610178323855493523417476714843614643899141642551690317385745605634351285796919037581584800474240656484483163147773791151823795239944875804674144596609668670651711798137544494173941393187970789630612616677920047227076535193954353205354541488375315328449853677906473542780580493885610069923516880119010448161429476220818074798768729676139344654255691256937910697830116708867057235833940854377456664043227773274212864971624134415282797218113353889535431118312555641806134338526995649364041306944209036492990160728509289521845876445505903968697135409898796397686050424775995656939385958800206005042751502557876265016697196394697444371517336523129347378513319995044623017892481901480372850249630141127547888894951955536922652847242188811337608283508613935452923012227425768876361046895183306006000671755444638105825648788653333248505722569344626646903147230617479686843981235842416730318815169017464029874029010448024760036896327700648704125438048013963765866117047715466827666542371572709282284040146924741881792742713619991806704486000951693536261822474202708765951374650100467005255204750940765173757230881585604506946364242440887823049212025283495882579894031874039994206561281603273584870479500736440995457732743436643210189837143205332823283877792482286666193518946127711626765604439082196400605482512917416608331567791041623817696544724637337613115395683374550656456956085458232080501967602820266275630950706969944561417629129408800198207013263204756991382809157834069307844402587242319667408655386809325031466618623274706878777999206304146572018915210232706065052808878088069392900315590997834166330954562587960265208103727100991649115546186291173207608856999340419872294356905183285231371066796206280167444108432660743007107122722270548414052679121800233926369742424371110247079579237772195217661611996296487172893563920644714700344747366487008694585871143717020552471800034473212051077402234639452557823564176125512773173726177769427097650324368049014797067195932092117096440046269372335213680833624574028302641806330358263825575809751750290997524707048704645488132213577351649501077484963742518234050592551662220366849347593640372840290023977279652232533930208085129162050775039665536669864280273902662877336188835725353077324428641050285305604343359187168880578165303725401207800201139471753046144935882704952303551716233430952570831499778734390232820410695263822968892207009060910761302057537497170626772109099820486994322668414377994962634691035542830452135891257374538433687942408732154506326849813331915358585854264720588841621103658059066383365844692504018828421879852126078344769498632069420526728127017330982410608909499720638172066039685392257837944078823208884917281436397013702649076971067046886804911512216782743606183954438849446327404983634876736863573798070508754343713988073224564676954690465626348349655666670618319289837075669199963548846516213090060465811206752980891886224478659115084438830411030120176156122332281519561688522506705198376085414829297680505943196190092812538037881087472907902690604826870675941286126134869367975354154640772096811265707866914773506226679080492882239776388166569016570870725005988807878213628052681729221729848114773099717109989722551155786733508882055324603996353727951293193029073584876546584171488296926006969779817830314367360483865619303168310706818919147656997132178204643342362272296507122242959902811921685763444802973338207960526433117304220598656362036128011418924522545266602461094453770404389502647575169259589049451844472970312482452655440552479010946909870354979071912675809814546371980509064832607254814497337938931724593973775323399725667508806541995391696963703158161268775873519864465846467955019049285901336201673296349192732291563779950706388188503478930581326108819455955245113209708762967049795833648317669385050089814531278084494428133026198107739065387881930401466962311934379035850658389692215328890025991475662878496156403341223283262180830236228454456849896217275931506634030962316745079623464005090441471989039440954712454859035279849269553862051871915515686628937168261344519501695825243132273048400726711135036912277142346981366804817226286662289290741141548867690060205352083376686964735502189516006269468078144554707225814260526751334136559293626658817932253241784961887165860160498737377906677328875782198443378158528404385953900686013298729455420507647639580500537738885829981063651168174253852790595480496787024913778548266869348284256644124353804157281855591467421773286687432597200182996836664285563040457228542542655920053125102636282497321404043014281280934475544568377301473102014978185976816100914593189310281795047372126911083659860749796537979951568005726704784607262495009434710083893851710044829901103140092453391423565231140224036521504682937911811284764641356324862734603554441246990788731409735094259481225712751752449457135012627977317825980491404537318849291847216329983012575043044975669710975572181905871927434694350326062017926239203524051718039958441033563758404696825452323576573577662515544605489593706090393242101518620860071008093691113584245135741333427204651357196108416403211158744342128085159026399504678737283201885594709021422297804113473532825800694889245429400033642310870467428103035136572495042163384804758189602544386998904218723064853985286968765237324696503886443908941810671900197526305897296036749087405729856448719134571408641169435207119893568330977286180471630590946102017791460851187952581068391130093927902348016243957367723700923318135697562693063430122872611640905248816787974303338946082884990168704425459754579351802685645311542355131740672864278725066266777441738811348527055777258095375559067595613456343259352938011278152157471934998266542496304379646291164175737228687423914003189962736553827322515815217938942428056626395888962095322090419816282700613003724187245109579579612350537200879270556576219715715337695162894854175766689802386337858482981614939371378017043446427432679400975399120767562439937351806453627806079368058122252715151240454193189429062568804729099660345682964337948153776862227917974268996734224266386322300345213467704603087019915887019722483061978313273289313382628247700448864278617242299839490616086748601432116446232804756846295720040739179054201582436890780032258478430470791535144960200068941310525634890773338381803395597760978650348637302982448695260950161799091829877735686443026847573654169120182011780141266679882352656402428997972043558643363679463142275118567802567457594129584474484577760159859038288995058102035776582020049485076242423140790248177567670262610187639057765475530954658091706010932568753908099940186484162580659376124249560262382133153456391846121547971434802782804885572687924290829950618255619849227270951629100624556700937532194274618215654332472827152158711317733424843970740070838236208586559796791916628351794983922893808242002494368490350277228145837579537112261846450004614476032526346716157337123739933481314326853765369157011332496004080113417637428803717688519426443820938423441808661020170806983661387690029191507713758235803422966659493150900687971442910363501145997338101829456491467570435609012197400725069870720959784498169483662834475132336453660578943195787968099940509450153602350831398350388700151166762968243832389695228995749951499791523791671182247437577207528433442590691065259801786692678846676291232572658152258872554234852146666350834791781423078802013682350739163776433315468825809639394476502028185304835436235166682109852959624018173054631895885180921075927142157503493359200631594393060347076068918134597728231321374623085123480695428557817529997171862726311487462300666171995082779868499107915845332646899222516673147826038426826473753502448009951077789736336307181617720493369483427917287086366226638355019422221121794330564207853163874035062115581272246980059597680803318310913901301854242366689080934432271744119658233055192322379162504805295314012454332173617722670830663257052137170067163954675125367633048360582784270565035629183694835913677481512404889747042037427301590484315217318198625615113458675522339221207624303876098538048785605318357246649298855886885490479705269484252810319939692007351282872840812415021167534610787431225088253089198885067167166426807944388065226494160736267153843119482607255701032269442588845009764503106884601894544561179489669201780064302258485205902056911968745250918706360840289301166613957134490440310062737636378966308753625724501892545380287649382760610733766825110251180074968553050431985110868817454109299085665154018442364297320524085091328386679474330111393191230429278841310204199341640410381120326514110406154585576182104828998366822802967870711774827223380477236832261524057977702303610541461790471924715817190692958816953296378059444443969100911247869166514730041124331566102115562010058260142292747294032468702164249046348355111886100501052363784991949541658651625896436833132146731263222765766326105643351086778708937574522377775812905615767594770322096513018280987457214446223611302416056591689584727778436840212820774769940169264304283006459840599479405732194887936467783177756329483168242425385075347893534422811382652334939046549200381264243820380242882305822298048706228770411165399228482152484437345447687081170274546711946316603390643746475913476546520801280351746410327795621938974142764987296100017652710236522396537222345067007837410328361004665985151497341557064014072014685546147131121247206618676181586550394813666528464536280276167679020526042265310281348497161057741385756593288694865439570759366782052415530111577997477497130157186329318950643723187490563297333736834325238421759282481874109137252427942549664456859045590265187367950250252180446361032602664111733233578932260929336996323870631290814905139978631587419559372828705558093056307249574291628103327950869610921642622053473958277573868677808012617759433527264390801442947586852024741009919617757386593888125624507565419757825524213552623151760313738673958399742735055783758718089378946642665387983668711337932329611679613712870047165079360504174725124095552964876984842701207695292739527952706428457596369455453946809908094485186648881459815801827263357334192249142958314649612359382482317798072269866389805614637737195183017675729369835754516104999088936010096901595551716454783904352925464736311349968510070693493754397772743134591037870047386320063063153541097322190059908032055318511841869176447032624559348552615602517294905888258055420508439504037397831591444736486889109091362546120189062805355322341711506039827862973169325999566957519252643452746828109809691125684071304247451158779313977752186472385314450018652194408758980678540729576988842127304303524101783229388195586313476768567181914363205587562825471407921031914525273156290374131185586966273615879841564841801238776662883798153833183212108160355734957177241648049479020043270624124577607525383686182428988945918733207037248758167598241368723249437836142920088588420017242218271898356314557239017224209270240841857210362484830178783853954041637417975617415434802960874127232542166788329353281852127253160286327683176210634288016795582093037525146492813954001025201819130909102886942762771454612588501144331814803823447650021825380567884433293394361023365450101105905298729965093485680321674898174750676018206854876959589507657534318771174299438559143297909033262704015123392075204649995983234579447253993809203495797049253667146499146752476409548540839391644844416230268493966277529287010875744531102268564524478072305871421508777629546720136999982307657450675809988634879875739960446542894001075482597190184108219331603275782992793474320687183980345976278290300585944832499733306070398630922694919912917410853555693362492674557085981527398214710855561873316566783539232396529694238658169915280937259620212942742484286183584508971184640788603196148946550907499755281087191370763250687618540138124332999459215923319996730102495266805187508635099619980669970307888984307499483891445162291248939308507722043046254862103462768953189429900823404018122759537352321199512995810579618068788059729804074415196623065704622345848672320522612380470890308477784230953645422541743920399068495023981647219856453679150199673827556604686716794211447412452398499000249629883048715976322733521057470342594143776599410376242828840897133483608856073512930429180425032648859602853078551400852862622097059266281357401044145861596485359919495378146647487288467455514374859573095084047726258839839783095073954019306629515410070647845734332125399578759071739833738787357925736260847320388143449475047636396080501091360554097242021883762030402226037701116379690254687939820961689916093877579161729348960237867245674510573738514447650242796131063376939854895029529482701367603604149024657399084500883016767310107805437175115356868929441109280632937619622792094647220984327777155360082487031568449063567527755722432607967826688020517734281887916826320134398924152769821446240072274346974667857020846997622112015416863868015252967010303425640958719775327046548379518335233857315045710264113759108537108193462053353519971762248187831683492649405778605966977388950929545727083143985632280341546118436999511141097341209252351814466263409247418799601433977868745588470554817508808445414721946329028517945643944102445447121586978291472203789290268788962020979756950673270183784366928528526001877900956116216434077784807347551411263162212924585375710689900551212678658081692081980967970949263144014772867273764712132793757586791654034164355096889540237241602475720466998940635472182045881194663244356061207818183352982089690442321657072822068474049171528632623821813956036132248290034652222117808603012662242251360131815794360476141522185363285436939775968709657260021260698056514793096757287049112952458836558271712553842860081509168524938093288079093832187469754818431901139055594201395787059316836871550812340593662007805539001132806537354972540700458878619466242979559952915000634125758411112994517335947773387303993516145566381246708678768308207158318043159148066343075469832064405409994516940568153725960773583967365788959784017913220522347243419669892540494927073613159192908214295830050890815258984324457801920778886742123801531452589105231627516022619788409338155559664486027443586489487436247821376421856804919115503053470010972834340059022924703635359454782684159331578536209324596919501836987842003678265226032855910654215325930329870706118021953451487727184744668328502316961439447983542356697007326201994214381054777129761556410112542116154163710049847647016192111643004763900043492787286824812602442614880030545004999974664449140022693645875514009411019168847095470283903699724298829717259052261475056333598175248312175798681207379280209627329109862229078762851159963291534316905078543811259976085439162289339075685465154724108239162775174582243827910071588052776255651750952976630828055826433042724350252877845019661918300284008855542224326023328323047865963099036051632748790623256462576911372844708069899424554850669423680359134976987241130735310072621606486855089560027382138099333294745590246174969724505470823293376513523253196972127719895319718586712757941641319437701116360407506685948096107652646187688343389141795180755566590488754520993227162691944405109593926515419738903573896420122126694481706235080527058349390321317713140351464631083392300710833170760905932978664196771886498870378766930612429763760623937269146770111228951218084160000838722434043126403897349427190804540811445024641784306470428433540517590215425503242638764319557662030145484261232552723325910283184030996213005190726816383168640982338696253442257016472396158207360111237261897214939117345276231214920808784215306242053175317249636843238335200795981681762423491563422120950905312332518264637858316676492641503484582908468493966182247086053426326501547695945700454625297570368929574117852140735492585918207408720502694553945036320688538123888104967812158748025502541429920346463408054489150420162793534478640534183530904779106630828705252850189566313693014543816572311011572083932389304206663361501876895298883690451538329647273358530957477818424727863064679330718955560332571558849852798731078677328864923891931143925963300917523378706633294898288751014509653072147065358312905890770285498342806854713985436581839113518488725312758271902517878849416912304022784102285683636585042973314464204796399770455646977353126345945923102353506716904850601097834307915106970501116105483407431331078302225588772418608731634229603285092147608407640112242554931841737802318379443037688644248688336315505487907699314166981372670847425154083181226273480876270717636126839765483189872748164305348384647457538100946873551064182078761918227624204671946566013053654908106178044148338219930231613251646673298559659632907526748385817567224335276549349670297136399669827867607068162803562043583011314671157500542745666935976136144142940257028992199568856786883270239059058618815072563983934909442418304346396707426657646506470437432023509066680455520454724798070438320511403816767638941925223497223724619728797362921622108176343117820604519015273381508816099632953955602133644769761196589511949839903759484393554559185305251630098509674356889226540459393717910264601325023563073282100118128207078271534713004772781282459471863497927006145606832502818591116003866437415913700628502097505700909078761587477815208456596411566295295210934096847180347624355735123630975076936506237617954825827457173569966522156800932468911161190872482919644474233535281189061815807460859775934640194552012310455764793414729728385040845702028214323233263042172889119724524854136497856461642033524756265435892276596958923208019818290942213295404542506548267926381773548395733181562240646597159732587185952205658543619288383856818869706211777290346780950507152834803230905632874267747031919739034616870405522469574316401612972693426531859241291295509789653121397195440976252201902649011235120428536378455601566119583827613572197672420666476488502752139263052677988941028854794519413511914223161607095777380001739090082328963286631300711413105570366072590076064957366940505868120699052330659681149473303220868916775145267228334383165265507314997253371121398276118175015427359131567475402118464086638864789336220249298274605311452165743722068820533522314653906002958091728369428115897518964259088986320637916021126566946272557983270341289537691688659668026749884524654760113041887480364235330798869513447497485878063007543261143424683835770293440517869165454965417797885743062252578559191379656943799603513815577439874315430280144242788844689233266407230655876831568754473062657866990122629250865769438192623857549704417086408797317513803239662266514678057298380080610395676538622568766937836258820591862528494347896034262244140818265804760818144126938098555632307227227079327566583732009208594818658266380342762089194360516438069280166674770976154530333599845533085236923694524139715962749575693773306370401026332762122008304115545341758004064149787854261723493345217792630099040813767205235197900535294832451652491159070640047453489942759776915004212743100475829107074837091813511939682441933187563108955390710528540015257024670626291940759420577960042121239308361620427644220377848634817759833346864203883148131687532748525349066099051939507144808066689141919178732016425027691647926780039498606573184587344181705160486057209223905010762473489787429909982167401786394167092235395454522179827515549047138084694957481859516323219797749402394177178514822761930614514601432803322554761285894022047379645584007081415561660829134217868796716302929726313782964353110924362393254542189641342507089290681558799904576979020653860549806116132569525975361021660901575782942198042730148787097107991783377574090731263807247851821868814635854083179622707265288448012865273455609290247347944810840547116617689735490323947327519455005788745640632498757480799866970182478624063319728456258916445952687449364942638901810412798738366431282544650364464160284144264495977636566128777758538241045004589304218265840261046946420021593250386591981748906617410899612388069574066438485456056138759819629368263966728553269031176819373343790486100784022875336609762610928158597162678879850813336446273919693712219301992819390360714949829758829611092623871880550377809984440502974517113585716357320968322426334978282553388994289419459911980306351114485536411277341359017810805550706333766360696708729046041237298373759566142595268624818506646355612788169171048913771753872304339157156445680122422314362771583623194074404993504563824455821908663542265396503809529111639193074346461015571929546945662714798437027576915552133638342294744265403171678249797538000655467280158246597685254376841862285084404724102713595531352025389811753624565196052973064906113721027656133946984582033602738250348376752742603254403599789023875298414183187042774258148878115892834593455535054867158526105409145670799970030794087077690366890152253995650787103848364864432604504281525326134911983825609456115115944523483421884924038180287448219514548144217731451143115862521788344466357447356846204528445203107231486214988103198062373266480878097670025571578236421744464841262207975329197973737059331196573839515870606123524070275440942372695701584772854651644450801952390518614955753068101090449432528167082290810083609863965384893683871248168267586064661004233555260018610006267842428466863859742194179782395774197702169861718344391536914523030849911235794267871593943478711029002051592358545051913999856824840661131215573390539380331100983250103878179295903579695331111103845177251681215626641998431642121684008447724714556775092597139642312828498385362929906264364102597997835172684721082048180738750683222362879818930249651355408145464055160486764511038924694179482534542643604437998684555849382210611418029151198365805182673844499075063842296101354211554030121139395690570167924719451655496966718872370808711857637453215863889730699694191982680743256038178374201820424480378876786336292061656566109821371913294621112388810180973095505072658431440886347945908631591640561219879453195901675343915051029056123679223643627836294662471631564790958866569276856043149262063850976247730115349414290440310037539454073779060315523022764539580618283768154368257244977059322477517971174564507062932368855911229257709685433374188879010237620127496211364122297834728598984646302096787323399627494523874807086510891163639180610773778390741790428687380649331843829279179897344724683231109994142939150517131358525399943535522046566790854142214349155770155012387992330445834350542640393360379844767158822347733807301393602597412876024129831609350061856124097776896695024468407281867059278103750576475633365776950070503543344300977463055166127182023759712826615626815544188974914815159714054965934218562907265790979289425089454157241870996412648740722783930879771517917295354616789105534950559777895468707360400133699422552987444586766504642581303467841040884663104557873462785475534790970652099530313729166838362078291413740982578582155510386593134740373762396636634089422433115022917575941379364250121189688291111468815692320110793281838083960503580402824879279112727523011698388174952358267741180364556962394389844911170578879821019776798467103519637846918710849963538884962218818870347206654290751882735731682270478957024126720036840462926626549151713920177340934383247880989852059660441128918843364501741687810273541821254795816046803703780473129599962507558968880152601402593201917379355970859545591252329810584160848990448630763038633819322208665595205192771022707937893180949775266252275734925279268384059264302768335877459494776660525300746432682905354551660983202471924355816211167137738427908973300651703350289733755719226346343153855911601389771628289044524225519888941567901458181483972475434317141888790597556159412052037540524029846781543091675057133828617967318102263344552998627228286691384470702264286578225391689469965566381848811095374192216956482823384036539859097101375764032188182792061033205117813568606870238787946553346624563478981760734203602348924256639694975087892913154085869830531855296205539629708366175058933040975469234357844404063439155483114296790785782464460240332882731364660688935249525263788226467168010428136703231653584298010609164685774985639798021442756241352232728005201044738237872975367248790184186619283579433696793453171706523664222358797598723575870443629835647040680081233403501969538888514459119781382476460848310924209443770940263650018192762037925489888012873520008213327377668156765305868233745865797411704321888103851510199924325610405288868280001473411610619390882676781025843623163377008468204397633322184167831856963463361297002383899138394288292352221501078864773762310652911545101022527328897770563162213570595519804874919750814122820444713240382938763751227003188090156397910230611920690917892706004490951053586529332342105751417957325157173846917652731295210524707931509891986111801402028991809353227874341653628751035719996823418046870206233426934066206450537547377438228088173708346367249336653543866218303724637627530993627768202766065721764502412024886236311226269437425222068597768240659934164899803103661366720120305584966441864285454852228945466016393481639985838420772186972971505149498887384500276972862183539345276937105669685013510283840141582450811942876393084989759829656125823479227526153226105781743898824108313110756097733272296827827369678667194624370425997534501481423910927976155655215109687126874042577096078363166746391059620759183635816745208195861012500742843595863815393924737647387485552266552536122555811788753306672229046949999051379364765466772339224415452411676480867465574594934323968843533219700534337225798348443360478376380311634186839169229253949949844200466176327301796795827843192628266145613179114051010800094583890673845276151336141730140722359944784766151484951667393820518240885283430425038932728361585251882401371351322872058878203740985219632165581827853619095129954739393749369129995786211784669442887705453116951760429563258120991106738005103157483858114622060387435538964841429905301280270753163757643707825977426087256535358301711017687895227709710134659786280041729983975535639915126565003578028400665338008277906005834255529767693666829849153296491293584635493053750315071662105155240646941253048399260171929606583034556615566274990933651336061907884543228661017596995421645385284073835400797277020261063506387239115180761471236070915337883889765268637442866845606476072698467563029015886157094126707193807316176550650579065216897698029616623474749937536253882661210021274145743556870327184071689319906019695393486019729072814547789588377094578534523912020618710903775377709456730355305467730797876717279693588636092739241994119690889290608093522384272016295271334447853805510558511542866070810505079726749614242447128170661504036387010613652235004079466908401501903169495249027874852231013046698113414303665881675466427587444233581449490719307390842953138005424416716382843913393511494416977041048539266028116623760842248959208830203001710364677114580770419291250319269963392881156843278496281656700447796479090930494915139346813787937550180957728947176886063734565114230026292894628127964790247458177239487606054530655640215030002743027787358948256936738123302711622911452504363517235009271776096472835579930480714068995614275632805009260715192081135018387093009140482813544256206252958192109553707192407976054736690383316585439616854156299113050011682510419794607113258646261492248148867944719305896451571565185116506005507956439359080792504798832832261601929555157519268749363672312539156805352008119135415916508203754639148578807219096944472380737997769760640746378201164867998998464697999644243083948932058848494628211771642778521538334382241856787178579205714207575183730741595141865832285376456505936138152265414086895165986489246245139880133709324708168672481806410721889848856031716744703062012346510919745190541978816839679358845089974935527229514661529254346112216845338367563001726604725813961358257262121240858643340358699781362843436636179257293665024412505213240969213338704186153933497973109237534836149531755832749482537984176634945950892417504516124706274303141876584765114181144961238894396577491704484978285960435446984066701655623377071022640356021319456507866512757920036426593252404046733115267568312536038996307652235136737586382010721825230914312492284917897133325062461446851839245884913514257125090171524441245511139707671662561046001395618713378567887323979102396602030130395735677745784070558499173998301036493411679524973278427946943406834270440017478341384599728864980025441365019489202481520640070524947621869538239499451154465464458217296002649575056301855665668443849351705642746664556515130269571702444277463549247956561147429572217896524189304626185157211754095313574420504407280826568105228031899209692781561327634931175377092839234136314997707416957856086627094281432002339876944878305479359702074796638117886772379011864915533074028450044366413841958363571127576246891589473503562789326261988635087529248232049632324909479892886964179721961912489352013287269828468432898755886487136596189452425510025412536594763289562414749947184411102593505967738260833885699406329505354056648342348440958942019727092285618742932709317296890127547454752154738408237495829876797235577384237057095919444365768259473849878835863027821785376168873069782152278788801533739992183167760427372405805329048764808788070410326683146547253305511473245165654987627722515104739862746128535131815373374223689397104010742334236611451551042303737331563883974447676474769437830521343634413504609091086655538853422061773127155822366979515718167701468570372607719936764121000221854707967531628895569669250262826115835391875818831357462517480086160909691775120609135942214718116608469196576197466755245934625805951532428663638197420123807329968742283532121278936385521027128775951534510458136349586087736770641851870993843154393826860982728272259332631279648908253877879211026911540712570716732364525107816255114247091880021456668167926712070983209243835971524976760242172825046196398855442323419369279626778346349866285500883512840672442960923869615104967831602026252002045024344171532874951510847356732231825367274923667937211224865040047323811941739854586557650181081851201024341852929827364467302426642480005239829301078519628663949761570379665586924997290970469437961798471757469227077845321924852725099123669178656644925447920838636682796430132653253907795764252294751111003453340374061701073816513379096977898522383760991714036723114161164547813271780695021055849264364727765407235813045173302049711026534590330163995178559305698859388613665027822251391538053737467442139770104562733118688524506491047581178863551366716120054745956367726351779735616668741966622234705188688035533637380058321022626362530805697389871487486030366947087277936963485370777594988559361374229120034257707214586421919858712557872157454902281602422326972879302847296910773983704625111922945761132076900218803672290122021354840532720334189957961874235575931434124898128985501100045029911777923933115345416079357445911370278542325327833642045571803492700145353162437743665674166619030727546337099483001987589562465787982014015182059120173539684577534216395695702586302748593060139744544152692044315637950802278736680246696380548255454180399994702368241765406973206409050433041223126314829608527010188304938804093807755674519082448336226177150072842010585963007812917319969295264408401087514586460128518481363625460232926530767127463549947277774574260851811258250136885301439678350257165164130803426505166736614999597551280310489644737122714621280802821927851575011808104500161103282415163314617415748502113419812181705659636600514676196803873307413583439744494082070597692919268921919948711811908368204889333186391314878869327447385942137679698215040757155006468636867732103675725925739165525231335666175816642513986420549009939642035969186787222467489821330069044423748994788376720180550160701337847819070871454688592511896049723171131144600228151016579744386896448491712176246408584476122394878600187295040473619335402259198227853316942393871138639807287966249846334777877976538694516178812171662965151675253278090963491110420420806400433893380815932813678071601048150215401861013711087456074430733890911098466333629073654228414769536605500715808235901836861994102498995008387073850789131410976859791310527992270622381567892986611350019991327329473518108297880526669924170237679119887368430185191640283673208197697435343878803377827076406876522114125179585191253726759125085129050716970055370311323618244047896114800312691374591688700449514322840218621701551468407859205092708954540305091651797095338892465607642688245004965283669838599148304468717579774928168707962152574517180144486038658459427839784912263650392597861424010658644724874566358172011816595728543319264885995070283913717104442691654861864153095827972330574304650439050451463493397521178020468971799239693463579073339998816912617335268171881431334234244697621584299434861419663979330039291706169450063545518535463761547859618530719216066440219598108152778821173195336048951342181850042652895483943914602553410263155584911967076872996524416128289939876881025201914340194103102326235577435640495914343892380914152491643626919703974982379671244059805118185634348277012104923927382177755921913187561086834704331705095211840095259913440199255009122772883969895901683053170576247917756226061285667564389554008419666716178678647372025767373547561312851554000062086997712880276759871593449486766284827496345605704066759735865347326543627702744785031278944978212955517980498363488889250182578748218410616316792721299580379718316779121476363724066086596926373893887240638041007969630971744776352254907530731958616731261910489759867325799244673007989252929858896416447213261986928172571952428586129562732853060716940707134501029348841751757558095804667214311825039604375099694468626922866792342776142567869431794357369351985610653729510705663688950248947195013169365752946793719586586656630364620145992206504046884188175092959245804496070241804862985101434086566581258160083448650877919702454679595630469270819638623495539584812258929614592299231891578900738402065362343529901956016094556344828018307723140826653138402606726826445746262499628018894793820804433402618908400418416854409752461070734363631894738980059737627094322270969052363064060672235100911453519612510835977728499287183918614405822704416666457591246628331972573908540240727784966027039825946899763382420308902404677095453986472350700856907476952684883614598880297490318224054979199303264779500832980158269607953586788457773034084515949137719308534341272759695714840616814441352726754926332476467473053723081761921394166660127719376977467612299004141014794101599325774998879705765457972369425302217233017824056454107884455532904393932248389588654338933250323364583666599111700429197122380525852758163784725662052062797381960908756490899207212643574311691060185293248641642056514075131435285159449111423394288188994199078230592299946628127151700312943516749890415407114559212300678636768642340270226815882330915983134942871479171439942380272710587649231542812336390959338963755294957896936523116643412713576105289576279126880413865831844559204488573378369169017910757556380642030321770202846872490611634639083821236574159004405764895588884539810739359216291643976335173998277905905757510736470847297878628336713209176747770039173165770588256254511390543744690790039506211614123512622491822328866668184757666901186701642684560745390816449554317155445429346317450346544469468063674152339437524010178964109402718035276555385540063723317518115892063917421080879164638844665047670648192578396254997011595352222833977089029764860914552808342209763568254890468617764936785457215902949099527359966467444554710955005548737653747406073303627500080992949937649605164102301996330215079637700219843602956320611305045087853209165760625600237142255143106943480954036822768234731345968212315632738521603640071143176940040226614340498424001733461303309810283886979546632482787928572690754751097679059909367757050429649093888972081054391046809435336264322308630634678611354572723683643249187827730354108665969627008825880497250051474906377515643313770327701920483340370907199310647546507488950409991041352110697951264327024730969853460863087604702001791781281912957667307707107335380824673973160356371883158894327528661560761448751069588146622017799193942048973161986882326286995269695286420183123902031440735649180746378351312885310294863144401118157198037547163841156529219626024654098986391862617135019127896356450767063049080129445967544580154521916335797421026587067860903548015525777777249035280602560709719102545778403999067177366570301928782578468169489510414233070338229291380025611709201844560616843915359101561624659585016057432507413300377139066067748938868840370723915044415502894089409489525912469552458846376633748226777453870675326844181567874815057359611009018545680709807330743354495499232237717466516643940109844142305699421349153863695684624092512703781227510818688796232121936279536513721678142934916981835841729962841589938674889824302578092531459177998576835941406255188421413444783302102095140713832342333355937558432090863267616920057458070478116990899044634003109566190885553623092205146204479153479325240789934921423625989884221884421881602766651546228449176942428430702592624199420231882334456225861653548271611670361341171504119247520334324058927451417060232447872931000814166235522511632632265540330110047049007708442930850179036422483267227775862298594922441208977942610998885842652537972299077635914815046324659024928818014879521286524240757767564896659669605990409769002523427299747021993536159020936674621494639653181968986338869895452845489675933070864797140934060526141644857544110095578401668034292900873443255275373559728895996300883981589183657666575229271451582229217815887696857399328070507301238474633516595263673050690342688997287853982737602051761789830723615109760043917146713654482891301886766049516650660012849610658273440845057267620086600141413706083542428743903504905591045302865245830616310383159728507269074526836186818954477597114953930955921098962703484067584470471278796928428134810938164596100131150324508823538066093207300521501894702994426884150858158783658750383779563217574600577619439829201171736256486800685501242760367500219552066096923860010019104119126667614982213008173634912849725324403837986142070373623043503784405155819383294238996225640743607614533995816866663871998526194103827351517897521072321909999221249652965072288125888738422929936008392604723196722101339633764828707618871156624554400192474699437703467612197938998424059319604836020534882158359141808900089946400298671530771795180550700815345839864492327797943105314376973450969215606388591634176035102999539294129301142093220951741002848026418628496690313641977645193956888595639151765367899226371937747661280167655324295028906364785932411690651522394306349034806462727746145889456431068417409368657049196337130991253695645883243904866795094903004905384276506571346731479324107397889201245121401455191162758408715732400587586181029839962384897494205437075755832873845018869204984188061442597935282500031255033471964308927154309491737135507169330791339597360403695627931142076714024976799920809681948859815970169757360810243417910878681797557154155696825439247035570397819111293190829679962708312864619264231945995354604852981477467405825611906547053232386655525521414325183166398228974901891393537150924888584972779659743986304248713748211959335422614529235895361317228618579092020966369073196813213293811726373240546130097822787840588837637644598917202303481893785637389915908576536147604225280744358896593874669312682264932468591789624444842251266558930257981042720075087135555472447818741476157404353012265975452064130219776283560664028911027348667839522142203284785546618924917355669624615723267958362905488618236592840913552862068730884957153167704481279041302762397458171340862481679312149761602024232749440520405380057869439913926508311828583292529470789151475136524638506515559258266346263867951032768524741058669016988852718031243216581800472366504925906487207619213975385889413171659178540089801240387939694243733427088591034354773352547103074398330515220813857882075540014208394719614680303061974942776834009549843679953556256455595132213980840997700896791177829800113571857287617310511415642317052898711659814947555959653839334314158665306399198581338037191694289318769217828210596777690335729669663628781193999395088917493303147463029083516188873684762755853095052043443631387299429118275435857217391359700636842767700982926745923742989308084796778621106434596077892396132441415130991216101418518184686051364073992445825095792015067732789801054811160854803806932361608878359988423661740429753417550228460442850798138162091545515832676693367579824265822686844689768523252981490651341234569972745984874196494366887081672177642906339382756241959664296839289036460136186244312315040307298278312425393071890008370687002210260263621785233338328803198507181507627595608904150041254286808381445984721240147606172385273676087017751197918674607563898009756492768264835625795078963896630984894733604171734872661513383492975217655757664699100880141080426104469275811637996367798630432239365999543827292366083956757115556099361879530343391829120593132013627719141148292148642009751758589280381865872185004090310376346175716627216423176997845548541182037135874154887317406062238705751412221258682239937201200688961563837096108215684325616820665874410164493230678617267665752803140486889761723370930538577342454510626104778254461165592396144168995957764888357249802577826713616532862064517671348368111831094789397735439997163015424110257430720558174959697397684139752465215483102994261443092533244053418595696420554778202530806043741214084322604585797260982613938322517916250368472068095495821272892433461740188924599276593068756155815723527084769422156698585103588703179285046171945962774338423505490864845365862779604404018565838263987728945540967996967701575416590772020562365409566841817095719742414665807388599315547504269298180890580278591091647458498313437505557706494559409359340284302372942783403689508631612356662995774945552949544040451795769224694894282197526038692835457048362936989012238726719029631894250812650241192740338372146178276177217120383099743054109817771461305224126020591378660567312719475401786380406747953090731150708758959327872774873493056798815472128931181555339904675570506414223660086207500096561245646064852754886100320220914223034420168208801171294525324462144998777721254294932525410916980032793685900154062469948244686566690219052672969954300005751091859885438204366510244714841070970925575272885996533300958552558302366765873558486535816558885812030987482503034318720250152988989650318654445773789999629197026817609052740648981697488869704170516995913743247738666452875653532482756546847264488382434810965640959231824131897047762357095889402928715496840199346590431666229148528985274335752106564274092644835494481711216675375409418619284573336242979465836942789784291663436897671086558563955461971028948465654892472687013387940344499595402256871840054455894060798346391584985363237287853760750540931836590783581989693053383966304934615860425869221588857105099574592121653666901622536928111865471878682093394342404600179267050721779386526776112617865708873969538023333750174015509981431597793936679526399907028591124792089075425387143706065960173630967796279835398614981206045085135576115459060568086268030776246554997458837496867760166016074916249739548386865940237436752778202358868281584866838338985409453038397053101517711463892010806947606939907937437644400674946002493100208707111451252303272006109492013545956559456127829512775402943068092637756829805081776627433163111086805585455722513846349915391117477743762013493003313823411084387691822606328562633905098044920818932924315344596978870984404372338368682079080859515453159196266559913219764139333345606672831649546679108844189403616726239265534360909918184144288485119043758664696616062519814704169021073703715857242372758409757135562477533400875257164867535742070170108222210447978085474032418744032647941433495496553237285207737837698304656654102915050409641171529197616474436823783880181960862037041324514115373092837872229121574794795266243737194181125255300506461310991135900921680067398212226174208424867898699000524101999244020756317509688090340471811714117367538055653890901883935313362743664895254693822201059102876257471404800732401575615793686167467422000871968614998585683921079399356865975108257731998528436021540369512845115745487373692654431391838303663202541276495913997699980845741557292050740946591409799212973597269262360147644714278222178600510791900332874340460933497277580723147795012195061718370317424268835417947249598853500013642745977656528483514930550592492662731806083887922550623562140223394924342243896895953939850747971268268098112122403268898567764049580344564360603656778354902837271217215545990609679022008152419594923921478974592966017333519041438219323584787909988770550818147100792096990033285049537227112034727791025119242437176733966790381296962029315038195777352777120758301806425315525239771101122561938689625731197066373293904425443353822525884565487312367489600888480398224119430846746970095888625343964417431907915619741107256836102972745642435421604454526643814673520185816443465712552640966081365245623106821950734913861992259876637504513268435291539034328595360866363219973526524727366993680117172977749578231121639951928330986984982803081650563248844734839529270282059074857486822043242771231232611451374921839097566416082745469713498134003255741478533499165892269610449699230614484392805395502938882592736117529701128690956946764560314994327818788066692357014158961436893845114666413906169082119391350172653761134256942672502903826736167925806973094116102266097363981841931749855326274129295852955598504413906697830823804135070510009574213801971590656563401186706661097266445233166270172900436416560509229473107807003566654914302187063849164453960311050517689712635737013750824309088218195251014382630334652845452256953368446331861821388304618311031688470679485427530454305653963788001498033797079031156110075836246887156850046300436552972813217661006647642239245558093485245328434487690424841408784856129134379332814566725744735755673442589890142661320610830629211782960149966452039331886607301230298898936812497570389442773924675780755417399120805448549309493621301646011084304202634120322063617063020877229073627016783756655597451762452129219581437074412079119425713442703420724815682674838569586481797979965020251019592188459443102899159461333718485451126975400236653801325297466633572643932340099154247252877155011213298378979186209062316131835280019787797772546606997026515720613346685251058101416446228403086286845186388182284302078817660308054783412553866771380549371156694734937741653097513862678137403179803661595528006722162734818143841064088693529921240191958611559256737108029298508795337135238364992339103121125040195265401417202170627935317598039448187043952723215871861384707698058573238822505909390128498279208630528771616490503079730182532096967833946601394240460783782901970809939509606324441821951028519308458382803235847181295498515248901785433234512373803777365657776159939976875875193376465914810758176127283780221200540643898476427386195785654194176744242011330235266072692827562940824281181061614137581132433533243779081329829186250272269731421489043167971632579476701470991733332471534121126278642525346394680495248917327543472619142894842371638893179239994645118123195853489876168602911493918720393319208980550383817730453353768419107151312335305322509152504083782250090907521912870028796144942815618678858852900959814513129565728201667961337496488486476223891713511513988671947885997081986473747564104547527517555539196605367563992484659226551105760638212321498340851793285172664470115013504159630364293046667253679028425970488582106135194738055440197162738619515914837314075683168560739816594527874100284422906801915086709600288717157600328065334166905419261453864204941644039706364134966417616743921883739941986387256142708484139479588844512463027826231249664477813276840414036370126399559858442249361969780417418569239043766652654136938246066374870556780104650789206328123786207123601739430485179665027014219677424553593618319633485807700060621904508762304166337451958366033830785287177899639118364845912054881103459988930948890526160744622467774185388352645546335484929686076392484221038609344291338655460890653699545230485885099339695132093358445879532756991241524020270729603023565944252216837251280939412459225106222055830844272834667424445112491270974693758205135123131515684724351835583007316799826783893015456178086441985330286996039118844878027388027525636736700777222036218957991902323456581482704994418086384835506840506817620050057511036972481561173914854622191358567053316708612713624567383620958871628836128600154173495469210412525953229759448282382583986062799598120765417969401086465176930131753680142651316608244450935635380076604113093063381651704274145605660830709434309415664794359499162865427483633860265242865980048393750827675679216421453649177563538691113553787303969124846982963488905678553247062308004859892053458600041778033679207260769517103821316665636690259912236874044987988092760281982921483958122822797954280021817963023604278006322002798991907225343312133431017845289307887545231423957720296006540909310862380873818405483267646995899891454170403836425554754977792206057743197487180491181941595708570343948660034756047529960792475245793661343896604319602755654256278669322188269587646656533307393506711103032101431369380841207299452077573001062295282826901498962849959352970484968480592094694193214645059271326105421043710350838575396308757167595301827184016730419316434120968701378163309953470776966695319513699080976155517878691295294518223322855883300258333596997708512696354516426687040709864978610994946916521981192113555991783762899745957526456537840472696908876217915765353817481891132210991605597772119784892366729004815346490506649435293441469857095620005207315966588899881539765486948183133992842284366457532643216535567728819439716336020065987996329804489605020923442192216000924074585758405023895701390939448708896695192404140056499358614877636839402773473913185083623582232558973932820964243544208981795141491241496246452840539836345906807635463945711146735462916283098420530645760149353580650821633340423571686798214472111125328980066947055123272173904943024926319663951530405513799549507414584036984763122247545326800439868655358692054585301884822624457825077987868521383965555231241367560456245795964882873901978529738648797399627674645147743066998949129983886640901655062963675041979016037653565062878353264755280227162333667349957562302458090954035606948887953058238353007733049133370807380546002571002173305157250383115280180900418231443921164966472667275807545747061767261402406775276237241535384100959689244063545678568219375482599884012636923796366889010608877368281262984446985408709224473146222036318791397138178593276553536527992055794070530568390409043054619850081564822977344040443035617584971157840553369115661382474203472952271148324064855666622526696573341911926748036439615358634171730336656481897256171068122886827239446978274812446110832699641463399684623253026648440156500555151603259655761023082630543029334858565776372208495861778983472591840301848660731099218991311793474264387743128922266089844672116884567841260052539967078837265549657928577488636920213521366221187462444380790594168987337435289191105536232175688596968660883514558634841283905148949039923342405233562943634503733134006856153080532649506706642273463480310701533142088711380333945759471705487978829064363832500847688146155291544350321299090129680009107324605806698444128031934496677269177085165482349880897736438552944684097637111678465411882395585050044956359496789501084058047983161174943613208111648051606716959715772414147475257909535552760384954143876655515335840281724889723783978799473062519638708377850216667185416761467064628966905368576542658358740988882730491818940033206243762048806463842115706182578227410827656069298921088177974729836883636725391436826789539228401465538486594714441777599023569211293533410166935967858117955554548680719468092569866603874262416553337646277782083016488271459467118723558754142610312089739591355341966109755716268401338239408788116858748210618588741284697535988557331015082215131080967311290191456863753897790076947176212293883968446220804312834283632674344165371319612555028964129903869868080327116858743997443853180119516009407425099622419829217174602621762066017145276330510648789710587666026832240026497819549501567180495842394560987836987880687500883973023818384054708541567642454408358738998968725081936152731148860215207569029238710197163709384243494326228905912982821280540590496178601672278459933241999105536930437536164378969577966959582720780014996667395699421248702980409842638011346673738386801536100294363286850353318650602015710718165108304945435539571131629946620243141243186818566026434805018655235472398773404247523577620561699709720093533064752733643901570290131298398470762407863489901090958194320496139780504430721245533787451338325548381125367355251871609798398604219195127221752657807489318566212960023013254108354022113792823966540646805454471939739391009586401289675454217865875414013966680992777912064485016428276837870777386078753618654346426804863501506617053687919341551240658634828682899708903919579611917071825139665281476545513531002503700454664392989019924258682910681614069934377418847587199615090274585627933137949898270229159563624470980846106803985480253916424133662095436571903622707577727944433032292586051852023423681513066086092648660519182281967623227270801953436095324018823731866542497294908081521806121248389814592816335408910219380236369683674348261589514996563707913946310463410097800357306626209264558668366574637394443915630649260704349170992209616669911411172509289090061064180341573052791783289378933199060237635308912690445585541147606238193538086234197889821952451881829833908987597896870360997810029257622978077300876950957625682112161912860967931712727176898669704447417114242692996192824928040306203023516425478185304836103399293140874278877342591542163514193626930449062211312855042750612595977370910012881555972604298402169962966314041111706800213666786412189613975822320515224737890258116196535431530175042832857709522326785340575190200586761658113092116497681907480364187378274654366420138389784243973657514441739419833941878440563985038655932920616118481368447595024407484333128015252991508674320501097141145280108222739781139380786556473828926795858326644974948381642149586417685440444172405440044396531219393159425026069505845353335492011478177056454147168702759952211139563848036301707689468414038356510032390668913977139631106353049157897518483323383165370318635691664528099874134317321082176346751571553087906919818950577343808794702493895053805922508915051410173132952413208173910884262203577033159000926989332173191896201568738464516079226139612186724423073407905935172802204367806418518355550017943567914404625927360604920731894178644726098557077619752764601856906006333207238233608759567900377775282989521919315450131938500873553984561042150906770970895129280518584975261342849175278376039394697540725329540198710479751390237895391307578645622390096497089549204756991764229072642891888114734563260580899620176862680740780553846440380470092580854592092249698904702303962071636820799127565190147147710359825002807111449516744646627975711371894071782229342751322967187145134638122082608487100289560417955095110998655056980067729417432044619464002649627366014653788639355948599224324708347836755296604469469145516223435864017023937919945918163722005409683111089681874627288586667502139964953665820242739642662488909860003171359771816732087145904222253250131149802997791041929737013042330438784047623040594703828802187514273223579088756101246138711225561678686455104189367159632495646794254017649966169076627617415119599145702169168454049414243230794636592042856905028196865978119379571078036095215618982773161034792696768615239532279606704788795048347632747976103120737908532763456881830159073753363591444425038974379817115886774540228437951480103432156667788805813838979710127924483036485690790959564781506614105578315187566452816742968201511120604716221755539522829583675441134676954665970944365652858507417150517563120855914928319579960362658405640875631150420779409441634943651814743073166616208630605489742196927098701322752125847115179418678616283194264175535816856504573487371945273076456812322434198402829960865017776266789935107092238101087879724902194876255137752451757797957544037647602234233350955905908187879621513642827104672320223775628148872887785711328110003893536072498131583474487747318475853397040159456654348584966521767871703488284578326079989659218577737711583625228919131225809153368391146715573160762573300906952728356625069928331695338270131510010135153522701214796994713231849618733124991927120368673122407098233361896993138651578700812273284464417774549567724581099650467473278572697263779096984087517394775079141687877134033252640323818301504371097456773023900492891896232138538674255247795628172441260666592211348159168202509554338677586908827602883090657120618678717002461713229723247673610754811939917550258173724347002733070030781496380955629005274109317550958233234817875172090549405565274987061984291997057060140721354194194484520934677838557479674389549803959806717635268763790290825068719919972651338479166446962234590774511617045616476860238684304692002080638874780244202798659109867954639808761940342833679947651062145323397477992361904647307841128153072635234436648466090301354759990617000889364004532488411861638533684229528598531870461440879599938802580418821747372219791546004369812882719385973140663726012582246770479895339434238766873836971712106758712251982164474903293795592216802903485422927595325186667832102905878588319916929048201840194858066623241724053713330637421228847827619806720862608759327489969079778794188945330561853168536091418014666340061537009983597157104512853628091065428604268388200926019796256498938015637410675872297388752536400765441931089792483228656757525882905937459742765321878820042759794305336094476362870154818852482108415716803819832736371705217073953534921038744589525433756496663924536888701179468365932450652961146548370274959761256809904120143396474196360970555098270742867050595114031952252110662888979065152853678297263739090177733744574324125188642812934859191012653611538676544536687502449504773987745033167577147288404087251953895972797190694328034734255666827612207408532699890018161508119494875931057257379602696621385715199183524386591110780381562702539729380325906854532998254324021382831635982079167908348467032620270091909695865810759565716777547313428174395217217728557298891063196490187590477669741092217100776109618136941408183215545080150267415363724239464676435459408050756239866002781440619387506000515034715133298671654473759859753400018890978459996509679636593220263534000357878789649743055888146134031045800096781391574810916428573954352785832990981465730549873813950276638936495949158161571481629516963441264770790414756120846379795037298384849205688435067349502046272481363940627355345027744795139742261734960156557834553018315949459066573606842406018346335349858390005417471550507917425808916846487500296250442519026609150562953363200890161202308652238496481798721354303985249793692793644883522170358816756547019335421290971646461821117691844748487149184050698440608212110692658804497447336456706960847684716438473674050009840406638577445692865355988007207165896689695949475550525169748809373533333433179449241374794468380443704433603475674396424711109002133668006743925719649125077104869480268351293020348474243622127675080134268163660551121556476521929564822018500047423540399309233126189244277202886931295918567908820181761909678018248779643909174674459081484233640126976231055845819025220389860951665632760349272413114484842745337973219060915533989255363749510543893296227521209924602137491700024548410302629220398089902461526745471777058371532840720119433208034815907259904082275601689930025788081851219646491795962269650271180937770217211815481892301633770825770578218838670624960576223789345393067718499563049474324750069378353206817250882289257265920934161588190383955577395268163984212405421569620131533607721264692185272574619497395249178898692168314798703966343306147725113759853879735237719055164794060031199676131310964988971766673965771338313939850456134673104060683853511852492859621121939547666277207259958644044660612827465508928125600987514548258501898041751644459815265071623110670455160362813585950810519406572551396015446498643205661223442127153147192650042159742924439750744721323894755436244849349965549888839074112703907259861354952593721505647679401069387577066912246554668280627420649155620492249989159154126179025215029801587927520027828536666901276793643791147945344760589945105579202388166910156496230961310172917338232977050256053005112885899707918681877943531195212050879585980703815604531125550002854186092492211704954783721696893142048709774861624620186911619417926199509931433060015605277447399020701469180821774264394013628334347500613079628959598646072433678402320610454721744878497435538644141396121804859160849586423669204396999134474289422630635505816706834256657760566237034525192493949587797440699206086929488135152088850864954969785710088774864394447805475868579811001441978287030821521509087017637965586771612662502239441203546738339661707169257494537306762283159292119045992977740846215250651850168408879785609463671716640503820643625644073004686830548111628053225306999618406347825895123284984303545158759263613059159448812020524074478666772351884911806020344779636294586998387216093867196043037084897046249946770427334084164042082153453871193501340848153261050107748384940420129719410214482724457079583489270267089537627486518662135429344703161004196826228585669387406214916650442005661900483634323072866653075000877526725255543215855388539035521416008804773011492043917447282847060160071812391232381541611959074827256463389575521191711719930909172559552458486967826111805929575963669069771506509030054521120251817295978885491359819180119297361526098709878543475854339086220020138164857794899629630350205631146976381016692287351639649258036485355183008570575009638365015722006381853368798343810412013864281727077910020810089885618221170192507702558265990536010281839696453078568001456455467383462733684230211188828885803918439236388403745484403764063897801646281804690113595663212090171022552075184306141261796770761901224417695432018213953166456389832896395534144452753276482149659717061435496035113279204686604663658310845527478030006751690636020238625583610106623529893198405040993885138698420041578099844964427469620220967867976880817031008685036596296927767087174048255740349888497197916363263576344690004510790531185069872465205369273592843841578098483612694190330385425262711212854313554522698069803488425477589393712355016138843228406302686804805182030000247600371283676078595936299849803584970412198040147352883568335046137679043336473573067608835884994803321363924494177338098495791802573175150338304986222768584885808979243050019953845433034884144185500329498322844104793684992869107249810980469326479745148305637244611107529853510009601244496597458022330612298971814162769183235476586919886857151678630454454821675618742350585659102844146431674067807760906881361710863141690242279753082682534792452974952820558112960276195293030487676006405970724086623944903659547316183518701167801899706049709357488758820868361204796023022131023186679658784275029520477353727647501373154873779965741497510126131843107285337198335384543831382113083165890943888788182083968337453679344104114675323584714378413778611267640540723526031072457885260463544902143551009818600774126739523665167447861658559523299368791529176596844744352920583102174040457619085200895753165037833260385214464121303701106036066847483143173557610292816567842982947593537641433651298016368609211873121281450134956755741691249426655969647650295941265146670736854929664808741533812701904983734030562761702184165690878623448967222230589789386813752869271368984706347260475152041853394825543829963089603363717732403812671295999984508468248916142934307292977586398136334112400336253890709411587840797999409968219103946500585070766596732529160232379491745240683837342301039700842967070715178418623388577059949820189040678036874475713187254529844554984861881370529760950288314352555135373319185734782261409345366985735811015970597286383302129089422623960970168293702973248356584121702132867050898039152179281683588109038506639530182724305472699277217139201621675659379320106743087771437553823487752065483157217272852109824269944977577467162936621609190609270630102128429840289930770050214194557717177307055260997541865115363401395273907751566717121611435111089021647556845754943220101586078022820126919509380781692690329226426317375287165968888330158033769927986685463133419365959770825232101550030247485756428666453641491368152363836778991041051695426969214332267454517165926708237863427561896766210018574609589509357757239485773919432539240864120949280854702090079255180256245535899307339835626952694682008056431091604733529886746412010632754339744972607926844183157786074733346737922873623966103709433481940905497850276058816177128716167896867241189863338391095603898295339203302205392796359996702177223790037995565646342545738779086652055709313400523794230175205589654648738842087354857304995013583294539257144952637474673128183517410481534314340067741596998120899602671421228253841264892234984623403809095009044719352352665695240259375755881561129712321082388889771044801976650037242865572921745213303974675840322487927925666586461735732328267387308145341653760453435251321200722914975694904178176817542232698514951767227696490542659530600299873371099369916502364965719084025837870369989081496241988073793706265546956824314542353923369565742620942042013455829541271873823423209002291104633889901631487541633472712442142239715381749765617610879333708763310369040722884172219274308858932789376745465918964546676767926902224915283925018935744567069754918206831633093508004401787176086123248138082252253634342651782291413739889126840902545405275714536342809335203202756973214089894845145042747616938092488387612829586791552659366859141391298566076111758701793721127200015116087168830685334058810333609813057441348675305248399731777725504398941196421026752786624370842267873123715430344049111372079136370350684291827110619899716933802120259045942278957077433625698310698832985221864505672529469154472808768632094911147451832123272595787092529623632926663100623890183356138593098119332162551435771346766713970106843469523723154166405786208923967767105463650581462693494177076102400736215004907889998231204700926729550435071865599634923848175223292782488071360189471146838617921711698163212911930803969792610206792981728566062187116066105365157101812504184031277936131675313906252033307341602889837037010930607427416634238713702929927029231753613559773374829909635563310764884565173655609767661543810447339253509173138068703468409847916305697677201607479502290830498859114961615647112632780866751554759422103871063955213732433743805923577843380781839242421737479632285959244722437029847296531667253180456220613542107206204630479938021684510749580077541862274715014459326713357160005268339495744704495086403235639177077976054421795026125655409741998248902144383401049382965116572114594318699449065435194807843630950175611828529355248371561106659654211498042334288084436423071220111281845664777963395088351018474691270876270655916735226551405357096030110734668591338886396076487341839599516009826911967673656187803919048224512254189471487102528039457443130117724226974388504001914875725753931299860034298464893742065614429886359665477798696775477215159610768825541610358302374979554665867349730702240985900234090819798884424174464571298403016605220042899100891958100837149677544658138504393455291987072597069301470584597268350875108921184907162268931324650434992318446819626787412752540563201844408390815261271761585733670570936700642343435285194990511879111666025410910199620153869955857213440297519570455428752442015129669288633249550789393677241049849749928167583475773974315721500918716823176651476401737942717379812905813266578595774658883067444852917313654778276534448530747142603055770492515361889111348127634899480194755701426664496583306724905780587586176674004499323406372274505655334750067581900669988100258868499378604973799629903097696154032549735467957161491234385935134077176106292240135502298991490826964421892451119135458585544511932437903304629606173634754330663401359478819417257524556385628829830432691108194042910486125217436661544975718056738638320386313793277810510753749226278032528602377651091663084243569577649757317969360156886384060143697807992907940852412798682534296710742244714137936791840649362131406434881169759133121944539247569015096015674084030137509949863581542356095484624338328130287272970891728770558599274815903933795217655934741504804463465938288834240120072630487258126643193554562458064345410884069415262198810662081359997054775775273048874551776026400288350734169128516194999626698771264457675848065176918130411139948088990706012261697177873073457086156920265449786962546674967957523563258499225061385048590313924206320657147688999471212322626850505078019001158376755293898064928406379851052428153539319102896761077023345534027460294229462160618517076485742634824205834620348392176175862727097399903112675902051170116490589345302162858956121926793048486465706349104479185494986696121429132518186773057446994917949569592915435810213909472133503833261340041499395682714232362935339477275470039463763882816524698499534415046427577370450704460289418506907035455013171727078394028044448461369777054347109102407005913991075158862117244722534422871331717547523285521972843832159292806085954349801768068162701871528280570157915608155415020177801754564220461744227355281572637817117573705091049873811744749285899667132682763259937584347722681846632142115550661486552684515861925260846942413407152059797464260486724154576312991600634907519997246170792027898454161481684162833655059002181357791563833184071964156746078675917668168082552243792377699116841724630414756341229217235343823426194451392501139059713882106871821732839481173735720294310804289631831705631276369474253765339547371681398592155063083579928380693037015641208714661167174065401733343996791564695670532434506788906801519775988560460837170351585871611633493994678044160748935501767514611100125421228126503502403855031752297819221143416628355463035405069687833133702643104911133633319620610830595249993618347905467601031826773145173657081015634917552683663397678868145650783490734223370489007060456948885130516715886563183457423730671764002386854967057402986748592725979661529832876204201471834024546427024361978793608032163802026440441011948703125851791858633075188511163566964168435046488627212245410041564900875801751656567706633481686669563194897538146046466327149923671544507449544064518963066060398492417520430999669061109295570738930336055346009304143770978466089268066350598084935781380299938194203652046674642534652191316579073279476286417960256485533508869958944957150281089135762083705235422985480757821504359812059171936245136143791280510526054689564464720552219873579919089082190320164955816510420787865404003839166689890817738094652534395657499888237934085937162835185236882700392582200216436396866579304311442412508704069921095550041378844724926185500924054254569962697471482667803081309535862668473373610969318954429706115154828052678366186869305396486612670443513039304089621538209097961167228792915563667112358603735126251665673327011672139631877635395366769287482086005205974738651804564805609570772144740495065043501359183853825223590739703781475158969313213824728498612139695518500038620481131423093783774197696825017715824144705771688472626405671140121319085431915321464076065055514979863981844295230361892616970896356371818021263793478081600577253945099528449772393393532237395271331909756708931756064824223708612293926137488874924093606778581173577777632040046172543038439269544548139082638148788300273649564886387864899894093731020215152778739401317721361549807599939157561885351767172138063419228180337187192184143225840113967091235576039313700474084140222672580722202975887332170705538231793581914054202849873315830781437731122921384166366281423501769122363403127250897803895057933200845445900745817969047772994852847764951471762677339197598576951598174088492709233250194427987165103781532870179538406730583826089571253796512054066697136144031921073672485222241323357803751970444788332023762759699279149146070219834214233400754964845023199285547402781882356422779916756495327983408443826107046076061552961910344642228879805447112110926885530972396153211558557343215559230542875106166697230203077925839396984721497068317897248208073867677242276195194583377582868221347016160259009855670743009042505271802516849565262018790987244331083921594616588979538083293039524280903081673968707200898466420814078948238572469841015132989040620355261806674436932306633153738367210688266193170447297079715016611247799598990987929619251465824552957620721629790902949029960593602516726264123686681189662329116950881084528802183106926056234089190274962929478744760864132051932553637381671794678943074550390265188238285636863858762579935970036558845114728105664909512842009753043808144572305191559887159714973118779516162389575903653734014977757455052689929241410293715047656296047203636197560181367181639880415996431682071658414019107616356610723913931769642932827441999889185922855833224004362392579545210477682368300699707409550805968888497413342062528659466939212271025978200299419039291021898231548289919134756416600406835057289277807037106261147698011753458132087896297633761881382521560829794762146150471445016826474355074053028579230814787924629579477152461854808301181429607422451649970043629496166610296814741043686795246114212872754880977121183975837197364446590310724104817522857634880059459826186548166604406068568077850235135582182834901410266510524610991089145159775997096297065742813807749759832139956738227847757281388198844409924429938180607487141582762752494287352696577324024538961839431479104038569828368198657651603435159784959819746708996840755907580383511203118696656231558878947789307433574627005757735096122690589795108236842431788587032677537241131880532659618258935378951260361866900263558421359312555759292647292329436108818445433886587747615782546628841640270000132594260446273376306790123518609521180912811134516825278252777887993304042531652585714245095641218291767366167911515190227393219325692045892305849196161262746494255478381302435479661130007774855235866915669786055492904422373266378544952676090462373868710255020343165973740861324878511123032904879222564787400795093048892420328808503133051053365002072573543705718406358839429619124096831461985975555438722658153132562193515934419236063994713294427078043801020580749764821857573271315868671669029623989586154350023672855195084292228236915640696342684276569173429836609119400037930022417084609211983996521538666592273562730018220274620097806321329408874203200835948277227983747484267612206772818297716836635078945436389361892766363191062889952916231278666197362086564238396813788754780724480215831521667007206567389387559314965704603017085315346899790336478386299006962492825079053557434190552034436943050695538392107173927686611776273089177484228920991414411969167871882736088178616728381894205446393832001331990617174559270582199730302211421918915845937287362741820965198975881754980401387244701640308182270347061716361169321024948338691225144766527530607935413458058581614214509464665382652632716942177555019810290456429359386121525298557371256023594871806995920334198499082380387485357784671465332192378320603738767629708513669821011898769902133241586868922307491128477656734017790950387644867473858016882661419604963079176803994068892021701376635468430879155830244631032147213208096114689187729079590491137009197956961249877201869362959048765700663420976861926575496916957993788593769595714610476343398562861297543355567816391494383424550439723755182482612760731285936906434065517374572820616648471313462057051446893609307504092338086080137729991108012646517090180685394044585693410068579480920118934790410978144293650615454939363997700220556304578479954341269860204880321020318350948890819736358655834268440916965043279032694251116720478677816588518676093353684562709639149793719641255497735989985636030281795644116292070526467549983044568652292051714563506219466109550333158196359311650364257281555078711746261580092683107215031813275698985533301774747691916814111968446904863778608701797006004641367107252002379999419304616117873461446664996453648048167430311789806419940863193904649115035566509815031420320279444721509033154045145695567582589847614335043652161918119897102141408042013789796914597365914676264548490278167723522307335907052923219332914849561136528605281571794788611515587211183630619681275650416574078293624127608436402328452354633104849167173801240639065327547761493599312498823136294458072377974792804250592361740686171382194036184163545506460121399647428165465698535657857005842977681163223958580245886638548788246622307874772455582009125136439560456580169414781038452083924418454696576404099997048338609725398075724941652841302917731676988325269188849157486542372238696278151491425658178426470428639045908076159220552376358509671406910759485184280753850178573129813802162608778490828786636900399584003859307884923025977872931082946904764232186774526348910853603067563875776797979355763510044772734133483137143541975942502133327191762459425736683495054461898230521300927723096750116580939457418150878582485760259584647586022582484277848215956992456652271544169147279418376536648404127941067050454462986435206476705988158471275962799967127137409706561387592467822016746798447738851811407251297255253918203256236081067606025896921568581217763630747619990604357701063653790194490803467434290777845331592892847802386935118217959686081562558530033392953245396498801882353095039229108811736008996685331489318631330688273612612691772144651182462171631965201945350311996170597767977863349144406395576859912693118706334045257266481179494285768741280315901785769959986772238340009238045685266472820525428116941228130890794668808124190691316889469283381565966428930915904536835135808955513621682924409869257044541376670446890989965104580119380819403245286448896169694291768828377919263448706178201608081958026241560660570027051009933061784938824027248856080492361520779488624102800718545807036246628892097611702616501548441821988248933514472648155084597287006044969257304142628038674701243157850479852766761175895605929863174698610602320609257733145103747894953564555638647155291909986180455011631384678129215225662094588838155420968281816340094868074231501031267399042715060887902852067236845691229606400773406627808549346900589797613658022366721647347695817526508960994445326317921367301033143433879069903948244323241970822140527651855320739553746798856085895815720944633519999033519675363316692826482304541471114741289883610572248957975742056858985644062720759178753564184890701076259519725917456873086117400331504500643731503588597701925317993378980818808605154108871004197656568842581873887974872805050969068131278266957023091039086264898616360009030855300490934194663870502858077101044314513888800884131404904953673196598207002341473304404501612599446842694592694199086539822293197328156613123196879562627058099245340449355322213635265520180123017939557438998860626112077156893224431528741656739324508418684760440587309060794011322791154571737891510864919405380644542343004652213784737952731283160185887969992656985733165512947746547182194384395765625370697911196719051308472412456725059848144850863924659817287779684560587328496940056072110721289674363077918735912909755996591089255229370152684307437748996221702011983008533189891164043865539173661717744168154765319839049792144749463554769195997148077307244204638060314323493850090185764680417351724189934067500053671992806718368720759666203872875133972807413603857970966298701385491361293073932402135001978083438185335354266767683566414965952975803108082034182943598110604597672984881742388457898394221208648582824136627533164573804848122886244782691415422811309812859432875475328731546072574008795498662197766886400904300441412278487609825176093607192016345522136311856221860097009862335791300067525118449192853846275422229784760280988172842914767598777160430763047018603641388964750772146942504662051367670555186828542259084281086818986269896957708424558812778883648979714285094585039738893331533820539074529189265603952196270242506333268860298264262735593100741358775771967766646864143611503121165633901296509277022902916446291541390200867401264302655043081945985147060864797970748216256182285545183686559102961426774136558075211885716894690917549288360982376564307952915017932264403912085548838295606939306420602080822215045159434409148598740660617045255245281359463088385267569803095127530649401096539864306546305825049700269033919080418592375866995027988368643318860460449338054075219453150805977767324281790004593314293141181671268856564618103726037311914514162412333334647615684028787139853046945769919231712428915706689233431894796910004182270804309483440780651288854510405409032146761113462356278490012305611519439682382939074593145695522577227951616123352354932576396365575622838093174087410740241684428159662442622946026995605159066390549269329750046256131496968541285177902009213906991034325374959960053565067662828818122337399280944838153961972414160260387927962344928992273152948768337814433757772024437086416070788438720858912722496654741392947584235128854257110353180327794764403387344014008733787635507485664406263677347677611175110092544370080928795879269983893319752622847130158616990015538088455649345618343984490082692213818350223420507323529545575364336171352126558587232243004228197071764034720228194080130119145734189428558264274816803739745740246821107376401747341997566724574237699697221808200045747886419755114726556565067696927607124647225929092356523518363740358401911482902816100576356046666111628297303524081394326781293194281409666550145593087534197176043067006047690701111989237568321896315386554607000879439153402636819115324036780213634578698507948169156492556550008213442571994452749677951087709719646758828159274158710227868151558223462299829220792014077222911790792072757475927276408713356494412976865092110535375936427110087235177929498129794648312952450871122369453452666031804214183436124804677567996994438383846449500688938200976982968088368156441510070899825505631513086115771857608665017017646921076641062560335395802222857414871452315212783897939466129713151669699432903856158556309163493969132894712141864713634105184754932314425790349798144499070127576397564717698609646549668542201333166959685442147142234896234609464574257269850161873948466530739143408937525686347531339562804088867632275412455776723940874122468680657772806487038301396233062984091152472275152653517342220358698995887805099603065156607083288193041627423751733225210487700886967537378271143069295684642536699689152420332158524421915750804119007247075338177269427737479332748404094120963901405627396195208974089595114652268826422558253954733010028518243504418605968380280002289336589645415664029928897838900767049157600854518238020550543665718101547099111515105835166693648775167750708209236106373809085092428893340144677930093903741749716341057574772789680318779264733941766719889017572413601376297488942871871452911008282933114658782940326885392969394161577579618327431622213592162114354022795460827020604798244457835624789281808152648020826846435089166878325924771173934480005677998870717820950785878824743372445102751871235023580287540423254053609110017517818421686825813580371927996978134984985091685370831014642141697585865716113321531545414226432073986922249008958539648746352882696005661741179599175697357978506646485770260503441867513751897367832498203548051324128705899540639544568232931416185848971419952330813835483829588659870232570724466140952439771913175384518479131128304265009840979369451257287450771402202724123831954124290087247061949533041421926069948791955097604024560202134795374977195202600583932143575143537428647960833992150704831123096214225344248277647606091743786006628281897996106606369775517066195557679306562824545798177452141441299378006131309025427665516809729115725958208508333384349721584126902946480205345424001526635781063931824676534432568641358134330497915754762697522501412275865302189430819319987083669303719980791724198156764565812168799416354326586588403178111546246972753756343056773575526927746649791584837007764116611198194041959835184604943370678125173399176677675966032345387383987571639128165425759663294761984285094351074184812625098244948655234034811137914593227516217772997845669961333359079566309124431966401150792691141659916529539653523313046924027728848204125191564856369494656098565315035735532597584007637959379314254528871155498118976876582082352530798040686307114060374157654594321362391613963392929749419823370014773828447553857137084905841583571910672595654438184314720392050104988969768524281281721608062544497387779209110944427062395145674467419946428188490127534646344216905513564182089041410698181640434099196984263142369932830413889885669362643132698804486059652431190526066260023707425099545562150725001017236661172344326360559808088392717571383301161476881964218258472691324775730595679778181965467185551428906444534558178359678994706796551034158080332751232596737214425805443910097697356059807759030874047471646298002747934660702828617592752759801920226896982110966330645217042043503299644781460488938997737687971806063319470212585094950474358745068348626082415667711556309200244338357332901240875529041673157860181010098196112157494646372243579516369629786920691323479514742943435201479020014638225275982836520603593629055527672572288904646251147480830640566161345371727927865477534007868857008615701597430178834440558849404870743543648909340934131188163184661349519280758198700326344338610062671186933343140205248737318086922994312368146537346777286858270086003029435547503264953597668063812064652385762307699873312967475944807550852582074448652910261435868266342253754067193417755588250446838669527019865177356230004258135614209258239704334952661530615230563281701469991641368231596466118524314252834827079121754233305143097050162704697578641900805474941628883256288572771431518748677881544271422012542509642859462473621822963051128512355926394144115633012089649774327056827723115840654568150234996320341704592360965990705848952293018686809863785476249037748380781311082184621842504433531981429396310008449907711384313422015681444196153822273823275010358832954378128652246681597135311696845893770483806094407249210689635524403385479625212941203502821503024924527901064541667969034751663976986524985258004456465202336666733192168991382088165765798535882604297838849144350724326232520370762162220015583294239029932414648266555423599753029400740292237477042099962754459957032175644747184131767904588386673169770039341404055898461412042550959784770368732009665352183929673086534898010484665656619592386601064666855031377092512094576139007963709552922156447360965233243935931297923270992016536670231298916899294274083421909049673299431852747651033503042044981597335191457831959028272830109049499077512586560503480634438355074006606746198051910583402432125537855309714637882464124107431236117832693852042365536126786156680996912940435818256286416464196871022666937192323892937397103056923832655698425369597691123204169045669754773848439407107368768293285751698026786934992781052686206450151709363114688946300527204279024750068314213269714567727681681382708395981824651260133283439059345227227159405456351217532833074283918144468425628164975585602384983335543032005994644011291740824902400186742850825763621429754616105581690451264039384363278711945333158664174828578554163779259184245522700638924857865077660306212352050794194080963330765094348358214098272829943092121454869376463044626120367791891925112772609862266043515130956678934958611789300009552237055074260965237793270762296907259831589404795717632202581145325081793162984180555761331544446803922334166760333894006858293803795810909516441454013034572639262737472206178461455709213133673290428928920635870866452453279783706978254560620863572142543692808556935471068083716754804508799962555161225164019366967613085830730456516858654782850094086276714526357978580849203181462665499123717255535397296053405415379644478925390134836207796583772551411343536834740151232001562700711875272361868676100793157104838922826692717774156474298488302107421563414379190546624155112474061169374597627146993291313353459751254051421782432957398855387325886929160743217608548199880843515327556494553425405038962203034778471773830340995287677436626891764019514808001217762249460367263981809822634210398290018655854788797959465335893345508649866178652056171805524899873269401093397422848986661380560079790756431738608162415275118057911267918024751227809946524838108111255302478419927553729120181017347198967071691152928907008244262817399066389146432317647731127500480522761106954457803428019790962464426044298701504369616182166128043894908888988515722873076181564389965256174965759656919338421749286256952145423957647481474919550371967283391361919688979099005153639257335768271465853036510969071397174342066939349712533699124926308829477262910573522823669587073591447835722879365801511195007048126719638159813123806811157443162133932420944276991825903706916220700885535787342727508783673483924729535113690907109453970122975427823871450930489522466566750820803256521168098290224757315190866700207125844190659907968384219857159797447541951609600845290757831165886764883206903069736109126785710391974073540987116790182287395284178287977157877176077007128009651989561407362629026486662602742305715838407237548610795261804300998832118763404236961674455601669361602968678361637447540289932326551149471896493639548047498492008742492375798309575446630893079476140918026472476133193501512662416156902799206204911382687165317601372396001931600471189997385246658717063036997796400290119193021321894371509329807031411241354792350249866963168783476230608819289673239209865413135245658741348957382124505648564070362091361861162984911379737793855742511418439175041216667201754579744515281277987753095803067853964779643814759434014734316605022037811432455366794580495231650726500038849438778122766938922354251996413364502004340236438458541877348825919430927981422144217659346980764713594889041507638974734582816271280385821761945657224795210021871617927122569485838632400955371443645982206838415221650637772165072983500945238781581368968434875393124441947387303323554903776556925411878854741588432797216079650437151310518009986470340541244777749431963933759446792526251244750798006201126531382209904589840837869087338991920687751378010635804797321567293542592428982601829946082173828416303115321656985780716161576420189372488276026725157925213666380778542513272066388329998632418886566944263999546277289715692836705892584295561190886152194065095736388342568748196275656873150536908560086505176212929152703844725266429800135743078062128185342826237775792581501393293093096852042633387842056288851249072127917133946948152701122894478198619544134949607758092567438676082434908661104448217307505701633149476077484902462073085094447194893364917166919618492645395590448874019219515516662419036016536826034681901938313377969519023204877901286566422416113655394639998778555132041722365485418872620568312808379687421240333368528384891841190323620842768816828501609729923428892832854191979046767580763886191923817434016306514796250038178912121814551970715288484051063201707999628083990147854472882793028112367505415341915462112634276464542551801918458855577416156036025514968089313948987893770087993392086126803830500339916832332623591389409587835464406164522453066400177129247432319436384604161620355867234668945095487340484195531668011568722419218770446535185267119840829663428573387458665526965079948167296386315053645156319591183069106284497627323572328242370199819643685203072709629047887873310122978894153221955768062833981778654030342379889379015416644749234783924685496557846570701653669136659460571735010249847101225030702448939756196449196975041655253331369805858196101034381162678498850471425082374230275118782400157132416793870204059871201858290814294483766141002958647736218346975280253252998881644939052899928897593600442385679333177489750874369846739632408212155007834546129328218412207080411870246704049832854774110577494040410517838701052842665731781599004486690738281969282304937315946325135634407214459788341982736658888353761917563964504696643194936308881198429238689258616910297699502519033098464044032170544141115497157233778014585370084114270048320252218878846669426052200556574775811168558784387035985331031547507231968227444421606979553944738563445047074662917476177795716516437651080840354136030963821732432363046940618700593856941937211001015613160083827744570167230140098247117284290543454650395077650055866535460775086169692545389256016765429726207993216163711671088912035785803179745903284168653264370903686558922875380278859597203377889379115992629123571365244661577103447080991678054893640395131007934585232483506152464291733871690964146327904434048608725398593530622276868036981226625612050987319379573843592610988928722433139271865742356757730712073401151149681276604874400243404804401328088098274338586840586833547840340031645753376377649728818928742261205230287603231461373521883551097047113632053273295915394390450555010597373791038230756248034207534371647833457556786110537191226992873229977860734899148755397950272774060087962026225653852948270861457310931026115955486422016169762230153811145005345762821649135171932665064851115601010146637782978122309543819038938433124393752475156032551241747232477158330631832238901177275510479755568920957890414097382633912556435300696924281036620861100877485660695267757598245673450686812856587135046946506737696498388350969210384656150780677459930374356435834415200556750286198466974768426436892207918823921589437251157442530011655554618516071040323010644175237105972436025873426847812428082373631586808872350714333231550636478938939030951924762979216913872242344431791814070034955318840015286382365686630556070652490535576954381292427429194181662242331628324699536145165286256744588119620584237856421677131699965412777149535646668979645763464067091477535808730801507220928661160409157885226570807537217970481250088441291251247298067789667948417329629398093308489521031529841564396739961798994306952449638469007714174839230679982093766967301359303036417946036762247292711594700333036610338200883774079857475030964849253503774046906930929463025889511531828921497045083446214163027791054774504008873852821374204835205358758283595682204151741954270780684789812310512548944979328486729174308306138591733908093852720378321360660602445026996629096650074445708357977880167568423220381307955513962820424829832013583504904736095418784272559788809255971492399780997440059183147204192110311258998299849650402321812501158103043673940170309595265252552745572039718290292813445178580226324209865594670594348827150560911442863777955278033102966359385710353330696649033935273197480463237726879730479743443873631873771862444466187592759705000741963745872013962875519371011995833500089813274726776700943468772704348060962605729228010017121189977273684091494411853933394313715558639404447827424291801644903611463810285801139821858644971198508756829712335604755984812543209896805111803134909611487392895702988468452587533723224075774128266298697778105172727429765483571410270449356219111428325769936861556377030998457039698990864839655026832151387216083023414202364153888897546925240484924383761576526557470244370201897816486030117922111809240423349427221395708972284717741036158978422783191951666373533028085527644142391583307020726045225398583443778655691307224350892156764692904203561921695205101683557243577041174280932052985298459082215183276199719731325370663395510711686939452836078893613368150114037197179538918685165995930577192306938766642761004979803571335668077306211790990677773338659382007094140379425911599092727366559090616877208373257472042666187448814770401798948287101708389869739183992941168336899152539983297021666611363154394350000088873298094256710311144475351405908975234588976280921103605061051991397590498616948583994855353306198480632110655670819480664485029922424201602062371749761403228145463219806810764563161078603030965020032620824016023937202253550203255492279299874071281341946963567915009177165258074124036544921810994926513577589107169205914657959252999952525379779954259730188761941188133446893249448418605100554611470007650094186594021531173811280337779860528176608108125775550540889283284982484852749963117189980533501240446988528081905294113973450554721211739524172492336766765341948810940141714280334936991600053637869553171953080354921310860855586067045160966963529698707285627143850898454806870464345296188365976576973980516258456645987446346931419738854138223360366900093419350135955860630010695313066050768747875460415867334546558341054677453200713746330327450631976717877845831071745416951539267515375158718019242287886305005815555784747313679470073847535465001288301050575386455138387371275728537361028631554394260970673261005941154567207064233816615742887299017209854050104416223065477361304713155423355054776022381538924895560381829763113525342203700730058924974865672545957961753648116698876718865288051644863316809644496209327001109124406142117665047789869312464051793395322970373873204116250733983597880278609891112506984273740543376058968048788526189504626259331365709257152824443897298586645270781405155393416003481453078664466092291101025842654646799377696108355708391278762189457317504703210539737383699465459392457703436543985907030608186538363029545514013337532530768284000304002714050463760452653843010488435414803175901022725390858257771417802416388916000731679462820057699476095212985959189231785445088364710720535681102964122781256947018960227161422442471699939251337039822251836538019957817362448047695776999299977304133215051947871535908646672440053973424362239877337419205216259083601219012674413291781783636554286453433210356568921280034283730110735852295746845913136767581990924747498713054180674762524446611298192363387119980611429092822687631917925298792294064812602123848658305713288728553747235216614813406710717799970825599926502463726615331836183541749033508161481035013757446912751793939146436590141434120508733535128253959782815329790571515203001337153044894813652091225840387019186220325660011993903525362113871935175047065875186070008735900680311100808401006708023690508547259939138455484077830382043083518208443319228993582754194211200232499942309913103789874586702371982494091016472644306751634399229236724139686036765083431662719123552758925725079098563629980593617464095801530903584007833962373498220771345056903072736675578835968090028714894536136667654356521690286691079732600932872710642234259337322340124096934014241131718331790674920705876650228048128403092081918165844326120772705233928178748911372065647828816608209927320788812310589333130473537880233257620007103486800848865702375395572351554130629697951668184531531688048961547610400743397762591847268786285573201016175753178917425685613849956016902491142246826399168925456474911191618496100166619305750128889032232137791556595079091371884183452347824038492555811978198117731686880553895131114224864276730736149290995302231231883249852265312474770193290343872029848084887876850279473985550946181796865506731577180919089677899780791666625886701710718423266222301327875994090218895770787766797672291845153757047826234567331242231319504833522857287976726499192532518593841745626569400875728134985514747783336597942583365120493216770426915493628098343107085758055173156574000905250076169101187471264081101891486616654329778658657137926315814948766705721228336845915300295032252033565016408859145332223028233809174014293849549875978155034802724618959953134205184228496354493418608135464428627228164688966542347541762116463592306887313562780462317428469495974945828542906113244958953577147631129543827549345810335078699394761498835777379878044601567455244893362664878854084741988373576690432013832554721981558996142658753971586384206418395079907071465752115056052010056956089793857937756745184442158260057599191586805062868147560360634100964841289027736652170590431515182268713976608544419661221725663024601375899417909167708006945594557430280203848918814551080394212321609002101028185118710267040861328958507837146330629573432003792933780815679413003753881919416505699465714892197339696664255844224999212482073421287580602515362145373710054077872288210697293895493009801815504143901661183788829490048275132597766521202959717500766606357557273042068665606880445345904195886079087548775961924517725637499159414244539588040982110554475251011127804488113686845999390653050204744007016063804504457434375545186900213653717174729961950428189504782243552075571768657646165803680204780670430789317619887155974819433258399934237423348829843629368405360450374658404313158924176944311738777596757329755873647468283808089828313816299250180088113154540387734724028424234280383537498268323294056246713843725837311010746008553978739735500741915975468705432397132604889919350837410528617267884611620379163895576964241397113775962676131319305563205937986880116311782813462849065955093152223599619183188478761959333193663638841923774318555598043415490023041789653101414104587407866094894998441052084840512951817689913923601092754732230178398652068203025749614949014793093294413558340183305485405373939736846165898342981447748300124433419184191862742958127169721202221764450507647548587736658293585737079860052577390090957555102317884857666789197165088717229114263472273933623216658782311696156519803610583682809818780618487945585109989623586088518043432520451032447107258945810020140465458097584596326335916081755592823312013437071689072920898195934832131312255563047510178354399242984923895068706806198319652863017198745488788254059448625448612849131280243792960492793416093660858525011665433135960308876240732766022744445749661894775694958379274401446592380656580214267889882259896965668545141315798786943595283758441721594220582383000818695154898300361153741445598255798231350614112560307872346675162039355752797124145213905919049917923370111642203022065821139808406426266738203323473640677971842232009311307875989243983961751554250532218805062929550802063080855633620824039044990612469978217020139888122070149375430894665130295176434710493990316623434449651694958355179523189135415841865008098016216805127641360573917811256116702393419892279441347898051078535913803882437485934095142340728556758594556726021533249685325202203684412319481779720664655700097141616349265106307044684676224159233290942879576753761147654010608121562863492229170919335531303796854971874600587565791189822296002298159793746293881712655229352774771316411407963515064817635924912207223410672639222653275644054517051172509753080083841688885343415857921582576504368254421099391177362030503076810172258648053674482718969287183967256475403591941789843781685441860163988894739885065755598769944807715025205012208738670893848416027653094392020351962772972780976144551002759844722252836390041069426900158423844161816093533197514833964719081540777305230990585409859758041303157535221236918356787052206774758476423842762780794427012506380265882003746596675753364362214735312099183876071183728797588650576433865762760040020729277247604797322587549049446140601633891566179765409291418034901230015706969018936678854249083074058551124406080689742532511131149434805777126713528828686408418049138444385599841653923071915657951487742138719319158037623352128847681202202591186544405323131365586039466213938375895692909936379930665015838121027978135380508312410260422274040101343740295834267321298103769942065977508379813462830302467634342683502764831509839034812599445531898742373009289814950071441026331463562326479134643491669086108284223979591299839730186199045948085940973941041290575332902829150354107330727617409423966625219796653060617632268955311361751267132199888305680746472695010390176401594437639220838543589918124428626070110503799447781356858604641510074617751643353231671635350280594289870787076679404243764195780655870131425801755040840395026881376375596501205756887295060362216099949021396859147664768209322191379201262731129034692342815973839986265341805211319527534232172901055852263024485384479765130287094283411235340551590539082112127766659906407854912129650466186774310834787216855742732661550960375152269378893794915121046217855584080780282438341286185056409514288757033508733796057546790395297718307919418341774244694464809654925214086486997923010615119218828063802609516136761055324658390351550959994174254903287485185579064658513093243048360725782609664517730564465193262755976871122658680362167621515794050596339723839084851895015216760843804340084176471696369556307191602594412202027593881460306170413738018025677830500725949883533825057655646198924602120831719590027641516303015236869100367000767220755446189332145259627897972414761952300649845056842699471436801596513196498433539009739443655969876352129282307994167767240809465643100908254609672031353428712257840391428669245271979169834503189502390248235063900110086922612048039051801502127800639267274409709772676830239277562405512942123005491455426405558285099085524587059195334778431793080000026062125136122593540070502513240334177122137424596383113107812433694407240118381428113760600585679950605704847822916135786843909229883477935076891957941392410322466795329484660242571988834230737436657653777981075146716682035803413563409364884686196945343998344660910229413015364568472959359212971501340571385852952733913232198209939539968610060629294665928910163159316589849126479789664509326107796259650840692881030761817805162462015028096967533789253785384112376669054485392355347660161684242589413910467789905576725594499044755973903837956177169392220876836645368557177685677775194363126448813062387227970178523251692228853199802259398219441710373425744962575639960630680897768158995477620099022599490920353654799948269694313575893802223487180197962531094057722169741718010467097884140790763981154238665251847578873543508655076756167456029660767403528076735021607883666708602083274513003695211289666998358020969634538926769601241358491944566881961896971887638912623005271773386253964036274296753744684759565490238576072663893142288668682187887604414467023471280432573588731715592268499457730581317144661538058875059976732269694202309843045353132190863333976092984176611494975264765273983571142679835001934874315168100894984973579536514306252279126705916689719884096872764739633723801424226988354286304326578740386940116600122698283217725174898988308596110209789137025061012816037481556298949315577654690919983569162605932825108886389350951108582526288953100673766513914832895743064553962931789711193964546273602906134988901955515440068319965080522269503816647981909243687499098013195642518417634844886089941087752028048338009358291666229690037972315757586476295721015322020859168481246875967718286715831492336595412514116488656287876583653014366061287890477961901427161848636699201388456766773179961059074678298633378278682230497386477102142784967292657403101749865111039526671061143761770147422471376741183966173670411995784303001524400049040867535355718202712942839630603863363408164192246936190778087690317549904675422355382088088352714378683734616893875547049934854947234659016587991562342830611321332569626950042442742390071724474685835231752148047410079853235044208875040631910252412466258364962890253148385446098184022338749303948660397006682540583578515628732327763593411533735778153289899418927326899547753290426712819538703696212800026987609446794356998166898918655300968677297724653443599156146337434807977536210029787956947356382688931370836642652589969857711980048315300796852086569936337628922418090977755055100193255849640392800931320241176253019172044192473834370044920839034493883996448416736272628825313114236239994086079467184916657693269941123263985893611943959944072229260315918444792438976212543529838318326606118112668399840182471892318216353519475588291363966385071420316290115495342062783348649841650618820193360593790290274393102934434821019742808682063203515300163686669039515913223459740815816429224252476831308043841481664178950577589685012761178273822358950411752307899451194861105679781604259089004284026599161075629805460882242593109444394421421241773308723888780512918020375466305789997940845191613588882686534184233338168646874960832406509678868243157266420336420209097579361680517980462454056079028989215399671715726551722720929561810200303590210115884513423332521663534615704517746008356839764281274973090097783286486953477705482961296514475147943885035695006556042201078601457988324244764670195490557323099718744743239377460542587341702744792825764193421287644493394530030520554363155401609119428335227540080831911926834537909587744235725847577361352591585736102043462180984921784843046861075590767094271608614070089165485031795197052427074562392223986894820726482701973747925294890822523981505951321835827907346664604237078948608657601607424436774377009631470812156422672651289812164816528197009723543179609636495499915546430052572167822885689669630800566042813183567141735698614326638966274867530935699156553376790916411328036140446149365843086650769822741052853060951152949263268946681633937047478471247690952403293450671968556771780926369984577801414299157552323055841454254749290962071435478460304252170204507123063488726329335799147480412339755594555617051685707969915580529849404047079418741197921999214982608539788172755401533459787614476090091323223519006043235969163965124144260728709221911200864707798771725223377864024482799441891870424655249189297026489069264308997874788785868752260654012080240930905366509772371712170339682385560051607933989112631340140036306847254725462443081505221939774973133471532358482245871195635184201740262192091595984810269091329655072972092550307834120044818805120249310819079856891061608273284811876901678340764169667581236173903241785853195914904680304946701703665997527109406505944878775094935166842722886324576350645293750339599225669079817674566578625217984697899074175867986907695257692578226453715451435417507539530707558654409956320003956962036503944696884860300660894647622422445296165387709410753635474333149433305915806880803745240090788849684094492441652459404655600036567071311952673736168022391191928436805477359827075083181981956220438011057538319570613002766232365374439692057081223086867566521341772490399251810136556821061940008519640431688565835017205977680121895620891802119694556989472609452189446416686125005801548341716052363710020833692044640376478224008421575446263011205767744831727951431990555850871539023101010887033062905837781572028093941908340795738257105880731611515399153196354246876820402472651948433988454046708879001822678331528643629976925582776264759562078489773084409131789513119784143803912199940344516707678958140741535328642538714691140659121707801601034403421644846625006955998239730628569047814247418916752374895589193501030932870085657303010030559931178419546581187603757464175496138356656167742505024101451469406069145251259678053718444736777354117054994230672817625820286330138655229727782095198556049406784025416402852968162158578781776220536684442142321901639069029918511499093395725370828172965779773754054745616184436772786124950425366813491928302330411447632151777393840675762880842454968990582626187158046511527936090427555889395412212584248892018873845557888875128676141834621445710458010010913257331384309458937583280310863166955668413442332960127076337437742143095874894905716207096631323680655018635676564536909570943427289928700321033941496681159779887184861602747120156290735404180132550187719180694323597482926651997935206398622891019592151580370137625475988971330809069900170709512044741493139755465163244740999824389659834383858040058571657570713460261540624498052643055143708332683303962452363663523783800015028991618137901696160975056814310040362796964961989293127771166200673618827029207441166766058403417511739760980032620741648328663502366174156186651537991383394864930103222653806709097988127982863583090205941068642023337682268522162900213997184606304643208700585395115456803181669807223953837938140151917154383189135127905454147552457497685684343103010385049201708230181593209344424687904517864906341904012254581309946013935119339836544619030169741009673063681546716017662187717780559270145739785654066674228682018224752619516783578183740016870987020196045018152469211302115546202708664318072653109618177922986356658558751083472943154359522900035494527501815202107609972503825484467867358474231128644617382784024191196025304393621291582651776908940857968398656832008335953085024747493160547823975281094995310895424396703076791811040045904721917650326137357842319141957026392972850640977395993547986265437659397980596526497584180351400184190108231564093293089206717350946161200931469599958450589729484388197356758627592605070762665977232006214788279026065183195508153626627244696173122278863570387677784821730705482428426735049486662412407743310325850897732881787958083930504533422440846658759144533993794301341540479337804737854128180195819549346920295918146533442967994318666861654040047405429692874144068708875411487174571333562682932731090270700710118481359733781304492457278763610122411025106891446940247061780635444615717771974676595393127810210856349094340450097990647833126184491242240478059414163978672541210111338608799113114440709453143350862483756009960642065208484661245846224408025711447960126035658208469628163447365512157813779700182031382316240156212511176362010957655811337793708111116744749630457299267051441928839499199341508175541062197707469249918522440690097061954321523639069402224203725847510585657790647215119659876821102172400910829752409176439915966919995876996150799911547787818990523010682279893026445111599358605367845450418070036170219773897943289583485979615991064287813030861127382482862014920873214499334457815258701811659825988748978529798483855837141944138079761936462721414273210246999195216864041679490842265381099576032865364154732918254936625915229807593217952656015498537035421047069640414510306358630822830584946123248725894998614996313121191351981174525037552478908520505817751305899692924053251390723818105532065231830073428976161357505843807214494418041950015448569453710662933880730142396338677215474916095905859059719454233213315052873010334026001283812178618004820445026546015802087961227741791704186528787934548258594434381463410418661720204745879618986076824545913244144978561266539815829465032674497368621008762607149048870701878429599732217082088206978870667046303635201537933738965470124503317339179458725596884000068281463565371333950369911822986715488555816163633479619298729204042612958837521269946796703177118664959145932812058685600437906559838967836764294580196079842935475839513808215281572153954616435997879927097555201355097007125120508427250947549562874786871046704667765772836134237552625495442379633665183102165124144113346474909448436068640799015410209776111413945038542513233612567677736042335278234514417040446282081370613566298334571945347100942105986911422710368317605228302847345096322566575018854091457328810757561532151797431519428709228406191534500381496543356108433766815546387973261703784969659547136882403440234823715861637055288901121625942252247274627388567941605097852776500350144519907975947439012612401911509580876973650921329476656386549252903974140391962400589481292559775110724666882075293074957924554772961534147714149764303058508575343737753332112038846262844408430195164726539465737266811700787528954740209817127019299892642114485799222109882703384862141983471095474292065107345035867014397987665505939688553824560179799436905283473666721605142835732655209947633857665477634774220310436037197218581215544487436600334874990116814116655562775792335704024014056464325738111977359568400222649597388242170204649400197357447880925278806334645783539997893396718635329286564002579354832568596015988494424634376720138765336098251516463504968703251351651811204601920680194419248466074242007702502175355586910086716131766364897479026592958067772827193590859740406314954935268858986066340153112918648283852139789330260733817320906801838306864932443915386004651243315408617243448950117055517944346717467606711772304223975789334980873130842671545289549051340317671583047377716486602377565856918754505730962780046402852826451104463535864808283432586140278461076073080605281049146836482224283290142603715464596716897462202615961580948978073071468956947141626422317510116573241282837578021382435556686973943104384918689318637742799243261729943791920147286754702755908422785217097285062047383394232818115697527003121333299801892843025939883124934374105854832870795372541421947106860197970180649032967581673921526854378305052813731033831959388001813083146786430368712887037396807194559210440903987685642478891855756678192300613976015955963451484760241057991379914057884363765266001900294072118415600377406350261789634612856266935095337331565258671408169754783520675110675175582911456263839149126492605504677995324894893545071090715799178828399085371103321410903358647836821814571373113868506734917147991332840546941699115827390066677917587080420104820532381705066697800027041683197711159533566802150705775931166436660576067434793592845525171573248498299420183916311276119362908591570605147094700858301556602078435316617775665351512438472418006673208432553392392960552995898119693807384758726846078833680633195414837647513921316546514984937894521156052806994369747969057749412194590062189876795063233048678434408122534210303864199419423828989618641154799840021366212679913606825162542711114790126164452314739132279978720679162674798648698067148829859697848090232986624411704498417308856222146693144721586471303947450320269685025994184548486742026987236099943704755356763811689726204275097804080264412316719350780737886510551121508363292157398522219736235948526896593568110871297398376246852912510967243936926970863348640514820889506803909338155239566922959312813264682620558653926374827064864529987165773872442671327524095811602951738661364002476398675640553107074024665063215766819111685091287432051730462960054991095630977714277252151740525664621879832609441092079121542553914545692558554792795246248043112598329080747422809898513824656714730787135854151983224709455719771140430321340736699326911061034789547823451596988715896647811419064481119316046140818599628325256811295066752203149662462224633559736833151447879480283973753745139463819412918465992730716878897317807683666730928462136112475413913671806090278386071629619294160943282964939848777059157504567270044647188173357705971027087832909015315720663890999021001497541000136200945618749891175973006215006736113242614762650040324449630700742308138554263074293697281590779811210366672683033728959030822946845150647075627522415894926738688879343996884964596836958199825105069923008179185984419810696161308615633266508194351269787733275439959448358482312034673390244885520035871866862204752272453463189737326028565063775959823560658017988083645780206557608341441487572141025483882777866765303108486680347991721451614788407153048922193683489860627426957405437994772834227771084827624335250731531975255281837054965610673049178870262856291379122191179330197031214575920065130238186673896479849608554257625655913065146734901280552859606095364615245322359967621445097155841053339935553638751692382185153732584871940340110904579389979432759530335023449470836649860929287256344615401008836677855736797606279906541941305038360254183413330718931583338636601876716106959363984645880233723651215367991689376228002894774091129585946959782539347041731628550855298359300744950169725435564977079537544718608929961960208963695394208800446453708041734551598221005595907697544440473678771691058951635909759263891388152655680871957723062368342288261873788192910436203443473061472045652786974276213381254553312765213293947352394470523735924932903698671749176162894224732599120440538168394079951070175151242065606952438226710144213723576899803022236715145148271309142326634719644144644986926133752297457116608543386325905109469795261199792818422095742266996626184145681257915053293076879534732127095469773949245131699000036911729912847651159452483228543855644282237406888069919311727009889624547891553904046575205864144247452813976344501787858324934157688683084623058710457745587915903031155353582361509938262547384130111765177267582542153948089757503665360873223753950432030754618998524243860377119021687848984969989095449096007806094959996703603602128001787148057715452368264318647894469177279584614610718074000222745749991126616419004829415653954730009739993752681624825338898048664168621724653727444010770275519867919208897601951528649654603217952658519609705058313220382115841852692221477628150375486527843042245330287008882077679327435730186666319137852352747966005096648563221019063165555740459777268340669135974044232936771923642295859463668549819378843310597525054171433142681842587064571911661368590585031724563680140297860758270613236471344237198354189735948000933723551218681743992095997864115197621524663220973955378950882851860962321647777536631845279035349074268623182615397957060442262533114206715073697268001377609967726585555307739931357535651592487580832406267505499067970210483729002384781079081520151041751079512060122879280192979155252048905883651951436460815249715914604378705130899351883230787360843644131834561304093489806968266569821674255993417021194202154353223314569171547627571524181345515584296343811826461285483798027833461115431061841987506570622528999148927699445053047818449962566637126558718943622269345059524601870769756383725069935799549054753055687032582207190095384548022597592454179683542633849609293430235643074910920589243790205730458380339078344839701790868324689297009767428062895703829338161582438457134542212185468740092918774253964154441293536942150475818883782648165632113252233077364916541018277591200080695320123088550514948817054392141371490647388013011256743274611294860888537321347085030640379470230151108282039715418646425492069633609790996114545026264493718450765952616504006524220579076489146761344807363931507174832821232464761818138605037548790858235890601830642771533691220856309604046249737345989238765766530059672931272659004517717180822203345215896716412452340705197439908756242264420903801338708271277895921161826244425652839464285851394119516134798825758393800920774970388633368961571783010747504283176700803143738267278672035662958776590144686872706513207439037941798854330249238878190818637831266474720078324890807883784906760619733914875599560361888016417818232853024633620672921821249147987552596309061705756060648028552568657054528802405551358598251859848176042354764897263368889688662783376863079540154889662270432493426436591051641493083629646236235106520117306202429767472359253718758562681505094238107955590780701767941200942114043033595441151128492875887969199241752424912704827378578140911806287938177127574557185504457243167567676163217623956964750993324820283478103791731305559745323434895028943133175432244707468061814779123695485756817812047337198176355931836850648925647920639032271237044313259102377619032785606110794787486684584734508424761543365916219194014914663459530223013127072287779846726349336050411320204946365235373347071539433978126758633612410319040443787638564671407084688527492257666021415457154562805161840680110464777527405757427846888737321099265718015164799711899516093588729529582954362450637797275778493206245426377760283359780251782880857929255611764465090215129921149404108040525485023925165044550773736656059713140505711015618881958492782768723036519337756215533966801844904131506217770478533244707721068302659104242957713676658973289147992280710174059729896746570824349048189337842080309892438824307022474847538930642654040983862065855486895943829214993324657237277133889946996383507351887591398703946918318125083269552631648347627850472968049337249593534074694418805620810436513097095290679412577899754199798248038562378339449892139619336046462655119079017971156334618867537685946107442256320907349157410914817621487900086208457917896998890833427678270059368543726062881934878462631649063467027455884699546142973621438317013081941667253536670032238564001062097340265090146531406017484608586296457084229643217477619342817865857955490379958989310952624315244042148063970485800288408607155811939852736489236619920105936390490980939118645083304042127755959352780768549496936668692674717168139115816618738940098507821848694098129389690057660137672644652804934291840761482013794934979647266361637353804217083055342105658264289637311821091786131761980109074126694895869195846848683240893729749673832438036027830531986356375724683848850734810808203961926012220749482566628544509738841953003553099988901926252923313922953755817428549447275390341893021082799740529321561573165248719104303131821771146831835766515669397549663475836504011210342579561310426763514359061176332709579434400521721013600338189277372920703085505018547811216535909833217401561762972101619821040316791774212072627614353635102200413420680032181253920662202302681982703480314726477112368696324860363249323974924797608605756217920194113848131174076393064068382016432632697881468631047976890497609571946380955993768866104643228369994454063115016194652449455056453305170167192718180648157321635514408071443660035910597699170629462989858229295160451952727515183536867932229538264386638130984071181868190102749737730806422609428797022230991610936849899589085132140861635896289543924710183648615325245996624145802053467415305514233891945719715549554391142793798527216764331682618971654917541891269500689118666991829512323740587449691939524874021144624268842908839146545586829135543296610702446215988887568660752129333424038905462217825748691528333955103288934861404960181112769033922510051564936472801216647177033942591842554170082455030183950684004827080152550850408138113922807234366877337633385095995538988673458920507429060900724654862610723468763012804470842587306457863523085834178499976779189525284003146073955427240100046715824520884636443023662880530577098442640280627706870849573874731591873197173630275197635358365651617574159696053374573289933281536976506274541039265744861902787757312548276187421435839094105392389729001235644619380439594260659511261874213129449096054733441632224625315596318483071797366807079150483138513362055915859058176836420444256496276588860334051050045693727039121845734687497989101436448286722515145490860844679053822853199040190092418920968724886046198059877687350839773076787234854772231258043939376732461522328290035702138504892561252454984010069847082102438295154260372099991025393650070916227989450191188332701133435113681380274382070874364453903625919810392993715674192933972571546257850556833219309479620849326566862927101238630286794774855375346833310092761816099030961835993082168064732168706031883930022367222367732628247924661967806828500725561898847354575177095806938744973766172073221858198062661084415575008574974210851848850752787178194583984552116857062012907345392083994543165768087029175780317275895419352441841289850686371954769632750147825777510405836676953127585569858104774224470039947121147885087050890979205338726713242688935347330421354074872292496655004255088061435941569785344934139332189056368401873137904388645852678304520818755600715981415096819254390698142369954999990827733450517768020117675986406230875495514979410652674737298285743736327246197493161846902516885880961852310599674049722934057843025818308630521377017731966143408413622165601237889878333196716646325486486571872759470287041850459743625908295936902335784236082199553390883568102517739936361919558136124908673047735946265360392880158482387882633477073747517128626409211867432110956932614963345283359741586577752465125582113883542567109392211897355067806955655784148441446290265276983939559787122585913282935978535718593760947550275226294727148204131279689225797934423062082689086999855679389573280750153688708970709507127740106889883895092835953136663185507114023273451579975508442388450181267854823084715380848233041692107658651200005171513070872414051869223893915039375373000277292885962247298862639269064226987917861946922782380060088593007501880708439360482338691889778210376709427962973958107799561967019837765573663400306533405520659522116531483765566157145932651042235641169941842908821936756424371591526126542020990356361157252508298720016145439423245733944862857578759597849078644859470577102150411698598498456117401330109035464440622082228270822786244141255415915058961103207158757964118417953634040609325855858863925157928130274742116158225420360475424287611561480134005174082260362681189427865444590380328970455119079273723677403059196217955241482597333507725743107598445484722101008943445715813275471886584443984598285393155962458126005727916428334476839567600097191968854625393930732876193740686930440922066422767796883406897107256866400442061518551019354952130206073887820125866481727412443503747486651260084675859009710185608422841574673394861750405607675183046703469525197128304811137127218821546303306335387187641535147092681275331658794159793221878745311305742845722527787592434708308951720782149350529738288018731418973551234548745738102683405808964175332520426211779095627137580512831300975406633989890233156791191613384268768219700045439120679843299370047817895581881485815289537502650127426611165075707595176263758176800740316284888476848085115337580565303785600193289253387112100554627001626939678582609262543683526534728583024146305253744539105654477588987015038937460854331359631914473666958132484679837052956239455769330840743471886070555858930757794828757253665358862379331604091473977074498997531328745547185101526972033796687029068643162457207739879591669740286698497669200212726399232038134426460187701891813285550597058075572948425221642528295885631542063354673800679944198930469676688746288452127095902518318702163461569683688756291971920615368200458070617980198283879482981501049772680282786326080189559261986137459204636019938833942914324451466742170729880332695749960055587444444304750686180322489398280548935180526674864324589849634198099976647959773354794202187854603177989452899367944804697210853615789770083332626967887017769038385315153093240040727461072843362271610340270628975429151171260436111358692635174764704570511514923672286171768646036446125238873920940961775733783213033393527572704158012831095458551653425195746726498961774293002074625302803697550422282808072821915911569039205007261521661727623254309701043391180500340018900233657214079228666309822645547983259301625215772379164908888379843228289005448042133391711925319665710439278185061461567097931734162573621737607447427469567598220171608072023289568088096734061956149934341135237643990971357353202875088614009370970156154958364335272623938165307752642667871355437319244411852081359302188128761635820364469336596873702868229279001205143103780613438269983119489613738169019234480459097766582148801710121476534258946067845358396653678440010490196075865317505597497558868957719861898258064103846779299529293521989011505505441798304644139185797828427954168469174463438607765588960024768577225076354104464919217540135143171449496297028631256572285743908182480227912239270921731420739228098399014131631993809632283593010534904547772787052590212496679535750754332314770603398868102878052310087020511055631158470232700139218454193650762360115180366339073274072967035837773489333943599138722439809915729713317039306285794786187720055416670730511085410144911460074727164706489988986865596501603805092888570328132369078426928284472421408073050677153190844723260345595611848168669720173594662212962383704345140528055218459632969154338924476541845163953675994067518434246336791779132840009144776632547942584630702898768885582345711394992611295223010394747319400319387718005267895763354399109218192573395950758114854259225958306598362911210408643372054153627072977803009122805621736802486638217454802556397153026527586745374512725775720963976430389494955202279297573591479419476237078366382371822662653347343616452391736636880402858945754141787787780799675658321678036678333772923514982552362758573300077277532739994207907792051117333287536768960472637029941744173394865465955264608374643066007287398070126741356048695309692470180800812968177585470173510237541897638403143053791102134274677890886364235693767234990177246011854234741095894973431697507762174071914721892918737227434213617921569054234891589767887393477750316480670737452811444479838586693492976291809971136946700778016543794320962854357470800380653668075943902510031653621328089647842938937060750678742263002319739743175666006102271391494489099469922485289963945756662273992927104206884801894672579481443675957907815293956974619893507505891178121812359261121463844348872671417091156579190128739124768005989816950513777002813669882009234431535360067480599887113280237794142063897411846815511823017595992677358719307097560908616340939218944776889815911527429269378065278084347884791126730853578207002171170651489856508417892837795885102079625302250313568385021486242962345185228044392701838060130200518258834858485262623611871144677009906541299398002160043235852127728353151817648896672693726024907598392522362607882634369976663541583403216378485383795509127300458440619745491620931977674576646232698716952932025036871138613692033718622763649667275018310621300889795542031897999389015983662161789078638240966600851637541438053552523269988970575862011018205958493524215379056004221081678105141227407330824020697387989688267454202678429102492113822404102745889487900833181967284899870227131361053604304700683295915750507762424116191003841264996953231016704256971687574985758303107226407462957711734046035279005847432859552475423293275483074192040464293371037355010838888744401844025108249654740281565813444165424299500214368101538026268239756365043960518907796165608362150496330050450736422572421091999099664138424539482992764388718294496413746256025857447144968975980013620923282532625783274851513537068213943266467993708580539621112558896998119974669739729938483702430683581492635814752145704875829413745545250662111848985047164656715801204841935199792456335894965147206978280698291681525265546117919578447603752796708119522913388950054815107621349175044094213867724042585877597208749191385840774503508079290123814659905575241996571349876998166419190741186911041916637809704890625655772145438792412936780576943899325375248729452650557288650035560672903647827717110113053402820844494820226463081301291825242492141953024222164320830496526443624371540503440879226501240559667878670538092323150023183014704658440012744569207457993809104315768159964744912329792369070336609188816383758855426524681887537861705040230631580829734690635222940322306868616128399710028117661841060689088222958256300739216670939537147009785040073677190174040296567464599916663938423747884096028806485990787210454228410010275576690530226148873295639172163512825857544904168888407404922226594510311248525408225374336042850858274988496255833763776273507270376284960972683223920138305418623181427827418148860189663240556083681519952842678509444789854015507481460319881065916581972830145608307773476320883463374669436251815226023113099426694542229850295771310370345229303793812535260263295977122575370734893037061722110659447464253530721859352017939031775098600833469332565767159397596327887635378947868969985346726287442625107515451990287915676554388086957966852867263464990842996216684607766974908163994068104750643735067428528196796383884792070493469018799341840234228191516218458403349902225879799341373017258061516708122611743021605573251604454450063581958305316439560621396569579625930125311581904278593454114445143098326321996230111223524338564108672108373641786885651595801624823622960133627968202642558007357009496441645813107052521643073327895114586805323747879452459993988039289261888572527089101646240690301235948133798943491685756328227440226377516207164107322161815074428114764707917669789496206438526061123851787793112389719498959416399651682584757786715474537944754804737301870186867032525772988883357103136919668799686242692368786489453368499150293683711007198214451006949614500767263746908542128936783403201099787302481063325569357250642566723425193946766965609774540091921364452516102356494388299246547111044852571084742666515427128184288171596579702818463083940195073498334433878081603128265347053705321299602494418276010088411232487454261689500547794315307825326996284436691683482841423833211420892294718746143035861546242341601828583753341300047984665590405295249158883271091113354557984334873259702155544000025679727328222199922009504009843576956689283366082093437130438297187745963062748175453071098123149810313852075288284849413962721191972287608799554314243595107337705177121148506057479608997309546659795550661181065571587101375511160489660491388591559212767037055147370193720613949693603035595684845285509787567671001883907837831113673572236782114565227592488919923163561519279616912961502809582825157971482861659751324963863701734087435980128030670944628482586955646917203723775733006367681222812126430454913053612391905812141317969205538395185743866377838919312115104751845033108199665898653740956671395178542184058102422491400713172700576129491460154059114252542023170209566918810922201447563973155880804404665674910470509610032660815796365656313684093398345609286067670186205021285831657732255565829471482934058482367913309714000758191475438539825503519209434763556561137861574091560584126031459498139688740003698213031293730892581523346497355748926925722808304739804139018061155651692007109279693565322357878665836162178588106040436248561666485299118870415842001943091825685130167167217784814212872051275221429050489440998281374000530798463542009200374530850687517300977266729701983526931923881322368454638054995537356639940936345075771362257674440785112767551533387367110323983022581686556300299188915308500602679632513997539257216329587038660589360425181389492721347286923020961109795347927433900564796693765571467734293579769718821579070476327000959346389049743798046514542947955491044652858829882395820584573392363208310750759153538200013403471566159687951662717257207324210453036426377827721965357049661586611850308098837837625473368179362393484779524889827647630181104829031942035519354730945519869328610775821352027692702598129457964946386096469106748152323413718184453799346173416393692447587646713807359188362962108760915035110726372998014154844796217673692406595619322506685254135288121715172427312963138765892907140848393146451963234343221001255610167114933805849750412687440368712135409501673135838185342504335542465209703464038051849266765041164053057335664343092979975122186676273938118444579037300480944763685296572549320953266025609540355218759702414014309232125604577563126823234819444354694491469411660453634439389942845445997009722739482745421149671190804277316420760626460377331534391677407983981617583555547142286198913186229673759717911217433429977771071420505644997572092379601896195844905307687155028005666083328872147352411450438981486249001795633415594428336090690200313225323824149430125689239944979512009781737916707481348734959628669272865251483130593027224731932670130252546696837990664447175680850308734992682542021633818562864316864030879962912773813408425899225221445038393695785621416796875713997037941989410586851593529591865701001750318611696924824752830474701126917604050171609639118024348156409554185882046484679669127675815808824085234796234950103753964552201786152000928448997448955774123246090528081267191976620251258592044168273360445262271606533757369800847572656763560595667994446690815939980172188852695198420169242492453464692175350911439681920261213197955220714208076429761849277643807730480124614297805108811764026333713733227919851083200512360328302807319244771459935578139432434278804351412975759730108050309596227170829947882234249437283027566313075595192506541230071015774619800981790036262931479739309741569974788312994884334799228228430315898860405443681247676384758314723812816305524845410283452897380388910647025234018613687979964225375453685401701251616049786628233367470967346583248776885764240393397765302065493460818475968674810154377570433574550461942672305513285176203288514700066393274687612605913561857767918426693207952646497942584039458194916656870626105046547192838870226357271644234266937198701934227551843113515779272499804279212800321330278889455726136245962687414490339093375738223904538724711480886305381845978676991081452504800941579155923180131653514032430069131604369253130603967856599089318714329811608153702660025971690447375308603895537178959728869505929186095722541761608911844352003511077831492743212457076192636941978952874699728090606850080544659159225134595910415499520802646751551022968546528442846883023623017754314825383645745688051362520410464023971856481032370523953971723166013900234806365883576387924047759144897664526214359872989973303039736969926264396783720935964996242798474340191295644670820243050239613073844256257264335350695342832596656845619590008214710906250214648239176928152464343930739398906743839073068815835793699682607067059503182601141565872108529217401601196048741047531275518995267074997732408385477257092889073563747405679604142582998589506891930418186475186212227314410961723882483271626608300070953091051368729560509874765983686493328303557527215673376029373187642519334848784532042611354978485255730154625500147797355654431898067712290666269212153602344740365736943086995912534688200686349268044962837089381777057386115182456787854034940378853491285106502603773520421532930496755184471617506214799130752258856932756580776857119196365988289112826343018475683503160889611097234085279009698760988731459696964565802657810961676647031988621452336447788378861480316564657431582331406481459899294131959020944671959501996891224923234204176998406999091215180824755888950878442161012250311690590247688993168153758997744763249810623216529869266251270308468815918722201048321926543031817464692162378894028017910086611881825226022408663388104754468685194131139521100012434380543456381597297641582702407527797686996561968042052826165197389970089552575860522892361839484620774682324866034010922734798614692600672800486210390312675264396395314254027865459035709017095996237410396069243247175844051172582924640107592972686685597841286818509600762337677296298949689320711078467126826577573939605155203150363644602697464904007578430491084308364710758801678103581435983533078058213258205793919883814234849483194948099505501544318755825746932468352992959344918513005073587967354302980267240242671914924837315799709978207053328465569050491827186952258777337593635107155654600711936521605991962809077046913895360872982335613013151341666877159605283237201930666681379925818417924027407010936457827967136102502621224856309527799422818007244099533492442755674661201839054658580175420382241208607796987366848541443475445032366193436079019132138421293077838940102277613522639271370582859484104415923158050989634881832356596942658832970181301633431822444031046691400434665283982041021510929750658748934134588104979672535966247188379718132063710690629846533697071656839528926158248246788547744649074667096408686095744262408613191675741278921890140531726652283340792307321408174648947251733633589256707394654731632080050496399954025509106297256591004334042170814943627563351172499156851676790327767932052386793242843769019484681854832440401957952400728225498756830920299293369534454252754912525860324377261280147046755720883111544465208306479338142686878126087960841485607703529986257113491597332983121586709179867546005642007387946091347536462167746123600881724260552571650454100750383261004169155605547493814029905867764374681216135817345082341608051027239112490689200080717731259834031326225011262137739965425410466119329826427341307569493362529172366412329784779513331578697007167024404512108474998401494206715756253467291536835045540147592814495461508090288091573224832894567842822509752467346992377918741077820091235209382431383098092183913752670488387016031949546541061409690019977248109792493989658946507078021877822091759958225221602382827594244548526993740152069800138423502462519409149944079466510619924747775030873831234412330486015939428503576851272776252146347731615695069028768436333258980723593630411637543113375256970806490075690218028676835082614636915490308991612089659984102410208621847484871077992492511697796761131677830104958770344670815040986013280449005235627776520561040387075126584481259204320754519839632123528958646437478827164601395608619525439038841303584098213378586666772101792709980147681134320732303104290808715229984769260804380993002285388357674647964221871915291296550487280605421739352718490979791049680515583903504506717274634409155482026297228247757834981033746184750532549394807144707304763779193021483555602092094348236826025970852714556076247836967113156283075999248165562432958857653622833127158568493374847764236859748329954404420709543693587285226263062315136241704732558559045500725747030046526426073790393888408032784869614360643182936929751666718857707653565556174959409490998967204296468275905618456689340413656766909246592592214908739257071951442621198934425517349236037189223033076929186705279794042519072784851121095451015846076471282641045420361748851476661154437921800036738945145373057920863132124372951255302327541773691190407882995092935836893260025630713939662015188744157603588640130749159733849571074439114589596985100054749808658838271998045523189778409077529963126134851241292443949903434543883202415340666850892694833921529403767890019314725300869136374092994946863287935977132940005828235205381359956966468542986725210715779052958390926052039574903513552381716643358081008838097894462301492121561949252151755367858543941195915049766912179675890322372725577539256592494172480960992859937110263979647204892829268745779400580008427422103090842238502625292275629340323729120791281623187855083266788944305765422297849574741363644111207779969376175088933845587164480433584956499775067616078579126990921799846574291675012021853541886381655162065100515938639682823440936274836783309853594247085335542249857700611238824745456750433999806460522060402830474614394025982426475896922945333889566513182623299919520654315361232135925784395522887397240218061441756960199912079436161881395218923949927648783607918164013586015278919562691283109067860339035914694772019930056522469692116590256429813210901562269989193247607038427529580233556719026668093717938816826549092052431735867447958533403910966676038956214055255877035387838777843896929215569524361634922958341363469669344494603528681425064700873056629231803949693302797504519082918991532922302103416808418531406773294211378124947120320165177741987598069208319815766569754194013628858353979372943668297865459341334443086883137080622083978451910800302551595127640807760454544854447645587906749689062175092213506605816566402784862070360345785264019714733030439830209387796246672338662503302091021634705335160820934118742915640076721281159880873583189765871150873240164195137581990435014160899487308949275956355572081246541130347479230231873676587163710160742498994172754928404651484922302479102264581114503065100306376997584943850046440688817839695507549616139395304896611123464943441892152708801330062118336865905298887943124472566229572589999137331121545030017566120556625248305135446864216126887284192560461716438201864305977545076628523352848220031383796168566005463667678596627214305039344304387562803963075962308333501512636937250020858236629079042472404854989324800295743890135882617923887111215408117546011276604901345651481755680742655505105633367602994487002782651897218920215399834870657466705158297142681441412812671610725654671519170300026086716481401865497203951907468566038633631431663560463136307933930537001955133009222841304593325215307901186305064250435277108664690099839144726556632462889923935704552746458743494464677391778624096670617603796749714946659691059152020213142178502733496759352498854089594982736770631767864273784083911795952456551209926244449078336191045649542875321323098562792113044290960286959696272109736747132566255470405299588647356185382165319101953113228023988328762966056062170453849043571710171107822685322619200402414800125993979128009496615288714866605110939367163935250332405714409987464996876021536084359011170040171274131595490227403384653209317079743696093931286397729348705803207609072666098979967918365861259325301641113280322824316782392540040054360237620618143864537599471546097936216788300770563729664154850715301605484461849440952577026436324531841624273737057285988353207557010767397626417875708565094842276478618991955346717235448523112104730985968093527240142182135686073233994976441172641530562365302323275466440608152163529345653277806152164723452443174449460776292901867287287623847311827580458109567805771439701892709195856670701175156234728625270126734995199260075021012758602935948600049262474756098468213345996964276179826825278272879084618200992310425897797330633675050367352279468283109631387552903024955824321789693919143770038338874553300337734202687164729858285017421768603677727209366181970104233964355412259470466661031240866872326037570634846265473261333960291095912352495740542668304176539728905252691703790564704238172567069005064736769642241261388396013660560808039604839152561510006570868073038749666463598309374397013168888837945767834091885024791924722412928946835257619846610864980721350460940433138519212017768710519442990801258169210749847265054511970580587151379054618106394522927416580429168673088392858983372008460413575177455492997371188488489418823257874327141948052169119759069809152268054979298580901719797890816405436609282826724448787352581928292633119076301177556654495881274667363627872416562633134539176545385138002399582086927073859702112104985671311920758523488207291056969936595300078012126263085259276147301269479647388302172358456617316678472347487654424905391664266825415401018590730489366442132519768157942168617020722621083981506556516252873716438195242262528842246714895360460734335300002086489398283129020001882371629421571542467830841147506686632042381388862924429292886419419491745298091466034270500074656958607359396401901254525728535603377477213061411403745431861294374609718253298867199799355298023356149962518576080801002188610032872001138798950935019909535691317830775149855294052843538388740941038682698525185321393352682609893408069992331706638231173635599251335748822666684745800878007367147263881139822595381456859072460425992866179090951835386825460187846604076744941895323202664255893972598223794621318128678594781879455434760819214808715488375676115694367665267212139924170103131634366089027591988092290641155179410215134519102612727454035908921090851043830632258631334742298621762529028076465812713278880767222149064071700901460933204540675778135110564488475001780207464130169249522459719077148100626200025116489694835111624787663578734103969491119763507939593085476966952098071770897557041048112423084637059211758127388586131099758591414664019581880345752538038505351215070746555003613460627923875381317362830039770662177155179657507303038683636895554241566056679719813447159251659336643664622885324727524343692449250096921583836825857648834903584575047978120962890978168043038158807199324379845705951226449731661536119013463397839179446630914554998608153097980815316914742448405943690854127547752544810492048517827029182654980603388301737859106592379079140973082391346237482140785364062496548106037640664188016963523759387154096733062287973656584497513456493304760300219066719690419804499616302210286734709261094672504035085962613620726006377796552362752486798744161430795984718219291732462504163437425004741151882264488592805657321412101906173939942678269467481640415866535062587665058826967435554980147423639988583447705667422368202562493720060329255119075007329755380552133032580629674536395123486576668288241013667843728236050015648726664948143577098615695275814834654744417872184193679468469994465002851154964110987149663259027234657371745063955378214469669881093312562845885094457383128047355595142322285156402839678393577398039747871892226287267754204635809866956719450453223206118211422974201261805043117068410944638836730311197597656814644505125586673717351741840670140762688609953841974011666297829318991091130045529588509605344881168870066783063742077742052462283964319163829655901883711214635884724213387334623590154687931888892552893834431421555405547778587790860034212604428961640011800465242451799238083223121631620542653687236085970734343965313613822408332580020940154866174009443575910211729752595783520906234152909380556331053498241443803869879581333373896904237967529331062815962711617966567473569918560892762493626917405380074945364401868993969502824979297767425388348969656420966613417060825743321725998312092416654194611934457837907574027021113881123228690969180240398649852802314663330702675940598549420783128993193779451226990264319221338708218472227465547784712031278299532879413193526654469153211391059556669948234765636634962852734731946194978443991264765583527772127713201203732112724574918905012475557528418622215407751691981992847404552080861620447894217876635118134453226177278699798759295099575628142099948536397170422194013269975073327453150027447332561132238541209615350538131668378740068515228119129863502603691309681207577145682940879268742461745130813960757587870724076241926981199579425101963837280445129162019827562360779624793736344180093490873663028441551068011880457498276661983842386829226455792232930372318890525946510248258509498006405990206265274384642206721359472574495520172535894975187231045043855126835302720165984484023912506951428218916688140163175447259298025538604890929231505810639182641954781682083406279213806116134195367067515721199424920978275336740667010348220909315847269369163041386198364122218806602807339062555051818574953042567368223438968523675876714815783198910368903414276737821376770494576862206010765685563155555041724366265418434827999341894858234727443761082251354542050284290456047160194963760949375610157121340573723692622871667418545486854864340433845401115358358777711715864239460361501809924141094703208482803306050468108772626436757244753467887614648449501890025833880418688820171835560060895081212429692407728309396143173913225778184088176331162502372395117139453518791414704248355389332794279414483040640854647230353887968668966047822521163774014590366199856837489496468683308572519374129097838337758397249957354203135169108177191757763166383200309881569590240660986322434704508530120745573517533641192139809765301713134981951798582940163726721862386109067364320152946040516412169933327076418756900227398356299493729285776496055027374820489747040217774057452063155585198534135156855668425615321742946145466205851599040717503031235023892372849388433522235823077440504516241284769878955376781184088454870306163172097809845465647353347247402845822163008192154125993240191523205088652815709159801296952097128429396895405830709708495341628881885243877493060654311737855070341887743540190700106880436597641795428301950068985620739237765313188083334170241120783556058415691419849210519246614012031828875509423350484320666542799184664464309514688117848456460476676804497761927042181503182299868864082857797096129558710456267072472004843013742207991393624408104931919702550561287367172588789730445292283306997772001115885945612163818185167012280504085173749588920599583064945551995007321369506610539649853146514782949712775867180911813665681981569946106339985144854768516019638392812728622069126308758520679973508920970621304854621609394334130034197037087220885936903660566077142487166676227143749887662522146214391372105091937595177921731437606178855689832998480274419683852050971370602547752335309243008526804109567202304491017507035411424990238993167906615613685513071015110634166737712164606467836554526872127918729110942709596935586953132069727015965509412350653618696388229460595154922498121850527633584140632868057589599717753187792358200957621905640232020563609221289035215976455491578100595639780862196079639169088098373234770517777798352248097738345703910248522682764895503045877958971447594123706547565059691287476720093012609391759462448098772822770041803240282415643168017003992295247467388163608870338664450639219289084704116584523190597969389976185454234020531715194201458797623592069426343625597079801318515248139294171200535190134722656899847918525401111594832118052992696827576048014623969053259728003803297234707326225657737454709982421630094874973457949406035452866954600593724197133652003601429773718407678794768602663735732438677095400728732871149025267791098391915463210243783476698381767926035062271584417630228365748115229206232195842265620421007062979743535290205986764594658327397566793190539078933334181577935851827897554011344939290394045685020547019117533527911254808594948336468156733308444870387532430074904828317634873211562758039394224374480467103378927117456882665453479516303024145031252910897460678805304266052585334961990350521866555391897792723238595213489517629717352170074132725101851655983327913733426168269271228450778717323672775520609274727870169826000027464110749377520357740120236727099476371779725522519595516539650553297169791462440029676767587112511852134508156953038360943467605893659511411471979677762830576128990790624169372795914859896688075342134516919640543450868666872035284861798436769566595894200011345367473360654975099372316512374876317751207757252072032386191609627876285051207523023239856234404503195240042830035642628831877070204415723562640422254137871748009987725050788851079673106210441052627378683408840788093980176620324273584490529419308465687747241516977580394874700832226231117529046983039222795584542229476612535539822537330682173680629944487245420786111637763657873434209362836099282877936654027876668968876382716682470074038395548640012005824336676292201552506796972269460594082469596888711628375154348063615294067701132410476995886233988969290752113280358993640950443613399858779961261681854861019342380014494841673333352119160975290751314669913626292466689007268055365781702536150906551207523264013779102436204088139756220048284546752675562342447279844640630985270391544969873267377121012079210023101440284795221329870188918249389489892285298310457731477696297038743899398161030970380984202326470886020131719720726362165354243158222238486770371048117363790782291329484857240839706743296752267922602542562016046907169887910122419592259293689021949373712202819537963485142029956634834144885501123546378816024983397392864610863929165463767840905196665122224449581071696675991747838102288463430184085472151420782044182584454317786167138735773800089696593395203683536984028700214594584773382683559943916713939947678512202634854444053139420383384563506129536224109064565779282589483193713764879043544992204770445087919462201703318029205467229103473298777742243818744104628525041520932049243462146541934472166146452122556076600776667027339446147595290845534768941542358730664646951804932931307966447023413435339152033769064652754421717158645676800529885128650462821595549435233408429515693182037605363527317027876643771348760208677364861767424021873482282234546898032590006216558752979515216970233752515436743489045541298275760529754406468988218638152389909036002848240246102924839019596380779630880155864671421146508551286316946290426389480678470942740307759772276515311691515984496651444540346574014694136988191321428925647563303065565954966436894737126128200586246454713399831000663242440526006326704330842896656279580359315615257662665874508386566018142868629499417384021174643301577660485694709226759845945901992012874634639646927620623278962418542510051457219671855289427160313324326116356597501825982383575393704104074697873010335117219180572305401618549470407159431284199939786069063950761633909970954429797274473853110247103527442389108695279595395333488231688396997422895115586227124508584523447591869305761399155757602979122422627733238515051966306030823757918604147814326183091695543348890909516634213924576521097067129137971152887931248720394727077195723903818707030531144323038330604250361544117127057241413281654672200906279970735553541962769725844029719105915937348001540453976993221614289708823016020674093187170621867160920097859701717462553650344743508723938036119239892981400625601214988655887244085305544721229658463591128758721079274010897886323230200546392023893960309267151296077964761099333269866794749793576036654077818917513495338832845523700596619400543327297971496105742817699698729704230620933804958935508001464412267063857988212084363818492300222685047294080758626323728078334925482066288338239924362740064806325835618426490391349137438633027193609697797216841786940701056179276743250187686863257358538472863750479965727181862288548279496968152381744127693155529213111249215755398127441159941103402397991440401985356019106662330499516368751105917755796608628696003253404831627805010787880918701677398397126975044742011992979926233459147097955567783937232191328018159358275259831851156847127092028863970665839341772749003089064528313303768017112258583816967296691007003905044133256973554852178636235642423005444398123623637664615166891610173527748271715234914507106804790103928850204050669492624036814661514310639037998984797412151468516435542735225358424700455216548927630625695183775724152648047819084237105888573009454470381282163339790289926737823619482017815285451924403375441384103947876897589816300327140030582165477124263187680727628195379755497628473338926949227733053466138057252550056525969268697705660842700808718251172120248590035952072021280810984077296222297760834757187460902907215714817447934102239073064775151420767651215964340096911214972454728832691233038422679492128645974256799677262741737857748377470192741297148877397724750381328575478700342709211044342117280322624218418421744433733697052405792762083935616740996485191175143074699645454632970833606820778582949914575961000676044664045849176984628092577312611987373996810126185841918404841136536424208209848487519758475688743169708163145710118614341415616661958287382319171279496822965114836116850156966697545557327201887211891672135311958677829381831249900423062292941275087088296238473427397475809643599452677424499615285307330039111656549041897234596968483166273738437229369358961635195625485864321007062894592717307222232361097051101352919587447993179887436138328755116504906360466202786413821430712036480185356971951091038498265118110683714186243818112869479815479118798870451021504812315923780061244245207241716938414831988540079308855551777640762503599996794620050076282738996061400614884221626219090674153700080092533624367557702880057211705214378239388194252540898844290081796562437294801607971429248885064262818954090048030260074690369085341193839877844730910468687642436642924598800026327020423956452020808675171383781459689099306824714418108141745416555167410705024372519732662686055097876447682179691954020120878439209179462046025898629827626926725024331348595031138249852732852025830702355568875921825360628229652671443713581281951075221134567403762241802428672935598959896729321427644033346580359127476747964395748469446851036505714075597351621437888077304502467577812425540882303984523116408237382306605439752354753326391515398089232829481127996942956941939070184395825533355701149262976273332569903856966468659506416267511047925934804190978718573074612580484324479672699156968981411503771683890783487638169965374004328461005361319877304671405172357497135632421117835359946984304332262380440755907743492869827983764607251971667587393477232059787967094288786421994959338196399597668991136251812183259956018996188067919892966988367535815820250423210371396319605867487936415142390310723818693772250933961846680445885884534008622138983888997713721318624596536909817254714706964675391491734812936306548805191449114489134481472032186215087890655716241880782118355184045779345960032779955974597523933144469050301632739526590027075049020684225936730799823337295192160873999991990958929902178252800121124961504763174571490691000963739835228503193570934707811926622453333661443204729072929543472058576904029686718381307543142098724986046951030996733913286703006061639696998428910784272315694636131022812690380399142011690064002379782137394873987415720996764267003688959772620927029946588692283802904489535828656465016671540465646985785724946955516258661087162063134929140214112487867567725641040082882110909282114873445230241946255884628013445525980197478024194107409894998043254039865882531542793162413191408180976252964351525913410746877170618957747794509204730783370352919912845032201956485950389450360780030316349723700625744926136421656993794834977269988131112586462706027903653005368334495094884986816839402404414577702249985322127385834521693567543368989923044664594210324339651078415051432522757014437459447055761397398967338126271328521262007484893115264114988403489542683676773255417158700550056093891233271837140756362145852264250033624069108684642929669088367104159344223299599847552535502021290897094817358174783280456474714475883251883535198711276543246096194217503877143579333624420559286721203934000737582440349139916139858317774828053587217138554630237594023281552024171999695392822385987041486619933356735478526501348935198001661743230001520594690771955724012802494094116526756245287131935314803499173880823142572523012261825879698237475246224615121156071861328425254532348612007573676644556893398208368746879112305272333889470764159110205219008242890951949244908581095924713329301902758286306795093341473804570521719956923939786506057391442152857948068332082642017472434677898813046832080122571573954503893086394045044600986965919018400640443788041551677737471159266676831734995057607425487702003792725611180591757026445163662672121088071086760927677322491498716051534816448467014823026617910292623678818053728228711609070619025725270212663631617132978919124423454390735197368964053454298268823564265706209133685313341475676486853893001559369328406232984456533271612896482189030809255240708412743876402958590122889569676608363655259737881992291827292683493229123770804336695815333573159885449027413534902959264899463007712946771264694806050445654694602830390272111623038224345428902619243188309225083879272403970775214978686991104976224906176198809138466898400042664437832377848709619099258161475224357596807532298003678772000430351971824444918605071324222737937668122295949727103586982367255226786039992379685561354986399430350626845707781980849800245545901378111264303203953069983482045997187623060457509741865174957659261094734363838442261562783251573088115520675310500686778943858465368069233880118473398341480510699408301396211742010926729193042936112725068509650606748364690256056022265924586254494609966253541200226109757222620098764154760122050963810990823501834963106257979373779952660329633414470226408504549745647998150347260859410580147475056970127719224386088649518761816290611200726372046969284443544993462309179480708897240772288112761940337667555429371725893363377129201070650754331178636963392026270563872682151099643042444726517605742272598720209999554919432359560913439444418506087123794185707951157543528054014809093508056180285057550762773003627520104662356705704109269983983137891368139317239844410238818368992067445447253236131861772760407879287073160543877017489503639543457336351776201863045428576037382981922906952417756144170630872419226490660817830208557112902943546853000833760164230956160193225765762265193291145192682085840854019020179821853719649939742074551722934779886748806677361508994440476415024574030204104985969578421895779636669013601597253576482661538491092952664791586721552308824632246172539773938208033161042920996221955111205835980973944059540021087168488761795930629278335957496359432942031933159764212723349765395345058819627667357031526199240208997570772079180920059857161316155159732793420108686293490434564850713803562346289946182857211567059757093453591141933300950168786988185565432779530670797803466255729836043964782541073274354532602179297199620954794410291887440633401154561099413844782786743038904553372188485057273289207059293923503365625562291825915922195121606318562370232000565430009500138333664403717486754954867715220706438141203419325419334110577791439237900253692877591883724752318323534046996464326817260882509094699237192338204356688460163737191143064418848904181333234393779234157513548376203786562088599548360482881576564337908598678480411587873344833767729757545022252885222496041286398437216023198973227557964552461779168410011746594062924824021004424353737360219061061445718562522922402082877313256973846777261292227891262812876407124189616231318920405262404088107709092789437175623082326236897957272288878109183007687338253115019086461619786326564199462624834517154311293677537050856775178590125696942100532770613667569820753772321604571796684884320664548376363240943139049092617822356836517497103566197663254631260944144003067962671470813938924329717525751451164440898159843715440546899989722384429546292401264517227187423611201235648455339833783743469200000148535362582428105881819787117941493085964080138623797306620870519329337325021829085468126970847551925857626650807332263954917788833921232526442867030498347343922862615261043350781203973477152697226888155343174876369466300785885744780650187868447707780939317757707476954410389934812488224196957778671022820616589239516113230890620090509086706693876589322504215186957260843412386962148293758523134819483078719284508296885821029398011196331172783334738580448434781517763477201391090303402625268579971122927288474674268652835703533935957964790587071270823789877301836884969087135955797212475683096657914373908851255562993057672588529458103856533767335961452930235296272249997336810782376398295638041212910149307565764656210763043593779219422238810869052636971025223828710181405547533194626978689032646578185487227951770387272651378366904885813007548944936227065523642208913809375321472628253878864401202324599221385360937770648338138144080487108412463050978887144405612192080488586304926120187510819602311083945437101366501534558451255409698743701216360666411521976426057685502119325718249710546920689960951351271065678788791506374487659801257657825253460319896489450296171934459140130056231357531953833914308623309125635113233884701225292428495954291815846264458061414628006643658318423397093875393144650611368507329207434535660993481238969363224329791854066228893019563396389208821176115954091693320346462992716586445373741871405565230166121380485071251522366044350283969759288242637070298975600450803661154964417152076576974351522129857510125780383644397800362752574107569956771918079120914046821576352783454173324077985072227177750936036852867887042818774454495792247258992175466186602254393218617260438131185450471383161380897521419662784975766184937291888962314306252648312352212267108353410045362089382615106980123475835566086297252081582015625106372757187017738192522134167047454482884016778471030028984741825323717910723518916789315099744718268929401049318916263030616562965374066806511320532118423416122601748202120731931121458383815494993267957029834296686003110037701409623753442667626585203209765934351805702368113412841029254519165873934091513685121237133012949454546577470596645004220446609461553759219488353153457677488909590195664023726914008462442473109087314068200100049415295552841287320729539219546509814937131430834987002704982216718206779018283585501629669249526033737046299501814402111184988221696236001444851538060092050787265283404045886625661321876917641019461928748241062916230408269148898271889128937353149005365589102840814907192874225716081354384634116701045834831464387976047720251155382340813384771208225892379124061307951678006470688545727753748176462464841439209009497774122389652216039613643226554000371766619896945311044252733105131942701656826426536657517277919471307650036932301822399504187581582909258622061619283493722285618756986469565266366965276751242868011339591059314807958591294118566679905291725526703000233495520505283638220683295423274064692414037386021081042776187430215536597919346081641677527000801410061557335930641457988934729237304335578025929423984181568439202758064297425992600114090137898925485841132069228835296161521242497625805233554966306148824513115750366914908076441286742426954501416895647475314142074290286476055921765360610769969706959409614362541394894338022348583381058994126442236631549187093118423003821211168110778199924510689930038558116624998661152514390477259687221196149610926922478905518169371990380645703714794804892116602806163235855923085813012973517785281376811723214037546739131801169008587727150146208525769780044189308282669470343394086641568766701355968919166309437868744576247025745126470286946856947243983033254933582959589514244491340426727290186478659616747129627106064942314946089246803575850464895039183285391748915440479413201826912413054559197255529643535965473706449109760516516412105429540510423526755555927282860411688675228460913892518753024993804284014556031126106818105075124235901119253376720156952078628784504583006881474027476779375655061004962447251973570961539054912607404941148314732832623708341075048081715347788607937850262507434302225835994594078449343144404074608445164296985893133318831045870972991803958748794563964649530603549994562968588492151466388573916551668798074712911680310429943894039054363137442091237711074241037678272957198239378826932428790497504294230840600249508634683811087897468561968568226864122426225237528078484614621778299544981919745573209229418556656554992044833386853125560273748699348725998838903747147249747099945390841180098682221111701097252694042144646433130004805185858504549271249707267881541542431405039478025917253761851425991897834342568675127060581235924476240946272383252184232526784052771614220463069603935748510094313594043852018412565214782173800674632321730818076288721390601124552439320989860467791038854038635118083524789062632631502401621751261196125320381203614638585566667070909788282120631302306462397018417981472222524431263953345157440829153862314523753151774009846288505055022643549924422304989743823151004675634235006962271745086104348353090371762324464452248282353582893933465591142988594665788077639095133565164021589836397275010995877849417806117896775905141319720908952816550474308304472731449331890856185631754607062498241630334112151387817088691688530206580576125649845557852236948757942099346369992893248713877278941990178253982904891103776885067481426655977667658496093797857513112712007740459380530871211281338264603376364147285537351860306015394728240766860551559996780989695474680355106868425367498893238875619168667536342950916290126979022079972388942903312153913031357108483567486297337284739788608364540316958418309756386823137561800782899279800807772466579222672274008045982706004069572876007595074603086715664449267001028088016042579594566883968775542767761300247294551808911994219140354839648666751092464852973494021590739407971416692944289902612940526360040366321075180102195626908832454891125861916443830166776428457518734904179450576394838065435020275286035222966163770912964940611510515994861280418673769387029758346081545213709754376565749330481350733199636346143996655112024558010824522878686089530023252526587756019507230418657127470179371593986170245519401475579682026686808719022751697064406780760174387488213262049433083431387882547248490995928438024629957657083306397986151621586928579394616766392526036171396499731389746193969611875972709272158010080732767075514219832529442760358636171939227240707240675778049551542752875531758238853304619064576255483761012664894512230791790802932485500071518074288253771032655678870459589948639765234657871324690561899219733586461350384838986058620885149005804223556531252671463972831891599839356412013303515197727567221886734792991980335228056104792391231335184311859684538536717983173848464847280330150869851935793171666950599811889018047602330267905649311043253930332342472763327303344250250708861562539859429916129621941863273888554174744042737669160454656987325629213482412735774168609973718823901832955651504725744085230355348975047360730180228629111818984949677495844132643876105143564810517194931959678072401665529462406094911311792055671313430046453273810364569148109084094829349114094235928533997570353896868144004465510051734214950089855300433542262692553512266861295222565479104578839792400847810688104303419321698895179435215608387827927326965281545807197039602063110542453169132621247251498301073535381885225402855390966401368678791255310799815888356366098322659333758548751337099655515920950727240156616102107386722161243787258531651042381993666908379005151540952833942653482962955275431893604155597927764245572313819236501174400141760234762341972912769631648247939167396636759774508351479149520525029119558128028203216420703904576259710570302593466294352287716545562763408876822303006654559959369088598112331516685069122060648303899724773305083063264271527632869733934610539775964390163379567060714644227697428562707203654413146558327103608812849418527626699050641573992741853703498441604806294235209374289160905359762764203080690386992283755114951075200695679309997539971963484670457492221179952081645662308404682391814339258412675450298251077620769018505323658257129160839120517008398135131478754088752541460716168410831484864854077851781381989028171239122852463643284000052611975385380508806891260872258402750915998497455217090989154882924005319554078094915388908645493450909009222332883271102688569589728791729391958812047043531702789891832014028951666098666981006847752583116815954785599376294394773552816154367935773635948787657529840418736708680409199240249109449144125909642073911487174061610715504585099168831395995429745452451215875502485509506542595795290706209746229068304109108182611435506356146498177783479257939018552367684654646331814401806662231094338295541439493343332083002803535823418579408443308729367679556491868067104955171315968028465095851784218486106172075744171828035089104758158752907938341058778854490231754347461324457595040347722080347440833782216388077165784720615570762935461098405138134170805442635025542797023056051278012344650972052950056786726768172071721083878135978053561448516895985099581260780137086366491416641459794652635082001171399412773563784940380358743825284346367202323265969284499708041704280701090280817559549202381038383063575985233707528171270667857665466526182473807966959238524504357543222826383669623207545249599124364228396130631709127194147255721100564328820722630357439098713782526642393900433725973363093653752761195376055108137187568753627745101680539287277441567572261553057053360089794251864041031371283778813626831966826902425199346459978772762977713190290439031205336043780091073714385130523228404521236467887971149325166274032457448975008518188157276029564808697465435855680347604777529218034964597960643603503062199281396898318315546812524843011431562437601261006417570101979229237205836066097299803864218731808282445594371521185140149275256348867483110146507654266112077288342845675311030156245449056908165848689449286709982526941136136266976207167176855982659551086250179947657819169568618503205878496999005459471445368660988073568539951614448021782931669481564109246626514069483711111033769663873159031738766888261997389218991977903743432995072727759787592571354755130603532259442631893037390464381048948232578763480040479600033539309172827952792037115127892300537999392970463475534758897549732263529186622578651726690241491843428169654186158101441212878520263518603891101817815171454777249836413157597556003613909063164944451140659877094491169405802790527983786442931526182727583187976717054410551583065596469089522055614377513778998433261089943098264178126570788637206566691446417285810663617762297585092808180592661681245298082236752593381080968232708411689515448036768501798673535436198915212855270880163787449629690561740232527704003546198247653974651389348310359921912358442712073723759169060724727149762452898723314456949298510150943055247518732205391011422155059874545403996796277650348390426770315541293044239771328934942948001066945991036926615894503368387381885738154718551316741998991340926465922135556705681305276242660754066495512638687703586700839233726230085142953721040463927393336862554430398166774159966023205363454137046337590245616017698726410843309563007758286378410812492132720340393331395697380442925023361543470061681802088358726234435178941737113815090331860856534328019976029264301643874113914361278300866204866481619329156027407116469073288260372356028185252763689411052661193431069133488431028213889062608765735935991094903207046715374417324399243927140290381444993850465054773152728375090034029705176708038890874253148402811845852802490415178968733601218892349489385855873286109150138509749038114729414202341084992577916461708725489934430069698522111810815412553677294112387148293037340972096292147433572195737780797482841370709452965834708735238450750202546888547201356424342846956305154340060400694914255481140693019017819747542950177802318929527269706101191731141346892014491510144949714476917167078055342527205615128472892226989138784845961510836104596758785163948241830272544628646084471998488083273889746732497466641554098234680150382254216808943067659887825012271545255118593349217527410635267359686000763282538798376204657159933740185800561069749036106284042544478086119166580102299142603575870499008091805502422645073313628921485571226480813557786727571677806181600384631315894933670865883886370226150647912321759744751619065399129886521992763627402282224204583375294873607787737301232307193020939417555607287413573125843217840861986472476255412369440623167251669408356608654946759771664507727243975395250457258801102298423058925316503440133754042581802573542038145864563476266835424117085954361146093349992646047675174119352182158828541556060289670952400040837590742030967941513016540036910625320752391555652945276456244088444305509646077604026533872625308178340093420593855418235784291101013693123896224605881766563779257852370492086225816077793617086144938196306752539780375014224152361116395082454237818755963374716518694982957838179950301422903722292820508208169024245334446801322985815409292436313672280250523065780592462444081370942987881588568892988740520376777457350207599460354911294847134837361545126166015662758626220981884202848676461752929350913222074424579971725475415261445508222623368297339031342346880454528855488068138362844497187012672599741008497696504728816714201421292193868234215731936230565382931423354723720899899931082158365346180043525341952604675432111707933127268110206049403924894123886465543568296658685031288161171614157263425401546144772215589010771369506171129013779678690104682828564910067712533286098379988466396999015323458022430353611819796806081668402247426736623885794759016498038635859011095821067335040820542821515830897905124639356223368584051209957631940420027402115707247232465668329063581661246903443467865119214771176574382477003947746098544674058552269111449899142389751149214100841064517950835216097089303345253660821797836215503469252317629389341872822372752349047121489388590211161269696324635696226412779673863086788889851580512325845179178139642215594497874431573310592472469608581619878709652181933429078286210394233055282188549721462428492749975402507088982734763679869799971925576316546309810806332465287916893943265190501509488340015106413241266303138644805135182797515582530691200010391824094458808250779998099848681303026959371285239077662996243632677187912348878176860588065795295187601567922825337250803977222105087837324644244936707547105566582670212911326025176774289846984525794654768007756976512599264890732565330302547445125001647944917171580908573717529330339011955063262210555926036738607247575562908043788548317869608820812743821892393837006460312730407142996507741535845366069296289399861070227539440211412917925251512706339736867343429113560471550993015010815324638724672007864268773913978853271016219514651443416995726344969080429887683035469066462990009664352413142868917740668251712506709159054591070246180380137820873869490970051692509494811626309083600811939794746965563476194924611859872084748341631680164651826450630702898928988462007735133098772731767901317279498166159818447578052063761582143532919353004702153517025046644733616936579093636078983334059626272211592352754456069549090663671129819761428882598729843283385033509040684211559588745551575822648318102531166835250449422902185912001289352449505838986377846698978070573859043149502564284671290692671827514320592697126198162327817832924570488128717282753489169187513155754610370411568333610379162442985610328108164740717177749449830400158065705934649972323824522664921182696509947253490824440561432281062838239971316796186234112386868013340611818149379973776667003282637820278532118492380760371068348323909043483233982622523937686468538200359960319325767717926430895525253593518914542034775745510151971147296388575138280199662632868418494416793603851296022835042642340258339493545973990059289427296867328544188759399643524577758290563053328661938742553761018110436943280064290728354592534044962002764619005099454620183625449335950051230618187718887224676219170795080005625358786297513851866019161791238750303262091267348968988079385764843081964492633184396546775252452298413114741878823555131381268631403538376236161282812671433367576697695257662781519490090058707263289792722097863129961192005697324022838798708654586623582390923152177946418857730147738347434327274923216765764520867719251244896044945615199216676505620753682074369801219173172780111552451043931536736043806924419321391562695327836321127424878279298299193614328955109869956963056767273889992610085680703342801074711783964265090720872962346127343834205632854486108924616167811288956087205976279819505124213047310672487682231293454577946821599691719448741536837954218700663594058143958303706033126159376380354288124517543539912212762248464056598126085106505971962321434966869419017807017515989460746627526875683658693092652349276990638156253881622175733082390006880482063333295635734883219784216553266051365904272542505100335602771904474125419125972546446985386491225585622646492735784253156099804623105158100953865684896178721481085043290917898870895047630432409341718549352968252045056710704094721444303103799268217605993269516209840828487612561590248288948732604069024861814358852937826099320485813317679448714324323762922915317318529930479578923765688819542556625859858759586917572187114075454270971299414686753171704416242558062193736384195983991120101558873750411531749886597941754117960391477938890678306150734116229981225245693747316027297762796761711642091949672346336957020286171422303626331400748745861484253594432156505931683196592442510231483502688454208073468368294266017061332710480616067997019634649680293004172974468871788039373748782904568047153542782256678500457425000915924963540506133783275479057162008056948416943122218493477811253191616562781576269769270198623588292278028792422611477554247590873271774286974380716964194691420351389133543280084576152657475382464079700282598175990533558914403502741942764980010717550539071246546626199785491422600973952548320992241841428436109601857601690871208873968584336134855716704535421144760727085150188786814394142499372651930167799013243974513590439641253973281060870620701921684605590513153439837516617633591264405170626439754451434989760482854568914612082543256643599429292206673775582354604726692761883939728642488292108897962008728801337740686465584905816836527442281695466017521006305959262516575920541470647276643770701142783490682449631649254135110459306016815139969753775545193122354026162695198017823192171650788859423845317588872259087568842478476630238403849103690276539690816379374353168408356563627853661105961071163183629274030258443597465867195949281191832830870794941453799442919701388882112346448690544470414563830297414738390375795905632112522311662825818729632389726523451800606374471221448199641034203997272417421812158822769663997807866154289484088967047021445307820619800518889516224262631441112184863649193508910886295126326750401289462566252866948465950698432346704949592580335711488561044134861188076665256586672598637530342386337216298533748685046236490263724721749007241149205193404479539236420769454345395390513257186190560955843890632529799816103147543101989273994713169790113146987719334513530649396072768398454146200542613417060943826961671779425183891546333234476377911661029828455539633217648658766613438832761413993085944092339673768674526322639345462444184780915441853729920150328133145671513261808278259733711447084318728482647451332922414737203748459057757889926356338874298423345498769015547537137004418620357184190668179489443850769525830728987016693312550681664661860783198844567124500984822019398712747293090757853798449880805153023591596498215514752285013467972583292948933841948921466657063252023267283166646298678634945027140030248911824312464013780848315039012263467601250130966137494252238682880518375852178168644296083419309441809229808388431439398764905846143225093128615911768506122283824725558000780508081467312183044486178696717549849007930243462975445651339140170409370168813772005605549316962016511027459523075420485394675650925674605112714597885662931715544933015429265480516865870998645883908425219073151983845539520405083629758854040640364639908419139409070884360060045088228869731722241632119784801404640370834612492341600542262981750651639377888627696979190625526044924889112545924143447855147802809505651882766144451293235390243356244173078799372930656149884461579499119792437220698924322672468209399711707204731350628551702234698332222465270976614484967318006913854001551491902742976476744960229740572629352200760046362226641304352287833844833151443403996607116688359164025580622229642501266161291639629027315512911308691977012722994974521120863491309312564094839904723028219452671112848273902550890491664385467390536473648192917680107846467744842818085079329281899318131894101054628230215691994099789011605701936896774859480344157542933191461586023892853218072756112909321093249230132145137084470969496706977684042338764539450126555594100207755811156254989916891864909211255912285990877036684837385151168605458145633997882374635870722949163558957319643926954575078520492444472336167296014523019466036292508829235088236034515536738888645868090488995726219592388052093242809286348202080772450345935635489283928778593737828104266270310547050833998255463201082106061300189332103780936209996385247692589520040669480435687654182418868412380366632748435523858629002487993292740965024845444064680719430626816917137247917396824272200995868631015699695628189269837381764159841787696909967476919739748636465541110335814242373835502297828748816613415576466182955577878129977578880485160818897516495199061915715868623979083541594455809003143165583307598752257421772096964256813925510089466726652982281758078140622392730497764881484217981166220035779998864695661856152199805490467460564152857022722807894397878631022562631941256145103373712379892918785036729737797568334485816529061964534247287187795517473824583915152695964307178115840801684938109998342173420554573269838519722097981458564915025460813653834072938654699664000361857686421357600556480283530008566488434889771887570783589470265527615455421263194628822789676043698765227281453163632897698299756259686952036809149000273479142056108192712602811077456447890880380374432631433615588888494025255341812616076945560050218134427530543603668606772722155186986611443557471626645456566378381153709882058828822084637120491285589625770003010143098765664447596368524825597951429098495485368227874098339714839601432524114601507938433775478178147553177828512177272306914755317272951771645076153855681197962634077613708225175314779250184427514733005593725431593924644021671588332885020757499506343393020000406681104156211385794375284169908721321356006051341032208037351194595171453945112807683184129488223265211106016296612359845982244175219875683456207252743815584667690507635947269843847755138128953523491758735781640787958192502249477097075703479580962186556079401660422016243345038952164698700470238986510584029807039244365066431682411937398388883385053209154391936288049927891716239393790250162742609324209916427553974381606927032194566411311488350335945632049421584688844014268580163399565260526004165281384468503360996838602858417185019526940489192943726978299549256291694580996278370505384024776179464593779390884446004248203034372052307045378673830706667009827342105902356176599620736781122689629264430766407018366488966002242976655895019841874951172855364098275314154523989973850328524282525642451780723425704273622024175672561935868195418413309909551504144524657585038955250680905438709855338252368720060026081915871555351874575328326878262665210107827794580788823450775076594433213272024178780143211024998549531990519466923699304031023286972168536411363610252229715585987620393380447812215047183208612172231596460461342390278714633330346412527577270906409499434700529057017940870496120393430658724726109216569459731718571796166829551618470141834708837710970163428488986467341207717440719877371004315372166509724194425903593510843586702483094258495445392385368971289420430035984552376203763613057472300969093438323754439873754134877305914364298658267632562409492551633432588255849259065017366188435272051331405441503832784353330518700847609466959654786230235454521303624949591291367686359115906406964387982961448152140229050939819162604931170720326385089592944568845902028584159466905538456367289357745850412713398678025869160914595939156562327630281326885053220773716123242298081850781934303410315498832167913883646374548089175589619380021601508382307214894431614238463187601292938043947629371816095119669780936056201814944506655066209056625724094060989239466589105973471669547338673732888397939215042214923124443974259591159259689415040865758760977297979185580343011346560029890688641563049538191302330266715631438878968678467386548128938176471247777069299355079378733909290530326243629649072764632871260714995100439521623229898374310505177753230493897110794141115052238146992290397227558274839249755756462995652553988676992608944689312668315757532333844187562932280645954528914806810983932778393668316992708986082689100306033181615800273113862897117162697184807438152253041834903187525031475148521602372962074386198615762847646538006634909775304135885498414960084458188506152251143234018735825160685262209483201589488842761038791369963317990322623155537664165028861367390694806558677168122305303235933583734153277001714207758703907971448313062439736814638942412790963294798316491288816657332388168696863899443557090543261069081443722951189997683139207667822217385749667577280625460892513231073010556221574201601993134420258441360976830255292075543853279727238036200005169814934364185332306978603715364420976174376218464546129823538599626832688456649099124899134462348817413704706872494078860365844403094807429982838009614116864236511764458417930788573781015929682305423239950247277769165685460328897698002851861942290956566607896335937862954797577157203783942473925677927008387643374296633996615520561170108479671840169419934878971684532969130709503780780786256666740784183843964619146485516219390296422527791975343692808663478988383768561213389831677324555881492324417478011097324474700864153597929764164186080032260065255860453887451784416188265979062229003894245582214198943513609016942717526245107561617979456793288438711659878822210174565741510168689703771149198997580825916487096240917919539486131600517749203995454398319709031624550072263184637005992309825541691014737482603222299823996372364660374590925628712525370488853823832468451400099960978054723000469855412448272406564961022557812889536971853516540670466647795460620723025736948815294303865072823579586249494736012558089423689403301068478901732917081715092021320028940091905219853672281852979962824669652039217093111624809345154935695307413420841435960763269836333020058373600294935253765831459932131255112709481644153923039202194832795471235624319853903799035255431155145689707377354151619336348846427160209486150603679709634946171164472352165583451383764114756934347294456175285241278084677112444163840485627083211616189130046833419519908833692000878261109862646796906612016183459239018556136076359965066267169737951021261072465361044187024130893029713610238173320610572132365751260874616035034738383855845930448327606287182812897211254487895738625596136505277221028408569264767029304613915907364932697775748504832133169110823796635917322270001837432212662468336886970666463139121595522399681480126030661600382170801136944935290775903697010868412655655869933380357905818380128514045449925379548787097783323233060256939811945786606745492254990507170539281136146410583320874108771611693252897893171065947438327133568818670095069443350924248558376423202347102892218795252713323141462150884582754293549549651871254946142913769402455301361562134141046386379189601173471308489504856425749121175097188285027379161493196978758698227379782999051081255307520089719848301881276096984256451030634868179423012737382321601856938815147937612263516608660082669908113770581353016564022070988441285758959307734895639869131709531975544800979596803904222568356084914153381366027370250516806408598638967640679181830134261403965147813887337383952264351527949427082281345923569722814995719099811216102107481354244386838731169214029292887098171609876529866991734369507989950064441439165863928211698085170654715901316205769528110304462056052330209365525187494809996104072947090233596064206525546855997207465714402138883028932827000976674162228677828856960364274357246626467558463783881061661495207429705764049470435594617076249608054805999731868445449777361097004462138330452867430607855765190656549163001553523447873054598978003432727917995075741732534716662042559242941613673359898872389971401884863241773928682758350577468053249915868702208629120857490026003171300023352020875541382710668312824431570979988598927516422094349015857323738059940129907161068254868783085857606345536875948949617563619358630744458176021186287875330554477573379768827460124141919970613909461644987698109749957721282984112877662797053179230785436661599993688865640721858413903555529806965333707666313656753618923214631466329080332949831032734952679804999640550931766983868451953149882100765538897006174680869493950046492582666769438316065784973009569551485525489280533932296596671272976740642838766625578765118461967225205959343471875663368421810799131847608611993890486741259091374704913234702184040534909629528501488873751043671119645791196087240346213114298146537440681481411177925340805617597543684367123508892868866462872247873976752695821826218386219135764921472922549783234076909733173704887735277385204940335695073105419127835148114419252097853823936907126368620862052692385220973065154624131740404092314262787295321709400516025258868252719834191250575381894403905681508603146075129942035322170516754566545823980096185423054281446435553911653638459129089130575994107159082897843965284083734850551486386132787210844861197782175272642080469339821399591968349588395462964348699460370602172611324853030932266968747683112431849736311273658278806052254196999160443558446088739584509094664897255772562550729096220347018092149298220160805502835620837366222778544099392634446830624155398933788863936717778191344938430397197131276839686849249490550136538761615759995163091836606669776065170685277338816670340977141192127382102767910186348562715714417477186097309390836324455842503757331086885759934087009129672974216232418895392217202180662908342159241397833592336696696715371759753203331928837321739694356931354630160517765919486054182109071733031981097422963488201872953658260668589244377892388569983555491661776097373134146186090960131015807828945929823311688633169747922964020035223478289549270468234824312983882137891386378500593945274295190422089699590716059163325475291493951467551542817722672734297788953414295118976232102890926572274385518553254032664666897685706182751952978759964761662186140487592291190155000780851468424218680241159644770420291400101979150739460430373471892576631864100046902671187272574367290367850124322955380004115380147306418203373062427228141167771602733568813272515641673328455834303681600582561200227401318181002224135088321421392076673382492723466504215406981465629745462682728368949685598211058421600792364669432493889842762100882189465651969827344846135777788422683057989338458523728232373310547663885619574070060200623622828452016634043432120652864218724351184530546694455657858256595255034685348866662959274959898040536988796479498308110602815268519990822863934008880193695749640759892878344793324976834632628331444864257567273933453628625430198987608579858063110937658089608393786341255309557285243248472219812412758573031615911749572494309103448665191283972160536817214409273709520542105805029096462600962912261797958323086942155093414947956013518813539674857436590480163885231094356335814429165745217318890555610417331789972937481489542027980609598648112817403116428452592566116008742497864143052945573835859980210927053954501969057931683090261981495511763150792877367717335096270153989990153618274554469546216554565079055854922361948220150702754825359942411262228572398112037803517391838107722973097184664229605958155050246723225424457769571319868936342265031292021955611915784982235215302516590588681151021529029095342751487432387539565062021845198634438373058935395230901412468183958414154065825676421746962221064273274444415826000572987821714940385384578178475707023987095860769658017267718877615984867948617883575813576379445308669445113435154055794254292650907889865193423905250176378504962494249968220258984665238677072511965048838156822569141235401514968792917739325175002534097763209445451145793510852928470520544613134844620207709845619263169353932669002328376403538682598175365430376608693205449754625604221070131646703206024454785171762823129003719062022393298350555219330100033213225884723415880810429677401221019266436846541242539811468271824369739576573680392972590949954139320255209611152978147966763717282493078537082905327236544806753204986659537394775291603460044291906458213631215882405098691208045182987025423704190466733996623140082409899348262056817267349128061137974158690617001623287619153294316495709812046447417321561564303756414338502352596265900539453898114862082051901711361152901225719761389802229864100233085396777831531120700769813679674282126048493730488394061547510895784222891731526175171674745497593563506592712305518128414745271143776883823258240885861291589005139643639790991222613183930162080256557394810935069153694020429639356387703596849016796830481115886472429617446882918608908182237026136166955994331619630613431771852901385360631861715227753965630118166710016106138180856119735598366940540017076567723859359540563438495805007783480014287271787701425504792278293102623028550934048527246123282461617098830643744762280992948918304579431136840839722762632010376127074581256000041780470670503847856822345682885420585819391105002479188246611337697993543198603936636083167955527316752922372127247327723355573873395003256182882242662409793580384497786573025572385860553325658097164921843436887270927468469830227397240733865284498069926759577730465954390000011487619251544149447224021172671484262321630445242148708296443231588093055337095196866232880343782519276627638140342175791645476493595373656333513223555978109694618683744792186904592654056211146632842778672984253620673045146999063757201011448928057917545918474237883561021195205355683217215764285606540213462287170900952599906214927462303002654487578571791600618995533144999694737237075047037484504055283596333076447846262409246952342333964754774770283691256548961413427666969293733520484142417726865935022697852313098834452754173277463921241554869220837667329057801676766692343788894064755242282327344533668670579171960713508157994594412337367961777952575475106232455854199844373851656537399417673221479672449235389469766362604455233370376117026600349745174018152317573895054655774053478588676172022880221537520627501082753437082935967463126855899956064103938945922760915682395002247011280699472015494000135912120977756705191124152285828071108514330066110066486390002816840059539990464340170268404584112654957236327380279490617430372236508304858383054386759289257327919057256722253198827417704502482358325099768435311856310816234666927356890908588046061677901236591613288238818305845507604057946607892595627998745336268130358756111178552543749135789352366583375939199494521120648853627344091497996364419461139610358888062865419440207545412328703130597991310888632453493374285429696933039832972022724857637405946438877322277980660918335951819998200108889499651610813285575345535292186188762556409147303201525372198987987698045800828222442729480770320922101285218976653872108103814524405844994211583419781140951678234999045953923817928437266026912770871947431908328494275255939888721501897661533689471733680453109641111164475356990427981942798216469073825279110356493241982472307246886602522793822158189786473544121561125004765842792347822799644357159814300819987318225197868457053457421306914432690543570392726585076565084894371024889290676838015098198268645707251382824838162606922352675880571169486676448708778961054344372202901858322678310778069351247671748524693910292582127220118044994288558417348468727918654634575900376203877762772612057275755683395575295246010567558507216158463264827400919702429748367115512941526504248683900430504821515651106516273903911184751976359880076865219156788263320688990048035960062428772619881909490987284911385628094362148387138540601728056121348754705111617440330719054572607041287572497565279583115288902391002889137699611959382768240353641838882953328447331838572187912143851066820580627833090749523369162154993290145946260206282977454070724974139493443405779515846907394549735462039533989797874765089333543832402090851636856101203615615786094202520104646415503848254866314164787447554667180799618601940916916504202000448105802996568457797271474810339028206236203639387687973687294157400625624295864398375698488620750734481778455395231259821127140541486408860758790206994038846127523356625688139837831534453307070985299111697525211089629858379874747263226657737117978044880679859953087275660032974432037547420626276170784814583782522342515331299157538628852861944466206882660361144142696975505657485699128031250845573781963770467378777493064857006445469824196899975765396557429695002097455817532881942543570117707990853305891522208044322171220016941707401897300534080114599315186364149510065176604895040489900791990459643156902057441485288585802782761449795604699480971652116680320555619301011502123414188958833139635859481137225445387078285198303164605006750162578856097346500230460687040354413871880905047445866849092712848485187965450495656727469581690654497719602954731926107103999750119589880379656614898482053579467858790348081844146453809354058659622556990502779379429896691737830534019787249792767410299046971638845122266997014277301876617440567872532374985699778742979011209010619693171740024341956844798942645673456192785565641637210788542182412843898842175267179991109041177236431330986327483335651188571250429438106203088112619911875049620541707944435795071207985019866275207148138879443861503137609040494779250052873857547432321301508262237761926514094377595159923401864797526061330447281568236340263919164921078824393944783294886097896870436219499864899443758380527523821726297451036904193011639741344682472426938200427202570706230362220601282376190576427824510351407419580391181611569175945909396399254061420238842518799807439656152573997128277427169011792920838661740141326893904521315542812045582547395239918486017791976309384232408957997483636443704838734641242017574542579805403118196715526393183168999536748550076669503375204788033110327324404235074567131372661192978541862364754731317052866907146414916866042031922808762029288489480604918367152997598999141273217852945982984618611400402651322928972593825334935995019231844513406047444998532155972898561178896278728679926586847257846693524898043851947713097348738915085585738834769307602447063498492329817913602795239043800628835931753897382363964430069870906630026993414480974881984706644584324232837866395875691622099665913573097566752795576480166538964596996750026788663712744783559189066393588059105115795743481886047333062502618341136327372024859771426020122046305740703597330878414949270954194071242379758088267354055102750206805499560466471016981409458240445110879112118415516905511923327516440988940015732311169085549048083245842636670613014512300195934236769610977194335186633890544351733588014627384594272379640117635109662486833961738764693808653893151205764554822189700383274252012626167080105051542223137025112085267086114375486205633871043445664133498561612208318572987340719141884465038114408491582876434952535493494200792669876198256736251794140744724676153050799723029178242351271010678679940427835014681036650077539670557912032603988218304814425255462084538631122232793283943061791299305934568153355120612274883276701242247382640713105684850357796737885901711649937373984146056745689770878362791944990624862589786305611117901246204145525679007334952327880508676539665768466582223334335286914885652427171265924133510201042497116077600384745370118420593756384859786312970968000878004708227671096275386164866587612383805330889477874334087618914156009511429684191772584790922408122760544424785112962215021707894625838595438942458341289715205611331420599303919218084013738824757387462296959232171026957372144855748059376270262519559155680585862477742680571163104730636182571036119456899094489748946301292772279014848213194748273603040690450188874664688266930458318817339306223193294839236267235897229305739792470211340260607768175562074556288504280895339479587586527232761879947068018111599549586214940395270205740555038865893629317722298500937901288271796282957900124852855913167212302909706636932110312517667653798038849891156822158656323297456180437648544972260916991028016193137021261846970503982221225639410675507884457089162316516450895966873907803254044399238081653028970608551016296905234050756550722094641433320744579577175480265598657440105012748775550054171471971411120785185512440418928273006108692054302942977432737573059358131710358439588349276588431197127283790368455092002790831443488902643699429635237834333972378538328570414830964385855695640838230985734518647071948877865384918823058257815696588167552759858008654098405847288756585535764187015710417715938032082320846174744605849850437042506626952028133701691061158359660041462842106737828391353223594448954509420481447540836139705055849622328648734955531608440496245281256049075279302168716918331336587711847757860042517864813896514095192051559886243302305789340832033280850446396653873433022473894808748953174991093761791965539097678912072925489370777861142564450463053830857344453089352235388808560554062034379894911596559987462740385672009173877317643075021507342791615801353217147000081871383597989015791011724866624426616320034467892580650947431184786328253349208810348535460913141608271771560231331630910011254895993650378451973226589134728333701170574002783237575569322841348905846038466395027385121632523010839372370302505247581678785523742005073199110715239039727537985243137608302396003029935890665870794709209473708484300448297975266727982100434294309090741082016755434168575319057019182695826074136464258595957599674349816250320782591078752850197512253920843222164299208842686906191729769154242860443380908036785194973881711171801727729545134871796759821463542390365738583588297895299536501210073725177133070701014269387636432661004226177015887456717594022074379196435316720865038534062224574510148123892428070518985277514813886841553040884126692811687353330479146942624377802397144850457971053093693051753128895608762898122595167889315486148238608719351756283924700154740288029125374450908999530039493373016094905314567877850469182760396662939054809194708864123768112656094103011253669740941710203906088177839590862446940034350029920387258072317568166495504039876419036902601636173973177318471373367569291828734556406276581069516253777285203448867943482301594307805770423505617067097935012937043337276661530943472851613186662826928129934249952057917980375618546211705093848860483992309164915591264666384236115873331197299392911839811579263696146186364771737422586565746395056553947773200664542323455534855097624701396491273185259771640075135659955312874329403795151883062115245257562219367084969285729430686180602032548727438556599701664756272160654249525440424820584894417127276277833915133558541245743319576593466537308255785417687566015926424645773969010095204215493176040588311681022299188984189926812594209990242851646947168164179466676365273560288394854517922734853742563890954731141570310748356294325050353541652963497035985382187315790675068985680126491214005239243648000649195922061950228137122977202128623060486462079784890824142165107223312293486006746108285459841467580315155241881393000043881394420884602099672167445215690236450196806842971944219704612834406098058604136004478171181732087151490048184562012381396819836827788588859421245043277830646114093988445115761094632237749141875817239437586958455927066243969022723601181071492073498599743602109782871951172842879838128247213839993498067078316817688267252382592416028217166862434639527916362699658208024445743408394446016035224153234408287092814163159005829502328234048748306533856483733811183540899960310816141074769739464513431710008389775478879073743418520317295510657806478183306304798402852751624074803448988296681384992953491716255337350224916665545335816935184018140636491792009322460261286946733290480185614227099983244357105711096021755480050885960383212198703627025252287161710824080462804265226230507309819382307439218079715496151105301896678399225808978374876593581676372746287668433461289435673425660256315802789155003973302956787327662574536438009541621723100598633737039895236920996386732389956013308468154501497666605215320624918651898485901840888420375469874385309985031612173811927990948570296861159195723169353447660736546970453132005141493174271986431838871322467193696664844636353647907633597431902231979969977731296342083408097804726348476447255175916956866790931750823489905187433257728275325921443428089535333857648187383525223089584247400901938416108232066358791856219062583601722147395529878237815238208852649734421263107193734789841996459799455679695094831215835994287263948914913370238121423166894926095506137990638635459621282790820673087811161625927073002112286207729471195214045164022581466578152953808617098731159817173087864112267764452104683723475012916274671250884699811450640024100176944741104293473887431238125590354671777009438955436406700548365693270838261479373504964878320469218494954329663463338726556641661015958237813202165874281640494611499552347373007556468513614011886450834917760828733393116638934682379651233049103261787727440418406776300738825130694965630780403525122718107047940941525850023887142481214783134829433337747939385385876384511005882591169971046979753648400730178200572308315645567329057966948006649608822166262582639174948861462122601910239253562772895628158742226340091417743768379768520967387310036481008236569078284554831843608649429507730445611863254647646045215386655193517493330305766587677515188111456674987735052911211906770277044549733050612258100710459029433206059301955354381673050971649603485729117907653709227895102214255082979897563337469785667477201552545622475500008771093544233603196772545183426627241773283787444162412962953146468462600193101252932683292309545265092831905955611371981153611808506961503088938471548378875877698303601222511090907901841854987048011463292840909517989785416610316711182047423050946929697809808081501052932215525062415073094270854205006945956001896582394840691532891982486159168526945377190516762909002696966468104377602334127492554344280666201571663846499036045811687275634963342318958171077222481370136177251691751309842362289793844675760336769733373174595657739957532245951878000165083613344126836086630465747141946568397035183507444952229902548722406614094483333028978628526962260939478127027270230128994837041473728662161061256218332343870021838744919249144475509233350937313374848462286884559043307387211077701880772442475385502972846974053034703055189932226287768958732460596204027348396486703220776332480836583310920489963476361775256318370998040288029369783126182627151615270758355974769214655822478453062801343628145764173701411726128965367774245267596997485942885077309788272610146897349098190082630246406325369797910554518455701216350515364854714265859530901044864405697199596357381387028813370068963682901423851689502811578885108870061965795890112016617219250730554229182574317932774787166707729228211390353658528757653880419742001169508715619280804004491066519693585261772051610445546191851510928848086978521211717403061276399830984620748477117127878890095176631612290874968428728744614735466827739133474199979556765186446835933553215809943166681404845545947868900670171096010879785075779399215745031359932078590058979234312260287472174815361628698196620570888570222429727014632382939649832562140864593089457495633874482698877858144381964807999987433114471307482181844429183810284339018268665513166460186446435883795936403014186713228410574534437352391585468955746610627322392209149699848554678400291661347452674345122955416418816487701945990932602907501240042371525138001896197113678823442471552336560747460358746618536810166909210598373905654846188836896101337402609836184939996114602530014034865541900168248825217580991441437360767608707145213180901505766789413697437318800221850356471807556308831308805181145282636382696143817228873816477704973537895616331102806750356297132002260970277135354678125306107784967958015759132890673040744005598814800976958601421584227246019743452206616248250209998797655697793216304350998615855419128957697262802388357326349509839551803588356135572334317876853945728516954257954464560719110190417003373374003281047054409861843954404069705520153111167503803165897245439339597939082597607650238030070092287900020710876046742713449357090174792962026478876499875275699448433797983244120577783907152147028236688273181210258978245796667696982870851381835704853135281504775072210998365547557158255721487849585242536534130381522136477337255451973451439094685995569001837571138228263861764383314443699816185357785283465632658744655001004703632196994524694912548278269562565618723541850537879185192415221027090115440989122549144046203098549959109684869542935668124535060960809957395018552807973494784741794061535670901729238086168996587399137521133661288039306208183659701204628583808258271177576306714623994569571830269655457436130709528456232767342480369203127640109742000589822523077958519762218180107910977747765101554028284496385881970817430612244958751392259177106474687329758857275100530087552770729706898825034136535907765515068976281090391793646564182333810461711478496806636550103111693121980088806766594436545428748427090949109943118167942130289018961903042068867792433947889673723533149994453377213469872779689050364182023804108994750585186343960236200441446712035372927272899573575533610318745024307190034972464478159957267072346448317290575985033485665366034160870005388171347991101660804736552587147013047996564979897055111627528293753581761696707210787429060484788652423976869967163686758104414315162497138903724551499943950543800982438259318148502555099278069114316211863907560682736197223351392608594763962468933411354710593281288174055566051185808271473233478358854008134671904426142769720200336082509415746082123095407662281486825878049084908385290571077486419845169659826480315089682089766700005297929726325729580125626274205575297923270769786850562078135883500013952513922051155534713899814100208597781821470447866732949767234500367980875583152068722011815614128779875779662758067285541581120720508253622713951993757371050276165743627373077117485548440235632720182272418549473402018175938136328650451736627789750755466870436500039079349558579976935921078140883538633417925489287215171636110030562387074391497931268686939518766690344253147455964637637820539051028542587231394663963601274451595019134879885293431211802056846775042834298910847171762355767984512339275353843200928520064650174459438717202772961528214062203775013663299265800764770860563702872154744398788868454040301448894739639525428489981874564053326561673345445287928604487229380595440393414116733488090493851887441624176640233496721218331703874660233609188156453096172710414495198813514467063295270968390629849018027994376859560646076988639922374466732994280688513355424205342274055491828730053819243434327721733120219959298670366121906117469826638347897997900571178440446305201893266116245440125824668305198623846761419714824451040882813273170446845819664769757578093014268972783243840555101890938996383015896208311806889334852768824337281047558459426566460331697525149438988884989495388757962782716355594036220461549545620606820586906838558419982580206366873910209818661857315997100448236661037772924592046581010277729117776058458804552507180105487569489538489912011457235811250770132041600320508265876821160742595610308298768090042146762952595159616271211890763198609863761618866988908991791458704094585321904444009644042713276005591790031403056669039946515264323766519939902681044849685342061115209752605731047857697271865339249734199855029267581043905157821883422480149067400829389662698759214276595671085546183309865105156899934364626420820632876662868180771314329224451635840829610675855239000850680696684795620646309628138974213117203329436451544247626912505352056524346063087977121229709783223147391365994084459077545488508587852962161599709458143566669476127666375235483767422059132395489335523877868063736899014971505946243237631766342265756915276623444396252495061946795905754574757164356491985463698647318405918649332980289735333876132799560809811498672772348679359263484385214145657914864409862446008655732905943859432884318179327703016109314141860657339733081946716836776763016503002773935400604965332670431097829474918783657917091397329587711373167738674491301834190405412617357630490929588232437794273506071649664646823492674499640338228693606553498385894361964857025227574146187570029342706335655733896009943942408103546964079670677598038597988726316863136255966603866415727685297122129765589138215625547568860326269810052521429862815690789339022945067872036119916495376934843755663120135030775719129054200470032142797260145177446673355942234789546775303518441405397183209053157764436664646370670273959051472177546784194530464844200103675389089277367184206956842251679252798543394014076053281980830111569923462012295443662595508240747721652657483125003581418305990986106392994054847515186853045691434772027566724723448064775930703837757798190999327485512357930270422254775754485488829899287541944801433697854779540097068218833765257945675035863982312378094929368443667276041496741846432866834610069061830197057551901829458937903075444676635831356000188218622355739120684021881306347170800661979184247819145278070308561767714447302016485827951907202175764539321890982966864743238582202448384051737079406062056494980062897038670183764857337720338393869914776929722971918737057385715472453714570952071119637518885361224567310088687263101280771567839863981523596150246042468792683456208653186990013202688786492036806124358289958658289619615736753427515006033160727055241255323161687214928237981843149177911268509983702387310921931120728837399127853081965411715141161203932047284527277526849424216597412701272436889120669376201621417321514992075385680543301572283489607908866952583510628638513850034780202684545242111192235816245645926378325425005214532212839343518505011988204447857378007422592829320656157332278613086614348431483251875808085195194796896981977306888896641617500994710278010234518776250039081995060989721314070856855824178463681006816096308159187499739857891939953609210053384501568253482427425631674724042646381695262202414416273276686784154395705041799996176166560762223140946598130264357296135039282114397486555359554065331073351981839813580327310223903449990271634024775742274785269691564330803680434807957232664514187305857266753429527698118772670276046341239834816106418961436386129674638863853170089692619946620726295308996773644189237960572737389243650588734870674893033181109267172475489839752769398514469516474848118412014438486811976679516248708097896551992838818673570284377003812320623528742028589811363825029652528650603731218573650295361143465345969694762665341412440237614533025936806271087183636883654026890560412096750041085642664169553649440145869479829784620464660338551271193019239676928644977641611093504979064161437167425560078293343446244851006530394263651833987250038196837985264711788858447789641605797239640809748330391687124719922095620083034969302815338646449128015539571653709282477951225492846159137558581350377140375579608950803909919413800628767892404363139351256089682500423320017017706033174221678964448785268385083719722316073066832729156870546564094030053959357847750810976780727570271314593847336970171203812057531878929118823073296794016037316643758389396313114178394792331803630376027440391161066490130083105238767556192123316672401007928804461163601949864463276977904364576452576333419965781454607627967941399021053546565982103816743659224549305865987075059739102470793997063034026880372452070485017677639646943326860919398261066211843956456585845621532010797896556815165307291083518526263618509835319578879033318601211167260683093700810915869449490216892180468536354605743294002410347866943473496941413826269037751854326861576243037857064101484994411022468734849234512799193315497199617733773372145254023358043055963845185536927071652539990129337004710691583523706876337731271467692926850226326733874723726473596721568234627250620885369008420049055738522452275177006507739116200008520782895927281629431393690960460605816442850398011508703088213534566688205003528990088083948169453641925714119633083136383511352783029514284917430374266968561522726621766900023214896916637944792965940533518756408672348023504784737103659392142839310362527846005250609735208257114099507075043033435250102183375445210191324522821701864017854032456760064463583136697174337932939893726752488273694562981627973694899041425584020566464373268778757377355829682697424473163968824976055091220158225102657688496599897140604307800401133130319601699759431916277969866366455506327018035124444925389834568198409467607769681244770551325570406504640562017797993230438172211468270517307007489865626695254745045946783041449568839680061236339699467386392134163440316679369255792709612601995485087567652012078288976156768184118566755126586131390508107446457007159244856874937518126524021817587513210696947551379349376578565908005482943395201861018783476705106214836455492910910124844294380722834332884283729201970050477896801622822181085884426146067735213486326765178203737343953907050935078244453645416201448235567207031368536673364724901801650584780648115714266407041307138291869275289056457637769609349889661547321075330671246010888341859450822730341518151427323744214501421097700288907676804778322199290230149616737464869178578050833875614496044036607369831638390069344683873421974517502727284516399317480124146382153106298176598779606498132896590250953040197871579270361087108912541022681926751618425016374320077333218617136913943036179421091885767521838270088466916465226626990470454383503788765820954592863747130528358399926217732040936479412807112226490829538234973974121960427764178111071798290788689820968764718721877031693436438181712034183150930715126118675201846107663271261941536857136028272057709579779113949274692319200914313043871153763896124184674084114683976172879529073617871689921502661819542260549958289996014608644093221891276160053367347955105358690709658145036982025635512499129131487514087595162401083653256364828907539247234540493756390629810807911924720887836410929070434670085734812018139088985705725844850882395884456927306388707127654525162049730042425507511393470427964914267537148215487210011970106078228321805903567435536622965241627257365395338042603817246450333278965233020128927805134730031175442537857559411263427588992026504747833461514991913332421036005967073283338905628722410381097538224966018053207899253823595748165740129323638493738468236561661072190432883535634137772925950862519977505734851820179676463179617718481820516100626169806430351643155583251266312826914368235485659808059443866419459975292821647367386783590570949747306364148108100072774319659244762425068544790728350840335947476429133968114851898998719480950342356259906822457297617417817079426058783626287740772287797250736724075276198657519422818814674275706761482204864494308069692390087446086702416159404100306750613685547963447554556478188828886822488835100319094035694358005898085612768508570108173362061678858564046122032869979264470740096497253485148076711306768105450258528233228211590594005882411788212773443556972288305845260185892394943615745971309761656410503068601431502139607729476795959538714547628088772810968315607508861393218838013272716071192883165432154353317561480315337785697885722327070125228184690468723965509096766066508548381304172320283238662877103532667379087863602556465729016415362874777187989872407780693876736187666772990162128363145996780741325486967101913823638765426902590142321788534096989143934708548154622160320981811352736080671038646021951262096867171971786829975629303170868892524290963198122472437375330626715373250937158942871465703495746507537326139483557753762151680996699167682602608341501480731474073219505518378931038551119872076152472349200674266611881531475137825616671159357037784003490538036101518515553814354886841588110944568169025496624442641687516635868260860086291138117572463672735231763574531077418557928531475495557289355025196668949630509544195389232875977348212136682268409423443788546789849578083260703858500657563323814306645503074742217053735848723265749859856832796751434388154797399729824421511842826010782488235220717264310650028996146022650174011874364031904992862579602895394413707883419129584816354330329847063614392862717588681386203746876469470534214315932885268432260278247187287746709537302728527675080471308191954472312692078986955991452068866103030186021915789558812501290673574928650187210255768045489127586105643863157495623983706435030887323462796528108663182664779499723151765175436139565318847366041021686843591269206603146523049122424246407088870866660569393168644657133770578858241200842163799481980114182092091651102861919990056815547183869270562164191222814024947923570724563946561069036524750499113601411921373852880404333685670119069821533948149531263263341825010008706567636604882966264128830447711662939281476384202477535781050102848121336814144620731473891932352998535062083856096948989361686580035218868409999343671643957097783167872823130132379873716564627298610246466467291524312676305708023358153853766977279297068995900358216997355838761692797214945696451290453762436975648958249839310604834335431011480239739891996884837902631101404763314022472704865685939201847127365829880706345239569964467126920966475489122377885234337036767577073554453338817821759462022824821465046332969082731420326061379349196121704690261910186559890857050197193286966390498628253202394808420656203586168932478963812026843342415313673963261575378462347987222977346906871317159321451173594723813637687451236953839019643047815800001783444673536349074726616851260816345333942114905137668505865884165783728143467133567649720319926921547379409012767735035520466487506243569488779366163284632382282871164675129047896453378501305734070165398263582410517765714823784454821013655505515581514753822591307262514207967497567896047438829539691315531057064315602099756791185282928520895064420108650820720570122118560385570835890031129827421488460524701998589208023345299871279070684457032253476155080557560076550007995932564286799449200826230497446314601756314825867331895615462756369666329415075769741120904884372881864976263968982577988364515809832347970847989146985711650212582944260466051366910684215789869817591357191848176782691949478922510320972416917154014727699676771770110512588120706566168384333501512564088093434602508864807544862648947601624383034350128292339324973009788017822883527562815177954858125911662431166790722916589937097214977412849412463735344423145324179214320840520902977166229743870552886906047949671784784730298428988297087260996512199168685333782417571625354400080649832001094424573484898731477279924280810492189315968519896027455736016564187451581279487406833206260719865957903610018750916340289922527025091412476715126891776821370807567229091618542743797234237286955563725848164095750142441645244005327978128614210274800328777224275722935919134084712127807375773680948139250326416291139600118009737768227185818450085929199143484898596624423387649253577625657483476744674178280476567776637556097634062353901369747618916492814461150324488132511214848126028862402469715923949534343566193627962504393990317349922984770306387803396994982607491340784858479000058117715962340756514015170293695655311557597894956633141204744569057819699976661835343442852120273248213158688244485473184314421733181448320321045189812806036452650695147090368572281162588574605658915299024738122062068068488525536995830719677482337576789310249127777631671329993741066767170613563615928708779731764173100183761149557422977596076029117514055732827970244218736840079455519098150529601494278441232867238853867368953449572145905236953242140461483550060965660865378393319623874789846729086691991361742707155633064988997831210043852608078462933170392678965563200113453306949369927142203689214477076069864344474882120203015743471081922513611057391470127742822646020763590918501668749550217348263106830940662072186029944129549075757074288432342245490357609259802269516088653004153981130313879239318748493801689250763762948026771082167786016936416761828634722185423390590392403482199802930616280837686993691520840643515417576319597932485341707379730563834766973580512514870130881030828630366107978746407899183274068162263715936579208400130328934118195215491472876679339947579024809614445649618637220722411549531749869671360510682822752021627971259101800916786240169173583897355509514847182550239651585024151918541310227023529558727716720011810749712275660600539132907965810056007280343927786555406490625897431642333839517839165718924615873008301526249887507617410347009516164900875707845754424217549270298204632958343708833495111115018963198872439728163065223923727152346503775468176296529497783337713542289645305330102661901797425178191182204056460004515716954885657076018165914034431191922996970595784259910010570660697156371372342552371448855908876403187587948986771859488330625286557335059810863483753801040208791997685995324042786263613958308712346832482013445009044856140160224152752499642779467557017377182061985984365366421843688809654738040817866316858251096293048118750001969893845829620270803730811404958894402801744574390069620335373338476087820199147891736476742782654615560737959398243331860775246064219963142281368111225752259164652480637715705924161694682481077328260332481492355460351386921216641806880986129126385880003552822172409128261400072836745916032307079161288520399179331599858467136318243291690498373538977988050429015299356838736291105959903128488837823380781549834945212966935092351057457968206692844240054242273219776946839700435670823873781483538205510146442151496842780011505227151680494495334458168069745524586497210062230430347448515038230257405879681901246493872419955750164037243891067372598866662391573089388262007860632523002037056832634725428883338869911411620180695017442962215986299228168982635972892929223803932620574075395727212977864254697822404574426888915998406908097416684582332361599571530277277934874352452569410961658513568377197957491568550421988600703462278415308400498958021839681513897145197456923849850441402574970870496739050016896127655536073357639587642212363484951210173147555925097353615558164385474172736478137854559945399860216873099627426754082758505068192583033046477233342953996846934045141090319614189819351980139476445919370696329382648077284667664212295335055703458944641797120828830459527127709094190358676199904335360631365655198851608005945885776862765115033723772145987410387657997421013005892309728931004947718033440969693782728472367953697111525835831109136311327305504936636814596051286911216959525445764526407818503975388228697999249895245909612544093735918648743989654449881465110149338578594347749432958715527779990562199361462244228501146961722219589827339304357413139237639187805135542399548580912698816554380282613697326573196409874584147920076448531964816001285980011150127539581854001618058477897978514067614346298177171587881857642870727156575614848127220271582642160905158079087348632907219665128683958703788971680249100624938174321819539621913171220401506584582234985717263958494836211908855015913682144579971152753394029749801493305380328081126044597845533574034945302147522042062736571826186930552922406681066000965122602091966658665667399951181233901225057243526034535215264699474050839759871588746742704555431850774527400523711200162941572238001417400557800379604774616536260175388180914400938212303718736968665185586476987910778010511988221116370952986740172370423699119435270153670079280964271623807475476446456620423469965959749618823227188717992125438705209290863251243871789394985624530791471847202767275246308077063218455438049870475707260074545730586255391587205885861280421056794012326905436408656797875220255727640423117309452841355739062498046781406870441498088717134847009512991650043473610030815390724744317484880054750097759345009356176908160931294397883237538310897126055127586949145564270228655573311336876864687377043539899757395936095322940972957466690455446422887022794690840104678815532714327258068566927794020369068901391211918653765849017729952844818399589040771308213963690652267015548316529390094311492935854063973511853988621398973093316324274237228532019065303162521831707713566296175694835484939016983247967251216592977103181757865431382723953084846924846043051117007301889441788432188035504291766536017599364119797392291706770392436988914256142750516039247352994852410726530166537490779381939003073961659905278436486529337282779786814328972951001962610578060646415395197664992867165637571358560913412273191291199052272401331180436014334742767253913352364437020927539158609072724397507633839752699273281529987124867686803633482545302243876610938835783652428009067196062698349509810245449263559710333492570412557258040278796036519521415771284611906384922695880911568539075621347092663821017826806799028668360423795664071729647666636843266373776558593298280410406165741466822247851485930042096322664329176962915185792908113259407370847538575910647224423633542960841491803627117688409535771833094624456758319799980342484667890883081333665359384141678940420206101822687893999620265705706059589201678383581650948385557901964986655728110462482451879573569497619547956722916235720076311785852440198180218220717007957234220395304890833121780490973719088083496006423274165689852510461626582235701845710314960879792794514263014176870661050295003563963581917022659163103114648525174677271724874744375667457403570859834194322774251226449419583366435891468580118123039374190161497666280700643825256829346201337633998427277223681372249612463016291850002463584700064099779944296791798148810911617234928254910565709073991157404749619153951779624409653057584804496730337083883499694084893038191946137256225512956859642820058820932942215578931957438709556150547395418296254362765590592349988540067116728425691193946162062610138607743474512034504272703606058201748521321800721824742015127512328600098784358160233863203202679865850355533250504738818539564456290751932742226295293915982898035754696181892440080083356349558391144226918232844656126041234818877726274575918170625207455553518982596719680039468465057574980697767192947439766969656902231279843469134840818758335793608677957312532374867749362197166380886184298055746931641425175635974989190915753425084955937653102421703255598788195830389739880853781673213326651747703685899828068093872877279876235285548139920496832878057738010672071170669154977647489053440385504253932479648909361558477423767694980996398697364812124789761006366689768664367171623443273691906228804703788219754937872603751361342514501962587509977087842036828648836721038935619373260468780954356570065441185840053669088402629631537426561239829097933634037769159630634661937029483756858236231216384299144313293141588830655193856119416535045765943415513396675343448199819014085913060415734556467043362239903635008691861773504526615790378467415979651618189498571586885723116504604067645157957870405930833891575797153770329009830522873996924603853940385206700740173982406433357142727005063382636926925930365308424073185538817367888786994996385651552819569629876654460852796865903354692446485664409651372790278485081116772883145252930684770489285701642747083528699161457853672399672284566705333666952595054059477229162454655162522459422870599870110751155785705389909118650647281527930280461056670602399360492284762852307831352705422509640874128093115806169269056787149539395150209536531509951163284765924553973874313155542227137512288763407392317853166208624546176681985837152134763684690786913857506723236780479305960007933372442654525385711338626988208624847400105818523488393387209430135110137170535603776383866068568129082147063365863898244838327046208487658131876241098125669254286290179191254356625450945319634828415138873347159783846429423514669359793461517613224010195256831517546873538377316063322547826919138036511655588016622934659207994350417115366603418701475847276716011274398394982296797856624489858674523656304676408963078788547401271552363173370192353144727519462428849288065773322971786190926982826169827214581123351409942459638286338530341653951420186174283600147051963420147213741625283094569523051386101712108060316544596387203620740062379100372413009312104066940419082418645321724454545466024115660437615015457284474983066665791746876384691987682317808848515198156045660859075493808070129827928498835131401835793549598795503358487929861375715970197210899073690416189635026398665074240710405621019177154251096221680738317394089710432953152940189134518339592809055903754706802424484742835314508613045339953038230665014899045971127676774691336462843368728457024699474793273023581198569112120188169130129339522959528628049285574496275031453434295607331038203007620873471891139026769982873507613524806781876823655240055967686476850878731564522831791791138206175331877673686349726670870339500211146375698791483085845877686767343676045267443868196275835012165773188702072991863743682824941858276842635337406617218136162782507092873775885358184645388996394059014804963875380618098004977369127909796626575022645610297625933035193679973101115840662414659932409111563399971166667988849900366121258587209094808038664052214396928843893171084463762597566355877049895549828068337169498305531210908523309677047216880084839581243705670082286005947439399740715871741005127833245750181863972558171216659471883260927392488025195425526011015663309099335357747984685733172251634416957616811850199915315408625258530746508428626578326275341322618437895686578156077994551229752037372342071107349992010934078468562947865548553481023340310611005432094918369960936288973501588396731476125878710702348697085332202821543867846014845172671717365175973656922842348939698104487598457271236184799393608205591379397590738686791722351179706913298962712740128942661874334628428961467755485181045976582859087734279476960755873207335350024750845587943572941275939796514323271373674415230476690455347214887550655898202369605233210060425006950640463768175411112297447697504014706869062325614548473187435864292911078423616600973838268095353958799543269086901187977018818948573098593479538317642788555742220788873182085931529126261047167171988748017286908614461019604131977728329197207699151853800752717106358028999577271611974210429022866173963590940819991393206993077500662285932743693915160842821239663638594169776210002522200052845473839128496057118519344570533288303676603106255881181065777007702837863358068926686031988927671308582977432448747935526862932353808159910834394755412536994054981026460138611063693592018606746447651995806206277402687292807491515859322996826989702298990012255883964217996626498679610192824317349406593280232567765572875108019329563037594996308758012509082868375620946265487408669701832035408149727428702077334183640768986764413140362133044675670141381884132893145055886590594489674343100328601954930420635851762402779649252844080518566570925829695733242602170224296592163912383995566505751058359683231468020591178826574591010481719919917454916066672000243374535140172591988369405484368292034143543525571801046082720734028987604882480028859791632327953598207036402476008007899902391985271094634817431896258557602524942702862625201602749725355790825013055711581008360181781684532835276276973405022749207880739153626411525476434527381972741984686739746617244015713245175273205228031936710774907797674036463973797584900893210281841047316734722294772983691190162479693027532629473642635407748528265087240694018396403154655906084478647351580192459204772953349743196988490823593928102364467349828156238133700871142525869235033885866224421226930101424024302930241041013659227833386466626568667320763495884927837808376148255094917929497049921873009953725348808236389006618695568359914902899378447592103654196026664599596040818509733347312982902605689367480461444640798662332168749992982217743780349927397139557110472534264032717184521497921594818787253382027419831957948443616676014806846186227064421962512231331732703982023209002656319401700607402192194899982119248893354592638426024655780516965253825018845531022809685648059933261875299003261310112002321492699139420643193979792481992088650114545252052952975448217510354354388556630992937325672407975000387769451916262418469833992959642223301141103613164131022831330576772098611907372053398697899766786390383016488908452031730442582821136680871228130815699339596018245183373189037322097381112752789456690632634231691145251683496377026477967867034862601212121479279200851672724653910674491606600310210337358997193644043463402669644348607913623415068989837614584089450911935415556765796152491156134440299318504957916784215280369996517815011280924259961186264056541819638874143604609821746757427946049533148461594705003232997922824824264022260742937997103577794958869442187456872967584454833119604433368827248658241591860398143159058669349268833668958422178362176108877578014428748556283830913048789712830186413091577524998943465379238541270231076777089915669135228512938264464725569436343452319858087833495187469852811068829218712038655654261458925361623649288693111947610837102431225085569331449445935004362618396863971331669282545689690600679822782383408859752486575883648962233511508103008151085368275285521623571856242980519809252434232508637295835336327310351419910938540434933267016472537183534322235935978216749011345886431148608738652554580084613211778386690855299378312167787852903540913945040507817742977437501554965831426709334888314037014749229090557241506794653350292787201356974757882265431887269767081514990448010469381441756714824581061401239834514253497422158785098070113369037536587003235771275496320131996944387925497654042371239810960378808328824893120913794592027349896016284883879198706165925397397889159535342238422282073259200782682323530640924953671226178879840409548309543924424982798490369497317762138622176863601528840926626753212008037377591079239896246777696554387489247908844631822232651657318083432307555236831133397984243169708872103833070202800349540796079190135166684178097127180599016643276230046854570395106641665241479973627707989020772672165995893359611426714995810605549363301705062790956062859771577043583865383050516683900331586322693362706012190678549649628697615561469843133213810499909018763878349556904571709328060247093918282312961872586839603629007312665177904089969680474522937440444759219212008019885614787359455396091445300543909533802035803587771036170974899463622880613265717269644603758982869484206737584595870153075533401180849068612478986037814656757401685634297210959071770846862688513527232205739200001898307725692822888417673131461521385683641656185092827738370608056728546309887497687487913863479949223866960925828386369036836929568695303508898249273203559527235215486532926415634419455872885038563202191703393124956810821009564865218311498440280283191953337749050883272338535550817337835579940525020397104867407091633240467931674510082019055495969295121574254119111235970550713518081921992515896862998554812155085530872386837113833457376560608078295279330358952218420509391710405221427769582892971304339793326337546469506388885696656562717300907145569094504454368377947125724913686695958951043935819749983933494861574507918533114614660296121805734927026390069354045044563046828682040941056292280402890782112672296741162247555002688913409914127850901876071265713216050099135226097807943506637075509979058821423249454489634382665496147789137734916665201438454254676162123295670491658901924348407343108555774332233471906355523274803302309458650409106053665153390616074230652547982107323812731273860669076852125837067026822713899729756592854493173271348142966340568462163952019721757781208241638981069814090811299179286516847524848652400791207366683620517923177441124318721642949990167041964025654146961209038376171215203218966198164117807529099740364152689247087153946829436585934885136275908570133719125748147425134380646025232608842027737790088808326381395415056710186922939403624989948342061922858986441136455611708580365902392209397540220265578197036711984463450317130433935542206331066604535546301003079133629581633974884526726571664562518483034823392115052630974160300112495419033648963421658444851007083538489975789262715619139038821253569871667153693455520310419637849150348367331998966608632661871601849726233893763446669071186302585794302089974576289341522268266687424274747192681078110569325610485087591176745608876843190227184594950187280804008671205958145825199820961709684978568420826101948777703207207990590803862577720251364879342566223586518541355796450446480685684458265022372752698435434581230398334410255724911727996250234626867023731171844815899206309383927013884766660002956913678351131761799426097098209725331493789725642857905751271310465428185623395584566725195030961589996981457986087287771040153150925855505682568503361284873919113456518415248689260614082374089652648670479863890946999513742845727776185840690538688881167128571352663543161270479261130180921667220095148717958693111400736388122975236850412263206309521017516376674149169155202463661067084636014228012204017454429355575084926995270959380571899850292848771230006406137961426728472792644715185932968324264373927632177449047032696181358643963473328475489621851510596963801669642194679773363272168014446326467087904142611965906218299224172437636994617438603422655298947334183579002135545449922277053485085416579138194739996831072667323062026300759246971780117059777496399787885071239991250080840122715475310800850084470492948886550135739504559088856857788868665126214115116508462701687085688700808170199507829380089889547313507938127121877425673867315767424157719403098669548521559164100737835877156885398859768021120235300439222504538625895755519370991889136122771070340824480576581734053526935940295577008005690052192507382137682972203993065061681335121201963505735953324704244721007394194297980922314587846634639941089418976047852101156561289289888501058747013859306951873197254290718069804616721240309786938742347241452765451304310723378145130320883739037708118981258876691378444381329888614937608090469738981645357029528690058194157763395354365356704556557736161050730697367664000142415203761671710997869571581818272105831039167044801649296453218198874513739797677435719906522502304628301917344190598095253901820358952756778850433033466121832665479589396330044618157974352126356379613354287085069217034466838779361835591440621758977241229043945147287975716338954873892881019134997171754453077395635383958807379359431593111192858507918835290964687917352124452508963156655803821944600424848773375651789192050976573000837548911026557933896678615177701690940271108287141080298234616294908888727686226543418305984081116080580890575024280252363536083457597511036335299439819994099667179376698196837688833034777386051691222794539675038825080690210208431746486676956578156463871145811828420983946948739354518138109084722913030993103412234927034840805154002127167323642478145073129491216938585119016910047577138443414705108781387496885972873926176012098306855291011955163878505005027182743955811334796835757684431468307145916206299008348494062735214917691749370265083972443974158128483528236577436467131566615073450881036133297290158332121350506444568772349471512060122051101862301269794396919423385209536382308270779291054837088509421338183588003251535314383165407660512219681766141167564186331142551435708145935585033566579178350254207349141961492266833366650660449715603135385776468041177386921063738907654825573986769837744202412212615193597349741759400225722103767030522033737262427577766526663804505217007854367999369066805403854529505875702410739048722796209002674693299402565606465220951142217010096461461736429780287166715765011923491929180603201968621967045561851208779753735804999123228646661281310830859670773618246794476136775713671865959622187838096087337518642146236927684995597524168706344368499506992105810094475817505889807524332167515374967349062768385916704764100623286154278793014236450928903445226867081359198705473282822228096390560588042880259745415509836842764669877438505491828220879915553571281196999725470086444779966980095229327804814746654282500478119780788695010866236000199252264384725825258111847027411165952303098691826113944479089055188566899542640749440748087500894693256466282952693106883245794138355495682223511544642667737283052857093161045637945814564671733095959687651750538982210457232699718448068034551242685956462738289574800074975302774050759347216477361515156352844860059016542072419775559368245639680818229098224570567060129170927255008107811628870117045133126904067089921512950695910819878242400194897179043408754437365438553181978756773367047492942425337119752916058503229598884134904587408523720980894695258799430167381946352845865926342149475163394047158881009663998707273779695469289331671727641217859566229193747692305755439565311339741204459059704299718660122761192199717920499141149294830833126808181566264611051965044973020584383522582516287265307791032983673552570412833703086485518615446826502238208996408359712666720971273302229773836702684758538666928341102111282323278819099222005809281541717100692146889570495018820198139487967206123508779617184199123815140669596062185527959093496749227672431088983279904981564303943470608829185710959395870317258348648836155178630698749526562116171223044292577091319490525924949285497626903589961834149975573383027369536872140256840885256478521370000889631589359290962060368763639165253753591672463915170685317894731276137318803179067203459233700213766178626635995577594899381241537179451142278970415175374112524140838186256032823060636646530278864353075926758051564644306445222085642732123564203479355951943654547630891635904864213278204415093025474863194114347039920373058071125155336549665428584775147488238437869242729711699451453471797975692011587891411185963409326221776707322794231476065104856181858549014203772285071063178331927593234471845283164618646760628144836424864639847885761064546044866602388078296714556411080694446701241023158706398604570833094843840456266994320511217878385729816999766892443258920452397711282073215461490535021658064695632417719483583091131112177790629997482747175591123728152082440975901732886488467312208771701670046643920403862130326962681181927002248245779981653307269579452031835221850218378937917621247899317766334625252753958441244956079164516990276582714397140248768291184723299310432840624615331115461750610708629466268547045437283549396204509240089298575251799613844748950079963979281926300717432234131460736880799992507402319330982193685488590558918903127158176026973848161346261663291670707257944417710869277262853443955028139660029227229477790792736805242782921158623725273460039754658711647673767950109014705068488894779500573738658419309314449004451081825539849940420707775268922483007165879043306009150058844199064536615946791681236044004054466615775538092429537973048905610160931237221959320848404319918495112838440402399497691557581307913814127275016194004900950166120852881229837361951057120115008091978511568172203647354547289750408413523521080808078768183569860884094757224403043600302130227731355705248597251341722131899843228478833202962720404683953991081426605383683953155987940316966168199964099296368846063010366827630668748187389858476458790399632110097336589385984679562562125173851604067062295843956230258685989722733270343996338604148746324567582086664558516986276598846871282150328880769681450250583010778628117466962161465951645399833178272358292954305711537783176332878934243654060685724674690067624996810338707135204271047981430842028189227344177072445324096471983308346874383036302941494661328631228539837996622374380047509457985760695586722118969226334466624230801298501953877800264756581026352430698729761852921349197737862301450674653173587069415143787427340289213566423998253036475795765636126384209119801169044646585085601434916958889533219060925063591055672454379700101840516939118518283204738787019885793367481848885645309393282442592454218847133891982244271196232252370819276846676499315471893471782312284515197509820326165237569735815855665866121361544642626579068664049987519130146378520597293682793921036766991224787652436624390804642033278184658577366772231472743907640323083608467728062050578092039660304035766654303406075933961826581391360281344337136947952755525009066197571285607803153690561630295592807042888381736137615465759939693329021617199904978545239079882391708373463727573866443912878297629487682497418117218108917943102171675244429771988905294403483319920666627792058182898563925667279455738539725788976247070171589533067369217332584177071131023511428908219813792406837909646611711196317707177702491039601864778735739003128314936507245122091076216395183690188292732092692601792747357416439699828137054256123712426774649909477663765752546817842207986522931103588669255927755822737554142438450411744972054155189827344377802316354948422001577530418341496527969808400105147535721027583542048124035960039718566852653743897704018594436349099147372224356657437854514851004768625969935662154037067903913221059698301717535571066734249207993353520812952666503901624026212443226547137759051403064614016883414128098487658901160376544920842374351100168302930334907051948271713092126167983071140536202444039802469423503111465237706618245601295919605684053868243309152811801255505669195112035643777518673469816811049283033023879070542534722714072473250809057770845331083213657477337722124757054203160221341368998116319015340345552807147276329955201597324685416181465924427547545570840281342115691150008300184346002941211207335353759567588982099330419778325870562683656047564364713941195428064915939222373083212823573720730189471831687581600467008561448373868707563015788339414654236974685945996391719823925844628511474713615609706725991074746385484918467926156734562502533034573717019193715048110238313518664701420505462858986619337648622371515373972896480422194078015812156637555121042504452355516918610742592957921849116708500441102767815102225247915235114705955633152657263151386270730341093993426403978581439521815164343405519218682270712284513361714602251000185028839481558392427528132401458137720338327556135772072814065885547854632445760392853255276033239431830919681840420206127678077051248736511204888871370822612933530608028929184655306230046768923122373091319899967758984177094510167045797907538454730271481949990804455863210428407304392915263710673858749695128674933395971704737190933997684611163546165453518539487367597749778829229956472026514150598562346487664712845285124710276754865109444339141802295054981286032105605611093921461543465957271676882166576975323856653266388071670575925880902948255279671980421093158616078342095375156871224991186002834323428988213977178163697329257756593567441400689054715487079204494799976756545251517309111470808610975258174989199464313609954329468089746472158723659757460611665369474668695339521471989201562974535661024331140060590544291304998830279125713358831317315848456667732555586430487845976350826349847032887814606586873562349152609146599569500935166414388359433927944481181745481239697605288880012942518642454210062111322772970468095055044457924790533825619508004963725442270642107531708322559440816449263159441328342921275230981425011616684386036347649042915117335975586551014827178290453619594271798144212679213175330878880983046494258173378355744531091695569257037834429795329789410786339698048931593253484505230513969814338412814211438212643453488818981651601034494012091434253169301472722558574015701768011431292674231112826458729898058867220730101326026562263578023462730486812627793582365752252086794185997533984469304908222594953237281066529232572044712270282337289737771638792674972349991139910414356813243822145262572511376098351504307260625003723130698567255879763096008178593762097107156647424583225744279718887319302672415654989381005325540230499390790993845995198612896722548968211798269946526757805988106571274521057930531234276142379938774726896639695052616534771035007950574187510991297919487341515308148424807089175605350741906845297537540412948721794742109912005982259323399755201204616172923227949898383319672878408827475131371531815098775762008992714549753935179342182456659273992103799799110846466138952089697320650242831759757459026491024807606098667040252923023675484970426500910868948388186112730343170298403718538289871624121651019582438718527769308184835036711735016101666246384284166788112155534945911080640271102115500073299170741965856643341164001664349198294182854000578057025681389796988459110141639313395994840771489734339290217222908971516895987846788012841652247548767628444254406056801184162220615281640981925672850733279541698133373711761976894036215131371570892211650182887153319186572777928977097524976337936172251871650131802486574577137555629228233322773708404950308053975379954447905928325703886594519237854305809982474288518997245155146265765276222732705121617508648775999720065489467632053959216723426235900198164164368038494634534256658532139501282182219828165678452414409808533392077208235143377852636106734803146418159288292412715326873527297116875177566575519536174836362453321793898091461774040825285410891792024517267850613822850575354497876202462289857096298848350598693438182562157794907252335734704053287720343884893209971513715505434330950086858076170102860569340467033764514533395506585331339544995471268793714340910010594242901685962421188758053957520526591192423846826702522940334765366559764184528764581464799549845718820863952085711410435948318020331008340008705156784312505550606469790531758244981311621150505279169789186356315619282391359506093610498313686601590221731540476155313071970460099499927016976442444125989032533638625835729473314929995775035969632679430250196567584998914587268824188932786232574656742521283667166615888931420895881866230053659851626476021363956784577591311621172609216381676996328435789957011619531578239020719136707394416114623083051575605303718923836589522111803271572603305464969837870288950699749532953797613003339875414617711452420363675580520412235947919232132015053349425886340447948804440964772287508554873914923777332794974132033684266223663281848246459077045521283534067068368063262461645982931806187815992008766603244638263670486704254431861987793730777744942199261594943523695152479185882811687462024400636776140800574162784388198320644821527297422743426365908356519004967394485304307086192767093330446745285164844321728043814545671228846730279420187735828166548396792905514858128146137449110288508645088802851454684882649206162206161601938412904918043953660207336603527604711503484421978517943366076547134967625507032981628702292043608792920192418506760991190858738925173796100679512122412596170270512800463113724927007817552077219333262886774952044292662098537737401825743490356912587032247837620730695812141554760653266840269397468591253523100591698665720457552369203550428150526448958377295897088038230293777392887867275050915818120056120117234829161039652108700089252133070750189104675021242005769069404699652707615517662343948669317511972031010065177217260206801385524950166678530635068544610732522983348115622122099076625918396359471208410614481512337424548755688083705268204169696438415583182892705030645637977491840889945266928294917555342145375992665049887035613471338438501091847412063772997031712824052675868505519294614794074748751393040816769841884134727790477350826849022803239379568372119144067869979628792943518851003387409390456081507592247017654605762282792622197538426636522885735545769925436552055815766779193757959789947793763069561369450353279565742301596733525241323090690808240801523105941793740507479968251500689238363595025168960537742538304703811205733612018140060648876042000501008689203347795290793995299831840731194708123517821942160145626145631978554977664678871931527161718690335310485876649365539744716517959543977879484928182418778451728461900678392352534806886576407751858712017767530813286149602940393042499487247136454312174529226708112279040555697803426304429433030146959754402138211343513827574989014199676067202401640105190772063211645687820946190962709083210698698468853368235767770546746589009032211990803678221226792109884039506479208628800888999660960993153156075245990470647516740507460108218792820407518427255153630547692565517323560679040037618847074915770749017676711779893454197228416345856223626046466493874476976394672965996615080237950607102761483840927547517296831628262980296263171417298238631135153626130485944527861203320219680245298549106412024953569478879348188828208368851882870057025509748304484273127895235701508838106775823568154226541993564571219673246634254290746559432272072946138099025981951791469280683862486456083891432874172589022224860670747225700208581178585210698868074569793202528375692017421129150786849609519841881826750438215602830133470594124079406731992226844169727884932964784149075012959121003750315032459301684510842071691159520928727153555476916537062037157150171572965601674462389098164359624436432595547377901152880778405597125104323639747329656420031747970758585365399502065260187355460838869317756346231139108643123766999064729290298123018769214600450005232382113237067481379365256196543606886797390780137720131952339826654921587929124516251870921612164600893369752666583040405921645865083464554574655616794109398313322263731964211579319129370777626314421102986418361444215673175755746238917023555187944108652695647745044746928885050292964255503732618178062909483908003322775367408910292120585588707793205523450507304529624061613995349466483654874353675755108009447535619117389850140708418548499604464478002854996574223173186268417539114281086028514718856637808146557802434021813172097458194900972746429096415413082470125156225416303269269852625812759867178470502912006754127943258046083087993570589278641836337954481459941513881137842467248142928080000097861511505565070876402406855513345308801339413725523986144830177364824693195196521610550342805378176374440844725198292769836501451173068692776415086066860288602394002007985347494333566589909926852008530297276181491095705942242798669122316754616709104020604542963111894760376192525093102125280464450714407901318545171911481739657125811583388288755923836949074639129529496684843017127701934228149669652261300449132058653628108253493345404017107019037962143670723550202513601101223516623254808593334727621269626957195461452736699483658540262444243820500840468294624908541324349255309799639843495628261566975003472049969879035217249682413231590797626814423332029282235337121539211598667910237917398305491412733167700775443863298162703426944856741787280973547230414754561606247761750845300270179005839660042062873193067364661822848245360098618918815483308498506608264510997869777301663120054173049145434409114082121092463393290450409145706678899894585445702660193344114260888852658492400873075016705158921698264904197186566303729320480926943963316589022273194401940625671770423855541405472423730972181566704830207024942380712965809765051982272188737383681981162589773458748862177741874062359683176779036679160939764832911867570423424717519696798465715499470541635987111302263458210417714308527791237897934827549511871928416398648417524147261068378041567584701339133128852733603943686767448670939590549360561332956129047157028083465971400940810054960431701162846870578576463171648811272252168723061949847459102606824750756252860672173089685459559954207554992887615158845382555996075610906844067510231590546094588755726005058584256276333288189995803456252493735554917807629266389548542550165062606712706410248537968533384064400581320231782185665666758112140338745507217846995052501519131382048575346126456713810709555181345367517908964677201519557366301185637672120227004509531082231559126533270977212910388780138233316175798516136353385577219928141541665881456032653584715774767666137335855439991951426893338808852465650057702840359065533606439072123984005873589732800140743217421877679605782365129012645231211289981627123056371622191045060138493218203076027936321378277946902536995599910276554111122933098331796096767607577884743345858652394437123490935150714599489060307436954871191141430694828600326574495210109678407233540747918752170181692415914935002323528049989972597595041523210930295711972488363391080130035720676555461312430635817352108840150804940095928235064257990061685782277107582400429967757929972380779311085007624254472912526499811797855731854745053105057440007574287403554481296450422567620852544863200313726366958982447373262695186639125166859378789512235840708485228798313008152725977625304618031796863893375872674948048713894866855797358790860936710695644404881727228531019409705030729920500898631104798519937805247342854181009541047028832625179975348286833190809772249584761119955870675228755034559991643694566497056164118097676068614787042132509170569535939773200381328500874677026035939421097946162834616915867100844736217504345524401931939369405953096311608160476821428087112610077450726080434280714334530324338452108054311467682271885111409210699764380416778580739406123707756472967529437073451577423692729679375768299934656703333807322094847165356799238196072919374139493066254784449749200941871988795297006402572090701103930807153288512989343156940504685618412362246932756217784998767655106767275469052088485949901748113585727472943321513595881876413100551899056743602618202690690153770858115043280304725574530239586259278463605473400637940092689522849314977088587709700332128918324736697801701740566550821443521235367779494211508882613692789008980101444109485559429608505465151010268060450424634729901961777213219484271727390740285801257518064313326971719558624949852725005279951275014710539605792970116251044909285847066064682252341103664758591707366882989358206547725723589548625099775444054917445165603976194919407016578584299603627552760947738709449352248911861165430680258973118445153152222528792125154924414239951952280655510209578473646101308230117701586274488332241044933267162335398510284285532267245938046431149172507131496094510058235326589612097326732352653999146050176613215717260271964912949530030146804544688681853891690636551466177282657581311136342361593638774270891572374637950818371692741218204036876560822858076697997223088423480753115572829550525512383285438132945917953609673362254543305905078747578167156336865741026716177105297928752343395739796020267659913479954371052344127463259395494211200186841387037127069118300264914548745255896572685275127320568670701086878021628226961374707304937264814783341653309629619829648804754409076817886308825996699314375392697302675238553013300402778116192345158399661022847846524398991631943437215698109361079277433495532020906649679821613970528364236451238525563279310776350291774059738714297519829158526753641513936104514628543910709938010327785039128706798029251667222919198183324163941304052602835388219402035621887765715282617464427104347992284514846624767186147892941029203481692805605566228899262882987992781561994946338191137732026874883992985600744652959453333711071296574367958433404660408850904562528378598107886002665626921253978098018062433098374637295889664535083653510643953206831918791709339308130106228893322298241114342774005992077062767096424912812691009443933881317411941513846141420115782037614625911098809860968093199856703572136031154016940289459763369751468106623760294031480694300060803990514414792479341884049234767402804525073088190567945351963665273154309994133890408743651075640827473928015359473707361240447638484353173945759199900576956599746414072624611904668012638843589528444392485219998459631926099976724064724098487475467492503168246138762401054208483685661434767542468048625685690140093421147545644965055274927724431781313763265402041380306214271873897089416899592798311588023248293086698419296069148570948117597012476661012505256994822628855870450047207250109772769934116023478029603256174396109814374720195892088590149415825982386554501614460055785575347151077419917716965492635032784641240854141971857931267346817646878178648655118800647386940055133498261208990432762357054503464605577996206355337129972340226737974612383745829839745730692130018700822132272212344001785911111720738220563596781185751041979923665705823695153539782134390878372095041664328666558405663356700732771520601827195363550920851826863442104083189243665198390478383149727955078098155051794451721571941706392788115214860546188629234772511702503975276535893300471763490695500707055641189627540449645974016701729292568910526165108355002948957983780755606665974189481449709105962981541144347319641627950739465990484772682881756045653782904856015894795257553491154012513963056704210832392443895982358811760005194961627902472730969915934473996771375229492299858057453979155125309189169914436032004461557225954322007149014114049816357566851134996868148794095302983616000339227605719278946343217389777904815282480268822320600269980557205218567543381617037585610962107728990563427986100003717432361780161155514418969431510328399006592019521596877333352400501285718464689922074714073018171982095338374567400214163317144388880255658471393290910533158206966036320138616216198708547115774869152427927301169770089116121817562523253944091630112213942167209306517641119244692948228695719520076814765696092964347700268708809875097777228574621042038735141247216228729282431533967287988707460454249025111051381095403733303236681446464922849340187870010893184926263217712853007442647948433372367598379522005670840648344217174982161339438243438932377355572703368828431248350028131997795390883701877395145263816275754257897013963199002519531524934488465134583351738568555664509642543525255704058399404163927459939708705259691891878608382527184272086319915892524248790448840724796637201712179264528603337967656707554441077237851053269368552954815403318481536752946744355114634447365376392375027549700205033356047533071262460881031085004698915775782816532603753556686080864536067888971637693580803085752076082114291697931623288306890374634742925008604342713151402310788895171281715310435031907065151823755792578083093956940077920554322125405109210441117755894158490398219820421782600199678220441970713065306396434520342465380148757554894301444951480973895134070136590897132105961931384391712516466506394221706346332908563311714856183575386879437648310535188995806751077499667940016223329087009463267292048984331281695593125302137825587817360167112842898655750208244002006521075149596881437991104135694884919398530427797217315382510097130906642642910718192603234009284235831082066335551331510175114672278474054791250900201567836405968549832869544115315486096351896253872721016757453637695600409316972110045542359833448984083283107708894742090008820375976799716484196634084809751163621767487569994775282577583390457615923989741205188409695681114975967216689298005512926972605607012320363846285338972025250387469475871768894030674971412996159913397461394817492294908281397129494486218635366658263673804705976981198380984927202477221594569687667120558131284827739015481345059296040672564697430522691919095855652981714486315543717534144234186097919806413626574416575209073048411231301367815008538617880879036317700732727325610445774949143899457791683736238955324205422250786559897648246102049293063955198693005754877177891561708841620269597909217495718117410784567733826661944023664975883225397891010850084527449671065415542088701196480855974501058605853040181339922838016513525403578645524011081128437032826202886147363619067967708347484141449964642989827787902556786068064244945248224898561549189662203274279967600189920973111664688463201546504154942713858416179585210864652367376367758511738052441516380045699288094711120270713585490878873199260529681732745327052107805057233241119957247623854456367313369286315000517844268552714571669591717762412911337602460428780918034139343452122382053637145144131522317624231104560704255018813261657656119358156412482909538065018730020372739200753728891978787335622913456644915321485334479990011844018440150914364047406603369586508430712317748556363110618787530979312032166939390310043072747529299220548946785850032523050781574411113047597058543210919472703107803408030353711317127255291157408728258353087852383718692942737565779028236697788322494608594958744059465414193450902609199596047004148290279026872602515689813309266843519786863178006737476177512283815881976627942451692125228879689990895846023764847475877176666700104430354838947479583762939588077627724011133963018113842628764655576056457239849066289801279244947224106355330201811420334221932123858711617838300278870986355512631925749670532305828737808986988433136770718601893569619923005526651263461566086558991280729851811877502706189021104401979707524677419583679982756528204169292494509396715419944019178040860189277195205549289352968270834337845314542182601330722635011647747727900209093075359619163883491858417823432142917081567852765998599716485038823785862094371341673753720385231635513873612617335475470349292858639614826638538675990369021345179837801512017409352661883486792804166794499000061497519544730032305484282989343915528505098123325747929031209932714028811721084497741336963449486547260598032812098152711695009136193463644470661321148023991523034596438409461685102560386926918025977144351315982142815084340681407953655596693451796389615595270641973451081749276843065707862262566051924855921809390464707993667227352349664591243442070868385138830810057687971784697166656723919456740680782428936812076536956022096042058150372173166781453285493647718077510863258421962756682380528378481575065028101094884763718789383608201219844596041182640815108835863901865867296999831177618306359123357362139246855878188361113038378627211904296671598798705959256660572253235046022616356282837060687356264960785662588556833655575410228506267423360604512689819787839343342381114975268564320358296825210189234746711326902410920616777707084668947921697136029710110932475836200070894882598454341142716689498798646942771346738095779471750188889396441586144792471774716430597896314113851020219174420046514578839032393300963516137981940738080461148449877739912718531307298501478980922091543184914900041351198173615540287663511047082729420848998090913435859474872355562764568253537736554405284028557650826373127582745510207155667453148987284578341404406982020259235072616637512734355694799587597604018049960514126550445370583286256756991497228420074337646661370996824843808653583375762398207128057413557945744059169507917893889618921026036026825989460837877118865434270988505925865237983162383146034721270019429664943757034014335994526539365387571760827434624646587654365073344108116997524853126719313559607438721092613382803427363022703041314763663761515686759948282837183080603469445931334007229910826596572987734737144618659739596973142031867134310303646025869148057616294458301521568302478648391225710147477378840200892420453033736935815070289397077006673225532852188894339689306265235727170377050081314422373234858769151361854925955329332558113576234242019550659106122422462017862935505049919980850167257626617503915063359810086118574908333333430751245015937674731233160465589885221457600602151267895312261937122616545418036378001968333104493528969386903180108248007129267165545460214580208110574426486923065415591269922216370674190721396713133499680189688319769896639506892675405932579789155322778093942589874824206512145241703136826184133464203836318759072120384588328375841236543471355534721453946837246232279051608927924658117453679609779544415802563844785733330871617773871515570625855035152371417095566764811540176033427423116671353279228372935204783915134531522489726925358428491077773512343337892555293865764912325791118305717394582173127446863959563407603525019770148891793686241166299181448330442348561473624587637777515174618206837471291827618951578554711460075937729176465095090060358497639854351575101397337761253375019626064402020708610587042544908223981337392012777890817419062012556358169658391220791134659301182600828108024846589281436223718110715294532844138707707135599739380765421935702728720882492693383745698441147133891043619326383143631525420926299288784768183652344295700995584178535609072365024582183015914774879750482122156311455081651680522543128235067556960450090287072339457753335691804505122077412396777674444606704446287799284378322630429782811213816419359500141842169827575059881927648148853947570437750448214965814567775250642059269265710910916468262347082945490240185433118681398580892965109822089284438180439415791968525515957098382360378984531110895462319947174571928461423263083498343054469165133798110653312532759712537272092962565345590201355194484080879977601845322012125868250316674699301764543399123448171237651808777634324128586074145970841676855454678211773002963462846961266864418376310569142770311630939606971559070670121791278842512233226923827218315675470398455123281454067055518187757552473905582386050154017143510470208091511915043620274841326692231311030169957478442103562556149066617430744783845269492590630928382572559389460984114947734957166625601533015283120445821950576996947775469192783936721145733866582596450475075727747035712597281072705895319038839299591728774153861064833637404754052246645933237864121105142118131103707463729688816836117548502690520734041394702151633060474133096223000495459254708492867745026126208578922489182785602811840213444502761197282769525062464634023522126815426767744658920226278176569683545094249987077525737214212151871267249560392690031189754142692740023060933455362973380569536352074312043063212623227792775909482226090889081475425636767288103241538814699107354738847443619536300773295857847451240904101667335297717868685333572902206941149394343231011150539757965908544868482728216486632714158351734141390703139678662884527204167434790774921958162074349717349681736389363220983096794709126550138879254996793324963762866314195780263580476405453957270042522435723105259414149973602374293756465074837763210104014964541972050928315010699857016132910023734899551247020404685129713509204553092980205723485655210886085885376185604376797251838651909749693080438937191284730147717775759726349100652491690563568685894578048266585254339803751823341958581824104535084777340167851240646940566284431228530052591208305644620702273855546599454882692582309892058116962921840926329939525239603959549899779425936498761175744504892367078241892858893826394456607316546618253758312908305502237485367320741266737397040483414090942371630530666281502407046986537027695441887781176604512626235454908005093141344106763970888325138080129440701495708538528721124352313877417700685223944791513616319040817057763364018435132317198162386207130886609009208399225020215038184356702945377046534160169354631656229304862064093934993051360448446271523575977559284187128113207980937110392997929179695060374437057772309079886477470487587675854547383859360473601526406837526931362167564261461812010963930985842434361666159543139232070743914532306731661847066571376606976423021255419022446502207356219694932060605765542802885335506833182733875322435048533466136187492952907631897846333881067020878883253894457926111089141854029317034589752249548868549335471772426419024512639749913402712212504315758566542868021877023364536389822977929521149898635358076843956091446638272231042890871787632517962703237928282152708965174777488963372260860417267718061027440844511178982008109490748145712847734420633378300518740964256526071525922187830528190168540740087623089191957509876669363618098312229128246015724068043196584443573746565131701195229061880994725391564106830556992453366801998420908647058967205165118871164752678822551108852985927065916518766319336951497104367887426668132686802857315584402960311056465363343394029026937023288237542504035388472128621260166521399153149408001514369178236441294054838212546458867398827687714838439869968081861013175352642746307702525515315422154509538018685411167966969775356557072428116777134155105077549547351233399589228456945716409034383857432960059437749300439360870141486836032973049157704360769109831667909503320873114494521037506350568052160626139630255975123969417673873495594602317387964810510650967327968137378030662269786175740755164193406870646094252001817243367005360032116205912622112981932435586764111449361556925659616893413003258792336094635585578903647264857058627263145412134924591467162747169594895221060911921777093176307735528431561001141398044209929593189760953209467439903525121137407595436704363775279830352020707890365069041354169190626862740099739426425050603606668733549863467927024862223782214816567746341102379490730580019650470692694532388214415829161193717185050303121486650887453356387197345472993014279147333970206770084750347122149894795874302569637656627398250065636236998800459403686174706289937394979147156680444012746629744967398879287420863000559309345558524645958660219265053276234872456979763019642320085591048715941579026937889587511599104886797521096708709902321324492961330269882271592935758811543806705663274336578069676357180278414469371588831941566225859616895615031084269926094470774714198341974408306251247038122870125713049200667142655517740640398550637932606902699617827513626336137567767644389909296668624994230965630983977163980480907125083620497147967808673079558032685374097501526543940250474824492713691027012948465539327651902997522919715726077281688442052234604788873198165310816243651659432899385186935676809795831893738303607988787749092299845188129037989240284191929130320834650206419288198192473337652523322131662335781221181583580285062534376422487742525839509519240699361983503933976587532184450851626300829384007181771613442097834387152310104927384793262773864580261762034952323208353976418463936424679928212828944852303184758356373212251066308828478993328403657988780837773213989168448158260938901259780268149245813593098353535673088231183573533079334456830457373507608837975686821796223518743558539276621737297347596454316569203258332286354671522550719206216598526572930765075064427496409594540157234511979496712431700658628249304616229937584037538952949251477636312559990457128465970184311915028862738949884400823104849630553036604628163631313759951278593387298744365412942433513815285263198580271985673550535503182671461488492039431048198054898727817520819722494293048283166123517422003479519510303844670018312415213211565969179355637146240931605916579855915406976870050727988020616938339395728863125796969408489545488452809230763264967197578234318463054138719634323928576443506220913933020468175702061888733520328450808969930520678705993596585628162103885467124897636462978447777745517913572914982709323240584853006814361187165832937464139454654740737623139031554679640870149387237191038566527797653855774780715387008293116389390523300308694679227422598825732466384936973576976909817935495228867717608343540602275840917257742865826248156957604555815520874307893048072389914537478275467042375065270150980626650349313476363884747153690192225820086765214353534500515917793409520844983578632272243985500475721038656053217675991712260966267739547114122339490996265547170605662938643707182843760554216612077925168862726409108608330184736689089028274164763592226337354475141346562990457824317954585130302876829017311315917088469999054328160960005768450767451600870278678717162044866485328542560314203883953738043362584014379183913231724608672833434760264259190611779024791653404822470226953916683025914143876357877223065910776741704847299766460174094203973528919921525096746483694359765692672491329737259025727171766376799286913599249124564921601692228779417996717314825670618416518347657347456516048323856572540787660575932344686422913145816654737900025139211827852794413851430904900636329334266953384792497822131050693821951588534549989757667243135567288889124117149776856657350250185306459606257551356963669366592310755755328664091170904902128276148759975666383941315555572816274229822492757560649492009328166041151357773106631998574536748780859909174365039718903417296074981006162955231829949436937480345613889181723899505290827908325972702589597155408204961448207674933514794488862835745330047484195829608395857116240295279194892303660118687971560943811956989433891405700428760987845062015024035980271675761282882212341718337333263233933559677437522130177081572953377558771122461586970519265055518344992215611286741983857600554681765573626356862869503107593668039211584072633903250249965989874856907298756409907942838758067266014819755466674825083090919050386053440649114402281013570557865702510304918359285426095722048262079977648457596810760759284881705072447119831480804124690623920616541118066762798854007139669037865818060637313659106765487103380812077997407668166409775518905840177759532905319207573541434302521644810364902407808580662785467517193269707638174273839003939668964539225068529721781500236622489656360059456543586217658134968522205991081572935722622921288687774569978769116357775184366946690060124486345439986129669084531132078369339778189638415808143672048497256183614678339305748190090973472191800534499008061343459653592187022856221338002923431571159780893665200881730523149310848365821582901750377268866794561101433112384334598444783836827848423711333598251406496273128258447152598184344014643627011603955634605884170241432630064973346012309469377372851655513048534208323449355732977539196925879029055841316633094213853515808924140590179583775488485264033942710046308237915986489605721065160495809492402382693621024383765322163277657667844125238459526116920675674903052604802500173092043746181434725340632365356388656956079532294179302681569092473681929383053976837427459417158231817670037555216022693327073857021326530341988431393146596696868875399835473426176262869364205643371909502939311105512007908706650309332421594945493483706129396326887523772550065409748297785321861849932325041684731955567047452578751560437019861978314853427242166916643808037584902800574071501619599196912370337420687607017330523119896944653225842788232983923212059512402407889956287055952573856130137008624375035522077297099879621095553907670088482938467532501137946106360392903701910631208537010299766545347272814527867539382980407734698688835339574967654577984944822112176171555925774196522593789081052588591964191291230413505352070314097314744258996628147035382274169337502957157838182967625292110369466871075721464238882425315665523729323633085907260804818116336701290443615052159055803577794844820876176866561572584596635420911649367912436102692549765754309017497955311807066089063117988519437726172639145101398968448584803234546623553038072726574023619436541401906054485528532545032499180906791647427829453461783356339058374736959898348025912423418512318928579740769272933572444218109206771503512995755304801368454753262118317448132339207210857637887806299370789228431555486199358467377363533029495949682959190284954701233086663113485755063443814036652380211464313220265414871548867055952180517466322819787341157157459086439890204830770093529305198365201667716884131721413915650739149166748279514371445692238530800691480806754799258730433826938621469649407618520512138353501205647471247266236464406288066110856413559945792446497653409827665471253772767705694707110139767648906624298647845894239341991608753336638525909977173143070913662223616548782504101564293978299704057262536832978711593768074944580007845186624822745707134743648043836528827568445897672456627303943299725495457322260358375009978317756917845362549025094943781769037625057238893257933024983484897105106435226001984695817949770329751960736096124326633928826827169435286744138363773540384660614922505193462701162521483832742147140692399338973271131992992632451360473397902619888144576830965614773622958168419472704081801294047871462208393256128367178096447917773933889351722853694006833139403703218815989994237780885364238089694787328649291917032214618671681841588768606264316837111324292167258759278692288445110446806418717412400080934134833245721677534056446528357935913989624695393502377595511074027624584246534165881378868889674168522743561334211893560801150096993445436973739657127467779444836797881526047497542412478733226184912492469578853095505747499869541969715077925505657167126983173528245211497049227089748476529249850595813204108170963954518486656303080268580499494961974941180741145072838436284236048830127060079738151288280301388101560963667070616155350447802945495530591560125385729515715520910206141720558333781997459247879567938723810455155324241402550744508969852988293777179777219656564659125246999263428572687487535195859255633800411631944174390871556607079423696800488361946810515623063627048926647330781355460355609203438843669295346205605677802492757689068818632065830682359694935622359037591589852800629225780329007805462875444676579428190422729171819108247570137668501288466870327461331219300406868881514453230441228955306157708057844754039060801928607407369175973323040950634467318468012262523935089498453920831345621698995770556233473116826745622495750642999304013169957099277882092856836940468340068548943953857715185767363387203662855525276142439703298453177466668776583488843128847143338332895156535433599340794585065298525649907531040748615318488415466671822672235353854727576975541022484236268854241366894392691979344920522940889775045965056301121151733049760265523035885145793765931092385242220314188839853440446333551708124650679195476816831341525892118374362968229911062494039873191108447828928782526427199824860415035250754029709976591770095653601088322722996745521678762129230969852449050108695054609284555453603285668958464287961691202010247324630277115618940573980666410334398504984387548399926683647083603443914903255444744146274674876031625425406860810109403881353351732405779547033754780618208714618169724436600324636258059696682462863488968355170003194657862494203705826257151283016330738001023301459280333935486456716900068371391241119359752984085367172734154051793575669520981315836313763186605422121934461046289313837809823640911337711695827842897341255822405103063705817078096301311822968537759472322754123124188650318548413845587235818021647846543729827104201965992589886035649754630363383193681150710547471651611306393948578133224021151484357766304500220269736570506617072953089330102303996016293180673126134291680431683240398446403562764723188398372886840517136261346521397907928642720939240614408715556420339609229700783058915140467010710558301561575713019091598251571119934151180740919811761936004650620531287331729283634924753186976153588298971175172420925202328491223049084645081428825326362120641720238601002652756961509019356269537939753723189098007529430711512736645664147293339308524121213627722088637644184849470520093294642065612302378529658065059294931872367509586383428916285495724541524387408142722403235720050305605302970459386103461782025071956471141393047738603854780854874088018895373138578235627229938256134737718550434082297411559921166654896928201254910050661553357243257038283532318878432309362035738705624342332692232928696185782875359801125799196090086808202682121046800277213637176064173653333368677590880794065459343950391212259082007597297205003805379381320400190409612783612326003934938351798863875566865073590713606925901496891158745202843761884922538759562737496038103683810153601136326211898005399070164091585272363360160178519792278670523436779138523137462883825169687981888007215406480422261745040382577538515537120460457347339319606908744058325359406693120027362218500454237251609046105662354186024010937516091202699619743930310265463583178934159457190364387037855222438948930041197294003086400769911548409662285617222799189337861455425776940612430091893077154719668885051789457135992279753399584091744537168762209007175531769110634175769473357626432218534196354304182179327307086310336671578243147403326598378837267320933175617032174055197741591896936352994181037240432616022661526612903253651500210692920347608566356693584754815430527157613517453664569020934499901114082371882513151689642854647429680139606393616448176547600679257704811868100174162701177706805804579971733334925789961443185173703822295966318628509749757393015884956368561309378315167680130477008001941171039500422422495164866899615589335560262697938478700685654592959246372912325126031878150718304428445189113535554398669957864465030580913198314496667984621084263967760592086483059140837232605445288922283567231206084967195947630113919890317158008818333342445653704832178943690532660239940455375675006831522543771960106760235270248170561378172956330581347840459310562624501603988334693893284819474776595421961535157486557521221843677609889839386772683534188135707255588960381902238961978785944506072383875784380050885409915764320537117610603669066053100686150231270325979433301744572861026569166363184423864558141177309753390785741273177088493325982931576652901510562321226338542010596523828920624258604624908878963938728330787449089986741393542694964401284821975204500326361840428152065893441122492656027384125894472393665686165856795902459309459943420436410573583574346979203035628286975798539028409372130694232320418060182961914329778609163182706043765814149556239109234713373054921130096588069789100980490795442551275591081890523897060148596632920011982855289417312388108589682930797151854443901875466979504374767286175371004460092330668331835712372225257475033275582631135248360815935948830252882302496625645751155021134733556385896402764706634544368853551463071138276771772021566034263824153101996190323162405907255139799615438885368307452227753584472120296624227907251480605427432073342746341042405213917170346511147747046446856572147628527864315508103031652500860421271768844554999619651948004742222923513688537701571298710233079463077500821392113559891037719806319327127114526362183182190537204761216761813797311932710167573269325513626799690593823703728353825819140637225444488086864118245779174020205542032277201026039579432415536339399255919018541027978670220254076574694050771242478061202694559412243658653073546688565529384869649359387513052640912952687953163261575856269992493265091732027180493328772968268167544816533567298780592423691701006862523419465883194023446370862600967626418287953333328233003613859985464408231701367617201007046598149116465273227671497705479724461766515727025234896883162803630981897094178067938570203946103216106605209669821282509977081789472772466559282217041772696028288139294258753280700216928182687608234712015293651166104953505122137068668422543306319597051509119991056571171454301682942198719733926601205517778916472499870452710943398802530678890759877064594543434098180433525100039251131731160375192351041525278737645970577502169131230888589413206492136907755847706821074133653248340005234699684482833567469470980592370075833535778005502241573850398773518997202221440094902542777402618085348292235897765536486580126501134086332530220131481538572048929838880004007832362181541582128496573635313647438309064805551172965045604705084815720900634311112131354739152893436340881465661935271913419070559323995615368569484318298184370885426786461643251883189455304829554904743508111769165666512810984268956247296148045483474112913080588436476139158782820833508708839477306469768016786635119253693478126078759488339624669323487389618243498767038168819209844258170640196325517780123844271959620710700076767355612388327506063350342155759768794629726503422088454785360856865928166876882145218586307207502151969728482857921793872390130234500006292629555594662502149274911296427142240568410569678650881558710235223311705623680330170013874900927522487416486421658078518182828909674166973152611884229844248485675642047326381365911393609076283017527243280255383749494093404668040835094095001645632847831875415177129921036363939391852541451903732768462014664387878049777652698779466312937524037599005233625067282557476903012082089614378793752150108400193224038771493676170318198729813799248345263442254339619601794595310128488576345435107129462801908926793578801945503343317147707614935610607630578810960233034232485152175247307452396371086764662611437158660497636599802526975601512318278295511641762127243982238710236301369945306742394068675166044372032229988579599551302957434811129476584981977902791833868877055803343942691840274435131916213816950386004538940720920914239512151265531635515341623653694937857400259527125392875785059491898908598649950278363394952726678973312533201178065929175621076856763248037818220550267434449285451684563546249762392423434150246590660326511830286299178672082486750829297171608737107949374053335073350090657505348823929487814377302095620996847839655700738707169381992596520228100365768718381266532209315910413422777444128614090325585393969916188185634096664292303575320231343489109269320910048375183453360132196125821643707610685697839420915647347181874019352980915510429522830547029549912740034532141210945210980973088537132760383726551469251327462563841592433921586991993599225284652441794308825693377707351716466715246315440995669998376718984817432117593048272440605642922227876202714831713759827737767710462538106471103713529369261866771888408320199409711935430258470572724304611061852270172824719811095308612438685565423792007254495115748140210137110113950599664427965108389851156758021325013049439259446303146347483794035555814674406051387963791149832737067017733831943185811279203919570765088190553016501349125607660236463202248006983021902004004247026683300871273558955098777059404401350409913791050163111582542113877287700261370719418616557141070233657802365386659273181446030225696965134016044783058846028829376004309439922264584761060013651377912829141889069884827265195831541783407349235398989404099092455476513015117678881978884759663628792190580872277799075662203745970423322798893806582526331855003298684950630293318248664835404546867263713396011248600813431104256939830356335729591771489784487353277675630601701977922076652995350295074626393731694222021558432525475529595600294448481467992420881409376508471430767743451219497774600726098522308561432242210419998095019101235431263744037902072397613579434957715769153392778958892782886387146426694708360464234584743293983495361782754248283546281325504257539214204196263657005284780483647338251254619014111880150567770774280222751827011121169333842308573864207107757532700362395610584558108729277281768343846629882431086259757228054593671457160298884607092758580613711344911754000626989209905387653884946385529227465203022318302356232520672194891784073253310528911087057713747880469010799312775036784880205497864692627613109325443485563020658144134370604943998851253661879261512986386752419744995133030038999902566093702096360170946631047653356010997766732008637170195248417744073433959326156601021524944075368762067352165578129136845809971517761648877721777880651325134919697529844340877888754752618988035864368606446413208142263227494641565904583873410721590068656704380109678787909876031789233609360335548011946153243753456980578162867337775321330256834702876714993252518836712025566935535731128920486685408243307858975483543171915041261150918148160539252016207818722015275254924426165264068107235341958286172677249674980830547682317714255734791172883762928318174560566082566283281970392873853055299727917146490103886664598894329223743511570233403129648765661921761095783555714279217073766882661647296141946620527202783675951901142233750870120166149594542028640064005973085215340807937997400083783085112898851518841368475661946294042960899851830815158345506833004018885954197800508384337447058306151232905522857503471248748526942898867255096944872720532736511084561099557092126938304464913450107714250665057444905875734980544734391417904206462472775687004567166676484155081290265358751856217876556845058248151379438402423142982391688809168740212538762712572294915366188597798846940510158641283705668115413816914255146527307592950685035990313145205298358376872867409858794705640016543387792947317856993759639408459963101711960082182228417455961033995562860171734631777852951084668797463575179072639878665543993931534095022435215876859110806637823737631791449664275845717459037127111101516182626422993802691697388922438970144657835281707398516467167493922241014751145207245077205813505588116455535883030334148493416989467085467564967995117609341746792106481232545856711360023178076788191549408774362368782859479159658637906907384494697667051043979157607403820189203115060329960763388497255710445032853793833664561530995823872148240494783811677558696822840150918467814050805611756290945952341091113276710334754782724048844798771518613852637165455501566751250663020220403433581012689063418583802156642276529287743376374878012362320682534007821468006023721368458549636656968913234186694366582789377125165588407943512766481891077098512234644250075076816458098855170007172365288174914799835734709791868927301526576540209907730015448735458830984006681540736319686571159337243466906623096620069295560054212664162078011037302718053316711793085601281265962266689658338430518312003278637673162024501229713166862103893492049342635028234574140216157185587523034851608114518991564861321102514588627709691513602018196381780987625842562213214860771713978986043943534307941815509405738985744895906050419524753195435666336776725512615843418174012441577428567685410077203842330226251112819951037928237607398731197218031226662408054068764565337540052244978673918169137584431925667790742475337244474138194376997640511623590297314351630921778921483262421347813704821436049236438973424402519615304784302618134455211407269620444206026364200808961596116718127869681212004408903612977583310474416336314611150370357163060335165209459456143303280792955664715988441837556156416041093578633044002629415261476884075110746429764932667043170968152475971079923154643580208379413144879094104281666501620913129727507735177510960953178836930767044311815503609159417725493846873688762890989746742211146320421589104432257345799401277249122767217025292278025227223564728217468879082330004761390571222072657452427679975454120770251739152040171697021852651820309960627711297503424738301879062925013228643123155300112191000442558924730820180874187361182211855309533331427282761617752087206954800204569535859022693000898451129876698451221309774132503899396820971555045679849710480242665293237351963596402098937443503196737961424547440240459366928858965819474899017463550393704460579868970320378266641787770415284074313126204678535463352266925627516014928569917835413577561391151369097438251918140809641758183624670052329505094995750609503726153496518435745147152960631889638902393949200105178001916538122844700125529591982179247548234895329076032780923737106047775400128192655259193189994650823351488188360712041791648421867888546056612568316816249434043058617039874820227529368419188483366186714893689239410375814618824762136441362896961603279916377128928943635138853431042340973909568165803678998817547957650469321347839674687963804284625160670086979553404770194610044268296855883905039076038581868510604898772044774946585843654865076257948833076622299232160307056996453172212402761162057588647337174242207362021733213535033220850217118714540111038781689333673994419086038242085013801189689768008989891317831808026445862392097042671604594412430551146852875259156054353928936671574380134615146356842104002729296208648147114628199952652176084014114096291245063095676461433754700939596373619523900935514121099137040261359315891342551315425277383402736738142246946126921237274358485901665335296049797493921000165172345804860477454974358483746035351907290015008112150391631957503529146655123507232492049610699385346808806162507289717970893471531199391378599486786698716795858666789130355928663729821913709631722720493246374840013142628936205222740866352181437795519564705817686404726750047138946144966533553830379869949133114178221090219668910232435771829602762325970839651895506810174236169816220083398560639154100198847727909140728192881520308660641020945452274533341098153225396663509542085160357320891604729873733440033467439423557061882299679879601889594515412546474168697778187744883493715376609470501539240479499512055917476814038355240987461528950570769489556236826638546462252603748483323954722213074691007370967102861669561238574555967835714560150883289374456212442262700420321003466429016286666019430964338954444361468098947261988317150896949539895475520923621850503621786174827333699908218332636777738015075091981661554885940293045826312533678177657511550948393206259171240949959389108628875403557421304554589896929561192077203832719248235037079807586021139664774962688534854188417526352279793736506687019576605791601662366541747477369202390414022016549710148420112991587562943341578224572947378278664294517639680676816280154450957020101099680443470555812137872053189223835219817187893556178800829846786566386692910245851381228180421719937308064127576278362080809271754725471088409055468965207253146895275689509186345728639455033423226910904958523714134817044472290742385633060797258394980457791437276985792267814435692043189528964029905521880245156296526907553771939020976602989048212148477785108394061894123419289374032744485482169162069809749768708143271179118578801609079689108604719410455723394933340525253569763389552928296721428705271511982530687471910356280296520026543710812211872218023339476722481215717874226256247701034803693916205516179853836166263611503373213582595499963416594899483535275203238374994741591567514474313527989796698565581798938325737057205277637513813189247919284698513412845316683387931138000058716602815021609558388204783382722217611278677460636003749743812810496659594558026537475737611530515239842355552663709733942102877789898257495206397731142628107674476762698964350483620617065140120345140890660817883497627955166643580589871216724071431683917500942585017975775352719170212763584363746732496266692507087429140840501510564984040742225424088487928170194026703030826716290165286706478959143648129688505188065504224831498869063561160484365224900162485459582300358261296965342663288057248599220461286763754249452863258486468060973431418167274283865047069325914863821866995487017979946986878355696381218719021401264918902275509750392252032986682384517323737207611996081302532673948376046459421595651744048254068837846339135696739574987092764301386912121939406346078420998353627584747191695913923371225992334090601995306110087026144427238409139519918691106058688165146263135263679503614444980098934028034391193791803325118497164741098243423760861180194649808707059983187159470543478263531787792828942256219817393458114703462087616625013291367735014658156253911695377330460013678661398768013817031449362684244504731129593803440165633315617404719602983829019676793582953383380959400310513285668540042705602965746526129684286010676110522542291446607468260890216433709341569504777409911457635491440732718524788906274887424065549003377152160577624229383507851573591190449869498288218858017393847042626936783647583015071005509466205647462363056218302491602940842841700994195115087219102645894780605288269131744525255610149002044805117314695342296068106300406652041523475667225361727451025791686918931578941686716580889714431843733474337590773845589844483263136748842566116142345913315197772266476827762178331060561710745544399226040344489550375000821785645765457404821793866053468150642014019374479736781252672043595021787034127156466184628119704684199420489975103883934041084301424066419172424238108106425605645166606237342258198577573715439167053965649407302899942834936237081567036592011623270831995327989261147862081023054049681181950233503618016427401999001039636986096167034688586909577131697203443232855468674342085159530906325687420053251248882008923370804923794907387365003758935870608829067254495092793533801101878725843749208282397164903155184682712326051816348019020594673760773029984879938498360844601024099149191466410753811906439531976675479138838730824033291356969048118611134130879526973132137537395241186107025180592380436838394773205180083135739955966682934319783999995395959735538902168691566340416229943585522372982153288966803501322243990111665257044057058679837898724578633812397541675303957771270483443841047561387546267522161081943554184417534583007546788642273226265897447969210618716583239796695520488873047896441387317144860730805979951732155176471903903526701530788756712293915250585732165313174390502131450231930125410253401525075261999313293363601549700765814821529613055231583666663697363445523954608722105322769632010595786534498688522263513505882406031438581781735904454312457191063788797789468207000626009129838625876672127779470703451116227267438989448997929517162256638672059499740901555684556504404068207308971744304448522311135626878097322628628502155360989173478314320073792376324807333403850438866732656609530769578652846601298188839862853627322638950155441271201213966699627744215162599536949395651729896866027989278477840054823461337194994457038741514164795395428485369097145060131484417713604803824532451209229483429362817274825587239780133692912409990744657025683978159695909047934415404631465190178332023793931629502814913322228566547291079866724772518606007212126634007583867650741352194333062798845574569809636039301453170083695061501862410457465604215955383809726638238923752332783772383301023426182492930916061684768029716074658696742722734091525516104017237301485799588431359227576721953828268346299474555758439230954884319517950439788470896208234190086390901098742927202496623172761091827889859759953889862303442458518373974392532851952803953337573607777131092468840034368330252348370409257113495708171201785936351404311141723129036332434009926734492018798071748525410371738037985358868004978433104874173961546738964178046082896081167585792000894000711262932733093535316279341991144127152514512875265087399850072562442455154743444280529650536934102302043394290293845210929169008769848557930523027703580968267545704277166918798957105192214621973956591056381302578808765043498657790662161726856956471838755024482506130059933983987275476360186338496873179541608891158020216340551842549764885255246493933115351857134547734641729720224456199090564551061327754758360649493526136776342542972829910328795414893780792067637710904502841841569733348639687005268240450794866213032298660538895215297080648673965636746231950345275444569082947802032269764680168305150104622303312213560316879501162847427137179129435505203637145275130910443987538142251090494140612358244227519225287253052386187114911806638152242147315122163116932541911902029292451821420497242914462681156855372035494164479452430106464192198992824166971768033409191978545811746788675502190387062273977996663992193983821532030076473691720080878760332153570234926904274896567944946963126682702556489486711320898768825556975355630125755214514391724968244840658999372582965795447020021707075372963358736757191779655341120725977990779771268088753559997734369263444280212960820577431338293966754028992074818142391952054735024936872038533777196430201840354914624861796728413268313054820000307871166654429259762818874549170609299095255084003516877051195283630917132245372690608210327300615112345585508662423560562534694486894543008146542535279075046553473078433212390912135059289871864423991785710992299328147386253969788308381720808243438986912597964823223174931695854377200236521383694876033103118163615935815527145087750233389186129396222903645928711203559121986720525244911073923746767439548956810353365318697161455696099716038073861258531995053181573107929091936827453675952535999399921072357619729316976661401144607914938248796725205088802939423995368475248093659647305996793683492898116209385728954804171976284987650070694241949782104887778743502125953059717494579001723083089807216557514793886382177231356803743299999820302470637508314693720203630626507603067974722784301474866384268898052479204640118977995425801125169728014189676314902563574840482075459493689508078444052266205992720408097134745383978139209521806474027102229941234481844499534470864172498925108132982551465505351407096664752521033198865657158330421872864019492621838923960175132394853241222146536734080932634717221730422660073589104825543056566343936265644977637438511935328243089831004073892724825265400349856203576960943132335145860941304221337254319854976921727925869851879027363725497933983897787521715322041417291929053159263729194416190612627004561758690051848851368963167354924502714293197362067265288893242892721672542809474815103410893207645352861758675209522368031351324153773911066248728245152661202269999302487417854711422988162681037794976406140827846203082427813801816211172007168084533414207585309034495120352011902824106093711965220984174287846983507306883390401026515676346801138850106021195084110821602415859826380946680635444356373826544996225380902147009480383695776859301384504560237421814649926997502836686450471432914784523741357706777533490661077771965373432209929526743811480453626504673447654918945664028626665268456567546183993245496999059394542377645358751254678374892166480656776013606144886968769886216789142064608615204125809718205084089721506443841561274245451300533492495212371378070209153330928147450365022580390914888717870671196263644398424686308956708079539149181171864256337681358398313491626098413176393366073754731688205542149152315450381711118490521261472113589367446885890497123684282511121199699211374537171178308150955181758262711777110512784624698561736542197307083684183256518025014732432938760616280577752948141896945713301659423808224690600533413840876819928296049670701318690896057957698753206742064227370356900315734563036328939968784066897731725587415204655880472636067344681409421107428138056064342774736606636530180509911106541974718722671394967808875767427044633499948618557096045994057767575347239463652072458902373727484342003517138374455943872666022092377863813115539707805746147055507280911221093456196565661599903394108438290799142513665156704277247985547196776294407760275042311689354698766203146816281687570685426731676986955437011717161152661732155868361845452083943190624377291440742441752440927303906025444978222120856410939627902781647410912305464504183189588659224634603046916000376769593931408004143481033809472046897499633420550357230826866079494173753087039585879129109479797468664931913441669698640854899584506018070963218865161939309187811284874830632154291523976458673173210843610127930534039878050510607484454142169881896952215478989654636011867528019129807079243350304781690214156007480708266246807298641604083976496277750643275761589958180113943642067211601117189741069859887350793482352568680994967924452163761117453364660017612934991501358199415096086637303061026887978629694302624911867879885574766597322240930098936872060580877119372036268170365212695806917803553104366725134775969641356440893973927022363057196853938548809088077763941995841302881646157664154986246609574096638453999967914859342235473962961029582141106581073206340945021658794559667081979604952155367762493024867516516391322598226856778892751477918501614947730490506605488966185160782932993950144332210661323964753239358596737594863217862277884738038016116976137154846045117827006692833485785124980221422418973302140841407121091658360197475650703632395550438466814652798872655978549543291586659846148677730309939635656724057617419160058677914471287064233263727437127815019885431452500039011655251818491819469009552569641978832183261560685310038763186983106907697669944007900236511260860437784837644553477037471079217410331411308239700251438843010602739557046268977136423690728462002835436069266348726423098827208959292177440968570907249693255808211658198537719736113605892840663890251649385830241064210506590317105240618273807829107918839116324294052033705047696927443286758171620436498930595411442864746890116438019858594160736289125795092917236458322168020181579157347646408909995261829120951708614832108560115678941712063503296862783406219225578661546357077889259664621714383194708852710673589867506794311561398128244355830889799003483901016882417431443473544432796430549982395839219275196768706946935544902346566073784853810715183996997084411962269486315576434961283426179100908354102626001968484972899335471625431946061864629593756223075234411705184115911848594447562198292006039454128030830748710734411446165002226917262256152634797870581988667995416793685309511171907057439204456508300761723287979543208493039339529652881544720558678413464021085299340183728108072612132480046153022102161925251554730716831215948531541806574574348347232365932587458914511611533651300460960909803725180071667802647981659571961615065730323502349398818648303825587826525825408139476208321379942962772285244384531793391134101062199502525870302149364461895004971010760519488400705938661991638519726499333466070615408177443290332341491180739851373709752994194457907452240422593995650159154834183166332693444288101529874677974763150638382865499654710103460097860880115871721535408127571040264917810433615839755117095328604860470460845229144336060099969652153445814620683312568178500360137405991808961251220771960249452864021506517484733730329998744999602565362264239504146671485270183769585084369621753799111190797448846272546634464214412078530191443050582476746458279513002206110018036484005550933848685726468708463358702914293158814867045431801804397118024424345859561506809953089815124613472736924863326476837424606129851679346384438059097368110179567696436870124933390202962581457471484819501407370325563931906753158353174085563364313053781653833044644035055551165528430251087103307652671825873648643552516521028795950358175653777429394194899102545558166576977005707629367446907791994015475027726017012564103581721581720931115733735053111312614339512405755039088032472204483808003615060298414963376279812449961609034342610132482341670522649902665180110613629353811672634090833362498861851097227303909939129376165693998478283190624294255496077149790271870578927781987295130095926439862413562796039063280756512793990849890748309643958544660413999288488083138800544410338428437037691799750357440512460339878911094064161861575793843620078419902604241994671900074113004956941475246803442366619779855281282726949135033581168161338873515107017093079927622680964958634258501226882354399980741714048486828295976788249282710682561533613569281556079758336250897648849921758189430154691002542468761346281170876527428756434021913327993011861404400771959215523575508026970759237559018137152854832358050258968474766878862774032946124597582971605016849067537138099950304346104230653048329864424455600197915849715507284949137020856512404669211173634854596176945313432779607655069595219487815229104112654585039193039380093049520727216624201041843765023792566286974593394263060897035735610343871338849182672756793217316788895961021420669904220860136914550776791198017424348568339621666985822611307152477334804987073956481612296974190297255205570956538992172374281023968474743181531987788551564481493821366912262280521739868876937585527677736837457748268153645422297693870104018743007310509469187101810312384622490843758522494350743091386221354578348339676072712093711870821758709785618351716128039551166412470515413619273370015372049872497706179076766871308729020702091895851351662059519253894803042154102416727977159741238406639246030705914731687648616865168901310695611654310468685035997006139357389517351101484035297284945481282601656669928550801011047358850472720454702139307289811694238460170507656159849233576968807043256801552919466506265519625538649804285369554823067352569728303291500835285971783235403693555964793969343822735570643384553971769083626749769206898802929798277411977112024449618363312879652491988102560474453384885924624110326860979722594603785599003649950063577247519169275686480412006466968470295757109866924842372749064959332296784334135211315426706496913528731386125330781591820156731414936241636493976948369549390311341736792458913613429327546118747633260363819490384337827051862199010401996295080032997389465029573125545458616379812920292144957110624959705177654274267258249628340121637784507886531346354847310235183906036758549767304965433180385479682909692360518094142377536207811088602450931134977236042645548823672847503301088181396566562349280897508006316966508928937462368253334584323721062246233177757771834738186263037310884433900348735067638987328682846817514071081098473952937154434630582320516330117815034826862348337605023893988109275069414914342724504935179574445000187162364581253263758090644180765541152440765696604840399901911087219803328162432766137003258947957081973854572621530581190321028482071270023380648602980342170034147609596063604251027283701279212029360371587504945528936353070224598304559880933508676067015436937874503994876930240159960074566986210816102622322669579532528838147025772092169707715329058643856078200054487154657000118443622819842340422086907734956888020057533371713198932754843132812395654722550278566267857134989163599795276748170813214637316506126523182242677097000033512492225989565489064426312662153510673016350318337805839900911911321125960276276316241827782803567860273221474659369804686601953592235728472969564994360471919463008814690079180326340150856585773232407534715736187050101933142161315873847206640586801116727172065446794088451571285237976219743300713253311914100169558659695590196220895872985393700706708670517172274326312639015461834066624550458035164514911620733221162046975926210158911916709022289109957260098699257526872845921853267079817592072988006830287000253018036742796162533468425922049884726655396599044967629482045565287490367306043807889925606633169592382400724273915418438335578833716229501028040544871640602671398811724192768559822102977473787310786991327614954766223646564885033778110315954728345001356712582871206620035597604155465056439019974824245119243145059604728405339382851092484808282627947427819518730992621921669265779243168540502723911591950884344016732967829206454862665190538797473856468277319775010713634535761733478230375482975706131939982433948167114007382901630299286889811112492647671211453771551754053874768490244061153406210795409586835557682558504586941170136683222808886627339557547903717787104213639041292131876740667583673512304512354834321096174728172845655923892601827277952881964953207652742485562180143290774613113885446721036078548549851312116316377321368168852888883007235770280932248453063134420364674249966692646811224657655321545539507338792132137384752344040722235288350654517249659985845775519822184809324291839162747121249301649662030601926290772016103346489881389332095151543933171907216979802231989447065656622720382466330195609385222438051666675912050463173408428613474258199071125062862678823612396630216480565728647032409278820688672136356560073326281992992752801258179818061538847864460416121445055950560121662813074314683464589799098256503898831415539419940938867699182879271636694424891671460078738474863824019813534101233786112966413824950609733224928201966505029849779327356032979202484248967787715055649241022341498712449534408250202561821197797706768274353652324032752070700187263520877886357144198981439690840595248837720367937431708770431278185876951400602592163693502919731049192504622840694051446003517632616458435747564886217826128002799100075142632379159806597941874547023606726487136582877184550868803691472519515103275871163975401154948357934664180594427175990573194400339622759658899309403942836569368098149853016217478576942117400524994170742434030208944381702892550239505356580238253036833925235688645505145604118718691947954870294530137171221831251539914874041575958702687429409284109740384268400792383376641599877018985792664761299310457046013341328660537940095948679991866052680645122365601507267649004614095474500530679108295703010473577087711356010622854668693846898207946308290744431741411001977838089513646947252973479812649127617434390698536389573433696510144938557918707995909394954620744818715792026120999458551970438312137109458701440183497235289810675753476975587429250444018287669720227006565398029860837828127873128480499859095123846052919572451008923162018171726483334283944338565842414836001427189315143002777811060107396172727482764264402903531644388917675818240454621781761142197797015473934477292995003735289661926582692075606868373643035467506211084804953400810266195088484148488488236129354929321919653097778621236366306296850869807985258313180842649149682537507211241797026617992190763676847268031551561070916700427269711397460900047503160529193254769252453375170402261559798346220439811581592850112541900130535319242054758100700671097016010979205523037494254696787099693937009697301290478440155177763420732414869129183634495639598787585974858648855288618602263708997879753377639528789131628148931391975896389194420090031266590113433634390685316755511964892907167716375306519550930591795391221670047041978665052341378588259167239115172040817230671568890578279988008463020967194178301520878216337245381944965709381527409582259485293075844945404238118820169339822932432065662690140916306591933587094760073954232785566926325584054217481494455355778035487837740848496514125316974730606978043160684008483433854797190160562234320398439237599277178057073638593450917820565916911550398624675700393805463072802192287423866357031371697271171246370558558146721438345401788689331879258000262804590578371222913739308785350378710347754007572085661213675309591208320370158129469903529258592510320076370517480270712763584712980439623789045084339669184368621934245797996917025996541607451906487932932360026641639126875315087407866158019614329225249504781006362183670132976624114221562023757796634805097561804128865078768689132809042445668421864978443807336572126515615093683584720645931091130756867340206379104346790132114246052906111797837047707341586145887452361323011086688253403113180343164615710160289940597796154738409416015296649570783212858977766566031622782924803154440682794017218762624304850129208327316285350442462187566855929719738326520607279220407057888369971772456133997509234240420795232212170257658740189253043099744726708697122036098517932610209573525686212669863389141823715533956055836626035209073551081830620109564050304001499165683849476591733102944811327165095596376925767931999057872285919023449450196127057828402273610266402132817914242888403826594606406037118066659766236109797170392748796053756374092676969377543414367049601276675556411170648013092622755689448559482842683834436258954880111701276632446050245449773819949047275931106257476082916247340914860784542813516259963655466552326078994212879704098649635116893738031442054431126475197541292887082302731134094025004607771871429012492541970458231194349530782067935327179860121964183815888853184702599646676072493759069809415232164032270314882118574725514591404010183697106004827565405199477744566839870972921558818497091346206475899395687675094465560037551955553133128966900342006899986256710228228173504800172143401311021699145516291440720754587745847196514664788847371050062537005228630899619612479133975545473946103188882523296058995007417170735776189195308798207517428954605294409748344953014506623950342134005046741084028912998121940253805904292443056443772229754268371130073785627621808083803781659404095832000373386301557315931714458102662515176444496962065684088401384075915581534607887274558646797209740036171465989913352763292755547281994339868126308394659599546857077309044449302009134561097621627919382654500276381658654555743383001172076865838508704240209781957350148926853806452239867829242812361833112493854518323389846351817247733153175331170224415722116388137392662777612617502837635824725993033315401806291127368265473631794831899708775783023501563182328574442487983755025703981040969650987575747848450847366252315548843045149682358603226517245964042193630040096999071543654088138998817605707845230593227378333671294133472039968829709786691022271882416445472213886850298045236741626526579051257539700422738912543649065480453483119856018702850567258111371742031667573975927210165097751236248557449643380442789322715850625404743692489196402884969262855230139914610226264351215795747306256623072447047383333922087107369721090427116457992305852808934229531376345433760688777641665967563279381077267030792531019679611909051177773734611069691913139428594552663504748814998198225213255718485950361179482306813772301154319122697034087046625107400720502191898789119670978735907169437710702288620781242206102385647163861821924002183546503309439528476908769441716256803156932072759114774533260544724469657873606414820157057623706485286559526895385714287508914840938597079579195775983881738580014301521476589497789025157156050240744136611363821442912636069305077807848994134878670434242264846950922787139344585641387153633408088121694443767191697598801632295189081148349534200906366063516868394144478350719004608482135061725176889909689664541614076403526734535678506745197377058088935627187241587159122971800728681641145928527144527270283885923042335082620369935729559962849326434108307817784628199871624131454933662041263972406930394758375663468098332474198051666647616064461542237774266082707859323242872090925640231367311972932975453447395799601181029601351617105459290990580336203034761322996837150957709646007611551883992340325583430829808095166650717969170999245498947089840828901850664203710192877536315205463360901803752593731238467756416571254010446147318147445327018352389912696294656867306077907993137456423845581904150878805753627604017493861797152581876738495897848831473144254941264568774227889016293655329494825165979602808725122700286548657874371121926630515933247634872456496200088017442408796214342938334127216022763939888856318856480482582938305528048935506328106859553010571568293356209767737242734955989269902031859337010340190941306993735551019179396420991764991859945895743550593013255016925475633646641564871720737521976030716628975302178334556874276962663692005839714902307248539712151211047110121636966428677496961133368953182744068626411881158605319518054459085228361511527595761633434583562900855127632433580647181898037853794338001757163524969650778547367767367056204353642289507578301481247598892236905329193446615839322254606167671733043091385683112494842052276522235760573181272468615663273212013594881319972129027641245679376440908518751772357785203171198954963715163919684725994875969463409150809752167126772436161667162112881145551095879952388308021953894648642477959284309603482103642917697977090168580224602176000065243428407324533599264948575917565950729669961698973184981806467841731098583625138785891619092348334504286803047081538604432541600265386665937259869975575839296695628316350312182922113810124127105708336316107963360248142717872049765206045064078620211556781973665688448288030006643423416199977136174506138112887491512764341814559286847375229183413789661164617643809506013129671309561701551027979462312319318945767688093686740801524258256368330056224591064996581203343740008103962689042884157020498020263701092620426194779448333137268494529152341701653397104474415018428090432889939136382364094740646275782365140283373033792303969395055199770945709944028884287547759402316473445269311672227921212210357595700729779557261835077539363150154108090343634786605508638159542527623428211757094680618929684301914235496561480274139925750205883919962993741409926512117627845623776576978466514960271970351637150551956296003352637388664375086368484124422721830427509390694536961631942469110676151802415090455196365242493990043373540888271302335341098160061390586704802887788285816387885312137528889812948235061777375719917910687863132673285754532466236254882794885694777255352695348252486486307630420454990128404948375525969275366192774989172982240625568315239327962034098828883676761881048143619877866226415813775437859948522307067785710741061053548293880782368479996758629431369742111999871362542730485094986044141310195126746920881129341869797088770568372035310421095301367357561901675631184488432629771556986597355219386148226728403299628594700586557806287748009148180005845245944201652410463307470804783719731441207849485906992254745380318927737456865606279463380176488804372794208655611141173697674474278512140505841456510341548544126268942493997487587237710426402820368841512969783433693128614000062228450391892757179218085078937853939739586260986459503757220927714503476153792670002388237192943545365288632432011819477748416211353171955360376867156463581613752662533365638866034615572181059070048436785515069466060247331341297210747349738449930566011485640857881917161757433337937847754990779635931110700125459465880550560182344803602598739278167524119923687062151764784023887005679426829162231627224987523591403976281826701431935122390553950207122336641929274986470884656577066109624341589516880025810477170160719595379275989245660485613010690871630313257388678390662113750998064068308172372419162448061008427513124690050459520185145710143211687379183006925583771404927987170273094968243818687815333793238004541526103675774012063760466002983570876281575948026414872126181916671651396068583493467936779062252568283217559853156881426645176834189122388816750575811684549201831829661096272572007666471138391190065106012449341762215076706154263885190992434355464566521180144524215826882271174306758518897493785447559537191620992723641917429244258710092876638752193399113898361125215096788380679996678298246694005530269256889310402097687694933712280809800915198546089753223043921909542437005979633701750062796818123112426055678143851414354467381340093625042104191090042431039028484234884709839352540995915674621825599185879619430563500602379397168063799510437003922258559654067203471104022345905819608129160790033452799505316614541755188946364970476865198546687704455370521534508451901346223875036226588347968966359223205265869204638789406143535845755951975342094379888462997714123591176797241779020203944830238103712167138721806338633365435728776879870873241132550132345736423432881316461736292951716345227780941395011132158041189543855606025087777352149766742434239019730801099273219337384347334298684851575624004861599907107611288760354272124062178014320482812357003190843373039303757615066671080509618590162178708880143020759325618377481961863197326530888033015918780852997848134382451819261614500158062167939607503623936979046345145421567922291417483528617132832120517563537338589805840119281149126202189113990165543653762017287783385051019676826212800732924291700252206080472756708152151849066944811083884921431140574571255134715292922606954885346159227273405068843561897711339535186444273219787838032042117298364865242502264746582539983226388294376131503041248671935600741176387842403812222635820955141361849946351921902640904415448046260518147639746698425034531133194101248199607716547150824712739416933060990109238311781955159728450252374645718424760177270642464257223391695381524608064144354847818860921751283295206235621937406816558192529438102040841297250497387199957245779962164933881405175671171181609455907937069059859112102802044924632085572745962551827435338117881532119451757684366335826052651971168519811080964409164156213727798471010597621511134651810519997580236868690264055776872431589800695302525549206942607528173882734741359105868027439768021571682653540640809610095426400100518480012497793881045621256355211633601882869251058081082316468161216798263375078059914147709928473444664944159279133254163176084605351250204623234034072079090524120913634435191612771838185628323508380280409780753020033138606114026844195326118173213660219726354965444976010952771598664171008474594540325385325237779965608482938574216049833713001267222136455226535603345059136314732405978653735870512041847324790232321008117706727862673265318144553289301891277754435022491603880372030222831066452664843892891659702915454303736522213535327570174747439438182719040421657204456118481301352137282911152704344281034775520841058260225208588590697401981962976682333037367748587594997921925026384654371257177418608849324107436723870251357740695812722681639648605127011290574462751796311837214151463851064290160246393308900205960100609507510611409935516193158481441986269566955621141099837554608739762693225526898906172467659959553804383343591740242425656329673200500426057598293762474033217231032706971034333314921093372609515206809173252241749410773868944239855671193834648549133522499797997598910662861513122035635231458425671686159701397505976657174202068762408468724025552541872806490484000993135722743266695959733904468588293517073980194948779438700247203068439995921006116348360145145579658036622449120132660745626804039817223562101765038832338900487785182316526483146796765864646753592391761921793814559871384356480151883180750765289265936986933540162642728521079219615719205222756287945855335110447180636452286749604319752189671334221032079391581149012778202180481238261320147802737957431163088342354299586793915144861469858428244444459576179085149003857587347219141014643759455462256521975511654246603658783548277142121743746912135320116502186887512995887765242544144067126895019356847835334641968459531394640965764552950481941812916484110545851541266157527518029690373502288480917103101098474834749281796767311469508208749105173401408407081680616531903041052925048859645017180709656171878404493754765298649930082890276956397695530600226930132753697204658251186680344427441045399853132982290078490352187648246425815098168193718656436361496720929460172631200362992865899903558274763222375657325904855196449223470106819203781934328963745437280221648342390199553063958085880834028156599606034568195178322305112958112459342676191282316269079182773139815381223333446899245836532536245599468674108081500497389343596730511354725741029340864706590321806367117284256319565635552788383610489638319324699386415369691543828344763536322530615231257968743026932469821824246907646867519860568724620871759892426799087147357405348284590046874295916635066367327598496577521167659901466362607570310621408712877273313918808679676410438060632371473324686337658884669568500874469513113092665284063766589637982831411065386246963487563246405413529249503187323102483395112520459174204989651470346059017905670857445800622354949915642918518084209724266248085076579320069456039181304959820970347379133350023847250033401807986357709177270970993268918883186007224045788038122305180998716713816281019028866311017167101408364306294640973328601137166777485599654171456357026250334854460919892172679608511288001599280829971312632021982486603221835699028497758256096047195258541257635229552576640546913365016278238112944752619164778888666463297040065819563522756521471247116522471950031802088497919459207072167749343486496786848192087764242823648265769918877791792161534562703114494465746765175165502039277402511286607613788998436010606028398358352633546250091145189653182315275552118984829049969081516775482467581669230363593975901620681427439867286917700444364485333300748534081053906980327453450122721157234434307030101335249711061970790014344394907190481307539383116851989035027918967825692548225193212586857813952074247214086032145830265526678454363946647257049892274957475369923427433357600805737425927634523466034786383502747786803383169700703294024716783995220860841708890128804100933515519553518059906564452203484982041690454382126639284982779135513486902702096589715232317468563370833669809522609732704902209208265554139777225501292097298740713622478528461307557449350682608942661104745736730325308030172479962386198059632504726482947044349009465636892957275895509986812374629128566951160710986351572802006344371077320730472739698450724638677283020211206035006132209642641768294541994352901108424432573858416692959011048172125636138168777131370906109001876329961872440524619007123962374647940342174525036879158571116565272531970286545558131656158052137844506209281830175495912921277276609013891913993603704253642079269206067130887546719528441285642685426913833683265770985582212730637196478426454072249832090522010632706048337697965730597774758733413455501357588443977349047900580269602194758109389471327653606347830797161008806047862957839450142234693267046077474619158511663569036490632313208528931284695706714530133472757690712844574580518662710963358371692354704457932188411790648894485611518457728449962116091857654836282951973985875433787040851444502236234145414036743107425154602338145526188306516673677185606723816833582364749180939388635925857001630621622420684245852065230476135841345087798123383218732125953432424816939122574116712400623391957195670383337997627421243231043884488911354555819021153850398224775022551071292672704668258369149363283278471419869434178665451372865531969941999402543055040993148418211294616155687398899821003134754579720205795732445885476658525814815625359056824546585779619692111506062469265641954713742866912591136684010151179738770545138238261271054497305573417115224095574449752065310346032192919575458062087369257304030543253544073175356974950323051068921689461725975654228731857861547339962794082515433371071569105290146068105220582918280936277757097151202383409177291657228319690712846012901050140346675889547119821459103697245363274916230609745507268758341777785325024287259740496816740586261053586623720876624354693838349521944920173105004578374759464358453428080997012277974775694287343225542555429758337566337259598022191741670195730340367410623409984604161000639759176923367569624620937146890087078530177917229582078050988748462152783853983484779783231586453050545561433112119141477021120194786276636602260066520354103960472214537698334663456737179790364164984552273232867441562549476923927163558833026219344139618660189192304811223028284953121935803605743192866674409383028243320947359098156285491163104879722119230629362893333392573274109649603123247180669709818846337372449482924126134771942747538876763131083506834351922211166174869318614649743075538697018501622638386130626568929011328337926061935921275772235771978249527300487784663301977837282155319461053912394684810721585273587736813442048594901281132110098646335078513355101104491622222776553675718665011133093625681019023726450801209852776326789670475883847349888277811719697028902392354215161247424828615938887783589240659123424662170005607966982485654970317013003815869893385839780242339940452592846419590528433902957629018729232516431755102403836783643839349700684649801303912339650979409578353630508573363257289837699322643408900076993158588299450236108536848064334261666871353535837469147233376622204438764569285213439048464600992792000294456440228030474006179607763997639839178862566662428217174102391222245163611081603289371709052349622542842540067205749866466135545592650665203139248244318728877144172156802931469725913364309242097608935377928018460766594507840383948062323634657585497017208713538167421946104023960796825770136402982823120856613799257348292308418721093179227172071602971289620300886582802249133060877966110163322356520669751331161834278424378931946995647496493827341923460173011789883148278262620659394564312601641817639672182014020600142038380910962048352801091405162900321306026279661028617920298307431336913402437279977005306722727187575140068774530069098422005117264389951724266327701544346506508881936618867402532131047506075568588890377421552612350821222019709786946631189985362076894318215652452365595971548652811774525547197241337147721762199013777395411232590426902531637320973328305694876776502815296345437136418704543430619925854600339478098154585827219253590845596016736167864257421354879926942778192934168894335623650862340785539893589228915936118405386655914848430530853652610634625553758398106498406970996670343736647132746783233259123982316538934013713609957633628848519948274814640295120837300940912626598484115335258045815031421743798260432251803222601396978477135190955906797228106423371893308510761201429037525615159783571284106737543581720588980346179845452238160322466861368533342651925327965672208166964740563836397865939660917740253842624890115834032224700870398722168121001395656768183190905770039462011012811226266624652777917521632744999624530836514034065372647070884404015321090255676978941908699195760432302632422605408637155838295680637289671272654949542778887064586344849703235719275563164928972230236754740364330568690796725155499999906280561357107772710277574836006475920447913539072883144464127303839500754128503822657952338460698812793245531362501535376245670907730497104329120154070779605430765517097005539548747873977713437951887025894002946199254297689880721144361983713695201480214386804335243217209640400431702370731849933464588827009887067943110098237938485945192630961052771185221350678648974134215763578405190750371467454565727260532387284537333787363000340901256333838800796757238569188684356107907507831134972226939200419728387592029992292868915957776311117488867230037296421974513800995080194009143460994802156181093708984003639516084092186593665484608500080515351485504058262161873101681926962704262212270073692899061086668734472042045395586477195962192593526821886479355399066167573671597898608834870414804917741010272722117590174213196679998295003686592465485020977584981652571406007610103847371745179212398910183642914518476120344133521585485643970164567141841667902917419770906841910570920810795931086194801699245456993324796965460595260588190683580806520569905522539300417251910981655721516586162762182756618333031969907452775020759425625908062420652441687317883035818056424025619352449814129104518255657053407011838440774446207226033374606062395339592776841131707255648631577775715383511984695490851423382864457868628976998685773889756516391266475170673846852443085828587584616489951849441601930495028087346029242952555626175991983468602890249901522148179547295605752042260407815822363945530105254357340632585606125076777276078977223709869365616343092364609879321178836193246290424040993045627111496161630277206184746221712309031203940194243454764901218082542527358120339801792160066062073068896743040884406968799311382672590455691062700000848530734775992046274103458085525386819754425093153776805905633307932478337159270157544380887929671180527188424635931913369517769868890348989594854995090537452498801429162020770191554867102597953017560208958642788062916490371134608195689458648631778966793987314490793965547731205091086575431021695860646916047529380775968282481266113704067038996815798291379046163483383889181444051864110619639536355675186118006574448347466002298763040751661850937320757703833832335825521541434851458923511735663933925318663993429880878126939078219892986502605589284809713319595151356921623067827643882194718851720267897948680233411343792196662765532980871317051820804964872482918800892248691703396413200479852817683879349585690432431904122016625373548216618061651345739936797042852926077024904551831374239586475149870576038597510251566479025143972042717750383391260440705075431337606773209807573359666349984938900558530972996284938890202181015902627067370585548470003832034446157496458543948588553801494042179040392753800092990815060052195729707943658347297913357693962495994024501081881708446396093139399318352846590161143804312727382662841973620190206940385040772963651272133087704764194057487508928743337729351951727797383844160762127820823747639060051727334075623765300433830809112079874162706206511327552603312370146494072736413653475689092710562797240342004603266071898753083335181572690905727552997642780657212360407517946764257748981413484931085764911739320905521763578256962509150155559732932027315754973603031929213637648319788497016290039603677175522019050928219662509351185724214376777763082345308556076799524240670849742332609631779042556989258202416853420056991562838497146750520425527523054271197994604926686526588818852045782082354227506428072393616565087630348248251546765511762228851983260242668065578321335281004669661240440726893228970300699133765270551578137248537740307392825352166414753253343331632069757395844096088016489904728015423423526731652286285641920018706923740102339508596028145285144830384969105825869672444013158740666224816496794502208829467116813946147212804747462856128759269661331134606999210105542866621136475714219509768606235479502149417922627148911991928677590507687190927655596845309190170856543601818829671438961502877503803559468667273786265748611544115538149235144728649567248964238932690493097141162228085156128900589240055430522825252774406064090062277047271041247306344042315370022728676698301915993790295129499318391757728511519314573065188316243178496654595479431976266801111039872365217031465247270154113013997116615061430746400576414937852190895646854707042154196948876286304477846566929652141773847684116946487468813248848768637352887651968754070568953285446776222347554439392934782213104104361475113973897157150022114828491766189404024068381714493278208827681098665810236396593972741960994745288370300950961882451662847753064862720959130151631500677626533465491520640314922829429664439529365672527114282615643363932249353520165125147012816169197619129265712663074999720454564415683001666639444374970921872350891070098862649648134327225783933053144234376722268675004209552305563845728198436690104466018892612484310234940538936262017203131334007319257519030486156775266826521634539039315745939855997124406356541364150292848927696406157564756240041316028805022955163443858489381903784474213407666092285963440152068531835981398902787837356059231879376135013791970785185322699223578740633096198152624100323772880817242197696429817111888247319877797622671052816514087146264084175143736869443650010223601601555545012090446117136256264520272754100424643490986321371304234716108712031607953222187703823994597604951438989144396026081838477474389309116287103346054899896217654314531543845204428477756925352448527815609715201030612197406845875482508489991412440943341287196015364701749666279620640044498603149370242693571407330352475006169081296194052641110588807827054498662992627512264144741684200545424626862000471897430793041585337675630280045750747876190327226184176735470698921030375292426463765366963250471935374405435648860143879159380434367806916357142080031848753684491446590480723644125138389040842923334539597529947361086079605410697110905803473474398197384542988961185089042283454322326159175402902906255569814464097987876674265519407100942941976867807156346206062485359279147851243339875138807302404342935004945333986969905033583045658116701024933396372139913190809988260661767238968679894487000441131075516554677961904641634653982024963870378043506139103616106235192777246323941462210498705499096354548304396381744976316402372921228473806417548951338659295459061187410205847491157196091305598236934484585259066956952651438705603359463337903038787265937648034854962283888797285917334029572024382894721908897799022478156148765062564190803407071117183086247861849105561091425559932768902642570368838295462832486581202253979464969086155335749560496631299577015641201375790901096819834317200687563059506166601229866668242984918515892351116126494184653827772845747352628795155720108616106401038476697849145069285312013701129115341443065437078424588481115717964505079477777338720577045694472156392917931647301592858958961590636677011480669941331544078161824285396412111950527356360136045154482096633491586423765539172716476579052037416834479032829038433354490487021968182885207137055624562496114700527529117559640028202895900228244103186759386628026254446831398097852801113993641946869645871462810242843263598585996888488529324425601440768458102964943691474487610180985550666641760882076091502945214521342577949936994207833588772733615421178694230951575298260493777792133834362585027865848120993526578159317276967310112215183269389587327376105041881315348640358106001996873854610418243275336685650969329535939874543034372884791679863419100639020374327452548404262409508545965055122118799822552299628569082700684622131915117616800580665981619870352770105192595520114600853797913988093966616399113005942391290274966294596713851155943145401808696820084748812514529247052444463089809226529750696724984773718115496754406449465559243609101574809240912863554610701243875820029677142235053734006472138683647422453682172991074206781267920433992484472987474467488703642904927203641801723367241179715247560469031792114959060724712754147529424171993814372700029558281333250638557632854375280550591639962515918157826675855037579295843588106034382971743628737097684592940745425777711867939251527310248636542332871063143226802341459662799098189878222098179176794180422492647074843501984630062136555446796953336172161564159637654140908887318149702010619373311752090333939052412490313563273196595920815203136550864042777762661008369332530195478832012490256615002467598262054882917954175414601092651848553626787517871615054249281524074888041000922203344921048869148228776838828750768806238870110292438977107243205933871799832924822552385056767697048998178125475929483936661670570592080421271462585197449296375890665438490240256878166415086469385749034837360912118147244592094673008432355786344294932531318432100902713899260938479794409830207968997813401956109518754558304642021354358808472518572533295365506457916522709023624146306896543921061949737461031840572444468007500498344599569570075561890424884807951010178745564580764378689838313808920742131936341329977680871993948796611126097399877720095409125641704803869669269650345146554065144222709050926421694019859280715186908395684134459565643325501221441173953994870815843955568057320460077853889925451742651925176195069629209129674703757487961546987031727267196275787852542266522917924143268832017530015986637093200750971245728293805403362290515651619174245379251207417505995393347103781680204709547373193299653244523490382939300580042522976271563366547061339466853141019369412831325995630196772535212952995215449287097670200230523308632902696114835983898255844388997318549225512693878270098952953123281308043092887441089008927729604828192796554877023082907364057277040928148124015972875543166339727273971099197304153021391102000936395672554552531861296192910161869569416760275583203168567764181447737015463082462586701901494779983032404940446886520108437717076242802993854662516987074526594794748132650734377171603075242470469776819024252384445668428695782791742776395469800519913329926361001397971436354452921560394050055490340982966747867473998574689273044079127159025731317829503940653543094672212707832797105425167561815735979122829845398951701909624973676121726088299602016304346095768950944532652751572353279308918170785653148330841457102658203835382947353671688926947475765756726443659341667721313101132262814395233056528610267364286468668333569170906589561934677904708755676727020123782931637954895834241759244772050886406023026502319746501810038096021113278831848743880889520679391513579737058890241525257588370678161225807898959807289598282572845226037451131717821597214255975268027837667628217548229833128584926163995951900970665111411090728444029361031815588000376926745603573047424746769952905556788801123593652514169128358764458078918391630170747785399667714719808903521564317906368182168909259343559067142552588391371313160701126145858349806719218445917081129051781910279292631359646643855869002961097430408788640909800753552702215708022775571796867864279069212328141517993799949119286540667217874683880383845251216093681817067854762590913792629793619117958759552373911638557773839547217471924433167745699736294118542919549182684367865289936679244629692342572697291146188545008061480243622405437250375639324984207148515773913196076142917817834474590183000929133297868776147497719261933723945011588376115577013553500116614488408336467423634888525475091987099383271784405241019350465216791573262081378866619237937532399733949922438063139122664459031696179778435741726168957479951150068960059882656925096124276259256385274934892673540734995571174146106169519096653075382804592502463042837432161397911474556032247306133567523357952889472675559719588774684227490424655032736670445549081980764950885109705762790431645985999290125781924164966841427099661594489372048551123603446570237319289833901249497058208659566538471060830053675436048444313819025309697262688146103155436973147553516168694308935432820868388574680969427448326419621995622932940939013171346641276745578796056566906324764654933151755628071133284879475756178056362472036110976476909281417330778446432681695820819117046324363950899405054040468835454079017225565170647653523175225961776379276332322110180029662375033353113330696260265041983827818190693782343314748246473691858775941629570869056916990323607500076729141035021100407858515259130824945300655261395168445468483270813231571229238973182314713682076048146026329913234576475034480923268383679157549377529961795922121711957949212764339529196879686622619561279369812224842460758040595326799637324044781803839485533098552342866079218143650951573613318577698314017165127347915154201949428055495329700629939471846836004901839687228021295891701553636301970689904294092503282122383909856465633067363443608210359274007982537191359613841848201787049664676112911293241279140958708082719170664044402134334322252958987812777028933893582427119061227375252624221407856193507723673182561343019956209101624185272521030174087669800452631633179643139769936800233836460440084128875617064573352743429387104532822256375153866538903305206416839663664937314690107983124865647755977352342152328649798711667871878279875248778034515695739760743294868615544484876722788240844817764126392936616223286955988358800578112536791271856836279204343840370871901394202086031579674257043237971837245986801381889507681443269796092744058056848797458276327040755948562988419171477939935870233066375628781888334638443066678274633359558721942465299274091461743015596793419747421785677862034967308886774291146892889423374023313579342377791062015052453414276980313402121339238695448748475666934620179530572424393841674685961899878055131626973349577535161612946611093535416241335896485597397835343701532021698869842232004541611792668119339320916623385971036418057051399473161688363864684972338155171130103709293819298414514179914625849012437710856021004557064296129521444544422552623760880128077987923429770873189477238082807228918017860328224632621070881519102081066767758725868965644393764564194478192318747240641251145684604452820491966756326256834875732609354114735918274171786619633428264539743083915350715753022036362639127574123414972033449073579504952872810088503263852595436346135543610858257211762161465814996744320026124033045844272335503962508405916788214084558315355509660110167580889190638604328009066783740166293347310777264858475515565432297474826645097789926266198804174104358378818519151883417831822954139671851648175889702578140113854998763525573477794201595541951821107349295193097527284451436885685796653336177798243484741731653475997955983783556573128365318936708000816490677660442938725466522151208451499090127856389485239803612478475005739246366213295954800662172759544191062030929223434962827002986376867777855563299221109419775068626121770290968940840337296833334583676813133411864396075039462735912663745865209069576011141472500849053496422595408796403318144654459858645750874789166622962853188520490099810479503113079262882271630989922858107690632409687719069728157104891706801350625913177645039431636259036037441488904918931180852568976022608838828025468128872134993379882157779127814036496310767985267183113533202784403519101767043800932682497508156561110544604746158992605499856561650505773195197335463837424174157517456671288921441683686411095773289421969695463690857554497111839793078215708145410486438032195815711475807006289604417727978249444832156395364447867975978797773801537446785266940937597904292390805663019721084255239634392059198720278574951921121940898639477232345554257094858066635658547164165268778018561133655515137965042273128184637382730964056017118313550350475259398569392876399990421146218290510800191734895945850356940387167393192907458497300279783105757469571528691763798839471387434183269984586111313788780193073832750612175766965957032771422216102812284673446438399024771749872598076606677041631649778753421455017799505419098463397215690785043220797924220987364960963122225623831890914269639191867712780604822310362501174977238107575727684525242219426891816831055107493421078355606622884511978504026748962657124493344985840700014671722389015851167423597208964152412993228330827689762391360954863351010018737888871376255442821317216939341366761680120339536098405188492365985118357485456722728461050508206686070955140866033892657320394042893488673923469707965161507965713907682196185192759782296026421430352617236383869538811884032652436840790577014781443727481235560462742427960462483260718450126158124145533631002535202555939247047225654101817828199199446919761394593026299719809130496911745084983906888244475766234953307086469787630404893897924564203518367557950669076194777778424993543104764061637541843829357227026831542360232509326619371737155879967229251974148867778487771285365853654851276467060090095332880400952806727104750684207051813397449458496517299679583549571720485197113627855209973003092005135155902049714296930772470431436472058530054527986511398457872006647184048301857529055026364924521138613704882959859549735707815129931520756122524184392356259306949473068732072679990970833896840635523088653649613262153614258533246929484332749227231142007779066799330020218636923641467636824846831287037898496738374916173168973083040930262176924353441660161995741374275198109072691488127668992382579766751325832098613248429187337095669033317128637929661678475893481284452799130223060512755672065840532828884011167479128727874747474801916036553993471700097925991839434025371326904528689093396646526450096772990379038197657876847990318598798399202712284485044777557487390965644349808490033393851414674828462859533819900716957073046037581990012531210279898756686151034264269905318735717782615924315262830291139569064179681429506913446330717618757217684596581050892816527210460412540369300804319028201697184261870616991071296158300265892759377958965292500858438473337702834959864626472109571735840785295680255991034770702575262012701994227060299092890642977441156792698066166092931358213053414965558838494354489848004515488849883325353590019679385494346072594312248355093705561948068781502997561994595159525919435194119515191882896839852665370857532888216269311153107534542557568840128940340568169136103219340074361021593715430429786363434203432082974004768083107169243345099962956707025461370522773825540281301420953456062401403334924156429450537661513890886224781403226736452374770069968885264784001508815452912523194740373127697423091885969697717123451035853166455003097582011054594439591163241887504127881735068194469999408490542580068226289707652323158284777188219306311780209840970903246262162806780365727640740769590197804762552940029266072038419013372736578442798020798764772901931289028625615570543085707411600120101558757864952029649382296855809960991564886690273054650294567077446769456593104108329021868056118387334612023423725448366501229451228533110283448918625492840772700110266224892735410821981083632229120069018473085778733811244135222228707638097603193740004843297328979194751996624714716825224078919431474023671122854775969157916344951005137601386161428918962279999419495238096857483248956889483124628072002615109674617948468795192747077451935728297315905624981770957846563412562161704289436799060373613771404261958604690285175430206149717443584067195113727193711430916669520764607554132784745699799295084020347637773035438181482764122841518845788978687819576054394667169745646082982410147094153109960128808698352682337208515957446436498977921419227746348737006768079998251462319759188066872315835416299567429994619157202456186700432793876376137248767376856649621903059578503187610555182535121334938218950466168440713244445518927947064869424711090235263323628281800836819570137382109651225355501280895080957274021516601445683509754083085745895115060711167916333375192436425941925256886510032565969730491888045320696048844253996650251055485661547759579197149169124217530435202529741713571862774782118979148303545994770499256419686596499444639787111348029503010405633442391381242237374684855666183765230365036356986719674526370012250507347148713113079070850780890192128417915047776702533141382237785834582262351780815560675213963118340961621721066542902068266095241962075784813414777094340009543042145623091307130745942367713590684920624769099902212567348938023561399709795823734474339659417208965556623856414017773963782581291656146714147444178785130625849820443803622028712734101084800047033098085921616795107882594282762445225416752125823860708308439379326281277985234802108448117764065886721686471785336005564173532268157085930941122942053241095255867539037493674447496206717691844297219492061608130896968580121436808097809829749431759831690434810155489958412772187259170416450536740439483460767350124589075645340373189450199114977321420341792113180086261966352191110549470372845835276608573056013305828380460870155052979961302504626246597620128138960146504287173158682884149905793813356796842454719865704597571240179403650388646945277412499768248121305137478487761769083389962700674881269854843627400377471084326181989799178229991373792909079333868036772853532434057422570447331507613349732112750131822805748873748986839908703420197346169859732085436383796313009239194561726278586775799017293678803710182588150869960307731115752287887493794907362036138677596918781299770504020057316584402038011361254935299580106278575075799009120340528748111037173736835226215310758201077340098719415459010123618287684124540186208534671491937061061966629522974926089348988839634613559374990720793055601947915881477786725420884178096439162953412926381233147667546796435038491590901087332741977338734848068991963167548902356158492165150544398565410678243301698230532854337496917844748736976778951918386004230070344089489916571129034283433834628833548855772194322325255212947540800811301022835462622150392987206171761274676053293772414890351736835163500389213223048042747517288966977179878399167395929329303459752603392840286488361657562111825273705739171333380763439180722675263809509915250532213044764699755845121292039506731663862140783971909189389861376874607459997614284416136644041846163701801017202129432067814088372821067271520611272508565576386888913596722080372298076660189631410075193469930721373465874861523582857411541907608597645353389774440930657616224390028117533623011948596906943412319942602153859074317360132689369372359283223448244554881628486889064041237941752312327007735553631140509687463553901565733413019333517204025594670458542477704871896588928683203498783257807474474510868365382405219609235730813952019258384159706927768248846265813658046801895958356831592576368995970010510205365887670693722052541115739669116586543385849936167941266143868287922189713475052202962169572426925913321234428227910862975955636248753183543436532408105813542523803318785751587250640718038017632972515733180296078369472853927606339447369434643063863110448942671000461539216189699318646321264047725699861935936253918423247724329009530339570837513399483953469669187127307600070004486473184753756885793440503511079170671783233948609103796146164214188815324614136360342718758720149976126510350772230843860865286507261541301735937605582377566112491297795851294197330651448391257405583127201809364780536761210251700873073761206489904056432400037864010647861577655468703035570812087548867545461531080632821954356369849615685939155715950025946506566409121282315293552403204473123140890654637431698284426415737416440213557070346590565445397873442292547708180971784291327935797366009085951218504024645228413955204077485629305903853014010148027612469578094409469414678574626271002915817635480990567701559404899035805995293131705898397074592329910860792862726956702752502917670469193632977997271788009698854303202368760911701307489895456981378560641892781709895851317839681137186359332389959396721151904354856743694866696637730855125779600515177332957742909331683011356362493598094221948529423546099059539039011134362348676944251793055552512315657142623450645902347805433788054964895939298668222361228468372365401605851948354900880222344848083386469309457344727087971578069947271164725515660680509634373192780204338602828174943392442673455698155088226508297723048528512558507180400589744378534918217464132784737017080980294910932409468696497178047060720713797841825885302883676981090436326091277823038282655005558333887508097511954378555716243275629885626425582569419109088288506008037563092681192379434464058626023042401520763792348676466340227702961513658806497275033939374550013108795811109335771542678861869133918042470518313472426202593920437489957205236257905569100095654151422585326751965213299396818334022590129303182349380537666951918128835562891622519215600595169907957863310506017009932751020987617116008656572645676243938030960412704272081152733423048696511591611096850354401365881394510320760589842521470054233776890156158134466078179836974617151515082084273751909634897483101535603116594042994984174579721190561212458925830800372631235422774135571378533795830361630546330960703230804034135461760976929933283910611821657607949539408637073167381463515150780517187489195638970294571068045383766271761400910648148242671980535173618406174847177591292228516670994827890351989709804314852781486089781299947830854088275155799822636191318478323230462710352522150784432629161698135419046031084741852582078385739452507656812210355616721492236550386694220306724625046043586664675531815661603329862747679890006122363622932718810612215743575594104961407412426353565409363899872761280926624998086246634648741433802780171797582028904773787641340707409414095061426074493167342595940497768721818484081874973841956279668215945250243017309705699235695006791360577700430249087958033120469701897548184670247182467825609936631601645791245840916441774067919439607614401495443608445359806013450924070925428332947362226292802001877484650982436163312930487133417022743492048104500201996402325001784417540819003314657627167985431459314458364616579618566117536602029938824301102112471231104024414673095918437889363891768397850782789002141889224236191048595330836156402612137660484132454532466530934182875175129066789825271615618439060469467471257668696653669964665735433891421587087430136799858804264868155156233568593023109946433021072251716889229349356556222771295262983516560157383030686155233542615776535787659727926149128108609689240265845350722431980711296987773125363089836755130869285959974903038754005935315483906381394050181568184821027915239414488098984667088209386722423820561358533994147884759101256974761143348061956123598552877316485332781166573795460139068822715147812140748927394486870315554399376303441099552444662705384865218494575526579844253818404299615467757007995210884174758029056687670181539200503635045290802848330431304200987483454069445053270484183975332762090868187351052030015542439597442864910776261036729958339979756926148799697857603193474745706507707026921786910756375709348862542014301218418752898255294141366721447844597739306323431178338262784120053089897852362865641509413910490885717099850516536794237365836458167040888895260327079514184312847587729070875490381868042378012521457909160711402436517817546263357074512605415047228655472997289110582250366295239256015336030412504372175537974494736036415861805602034113714911863506607242497529922744574505249295990415293008615273039443332379287280155789067799366778538050259959230427482914476629324528902462800972895964933956825148939244397900317196787559984885582181358655255072816158734323890884680882742669222415337029193433334372156895938045323740417737788286758130614901330505822905015638279785197210790772070873909014197755887049275363134851094752493347120034939178442058264768659360671507168037245665101561847347067051733026573851568672247287086270565589612692482772609026857619634758572641716649219795208333701079488144014607134291096922944562558757890853643557141095788800658628028259816017201407536745229880213903215354912747350285483196441389537943284681748336165498448968011978368189529014571767902211634609270355435328214798446726277058305532550084112587163578293016194488515165928294967300121615605635199777289967821065077556003479748318542637501702946756446106411323881793863657326217268769116117736176982398598740562566174917145532942248324932393453185657225972079271746867761834666365259601840282184041216703887051169745388039273745636783601476653398727634614926149044417431445450193702894193803506449138126928753979105214069813672962184908156773993098488524115479129130066032883900618076553556362968563357764701400096574461412265375066304958578664427918946145078934906043427569736020619645122813718110653121471267602773372679462042903029423558482113522289925675158032916325586263405411981997956789934607526689569490417877126170826659965108047001127379216929108114739169800654077765687796662389985336083216528745916226103582884014552816833529384330023043790186156240047285851103731239655044084156103519626633846487816777196651226783824858511350245136444601114291077730979596963614875374884928007949697528656914731223476202790696863707469561809737860741521820809326403322773298809651596728859986387990616304456972806389213940645520434310989307278500109783744580680516732248220110443035598486592376909274320999508311771119393152935905458539623555706197004468366327529894091764213348844713046586279600198363709968280798421916793221471128627606941873687414000010910630932061562914617347859274766487738913544130589628474398117390315198135638065566664534622071942149806886944395133648260419091470145845962416476361039753083242240915315352079371250451146909319284118743907395087266468110821293002630564337146488606141268655219887790292689182665002617932893635297799170408276651845900613005901837656954657157414634382956288979936005084832913208417115913028683317743894268749119697864967679276187094631984974429846899337177985357481318997303314444745793136528880852715285304925284052077360754231610470937330718186675627861678271909448702269241429250416601189805339276443622747272580583774279195290914253104558420351370854730319527416562723532842887549385983088745911659658115819255637174089267830625784751534473365347797916657078922584307279618084511961747090559588883591141904454407396645130655832893396010435035266129437268870841068876442133844530024654915854878282785914416192967972886078185824354305173078907705194385703552548623717402724015787327425247859267844254018113747826393815217092049766545589842746074709378788064162189771997563346037714012638262441792610234775423733687339729667617539807795484103495570257250641805765407397746508385494740541010449640298028104135497592845463063508441411597300434255082444566206152210689439166893041449947491007112714804048848407083284581326260726751511787664122774498296741317919837873427686596286461553967546919545348857490564414941022722360774634591521464854313918111550935675612952213324968710733079209089008374069192709782348372326373431150475763095058329173646675011229727561933831751403763812872898088408923983312911215378401841964876640098102489123728775105341871113158493884369498137312597773600934593766618889715407662263195191419108963139521160907887572120275525021361025139622656949246706261737560485756046906686162670271314612350271956791294853373452050993184878755621627406721813321547465759961725087983157165117116288885578216037501552333183717854910711594100411753117602717561227447264782080021763666442965741608294520658525683316518234632280791979695636084866049305777435742394805858946567864515366453057374058103035812792169856233195767072398447031527534735008761788367579779252016781343846845193467765580661647218821490342426298505624380573863436595749677814893277928519394436272539535889232610056294134844348019768655008978488379864024349484814987813159214942320206357435769587585010272889164896962771435267839673741008401827085726758401651974240482677516215241687604061052570038064194993898614271291693565505686946255546007842788246472004621632126647234099651687459030600810573134597943640027429305125991050787917965294740961298769794072233473651003647235055806132786908112033164212862376189993661760411151208155667880093169158063644447487457383630605896616612209933473894242534222661518568817800582136014151761144552920699440682667059577032513798226436053239227255656550494773910905923656469727973943312340766419208946393766644644539182181115068647196989588394789023348606568441590972833066582462711624581224332009626149389264531717154351206329035011699259247745272900646903471980172799366073022868283829255097790582311899668694333630760391790256898646724020932269526393542735486831732057591999586401713283326893703796941716687333755313281734248155876149571280553583959544341570195155201773410841979403033063896942072808529256198162262513647751258547445062182684169755833670867637613531485645032596161760419650840533710853119909300086648296052195807530380112272599194234265875656806666816322740824311039929724943734424895842707166307551561930265755210473858529515538662419771761311513014616029382432900446301640507403795885922074970752802143418788246252984871367271132903411619551921636297470017058706409738102431134580566183590851506405835946482959752451042463361230455863039133013004094452803992113493103809798609476005037404707279056594039642061785908386864988805881053929759525533126197484879141943383402163828333966806849885099821324013166624128817209433629032159150961248453093116630937313660377563335593641560375660890980240148899723872686092155174527587325707313294376346738993587334317159437604172372632853246716480813942650917136650116068109804702128999861849324586957192569051512354343019508812411782642052899705004988657512578410741075531099680761915426900424816973821599640330927914894041514524341593562820689660212983010342758033991457139123020076011694777661286472841646549864931302436526531234611042537486997456170369850580492485618120369839667560214543811165155226349406781433696962237100213533199457202421554936856305921528101841526929090127659571063005140411384789720774793998980214620684250435484545558881224395263228713229555685908871313649159256281150245843075929623277234638449371240997925172019787551426337686618848238530725452259635804469665108556928965094883481053866776573745146709867310108102964600176990121304538021102672136814530843130723038453715012038707276232264164876888523667582908047032823745717338207233667791297778610288476754223291140286259275575134531472279702285362809538472184014824620323671180629655070702970488701442680594800399680255966466587431413411394986521527487690147945163646926169057728237299284036940805442811937435640394382617170722140428388913121921111535973490226998118693378370059686028954994810210983908660856833575643979544401913120728862846653953859668343268503144583161782376017794318751699113550217504760745531107885257766652065264882038825582458859763688751261891397986782070505481496207651919724337437543936369778620589801871741074670015461209661718143312055745755929365364681862944350738986903540004183698760097007633332505637844735101216425033443954284758186681487835872669660669247187750876176982431697106736417108810043530231783234884847163093979695505640199175548338458943730667953112059731359898591877733701327776959444470861071208181889722496763750871567968540470683707631518494985477938427760653425426947856064186785676575697478686113545439768879571456042640961506253745645078803259951939307614823399960606042854189248806162777844607262074360948968216131240346663377510320983660498007763303147405837823504951378020575513843290893690295316290414021692641970455132536864852938828211913530545314707239173014328862694649963188004026271366619235493880188801504383053930423561540934609254886319428530479416026586839116767689613962874075972110252368404800339451286516900547936414627379847885571978267091851840182418738727464429566031691475341851041513601865889876366977466569837343648651603470396882424889088828263943788882368484477456062533989881118793334146203388680907997647605078655317973707028188329277118073442760759734597524822251351364921429145212425441827216816000065393707876251064491207281377030359168250275944276014121266211764480802957668652693773138453727803629747429501931057644990353428459300628212741537613791495744255051794747899931836580454055197918421935093212591970004275346373482133919611744258547889112170980301982107447936514515186618459627161841863088196062150258042684758510905688931271199278953471808244066758838231948232385463445860660912569920725637589727458401918447032095955362496327916828002898706614566676385039649046448253787843689192493466044581204836799449099629270061065833224451615480299842047709673217380217618903898420219538322269990171482761006073014916147124887163705278420083732557411911458352060241751284661498418917248451390969936007260857610697616918329935139217314942542558638762790530689033314088307310656426826379619061471920330034264737123881281659300180205795335392848316586035421468343463453771519163823162356887975092469430675716558979628443211052283536718331743776315611338332781192822798668390997391971580734425681609948533312145356145606831809179704565051734420673636259652504365435905138070581784676477581523930230641468439721065894839795514392153394556529251573750286059891664895394405891689054784195034739945299448979484804597382063200251226346520120769791963776336715767534945824517735676399656904270743788778041607424386384721534255814993229724822139059538051740602588015730085310611240700055275106642915126466793028533149058638975131747586883755880448622822466831110542158492120262138852856392959079448648581936707247660398938342289758271168959569688061084872591396617473794138489223291869906224885873050014487783303458437808363002837477973355729302227524457638760895520488346968987273594583374941068143149655880733299962227648365252159320797134736527397150199815126422148757880826194602679748816324632939589290393459281201635441233452329077137975601932711417741018788022411931777871618816797938512586117998355160782620501173416198291429090480101254490828406264282284619560924411830227908252477029744872844802538439325958809966721787540509095008986480166001567662093259499413414025611804789925347765737495009289263681925185092742372756765186817127701975287660814920393759359522626100104400473522351173182844312055700733776197226454050444583700554972425227176276542059786900975654055855217597355121303931113106282073773908396040880227595861549290113224674054133718033536268204087866267409205215944810187770354179810213821582433499364726738689243805957442991656403625012911747014143146799055323200964503475563513826022700891073528335778248359800823244197687101199384853307848069931864176683506065603683854611339437678344199553219791803098393765909251751398896479056645688691339209142933120934620486103389241955195476570262980536503338762999077337583676328289414493199041382360659194800120766290671287591146170487210565858011335451909825243271387298230010551303879793773165731000251121824589210439135913542395762985390035700492437421271714583234089191749467893112170810452520004804767116127967576127803612637507995368836996150326174890905351166622923992425484942755112588454812977110683367085957849951151231631992794484240962356125915465186077873381376010295734777027031504796808757378533081856585197882108811424970229020978836768235953643271370393142869474350122679376611225777306760351792783508910647680953791670845531159078925278611798993139566351928573249364449684392886529920842442595599020481725558646711141026517385353011884339348349046283530494948990358369926064603632435944182023488576430120941233544226168685439555530878149112976858040409029079276212793030939184063937933070260932886799654834993914154636218707805694380895078200749491158991401117290791318715734068001327702219396890109075829597746251979090419831317569847264805816906865003488098135199749516993775907573687692684276869726515985079090833655851754447176381401389070422129752952931948698071770721344366807055143019709579914938896229877927006675784300164503375989986769157014924446739858444872703373888562461055903731039890188014150011915806018957282231907157086369068531949801966245693017294376009529260053605772796219572980826689246226394277543920444424776832117363180575023279378414076647721393367037906468400353273820229347014297038228090619504078763193260993602294587008362786592554301110456985788749095018401194599970953379761500487354323119710380644696872940703148620633855395895916019407811844923155657758323231727478072840134926011328859989408474744300293202548249472331000329975160083906643099445821964377472994076714767776417236213911640024859519856302966099263639180868355842600029930666379922309873961644896073408038553978888785644771951538397768545762577518744605996232304064645967247211782358552908132979322763856458570006522397323621752049455313669608733314420853232219058447567026193848766454912679826615075224887511727050122617936763034292860185118443005616189728679826987076278339801971627666536600354814486809741462624466341971859346971344426116869702793935911141698150485954177233813207240920868236396781570845146676446827355570292901754158036038440070270975496281295701155616869240375958395022534794090156121557639363435514586241963245636756630610369254532686207650205198858326933322661678041902096135636724342851716836277975131451746013861576284708119455562157091634225321708138491679493696493464089750369549613595490836871613739758588477621476098074092603171372742877454510261811603516519282688155451744311526825390544339252560112344857252067772100499648327609106019573063199696099908410677280542327799027185970620341499684432545120267063061084640379498911228520905575511615947712618429797396237367820321698712828369972534500205679365608579296641091412969246017957192568820669773523371086920444584948268922513305208559071306213654602686493654995801078376343844991387053411209926515421308004604067179904049500988433885155740302572513959221842046999824218157060105053990677128914973785839077226398378901169943565990515872873257850107211539901960037505463919524070359149098880406297794042247768683325875326785526931312208111305639238312703408759730562659963795521119274281427250488291643691797029957432466853646290900639139838668755221693095663916249968391754596475009496649017481800005576372000577512234228639169863855573403656671607954308764259036361045043691604929410885823863814793560425940751781844687537656457037990932202555402167820830411052432629406253863275753069900949238424158672443512817753567744139077878825992422554848063129061276168843617841303765878560612595204952807950651759913558474613679463947382691428397238373784610536841395067445893288891926315829577732679490680145100774539594105375049121492364587722984807533153649714552444698753115102376914362604825178943239371562210826630895184556058713848972280622871690180417470926337966103844868014054279385736073305169641610654402680605626280894240171511623628431419551923773645423624672578870025506986685842571481531796054452322522720746184736600537108566857746105606383645729498791010419748396734609865786133620252531732092557084784044005093458284841261384628807983677849976035677153190896450633341596222015333173018970264484392416849801953675349416971031958699271601874081604647003774734198370827911923003055559007064781095568582687000736104874953491024820310086738831349062151108568550823824413500901073446673155377647319847379383048417475339610659775035371855398567488005837323531885255034922228238808610856004114398478110894098130938509556437835657466830712842045458318411896539614858147421256095952470968702834175244270524906924412941621600123452034679155616066353277211836076923038027926406591363642920079580252350237292952499699874668526700699071154952718615433602945140603852338963923418216679098495002507086972705642778597259353205709466339906843588794843983624658529560253129791413293325987471329859321915284076036464687432646248216803258905508023398975825166303123352874333470039959683990265547939373954957252180907703430791950985818232107248199978140221709742403728333396443215432257680372413408584403184878981423666425626622759185547441482083796474320983920018502667552768386432918666625296471033563557817529586057080402785288751649921330065390441647194043412899536669251981604774274415092028765767436183640648954641455919967547127822955794075230782203441852683281891116118829558059897377397035515903251205008507738368832147937329987490390154128913862095816261589278419508884453732750179038830195693367343109017899965565126144701967565940366739259510353576113927605129889337287644075235432275438754300478401885670334019192260244194761907135247944038010526072941394562462257125667951797670485711570004358819307040488389448411968208308673540282943957560359156153906458113780379837948907744599630163861896990133262592954771951250439137810650405789885830219538428609014749160788750647610333580719722318237276494676679599700937258140973370399785497741227465583293221019195900144216276334583183816750885595532747630018562971145336829043544797113047455229660054736171681047668580906201199466682382337004119537220793465028741836154567400168708807408877193457203003835460344054222866368421578919651946730469538747670490247863397758831957144490120669608140982121772628647512007553232679948835344696826829283544597072899483655894012988534866016010005682681811734105278912327601586024581637208266119203914040799679182994674950691732614950052309562240720690232488786647296098630903094584521855153852315786640112148112018441530293919964094501946112606742385230859595335741683362730073967185323994349499314177664469162480193271359488446584471135694699375386072020609406247609746763081953976704243125415197104698797314756814469348764369706346692123058602334491917396185219572323194253444179584967072130043078710281400761466727305058803459107080835127160170573572602299865420450690671549194586182876067948995837790831165864758681460587950375804892246379216373496069269273603903555239075034058533438426553186457411175731164671602620333892830973817766368907499175042170425635111043240253471330641717248131576723362862094525841936514495668020446197634576007893209263738622661759125169947923329337541376537426275425918258676600742775365120368243462708480767352585576874031976004441034836103209328411057961329674481092856699466272730787429374476313387507726727828240783551460668342778656887424458713706555027611160041114064332256359820868433624979372280802505071278546625173931886488915044360083026226638457880490729677930265796742295305209651909939591920373602631621671221455905370775589422739281745077867570633620900889465351493357957398349150425303251398717444952229077830380779137629118271319389700432546590610128644720687289397196182167446607462071921527913442702225004640191326103817563537302861594092636552196708149201935316799395837990515179600085344885777528047135873194366613277965664849282403711316558779143216924255130583775856971568518245416088511819890787296575612507378072199789199295272203537811027221862390556032899092207962761867836737979903910435764651566328156807370954335606541162696118072982752693748441445297074716704662621369292779192712360215734405707741864020194980005252181008502877542008693377907272694044131418260203345670999891983550152389275418445622333894207860456814915203996620585960177635165020771140871593119721229029756616396924814186912466500008509047817536525433975971899994938583363857087970460732961459353024402992891167288177820131859529236164565001337700125155134472420324783412338540060259320621345794336541078866399602322412435483561364304327679578318158722666165877045094738749023957091007406754891428213068150194087343456516959464367059056842819338443626312755878520232541249913461076978552827923704081900590057077445062211777104011034281624654168424750916405513012760997496109287513520364469574074341472759937332413419281111267612225357057894935408461857176979456971010055549605274114601960138617986821518952004119400320383967256158317113200485200740409498003463813556707788410774022118160099889779241081897628004958367433274916876027111632123241478738774496194586327269866137710322716973481834744117375639179171120660920153189275529978208048547183171610912463734861526219843901481649390375344551905109187291181447748344620914964824156708584985621626240574290483958680558451435812641260230497324807289853665646775897338103348365461812061659745344149306474387527896825614473260611083223908239623766267306145937104701354593317827803842642102639313329186912734570146833017506073030705343146551377202659159806840278726122084493477580540088842118578714233409490051781535543753816152588324513341116429346318615729066349270160152033588499419412614814665882638663375561950716746752633019979014955800902510397753435817285279160108683552326395116537573479828733215354530472380351651117567031459936680022495743441263443907043995583217247915341935466515722231816435145444613407056484057896971904779857162616798586845698866027221255236727019134917633910650468194583503370227334235493367399795628663203404911720211261174121888151442749294096210009601763888055073703928479754928059978530462753222686839544770297955409282524219793968108751987116331640380667918768535317851611439914388533036206618817906503251277451974355849288977780890564563594433008289300876310857767394842565161227995464877084109667491130889948166175073904031907687571633142596782407775169484155440474813847032827180293531507247481063248913933092705439211327991060295863972400524497062543018139296691259619691129159538896575172706042674311527442626142747131388462307556915368788984291685362262590126063930521469991529908755110645497981623037571727639678685857942753991930002899760413190783926689442845619682917907218028333153364259088290177754090765416784483668961097402527766720572821537004425309009062325459030905410516623488387407479597795624961843159377624766645431393834376425214289776311229689132165769125070182848066342857601043526039255210872134645151261990898179995987358702294658443212437772139524755250047817119302499163090508251996334572595800725851942227792346781716323162944704235981556659330809349036113050722041934867675940961402620945123539585957885655065607508556487107374887722991576316554738351946426487352794166716616310442744233294970191354311981057993210302521165135931592611725983546619878594350105808994446744836632807658843443258005026541787542754360791520896461668493496918935923205337560711475831669668149293369439571862911095592213485954589003200704714808142699126937415727149781411795051234658643077256809179349793185224018939070189029526551295648483923923652938942990591868727930766578323138739732945574060802509878168947312916280276924325292089238693595654723787658109938234810744171196174891031596232024352766818417405071630305308513647475421537161714436181710432863136855921113256927942339083474958128970613500916730681894851339663325220027304260478580039885486171035912721204811269850091607518259008630425276772578139509832220528938517499084040891412239087816774071543920971220201771007588532615605517834155864652498837655683905155232989811371775620921824379343335682189025533726693127855065722110126083401082240211159099652417289152180777640541437542318600500354774626366433774514462063604375153284134381765013992636439609519232620952463622914549074235354378315331427000025397867847011196289084225866991117658387778526621277684436873892405187687061124417319975337560756744570135224601879284045831613304225441497028454979332148535860999036961622895834326733379255270009611406316957677020802305579922241495722192717467380426779167882273146519578016781316142179048577088438739134781464876997039069168993041321889727867573159473380867848838869331777614780639361379307765929704763631479750290448680890789449729243076249408999968789679664167892527623901181881701799484615691852999450880545729314764935045663240962450381375154038093813164599652988785690242339919046828135932384844046510854312864516526703651587797126116494252495459281531920725455984395942315908708060862620481498968039181090615344735355077081252981916574247515175250015340626502338558993600034927517929427674631227773891508857569391552099342856693687467328431582982053675891796043499889791263849473941040986058808578284323529175931920341057152818334589697729408460275274554319580943584398791344634662017415062445173063991527233196440504003199807748892463293578594509444188623855489868539403379648804002148494492844371895956582879184239070697934014855373722530921721406765008534874940636419536023851282136427366838927417596684889369612654143982623486664072796609100061464328780331575922003858802472892478125579030629862795642457280840915536955816750869172678021371549507623160976719369011218376531083928577439136815815818157282440610632152321066322709582594954720640902175049775738594911694529973587449259074145856641151981837239171196104841605722522737739338582506899743998946739002716518142347991717647381254037355730546620125638768354519542129698266123294496895717887551203925192456105160422909833536486305393447919459460821275073523501726232964810640650002056392578011812729841390272963724301562570422156745118966159758230521869825141579927756594626919266600099533859530099147464921311593074272350333622681646252007461850620183692217390066492308787499647102789947311920102614793378979405975701184948266418825980490299120834241988520302258178222671330851740439708320073818097976600742610544935803272678885252757452991051139689653637425399874968864745283301852423574630254388246775046909192242610918698870096754628280523239587118162189646679244403156791794235893210820940029259236653329593229055939957689305282071362422722879370244098030818722895549653288558346698469672391210173584536778255725278054124673631425065503491300213639003521837103551212407959100956556450220653649621984824101092799071615724572581847689225563447869340649717472041574919284047427384670666205926354138902114683697764570687592875634907524914817668887459029566713311936653405581219063147228122934419392360357698205504721523027829898806349097778539322148728793518762033678840183807451741638832970682265673859715434583123326492195512810857229512148263000056422579140422235983395317443127585833113736497587412536971163295610737181090002305620016915106922520470905485409940760422002126317691229520364115437604355781362054945493508978755330391348168221953729458050446500238705879718540055402328990166571161136955705713091666486692217726832083500044133317391600963289221008137293582011497403447408828632088301420371024937787389342950288845138715909704975491343951427998065818747247983681695697217243397233159504826313698240242348086504602626287005703602390848968670020336347819338461418793578228621256443201051829100014308329551839748418301078046714810050063784937168430004417942986735579511844787211396594154228016114090263085324872394793611654079762480443814015157270950388826535470596960077811385492452018647820565057773203346157631412696015048854952318233113696611585940504870820671182729146355809356976666695137941910219905022444076811768977474384561853166221368355312852456067233733349971174895958155509410868756495723661824210655919105240685390575739504901688958019637887607895200640278189796076847894778469463095478109395512788666944350407983774651852743690177579320622256757386315948661571012444707126902209898248073296714738555157105693742776786475706278205776679013539284175111225677771384263308253394126192790220694857564802847946371703788214959540977540391553411110778495475716275853672861807681980433161726766966362998752786123079047268320100151451874692989476504497226068214329557557245182324757772654556555087158251326022419386011495338216554945702110103469796776927896113706227840284582170782235556987719370445391707208049111464695781501989273518973355903972124580709216879168815145443797484118052496612509920918945952782257150502038415228049286667305177617491613677313719072069671280395318081198681759827335461019015596491202057300539093879819361881734947353632781605547373345203132121506260639876544046952398300173891412139926190331683425062732567234554745921754418926761848435117116032035172192559146679795565646599583308786461423038509065058190929907852404177797961741434817254483286103603578842899313452899750438182126265851801022351788732380522230463641938131769227716264141041671664271302019234669884123633453240275166533413433079567683253006712802288232729341805114234261538829056607795356520164942798150725781726505547363168958104998693072333495034226924520462106919132732404563553833715973944790096279711647736012787257970429760111184564358548005896159561569192478261487193411801821133789406317816855429509614652359978705699863812314710665400841598244418537444950597476817346001825876735595260332037450472637020660311679218926122759216511268560291092842249142120513016234096154444195382116564542410763761579974319365049490511791530353190643940073499423642236117905381019278802448442227001988913176167479117127836948845554092105517860382847061499913364753634505995442393457960916056333058294201898219339463251140047887242145955089313442375209302081748694962665830627809118752849085789453310532780926879888258414192994440757963812393935525938573795653958674876627968718066891068566716900342529753716373601671386223821745072037436847515761828543993458774832680686416421554610207975265635641624863483440402140383596564391628743464270185256682264578259772666045874150636796177578447349141337803881816022547005620163592000888161230854229177816216689921895772843878668307489009162749362459473220909322319480387857739777372103358295027270202615115347563108075934684447506547137689512086492233456897220173479506114083434751774458074888249181305520677510988639235982140659357818573948359117593002164301302244429415486437855011669346612420221797121774466412010422843322552937772138862341928742758676194034868992530894590160276850645016606727744512485272259430495344251112097664368487951247034017545732219313953747712259343533222907109365603142890255936204904992129602498253702849441288533171158480646998444423589913144008600515838846150572283733043181744656690522442993132099810828078543656051248861570026326248929934829982443850936152155621722189935711354539813676789452466650027388122126729923206349126986149539966873679886372543507428885278759228653460812997188300267980835385779052830068538694768751251090894972308577892092839322171877429874175774932498597141403337520489189022103873680280696127766621101096213667416951841064661826303786675911837130488131834986775428279712622098268499926024268681534483578380643105124391581894215219395154972817317935611704151117143211278311041566587569145458078845346693530410349495081507220197473946630924533169631409629134537586296822578529093173808493355753952096157642116282106918438368751969464493086820456557405726422607278198271250783430420951071195295745511683951165257757123515827132036584363817172409375628413578504206866458675881356947055135835213230380415088981549021615434541196283280995136451418809489211108429744742110320981640691076521205983134479607660200433598760864353791220429258085533410451442737588273409421294953527675235932963022729837138443359590114899193574372961370743380573399960085744245734758025915362701928330042126232878722488772641909389090911552980005116680794573142533462095641319030045489672652342943895282988165886079807108073598126785653258120865222235290324460244502035016409550435323938392167311565362990076785856345677303995958587858740459039987873383863711102862645534188883249961400795373474898538321849830074169412804963988007986839978990761578243329134611438519825020905630052154533025701452243025699228636589645184347800449292136473154705738361621454320833022591691979144286970667208216753557891005926883906544648686993561269305567892794367841279415108953952826050662562013993998956552414202898344779222216147000544859266685590036434024327811570583957627551130004507127704002184175446809651308280392776085043254273780314963393372315194587841534207314625749680221312649398087340908321371837546193780170547568493414854983692698670992878109937712465768372110465638918722632925397514927049358272318608839911491273479609446638700928754350530814772536371142860818079965532310222654790107866541253831474533598737226084581220778242779558806427919007979559236717598212878375581929168558442081040966576829219903972345232234290888371050346252525417435870484648744567758840560212217989013946666021221245860318885478509255539914424761743921184555386746911963509833826229881997030138194743739724431801787047115185254431801197476253853468876593870265574067664188963991805606068641368255328609806931513593026249052867575942310931494013707836652957462226716395924475413325753948140789686906815885422657441745030117607622175060038255815383262877483868492370977751877042376066652019347530616814408013959928190971498741622609027748887192080902779224615602919702761803552433541793248898375500076362995709484356967432536254210343733208159030078871806459976088338052504987344117383065983569403653900500794277324938492758927433693218205022019926168184285023469495309627784529280699164802497315039638661871101890297291962637575118106108491073574678742814720198403465931901977010069902832591840629434982155879218999235391743142882056343042033019364867980082270262807778425744872278460592341228092987280359784033220341452991231030669921721726404014264511952290612299889144522388127800155841129089507537525941842611088684093001045147980272556369981191864650431440204667116383861291173211003477472500939370960277366123372065413422388387070147635666453521212984803029088910619130065426665490575214900133500948443048192441286843855179070891845717923551109570925430635495720308416736258759740905885303819624034589470211709543491344976478176514133584536711550896797420456598445261340216174409646333302015330313666281008054668051126250100404075066374651801629040121533301495216396766526583855093480685379455401875704430239901866407963263603993593522300663611766805565714626118766492173616974319550264938785764646042812187865476442808196816547974897402343785711996354157452279477207662535047158135415992747854573996507618941430389277028227635605707665891830324992645561880490771783740890801109728282394771689368278674684257806343779945448221255473966768979024505096373641448743159073456910766882249977561094217633991925043629186607476845390061940765956820872234366000307863228673656676057445899104700754153456931209903134288065839352479083202165926633593209127058881311929611604303752267875045602906239433362490155049851792935637012248384799932479128509504764886565388255311758274996913313351510248802198283351650260568542016167702604954470006587584617281430751569344686350317205385161751884547451428303798402029164483942512388900571356438642291660249569033191149494916061190730309464268965917315970656182726216848650370163288963423353907652928832571967265792262444164295260208373606577796992172571483997591764552932106785996948115773492679854276839405109283661303047032009715118363364265352999060934663214406766371997690146416178903550853034922314768056084601742255032508256458853706637235504893857715500262238035357303197142685089150225463651240519698822781442464068919477655749503044080696851959091039815043231472324346168195205299894935104955161155574459857705124809673240391964147719444755282217255478606766979155961535649067062642087134223811341401016793369636211072141200958266279235094854309741222688011009663917522506060637419894040495167749893095499489301814280136371686087830813539338181332352326333008294665311629694246457117825784924641642953187165296173978433249482015335622469463918229043182097305913061451363485752335050902981584493191474757984394642162820567031802496798822968746452834352021445050314556587657674491943754055238538952164582705433051156708118453073420333966959538281820819943612986780569646921464236754756842093829698910159471749594768543859363748089272006533013609244179111726212047582241882609635871520891498825741889328890245077923502235083563023667323508406228336608798687389629323844054421520325248110861424410026971338473886631647581227707632307849900266237300463372756049347858634387554108743100858186521090615949352673725015676978110172514266663726613864444850638015757430451791901351488541671217866249857256244000779653610814993308241125441071853116163360497622364285324196438671062525975195695294734858616803637209446174475807767119419512628481244592754051979338934585324206503443210713830125087395762974497435084861505863630565122829360895152969786023575183789887662525929976654556698124703256010318673294957081331441960406255360815388868504532809782452326425574649438630992372164251329837885488420086308135245021273174859296893971966529283684520263510723726890787955014612349273874801970270072446353470572890745789598516211490329853750394243553824631582494849274770398436168338886467849971725896554788535667708872478337278122710057259848862821081690873875861515247287514028139214151364005543022351698645787253364385888650998028628344255104292096683742266474469867220111851662259721650939112886085240933573055967807408203408340790138043503688755717516920112102244280089598221526476715781125917889066818692381203411701001408263980597251032232173934046332315882339429963582516985715130589361975948440675147365377757441116796498624890745327746499140498504258849210116739168903451592990578210830022123839885113622165977377281956904492811676324524973185041266324738944655689985499303869221197587658064003766038258633726363580099684967959920092624754497777876020233415714701910018746692534335803938566940586755481034329712291077553323621513966733888501689676399491419356644389366923290607716980155214380105650387068646244449189778625262219109858668531846245330030437496951600169489355098956398130422684203696152062667638283320694043820735880266635807165765402316805770509905047677983284464662377287651549443124488997608497667958147492825606755076340708964747833278610163894316882205112236904644441280884780597899127224251544901642532139836404981721818845393874722856439578171465134680208092999445641111957855220123019890458540091653704978754928877028948452583024203638074732592945543551864445193967398486950601130334991118743587992230164491179380502315675805065981148806191786675024626128569094235455348869527256439898735737165792013717444673697957191838347487293590148798590087262257387414497138900006732575844341886099908088614113656534596358962855338403050139202221284144419600967938855292343957133552310031704660046907831066403135618644244056866193743626972339609414362602502572310719308003432997632846196004731018740002531108055322705452395657127086040622340625108133808245794755607343097173475459697252103145866671876217484064316250722606110567420213556046969227044980742773212300144814737767571293016161034170853189419362206700067213095095510375952969314820305042715756332239222080661425499677901217504903744009837995612326403899629315515622024787339952483508778537488753095707560984202917927453929817989521733866580390898425087503915688156927811033018721795005667570207902078287958889248482175166917960111820267347200210115715486936323255552562136940432153896979533070220973512924739731463370888917795773515258335712014681907602438249482126044466314152439215368137702457437087089763157177084058880685549440516540272365755410246965855010787220673285407236012011327490403183832915585686131603653463759734529056871924997085126528035822742732453499758349264367598897216946193071671597052256767552533043079538749661788867049502495561008385351406729534231743503497009540354923166731735569270813463228868817596176168251606648792364346671562235900955263735291455723178060764658704965390322923950502647772971738279537404291413419879069142333068450977589491729351899836272899670564094911892706868055586668495491481257095401632646453855865439217977001180803967826568492566542456792873161980737966454749537224145981025164086339830295885797750978725765719591497406654921546557637961856776823992400305329668830234632065547169519974001581205652773229740367315031190593122473904807971151042076449751005353611172905054723160469386039311736238299457945403946048275849719456006309706007408997120376043709393212935989509706288317878123786744167808103173842801366106541314548311906969730776628678273255131284175913635190238210374030830891570931465209517415735968474024154326695305887363144248077130875857832261439403096896623483767730956109521407687459009939863836445625115521646929738832531286877361507814151629231481470370018410462427210386590206160302524450288297726245503388642913061159048795529934241973391922378270794395286119126217072517088358909935374613273775743411882337878733589816388801934337799606603385489417499091071826626433460618752630438504524535994268971850785927873940900104979927286352285013125876350922151888786533382892637773908433772013161511000392749209401308732303919474816011109421633065148270589404435671459012150698526081909209972028520733761457081908162621194872858946965322011535778247803221800218315959908252591673875139677261488219450356235176656379112052943192566360329168227297220706104290677947769360295486811990906287374809503818420095027341060414455410343350799551630157473849215763864633802398062496736029399660489929273295616944430886511699610275701093614033513504069461769579319880507483317991774375063759561477903547604556302872972324601238735296413575770557757496088928083088402232676493697879241641287424955458391520484438078912676569605038952832568677454223526760848661547445067177281431850367455048517703838033710619500227042269411858666154476618736897494324269922055172938605719017956510751620625200875553317224249948711765553391228607158769537627493529595880702204065663140833875573959743893882700859238041133687152361944686441763361677012224550365040364806521184725505503420742611021846690081505867671338935825321260299086353860680041630074049564746250914158750222071443384945296758199557343870881776686197240518601239646832962255419330498331325818095784097372880745135278520477058686857744489369527102277165780526835894211446704130224845727600720112925610027348011068727037092325396743853548518396188281493642781021724379654844021671502275208441812284834360500835333067029184077959256557204665210493867652288908810075808129389178607017648126592723336786382371516476074185165950862260223743809409912715393736545177690668680737353937644624274188263058517133997424430331029407694156402023913018465407942901919884751808305190972685782663847708887213580864714788193578932618693331531334751848554818832546876511549488843190689108842783151614733210980734126510996215460769225827943999894526537650459850223802233371987619089426258569323483649133042979833769473177604790863209516526952713083641062030206543910189894593141859987272101766906697552697647854330450462615846816752497111246788128504911226139197304188865766822702485227368706679215477229877024009877411432959986857721447613933934880254825627536171344758506356946888690561107886409988546563270043520550203507764657432729740622268158021645476547253837174614668870380007959272056420945213780070697275323754984374442848177723672522932063554300706301080025238093261179116298852576818900503901833748738013685656494903454472957178558741830433256615048291598802570893327014771307321843586736791866503835492176714134390683758107025366929130809630656204794054513899765126575333565515555101855975546921199831853194546644469667288003082977095283847275837774025926922167267947196081229528940940712129279182633312978661515912365454123210205459071284262736328347060600274492825062007310343883241697931107670329940887598657819103023590981355145348864327493912776974646453624934463899544672884207543215285656289848457377623074095934156346048239952827187749033640723095407786938876012848169379702682420949871300557091741505547079425928743563880678743933667552074986497725390646363678316942792997231868061047208374660217342573299478118935680027674594800995749897601489050415873036584439586535236234975626382272125881388523715779214209226320752436498920110468718572854601409798138387737400391103643254290128323855200097368177866112924134940648792927774267357653455827669848145197157527717488676232031410622531506913406801281331261526867354719557671627585498974493250249742352029864502744373537449895343683506276745529963518799161919794441147844018636768612496767887720418842921352680369677337492522731520896168258314239356774856422778744264649528486193344589317721602557391323090980421234361588247109847976582243795414749719159807276223136841706108702571042056323102232086884926050745444234169873641908658803158977208558452623398598778036593645066828871998071922285029529069128907262533685560145323742161815945218413667159135145448765677431511613119970110676911410875134048753848566474944823059727610877291744819265560399003566775481859721007013669950823905347180180075693238056949452655537525292232362393856282243940773119776632458776062432507297603800221012935899528549500341509641726220376615116823397933799169734196944323243187183307286855538993920519929766832145611619497677773376403740683593541776861003835624122094348841318070875050014609086323121113074150813997171095990571522103769586624048137812627442389506091687242374447578272886661130869904271199281651543158180998500916219592052578376220499621304858952736731171697844052361189522591385712335766044710676364321597431001342031722639156319557756445976388277307327333969567835632166763928454598699938707359136222286330964437079021582095388346516809845890480334763601599994595240241072252638442482675828737815470197345183027945535440323555439348302315500265142963974380611533122898447199922298357900549149212845319786989557298394717735124880859744109877949629447451927565595657859213477917292155550873359516211947762666577742461934636590399468344232763659057612223671029797344155607611581808145108173061789699049190211177115347474750805084248812962719274205970087434095588892675996911641526812720984063474737752546221433385950953610327964073630974697017122029664415409812182596853787795092601553631496499699004695168037038194709580235425480569691069209608782591744358613276744620632581466894289013439382415636975969791371015291802030674359047611474445009263754774856536812188196570992814465940168570449395355801271356610144294289128903771734732040435258651814046668215654823019418585117680821015458944185225866841628034828938125654048321949932229764225771570238644074222438455275620216300957114971576209989381372208692962812491634896848378537218880802507841520987944861510288760170818824994616247274915328551106075816692782109594875950159785961789403187669111815047280027802022990038000935885249156795843153219301174134315759964549510976715923964318671924084420103811136127919596669481742105590751975189071331749988386891110014054005107837857180726283168562974825143212302703816707876608259859977649773017163563263994223643179074975940668400564161966048285382141234340949620297359190275013584289893336444622596420531904182694328155303666251252180891490716952723647727099222078261297805237873135599312536971364685004557596948498193537120435576213905954905801507199414625797901284752225248845162412956316171343346972130395743572112923998077874784122394842694942969233566476713527441084931130294731330348470035848392346253322717340017073682236194514325556438690752340012728368771731132173775996049936696196055851057767261482056617253357672110145391134369083915778193890147535499401752839815487913418967869122455762158444767300838155552130282369302874952598279708230825614174911461985257535981201422319357042481392355033805559491325520344092961868559378376949324197993900928525115184882870714216815339547806673898260937168593374374135050282066181006079568026137347017120837949797385668954955254393187291849965275054864600169622919873027494002270991642406269004370513583684061555935735697425102683321623827276536423122492759869812001319374698924680872259160656778356016575943525160163028722124139629119520076541876999178520793098618991305083348359278302146726283607671936939945325834668586385180503565330429380676371377484419002829227466485423802324054657965164629534929042245666315683567526714637729783978913541843802942867054783881406577747811719762457262608043948648649666143826840969865313369894772693160683391220627109939532349980166025006171784178366676590507310791125831285890232475103776803698145158665450112660970941079624524903837409600493564261412656956023208082035041622858239780202425729147364175085504730979719640214838580776026736999610764125057274487919907583564996134232833303387537419766075018775753739892538825128371227724846224720158644550098902088203910955885178572138816456111436427569526317613365104422963933425130831286546919936421731429604520126143716894403225618255182279396184712829623495932869518495916691973682634383187379044808327061424607553662111528602197978479830968058846620526807734715657687215273021795580028216395692538086292034713654372068103985890037652952576499276243529731427385730847878495349020373213222037989731199891350909251477596859936312461937306574004903068136237780503380271847929920098390383714457130522465815388427483695975176837575321653823847328045134723887563299567440944453978338456108745359551432759673931745196230093467643886336008321535154779698028124929989963252764533449303391397762836063762948145150591776181137947960946113941380773675951826709936224081909314171413710296532220597452704857498560365363866404424058548927855154548069747077406331482365300886247512902039047569763039361409580678328039912598249648843809410761937674516818169006721475073996799098960709158198943742022595672196390084115976193976739180154046439160816818275902524694915385275454250347008438962306111262086159757820278167940260008546164628786248705771741060410661221815603990670952762128928976468902483650934814877036431003981294504708347339164562321337784321509365468897273391758101933252824537047607114316444546185467167490747852866538209001203558916379527052301619994210853042830249384932939107923887704635703328043417676480875499693174984290216485440722076873167356549200039666068250402873455863598963868615508931660027147467988836366089820869327046355136462428431854149539423891585937138713963899898385773305642937463459015963882850848621312714981311980907827997951692749397095852814118128210022432840611963845404549905542070257159039273409001692613403651578895972383105883250260043572077728426075274669237385063276686819147003561770952608627258038441630135316569667752891589430453546916055719691250213537663293486907184870499201150174765797415484170231534016451657269077565265643424963798109878379412905574921106904602480628316846631566125088064243437082914553690711015246441842175959687378685252739240448018058786217438037744445741920706978510714723522895664483960982436488669699876487825000445411931998067874971455627360934443392912868571107240214819582361451591777436236558827865009948757297538964026187867499917175452878917842785094378947188154586621398825228778747443824204812009333219505288753108702021931345919932667231804048633703151773120418568802267048075736074181456633321082821150927079333935029882585477928905728722465954201328675473290274155303511827485206825145651355189467799955414062074122480604359905441075519774272128087394077872676513714236045090617887224488849900638057962537417435490269998685357392085468435246052625958857758338725144884725049825134154636946257955937327830397179438474543712517122143754656916525267268638437238627726019030824757867904433675502607382336721651102717325149621399955347928699927745878448307130261235253968274737168263492694403974460504733018421755321703118371776993041651616942157163045954852877566237876171535770163808810073627329885109683478976656905586432190803977127132569042614092106570039320472044685870334603747910672924919265706761474916587906136575695596885720769572548342569076533089030901785186466881428734044811991673680243747674976505291496791881255306696277850091815650291577122148428425719912399251848527612229073698537747663524067221074709881082041716886515837843716043181860349802280758784600834563467748805506342530224987602086715564049745750319358695602640447399461776754763330158535392777124455648378289804302600689826524380687411348567710752276002747721546939809397588200571280399656443920815217782461111665862678929668914281762926123781531433347840961296457654991156056872253146102794342971694379555857639753450705523093561606337358198553053762770606509926035657815088111266014800009062098363342591853729394971997633924547939053975242292813802424695846870495167954679203684784668698998278639643816687988061087735929834510118408995244991899334229124729945524847074510894816577697195204710813551004265606332021672572048922448334139674110943624859872751259215280081950678565071381107962209750080846836778853844394613118148053254391991957105217751099442665657557128173473575298235710861360042328576277582389810783903281934253500068596497962150531348851429784285571898109711255367778812391494050267834742521650602703803610917644258769001532124512241543479478804839621512788432619184094586285060646229816285053136403334379582721441981849895569410460837760521074614881708171274954872076756936683978565188278029904983984600557052759239468392192907420023383650494903708205131569519390183414431824741224292962139302504051712188896435170520892508467331089707404374791491358021904136434889461530294110955896562826583327472004580475105957889850110140305998940262362541954264969484872831399783762121885584259874635756800526783180403856620680258622254308341447458426867576574152565830840986779166301850391387306319676590406104131324627108977675075273599310809868992458715779320859484080857530460385975041694885652860114249584003926918572396487542016190624091788753644301744661989444721891696634655137785675289164814744320748517500287476660475150271859505166835230890742194130626176443970552229349825460978986106889148699222299247113422503459833965116015670242222834557351264443561636542787053438261400276643019139766610045292325283007891542481237563129741017214061294861520135016037353921613112083334107556814397642469942839308615112136228897754841587654005302978311412961733030986556813076914390769615880654149495228902995829050834952725821057538926195211897949295182192585383746245189873612060844389994529325786106594118584236466852975236155481219615730910028785557126413940893293256995693857823480849649067953801861598479555741655425635403203529648161779459245167089107167850702406739702913916641689145637541943473912612171647036394794330362184779356325644431288386890114907996702431306620333515639435533465900483299527272960182692656164609585537537721954157995646836691451391471919354708784950634726871020671815993091482064263781694389558468529758146800833250085358427714599673723619391573844637502046630644922355366246580915085448955550860398408590780618730166460497422494683595647891776384661081285807421476385898095769202835158164644343811277549188945569160746900471233603912606847588789901123443000159744698490812015655377741773109433217853100087928853621870143350649201663925377812993012852348326047409084740290263448685767803150202548904189723806520921644967388954384596767925399405647680218521724181754714177884851719622570873491151531659798683202870777507664731917178746468310638793263022026696728681482629781615439832523716274575410123992869812719830139367218425926617398502903455688796887635659114089577579151079504698613674125711477656599344312643463956969924460286194500579620287664798970693057825774848867518657329324184716248254829558441698882102108168780048997048506987249019224821170303038192108380460566071794328514819901660250693436929877037434846875084635982485059106489731345285938245067627791091167124605775337938413497984089624947001954860156334064562732826219488781471616677009304725697977277872298397050237388613532278765223397781473434085510317162148747823431122650439448501105785426643106465333076986140368133016601775810414857847240278070474508995904031389015006825669944005423835774485875284358898927027421756262865986816984870439778372376107416018079571788591133473033823715736335178705323308744958526347161851135891742409511418348354301560579914170134785668017107260432808788012804151533331510261027437268115016859491229687976665024051255294200575882245936732291670134584160767306691863694882370008464030938467508638619417076524507501099062987432107459814317283844575538373826880532860339789831554473601227713512664457372310527620951769691234953258057744783132499101359663337198543890038956869756147388180156779504538555943783556205044699111077880557232115089540006459051072218378886635449922996048571098971860476979950022429918515078486412040962659929038379738031665033657418831987816244872383637922584629814898408902478213815671983070386089256524065920235946804166070892261777625907325206658760595831662479779794990700959816295981231880503466388340217769117381573584322776918608885181527832807085953402312139874635143965114936578804717409397997331012142307161665797495082778073752434959211057073980179172373723213818111055692365349431189575697185870231212033584413434072753086600822931490630659312152355724688117714116312015533919326629359410026653448559986647866382539633226520758598760481183565675556935469846676372354961947578790100686545063667471188500075685038659470899998002341532123894560380276843746396509803700612410828072883370781676238067058223249700060159800589920220276806531190160215711283953723109757937148588372124056370969170090456102821312700791526070275591323458756222438866067165543266745221737897147243600549664969357505611068031070365365523761836020369261730042131200761046178446953384596432002920569255833259547295310866446801899443169268656667694594930660560974242210229716231433547942693390405256742798934475076793843815984597857850861903036203952927165080608726132168922819981261378085798018171649591648758045145002519181296602248822561944347489380880098947088405002301758110083499758117629218980391757375142179495646853507232602065072264923898234401727142920169703844515015332118734071103959943646398276328039220501950310014722849483796381713518610519075718419117831888806155078787193768557850564991498281039338870190375467486619274176518249181225210541323704172559885897096149572911926262280446324775715000748111663827057657339837968048600486755693023073494254243880419214651308303835051315210207511179850132594310465466944022837756625634896396000288483523167969908639121436423421247010102835412747902584717827582993344204325251145806015929313783638485164823546695289967122695022237738206071782778569491905978114828350230499253587742293616018058986788310544786707788591765436904068716443473385635198679342519685170332336649308491546633137366523290004786071745864115956688422610755302014152295025585720507862595747118587772475603503994545556593096395041590887389909461876690265394666647781993786303734015106888039235217215985651333222001825150558388025583706063136951083310684570589544114799006983368757233410705432399123178119974191305475467661275145155055405349221456483243135049784289031814080917630365042098190412835275732161953632751899544363832490958522024488337776925167707914366331457820431705827370138182497834190712345835088533714134268828219211975521940246831928940583546057571114559849748814782074942573909330141764994537290128788374112671645258946656170407237144399363923518693911077155129831791400573268132787993619041405271767488462221276803755010523579308799358764142473914909848207760326522591281258021956394644011054729097025735951181617543763798403480304093879814551986653442718708821709005128613956089632911277648843859672669107146114343678584969637172678110290707817469781426198918267935215182058164166877046076557832706934090720553921865565061464447001601252455946228319527885778168613444516054879306776432537207275978259224923693251017147400678280023579674480638068314705538319840006070922050313426712267307482666673494647655679115742165567299642828164019719483052091575766348573864720969197325613177366953288026888422662127623463688820083158102228632806668412286243025908531993832985738801095156022226257859152904707287596655641634901185071056905439608325041304809160736478051930677343688332423071047370448066671666069008819983236504309221810665522086164797568608015833760506425905158250478723732752675309649270733188128888911395710971070509893191270899725570408801959486121541691150783236826259945651136893507606932286578595057064593470727871584088306848601908536394337886985586919628234148684736255535348012868757950144197368344761698457949422841847765245335308370090097619498676242022525106068819432617363621162616616869612632589608908371900558224884886675825258456246740315647713992549856189794666856549230274838671448903749421448881795669867273676680967427364495294295467896964392183640428554724328152470498102165904730075857663979716595107429747495252937707691119273888540501842072456119003326373778209287779030748717980812018076316277506715429248101694486524096252276724250386038823331995186032847442646010194878214234855598039272637314322671926044293215891353720116413229147906608694769542141870916438288699935402936587815013273238415533003797599254234329472225560311576373308157811422493162329005216142469838485804439915176845312837693511237241615084900704989423091743717498905277831436721256056755693588877589393112447605107224008283889666462878451464389423168949149777349678659898251195284434148025486443197447087741644846553916927608092019905304244509534649068388276722325885296579399907355324515915692660449707078652192758854082706712428632250480398839030519538214293774934342187060399846063738532764347170731595021634876609456166132056348634522284636707604621760679826955977619272048489316300846372094169459384282238849688095269810190413046605973063806412262812119012903679112681539787627910732802875452300376751603815307681890620147487666995042795884238007485182639057262620627140921900160643530848059785585807394431758463515378811659739992459208081925171223613789380925294112740912645310463874828074541987757987826907571478060911162652485605284206338552833722663279336487183656646018419283224076058932707817069192112315961898445403160062992509995660605046629646809266363284640230708095393078523181266880493168859182163709472278736498012401406264477209501412493711276292698004435425973014404326681277143802842673861944632803732179497288931338474762725106601345043158054930304158346492186721251775516385417952800823615000632232552636271528937934704291962709017949036378544916075802208176193764447835945387485657933454734007573083939160724543899902891476621222346482317167537576177929589225429877620523398159191097238259906931242378025026589066788815987804561755142929145653559613715760408305923290839457704106081378203362980460499759587851416676916007287555427391011696090744057924782924427656550782841021794979118592726440884817521255338188327760286354853107462956386073772561890443430907931067175454949950394327587594485592060766965383143224205487323249104094769473936431994722675604043161017804135949394536216733706152162634121885385217259088174921079261939754971869740539681531857306025921457612918270816869301974574627036357814936022457062280077327484091443342750823024290053832429953533837277720934599427340282084072154919288782694637765742095398211320846383639855101861836473747777812441837945386345902479531877263566276968610083825903335892284867178481652415816070562014348467793726589669229553882374488907480193056968729384463959448863174377061741111679559612489980881616490844356101710200395499595788935152834222104764955530987445624255286590812423653690111582441570835738390734543791775602971689057983192609386067035510890020357957446384297374955070986944094469731797219751675426246210323548880785158193913373748442559199086853933496048899864264295525572312193833312480116357825583866837837244127510949160861011727380687424962517085420103097605054899356006545021242252940648008068020756488606447026054451198020485660889008174887517537450441202816697792445146267694133580295484177904549236399695896125937476595840307013856396810249212278508221462284571529517758832031211706559332559652181936773421972281271301132825058382873506332488289824848407699437367090313468929166911802593383030825999511323765266718601000129195943488760413066099621353566081914469851781352124050951868557714917231404981839972843193473560660478845977674782896512636107948312102572760521554163181005064240392010010691664812148320084184870260974664265010581915268999468597183345905593777488010472188340754334648785900244000010022367984271437753148845181138622301686433582731815796046872855019292362244121449034508615987100737445262309155971965072758971199280934038544232784776781880285996306827647165884864442923647998902136261767376031883923032500020811358879298461774954624892285851451130686235833042342679984091922248706749343524674637323004777627693240730495598965024367440717330743647163730274333551221098202935609536347227622270003503075619838886596512687988813438168275543315338839913123853730369604246659376234806522305383028468196938263988553766141402027573288702293555647653946460220864324452828936974061138255527569704651983001797718715501823734534275923186702401512830711391555106836439678212115205508256179778084072557982990875690855565246807316967461616508764139410895507568942887150563800444015338098434865563095673650257707836438462740508019211158590181651325346245872975335775076906088103490638234841855575008376797800695201737943110012670685755381566563184856338337942068243063963962050324900855693964590303362503057624939488175048675694601236174866503170255228290497746861337135987636469722213424078416290891857040168819012448699984867236372796984105029417379134807719242528748727253071593028514110812487478625313540832384186324970873385320025607750790452126685117144832403104052548745561300345497899827521295184679217482370210841759545051347270696477189458727795369349796918865201247026774419562224798631392446183961591777064710040004904923089464151891403866730856572632073701164601614131969392697624551080262166641557333420518056107545750005075367696897342052769642436520724578880556411550586530029926869112243356071451749376369055509140473632824389844341402540258277671949618848466638407892146871866382600776477335324704037775623504762302544170396451376007839865835719551301280174007100649122216203507918964253206857444620266012712251358956892664682039455834652629200892776354096337805069368990852129849723440605955251492161029272209685789092406678167963271243683847032341115656504096499466619210958310402715978765520795052859911922837316111893754239757073813377829504342047545869329441378334317584369455948296162457148073404216231328587939541571483346651031995641378072902280876538996929014874018534012024454361512130556005031054853812491938812425982535402035950998274679125434225849884603793938602832758033941050618545485053958428742758649497167809422957597861995866358837705164745010033457202661300507811689338273534197133791193882045857696694777643737387385412484488812802387741129839998876784427408511960739437656826756913203326273085682566871296829337271106484243774413364674452588166157047986909855038042003825374284919721047125365293668791785510425649125439866825441267474626691736547194448473166404787764528649584605492605054179011741812828131158412136759822269453963240813894865171505620468513873529419277504996107179232817244741904949888634901040866829375016393513141560150958922982152921367674711491088054149825937682460511615202599894515966160127057331809184389835559705274861840769126848648715882763585947556203690482215316204381368754617942526131922177282260642281916250392830413769447369395843184188521071747872271899409321192592492037288253471308157959582265622391252268504177691658959653061500540193643707446084602856195427863908805041990772300272606905336240276474845479297596231945392236279737886590718714760457509792673817437719008414461872910205034592848748514829320916496083195871800305396422470273620744411918510088888661257494775306291874530541411625803772271099271831114604795003914785481208085038971011737161097943865859085811616552680210860820415046585985016725679332684207876303927889492719643362288822330152703963912628294244621057108229582762530451882201887209929219385340319722490310499912454332838623903173747719171284020886539998053935338239744907505049966834148399161411058277438907301044972781958608058365660103149241933707365630688325196488264890607677547649655165097588277338891037024420999997934615279943674916603109283926081339251241770511416999724442445761672907226480586830124410546219999277370487721078508881783213666321519116858336078371330439075472969343393226748800853078927466239958017155420371934395580077839390205120522903143324826428655977377157294431659665350245248573289263355578054657615038797685223719696604302982489969448884568265030455128177012608318317359850288038582517171879208634510135659281144931664311566314437778876247824020550655973706931924820177929297433512101558995320184843559211535238671557134755680349794820746288420560707554080294688184307844539134847370296291548176090343033526794194736364251947306033005055354974365903080452771088347399883700775934168113206076508325739803738528764808753669773568091171799211033219296975286663308338566443512957488611731136021377335706971911635935827609493288665771310849721152993468553376794982725660828816584005285358636742559690579545737993359025250077188429932143714992419860710766383309833497526064867214513590689372683455491296997231906453634049466689194255800719153492868790399109770168797248006188491754468866799284301873298646242912135736408903339648173601055099135589873685077966505512308166469976670566440457976119394828881535341721268210386860826735183479081831851308914334949560058683215918972793855163546776580193411242816096046766613089037900535153156775156972946416707939145751926574274463256077544041102985375967450850829806922946854772430221015217242786238421392897969454119175249242056290659071350303759260542153369242826520101099875695786744674196789719646909629517608030349314523110472222646715573216646555196266297185267134950972740971883970070565136065581215880901574955932013009961158084751635370108025011042370978747608320080751205915144302973639671549321070390569281610693433946217014670378161220195189918846604875274072704480246063383580853380639975563837605673015003309335926342578842915520568051257180994947103999536143302166985092138916800740571153718098691425469023733005694077890035170684049244012398283263518653211498843649618890599883856804326005670802542327425784557622734906916757151414341509717566781237905333250841492140049790404536502208535699997218708702789048602123947756516104702994354729769593614155711802539497378843484953664748035383354683515106341230978956510226437270255301936717328343467585717140378792349948294841896488092852410723314936279670685754378508894797609740025319676206682480298262206526106746577527586723973077764420718788797297461016064052584813979924037702611274661916914147986836654641005324917776305625597337528883576968382687967133505395218792448385406784853667857950552063937442104028851568042914290745114468692056565236176949120661179817145031201914586146304278729420813789130439079926110437519679898421031207746877452598616783397119244560420847769171353690408206176823059100867829287500085615820264381911327141333041879276273619560037874136918754036688743221178432933294231218681990146674807844250286103120540368997551181249581989962188611680245282370275471319525421045438741582464670678963110205803329438609991535417225072998916519393418849116832939531296649352392094106683360439295162059457479173674631482216295185949014173773501636228584672261472840928854475656924176714209694720751949393849452738342738575412548194502214877748956502745166842848200120924967910874025397887569315072749598577524800936103265007843672338092187236792285527562682283759248681099183772944332499271447146476431924961144798543802676314321967594448308093621467231766376949232515784769019540043857184467027461351947634114131739519898035872210625802861245527480981815089871573598902304695595825935151616565276977126463678713338270382816557442385093066126205148510285224552450175885742166617935562159018164486064838967877404210445539062040334834634943797981016763747757538516366077226480177618153689867443792422309432270467289562464178012269495942677856256182781412392124025130439669278991635411313613524867930192734236751223050029180887828674581641422206199593003894894329083675889847411538203275961128976990876434604931238574482514541208780855166195052173906021001946419165654826993580649484789022432571581841922632726485473229214989322413063801675510308588319253474728068968102702187640905867997736327623895648808208977760290170825470505154340517723529879446331744327378250273779603753312419275149884870925840498499349433482489025875333253417493082581477506683074903877042147340053077482204858707430338584737009234188138383170354839093951201823670403455724648325163289702533342384170703964020846207708977775731975941041254459937792116260345192414732188303134892294504968586076224701962107898598150457486972930967815033988715001608845874531960591022826279312829342117479625976407691711171839239966845887047765184379915001397351533587638247884374636677395180050155142934788805199770846203674526133247825114911089932001923634674877744164157327247891533114067048209191762511742452818298323695164409299922690126219510208405484352754522047718982615592208148619093746828118016221307300455273357483106883404628528467100046308973443948233151999049109177292281075578384991063997364772607481531001345796412041740995324388589083826007361187861430150491089835174551550824148964764498682543129371374712955509830903388725253424604224842631782515777523475633405972042410435116033887912141564489763873650971664638692766536635787956180623131936864568567119751886757669786099524013981327734036789431652061980293307566753505506791365481119108848604430639603755428718741588769671194032263040193413172117795279731226472459275597358145048040820984728791456515248735314808079472006499977056286285487449774157162373584138083850596438822112517111482851340113306311778224379505010294629407745822595316863459938629186905195580448508675006080748862413138496568194366921749542038620266719422707622316089307024174226566445193461389546255592990508668858057954128809875449785653705087723165057710322640779958177332950056837289305110799661834210898670249073578641532023925921005970846261816587072516225369860674396588996859466450836465187303006935558085659769124425491528034091984809296739564801662906849073259167772029021516331918573590085058717360594154916160644710252559115490397383885066838610588052494161032937634753251928029447589851916395598217918629199556548524772765562043918729020206131408938192226575320166493697296197085267487739123877664362084790850567366120127943774898545720301597041762937315307094044292013158027833333038674488184729736808290062767925010742190111732490562153254148186280495011542174226770486439191307021331447839851635571789158965009850251120449432279879803516912384028340979573898381128322347884031636352055862647692089389314892304078501247119361511588627279611768327208039351015425236137497609001155807561294923536160762472963204929461576412734618753796502039027719202590622938829766854871123168639094344236656199607197510467955320706292546547938026241481019417667679618256559660568185246887792216488024170562545600164021336759161443158293172895409891904578338932552794446104172319971632888209988547516075615235845807552885903474958171269790414847611331213005749661115453461141185088126315717912937898420170579419511444034748020260490612475065617128290763644767961567821288803117399297520618525153227482983249502937415110305722016248976178773569150346506380522209941312789637468590419915113436378485393885350802756924885364472944853448179817893294235349767781720437173066692634376773668563822024214118738512391002655898055936004492485903733015129498214477263800967426218501834026126491584274193008967788336309323073920613045606264448564780378310148754062866810607981203860142884693171391726577490899433402786897715730068077983943374199777310441577986975500115096945891506252924561154181349030839494593389468391668323158003719327379704691490528357651732641417833319622764848959534738467949897371837451018812173156975309711824456336827974732403158681594061412257573406400544239845514090370541315247175501010138090943167071063049703798592919108604186926409542339634063031581378814152999732493028885849030404516663203569990993839041979335183340610492323454042064778252614315790555427827584940179873777191642722661609801330234111241706443465232281332090063193785270688033592230758671232284370554264108340943759948641739265433007400875694544073973661932437236137563653080368233299054611598426502791243324290245601794076831577266314509651060166202574250023658360997260318929349568522014229072967662525123398584985033144862883567691906938378408412426134785858874360090580488783160939022183568210165542581532989920470002852665282684203556100126205184307054190601769245661029969263023218163570922539808734282974904386048723695974708023615137366341459753764201463311599638243933823507513670151405288940793864689207614434683761673278711135970502182978658600256511970245290328299644671575514399784488288726883767700155791491689406912251562409841261688789322085121980341089547896860133126271628864521584629736139164705242989166692285343973458088137496326693163934688539325960221687580069855122588528484541567475648745474881865279072410438288523056305275533060461684750135546105228266905923084650878976672735423941768088594448401880762749084993926465666865065963665582780934455067717170653576684340417345435544806743234345360524197933686275691299882368091790250111612120869143819833364213421611614120384717339550407900128837778597912872334121038402526820922664468036811963412454905151168157810252189203596818535084084147634162070299128510435693526326827641785159249318589830366666791786311542852618398320168245441814042512960876784703666948233527597637326494467358962714221334619072274350947392028669174120980278463747559931917981257707834284250934999161857930844303139933412008357153677514949177300904951972523761183860767363332881298759155594032216001324926684827528873913415031370752593236459965318077720006411081189111401416694537353447078870632761518317596392214524486782055734585292386232946104445315394645423306631854451396694718349808730133483847740497689089980291187902913289251150590659410751361963835158169594157764817902144786347436120778167567173710660514900107201791995164779090090039619043977384816381339455440486867975850425145817726656411032135171717357247106678714500343597794360417077289385465854148647807948059581813026207954420832289717414811471465445476578355457503645703297300635148527556348154058911560514290053538753399908638842417580109731955410072718070148734507240950882274430277209950554323940675394641719999301862167167290429592004425340963068633014530578327850174972885574906872636878824504971389752443355954245337914951138721219464201223803071147731237270292684178305154091708577292764328460779314343121994940826489246284591684038254364936645394314582574667623713128476513959380571768685360116332132241015993335910906506392055235498979592734716508310805088086593368010554471148643342467212736280487365553864032097263513249011747583140960614732891124688190234823930714709442409913610147761704077584396714505385502343765905541880725060902087540670558892501085217350888144745831444258717668926099723268209914953014796497183869330763073501027051158565827735979150793140901449552808122371385945601680921631964909422697931580508167257866097280992969999882877675554789135502908676015484724926663144877459879356588892802156564590085462964504128417147002095323817800467376543018443110103139735285583068386368428233084563086365683522162393472112723892043714941966845070443461081063159630315949867131313541543049111118437270569027836275185344529524826450622307383259447384665792237329810630860614927896576166901263599687888437614876983676270612520310067274956655236797537548890045233850006455455122740849968268730255499275069237945196666057990475359304422962149545579398466404619770294384567882933526048437402138400095741661620153263513132181616449766698100811418087699556046710633086782708012281183118897875487825678164726640029620173074323814066665007937564894991536014440660243735331799025761511756213641066971636336998259024097670630668098783254536408972807446239610146711434971352850638962088300371356879734101208461840525810574156681737357931859502362058067698757245360438464112006162629746667002912741290210353730662720242380227493366465805395823349113342939788078819903252760248475826944054381545897674181351586720741671181175757591129889855894702402878444571726670781922580074953369398258133341042008519589415800814344765661653458366707083742942930421372523127125748984116791523073400698154935390802278647612055224731725514978925481000134957434530917092046496780936687364369544270568010130794978353860608541767779441637488063156972538937123270748448750718108044486918261623361241995410237598324813017408149146709662869532573547810830390030937969033103379021462050849180048908180514454161828344659453726871283049530053029897877619168279573145834197817027005140502276485366383817520455608274001712637574179970255768576097165864671871299433182976455268360358901470394106259640292455275440779556482993052308831234336183697485907958706235408721564529920616761023565204715390296065353264316218246469837581980921436548422083176817671365581103309344567292374373237517805610233295488319807981794460417480689548455966216081577016798432981813421765812277260869184606702261630540711391903517054474479040412647492117670053025518443108114697556927818443059814425760758816745909063415138566141726445226316483818246680048824070328197547115599103272856421131673023729788144250408471431155458913058128050064669311607021035826925023781011191305964367198450496753002738267446518317341526805155114750617755014151920514201804658419308479370786983515603641552941363509301982877503144406857224959681715002470914006940783195993520162823679255343994249811634803775726271730288813206781123792255424858301205476483144697810558062315827386245142650174799965759611591123682225738370966321960268940401887545282042431957155893481567086932456423835190837683336718629161085417137477487815078344542675389368350398054363704383648449209375948288355699774750585686009513245037590805634364147192087869142651301840773224334518373847480371132865966287940614423890106878285721709351731989179910630239372919072461237417939217171382021381777870405683171226424242166143149576200462199822233715676535346684658909256643655092548839184429287265281734088308262589831054815075024309407729824042908202709256929952763514890412519146984535725674075462467055754537319900690847886539655997825010185695050311913910984479271379575659593254488475230389743523295993795262299614446369449456902249187674720264030406293441076440173611516526909254733622483588089119377552272307402717565342964691913015329632434639225394302814369983517988646208171680037828647875661016342497838459159754106972788213379522851577107269713820200044307617869050364260768650131922896746868148103548642647008507984975781687487663350921988123203631312194458911119431759796099966900130278163064304854752263247997713632558595001244780211067559070971034669120842593799402799764215539844565034226305408223964329062103844276529669401044597213817004838225060743675386443447220909164560748207484129452169428703786531992104729840785481831721318527568590912651744429981337899994088298017242795806734940532641366243773701052715690023314896160946455760007824804070336594503824989222377403199420427091262657214495761664145275578326930318924908504189155867144332019671700668169930251875585624625718056785037571461520467295928501421220072579931136193590650486159052413607859004609188796794330090157467308418778693217706144357446838460253206246560271202600311651971045560281471286320289246102866916229170402808106952309864834460143492732766183766401817776964442512466688147114139309289168990554467971973483582091812698442555989075496105869662259077273406128074769365861131490758713584157008532179264250203992587817510264833982057919271755550617283608087907711717848321235508022681458091858566654380079606785317816866168288085658383365738089920316469242228452576008986769256671295013533062938825458178584591152866611470383858919478638192591111971503975361124070283673779355486176539591526907166692386019877031399679877414070143999757827713471960040049057409468061442824851344035486276679862377096142650669197378818092862935051131977682140465643473250083983046111346154538177736097483646871820975008317508434084474974005392916693081671125346275174313121287094538254673550789789429615876467494809480630665040617941713301587161882480604542949665699891862510705535629372780042683481039218823217232601717249724200085934395858235812729059530483816277576518486062309740648956267743836520623950914055490207401932340823983327519448366010247857547051141956212295761996685886950717800340703270849751179980631132464402217814814131757530734226740103345204206859023728074753581029355449116380215817013246439765514130463803215928157633524586496682731519013005021672585525900748743805785882362230925038473047827080956479965473540683780548482163868381530265918423610224124847582011450605887956898535535206260271309724345612891274724759649021916927027986966579337096464922018363710584297099466536095062684549176380048837348509386285528610003702858771361664667982300762342735869660992210591524908498157642365587236645810411987615279467393356799509004917462482575031889333293815765556280578455396654119709704944287075128872457939878123803053554532360220580305191252459442425125296685914367283021835620660103952195425185129817439459483690803858720686259271136293285265741562001039920083220573153857723176885333062549440290964476520339788946648331383514851443159825935714045060855622521731670089951348857719584589742265035060118570065479530135055862885220050758720447489860091672539864404726152911664012427631281787132387537272372650341304983691595658821575200492391785315341996645333007388959868253648174564530169555986836921837996803310113636949181742779141499604919596885311060415582835105850793210407682282657032976757220650187377905166476089819077168833975533765785009979553583260814869562884295989100999979150312122768776192294612162611284646182423706886507872976847723316884642634386243605558831985531032527011937689468755650030366049085482635042124260377808574315465070036876476518084106204129403681739181325808928157392159935134394821337621916169582166751496465442475422400782731072759920228737343042362717826244441148684386777481173273307752431215992173202201380705912298283516264772637010123423441375042210071619969772090570223514060605140437345267374948641225411312452836220090998163081376625301756245315589243435667893279909831337396069588757590286229063366034407516336305842166498958583159436251087413082332939347179270998298332266493586674745595596636320231970758436891920122174794254245187740994023970867244366470675744771703574797119376857479548022667935171774051350028517590400143949707700409951532347006063792559677351939964793125797731329891827617218505840684995751035611297560532030163227221384339291873551503859288055283096645186962943933374889414432154166578926797317101920533098121706576880097464385183266685294941772471830662284335554913449137029559745302098505788569634412314145761233606292776795995829199162426869216974979819153990852726903332506058004180761325645878527033683097382380924838390875684529569810026056948960459707480940997630746459775837982202714009813228414656304882800715125309415102637243037557129594853357014133501864746899863636723013118980187445401082679262728296398212168715656510446547593977595814966984632609775056325657547605725272927863372936566388186494762949092021957461844099784925124880868667901403902955847926359148405782689707487754613081134671510417785512722273251411347548042417706750197151363836969816539052589672476401467467631872060012733906773237239690277173415916912517526331723539673573858412660197836271883287943830665740043626157635581557754510961293569057696754181078650972095445608235504701403843464321960600620700826175898069021162159568539082044074836679343694814288038228116189304925286407723983361834805089264151527882235017104418348387359930188703953392985796770258893340714858452977075486402371617935346496426671880779593170926272391887234601930326320858961992494218040363805642167130831778004105675680984926588007428592649170835444756594336629186966037163546323931884554526604255488024806721068340066448442135108773096467726608180131990566968175688853288791061702811008759572595350526926941360433999916706285702292388752374166575734412455922994040104174337274640447037400333411800526292535701968984586567668963233992929060009668789814109180664807800060507727327621681079041498546099404947123963839070688527155915513834072953840678136640029426939979634172226485935262750346759424184904088569766443749225751096004589271536192318833896356869771765745954531874818650252503277114662741731394544437539867262912728202422357699230663023833844812763306340617182608772274020978922000655508475417275485541966359468181155573790548139492602592217799556456653888868420749995635894611332628849326227870511398296783665788390194850402647820427823076626326559633325665443424464401663057669388894741901741159416469726088218185119663997053309806129159346769015093925550531653277929343453807681479521798825513882331996969936821722210921076958092526291018744782494157263206276865884621593550966996293986924561640655399077539477617031672048859720254162455883513719378851739937708776171631804448961630548266767338490031778280845904413137028511312285959342474529752210284973082658424981616823821917013804075025261269583897407126690950246229887246016890533832597113129260084823146019049718899535130757682214421782130342727756782324700364165066166722892388398226257498262384127306206082554381690322156147225519154163793309015858852566919836426964579046517579722875849228248879303777212202779936272998683721806677557463551925409059288234124395415502665413059571650630479695814602496210594050036013893761903833130707828961652001441162510458515504401699591026489262616596375974071806568874451944616415784270126806754043705116572034048614430248012163555090599861725433515741205245627488475753584193943501060711816846526528377217925378756365500230149840518406891550582657101934726961087952904491668929213735563568690008417690309743795433214962072187350019280094541347883655156050527728341162481785930165819082691322210916617866096516374040657926028353610001333854926796273689471846619905009155548911738725470442282729149113049796834960732770533081662367896655702099127282215958665193230679521481388228780003234346753959503108455222187280309074731413522146062397837519026772178396509761989371300310635915174038585688488205802845443296404572076813263550174983346908003116529696007321900960039763438413809618260995617587042833150909104045743705431505433097078833417089465079406924515146195733497402529710845418251618335847949648334952831655282715453712603064455196961472333750521113499942719790437367968604066215391842901474052501649398600211369241297243322012457220160715125777600796443983291461689934654897291778986067633982906402955246364142649044493881866059542136022455195621765187773907308971299147019519768126242692462477530724868881525525723803530074641379536598498365909558024938382606720735839871164264712458953162568308254052677130027322273254166394757801137775080676926710694362699051725345081732489405055381031848505725602424747572165549262654557919862327182442144631855286569810274133424544663833319954956194983336824033508821989026555231050699961686531356774489302114067394176383388786302431839764266667872691400321752026657823789518361836349773330254788606904749442794176716563563711870738228761948798690831326846264274789801296229996940745788228814343921506776574258977549903180251766403851970469001653416783748350624417425120780631157633381513148179965759730555216104560240240190823149703638664703558603933181690314923195825172709543151927536608353309615740595025138452231646892680993442634320905695834030281572866490750266309341449278869200409137986112487757851995455389873795078646181845808120325332255719259381857058095270753540188481968262883871730914384027543210085685256700727862623217656188572020033998150023746566194335617296357753530348066839097532611216231318391390391694314388940267673977786837900121028204996498045270682866588704512469531310779142088961342586708300765005656269775966737642958960997934569189916323394739625367477840381682030141110283681078391257234874486343565699798476619972175469560061087083550548492801365852840867178978682540266029561976207980345753231435001439393606680277507234814193057476648644371268596559860466668777002487465502662214281025988894399734546786527727671477030839774915468821838473237670618281919882790787506875792754539212944777013721833842926231937519172005957412667019600493070113158866296506086332442906933462230856242163129021399517274779828443314378796093824541828315186276835888367694421770448037961605474490376833062329915988135998605223047266497962518938689393163576816991365747143907420393526208029453393501145845338916965398490442489696391265000326674642999075801954604261806164886824249757426562842782267658245617526523887279790707555854404542906602440748956740866387543624010110478207750877211198377622539719356192950390641079433629968260176932873842341330313986768658629624075194112857145317443334062327916496677366226569145968353517941754105723116322912395055930790704841454657773108171481952241081036971604719708512984249749301357112822747765181403201367333847476489234183373328432929020942646626232621875222718719591773930709776259587191916720652623886893911624337451832819259803039443179118961728643044699082710643024889560228841186931943596625035687846044971745571986903621733082265644558709861415880782079193799759603818205280532403789525400171524207803703458741009314918811569226808561957029864451524875842672952162942474497887893375256131168465616844946871092850791239823655675971161210819477886685255004395096311167759587313480993881415143908533386344591505367448151376565276732825461459892783474784013539308939470381207596130254945574212505061645845113814158675196346109370458678050124826139846422162042820253061592444870460624488221378616626185641916855692004151688822821992298173395125180459525532877891217428758355189881604296051989034038783692657357105856629025989811234549160900621947761234949418965389994334468441230711424475707176797261415417315891817530236227511510996968566081925583831006088869938273323314883501527481540017583908079260600836537252260417633604282093314119022161782717344110920811626039180466450551469020910102534473185019303902216699159763451048637581215505972117119377459782093224456512815261331712456704829007096963099080483393443610808337822474233796694962953028855738349061546575653134846814029624235358491442176971640849261883918717127502169653471358056448164826610898125924049467896988288525672293345768259453964081674631795468115820822240096065278838785107819182837532736369313713469036905989623643173305775627579457898653334546455725529511487558708060332860022378290808346612036833506361859685523769036169389381567231662962018131463585731864192226509505977070260978758030511969023168376904037121795282226919490735111442845538272517422726673148425581534131142992436812904852239783796122447303097098029884082874603656945505693154174050450247267319276532798058103054901266573433119729252315270827154459474804829756767956569786533318558095804841854157120297092189384823277262203285091531648766065492226162659956406541997240690899653628436506058258635358521294044125340756565819362799988401645445724738205436910038282206748236539414525843719949863697300439970000410841863197832048038713334490992141176191995678333858933246807432045861549497594528907407636052456683820725932512241516715853425717334595427756045964213525300917511057910324547757117381391785501539818476105596883993079397557520372029273761738054137421135643172676520917094418005582643269612880053704673124508341911109685867073637764814192162426722435866545217622517092277482586081285419988067142342141662810735503563624966543426852449388730060903647071644825685997746363501286681719278728097382133120336167511820750013014818916900273365094667050018102517678218911588015438877006613106171644581567360626917518923958091219073856414716140125133569574995446184881385268577260711261402152384926062031990188232126715917637310608264590757650727633964135802880870560324512662158951715446431721988562316344898940799589253764322803779296145666690397569050314997540345110878360764176801832615495028648752531348142384647824030042493548863406056124982524211386433253591547172811532171246322426324514566889688065639929921166204197656238217680313460088080647153735984020304672599042667883786277122294012975148511912054486521445298641694288600098409568922000106452226577388782043969798366731123900313737391380929371991029579570264874775514303863475444595645566068480163279188338841855593981192109870386375684256657746060643898932575147740804686809369103113648235771544429239955793660591892394728786780907683394920201979996315153244785995693679196331145851868482649566940655887503684009593966785045093766115058087741135198208488090559788088997607888842254764748494561291075932866602789262839423078432637115723798106940939990379049780317154183343065250650492334532672432555870748588549705934934535008644726662572739033760236502105882867520535754419806998562748717149434744762488113040695131015336551608643639758436717444058117939549135393000233271667504337124074402514363096698230844815191678857642971362474596375149646795291449649251445506487246914141738667796557009941635398046686398463322958430480706619630049065678845780934983103971478104693547283901110659070923490401239272741694533372800100978429882846227933081049835919222359592616467290700155925196846907162184341895069206625200142868737052890548723097292780455248500871493323917072112696101674656112156161620092299361569401286871628930497257208638960286210941763433194709598727135318514677750769566540144166582252597097222396634198818434358822390924750357646768896865614534195039542764378161099052803699834717637571645579876149576392683270035693662490985179066486437517161739158395626213940264689935256139036575823628144063324720948040639057169723829718796654721644912464681367126784321052229118206564847357596716834773533031760423266538670017418492717334596088578905621927545867678344600959680593362426250860231710975996747054825242909259381865432547550053998668168647149700235079911438746098098564532557839888326972359926810975137066416700795497510769003601993877346779968996192878916126136036714883807641890049870992216587906883960496387491305274092463311577270880952724417105090786779337860491077177076929161613305257104356915636808255597787895998459024744352543044096877544674565485375088809067585014817034658011788236467721341624644666256002125113499123721579741216483617113415613711749758934826549551500238796839380826110850815924537153388727556796433832798647501087274548060982720626661974310714356405066588631868395374137221231485694952237314119161187979744623220864338679451670234005076189738518554330776191705721650915424782211350467477903995644718372547140268508808068529957161757458733087915405441242319668660146938509162485848365112297602036368898708474847005578480195077366942481441908896520003796553792097687648062456692707969215288528725053666537497637315389211068915076107408052722060717126427380751378304277216527804099187571096401198476526985318689577384211538207988121122026370176126271609628919327663827448185685629784360559111792534982161276391507621133573333560087243343212195991635427143021209868290127240002572948290215196469485465476834548092402281251543379448010184616052859968299039499812177948714598575833468198376439099244560766418525916748098889606629197200395197132349235472106390471190121843704480277063581881665746743507961383824638758027576794065351993569389850576172477461723779872111223992056372091104580000322145930954260402663033754364946472585908662174277914990999899550924746540158722005949881639328358221602352703854286089079944361009772388660555078045735527620451953213073451333672885531249603542169784634038700194151581203781447149681962177111311496660897661692000736532240479389264203236971817975779156962153538572041434560148367121782601212577917515926898201841366826392677013362785161640997358664647686523733329550508776518307419613531474628736283258732383736183542006876630466593122968108547558696854330707434371624795309175595001636428345452368048140103001426302996576664193924483315391484987091078590746762146491575013974521172160014496639283519557566978259179020098633440074266759013087865690976713947502210315992296231344522809302879731671400794552636966844530415899125119445033128186887522346607287733318960688949234498849378483477830356916685867366118980278467196975800237928588090393260447794403885405625657307513142288697955162505508139195752711474023104640331727247171248527951697428657585954938071557511756144703005335421468056985989549753562389584138059343783968327286529349508243151489163449704616345052476172751035607715541383767899942972326795249551820250945873212674144390486810157037786742590123778272238266568814243971763953851540039385945083398916072434858833533741496208724445621198709770660060916195784534227444907821685780661008163213876369219995909260678759404979843235637794225814373049854030092113187797729504521091907271362827855423171253233098971579642221877301194424678319038700167451235791893166802322424225068051957708231707676580368191643804769941530446078581528253893730210326833394466997148439838070179923155460159446916623270109278676899742072423546013129241515356403385267449195966047415595663881655588929124039938811375814954745682076116333899463250298763983395970136774640361469794043564434513445852131090103998452476934258534390585792161162297069874050416395418238782383221983545401970588094893428901856645746767313069497818360484837160765227328875507036349437537714214467406896966986026349723942483617594708132080583862470543595693539715905068100263556259555442424836306001046708506589202204084025877423029334225134982531811027660222630058118715068727347758168898689150336483055575679247074248183437394688418669504601744948617641228397428540807019364053019698743225991213312485397809025026296673825946794881135487932902557582970039510198812454336619628366695420873924793815609321320635136072521197786240879647655532557612474941387018967647870865283177393249925263214329561058806873494920877944360030172453717878987936937767150938197057074323113847207280334627417568407608991078354253917724977837678754081288970673908780557591499969899444503532789486427061480889539953499756293402955017286084416284175483416611160243903266928575154694532258458153929843354012801211302457784445508933123569197026139701524033737852443406929136674102429409745533119195208656828795020381513405669902616674173260800259083151601704572417327562544635505463966278433531190977192372706168661456787695989428587899648482578632858244195565326696782370547444056671941999333691795137729419362311939017466835261286427583208579804490291117281047352085135627489221481465260181031019972043021322423097553421101738954400937002199081576266864994712636607754613480613510798092189302758692793476588768005459831213745704241813650470692220442743942750496511940506057595627363781752958873384939502057041634604954726398618820545789967124537321029410846879306837464705926890194937319893826917801605064562087720790907313139145091567834878008237805529342273363331553884457701098892575785168787733940294114206610753930585551959861230366893843013837722655913921868941063430113695962857813732932167376538373338654340652323493611559856576339360750779020782322613243325935347061663107310496605912247238147974379442698048992498191817600000206773535445288510478275233663506481887743334741785362038657275101467314214908005357803049839133155393088926022361346030858581690286022640492382331045977615194850475535751893825380061652715646041794749459431750896013764336057290286838481969800293636902755632384657535567767112120757513401734107396972119056256652615120593867820583027615456214842288982788807703737016659564208704595223008486986768646046659331065159012825261916447466443579378052337999865304798047789296958954304948411761772738320653218839787528994436755755276878267767258029453125077128101625255158150887848532711077081016328008944172537055523670586183068361812205421874076248324616451862130149415765470960946804102982675719028255934748199056250855942549696213584241351699366052503205736901673484770611222119292478096970363985223889893564099673679817888161806447443651254678237752688891385631123836339875907888952696904486008186187774391216198638667545900795753816563607475259845653801996606655951209791210163342282981796446216262496879630526028306790399730765901557460442647794534459111443077514129653849453814262124148616506861203849030914853481993935325663647158563773410106295849359737099175654822566730110752479784855099155093547327003542225975953266711688063893018911143046258165673865328946888621167360875546885760050215362374376856727500301359858887540642383335301812895935552703106049800583814955470661901154131415934763778877951692428190092081626010519012459916973025677799451774489850038825216965137003552458993759080553344324354444986308264185542292984956273837156066137105473170526061301000240941249216584342958120806638130251977802953605366298966160591976981508885201939989678887184410935129138781937200825452598251690505635864825922424080691368714589966957306956949456134533611865354173161909485668872454419861065911672885128576191623211349995503547675237836394002409560715268730186338128995170922640249322770808449659834345983614109188487878896713624350196487973367848155859100309962719021710467413954696785425610641189944538252569800115292358099144691994584567080108600108741662416701154070191566025280459360118149710952186648167627365289975485622416633425421564542686157030226768156106224592000290230061120346742806817156508237945800108390591447940249897836664668647887225827932569823490054090069350492247067695962292354567111602013314847470879766859827412354960319645681381520879172839055835147819067831526240376502146527580909442109613255912483315474711708224279911556564568623100211524966238206349871857650611127890224102150564091646099780391852578257075420370605895771833955185952898829260637188921408655373708455992400036764226447874031280997763403201518936521522815854314684540463420807760567589602441943901889718586175146953573356671946861175541382017388352164917633252612417593246646406792598598442465472734764412881921597271439922678182775894054528655628752414254246819258168229723829445360894281213541186764872177418989221599996008776005747719521082234712186885946255336694590810671459029726899792752960197793001459725616028872112347700443391941026585644634402853955150847478608438509915530916389658018247173491410506875604106615589364593056944264490917472542418295343310349656024874496042694735398517089326716491767615197804756364913242739192650233250379767192751927387417971941213469146051841109393456344786966967969668563870258950915091429929557956734260706386582176102868657152212878818563285888033718949480633073437481541487262051772154981598931771052863119522547160440748868315728180087156495596643729414801529760389748534648578438453348377198599290707811828652342954604952774065121450217249700297055660458727163623866121867783608158129300532360075745448336305739509967933130984911563562780476939631763049253517309465185456841722432545858723432439409006184711414842042176650118648862166466259711812979570985466830705128695818518305581081705017454271620253604528872166586118899709757815983188214570406936113450273224257792452910363235097653701302734909943429332195735167365008978042877886021676145395114698197554283569312979862681582864236370393335928252444778179812713917297623259356819652315610103297184231598139659097845967029581264945863254275529160567431527709568687367183619771255871336579292185639475517362737957900360421867990508282887874930672651783316678017125691286970295200462439728163814434941403917035886007416913261338253680427379727285397051465944830233161556770303302222930135407726617686789065942130156019580504903145748970340420456037339295655206844986164495063035470578970121281915958931774249733135285217490912171807088620758596729250779421071697865865308216249350708836603830508422393448569705912498481474471856429059675615536014669633413356730864594425852684538701184770110499211266061942295478514954848881495597872080916357279176568057692776566936831064110144766232293698644391881636235917606255141396640461207979794378279204187742806476788507391987737717235830304362954242754620754256547332720249408396643974905788341033510478224819188545944488142652484981159793986244232067451365978802981729842590333077323272558407269946127173310358863639604598441216164109425535004478310288050510858350028294786339134801613474225890611651217010407911333235421279115817530301396761969624978442716423863062971953802329764567394072494126115579709877932050284412973964928347047590756460363490960597613042476215494218944172301326922018641516815867257625481220653272067440314014552946065111991049763008037910265609436877792169143055279525424396535989881754863432237559840358382086936565755801703246009075097487541319294668257196345088276749416773912413674822577627792425161995590417847897519502834148137432048018937320066366951513767823337040567491932513749108033063560842379122559414335585520160451717443807768259515692687560724179279401341579340600223581301571618169231327876547940406585097296840746736317609256282324409349386000492775294660890816030850330838888535143814490732675323404026026709893228894401566039395817024554588847575301280902453070222679229851245280332923868360682896320386136027277092468774293346151985318750602324584889992059515004779443305846586995120147601210694564450366422038518053537954666718448609346911283617208840596967394428749371852440975207573335874090324740431787959036910125261638360990362364834226822209939634869362651329251704938439840699595824698297753639013923420502910262678051622748837804528132367200709491933688719889307792409024978324589357934619135699254248918911389824001983362886468434280651759006375009868545083356670124025296102558431432755850542915426595106274403455117225288025980036035368086713298305857721235040147261995390560336676985423019594282062123628904493969533312372711094897975018619174230084020188141044219089382380740655759643538235645970421252775768795096965812095091328357410688078846810338694025174456814768536048638797390658493064836911730089218597512263455407188189333779332502140536712171588739553458246271371843393772245739877398069378391325969202402933766069633322509400277783387298695747758828786181936367677995867121213937166370294307917005504231094337686072405414993859471130111731635822266930043681922027097826175195309193161686681746092206642179994759818711019627651382484517372379530005717510416954172246560196414751322945206333325012839978014831426749533825182622577030179807102606434831949352196702477357940931436404271704124420289470813814093137916906687907923672945535170604301817461440338876989886510464220150542857281617169298125351958512045347162488049082749358892366126618697939787872904198420016842206042675814992920841229905939535530102261290961311250097985477492163066018423507559016159947909126013849859912724414862210217920419272381910736248567914932466572240704435771675889402268371812512723641121234677808920636290628220520793075463683383855863385144194186866162122430053742581088813759796666043028312713972495591090811677419607953478004894864051278688672701682659987537321743307684564421705147848618615697312569053509075490348145607934834134719703650981902728391429562766214063198208003188673097664614407717517477026147457415638103613058848229742702570346186709179092178054069825566646279158966690105029047166329215338192703160019936329784629450595529182844650613563578780895636427684371057728080871423537089907659642390709271269521635192320920455606066366179063808544692743127969332188883007117579690835036525861972004408130959072780801303065872805590811123285734964448614516054323428122496199292126661999025243124840818475524363209109959878908422714920339302994152426537302732215127592899714008871032848254302007657079541786164893676635591456817447248204831602266263000276566600244161564273562424460990766826406559665379655086061544777225842830821571331261509725592673388498815816434391458032156154851167571398015232365348986443363214708396612453203425537807972656469963227111026075066952988685486016342687701123166052802125592143198513269281796937097439124146500116228335052334155194411216486108682034156549554869820613582926107265383587364683323868416024572609718962155041051593064568216351322480857143243879191993440972029584536473127266010257845988800801737756959287712945310448611787536229815392118083459046234032883564217262092692878302405578718803712389284009579629468935027383538654568668608391928007946727427076484984097310063768158430803019066034262569983727145779515339454285215650140967573119732855901266699387843919784537371409446467943534873681367176241684584642388265223276039539713483410922542322330373930298109117515874674765003041893510101628598360499765741494306203570998247812203293624336234635412738678662101435244087952727858909001690042122834373699181555029327392229890689035960434105376226666064662774760333429417574224829681803607464619630984199310156034376660005685644516817373096153186989281217381170122346303306645346622514344966436475195012833853397263672769000639347717972572868843820157369441556344697722729959192970492549211116797288272767339132806298282706998455470996705654831432857216693299207823761040539709954460521199743762566814790009893174283985272931962348914177948946254610459034700133344265802633778935836196435886007316907356894490617045634291762431386805189305552961404341313841478502636372865250629992569271633281693734617762354473255672417739172969428865528528463653868582054144502574614138306171361075038066737903654362172868145413020972327350339894603049351631533729753113716349892102912789341022879947776306968826362086294508533255334939330133108108155024949799659427460202790189885023837292563448214368168958720222632065422995683075890620042561349141470224374587068796996913106619470297832758471086359905761178805428352802763295192855511667086456924710195857453840158834695308582149109622638789224722193822923645340012093766062715127290224555414639668262756542192408962323274132181714637008906937021005059133680128825276390464386392262745184547918104595652176552052273303712213455142052965975102120555923840697769238764340899725854599237728931755736607467515315853186231516775653953150400400061447812656619241139465192329313363217443478824372405696284186844045428254937607636908929233746210118754835676746592182176628549685047221497189478727920441791550394920450886777456566094018336723540116497588087164361954671284095274389424967750467413322110922539488116599067808886033964674408302201592192150432042907529771869162169831624154999500696700175062560944836716168775117036896647962351790537149084584554371927016734737881937935417724487441685779059566931349284893250476825205714153360459825665990567585480772216810063411103816767711438130380261051665301281312576583317775012464785322142676771198032172512881223807285528034478747839820788974844129954552181122592750084992514793513582697277293953644956071642559896737153598091609811585188163244411005244370929868611445145856418731465854469283470752815812848146851250617692914880647484356594360640343886887045482697859624466178893513092357472692625934847109664182608174035115000704110752314553671103044596201513873659137852904501021445196514830401383412534838433246884015467370553773031998785563719382154593734637997152739757140603153857011610598278762869413886313447296819169291429099358837911990803123048025100820485233254569895905942979178106786186717054041503888092742290123027668264818153436814279068678644111065677149924121870196474806153522586631944144531006931307700913099180003742813241276541642881792294914901377241991912038926213367122574054885357514775214494259904492948881805421085074942136997685682566395921830704057004179539125408617035533636823198648069089610088604711259919889030642645036822501330178659774999255303690485427485612522684579535689857275623751754023218809316759614713294659732593183545752813775121281081373798992189490621901393785671173470099014041748854365709146933183967964628082071788975986002717775320841343752817106368852356771857315040982317367705751814545790926260186738426276323810235037512714048889716064648910200887755889276906095236554580640255440925615862719070889786194764245829626376200379086039641806595429590886470156485781714505401498791337943919015865737444023112632309583439643215882885441835330363034906953916795021367659563916520171290708265466185114580196866808055524354439159022253144938417084664337410077975034268691297582996055535734904989252267548857757868126799788738456638879999027606756790872686033616096690590824893691100167504291806037617174788663800944654572775896769850869446611994084221187947452289161640702692996402799958215916936704098083127537679624302648938543467274141244530171969236187190446624796439122994627494566255120815019752932135504004706449452723602778964799457900249388589771134191663178118889818369532661850380787610019649819660656799785129014564330519136186345259218354660863279476805087297043982118829118139361589071708460218544972809231937837157108506581508524008599512507821822470253529751132378261397857506356775345008652041194488187406165426576869153124871019622617213586860127468624673631956430660508729322722835476293269247157229599897341366165130269587458980215181936172451322901546393914327002806900927323229964043568930685252223601213470969079166483766183865937470477204520863761145762344003526709685797949031429376244342594467675601672247773488088193467097167681184249037319026904012511256819004467760734903008253596736383148847445514920997594394396601239238682904903868307892187091478352981434162380428968780282664821741633059091602217401082090626701075658716017598205073705748455792607691216470590818791726925070075998958967619033656726531318081966588923252038101052344456614411609221995778846200826610192387510991355072682809020203124349175956161323930939289795144789734283855827346679790944093274258477690805592470940935886364779217709711072203132230041593608574583914804547730549462603475029352825235687608415472273932879249256673996556744865934990006306588482826586768983928394879038992569191190930151243908122026911984666240090324868985002187287168435086197520831373616645636225497169964196524695976171965428779339143844629782741121567461217138745079576330369371814363963542155712954458358351663592791701146207260345436223068534796022107255871009607360337882353370683271678974380671335426453391957576502481055510466287581134351755646535627535774062192368160854708224204904944830537691341117799448451583693196507879914422096574309120721482842301996190688291960127638022511752578177063323614693083865856511198123968576061991874292731800035694141469478100166077555298061566358031213935297756849945392960726166057900903258055631525142372086985695187164156639735026803999197756803658304571621657947565493255609927190729926875866974502513856205313671515373585054266141740048856182618982015782516166599679229223481082860111201923703209747157720864028979616658814704500181402443061189995197521039741582532422180494158992633949574433394592159426428846036030390762099614734600961312338653301439402665976584143157894092011041952504573038921523694929961861676740068300982116964433993818246967840688263885008916705281029863702726804510771576050667278901833465913937446304465724738904370939492247975122911421693711283842448845361773097052381696204320815002700246101558132173867771965043414477161690321718067073364342058263459361468024781822522100070418623924253780675629326274555566355682199481876916391490620272051685072658019449025411800787697726116318225188565077770734571664167099646737654391301405273729471799923766904943858105503655767594560690686445600098066268649425168437898093886262113797653620550843983090210899007913803941431295657643486599989141073804690904033549767953912114164444632719197359238396486976745091520106972624884752448683170894400860106387634297460739505059160813933435294650983461392434348478525938385084835780996520684176560066439855577226455078157764278075581525346076289352515490193516054716690288104406473475247773889423688510123164005720860757963302044957337109826444900974943625612810549012801150337052023096011521983646137790770872123812111670872790919570820373574208643015084539389296635078080823666509241321725442245326015201221475056053171860637875519315021274564020238406299739819253902099952863590785049888857796492990972364790921561021124653320116813808123139838781938362870891665362251289953567610009626316585288580042218837173140874097586314342422256864210070530413034575403650482900387601851576246397710964148718946657469980021687326702475830301623484360280840479197614705658081292426806872013515031652452639020519877640291579729337667035906818688605962425144606086715570475733935263583891209640419317208800627586877850048683759987796833367701079979873677094536014627141422299441315686475656473120248726611865941333895642398770646056882292538278330341350397089221452781371284797115536138873368717431032172387884001112215907140716232884206871385996774331078800787730116503894586154239858362600253847892287022780587612246584701034742937818545299494737920597396205213104455674369576095549910346901753312616896121724794659645589983356072154493480820986468798501551984989014953748298649686868510981981319683587549331796424346007146709520000524729182293718480232136719549953439147617974784086224252368256297870687227695426855429643666335624495995980701518090063144582528520799700316932961867339356322179507085164385763551265510615645597821473510396842825514395416410068631640119705879448336032612943188219312087141681503573415517869901794096238141985471827879311304167022315543148664232561884886960001576638762737438087293447019697914674731732394006534201301673787693445998168390131737249918568197972021352824774293275914132157911054855330885251687303577723719479102121055489781012022446235095642210622310549243384203812079075865705731765850471194374371470328469296677249660148918836671220048447797628191957348816872900983049964253118386229395632120296541010676632391337172701338730459787832051406223201524947504806730290082376491111264411490153678119327248062282577329557580041442156396950722059258920928859369232645049404563588770751403521164716955602051261345026699617845435920771786029538282826049300182785882661345089639009357009110343931471016843357910214580178183228007928637504118469629701000663123274123153620707163011832659847797351465939065665451461265417726903731967102729519120717674727775005512443085501613277191456201624860072118072719530843622601658079136392255535802091769162659336692362633426205535583606351550104038486698545366103155227509448749148326740602794054383271462243410087413116451982266306786674958986849650649694154944580822525671003911676382554479235603498925580932298780214603789610339260551751765564586313035555056932530299783100581921853592780646809643330475475609034187776210256302297075622945220418787976913022707957594436818758001884248956632353334852373855316582703318851175641395109584814139638380906789431416951523808997793490497243415332218103196098944880940001378485138317130406466915235739453331406249242804221987543016886828556635459544439697525460325180311197596787250232043403772825606040050192862864812730486909644048906472789185409122301437676125399003229839170534593926001543640866039671253885999838975652719048648821011525596854001196265851731019227508815797394555685283117211324672467344420176784587471087526323925783247546648980624167050109714565273423612670612771683932992231725586832670941213975048094542597366640919482993464462350925342898681271630661809555390425692850653844746380787332058887657971960695060622688126547859028484207182776528438036355199086227130015736911425980393169848676185917517406469283442764342763983777541616682373074792677933274784047895046134731088848131455691250797541929618102208464593343452279228708058336481242565320331607689425204734235945903484832345281167084158292264504638710568615285161446102029866156187510877604878680453064336796241157927319172294815781660433484605617695173524138782656880257820972862411491947961585218312580694363650711979206628398402891390020272432122375551338034281406879176599908632447381839553347279979004685415457227256434320595463097830660497806325733607018897112674765561759214265719094086570413452832106529212700404630949999685721770288815354785323212737419764758614237540992412362065611475132201716944354728786065111161909696320516858333655026856783177458778793996249902263134689203355649556730061203845548568617312791151184134580284242520705985034127337107574302119365004690143514222164254756814659852989319884574560062787524044178061540421953950149292438183761518845874304333411476480970702549866666942028168158724107186280631718153861408531279935045244514522030969982489968497076359476972617720109863402005852235085584350569514794386847786490351319761867251758940561890052393022811177123430159090095088848785569230001719968962274021114616894774151256994698043816844602579583314873602255648205908078737939417355067355039994974926407279539028255280560481990207306724087338144218704458415736846427866360669168153116509950661999312339217350859875005954715070483598380619117381428303754923434213136874618209239435079880885754644031797985557499265939067295659222220371129897649018086278541038813939738578157097571751040611003428515073585641034182360911846641759244029265623923961628350572150086783725749517041660616704860306716434323640650599679361626579261288832084811322766704763348620916939845768953920324429864781113894119271874147183913382616573554060616903199317160128138765869317801111821092095843097309158241981367630586478627770313557859426807469375513597803626785178525483064653838742366205880492943247247071954950283185210695250066233296371802047933204151262864337273031167116808680981143914949800738112031392838158517800220597111889718139661681422389562820530345945420658295384517864201605090942138677705042201738387439191869667284150094737445481801277842189811572299524524628802704226011895233789804924728865855133694528964350902584054605434560282146349018182727250307927126177413086027066638934903574636450494367923691307021039699508764150843223018298182428489907633414423616704562120422984983902578219645069794631255292018615011788589181935719226269009914433906620766151513594016402071492883096031254290289592317426843088970893970714844550038001702147965250002637494359874141160034465596928152978364751983643452158429489967335277629697270651732776223262692121344070060421753650919641168084165583966599689569234979563147155649648113500717967015775161188430584381121164259015604259708618592542077376388413875883452872893080158158887330258311424552531631303881248692429586990509772741700983652787469256949635318918102501334776592133206771106961146434457517048038149584637957008364135363595807682147167128687397363453343646832804318630171514032627732627589442122973753041315516403166573592364024112972014823043675080753659278449520066747545748019448872047298383640062616685041403205738506566558717048596709971734018581166194308921092519082245074416138388023622432726553608577197638508677826724265798227998424871110646587740683146395219917067753726339108185887625825088193578837034114612287044582509833218428229786648964774555157492758930809662241239875927714892433420162921394322693386482723548188513235773423891859470735513770642274155465423050296528352770516479398358853556893022154252292846410897418770423432665142675228803922110311639796147793456700068390570321926498558432374124160211234222638973802837192135494298523051342290702936806843410338113017318321484132119696034991808158874737761137305680810133543021471872110653866278596791685190722192337412718371695297493873138743850114929624214371906597475569573717864738394896012607312848611467317844331469694754385980581550394474820162737834122310667138352266834357038299047054277824198646855816608877298291967207548173428237391116202380291871338234707683908574467160282390071177943626218818113999743148516495377774752505834006331059381697615527890475583539574197945625484121775783654518853978782944327154639832353196216679706787025254896343778557151054588841941060490125555814333283372946304236639668173990596415340298370767944838078768950667190808001281085069734476704869937838631526041687203054945294156128162917443644783900607784351990335595829417213927049245249273769098533214983080761545102965287935297045037327586402854663458721626628238177109814534572043352036129040570513907617330055680813342429499999739012949793697922989991963729679054821247449521337614575741722153234782979587742843772592077098844288514055940028766663611946291149583079964382180461545744882447661684040547265675994376493123326642200494428464815926882490291247929539723720769002835090206421262633515671342071884728962871438332868193368985929218164418679223405797544087550926720825596569625923647537051592423812306278820135172347124383556563731968411100496593674581643614639215096624661276766299830667427059139200837127421146886993363722873207469299116872215155192787580642093902506979198226541618293115375577948154150397442069201829716289167242273297031168650768104178599730327667307345421512201592685275936198569984179920593750964662127046199027769165549524033360660938459536979445191973031940803846387442120577129287157113217602102376626500477087054195226395125648607685486096418268413263036245138868519243120463446734527003475642039212837802032171723303367188480256815988045885604716363588063381735704825486932206084321489375523306435744717300107347080216312686377664389162522132950314893837944927775556459360606542008654294478037527734051311685145972243297146880236435488095551709236267321126127672665189457814944735634169858476563807964922554154197526088126060116381980672091782219834678851736944232921593624232160047429356071621271437567959080963853898740433098093125075739682596759610108018548311401635270867156203141127596818608931387283380886510654469207277561749477917322279891443340085429854231939561185322525687302288805219634856293072216326454073710890176896475308660300724656857949371330088169392998754736887685519746946629384463992113172436042223132564195387600939083008060486594125874726593290571057613438930144453729215443631248068611289602764404291279771541710694678504151581446715841587590129372291862811636548436276574104102377503202508634944795505848192746871805962993686667716844268270224365408203963801671503005018200629845237738992140546810147373580170668423064100072918697549538703525452474375767533805919701686088753430099514046042496959119209540062586614462373900879043885728028690503687712389070421246545223502777496044843238494375008093245466465773378086010647912059381752482358871111140927932409190289374232241679764737410126760511778962696671472118931914802052062114783827092368431306640201560326227187456852149558093237652882710750321316411988329227598058505389442553288754481299685824776496117717128112326228118863648661534108200676738766257252619946996138015065880923083029274027176925939743190840414580886137392658948682338354689022465729934787524614913839564335133488291893619683400739474068095213249894935688239090043974736026725194637489214378450684546511671313345900123756635250706202700995823364575473170438170534972419232717602483502070594083045994997144489227916279810651833385666395230626162419127251543397090239589711285433228796785630621667188783824866383046679004100509559240640178692273189256156986433461483934014617629044902670660859072447732127333083537357203770990956327547566992497327062297667066887614167315141712127386827517635178572493691430276743548655659709868525925781733397649019114153490888022537121367913419455101013158209377910629752712177406243013039897658420712184677660961486621149230828264553019011508002777569483905253109447724816089698906154758951584128954920641774633823727588279388213793545772402200192343130924863126394126135695124708094393761447862121557332162981967607964861683257245389102769261896315193548495114213596256201252026553470895766224255528895219533141346101668709832460534550270316720041662059625960982235538572965809053616527743833896807572524667496695365347567143166301547183711704287553629942207375170999657425397574850681497033617331982472505488452629570664668618220919321078587981516485228928395830370611397134959742227729887060205699599962298000975916948864452076910503973127863399770322532620485317429050002924776998557841499607714385233988375007892578967441976034488562776054787681848996681201667881319073551976301891645250354371650879856461477598231128914136415368428527901097117759418232818134445648052424396753791615463960410912442331722181873204786041375097048713142743746410578185603776775434483369721608648098265776974224198841621057360858892834978496148695535376524318818964875678501418792196509064135810259990117555067053883712445700498024435903098925885794093045901616016517704323482438147132034053959388379819236246422009380355520630927640501089930356524515955252903437462707095187446617331566411975811369560186218961378025220241058692416528622441282555693922345462690897979273799345632098200720373285881956880071500057342198266305068069082633967165155927549284803199881752651019667311231870343512916089337721501195836016343154897509451450983058874754648788677052816098964970596290321234357014332781746704322768294256284972421774453546318956432954452248039299570815954359186873239445121113452960384436873897032472016122423827396819551465322839593646434046662797961925957173435467235273141242876095481544978781881962296973459159392134973024131369171852304371996844070003474415299593970034452796041259782177522800528095747182688790926106804876980753592514513042010201956501913145279233167275025594601153692935737894893044771357341237424644518296076867685135337830697123225310670315727346628014222278720670500923835907731460031860800015182135269788016359560136211673171881227725865557816652393468783910011262581860843110528792311743729328744792829535693764824559146548090565001916105217739143033322722513567531990219806609874707597065978850952787021277130156294256055801657552826433676202867696837702354474855110927786082841777470877412277460176783175581741795751089425277936747230210763662851628069825302259060118027278478549460428953000055456332784506272665468097892276040866523792395768732204995790740896053688917166275293505704356413716486354297201503977109088901614141334830809891319351272090014578004405505111134180484055054949062243408308494147696253913037970893374633463315739448959454846681039365031990040345320549170815080441181943935013001801191743909493836641483759835378865911739475420248186166559572631042493126079314131314712222529323541317185318416591645604641853555556476844260557650790337004575943719725314871402293128477039429430828966628486601900297162359088097992996029275531251204292094066112235333547710836857277720879404214687957540079511604482522025868420474821529006643097765341605803568398327158568547342134397732417092061822012465588195934011019038008340104746012923581645011593945344546066389496765057106454007873896610332835647743637994864140662961274087596784244393570853708203291601883397349805196677133400522956550536501353419934346053756552423400828816234172901592187729367456975732900106654378283906974649592224537681018477626642788786902185587546845869446182377738000088536645858596693016615568370630378594321953594098534518523915643884491909711573870842314209557172178333206993154077809655592315319820239495595149610419375040017343505253815489453174811424847302844696921541046224538675046317790602573019319154403543480908463634854737689469145150583010232424707400541031989637049651926349396010515639660361197909591326639228955567080175888433608226631669790766484051909381252109188957842362331577420522871350650956732769510043633888648055484424268396284267676519581961602543236188168441232916045634477095222191888129578929544393811896524509673616945265842599088524723514723410475855666347731956700410868602082936969227176943227740538196807902542884890307758818812677876724623392727082151638573923310083189976715651827870308234923545912340045569247571308978601002269539615105868253068240141252398980526470051055897228590944125754611330127881149218055534643035493908334258646712875350594449434400388611883747527815738815634829480089482205896697399597692875977770194756076623809940695377933330867444103028111145619678877130616270737371792650236894082769929359323995986714459620445428491199841157702800955941080997851416498560179582232051775512040636079666691547665406106780631134360221860568727388348144115790115159740398832963160898703252558304492269460697837243897457811290844096035921937275858081318706815775400351811231741285712887045801486663362662308958676126528647008528325104627510017740418579258826240201460624277376953891486885490817728361742212264073439704595260452853280745360133850041696258010058818048262991365686958574371347836984673467222912839550066808532263450861342865261624066852734945215050593939094724605305894544684234865611952330441572496578481781335873208024887497326244193063047391721373927122332627215319954337611804447717304299854595813089287845946700878271995736772655652308084125263728636277035259573652095362275433136093498140067335394274649941445466792882254382721447115632522714027220995128882854574883714485485207555944550969668516674708102315566274783351271221426569404531953296645370368732404751625023955837615305699932513923659501675971089464439529702726710844598679434981071823606305583544682536794582435923415715325596532425595448951663779702825561475117200594768969893853448894594353296216636399878519808240499048918160231457818639296647386656878637155916592972138548685352040967111605757716182392277635519888154464408699727305034306157235610879602662825505301035588213368369886053583360829038581360783388636677778479413084015375442330299927864189354878843652808355243657114000463097945574034220359389348216144713628982681040191610733480205082883653106770056935368570118852351937640328348637207080577984713803914831464289443780284490717667404166744145352048367547831858451129111277628660826794802023123762114563782497906315593008677349216983209149980869464973255721004231237670768394291675579659271954562686902052298427767996230536453347012345914629791610934288739706954351885378084642243010990512041908494029639539489867056498499753235539318889235078904738844798492090633462087345555240538836039784099722895654841593078029715850903895315294106375637821750926372789441634577188569320986975933163237811282946650644971388890433388029228517682332881996174340180885829416325346833932294188231934066555869950455258599522766778902786863764103483447679547711680386718381959771307282526615705116467870407889342651402495139133801386463762393559195986563301028917654159636296641157488556957610424587364092570830494557263411833158280763870360568131168213761302724037991712631333513345976480887096426368636503751205173133778132973288527918704914212096952095920510139861898801294923593496676934842653309189316192775957908120919011273702888302360951059342304537149610466055512877032023559747974120962779019313261514544465538040163470492862023609106294937261312579060461388430702462666354696428249883117817306493820209418486080140557646142646510457671768511808313970208453804849039536139771473726957052941263233411457185031012920360485403450125238504827980302232448878346696097692992383116423988453413979345946319744135299432310968602673237598062635356664624609024040799547994978808509368687403782082498775714925449882318470690302458549863742748831221789979645755269287340358198604716634048336218407102999911330660175511534806333842621396052013686624383281519229414572295503858409882854428208542074326287723078475785640620132027613787968252739845945228654647067396259621589246914729249319492744431449867663047618872914455077927310976248022360983346139922254188428874146594017268686933786359493355586902257545946037169433906488152808593487062231716984548986111312355423663024343698762385606320194261955601976878302981972730948714811246408056632435601338071640578505747777287656046254706232141758056006255252007508187967521854608777238724067631110139122836983478722018131458951538411971011071634526183345222663970855431145946932088782547808719697791467760337700271344537804892279668942653156991789898310968318124713281355298204007178261608782694542285806822961156678624362498207177413417829494106609433425557102383147670166672551925861923969125156935364686248164579161618394038348294901844246001283329501802510650470434506611608364780587926315276739083807979828711843301129094097150770380415191211268673648636538560020042901586519915519296079331732845732810006848427613942817768821376113631842452871195235297824923110995916524718252954398663684476336605964464588086088771807899382028308297332036991918496817977739764807937013171942107131919269037877791991589393622182166575450424211613324289841348515018283521959111411286319923090546374053978046374471170960139448161728159223591591670988908505431740139032032838174898688150588678530251471064386267182451606369456751745622280043723314494376376281816872553869868533921875549244567751093389321484814354400872008263475144902274304395174953217457021419791960193558617968242564920559938581314985792771085162338497538050939834522370706996446737740023078331458280784418401509962851185542126922062683629820990440953219365310902878208265177850520181592133104301742989628192267523491697501841588434210424504796024435855802927260596459222778300387868898318322529919719213474421237900739438509547733460122571739230393821735819271303738601579514641671391507471808167782946702870160063790483918493115120623155303145047004013007559040296045316575608823894671708727114609863908342501002799051311010902271960577662639994356694372763396426795071586443568977421306263341897795719082529896903692267748012174761754720995249625352838677240706941861991081789237754596379037741369489862883483383713838567853531710260614735799053622670926172340598552174764196732944563169760362962757183444178471075162637245765956737878829567451950577976417480436551406440443230091129078371593733119264183858383006804395030464450801556107224579741088109706130311695782756599555812280749590608399073413641176618656777566819256446117366671852738243166899592052831197620416129272837940483680880994452627052961777994070043434199500767939269921864735676093093784152840817216284034575752935133219499766830382456453198589074540012344398217043871348481027633144341896106830601739281095335828021054050335205471114133866655959321145001722749951593244228044065630389800640800278652353400945988240463434090961058885905475186739645326050961819390173019886091711012775218158619685036954221849161318090681395035868341844621001183105274245229783499951052013666709664395938179853142394117706999701599376828024479851272237295205516863665020650572769643106584811968200722771238594695499533355417695867324759192607570087027909326426220843448089915952698883874295909640529404735024546101241586585767717589235361679649027673279598672884038267180559363412946201913261299576503113449367799480332649531578608249909521369888823045082293616246878095876957602033340294019955025673483122381953369989923000011053944400903550573943178953417505110531023845983814818786660491410210081220064719505341398489381807619291607271196565216043897122122526378790661511266944710591774827116811760211144132501893755750180935105026303943527006513775030204158488872256642338790382158046467612786501131673317130196072406924061885434757975230240196067374266423115967687020426598753905725619013952802803153666390299138368025783181674011668507102355942298017607317898633773359301174583968130870647624412235682365299148760103109970017371028933172663339178699285870783920703389654075314212536168156597834400585254121781766348619569703495949868056234360164455521978718922457167512751075860402037584036621349928822872822089553852667274586747825949518346993832886512221483802459033987370533022892857744446053146378374056716203472763319847566203081954342576376442177207596972765595887555417093429598940998062315613179651376730340504362955435316081845767229651682510018302540444138798638625136626096677868538443982138225559412243953069405889939041373784934769283136794427125444629174031151958014483981290377867755868350609317341464526054486417173468213673977099603543693282911193022409231034711728755092155454716675623520755534011460479061956379091230116029737150584636020445618626348736049010251060212400415677149257763608634059875759128376327577717161157743201779810430426324243714230181518455207066021037081711811885179858267296301942882520371070767772155325589592247872592148279858736340309124102955189370260611138028257110921109453731973620650518552240311870176851129106426401928735197596775257869643771078291771960459905720116251505295036166015055398915616605836858540369906386187139688340013713810152525634400788799347350312643335692791740955825484287184839994540532001445658994247546304118697736128751982980587538214262250379155484228744089689790184179027797974507199091472619475799685416441228207023675335309015109861151628530044536445364474131764795691260330075482724642775015482815058539131967222125430058882222204460633864201495490838489563497908001076851464124316989178948664621735912902619772089117073675441494973958010875826530880889352140242831480586298953807614683623191852148300192752952692135883466335331774252611487640298987719932844946344913684762744118401613820051682155097966940893944649636555806213565916571771246607390481709085650620910298545249302459318432652108111112854623426611903824243761832378059816200204865566919489298989826242696657560143659806291431643137904496038039407809140425321517908136124880431109405190991339945959093893411260490468799750165672028920599935041382774078142273897048732218892867736609866503064941538364430553947476716369717504517451665328213280018690879326387548439989683865773275781604633156513335093992997980029752575288405621710289030298464576454821511939176814343719664317776010877084041550871079015655030059085933684752690767028895795205257399369372827023899162601868305948377713141489497738833389167411323581616845979659508533296739989237120367770174592341395590488666902305873170800374712025134542990469450444143977067458106875455980907916011619567397696226819990944816743218252002033029679614979001961390871108034600954613460445048263870414120856900215336275148463772235974897398608566674790755412956694941716099981983415950225562541182606014254351160410479535739375135654681061307887073914040577241364530773480060537121027691663517093336355618722962196980161951704156588376967836690412793338243184119519228725660684088958469227706664998868465210102883013699483177392108590222669600619675731819893367687451326664338912904835127804157439179171277317181654192786360152753906131884579099264665611908823335800083372211929585452631774056877778519458243473095340101763378188086142139693034091586752965789713153941807112150094038237624678419372899630610369529085686348946633629330803635649153655140156697998444455160275635825254554934574870985446808127424118913595579611874357478389141532821615341604775366721538299921939795717404846234167957090216768468883939209383071082964611595934583576145752260725321633226533952710902996874713420496197609413253664202811908114542216387382727917799018569850978552542762662491294270823094483311835202875959889143218894742787054543420424457926577850331929050449180664608713391912951159723664991722060269531464122134859840300006148761799668155153973323023339302973592621682385688573236476059986166520227214838162420802330287339964372088015213855597035259377025452590476582164946217493003915085826920484426130381907661723415707602601372695744283308343211469040032617200513454338604663241799569520210349027695328977081712524961965139606048303373066254425056561175716279522546830436967835534142180601029976762963602426991809964380769060323157392179443642342713355791196301762794930471883884625859766985751786633180093170615019607630993691201712690655457213313117423192897443677028934355073866738726050572811285322489986132132392417345528779913799725155206909380846016091901797364427541639249637338602931833504051849386008430801396357019588347336675755099706197779682538423360379266772133802791052689445188025299217116216743318729415702636306756182912772777827867512676887134575425842375135755092698709262141738178515014164287157393970009469147473439244739439111714282795948409707845809055489447754701214847825815641757351999265284607900799538666982453689837855203150966438711669696292887544988007667980755375541386131612550907093477695991907535448544683979721174197267406374724952378984334382696634235240227083124997083471327904970351566795295165406393611770043118693194475140567210416180473716120378925033850819504675017051248656198363986413398386818474724536999655654839418852998032712656243118841378436709744242201258644272049005918380901902080976657101078549165139705783185419370098370317051974674350465554391586263089894305357246398429911890420650053796189486976086082526022825998529655907799800091099574320321816974970061691692127102964106617511474779320097615256756758942409612064291093668281626885206371390719146674178347166659800222125592446280767763900441818401074727264536782744981633345241933473639484566203105876049374990260900769795289377377520426226030347073888996409550151769014286149769945150802033979243380182803884947257012753533537143722637261440660997150199045384121664301780768508473767912254607851874609434263377214832839718186339409411140179380940117047585904818089795818980622388224849095855350795365314040376226407106952803824364232948613006675380008056427515819803232911415018274204535191709693443440506973573470095056818430533219246129721278206787083950356759631311248509724627888868537154009098629848814119342741994645568887116803177825186780537422663333665863709433360947929298921870726160377185692354431370853643966496820192206792307370178016264056297083594449484609463743448741928437479395792800959484617707014566927262734113741856384753447896874271585665516188489976380038220219270135858377915386228375466889533408530395732095766155199592426780493617360932566559584329648799411491129113774753846674104195566886885473024718207336466965967131056191589383168211150952802504931845206780901150878880064625707413468078365785024507008908163101075204834925056370559586633085303790957324297902843948296622279213094020455371637634061728826864741924714667818918529835980437179783553048800932116333748962667327590719878565830829837801184777480119748314382902482403071654715232218407088874227978604652722302024404983692854287244960511552638121383896202126991940420832818133555704765492352092874953251884004558115142507480524043054687531934645742612914102910192473194717662376503579004029645658038990287555530211931689531458376352257901394691167021860957950951369923488015768093722323682698726549600741838768258523295057171287810500542013180067705022099371152347410200404458545076194695106787232901576312384023511084461750785165956158908620117524507225789446915152128942825249239095583255322636113695084546193701417220352542846153075607424886994407881508228804475171659478198892438030652397617772182904286029407162281784626979893269558851154195866764106478735260668037163274431974051901993500624738857004366083328782626713938294703005689258224051073387589759085017372874636500353801135670236543591289506262137374422690580173913469136101679000195715162921597397093301023888543240358969260041850717536242589416836114129680706828115874081918266428133987127672528651269152496884459182679669110866090797964152856191741331037921916654523087174680135779055463975930994721824602028069102262874011422936260324843104660309613724475601297677656907937962939512742726523149996866721919228787031924816935125259471669848012337447650559306341310220795593015449239947500769251925325008434955147037684836513049518767487984054264354003510274843973835053918020164156028111462888989491661458640533445465679994258292350108926900490138558030946204494176984628076211233600568555633859796571554740237650576985722873231083500784928840321448525662847957233470420645625795301721640909676971452340493153049160107322236253320821505716134108662175013562141777732565546841458183739106505300691044383394682654550691487107880861379319247827280669796210587447293960917496701200652429253984209364661545831747858801311040205020904219012242464734201078932382957188995064199890558043886517750412354693462628924809084856750124965693999646569655528105756822439214384607815196786084292382521326758950753282590379033738327590748585005921122902583796354584583716828205098809930363589665627860684343658986780700407314731051982765455769532346075840799751795125681369960333295397137625440394972183650464209647811985895724786394342700573751750913312812871172454691943476639766119629594759990918271976009062304804981050575769716769983598178472729404760685648729268291156255595656870369011571286201011150196763343642687497244860529998677413188758529860170288680144393669983363382292536802197785832590353078274091643860586320736541996393593763358218463947438631028761193077463434978659623487553758539099066578271052344771396384760304522728216914450617603279034032286978432083302214856833860533360744593657558136450328661574718550842687165112247005801446436170008371910594403404150616043207423739121224766813982582939602833063612776900503575958280170409560045256445843333553417695136052755401726696409187623215979183227908764816453328817308130953617639863333442735023541134034927630969549413281942718846694402059413203348490101526709646088311304076963135971434270377401432788479340955419766883291445839918960543379214393821935296697379156093115307242294603259852798474638017777683448017245621575306430967283815040712029793261180063209191855960349040353292295460350518253355470487312333346136045874744992076774847985380986905441382552028881735222173396372515372345986568138262597938240913290225176899523889191720717433399835739431136570714029532478632741388837765101522987489011784998397766453419391379767713674914616706538895681182301969589380974364434495484186629871922266149956376307213333186666868550051873002766641422633575939473275362238528246679833062745305976250235486346513400674657346948949012410407088899322761660280373969386810183865947682397022106544557023814499929630012149795858484216255242698910020540660151058567066386207149740647082526294717142622253757589915526025297582529794100226890057844354088240344732943870110512313050689165399671829696867862918108810626426911501399226192911688637002164308509424392983120717010638179793894356349208620402772958125685909379815499143362581037381897103014656671774227222852132844442742105055213000074105022678234231935855820537957775366492230052882417557220193912808505887397420161387617628406723449810130079074201370526970240020323455484831848527382764589970790292253516034278713896010836045977743203540317603039023479272999278245918804172836409797904276543429098961211359026091620454825661907707795257874052927235404392804811390466185556974520017302676292036101268634183475581185994702837824906553609594565471992186427969585163424824426262873588445638828913957793701611196311365621884911909625055330828016194632242628626905703094299067070670438844820625975229236434880455560517474688996211401806011819912762125767551349167004208215929059849295586890907911351506102132591242620707148883383914686696390418052382524209904524969794999422340053584128718359158490699527363057261749495017246788619055972522556282110922295043737710691613992978334784594792168806839461499360691213211281877355147493624779914752261771095792477910507515366476977823520328842856705382333137907889348060812945395335080267043852261786314331812525220563806963045613556022205492578354229938419732261544440516234376957757252921162600091077069753099249771823146268858320099655833297358544339464077896453432454451819627608701465326096065165092320866049912098021907663021926559414539451856152528919010237535694539926694827851913906325996673865650996105461567627750278395263750165155134878328444356693013814576771320252645266003367086033359921388054759602237261860344946813257911423010258279149734993954609382858823253801751571374755608084095069572475150736334654526571188599018931011739109677215946343796478187268507465839922625970362621688887184456469275699733961393852721374731189112418664059920850051818152773400467173311679685602350459801743140500984073193317896066748468776473875626262942746731309327285975749167156579752231462386483644726792592966160937010950384439518999206385659982252291045815247721147072815300450582306604463397225835905938379720763914805440258470102261864024991709075616847509665912619608469171900278280056111878163419022557621024997869888737822571426544199395729663235459360363802957342267167777502522635882396010409462300300679882839037498670370046452705553355027884576421112939546761538293583400161086790742137186292336412103167099548614914838201772509754541213109135685187308992934602970710118921696626408144088840204126623344580482416048296979712897429621253036982638595496677015136719899993209972863084967791253645441250491305950799178927811848944597830601918380690549792942307632940960099486879531019525938202158166602735218566750886713736193418661427561162343755280763218299788597461995724777904921023758036728128085566859581654382493076667733347748362811080684641737274529030461836238664685556299377829313644721981066947119741408428350635464276605766487100050928692341677131087286410029666709001204804854185640019255322039566101749625813489696226191214674909195666691133512120627299665637760971863601580957371067333028064317215873031641324619595277397645916208469241024723790071573647452453900860020568451873253601026646495162689652078888381330578348118910259821191685925050755493391141775968165801864014688486906762408602076757851796680843207086012293796586153423682799446595171097260423360301744242753629959735340255256716198468525640922521281996581024817804417972913647036474927632115112577563257284496884642272340388841550414219697166390258367680605695497712117016172842561983974622002905031392970387901519896389167130071714464521749632642611044797627241376362619240321428906698821871588630030978520616623174366229004087980887397699220507717588651525682050301893924670011377794352145335947796622251566356707749886387245092822182381392726539488743990564167316434118172873055753915358704579015143965967429509973137369975219473897163007643677722578444245558873392873267520394218044347399326068061400901960915758663082583463503056136048349828299971517426265151339370378712061204973381685016721787503349147568474426172307263367739585094760755362487331662190978990117258114104703228697391974742009190736196658631857706890869563993578946079768827246083928371301879508202004537093013899419366315412780281676411953633440706162530807424503509864080454565578043321986214416727607792577901035231615919228665088146849430946410241630302923992215927029926054684196514256158208157399212321707819107689643787410503256575101793258223839528753762460796354093081467727951299912366278738571646417504968082645255510819842804531740185993693613080895649136626864121049776796189804909767807264832659907137177573862313895411846985013225728813960243590255791454197533888998513256704684176359924730066746187906790192862180663972682344905077176669535342681674443362384629674179817875534426862577095508466568269653658904348091271659705861109360448008002416348786350228999410304933255360353397203509055458931671405315910774040715239389951035756874681522419905336841363124177055143068728512350566843205439365044300145717805591581962428161934634699139058720048942449813083888440389239933209477742648942861468350859210796617553494896383262417256388129450746291169022246362452259669095332884522696963163323674181124918754217896541176521912465350138092018116756281963031264357069853891488312346016827456601804764366698912983054656298516760398798905847541598597747480543236161619662756015248249434716589764658392721602880859917002902465023703306452799767848679398827439825942027309554736109718491357606720719314100487768008115497479729515035625961513684180250236834391530995468051937483357049496352753161173282915370955411244681126915886937292300605667843123008636340046132316923162899916055773762857439686184433552458895688899931303577727042837990081728822271564957698310121757258600181103337628832050308781565276762114048301375942670060871462889585746802513421480924830312122180849346993274109848563205589051635104230696758911396431023764263156503981278552463137666220547185981828273694575681691616153396055557875048033351598197701617744097896975345521246658961427739720168984611647207073078958458209430048105653902426628288337230660307314944210989702510928332403002054699478354884028676005704016302886004193246246328407185297347978424546560227406395022911672011633277957604556393448317163833674055908310929502305592309838017713657723070437855228960066730996419043877477588141107038170438938529220093698326362970986901189649353560665513456910952949743968554910246219768686783079933888274909818670715084964815806727856756884009551449737220220343662090876662927006937122695001228784839157400300678060095395628282223367378420910806418284476247198660186865427879890187594099820558859228918266175562193864058206899226554954469130590110035505154609944162526886152401985261292156697578097110278327299020996058635585315645963317312970026835276503619369440223714594797268038631681629799420112691716236327359228318638677344055920969718877664752203110441947283076456414164179561758421192054500420405229464435107092906851922896578573633537878676964016832032374118797787526074873991090209081139560586935538655651349078089104976534006689352103652893624753005240820657691090955951210338124629328750987691121536976577901310165703801849101018796189479325269647224603911148096230121022327884570899067461785510584642935439362814360253347592842828439267938107094926587560784798378598193599591315423285237375465900838894469756318981717194673048249769536489513857708485199506731323043753673609015159219296052459989500363892745318039487864528431944612392432023192958452083126882140955994623698818680380193549521051379695375187375765527773399537503762121956694121323542612608956390541429348175716605492801191844192130579486261867668203198157557953290981709492318547280716459470643492981260412099859854283388937402702133879295392371954182787916561401144485835135978134084103248322378380999970353653135995501930749314584495736641680996295168481887536252997111063983674123228203036599191424954964153463133725600843204693993090271181038988838017412900304669864734461992749288107269467719947419923230811916507995712429829491698857097982527425793409495969455820728950935704925089052252273736684841798053660481179793553270344981374918949068699568431734329673652843891920350102708634153284618665118180909845314026562913345605646073828974093367832820622979170551730818462549419843025586998207469764363106337920154013989206678259794873259005841395770732652054034306482472741466540966139849827516271011725889553060868224801421193722052691186349958331515742925719766132406182881384506788498828499278356285880057398665088242889741392154837956421302751583593508957577440221661035968839032282396648848472537410833248892586520347674317140073180752659572381550639782945168861061767289714390792892128245952429089679075814532978136885800072034848551731865001993796070401813503928824867132409066656624119488772529505277050063307456698055054056390216359651063040936319366301169951266447676743958310372855465086168464513564574873709865650653485303154569421716972730928551686297934025867920361216464809661979257797638676728529892051781531922116502229720770588125686676088098015851474766659571637906071207985396400762603532770519005155136753705723298316762901981650001990586565617074541846132309520488834433867106779144267732289728541483687759902049194748331417619546682253920766517804183484308088977515129791015047978594232991038005045294432760597686821354615632638547053589083781245673914644568830908392540666563681782017760759195654922422042348553588898563070716385720923495499768085029217383174783391034946014031985325889901675207695756649491228076725341045483318123945022371916295145691527917997301882548293376819387505477394771134676486530581690291516888509874190791316225730850017411542896265904972704624815604579659612796370047350558899540748457068232913729035050259038137820776668544332606597931427735713686980659551769096832254813477768465750522458409713848213000409858590149173216064122735139928141757806225699535225191281000765261087284931410450697059942238155889486956999016846899653550568349718761921788181365135403986525783837430293126773612397314609378765804159202476479261580146589660517821183598500242972033337775813930784201072958816698328067369221035558630888890459833765132336282054679812114867755590550826488013593107502138124775818495727680113516901991203699198602041381449217093974826718370610809014213959581320541282545316151589687476370119668482532858707009982416690273854090516389213498244137200067917370344242012975036413429491613366722645070280995215871961200830617937145972528482222523399819652150084323452837166981871842652511254626395399349049281904862748781205054202222446663666328864090113435496957194040211665940952088895310288014877146597390694147235815635114830916021492514163425108726516370793612512329158057370551012050559941540183991288721210886260057236789736002520711932916051847534683908541469572559716144744488202064684408188781963755547838690717280726353007658210427753313794304180250267172681241302293034657830415801832929906133758504637166305862130653013761361015864111880583711107620014474601112854784735577633124750563911809605478688729717203749189050933903377732593805726538105737329262199514082518848212277787228509018308695258513694792323727746293134299588335345794571109838365649775763239693233598893603159628000633124051358284728431049113284161440175642887174052247484685481614071426595206310568675128330417533912843307727795161368135608364850558719616957228252369145887766046535453095710733756940709939051691243216134630301208474610115322067963162671640892420358626320373913454384256896214301681463263540882747374983366534164535715337159269013647598482462093979771344344089606497804702439540146916731398410757862998522177126090067490990725051343377212077272309800199430110851962877234801037036486022610969180963801968858324530958853432876126049062337973275449835287116452589763803918652386703930086029964612478102135624471521372268660161387144500076937688563773565112313853819359343445940430894004564223838893205603639601700022387396524649026146626300300406782680166186570129603601897932134732502901086562580013747751008034802804969690525896880280798096470839652242053294168633004337617018161239161110861033010969486542559720141344637302347785036712651947998013912250572725309300103070430733011222779306774849549286002574978031273954705074331461320738494356768365731376640260146765745919700592487050348524392119070344293091761854813743343818337295833072441126821708002961806902999941069348124557969181326309449019595412312915275096308261260173262881699549801979384924948874303844421182364579564815100872070484476328011812809314395221381445008500907324505510829835152555195756378684451537440789206879671497699540069810619474426628685853429740766507504655742294366660431071502751994103795872054021919053423988339164374946520699462335165304697296772150602674804117602285383914200162821755556568188310896199319618635972760798002374715809565055704067422059105037493002418461185539015277007290391932325660758502644259717211652739787246323674872567742311251876227700632939898629814380694332992918161648918981007060863737352362718500339632028710255877485227474323692435718326557305085335587615851256469663539568373773180452432917864415135794421495806307182808213936078077144821524040510725610289742107936276800000673300599095645491560021563540440194586928312699939194050288159802796832180362885908063587187585461604829385214721688230828667764334547798764152266998105279266325228462666103452596037796211584992401442441946390398326840907291944735514840905868875560451579170347415750328202054346922024484692936256771321015738884993633256715085515907354454532600102854844802725725789625634231639951696247865111087604796322871733771624222618810566932033090618242340761263240263613300667859162874719304079172966531725150382769064309903238098138930785479231316683557093626053982625986874515746083067165773136832623203667926375553503040236012092125767347087579525798011594334172122025889433980271750957139313845327333654914671707874939204087440888743048579729757159091306620612188614876609826076561138573505215629738180682464401617525459937435726861333857322585738627964686983493922949220005750864812316594927851404668087863178471099995920331519104134653951168719908440154298420657861664539093613287158644479791330936099400396411947780259203364937480303220298333388360579587422343462375137802722349849633509663381547508339437280043715453742313583274643296946958440966569536235276670809927121568819125368532834291039031012340693400017270213156967903809865980944602891594386046838806783442470230547742743424041864305376613696810127620739630818018853193689830917992705468159113870014357073300003793579959971576944628001945627043660898178447748462629704828107630518880751766260658533119263063117456265549867413213421957679115294514457848995724223961709163866840080601351382964833702337156823025721234475056704346224022099768745219673871829592784459617068648192379873714777193852657157327686144541596098775790435167844268104210431370023559435718891131366190890345059880774166792092088438793216633350211252983767048150728838269633199464144033245852400183343770428310677664261411948654937981046812674812406799525408786442344418405555567811900365480997928220821100436536142388655656053132703901737160859534820719251571673864147603737174666097057969792954961526301694075019923662755878826803754832955964636818310505918854518928804189214281570676516283700845893077984725279532173308727491336250694818795878991792855393907396737278805571995613014503226389410761189020441322044874442591218941076762914312483567941610861943055313045953334630943065678335052575897796667331604812333014442217668887558050723186784305833428943285131276612332950016671240891458665472900939391757359424032866561106478262045112577954019876360441596020620360838065050259799961963683916338171833399746341661824024239428458762949456828778419205720949958372458442495910879357775665188436958746415117060762633365295221777829853270016526370018928836939238154832480825540657852900828264958396493260078503297892984367117804259629538494669477196380792252633827761394812651495192444036838264297977654733256239555519881300242236188493887183153863066809065848615033272972239062671301041059077934914900119983114065342317760174145102480980279919399524053448535820618318244233194937154427529627239020785233895581485319877641530419284097496963030034954898468560544197355656936271045244379408857764997699042920022317710681949322621915440965751980103424449299385695403392679682009001106654616510160158801735245829367514030990448352692205107769924504854972265086439238357266642360024501565422694327792702626153180899789303108114646779777651742009818164947108547120883406386509172358348473340656309514492109631600831212399177072966762057202964798605091998652808079728204055477670247831552585111019157395360253593614371949902797255031161811967210496368925914567125303865154013876221251866805609036124642898925966910180797475170642034366780693460076736566368004023055341993806936168137689942184232759527268874849032759212117824827041825506490266796249229275566787571329059166316572989342242152447396630175744136690702265732121149868021184620075516664587267976314130430250044938274175596161597787239059574869699792714642237746556913841734419741741067169564749529732590549735378852919834713327937996782742746661312761393485153994133624648023752614875888613976096602851726707618672549427081449151374691162177994765327794204917782834390222369150063935378728955140715816823549267011002862344467400963621960398362048355328171920685954936279149999235838784240851424721155872260144291832028771221666736247823939900904351615840173741896751441337629779884275847731677744744145064903449345492316643758206914994829673103636022293161557846742091227183298338147839900883144301957644915790679744928647066482214225873404089286662552963133434495979360340562961914631270975540192354183844500360692839574302108174452355937066904701306621396457569352051557233329731797646234691980842011452647812927811503128203025832471756116661338889450883261943622354574260537986136268565561500846233787525853760504424506986433282245506860110499545894703114436854304307438888105301009672061225307110917519857722399772499703858357667259424811667414600412239883643785385214021085690174468593915428594838188507992836226086122606537640525195017715544624841543235093775229516602026935569388010202494264357743946013510186963021645385857365364844005886388563191115569523907380720663760098954156593716874641060162432434055569493297602906927725017497793091846951840923919347774298426699299488672136027385905070457335243669460014176350639672410689387765724852539750368122598020547844058921318884675801662416344243932604381377439967701498404644100573035206068550072805436152789685573648669600332243554824770771555008721018028568961237068998458485119268140548809438838821847905780232200722979764858473059210765713100092449677372217025884006987101686654575524548723468025439629720348187962946286039476032042086465204242644717911563787638600161252432196221126861669802204373032207266958861367260892561582119761495483857609773924902578087271908010764117216567772006504266130138284092407228407151568864204672958739487567329411956266871797003438190430009379309044285127249918774805866989268629086295213734783822434263762646396921377109451608185224344047569989510747636656169816562318420516999918569881406110101599530463747454408796892240119352394235897098989136690748515701728817193030184477302921678540975151298858253944175349164163544490073020558723098906059263223639653982491979634639542725389240991523981721105595261363122469675533688624304142589087072392497526611309706350948986880972427034306290266056812858305964216441068713914887518442985282091658319841409642802269748249285346135444144339292646082960869622273429338239306020315039175994818936636336129887511249777203126512299381051468340498359351003772366191706889979336095927605971463835012144418397378052084964472667068438781355312264368611680737755419422703246895959790562822975044906239417466340663847893018754817110790708242072250710806866497348285275505099964022112220157520930426933310778607513400721994994613836116011938664917568560291594182442890294175497990513544900219754610195199449364246009411680635002152910824389194669814835075023069942176267986682495014806618984575332813183920277294196112369627354309420308959763277452033564028046297088938947420773224711841860855824466070086069704666635730761657375301966147881934473187709388152855966869622133535192087632429757296654625562902293850608552184230698617027594972122394204745678247989287790294279108830113587162606114268678368548165076320433812377867548178354984790946153228181544838006094183015581317114636547968780464323280054098012928634887828200778857416895878324364937820595266995062367956659759584554426700361453575497008615786743764927024673045820440224438201927237873677949790213837786694131435823869662488511439057891249502265730051409450228700469628663259970469936331748096752646575790267098945733287773414784869460632458408471403562094825543392779149010197442145346418763544942894320541018930303804091626278340054910917821047566716446195600654633537461184408363966881876490367618781116709519599899454162816595737837721919137592592699008177798213668220647322304733208246992128366177594115053675875506065777068336899977978765000888037116518698345419653956316510257990903475747717347349081747102816461434330820922179914417461543370870854206355396266875738453433085548011649861629233803712664954488918640518261783031441071491321226348756216382029536099801964012293032422727586856866925524457716928088939978110314621502252317263813686619716393225696030984561533847981449251497612956181270931375667039810292955403802487880981708046280409925804181586651858074708730055942656858357115203839690803785124464939649552526732569893852241824048344902940158173662212463035338912100355262111804496563103385621863797537909993376093190518051215039531942314251111558025316378725878013157121682261060922477791388915348576164672888430569662373270304994194676930284881411108844793281683036645276993603257155712536389216046293848422174190543663349828410656947979067210480836256937807092163736071900431952279292831436620468588161902459729643080149999012950135440520665211360341954206670488028545464056248081109465555083757445999454150666407262953264288726021496928827916447481792418869888503109104848563307698269382261863018742158815964976766839346295945116525717965115124495636914863556201177459312088089257789433082260728769607111614731095396987793415025324560557582645057547253986335542288121038824042727084420141787346838483333354595404060282300090949268516494679742173670650291386623765389858197407410205212580216740732171313074109482689728177897854648702355380569972518457717710104200023549782155261158833653181183647434915909470410843224912987360284961454264173452791596819983178779339906593470100367632468912829477952597559482736106259202028963535296597130597759652790199695708483344311969674327764896243113636891351075163297894774912818992970599818621893890071077246671714794698206017929640017144253855623602244179295339468162725683686399628024271820944609143769896483759209693585868414942134832859177940576643316100059418237078647973251382991340087321256360163163039717267693654826273251178773436926282359185917826206940854491751083263856832466796996327696113959281573621917124358348296480075295319414553065340849696969327119316650620147263070906683138937272584005885562907433587822149562711258894217512700460508430104674122651652578483730949428639049165656942194081510836174573170783233613149448378090527097533627659520080456992998973205391743620284040704576578641015990111724674586362452045682235526027443210848956614462685018997786345295395735081937762138004683127342543075865696366293109726083981670739399698042078459589586380386706000004062513467513338216622501712448805850233538380811472194786832686036797503046542166978595042171581739825413120612069621793857546151971809908373634114497756254467174653143625481486379838036941619954596926133313248236480496739835842919520383159696113894941125217262655551598477087112040949246773590819498140579047466499369867938475169909046800592922213384711980360798453252193693785961732848622819244907620645219264375745143539146262898689599439768947712796292676843960947598314031327439648071831180527166878157519427874717405191925069378119059711839158178369233675224834760954192354728488448956680985600572477769553456896480392594201622960795275812088760897633347492718451263290304742788635278348362653057781733482759020503320127976295896475857395212656657882408790914075627947031359613867847213686150753082989261081115486821049091938183452038359632763518925800165584731099326353383780490122726764267744380899675913864442642615724586386736301467436381499021768713327116520898657132541246137254674540094220211704717706665160533809991640831733192012508706919815035900965215865005735618339883742360070221773232792988178475858055148077383343189707995664748594801980862646234326865061208257974180446109473446492286959390206140273089755254313710872351660711564008971960976907810215372387188644945874125835541337133773141252234006168727052092118565290100761729831582926232053099883609116520076420157355482994261891776543808960003795671479078352582285083552425537117958222391647772175857721804333910626456527128216630111608547888091833810452335242454731244658932741918238237743514424603243706458602689906902233334371298352593608644175108412878237437964525887200287250277149541012189661336756451169132921107087708732668489476211626392349074763093030344217396556704271855875312457885621089856746069839021269953995338392666997676226311405576538299082027340522844329881116645623188680443081124324217070966073029731033194894910840487687196914503289584939883313008058241172085143944428863523092063849686974209702044220020417290549703071798680786879101403311927706208865799257001012988000427360280059705825596955492179873478692552125512377556042923509459313029647216032391150013131360406807493349682490088264055419148188289642569585564551267151122048817716887120973456398014748944191840340002512952850563399150468840224227443297833603491819254682379206774489753892570319238344536050742691543036195634627226054600055117085746242280586922508324489112138872194909516344191699955534134168082392629202941595460836413873090753219564605492539905730460859935246795974778659326992672048578904074434269715422147188733192646882330710549172211756415684107766971600625692950611541424655005209355978729911988388861246209541445639400502234252942124963331480033051085329761257545135865529618863335445483168096877895696453650551169607669593070626548051724159794636588374144209465500788871681209371855329205495673966704866282054491996914050777460719214180481784349580414283392225170936440892407431231521707759155797985389357922106550541118017871349418540359140632167158743531770301081638704861015561577383845496571189140946108627393637332142000640317334948008975392877869703920997802811764437654552857950755391442454145403177435799689058375958120709312864490173559711043853167878410648240056860671833632401958034903118574808570238048920746768041915765740038193819991499341987549917599589405354956162903288584815932923166783224589318066990818443251433682910066951067836404493053856560087092573463234873175628427105734736996372215912130436001983738603714678392517637801290333541567447442168230886701392731914395365837349953411626687854687689030764380600529022539802499790657009023170992484673705172002326585861957975182003761116499785411787090418647893716044227738404943225972842834980782384848672267998839191468238297691843265950077947042138999528312952821220639115673984923639212952414584121291871145126938960420229195659583102001019894608315189520622915347132121896138929281136193180333361688573763836895908193083096517960570400734439721904566788255314377079295220790796767973136434889535002986763859505974443229594197921237117288980261424755893658870271003399887749638252110455627714605815561371648959188123010843561533041384227713503445328260223596966057186944031662554420048142343449106014164527159086651348842541033824957762059636564127553690363155153386005147092176450623271068827481053783063865703594032171028279163124950823635819503523415157600703476881821256789735852216533681535148294964649481114197738563950192017464114907857560788881944984267333438803262441395005755220786757254637336306969466952547366036040483978729961097342984099620783113636690163997723314377129556705692700022309520444052373697814678383016958080465102995130859806416550429159519034056207361332131519070620840401525519456377896298910200204152174928847983003295991395370347251420807383441670794567570358697521467805995476005037677718667492271325358527601048991771601895903396099987629732704749714900214844452644710755848368187719194248771006307032490862592290749852128209701917760121701169821159278064963537746635396357399110976946803080421115565119789913443600505830634754755839945615406791782415664888950154422691888689100419385116586712307133795945367409766450216073871295153428940927191692211812065105024639225368525377264821445041116580001991584252250659015229047557255500110520417568662235973592566464899784839279232128649287332389546925039137879459177822899621586276917224771535917519021606786955078535470470233418158942341240125942712789701939680615110806269566645373001582311399385145049641416196055190081194554723102002717279387660610683201555678601700277479930142881621960358907186070663949902286530545246422792650513242658417845778228361160199528127185067377537379828200496834168791430515220032945487497020026696037123504110659217790036588414522006576572834008911327019946039461372180187126642416201944071043099702017636121758089877135306709378542238967518641833327833349721732607919959978880918085634899413949061892835832106705004582291300607461871134966381282236722176387361368324065950114546636372028093856970067709729300660653725857104721113838256620066438077002559592459975775811962091668556771249571873470368943238849862087577054011756144199794070099018775859505126189722350797016328415457335188526744624105827878960017911574090115839691224608545344348619284288449701418391398587331959739008293671729633301821014148718557341142290651624782678389755027785296988624853059724849617159870094319311065181247166712819720142586442754509974993549362865203705244519527862581528520555553386427760091737670332423699218230114001286214207247538532737828419838468669867746443484405019040041381192413066142319183736831591043586994357924034953054391892188699140291030392989826726704338352802482852906049935888097375525887315398894881532817134688373881148484293576256817353988427247202067478031676922582100955714291006741609252533299692057509681014071725824604087708789130316119475456914395327008944961102578799606047053609532419318948742832983897626775845524245126417141994351213809739227194735918377633408027894287217741633009952047069543167655162564158948735389406869905257920956580772965900384255939908547982011271891010081954285765394153239739552220442182480864614623943742652741638130453544972605861895205514797324351665102208966780305038032442496085452658865894960766588283054239187726865764654978562333563333252556297673291077394602830512999341503397192922490219501620315928439958081712019589030616174127670023421786545335652931291312320524039842544898580804470892819734167244918427152062826297032245151743562560039225988649281272050025961262187604420197637430200068045914479555116141670867735723317719403068960710175860457862203185649317311265722461697735065113690808699749870893871882933904303232618077431610474931779201222022864453294387027816409339424965093754801936956706776178871512173352624480746131713716704437732514510273262641650284263702217839244088266000675674007047388722686064567964821668202922013447805386648758469922469290892340665341481758148181338374322917027740866982387999075807515464672033661282203807722956011199621832789656112324636779962310897659089207615658851098072995378483885768988578309467625615629789557427991118913332939384477254845765616821032065359460142037150256941840220106584412720717949089670305903857532155523924697941522570269003485545878733785283919132820852476639095297518152362539219424931871073311313748733460310200394291573000288273728556461438506764538619884677449911949363258302276543020672539230029128191176276975337970842985425049503500531459264145797793570574795464629427224233170894404558647112685313498999466822734206388713408706617094449881278935954229050812489936033981768337712217767418531615750908539380079737289323169760364813017107765513886879044999976108666313020672868656529803704542209630405306068889851388138997593344049159007877014408654050780801779480464054744935999522828654814431370104985786247403593389922063942275954473018967955896527857510622965236709919683233327723934647151941894712876098753647564727528448194029184789605439760208504692514723745635674436077843942692405455357952134664507094435732401144503750897418408860744064278972846433748580530735107545259870709868809826810100582868087904121546234040561894486499003350495708750304924277386506209843984043011380376977526129607735581019411674581512047828674060038888318161074761722722098557783318106719385382877308046353463332662624632668691423703351656964051410753998991412009655390735266443077434243035305719485108680153913160684930499201144158965444975497648556522279131706227354805751470383439597834178497342536125239947825543147892356840171431874028255983679052633686640987679416033109661168282676461107775324762291166268102766469578571189890232924563066933079017207651704934047206987306659103892152583366335164890508509393292307118252346106660463222032061013540693289665320846879414274255074737680551367118586519342569606631971049630723694135082705247046027630568613538054250912486956639503002682759194194605025194081687489593327398680059074435349268851607809147759873965780817547736329182193519468769757724007480125237942758816945220838974730808203549676332699220111117469033064834021768352104482224015640091746529840043494176119052626243378688972574382808165717158712419125968308933536411235385769256854339028442621383517227970860423194339722373808484441494687307916776183543707005968544762033599995649511788010239374138509385111724725747072662796059862460601506171617320646306198698038706145904885203106486130534223280992244528492225538422794531234016666936711624579292564163357695942752099729479656744935815627645447230528080384140253461971836654485527705130719591268236844358262870267853528193645866315024625425648201846119118232660017203557527837930192793094482330326173945010491282432447019122110493496512063149792757766444247003392567943540333929121690501872100009619901101845953313299841659547771289481564091534648183405212615309668501162531211229506746331552382456329793839948320941187059351186258890410234454347191983823857732185162839401088132985915618252145568003613937035118953765806282445901657404451973036010724891132589516472178352927811532924465098214993203046968699922999321893684285774467862845717900636590110016263027466683646945530321283323324628941632530227038042089268864404632351635269444269894901135254686574102179099917505657273388038666230956929678309477803522940164043121671679773909068259775576635787590510663788636540022093165189499538625277779696898184335935399788221555278428249365289781176514966500604838770072342807160943939332722276903090515269358918621466289501926290802518252416143979767882735097258397354314655337104584294519223864552406833630443747960838684132430407232399202356361338559239094814064140224228741458667177495244750865912358522913260696337192668198327245479858750938613397109990971239799281544610606442736073369147937672600044667677855476879812785380993319251141883998187380600702770106122658955032756690024268882506613182610055293522708461599957856308452661340728991226172781378886721536734074914117098737808721111495467654469502421576123961074018862460529423816218250299011839124992940222971702926024450746799680636223662813715427810062285198968322296126474871637491116784382962717538458768871363976554492155824939301565473958322682197942005134813428480019611150220234842818106276969406602753369454550664962947044620825648906287841861404720722831434938341698926598582249852056671724569872263310381756478715017363220865862135213412560494471523657853670121824175534976445540267123629611515816521856718201658071009760258892969070055913608456446996201292141129152386162385868002185915402732773904134362850636594624792760503943694517269378529998619273614367017602737824756619774563996244598690840243422321728805538480537289371024717748468753247873662809239104009663611442876305999184841238705792853296599304384220677795698191927984806932276531218040089362779512064098632130021670223038705775327449569853425156970136975725776359619602703260699098934342701392674795431146181076357948460197236259499404004975545667050702288740051902117965309917103841206128213836382969039808017303107513960439125718039497281808420929958248259939815329463780092959593122444387774605047828638429244650270510346642890069484561919696152411478128134647650290515079195838850825657949955978671310907478904476781463616768327887252735561262246828891180307114279727035781354681457519470797541304371321829638622856408749175055887608303769186240831502578951621372953421764812819464052023774168094672582441129180782459802424468878158661978614080926777838961011215787086913165948561273915701255864352670027867253697222512319461241942968471877682662763854767081429953575638664900901253199348142482559265432900690727353901419113161127477034165986890694440669994089112548179691884743956833681910209185867253502158231815051917788290971161688945075163598912296292803880688042044821068394767369180823728333482474629022063658284109425174666861816778147606996178678019874629476389543446682520862286817414756921939490515606796817740146029703171033010860600412219380336368115492292132577986156539096561535537743099405750157320107856446849872580695838436906352708316986040265309137735422303734020779647294279431380590918373000267693071407778227704626319384362551900495787161394277129743416101890694965490229218582563478027861880574513673210700908107538846424316860353879687978256469744598561489373814591401556361288812244885434290563835485226728336520124482903459941448362993375832734686898144616716817666662190079954365094290384467730615241648857944187403245081984691624604587005517783748245366405880868316647184790446126358963185376216267989132551315901608951170650714317848697440276558939147950940595497883721474968208342673506962097227661532966920549997301981614431379710810228371189467006103887113592819484723662306966833089749940970672630648798368586861958796731088516366062739983683680532480857293857605874221208219538575914757026103489689535169946512687766419896066591280907893925715734033450912279694621598294068229231545311390878650759089129879652988036151091206265053842043203190924757389276943941594962297002278417241177890339353355176254034230488163973560078799454065403073443408956914932786590649693179331297769752474965949753970827713641890288537593532325824636223767408693107652939910799159618370008594945253282924128901589525733636849507169069533708625853598278924347553347860897576216553299460081861899210917268833341615026685659802744180981920880272432955818941764024063508183267683885978836792500563227144565412001150592723574817516290751349090970476390421142005447077426685421983831960588852264111002950956005940327258142014003997676855795812256799368786662870536709824377960334493854500047289958241857075507278256322297109125477469845591080397034830609899112870766225574827996071101814552615191907392237021630461749441496452015891758283379821744413124184709783498147623090428910878918707687802301041374781082700142801097359890397608131569076780184792926820250634269183573667397180650243597483773549742190645737096249299886058745940495484347403728644632236252633953212636795589747025079039171485163037704968791398512552533533798126985052304907282303054749942629630935419813270694408062563830472395644262845964149531797439572770313214836746257563014338687498673074535888119799530960127806866034472994856518449152614146974463429419489380469100457968420576975886421961851016922991642383736471419292689831212747850209309869891428466398433283317228376831515603054694411944226755294123749419161248643377298661939011154708906610172892712622739452560029855416426312306078550420482274065746438220157854331091482245840528820680904194270417094155678356273107787307635477794051089358596667012922255134890497275292260747894413244423098768590476054694532020765780686054284577859698980798662590519345029794451976958754603721992790479267407762423852375644279936937212909131896515512454890335187591005543704953091526393094293549595418465794027688917931385884834225230366809363435266325765629147014583352329798620865294507422846946060042559041663399683244321765518768371486003238318642870235350986250954275236656196477955204382528514019164855815866323189205071169139623348052580120607026367019421044106756496715745790579093278681968338372564519613747028617263050869621987811807741140608210366951905916444428391531130133854418557647389383294684747402273217801658030591855045407199012863457520943480943579033470050679234112795967015009699277095865134661492899307499943326223773771422693452113741934569541476955246621977850354951528173947627844441153037501791879743162742994543006591937543867834683005910232336055210785958593525368123131944830233172135843523292118488849264448670257931884200550992400548990393059782486484911083817970208824777186731575717155361427339777760416631299848288650784109938320889652597822916511704137973931424564769060665888816809857634632541898744992538376054180858586115997325142118771796598437757108947465414045808921761958342838579188298118739318715931653515835160972997331034648801408443319782219090052026689259414120135412191878391279144580027951423920204986427017610097942192051481630506620558735493609550924881031179773485582009475294886505475838643443823585031273375200772302062589149913788529286081665219783440070794005836156479906781123440408063357126030873567119396467454325148166634257765126235347805021134651404485205880400280432437067669032143274592546779390572016683751969122870437894172580957813914340122859099003867882066300432894542972119183089441098129448767501567194722463513103416922526709149730304053606817672993690116189056169082796776504454478077882607863492553701529878444666564551925808641309041239864044652110451739113844550167569137879019874383856367371827477601155761515198141879297531884605033957167901285040489601692303648290984892256862283057416914183920525565168835098561659267926735791692748551379173862240392801765101564948229597649022224581172784830787747194243733773646644077747416632520953647147471784133712072953682142824154511658803366234071457877674064535501832728836438302002529036678758572282476687268815369902717967016861647051408116010766493288426857494699291058049143920580420874217003192073366725436071477099495714058429036985940377131016921614554576769476432130366708652010700960309859456700222008077734836861849183908170377465202834421848731622758554874782172989302290638918554138249975654381933941490794986457436350750878077290863272852654158662119976604130263133615261045085655031469534493945383434617239627068288404815740040393362470635815566199795202369270741261781230563993461550424217892346558878199666923973098366048984769084326494778271897923833123552494615056653139070641950046038817120557458691179000349876653511688732639660060425487540322396924327097454855040146837992478525628003009016393615218511918321376732493418528917427491579141809193327166508107979971574073205645920976047501725419946701580296700584479017233894404199615187311619742615372734728147568693291761764688806473268462918186569885552627894717377817784234602049176792226006641715499086407784136447968101288136311569734576634374724963799332116261916122007514740999041411545364667625192612964116335543414394979785173263687847774735836346154691549892224428641396715027928204314019248801539086809837546240424393441249820769934128548260237234230795300434264415922699207121302310428776946972702204365327565647990768161887249327017731503474717596855720521856891854441480284834917071467064696823391251507224925930407589755587611295207419370634573852359261498097330904646549063044132634655376426018971523996452410038276987411718927163084466206355481528374191701588864024368264527325522752853561572752484959615760880539277604754874254182309484848734944702935319798356389908144758351698097016922400933827873734857312973581183987743151572079148360368595829826180251175560956812033437599351753070973493482845763809324324163482351008876272104538267391460436057496056243832251735606068994942918530120552513885093067251597355037286951777400164518172036695016807861701991223139269255713022754401802323468396976594358839778261435428332269407067309710886640580027199728797289487238900774366979770078352891092402177908105034204539832386364956833268835735046839843012802065752240956292291134221502847899796384834725565901419250582562512632572770791477915253753871761624917795951774270126906461531829520333134664131258689943191178592397976156656372470758462924987674618453930320590417609530812707316656790131617570417999827429303448398650189181899243331335689414925484516463941264794982537689330505430498478517844138793875607565589048045428090211563713099458264316438983757369026297560757730866684125661036010295902556191182458566394882126078502592104929929023145167509545032237635592605447719821891806601448709740467812899063539648136656574631797704313109945784073829644807048243808864726425139373316211148604735512563459999970900409712309560210202609239414803245946153235459887114274840739864576005800316685995127218492910483142689259928186260745516362824039606917920751823132025997744730278750872555642104398969054564728148753753548351517123472468954687350570097729577161646079442234938057734142806401028482917254562710979216313634493313202378082639398418036156807379323388195651576236290740333882772526974266094445738036536906794447370548696070852388910034926727729543572044145019093264602539094954161552355146149798322135624516115287041460366459662389836655415063281686089764577124687845184525505131545224754785910442018549199802862042528479485967342144356554963777682962608322823553654583389555898308335690827056157827308056752122822780686835302723386574509398075994971138952669793488594473810225735989980233269390628521732006516194230466400662886933769596593142064763085423129435505865362234664724293479063552933621939007602179476735013796220912466155293068476391920206539553562485282955426543087131829154159892974741092011063473124740202041684564231333019682718218756182824821379727042110728711740062607481036725156235456824176365975217406805557494895906550920958992443547121999260924301300845952248400031645153103589050532279135349876991954463465090060753885070994228853685092336312048509113487069227194933868391916757351482699305281001656969603351444690276046323525459081601214202368956741086783128010624506976015538561378615845565063547605960747409940057104522899851981875776051702034038594633041064397455168061232277215918792034817689107362525239954987458840287645396962767847713831042594564995920648934882544531180683738419382640296093614384059612146126859359476107251986291790741123781324096498109476437492126435989820616812989584637677877286272844375793175391305511832118055997531993640523460691224731111438518202652155839991398180293824863218135017445431945506398530192608633354291780111463064066348891307007155286336053616651479413278941231399165922976987686173119362130847513208982486732260938054604522620839364513556513340060201985078926579348255282832910881937633701162003934732454965648827772526490296735752326382881423700771315461483680963354009293700838853380425897061834040422849802183004188363071127812872049416233090451820577624640943237385771329260295670956585783396484164862315921121764790929897794062839411790226858124584455694648518567766243486719669491542159679112188230826261695277889579463364082423870051406192978747219747698371283172261558905544720889159066855958272217756459579537533206485399610920453269186806459710723816017406503703084019677015540631993335850610775767691916653464386090274235149352846581276421740468218344062307647364633773501135310807691419172911230042321664169516813667975128202650381441411829443212846110388867176204995378807190379379845218383614935047776409998259490061738769808853417354436172959992619543069361328881748608353156107180199050789597881594295433413924610196882849541858376663215287400754043501534380645370005832448160061422252407611400352318405988226677511586089777633516097303906307161226905497632704860404036332107550438218457926855121202233446505849713894728147097383069237500358917447520974789759760780968119170130432673696930325392744680404056933620256640019976230549210542742112673860962783148888983251825892435295265385938874188663560288859674117691292056967354856773746294628714497370914571910479078670292282435165181320758291002779460579886935001963116051968201020076061979702587645025341591198504215331879743769656814566949197224157570191227634876839385491662374389222697052402168730242491705459596522352984328814368206099064786503739137834674017472024493964725562234630048002844952269997333643747854067846220246677776753086083648074879883034674121047584632142896452055803104042979871121204460795118725056398820232953721206119096808555218183268676590831893590436928689717099867970202499906038838751470506856040450195744359524169212358729247533264899873603271265552191204939463479616554224125732640315820800825846846705859406642110244139016651395705876279666165278279598402129210948352435806229179721923559040085135969017865032386245741730825408009896053386766195898416366089878533930710709521141255486902596558130871074665762651689720067781081800162867349118313682914241080566193322952561085680526403089002111322754598168912146276759238395437884107730005583803228541726343634035807926788140604764307491537430455695069071711278018836442456256965710903590396931347864769077114497494793733083242037377237703506608603349023622724170047301307429830010144234899797772311584523199137436231502405146548616089629660081374360297225805611044371158820526269628946742201034553222261181865645344955458159879946565677381850663595634135181784370456386614311938731753964547554554175690573465300949545112420751511686545012451813945537755331620744372124419031400143358226184184261377240753677643071041131238786379992997237851353241346572995347270918375365664053454220150967924108653778887677311451218581365134271210516110694514494230024908250053739056307903655937697766126785101695167653090211249572048505178859555555862699162504594729179426994546965619256160712054229856297761910575201740189980666609850787013514733281470035466707179630874839965047052607128077749150422958021486096208986002079839487066887236531918173197537624837085764941411655213826611544971283737661092680920106181730455147007323084494624726704060419777993712409564526439847516870156319553214000392021775267343203412031738751600653042481092643128882312626442180609267762124894263675411142112788194324492280548783715840656647147519302479464919686583619310711418635495285946080412208304594284186801645697283910037662995570591186612092661028747224412361370462736511874369446871476249845147436510293816697827788680552695549740975379928674195866136102052759932919899196019726113395582709851304647771131463031641157215049713819656747780457053571241621384440742719426069568108293296943772564504581577995777892886651620836273649643505429413333035546279975359617317071405471861434267583251852840202569307565045393504472602971891081237118632849622447075035166117686426531000387595221505546340588615329950632390152366287092791988778260168575499482941776686054478816209695457881358840368835389098265043602450983116089209732368582530429900429056250383581067681765954561694413269277504359607810810413396427006734429927545948956059840297844277336137241815120076937319759405294353115487968700817312860764994052891100893827867993682917468096405352069417596234792763202371734202956537398448221445448127182333226243597347848406426126789609799976118756899371660525007748203551901866288102798447277024817612434397593510471843605924965758695247127382675423535368469632343324014002529016331365902914525816720903809949360112852585188910818954281839992253755358797069925281418300452203325425838732953065246303371311192013773032601851462155768209092498996027451293576593528635224644958750496669384283716765770623129734647342392026469662387281916222323859421592157967272206300102438487791804608427905029179639922788679306498582369811159520593804015694394422115274426949083267794309976057590364829415768424185899179500393625573305830506972076583181202344962950689037977118194906986481097987846951120248110585110617781973579594522058251412502323375769530690338253167321606389396130223731456086493838756151024572416403157286360882948343049158679038471629950621125517549419212194810391784433799555672454127820988578612692685998931477925863233497439741669896793427276337814486427588891711731502260635945843296288703389744698614263360734142359612822088673388442968812763624652913756935241092202893643459996799610362081992331144316430570540668362228368357255983904252085375489257298681410150059057862664677856506838059183165795459649842516066705996868196237876690709315184127012842444795795352316361702549567401285980259268875837547003626087396267795427120592085051307019828732372709957861642772306870954510169286257149646601388293309012418133403571472396262482260933958492440340584192933034816150701473139678881158876147632744888596126327669617679973739407237447422408027235740503013442164546996479964833476073022247342500637263817564098709623344786430975566132914087200719560370196399279901984655061549976508867276100102300259216424443233655992347527316016254389572264368540009742066409895934999970845400131402033301476740523119091714069515154048567375677697644671620738008323261474583389797685179749006003748716309708287923174553781755596003941350175934838389800106272992356645348677892045297061939573466342539291042530433520290069599496011151509902634040263751895202676878732466997249563948274077450078181351779447572447762217636630351387915786983798745996038987878296614449241338694446239794265936444111292899658934457204577872824760601408199269387810599221602061771558980081055386760747640142678213064619219280186975038285110181656649026673635088848305658034426520353015385707213451220519505353523085307601850118324983450627861285769624361090267283775328890915231715155565076280994417235154415864969799611804809852148857031250556033801513305642094755380546130030117442959730364841774989646444318238998691546895503102844378382379578755683645892017758235532421809185378701034233305592736088733230840325418139270204517122425521147929670686284201254160167649457548826308800684439033239483836855917120022626873821649171367403260884005587335578172119250724100436957946205936081092568600332806641535071088790031898835392050972054035133925162067975112734461240818291293927934760289883169974830797776445718779697152214989194346662919345908427234116399743700855365821317017514800873756652230445921206007433772954374640218243272163744275967046143460843451956326837816318104841652256413143026084880260101338903400102013092142348139964902041832060523732185474582199209117123982135675437997345165654108919050003850674036069721455963414648745012683613587774627660145949404836053581511519811953248318410670500033507522070753960731491649878348840002179508313857966002645754780664513028730847010057376011894960212201582135997704794785532859840588509105200336074013360602462279527998485001304325947367461015663959190407023714352855087060823646321020116587578116774900289123171691719787875200977817031981064220290727509663671160264450479163959668318522260083322181223983896310216174276971779495967757525464521558487346104878507644851417931808854754039874215261347616620686057927745974898130664624179711960626635258696322666086467333181962851369704024055805445236570957082017845178574018797697798902501228637227591902503851610142261741437373593659623170054932268475026467323231919188712004637275920104083750290720219332150826710213265662596414042306640176504930378906299721046202877970230421640014002360889294529307393787345972753665308428281081509941227393871008375068768886468112893595685565587282861693268637763142274206976952492257841767819895374823395913462987105181033243653195188670317308805240892425979096115478512909179440254713196819146466903078634543314974201894893637810264490740845196818564520255378736636678581098318783285490394028790557746657417763789550685136336212707512861396046591664708456446460737203767944145455087622755636451416743264010402600205563440849410458546311243669623180615278259500152140730853633502923089764049916329363077906886123454325277452712287003279796821952962613236952607841696326860793439944007866310576854202452390621791783509214632403483814164217081503439400845427187846500316375506531910897144438183183199218124756183744460289152310491352285001443201843818631632767328472154773724924343387907446028367003102751114731827729759706207636488516585897882078556771136280687801647136013510596598803287510549038636583211997122069160037269250947221517899650834410811594750313355043283481001818983423618955101952445398840113626306705492241003360621028489244288185819790226895563040164531428478501432598756591440573605997820841385554466278232118757377005940140836363967299199306367004705957480814240900546910433207221800730940711518949729785993462771436584076296489196729694472663447818203127454925733998968627787322532764289211084517267883159612931318231074114341051360653678588747397420811831878778981343126400579004931053752536903951459998287463721338831856787561302061685565215963354569168802044550253454902754995309123566977556029821631930165295179098230134844067502673496384403582586504518616657016846755238256789333253155337559045456031233327607773429318881237060505358027091648444950749727212350777001649692281796016351760390683085726574500882282259601886833729610891813868039450341610725253092131243519711201013283701347085050664124106829247055894947263696325932810395610720740999268472061878386410472921660543224780668921272751194149185267019549581337193416934405087150606114408956797151299494111320053778986282572956309528398651768041453211472973367802331959254304318818215335362685533949402654787653735421483229556637257288698441726042955382887957582549976501193325357021888904294118231269631276027386452328690046493205139629032334729555968334104930450195752397060169510373798100231950866625714614415548576156267805500500030409610997953298836214370950545607381619859285482520272800941285201508001733126109968673182219098793840205873809784801794087184839678500267953100054294598691876229190525063789079254533778405213576811156850234029678820295990495796451069141621347045934080353161244088119417667329251121812578387096364961020760516478727146704169895872974738875230551343381777903271205443351888275006218939895923249021110428914020757658046121317757486049212131488550921120540120812539217087370805602746117457607753366404442107107778323618765165688779028577854351345504553781650253414995302506861612295572146644199336303186361834502797474447018030071552830254243916721866882945255266668375165952103123758575731495187941118621827181653282294753887614570376290980897256582933151851902476141226102550199218352562111850035201686904209867733507471644459815694326082065171150544330736949502505149134810494710309168667559837435816055437569644138411018281703949303014647158495682187579054766427293354804859049153514494096683940699832245618163500308173157090293805091351835393666676167719696201734855923458933441092213733749096547313958649812917401838407252976486725813043007707240985951935211292975117139394733041671476916888530069479047268981116016353789875226432389733413916026570690245563673556052551227276470406653892293381185414421697476097330301923393454761039532060641384452066469122327595520283902565207310438684028536694811842210657463646743235382367973494014589953699262712274787924045306482860435643278448169221300067554401788409185255231060875966662044585485941353204100894552203047514026958676498628363645997080744978382288600023185006029556733801730586477216791048196857897283270940863765389522439290360356650022036501188262440649715059929607402182768891169273492290275186205513174653066227320037640213447092297735880041784035061507131200508663436881879126751042236789577012378997219080914855173656153836278393096868755168593568016174791851781629379456108549682017061572528654573551795323033670058562825855085098750612079192725881783522930708475998582568481794059878625980419674212242061847985224726380059580422631259367955911677107940930521311529704125158678656277107477512593617125119644365128580014351144142498447209754898267417547992830412691812888532427254892010814050601119773191677656800760595255684570887325431140347034745594991024087961046634636462361861663514973600561516126549624994859221376590825511337609155203445195240888668450353922043184921261731862323846444340913161913383808454337577469423603185512167442013681070129314187079318640370462293987301175088716537375248264336077312035920565457462605257640396068911352117904364478028985990885739560744314403195166731820602337215824984651439922479167176314212564134922714599423523460845383934617334849501183866125293383488164095476349600145490231083848052960666175166170091572576292491319238927116693006940608140415995159775278532627531050381430019642928930680426102728364835314227449273282057430206343073052010958263777363130596913275915567084506956434913901947466724439749510478350642554873230156007415747445826933263205399319628814938855448952559890472957686060798102476303748722224561540633428886286842097752580366899391751548195470547150489372676612526065955224181574039834862009193849080034806659914445987285895372746772433128743870464785464941953384627106736478521687011903525252122710649543456595681313146909146824030162390788407867895281009561817852899805466418606855727992492845908028352354174257524069366725880878952386149138326793810789795906251252159888399412263104317018209674893872929591614040013485330668126647650342542021006307512438744439482692205125296277454382926399409162151469772636692513675844526052726761394247204719115174672453318858092997209024808854450325527247751278594508873268119111978709299540301782453532622373388536432599282579314245448105355111785619779680366598042806228246945430214174583882130905318189496615572961427016597380519764881240228200261150545584414619856218115320507558261869933424020450797906978131300428894483973104770137189884774620497725939784640606514311173093735662597940572506594266750912971124377801278129650032607329371402014099865219082417587260150635458113613509564241438518761409734167981237024577173749167859822125087985515501488874785115024510483543258207943508252239034750155470302786715197950636874444253249442705786512697091160581087377554781635489833539271511013167619129694859986945692020654610951623771757841328363344590313785697236689509620040592275946702068103683169087750785052445320711209589567191376336165495608410489340564000191281553844890540833242287711314818855903654487022910877383278266143999026167027690849934277782371002599719772877602000227302691364378030641101451213284294026228171004565247699257496518317200558231947461597554553833487036210790021044738931273771111487363746465288440715903831106025113919958380860103417068968129216382982120237076087985966023809820002833747606585882173136379145043159356836411301969648928578301144958315229184243908786041985191619374572855820301130313330101208688271125380787627678965835579541130007838651346113364397289376645425884868797735742362087330984320718146560698024191412012008744556719788303668385432763997334736158494185782827987099268207383571627906727580083025793017662081257068917748052540910435119936074231116114660568102512439326691562768153839922289218333580426730430115110785543523333655487827098489212973249224813084372335416758975020745394148369422689108489080428059198998425766272754129282484327624595627389347685630252632343533322659820222261688179319408589528656552777565064667421655792313620839149759887856715530296475494437187688929398266403169423803120731391136964253369965446583406312198711222437692306493220540727479549890785886138745067385208159281512925447949437276088802655445236163685620342630438306552786642182343001968681263776259131705275623549545907596726345800467562273354683008432360321636503987694081896524633341219345815583484892950183341082273729829554155589309725220837578129922167855324608030191243353057347504930286998642077154917891305151812931268911769778258229228566427325532748872281608291605940063856171101896618661008188425865861399966740808045680855155802294299391311744228304884147533853739842475932627674315105626786580716046729047047792045415698728182242443213728383585802383702511314443134718284760871479513757562233282286038158247331574043403172663350770549719125745012118784790907542056851916693991635924700290288100571883389358334598652248186689955982057178711906619839842829244954102956825906573685971872422679049590535664385404752027430567700832479107332687268760377721179836124191880526872774946911247706233951643611928289390478579614270076626265477229212032949243280980855505383138623223644869543732895119778883079166637067741903856994983055837298878519403073455135409372841213077100553697263878149451551753105895791825404697705772981729357145416715246710512919478293132657220220408375080671239683149812509366093040921570548460056468962901785507885962019420289196536570717611249097996024094110204419784664462760684164270836636657771622352951491056247609997895796767805611961205751569882426807774545829020532930648742771567868442716448999552943947372406625127855214666650128326546901045851115194764941686905339715245507624836393331913614640737580381460548107010928119493912264754030640703268855861690263853276104351624000337302816773298411379725155616999674985411784144714267621825293631533113138389635021267515284201235335404023058952787518758034890346560496452100376673113041006077467831916630032676266722000748270742504924683263978142822866799529656244309241099827688778289181865441845279134218131375623522628638957087137972293422162872958197722488446392982646653086330727395540675693318024052775009540850550207365001213939887395949251626378701914818920346296290928698376192776392755776661721154297694077800482031965294661659403107010153190987785431270692798207514360067751742610483954096356631390489697727548569310944329793472547147284351386075915295181351438358894808251946348492859925566391418736375727823650701037731435184294262916763941000275757206431454331136559871369292182707594021212928922936622982780040652013333222052913449013406778256759444587164753720530329717202399630998172995675238027678246979859396133172592431674526001083917818858839216673026199343818768439946466453608028877865217330570670730586929798644010366367353658535742647675805368616769004714168768563672705849518872380581211130271202284623764701467757825389647444683326974639760784399093317070577357555417448003120362083366598758116838501613856300892128441632572506144252931987926695925420946082506596973033146626484266995578385586613131068224879923986233004930717507799454238494643813862518786777634896860102174849053708204216881487984116065193592253542468310159947429452754911722579157453721597358445014122955254776773222943871186172758470273545550792682027493665583238995969837921603977499115233852058480046147826093109433668999133107020656061498898654273035955951348998186263364796970495522080672017246078339137709532334909575072872993857716991985474486153666801663979352655214577075215587826649810282113482063758615234013001422717668494404211839998267552259418928405423846656091495041842805115990894618193158780249319384535105257120239993274391687536194501213941186327364171690659363549484009762115533699742469170800162436151119474351603787907249900856529934969911698601024002325123641255058418681126489086455268567051909033808526273225733662309613299652105973285529959117829738764136083268233960916015048406876484435188352676589524748269438613142162620108463587680605223184501633497572010406421935904596363051660945466939186529667169215767404836825667991762898337977449759438052319076670211689229651481617178895991764442540568650062137616570139965959799579817360368872928786311700895249004957269363709334259871188963322245041556989443506228087390653343073815177253679273279450031113097816795708530778439562704311676177126807254546918461274201811268524363185027850639402741466942509250353354697659911976047813493022303969884855548887660673453575835167942052139416781451164819740026104082804474801676958096416071286919243666519020854450373979716855179616564529493650878093041667941835768405737691108593036789884031776678016126436801066073206085257544631118785472954710978777391114287198430123660842235487983725017529066554410964923443169156171262761673505922083883055450759450202529017308699059312418537995442449659464125255400833801223908452329855719470631650686560112424459121417064534650780611020051541581580181156884992029573941878632578006112609584132627501203011227914514448259493340343615759425211855942442433741189967372611285808276377478542745452367312446010084847276108891981183958493286151562057133018498697213751037863820927066787621042090161513007174975356919351818311189950270621994733814146808990723367261764992489173283998617170541334555240941194732615218707306869585754049706146912800556208093682933249199179438275094600973247060009420232455115028049603752431747162058681339651477174121384307421431616645132780655590965821647629389923015295036466803522308811769122008048265773156721538972904860538682558772716218502786609093023612278730071372897921308994680246771975537023391678849714417683547352956887048976832652012095608861958754840447169703450613520351117619875442228822075573751920590588638834684326545612154883643138774897024640819808366119544491111329415571077211076693015566956894405635355598146767160175842121479673229473837149699203577392726662565481310984354352725902504279989046543295504823103984882693261117848995640096621750581658662942099974813841856161360709183223213434067590326907303370547420884909641011349099861087693460483842600296545117920322427774405868405167659442709289221928460938974678170157196898824444829193123888310093201607512524182230108378080521715114557159579147661858176907203276382291290242626134592894178631990916227909989802726701267402486924352614374651403947195336625643984759141781644711860201429000872440108193215370107429913051578742907987062345301958283947786960411374537201023807492140250274892865139996076351583500587362913021272767329703687757246891254933008988808820754113268454597540163257149051575615754533853223132684081203850269285238129367854581885735428957537965966533122509871307235015330022842138903615196120204665313699275977795164791236187969598169784241191568982730861449447309728004650151146616600328328902315188465445847549104955377547433168056400982795972754501485535295552418305591090776970515363715607559280542121043715958231412364037998709414294622260894481139215247440723814900962440067684871766816786926123715586359608640812711818194376770625904743652264777873955697847247441122161665039182655391520261957131450253699666557613148696189554731430502592107647021781045687942013623937137711413854248229442492733409830248446954011117323009510847259852742030243670274602227541890181183793297885416343269028375571284172610477056267672327179902190668741377491639083707092063971808064710493776843825019679184619442331163836495487132501630664346664566145989779046251773581439195880327872380682560174138191989166732184222774265236620534419288565096266467678188619173305323857427956889217984369605174905469886065231408461885944289965901328601424503814866700094274178917721567752619467784575127177968712874068890067767453646765428903924711153098246245811341666043603174499220275961150144094378706761438798004323524928380488152665157386351235733795386450417436951859104950725259863823886298438358686284667433061114702251418761022990170602483115851841845358786621419313238517073215972519693733263168675615134941577895532981860949691007290989122434610523472096277477625686291198325071665156442028374329226797514641588413712050566370279156823188781116969362562931928523669044038147200800921626888068975196313639834004386425685885649554802118977853447451362291569945263220845796724589954126416740806039101640414423309797833419178090410326290241509092003009902601726963787435306698091409575468756867957371294946783460215229931253708041563918008649935351679052068932709346488426897581041102067384783265137775550055368502924975340326436630552010451920895131917059866807116956496955806658582038092085854255508338616014445032927509255241935335264226329520395832518821593266720835094043002590438797699643016430625200129456724073082607870016690494018688515285479007658682122378838322966862277541090232878300450620837123230725360897548514257009909495032958224959765149081226428578949511417354019142046696366494684829272800428302156504786996186730373087056521984850209466802595322097795956936588060249242974807178983866646118912931226571510926281594387954068050789951635611199953910926851619693035148430914307084559585753294180342554928177818100157299814435939770240690763547303872029842707004501253189830788293222535253336255876537923538102219623585541716878104998045413193673120344244558068761006685673885104206637699927433670375310562378868874962445235594705443206469956586235693670685244209683373241289868503205731703523837556406917931962721065528497650369554541416656641509528764353941236487196206326769557945034308072438205231809977809475984884057993845385891564675345823990788478217652620220697711186338661299027460538197478629802083345993824213277268609350870369394268120399602215777219986957557011618744173479834418034965745454365938663660459679168266947954154722439802331703887008825039316573451816866120922770367068761211295070537723825223388620267886018662315080251369615672315929275932617281346459423646278769715412424665977519624439408702883743475136832561664216600421762369358838434038119161512268802077310561294781933261105493247393737786149446259827971894164732362780384834301243034454536191254425651456924440345706431214746300940804080920528758370687805155135525286945433976025200517053980809104676286533733418795452312578477217553764507111464158738657270274829536214846197815106626776952524676930542151509053486458322326111988107913744673939331306763873861456353144239551994403210218127952898990329927612234609169565396152414186322138650339141266767023564071631242350331866809291887930587787199718385427443834638899453706304555271985850027268349687187958709615957692633980660021399358505524048814308362251480637412592513875446766836019446730324177350570344014928058694804563885152479717529534154459210926470757352674707377234181832276091139138083454202207418366404084514952416625325466497284055992461574657125227793778164439453205446400620899357119639804516761469856776720462515718940419402300888588515263244606059997416395643656076377871984737162189089026537559272788785086198685912262601044399059428876790344792111385378582886036136251063826836436489427224560986262337668809349821009635960144169268506581812109637850371410226021595861165351443649560237478201821276161993373105394442869349020138072472460090941448467149714755132676795009520416472285284901088709563842371939852382020698733165306347513978118459047887987269942685255140103660238181894298727991804174324422465380729911189247871144985102197900353112032099956586875540233481089722088306443591250573950119698833608257144482432137531843442633227585874701398342823552357464805841019685498167359143760950288315545659987747374125852872171100552187655463298723174731661051689607933524419464237840719484127006705606741962492330016794983713419663370393470182375294668243739825366515574104996023750366347210920809852496606706981579080216222186075044684104751859239390016470033696343803575990291772642913886381108264449446973578915708927461070638499693000776246982216332885799704484252909935654473433503733697940678507606436314474514984681245164962900208501421754203906150589203162444780183466493589116796927371472453678001174524694647367279122275389754010675324067646222552387761520805291922279645042557174082284431176102603622504311863223964994087330703525660269291825020486962088273667363849899195725041992456359581272488181169394606264893947789463444371410166023420434068553583765286292304616176770122061111549687876174469589761848543120215166236057400194167775108170877355477662559516790547264117807805410231210510623066305100228574880153226802439545743782525094605356440855537175710217897405434810632377467223114565348182583456741969745728876414491653785525909564023136418770603314016566428097136354897558166776729511131114085069464164056313269836731495425032233989872131103644315340125335439517852943126000325214916068669552233610314003192094374758224719618357619409908113941817440629082559439453409909407224513506960680828093112053967009030191316487716218786123178339765773173305851906208377338625959101063354992135079574650756125623706601813218805137300541318074105891973863752758391671366576419343635301943095209821229368594416609189762283060462545696971886189315655150952480649025802442491778983263624157953314265606916469989652497269405502677340834268491358580658218645746217328693336616716784368345019634002887033404381188793614675106217820709075978128616673283221834866483662892839401126927026307825020753017133668339069698150933249949439270992040037111219198921182094221600982923804642378625853448648401748567801319173687904837165411487732771285700618749408307751227829132772334605184446142914566237647002922282129561628329621608942219767989316536805673018863167483646719264100149471330273372642281014069004823004277473225670752781398820605697486608401720930172829074377720205462084780419971514724058882644371282762283165271761497214059220199364665830782572345417936336166466855147553357346645021949426798768485343407966923023773429784115926512490355761470565635213328791688228185338082677124889514959432402065577097889716316364244521131973721883726572073003875250453852369268156536305265423704003966196971799776824529168063877026053225489077353820736213275720706087558003842680192756028401894773232723707317122210589487002990002081111339262133202885161372576400393214965148047565062234475085533291824295934333734434044353051539372039890738287969404477462593445355366753087556290437162365495252307598876709657346454893558555462589080157972068879700613312837250473857117493470978410104761807513605974289378912762073852084646894024920239829469669029839728985483456916112965143162330804495723064944123582235677823038037151762456922998070151683449397282351116586037728593478618132322347140930556422479294778306709450984656575360340020818841482016007240510280189086877376459872006830243541208528014427993337175626460025489208008063688443128617737960338290035795570622900210042461907383426389041328308946757327555798081418775173148362500123655895397397202740729978163593452675722981625414280610591548616670955845830725883173637869678973460543436634184564866207581144264069949333920810961757264829166874379194933419561735857271447003173049783219354092899589456144563162747969857160614089248554153060244497145477282864319534646931393910469714405354664978328025781109281773574948855247296067994816651134075726346427491535701893323604938095490186721819769389658387611132406279292328146613546199274761676387452338429901331631894206132145095184906941001049985943702648689894183629885923311048560275540374698241582131162747012179890588050807799760897486735489728535299744718351033945483148374065175850889593618904036356485912019735161670013842547826167468746299597496290890593405788760990459980402874415266125633544491893246313120448394081147494750079951674205961412851525686881587165304105048794797501300279897080121214196480175275930340477251725312686576015930347380559509976139688274974216455412319677324515587044619291403532843969362627388934477434931490955974398572120260327163656171258174283614838353040038036472029888884423597096771692089023234286868133285500671085828844656168552934151208483257133796581428420612054976621840376786114876769471036476182832571330675595574555844554811569651450939928695752640480540792383702773006137663304924207462593778574522918629531505402070128149715424981547759989408506781615183380027901557936189253011603240261758707090884583008834195454923945478084336207387333528816741675588174706202856680279151653382963779395749510024880239020839588756663549595139508657753996341430004783675397520633833634604706608391372697716569088872822697931962820534765699330171631701562888162881495869111920192092532114957644417147807370060581740329747442761553030972426314610538973754561436026085474286507796453296020415984312196550304325670870612315171588167735001905751053636256333339049982019429561172028652422784590385821280791798030900943380694021544780230597997076204385855473534193595088537614703125514662085406657657111571205375693062808343680698202855715584954927673844901658029040279305355486290245740407983085217705692439020606844754315397319393789734672305484782680504495892514601515616364623690498079182133599128100424919595768610431072066525772252777754875333376800250956330483442899298285232671809884992623560062970418093052309218790928425532229630169276684212309057680334742328168365814931751693300131094328775628678916010279268670624181041451217242878792364956338863414658650398821404095961713572657380267637128932044473961241064243227343433030706569327777247161470334788527362941127879289781644217817303782325468289179984987304471861429670175344924356648935578112696706524127062132766114259994650295719811273725926539744947779510810265004305700390453650279952092085970620002922168416097082103422156960698965251964191001528378240231637921114196830264755286411882469973543291892779400101410218521217292415087944043952896507109873947422514782760092259035698890479961154958324710892258485051860986108217785788630381187891236144068206588617925258998875632288788304392551787631688191005337200776406744074728377818580936588664888363697422181507083816328930729253863014097025074874315498611469277786030214412966802246880791918461507810488604398750993281107266194308899972242440949904044934814827743626837176865447428369793621163863977601938889474832618850002316871636737199604850394908306820805901877772671276629179639036987439961809442894565120761496873613216974326893533962104299766811394150048656634638148840756926208576022504776472733244302889662521300243069716456625391758001755899529377705298778821115318845236105479184465491380204394730462762065030353370872480910959712980634531438585697731001093326856639112759442791343359004274336079985426766970180188910885546467475116996562778190108848860211383136682047213658391399646757753927019231640967443634212628096332585310762153230113454963643198389978169220058529002610890248552983887772611426598825925453908590792515526609476235900838691619300851310510280079056286353602499265470965884168137381738944266130811546030775362730160494735603007529701316322613245813451939395767614223692594360278557963740841669997268621738984756221011542797997408367712208423572353624361551261358543324504920899686100171161496472177118640640809433256416864124713419514720507236102241137132006303575028726410410572801663252490893725872959716448856252716444483280930596760478455583594895586332538324561328975013088604061969583958381063265267713368852558782822916763371128078519134471919007952877146051753284528930517188955118166240454420269549484743880004254487225595924395301119411691974053976639554265281960519682573016948821684594782515299338384857703420612974145873469789966605784227715595287259137817775512728342995623860005586126836991208930988010984164887654262043705584166047561569326940970174833925671560791101683635657941628841936545207976287584119901958457065589011513776799149152008919003420617722594079509486996123544923781527732828400114190160080373125891791038587675018691213720926174860302403964887930245268615862439270868563471733547504785366474618822876505702010693017532451701674332771252997870051706901931402018848714550702348464997674983093651161675097969484286113304105644971829790168048857771512009934030351161917034207388684444936676146977817260295302529873093105842107146560898680290726439635759136513837740528653038432893128557889787975423292790666249692445786954469400087097805991118262508680895734294471358665969704012075186246226364273070376777094193796396706832415635809355650099877851735670608904162699193653925742895841211730768983827506402516506050069748540667386763765258192361707042263093769019146671454606479850337707563086570498664261815080364621497625338172249338730783341338800146934621998761873813899286919867312723419544126314590354858559133329927649521853182049745034280194133897768564545572878299111232103207272452539800307610164713689946809385616307493314131914786689875729010348780604514058264096046076684191654200727444338007889039814181136921105009392764904237631861486302907650524999311499521926998967877054148096339316408676462712671835642530401367943342034171911393392654297590671008341134700887255763130638489801262352927978786098419251495402930663188287676635117959500791748660670643500094368901997275811012908811357760723196202376061936001618322262106827103788819363613010865306093687239115315030175767300359556540893004208866789789599028903355424406337315705219452793645472526178537776136220829671894120158676620176255355510304682717872245117580668540522888283779769089837591370904435085387076680251981374290354293192191118678836236002627764297958786709107368928921827684938404685507527038238568782647302669391266914444561007470952355185378320919780753531356614886992934465134948106984880073326130947021970750697507763131387363128293479761014323154920775992605507284257785031057003580186033262241706378337592924467301898435654049252788840187471290931899082516605964293547695160205142531535817743406768137672511135560104679848497696195769593952024252347252046401524641371960534082723249735037806685576423899263117520360777486966280020072693894912328763217290559961370077814607981424912014242574905571431408748219752038559309092174963639019607116668568087982550674644311616652499475447821919643202802791884110398452017583692878760640585240593692121469494927101709577374793825013540287029887539242035611213167848349430930634942849257300903204397238076187478284366390347741009430993796879958547984683990189162475899072434304061138751973633422025846462914116102523781133915456407679483276456579996507839569192666492027417635705644531197870042472143077499134408363861567915670731005803156448222206550938101442339255226599868003259838473638281561248783493901127403238862348528529921724758567224839982586703836601112674380609451545600828236301260634589734550130150925199137322294642696324857670070628276988485100805020062535729039387735085589822716894263803960580044125069524799438372145607287414771910564997238298676114474013899008588312246335458383952392932343678573681793694542694002343349650860490123564364077102872702175773444370123244050309394468482134256723557339070340406982982354848983116888301777224226467962415042369954015001871476894622977405052110162350311629219360429771224850673245888084138986949424428087884772493965359472492623172651989901277722258758232519635822981724307591997433051193229752285272195157556759656714214404007953102008909525291181416977745943314198694973196145473204694607850006152606987275554206118424816219239920363530807094854419226142751738297179898930521457365106193204254920976251372291769867212361551129723890971258005948584030935525608788329822895850680342775517054055055236415022483881635643440377400628121919978829975469332826602796487839860945152147623791803470042779954063320932805968299458958799779476562341444618002346445351641809511934581728013683790671294636654872168462455337386453182977222186819491553584950170364902315517571637933752567817272273555674900096410465574060443446149061689660040495703693789527687689553002332334409913001518641854845221916651627914202632083438914190288293419104865658695010237926523251061446594867461971356820272780323561934245397673455477938505560639808769320853073050264418872614081068692100918791139842915969239646352659708407733154592786277035598041710654598769234394773125828612855689858497607369926989846635422480108603926044881753297777647809675590952979327387525862881072725950057768607750388590447372933859135282557725456822048837740505140357695395961733493150541769903274267926472315406517572850428839616958354507271743538960428642728588350507435759213706880627325843079115879130655126751023054057813361202797772162968624977159971009999255246243730217407154912062337410549091017020765306855168351417485923780127706657075528964352234225974269504267004390962776402904991976082111701470007883721166885334474691405470687689343582311159982804303516360004972887488508866174844090943064595817854126102909618102722271488856951603423176030997894742032070518828470537979873876482967306817552955635494569185310894855558324912336563851258805796500083397109428272874717097320780518978490113755700475654184728148793391510825393048805822161204038659542897546329233992142810087034143346748790328212948541935171733402971855747987249151692858128412668345643873263719559401549749045801907328345879688386407307197751962177871768649690363616576498205816656863151733801055104272537113378668421139420646935880953065691294930022290593536908609228715718472052536272799259740738291832128599015640579768733306650004938872485752658097917718210474085332273802442107626879866315123544209625477077902549812504354556020490710340196153238678575363324849917742103638599301688467159416219006129400642185865839603119657787538877793014739249722801999486347280143695584225026665990787656425748652085419870641159826858259535081779357847791681454329575833202630840252193685975415634148967854985201948915705164717622582234937149830815653587446516833062849863065285168318631018840834700562800750737424344750079280906532829938304630076903453862206662755366192115310914086305056131260764246043282191773989765316180700852513438748994162029746389582510664770992026228289666482991454378009961368292451989289615703552435050091614620408773186749912321221353607528032870540311344378846490761626884698133503051065038504818960034179170702776235557461975532152573240573920922294812876414549892482245746982835122600598918693031689216474267828016364686020699009454128076786967208226269531232627354288385820777163260050787696222709841536251110548017886321511452031582075934199579988971650365603327835648319999773000259046932021601365383354837125566909661107274694232130047933594393816206913324387913460438802725005035088675870226730049906996618175851524847450285192531533176958639825026162719313596396388620310605024855796899630228095809825868301145182471789228680801306427147746264225678529499921101140602721985858722841469315443403586448756662418357854969136061123941565283024600514443105166553694869671185767800718099169362053421203332463950219668603569151104487400288906919381851986650118688365741595310921044107722748072964988866442245057717705726831595864002738102812810312405393594855299210411034514742197856538699202535126883907173949148263357808113027736311137081357133774548650840538479075033509549464200490407925113015855433516406993544900609216633940264964376787663385298609776394827174661698697757717807084860208683522874850767893608716005670759940755523123692535692091482802986682572401970227192412552800650988346100944436476654429139844641235596541994317022243520890088388105057668577622691536647238244582522048781969618698693135240030207704176515876953839191400536822316936773641296105036733033040561804567306567267605214756732966632742971934080297516307485195162911351014580674382230769509986400620958497382032799116573802237236111088169763201407584035759327308397301838597121289348805845813891237438042355355357832221594998694217412042610351244331865868427125381727444659179714820927784240343619143292751300375854185265987856192270378306597144666903640385682466283543032580445526439388949538388435749443127063843795470401727325779826645156332609342723022659647397061603961669792731004849742223213662075200781057586252198395828281849681595448214587655563735239648545688503377369768139313280092124194882680516548944661263921652392508114449061210428608220714965291438016528710028539252050722643111051043549876164142247812874923802526882509977089989192487967872236458759278892764668898376054502710755708204578530899091730346778508411403794325493583442469434213442940976852467641955333001010539146037230863690647685009151969127094276259863944047216264836723785710876831890592872207634727647018082916453264152874132482267814420592799478508468893150790858233973882418028587221694403622040419004896715476342821602193616835324743042314842488749705474971495085373797578145567908622877340417956959618033629033775576106406395338898224481454957931799994323654988555927053787650000243898929645572951332752281755195782245278096096476630288053385406651420561583377750163476963583221331792200562107282084577597575861788680457484475326185077176427666426369849391531110130033652109476848958435178240534314542543815115042012053041553166854660347903543321558801378883546118400238775445400727050375850446607921677572005049291869305589472462039159037804730098246410857770176026598019284468890988595632693591828761436499643602811939653257900150541623256765764915305472407769537497460065313641711593176622010831450204072880201579822563895863826858594765144467058424686352435742212849479059075134482957066205897319721081004206379372192136238873683499308581572690578757224600803364270660971526193650449802553640009960212215851571011547367496059380851810817661905117191650300952719664721287420903829364411971832344962091177886556230062575343343009240295453328164310481593748606773202135162336674931491634445352750391965030480815199653040125099970334930852666453341830119795784568147584025763664620405819278833042929185619887540567527570339882161388190620339980811877660078959841342647204029991124870152820894550644950065380955145999854721297170767821343086360642726291637686369560228386326427664796103408686883977746046958038132066918180449400917727903454766182176816690304251605752377581327442796652300344477046552022405222518062914018684415553421778627049254650722085573193827909826875475592627668217149224543041316308010126093480392559131196732497698866450615861520383072614623163662611061671637414071332049956374096644657455324144859022125063654024953976050380216172550757830106551877135228766111876172334766837841289210086731413775682869524486449329788035986720838082893942299890531279952491688341852376718339083712344321335665426583464232535367837964569813110030340543734631240669308055884626531517346456652989419448657067051329982568167909665762540544751045050667022411508026464525661351680847283057258849495987033475933881992355930149723595924035447466224883792690567407639999011383032672559058797766367359903123074830651309816286981599346712718662348964325568087320661199515452734267728756064348258474606033517456755391254364213040430362006956111547355376449412755222119643178471966819211484455456230879803778347787341869175622616561477531958656323504337312378063727953453303363588156157166191034034194665065908031981152298953917214961555397739069456593682005119536393505493833019290200062795509037537052737205777852607729824427975595618403843786915100974372888982531320713091821530737910764439600387365463329084465897595957579055702440086627467818141324396394661345716166725569572687452192781322901530702350871210871112933307999188104986399447748901112256855404171667730098236960177699726925579613227393633122927149331835883654365006814032330652385423435218228306050250907075283502311765807700508429784653181988081009320047913042958901285740171080494252244500130649849380478876742598371725779208268284563448940704404568478769096046047027657704854587581936119958737142454153191752904061666091073392595025672158631023859939112628875976389908318025968625289446512728275905417980149294884057024922398743192433825466070676294965628524954173623727452697913150500567774718034879004715332079401395860660498708997780111384032798535298326953375919290800426288655594200401662082344744911173849814629323528327286310650785831986112722537080610362760294582123847976034421444794436095161198379082221076747089393507298612916427298313038668376016593733912856271528520116733063027375645056163761224654730945729979790411879143913195463895418543536463688897595010588750676880206428225271480970327988277004505436450783062888537310442132078024311300441953578929346631264947495199636612454607225931212111262795484347999844129910128969117374410932363639114126115058688070192407941265199492011311469382179964460190213634692463842644592707538671907954202451046817865775587577319864046892118850439817060062119407441515288395298205060602307441366768240938005173947641408892840962553555687740804314613933387804309450949171558120760299906476165005703313272869650707453017435824739150087303469957503683771543804365868131188056916851659175643197384614196337541343424711420247781017034206784631390787207313235613792506794154539592268351941715186924401140753065888652354329381495906254618420956084855117733998483799842113482722436679850769318687634590121176602345482140484824887721650886608049050935552198817781835368466699681278370208115325197389559024677746143426486610229686654975608009185006505647168608674748139772818051707848605207905778853410907390431663048959255347727867930671128517311042906222002966453639402977320415440383380156723860057188654120640067376964387040011160869846043127386962589191346495645655653769563639608916355928971917747018661321666785326771463754928952280630278612785061141929683759086345780869258259586603014646422049464145998958761177799680016391759183766340501849558059104275650937573411360343577757204882258211329852007447758770883650892255382201209306804259571254305573570426661863654009027828080957489028110641520938967095396239467011487782333927940591420982067991801287062417289478996637628855842023642258801385085441580444622758022053292576001123096183773981196472697510771377395081162514120893365155508072846255071559208849419790083362520876089354157300144272292102771642598368770709192199515257217038709353529192464249886327335698580019708655281156327787296952653934333479403296472619915653288093849177993426048061920931482620173943171360683076273616902431790755064396827772574368438800862855581465213319769079757280203287742968972166221582363237024959026218200685423011908674743074893689773551626619823343978947176464526663664018500604942226646370721499428856964047064469232333538243979585920160714493834662278008627854848930662752953478171293604047102241046878049411810960934533502541762901640036734421265649508151549882913931117645296302805736864578089556242999367242902999773706914693461905180454702504987534779648186249643875152583707108117800922729820192033750485996487582761002596680012641974208605243239287796099772710693233746990486492724714300609597768308970930932104954113610800232694127861918012782475206446201603407492447175811446594597000915439840918531630203464337554506806851740756937292967256293394600560943121487766145483080991291561897040674418667521888472178121286299694821718288309706005585041424033137879851534366856523318816551037736045854004512836454662723230508687192116706351920588254098080094420522861576581975022570167397642390956865520155234986110652661275270324859597108085259574970332672387873324539042347352803299869537599167824057227277460470465615509273278988342455017159729569393193103996314613156367270880181414315753306012140730413502674010719698344759896243293597546490254363173959372704928131892642359776166985081309270180028370075664752173853115638863973952570923345184744119863456826379191536311269933019277694342271695095965152662058916999931029862668862447053517495795837609057087117869278301249401279582489331139140474341780630202890224565364221572430853471749187699105643638220110402686302952046785280262619169223975153024814068736137020374606485689710034376336344245195094320195565309423879894394877805330463374560858248565473644355855713751896588815695455640527109743776600899578479931527825300400018073195551601494054110450548072079372481043069172126911026168879110812023987914147965355822741548396748700331585091732726134712648776782863279931521357521107191961293099597494947361566495053439704025997169285905196298830497525353524052034528481070970789652470813222730213230523220567050629712237049106523638965749844534245921960985310182076286590676815689399929940884763603751864616488409344210550019947191788641173860845664111871649087268997157244570381661649646802952925963229284498418335278874242352421861138004463388720103912644593382094819085448632964460759404981107414453938467882518998749141310592778145491638664492784292169947034011441931612756643527881752258404526984288695711737589867228780156577414263472157753181838301414680560975154021547554897605992383576638582370810906186507156155596816428831877133192728856999632687581469389880717065085397161411069888741363215201699283451183746107538324710666703978441890207450720461415517607774061817063338287770639337411420854113286230140426119757680698732279894492997986294389380182477854530137178788138754295618360175225155634224995087528301480436893861578132002392589350505190650340064129161050527285512446048263335447726225174555727748699395380384796538425873578524029442707805018708085497028128200292056614135768326391256292632126809626099159664437342640153728196485406916638685382948197599690789044618847853754118493596257482932523874628254742494705481138868490744416864027467709365800430104184849037602970165692882190958242982808760820404077296833417901772454064424948107302601941395266225981371672365000964846008438527099857502920041920876551368808404058345918649618565034107499725680084079546167227620900495858095300250114557118590335379780408129045165608743849216696247732684693446419621408739700011986823829975036919317204045413655743542349921715863865007303036046046869835381444066025437968316449022123945180713430633656800610275301849743258389895548048751320735054962850483291267201695650436627133518648279651014479779096808641878847171095156380258328018815742466312633408370444652733463171149781630498319782669920163295249305068742018812820193621511977583901500379050921585478343853059857339860046951774934640661095787307936396289768510282462455108272232597658193352447141169118408860712632456489011726364480217962677480556980900965944646406038412947327346965962648912973713713936744601628915812800656327183777751025265756552697504281506341915693706942929340394876453727587903635106204689993238132779101791301474458687154009321173652030930154612745962645415614474653059482539338353457800165430221167514416067921867174397165679096595668461899623996219522207516180411068032643011408278240140223493719279017461326405625916478233125742849010041655724782216942204685942466921261064680343888270036531596299989659437560259407710553547263390479500725334699866803164688453266884857057917541415004690283071148067412165633747920581777065528410321113085703996504752382799300397206889854899655129366944684603187717213635968848864520115127231702122363383187566879126230274793404407085682551131125886867202511606614294313709147944415283499580577562894867760003106640524433596192077926088095325721332495910378296970124316728229118518790285492531567785103034091382417949852688189833132109897815028823573103308106590893018861226307601368502242560979267166601685571771398951429635939309720503954448614910694157571985959794882967716535877521470874594546630830354910863653974099040293276540485016130435574996101755726009660314780826034613083478972776436875329899804320142032975536833663987475280144268376641834064499043338689939890762555506976391267257206657885209500214939033350912159792558899515821276231074474114439523517371352292077157764884720316960763042731116930229084197026055221400116973155304344293136967587333792394775393873982912992599399344377531797001631396310936604725362899774340302814958827226855021865261346645458243905737375446112822621090500467517132544572904604707399740236503561796676380758267807312502216166077535324158051069986970710726287590912172249928197811421497549620243549345215638275078853126958249085288184519605159293332549077202760264813489220223532506989497416088333619231209538145328187733783147505136984360419068780646925828143222788667359113113516915826204188597212870936183637993711872151711679446940716526249477309264001914657224681631238092325601672249175129590709981667445877876985503064762688507252508846069126806009078341056004721041173256181373903381808272007612910862264495061823247699398418979890471379535770493545778424896249158062823519207801400144712244571962318043954686246492061518550012814802940727531634176183230324657080735931513872451857502491339298882673811874583339670277062004693229940472372994385006748070936664267057493077602697346543151060481856302148452817599830298812758339048557192601829529397835599987399046994829850024217164929959044490349214788186720811640431940257525618606339770765641449946046833250285602294017330958597581117967308856431940987746590646941902883262870836645341719219728684505370213807728833188720445257555744275512959235992162233444482481680344009945821866186870696925919208333077111312867013349056352443032007173638122006118467343885375770024446375757980021152843581898569840407641866679588796259301875090839072728620441612652779237354922658909536660997712660270255354332390435457732222184319229716462753008576503272089933080864787093358227729962711472772004877053402629870326935209839056290241757351289709743170750724942839590648019583696823253338869657021755758810458468907123634745083146009684039368418420914372376692950946853964724659860891947239204642701860265338611070628407894771441292756088319045189872782018803873570189673283378092161758564499898800351979555540887018967836270611391427790955170130577156648314156990172099389055016479687680209903767364048911782611669290234113741353732277562913299538639726077302781150596162320301748693870553536570401632098663221580698979959556889073778764009466221519053006650951311584317730353079171647040026366333152170779678301744845406035325447777767854801343677199940544785406775991435078781495057090565743900826386701894235803978629385972843329785714599124722203832649806526245841128424840047024307583756685212206698820990204142882724484559567593811776802408175745363802339572811014908995656112648117507618502629743140339552375448881686010098588135243642679922793967686165320455037360099037302203927184780226977495392231696454331673448892274917987144085180410334501422288275399344732289239868696138915665145491145054394378863383487357524492670961808938471570812640739834482280026742417356839499862697137290580831934309562113827703158587249235515652601301039340936101693096922438468045424921874206778605732347828362180604756433134033166013409595389106311904886926684773070158883150349164477437656979317416019444884527114244936157516306188401863935278328273884679512289233372874455763409057163253141206980519018116397705370669186804176812398262653853274451033331252123854730720713291935027369034177096824180917383569238745846366406678980659234993403990010712217926714477784598121758109325509752431237418177136263332221212025370573393051175756985012436691709945784226937823173902614783369566647430485459117347570341666848829314625498664052394607129985622672773098539642484538503407043414832211896131412015785481004011811612766595050164054424144769582815411406987587564307291864688395570102808230610552416816733369420553505861731441648365469504107431721452908786952099574546056357471670469949989324724549639602656615694868806859892429316642406535732986669070449352399941655093234446793075988804873997041229602507086684235217417797681046001352185457380548547131695307675010110361911833170077317534945407650522346146707862581891618524252023982975532503367459912174770947412760700384947298152184231274333437910539480004460630713994533909010282353567084694611558734003201958890045059237185022316686675062126275589279632087072262708470324736282741114553553597081411398143096202914089617895525912378096449790880117529376090059379496454270733769222768923262723419961694189764080070761956790907311721749373097567902775865939597417587804655398210789841442725676102916375165007806487144502905309067043818498251484119469221292965254926067539488627276584733478542653773127828809494006023997916767755326064285849044761960894993792875183136114959699039710544049270746256105229668268260039928161059603993908465971093156835728482143469190667472657210275952644222759739149946315046426304607873570158751811077913547499188726661212146402418249178935203424869303492356747106938726212234973235928815711185668733854370767877414903434157566917493308626672258706581266418748801713341284299608748576433236558919564114367642011538659436375379664142447023479132512048932636132886389942746328310414000811584808362068492368811421848505240284420712032638262499483031851034267005319812208124231166946396925372462046712262100617858107846106679645553494766325880011537302212218722359217816026695256331164757297314099249684068415927502204689362749848013686570507997535390656356895343183763213095079144210586046247147795243774431151491811410440450966463471845104487494336290336625814739266079775182951550108953376469101256938482945849596298474925725529373632203824440340120585848475966852363291673950750784674312975345553278074783788754064176767773178808231826899903449652842911491111073398580610926249534399540483865820268455192078994502521800316833051969637209964491654676996899156969322198184220747207466056064153120848037869557249593211100083514181223318598073931284854096809644136649998090802802410764828116989421455792762513717255244960257173863801142378675502070601223666070164799423335302940486056748124462491810026130047605856204739904603646387123172409392166465046266065994151813493932146876646099604179947612479738874575281823165960268837092487883293647095997436492040160610815598512851774500133330402694132185383729262600177739485574001945639865249981811172722738711093091966339404780525876989904157413271692858748778172326507506797321690835660614857356809506809269656751519655083020346453893811113020463368951853652175496793599130923737602285007064895840491937445431640626649558990988389850500519688079343568871312010099949916380495315968895059771809975762220716687508604965388227979840070761105558830480330163373162959575711473128802437432415637403774741665914917646188898714064848697086412844667959093663276701242363087620963100641212444729294726071977635566879644000550933767006359035366045898978353393175509053097372539183712550330994378858542218994070312855119371903507346647750358375014085050516250444031290488940401408960753135993516994682894457113851093087263154115706805740915251765390889829629968229202937124610522472582158021912557857986480339100535360511691729935460550521134970442408095143035616687342370184993890092596827262781071106797384327098107989743292517069925298443837553625896815419570476225556583664850632649430358563889958574374920661137732550788559750955269806681471686012657403653765431243581267636802948624418958272929942528323639340531450621418756699708320671956184128642220974491294542483430168405490327603668911653634957280452294383798950870677108518961018447764583770433968755277223398031425551139727507066481415173766289404289519124710498927897430771864277818466097996810591562802950893551331629580855333508217287970803946780222729802177896105635021565475978381185481529530248649125176343556883032161503472039907995950868562419339724073947733630678876422164107861996355448364223678092462959586525068758856432177720595803597592725527683603858188362747162812386456182842892001311932779672641522543236555565134811187509094293441194427533028702516008906075220476518615090333205069613252991677052356708121102226154161652690133270540029060154052629075438192561819939912358875118151836351817404619586961990339046784114686895878839044583117953876677286735163913876807578294242052624809267767847625065608039172103677007543679428018662721624428892622495759580596121717155838615715781140252671642101562525091763420462717911522550237836177680863006349293342620293570063969556348539821736820076443275417154723377796669236036634404687890555174404180257965083267846982393539716222545618310865648654257281164473481886291392611950292429314884645751974748944208971435800142781268693843044290118885356621234150387097737626243204164792892978356131056132518999460425699688369597701031721711239127717838519983495117257483425625636539276268952003118204767481836618059448733898614479777690313757038266839987852963088957021581139029490422801877621752164234958344233953329797460266073166758722154028397936645892515939836905241043509946463045518630588421366310589118196161776805246475215113184960538013841024032133672018698630698699459911347827460654979804473233736963544900915682200507532968650582122123783159174257510623290723607120371092214622445731908948102832249828912507636079457257395690404089763932488041557685736128138485249888177079372418866443616229207360140258555843281273039916447904520918335213414750548887674316020035075233532893955787901285302590864298541140570840577784806268171917622883540730994990137085736394489113874080225681769914339286840088695152410294936196104406427432658156177541410753538560778738095464934091728142908568696695385451578686223774726438122555683100969160017362965584938754111190029092751022230702073509196060585369676271437951316744026509488228343709064134856374227929841557338458522674226125599084505953931612484943283374770126222181555456401520752677323729096214547682327495106396043105773590828028424566367133188281142694495773336658985004582278822990028325300639185064839713362288133735470707620186699323128492074760496055278617627397971957588992013989968164304984510763551194390827664224285192469632596435898239959706554993274033543345059427188363241950522482685532161845705402491361787766862602311055533430227138089032204182895649364759180457839435536642074672821190859535230596814291059892748305620969082965074897666075491075915188848802090722141897758361359183602718679614780177074395604053666867197031119470926397772543592508687197493643564127636024199007628966740842528836025146744095864196514620634530509525909447984588326850613388010686600670262656810729601025132198915868485853507029194204439518977548879120452467547049331888754219043336366141193826952953792415241652582968460750886809268028003450854222282052647160093451766350943056784170491092352753437627755677422400127121801129464320110858710127363596493480335544459757365941490996286332628294079609393651384829897058600436851292856656679355560466162107014101706794203424460082201683183693240846789572026324810037649775833702445435094555496619072750484447160548505319996780673800859277706589307858191444810191196199601160627559012662952083699770436168904269660169438546708516604475011375596136696287222922361058929093927427079119828822777466661410379584146077825170278301476387030829953516619079851003523409407909626303946144749952947870054390595850199039463241537902482226191632000664247785855809839206374115628921576048833918412519728219457973701401667262477434988836720419428162412726692391115399085339730633716196105134697140247924401168194783666617138228498158282261262948143187550141552031537930413069550746402014385467233782056997337814180607135770625716161677943873145084181631458479075617738428692822239841487331787835740711242872949020610918978628679585202267562135088548684711752653032334433724700242111134677923655367823635503645914496166730071006101935391684662957093133689257116640293074117473199573229959692830450483246626976074090818736732426903415382424777286378387605805294043104729512138247786004154561574946590291815664418418582772093714606671321432632004016271796871590010997132347979386309756935265292326650345343008481647050544512013360150664761081978133519969972941446091280696949741031671899307967180154525662790366849123775855708392457751205299619243443840565422339384976419815863266150612587844585032771841562611187714903645870969563618876071097202583202913199264829989500637960605210232449649093411938080114337214080614538935402328767623298562897221548193981791953903218636184176591091919427531972329943401666308272807345609577861167219075237885582128963330967051594773673323725418483965883157927684460843314573247880255813478159922329346924225852801392019159541355196791198014537768473368203199832153699507631966107440878923893980263381641996766255992703353589104592918005094262749741661826470293164823288269943663000567756944698913095927624664613971056062240997249436198173131922917264355867692208596970318153898803337996570084831853894043938323717966026491051773946678510237158776084507850390728776782010020459381476674953991565106234950486886590526099059626117519247791613224710678992499383974866231730449574200195665069083609960258112772461917627329130112779631617023446771400443131603654957148157130962607430081764491661263055398398208914017900304143775793866036927451032072121487158379382339043976711804878593735328895475058613795918099636242121318570931063478269016249860534131504171418783281046064483530551874855261355048974721376265816018980026135731525398752492444048426811354571315968433315410503753719219931600740209720707733874425988957987940466972454620914305797692270785162308070319957951267158600825406636978553177695169417015607268101890900630088821154613922198658109369471944428004109316017910693727028426010586277763033620357376141124183192993234962913772991406031397052992008795023092316120816191267500119502619929675938989461833046268854105146031036786411911501699170519013250444344159206514813453970933821727042128136784890110458433097532199527786590927259644694682537266675880652391824646753542276257933860969720027550966333113255772695572089726755488610981645829526300055075125616311317057349754162799207765876789127050389468393229158449683149301712274517820846358880611667056882589339235705462738638391665411962833212780053062564664111305284599360364558515842062696821112683965058347980085911243235317705260070000524544093027437861113802243973476485224615439693500568883958292305894409258452941952563655090466709566902928688011585353931740497975006108381691033498640734952056699764125367725705817241644602240112159660521672684768891188795497289369116272948404685800321302832072290100648636674301492484958415717226437281248881953903298736840475312825108734201638139749644690672446910213387965361914851467505176120852756770070776827193334336710731614930356880843426464800988957778292707487420028729492572069976471800924024889592610691117687410075269396130306481424878722875835068352740801292927627109762603392505374073013667124516263481377324790150386337773282438181901177328985895842922689518758438582899946499715363720432291157861305251866931251003167464560806808472892909887493681813413278243524281187640910872982917207974541380379999406975087176322063896070947640409058115693569357819780547312295860876510474059536284565769149802572541291107929348715182400013319275238444101084479510350374867609190940051319714395401709608460879721095942367710237524234385666363644804607138006582060499415854605741119655224085579405691454227434437144745555606468873842823919562816278449824062296748972630241078301217550183514043948474023610431050209554543844241931565093133208314179972261111242982075805181357863684936506289254847786777589763666443057897556176409745238538505944876724347429704166651094195225994640987344159302424248292085357803654832089618917433285906988023159166261986219426910560223186762785877330731358646519903743499225334669486306263644913901478311921732004892483221773488535167567931443448140584794312462780054215927054962592094148595922285213547509631022604082643326290643076928155916275462543597836240937284493287489017237014565615690948839442447245982530659928854019678406665307153568384538067292907766491508046988857101931261141687479238919884752720635232927928713527924526430218901538095237967554509265966190819527693736644446847101035559813480631167237161599378678513502431278079276645180672805251553956663463505851715792073559441932136994559479151010043704383707104864306025198970054756005230621075284670537729103568867476557864327693136382908998781949682838625748172081992313545684921608064259988056114955996056120720827438416236652213880058439044979730381658293778921712242974179883816640724412614725610995813835918820612165871594473174368152550568266418751708667854562032209439661763327882076473903282627506553001076682347281824928523444577205895853122037342361395835301919191888417236844633565598578952922711149227797183056980919157851736972932441369617461156751960887750978697588783316722169255972718172029846152174411006324410455018756299949858330107045733226820340503075073955234647657594058515002208930231033878466038486830842001426852029384177309985407546450494047435585445331833469364025771155653462113848753356767815454510518980959711836771471026760768736194012733013302489930334073484138023066012512307571468584265360857016272689858225968426860187026567401576618843652273010867926226748779992789969289663420130260483082479312274551275032331460524154591030449082256776788901512320191651502934858318147052572184552655253203089188390207378541380544254237938610841802315952632878417608357413589882452418866159159955214463440667892149450773651634376038516738526817332979219761336388516949568037206174056244683323931441504055725985341475975253503311602257997020520593668845126543239942099411470353489900138527731897514104623352551931817490017723625635184389666605893972715695640602731726688807201111645295630536501422605154794192020200368509928512865112692782052004490584713326385059008785508947510414716718654227674249630259430129521032865463681278355831714898894297095975319872007412243965976125138419308561117373640238279581095637468001833053593079005659979179465465237784454573865703433245032328872145576420638860080368262572686098069499637187593823025830853553927332225789133939233284380465508022956259149712216140964868841544133497524948776343216109838347028520994575342984558102469937527762106224677352587641958755469227297753026998308504325911742741097664934084179914625089084154769586631067346488050714162879658674245213152509786539215090476573157563802148028048962611718246255230691075212525359615046273697406137633421370357691870265111389381398774979796713128087733080046800228892003150640845803163852050086983379983545426071054022912162498436559408834902032547707216734642513383800995170543344230676545101588049947794961904668463637815144057556423071707212829926337156812062549335079566435849407125520458338131338659102739022078368056205060046233506039607283969668256362490565560408875681787073948838751088549729805886497134360212836981580001271111543725834866571079759980490874830619804619554923342663076466481776734821376739105306940473250880773811623816764180130014755378202885017604587283719129484070638447285787150538954317758783322586178696303554052313873111605192631848196177845070345786969843800525292749553113013957340275571029933277549710790205232040646496710522947487713929922730446941822895692159209700972533028665993125050161577430497888988990924936061752346215614069117597633372212214577271425046451459314955375643881270384298192694796116246494911014199009555144189509111381115907233143182431866537382593167252073616560702900321945515105278746646162569855789924122886881655801158518709448295770938134784042598439751646908035564034389293886006105837347384687338798450744103609868642324139246090905600090963895438063581907376825709176599069946129766311670607797806241052732775993880169697578043995318626819370416561656159130793104703523803121148481915243617874799719914398789014784732275777337794218420018207593308891497216734242025785331063366892721309213812866419955371441793148073233776522975206509982540054941899048714561378533369229826378276291549084009969162403613609290907073376587909267375000252544611724881711447081899046686478612345901066181268582414997248079611746809157243773769849087591183893712444003580423972884893937222518144003514255332202480276717731035405656355630330345078954497071819495209832030721927635312838527008102892370626262190491012040707151669732256998577339266934811682493905220647048801687852245887409169598313200361539661750962053083424358785792449160589470499567334692484176404973989469217412183839077948674403048895882924508100748882967716345940229489212901941772196406440483084920474545818378255514971595228700932251168750928292956147118860612071763062562981046193595313167396927313431417834263467434303981516782994260051308346558141231232289313875742757017082575527541607029616076281342882128904072494933823419656177691681518422275980308778939243935030353474229031733536166367705665101180144056251800125723148952360679047301832509623583782831508200874790229449238515823263333022841101619228786103506771625848978679283648094309781974743754754640741837414478159981177713820539831838103824288001359283806013776575850495731462528625584702762194150903897294546389942141508952769348463957292880309592618953335388245212592620437975492658023216777727783791926467457806869828269803848246105321329785533110261910945374442144862083816542158850912568085560203564465450046799757295343719282801126444817309636561244659468850545491848453154716794936126345205871089266511154929905895523010048497157940839542820477207902160070956693547974876081234930747130434455708433426664203682979211575175832129670813304153775142741538890907937741501479409644062791983324941752129528279106719803504798253482724045662367744488934412049636317913075685605278493081191782291243149276342474908788319753808988764523616626917474234877695823560401082549655593074531459965147122143839422623512207327489749905701188439602423290544941430048122642700244153744066712337535318582949579914662036506856664719705792305552748120252969861208970249155386717097979745982551877662735296665659762709832321395609434697220532533007448381096747105741810218788552244881771385871179829260261215257308169898545612984379299119073578753437753968044915979257004544311797483196660047616311738065655881022904052062955933310756960211504699321583133574080845167886448120712074485993836106394010970285766917927668169389693116878258971473055891774386264008348668783956315026979934905959995681150681108906678223661790780718292792218581817898853978794201672230878914312978040212837497334976514618626807950697016746627534936802330814303283578619698087992884177081767315220189614860279790316883059190072634618459034688434527448016305796488485290971503217982480439890748239507640040182472974932951559795897791756694470610589244983888495007432523617095520793558171823823141374903204001454905999315239972847516785524485761981521490239667785325041964424941090412676876502047949729384662426118628690002559266800086211840292103973838177890078927771534570426741385757584901250422568394387748653233243862146772493015573140113099671910513938863674010212154835050097238949505858724424099719787110389080409655879654574472268127602764196481926579849971129599771446626943989135015756741768535428892269259326520419306704764760453524716672025497348347410680566313895795269187230434467156161327968218565470780181971765621434844209898237362373280088076976882379951362138499295028833244133383245026311116810358701335331056707875089961195060188640789795828484246765896705596870290973193889275162701238290204396438378654851970996783785965129331471023534759748418525072943699443099750233197962036124845661693447250961619476159545092963402212311668794646596246559934832370260487040126363407831063115631651092032722795248053163096407954564767054802017560993209718431777205740674762111004890484942219503682716106532742987634813558971979356384616828445501371021307945175151705365510604397627310855009297403509039524631508835920545090999513559539281451843337105856241693981353070021885520401184839912476293653813833230950477957683867928759685703284933080124839144022888133596594394421511157516870273178073313586153989921160379076052122433579403940784770276713496406289467167723482497939177940970269287214094112231670454074496289765107482477792943602801530758202726436502579756216097069341634970059925470477814164861349975006214021979897897928319086000698680056573898915910158722455701133614352458457056594859823286956083931897313900883908487828174821061538314187486373363968288990318666556258957468550610550553812259035604206518418281616023071985564261887289319174849234205474766959919962050687222656084769919926718021966211697525814243935977941847512120340252900382447127283118022879659656895898546387334941225715704526334802260918158723275666455071205960684308901163584924639827956225669426132262688767434318873373770173879499830773075102378257460859797942622209592604569617068594264629993173537962993612942434742458571564974002768955946670878186345493188911412367261738683376069469051014397081093134329646698053977035487192440484360824497485551988721494872434188914260410092107543139896346448718383840650653697250700547881250737957809605209034062168347944865430310461606357156742531319101359136615397953784012232535913184368822913853837324591950715612805289240270467672581335250288323015135955572436428884040082213387720069211870329159458454704317611429548915348209724832488624998332903605843764006546475008689171635305661276686099205690220788078953194810327441590870144307665331555794532009045180720272399914612428449055756178082207425673296612515745368490333942874861214300489256617506893940133403565888957213598663486720623175571608894275594483321428240421747561201071607550840763698298592544064519071948639378943750217338695203374890166343104517121126773805534393704670042335130403584901742418952630691869153782076769974916636485408614676817921696120875714070882865651897459610340121308051739956840385434149208657500589331457717983230202650670826639436425664144937597195853099270787046822470145119468514607986650973210150015412480087830745134383153231882443445470016272406380619673565455355016306690853947911959614136456927531307328943955658374573727938656756408343788993808791009093161957097094682183275934224017017354587779302769538026407222367100351633480580910235205906731325716227749989856346481495252459104361341227415633502623515356730831385761440631771979915699623060029593087937886321765009443612743549098590058609137420441057041651975228430376692901276020388015466233836110683590979933676937537146190580958363519049913722942690625776873493988692481274942427667310896817743529824236583710590440966574545631802626670612714957650690181030223844476854309556234556102408799937184208088481662491944965634964077291084633366684715333110921742583143560880147516046056353334726601306716286623158780164404353654930232827499063648070656377791333058080538455907265497595478642742011351492498321811192079509420051764988264092636048255467039246213944888400405155241694874323307949480000000542109648975406289078109943222305868848275410349044681809385028277818782155220768768252405150071909009109582746180022374165016178088281474839816941366554204543483009382484337699647947460050743672983682831924332578016112011956860880599271834437075350752642477889778292368637770858534372396714750325745454480081214779842891003303689491879578030942605344956570291273698619787659047451608929669986193969746768918665033177642812084437090515446607270218113366243774330322138449567546672671052600527578289101508023764040746313335651176655703461723834653090600669527841019714182552190992064898270615325706296498321681667419698125029311165037861094925227215219477220848592330077635621881164725627481656870499938740298498708549113695948875687420434764986895842742976282185037151455486618423021611577758056564257858683440857182707881861741590159873467597807033293846215497151552641208293503319664767429384348229711638228985902136299182507012468168848656327931197118723532643151467957296338689285792548792383611723190105649820608434343154666943903011195245670114071081207423386350747105771865474555715485406117186597012519741162067351093593359651143231926720567979253008543379090982667862817164972879106369064706735509129555249127554244752381444239428962762361857060960030137575197137160841578970192798653474767924163393679900178462056292616510608060380979046912558748008412030948584442260334862510611785735644150200215647498825329043766218176923860970384525469177094081190649991511027327851765692727937232491072002271972099452882232545907510605627267073087698018395910495179651858493761341176039741709724275927819631170723162828975538660654438667562941961888405815645258969232523825111783750251326401831533823730004647633735537284572884668861292941420245352405042100326968607564205085944262871716868165126453160481345233469503270007643201568923035064602278290452490204873955092945803775196802098080844719492782587082628202418986088004141565632382925075079808455759217923726615631515246906243903177298365342382503866032316753736779364505934984544323079168596910345853909742263019718347723946174796910957401490024247600432998453601024065221302174589695649403195430738366551688056481444938103058553503534154733929620549762014753802399022133691784323809531678665520324215915761382637334533052521373264393867252426374575456406698700214729414925277964569733109119713801944706681469015550491552185088053832771885675833224039378431594012235059507611753778275708447171361264669492722422192688447221610053437845982632620712175337953334858618901121948295146053186288469238593091293506242955851613222488494598853727177865415225000235318739747995810944106184933259065619313200137491189407569126431481664117221345913749053501835525465956567461117138792537435989722718658461316351583252209144758309538069271572782173019346157120547626918091820899414142576719760648171105704334516621239725564758008109745889366098659448469693741914358554661167592372323849917019917253430759536193479068214402363171133140396444676641123380586204096404121827210456181296011045990362582350323654855784987049437062966664934463417243468577623749017566859739834499187361229539715014984404651126373559267989539508990106439921126907442854379064433034115598181798716226960057290577214000058022283000555514461164674417644362500964735724051194066226114820249432090675462957769200107278948297171475206357302354954847380698693396701016580612660521104425127205854747813492303676235754241225896644312388075836409690689207602994058849427281414241523404490588634040427831631196326319622982748524489071037966080778459549316012410067968795476615004618612914577770496994164534282432955886488500986179278642054322550372098192804184265328512933262677547009084070424792115450801315226451673305163206294090708423257997874379469582912179660289354844218905437131645437875293775233549253081603976314849237967482625412226665046162205548678135701356791583238862657613045069300749542145187444032994882130647053984421145531443929834237871622439665825666648474084683642207916744040892687886523743411290093548767760924283440822062937998364430640747277341941436727150974857371103699135813239611716375367277624535979310144446291818078672272202818256724184105808379018411724528592163381159007605414235400199389692974506976162388756448260783359408508835412308730345893266258310687487963722137230407841916813410631543771932009481835875874551403712983289776135021831422407293575570604265110022412961621281607336575637100845301544928393181279442545578217023239463013097947109560247524259365204680460163765986388652228333056687250173450091966753556592053630743950365483626153387559877214209168794673268734742675837384808839732336118516914669198789212669346896368541032369007306359600408019007246795498728323224671349021515391614039069866284910263186284927592718103471633951603620052844080124257526972343106990093131604562513943774288405625787454365567863268334897196681160360126786733539452059114968841617132390039430271608090927207742966200174217164917328675296732955525209272280646406608935728054137658563285482452229267893231663918833788914493924731912586241008354663328162811353488565618071987073945742129548482018321396373550106761204365389371588323503543080391929592665429399883608652513902335181226176199453588588073841159508923876469178597915725102479867689200961116311346386659983540696310610837485876177361529638753580379038576134821189386461490194201580866509733020988451632420123713557916643038888616631965549716319835779845337773408324375293091558275223687820873853600031946919410711830724606150957778349581843780179059912846498968792187900790097205115775035550384292403887060395946768560138466433992964671166917839603822950628930643544706848894522196941394930793965539971393095678365651749491199162734245265057004256374613813885737185925172277710180930011395784470083065469385107393023374136969688919391481621978553085158841159165936185784078534734447607056866193098527190556681852975262867808274912011090677765991507993939398575426099577272461581685776705613287008094719906894148455716544902371364544591098476418004343376848790032665002624459432716485792728504041635931958287059897165194440616400097436955686443549016550053823321413231469946152380376250473554003962362287988811956304531877534376445929095470816512156334574277193361129376538943587347983513856169775833882814206846633074306869361809341069237424108521839905065036844167948123854622317492880941845515189658830427904022772990154117464460385483553021321644658070797847587635529055284731331309300686816504146406626996979844330157555565775880798804501614111624690118288305297845408955458867729140743579774383203453328380785302828572827163492275435714444065429920895158741460808098757925689030604204836178827619608032710871654824337302107811086976344117523324615349038002888703902450666107176089573168076735900660779452551717827990341769094388737399697657455561802290833083084078539923543915018795428518571418664809262202949223706910044780045137496309020480274437472499817558613305229906936556487023027513514693289432976275175617632587016492138041651806948426605984660944442212922141315529711329963705001045495874153196595374999046719157946901353996413831666098227570880720964916402058740662827503135218104369516170762043754992563338481654597978936820502570164188984386534072234727645865425770813690013503034053555345010403236243948571878924745150547371843998474118352321740712752882684896198284729719675336249865536706521898724096984441786444632081891986608079948170976752461439542235559589147846056563683773416794651526293524535820428795608630608393004496657933193498541217917323751000884093915007491416839565925405686158155245337340072114637705621194499726930920424119323158803796549187471387359021017244051702368055959462385075054325390552448422367334875485439485256472165253014933944385832379983514019993778527300832368965348960661510275725871560699411259657896619880345712637954968312104409250170753875761108869456933644401880601439796939842245734171285500878801296843343642517327391354649403459780250712701652620812868639879724710608763291831473881475273559733567114115910182831806916952967763760947631254565266470656085308564521361930222400454691563045624482035501557564596267126749175687095163214525120417155202429703669468539030838900728503631542441228321839746401602044220973232933136104114741709413162225693586974307570456271721613931210992177159206380310358080846028516375495132214265150845677420726395620925230515439456617324766772593176502351524114444012274374086839808964980126580709999592290924888133687696515662415751711138665500562024449046296658388761548325360873187512366018506425852269629000439825645674586634492251366593135661086604890175501261221097318284416232395120226590884988121810577843484603749611916090116130122403541670857483297810170606737932134919859494357666410116132119534170436323479874203172732617924505671066435010248091982108561782608522676944363051111133505683335066125452676930500754639396234762394818627616152770272643883464095066734016638107905606770742043566610832641598289362320683977958688037271900492541944901330237569824268100855303445398699761763808290004247197448641463100836074240142381994082819997929480454843719821809493529693571072234577612392645933022871753259238176862887241832110590138911585320193894616148120889806683418901629715167724278133848251974737971769201590137402166849668078189722943486725630564383502384488449236541729841558594184236656010118862977970743581986600020860928374661481397472518442963480524093321663178660491617589634336211971951100740846220215766656627854316045546536152469404833602108244737844241554884509492341838544973859321086557658488135058772834906172890695679321808108907892546050571510391090627158180675105985950386307405986089131123650200317946062182971194574274915802221005214523320240632921397989521413850060797518078826283639233499654462502140252614147762059775178679988194304503132498426554412944304083059346194566797580517457684990920667815501940507519318993576505492327597771353999251455783127109317583499393859642345444765254966785588144988740450013407696924150892729523144343139796827473870570819471175323234884537585014106046935144562479026486973353375147994764628926392298947016492861762759701049923793199302071734147838747595464668518075310530789155352701560477922808983077738474769919361475614525562578253833268452389726393752692802206670134804221719549337292429450204187285278756497501989828756541957524230497843882845791530300019023032518791395842221831518565058208551774416792590262769531183377645403383867392595851667989046335854094577307774284851569404233476696749577068986279508949340042781409614256979871387623470757160747985865846952971812247080465484455875322933123755726928732883761213125039431151170629854998668795159289506412631180627668963446793315340547905711377797692587006172104650123428643814541266463099994966526736980710958190060173552360359390010263396707914113938697190120398189935869787952530091732763486276504446383775534111056160029745651595608052293040312552222726971622096699188671111688690290852568435796463314058589009331249496915342855726688194926532573655377871604306637189020217325590806096643288410252820415490431722424609396904077066848256193879398245601904944085908639192941694330329615038498876760661525930222408583960357742764324069560154083358834242464791072400644583926918634410418970717056262801024003648185381496812772749628744889901937977682401173083979454861019353692956115122615379071603489739796249383154953409833773735178119220618595806065044341549804594581397021197507614410526436477525229136617853491099530704136350938439327782868413787550251520273998177682020489909271567021635092512545452777829916381810884389446615964306891068080509041373295007070876640032234700641638198160179036664298002597949438650869480312087360896484220601920698309120447690960459807104671640389519956838137992525769419714684499956910710902616318702568544961251015212882222098646777684106318082382117446195523016988979019171415070224961402004973905853985425737290600251105933520694756620304773621763793241749878520181410721275605639867738056463528847457408900194071683449432329861203929555456566318467723843523980258675822330016614033399371066392663146376759357439125239628597771668905206678099699582158419273178750877772954694237677013256301873169112542735510830955432854980506483258972131083206488161263856715550819669665628514142604485253999656533162249981188987318140202381059487073473601646738254652399040541970231086191511774100689667156669911117254775882788618117874652624838895644008684345121562088552083991453886971924198092893883688154231666515555501060558115613788045086463969220042023689078222071871307036362604678755558950584316865746871056209035024167059357144707275699816240790655610156340035580412732255728634043425479820801825008529291160536543440336678461648482185592119815547774160060150776563572364577131612076269455451261390508697277518706555028043394799169119619157367142449013574774505704837820674888467472685091140671564147264425966523574063088895936646367015350802396842190339621866545686648908972690487537920248803563910839408642407477696219804378185453651203095723469955375242568054367091775824923125728173156022125193431757444677917210060334964179291988251122787980132299364131687279025276924844188144657976395509438892692158995421672611795973340221557842917123534723745991153727471574526977942895935811987340288049759506638839856403885247920173751228343496966078197580714450270738470378699903384056223522151212614698941720496557095375948996207505412644768057384366558326065129881282913027808154401719540217241990115383112721277878299155746209450182673781539942850050311582349199409209221156874389440104030819702010352787540785206124722909714140531435721578574481651985469035440845543757327032916596200994562426389320105428777307397345333433274064171699572618251471437482741757320102626837758016862253800588575211356695088391602247869411343804793551721831619790898923884142537576606191798701768275985428564839400714950567737464247100585935925263296537857731353459634107129030218331929726155139463463292022578583395083208630815672384622566148876317889298575446772308004870708154256384618104876817683474716316380770285841067463642643840738506209387698591369242831391916980828856057166202475256119334855520173451667750045629542579194377025618298682542768300057716909699711202912309901957823730714220874945506453734729574288504921002915709723920111540833784551214304399888383086450402948746153916316902497526928002695374928779935116080521609943836089013620964654714934746661117999822048931536318631052201527271766136577820583007893246004814510078831149958648507043173296556982436781585678482297813273852694439415378051523556312177976486290715493374087974130259909105143736963619748223325533938530706391080382095981222298234079345386189015483380717344568664282639037828315900258955633211930657675446704055148175912166521760715092240865259986761730811820368255853804968569007366726589904892218991581131674512857118368682791847614639585743759335902833466216333414327457729698927851118428604836219222729671783904564633435693473841674299809300637253399291838982107017375205263722517154202825815571425206257015304248227634481287746886737966215971581520285504948050348731889367478518620147354469125446296713135944805391312067925327854099942713208927483767519484952147520069902326434700478103376403323786057760951799421467522230710008710081959276946705009920194212347080324927069928515471849280284493752017255788446759663300173474203092894775400507091235637715466269011586826706260716424459325960788316245507908804300853467112952613522473911095662777580909929235237776974895749724212572915529630488827220324862735255888124983418062157663024970143758009567023252195632034654285617651006452678416410156174429946934672852882532015488399928098471573224238851627999862709737205282778268017748907842447434977120166277058504285151818169165952332755090936398104024750660479261638433507881614555364796945667461130537240842822679087871045323239138156054717880442058737114627742002381951647417858774642283505289868043158357789596724407775585945081214630890306278419451773801567227127046101359882144786378963402329570740520375526496488750362201177044032293383817343172801225754057206882950241104299597714838107750070834449239331427271167509856153719765961243709867953042497326850272566099117850304285285535205566828775883709941363850171180399762166430699759475541997283577766249861121728670624881221998975778741065088921645773722895065339826114182894726812431661536707105860012939556243835815595268790149286595483608810487169116355497926810029232105184385878666538275462693077534903774893156809242133325855245986772682990423448331685598328483019415469205670027523772663080916815724122042774781374361560815802831221411131311953426269570898752572668627971939598031287314268443313334215035624064180337819298220034361455978517382946267608760244528389714825430247573678259358777722413288756305171658861661037000595562505221621799157708036303816228191864479504442220654897343397344975031528915851959981335439176499593287411203700451750392599708989532433124575707832708892204453196876493039539476573633036338711691405137610565105794547604002759612849615440768664374937084400837448802729884459739740324292156319338083528469426706987934624428373796986891954788688295083567574014486779427367544819353127030919872421162524894647796053202119694251537496623992870133723586719643946541868034269082417150234855106255768049955914821945816200540182254062950792031125477946257516509422396276063183134978904296263332032947958192247126197100031693672106074451998281420594660733625177092571493666523928674355770153431579623317764577063169901987874795553166310542710612951293956023910767150173798178448927681039600073110404690899527005464107466546732700865422710855219937221227168989631862568936890887667163961703633686354911704056843393744570534139207655618886065707995704380931107467516279779964958614422999858725454907558709087644748308699567918696408806396522004598383894808682679825751486291671474128015502553327647799193955102433157636196440609698251000155259592165739102077055461721849614283610050909954527440330779773172435860916764114005016232485615661169214792376941885732786808445400239493653560847679531949438395120397779791838804767903177675067418488521113206263298235304954193723494588997873339119212407382776205553362130915454377055831996880615910849092124071016036035485792822878247171918130316328233572008691512037436725488846891781446682523764549055970270637093769440026936941446177165819052020156245863804229721249360709951033722165742250842489693256139840526364301420989474140640595071930823678463077048458438046772501298952355781631686316567226280313542573671587350662548648824665522691071743462274622998749572581453645289517467656981888207737737734223920912625230248936429637406463339459392253192790001903616098921041975289579763468452596076618109006888514218864746356372569393216378285837008341054163564294541762529003689550206795845003987085795823141501796574989170822064785048208894865748503271670561860787286719785893615931804702761266399008787380189070430182473539573608420076943338501798749258520776134438737783277530476799137303315841674759249034503590732371249590131729755868459023335321095986093362847527618728194248854367354280968826028762579308037526139887804844311537083087117795410521359753937955631251058585733216511154360318934205276062722521225555722037536193063700350277107818216978175713265043532389987255966269293455940194328819468216583921547133044235440393809622468861246644821818567467017378644982599802671441299572729505483720770207730882853798308388991594264399167861219902442116896377174802978578226196279147567073442275144612133246081556404650088751649645077543227301013407549390752107010575347779312678848497876827966788426303208544213673124625941643238216533823101294262368386287145638853396621112283376326023581707402412216436070138657924283190009348890185439081525724276903284657246550041803943866476396051861296473626217399621039692260310500468985741778981099193449509042477474112042989456344770858482901651043711228071936062877446382458927248563141253082359142082144945513951157413944346559125877333816615514213965884734922789537781295525710538653010275018549999471334798208400861509020463748666242112702481410046731228452144224354671442930984928734065752466906482352486976726969748924075961226543671817503656033343531948767533990511010775715390683998095065141763357175471835299828852083435850294541312004287319760466097560499166680839852659441887945236386010436583571194327155029094964996527006502339993195954128980728578426906839329473270999549555542373035801792654359545108990369387575708848411878168543184683086152851718127322066399979378549473304863295709204474217374219015982475605999494052031155336774558163255899884334788102084290548590034716836128993050747900540020871487726345995101929063008236600481114807495081748332678135475245140619749730613894466524782213741112857714846573288342669559453716528185926243196268228252513888018628820707947770189725585225037580849949217259367236956898477453267357836150769734832017952569265740443998081280689175051702588629847110270179281099012274508614944499397011851256447779713931670973480431337723471293670214058741880476209484795973035522371956858564648411941750035566882347683364068983674046657842258895881905418746045953326014178128433693585239191459271390282661912305423306185136497538172925076741180549618858234406810664906746299009122217963912234272319283020466895707878650300171366024741191350495922868477283171183991243829036076748702527868494607896811291761619748606081472928052770169024180457486176165735671043434911014408344501489119904779925101591314819847860020336494919564456704897199189838100259018575979879406100649252134861933894510293176462393843746197321317114889886636860635256951570341339247581546597346407863373488078839214871009141769755746096871809999752537731152993694403955557929341164057469857097522170870991901993874657317431215004272707207358455345104147708751503345692497646252520326019658420918779856851018675755321532899138162565456033821590788643737339511915792347021284924133486334706058057550913726765984292504505239864617707429858058299520978608276867006847743967189958664366902064882812154213139487295061184127662051236279350832219270899201604942246978114667990674070795200145921270724561577025421564819930486628970538280438734549585549470058476973317150551845213631801137099446235922912358125413455879393241016945935483625460327813287403549734482022002445956363852159342004751671080900051957088055410677392473972702878441842441934407495884433569212499638229982414679668882611490717344303733477315996720716700954515944625317806571324463580653284672089497003508725785321642812349442244268491558889843814844663247148536981624269684153529753198857186630185744011365818760698080398579559219140084587135422679255421782460565117926955265144322067691295854690016975621659034328258031893886644255617826301823646495914138852379565783906624847946898365822562186540354792263811795326630047894666785068248282299577570980732901929400692002882364348585265767660453546679228794323146832659063813402013924600148243928272122156213437653582736536194515936431273843294448065900619645854053453728940372493383864907885428364241315971446701396824466366629898591394337995868856117698004665328537983444501925576930732970562503373701156168610725819613603010776708217106100180476614920587313271042765695488275768560335799458075530445383119394680209768006109057596795362733785475130640124096303574182222107902557283425593621820075738199826721086698376834841060767568086698635294815447355905243389880995114213611498458890868770018253003104997529344935196144679035393453539091382337627591469091652600517175128188388468581128693534240787420307189980058243017592456090195777568759565475775265084586676964324331848825228720542701569993342508549513704684840101578757139458017904794815458043379795854448246612256868869868743520567020044524590581219510179433614753023159990166205828601026053564195488353039513104619552302241925338804396459951183174074571470473896364548586168767592910938072973496019901041875249744654899212113992478402436973220505386214749922357355483214656319272237513078355867669627554039831657394362300322282160135936808069839890854181385219784521254234810235224237897302456801165498590340761117884473639046619265762173292313941680235558656678559973135734071738847383770936780119344732133668741705349215684022941004438427153395626482698338312101612151979819325233913009473534358309213867390293715826995660992663961554602937748538332372149279165481504506193749840249852588557828983324852299786170191793133280235030093882885985169712757795611666164195978608069801294032554518054931656627436217030202403611297413521649541640434537803572062753096393260409836330334535112665538981679576182603819818274092188770278464262520883407261140959696658574539073867070615218964342551865935961024673034470617122711954398210816636661789307717803637804194891812730955700676206486091453703063273737154805404870273346012347516870852999294604171780066400377817321304871128494987198221295126519916471520743283658426775783816553734051863723551837028372526557682453815183944323888006730430302803010459027277971718915190219288553913996416689730765553169946184228078246372767800306251902225060026731640259134487957963580736348952175060844482037348396418952880754285741241602882855477818050964339220834406374181442692864133815782722152942562891451365924791926430144276075174940573808720402012552670192818073855121429663887640089927923282492820113817816613289022004380425703193403789426218025226542115700100531094583115840436072897191290268810531151904901313274026836753354894155591028572500583344994908537354297623730007563526407696633283487804797605713142134290427369164272613649020259909805825631517831249436635530284884034669668696784561030122889344962615981529691636253902872154439772511726175037895159946948423925634063580385338033262015608812282406843560157337567987266122231850463891272083267863792990025789596920911628727141706869337681385611690803672236766072795525816257711489734179934396809995397524184169682885176172843535817715454441954258473908547953159584072555768214986461350164578887833448051712163839221361742233011512627729080787977995851621125412225027375870255622252023669966487330410598337561666004247919949620722054906044887582779778054577640463670679172313460853652221964545659466380931183242221151151428930017251003537374687343417788539076006731181920223108833946579007608554984158778205021539768501606053489028535855984033841234856233137864971522618895239241372310611652162985488294424659268843843140063517865007791617967425360778219888332502910418151964643935386316534966216673604172692391158880213857727978171011411296284430425944314448383727158590556361312538095310366183086812509916767860407960820504783903953373536424321238091063466315892763962595082735904148661019826676462551707212628793291435963395401017881344447493861831106642195485038617096184057985091948654192801737593031522136755062036352702128470096524777623167978952380553264939399899000840913201329174919097299496716613269175383602490777906186599249505557428331584218639207526527820454518484618762388822511138726280489524789168425684249985827243529546736469732378600272719250180403369080050507262340241772670713916597366964196240984365142511500110810877728231756729178639844781454688957391765669791090323379444190250509441007311449904157815758709693290890830439363728858633022470089048980606635484907238413257243288363445703885234583784586466645823510342244295137402090452632985333294626322093860422099456342547914100802034179463634630469536636831310034737325033874195571387722881882761806859621824971661492909255210918322116863522026725372848295193333515887344807049076759350077172880726487838927302792300424953574472139413301830662231089043686161977900364314143588726070677322295919296838999875737812245044317389299105081870841337494981402315686349347065019696092279477412025620533293762061001526460359384066104751401387938395649033091494070944889994090581644973607839974302485832717448182856810850743958457306420202557599732078224318499460603364517738910266416764649108043761999290767665358995556241963004073388187429649663621229093337569805694724472630204391552561589362441590893720877307981602459372650902149383811594676063241139549567355780803410104676436796917934092049910544030996586054747978752988114712580246708539878723548810058143858767494103999981439847747119642228312796523608560113920253455168775102232067724838526808840393523355774768089778402043279119718216789306896347819252286649906851962243989433313030201862852082193714539201909501587815660272836818609666196285692879343360462241106279939812826954553217408097859633830523734150865416486066573306757298199948705385507520980364091902259257513920453123492755960001925221250894068129035197538153262259180513631809290399378072550880785266715411292167605098255739192797808262016658575082227304600927260500753396377768875073431637859434894464957577670919366916946482123195815516643267831069987691888931358306057995053751359209586902136708136719361840498867964799766747405949134267033582490343982085291748807487411261089526712432843973966369270475857596118135436100852386044409789529312753472595708119038665779294069684737320493665999823977782348934971004403199919642437111184445144322244073903585571572415853407707681364784052812503803314116603879459766013200638067532669358718565851915836777233269085355002838037326366908975443852998129201234564547418218257563636000555441556889681719966034102916543820415768467565519108838066148032082040196355624955596062594848741964981509333099578106536820117537259238273927729367394204805093841551475930174489792133508053336046441596958608131494412496473670934261559136562546814611125028144072506147094948526671738843420228043640769983287992545290933762801835178452275114008713049883503937057832145868962092628130762470600455184245268872182594277690662719974545014603519650278193055264762487180677918273468619045591206652177963717414731885649831473691268869505974649356021366298277560733477517276270531171843422380563648002897773480991138185452667309390908507203803374103210852686662341359898679778175461710039545570952318316542798712582000324467635604877305709337285018706879358735216897949121793665521414059690982857591173860653963416668410169556478121816920690622051057755567533850956150482806838657273245300128892579822637632827653243401176779791969824397294121105800156014166083626192245097463930999116026292187229313500362950786596253634388773273196797395499716353302122607607460861603052879671620588625779564042247923184594636113455436665147070203734924070566251424843996507343419886161033135040613504721266693783512719010592612060126641996826630871611338668051108253409118356881998447647279468895662699539532018343082887478889518212523143625405411256607694409524145954219509952910851392051078803760329431138562160348916795475165192461906125811228966640697622912011021500564944054010863470425779950157389506082130147279006856764350492973854749765400063263972866849149248405459835456272390132536731410668506680168582940048550183336158912828743571133795601694359408533910358770323596866819567259465862025986076200620040431407105617261760608757482903462426251555548028203064887202791115420797592827334004472629411501046898681250753027815696899374880358748911217684320282275285051902054325307993656404650410379604969744432400472633909964134592561483882057676876929156585076421031009525118705839251546595744656738395302314718009757139089665219406431487876265530497731879679210343219749682353322612557346779022724776135547231351096761902004920336765850180492166693353530253825642379511970155218274995831873050045744689487343162721017698912054145774692281112967138368864941342641848791787433509304879843979821882078782260702834766300320472541994314613535612294376997871547631851314895901218410452232252318620980951411524040219381758443650000565126582780742448328848087538192814663120327820517121850198407973450902291507708404449560636859130123778229126371464775925901665426744806680087541654079334412921228399636072913090975870715931734673889808587235541659987325209464940743380798720536998800552309906194475280348069136857612850298611540460187449602521464064251424430182970559791836394807986011255094418319564655255460533532406086164894643596363529214260946198155897379761585059068055289092069551567718601857159907284767765748453365413847035337448267493006243169086830373730200358788252428415455610523073436951216487148863518508474497337854094590859217789181402190238728526456615567881342238708669574793876298296213833035225308409924076899041033198818636833274751202175646754777681448953704877813312455141441695079046917770604519938935221148468455418485010070584430697424614418074807960113511700396763076995440312113766215249076482192997432775339491982943662417683123348712204233262257771117978080082327428065020768084073857470684609475740208331947337302222831609023163953343685055698100068530429597609880455425795892779098139040295060167951552130864688548314863764277883987520191527873736379283454035229496711944249038319408730756962520998585588894192358136380639945213116628227880584947481337986882476325362158051859280243442266781410644611708887087513841180556886147327214948278255903138289342766716538736644895010526516025061436995044677499113982652354361523788572596355256449163912037676878573020946278261733968261490887691367299609439194727186116316070667727294773475423397831261957810198079098880101231361920151097289303876753413789620063505111501282184581272300138352583615308784007279606602210281234614482900799698275712000856938183067992378666583052923575126199489652025550926320154812210314036934717990017898432026924555011973077320413602019437349851861814059587728427102971254297258391695826527957872853120750585468337549157062893761677936959894844854763308526273686222594400243045367008242971335485662187006967967448861582106355422951940738142524389437461496103016504726768552187253541745825645651562782814923148225889490603955014208895576985960488943127829076074986206901379231750599015081852874021432523604741120048305567780104819061642023589367499047811288213776725767448752498554279203967066957377822491001180590383233115792356589208049896832211727003361681781631710927531125491524645054868562707519072632290127279364834838390225094465069450960292948455875681914142012900076460221848167013925511014706301792327609384236277720891103591836962646913781968007024281779318301246597876357143409196806086676033272275405993274498968605055776262395919528635841425547244201651711028963336811621016413001395640510016093840404753362294058399915562109557166303130146379830291436297646134909418007610318136546280116996647089766833063803166545703046979731322343144585243368364519977906524966000676455202731897572391245707090510513028985049799176735152100459024727266179968790976586398685524880254620052661176854083545689599767413477638267578992336762689197279916000577747121958163878593859809820187993348327815239148744621339333713546591031791773049507191324056336127200160653527774477971591346571617924878659883430503152613268687123365386590191049490485569281134921059289560034672001090184012764728538364616583162520889951066252284753813671858453123630726799869467409082843604989250607506034739575637213846185060204183640274200826571708520246885112531805261655272243327542798661671916217272926578213010996967917471851098034968626294669646930934955995745490910739919002197122134076789490039529691710227862615971063228574759101812039395294517546891899244141666632855380972206592360111698376709344542156177058986869074614236622076147677288285860323527300747650413779895133207603176937075679950660156241786946036227179651593451514786155848646126505614285992320811371146200066441999064194503536871749492904283224426391323285516216278942850027187796273474523453633541228711987218946891413825085092462468607076545385963596066894429223053922268613984226088294731469118666312134358261467910973968328824422200130760927404121703640213767473971716603320718188516466778958026205620630118117279297803060056320136571000886019971248157859775667961850027606189390355487297136942236242429638392065562819968643397487354085092522357852184650718277221229719062790805716968546608534345107112646423041497322053226915289590453470453840632315966509664835406468513990454583157352135569660698341574370359015606208337038632160035136829053725355329365396089949571834071024838457325716121570815623750957874252259534494010037173528692646579253856641928733668888908980819720228536259798199936357151376036146605037362597307059860809973383606585427493600401222424043225353493928077984120352078984080523393038581413242506340027223808235939342158328211879602542804315560012449547123319766204241332500124268582348184744359949505150901541896234272303170662236200107372733803889749613596328220308493499585376413139767606030284633776436423788121733373731615873187906436628647615604993929431349043268261112906353707135040834067748777716574436695158036313577121103749995057585156262873651870865428144500612400908116560495386065442857215576622163293480532065610641122877429281577282482359010270785889405286499870215109384971083510142406501755919058898132319161363056119063401897675629813603321858324926676131568906031735226910528647961123547332921545985361402396141155847110936772421480706221698965189036235276803179061003276208100401232179441999043936060782312844437349716727771180716078963648454893789973023233087720369149357347203313897215282836411871768465000119819866780782594450627764059426240672570699719030050445976688393579349117356291856543167901028265720099542283413490229892856371786159435610846317704270794261401809819442776917279770329458396123555400898750732965250832344220013884551390089280985829235142016479156720838203588060837660970885428494063741807138729836372891881312056068876904382992649006544910240986390520124023050827405429231111068323611008696712204170771660241237821698797144293839687624095840055630675755973827346190943886012019631748587034716068355925570692677494489005553119457490464085616865828404912365231816521328220809491620257485192880403468845416563018962116517323583906558896191500191128425544112977304064775346236412881455519650438448333736476512847857767525247572110616822698779730666754508318219284727373243473999581123301558006070867255588714011782792615791236941164762367706753457335690891058270889072043562588485389260154450429069667258356600198569101968445758608651161069871607448909001608016792870290481526687575984625563229272807925898864359796098739282828832354622960609761719615947671318197464553469884222285094071680631951400252066521606070772470145912140273640920753026689744623726424812084631740121917875954185715431706627492547916598367330838979308254981546000934272737205269859073529437910964586132039147747825019630014980900817354227043992172764841406644716190436000792062786626671508589241917361616232968926371856889260079545061359720053767500724172270768957963802378091042934850624552652086555283341473273310309981460352156046845259941473858615949803958160147169546990678455384852132889666831683788762564672637449809562817839852852489097427235363740112986176196364039301610543448348209607258558223545529164983145664061416082735319126953469568039414699206270801859173885540828435114233235415234708904581797816327318132386136156766548856122498359275594166895312154341293259278647616657242800790622787816710110383290991614051662043723081098971631249752388735778418893416573605557439769310299504928207756900863723362690554638863495558716548501119144992328924919450832733651181661414902641216631723051691374947424780539134217017263757249926073966561483731882496552571616993366312933383605186371165730338055028209865303671227291807335484072811293355754490817661591399651049219324829155267358568222580380117162439089624308806295417671523494130448483823783384139591279834046725253089936142012473420295307481717388844564136408651168769682266510244609361256484236731296133006515008434745609432111856214501909530010291189541856775743866060838403445751448936649978775583253371760451919252103180973740718836589971113645804877633122580940695671714389854177533436349938613109121972888228707208472323732756647289774404150506061037177681273857496195507834796047766389485050940249350657210164931178740827438678699803663953689020538441178765832016601003534595951682974349708411091279340153025719554542293500385091676276389409413575410901133053015672327689204135699772444740465883244151499497725821340997444822033608236997439067577207667664960347817002528877551036843597458154091109567622044766651126386176181343292709546408959944372802700959382821947047504178154700061157012486997884438142316093118476113044883345469638881647820518032660701611076201010058804742719653158441368841738796288502702030724845619780573794966435241854060410101359216166893499374074253155049052480363139468896890899111079366559431575146662395005861371924494594798987718916239229850444559547181359226339767455236910226452691181613696275989294995487607418525049483198153595055360856589195387556437577979667708169330737955203479626011994549125539971822289903444924107807492738134077220422718480428351632110569413935656682859425995093951816000228508509781553263152353034056917468406936316971338896612006265502662572694579571442943518626596421186086092856784274089742086420136830068808403745797023061175274105542875534019946480259532418188851151816139387446354351877066751619783466268430437365827128220697697937344858852596473726957806853310247152852339401503132511932350044676093730835920453011692703691869959555442165257937815226546660245067838583628828039350004387810189735191678240646675389481051822695212685421864756514698606397281931120131168406134083177035382680146816435435387906248811140455855311708849104702032550908156106919013224566886331298430451843128163956507417043233805342532102663733821123323842496792850062863530676744936281672367952427483979361839076699648795117978974716301209274103862444614727956392786960873837362388095738550679622871123510123208519643667141593124224168326250616310097823978807981028913108803435844434618733742954575313854295817120746883805567466429956679793055053416264922049116708054884152429824702032488717805545852858626522050210696138835247598790507390446748500845430954114356677062160086637957606575460549276187715705582275549737861986054095305383925704587350646005122808388647334928325584147255011000238025913337184479332210700153962974921353588724423511149965656603106880172109530895217375290051300129417958884563102971588198427934553599981056417626485709055739602431190438554901591141012112040221407088596108231190555237251312881975154160201810669426595805494200865684899892822081245877555471962515874344662824428917041643577864406077877432567860822146303099201586182433802095779882441410581413387749159537822002392170384821778899903204363745936935673292470453670947685207634626065405130964109141709458736001305648818803658782835704398884719842479914012932483712759506647002986385081477308901872936625541042695958710679167163211859783105182462952547263594984240208700463719068986197713236968187560652051058644361532735499513625571489672233170080899779183531173071580888405910479042557637303988563369831503343306859498545337518412744494065201226301409152293326979045713909781212355469503648904264915134579903718472303628051403936596161407042254888893938091768656344304947159470897415032063184316765423580914699922085250907109887019735683849612651419385243177003153248179920221175130421062185351212496462694644793466623486484027281829945695986484714379185968302640875363746279446401067219657502626255026249903430872188503656733494531515072592780038504463090575773219474596264363598609278021885720725804200106668056662726698808712390197178121026729490302365866997682477329890827396112941169368555754945606851292732103025803533907619369828916736357349119020917583641842571404524806085922105367269332780057031360069037036659155152447229767813594781097706628946654393592741333022342730558703996841660276719262937722348098922254119231816861652838257916547539925967725606479064458126475919461819609188490627869314876886384989044436802454072938003690617961460809253151633214942674013578218514002092421244511130963224145962745412357462271196167566456491862110841948908478338442483686960117086727401535605344419234038791081703628063570356853564152719842397414408941871408047179515818493768786368854758831404163569296934971380235076770502205331983261782698488090893377566840226246001079553800397581561708966626281575358954458016468373930848835531852173156940549180120354500606831666571039918348604690285539355169757921673024071847199853256942074884361324671478511403636692331307659727529629395005073246355718379837089219180122871896521905722771333845295062425322048743123277903925039586367693085907385506361997096912272885861085262889519468223260697071170382640856635099913459481238785078651531461466689273397223655686563045791187635932160745235192403694660987864443638919259528796740859534205116865556944157409741975112462782807034724967484179070028704818178616884202582676171638873403759952467870744312560719848309403725887941674447291509359363665744306563811758614282975472883760350734452827550479093215916090136485662883031486864708989214652250459676541266164913355958009984650417015137269408919774604540318751773085435939232337287301902901361958748260928003784878011676231654114515030358430905809037452742272068487791272981663150111684770667798474013656580410753137726713783330864906153260859403927474420373093686817358574158669574128227360593771228224942189029700101693688370096606415377294828449913626491923389292932620177492456980768459112392860734438525691497628050524543566824372403615319318438993581551732276089817327223019071536550127123039066935973064875751623929255512488475233852611666085195563516657648279126441779855279603979384194974400281506336135787369975805444385006754695199463933904505438833571037606072833628746558275976485466690501997755932522130010375003421323487982587060316559746498178167883738070031583917138785497413313379300226864224680076675100432834272015671296087831345641255976008085801722610680410054291571773408595930712459740483385610593758611445266659457600628341028274203436093833296893436105128668363159112947914760208126735033122123880438964480990283802407525344712475813150015037477792845575300740100660042362555108093703390109610384829066847070226499482283409795297668865068953428835563443022855898518395173822328350237267371960454093079517790119982029901435636953423735361932768045504563022425242151660878356542507847789817575018747200191133723176545640812865334067959872318559047338110960696854095569001518762126960623467127395308392880833114447400188079920059185879678053235045336257490298537836228366315680476683708848115731559385113659528266984385854126253847623195833585554586762829459843847338348296059404706259960474956132914799623682343617240682783423063484628933198201195473872158800392351064937461771890391996127039455050301930374941869674503401350000084730033595200382118943548453423028595248353946554281348138221469165134680117897248656665901254202327555070244486009100764920416464997213707976178929330800316193963621474981553214863041416593242458697229268405227538648209396005158228723603967465131340104370439743246343992885302621912176374678137679194580510130446074061476547906955614119374219595072681554542637255527238640696798327882167938529004270833024696566193122562059048771186177854779904904166741034839520786979154548323411407553818482526048129449358735726036309316123704111842091609390057440666534694789507520346058508871879794178014212175845086618404876727752369941091220853930906750638722785512112970439424717963192652325373709295539047801623843113476671437325792452497486503627096056593631742781216828874650956781350150310062215780451024959437294084913787766931306699906474895814393728120552379784218697616202060906047147837780702908682846701327021774313894579702907258742910713947834482814271257974967016082331216860206338401352362368343369057799260857678298387319098469949551967295582514342636782462712359295866668902994974774720461491826917741620520136348405294473456925922878800646692130328398218317455459150069520579382491878923367932056492559551323740300768033175788413582412078022944846513221534805886608501371400363249434391482463099344096561752088563717272360174034166948738165761157127390574568701892787169588913038929086714941629601733404384780361774889581396134351393675392485085766853119894869095008328726502331468828752220243904478723044879488992475859396092714650162628028777045126530541214862179098827738121122207363777267612703755225814398434261452881084795122239948748480694175730855206305910871952305529478688736793938728387358413562570101137598422665010645921346575967484596492101470226530980850386914402901776618583303217346536707804882887956191562349858282498850276633849632255345673884259232632236942609156483236148087691399434723012976125928565870665204903824450047518988981855167239646494243917364722614251178655909046381133083020091663983122858695830833015182205676646456461231167595607492077500550355141481424559794278069321994451393362687252549970520439175038533458646547734046520048893255534118064513050784650228405273456121873826624369554295409412120727465882023949355601272957612017449631959085669251279204951974325595837248891690613610101607684493777663514566935492270896502396000147836511258044845001898675340118336387923474857450088415535196798473263465675976007082587564306029084874383561077625963917337630364929287487614469629216151409994679106221769572354755253839271396420333917243235493274741863469032601326481508485197200127616393966336609363296954966498205765687030294672832347049408068651263648386061115066663423625280206387711849203572717441003979108365931400278317591920281630968503662061791947831632055591882458571733138138924855842135447315033129876687511885584355362830590763451181611306082721144388722254062738844885177481417743330539274516163289287961028679221848235710565343597783140018407397299195001684668220595450750665747037570383756701846866325430136582361497015676412513379354947327629717241279398320904450698727080428472340419707061650536894200056793640645722956728707086084776782769438682913916008672602006736405206480099311264688620319749554166060350748630428415840623376335983752178075531406117328642881514348374025738259816591644804609416850952220146003317237516004653581904367205789297897790019899603971967251666708402819316585582429545620728336839968715556454376362139352729365880331421976954030705200822664973996947618282945332850527111218542609101471361070187830830797136594911353987334080972555841921743176987882154931214258413053709288563821738137966760835042544712592205836549231131125777059655044565555406022015062187043348567819469414485192951790175688718905722226666823843990907435698332512465268652017096304819360200876665134092913407534593123732433995259458401028150689737694332575669742197079455703157377352066139354038006993759607006976906686665149654370407754008659381361389953799006066638407212608617477989864601147220320412998248501361945020265123968331751613434392707853380335682242221591539003678331418598223095194052567552471356148658751928718756953121998839887353600455658735129493783298442991542041432011963886001298037879984253238909619676039021385182784615869401607844122971707437249719949204409896393449297803059416216910678704498580869893293140373163131118382019805159925214844749090867152284691641022511009751055744861704072473264511007525127740458483931328946434820639491739884094249939176280523453114395809550112566663066100768861139127194479596680782995975266247853408169806155907015761842405780036929652311302906046975043514946938315638960441054328168973966308443039959481476368319511574657195568674798770769715698052458631268505092441072554783993720976040543783842142823525233815431527818796764265214082100843252085645449338336527150590422123222529418220651603596112378432708414381119325538841602991534595221057690244464297549026253156925231411505796835881205533777260750677849745977194809483095373807650548927269788735065501940772045377676232328780030069410673154453142589459001581845691916445606206507867811413518176840303104704866851990271309249456123745748447930890248802743188285427027579317502643823128897887391069861636101704657701802748754069708370001298717883875049961443522598283648070974868049961482023458801105037994329408539878767491343796377717965077194263874177600825814095191889286321686280237104995769995537758680470021745724230348689469860846642513826304095174970905187175913826552120391872200141797995561963334670023601354792508562163520645383197446991969226165551623041564603073225448426420736660383465787951236359538967542846319222931696004332950167415757340198088196534049510847528189023717951938979824369824122226734791971666343483849734514633693129012458655539901461204634050688275370071202265615956333617172848537541474090295477052511379828002998140453966096559601051975533895533157301058314666011439587859269659083396939148756988589778384964247108132532979631706192219584476689813504805824444572831824929929406886641384715066747853235263013058113379063102967828000673200631431041117473878191853902362267784671239626383017099990050939370365714773163546945566511377734606796482113576824766677960533065421208581067706008066154063094534322144853934578053975339007426845517202921851742008928513056083500416630974562967463672088142282149324760555581391670497015875744302875723688512941669538335244594253237257739484672178140993842154579552330069209089142357051850910479032495890358485849658083087770983163346008653435138074236339391138258936666723261728816095777942939813299563578974002812183272882358171479985784594591822870754894703659906927376619235062459054070490139285905655668473348679704201403144326598143815979582822971093043340665047473327039509415655603234711437061474101030969528685905540723962761116254222182465992936458698879227180802123563131700753104143696016036050215024195615025613975926193671091566013445396438221080219212174282225844028058206936051996669908400594203515368367218200280671087811593461750630295399411163578377302442571714328325990592588227538802810690670275982621382614054881107313953459931880339476184041678458304309085053670044069877447846487198600456977464530078011214428430789202139585303253612514266027575225584887324193790515701390125423894002394844937880905324061614436595665728777513655426497819408527603138027537661373853299422675859248494002541727668688469520963916515875805298073770001884562214787241880626275613831948621417444821867124278008431381120972139455468996692567483189740838634703576300821210479011309092529398260024523861484901926214366926763356750060579140201246233563822667261449342655683401007161813535054528805271073394778745144882263537886670525820772926686057135210076961868713128091021382921316970159174283579677383852999875553256260294681932535494156388641095713125004565853008883248600221015751347921495943186962928280212011639956534224418030635132197299517413570600388622853280972772659910756916005744609345171994762268214577912658958047842073240169508940164736563157403914714044386072816520875526068184500701000272684152658889024524233653532781407701133165983005324480531870047983812194883284929605190762308404404848837447951769514724113276811713644274260926495763160999952345222722526856601852315702067038484153332139844502797020491603709156412478479881684252173141756199635810488762368811966916484831253880802440372846064309323696499319591436215016936946267382788920131570348460362374633843233965097405764534777328655699507973744867190224371976824123685027378468652871632391068396351403625758124533470409856253834850146237900794179781551262503135595715146811242544199417507705983072152456649711904094145261820066855416385955381961248705035006040170889698625820214837221158493747328715596955797423490762271893217923587499504378405448567766781499068951804088776223050833611198663228207347930619693914070634127463702280852202304298099261317173967007536700388802462502713476807812486854723703027640093680892160103427360732680437103570552047470111172551415275140438561255390957150426162141031727906106045303727119304012808146819644846500706752028994962568473748653898379740824391086841931057434618230240881329585732129843439970787335316755004999060733557235896507823203183618374532614773234824980158423040265384867940569750717550010025455683722708178666607702714015405990513092454268944441438785111710372896194967915156487612657708347039219997102229842817337706754854757887324401265781767666291229512606109393612265109456164904952075359342850485959273064402393344062309819555455481221835437437692242133956189440784032589157182956318778941826991619025860666353210444395212819903413935024684528156574304154758978233836043002548182224887824525994298692314705231129163125162421806295013620489359830840765855267469385065256948982934786478626544452144759999102442023593138612841363257663573599745613638948920246890826922545636738175888282089877810646563560685254833460976403015049271929443144316695925906257051256234587960906783936384464427879758189111643182838017547864506119244861498937677989722106204877405935793160360419830160845727687651267364883287380549033718134475929690875640396637541392181037759591879049902461456934992898621949741990972537796204267099249972325615695702997290576781711781585751763795458246800386897180581492430380383180601159631843715310497274798596966559633406688162405637282156169878589473374610518585964023994703658529763742441807436065189580410825989325049623871924282226674049219219778377403110806174552413417577584271682045995856182432029104347172153573979759906037351247700485827963409794818879808750493809967362511330165158100760460681948889124914947795919553770287422439912821759133671067210007106167830426856763728649177581017235713697698192868658792858678458682725230361247421284507082859909874630428624595754272446822964597561347089047480391613494755719350388617133292443490041673999030642048402786999134169045283811894708455029628251269144470072950708558851636489535729464888009535658635637848170306865202022462534404001641099698562934008955723872435647378009166279465744099004663005869670499397765591514320328310668075311474777325484680437425335553368555016292419015718962148411624138215484429187897480398464731376591002971472429979534592747041632693109209010290623073038149466666036394251417383150938353094457052911744629033379127730435102371928762465913774161332685139541239280140428261961848821526975479343917629959433595200186883802123734677210371823683891377262282188151486831503707159096048332824959985645689027419835864263407635543861388885814013339466908012434215739694200307753196205845358768955351886247559726811068011691086646534857342047329475452852198961781527528506030309988503042185449423521922886952585327059768057399593727582885531721815770063359381141275982631854825976649659794737394079943242648733757456609391395725789369020725078422904211559465884002781200440613427061370948511901942718057721368436399862607319998028453261886382646534392663709081916019073297636063471130698697220088310103144363191699878389852497562997359350882642596591289148171512811498701179165264108292492785250975454088560707683012034354915559327177614779561126462141697300388079768327043902156747982521325904424497897759108032643356149377816875754816639508612191004914369867249952408284329643299510895031654744148398893719788406709681571385865422958465870493746192703639603983792539719555553100340978536618547271226476962931129606340960441289693537310925370389157991708022995062996642644832288151071656492293391242184231570730484234609654664885992187972335169803044975650108903986897970674477886529742421580587588490506729989730519804822229689791106754428326552675757800274355196759412524339416025354133855400537008509376057078465696392550686802034601960621829044927158559868242310185134971431819637472470902667264723484204123877488776478478390332474239265913163971908092535559856089723431730566827593009937790930323935702443820076447512546511169405408152589259732667968777497206780510818031532391490504980441108360642998640818154925098588281228361380151828632663437389233340669464008190373880941861765487511927972467947103522508034411202255199156074777808148181685457425355228790001458976354166509208538516289134535361560770950627777316449967020493008223695785258651403828579327466223980416365639201098440457886373925305239985840474421690063273446206389098161060501985993304262313417406908214874600337366379298795181826692234609067179827189117520891631715658167818400975860676440948687416175925703509872277404371082453775642024082068536827783326211451169248800030533080807355182485983574317440504057603728134049112984023186281215934247617891365916337390045335237611371193640038900419989919339421992415507525025502022741381005446156133707032004056660808008775849858007417396759533677585842228109172105261265073542726448103752363392170344819815406424329920875693705096881476559593101196686858745303174656162114895102817931933197401981846429435644289018670140404376444146724516344860565844048844700851108689389222494297415103680197994821142422352217372379655061072811020608648445559968492970677222958079344580556643234310692074132170946741750211270763801433879355933153090908138379486247194664374775125310867137236482419460348330395275304717882524894194433505468815071811182650057884337846465582095696229130093914872304506380326608337186167131002302915341700412835247633957951354612043352197495725416709565550287396739834936683971673830574140301546873642408853496031849241775939759838238742804915478586640907513596321160756435003693648394849787843768519602032615587172293090690564796358636968626504404364639429378745585974669906812914534892853232544773096862264325327356748605727956621503299742528708146563301091374854969459044254401169170399928859933840335802325550937024146232669051216156501474490227304816938997380608213293053049830199152200358160466038674842545715203761499872435920297351552493406529964945159580873351983495127710172381021190973441686071253256181875731949365582881523550245475908548970812914214033095378635871911008429216116772192519540544753065986819189605904569477763719750998211776901230773644503381123218807520009893080019243043574824570390846979071667809261954439671011994165173148639397978365103221962996118763603544475850796317321070054942898592926200226658994949319098585195759452645566300240570212243646630384705132145994945719125340292134291546633719356367025882788257443307063905456438620139345369359084359064629274008456621087401839074898018259762314516600910279386762500366201781751114144098084341872922535089423201203559902590686043496447579978653626578261250379171419121185636148817997071584631379634824775404504702811534478571671982576499915799807561351313431395144943097968009391739406500921033606124542523704386419439203461405872314862519958477716506417685722893546004674084453966177878737090880683170675453628903888427079983182482685979107560016853436525446621299632633779869562669243250111403716342495514749677495604737965013602252964395838395790041223215435299567993066190732008100347722312916362031534802386489115925900065400269521395153565800519799595202644247664775707508751614860678496625560682278274686730353386525085685307110720701813409331092611757059006693874956558046188725725226281933157804069180377345188012365797994917602929321819755408101898838226564480019752058083021717489207102414471634865746957795604736616732855923051088331691159972441201936828921682802466953480699164758270540146436814587591115341885360827625577078077019348589355846955101403730576112842062285695623195202941527089222138617033996327720223350154621580052832868179802183015827714370185126542610184479021452785629487711937169118887393695926537868855317226535013154258559739301529729602088277938083767497568069897020065602435786794789552627650510522651875685574520490073781148213321397033991453213819477725931106852187794445815803187748425032516382114954168780456289263627517633630132994518573740284565725808512904447056227350371343398522768683013458421464939269931519583825865886294182570522376675178558789894089852727401626681505275141574788767284283343434920167381064228493040759423085820343810951628286125017041519169907837535568191856892721958698102374143591044576328397463530533700541221813818233984360322935377537340987770944969053823001177370640616795496865982647068516610444139797418761277829782830289229661104537974994943794968941210365965711672538399967977600468548867926695731413593426107830603824983915075368487917887908953147348938141951109565960016252510214310313733454004659207192829874196824158537332987902669098231835039184572012198514609832465127558509108555298948770192510814805641290468330461542173083976832267639330081064527254369362371071715853778656610562764199139151925553235672141406110103785863067338449790282827830971825018205342466587296156229902925764654877973980116363677346582816059031852188283801185272630718041316707479259555439164786510606477557372127341065338456818162811641127687849231452539552778643918955615562160681096419250459576438614665816231070450771356416527085292478737510619337778587443768647818585368131867378904030082871542231321258090412856092302093537598199345955500298605794936141078542200459405258913580134686969979006957766522518926935110501030769991660086428507928061027304229076464012180727330373169814384734463049619354447484848400179512665480551762080453707969909591899231272854479073686431508736360438639480748571098229681771707089123637725059744332089266564113683562103604402310327356026558213204642532552479556678828734547699611634859066665790177771026192639064536859783645497286661170426695684032145010662900490326656357878637046475944278180062405023004427213509085385393011627751330661573986759332057391035662284310948643662121573037854485821644812709454225194889919555384404503723488820513748237239959803850828648635844279829059050755605143019356187723583220405080114420063130518573498447968177014955792691567971403132049572564888526732636235554432431267393446355533347074230173039303189802927545762901322807743901974436251405374247418797333627808895506033866768496043144793355088680662021572662172526765150243202243075362203311178154009050829350046627299921666682241510417831511245095424857956934270980450998434773935818008480493285300738129822003841497888479636265658907140180040594598184019089199370104855901431502378561700524856044422882826715464468947812108046413335726808833486352325164632703279579801743317611164020464060483183029355718222976280953804151280675881668152413475348960341847469274617977542114408433373477941081243703046324642579137668226568351824532974668677182429704385132976582849417134380208623019437890163445567240108549440525642435434077444052056283244503176385757506466487271549972442943953831660506966821912810376235342115196711749855514770729435747834150454630889256908438272959749042377048566207369590629690024003710109665100483966306716605183610490245038174015297196107198344699735689254110680240364138439059653084625861636094616907366774510600056813700058827293805263975784264342821763567365067624163025491967106796692774199832270468256861641042259725516630619324539329676127042777931464263017610814115207569985459617872892986878481162386243012063962368047642091544454099233694554974413986702528587137674000307985528262032967086246677025627422382865099757668534114042921096896771890414413209211871619832667380843068544704994769823322951325495029210453774087803717266395898367413056087198245798681617881724780142344807845009054896372110119919559038909854342709397810481928500284140283077808919425914595374719003265874544045208272779496188707831185753649042385757807923251597800285026205293573575729193854520531683257333973571367590455087463583395678139538111633158229582344408692080790651633952080638880497645075963202698253993328193556609804609078488376601196791009551576735817693132039495248326331879590332980399733113193873894709932679847498133860832182108149624937721042145230596521756848303394144194028391421157195876195296353887337457310632990566426421365883555487809087109810429039895899907983621436399354602196640317973372340316627581800407630370109444235868501166166901212506573902576710721880017027698645956749705867782425294673064482384275800707204277694870625929216816324464629973641487164178918290707363072874487186698979046509968689216609557948123733611234304401565774014813474430847247716652612991439895271400653783951382831807441287177491888566127433266274537573900480442468055337286914418155908456905841733058218773082157681335608428089194180738843617432894745494320727821314902285443717770276121109205857475926784965448208984539933112867239262840401482919348190643969336105039744685129358685266842572310131100895356103574755615533248760596021501100883722022013273403148652659135430616484869710015980905432510559572655454074736344186711347205629763743867703760734472550358212680350873601986458608900800961133658192710312536587364884152772565054974340368919096586286573655639465409864565374515079245267820096043464111563994742641573613459494260971200577221688597253813749407741323737409535778840962977330805408375383768750053304858201950148092086138197092774954948441147185830759460066377451804827774445228362688718774261606577950980411578714254999818759038827853851635605244246115022466735321803311713931582173544584843345399894566972410827447684477291828508663728804202038467728993945043139145150470096008734675225962895036007161561082692793439083506377137575840102104092506107694110746939044407013572249401028106198422830826687530384280412292600434223753760370670919506706233693498456878388345698656974479952371554732594082586606303719665816915177032396644982109042359216873607675010000482584170527185607791082779848931170823718525227703095418700779721776540444163150212737328112122578649164178779800642768951835360725892579415317697936579534821504095609198872504378321244696575786993416223291952627377507601384236615767483853884315464093258203018279693862183275232358470440740424708468714017871497715501503729860036218780627285640333469952190077551444872425310522089493521923648965611416264029537246958947270687002244124252782644055948080226515969012467523844560339541561817697740021825134812788606599992882176770234369457754369941693304857951543439296235631217211644666753038741302722446172153499351250009177672274622188164289932091822076824469861495448672338872809636005108008168629854937255328120585261676010901148043434864305809123397774412799717684182880325927471869272023481838875627494969005562482764106504739336495041528772472593898410610955534109198870133351480698591579899119694921994861448607496738598953892517229193794919202494717494019927185817561500806627962823291674076278559287554506417803739973515798722559517499659039294379347602068549050342187022865991410918310380974690930949086371093970676459471199244416860777850198104194622883285033569995832774725902420113773580876073053677192161901600179401832362445814389814977711313110237456786448406956292270141889015757946885113867339838121630302607289779244100209067989519759192182492986539531012205483597906109298928749484125246791820105429615651417965945514731168779693805512684501130607922280479817426924236519382489856535763417320862318078581772899998906957769613123302886241094444486930588809624438771993607977291967054150605020315481630943083568934022277740610584273311502205696705951947337226455784742101857595107959060558139992742697602819825297820536784780397518755042609674669651449305446580950867298910283230268296557275908220072203138533008121479182168942268337348696241277545780157723316451418607125825541658278451187031816653558499382772109587766615747625359327421553788112970587272116039399339320357233217854012063588030649676522944190496787296484557089433231448493525288171838176971282702054936292538159735596334753553994954169233889371526656804518725144067709203747545126063598591925181466122950877102639245412784260257018901021429527830526721355752078803608671825437373778925693584501901381903695637138787495790501171518384557601579371344209258607920638111509901926395491918925904613261233675853557866792482383363923139040066249864039470905662610284124102566083241947602515775260081526041950098224671005760686382514932975761224833853655685780429915939186213650221309718507085451735142870693807491367787553432716386778469882419579431142269110670739645824080987685012380139014153064072790879975826663177139531707085235568084074115011311868838162397327232735278009088835671231356208463473662702777450960633011265363664077249897155429608544957903422129928679488235706426677275617236972284928999152552585246221940456179691763020736876370135127159902887492880205110514522386468274446228243423138710064407961460272849122286969528403893824905089401643871167645408009299234829451893280285746396078706621888227088549492305982161334409505410681040248211270097264237514908306697677484681873304977739398478626557198162584954207412383380912695224711342357812883910576676299560771381950782140758536393026428880232287300447816189120221450533631607913807077003936405600166944873328290360988986937125409179563728207524480914220074403384317994474258408717114715222660337360554162867967706077415092660628884425849286641704304183484102788845627554241395102426857065380392495092031915936548916109228765186093999779579424134889533121860946770280706056451110806604033088557288195917104485075170731903929411118158427718687241889318167750758526736588413226019522947899235510454955328959739329501641406676786387012640457810323541567982908762744567333561366614403773633245878947442086500119448992055424063613799413939628554175802686257540468248739066186231202422281932798151664922341609537981899158964082124358419916414881372760664326748120086328609134059727853922596329642837012721947301838376699124964078534660818634708293042646314684060449005761083336356418100306877034234963882232802452066314819271724266231957533291296877143363680236150216730380198358279945587034236510165830891682974828993634443009674642025505211195117970931454515711579608401412825213820764396875725751672257234707658005946367873145120253430248237640993843291658265108403033404619093629353688941003712227753929500864967212449133381956866138326936748009929958568964853884682198311102818276165045771893742614982543097824416771887128015052125865131138979708512925593183952711183321753163387132967366741315638411283559812265023491710074722297108379018938154070583586007631677373846142982277936365942998043855073560585271969458495831639191817944181245380882598719303147648472587061395008233770485300804849101833877491518782842929957353227788453918397530039109507115309752538004497791832222949668051221293525290049669591457127798664144720382657639570383877834902282384675450441499946569310460293164944074972453551707371230397330334314771930935143340094031418841768384152936366616938894604296616250079197771582871550973119574067294489206474782071621070047065412955758563476242248660164386720055214433587610897861221032652835507682448525516498230658514735560125997770529824158273339022046161462097244042989346643692297062640196295096361973192083657941346602351161938765725754502135379620231016536324143609153018558255908183601447250881079696360140149898797249841085589637236898469130531109361598292755027564838832864145413622083488640666682750440784879055033265588079585313302583244178499849074158944656748581685366687847788539695669415873667213402974838652621392206792630532743149011750850393796305341463435228174241163351742405633708438026549803816803000943558813225887720143885000337344380868192322698578429155908919726785601486640829437082045284019927354697710361077130754553966646910668048160871254018958835667932057943438525112615135870607057685160400008388474246169585446586815370510574385421693933544357946398427239396640051787297344033448177369336509348630802107691798496997406638933290739316847024584385675243355165822902692137308835958912490737620113389603516012160061123699132482964440441661531446251099789321144526103361083277907167341065951912121523123112970916910768969056197226492549974350986245187114601430549256350902646487196657641124532838903986977947422950652247465032268894859042245705028356007867254853821852660123337490857994037996139015524315205140892594549647137099139306430911192097870428431348859328542775066331840603650119668816609853034551294958669160968520346874206304076807360526915820801164698137617756679839231747967033171395094574406534435670978632110607197700370404550177397172380392518671055607351349811204040241152193769728981674674580092043985597692819362745614201400979064939369676425368432728716626611635278604074823044343581464543936644019716556366145817364592029655659882334838877864589625542386437544411342266027421763566445385716267355539206360305056044253925217218280615683109468344842923877781505551424132358321699368977294603596712151070887782291456895987326080875711482019860332130241978105938101935048173950223782562185190659142393526438864976762820661205959189619099179179370887263883576663645856188544715059086773849858584486222847428580144078954016411901811409930877587839722316168131843982083097152592120028197601323336773989590571860815113237787987739162911779895831687261977607062032624644556886803364413686861181712930970749275404392256213696373142640702700875559906960569642876634042447453111381822360850679839424803161154505331985422488923716136591088002738406166280710712358073996781420212286217995089981114247029834360765313139562055557758853337385506728815833836005272166381093404703661023099065671367836477915777949356657588771903548599692673068774692522581047120569986736147699332442629482256445867831682555322456230548435560065224794456616254034434611413746564764357969329946166399205740629148628878173347168393157629792129211119407269164311952735723626398852714400738756329832589291655913081800623758576975839113355936912436148054028692654856862540153921449706633621165674051322813964401676028314167734663883927520061880090199963886483152426111005362363563099114468311286177187749432485794521027243586048246756662154588286420529199271059985744258320704339396844662190192695835985168184945714122265269862652548771185724614748655276169012661532009373274009161505096591965304882019175168658338179474347899662994130324069380491730750333890474238824733005642210413205960180235648636971987120418855579118224046053150144285718578823399307737524061583865224146931815755965966417619166406037684018608307528981431422249877404088236572973405129168544597307193415289435520028569940997473298663400107868952436492884407643495972084683925078997040821114370914975748871391239247564855768340162231019927654394716385860801754250813768610823519039829699116724731296551623972559257481873007994996936765906224130622119816011036826116058998736246552227477497029622773796062924666058656664169430932068228546044860737392803159407629837136104157334014350506114779413410888295658719970280376605383695701662241228622719977134083841672720408320999138107067281938644767316096317367304887353872537255247661084321328225390396137433525544871228021342814392583002172032835135113292883212169376938835058366496343359727217112576678582507002288496211923659959446290690884801756597183064195360919311356228317300217680530004058013845454072424238412662104558344321713414214340324603758464061164912095901465140574099154205703293147608931484050988397924596320089716871494111488933846161979182525979541300487757514617464150500355890183440067695640485046120319242498093161562574537728242722306198682057975998511475058091905730659837680355063479904707456370953465458426378810046914000937008967378414615228575361602574136361678201246511872454098744315126901205024081039749870897497727392225195336924083477287616587481577714499613263801029081791592315313775984108805000776869572186055020678580255807949803411411526538203426499860864164245942917087105292997042841050164323332881988441206750907442159328836894086077707844239699356724653525097338438209363751628754390079840949285510155737094338022460936528060216020591496598075969792726833543916449073049730258073792530501672437037355130744481184176858552728361086692928910636744857566817802511138564521552165208264958829963210793649608892380852054242222294001161912692701591877354015901400875400652158228761864239739643200935686812384467980407867881083020804327786226623034127482039516447106105359176907781278766968608053546602370624361980703056744393670340875518915517995280336508519132195650568549619615010926112298033871432762011943992200223443711159926658875483535302771037895182255704699275821117802605415723516425468977887115012174076531606551414231306092044732788156930649342349619927389346868783589147305896875227085084257092583509640769387919016048772614506541437083619418893357586697902757678419510378956395927977720694295007725160824276798362235541067998282891470028251015735562257326019254551319584785188903770167819813476091452819405086513388296855312777252812124543535659772267018511509611287304211711469370553709840793955343375923611270377842174235441546927672063572178902803333863910813342416637007656859135155865766555150317164915197259879003552667351470098279288637374320725440125947334153099373300181872855870550102925094675065447577140855022611553135535409252525480513176180774577402423261439274370468870521017250092034340658839790781305651153432399953908339191044488226312526667221373824287891932026247432165373626907867366028953199012702669452487035644630108442731542378544824924615406431653395115705970794509825845437553473579632025995011898076154515740242999703991670743939957851678016451874917007255465867602950727144732753483792521728857243871846166066142732791036420842874107836743083843917258506491764813860779204485615673809196990775714524216241082078953095368856204168358884992904253296760102844601584307430497441297894632827346906269663959619630184062926544062644821021870833259592341406195895208522215050629840405281775007084643955553496969272472965717350317589770609367054312558535689812417717218969375539763049616210564512395250550526295094239437971363919504442354829897767962071855193025064675802856199830662486121824374529410223637790861250744547422075512062735131721695248397746068609374138546094214237354509169411421005233684570604741762838430993289422657245668347830779440976043809936042222605602198048943405710460530315572664541144638555776117980967090463507148761898431908780189737198822288867085074904862473506936936243715773964733130677560696133555241410018792096984117374587137091626722120023868028395901035680783381113489023383794676631495482509783470575693608509764400997951975758377150008374452070216346053261925079029843427998628985255676479393428778280503525758601010192160944089055336669364087988609662728437876062640162301762162512878683569772976895117290668397274035575289013509757340880001998325839991033726837676812491108727386771346408668012641235180838255295493477999632934460109805611647785428542448602274671209786262915548699292418506508655133335718277193494988538276352023804280696003954819137744943615609930672241803379876366969610572649905858793825677868711544280456483393974420114317914776229317611240316932938222153961525402052794792106904768105881249678561804838452903572172119985615877381070565828612787012458522677869005644564147464798359581386308079340899501545831244956727834174190065146162705950563709636959963222264481542022613158127603634088299625076634338411924964672073443733307203633437405339153097104080968295371533415662315739846718592908843223480836301809443219557280303001191965121052291966911537855085866580957153060967724378549032325684756379001497826696038970612447966772309721403496315833924236671955073168000186702154968052262593575556222504298875100167192462252557388421878444597790042174319830015348390290918945494839063552644041139396771697324507249815755779015328746940396656446410726724653270432311573201398922932327079378775111689000065803968872597362271402064949626369388704748952868533983636665811613325849924979123988758452327173054325967246748735436429469056896218350238634982470962771803929033038732693467517313365079733804350644026585910469622146487413601802917757934923415315897954709790649148981627754645510663667549479652273535272153903959264059636010577130075069879593949406648900100313847652464767851548074243902607764884338374864326973990854779404130123627291326905447610376838756933971856770243778150355283230640882038377149425534974471790634950946686642527486718815915607837760515341809269539984404887806801724246670196987670212895009059714355146438038392023565420089644332397448046292574997225112767501882652973463949588683859858195452395064744237997588060983593709225366210912697677333497197358544503426261238732484519538514440653759660940868270966690087122383352985561353746631524985261320903485631191245101493764874132238642037533373878422834079918724683248266582101084509749322739239753087917133241848546400942097736467878104602494942789497345476005591657139885421319637884489731979055081013050568660691883392512635571458194153503570146314706523485079263378614423756232790990857140922246352344905739403582836396094869028103591378059772393871891868346813527188002148340760554940884915320708603422599482709562419574721892187423067703257395972506965641250032215481976504855077620719275550545791951989111995535298077034720926249839965741115258684485474078940498764981498872931294042997986196898987048366362001781017429297070814967553017569568010023934444879084109259233371436412582018992785104213746232476392670764492044317972244846342108426525191730948410047954969014020774517246926005410127863604032344891525619402199340941833778226758698468247929965904136964504010204036216611946259180165165977650654305314737215701243679101951248830408858298610155193461515604923758038332684110875052377580482394101627173037585071104791147989349420269641448509699141729169739467816136561519625494295836290561653251382609578191986791893832477261445054028293694892239218788212841869648416625403714788989874129029427716528463374201819721379947162923370606311676836581019759533945280999107011523227442282427115802539286950415689462632437323443247480176494900163142076065864214528250799154581929474770039747590350170779729012108130809967008884922232526077719830210549895603619821300903478531785482655285288400302393591990153070173218479647797603521058621482301645189132014418156169657128333407082857609164027086341518831616893223619267745774597135274958704829490590498327820515296023468374163504134178608036346600559837243946572959275654617834845264488396955317510011440753526970002118141175771220610203048543234732632299786689473158909093851533343548243137653958539427675920896897321212201213168915281685726856692446120675931414702131242262941921986851795912946544037408950164090402312820828397993550732905155413761383318680080007890990484787401195438019801040733095881338534546875969554193148186527995497561599084123069596989266623501174697914691706491802456454443830272807602635404841949143348344165965263014365603488391874629008737899052612449746191322547202265053279221570323099585376880359274113766222603790178890889005678066177506994052177296499607384915840351247789011442657335552012657740107229575188304924487677590926128758962139690905943202858219321890911911490062451137808446738895108172793863107579244109952076729917778821456487426243113472210323409929047593694665087341307822481048199305111543184896038431602907225007745823794088889878005215721489843359655780753640439522889662879703289652484073458339428016359529255758788627205456949141362243003268058017816509930834976930660551072042316353501191403684726544890589734842272464085273460323751187406684096294763947054449833275083002585777536617482086649564482565906353140001155981102801817186597090712324634549708890844114427998588363149624908944735603200808434417192799858988360657788201177451446403026661408394145964057770434915688633674658734874119606094738766829748374303066248194894832014812705994380152896311082067394647625823335749370051198096069096016165366291938113204548760942692729806327092352795987165874919154864551685831292843617569180720254523295689202475803534799213904380348601327850859533335141405465426910678816611262068782559378151993688651859287768086037606217035478879078477255416241268596994796924064656948267858914970085062696762103310653724546863123858401075130393427562032186259268737097973190063466457549991347653060597510635832376390716765021739532655234983716101058438316336010508404113638393604873717661427003982773696673491593032973798734032066360405146448382347142116086606228971347697740834291925517930523928542077274313094131250594892479573448753053054747158729410910490781506711641570046404549320117717460071632067807417765069651986405337603776410018563705596687310782294519432282301260980885524185603398788425796305256553197975923538116587648816451247126999372704039388782618364363972243314378528738672304263198385488003443836140064662133637712863663953719094591141194410156728745421977124410054218954090922324703590026168301507099020665457326321741256590785125213162139662826306144502240045173731802215088908273201181098302626526604572475444325551611920972622642160556818487578431434879423964347763294975162256057976261414269835847023518182145060439979306706119846745515332227123802506739677160120005405647126123313959603880988129956809092275487947473670179125825267510690733215119456461121884045972650137121442335916470245812733977017732521506197458576761575950004091657995138031635739931305215691145449922718955661379900340582538276699175357177263830298730818254797700517227564505020244347532653186082462073918432458902311430597293247935114369315030546424673241364007239457638914129213398991871498920541961126244965767735167840109845518320653816490729960465906946447971743413746794715458202224097833986481197306290324409640748886221545899339700596501702455514367923190136051780528450019245148381464191786184724961285708920830705521224160263227440950781696813116528910448997937169911455068865503977694495808752300233391923654491071274155718199292899303205327883737491692790007139530262772517170502950431302890017755429885032942083368206730176344246255339748771519329540429112476193647795227893100266136779979426994782961313419712035005397188858915073236546625012074875031179037734514207370320200448674481076765244702636953539082959645389356222689088812074662119157277760909083686016174149894545800295209625943706963553874396382830757434616597911884198545121794301015422926389304565029156019683354665708649491966145149261607440854225843265560832054381785716400741213442398895817054858720808127902140046442546548959833803994574758616363851159933656158029718165669420965177540610111595806030710637645368200784618834022808269898279333087414354227137489620680022317546605266252961676049164793423233143633642702178914772178087616137340073292565980806250417085531294425024658562687280965878508377239451231083799393790127205186856805464035324836408910296766802508018861425482841358558615829711535501377267212380881981381644679387373308869978304053581212131154776577530686190263254835164057828221922777424730660559576608783576241460462069899431215140307190031886211062693150540914355554407220682584899023360860202181563490329856400849378329567814091519422214724902497982135671397568414319219456393470721970644644017531403613558050106931175383509525827128710015382932021101001009566836028307130498720091344326803313937214188155202907141492062302446629889392251385690295358057757914088569339795369237124821902120467224830786668836728920390144379275796833926741559186272506385061148701645114735607939541808192424678776853219047745889918398978747847407201628164948728454792706512133362768872776426334196354040587572916207899694636548831788897448460719927640485122762539954575705246081835049798317513958683233038505582801127526141048452479205183244858144948987303123667209918541175739655489731039179560355540104890815798644832859017559918349208803204297630931246859716806567535678118097433724119375937446647090828708235877893576008140707083217373678950330070781543225227319543601907773881779771318741042179331311554307695035403333156390255352705764976811718846810312141313564749897850700609586979901185603995350200325428343693447182769614844609029526125535989716079769108026172625812847637136496711196478027374678799661429869805855114508428393096281282256153520194658707833619292407456036689582205337350359447317786808169900800815950055892812815292799117342573925496058074485194406730455975440810622144566180768940261221828512557270188835143889463575665988963038095348380916195143772676016298582732909656284565408859051050252031589916071390016856228368143201839980567515911384152574403200701710521392934013809803327927303186263606046744977503942722291124579514134857297117721712588309101488909490948070730451725917756902858315322085635977063759783108036275386209260803503821844459328123654767534883246421521199392753436083075389234913306510359491743821325375061662431203095419796654430626667980360478890007358562008441816865948886701391888683279515341021626955587429341803715850553627961317712559982625474690645361118762152651694737692365585414062331818134681661555845817576216651189546731027890055815387220880841355600803516092695340929200759230696829459638640672471579910261716085492267957245448929158337758469549948732837925706070979602773463602994966517655564636813248025840892128576863635979221321261310943305663777106402381992495603779222235188791512670642541388720646234483493591747840588394656701119139802963503241964369543142539628072483886922249600814868840166764079408411050408757424623485413920526329268718655630070980573947289379744734759786435003610965342635292425693701808219843957003485667590597252432339470386969509747214697560072237658282820447871070685738708066607843656709701528642645675411515525050377416138959222708468187084669613834672818500033623121579348401821664970021557156976914852390280678917770264557190819847696522373023275270140411562818713984389512549385221725251296057002799643449696553545419947795305957019924521045874139128042889265496312026945009400301460977135255355993382792614117949635434272770513070097159932758778078395835344372603127674743782873535976963449340634796640571113844719515757415916049190448000648235443145727588341043911060956861822528335058188246269935954884321268513933937706773123795352638624071259223012945912594983853575473487861562405891482754858203528255877097184189804759303498830338714773015825930763853068512578062865874166036607630272312184766347506962920677980147126146452611405748699041567508211532576145646883910510263911773250503939013457526701623001767773098334645139469292665421967175129544553429089573639400472440901808134462654719655964584019105233193076353771846166103239927205718524264939154033993646319586565808996974687250190748519812466809533159419187329706058975555078339750738988839660788359300368291040053590681696366507624338853343775837448498322864432535423591701521142597971149504421436801794974249888999813264984475228041729124180843550594385972092997812010564581943567470786485991611350597783545999599816065801080730287427921220176434235207691263831106789336348759091377028816797935338469691632483536591645529492348537768575329100022736411597307338467141778356209006598293136448674976778132615769752164945657393524410477392646133805107291791664127962713440474675292082995315832722135326983042593586351607937356670964278345922717062654764607008010796573805531723546844159577243875780050938376262666520216623608685836731272752411175829519776855505224651885360010595838525466640879347428142013843308050845077895737918781880863282272803784015138817690820808514713145692544962732452651982172395730743774565001046904003787422257397686726786415259994338566209129075590449234247277033790622404864277288340573533506330720876175275417476377130230470881074265024225592216116394812058892832948783430221189989196815854677543174997150643284349927102900755573472792018034594275565971807208004382173730800500915378541575659598021895657352466129176276267097919623648055773457075722966879236615659037687045561487271017558813755418745473408960627219377573575586773432796674266879169809900443964205866147285670727349884909342321848500475016365895338904468024708965547014987766243419229930012679977994806794664892032765604007320158915860425481864261184936019169261778750393032891367957436027454944329085300045146226783207765663140225779178817255606617405339527082305744702112124546762103765322370995659992698727421513231672267705841479031800523569074247967696887324304052411664141964575207092413001679759039875628044575504066167443709174742723936078333356260128009043333616126491898010362854780520798572725676197336096435372809120061174648740246765013066561226490217882943704221768057178719726397332648122153909700560186508593597331070580781017674343506910553353156417636411141529677132881853188640854232072894222536554689446655230751778677607550442875112117532908134599758457065452146218257193433411623933415516024599489917195390459456831087533100600252357604661024563158697588250033612853760203629859084792248231990183789701901804983910641115533441843410768838332236144932683830514092057298708370128582220093507878847102784131768651972956908859336952862946288262890694225203821152118891394610198584913489857852071398766535525887350963938008838873598523608131987758104922717220526696789708948631426631346960480019082946418831984379775062131552278159570125510763197988121255368602715794923218819008501025802857629516360478614899987340752453016971030249802751055824550670744212786137907055346694765455820273659641428393845233758564902727829657949734099638361656861055626276282065709628739803514947445793108127903904193222056281547935889936827705186397875270007942359732488436657186873082752120263191584454839539152255608822464649874992751350138886912645760112030505185319200198718702465134714494087291704579969024525125280244887050563920474647884502437559021870240666468309037573350269212836210908312082263926426853556116064980991617105242143656492461656384742367574259558584617180225146330526574777671558258739122725997484990263115016709622227037878602225208656602160111880981687317054188452445749811569180501031976875728581590799130911300576410471974793130215863286156234670389090365029094980349487758720813585588896144309365479725726523700477937598816593328342637846819495300617344433309604671223370350385307458483422101718003645634742526537651470345590861118903912923757603988135043241463606311945157375918481822729830894863133539093036140798591703221273470105189712246524836893431181760375287927451639404965625101545576375391647819242602096892108248925055782289320652108477553611697291874267531324029065132805194502208557865885887542541772659604890577761025504729755660807207801690736503832673681819811802693599618338304719554476580889253799706244415149511860780363692357987345814144600026398308419049932783618200286821041431306198273934962532056793022031066556058256333937912613361106327867644850259429466993675227776670550705690343049493063181356887422122470060403413899990241980285625278469590790837073150730727188649949205215497549281213152468517324465781314827793191242923581635203804827360056962591776651785134918346344668440783012828121308284117096840549940186677635623286909864469971581954781215285030152865102436823693848461936331105347156134353331981839406278405171902741287797308579683916651988669100962497292364576167570696204876183303069729869972884605697325444543418146889373885781954832589933794259485769195347010635052754206632442604089398086815384066509513097425906155742311228983645014417908685367315146542882132972615566776592590469442462058953023286247213842408584790910980036030951899869733703047701488299164862597191231637918058003295321783798538958342133235483525011499621757069940470513278824651080120202533359116226937917407189945676138540515546438240476565722426600890405167491007278546585865127706173026391156889031532323561666878292937337947905056328941948421866267469851171665312925020037613042534573596925749804836348211079162972310375337801587337511183482742291283283162327835991443106967412261247436259553531871035035999228337855247133717466873784590741485226331090331206590816400754274747108022639744507245489708435312217752396841251598596017429254332928221253200826752456810910955932850895985465583370937280870054406660700764459118126423362936162131819087428127021496137132259764487408099571721908225028425000712701426603085743134598450585479023750713264097424417095666184455514228825489386029538207974321363846556307408185020815477920825342289462277638286654830740644371988927223115771204064092625851740683301554357646818169065349434155509011200451480741018703292822861606704024219839592683736757336950553826121566588329820252166579550865685764148674646769611083618436756300461460980466398091653118119190527305915376740852001603464759643667613663049600069811397883461187056646265078650898565386087883581296001460086233589534058185514468641003651312375205964513230583369442956395408976161682996257808885647166483131146414069131732792933276337894889287743977166547630839272866143196341175160181137189073969373723030267055868415874101806702480315627108868031897369389164506938468550350685194192894833422725356778005309593297690865906217831870932788923301132576757089909824429165554954316305843142626775683061276284774138807423496650165339172104248337250178718434012652247192146843450041507913791346388634517366229958717178682888508999394361770604613036967049092353759887133422848240566228291548950508055901242410753577214334556297400534402393950019554461636969231819550648600026219409952399522773187450313501221020595285218900010583894156026301127275532418409740315335627074524102170750662269982452951794756260458836710306886938527044925115152050033661496449867746548185229998168717381823362141202796948493165688287531077244201532282775844171877375999289402605269199391767499549579762919448817751346592744022184119034561943769874294145486109475708517001689306000367011581123624836282761955512934268389030789550659117944043628955306948469349110358755983343906992856036331502846492623959406979661890832235664414048736723386239670940598681252499780123608534230415121856070156691719188334145912418232340577457457681620442506651565235344350674140597137375652932627905550664792798074135369798017800465211599197136944894376090716454862713291459106757770447367081896101489038817014650648761752325370018688851421566740628961258382150315934932934763411366106610501530262078171185615627694808323009709308485489046849373172800730640884237117937990776340855616256117182429330070654737869034001086867234707298276649906419585501318889856030828722558390281309773011972596064482542365154903076763176749621787806905525256211684741673372358673211335062831978914176572324560205258676831439588774186019908722980246997606377765862766333190389569968135277796220141769052189940861357435424948061793406745959468140292492432045521077295686605068118085387577985437580729036604836982240802827556288986825924094466703582126236823143714395037783193882326454630683502870889956235488526512618183653845944857364892275355760850354265789131048827475742035699730718715331770696524487914140781663756448202153485109564872420157207919515758718155370459380719403061768483864124452383473851907131924137827617243289740914494454215224593733208877603350819709059720499903816113142538696686569334187989646362445027921166475514488805405139210652768948873024351776903236354893482100331373518624638812142468813666785748593525759866535871170641626928733085211493883080732013872117964858615186382767952742472988502474346486768918091793437260113214229056687858937063507394378572688604589888633813558238679210416895793122040752181481274201758959006192839155065754050500392651604343122958767393611177653924961947368936438101467047878906911279781489962768431307267592059360752432895893981630243378947060963839088525080414886764223857620752279893738889477872862993197483019398843495389342507230627276819692034434764148939041926104213093526319238426756111248863158982791568251729450793579889632946187950058648537503445600524739616550280475380340709026770159836660242564900258500572874130571559592168972387053788110660024223723142300413951414885511842132243604636830927164416752762774203478820846741573071742560482078007757367872518319981543445434536684528106757787343537260020356133993858225356750207789579413994878642497789729884663354132748224681684014681153664149465416229574027901390957283274518760981420871092417434308049268359481728393146188145443374518557214819583318625103057039029406581632376237359670498089060970230065804507504934675758137091408632905906730802673570118287677795204266014530893683831219746550819342662213113320094308837331994290957446669304936566887786732646585947464205029871198724515995163714914322539016474258118516546060920976196407014889963134518569831933919411462576321728364807569971525531084181560644689147244853014437534162614085291852958767748232501762258893470951429742844216914199139263623873602511428822892409324683346434977908368488129047733810579529416124323236721733961596906641881542276247826217475685373011361707271772123261701989595052623624504805002092552923564721044497353203649092599658471878430901227093902290647013533769028252376254461710532488965562117371382760535418201194521688371689337429321389987803818244379051374756451627761718802305725360761503009390983095095987495402059040501431542239539535430159522026444531904041266795780396918696580946991404103244263171031672721738763727521358790218409915815123357224784070235940737386985225272295811122309776127726655827673308211053087153991177165102114621743346555011215479154207838000689800574097012059457851185059579492725290790710371776388290706936308560880228228911626581960310386036057360287011144357335863117790665155078078488959961779809926282606847717079637213127338948879449813538358205519957456971082451245227743618553762758566955215366740876308917062594506438313817428540119367844768126209747394506952127906665864857097727923935192426986816879397318619185470578834190362109341877402567432433413313643512796695834155434679788572475661077186709628149851240999879633960430312234752854127532827243495552389732419734346840979734153021652424762525671979515019984294622957908046945939250828937836264784459861338880030881652437988908879833269956721792003951413109659586044259604096281137448154857073765749541578906500650004709465786862070312818486866291138712010643866370859228170970839234580189277732214293774672728878918770745776741219801047073677523621786512217919344494633065673416213525391328305528978528550164773260519239266564310344838849581817481786065678990099842806166951956302080240086928758603755873962075675875377284823132276396037136029917009496214504197719176774984104236425046763994995893320289123255109408182994188188439625701444947365764069029295143340234774688909657570810357865935613987795362151470015109671321253196565988259793236627479404985396466443855422359156148223273635676237804530992626992858063731129890957929717949874447981410303105138066751498163616022102851415368272937601603685927004564873355948152401907914849872068407456996038784594199847075099378681636975646737098916034085882326821405926353459887028102623632478135153231910593345555549455585755514515169689675997334738399549751177600794492946197393860354632650151170878252671507165813949592326336958111787282890830403112541896468569349569069344352368131366330513795259865482465351980206363344358373615949296425539739795162611593220017472806180809261481706304069705368525299005692209958744551429325702190132529214403172366849004975814438450761502378301798482048825772671680256826200181341466678752620458227132934461880945232592582078746230987952990829761952048445076651831722628027181027506701745639966742692665344550750454563501986764481479383121034447065350903926005198315933286877501969190012809708795449154086525750300303095609548747322742250251563656851776003358599860248062995939270499553678595689739651994570057048186435101170127932185194015013743594256698209561888254918536913128308444854100487217492810642649051769029869950963467922711668743998181391180579773058869855630055457447475175927879389481470052395746296043126872658019676375257607054798374628412464976162455141982582038778188323094923168548299704575158864968240090651280805807141862575306289293850172922783669020934055921627292108710741206266522516098562192712853347081864220638372214766638276197198882428462753760920492584467754398078135742173318042123783632398866053962181103218363078283762728150759363622501280335678990028631262162802169255107843052627156411523515655416640665379935189116859076850491905358030236738778937980760560835166182542484471355528856493808439889226157530369423562153464248606783018912365924048557708637196734769065750966070978914024690113641849989728175615724900795046134811241725618616737529597057126182934774847418076012597397629369384965860816407344982190683502670045225213526212300322997991229850540857558172672274172367924667114515475568263824793032159759153225241340713510791019968575250473313866693455555663783339950920597065833506189320955415076458723514077554155109654796523176106927716716245183509479984856724909030585600569111908684210921926100349660229248309857461958804344509302282029566551074472481381907598068785437409132849256502600092677109853181848777257939396812436415176977261483419221586507479042546757798227758450090400781659206225783042166574221160220124773658536232995181807107027126048262481730633668561624935286191533130190219543649423245145466443203660387073611214953303918479337169283465672905702475607343264205647439902266365075355612595791479591138436216901281326775337530394993384346793844712859551716889027802204025790428925204621067096459842485467045072041333813921795245451550697116474901224532066902778673423601897406905932938310962391544628651070660695714578635084049731525715118895953967100802556646612429478959052229394156453009986261715868757388282177022449594138593068999723113511690312286772555146705136107192295443601141013244297001717436722912151355691665729463669923463834283970854285548982457287291511815129453773034283083864033320938123608593965917623760236680074284194357458397650558391680799173852454741979889878859653033249231075653317228668198109977487006585611177646066170526333685191084879715835999694053248607529009827701946736570506790501897973675239638114388945736360905866936416399831735477902546163381979306384932863939828810649078979961590290155889472399597528613898836726363813137425812611779463149554156956621926127165891898630657373002960339556066916158040293735518660475462992843029858073223898229219661983521451963697753095830966305812254457193213860483031295747438907507570791686236075146283982391042694667265074404627036393738998077981915297632616041378173677932176092145262465392736294420531784747589076521244950499546567163146289053783052362583831769551933429593352470827189428525628681409609340011840281175203163097189447753786662370310961817023453584631884999393397616823400853797537285261993816983495593708797658182555036535651884801414938064121902595665394768100323791967890139176664615405533655873656100093786566688284841302065979567694858807073784327410131296635384378612053180115843928331102917336039169629721107973851593395081786773858016566446961389725953530516508100715150636721247589121426119228581103403884423620482643904098314744195705232180804113215890636808179396581629285679446710662702087435714983306923944971149850920480381059489998672172249976896579746323960738970561381678153684223353402983852176564544456456420449165228887785694470332655317213664854272556542104033347853102232305016595746559566700231954513817818986847856142601067164413691962892034499502540633584829062241727386036173232184318019291958996600277156370773676516499218689243647454485887454081896647334700904046379633287822080100441757180635569141287430001414470519226851922410192608546428568019271243003175444840614002667354550060530183081196395336641356345577186609754280721794374505629562001789727069477300928454128479398607844804582121958444841149718444256413464025066724840213185720961178081627970560938509666426752174784685639898372608499757002902971279089957092984970973079606772716235304691659624641941570485952103240739453538217812620486347971176441728332880364175615789486050240700637165085344296068066659246670686885714178669940742704585910971983569643432821616443632876627066976280665173234058364075111581662460802474773019671154681835438832161194028300105806409304337030402457410457921585766105531108829435899676815477629991993734110420348577373809410827229289153505925596746832575850256585878837300561276566360664160985359711357692352835099505322085094716536298216643128661960408877242338349936451881959685483473940328155929658026680488336272835721553733438613482158123408875883192515605405944070827880136678275161585947666876820525549728818149269975291703899895993179859872742921300668281281460441269185619194921679073639966329080186244365204099864297528823247446518096524905232174271886389626956411657048535605589205675826140743717149773383359273747183360174290134671872844422255561288149789535663688680620919353654581979406326651070420800104726332497580471603358534992389706944186905805044626776755944211605074857968694205451756976299885341406194931965707576573023078525890935905452287906452726137520782193152716477795765667018456700848329936011642006572467502022311149863130204978934133869435394893192592733001274105501470910536207187592243599040915573259860108122418267190338852861112246799985764387820166991145542498896150279002541970978232450810642678240855022245314207482998575394565080180329031846905796216168862304598304107524116503703745246192137979984701003856865019628811394793873425780563415796620792283010206016479843809045331536332510732784671809298134899091807372561049048842821690097247559884467531945696847570539120790051796318314485396494967377297139351673522874583342185211840909086620215126416829773035088103943977677903548759190480489762751263016201227656862756019156180447209268336110854772147259944856973910822473512397348291998101538661905013077833093031995212580886716959811836975533243752324882476722142690227219175802470745319580556548575549800228054184499716874031041734125193483796722212024714846629381812649554267362852338095811006578351814049483974403312682242797146698759468637648471625431584615199844674998730389509884671604448005135270588031171204054872599419716395853931308459076099174716132177640257369325543940366235946550092933612657085708165051320802140846591475832593653475812966677930642752474872333113753326559921340386073365789976836212963435339069810266370409961367933164882106802998188084279648892890974672000393747825098218938946599930171915054597273425700145108696583320454420268101041693829152090750417720553270210755461458103688260242587883909114786891420749631929896805078804165807147843210728437283974139893670351036872296159133383476108178131472198560279301769130711821760535694855282725116803321882484875738730610535612616782419852101483220718445854670883131506218161198277874633673534730527323765897411355818463882628219380796174071366989378422191204057482194193050527399326047646993804288296612346670938901826187490206036203095053119890634359338163598090698315931914148751973813924499847596386861575017542312164180493349111614093542923300947100861078106345957544399642179667363696282030720156278761636676848687100133127312530170314946803100700903827617680524278486652318919291218184914675864818778260736789736296640871703053959260768559478973614900323175023762519034950046361155393879909831984565834870112687416673950990861782717679521328652512012247513333484456017258116170405556600455547532652972848195358456242589411116437717647960716002627075909875814697149773654126809132363179800663335513975163603154997032236272728346746789938680217044082344628777927822951522097858949197020084470200590832634456869804645841752339006969477151311693690980362165291040236022559726948111378808746849994278636772361853368313987651776902296482611030326669813634098398037334695880587080319518077584051065417893300470936626546913837073106358006334710226430506813133065999366701753640165243691564109896014105043087245972764946166764611542719283158907381142525823384561759194060523535565305890061290175936477928886810988651572346433356768572137301033187525217999255601034860063742059121881515139271939840617982542953367592553084953729348172808629147590319548355763372887866050229005698354946344983461370964090334256796776153391072161471109327013576100737087995335251560332790039277496926916238288894878341194707410605193717347794100885193480076148144812916397542194425958363628382023643415380039366052150449344742927580778189592119336513111875307257275693668745399775647092437517108730042982370259540144425259278894712792599507368226441722186406778635948664192709488568069771471154781098420134194312204532174880030695137130537604432013720046678397610804666736658383513651067576122974771071708969873624067012165903124989380296868135243097001199374614171988402455753516817074330996054218628639356060288662046058103343863068455532571336667014935560813163733822904513096844458529647744069283945681002464974818666661287012093586611671623565131482399676148259673637355714604231992986035147515475664670443265467777291296352658749662892720358014424672870571454226489518335098585989459142136175002181036472299805155813861568529217980264791397623516278396926819534758012732219326262148322240359785796408494839836314587687004444330147780330036650745934659931017166836921998695204350853820982424579583897932417636743959803266884210494110612751659495266789420823496502259237286645231939419561861596785688729733810057941619868508865834969444013891686561208908185952224633256093174263937887636790227995557731591710313020756459015180617733926957412973220587472054247687667284400064985271294540302568062137545976391753530046003508530240694443747414150579407218344106801675288786264790684978967197761191282924137266357536727042842418308433909592200360011684797362874522737299919111221168846715907832991293639300809008512609411946711860286479493122185556966151350357077077910023331509162814333696452744789436669166019385212926125448137619541604696137409772642402271615050655563319198850777423390126346517073216289485794645183258700953733198880468376780327393058797568270843817010461509583194510720533891619192681302360899408433705740875183175844444717080247980959919491070218485273832364206483177486891031638198591798379057198186052453560819411326158173714745166649143934665115873914222698342871906775286261244134801938384339338768718131008775058913187220337446550982513857200645197080692177394155927090408475870556435212517331852334901910684296983319269264904950439059950094887511103453761388841232294014305249557580921859206785618715419084157251179793820913949838478285341411702369913922507921549148260104785642999093880557931205571959133055118907671660729309938319182332297081144849671354441057782991178998182375001120720061943223045809081284551440351441762734167449005624331104856358920900702009179711286343679532336113923779858946682678020428457027533516961006386300262447841059817034409886299442928694199333954429536590830653859251210029585134879978674154851222882046113347583828961268926918288455945693534514641253392921972814669705946250674509578135792165424319071149350484036906892210043159300162636841919686708545681906952499178690204655623564637596270096807023804011161870736202608784895785728955636528565597416476748763689830032080492971355175951507546343642198195331847263233774383379481050899165421148750814740810383426471839201297991728804182655060490520111012623984639124583846030057361216470093917431747362453218174298341993664972201767406161494798957326940635948951519509374605650947127717725262488370875825557851251974463035388869545237052355203623106760978849303126314869745540180091269446952366781961191842965934743019427142879784507615996991751209725389550157331947241869772333359861376637428757449274865265903496305427796136998103154706214487109390645299416652787629534770757511536133247275641886304849662310807486854236879965539963603279858532046610164304579149035890617574096237972430142003041658320214615588690868250667875409078257249254943223392209372225112989922901470699949559991248720643600504318741317860473748650768455656292220352096609943640672756837700445771212690640120064614703249714059433972559335797798241368595383917944949531796598473998875972072121300313738654988253932289188971779003051371924624414837162794502022569349839998721195137600003828601572544933904947645760762096066019925806084295563786605201827421061024923049558240810976012774109891839005637795745313058421694328146302115133248527653212295020119954786641675781251944962645873066921940346329804524835133104034531055908054057686127128766698697016016852587248036560661845904322241714155088251049782267047648004910533437280501287583692978877798930721155508604612363935542654426187297191220216786668308359397178828553854049769415881163537242920296054005167305923377215148829749551104551826020155614961909583102351487870535342354979161453304391355592257851764599027315260245623600431718586915686097471519288751849314125477363152563708260970885382366486342192039996427789997678641922637679197148217539636211850240006544497661840217517426913277335962760446179372590316494552923318409603664771027266441327244152087595771788385679431107021562122453925070659762520283148396162627645254684765727928795450253076123087503762344111751055658597437290548533350155923100424157893642608149261912084815556309652934733134657235649478591400635365776175784151242348082704951364581000746920447355662518247818128186600837109359206597777812835422714851121096593832675298892899595015342007645701891102099870947448698214658324732097861691540164784420323012320457826500247295455347470707038556958012057108916342331926573339666621082689381458679846454541228336119950231494187079984347595416303783981308273262223699090937040454671626285149808806380714262286292383695604128018007933211716368934297441416379191301452370180807733170413544267100580299699091188149640505191014169781289216239108968591839422775016748431093432613382291585372051830505733742971567172395411889575784561034540401540603905838275331356107991300864316461370716067108030045850605488989662620227344956806469477203139128796766132695274490945509894063188120086882509672414836501083822750628772247866831971253403352320909796710847596684199416471446887941391794567020687784208017813338169784668882820508299437553719105842592507362990352354224769180184597968941892821936685047608616000122915553472128388467214889505887777903492486144944718149743850188402100636965689980909165063133524417542715661679643195471539926745269099703706469443939823538664810947256886461510873577250978121828104068754473327973917410037932828313374299554968564762492152004777317766900998762973952322980683707293873705125231146651644547920072673940653127883192110599119965306050489892821612912016153589608635010764486482339407394435747584987555620167387202035179755642931009151130845798231245045319560173836659124840915625324609113343539154870220281987199411942072211836479716239715269648331189813210967691903355224098711685609461958230162943555415431448148830699174539875557333705941659939480134395350739851375619205873025429611357554636957330570478527431209270715218606659630647608941248310571820679818051175629087561666327601160606039777508271662715239727755813963062889999692651933301051495233828186489275915753545578275157584808497362301005133052282776714165529608716981257318383300518755794146714435200777764970203675388798845780064400871591899658582107703475787694875398471236330820923010303529825680726849578228809212338506355733842017212894850074924822479039817472802473727175086371621772664920815119684570856836319778374818789398076823615836878985206208473269044905620976986858292095629479212374051141152623754888780388114068038948377187710238285691022336839583131044801659306292574080239623506321362037520857070085713363138367396474803350734397524175896508220468015600391332149106223629297783167410667357201410382523674274566106239109452968425900215549462592007907227322299679121233042375844109226717043387095954230078475557747454433644536844431723209533723435452662792610788195550532072924247984548871825072730106869150268095354039584872152157730121771468697881866364904701757260831280243102473320836326322668554646214158912336147761139106737915659726576586868475417449098331927097458170320342613775417681707333769570612834066012191998729209208532871643052782031612162628622485342901594281155657688870936947190605597193358381378966367233265028321867511496466735023746197362786397243464004363652642671929823764498145223573680133775605665430064349685168751170276014797878257175938513922188626418956630148520593060076918395093851005359833001209525648684667253414685827480713047967082119056610752962974127130360237338206774452441869630182948062528293733566593616367029472708945921787101187670170985399000245684576825210437936079084570851529803936903644667497986370940701458733478085743804404223085041377145358114776680691488618019646275735875215732758541403368812996461730119086380435447993743650113003702899247157936977149466535627404823949392547677517710747414418142297477505657721036010029520760246546548829133838165589388919083172421114712461940881282085717408479739176055670332298875272936919156901104227250807310932509057856526770471688128421036358756127758288392045432133034593972090121741759681932509050300362250559361954813098867479196442729159092371520340983720388423058886660330680877960584570560321792421084940018869905290956313485593030271668374243082025219471716921790014799521575034436091193010252249579764025353821394512757046887973862066385805836395594124340761914136515586602268164282389246544379396216982369122462807786524791395567958893987830906544573467683833029172644744922537234235087551309241852921093004731530614449355085795619416572036316159285293933544732561080475038942863453539980471758849160585269445665192412316243253454651885863100348962243286099158208483034018571074679176471301498142262932844647854103468721523392522598210176078893748884885590287808070622526002932366266193486967550750655053065479492606955931327757306480324288437324395565459192773856434035129719254299366337825506656804251514421732881934621750558717667862395908320649754303182791322036657201404058457658785154235483425504278240995755681487800991469044551758315352585405336610161229325824031593226932650370949124403060641159200191548940900984673859742882872543527608690446539580227750801088400462738188539372328002821793356835042175387634360610397086355121223075682101295679504535382803716805624398124186038491546283774410752466338675509982405270760139718446876934475854493815001228387763491699496534056132362254168352832529895136365729925101975067938652085469454259424110413480103827970418238716911962643935969436665846475402089336253678577215430803286567398390545315674510874602309557364507167934292267770619604233628121354806723483275128322327101118838396759515459669136955352300114411923239303368647325557678757762688296304100538389539124713946500520853272447457014467028242468122377851375626422414582860151014333243960270172522597461441850495618539278495873391166938098669961680981293540520144623261057544936823526081332970898206743948084930523765486319197732037078496845020710800777885290063197100980718573248499594913203250061620073634929185574648609872724244958105636286775187778614615855143637665999803580822697184718458749386988610499822323782570251498028630807638374675910761841513631417335337044771893138120860099382187013950264885234188996127054464196756343005757511878588356021278292087024537212456706356053810966103439734485707583877197928432316681116827829663735819763733719575434868593349272611314332592453301830638605754858654137909266259960390546706234541621127160570344578475238486742899757897710608422782953759200962013970580120435806972782701919183115341470618223342627405788078096125222932748492542797029771662732508411075497876742676919229073073887613066812457483793735433109731288980076935188086426859499368588732152652819771293879035781392620788389508423691507890730472848808416156815152839939935274666923967613652447270415739149861356909499485130586197150556957332065152384970212363615676410745817832112581083350147478537088028277113000464230659282272342944502583610207756407165885978278325409648453260151279041830817919244514732265697377149937071831687646142283136022939043110278399512517378038324060612343344985623606350472663775353914380544185549917338422242791097445014245351948477536697591841862168761330745377525077421796176635106614486745627448244976163788986873967373988458386129772424455263536501895400070100664855790870818731522247283944945363425811223830986927497060523604195719731133229723428201533521317858035941334051699808120664711878430994285074902756509499404231515941160898603812853597951021276071857875091197753682771944010289294337600651932258185568806650301215810496432195375556645586851440788789552216045197654821845644644310999438325668707821452007089970901427837355668081200887176144572273049662229105438476753165760803222756380827357624648917987801504182670985803530770414299326351884242587101933211527078359912098983558031914768318223198723696621891756507016130887765344603101693854247524231189699228106707084951391543638886465154130216580638850384235556483433821242647454119809220601487100170206493917064124997449659837811111719129265927860713103342687565769116781255387342515838088944729735754310336234606136224797418454934579973387945949283080895033211199847778067004096362936487092421183844625194043613994105434875855331240193518553536750464568569286334352918693351139512919689275159052791524733500051919538231388626616398477275856785092764520494074360932823160480260568133658752608815737776834384580629884646783822324291815073694959490552875132773932080070422350704349970959176137657184389536601851763329838805615244907355236669098726079773630576272381405423488209891270002807314902273219569612559112433525361697778251261044105359703203448131382709315433758040077670892626200653062438385399087971903222220444898934378320808672876312152087848264801112008087242354117888745436712520427943174364199414989995823308028787564409062690931211816413610034989329270306633601376555280510645817621769209804010908824859563172317046666668484880717761396821713756236840257806933195149821461895201734147338315970449484565588717729126903077547285878133035163414412042753446145184383496242496787774031996648039571049564151682202356728887358815967580526905176779932478530676411909049979371430565746985073762253371796003335885210022438680468755546423095522810592009903491559142767034008126530997923710127113051498240499691479584360277299738126257881095782848621921290118383845276099046246563128077086506226077677810608700996378818538824202805232858347610443239685988473850877138660630754789876855001719103319295744531313956439494444694525709699455860374931307148540612362357479651145965157504789849044156669309848573049953893292379667415902806581864095491723762599884216363258589009016095228409615458668448061078870948130574238970546097424233278094667186308127523910709702994296014214802526561058989911297716899418118021343218000432246846749359839773881706810504439160399706167561064748643826794516637661937736328545447699347400591900435127283367614081076721451320163789367791325146827686436074578274298759636980681971059520614015965780001838359354825099143470218439095880852505114461745363197005171688321125604207065728534192991535743134945111499625545581366292369772333645007569409395841035675341709137714687705920118199451377233070017864696688326768116423354775340444494305490652869335439067373625852271222374235523411330890149370967231770957599403537415748647936497180139023766758462051846134121838593281492026899708649001416409833992616863669008647710413445998297944414386885776473073269241742231223352485169039323057679102251416052007968768724815459182044818834343233705223694425856921234327359739710245612800742153250137500983362429979395445737118514054021952861402272549723668841937061029162272948241711347606167998563269001441558502697404374342528885657051592793613825551826134224182260431495148898317532009001783978529943476163944518586247172408528705833397663717327265317735642623250233639826823057298758637996380577530328552934463843695469469800964675374828667861713921263043899830829859190439813244491849044306841495047109372519800778080289193005095155670966992538167702705234275819423119024882297476728166685823983029958219765695585731231959829749952637198841500069593133990266440649246240125302891628854185114998389315516828389381628115587211741310086485105297317312728461241586175597194397635748298303692446949680221443829595421659352554891970549350328042764119653026148996608832734734392786386214614807336292792492323791358863160270603755395710619671906300398750243928596856743800247846852833125092634534721396448876332321292937835704145290828028801223994749255115785311088286523883773518336335715306545447092285802931406233436936340287935454192267882860576579115288009737494866215235440779054856813412533782960707006676454087884502488885812172228209852102548410174339505315468778591829175536274354484876315415820365825480043556568408310648661624294621329274187144623393087316589912616859971646496235425408318512740567251468675036175538955042758247486917018755958581301367654450101493520112518390586212628445308029252466863120915568511099365024393391819297781693964373723312405839960864863189947145069101209608928044402239255619735486634847171756538651710733190157169124611023215449457026161981501315990799078211373957934976429924220235734401822151565297188935203469817853324135948810693217217132842437318670712255834374293899476280352064395932074664590100755227757497824670278423391990304837444629158132551567514253568533223002417301395560769782208850816756273981224432672029702750629150976576087763274582020511186258037408768621827785922164093440141236780660994684883016446083275137693267024331964762472564292756269872593596817449043229242171298373298285267687573536954737947450973611942296679224920211095236662223164854389800363902158564117657262026228017290819383933812161480802169507893143387971148911663963822528825195107278102846427384946841375218975192144976086333809481187063554136622127674690087269221213266042036245775090486228141976700964928738716764966221074476688931356676876246015625499603529300609613011157013065247370852468173630080690366623316489991291816053323266454491597540908398089360264788614567596896835697420274752085297763426142453721178669812755305015713951854968207698270361738821378435477817172839167323346109604462512279200226702370284368068582725037924588839528493499060060063673345869911467714206285185496107854100065401593257144811895463490680911357285444691681271216547419989823427827331141034116314275535878057850799678963032014585400132579216662707389824264376042221503214051529446956257824064556946074157440651056128919990696902923102277142538929171739464994159430057297548184171070979105962253303344532798178356424049706742048155883732859410843490060852115434806048679688592617883550835980533630468832923820162157926340795610422563583687239090497085685530303638373393984523709603761543086296100363421318204837463037984293644252676310110580351223080622726222405429741343739788097738297065163706716058266732280276968647578262001289649359140985422772134352061148717363357058232298888422160657447390116304362918104649172626920317859813385438349096230106570988171303420278474687489791712236768510773752921350281246270283481649327472270463416186632898239522675935859169911642021478115049348809497592564163642932246134968125724063024895694131467366425587605640321029598457152213959303970823519332156332811912069595975969030351540591702992806996240547864936446514653888216745498124220404916439355020353285342680071328569758881777382995345278292710472430647510568939540028591748830821194508547686547072663044227846845913209172238725226941179425846696035896254571331870402892883706022848783810382821416293466946155197144472651823901492950452524744968612514027830413741596011475900036302088873488171303845034903245794140689808623996374773298531560912876788991713092379159347074930582668354106561733693489614769818979979591753144755693800857935486485487926713785886210245530741135452493716300093209874499800623911756327531400487598742353446104289282292544652232738091423033243003162666763554921391734334427344518225857401711782451195138608208218844046217439653057065739858962319321379900588396413456426355047347254653709242131861257297329991072335919015669409946973447456130401103893375229041063313490529741984069279680255829187759443942139282183312317678910643305260136622043693492628216950967509821327754273507819085910257779293141928393429941105037390272851326630592856516067033626214946231173998886028414526201212150395763032160945381316777907710039552876595577230532817566366163411346082268700290121514989393655042333717931059241126863653415357456498796023089927419611455435354338786367995125881576509134189782168858602321159801037839622747124249995414721922390575270364087540267551649456049026493587573432547795844428518133741214402913865618606224493188331162259034552334541317590176470348724086746014547941493363815305543581942577973546720679786010929314470958438331548755474234576922186783720761929344685468946170546041788377651267065904199965301657920421054997198776616482142659899882996428795888269553789948718938622885792464587792375048951658791892854967487546905457435496858480707298922655225797620069791659724728695301975086127293644957300620930264972140327417808340450612539101312221249046440838187892062611589116765287105529130140659708508920627798598237617147083220549243548118968620382079034128116092635708240947056012279231081730626406355783926074838488324737871845234900048506991292363583446102537456377509638533753720311590172030155318986717272781318252629652926516291143664665963415604697849158632644386499526383848836179605564496393377927323018319693378205716074378009798419685517458447346747632270867656499419547312532782951569599271298947042606499099969026562508963307353248378786430335285167986354719365813987336523449189154486474058181103922378501489856899427700676600524301548165841523086987505378863434607725364810479172336039852912075355248982055901087633946482763778288957093333984358500562216529005358437393366530469539533364316177570604497219722189015824281567327348200308047771336102889952713380237322754051337197299764562749749052103186652474343645440533266355243786016111860297638620400596454737896582906422674221793364250343488840036297251830648777014897041142880923526539905150843349722574127682678139153549869999749751618022733037030169579860342427676918162296619852799613845507777893968956984646392575505115657600115863913418306456938753904358306726165321869501606850282810428392731937511680195561227924462864189305659474865024013687998896910458911672704128932842556663548874186455759474678991440311503007758652908230936517680945609181109139581893921790736790911303690888632528438705694713922072568527825101692438757578275864385904244497578809278483820597687832615926668517209543143412820546357180365747373660489877286372527642920461643463980478462318202965153773079799974491536620264935463273822380243150182619567404441995412804937710486490472239775316689968646998851942980101231143740472549827236290537571939815773541477977878900662006664493626447186206402197377365549351204986721403505063276527665727400111729582884501150551948911083803410930911871416184391542714184895826830474172367723654753921718535319005225666188676825321840297326052010196245592938141762027379403832685636381579024414980658546431523523444857147173921279195438901465222945745771528577814048094346425883052060760835711914750010393554795760490606184685194763341313512345441420498841588799424124511247212373400667436201800695670084234587078735367083856103600425592995912470364142524662364170636177890598976460574729646907398738226844897862505757581049149514703679337516021954642185614904042566101603544297422898094028512017413367515535850257876225820225200482700624308046900401196965068355080925268276420381931531295860935539520683105551320550666795998334434192939415312751005091437904084371032411040527769582192384534571860093009035514770641148479309063376431793644374840721987541059665461314086527008999447774946594213434277740682116763895319935354028672204553603371352615954307825132715884947324044345562314379375923396588485242407045447805525502294580509240754470226826989892269086169583584287796273274662012277657207023676633267666286768519321827472103713941709460771090469116905516002884930753465247072619350037448110660426399152702014626960044848844427937976937826726463166912547565895359069681659291020398472086976580101061885597888044067526336744477376097324960888430597231484821115168338868056139541319255015549810445178356637826534963564514033382852395406597780029044804950117582746892694983985563263831003364108505573684095244726356990743315978467320222937845877655659937937710345546780033178868104786733257219199146632948317590249976660704416221519740604287259251989357872941340555926818916868299204321783762151117818604753944729849640848301018275939433857799277927247570364973539688668382392944932781740649766881718227348820028885679796236175357788154046225279130266044128661864315857785982725066015581599815272168924642561549225441058220202327236907007110260755469736869184365308349770896650103109356197198503876020196260499318843433262241615655134231648733264865556403391967189548268411690137487718489284544720454877773434913717184919261062155673571073830511920175179473883558809140448211245383549981814171423410559747444065097601732414973246382825632657479900060888738026976928478736504618170510661241448312891051133523072920774328952974357310983696690572373482238863289906723168664122548716823254899441798607322213234503597463854166741517405449175304878333492015863430091582776072390147976910880245260920713951008905764982062774163142075667744942953343509597114848467518574626947034486554989036607187929320748832693294433964208735889084223024237773520335268104477191625027785022839289158503293599524736462066691483478908204806867168669986185093140398397337903394826563680465606791841573081823532936993060653912240674252631169577548529770867923727429220159024365130934831531418275759725902900193610898236287043800902738609593153147760290478965246730139962679924413589836500830750054924304604474062645180439842917084598257709129860598541464063883738926595200526320274902849111764868744527207241571152249817183833959546244347073861295220973596857917605175803368922724961205090324927873750554876006942733521117622486790814088800674754699131215499087982608996990989763109358654641081892719459565364185801055405315922472226987506332424983844740356963130534784319818691096066215618715873427922017431802720537776720408833522273641844472662761303720457266098654369326402281474564422959789482392110288162510091281499606773310126817054182437954336776308850892119712973303476935338923593849097455918365354017184915509562228413902273075175528986621935005017297982864771329410670389206236535357579571550590629998552744888086414269848431471207702676290419394189023802531488009173649489048016766284368508503196972175427345440972557581320699644955301003917949323822461662813228962145797656436828202627413190583216367900364495613380542529900400465549494597097121481551259894693102400463235376662824106342002903983943372055903920414356116573304667621049253720638954658772874619020683213202452476871379760645461709813151234286699152603366169000970046261739196076958610003495030324484312145926618397097739082259904434087445133094953596176042417409981797287198815683248157811946550777536655787627818343276795289534621992963488210039120334280311178913568456605054586669534836112426027862678716408054989514848650258638412534191386904621067630111706459953455493322019677721882051710737747742345482691635376833904568991877197236406874492465236256790761819440554529942380202166782740542075347061728762146018962151946119801233611014310088200100624812988649516508841700405701159397448730518461525509724331676240403442208603569370111991762490126808771157603072491443306176867400853298274262534345374678363542953918078304951952642069039679275087633507883473136093581038988621563941665785904366771846062297783569257324161206452340838916114298049191341278286964924637220592399840789605517679383812873970354510441038557508104931407314576522867000351716909058439452337121779993479486251124908498546316254404899784314832868559044600762461892946871294892864802577530482007771600097140776369389811727345093980805455711961810667426606141989458857311278735628254340354431587837919803941007695895023554133191208271258183192000033773651629949850644965916776920527782464746917197475275064757337195138513192269658297268317176142509277295606878953553318304076134484609207818297031553142855462903620836276808835118444078178663759681454368566271826198278333779497805757983195277486010445585852514513740969088740423077782315781862405243569132823016920711331051645744166760819887219634213132752458892240781093745516871139324189957154186709423676500463283922714301090869504956454883038382693116623228943889262339666322926552916676618128323454431768214942051157527504451476110228912096811775422321578512919542207174649819697581287066664161131559348923640072891551423219212331203365922242655074991978868186092295781537422704213163843267747525427409412709929695220167490188689822499239628060109507135664026298142079123091767583730269726937330407625618159635337190591652201863341088586423592731134117655729945768600541178855530162930873150241811540984590718637991508550732852115689657298779167612117162976870291987656521071832676097373950048400740379917791054820672888566399454076540240493449161312806394538077094662181315581600366013882196368710762096549016000496584742882535852547670888393753281749675333685894199481318880970381320313646861336407068891845381251735588726034523240358359666240902726368272526434383045106505971130440586354277209517577173645267152978512787696184405013807014990041164941153696508303653754144918476347262226131992471949192981332128386857513193966542152473437038075382471958622419698921496024987142036251179867212241301848884991204118727320001877426720094439413753750104470101848953096391007876864673776736801510663315008952045523173038734705852173914269223200026518140019771154682518818839638480095475083994063060414765732106319430191358820687947420236896875605173209894694939129274578039482468232804086963373301477477410506541935211601232873991054406200774682385075459778317595975872564813093268519425064274033480667784569411186733571614776428702393426726918598045244933067563574744184223154383258254699400772126420408840944364969353181048952273445749995623924293206506768164746689009524206948168655846060164896034471473660796479160986892249525573694639627699230793130442778913363637818358964091179276255727355696017704889000907816881295684761959145743033424453702230316075434891134946046336972643530696607237229674606258540974980477690018037931492074817550925121888334261951790491724983799727315525214516218003754575098656998313329583931887954307589325261732573537669672866040706130289605066347261247865113051090480802438752439289878485321359494111250347874537432402828514033517989333798279203474973356302548467184878117765663272025519477704694082070491266702783096830975066045706723200438976547779763837873722990943167965822067178951651520382288337174699390748538225625983833695891475582067084816158615913448402957974589406127885373686231093300566486856226582002040204295307911243980864329613667926249709778166610219987109608949672370753271102854280288149996885076170836694183878212672922609999750444617168454335064980839324768579998179656829125673263126875570305958910533015771549187275190643348244587260178112156541285915414557512935495778760987004862524486902351695727585005726006509576514573922944176292695891054082081543734190769035033171649138859051205552685952478026467995023636302392704430944390086346170953431405087282858167794741516360349746806022987155601604172323044719052530165148763847609963414994816483698673447496194514232868416842222592830536277409447441017783182961179496936643144219823854563987525045814448066354942552075177236212512670718230813806452750486648931788670085679917221032309702372459359494213281433159914746968735305085080489448087591640040137631778088181771858937700911917704764809476022975296543095668575641078100190973108332030607037119288653469623198962413196820031134060885656887038643251993785264011316264958586810066350253654847648044478731096433188548572738707556267348851133642970638210014467286788756572064100915305789015313918740058418104830007619701999833781072439024784007232191580908837597621862738001028924135413487155291158506916404853120950698531116094146083685411580253729451398816133783583469873395993877356180935408195018905199781934700982120243462376772861102659866771250951630187657692761643522633219917664472623294648559694738576052509497520920285440661352992098808416635339303439113566525493423578796289333476841355307220996972741976438565295126931627459527664278363595189478414410958160106851328871550512889641723942330648685595151376263843416326881723682219971955750711677619761883787379524662117306858201758507330907516919119173169893405885910326460765274979523934876211586855193199997002807666063230769648908310392877498789020405288588758291549740705060061039117773490418992269532161232772746680741388275515661957899213107341328661314419892582798296318857965911997033617444951616470692246936522236606203284837284433325553747666149575908336370167643545167895816209263805396805802382230125041738637870824978781022005794028348486949974811493056945221487567214815134926681850562819262659858739293040542095931227966699916685237181613801874986967257701051801892568549242302279853400520886885028566976197372551201702338191453894121136704332392657835673501820021937281141038107070402429795200475737332809879994733935063336366584642407072396157766636356334156626693735454418374476375769040474910223675494921634402461619026666114984837934373385130283448332651048964166944272484757383276011257701431852035567341626015735200092864059310522833125000748296455052278493646291904039461622987899000036877772647064313920436528092685234735310123262883773836435448325292150875258696939477336532551785695131087155458457773092969625175124084899996993669255778758309180640860844597917458627793193732906612631438976370435522768087012851440674754372178962304852992412948883880913275128361948731940634102967193164554814839554425424190963767701458603876930529176878602664281716808404092843276612250513848698914107692168106638093505662190096095583498569845508601862442016980141316161696531743337458932533621310047429287853383616079073372120606749915836579711577080831290048281702677025856980478976329131665207291668936631565248706646464938557851798711705194152263153517891086714615816485125741672574092645531114546721277186760471077646980873953194485841501445151664966785922389873739186101041602431454698873343431662767445255205007306542440733453178070780401223522721145567889478236479313213058402236531391783616520333313711475294418749205131625827706554616554785062849919937044963204717197329616763762244770937489203653619887189263022067530625949257669041667817062703318750206480669077106157974953114180843095601096536892007210134307067219786670519496957635028133205309496940220694769641750076130285323475775315510534209760006505702481571942731154797823911867540758509189285634694497335676592512499387079959065820615508707680518404402976937968837384395150544539263798020667969954032746571377237169516094121922901988939302478250828970283768151136773648676639029578796538476025277965832662221761163508884813888568165135885160473146978611641953316637581184571254861082759176286896117953687012016006565364258767152516463426780483277594407358209942291478136396897624380402050974548327525903725057426760537189250990107318956171318004952138362698623013002897431782702201098863235117527815984172055663499353349355664712927137709501560103233714632290239661182803054318291248537551588684714392015918400562632181801076110050450517683130798960289439571984940512567471638331059361274006747650470609010002950018295885967539811509698321485320631279011039784214492708726035204917200707979521874252861236173639425517808564834159203917586857293248134339491682514085506321125932174570133046492009944887487899172485802705194681741415846797989318111506364713704134485048025668225798560298815054283405820654452244089452550190372632535527436094331768192638081451266862836091410277911218569615348227475916418550926928561845121206153572340054739108325276234512183116861781095054592661154644610126212581643298919633096431792248528923637570179480669212058522942627437638112393054562723062397420072948338502564337439318432054724889587802236412314328595761622551104571252622452225043729156697367448896267286973955076979433549604512470848248563458897255665161895958486369537109836851351336653593289224680258876953121364006544280879990362891558853145039148215437225696775893381884533290411602032835314075754202483561519708258559531638830555486872414469535989521306547564475228287361586376221195217576613653320924876191242136556165174011767218790539081395768016876241175131605635064059362059266081396234611482079971864344614738635725641254379947219316039811858684401830724742416926682287593885117010227642528228572096388513949598585370129887622311320287034166912743369407599584860445065314356127047859226701611100408580114530412301431713872272070294281329343435464284903100620630493351309931880983506512793377519678754698606439247462981600807685496743751850460988379505149611117139740314310029549675495254215464838898486773112944089430201329978477490425676664718617139423713204003405180088551165550766287183365569643000508958332312385493624479943764874255909582118300379693739948895669748924205774530022886366052714158130224766202179688054252110501550980725506272837631715051140322439947059344263797854993845027445614178365911812206321083285364021357820401120638209792851229597690633129230096241564046858871883128549842300147735274232919709955706495782003237480809131975954609605397418383453852396277456522775885567370485278118319378646532800952661972734790478005190054721837565661302153393879110906985338540027728590928866993793990139869121209494465046043240080404644419972191203069192566604164664495525929348445894278234623380166033354898814506274963729879306110327257687180326152509545495881511366461772834154212796966199106590253952245579557646480675724470725831938933588239221672794219326363354806487151819636773885938227232852049529586561895715932075117806220015061877444527125847608995497454150938365788537971510615370634339480739275975268365242892780889325897956660371093524113355394814543829421141908621708681882289047380324269980220549299756556551375379264344834845720926182963507434937615413494317151473985865175253066640505314946460331708113342566610593580407197515957588188664463775832717855223759358741034988719109559032735326783341225692545777804252471836397065819873225914853665832444793784225928965291806921879470527265609549458902820489966016106510366467681564526200182376394922963680778858771235170081238322550485910163216591146182398279814627528068468638463016021954460392561704996959875281156763482735906322963767345032119546379928103326818705777006410782759790890771366858065745231206076565274273200699192253778083162576145052917678376919887908088301327637195624392377320926325344938258950239530802210067953194692157066240747920214914479615173838902549631209818797106804330481038631392511034832360068590250206804633636827415119133684007778292005993841398862254923816223046476934110655193109119838513581933646285292951040763706178013885710756483361577228240063109523191362184865655268682842125798643281492067978031927041909879706123456719207224142181022553292026025351259262420754238561312041533587115809246792988200424223742223549992017571871825004665941699154641697886036953296827955315289778935851281924375516043441466418208716597495234682938674190926431694094427980492633231684692283622791817261381577448823180689683865417916517732903795597169274224147227893469447138039233881036483765573979279539597642028721294081454727928238115636254703499100390392711394702366837602891238518766387191124596838498241654173543520745211404342616101324500352592171427696598984904568381144096909040751684616148360170470897638677978465629800934266813510845028880019030337780082257762660705615169725427666236333757765867965965643084166512135159680038768246676057068468114859006214719781799680191894736145080251873819068381164567234018345968562153071981114500179274338122742751414252866154906112282341677762908494030102821379993842333055192166004871946173769367439669681639898006074324147663329173736684935930021465334364958045202066408071349948507202794239204063561358341504118986780599574555520548275220827823947954655937898151583874154361472445144189946242645010736265769650815015940383159769616475723609940144090273142726733628430725908733629434245320870340754726516942083530907136934716414882748874757470581874219964259564055836120660916918179621827047807583065322794470348168855137035826317584092217458711622844209119812615989207255699405180532254350970703440687664909431783441016318315888522017087633702626959498504458482541137863254710912515905410444968770876858701258930680458348992481759176476054215990334912103629843479928066162619975381025596320514616033711689176405766640785139502273934608545830895942657455651311486325778030822027674383338691908639794077395097073735440997855831796509094052377691671809329277784439381199112038826722941902635600549766692326088243420274130552358969763207158613900737868718460021497215163888184106403734066441884804244591560862498945818085292489168942025826049532873695086203717342637240939201139291997970277731912384066570546779711988196704628393951710587184833952292292087773699909746200168036676814169802511184470645827402191578625044592304765824877231968814461063149095687313878806982408179414736615955225000618859361814023022222268880797399540661870321428593659740013312562431614935013655039416263446807834076337692095747329518445833280348347275296398639451931528792342376710669154806819079644193108069148372212114226027392773930320924687518339738477610478295757186825161156846643968596403239615195919979865834786561626041522604390544763134418157783753181955901828458000685902994135721479236402550747704098786458135719232749486734438035600721095563014127184497640735072693591445767213730050842068931978596197926401211343738609173899625752528876755278943829066857677900597413538834563525760223801255861904184142468681162442915407086168003981978356492188402317496450077002872614161486278848896283761668692151451737490258747112031752902000695347083236411602889608507170214828507081585572799013195118244771200917347999354269612163504773941129024556166000991389938483796918171609532515980894089662743028749677520097497847961259985634465198672576992229813314629734861608906076655706541528702596271238637933699310904597159741995194049234776592707035754869751971851794607350878945020752263355409018231682671403882792193688086913502708213415062216766894196621181583884861184611241082628382362056129372362297983626108816043542199554272415860254246409769430026718120293494117734528779075650085654306373605521832870284723071301214760663286742189166315414589016273045176163215816899198813233798412692251019012845876503930224635323477754708096018117419668489568902740354734949621435751141802464452557168419108162933231245751154853428719828464601253878361036832600724519962358508164716976822300319772127429420724513712958037256454105281026135608347134086125918842442248917536460722648609869622575990439568842438721427082025331617334674066422533403340817638237427632447626554275432387924718946307423109219399283104377582411079747818991235534952028991196640158454454417917243068110400042347933552595966396569115814456895524812216200343044937936636760995593119218681695101513653720795461017324646436777854984214664312562562180275607095870951301224747189323632265459279215492773720533974141728504493355930344901455889572019149542360127316522441772634116990196596360399071865943736030943378264513943724960666291081123423473029287402465690517067553201858254911116603109143479274463721809630466486801652496390015303561758251601242633329992082665163042588491815753693835753819817567661601848210198272310348333246496331030806995882735368097225520212840434774526378646575384496481591269881755837486903172132725399099073961210547996308015222904380036421333305367914471834239015131888415466615767507573240853793759071238775378476746869096598826275400657269635732441034856814790873031324497152230116680669221621224523435278922332357222398580225655707668157825246306349104137825605156985918102808892890850582218498886299443332589856767504881599433486278623764080882490901812555630732860512277052821416507362939841311463313781153045150274298452664440947735480876232718216357117255236868027906882743042014851633006290428001900628143357106990942234265803044950927413554978217821007348750077525102405003545984181910099623333775241593668238189105221252736553082144438831617086989761931530800621142344576766292456849592222241788519425026681911945124191207926542216099874198821508434423321933310681429714302910235603175374783486900568719097097214353137466179756161413625565610782387259494211650507429603501809082041412870846920658435183251560617561933701494641056268436228525134011945471629177304060981813618537864586876568467826503289380643505460223067745492878904624690641023223822094324080369629538805035740926811187527338687560629417468295111571244988429846385173121053335495033212367220036853541030353800621102595846011014031884682118608213080830056144094477747822159714476728302706557178563825536344456314346256218224863996578155021504931425272397177228211640587293032389621097116585226699739109026357710804625409575016604722303023138514605234852103310834149485069696496184011095400147401600741512080831267102873626600422314257116681914866106734431527010963064335511065482796374846010461114334002604779818425994202998870108042538795940826640544562386649508522198093328836553726066982011634294313864189832131274183706630387056029583882549905225864179529145439182323914236137827483240596883260158994347118785699919646500473157643371401817955972786386335904846736640594711528800047911003555035907867094988553269782025821341867478150349911749615719663589979752192264654075312970010697092599768934333747721896369528440600706038532181481696294437954682703044350638337975701788198086924581819607795269294886828243364083594453264823590142216156101526113919082779158143399670329212231885966767403020316195567282340708535294210938320090928355818428020124162770526690971999226791147802349832702261997179028054736791844267755342341633023801324073797010093803223571533176388442471563279645785664142395093242485654263839146828226553567781050141906126473708939406238524657680710763960577057554386810584651724198036120787680564299811675703678085878710674553685947090094738017903381889645748623912962344626724216818431218939892127249792064686029328250563081658975140908685563000388110257082569696069406644220374797947354028697558464189404939053767772763144638873606596128443020167720036985175328147291378723216558235281643335312860692783817476220243887296274658282531961988602315265879794396972178464607284920987558160419953355984181932850308225032179871290232943967643605453478759579705938381151561154285081473085689382706054570426670362367441979844801926834754559484613736579524772950599702292309120533478788690538061679237107802274581176317517637014970440148570275107998522630738645211994271351724581494105119509961965715138410984157270251506518464302919531565383473422996889813888010967855689141084432814245491285693906223572165401324547721673153868482371679931855433899183770155371372708805380750486234554233793594956021740469521938685199273864672496779682398088038773327498248080273264761544331276971500366991635659459908283248371225711830733737513183066762454874583776926745637474177010375471440395607364591228803069275272366405532603758518640529770585560182456379645251442662785066940229367018730678529528625411872259176785865507500718505531710808756100081015727465177845926318629337867029535597340889619821325842854281405735664090208491236615806950498193680568626784971240570982047629133340590170105813079032128167107441595951274769140956042409022440071986325399066506469001186291001763139973838831767937442163414334450968849363988078128266046285798057855995797187539487070080477894694799086563068497966963417166549319165358320376314213680922489948122575574436181021767115375883926824036696117893406086118929796687024154188189773419783046534204263712375584294481399807254480957128283035866027928730757148439436925277865941618134811904444762895730611046973390565376014323188301606469041331286910267068892526393698206975085561693382278184306530578303764865020030663689909417061165574278889857000073649274581290493270992969748832428977437818983651023050549496492590273392537397691326303858704684048310033540887521905195925815728445991884613303943942632670383735874965663100083302838199118964277874414666710734860578990821377442914338194189352774846799892495281426563877493762172792002762921423339757901679568583793611348945293581787666951846858959851458148781789392305781903723770699268732889946051487158337769083088323154694693343845843275391310252886800209896647008404850237673189055643188823539836062636318102088129713258254488865379306569699857941796600460597421420457702200172931407354670512673357235709554117296734651868960125895161511759391737185181261400055104461138318129247264638080076299647923010594924840337890614899302543085248173936217958543705316229657528794266238498995150971237315212534384286463764778164781061389132214133254872249840218163864533011008320950126401768053032771647651975111477819192381895244500830672879334630476230776495795194438465635290840232725021169173749182333398107995107736095632479999191634151246406002357906746201897813163537070878166881450003362992610656906385633002169429541462330325760436505854024748297493755714748636738856398733392551451981463581131019161771858443720405124402370908999793813050874182937422078253867031985758457910156009452700763287566061278301672905467725492227100287250898951431243998364277236346311591899476325092709656336895675827087346328986408116237383084489428317177799843579527903695157494364074849497019577658179789533703034949268519915823688965495717026902946838462554606132166011830134739255979138378412970195442633063331175219744972663189153323634752103139243396649882235597100844993393844663241586551904069563786293810334864564303100685158590086222145785903088870069863770419590056382612577019414671246154687277393023127081527794525923609628295820617255606563821623160851672896524400885898846816553552950480479220719404465582830484574608888721716968986473840420108465154310202967801157079367413774738351179468283678477676317398348118568757818826360582603025227894513536655651061157160854363143091045317504284818894899876755598905333838195250555545574106852052864495199103261613716295623214279025673714874309121405593346767560775544828904299478700056258107742320932683616528872392503589076116076988718605373079859073172106715731017950440856909074196274434009948109821145132971931786118250421695588455552411649867601503597077553587944671637913253450705144688116833453843995575704987878521205890046682861100614923265550844368669923364340216855306369049092856071788830107576989273953640378658161877884964903464978613615459219833836109664608775769996032652507790447998302204853176843649865694601944929441154727735059905276481978929124253547237233351299742866543861270658385805351263918150580035796690603311787533967579863860617243828013133632792703780942027505195750430965326870264142086017724901855177042087629979695563148612837987709954232379576891209835464037388696862591903518594175344216549880202737643033346401468380730059087844845914512508852466491194258464576746675578099343943523883339123830150717697069528683680009800842105186963776329557966140543893393157275036589210382846980698675628581955265274559590882778996551732371416963218191618851155936088762658774226295196459237190421481306902895577890162672142541396095312690531768973968478743112770238481768339285432940206863584469525253458106368465551152995377832732516418767279181555458650844562067283678806721629459657413123633634981621630675974336120182491906652107446257706028559431164484281454227214577131041396306415910379513403564433440622012976385619038866480930372629194920445822091160422378332800671508290426498795382263280669719067388730660569353022562709064165286313524078098806228629281362081459192155573926716085649013306238250164390508211615994074206578754427776678677659419477379127624278554585569598916514568552259767139646236974972882473978061580352232766811927674147341957781012306148383948479977945654672837330955218146839834102123522896707551657033252573781066332412658255084435526552645002287257398539912897178574602729657141561472940685124461923154281307370148471642856361013985128175394384370036385571287622977994461614000477188555341246563582335968056438574455111308009887424118447175844725963099506730613570252372871398509280218863321880050980343793756694940284231979617416485014572460516870162999990725756786389490510124180364606628765716187488733121749322979478748545022752749663512647426655486403044720593409194891375000299945034972232859358349935191245864021100299420379197524372719430711539683144090623039773793830831747339293155637198324839312555316896615317741447918733425937489181357529861177594114820761973061287738096821221712986909610722304678782894010281302290702457373713958975653349225162550391910344153775066746552361804091535939597093078844122798736842196909682467656533317920436340469430600994701824464150188419059129291917294774166085889099066699450157329790012706934149036332384227635433165104265059279698608830016390872818884650984930444487530085711339420596124792207486457267435764980413398497645719373620744467652018778615720341763047016989011202685379476936048522987126690922156721670136377853260787269824230618406094631383018062618211311236515191262125883993055655948898280115256205546332478476318327363648784336009910093296533099925457913164571753967661649708164081579081678270149811093033663902128117338714875463774135726447982316795925204695345171046663698645584563520783952911150085246375757361977647272077950373932860138447284526219109930357197110093101631499129930973725662144183522073881480412052834249124651091742028511932432150269090448973046026606987667728607192419723423577155269401301189326369704421040850367260238395693494166946720814441471059720067014435838442348450655666308357778370471456326756276167348181014782748597093843848698291765285717477831881801960423837646656819949434627557070779757902697716001400318420394588161100161310009525743417273719931951563323117899678783156145844691928940614871587741289391893581635735811105068305993563347615971649121217155263119981354941241708222742070117810469526653325697696052126067517800958822252326439162374308662161476333339554858927609630522898128411921686771264324518074288733316882440330690133346413401057916195056119325646597631966939506851065491975891608781079897461540924558495383457383636860981892012407715203766919324575172168472405021210933637333354619518163190563842360691556847886307677277117080899854395779356579887220452334749913555152395285099825153256251531076479096322697360540515818479887508433199961890748725223930487977768619964544750368378145618679886084261383630612482709443944007428968386809540122723055078824044865704428755206391506096547485457445956359808765580678881504024216548063110141785388011048332675292451699205684583667746446362598668043808388685550863853470623282287540676399283912005514374527885521609214588222420672314941123638543425235690693431172751362567335378458047939163501103819040773454759026754948870469447780288623339171339519694677718740060402936593672920982892797168532797043425776516464589084461445649852608109079374171141962479208019088493870668958165542682933974398466585592345411563388121532638867149793305079179479463362907951957636886087621069237574795467850668142484102071547268949021600911502841854397104451891023383164250027946612003761571682980134493479205962743106402387283059074495209957068447950559603088696303762714990259361686913480249515925580278742252292420373585670537858389867127285760618940216240277244334084675915460528292826747086578022327143984926102797421488583400176562781301772774979815220671142673775104933980700841670462408824976229956071766805750888472389910017995604520777001172162964163055119409284757715224364557946114476896160935084619426254557418958876271558613580337115549883228683436169549954022411263770899308047056527878904528092803186242303031985405702763822199616528754114795653938622738981006316491306180641260335610866177752096007743099242664629115602161666035157737052265176622732936574999450102256691107942208916860592814253796670152627605417218081182043424002025723819210802015650316731154884019521262641770070748409550750247043374191521180534995631354726500142096428128527778585424536756745140346517357932798958159578904053142613694224216396951026525454803617924094039564775732703208203677409237234600133626909418199385931988160426548483490333605823244666128519689900058051761853389476368353853370362328038906241002522046370388423913688916090090393987952226485849969704448840620083764348755856886098133719210507341609540833783275541750504967580282310192288978485611876838332396942022342499408666410421331784480639913364936166765890101597200990932101806594484292296857668734646869113564202946433845152116345346852666009564490197776159385597293215868645203785870093859966076088209349595035225165913078418111972803275199983604300109679405760208098964550068453498139621514236810684904178505939693776108456522712739186180158658478782290822225221554082584477343981303820355914743163479392266079337369652847811350990711812010072099387361728258298865632879132004420821593685134625493531419008782423337808264144546879419522544008617820219272916261902662130874849408384838563949494385532915656148258567464815338890483656925727497025612598364668249783154977100373983879036951934959165148463577984754709128055944210576562413283425047690745954795471167813014739931960985687151797781114970781577435669006331291058275289906661072389590367291835845739273665337532035712142363165720946637508348987136077930535865683902341186286977298770760039102023915232943895107913042116453872392557660548881369497543908932581634542738884377867191221678412418314264833427815028319746676891295711344732709179574023933677055626772917632961069286021672429675346298567199985991821448862973936171679895314794637495105031888731627875148084161348299288840372689974750605265255342585594422561913202419810660837777729129946189492480868877548366150931359423969438282666797480797868553150008169681077020712981158470892357785888223010829748154012298972620671885151792964199580648949198180563952570413142445725979605862524189007465031392805778755778406420731730461121161390737004585398232828381402112921158929245718381217736574637577547204975593890182932274063271607089163071277204256470830642775883037748310904025330893657648088290714685656213371068518262224447782442161911496597967273200293171844682537427366740034853633083731332114563539962095825093786111304101175488652558983005414847846586406576860373143432813716997752868755463897051520085843100399301580520768081007681068946606291115221354964902280753234106475637122422760444859894768127055290005565114668162757257173894396285504041997663934076217176283579617632530624525867606913609350067332007437805520064778905566850013234697546864722913196140563058797865242764167847771216256556364514612924107314979849502733829004012367237677922423037173949001067647133684877619851894939863987883513168679350206575246887470504321551866460824433015952693753542947145438102929273644148082183612461738535658653116569161304303927513651894160707413564066340379359542608409924594637593456217588897100724257437991344152897787329059160150559266483178939945641165297342642698335684085463981311700261711094721980248782214236359362660929058478794331386077691904862940845782681633490433231358561474779927518632411739118506071801051753457989731710057814298694137530141565002436688380767825109852861503296973809745334084530201322893741709856093771913590962905291406957719677060698128558755707130869883365350362858889042817595761864998081612638108460058959538410620192261220837431308743202765901140261471524631109057120346699796021149847789103703323092137757728755628940266543125567742753195623090754122345860451750580057906497095995314264471128733036650962603754102680003554700805498910445005950050593343918160145934405183508273528669705170128275100151651438103571520490684436660900208203230588338167850362271458568958986283297600960615751328082794407062197170511797270198584522254897623162631287395211264754916950596530268175043860088922671157449165431047088987061589911326382337950010892431015940226027838431519168590393045127007468467133141693203424708314912783684224542695927345819259812158224093075388741933690621014614321484219609988628693699696644439997516547903910717282841371717153889379220596435272207227679836628267389925420801686742385120842140150142208627550083583252301543845984668483442155278102801699895425808400275571433651543899387804544891149444126786032671426264905949787001581171503541710153967067469692485565388871222147098828149075616948628209660661702623671941026615069156978250145797669100961069806009093013739915417351753754864806810928832322606823394364201065446420153634423589006324027710738096946137422354676315883461441523901154366908981146423518791389078658318782647310616978436835904999963336417042907925098861029764074861731439810280391752574680353583648598937993044394566331962600676700430762799008065481007856111230909216643986789917507602771820129802407630021838306814171530512356162759186681532927634321787046021559509750500224330291034241682094025951106254201081485118157942455340233855805423395832694409645242861483663948384095385936936749814283052459035825788229411365751376374392701212065342547392555450696486806391698431819855979977829240127500807603298450935469873065470585038574365877438112352737525803946637129305750166386648154040125445850631539527442013189924606114144383908281742714258898023473913595021847996756610998840610620845122016444030595110958219300218073949575145279709456929561759138822500141594211867892956635211276112759279928931396773301017684879667037627650606824607551076252688858439441573535995687989263255011376867685436381456228217851384055113517386775245656322260858001847412332251587320607822590891976777286686764306174418107816228565602708258968142617134030422386596195409808553743765253661511233960599818198221476920228754750205856418237999957955920098191214384968531666639424560772527922307171841260045081973420965499009104049086687749298871626769005153322489781671227002288862964274912706277735500506834151796371567778008099879632062045535438177248443066704877124015003451324843677256580038502536506359354288995918467702693128751527984785675776339922702025996078744555910404010790266940302690970699693566832953067095398194831767301663952497227950396919617273837415866697432249101271242214639600241919477672063115780421691007643374362044479148133732350392058128047940348573976455607435828249156989905255644678614836743706809610982748656107435495138238047142838653965566484490321312605507790280407855888459096727118430194354203624409509509282917600216841844827382373634032753817957063278792965299741212881098756672614961961219454014672130637538531824704385655460633727566761931286071407396976585919319116735567871524258876049826734315417929421671013424716215340841847040397059489607869264136383227842209460650882390113931703434555980862016959949535219505840653347525720411775641209526408284839932508757868891453934304462268097149445032042637895527035065406611407532021210827960530192027939640477904005040763036939125881277382045496944625904346861224331239856079083231425158342224040964446321103782476204952300745389965696173197923701783996734636294481664708951269050569953831146517299231665097920268068293274717941489711203371698109819688437613763380463276134370387253549037647026216268824403008266067500903599663374987096913620708554954131697223593198179587098391159019546592474467135421553649806437125792598242111589272743421332198859623315651609589400559762216065647754017822720471295109318349334317716685920021242665604102797793983299595323964403143881334719845910643160322515506203732201938348342585844280772672932369437494372824049167013145937541622361272950326997216275823712629362668214521497078641965163658720640765548555127522695742442180142059998153259861108382447383446331757210713859550321682367359399978890680884166922766370958077150365902737909051662290802497937134476770755067491693793788205247642963167587452722192359409255401988313178773826542821473771042685381256677124960934137492290008697937045233586524305616601327686161032830619137459735897697471163720474670002626051249733399119218475517740573328193535897779912855071029770986325117019733070435357022020174933678731945159547042738788468579387157117055498358651919677258119583275089319442678762717312991161520578497351233146832672134490758628928481739073378710694535624520610381425986910183746618829471729085639904691557203260973719545611241288230634465947196418852590258183496775416564792644260205847281356094969369281671113246905963965995434211259761176992411517298597075022479223677995987739465074012528664721849501536682726622630956242803345538991435794788926813065860809839533341857285323022279333515003132365667445856724418556772722960489013204875286069231521372498891772348265879449061344494636220163220049601013332536345766569375957641787830572757167680278442922262613001239540494648932563397597475097101635776188316563707653818582771103197836604139851309320944627402166074089589484773645372516121933214848329050053904944837048535529333739357235932364318984998331149255293786617626525030203135959941167428150069512613981869896393161937407266200822109690736305465123814937757816225322904549879819817470298334534118723927334690219936434929597908157812305293346860288042431422139112334991489681095995273258812731236735382983464949478899179331620225873578699746786066572059327937862674019895339388225807796053448274026990353200187437233871909496050065472605034379649275089595367997227480864917718854116065109816330818276662351996871221513684617500758639877212633072399617434875574277228911149657844587069440065221000670862158477564297320003969434451129302677895247017656101295165825484220771020861452523079169330914242338995866644546855242495649147564844212314018213287716586573877658737425063006865159708795583118932772415524558936087178158844210462218338932477021148623976328506484923952947196033427331602794851314686073436544723526077942829755627804600489578026807448509221237964942511249210201783814903226648754258587969189650702565142110401417332403823281367579460560919199532004133865911209566752755492498892489465242404310516425574301737553233952079764204922685962628888664090056398397945187833351198033932392814248203398771541667192846206705317330800191041052630572494854809794704932446382221311280983190011984806411762420889526339886980731431793272927416575668794187051275644716089064547366302353091934811410020717388076320692443454986036695142951204889297445266649972483758370031472213403152055400398522902182517595945852094985077100259601583971916293670627909991930801550607861391284263119220823962103112085690117898630983653251430553909847495549799257311128468372866648233662066370487412381951628949527653282582689863814712295453794913475577331595111740047243998654902086528658354816281792852919872327018197993642365661778735479029008578957727883027456721604565888852707363501123245202644570048194296335017574912629809607078874497564125504528526834917449735502360751772617635896878390401463024468285758951569001864365562712729858589798032192271820207202024062186180141968468162981394377730001158813162307236066313760062224022046000177291608221824275277145145456691787163592874428169772543974629910140289146403727411239593376984682114328810427915187550772412076146206075968380643850065012284504130743738287510504879358301847456594187585144766320476515737354707679490548609944787914143471633813118508747899482204498756068716420647274270395377475228573334563678670740365036656560653841758780788826928032033576189823884618127719660683240865238277427977828708676232466859210914019979278296116869114524270093832484254972368410074855920416491058561130192938293331820157569052021489265910683687337274654338554961360352644430091967594325928949103626115596046084518677916424825691952345030194559115302602900552453190827086988357632883087440692221413173094000919254702935109585468139639351513232915573398880262474797151132888281588475341401355257769045241023047603898385535254652962642228999084235647274549312892249383717657405895039195948180598558383749489309229248178498528668663684435999220178267464988684098292717631038816187963143605039645280963518065897139025106845218438546977222185350637172355514785214504582470621440304341430088875513028236219569024203777602957612275103331544717232486814134515460077267847875971085813671430869611665046401624041491473213587944113996056762651614691606295920158620491271329865427592165225009970429475867976254257424307878858744489677323909235906771591273342813118980508167572149587625388191143952912045939736030420054911760854652471152647558983225229166453602134673989216493073828437490625815872959842752153895009395921235135471766513350441950369531345679189315136571049636951039234604111850847885716672006347460615021853775588894388699572506800609169982331903165860734796887320297156792976692660579705708348341726002811222054104007384897887358397067527818940093095200131954087029286063372227954711414532286467081853939150565785858614146150531106010007440996646186265425332096269552213551890030793118853589523230183394964693052549373437804458617875649936598167707311369265268716900482990526962477320891407425867889456766122023749985525703524096184506145415873594869314638304795058058700003870504679317570704955754809691637364089467135384174310868197362374379636924039783414092906525535550248361355461935272178839141792961145768663907769765823184649081525772865573663134918019392273638569695631195409443473722203503361815184952932533256587030069781388553059633131876943358268563439691867276485275545770225631545944398402182296464888516862968813850911606581921507473243891259328108045356565985646755840866497131639521803032110110896199810475649217709684755045825903301242002780716859544171979394906123301027721148757026355292954488845288555044860660178891403323823301156684467538465879024319941294157052909684504644302251509198867887686475864369170822026781365526155664668961815940494083556556307412691154360092664636756739919678465812084556763581743671314010935821518018827160800423075836363284597177531161149347867327567443817601623306661590596925443729009979543447283753056897337119616660001463129831236765190299696608162425759865950498788506539847843640915708706718548648398689744908805158740337753367729055535229176506555687605838656892854775809303606479575010808770042150368229503447138966861845677210333451351652451897388610497404179047343807798254711384330780590599182372278641090564272227159562403702801620349357975614974548340749212251027833572750934671183235448872685034626183968640533862697656680029916655612760605339150744951066120196680733805661707694420592151618435960255015020248436413197714155113382535359450241401287791023511280569558838263866248064411025594909009315401509982071934035701065254406325509452563009972409664610718922507220958717594750887556520106606062659742299186022167686454038749089443478803603286354962689561835181933551064072747790921713604622994987349838065384489576232934042519329625981922647680377792288548750914576066925153834744470669181297722463442490149619028644013573646627830807003221172118036713619549242670576485554281347727248455991726812915359547353741316026348113813717463215047772534581975260999504856697539031421660344715146035642343422083991063988026596723919921457399961435414815759083966787707968535974796794998313499161462216505074630954020139771145941739233915916927050852992739666274611589917921667919558232435758735004476827396046152899732732224236294622362476525770811009963141059166059467363876981022989005248096494776116677040656791484428157106964773728017146097814195387564748424890588740932574366588808511987236245357602961323638712396316799788480952510840007175838692101730361856254066348136307259536057859090917272582945843520347852098844442474842333567175027899370812665125187623611528705925219931875276610415210462564032330141173978575049577816632960159918047257855543407899761478633968874698963663274118497521255596955698322567544858131452898300252002986159835622555234477014578680010256549537436500583037393633074044283869968381963985258497420390809601852139963679355584989144991280274106631201112163600809947191120383648216685768954399725163017915797036727017678524750261776472646296467441504015562454845464358030902281334586339494515529264580225831946712323815322168442394898456130356926305083409119244153840802924297569078034510213176141137287205232880440227621120185130432701984427846049029924625438442932722110896587675526923601476773791394103731330939980092235721694689257638759161065333658698642080545141849262454807695031182721139121025256595794820230178657957044112423753748010081423047972076130942600057779514570038296189031742363021385989976658965498576090578774986547546861250218265107090567765611822171159996980790745630924677125474216273509955487018589278501260865200817557531273366711686539441404720622284353862767792019448802016713487054087306786196136588895810767894452216880265128679328548707696553910121635981660439628105942687381251484429049368493378148828890439619462455795439985212646146607362468299133220488133938441940685633501772816245566163535691190312645558191413746758681601210626044503679674671273245801362366739202259088163372942216844968159858177717994013726860377447251476566878157222370709584755995408262185732774489129140363343099614554180579165227630393876261055259185917874124081441317568078575498660440654662010659436090957469429171779470869318665815358304405406425312548985187075262011971004100192475930953826390423552535112183859265073558491411510825579818673525078740809224663777136648093596662900177421339745462380952962804613091908574793840751485835902674938977745707556524899459249437946318569174293503836433923442246409682315541848567652359874760963253277458921267424131614742400050700164818407853705800425823394782342794605923285895191695971071918861762675497749674937535017289124947552716239241452528898773953929318417187085460034445769349060044359592811127105568953960598401364341991111210093498809117852304808772685045018662373850753828607723400869743922046680008731680460811182120795375680969780822386218236153849603499486454610435303063165973191224754347586527562068274751265841225379408686252316177317650208121615662068519374144204483191166121682323356391345673680593120874730399900409057859889105542702621840834738805620832773878626867245439190249089791009880376673738293190427972150107871000351787055417127224650610043475624792265462802438865450020524061565400610829215205509878557373956934032099926166823078643853342336135435231672057243594063497885357348294607867404030169492850322995458055087185485243974421563857631738281696172512974882265470702370849710928428736757342405282058386125163089853299032994547435205267360419272630061091435868768257318904320141158880943591191987651530265718394800002725782159067416451365570931093863085232525243003748064004171656640323791536816245529755133316504922763900458358511869954430822543348070176398659531902283258441862509952309781545294509879045181706068457162905609087732606193796050366967114506507265993648157333404914564917753820947133630331090453839809767923279518788703047710756897916046871936829118600568334994744551384678847418278127553284638691328108426224257842128514965454339491710197115960790954956405738202409273978949757200404085100368286142236117237107239025307261437976653982294590635118874105968427915036584551056675413411565032114565486681196373925847980275260243162844704348374327893746303309534062497317423110568750554207633777274416912452984600223544416508722558082690660005525926254297960968258820812957753575279202596724611922611860623597462069275012520195247875748184649912074343814674301131080893613792109436580255722578102313342955323781915158341117264034407557807247185437759890578168183018014800963863303342303441100707014154061907547002374249036162320786556786319003780858639431953397562400802220732031064889087448509990349143596124033131339787615160797921211369824188088419920228905768239004747012104401094682204646915434805191024846359710841645188522757885165954343739730352546175786415905050778043174552571773156905814231435933893896097050163780244878817336446399569680165572811879206986824752626997932882031172095783102607581707868563016252324556658350142283048579092823603067509613484225135655888436252561130692068565122734421150426399603273396903498799217636678376931186232347305113773238071496829843514729269545166425144153249273386229820803493873932292680717897299681224881499876225899141799105705982862621501048735492582747506115058517926072617239846561527049167959088205370937432654854074367818238141973778752577797601776349371927463838371936848190469394906507517353075624587122570137808774372771832677427641031977761701896602962573873264068300568214961002817219992090998742464557129740824538222589732520200683153124034424415126437838405372230315782413914133145568535842382051003008010870876102180001031079561376533915508704518077495555040481783208889031636148877160555326298526130545381928831281353504750740902423850013892933952912566938324698337003751623300640773154305436729279471806290044121841702689427764259114705309481286325016749814127681851671469521325518992419208581019953553538714541504867162921752746291614851569675083598279386101078530860162211187113543544128862409961504159513166800370484059725599516915355496014153315226200436274303097959201782238863439819371100906782532433100256897512473232515062308011958120071957567007899863853585984500281680092888749440511800971954587995795031514878022604210808099864125966498633215965064852717889911148930843878730122890734747527349430901419256396349998128409488048027554677498337234786513472510974857754834330098805863059308497692951043746770978759850646766495158727184032406450593602822557927458586777400945174298171122547391086135723937699829180402421882253498255138162271057016279271091778383508681912756699943997408732304865961597394465846433354164072203323207526701118338508954515381019173493626444598244080878726749683189117419175096230596034231837754318141749181727249655190455375532616451049038778363836796717059289209123537462470357294852802330766049028042773000486833565577292830668296544031973511451620870729677168426813130158442679290691435496288265319292624551464894032326354102192181902318739310628406948528177451285008069181921161191498920519697313303170794986409828892620115549896106905009584637947370149044035685576767670615617931279765988456039898653390495647656908088853747458007390780127911542761327222035520584131129246313799079305132741696193168737089624793893119534999441363425545983980539089344859684920299924184285668868511352239960716777921829542118239326748730232909854503244518992318869107278797478788403138705108584747472679913670231694708475311615753239263784159042532558848155336212709734539089689629731257423431649161412937267618809399076490513219834379274646534244519598618893041683815602515538105583800171322699814134739708247674421009936748915557373095096582554135000275274228796722467580145418652531588704675309752577275660319027215711631457836244158509026907588595362114359307059581837665858714042734891131231772420766202349394427406214640878438081469847560468793257988005345082383472193598860726854324298605773136479529558524955519391835970377918113837061237066988419161466891581075207835014601089538353467076314072540998939395156997549756835967888229675513328609153704239166451233660422409672377407197659407968058261273329391085138540157130415601818964941889694228421796091933480597908024062343121605585808945393483999717864146043049400236581533451174664205083473965042038240749952557231694514956589692290550098359317441999370127390671049824340007594989549649434775957306754631137595798720052583724957341973841706477024195808624599181050040852319388918472771668161847943892668030803018193242213260698885185869631188515669468759730576204179164711139014725898727323594656890373362500499795123659940637778770408168717720109294978760398912785075024473085755348544665423678713815820912620802403992781645269644159153039792629950816252020946120252497028483156420378435275148411343645752194074722604859540196844169999471723575054549760782431483030467901815168550722968107499003841226168403587937253181296288558903058686995693314676540441940492358321329387700173869789535152160108398496149830666121413728813715718913669270482587150064826097028816224076002755012205561669523835821362522868093312903697383687245691835374228481211473612247505334326693601376643134797398980638384547377866448620625942604557888101894936034335575733920003198018836276757158178980765367711810745867189415914335797460876589966336666620969784188856634089547860806721093421514349560222807538734251695192608382744291780458032932723738307395917784343044980196163339773380976692086787400432995300502985140697689867098561735032888974786903135419929194316122206503449495738624176760781095398417080379906744508845050668390182936215569535234648981915955948199407631112318138684921785719641510932168614269518357866135291977262635725821658979646420973768806148313557933976114143400248730332255193669938019584372615868777604158474958632282029028434524888749936793307607346938524633577750759331529659756355556669119488708222553697168596687404026234805827007755126547441983646227780657915971072581543218314901400846217274955243692041404776082605995002817123839777275954857369751916037177617822520665179374061906391711133365630999250025132034270586851932868630713255505168208105927787176331599707192124778977741390862857717601816826933477657010776862314062301992172840412329463174555528527984454199316848423696876578986533457719523155972699259903628175007163666676552923120845124985347537998529046525467320007954724927244870277054914747547594804407401344558211847745774428088293240423268667793171540943526211314111594592374686946742875883213321084815869470530972307060688203899392379459261719705179995891144659234632031374825695697003331430826290171771728508804339558687130280485501905395032695547825021314084479839133032240814192878532054958889834435613702945968636392278634663955984001213925873165582334189654068445695834884339724703148745524984240703571498827626761661953109403259781817128704700380880828792664285112763691770274600080721260705695633206944686564369633433034500419057125878223136641987665473307764084711773293267548318882652466884434642281099119085607895741636943359630213230278413893762607765390698976905489785830388133193751287608837921829396898022240698770435127380409217474973009040723776594561373606233839633177634164023138601560238451869452204318374272905048918862236469749977618211502392881108142098469159723815254458481940680181554700591868498563548932532142443635832097367263969460225569576148392902544055208779243713009816276922744009910918323566890423897428877919222008777495624222443813088990375756571174822520646295226968548162475063326670783027335020152110987388910820447848866842073998468756277112683672828636631325739673482542199805141539838758596307329897183897627909882310816132831220858301565759782554492165635489006186914055016562941941579561422476872811998103575481661714410154010038973967133442508383411508716260618578765354273972901424237511737033829267976742554172262553745467764340211580611600476234450647382628957429464417935620041662031375686655972393029921662710950687949733612273830717625553634182248982307798694518671862350477119483397512160084041885182248621340930704574062211355872001118196204310160640242376503069186299014214617857100395087869822436318463218266003452384460628616234864577006601747512799654088830125037054849876739264463668939055261168325882926360857577028794771740552149060209417622170410882418844901777976772912876955879584069017036454310997100359161539362908453178988211667621911545581617564278075859769386903026982680095795682427137307181855865431023775254390240879448256707010424241791496250000836847538106098843568912972850755528696909223970455978150918356485114075277633870385109232032814476854249451888662922157740991643427541796084402606633901303048274319478581114055552582960020717671212446640493791585671752267368350165589034694197081233859155442570761098776695283852104827628509961555428158997022185139673378931969948491898223608649915401784146551655250739675483560992943919046527074579126370123733184422534463251172402639733066567123287870261737994814512279003376502666601277277465870653407225364333206312797005729874037125322164658024692574723943995598732746094028783857729203510429328752130361760861872204110277864071877024914742317130323026479198680387906011154244495234250749539631866406942147889917056300688604651031748768503816129781284885398680765949085397249378241386025414100491131182394622619141293411360915201460943556264478231185969790848242685257350198986808643370533274933897301650590332534922817911120187551759088850456902466600293478892770821024986350459554766537556023057537240620678639068542661035499642316819290813824202851105884614423569602109456508551148249524928577128045206679850610666031208221135001524671540928076713479994389860272994552585354785457996615553893002337405654733808233874218116037813432636813651534858359742710191890319551658085729994328826603195238173469981172850836236551077661806096311672975084079456542490968706357895430964909890306858536169955797827934855927049508986387726443682772331262028411782286894222492953628433404814224851430779820318236519703856195798425009199695755252005767283731875044802613850609501243873782023899602245838046751084163466982200593568111038391838639574436586298385389542467393498902551281633749102257933834023227696686029011253046071913470845822655050415138573185663282002738928175007012384555266399530801885610286062743250970373607018151813660166973128474845608351896316646307766996528183394073316827552734102239879099528500980975077319764379906353984402326544342194882119899385443464366430866260390612459562222580608763695510383526191537968510210231722767601646230213915628536738511718471632891704010797775859323171049684373863457840322277436989693026743199166169676428887541614125624560390844070498570648822263827043399926563091745831891598393613299465596428661877825367206143217308966565882911211959339531287397808946151314596082429642707369305183381564438859649494670256709437110347627661771364005820525800545894552735999827402479553681373282829962060463320429043183935686627471322958783671250405786006511920713269249840653165780060926874633359803267119822768995643347880923002538992742342665938338848629637296691274384056718584345925240440404909955378378388025071664226942448090908066429962840829091011977032534686932989060274732484853589560859073055327079792888754560576326656588427330008703065130239509299882019886100042613672318653484977836000631966327446108556665021966911142094370022665571488869180590962286624201684277422400929063508933289079332493472337518348804827203382749031993152679892979993076684037642899388305596512486667423105047452678738814769462784721393138660484894457698453380304600516148067469343079901562315659610960818072487379027178626398317698961207213322514003725160734767348836782886515326411752125622658781586885670385658719594728771008372454014001034583699893226759164621018429501743841313358157387429282306703922423410617706383136792220677098839554856869864884824171918243201376955949116070952342831012775337516580458803581329779593928987080289422683122627992960956226207694748665868854903375704624874563948781220225593880465495117773067812875420025400317951933875269403822550134309683462235366928805670403230409329424900567234876172866618566973417312902288121953883760540746687668488248922795976893423934827999232754911562654671518178362955869694553154954251417927272306908232523440425924279916705055812025669510709069308550430047093036282578442454773079232000042297178418729950117044156944863898344964075495112256808366237859479290102936004207616981724548523354481769932910183974505362574466948241061932992320803333740607254870473219605399759439775966131341091013166921785098258073058638204385701487567263511902365345894042178948765862981894388241669198639508697944489934186349998805409238452089568676367115047081374825025848979631815977290111277724867368471783494176301948506150949899656015528775008390331386360838325472920980936779720462216188798152604956385329319523931118819379863072264648409536580456056500699304125821206991937243161806155144866959698711078092667662594008604275475732113218382759947308268352776517810263959858663087634896852941841024730296971921956950573374536449882124043205581373538941946606667850329384954943478124338962417759810566735575767095306793067782626966186512857898902945205944092282993577836838439167165089686605282791669283406438872525673600621319809939919875159896622384168777944140955038502104418255050030628889558756292345999361740878911897140638268961594012267901359210431910406175718944911612569255203244896771298673936707147925775364880616869065192112674464478559335045968694974866604558288499365807035856899378309489456978969192477135894688304718799134794866210954189689616928880416491866716585791302457334504667932627381804061432469234330837432051124936166643703792879752136092636911719593651420575178420803802921343682773514420553187927065494261853190332580265136397811715834727154165392691307587819574592335868383234636188059479314045931878184768486345031792594519632747348038651630598650430520500059729978973802369782508413264108452774424150214674843162945855199332137564620291149065891728325471968767091244534071194628772959292121202024032680265326759218253392983500597744053401082090060697836851080403463943483240845011332069707255195359278511352106172809802073537194931159173544753573647350552801549000318627562713730867287855624795106767800326441342421500076214924279744075377213393921470524366062625171285965249821700035219984224708480829244720298811685936352357118230441435107724044047959965129196260662871377152288243601612177932265362341137722404393692631086666436048357272172197158311250498909609526521088949133678809725101651616293375698645646976602444467755489402940988947178198273569438676547984620616806947498934275638406238029586250543930789371256986210274471858674078765530767797305324535650720783202187133018336478410617182507425512633554516152360634269227003611689321610295564229819634981135504925702841110094510446588362312904731166226615872693158420631915559716924361802106429726005924583814295704385950038433174643974024002588955914237437289838643450966963338771005845575195467888356901537747542596638380273017502366483170747007934442705216654153035483513981158929498858523656837494598636726155068704562073760341016694957015561808115982261618164926965634779860157283485244191538979648722137509067653946420228345536502429597553189616185292522358057820968064091154866458119117863259198577730170900521771453846874265755523664775342545863822773306673488590962000904953044846618875249646637437139256527724029446270465671331107613436539723440758274415906857846037065930843844638781319001937219294368929206109462352954892206746793889104476812274891711062084324927092998419459321567891709762190271479598655719911009984047436013234452132292105378357113884706652729634538476734720230073167185752800433747138622177242343072383035911041033816342364137949907477184677036562201386756904548315704139955649299432461609110796057789375648726058841566945255541734119476467079256860721811731264099398282429737961419470153441670563770821650930164805312791295555340109421938156156956195896742988299785369187916568538552317344800217874540497618997133009249850889962654216550779565562029861310507603997385726254364742147923893463403777913434034508763733482668304216630429483079501415305654819399781667923017066003483961200363081022827943259689139245242502960503653236063910021298903425675638009262361142708607993473053449021226748288636918534602206384709733642181806888886412214109644179923915947180908565461992316159194419310831519895051595954111431208599521388719417918530573181695101052155240588591269554289440638060478013502909567725714359864811512333204288598360679740528978128355062330000031844748164944890695663729571722346731111844347204278781172682977930543635260905584208647825815496420827983275026516340995697029952918283716534637665100806275794163446801478833044554201314825266263788540205559024855695356062559864225323339420972633493148146491493401812553712253417006521460708422729655286301529873134895977092691056635116294152807698050009239817962180872745551337771238679035389445666117989472050414643834091074542108781909938244426484306468900048558208699444887698231535545409366467590105078992287515333765491709660001601386437400786218704587381101741203106009191575696777507471703226332536560013041083662547604478132204916942754518055416269787707636566341156487959442160322855677562703714234645015565033740779265637713107933195688824893402813832559803914738575708607673578765184831816794435351581265509424153884883117582971719278045501085987740182262685400032003755896904720581919053882624101747837903300324442219189325798593169815034127737702690089468739339386412315170942174619022561278344876698409542684532306881532612216174578257677806503348850526893590293948141446632701006710503956596698236995003267691645899834689632974525365007380021027519973485017294971094317581401017812582948708910510114584162418333256639128424959760988463279562640746837556624713592968190336842312350265280525414988012686674532331117934728567690147072774608324564147244308415512775894693000312941536145632332327210386501574187924692188671331571136398721157700322125416474173843618110523181898220643986137613771304811102225576882710814459541399479756010735342872785616027722544683276839201275979336061347178861278459351903348763754950849809088707741579100087621361262460979449555774023790600085478027120698165646620306878066928112301493891178447165135760275826671323422661193285255690981504883484620153701761141866703453250549420081823949719312807185959903170939902407483209792404132668315704043454988012079012172989230788292794641474642184576764521803877248042721092783936182722862209132012551817847205903539406959070174653595631146706012213350731749688952346942104500709362468169398024092647559668112024712294642934664780405611771531601498392651925552935042235545512861111654547616998076124836222720355303727922514760421456644089345052620594438163364488020539893705770666771266029815467367480052288494976420543586566740832626533524854550024656279311033620076600456577144390150289932295553822893619479602652767247711491427057836381149931799517905528373686643869099973964374692448331771656775237856516441956650840448265790868803898015976610613976461303397354446007155069104137876920499913019413165695154336504753512777867604678143504313499143720454757765613676740792729864487238253907949136431938585659709774726234656556363351403553933930105629407607898961535761679907087463061810451482520644675415603896450614799362869897641460612232461203760854112097350133175268210319309344155753681640359097456936523947202036368817024374810587953013028493427204981160084506729400912700610071085043912145724994944561516157190039329600661116922269242242805099338421267137436345700270246270334676920729577176851389233425377812717983861892470848956489590418861266399088340457216241416955669474003824814430583360751694121078872079046179095187456689808865348229780309492451220772295902261763923598297631300607720632830082679351028980538015142434503756314171767471875607927403427787389280467351739958275335813750419545137010797564278948452939584218960957426101643972592905375517310958429729640698749728277418316872619060193266295343237772190770100096079565820129294574406798333791964412024583833077779075945560737354440024316577901012694812751221749230268722466617381835983205301089020378166694362492528683434731579057904182179103213579896831291484551386756837571657142770363343382568123280903509653673021966121692128550021470378281599093556399693517961505264641080186238695323263630309516341583108381514160749412449365501721712666995932836274460257980902867476407334567619835406617288327676084608524353401243108763128017045697923934983010226524851881563812195853878270308949453955481968371159317007281114125316034310837027738624077874517817363877514113156081043290455251773675049418737502297869679274940926203999274203086357575723722497211267332753361022006202325765067509173945649795500437489393962998192125649315763079092131945216884723365993516736427927398463893792717935177519657848803189515971010562081706206294681509046323570677597403905584739662327536479924765302208409860781597144036260426881047711757673112102462099642849609816408114372172254582170340988638346389415646652678072846941390472405682176974810776994773621980343572636416599580842907189068732826154375072705316154756195288273588461419146619132921785404957448327798598329523287449770789468879051707198861596785621574822474602994915512492576700396183045683210643030405988374908950703201925357353375665508064002440976259034862314968890572633110577848109423680780457039781912769387728970858512877049142133586709121049870254335909651128248089358379845279783253433447139992106388062903655151514322060907147329277971293182586938261535616157505144766298264683749344761840700210624320824145733919790695944078708725891121914872689108925536627623397850730877283348031316349477000210237795902913391852282018253180454943140786063574369787654824590522061264458359038230729172390666066026684871102372445604915782955638510655240188870308537355822064003694124173248008588509954646768172638340975618883884553923312972242537526799793858272645953044671803531393404193636398096907067393847252661577737425461729420695682364001355082575514771985456958915314315967914615794608470247263377328164393199830339287367574568808914150333873877079357780994749581083742334963580284836337646304865939083757078162747174127927425722443387080755144270776454375216710733457786605076349212190421150198103098942308229731909730311272253038844782714270187525171375771141845676568697210807272405341634178008192431522569368715682892705328855403592568331461556311885505516858409387069065686513493355509883895200465641323823869875725141335128122831526635755095833560396752509257535018140888386285912312200959416258429111454034075337176598366776133602850993025811918097862942179875133816578625739735975755451033554450214349565025963818956507231459958381620817342961039878233649208405753308988911633634303918626578513306704568851803395355738365870648325981881175236364774627135666993455141881033013645850623116284060155085232024502364541584050053841250100605461186673579492072865475169666885153710712063859713092716130059236862254821737383528581670066529686568278418667694928928952006561522037576566020764420137779581040737810722744639651862273973860520628484734188966582229621640940022637409559006794375641935139084593406534909785251535632955529717816543142798215363079456367870339738577510008766822685423767145717614648637015196735482325180558879169562821892632578113841341210633276140747673755094040612908459766842236852307810351067038359696459856453191457053720933162776752035160012082883130842167117114231343682865932672189984176261316781207036597050305622670898442294113809101294771586255198668117705112567521284542157125481790119522751933465733364370633322968791438488761397115829103690168479207577561318538593438711016461916257294660192894611403088381477591936220800563874041529211248609839577654007510503202221395506134169188617522380062014955036247196240381107651267680156243684910395807728559507169313151117110949106580443466527029092638136981450254174207317708817013328843151503061024212529624144674357775919267806592190715054514501624416607312652910968617288289564411823548367990704865774513356278941743551408253493350792116385717453799774454058127693792278386259353274029520686285576153724295322829826486739426311167767421428263879435433519350779072799469819213173568111098352371466552468236373773409074578749799822753643440854945668899163416300027394683103750960599326945347628069979776366133387772469546034541171001403291405499890436148676491182232588710022526098261233196330143070452356358336170979710180798950756879222547764287771751258706577491327045214053923911175903027459413552330433766024373545858292436849362663105290630584505153225366010509261848468174391436240484197682946717878800320959626706066277057252333908863715643121566271780084456380962342547874503777165215139752180612454582272771482507724540897793368831009366691490837881570836467171824924434257465944709472048998290891687000338723307778831983839220729000680307687923977117781171211300576674011074150296281742445195350489329740694305083939183399342874074114980661630290806280806824953486286642442305094376989962829412706824691796511966415441484304950841636187939588534694398417123018468965803989830223625171505673733457333000061789000210666254411689304167443075621946179779673146501776858874152227260406309348677130340933275854548004873319503608031036148509287188492375094915506659918855769272073262122161973758445960427254718078329316685330902219260313298255545718715736200071350423972289345686334466370940411373871120977511330706305356963125032340886695272860548448537212893548722018967094901679689714263356437211373817474423228422012306877294863763035993194175304227244475669495502368603424744678223833630719432076157978660868688728377272794081649951541775287860968281639564277887097989597403526048144068439914151486009161590580137496590722763851516306012125537617853361495211832443458507934121956402879216983733716812886058933259765505006319821570256887578584117761173996897864392055181431451657719770389643015766471434504593602820414968861684150211607216660099356448072887810090817203508483990763002702684724529527270662888684055466428954883878371335963227612783280094765691287377359972117884988621443240210219927546798280342594501509428684896662831637257231909481072137302864647040091421020866344613949038429724618696105887821722558483291721444589570421693586823049385433117898952217729445876662604889952542681856701864658995854891906725465423715577800148418821902865904902563790817262551777197227762431267594537564563012232554609822297235393614335110783698687093579766955111549325065614947411247725033188445620782388395715484442018260707384652569319802124316659649199952221974066852261806011306736772887777177958441067319381925882313484854925195988479313223178032859413362928204644956580563672371155823129464741566969963207393326280209621885962340467595793946263949580182460502782688170651833394142464688602231332448585631358759980606732120868088941456695956533067246087831988672689008167673572660592061894490072651614911434191905927537235610612385715897062906036135751351183869186585832734110875717442143745521566753463943147130485212667823840089784050371921371748986280642290353419493789909494945028171260129741463026040584404030206449061698601495317849523563114122340168282520302011769266754036859029425133961458921494670057538599773465336553383734473846285390576241738982338277833059753699950370171161630456442392417698717191691582791622421335107594787606818712797103025155446577718537701522264370286721838682860255822622152816907939405301755052976530922136984927883968341058203564070288184881566857220118889255605875763845900791187260403710543222535870355354750539488857835680019655379417465341933685588944975334169540698233965354553065156070946850182103504166280318736483713147549441292263933971198611795780815942567320676734305765873026964359369080306697836555430799156239389298002490975706345165758151142313419477462921446726952031322333778126929232837353503654291647103609102187457103613845221063449991853435237806071756427419666542345703417057176296861994787704507898086266714052779283377521909664100427324283995986553659118607005756608753452508726602754904257383824997581377830152295968612810120171699136339531054711000649786689873490180093080187324204730153889908629852240352859115223908986051947661629738181786740118632457013458350353316770059801871398897434025858227700612405731733821735814992506029826990704368967361183775433594661056768000594524259011377146564845793859846184040170137449033460239720458029699240571475088413683513278284099149805587903157645986283296253190208952038715908870806833822782006261823913877095803584379413786802580482657317317454243884580574475840120568014446513888922534204452573143520085758701581702646219435636879783306727269978414955084841865853157485204404580753302220941549766951436083854626602284113536173187698327629092196516101410832275420390432224304632028844521472507345501927655477899110430324346688984164548126433711434119363446563598496793713060893102437686481558436201273149532229417896096371289392250328299296539546052003025661677081969703585754711318812186883878077764657187980547746437601145678876894898130121471708120774943682309573271270327998251370362993349735938261493159055368418393516360316895182797212345725698655311509982291469369368549539651813534372246664907710316842991918579141145428143183852801023314565883796950739154442589657649823206739673817968028824872658903984498333960253318501351313231700721096053502642437511174574695015467418690845935388724162731043871696998017239679048782640515471900012219726691740266792908167435967827939261860149561796531201865838496889815399974231519754212728496677824578209787870332494573558060547023532961443824649154898735379334800489170541159991707389621229951733096615163052025790310915120608954427475956985250978404019111929112876928218068360032007550206765309383221866657758391001184238037502592957145149716187681683260952902202569778635754688689417663769588049149359589973320823658273019729527414467919882148371695619888244270718757760413192786516344314169990578180165392211204390027989746953329278999935004375841895465016848930308909865222723900512148013618639101245440354174545058244947496281726023793819632775083768129863182360725282794069244680839028291173374845778380961561397533597421114574693957133568558932831268496677499073565956388764036061747507195631777013530876165460482163444504388845708982529691916904171880623715885558631387850930722009414622055767365912396843362377587137569781704044505139672418039735858524114771960167894411784882085379701479012309751632564849433403548268814643292368188791431345237774604059337521320717208815334878993797535956485690745347123192728048006868465040494329518383522535880979756982988427222748780066645091653936955295728583070936358584931296172919903776379333931119506836458427323415166300706236208883520447348186700307183369125503005457936377533668774564071418640683514969590319620445155539491412538061580060568467915193983419334235725040182051697593161615561043005441809365428932575266950926015631851017718769451015668177756055618236622363124364142269881094802261685923906376992058624394620150396914229262992870914735971036219214857335640672365238001121316991361521784471990661700563379743520270234780933631168837859584358107242811452635704751223368248660705203301007665915417154573271256262469637262984136476437227988355217939991746774776073821024111524776448214831339106431551981395354290308308782191829978258889013619209771063955456944340089164744567352768019544898528686036118234831559764527763731228553477993075535654172223806677380292288040733802504851376002048617618523709848807881544115772581110798178432974769890096308153005478639428428313576819733054394865431879648342943283930288701202806054149934521987866358131013469470286925528443826612929817347301651460930727033044474446137618698711119040111527398750414607943481839125482298111169554839676940736723896391774061193256099987603302470551546153432862732261921811302236876189086484065010119760532540818600759136942384578517516381538670178289621206502685362315040975718225098398940056025760190634128772376098062851415093176527315828361855450508192748103148143654373987836115100729684591412509753674367680291133175513227392872337896272878274982774544630772395615581927466349308413491594756486558544377898129480304196019195015428493880711334512586410603837365635261192210739629085834044317602813899097927091504029830044760212904427928659154796727260189365764663742639676626407400913181789671146731032169428040822564521830887400109419355761702039518409994028135261472258800224329836981932759307548103682050587209690307889120768595457905228911985610078589602542270391780112563151454230435455098112204715970935429931937931058886175302978654264600259402396057313385349641635794644768347025332444785116319012931183113866183807505055258670150500475925228781803830162267713003781519654916719532444593744987447607584140135736431643145801629707092549872615176444120687031025038829220667129403914000058844871798510738792680674189501447776797710704644116209803385767420390960774185332569311706353064156427987918401807591426178633050311293929974420083180914115042655886796089080798689905036540166023828245450971944372231840583521870259520842057187512289384709488895812805563869695853272957547359951468245973587114126341247307512431681578118136026011379593857350709640418364283093966677455441569766263543697140226291629098417680484520233882278402395539261121416268296387377647832353276724468536097334431335076179885722151277174029696094714541158574526001260305897810132641933895825847042537971172500562949447470062585195523557206016268639056935297230444402886822982882952795048679703940853449917336826134384228831327458659184163940622465524430702040389420535670156181905527320102432201170019967316117637839166536418749197428880460693822010976909884778425218828953797796935232597855369290839189717500155784368912841189794040990148143314414748728869296756711657650739341481079105284335991723594060883124805056361496215188147341518808753876485360923761278323956529518499698944572886682089579757430830155985329453883216784901358569365338745642522924033122410152075115399902848428979475444608345463524259110742412347514922550653119358104156808390797009266079444394155409399423352820294573037650742104400380799713055148768434677778773504922263501476589187667010608632742869297147436441144850128183960234644193115563888139982918510613372711548113153048617907332376445328373770755483866622031524606538990332412520353617050734594923852950829226275213138655949091823032930233092857312267508236239968637188482652956873393055855713520456968381490500086316996384102074332705155896062258050997054537367275462428738318299325459101414678511215122822354796227647950024728351177591842988969389525137455195894180083029460747859659679844686114172948441116421540595014802100727191235226133245995030559364741795863102277483809733053790130778915181186678642867215140670061738142186292993469571142510481987580933063600142083049388252799598483534533035264589879089703882732775787267347502554825181072749297977495608140407555144740137960902904551126267921993907109109975073740342716707372545977963311827516793673783263624883931280777380024686171154679196598699906008500821728446000930886729332450962942624942059420444118426795385610633969175283442666778708573742591942570258369966005376790905251027478881594906070136888987621140841502814324976259218205849755734004346288905911259673997347880516067166513010064565608410043278909253260486471473310107409578828168824218329606660688065132387258072158166102002761392434753524207561042525301031994399104491979956849208393835194620866131620545131667764638098155458902500734171189274501690414930174559935967622849193770967681799794707310934889348888596838732499852885568379417048538290006785969353301185526814503600145136859990255405082852079759436387750483431392257843807052318592150348539927748276183645271929364806094760979533094179854624215548708235728798483956832796067381977608752495404904322595119805036992267420930626189106723795836219478298555808869263725305128473039128500180763091712154114504260106799456117858222930470076374000642180069928612836561562676324750180892748128890348600029362610494781390570255931564471773608376894221657391046125105208143123479569782958650430377926636271425736061764463989764018956085924026755105236698244611509267059908248961812091683087974755824091262668926744209095353528767677410807937960394737212614904667783656753799204306232062576139669054057349333601357018733913196347854044578293703147618111784485004620242938591527528060435928273214084435338535502079793201189841052079019377653400784805965050541260989051734730651443931221493003144257366354224923921851075718099660459956792587941938551918451475443955394148026669291496649029125226150342600700129857479363020531464879622326559282711167224421757580869806141633200158105985104090873339165628116272584554337712751909617270593333440523130717913297999679734983744629284053370637119867619225344110817781724424931397731864459105338299262439418659402169900570046200481772549019500096945400841897535096175053451639848099233361865726933747337177356664377407415380389298329102010051910146244653827787319408300218852029439829415497640995945803418946631421927339506085960550395528613433346943941046869340140204498801839751872893033291707803114694306830187015955542937226731836800045977807393497160817798965479734494585162965237602022391672423501109443554744695767686988914970856425891764964842937024682935818924820630439496026769727357925564986144560931200536792938557554672043474962131944119963601241881594733381120247841503014032959791627325842829054000167964693977611508549563741627140167142723332956539383211329453823873230894707383868072057671785895053459610104582475585246879655233864199154509524576526668474188284215070222846113913525561358869870740129897609051787810536471892871072166548090635909422356398857731827927568093416905636477355178762776828575316359153342315123769330730772918038709220193042849554034183349635751091280770057396300464851929962660946085917581667511126261174842582521294580746398877824327942298649697726545024416828071878760565503640151235273038220746705591019716853118799757687552917600167987022591978966202587973626073114211538438924388601931035943805882713765915957784327780276064493364174019061886199221526931681019688019250035540928228439287573408475667486389213202749862383281559683474743810144642690821776758731868136900931672315153221967580597970128774233128330477724069434022555744479930938465595592149668419487726864469767225622816912964245913608807488351487881576831771698683121600230974300070303956041413955420492194936187046764755804543443021373553086281104453524488618568516218314178890221784534049169918998232464312973050879826334540251899362267879399615725078566988510656506291315572356196080583056997326575598940589571354536868690942252232748664808912478126468390924065579295634864090134775833998733133277734069899681732569273249649876200180521852591716470534408510413769269052429599906169284631281249524610416275034321202576430309380269443379302425856224440582017947536869792205486182485915124750267567855675888219767545758871301759995944057206693545178112446003580570566313795025066375014378002709354064304228151815949306526201270555771951061920326316361258731887556591229391109983367913520057073862193722593203181196682218377289589788426611559916900080522801594346055721942504180399362236041795565835031454114511162415960344289233106168761210739695089231350583221721708751382081529734482798829833024396713517228335734841153811569446531435865003648073267425929494433636646232706025579594446818349834142183076973829620100074125935576564829337624447886142461696411617611364310665537705990309819638589606611274166921004402403532811947006486435898143440848131766136741947881771742265832280482004806328699596004466996060771663317074678725590120312969861732041907096430825199530871164337150674637375994843108711089438661704813179072239726692195255578569262577575531321931841904132129982238681639949687195316780604070596437468304147218485306900596459205158430673802396501345482551387485838737567040560536551526965421582719270434121071101046449688900497573512043097558959739992082922004738701039934602357136233573480199698937940879414844535404430995263427646959215852603623815551870808255797220751547830332230603745432025860299782469407818086566078781982922412828887151552438372100347534853105039436000146463644433914431854087463492104333772769933017769336316539694900781060196488589165830832881306922249819025899406071261085757339097195620958584992704282825492934091212137582601892090741275928515321336512782519935897690235189272527493216231627062940042888442162396721780281011586023815566029048812670673064079559718656959557647739110650739895975182862734848172804540203773249372048358657745519613913654520523377638557004570816843970985367684238523106857891538902441016025609146961473047156986733832102141792560429961742412933154609792863119771711575889571479232579018280654665068538996597167886811832763585020209732511604290700713642858519997430369361391060626116792522475727004538387233010118568463594363060788369754511592592832079080365878381420409394887466864024918995707737257616743453710104948624972967660622523599651831622836468192131677177266150325190633505218721590949116556845790898910778911483207772567000921227574895705522504803860233688091572313880709153646901944785459449744344877526196919590087266994521893095025751970970870921797558630105599152529151310705582972005568156775301177237727563361890878909703445399886697428815693950611584736615569816652254147253984893222700212468093444822654523733933718371397608721992649438128158707619814361183068408731783323727843325005911900719789980871107638961715316069460791178211210711510073494073881157871286001821858308261779649355879478274933957088143854402352653439255737242264359687356853388806584893892904365776952059904980909961661775396226474259786951822585186397498219885000316574420601092744150364754245683375588469658803345002465521264223732434716278373570184017647303389372409371314113159009483113885587560549139187276974664069968140558103622686572192053243380697190420641808944413615144651244732323570477782060851352222355695198816883632236588081662171711671461529039183603024335357086286094481658557462526107354576475383333506188822480110887737142746380865328210909659816781378909901346365304175457303069729009123918599374779902732058420108636416160382516911043517523365322755085477434286609301316074370421042638619542408759982860330507484351853740065944422729227264385374047350595070916649478766868541152642231901735567677229067533253801655689942193714045895935653561055345450012870122251292685603750354414454921143562159120514666897607683485802787064618153683397230367185898555231571522165699136252467455071146084624960874959275944402472375477456063708947847440438027262062683048270828984613020618429164359865302854395445956371319236382018379464540553105546332643211166240736052666201174908234801533451322325678963907194497903505623281365598157380998486449858951809666306737521170440827240303395708651344566495942629541589314099937321560664961731611606577191500594620989407916973961591504535425894125664416661560672606354187281051080975363633072416336876277348914704934774955036873715014250744414570059666007341377872532190634363177477093233413354831764980050365530922270549176533770637969860437317706351359498749543746614131621636577857747447080077051574995271770385185841936665386295680433484343924536989031876263852321338921720386589449056768272249061121532649971909246985344883669677451302210400208636289659281708184390673950028034680014690176620695352568719303047016515396029389615580241494098172908588948568553716691037073766473718062250473993409468886183235521672923652256445783316010012280136415367202238525114586093665244415965288977163350667759905821203281380441718699502885170716988156074979970006613829398056452128499914392112390729974896866304407109143287079554869722898050748562666627842606488131800076683575333539730398251052445798720148440002641973886200876095799618994087511640433800500068935907619024388378318665623470765970214125062028487457072887748523389343513919524491388394881494276041736362284779167180763774270810003063541295517675418991617552219201778581487673886608616688881348741788398000936935761551410088931792684058963970171901627391338233195634780079661100504808790893592884169826632429190489541110878004170136939668991748156583732197568992937355570008238863582467948570389175411875474191045421562926338966189801942427749376188830371905817760216554304070660934804173488251333581482423463846431060924181428188647580804383769572337106651935667737297463688749006025476322291892149317724520132984444751767155836275101543436420115990045081833509858442212507560072781088719565834984213690581128940408701753698824325254918171295296187787061204174303958811012862742790693004920456192999250365273198139463200515013453797760709503159636135214086560605774146482160158573923917136690746067554618271062731976694459678799807581832472637456603964069930757729265222281154779858963665481529546540175754377842818915509104323920295653038903389172791925595964313610523650099372587441424601266852986647745773751740060555787285474000155361741204392598772983413712618681139099607666908522618306524188963987868774234751627686864063582002772227323484519594868164834357888313654866567015806681926625537441231997497171370708443350117515127761914307247802257301112491470658285490823055777102066102878556612135319809828452954299364187781042082306203670821458707606810777933480303347231489467629851581442840147539999729617897808538512896074049285879558507028488345220676584424559193872964855069687724953206648836466440155116395878025999137357693448726374177965564722336959164684227167070374679160882431567253136702496670159207782469551336114222389712679571422626499167118255003208739376585081424674038109469021958554922564908739529652033191729034546553431905137449579700885011994066831160739989126658092633977262864674833262294918649172366420577165540075453944037529405992738204786088158434480807402756485706944074627952786466877575302074595594451792462897387769816575100397075537216523215577919889472784901529467440114709724584818383961569697104957437451822137817020836402953052537268122947203108939438472551920863642302384764201878360016407535276441240759283197545371861351768378099551085791832765166513713430052310253710139779465162699265683257388723593492616522710669931086825365054059965657874601862777545850145546033972153853316895702268463584613409529635960914673071083286371008841884844372542030751176309765051745699413299680062894815012499036885375897413941196447767645573875215516251814267177917578421127445575354631766279045097421034802028418031555648365548664222357799018086245100263580780167316341987959403007152324277778743804370924774025876964916982672196002757722322721754555403682645897003551587270936084707402493502399543098356629804708342216531265869110827052925092380953949284825568189245055696725061091461764287075631000634152407532214382489730175152405240402616689343092321268793312003875606992158909266928225750134716321938571356918889538631105719501965358895345876442775162510155088795706710842467074010732668097650780273096141992296182914219968208128140890143341129931374519349970080924483843806498629775307269690760199535520719466685036023385057856647833533261698363531126832637461034638054127400782858136508568248303976401601224449394852825859639895791349491387089903309801804123418039136206718444758024148035212011682843674404232178787127738747578763417432199404448924576424145085428561380145757453019629599840231832186096341986290172732603752030551844472421029971434014374488226898571404628461396802205672009123246325242443656617868372792730769526348968389891075986728496837865588167573343347596692299041970467450661772214023014244631674950356819613229441196623279258028390066877164956117381387468230763606336688631992885752932493041262205479666621200406792500187320120924802661638712038613202671233107596289054056401288352309503678794627681059425753148296287112666651133416541478336606631652867555494511958757490127010094231509550035345660604016477905391009437670323972895356368491362842804944385836349810634583458410586183266883782588296533162820800160101105734903708724603999033878138943739245095333133496689018533753888183746610622412143068840141438694586653815812387167319936979649676025326144078076447341005786174478093449591487125652867260220349718027514868230988896780959512150830804981387099397309106839984399136177963157024733298910073886624479589773915857663797140472774895583648093190704078699828768033292073002660963502980459876187881005786096096869729238734722926261193193955740357933718859809285774504540554600508035705039745920862348832261721056483403785622742308972865986122204261951565694086776018895008827533173383653749368246760107343139007366142047177073463072521921518668817144853051914169099740316624824979835544601984018817205688664184989189834328481634254398558848514697410830703124064001384828998505920373882153063889143661984814857844722668136351438170260026788814402068010154424565537267819701911023589413635540694981713740551566801673469916126278676272001469563068272000196215284444081028978873143823287387493932146175979689003634791845847083713133660977042765060894905213523178582566810161258878821080182538856359325638955129694688143030163643644722633737962843215577072898038062976958661298214085618711299030116832945930237082600559985497079397337070784472473239600709782725565712534328016900831798888608620037100876345042334284724900263677515813362378676386510312501847363910854093656595586783460710890284020813861715711941441634280910228971196306368502240184151727641892453141120022450058412738803109716631630811550700067413675661738200696604047172487138216012853878542794142521346693474799966089133897353705549176816052018770189954431787615844767774992382633704339157650490506373459364042567524566373529608590811376260083208845653709606015892145575550547692954466622584137573463522895862246751548170640421227162515085531420400028374250286472764689940269589380054745014222884183372349031358335787540166420586572214812369647357444134566521733113908721001219677000075307581136746537635421767147707610787188779582896864737621239730224123481052743562982765933777603798354392260985853285735502188546836068390229855866506490126929737214221253216991881190525455229642589251279208035285664585894128047116948378834445145681570346071582296076719220775153202694589757083915952114756351959622506541324645618139891050582523008757146413218160768765631961448792095020882036129114826018446579952664929672162138918841781948145909912793262046211085491964786971585382156003508803630186879315570286797059258561807495559705579320774572270070172993761167636701866971391664904660170812407180732212343012103557539340718168804744094963471495224539493390294738805434722340424022539975396886047511367978929976200446598983963698880737987308270742128795005659254209214576423427892381327217971946831595832313672209234971611941058142728700433522805930681398683528663508499414724282317237070372044602303396223365746909444074809842069571084780046930807133221985088264881241020160611950605798634187871148580855605599024393682481757263711449458975957880943514096576469440511815354947971726822871193259960386282169446748195880735900131944983222689139499898351855231352179673997727614133843214250881721985331349983167798844912559828339967752942515152232250310557367396858718727158279308092226333648337768313803740934930689010416860834885749033065001596511250677563567770100992667833810435010110320088712321954041407001839652370163858834559640004877807477576362121919343624620271617804795851556287144634467735870711995890634078595480810076163930989746184869511837247045318276773143417549489875629810713057708133666880170905424745561106071906055871218814381125961735338961678354182252348925342378640025973326173290173259917881782282430123728259990665919257372909649467053721078887074364033728494537261987182655848828489957785841372286235011075070845129729991018549466381259911756775203413615652273096293731042335441045839573415074319431240976020311296748024506669293068335202529795170270742879049929324304650091512345414192640731784281996270570226954209974519239211335981427911430152043001979511547235713443439939534090433077501288518334187567550745140126039375329299949966106607439495342369270724133986434850051039762942354021364188018832695863766338943858380387186078766543432142683644642426832396231333946413801267467418086178193816577329046468174271860476564409602588636044387271644001679532141936202519520764576763867499925094168263793914461430891847939160401288902152868378507536856363210058128747398917914716062254155654754777323405149292423124773553077981364558023357615629647685908109485188066354425558174804746305082975786119409217571923684851033611606331529146948290218293801821749379267971161579016593062948303065901798435195781752154335007671634345196697887001232400352537605775524898647687855561870766105549212482238813470087582015382809625680114193650521573595927763355815246119437715479742926912940330981639310130834624018416544129150052263070020480753077762015561643859616719114178744220850271085542193751729059551502337807007426784515890761238052815079414587702211779467240710468183360363286180694225779875785498974069461685353637182272694319011752577355062016146274713089269398970959260424544001244848592010075758858935044436710266324922560316687629044222005699133932245430718707582448004401289001472826490119171113966602791020263964071508218965671557694718311140022248543352497924294025905656785028137528131452343115487545173786635292416481822971053411631210766109463464615832859309859616980281338592263236105030604148628874635544056590799605480726241035629190678920416859825191225458648397598846514768244686399906355305736031774873423204801609724022305184955949887756291385995988957595955551814045605588587536964171568487247187239699379665752292441838860430273137529415977597236966954430620883588244828577088502339004300265226100703244453026311411035716523645700744551987907517010627301796368381055075431817408725639459405743201661675453409815287521274484492752568616910882678694253284541391292699459434750420730834467969399163583261882167644052518895930887650475358241608054045619267264790950558979509795100247822381068673688242524594347891366454799121946283681490462454313759465405392701671159442582064554883912486425687861331927855861414977420276433871841821443464136502786161867702870149916687049095383750636321807946474332744293430087788517389121176992154912500631081081539399191240230374540370361958912526235017326720734142642725072994152558921093685886776292281210126158170479156888223821481920014143974543698824643364677581018635630208449153663202805831928853577883976537229576476892761051295522414584238047800887242495445605885145816367568769654942826529428981333705331121235446828749899422784535097502205346475937883084686411485399181733190311640883398932760091357007769462186472802987222323530817698835183002011441170191469159469729578002650367506760463522673262137288080721756942358230259255178345929970036915896917762640326235648417381859096913690945138374254499813332601269658668983898569167103411884168480251883702214040179408452237775200340694208489748007614087056140799547010742393237096831739923956452571040630795981983009080622922322212375529812063119618218228418332960038489685272949770442541332764268947053272931349648201798651672493298430857200112286207643526928487895591910219933174840542511188594643563697214061732843241688074451440539515289305890109530024381957109421749637116988611883939193917072357472766150649848908818547435525137933177273323735280930644690200761239703835703594920256046159845784559740128367940960710248113809004494033401563455588974577290978462405067312633682602345732862996894908125212539166267945760548072986310995164744958797400042205081400326129507767375962216103525412711937839502359395828902396374447141258950644061160164941162173830275699300567066764002086301292056858746585249426405389080465090661531857357233326910700597923530048463853981550875047741386552869077262479484377622152496956258779954895650750868477791989062156126177219429293177793256846719596933350482092878837624620507804271769982272649697482576636423223701114010800866850537712106511526603433601121858127901300994868438163386341980429027324771901215251676733099838467773583610590055442608870508291450781769043360492431823228508135901140927999879711768969714215493014289045425662313115341528700013705996118352331104158348335885374748298233750723663900410520432933550520677565450416349594870419213476443746514869771425753050650497001477511005574758259410762817798535267713877087637638836184014828328819932017137819870680059170197639077404745978550734468580899817804932705995935297463842046669079294730407175541445109498131422151843243547657421587874428349470441616499302246858022604765145004633926987844692762939292574166558130308234002207472278735562045691603815965989690091374898985759285859729015773114618977033211984811116261440739942534152848622037604723115917425525923922173724000700055106606495595642798509315398958696877042891631537804632941773513003186985915344730693108977180219805486447452968782706305658867476492453180721390590993976626160481750707255206913595157892576191286636550098236729337609115049096255996891817016327681340049567219551123193615102862396571522284723882435145167462276078838549904496396031982292683784468699422184269034333769158983501283408219372940103016823131502773799393884519171018847395685080675919465755276190861447002276305972239767690101504342973640478194719724244512917593197865522932255533423245476937223762551054309273973191614349671901493074226494826945711268875081263015814476492333180982447344706870010400445497822401916152135863302750568510637173592626963347272994953512230748449090200208417213814511444693352183668373341590994555701714152648332637320609469748478313688727480197332206966746438789779565860513557430365909275809697113541153381015015173468822004362651995303217473157341013944358467383744520978094209140219155592577590888324612722232380800738306862889535677802412490280015712759215790131169700407251732102963828105694722782247996743979479769560801615395043191685472317616802878141042600348817251252961084644986147530248983764809217107212433428202172596208688636327802766114746682635069008265267954282344256300056643090735608670923135861024252583669710366042967990982722583844993052647945006599563500712917804681288400805147863774686313253783049313748024712901622923273515125115115382293073404031726348230428709417327477258438924938974750207915799477489667148316210341634534594206638407516005029663390568857573300282317911172258742553518147996768617120339018460502044168629578080974950368318424493747336762327538423675167572641103871791518760332015578350013843811824271195310892775397827774949245256773616910020802320725026234566666683534508432744740554873524364524947411922548699599457167994293393505956048066497786376117463107203922266617601499137180336856562655723638828428289562497505942536611839709900479490174981033380621156696525857994830267667828386736143370351874802958021495476135584363998702906081508135156804414199369614190458997096576808741623481144209816182292835518000086119914174003451930915182940459735202108851632202901846744945236947201462087478003017642037406035857156958967901976660870920257430674033104495853293587928154247059374395599927183657140672759714261295815759863478808667384639530555559592789012421816795581823805147170697825284669213565173514874721304634913832740578696521314249287928906695535150468325186013416807095627128078327652939750981928355346724784211104243884641752085765967584846033618568062724232357067070411052183284657171463310022094395278452755472784743722202447556057451189732292052359664146600938747778432689909681284114233032460188190125878288941089621946904234956100996177746758882381614326726090769184690941630878890998141096068936018130506528611527059335842606238292068742351432018685703247895337966642224612001082200224805036771556865464070371776095422922805834312666059662942330279599706098202243303755750937837313072275267970114713596138799260449471812473204118423049421629479331746767576543629402144583481046646794105356269886820597206748189409393665357629727585853976630471961142225181646041922809061254421067550939077110123638980291080468016383658571044007089968213759676117526641771086402552643447184036638801466852483367467207560809373320089725329038180450494216664866126374213701538855026359367624702595982315861464466785985844954045644556368931781250035286263925718421396176497417762329673045532337382995951644419800458585938687023010240768513278506064592426837781968803272853972590905467754799668584891252484751001549138784269121099322338461183723945328410289330909557559748126563152261773114775544251473259491368168337355424089163796102205846801955285704683562321707440586083979073005740229352603458986550197674716229280338109276743156977577078993880565446236289803694935905041265779585683482348182815188984028337799113358019612463572638062107503469669365353053208728847607350119420468491401850047753711767691666128762955859625232279090958554166806090713355023711460145246802897171603426627351320593514365428709883605280445930808002884946417494285727799952466152661226324393356829123908665526711425173163800245089379566100444906107329948294243623585862253525779120474683513679360268035708212945408502155468967206621616879080265629672952718762595021547896651889455796798510426556056515274835740735568010224503978471086298262427600328727705702238404501006734315667708893600580612179423207470162270147209855221065504547823425870159836530237957832333512611534327211404039630567162973074155515936792181432546456755482892315901572569064362060408754603158788513023062804621878307203966037377834900946224186325397203445151903459111979205645649313864732416602484106316043017461586152486074665865282379409776701991269614400142509187288726433159876614797667680252961467387070968112170610188926060568364736330975377740115136762507099307981160299692965077917442121319971634182192070574556605799482259319810160562715709695449376116380582124095915208097719861608126850048801819365421689681370285639143573058810513438526793086932788467634019915490711364674746897058597805392210737554663499306722521007174619391581284418800114359324793885885124275387411733620360729982759377696607853067329946261126077900107752243502977651339132174174826311194233076092802736863086723571770542967422291782656616284495467428539798140122720094663677145887043994052633077288818918558628810063403315582466942684173744482463389782762341915027820826514276100799949566870251361425563549958349765624210747684815178524938975828842877822345943963925283050052608353593843798103837534694145099748137200923634728113532096304978760091540686480445565506059577516619625448175740974761240969764182371927512025951669252074535979757899968369057184859380748066664278903012499352778118916855195910095944381525645957578727186210811068606164250187526105670213662673614533344700648167751735623198221280297892027340296064457710194057079445342730348497164015902575453360411792396054669384044096457845242320750144435680111712981806556817439554355431478883655523018463522853200829940418138729855623451420751130532216830826633862539622282510007667827954731399614878543525918243101003785409637490882661659286288399745058924994413118117013421652630692766392885631401200744891071857013824164875898934148235414610696176773328531211413452840986130828645901568525354146240971435186908073348699637123913230926183954496353361065669311964713791558708595445426450903846951190476839447010400126411707784905480551064850428111319615026619152435766405108725784179768727045066351087462216300614934934162915869979912451359931818335153050032368330332108147391289770404960508413819047987937693882553184413336768932776762353004908935642721634574138057507762810341974571835955542841642081233011267385311791708915252573689458871475930550952070953064807360533447852890433777222433412478799215071757409380206374010131718414291345083907932599496959330128579885059060479315897658309747281458214696658388593133417467726499340736884965414394569011481791011333599958288980487104891666667094788633605896190821012922190244651724172474419237860075495146094761744590540697875849666025141097234510917710863911415906012959949944020057868536586821945844663488243095243544574908341137159864243047859542815733237176165515783728692230111870808130403642117866203468902052259323631327722968957319126791625590845169341608557419515894613097340934583495298811105516993793420874708767048530470264652017356977386267328101514096064013789581339373628001613623706950557163759155011885417731861375740661267149228494854183082556841560898348364178078091022891174968840573483697766213930080523626297384245931172960773910528023878031621162569403530800487983925010464784783345307803759818540568288947426446358212776709750099210810654374152662639122713512415760497624118614242046800047687366528463785170383866591779812640266402823157979372163198027547289309593327464697586221124460489723293999027708013774948659383486556647947629455647805310118006216161436318561239993846739045209038440538338133492761390914793125195525202892770180668542901177584533984473419854887875938156795662312551769550948345514209745577546829592544351335912756993712842684833425564010746052965066394200963639929169908878493129370013297771160144123884733082643817013469430116256046904935156817513281612556866822896992329509051786194953524565266414666272919325161530916953847845311370002591386784253045667028711821568239510627727360928251917170731298288141995175959698891401237955571519285660792302382995828679084777648888655840587825025247767360548044918320148685647753898573318983600950285168732812474943899961600366353394279082492441386510445373519465032427409934545816884511554458515147125018387509909591444983775427003910382414459945944915873290362235210147161630588784089639853500515133471001738273382388105114008174622526441796910688909244901362840166392795983242960496959496963965635669907626566949565765699950071121048235628547468917526915797287602150423701627735558679766511424194008321479609815497026677370375110367911523144459713230700241406087012415284925289014636526142161458662328332736652117464873705161429233126735632459387192987611971403080812944908099487708411614132497325291701645285770892079565793845419399812453443734582774166916971228302315987876287118217468295247691856070695358064137328144744123856149393965458865507669728316084580868279622426478370632742249331618420381938725121415665515618620132046977809456237049629068707807269954741093874285230870275511687618285405444315698789118890762392482429323093999729085196831714117987323301410168411849610045378807335776684097536350569309759959308017724425869262905314897462436144858495382645490486418651650435097735532591481070768027012527308864623296037992021276394320751240009002950287490156166886665590374010928576280090711569632808340253979894482766162914218230781633521237348511113364590822252029107915849853059180513671777501711107588506512269196266272398567776188954063366732917333523945300653027918783543297237037199623321164757774627324942663546239239698346391181248619364982330375010312393645092931159602564800135333791977448378387669649941511367787197183256036871994638321822504903894051106373938838370505153035857456866650289971019139988712026223943726881858812308516743195957366908741976065857821847063617027069777120994508111372116744232290217435573763818076834739269494578338086802478571038975104291727948586201094602868986229334106966728072288250474656172166607115075225352928097656883969701757622957730342899042650591329965377353658686910205852101011400028000200127034568411023753810973858528104339828296249753593810746622324158670081608956989313867118759671398156923721329865142490563564677453120812944478038310841356393913981190533511486962259097331877426722144042226742894661746908879605326098436936747446424572027737011986091559455922397904265294779813918342700764916244504144601605027967707976887263904114462035902961013912502707933253827052633338671526530679587569001588468964807547511437471376332394763019460142535686692192728766895222469252913662408689142177475116264272335109145431121595567614920928742136983914588223373065113759166096675676954808910014102413101333266819252830475359409184847047110715645944918043891393936088882903676244744096228388079887101645283469765635272738101135216450984148721064691306761900753208467759459400103402306144207301407685398415485105404007959300525737823501497075480059633141373253289164188546941723052010581232267100515377506021079698001748547473475323487261639898747980553661466385877812351622212258568616798834190309641345238124880836071286369373582052066955386079461972286199075812933060879152559893340896496374066700461737451199790414724154401369537687405382861221550782258785014472058736342464402942758330114365808011683683553654148053132172475863658377957053548934494414403500055832677570493200634048395753745083657383144458115640473809307361949631812530816219294336823578561110239591583872090586051585730811658549385994278174148201653691933634711150211192967644115933401800812780477727107435330177510567446440082192364205112348331426744406146265651246297059017247445412536534567043101177214800150376155959535104309281412785631431652893867857492093554921489058224691176003138743063174796028386974235098579395494789295373169502623255596284783408037837410700435549362637942510683615449915674936104263372227055351167188866321107968271765800515796999687216678349617827756149830172795947888592540243629108693106728547367832755309949564878380542629066012555945523618372284368235104455192735584747605990950251134018798927033335546062254651084344688888264928627944485828414265758160407533477732640982214988344133531706627029426225069317122271352731946005991714464513386762282736375593131063012912388250158367891364473350413531847546585545306819587497429309093087143968866723766165668543663074802069585895695833113136656514597288081417945776137980630764733956143241215275929457710813789738963736584730690206195011184272172138738107750224528698564530636986824536209560975410596736977226473742041304859541358365209242744061423187926452797533728125836011328581127157350388605562132895227787938527466581637458359369022010186983248133981097858678261357091662320204826336959624849642974935929357783507071954515514202848325893059087031802840026418048304152964731933458193086873980576135945957484055776847766187273532273933596512245157273119724476965770060091945487407698342541421594018948999339754682532319682655982963719982563207332651958124266450287256383156890387229730886139373221646320616191798459886273874168939313750908711689631031791335937249195518328311848224113801468834896144164585158967922637080988139720909493875591758376321090684097869005322316632759627951308525721815730300055867241407168409977759263562977417666597122675918733860169853788399600622933904910276525419905846884023199451005126473768423638018015517997870393665484882150404555838036550508853755792948467253871060352989902428240221830189295998992308256158981775502194736929904464308282059855346760022888904432807369507627948144911869653367387967407961067313730350218017698507047913720468803815547435838545557487768692977508148245276146257088049073567152112636929561303848380170356287061979715985121312756240662223743214207706047880524607544246186571356070572965324876291757211203192350457579857346913097648801877290866701865255941629581854312624749271976028086429060825463042069351081773549962752433120759312134323131636862634138321961247138498869441459246714440758346109420168167902562751583235746319914500884346716390463842643950438340708443269291543747110841109773339719875596852204424233736954610043155674882823877591348905302880136083929752843924985586951588870717388102099826738504581106102749390546092916495707493347089699953050338429264591223966678033570664495823858638462471704526300727989541515054844865527311382129996198950281686293233122972614550134502943170510597358001588157323183142834094392467569430091696725763032743902606651521611651530613448122618568106692705575198183784279199582806710753535056485017296767727446558062205018276621181623799192094562008646925625734866526913253795449755956808032469586918162137025352524649118792742006816959791473369911554980472117282443561097631817479357503687576823949822002838881263070979211446902494405826081099155776333491214925111969065261893091312283821266789610760213012373391324276872221315064397610282584097719923431459941677388412538972470679779813042348646388901631268301938624055111379750966210682529195004337336608901681696360462062670327723059540120849537466379212184292169852271338505050750441479115120156092060351912376566112277153584988399419167998099120378833863337794913996123970064198088567588210644816153049243856437377160235404504211789429275093059874653018049885580289670737176797544328134456906800396722303385811136016508743991996610221723938291371725585924964145030635275443885277005357422741468834737723192033798241376200092440333974700683938881748964280241665392059908686409136943690094421341006403822483496084609856404102747294425754859995834121687895859540043703094991870744506755519357088263104982097192435419704367768778890373431133075329870687439267408962495396889751650401325391759949168934395286264264042743284755847828967796475730962152226557905491383786245430855265841165820484442864729273737023918744491019914109146076137626162984736041483408070680614370447284623982382894909680273136297561081091918370455255889012952008623789016607111743012073382917296346824908236376538239944692150236942253918307895922707987176166471902743538762941456380122206619777898726319950381094630105493532570650149501445068142399481009486567308507392652621999326038871480041597722582165641739401197048771778406037880490986461703746971198371789673248306976317477105087382723701883656732610277309621442501015908088314545881868151654266922018553005504730623650446132535345748315934384695808714028473259017455707631178323787308821518252777943798007171588505742761903728518546162326690278763861343546347089428065482583628447143775778576186828309113774984178334548057094264832711385290010708116880149741715906578363469883023484307972488808435045496538066486236357780121107979493296251557942012785952767321421731585931243393791546887513047435338912460295469312751937240273617211062435470301418470969415257378611917346482823383211714957035496736877213906924776410416847105809638016366435312465303878493975808210460666432358955886278256477043908869668481824107695606067994015480469360895908588720057280437979263757668194181484840179627694430066238014420940746779050725016142140860403420341234646043614222414460967103966161270780336570260575481085802781738841694331491535183162320679794007532258114423708792594687743820409672256980120852615475066490423933395781792098266668665898716142562701980609557056519952282415046098831541677403081323136732485916585931895506255042940858151648575098698362810837495398236297634871199545973338515724841291373935084387123828346391852072756662052988648305972812541204690124434133794806003353719240391333460587636862142054692719684270380444211203376888348392605849053314943982331295248920185769289356593892435139650813259650865969945334006096053132568740621644545563480041100783814408657484030974892998180165295905827888559063978251009450824089953995305194669633797184485667361100813382978045348506944551933813155609333965111537914569653441848574180025243206131232162924764263451378128462502931615538868188279901307240796745540378220175013511138947063910306228184470906208408280263098896233312454011114110772067440641083549626932509537134311022385619373244204809228621905308275138740412860543898354295436303195327068465665034541341182804916535851870395518029035671405172680833402624617079234454585292293917430500122880939326181963875067053716959206081005532752148964258790683723363812190453023323347749973035489355694590398247515149605221342985904557079441515661630436864529735408506632989120441738344401617639730812962512733479861644084404892717080372960250074117723392297608760944096611863784553303552541888505245118659404276645799158675235853288825167642876966008865431912921351957409322389501486375702663887930647846880021635354705266160973218409957891569982112006827323770459031518068023759848547486833916360633866664042061341822504430421650815172019104435852025211013695517280741186925988813226050710928160331232598634401334592243868185391897053821793372879328199141866727344504141190969557401338301512861769052733002716093478952893760896583737346379107656641838922993263630466123521318945492434472320797757857087532487688254564505590561932025571776537630809419309458858175485496465599716893264055693288760988546007934380061304291028177545083470237930050695590344062328803435453535730165635930401361603498396841187592023232287407274886048028545313057403505513011278378353771050123690459342271268385163794914386545886338238339816414117645189413522325139393782470385292365265896475771775494634420424646414743094921953514523973431722723761549899287775164222092157365453622485517325179696818195776420361885520055793661342327943137998437675016388058082367959187531253143167812006661935674077738651360017949010174739976542758175959201100920914224381479267470110286332702571447167713874109621425490799669545005864442765459016174278760138366515085887959933027777828544021604598169882221782180255436161631224057159475718000385964645885449604356964905263825484628085652218778795374804545390966616712604416661789253293360995368957563636675625134325344991907779192605191389984376061841885788744229811117225670099109893018232494724975017508382557388242627164038111824934264850715128652289329551555064902275701942236832197516344446622480218540860839091948847556731623923170263507646994511994684235865529796647051519520440032038088830557524877168000931669459634647323061240977671676608700265879166126248208615287796987341093004152884693468188824504069721291513223552178348765564456144202172253178719388789645847765510493827091358940304979496411904794388438783098828959425581216131635708080517478279892933839454002332670558702448013422416756963692214241787258402437638136465259166951892019242394487743070828472265203724098351394469630884151696288649248107934474288926750314368882159024061753084520781989180054044420513958940819949677161784360734673899375596744316189464011793586316571071987738475191398526901097597045135355668603312158458718307670981463205527261999522107667539861421466752381792795635057960183730084182689740060383137077738765084212079050083247628766528027350836623343069044649552673198403577042702847229239491448255499242573979216987664534080540762919960458269871412868508683446391285884303165603974147721388337894004891125907522527039562324240373207349397367295293063411711457737375682381913394134376214377688838143967941900558302105174840275108174291399759808303554171593141048397374950519506522884665690868930723445521862715254969138688856502519815755868594353720746179485020246066569327883600057979563850148006763690679687057763629015176170691754996854668303058874849182632486371287718485212007337136310398865562332714517027984359854183678424752123074307860567372338744268399435618106447426079863239028802118272277458985195327893518789518725716534059357350100000236681301102538961039952463576720777214910135096646605858770022745644947110620664750391751192271122963316115531265151508658135431410411162274189381954411250439067814522683573521066043910318440881897058400030659979974674253058430397305074447249639488818764953840299188583157469732246407332440115121202956483057635227240726691271948751124255063423265572856114750590431774731958749581270451701539216690109742361765675080599243813709265538651874241468142796686849897656499170549131245598392074024739514858528857935848309986544474116617168993506735048706181872497099457117026490322638888256544608969470878114484190394155494797969835190929779485308063893119536471929874513895261010966227468337236664874188787907111487933357114936897990097970184071623075622264104839773916659125861086237941080946853759247568524904368635873344945855464270390488450177253977788278021607124772591554430288748889871285793491214557816273609478651222795650187478861246603782511793867032006518403570271308553255936856234421085484967364338122872347605567821121693096749333386684926249559082148034339396685428948132482195170612101057643244867599182732962544653356433861928423452838485666378361047247357450364706094340831531957310270969753090605040038162616110786318427215316651950163115455042972856583756798837288034310323301536219584296007636984397694464785453736885444994469908909785621563002118345777204055881009758469404689860617511279328944561094245956733711210425277774111534293791380106248603697956207987977216450167012009428774013976248636693096140313143448950539503269621640705291825061364026624753024671812945775707071120207948641000282806780407244798080755019712238330709021143241711147992554935864606521187936297083964409197002300758721238928779281132652224391916838506233423746978545983473656350525119033948826343774450154911625957095641731347164018072415482301828804099717597361374817850623292728305088768696585862063406460104557970755689376223230018185578909801563572814385316500349469481515776276497641029838443739632766607199905489681979441715660143061427354156844438115700031783979967185115150357421919097427057060367431908083419168478252652647598011076324494947891198889248052861817395461097988504338098495335808940901724020075585897646814645495689232177891813627028281092194931584822260529428062535969415998866103076360078407285823260121899521454550278123935658055474271747671105664291099848975714679633015867648255087647863428567496667159562778293146281851504211086734417691495294434785691236274542264995246830100048347316651061596385398928216520603079665852743166849524887459086467314345357928158023376246131526026135534125736944451304214140715849297403048144757990090903467597098284827414735421891472340060629939773390927564706563115252111021035564363843980005741134264197386137777884705578175404838635871190543337333739702827746225011396075376777798075964434165231016847839411667974099643640719260091164927664410570060573291084637524289154866270066339239960084773055991075507871716256176618454554971553357219163265184675577523700499529703174429393818866179498730705162912156754895641076257703044000761832469138808392912526893966886659294262751308125643644419282148295022116342394931234132564263907881403589971871827047495040265651128576862327496345660093959863037797782771711404120300670836444556203487866744801309863795813713130629928287545360712322703641900030204144254759110562344188371213369263294799659869299929609895821562018937536302425577073197695409522025230287935601152600586758203072699362235139479783868155190981418472807183441516581959308852276115161864907632656313308473175452158770227385890958342268895127567923979403078038892690979276194221652852049305605734337367501833850116896040429797355753621619879061497543124531267700453130533442320623501782725032415084073000106857579404404345784963983721730350108210985636563576318158283586722898157497715322544270370453613901200799616534903787855771822053406258917644428001668435654237553770390335483873024099475151160126294911582397731088736106692713364396210806723123239255785566460511927544589972172929776061774308896348469027531206503455461996691898642892513304228278392834971852936943219371174577822735218302107217007481488012695473253245634966684042041614215683947778094389558136561049675905025070833688119085463479011006058002650321870988801748002149844641601600991676751187744355843561165099085343882958993161179373146276859035352384415685216362377619378903039149624986253825204880864194536475655930708545086231753854161133690502601502378641941119151980465064078379400541143102777994972985719388243843663543525161770945658430071551724880272232874739446173887985828732794008485106904237250197177136685040912613789628714759533933604201289199348242804358809844970195675084131839850235277666607545510400411833601003352089871421682435844647669793545899095267658211850040945371840133171480551948591203757528768709000902270182346014147210368208877595944794335938925691791672559945918340430450701442942085619266223046760924612516035699399830278467511792577697776474104734953095263773468533226129690000758841944381162508206007269005126234259560549931011385475890869573794170644664727845056048815185841860034453807708906939137049986164895439838670460918079494490396977207759195039715101663545000577968239707226919396425324198900850100606755031212094872345363955221713499210125210490366957388116127158265728990666834413278477419168214692354860141630691771830131642544150697149029623862961695536992587020729700653326468846959339405764243984560160421271687393078598750081242944099017650175266595687769377568035755311597260603749907017245894161786552900933659420623303666862015954513361374664463396494533973561619008024970751713602266847912386794009922780865271269384948792879978298905766685321617678263490806659667795574542654316179722589982529334601038039931175768206009084576880579216334769640441601201475648490429203739870217479651268916682010624668499106661294952838471703431633851464713703853026189634620729969891837363612982782993205957822481011276757386148742609819826504028043368042382752218394482551118001928749013214903533156846192323917381142672567401670024595445409571814367815130038641363858692006808579672840682742384562960745892237598699870421349645413917955733903230183698374196077575191867192088330099518318262079006391160785784545576917292833502182883392812510886455176303247493861671138899387310940952588831582828424384775533715060210954938508131895688527649043168516818280159426713459002148138791618270708898438900866591340452044250201479894601594896374820565368289832961223484972655377822768754608044687655324863935731669570852577536696350837293201312156481266924699122681596786308640549276498595074379256679140899684378595685114187735429719639060182844239043086001829469287797244585771996233331506018331911596722959399011236745944504651573122006478600989407501085706717485700561064423406242213391008235884709204301112576733366541731388646179330735088509007537071215514347988890059984889103051232109754116765196484172143128136662725807086344483496073619595538271358613254385493116664650424504047900587308328806918929891983054633493428956977209606090473375755233670586885321914456326161179966212262170802477990992465230770258442230445529902675454009110802389660953639235847673987799906508910119355773596668964607678094208650011160854908677066385570882783122123181889173797016348036403760082074052950943384169264862136755629201159215303917015251430989316517655947232234077030372451756630152821359097359526584793762246298287709859076907137346621054434219604215269894573242743251066130480272553034022291253865815679753830727533352789577708476633369418721759621828558719349364482585704210828991928015001126890967355439531068108304072341585076106395981088683593744472827915685182577575363354963322711554505047839323197552253464114529953668961183372312643135015530236238927115249028039657178807376074594439817555528405194706978698898989970356628347063567535382315051862103926176068891219456867969492674819444761522342897493534541995364185478079016853538880114056946462836848653068328391443599220844336312092443004107391516187684402293415140852947689332801891034305166331739922081259870029028344125962327468730307073922645114478209589042595134190548324596981709582368525829271078856294654100346776073328576323243005526685638854162322467147889968224136340864246099471250871918288077117186025706013906489195030344419430850696921306899654592977709701072891925582747294509763081004691743031633725030128629318994403981828022847733109328697620337663514435848150199593542658566713714200093802083185265077001509964823153843219761802252429330821899995673943698653290825676969613303325627389363732190866576930788043722442931900848418991442787561890942357122643572264204962230782511501005241887971661736293847395440449389311504706232893997915756567656585168857372862582666213030906968569930560558746343392674273447604384501730147384592985805354006486737324491892281935155388841527804900814685567657442781570352547222938159881857058640819030818573074566784609811664783267139683692027077045123716258507948088573358762451664363261517375831356199451787542257135427488632486214297064235946404041003444372959446444002719687297019323937381538512043620128007121518676218162352559356211183049139002987212102708470714287287064322147471773858950274449121250852282532038939813267251094394237438366053953475233449491511970436640496677360221334445987419688120168936795882056408413434535068138672790960663669104852398925730867054873820363179345470053818206198975949402558431791630168528392578064633890863863182902398284889696582976277446229707852538844206166115081035020222676437071290802879155396726627509762660504178304525409918036985970386846166656383117529186885297599692972490793310636390575673130483730491810494759764512944860419716347153824724831344028919795625140369860684170878816346170009284917992959536592472641110521340833670329648561729768067550978731607415935296386641785811107112191523287475926632112187574108219203823269530539451313508928188274801358400071528298444205471230690692404838368326992383358224759485426487765028493701296779653632471336494185499618888938599791264328910109627892349688634764471688591252283431526853770582798085568321823127268211098939138254224976132320940199006530765800745878392273418311262284741239314334409559553458799447100924559484245209619528804617212964775809267424539310390192998626581220729771096521753496275264523435174995133499701341779339322266023091833299309967733165762198141042892540186012926148112665139664600951804770761335227463109805370673171391384143699096543032115840617730138817942690081728015189353022134535752081326466976469672429452635805876342614871284349561881851676468108452181700957492603150737837801920313817494186096680480387184410223774418646117288255434373872274815775831667669000103922220028781433533926063816036113853141209175477751252527656722652906151407621523463943630806287725777419709506898251240117616546267406991896960579813807332535366858357071541902498751278553366867353978498531753735905151345466060330298333339944188922715682648100511749139927043906953535005139584276234537686178643561109397113989959349203626178465720445315358353553739670320160453179631305162683559027133816576904025444608886630862898773301413328593686357193878473040406963015796815424479286042138835784774443213987316266349325348442958940305726193792924139386021868948401664335130863004415511389299458926048963121442800084352048887762871675033875573404138195781572647010874940361904627654161773139647496430616205958464635286856466596103869870626980590957003321388604554713189514145728417322196270232050676497853965315670127854229080682614954371132585905444280476143062404815680568081090045273947488292417174501959557275190549811691358604576065785369202196114966922052990583744748933739278446476600965994377732911267508969517095535299087544215065331022521931526499491254622090511877882635979831431888949601587002280505096996619844153783095803562666262011888879000637558304014892044495183855032333788203479539111737478849947314186850965578996412076106195335837933584226310020315222786769244408040095023813748895258159184038684585536123085097838520470070845008570982655523162872971606186298990983968579172739869696480312218817296713758516432012604166366626353274242761341148161685269792508506768628364723916934965199977712711096796134613011455255688595823432451310168685003959303112376140698904704491327887837664466996143142109035872539687720321025052315623263715589630367604763101219544178508331202388154669666832713616911981588088858818821044559885076116967904955654148724499455911310524832360194600148213220866450763225531895782103740674474379125878314192681979608583707804645095486482658951645828113272593584256164207607446377006519005822179255595799321133340203206059890685149583159494758215504735811966582441869486996766004461816324936622057535360590224685131714887736162866982770969680900783220943528835338116022074885206561755552203262312163777390344952564589992390112687365590118708759815889648212845826003254222357545334455316748184179254200440605747229576359941348894038610535768691657988171600874671001823336611673933384825774091017833855892478165628985091422909641451747895974781661158339443423498960429313402734353860719136155373167246854989644946384512667090711037831987833148541808677040138545470450000111139026991414278576163533788031797371761779491555731287152440186120508859285129059700507481868452944220646607892925457626513751594201700612285894455965506269877391262422750202491308644638643196923615214352185050828730606796640721021798499752522651316311680144433531142172019851147236723053792085156587077233458852996687707117036379717851622773090259653936704902517328248521727667346104608483109795045826888133934531168589946163373247500729862726603647454413141876673515027121323452851601776659368887041997677545004236245366050400007067761595338394786014974695724572657158525951383809210920118530438657160650466870206700131972798555526697788418826357610238225833473679569902827226471744248970548488113624440543632961854192717363086429089317406910141849700065234813779813755338108218102350246484461073552124316893546570525321554450992858203027975057227469223284662134143796285522874651011100264470285263889090336443205100385551296189255981638129551643570513157662262328435025355467642479476059044280179957422626273254950815598001106521240855961353787166560200510799799759782289265119541486207757318023583620505129379500559953709846366029583481805171603048518312210145848861509972470914184885422837284624428740902714875054785768959734405340016701024298738043736195633377316067905731028577729323458532905583757859234336219196389292100509095669289565362089967324430973735265481569388415330143054545381778336949394017015452475669338322125319121812838769365312097570233236889811091849638941436139753607435146035204260479207322474198605176775985493872496611454723749939965443003035118216196682254600728646983850553088485564367125735598887479313197822392806257061418788279468700372167005884396050063088610166551491228854082127082083497430342863882560019704057099020546198728157176401639382541099772226342889431485323266474589715770432960365354915556092212262123043919704071442525330123479047256819578207874334858847808008677406979261939865815730449640254187100914343032081785173134372790427957485907175663253900090128029180479180852401188779431140023480538062830651169515070004285605050281834618912757008575359843861167752788704807437595763067472501111682815500224419917604356930882057163309043436029815336103809536425952647085635313432013168927861480107246459467480077132889923895810965757471666863048199807207697313329950781332453162450128121228293225926032168867827278985764850688814510285973882472284372812005075794510417491175045834618602078996604001372319807010610602864717735670164930506514430853535843051785104687451352615047886885464767592694578038544076906267344867394723121146823044005347135383695786368038116967765606159654074429042385611189738153451768804977694596457327343546742704204571572179955925487241563195360765877799936444040783275260158862245592954122006650637229002016588021971023238949104127759838667032985822812094386673269693369515019914206994617523659799633014406142316207450562311968164971531526424686992304409127636602039118119362439975248184149188942257821648434193490979825923754703677084016831242159796034649595139119175343580955325954774029144890061756021931781622535143189019003795759097966137789207787619514369395440451961252128411063819074710653137359871296752223329814042334767079548213335425391013042864875543993276857294601521967994905191985949461938287318049870735201769255112056818906772292003854936453395545630403654065844730942458216585400911336317913537368700941206346183903376237276323765891343156144946406406619972985865054943085684699210216312769634346807309740350541524122359178244281168243336179077195624453357321708775132920558657180328150893098226147642313923272021720659446987381806110575431761801319337065467287975677537100548838068248521456341543972232597629060128725786378384107587778598399005395023670240990529350130746311381096331200445574245161198910167437879173547818415268904696368380346250401557202349110622870721321808821682895830059526323647274829420238324289769887105955963644137820425963824451107038112234972184437952533817634381658901910305986711735645051719553233486612727428488388664853449782515324867423068106778312839829515284918591280301313915193733677689323058332645225285203387371963890978856813812045066180478014678200303842511324403198746661924159855361459835587104453965318874620640405026561455345304104150294809735592285172416659498574005615554094663283110180418037620689931288304277031439598090797638458825880541465225797931251692452215011499719886092360457656339875044049165813154981230669654248786974101936887466456181460066188990184156317327951917720311624354261602451680002490901636519211565169405076740407087146280763169888421419377532402598180041595791782815980529596554990642505557580268925082727485914973288301421091059638854475800978689755055687147096789731350407803694885128057812945185810334443395538034355831418985327224316720950133909763587572657970624363654032893294986805146866540176765926660998483662766805356313445339630535802376366030824171560997827270394673223414251442878589989304737787426103120296094027220026835384539931234816874466980351653570683536953131001396120426861074744442008396246155636501407299036438574057877867007458115782616490595360817637567292691027044186830776495470287939165684532370530863504374933715068618501216104427811123942270137239599269432183893313508113514301016260395189786559712147975901960277529742265748472428923724870377653580310657575041005647765963699147916337007956193808394351169282283902777859907883377745206491426237314407373471239051210273017968823173721917650927287248226501080980512284427302930826034825893852917571688395241028908950745247143952779945760410848814852745744460264600398162845152768395912387021019720660373967201016270433700400962845027916189631332201532642413491122074982304240302036618600616366111788369409839824827190279941489120419880485213248320284985840524878327920371082007146808476098612964343433908132555985658739980545308645449046815844391838288639563624460896159581344605209525429799411615602449094691151650390630798468448847709514633174735621185688270504323981715841026427560734522376169185948706048203964234956380160028165236404744182602240325216374628759175016276231603865412264666265646743014637119257120272101579360859246689888506899519904951033745236085881744556825797154035065855020967653109718126594349194812923943744070471626425370461110428160147018253547961785667632676050149914903888528085396456721235759766172296832590677271390830792247605901300497025521841244712206691141058902775118587384340341393610878503919258783446939954704292312670930765656640696265156797051371675820860022875955316977420261866870232627655999942813732719148094796950282166507026789377476702408808521935527562410213283379361805583947850187704546300253212518281973215885577889312367057840237464338920512986164874351811594743712891873932786721870564411870644511525771848199593330923548580442962387566506894484578752496571120115979070704880216719505964849356349732258772144776968429411064880059964568110120607534244009561914919914416932314520815722340684639516418342832263727955092594555647157541621271331458717352278402446874352851557426395273131253285568901877282665848674133387120587383493689365383939107592815530290473996959714814687566420781709152983488769762480788520874163652979870807133144630312647690037662397799779785257975427285529704031904937351838623247711032050043607485177656450386026161998754830075944007131349070297885071914146955259314125077715402020576150768788727127022299838675041205301375859011826514224422102669553757301866098363996430435822749292831738806595798814067246145969766831783513295197581020440174413897861590385712194683662892993917670927677375538662752325416719787173749453006778287904333511540158999203077882525195314946125766901425543445980708383154578971855682149492928813999265895341851733870926450347693492351319514762297788094617754552499993231328097126969637336726352989769007437700097646898216840565620556395926566477621758685523581009138814863081197107192298815123149019399183452208604575310226840589087263746130172324934774864334608320760227815327234763604658835975863806201620336575506469316017860967107039928610251827189215535055007334989746151237663359091191707303600223257516217047726240706290486474633112991422582710099266268517867973349656470907779560958895362606428393840997943571002951459619771244436413460859363936141618388814600093946214839321632643371957040101643004067722839532529864748530600744083805543126548364597151626487010851820381355204670236307756734410642517985140514584922656501465263689379037108446096847912283123796777754259005737966681147551749374212511066504546034080994160413669305465011879357878837075886505289657754547501328803917457256744741705315337677671171694245235992380628914447834591653413775798687300413100139402511905322282706219874706500736256390042161349250117777149234414496674535878461923169265116833446575401100312880508498819152796663278763309767072461880486172524646243062960292821509426113852736508684663700680372718096722621280850788440971020808336458551771987546147352885342074374447324219274318909754161917742363630824380958095180603515813054119505713320967883173382612746438654342262563655561621360923689081991663779582691786240186690560968949036973696588044095136816622131812583863010151295849146762616644630042428984564159824358664326241795365926500472205790705813864455258136103094648639240370177194653300702642042313959290354928771862152430355134389053040074856714415234305147820481236059287202161944569011802899920931197091038569311465684852623200418942913470402512312700327089667076525189232095402847736450428460694055747826337693860580058452111167940353478920214388795380764360048248457236203594370220471838110823946515224443939856949915710412417580010144365285928179115210121536225002590922660768295064214745909092459183034247259510310829920846710502000190100392225970319129241269908932810778971175862029353230855693148254058908895585906663932930933983672711976675912505281382293880895088669106327363460452469582232174617828634435189489409134289724140860089565101892057818585662817865365344889011956502468945867217943610864842372939320302207608810399995133741132482981707354095582141256484729573239212066279069585921084876997060865785000206443231851068488416736371892319628712116591915065660758292981508516944790466971540104916904396358897630880699558217310943214905943335825513843124300850997716854877938516525710953571047190055011139843271952677532890999133678995832284196468129522581269521218959774383535762382449462193260856213142573621812817196261243925838221598020936863308142165978074006196847284420439727834602608484625000492111701938004297054816909038620171571790581290343562680813487137333189061506438085800129904233446760800407145615478757625293205696147408822430268057143400456831709511625628367887400223297610606908524985810446305349438024582051831448857778459415831466213191351301622856850546994183603436719429368246068255580915231475214418170050322927714522127340938184178125076231270850342965965086463350753455757411844507583793811959774857033355391524624354831876960076305978883222748047177734060278975154691832888817057513217444392347933793327521958201999568665025659959134836153634326504176986762243515448774503697098075958198983621619680767888309478693384531834112014087536559930705723049010918548557809324334131886553297744916101589852916355287700261718041374237916099483897626342431269776952038362527466749950727146878493716127431791014765581477183142684009312154329104450828325777532614278133851975907167056212412486595734732793601891649125643186638565348471413629883755965185032356710004141468450894851975459832492385872334055246941841403053239474617274052402644392894918148841675421399800471351545748814058594132394151467420788569914321692820639031487614574364678875246822608697263912141199520212396382611916015858392817750830936363342785066371359313079571526847046453698844313981535299089497623708530797128930229335605431885422764893206378256279924421432489433569837081418715875089619256006272400706047064199153707321155279170655857360471544592814705613578626525347709325574860615117061667496314920199597962307479820039801786445404166434262784228590676106164831533115449549301677721141160498243964235449699425563550848434555443596116540543268641344600259652991366068026821318411453062131168491328217845439473686983920574547488470287594847392489572446233894988264706868375119506395694870197350980196896261263717360501152020858331649673197158343876927178183012992003665753998045453665598939238601148539527116891565393371472893347877099423226112186889473089202701575898934106560271761238860498330579654627117254986080557410115985883491446409904582119573006655328170098714569960649738292946545159629730283108271493413544144369284000749777392750684885118046904762405296441645233031736281804694017659861887011203042740059746653346034178402973893685688722929139121261385487878411933168708469140590900134334159786066814439805330875242964929035868525235962414808524031865080659994606646957986637043958881927105473356449330438417563704849577434445668019922503361291292548269269788087183420232251531813990522733887874665431710463619011950136672664368725352207176574144232832585038111190865081877882864125799960713909972022587344081067831519313627900673740039473036971269499414256710714898696296202576996921952892352729785228784415636450228442535483939372535410102600194011634062570490881721905108156617441980291950587527601006780716626443602077174808331795848664568622487088454492893355304354496323967956935133174853948669928790787458193173132651092672331640477397026461761016452114667743663442138120058049506711190738180833663036429623622322518142887870834440415446201634106546504364380388216556543241181246639949801418088045654730674234173751413723876652941016056681550053537562505805114536971840608628466745610360590463307148785658158747775262630843904888182411613095695560558841772387840830939009984744388362140300656495826453185819469878006258274839187617949178482846214979556856199670153399245922013038768240520652076548183582161957141017114056976703011018453086282494910141845978620523743583238229925314020219450078331200336790402505657860492117004825651433495564032378050127205729516951536590724788316260029968838242114256298188479699078528336362906599725161395540486102343478986650279628274066027658320020159957535027086743976326697240012653413177757883238846858712401748569819364111295252347303387562283532331170780998693949326333170714546623510879498126405280952968998702565910311168239667845925744998865358657809181502109999778962547908237097185496051738342641594957380042629286766984916618213405885334395005809765087726160508629382674215766071150515839721022566426160135263862551664449457062991401641021088012841809535480059162694173657306542446198348494799201368042126365409144176741922919022251117296717149352327931679877541216692589504263449874299033512744984534252896706432251606180928449043274379930624821186687814293319500476627562981273035402833987813002339545193272141949681111377948116111320491363707043263964635217954894079683625497161504337418311761907735032977711235567410479821067545848550273749437498784013693992830124244648806733837049862280527999911156705255912056803057356212593514094780985629957058085521986437559308961600901487070032063698486457695039439776228919920188853634023528625343801598508298159853626538793159465848353848875087709710213106551481657578756328080370001697483118985165190433196856738346200883235044634432840606039159391322586968044098998900113669469215094110788861491891502409049767879610836085334226663601392445537235922973327073234139069647757917178902730773173568509004084005153555319008017805591248877739244732081459466277697758137751479055012597874718317919172243601782306739917989605368366782091574018762359019555348776923082797706925411547225865250836931320164059656577671039244830825951359369015657799074293388971645132912591524614541134993972690382412914422974258096951658487136635437756340848968546170414884446018968577863090582333018753210676399809253431696672374572779092287909955367775817729665319857908998164953175330628799600078576765952355051027889547222865285805076580244022057049293734358784866222072673369599871251381315104358478881168720943988054539381201613447029483140624351249882375702135260001486020197492188803201757842405105877272555001535348913813268120310694595980262431296535763557027541179572118364478517472089572072340663740488478321177877906068103201639301433592704770897045069353338754631945762010781825895988019825527758389831615146456545257210003554578522969274454880877596260420926473363824694561203424195324518321411423830462793777224259160300233034754716585550326021857414001537091298473695671474970298553508589577797267514851771949792972181218469386928795432498454770947904392517224426194344305099957171223936970927070578240768538965926741659597534502091917408314247014525183458402198159180878615010045246430844914990344459123569897104122868032637624992988504007857445132935514829749732866298599282124522090847946430888690293312494206083361434426070213771599218430988138429741229885199724188371877464013840256540788450714165870253973049155471984359786603175761238841752281296846788910623117092170681374355586729057400027589314664022490871493296195051252934413736691272624264880420302966500569294670728728609043888235918441688937336546838487698202921586865212248835908478921320826170966011417882969932569203292041339143342515661268305350350100810618531996388422227721964495129096005417644946902602195236116745858786935152740156138264437603575731866366507671704901095256386001780448887248966919251474783133452584224776007974525370184815200278378654116655390764226866373544390961876528630750020167518060387802551613817927017484654326938167948811289613802998455852003746429128055888180464521789759215863425267740172248617447297489190382192486884614603910778117236109400830686420592021401072057955015311859737181079929258478179395598693275611679116705883739326772552673237974661844767577452958133894391984697048495548508483036147477407639897794150985955258517385856000866141591414374509502607426185944049655261671409929787660886569538491811040986532944419781988519752998317797308707582922140379767094681751510429212655133847065464738648647254642729438625664067689835662119180165042653446946633231192120743714401660086355126110678439278071662684526590707975382417389758755358068277248280177647910522906939142577595963058917334828807049761486622754230268653446744236153628336986899075517233304519180130484130159929197769265709756373339379775944162281157568057864176176001731099232451384885645673836146584817099962648780273810530271673221212932325988889258994683698728281599115762407955268603441738776300863010314009578531767632657408430005546164416168057959350026011726782687219742513211915186509672764645984360403805208132681575476934969492518749726786318175931500517695647221022180185396654815231045043315215391420826710896465902244967504801676892527732134150466266751623317536865813748522000842237978223121076195162811065792114152792629655483909658371405753359171241513952016722793038026432689003716359641579789667319768615365371292531619553101710635046511989296390851043310621587715549115841751030055268195688830751029997217875784284018504292391852174521282002946784094089281565663306121247601253767719927646321172430778806556560212080777758334025839590619801273573029497321077977252023302712088995661223885952181340624205766837062857787040921545190250891107159633802527387429064905532949352567578093457618938468928691830852499820525303457227462869804493167854496947278741059504089112262339578456195478139691222293379420715293808376638960395375016352451424839258249854017134500478958439635684156495237494020602892183029635918222424255550092989904063833240578824350850015509150683726491642830267302060207486006775112442751965743184621386760386113500128223096126528183291869877174387899568953769947322805666681429613363125099915954630889719254922901424956739294943243388601367727864284129318644152034845038062062398052732118536045538659267268729175437233277388178177521616107797441912850489493330517324288933685437719586978165999203927532448606130408070874865978642905107378181391263319238770128573545575548955224548155677431481333191410841087894407729554297388206885247291198862593956520158883400292212864976870263211473955684083632031168190430320492589398231848487654610923207810082112308281152832269731752454470356827326292339492448879752597951744814836236320045407933548000080881687156749967668523585835875958337544196266916543060459497746488066066780871661802893286081260863459639730056347239129509147596731451313993826750728951027932237965082076304283517738835168408963484286532581213715282448911556951490491914732742513786538297904159686622427441604527008562742452306491739233340242018434909419454093896701120484901132646118848846274909276552361192192663542142726309456913613581509322419213114360811449476740548088744967274016851612786270787941820320724772637170195980919490167262873295129884082146509044764030450677330253565091145694141718145202128196098037632268808220362024006828818910364355984060758798950949831422535123123033157858723545238818348967807459652743642744342429861187713074607964970647507389374204298142801681113273190880613485645167520771901800505881006720833362210579263329206772655928658980992430806806315697763715807433507946537830180678714845301056612437115471719910134348681908310335711912960913168898093988194709589391405944386390732055877604375798203914190802772439105914362291853489456997130538410816837410641729025787199679125259582970333536709220599804781763199468986321410291162530162238426894697229337078654182724541271075348153421773460846768524237373558541697985413935267605621239134840454004343336008155228561029606458492466482910512491874618633295464963590511174351817687567763447833475116144641585878780405772841844556335399390327340917373492900679002291048818256074749819629544267281018247257061656090095992991491492473310347975190715648017623761023646393433831098067709708576604789285185367253142326512981894387913938965777162613038639121078001625607922876530212757356104914137938446547795366348377149394393298996076562604519656995261359401179206543765488344861275558141137260362538000369220738616394809436300767764331038022441415306933945000770086615022219818315587675958691961951212189065778105948971378252066713234615765638805486560049707468881568034891797952455890865549741504968104615037251701982548543912642706895470362370108124494500590634886499491188806748836359533099574133930613028287907438600421949178384188381130101736080321870132002818985043670291952871588589775392239694279411190559478696314392448255676264966673771577059749560569159003355944215245747124246636688065646111523884569676125704594576358980335982828764666605171195533064168534299798002480377105203400087145600892341748061427157620097737636879084495082857850475583242083252648193828931378812663761441077653856833608375188131200170821830675472356968915729816235225485559077017215607947826753907356545682847084560933587913026931211756308887479640956884947438635041153725121524301416386489196923831670294396663993659741762025917805304823421025739113837373001170427487014497045003019803640248335122982957800603350307542429558016388032710422335409572102888391435709400285832932449359515624015141267382520779780531705031789761616788103825261182098168178305679690938190202849161790158328848952332476508224135228593805401649299447465661728473009150094110893411591845339301664112202793767388212827532788356124752029258115833477654865015413306353089840987381344772311074371998048279111003665349637752733396047510648079130493511145623003480706432501631575115175036242198061133235640734965049699815696707864625405504129079138456519702056070104561872529280926226344909798046304757723681038699135475456430214971033248852583071848734053050514344527601743692859359449053118968089087370914113558334199531519338055308231986607822387996394484695908906664156666800721249709803912614276482490401186451555016655931735407943002149948285091133427173473743949116102201560943552088784158203984732612120839569650133582439538561461059899497928043407461827411574199422001899996666048880766857257741885394812396940659943714334557224734109698820023880123145655211331079299447774817485054892490120777853038366515277021299923792829031279421182131656069837150967650847458123961137673020813332522144481821977344947758672501149361187826138108725690149592154410587831739528687876544844005101632718988591164608769650342793269965494966225352972898233068410182684298939729262723733020658155608692640653343903635986146353619296899390388987594757102325337159263838571714730928384413289360583305332966976068108940204451844266658590656309705787761721651155825386252635132063323475796238341013759410819422211619777861680104449092994680114277924868448020290528260916147798608821700511688208218423560967370969435123604543612716708373609044091560571403059345462443337588705342965190076061968402069949437038393254002229943459280635897760406513574937225161448315068831056241557872741525040223183534566464647506421979938851612700760835048154179060935208501574268577727470739310966992152153953575173121068763524015450893566721585352331826757864119205897883077561297624472098417921401463661746360811495799059733784027525190850341898141426881604219574081853333878118357483638281656642555740168386704816716231522602657333552594936255322942374375536619108422262714502326802841994849751146046945417643683388541133797624773277512059439523153756653744937798191147361886254681930919037068051870368346314046696519793363654507863922123087694807876670596112053848821137101964072021730254123212264932122776887763806253187570180142549127434207767253763878147246877238483844855433447615562192547555904631421897469524220577470850164133993168625457927028459736873213099625115545586211238321391670274631174746260962654401574362141130722312616680607008042173379472973590524705768914610625535063825077098592329958618135023058246346058320132668177900431472557632300642157882133550364553562176862967114890620986363717413662697448192513518224879954287672591361147026034110641996002472057074486259468750342903314788869171820491762304519003527237673918878089353588287902381971557721450228558603216025947454175014444911574792845950098193744778268424025559677944514265658181851758785865359570212451418521197760633148250523763859784043630506872791682753040973242108884582519874589686411439919163019930842622832808125352071122625216005175658951307564610453794553315662164213585686595776226080543719255225040037237355681658771021558060155414651667471334896883305593212254811487925756812249808013874848359132759629720569872800621835587711664503190744455053442924951295052679698010304532823397654507814319071671230621322696760483281725054355135564642440250314207574624581190950047943332156394804198523516381163525896899888209495632201811354652105034448132736884698166019498632456440530459597636348444629953230264341957226644587622296110515412355808760593281707063279216561333087017468843961120070648243844820687321614695818806081302705957278810719431264187743009362710112848306540376231805257843188241141370485543933874975771925186320234304562559943489765868447330473609485936154531452608942977607178450646330897759147999974463321749594812230146652688437106208250763152936909799553728377060874813131370702999189127613717836360803459164082705120274782128209233529912755122575424454266455573508667234899847093157224540615312695066568679732235886918656216028660725566019151653992261896565746691587111592959878349415438202513166835987993950319371233335982647423393911681154177584011045264738909719606058131487758589793072901484794799318557163938868785519740973210972281949170953124874102252567923778237969085627966868974548756890577083857903373575612692060117841509818017193472392016004125834709367579363251013318802875239294129298990561922587839770930963152708561205623401001613671232929239989345256432048917981534581836442893367382646779316400981417179509489027793151645169037248401534859035383831480078682024561536355179976977275001721626142614317402505639293581443335113539666593820835324042373256996066201885271050319948917847397207707846538074701199777707289091534245315745817792472585383568574826738184522320753330516052363943197390572811194220513987385706893353328380438487726000150477615354380348200948206425081212660183651740137500407816757038443723967162244687171550824665597980886926338524509346507051047972989513439134818109562911062656849482607589470124463692044843009334718873126580527052492479663099529651671367871283988816910288015934429630222589771867496590530724480748250323238832061560175569716659703942651155840271263778644107433407343807664081486240656854856590705356171454503020389127161934263361720382879188286580872854715686270315134667041277757839372651190633586746784594307137256688277690273015527883624514400440969234885930930863898672320605751985322506831476273897649463695385463976411066259130208842049592974645730205229600154348273567369728124851711239406837857423901310205746341140847008793472644636974357437776502150188619490231655677989524972252665553963684865902047611000681697663320602861673786043795681587877647572661201978289797302426502945239348131825873868745822280208541525490865891779978548912730737667505494491627946885155207570659091686356582818431587739042570151312990531272148937415408555515665648546327473923514431393374391051864454409283417305185279477995341490496267374133832484656367424611080146454163129523322822268235759958417987616691143481735208043900413569749840860731443257399924757997191007588639424900747696335876452625158584920720177408004920209893235637647413662075503324377117430487292060996937481774161655083079194641614290613404321595965704388842029448254175039452106766754470304223954282008172142141346877140754093966313061894569241448975561508338651448077523897548589094251372966962864309643315640279301325502247830009421461603667126566448779575270058114830204450732319169782724473444131489355173980889263147183229545104989188839055372349571766684080601795237960730200568035401209711912927513262682072285163141743420743699513148177549143920521095475583061854857457875633593898117302575116294078150482521973513689198314241898051659511882085246157009960434765904101719777151654235700461632680056707631518713587810039892006543784660397962975149194707501184804449930989173442368094943206454880973806548666013090141025914696047500980637045949997719401812387988781744508905483245118347246733247259940449578738036058111959752293530351857163682689969063247162634621141422031783128471460835525092454282184867254439709140744297813300192811267634884347692917855981615913889285458764954252940848248490920844240920631139980020372851944750215188362155336470380352951138167571295177598254251155760031381115040723178638926882790482963765147569294628743763336692717913115280387287558287941396408625550699167257177439613832270733871769072250421288829607419940439067915659419842186070059791757990281289978701139850209218758471395678711278846638735669137476053329096603376258516668071913285197447065370322067071187197437002449194713318218497537979047381767826322930292458488313827652035679106366702995912560654255161328650973880069360332302815422390269165554642932768867343293908951210192360959369119667170472914863285313162983093139684189768357114232069057638735849697205466832735656653105373732514838448243264998036204878302822615924936823877356700676383179600573713247019473549062443096777055197807655571128776072782254022254576738844942467256633010699284238964036850442533605047344010253731952290143425788229821022647478617360572331462586555589494507344330116881596003252224461588532784359264114785988791450475876159347889952960542530653271166926295716950068288368714527366571130452608619275837745797897458673402980573949745718538196647365667095999939087727902984256988743873494487171113633990296390194029363313650756381207536609743046248396296039764434348362588635331080158719850554631322285586798270878770946685708242079768670230414754206545629114016643601942562226997345777365988182601059427134965510744029005562972521318604719488315601181637788627605608208100817780171984820381002607504445350237931253562665241409005989564017489113977858374602970268259221279863876566012783382192816785113070799687504443300471274699249683070110766673804530908418861313426851674444617897112358017414939094856522221341401116980004225948258423870869727089714038428401947075350202030640964569365631876660774106538655249899891706688630050032079217445561617740664619606561266884461724095953774343533946846954264228847663582374802211373293790398774172636616671679408028875301502260237856352809411204403682354647422727882099366715265313771150236028428543557673558536435632656616432109454339897598072454431009529911901834839493233976450185989196473515678860344745923989209552291232355783055991532716594932785555730725190761946534705238342810944859283385184174427993377700644098159730548299557733270394860858983614436360687251966886088123045410142960546232499467491646333324910310313992496504123647873764611679801956395788259781748068770654761305509377380281659009812546788990651317466925605791735532804411948122290514881071142015183379921920069127913747987626448141829653413178561034723406418196707587257938947302306805570353560609504809500588647605069715219126483861827817424618810570425892996945443374901130815260814967251686795915456075339507369505359716364444618994028807813893071912913365055887357785708289053898838810458180265846479810484209816747227242937700098847826395260040980709195968490532728332530597059323322389543044142231481934365949666426218147067620819437543849379651980460146093268614377637569398095947600924492695336744083869820971823162801092450636324748185087522936014937728353506919067757519143309808169306851118098033168060883879655645805353284924752637920437440055943567862327729378161213597986733474397962447109047312311399246786989342763292693167854532174962241153186137021028964357205275791535811931857621389460589063240868578670542322232278047668620649093518024486284762000660959059939006415185985779209780465260126490265890384871680291232506050494240761217239321743390676589646810738205112679408351290286650130576396273328820770506796293356048112999861392728351442236009140186122095315665958895964446394373860180931492809741288439907124127829646556732924909180055562693824548652597795011945559674382069590078482702256360379753705359770229990393400449691483499380213908551699646647040634885981029230002268330332212928978360897926548607734087955335177049967570167027233364051166663953027073496065284368433189864548128680547776471574788973913374168188939586469782362877611724765787885085042354364383731696605890936592432219622334142312448321167469483480245349193449289578225096461887661838789374349158352028984140229541173955082759013998059331012138332004673829637498170380222250824228096261818758663598676225966120697982547543928206391998875703129984830868588553178458574581099619243248626289640877947480193420462413732648474549043430480283071288462216680327889337156350970308301525361422020479259814489619542845327200676477068481103772747070382175049170844537924654372682849884399629534684800810094015786202406319166403522717543674917667467316639242962711269046253714081684846502164265064771332329452406005593765079595946199163268459702550352022158011631923833389743198973444435740628923362351462383492913455036226618136524097711237945399988590946906770501085930053564624825535436841553948720267391164981034759406112881503121760934123260413402412683020198491195279462317038977306675549443916334394111063666309148422309162094758388133890262084782960101816585745290188322111729209729962713042970023269965176797028079716714655650209869216750786669865382414588094668433838466954126522300087226658709439149638623271279254921749584349919202876545506572731032499873208850078289045741279923031520727525133688319712892217936701290262314748685411473366979423268475596577859584993365632113564937420619795910389464381563275128654402961034625354221125013613248418346469352965745407014248553072080117000251670460251471970579450131634793401433346725323557375984655916761923006423730798201030579517049071273971995728832827973717132498066415979986967743597699507101527717300172421426010233981520868863502587898906603674938667086403273590404710777031367751155029719637637241154436730359608970071051006330373317959253795795268139732851692160643978292518471966992260254087249045921041557812085501763251059484036540499261426113548001778206232064221145808040595840487452957795350302677114995341864119195794943452181982908949206339447862013322484452424759326820512305355481050512340294458638751610446381540278519849450208315457325384203448491307799484451988741856835792718201393678307378173472306516848488015480924732339252339063652965723232512486150846971613573241855627110777713210791936128785594311818945714409666538266062667324484523094772293857927977299580363030267489903214761121668490566022427260883201660571059907187689126120376991045169152733357615328445672776178324625301907080434075656713198486804317388756988623956717330854722037797719883392316823774826617570764411548552850525356069134675529889440119618849312808333243035668895994735027137923092925000844872898799825515439977099738407651915413887699681224201543593579304847671451266311227580281116966174100666733492345715562264951073973849177944717826025689815011763836043459912894804126924652519125717697567560182129236511696677427904904667422136661712274537811743795816768421740345536854199248984802517967590131459476835585353356099852460363406948930248903307370810402648971790229958579161648965392361829166186317792654367401993753460796503022792101883207532915476336320226354798922812484801273231219293130455354943511722367666927186258076676786143756004345379686674312288376150881801920523560549936849139264720652463439923917754715626831859963154377049934220734490442659212015501524969645863662645836709138962819419722633024346728207275904528417434365747485811855670431560497625675164000813971277626073968534946626643800639011225917357288120055088257005211423525759705515634047933350465420286064856997719925529024219804128378129588815733326121819570781623007465310377635413361646974895968863729913298142578523092519409868081136815567877752828603151697284145892558969616672658908312174228316723553094432958989385720235201851089307036000017431178396295923342424643133527511925959987404901721407905575819621345221107879063738735454122128714198202432074873112009808094679493974593623293483960180496964846315723443055119174508255462383482800935075472808010034845140355967486499387513427424604143125798993368392807224907655407585263982804650588282978835763053784832455989405870544506093552689573818833482105258258252573799043186629364442299226213041045268158746757171619628933821359006585824869216217131262466751067032616239467524068639666103607238514680023262552649110449269767152394841679682713513991648466893378950601902338386895184152931518740537704367417672145285730327830971068886234182108753518175275321071411858993935541406058164496651163903452063541433835073871092561188845822003346548673570795552348159363699639871320537940786085136798137930143529125139056340312314532565989224896460021575998148339268557912633453739003995205638185661886542691527698380591071087850259632401024755258587998321177201769341662010613608121214001654858993874921039385472793045191640551691803109780917329884048467872156021237219632669584583945536130126327518210768586998258950976339730913051126925784902698771036265654243804625215044136191558141046219214504883522031242144988235008002682239685950034161170385151031575115342301536451582564919919117932532666270835226446218130656196987481345941733128297709272696787161363598808718990307955056237037131328682949993605481453813666194784846400790749512334725728690954301366319610618051953037022040111106464924728976238373817366991734265186137517294586193059649017547705023259759940075822233769304950537309822747447052704905066770624185937195671115771056660772893482196736597279031191597120113607297610227363655448391713747988673239241578640735666545520070442358164577762009724189724659612532108959939256051948907186294388642053781012287666105838439895917437936916211620115462959626156312390521398463797787102103528661422385879030017670602586794149379228584064545349712619636342953297494664812287178035187261859164979901583966887343974297211764462420454111672049030111626561144533180984729716061356931386620874212356077356884044932551782470552363067580890192966082519704283582551921196470011714609573896903210634244185054842737910172726798159178919211633645307415336691972357674561988274314099694217793757217769497017956474994827104641846632327101439670838309356178661748119977686372111039525910765197192023750865366058790134000780166679502675663135715704557409755416116143205446003048460392441646578869842142870863207392195159084460426015094417426029730924971487673515132092516608275855817574180559883102140711088516576987372277643106519360090334560970054858208544441849373009003460933268566744336709780245565971195744002520043819907714239023197881479507972987851457702286416948865769066560157823508077128511053567564431439690605329627845211992283614358846203697538634276045109502249300977074912368443352942393722048066523321087855195916886176563968676213428758102192402152773239053594300813680014894273193606327219903640580928877723109817836576567572804455151822886620113679762766756714947644349647549854520361163656738150833092673010115660172784599605663243151071328842830460856225274950476681236228425905460628893603542242154350572930197032682305636924037275263313025472135903006891697811706184844859576872192285235554037713141982479942076973378888169367623871155342247731373179690964067873677971453748781364076942947710643534587314239218490226992621969307852366902100958875400457926512018292882029705876527381683664629724030690561624850042476998564355851110725395129048721843515492320901854232268220621123420924406551074104673513651846378415646368856685844352979586794446269864340223390741202600901730528058779653339506002955656044330480764152268806530609975759270076904604765636534210843154268071944435677916905560848934832665619844592103793593064756654069181835002972603477272562314121111753728363518042685587325193462216339911057314321285120839551267390735073400666809090811095894366185558962652603005305882817543187722932347601504702442561845360214644473123764530759173477083789858807129407722898368722442405316332165607030780470205189909173906792813443825274379458177822264377206685272522093576382585871187556486724647077220777994351967388585736228769582806269977392417218237624895666596187585425527138569272985136072945229430763117083696051467601464287875051579199371956169511896019326538992790084147727999070691304493368141076087808990866049830855319832312206317832403884738816162439572272790945891047986362092203454517841961256120681556141229629601638304179461759334693502825915743089584929583748935978896488496218799729431822531742565490439612623355304483295357930385090630187302759334353580979181503092736703286738110354869298048844034695089765957491400731217983021736900454713416400014199927875495952497683351510525214392299602851437739625653164124447625828248520465885455886621008198769314585494607427595419272538447784826705549806211982239941735818731762862275004871554758909114494045085125338814736678030757905008568576836442836068359638782636964759632992157879456532956830740276153077784850154230279633634360862291947319391842041022623114944956611207073133361928245106958653952675703021471829456884000156895535139468789101395984203609813129313562729805769996981205630984818561587539742902015216356049657470139591996551247509800712634821864820041047269908013343559865060335145125846586269688024651585655591861098532756397794491505511992567190136567717338801051896157341597819667188373922940468101965236741373962734313538337148721585988879963967480935769445432572450768164086096286394481534620650474689909120321052894639070112018907082850083399964371517412672096163806894575910645902404178308366315856120796914487687052440607029802257041548776625769085665442786876144308785993920781263626393862402013026985815998884188648136749824291812367842012034011329261970451806605598460176491764077888834223888484835530937494047688629641383278596737951551987177167462974115662883411418643795280840894091418495224378301097231434313157339527105832279308647202318868513612853437422840908288906522961220328490728120811237177188109351505281371061412887203995010548941847410783684336314234224220412368084250254876709312961206895945344180221333117252173400404276571665068543132262256557109867644772116794297999829619672456273638981397956656337526060944957927964851203643315613740199468518101418505173764348673106528922484555538980744260378618305065165509271352109318048004810866108363655621872217742117739419467149855274136925280931070443796991134957152919827241327742691905568813652108234011891704250112826470216474395104485663052993730244991784264220737106243169301801124495691392000585684407602030840100170893460065944095565193434742559336451386455398092464016709037527572765696367099210272123519437819519325051369526286489199897741062710111545173711386066495132212193615438653679570692419968943076421054615702860557369680543787723444645412205912503387598248609370479677725038580371491810786193002485915187465589192274344514835630089420149341527674404998047678580794975804297920310018721215966859849158048590358062738855479099701141373862240462344280776785689422645733258309845910083101156522232381731557653934253575227751344749277752355029065415595041514944062616463722806020842964120571519136877821813174183972282175330040617215080935565003128424971472739852947517489891378636037176926676310578472633291065104397907966872735342792887585517539081910213146727583190107254636587604875597545347952092741623253291819241964477786350800239724124367998766518614638555806004937221225333552531035077747322663089053180392691550850142005754370044348425245686176207627384322006575660006099474049643586062204565451759304272261299548626614348951028059537126813072206029888495755465914382519421638279270396543928810393670131753756835716809881360321717116826513037704745891669127242836403027314236001771643439433544555420145914508679021127583115079323421898972128963034358673323124263070881767929754548884453448315151441306054619069972909094960428493890397875326952329586739772416350723218002727890295765523364830289515711981595449037296238214002380414173790275921868334697867968962137640599713463571477716842218643733277720407300229427392821169275722287534824078497008651097714536085928417466238724256622405517251234534741501405960556661562452258639093481868040434287737936860283265559749543723556376466140075479495737978303220560108415083701067696300956909591962830566789339320952709159854797976982036617345044574686699730103747618674645338226738095779961407418003389946882696139162778808981092675000106262280246306620322898047847266329233893542898900613928711478883304055012818875079452230675571014455563067180345558721447875085561915473552101795888015682162179143666141734274407389906584970872615086577003311429742169456194526710931681538455600093985475981715805056276064444213250099230201138053087092620617411663568001188945900067762730857647955401589258449799914670254191799757431815527083997327335221412979098558606149078565288194436088311197326178861234056823204327495585288793425907792450556763592431770537396261428071955143757658281801615766303397453922804630040101395876700294003063140115137061960932533116553777225673065217348767047490905042744573805845566626880933212153243132392576703057694762300110475491009608164495035979606060397519681686904452877373131046810575396800000420288508371937154783864626153803865389954778953548624516460318325935775125107841051305047789277918416018579917417218048980285227191454251006309392238375761773787800847441330019327267661825690952083225364258867207054580094722536088508166127642381221045486852006196217211553580658392292230386579264174636660524524521117272500438379085526766465191969917856453047616116383201092127845712786663564033261636702430273946199883538425601250999095977851999597930862343393599700908148594402010909791568677336780863849307246731383496918107915771676426746371689119060190897561261126204009357059838024430356645690996537033741977360323198572997237326858768685410433648188598913102542794449616868618680207514136633838636034422950672567329857666017718688183617138897730425007350968379736470318615195837881716737100899396807200811115266861787603357694750326034220572920303057218078666575627131330646596910414777432017567868826165976845222713102821866493693539387093545840977100337278822234703573159346522712293492222026049251878409830044123407978240814511803952794084609241189848346142561285181676105406466672879905031679737222596557867845274895976886707209262344187419793613942365872698258155533283270402060752253024905521200336336171155486905216227112477985609810968043728295646694907591654155543376696026557653837728726555028941029703452285532332251011768913301925111641690886744733539235532210124383105854137982619391124266067907608091329783375098694458180538057674286913715855893118031913344533430788037853096747426996015000237036894547429448384185384167425701181126563688425857766523705495298543978567280078063895306854194174904966331652720094551663383248528921147744868143026114329892484692816797116122005911969198186817569789647925627170068094514855437556140442851373123842018978036907794128248013268577888843398694602496307490934795226121231423116877455394346869228911999278216072967616107101304789305801760871910709804843614684363759084110136024356523843746870983279178737930408703926530984363844460015772911445959580904696932190570877769561451798809073068625942238732287382664566845030969022176552890158431210492435138350054937112879077518283396178275400626113715434512997037248744813040584718801066663576656270559339687138022326742465644708600479787623877994310256200159630908761616102389521636025904831805038571904456843274628762645179964530040174607899724820633004652530344044536776289731011486625460523570425636722636164432071071865106717213046437123777805797096464747589218807518518886107584041692183621649402928887098522332033635787051293748438845455276686604881872309481149307107731631388722553292977120779542858807454827339666496541822003693254158192412532627038566757481550264814078758533221246412448347471679638854938985058492636959786466661176778256881166291108749223977397888747032188713072729947280667469163147258340066982396675196454502475082793715690024636334578159892733785134048431628325215832880402401437422357244435344006091187107557991033214293416276299524699521136213436007248952242038964384519343670533903544347835162386139186480594609772707953077909923880262896936836867730718740590655033380139214934991257503322034023942846687588884851451675131476542440605384185275173286478733948676200166049499547576071882967023805047173786728233178368728678776841750336064236930026676567660126033643993367857271033508919344178170005003609030910091389974656772349040893529268980660021143091176220671480708998687153462827084871423359066377037481029599362813864136634807084516849348883958869519961754892363177290948461104706284953929770982146329823759495215211796018523425304618650468397390888507451899254296517296799496617240796701500541227356973059009200121070082946695368102393182434836830430158861508321890399852463612305075114604793050010727655056930266842160401654287448286973111895168102304230516158206115510414374700326989766140770559096717411299785127501600824575309218969009413001591074201104392477103418107408223027387400566125638037470084288228187681336556225611875828332158312063771558136299634096044723643588463869773628746951921626738080705384123553473731840469649396553002636715980629414704039144339703912386020174633416076203103772906528734658659456316568756690587329540667582169481884825009572870982269266810050510067828573808585632432769529054221497804276978196856675001954964205226675578798901436068451991177909496830542051927232935744791826303183340384299904075928397035340973164028585544195990462641986254542533682632239674343908054563858358371935003125499940421180833657705418879766230184479243391486309342202795534613810047560838245590840311041313006937952301768643818355188988487274495124830294288069325232097012725138194843159387855461218380325553566535249058739346833705639931517695586267285851781203154607406999516736328267084764600349321654246982599036809831508408868715252187931951253347923651561125879284108737281838685492339193554168884834805950185576954051682078564951471433925736916526916684805147130170903591200211322578224179328842878683502921799640995117383149325264859025316231219646498094265814475129978724346058710883529910867989606395175847075707049249297916300261913870660045382416195954691750128227206369292892640501940792692004573502144671109965654104474091145488791721458209619362171514349845402328600082883161861215190380877402807646591217689758951917541693765013790189484914981290588353371026951722631196234036302964746552553277190868316794698395277529811572519114352113924618256083132234275541352478396107828506832632086849830562562669680177819681419965460495128198242447750620165497817171009329434308612792464361897808574117946444914272707318990011720316751495332587392965295274100450959548471526671983425177344647746010945205532525813805376686823099044256054176690511762061691617355263638687417132110549821173416681254497029420261289695887796486424438787907773208436037163951997609084290877876045147732298652677170780774897943030272196430327689809953021624831248966558515974063205113904203795895636231528631467999526106582312339165218316689927953248936419459229801392771498573405329265349495251091607346251895570935179702327701547583375976276451397812264278184900539109757746625995423340040549831103957521800021498587312946174839107211104757568577336914697168222509169236998034419858023195430403848276432740973515738421930945574263810279229285642310732614716419746148004970116726112255882356815940983662717467259648844795349840428196073182187370359415395663009900454825018822935536830323518123870147089939702265250317305229640276210421568223036004243676401948498931591864845810681581948369556752041976736922437636824783413355943302026805829838955613327137276339327519872849111916884976934674562673436050315237101224573417288009058998449652237782604820470668527925738996878905131843953226974500918589057691375432214281033614023116246434928505532358895208542026308471227926969774110961964000005627376292651205257172618711822408069173383106462933044024718128675674175408501087444458943464920959299695583180649021159203416283849522718694045197575838364569853849638341173241728264530854008997069185590620166236114091348948419967626343570308465068623562812669775956928766559527811073013493816419823456264926544482052449956977445407766827200188818291037894480203736948332764461196845472187586670323496618439398009442794892447891005296607066015892886214956031169098167293268756262748914951392609096447549480160254086437905065888646684889424032487382675863849740664127256695876298257498630348025029636136605456863122186903346262018644218104798834528129344959898211173720670823453876484249707158714074852169089206315051557576155416218542348271064171007125413210300379056856424640925191324673777611779004052724646147460802919700446242359070360577358128576823434570330843138390206996229060916499053476146004555461438454859927099924144881919812777855313802700473805539855943151075272901539161289459510857643917547094648623333159477100825566907951503503522401237756396774901916175442885148389751152163606335879543405444556300783673627529195492490003636489762451114456136253449772131588347164614986483560718383007378007118587173340670064705141841644670263431770370275235774919661545918848298808125508038306998497510560065947887407729655755597426573925487708356565202161488144333227829857597639618766480127008025217284201927459883405521578630338946637401647348363971738316127763969818694768058149094897187638285966598955731608872239199707706530758486383498635073325113794741800780605422275783567559155493967838935286555128078389917121674563624977055461419841919664443100779540242126168607862922734936099164373420865853434143199665958963308267685368803701934817636545319083232636676145768218493204568146042273109354580679504517258679149259577132057282267231959034708489034975393798435290250399125328755255033668651873180791960681616936722273641404815891314832784111100591178115611592888470801481595734994247842166026594587091767821240408974691269989064573026428469120155461886446006687103502345488697672711103727444571947742858566670269246655598107051316600727497735482786102631513830347589860337903103542630299480687369460052712979204977186412824526968033992789900702901172460126783880307743999079086776277902734017229852247393806505560655370739110346494475373752599254986463145434966501068146017616125184034532547315000783618179986616900262137374015468072427378979923994173565667727920076264209684695160902528519209034230229594186795079825644671416446798631952402989399206022974115679049286588621293309077634215518462373426090254387435179533394586792531439710905383046531091349324317135196790808204166909262284356042002872026202477027500891475584968325287324913142087864110724435280540243117641440473415885454851358708521210137461623946758938157401378142550857247342024016184803955784109442655910278245817307725206298353192417525791204666684431027412357521511610997981547720543728909747964197714448464771367237760073980042732673757812892229300994447475334995147328432759423909497084571334969554289864299004106148906937675669885201293504470335596956261864003837090045620480305469417835977273957372909714136362777474688605430853887875409932457382633602930938244617148153603622958901349515741504657375774434858647477073484457879996029148927265121674008533126199543818533078941879294360244568651898334676351570826111737880381519387887233799036074972653797510026824742432342149107570750951743335990371209572770759219595298510871025391910236965185604541425689359057072650275116009768146229569026466283350231362196055426149280973795170770159250604860885616421700585969081595402672868224650038078980559907650717794296628366604147188007692666599888847359903594103864671174240004776915416917220673310497064189512452603746623333563525823121409449960946573453243124138042849686075961404482970520224467269761604316358768386815343803457951038562066528436338733451567769998181950003078611574795052630864471254744700124785196826523577821617294130101707241510170794196024252185581060889874150717083860490145163028487498852705325428472285753785648749031643874073012699755876411511145103271262873615235760835041373889137799965245019256102685217109002691002014306550614363343653626751694431938341086885329628197706149053963547929618232321335655258341496435642062083282173793744663498482190735955378451920442160443504322988324064828882940477005205840724799892243124090344747216168891213068677072490950258666963072768909332486768830467056013869529641739996451242596199033667391127445155228932612192712893397205615201402042359745584767843703507004049110495497773565746712130684964934457845242305626789825847702601417514175414768959155761645245311893680258304274278361232299015664782935684977292840295631634717638911781549036015782832352814508717956408438317900263798832596402058755716962528676847271343462993486450312248586582396986562034244657179669185937586979209901937298918850465131943884445606813171094991108465910912689253104836657829329614387772415424636719910570089345435869473218825832571010278858602564674059125287775228530416985305666783603370043948083413865715198126852098880873818300937854856847007366381250745495712775190254687736572755818683863493143629189994123540825783413871792793413385234603576555065045884794778134378504499212979814187392717609683327975013248906445374056710318415832963382162805171104994382424643207063038962303555301157196603081765893909494266664955882564427901454319680977935368740728635456882717267997173486432628852984335091963289297522690032533306990646547492290859512684875756534281750812451085213871466347375711390912327849943516950494818725056723935104933145988079561481398813986876674278763352161248736203420735165862272276045282471444765442963829901577775762566789478819277862528562503817463004979030888775196227893536190555022844065925742095346679059618443700391986625582372600270594145369057191531476493048683199500521534698974497432163880883480743573521234915031349081857756365047176783008673580858154778948862963949913973599649940449594654082716214077824617957930446430451301208074306849481208705385459723017494367053279777099945307683395013158984694277566802046111521012795170665581926956191181980800727186119492756929009125755207456991134154991754977287019243383173364691345372521987227138934764546174093292714305835199782114082863145516379592511090655313502080865240145746255494069624864259456416469192247688075899725019678991547881926472794146844252835379426582099187503126024297686549448547436446630885847632809737190195263550443010750799427838983332585864119356425679608511140853424555068603398331543403634279089006187590935985425022834537185756812281828226727902504508937889347893191944463144948252551285885347741256307411541116823800129639676031255774277897226696029174633279915482707146418891054047728603403009064960184736467749615044922341706218861883417877171988771825971051760052192673980652819446795918438601401676494023097494136853138428972413643667909478784140893534103403490251027981804627196814355754441011694638989447327656104670916252434783828956811573973677712343066285496235637730695405192580585466157687763896765184680690473501524732650998885161920000985535159237384647168003309391810100045990445900873875238707767509947507669147117871739696198466039963801882704668225762016985622518084458052272592729071985631287373051433034834754450715676038464775003999198490761610878898532841071875747295524062074300073403734276384172345993210771829553730711491400754505267839949129133663180753691774948227440212917087806865399769890929142096042122094272102287781567777852653089543796295002720619877292699492850652003420334792903562744225632710794272164679118813497660131840329038475450292384713437037080030960542736517120295427279045021163591841457018008437503626951476988081270592260920703820328293551963492640148237741388780505303670844566138879399356493387282716600429364501353224567757721179597774248247065266262059678030326922875070148795887609459576327323247375655027427996776095538325084063318308260366410365297458790998992956145974891273961933173622509053784384934586271570721440895322655142202915053183232229893908845401011223728333150564207037944107289601580085480772172946125328494345366095456423004820364939669549833214600990010182392958860515114179047640410725998362811008515746000861780216712951863674382668031048110398492545582242052731921450813130149917528908784998446179881587046744094646260650180210892266260950130295131889636789817341653033680320281518673391581806477021645142396991950011192905004168969414617839714936394918681794141100344885449593816095594806631268485858276230234940606283202037720387953259404205637674420403117064021712735276886021646448524243182676828155416228537203026711433871581817702871739596105452285433601800072557900188005744323109385951968799519248329017938323456232008082748213079079026540425958563878571302747702806668334749782636457805306577828211507754654806018334449865248061907016295433268217500230437386600099783208190133343434043731207811580015455973456056507413827134917490403582887334300035150443270949395994416485792248786869166375963303813714806523152458701831404470097082642785327675317481463049132466065820774648881120261837648919165038808496884232180090324532340947209035361152693759109693558821894581001869068095502537961402686717689368964607787251119572172906001155108489497991165328893489444044558379222197008295603625269122369266007743414577291635661882132363616808980476309390115727087612581958055571343338723290855435907977670966397352420583773510012193264614851424120959516259904046330660517061423066847977156356215500261976700936558020191506045062254837662005632664033740988377721226115262480152713002281268382536949805154460030642553354677792189031141739282507147364624700910597102941014678250879280654707613433147390799163277841389181114916750223967890277008471682009740863514727926288943935510915973705580567406965849774449836483933281636881985373639245802198586463713838582991340482464362945489023993530224471649143353459338528382854508534500588321985288585570331007730486115598304970971360617956115958625750481915157160124690938353543194318035028683581139635944246817507778797767162050874599060429090858395318484544392854380951735463163032401039549672184810878497591718818454135517814387919472277770285309631532924741280797464063506420801183310257487378080907663167697096752241294162388923255067169482137516658636414659170057814100736720377166006113930012093407781812498596424589852040834418407058813865504244350079831884765403552870552482536859299714367880868470232711943530509090632923655392180680265530993916398170972453441508542136848626747933837164792104021220472405186764244021950164066435959909650873956242271376655249347928155433211978182041040887899584960040844208355760516976113836557029081754665755546144371953090377588374005735629202566734665527481079408042967938365507010283358163928487454594378282811143851035732862924675232842857156979251782474416935650540032611737227603244024964610316149459599374884168930478349345331472927263069410799266680349618154743701881998690439273830265041295443235248875018638975849236515957951851069160338077590048054830373291712651163599736279723382976621489913008867403873789272615676503708631986815788187396901883000989906510842537374243999205996838314936003710382208465218979855471448134518844689147356545739751188985628560520398768169546943947651214487941370061281651621797413514847756621948835838087625896235293430160269161917725120957290529856438088427879035423985524840103387648611921675116091257695432826074001620966524090161447104814401585184394874031105544498911195794981938978461553442888536694402835988063835786145587901407082361494184697754908698461641951106039314913057066298037908151294161921324478459125787861326876341899339085806518759429635355230586669318991757516876386969344245980461198505513639923039895162644647460139457849162022297998194072540901675679660802387001259974965055441322848135767914790903875880929253964194651946020312069307354210548667462236895548494058485233997827507610036498493371951551811596694793261578264724671619934126418700703751295783838864064647193653540505401998065950472812253158643876284571573369636152194322140833457004855770832448093805664133574687851390586093397467208866468368725007493171171037158852217922288155172714701814734145186398257066754576901416241414893189483419595956872048115905187095691498775091750753905450220607577197801631382461679932339016490739228440477392670255284311501579413276208227756333172275263196157733688423089361534267685392093738553736740188068858664498150551324266332669382219796056460020044093247900837774624468609425079906096836931345294843336322046740237737860388304129127149097234325046590787653589732056155256334343520958233902691406326879150599647946155655598271436425126397766799523308040793337453166038582027805319697166731664011163276391809411989364342935289670336259948291111315278649728658462109529756758131735594907872666782859653942572629831837593645312460639441083662861248095445771286329699425453275826505552664145878908425864330052459812815678367079837481543600733502895268884084653874378854965049210663231953058287346657800087129467447382513378615623629267335132458221403637808167127153360006020441212170715617133494377604283467879034922734953982305099630173148923714132095171612483826464151403572393494470547450916432690924378354775059315045471724499306062572770705314221211553977761148671730996755728723888834451644025667096284782258187456357745889057709361012910744684752797170511531561915604543437664157945053569424181006316644166076426124859433042478743507716138700683883235443447901816040707087828397507985170783879486346513621715724252880009979389979036757009514519696891066165178421239367414651440100564552889005797698643087961145365137639224658022649050391481977064294570307646920911958815832066245015377792058402713504805772608990624778697462682509290657655883245022447912889040075936951449616935384043934230289331884863860452744156739426823668304659203447390096170276268716479340161746574382919596627579230251172916381225417516864865418487306205119269687321608290497416422259480172869475463292190451661062460992245670027405353781462127491442763205999319192396024556130209268355104656042056811139299466379838899097742005219634394467469145690137057247504770969483177498081791452878862327121371831417786582660570126605085092193158534561721965671321956672987722747619458507052888322252866557017871231183462513692198146052291643913787689435192508599848916565803692663398677564312506444856373241769240092690999711787935955964758606956376836881994915298738895752209893938698265787702358950803379940062810992209080956889661746521510757719035717250831886251972050715866164538558565473092170737083668330376724289356705348778978231130577524961570435189304509597895621983034108332994516852145313100516145449682224752716184743859102693854842935640365901186886554752149063559980854442075486149380231784007211337969461534917489345619683016294510740753955307017284397399403726206599854910747596925430805196173121530006473612438522127306519812583879570962299234692385773447661780501178542155466542993539584387903875663892972525750325255140657832521850022480854495699920427680896347339756379738882017246904358215929048137514760167791433478462132071161232993597730784697583606242455970149703436449024198839334592286020191469968811705447684579431058178639176571444316310131652041282900358018608791285756618751034390880770845499425417019324050722754701144330644245745495614718951660748221816025139804492246547704969801768669275645350672179083402768377276506639975085464897767304087688847699343910030083178296560987026886926660799404802417653105189838557678490486921253566070514091910433080432046027364048528121958153189402875169843492585940714113971654448874805778960610185494004728972508519505183408565852223275045348152822642959307120269304528003863316983964083794347171523151559338792435968984685881853138685332662608604587303287575366840457207153796845081581690955431825191133988772596003365068893774547946194768651288300198012094579112324202851069172316669223161021083542996882147084507365889270340826174330071515860700501602044024004492980908644526145934912522771857517195869160634903542975768664756909005172744271402362545772070080298614755203101107715682308904669438116598364888379999223609087953155769861709708864121606837357208239349665281781554284549079365637188318291131452941573416794191989749420293571713412940142812074505742662963851808082205607838393024807937157333804046364732056233395666545444653063106237156313530911309524935589169498750111071720276693083051096620724441836528401627894346577349073164434824841304351157653805534249107272274605070070495255444887922011953074255630162654490663529296507610536539027641578437617700187463227555459965176333717844287559579257271752002096677605565330038053869966279221461021256069180038850688002598428124756975496056529350665848575134986264274384033530411020465811154690750256474303170680048691441642071349495991417004732765482366240331920737900889715647178814040188987652056744597651505897714746864814926511404852497069973491083356870478247214622441935662876798569119113306057210736922442377592882375489793355867175801347171385487870712779082273591983992190276311246936987291250649818617565034918097414048649386257242969204296950052239228791108605460284307702065815429159307704349572519701977911099457916305758913242675891733944522718026865804389212427353899317730936500581488071245385260439841619804461131452692048546991010428896101183808960306350263932013594700798457443586544728495993694972488999875644855512487881259250131294017665267676663867237484268829888840032030599994775755001036328089515621022510703629828793079403805288005374433939876352208849395659992446133530892082138896489608139899377370453995331646736227914119451961865761171068471271689151838660234659737689161720657458546946189956579255453441407806617553834091745615839446259339409906874347778921819361861060869235935192674218443715940871348546352175886069774959719142039027343873026937220487316761195705509494840023962073015390337210173910677531749818843012025633636451803723325513405966508045042896394908914078661818184563827358279030833159609951217909186472849978570376645953423018917349279168685583286296547539906445268353822477742559459522297076696984795504419006151801235300282378296984066095557173526771357394885477520320397824272236831870734229291848770228021069651328324245118628900531989634364749502494123258152251814064060720348468884757822369739913642313257608283280313677982462392852500783654805879656327402020012415757717398732000534763649284927452521520923183111156020386507883757591533407898524881527058481655387431680194253530618794274055868065645843053429094553903666766194593192246604220190381365897481918957569383834931423117268852801122593054914131355204655196547323275867540277715962022435316348267543954229000630836166215390289805019915471228691503768952524998124286599671699652347985782396142014404540110507613176588258115272696223239355309984255705163693854213667184090655490725388261091545183979032800938192154537293303312852274331375380903836387587641799962426025782450877206620927177656235917418729814880070998870465700110892490063081936290764781710379714217749103410855530605629511071078316652065464573901641200110505566240412565556937317373934985577167388637371888780447033050437406677575537460233369898793728216716947339435962013425759251762241197161402213597675376158530103530589674088268474205611179588093780835938496194769210811933163646254262970446816646262375779810862913541742253794730892818144239029050927235962056827426885146195176607112468814370527119665539198522642940269738629958415906383000141016157435992059984557645561423262070012172126930302230190121242202128232229481087798212661207259651218744466548769592626125077900472115777304318961438933314100328699211446752917508574702782919212592405242181929043099795536591071677028490004972893578895777023968719101678675675984721868818443121257566734430009331334909222145273825622251576565938855311468878957523233303032933964683718870560540225667222832525178893640393638432421004686667783289921087506954982329337370406629060529153127356759757833272938522083014618026402583616951539216844133559246802702539348008655913729442576847364633893233320671501209258250139102192235664503754298046093965011963434196343409142580666641397350514512264673315895640906950887494285123168300958280247767727587512356094303198083332612837599803096552306466531143357435923683840751162763037777635108472350268410239644292236586379881267277106459943771077518436867053615057237411253191262834460925740001762524002223920595861883804622202197830661390154696713404386852979499381730430606562206761018163965600393320689115434178789461870290204742913661398404438191937004283879232477344550272757876653330504029046516089547413428951853340541655581703194988066193459471995117035055708055506834240082977679994534014272223206476019458250887130527216748448377582809203387781364255922957822291892234618578293324264793648935375075609612135141820645592464908417071589853122315465751309304678885678339512891687134590652710097148827354469694761570203247058571511890307123003443151846511205172469015816670525506129749699921202729663210850141956872006842810790388166020106682535453286993595483710638366692518145163568036402345983912691770108684057210433679441064899620184966832481972712684698092163807516256989032320414765456820224347108202169200223273819746339116474431769020195581921055940968957016856541004222151228574779400976779338966704730727109027412827512063082489297974196099301391424394571205010803867110950906407759880634120930655060028418828170646067642742604508309983208037989726982678252979610070253571514389857400817263122527507989135675936602863689839079851568037426257205295554344566915103215058723681058479748519214041962054326550464497295424203060428721310350177040703952897204515865129417912563693069367797476911241048151443994351338962377380829562076693406786806203191854542156440017782796155269403404824399378240688587981434345285285437025815944663130228392055365032766032082079202000621926352350314765461120599152396731250285958684490118991104526024344297623163802589230613760981631798691578570592193236493426467076880432902975676022806378504260816299827741759980809896483326435611108637993005921926826678403889276629216168074289925658417489981029516141298910610112527773971411460946180726790223638870707640913298704490155812132656911983111611706543449104307797857861308456759172084786664662651284311751880747592258230995721512099231879726340969644507369877279930016671170161943953058698963297244919587357893484530742269576311479141838536575915202791811755690736977378039766740520700927025097044226836022007246211550810522124149141849245502702948654089164119220850480908379663471720215152940813285258123279999266312523564122211968472910440432372459871643712672922890540699582051670567411075809872289166816794251536063503628555038234662703110908240911473916275267118283382541968647032184427064463825935589747465506690876621249586685512440483024257328796277604596842174608246938184074324002676174287067006724307580712714656696213806441992371857352473987469895052731786092750569725526025030526272542214784567620359958653646003033854717229015608496435876759068300512342651978233557642226596268839303586140870878987191758515094838476539299631616390017987126053856459046020466026693210453885651405011731269748713126719685155029417235559322801595307560685050607740091566881796342997699922676981634301461239952326354362545397053862819880081173075739886797966666031177511144301647694895115652103115798177373532747390034200787339079210178323503079901006500333734604517735961777068716149955646339532499819093495939857344975659221037224090079316531866598905702522553822071967737123191925190645581918742467661577499009389593374501640342179198937949570577073883387999402037405384697591957173640536811078103439672601712316835125621654805851297047369474026197663285170433297688573020221064830404985037361352486789004832475130831036758535926291666532399966895052938876091299818271050549894081027964368153400924128490102177090348696437315868045302759623051017316104389385297762958268628669133353757180113020945129503870008291518833438758906795981906719848249884746198908693662226546031343529296219490753715486547406102813960234669973259624124900613692776680448810967373212195697698661237414075857954038119408926783887445919308873056493692518441780701938474457292313417286123270951542046729847360009393560337412773167892719726004500642495793802403515754212162273331885221055245392677272715561857548585720820488195114634199466750848120657334011597609612591225797280227520820915961064281991089401346630057689602066723380139834823639886899334551090458353949809624275946076661646425961933330440983492432132538095286393245954289448084918275707075816648166266808580223784728229824753257020250739707392716873071140151854045813722280540607249453074159008305289949802209183654766529820921120850481127780171986990934413283492368939844945287592518146514285730498950296738126955677460243212061948700915546093129622601997155487963268953392032857620600380593349192240893910247515211619570314842512255145362935995130953883460017102553046446212088876569717172271463302743738475981669316657562803406541644228296651889756250124153535176366951794508579142753535682098796532715766114492499755736275775142921526173769637902257054446680518148340939897204877902414007783320521341806980348844067773642629448835696683417833703393110067539661509392525462550843561240410674509181239223209724764656507318133957127719515164707471994361900153685205455449644733086429624079938576190147053088541715135102258932029806084965590907768013607013737006265400032586752198299536870735679938038226410571213635486757573399852425072099884108503631104717989689536650837705848599658802349882869775744035743318941756959047437750829686178743172855613065602780690207513266212611333426146442516967894353978748627650391269482482201763919192680959402431070493984486913402963673995631362991777369374978166914416650566477549380952827400137502628986588301051907276046189911539568209940835359797749799082817782263362343787052258942751600602577233748323973652100104080144497058077475835207722467260772637333284198015689559576731510893658851616158535703761488301774829073245381327617703518251508457679085378401038310665760664127845239981738942280648334104791694142296402745409260997014359115746381563739956444682054511131423949469012805241013636094514500905754701317184833774182818213583108291892611241180411351440439964289820446501749321264226900174303395877726154276514039219045606746585282692340013943525738373288102807607125441612119671308596872565146696029865416600316682262979078904903151269743036813812433226669329077742274441859126670825931975367887215092851710504390313465259160776157719928621246752536153547130170389319768531390549608553512120317991171719184667371293891851281223081781903532754565135895680780660356700484667301591253539674839794892125222926743178433400915756102621803170053388676401745142018551811831544702700314354897886663876697655444252295059216261222414237851099098119656931918031025116221520224934274138487275819174976476020296298630898526729325820951999186121036763524540064831719447028607083641568741914674262875908068396349998249936073765384277634589307931801016431566193684521927881927172792989076445700762084098303671974741422643310688344128164546288846243049645329109619510730478590116910668820819099076697790222830983834771135945535049185077620656685713126542286706940046492544164996923359470869897530472684586061150646366424602918711872841320697144583551781481946897563013705265518607291157190029603473636145652367156553610285026354957005735089934522120379582111667531994397081005220320213327769290933184994955263626349477771545258697584924634359539907108343726832436916430761677993036527826792224410536286365187471570218829639536651356226764682927347441349760376312924153290466862123768329351576524966727042535577038248124075925549908604414740543587679122580289109608825262990406334913094708307941333743878037765333208335757642480337907519186790525285452037602604748569891294224466538092914399026219093341698379483441886052438315834774792294630346659735809141707026314045724965239538645750866959496593309112789410210404086338675536548602297210288422624755007654680658766752259711188901499532418290915065788996540743874731981548643125832547184664259535112411317894027547008830274834213914945340493587153693719755852165604075483581731071538157384756898430646682143394080888865524927296931099732967804059289772495038704399975548923539160682075258087237889851067669424539829913802079942785943404992342771524791590660326750338666280383249720434367207779330009973114807530391079934927448976960668673973540688955944055187640388614935307820769321296188096399467080576305657550628190593084157020516871592329282724379137210613600887970752689468618981885984095168593076506950897454897353911288920341564455195201374158659706432939510586699032552707682994489521712209682983092050186387092810075078871089951984835646650482131275271556188005954385290334909750252070672527764847029139848007520996999519469838010748962723017801997573206904186144588524602937765140643795662838369402417567192041856993093841190887878685849410437825000883320432120476470584084625612876249020461699039501261195909708074067689292549790758520071991855755853496422617632174993978882428363388706524640353695649488937989779313192279453886061289813508924699651848492190505678401605458712278469528279055637228530838942074925917510288684001198271149222088815595420077032424828674242395302984468535615914584369692990396536294837104915872070907901163571712035191776227896973136252860102091239570629455316441527608887629951376796419293945772550378554701500000026278477204344160639197055424355091396291414461236790354826730416483055874428263915085779232488599162715038274997607982028304033445906239733301797959780182946492586867649495964500084155765435052484093429841598806431128055751643874394386129070380113152137239514946780121385879238013696525406425594138064671105407040517472407165723019186395612682381105757918238353420214037469774974089569310315450035466018166744835838467889799866599791921234123959566553116626898240132698237620479724204820758898458595932861993887301237624837457874638587103740307645442775959883360391176051052081359101003443811403082859065873219051050201293350295592548871308432721666936721084168613997397371101228829617186312071578675888056565299934161375157137001214707177831314289620632514070210934810723808664985884999237625709364668306153376983678457406183359129544928236463734741032912324037011597699539203675911646418072389055260407954845640925131422267664323808808974551971992533054601228293614478434108786241787523778957241610197632610351191460372535081311152778317758447713994009160071705846227081756739254449236979686068967482142174300558374288510001651714678959339193697757548133544392800065735025262522241050414894846471808449908443684170506813670269092834649520013752485642649512749624487772942190388753582522146809384848428776697187529980109339721474824408879547027898577247134758316752225613330927464289250527150057352275553978234831595155347599539003588017482581461849719216118078931426385367641568975844481034883265581804151092777241459098455220335444040002294547314087555724336851900431589176923276665112880861198222036798318632781726453911070731524602659745315231250949749254204328106726365110098098296580487905492755008328315434371041931226888054643176211898409357473142176389090449847327707629034067420561714329529873372861129158658304798312783067872209100500950662195233030771577832206065305420149295690018108333826918472637515108633035593479268395810354117020782996274132488332509472016875565010251387800045104239417818431630173074025272568766177484595937242015971122223440200791388483163941862316245812678918615503209932510972521903505392931849832561831784872427502419015378559115449683339875175590958100280187252447598467821498265409001173296491378271416978898736857629475925355876841239748742857307971296513364235337991671430197527260285846984390266446587557022573453596468631250214584893977139258062218282971025545363311759235776294525742153832811167847940582992173641823945830718118049654292136250749385634898038085451475292416293146213161141360527390798898376303856407689051961826873582321230069677540696703863705046507823179985312190727161329580815429835680573392139507983628360403997105526951105103779782610494600279502275136506542651988780834173541288184288421088610348065453519770932007753642556222604427408135090792392745186631160330899552614442493141852885597064359357853402312248760149531989847396766347148561680356429853281594766922324027257078726229362540858865822149104264140783586798055252643772032193726870960220709886733718885864554292008299227747912929376056461418343013418295726459948679333897022975318469712043274910394248959504150499464056479572338537421496636140766941623088067192292149891785755295916384740841221906908563740154400342736956062808338332303704192511020860650780992417111781006551049544520195251224743230777091525849425134369066065908811595476980154756358475667416235851588283362852335431178047793892187382100639659847494504660073305839952936924724624470051714427761934274451639675838430729262558596546925732125453958546837187716519740826534140170842472544439931723752932276599946481807637835192843975918736758502417855727766707804075717529343575872461175812672420166766169200463875127675521538270181841423383973628137228002818305328374793833412821059242887334734463076671174847913650403932063260654538763799117301860302533746006671479331578247106444919274430894772688182580714514213318253423072908603794558833845746527939589955279336846701072611313463192978130557777379550172003441861431667773371823712677702375993571675183703374688800079471775638200961060761098775635280603401256798453346395819638386040203725966566571097952545206467614753364806043052687175730264908239896718232572003969275075670171342207981512232782355992914740610094223569761168447181213478200766389623849570335999640055329680877115677265721440944125113248625288046807795930942951739162422828280211270065989765175286734903556873348502175346322609751275948520242092464526725725053438330959405889384270094684981023670164129984534997125117904244774187051565033296707215254074818268545311279982403366682333878051309087006774798236761583053240483493452211769589285027760604872893895404390425433230841776784919660536416213280519875032858830801967904695689653705074560282262298093621643222199776269281208760945464386728008774235220568562959792028222870458977017976877038997154516773366718400870631609585873996139102546875828905252512090222781188143252243599717579390077211267002932095205748836131611723726563954658038740771092591803125709247203799451507051280320493901775997876397177643377524413306458654625879615558851438679646436588120168821042648620025877043981099617377501665015505984250812072654994660678560686524735954910301955026007082653875592730987601186967006538727240617630428394519077308039010721474582139892909362173174672397683470369127778206844807969016610309266776785637042186206086949271106490595821904439832615146892854864454706927857876483052595846169617445462906954390066885025682119265502390515453576076975319592754428230882198793859755898397011960164482729858688441306139957259651963338881033408551941312617869338022666658499516671350619538393891079795274558977455294899087936310696360210705010084680273259106056567019671215838803631790602635774289184141243025347277814037715186483085913874736695325005250330085283944040976759394590274423626892758251623139948942151815790759902653909056983835229146094728727544383292906602554649635583529652784564454418010914985719029495132892488780484181107068445869815078539052800608033272454376800734290358483269171769780930495281742392852660336703496464534388102556258361583009919840735504966601848939003518857322950148866823814317775373027058695788600357081322898378426308349880526199335846434903082094005198456653082256784545122551964050611262976452670137483378798896597177737786270533093611855712938062666985682391388812687353610020974079252192458916285407191063626573379914577746824864822375323359212119803444092687627120620054825984474933633380754150951213053923173726316525400189220243518436792479072941858655583187150053039308956759083828025231887458091526769836581509869891423551662117818882585420395007139840202048056078865704564127681363295296466102092069188208756978569661308998892525441395287088518074672725679499164450414154556264487760765074017223355692465767799610236579565843374958798022974352185690738122776184046038546214014715724548421960896896973193163272292196031908101496679429771881714727297287404823533201764915722945816332249266292315877474249344666895717864539338577354309505006944240586235327449189250763824463441857266733412227716377162105308336174408399706179411909842699486169832414485344966854273710134276973303297502197113776278813423008144777310109771781512422486854570733334488826898017091037717213966268022281733744906721985807673680336814672775741563208682347603258507205738027477113866928229025034913236894590037603947130479999159947970581318600857240989422463033996220539596176728683392997020208172988328804229743067108986651067946187015225162172953879810175042208905284688208311771433566255547712714646879609051659023978751453526234830914246535041911695053072611283162437742904735577139989595525980742788543751769470121538441535377175048751160539511868078688558943175430766798365993740647532581627622171050500820498566939521314986033321783424923062480897401445581992809729199692208466818964905101444954483590602575230664320897957737991483644755322484930477593989327130146107164004673672305354260683105317402011670157641456968484121298901135811400492350740517888543596427543433488136497360952892484137518602199421939248815805511641227056709046496246302813257186871574037565515489046996614192806239927524091114375184261435434904468551968891271414507093646752395110304314631153921524995429496713104072253903006910021587307552923435038143856855509943763152164835582516043182742898013656446181209077342420950509828527913439054889428367558731512806986509959468247717281482603558742160786497714660215346546142229222832461335960957043023343990426548617483276404885861040142266381006293274905427253233444287768610121243421887281635035506807083584694240594589935808818592280999065821006654680452237656135022986217184801618845631335905232912931970701052326641926854777984247684017431346941383149924044069462237840862209968363797894247000909113937483517130266902551349672909546689063045100440596788361734237223137205871051384629347706167975151747188823994107951348081962869935941436955639158104360660454859599553681972962478127527984555409272497794141412064464465201769086086713213786255412510646907016507688628570118312770904785451073679865271431066918461723951391064880744948859419738007075393792333724223265399663169328964280366428516559755702761434118263986453848030258886684659100829452230165987212988545785356077304325993822280709059521540212981723016114171290283034469596690078003094388150491295367151772827329786370178777861918622808779596226980448916172064451928534851727391417267168851496111065036635581369246388889225110130239076491569118125079577877013964127732550517514672230008627894352685137441218097788330657787268361645753969128583789961726296984123262825484985656892640753445309462392322841845062039039713156608423649744569732029732163925280047423628005207641572630324936904190540707535806378904853878109299660952000617128053896738955349090450685240337209928573913422730019845032344605056768230778926206492075259916896610730719912222347007561918372338662307266407658722655306418381207912712245695078555667904105995203122808048661410300442482251034984865397715073786839140902375120881258803082745630566915837521125475182359949010112828783761376992499907483567068335803292726005672171257436777275600727055150610105247865476812648611920768918541322758446309915364158813317272118800290126600355764643332408755761734237591383347327104883191868792027865143961544280254695625651943627527318543561139777615086513417235419593669215990775457872111442424579634246767550214815793464725002217658642798831802039584059789568155189023366745018119316323498678410485812192060917506364134744304259975422350556169255135893037843296239893762449652368728278208542143907747250913799047554277381088915028210404133477523592817914979084707857561592918265322510539742386998684466683865170756683598925208951318414102994592971216846278733340451949895588181761085045438032575274156491031120849767141907033859171017553004488322150586683981767340302307828025140916132421455760842226339990315841852616661318327977977304544160065358933168251123734184706660331175619782695020511986595794355855814605018350585666423141869699100961224086651464346794979649940165990000023475514423821381905725124055694994450629099001313113373424735516649978519468120874824794489031416470576437519575466050693237495034213510622156937919604955790681061572801423694797061969315202532627583270157711426983713520689972790788820964622866148180107725627355860083309913341022398086037255934279738349305660363327022653874178402629158641696791037527945654200478572880874659460869633028784840027682848399409199989934489459946727967289177242092217020597467926754000031406065495043740208886599454360534407393223398334063739161715189814324839374860635703402118880432225408951681670149103096739996236061448316750271012836930834412199857441409415593652998619394962006840734855256272997979707149232707601512028998330531229528338152280384389655486617747180296647512901579506847508585895719778598880602752825347797129600164238045372213847399890508955332819449557319298641050011150455430914187590696842038814721927121421756803318575742622049163012204031783438026167560955810693098887743237418804677726909674793002160577549298253964873122989830656767545388472132267232474727425115620411684604335670936135779984731438848515755200757696763443411734219443312039220352107436644461215425328118915661075629040498234780175566098883571885022654090230514835593502503010974528294259052984294055752688258996552056398865806963321026621592909403086434778639539422621030397541157057288279113901599818016738242434296718675470004856540833190377256033629739110401176327465282706914220013273750772635498746586565848782367752758379385176191287681489567604222879154273744872941099268452637506802061348997645834642344598757789669200525004815172853117687028526697782590573053667826342807844598372112532757250939738134576600820181128899605158006512220519036344275643728609816390832279569841026724510726354356357040032739297236416671462544722567450810252398159396729407862837499692913091436439212177060652106963505972174558195912286031967247218869378044032385147013706831242947321416823846258593681491542133402955471850803115619463753050452783114260037906537667822476389599010046443340397844418487358680111647606613238898029848009796445272091783245460073367633362906001420950656274662045262259073145864178985098385545630207757008858176175265935475737244298751477855567492871298350436181501825122927151830099178381018838256894375729401597598642220204691624959681761138969790052986039327863803696183886520970564901446789028602672412308672706821714513469484358138042246628161555349229907789540534156387627883286006433621796608295072463732673279200489261767598048288142509111034770440010686505047578425969767504536692039764381854059313225097364403322974912348072262409456784913654217727003909600284915538625965901560020354210523938051664394517767972894958190642540971702979049160649911417696768751216970025568885244801571968728650683673039751402909649713179479755914574894390263860332340993261583450549700495210415765086952559708297262033421467300077017938410179796621113414397878983818822066485707195612306329857078799876949113281685605337910914306692644185021781359977842680250450867663428797290185770780559209955119331683995877486392949911434865712962205287970856179939358907425339473939821743078376489342889603367409678889379440377903315989847530246486420873694685089497202228558632592192529849776403367280717883377162122278789979982479987632108304246444449229796689830737689796880355597679830616392828450360872150947181197474247855389568219100852362452883572431641592250013191407275292043589356726323879111269805246291128548014068084920691377678872323517316454376983084994533461409656464727010510053935380140416428971833015678871307545774771528675267717014342327698913160771139273786827156674778408601527547889229349195350373879830157158303357710545270889549985168956144622543231033319348307420474045349931764335923102653861559641407867414402196442181148854206728646934511661560772093998703792574490665143716544959897570837311538290241886767119246735548571504866969073371400927716680888130587909080784609577951116863348632730186134051987429194440721405675020962045209887573032255952925784073293544344878417990656670180672582841815928063547312531885960476437887793669604599471375801928325393946376022418740433304343594863542688921562799194768850997396651842659783573872841327648288329925379271049831643758553107332106258633200938147623307074603809210748538791225171843472939969310542661569630020489868238440240912565192147043600417733656509282799062797188665078417549849188022592908561046119766981436837253866895196870700096866423556074519806683922450609567409793823346453762509583949599552362890050592774523347588299086172819431206172618124207401328309864339453942598383208039640084708761346065998226527803307568831232412183921393504740734910491822271077653168562259898616457310511928109402289442174402467819667667507503091853872909832318619753995467441610211116264240716180823396048549411237299342739012004350012122459247661421062171088812515243977303780005749088867127774773965988445985709602832034613541656604718541793605419334202837314732511737080259188068896326419222247771929750482640318341786638291979533676250793794362902007737986792089947192167000428251981316516417782384786426568414304089969958645304962504953155552985865827942926535326103526964609102113946272288788295231956954264657066519038806178857661440325885624810995923960744434696882174616057252999733818391925859090162600582185085242807453844439683395559232602849616020821493712991301405898720909854350127804885608754125531959870371285585310457322096281833543139157557637079935577029380177727965321930588792641092109509431473959423517267506044172175796709472669633497934560714727344512715456702837047849442163483782711637148230228883543633122188417390276693370963110287009793929480169446643751212456005131749789492672644239379875833366804910892720338753763616261978440509511531056522072766075053344758207540297723223945282543685361819189774719478831473170849244927903373889910358358614753028820341406046442326957810859412898746007990351268119429906440291786455274122130910405731089703766114330169040412427422605802799096907551258995357293011676172900904228126504295256460358607796974601917848570373437254521333009826215220376218306330836819532088546060669011070346838211411696860119307249779546519059076253554600064489472517070388457444384684860189152483358788906541682719213213724145698545970087272051503492566286912393425865226947965701774717994020560830632451854191437777215862236114133204984814487471667687783205496310193833501783195824117288356846990696412466751118299630759949233259838972326879070572359221322925801038008290242429650188910248520805794136488165577485979773580779865320389262683337380799342076499329894042439757449302489682005309656873315573450820049941059600533645968375535799472283036964469278317777102380249257211607382651109179543769022886213883138481379757652248170397621591606507908831730322386551300825223135832229130679002837674650987455382168933732306780644955227379527518333673061073453854972246638485503505151312636250628523989340484044500957319184454594983404941636412799545648966995157966790267871263264416496044149424296252815540231749951916914899666486408970862146472349092741597418053539392219214731398590509629085128590696444070559206034254332762148944660054486314894304601586248234700120638689981687012809256081540188541763929731183726041346072302194665254149201297784596991104436136372212485800908253995820109538528265922211915145485137631714659202110331747703412446535622958982598883034925905625864434784771482347808962330179941614372617342320899462942034368479623330846478181002756883941898372744108633510177143377695903559863637751841043639139988724805177753090045577302332844750393808630441617940108696234678065042017903071505697941377939797632918604435984392468538386113220357237256903237871890605340279155495973870907756316977842795488114216655880929282337259433008848967850871040235198933193129247056272780790849500895764290210906993337444435758085419621299502565806348560336534016390834632881052545697196292079463738615761921624741232925655601576659791826702123731479232507995497236791636937708256223316174860724332143006115059473855338189684473695672261865411263585958182700717943830672673210447153314068879537569335825516549290185982267718097779437064665125449991434010625343624815173253958334152389496338981274120449914316954165450266913191862872626090119716826400998367658766826879940091726458528519236877960992705849193443367932296027263054679458516689206561563213373252912490529454786446551682439319061017420416065225361160867789820022176888781990047980427143346014613424493243639427537416925474136191263225466574585746834945721722385168185776807631682378097304626777694918272677550477318945561469137395582124746952878974318093929992558931808396345215079314017064884353612895075799437250351927430887307694760775877682348318457096763019287169534158568863985539548307857403811279914643684343684577925285642441650449476545358945562060988372869978370843574044069061838718237147085846755308364050153948657423994207423125701244374796720393939238518297735795695562157531469902140108686934891027183546838681958953649712535897095401505053463992289035519444579897371413074837129234640991588789103455464473694440607911970325306784190852446615018127394269752902162132076406811114118181256811522726307608202010822794606074220224217758368128163025467898870202969893241950596101602139688611316472519529038957375914249563880763610839057606015687129283188908377190313502860770803551098730676232015037152967967644968490270518322444199860219923376262454949251197895005245480358974150926722289940000413139706219736793339804226434492522426319574562197120426355926699066471072944785372934545981013242956706426344219998149766032055615264616170927859334243871580457415916194597419354763657602865668902196687877372483254208058509689118653141437789353412140480977725543921962881835771577763040074607422135345762854072508719867062911025891881250217248100489567479020574225459052706354884802090593481370467931304403780477495131699180087839969513377816166729408939320474293571797616842139622639517564061931365963693832172336915846781271684539003032200331111509136770746005594219305312104132693323357830241283230534209019768732343408889124807194504170780976187789783628212769813520904842842065488246055828823381292761477741489924560730383654812218165644723855046431766026117193450983359462987007531447303293574003408204581274997475342587404913889158552032249961714484785081441799132651984597887261363249672489452572408947427162781611354322123720153801074482328658696540519134372362249389431084873416152827565603053595385520688012836261382128296219068728553612810450760910716806757118757737296922219787889626792307761859074346285583131602332417899635971652191157076203688602238076062333745414315597779217690539505707516564172846001044766459058236127199198491376947290127785340287532517048618278916318556963740545264457474355254676687305799835778730046001854369981433660400175442721586753100298696887055682352333813521497891045504226418887735467627423457686368342682998562814146471067548277103012198947139302003799853762597513103411738467717429052223151902684304169305450813562638261647123138925547982074622748930834114262117023589671032788432837760535353616960723121877835047044574571544871601830491905190172867729185271286820058947924985903341743820584747933536618724058726173347863657915473728309851728974624846168245869544734078901336573587317803475328997418397866783798162282068935564704959635234975806919618010834513556489541478193341093429114795005646643837911414837683208433814553792555445732743632564640607931524066984935971398547222109296760531496841377525120042714932462905457673594898027922166146400703792397904518846988017919194981605713582231891708488109843372953414460879385303127465196818442853582450006291690743619524375616383329682088054129940304237976392345926210063894835035061397222558364291569858921005053243536922914488996407700356152485010351482657375554885948383709507816978200099513625773359600365168420063128754073905463196995193917617180490480359345942160841461095051861195659515201448411998906257522396064021956049096163864720479469697707299241077780434458324515761393121577284575040194764261080074001416478719667919002483895761668894233439796317092109155788416945695905517067882733657512976259203154046433125164658785078616550013939281619448401869981313741974005893242339502923670253891112620798014173453549562282930782470514309368620532233869020412296419892184269159920886280237472604586202501086829774523864072064918932941373177219954536139342021503230861946850991258675881189371646005688085407097012050580050233612222862437659352343077499961746812036586277961933646787978681744960001873306950888351696126796053479007550117002697990141837231686632615902314946744053145140990421141059627741491528315468437442429455779153694874994381189481636607681436657623652962163172940595977090206576527259790268050246600316706629276458398779264312568271986177775553258296152184460399731445671752926984304425351827611270926656481757237159853656920116318783095092518003994030852337281909339587944748661838920767521196272553896836158802990680658911690423987868566393766222151582124339695898608651987798846399187168213519770421261282981377588400585847038235602521694255323173630830283111278826609992162472888077793309072803888694222492114977144701698484160531894234323222438779670033678895296437808250035506540216655634082023202762210259965402114029963418426904684389579750285096260056856324602254747470480426228684189050307733066669248595533440662545901628567116431483548276963373300640276071161830040182582502993800247006436865917849762487481462979653637676327564947208086028268217967060401390850718452240557606505736702786545446499803086940708800972028529198479214387527629486099511480995995052680139268718950640890988738570542981227425775368888486367015801072625664102365585140926000297543752405878476821801987452543376138334870484048555857844994684602405877222754467116279070049054999676066050725030296084341943301805908575785135357693166213557957193665544384695988457310576335112045238726930687915136060176725047806597209911396127280046595624210503851243131482354388242851486170501723568006541774787713515176214567417791249526625684882187341912623393980779075045833443148308560979409721174851193006461262127886783246406281998951303899104509471087600940696555990212665273808389504731774789639562183177519400651755021666402892764804648543728656708760567615407970598946537471343578400186142686209837596650487758042497967098095499905686281158696830533290187748027179923740136264660008617200140247258739878334073986457200666634129597914936707346152732560489437167326650240793209438485848548855671103581142696515079858808266193157294917491466240744531982193511568460827518713009446530114814584213646210494092167191741287207879153903024405635601004448380003764700592553121625092513639800293114022527874618696537612011265702815572680193796232458309260719679337446256214054360767215600278478218641126127814108688775170329176045113225368419274686250442671542792050412308782376468470970802134609395592254514548362101217681861994075269027466017812974697328959389493311271351839393524600059047077665100435381266724081569438220442408994136339947608271980038782830999603788731521909643194191024481240095392075168648650087277879814204722666816398388895577033329109673613317222087761843181345893852218675800118013252332094983692697948417463702820317284086626055804784729422018609764611982597389397784437747640377691841034356739234425436034168286286925046783409848499607622838501116183654149583431755171151966705940694773945072221047996286033832954533649592654005915013404396524496286520082081186451799499769216448508917144369672791454143562953776147236346285166809813995042806281858638598761013859002977456109300410113104218433841150841395351962340657682670745399913109234193336893262392806844644765782658697918663549540066461927580341038311129851281943040776841372424140821592493461629959805058963420465386786486944020461207035163132405402217062680847258998366269133748818344347763799637926590114844480427834358727655193275209394925009526093537302578963570157822380450487456097099480077650086918613255395381504332083304692973410793392388148175843118011914504820650939636021822513066260418214046209864909803093999848450092555449463915493615152513735635646767680398868611964237534642800167812334156086682521428467753840028860255329856257232051332040744060314414227760217594594417097897647737456204746591808273877568800886430997942815961561317485640260817293799183437987520617751764807754111133169885410357611178280975530930125871875041014094613311504820041193036476198511726394967603248398146200401488773132217760167229278897874153426534030670556367081671104426667044891010644331980697760134884329118301259279207716365031062419023352179371438059225761276175736104689783096724325993857890431635284951352049271960961287605182885878061878852390937107723875363443067835099409341732315524942403484021200588989698570991326035895209539319935395624663960278512460249501709297231918288031443245818279490997141374954360276420615617505550390172127818566173295507165891238918623230430760107330987653371591311434140774224106359642743526845401384808223001080602679772270238695007835115942938547975406394115274429153410607811992193868583669849781538139450455188761828322048546000281422907955178779489498247905980601962103448444577254729676991027126736343923876504569434973500900484010728985103405725254557751092330851335985077203154455587417819015962220593121929858927670473308379986845722657324518686914099653410030431751271735587539288616775145336039136661590751139806871594038787433397262811477566505658683874723262709934560643387198127269508732186899379404160835338018739226136430155567196600020080549623291496818239742170514044401179650714899626461109699175603711500531678329985135943218577403471747753328549137302892952766711947556563530957348743291391012576881374594909969265006389429669869311102394943219088645817461917371676500777165830621170461979024139971255211690427713917181201572939294714014928208027168968537063827990865338093570687031518360140727254323242429684141347831193802124667391120903718052885079985259402388840077848487443260944312992422636065887154518725706927678850971045787009903620945578958115429075589080040778383954716405059474752081915800644833729057327070098414433107949627325893274539404749974992476482007793612788074603427789054567288438761143237482800510334008032184733040803315477778177942329335708720874666448621056442155961526335268863732187426775691281923861151171436668143393019085041592147201755102035521444817644424863289424870176143361376954225188037671206218144814770246284582503766050906831247432932952169008039927983597419314648318346266624296625846323015968691729604283619879870342381213679208034130145445172600997432701723811101698882156706067527801758413877525564080189192470174048307903427779278155573991640628157636883172884523774084897117186030155812859723366717101891001363371788443633141438398447533086066136591385075517408043895376605131807380861691406554888963491787945126643438743688559364572108532328146188223770946181519419559087046938511637545739336847276916709277440934041505953170554081266360064555536928270354452965057109252515287249641133384703373317779079496801733277691984877105281258379920255948632011668116124487173493943314649445654878113925081473190591870394827391729357262661796777701660729654881348977484169035991310008870632697167078509695813212455930585515097576409633169820990195904330076406284717473380367449962727918569045619624195006416837155101421879730457707305425708037250593102333366069750894398024471789663253493615156923063679245049649234872938586346551894028237660704272091993569107749731837721450577781409310625324719410863733822227216965186774555925015831806287106127303782274569021293239915989517167504030552212458907969475429531368324790751839321141276003248999529921965652356443451755748994078513286298548567009239255481295692772341328819575347180825987694611585301525036642261169263135587935307155417848917967629490459061589920998308481263519922720975862307163549226986962664099731025396774862378673867335120899095075169146453377339832872746458046308013624923356495630421962543249248967680820048144406900073228304813961192285063287805472813374005158236862179773725864733244914740603133621657413350945322150638631867261345909915858313608728121961466599263687314677423709091912514001329778239688279423573513357396162624473137090479099651271541352595710408070779536080653542964192073383045911405823031831791888893367721405987205296261568462203870892833395111745668426876370647558696453563491665585783336500741330272285766506497808124627638454392190372943514456522741493483319818121229770315821651599028311384293403220608856116672944275384737740001584519748942238256135507000334151435559519973295166065480157128739965547874486150830454942378160064842902631903493112745371392301050349322713917470944628735447634325787164983321505744737753058916059684336099065506244190181863392973514634823387201536526468990296765488749459926512984381938133417286887301122262017458935137842225097015257587664286924284611435879340069667443080617471502220078636529571158024846827333270963317193299690739958475870315964542847915019543890581036035550399728217946879608551509027294759618382421671742185252022071797299725385423554397467266107811493432886917961032751840580021680278230798904201016167968241777847983106260669936534998274353627843455464111691507496576349392199524399492089583337907196338736906639489461340022414539515136874365333034568726697707099061845229232155822474332978461740648554800665693251900872121741631511567640638180384398834425397116106771903527446901841644550418110763874067549506328836502185094280138622940246905224954078202211041226212645804695845563841804585980498678055407541491721293878805507910218882241390080155652832828923173894471532831016903129935851620738738415550953674247927194527845457889220995587752174239156267670455953619917245901331985184897943892538761291571722239565240999798801325774416234372506382116899569425759496917608276285638554777906910399243758900056690404311132190477663993085553074656379892314605455134127163686347129867028121604594920739695088827297649664021668234593573121584855604076492449789495482214405440038780607493874486488217187278731805463541027040875223970531478862915687175424416101054831378683693941493271546618041506421143804632320924800744926060698735843954972786469251969546443333117954066734267083032706992201845055305112233884958529057356200434968717290698583413072200498104867242053230269761584127169560022540966789713206043190309507341842494243876297851374404121593623662559829295536938520134124463117028675472084074369717244386622482965354459318879080972365808434048059019639950945221470205524004773353669712882640793257323693664422522265185472922460523616768434906663383705316114453291802772105463348406928026244540699459499826193690063433315907134713058917618657667182900251256659325068734977325305733095960097881091479923692825322551786944611126964770595832401709767783676635527125549563359337893448924070782892654166736865780314137793514733952312710723332001787748229359564356890702343482573574119142048852953393563194719711330649726291268753257133255093165581839855558610117709089062638874445630487665707640981813513098010103523689388977644129324662321781234484822549221460225321870606364071444387020630131297493045835542032745070641071247002817845698479713347283856602518012508361427171392045147358550665575724259253501096140282504028535684243727845198126088405182308376768846177720780281487249701288065760353071981566738040656478427222315161659652218533825455118075064544711285038000070352640568636904349104798003921004184684236487800067418788546281502319766350318961444117676930966927989664550459850290694493054963499683421299268909117512762659106223930922422361609412842917380067535759471070425543810093950002756246214214368105843400856805045562002630746141482169219590639327334151771600695853157803827917663088371097214408372223490374999445574422787082382975425034566750672562706259649081161342303392781989791208637329341947462897289420589110888846244374691492408670488650908486240240447869373725573767825339525366460632081845851008863799954469029776463656143027111245076708560203596670279843226784594348180299106816657642802652614387306494424463560256805531427024644544769912946407915951640761190931399768571184754350652906446968031677787812555480321007117328358149950629428424288612510786560111122541097033066357309584668458230731816437773864728442869004061154632648223593188014182130400579053381168804853447586684590198689050856633451140165486725516940976124041769156314532252471874280194410523185105720631930035632222265137295595961486302493769127058925163390288521705618143190667393366968842409272322031105162392777409192238799001640913064017735765782360978006270956738755732867062905754286849213546059748447553302037444390129185666170647883867198711995721396282039406728459532918103054612901424158265387358484279942380683167683749380735101600284569989916997633735089002386223199474965173862043662444185624405012539609177737011518111761300187063111748394208052495516046790613202514867491063739005950161339147223245281261445782954721117901042724370545652539669502311637552932043569623441716336386129886007368420425670560579595161480853868207253439103293318656111250588626815572927876079760646031746872537112666292961467517667495532481048299114741548977282364233032230414357521593567581867472459033192538395860477072461434865508446744057975809561924700656248793985709473045451320132065177520818675277609588089904681120975791261577091650549809973075733779882392159077864321300583115454859340678934490971989878634733424366023988886911853390438487714865544718116071665223926541680168121627531393018052567513200154565877303327580950800652276087617922038306452706094158873308820204705714468250672576999842219408895878733532056676572841370810378427408742324097186328058640130390912476386112522459430799298719549164034179454810065194167960245069827391293904426032290178300518591263422886185832746833773603913916314976354483940875315189676105951084139143553927154179154244484579120079866154691599807141684532896101738722321745625647292493231051712494914209408396801931589317563699171290326667806420443157410523505411746386604260379944910767683413915128733319052538029585693882511995267219684420308546121901946324215006591656467151178158397743134724068355030717413062666223690866978814358613044615338829928490495941316011753786186128897015315364354071150480022388218313848482879733281145472452713540827763627030019366470386354320931908384052380215123266686843529255749984648701407519393719880297100849591656912466853306424713257993834757676783409690477193870448277887934195204553013121917136055442174848946084487203739303229177806570247197593437031168582169394460029196107576860665700555879444694182608262683610503563073546497843894227647371191569058049028758302448102402685631249456085880130781724400620103544365081832073632376654792462456165213658700361082302339068531097276034326094473787379646006507880016773108668533532553300329750552424781575354332505123444534641220608739742447195093019266923740671395854359698915674777809912603014080120567590464369064884661190035744972140770663537577694072782674444939138604962919878863596104474052416058010140636455677203332243897250989514168598392595401440588010714139161825748145433446420015662888846510596799197642079535934762942969106131912960582402192895208998460374448991664135660512055230449944258304399414205060551712930431489866814070721543646673700361647903384934126562292107169165648276715185055959346227765491312211864825107618661087843875438786163163917069473221856673250398131639314522955357124124726010051263946215510623088568988792511972337646645228003346252483445939665772427563576831586490476996575013757148917928927551017087791481199829231233057609348078284884737141023579844592531965344150019302398267396796891420217047163280700180639740976318952930486345411717831790730248412644909885018807903202165355591091276963127865303356731999313526545172688505405455556762419962873100462366582773223323396696986988853868578803243981298351306353561392408640687255816654437475580112884602609126689502255856144363104713757131694910715108486172644346574204770407483720948167706928547489674203897439497281155421560756922389704649686421483613953992851602807368489936278511046548019364603396809710126059854722207682689972306908525085752294989700496299415641415823975037648407609351686716790334115202745128300198135271178161445852891586258355292782590967428523225888793014391091781807407151790786498703982903281187942773101222951958560517108335581128743370604727713550841308868927270883467460749817152316738951875513984825273868438995432806761185996365665453607267369894464608297128994618788610323825416860536751003377146726867405749491993862998692137172255751735200712370437355707700675237408139694674508262963921580546512388394209936949555890524778546522412727255259062150581990616218031136601365328354737072961536437848000590845821652910428269030347187668463798845312897638717493192203766432574042731530603033470758660992371024046417339872577813002277592600886727213244652140791205717768314796276785340008145088521062955543168062457751064769602720860534802743771851516124194794111798673099376797409259463764708619329378621277652683280483192268469036973786184451190209901980642255457253259933504367868859489631825655616058527082722990177185733885109792121530533045877547289289551297499533379698629900551323194778955005017770484379465309774632529847257900725152411103327848570745226294605603497176148638285416412935701254312553968885876643047537799185245402078881887718332078008918577829475720347122874015508560154615793387563557576942299324334424930844209739310020887923693468305175824061381639719671734465957281088998893829761002621234678663270173647493440231203199623066787658061558735863841065651654278983241644247106253078948541419215674079425069676892955349581963443319425688026928919993097779949661234558592122709431234727460796784922651311323977193443439271346032863661128397320394105622648742627228791761689785720234235907155736935790175837730662178707049001473268527124212024327294912569212903673649897839327886808738635927747315706138616426284331187179835954699855878279493456037750782087386675618395507937922204420899701661626219637981171383108878315377349198204150555730257428866972111048508649908486498611790100049287879150857372554074045338730354227553496600685793364325410024422943198585876009274137383833797023118561911099737379651557609342787126310793397394922602992788134845950131914722590448646091913737187004537339882223412097072154804898901732408557767597685144456799115909368529901671130604670839609529515423352745179538338458551088300745402632254411814844876574016796614014223068850046850222944025359242157794508195316814509385417415418393096820925656835500980459279721228869429743148999055629823769613529633970847252444158765473258901451413793367633323167799831885971947449658380063920884802131540193287678343003939876429180033558627731820691504961035986772231742608977245212723683223652356806062941303402962282601894989769646233585525938666653486033299826916218915113685441406974572655138221458010635852648510273830862627320272331102721810701541838750853502041101241046322559156624136957208374050934796506805983639721839761771623218463890974610084913628496760978731523116094401809699815291997451056169016785991892155730656987150189327794795603548779235102923535996903828947731074757606358402381789801450285512997829107825151555176387001146931790324041003973713709203681801595199610485145968073007812568995112679907260907127728793268340919818448512145877038575916653594742116292352109757776854228823362612228274182631394308423940210369024779386751220764476100854394013742575430466537036675237606549083531541480580545531531276594610530951801529933249162072462636260929549997149766652494804475700996836533490170279205416563926888543111159494520334686122255089026658924240045001394507725244899090468376759363412758666029278091451169216923078040048110545744139519830118428326536329250205340579093004574383075836671578310000174306443926886871158604224366592498784255399621327629495132910650111502551961745782208895800651396670938060186087931532163063063663196163166055270537456388899668074057976331669426122954890278371051855827399331578280092007372611911415447219583094005356292594935551845802142758304202529662424186730767919709340229451353169430129566434814878958819216342725599772255882748306542734501772074694263783147516549167319891352815544416414493989775152273698891580029684858965410553990628802143375036198646253444417539730408291105801754398742815664621446576203377345448443919872004077587774054692967393642146963722317868823303931695744055877479598512936756087873387161831730381401037244150725391090197860969689334414252965714698209316177601846493600743369467563137837200173613905357576646211088167678115756308938901402864997552440357490245919594695914305213081226950110950285786371481073989336692474320033114217461237002546536477787990858623334808131195098441090402093613883086948733301833394652130616729987214523163081414497139298823646919171253012810925369165980676950627051956103125001756820136380986130435733886033171846167561975454675780253934132349393916350786543974141710228642540535910177528053138912774735699368008843012413658367585415500706947035672612476125166318841621753328898244585514593090812615919830395238640774252621147557745265170130039899378488289354426352356422679448840586782763256585908080003977103799752094981346839417489326879496102313349002875247323059316339513044782062200636065813133823630768480613962897427830305784219961483216835324878480796850727911713603061047924091932882357657720881959061832060911326944463140674144028130194158968234089686226074485434174059009993156538232245614468369946384603795887990948068449429934146875557001863165064678274865690528286553694463327299982973599812136430224278423797078789728714761305950902836048224173804986392819292769630982322877436881628438933590310079033279273287477796601828416151002221728401481999379793874669269338139909384584375183046203053146986265368508788660666832315349413238172571014216751990920109851749371019018572037926933413373334874292819227494511844359178117294083770238916517155789060141581120790287073715485967654116697705312348046595166467640403947339038630469382571672797859674805434195769372789821854551052168197883233725647928618026235477605612466890492148445441596483360664651514917633627525895511449911597866637360925843469208096205890086365123189127138202089337043614978705818910784403876246885749491389719060496468636041228685759377103458630844461632955114803278266479278209746855162854637824828810554477884662937056590532809424698834149406364236102640818257380218975654362211605207136405002538760810577726111026753432036463020975803888659416893679917485977305239028554378610795137990494285153107012025891046164894516656405843450591207870736603079605676235193017227260008952599894859508569844192662613941506174967713169373694207369095687170790110732850202411721494109482437496420728327842988103790567417338129962144363062659196923879348236378444657656288381890720354594673699782884154844249199542968064328274560694836671346936040908204823503279027760732980113700931262377945804189387642419289590780084503277178114971968122451461674422795240341537442021001000916832122818421226802956212743562488003137128001450440907696111771309482057745654280438049847293701256009703189946019539901683606399621409624006654673245045732168776419571361082899532255643793001590442037021755176917001986528380839353589589693696497694988592338286919289424256558139592713568835294982707804462762810826317315393109818493344353819395631090648689121813919684882084132478031601941520377459968896292019957676626439010608123182137818604027583652985338717484538525097980717799305518566188929592034206125825054787175920423139076895988618544562538471934322857470380017266150781565643911117544789798733749242244039269120577695318623982935645354581028198714945294790550215249418101903044787019402105100503337429677459499949631087950236505924895770050591622903110865736244882019348561181541483726046012399489862722845199092328934179140617077162825057472535100852982210896605676046504771770414458563186821043618889040963437111172571596673091289843708498136421473951870666513562366471330688813085035455656206768433857233528639923329698550320204537288313371720522676013914467468635187156678868185413859614998860739515423506818240813797871818076000743429968354998472996289495064562888417446349855474029290107555694905607026508837164737476298037584660115664317321396111715544325655275073873902123496701436176001671490433952063701445854956827116696483693566972913423708995557896467403704134303338663940192481047885536152372317646034848691555505040830847437235987390646159377169564653553875628531826168191473932054832807093906242760644464825378621631840886266288105565032724113090728420327692362623671889048809185771889943737089520262269769385140176658814558773229876955332581030325397081549956805342261510679306278464184712983011478425732839614344913645692272023820065791245172411803137247371911187083779328471710741113285219913988367667358953864496114923194726438404610847018157727173250989136963534278555789324240685233381395677846803581218590803316864371321814867646413523950447472914831002300938297395175812922832229957913363352062615763627622050863220604515099357597943174800268951009716704728893079796879887654330301690456998222402518461050386275715051471963833399699806275882828287087943922543649093523253547514217220995148193446800263769654533145915925308132865904834482017566775926814818711874965420017260341848368782494978059059080399045267202872657867363002349071028825031668447760395816215475360271528733944361005435091909246195249389209813139640016554185621024721249283833684298772839798143470084626171071643293435125162697766652433448592963633518847455508935226988986569303030141379721723947429480468886263979353614779846205441158124340381019683922618737074721319716593449066444667033274315414660178037141216089957740608930307895637370169336112013978864999052582193715492070379481800422703776490571673404181082295787206180104677723033061518142276182249960540373065546916358751278404928575224409023169713916507756116313193375591868232496684485319175756552394006771196062002138922960382656854524800560806688811935400565854455074712743204346209826523145716947918726365750891515559858013790432946191192049455700055063086301860716314186448495935474815946437553607271951089524513940716217386887911292301247849068887622000106964472558752885726181222623978948982936928733320010303591826515812149849789633827303667088457955730227895432635967773260110911870479386129262226569525376580325430675079653729982299480737213994900460427662387684480009788593795020090450155102542756378325226003091873544435883622825203676602946190072354912332147890286874761872630327506530293485914118323605699492812325419397768203487523471742448973644576427182755307048922416409485932898725014303525994812863160699742424349810825777515438073156799090928909964681764042204387610846227439428986913290288835275855111817359776836124063202054577212611944934406204409299862709316029278778598071261499863133367516009686684184932611890822248213818710540812061481751779465366593548394625862955724678015629896375733930261689350541209916397889332144003021393844849023379838155050273597535985641587718228780879382511082608083370963138424165038202001981554811597512455685424949434420089288755391726840321140670835632727117481663833299447621095737667263962033223696688222893603966835480387202366221061938059164404290929304155246848374480880324262980410105971528704485303310117547911978140889268855584786555983588425571244669648046900692744638513765259356080457154346473556267372362394464477736763217906843790627684058387034567160809021564643615279998895289932617273817967944591296419789061892445576953070874951806283156159927056743057824909654155479142641470785695850560032095622792859700937968126702381004572668004485056654136328549693650583759378239559834072642537262653818227074553570874996913961679593375319075925623879725228962556356486671886477478072405695138064361718666171487541509463670641286872325288112388679980246075941762620598643668237768390795888003474092776737906757216061358623574729292320569650348504943331166759068396763211380928834668433862760103869323441907094636611559178856704480037344613549664836126209395882278117613170250391900689159965072273547261336813692982614899715969648072491747782016010221697756934056789606598787225356252509454131455868765438094624095928690168870399298161655366183087156657379175112648266002182347381726697017065802722405116762861902141156499036388386670181712317192539039108635778044920034828428227550847799701324523034708512743787448779001891056652872948766677265496149469617255866126973554541384550166619468035889311973547740145038833496434062859500445054764222185560208294621950465821194457544891969609707729872425994355264110674630412856494577496108118452889810375506255889308037489553007703609294805677524751559517884201401615006475771460138332829565759788751602577747710712324990233998730235338846651659544883258431197358245249611479418313376398981452273942277165335883758254166849697265808517729313429845597737307390545014948443827856857122613903804945694902998859995324899715882656593937749371869032027629451241651758356016783509980132209373807084537443160860843958688946840265904642858387109567543762857840601931309551801977742629116416999649047079102235694343558411874860271776125105389344257214630845109492418069521299680043343024567705084561647434525419317806218896067196961146760975870518061280199492778669124734310695169052443794930374633518886448314801495844097213127928343232864968994973602836712402174224652364020495148353854858573796334739452873819112675145856000697722567772641000358700694093614777928933621053129051447444123004715224494330792349674336805400417328077636882937336998859479870115980957076935660804480147785547566289219793002713276339545098804297700146382914857059641431338319611246763909247768718940533441946935159320155558155633705636715570886688319118431361673493116234070875753741515039391571325208122290396345049367521518765934687892776690632785480810458249100545851243215395245647750216471457462282457054751834347698458229356395460944449792647015576752080529351736097255230890325560441709988081634703756544939073368416619929037021469952091110866146687372231829172258125653213079400758963717475476911546979850167511123784841125555688180011305163083926894954620702308412674923915152255872049647856854066498566619848567106975731704008390269809390748665722152488099700690274216428388264764501511582439726820867040084599868214379564875785733358355815308095339618718099834825132935713806233127331513780302496880332486430410873616726233629746214678016678964468875145880054572304125796736931283885312683555947801896064238409837278204480204226750854583196571042457691711123257413700883081679987434332023326619841452806010066671756524154880109509156907507301924609012073667177722596430169617211246062251502846428293738032023732360791612693014874664237825392118191677887310173429889904878503131146844047316313529644723421161682496570980540026389126398761222766762347771415392474997358895153348647883172333084834305529275071268778867229011072433061893688258945193195233598000840234818147459891537580354203689737005235028666977781869717432418557456856222441557417627179773294735271425686987333074538331102850212239911476579942423357875085346038938128905117610161262658813209003346815384782370527895488594214293230120239736928171619168800045800262599095541558313431206048125781539430352143511605394598132565845569296144995123278329107380464816586628355682311796814245091061484583792002284991838073740898651987655758994376358502239909211735789656705926669819373264657098596184208782116447234436621197087726881782742537611851842290442345298156803157111933270013194624106918634515564512233466186180687105711131439606113869941351700441983636216809196417818021542665476170938198429659366053565453695214574064482920614865032496509960469074138341470410223463612815441198637767942437861865563107403553682125521850569468024689891315512582755093079341197297751339843377943539525504930011027895759387034380708436189062004592453722054402357303234298940063590077117848953273603604625318893115619070533440186381423434414046180748323357357381753947737365974636218423255123631313385362189031813388202069947704057963288632525627470603632184983290017769200996171296712717004560963871542531918504484746333262512488847065083966569895914890659172761644003250149812526677927787121563391610083602346808871111008096802467960011684105763872630718099637940922178018173963951274018137181226340356369365877912077121254515830980340367221472900551334191667585714654480351911486004002667270608362420948612119227500891783431571230872597630389872964974989231926153752658043089357897525295170412692799478529379224423632442992888561634411614737974056930881604191541548625908367378558424948159270545152994914363656927933938058814950438682490369289816990044810654847548381867110445384441223569981500524603942290375622534553559594633727737873903567563380685909485645301321207667020942810811875551620697789888093530348198611905228337950191642593778632581831529649749522027012268826546976268211578898588577517117989276491990926868592936017625679628982243006475411110071559468286303600054066253409170030342360244993654478485623299450254574052694734764296479041013260510570868031787747540573046624407140950143731212108728336401682602396148470783296392841970446827384066994885697690426007127149145116972038954314931726583423687010551949840954778232084038845614820953076165231976168358911545212133931028009111386736009543184598810296238308501746893193794283976761862706994083246126241870305611608169318283868953364985226962736151565340137048029554545021935579895987561032174472768572505951433601102071106155605984370616593846702466513279280998517923700214090367462385978118281989365765473711173682037215568877495620681924027900071892236746041520275952582747807705765927867034869867766433167313648115791522193958755586215723261744202962775071559934171591906623563666767313356041188812996698682764965972935448435946330879980128020047376990497177616738840247909426955949338508787650005613296709117742216844604536370664792943423596710686926880918511096500603175722524459320520493809741016316584380650022821853902679695244396174929404616030793384693405313536458517914299635781212420356038510003886760347692168139647350709766179084336463932648397979770986370788433490415798914313610651858644018591580636930687216906351588059568323482037153357420695635381487850007486361353952552136871871437414240327105454929166281220603730479817081607624483457641237328703400955998564474325214634695739428812808199033107888336634904535597482616120565976637940605334977629674384284340504468893828936460847388042356523075669576949216674892253646845417371622192116394775255503697668912717106736788962891423410883038898696241897263644194738156594193961441387599953698638659281799250703435419004435324521632843085088072929469296620233585697288696524647728501128121095983875899416433385928387458407461325892831747021488616586541275324804350630906099376658795114412822157174680344500621364461971357378696933580614317161422252554188573357397734594570521285155025697660816961994842927355820006658506448650407525247387193004764157774476501991591929592112447926949883597177704448549362485856031852780317652763047347486910421344460495503813199528502910487949708137526331167251191296468972509230902710386974975796980232043865763094436666376338530394375055472189999684150454600833547408555563474845401905615140024108728952483067876386741580287430718814637084798463892755583002664960799876552596421367945607804511585422177275219346224573308334334871047302347870291662827476958275200867643238074135625465749146711429261315259936850429459923315949412298324005894344940451710217443017546802715161084389611468828414997752516652478109132314405831829419036915943095911743432088186361456325237465753616087671595718048579468748254670240620989250255244918034916766583784547539509740267663453587854304474290058955216401038422222968387972783368972355001800794247045568352180132701078608039317519824372781815163607936876013683809259598888821228333812992789207742033549495391451830672875983919082447113309037190533517530695062351571568854690746910646550537158893164222741150205784256642433861585721028029524124008368541984704643509311238133201633996474536893730878583438026634945284962263566626892388427823804541127109861860742874615861298358856735987329615751012141238002914273129949505322090479569216933565502905051174157217153722139655982078736697844372863425538869831394952519667447119474839713726608088913722574651850499871316747899852407745351804974104311773219016323484896741041580298965045565389887420753181238484312737157606710032590182415793844828133026459436359143900756200864292339505967517582436662872399373325393826958148531419126583880087461921056811673918797397327847258480274804643887946948145940187449194361157159348987990621164521015159939142968516560243401338725868130815000474923606283550075490653679330651468387836910448747453856905099566066430800182446232573763895834655292804277005052651463546683224580700157321200633582374028239249125957958929124754271545134053947634893137729806322228715019046047037603416060600525049259265009764152961240834176409897648466221208165855670194808231137495866177853432518010787887704719326093976618306492630821785306859021403085448931169363544928247135472512443765164004441849896011950768383423154708598712126400636718109567396758652516458132426272586883669714116906006631816733204190035320028749116592404590198726476725973637122670928140958788832601851254210278883300442841546913855075043392697481303947401549935107652113996148080810712797987761758941844695074708901577452424855456475178297991520940369843399011347369457593511738647362285256181385903516604041820372206298402813860376936609300805336585293132329041288411131980629639304953740762473295273462380481333242453017228821416163697861879655757791598172910466279302473493895092227371747140636043431757208120255303374357692415432373899376347015882554176266040280024718178631602640044494095901747905234894440562529734393643013548725886718977262748006930208945390938493895240820662037229551642543069258404627782668844983058183191164591093807746239993707947817083167710067890991808754071934415818950967446541757195953778125318088915272282982045376870364923530071160203687910472967384106621326756801959347096123542131548145694792317438938589881636975834148149950349578332415395554851007523717885346958892982698848240403745057412868121659685780737756459354569424454223966121774026423442912283453368638152304526929706293308347529004312615098196735445109439694244192309470361477297640856565010462256557688674044070065948330122485324608117676324376867229434200254169917714917740029013058085374754033269044706818297755058701451323561926607497047646596003376640593144291728078500660715718555913033584572450011852925740397306287324978700863039916608539262943823603729795026220965406039857963553610009614318075355227514570143741076372661323678659524493237260186377327395015768052563295667441746957796548991348955720181616323113027933743389142584215072995941429011453378896111250689274257386929275265268183369682172961441924399158977240210334633619994017484953175195921207544017347138741723880439685665938258564333023910448876622401594643238615524976370729703925519638116561219259178777554562088197254932624002179170414591392624639643373906776243563048668277166174132971907094423641674022465506910649143476966301022030856517452469448260910674298335531759567302770636457175207091182399631421288428307292116729771463170997765906186284557393512745023806367180640973471274827750212988975973405836377232482860288559692690925682575458788484971633713024091063471737703020345753748785684478856346777374771211794840103209202816545092761584027856715911781281933179973225543383769942337937933742231148865812705594609453502178324166817105286747078632498546343508198564666560170305874076856066653083113930206985695430601562660837475877593227849799301562856597477594450043292677333677573458755178156462141278407444152700896436171524476954929220825408660045077663602190948985956723505416730201684296124290475440077926037921101320662394006162328218730455523500429714225827334765268641544668940686438123469212366827548531716332759119728626990909579869308683391755991852121281616026427802108286207871102063884351779988580414046995332590009587229483263815283962866918972625000212989676582071411507685508493250635354995834119677660187058879986062534314778777903097427150165551649840321766056809522323277279095970736887954024101090819724256122674649516147869076544874562160320542275974336012747830556908596699611410436204956089756083236591666115375505448485163377890946861511556247621536420209524178602145890843887284066630498363386725472841973118988101612136880484851186383660887299588678643545413450839854751190638087608264249396382140448037661209695183658429495187302064968242591491601706869448433396740204166442351137072355590274882011074254116927107253596971708767016695595337712498181553891007813962827049220372434531057788818663558168006604916000707017555809331816154358187719264852347242294116948608469308932000745210159527354158020291803977897000599190149305513228205957475327359071725667920409591762630086329244031015142370071115312862399045342729207781905254026327468737108302682218134477444609287867963881244286522629205651317808437466645431148700577850739989330154745470314864419990930484324451922002418797566514402759819564171675720324411310246285956256221820998164065108252239833457987596739257374047037993183224518058334794353697357497908258563782498438929135892771760843754584403012176897738565277091392582711041305291131921963331314498100822425473952642097462119816272285366460074655023491806008399592306471365051954387326579625856041366537026028457639048587721598495664895371323527199488271819493951731568942501751113021832986734823985089182280779718316618790603977783745083796224352807147416630068388000530765226681868135991044741531693177128512770143169481915593053693171877909548738413751717829922942800080285686488423878852543332318821804703751689316959808959135433691675331607062587930836046722598214361011639356579877208323688488657264015151953021824261823334306354397482814237334837235072546953988682638482251772036612688070203235916175847857313357402218280029515873396614324174321201467619146764390019435752758542330057469291065059386436636582813083362701993207692316876660219251897320676951033812389523638592751270567181469524436161525696522836967185803728007701039619468234603683465838239216974800515978097997644095322549968468072705685907746364321659903464730654427857116280070347856263223252613818713773820270516263188863879733906007081338399590531288109148240943787117978478770609787200407340269770834689490182582900344361098842257186859706735049015253294669973014535787210317500677698799730837027710987440403685156301562572832990241065638540737834586347378479147268202883124209191538689225159479529942252620822817545022515933673017091624857751507148618656701430974888078924542116183317396071302327368886670283718634202298278944863807842743620335294491979296724223246706226111302651109530321939808821597263681356625081249732045126009278811678354032861100240567018779511395348551729043391691117199736043404010938886054652687194647871864240283131012666480817653148483545355546282089950299737472367052990142204465071390686271372905639378992363525666956673050725643898289448536529546422771745416687052614197519027258952614676987005907740629427481392545831740484252136920042329549287505438823186014771463041641245911106923912123444525456983511536354144447983828089322648676442499008941619972140533337196621452349877938184264423557169689317008148823155363072071795024706699558108456999282812543601503486651526308553012381861055920822891252341941276393476932561898335134611001001178338779921663948420640056793402635563852192128937589217325817840418318744791000875675646137760206011814083120391093096865255752960922116099748454579313383378293756515496666437827214810450151060015439415075803959175932798781878164487312603528603174556875191759160451583928473999958309252504306658278687021689417493137599009988605579520361985660138814161547606954707332436202245442687986458169124822329091986741868732532020375787855207268014887303983139806274337762143230523050980595875532923711863694774851490010878978365384212801838877518774539890118779932588872484024004265063292548197112777555631059648109071621505927580204686552449478579555632860894216523725111413950843612956667377202686766853182270122348598779582822695255562151334319784874587781820112766607126432296464539669697697672016883259078047862481176658455731138198671361550921779425412480076632428525221982250418354728026568679647465917591825737725776041683961543224565955334836218220866439187863666775875339478157345935826572895661104430260274413205452413227758334014796731913553074441547265148644012017612732759124123452732469361983957660641504427326954431249843611356562076217763848719166251202177596941075316865989312206664782712248388005602290573737909535820663854478254145079709482181349834227918164045887937397400713121809033362086898934931187686271873350673107566307859188670279856376113167588674185652128511623477260779981589700354223016776316842547396312447010638134293834566205261518990501902158993938804777804874747178657320241513657354867642603895446487829864778875738269771564616541639588309312615706771703516646504482493863439674434787666660191404203515149823772473353155228801720761942695050352288329130453735918084752504072037320401487930499890672596531408559026015482327631697251334039365610123169938894375518340826210341480924273769682150843081771225891973371988282374615556890411903832267491086423868722063806260898781652157990762295154757754774823658336058274155829352458385312625739120956808826920938034481180124060304454706797439287927117129528439659271641052320333032249341583955646423658410525551788940971116353832837928592737124077070357332036381615912149449827308969177747211135992440004780042738621056870587907754197423273795949891524499017307990319745353362641205483632791587568564490684595717012391166092615583193062347932067395161432490926751922474872408754209936011437635904482132252771579748127890690128470408145825671805456210177130286984562187449526275063590536278200148145955407347368526787339005804204385539287731523892688629213424959319989822097613073931384383581873457599639039871300458003645959083238517253392433719588779647308298852826765412914996285640816361185105303334938955577117390569835699458234127300690924046958190646528845744290690813868570452584231068520247345332922805964453919784363779207624315558299836520860076416107405164011838664569151956411817819877658570469610151727812988888920137282052762632648656530289676764882068259998563319316477254435266139635319865928961079097781993308117393443570123044176699517807899414780809120692648063034293385807024089995421390145579616169759201033718524040979918378657676582740796077256008079127508950150847696660236184003104249711093665374950369054837559263631114353088702806562791929440902443243997408975671960583942707724065128738970624347919184873326788420042007747260700848983443418226920210164509228032127059500911725680949583881725971016594103251881169710186652676798724615066469906031841088580483594151606123673613781407411174165935219249127973222615301954289547784519545002204541834159583561523334465777789516525882630219000363540150651295638960174443874605992191329609920878879735579958457497749167410589329503286640310890073611590532702162020344687442436281631028235846851845365816638610416591217582379335167600357605942291380552169009831112320481260408154006694875723697075605926393799026001940256872701478376649539793238101785096433206962374297888183562646840560425552398901176864827809291385460280367152983171327132450362638188501700768435832094766772128160300994906291612715776423777931729171436567112781933780249067134130112238922161285655098151535871403173274242044822688953424664035927635481666984850833292210465860511947165691180561816134310004632238598452870891457582309453158195955844565045056104513284354721920421444359919970321958378719072835993799184614852553783921911016759455647111554990724723932069074624560193280315820431637659450694074947966231024859715367275987342650680612609718095463562229658869220769604388502291236520604307067039835089453618571497325914488769683120003950386691046380527461273393471807188294067993777050441853528553566299960397179820879717589793000124245457662637818284709740728042477243153957572117235474137071475494281388934609090067785426047125941292535240701444688566957373538954935260189945560726481084077482326356420354784231502690906390482098342530287644829528425169004428874678309054288887637417536197545057626276241439263934262764087085115796699457870065173728944414252017893795380485185028115967443222629279359349057539878741248081722586968386558570647434763873808841812563575988790089744016811691868167308246104407309172875221148158751086335595254211701408445126678656416742376252465179029270250490945629177246271536065765203292562904532153543691579040574165330741351075985072621309013567606943156026353265508012394811948491060361670564561884094980801002756249147590872842232588728247435483846512582551057760089515808768347557578737559046274946440418597230403588556367417444692624249433097175685871664937591170419554518760740473124266527456913360235145054269658718775514334665905647590403593318201982303042495564503213888042520344414143919799452196190563751502603699702278413562460205648108778020057833733112293173498815884352391981485557026847520432420565907239594378005363247034220525726471679734446671579027283514154473345334733674620405016179615892366561601001221787487127065658370983850697175604978299976250664211169248206122304452679032442982409095739393573042430917895059332143890897219197704987263239955860337072591746524652696493243019625198607634505743068395822481004681641172958794182945629092528512127718397034492736036562152841968314675999002830492294057083355745140324594212057593920104672043250696398362887612351182771913491731878973555502645503827660382978119263132961732002033922380666132866853403873215649327304490624986755939783106103981742308368248178010545180452558975307203439582819393420294838854129728706052609302795127550963170494707412657016018240695302399242702117485200115319189647442123729747667250445622644994013680726684950841213264017942987631815582708581628789144468260494978749822717535921075184198551935171569950192494188295809595852400230825113648869246737025799956174610663807922907257923846320144303902954877677271759619653289046433289280985831799271039463483886439923391512044658171341085691982123385689671240569418906522504511826120095841318097499988889582099527842217411741707027076941095777819394851521196339176136609979746745072436823560607498029926186421010874546336299685967604614234622159488029103190464597989018816573160133473321075243121988691556666247120682853776291230638533197152500530430910034685626926524626132395217017155282596199180238701396879417321426349290468711431868888287978685833045345614047465947028123433342363826937217031683855648390664816906020649404442856814482042420906435664029878287592769270215591813094220929912277937522128000539681653641194434536373042390406937760584107607434747677121047237239394532816996162590265333773863477951488136762415765383949138893297422768598932519675048438355556708126280746625505147370308368619360451948669187803285255014083006853342650834244667937318966305715386343313022598213404676971020838290067899247102977182278275409512909725569570626871290507661660243277380875742689148143849401452924378103061732072422584765009535550755292049709548461242639781114806007953704540285355127352057272044036955710034436729887785562525692649806582107011854309004454649927199488813902583645966846430080089993896485956951309616899224737571835111285503866990788283767355631031966651190560696250490946599583502269799220132329268608503868956700756242828712921766006336134409197665710250855236364784038217121276298856402569738621209657473067796922483365990537544573285275664016988422991229831577470447424358586634375987152384080235441974032247376782903397439147495688917313486262790625008569109739299319791046164420982510459781074706735504874275700658389489751880297460949697200853102784272222523174937711450662759113026227102368569689000592964886926794354598886150563677657572680167459256251294020689804898988805798686753877081151742129358832281835865603605063976896527858183481613286480980050335532736819900513279609475657428400374789240160465135966220382013265040775265907998008332356633976634286578056026017016705486347770412442046303120801006238252982016976341622206497922855527224466203359294693585794894258082626506949825998039365050087628766675056984403291392044554790467501115684555941726916543727445349549587755158200272485775103620792900414547633337500198660185335910828388510745205883551137908132697704589230062894280130743027295250309126075656173686531481697708245248015849381313461292311609978800046558676447107225241750496058510943086202055101357852575191830962189967127592500289620621608797556503195019606059627955955425617936599889233145164525476662488637709108380358533180937606574788021220971759016860607924455393108612815289936373638587351797458764307976477987729771188438893014702437257097929378671548592174689067817982631684040209842924835189321405972465019364676112629031288513388332782498501856962736829108852256119168722910980954909372723502488515131432600837428261944214972159768932753445333190735013242258473355684638415636198213175652692219338579670836860889701969279879618736019615870140633526653283844955648922016926458564993446085961013729107011039012262308942755756080856287654808382530472789149234503985199271370964526905267212203299518787971972519262571012960222503056191669262232547259795660091848067368596414215522004202982129560944152021716482964189532076836057613196789131967600753713805725611239705494385628627361228365383568115849979828504453785986761464423970358224975743304497020371739447636251149227131037842827017199156219030285287967778435806861787076776747151686390155420937262495234086497738354805045865559143587563212675593954033580796762916660858681624629552497530155288801138311926770348408955384292221808918893509781970388659616673962710148017981543324673187531433755326300794313102329816081169695994748357284605928302510106727499846144523657950367248574802572209249913073381330928580791861682239852070532212176709282186020570815423209929561435664686323416990249215477997898304249276206209334730908927306588511512187285585584544189244486890799559274708518801930266888540143707263654281926759940631834292787988445887048597026430683723846907593027368921703384112606344768633561985150457804503839182626727053791389402901222188408475447950895002640013113086616918553078713865370743728446889239516094025562580343860132502307080427746020717805525492520137047057359905556546105795255615200100934315440177244144125699324841040954900284875227008077881782481433775900053210638186709174235979101912609253079558315309623519041782043933399624423405056069135299500637632865149570389910017212152541917867118419644987116984441419027204046508557678734935815610388585314105290358071670647027122813796432575429522854592403731444165468318296027442574440238422836515380487839702219576794476844282950326447915569467149905369587906351985020255756699980089207979104576657817297400230688085403523902785709126924854448265218256121772573363915757962632576649717571287865073431724970027195478912218445094440017479875731764891158995828841078589345117123198829840388233451165654872383961899382829779227392420850732730483794364260390049242513801010951964859697729573899964727376887236612426833228006233484866498302319140892931540014422026644385208978276303466976943901589265735557416243643150316687063320974452512271304639709324412366405862521636916678361705032738429116635831570475684146926768424133242934770598203227915411789501144563995109340143559285319499385303020800394808755409526319302000372743852155042911820054835103379262122883500177303310146240331621351494249921155475362322773498985336681610226059039816108750177524119191868806566545499451925278725473611170072260198879176074650642307188991626425392130032852347487100653763544119039477817667966685267526377135130910791744388078622232396287244714054563845172519890863984920163437800034422266318671605701481792156397915871029830779701737495396163443666145150337058105882147776821882558988793525423520250755580561586789521304388195376347792809233624139938469370999019043497804457837818087923437740430565472758420563996130548420734087332527473087793497874171515791808556471765363884486363625090682321074346996661503773165545467132677872943777659832106933880796961475533413861192258617800864640685912459107344524746973699419543130208987859146136629752500627522903321883656699304266998894916215751747037986523554416311065156510678609418359808890316687564085785875667506088735588866117765434285718513164649907408762238507873683106443029782569624316316339634963358787045287283947476736434306101994634809947139243181891225378829032015540793828002826589983303954209504798869074601649225163356718383870383213787319813896444562885385727234527493178548836278263937071750300577450453337713082991279747263238786361800647603969649154360939572557265780285519038916445593236275300368153424512750736549557687591040180920200649263407193290982303949686093533213897007874486411616787768623045450247994324578759631279279719507858031665696564922697069833953612334029856039040309349982940908231876739527459817544774219453285408253524277759434586172960160904520894778309209823914607290527816980237908468121732458096112031876364133229590018948831095116681178609502623867341329981441325820727511455214624874985181971112028116468739963015049862357084428548067521880873829750004805402467502659431103659384675445684513234552054298983364948620593455537177447771269923491220094281464345497003329745127386832764826883823690843353252629708778062600396901596488901758949897631017146310293134643009568785997936812826883064048454375257367407473667420506813531824666003066936298164175867296646691560287449424915269506058392742675308153134646858493378773035065750683908413727858377663249895571865955074436410112007544720160565771279873900243182153250806692969678808398094666599715903870500827536669886878602889030267528450061828854160090205483598521110091659387668624034835742976607981480863982054560462191791850969396280378738428925070807558699912906154539943850266071966131032020601641579930101136868102791800202500588864343879673031748615900581086311941445486501661744522904812860435349568441978040291114930794094811005403613721044538276798427410718233938848385213886442280375253221422734136548589546377073677894773348427773029406699950125632251116464203848655306757156927463931738972199824967058017943568591596937496918792321036414574252555065046773304085895776911044903708319666015384102932999152939988279213608753781545191323801504835743366709778801224785057857974895119174400159680916981194708152337870230833043933987800796894685809794294050178545867528984065371547129361148865318303378157046500348318464514697108301141452380997252431999359152253205959847033412011824719903373128073486916036814851589230983321267565514377790903779694090847350660627633716372216809529901546229751883336383685823953581878137763001189210564115610845216332373443061088608329427751047279102730012359773925614480071936556317140631946647315294840797116425690337110709466538255899540624000678264610619619266608272293435792255447600840638994788597344112167620359212528965808132276705986501208321762539659447579207613183950018226438340174785994006236396011395669971437483629973700180608482422139209952973643962408512467492538421543951894209068477804273542864738876875000533091558511263587630297418831056742404299407091775985800914220852182970593673613738701181690558972793922742658693645117504507664728385002435825880159406287824302079150625470897487104743125312712300129273553110571422921143348706132416578692089566655309097467540629524859753661410030414111657475751016132649847998455260292848941843599617721252215207451398975246773253145330552470559139638580345056559563175388481611364369523709687067044114260948615995197295583692181677546062506927664272973018526059162146924443857947210517049772524895546851471729240172358472123211498696718969310374254906862067897135244205634488538707704477110672898913659077731436182295196173219949976451729001509970467136147080097654678779157004482663856200408526861805661471204407710194894292451896346816593517958367956130396129566374392064526280485427580190065777636188348215967047469575066334396065375692348136584288136711908937360168807317129887071487613381582330808837054239439314981812228765646353934675746915818280059809494042013984164230730984544057637001159571824671140800905968578395766040065938686876881135731710436252403992293152035376041793889497315350508927836388468936142748014988954065221664518219562541458979939257987747654483239813347214618170520709016237842798805968708710060463721118945191359113834816483301569085477774508195807147180654617110212437133385213784703233902280852280518540108894211510026124478411443525957223323661202719985685806116372729025609412077048827432777742533832693935466896209499293143389745767556112136206016282969394861714915270087732841392603408076392337535651501000285709074700589739398049490655901868825689787945206720531199113303674254492304173222442923009313397212094043744981171849881030970108725210489577674635270529514166266902865837199308389467280817130296957637479807482612825444104068213198693059399326930220700059560316963044897243846880376821903578567998756165302092054773026827832523899066897621631717422649137532915235742355030394343366372419767543313403743800281273972310061401024408760559649212134527961843037297566186123586599751543550155138629276883581600813453167505152812298927623490577081306397071427471402699515614368966547577028846080928788543813565203292182517098098007846759361092216055811873689487068054604467373409258959635596953343914779282313766235003715955249668258228240060325478638145328167731549101955419284295446160208126713680354140739843581972498900085136928955517955641517400772499952868511268467281116487684393834338066120882625407439456387670038210158394748866379976762741862596689700247355984993756545872006026432757481795959653436692326674318343647701692720200392570388018320169903717018157589819671188674851976143876768465842442054758922690005419549506233312993673637159846419345880446781739074143598328924670604435287875658302460264394261528364812302497033447318373858730989578469860050754266804434086081215634714699978445747359354818573591959529330451477277208094155443573274733814877377850331623708134083767525004286332447382715953328876512148367351797152676533112244047048083230439910814814873996404122293151935251929183726615067116271062822225393481280496571820569707617121472248665008851464408528443709389306329624070378280789587413363234244186829444650619435257613372970458722497330255559638271011294577754820032999175437639869729187539156675276481820735229110738290477111181397021799481060126346113868845790424533275935669154498572214345576909510411644593173271849038215695592842935088373471190351937089256621753233189972996027729894405718903352051781497904905607385906108655268983803099541450799943209775170160725256142455507404296892171193561623958094318040347662859023762308116584992498170978664301585990673399553682888782692838907685919509222350510333673697801940385872261884266780023669792310194682740786434511321176007715709228585974046060234886794306358284054256159850005421886915179423881712018289648125436713702867191441671364072597068090504081768743437466346007204574358283202609825802984821764966159032885970748520559107234929320882259779620050177578353588368374401812011252926784858624777596449443152656888721570023937785958935462752666651760760320613529477014500299613783384554064385627390077719511719848594951424281219211610263690450301353307149232504516150877270276918447718959607623602821661798338478594856845762343756194785995441975569406162470140733903920321842357549684859242747267381143948912913170751811896743257622833982027761194292380418262723794688498531282965665821403056201760554868740861331114141399562955418820908012366625820256765103242371569858625157152523448654476314300746041246521635917554458515248107255783410254942289164278776236576435018615710849619509177168753456300475016242577405146568124496128516498889441005537849153905219915389064248084559133948269379833174006833274983073117594400604980962082014126884935605317812089313058684395477114071552222848993978703157653999562639446870227872784836459931850477001088676171625494080361637015905365257942842956489824238587219028399868578570189224030634986407764840048393146499451399073623539494293204289377909252945181634937434577199224603440683878080004942864543038537371201381931812758148213967847937085387859089243425185323627477218206153007333774236962748081720145612859580659808858886844946236721547893729512743144615538036464257952863154400959651680045291922891076200179151933819054638052756722955628990185411980961018614963981579756429687588902236982102562389889304760013703571775050203914892173389587091016456678169895458997870372618797586728851736081167456569576979563540711013418810585487150412214244830840551373814060104680154766151163508035821730200815729071602719544369514340383734383585784753190239466238030776891608777453126861425072959270003652266343462695370683703925224321864912363962298328669449633324696453904713594866393531313344999773531167424278152358867043537918616556618427553321759849985158026668173942634461380093650192072887572874853960790062297429530966356587550208641422047432652247868839171565341400211817497986176232516263518962111315600018704511441100326088401159614179362823538717328340936445175980441881595850354585219190875855536770989549126434628957055794269199739316227418443831470759778990996486874179417940151438404377645041924660024142747387294435532582520421863178210073798642719712375937929153239900818876386101533523676988098589849074821642602886930246265469574456778019110319366576735816290515158306722979665937159098445876392308049769739700462931780237895259425521113192120961780867875243911271645672336785619883658308994119350990764965153624345638243017567137564115282109064708072518114936296125835931401749233166414383357430382355601788944051308362757140434960136179201235586969614595103436110607415354860181307117431253746699901652617433540689311192895442619699050058552622395079667926709247285886671408502211696143015973472129553531584963324671036664652075851074021722377106721561987520338580542690243273822169435432328719457145645155491175520665434635248376322039298230686392279092763967724815040451930920656128923765138541047082841884732881536421872264489433513897883643959006768069346554403483937199566858439782960798195686659995219245741711317351763977910110781707100701706132288472045127462923734940244237870185213835372234082929865763511425212808547205821507725823335142905993433174899902679679293772817360347462367215410510781173992466556195555405032406998601795828379136209650020104461810860971333775540189202399858197774245518066826230326440404805778280610626119005199421432434721773216146472625499030063416808964129487768826343013570477782308650457868428765966245993258186458252505492431104474545616729380077824860677366933462852943462007794277350892147123052237026525733128311995935614522398779863758933880444839033931727018273381834295612931933618370877526971355325896692105214582025639667338367545365475064866468042675718622614631655628125838324028374675612446196241919196669171701104308924198437676235459900411316970678794794439523755370222041468897879678439665033259597368301856393526093303250330864373890050641385831905850564939855211803105553040373928134073422921955862454611090002169825194235757594850688851309619538687879582034965597154356430682200724429806841363899699406565345804946653445183621931324816536033516620037201834772682560152969944059431011935469584851017038464116825574662103534716402632840908873049099311315515381641259115450986286151157336377572424915152899419737532058560711794898781333830763889160728763563482267541461950703729228405571635811686120229054619091861716135643082005658597876331341991974476604789312919906400530038602493711074062587328223904557782463185108355584302119787960065679519172987738618382112490160128980252849734819638879737289573399055791044141374134116844465460894268545113528392311672587507370767877680153990027165651810034677101248698346629847647471852712672609165855315103324144045862228107117493824989433617335784858076406381350430374851991405999772712317639973945521193222391778400016008858855113586083485375739818010264186666505080256108269425471052712201792120997885139348971969800235603141634902494308069420302562081544002543528994598554988716132956661811487974237426170756368684718045751517999975510201703384245945925854703104617047998327231374641725036999643862869226454970110763156277043673622844029302391751845636388893652129441755184797593277664069107843678490990957850224085456541839756049399934887827845120436929252736151186837478203790146287171599831983469255510189228606790615975180133613328519738180491652924964078692365213285887215441172043721361246843941686179514629099820520000537960852509252436309268212835758897186639436964902798877554622770866169099392406932895402156100069730540591633785582196088418186151917119587156273296798257696421653860486617324400070977403174794056876513907575237156279336876774979671215660417740260731448084511027480828289518136519420803697472724855288990117008620540437719285991413007282175297837055356659259614900746050568639775450115775837630538265277562378802839870413890531702924578639424402488869816651328042498113524229107667947836725077557139138844600471805558804423408623086760366320004909766522068872909994867289493689431152279378468514994527219899319458900570564196756296765020472356148543629155696054802261858338836945374709418786664562716490171758048844373052914634340961582256325921617477012145770620463715908770677362574567329833977373963400731490859291622279844390164316447880580215161859240658817202970605615560361288641600879220672170322056425920257856606895326710786245736885824943120918725312555476133250774780899679998014878089379031725501144595226571756966105342000597986344798875392835960966647707794095227510159718534032544667584712620490415283900854037744572041856931244219499791955791906453492155293241361581407389746074403609589451707035044570294842469134967106874905208554798992403579059536626366795648740512283415162677688302531021749766849550222984449157308782744589783522220314789969646946443394555994113680598904170508529635245040849354287484410235921597537344908414414156636678125024194901405269623529042998150817208468244997245887869248457131341715510062632791232683315251992122719177567758017687310415734647407134816156638197989925874056510580184658839477198197566222928719904037432404936453465909886974675902344950616912789625786622586166626420565470241475904528059281990802843962217455313561355492711264677013204022432659541399686114392829702541841969407314373910724941929475502830089411377977782091959409468269430909867830488452948066661223021578176799309818303454303263059515593749356792865731621070434953749578601562062948111443066619083768111694059273751317986141541345349230352915946624701054303424638214284766941928816492314255567216900600166715181601802408633387008818981854543318909370845608279475570037740879055497773746342443426583857834317310901378912685739660547642773173303487755276671822703175451214666129312933664051927554673432030843845106314101101073832692669452664293342314568973002654530225426005156796350033073339411233823610419761376172923013198415421508347503962439505364873623865122658588945623069061072375410234053478604610507768623419163347782184167739239164570609469441623937940238105845648257388477184187766176798968588915811886184377307541884044223159855598081505900465659664314802049794407936932557635076894964945270677986193400397619145304615114943310885630483527249906483180354965087695481791410818678072146279183484926041113825495183974065791483134719881208793481265845056669242656028383187369556125234103790664863374608782137459199006435237509740870800619310181815945201449324537263833388099192718568953075777542649596910463401781873534220842500965250655629432037779453391975676870672079674171574566212630339558347559496690820418226280976096156655649478591181264394710427337935177629789233523353642594376268944906248146554732201624075258160531658420231848326637076514147664796167551397010572696321966574203087529924100589598306623374789774301140190088584063156157486146421806581579986623396712637171133872544273626650677085198790506792524222267355749936493936425547576167637256100364727576021337533814681038953523766760031741772874250650101168682916099447441943674167784066459238767276323518813927932107147039724764519569486245012466247244253253743587988329385332257290899221928489571916405825984201463926737956905209258469301372898494421823505681275105780131254813530782819653533121393536085741742179297351224043863900759892640766927998233194115371404985348141404471790241275378894169327751555396313218930663643998231962518208178485518227680414045478552397737665914578632160634881823883942183547990217065121956532385073143190778267029371928997284436462547889879132419735714402372364130674440703542898430213296398122064788887991787069431823360352436765344906293461090507271126953093984733816270184130597000405147440493092786620490696273689530170569715911899000657546408163787996028704255742728762229275667800653556804307671082798906605885592316243730019148296442775491834448218885865616296841999629289236755210165624376743237125991139600724819774378001909297746629831343641626407054000065292801098365491595101443172882284313657640849909517122533392578773336240212717273066782274249220001741113954108862088846701607846162366320677910000714956703849002273146905942811913087654268180701987520339306860447395615031456491927115662943807027591943071417174756319058502104445668135761930098015724102458726917702222635328240722873551425610381165353918258704335614319366402778770792129473363952009041700487851085099823659259641433591226501127029207340902154550605080101038330917465643588934506521199226219620422827924784507580485713051667791391240317881344839849452095748525156339351554465499622071586167219570372279550014995809314379991964892692578468034666400718263630009989509021546324366986988276574375331014798860797142125574934175184870734138579822117808797250508065945520784606392225352044217493198144564203314707344836793758018892406177975544068385352533766400337347041380211284361317729007553053199741851475891579765567068027904583174620711403866837887977380300026257398988530854336605064892647303153041023789732480215844556205733583858808700013747661310749401322176940994686544098148286149724310673671009138510006320906551069972224809250262486821337443301186579979946864194968123524695801595559721905991786328908214420997416611814166929364613076950442094767511545457282098466270498599776904342491338558909804779356566544489832142534149012648771128891773721152515675620291185459440662184266116143156206618785829191718796921712894404095188461921488616737414889891873644989255908192625617407807247157918195546589834980096238316161928623881608469219037799340451261057489142490485767038490362786015726817308615250840739432533858350938514552086881762561979846484288041361606996386083868267919513107567977687215703370506867142041369099731186757522457115970589457291915517055552091412216812945458407301661153264961346266143522950312216474775894114135806158763077648771226273608255908993244120343109820610191449560978256400420778191711065527983237435943844117907172298921905615214658214373250648149429833739781021767328555249914655861216307291743285714102757427232519425492054774076355504167061039485613880447397705592881489056768888598704528760312668071747751884983350686171681508246852061575625872282768738680642983391706282071751147460706809645622874249756109232409048979772517683664594727669247756114062065419890249524437130720906868148306297455474903609943185588530748373950183300336255340510040593746083969314173387031115002003765987651044605003980611703540955252850063802066065181558711175937223594120199823551837101786405189008858523556532831359505170980634485508186562212429011600065471557627746797583683675440734923576632971261282651199973365826365887784469426382551649882982689299334999919919872276066398492593486191655369122208785085484555346856994733177093934420907817448409926318307788125477258932504010910707881140894334669250987745810231391435779638250232659773141958335525124346587161235216041540779146418676247341664506229113676655080705709703331287345350236322766351302938422183575782193566397959874164363403707142036926421959245267638052208653954282109886756048473796734838154374909335188700565674562720859791116057755457882917058081945026016685629395531692446800569918595321277499231482042856065376210520927418288961447547601083598713603021106463870073652256516933815097546485785874668737570327637538488843124236289540447610863611734409170338894475882702444115459282783466761221114019637254091717483206881058790474522923400796613412556178285246536896604281164677018347511075498612775896638091573638322444349140244678871238025237891510104041319317359872136152837518085618197167233853959537823072380157808989345097369067781060947178300128407148444172138268583747625083211675439522633626338902125617958303051420438849076192518767530581002082710273621016936128860978833358922370344776784377623237545551912948403940553111492617150297925543162558438162875775784126822635917268313582887466171885200476509868829456070796835854198178416005191948170500702071419753949432121873558228483892941326027734170148975537091184403807926642308258700041125769662973683113719102658715473858795256598830125310253095063518260936698710252371343214279005866068115841912047929472772702578613578597573594128510983911114147424141311355783985208183562509168795219532106637861281933535985635213084439817459178923348406668503159705705382110783195762880815932853213095419264710346889159373547175449792988223197531451920918391274403242847445871683818075691544538513059696102672298561716063686448692092084814119693414037410011272927173070324424771027594515954271491349150521049823378570691781195356782061330388654285715028346295519604028378195966015161304393870065788436141319879997490793908730890465227823469796449238810829399467495223236453605770965105992804693351350864067456487098060951896321919730624866012589345861691646044635202383877123182523337168320693864474032608345787897783686444357095091819731103056876028828560009624315350117826163726381304320813718113813253453695422271453738239361177659975540846271593007844099818043120392556998985674905912746423123411586805937252136426091186982395034532455650314618246295057495428069673487472554199051341491754261234976562598993776815234593021440942497411714165512324884477385685866280449273718310758680154050539369726729993873376032362419542078553296737456036612173935486044237289364424625428091484716387457859442680414273819439325227786885839321379898486673027864998711768642268414670251160469157007011972328375141717697516815511932969501852310170619179736430536483817758602966513542955540480833543030963299864800778897096044600463258054516139642382668515761364288852531409475928352486180243287842410318279266509059113104468990345862123873763574830453906736539207281720520178234125920598324734953971822181732635494613711822741323934728986888328569468955820008467743623582786835055227356414074177933184024990208625993466571998561096356950620419714290422747185028794062113116461477346588531473420470321661349211443448250140781811233806589526387071897272255629659346238683734197358590267390627916692207069900544183543140197962084290415018670420849743059221682601711770940322315499526260489590307556034463474362506275649327327647851895024920493078389250366575887106190288426962855925635246995629887207832812850688858105755569873818635731097149696728994847473446366108303596264267126619901467856432294324012006676328329187873487742371979937570701049963148751806537479521013185638516515567499336986628873244779080117253524991824951819167903188910868181290480925047578302967870983007738173414019789870176135939929641871982948456011574372994153549717771685889899344414927861475660302328854899480827728264567745256725217311853225949527519701471537838090435750678142979514858498221821180129991577593013899194301084087622680369135191947441593605445538077378457920692718888648738084891594009286885205638013508555742002965842571813823186593103484037242046148717569733538616660705430757714707479839104437519437726234430704679449734183156147916243360325823537643058301775374099591161927410665364576252928025747784673145296577137909114183101200075759852417452271898394456134147486142878834811715304469079819163363222290185070700469792831563033644839427581793394249695958328730681716227542637823048924704163688008360188219937663412686234715351579681226451771073009947797506224296996507851008569448954590148577822351483261701242867100975762313304514239952773719584239214623197233128002618826808612021939076724343956656215124665067498860130389315983794586722080879893811359523291875370515862129084146527052872688671322088225956320566176750356242803826085003165989423751305218152759394893379239115454455562441957358664570159922379300752058679930126297857321596041509701130300303170292416374587065321416495878396677922802505328889832180514409361033423624330899138610569089529561994126388562631464959056133395598817300043694546008705736552637604387116214973115328508408743769320622456458358261400660761040977787507567032469308474327216355494435242903542283748194947287019563592281335951696352009327039886585652311303713651879220707760916104447538536031096285171885753455401160149285693860812297796519252787317055509993131055944353378426694246518871502106067505727090272118943069669284495375602929287575765712448382738515837814761595231207042835213905356489358903735511741824156501802897372636940753084179017369798527827060979212783583642177792011778738511122212355008513227909276723031044894597231761967773547639214585593066214482783895836475285641593542794380318186401006033124767908938753967586951359461987865386051476182189344857633294114097660399422773873566028481992616854850247154802123362918692689955353720461724710936465552463601782016538479006876697777150433735785000847658595931122106617702137334649516594495674177024702156699405184756642916719751586221982271621777027511269807254775531775116914066258639247254277322584263335386138508121657371146032312719449790133956020512754193637881431957587732174315702289869216775213723304820367099900624313058907741195704055092289475637076208978176702412949679685057390992556933731830263805455849416973494516465321220497503014006609793223747628777693260474262790784759645225963992374802606926169453442790132729255186518038753370524664467722152916754413785859888925924523887912054010671247306872931479461313249082306041230068183565305670261650904951342885598310471370328818703790007684752049586612446605443067255263335067904969135838600165677696779676009950609683869542377738735986238364302704509928655580578968752084671008173435296325583431163666395070320695973134147557174267950208234883962719281193140808369910438145260597027792292524484852717980139602309223081765992355298130864006282706500038290847391924609049242837656309454400595482212693406426436678064520808376718754635155857451394912055146882514925777505572207255395113256604131860443330205012360279211580685775659515018281089284260950043911010745895532059169933939989822400153354398137730538964787347003318940996954939534208063901811626205234627874327811546171218490681808191399489819382394749251291091280932840066673366061456980320808177752141890710353304295802007333028999336811101707785768643837269997690146039002016200865728324739351022111135797473792999103624220879003179349393090175376180639190477524621495552802395355093542517705603772314972528365669696597401403035826284895632394107206731095262526946177271019908618890180742752986520955752789640596704232022759289381189449465037201549471935983690121229953480418420046146856189287810318581658080548924270716815326865249685340283742449680905284462577131715124478019831774363954112074937994568519424375333215225825347179463361205741459012466812882210350381452379281694822608037834953338748534558058342333684241856708039462152088441552217260496916747145280953979175425813618568562762459857395990451134062391894777151890386105499758551942671267859176143119299004541123956086608431282480029257385589487002754017425885719953754098958149871803883970843516927882737799401894635898733432730954394811096454291265181394773306099832847423457235340086170825980353872632940089868251511621947738284416740875812507545283589545126057491290819356286394864468777988741674730668851563165751536317863136058207478224291450390338992171574679214208430457733838791995003855765626640539600672217167030690214576767027873771270248672944582029787842142711760983874048863775962683437481137137711389016945697612535977897825075043833638068539639152231477720074521265212028932397611088865326630259148199884332240360725340454024509845505925485345980285726757559764800148754555445621465153653148778773437717855666943599261127208593599850157498700891040822630005701847839530491956715791252327463179979572639813708607660102723304301781039477716302931987235148015406790504917700767735847943592921798583941005518451612412202866549657423251312256589237652231190184402434038310417991320174697409266362191054587574322200498188656720873079993119301997765639147510104880702575729775376422129126209702619129042448131594275950576242657592682076174749549512158269434643415413499451407853126306764867006163754554641066520348060732629456730401980601263253953523659473886150576636757333230781965671029800074037800291114502040631937592955384265034662478857581913644296516221236436015909600520600460449385935191310547055406758106078759617890370283508238500013358936633635711877240145363332233968683810952486672599914268017047504629310695038417822431258877436061260227135427608080813255189417815596311119815222442407009372974878340713606540979641747230342169404317439898407735573394245731031208372593002864607495253937571978617536220305736100096802380799507158812888839161099926008230914837761964279859529120469529106856379216833008021486274298767946151928892250026354658936764535815147179944549007054726985405579026647666804922319222553553516518682538809883820597666265936796351438661678333645553589816352290365584043228780947165889539228187725473562261247603142412475427479054786517505815304441386229679092130821986845154746564787876842227569443651063342459954454387003505672010016828193815205795748263091416829701301522619997544354201042888973506073182757054829556744863477963002292865499718454780367272864528465324276627939167498705907475463777632972930208171196715885345835365044396157955075389319725888625061853943284653776124880629992438754265513218505952535258899965540400082511341629609876592181338172688030146231271218935567904337954120529917840125179606967881081303282317679200025102404581378165985314757898545247765173485033700309621055617128073207852626670344875303676739469873299358735708970654753028092005282335915713160029778093187372167954142464822092040239748934739253216362197070253972178956030911529741868459204093650038075708554764819212662982004745826943105892479805556047032950406010968478638471208096276732553002619149689574093165932511112874884914424813928183969557635632328174098947143607889562887539408744016151294637632756104432255478345582856625910754930309413054989557926443062314020209150751801599572792730052739665100553668819286229436829068481197775352851400611207754792227005981203841016305874197529098637826861462474227799917107137420756507898443891601899568485443844785869810157792856176150170433494175486339017262434827479724013293010118087529699707584103326678685065434231759604107708854275434182539231610087746061324069271182162288433879080898578963711046561636803504842506288242611583723293782545913335676616618467368800594958124363572033582402847830367851631424734474482143467432747619633685741622985521115021154485089578662463335852966199408512621197641963185426925187925554682850388132735102135591790356636369749732336557137489139454622596294474015087693474249453760888779485236183639591506370184770183922941194113338466296972993810462405882560466250986262165496475655189388026630169842312665459105258780329910133726200540469032471514577306964366392651090477741998408359148621162304779544497583325312749550435943022714278259247816577487011288050481811294918648100994433296023638584929006094225363808881229580897439847785392747677277360472943908770030675353530378895224131252380254194391770564771236487776200784418323746053923088889652336495476090960039060253995652036568732982510814103128960675921445451391958888013482564283289265792887644852662263790615855647648730714780964341952970050097952060212573763044219562658468106953203910953183989376591176013252492350147315759039000288925656015406181871167304057023591104465742398978429662741479227928315919934914407708855383703878715993514738948545215369488744738283714471259991458085591095187935894970351134072291801837965695436489107962422116888934622678133617698098481045699034137549226091397577651490973643354959957433924576577555562531603531551283431024360131533131318365607284360982627953557497119644281099287372628691366390223390588863895936175882334517039462418278101237264632993912032068348133787281287987471489189545853026114033917567097701230879560390867591765525108304443807541024909234568977169548543074411746569971967336101202126551953138493236234525371286483657707840957500158002315920027686903289869654924183856758274782772937604792990966751696287115472975940834703017266668256892450236097168946349229118639277634976493048113534450959021060543459786671632463810942231946924210702908502302381554628422586008490630198006841650270097630123345504785510089071687450543357333318943614213844662731351116404137046334125267416385169532745114794324153391383760112767882632926449366065415298118379160754304572967983117201923121691818310881598205076255435425660328098346710323697973245067160942816463934796121088689112871946073201751387704151206310772773182553771178410372224275118447809465553314145941419724203232427100366371714519444416794435621603002471352891607919137495067798437050987356583092184392271147994219011139746953648798680828341403414113273300560377815672342656278423951972526967192943263110649002625200595485265985239037156028027299795476180534096834386437874296519574859528273412510292968405568161962147401277268855576234240205507613545228312296618981046870636798317928801914667958768077168501586375716079708053430218972830141145672134385353505242496283148795996741667496773509983390609073712564488709453176756436539362029412883549200214339459684294819147413264811000041347473495265902983714647959209258928227772194625141220996345153607577307470784416930134398194673161064184095077798787167946207675076593647211188012332210180641757245168885817348775993983340603520629119390996568380575000899906824358626063324880502296156526350687318865070326324664310784990277500938787503771143250403819653956419023346995086167495898952985424339548536614427048305617336756206694911078501890213639654934846159143067580625036403363292396154348900955320044424770306374605963191037107019403846164769090293510067576336703483178534883265475334899672704119716769711499644436323181774833360435574337273827437160432205639618972976974830119481602418072137576570661208714681665559875194045925202944660754245921481675116002090512840638683527472392508510125535001178469120342914607026592639362923454217200191899246700046067751270193339665108652979810730523388710935450674133753883023721653511755395005239295905595053389892481274290038321753872421527411644081830533146884376750971677053132016458259632273594966402360726121103736723954428808911442667748945403583533410260105385746447558782567825685735018966265409071343519642949061083232168892758278043572926338430048445138353006302122221993190935281098927894858918179541134801176263961071668509905788906010345473583123411371877928487092562250489755759223692797874018980123417114407083178089914778187146893418831922487338666527375403244434325549377756570069794196148584489612244790686095297002499903289025514168277112564981121344147759793957232993503621158234191602776679951995568274751841361463354665486880551625286668310056974427850942575135791134160769416899878253607245664938323739973975047116149123982575284291197502313831786964566746382685450756191766318772886485610938892368408094245463944560220819269918447780918459692786783153012163759274986977899456049564636644977129774220921803819076517524965766723685469344317244316130201504704012251250235758367221112555616084719160080741690251621440204638281714985123756586462469123474217341278133261252160925989051184200922497329602540440690515751756942659373131233989611039498351316629251513184008597684909540009887032247130365012748571591350312442633485491066142226065710750680303544782175339500593183601217332973835865457354431189932193759204499445591748377716478281225855389588146711526581499007798990039612864461168952192454425040875942312197501660885809963352498217872182991019650921340738642743478599663320974006711149447752037145488187323473821001202624554897697422542645051461916467409521834738359611811994369386343098273125714474856775261553233539084527567988054544540211871251514499694608112310705022130188818742521384317980877969018533129953624922152624361411213566900782792891880434249435290970814052714406920649789153514986857452250684705620485531125371847774081180905298053748863485450250134486274227145482722615362754302931598300787572491276881554483390325399953231553377838735263768093732077780961172151314094427068019721405351428028762115681314504794851951471406315630076348045971078131772155086043396781870913928792635825500925550783346343814806028039742680207424434513876609154232670523377540340997392853432201741514482557001913203565539226884781769946981251245167043727716792383599286421508859117446430005063603814578495784709339078416916546996242163893455620878711545268871090477632316066284730039358768360065754449719481668151951746452264909110103522890900630675089667880900772414854384439042702971087626453534891596142724238005837464566815644098562867548947094420740030950174392898393015298770922882584030306248916335264141900672307076607031994292500418452725239227849035219451146003600067240602851339869983932858855644874499948794863652970629130103479989388384278639724021715114514045528023962542417466918324968758476344458344407942116694051770771070616862850764617739420974302136155798970002606697915542948361643628342355729794933136495308716842542458832026451278027176672776879790206310747254815156927213421968859644984162436005605981273567219707665034592950307806504489831866806860859885765520841386061439081983824568789251463168167266309316084708377632916066420693496339771855426400184990025487101371734880410946887677333440202342706258347098830081997892414626253012468494101349287548486318358067059845396932565596760480478057930557053889846058467944022022790788308685628864090062509632397217693122882143691318726387127667733111891601070332945775184483559377984787867369254115053803004876060183014877818636056667388193921201937889155108817764199646638366527564176505672282897594799791870327626836471672734773404188392011803358859900111626291118092017872588439332390769140618302284173580577603958833953558971648457673469982227727298596409932882486367521274216868532261565176991561017371426406796144976449352661617166734272556506715243580205432130706611433862428765716451872892131012138592985180527252452522347097120518908071497702942521650159719274238361524604475815329222575465992002211718942904611085616607504988972976907645573735601094595805979317152077220660446374847109275334268574809694975612099611387520050304719479652158517784527564398451083019542587960672093421346648409690894492277654042981171592020612182935083933945521796174091593939462661084219943354273564403942365417849252389930157958702876141184326643788229878426101216286783677602875844874078913835691726860682233628860325823375644782697525168842117652944296461784234156982111214469965298671778797094444010799287254199708593895191440841934872918227380424534657797501476518609342222109630804052192209675323259312193744294959218470779194042034712031974940881771766344249209211049433472613278829436801619265154198837446222407436512884903214485214708582756438407371235151363441146058897004349493874910273617463867451408489881018493077893826691498861013497680969002510680804380684693099302719166300788895220357745718422483534925470973773647355466833647238099773595919335677297523654166823355560874462548220498325775967648250098645901380462001318096393627335552417043194993053982947994671320372190138687322755950262605665029157937222276703393632045716041122242733992875585678421389542273574064758258987789142422959275210492724442969676189358798498231090334495705619412154192661594067181083118396087807732000080129680804764844780942736933302441449305514015079128594864942232911717089881612900435017053250904857418318480063021150234022433071870212944868629870474975516025057602986759612114696844483639836743260882474250318752192189636933373390284030155933920841640518168303671395548241135129949746948458172005470951435515623260537663206773249612108355161056118039633858002288365412330408911343188940168782650019517494715929513509640832226451480318285596370441437418372807742994507510956469203434045658732388733491978724952829644377770740006429075094959981234309155809381752340536707786370122168874332342038165029808674672667412080831201314220370818653825280433760171145343615893841090104608436873311772663483135578795286973336364512307982940146403920839505009513876514612629116458847951739567018162228104236510537325812088844071876429137778181370036625063706000600833884879890452248643964551454584230412776281975075510079918676166225194901663211521209073615250683303937440738726836134719614797536619380146506678798491847515198203123099539146841956168338519698781724326274559795134934853939645074448664161940687838081825981871474961936610086394863781835605885324496756972716398106880675800809327957857478201765857041481455107901751472342974056770351051550830765526033647453726024938949487018066895307241673781269348037872711585429304343687028504953109759136503817944237823936876435402969969542203163957097053795278687724928785861792037873889752195954365824621787630430909839125790967180782111388784369473974388936341188971312037534782932142288085448732863061850944678646524343907179606811081824340758294949587835643212266403837749958102372334269308048315249081671462374370431365823857162538093247919418210569143046794953090914246130873184100118949525264725266782679999269047364154660438176978181506418708836711285571720987175198876384205975821437220790000472302898728866349789393186278713904929635025698567118731833232967579972713887051985983225734979583336738117308428024362604360006605974985553134843303380351024335603755642847113142714820752526885082128231784377959081271351739680503296583165195468752423983263718179986068043451486888295894746771749141020649137089352538432800698676582287829599988643837370515273936909800317865242075464219433586348427087532931578568921206834447635122732764132279540601049994714838130451888023698565964894149016308630585113782516798673367285999595275410734242275139692050751796214497301179973493931267990414986981616503692180905710724827692867377314645717446713844772923582178917592414141042972739684541221844333858084573301903538859064575079932183986907486061696366916700696208292950570679002593676121255787360840327200290937709194125187333590483657398169197827142977604883280068542990268401534508872897332029449550725209149262656421812631511045787868036210183253364491148322820796128591282271700106052969931423898206380373549962873954602210405203946962822944455113351259918844178082504824897892053701650551752752356922435832656602956079089044115004383186654364187923896448742304039510446525666537600674228197442481219938302942276002730185222108143022193783623199545331315015812222850846043261910091558531506068797636939045467654442725267479824733259067514586551575933999738258210081363124275300747222449239836428599898486566883509302596558502688980980113868978630071261441207866954930023792987650249841691294156225920604913243093553952369757457650986001726065142961602034238949878698100506664734310062614740242916071823536706868130334686249730309924096177306350632112367753885241363619326828403727021608917404450378721310993895070038279440050260208520818627710910140474203357297675070070121158278048347370521594290004570701508859716669877918047419879524081621322471295770391577225037548942525476069987392524178358213232319928306179466967938503909125887730995506326076999513481911112123477846727011106421520087138289329783745854251385092258195268751506597753812833986750707795517060005079433269395771386661144753465480421071685530379798762250252378236715337614788335120097724447421939933356351414123875777855944752036030675877484162382751224553243487145263063375166215367395633619426955605085119361378857156083941263741255144195339597698050428725614531176186179891171937494822871772633219308379458774837612135650819597646819991214429920634799434196551249514641505416980767934463591006256997635292411909025921672069696090700524536407765658373756722177408787555367947180066252572585751011772608056816837432097834981727727800888510468968141741390236115541482709952427302188746485596690183754584184112680369599894170763544947013221462648323886583274838742390209169655678916674797496150860352659425122200459300418666756330817934480964442080564317386507956024262260721335094297891962278116535079278861983742051274686288758525626997063807558715344331121356552738599711137938209552635244622073070413069142057176776436564820006667815167533364785240840396443359033347937449379721669624294185181897424666751158722901242216967168725702940580645841771320487222303708442033715907997887842350798642235469248583173329408362184445802104712044198846886276453925844778964365470357676485776501245492211491928738164464753606148828914013003348543219714405197216412935761390155270631319289734113450876945128679617249049534914095691897287091706546942981707437245695634191552675988681273255493298317416995136700984874934818715916287438273641077245789526244557852862826905679157133481221503563899973824137235281226865068378448649804119264960591886218467479348720042023453184785125600976366180383522177111567274306289721793461025615403944737781220329586636623890763543966914899773212091492214786171533060602105778708549118068633875233319164713000286405846207220576711680738367969377587135850047295893438663842203033675917943343651716141060981880790881960837009032924760553937979620550484680748954263499160923526850521686597436557582631785194788826246713678954487335550420235280291935545870561391167569356485708086813019294053506351366639781221302341165076322979277724034068684266530028193236508834974479492763834510014620918547080207848373127653782634643571170314633606588905482776171759493118060368957921662381740612063318907249157597033796325839987995197930805321026686987615031703809613309293604497317442995347642801426058317717294426439465723786204182089384191539183384748452854621616538555368280509384967017086877312556743101733657306349642478151308160533315888620498008000605775985967636411856243274151174120274539258415761078341621122848362967316618739360017608071890496034039274560360717033173948331346198638526231176169947089418613473758838061633648785364813589582873131619626004876611094698696716916756566750954120435325899557822847558591769419348899563487190039717366731875120996219414787784034017717339023585901947139568099345696509649546543139945454269544919445777794806376798162127121130033892207606663768142164160670760285682461707545520476140113033572380720212981193442115288976084185041019117592413973852369087407289717293456160183226280054142000442516459507810666854062373121826855814903591219199244404442053458562517585221102858282992359348462027940590255558385525555436110910515839836566044236178521496553743089307944835121804204132177676582125349588666573106911961590614478397729688969530517588602882462663948035938887415932883376949890945933552523580366247797287727741695372151777333641833924031553730973283359157540682998710541430747743481394022208691608204573468007251034140087861974290966408143762858191138701189241652511965724320915522029570800446054480790965044161784980400710416986964379966010108781768665996994464275302610554888881757685730072137624966673379457437241194883324570765980534035374432133145500283133365833371811326544617937633381558730277284930660404963205919921483059137152336423910956630272690213030332037355923631799218932562136710200580206657246747562285396632356351888237485610781176479373600812673144848531512884523390503369816312017151021938674307570446388451006605024360454811415630063242380477095457792630499822671978647247410488724273806397979395572561986835734518724609992968991349620697715751305892326885973376623866235780920125215835586622827197430692050529659949973846972039121691558603455593628476817397693927965296335047808367949980609626750182065568423517491716598192660736445551356126211843469281426117061921077637968345468101973271802874909013039454797509547150117999804729136525487731114453849501716056615826803298882376997508016086559690974459906279015380459095283838359034528871348516001493630468045713997656689788287850658393012829830581997650070237583030310040740099551043755188927621562824391886097144350086114959347974304019317865971170600739257491699928863531805278687606374299363117415224211418231670653720567228230736226479234165064201763490771314238207595146305336603582150793941806972782653226580770691619288537936212973808760397289678028198328021603571956476204086664980778351458492453241297005188762955969523096438537635466394104758220678929137627203469154768590124172881941003867012468215280934247383969283078604278011297113133761770066969856885150918110666648476098051218163937488979692659840847551298505192100651667401377710905627364031524752681147368304455060104030918744934371053243448532652700584708132163815395943710722667141581625449767003550515785077507612260846331091770408222029255887974902721398412824964014394304150911841045729098043131971856390178435477140005218748490863273834822358257292218824679777882254227939925573260840705325556671492150748227229474888070570242996923755521125640327209870549342691120729659250111806964076985068104607877801413679057022511662494601202214356595903331409683772019857829805672980791204949467974267451550306944714470205549460346353269557033677359456890302116647270471880830562950032564688379563474623122486047374489650087202292641559781309892482905495197269862247843789119998713082714340160867909236025699317207034564198060286269368244574232277390720344229096322009862385048207157180635146965573974174402111111975548777676331961739882946452385513348708306244188415353112620142458413993320323997409455453704993401777281510183648821035130643654796915760265944104576999989172669578342845808727756421913928699136839007960892026987478256594169626008394293480147100835912474757448714928646311277451367663100934151340757250732290396651446712786863577021439103755461514516655773096600640430007651421605228022672773553350167283739362527766811326368435704438627814586968816067559423473177502138115771427521827619402840889603495517465937478955230393640916026222490292437832480442148669548619232792955452038822492641090941473459420633687497947130822042936578795504483874609664952254439787513444647941123973196922083166477763355385871761938836258528107412504988210048445100955309242258501926399943628258531251216465289261586018887551428160184028792406290055216827126759225995750980706087737612625667303995052814468920737766792962267235937268513760726338965883269641758487914620046821957711385249044527193969108265343505029595206335375531020707614238434402552926275455290258501138475514910353275896176354492403586547271886519880255240554106101900265109911590820155045939619920866594429627030676214970500621009734248439922143212324574973637333530041772150417569340578671688985612856347846216226702766111850782410278031358909046510612562520686502001401786401736180117422821155448091608359364131326648087517942138552777581670330511644844907948568602753930739737390012671349437864529567245451500563904064617947100532098006993710604292363925694375315430874242410474792269043691353150232747246795903591007987019602311118965928609903134084538358541573870021837850049029135110950910675660758169128278683122569375971051089488074554537478009654309102256557044786854190118327812692169895260139188754794151863633964117907348928263637274981174087038750569971256866587760749410218090476827348982406757371448123280915050398454373937063315086203067621588903139417972725251198875788529633561444785242592549071457734702635248796457102922726512639136526269522535058791837924537025605172112934393952801288016796655917439506300907426375843091105633767113638889985381481345176828043501416881299503902032615169959513672818059472641305231027320768946113616774617223290962112205221185457745377416936944450583569704426528415342600787558800788697879776326744023513536685955075935204735786598244598839070610268226932146633647134950397105006299527795204895115054380040759892359684519814254537414469848772115980480556786574815402178306399049418809273479349666123547684978848945299730335483022081610269983869228705301892799841276075443335568644663948122546021040442780728445132451210951138684576878687466099044247946437357162021038246659700743897999183888969311958292447789158256312929796912194562592207145905169231200277591592943859223400707527231495060643420589168498811522146447015461475904355503099072746276553195461321849036926275615475569006253613334098634672507989323100582906241852880997284953557293732292356006766760607830932925770074482007234035239702132235602675445599992235331088814982168035295885209930324915165939495036832124441848031130149913837210055865236731402874026847902384693839900343320739837670247367163959878706887207746053645141090376079064486095099527846540629394383663330673884349298855980911925324723848598109847884175751290247696181911897235641856227360776203358036988075600829860814041021995744766736362333772412396896977130528431750887577218575744564826727459027932857958587832514464138831753165132729034009671654521063672717945402611247203536387938658345570862663985531387945217971803440762471818911177071945376703715082310606400080884865095721926905125813951730471261823345372770239809263015668679483910022068705031411590030661434928173648246034129371858670008105164508879731894843724087816410617496545297169330100802132744975253539083468190008755933038742215599466197590179616936429114706653415539863778786522241340028012634484291623769700827106446296263252481928968385199570830308009923794139557386929517979268805860721611135490708177967295292246878751627627699545576617028459693496635037498872617412833262535002232840099081651905610216070409431662545884685317114923535734943651579348824897508778464903934617699507130604148974738853253020478875492266488639043670186136025349894183669481697668872188131645101356628388877566683555511268508782299349540275849855967625280095423709730433057249950758452759931264864512902488916363143682178920397098092008195162810861446571397610354831591061526225572439233005368410455352163823587020687520240330365808265633559625358279383466522475573322869076721684465957610337819595851349631289030517441396546597921082502105448747592252501126319697605374390676709357848694031072456528924136564353509084051674171128889394808825122781588929005407755318186515298105177220030429307168485981774816936800842021254911254654219937215919320347350506159749223999494113785711086588564561464874782208583394484799734492922406603076582643650413248812653197704561860333035828100008099409472900445187854614887800563751447890832505417376935466011732469596293037131904652882181416170039169270972065448810303359254732082398635189195235520078444001702003333828761361697942798159996097039274983017086882017101813601691587917928889038929527306031744070330059541127568850971121467457044236970459969928854184158126717029116963186232788101248240968535210635436037174094529402541178866624196910348493414108160038790656715968626498033879237985372276545094526781415639379250468372267815075996526016676730359112279067880325040414942422187886038360430749352503534939520592900053427823923140323675438479373762511914897411531284555992216742491025087506794612304241099094443755943447878674846547309667152115495598252754858612304126258156796316264866054544704255540281445617461462121190225518596652142927003246886514717109805506019368330093113072905712836668089254807132568306611328259677359034392244801979252903870594655762619700056976229706719000917037897334852904159101483591595119604458513315791982706537584685581975203610398894424185490675272692858945926959489928232588046482740562358852889170199967473113188631690446803079835887577933541338688219258512545477331966624049352738995821583301190565764334656903564659974597363850450956931498418033146775473279252093090957519523370087135555064796419633818759081087777439607964956969609664125327205829192229893340373914819665060778416596816721275423000278282301396212290667455393301840516705236166633201369431494273359954854264376893336232367130601088918682321039371673345069530757520585510720258392084084567123092515170660793839696198301523776364265271747216344455842831430621298866035272715364215664972886143836029043120584676157415559468857452670305662920854495724301018134565399677004248378088070496998559270945335699249601909280166164938513515180435844196280456047883650269951213789813698094223746369440686854718555258099623970247137859756895223020494731502482855827290325257580001027957280274835406931052853536474835375921266467478333713600471538356878888471923071372631022194893917705920531796979068126001281517802113170611855977623231626505827701708343900398033226065112335302777204243435408147059773561962921366085529697862708723506938947204882514276141927728575359063087143304959597414215400815305888687041643220788011786306821386254232672227620885640909009865195599221362396379234857912344595208378733169498202686929727053403842644824754058676814632248233885554149842073867196580087003179946227032450519713420998890493203871107166093272201197419254983133081765313334338254667578146128311770535930571300681785685195061292500213277368893164430911220950074725747806432425714311120425706314873982463075825991774971397436281690347219380789199594094186996298687851211078005076777792135727851161290685796426721874330677598815371694558276366712645856384122713814592978838039157456984574182888516554092889398836567817509569376564593491888276405579933796626930004552960388722457000051891259775927742832378071895038066687628820164635811997527750557003817790486749479698791927415533101779383555983126897502155038646952418387401058799681842128994167290616932648284917781939712915807637391969942420413993220827028140714982645419665555346000854836449583893209111611670742016345330935148712956490935177021673509485188647544099377526563271490847717655308551588082362177267608337205763098072344397865625576938100445532003678194281633728766337580847409820168639946076277962817245312261240269545553730107809477347714942052549823850892939489550686540395245694710147461333200014864771823143932672200427963298001210608790260637981494409841576872021199789147600622568957175725908682527705497154230998731842110693006126136714282773785756537462125947829104850893941612014973106408610244492522361066085034909903031578234569642593434262689170049564680425758748161915449166304826555896890474301795055048276932185838504009285073315239094440495949109140659640026488456915550145709003281728213186297025078583224078165910388436689259148195750014617052458866407304481588949699359694482436340375977773718611440691720390863384465659335383060274766491961416257749012510687521219609789715491690652235217586013272503071325241871350970244250434752737610272935965267858184877667673469492931011754131419546232269936794323475967489334704822779851889802684426748324851446983378289697475118249648351030327113831481846941900382228479471523314464803621028443676223836482309905331620368784642762453319082940879382086151138858999985200420425421015199360714941982317407310501877056613173179374715673429133843761985080797936757077788904024826731330395119387283132398114933334537812409139482277977484399453103857187489504579738043500336244267069549422067465699169105857114894648122863038879401756585936316654308583760360369002662403275133454179632005090403962677411730090138584800682724352931458266021145614029577846840756482195674389159895231817157234305860251501931158036459992757052184852254615843645967279552725650765089873440997082124287891365284139494874959264980886874736912504604791556386850913869535595149708591962536125130375980900694661936131977891123057241322040517812696550725151729572719927005244724241678272594906501031613881828794215348543900940110287756444661543064093704685623636081085614446851431572796030391148780325882121617801456474361117491633825791715030266231261229703190291534353297739724082225019087403839793513126957040278095684125331189561451035128462127251254960905971538909145395785209777046172073607605336463886434854057356649282227446860840078969997678931819117361821431364088007877148404756843579883572203177893037366909782601710946188386546838830380075801192737049856983662131123472072185748186256354360464323697200648254867385060180747779448326859494159368752893970080607153689136560306347141498469848987402845937993849749243887293814542828579727540940499613072484794472482487818713245620091016927283562369058055637036520907906820686112659641155976894123755010877066878842833988117713899724905696324856499501021192851849153757945577854858247143052161638237718761320486548792823427191741764214678489546037767571778002360684640947607433814533162338393249896044845330715786878299911779201114881389680045366380341716578701638712745423153291736700094908496482492830989692449497914472571028308991080422730489348671920508367330906863371096780878357616627972550392532635115915324962106624473111231911892352826766434604027331429521949077548322147774084687054768797470578357075395360694477084358534705146557075679724907863322914824755739449402711390358238201217599629609294961810771362516836308636636418022743210299517223321997596885328922606186050471091111812200788761458093535107232508380927608713951531976219840662014481733785227320840508353007532333024586171112092582606736161183022666342630016855759063298473903777994255715862589834424071553159763113998452239473100373801257615614661526678342404874101192194845399503710949807890498277980466694796562291936255162934276200727648444911260352948866415134302296996134905639232359271867296841780823424144757344804485516031799922641702939621493085560928100359140256536793882777454662843485087280015724563439223929552537471146563446555546847435336733361118949308870388182043939855942777658528084569058188812058946856042090745737109976631594005792594913046968923007318851213082785413357346117377690129285226319530150201445161313878440318283943133016949468832750732135537106275105638642487085631130199686709599055295603037927635925188280874350269629102630986449841966519718838170238698409396887395067260812198504182831953973876216720915610508733002271762416244170014276396347815560901418453725585377330445414940853208177955724493480191449476785982847236129648337930771116210614974910640545000012354756833398184856189236348053655172176802243527484979504556139507246872972639581674049106954556346005576793499110577625512108075580072550038155081728558934425076470731690503327231637671080890686356918020422083254278582196082814514741177051657029145266897244844025837862327872973094752502926560057063090985322260559278111726326098626220739612217576486046394302999747737924592978049431843558724625205196792788812073048046821073911007674673805349981507346703886818473106547633456825353917879553383216017034013543844148218537140768002735912404423021310469522758941855626805057972581379815433434878201340119272820191182822460485475380266233472530516974953213042827268628511589199490053965078423834623652052798345748867473687500721329829018028329231388068436982477454964015254143813818068519753657878993491270419815898512785470837985791216069572924148415965302835217815380043096016338793289994859798879864431652552785690280559844067753629182090077460706279564288183031236580273645103250729609765378193566872151274535932503871020300973183289414879295374064029860057155503404037365375535516048391752269218423617050242483025313496561374747124636009589367519020986470620311999254663293882666802482304164365102008024725701004808595182065188033733966084467539029296023692920301004074633456126769788915243030452890101924324472430885716333376062593179968868794003072032252499953901256270409105660042175473019868682708168713695987004020318743549002445810655439567089602278706156216032577396431773604232235413974806268104272314712733597958804285791780751723795868910323467744865719596619129735551902260213765482860355288508515655540728704590703485736005923253533263862802533855398912594403802979963950990482984513478608372370821366163096304650531724579203027679542782362500001511801565567357431803190731700299373204373204418674926418253367920331995884431999735649761056819085821567373250559797608535444866632198197402921637294645398524927452934286816165382365974644665676635394832808208868737728779832046579134875003157964203619178152055261155838858316802472023871116407539632615609584828484370854804624664956846989266516063021729161653108342423150390539651599543259102957377397220854282469268979425315293955663054202341243974529087180587575920706351811425837907763404459968578378392024184418724537837386921094541458813053315272294691834868139195228424019746937663733063356952485683147339261266139311404322564366386987787192166259516326659846974541124658189617148684417007865850446707445258161350577974591842497774612086590225819842151588576700977038383419456508718282877856643216739650974952855223170315600581771626352361748558309013044693726591106060824926945555403846562475448918145346209405493013099085801862110964313872917220811971326172608838304041939512375465688144959329508605147298114041925611578215104661995471199839594651011704248135319551844499283321514423546425434321992585743884594124179594587580384594984360025920443831820092727135674846517592149877178878246439025406782692502778579366548940761950004410413871936998878790220975047287833022580003158086091531347261880598230557251573787033604509070122476010531127902061484045740363651976864891221471656413919054664402965791484205698911429357952067196395356548809832948323824498670815587338613842455863372950871314709580444928038835744660654536706974527793127453497582034723228482126796476300793445907305946708479129327164244038450942798987257576712564130801889815870271452657456942333182142580019812475495898723034503768987053191670729437913431337153232653781446353099047268328031696600376966193751638936892514114528352488818961987019491768793839857903902433667278068312821936909195645578872726125619589702463440358052799925626760733584375509576918535150431066139989399359953588660981352452330834479315183654233438737429412710797254089183496968867939727076662229662017958213831354748794525493770191900399702774417560804488304019008287193551766698864753655167062922283435762325600102620756443993199989581640124498888630361266295339738393852007305273336615780415160279471522864658766434525600685285060562104645472779736235755845262258972812752246155247155317306592169854283908181707999856974500643731173243093419293510776776533284466699652757816370080174461381530892155513757253626036360639481896092827027202300096526892421563034204281514096954543797909065184384176281895613171410373530971726738124821159755047223830991947251683559044756572677161173284581952650338515769361876836045253495853807296106400995437658673692151790949364752877055074692793760169012032516762163604429201238079648543894823592412160279504558729804993334970274589490732853214108032462569223018514294810007311806162303857475827383274707053730360654423512432929249543197685991267204083537776209445753787442115136004114200257433966399481260598490985116731125314924689470323040083130988094057505974939170463983585172158699883385753019156565426786669762020357640717472102249754013137673567340497102121570366670357362091160958531380628485553605218305641597859872130001625250471701469571332761608574115055423380785980852161494741483949302573979551528225217855939801811930029553709988028479003537029737451505294206352414070398127628669153966939154822554733860704819230911757703899754364907327062939256610422486830465015767596327202640450108013742042731005331663443977374154117515349420948515117051801246907641892911066502334944731996019165189044399636860326205435731721966691737925147733614791108249012950451694583946548396058082846056235657139401038192249473625700096247790884445431294653753391007901227147358486170380021367864026369696985800918565628710089558012950074088187087918087545419728434540169002350822744336166530631729242284776312831073298316071273231445497299458963825831644234801802642294453929952586907856290491274240217257287520075845196510190414557457502706497427814276805104804931882267006428514530682643529922550195677349080402699278282844177777686708431268322623008031727361861214926277129543470840960695116325578045507849257353862343268582735658372489069912781285199634140699131004823986121205329395763391378387977483392604617240409177987564784167816323035164327317046035146227427146219512416087694378096157432180109423607043132647771090106198357876150122938878495276880726280989312597918937173192957459258343935483196882744705652370106282154191447083921460177705689141786642213295938055134999339334990790805861011845838169838223998560667169067619231556885078425902174166379066152907529290279668134406809427126998215430424359425677910278731704794456792450131857738274567643350789667946669169903749498107179020984838559006290722151278625233694076028799298887422513494460098123259739768433576525096016916716816586828258929118972266918786758684626270578367723432322139978394113871002254775674731074003871973850701263405329129040633804023091945356928139300592688351176561865002247220397783065089890341556241806495883632291178470410525063482869580131162802412871069641515056849019686532967214626423927638937381858463998088773358776973910898414962182358612918544312628746800151270363306074897391580634099643618200156838642592830488292357680789268013017534329853882596968918974101626727036101396314325927918098881724764059715707897614727310805773451914088705645445340371403077262517575041499538166169789148547376550850086571195839295534258498251952609247932592574717002051321750430549330788682953380410128580635186500623961290031249037184566794326342413756795972660730527464170810937820772827890879850693954428108875766841333939227530833662077169677757757397068718985874220050027571076871410333450085977421105534729430981351572712440819210432781658464752029524411679108324051617804793247030083384739787607853166508274825716878635863356598877668374973095519576347876438117060711060466823614007073904186619181381156406225318163418430042053396638138641510602256223371343008587514876804024696681184650358328579119691656690140430402049863483670803583106672598936412869683202971058648240235301514193932984500485485905152279027126367949325892278437415608450174893194216990114516091139514811290618270236456361354738840123095425311164267626170017187861495017650074615169907690575785034133565667638742127999384710193362181168360196494971636641481907571982478802251222244716686365974176514280868662154057964588482684926015706960635845514748146884327912435250940872329408287898392570943729940728677588336868114651648878085053317690501452280624370996614804185003848539236071989628572950059474374391713365093623993677569351313307713372476392735388229680544228749339089581151672254391535551055944706677230399147545072788754443527105589318829449200283099576135935434033361398778697840820120593316464417988089559811942784163319260267906151814608307822770179367229251418014161038102001810513812151744841307843566002781061932936784840655168581329231309681753281801167255927385670226619722953304812140396644130404556595282723319937133292505299664251069695378989774309658275011203970266776693875592028938104025748972303564781970894554128610594122029272777740278310341387928241328040291864820266885346923192916828304887879785852860919999291358908118390900341865348250601432712739283336786127419277008565029244347577542930918915276030340173836330425871726694643359200253783292016551862735793932069475651186797890848397675461738419819769373173366203893989413349305254585233665568665087377608415160378890873449745851174389991274191637347687453599489867312096375201015425047001689242062967487762699345060956984924477059552759093349959518532132775516681759914008916900886852228878391906377911840145571985302259917574396321050172939002614956735879814589115661939295862343006633014910727644843361511154966550164504791944945767181937483671980001567619634994719906977741241153225575308323598637291622014265241690659325724894083141621749704848999544813230420134345900671190094453400195242307595016568327801240924111496462494269444905554067363091605573062251035198809755296131632605592541274182922011584537467823732093151589523440513856168966203447870661607693858398888802710654673336627318360530414978879091459859203871274862049963695992648701528370574104606553335983114285304571167507259869217701337020147793780631760296714577835051675867334126938214712748617286610093190107293369330469658265745654711464161655763780384592181028133808395476029436195404636639831467089355831644223107501340171358361202914929393978014228164042004272206184253085982982596490288993461552254498525213923887416946612198441046776327179999474248577248360583964322418410684850172410543122787348421312111833011452141487623262848767019513176941071820389525392258928957786384469598132184280300330951522086514577443174258504641147245060570681107131742810620585231919474696877231182925485682678940920474587173552284820028606522487469325618005474055736129485124251116459023568597491817813483792799866697107120336607864144649903818323057123078438423753149067991500250623338193417385942480506873243194028680318395758767181919416239820923792622067258649374141238758883767924431987631535081424632355212919113224979783052433423898736314118379928591193184469368147772225242147022441901888183071975699839381762243951505332213084033900634758746144918993394599816319620978689426611518520274995075025887236709112652760976304041974654451123427164544503055040440298016908751058251475045032942048419154722930158774349003103060938545638515254224144254897891299967862786735908566598028095813529851184491237716939636175445358581935125430251324863517345586887580173565653180060911658569518268738641114394650728332253573042228963685672385429367764203928337232599959714680169514137200493226912749418285322671715266378371805100118914933099081722949029432289905546765164717241571826569492231932478298395579737845975772989940320960164463485417664846984523471780041386781580481882965106767111085141414712499852998288984895805337169437800434358806993587746454227224525428347985510560926828512466196839400814683730408135243371263015706711281005143157599899730232212565891315668058290868254299136484162413109892690770536322336955236018705686031035806893370025103117705122074037346464677334282520382293686424918428291141416315278576740573606367908552372925908412749615033648216761918119111698377260509203115960684477444382983054191558358364800643856038441159464865733299384789281229416222352175297857903446145907445558179511805178863200638386177812620518784979416480216732447274531986001258557403373483346060306465875957197465426242374660913797999203151862221643629105688302556187220097704778780754366636849921400281726020076871018310902013654762202230951248137980084602117305548471780835781923065151352856736097783120085591371236322990220517750300346659815024360291435670053330421325375956417051411875168202635343924250725566557022522568890103451666349639704841813712509125732394401432956297628517782558293195970505690307867028873303660133053993031089458463016646180419976994982476954286450427699525236180570614747185057837268200053603799060981389261704707757080923237035392821342616133627293375273342091750658129158638528727096918364837792763981726184213951531217063247254082946400097214567894961356056434723136094676386726069749883973973178630793456801498432595678264101720123560227905219600575475734724486631950454344743185536475862128029547685312466444006441680516686177658455584560881693525185338185574474944878227400446414749468883786035131795646439472070209365774640941723996268307854876225194636601495684810763690767475216252356878276984626627824879128921566134739624693124039269758004008643450622104854385558521404243858439796095025130829259123947524971438407332925827045477951769984418056865951552980587889796859366949397153185957668817233709154256408664393747296441893306674514201074795885669782287567596366957599197613943489488369559804608326093269279322381610222313489865487847665420038074971701315711517819655472315660584055965677286291004539154053427715286681144645851056885515420274306606360442772457933319072686907427987649369186664870819357708691740928498367907531044846095046935570226753439503072449757150705534841655670729666864851327430804183791677296866955652128760401519771258844169485330780150849892098166033739163114140686493596553872780501891794466709494325553056643259711757751532068112055747155449732247106925846204984050819992608421695968474029583665279828657961851231234417130694189301121147662251643007313255362702471369401946304371019717436335368888161406128463666461376821404751137557078165221322765045307741033323189709977109415055064090628031836567792277894828488984850775006373803796956390979916918034966614752407486600818145530523265336701167346456016623690260014840054274554370800299464393156472452867570434873815587186508742113012033306734353040985675607556168446455413142927853028223447788974523852118565839642861892614111482577240769834265587676678410065192820062433910568880840177876168943575288999168475713572419412702721320486170253554875667137737468817646441305552813986581013326467855259354600432702464859406733414228428788448128833392017604968688859914799460014422404354274097105206579152560833605015790552923388705884661044895102922023804483747533583471185163653539399793170215198466585135637335930108933667670862083565232601134003450622233517567341902396311067474883336567683553820165776297100799503566366709065333019956437292043119401121034525816469721534470057045461928684689678352457077272816002452738577706492177843326949974967717253731662669255543452287655791337954206268981665411354198252356444065398762117881606694888645798466711939489365766515782999972105351340376248793572930844425703765457701224435863821580052053526684459257023538887584475608524326501287322563653168344431864390854958493933099813110034540942342814188728112810928781281886800925245193186657372544625588574108871983301699607589544767989525041010773880189919569817594034024732985575626435474572439274084773747560954653348591104450817999935079111135332715956652782069980823810398960859630874516221701637597065636994145883362090428815555437569197687298657474096377394645914351521638515325203322024847098886428052073947713395453967710705370109659138268288523791049001049905432698754792784132245280277542650767691370344714662835223202047284033325365774948221550371998831775107750909589843899448382292590122645072567522763395556744370779299998228422953941930651293475739132725222397814343321907613988136738176653571106300759766311429767268967113069844332245897524324471724119753870435803571482125704697751247579427175833420557969789721187026392383684472926937834884688662428685635016768443900687413479470189900451856072417529211007275096608062540961944779876137309674952825249660873720587549982967431708976407422850565210720164651896374576002616045161556389871511345794814581174145362719027192293011493537171742661254603156749422232229798599107380922706564758699039257815070750639963649198337154102902948300497253660160693145944652888774658173773966875674243888168020569834065215457104856391655652021665080827818180848227776875296673117855725312153813050834006646545095704459050766364964710996952990306392982911734629415131079911047823116499188226760927901333505961767555690697147470321698342099987378575752648758955829267863579470792750453069721006098615207005941485853901081053805367966817805313315653688948564883916218266350169984045229798592374015386293003302997769556436153617234098688154353066443262039327124254563025010439164135953407246092593912268986363396639464960679432824343283950043983056670610079008049486995140482358657171379426138690055789119908135376136792396622233796870827118190543473754519352576206425877550503164764898555112405138256441139757036511003614203253228447108142618891895046222122582744159935716095892061344864070043639030279381255126500887524580336052500271872695480711595101891670219246917906673707398856602367500247214265512263478174372982262226035477460831966019321253366854371797796074488913713327878878562014228764758260220844641149749060668789736825509056366736308183760625404860107928930244821189681365275273535480043723090373605330974199009441873566920771696122540192757113386570421096766856469806937954619487837757070584426296738241818338225495862669591177325227702614192465704312614017742719365081722312391223589896119394957967947699877203478940206002716405920389655028316086410106214261456533921966227256704801124443907213826568010811682583017182406198656798227824708640680331759436787642160994015480582283127842943401634650142664687141860149410447205948550191739571328924154684709309830044211247796516711600625981279507140005180950690501181268867137978778547855786369459369778218841284231996941763726214974235527795780958639575972949924765257333521351058674946719444560158762040856725029831702433028083384018647168004389096101168032776968840357672924675032697286301769202098421100903873430997821060230705568250405319890644723804572541963545885420872536607852408042848408989326591118854647475561820758596727133743569640967777018184685063646936413891350258541508353044757555285978554278146910633907493790038087520069533930810278647012466192696164406796446298701504635825381143439858108708824983521048597924689188335715274542664278928066820538638284074906247884891223519052127161274106351541340428890987770872262323725871351649762937545111051361207427314887547799055150924205731895984838651597105861753013897834148357699999594191004976074632488111462471396100549533882418542597518677082630242066029668036105046515461779430892589203151730176743510960715628803372168999445536937471790622699354572782102156494367272141862257856031373797021691448509340644141149958894425041102868145816012319934341183675163979264552942895054063622020062427981246902664581604438336948214670240628389027610398219250672786896289628142666310429808241739210050505146855960531595264493028927479174462472564479984120900147708892396232275103233337079070167997889841810796155893645190474935578727323376180998154403350493032241408684475457408775076540261988839903440803901957324601213770643052960799677670130968508358821077582155969400918122702660505005092556742501961640533852313757991990343284421178199978578630967769670607405897448509797112766409506806995433862787537024014332871770321134365437804887501456799914864597659156843832755643839045382762571710158951059446013545379370906320588303730965379095836237729073134840835958344285759128590246216178353173767992828379032159459551577485063902432163849260298725242973136923151460927910780861840838078105438417545946727466031216886343023483575384323798009861389862564422130804085430600390206956823787274740603822988570661797294107788828379321839921516852140022847210185494363545364952884104147792603376864918332675818540430624225642874754536326034697719372315964365348243252828195116057034152438551376681003139446916572351740349643055373147056929034282092054168427108471433644042077032263424847352054368777420433172426093723632634585219639864759588937747427027683914031699095494493877135878788018338412218438986599612883005554188265304801482601739606209824929104371940118096334370716177718966944353340893362465402556862957332811361643642884963884272482271424456236185286581792683706653373491988364852561732122052163771914687959904982437520926699133040303527555944238723577215181742377164697009915393632776076791861064647980760324010978797112845113765788989334704104056093336749554363547206892962111558571125619317130683728663452850372747688082786527001394219973368973998608684834606933330425804439054947570247699667187939702972281172105615529225232067347498112614025277340308054980288321074981175184034081254079079277440530227578568552024423866311386199095238593016032524032135266151379716893969856077619068161029174786611412549807446025324655871318188043525918311554156426109902893499181428328780248492189857532228630252025719533244557841896421510586357683347692688908108310406738163094643391647872179065965819722462008792442618173051588700959805354657969352458955898438020115225876464417424331467362725229408899169571279344795653173872254093221034955459701563773314603789185311649239016907231932155354796505087624583793089192065977075276140844089524018206494846797884051016606812968936496599902669105521096999302747557987197991330225955758638015622594395836485616505779974209324711550857589956925454876715459950573178159056465791361529236760358788715354713376657151373461501290329584613731217002097982928729931764329875870061785612509692191849382003472483703201143170077567949262543517318886622413508569890135827685576570536897766674694277457527877437213186466122894961533184951466357210577824057458205119653490342498362645777956402463157780219375702294111014597767938439388031259015508623062567069301410905368031413991161592570473988964763373647115142761221109379424579530700523053005941555627251437603710499311884942916605214347479863999641305589446671597182123923935559745247286611188322867188909573646521085633735171461056795379337368226245416881745744358395122095193980775292253167225984258262000698991037629131284983328844239530689158767668845583566253444282158977485227651158024326418874769647023362678651160691098324978689793338239107318328372233582270267321021242099670669758189212545030756012463986036219519014458734194350850423743853764419149931341414166725984880389016493690202595436467641741156889247071399688124916741658917780463024641918003672646613685876161562826636807065319992106426338532761331438106885686857404384455182310777115558076036571844741097084669804567582322885954213091281318877411918453156634477588395728311624766474858608325385594412858301987542729062858236560065854419183077263458946063006402767427624020738917104371882578187964202636617720174123837454333230150698152485479566956617068282963866361999507453200035684647871714360361765369729547621478422509609899259007561175780036585308259764485767724336020130188425572384776617656071313420225404226801263937336921785550666795772887915303461681075964520082423585789100192513769029356110181805267774896881745906465044610788504846011176054834286106461015338954244293817760214066722508657672745083115394070246788295370538796614407948892983759971306419989506268027405551995354208935190085987138050000525097284897599642876441532921305963791722354779718358768094719645262120346909182974103324536121285010353073479842625106582500344326093269385125547894759382583236149521462903792153463861720284864372890841057529218431774668384830977885299941420165238676278389751269771954052913452480266239994031918571928475244939788208691919140453779990245540787821724271429417007034891675438033856905037950920545532712086919640053643525888358935545248227484725291893333617416589762869399280626362638824771373210340114013933709704611442198881515558763826880197335665178999313301431668843784481362168804221933792825326314069140569865875400869416759011794934824697522675506018309449717154613195230467812352205012597885605854237540981282729213925250049435811784035041986687077116949233018771284318567286548197858685034847066878493705766028234602905932038695973465548613766736802863638012507024304784587260444529625467607318382919609334228638817186566837580595755562852687934491774867338087269062654225535307987437925632641916259044574564590198774687191736091079906377004321080900991125018912240129318264879028602774456988325917695179438988442872557119582901627699474455564226631571282471969279954604773354146526881160555547397839727850913208188397988160752052198142643737816484100182214132236071921488906644406535945617765051298876264153611460897369410074561362811051915956201740847069143089288920515978738363070696809630084333629873983486631262835773855661089091056650471896584514375070130475912046838157225740120920982631067369926888963416210361869316710420119528191488135174585239148630470056993123773207218581398271548492162719244937615997573085746514773469645327431777370658985132600029582554922042831679236301761214573404922959293932347012929680498662287667350799260332978512634045463110550778201423642468016595135727540342542565244423777922950217210583156894375981143510107311851134612996862463323333303299959433611519603948600855965292779165902981820493030574553883292130310819053054429148119862770328400871241354417902257281695904303413362554177618709668005081399611136246431575724192305605661248187458271954759401625665857263756125363264582672178410695133311787299437554266580340532462297273098731622052973552321845117100882337119402226530266832614570379344622291309108327336463719228312976666545906628624910018491583835017922405469238135610077124081763528855419109339636269850316893415423506096329648204428925297425745315000603994305216028607954520104810883032645252957649020082438970920288196114585500484938686054175999315495892049066117440771123948639407334612821727293875864278176130623417167695058654072774629562526302287002927464922874789561605552562333596347872911176097520570650718491318276472494086407440439614157482995802328584006495206253928009901384794995014618797477496116011126117081053468001954708194650190133210415977942889790141331922386551822663182602158747980690396156601063220969467569944905060019843472890618298648399455693337243992677015312816192301141870189163157445649666125186266044459856474894810356917731831521896709812013353953319829710697137148263243598753623952354464067472918177256480172293555469758888411006907018590912420254218903853764482720282595064650509126320986881493976746663451052629217848545870720492994628943666552948454985221566347073204870668083507930293101372711900784584215274314227928337417973919675981862392595641628274724631514105511524623453008236513735032720234984950318327444584214793637198589157726256708377988892649522954290959091442588980821472892869871184380369803111285412963640357612727692680639366169042498112446660031393753056097362136638385214591135185615863461474069646400645921136673836427929367009251046299201548270904222266790941032410599332647668803241079173588075359222272929178697890006565858091191341995628443645863049454831289734126877453844038513521498676698124302157637159394452746767683316015296622614253997032622361977984294248732894681018997930314376672134931260502803316946538562321202247678345442808455776801636466685070731883309214038404466408149362041577834108290694077393918410698267337520466571574009631480599457765268852146922021359211271910472501447103409596006323929137130458754429948052998099668152773118099547085517118839805092104664990275721675880555075294043930450353328866584596336599896213567074424592948134609314789068027001655921988130117586387159368902952838935609015328086979601225361343697158422846412540999002495982500770998692103185313292649017664733703495443380389477240617177528858611420148231800111953924267696368641829733256502797661283803592022789371099925365898056931775674361548531879866793735752370456474649418203897777894540870668073319521358683244760903352914528202641331794312357730570828138138247058552813783702276399555376109837978263763694501876548511042750822458986319947508674551024988665614379130389483527049580627979655412350748209978257015236453253475363058847161385185372128312565840691247213322859847755337481516799244987804415201958580464579151279771989380829674799222834163796365443427554876025986964553013377944265720338674184293314378604931636669386711182510099138540691328232672123804283560135584448144744737409384119290503739197814910268047794564630564079781710995321037980046387162950430413728541128978226824479756721262182960570037659904033409606241604605426987371489695611586560224042725832899248829039004286320004256013448033177349099481812725553407122864721081554463253796702353156375551663569844658264853951238587637666096631144787217220162857743723353954802112108420127289172626925708715510186831217045173333820184440345678097561619907949623263033488815282486402960973793434364374973033634194909213248163147877975387273360158424144086134326748048599855658712307018040069842304675740271912839499752171108457692234643553130250852839226473552743156046840892230585811243994999080005138003873434998737758217530527968533223074555845794774909595990512284907279813972544504239456531992788438497632366185751256632392081211671456592685060632597950461868108897075105611718721626068913285537589269264970937441680150579046830461633157665192596303122878271493237931946897735252453577221471065204905078991992209629790267211322459226299910432473622395154378613172709291045829305417764799774109206041233688295084617491882126886822768099022285536495668981203702416508003796890129726612776938364422010123571438592935498527502986955792496432032019519416670687507760532574793129731838884658879393952782736953535401481262850745167193620457837432746325044674529214669363717099227988216358084228448643115927602223879816871910343461605925759661585847387254649467933921370641751691586604025850090297930238955017129320584053563555727067783655986773056919197337749833408227421208194392921423673394915940206777646615353002080205393835981494120522493164760960227889346064920888358354729604793340147398659841589483441570487172928208099550607531553730247127867876815663842527398733350400795161157004284534851401329049590436974153665706412906532221193890831109068571473136331176266212658783051100379600015374253901408666979794820720096478200175271951608835549716000724972116222854894454887595033815674270102629312215008086460100546868768475425682606069451818633361031031355323007850228489332457109000402249589288949106375129901812446401375668707782953056924626042541576775086335074170077505896276012124691998562528694953866907842733927527994980796328186416581048325983358184644069568956961352430095627197926763368058819051614180042505954840721240085778484813426247390651153222699293928464706359449818515426577790330612885795747716625730732762976055320897163196797795197203455928497442604273638436488415032409322199906005153573797698634242751361490194424171352706599551114843453173291964563332533485389655606127707297345520140434536835760024963258234560991014092757408503218234725370969887354399596741071344669386240908183344833849307600141623159945476624300302607266923054856659994000181009479814591484814134653190367563174345343088232987608727310915791176615394597770897146040773977336571043920839905600141324635828833542856098033112330972858661748536786762808687529584359410597465816609196335166477522094346088115029538463149852218790896224056829473797540397420357940492053664345788942471786841617810023939446167560602748313804651990806077906630279108582224982266973691448870295385013153560746535916712085959528735793760189725473304772279159503972124142511950515490345075452276843967751478561431055819933749545258564116718561176584878345236876681105041498638594636771611826871009522375647328339913563291527730467304175591068462130838365960891114904801320120158713909539922412860835398159529325705264642715507639728921188837812407826530518990969667386339286057451368705668706311962000143568441884182380714443653565371766877565167081115076891263305449627861126544367828611164893005067911193392237800733106102245274380649834811137868753251594880525093555185286358528742648166811998059512556071922270399826486827593199151866923612685240663643261465550317129670345807675075048837445252660307035847806170768726145791673907161087403312408015169219664559973545458462479892104289330777598637665062327970609978414016060318207758858209839757410719710658658244631132924587292408084553690569034333944496311108610386608686439241454060106614719655616950108208412624963773024319737360674420091382021893516224814995633797996852362064787621620035924928184969976496586399656314700612462660955144027285718401318923912487186707560561375866827453786402002480606076625033725483532346838833924411051368293986664300124705197102676685269003479342705269764043942714804052845679823688216632267416627973280899908171121950574585622698628799961181923986775845744689573209089979796742095151039516014494258250671198543665089825709299109870937720943431351089144240992449609200569715016078103260704101191918154699218950904113172385729154709578166084732962549643215943853710594632947097124553714635256711714665559986360576913477104017843418035329518122357796919964891462654606442414898559817068726191285790261566011323124484305622686367465307993067055348564136824371744722564399560771702192269082375833053505725750422798863280630437516816863306298027866808094969550557636963797200173065964166181180967966930737440464363456752835248981550319494565366730366570294891459608188010963206694337941127430928007918806351576419968583908672858989535504323969897643691682442686588799301627086619538617978992523440480329162836221611364213079486759544263639753507790218756386351317457212864201535016644099128945852260525983033393605315918310940179900113158224828755543757295883160959199739207755494487142059704965649694898192417354967564532209527307285847442383511924730028508570995118790546327164661618243787852097979812554757160360645962120015984413187234365235434256656307294032669980534266188367322871187419601974073725699663441303192459556951803331429169086257962597210963111287013529244474651949768791578408139400471487760453712946476682795287760460798239890784181267818485836824951107417720631469594446141616236585884901355599270566132909429761368116180840518835957228341336382890774047889716968439027980887568359371962675901349549106009105045075073827124950758844170506970570182830122498231098152428029892897555494049832930552685417905736152424719104034076416169481833695738661833876352461261535724477286368474824620414696135561375997552380131075673472151617616801453758968539364421540191893995426547395774050394225280718006896483587087689776281676909682159392832786620587249355448523953658817564813129495207359507838644757151085617358150712395542003688435671745551963286013447493866452995887931001224783854473519017089476882088412772412660371115158735110782910511516797589852977077159162216718406429987924210081438857904397560888532689930449283852144596651588528042463095564509833507986353536851690758623503582771956227864271509338326987459031950800675018068252719435437249282115426896905614350693061736176421284763756731315501631950632444380740774617918937359896453971358638590884170833423376897319612258613620404735528215044722016852735416201197022288989356817176487502222189603125957522994871623616707409244865192018031252086350704761409019223059165347393727476383067588759413896261615524454563339613431005115393730000492270786715654561691277810918895293173112672926085899156488331111353442897130717249376784898674421520918242604720916602099496646701931172920419605748030163702005127447868994809942384629850742047953234445730349580981355501025685078865993013730503790494420352368727129033749076465834957384327637440738034370403108743184442262192015693236076239059982089660130486340543617606872591755762944800268528952942976662278092918089543222689176347634178382289528793209591668670943688607858154674331801026921723475382582625051042661537729034680105432554271960455167845415502536878455411914978323116185650553109973944258447640394057290659113242611353822145847512291204651136288663543261180613790977915378663841527514700697598168936102483325242321358172244665634100617339255336426638924829543153095671942234655365194347960555676155940663697171756386992059804849076854134535781355047900821750448269641511484440305502631769591358666006024510905847131101610788821462426705777226992270588052964883192762602918306006660468394381030545732716484787911882887462095251621381829706778525348105057379020625571628064029973906175983941465203308515280474170171035470977711371968480190529317600566865654028634973983758222814921374420311109417122194802933279880700494890719886117245651472587627424691960197012053222149912339297576268955557119841570198853786126717336938948703366168859335668725235539614956625390658718376143274267860099815177090000767832777680976263329877627677556725564603278196412943499337593027226989084982343333119500014542805008039672539517919959441263125406034669747349072704145081752334609128208992057451853730669850191813103832867556659050198722773404797540171791338676671109830155970403222820885762903515517902654882090024528255087505641728770971760881167086857184845887329629232023448477826541353466973758335076721582478503594969657715143138149904059245745850280357465623751564354253722081852954389464000725307028527498424516854398616259112935134543871047931514057269376516813406598996238513042524369342117230193397321545285808888313080290875393906489829630268491655214809152147968483146272495689082147632175370173724119729504760020061348559223874292487368799326730883163289693675797748951127936219559898202265322109051407629396210556336032792947114188862418005383531170748438914933081576321445563968064344282898389488805636305230090426590421181852348116089482535065366799819316942612173719986944359202385762279307839114363574938140540895286680599999597089459482222650271739426481958072631597862982434979884910762477530050091795167593220325251931274096564243423366774001363661238291279223476320490806491032916894649352285027072131136262443672277289023644233488962136310190118831157749856295826946451295025126081834226924456193502326725484542649466583619084700175589634417655788166354331041285031038607590998698094787058287581522956333430484123988404817193761089291021193522564275837819424933197748586527526836851745691148154465899471749452564109996197454419263116812584648298069875364412773511394374708589596802631541449688301781617584308402845153440254567757399711099366095792593120941457462315122981844942552936351393843524092446223673207640191885869720308097610889907741279050729375136006945860911456890124674993503216892620126024895697770611115311376792013644580153531165997446881429514457591947560956380294011463836791510552547946313177312488198873453356772443195083148821940444791174839179102145864688751880510208308223105466978525920949468266468669596665378245606865304894046358072687014670198141216748025524408936040011589358850779804411874712804428277730560453275688864757698259287265726074556168038818670650794077246192267124179340698521297513057838896588168779299091173692032603342988354279859250997050844442661133825316941481239603900426608354356259118680187539656255225513176323751028056960257420681127956544153725959891479169755795030411510717192751156105283621872930523123436249069280939189154104220836659891811968597125321246783287124101167040148918125397167969177716116770856201320613043138985848089532099264471800338333020955725786524344547004586014087624962054673822570343308601432082810807007237654041477957484860854973060069499341514707439484381850848875714379627907287923437438391001196954387854531162889190790559565232185114630025318403749801379950422273834706704617985858947114329979919641870670886621551318078638120947534298508308228442574962042601686182658543299962076987976963206392794482316262912685191769129629318068459793682516691811804232335177863460525070013277102109013291872616737017234369213197410386679948284722026356158358011301235621405310019865106291955109854563587102446833149113353922800888677674434499800675289631499759632922385326705779017734826051241366489822614263640008712189233783756085752172907254921875050197282468764639063202027221747971489278597658481198202242637339632008271787527750537874028214537081883022145301662472527635577755381199283480785463027824674142885271197509694453863964126408691071965483132792677805651615978290305460957632544134056488908757097528441654258973699040154552485966189188245414832901668238720450470879175278537551254716794148112666523071724734833346077987727674107292852401404108992944015309087209886202244749129443593704306408272982406040917496195010694320376444434377103165528396250908210934007510601050801677395569097096693901916016837652420396218175695896512958467532983531695365921160832529665063175980776954980544592348853525048291319013803327242128332540319624848811319618761636732163002827163771196694597661197983541301488941706143079592180999296540188200137973275894108324886037385035127963945051162801842157398846236804060297232109492923198822259347640642903527253546236395914170963211098192544063683847468064442282333630634708966172149018845796150832618593867047244321380393458553715617547454360381437988550988748448401299542104443366224299165812289402149208399985963837677844758191511213231083263852084324296881994399416689290952845041247056975559243491622180817999002898444830470864102583602620769986834394465595553229174491187950925572344931159737975283803899916030563801012395848485481667219950588516554772494365582795184000809365215327544915367618235132802876087915304312254329834580455551124543355457757180100119132512398023188828601787144071771013163244370867457244785148433606038628326235836308132476679198869084335241156778818125047671468632716203375145598932890927953402124290757363872447561240241865347791541448013340379465856345055808914593794160647719374296337750005623832150503118823550022163498157198640732771287238933507381713128000548939464079370149730462540835711189133645510032856588487568832415109515762107812712295981316217567781061660518437196106541824448527359806489699208041623684464484270362095846326601214005947001758691450412624275296685566393360083698395751147897961967113768390798445433415931773865858573580287687931966163852780090239981547657984810857464008517961218131184786406837704307974363388391336971526455611272996861774405376556076069022950383368491888013533300537741284234678849458132217902227409580962313932052512866220944703915816471130509241529357108759609268931410407567762807475635038832631231906085548986048420599406052219251512027786739370031264980472105360657467820215779135727988541422874345515137009076938839648000759099539716933019275907699724045063937362487388527070398273797651440975552267267016071538088769770400801391721181617109153135417849689907931430863738474179136578071202699517477355563443880240592094478501356199332784040539545185153779604174938859346802229612932068998722441482026112617946092411883547825162172639375685317188535005398528513805428048864502911465288700316264281007972648813041043695729503658630341490689754129525051161547069917014759401041357774029088375017569483185436546305964067915131480077397347628465713826802560747375463116610936951307687608033139360555807749424270606938047994261704436484603100148664332305854693339816377120107286718384664199205259488896499562186209113361873966778345829878210146544097564185481344804038752726954771412350766011084521185572842809937315904819021737114677849250573138546659465012579223810958159479465080437702885459049267513088906690851018392250941294125571897756294192820954323576674438358585429658942946306048200258139302178073828284921104322529993958391848108056888476700908125559472614920570299335411139042034654073052121272481742723525250591991321962723730370434133461420748318231988883665639788589529928320340270366778748552334101632594231356299684083846279844669206765577854745343758024714425626620698140781628745016676802203892812044203710342934558366530488791902148838800061609717908363155639437060419423068275925302293932531668770079983850784368590421511823843049423096134319850040126454298551473189803498890094040373721355169446986183327522040876778261977310031253163924491910944123059554930619814667294729101946502443635220607840558988377532012031247542321929609119994309659928694278307499494895033633833618372511350949596126328838629805276523129930284968045272985869760919500350848937002020260408613676298440203408553226042323040445529889190033609451528636968265392569973550658231076747463032551978376339600461908070869199568647306098051498583421638760540061568247397341150190593474387995706901870590883611421133856220406337246454531411915020473044428473367451797153242700961261769083066476298729575754240830136798837817484602459796674837560515780618857111197938177764041803885748214690030818158763423979546780579383113391571355347196146970566910340713848578347107153277636479507442087344875750351107251593314037139707487490525169444402583248134982876943051090689182023649015978013311595047201079384360412325695359999051321196732825070436441994859423936978382063596834499713666756341616157986991357005247478162846199532925232704406412137100987986196050478961474441696710955870958201969295194784258990555285440698153684055098753034442778447646491700785589052913769402632215506587862040782342045631658094071401279691832827606514232997583672930342711215977065668930585882362703592627653465345592818538337548730177149143159980670688175032951941669730716504564226025192332333910894082798950897989067018920295131068413361503090475210652459829590697769788872977600972472158925307958688313195653127377951365097555333674436129369729169641741270590214915853875507101981934514007426595641148452787484445913592568913164159721869919432704946440026666732634103644841598286073632953721238527851369739404903553507730071046666440799713065627993416312170544481110538262787210315340105006852044409032077932323919412263963495634268245010147674915605177117785036179217311332535510504108096198666786122600549111056288904547467329528101550410224636935415641712768205119409209204397823653108393413428143666307885126541277374632562154158441921874718680840307535330547942131721107282156391339700010219222850985582865906442611243080557842769634225036402582015335870373622462052240519649916487875418115278195481109274978915415034277003361931613325984293960965158803456590797127400060938220197681737240148463665623519322119332629080395928283455471945361327186143775405955995472996205803555491660351190776807746696289548169695722593326037682507990559158925445333099771743375557065597680240803230133939665560893358029812731777081218715215172819328828112608998886723191914532810297088004365695346156888540551725237153086304668624823360890617028611340734266392754409847728499109831234993057045460755892144756668467592463124907403077098704879201452105876509301833031166638207914223081121655186045422389251465358598575460235836044781021805499220673569524105811463421881608189109266623372130774418770053155085748550858670346695474706272269240827151320579239705576105493836523913613920188677024625004855791004177956475089085241353809953153850787108926866990467033449003399081890997385416685234066221618490594817639157332872806508706639774007192422049288241208562323135123358725122071278477087117335319632580686022808085927687023380355171710677690133324488605735008491663377510505609520714280616145423617189992549944415583939450051244573967214006150843771245849644961495779855068633258867059702320241544167705990540987802375550908477937399987808764047302940044882033737023419098684260835686675973678552779213025321556449190608842518900735644938122146276805903186799996440667315331162015212206996467402976535206624197241273943563752307457692437671920762600270446727946520198337314305287661348776902167060988341454306454214889622144780512772489300695568264959855770893628742247261425829943756379148372944404518874085904046506563429652572690303298624175992360787144124012075691365724503218171108204905271363763047119463003526879527068829026850445854012053302149244734929352518273712966444571464364429530143842421574377966656611104248250025085521531381064532694977593884471949139881770168142674552364833457730712170445976306885294582978371008014025536555875693729105930260461289944312732180117229056241480821658783978359349588455562481691161507666314839589943883325496443611390328255859170744444935421295194785436647206186511757171829708914427796642783899417794130503070486887913446168450039439308044724712800205994333475570578713565234243173966212587395985443135453397917519664110993750897332329875517031863925878783543637426012087298534381350455246909492357739639880618493895239034539615163185897835299385117072545181105951906892432108348136069266431639701001628147677562821699451331994348538601011917017666898810377353682428375917198758350766029794792443962722056268663584115902679722965705731958223484554241512733994376784889764752716468916932476586216557261035952090589459639018703022993318755723163188995846654921048791109016815727313290098010704526698380193757612107782223037463221143869882848592952997372517429984389394882541488563500947085109213735912931705200167197278931865495941226465411336128308870390704170820844214792640977871253459755382003537200038571323858960276781525547875715150034329658997898762054901611108333668027462286986090469435307101593859896602321068588752368046682025604058532137493177333709649383610204065560740104078476735900869859072896320027595327153740522647048522012925798777700269482530425119042998010659835670876533405289365174563207768430304600137597607727269583477703733773378396062366361233807802828057367144192595029767015721615877695099272613855482781899645080379939005820990002777346283593350644361346963714261158769427208723506921475538585699261272654074987138846585114173526095057125761711553803838013333724259293342454638898044661276544567347581054298665588423084284677531918170004775864042594239631136679935685961505539565862799553678210415733772944126909930475179956518445801545563185551768686663138843656140302354555239383422656262371221605734744697912699302933408533386819739594691934424352529596557182186748586939972210714589855380752388983105330970432068381626633583018930914643870449837682920411122580617077353286821391101679160819650993583533077873590236187910402554225025152764982723523305142713965838549758606040214998125279712736153709233286383324695657526332807835624142854923873017860593444264304805155749598881926914765718795504932626035662207104338173231815932572898719258848124390709195913447789296866265013054409981103070296011329413162032978407392296351437913228429357654568605572359141539464131312393534412973270108396847212516318538193783339818440173245556146601117151263140924094298701110998475311375186725157096505678761437282655562516150268193251493930424612231676948223597337596894735653243893172805868332178928884476649244638328948680394991900769268689242913894295171641939511513324618700977129308931367485364649299649568030752202949356155410030058893537364906493716420781933271521244715370697958480348622096354883055201081710859416274848270014132082714730311460869657330140020205851970455158394869756447497853085021570924642281612455018332588194582630586127674124193851092068767853572674146791163414097537834777895757907620865265258475195615201935480146442559757280034035230872300715753060053637950712971992292676150872710417116948267674740844082674870239181351198831417878522371719091989783087424532654769604156184453892231515356152424499886930354377371167913626265751996995687740532856323545485701872359073291915783953413229867739219799828333123656462719505907472029784872240424052293548934524848288342310952892525785540058571656937467623408603910127344323982283074175484706729012608182079777328692755568760090085893644014803114892662574847950871694196042378298765655819212425803077456916550785262632052065884860433785949895818121237004129533257447475167903215513431066935964810231379041636910132137963996099886906404476974784313921665606705379902219394196567443399753965958146090507725043486059264936005243141186963992426640951972727564310898443756353748317818299327715648109268042244993113344418331559469626877195496729989439442777668120316745196092482795856352717471048605289799861500164174632179460935010359820755709207951572656678576888038828160747599545820612281677551056118304471570778934217948245387053904617710788197197736773539836287449422223255420218881242874166485832662186720400686917709864709667826065901914576558369349996773106166941287674580964331536901800810331740070841595639904253088883311476124020623252065249760586709143124161513762553734086483044999157080446236060571922639543478359586658046490602149376304960770127175111269805356268650500027685560441524033110367312691389111350918029313764538197584207332482759734575627136757547592579440157935521253972152999206885509420714199706740630971925043244511344643377177768731611703244354901960825964458629816404044822141178750912628419102384245692088343360712088618967202235517797278772934574286369816918132810859719273565867243720989484253151499307475174148402968644939541070929059621102625230602910583171284088722142886944560144001167231127601998993335577188226140418862138775200813328956855075919997223191400455055873917566738871382496064995336531538551997693351326952469697719989321664232888101155568938932128230214600802445178058753178250195677024287249841191020648525747683354193120991184853090340407858352916780101502725344733482063850433478327019797401940844336399011555392336200283817468299581951107203101974435024716515118362837319050910996926872401531373309962314663799543103781554643273569063601109838631630743079326984990921775497915009303043743111478671333142381238383304876029052731283316036347830667647052483230568348532356610921729201320047972201083852275238296259722953415115758268916935858573175120468530375074085279665055805941597185654547240990044506704338064544498204637439716798558451303706055010039505817395404659063629159282303422716702176572357623104490516444473093596742144670827352796249509833292430882227065802473120236202105963757045515470055728617929491906358313496372031234701299955863521672734268234068659913796740678064988858375903251174308199779214051791915269672252984647392372937793860683456067800983128775542102581390280113335515603850475773461243289396258997336606305957056853061160981229520167617106786221731013736932133735082056845803962451849463831730272588757889211316290809815223444541275053767079869762461478399249375720661782025268924154610734508554299737418657415842497031912358132456782811367858832334040434884001265666071764511820824617181560121389276331522938877834734956432261000789407592316800916529769949888901910514570761739616708839980999064904644016508201519852797353269113066518749430158030391704206464265557549925691318175989638823598566215572409928974413940800989585414040799101663454342210935014472978648210425427148803367729928397632425596842008382665281083465991807334340202429675214600246777538973256321367168522841346728541332569801078345515279480519690783697684621900717337653852450529046010152890394985743102670002641197028988105497352834745849568436632564429741324229590368420341421303834598351785751553072893350019485489542988684624641881643919020542242569146728955734058389539614450653647630755934647483879964451844006110153454129483175168854916497876227366440755296491461038161496783972363625431827965531107298952620350267509794820838834394008235073847137201936247072499194468296345138259131221633488319551645465820818242934313306802285669546628530776460332951895881229343248798595403776897061658145479547867759938015955208103056028529505088337160801050688626513675750190134590007216848625521453024949283283100145941378837479546035080563987255462947460474613269725910174483924586403372784919008710180054728306474852708244063757378845743615083912104203400550775177718824976797087753906960270067338933940511772452102745339037246864666528505367941976196834837508319222946013579010093422612020786005338881750635066822048422279024877613192727806809694338511375957210095993464452620898972838114906054424379479695070303350435557369670227565960127517564493024222903390394224441088364761070385330578164892854743508139029483780218329954343721264406117640930525900799320565125215323537713620148236470462630837528548534858851575439436954772554422954363428119351599312167571117903227708988880003939589263476978584691694955795779885412933417472626745564923107392040579315268803803206581314659140487390904756538826344145310717876005630323148358361857132790503789692488209970623394721428369059683248055526470398244500274984237738506821972870191145460337567116637091588177609858863414632974583309134626969098806970830034345233265331579004246912661482064684563072543532813032544486803373993510585070283501608672917288331490698286086203527261831465007229080387044456472722948257140341437113023160560656255519112810292866636295804352808779994186302907569400014295953087882500531888798871931296893045658606279124675242234763668127302009948866457460204491041633025650782873364617005096193957360939472549394865805025303415542675309213707563245267670612577044114549704799794186204819881154738151279808713633646237848311086019548315003620308161666798705568657700095092708305168706155514968976200654082061909646339168017524223544570056864167125900573000170064749747023484598746144479864819583992552915792007312243277315881406659780365875767577266406471648160297558831693182524978212005919640410725860530432658045303790077908061196707716137674186527685321084356693446848368913522407357348386184785375316067815172175528440259135771659277626285158361511346998835083089833936676646040148798087585039272994452298137087590536480714897021214288082160187410071951718212225579889590038933617418035897240353175271414330846743625581884728877523082394071160239013100345680600403176910021938660660338212872391598813926221301528275052025260118315698627905934720963369464271255994417363410622084183211739239428925883012674360788500854436526690729334227720861243218348568617972241515540488310060610793496726008856347261267285059615496386582093112764837551968098348924508720012224901945188303087118840748170819955048463282122690284032170842635397323260048572300827532236565686146308668957283703190697974437060300730084129091574874030736186211625215116664097838119347709653932761516884408014601803204107552611334201792073183589248204118089002582022035041114043088458526266070891537214262890735773897097256524107748733582233174535030005586442247893093499536181552664644885654954653463440317224378874977578162963527927882615259616132777932658990227795429134036576737386089917355172913734191197466519046375825369860772432386666740130191743819080214138999805515902511068847700655695582293661439149225397483651811309646659165831539288494718933758341096075396462194141146277588310622939802131934569308088244885837477377756735314192640955372116636168311627557495591605663904022694559595396021337001852483944487703870867206990269170461423696931902684792342202725113293586501949690377619197889490082550134730707591630033229550462971940103766682218918382079108333364103172857021004078904530027581421345528240646765435375640221696377630658722145247173895354583001080217708318977054641140851186761102105317608794743815552537680041003814063026243132687964532640528945726607373422873902202286877548624992890661461808812671914802805625069909009411768255005560972917097555189886321817909957356747392059547909734126773990857464689015482725709235368761394005972572302381592299979492659868406735618710779238542208176499918015834533676859845141824315239661872641350748213087964256952901745985217697182417805151907238052547352428180079034078985044315287783018081156058060177065516226272626008375914224794894545663619534227067645476628868719983549066430559849642551357133788962327639249177514780605612660355151222100052798836851310959145672578166294208174313779110117351931856393581101176080668614609128065763294722866195789774668448954805536082533317911546647946993366692156862603777017487811665463738224348199055235556332853970382896260591931219297227079295376924969164358169511303100452018916904876508573119441522215001680643821638445226683666783139590215023579872586404338409218711028029400613285198943077703251276351510525927721007290183239731178639736481628496514536150043967806176926269751715848969969224075441187318823995552791252037226424994187167326165714729085495234596234124701863505235132973802443806303462174123277618851391650975801504251435002394431559764179660000287718317138471986942903632032260490953236712033235189253159462009736040942653422896531833367261339234097323637597822569684340635604591180759149527211038313252576779270185657453630879604668906169937778980605099695535672450544860829935171052574871923950601466783949848435934382363013606676892082268502275725745749730811827303477127368814862732754482927017717816219875531277815464400004040730653139256785462805401920586889606008048101878596518213344233563908018338885947140314283237267655272279364012718168340347003714732891901696884081616528939879876224828477514973063674039851393853918235848924967521607408268465750577642893575591059802731016545602426412901582488077809310347742747281849409560241664837957199365391028395256172883852097122053587110060755262493246830955961764206448601452410991042484207972202573411251040571534102588259239143104174388006630930636623369333467991180684832011190318822706859871395039339819382293358974720621247724738384405026319024079941941831741643624124513407581104380324011427225980206115806961530080219502000568877819492267035697955840740250720052989878508440157862189200653051330727283624230810508825589048793595658523949568004926888139547456422543386322985061236687397772480856504024228836579240609041774789739354756420247561182968165899212542865389946828857284369006324630439613372925485942283133500018862833097423499159015795990863133646109349515679916853732980937851890746235624347073876555432776824765015485489609185688941471361964309892650862436375590655392742609877684923214846619331475529664143443740005269798858954528977041911057291782126143246089417593266089991817285267344288885923406014814956318166671276403212583852003056689847858555712832632935860070675235356622912788357137961394435444304889874744741853333733585689397085996850413392143065360200392605331187842963588182724808910838779182353478338904967720533013749493685823971516143834091449092150677616522539137049961445249775790037382139541893125589917494249464230831364665049886959975003299568607615898205967132428852040408285319714085052548991576165199984232700374105113262899813847904232627345640576863376190648609144599854545710046532826551979896695280160096535482527868386637386471328627856968997190696477349558923553974200853533402796591116414402917809317390214017668576273105721761833381394933035497147295734174600325188354150804955408998136391291769913127340103217075557900762578392625525117309431717674529605371102026446078730236658421899591258113566725628803982868424686440944268977890283790404839078727256587624042310958097203856745989914021780997120766624224411931823576264803051063437489631224425507217928888387751491315514500642712422406851704884152374537344452385481829742446148050234644064894003525000292333555697613343105494444386206437187861122462423300274407693290589904656541022580867629487525342030315833136052256029887487294556268189973101225492188714094484470646397609782973807340115295007569615692867092592818048596503226988244586238441037006142224065183187461594780204244187263574686648553047530909046802200147485325736399650073053594092137188996160779009661382662698130463014859390730686739435377379145236356708170887712053864734522779100749676505142991789765734866896511653854154183107325987976717378621668280174069965597657957741508247912496935116345233135145577324076198399035907064495062887985226362467556220890927278749834045992177449081368214642797546606532162727961665293248596415910161226155904169407358905420560946799631865458507074599632093454988758335248551876440157997518766954278467353508996737515341021549050865273889132978209790390772584728338145276829278079832176187893390100136400891071193815573809437728089189290830650026754422459601238280886021101335268146210878330939983494957906907799123667122601743961876182938994652178761702331512266124826067397752800844327931066730739710855190557146338462542006303581734653830425613755300514380403565234103388650927140291835586471013655164458916064913300161660777816175215073838837440146301807509902038204766798607802330817741533054182117765642678661393476952543289471774189175540067457666907278595363394004670835862172543715895562224149569729022787132458229854390529598503294807601168359767693386638478550476838076726510353435382523168926599269043696740003823733476194236107775252754706828132439964601786057872364547811398048937971141005096106672420825794553580608320860213145196758814019571382213464150788370507031732695738096075656744945645072070202078927876099824317962749916785445997152323915142944993044574758218922304803315365393397064812964969031612344162605578381690864292367310979408984105876739299072583088264619031826303292439683190542418638973287499609112654838318710121318312979190164877845552424807034172155276127625897860945953093981562106825446570460837036237098916655273198844126256568948031836540155939350488343781415503113853502150564038184538664135536548077416864500921147308893476702040588384987331197390084729685743745500146281490488785012427468841658449846867556340387938631829855643687809500434818040395472289558198242864321365058262447760119832915276116150165627854846932524231642797987958578450558105645181126108155025798088872881785114018506902131575102741802160839165755194466394102289675417338208402787921659931557709247171288367762398983564357324068507508067139418899522652496428538656603201614913514279747618876539870020602565888886828567264650715188898941086739657516171903106469191301919787900007432773734592644028292904451841945539927637635443371405017072185924934186758209721614532726316083628369045546264135204725497041787768787567621707953864128451465695986454800431775442937801135386612212707924917177739721777529436219635178215315878834330930329292457556879762486135117062076063828078407451508566472838136830331127315677748028374404943262605378182236025130222574865645665902802949425526418629475120949791502894892940885763679876090154046414643314873003274349011982033367576918802276223494009912871700672233467899848913427697617027930771209325490409677913076783127495924330201416461269401090201120814519096548782350958903094817635501903272346448539352703730723318230353725072636379282690597905388776455745552037850710099923503936977350061910674776588518296794883151363634884724482034714109264588143933693103814368948210858576534385703894707177153668634978243336721291672810857309216858821984381619077778431439464630219276956391077210793972227441353530065884586381711376356405427053192021002198558078673599532078458280322403819433088048328971453813184228817193643212087965746988288729869081044026138978543842651787865699206023637624066511902591380299650662147540603265396483084635616760772629824258135477946695277101886873639777404034169135186551117155310394290509916230130394717183877648947339675451640861502342267439657509648372684328892410479533749767867855912409975100383302103490950530527440183477975423697129214701429039712498643983896091746686689167476690576221375095620971139189381045664024446974161296599158696479126932095595064998723063922810121505048512567154984803943773460676898520538183175230510940997676327294849466502026667994072278473335935482272920463725520923002668247684440833291615764317537316965396361415701215836158415519226823105303334995422317260109946444542744979745897324940822332983602092320208864634733077773844525636406285109500539697239363003356044406865407672496989331259125608627307926865120297723639481239895160960035411354212454586764294549972080664647614619943345381549029335010576674582609314076679865493051065845541620724604615427167182360902547978296490458900824076926653874003553486465942539622495916580843093618927907009084466746008969987711754840573702145577525456343043564369714315227692885501917000264285544356539053203918921577099302024864441242338798534269327568618004540000204005249490968187319604214924146863480683046816493349655823488500535108595481528486344358754185027933288134845878041633233706043496832476092087635572200850667874114707288194739808309513233570372792601417062609239826497067907657349936747883252217152215492474639714611100245969831679977277108011198740905644773894915252647707725501829819535075985527478925326164179803733026327728136726864040194932445766001379211097224018347661644076812654550214996528837310103599499633973356327500414908283556003781817284041899217305103737769539846392044286635391812347813302579659888317209550629174253655269583984716562133255664931781786350005057460759269551054433373217895370622412043417445430976474140958975028084487862216270268188075906801103849649289541039020568652658562029956252915965695693850695909732605897317406730097775691611240949536239373815492099180441788087511930586819142655789609092447918239120815349105123765214418548294042945978860420276914175684870299714534020911399153057806262446862430712207592203171716022468987713249625722666830416719346442960090220962125014215712852526994401444618531221046366511980678401720514194314289551179986342662028578558173402282058621141905534492490106316993212325465030744138855957926726467368439451406527751471148296560397631261603273502354799177880076328273828771355086589277741241018412210483060566086281249403555881947007350059473601937297702857486149035960739870388814071077436532018759681491640021096418282679619681796476994047587687371339709869090953715544691990987891237926853208659397922689403859326637915607278413791477475868454128242976213708738540229237180864399608510685064323385893104603622892962264569733664737046135542516669927352045202093567931786288617849975328057173919259166247874181033623402878216452252788313392112100560620878806639570300230575039188761587062299864182577428718851926872053530914677839686630658586379728610460599699726183267564219379495341315730660810712081948631402004685516352283070015947049981884074949413456941438913755609117234522790305318474720980246413710438982732333011599282423607496542637876781777171390317867593431680009327339096322641147057677806083851603640231963146755140346091077654250558674082147041927552469243588667709304619561233428142741644564391767853166185889559145611661484588177877807221020894846971971153730147124013686119926304202109835794532274373409611001741182763584671930981253828643333143072096245384797659547237407767120531869589814195417932564880238213575723904277664038130700464689290715107537408832779037950734049564478318183708700260142960419019519487426512550746609991623203165898937374129827075378527520764459958931841383843880244461342228151943612244811053168690352267512021896368224295665882851884871161361281962400367186456595067323760356940631121472009805481174882424227535339797754385604128585161451319817075181953497114813972634393324997016482666568377004468889533497241534900337787836841588845463020097165704243279933120256198904826671296997114266862947812123930310942030654130826657444346466023207035980138908240270809536399756897580218244498614026966179713385805505437363449703645452301583341544895934633846844893997042107474762274381055026548083207851473863931345850732753955400917871424282919870132432678231006563898052251639528801389977339521145471446038225971631310392462525466653799939692064098757710951133952804247991790339395185563539534494634622799155820402362852094160586789367543928547294618551337013366657611664742076767030465135282901738214334831816515081876638215960088399112437541423721502320776119333002869882871833937974505631797932729488030246125706622997478516604632737313652415409270246346970690618625582713559680336474765438447155821701018145556225728611860943329361671702233506771999389381894338981615850581650243913671809246451189374218193822307771402944177159763902667880271410662852901569983792498683385938379449870797314475025622095832114169824759826438023840040130558518536598404756635275128507199920336002420835254758098142523088697755497386650337354091250500270287996809012794993830510866789935381376177312003222934120741748601365504317360273367709090874212423312137608475904883898469432141712657686341976308245122778541449402730633543832080751732062709822369060991833597180916475533829000194746456530839178826450832126677513183101582272594152608520938092843695357883346563863144205537597385653022024784780465687477747195034595524930944220655052948854274475915309082105381073930715506132657353379265526185953980925983055010847208638626304072991030096859531367115782967751292453782828630990746345598709201327705488263656632770188704183048736846892603611644824659134008472729685193896516308024780704816491820661383083979425040328779760298498482826095495610668600404869370378808978588754175286971582184529723641297680625420212738721005771872948442027216052027237490785797060394520370393963595641383592214900189842900186504240168636444646404798617598511299422350682223628063832234439102101190198874370389228269686066530242408454663787820532793552106495265712519778637826777908672254063457189584131404160834688360863366810989273109165192844520773480397928985343801627933506549679896188431563672164549018042450357700933658188468650739127450209475990995244757857604450736138173538183746154586031926965077928482629264054880560160817375230503700028719541145259092433791416985528016669269071419738883734117804368681541745115610364584657871842530025970221240664692821081136278951078970643350535750120387583491507929247839085305656269516473603688289481514881951740161925177062535289429488875935337766781651477961956751052344590226988740381827601025888062931419521010433581206636060980218322689194291137846109530329250900269222548679033820825145268011331187029874864862609061698438246326449479053179719543643256871136031854922599676258911740411440501910937891502577111338631411954405616555505412992942380716037915883652610940648578267259360980347984530873049966861010098301120100249711800636725605245607414642672854360322907307248481696979461878861428137353584671844532894389023934284302684202809721498053119999761093316265917466920786929278603182605487183298350375519742416551239953709171431764235720569179315598609232443024135028096470060586936660537216252419248997882724502511233919433236475150584729482169472043830404190491703490115990989775240408668259971233356059709924836219220565137229607618717610978315840908588465116058758368351407614417351246373663104524551296271399802591193630248741183005839639082948076029571454893847878733735784589711098213320494472172054152057287559959787311204427358399077614015522724233676884772561455632997718534183820174835033228752704994956455192705571730803706488967529774126933844001347770996319269949793561985144610828636902552534638477776029861208695165440153532471892284323765281097157878982726689508840374607201862190828020536641648806512470632939056822721496148035900020251201271941329503851485023869187528593803035345898550547305093541540985079577988597554981295253088746329378657730715330838436748230054725121827772456959523813681055336801358131750418761232225690288348927554823629920558445240926770048031788373838238217254664994913903090368359541252359738260445879563628890861609922060870006973578728349228918773283707188212654735766030927853061291447882546609090115147808290742019965448484635837127608569631349835495051670184912214685861565825160203963796597591616782218967234940254517481468523491414694391769636053365842072831208749433481419356217038738342018646564831083109077020645056569057107177280731616906827275051347670531552419855015899704023760386505106605099445645756093387985369210494789494979997664958890901694531109401331045551206299792481579037728050322914511643367176227103429927144255450215341151524733849458977249841146071661038277876214013512681926078821221548225392470226196690355697862480189260120815567193164183644418237557159182455721802755688240895755342806001924991004061694816071272918771880634334806529096292575236578262114927218871233963543107597252650339159526045696942243509844532551223731148125152941851940271532467081997027311911175733503914409911653507656604687985535218679030894301438524153289519109789046221330335675872164852279557743615920192510488697302808174458005589526267495087900721370326240184537456948358410168840201783531608692773519961413842547762528397934785650631515861356536951984395945266035595076993433786311263620946496115097287938603053986526517273344534816983585663360739953833387213501465755604912436455516881415639159351928689769892131683335981373007856135271766035386061066505906993576792066001996780339572603474826125320423173436824481973913272353817205340665890281046572628575103260204697811796232410917559535702596211029266651314744173095945656996791891131687242884402992044713610757384768883265191103871837072517449427018798621013438387972783472612266495261872214524213656126822315959556977639655140336797228188120391180527003949379155720457981685353764373069879549194114381302958299355436350488008236382738301343880460239351143674233852264205291625260171764161699748155760709814835793394025145973114854555884906528501501796281375744960412198634342607329395021235657658527441019432374375783132724753571951042656603079378899836277978669838737244377615870483637463015208573051980743144694635663209901859029075066282889471625389739754515959889701485224816640654632127028595766292706337486726290962756041137052301802031923736394437684709841340742227604025278683975709257630796637384227844200756207067883365958403712734205940847318508589229480487906593983732162111537413276490487878511413629216890899688845920346204509831870323011104877547368769331436981958627443624571403312043293700893880746017547066595500829949583897538749774648059871821462649753969337288233206608594964351321136669482822861658765490554447210346948505555825099559681887894879296735099855109624339446698086441791250990295003002787197382384596072858995708771229332922329321342334479267459973272205500236066357904440632683336961861146208584765158509746907287905066220775784279641383552103427936793199203632924183865791194121441029936289762227300361135885804371409269491948857373059426574990526016668403971113170104326782908668424246740294823969833542306758621561641214946884657314758215311747777887113820182828497439755625784742080844336634026353882936030743529843004164493688033482562342097002285239165003860907850483188291043339788124608818476854358729385527658741743028603112202123905145732826721397273989119749316174893772845498760660681275332411353375110473038430025283623237337022031358375475713838654470340325442848947565936940967850819121052137886159434443436283548672087461347863571650944180586761462279056881295983897069864946337065448145218093430181346656472002613093316387251808567075690401049759359500709373481498730276257850415224080189842826492667437885443827113341468070716184018563476202875382935044707023063287749054611253135227971382811572534706886800438398295532871017286179866581267307351388171763955583341215901351767910760962950897299771810740468759196952173324033598641569642876258395220102922337510524470321436711502553039220010122693507892054692062165799094056319513460018664292357853383528309146363605286327224654572620837427045921933639436931530610678501339015589676672616321438564166444171434380883583007006876592231318857331573279362352659468588986917316075974661564743519857049950091575099337411231691342253741997924111091082323196780905334745617329921228626876878805295440129990583502128532913756845017266314740463503484593797144790096326411121517379150838952546764887989981913901681025527854937836905414698210508462274038462191347643071191250022730629644231296052882733029861047951490141234447685950830537150250420859479811994199944313502434894491423711115580811285813065705251422783673708029306546848970711881453491920957616593824394669546963814666424430858893472784398392045706160025647980240136407112111945274280378561846168566447051511190728286002923448284293008175469731053681988014227353012474837282226859781746456343014459459529413779062849724658283154700581377175971835518136600992865975871637132865271500973510869540936394157166393286347018750671151025073654393057374616835247066249391968047003171334137748858731494768472525369248259500805312010336551535963328752769504500466086354597664330578834812345495074937090477710250108317258465876973814728510246011268073993719342013286798515748596797432841954410391252916022061364775764679191110955187269666921170246943903734546756193497548591932568336982157061070818534098035162077604387684850202043581712780669766175991863261142328802867439693190102804627270452828127493060254847736852729740603677305933436880278373245976859156100581855924030395235837519922644060082446340497063543336103858118288132869843164753598853676571821695296158824846149872870798150575868022506622848518762645487046137677551589255901000257067254179204561823641183644018813804871675959313185207138108977381547896305820140298970510136080734094888284722452226998867264173919657385881632054741503230462324609115013696583841789051967185432596865468194429600178938619884969491702954365853223183184543145310566695701104644412144241645030733647106207135119793993300006661350710583705466627872566567538818841943867584543197558766367712286907989785777706888352837271653871783897941834107693303275416788142420053378353495801788836888319233711772886174132614420543314370614537152997866744907306148054627263672807423495399828094127886561008945418822292810265766912464102054399663014061106827705648351473245397784415431371175311853630132027557822462210611113914579299937647827612854318823790937124083472356524485211117395804963597923669074671618122415313167925208817685242551225682647555529285250588968072764886353096723558248276835082433508085573334907743925602345334559529768969383978098820873298019660531272854203698401797087006636536924555274709379995460504238989117432653444574761382721334570472118657373301427645160666949348806210374418940391899474886149100136048623664601883631468198228042532134031667305879579563108298790768893310219882992869983767957423522900434924776193200625068186863450285233516437415832886354238024485577054376922098920202634296575726606954081113839836784669541023381432829058130655136512452019672717949482149906531279562610279854848492819809295164384967331990234906220432058190154081227600815540152101069668543174085066945943922078647331192690484375109167275675763357803908122653544663032950185471943081011925234154210024435019991891323572086315794558621472793054896058362420525202559285859528132122237809047097065264263281819656780013277156663865381243130864774432055385903677409737947172121157160766664598339242539799281462152627107357468740545137910124061826028544180906732268145295525946096693448648172872321797109388133217842908078329236090952836819689244387275906992290175544293357213165236268561383361683164488504352751765068127111215881155418866764059940415189638509760609183185063159266404650106461945263795643688387571665808356661227713218199739837935999563142372115011293453565921972685433975319839157845810334275982285198505028046376116429708079443988894375878529302850058453815538533777298341704721797567420474189516199878776853208136650444784632282651456175221552938606221684013915629191479933495907627899185970255137234706282643156808226974104331151882621451781629542985526289873758519061971114240973989491641476085892021056183511869034502026786895306162266992366426809703185008166188437324990478408788398406007982688277357686564690374373037396106212170555549799294282808749657418484762690763462279727229326679650285222960835306115005911518831377254764233596787324615618134906171062703480014989976417846324832270447653780775168723605187013450124771997791552719371560744688193895698534606441726336196108885018151189612380013650806449195099232758179920968055410434152901656142048214985376835550713944316008063386966079101860287784044184127428412950033970366471051542674524367017921905598251822698160096572855158209669493922111209339855871922306726372047979382152675966962544419965498163567198740114663743376398543815656397874340839443042214019722825506321328751008514595352763123903149896249261417588073373069115521844063803086022682763457173218062412846864240397302652862080705374535659372376093508987701064151333530417946926183629742877668747050079399017804712227635714534053574167764274071855334659198141112463465154407255841296668013033161841859537111701917194264144114210784518652414056418281163140692462657442542920596194627461445473972167330714812403634984317214921598530929538501699647710643160901450598944493437659979014840490676512106840015149356482407342519431118907461832078814377475381880335034708623202360055651460907979182432876988338854952737022672757771883773136437004218468393724126471754719864379839851203480197478648154587677419656564144549698105443988517382740129759108964020583423963342762938590108331574471387477949528472232632347685940674063645551812195001058582806258237878030813584679249713288730500599051190262807810340282047329793128806260780539092796769534683065260800483342674237891743034419234998278846229530815929321381994514504298185874040193824310668414580856868834299383999360637078846759260744447829673665762732013151821673467651640535099392045573046401713827816721649466701221537438000979947509806799101673313554978430576071884676807216925000075495195492219776951485824858589535754487366088135926829763276147781304469031799193111951140929245105198584982162478154709756542275221905591567974412170196155788917689659995663595426411453910367861059376548828115665190370889495242365315789200073922072673388114372392949749887313203943823758077514238397068860074937530617225979741081903935782631952963163606203728599981344473569345202978612448866713954144519113544236781931767196955993191817711011512577486475411662925384533581926704867681357796870896717893519834612623143117599691079802722888879168907222489381061753692397550998460321251107993176990486697393478248212755038798740425662330611518557564354238742477944486813263126184058160253566924296501363967356360345516890159059878866864584294941563764534998512231486337141482429280836321006970501151877906289764081067575592127873300334023381895622412168482883107643903184533826843321695037402614009171384452256534958302079107905606119150408316428300380181949195139081953248825560135871771404720813473817154437134385156586184843683692046313886448533546602962003970382163699278243719464100893028053787196427625239315050202624151695875425233087880945867539327333374740515826194746459747406103039548524587892610102958859233031037104651700847324831487162756259328563230640724111305482933187406915344091877923495487850261098421668922235456305127207290717287906842083524786857920073172347374078233168096523830629258296118735128824153557504975034129665178819637407689093769624660321901804389541283919441814800418199932246606841441416479145879719796178910376625178453522107992163909897052489746609707025625821028453335078336748113911329676557990354773091036567140692095018167714052637589056903793943112880124273660234115376174864967916938728267245778726284096126404133155697975973702414967698373038932895613239909366840079856570475487760620394154045672299138845230086769010629909301353937952996031003609872298295623217468370916520485427612396684968022248384086455567405757479297654246595292272974958407058676239432274785302868559656960491484541567992813447434414520551379886209217151324028662203800967180355732342909491161539088063065856535665271818657626475081480455651405300952810913068503211412608036049473315625963107526181661944700427153042645690865528545154491262253004077092235023956680523720382861370381484890292584743172834567428777988870531258634461064835797712842054314707313398866767431829903131325662663242008176450888346110545087104193035992837811023438805499051118670942287205330746750801613085349881811606189854382412543651547184013392922756263615023653201124478287869687660911987557736599268396138153781075776099624499098314409547707268639119296772889216012693688126697209803903444296086037144985478842507551348414512658218381912921333105812711065197712421593275163830596276107804025360870245981943601881851833199902965685363734878208196522395659078942089948490975133325978766582835830916230419161853893695321855581245670676185515810368802522850634693469498813939860068698413445621080388456967179179555190782075146167639514576415252427063389996362430709063997718222839368404389986902639197869078804471200721076323754875192966859729192286439180055463585558242545071713175747589455343808320873217651323800234729837159865192119557970610353854058409516638537245267388388219798192684483221914867853719545438135899673855586023101244610941806807117097711156948719616954239653016882550845394749008040626971316346753222883648683763788950468148073120842922147764203040903036782195086866918361894761233248979946734596399341642017606471284280611114576868789286074234096374895489892670513286853604527692410808029133229888688254517995573660304513337989618216215615842448822952290106248459989233007612118050833126206872201683675247006983980829090076542206502355338257911320755413656845591942170097280002839248562742759568396570275996292859634610200480907969759099840894985311121541458239093279858176702670693889866371819466111199373571883229964754377931851602546558431089797473124974575868776840867937066095911704283928070811434466681347470430824822320072017407066472250251492439949513579815601434465503179337399524521069166676781165355552733168558464035854979119642897172257403144853763179661283039148266541420639025495366792121534340440318121751210619684398091283868641697434497805775773765579147011861810523122026678287045164612528662634733561390804115631852132509500679052805818799587755684938415802336865232261138756511891844589858134295006547541917079862176521037291987612957192012954667351924005468450809431411131111122699926095327076331397551863986525727598690505703146100314418221933446886709192008757115513468102749759646563973796532454428038683310204187383765553059332151581891853039483910361406096014592314990255337996573769016268141443750169486540876144507671776844524917955698702563306560644940776214307206018688670715278953418637928854195775230164101180989308317589030020821520889403276332955386670895560051477489633359519506580618793677400481914624883302626006077130628634668501684861898602752991858069762093546640035339579407283151053995577421070102474449076285080267001340819626771936922635608616085183515952653177292982135804044155297946266768925301432997744701045050788225780060377042103361913292161533068800561692673622663635796619337262316213546035040504299423505957178619212227335814713994273514004295068798759483295736776689928228714286272604236203109921356159598234260691688500929145646186494392610350190350427070856404879400728338571410301030172461008346173144847964945354193528805108953580534326821165007403554500073785364243732541836118816261721133972426317266308472952895118034301460773612493903877670517758137220721061307430590709511046463763429432614115206750343802424291935409243153946254549186201643830293988728933578412072877724810932696196339560548554526816322946075487082734669416578467615746942718298948500934809742323654878843842078672735291626899866972665653320954361007256369445932430665358942228516094414230147101981310210223228337226574182477272475865623129118688424631086448496518214332557242719972675480868048517850233035783374172159516954886256362757689210753940676927918347696460239604716496642874300564575981299169358335302997140345360585755219959454360570816822156741559316938069664976023783586170937134775216768901932798386896235310761382488833528498778514706794861021261841655249257069016231714677820030176852349733282484137948059454322945717648325228866381953334527922912649654715964005986912805258010823452484724180588873361698899192667882769505062118528728722790259746078122402558465916399024970243919723167408681066872545961797482101542228234660970733973528948784665711472672325023611667932884837591184492271898699498731921196132500389644620178382402424366478655117564202008272325527459921577296882147389894099976465685523430954224695608787539037357360471688404387918491692310195743678535151591351187225325846355467875772948933773178358512977487577453185180400912968685124279568826293753754733130458808815890737825752343793586514752091509557211758907564796059026946342759977609323184285263363293899086162799163202674645053793572039198174565086423640537179298040175375512424672565957240416313939339346228869749838127929613627126241208412369763358830550225327689015097594397662874588012969542027810227020864340518842068915100309090160712719998026116201553179028786646402024785553769829579830212480750977844719952679512060592919513020216528756181340891994388958141352326300362090441217462371083202826843138373427947169017798067136792446076784178465718023027513390364329077580897448193601338716410493093676261517978860361968417503607191598160850363871503215366395651105564775857008145891356578322900570445564817162149851365809215500163860629859930134399166708817823202559702543084776229714109588248923542370383465356228504397814720640814237709413398010308701461113614093873487378132222443626084334436019611731045214653863292376622866004697337602792401437645064429879380386455779566119545202655289191806397747907742142561593819451793488888203326297312805464862480134775400525583690545329237426464041618430878276273684804956224083537112159874487324470186963014011277272319272669782135610381644544855755888707528308170353696010766973146679758738380705655824651987362697745731762637687510670605713438893656343957160272646211233653193882092969379436314418704590252532349296330298460168930197838139662114622455480056636636620045725466810672840467117299387513256188393156615241536196122779933073291296067036561814012034593484712975564416565071751045648654415543416004776710852099572407184534888463812148302351261447711956221708993061003096646084811490879091748790099072179981571010849564804404387647675312373126077767604569123206665680246664844543823079138998459775198307362479070230445482397901632663250591777385735747628203452206637366061598392470866668779859918194105167130160158320528535613607194506328997778185829880062559232855319647865701285866962907531182551717222395962974348147416520490383889899969186828799536239577945749044573480892618835589921181988525126683495027219831578588223124787052954383474764200431794086651516802059519745765885262408645723870491355728836994935182355021160161658002765208586615212992530688771083177188721712520813682417945635194239868787429912016788021559508047556605356630399130647601473918244444741425191953035596821925687328456294012273249469019296652115916143835980442260146015563136329063917776050305936972953446264204048131556657781193644350075765357507876359751352241133563671393434238899282740791447306217368286471218893728991525415599066614892275498537531317425087533551777634257006207935117627583015466437514425589813001042045205087380916289372878733381047112367372977894934998488845710552232593343176832409618740251064771415194457960705216386902616635652835347527772746923547850945357672513004044003358205455988630747356058266258832612388362941198089176742562949952521153114276282838563856028026689343389291615867686921477337671969308009050907497062956155998088971509761467382928111838729092978165509092893248842426518323377879935065491755451762071031810735147754895634887332934489138690507495781376556474273943450843084667228697376550925634363628955182206360870900612761786573662367421243023509261649683177091636097063103156620715217725759617363845971815585911628655310894857414524823737855481858079436200302981497374256203649839175173896330000530443243104862831299733500794557651737272732369533976279734940026162731631033629850209768621065101647070442079057745172279572792940399595191144516946059770979128530681311201181649799788902556810280442619363741540514474211731399967327105311209272713480648732969616732749734467182799442859963895774277008439988505199047396627636037661655735196975408079080581790414407126484852165239021590985070545502708462422928945178368471345615175490120050136709760885761170241336625590127810582079235137085495919973371516779193351452272648049247069328658113385072990903319146070320408627249137262325404995567803238591857153841189329227195763815082411276969710255848027292019810346863186050005906360643748303290368220984511522198362801795824345106665433688025299605515496252931471691368862766755783233685471855767034364992646971363346305856797927410414241605800741106723042273762154530210586924488797437484807432971042851985717780131608549339701250926904275085688057113756339012337121861498395563335656990276680512659287528754183398466607620934446297564128906450525542345995282435841635527077072498905675556820443742494432630408187753887263555658826362946212825547283249363435248915338729452537882620181975143171985889015543403214116884429955177237322264994037791228194120626308659854831871185001185740488495213912466619456476159330705674318926396305245988499682005711875224961018346266598197096309277205931443979312986428631701715404193773419624105358661216877838098243851462538839214969454364550017260728104806393650735567691296361264269462496316048668914703581893499581669871395772453240231689254273806171049405958895441907256741339119078513500075869931389646789589577720340883215804401037818440192662134364555204487334249515277667533870731137471134392020432666780072969858558404168745720514306203597167972074320733804406946077022254434516185358415563706825903452636378967009833103074501764335554620496514308939767161821580086814062118954372703477738518344287579220458817861074886986855505382463898162737598484025913332921883336332346966949038759602745586513920140288680109674636462783873238742712033921761524097090736934251599213390031986420962861296125564873110038428840435699948845767498320840629309851113172854356208911169533838564461297892575804635932576161663105589137827986757925368604601999516654008251134331559759607472669474671428256575448812494565200898986638154171127246332395836846348279238947619436071962543142267464076446474280442374765411834972231730644139318735183934473205502287080150748615590923894876825947939784163458100051712742231005015919407629416661362298841927934165970330936366418103804639877512255284144009841698328087883446139335201394598392550398017947022811095535149111210334893571750328831072038151099154231672246469106666765749807191223231927257415223817463505567468916803622735266559189217429726932813423978275774080017573947454624367645363907058039787959082026446795069100627329965622084861570028559978442815223547847085980309229641106888482636091399214593037314785781612593199070195608395820604264509877414947973625596002471592554622700785014921335212470394831052101662003397886972326161705567656652261168346378404804165186313506260031643393003971729559952785890009901192450064008347942720977157681374107932855491102561077150622187662961832020508247236177820387712595663578350525322024180803826774417509853784361979699254483420066625327179655214485202172075188006177572205141732351270533632329089689467894118324383885027745144148589654600055745482150290859768365198062797495127585290820848321842136280549043353689134156349991353200246703036580496808609715572928608066194607224196733681928536927909190374571104164930346251183666209493984525720825331108938713239404739625896565249550700893064210193994694315382508923752992113407839628595051637254365840543399024106263005517231368447498305308764356830026753427970485747488470341338823478912805281661803114964510484508078372468872428223373542151645282486837425578298151321630605266612182459489412510527195083116032180702035690502414788703864868889243389767823604098654431705302758326256358586815444242704058783756129006553828542026267358208307363509545427171306488160850578074263423425116511359407312970964101853463265514209973010865784926426350612865630991692963343850841511132009243346753176333026802031407266164339816793208621332982997820500157183460215389492034179831097948068426511917974428853879552536064049184041095660651585871834620621263285441956654001033760242697409655619410677150607342576213650892707189900089635869777827099364092985615834742663357559977395670783760893951773046247064624881842129313918753100318106124660225718851873222918390693243550401046239311832287327702414606386211464888231922851997092891700090678018263705024434935406323449827748594864980126153144184496968665106261944040918596749399781133555279058095940775148518503661929251258082371115085946453166759879739344089653823403323485985659216326847344138672084261203695133480761955365686418338047592363812677956456340760068856718365200799008832441474593264603060621684204542719266862783057287243617766623573456855803293257034705748711303786636947086375440316872158340097523365540199952425288993826886248620304047691373957718901145672386084925785328281276864455498317610490371062634962902501257159868246461142656970512267190312260691001471288762571463311813257895455425046738995270537431013658966089098165616183799712905003090225676409769024051380185806510850488499033875391584745085597970585954910832427482787012027288175057924670335051443147917266569211925931979776256746068557438596909212099651604982079074207229949910943288146947093186067556761335539666493541911408188645291376434865700297052121049204977857595572857180641963642669746634356136122010799935918904807633241517413971527320540828952553367987320404714742891034678240761964871328421437760977060519397094669523879825873926214786282808688706434777627804642549743331350360008645189429892391415955631504659041120092219018961088182617508632509934366100323427444430506744464203991078864463004598788500686409170545276841425325310024226587924382122969506462450091872478656290734491974536276835840674013737726716555399533913036650203316546648244701377056565062542928426237433003952807195409731318990518542323706172264514610236196763717233731831936871010316989741750251055115733820979881020341265473826714065635027028468451069556737121428733285298375850532162779381449123696323299564513412222426867461377345452047138973680794449211800539903410254166170322050421093779220228302496570831336710791142308852886216746565427814944372551994412022916624701146818236663188652157967703969072826624020267230428432943733706444351939884238573268193280083327273729641678335932067751151554919817262298111678267118285199754243038818352281827564687368174312667727978270379434468976172340859495003719917329178119785601397754809354813661339634211813137356045536553267168807414831518350022305950416158914693004735280874780835161497296416419126484637656354116111066572844214410831562895191398712780607195939500529483569698181086897609407304879688072874408341229606767770717843324959383047097994106653995495883582988798261483955607797497316756707408993435921268436704821062550673219891254034402686104055799745235846118447443559685871099866966159329859576119862123880586246616637514603346620030571770142320150570785770916214837863443888054159577034995357678140661884073220222288107404277499480692570098753371769601189145831883902416364335353903113655630145579118401398706132909001072005834300307256582115852467995890425625810014844841415316070703987160334170088092998951953242641331342522918367635301659137262288063375974028838350908787506042003833072808103275155534025331873201024058019798847715600974438083826006354241410023465229973963084129574154448249472666845149026936041389519031569040969005686952870747046614237122193730164124626246972400956750844746826009774265075256450944583148284931401524084036358489346005212970501102394513801375334560054399071618416652311224253598770712790222869460917653761146542663892927490941898588222889004851489592779660851510241185739017252107230396790978874437595748954114585520724031559682445608706785379292845206851268127368300602992023878283235507015431393841411681670283772976774371125629733954819451456953242997360235586681621703142554091374395946975045573225012055240878770518806313982893996893800445020256614669316944940403834580222134977390552071254910039601435029169914063432521843563609841413911302482398141967848186549014627552924108518607636761570568734557187315730050736880804852487202669956347572041735120718338519091494464344703633642649068889247705094440488850889533020194096993934686723709527386503789253729251887997097609547526301460713383189982012596873533633417672225617895270475798527389854802483739080491079163277623595025886029168942476858729439491218209731809437155279376818229816524022390325943762183848088229886942159840024111645226622764879155222523748944298136870177128494718178326348870448163623681968598571770988799887671991786774361352225841594187177141310218907575280924035179610221380336344577852307813490488828666782651345010655779821079571030053242689973441154385143995482101387887571760280853116723905337482569210120666559887710054412059840551303252023778330767930676707122528553983154386268079283991831852587159825962852246927398096847709805841136406063580625048719685569440733118403365285621230216704075947734336263132247248016097030832468495985908256286229875598086295309145160763233326168425855304939623371681122868469617341296398707556664734214091759542175025600944122182626455853607651138873608193585421584286993827174022500252494684653922283165459346101374678709614578020463494565566989917560825933440350254503700793816387326232204428451883578755118493815876706582975068797930076173187983132965976085238939356124130858661753279869775963908277375077598620683398512435188260729887352683020186041103564079811614866302036961962611234294073486032574954521452790715195721387230793773063927924071402892775713366371217195411260536470188219597055838852316162418057830418604300249837343790757627416602372924150325854298516216391935590300529036626091605170236034059802453812337133646460955623214885518546242195322263965456547249766778414588765233939803249917106708205916450332420911258741019866981293769022519696201663385598859457716730071638818655577498159408556248406315436804336853633621646950254106149981972217105473177633395171818696307456204907168058193346785945769669666650875233438000411264981117939546521277655098280489815620751244156434874555758529948822110124806201305844073374307615566546897837576553552839799220758114036773561301990597488287055197387278148425928292625173146730843108382461395739328106296331003574219368538352085162830976437112261752880927936093289556524081351176512038846444632785481262800175975539585001164243364348146879975057676833148884437437532157329911657349749127504503578484287772915668809871637422529957113632178703987786679998481162206875233944839114813782974952144154015070406127771926887153730080354698792330862205351516786554383225427318334870504683856549724198576610208180204674040558274964117898331963452626434512046835766107324600699831115680884941083089436991825248185187395397712881243942581006612472273223258696462551829207266234910171596064342153732349259925838273781039419677156107845001112702640290452880510649533121685290132899943048324097358342066198329848481761598374396475270587688203674321691064263001661324478786637218165944809830423256983093234592970657211251215169136638571226981749753078942694867315632608612378344768522119995941056004571105607134172894004681571582855713730214657450088719580639133037183280861590052211361226580103387908452572252501089854452835169422847136683121239728217164935488617318202055083969000127640091012581284636467633844744229281521360108116892896682651545895914213844055749295752809603082344671040008845901355722602442257968685374241709923636633019552262513783180687554243782464034152451727251288998430994611726458290835234182955365768032379961378165602151629826562237148143707942973683163042617647610019937555096541867476284476933736347347155735527203143797307870029695064398158400978787538148752188285305388378929581946617991760904533216173746285591354647091752669775638270831289377579641850547003039202850668603764609028947902339127638979797682752364458345415402075557312523718731422313270841521628688835390422981798215149228146540322288779223465974226360324414243854525113029169859660124759211363135120821981677555448540554744470754949392262036513076754872268205888727658899854574574065169020533990145466355895665367933261459352748267344713336361812850239703422655385800878215078832172208811292579910916602380119961743483607452796417088192413100470908386254814913400556687587287676367294957934910814396024930077654858181525178782445133169629995647341288862350114061795985758593127092139688378654899189392003335880120213368093313455566742692301906060708696606399954791668947537810622565290261427624119330921839067306504889308657764226896127184815945638586775443850553624704215254778865542692117894151728037556423389731735638513335152127590332955370881346930041860953086097868771107370811623674513246777376770163183322546729442241902349922902648084802171612377434259093749118333073020108757161005124723917144100947294441793360240199972929507924790442126192201582261676503225287151048182025961309553755489868310895203216745866626792957330128102608485339165839446136068105460410818715555624494705479854245063001712437054512537614116308544122636784365747590576174806771153230913999266664534831191749078335756048584168578555011636689734619106662198094537155145963077398206327307154976694784793167608516356421538555360007087778262110572572921082312415031815380841069586403371345278646267141811865462515158596206827671816154602940033495639301482052587144028786135075443525260618237349965676356282444414116046503552219297757152959678916274688101964936395470342588925071633450927939583958516039314293570870995974363992785419329680375002915587599557805731016166788862913395674544941200729133387965484640130819127117835809285277321820813859102254189492402038810088771134936337789973534163997922210361204206084328027923777198835807258307567550066435483171585961895623695131223354601597912924355147078260563367986447427611055724229401762537607875824324481336848896938552317483813894134104264343442784959883333908265521760182319324826285485384450718301018448171796116471172271642478090647511256068101483035580443364191734459404076276247427526793231745870510775826164866960564018625899448325248121198529890742928939288056580857929681245348893874468814615957917811492255320756035686606327450444853402789871568533651082224753187650691016658902512780905100390349308527071218285701329617435932525402571310537453979260212142524056063045797335475018082540447214356844992284358484521350997137140004195726531040432911991291624317865295064115813436903598319320184399867168752498152704849973199444589845310046245222465125281448421062487270248336903459868122706933262902363069603269014653764173520015855922563311884455545939224013802413227831890144324186453658053175516771928313936132101696473856952231966451889242555334163580392416795156988897552916925040611295143791004884966182577360364849528750991577799999446661042829208055975148934251284634570042217660227808078424473161160751054421636507310792093090622871597793122835357987101158951843928432754283641005401394707965064827681841499712242112305419585997790910857930163783101506605436575354830289914882062211105862896203714154750008258570356921073047981412193869831057657370083040088192412911542224128040909665853888999058204600008383298699634388183993390563848100452714414566544824906278229408481602927722559694012833525243382200663341251927228776286616627038294744444535548464368930484878591425593079042704715394545295051052150005644738521902589288104384374801511947156289913625745306817783235208063425607424272618373940633088085127663602931108377003039358491010023754371706186231813030459606042118077366808736549589593571120024825233100572341984849484506609256140212061210837381537095262663298215552832610017360344866658974785119879699248928481960201528179796553610698451558514767745454314839425250233454988666271154693705248527776077931935960474419760044634074681230649076189715566294983309693728218343445785108123475843204572929493927373096634734291804987846765341735127620462791382645287865312032219662235639169063247507804550504337471003112128341580635743942842877625435586245121788924346806979073164227782927331262031093914046485633681499881315047827043726925068891857683922427903055026154050734150549409442771408153554553119706688665239945785137113578155171017617043321765169737179486922271101967032101090813731642222087997805624378660430334146669599440629177845297028416467885523760620012045805670668768400065847851303234870424692302172412240359040902929812359120162707471898691612751305394291556473981447160234581153774265726486213008903914152772823954142087316093044029304908505607057956067810351394875949841527645531384732937433931804624389161759162450780465039184129826235396106685269261941813503824655387403086134823703005214206388958473477567482537766763944744419455577346562538716130045409185962996096591078707593007404552647647467090257471825882716994068220553804985982821613822784450658601744564083603262351495623203558560243804339909998944743218816861113552088399672355133537364098586358183118583351173781301836667870513809186500538981224663289472830004641888212876589525013823345293120745296126796566930582612986985659264279795115369897369485720111374835346499935983497126416287496995863080699256708016857213546535212595901775987998308433473381111510508039499083276021697638201552884369371524590577004604219412645375312500676843279316952478569514815209782917206331271978349254495122483307609028258855507001572667541775599486830592784022987963728086936564791070952320516577250589597221871897494566362728482977244635889695791534056406423334153845501174858811918979860067942492601218922956292490305387372621285283449390136685217209209838389144997036752705258955903637584234128331919838109557246671702783247312908313105700060446326383196185253948428744230223021536417762188361155385077604160563574998389236266899537651202772106974503960174667805339506347895567699076785170897240080912946578328568633504264528776601305962937948991575633223401476208013977827329580012591742701401242553014619129847702787092152267275734715864465481392096004745206417239620938548144468555802185597149201759760283028706396024775543607916465069253584276865571341041328736156312320315196785777757032819725092742874414855662533393746875395845192255740171593638246193745199899182737540604985551153922211003097764351330886118031113613524802945348535872645629592368346581588879183943596997711991452175461427839465546444628475108310584448551541093652908627464986169482738140224238691141715085768788196164908436961556969317263631593979325443313480069411267176170986555510589069035028628523845744849922039080462491848544249317028278903377185855713498174974811887247489511307101523643577197743731868900203686868207960107668695152191806633563399205235452043401394237503685924960533911768865444766921965874566514119799312510212656020414336409328970791168489748952226158295410065103125052962590736020470974326187314889102930704081990070157860605214260854413984404726129745371850642843311316336795518113373111435093488310528568206197736969749278425985203944815726781649213221033216615651195555693479223822468714779545938460937098650613677753075818770871750466822162993152446622424375376934157372740375704818857808594960822320674620904920333034284418079947337356399547901013538511197945018273084423187219829051479266843554721152082937633356862157399222361729586057900685556825263484688662504400211710032285798251306973856772506429486275252174426924830884313486228298020006061174849671156987479660646202074401277168092475063579991554234504288474869741060674554104357441122514880577555886792993236941149034440869873173349940039278729400541273997504787899409252687930539528045513350558368156119440895737237636489735366162497106542382024830387940823722859374613328019908560662353194189541643080861700500421567420905519041359984177818304228346467614824513438119913723474041468355261822477629286583796350734226124584283803944992044563460709032875755214632577897233804080566543710648115639317603953918433213546748799359086837988643523048286863762461673448650297961608001384633954071622627083297115200984050494062786198369296274531179516845336263794507896821571568065902771545561234892583014386963088087719603581052941161859555800587676440299878852300039157311655269570600568868108066844604392191977649137591467012604373298823250090370288990282820388199559065439306311143949621141524188971765615247745291159108968499703386268287174527254885810199481034035710271429441801368288108830376237149648680041893652176746263595204553516104867031076698016044676081192749329082644903487403936508947068834084324228917708066385155083119433121987267379648984526572315343501526624143853431022525504376725907975490483599362157339909353418232367449458915722977262159117939492534568450002726353588310103233432670873114695492543369709030531313775766114993743400413259344206435985644015201869340936007029022391987067594778273410854899456685866289249142425191750292589038429475316904867417812244935339178407095596984817996118425907256668916128443795491258917246473115611505236399162352325347985046906007142964451537939773044222207552051970449594335508529144647641665414489816018279770089312148299849883234426316953213891539662268680566830281081227151481471273526299379298067646573845966898015696634567432215468040195856342690393574553495148470782672895757500146121494499585018825289292948191901419557408570518750217362070827647463992786771810427394542348162136850131593456477101942761423640422769222041588251342118000302158201654189080072418568603719370669878082200268585903673228787827349209610787851068320183918101554652026317336413722806991210645897438154174475431702603792540872181872595802875784050117604634365341926262008955237739330389834873183527209156596092906936507843643399893925069823356510031511403032874958496043648171144657471721872021629373249896525874999803756610056689052447772130221215701291959426251559991393505508681300831226385353155585008593773787022113485198233214820467937102070161745046254275157538215390384059547486731931895330977094746912264963465151151480918953300399048432950191501732298704180994860015519647316228841054976402990123045631007068827423246997042526517321562444813675564924592606048730463328365585065304843544342780382059938463948976093576126429227861568065443854323730820993425556858036218862345401509427379463426228542306731900416184123570407778289769592452421884893463159308109061956458391007675998178908561314727857290907009236140739900223785605968726350792597654656247662417466388883619814966439867699760833287871957594914242637478379412651946256297420808754535331189272522569182436127511937493889043580149036375021009849454233425946442557191946758029299792561978822779663067264177637869703065356937594755492983746275291400287571956289728366881452354945815619816276435029353488903655283374225152325386823662171458331823668143347448098375902829659370134291776506128264948589223207001996002191443539341138974683122020447847423327820534897139286844416029326540186252501425641811252138439315957571424443106347065135014778186160264100068518469389302032011176124116434544511978204955680943505550887109658253748077205971074466389507984552543832516692664229239249963085422462754688974013082571552356780529426885052003895478973680215415473012174934066777172726587893289202356529924067636248213211635579341828662814209689013007288256708352050702173569948263291676743731313278433443372004454785573121548570013543152681252193675779732778067737781271804645923564642514986836176380424072578234429148217965800151711143485625393761175895697147387208415162846730510617534788627780081864278029009101859794939280162438348703862502244390292283486731865239514573826879263175421418293265998411656428337073089857895344447138734933973408458642058421582434492724918831436873066325979025308634852747400600946885451626981602108515289946309683602385845524874768281063473041898335236382385372104501804071600169960206081583004697060444801465062202167881581381847731045623498278589819406388919028490959923187138689598372431230222747984456115999491379430101845871700061981166886456963314634092130793924143702824025787784911144237753123759843647224572942182265154315922469103494346780828763400656720746008442332838211063563113622072548619877160997067022813038390251739515737885363022895026503054347004450536614926326286779936377029460813624795734771242141599888717948494888363851516451228488209518544932656099943133952314408798407802377974725316154119469553172859912426787032106144487342504439784673896763444991292454011894115211313665113841185766125393129603310614209728657519014066497328327407084568253928426878395537446643802095448687525596808359038599923115768269678538813951992194500613774953583362790274828784981130369495977386483987503141931152141156333449885338470692651360872368783151484457819674972451413044023694156090752203846284674296968140484916644232647431681565112804553437723561375988141643899686349512365220067602864074317827677886073058940437531221046742977513774464864461154767600886121153004707400512190516064814262011914426040669383014872646600781561530651828504900486212956278168836049405552801540415735454025618534504156269912766329801642037392150624877043535631743902220673461589071502981949486889185086485653267752660143815191788881363385575767455325374382164784480961566103402230909874125518726704028963974666136218227810203124098984578096741420191234542201042027538935735906574538086336904990022520298868873021382683413760780867777553392089509808499117805702366085742702360082282289770054679386831963369850344095539382855798120383859468663380608001269637333299709099336125369564882967799492921972078147606117461994149956515418951085076789812004569817642159491375774014712104167816495685646654455790772679352907235633720759046508370295102057078254853091901095059216354045472171422878184532122102886950366958460395129595215990386515271073561032685650029294044391710584865224938192372782828416948170341229245266527746796065184804184470370191189032165604896157739935394009019340155213119672923342870264143665147992685369074744053304429859720118637673095690825598432007104991571089662160585874845440935664285458851408252249524654429829661196035178215449690617231245534833248008145344239976588394581610309597592707126949149845500176927371614767261715627040682373400341625862846241391098686570273497503304174749362439447450089688364878129070242076760002003176058049547371085926932715552789996689650834162778903104874384576449009775693382173665742326645046394531050717421763305830097618835878928525561562017749267676122314043376755801672367474701172125781550607730494806059697569755101408706745961618871602825150043634218966226970203312056396886575474177498235013137444924270001112128894781141074565394691842382981515713611235030726741760134305342521381044011181719451652209421392423244164515264584083814504974844681816850455397739386979621364934961246781621223303093467610907345899980740876710148367162871814920010501253353974034830670794223808707422210794551478620371105962449767271061453269626076980112616646209340723065338655409377942448835923366253759542422773386361841065054764365660186282730633411129768441899082054803106989329482519127710048654651230725197054968663269418301741305358379051332293404866907078040451440254601912310396526331946543930100559188506676134500490613031092463371035527690962922639575696401397694045090817391983122104458628134450176794310326921307133474853974997423440673442118027552557574529460515631942946306067512249379737697907531611686310574713076397503587844028828274983376460782026644427313673804340648069635740736917402372915300365244091039408525411965166479504822035651596802994156310802057927439024894673991572576746305572633410988204170486260651514035531674684090092439190159421026282623771365681762536846474108997810685389067612794539545862603927401380412307144425968624644912651351629106375871434534297620824588340029633534141940076714576002630012535113023904452000194207592954173042120929290230504360048583999736640448806838887124865671404570477065900134191599382824921510743725517743303108825441052608010646412167208054595894473470926489804610551777152396571411488103339114575694589026772707141413880079534261704296622670476533282900102814884124272237347129736941900794536062411484764526764425770623872137107873575931484038673827213076376102906878317783845233922250090736571559010386357292866209490514960718664248278860054362439908984291196870449908651365755003541554659089390056312418638244267171984030466715277685793405202914707254195674294105832700760500767813429505864782825389827878099258398272256404936519127507484040448709072662791053589035465200593529562512561516979268878081874853843328868269978220197400592275903243606063055843098904477269906328671262684470578500241250638570756207842919295688697934437924908811636964952357903570569334068467555688895608966953891499927232602366338422663262185294834031672879313847168098365202134749582965491081421326088092450956400104398140709294106564240948503013616997274411736084590251076435629229548406660049423636958884894035238442764914866080350070533914820441715619863703873545325702470210182933311521194812857239256734055190539872433607386342120024440347588655659732026251401465279819647730421123545740909374664374892529268680258412058970614618649031467489571645601732401159253298138660898318638165130608064481925484172352881112417452965886356912810116617569498222768954091144712731507974937593915179571739898875007012953857409260843154929918371135945457437882037403277139442724276970677633876692001102182644304298094333844743363299307601431148133558217467678700107622631649653560637887410623314846172549053235700958573404347645957574107960716308004546948945707368697319259682561297952516202657248131870967871257012505383967299540300408274357509091465795198102075662904818009071198440459437382108614415630406831170455107809087143928840500455209773112090363785216454546770695573797611079841967662989466117084552061183632904831475896896216736868122460262442287107011025338316236111794478093175785084967738809651468999475521607078575302416638245363571149840699351231208289278186987893296448237419266504087721043512993277650705941545212577311355757642591457407729218680198341091371754747207271913487593370064624539338488745178419241599614756986399506415146029701850089808786521882609797040111968093475424872997926862681624190891964982889519105478642457954722987291601346319535174483007580501665373340605423675694819607260481786453947438381536475891213338902120465928006153862487669909195259228437951657889074593988832136252087832309973382725939978587637835698781734865325879483626362962200697195421113684190165936205565935283627218384002860026859332449824619402141079634815678364913501717804311894471828365474683528209371768062607820510836690939327987023551206526418717071614938768893155715590685118040661703551484426688696086606371308257744378070086552401319375378184959410225718945385260599526462553830629917277948261079248816364797359033414709728509120964619530678025057978211389569805518784934938087316140672755258217471241385704118652162902761409315531828251838183726157329682591281753902275825510848029942090360747892799337495019433882699101051947707620265225477288415695132954031741010530993835758563974621303270198578197444233319504819198726589349690531519486819974231891025968102541530545247090251288726545970539777015711074987773751343129085607670234733424983980484718217096604212318057814788792689083998178408007738736830893510317116835801737568183126533156099382124995175149120384594836879664134817490196343738246140470744583348966659857468970517707398063408581314113778065148531546706006964955152608485744403538816063528571778398558596697578892955208806903889653592642557556157331976883448360529358802420657315601986216756606275946519419215700352732770207237755284203634535187772923070719313310631127184762120006638750955283689798156099481615198335312982014953030937013858722285897324898119698662339719145007491457972199645467823333350194948609665948543308344453471854737550649274137819451839628103039294278794274181018516494722288572929181258371436884704985258634935640596195020949326927846871163697592653532707219466874156668440148573321353827592359872416012976078800685012698083623637494377132055477106485005645402043092055897985184107519289075764255615958143260711090112486535876897286128490256031217033688606017946586106590863926981642968569380568642273971527074076822494367305832490856817818342656974371422790477564210549872854800493209544763271330004919092556782535718878910229785103001568650486816699026246258145482899195136112495313439171405699200156499351589957777550927764951398702927992580388581842924759439960798822249431492958584433205649214199958609187012084705705829028057833582387371326160298018041246691855152667531138488921676133275842339611439879977931919294113997221718741896240955075900201315078564593863190518658550524970793305799828307725662547992682471069417780981473420756599961505366775799253632814542709959616563740985070653019603048186557776797796154135731915603307716306461510654728994152454928005627417417610869807432078373637354080104852539093316844285363818467149682345589548550686893918906573836229068173911616862214492511294670095646029792385144660757320572773437862884158293748974188382726711342241684104956045097356810921159930973950020613471112171707714968678394323066828831870884151563902190243440176316187991324150894933327420718252995827760200902602071449905066593523208113059315307576511023868210887725143115463029896742158794942042610908912716274428076605181419082214752312611229582395388335769645808123214571259047447710710789011977474946063980667809732045274580293079625111297372201748447933190059291496600253775073592140335340103563722100014608175624468686407396362870546027162489896482027899974074586840930839240512498656828365059023772973436142956293981403521012088215139421451233549822633886168291839262262249788874255415800972375903330893083095155656348571482436375228532754789402145200779970378864435454323924040641403314967581051403830899412447986536023032858424732125751480458182245698302932021821524641151479022754938658168585531569288077293596124854345899075076422394607414897190864636280386962801654966097544329117243544509299976535912749728869624576384493348642649545979093785740025588362545622342152203435551770597080374205993743967586958805302447280944489996400522514360457631375877076818379061127583324099724558673290388730295978100481362053305779525549033522416183412056219854038663653145537408488431013871047698130900333434036081823638257101693985246350376103628411694622884834768885186186467466610914969268681624599971042298697594474754666579780878644939517792366789010176767082177895872025334143379196204240536645288801405376693369227059887867962562643993927318269253734732711953551491795724970044875010893553425305706747088995889290069353146774150103580610672770210390293412073743472778228284930777857335887813228308600310603969631406220825897826520439714696139591081177776835211162506215429984218641554442050555739701843112609405769954575771742448565625532736854822915435311920124502902466080757113712242063878311551284415494570965615245502841303663772148888528031841695904977509585298343131435419723715310805631853241972687609165535062088082846017205957334257426235149906208277048319963828873494953527691268641906151464055437219488448088974247385301698806433747544538249586857173036801699938484740049667985620567241429094182125664109419027440560694411593886267933730494600495828086812325080625817967128738666773504936164619919486571149078096505553650447960196571142447980194698360073943403082767334965642076051907077266171272949881533403170549986305029914255658163340018295451684311159948340350201582552978590123409726849767883094432796963700602247343020674930279793557188134645761856096911908286061877692556038989528972235912294752014925716719569249133908258569075296228097816865892386624240545412380614746495610803877438570724548427965016506030502474393279370132965695580146690447330058314033407468572965795119295231138513782384068138825375565122062014814484183634060972158854979432250792688969234370368605918907525196965522544868936219770239527292802703334523136750074362383431378193646275498681281578132410521818303305810773529599662296212920334119216171087102079378412215911201752932720538085643551901505335412591326381678326355765032865476442557089271586208774239989165094919615198728974531238870131567759774360359720960396974653038878945823568906318852296106478468903649352527315217109960236101054522875936765039139193363947726327308453226471594624944660332573318076565695122866066369853141124749699614536393874927801215184812758574625787940018124871986099380404164754933438013236079535664289142880779177850651141345818219671047074788914253237482396713590957711020382073661635137321354480169220245647353678199696227154831461684110515929038562694672198239401841973433489566132626918637378371873559414639944209560348818032454067753785930616021616268733619505163967961794141918824216099318982418122787692076816146742412432528981356473153638303381329593283445275997258035028959172843742645864363679119153330993655996208467374224215620926177405307897114111301229454239190968534654043830299556751512456155779181396847430546749855713420907790826917783936076973310940136464883618208177140967443378334521331898689920781404320024202755436738437289010352416207690021084784850665864993201041733548561898518391061013419200316999517477379341431684189806139098191625855565903212794408661802385085881428100287604364413435837463983350098124080692378275178701502669587520052928726031230639182038924601482340116484798311447593969262512788767843440379634607992248257763787643116389423865929173179966627577802195434999038324656863770195039903595352245743140497886367654722171012210656038227269182926964096880525464324762440767057473691538662861584053769870220301910883959328871028056517333078514086152286796958523432004911592232646984641452773044200077927744669179078201223108844516386785192239079673929179906948515646237938614336582579551624179075707594407771254297747918620274296230536507524117721584562160980400320040704431046501855176389200160750338429379614260900703469479915672361978923409909608528240610384777745415161435152564354620656829147485867703360226158729758887152137433419109025557155722425818995468344385607253379086729974040465084208627913079536992476000275958177785530396368231980881133645766546530944366229605992293288558417680207492097107761123936852403641054918650717768286382344764378152883275615187557276796683932269049142752303509350300522090799458747793727068737983637685345250001892870496438857784592471856708138270225322054986166005739927189692350502363388423416125334664425022216271385669165019297686613776778098108585598265148347495615470267190332590802978407997971991707848917744278354854564421495178078185969647807994332945450647830301355856958666957201659517567722997058607582395543621208546550135933656723939901298130229845529023563714037698857519671120339018549544754241522414384185790193259497418131614033500009802811903699850810122624399326798610773946703207199463558037684534448986558609551699348488398136894150186202991421645989255569698561518504161824424470223238015859872463859448520893347731275238597280373437595431568604999802196329687157663845616628085081555363521295710228961299112063759693025063133788113006216715842812663230594152253609954038898930065232792632998459007486544195822469802615243493463026776267167554299569259429932239996171406068889159983233456193277296189949312141900814709600464389949297981185921828333921607705609354796600668502253813589345673207800926799729444892270933913422965423249415391798306668801126887385042748932057296754725103192695854360621244409102319183019057726958640014907150139132392099038988448382775628611603554637311875974840226919933366621707568253007524451013318367541727684204537871796686439063781832134805229703333943974585107017813587878641515363743265556939406269194530302225728406244835657987121991637277109621127676974848426523539260713191792055892085828194312278573691659766450483730592226515563929039861893696999729504968699349653658266463354911973788698753513417774974133046692488850702251840262150377671447859120271717758791336347057610233321144540996728693703813027703705752904407180904313824893842280997177384557975190669693884989815690014224365787404319560363015531549970613977104856626490068116278267046893331149478972361126923030269913760350287346271850253474445824900184189539747585552708668338371930680854131279674267324538064557030721348063629302038693965696725896950892425805645501621821034969254794613710181781287130544715465065760531946240741231947324496974831051323368044098418801863998123731257910405642205310539226230049576358623831082867386125906618269294558458532202152209984112024090862646904483427764809673384233281847391028541534404109773318588801806578074772821201488066436926470888084235749168330931637763487280418638521685960421702507241114379852150208450672582936637239871720902236700892931326880952181744010927655498786381271270111202776470413245188558163688420361875174295462019399718509971476774042418627820261300537390648772817962770047218072055674264042377134343847850126383457163139266831207136782473698168329540483231505992687829365847539166843305483671272012925647101977641769258948722555925098729421702472042105319326390594015986106513498340023570502656214391511988416620652122133536732467780842583387953211275234066160183468390673067600657871223048933116098927935544374355353493870884484898515354422463218212551235686420908006131574046805760131354647176430574892351032071259914806421094955493520933357200647636426957239282124776505249241471461099737250500768044874116792369568174126407463312884949273073894687038756174944195349716209444381215048409677069674074581444380715148431744242387879283925354604079205813254070246939589293685870847073867521837913432867961134587071823048201252684054987799787107283007615655671330524790524154252406817669108643339202469961723698341521163017508084621360387804706786161912326130138283520601125633409836155523519277542925147948686385897470479302480573548877334630538704892660490374448708876425098944044924878042635849334905876697079852629689958884077303658819434849450281889095485992244472943470971787494003339352520113926436983954349855840611441128154977411579724169494386557691794952143243522406350866846299674952531322477174558503869084100601663370924271456395772270818803356559079491566999021836609809475753406911664381992758198762799200129294613138924857315829669655984720248058815675402929836788630436138226479695699348719075609870685732133948629225220821589140695245839824475734853303264645458969306248789573008510696973417765303131594543141373264395016022853044879779769771853587648239704295934076676072140768860316701111324283323071625306364933816222791742443640057384226011080058399943471889757154176290196661901862658385218410521996228917599245121079449577880821833736493296055388354490260106862715445003273194120468424557099591122083270332667918017959076669102043140009877579711724332592491261058937684729517841070728248124964358159945004769155114586185031424601072906306739220856708752415049775784861015678195366601193638151109722286332426931187171659256971759851497399662661827771746606493821448310287405907734201175395797194387984294115865576907187364110915943626817551246026097229798010508726244889703061777559281561434439203603166000354927072311923928374177851684804712090791338550966285875725214964709095510248569305627077948096970997407931575535730187247830225917611955916860242196131035312171627293868707695382042769152524103746676645919348553604238185313590882600006799226369993720447769985229777615897326640059029158436804872363708539847304405415108964996436865087049447532937449826987706982477411005495905690011334958883839738032867638048475246230007243376363506743455186077692534579317160684315636106042246987003106762097767442631217818142876170821284103592949276167174646866791088143864331462769793223775464180643609498940739033112064034612636129237766883244812332318960337183355687858320093952997290822648148211695646128236549707266111104894925608348922396172913913681931082983472927702452109405963827243568390959145339632598586280432277596480976682856671611419823773215992104808963277673194128305779405455509768582356385742394047140298726571697948757354407838475064072193585086720416320375267898321603734652173783002181601078738467945610581478324384899056626837741274970286822162314019038180497178299847195647438349449712374441608131721069256354073333396243180349916623431511647905413875614612996857772969992674673810877633665959277784154572638299599089454606011905295369547659663317933211206670720105676483170346748966434950384537961972065613571709187668009280210776980665899398735353708624754848069864758853644517819593051185321279956845734247548829405699402035259223319180679132126123238364469337549799238825539798918861520263620597588315791494470349651457003640960371816826060496711141504520445381113276884431296641974982929168920114106255482222656008516718235050023891946054379274957252304203741623235525573666919017898296071497158639002056375149840363025042262983183666021849475536204913513375241887240780179640416013864888249573604083374876795006916607651936280882615564681900316540473926653417183088920573560606805353560201232913606603836617756944562827826427340683580811108514284922366315418155164386609215096534033671228845762651096934069665475811120300460736990834631487326211150141594660851495702910513508850846182731252865153425512533621999751097742496102549176283808892326766179328590039277569943104351311713554889337246868112582393756670924090037028214146308903122924357510333415883200597158725263816858519633364432440041822799367512151207505765630764362194337794944733395771239587126088623567422210192190376671578216178844302246500719994643691153747686482209162990257975355725266730052995685870407262155495390893137340326448452598253571776993861342565300119705941875235729343599081406787375023778280452555941739896061868986822449622072782464192613189487377123512931726692379966164476280643539376158529920796305403927021166122718463406813940388477822359911316677741982957485047821715171260986789591958623052706520220141081251372044464245068810117576465434166559322012594471624285950499717572874814223797891298702284656951707929569275745461012940287556858572337300275534159734394036496628269986976091274024533287183242810030612431818427255209341567917986058036858229868704738821925814309020406952280037040705396185312827237516473578427781994700877723745375505903849577777905671834175968557330628503348615101111557725615365141579837671595497480060509428276293781273648134844040024899342309802701097742628208325705973572942338850654086682964490250239110067568008789572779944780542562045096514121508014170359380173756696115355295774512898995593956309674671555594526874140003940805278532715397522760872539415704198525865839131626415445123660224921525745830383140274853699755097865906168188863969692380208277350770627488956047746614369627136966406049250815420777592604587818852488034861311045082941720061548727975885164131173497931845181090962423744889480162625889000541094934891183345913423865369235957214406234024484543431567485581620825620863665121034531379914079097159335204681578292718069401545332124418978130083226568499550122931341871157339963857122002459324764785161818944734258326426176470968654657793987843159682283639643587124877572888582340185729015987587483831914714034130211452631323531601277342132345056327829189860888620395971126120956174612968933443826790073019727433550131314604603262299885239773416759992821551137457235382769909296126783133880280049300687876024576133824965609521399716982704367096852466481415083964160996175486496493070287558034861245187824493476324823884949493912014712348802442977166065256535642214942639953245338233747518099856294096410917302156285144120617301534429398619706144953283204899679022071208666944770896827420151569925977669851007946230371056160774259586230945813099439861297345151092200514303838438942375831481338963097556250299611476935357020379961351841286432218768075573801017737572340921420916481641982103994163143980210386782982564230942580129195985003523095930954689679300724832528558375903203391543741176887966706674025091104489468493762137256078516362102377148082523004048555406451951613414542848458123312931844664650207830907863239061667706787336454079568552056706509699147063832647586170049029635440073653278330128263080578404600921998055111441253776827683361684322112097619779283823672085852015213794118836241489792051484822900104066090669863233511693631301026562251716528819155317924561580252856584189167954813096029644021471053605498930045583693239208711864714708416537745730020609310293809311422340910752924210665514534297612238803768344876779801473849094110694207958686578578591310562239649641110949670518684251058649949588245047782473551161148050867796635461585046882087166626460697282665468120383671667368087683415216180700883681923062150420891446207227728468068699762502346389812559814570720531504335901210459514415843064326611960571894898265907589514401118281753788328151919436919077213823396207475156316549370245520120814435881027791683836115738832578995080314080117359713751009089119509898778155340138376817297480198227310193470552957007466473599651828782228518617477817832401077795033449368375387771116718389658304580058792329786818588307358938419449642872053481718553097203547777602787819921946787995438273476315762796231706476655914037718541414916856049387022639596237262482786722209622289682336771466302486204969723464087032446283854176016654908846433328752435410602703831632680259299968299805519905890820346049810911403411392109125602773098832821622274242878700842831198394520165343163247946864121530466536152113820649571232343391467642541725700591387530256675230624585181041953472400308701864382879312035433847014200330679272042429108373651802025460201006442471682037595755453807815934686317632048042174845052856975559479901338687603004079686223569031889081601972668800378250993201696067908614451906796677338727344573449471956992237505396153376896290953061759271308457375329254824126402074080352736784291605980904239708154942474646545122847367091926076131711103612305072365410001596880307926894595613038853835987524909536614034183452957219921848938830942735214774217905509688852221535105846682244341987878576237236274415127312888505952769268386546964431636339017357985922063870431014848799154492481678302293771905228327439272792524762106640444451130056166142223247506564813150062108597995842070526801903492992284304944327105556412099689381146418418342632411706267537926226690892003249375168942487374148426031758070944309704087942441191962942244822383227085576590209575860310940780846980035792147626425345013496345361549720686495690481800867797638038539884727231229449705079948404019221763091134913702627284299149395990650353616206470982395579568168997720914945393327245650204789369167374895841836505011866769942528492233394958029578194806817884297191874960007584167757352114232096123133509986424639227693383581107603838865939537178287121237884851169232050411753323066314162406042915507803127477184307569973286902321182583750580613151772667156875296247542812941989517133587566475258062596953375637423374917867175590152733425114679858724126029372297535065932538741518953759276330038281145570589698028960290262574169834183540950181594690626313715998078846594262743637604797340329473125706692602292511793464366893081904873379670322690544203353417041675418192240227745401645733089525607793605994642401079172941960133828305715616526526786160678526835992855338321454283233158030668390290276518212323261339081936515950551978038870793737443424331282490297411029905052172824896749799756114951046676071679383622754890745606175891646265102320059085502023144003634338950327687386812964910819716602949372449455616879501683395148415595079847835520144950847664163900849878004364423558432496724805157954136523882515856777530725187562917462732819621678345500273084537609067436505257259699744646101483301407197448703302198721235890389154378640341371013956791992812445457358839212042684517766881980946996630475008173037401505464966331496811554484231807898552760198229722098439066502626461971284157013623600667443232636818329213085772635393480436529723129643606426089860769681876224786018569667735467847366375292631452142726576553236108514660997624875109454317264734094269323644863398003207385656982001773206396472848084453495101354783604031218615702697376728026076424419847033075820795963027984434735816864525304563587370768840502510371298075224393691834429944989596356382965427301262068643540995103459247437241757747546577357454294030769108911978227868012338556593699203252166414996727801901599609819747670001493284744583533502938902362761843344885511401889930942733982152661445155973576862260472440207705554242469183572306640261430461866801881558885290340172590291257604352129832573596450183704234426035360788791802481172206108521490853827234500302857978504522164346043034552703510049162606045063591185153025929429109463426542102676238057679702291332885191567732636271275308931824592763564923536725281868905498955104883056469160085737486218177494102816827230083764946996755162982944114715865399944992112168767131268529546897019602147888777203816174660095415787201797313531956239456858999379085511625204688726192628053672542200976934866418535560786020862102387329146225683078145936721846653522587698110316317004394255333320467266822796027091619931268379207238127728447050492328633778054476980986449617001429622692236347040338954051468062204121527854075975060179959357556300474523112875590856755888792749214186335596648027841607475158183398040378490358507869750361999987890473027520918312935410888472758962109109850757005735953949818202908805779492075691012324003515842163181362542043019516596232034082086011017094861698397048980139338592274363945954065775007550967430568621014519498505791219420770175476392079636618242713734933107095034952197452841123200175003709500471809096307071367913085065842820029278469202554625064012951417610747697704460351863677226718646126597469886032281291048502628369158775650879453284423229902696785574550371736377041489274922246323995520352543867579079931053647169042465233947611361510382947632926317101994957425405947795824614461433844642111511928468418587372405516402812235548111420162567072755273007236657226856936284794860442461416222687260637583404830660185004557581294044728045913825368197355849205519797934638023855417007280665506877590491941563858755901338000392087349328375667316841046355546283594892252233954322114258489387730547721132348009652350512693083132349485483631276014586657100301183642746804410071084771539758166939227017690328978664987467430488551608515380801040026128065612817319663452802812157309777910025310668312220535536177816756409731632476450376358236180494052549169908797054143947043317977705280119672916777131094108587145353694508819702395682962798936071482319191161432676055742329597565165719007601722886196272800868460057361210018790398673655838675056562117524842317550572777513660693622813208721816330061156411041887151820260643651156656029450935099617575508089158881062987897995706063469119625009320322702602299264503572270203241704155584328715511452279513541860187372551658719694036072276680173253080527808258652103733256587119522041283957351851946724471126365842207099984429805906053602271282210369423562991218248410462242812092309387244338099867313297269275270486878704233938380584165817289708213021229625769469686311427927701027078682472412507782991806218024580179469667193992939260789079964367483824999493598459730449411291491026106354958514423738716723012070471834780302441469381396200089132527341043742916280921341936944234515423457568696307213610060518838803512613902238101189742128065180810451226785892694096135937395352676750820752942424200980326628784315242071105494989833348412046616734675363483035372719784074872556818288574365758917805963896472299278363393184428656604277336880398965208506137004351911503755068487325359477685167237443168750839467783293281884594432533766558014119055186132691375430155927158932257382793344315127935511310359361424864981684796409135450956522811796335681637317117634282473863583326277459736269112433037399789859348024150560601074319398809144620798296386187874948939946642249944829037917293344453954935352447224270945554261728195873446166136993213524340404570965363505889642691726762906993828845219755570519115029771411148134713016274200091119968828509958726015361566285444828357087290146578640241000984934868731008458652010442309183812081621970738911038896676120760799868167465129240236159160056845808825141439471125156452743562964170021697686369768790634291604242719209336802967169195194198062492582322503426896563102442411846241458890982139664151480724395925462080373041756461123516161889491097538295734137004115495579815153727668178246227009496938797161988767128807453931321279852965359732537578555594261343197400923770243862900454401781607941554888664811152483224416081377148894769798393676983243408890277825104517577569268495543423225040274865197034134108141206150849942381953035972217783852704448768732490498283519054687419033200940951628165335346399073166054461373741217512738604286414325942449339942058039787207423036141615964202301750604472463360699661554977606485345414408753062992256865909581845290394666406564510769249396260754005110037593957286923626877836614694805116026143497780590385354161194755021685222914829633953528858410114940568237934868486809578745625406315442246071626064839884040850132018846866750032806993094848588512768005433990305479315542551909112786637793720602369453512288382197684932843598891531649145451867687614038039580221189450998698959584149804238895044289580394223847710266113679339226937874919234525300390042363811005960649866281103947282155380035594907434237656416825361020599830475783322438675624671219691739520463002223719670113519936013805797512855856593321343652392759871943355341404060862114272361413124708675445670001455777135785256982548731110916418093020143986240079240051983569415742169249161973671167420090514076130652352233259943409389451420040785487460727648425571213973507899932261674460251568567324069714608782788295535379213668163518484345499855771828902761267571067234082648979801282690277130150605189163139332071661340360892048634054185512567481893730370447566027741576109913912986760369098371076502379997551802090299938861665224867139872370583589029733999235291871539582571370160467483189364802837398237191935971942390896603407178175187510224051833745334200547964430657203952053467606384272532353249659036332365901062575452592469579398474778945884607664502589390776493168924870060747025200187605038234332121619106735403703064862466431483284264524796590793393165625262139996607645434270918986199626143035932659784446206725593103563536380955844356698023232560153213357521172957954566159508043238321793846946173006012878788487944313901274105621247820332670063089066055864919264273709247202537266463181769453476201577273097383328671010518773957756228164634504404755156940465721390302389543991982430782024322669438523161442289027196430398102042257784930631428242946966266290090625270411046727196855894295997332419690610715771998986947776143881514167570247129820094325131425129223914479533861481640834281808033422027535624091907148631648229752250286455434736056292500144077905361619054064267628520957898844844543034419131066241330469621686427959041021453973041795012012635568391919904430129887680579736385067110609336360068825378757074246635743068949699581902472378691438330739069484470591607818967655043112965463570695430172042597610188092633842874344771158903100104536624249973616430569962123952708710310472420518041084702867491844067541188963989518468727551522982247048923790567819162403585450545620082894860271815195364889295197539791566748812328654156808498012414317071527313609766508117468468113889433674490691250290732268026492873511995048447572807379471399562800516084540770223392623365474571207143670260213586392493880520956101613048438357177644365721199571680198280821044672118226568324004509593774056745074861554146495386952516515416443146638394246254046222679888445439356588247289355508821562863412837322123996251897294771280044443168304732357270484448031340550235964561718812953547930287534100116516422309264072632558161961588461447897499787972807304762149605806618123408914395691517964584677189201355570635994740125059009262162648061458317085078519866991483179266349564162550114454194198194776128455317946905242589287287851135852803535347713527454348506634868127310266513961344586274882981068829321020880162982262710376563887499599381686770402847703096159642867626079863751720829617350017896919540542032437270348059043297137128298689018336630805085393141228639215029725864556942739779170632227583137138924870550645112781152399335509508091292246663320929547463449006364035751642631441755873787900923771678496714389567924076303042013394508940201115123741055641406342233460399890292985070522990624140014689060835479201849788583811492997416738137852822961500514025446734094978236580149957773537552465254336827378245855373832647167538125751203095123462714819041020955273960624322204784498285847213535541771752483578961272613412918727493940101350051483228261111772666582384420608984661049770413885117042140153721196775923536914129170714348020363675850434842157524469534664540165014377241278016533524479547623438603404544779402405361899720951513641070577867874756718582996471788730162485398564669160132120911564592896004423762892580487838546294372314567240638896452140448899832442223490486861878281436722189777320776487263739109876083456957357004183405235590933392636909712729016756886385616844870878105962447348160714543043871902278873459050544005443785887788771594404889229949803046623604183553905437991966979209372039184397235842520789485352492196278283167695239431573204404960771054450703385062684256233654139860437563770838657022549903349420101387828754119348352269717730362617279736699994627418777586495910098762333637035057653686445170717574207056753784539595814351366585849423856794293701906118321736997245578440660162219498402418212736814925606787527440495823839453752380530826214325358214466699021328206905544722729439673001218357481225657865992603474747360724278995242060778087425785668044650403056072987351531589579938075552376910562615467356264197842596417722469233683235254345168151227342583606492183145855781089234786980130560006330450457354252379715352248864985148307870524534000647922959755804881713841892925144758761373923861566720705637523741748797661642993286650172641396809190502754780454787249358103498478829362047532674776148872596480728333806963662019340388217516162982974955388883691110965340752593247860553289750764290396646709487462201664007761183696983238918353236293480975881731958786962374541744684668862750086256079799900696587323790944714825757258755835017100940803294303560058017833102208419181195931065962685636470415563021788511561677363238796830894221879688426802197383119219757367049704715758556153062406669293732262629441336539855436877692076665659899187183946783062321195044324030779137590689296755006464402441253270547796538456204457764024470163629916079539758944698862777086602099048265085616489596340843950614313878772987981140313975729734805734252078026479354633716436324776399260180969386786006765291019574560904815851631559333467411392383612466568499983489744361384117310201946587686219050190510885626281075917061057635048433892125145133842454543850389610548423435296735353692725200802661978111921510884244370075023829328215542056524859339356888860536498073476219722049381932004528795210679521773194011427204417675003524760932680559447724965643169744611604272087563950808695619327397984354018910065865966575774972508729725993005657194018659173252413089287737592247018670698881553687217744268981796896852188962856548946909140872185189148653939458028468451101438262822612438809693480038450619965011726838888924513102995237046752052294253425703239043687105143605645352996110628682911757664321163924087414550983861753053625342984461871846450587512645143448628008679628098923190955832347999740970055737728312507954312811592747335904666611760132028131006617753101873731251342471938710995108688000486930091052263663255371881939373799189281261843960102223989540951683927017778983557220678336817522411945035837817961207858044324390586731210393790093680431367285763799908992380755641466414334324301870284500225892988616166564691890088895984669882881336398297023577378270350594075055418670648821946634255967928806601309915379179416234581258886020441764220664391017459029199904310565326114361187876275015444359118416290245026454686930648902033719208830263771229101131433632161901688663926379634126995172781422122892220067152837153382774342840843045552794886892531774805951939057590429300066228997654360406987449477045640336660508760937579587392954744384478398015388173066057815207222289694754753857895767819469915164065369565379578847649727351094426251625468959128093613028365525269254158981060339666137689689066181024319611181970506150589261004435084016672672414017321038750794487211560736998927946026164700531295488037855386096894747542171502255443850258447323291769246717655344475560083424463757705089819838889148517318158709203269408638582473215433093621408346838683987540188546147221214756836134846347581557293251731993139676822388373288122731525454047932450816723041557390960725463495435405122763911623151170116532862486786096957084172745589225997769991815723429839500278181933740487166900481768179391143326463501416969570623337994489722826170845627033677056328218077849313595855372969126579469631673925159722486795114638796061183100469918030721880341471556844104269342092754287585163877282240057216687079303222463659960059150941763498612721088306254531742477323786012373150970645827486712654937997911032930299006545003938277244289792949245000575840784415594981369258462263791854290054339168117527019182153146754767348740869002990012952414221217435229039634981292558893645890672457256094689671624240513932833782076598780907078693964916208445124069036527570908951131464187076319985053620356465157579978455386873475763938920486295166496991385366908871428109913119322185729060225833463557406403430390187728761399208034508576191010839276962154695426077503432908172872294739808236214132424737715982946002886503502128928974904872944330490219933119758735355092692561499062216159312624209509326076723110180535705320723814143986734150307226956751504665531384172959228148456479518317010774862306668425298608532840793737044860930724316012564717659307557678497529317425269887874335805956460438415232983738557683334060010245703730192208050315210152988129600304139413682993639270197913638041478856971240029843053414436423639870792726822130683763307112401893361864519819160851385639185081614063820525963945999609876643225529718358512781197430765948377851100631073976336990862778616799963306026536897926424740843578897760821868198749004774496666459036803586435306276279968338726168859553253447969287206928431695686624543398404342149440750018343707918310627649527242473498972318170139234288961552516712656553871908194540720509809468944014504956320755555206426720198397949741591289702036547502724786759466523846712392448409212413114990804030392498569679319774214045336611033505060500498949658558485411367901599135255380055560177846487015432398901435022797539899244710631531033813949128231901243130042819678249098477410954375188801193050885919705455908942536229123306675425119375612261327722998195408761979125691652034760025285487737857457683490341293045228355595700830724783435803029927696778266688003511283220625615979541835977239229675626467843778644989338359497769018072842159614982305587182816381040184547080982974995241391428321268998661690601695559996397005309144971925239892001741702240149487269742501219192831164178844624549974648634848050698108618333962962703574582671980901241423785396859778056810751748587111974390873255086800455714898620571150056976669053194986497967479373789566316685037183435754933219806974048832900618743815120009346913612919177918544831412100878169585935023823463452797179351588126542800899169717932984800704324521653356685326288563660580761429388597173081179011355111520111135799775280478071935814485143088105783186651378496821344471516138887990289290941883660541637758013112394773783488637348798854419928582592327283329960458253303124342585060914014880452404530016656215213416493207595547616668709189566681855759517041273963557544216482626623961517441251138863904561214211354379348276471689575585505144113327834242442851565516407777596679062462027220880754353082614209149151574161585586889596454122592214846663797294180965596259562288431050582909091626026659999893115319301622881031164849785626855217146423132800143674908811747918739957548240933624476269004199574977851009790868079014047353927698450274278330598047978332413150769882857876485895165072135071723136745839575898916487666774283559930986127221032031092318636927421623357783678248608439756920577743652126308549309017166308040626283922273030083380177283255255545788900548635617772459131069072659838104792764115611707912075523026608304107587166374299591658719661503951824828748944392496226782007475171699279918221023143689672846496700904200869989404317977095701217642959985234190853952032954469557111486154732433376582843476167780843504990347346223839926070161487200709268156935056579009609977332011095815397840448072230305045228436754097477863178805549288364012605942980518812934972505318267825028809813624347888230544812301385935882834130886786080439812415765743036250404639750287372345976656254999841495832805612833145167185979533762329547460579854087065407997759921575711017214584533520698644881318560038789435902778896051964975948548994309920852648765618386468074626274892617639758139982270831297353179837746300901069822893289518304421091517693399444610834258921770867252018834194998749177570415600865825118609903913714117155492650238249021766542995193512025031783012866118931797381309168586005398713755827396569297289405567464491951104363429009383029266287965266981170214221044835860975592617670674558795554406261588396272348530235708360116223158350477635374086532712150580937587759371674644712121625731200829909878162538430883769686327992302974970101416054763591318619695193263134524290333057289781739752742825649642965117743850750898264435712821973244987813647714099159149690263256311821516968666850614230631005351969580149889878691009154367958215871892812159604168097344362335060139193767265209004557805578503103654106949299537742676145930750606302655716137870761357752546549594818685848512219171874661526115297343350969894121137216652968971062942854196153915682715016121941097679926368355797827587605920644392899021825247534955755585526575226620411448830833724435243556912854885160331283872105078656639978803876676944844805213421655004143293044151360243897867265593008126108386669610520703235748489955687937023768305039101106953081505197497463918649400285739413004889212220619129858940838930213022359844082410366373150320642336917717467824602534564131709712346756531014895998562198076653203754176474719295432895982443288907700626915121206430196040702294479957044166012010728739142184895863647191828128850315810065590104667026182650543703311939800552020352007603691824638632753133624661754890776668020071602181025713723133870369710572683586097709101322708059686838228031367628430768890467543882844680898603005758572890524941577371590678552576030675314152654370677923271526305022429666360370124486876783441900253252613072901935244635767629951273794541379938725722908991731297774535162346892933687542085814047288963039282636219353308226785552114655521958941640588133740310188206112325220395414053648788423974329203679871274493245632048264481010606042961153439632215202297427460607581886565554312854982922339991827785610818589543508336580091787641985377850744211551025549509329478662875582617173112464188218271235673991452207183678665119297281311159569320074982385603071238477094658705174529213363763372524070992391131462516845811912648975022003813538387086169233246083194307801965579063622122387981188308532680973088637101301461335236230097256225923969728268791616773482549986777294150607317797558873511906482941387360214538085075726227547044085728929859505582418466054136767896917591240951597214943721556127591223198066932439100017368462824777257426264822562056083211591363000239616539822439057949306034832224461036152078463150683196024574916554624080156230747254762558599460363971323960674334559384178427398023948283212111512438749535768269469737030194847311748979872809131303322751740997084344904532373517101790854079013347692239381066826565841547611861246106713896781349139212860741921856002750394382079648861134890667144601201719559342862517318507354068342855709089469229091642149509013537655835839124777704180228895967677518678553658774378505759375111933107619644066750344962379594946373987678908698032713031017577102315684141252481664742190741838814518016985415120586008360168772773095486310394699573890616014261453393129366008498034705315125356280405175070114715353959036359232301150875758117674921439929801645761468124729582818102974049359353803963625705640076203000300958786207449346516048894498950486374384154134915693963719423596902573493179028520979456336946881636954124135355095090242164939975301756837741304941646459927128979008459784029064648924376229090074819060485404615684689592046830563357404449571221288548660051325479421118998503293469111366482982815882433232121799183601937232618130924691433518074054149704017098737002137560014039667902563733581011772066049406819359547046289065280665920367354364035703966649829106688368599730356501989574588066388711982606592858187301337962381299624707391676862740820469830240613154017336628373484786081530742003078036673004915889745698636073817405717252302984729265355008714691985830685685928229285704385799551791725345405173439564468776239468017637110911338874283106496355172483655453065581553209841168756320540714393079988272198965427881576397207314774180629552774629486818564113749668356716178645352307555426353915506814207378408664814087787831860920989051158510727413126902431861086710109932073569668881930302746474557848602822956106224024238748083297147789830975666179557835345023969439183762359642126601501584344368481891375920891772100362661982836046397392064319343226616655361300489577460710249990862567804265867880701231362723580743688158784435812998277858538385003185647694518345918165571807386165582135448355789446691980878790769173836226464435496896372026762545740122403635833741569975397787328696272820840743917849525584730892430372576166425363009124412338596079556892657387377666542714770345897903328892859355027314003315640382147731503242956488429331617275735212831760829068936854182122084885001395555275953175656002455014136892546933942335964128895103470879091702353246761242938134226588732022624897084705908408014888214893176526704263966607489118513308102126815619547353525869289342591270943967756291917091596113693041481412510086648019284684889097173003419748499025265080589989858683515302678932128531186881360791109991042412307297336554594622714701234572595632708232822419324682142638996566986973098847681759533439284826161377825209515671527131470281310030038073012681086401887733483461971732179358435081616410507195094898103449302528326851154521819287886836002678489424927450161882699928555708940181822048333123883392411659310494699755232113737990994608400302730794700263153310060198586917051992976511107776457403457811968740608304464325496681139214547446341651013545993253862515806935592779914214770028952296880683926404990522086069486406188919435965824976005558089917593574781508429369390230039199087282782884593589809588382299148781336563970854369649622229125739724932712360365612744513313360203350147595108567326212015676871387283133777925153154544112087105536655490413547337853515357276228794517412258737343671193563571253065161167337209642607654644423558138149045057625813490360555848313099834924739560387045209964629919181120239770780423030126365220737008675870457245140941474744743710540526963746380236602400607863817527006263629854738796009399294647049223128339163249560623782380881043262393096822897187162275403909907203238350202028105120459249530359283413011852939916699267560559645506361632006766416364973184105945355251870220472047181695477103026668843475710933538469446081111440218832087558188995205510905150837315169792000518837077189310028403449236298471033460981572382790237149273883196969606018304590486095441646637926510700135612813613678357760780640059936384047439434809453091169633644201499687654548683651601468076836843182252565209474667175226613707121725869628370704764633713134399632652356695305026610826699450914880003795258986563682708219844019341428839604123939765457127172950149070355655342159265570351392174197364973941483503919513291902849184877495911572416350446040583963597861542807979748777270559272413504656404759191131758506128268730101286047786129836078444787527435734012032036576159169416273665560753032619634305951797497145581560561314850522111143639696039131280502949811368284896097667430958190283950173353964001346776878837528382370894284905607747460186820486710660879917584793092159380995696415194906759419001437710642373289071430814557551056349086617899940295055548167929995226823723724816319265585996545536674392573485460625849724369977302677354355539390899401753588865977291550927145407222101328156561128835554209163062684746513407953373904893620620876056816360724367804910104052021171132673858427755686856242442734833876198081419184461676076260188274333393591324441247569388873363713801305873970425830703373183656385874884978391055128502831844088371797267714735648713966210711340325753108018640356780515487961775340728932931821225117101752024424776849159087860726505255844128223279406173744395315426047815141766040513338423571088316828097133975912783183738811681251860354989584903056031322172028665832385192346950030039029255168246598508461855382985288276907556260220735672518776527284119396400469763407021961864865678822650974868733234281054561300617011519582379026428118640956327449796303207729223392129158308492573851381736498998988398307145935072160347141643800157381093399146554000250958175355285700780385768284366566738037453955191512170812470021469647945129888505905129027715767340674550939387399546650254870629289534410011655376123082249823903432348276108112103213356392837523033480260268461594928633536533148046209410464140966126505072078129897895849014530640738513822150512493563845182613571116184187203303688846616556318068636900448265484974265136004311252743330788178220369614775870131393902579903268503953895305642370541548392785449010815954566476205758544818012599967227237164119717742475153233903278708873566911814867019224279557183739863081513843363168794984270493305539584736749566175838819779239387225249689575236958423508561419414367966516544496809652248443637008117089947009446937721983339222863453515322473060328730479157128727600583191707072763644671775792062164434117270784934660358956016198063171162044668772068165094641656544781677214909461739284199150635101108762978598679678288519801873792971121849076486665585854789218395778658056292359084836334735458809772238285020949154412239767572892466156193491507115258177696941172303663825633879782997600767210267172561993749356144395145437565403248351692988439351300576374667847672321766508783958948538376836319860298165605334184858590229932469926760282880157390302102247976049811506001599164657967705756636282271432532036199409835976615281996776606356156890309054437030555485301153778472570277426229822880580524727784438840078936323441575554110137500777893679467873099603548741266797223428218168976228360419219612367256816557494086057035307020515866594037615489675866933832195961846852752973367270005103196851486138003310781988828322294234121363098110615939931279666036571084667347773013720837474036597784059446106912449187251358167439286210268176029128178652109451732682560126061133136831963636088009779559528090356180820245501981072138815539804144352962481045273617666322729266858433130234043676319860409718694888738513296025036892538668676992368260900814472915674613699018720709860149141769092874922181045306579258267314946558824665910968523293649423431277934657486010416439153497351547866212190259891007073192390507266450076946914176223253314702958295430927433746256486241444516025319625172915382262680562579309229123381165371659230022601460334562123685371136995258316281957860754011712217859788183548888637942008967438226461482755543951426985847093852527509121263432447210296749307054966612215220766382437103734548070739262542193025538390949679637934115526159385610097088019007959248394030968530891497466718935542271986354480845078025098736632396639451543643916957754879934801493803885847132463142116761998712193930038832944796172301010146242053191581551610319133718445509419572183639164056069252482882951139385987243556489304470550633953502667975849931077470478323802576093027901422694812277084274403566008535102572264115311036157676345229328276839586641172007033165067088295832504987287298543180143686795879174986806150246508805343431712016483066312016991637735371405055160510782251292924804134472431177467476761802010914540296520688296432170310691315528470199832591939460477984346735705444398490503945493120034946157166886953781507607786432879585876551331490658286124011399995892480394696576326809687625453941424089001306138269964828812326493569717178770385194876431027418879987150735818041519112095955540092436420166649770623818097195540665420235607468659919705229120221085268638821704037303023557002883150630331516409597367579419694388748147786639268500343178633199493784059045980800635107487488830790952119600967078113541699648001863115299882728038138276390839925198229001259321830011145621700911671860563339372674234019426968533591161502111878362385013984037145534733303568517362388058834499407573500269386067571296153172571453743154778407517155720615482834675180008470460091377415473830123592964902921800262286785676253435620237219457464846452807928266015078767021381165369927622194478302639582800789470992740271050552483058127145592152768430724963357035677215698029796263318297609609932370381644207856187357244494994661205190070679269088268155304915741721203391560090514158649327811733879823768566447177652733411422143094130875235991763955720815506460050704668701803025122829877871685721039570795829036102992816388817195445010682476074254911696205083176204889815394083496101849871221504180329816115406506847796419310409529178888942728417250456292922205048884071894131090826015677547335581106940407936378712756488174553452333769434374975664943182902425985204094559049977770838649521685068093397400848743166108312963999552488399327660698419249834672340337523063804716825606730356776108430634819827627322543649680911306452913986176599501429787424683695532513507060594735044404977729498279242011125293537812693191741247175642492103728521184404394199140020471431118478246012203882332608578508104580313606518831382689432160348191281391899893285039126764738752646466596134599469888736389653293349944322708973850199844876758382751382007783781582245857758625103040177909153563970218630526693179931598983978485078573603335614963143269467326447111374392701588723588856019807101059738691963178483975305563655058259510692597530088397576060044845880594756577080530607649324666222824415005476731035277128491738202360200085190572847983047579065658745198152367073250566458298876001733919468132829460561075577214995211890013272332222209004119680861956173546412197109483034822318633713446938777254158635612358963089816014495427363705300256372459717364775406288066634695228253727856155543083820130971326595801987168384962290907881334508027140302272137767800779332864444621509392948902873809454031488461886641645417941168917097600469855707816538840489644058978034426287602309342759117908372938316417601878774955132357865436990416399082110033934731286429251977780622703847111425745051289979759323214242974566366978313381030433081841573033003872969501077182664953571381169801288617452944353176998587450359167630274088577396592461049523181849991564832743800899593221861171270207564900543902268716068735278145928284541457399583437565290562868840112411033296993746193800580596002442599439273174740525188102184213210435955694185708103452651297979778407124126133086513670900040877974886966010125506687473598493109537802349411009479092127621737845364228698303826727616301886866346581492262656754338139678612806832776026269786139568334841162283914871411827389036476600847692970855550729293745599300453015817151872720706220852315169596266924653251078329274346638926951930988123195218190014225550474047060976219087522189042880717466260446651669857868494572672281177625348111692421218613159055535124038033213749977669494290898063880493494304043062982173277646515895003226190459131044163026290625811731894073639317346728051017994251499026679073039598545510668297396060516591536716486855739412111010041130088880773490903683257923516472731109741141166671174939619393490466331141823403927808844984954826255627204664653410662780873890371801406458492700227725885011564247678684919551429353731213343686675192892721781093142833210843647545754745190317322986377545016671721902659118446235447530577394514916686698742168544875963388101337755162868763250247062077642575905108155258999107680338807034358724026174214118514869922952410881728238478368701241557425726979685673382728764982588464127867017395114388314154027089027799479938586074975214971622582002054693309778217998231634292413037858293502051368372422613954072393147194549400270084467740011978980398381374268872349046730301115424873972979995583016124614435936722577655168872518958231180105747565628879400314127797020055940757349819803331312524245452903809150859780070459740786696993886459598086205678618144614472105536094214417105887483821610690143611741118548058014405062644781511722763704200078545005424984786588308053793661226338984774572303499829912962143149677947098149607426989174033687285750287532810897464408885802305224602029341111180940700320714580866042135477212752963122177872922459981423520446748929238448328792861003740654569735352698164913543412253685217711075725449625507579153148034734219223838033425403258113511056944680265247818296434215106515734976866101492880794548492223800868747699975393793257551730097579602653415234747402848469429689716814908176409410054632692917327968157592258323914943120299603184946747424778396405771521582865622290990559029440206293392786806465812138741798277480614725688041212448526172338189251056253063839091511092645499703436472369483096149803115281710908882766893910775578378178061788902896338780889598004196111941217937082978762240246202900211668315199969096747521634370057347506701403349880601750943059515742354104694854372030882227672940832914474571412840360120466342270463971376938886630530141210174204039699387664156872006770207560518578703214188473409756167615295733933658158378776699138220169930418544886737859738367302014737883837862090966811224114922865576912297154562705006325673044576372499045445719609377666870010761701940418108580821849337791145755320041679335048197406226593429016014269710263584750444243499878717613495643250142080124731068562404846501557644356466388061437257094717528225861785503208613590357047813772577005082897893741636645675548959350623271807410781419371000862660657576062415635118737822492984948488469977857688178503115259779849677492359106111635605799016200877498301266970675146730783233094366784952258802152848965262471764502056983765589617124408921947864336227855825375402795842641875796531223031088767007749265160592379230891612315328489404901923554926468182432163335594714500274110028607724814554888110947234091723178869022073147509937163918212467279210095769678574683547037764990562905934119702616572046502692703366196157691692429885864148151338342143598452629607952207563200531699717827498128362640281359836545804080477427471592529322605972746265723208280135609232411428980407378833937552902176360242143201608270889980942765346454351497399807604044320922156127468253346804635563169483241149779793625118504032269451414753480741186490885007103183863340244046546600761297485656200409147159627327246924123745240795300534782187693529748168989475238923665036176808549700635197595735724394121729105702518710335278396801413976634292391642626673693174398954470730978026554798085173621068504963518033669188791372723263424609421351841883374999931335449412257384508624185243306074507793671825513561346875722187043528187128593693172570445300430895722863674910878238862736904820271361512115407679431150053139876883978798127185961278184704241737527805574445284636882313172624391094403347352152201541871969080447291182964449750662048123738468472295716287023801204113493487916377428222944709031284203915006244990742394452854991543360584667982371899884251009524287726014116592443781299555617600570776381962964113002159633708426569333071073761832328903101798766477908569121084232594140233832170223789035014726329603543721411519996862685711428696287114101243184598453845687546634546868164346554618921796732611923412653140094817043483930123962561786019292313736723467111081149245276691758954320858420980701978176442152850520745722486056605739527890927192621789300428515094543805470361506775393511413553429646331981981280601319462365963995253593518259955956022384509706611506380717793247839411624236340288739108885417382218045042256640576128826349325080147399343608551652620772536881111011668946807109411660802908484389537895293633061303205618997681488770867776875449165726145153016238524120677298845033300580484727592966697936083986709515770932545888984789377272024294491662162526619332504456558919152931990404338512945257758950950497511727162324730181592345914736319913176113029855367132186310204770981344126251632529138221092739083540243907772344954756078143553845541778272096037037984787555440355388077209134124380956453231731711530946468285828147303250269482324576768770564441155315458849194426272841209395528414156607413599675797638045488811927358758370079135921637566689589699742248372021825471354826404021230427472056725078576609764012919702524178953413194093284000391299151975194828019400351210754046477592458818396613541439581592261470157994283531674636669706883122364162583310892117209903925979686784640667879554172716411383832948242721134907135957994562629623577893486058884821379881413240394529159302154126610546961073507201651981767123590822095779651374716548928605172892804607498484495119469133308089713497185634376304924516462608154894193593313427359925550409272309439363008087247171023807351038097678780866186170319006704847613934269023781891730002938643456390601419710934043220191463324956203879425903718562458099269673876960437660520913626458125511731540045809456602994470974172758329747879915151082553671387995036912702215956548975448093571237279652392667028172149087895767537813810746112945051540694319471852318036974983758582823067342663552548852851585151923418041691892565529523755298184073219126334832473048202940653565770814027546209005746737028179920607155188239070697219041231865360010969376350971442470961121203888874260325919405813242291922544702289814788879425628320090076064343582375844225440925809573919544532760996767860854260956587179533779075141820011257738948685252659063187901700764319045109629977868863446046643422656206836033122367710570070818650150361493470848986837979417783491965048971295169268629002776614664783930024518879437092033794747283560851636166902044258088741575905363096387091273439877784305484024575387813554599433688602324892771851852813564737080527099678879617592009654160135193808176426994209240240669052813519548059641260523740147106076553845092621909162616575324297382366392060230605556561180634130312289612839420341987844684779830249815186505019305650321344681684980641122910125608417457080702767428356285573940422281252571145312354996827878192449427299013685059172359035743837621348447031538693825736091555981148398638174945761487228617848584378223122093329376231549620664749328541773450076455050972142593248502448881479664774652396089201357856150771294242346475273979447580272217878863531934291940435519932108532670416455756463643620547700166770344612158423812873974442899159734047946964885365994809670100590276001533402049868065219155156141816235190143466951959450257976439536428218778608707370058893763273897371985380971366505590030634282200225928221086075069261122107387684297782706066217078430706687225426884251596514978896045322712496836170087574493601708907910968549870900257535842699085008048633482711052751669125395578993967875149710677703412502715190142431753407722240965230717152414428105665975951384433449498772158494191019315542599179730139935761492613918792283519990897742143007327622000135201239030413052898219809267146756977921625002143241683910264004692177956743835430160571122677676214449819588358756061961383235460073420390469377005314818200822647571151020673111078213783135977360879345762464957752985312665694962765678385015540386301236017507272289882130884359185975824622993612109162427684629645698460187659992581021838644533281800277084504819033219647058074465876650225671961309730208973293953507666332354363494766647438215157553911374297097655670499580773336185289580496466528266779370379887127048345402988730169174032375513834544162093358578439152789021463164542815159944500733960953164849842071904764092218341884992868770098171386006953166433164180427786553545617566751949680690459600976799894979365083810343806387648231629534151846721446167324054207104448703233748191989404673015181733725387606633594024287403308327399902729304186105110553328426727185722694720384823450827213653344957722178321353380381748726442988722259020026191683940845046915494508389633799306699542456109281277152978564578655413892635700084799113661606108830999835225540083568453615300139049587251881632962901870415369976814558269413972336899773822435208797733313339272804311480254619317710093492023489311914696327088339206274918573370374110705822522193460189711963591490886220641427633835402769271464243073101263276099141465271530408206958369916612592178187834113327214051330514507644704028420352372875039460388626803887475268283646482674683781414334709952899132394418162181968239466781102750977347605321923089212901620192394711643800190281058561444495524224376556763232770130204399997335957662730333731576511935415423751271452519564725046868771325469192214288000639849393550540153616482277518343373148617338437799443632108778168892487851246903177824762589089677097573508385778995599920063558907442412275718520658271357508601890423085161209686200972617247121400779397716376603420905624915371880893737321828149867839287112027665330826434567579157036533507052903325470335596573714579351070488886336305076913994800455570768724282172901934122894584743606611416667499992295926704350207111260036672953857406724365252444678009544306501035191877311790074645383040134299636120813262601458996715866790607899059539394606168796135955946584924242968877236479360426115125507034625444930482277079798979185615820194648705667211262916492499059956001685087007207953119078370792670864782765568968857693236845115392764894405506706246795970924594588036683833802047086663956262811371190801860269928546764202759216603846624234705747759809457746851385536490697044312065213731629090478916903138613771676327616842896756103049376033809399739176039582576095947074728789124704796935367909263574455427425456594758428090118534886220503828190043014747326830131214112492889053456422160333993926057491153975721376593148237555310736079400689124151564924219620886782991055599952680574508735492782373631983183983403225600983360531724573425861399158373672646475377011493235416918521726030171390806426304663470693585036809820720667843966754526882508078504997983208215303388047281270924083156616321891839549401977062637861011232831469033660788792336334742788023428822191095212484577255532502125044721912500701412718719848019908392743345136351440047900354509958115903793586181925653002025906540266899811242606169484503693334171190204752896837886359916726541533222528164513631548149619787977739205494556326139436880588645431283902817658237664762870361222818866810538557480330073314784055144992824038743073385900376241981756617189611153666866134341935515818683094750254524348379802066275754447883232396111423246823364701678007280328252649571870357991707088166250290861709295088558245546467759956034831168591555171388107986041348608136301587525458233396670154465226251988097126544392456714423321605568617712980378990484813231603108251830986800618685670156915202267607577466270701162669451704888108568172811036671294622910754453177238150662383545087996487495187374048540588844030190363666821015890376720417421461190181635159356237873774271697740225038248661820035126718279733527841452799079426096117071080375686098280515642430914082646371083622834048109003286785270307651122532606303904514993957322392407042695639805321899513478983513058837320662732380681228314959473321825371968290102936137993773187101237199465656830198836058465632536204190604918173902318716680089476861128982883999281994444673239552726322298663616271786981811955900616670511471879630261791586855873365286086457089310427706958235196623139305848059578933137933358559377371446296968932399801472426468004260027471606572668215163882882671722888742937768431061077439211830482828509483998273388751864679874675002375149729579842102723822107270947006599467977265762253439395339046451125030243956045510994556731047669735593825679946571339763232490370319575105364384676888900898855080291272193910883252464350424034212720151208012825272366474107938427764169332229342424259624284350757179028312894092856310432292553124014342096408509351206741059916567681069948488963224539585156153099548442337354710202540510635771907677225871321434471014673628873001388470260501823641565555200548754636424246565876322551886064203031755637775574690790797584977182682708624525762961448841427832150527701466596462701587217117138576698763755767049130800987737801530156859044940887735194083483977944343995938771851848939977214109170333329431222874005283509139175203452825060661730321994084556327604304558093541262988117726622010178405260532877329952022223263260998142148410413479333502198935736320480727586569888998900243926860474721692496794181525416162983702955428944643946830042118541011414762116674180573458837255749615993548889093992196957868550072176149663011542210446040132145384791006024303979213140756897604371536542381763704089712752298350929707074376345891451879681773394706090139700169346591169415409947599619591327096124978567056413439501440342624267308910945739799582841889139240296110790063067889388918297378168386411691922286958436273507057692229621783692628751468146027449571644706036551500031168038524748250680130931630541885461440138363322938905333559047139836568442749494702435859371114274390929096187746314408498898066427394444629549621577729076635786447086964007733576396233326035966055133790417522000406446776770375356659831516297175726653061311317537313236276257062131310689178905917931230372710766995386645851213902619696956079194224361850970115339816459700598695814100443610020823877287261104209600675521512839001912340371312607566880058148753970869892074824468699486709936388539578669428883407550406339694911022610061423002905881282483421027350449327220596043026927952154769403611171144767686593529216987194497763940906777752491963848623498239943164587020597180613390356747349187831097888457098811470611086083603366631321536510214585559855123753290687661183739458709994557254310895228450716151944947636979226057290261251388632567633545643725057384040866746070757051383969440819199106041443643783991945123224091105531599518559332817148774537949432316453267249970704186277594061855765435895606322109215844784792412495177704180965295082227576371917497674742267168234953980372644044403574648071255757623385823909706865215149447392374248455597955683119312641058230317199873285906571135819629867198021270563851219604155142964296027684857682001333455476632724699269958188746532366916313201284351893291591662770455597999018159061268178849174289394925486531931925480540674861775505695163650105751242068447388680976062725213749335485467371095289038959290477324440966339963079430368805419138566357529074797654629018260432947763349177592992653207874030451719112062756605143931593826953362139467100488413371078738259483935700678686957950826782852029228073962120596885763452767082857376187970309307486471490110061160786010648302994087438773286863587522066929320401680510161302194357387704129807105871322160279010135739373009675164165968121711435207198224030325132738188084822137039442227621087075675416200889412352752545016216462295343222040008963361303101764861310315496190361378504066101654050786073927778354073619624831563273700987374461926505348165488505205599154213326233026032579199826157246189716863165555449178666422876708887382235033560165604163793576874171520961892614033997582335600091440243632452623605587064228662488738036274096824990030086665408805134019368478857663644038735670405018155300503899797778066486550043654030401956710126390642514797539603227101042478172659001032769268045961643214117514758553237859406243819158855652467919157426719828133842005622871108913173257759309809326336869572235744780549486044426097719845238998672183026517063316876772115384808258670191497108178919463620396364817971245802551524388773489930681425395721289685476589965096220544104664266293793613855941574833665592917614124991795058633526970165326389610000981645320972050588805636076648035891158464446881916727749961843115276197477057238895624155809445175358593441214945162696211129194857585380312451114819694507203866979070267822081719866550463766801777729895547025536078019416836731738305007047791134246988113607854294972823326808525981398224995931336851488532300843543306567538450285280769377992339628287088379016979938725740034213465324921290137267178555683739388155081307528720781405320318741633220213974528830441966526534239001629246379645677203127076570896847910701767616175377119194204635583056978144008600734597862514791670911979284012117020427420968113432313042988075824970712009465254744202114788691193908467388791722221153787617351219392510815305091872962243336231198431177614771732370944764742024461172826524927517049973234625331459895853950901938949435184929308015508611927230961062517103819897952493438697799691331841955630442868363708234945321218194273886615147093656408337373735898298303703568134407612687873870675382618855934457149271973443540359398153634611504393455009655845446734968789164971211667963795005630430744315076934822969298482620410961713440059438886579345270034760329067869308998018070458729777922676308020339390361270913689444349607954452892613986684088231019537393958504895229111732776209452819492750150721186808500391741526105256689130082506749972922707550887869190803885702119445839099031167174486883942538920813637457628126674582014900489468422001956870440853118704113746997802443591873219848285122481633018708845683213791442706918218044559350208501571600400407978261858804917327706796174981737754782121367562538183054819228219806432160765468576152720234499470226249731999536753071268418802085746808929288978055570518355498261223692795490195280708933644168359612051109422117575494108629649834988549065588570147860401032900983442841799557509835578328839392891321057891249344669576038158194905496810389789476542856661098437219984588474226258466200164212858375120994099680253020989289566429111703712042994386682156596077218989691578444063483330702098312117931210585068990034464953701720143712654109525003599840326966822024141452902751210048829711799514208204526799478621928384198180735775347026689682702845147964937004718449658190376562833753621645548242376060714725237976200057768338933499433941684578223709226807626570211152827177480679402682280716169418833239585823729720829460664195391740402508980266450180742595119577503506882994807779836464379861293203828304348145683135036885914751088738499327952927323287970716408969782956564109126711126513447193203993801682699636696476120417428702309625824057418493500658166408273957947921271428982383574528859903680758505925196997876732385109496353857234365096882785238288786724359921542704585324008610016136963058783835955231140490399364120407554745186178648434896780466471161931519611198709586630431454591284952581722289552258632833935378179616359431448959977379831530532661311020549843960556034029616225317640858193809699003393385154764967840467831742078291331165291351456309310697992958795799529817949972699100312330139938987750150049848064067757784645894417918761908759599428253494150644981767172811415063445207849117928117949191322838118532702861409240909555120200678286297421786880166228026155891265453228520134750775771310613104364343977895929971394629969419296297685392283434641651474693733226153435253735211865028721206411063920219302394811202660120544297677337878810191782788112808931497948141688970705239867447985980639239357396595563625720795067057953868949397993043721365758688508453528230334917296151755551236215821440302834824584106617057844000842249659253361368666818739818834311978112022548123613961594304061210961681912097438313306611260825713303632761599433282603395930122443935365116309929507391062405060350317659484472990908624465810985370453771094673887162958337642501516903074186198724301722799729118421143073065551596685765012026560694187610848212093971611966427904103261994282465024690875937181441294424669860182629711754692290317402369903999225510726226377499648439017660943209287324180517706558305321970658027164370686543308318060656864495871678129853700750633673377310475080986902773063964486181311987985478859794247462266094969546215457436252454990227429581338737628722786230350541605919970492213225636972860589086629697802575329709508919127108401059977173156178208913254409467295406770590186486744411505419980284656081182375650664091864872550371900194213532052886748999369192214689400345010126050886139744941442927056279721773423407989278807616688191348521248728619924463367480895689010342219645163591911897949621142856357836102323134900034258554728956015493327283458756232815895507058427657161296607474664935481834943678230673700357908309999913485944364675239211034286880215473679828794071982217548281308212955797628270273772818561580380973712260657578276095999223424966631274875819169881729530357061309438967095994515314641512566533604771896449817424139675128800048905357030449516717986443252758319364580613450062826454343340860088077635993520251022522514767151112365306364615907846672522548433428504442613812900935834744896774341499819103837549495207807739491338684427240538504688897959890012967845114173869524841120899001817610775323669304128363637461190499242405501983012371353716368221021832661037050266606292236331443067841165411177097600407624148431143804771167473969438915535048519704359718043796162031666206107436090508472631290777350399858085511515331882957102457015607569343944694233168090748435200192373568314821122974378400716932281691978367251774926007789472989693340057190061937599237022389453979816775136202321256744058944068967218990706441827765419938114872702194542973043339212896566450615945408719686151320689250598224028577484057746321754219206438641252755617762845332340772669054026170679922695874566975482795997277711645405236239981623711574327034241953771438021227773504492877785230077051860586144382713622255105179836494323598776761409620768641671087474349673557971855960502622020845093960272900695445949419166396663526955956799273706026172618255629114837108836629808962831832150110127631157234339976927090158000581742636797336512769046965405369234644754115332605755979073944484814103900757138936513683993289283876354345307335098708288692928927529896037043804988885681162093497237858270440179856514863028216797603934771870399693485718653131620020822295358251447756861245437595386121360053063623227827796899931266651906022785067575930340048453874894427906990777067215110083509855376288744857750163397123262250155920073028017607714371744208439605220657446213365875904440035754965397042828985721596315523466329453804985843097071087388413031823107136534385916206855432900629393521541659316503621543262321751108184944527353348799253916359513941278630361376198076869336153697851106782481485924942288449886074722109742914163229189338076023463241147126181078881807910413676495841700733697822726573162169824992231432462821827381906346675456258216180926902446712395656428473265600466316924315229228544076317717206521067711491617984594587578612148415765256089511715539205490467303428384090319909284932386062377883867315247701934494300835399184808072687750425974551451700384243551083298515331882179631776077884426211890131706779053733763067723517098223479711143371173641931031113041953530974151979741218323448731655238764285555463143994648121743477666905785365561304063561472683017608621037616569046536291165958473744205381364305976475880627245511778680479172156583312582238886305091184372490988914665639156506469779307238599144617016530459527865649235580466490008372634023671231207557627442639374096767142065912780144500274067383905921270455888891433032680148878827406149823865960774572697524100250576998329333971496665771714057367476748672877485458512889359614024142549165165089005704149787291799763353376830982280753541654406521747476645816635914317359246911089273240775746340118588060647882827114042847233885050348107068640465703741889371194727631710935482699716356871046655548756771237416104258331016422587788721875823638645747249518344273064314723942891988709804126232174832036319513424548610618881711895364994810437234492395229985888617352387377089729080318954888985756942594783187312601101074424993676979178484145363412170623458473936660286791420627743460188504643914306267440352329936106270400775665586343485654144265312443319194549316671421695145991384811741410983990010433717323327848087227683150886127029631817092240338185942675000247871219614105534699785411231434232793654401525587764155158564825350992049322717180080110726747865276026243719567807281653490525982481806309095969848541998536559331117955980398637273179773148965581660364506929006888463496633019175945195499894738994056747743662096470657190673549742629149216743886803786056051537305945848232520007403427160244275217393020228745778671279019202289305020852280320857449683535654504033771884976001972749591037885210304839260424561478875230140262252185467029285849193743353304625663244250949045903751133395700420308707188695481416676377939023272516023695958455687048315261022292112962785459351265579397274608981614375110455474306305415448950681578279943760290054283338469131707127738188353583035100371629894438285435127227561696609731936634272777790885452987660463817682715387793582937362795238525882976144462317291588464522065089518902017372761646493438636997989607594995433939172190773989872859234950913346431556590348324928564843431117000568450092801162480364731362956696743108594315825946618990138294187004075332732291031031021249842522022903838584453492785544158242385225101482462306879724315163329850958684056732066531449102718887795747430619261930765201152352631195866060255038311924184725097463124656126903576990680999889247512021268182884939974338083222592094027926498451150043491321945120308189206274630655463421834141114330307313734747666051980776048316664119614443921423294398030334564533776931728006346226783900561764986338156541312944587601446848300510564617389743492640833872347228257557943705622927696176590377072455344260071213944964221230109945024313152996673323735043821261136644727565767465471995940340629426770454690765274593812737091004743907155495241331141131310460361071552991537143400965348325436494665049372348263511971964799185746102830438783114940902464134585412166608496399168778066528073710080534152319144316753879853142669676864848148671606979333621361039332044398440411743554363249811536585943774190913951266871547005340401130858682593546602312302380981333663883402517837956550936234516223194350053876362893365467322202685460020950466582262045538608352708998889662447040608275589029095164955752747007679381963399596694355462808929444533582510033177155583292735746837821238797427018001212217268778480714044893035211367035747036896255964208580202971973431824598999701200476483360884704696445439918323295365274267071799358188985675754589401049397785552617383600065952266852124149237681123921037563990719109603838515809974309220411298077994622805892265520457370540144782367761590603934299951912711260224004616138383429800153678700903232055151837512081179777091359468703084820447470809913791277059533381839532862195920341451245001731816399996361790787917377594839925440750921161237977076763293419101287811831288529184439639483284717128860794584117318514984613475253102154955694605169999523447361761038789099414008240555807635156203972103028448328624129865785526523072838109098194290806770973787719449427381995632816683690238813469893817890161051007302039090760115752759242870578684708827963071018227352419922911711998452835427832430605828619596721662138815321942943392495418603952362460281839963302683098293450898837444084141406312049374736074459745775239295142278605246543236822370210010493640177070530706296770802694398351289336878801638464509287137759235694038956522670397638745740630967505597988992001043581693036479581228553496986133426131679195638351332385237088402690452618519617487372482280505214054832952818670343616070720730628157939664631221164365262132943710629995745133420740626160813903204388677088549109534018805699662950296131389136704263684435237113311269665571979634780750614333274319083912874951131045425163371567340157977635985393371560906395820291167137347825528435723315511168951385470804683229363352764481410853608257330557172690961814587419645141299958326881305512670576330431993103796226678790575670230552989652034767802180237126434746451427037252107611634687104954202905268317710968615517691624468295079683225298720730262733431645863493822758044106985599722508829326777104264235954170173102421134749583287125395953311384443901131452024496868474275661097710725416930431031965623895422621244318189882390337099417761304267468130970461058542811522129828871857469573768456101161926699771000845599254838991450800155282241160293343254039057875789500292442048754668673895758648647794054082845802640691157201422385406321182463814085539800366491547856184140328803377224682835785453327961281183575085368717462722853553447478580215506976867017679151364829825492319614019023490885103151186094647812022639597571037734138421772461987194587441226347421210272345477147763753715853022687394059244471742999341420784555825734323611013459528420892145249891791227329403105705565726714853840147571900523777173153292029210100996622904040439413853086325274006748228936103205117401470090888490211356121514686117209687724368063618601933105012488784423417347623532859988729477198743924293126213618245319405783610613357478540063205639311224627129823726486270727716208436799789376456267774060630097307165043491563141081754447489177754001406995223801859204401802557546790009296933977986402470624575715218659804041355284999543496492617380156751873169791484875361146553835334224400934252275625878095306199099967659629761283686381166908356107490164053342115405695504427472526879652186541809705283805690330948249275581364263091418978403655058714961862815937736793165982571077221984941725805410985764126600394810663831453082814164261285749835226149515584784117301077927617611262579249731251843204169811434715451837532466799230584564993350625751709861560639755047639026951883616166862891257437129039556451178332547111243145349287551102767585988755721045945979347479393981730689933707264044935183840344586802001016448151159363812484971122670186821572166589030001461620935621101400004119934232558072460183780005406050912491346236273383346196732131865329337900817366917009073559076043945263312727773635891610383548508399964396420678634610628840912501684730030403953303985309450296799445007588458245878093479250031833580251852809209363407236710672891757648085268289244627922209992972599592578502915277268184894612769218720483072474354252412959240004077286367417192757183840813608936774912473319274483937423773511081106012936510245374341397267313619608318410156862954008751491962410508036073462267110746391490770573872398426132037413806296240330211225848898556307527976250731700876767980148185487661491957647329639138938265628422589138904781119711215057964576572549185573330465967342915184332750641012530515529863365110699433180143058767861554762327862756672335068420536016866062599240420117855931495923192521442842396225704617287057780967707359139343983143560864956748975317828534877650417056610061977283618661806762326045412821099752121999393772262124804688626009448307967905424289362186231777745265147689246550370159071339291583767322368643743203964884907489373108926844660805258062665915154065648937173384391632809436009240513681849776130767866439178063627250194045413021076110999131750426490448574695786836058423471465533347599607853680554196091698937821048962560741808468597086326606423017321131039299881156353096630589158207923836271516257645529953397690033389640194788193465962799247859457160562788061303084492966388957825888943257193235961683106821635193394959298827301326539040777239262415078983262077451220539138483569636964088283553343346976778149819268078928806340686320586247784281295744842361824572003326264477706068671882692066933366372763004216930359567151523955762836808558350460781227536844838557241015126502721412496857168836795525238944527019926600673846639527687161662832749286028294915924428352982080238443081338706497984428957742086255567833069923234914636160502212353692504355285905403855893038680432871559029113058482582982631142340637748849028623300297287193157348356304269897693947631807024869051925458374189156368603606832117722070636840062902701487539232418078789229200765627181810619349079064421037468675699037817071370554263130987568147836312150007996209579466595011422562752528443402682094681697884650576654610115081533079818262798549118347630216613498569277064509105941386342521409399682966159094481926080531821236644787200683751793490119528386913403545225497617292127490350931955083411377612502990199053379944999463096234852246057365291534049767857009721640975043154954284686978919527448556162180794328646480274991129088216154083808198829185474893741895102027720709356700628354320958774086031793720117933258459062441751542404558848460427829014167322510072811257716891959643926169448716919529809833222841232429772362728603067853050104030435976922337697470687203633066358812206338251442433174507666040445611846959881010301064009668410700359360898668011050175845019276716241568199904302319922437448898265287773268546337403298629855818029708772003037272811543680190494492232642766741123935255853717696195927874279299227955428046540441536325980871851595168769544416733547911393514293065218299433761974578451503237411240787045271778774318945262940467065632282157334644094387595848437295944444159325096167998309024953990497959645304509069849460343446861771628244824849362116432392486800396468142861464864638731481610917016980540139821451916850491070546600447097111462018277087374498903135352695267985489972389085118808110910058768140668817792764760196124037446843547487611491956812811148802368030030843427879538967187524485499533921903496751733424047741303484788511998356623263422826958140785940008812358662969882750967928573193672989489599533008146137004151839085424087587185183561739525540489802517881276055252866435064951252383550080583474925144845627642894043521986203480265336408402442906440083069813689775335101396883758438564314334216697284285646089354583863944497502955400642786918189396896832708091951485233678198809391803435959323866258350458976667871885285749303291832541503284171046124043838213255092204454612376531297142410891627842081300979708757926357119901423171128093937988617884411395974263495869368765111260780536623599763069790172133079157371541840122288567781872815150463807401193771569269141827679383237600992961239751112035332906967312021393080102177871511958144000085039846075596810585638928856765064298649455550714622969408080468787384299652474730143225050783901181777156288833324841739509759944459786870339200962573226484592313918064482738777924519533919069527230130222633037005729461973582361615247167670483068471296506204992461188638921136422731096910142818651080011746193344951306147402518846538162218883809278220113219544758794267275584204787759562974656123240521809450833403910364828457943331624704588403451059404150116422186575214936455629443008231977715949546444281529902061343629116599849214562105684007058779929214988353372821571381889986531167505254116030255741333564216576402008882321516911190276410871534022015318783407765151707073909131289912682554421708489800141997094287009292890505779250395976849988486102999068254137686861132063215289659721400230408268496885851297806355007628228467025037789442242393545100458483586635332067308739504143378396848420019703510498102793348889686650092543293050859193248096700591110719585554024526126283492932472982766766601237774382152745131076637470568225023490777288958579800382657974088984680829298360423611274351348082969312701693446729877241478366248472566526469189642572654398899126888699667701872331219683957112012451680583486884266048101564850120393374275945138477250225695928286745087528938445303379590219200645021548616484625115636209636790946121242781026819209802977602365171688168003623245006908797373094640027059533323495189318507457857183466061987319084508129621655820053065292621452444191158545538237607762555699546585557755657852271307440039334450795876802388705779658572021979942636436548135889747008296429244740049751493131465083761261118296446189075473267035003849594902217047516391886402791641857133162583407781429661182093888118178054713443875012946315087620455608823063135302140966528664710968594279762192440240176561143422366076128275110038273650754926257904950201359433608037438626065971389735991220209932174893949485111500433311426460489814079611180836447721746269138473996706590045862417360291233791198493990346419774786109678006228318325184411972592538393250995014644845123599572638856167742708108988646602194789605002684942596477611986445319762826504161689663880678657343828498893030130867151253546416706192376329151205211146866249541124754291904254810405199358656887515996593793367068274740684265926153310534871873127031174561829952452066637103831586473088127618279981903852001861507761879794629691774056543930435999678548719965094415580783579540448008157209123761355099699315256169382181586866300211524210435618921209837455657683257828104955797437303339219980678897383696414487660660671463317727144670324904642124209331701951481943309783008815781485860678813885670661004541679432902360138939750099612041973475023068553220681421483108566702516374768143334822798340239702952745603019924648115581002556405745498146836362655712335725317766675097516412429811138584602392877439381785624285297033868350852413571148706955466972089966254165935986185802629834544994986829396338358034671600473889935882102877905873544076859473082489650333185239550665809175418642918034436385068366188580802370360389327182641196344222491654121693464860918191325416473580051095670321428856495148426798972504701904521419253545601093615448241627422305108466052398103037537993118399513568787026879794971776741651971594805652214371553567123728893345684726482414190609761993651518777122840222042788534869064217186621770596245698468551061241242432947046550770191857455632962443214175643012766430206716601199083689616556485901819576477613895225611308326641308528483741860805740096738327312539118689779984219588155535487964173290991031565192626998253608161767612398743716483877779294937653322127004269622368951571328366597960892049458160765233487197326103124173712071832960577738213107553794748448999716428950693140286891985595046920220976301688923887796750008647889480938218875686462644417380340298720909869278941476828809290448912423979972185219612186848784787073870421924893857288455536326634438124940815669329700116928522266530619300730408524383054573440674205761132622562189924148261188408165544775320760747893689683078521617439466820564982264305676263989946697778702438799492930606107024389131997998510568407635968522473296912344626066712248706177714443080582684325915505660227319028867985571841178041682795094202399625483893309763728429396975949965434871275139155975182185838318612289700701264479213453186939060099724131355065117279260861256055179297822849873374407151225263496566976509104620269279492157834202623146603230269318993604431283566586754123383739052068475799251818675516572671777305710171917935184215799794596113081696867063177999923525906099854923965252827127148303951024926462385558489235140155973605495628404319768744911373944591863598511476911912977446484472000149334338029975385853312361987206070908923800890770495524934671433280433393930484047788085761288819275944186556619094876828581254940830117570211019513973248507820712026737000191473579547366919928096350902507203724208298187265391769612668616519874275438793862205308565086597809093591309139792484168045924546739605378585270944756560169167760418858236630181684544624337765705838619892415081331614980972178124594570687066455866611714008599495954367676000778095033280397883376772598591772682099631603696983789600971109790122453069339007680639462680002928250559617024622077769279944546660908640719674826171310107431153084698233734887520113713607089935167528528299005922681941394233257476604357171897417162107499697368620788084072920523233016643995063733356885881194352146316412114652603087819501684239803678099552508117218033239423701411508076975694307082178703081974054062834680717701989499544731134493104118663693334043941698178895553026379250038860840149820195680260514657528929739981802925858170350200994083902119991643267428089256389378271009038781880527840224844993383019543100302082875372559358949577056553669247417462897574421599099208342718652715170395337437435948864779094326612618917380243181053210710869802656837585458632173901244110515988893393311911869850336555277556495238929142480913656524736360710142096023863804605832184195333173039763968227842623677515878347292872717401296915248730173885428471316804793973586378852175307406477414413595883355913847646744870930839030567635370608499882353112460645039759121302157887257661471844997270752693826806602565267136359884401236874639079484156201901163312683965605389766743110917960788217790150043534336979213065446026477426497327438834528470159596308893544345660502933406162045886242282737574920845904198018998671982783592757570056358505604566281795441905790994176112007146584346861750317024195270695226637566680043605343843119059395232905386034070059633264195361891005942365732700576175990736713937344720021306777524657983776251870664907816868421127710438345241888017150800640439756641113153956981979647447817937626522319111608683951867849187148593205358306731847909160827580308781465772533459449451627905473469331718821899058523213708042355317362049549792157930633721602813106827625750877280753925037789732662071745966007819622066036617952029656518404882119703510021025601194690602929097722500848481631116090870483781893682693281204135971407178037768330267716949018967768321902789729092881034100554617787162489354607982881061351596483206933524489545886296349313752198834738045549063153656022998438174951430799096251681597982208669354586712662773392827198651201512044331571252690379814139801286380132176285468122321048011392684483866194684832522180542084302034259941117021681643789784736507261406684568281219325979827991992258721239478647709798628736168571177960256171574669569948603945026013059430461605575994433917428392947420308318313244762356781401020222700440062057070091910026075369759014924658626508166467099818784696237578377503790243158454094350298954417950499080799843236924431886871680466427710269158101585816379744454029024238544803983689145821524494860911745364903212326958209125234557566313494496114639419676932873862678382555671474347282116809273973316410044333406506739248183545991324808782922883607096614874945578678853242527837451923713665181544375540983879715198109472532344903899333367797849086329871857913187532218809162373948915861573445948282866976319659528781552676007899762393102264978226933999571862623530260741915189205121605964797045281159559335858424936581577605146229585509554049264356096039739253981508219218416911726861359351828306387326588906325918431770390518890827491895454573596355088614615192798909364409233624562236440440332585492480018997549610318046819652964371985912087557131538366406311652829282400506957306782550540320560763921290707322473160755419845212040407794853090281957320360674634654411308255567859730196427482456460642778531724043764883936865376039083858981150078888675619231458032905000177105994773758111969356220892380632258523102374927374194011897045565691337394588095611598600805161315722486638126068300533817793473977654963043604249003756851280621996354576828288737614026782872208834403616097996835204994592830167308634930805538897453925984868365221363701471895810428342244203414683833805020709954665978099386358764319406110115014805351584731330596680231133232916054660732036856834478399063330529029655269262715365755129084910281291645510302369222484532624953377723522640689946293663049556586666828165391775465305948115926648663419100239567200718579626379767175978656664275823866765251245579065405604139254135801939485872671418497157854416037670088889987683571541028347943344066465350757005257072654063759664732057439193966235863380486195375104500900993907016234707793327878575237143073667855244443790369968146689770318058250781180329827432725128702178037982407639665114770175377937972295971573197136701483325704047700450331328088330432706130928002792523517978414442855571100141625400993648463638142241359450730827023475956866858531101634109058079646688320831821772705173155712086298144673796039554848587239540722572230183934138483490702058284318840686050797308368300027669348888860067839703297340949359469095472546337552276838410239188877628234061623265103456861478991138316902231370534010922793428736402111146931822773617105893617305082091592254438859409036157868874666763970078003711374044281789440953346691682016844276980387075202126591440108231795957439548537614961346814197686848876668887013489135738221767103450331993168985651845942815076251196157630852984016987700176943361588909880749016379512728590393989909213432605276662711259193749570992840602200117392040895606019843598636366026236965048817503165525771661395566424138507338832332079099658366190832514123294047604115857386124936236276639300118532074748848437098583829108531386448233669996788571874310881940456925047252412702269651874177720477648352095231349518070146188880693209214009675362011243815451714845136580252399160035600330412616857246389021435619349176984882764453310397141696308304090075410967391662096210549906717270874991313303654140121760852040971481265660118063283109967780413959131888876143548203249845028308717779916908224581661274348725862891475814587495750839647750402532061390335987245742848606424837432503298557915958162732263443968649548527797567065071723522023507215104607558140723257883878836515417718272704713290202198778010484019418898265257469329087503991631934296789884209196480487196786815110448264115521323102974438928982043013357097639959425238180765142432522708360154417960219215282728581084791644186656530414400748760096082505339234027166529157442566629651457382985701391936055636186982619435308173722104191447867653872875144581429659905630282162900125357720564959096327019280765453664321157541376026673871009841010385697324498982170586058707268589059194469406608073928453974201758704277537391257563563172598661513910148639510746369529573782406415863875014617934638133294555324636063509673004761545847241087270212060434612973846706209168664856274479303425145438642214562644879522713818703892313689126867242769957740021098117987733013005713244031812255991642050187465464927164742185650854352725520126740425533315816154774794765901875693806497500287955043880102283900307834527332331546374242017574733319373101379049081392465826094155323012602768893806385492842159756249388369704174442151477684702047342047858121255562385164642883354446202979279378101966105912112567132909566219213829113654281843932245064500119778616182304715321725802953269824745664513097718780403577245213736220765769899194463719385619238475282892022884208615393057104993319541094976253638792780758622240746405773121780508146527521370332529966640392790802685630683051811904961166384825948495097079939409844681703433824107028262213927694306793453825442277405842128952835176790108394265650744827308597332733592039090483109429766852420895527835421250621944662210918407609464001989017805742801082493884600386995220813752871825898392389514466224973699207273811512343647072194556780651127929399619113075063221730669542358211536402077381769717206430041936045466911845584594289181744132780074624911914080112385217217218617411441455529734769251617139088856297343739715168721343375960386188536431985429454884898971111430736566261442168065531329130944413822397435543130880512479751236651951662060884709133095696262589306228679382393007891848702011057806455591984706069004591486311538929837085992197896644584353261152889954256056772375032258518567362992522264224239656234431791242275362007104933502567332786086493070325342675317225133279906359854133090694123359748465340735265482383065461243370797418540399045846940433234386939103162584560539673370635218020497977644267041229355451288991352096701230040470379878354109994223211114458076659007679540561812026459597508937435682829839719336958488120515429659404484673527265565654852973059554074310535570889361076886447231515865536660808386939458491419918338939858072088565927318323774137821275790319521456522953243488872832741621993654842885341474514407290570012391394210118052982690457227534502695851955548999317984229812555608048035586221990975349612920761670273628747436800302517238277492728399240042187358308031397220146017881901552498058935544796373059689912130357733979289049963559882578996979610056239802425060464074301190750300794558995054407885798786560659669048745554646869633533769454081260192389708091830120416692074154854655103768972916268121682869343916606110672204235382463480355688180272346132226380343048553131226581978621245304693215141215170126804156799042332754113420615191032983524809492550800120072419155856531362256484627553953738336663336567703458662577154313307193556797473314338625121601018341062618465473684067305937156567011324887012748989196248852882327581950096625831617249676110134229682161971427584656981574913123017233903275363178233171696448603124724107544623623742915652840045465311183811735634579691679820153916351923718070432883683502746356993251719892754881817185447780661208126147373701988665798170877907959292483903716620516266394943372622347838224765564628004777041279544267038828161292497163266641451421814961966625117472336236473725062163460759379240527759389646479004512996452446332375927495908114582652232100287580356408012385463554294430033514107865223641062775208185127405265345718133162403025441272381955540511355106079778008862126890046519218084601861245325533821619930770024900819620433889154274684252600610234517038020421960636140395626706322746908856547681852553835624071363842138851774142816800187961153562517746226072409205993558188603855973383696504705199807224933445316165355676273691058100216862201322097715972069676465585686752019091050582192875063703897910953742756579423440302467329040220414325643700024292760573767557425835287037966234415351876455142076543641980689957728326509267212792457177817587721098899494150610674176117886113014703703380787474612286133447845889873343814511380257790266632356522609951323633702379482561277573891508944140162372506962303806907973667235494725260537239364740407059816767602064724463473370090466115932803931238251049007992673656819795701454342939549647337505406141776645646396133139846188288790214852503385014384287842038209051374442999624941035681675553823739803383426694814230086424644114956371995056374361539753503753935572963985043168623980491052794730091790306450458691491146994734830598977045348454166798950978263777556615022093812124576995471028133188466932395023498746311718793019348261445474681526791486265275144039751761323478108390191928995803878645724416084237222226979849990186413832639258914419881160871815051377052587715943289892202366314377902252479194199813148684182709731622420684638743164034535213364006197696364566594162987431325975171186931471717059799956641346882906202607003473748634948249325712955618060066701683065208074621948937114887967575524385347211695208606494319832989564495436927471595764229726490376845023837456363263086159516042564397730678821184324472636675990009912253065832557501372715947357795550023834081841455994418608337859851019684740793395439791363342214459717691285775470794598396317859318177735376853364298068104615741822023710566036455254346915181057728495951871216953012771957766007405661239572423749198126196962948715738953256012919718545118678763082814351539003417312385443390123127134375544465572867469599848258214306756446321423829702997863432068601921849509773360173558007408090492488853074901713355229877799666708102643908466089916471729192272240631513314600008993308589215450471028907022212535410023077425901947768463666363809031324220105269347212753705900956191002452651066444943492604293870426040559858312081381283358297576205246063754576264722491091051329596519826509888728957244434354892340432534005759941448492357598594579488907545088373990161112988116992693997864066962239403971423232137114804200229186096503858542717031120375688764940942464689688323194656886920628959915951928352589817326634466077270310523229532622777638306900825723413679216508747973829087076004244323136855765873377900140253393667104468430264636924901309478709783698938043364228195416823046943170004740025811631928069980976924943106738551991616300503123079742904390292727773355453528891092127731416553543389069120182947855851722259423899746070345228855371127190656371109216834820409163729452456128445883359953872805245231602436435228314965321654813091739028719197398271268140500788638689553494743410250168897311323125409466436056420503243017945915988063100244850090101330619912957266380214351423825859821779320698872540567682323179911702009014295687819035246419625343626547023335658594916139369620948864202524413608237823228861170399325259960732566031132666839231633849941875176479258956374406758876054674128612751712454714179496427860904686474604618812988641487920258789156987600565286449904810350610345293915865087024659636441705593078111144676973706640594520482054625213742212807253864799017155062850256962480830266903983163335611353883515562377648757692608561208858254033720178583010989712611199174454644194205212760841105147304735714276153107148515731410851068262830381325320306145412859159461865076593446705274053796837746351409850082017314406481021369169247348566420506327916060157695342935436896555363084730845881690331055764934948950710915863197194434367740422702528999686674673203827200034516492202838482653610030008763963414613540907625553780604347012797690762813037754976633878235519119586290776891251013357441794285541497323742417854018170120882572016075041313679699246771569140973160535406793779200769369124879919583609250869229096945199492935400556820691922855723314128730086738978496544181334041156691194323438752192666738341403682996005213775965429117200635646232847473684240626978282064244557513001166662955760601917876900835330347328097812079590668369129793155109281732236828305096825582223452103948232986366793562450819804725092206189953323135609870176964269951553379499314908643246831693523612813427671958100581333287561291973412197992908303105934257331317925847967298065691241606083374302578177709200385249040725013008770418778958191251146711678856362551552880906413706412073021709120094794317869505577196855633364561095977189202530655345156437995499865065881954208124177099277737495155890750218020116713536467919864303431443946651241639574434984221515494665849650513772879339641291551318298422110287486303124252159594972545041552319948816958897957398421359308765383207454734172178485182550255764103048260767304725544787461441373336436638766387793588700860032115323522132845578894041937482851694460816908467535224981228879994085158635062355506383909465366292271067629404401829378675479205007170373883348078646722657809177503116816289428514505833437461167801723102658260841872964192666946597579039584512356310759178278457218047284849341665454237566159960230743841708777327564775558024353692025395706378111432460482217029208341441076875551571347293787678996336611288480097615869620342180258014479594769895050611202258546128951104773750325162602733500544488639474988855398148012378855019445831344631240324679740612013394630725438977530676460345298669415818505312498302157127345259912927059659088935761495328205738399680691201637505319629658063087448275001981053409294521303443833021877374624662324079947654973392338805827798076044146276358710541630286196431618904527345978223360275615314883716915729049771866530101052216441246561874064749560651095098159484758139503057640736013463435686924804399095653578305304579981158187337470040480345907254084758991334054989616440014079845277663273165383489218969749683387983755560853776594923302840727327499119982832952077262675194431014165950923747171865085209694025594334176144352206434685646546960542696305224120379882284108343262334418879819496593798958004929736167184186652811948010556737570140766496359123042496462956405262483038999486790306498042384531873801301739435115062976875479342831562446375743324153029909034478684234546830212204414711072979799504892718443402543073295841467712696871989598134248515123985803915100167853327697974978388103314656854710835412073973980207188385430494336215603865604357330017563094134236979384870891651233244734187844102297174543468517967814145700925220810687416645729147045758204645231356472853529053986289901149148071033840818195477949823706598019190440894965494324748328327958321030531306273058008891832662323946338519489258826894288991340157215550932723508831686406595040190634283855606828892731404206866133969882032800211717220156173617866381649105726418208743438341781382315919802834703473665931857016882743779388883397780442467803245628020643924343402397529284167661966094780733527527124906920277731238839395896441850720829577879390282806301102071157124534469104189747348476717477185583595444801987923977766057739593246432011732777742264574011937203927907836770120731418255412746936677688080868460867799232028394288581093292481708554714592929314835541826602720555949077058685076419218139935556449318398790910435319040598016900379310697787283758937148046035763510874208762998857607790316880605674534697068409347635863992003329295646857539874419889762040405433369293848903448406173270273607106137491305644330932489225877081937463502820332884745483020502046999278028977152001291706891933451074980090855669948994734702771702753283721526613089340411931894570318990987808198496771264127829185938753563439844812655298896010447369833512674506181474732448678443227228935984519410199606475037433157221777413771254264174730445095243155264790147134336723479700186137425780873554329000157163810505713847826687005717539481719416657042650896689341594280833022870270000315974456089925419919918063450656306209465996184260470608217510623247337050546390529181448102377196903516552558742864189123459007990334457892110108302179529772981560361616542867602494076922184854950393006625596948551849992421385303938969588793458757359037910531688423335794894804767647256686989843921729445289726074839739900851129246355917118897758046626253821411035465323912607954444762240901435719398790191648805320023709265190480940266216754542331371133702515734408332981388821598246881291296995445183574407179262412155462535391874676146165341575099215170266283062148968838701349773844774259857772765863304589923499285756979966465149773585729044224848333271255881547084670052809466002208609863327071333520240225972342600564923946911889844583643412950672721783450833046843242762311714240010788558535264254767821229377491895255851772190127622236740122642713480273934188362334844769351339779701758115115102844984935012457592386195105842064511161155089093689137400352447934172875347063980478948272312156760976816393906002315629599522873899507799239228121319513054226530218622886383181527831923314801371598691195991789399892438377923402939862320819134102688331276520835135205331426751514963029935525414755239075682287557653817239216145235578203570963579492157866917944517563745853523587522699151008535203188891231585735833519450249090537925960421381756267133592316020042609196936343352343368562298898706671558941636379062478864828455393895508661994342008279466319907801529612981360974912848075743943947253889211183493114200060981746927823443019901043207985383357878378213335243355005971195444492487969018680776412403052740298158752715804209465760550611258549210201931555796513625261678091615990610565479113376984678542882055343018059281322593379524638617362691760501229051889021375283525163806530986100416089740605462632454630465137451804624897778532224287032741760995780540222414312089924872320164774873433225811886400727856521198965241883417960039733958917884607688435947518940591508226969912192455884118132046225638082306526337711866779722701854438460168671391326670462781180440997021159508825166848178922723007326482902316230435441431530810630896239426344531118609048221286603593022668015064305918865750572989262385568782966452680704738356355748165487382183901162361956095141085230786251839087716807873368838897173736803014010030368432823753039600415919706503111563385030459300395950733995052424691734121047907930764935049181625243082762051560667527220420121459961328529289905656247729237381786709162122679947281519211978826908652631799078720290858932657664123527909080888816012534591283249602476830703584378749127334736711264489555852449244588174676332232049125590092014884188858854998120930092762649395220772383222900288561888043346913995803530721597823939628017863562313028659529326389844224840006111565632006020341462352871615238977396124128323053475562173140329032501765697730022104388223307246736078889233766363016546998422695559049237082291362666471244525190918695672188535851546659217152438237956004262802147760447127809563768598839220800599161931803007610177729213327132318821378344431648163835527736546049973212525296898462315671947811568389088720097144877659934297138162074426190036711367374173327505029318023826383005544519564097763603530703002759928239283958500194713662243760889259341510854782257461499300701408157478584241683659804549776107680028541900647352541697850042493700076165007754677179433058934178700160182118821232396802760307899363339546518942559212450242283901246369615822321275156209611062593808155670005796361055640433187056130530915239061218288110851689505839878825964953647847039595691102444290600711769338735229635796190080925804601099459480974453499349180003140937422852347734504244785407260866992271404313306902980706591850863100335937799046546431609058023748252176666513243454575183399453908958371035937954410089753065330043397120656101102836363219221893123701588944796388406755909255359647312235504894740489261903706371651471389255390472169066569053144858138010868464781251074674332990719487464102625662292953255097323558248978991667584975465175803836989147309940609806477741934650570775156001808359507355431263470023733271569150610850476033167850284339373435284124641229748621309987942691835872473987806178589853294362329391373467662273373583231824752814795571796257109535973440401399081129222406706320987150254633653767894845379123227840717432658778033301923198117385509790438319019844711913967606996021424372043811362239752452252595190001718366602725416577764585341952295460408966238528600096559947542504929559819169734547383948063383799137942297964712415103085053031145620757469775308814553317255222702627657623503028177646614450436424898914632697382350340153952667574159950698084621642063165097024544089042685522152155356887321361823107998896656230977442102924625730318070679244225056585805248920886273352491871555641910034092249663361532916963781905546057563444120473573164794466165745364378677066459286458464975879988447115718244262587845707474887051082589976347239391457027313823280997017148143428059325170538461698190595899971217772270878778706814648632186080550175220153309856904713386738180310371613303805403030582560772170646057041403638879778765406684676956277035207271170270581450268199078168026506586876819297329002012195891347040539458106582284423645440554089509063292792337648265200114200276351952973305891404691853162325586095755391938711417281168925976471978231829169448473987559884125665031408555347185689672043584236018487661074424591801496975692628297850551638663093249669406666851473069501165822891408468558653571112090255300666444948349757703277225258471949695622596114838394983346432139559965025350992113233559702351808796204371113417622503724740514831881929404377951981394980416937998034928082392716944036196376935200552056744414517037538498805217401007305464747820757952983662993947019834744790473286571729447305859300427581023900540771711644161307836031031482015943832881402996278535426717904608545799530978032816993069969935361346814088875084131996695255684469518845155024889108661589653430381728198402260581059001706715828398631989885826519204082263927922248702147677801848824577466012990028386841613844914504092542456050770036330228118482979360361363298323847701200174202799430114517037297775914493969271384962611487557087433838311182919713277254947162537919944477729934770724282422376246683056608147709260096285684069202078537764102616927759148397451502977464368088994731740838646582812951756945882892189258810047920655409637058512260108293715447584704664883366284824295893968486533752595146588432860128865299903097935590473836400596494005151216828107633654882322046832640552526391435453116207503402388081166421597378918895772529727668064813726496660431603227009882126867873021363012813586696269673950583271767460545694100044176210345689607904298139202430550877730364269546017218577767302328575352444783223178742389443324509085844567438857509873414795294825802965933323328332619174113103803703546070896747161981892351182235842394117260302080644215749329793367219815199140323858235231894142844561480028571066561757768488496494502313906465676964150701902469801759188626854181563773202606894058018657505933837923342324208381232775809879339403678860405201896418155963221377297987256237457087497612998303636448170271925783786344323637152188084042333668641713155282233452809196382281853231045724520496349089222478371023667241300796116979061402343394720354342858574252230311414370656973976886220734268128041078476861862652893387375442629452225796651814599944162708725742639894136238947717110663952909891053303385088717726081898498779740894910494065066985950936575794893463683597351076581140923392474922414403941477520264820532472211669238010967793333335289893992262686121888697367218141769181597428825331904821102275153950142314811636275530438054872645050415199829919206213476668247591787851679264485574454574863714896533005189710987319991395937907815734805595230970642736733131408586177685039661199817527081729044459621746761564972650225224478919237344064366370413798863047824671230049845398193831114161962860122234975933485826100822476570627926396835353128567881511734555999733222160500840117713967878897033978630964027769016161294353611909680584485587815859204856992883305969290162958453792352830764890163786408073142775744682157869733411464041689975193445504222132885586424523842282796654909377596450092089422914397297111284733147429050555313762438828031645106206534597961597326437603899293150049058116935248580432309352878268069409443066342553591431461355428412993699323715623607314419137897662120752335670081300801703010479168172628134279026566350410808371851049596448870137180121346880487037320337959929622769204780564874128649328474006080098887221318855485215487117634082016784467077855029385569531054297709104005957819678414654484347710865455089167089985806969787910019023619918672800765632242669302695130188937979199059633074817514701604845910612255817299574004048046669967501653109822766283270342162953703863307203726195436264585602971231448958154472848838056185895272305328769071713821100374017871465914382182062642180867267016992882419179489560283718084341940214440185372495192726497801135379271527501322079098939777138090194459252574268771667897020420084306930818405600451620613519534582613995071148142823522490622920278298578204502279431966172825035602305679827933932531708086685226840306658126299246410487041095543713652266205334780471451115088388982168047388571668448182592004149229832125362704949090134563196299815509409922337440646687811067726621658402516160867043786251652265291492286724565177175074962923826938252486437051791251003464233530677489776024058948460010283084071205589971457771873831205859878170762994997256036641980443614228326992423842659455105993992127628855592984243729859551026532334325033770972298724567014321886077121565665528424617113686160510224724126033865912060063954251098612384554435467953838075037426003822006962776550755863163937284124158735199043083163571577873578911542873168610633234198471795513908636891885160380727863921769293959101815745492233560351821435540300021453550782777414876631340171035455974019113846830645488758887366182862510795240492659336461417467485950369536798251920195651732374800514276038852163437447566655881445473335894507275733633671440090414215744340783387058124687193010097417699972411742730259050295264429516729611254246679575334274225337030351570977264227495816590951188350317945737650995080254768074195488339338102855499143416702307058499660831833639672773634440528723322959520014653978612230684294711008883761587602998725961039789232769164568394499692145241427037547582253839152274393965254694798517927688025093801205835458943182201590322324722012402803865078290787012856329048621457060320872407355891642384379571333652251786494608201041920960418899601032301395921848601338690350685437164670404856937771105849634730022041515697145984506301101930668306321096175165358755533324140893418794988997545681823478748336924126247451058022233767861476744055305390805840255965919012485967384865223099889400100626757680081802877454332580481327680997340685995179832124055646910986779046347568496750590106768136507653089038633392303300253037564816661447336580591603095303100558379956427264176330981535389288417127028180084091781172408002766299919687179558045502310826439540148103301332154776554674107501652327396772365029433879608712185683606906681649307305105766621348484580905817375305764765097129259640375414561266372520735001756616722034450952766592565403874339961440285396107888141916088992420169559664027196522282135333732165788589413854022944815497704477815252596789450876843733487479350769707928416631710881484668949281769360216670461537138466554754777224748821764800526382297170774274233435766345645379517870880243962747960598258327497944648325166336287372610609585609454865638327170771268219110588192794765507478589270530745468409385654665444125765211005139279995243027711650044912556044434711167896637115698001851116135310269279409243926554218973462761830399066827865702979864893622881946258359491022925135253251453669531234721449156207684183677657648665567187230986991800277219250481585375574758146315778075991662290234371152139482066039026806598390417750203614057473206789578320635324254779880767395827021800230640083249926967842463830015153538969323962235981563652574149822433308207783060073438488747175588536745644749938581005584599988667686315130171727678859956436684180803116152168407116411857918912979657606200784131731069398971707433483065062386966115983467715082002430625961094487049034779652362773976231875715114283703252779366197677163535691063867545210548812596949948248941441489215836870376869400855914560670676627623043919818890256435962764507692579314316179440436627499324093527680194644930920032724866804932539735869362154657618182046120368663474345247710207511018982887218046177628410296393153273708407124411526415251513419014687715320986448017404617450925089062471449029362779384456473191456420077717311243345279295679758725181833391560728250404559901110505683744304860883114137178647697191572977891704477335731469916744241806819349684490807898454904832025428570982428352249150682798250966690821815210533261773375639797769313207916936360953409713110660018835167525953001945438176049348364186423932885516291080310528794543001484325654912575726706970679087649298390173649372593512593343657918617282937039036016653104946739198571914243051500343102747134844245302361319343969846244425751502116197122869416821121037721291690952594914805480568855071534852334246183039915432770138734768141711837079074339722721731968633152582997325999762043708439045985141136941126095033902706622227251229843895662874650689425774137135347168821130815009699162222176370478415527876407644810138897524569874832715673769230152263960569607207048716090379961823742536984086048482309537954251139163701478811698649405487622548098820369199694261136659618406721041502553454813352357516417967583597143741135663061455560873652343092750826065022575489167120759451174716395144396092192344917693923062718908141141583728801548130194620298334374211348826317414689653282937622298890352137963015276979132388955657734357791573813488164402920487441222356203070922825170275202267142533441765753931325361422156268742217279256095448805301695207048685841987829214490411579871164050325112233996442500176747173737631086149289246356847397501601314094905568534390495356983671907617300445503774565531475744292673808294923016377686164964744952206460928407177509801254700219730469282061059522286001564870455474412604085544821368039739880702418227564984589552050989818743415304124578814517065508667401875176986986004305235958987260268939277019401549474003965039180425054703825772440944863936832576034206717836130666239005758303496640188488711912176463001647764304739022853197792212960173851905404501417892638495410295096255814951334441477146734844979625723740309340531521399537295678150278227458542359879489999943611099382868849775723433585666415635904875016769627070463812894059745304189614618221088899010706383908339610487362750817235363014911847529354404479756358438830419202058733928544875085373151900922038405127463032916723882683108154131183556980501057862092598368732578233297271976710361070959110154008602882621428497979375968387613075402026394912003780729733553315370351515862481633643270464809919192108365161320403792122600319152579998090524633903200466942518752628514719673068009860035630875325048922073275128385093493358270995767760898975624501126744473093717960696412049102396622620358481263564604705299285701390699155984810136675438963693245115778144893078641871774502070577495292142037838105025788261431887444299395496665822240927029951374965712532793490925683948739558083818889648927031885177180475001743438700567318496263264354855850558022276043864845306819615760395313377712726825743650861437699024048156265154283992113403157964560680765898859229626962800296892526507476291087581618003711240448466658062455865051479771054097462807606554133023815401686700127778592035651448002929110108265591505311651384829496205448811518433600487781585676273058221933246208917566431773180142384138086662048266097432209049056892096255735678424841308854224509132557209254631153848495476633502709631226971149797289020501854931634025070140703273829970105636764537540232789876568969563021906693380665128353123105623241635412632842502869813773690172122448247225153855560321760698894432766469845420453581833266993759079449136906490650745378484931392959649879808026236744794552450424673350275900044873660978609464153375005681377341521920390717509052581563106968122203442235577174541161678563196934081863055795354358151181683234685277935444613497784734481022897647914869825659538561167184396569398885245906573347711985453857306602222760866099789879680829345076307055620344920333652567704056099484892281699243249934732109919183552763556354047436648610687249131507031006394183155644120571424352642002506068529091390963240746799264970630617421273105420051253152204096946566218815033883302917387038693115524537575974904242838576317509518779433501246075655598962612319950390594325476614586295699438914084441016974807803655220482686891339375406800146919394710063102574697475411483808757044591687986473583680870044330209886117938006944181284680941115975671769715542699656306177160659414399498954580975860569380601531706080368970100000306473220261072367341667388361612951992957934544962015650011823323604824903592371066070696657261829127298010400973714360193974567790970049166693215989371646157170796881919545356268783574524290380983143406348230792963707390052517313280257264839252807022389363124686831632272817343323688371726301365512905789839385859458723285084178135404715588091653373012725834916746670910194436178069024829775401899274024789994658286459410848112777956644836906557021981595572696767149385052619929917913494355652387186993879766367045374374130951339290489882520930280742217296952311999772222187239906628645515990386451677688777653787613966615467490855495900240292567229823060252617550324952756099025679066952039970046537041610260439378148197689719532559271787733775436287398509805070173006996200764069747223831119523383862449191649531856173155968188895010045872761667722780011563012395347585078027749584361219068107825468124922134207601522209241026832357727161453600070813406631164350197539165270674126251699258349949277761019920023262081165092050118958242197737509399116374983406585015774443364292038931502385932866721605870931918891886714475066974272898417371765199031835535815920065722988474322509226661370601863292251173595967116072521956896368797626920417072241374251032625578876070673159772035358737953153242975542720902232447704476972323906052166422682494756484157425400320280303244810349588560820839367025304647749972423850275307419626343679047002534267270057952829587476031099592415647501464316142829337800668252106790631449730942974672362201526705744444775819852036156010832500357456085850087321575946462546582602131918002887667212887609631202616730272188378348886675032108279870469409372028926369115956591850643464113649615572262812373053626114611768519042377853733389546674855603169354888458832638943231329394126744879475248638710950965524134578705190865376652002190647108122944549807690593151879651336464825069290405532937042563313472524767529417773801696377453841491218867350823209286596464453516291364802753045884763484743270169045150529782343482624161457036003817290745835958888714226937577984099667560956274785284434221718502649118079714085272611986109222451968603813445928479359988861665893844140846607848528608283760546453059865217717393395782941312769491806033647676382805083800890522913527074968528033454189619250680931325609038357196203409705850664062786081219461658377408758878050735058605475945013414099190992220890980847995786502878291455330812090707434562608719372034753777356699394371283680793334125271323387552630025840881858633193832328843083685103351744571434814526671658448439957823564064756793691108325402829754050900467236097626348625227072280877516542507288091724393074244323076953971937034080999021227560977610593156124847997361013927340767288732863699428071618735241848495267374132734918940819969351333523841310808074728575902235060859474734097290677431382082891215950381213805037842824901794600571360555849494751291304746286111702828348813007691439304831368120993155394442594584978241809041328553664775215652759853406296987789473880818233380395617292923622908177460359052016035655182879070403489281683863890190893919379231715403674410223337696502102039130219025460542671046060715844387752656682544610808939244916895321307722897443561087671849969709853822763483585660090742032989778667001304051770467220493454572610242561029759615411213814142947891075657776832511206957269082386977168290660900535440464402116012781643128283783703536248843186306928204288679092630321901201390117688739091261471453167586524510650544257755003422007043617128620313362980595160475608711820666710032141383479641842811396636773809623963086476357158593017922300699975628743626140851863883046088608233010811046246643834842425814805152531918153845964207022810534409114879509607000379477847008344401770970089029994224629169888899273576005403111277599100002045871354548820309281590665992010142671033381076964735817331221212246132830317739529019006779023126795188525181492214497586994088007902450296151034248512582336594853946553595883958804983577036206343728178072491097285394987658692176737184725834039348652427294710403388993563908458238428104377995828602676523329662632804855167763284063862072235800509973953470481573555252885108964883697997955561943747195545879435831082453743332702254239126708034017883793808355773941936424734574961114579566682898454340760517887316020638798887774785798157922135763195692289978218544376345161603163895287705848235846916893123702316099312395054130090885991658362164832764289502049240112013329446061313474869779501796180051486136507492620783132680998418614329077308187712558568356094538752847442992356508870618077716802068815833859234074688473959303057442606782826559099850193095096574246748183967130518093934961223798166089309105025227185125636946991248540036024911744493818548959013092249413493991895332379160543199705824907383720847932430348239657368290724800227979689937078711378517204914916114080783445532853357183941948639865012528493396646555224694977653910566539702587147201942551499905252934256506959887457414252829350044766030479800590127111346528165638471004917506024757093881318648153976856240449309978875511544427419911687144135421724031247159009076903219005725802321254837121827580070784090429554386915405102888971077806127785999698305050095438927383819105503330011507796585905353923406164113245652644228984580376037757904800915522424225321093397517279274733350441056899902721677121022597044240846500672152150464195699693454624428328719682363648121949403357078922132257815207842683256228979936097549001449596957793739906869588664119386949456243630154032118562898515357503689135413662532079277290948396377785399022393731714578453454423415657330281286874640841996911003600723582655464108400867575582724329780712917123865987770837368185594616101707409674446573352799881195360617696963632922065822019425282894964529081296782790260400590334734570999835805833559634317256834008607550739320345630378826988847245119473080397468769178110043724997561360483652905569374737295408258164482418295580321019463914925830501970009210135351881471591692674220955790879805312751682002761826091574640299607761738336078265814365239346440003387591087266705648429048142929391560452277809213881638735138866930133426086383777203511038687765303310866693315288100833150038729933359060562799229193468947952091775596463890151464656003620986150731385030890532467131438556030721450182618620720411092384313244331931572394371601279912015480621422808469083684192677842843985041808466262287244978389724444592334351094854093796238217757931840392067440787795536558409093299862142060196059859899620106393087714433202513062878296330609509100582328692011999977246889274970691617287250884573032969296276247104582865152978126025668137640524625899312403378339439224425702721527926140605995728649174107453810607998551718287666978127105488813965153416349637308765481408088730332651091527168161964389681223675717478636383700270016124971139808631354734509256969055603360259435612686615213896152064290316955773510203681703689916145952854100132684088749261920753979172200965062699272597941550664216835033422100547495331629334968661378780144302051446262841961957564654246352966369444863399411235747803789145989284565354686191638792765681533264375303491971215197939342606285721423888320000998336621840221080767432934742067432170310869762960343143833692720365099200307008393047695482391880750171594527961161045595439811897992276405149642331007348401596686664063860852922437611525822518578766182647545618607909290654523442962939100925930335833256237557653090454965803526406903409435119357309102578650566009979804324456226208914891137080371500607421992839873645953871850048475417998178521679304157269121063636498369461925996908119608273748420948493691779354856043694841452567462041669922029537120209295641248539343681591336989991186632311534810620190927450222103414760323314411838923642762107237341116051517377607726640149117445222151775431645118547683775150069552616886512710229443190267473742120481212395991005540574090961155217722587001081957860433523902119954580804104855914343052133402350801915487574566365943215005159705100086920050034105592219068537777457388261460840705747648939999846874341228511577153580469458476731529339022524709250760257704245762933184301769466733222658801971195896436829215702764748397913948416196077865874053517708668123080528112555131736851515243168112725799815556905316046934045783620943552261197485625365222667236951478432815650697511512272968607786727843315103595222519356737909812515978461667908267714032140736836029652083845635768832796760228939554943234857705790266600131250026284633203255042400064836732312626977370473683189375347254992748080549763070273617434544981174560417103687090517401537976598651342524748298046725302221356768493203207507986294004514966408841249976928988921695573334391587884508768191707839340296941412293698427357088853792365044282373906284458078545538455072836525620912430044726304944862283643126272159878734887505364537646148209923568858066801715355975242009760448078466031520163050088887978235534594564927200681278750379143550547939413724649242831575231445244286771669246782053269601077932077002819614938411218005561833711832487304991262465001231701220457557680169278978579655311811358949652770214888694286514181027199279873877877028743755441401358957959060571719297757041860728458850633363310593467931844395285322914074855538446175313207557338385946731152033007996863508073135423773651099594199450784799099972860390743849320951665158068402594751038100337610442106556709118433591563518737812284641337594282143148089690199036766427227199650332837705589389440153285142497462822926013518904054876946143797370240933210997088838285050074082931358886762739473096853510551138810042561338134006153609191982264984545500789057659595938931522139370522934389871646049629861513890171522691989547616477734650079020194888644871711833389270198809311178694652685743121069216336656459900439934735902643938892649304726882115861494920167319751953884660553703536439494971361765486686378108813821477377908779465549348630346270981821525628133390011009918012930431639556466485976080555970171103119995778019125344823882752118368279694021696611693745958778205246185082454863026309150075108566292660969380006395366084360394416238362393692268066510617754426106833198454970955332135155016575101021652102076339013190863705677248423106493493170055687793920353599662545309627155087457687543165528823842920395788053852093753202456103386552384395575726318195007512765517685717765325426847347637973039359230898987893750407763385081577819419316217033248241491682244853631283485425874539182711956166609563525726928315106210038215476060998691279654480444526816090977786382668282437847057232849114241122474966129567493179446713332576274332007467629864523261139644529140568401869439631106502700138949611787023378690417999874411921727127599539154367441565994751185420223981710266998932869565747605981738779464479865516367275268656748990622169925177993783806451576499536127842784578790104256602063976274187154912860002277262549412333297487887885992140452277527334988613737073797978873265688972732850548186380040482214310157800143736805219917105030238723267902054437063890843237194589359065840089051075165432566974228604208589628928298156052290726451541413439912046418828860877632899701697626092435582870760634774682170544102281867644505222117066594575721406778625814777858265265437881737034031870173682965404508394883183357540932905950437279352713870085045827738613579199717489218803348797967924577037366882146515093341903334310456738013857055791154680329346834228238111349839013601499549106084810290655859453770974409031404825135749728324194683468039687735135483644970554597075479355214146626428269900969319758699984058197468641315293221712889331183222401865754366962533051977354005191502245628452409259826309885596758613484895578855902265403757086280633202397165434150389239341978604011532094179955143348705541532425722028671680150377670959171625747352720081556787845457358759218369704749047311716784633971956087902635638640290208288973478804367388568132046220565714833652085734158348277815022267534524344447006053243438963559747470171748289353344129065585291303655610438992845291943433325936163152501564575848376971015938174202525139543259906884739603379178015720899125621900652168665741010600100900569931851435310506953931322991591178056074055843795531091670456165828337561501389256530314259955644708197039663068127807859353774359748337983455100924958239889315057566103032850946254406478173926520620637646586887514973883702042965388980341342118510423494112593479945149797926107575327652940150071208467423236898557477847613870506116572216636577407510998460729188073480068411556327948160687964338763976623004488062348636337533058868269362264692849317059374812317223379466986899087773088166666213396978014850124765923490784996666305783340009466810233772068157005537870370056987402144256403458769524212909518180005560251408857264658473425155224107582208327189246629279919633104373722287377010150706172888440831316894115329036479667706309500741143669380655093954208578591982855392944065606681454415004499480578184455159412133254992645988365395367228420351671791689090812578193698399205356221635549841186879571445040767652057084980443412884731773653072836846130598361673089009429908083444805927500619861251334411030723291649931282647523927572612434110432107383948857795349764943107393606938230503146113303350387157361491577406043554629591395375976060861573374987942601054126941728089061672444842661856687072494439397151078070136221238199209668368988513114071951253647562526744477558752053898967099627167580362076973560563239791059987808661153103291635440004551427994624712881828626983860810029319950759158652994320788115577165583581598003154828628309136876359276030183581505686145385730346781319911140642136908107726330025803790901300465177787024527181702620242905116023453903269174709995579819470553850128657158293597523088376920542590227473459578233692961467413381809198251901791469663474500080621926813752358226367944119455401775906507222462073739536658787979752443242454222375371144935268275763485955276447508689654386020649861240526009542142069101775234563024497168293405479245142676725728572041938479031882105720344457755753819977896521694429954372318702330423436463240754308314685537031065083644284225484670415491492670856200211172271720081442684030181847394527449868924449499936156411064033495075034562818994612301641432959447508227537478925634515927210765171570875972007266354998474495768500208308655296557320499536881272027339379446926090466333175512562592190954522487952506587054290714419351728817532670698750715545441164797690714077639116344206701148095856721762124442217890486081062740178053587932733665174006962326458033837410637956435770931012636004065440805711990738501413278277501813047592458175826540737767149688040392854396246115527379292463021037267853418039605861644911471287348415774188085914379468519295167037254521587684702223726385654225298779791166789886785234925691247977665841245742332225126292345832030766188032518630354210675052489159321990284152879918688708907247401070103796701143796131542276886664968634617012537956705074906153630841594717579637832655731140624981137144173401846039586908290108598298426930693121056326967465603846585878605056494076123208509678658640633740384119354990432814556864895312917332278086939352515144541097820895437001212435710666033299937726373308716105397582246349106318812507529523118388839135874115445354257749742885362899250978351939462002787276377189059474082842280598745395069851193999517415769275769800628188036198452511798947485278259021399701510062286000606282729059254013964015220315583796688914666721391848695558213175833233317934403896195959126783450943848090452783915749762975168121388542652838778391839387384629980758417655613863207989371384632229390260847991736110236919202962116542284517213734575150537533728929281302549698146529452863173983732067007412238982473225593212731215392895028902486842151932222967972872212233429028753759037224453620576840066004556207220564715457551171346528891820066371655111309702585762535615201593915966000752558625825540264434009883518761945253440955770033116161224370397384084111392028087319434173498655527722687715969609676718947059821809850047868545101270605011295315368015267915775132888386825734464152063660480186859789271191644561094648573030594070674387974436213614893055829574970180790893107836544366625434177411846223764778986033179352421356492931948383120239460719835632116892991178576131058360869175927787351753438218896854987192174538694244282879035142325451625242908142912494498821442476316950853823346521738640246723500410868512722888191008074560774473828659433467782668089223679373119454695392264217606806907933064463757829034862166720098113138668313402808816932567537892189673489165026987052366730448848555637398525977269602885865446015030987731034857895037470820391110005283421155799004051072865791333625023072034128962360840556786690151689766900681931133837144163341647807285420983881492045268546167706170858404245165707771083833999235952297528211885562005740029572765442834010133873109388259584778291275168509508036995567825125552145882640796910734067534533730087211519385537963512718443779666340283551890773436647417745587892247172878140527755638137920522690446824945068436088691866893050366804458392548388279573145056040101486113598899929706430545524826300134395741077529581961436416117843243118440390860930056504562641560794964750934354630344925637809679912410258540392613990117382853862293895018099786044544305650927767452269548052527218280946177804637413421611641136914760805241032577995311730273252948581315100390431561548063446677209707836045384512642351349126324219779234523127599482633338781029320937974660865225269824955274476401058300588669615546701318692018100295491638615612522170334523200617828939669200254454106385889564115223000917102983339007242923860540649598803266369336532345038452292079288183818028870797467807475420128389748570583691989305212453819412344269606599306254892840557542905731570256668950289716234638446440439731723381474514813582394754831904732342986602527822125137214342378236200457348159965522518332085464425434059070972616217189405638798713627723473720309700542180923599671333038878755570321722478297568151134087049388639375803538425158062951917743464314871624292257917735532906820252311249102335017360262729123826564852073629003957073979061618512162787946341248773624018584940618241984715002204210664645363308818361576955256717952600882994662973871414456846179616198674568290354604687513108064355931070288717208479510540975484622922226647831628460800027972135709142677040437526300538192718708568165703256619510120056311292393220146016695061117131708421841119048211992926755452959682668474366883671348023765208429326926783208625005711454469029413264363790637982343211264410895888511875781044224404283024465034579581932008176764912200085711165098227270245416846804230798674732348112100507888205395724551566925491374964584450178368572589791884737980881534288810050630832061496263559950279102714886909383688962298635691502380996274034957057536754353953888247174350350847529214918890867030710594540714007226962733809378452398953918272840050353980305950018833515689780892194610639075637554350223680823776263642041443531878800700431356121348753468400595636052747634991927128144315895167910305014680990316816530782274021632026394729006964101692133544644315290879234060818489368748863338880991630193885631445556274209302295129863989044686649719325592575148551320098463999437827993973154596142307032862029366837209021568184714914682623969990217280759617913021092359097917159322806867977778630405830006912023847818924026984105080666714115451172020298833808453786619994720012053840105533655820187628170138928582034049555716848712162345672294883542247706793871159496648804029258463184965722492404807542567748370153307473683153719139056925789402585071167802482717479891215924136619430020971277774022684848894435325673026916099229310082662769369459322560801564274931844831063547713545428416184950165993074617383823001422091885061214155691401212367209184937528541320423499337762698524050502398314712176097728499587063533600841471469559959853180266852325983265603949404198767783050416041180748675482427983811071412485787412646483728193589292390720605157636810928076107893452456224323137349994693325810557081779182528118566844291045460040316715924004565558478570818551343958233945519502059652636866702226699269928385151028352272115297338092260227223610324496769926148417570497781803760814726949110975675182263380844607076849361854730407432259482131070095566889760409002116936838191695820205603652132014910813330447310919244669050560049395397221441487381523804807896269750978565493568038289130009108698388626514688869724411585466446253863243483454541886547231186269824385082973475208831607644143759256809069970695804279550385258578877683439904860734244180408361927234758776680853952925664607174591423411276741902017630514187272262513677209895079390459887802958022780814865471386399478483930337548401657266629539550864289333181636904411517002027626827833216533370134614200053975876418052411175782369822843479140957713616465038648582220678011433378676406084130026631512354534563709408465131665378141377803247843449736920636258544770043984951789105404929200757954043430832724408023595948147335932813368132117266059772290649134733717151194347958883829986467262263670152676093814779274624178757149129048321154924139032569675754963360395167502319086019440736767715576369400600938043577812651992796309515112828319317016265159912107071344741422851960586159615612797110562279528147807177954397119897670587919250461587190027751720485093835542188705483270583024530169919396637672854351991097863757796469695123339811873651635776188074662022132171412710231858047697554150534096571415334806656146358232452061050490850518777200078080459794279568548636111405786295543643441364840568202589794437036424744205276418780026470300029405293393099788497224468416399518307974939857360752600668220909688090257777872284120303190654700049181498058370596081831736609177028806831797040910813808122870491722005132581534780707329356252430118159287742934478574890283528764224450298427542150393683238597859351682972394415675461133543809759043502732853273027194374890026069331851701699803608056398741233702360404552324389531077398411390787587703276536397475454355874588487644700237724567283302505830419315116191012282745673670219207636529836492535607462898154854753276125340987479394149557932337494856671427093653364514716353958953414738794369679579954147894698268435096808302927592194153737261632538639479836628720888242966445084929093275192537734835986976128889840131483504374556924000494707185224007053553836224887034023701678816186834052029570759399379028885309490045459090309938902852862293892895264317219372939232793452756434938351970214766474657418609959296117307846774869985201524675910790330288976300541549359007884779012240965790010755503336588952595658415957265996784226142172943469273686120882377987593058334218075130966777440246492093075529525559469427738753895175051235600489828490608759511609958915828577324440768137809362426278224387273556371135448277055175266133594465212904816176270683054900321483521126604494809869423719733152008706154427706658361714798644133495452851038259436781754213327023192640641634062220652693344377991441191726722155919173155361161551205796128359167733236831175511056346717054719369843541566660181693653852019846559841460381948182318118028977709735998950164223651873224546327909724922565508445643816368684691766050229418093196201613473183346762054836303207739410650669985216722469179158931000268152081055826671528456250254165081121871561877599690120732783467234888621678352819020744713336372620924992564503668976789583750081586583790028361484898950704271905501695782929702306928108360266532545162660486449721993228435054610639191124046397348606462799842225353583969855668951430223874155169404682760437546053801589052416128126596586492877451091441057591057625171296539962633350110814629611866283591045953052008748996315728618224982004501458774359650652275459991506489433249493693671634801877985455750430176018660941012448509075986171545374887742547731809243409356263174722504042150207289594151533823803570363745898626789349304657584541613221102161402356143273100614076761766284488811698246034902826419736299980099400120975862519463374859135914139374752422096360180146083773235369124899212343836120650449571678123436883283626391849974661857014721930261665043671844832012649193304000818895601841176518821072136265311168948861301056100315546596240157741097872849603156571137444668886036749984943573722647479555749934845520065260160652101515909407074298034879696922292135161283732965992472690323906032796806178620964917214132743936279334895512257432213499093518874770283948680227919899625096417529707817050450744384076283447201048863940306203706974547374798929356282652876918117411406646857267200913269971783521562211267106906162051282284002963113706617095639020731095945517261039373686535224935154849047049060369907190271752104237745235477402543081450762299746466947068873002592168572152550237512769253329804246104712322287484509273076519591826913727528399449014513385011450841785136338073093174558169075168703292556302957892036025071262880211166758021904737247195459874930716168777719989271682508111043168147472782987654061805777548210520299103059385605516358842631709973758012051619251412971375940142736154309243078655593009629537305774900129743356986962364000919888362618703092577964534524083708954416037755377663967555990707001435259206459463789793408264756823641387991259086976651698449148771687023778539999330289622366209285824609607584609035715237642043853376987714222307609550710320433344724257201671215959373987190444961549632233632099337270253660335567418701212587284300824594656937378138759040244278973185993443639782330694056329975395199146536432303217428294915882343294594309944833899862492095299378059281940756032384640609591288813816748517189467414858809591198902296366520325854792210095965552844093553480569333860922900248502963017579305466984686891920686863389226779364246224413625244317097246031130681077296505606764864267015465305148073547288001702675661790979268830480927789308721889152422451891254109470830970881220978416908804202946122471395108733160912490476480383085615907433543217676548563976154644150959178167657521423210383701275152257908075856299340909411909851284024992770645387076433204689441548758014542245154667394955912061025302903324718012194991126704113826166185108118129834099287508207150509153643710340999229736087269630851182167233294640025132898433255219047347396090299371817942633798866757757157071867786486500338430171663833201353695440379110870060730776999346147835083639317519423732103500176348683236511996527106695134826307059724287282977447649085595915536874000888198923896959254912571036225763380682605166031995289889730998334240269392592761726708989888728600445449394871974688715721935462534996623378386655673967761812243133385060544886797679531984698296904236681132717994160280621404065905287095759391104447458720999755832150022262739949628436904186192290966808340303852057180025023579021187821196611028400084461951769282999878294035661912722198397552745101019941386313263845829921545486749687969908509961266711931651213110250623320386386943483755042176265119103754465193148938301882527777959531253412922603042074674762937820641015902322853688251393727899178665590048615237185743922748453286821074841815398306358712802996502812624880278700770098444499720285555756307318123509701804634751534001952654322822271367368802950460927375044167237271012528511632570016778037446730129026153675937316243737874703817394043824055613368539727857626125004857825490867397694024250447713936599280041537776362929559696277649567325466909383840789539750137192020671662765684005591889768692311020928272935785598808683080028788292508439109657099644414949202813472928284186315379220417839629305827802922391884570747183654710666671183989117905885755178270753182321589827313416715291730891913437068487239748165927596875763803125741860778801234555444517392730504132728989924696794164385556128296946811367026317332540887666146675885949350399306016472308787302547814772419098547613038184877434499483356406376243963534936594509673320502274731876451894525126647169680958509457227564677048109309130724792440840562223624503556824858537124690620959752779110279047233599144365721901905864053636356363410064312826633474015399084856292890376810443273896541818640212865505932665097177936116777140971011818440296034662535322973217272025216335470309899495780455311750113420689851173615199423162941777100554209469008605813233896251725222250237547281877153032455926034901205497274812584900991315068170587764335876015595999610138278724812369873552463637236729064084438146591116412504148993073897903404346024371300706420958310911689797784070862056178688272604009386309892764811682957952396705987736915522474763579990072856191346617248156799718567308507206757415761876958611973588816412627585457759948604813452275202080183638833425559238005043343685469443804510118842326683596876631859727928234717176931857036725311989438241635063622963829288350047819148941515324462121898236645367644570556866112716633856007486637207668276808654785690582079352306813561397687271563308023937570327640394554723054290272178877194623216866798988270245500897077463993104613255862585789733675025945161741092970083736712789112164710154755774533191864647795883599281286168183523244780488786351092863969969839373835527120899752174609101937946346344121262654763143020419622325994291769079501187911063617218046133200032194247001729761104033829923353378024057511590470314631295735263148732302840462017011063695192423369189791652526581954304868136602058205938280060716810105496654675021670820944587857891431981986763218626194778881119501265145934577134124843626170193126313871314802732492823562021912900614016179126076747783771564035065416538046696608192642493653089424807728089530317912475479799520291463719732025164128405788019743222588680755103241113062153142644528654982399775729097813120486116336348865543725432154195234762728481000911453673970741979161389522363866443661409585133996276405519317849841929665902898683205909254135045020845169279568668797768332098749737929216198678068231157356421624943091161314388201911510061924144215795012329431876441214052320594245627800534238205696097373293954173442007520327706716071757556509818168640218073178400583322602895619709587269211061832419625700993387933877026553562691319278749418051205609288030728699075657368147142815438762693568035864155861208743916949489696388819583587999963277284239462772528245272036742598583872303310817969901408521055615879365503231701400723985974443273371756789600889236919751550766342959007142402068262166058434264023193282264497387896225271618944423781181773060311384278653713164504743360885465063257143211022273624572891680249842858348985417727664206585670541875316874162567588026080509739797042330105920118934966524345032739859101787052678699848356402799009869877974900940235823956617683812321967094084942383047636000302340037530966136320913552017716888062797955035052643198421178507083924583956816346083221793515603693885266859478589072153116925103758406381001858706979690705188613370229708467498644228051116697142728670714559495658381684219744793589235380259632684040557650630929286083899726989408981168186625422255928266747673367447215885929852010286968553300856631909569499516428225381634420018656204877353182770108391098597558196835350674525168229725278224677997523071624211904157504321302946646490130524396745779749069636945955617952266862655644877295254253618481557273021474363782176052438788069227178470651329740833509372316825350043135126005285884189448456373323119827793406674515820427068768207738387787862078964197484270747596990489371228008554617017371128533344501968631843662914001262755718982866788723089968205236185004478214233984281325264500090255497337096452151255598055018520787037352414169267074530550960474451713905026258085731754246885900729069269372569989820822579050668945944864693016621212482329823567636946828463823955522687946249756422041589797956395472439199119663209503675120649249286671553610169462851297360412214119373295344525627113070529055576522478474514264927422299941967911068067993725768159123843483301239979193304040477935384088566406207286909339867597378887179870516055990327321939938069933844169289056746799258407161568304968137234835879068735711572795719044461688845402045699176583755938532721653335885155859521425714787793495902037971036285318775581679164947042052044020970070678806283726840512306723417456321306415147600382846528110713777089611615066545930802152882491408634861864473774818385820077848511070214945066246183326400696895255117836075367223979553885213421442670959756920974760919929259143007857514432741394006555290572934243886589312920184625352764793716098357555557261990951214148981464572229590744972195247305458455995279800205779376545977254654261910641410032968542328817617650624571515236074199688145811285199813350165604429559740309830644578946161521425058013343390963970220224975575389465710679125807400858209676860809366706763039612401469287326514207564068375333706161607446765049484210018717711073003316897577396173720992783656184898802652984263242197218591368122187970991410774242233227984325492124438330728928666870193046162378116633365413723126891864323742822074163985568783093015440664495662726187432822481859231839395192236231277996326152741087027199890091208752849423669840341167298811658557765558085454462201921267906283214420377957022356198689064478772320960527915527316286296558529856346627301660729509063562733265987333403670755658066179893374005929854347024897157067146739681476893681140004047017048070171952067347334954983868751335804560631735412152126236077468482901141420864908149156020198702624628702557480392469524919698352990090925999632375599616134917990767305235284306689158553266887299820295547181977767205481179836675548756442131846929231999746300364918035555721320171076446682245514455131903405968724029544271639152284733629304799751351447242915653900084379036001954957862785173633087352932914198136767466157630490978772873959834580047890812180422247621921582026627814568650314706326675806628259763664604892730732748027259560500490927057811647313920854025460246946827706670278861629967610485245059967107813410967402889906755111679948566582536746813537453669993882975530402176217821412849170342446644229266992630933485342410745132395521829073547794577330270968504027685324053717920009873070627479648852351020796408930554576765647437936825198425926070837184734697903788348206472563519544948065368373394159400347923548487074684694916712413604373528394851180620572362437671868148891797325405799965293319889108218990418254226862757893855841533361933895136177958413947844980112917893237373296153817233057432429142337957293822202312471564339118115804439987065406421747249208894810337064523185024179610725628588407854178806367740948738432284647669365518934346390313236916657386628583885911013936248600459635368361696848878066273713977389412326986878610912370224851183487368869791882082159147917356830465201742878969271965499373142327570115004992269690086418611484591294122714757821227731060117214541386860926942712008188819050469462552615239804162109826712455749028206370486395056949920627505835912679613856002892500847618233456910279783662148627949064184021613222687248421552311985394259833730677616972823049041257850304023986340056866620941311285002848525320769598503025985202225914996888417772563973585597273204817757237359177676038687541353903410057390654274848830084362325240497392720745960521365931196277746476803530640183388292977462329318657845482758392984111853102322209026396473078210225312263984678484764807049744911159555496855454548940245133970803355776910473060967384874728475164151554608223259778862582422922960081550131740962823993965372365101210465668847311162762183602297063414322483511578198594691067483949353299917527518420406939368434735129282582297922898760614751991661504515499825964757515710346488165030923821050757721043280981372870860259481770210806232635362851674844566236291445317276565366532827077058960632807955200294833095208322195707668176166321447506114838654570489886010848394583926067342109519469612127399329870905195940462068506481294325263516282118017258397724913900531474552925836929481932580852995348516702807354805042784427224936281019756317836129890847301209082325318688326175744791735426993506175284023907836511388515351632508408258983525001875692218466335063115175280316583030856498009228714408770506018472388087750074455262158457369706659318458664769209520699376714941513368080263575722712072971372168251001043641277685245205495287441160414623568877549788478405665920629302149787448864870298644976183687224640374164339784073310910844845449635988466702626914047008276364907152006945809946349011862798087747978587935137861860338546514060506037545915444530634979791332579968748989541847151964901880514516721533942851334374804893176991294851953200550017967589985507583177637423242573526114717774769952084112874997569918390750390527376749421911890867031211327222501644431507594582728003591154193595215872490343829162238358590293583628905288883753042985163160966097709824349638173375210251018778267967415491407601104141851580957350826551496075982309888421189088657489808212673304075951394521742217900141820540257599167087872738003587591233080455127300863775730644227982679445750480453789220317872895088181768439194839990652425776234613032746873422214943284964572847197404729905495745232157450936779328562037082702192271391540686593168032176319180325422166405095421960437443545860567873812146575474657209903310197654198185262792016775074033940378418411599708779675033156704448428236640337953903362212781039395010844143002384596394563981549183430088830392911160475577238544031000836251731459794364246077805496667030061626464941447936880979527147603883273535890493965459592851491816769347481548751661544868477547107196890390173265814709583250425806529042749448136175112909970265645675766025483631412117123057114064813445262912306451250653981368435061917518529529728640864842861388951535997353912762876095127475264093132704649711202009225271905179569789157643954986296090187728105928489923666851312811549991032057418269870460069456871115672529026774147374623902871255604698556841780720500248059010076376530992042640909855490361868854090004057044858045509480446629101869328035534720697988333731808714006587970240828218161625225278382003943671531134433615625094024116042723614421599988514043829335767422928600333153884807134199295069303997973959977491877406895143431334579105941646145705627299682593843093607631634394988258774004040630426292166341844194584431380811984271792073784843355369382218213563734858752760727446574287721294169249381457903103004555362257236904315988632451352292526948870513587464826153885151817616346670407503357086962674311470904253198776080624418496401002061792887292915975796216234707592000974969711144661831050639747948085190186036043260562412294503950103344473249027800492421622148138952064959269478620749896107758516794903948124322448810790548251793392189122379455610141149569605670048185711098270883093835083566483044778886804716642939648002592519446672435438226185608167721008762050483494359158478366526650914553957969715432261729468793353292017108937758813542414584576395614297123694718464199755454902532806766277254106044518180460467234202929601640998400578199360130547741967948285697340660174427755108776459475662783425047564465479346514061702479768108162448431962151724309381176492441948257270307781502154706772908524119987076547175590920714653747420740096340061123911159982204484526677992219996333275840894936431031386646466783609717807928141612099879782291437732984431329291095776830535917109013897721524346333248357268646449505219084560636815684214063171836256883061163845255081488110018605740760147933248514075029589939141021620451851191515259550232604285539795464948547486151858054114668523375049233738417102938404686890916291301829675015939608299926724811026127655711308410771718464642034546141387562040421667313004868271616052165186767720625514524469131716018576591384089673587831927129163949757389726605070836253278877259232107118798354183709792651681744669355572015308545748945861956922957851675881858710977061519063698284877253368695877869571131174557039024792099441432860049327494875650688946947894493407824708206463872083212980884357017916734143361023572219326066261147390445937699359222464539267628503395490019293975553781144179231263540633031304891363402886986287746265693286085018380586151435960274724050665403375036118958931558985606785759049667214376702993104618941709965868306589398232271457621519346651283519771963007677222560692859032721554392260033965462550468424661318500183565594372878996640554071926808399148385797148431739264456757964715763537209707175164034554148292622857829390163472744370687905111310627945374172778378625206662631493492372155051676676413457235885100784303201474952722520886036037941748699363024248857544318633553360030515681154234788243166501616696146712674004491645229861315324666080163216109629804291106643674335518713777230554967170061878852037231160562190172543246016972875577389834536591397297295529979697750672312123427260594376083098507495778790739392240226945399946102733797922213807545648510564132354481158512178599024198294167121895467642126591654521468715018996056441032696782397384177153664638863109317484455901744178434048670203347956255328939891057799066957015209610528356788134982714714442698604427519221665058094833791303497748632586093165569569671832224208740999887641519029999768337016353687899741581298218235654848677233250173426095913337690373496426228851063123621561261761308421749720629573564760146343581313864586813325583722492428264961519909084780160376495753753528045651486847112291558412372691920962958449377100797609437406799698971595021635582493961217365074267947197759401242303012895520473713477544693053023800513684488898721964185694005159426737672855186613094438223932252948199230584671082166764260342042306549047371877981053428145175743118486035175563375926758606047561679719147311852499791351236294636655066341151989770141880432467130254181013668728261181768578087973700824467799419100122150226713266735288128266926206910674468862853612409450351660608610603662177589664414292255912078109882165651006342803867902135821848467282582808949373367963634979719047879335681402546300799349903754405449474595969352960666723193632313762809752757253076883630751868705247553157667657164267291136104114534133952254972623647949501968268164702460584315241143645307819829681594660696634994974167365215807811832094026732517759918941814159531766159089419857898216062371580804754695902545844927054187678579656085403983505877512624538658578809427955506316085904146072070633969990650972142783804158488358379852577188367790453594614334764080404787831074668494643029677168985933384266488161559171878018610985225307914690882624189264834161937507289747006147745232402639296154492997784458987065155210669892351838304532233400856572295422800839567469994242925829659438734511493701814066756127423038498169751459431518494874640119487318197993040320734811965226252520705748783785966908678938832068022559937534259232440281061287566769755285715111129036158402959683077206152518272165279300911360008549266260305149171154958110064319692964510084929932712586184838034501778498153058162768753771958133891115104656274023866253186329741332102630899492958474627820532885769823171038428536786386052017134363855816388817758723349721819714866102533631395242352339962258594903728706185307394153430696653961969962794438178173511863661642537157650014249105777608602095938442052119650235000697721007886539630816877344412696479636311900546056133456276447002540974812923527855532314287948985934761853749251138171155765836690967208160852581960045280724565733809016016662284125556064091471981277898240766220249012937210155991674434188020102824002286078689043973551619253817116546027163274905274414630729305325919032176984419340783375968592592424612693689977583554723933996875984254550066629074998734185173481534318750741316455318636959166440198471191563678200616585997776879347566025577950715129917119967347687305031797669915537532111857693610540440889026278859685876706211739403335256083251721942313279218023032968085274093575594220191563479804209007801963494317838835855265274419123729894916898446679520132112851922641851156326481216599632734201645722063073527507003646179870552511304585606954883075064355141601877082263595542963917879973138003850268657852490329089446995566752501091858457917038960461032760020590945688074168663778218502380258563398655359053895535239390456625360443317813149636460738646777032793668841327792932739072435294903947653570702262191037171484925351700658845657231542986531947375113101977443168852857577427428495592149848568077429517644460044517877315681529880756959028758433017875397066692088852688775277455947700712333575549415419490760252650772301124257593775082568253536346744649425868634571105229502491504284320172435276764398013410093300869378717461384715522269330108266910920293399122740973311077687329923077837975341598455347164350038353329155008716464824119207231124775661642558967794882527036259750036793681565266927501072045621101512410328793818831518849630687684605798811148427789057652132806011746063521550273960734327136655065585697932849144776674420633825228682319305663748828192271368083793094253370672670048402956235870089702669323049341359612619201558969562636405355485231290252374694388065299652287223228535885551140276911177695151722365393151131310694381358833891954180331602379667150703919019588867159331898531812559307978889672477779997855255083696894269974145547362354560123918156226303863167208044215537043395687120190003850824022391080260150543313361476636646255417801288100397314705256216598511295249098959684904937900297546320186564760427440526817632290687395159830972989724604743040726017134106599240933302060865437541892139617466356933938268312770094098394583063432682839168490109270487625734054949098507681045930441745352708232123672144427828074316345367848845615619665063647746601499696948722067652663824264780819121575778930359081737997654446028356898788015555982399808400453428713235260664156022044172855287356273183695295983385517575875890193110493015304283034369088325146564945586888206017659357111615932887055191870490098554088301979642171123849876770146574667300807513452287133173599701630267601879330420839862028548628640668956933385963924666560916275644936049989845462404393406340553116730697436307387692783756432930757105573264677143345256022130743983165705169120901944595340236616550217676529821228337471207830462158339019639423785881335671659498898473923467449095980059778856304427293236645835916239492889743908498128855236250842839842256906832330739450264272122106678694956448505692827603665748758969525651070059050153423486362803785095605781005601214088701666423381026520420289908374188264860566867297346065815878594153493742216282434210646914276441639620423980169329760492814528274385574397717297948732812221808732060150020523898250283851829273321299363026511713453445890428042836098155539574245110256032390098343806207820434119327554532114486270293021434005516884586433951660270350110745943166491907158178954206014801577993825188663847531620089990496391276807514608619172511104198759423677799067712032325694364135390620876621033111918955074914660133915803198393822234247827183899903756739618288356289607921128608153847572819545928489534517458286515045882116011851958157858321394860651867307726127422448456110787448766710735048529801114811788071507973230359159038582328883540415551810780769640954928560348411666638794096083657847876402934560908399108431452136618247218889124060028336055940274294079579180418841406130732483048818068737587142424124552511070182655000718518584641117347297727318048498010641124533317469376317221449152987432091663979673263560069645892937855588228485904464632937433266494431423932820529984440527273468223947117577083939442863696024172786159868759013537967016068700156319209456400061074638836856809321154463337318925505043850414004383825073417642383173378090141908634775820823490245857850930209747151287681375908805180551055471919217882160095599463844467670921053790641662185590396967223890426362581367463286367491407682058219235999980159138625265562214527609792804739625779554408464330927207607511353066311716626386790025519103873140477940216880815714193038273818394950997615198573259403175908152149521752032338777117958202881166516066502215000983739703018773983548995974966618366988482651103827536089222333852758739732677671026994356548556273152788483189596335599925489758563196001594486067118139423783179164613302616590995200966065589044945650598177284816489524579798971817957864040500505520987841130582872870470649006301546272384309530576136684521514196972744435885070369687219238967859528934368974055728459415503205686160692542865795215613410246288942120315193705114040073778544208985528389249242403638052127369125573996683484385970462486951556640363861223992738961491879244591944914755034715656072159294441809086049624762770381209952068279437259556147833424866781165537329856616122919224751554988362645337078201220254297141489993196625683168566861397211932810095854688431460787013108209382768738614482687720481660857807057357545941645029459185858348788140434337142433572051024943653128500463149879033239650367941520345992430909178061844786940504258379254416937789770518131320974180641998678954166790791469406286504390086854180085545076930052721477675841041037652807140553966309825921161920359468919919354090895118998302386182580994622852045139396265604038596387389003795048857273251566084835074008379249458972525432519947939589616578935067689786237212137439312057074481369207830881978751295333183768448110453920246652415809956602077700380205611986742796608447755889568732085767950138318550113309329841973475488992217367097804843828001187006309949067844550611900151626123853243122222801717378326587159938567022136263952526807086916288881332533286645549499234889827184173136471291827029040637613643172966929831769965534524029478863521907259679758455507889207683696770891229861623224986100458913737540589006291136694221921712016856934658529046570627815080940565846452355750582680976987874147284486536374020156362301283292780045486089782088472609487331417550171357442460267415202786361925300891703345530620423659604133156300192106554532126118243582905486522137764026223606544333761942278389774611995194547962987713115073511345369698504197527313890574972559187984000619564079125522230609027794303341805512733751128272621698527622610074597723332897554753024965938015821167063285818777194880213654151780163409544151324298764380491718283761306821962630884112868373211747245150873280587531123347380966810150137341565975101964044376180913906360426153898454354180762667264628776134281669515104640134302077731113827071687666018671842041169497706967943972105978219229758164921095072523911693002414470315427609807697487315358091145931524436233575710572624987700978615259357369709920075926017297816739041099692689116956109338923312963869187414719850457328503539637830227079714777810806462375291438473893027107648276736902179583065882719541319141493730058784151586114653441300049090755957470833657687592601674037677163594879809220717304281149471724500630935861918200645256130361280594242928834098202279276811493123037556056975755695236157502485445688373382429338216210302930052523081612301635062776703896275428753586928972767913395347791982173884074971070572103946209601888987988337864569303069323939050210491663815604841529023571667379752903621771506677715610223847829563647647511634440319036427609140267884488161278033037514544283511177766203413889422690293051417775523409704094777157648659920652821597876147749145209157861707719249175377883710812537497238389242392716410875722813301026711126412979489642942176535131983322782775620994138085958762972245542024373776221069423432806824092953091320663630673560948927464410290252332011597071343579853825177908769512435092939134399324475119875974828934176291768120232004053307477007362561354367814377446130534481666859114817205008118565932032005210978875102829859524610270793927655600812065981171373435170190124513655044936994138197051723418946573618558686309181184296086642420298809718591304808489705835767325900735393545915696066590375089869445095203623775140682230450700158544232293467247385225121841710425012595792146399691311632036984471529083597691962857318493795006095262841000307696074228659193814829032547460746918436782070382176081285657641677151822648309903564977543072897992822088193624396862695455988289166607196715762336789326411595495236965860664977903944940316242512820285382269902794992675965653179721349494551096497704949870241005042049787400437929112201538456213061661726963699472125632032916365199650297150296792800219294824655722683206846069667791575793014914195368321111257763385603697804322990349802545516670816714634183333975699279993295850714025195438558670104475298886180112403650517979860300900222776924473610841171833664437275880522142370911171316714123804256298407659747190830156868692808992582185400258734247244513492241089192818735991801951131214999938894670918026106417101020534315735874313771662035310646946106047006903032792081946022291293762596622385546477832466733450757146477082257701060280339600971487517356984242548099657536736388774466899295261776669039575484219353604404376892896774473971855083228619415274646879453824827660025437526398228486038727016896179862220884933968600294020585316510632503209336370187921455692730799407424444672163686524593192958699681614694309577636544641606254983792693547679391700701941098820436618000377365261726623837922469600446817437118832066377601654072753980992378011466665165168083109613858434700754157513351845569356541246351898252188990006964942698239383502545031603053110211763778482800222904515297598979889284936645662747766788933101528966726215593615387304217731530041029449036634225169298721557323527936451486012198571828178142413732725046946862606014670474671856634649792942147397264385046206919873610789640241695554616908748554769590167759776940701011395349902451808481457048072316319624021025578777960658230474602135143756841223313728308509048352648937756639163420240894902757145386420789636839832883802927224044389595109607797220099531246707010250347735038375255340007062184389955927039948518701966356125898738819843761586231187541514956845848246935837452389728494893311041794137336409348289404500585771434456181917717735668087654362686706511825117281688551879525012644503747560580072883331552453527925238628543250976928962592384381209906299570951398300781931495199858021572041013976105066857857834860651277232228363059408967562257297249971051557429876120908493695874216283111627279944496633434942823688810955346418020155556292893207929067781592023543431954715538393245811929545404950422066959799148800628563714438241292681396284912503362647541607522104024353718448621862130773935646547039604977469098622981323702029162529926035424141385917743867524235679883865887452037159822178008521848370285940183198811150843080864296608203996582158024717690474281017080200384116392426703742292648856530922957523604007129228772038275290966101457183945213837886875697942026835849883591554257186775455759250608624852211395947888844050400903268080631146220639818114995976761762106300178244370592868426855180248638288669982362363355829690167973765257373501848893589919792724539288512689263739605480343101226319685503974946655474801298993308523468558077628445425953011757981040460026903940831014851791497827735655512034545017090453615804418075679053594243265342036088206457003263140518413528796453630825137877376726824979916446608432163904747344219770757654666078973481996135234395660102813162607931083133589348958848223842797922554985870986371264501067565157755309626237739893903030126753975959173673468422333663139146461933178130717338725365672786494941340572016402364915042528096814310167522906323274015777117747311607328688980612722657332765340433201401467754504824021124060856168746267380585742097089052231628302644972617390320593267191949542439681877637286669240666664462538992167281271485449030430826682925044979647726986161731786547681915420554770295793690757923629285888030498422296662503885836211668556151276161496019567407403278703065026792116529305925265382202703398424350246563827328606796735301953636895135141468822883965922684437950223269523924417739728483111883315379673427325072122179322698471542341648596141902581022191175506782242314931251006581691585184454128419091123743999326640845685808253023194012032962101614442288415169660171926375565877016086257317237258939654317478644697693544317363708252785761660763245390026557395675887588073212233891082675488294442783495939801169350994326248457905278086195645967562710203075416439458999778454783042802718116599478601514095222501360756713305608370099021595521568833295067593652392309384948007644846420055632067386049034869000435613409512737140858397401288727247282126330224644683569168656820578680730417706981508038529476626442900512346475007559155605087045300280294450672803225658229052795087512232022622261967126812498986475423216372021879574790566533711972457989490570120671949247413778286636532615368977283577213568118655596910025861082394586343376539531297566367205399826348653419740173149641560971266015333636087772984447630003931216556802835026954286693846755749969733038669897926148051492741527896750342909014994609200199571603444753268374436528354341267953681785670378028585703875685746412035523154850404459195089493745040918400082706113106705391244067838853550911843125069915767240029819065550722678257994725395024160656702070772843164995468293239548640405883336478030890850781297784083618492996343008289340274271519708823077965203097419948700262022769894605549001152448189063491482714083424124364060081817504323735683910994115928811412224199979285783797963803280028947546806896091659315550734935068179395097103611359071348566777093438482420192914481341667897759358527386838245998209756110513389235939417320496092179656386767350394653357491665245546809891405157775598523934853179212053147346884704070711150258038753073893841461059012980996565428463759065919192286754143315481991074916161718075614391542146936709323989241687242590122979182669705669614684904833888630003435881436873290380076173269307807291134457551469597796116120418199480559185246684066733007075015725325749108838373308455754768164866532441584776590699981591613237745041086793136833598660497745784109636484602203587217055437065774479433190922840387001552198267865247329501999789414937846593672500813019048342876109136600504105600323834191188871252992769288977512346278448387048090588685814789763302316250377210391059683165410771706552725938225308312824218211222995487772127057875092390499563141269058491438449641555026916356131867027740815166122311404772517981210023795311368713479775597206503309358697952402508829623384399347152827590478510544160770433319678925121799632216622147078009664059178057326478809933944549573736461188534426992725498559881046506617249277406137948398110326720000687559084703096114930973881654526023534083638828121897780355720887094916026814693754970512221805390393055061412514172930462411041280926896608926583142652257277279667021856626442575854624652934322021407427364161286210268821636410372922671419583260107004278315463029018340996203036428288003296436972633330939750717575254520388603045702281931460194141833468745830241761031492851152007046022311584167728906560176172081084136797595123106399142355749308065494091142237331956816593165073646418388946396409589791499607874592421958523588836247369333371748164114512743521993259955322049076841932643060935854466245055234512713661557286167958155648072545688863200934614549831310431364881188894356269123917074360269834285705378259526041136544852547930496410711618476539142556776172045383014093525260412881426310715750111966699583944608853698438109405671196830701105184184379454714487453429357785996250953263819440254013068113738221286016923257559657446837789835858286750232883789924345616192440591284210067461796985276170847622283071797142835775252812493272231135019534098434001346175577679854555547489912966284777746568365617270133590441415553136275406563878579393414811940831644223359158793310070637164928968623623065106086039591084431265447503475439086748975569268113624601652775957513494092170186136065442631993696188309396568481479945838724399141394873920749528225779385114958853121181124519941519135771896213798651589973552228649344926432861674083912689557755042952882417657617980966057356420682140845901043672409520418724269711880712400643201519857871349964563862373750891751952462535047464681884470766617210960778963805407388003887389271766183809534996123900760676482262277755637666610540104881701850393713102907981136869268893114766570847910377996467538559270346418299983158506027910880880449099169144798952716801907670271670457772618846333565160810146820958069372328646186166144633980223620854962105546485920430127667089465456804906996169426882430857315335139436752319037509089830040337216109780980602755879181984795115872446935319296100414166248698205484997233855738431002933826483244892686659566406325197239024720262076788258795988750251188425473396068548990675176790541391800353283332607764774379167733413467904214221926872037051187680973391907681516088564390652473496701065985956862159675854381028111888573462719971757830154025967821877960657298051776031797277422228971089067699262659830713724655738625059944140242050889447465232169858128356962748600576157901347690552719119029681607148919288750953725508161641357465495004535425100227407799977052551166200935507766051738832254894179274180422381547984056117602557098087643045491199093046602332530000026015588028729596534226440582316767226629901546978496779272012072125057568690853543751160466092480047563632769892921074444757034346981945704511687688028972110001850232380531940112991706197761642629998450326708338700943515865518599889232343334503997252937452974077893356321149197322724868446315773167539668969475413973808028564411754050857089213903315938337293951711205834472031643439945629641934851699927439259380910811194595462924830792641187164585416546419418871455866501224072132389064871943509857709388460124878413317118929642765459546199309739990779351338054342820153106624247396645513933016663246551941192519274650651109419727003503086130436066392836067065565140229971319071325899687067982193014867296803376800343424393249144777626867886921173791154455612448270774930282260453603296075562435792096039796685061219447294869805721975052494380133367305896545633147368441749753306427950832382177497209830805475327254582936389277096836301488829157496421401540926291894981072683979901534617126421020579861167193212948158956139193453148566384641484831208927244823837092274055093497674495025808094499425447960399566799688623904429055963230298168979146630539455664766706331173806974709824668424602565886537327770907640867241082917072036278966031099625855744260464753413785594898863325148952633275188725088659693883279926648761760815464185853798675967191153218625683570756178500983430645684776725943106479006477090321062163345184732405995606620509208105603713792246935130031658088972056229847050723526503190102459018360380917815228486018307585887558086185018117205428935203869676700107046895655808350018039300314000705830849894171992249562151473092229900875914893439270158990468574446086369456495132007834981166577940753131899487757780602379670843228434271908957262975246367087652587051564071594445489504359609643192777808430658266447055427269080177152497061897457257214847795972951499838477268536398941824743231437633343037408087527473935713560957423226837880733819062054341661223927587239984354983703262098568588060050512129338372468227937224493570731873174671568183866021632992412535525589977155977201086816581231006497448816872684615985863013605428373438518745585994982127858889092614343563186231101428956980541402145254215044239340951654262327680461346150761008558752994455026536713154048633578671132571520193514877412018371349028141247922597262062400709403863440214096328800089698339667050138377203037254953562336646518455297339216045336703698321748741744243558799808610815670617737773685906007105322179252476141499597282462969836639716860845227002715520917061937402183980679296375388702466425208992728826628663975048759173073993970458252371079389522681670904904821937340368850390157929568316030414392705066733549265753452125405219289052487737012864371148956942137818146135543612553748215267490169479551566774506472246462584359913018765539086235108377181163007373836691335281641059623307730225697469674938387698464775857623383522595509007804163452355995033410278968719020174681254592357756900750153542629225964841006822698155313979877654124845517058775923103799484466491244167303267723985670384576695076392620717950219301293438887347315770561938027638204419829230671457911271247696988009781339579765313633777934028863154807951266583259337215125934993574675800203628405548747219237414422945680051078660133939413474970929459629399566755437222322271284977858591550953065228389229970294077431329070918586676085784219752008795927749102652954435142233415286734617251499554162085056493386838874640290415358789833437178385007915032698647366169992722493229348363546067685997065039051120175594946578785866463334957046479882761132176352684107358830219397334003975794250909729492586982408879494929481337876934569647648770186824056998925146482091547514833238946196456783973250371322834803991480776545207950348567734299820180358654032118686290334005265615324334312508810963137232774498889647186050933214379626737595769461915583501075845919333947239593713892437577712685183801689166534349186344859957398395043746291682455582491645718094089412025855428756090669214570995603468854843430685258155569530267951215094300280478188762408594314711860570104369933934717536968318145381590307365594911140505392750642355678028501280695119355562854821317365622997943583001450290775129754198833056466047410652291098534348631605970158979265671254278596853045257286446662110477138350675763947890186384741380833164427892671951809120542702108556516701742426785603880364656983871941046029965620812152409684786734068961248573366646563311972118589120261326850146095938581226318216075792447448500548269035488228131883090476620881734346386442799033182043587199952230923394054480266391229355354514226562007849170135030479514994524429094700199668069566094103802021596601658364335907969590051025985878536348014118271463984988677427287122513926771233485312091398357491523814786183805928852561423973139119220270079453192419804084769692222957500216070625897364280962833979305153874944934301918481636680286175049717568228937100692320165251048179299953751793735112372845214781977820360348448984643047385189721331678904826410485769796874161942482480346220605273532028438746806166319954546670247043675327761971631114300645024037531735185599934181324819632782259531788136316877888434999492404606096017524448221679891603186349770646141520766475950581217382640988678568583238023495177514078825105350313117760074133190464863964730343219166116884325371613247544421810563995287801443273174217815892411486617148434695856947068553941829877092996677687033728231762187751198804130527877399934979170312810099968250494867717291095048721652855598634164557259407143222179210963562290916826760922722229717362908927946700926658344644332118952151140534336783954260200298470588284237993365294598017223733830686597861064017789368041093938009987769328923305531703363586061846157919565026306210336804400496134591775634725973689180468064624513497754857931331093373803518799222333129437057817742406867945716036047302070544566894692353962040018180257276309106768509173549117991159255954204856004127532715059780389827729910342922073390240237829007095924037324129874274322098552906398158773381284128199392647718918563088851525653364722419991416550495753810624342191857687924044283244824378972604564652595917718607265436047143102412925625261723870553249368737552912590771568379538450366600393460317172412603312409889350992410549916135493397929307224870295077327968739120683688524529266942277748831239095934078178354709989498417019716368313461367208032221768704329257051401449047966972495321675807765607674561835071799484108593182307128909688675944101781357702630506911871131209993132853691214587742008869514704741474979664006689488722132806577345847922681018891814764869815787282440711002439033785394232037083834653058781431343834064483025054131705405897870130403352446825403985703117200966651582915201076392670888029331421792139875558439555591036931218475120571924819774259229405015644807029275750689378052492046502718323797371637285293424353028113917002200194364398059620557926362682401800823446725745284751374746056941386598552327066053676219967141638414945815363752328608830452245275200874418207302966211156793137705215171390564058538127106632342915089904262900552418926885136813046458288417869243925442770134701758292749748289852414804143102039248382486654741862666081744752395151011571205123664327817749775533226448148814374132957565384131583879890389699876653773340016754414780304054659786584326765524097274705425040339199007388124341175382961195307685878437205592734795551257447607113532029148190556745727627546329942113050595827655176361535144693060531695808886665203263998124881178443482255440776818372140711336634124184396996743891952998718610836950626673233438895948261675615088863638183493987095685126237611218905167640739462111265409873320358311136621927960079906974241439977271962419816438299293824830760121909945914347375768074104199091582225435716049293971245822742224484048947116109168111855888377043430157568760774046813656180701420300337912710774023048147131299721688228356068244186105046290465452712570762877391062815880855638962615052702374775811236627116566788225850433370841809146509769279877995642556248371794763415402636607491550498187066561737454092217110854218924004733066099968693486835151420941523270158050327678755900466886775948507808294622395366935168170322079637247587247015218504943804819093366063771345325416389649477463707612684524377989198855463464470232087838560067587910540184324490403573143921566270070047592870708098604940213900805456134875490632002306334513297397953319713542277327953823195993331606889018736164939513345453592817521978670786280698211245052694455022606928128882042584288673188378887859196283301709646096670543276203935949274411790358573926242092718601436654613833268605831217850792145183664614457914135596081498600800652955386437924842080367211446882687574981572702180852604063914978585704150605163838810265541995296037344414685479273515448939783637215436960803459895259874061532856978443347252660516474036102981130233086033994971591170859612537440943551725323290990805821603059712912258119931477288494704414575381541589753415693685295326813869893081853575694483777307785150930673764087307811769148359713139457528965314680872749758468881296802065198884320486416179434004546410402922371210140432222227259133396983723236549807301485806306194298096489225291747065572406569436054624519758673996839998456934939501491618000218679473078112314750591222841208518447710695191825010930227864480013367621912679968126340972512171645558022052848108990566381234991358532077316167439599651887651034424921373138886513527265975577768012255168971619832004071159268549139486431070001686898507138303987255232280014775929744356339480931640401183444736400564947533444100117031224255235333120592322652868710724018828802257036076296736862791556888981205921958743576622105377622068457856577974178446788799329216056442433812410793255981180614472975354167720616497797419000481701633409347943812437855013082437703417615558061106582650862954886192241170908037866917714624471820889203871478760921943066177439809500932425777066304620274868338210255054847346959367253238686439632054796908309752562097512037513548781024855170164828731969939958373173666071007019510893123345258839449592047470268849911429352653819474957826654708603579177123513746108860288186864576607232289416096420375311756782427874066740369224441083630932226235274504632233809536674616073357777382177242895851677298178458557516722177192562346064253831314167468024307300643176878774684849602902593700989890450812942176450211326445566411861320612554678861430728326122640867221147813214422938147534366231191582201980641885826611007594645114673591471419653301304669301801305961667938917485103474694069279569776985868995080785407102710916107353868461667999147839392893219407520008369848803460705217708584617593962546654564868495524412504275231037745609813539701808109801749274855506218555611374912825685704835384037477611421791960803557002424776310155117192809700955713321438451531428180373991289465092744449684486892349434002087755078259975690593528740898834448936715212399036463090714602466163557174689361755045438421826126547177265353558802417091433233274561092237177308959812547567660731202005492067630232437417478760686153788386219422560524795548081259331750289684737034209625598324460982154999667936905816004438125940878886082929685252697274892558373243344751430204510942416856854376814324769508676983052900888684373074842918293606537685056413175719367617679663928072824416440436045626789418990366422888416787612823175239757793232430796756904220580915991659691248860168805018635644774864519636517841278280741938124618232849304678318521258307432524860279569106934416059054303075839184909560507575200845389935176608262746632158590674560042442706291548295244851845654883598018908406478098925481151604688005381716651656809677644271965060141561710390830951183604875838185749190717570230606383557162569515375023062863463276843185337984821764533246766167414456374878378175120069112721704006379201783607044859796379775422124593028289631605014869098627455703862225632752727007808679900528981006995425938296932905570931968169991249840529291693380780509217115753312518924808102656243797376236164261329377940124549348340509759105323719570055253223846564206521799817786431461212517811679041609141479814556947613580944908306024674620457752115331510812530054039951033337256180814544666043391997694956932179426086734315346707074170084531023261553796708035878140579781490647912452234880066223081372275371849001090543300837999257463399783383877220955052822985618177503859555046474940237486229060025399264616307107493247225383511980979616212716451060860227947048908924355642469938380560245225789357908690667658999435839565543880372942146446412935148489031824905229504113236811590648841996295404324508827559810216078028816117288380937726262898066059485347761652297392980251108169530620448783770096622016792821995825990945333452475585253674952936654079454444371058923484277487554071424499754654507234320641485102785964707761675257099220843826323381609060545406298931313889572474961592202429058085271698936625811178842961274761163485081489635884706383449304173797000686104227289756137381486001057606534806498554187588478984193268669900766451347109312332070673860252191219773873743212243910709952702998631597321616009941968018571149148764729270643042555699663691826045608339642255540113081818316439259001575826900491676395884097473815478078156071788927966897008674115731260567571073460852026113408805390366753001031681859351910301167502241657903894674406288994159227576290113128323671713994086719193208043561345392514680850103964879587061158540243006912760434648246483922613698870661234482372526885416179969987480491548574523574675258556701224092216724544472244796529086063437972738052888108441096812304009917254005924927834227013492831457857240367181435810004342583151331921643038803978753991087869949505959743165788010041171259796507441050584797520967940164043290608762282871831685453862049859752612350874428907246257365782183887725264648751826282157009978713598369442737203660007917492141263471186908980514690529244568918713886797584656061049787587502033801800556936681567735537177689478285008774357662826129707912703386495308239660169743272525357722256914582538583848938977289611864603151402239830578299746535040596556408911031448953539753032431200069690585990973093617802585382951801433742809175621574838247281365766740128878985484485604523015214706365128138961718500264137422921327501516420207973667883188154091718741400140092066541539815526820239081671368431340367247606129626114018755038387445879945376356050706001642329493564867246962127317770277000819765722718969976258475497411581223447387287008338925581439663758935046916469807266487966665252891921685517962233991045440087790977548095682172364681828565381360905265559618707078446129037922221385124195176482330160730542200437800632008404678551016973802866552773424632027904690920286366332574886060986566650188513508957590932704578792686019058213926980553823627622623629494783765775301425202178724531003263519006424276766164175769237054545128419582083608904659129122287704131468572113786883202885021117287799187748820097538914349516649460734880542963440597815083261583269225735745000712301803560925010497876299311255688117523291452438713955355298298442556909841439729767326202995657322751428437445076689673991640276405462476597544813082722855466438743724201468935607292568531706754185550371637296429934942326976332902604844343031998500017476649520115161409168347100560749694193634579165820183676973971322132965814187897331940325828667805342804607605824164023025784496399183145106014647015000539040816325193743643130515122851826436356638549012486788818007707868351546312455135352460033978981192399794487407318278273919798279556381379046377092874624295287701847620532196388873154666312909920853439921558101377761847921974172973991272916670292722072107696474662859029592274789520241897919080972045800733034167426359831160951548725510035758475725800338832582932725172559841185840406010859002402661612560099761537966771919576076114531859613346194106733002196754314438531604670547429935270074190236256583869985232912674421500071257358045967481779807901666208967748631337904541816130616147268915031942433668341590846964253214424071683422288225678921815465045411665564004970216234474601409588189478238472739280395143587069493594244857283259326699016384806916243531734530626664919662383646551850256745632486661346267978888205661250246448361991895884410542529986756449348020178332080651659296214557247169983462444051072191330709059528409946297275020635239063137070749721061750592198674009512690100818405440883802518199340657615183812661999454636102474362894012519672723110205971080541232763902253619774867688125956851789560786420806454137072239793413885938126670183909152456228420792090243017063547140528800420378733319940474154079002503321086202857818638364545539935396924656593625512972937338524762899656822301437142379648401759828461731544865130696169639639315051380055456451186701932866960951433369701685634642908039900301992644871434962810821265517915626497796965341962773412861286349488960413055553877691648354838546107087339318301437936601454190853964698556848664765025406509364699443730273572064116954896603078478625066374370585034827266998691533831767649707685824552238597234486851293287746255167675136550500288379247176139162907371763045763940663694845812967024941201213623968735367807609952583365978262783030858012589183648694338848995756306931932259604544313221929272053145443989468013421200129254521388927521586190903037730259871789684928497175488471850331918361593559860414103898707408157095882960513136616038396279710401057749063082400249024167539541135872151574757205801505599880002798144325809569878406280753333212094145465210790833322681080793702333436686055806257659833243471286933122663500621644831638762253273266236659138156662731552734478518253927678300264889260162688085725597979060171578223535905674180518902513401290085045181624592561173600962841882786458002956887386983437795458213635286207946840539956367314755778909419555229170275273564975240503099264225174094633032418993401841951630541001092209215794256138399141589053191969906651840413707651956006254788731797802258938224910124994743540261937095068650674962919616280714594468494185661500818068736910889326246345554774942908464279665688138393556150396506544019297395554657686132520330823073050901240965637537959080407860682382519359430850716681184334285818094072385418177918764042494173714481616250442857904237921803286377866011178780282597206962037864461441681141709342172313745387752120756727584398473856198330321209255185736192557344127223287386452735423622434500293529882053211183695227578446353280021270804572182087519071685945425482436042627540133401546749070048322063193146766769650755721547277114872431073196174569257702100869283221172312154360374720999081222988523434198240629148646032022208680845109673856448671747554535756520214992331253098269023348088403309171854369399461297532030933732905460557745838922231753469404223114312169566074548859888712803065334882472947516132386147920498136523242727401344174562467088216853638745113977934748041797603469015236763602416596663680355534828996847478604286432089585363483493414365087452421796050484796721762201200136284169899169125706688474938183549313195482010763658347041248990561896801122854262934461656761028682777717777670772809620014365743561807760109115721400902690137128780320588238004051977695887125729140317184608532335807056434356433649111470606229282930324309145922364967832043211310829631071744301502129740772327601283050079561650590742964299535862814268789659444482341622596061614302193394176967128837375738298612355062336882581812616293562190966461886564796559223673077049547072417595729825890550821338033201276422302236373377146628843414058540772553780567230551439043136647212142255609298591636900155359189758891050248834856132834932715062582784290545815995571403939609012067824551585387119328313074973178951034472199269822203130828153283071962414291209291831601949657300192522804611075443162473261249154598166150376460880325291614761532812595599724475164635443817443045836135025557589584319203483671185762794510777993503706383894535117001826046338273902142457146867189639584801163723060614035531902510074388960176192890618915680434030067831235604990060047362090258744316954158640965220386972351730719732055663263530072305045990739532582993350181369828543295586916570172521455198051020778419950171444508459461136686071628135267836795891401144098482498963197647704132586730996117539018969566268036685350884218755369262242349987470115102485134280476432115385869496605929226032882253704845826875254900320855230124773604903047024029778755629864392503551531481514065883844557800095585914815304944742958098315525579028441647308980794065654981560689602843474037356214472850208858698690309678461725459107863559410392524865069885334686993853085116807286650254745195687187533958168767812810599281434789326177738710297907212636930916755720198541971707238174635348078484884295179237435441937631079867008375777840068651844192398514116151873036434693365634396890885748910549710902229969038318616999056471193384991138437822299739606333347450908226367402625639815704227628029136772523488692728504613115741621557737654866445221858822780126011291523957894283181705313090142163952806277928296937917255710348202428532564824102324505088188304968165258231727599777219016745649143187350648280035879204420007479303511038463427823144016175759638730317066372730885307694303663578641530418593221468724991509742402265938232325715821353350218817307157693192938003218072070834668740884591683470963575112949842527487412431035101802928443347743831639804318750814405534730630871818748884633195208217948213155792139009898264112855036179681424290704694865710177536455449826101307285414857439638801918545285274224066595826108082419639283083103334783115874553774411546527143963238763712538314914523548188459148560144888308375988945589096913222387715812848360812796054576228183861186305895053026135908662091024192797043469040827105826404840823666581132101419992239388911862345936473985826927086506992824480340746904982689220625137032646111083667989912829170282202312705590076775151364604959782304438856252157909469734630249460199915637602771431064515016799413059213103891478120880213437664748108108007449590833925856325341258987161153054296085312547302323561873959346502393032897484463005212786193661835320391211274284999340685207915458118756107493133848359303488472159974114549567485000594307169572055764843081123828588670922166228828522199294054615275757060195512138880780962161435322039229584288732078392457717900376874345877005986334318251885021640023734520692774538716280925848826656803379284024853161838550694459557443391047214333571669749951826397383788437691993431214758325991797038549173384129788685737130838121613605325780347117853001002886737952920812936356133703445273342429333219684888305025721264309925045066446893555567128783630296703514137505440980663828857509988657818212969998051047806324103014155138629825686952766633894491439113178272476111854951703355497129331618569036489252738287742778275014118119899376196856474069958364812377060739319956483754072201870934798171936169182961198555163553724761401216296048687999484853140926792422835446394673197539394767821853784529531784322373324998186068886053983322879285842854997877348089507373158734973624104794195870220765064814653603031777667605422158416686808705628051604927722331671823151558506058725844570314676017726926563422308988470322762551794321370944854867893998375616402734692847451471547493087510044013409694333064018492265968489769376483796600119515800590035377740718367549069352773517297090702380233932449587139551364162867851381329098003550579350221280558272831673788245747828114924800602642218486232178010850800416558098655324964521607458135827523230673933617857454558427076688787663738461388230830825088647609179950992225240129726101759095497794250343459039494670101278979243176982022873542264143402186935762760666396947881090088601965737070989741536429978338722239888088569904184992452702420200652697152621592666530355462585725570796955304048010909922507307912221849433687443475878841808296933445957142279222209958110578554898638526294247814033533499991255806554011601952476770395385687776384677201845130285809926561923413477774430776742563144865228936865252072403361587444002296432641011154807480328818061065658903770223343764834398266468237058514172465068416701496225840390735863803679400476746611010858702757192780272052924323049493780078648647237704028647492181131646121511041810391871448373749951328029776849742388606257244124832967337935005627455266280109997289548530338338619933106329788377094314844401738690630627745154087123406411699405761828742388097661276504011181200537940844832046873512241412589694405267016730506431755390932306842366386237074046720922911929350235086255194676822554960593793106501017986363747166057122443767034019698058056047260562849634749603557334499050780893921551906070981007861539521349904894068964952716782542966120709535331551079574956630982413612729100131587796087051044137123809071809339102338000548470462969067785048976646932164218381089155154971725670499247445143003072395670777048618952556081007102940640263082100578715634949648238994433610054016270401046587462883287351166494592956092093031667401231298348385574001735416525753431694152365509420110301632856603343263139905927326548767632116996273351903009795475155072983391020270972825136795596930667692036724245696597350148421521466138170752584779504956039603131919559065188842650895735298310323407038684006749380944997263318437464396006103883927461466774845589680965589821750982917831875765877965514112926023694177582996056553887036047400858910683447070578714709496883400696344177767954176435268375255376265876893598210006089090552897797619461802523672047046468913555990966065612556219235378509417970139560668581431005840900769198056048366011380273347568267927495394703362091578547418017482333007852495794011490118419415907866700986167758903618745973384663217332490977087433787779932366103721926619964291859444194396858508126590754474464523974558135075597174979102043626325192674560931474147034100437536983895991128267161597514245834566974384635329007676060459240845089631735841294385773436216584868980829911336803754155140247765692399609897534809672037010705269198732460046313721107281327603822756373238141665198535727220833357471192072302871119641812370514622423398777809063171601243072292319922902715529864769715266086513999200882714247406293235747821813063557986283409860478295952828242268595536001190688997152545012719906696143434743797923791989723041248824233924977235743101744475874630178646443497384528363305897065164111197139046777451472883015744868767802123267087195314791476200154309612288009533555177009380049867978212530686766605986137801777043668748834103051001358004297194841641409494071970788805470291744701098101733309929185546513121564618855422226441268288404511069739983060239580244240211419737834634426006215367229795643720848584953547352111074769432900673985241350821866598464774795658036536197036027710188434437955130334129574660886941467548964502806133434618030295667368994993148002877894076513183258151958261133228049596418956310946975000108818256175265820115840669891655696972111029461043299731774682553647652178849962976547879282003556276361973205119552995515862462611145903647962403698438120257023550775980998421470325219726861114019364959012845148372680488122486582654024536133293091808466814718059035549130607141230914507649289074868702394530125469437881798903772110081898479005060616374520318691709727836705787506958417115632082763328707513692176849717239912473054906717340053876908279533223512648609089406135009148533120478274779105149011080279356754482708017328576170878230750672069134709791611963191468292228380337370237663415102469912306302913108275482336767611084026025584828179099474314905141812751145265924308247583193780111993078211675176291857434305091083545064381106267279979583954369558847113439978273704926802310778086515168395744680758293900306618003645588107514220932200010869339128187937721381930196085561492518440343319569257894756047877297098785629349424180913650719500325097436072791666053694203079308261740147802729865122160152837138418374499014134612589661715956361701375077116100122935158764505612178956220475071524051179731648947397214366894231928237871862878727066985345464270127492461379994134620083113249570277100057496365108171467209937646142089061842618933223322263309504639647785819093665403536030733234934682575402907098290358875917434944654139013682575444595020873232394279195660359733916391727277316018089199593556965542255949087676530070241878158551557426008768724744233306075374654484399728545533870284752970590515820579626748179124711673061094417636825383248280825350806843725231308947606998657721373998545674429421859875439798005314682131301482254265981180249846656534972404312022143260566181602498607408574300735858645747706072041941554234106448509957045994030107799736223402285715448358311566503063383696236540088631076493238060933834240953410412830466686960374784077838873415192894036501821813652954342930311030484518033242965335961044190567067151631571749340547263701865886578804540613603548663039837796971425203997559481567768403267722466226802001881188886440041232315477730347833921673857531732782874636790982747269219962349641201169991551026446714487459866828593828388483336927187766134493962616332025652970927492454080488075651624779425553312952996460963296398278912301834488991364439486555153737036779678876211073338186426686620695413640047803598241718518201747764425627126086844729850473219021245478034305555931594741298100193502529961642065960856687077310170475970261057708639080659167791328061901672357302802540896812274078704264446537816391084501925224639103400651484276266206667927520569689988278486911106113362459288931752135724597990688017265726348004498720526308474551032000519450038731393159895281189196562609745671936210969582148316063126251115632237386658283845127846854465948057038973743024684104864257072417745756720550063143140126335821388847014781535929893747253334840908173319170642645030241441442247422798375946326190696926095307732835563359282395433825649849301727050951452329812850674378750358210458612660695169609050763185485972761578624522994617729443896262854955780876805505752650359982234446236801155753831259065105378249867570275189033803603210220191902803903430837216075485535283983624612744230630668542374920691870563168801243388203948567534374747499488810216395607071868680486916649056445118872654718578866888456768641316414321900244860930771601434082387123577042582273189842819943425562594976364346400618833033161014338642187166264859147993801793241348167754193282965574630311994476163599207102137589262112975542010606140992503734194997963491377672579750154467840703967731468525033543701890981738528138856024795925707066909244312796492610097291642075147023259562088517760233888303346141110634759984510673967042940787673387210592456977206755348083972910900243940535691571043898351535185001987695704805598145494690413734185913835705090461739922846428196424973042766877491004283593388063872623272227378619231303937245066948329729186029339382663316192683128755350966946551807364702650403761247069505025625888471193737078058930916475089799065291579788468303870501269750705835915163608409136203549609876829170955757437092254574244981574432183990516801179500013685973587247685644546070492510727596301001205696878498942609607021550821502070109956897134260904812178052376716007473559286162435943356712639975081909532610954630495774377543070699019698390203135599836444236930360146360985724545300346955450046501427598183516212862689548675261819209904694479502231325297425652814616304642108800049514628051453249176496738705348777961736800551164310729988012758591549290133531565992237304420189607505478376002232161774491934813751682611954507801651585084454446533743482368092037060425087580737928737194297452294769360259636478894187076255924385806009162951337046833698136939193770854839432983232041458123411948428783997167887994265161495910752098091621179407339658099567110861148307599723369304176959067150633069650257862383168485008325349208604204728051097490463985949200333950834053798791634520635447517950298417087564834701491906589259558658020616840435821449524211853040396539965017857927268028735758905937698474186583276241533408862133241009695593786673619910086635784669493196996558497717966070731443646569169242585562297074498597289698793132429179053892571874190831583700365182557866286183289596306335721563076433573675965461660277282678417635875029467911906502556932296787518131840521095841184876362925783213218435282679420616947599165745543362411381308734398868695739304100665212360513549844224461931663512994691836330017376890803837416557783618529305843240818163396490132591443583499368949558419819078357028824726158973490456757360205042863051731395297849384393575833806705606172483048409366711022266300281321439327707659029948934893836205608634573767529027864159098414299045810506792006636652937704395507819214941443800335409875369157912367324641202240522988363829180124218587125989072812526664264908109170657521163680203618756268603315493421302099211625265661635180123379949783646525413003518986747631769643974876401030257140256474827209152885590861368081185855024872035693009768207470572136954521692280494363435176600126267649824753035467298373337104016387615220364573850426167740273593960454219292373881968997822471161139370613644557094209428075233531134235727803797110226161935277968554824594441235211750880195315853815955443967608619542232093340929545733483616860234798760624082397795243301964239579422430282214945730124896578789003592800493893270139345637386635488592481924984522975321480385951774737138800982358462389813333995105722097280446680665718303595195061805676481354769950358350479760242516840532856561237456362210350109240089183225297172464256982702772353802788594213796149078354679719969517857779218264275300008355137329958485676098428515686817566918334045259635471883141385179932880025209133291619731786549107546197612064261167131024544205349631605548006581335755492003117369649270245233887564007123295395830074413605620403511144863151617127902944264387324208447405662074932557606425758420133302603017646486897228500714752421746662817287642423889473416221224570617505011193960943348800087387381985986813755959083942851673576860634759768134812376487643250821865618608225229672031895220528326071443698296549281413484827457588945073670566193180539633438265428823506326862434528241477126601461368200512359564425613958992060618843643624639354479324820807390827715761642505758503006627592187565004820457711846297555379750749675535270604419846752950790567961396273885636831208417264776425616017746563851330556478193058159238514487806382741283244331875088069336576877095526574204152399222794223101759211462254923612878486735876345307103184525303974259924386095284964071329651106886801610445789871227075243661352967387338236391177653905840210776328140868059692517249309932487982023077159340700008895569343237006241034884347061790947197738079008642829433069935982595650744654762696144935079179562348899309001772075899535905106328142320803874023078561487751211525202019421037642369906027364755745192775800453510011982963450236122839702943546768096245292207086040209999085224892408922093131322782390900583987648315025554058145767898682389976741022098987951000773668686320134547075062979645770124978604308645862693952566492136676464035997964907049453185437441476067625524004502583183885907298056703308817379892663308826407522025964831177892693316999064803763264621234822010817457355012099470410388401932236427085573011305543221415257957157681519163895181057346701187996194384537175301585876227889901202811775606434022035819463921093807950847020932175555951081277161729374163699307882960845679029238967537411420898405038394412411412243694970783195488986564637369441476603786480403567631574400481591407997179214244903599919068756906205488435262674631686801663874065548416079914638608455888007770811571504349644474658093493948918364878397144266998758479695166203898071568487529776215647846879170747278602028554974211242970331327889183502132953959188577205894684363428700552798146556474450461411650964918794198239323298661376040020837107462799565796643354980978776920561654861400768830263379136531913550699429860575955524499982918241415225534885988551872154429086011334406490655762864118014364877426070727704141898092593053246217279892708359601251707335239763074813031837061704255733662802668854256441030409100787043576550994812358725010940728664015329355247774106023302924948210038141385090247514799267665752284337248552051802396861919376685955285286890010846351592737611436233587526694933107114701091841411082008294120021179454639130379714453040696506578529162722988352003526307662023957073009148805059476883582266729290511757485702529365775470433969001050021493189365119777679171826121016892008638238101301722806209419802548375339988261258956351007155984232093984658470928301659790442110552787642546756264957098445028331326700122226499745102486881257861291391393294044338220650932120537090490064670987543103281840980123743464130976045190193307407767194593586128307641882281481731722309169069092095309899750453298273821118506035686354021566548536619653413037169225179649979270004772831056308439510302821807390975323961068856145875491998532643187539099206726542178134469672216799627379674566794051140173077278148929801399185275555085329062509922829626670955959482771096920450393644436348303568452352524283226511290228763551254730275996858721756554617256679826745631436223533428567628573216152115245903980112477578677214317223061286285180436185997989106001969698220930861684943856752089869601428051616377373941293046816433620692324980026526029750598641409965898687055518843843363479830356732786618072505678756675087580143693415261585647194736467438862096188830700824585540546535058539424763589631819232069189283418456028740730303880595440960651005074525650585811922043383716229177432887792647261987373920016831560276687647887108175552363465820225544320369034035130560090957687074304668083038715811181700049939150249887228663874851359248958038013490262950790970779791466213368322272928936475867933727316530346569277217606997615976911337209841233947454792784281158321658109522270072655551006332241366787162425824824281968382141118722890634561332717016935905304261853029592876011244915547530502637949540834181499675988037540316445114117331609279212418501210027984537106357505375339747699883386375409189843284831122851079509591696124987470057992529746146675908515447920442345925076622661360716503054376629839238427175594265504649541423778195533685663575533395356075994401976924712225264338265070506801783802696542056411740037117026007163754947474305210747223238236985324109186451326958824995487799866708934342845854373892745386788274953113556735540667443589541653656956634432495728155553626622382633051919994999092013976752439987637257730766403616306137636152590069621232860505131718253837784346172099730845372450144169258510937736254262251324969429044433342802130930236350910469619778071936524525870904658649861181830545725701854104855053646046707399413025208257442743356307165002055803065524048606267872814527687552501756757413493457742014297118958517871006153539392667618621766673416183179837179922875883483137119683670375742936354502807988414214838085831808071791828892624334621712275691534095716785715834967669615444121755512673576105610813259812514154956228132663849230542928331939356978427450405035926180397441403754968155542260423968256152590192387431946423349252970983198138620832858298704237478020996293825637615231889175347353674972130197330253610253838439857668821900522051727557826696994229956884894983098789472813176026454725534832359033517143117006735241184081137955749482225535905716410843017420860270288919525487525764459034085310398139047939268552939870601627709506238485644676869936740086279402902875384108923746001879521826160560108433628959769169165843501885729548094152782644472407473517603896903489958749970470100225415272447753295741102988377488601571862187518942350646956386275061165944893258737057623369764406258535996140056223982895635185695795944678835952512024465029303313649535862508564913332340194364596066759435944863810045489914690098233194573419845236973803233236682032540943093716766883226037450880468915398565599456102564958920374517984158505215749392287149471060745440248126625954422638724525770182354920163046315520620610905884117768948566219258065948518213477448507871996513828419120561797796134877643032820244948345062097889356510243259648899286411449144259431380023415960289086979016505588116897191632761589686536401753454388504738868369024380852781592273194308952302610368895716616821783723363904655056240344788281414694043345603052979861022360144060224989047700115161844500116333464158055434381930483074881038278860403347498650474664005416192235945413405757511721360300197451840398391324445350807347470695865790255529203265256474973117797122648261672162842243529873503624320988894615633138529966188022484935572119591244117590823443412140039033502866055387587809091567146919510695748408935811696400153182396549535667381195251394003226233654237445364926245484766594896623738259447885387345424429490247681875190209804319686375470918689465274733861372298278286349144362721935418279080747288895461490721760346305602672048144579781731608895040858883991476995214436908594988236916557881898992498614319207728989479576669962568070825432867772682586651954147146372147525960368172090183731555840352744240301515938417560509797392462366288399833918246257190836782395611100770324104496608948073086180287403132765513721286562229924187166213249069444506919019759173362825898940329885463654754970080769843920519958495506763605601436339789742841906701429965036465682513008697294745233117270650457932975338369541856886188107163435312753724296277621822120691047572805301782071029306820387797575465949522237617858226220984855259883925456697528143897937507724980341600332875223799069017221591731552177931582760376537612784411722010539625889559172518116302739151614057491664308405160368837438717850952921903969196475047434806956308040961172876541575066264124460988266969501688508055407710658711388305165359022291527462098424462651147533174035241688649030986074408469621119533164627527074855485969183753709212462541853595349158753459223843786556325576092306692795988234245582473942941334149319641423232229712525291429858361037848564796066928118415971263185686407848953081197855121196612347929436768868677057384136004510971544264443477524764829381955162138269867842684495234066341802613722915200672845517497751686027812066083065916855067116449053867445135159725781510977143740290031277839580921794810793277754681516532737310364225726924711982882904058611674886239318419180159528482699523749714265720415069679227638142472108302284601431450396545973174545087597707399404527004149558094820452580310833392391977389585991828534923892186182300112566452001560328849836981106688850979843416198194868152237423927424887383569051903045085630501971526818470756446059348444758607812903061474690610398271613252949066159916622349977436436387162137605878197866577217798329105805386092333407906184377172616797164473764989049613575614085334015371244547261814787150823859668518024711601300436500190150318672748917353941086566241299581452746294782386724500641274421290493979715232483077850251565848110896217739642909494791977834497733722967524517044966394763986546710580621072869489466896465943693346731446418851631108121750213839602830162652424789913849774653301742975140341663011251701305926259366567285072158102123057260398188633296983596704401174421270917342777042605475378130886730539422509907461222254944022757063645271527637250899289150630143009231208053621493069238510755398054603960225234200810555803491525247672071515422382732150263534978361667591569570970383567787467185347713618092326420775107752251546599011587322243413424360389477816119582344770946668191647494891920178922821727455587867201616066450247271093998856930186773468737171909747318443032728952755586842708134776110129669260590221179517506125487819569670461797156094718036176245505617642705190913117720216426160387842577188545760559377537178878000933314142991216340867365031823752177121647417522617293736137778421233361176494334498720325159996773618107420376107934417546528013845211178564819161211387527903399884781570774739642846471393044821486181246974988993122878519874236611179009220108897094366233257141178234783277020977373707068323008555519943641251349212087254904966334131731034843143326260857588999858331002670438483705174479663595780920712302255074115711959830090733455424698738540794273575554065185333699338802523100474897274706239669297618765157803734929322668482760591831118505200718292956212253096253750588210736446181315675056992722993276413662902933540369463055032269350085740801808919505327465047536768926372361978557491791433364236342233983515088426929550167249461845039401910305519184783101095135178396644740674869255729091009717806463516942896949826567240196167148592132653263614232108563224623799711958520215099878045045223630971391023772159149003503949303699199666443517762597653515068995665979698958599310988281286692236615494204399608322825351606554450012055215865443055838046883736327553256264797277945277964526695275361361599615305993474468789937514680010158179052240803457469548020801708776103761146369975419212287980785084067346098556836245722476446842425947738350824153153393590407221497760350364350697824771051601849194611597063960184047198504922945295249221244004633768549076210199954252629314217079964387267972724605646058278049810449825375014328519418773950444125432130969263636273684025067961656254506878904035399113746669750606331600869808495073743882959792133461078748639329886097793211148485907195710421782489265894933952152190730265327917514146528026953329510725765673411028625936614260301338200108724883830649180869461784817270629114600300020164548008831253041559042877447824353564345791312916136196792298786182093807756118634208867043906681373288856040858539237619861309087989668094449634633183170763698234267280083789429048141744689005848324001846165537348825785787977285376267712617907774473599672670153665350208599744972136951212349084655992787505600774444019753550360360212912357091942376393872609652885612592754312129972049551086729822404031062551612542676178318036257145313354588938821777370574772057019773596779132139498524049701056800464079393382850459763651125405998643374710120756808454855654364096625464207873243170148985349683314918110863530961650882109132806621518306414285954529037116941900747530231880835626232515096898253278117289598691072975231455258788376440345407870043006108326140307089470886618807196998670409783414792418691186205526548937740669589235933214518373231549332097890684627393604175029104265082362904751713933929037272261610638742370505718360112420619804929477766921196052674989750166986188602021150349598599205294367108360572491156095685249601702364803185504576478941275746204266778172362961200744047336050995086891310541975788736821643848936627953620501314175229721534394717596117640005698149674121787371570096875518185496722564345875117721533836155179336202284258050334289595366221782380532312369980471673102269224012384297705637728260679124347081835681577953331204733251193112425478864962313029115320009092067169623285881046100607673021027141400199230981311491548514780189692702444381716480667312740390559656934276230445859151950032268649673364252778584560465052766122480292069349941431549736979517572899476455577404361389998097608851020886138241981181524416651143034056351509873176508928317377219192323343836890872032467154221355357106891777862261713988178421234506403805480650819923029243175960329202515684016308371818029866815801410324849029334673117566451228578042771513048699284932428528394949588633630238957279738996605369631472209514761321048324507086075826951540975986570318765867277316020368874523609820793417202809512340587998264809581286714784652613408747133656518691811985540005228187294722935228912504677684913130321799967872837498277434314562494098881914733290382709279901895644074257509438422379454025744986374222755900118938760379133108408074986424364693867684699651557168646657197520453385342662768197151433990451082081310365132370548316302124994920140787446455463101520483198919588904955887043363702570322268398260298113972583286967533179011878541343133821514301610098053577205968438053955275422161685455659250227628477641647916643652506240803295721046948938644283383334388572344159683934826583119869658354159254579489924436330930526912662674088016514515163705777063839485771801845849149614214456379668405295130785371626383896421321088481851430951343845480825687592233441286245738844089748147483663390260269518643249854825663907081303507424362616229308666308964013744480370548379346122557544094617722751015970485048319968964866326846300905562567502573360437383791234363071996150124474687366350012542169643849555672853807296092638709135447687728284684719547472762592278050184330211716087177487260610305220008090802358750672241677790585562175108429864606084626269658326551943071864996627733446782024361698211768199085764114548485806800686300585647306988122794313126396567529970608217914580929334950809400439673511501435754574245537225990361829239938520207853401761796671422033101833719916094527406035120604784004181622987652574985180936012187153629137164279960993369528367004019963227181061551188438085366157739615958357628332607713162901280505969434093518469115178605168869484089659076527130026929877679778104774500209751117500675880785887309660093366491411431126280248389416034455192616037356224208021813689893455938780863586014130858557912572812345195943229912278474278294614560219771984981430271326239447334044296812861307414649453763298284875881516038293423145346014727460813434776510590195694896162628061479728072244936875083776551174675227405714162383474984791380602671928769978351372069688901804444950183074820379462290841950925612874423206692281424256976146778968053308768461320827081946381617341892117402505392744572311108185002665949832230251009078650577066605965910372620670220769428511228229915643860132689625154697453962775354431198123359260565471363335364480421997482494653042476072182312370270032680274045864967886034006606834711612751905402635940210735565971170512795888753926817159362412511660992629474658275033205612462586214138981905244014742595779030022778004214190446176047280965899412733433869775060527825010082361195343571499826957107265537949430128421803627122285896163308794764617951759719098222783301768047836931843074353256395822207165665803289304066865011789625463944916225359412012174330200592758443833319532354882263448509469615988334106320386846994944960689014514490957147327705046420963431220937930499939085350738582734816999647425939897403031908455264639585625916675435711742662585995420663353897654603107498205835210924842963183534606377773366926851283273668372849444803152808947128451784505044557667251294645951753405748917401826513276975774987504456268718804253866001646669301160894184753491466058029258845562960121391705470661831886546525321312527663011184428355633539501062421026664055245024656648481829158950992759009040666064135041911696877722898168391540295376519554962738404184163362177798661259040857812416169958870381879072135979991127104447173451814371805398356282369565712979014242909624625744994349756784701463454002838335952001966681451346463327898433333062079192246407668362206461720201724704006256939137944544047139707037870783462777324956865716225354226101198338116522648963438670166047945236167074500125434617526011562139700733062212124165971391035522337282857402100988772422156988805124811107831904218649964417481581546275310828350925957189844810397212718070130312103514457315022871039619361501045373832847151316975508599708360414872488019309541029241662312241905061455970435569687167383718741925669297226964761887453684242724667704487556117017022451380212845198110979545563263191806305690571781753609879517683519376070792490123621332177712330908339563449823542554777528212896062996545380303745501852451270251194672202587581080502074800938221692977255593813922458818647647670007915156663335478922230155055731154485260930918073733447371189251650092342728527162108520116128739103893159323975201419645435195599122309454225071976518865537223810848111831011150007881440199817166402627354838480253501584533109198124193189582640581629620758890531694104133629036077165669158865921658312948518397377407555452822705087117994438671498420766570481813662118309909396849478035373587297396281887146527551785481505095242769797110540303828297719564951903738484174093693125599543699103904379130800809382583396084795791751949903487616265766713766635319803286342414452182894685291922596717432581573300527541421861332844493022415788380142831535497518150988524106168751274005592931071528031625066430995542644431368417253882252350080523724705281387528729561641743126052406517083437418242211554411325909857376268593489692145253579461631398331492789566523394770930946039323113943962539008461836366423955241285139246063950762233609840266245318544034857478865011359820781548256047641589459302365454191598637395847987573104402506394193985795594614851625230121253053294580334741103705056962551761440781313279473632251564467835101612910218793037205043052605844805857597016552085260038862806255590648486180617905188325111560683139570349418570110236258675574329456898646717755819806387502095066268251323520065063257189065568556160002858183166201473788100699723300260283845683865402526009623177693570272111493385443666900018873696464575141882754209774584818217073088042659822807526133854026349051293568324126614575169626270208644591062801592585646814981928012159431026569195569934182324788689591899744244778557088903118740532301582459196076645770677758779619987419632234261550645849495734530458408711393547525253829957428552320815767264695260950210778721267316519659507418065668280551496554709446934617397059787450604256656433550506606050322892469273005090980671496420704114486809441916254835546155835562525559442706605360657257209186619717848293943386101071417734408305034553786729683717717704382076557644831595156421500936826203922950376694280650871468725589120503907594309510974539724264853144591048179983540505137597054478252860290978475478436451136847794289374042154184188438032605392906656076248691235389229246810021570675829244087148063895123766845503772142973888163026193834170511752014769327442318118160141233263781141927003572518701777342751306846251832367977795183309320660364933921878355943643111949947198468027194197675849052352153610377578682012703993514504696650288552407789611530927455150274874826942425960622324077122513946301141562807717867724688782157824075637838308297272085078483207937614370813373614029428512965402275907874925178713207963831953775787179864463652297657093106763268180349867031934443178232297902405468299633198271224480836015101259462084060406324258911793122412228757522578083458437069048144201774520767743778180801209731639794334926659433494920524667504568421733853801287288258297335594578979145060047117491536405837654789090547085527455842040854696364746762256816881782062298290787206499284324265121077896898475975485394031672650882762384866663510349323268826206375620162653876555432058716852766839408461610937770541604994496050737251181738126194110928203041956138030809333124664441668811454903712352134000379028979966466193884432865243797058766771045772933608924868958577497607191789538146870496530295853237442899451272263656703398179150500489621473604319045904840435560648036155165757584336921701847772257783278940785433007229518867781944931845157872730502786874333139575782133801286538799922548924922208438685691697709975784972272844087241921437845035913923304088156949760187477338471775058064999414528380222081709809824156938743684564568220298509181520384601194280573246094927283610995996467264023920766151353586174861264671040991532746671827190147153956268744686442817920125315537097460755685551472055739271673764609408601919969670524359670513229155986765168883057205872080622367246621816598052624674466245459799711572960399403704439071729429368932763079634690736794048199220160080741678265509465159509088477547854767045758588640564398261668694097913169202330321711578037136205932707527783836821569258340895789307757301437045094347240577857679369648856872426728886348260224359456957666303670813937711385134680339655649011309312594151608679608793204463133491442256802235174711096154796140520871115725815888181600300579512841229811384795434702881548123856772935744189091670858084574488442863197039022421591323316302288148064067742260145934103198129995136175292791717578939985381784153275273719719301106170874364593052396243523070814486715029564992642297304719489857887893313402320687934092024929580483700721918998358281801126686666447293192099920844806449261828461999716417224598034647444943116417182929635850793584739357447100148512008962657232038788570313503803642758941093282149846936442632670327102988894286949836557059036654475511327630116306820891361611343831057257805360196387145874272017105452087627173949039763384056864831433141283447982286784546596448951567283378831527431245669677785381508832501043576466607184047345364190051384311448194247738179941991505250683503491043550726974253967178483690702502455403592254802104107921246803344988356177396539008273373209226685636748566447508486991951426959089461548739569076345760366512425207263627624634939150130349047267843854700435842617982162866476494098193506505558625913196052502002399896452578502163131105929973790208379360646137437191016397829819750334087263471078074224439812075416287774644815278335939976869359542587579289088708838246023292352338197783025888227019625440052129057703592677148957839409917696832135281302695325162062428746799855754900028042944395278145870214565622776259117421199255569676587434066931174649075115883499738424812734244398454339099416970260047261193116116208357156240776606222809753456144665339646365804017195575793741959370833268378302283131505668721121761060767175585793287292327629158605573750258759963076573971671346581679997533842836021799400772203118483568924159130950966529547223721405715271193054795695043590372083576665471201529417185882967018597065982074466661446832345527293997977367482694993120519670599855652840817783373157752632082226739634719057862525945305639311424027092440897693719525579866416332023831037323636033322034131216933237440051665276575588957877112618004181621154275441402012791682437943794237908108835560537662297403850890766982210132528446436742455881481978115784286957156082283829873326004368147609189125559565274466916961258252989544134706926612652064713109534315939342484353020695510442892463846686576950566052897382181402431796507576079579184140844065330246940913900428815274054002116337425535695172858211058429688799032777321419491253290111318027784611597196156224499329926686943988409005609699743168309933512015995025094836803306839867896488544868664310026389408769182530558760240964410782977769868972458205423013707287621082200507277583360047751717189131077423387157727298847082418377337943330759440481279784350484332707196449994437660403938783506608956815766018069756059226991016011398386021976017137308044612510880809343817199015239457892716336327776501418350999401240144163953665846567144610052556774672963431337527280461228012737530357189483770646532047324676749443540916605094254057933598752848500404848887210916679286360417031797587176465676550544457324280969686400789374122254036291785918184540482557351563316368467701586973943544553981047626788908531211402597566118290108639584636891562135965407156057372759981791279124641185269738480585436824398342482798445941197251146572812734427358648106570281993874334347207966092470022025059989024941306720522700231188080845938329127437268801104564107121510639956549661383541549499187023784524009119830226339044609583903064947598125816784148504084930377461920961725501057885451589291348200883650062545907489505762361145911589068340482628236045939459037199482939227361546762848468349265952591352423071689150897934906531394465720036508662024058828830142642899261780152859617538920735746817314927501403215220621333061786282355691726285946115722166367841698120855433843637478066276518466752502820309190500782522055986938449117561464116782375381431375724525075888880673533339275890225379243608799553611765905042763521689854309469163816071914384839385681763056822402897677004872246404812396559138857956008202295650373241743577214259588637378217194551832899907051307413212992205796045490034469717575830067262054050238691136091708847094581320928873048413570074834436020953369888405477679745096219746319095401645948490727930510268393924441273612737762084580855845264363221975025756596375434871024501379752503774421383540357660181065765231328324380207935363040385589570619089947667695189015069264956819796240763449072532407530215657993269115574573336519872420373563751625986508033172337311465264803482970728815754406497543314374820541491083900015009805262832737255184274993205222675177626200526473176577850482253327875131835434880937065180743080038588030733460306603106064690797975026900147406665882991692613978716762333764252208147034012122205474426930401515796044920540997645370145732355747975232841126171074885825908729872173706499459890930868343752405346495471373367777144965865888457573530523140886332040896252655411046352790957413917548882561691751837068870853998610374008696222313317065346266540501075120281084213992305537611469045404140699764260700761761634357834911122310925958044495855339950257138031785454869096075080977222780084590273872853794843452156084676782962907650408292343543975331360911502698751620035226829151035319183020149767475236370653610546513687257599707797463693559688741731788938001983158300017610164607597568233302381219169698509866855913965744655956877503172342457429788718124076904398524764099129255578407027654112805199772681378265125920711909577076429577615934592663626621968412856918156914275244321403379813283868830720159400899607874951741377001446186955122453321434968403117147009590575924465132836324047535555541690041939602259251941068529058331038570824529330984435953546307927144183041219873310209087776943007194982328573925752037929890122557385542017691436192250407447344237231682841288352282087668933912823331337995941166562162829140032443053490731082248978275525204437250202831471706350810600368803126150977699195570188844715555848677359579610212078917239334179718826487467098900520377693131184066336310856681671046661413944844697344704922860941634527245275776411234969502826855762343964200216292297666374959799149174211133266753867196910541270381892061997149861195868558347492199638420923984961933689105597742915287269165327292402242637787959512117816070507188540671862194888787914775034808267831389616432406208685274391794833660978004466492865440080104716981348650637707303141889112013717440735610513840640188958487584872113093250557202826889217045597128142477523251176690162271940664082941868102203365466171000987831515266040235790849659174687249317420369393839231491269160358054682582759232073788888172736895997829543187936995352872234381646003388469177631099301630512749089139016605806867507986125094269942567476638848254220903583832695810094603594378163369705262033795900056884406939432477086457120201953958201768986253457098111814949849667309843004205551405478572358101264759842069502860001568360928016336307595517102661911742019070379010749206802248531337247330620207246294209589634070384345371858603470248801257654174453002719716373210758524580313784487035387694019877486792286582017066926862068994066212334504620818273009047659159893769971905721484190811427362601891394850335533567627853424821947983132708608886631438228833380010033442028979582583425287822410859801412097773896318519315987585813687204225085566189924592230872400626476608909788924662179869634022856545812319458223979242374313442413705547606415018366975971823075194736486990901103989628094689964156620234118058096553677104546023595270975072204489693381076236898178824308474466159067436220071516316827525730375706267370079962908531539453594610528084309649681716538179501669833923957713765358106214734931833765701953828591242482520263895904892530288834586518159215975394542517140908368228836034137938236085695840266030604159934455141891283310628466241727923307852018946214908119086403162124128594617725160283037568087754147502920806556930970863051361979759806572519839714028857240244003724635573988239401821948489299693939818994478798371199649519550862088877368356416607116933899544619728853652699343064563527021218507727872301527875732748341585532966407170530840095387264170077545799076920082170553634064277397774409260982635203827918853681529948457434366665267774568089257522263826940232057465683473585076713034764588171183570855558618886519100304746503933757181799314013667171116934258207277165088514698272255395392574841273457428887731179231491430990288384265655428313063235140303888373427222097463413584088601836182738231140478596951831904794757399213098584081773618803780717006238134070477886396913033398386916147579671991526196521123623081877687284566648015616929021435603881346435928445574104636666163235651976356816647329794807793190851028938002846880125129253717602584359256842035303149190395554996554210192528421147049624008421909563343817516897263654234607956199737743468589297550335465281353333877873275315600637125946100117318193382538677856945080786867074117881175139743241679737374588239324527765727803280672893909731998059516990126552620988241643818491653143323030397635550577390825089217776852950922831845922025208975374734187910624228716447812294765712828847395597744421365223302441285084140570928052333652515051648834965252312579333524794970493283674270911164832323114987756497474242680386389280383044088632912861594165180644203005374014105421576390999797539485218351335058095811196251493612004738584613849623752746537578813957218566439501445596862327309356337732394090397189138906014425210614374996803997155624294969117840904966207354007037607155098622553163055401509655375539936467113178260895138997974911659820873818183853110637675331189706929030330446550210673217913731837065070252520344925793681234022772546392504754840669912032072564040736929738493332629026913924946585481186431235041415734618372103672591380706905388186616696314543848386625693416074355628578030152469382995075301294542901660343319056273714249337742424062417142320085172956000870297114872465860851395613332438365474729504001437420137822035044244958407549825960635512899678344248040048543607769558268001285677848949584853322535331546642313621993342592214545149056821041745995911437220644423431233245290400248587750463215699769003452137792574116983386809363895016314950443455197533167846151811367566944055396345784696209725141954239686605659967972182711566724346596312828748174519050359046124434408773647048899151339285197180382176717866823995743152873953548654431627053773474053695622948586442483805582243043968930870003798448417438166448740421478696429683145733572362915360278080391048287846769972190192352750915618380158303227988439715671534435461040568829661295800153632731035691465129497815709659447375694152379372319610943374968451634070282219223891215383970749848136162185714124046886818395566109856532950736507766162277605384263321519832763228933276030328533026491137226566566992101469063949936393396633856230318047386226018029548191833481491648496492322918080730884172183115371139157267868633090703811747857933876962825585923825915442790249732528816097209341694512373735304829082208265609714693645541529449436239117814280056047076122441448626476745097669126505063718900895514164310189609561758255792489650115784488981432038983375213472780140978832774257108427867080137793855992754283886328599662416138582281706746200475758317232187484625692593591672306301073945336209190986012490068497771733530357900460677355375345668235447963733327522026574083277160384282649094149097467515633643390516655006421073174715813582834443818379980293639483684105745616198134374290147370342945592807037276033270296979086610782136190946935406401491982758775146921145055689558495084338618839020249994194095666594577238856255315638736164356186097096342649674035345949957929570685452742447067438893703422597996267657708764069438249068151338506142402035683130358549891173816579983390302135574767106738072692768348382264607527380579365086812191748154818102397083485521533246760456751139801218034724665282822089413952054688991551003495721897214189737517147324920216396905399572397663892167461799840851346364504237665867302093365045050173364870447394921939935991567627621043644984937632886799848164250681401536551497462211294588802370851002084223341668639429830791792936842449510009010497026940484383808365474776909854826070328370882597398297996127522233064321131571795667683530062687206298279362395688064694247466628068110250262469092992416267658133411393068630869585707743059817469873658254571829479097450902334843490731748975200183472758318998230865482323289923290781831618777496941887753072455297513357263298262194790083100933429513843126727503270991326928815844195910420595260615058176218732181379885605675661840511796881566657325723340655314400953440593780246610169988463809626523984539360142718123010246465603964641217479694837072035954110541696499651870959484382946694378598167699172830387926073471975322301439238382458273961085592644753351513912799082180036285049629809374539652796068175637907116182198015082888136377811461152907541970263987935095697449616443576509726389172927201035051341631763959961740917586838829632219073038132136092910355139862723405821663157245118638090707945200966994450168520475655867097495570861191191664289187908109057755249785083930588723720128012971346852631053767598991905673016667642095724380061702450158665783425115565894093570668803391323208491276664190508658841612524092798914821313561481006852039280155419803387320805103973414120864599439570877542444202668101172705076832824785563938324200176796848087858479162249856038596089500609966624308377415516971881188163814921358237724129053723002893195187234185259553246151765395899383717337115657612266560145088398795610716146341101571077379547570973902670779537513239397823988617438690867337237683525438040796958300284179140795066671091751359207621679852277739216844578462903530064789154083164422365849853267853819767394244817941094525997539059049059066321791616491580051427952347509988936936965063413503927610047898280534832116930822077057145168363274024978628152673779232805565458925669411572401623997401298581733043404297701573297146652231962233697465019535825770926110376635859730867154772353170060157730712477653863440795923657621715529223356763583859810136332295172286770830112839381478911567967848619969126547686213878439545994352344277762093134447429000879881540708222127169656814703239843853931137129119816868118682166223623140383322245107162641374293673809337666236561432400332893631908981521515413003113898667488302856693792572595132819031598618911160304682429839632713597619518297029032633342282220134967684282399798207499141354366824432785123616314057613783621398713560511461784080830590091996868940365769882773326763764983749489276574579529440752134757516555497252420055555391168328434916874940890493863546995350756034602853620980969502453367859551216859105956862777943183508480642303412780703135849535605321016315985132081718179476630097251330988399952611145737560729963493951079079046502371571761241385077829592179431949272882058594437058322341428248227936281707398911035266184106500786848627044528773446162888431322466753637721589447160967173811346573166272994444027157566794106747808091539259683293254176640225263131908189555280910079121002843664158674604730917927163430118782722893808097755042697668880294099302403393159079585878075197877094431104347096857251631187997013331747293950322994547712765714122725103823497242256968118563474659728967736970980918648392906888775447285013684820577937252403958193481676101766140979158354642710097682712095136379769263162091501062918273909119921273837365455925632260872422789984052388451155119761602281154601237679559484290911677913228065032228718553728661855944678092316251709262373555141414505881918067958115250509692108523806119224135196995331504444654971732731462813288047172991979062029542896568538094658525720255096063406050434606723553502182583318884112560276916063693527673917442302646989477465623445214696742153869176568586048787669226525801144205107720264043587251418312934807661382880735084186853831104865105642644434224089244937993500190540794453022622685276004103913926077138185477107679277327549675045000999445619982641239251857851367380385790456010971525840673342860560199857661870186346036439936101567162649601316363175175592855392450877106378913187400595741794062348247717187401661807673461488021748198901755636592392446836572608972592642885727298358965880761426886326411356976579864319293300324204840993537118356342616035006482587739759033845319253448384785367051981899288250732894251747898573263348063698599928016640117043387490365461398636725765981619489272360745998070252335686822742690745510559239707969793923678694353586773588594987645317864389267799533713455423952232241330600699442286410671311229848676965342006884984549843446129566967416237964238589578137851611995607441903348579925489719332197088193465605606873410482494783715167222609520967810560001353870769498755085684403506833094254128922420056970985710381144763491070052322724957050416137095765347684412312414315384012643144837746226070230803861469425116880258302916994989909449313969599772425924240984577120780512541614721230302360865931390670284578602632391549438533615981727491381158974410340294174307001428683621710271294155917690892339254741946635586059656355775470193601604124289026578525785815512234385159085122748811288185771030119096129003581187364270231109097730512241264189454810893235294283594982527346691544326304576324969206337305013057591791630667276366536469991330956234693945472106202984594123921158668273043913986032820737246608944809238446708197471311668590581484888641168200282695380515607642040146838496576327736036912298545748753847488208674726443279688031795618185104244166354310497380488116336000866414929692419335493509342104781125105729971360414250570562795601720048389747855282531817173751049633584342505820607405212125930785680802431708371212312201641783516819405709746346068371376146967173664395526027705064622062817680056809309161207823857076045921369582108070947289605502254807055240504311109741654286191776288122673791019469772103114049887538557499977959456019317039761595845657629723388503594592749896981068462411572848725400163069506854985573735126879173000462436854969339777183379941688424000312858849933366870095735769569947390216288190671629129392240844217553739505880389747858985353893346179444466124862519758163666128463792276733171080468637821064356161789720237254194838251128943090414980754344767419827525915711122307647404463555108954161498819318556648865545163184713414001981131482303982655124144850584571275956443379261157780432293736583263349228470941526036101226661548065298613359784742342616865187619486645540922946109131354761150075696576793413612217162807196419492530633613886577662596877263255027105906850189933550930477374434174047859252290375457335931202511763310120786661744799942092531859787419678179083191286450708568576343445872652601003828098500600679839789817629533028619449253334659572566867774788099175191029208832427390565806839700602578613026848543446534680645528470096534535115340615926554359705287378419812808649384402310121145304829048806112613629116839511272479136028670002834265972961284677611320917001429209665511190158305060687340889065027811534982600079972781009878050505694990201686870693162325755478333285354145143057259966102853832282199260091965858108063309178427610658745685178453736657413969123080059584755184460847378251357446016820501537236134359246215483390801014174430127343485273288540505977586510009798075868564523268030828735369856448990377026834776981349730833473836998560745936897635691956424829533522684907798951296097792634536469380617397748336418112776774475063201823087872727273885998788483031048318734341654125687849876404577074756861743998247432229487698306687854915305519955880713379500669876982993508414071031343870916827373404410010077033101666218044256345099937622962121213690628790085142581609211960619617471193551116220021001549443261805887657760198589707659691957823066793060861856913816859832807325649328121344011550951156641737751077079531790852290350173008612056143894476404424999354949314096804144613729085002208019144608094441185818223691270546602031546955222330121649799368839255272217765070853721861875493698703227326953450991217342564183201490882975871651433297609680907255675226941575103509486736354688615372279754850747080143524251453312137949457502253395505043217429902673170668457253069529324456182320635075724378617872254097804191539419071609895755115113617091351606728520708818732505039091691730317417888038056405108995710221385335162465255912820028751192491851946691869083090988576654151794163647567505095528008475268470924474320462160650711661885768500774100200855649052954536676802022375923419612873785237448521013488230362423174064971997231002104623056634395468216083588721070917528399255397269121872563894748486714390117719541099863642545212551801715183844853968868738893498012034070271428950236010872929778113682592952463442401728902202640330570188153788408318141613272985715783478774087434813115439863498949009997136599267593477181615570840537112628481063650492540830750305816206791464352662040104739291555280787177157769576384772857701465375940096584653995175360075197386808269187461392635500998856012363184050799604681811532802353581589499200822559296583152432606468805325951783858940701063021200230009894298753932362955312966858151388078342636444191206438150395778431729302585401336230206731879405176422725490634760843781305133771600082636183148904108794988778064659181386909497462439874061889797655721291766412796874430057534347377656493985055007074706298351925553880320186605352988920059948522238014473514672215325214492451794650971223115426065480964506115980711889351061553396882861796829375866902182490536810132460507053699419288898314057189571792578000998182210570325501522441720487864144875906470247075861735031296011707793913488628212057068388933357242996380563303162024654662806910523996679398449650961864465173804062111302332546534484710843323215518655791358326342734297270636699190061412627697457287885470697572603102350216482471677033387991149884564752863055795140490621894825408089102967213129084866297553176409437243775102142826331460349855838754771915392657243103996658973111719392549311916691813451999287313640722709384896954296384660106746553706377759495957880053416874489574671709906185171363247540861305461989995716812495531995515467575560465743114690523434774232226091000317669251556380970246854632483241008130082377633694162362719336004439073454652969791203421180711025752209261143191643113286557574254861190471872587354256722610562614536111971055071855596319349631899234181349929255418900106580779707189734117133420167407382771732453912632983071409025436848926779779997971805807249454268288797357975287575905968995067141243955336758424439107849078935275152011597251302128791447191809179613473313976099723709475978537895621015346422338175487781037545448003010642491974631542304192464120279236162136477670860625457168028039680750889794960959496010958290490182699885436115648509518124477093742570068548066430691210151494065777924352657341947930086625695179376890423534686901518576400280460369962285611931291315897624027949121922500408477546486882327819649533887929413316807449228461599650472975563438304129188236121360064440157751893342175088342458083782724203116222790238588773129192745150509217518897077990006679875717795586063402596734856510302472671919171519895895786288461822559540807340966673549584910757505235536200130286046261236103196590593941188604554459237363049997460044145389315121966612793334721410233076063972699771849934794953854481383279907168127709219371590322106067321392545639078764002247709113259239512061331635067622780125354474192520874385022297921369418106245680560929218282264176369902358288717085009930902140088064964709544881020161666526651686755522619723141232457679541056964327332573850414237880984720713399995287071605875851571665391173783671734567609416082188227375508729893825886879271053703469570394267536904218538766053635798364117686971889517551459273889111102700676584379532656722693166840732865769977881612232650009885271510263420756252909414974002513999260367452287441048918978692663510723200528675359661069092721559734094082825600204237659202146671120803120203118366032918506830991881679873403618006383839542925829604670023168217585122580248318965049257409095701563270271025636974120281999665548728647875617403132325005692829823351276777235851276227885616123494757107415215730424392540768702118056419096635495740157127998924494427334006182383353249274928690323037545021125457276256824415389318461500709838343577469368410704846906156689277139633987345856480884568396782835701277792651239024598316391446930112126362518833307724178154771605015043169034166274553357303708700882680015230953550680388173036240221359341858440378837538304952195107246350949396893461419913994317273832022251835446086360043071616100869073431383633359150020891660408849742314951433593857761372061718180856323896754923403258981246070878563246537025337933514004120859220909031074651159944317483059109114935248750350052527182905371669281802780206044804235222337772289687952112155960285423288887482823841182332493024837723571528199066890490692698639360998505702268637887069204833997901248727076915609234404906467886236287713033062994225459396165940714280956544366723018746292666166806308119018809873352266071743077876758762720085882621388889381362743278048245154213491336773806816036408936228380558761312561265845315497182034362939263883609029260676357726046858470513964607207570448925466268578138691349054514291971659765109539991860491622630368609979143880101838226073898406861832063546565012088386054650846240349192885477109070358330779584909969598552159445236177110150771231386855786188486703683115258268624418441336507902598237024776344151524491823131928824556606607964550982306761316259341327131607184348627778594182370320521195365201753450052658377353590645837855716390873908778949565421193581153097499250796448245405715597158754549134990769133789871882663307276858027881890420186780684464577126402912212836030845981745342326356461216991368814375550907452320462740172605038061504094108932380216255803170296563195952646152754011748004305917594840065937893920187170464568965764271249141199410560136371383647754033863248005049465674810358832968387467646430406105944743925207201744228160748759078455391551302807390002796701519064576074123015678414215059641505605579184835166100301980064043035882953073510966796257593649548279957698834543602482674652607690918186327305051625464867140905333992675431880551742480839508362289740723350515380139747751146602329762471083075621991211201187575598576720424016340938195093964285004266105493948174691725152205571331574333429020646389696060805964461950303824280234130241483171042999873810689185321097780187572364148030612529557538387167678953012907800815033433493433565246866584253710374881799611346872780143363529857495972852882258557569577571249715991285038687278832404685202519889148872652937809952714195915413598363628149534473222690989446637673297154526671863661526139137375110529958293548791028017328759306288571331462229801804884334593461133098761220550818036879603466322412642049747514573416533187917299429826900084626902750900781507876906043381074022373084143886469548620389935544997517385218704714757599622210275099569419993996051314907865391217485367160670775048220683986620879693916705969995500381318870127368151038690434068758148812142791631605913594128827213401948702685196196060890873886522077312495781228231117695002170165283324420821693456008144850188520919976005337446055942876614568956383507304371395059765292045369131596644250512587256540344385151672900854069499493599874468355946760003580621517056434952496823730205511809192988124519945984499804690076803585547529566472525184607232065526783965409561952376984767421287942297720686400547893193792415621035927633656068960577457482725893927884351662806452758737382209253836388866933500278076274814722931304449215144118392706396086896277726774144805134996531561018342413289484509992010840920041618754760145241332872176119578100406506549738126803584541180230776615458206589043050169490295385085731645858184155565392888715798856477626957006342199080481097598311417366788470847803689634572787770383504887374829592379453141068441705309124665155486223856129142867177359866911360395769475787009861236908849109122712214790567089468667696700771537517378844541833539420230503409962882138397086376354376636050626795925552620530070099966930797623072368509052993932992272385681449575936025985200477854893617699650398962093105407196094039511388646456601912044032648824055324307974386252534395395490946131032068552177734397457934594968140299274941420556103922592067776119140236035226136931892188368397501367055625741506832132693915092369686447919414095480708244027624324193154981411731417736018574652894450297924104329162006932668164551748906018040376174701758339073327989358966646031289467249660765992451356474281177186387863007985234512253986795859740795587531786461248325674584225496304410427985117370717848869794982391139505404972150266288124989784475807113033568319502258467463265829445824196722103643578197781905964039854683040902459465900864741187978712113178154923393407169877530098205273347585328409425126286109462840489585676151864776695152213291179029552273839739657851823312239998270613079962681998450095610018845828578104557697328921398454372024926639103721305195667013338067744451613202600613798999033293465388828841341757993081943983543056611000213946672714775940271604188413308364160414355698265289191421368309216068434144022061681035974260484932244958393486826802579082562200127780566262768730784205744085272645660768870612518298070457450529412895816049923424961590447580291250450266053812282953537113972741138716975932980860737351949894565084984281137279077947794304072914193017937300232597149626436751240068293760505039673059408106501681181158663464911540850372614032568696951653393368389080843925666961671660688048866748383408053970639933716425776830499020835854087430280880403795512176121745747058712297157960916158993124218087652180160723305859984687609099008702936232179676198578868686285722212857423660587220319954042040818796985021207168061453034743272483454911800488453428705346558591859116121628385388475471729056112146730326950054645331504736462138747516119396149434011567248258636867866239611073522783935155311361533530645599435508845880324369794524493665146295290587333327086724933657631590234609402972692903011708722446192801951114311499684147965967574050651553366796638868416494523589190869473612013841330605501177027040004840864879452371592207428216984660436853677396474069114277837638683223819588528407974907359416313578383770570308284175102802835865297773991754692823764855476293623030937223967953815810194477191095520453794111548082222209140089431417056129137699546204562170303077684733373998089413130537921486434409841463749751062232769790692906476501198545216556631874679911524689512917141900203275857652988766286788408564717332672061958552265413884065937529214502572214264262475814505503373306590627308235584553863244378928508686620068016925507617561799576484626864069351075745160989617548139295893331407866732543022480809128489435432520940227612173241086701298877467900319413310454108078511675152174883327422883495385061905905471422370209467819505223627412203460125888479702369767268960235251040253518838962202861171887147230305523532234994397460328651547310492571144077826548062508805505466859895222144300290951116978856755564166414824737309604575086002242160116455582928505489428841715002371268877075691950816197564826326167814423933277310849678627481118931403382940687271286247128771989352962155457025998337192396148097029097970155100126882340876579292303394693368125984381144667704803179156027265467587093430952930317290013383431924973654073740604227674378216432529145927086317146077111597639793655702522970947456418295951043586262902324234430427113077287362758090802505769207708211952043862329543001715129950714360268001897259807945040145507824926027629421295744964763457429167763300950451936263548623359351528407142616442634163403120675434877419134873771705128392099084885224181712207089545586051201204160217020008371671808811940865519176574551957205630221096732955005710566478228466827222035924108651765613218759477421738423618302184898806757776427394631739853539295220324788589224506190680859752696467174969175410262119708223914028248084489211749343183282810785535080962598961973794308377340842502214681232481797754706855880727060015479977537738165404017939299555335340806316898668702603333491392454684920389594983989817378561023653550678745835385623220727837562696139610941567269267700997445350083529589812999824600325310925822537533685310216979063237916606374504291954090095734777731341184039964772435460799135079582318830408812383441302045530913198496684779166672125321214303109754131970003869991836172962769720533048687903367137837821367813428811411355486687345623694307205639510364106274448440662619104481386869071030673176300050391611763404599038626207210888236176083641840037006517810933597678182599696341044859284897592580638885810079876929024542690126299909880399134525430642588858141230506982747229688150000867009822155352815498257277838438112474877379424022039573314594865007382301396528931051505501333795445652467481358040516512299536880165672913810468494469124683907049762790020600556371631200287502999654055456061576945461316551155735810094251474937124225095592372789679814122839452689960444007872626283290179738371515879887286864005631483744683516252827778772173257552888350768949044593936650774189060501581296795024164127150676572261958458318882614586599550880125623977543132442079540819258887905134600432506257470793730039561556509304964390567337136355447447237521246646350927281517369164982646689533408792973216395339564825012360231104599442911555555538849546690095445327543059188601078869222706123080323655612116122324361144225068340144080856302424145171112299693642332548419286975586992285211775095443642612996267019952372823259495164453229083651004832449407289068738229010574471396345329668812870927931616711914460815546311023426291883573003082145034588592900461026486276338646106187231122765929588225292114091393017814593168006109480828958088813432362821406621301210880233190077445492485547671764690681956327949015272619843404616838493013796757490104213660345776237964571542374680697922732142800281651981864816272946266873012615619349629848207610885362470485780138620552402032128310064542163527331007400021707490005635044646629583763962660131715097757071532584002373948256539256019894041235603065551873575916659039718674552244748768511697999418327103459899781271394848488919425086384533364319946120611972053586349579422696656338704081461028377519953262037942073690552560976430146561635121394435976259768944657059913294248700492042884748531874042195049270264119456751699006458340473608857185001202038444708324745769833842285221185840992707027380269781186597442162934250111523112296603000381745186455872848432880765108863814749746504355558814395613306906019558211933330784479653082464078832906795993183846676872273453513148525994558596108033431141573959362875304832881924633752232027099747247142174626321620323078289463995418565498091626223665516329416324246552365885285353404520936764248829566849551850982341551239843215351473449785972727463630321004860744661048565904316993486975143018220999193767787982649798961687699615047547837843109028803089740798446134586634240073603664069227861008201192271792332988089031219188523586257074053454792285456262303167902907205123621412439039693917885743278589478293657174454052637404230823245471448502377646072264162330676304031387439762869538385766956201247804167032336122079173221204226070474808783572012083763217670217463260997747867927181321339432131607592665870807253272913795857950544630491797482075433865997055880259594897223017979603977903563979803766362770222359403579931665770146076231198313915323055479135337393564529002089568010529428679704903963170832162339313206504646305565261270191112708848521902130282176518850093744510243269588332406850471081401897411805656130918831365085356320489500690620112100427777236604445268981978300058891258729154328510817486165524000614436440315626306770418428676213482838815372135297752283862734993513171238053637749310768841119655031691121808137931794221595721380637680634581992299377292704022191824453207581416441752481874146142342808712440592485278242716230113181706427892033962328935625020284578124759299484686781558069263132971356512543241410933773244424283720266923243520022421028914204179451248663444205571212611780552956085473751709208342355324606796440375931544588865638813685175569711545423899504538474683136225933196432332824359048937458918159364920794551222777720867959022089450250368819848920827746382119650672160614792746106428644053941730507658582082109871677501355836591665208774589013799386560167927780437586432325335355880069081416222262687678534084718423883745731141017560426973814993538182964106422131137938202782718355837447534190476801294111086362302816436682931174461471178129314882090209797354364420190783823413550400618413140649377526507208154951224330077180174051309032689485810486264751186991830516023082297148494850439217105413780777469914116501768075788326046524591219333477513938603173248508185979737271405773682927241106723939356979304161940007113854182809049732472712905543554680213488447100215364261734677638509515431237605881219164416454461497584717475390508475626303702361937391426349792906350255010108860684544811325405540547108770468742550567471109654029945036976640996073329862986134106492484635945261664660968166964086387670027801579391303079016962739548630898010366959061643062847785961611506765038316067387169566891199950092003496305122109291219092671486840916700792353221630400029154999843817419279214336422289063344215755133817485097376125601288221214141997516953939314642604748157707547450117057254554787419320916238541107704267319844595129746666892183218911588133243534259606647704679314894221679825809922145400908847156913574058376025090131351229081315343787494154631621934338084348964230362327694341546234784106074952875011986140932158421930609102738827577164307395930927524556688394397027600096452285101680663926705617848262803228392091734873770049641466961542063064622833055024677812811666094116293514901082669157202398210360894046139604464392606546946142632497120036288899059566685827505241856141908254001772962559922888386999068207632505889710363956960895859583178591839325895978530983956844835154424928015719657096456639502079918568019142440280479548022563810466496547481889087657200735566046364336925978730064738962527720641867746351396581969342321006070346278598798395444819252696933919378875399184597489092170665568081587951018603116822298868915056406717841611293713939662993183407479896312666768361575407505319571067331751481186501850902096983011280736571647306023914946172908646980648859853012111153252980540451176311675044129407542882215489552806016122420890869295678810775516329196664236912028169401817500726349463225170438820980401667516522115650544162624510239467866934855855305314972323538776060174226575908278258026223564035824828171585553636515832629166892665520479343865003401695569699505377806250305077162007929623570031851522854656281805563978139526844081280861828344057946423575615616278507476147597389465737332696787747034907150172556862091404618049912175895085073797716974389379707539634805119388420602998463172056465968296070544447640288863508415052266647570953311429598447463700566818614310142325898597895912707297687841964892456473846567218737151777867112422929272651642193510690480331195306652349449344259625481939103787620590738908749675589728767077355464953852645312990606168532929780594042366414865571704179565873418223172003437916178171704487314990477992022102918688494575082761245896352460613685721621421744372208636997569063248490447000548320426951569767180071229500229198724662766817298810063120155341256515345208703211968609240496379410938687906783201685295595691817660990378889970297511933491100526124222084295667661299911750014381796661622005338523455097126327375411009554087153318273909642763319807860301023409470467327291542330541555185814052291941941776117722772340887833399800793244273174305630192754573988395360352536626873015136582199763150670499116981819240948941983915675267461438493412960315579893043723813219875104184451228835982582738750677503307960710089096998326882261167012602881023225594776297559826255124847182643394718831212070169977033149358845836952981863410082601637857454052713264801123917519837863800940388800697850797887852649421773004254520937206723603488585385171349813056536764924950419048887977350134439775338607175442943500576649511626366652637654867062253182789010100651497307609390922861056059811621638241398516577149480194532648732115781463895078219461522660099197315869583686839753018169466317374453662450465740911512459260085985300283232702986508001954868998269636260402984268082071256781037230594578805480456000029498008145812910715820310175778558251517865470899309916088358507909425673313365513682755007830383786166791037176330854870726992497319966568529938060115831314180097872094820732286819057546137328463911779311877892688715128974132366107070160499526757570859579771085245652619850743027399200345094913295577279566217058520645915485806784094091534932440898956360105934779550794060801053447789707071849692262788245629519272472849517358825934308784032218928685160485377593111971212325135501725770643978816421675150464445094310590959174417039814295773171825025181465563223460803999554232943192252341089533446337160966576735744272597435241145316141453898680013070074020991599546050948834426061918269575034483879159111810862760665406793782315031558330282754244681376614522743097954819950582244272216800343637718975661776586092009007330427474882601530200070065801991429823337458801162603514300362546357093372513400479913907148170729877415725638703756764576181039977028625610917649845521116244115140005040772454594952930578989960589479540396286604231169511837010574230207053056348408900532082651661089994765073289384344125144780695196713798601449781270269722697861013179174573223652236608646049471757099887690965059350620100114931515454966403286793531292696906054774741433649762214485151748544653436823928090243092522077249724339199497009235080257305090872070378862175925635027327795597426356147452615092455670817591566068931411775158899251361231598335272890520396220860286407665481730136244564719247931640121112348219837409198340754193984458121217677828562171742787735065740858714288623676466399674602649208136153390875981511062694790721858444205633031621247974189081742731994892507562247237907772049026619490268175285901445265554838436001315007133937632287508905374072358773269405534771517669459380070411333787662829378351674457049513902928419809768528250888855939880168367280578804633362039900288592266218572505105183513953701689474670829301455318367738437853140946800400908003113021239566325192500562316790060446247220587189022869872472358296797894884706278540353389528760760151066025856130310112456914887375513109695695077175736523298702484163016620260332917476374028171507656163358087913503538494129070599098102406557998725150399455471252733831237638013992431110498462711982474392649405455141520517054205891728663275873257703816224883061011813519699361929610853642486932012813950480376237828872140051852220207054310207642310370738346743150736997608103953901678183388171848305174494422333324973893104625594633573292860833274901605566911088591885765839806459509260876990968182960138983794812870664894994066169868441941380074639120075895251810440380373667435192188497015526768654949373068194645706565359799870998888919139832845664360944255983641795314360160209344236449530788735362157098250635164291782806235729661250448971420521848381192057364429108314847737598002077094148294150075480496254026722300090837475722279183666059467369235583117648037194813586984703139978720793065077049236368276240515807731057258862826741122528460565430805889906798466095621071559451299597065766813121358248290379610663132483830136812415549404628315477542375607058729227364219844143481592778237592449457704162043853824171642893565849611640495256517019343944052546397138564823453653828960726788529579928080744991805079796884452801661581092092077158254611443824098956831013201141057684653871558414719381266350570248184556358839544628309558928023179163753487232440845673481444383066093655997550028157195789261148578091498192907037296613997153560959253536889971374012831838419462395610213858061477042143278571079301914402706218825467840968014097539102677940777201104029161220139227808671665382401989354303726402332524471882024206667687549857027839335789324447604956986198606459394711615459755517811408816722719820671845193153662599948182212562343567711843317665621120825203374762188688289680456290956639608387546053282981765836606078264048921433425038017011732207200387050926994758312505713937280000449907835480048008160971985310108558422510522418171112246825739233216588813995806640613496922100254504135792712556996311356262872222783644364569342705835833113836975053037560909353397954028041454588532952069203891886470589863044982859496005621315371053362237975114078777154207168742689056101816074802786931047284866011020123455170425444057390898781744554194338960985423832136082011155466385213129036726925075703057392307959544929016731410026904681034867209009153266033311833599737357440866349264953990467369256784453852274259480957268980253128139148906740386368984331206651801000270699711892999259408414500474599591320647985527688285653374962479462327863903295740255193795777859040831807746043219240022165667492290800086921640135380138118844988984293985272134169877606053428765795096782916595761380755595879276015996862041765591227877421326771714635046692291445072805668490114988905614726585016653159458289717686056857095214746755578500711930593358737090649600485636335474564405671346883027456376525004479134250245895400197754805192005513665986418631825905973700600905710126047311525633232715748987098735031930639139248461146715545543894824798765884915833281280942180689680534875193418569356553695156799814341992919156868679825282361723497383012336979210424013966143228442606588474534547610991447873713421679871507618115346716018018079948967547334364056004916934668943393852896053756122285218076868880804153816152339423008706918791083302787488019761942872344337231104630100910097408357968025414741507312058089310415678040242870970461762335513351693259275331226521466958007671822824914291044522275538244204298488606250668856938805607903604513303076022491520180760310829004435346490283753267216156660173491371272820656508867609653540413986931569944906561881786438944549571273246969012909761302597286751246561683755665216745833707430374512530937612337955563971589729489210937011516772280800350625358810272938002056029680851627389001675323570980899394293626037184127914219658737886376150102986184895618327112070768907508151214654325234450681764338616144792532400407697765594670979559122619724301947032927527604174375667168399090688936217586128285823842006857763411271174216635745303963971904047261989838104138370273283358118076200988106678796231010686697468164032210948754970971568616180374344419664765781405848998221232386642445596622148237652952505777976028696263096512821903801871025327353064078893867999469079586828881199510849916766225809868190410472945630667738299249307655987137098528492851001134971369774662345701359388494382007920882684070586459224980028451186330091604932997165695306057875933569198106802395103500170055275961694796130030056890656103042979873108335760516827377300775658080123177844733840335192569661354958694000950821133946914170980049256148358779212395741769593719499934147503678069422597323891725187066963538566400516354535704830276452503526721711777282417598114573729661661754877339757381200912837490698268690415740510460223735518388060533094148292999895549293403978183413348609942856701386911721632064864837783069470537420298432105184332394668617138360025132960544096150077367187967700789876032667017463364815062543517835237472788191756051271506689840496368216259799741687494048076192807026079213756872392966171037819047139747553624649206882844402968114918416090649205042482973799161058517322963623112048610241568342963888522869472407539527799267500397526406098462033897318919517219113126244011706943675368729795250155659859640149627101318250438815005352523505586301252563302647100964330259195042047225012705162450162982838086855763022292165376831382521702067766421752116049660793872494684362794681604775205166627285530393198566889394218075281151322221924475982579236072749191491265082248985760154692578398230207550571066030878709538173587197668507687873260459456682794717369077444743199335035972486941716770054556397612960374039672344952875221214976686905773575165194641634953732462954269151662933714693138435996601634447739631595879728997561286477857781069938397456740444842826906316956981562962603494530744685138326973255215574428403936727714308484327237320138781401961919135273719539032847519222219195973998393545606665614886230666893983087020273390148594383462999253997370371314073201590639569294663522310824476018574389063529608393010127140044819486993409723526118640130695140254870782130117690365225979893157765144705257120949577021800545755955128418209112687171222530890848099942738369168281329767909255434262224380490714368883298244389539016096480589086997746318220445568895151280767476856456456828476737751942546408365060143556855716810570341492673815743524794763348507345229189264600013748369838460110598795112057659523534552886222807801520175388451096494114374153762034925580777523932967800192584446706498870246532155603500863796070724695794092943883874303054736884756916266286162861706391465258884848447406408343346523310083050307285172064547478120735438269074438230650859125668097506553256227749235579004792623664779213981845181415880230511285838951918359497242713332284935684467313433079690399905503371027989358880108948516875772639945738705106429995582617792465075859680491688892795352053100341496995902259954468654110254852028141711365845410993861136236244419136634389454843033686069954732002069805302807675856973969844802401632351988204824625209249959855237834616292053857451810306941476460190781806291456681426422836621159484376393060917383121297903019340477500035112575456689534348573281687451216328683637007890249302867269229975746851584469559977178947672515061738366756944066423520899152151845451625894354741917008231673388550879739744992972887935150935518225580810881901787120126693307774090150930169111466100237483895528975350671939281503319358778358021414836462927205876968933434150265506415166493744519120559709887383190843079046147229285744270693106402302121518553477836101661525302507723654090736578875025999103674322150922145862445274810267336567394747683816362718982847900161039308893486801844506684125131508016657431677869006944924444674817986791509654543112768543842790650553640984121427959488852923224387968617818794121675707865136273396514060735891965799245195290538507695992719558881028513625058213845214357088918585654237976566006776818683442030317768986395125525886965825164574450161521697127109641875279694605983632137745005582434717541119315528027170029349677826994439384296147353088350195346383226673969758669230539376502557735694837727688057900122953609419306271739236763305540162973022021509018779236957684164486310682737569536293613087781390201864239400303118066611599676596556261452580819706031687691649134608227648592065048697075248973033986205628376091810468187922162756669115071863142808146306951075955749961738192368271922063083321175708484568354519950628102265126241492195779223729424539504767952109142253701101206846248393777024314397623433971129680867924963485053751209957936918954690143387840648480221079542715086064022190608018828477486986651176901438416444336999689528067585377768320503524479318236459282380496776688482883231085166462345212603479154983044100652091302942354693812224037763758891323016204259506796767149447630391771738414699474091086674568060082218820891122631720388114931174048513434185323524381528882309808035155063443069414679145691896654366342875222865234706379156698529557648597824867575334540022818310801289176326479440011790522993896365672734110004393037237293835276570015687696453394164838983206831487192612470759860105813691106924348242573573025032364193272272585909820414742572940590806009456010942791449924073186269786428102815195398111644512941472853380793002580166657825121901246403059889544661982025265557250158030924521563680501389860361536428415296974577461919631758611066467293423295643712047425187788325502934719066209721658374710883123661852252307019571570590811201469564520469849755739217398692222079095194300157843355499149695188465429217642869278404724365228556212431795513701493519996711916921209906871211736658490246992560803102330766295561563630098956874520066656430501253340384403135586066703310057936945833725707315459219694642181208918796822576568344717765081250815315943468491254797219436478833846030972401245829541752322435010550345876990826630383272464958654381623650431136976071087079187896716933262185762688166896527689059210871526347871435119483061206038216641927363412882705408392665305521944994512791236665333514081389079225221580013167499241193024972688265715902026613269306365130726756223102105790903526047511092587577051512035531111502526317673628285594526202472474923682397436346772075741427072815546643570059979836109959986658408463746128040475228473742843307970385127908726206266116348454995038944117596481729880133440351935027329213018489535369164520647074959451693687629304230009990105803349937538347112978547550904902561951497424771553110579897025837904390590037416210866866517757511991451860912402263771078573823489065579720147578737828305563453740660770775363401151487068687458449291997472667574348456465657396174427866247606324314105186275531038764857782602889006208059559096545519552276668675748689552979398251413322622637727058812690911401766595519109165187294116768799544238552824557255868989790844547177477647821726336910918328759341165847818814652999953762156998919430973913866695589172774018151036757977269065952497816232539042284416625650788087420334920515721562582414878487752943762535472728279936152657718096686008576807672848802956083335096708275933327698806315815847620649376866908590887944186229363938614531475272494157630770770227225067692014994565180672466745441502135222441710151925224870478720590747896413212591271117130252775440638264041824785974074130260196123473876050702270302074539108076885446105622358362229375088802048315958962810074519958592159732181422142152909163516818788711301181344324485128987127176536538840968471917547855499669127374186262675483607148794702982478319911962808668311554013250291176167292078614589167640344392064260220469218361806922016894591273807018637246647125096726069219668231007110764385725997884850654338412886637412582110514237682749385736364262922150555321123348784854435570985328954549156506014791605057579223496753528538449300523788976057703036648234838956624750281426670742394129868616178846815241338473308823660322340099555206508241546033530300502453727796343344038946147012198864867490457288165378167784194956085219524421587981747120433522336425315353634376485383983409380163923010662235811657638272864940695288464180042787524524564884498124985455135367150331660326000387725618717206838010785892321724203800648851882929194457807451194235133340781893419958288191120730458917014913565716747775825654654672934854978956835222933925715797919116709368583118272085989429076364788602316790115018717429674952859161128303671607911192631941483602584036276081651384724029355016022752436722113560995538405310912591186763369734412138883362436997640035007937599000766746630303829532653755786134334475516220599748978197801973482012884159671152640798809933817542706685557225359536153459100092519028075769755777829849635245273277286807644211478360772353027233602622152331100600447176025563517237610058474428053566027868019525686149741894723260540754977250830562381530096755492537371124564510592299460666938893553546337915401194501984020422544904724539891979461777603235153257565351203609346103614321448255416499029935544737380457790255608706520137289567620622248284319287967271066299098598673768983871537448750505963274549317286447413297232189407129272279580159729624682385170526343066043547642513385330172676266441090073235789725908236724182557481512366639374748672068941021794785134582643799579220544098754518653826984011291798800636193889465207800186656404088212661488888271100758812233818232325043434678365963714082281141178502819124495709082606199400683315831692301759683842418965854540692137503920779923867321784614785891297453509611547509833737836338160617745125975166989598078497222376102515498386546329514920802032787514119217266725823010257911304949543020415108011248264289831242503135306502630548358491347193543051798203063951205788391161859026382554116535539883705150420521223565570742851170963732052894207870131464395412133403442425796571724976952820174029630726211329226414414017020029022783307109527624494754963736070847180818850964544111943239426838726877104009809872182295132596944121877559629921486413802884053048189842551881423616082370699607899901733306145354641768758037801397644017080688958963875170333816430504263815298665025372073931873667785185324640556246746530808064422746501011660293588353122100666104889356291299828900477285135982912739637720980766530791799919281391169150355931168479728004432579379796426851770537205232294445524872646787308879864885444262185344438345204585188351863790515593537491070221169335433484670152438985612254506520242711917550893360063015444363801216775578197242155017656888571558205283471393007484352078462325646806248208308829906876061413271985981343588161862396363060247295623971156858285395645969862425156380016899240246843823873484247108641466045517954558442166848713328932972619041133859542658901564414317305826776840450883228161912390370241571577729928620955541777828382335044726682574063580127132998470723006938225996932993385616144539228659783793538052179091127666899209336592284894531529637849938378844447760857305528695932207418354521811575506178960333695520194738837521708214842992786051220604902420153477682995385869191898862390015499822548100015218813193187478697325507902509241559415173211168726438099810142991804252716279596555707148244207603672004092491381112708050017498583648349236279117441038837157322909176053555098637216077687152789072198584449668198142662014239159483610923612546623433361568435713565459410096494560701619538253684341566035304511694134832166874874835135920688546613294776489695174036895346128267964938197120829342572722299869279756963298896722355161983460960318196580842489080333690727159865668589015693207797725501866129408560189759022372252753206098162259771601624507584338348380380225980222571869597498406511942533821719366998143347538336171052668185926147211810337764292773610291928363376836031333010989367562430645828428889362380810468430161124914315866719178756660461083927612763506689534394172992774299398603074451129420117443909943064392729115599107398589173306236498870540844492178887239456082155915086734692902642693944735338250590991298712017431050829268519835230252453092140045143438543584637152723369114381150044221424000373672137316679426895541493141987906232885206023927312804557991214523314948766008254278494898483106625924216499142718634124074070947715199022346203469399443072744572664502658886258480325974996500952452503214827331867900231237690012560942102116802151949347915949361133458271381899877801562317487398754103148246342395672975438585148031813422718622240776980716878371430511606706457777680415747340606635272663815296258963955803165293821226286341690409222259921800778589392625989100225497963056359540640363938144079030042202559844694965482916021697046096494179605011399211956613038411087790771779229310320676755380780158689675035007374937381070301376227610089758834929213270242790528283741802944286656866957726393763494910262499417416419717020485431174734878321158563326407421391578073030485392811834960605179576999784688887203650000900924584018094287283026819367952437166636915538113579690754633066330070869824254719320857073939166556639654800954753079249128463453903404754569897076034866419336481473545551291093528307570725120093976592668665168365451482335230507342145816792246426723779682518128940608493496610499209734713209207917080463234663751200108217858160589084562365221750185216775482974734080960317958662907280979717266389789383911493357048121092952787657586243774346650081264667005062486350920313510848614867822634857882422141897692684412520850577384742225245100601020012863025180198187136023647058204194727410059733063338052583020739675420814670156766528219035918701767723183049040625202128887952667126122246021495456462111595623187074363126663970277210397218625255858529741998317280232421053250682606897092975465346132577063450956447258077603969335542407072580608834323787394431801637298675437868397888479958712515917981372910039389074874962264939184364955824248059972946541666246201888113839737579633769095963865578435600303863153451330479009880074239860196427418124523588381088247418115428526987983451230993087279880751262942509840351359220333219397879788042399164869478215266637490055628785018278745411164952121864764095135499905696501540445622480357275384927986337810615877589749888755329067357607880549911497419591668476460374096085694352558349867545445582764048761449183241677880288186833769376417057147969969061014159455030290907588417405938003785110831991131559040427311315735183733565993569923691218295456819776483586705872966783236788304325268556411354885801785698541453194820681619114428449693251927053033828701609870864722864707945973616025836455189086912458800323637105758479058059281746164704225338864618968117950346335369704747692538814613540708201517299267133418708712719726048221596040864243444911291060928407284945637783372928419103106312614931829459836051250786754127715361494932757448763102880037093567645957543603533239277830539645044138282233235788213098248414511173343805507648794144220814702595217520159558243423189895008091362032959852135055751140994862327863043388425594839878433400003315834097259185668329387240717283911101552934204915730208221799000111354577391345495938148299110249855485252783203517335957450042908782140800884629782340680090826222924941763103201539205430530261768092576879746757504982367790166463563391965787500598921167639568209011864159898559596550379217094581850995527417832410074211376361248403201297167311525814092895483159354740729677219946654567023010234142668431908037461666916873467802151233191231300968729255195220351713322596189759242377762657231593839104766306971297883412836548474225568547473321318637087411791913633863987545578171908965859903182165385134193179566494262406301931667599631641283305222402848990645729722670855034214112471586879837276682754174409378631003265130901538479769662022277350960394268102477899897193212039013382597390188591676596328486053668120661777012778739497573550561854649116910339321922796323975428735213778199415707056897329885608899955781205996625168250877142390556687058720982820979931128476374252336479018605295559221716423289596477801429128865919520644131199623269741151553231930384440784390003765905548294744829026959339705402521952525090963610916879871496811866548608569750497998853514745026302028840126050358347785348025586033482884534352682608469775304880284078100543225263899746996004304070504010823679281183214403222892492312977665018245047179432433605226983564456066281691267832976864785734562381715751944340679094908889904267133539128932471320461607567038158252301481995875768108947920389355912574636297293681818417565024893232228259283354529924378715671824097637931328599122444460499530638446101842397717394005640972155068539368497661400435853546032450246420300290646518591504994249990910165457008973340778304380934575874348619090660786993153688883514448220971897942546865702189930816874297583708612901242822179421849892505912123075635298584025414820271050982150499831209644593547948227699776376340250309383778004843351997132924265887653191343338857256483381506151492341598420486762707494135994677343272508602137941962179271263143013901588352382268670591982467548366309535613447724076158429656465055511867779319721374459079619877844263531644859350210458611716024072869849184956159393418009484351251431241128160807104706395892473575363964002560704112518073434558822572890578987372181415963654548619004979418320399546316418651850517620174579261608373765021422473455775133372456018762760634755340877513837707447356812157826686479653082051529088114436064464681960460150895710269896574467684424385620564731459378061892663764773012907059946830221008557839863119125677580132117848370805252079816165560529183714133339138670192562111707551796422942219292598417019618571827978610841134448597772730588095690225363580242594900665016137250225652978796544618024570941095941543129706177957345792489959343788965812414415529579462335231790288698743001190436469024185251124531260848098317428422425316457394608828463943032310462107527844605785583152890479715680238383954256506437645697329399788402197369484978856905376179423654781692878707357444405921662539113636074755276202200155795722664679428827271287122176635962303126753721386430301524688134928940581079260039624469793496616410494217405072236727898388071552739922911541645508563395219309773896841616994493479447154123753054282662752295477249386350110080047180585546381258371599775806338243738911162180934875528351385775483771317687186910973451285969316237696102646310956972434168769384647114525349001673925015124892644126597885972250638444438455095234225727913549414586543331839026891163082890723972901756619951285733444821470926147763852278674661049988993951567991050916914150636194751419267847124455367086184310172941221814570106527616246181825779649695043221444992717923360607726325291547338796434979466656292888014090347526773775258947190078259226155395634203412943214973251690704343971714568564892563832615100205564010823216987397774494235900075570576138079265271207098725447595507143849656096135713595833167257827673260718714509065771969211766690674685979346350789982685344076147807997011525260912068398725876943659174960168836176753409009171083624519071658331314633094877601645996667544708684969909004528289094170243234245821197036055974700935513702765555110382910969285387358761275329408200045123589862077426163008817089722875675288006632386639341988891472504225225401872788276936264114338614600454965426718794738240022039219218781689853973306740922483094200672791785485906385485955433153883753706792852366556040169408475785295162719630702447439282123479246361304719148948484825268645903906723842859721937675120628852514130126686402242662523720161172119587785639480329322911836645182279832701963072500570836313721987930345861262482136383611486974082060028019669568294105747011879797780188828698624464276364632930892221771331622595535692138988179427859469037992255939143400002096753470060465566760734122154095967677999605273794116222755342316851045038293351633752959552572176239294201134254169093823543353522088519203948205630623341516258964953104700245283939117913183511649915320618594128573351751656545797921111368430203467833282793749444656334984041599861520693093408956078556666079968490555005045784540626442256727712914339608956852934543856097883049154164446447843596748719587585202216015646342431449395249369629327445697383551903930972613758861361831948720163772890251414779958618658274143704208005621432162256652097215800747270152021699340164978254854470190024611070936283785946374370371866247842467474748072979701089716529587348381340158307999688874910619457519324474589398266963071221969455617035453333488344240425965196933469269100930043824565860473005126055952186440908512621723642727246644930532921985470289027831734733084111727829720236597029197977423543976719075280696557339873477396729394282177965512498311681265452277663741876948318815207038274708079298198186068485709627059791971553381106294019245073283406825748394566456006462018819510061853329666415370551990292543261783936792687501087204641343290398835347476856906541820485578288931810101023611418348212355595859505943677154847012791268113728372474730796210426951582226767921997179489655887142643593874469182360915909378542713996190929959224961684697029118752350079441246502026070935973797574090405364691496189291265061762464017958720001617609100127515990652928590586883553583990010539510869734289123792627651869172626260585960177614777087226386149726315014132987060646021675174498334593697726151646193596353243347115437594480609479828319265208255663738339911426880861983046189527207847271769031014767467221577014387493383811968161132532853231569213954221307656493170484565170778925355788161296971985440419962356403910087562664050214116336521061997075618127777852842795415509588330017423660699848515152683209775698006014174078919637132034649857708953838500086320200404203849529958386611734325224654627704384393301913993640813438696717277020169577809220007152289250054542146641157200491484820633331109344331534690184053634283540386574447689195666449715347520390334664893325855138573914699621245181746129279918669421491198116875979499743045856597340180153640342317083813645852646934177285006306525840411970436012745116931587553522420905157318769168741775447067637843227382734668629881253926360914080735306483110543528316617573348076055630883233538834965041905395115378916293631695456204258290750734635611559808532537789678953064872876108110310444006428713914891611354098793330482344947733278742318602956607680011230467375645865261577827735894781155092805311068034942616586825118717290924333011605028777303315534383667256556761113811802138023728514908246199029108317753815583034693947947684089946740177510826175319303498665359808826938765642797460423554373670239366052373171025611168528372981270524450779388166998644866333921907344907013762979690438992219501305551666580339670152794968089868655428756103863647086859368975202028733694217729194210464761606307347211749569177149887444999755962888072838823751297343587989331263489413004783555592366745482380131977304398993419986147660243027962939730175161001553875611676770411981460629840400753956983832373262679625945626901542524880452657444746775023481600471349803382953241790830890875549082192220941908769832501533861574680462845396231182934023460118246191956576355806416105515253398119621383109933225822392699760910621157711390110489979621956218600833180488748394290810012925931605031303522561052677324700293780025273933012720110340261312937613070846045622134445663692804733921593870797810613559037231850831808960089224885834437185644670292713949903364958628446111402901343178805685124930938218440232865529477183274680167334990122596462492486922676409377505006389121247053499126459700713955077000240497054187673897452015236382100929070595931267603814315862333519841038320267340094039694715033819682542375010771917553822398254158034933066520378308731588692009229656737826740730060719072434478822578071671942537079578695722546865574488472063174028148028540555890909504414848532772826028655994580422351201828973238610539799077661527799261478967554944306303678204719731809116453978197575978222470556032039966631860439361995007545361262635495333709968528098353630161188899035112526507906490574282937491731411535157688370335915556448430641064412492900450564681261899214232883965250186006103271780638651918411392551133744215392511610157147061323835714158652967256736614808893457306556013914188593033806479964033796690685840336267660652461056645534079798741885976729707647114535731506039049684839483247295617581946876358186005535302607577841812442674324204586409857401386325688177518722900678458756036160867549757742494534778646478132869174271395862679454304977209427762104367264631761357955406444665063229952594160690151106479546718628167418749812989896222346515569478428602222194907860591442553573665945581610640608392264084555389947784466812916739794147285611197547255924356178844355683787345302670689688771551295297121527112648324117442267784329848947137396309367745446762869029330296703430356257819335211671102136804364877581193779141758592643380561217642516322240236158365445230332581569246840196640352830681139182144815188368670852631693659418073517935963618066194670056536404370461774898227777919772999171212691726606849834223724337138848322641855614770659911208385271569860443713601201544440942427992959057039918626295219536945055507894483247060863076904379277346432265925388608329508109850998045457563548924633219400744191570957057296052217820743803912764522583382892640524269413967122678356996046538617757535897288911591270052373585073972350524025779206732668356221297564095911867497440246491424799967718362121299043382836564770536416439544550387402134429617998705710159813475263189685476536016584792988871505955070094462770629224078874434574502208451753995819868342995031688338571402007418831994427873703629774375354319384423538531089802832051704508847945104171746233713452094405120508976535037872016946966202489478126629812715500547171951875588218601358999071649555286217091130832877656728649800284909809845897512522908052966782364374279062180747633971072732068086245216647789084836749138184853652338567258324351263397568112750670144005607051561244432123451390889783238321326669922127009436652602543255959492059121394285082562772536304564830515891222983429050754415492249714377799302094597310863962382575124932227126593400478760820662303618499626276235311613914128663805221870389992122647511818381827958245883381260951232407490136095882673443062548362336372422548696760164868603636671178916801575399927960221749091758771924998174573061380071794907124283870281265534962483045559711157022759514198539465813925758672573040330670610896657533670918474915284470902454752092245391551613069113740990280546267515999501077906062394755595561999388728784873639625117785243099485250200506136699389678811253895424039970584418206641376603890872352004041442117012748548242309848589928934018462200376789209120838474236860691512444571803227608465869638073798057266814964861507739082926241527586291162743982080457666482324843042244629617298640111503402637151509633808241268277546384849234478009736458423205786801033226405612958073635750008100630191182237376516942300249000160192122431425587813902707242461580348194773045549605865712176971611275131851854977639216206519468523973696152820739678544422808364200956780719727201473347755592840464088184029487037712858084444034817780562861773974128425242496142117588365671124494498055240979570665051086879556551906253275250183776794453590377957144335395036257290313394545627874665451658251366228781659732016214142873151409444548021579609786997253434038070382884719920642900046565024709371253638402380412709724686233217016198127978467770958170277362506110700370468237951127275537702923057460254257961232692108170311915117944419909819313846345500464874726954167055292173231648570799942268264252993806634042214970038556759485880250269700517541833698402430156173608273702535303550858783689236766283972186073051113050385148846193638039696738564027288733835474228347536710075830036074880293956924005546810018775787195491729741734109919858472596529607832519665125127212350966721506322535519065432643791732796577596701867741391752723036146094382044577913831301074489449687220784129116552052467753371955048956190330824200612171346774357411753513033024139779710705017104767467383109955536505022925456365470977880465006529609193065489557158251000716213850627410914028710106160414736536417069353896768108239057739419668468079085793059842551434538201695160159626446431517776977301506636165007014483258669953550535599294537961933079761059595040993795647783288729130247948924874213383183047409423085917435668730471326232131591126331584891706124508894735139053756792197254229710195723652471011981167472822416351655159194181708170136499915722765301201017021389802832218973154945590332013539738746254917508694468384822291115575157098875921991755524679957807384586530320407021400793909917841544840368321522766921324996075940152740616219329150236352853895944502372221836461644423679559581591641027399121614101973152944967842171867985203716136180489643272254161113583524830205327955307329769806724231524679522591172818984662541232944424520110985070572843618069139762340986938118014543672620709482323630788814203143007286585441915441807640861506421550686872607331024638300412647575503559466764686769482278390533088660644812055639766598496510228248441567367300404120222705734501735502049451033256453145274467156433567641743653736057249507923938551892168736100870347545319160052106089403730253626869719514623497883199319775376648145656846672401046885974882586734774272957493701282888275215087581814108837926585882068759966719029270606790631054834954679342942503989279691879617386236103396200047543805158705840227280579638433548627022378573209255193472633172138259571916535763550173616118380700179579298753769544556989358911226278071641570198311941674010801848605562685580198999837659966358471680058509271192800842489983243306609509185112875250514663494680627296717676439967597835513885432355000516457111592330039973862059236501481549132397755268750635062751017524130832612145411175459618030323476967773606630406200752328059336445239067665431173157851691112888896210179950866161535469821331695996188718768960626114411857023601382511830264897912828323349436767238552395736734282143478596984476303289266684986716314205014384156696595684920265127547565909220548488276488288918095448407863981782162120117306570843498079760957427147745797201992105317326491939536022940820599332178792700433472697902047654430293034060181294522165637199055980142234741019356200432531786817938659720135677116859374688965610814790854164373891715558699546471031455301337759178494854979348592488430014926735582262079900202875598125932041122013623466670807687092849407734368097451313250532045663748045188270703660262530037137463586281424318576738986716525360171487564187113406829110972989055148523043862333562415665654944621218714060910369804359985750242442262108722547609427688123981460198238705768830600830809681835849643274112815044356221351141759477940839043454031049638171133644438223404849895385320620604092122091420884849504233009718532583422604687816458388509901179132386776535746573543073807690768867227330000138611608037761044952603948777283892742050966363245138790977416472401428002680512141485929692877941397210308154438908154667559491174893554328364940207082830689692389177273035072472652150438929116060236890730595903715856297309863491684199566602691426724137908848143228767027114586694556206209397640491819289176564423981047499770895101603944663079111840865897222145149679473026937563532846090455778360572105391077396456626012509654531063576495654466736688160499959138534594044926364661458590238783593926048923534398462233981922828061762313329751210819287830152465853744400008200985358689261715983709777010641381441184897673699651761001479580324492978624441050070748518533620403570141138258049292853626999156851907625882561697671752720014519771329303632453735944368536162194163787380331682573719807436972427102042774337174630238864120584636589398459475243457735210709690997619023413273994883523895261555686646559801818124907857140761021232061327375660588385875721725483920152550127493732629158476763479338395315385906539149683625370833700512078490977781607611551228867320753579646278645117519543509170478684576203656310095037795701270475970097344263335468074415128593623923166137755508306387200329913045755656448597391234070908825292340555963333134594310612753090379670293875636278003233131157482482051965712385028166953118789204200774076456290477837258157266106750896944144658560365061791994128203951026863312989790619102859212326424889335783239726345006101480383271548986228909167364513099270213203737636704822424014305251902918113773154452204729813295576526020665096812873753678410044925340451368320006971565378625430551622920561778243741967240614694653356672192798740287566393057404013606550910442524784530876191074612427576032589675754636378083577773298719591269823500706079227945042803787975085455665871263988207366067047274523887821255080507578479061993434575146607134553403383648693464723996644998652843086748382391106188725074349603462446719199768341796160117817063130057289753985239008119439196678829982673396005019992718617236185497390379546131785595067664440345292194303460791217275478963769689582413562354027820310361930436962751876047884670325234251505675624926753117846724814044380562939673729205012988115172181685851109321356039014413806402357594297000190380427914089542171344919156596610957322651502456536828888505540402367295958068703425148530484518879154565918166810436953418165030833860912239726296423796419616688123771797166143195967010969262219407526501789779163809116935208784880817784195227724556230833146828023269518234779182652179375538373369786587285000552836449524574884212375657546646645792001500693773092000132282960763953227668947831010010934460922640449301636137979405112825316313287173982289961215535961518376023648462923740960435681286959823495684839385964407360796784085086832377664310715300327869774496943765293116007821099971831593152727338166191664949057806868676621278499431530884332766488601669028782869074629581152517524382144199118481771796011540645504767704836188871060393204294858795966044148243142843460105281561058129032122869543988752755807197379944239705978556905510726573319610853297871256078847791894972716068707070302637842101587260026045035883523065524433500337866353555524791960767859435953234415183412209610501544732692625518721977784696827585616603151604153074875938678014591368142458938486348984706720894160347180553150978389141555764280892794215031575192012345570578603372409316079521585966723786125412724956865292647290770444491703045047015202857052429562429241851034819101480998295638039851206703884124711287518504000823392436916386928418716008466024866474062749022887810669973999985598653702582839364908679428227330664344671352521850101866904463983554832105204271590409608497958333534018599789037425507470912034962141032731977037500548665390468805449781139452085181940423402429461431046324126746538629619823234398198145448768151101857775844491157294226974133286800855042795923988067986808940446921121440481364611496704546013153549364554940008895080037708196870512075783902895875749190321705322323497678071929490389905744137785392265756329462396927161044684691061869569524069886031043451973267521934256586524340109391511632344352903534456140002765586287037617159925032445415653083112147265255109883581789766405010568523355252553318428307199979051518558567945438366613938096876140208419317021448117067341721949973252554081543617893105428069784788623365908969590379322832925910070777831385049214024854325056438332482961468968567823011875013042248116378838419054947943110580339237032251887203933074227557225238749824855488244145374963111061358318122322199120668681831783935899942844977498140933104718825247702697216444544971713932799674647681558339366715304415505277939897236678270896650471090935794344658469351062682111757528859879613953038968353445741981025984179422628552166953738273098815005829166660338003153625878190551123070928481763477394646905892944008995274066937082502499379938994625416612158222248767488489675071880606768453796728382362236655004242532315602574998385702719754286772018114916879345079131797201093520188423330561893625271734403152724897158285096146805375511043768170330379626597072914995248088494439608911926424966494457591215780493030941041321695489450694697381989581191804517694143174987160070819599685626768600355430866821243477842878042068108986597531614312552625848595893281281113552171937528031640682012651805359936174841324233534372445958452000048590045435377611740556597018942378318409406017571416621804227939863350927677028979755584869868771992387819513816515497758507287127718833677229843307592349617847495969774009813840347104826720019550976507478092222748716417205084725427887331020156710801593345770550585044147138619336805777809700473506733068358995988462678088390131371812346379015367898969029415250600103951906548759614960564625422806693275436248061731186727728926543629467048624695121900965526493254090676090596825324264548757344847299781570697316839462899670517092956592026052058878376557382440565983926712517231102969960311271462805969648876786921056455967786580660848670941274408313167080061938261208907443906756953476261282831121427590040418764432579544717910479376027782896964524861204291533799775912817646293641772503467992894548848004238223713617992820479060145320982309229926440584183368664943037081632159985136316114323468471204860869258283296225528836096670888023327450002615981299263900940155372362240232410295615834735978596765369600284265522498421587644151368957979976124837341813504133862534328882898755041469572237773652926376394175042218486026805168525190364134502296804658373682955870951425301823248163956752809685050360699666675544549614409519852434816784685191354120146076971665243585196415736854062427239040911456135654823840777802320963455426418356591897720281638704749241906910443017499166300575736061292347237301539814880014028289587865066319972688275447742679447779934755294404470884910219555807564187527334305168849049068593418955433493417926674285307476334140694535812806549616154871736682228410243724469477462759486175561330501523332680405958793687254527572888319303383920821666359403699744893346357356884622094878897524072503373836352318792891286592892106891696745875909711053802783456052998333137472670448035117402096024605213848898441524437023793588153197075690146498361898945773166563926275300204143991062340352868569012341401923161645164029512112680608172360902762662743536198408407477312967147823320734153671073395147196741241598689748807694596968757775685744174355119381454945599891180550387076522652131357613416112395200190688268992043243978099987667864582831366442859960468048238391586433162319609295537199346754685696485197542315452004311865833222601655590902158925628783355070242952886684863807032680052887574057817281434367299782185209584028311576077746270661787023548769697444981036726399099007160714588847008529251467040788909917900754091226053659630562074668316012568780535859725618047662111934807533502815238929041423026642071742646664568180203542008314007853503860370539231707804966087737836997476758488485974414188306184739317962891240905124785536341404395552197866387318590771246534451472539213169889563314108846158594997017804104005437614822247099171548875878287948350866766339527084813252558772759134253598036950725659667372527647409402192647312880936639830319148704943422382877231578266060334974660889194320876089965026929966106052714376758164581455940977577312730172585479265766412877493787823554699514438054524077504535466744015634564196107147119688153980924750255967014609414801155357023847201734703284378011317675468952868423080617825267283420274675136097433689764465684889650020833107088926568091003977206303846616869824242997662839890147117248193934111416533302058383769724487665026999054449555486119270933798498912494010000495790635529093833258542824389450696708452104224003720769247650996826887092679407787549330560831777162785257080317439289765077976130926206842689098738083125219787519615938921531495856534996219872241411622423739063663206388609315066032055956962135073036028231122857739658375608121012428607668750797376157383349222466222085128945218368438703749972888402333531065453934719264848936467758818499163432081770483721644505578642806767817352035196398376204163033955464602104593111539065978408513463395351248998903248993214964731483445915887618498012208910669388439618454144756028413032222818666835154654020882028071237584620267273637992158541733869732188627735796900994155711190973442583595872012562963282637179091091843818803364918342016026181975804946499175656018163073596360388151539429581809517658364100821574030993369680157188184361216371991746815388872027070415019887649266515173133968901212333239032875729490068128619291955375254116168197762514283431275845311511747597059600938527763602251535044720647706681420350462007747521695039206265018993749430952234012385390375249517757421691035553241939350591028317119208694821788915311893606098966329871541621071393470766749688227152721198953880861241594374357172987411776970299345477777984303764413634897194683776040926926345093022904730193454474969752552112267736176936434113266137727834327627451491693590953182632745024790984498675543316171719869671058902202769113139186587900385159118985554465767435925626370505655105535065646217582581186531762372548740303084012243455570618936987899291899358386790255582998889052006657769265836446208643223500375165566133884692381296657616867214099338402270248643601759528162999183404256437684077645731769457878740878439927472061141216505210981441277459400457367140704867704399177425057898232803830232840774893262950109395429490019383862993284497065762785710385311230532810015755976323927047546380086867447981455117932067984069699419048981969125742010214198268688075995805907295335505182160547532520641654893834831042800664254324134023896535808604555662479826048479487280662106892214088829794355221639846603225924294059397821070420446040484924887273958401292145659912817449385075633784313949676204317921877676607724583974971591299057135192567783255250359876175703090587651207662403633856030454449516519972593897588577612970247781832249050659380545255009743887959458169208231794513252526464011342876766153439505905987148621923649777175532397021753197085252168247156702236462690545350633377280809964214552673196678388523518964216798827752507367521782149259362962668650828968203192496547435172866954659313008644284962960467302939781231308254511816073856831472841750424389119075594717854698545559986879566492571702506249835286639408713526372258049551184910133737626983086806212751531273208412626359565397009446911971562923099517114423931933681446226906962186712223873521017551436465424114408362238135784884451403691385734517369923972977364710556018715668112849496843218839188747939700601728990472949170035237625207932506974917340210769758612689892855375114219058760019723062911247983091196232528285404549371361844286906191718924520891706867886995811089104349910150686173973317324081708711928766149852800957517867788983309232634877364516520575516409910904392374684484252740442912405545215299780873816327680785341211117035929317578411464081321437008247534260537667841749834562735411778861043496862052164702555221176219552308277839500303354913023135798801140500462398534635961075505549904174981327513255384400350124420675166321720311790916743753847737246233257655748486911433874384288696903811077581407518104002890135745744158452992300358600749378180682418299613351121498198140246942119703067578839333770054480812744263704374016487025421647585705599844944664743436230808864260815813152650115737055174651696982931708685038313706809958560896857071814271192506065475930032537362903734804246449289238176740137373381195608747209219948878423386022805479263192732300197986233692677252157017872705326470241073560373728981261203809241202133447965519391529526392254892541643494982406238035320050374321462071228911183247049794148641922683757123475503687107174267551075879440983936332580711296031876856517464691337905577104862626029354363148049127856933934647111789860918556435854773807479096333095009386855793067078935927926367549646735900487972213547987878600853795310264326779808525480317142220449975351431335896289314638261914224769059161863436342521828205258428081680790268955205654459366268551461407471900960440448885795597153647102995673026293277931503926932618385441420963815136570337097074718808399153686976228023976872050544714138156856508514603003666549799623663432987879945178243021695048429475979486482153876260511125998950699567146347271557240096795548599975997770090943475235756285175762168925643938020585881380608176918814165800607361010072318506605375919701011885755016579856728163469449916114513622672197927764590409971511909169954303164794316488181661095916458629218693460865901384145122926655898184868558941733369564496857766558144210272291970139838816136822074636004753690447588133998378501353942456141979846576814883359508750021885538833521424533227217077719398638240328318887703257008005293640263335215903181500065827574327199555027203673436837561205223501819099885663495377866837307482152104322085278224401697278234644725735601775112513292409600284592048176749328347664090944492117166652847126224489315225382773141723392299238559007117609952375508159619003330423689277678298621725797283429647740972809955800828787420029814097107570515739035857639119450219842097187074568971964415547885423445756337524971225019947109942625146095248756004869399193683890391020708090260940934875215906561666668061080872212605582401570824679505431982109583068347555291678477272928572706296542991726882820892513402644046098819565536920127418509659083502760326418115825734594325529334280172752299047190208667845878370254773454468242481231823618165777566353819257600664614197448094422542443024961165324976832690046697146283510872119380406492738774068079456233546697064264550111671308861693547589426531769913003494994070217512214045317888476744605658642414445144899967761719402589434649125340921057995459109131420303770740670077596242713642999244304689616580616203580432944273854963846307758709442242711530541195481783692279563901315458568064422859061680957801512703817882430441554405000755620000894042158705517214888543825070275912712689147774529275473911048570347448358745795336210637542762826691113867908020724584997725671674125612792719070814961844372661350137070879875498390232792512396231159015362131693336603480193636075923377272638619049761374661488725139032138855169732085449074357796673371620896443600124252064039373566336100076775183719702894494009435284017468280866544099865079506785666232992867971720676012345305163595276554957198184948761478797066128847060828735580667278386373270717315641410797460977839806753561261820726299317102934740475260190704540384927147110617058818434303648713905777798802917934939140793254279671767138823081105878094332533353604723116492255958483156390316690795729223233074484351428910169352019004188517741701499224552475777568507535071384083009867422375570699358503046311193774034422110274544507155956925436818050884905703613184034748379939336157740076654774504495795103086909659891341353116802822723313268985022894315028912792251371449637495830135712914884727318539684485129305949758490503209452588332241743373666593067175535618331108626995409275231199952076149578652901244041394796754744791670880407664274695663844742606987123219858474715080464734788310188106299839933723622327021643457876327173523538713980804878234954644091098277155586594874123516776998480903167029340110072176214470528007198618341525163902055181556966975883278345245280254190459822913498439928663429616854457029186613697942667182964056762489307230267053337425797278919704737039939507289026706408550647463274356844707873718850105303958832578959465225068412319507517378044122242773159700123053934308699457611574023014976549719305570496791131172706932347196761552271049356163630608789595022692510889074822723617219758558536997011376558969580914967582874297461737012434603413953775569223219447433393452800466827174728943934061436760675323774338651849164236606133603726560743061448798684576325837888491336155228973924446280874263616141038819965941307569300751279062079705551324490278217115694172225252736470811535674385904776702885086211429807253865962011840122774613432859029768399275604178977490653101962578350890643996401269578471603082325712299812067048671947166025616632444799862926308299010722967386694293547020696623848356277593040288832101720439713476042883565271449080518444012036055984273679177595490259274062988093355144983839417479880959383662158359318319636299268161480972695904121652382856708686701138023883788257370406976210010719561019423150431614502050527538176628294948524855634285943929918367413297197534377399357736824890934534401899972792885734819617630835908439911193120746254239398104054004502756527395586576873830539665389964060379978711756409976094442792180488896618528825929101777877856761739961462794048026865946657044483840372213185157794495239727064291924739670830067156848644565799511512898907051233518320817942323631334887900130213730338368690432746579719672739213969704429074257131699502194953437898216408932577546117674689348092592196788273106270786970677556356965482163203164735214958023419957392295310053301196214222910254622136620387793628168683093791602802673281969789217892884673587574940579620252950006007614221127099680565429596113837151197580853227098713449161262356301511842392038220534326676906784605684544803938999581484824443142330212585943517163393472061057773581650632506405180324898042987829497916764274039139807854549073382885932074286468528816408387044922411050897852568637130307189010608089267578671181685087122108593365819973742382917137717581577046669070359768332692960074919243884006508719350494577324236312982203293335922898121515183363552324072291006380795573285726060145223140421960045621664196991985007064258385794934677909867024648585925761328189738227081681370774213039637823502521422133180576930134087349331472270901700394761492248273657096949484053146876409746393044530511687041775559626414280968580223836361036660266157236583598826819555680333101728171392456109187778824475217547109913484542282863243729297297655589827132890825357581543711962970144602312724468891416032806437151638763784436499426456111996783236023130179530200503118393225705425959715231128237285583345624201633695739986105112226008904283292602340159799324788102737180925159966797123600620735987976891757642777339420122427366550758550421898523195830788202281595805793866274022535932963814035419141668112330782137869903359661013362554835072492707342346597064106464040516553931799765106355199352236750291229384525144060166000172108367847803426852996099090530905748879410276674148070201034206846869808853371925677346157528968988581185470989356580658899194875392621956694478260222389580532131043055137688702274181394171157102662933360730516036486127798956765898010326892345018199548039843188739439211487395614683333058818886589533120544126993190599518123249930501369402937870590785420205847542621805486925983967028752357335665780870508594807215733522416665876836543576641820499101430735357589625022945698652318893286834766073340292985847302430728610728349776349109760319337993612565390651433696051444901606230208974213826003551209453164100507396998586320879529074771380504770383730882042986702396423366374997002999007238529825055596995219457914034203257163598630578723588113836164661381878698477246802494568146542540741041667810545178800766950806497396169594510756307503020694232026196123824167942730386446912114963803582979941921830405299256485214320101845182664323823373070053720268014388278549529987680944874729584032373334058389132846010798607192828290152728554845996397837415578271464737300647582297882197421693915967591541969123557285408865067422363558378903993094824836200735037353883418838007593146017862558742746557100613686707874044245268902298380106242716973742693921772885096418728158162222473103206399323348401335632693697705688941481022840046786094039558062429879291288955953776420045356295627036445455238490790555937692290268832310472500598813374969810967132812253695610950730033234854443906014130023894049728618446153761680420932158266177476908149324870154655331289654037398944667973871882190758495394614679546929384222041971190691031503221302121178157143229473808359495474190009122466774327522995503703209970456324338476247988491078210681712794980472874227496929465468938488699465104203043650169472349246619148140830640151061982228912484970295638041617185646068399639928104563176225623895601785716694943637318893196420722499631207947483955287262666532679243814355922586599355352632205447840050368825614594753504653299565524949150917813562211861204124694755130730046180518452392470603697382775453205678065389082983964724156204220483716671996362827463908243182584005702748667192220202945584166081809038251940486735288442877541956787756936181275939474585807170980720448204202036223223615709290069257787897885732030644556417161672740433142727669112971851517097300676202508783067160845762966320354197838010510966859615633258801094574863284204729349548262963725824098444054142609118349345682648470869680996500231035838405911122247740991888520855979008117670255294779750970217306117429718594679714286436466227121995841270485980821647577352046205908041374343869152681916690088265458184505696145253209187320056892294571784513886608599306686150395043725793168941390771988606782928302599542785307499345789161626908857069623806485371256516776045646710253914153245751267527042099002305495974059772525886097765185841196677184943213764615726656799111252183003851465144392149824131361563190102052723708125413833815281881404978467723515766471764299595169024327358610184340926101474022028138409520891480482719180573538943276279547154933684964525276537745568004163344650042634585386161706411992272885178525368601991056087014507504870681100400042118562082117040306980061510789025097439442147570667444048844867451376363842291026971047411183842291779510779299698508713156496385956209508417052044314273482302136894751700382469383911419683331608392082968551783187317306777534926953222234229130370092079580933919482180241602960155349768622121195547082590141349699645344456590980081771513148621543425188835250531001157728195460533509457026307666304086938387225585659082427083774875225021912837508751118646843938997662199681540591615196370889993224232241607839773409941471561756442486223078887131713303206869798282800085323474434938109046121928229770313794423449059793288817041467949294609846212107491250126464024029169313204858642974492198120132164874918598660057862968389848349259407159231176538995714684590333764656307102659393516397183033234748444648839599743121221179410113919294744204338024797911819051672341880768458879977797780978323150887014695603150832262686197314950221483357854556392643394043711699551884121878776917158813754680348593759245814305749750917101534800279304705442439687935355160254592822564994905057624908440137606137738234902354344476129663569621954054810497702133293332632741524982117876377249009697765175342896880119423119534120233888902064705994779634923799513473252249802126198793255701502290243159297781475279664043400051917050170666642462667518578882750673283840083754356425377926081422902828329268321893645081550218596762068576812189003429411445051361699477909306112475881201570735309052356998114138421995342516813458950620536702771844384232750130179513754816890944556605333030597671231495696090877935080159522705579409213796446741709957449395838935624257160760292560967624090380269059559951531779213579583124462008390137887054988816510697079284075568921719168083113562792008216606981277973616435167757134259980960493808972902388770661942801733519263591934751026127023064102908032644811066506781690064903216170967852547992325949272415968713656529183208047569063552550198160624281394903768600438186302310618327004843273846165430193637649905783665408365809408875759576616049141596043620890742649875893017502592494340970686594808619721410327576899824369423624847105648076971578118079756786519234113365409067170275317729302811497928769022092481564454333567958841603612150107027675216510773879450504332921327075421224983966441295855197342706058524145076895469055279616762547092544435898798931950635444261620269098721704352518189800307597822171256900854571928170634511434827507405926479831655089395116643250145739804610030607643663472633439428815339032746902723101031056290261333393893706684851600079601318478332053161123870078154726782227219773474960268124419254826669564426835984673932731292198899497214865605505754882059057429529967322284875563934078823965222441293489643803480264813330668548734801247847544885861947876756636597689796637345515641059120085438838622827325714136446575217688891805348951023854544741519417308865327464141498755935876637749074051181058417044593574227636164679788365648427542411657496777619658483566565733279049354725494729560545603114457811312089551095518618347839340993493430757506877260527277502346091068561142187290986289720474379421792695197524172293118616185647715002683942329093992630330705219389323303332573383358211993045136712384523816525004972398301458975726955818337420920522340034255911881120789735211392469055276860634303774112561707153855069329069187562496743565364089255136029108690132520983386011787634041901499794706304289236867122144366126152149906780642853385394261982311136152969585236147165254834585210794524540871086867232063593564442979605992459062625845334776185645864799659104663132198393319553595293524570761175570079425225093312906382403411828083691948107135068388946984972481576943324927175451715624671993200278752073932210631664755324611328028562842555341204505974148997538121509892401497498696443594433157908271989477255758627743979306314693517475869924348741240568506963702205346334384048650018884271996780255281686667154698342387311669736025287457489186325826512884850463983705299705191228298863361033833870425295427210664673704213958997367168946731350119931319614036729689522242017061840341910745361293237750478917028703600533142102915413353377358420841452791576409676125398262325166766731118170508904962009059607273022481405352341332377671271787488787370441284275710328353409169197203865956608533970311471518090558398567834779364539356372614480543427170961743679317568267768763945531887402852748780330896676003974360404706450255644654126109603388294899667740093272626114785042417838566039188889011769604694502203423064722525568186733434279248953873370802450628472391998595924066533946079084068810430453204836965644982942770129038464797078284516598700390184466776648547644585337939242667675251271614779181428975455502626993822495198402291679759128859162736620694188843359903163610765144611164277576324982826993901663920200599808645505686538382863999464253631901418321061431918621666344192604243788506983559904647632838375403074774955876934674903952660634100322848653533889124276504755146989127075935735223348261986907081138416474844110676210887728885103201412606420339483487412307696808312614157044917019495820778202372690317072248890981534902812814007543904036448864606520644553877366102072099934477952532140853223425315704373231361526694450953425916764053788611095174291325160189956244533615888422549564746396964517189426069138178155718760791087306755184191892279646758705921803583780319264706854182941748730739131695497578089434614153348702659451410254488015409403359757367414799635820119680017531760754868580440685430656727166320561105964419510785519469743625450879231317860125511287649384868151539436565729690433737762315575430750040818234919725504283948968954584254278388140375640279260745989658632399436444911235513868153527541874432266469528933543496159849126690220276872837513747565415386731182043909852019029410634816167935495206771006770366316604036009731929128941791688250766683860991973569404901121448763197262361130856447403440226950060429576422262590367945255102902057422592171776258519312273494974171940405784642073161242191152705757465474861060922014585055499389988914608587335591391115223155998407791048019594713760890117813669053389247491556270437014803919728648128168978858951201147727484255099313397765214149413116321849112513776058493603195325401703210527359134359060654934723057300622691125023413789981962877867862013409811790562325193112143552794977456324729290675478323879814431783353762670326230714359705529467077838591092804787961074116787928208807795413460078206585251865334551042231117873148431061251218473090926230464450477243893892457815297485368910809331549672258710073880671204636152653727637259739066796751882072754002552359905317364277962707695817432075881171581543890896797345747476424476648706213626342323001269875787876207095179835536219936637649360597546995134913656365811590214516805690646974361151802173051612360683045824560503084102329546658882392037349599763656831633285504011660181061208307946158707720653723593109036706642022909385264009910505784589022549140255754547116514097084993278658368932476123699199856910109863506721715093783407190276516653736628895235136561459457332708081181768204279193341953589132894697480863655182212307247603227047670709315278745765271641033946603345418382254193416172756077290185430782185994636025329249778238198939286696646451824200247664084261613925013181783514801564428705314404074812501136157874741306837329352400653153261719506596515584590345080939633312108834839144045390438590087218619478340409616153217926801113897344637274248717628981011588538467896053040398732079098502885166430317821318357339633365299398948761336616094139763266923225284796078223635645415719082115723915495435639894842424525898475928209538017715660553476142107820173101165481609552026165231621839116592396724432703353596768505103410442306415076075334513134646625437343826247713843017510291834016188375539502539838714916996633233825853828660800314953837786285245080384581396746133946409959205257498410869164954121227953962142409454151864300985818038164383396887911130793516931086766483004274362075916535296288464485405669239397287235820851482014992775811958711940093984753195333020254397548110694961269599373400391401576188307082287286308254133593109808799696136006843676708289337435584761313390551976098046039951518694853858652762299129293970630175548570138840203120950483863140072466771523338960219492507776838474203384429011951075808455863217245315904845393251930398167562612202579656233700812146639652054447427920820854062422771323694497105108229582329659524837716082456737590215795358267994680930397519408794481560638875207832797479848833897533518966060877831029824461343537854236079126643003962967965881177493952486697034193165897169860422848477862472597074268447668365734839948999064665597645410568959448110641526664139845825081808476195025579682100723277176465834466588929082028058271883700962534561522785733688380751337505385108784283649093975880970310538441861902915443439364173494924121814648300297093278883293645100818814014339172778860813206298894364864078981778055120936861569648451473210997726027354783215068978498798087576129545286521952526493338989351227286129118177622716703515604796615705256801569700520020731654637872338568897344817398175637566701559678610766612575340795957687020441134595456166629966594815344341685616698818952367651316566514001044543977320513957689846603620953082290877341625982744022363371936339681954517927605996245993849035962276925096936984034224221999975567647294891117891227058096863517371923602023112450685258979610093285217155851545475522232160248020191868342355020005519096936269768497832733457430743443910854618082908012667024081717495831500279461855162145691939827230613731903282022894954897132245149496735467305130763345072519418060823516209095558997894714877777777570189129140376311314346670938075874114996490300104342884007995802410920114064632402623806807709559894101245320720787758985565996875401484416059954375267697532608717101490342653924824149706606277016861719633728850501178087620621035582061126166228210231567316439975812968163348327471986011798247568292074762081148015564150800307878897143526575075290701143359183825145984424314693325615348944351243505590346001216418524343890308073870879589154689774396314628234565489206234145664082966945361509206380578023094717336158501871863186521236727056147955236624782834477025785784180211181950754582994041962819135018354004894099576414048400523569165371513037501802083805249802230382745213162178032219512732737610274884357713829550292643951065760065108026951468232339050944092722855328874086534937870959886384875002782162652523493231270878745217170803969193366882552239173367630461448656926328532073124256994417929460744723850250966929240960268702675945638699713337376273826667393108108860788525231692592276195204354939858574784604442172476416238600541240531850147162904931455845286320575730226159616580645059420622336295303318810314256151526183453685091483695280807910613356627603195093965165955962028729858979577858115765885235554982048175976029513267534969279213423345364359303477218909335659982187386487000643760002912392063496098666634295462706301205317964313942786247673400704536046019299368008635497392059783328754148337393206889644996667790108664100324005189619171943939084975264436905440223552587956086415905857790361071121253568352069999641484947285068269275959906303198326543820687388432937900553658848037264101973452823162331094192944089886755691373374930914276520699710319151959835319155246500848522934229407923460597456584783011735009802711287817820942008704464947068725977900396973089563417873521486780097893358935267484937342737772896838120136969828708710506073683052964208152821881709419581680618346044467226583774241302109612912610826813217389609934281369342680571383893910277325374992985602517662840424607309372150800045908761883780477427922945302091030102165543807651666516689747470131895588320465422354976243525507956039696064114884419482571855849680584902230517740857531233891385134680657526237489774267433672460395733139450769889295840026422875012239459464507559775095403548240403527651411919351249612105298358487581403605311522234813431419563549451980558440901118644931322229778746798258579985349889628408547596830016143438153416084280125470336800275825115657570778859999809382742809861369047604777757696065938400357645689684274143023077109902313469666294011765627134683985235589482046896202246135608721254665839517949143616134675669149363912847030324904135253457083217176355326273410979487047934564460572266176217598025298944775419282147010287552590323864113436496620411833357187399553861045036325355180650776745620641111954612580819441751845687678047206101195667095338711143065216308391234804943211466337582121396277813659770010355526213471933449634065348864431515629154489669987943070076385414236103952162248546759402862711525478885388941322186015384094074487872809983723622405694537363324876070534280142764889628971324465739971185266750401798573201315478853785285671630531436337909676872173934656791901200851548677521631274205131832128756021285920999560649143502330795141369540489114960154546706466322856212165089244898087977389448159664916378399414857315723565717187765979667780575418198300899626238955885586093901060768938925322107177618084396930742067726923203961001071482272538454158315517775184703065320906052119017668836487902917701928242323299395693110767829696774167525441926353048226289639851075755110055455559426620486197833258518143578939433852590804145816864700123403460579134474252373642260329834919420522524002024937051495007164614752568329647328500321689731781074305344051462541638942567575370572944501584162375666610935237386363488527828128928544102666390369479882733320756402833936198780671435617907174805927465122436462354565017336245132965796036423097631461363540077357599833307310214095766593568986461636641371489289290044213522276402737966073096872970709661825832923737587558612504505185351304088976399996422965610424785690645405874537223820890759096326291419069632912578985024777778317736979081156108853676256004437845027116913580559014052842660014382138278815025827043440504632455607324336177880791915904611984968532226940808302085578603516025163469882188795704068481162436680717009562752804837689719466733253978284610444970949362660101640656932644268792002204544143164201930848070881553801661545315225634294687833815034923705916572144472859429748186733399651170120970761354200378323891337058634803237022812703441853742838887798009942998767463114311671126429086519594408211764452314712959390689641144266350861543445071350174383301202140667003235982900457140511283511766490272083789212131478347603594475834970011700602336347739446421570966090828654787005926497179627232332598772609471999883558647162894577694910892623545556153202808459603404663236494008844412119738289398789917101310260493995826968107508724855493489529228617103418232094820360103013870707995439360014185896512561983627478943245242987267401223497038383191481201489413950449359852565165158297608994507245591098097446604467593650937227496963469201444267450302719057782497562753135968462165381865789278479931145194796029627013275543660838846407702534331379587761428969174124303604561601759313016463616021328056070929103357433406812860220761889026352281080413365670383531838096592692308639311543595059561744288162512731681516792942275798517663582140562125787668515404214687418623210190732748344766684333200086702962917240807385572641385738646877619503336707879608760259280574715156979895604571646785717718466478006195978325620678301943244689396196506631123882367860724676914339344489839815718961232201594210620429856033412738881791177514773231348163142639690364365178710761685716940134199610446928298781429523765502587784263635544736894556022630550633725942491807034434474142930726722113769926000767667995041420696331492080573161625498740063068511307638891373790927709150413401852528867991822661346057879493847559772160694713440856784647201256903290464866708384421079610758858896226591119608294930292584744689782542448808120915576347592186515182087832643681757420251654827745277153616983538222661108703453144322501541524744077628005991695400733386088347010456515393158787806608504388674907716205879018741781445178494473017615066836308909518823458518715292523554826207300904612718751775019621576266710887646552802270692704439501065639705248999570160506915453954688078284423451668508059860857870632835875158876404078251297821725912400755599467203265697824259420797650065545679431373567501780971800984418737004319903633613568747006038988134025722059282439062992731993811046355140641354689843832420852103263432537429972727081372557077508153305605699006609735716462836207955364092707840681627155895329767824312222000814225987153698510339268838137536756630099349347269354872583994460836553803948286136823218591260662846630092783666828619114472493597388168369192760537849111241306332116477139312915595998547634283501412831961360900347948768078625780112749645750622310053780715014187594846493873934808133761239842955016410266785297377365769267348827840427117109757091807305896956097480288104262637250505427853725976183620792834057247106615115219574359992925503338838487446285676273426987648693156597363977143444982795705397493180381211007834602448702164555058156822514281195362251101515818098117704000957869403247922015682000358862712485868860797164829908489996551944028287711491234255001782491321810617736541777907679539950804296611907844316351508203369182847211258893239992061729883879325147367191894407829332141667801326460269706134908244711621420024650789884055722354135151053454740627999699318984224522304685040343952007373393007627634130278681173431273516969301048419729679958766295753049770858043174975562123916368918917284534678727134329011642082016257429653296066581240896250273275534555516259187564724992025439540216046433332755104156655329695732986163419486698986132055512203138992599803293474103445615832049800953431470493655204757376200079983632191640219071448089324331800838330400112845902117531949000142440689147728083663742154760010827243492251975467545024239806129537473537722966455587960032511513612064427606119729106492238968323541138850285660169934192728542543248853178139903016826803783782272796914044982862415504327985054324026047426080244819347780386116005385631693955397311425165899244272076987589670146958714526602639102726530925482330667508560751196531530977678562433117520611002341272410557698657558319677298693100808812571318562189606566289236437280080776602698285543574361225434398973205638433597865381109043841660912036363671956701668153100804179804442808849534624860223689707726706910984672759266293429816044254794934444880920857357911117420839145854853993703529133402968688901242505994090610996775803096904944642165050917958490490476797960574908449407331380361526962930145301965207118788976363110448535182287098332967020985956921252926288024381569902800263977078401211382132231449001380129588022563533384889823062301461391437067740143330650316802041261482465672648137813201895007017054467556338047114204732317469612367521534715511485237579628712021729526442297744070580848134081967265750367817074270195470961795246111280041066800495885189728809328551187980387190854492983727161679205423087042681639629272880483835019577173972059855119962627243538796511041949469768141309435262747441945556943073225752994055052100852410828977974713715337960174837952892592176175267313596239862309407294520778669757400157626582057474306193213844338080087535012190918719437499608077735466547904158455311041453657878167230529630238644928299409254359504684000073313778641633594409300865663318890354746342438716665648422262073151351033694188423821999882589863938993591273111765694052234949821088703610278387372969300678325364296836344900880961807106968581685523925963870329806751452116247857388506161729947523740631669666565965133330058389599380390775554607653277012037102529679591835221621926902395592031912362572077380413835218290162687269943114281872391523057538732778319469121340001552742498754724407600501438624916946992107875861118456023662263686992880024196307247848528728016422581242372897318744695310438948326330749105256598253851897781100510117240705194147840022613619388161313207107369591870128583216088361761638866589252429723567170868662193956952583380841158903158679698074804067923874567707635179322851411105583413161225965986228797264523134811755590291220347940529770783534724158268674248787894698972739157131883240116688287978848867435276520425856019994135512941686211200810349978079267396032870881001440440207262758820451140685280856172961922850917136827487088005868896435519364021303373619150805312374315350030938949325021803610394603020840458243434942147279483302483969997329794300897773833792784835433866165755851543758986438081097816786298306451259052789987520379502013895650286788250049349601349996741494759687009982600016361847789968547614059369237463865106223468306331592096288092581950946187108781310914559994404395230360508083759221458714101059209794421224381328756010372576752516915751844449419888026551347287264920389014762087893290859945623305102135273158118691599831586642966130313622487501539590090310445033657279214823450370447414480116942204498478131995960783294933469033700051034689823543855707421721590657122285416939101262143957122304122029676138794875203973728040521932522051657609503024208130944819373401828739697063235157091379872828536711392889933221597585026721147748919980230224393368087161368190469532060119028870785980031052164241403347475057343313462455070054020340380234393465090074688348322612984496446766430941505388592851237737406735194031277977915066372365617930571293601933905972213960365608264460969855151442973894546541783900482582345043072770988959605201180561198167011571727990698511305262999046886051648305026709082284749374194937808476584446578849217612744956656361065609772770753790009047955838431271743153426059917553194167946084025631128742423953452052715810181574475167614444692071962621356559628942194534179523365125333241736212616610449454713588437494223074258682205801267217735920292722850986219851361339787359669499009209432784440112541851298496816723349904846725308579382373037296795338500330353216709749003683304300722387522914360824694018436964389187606054188090051295622652935127502575696090557449808277298249800163006335449122195546528586701734797392139649960362869642957906543346940565071824828436581172815344451346769395882598252405412531111959470197784727830818000415356528106354643132001462247145222288412814856736027543234309268943805369934510581834535261164690601386444856107142059903362972745403340887491139583400889497005028217246000916787804596683715872792439321479869174418517368449418303735117029828526615767236376920318819618842733572130684633362990870660469702635760967186150843178224669558969597489373165035471982582290229145247585610692312128798351364529094894713860492069170947664684353581420371613626016973180177976577322492247086131375413436976325537734709234442467289092375282385438407099033952938523092516016715183932823350455434682340881540414435431543089183983985520664064725197076698176007302215573461778945136127879107687805205506070986491923189538605859058979815968277677426099535564153261130580260949717906498550153302395171413060747006552945726453145119988769193714619976737644255925161313707659589340158782353748017008279244293966907158264261923545392828613770277496639936815790090313485170006702489877618754856771831003833021928469907559883610161333210119237405374836785446112177087078062633241814035792609301754230787803960626753099476846064957012453353784562596540993829016626412856420270941192234059998129123091039433597065895925146690119247010038903645013099802151230026440569129506344932884298542993549959945460116451702828016946404329589605179287841956176092373743419252064739721561610181946555120375731624802565859550455052678600755392517605914137868368685122456931567044482212865230423129202623854872395585965453069506989890928750219448918860601930669088707969731254436465480903750849514154671673055327634166848898663010089579988660865581082690384039263847892521682624045822158190809479242958454855234686514101576705920328241667624098010083046764780741382994612101310130160249427452235207656834362313924349260238887714768165847533255676019682239460304735919153536031797448486703990648632078183529316886529466908775042538585476079419632605809357767332093029097110169769163386687450339172251742965455427309663225411748182811454061407579092769058109169322712848508010319643837579751708757148217044818383954780435308611994333349441459451546701410007721201993687487246990535204674942790825979574758618109345974159778818109010041786383285484374341704053161185401605074075924114113515620629746233900993135232915946427398290098637740616287837371288969377580705321237019139652289959898750291458778565909910485643035828850784698097701535390889581586173861581490397677618979213873021433255268972066125583124746256408657306621384826564680886570762698805087313012894164311006702307311944295564992353745172881025976217981943670063055898925979363262612997659526769124201153992568469496347542192990887836198251977180161654565397423530326947952998281530799112744927620749355457318925033764201436259639038166923640644099791797074999017558364081834961709685034566691467353360078236042119158527370453889281276666629432946243713160598692340530708455825880083587230604428878104871235188409089694197662895180705886206839653032492471485603434386677783815826005456468730983229160252075015178843146339017280846971415995626184032189917044848359261790873509960418812518392120072595435687754231674575331988125039980921055605497898833622121494339972163003919776808366178311876748171779188789352588148492448716515657543553809215144705448257653317968781767216791639926367549311132801859476885372143800926830709085744804583808971233295395897922286441267709655472039408102015775516830876780107217221523865093435788055338776415707964471124716354224891196618265838654486550317962622928021337493820725435719919134114881995486604694252112196411424580419102565753015838836824213321917477021708480401613219661226340536343408646104769419123372352558045709613451680202061030582494528091924391128942579601286252597657232254734112074835874331646450051588103557040197119263958199150523038714898321414047653486908348168049286333398922691855850012019614360746014309265311160468263787756363237164307663647590004629505132221519238851600316279522549011857159689089167014681819667999809064927385466490113537519238040666899356153037477931389155485342351412250320331216437009111779892195404161624150143317461961502592997928203429009479278442573700495543875658702704725387793489570094251178305758270055031661307690687235741437413526293583249265859794608949493750799418901683936774175812322452915512021421846548561015218845796364204478158502014267441000707790830727020452232698887518814721213162351992726989606498648272670178808802115885573326861809781910894117037789997206258073848011166536593811682386468429290189864560851305624431621333796724352643909195528995323916961834990555023683813376206176153647654057175224259341647798550107076507086836535109929084085337393063102226283663859043887709999826303353951800773007315874796750510847080153202054528878446591618593935767695859071119115210552833507749909527817815279175611710634365068214276774301224473794194602652656469600961648699316881561144405890079717551276058007969275855405844531837643571532749668263663770641370741608471210560126721507228004928566076998536967355609354116493634738883540991791791647218712704792820359179347445292107358846890045367661385615872938737600378617987573038903183711022515000072101624105979596918182266228005366479387050933077489245696654865558252306454847767892054581700589053792164761553024644904419627377885373126781895975945701412768747504281536808069647011602523780356724567186318240211135324284558725074908162365214305542143889837573996257442622535745318909000095582333816237150274853437844853579514025109004188014137092934742022736881911712699689780812847693427434984967935692127858364857797311990842555871698106473520014672725470142419662844163136918574690120538821341314788528722740810184891332359892623292608025805166006488189144338061883139681808448218833970712215594006997728402533390585124122300962414223105597476139277190259594450505426821073582094933950315720615790904048380995093248829517132315248320980247713742712565401499444601633380056374381905858112209959618259716261340843602641085281609628894962914254814846832858996321928115728193390854154184673680921747313792337774091019257963130760598243546301347033350475841817475680965749551904122398731086512704781284852534419675989510739628863207313256909571182003198977584402497399393516795559534919316701335267675439503583517227313078459306566735893690654533565462706803149202736592841646443551975372487343049439262778935659865991846408744674527995233816781129185365206604068377353416937820378311589822207834370051497975565634858604373793573241624453721580859471696474699982212894022140913544360103223395373630940615195491221721344879573853819970788306906666280784089104648102307756929611792289411214008104945984719824920697707216915587590840316458769312111181151369699558748614908422410305518044038717089604476033683830315240851621557397136519516368331470953811928564605057166287441444845381775066885688850878927298830247128837602320383082303069293201121632811681162205009976858958444118395381663154241248210814321905228901343648954846594381328443404546178560116957817114763383930728010362999102640815909926864284786684641044500641907518260254101985805749783093234407597534596928829267211805250360203733384111860852367335069784792272819687074013240685725041894393179411610056897817563152523184477828518662376112062587686218791197350014028561336760450515966648074999838441802605064435452221117574008947838892326406782875561188671663697578470418782166781654996743836958153444926209321865689074809591638876312813269771982990422019507265852922030702576398377628274109760594857304031596950057872426362655114180600645415663454759224854001152359022275170970002634740580415113542751885710061341774399562437716331648888160420918628298665604856726352610168079610321772453185530357282342736945763232214032496181419750122115178704564507752102238323796940460943904146797786925100345046378338724711920524024063013265608930607771891838427961564945266385754911724805180295994148035943024869100544709851167453076705245362469072611058014232992357853191901972181388821130985728713813704953966285199383715388531565228228931499064282930558083769638250828537202601859569491462353673316753217508638315167405111167002689548956564407108351882805493702075956836222202267299350820715475057991146972489094676070718891990901521598046197829400838057531461550025025940034786852555838357627475386606742503378239219942064696514934276713512548872340677912928872633875819496113408904907261566724074991077592064165055825828717720521532343563877173634758969266978245737856597866113394167411769200267026760027479027082143861618299380531195041402841645407754118453397803211117969843777589041253333741839006311817483796453702027577322655560890511914135635243866863346490876529503839682239117650781545483535982752119696326743155909874838912366074807307517697864135816309675934351275009147202592663731001565661511617718102757229742326274243888582059191986844900715698126806887049697998316058265286901163956027964676555235351448972854368498173037314406476441154558248129778761538609279720882486800019118578202144889260379065025997062189786943845035458414822497685522426447405074647831197369795041577314710911541646331081188349623419327129931947322610315269236663252188060238597864881432948607955075103095858221580792781030922822983829264609995005357688953501930217759710692681222944393880578727275780527502787454422340236768836190801959731196358813924292638571858813750449916899612551867071234887861975372880441141590275784401316033889209349764718446289953819614509637842263557018093621369770457035494474726200063422839435795144042216252147736220243208466120967799704801059931217240707948524648286611332039667528021118327737810718440618698501926177031760626052354259811106564177503639238291070145750160718361268300619286405530628815741072113085200471210012948937028001704742417057013257037748147438158422249168530473850425401421130955765534237699077767261268900999302631933408706159262963985972672362328944309264859671455603850131914040596396394833555589154064676867159923366044074695483964441557897181419340843108426071469521187131601405107271497470441889073602396479299124982926591932897264468820239614911398068932619697194606223749412090548817407261251755546459610645988871534804226729233422655003085091932599643219613566751658690824071419606122753993408281057519814163195047267616074838642660092496777488657239367357508938770030033499839052060443353300948923060663829218766221676314377817196230623105800372008869908837774935424316077452077481361403570616715407214880726423852072419353338460749222220612942248279358398864997484132289224359452284502760737732634420383447583534832047747483843828751260252907418085795102625804090355194443196244775351971116894713278352106675029280584422949511931399472207823960592477172447484168921947024973114737338683994529497902494034170701883846598392372523160696352416751721577358370560900366748124433608606330385586673290350343701490903422074882751725127166163535105357087699566999357491169745743083383458520018387364716650719783305771752372748494780861081828953064769532842385057697146052842154113152411244144495091780592055324697952850388673624467363983332197267585217246408030727838754642411931909436420427081676773174384646595743377289404321369572494950725284087204661776209569646237434975608382439669047700078532699938531484479189038329849343232309477493204146455012521749651042012590809994533625204498142029796608802054036765466411398957808510268481934325370346250210013254723878135683883725731456477728873936358533683086053690564792285546916944867499815325846164693023422674839570697590215201605443200583954207095872880190482095273665618271697969284123910981500212465660940674316083582684332727244869641141789208219695097620341358781394964931349676666578465907083052373240293670729675836177482872576959191233782336947636130883043972190666501179861134900029949905480459678042890609889691603202644101539339491763082319011564218771631782628100509081856578032097309614889704569832066871629866460392637244477293043620028540710164687071223015150112107956509134977065894004318713403500818369721892869717230499360912711394153634750827180209943205283350009554548403372664599711902851880020576502557410876073092458987215188257791868056012439903538506674841015751188866751074429299303726793121050556804053669137065879087529090564871411999876711135070573950531432252223449192556835163225335330580366760081295170241859586346158755231571343002546414296735760174906198849552169647585053707191583639798100585224915893949571061406147139596793269939864488147365466648329717181619770509205303088812501441284983085270312138474651822727262555141617716028900466545729576634161483315636235553688565968577654668931608075237889845053319615146938952525728991512186214173234454665766212002445326141106725582551366235456539011769791588876563586341041309128500992079669767449269549681534899099355348755582474796421471842045702821902218222783853932591238639049488530435937535033284599794055711490531271950646737017608659286401589322561757077009078423922414916742093943050646000845136799493960950675470024969993715149895576884620871882199418412491139925365514857201167148594490968126550652802801358702121603665469049467205430416375049815905318723447232415453967604245980479777527189081643374479766275294247253893465757578435951411921476824768165676608093879405912208627087121630537537999521170622623563423105179083828614129212625730336560584215288321839177214023094884015877707397119907709072486425845246272313219207869408831102120106448923447225744188749698916223911481687410772808874944208050429426368225903121760368134550784384476394056513498781876843802308945495520531796725637295881534190689627009547953340884863329764522905316811631053239336246679067782428732508368457204571394526855152916413864018156311200788219452410735128150374360349449355992775395291012243293119260605613804066143432200427859789173421667049494307020137538731888432733114717792409735853422754090507798917229170117502627202922086362075384147840241055006285493901192177900029393672253316721628541460463602659486198895757720843766882428641978740252226187069180052360575320124777091411596971565369029698374795632257587080607637305220708678719172446023730655359091448476257808000741689449053089708629951791029363259970688062399816268579734776188469673396512548761766307933769820147817010692872028247579589447714273070512508718657282629925883748391418978004422683791411562971960727581705968348491543759693709031044958075138679575865779238516458240408310947418867137712253030733704767223464047144776476000944684842881225220871397988863976527873377582125883411156598574268912303267560123534269713267396993606818129111670332664839433496909384084361262972993032353455961410365016792417996451095219012239870919049428213068219657958254841451832932532171631706885208532102507477751697779939976332516468796312020822524590220284103153245662893758569378805460668850589568592112649479262763067804094865468418158469713020729959897792905871052698592091593664919367893598476390967697415682867406269555893734593526324701603787394444585674387835703968405960304253516455257211636650558520895637900906521488143501560883155353135560884051503643530372085239532885905931699519718392869788219561108765416306565743888792228139837141802840473564285338481186083309755182765414523614781745926207065827001312610481601798496756245192580926306439658868678549554355222486420390453997780808208040529704609240093681255947569105969942851174897402603603325365225100148307821500010948684771625264216080687169842778832619885797341247436669133089754795082057970728839330946634851012280890020871833463708165664970367121000927131612761974933078352080693602087408134394460282055929803831436531720646449069393706623145739762145593528531583895767896096346576754977323801351584575896183074975551848399617361209691114224559728296583677860584254850378239459121427415936613774700217684452942694025632518271878938809559853880370466253655474444815818593600511052505560643179802628080499591783153614256305446496119358028881778104048544808074339616129905717625889589127989630883038037610164811726512746343331111463591820917298665327363568388749549325014807662588907725690441113025146298835327373783903795119286476033118939347128810344469695102405821818471992316078567438866700973748214621366087217725296730310673502707219792651235380949834653270558779497517011544881687689951125054809927983958081245420884810551739275719463447638802287656713367879188432515797956188761860813259289384391239130502025164723293257887999336229545633155976622570858140489652551530117037240440988756184744098395372863937695578887789359024662088487160389842429443991511455763526721401770356370296178379091438343715938425958395169916736046607439708702485262399787830491911280897388109785905568054244901940109239843663967764188156328381301396276633674445540579744550620532948697043812004995353820476811532758161379733525254771728567668492041075989272905791464555464531014942852403311008996258646466055983730686059949171916922782285886663620111898193041811113628601991058050201426992706609799517876518663042003352420465205908349323380406174633402171488916980631174687866406240269341386898712325191107894714352687184233059908080524468092995540648911142728204315340524938796455479415153664800314374325758331539198629500274251930451555304638665810110150639719755855219725426784613825900760269656736030149282546637699583134707186097523040547433266076084647629600816671653214231731645277739506789227216255351472105930007226323476785269333038682080081196120266958428759045331978000129885364514177067003792128913146801733535585041127900330072184776951915945911521140389513481176287970061692203895607777654535464311762275781582092129084850362177772192997789606501000037644932488248797342745411673697913394836713649636072183668881038681226028330051395038548789391929717379853178080429423321571637280042275108196547474931749817948297583431207026974453560952265930130969969238867138204810996599883986041295457388206494822401013886428714540214344097054303042368355128216538311504658970977971477848342432126142538088877774322372055109958806207511113782907752994896999374801534746646087925321527090916773775908578968408141335360864879367458940730503938794382112416589341946012942564164426200183883288937701076639777173201204047486216726992097656327326729079951957897895972456839234943501752547338838594842340954815910057079712287159593209084155511303435380662684381901971357013334515596863069077133688372595733197003356064815770988889752621472703874654691253354619201068380332001629040308831027414522758082047884803885083725287572989263692053100524211021261765298910796481542186704688073085413709236686953841010442792611626175194613732170868940849998944774155630850821759835894313525409315393033326848208516179456029992594984008000813988363513343266879930456963129084024740941378547611933817778547939792858569290727322062390957611073789772040167079977271515243916313549916991644766903603254271426909498723376562390264924344052082072414757581999831084098719160221327965128426090751244466022181681190523523540763652270130256046532794702922804758848299926524605126109180725531878986734877872200278482148004040117703971639761319245667326729125703753864837394993919671393672134917432340307701555776804768751934303641994123090082801592574942748215741949628784136440025160574461860971547107998976636403929312023021781728872714821766740852614987441569484728481468843872660412956137639459335568816094646228616645936721511413749780329891658381346967934533315855303195360761540495347146200592957786023342883881150005494409753021571559099976237201605788287125409168798270953007604168087098598746006464055311990442143790300605675720164704604313287663731204234987186369107046849324780898800000148345731684543460613534493575019650569406808861517970836046038271807558641011879434201492184681533094916559795855702477165533058751799218582068580373388149274032197742427411022391978132694244801910981228349460293161249780305777291567234400724290681940248220589629136606505002355420689825145761655977910125590290704162207599943685587717841639627465132819646590480822096082266973480229497520257377642359902920285831936009535996349674212398530054841664730434089957902659372930948607724771368080690985471681848403292081639608410522063017818920256661658211475023480345250569701686156395314459886836381366041797922722498616880954560985764757788496787498489712578170083472632564996584205610729896788349072994868651442885546342409834194143303645528383605342421214388931457467638129471588551598868409348521651071113506819383715496199771303036423215117313756719962280798678171680214084897318368885607568448470768907888032954462909844438987880600201442943929803262478208938345525540107876766309128793132068654860048655589669807933740823298228628230849978022490463917308006266771033465855428238557198734341611309894688439868955692460799528950120383620495114337026925228372600027515756533085867034806657781676392307958221433819104478208184202524104163577788907288207812860530896220983958219466479132434187177825122708443215875360211322577145017649094188537053599779742096804332975459413636027353057791731729001763698128259464948802047167100955465898066851071723819554861295060273125814525127748503499131004926568525022930816916362988179803209969581263709404912373026430382783786223922948584309551949264108012129354495315714880168623986942317148120332815652599335465232934251445988757761575633927942633581488902032879944318908991600053904650776379363818318952289465507432709196975986779381678759600784478167972645148778559923537447975528636148468735591004054969353316033951446985205519346548681507777458733543343901232225348544416648549010733390800535376947926443586566189116969228163370605980151928842178312464200091476006078779615201909750060631640958821694657480755076336360600986924119142027238529486728905921723235908285860547306343559118440507008556522264250731989558135197577574796751141766567032171251973838719197605142853807348707844648298658748525983734215138144886681886171341663383898180768791830390952247264305118902043103552159641671524493704771289412393548216403282902367471110160658262088626655643184877701270251589781377463070129647206998716880470219149816007672608687626049361114667570641562983321568182292999327427915982454103236538803969894938104165039993675090438401183785004159123365498984001483865181231554525966977130088345149611405501762793262929806458182081597853924812019561461500435604424239627313677694140363737982807526519524259557816837205746709520320295333211146682922129245692959990583001712195642446814435562081271196853156058751417810711518908068345267240496785041374182151063232774470059948370115626539473082480679146192568336662562828476935698736996301847903721622680344815562941668254015607706795291203783110523286042025611900443198100087680698084230617068642147018346098019561383396387580812639192659026950341153693138269872840827991246297832451991223409589402165165812748263611593857557083007962785453441037432986314917657687664537636885760211067212624565117346493684376636410278638700096127195268664107857298612128237363897601665738443153295533564245078131328866904378186376805333760948019044641606998982976426027558999210283376881497806192874343126577143115732962891827357086607893522134568933092450838775247305943111625316306610101280542005680673277965471254775122642044605298726115029316099361953034492435619111763592611374780526848550539193597908617373750813377875368106726321562507975406468944877625239969595630354509677794544043051907098053095892346105376520734306904188937159968415617621229487097703686630398724761243822984335783311335475103497341547650871292929831885568181165460385559197804753768332125234233250396524010932466979753131442830943633876363908323949184656064284675657424447165058460307941728127564250025045231106327842222843521268258071764482784275618335052230657559177400486959322227496017861484326761717110810274551565087555617695084395150524775309889014468078669734755348991209072650766719660741862703310907319641153443201923810580326923724137389593253640803997695975104953603579410055347466410101213678780322277144995304311002092384561563578839634191275575350651414450717896813803780523422784241899119775794510545167752959530722820198685120717028353128571101601437954169515978076239587663752729323967909776478742143036496345238754835049787979337331236933834218719591028194893516683231937124213647229746044631822968929816624582827545539133383298955617324786170908461549219274380782943730310361339684420179466071096802544767188280430269573088659916802787190885375710965461806685575502770703516525845916242275286532996798984089635955669174808540805300301289755521654441438044555574285173650976966128894478929544354822515063852517082511022320364250550312969737058438764226157800568962546584261924664338435539339255711691091668883567133126428753656694693741116487710584774293052019293674566200568683932269184055037516466162346217046642370423197969554750277768851492863274700456537582364420540125177558582338644063393225625079978910463813691539195933557323199455558509967040120988252015224731658532010968819895172380953747259505582235090474898451069833234371079306725694050969022870895574665583369824633090008951854799396486799979860498935554485825697976196619339343839082610581527879602120891917358020070991892024703360663029413871442313868549296692505938692274923917695440694563558338058076851912104202043906826892933091171948697336230067747192585245335848871944226348102199146917352855972502171150308723762709614055385261906539866520531602693033320504178239071592915688169550375434503063777358859545353945877698536658640248519809104728329411581154607060932480375938102526796434713641791920614452255792261667419911207616079738828771399694310426174638113664069543916106771922000350966045704909010649606602436056906485225910210278266572812752822162716428951572787723042522984496462400215552424440666421558616641002225548704318331297304817982068079729368666189010426191636338186523190648283630607536569924549547995638534040995460351741135315452995127928564685799926997146038663758654817277345460211253731405018753591396266725930737855204040022170137548749978656349113449909482729747001989490263826936552725993818059674832806219572478589305765462212476072352867820278531932717000756031353721462859774951285322159380707060657803018868159131227782871185652253961580464996235461326990347010992182913818946506401904814067295954767230250229700306244952409257883455454483962449843822029379825600475196088782920075560766486657801534863754386644329806680722568967907526364942813728683309637755237105923413782001129838270526870717249096319108025852291306493989480710539993417569453716595494184505797763023054526046433210951918157030276907681027942364620723932438915144926404615530050687845351686295322434601867513510991820055560994926507638210995376650261929275090526886736674371064580270893610530061911632230493163592262674064820129842097300739964716040145643472026664559322670538007388912174824525498896269634848908807371088714661689093692488031843420148332402313061375216287115918315677433568891067431852997918305773647269202890030825574604723718423503759601971143993363857140219113208020835800601706696766378569490810066614799746011427415981441920882314379767166832118374915607303648007336449310980814016218165683782402778110633667072580611597629565586737191557512467041767088340821727509662891110815505179767605507399232796977293133422315886311628788271359164246038306560305935617798930329262826690692004987949326505665415210090938693761977024591046403861280456274517521500515720086941395709965497090339358480767209831565266966973542541604122756397175589131960013878333120063064767296526213776339274017059661191363775031451546588651706924008342667071128589367121279571265463658839915505457266684104601977181075249086447697911310802098887130901903020243429660060546314267122286168150161147270890470297093904061467785731059919897462861787855180769966077873263666714221740059913397883034896409424185065217232253696567345173723323815041183237485861579490397711900335581595398417268027468528334457766536259270714121340005503533773381096911048509288327843347497315634059992109931252343265368912590316462007306144664736337002260594797720432339199351016646191832228322046759049346900115207240690380584462267064232970757125878927157894862249016793013752985028307061749297462325100569403126326785396922159026702733481912292646024545749424773921107113408040061935471053157631100880075975473069353206703033457097601297278158167883160322937217763502864196631721860422161146576554277321982224179421887904969650915352034614629527010468333782862414930727682930496271722184263100524260937341502870567073749247250930118788701166271227989984939641823522086435675621572274659303701098132855272963981794244839854660885535428190816910195945518981384542044348728475976218315674977653844101379935654371153599832395860490872577288053932137343647148270826157617070179936661513256557156488689075066405384407303840008525930683934250023990109036531806048005036172296664448839867786033745985882081425119761746886484359655761881838283002824286138466158500163800898055128449396546200132856527231555261635197148488654482043493733456409186665088209454316701166760321897735719818976184131360198690653927987834468115252071460668947369383673825541522010112173961053008268198079296108239543439851645179052622522126696157648683916763264442025363235023729550825126710276649977379556464632928499688269385048833784333569003465722742366283148006027569952641952801951726319606136793415487939403923761512751156386247430487060771621946177315466729951083071158179203110584549508023148299450906321999117296674203538768264299515761335392268713313704698940717068670942569626986196039895039831220783435380936101963153984214722351340097041001989127193387827844470494478542136639857182342850345057594693265795397376288041324844313804082176833989615787951033169659141431609529841032324651063973611494824928542174289602016741773020160700441597423909117434926077600446887264970426016566661392868782600383374962420975954537678797430532115581181768036725512338445753123977524481822979397487796421276220860192543585348475111586622242483362812655632821863080339509649630330360195317138967287779416410095576659978651175805193744010135746241485505759942735444556607209846861577329884708444718873149236131730833106123796304350043989358199420853501584891782212247934709672449592778500259938643803961637160465973730310601016661470248307920593728627976530900420576128806655683270369001911650629790772625892660917697978840311683872350838308639833034388089238678222052881259102251873242075957947994953471511617512415358361350031273309157756586664965401894595442397378403890884601653146229787611732753429245325778067426000933992356776730577754218722211342112526590721333085334349129220868343690642383259153115701103532536763661635638696453320693708508030312636038466900970000923258812197849331130383779187593519993135099864618951459303948236982006161454207519744035210228022129823993507556166912420580448753812931920569175847575498219648903388942147270413508116114785439655087728596644295934487946938246889807679709162777902572022354760432739028910883694802327378422855470233959552328573340804733581506348032328725290061995946920295154319272550124467302702179216659290647235319184038564953606351597376671080898284487520500229939314961579879569879582936242858482111321878846217109440926774251252601440199371961836499305444287632190264981718539031504147363840920543678288962063296400954057622197981461705327125743742596563306710801738056029304280065153610903535582783339983153777062383058369369656750429299648995180132316267869022174978169733193700991579488015139074102321494148714263960709012815309208833484708076228977271911382312996188087922617632070255971251303623233359366282291125867249289325077785382935890509842127515851075292906855868056732055475487398071950620898954785352967253569752835839737647176630154274545112900183272949371304204898841513857569155982978884322407575575466282599094395075220382923065715434124861099669310120106918480201609873690320241724938145567186614713600024709588104423070230924558726816013528725260472518042865410816666374845029882917520405096808972192492870387885946073774434476191192938874735951020058495072195957809573928741483757701329285746461345494817174047346985395460331541926263505832780796924682680925221646429734241923401066645569203321939949611884234116639228156608114533845542019267571704589777133376023561838529789269289761321305588488922675563533113822071240674306843512927785085929472273800093110788945799889143237976874725136401216318330738108921322008854359411649808446920911702016891890807327240993412916852503673222617146740297252600497080066481426259756627967935295364688301020945273084661580925655949137063805780943627136695114641426723423823015312319880777063165039424935412970762262152514107185999453540667931282213956324070026304758805393827662864115270054438943824364303853644594717209778573861649396068293802799056280097852674114003291268306538825620584647633653436065120623513557798824729615180805880624268838316897715771834617310027589233629828986493637473251301843026838723441046596907722599232413993451816986514633081722331974947437321335476436169760552889379662384649537556052619347635465445379641252202798554615178698761448053331093153422750937414644756031563074859131479553035041278645746535574495504097939925520943212083583757369981699464233767134816500854047742121226319658287610814348930593045143150053623704003005310649943946443634739766530596000163174504007968424467760527412560457955289198710633822245312457609395693979232888968457066406139799874277599548909076258504615610011635348943820665660667430675728819195598137134942918292072942689530098228311970949093029001522345683929729761407637291189472251195364541432769605653113719212944514779911118668073653383538689986649851161451462194551694337993991786710009086381469231405104353833318220615368814828100636730135704991746238712645791813289240264691163228700033336722594978072494903231706540560127537894860664488936893782264951408340609817527300862404333576567521438581895430781168872845864286521565626180557555907078729657258861029418604163238418329835949811387809030608440714112034506217141987246214085883261737858780304107068847809004208219926648496125231270900627495243610062063506807290453127389371298620047504522095628694467070218991616821943817787860341551274048979306491325899733822999910211106522886582345333194483351620881660788117779493018816208905981551161934769039628626093563322314115020574051951979792422155965637275668454877697577889189697632887173334897539669086038604165875101340308922914761473624968557837955701142186269549474141666087467600937853391396813844690401659713152868672300401518690360793366459752603710031356988145061222557483520874608800254375343770185812803800111409054257684923634171404019698331896297374475128942783082344219809880046128220853433893811856052287074148648673737919957468622544620551593826856916181206994554847254584192867827874180336153129406525232556043166266603700926000263902003718776622844104439355181006455295104966198339457370064861269811425145281746143232605256924296537769205447879685753711075544509430438051321518916730160554562096483788170302284055523349290238996523078720821990159242960038150073749565092650539540161060493031697726685532127773206076744199673409630951087784992666956732063144322322954325300604363551565240424056632409374562135160449274730217849246096729871081100970641797226601925969677911642017772549689602959396668386112563072716951313686392658599392902974858056968673651433763498061610512389922434889964759158663720924640351741715858987318422588903440957097304717570158570217616515721327728804324499006526498024835256484552890587135782746013616311698074338197254211010406246295678309231385320859857027246641343376860679948498971908956488259754637530206318717351019226351776725341173069175709585561553481581154788061071384376418324070167921675598773378803969412884052696177355564336277267667429905608807947762762502512781702833224724276665045597881087045053708768910427131398202455881624887315803121542061301629346963776665784572394875343485721151698872221707024530528463903623993547371942969163992455938734324196288161793230587266498490651607041667344341094455705440117580259020905441114457470548564369396448785275805197723230813931608663132576274741841986924692107127556215026084018416232328064685638732389793564505522599394234890121442012270613591203220379186836260581670475877174653001270540625375746157926429540628943576155288443310331912284332462738222590949395319328901002413412222770632666653401144573874588176295973101450781076315760644071065658868156993616631667213634480400439351568184570334197936199029396083197585560626337687823974342877460300818801228110034461582663120751060885723971339945421754400567011060753666724195964744957283422707517031988253926670444823597466665361132428215736773022539463484261509823212360408477051319677109940593325332261889425618146376788034482845776564138778278264396241753350113832340748597466617377307562566949088212422736376267558006571992498834709311446323283633626870754933949869943662912477688586942862799986331995238850381260150654412898688470745174903856605685573757648074978603874746614863588211214817682209026096593349892032716924675678845227289749881721182040775713991920278826658870113940116268810530305780859867243081026846995769243276123151674967608267462326947676823102933235210090735327235927849980050907032067302048966773386684492951148789637189362257901358531294416230157563227886200370530718574889571106326652151540204579215763956195637379428030698048533593799005442010135988853328618208133402330481977242152617321174865944952807768644944645345399476508819605188017352482334773337839342702810497333770537903625210849576674032212621930651690355531403832569751912363400251446367664126428789025623434005492392875520470286904507631974998167128858250866822972628273673449898745024668871747918547560695022536169896351162407069106454514844078988896399464785500837384609610207290027807777282045291410782259370492950189263771684524551927053429151309942553851008490325692006148222254966652460939859757300208168097427602648829052517665979458944629485558909579096406192891550624016982804453947789463399869662754542112137868707824655374320665037422397367768823319782399724756751600910376300539739334052927843766812846623259953776041474296416606196385735986220442819497942692413135575217719505519077870694810615807178623452505251419845456391249054010893413635697144218332635927887432620178438004695090196256254896489523635560662885565297103014612730559359766934166855700545491292168269500709317874344987950165299344031030265425166639280726978889656745332164408517618985984709635887296540472464057248403870446436336086917978801210652570209501349724152190081829398625832965456994006337332310139708657742151220479121613598324776326038297761011091406824903071242196020158494907254928125954687989024276551332380597353524048355322094410618326780696186355806934258694419782933694596787577464161199968809094678912893843866659798476889564499419910853002068479813039342392657476301570381456217934111716013235779410394845100569565966979599358604137474964561200876608375659362158216722985149460637384659940422449368806573249488863815457318984987686951076747627106044819501982667050056203752256795567751808844631651609972398028210190025292552258816551798662016319157573266461044727928632341570968346593306023839792656052555568945478919397590949590495085064639951298259046405125935066063818001631913464289180117374440024101111173050754876819908801237782371991015407881080256194201526623415072376838697185087667338465771838930338906782030593734590464153535161843210648581326509165003834972380224068343874210211256500221097726811240960369490465007448931358958629170294771381506379541984587362758474209987770073787409599450582080098503113693134433574778898091783199905370708349717879908705199166584252818858934352955275738490837927719789134569098588318122313164844456867700735239184707214579472806762679541712593544744280479100296252200867688052449548830862608107376288903212669872287743180788133671021680297308179977144446487415633094028096568255820249378381132198811411000658680599347022463815432334016963601314860326555508243416722438702385960513316347205845713100722020194043426790376851552262799873077307255500862671095246718287055596940520064561900849924170748036510020311484862027463173048017877635450384064585197171693804975987279283622262884496684434203838240932562529400588528641602858595355395329182203837251743479932982501599761016698254106558477779766385011210511446037294377237449299273111225520363193911840240680886939593897005463055072652663397492988529888862609414071887819447595148717269099111572909003200136575916515911837559819120466781327514693279161469161201406181477342653520768357413731235614665390255883185259208643131142470476495251780315302886785941621494237257394896287646201997892870932972829476082025836062315343695370098559273479033731737209821617286888890381836098145658040014798481231604525264246734274380712420715934892125523299224844226060964748974128155371249842980272959053879221463208922902696629320229342495727948986501737346398267151680399075939871943435900628810247705785002674906052047526613635165891438926995674757430940557422976984338207566487502086925481461226077465057133903520965639963494469932263382668774341264414317693850367018181650244138259335925429035336620171603018776483298765826559614486734210615573131159109549071467237102757499279939803553336579480876596534732943470729730136365409921932392182685872610073926802110508480664774850781237327536383209340847454999441259898981762333380452301552568453625166356133858889086749334250162510869706967692607600163271830972476134171490824846046160214621645998020916755137862502185575984103080625574043792874141928537619032353313741290791776891689393517523936420649462300496419249159474208969530170039866220973446604453937324030688158381380268197327645485937314146593280199022628186135553296750590058876790669944988828771729621205404707925376465441175616404312097132323807228533160048599276110506373227007925019853417211542265607889331603039945901148157803547824570440019523279427036589007957071860287861456625582736469074069738535336034533197034694825779518034491233948086031693970447593028827910529038337559127941696690315331245640539630270566076929489287023377168893737362897170700330495638173935117829904739097816218884686923682963555222735650360218702364941174973158809494753801474867998467714726078383725032963463444573269526314336466517746575917652692188676814840693356742671975224298734139008832162019847016460199496395411173674738555069092225833690581410741954755592689584094486604771813160450578338719488098647167967777271626398389393217925864477976140499634395988998098630874709790838892536434026833575048326501927570384264842833882073144277511610201760698945766556650558946661533410584558061703349316487591286770484985689776200490844810160715147842049660382334048696476162127315796549560702842268487953244905782246460681353936497667134127366003942804475190045861809422456259305000581098104615394749814950963066602877385726859429824314871482086502038882366547766901663718146752569898147055466044707562766093314595854633510686016078909123621085527752313858043780606631138404236755971318548477699930360762010566364045822855793760225287871217682828934123543977547892995686418858793883662701103439309551860213209595688049007570359471145095561147135236560047420885411904656105285979383033110419133307289013501826000727184469520809486204760076638879488919561369237951961699823215898548528048743125098299662912699120452788591207164005858874521780856241876710327521055703139583948452612650371651138782969927758301560976284879521091125631986542793642631197976467798437966647821757516207202668957148558411699021847132308926467956865135289848228395406596898368907905683811398628220950499880444221389979833028045248097309168215363014153651693809929433100401969887267042116033226579022388965991197079409496651227395127854778235975926574472051740167075962697444927502753182017128130635272352422794687183029751530605757761428307328806135641745955129402022610055793461536670398872722661546304281649252037575157428315477507637982652177930041209394714746347340923783215145492604313499540478904429827497296649065945583479469647717606141370836572225864629846455195610740858611180871642622287281069079439563870869033341482172356282370212888827965184999283571360906898617022669207581011097087502991650464868924604250883941661857456258967143171553441674137126548357935225493041969745117095724018196250865063122575740466256851812095471277846197859454500373822195113314087649529424997005612221946494389886436965790688055677085391421139637243006073722443632907690053696270228891866974253831235595666564843199379979046263756509639454983019402119369144830364304120010671659208007042443809172193950445288929284822457289153935020958670541530142196508801123066429790869979047585826162122902081268286999631758542587288827149399687743186987711808750867493904230150463897902031974127672780641032898945221432849941415485690355658698360535505234662236427797511327915487792436799120336100068560364665470240120786184473089320784492452623556512872111271211113767700691182380739615752873526516052721337658231046604555737987197994787843919399750634790040554828298251246950881124388814433287124165513421868588827452519177669566943002444700159591408610821376039269418610674611764665758349556477248324325937992767294602358078338223726765922915211421972409210294884623000717483280374643876601690641923026642307357193586236931791255077386399585810916644862077034409629872554960019068428996521664802148475136767171382123633911640266224797185174824183522901295095276954518533100688074652467136702464440704639038407250284855666231880032326672370544117627056629674901010869875296809389498454370200301045741116019118852803904111606364201979465140124796267813757471780550688345443101953912936752390827192275625012340637864300278271498565661076625054251571774364214427684396308704132609349094123605754752061009015856294307590462703901400571398266771058299858780566534057542687760327917347617071246113613030701490085301492835334642262261569313788745553272166050439000245415380678891916118356962377143022874806229832052593957172588923104911993471984348563792041210036791242750515078527174098560302677425834458834808643083516652906093517507235872057390700164488652388210981923120271165928303371372632757480811842366157390235292427312335847808699608595465984694311316262816674687337202713687579420751193856215809914134313850930911163610992526655110374898968975753426825392174130829590536738283995375547565665340595706585712753767719376795000666091563678346393118899182008625424928492497374162658293138783879631946505846580322375701344694892518320634947220815643690467468541661531885007922799510370619824412318729489970866839147908758617714079792007633125713762283423914791974450362113308853989466655117023260608415670325980500018997690884742838885035863521923541478019902714831185481607766183512452540324382657674142034541529103660162460767316601022794721187795035346246052995887577053892228367710845316919327742576478412372717412159654625188968518207866058078447410857312773858626891055832591032142879539763458064370037150760630737463724994258413781545313424698363472978943912651247764007839098002373900581269103703004487715039971036185526794564766460618874162601587728607538442895927114449454583590208385291574999657707498329899947763747452379017919887454944841538371429349532728383415255573271392598634773081376165917967811013672129712231636247689164404737356875602305195842471690531820113289888350378882212270281946750367265392449731883052069371502415975188037202983410706836051878515905073863821468429760467704397983674033274167041924234088100960575118498645855688002664512281070948348039130201565685159396486011271893135873956431006482797782994851346011378661304603038614745154700099248893333863675715565316903372294356701710411790660153179089819826975731615398203530680249950000142597496987170616931743426489052454498929463980087472186003450547886207402077263717642756911618513049655505382455107971728072646326791487948247022907195460833013244637318886895842969156858281836884442031651967324290969860149936336045393764482874180615581879366355663259270348550743084570304583351019055583181181467043084745635925205487483102632651612679757524754224240765777226820568681001799778794095492421779415901988219809299307146477198256552644870806006356309807396533292642143022714646649181750648912435864954844975126325495469413592041207432487000303586463941853439976511448787973636537523742481502415033656596739042554454216972773064182236507949493122254432077928023291109781246763168531762371240565375006103119289575336634244808049146884768535297618674661382051037961064228322618795661389395690324009793869788822508952874610083955262665374133137837879053467997775284587552114500413628355850023960265117101695997796419661375843626928085663001362490452040986628462328967939974139971553252824351559656320028186411122582213969742281326524640819986929505394951225366545909958586273564874691395493681582062147985577681185985104106496457491348469521013727152671396776657544097559529370243022781170584466266630581463215791202032419876342062871298912290312120384063200160148295844320271923763175908379318264078961607814993869910519004059734370706681192831841607053741486592494380660494177036679620279237195010122777877793535970094656770543669849320207632274938021063510723763989603120168701348122501779975869069145456387145668778515832855372869128029307312671686643361683343292876572149045784624342322647681687104314062939968162081826292877169196237786596302124151793147231908177091871258823752683322994075434555214800890702927669923130702476791273739115644044077493521269736375061237405268340254819694606201238957275589513709369327564977155284870871136134789183509802984656270519301588095038047237552313861270625719486944404308300954940217336724679141223068766733817474661913867452034976754359272003105476803427998483791277096327339976814134403040863866924687225548193676885484605638197951793091296894789692142681142369878591928392864610308313660475007370996626423272176505244363825494401988820502016584008855101489020522623053940351638210119313042155166515162405290319441809427589539560825987161139515808873133680469935963249443036535708350631124092416258802881913208418343496188639196230856094888439311362440620559032099311273336011711005833592276816760869974747650567246768784092107513016715319740037916306553874955237632977120608060967267215167440019535662667417848326968657193041728504168678553126596186393506199077453604622415546723582109046715773016360108820017425223772365528930582662184838389830457864072145148375266003301091066561839024196358043630448549382666715673937018649535368202166522691499369032717255401410222900401294876588411060152767734772172656953501787475277457909238683355463485006146657131011944070070791403934187646789685078708696478423188769950940031622428197371306618644719057965963117956625170757086055727512467072243996055110263701952761053883243035307348452956177438861001751786065326521287721250182751299819091116949514222190082877086511311333474787740093520402215535741240737135822923388816436281844426321902434443114104634478582078766402190648064324762566768489194928156639505104657780432280058289113234971353867112083893806858036885792503466340053099581046677933916846966498891842771454810151098061317843845219688050330053040056079269172217438272846972249588444470479681752995140440134295301568691457527948329320936260054255933976259052947071882502441011281426487953467077533452938633358903894424941065506993349739160356480519483860088688573128232575373935267179496478214722850566619972722098931540721225745083347271017254021608013529686323510273397138449948775145462393676186526367735575824325642971761535299241423374639502252769134259335083261426501732758414527004001091189910052461621962340880224230354858564565908580255683797773166075955341478308426034222523058197335131531009456322302886136775990563690719751435402388937349265020898602553713875326843630728244250832444153559206334191396582171895891250053331713886102139273953400554918962636106479932900367440113088835482950597509163669570253862003300027447338501096026978135256837575676076277485264597347119004158427223537137279784141188729768201084338579052265277672857341671844321978806013174242859113255674297760551902567202832720893778205417682043496252483657901057816669742007066962230525269993046043557038213441494701940853572236159629830999867441157677198080280750146149578955758980319690227018105198347253375870492426190770280298204905334676208136191059256905936223866410622783100991696655008394494776151326683866814505639918782164245098089162218764716880930998028996980764610101339439670603703889182238140737019805342236317716884275508833644610650389126838812142456664297510163409751097354083583154381224836352992866854847017992564622440355787300023005463775051447325494017858902276587778516605430065002995155502296703521027089427326141495645294423068522737140389823569977214989129639489844139512008452581734216758993825481062232908749983002614612914507867536634878542505569652678382224745971597002613084397762555976054579836296680952157523433161895491721412139039009564417218535087899485296715213050578793909441815060188327329693946735453599230029027123950226543670100105708330345817592173402263503758709323908161142348535949427829893622166430376590446417320451145591003958650332246220883523748009172005630310521855339589303035089463986869776118618702517482955927997136600761582796251778725779160261025604915909902873117139207339653224208167477348045809374378026669035338447265367302814687221205264856164864842254942088839408960556633043805876058919947359855631202223161635476625549328837022465868611132090938687938877107233594062581207699308124312433061306266303883478188725241481007372908627595248639807649025813347557726351093176704144213464377983916078119470867157227173390860408199246469904062856721188483540183649421388915869994932800868092246798306118831744884397288943860420356972189604125997918769337999100064683521132479948073376518809519818774174351240527970618974113403373706288304899262753683441561933776596005094935611992496178164915225942151837582352765659662775659428357778917939196491400985108583128500302107889188060026692246198457348612603501091597361392243722204996756417136419559109382982342204348982896250330267271127415838046703272801042241736409549685816116069906998915057746519005763168579752973177490851232139057601479825143982508252051696079436506381985402435412828882797274033803601295185415750045531307609673268985016291765588436338489533890373420308609002158995603421441017591910661997667763497247587444748888085294663393814704247929772202285434012822125406874159083153358348541808543420497910954450738816991239301971797500397957851156448420295784708480331125263171727556174101503596002930162898046990546813958433735061019830156369189006460835312849266994068046955594149581080772855925994149006009275627587145020635420027791381645578925065142661199291188457579806237387397692128962262211767765328318552036292392298395919429551992897787205430660522423484295436346843266663404057945841152290938573131978075863893884503681148522557226678970690591988656087109380184064248320598643602811559307749847417495922655750716659059552348669226125649270020641102392321624652156004735395237815740682964863108381745668340248812522863181402344049101428842060769087838912398444463319622829016358791549802084008417898984488785981973617771873223283139251049058659583443025366298855574001070154991298352713701656307103322046276659893396482475456358679487591162799436273174471069440603575213938097789105019044659045871654473416867011518282718035619666175720546535005731486505940541148973463953679142267729728840723711160821864046816875393942956395320860349319426465137338456951691886991954806650852398826979055590895773387974914748164663752341075080622186854871784740432326544967733674749530605776111442090624196359231510312160509734972601132559379200884699207974460246220213663685575407000846102456678736481901933118626044641318985227950066632852352010242870675771001267657805455184005722319278554102558320313863918227070226342979685662534601707125541914251459917295540997895783435800797341364747609432809636918814385703940456273717384017672406116377043210125636861831040060773091623632556003355776758251328685533267913629580937430794063458841953312131909670500754370155193782324579416792055966251891189348921052176201085711300500810319719913039516037638455553376233846284834150900705258906262004369691698277657874729948579141771470113912104897802199073151644049153543874628049193972824181195736894268280529014420427390650997725109259438504701938302357462461004469513825807067186344505888219954027735857258257117354361633973912633546655876821198975201867010993068913417187235038802753898856767471227613678224073112409864876354897534143969294941179362928382670071662913978404598014410749099180153565153751963671453546382937853995985017615660541515316139699238257409944380989914946153608976388000976603033231035593936609142126175489585633627351799233671473551019578931765298745370611191794694798534418405622224199668603487637947319626783440194708540075413254882864138525911224297823895865158762359566978745898414592653187675331514362556484004075745962558269984496907202917118219813105548425833282927536185904219899339263971084662865376183209353394336686013227459820937553320995432558539209648454596680906216298984854074543570182155312495074396375563529147393636537540726421586951890324110750693052890382348944925891015402539415039730367173652940977362596037585813710042357270964390147666534693731000850481023326458212195450790603604005608798290970774424418879484023720101945220736854238333588871620290159701146037604477617405806697293839647277652271706001714127473568150248195443447471825658765964080747879825021535862506089847421695526016058065600558294149938392485716021536070335245594860342520075095064704968878905888477996126685290110163731980220514026488425931273454167708461492301507441050082380684732311645904374464739501681835282946622112976804590727153214925143365264431450088359325035296100479149444316499241387972552882364588541060337693343271843679658951349954681331808467064294958677063593840808322412632872126369341044758025820868743944931078797096407850199872554942561682633843441751604169363736247184205670074436454598889650340400970202231493264205590159925231912123741665624643832854680620160018419450593693221407373116498388945804780112522600115109405067729031251085672148370719840470392022315201045027186747530859656941447087031298978871747717754362686794736159872025117191776395699328034574421528660342705964946705045727114900571591394848811576895916516316108043537481471269860320274245436898581194255828827678996763998461425573897945151390733961111600358992159724622601819413841506173232714980254957618304850136197529254325263087650809192682590860144483734575548499648185683716047433239199602869675661977578391293991454660167577952240356624381745988938727135653713836616685154964883055224835817299265250421872740204376445669435268046885409131566372548011820645844151979727341937454823558917815291281163497053956266003848776171592773593704288665722072364763221685969044299653086972286204091763677475763759440932271838919018633713037900965805165631189207683970445183248792380658558866757748947851185630796614858854744321801524263619181072252211343215928437475195892928166393466383864352065912282307803810353896876091966682174096284106727444714489606161899418270418921198935971230516820615339971655272663526009794926318586024454003462103801621415741394344559456793647008163137842514200000528031552071261407627976897799339583235567301954519659601237480975641122961113432209715964068013971053770964154724155723836303742680386172050326782960890518840073668371839668144494660272574681235620307464587407504934279898076036495971457171825952871346935770573640019260735851975050465911427099628794325219550463406109394989951941064884615681941302394407211583747173172470060152790138974201645411126192408106757467309544559942801625099698935664729044820776992366675362188674281802039129497077488518524552825875823149080801564651288896541368714123864632529558541767136606604585337763802124415330135120266489516110979773909665027550871887721789990697355484592218076263511009271246754764352212764262119990579951585548879600242263586309725230343720714734397067024479614576382852430028704519237389505714161349180556572540755421462470854331314670661779799561256963917273763378691808175124635167526680096387631154047667681856110210638787649206533066106732794656611241133571809718375385227641006777482898575245148402018440536849845742177032564953333499225894305392607740629936615546447011601086870292623825895221902122453324183794505128394846143947161430539334101566616478289717574592228791841863582252028826178451937605499729395377456318182872863427829126648780883197409014933945125623171827198880074704034519678525808233722663712018618446028414397207624807590739842218932024487424072598947190186825987735132049306175041530637500833964794980923431819584683652359151730049889888816246452462511243191146337776088066148629216255263105804092696011536296830780504374020750154597488813626075022304207442040248691880695084343289519198277426629594793156695252746511646502895125557379342259199015823340819090188958978554214118650166472346769055722237695389826949899678601262555111747376728333308572328852532079509810078524933024284413400118423280190903985846726491789904208599732748143914791926467612515784721884484592789702211525524195164734939358720555429264823940171711908229915162162672482596572873727818697562514426356195097447529296697992233862386660150478791336397034143639495286948822480185852064504342624069138400722417824527705906066197668263678840583649536986800940132534256862225077349993034963075282183650181354860225121105098929691455763031022906709651332991794985819837070405217762289691853786825049831557416705932793043688133007728800011281752064007658973161544934366695861438721948779759192557839098640620768569263680393633117240904196691548360251300429674497694847058661345373174412477948356361842363044499849713734825952732665480105031577051872115078775563698990371564095283282253928142513863637442738600119218455431569877706279994112593206075011483908651452905398730601341919914734294160728387355146048080377876112674346027949254292390862738052041390152183031051677084025336732631457453041325568373212724279935872036590468948737396994835487471549059271857653945966112618101835085883129657365545459090431350840095463334394715850947023642959784871454625928778175696507306334835983182690294967582052562629656163256176229716382377963454774905872173700602876854113864329635253590386755805907567889146613062894201835745823581235388701657838701587605153130851179134506640547093693967067109415366272111439984225514807736419056391139185942003705674046214166223190974598213975509076356886030716002321701884256186770555748353135678703917440630237628337179595272194566347129543795325062407863100341165845052053746447193713818953871525101717403135793999845461237174713138569369875546666185644012336457206091839913328258125827563218681961206409159524581017570215040749874028235201385440214886102682481761163038933680463735403057898148918778586227815403412726493943255332050374174542799704416356101204500990219280588719165946386564337870128421085101543492134968118342561327799708003686444183064476712892833349138212110808319768758805806705348945971622934898785734544359825272738437011953510638151502705733828447888431968630318591903959822795806452829314028238312378199921464901918249801029829210944015536847890439890375704089387176478092522823299359228781285621214195450033795014764858137956302138750364168159475868224902791317858829701733150090714635072840864980556396817535882310623883117597804632303481566400553190967990244839178338775216533629914317988207032220720298780180861782292739281744495621955167437709140269848904369966839897621943182592803827010573039938867604362620618971909009988029612826958162310311738172338545333640816162139859083664536520747592026673941666233422874511175301626300500864168097838087411959785784502374625687328538736760994984045025596395416767979195983991123470564907429884826015326299895538759786216478152155129210857892594215438872420070017291370141583653690724630083251606637341639450822550661159114139650464137004659152994413167209404871899105916224577954840213469190330045456370461318087036608327735135582645374609459465254544422143313282640291129944255308691013824143503778533084901907119555111255071801735914060772208622551265666050877784600183722565543909375550450107519087968337569513460759269028186213722730848246483464496757831777873145658084032761974690576525075043097963482378277180055638911046110120230405880081556949231904761754594751485446079188065823980381094956654566066784677120349347265236948318210345750290687232005881254670101295052961707982796245153422228271300746532639831827914173323480735873716200878523825207203096468922564284911899120940679831086032073906414173366513172484115134785840076828488558796664518711418535478899396721307273809739404731054600023207895520903287288691071359552784029214655621606220688935966035437069358612439757914623453504588124671876539935003158565878137337406637525202011904619958412373044787618128747387908807391297606158751254014658798208990773802916719379652142271021117115108751894623090975868358903199708804308194687783947601491244412094909135435171744970091083603698318506099265033840236972893081221554751271030272388275319759605019568156874617950116082685706721486855287919127504607759927200153068754091607766774431897308349980496352710303587630265518695965744116558976082218504116005661064263833701950373757195858560534874704605036527897460588998869494694596387767008644859999368938174230171583706275290787540451479536315703308379271791023387055604369908345101907514033903690776376658947593739358925751843399309932153074870047180452918800699318464968859392405730710969059300914145764226675058414912182092375342988730967675805373718542002050712224735788173498233235816248084340653811068424253290094814536697028797906722783022029638634875405168162625404779185728575601654925150991893932665194290505602133626884065547143343900996478529132899117243871686638423536357884275098737693088674325304142507713638864269459688726063326433700493563086753696498486184811733328804178602781959878546451796773654185888482677376457663243406669144758635757922009060226796393759686836831134065881175532530842489855350672538812006301343193584739438032022700271011988701672746733345047066465694378833107403459448835837498207624441044576190135543964663384564737514146979511090702330507263064243022022573370677696402656635783132546991983720314396184131955487668821699010511511834939408350936073779352484051500486861122649558266751261771564504512998847409028537924581604755619342001607740079912410742531406678874284955595061330586847573545756146751536415293616572620257665087021068819826148750282630378789740523340498287665449560938863352407141051126016992744803227962837327568693745013989675604580304528709361213498522278283824825900880338803098739969070539396922383194048464927936606704082694255538163061539356375343316278069871048397143540322663500305725639338955947721764096995710124497224393277087836258702820921833579826776618147977586581431395329391604544205037336316041793514040436238415154716394916117675965406668433914727400682874433414617128253132448663279473241315314469172170023797782533020593607566036235322737990927682136042223672093981790795172817915176921126286518922186293293431188485732192543134775657844633813920394708655938025139195345284228782589396865678354490151234341138369148440303370720313903524541334214181073255337254142600483070345845549831338710826283545956305787414838915862957487427534866645437359836459092841390095900374146898257568434207352897288565570592686381881558671871619990052097645240352321798298500161141705732197265214544680246541658154884713262515737588005065094428214488309516324279664243885018613960285177974543210806043596585738614893480993448821612693188860356851429123994122421907224849389259810675994733515246360148919902519567299684743856424146356035624500781246399719330928462624895545466684110417394248583895821007473835577151571912524621640460126331473949156915581342887820922286057134094597088681941212139069302860781891326117606408264435707940643414293556865750045401428810537997356089795570520077922468361587832641627306411223471746268359117364330864753914105238122511072050842226320577392100415986329409231995512907658191543027702147967405397539659447204221748926240684783062551670251267679096965603678796528123272969143679622024530527291792975721513594631506322814769884731062909050201631167957449631853619419250876571442240608416369737722877718506646677049187208547941144291974243638031926325256658245253994135130119691528643245974122114213752662256891247430045584773774726254394934960272487334583367743855339002776318600519248153792646650789215978355944581492371928260128974923762455637917501626815541655999864681684959997723681110716400045492227001458046737282241780687224236119967477399004273093499777178209520092857593784442198124465375176961900374927945348985401716129611651975451911432373789419416325699071600113606725863493727048862181323811747878636175733800680860392143688319969885880607654243261695416693196174493285892180063745289959476197185280386116080732629129598828650994866115716228551159442708402473869065849141479482531858634327239417222474520660193485387615843373968552505448823869980013708135401200728269831038312242187752909439313117088754482334338883762986324186515290345508477529048043459137960268373419027223964654537655075143618657544529278442766353092611508441633581711234256960837006957182221886161141542503776572031727705161391531963575807768285068437797741435792877438415390921315993257892523401059521247630234511967366092106902447549591395271586809126968736156751339949593392184139504688740801197258372023811063756949364713854710207083040236596733014787038967789250997450406295167565991936179761885678083985129058899292782115212252574632321597166853107269765135275507982870167398348199957719795534198067602615994999782563052821671922628074557721735254811786308696828804983521806503136044700227183191291155363404418769622296142748878494290079848831812679729849636838151506102176760222348932242667512047101169379795548953806174110230842170185030322486474501924614333323024941041509954818026545375440492805747440830971730632437747979021840164129154149718073764289987082418948333053750740794253089949694714355908519879882662749947127668377702128052931078503902924583508867326494587778259531751170980938617635180030897783763844340044504912429007483185925451333442862951726908757916055979054557852481886558899021897077529990113307303198549627802331318833456820467676471333588111928909193023804930121090696850581620763084422712450483742856135816710871434043315365832293629504833829620345710046712356142682969012550731021747687960934222829903856158324025910319495860009762594385418615685167711835660758514212035599860373402840728633526328574834020572200470506521522339145539225598507248149605858117089214387301518749465768338698970281842507998425754604141693298159481961402715376141888764088848251188687326486682102761054410348231831999813142296328024665263260142908567645174737856466769383324656089240590675226263607581380371305999944102415176928218383251460370085514803698956773202794057536132937603603981759935079340308059553351920596533745874828563841617190664348870535910977748609654419920448537775742828979104987302894377588781840645516572995324432194459804224637901340613815075991801444695321872622897154347614788117860368041319605014777958821337516109415473231971663725661007769124175026835368651560380284126333796217367994078996582832936678297128329883031979860684296149491723031531223226417880554697932615406864260269031685474669700670869442559655680728915136794320045622559713976562537953295142494066697155860617428800878135895946580897520278698062570142739678456695975354920133495852565550824909344182188164156589771643383671587260083627012327480675997519691352046811377701783868818032294966105206166292990361548614765182690722769277121592881118674495312230137356120886387088876061509751000363462685582210588371317050560044027323514780923630173730440416085970424683555928171278893494625164225042983365742789188216523391709942066433391594489041641768302740121253517571108760090276572384589677907397784370387337636177429888020408097761129597238705547851603030145700063918482090110845836707462049598569895091554140056074653552726913684730288189727595850523054142735101563148079924694230972892379386218583840484635661770933019065142347077087818214407955691808854998636336383357086344163908801783913584211173262037832810262227202576869590969591632883802547477907780187503730831910137944642609303059230571651297978816654216791982943805155125440526341339804404199272122004930812262225907516374474118756204821499304743517285801417919517780922719517947592374802721752676231082869289597987604750148037251453674731547949017380697047066058058124970926817211264174856211250718433882348225702280417392484522901311059388959443306522599350268009594058217502708821034070039876709870159092580769257830288439531713443205766522067434122095308115580016737362371819389012203067949740061309450406467006924634977272876896971186698737375482147354793796914155586692858775145253714827835668652457809814326086597010884307949896463205296899952672428414292462155116675797638219014378123875445954888019723154848064618384969398478100779083593339807023797567725054383314595257919587995640003362978008088197711176945042865575763565659224193449944659214411875958366791964973555589700831305338459885557999795418093123348185553358807325514755403360981796704658121343791422868067454724641517583074822029142619311718085658137065464595534668975988224982545871125630493516094569834274056490730906639271299982123123546545292310535199302022433452016738979013164436790351856822252477642042947634426007705117234640316114892550406906969115360635855090005909641960227997995937653826964588548755283660644354393586467986411695733678579824730215510261738741136403508363580117344665906195844061140979273115421070271944625550437767060021408068875024006214103429128744838740233896470574287705442344634985818279378589536068794463449025345799296195163460356403820400881389620635947076346874623089437342626341167487087861619471388926271176891692564002677032121348670684372962313707557872569657329133677291425919994994031459434783468957578792687225641177026844104831021447853564193132607234407984316102872547534437110363012538221809697612386233228631096852475800345905984223856749125081247429969386084248016166684903350523093438697944106738238835176940341060073841551703990560683688603079606243100347910108869307782104375262672257048342529145564447777163473797571607580808686203501497027420407677730535539827016125144936072001127906450210324167917950870452107585533130337977075542063293171528021148271471844299158737759050439825394711439861803732957788788542076568482882387540390242833885101593573194584631940361738729488705496330705154693796950291690656339640845141841909055580080628467525182696491879905626666592086034250373834783096421677985302757432184708374047898991529502629363217327756277590894266332586895841148642149217186972211211882686071576920154541061553804207544540957914754015445206343694112317727298944524345440989524537221410003923949140844574398311742341807056371574839958171276072114324822322149910662876186624334162889110218808289985221695615341170523884388082327565759804991963456135962498809056773423281896728267721680602723827750003072805973455352377128895305560077186356159982137505280833745035596437493808469661690363638886273659221432054309591461867718232858586706733703648448891735782562278178498634937981925222404989092991935659220976108329610912410069642081417760802605469828209357913145599035378582756111722371250353776796646531787448391025363339237268991598738247961256969688089996543841733488323002813432360609845032556598667395702112742519728123917939356061030705911489926871510714266986285870990729667964739187497430216973710938336814116172900040618700631455399551615278478919276820295332556463112828451574576381022453697018711858622077219991712998220976324036119544006280831147881048544288956605413861326872368803865414368746105931311054488677216963420018724614451795249318910223423162043710890594301601933599559280548505882617752238510194417723192046592363440996457870201478500136403095112159951909304179724070528214508669172426029350517650672901024320809150642892826349236737268755188749416320203934519812953180330033344435732033361235072674172465033227100545447513428369069576551819612265445297781639900770285651586700520778560576399200393821529364728865703092501136349522192283073006503004271431330255914083777563055620720820357446590331334677103779334526822226374034825540879149996489277222131056756063408961213936186940404273927584440273597631068133822373700866420097046453108936209750456435543633142944018415680230436108988929821719653468747510889059117284548801615456654935128942509208223063520745650077787028748596042292480529751066309338666393771446961195919297370750906327797002300821267832681128394246717724480836489813828782125133586808439024973075404586541764483195783503146930254917825826476420065215069775985089544944835991596995257348630033544226378408030152153186695549172108179165053112906776588562152719614377822483431111229674825593400883187118781259707185257042517617240157938761099340349639860428632757144566424809257900504825204857559807024918893896717804999489812072821997577316608708587095936772870793261424679785029109885420644911381111145963375096259376131800907131220494877161509476265590617119832343346091300624839464564136325500590074633575717002083451752879625166246565798267064758801565839442212415592247115863967625222066900163680235039028126926933984631004507938059954199449346472392901642979449805977504496024064192764717305171708666616422685643174879261725053410014066669858886615273023701288309612969853561608131739163428837593573945333566220781493288689253495736099803335488844697335678677999748123444702126532795855748076553357717564596537631216175374717892888068959916559123097952660796379316666809466017473678945230032236306240348561142964900055143036566927126442381785861302176710378283314463693183900268761898269354306306299194098151282631511719764210416218517292512036331643777569866530501873029566071138268166902213433071260712009246626841189779014503140455050108502749387839928269618461425478828188876962445547418190063877492964581995765201739682087138216938349453087090295567859574087682316696943642282440758285851035646928079109112244887154285118002506006458058747120290363820257249808034782809730046761569545552693870905957346465021582104645095712977539354107477489039365342293809927660915141895133922260200133514640153470061254710794728419423357210184801990515703668347963684248252262358873827158401525006046943558065244356394089020386420274623522876311586922631878159105997361706737461251129333756381315021545995535453936003615152110076796576004004798981923984126404169974501275893699710595527990348630867720606884566313978940050270867793307167983091963127825805824437562870709161188894984920132862900072328599758743795385574940848649365915075384999129216138101071091248985462677641524945176943457660911427321698800507484514051430024673915170998873081555576122313663094132711206200544523101889579023710546697982243628169419056531756824569959064167093226294890259869124741165588892654733069316937288949658801174425866235642692093893122462260929291531159159967161203874450450135480843905218071775659583872675502696369143347245464193678545268538169706003394620381754811619535307441195514023625121192522169091051845136318373579887197748420865480055057291962460882522255755826050604168869200814594263418734937486907625396058122095197008295889125595444059089418251524288926734183448680204263518988889844202718561839481424271596515507650492612892040508835451281755431393369204666860616600133301901893983661231350648290235457058025685735482668362050725435326342610961589906245550438832003790827916808154318825746336464210559378184474955099731213924347008272792031349460236239081023393230167205592337290974916360417781010140305289821461079038108530047984323549476820145002215959290168861006494079835232339915503838519092526004183195111069777441100795535075591646871422390666316954262607273419485088192148131621998342230126059503939402630507790702419531349700264990763578635149051564310582245469899828741534533559385319047407625792296365226760185712586314159223756115390497206388965819390847181012595638869242694502352653181633061100453691356399035703281988054540625706286868530506791361244112077114485340255972449141096108552552763987027364325027657651600468306743750857228977684421714839245104579133891521770949943603452254402079961081153336721722676829670044262128861162639180676580933929768279818162915510821206443444693133141110543483293931648352697810263386364122192037735792795809481855115132454615268705844892826251716669302397998134121231202385820062066509887314539920777085648953793544998482426826325156499650139067349046073699249760444999837273208620030642227030669489635129020486490188596431844990287729802685323804386719043881078145672336189701948678954383611646634572005773772388594498655374247033551523003300417618510244325846057258985874462156200251851981539985703886309180109097653513997632444467458657985723723122382871292429539202738318555095865758363448489799283671147128464168649876689960172864508778429659850622984035643160328777354781362722991163449094943947460917692981752615087324676340893674463182779317689891692561468939135475235933948876717151177720961812204627381773135902181554952827521690631106953371219783480478018711809968569874469724728260341206592808101839711868002286683400761210871689119162349046063960660568642273170828797983279015228670157578382017243139589027568283719619952057237731450250861911878162276645730673978427660009604471640345931813972666388345131880461448092364539012319839967233554025699543746928518091448859969295343326077713002488407836697575378730314438066793794854481607049520201745898324456679731218635008625404765976042831213963879365497671723042020061093779359503968615447764184115944057058179885056035220026514927896061201112232425114327626263580750354432283290727540322523425724511999010104460441312793993029021512744710931970201786711534241431759757365306276114941920669685559736814694402250935045996524282122698001778027332397481348481717058417302693139823708334573179526194807986224572666704948167071186031329678315436737954349553676940473547200106890502369990256489149942180400568271542308942111297409748636702465666752038219138069104703706503298996630279895267583874240262548133915710216700540540215207405796062063818064786036590713005055458827100156920179776643827954522454405810649052699330487611643687551191684515416770429711201769247768506742411189355603942371339643457691738824812938363336865740740858705835250345514449305258186202217986714279371907628022518474482685039439144359314162542524418720236310721588351121481476745799060963329302318472929243793261208659329685880043037815545592786450861219087852382091352703664237001753358357025595534723819555859387595959839967998823328004124969233103911269224782769571297136740621263192544470934026605068963414642872670398920795974227675135770190719609045820716228591883305448533221061680862378843833706361587219271119020919244417404432141280292963972795124641453648885551392795257883735573201642285959464623327559490626571053978329896262648553571304427861877857663789955155755174863112692954649476331198477108333974120064539613050074037401090772129589263599175427157240459366972286155749533632436096409112004754070468162729918201390194138337322819889469819411405323015058869562422729888913608494456629698200218188272861377154822278090324399325583198352555587247899889320512087123640739355561158293202476746391887462722472127951555125988761468340704711333186190880038395292331215619220211767751567234272876371064993589289815000415631214545037184426654394020549231773382109402991036999125910694253531557070251342425125016293813693713770472817973681081019076877463661772019556337624205847777679965849625493550685406042416292314941890427359254597496721119157378256769844311482027375646302648098009589935378679872724184944879688471066139261632530725264255910372208472385141795490130958313517347727801416165980314772602726772065530583685103718719799896751852049013826922351852128206048605295064793549368114851725121639352449881271098396372856360454071787738527088523351285101712498387088801148127072210435981905246993908269730525222262824068288397636216434758259291122791791730602134901862677275049442098164880091426748695473370155701799373972074962062511299484752423673002645101344169312837063562757713127798772690488177970663546636491265731888364024870897383955371419137260214067860873015003771917133565854220237386530564698251612571002401065306690943677520951214601777288842982326475403265874119833417865750472010076177754093732112037974229338445749211398613437882250873011989619329294802767209880698689450992667492706872824007030771402321773879260090974204799482836333088628596400881624385626899865722081590335960464126847182869632616728946724470909397447431584974182216754649116963532489848466764932378990079037829832585249679608285538115413659477547025014047154272323532873469107085765210147775093857966281557999714206697235933633931683999032549807358763354554871669623194166746685964808497182602565204719257386131575523581678020597519645429457522580949139295816815842527081845570527241796438702540431439292454451017173027592737638395806587571790766138721767910181516515137529855144764854493957888497847406355773499496736711835163452500876722111806460671048397157907933366395368755744156272314185023143035616236106224933894775578487334264672187301924163757323575228959201591358357178964903019026509809184920181269530528691269638523795230734267349923831529091571719299658450730689127036698036576279423041985119389748450245585739725925277206042030810751665053366171505331006062989416319609360095226895339992088015832259812591040192758936458990783246366075339220244289792778838818398172216471857190702846188527188466855011326014352787825652175066571760299549930726284203059179475737651536896278973703592579261697070905682127205502211188978338006865073883971500962203400461009218772744366072373803761303473862154427768047695755646809967383367422937900894378303754385659280928038706439907164242281998903983552886252936882484246871943361111426405480562481854458291318129952600404660231918615212550377226713289312582812823688191292767903297017740415348483935687677678071150656414238850515231820109168194388176259196245823504121950626786565237187967077271801403509520791392961020484088031606076203151279601626810916147061043030216970466462742984362045388190282334560577483909207380824847699134638531794795179035146995171262128742494252706760292527720451006019594607980834045659720871890680023111762282579880303057541291711413021217001008897818829993531631847733973862656860316276181570349784558230884512006912380232827445261911065134197236689356235908491447186541240079872557321682686148159847987294157546420191756889407381812856947736033696175722314038700566494135223320788778116295402143400229706182638004059962225244977037515673962590450462341204646529708877728917771973792294803087250376729739850245817836356573800904900559593721464750487524116238169349792644679964568520029001925322463507565873544236174485964944152181461674263211752496752779039364223680105742479986214524640368747029401529467253580088005730611323256800563530317857521356931361851167931382610541382497507057191973566763608675942606804918116675147303055028621787440455740776222156868595720378704854209800150409531004348155658933752805742136269471060808067643820809993950012283091706082432207603426486516290684675828901292940811830312618999480220026130878153614702608554432954443713463937697608493394985680358446774863378686174348111478772232002093752043459938833603297875055464405377590260437940943655401740324705692599928469568627811148782370849121614978746286941472156514544700375539021526341781059121656010622932010316286122498243505923595538834764570137098932641368392576377247450664130488590796327510865587063734916136002264533728887859913105749008571425458770027636923143264376681391780855940592095110891173263701968183379282273969218789395568561718720145667188534094891302650313796309473729345405248085416998691471970741211643358340761571450125730417251252867835079445202729146688236016232421849018233706482460637130638408836608790645065446153724963173383472111661870101361301316060486354651099493664199452878386278609462811431173669200886932543435477919605388523915580675445626069336499512424101500442198421411537139220642615148546160624552167727038481816686945282385958855362367424514399849485230451208145021616752097840614087765041108046232395311383790898072611749609977605600431041210915678002573664585207301460984056167211766316036303235935671622478395600557452303372164833461539781275223249980698143287480547423654715521661878994618167698578515871169970320643770102599157085144203119721545140930773556467865996274309221554623592455139530008742631470673799031372279210382143399073330982480835427585813889183780063021683186259508778872152382775666955171473581490722662566129662588856692894955081347733021409651904614205942194259219944553795995168391812631945727830596107048145846393930447518207966866027805119773288024480787237084074510078010823526895324671100707951453327601989436431420876574359658600551882043420789570747047414236197636553951547516231101823013622464639763523749562335962700869128071783371762068909608207791463304619410632743961326649336868384775333516160089232974720470868001216520041333852189935805520383510426315052689292494853011094556335802157951997642522597660605024554809576211123274754623451274465986787035604089491250351789471838909561739007078839738650893010287312595556091153737094063308427402332180778929551560370426738961660153961716331738575526687723426837208747677911399776209522475000855881175131886162060780482551144970117895956296385024421922453774681344489268586977216910230551628752527394851110800223564607856538448249699887196229864914345259616452529085593350174675641055057455170200908054245371055950624172941803249654988399692352683483529011088768982514173560090084158091070880450408492114685759133634662907521280987197571328620862194956310186019997631516259207384578751151646138925442689778857452565657234075205255443522817126264880615260027604157481186117842926397571140425596103616615420489823625909036762565281259887477464931875635593491842325290872723557349052488445050685090205068658747993673568286608517602766802898963934988701694965445261398441560127139479650035637164339029570306876050509563338652374412482660647875754775075459324259892594899857919511508519408743435976304081735221713604878170396942220661754455786556310987087569174231624387332024478772142028748388302705786947333411489011241261003835835183987078084891248034073135327039983763738291187761993395562291734420316467137246955627828199243442131559261054677692973121416507341694749241266952255310266449491924572389337472733999890445362257624879782946239974169036696366250970022071462210947850855592710840286554344730159757463480930760382446868428855610945976298921955748099460311626294659805235508261638180050694900958444999936761549273411154404785736486595388891757474829033775084090785411077251061066994241742156517760354646181911605794103047821797542754303378228944090072065934587471287307178996552970150871063868283425506953316871841419983613372872656911805111550187975330257818328843513501561475151779943925714936564415548155523410642492344038897530079438561375663823662151906352686789390517656862919467088706188703465254234879099086869743957998824817559006833252774626649537476628261671299517748437776696054380343065362015432468748615018671419222558854332398237712134216705001474768541203576221367695066015737200220363157752917760845597661333060868009796099932907114896797737364766358731385552114347306709382201288776664853397572293603275946474445447439591384037301212749166083767560949202999794292021933628643088062850232747928216441934279087134727741379547028551505804977516047216096180547165941427456713198594391002714457556504180985560534007300447683912744081869489157220631344082153972835461549253060660346429150706994490627905111691346370399523805740239502541371367641259839464916120074847043798098900734663905630663296959578910446536787619697986336594677786982272200800035731693177564259492891294084195249091214183312129286519743943282644727238418658807909489638582815353675872094834530399603279525836751970549994807955134110065293143632380503919770150916409308279394019154076242404020959530327123372109877066481654553996929221328200440098757186436892382437545665905274595453354758502590960198906200699223673075583587344696915980065613360840623524072241717453908923337148293198029671046121767824651653259810759567749928639758335421303381696762179994486308551015383347549308883494232921643359628996606848220904622926094454538236393556041480809355399551791992842410000101674545859853539541103456808465099685392571850857341128790978331620250013199812797164800657384850367004781339232533216466596192697272491217573340128142862084207274834267872948008651857649187044494450520318451983597235151552344578973593515355225433759105965121211288009426664195001944881596294738059546502986551027353440559152450451868960708521286761234110977520911805908112389101616503922072647952195709709037027400379515749806132182512417693414710794133076967869502599777644225337359041703525750236724886393632353981654247404945672971967426939550669846432601153703311759996153489976508951231645791198211337115294535967681754226228498218161400055336543423906644057208047455005730559042699799353800073223654100500052233000142236367569813332192174545277386586498165956031019565464773168176316895428533703955670589299641257402637291211827259787279320179506285089918526626489776594041192702102618165784945991559311956640128149715623079891280260322712752285551062338475299361668376476279292150708298614313952189875128376608906377966033835753459940150061781536360320143867255964704154093788927640995936987173643466833976808506088100596288856868480997294586936525394915051749544307174900110176456326020034102419497825006153202808603303988557966652850682509695301784019686810238783428310962390462594919710090737964243693170278773257695713035176260907513882730130282628893920677471432197067330365330156542322685602015174008941517162151269549698316693151463134949190922821369196148487363235280636509592691875984260063039181767179208747251213296943477087509134831746528106166842932847677822772348944857312431939679187278102152935128184651311007217518447150034171271313625778065500209827167014520415620902371467967693661968467861505008466828803853396416225331962695676518886258809936077831240826578491028929970872152944130351268746097774417708501236706276177367960847337806872997675603989200988752196091589947104582445548451370736876728794500210764926501569153498996052838873591653163541348375544596163553511217625217740008243525829921641431107261499291458526882869948612498855686079099181726931581075887606132037667516473336442962861971430824370927338940058662813057868077693064638618915018887909224985914113684605354376671062984208260067998939666307855464982398213250182047127586421232814256778474362429459041532909685782078450767849095483110884214319420280643559161022938921019028684917789252620996175441170990641833757374483236562829974586125676000207406395297864421719102295689288448222236802773356974156383007178192798124629214828573513141122803628422301584397402575899915060861684362387113969882210291121210803540352321705263884645059220062607887734842603611362522538597201848980879371330339659271241825761097436688261224387427912773879423587234735234398164607926378515218908670576841948658083299081931491071695610239477377344687248635505518392056676202767198551954459073639684951476852759505100109803544194662380253589794784371089327717072218687016942555413892729853495285385124859351979240593162036039414255216017907147969885230711726897886169930339044544843114346442016840368904976304321975228550566167762054895372797122470989000849552535921387297730158058264475015458832841574164899963478490222719158589908947913504578640304755110146581212476582794874283593905614485768964130250341826709264627536261686809883851470226244587510137359255381981693644523902147382706639923860613227065956588460889797884361422204860059039731269487511365994678499943958246925467200873268819292362890156196237838375041525709688852649947860523357249339620468382018377170974856980165933783847644455452020413399937049656301073289183443692025207458281933535597337191924864344624500407039898499192717975491465754576675995470408736115463585784457477488637791735064130397824861497353318814083845179505939043418442423254012356583961904606945406987010379144626963057239251466101582143231920006697504044003843350006144763756617572544686415079829850431443059127327507227625503348855407614179644925997372366630931912139241293409846563720755394312656808416704595585311697996908607368481645743544046627995849190407302451968535272088279418704409239145735339770963121422581018567125133863286880438668053509603503320039268897720486584961996884673110770198551659266147877196294525501430522137605636780044821686996968475008718016811235385532848687124980249892142719447839786187165710619763705363734507790560171092566595995046432778081371882034195542739927608180223592559536493164317014487554641493257817245018907090288272265945743888194152253625700961784078023018166259338899492524410120838532833151857161068047222164436157055749556067098025972623421769503273798276406177992590882135026603294999946888799155350422436929746961899431218388705672818191181051529591292224113419931872950563003283466980091659785387523337397843617032078967852272328941276757798405341490077052695233138143291097543064725215508837150498236950903859317347212573369289764156498354528251590604129499165406171273621307606837343062259644454581348209023160918048145770511159668451099240693169443404076501481378504723228370260473691415957977151885423480821955776313737418320229816900380105626086809672277424126903350036124413796210286754983741458850524533378395505066728496415433031516652415743927372611934708722240471499786353210538548935019417722451584516311038021032088116038259448644562951698167322500054878950410851442098117736508221527791476415153932621123894387732223813023185665894603780177941821559885365358791314528879246627350462700558699616507872261375132471525562452064208844292695662249684460604672790020286954213540473663499367766594715654082851175765591075311623289142376291672599192249704432569733602580531325471346817868337321841013573631634203581512006901086552033558073399512153567948496407083449950675794783973565946824207852985444547810260535039065106846445539697792245262407594282738580186169559870680619181112134725468224827897097582692338045855260261467295483060324290378565856176854446370430377870393884984033731389597427298987849092714830188480439574684339205530619448581883892104530300460655398512464998482916544800794475140119609654709588658489608902357171107225596514924246376508241421049665418682678014798837240448533284741069339437295754604246008071208718432534801624518414686518056445452338872982343328198094895129618068201817487287010614899040569980780752227159255944770053960270309661185551119547893129825599188875782702834655061583829186275107921948824998416185964752092614958225084609179572676597196591834238641521479457057173219523699902638252374508002575740462393507002058648467004075774464228388289563421051789127809910270659904504480286213977116015788025135922711462889532931805358251996347342265644742419493595824302453934916382002932520448826548346994963229848093987783893975177745183355366730723839854145522345111591092225257917848303108487443322533684379633060770537131069280698597781031068086425227717616522511512180348860343012537119227122192534221417004020868905925872879848228344649336237460232727889247097033796693522249913265683717827843130880505532284167996824680527465762462167846340992258872590312373966019936781213395165182182323549090993658677006406780109981602797683570708090590745100471347464786515278849660463988611219966476379725198930219124558485592450753693808053547530811033238954102068151576827438446042418563662137027768025134853433576414440869605961056781315909891522185931590227948246565116282505146098003659877258465080159930656036609696728261088733490641524497556282669468436144799722583721155313391450945891948193321165934486884664597217241781394316182758896022704239725183067995339153256635190816436127087941054541091152676202967239570543272123947652031384303706019746707727161448366367457394836595502316393781429701523487954632010546533354017064684890835772858004907315589185493070624686940436144994754282942941962324452840823552479515677426406722180608512525979510967143353561267539884728176830493764817706770379569312505988081395069051327084567763743171313454638946466555737390711713957102309657884192614689805655030696554874173487900753543383382054263192897620416301284084182924547564864259384786575414852938348033503787774362549903244028092737596410422361508426538833541116100380110134312679066029940583162968869609267365876604370244278757198056683847671071224640624944354655105377553399114483115219484392866344656913405513426178095088019242538552572345031688349874176976486584889814754369089058639205429112714918223945282714760313580182261088716419668783048005079780743750944125458555649523000197207012347659891442196430312363049771972539647072404297228712986965003403444044780903314924331213228620887467431971777686014921216009626403779662539513848663611847013567635727488898165508947175409542919100328161610634024333095660131424483566030943012838754880608925680139405558316444068060141820148709653550706572955782395202078744100580361935196127869096349792840213057099759971762688810112197266474225187031585915760977271550294685985205268707011957821043051256927686610120706229609278357671594734129615486260133395780319133876275356736188616085569375328181941186025419429737532000517963446015705873924326074258611552414956270430498762708780396633217484098886560119096994867552817781127412209760540170006707334404705106718164995601351701611710657984871227295717261735026271078077670074235945494485225075670125141918451891840939013651379150019489759119850915544858443236393098512158188382510344684102386749450769558667772109156482368285473117837544670478424246401374036665860955685917308645153814942098748079514452240065017747621469631132527307453149657788626645012648856735427228984709339466508980240207314291119064225685533643778270819944658388460443396937785337126461712349554430746567897054863195446512589201751881272835900720792922405686777021868813483067861963783467259424324777342629855660482169917057733094344047750185320335220446860383441194042782030894059114648840627652485297056748880252987435400525763402552576442746479950994862590181256229144110447658378737397618542659025550364455913149106962821368226705053041084834418054957981029262172383853307144874534940629824906361726499406809576600134624405194931637422764308342601213103283225698770576965519416132030683297839267928105352484865206564787022605960210656742202740463575701379325014917586513984635188797136226099518761813195683100372733928057101481895636947719028144559160018831428994263357776610915351818746728798079501865478036222428904702727876476862235937181937683275138988357454687279233914987659925666392648471249811192143511260763350275847161265918541345451519102339255881261149697521860600155583174082121303608046714624172661330531025676950221529176638815874001070444898240046374981576423458608870361006393589633861440420881978933775811297551486141666781857549110554753606355631634092439647627580787329894528773472666341649252962137023415376033784984350094484298233421958942020584041365547429593874860216002739206659091256546825817869947460344197921082458592451167324188310447925564170919184226394955556400779367510031909231920343640377147883110301504600597479018677890262097395861883493749994714259595455655245899541199709945072964702960972104418169830447453915404939776601623814825945034821620422187903827848153272377686985119696881056296512174875479967491268978637818388782062504606526228675252650943216639716129974561351596614668572278510851541686369150547375775704064929338774916567318161536308862744027524700322976551460434668365892321454578074458095495047310849856882033499210414149966119689972123636801417553291901758213889579047506624267556306812948482112570091414496037306038074425272301275859843467037270728074341004468230927689736745341439220776687653786873263770658817506646381669263088484036525033921436753352199895585231105268573074459497204235964187880524385117454107240555632699734552818983437434460421858295588660423605781915882186649864194309007729195918421835093443681411459647160061544971148903157073863644334563569957798662038714278963417900299602880045289122714636252264475525437046726329096683544729811424976385470031427421374771121679586762791446891222526437212812940702497668639519944315773348083102796327799134892980821120914057395645931199618045568618368109835441250088117216187924352402497186699317244972961765171145879595429362281946507994950044842902417054768674087894136063196745322963829506582110564040826282672119894720000863956494535757543918040860433799811877900728868200033387476431881393541723456240868920597505379841199398878756939149860524942711604928674856487912840477540483432684326684323693454080796987565306081173729848617279891106315614592683478708672763273559688223007570463823360113203717717325752352961494715800692988343514041468712054356486769893700999653004501361548244448182983748371233602755986957885408248404984408711081516102345328645835062657940567917908558501059561497649337289941733645702427481682439551002267488534951912628049443874535256111450116044107780994004201038790834329423025671760808503263072932164218964587922502287168944753424555409000095090716486727377040302305255364946114891127177359030431566932497446654096852898360863740660905572247457289188546332503401817059671314960053703853994495671218076165260000855069822061982567722022930569790196483502317782937119439981048680385384018088339044521448970144891772996529161694555617026046647838455096286404558776374201308949048330670985029692481686700730833216775049837130608152769642459358137706228759565004405620468445626656092896153626495325078495683445473642240139135435426983664582925479558395900216066200034641610308499282421375480541088615666883939996098182810300464783297441161720800068628992227117996394818322416765913524847345903135325632210896452053578395132356556411147143491215614472096211536465841297760422795544665320562825363466033513547414165649554555454221811997843307635003960038287819808313413742098354860667070353764124459345948257607666589746408235637751631858041134649757711739995075762421130941354649222152106382810614958168449951971689632429515870655125786703907862079983641366319375037716725077255670376154810880302106887098278176561582200098632879440416954321750393625679728917261419107388207018842899025791262546336326014404939800101262972332811208040816596484598809133943395125375610067102175301358989498305964270273154755001381101361092883509036673692799459613035528340938951430981803629834389238811986466700562812814006680000577378269545973658967065988484202935526044318042315040497167911623211188055166389507258358937245863152579122702445354731226603016630864385131026482031201644911620783288924079340714536072880495709090025526965631246245827371402763261312646939415266973858988534492939042896179999328425833092258602915216872574826299129490477737486018273759539579513681003712288296963737630907695735533428955096148123214577297162737119486976398293242126176438577825078490869081974453571398164588230313367234396957697159297235079402877721196555331471005088493228327445009107656450739166553743433936109245823945071973766651228288027817213012985131207109505278074268096316550484856041188905628812596204042069566201354379452961419372604973087536461148518709252436214104883143721354293716733967645280393425168574085457821942012294188337302725220950737221158696229473916720103490041347599317708142755336323405894128737048022293267817392509725133611401067291726670256740412994067175106401858556738455991273369410223165315937353498427119405821975875666353463960485546499974625563180712245605774432592606099349057801666867127545817750320388285498124198502375146412124804513099011504377867519743713513133946262145864338163054082329859027321753038605081503402047071933079309153243540107970634337573737810653454308504103063856065027312088310208043456897538814641971855549068648514237221824821466206049275499497886371609209402627389668339040823784397037263714515097756948855929604407058938899465940075848994062778842623330807787126584766492686975330315807139794145943883701034519646278344453944843596675953228889081280715110071376836846724360220185601289019047218727463428504935960024775888363696758172165465609904015862252445683328710888824711480283552283628004095055376778588368129510551455395340180770292413782115861271130633157128577694943800692686547140205030160707603772872579288448540829702524268779841262932386293746239556664797954401051075425258018877354417193019395982227782131344333087123067666436355590197883018626281116696454802967913282610872138316275629721176375629531219250307302701502431262241197050177924115929767026864683093766604238874062628438713647860183413606565132969410473119963482521363587356884811737155299397006430073358570512145828933535032988518979594431408123977158055139274789991525829719448689408906651541358010790338091974461074132333686780991336624327246617872290287166043036183633438629151690286436822516786194031919574611424395663011317480564896378400165753806754306623363577692987507188312054773355825441218549779805773506702930241863126702801860681463830561936234192104140514807884228083670182323092561552601503539243351957852350401408061307847385428686492268236530587676083105325511819262245749535901071706125978242707213671575510066305170978466005052436597427519533260113181026046125165526898352430423564843295313106515521658739236784293541981886685647506623816119251147547483694595861086165739080559832770078100243831542805295355269901543284959117232497132020085604296481646231684846399264915722043141336685132970835280100306806640903128619159588042896841777323729951319963848157956202348169080669148143159913538961441296414892435407040934127181798771964052163402873846971275987597012865375631721026410125468904844407530834651237398445577249777163422730017626189603375937910650639907408899930235484633521982779693431572073514297037409965180223535412382129254742207992386456015016509952447764325090685239445443541755708542140024244286866222494695170596268329701604367965684434751130786077618116752921947880800030080271129050225056099219724891021115027431157049967548370204219807406628859339240927517680358967850543328927161450023028522464701779828009687948313850894577775480534220745760753981819620209931716467434095315938905867742643056587304727194405647857460135596687195464223613539533311472697203697247365152264642946081628984734651090562720101682766554486789186805689477790160301931925718834251817813907026236513309583883397366250255728038397444538197818536906178552102965276847175725360731776338652539037816738181590356373972479190183471431187968483670523212019845401416851718028157003248117697977629103715420246390700612511973856242338364464479352232204512709743276556496572183504480603229170760100554493150489758774635951840620411221279103944702219494097456588958075736556892980299502726439765163789087578841678040627741203886791967004001204584643379095681543388858427698019419640496972775555021335451223720786241787457657378883842994698928799669933553177219363637400395221271835647446459101380715657991759514954514358320076912878966255952944356520171869221059319554789769109276285796110579866392138877340292535129150701116775590874444782890269052395493588534509901871446517671257910770059991302246299376378844095436736920805820757087641601961474525331138295908713668109409689581656334675145395127505663261610190251747574977754753654316855172400678169202976589359566398930323509620807086941886224935566305608778952580994450827254632270062582028397033822294913820680203916527109239619269478408354919948610842067513540882122289767781640550788065292334245691492219852307499042800128020036026289212122469108410014363067804419344920872360709730474732173489110236088976616593098295633896744315408403216351314632298126079912682021017382116038080343038741246148546996844960523522958961441886623763291288374950096609582365380066478053129652408173924452098644989698379894358034195754771485214926349816291843503601234265745951065729178894478181812867834845946119237710913918499800425089858282888055853823837103038213431313209095531934393517733272093485165136296157933612845470944475709404239147653619291924314727958542710003397167009263579230277836216445176677881950970995492952196606020754842015380603017369493315800245427344450536199939032158913711783705115158101201767084432702720830043717810046225534648348597924914977451366606423145562238989105207378141841359136696962420550925796815359108278055329380888975060801634434861064403378797230905901867777829609577392598327991529952867835132333669098280470994971948630619690058489269636723577668792303257225374053162488211968389113462012868511246395958418789107168429153213642951123567738971466205013914645528692587765976295579151108346342657148312546893688941106830236429781762572487283450934896851670419244602781957786077801355092395496620752583950346063657508124866729412842303108541096373198281353109731298098137961833620319315538833139844905277942230399391369959469609834368835806529761944076882801583250564799570555661451274046864471831342166835737813823173990479831123979371367675479996951008403177112445098420469689307878726977490198963906972324723332351346008872183322461032436192070568043394611024570417374015174020790220232346029796462739389126472306005084028988538710362547062848051878357023306792385907921191833545818454142420336666230343346343148550549910816865074831213933246935455752668288326643806182795108964931214671910982535921921111820668199562798008623884163522717483542210832617011955372962591726279775002179416793082944305232247362955226381364468265743788818714535999726254390970910097467767674303437023634326730691033996527491188826491314150872052244482162703647575404525425945681604185459979032844042413982424316148559503009505050896619873449548357540634871059641684000633147439326263881033699375473454230931374180865061685377602744829391425128327004050402345810596387466151816933823229826050442997003267963148849301419801084314971833436779212200626528709329026803778160901540212338936609044148584070662482907022812292146091176718938174968871599718667120685167685562674859680053243345745226465034963359643811627939078738468473002681808962057807415535492587167062210074196813854833917560441702365950160357967443546845067864460732351613280515816545800308330998307472319321662851146480161279499450513432074044739981196647505038079664881395741711390475434787265441560176738381404693455374027770730400526914543127700780366071584021866686995552801852455344293503564956511050436137411780826712779473853767548963868193136960429935232893186068653977017991728573872420256985113323657194474975205605848200666852721603622925937498941481945501081013583246720681483560734532588062311679435413080685752077411001596620855886030439565625934340313686520336761706183963426319034579444643930907619194625294134662663813423534135342934410773483707886558090434695371879762860134757061730198352630448118319476708421895647097422700623531613025411318276174192466756254473508227180097093604821230980474752894970953918562775195304367649750597316033834699737324238979073796653069225849890461986911805908258942358189875034157735492026288036780463832905649418157341581599724285275688017915002362604263221618872485545093205119445577194324476866398519294307730197560536488106412372883701816030376491934461990101222743219293021583154764186341231944104718041067368064404483823037956888512582473575085301157136088935936639598246026628381371497575757993292794686960639433589245679417948435931553130151815573007057404565940854821223953452771000166276377149378463345032634257699392978159480483518666368708551081518636079445793318240558485238017798269284223842797067656862453593560884204905649495354989231937707552372144878296723145859889938790223482646281047107044322168250731600418929039352429284914898261838665924614768063290718101762090356941213990073191412522997236012294674288374028387395393713958285812246074381866778722291737377189980796962551485711939935790793881407700217084565726656505711183355273614250032267504261469333711238475496624722064100107180689322964527651056463953509761480241564542345214596654626969195609784934025505970776229933419069854287707875685100458111879603462938173453922944567925580095943809750473611726719782801205568069110229463496262336748007296614264440117622214653518348295234320068695177040291484508512142227994515225232724010664231454414697526443643862157347845039387109683579493653836418850175135844295522309086338491915725339142053363852497631625000936909187916384265854615409985761506650534664330476079222850199833647949587469407007028142829873058361476647136300802501595845104547788964424191143800945766776285579113461528107957246517465075480140308336802500382594210227493048818635429007930838882567186167835420486485331747555084302199876213516453034590471050827459852192516015095167004604335228596655212513093787838029898370283057290992237540371526206127585718177853548669524816366805513293655948364263928870627383707584462071614895260083766128856831075937272781782766786810842826652076924524760775593722826396486533023905747761635580502805311140421413724553131808323510816944542348051044705304364465631514591372816258745869962388190718365819674335895258562502724662367749823872581104045773474799519760816953021937346160160816395450613053035268878212661775860967474240815116503559087643242848866892780984897171498198431495769339849789899375907616263052791218602890442987718434098561248285142002597110771763515954125828892561289700086705314824615907815059410745905156766653906075911360270457678273337622914318248971342039691730454511848468587396375837196285451921748214115879639959627172366466972066495401795146718381830760910549402756072446648658777701515031075701171075469982967002479862198204421538081799863504533282801762882526940408318893394482554060097321646531793578507583270948895628089707492600224533792364858412550986181373908309418974589270162172149938239856428586784369230380090776264043925071830618631110087565852177036391058061983409811319691411081161444121537081863681984127830539365636908409591166598684501641751547431260584251920312518555725557342402616478102712647784948195203254633868164746687779934157183406593967539382622531289369914881668041391588779598503934027796122104435675176013136018201806964798927666707990829938410600118635361794379137720643462446948829518644035124783668980064375094843734011330110519407915334662088553126133156530954768000805055927158174805716643261715691282423502508359506210605772428456410468894892397885618431387764604474497230245559430750027405660124501994581079523553850018855672342320842282828946017833290286991337946330961508507841547793572871932324140661098720230359578946326636073631218109499889654843425952059401781657058765586311664154834422123069620121122247242348126577028018726979233741563052964259611330823003212944268559285042294293308117736272789604661294393867000594654105515617246678767403791596920793885021822442088946227225682199842346279097850522080487357681129694535830227132353158173131933930847702268128833628050173162592415162942477827858435063508093284114289298933755270052902184881736153198973715990485268958689512251292306659225704811407331997156157382080816804748034932415465674350124072801474016243346769994211460645363805216415160460463347502009786592798434177069498403374990553247011545317310854541769368331139521492870509688112510986696790506974428928043224739096407649921686130363819641495043407241848931854247585367087160666110948876188364369825497344396191274677338031060509732568022500595068788641275271740105989200980603370352118025902334441781652430451035626175831440993265381184009988460852392848643306330845631276280401537270573714633289451879209429171837721935693297996853129498266544199586074017941790658114042814181640640099484669393793219526578553924396283670899603158143930714002154267178457988435376145311487656742535619204305165045593577300884817077879575938465132291037861088166970896405256294562693862904759655662662540083482668749097513598011435767315865281862401321837041619147385240304508320040955511232451499331417146785464283242900803453939435418128032758292020691538163363416316438241818351785877091223211512757417310699686238830457453754022341119102045090193787297166408898974518896452859465110745898901124992109589660491909967200075653203357599057222077245373407084464244674192507226365294858169143400006273577188724398351182214941522962108445253126424308722328989799906719423152059729764434730588903996402988402686327966888666972675118045936519854662027710312203744076042196609856884199135120870844861706698779016023309799579663653496056315438249127291698645172261300792661636482735628856587177256879450959365927583203126570209111286537390290689486484842955332362567216680041407996749413566113653504040206362936779025019350356194068428396539441987124674646376496483342629562709455321484433650407765950197724541151523991109604905494694147559995251468538915740113142102804756141510524549352449666925258604846387492838260956877300921493081122063711870296437035639257699197962179315406736849836667945496566391750158923636528727747760648076686251491787841937456934532173077048397433582691157510663072986207785314444678874808392670842081065416173839352562080097744192709462505489873997938972677130705689102590123109375024041110033767405462114204691663889289495501348574239571286503428114976934298660281800563845433855848878354911461042588922031558700656883384779576191067267724196870866759058338898318829259313298646880870891625783107508987894063721646103878072182326535754177240121380783543178439524037971553622733469501225199124197046365612503322538556189679913832524014699849290874495053380501302478259003779687305397294609495116587560783573312757413907165491345628896403224698495985628758418169689688012352514024945137298100090593364654779161414619822471225455376986075648065222946820698523166471663337527741166528596480932624696154871063675308385998327573361424504421913671839335054837251423246381269308995795992918729293779528552762076237461985204753194376118709788566050954258553779591725663617562146872259201427313105594177990652339004127147728006889691278602291400727662398068499363341506985784107206584158911765459269019432281677907029008057232615629375581641060189179648385907364227217884621584266054279889859612930867310322855200918852032190412907993414526454620431295562986009084541165102954776773095656532796870506575527304285796148330304415793002281074735087487632954441581647892431102186533255804898389453544989809846321702987145799351037115470182145003477375583651962567038603783444058586079976023582296316202875486701755001100779965567950579233560811649852478167207234068488309749362429754174927047391122394121104631757755043849580847232202300148987236101390759190291717087836262277438119387030065271866067111998602434930556240968030993820596991956601953353060656507596473131590613065969719516552711746946262856400048824002398046076099461860549889591334755869965485881378146532200502197345649359614082272095720255117573553954466053256569251837578543636100216285469384046060589083102846394595766803814735790958594414534403821859679645943393846268447903287970496453790583149348185338079632627874287239935450770008926589965487347152917571546656147713488152984168964415851707057759597877168969122598962840044360175742490178310810168575147409180477238196023801869793884570250475032966825755972584570744508406555723616084028736941023613824700437555654659028331198415921065094312240967093775466665188366024415891772971895254759206357981273872253027028531933637490408791145126954975561882407913256020488032987437462996058948941035622534694058544096001085779866153657797191026011505660805729277231736618765009661559972684031589823645335991847689895433808267663463515954789239650975133142401858127019955128720730180835180855444879683953669009677986635833402190675448451655410826117410609860845867693512647100454508737124995347388999715582304635572403942399398146725811825460417228521276874315632469497801311875675893388045090519367901038223275014038316353737890132804784454003492261892456833216246145693694124488229897608992229887478197946855312276352911390073894978058539999654072050036579385370715492179206486136905882260476608983236576283445433849591855808770528735697076988685873343814899122779841314497497877856196734242829728585440772331006363875365160438509640898137897426718656326678362614775905497552204425808591149812660929567813420850734794931691028589494538523692670256138349406970324328655210984986804129592863757204757382056472997936572773874818667086242422213314764563337926983308628046378083289603772939801538484629950444075159474168249158799257437912674050728551916706879523482636068061535158445094557641558357099330941121625812867576557391242473376188777275028520030484585879608910631767887134618800009172784527096652065522607627340740390542174454483845477813290055630174256188697137114015728565819363806300359772159407028938464410532702378922281614519639074090615250696844466680927529052920990432457676315701221921099231064898478475366328934633335866069304768835557968854788393311250835695523075689401186046735790875510664593449587612777214053686944148421242632158474526001418452429720132231389029141359781684341508763076215932709458454390042149697113313854030154266800097300059411037427005272994774277414346455929121980813982733458617170945173210370777552121392717313267140808686501082244254176962326967125429741636409331001253936666868880723492688229784038645148207606385557963876799158805963752054735048144013968184899281432821207324332006748700666887624273033017498316919438556767767518927473036075950884932284636172751108568863064401874822563993459418172679340930922758002932062144072179824813124389061512839189398548062631015783795651284239789204252774560768857021877657676883062961175268971330746402967785413387387527713831658047091664924513854365200683225200563832464686637917095429953709193406756432825118968378792021321326037351011324217751504645800255775404410295617942423794080588567318799711499668275051458932605212582102153193593494460684059175774375554832176602327111127830612840406226964854805172872450002735334476979798855068768093726876141507952309188194905569300177137956230108859998309212754119710220212628369099127394698446977710552867207430714144453168845787810458203113444187747427026949968188104178741232052531638697925918540629748595910598560193146502243197029932818655447379726160333558431558153699212994089336620333119306408445276493038174585266379191202379589024560421020785955192690075689080536163049574055522090769027049910191258750591107924852236517165000720252659067203604897712062893776520101104632632223940655362684022178759310574225771133753866946864417225363284872873777400680816169365832319391014036232545200824269234299219677773450265024694717330453309847530485536448520384303521249921018631857475572777807731110634692287375265192406873286742135098286467595874244858344408674561754525812856330707038131279848227407629871750702343218332089901266563541084686946485544090163265213951826047866700412602385109962540009543645415151058938434724917067055722832181253954333520708882217185727810012415455012854184473237446178386954159547924406740260511119894557927222390892627796233182463675417601250200105151221145130688993204016184125266463039919978256676307173631735132277943716647534532983382002859876776193662632526033485921839006326394658248294165132895171225770928915724672702058169057346006194118647141016040363808808587348091090457567522927798809305414810472133484715069718470782929158287764365138402556263619030907497169980143569338997503917488455361484763369535966401077222899208509991039621182958567222939589545958897953095673492267201277779287783780056846772953244369360939624605699094021528696105758534053348780285721902216073559378210998615053750141097163712778091265528124913056600440201042234906356000720635842226011602550697742504149200414892624606285820227508095914691853947099305798870775028238303125136589155497510854939843809559108579114530595294136570673184468636158536938296357439997524108400507291723306717844453407327254862530309070105092691261815256091954014053500523354654474184708077592812383208365909356517301504169755008778543622342308540476399624636113717699442790742741519139029372369188048831812187546227855612589378820626656018972582984402188040403517052978581133294723295217908319813791896758348507093783105364070408816208402028189260143749323544143899707299008657623300215791797499006072085645810497650063511226920921466112332813425595407350448751400267363977676456096000743851685719437358512544169240119955359219043993337477283246027466023647444416530518590119214933826279611401041859516180216541763407999058569495973212579514454249792797814612829203804149803643002444175537637817761069369242739017548773792374276762881628414352387926269079088067323387716967304323334609712561035000909183322945770051985618238605210631617721102561614973375181900250662981200594261240128155886380334228096203043794307666776224463027013416830395076992187981764203960327066283521229882414923437284343608524995584378456915378497099811273741419435109129520644164941860170304629271502483158819115047260938828638795738067851457125858413670581784824955845654801566300260849030426787283533091823855901674057796854237059505127824130568549823044717461724078165900549544365492612247658146168452040230397798745767786038576848993940640753860295581941754076344594279995107469336136497333856342100089098710020149880888571281604424939163922022586707683297696685687502246066720083690481952081044583107783511282350841372049221906354305540679400401347422522345603611560353034142449691177383576437821711121900972959994638362524483392230881248271355304045828799615574339089615449048235232644961395694095640396307296734650194675439397542702447815296707772241616343204187563328683361605666902298351256620756037193452662555550175618789492987471596078323326879242589874331673657772084683786149301232158414196992575936563822558792133082437171835162521227767605364369611642553387196831028753832236796678217136025557631356378362946200412643049608576321338742224017129050873212313451972949286033779080472471606001628959527027572805188594156057759186848056024886886068231643346373732615613567384264880748963247720207503342258986807623563424972135796910629670341773685061179867913474060008122237309275990473692151355058160780038442828838160622001878644039122428366498284971948006978940866855478876930884698265587017905149744677786036371542742853371993104443245061450166028527657566500625941394204459106773106027219968305619462651488322609665107981968665263144523126315478883151581349481104786094807909638847012318541448384785035417710421659604009895900507023309058371859127726242067919606999293815688795539117054629212902064137282147117328309555014643631421274281168369653600721867308692456477098343904615207594751038025265664722568218025909983530830737319321958717797111375597904030168367533757954183071479092033759634771160507583704495737576331144719650464687679005358651788954146926939152352797661990988519489387189550215631885240509268742222840456084129946073578128624367622559054981812547339284461794547820737039608862598220251418121206742034653774432551369915339016980203416736305310243666061076853299172194676205624100867149270572163455379219528588428804514094227896652982719635531952812141943355709457929171333908033327944932106839552078121450098219048603770358772560395958989997363905748191320360177532638771868336394418730785682600545134621044616727623699955033799413188460786908524538897913074455998931430492060170372074637216345098876868017202107955552885584648244919951299056863576729748150020192111091688803219837518417869682965585689823847038050608430436590392719499213970489303684361215381277583612664471469644693457740728785849103185489571085560524215942553347814284714894375183986855766148331566109380422316120408913149956642845526182643324684290977865102185386171540960817116443733394331780998635597727961837338869892457210947424204826178783075792779101970462450346175703347072120864970893015114325781691429501856496930723639896225069937632872582306005594724888731416223903806871425512521489636700028899212614130755997467160214235461804559140506006864376958628156152914219585290064221950249671215845815407801755613122739846107697858043153615253318606305920357488895037701929673268912644611420813242841475283381300134677728097298006158260669937165758236082130797755041616172732990003409648595268261142903065214860304541455204246197896768251207838912029121707571048468869246753427544221500940107677315547117576701728474176335253902610579544801684696497478127542535678784293289413228154376660131951894760389452470210126506052236157233455108041400336797054904030482656122168301171242745009648237226456751473353416995103768048540250119478826218917868765181112336035799997896013694983228664441795289030642104492843884158129062549966413506908219555170720760137083291532301326970017848246571982473089866511856718144817212488643879590987646486250671208967561142878329901195310830923808489620656335944165954367018873337250993577360339767317489990225119715350123568071135164048907536878252334520340219235022897146339868159060638635054246900997398305334110841366377262340536274567165323646236597886715900010186714783992837910740950840669745554081342501925183290582321629230911067108004012974459631951912112548218153822632672800366786163209842145658053639340499255035251083603982896097011793416820523466525741503040210700524110610947463067976502069692658822495027959149097713431309248834969908188236002116454204239460124170290304893492947098100442662691830180925377328634335629170441073292842690946103193151398252782398842231476150255564055475059116313422599671640480037876338594145690957598823191424623394069949091929328391083129411991742128700872205056465675268831599499635172960392706213059400190370822518047898119991439492765849154008875848575272624427868026884970785415902311053957402356569756235677089123148140753459770049954309565829408108098718144085247702125896361100882981114835023286431520110115672216853435446146214267213064104035077240885209743957089072794910211322860754943371774222328397560731206225267129974695793255945516994560598791956011087316121304341833589830581634618415822801315571493229950236779629647708944635847734871409267052233554289522031394925036824689182551891670899975569384242409951718878176026113983158918274929015381916930509097660927146284778705724986224654503172698986453494096565543468527526560995233459005283421673622300889448792852096914293951112155998720551379266551643065981038817254113127448551480855980888246972304648352911431730803518218577029967035166830409152660925513046176914370181569992828787476602551388615711996401923400725717954885281449850472242974160272620725289494326264240463045957549325328975483603831706618435795578151783392225753730643981459106540962088669813543448372107561292889341514822590964194248133982754605828621461951225132134528532425674413842443181047670343095563483984056041646671842123773578462626676152893835539207688920258429759516809818666577521864245575254515250914727649047678525020776084482372601872207477104120429864984899640990742685565099312010128779141784720795447443702144571157950671313943108097384734078102797982442216579470373946917901491572604053151126570507417006209094246964282002373513289940546507345907357868160271593968669078621037051000659301725719380962283073482789329523946806740585606729138916387034108162311966295759440006748932507434284667236689174491309670334006579724207928631699879686326573023252811532770067568630692248680472046738379501724393537148038283277478710408130425651463994935409774355454635879293385203672055848136117983290811037760773667517732967123279552708688710280619542170630164488233573977355270428034315301262764026559143068965363096073432332010000404996092199099157885339299883429697007687028799302087619717456608184878891847211257336265023826681106220111763918244479678842531630111846290831129232989493048023552236472205368586124540478421735871716530734343881176247364637198230872320550672263272536958224149507325353901416417954036145466829676720191694509435475869590021098900843211011833423906615395027495341336444666289629962760052313957222570733548295151027833699908126323266397117765942281088575830947706643389643813749158669971164838413910336418008679429334451563379248144649964532337037507056910992027768409665682580508963666303863676515693899599100048507615190973429349220543060595105912971785944732591223526844814570843657066862528013451594580801768597927656552631357202167896484813630719132478140210865212126834976852797241274232378822025295467350226458741318655752846707319503439619090921444741525970344006065599621494202388764797179208405448513398089968215530113122412803052317443547923475389047761520171399668581998723109989464767696776844500929968877160745537254442615515619510550198270396226361499829649014892855321115356872758516157132735585815370573880198921513937683944876496490422016293916137789175387632633881186001733640819429777050209488480484551020799847120449710692606838022936295064349120390163337789818715417023331440211989668391887786848862808988976114466124046629585021148593376308178570876252771813914733459290423037213803341436451231446298698143981279462774066063264961542457108753989412011872111025070302487729414748112733576974973782857253216385636929944048627933280650237417700479842071851917860448209548089855116237550489262922132371773364688770003075286316698064417920657696752352501329765383701498598396730307130349753615130775444552240053823371274562190255976379055891540812294827078767202308535752145020047845978696994863472045452604766607200500824000710160011457105047518154760949889494208708240376221868568045435032173848731054487959651293592050335183193180530781102645197556179037122052291070144013881224558357049883084568582428787629781172038879959525726945516636045900648032732792009121238320599989431277667241780467070394044204909180013137124971234420002510581755647737093671612013158950606378911378849526641569534497372843008300608960776004558763625371998012485038986683771730338714370151300269126562512434220871668730002573125239827114388615932515126858054094344765542044467352381043787225904355263300753559645339387233664397672550218159565467554375858570542288975048516976442481872501467497502318925007986196934196340604346979500750806490095057145483437668478919126131044608726280163861730869346708216660460864858392264709994465393295047233751227812756842348075104635122225813766319700329410487953064663296684617945109794368390642551319994414872822280559404591226834505842419540175874402448462736412276840677339737725816116538511660346464975738523499843178339440382680675505066659164000323059754488091113382156386142393355589377460581742052353710316906624347776876760469284630496243669273948444950657012716794129459206401156689897221202544441103245274144608263359866625716654659316682254060796985954175909241626484522593251610447710265657604538119027437746792509320806711761569316108561526818847209876883694415115437844643496091778226926059902861371480942112536576369802737183764071520726045313539791354685724889227909019768861082441704832929570572340959706462194876130009796607108809493227419004193389673751358791570493860348712644372765138567732746569938730948536863922159871259188075924118585414983802225392498106520361359931396033173945957537402527483560667953379460207443459902902297035935385376867802652684886174551578106539810783594422208988965847427031866367738559564095430630232027597076296763705731832837595103060423999202667056762009130996385111730970285140456965590953974469871939397781498237284409055374677662593143104598215343330771792684770968099677211227856255688783587509928674915535252822292962870871021595699977792546534626530064410000387650217990705922751034204802487319009019512633967542084235915254334784708672468668839298574907877723712031488744261250402992283288708272281777342307657539116389468521586659192158429139044355393558366849687142687408569032207068202292212014515201182520880776567325752080223091539621203645136836394550627117252559704564298939807608479983848368509970870299380523085003236142785174539419542271026037244371160867850476619795476699770516891993024352488652997702608445228761541991918141745309304915836828609639135578620331843050745022207903011219413382385264367978174653109386382475130902605168533046629958230360090718449370878662322036984386483181798285458719593918363517695913029160179091171565777725553173129451817522509396773846430429557811703673689783755700035361861301319902598084314363105521778369193203663365222384748975486032692245674871546324167158498136166228367193262090141039738165916647568021732564919391708452324430222596199535397629635020106638790030357524958808715959370917518782575178783598023778967928799843216133237202102578642378872901215528262183856152693575041247057114177802884538141524760537311673268513227943677361473099336258163599663912619654619558325273493871000457200392087324075635153962094131122819218297297894823023857365052859095202884028942377322192343192762411696343502996045729313890175444420333402853340822333712979134990507413780329516207380686493043307468776574613487172940153557401731044012743986933695917364241329171587300318185452993337375879385169788952550340013858794899872694920259497094516074262356140323753139284528318485126658141032039717431111749764101493655829301676161692493889010247816116919200591082042943874960787156133920874909756432278306798060573506146839420065587770095227726399360787818932988655535774838219851721746309913773400396671210913057506067633323251296354663402022479145608025950896134022885938356246164912869884308601845498807961348582604801829468840354221743500047730791887391218220538012961583906599062922906095735334530081485617929005727799777421980286279786342352874132998702883710256164310069783296313036353148592038456677948264040966589248021183623927016886316150238465373865490492803653118164426903311609518276134685272430892775124335460482391043181230728190639173821847763596322294542912571226816683680329592153641369845406691711208170066238885483217299833147571389825874783300322732214254128448001179606192323083071827459934970110905595432634937010392144808766554320818012874818202415960866947335624152717714969865591248304168176633711500516246170546868731746623451162265743788913509357210709475973947894055539956585226427754416566894839234192301547321802306087257062152903961089981855727084616043788033328637151450090696313578425796395217046712839665240644239270639994096762737553236410943151455611401198926143379071170275399375783763440623162810855741138094999947932358999596401299436214394498707428935668435509201753282709298905756819832577264501794981459745151130743470815312299701922100105270126573830477704882785622426200042376696321706507312771397956858875796857213536048148356348897942663847740886844978384668248357658736577668327681972159136113979443187424995211035978120087367888462331964065132652991930572944691204605837455139377920774023961648792780721607463255571776281666834008469391153162527217639383032869767599088891249487568538899307515068815680317287861575089353640475846794160618532621981853507601989957498244216794756815327131577360993372959758923809202704182463424928815925465823936547942899915526890086910369864407457193785451323992492930035293595240216138512450868019194659046616782721526596388627648193446577216980298947300483162825907638735253954061334214280321987099942508667847675505531685851383826251581680008831961858784670982236536115764818136174036001507141246088241621254724430739997994806086978618834658806786383382031664504141525998886163207392889177696122903114851745895493634510881970541398623777444952610134568382928190885799092800020681617864538869286011740216538463180396101734493105090444060985288590585776399950459843071480468381064149314244276748748170664974352413973129348735793580920303767377992870942275254426623578550753165878949638965172391899538371427783577825112490598392158798288521849057480656509383366066165891986516107830040238251501825468643842268886831291585008436821449620784959822252342992445348569725149692046972235210972897957281132447667905192446287258532169068244872506586097382147952283968446656963907969280093302740320552544064853413380656419620856174607090984164304308055999665172610381224627751206019197126713639704377467383122863714758302382661449195148239909321912265560865399470680576978819350629100447646682261346827565288648538058256014916208717111164811394581835308157557165873706006526195201035229220186458746348775689592796713965981269527618784135826783709779025679585169227205702651455001755194972099233079152806651909068296280776233843100277269080176338713712254129747492244141910842080308072919709401483488642255288569003071849730374421858226964314146596712539995573132423679513722138026064880868829038765608292065564792029148884861810240774561869146073699334885022863225421663703753240675308999366960367939057471015764171836543421805142487339264858050219921846103348369593389490530214573108306879777881306083087773608195487238440973435581584554849153973327506395818394939445508811353746531758584545413325356559126460137603061425536098055849829024114807990828952212378224232258588229944256552555629434568848952614515315382000581075920007479172065866719419859891786282233652342577684306508048151968228445646954647720749252649260928920975872004948078802205470423252917862168481640932320360234934906171549800765114200424456711447801122149460023011657993546113693559245268485341091091869286650363747625447948089184076691782820742785597627500071962976082186689215926581619585658668907336117659580713130036370738998208562679306590911795879481409400499865971860914191750260555874664824571168471181512611367433921265391419564240463446123745787883897525834516005866393081115389626283149109248760933997246864079230909471503400391016721744931375637324219000160141340398861792417005158392627041507757275467101463730008032051634853312881169243647825394583162879651447402976960083224352507035739742378744972804508578407700750034099240196728796471827259998333950542880501725015892764962561215688450651934705079253542874372754594967839572800555698268351738614596545028880650642698100854721220354967092573484387290101755681644790389138828831050128759975867099942695192787364606497938340637898785535183936593816708097108394936856320425934325634856060173070598074790881734733714276268294694567174936936719043938139747819748354460841724615058192106364231916160891080342263227258954634762912802312725515685609516040542375804067993464263881360127619090406779054258078350835137411245179168201181749933063600361800339229070456929049381608498161706852850525838478867290331601588614097686751497188398344019782795256655168418902969455162293582272850380370674025720888203516034452553033262042046994457543542866497592808083247457798222441177003130655272318309752381064736090123742068140979179616746924317572371156020204957888539650364365344125020225351377569757531786624238109443737622547325790486884587386903019744803305625201651684192784799266316389263992308089644010077096289373139647333532436859446244716492215619715079837568338153565181183801230924719737830550028438027205225090399134772911552032180804278129485523303766065334239990121997722102745251985182132362201335007230686820657148287526710806543853580216931632548157903486002068349757621497038380829455228200534164587499463596753244943403906464531684347528202055174068006755805996512678239110711914419609532207780067273746411625486447174732998910129304852143994566696098471653079842282184976527157778506047356548092766556440934799945076568626585503455434181314041079654677357222101596419494113641430196927645976125302555506781992033014131284261113927887963600877804018796780544951785273080480151047907935359389970518499183422712045790267228220185206671398952218959563680456684583076630765973111754822121771746891057360228589061597073081754851346077349199352633576056115106259972246474750321680974146456048641985565083510262521421534254384152033336048884411555612694793761786993909720348200919598845776854089090755036576570216003139460118345256213824253857857468008108205464970969638361008323259402988790640887350915355560916446651384303638693324630500809175784743174818447494442539275497398236415766347546994662784183577030694661939358570446837874266818082726543371491881330881030017188387780344867566306947676447400308076170481252295298419219829352213008755098426894738068038192583256238248184038841457748176037725271962459696436126478172513402958835705970238032867892483578464809040340820924625436451883242079681638652592657136967435540332358596072741622455130520959675371062108605316679176305690040478996871891277709867349822845371180108829865586822723524557144571369934039355453054988191350868989332005111429169188222087712102457764713859851763751506697279096206220753158656665554054900855222408734591479723091752022859030845200010481314176112960489811904655306850164588761854143125975091756979962670030908081259130453362123860874279376272508090158052021040684915333402284678572815217173866073817330778158287991788069457321086025904892474206458132414147081297151042218453651048438584736389699858581620188819026636291406707917361239662831902438579738628894984064973015826620030977200795628697292717577278018833061694219825298151260128912490212298786513320620950287282802779031576095821876153843961367922785138380728806729255592125811641504940108594769613921032770705020796009203503257105129341845208221330594849291080540380227216623868791603273807160245304076381504258371667430453479213583289463742632114202522769632808817658327918689698307984663101459302596629588480980231782351447980447742509494747729428528081349248603231449516842587766221169059425497565119211680878879789735414801082222645335812540200006080170780625469834067169125706739359495551015910245597846665674020278341902582355249436035018794920737134770705930625419314569048557330069102281294871418281223292750157958241502484754772380027044161013399212080093277215084082483353670414635338499582319835407256520301710598419049020183798408709068960383953875116084562924343696855639064596886675269138106692619511525992601834694113304127724018812608093922081655836623250067011308963403568026397471304281044242099287534695387938891190147503879848774067878100706575868912960293783086179471536374217337209448724851257341947223498916499770032110849408812704146179171486870278575267996121041370099339163124580482230885184457717105197495620220658784857261632483157374890560833287255364083222623537827454667445343073693889060205831248900903471559346615701798847317313647967121470207915455833485195985627574945116756086179129453861448100166618224093780637655153924093019422175739574221390176893247448213167713190149794970085469110428072033047571165503570720902019786051840551304835940257734190148569327671287824637438291664963897674185249326811640768702007536741285556093577981766704791712558216608802458638293810791247552192824195980742490163593660282372566478559184919582601390822884120763656834068267259386677441208626610124914487824777924610192223183591172961918363890627347945435863791827153031724889632719444387183252042817212328618169957734527702486679001646481975960787674270577931957201358031521027921008087160420088852300102726073799873139121820485920365117395330048386868423708771438336010283025648983203645024141843368523771446438802105506134018129381762121872205078281924112400763416716448490187085087158426400900372562288757123788929387284535956734941143717481344491511308628950767742198002854553521931967646056394112131785603917703911952295033260814469769634310061316949972654219335791144445014994590677474761763491219715769426505931816759426367597777497808970994612917679296743452383403040799339564352321506053114393968669822449933489909559536353408744717727164463003967143674595968067648864584925009463291189337589290857589191905993503670581692664602560902136637845724430152404122040309338036452979869872237108488298797695962260499514447138788631788687149699878301718699572575709940917485026723827945743853732548867305507558027532512357653647584145256942080034405475673064882814147609496704211981556666434175788157767640281264708089705914242233260976727731325082553726271103145681175932630562323132033064413070019174501104069404598965111642849053068910086942128880641276721167427116737820689935416485847688475481822236548432349583928033367236289844927015464550592131356441828936956061743304400004307687054025614143670951849280462211422001700260099862489398517518001008329894860488602820894856547056907289098464720194022083891891892554806176600663581848060199191779271795611453608483914470645562736135975009217230725067720661376715507162215584025341271073094882979996557269223421575941801116926372411038051686693293596898835210541819946303372898999358181151373796332335017506311568634702648989215605264030464288275824588597309830189900775772407929121868357544934917189965449166997884625034955001958873622831571319464721968813137779441397089741842773920575760978270437728871813985025284760660966631702546736314540820795765485859679289143978716847325958602683270185229044890292413030743270467334214578780345049501065596082869376263668368720985991235249788511873583486484171951664117686354583292018886056501755222991217185563317417625793163276457812125813778527706736780531538857093912055351031611574950241183341157501356850389713017582089297913321477625597839351021500199048590376849993669318274054159524819018706801628998634717457937708399583933356965146439457324178241756287974758257730089797400264373298054991620662882794172890382040024763158690160556073669568911068668264078209600644904729876348222284449271723719260546180882631359255036409709438193119910115634499991449755336372159244714091288606204279525089587881332100777590991287836089628808887415295947358365262098385607348820812344523771422003001991644011526432161269050748141397567052602011361140955745691696504719968092021553819405772054919684954646230852522363270393957153474294161036047466393145023058259537865229880611361455668575407097938323301908750142675642212978782955730618016057440929332167028746949415540473263604418114846939261556918838264757479952735252691561838283776333525076155970054408716302177118299608164389865720764255597031809321757790721814466695823801217871616719261948599968815889061114021740739503311759257735675743301552636853528805479180726085747899552215949981738794378803965600537330477064021928676353881892990213046303844461461815168827209961891462382889465133313734775191304886257741068663508992724087829060288410880257167945137917173661259025655464558938201228369713129273291213680143714512719256818676130035802418112470686376100043214353115517461688519218814863547031679389796624000051963867716716060957554098455184468181501870001177896721628855229466430731348755918030654595694407591573642391577534074502118558480051040681397617712370023863627175930347023763932425862948116436950602783077178764413314257036442258551344874727041401487725352046396188620822112392713131553156390442722840733128741245692428769673800434606194708830055987752639058460347486889072327950073112593690115365249292250996886893974404289825075090922134116944838120468793947394149494687155222546831589482928232658549700438542034266493930692489928993325559457454941299091589886483008175836269878813502404272218045286222057680119328914785317178748405855742973586362648893965864714200009342403495035899754044767671534514854235756831857797460290535483082309471812972702885391300117509941241995270449318716556749834354308472177471107157359689020950454278858941642578832607277919594027235139619763297489301449898465340808176995917930206291473929860827830356065981003374989238182006820630058689272839684395713776443772902742449922749518537857338801098651367491637347557917619310950526708258587537029019425201844775208551341354599595948392629436121106722007833504173333352707723538220108117059696204371027543417778401039655698777010594652287007009639647850738140026527090278740661181707829528129631542964656339733750797760874560597268488621006024177335977572428101615117363271311059383342972856756376183440428202692001579165150714852473226432670650046719363264493373734683014097055255069256958482168893893195463354225443204726652560757655786648595871439802600531210955014949974820085211950198804279684371372679577564534914373572360706523883641983538791883998644790262732010675158321430788727394693644216664552645073210787955876078906193408767895140443535320688475410246996205256260268760675075366661327341541683707886989039639130811852875837103895175623464236269758034682481007403586632903275005867055158333331831219662654460402637339088304753193897561848637763443903008166567195891538621178475445963183544269579963288784347297751402865934378002251693213450718378656368220783311874033118074616148890176716703386044746630687232029836461008717621518397112591354543245445014378378500590745229926299335968841720236501089370148491528220707464777941336241985981102372144521146637964004017353293510265434079889207770070377708558651888165036817644919246524350204089652225509349860309922207736763377064919263612205521567873197883261657535040093399743427412252574416040204976623903458260126636250471116755865653484757783361947990534305634574651198781455262670946669065225822190045328471104847716137357821626921612800079988077571430408587436445082216371064378740979292889262225222630423141914828481783382047977434532438845197823197359626971831708778439195623329923832801926791468280670737483289139234869777878646479468196913130867576015503918272977777991871141937134584109426936825481244526403253032844046315637747023646494090081991277677290844876081534799484399204736767068529615305958588774061804417645486223737889121237659440126953530412279142514492832219956112431762949107622046721963535812645276779643296754570935050064241369201423652541283270913087724427019481508281713657916733820870318459906726787978706869290601449633003825696833541861415687617000440219658272280403131531640926685257403432534914527436539509973302712947634107776402847601066014303012475500077352135524371996234789528021896198362263969824957232650031182734166720275767034198864474966878936751848145242894398422473936418147066965548398001921327781138666315280452217159215155341351016770492718706572159496173098679631274349169750450191010447992329405287642231371410872050581499630806473187012635646237894844593321675931838249262191785712473491209852643063399748817187186365749103237549400162739335934284446792148806361477311019935888487380410534460197415295987898715590000337243573681313135863075639175639851070876918601186756849136292380049164579565411606734475058233162229639887567558995268172190914252168115254030464464320208427877392961127751794807308171307270331626020700126040745758488645709104005008072950263864362427444316721459044414061990647660204206304003534934562760856926782514096629499916800436277059103142540357072077825721723009419393856995877993716177677475145949409348878212146922479102572235013299042991843900166249708466636389242914060530138512184160899692098798772411149351656115769316398041634026426139278902871344078717387433258085039673201645433762984467135303464041536221463616260832316056238948984370440373485733813993738208219566859943880797781702850492487774819049388074632664145045760812417030625935276497470717842923000885422145371643854084990748574263813347084091885904534658132657196766688564666874253097420056259567390268992302331431279667588252319687069018099453300695721821699669760175120459307240111160141186949406133257227183854822340403032736774807311569779276019744291645006223476371302603537469004961502482751094001959927368818730326393697090318033276594415543319925217581799483281710734779909248193283043357584716748971603050954748919217618368896050343942847853135183742998333894478279353933627875143213006347696134076615667773299100080298799359855781921541571007773691114902582347576285416956230273382639448306825911556369977441838444958477910674150463678997992321129762821255726551713335373017569372655985338267584081614407638913290362836666056225141257732795339300859079902278469938259240764759378166277527566865758946823123284054249432544510058826277826542248908467179698886287023346979681800339947963842530999780052366984101462618720992197608158934585991768096746468081913745179934138786763896471430856989161068825442331558875057407731873319508100334766637230255355293243499573932449786827050923414431570424292161836334664743559907765260857026348541179340256431121952081598776128461194629969188811801688859293219788812258752758333266147692956391403112792316506839871719005301153131213840964283041527738278478323731534906831845462727862812935334432023728792241554011913779671789440292170395358572096233299151201516290881251281897257559406635977816512627530471317732436356153733153877492442008168923217343396810634975272530749648705183108851239095252037395583373210807250980825008636376746368083621956416173472738230156331140626294395068197650466741625199875526306839337102684196390463177327713806606258090976376005162926610133434595250870283234956032120261175215667774694426803744940978409111200818839056166658391091014203761639763817694490618202253950995788691007139456491172030001201784111034666782296586824547760612342215077092854706524135941637998181204221030390768503047095958484088418442911859954537254312830046518295601479231338674475338867313264655547226432337424409523986549983110197493689528738857187344064409063229811599702902953590501397942430051055742483431886349739834496572997905331734366171600172059409854986819361356895894479912287012480698565504620727311782237197109512628552742014476623797823462040217071751660521635282542536151183029975512094507988064429415530732418639171090816260496909041418839641441724723665571449582214348796815469854962360851412737477531604934561070866641033207544718197893237017586343377593219011943846930109820639151022644143945222596398275028586235889630802576816341400148034776239977768373240055746736654060084563252535078408892693507889073923971166235194340300380699144465551792082635909063091329675113785625246773906975801623081466052080246371260583688646002490170658505259184541703363296909955380090264812529637180220997724125872968183141602954582217795027187511353845435858357395291022895831151130052598487043389779364781525556857122017714551790333834108437719597189960235734875972504952065512845260004452564470619575158604171353094559368770894587634008071899570669870293262007343813166719894243536071708230366446255142625615361667669156591205128503683431432936237200899748489745926094494955028557649045975101141401399806554332268533284844554622353018545149604536467840612333185635904383883883721134400165326568781371506756053915411778861313549867627634746966376304326036704271450968431005976174607445273851064453287887707923276932449011976750012098979687054495785151224067334559739579871481537889405661303604895262536642009274471624494506740708364967052781802697882160488892421728774230339031931581905912764318800199996785912657348024252166144800053995674325301635711300807333265674386375381619914328335000248216254000819498106156516536551590237842266160754527261624697261727826700260257673403242925446275797939068393658124228275933310561796165405221744867989620415998565989091955997479285238486049552713135550697579087318900290228356867499128798024717784788860516307417445518718453325792969104218797476883930482922384176372520302070952077315304283839786443050438384215259883088022958132384905013696908286560000177563543635409737822938242834980405010761087522004832497831157975427226934083788180402673313312048728701075783622287489809190463013556548062266596980773672553416903090093603928292327582293996883219575140785848412876952224234672350889642885571794284484290217690132891361337181878795542614422378087115204055916340796355593002022446367048491786470811458250549061666244442012121298678194835571376940466264386262830898070868993254203948173376346145561024696024640468140711860973341133657824482370297373717970546914824377240615152663191546228680020327305637258961229173732052851566206190548987147807080115354047348857437161168317050271757407680707291065819432123205646834599027633055327524166282157341155443232372012885009644305576855135560265635861986573290279840913547118404425061821544316488375359863538193883738372815842397424664573724496355853339918686708021586779588210030747564632024251245683521510491031289697354967639402473000651463689994447913295131589991213800911787774227074281853386258688388221709434118183883305739653237772480839381588045835028707755235445634284855923138558142446047494507784526523344814175230675864619431271301121628007647075298902284152004766747668986635472076060923894745086643454186304431785561626576442199528682264384019717252561060380876870091895597076890226365417263636958321634835226589473575050253322123249881763702010702862907306528550154196487144421805384720201572887427866347649187766203446151048834302795340987270245497532424803753760917875803020596202099805922800899069371596412096993204483441764548906403122616158861004521559723487156880675570883245854361845123066715432036095332403540876531926084062148694585426414040235717697553696877017986924721893154214649051700636570850746095215506640885052620127762720837278471660974366889109003463611046781484753295005846639244203425497790895159922500071325512050257313481515140559554000731133041604113476847973553416516741135677368441382461399659367233279015174831029903717679528733709105318804577401896005407914549474516079351890600997786894380200606231635505264791639331450547340928313130785783232370491551018736330318731759982179024753657890129421009216733843821483279027657980729671077853206882880777425382216102359218952962225127024659922435056938292721792191691461161717652156596597717746409975353328966370264431666707064147489659650395231500377080595805764268855202813640697517503531600703939876911291357767005211367952295559488152357610961159780858187715666137948295679502523134670070736046713245705408099084783311281382257545256181945198722996967987753065463388635488059863255912659018401022436907878038355951412679095647404583259561708505837271412860715879420986489348785557003137137467419506490536149297265366614956524195335025870777209450095656161690700904167628600636216131167125920403143821273480884237890235783133421996034743439988755732387447660371601452936893531524393783263987395593529125695763838161157370019152312348273257420090967338712605451606866287857076377542056798926986992119608140132493588184853787807812035210697644142993458233815153010316628041436551827899891614107532127129212143343657954366069171523613143458348113704068086061948678886020315170659520157995638474294312546181177281960493898573000252217408485586217994778482416688229453118759406297109331231341535349000105727898277197523764740313911500704293156576036392958926127681672342615111001700394762584140140379058066551248759531450258355479007998310012227988396056527557637277287819503669579548810150738894574567423110186199700817391256287422755284237440879232316936274907282734807788616116981070930027876105676016632897672520701644034441147247562034242980794465286120520143370734782782993002869128790591679123931806056053600529833345976050424465844940911266413494600008788543520570852084688683219287234541228101235010462241015233083140234991677700451611809898104091632134608645115701901845586007390297001300573840837766882309799530775299941743898236630391639626303401743325596217284335990021356755928172575722487243708209533214966286294793246714260729428973353075676235106146101928156562342631832173159809992724084665691472027519881965554065070090476695890249874563799426694032405962431352361185297588695573024515112736273867765094534598831512221998268384749205126377599211193037246232260112700718162027749486584119170328395783343636628019667792029162965025506129762204686223839446900707352198979350594681386023183409306800390052212022593325294695286282450806921013803529662103627051749741984163281488217620474536188692222139273248294647714846905712545627851009471938243190169914438578725800178777555061715874965351416171775325810148759967017124897855336565274144251721766198260633480349052318342059178213431201080540198395707607795379468274538237174782336447555844019678588340618744892657595164136361212777335769288756987756471670811998375332381324185715560571754814393661124751346152043606796492966229821181383160686938471413329935798942428446783765705772378582397834035384290711518527519608462950995603094015797079973790724654209173631874103949698252576613379740880722239782792364228483765791121015091745864575675351140979531988881253017786250179322383904480400274705036466109826367464871943261637010497229710617970606521531456462434552837276497053998950887630208292911784821435198601858895452383905361867494155958212973200771279600983779519767519007983781376472352125006018128052365349224809609662234769873551448058950268574105214891027636900095482217987857957243019588993385331048496268945490826019423086647544182854875899552098613720564078111410570740548384905566187162479778737513422580798917724130576022771505254082126905347332054867704658725078394705419925896101546294303677263832084341124216766167806830885203227167522379704198834329287691559854984506789760066261184196151362891704624742209724764681711746157502629019087041611983206435355411115883227643615363707541061562421355878595157328953494294626674713575102348029149647199533120143302096488457217954077227892621004562263807664913728988565426849909653157634685497485482454172295567127997861112286425707375240408149640263172124011145733886923483515549963030237207384138376999815075460860174637146053827311062682353263862598635689730702827432762686686012871503323836174819984952286736061126841228964821343307331918415049938812911365782010507727537410770328548958976573480731836403977824277730863567591532321989574004166269018524072922902356623989848707673181430260576266806908951823299149852722582586330266294696892866294203829008772097506494770657710858700016752487300622917200120218745959408520538807594778237453923836095795142880839117625083680387781829571575592215570276645518833382005731284814969189337830419231639051802040723459736579845003915765479392795445902558134223846724753945730918741281398996530027579247314180560260615149870329281577764335025022284454597800364134716325917286789670277086296481264557467061276195155468034232112883197881050417952263224160752934720819482316865744470350096960425955714216024762119087775368467852843509236751040697941731065955178786723160257328443103315305639214525486496190419291131729753320697361841738558246891989310778347800826030015936444742864810702308182785223924968521965115887624334025520290713873104693988229959254740626247563032648946368007617684545534392225021971589035596468820903443780329300796238215966837666350731940231198875422711083454262606830739706547147059105169336285498664484309138173062371077943808886077973737303866395978776976992098932432105656041989851096281446849225770240335685639348499580248530791377715449377464030751030299085562358978091660336324692906882589098031299367171059720898780712302956804109007745530046927250519159885633019587526471951443490531955235859420358890807484303818339349871793866051861496438174670057570191110302613089751889627895136383890320364475096294854277804252115020129672480262338839892961194464374091348888975510001358735758532035107194413908007462370789631723083793235139999349692830343592442041502879278967513174088441098377742567093541128179025645973393719021335259801216728465588400779539469750757763944819834281930947289996026155596680148456148640502721050426242264952991184366377135408742387308754383744068161231485706299373265614864808002992938780961714275732346569771993342064094523247181398300180100046713350166760116238248454622466859338757328298035718487995569876699206518964494840167033816638688722150279436441791110782577526852332131354135633660534349232623575813785851676349197075585897639546671770008468417064115255386472738019424444002630016647861088800636626112961306875992190095442234751760080283182761492568050153774304127340012213478420218056124195900520234288918271746446984707254412189931560497502742054255497853437632360994031479186581124827437212111246891442703066237789002835255333530092408839344659005015458988675012900034994319499183059237327732852107400024207742191512156696758265023467732740787816482218333769610773766608461833107578045341823822322448010945117311435441834847272138760337027745687474835939114519804169712563473643486692400478323945477175934644066952636643487111229271868253104092150541327930339987606091862242613724346779606481747546472853014847932305237846411019874336274375729135691514955903210431952583140051671817762377069088654246720718964717167196391836795325224676689510039540539873313863650270445058722572606558629425458739739649238587769068262839672902583178868914455877892699352948843505258064008193041670192652005236061250241976600544139321152948396328759696905976322549380150708650605740744153911845818286174976858242597380236840591489059921141646530126854156452760370260211976805667393940543250182050207768760310341688065902375387932710764796167464287556759265682763228298031124906711372996347967328335551472586993253099599708402205861810827709553164382215045297822031189209836441291197258833012965734527711846047561944607381989169211652296368104434716902460164219036872455680976656525412751835467145498180474319341062806134315701723883857748129989882923111051500590401038383022211536794725444778842175831110592258792147608404325146977804405309419891452594242424978159242961214037568626545376909568333595767154463763467899886906851742226492015079198777591814673662951374742370869284849407739063621012737302069705602170737398193072251516793506982585705150790614073775217752340388345525700217691996851034576129866516482775498468667050481282716474074670692144173932264161505968233915749139103317061814984997537251187571570616065770089068223923080552387043515897236127341283350122090151592425238958291863516917457738526353898865572009908949999773649073684905113346153924088594998162368926469048648698336214355318891838014506723155800619256831984389431996805503268790035369813959736705089057822051766194030777959694479387158263861750967385926899071914679663957036239285506443462854191510211119272476926031554621469582575138594418718247556148012218160119577596478032008821778029580557687939114677212082604107751633082012078618365298524662304484094616522830272113786308394188849300749158024686219281111333317872752107784776285879613046285415393118293268769670416961492751235854752440278284648321961237808518840943986507669970265488207776406939947824094102258611382587310069133210526703439089160425523228220937939932635309081747853331707215966125631514164824131660484248028340639272830032479091396893551920579376339362916420599176876563847944621836801800461515742145370362108237764226615424940152199166256209592158526880976420559534103399213060390480252730243223378614184012578007133291061554101043437507515135431223539804636863981654864175070908092288274877798857633086638808697812001998693650921619680588028014536719655818848576324484593448243856040958093675387361910044693876142201109342978372642358814930130245332568437295078370976299369902088259858790283536956761875263384948894483018984503353274550373916746176511777425321004136137819001698084639746130990548696945880803802813975554948564595862279038085858922833563191471800452904487787015247953275056712093393953557988200563239244843574297755299900352175523667317839915182505450255715935302845940297603396956213078599946148763714043742061857349778520204147382626233271243636953934095636893825419743083491383191547847172283609934779335660999539987594708772788263092480391480594336993397189197474730750046191393993485471355892939121932110336112857808910068894997102230593843603627300079544261667577343050791054567287616102506759993525455559079866102801470215360027583051595252953580348388694351008924082353964263836300264958968759711197799666843520111164643030135299637412634652450467741049914040883645040880456052448374033662418932255562727963434998546166624457811699946066086817363132345858670176948621481722417840757009420846459590220378637528847820307282000771450794007535043161906504039771618950858787683048853598519024136180215199536324760276561059177195965745342064437985059892124341031104381280462885078455443753595133454471275666973569978005784117729533098652264814352578852729990948956317400612078609382608225540799650852960093186677653809425523671382182478520886843755304210753963436377221175317360563187156964200216131752265678988953164610726826719893159256624556885407248131337392127350465501213004561798294917443192613515573359498998556468176094306639216854812126041640592175420332212072471073752708212687630592442799918097967019732113616056314697579310139068966975321552026704768308547614269403627027461674219510457079945423518233005891246683592246444960243702733451901814045427179460869526955221960315273810584690420999923593862223667884059426615153410160925005386427926205015264346925035359639464002599375621303383131105473692817705562727102793235820425998321802691139887443338398378201644684097162906526282859202393255109602004517833326225981268686280306181577913202244722111579510237758914744541502726825253595866451047294829530875645502673353663671472136954720080808406698707036504526972858162570868789855313448946314213107740236580603045481787662580711599097808302888131864834797512345022994607703450067841071299053293516965139517088243492691091057011130751561594716568750423973796718711106970216527613617229837078738734996989085481376965514909869761116318085371504311858864358815151784762179153266356458071887902444592048511306410039366191653979387275835037251014432007683521483798054124201951516861292472565577142655683155414651174684651805201946139155818996383884093064781586581967413017995159591885908860977530185497945380195336921207365214020204262732748268882453075622694155910422295406837289309691795320013220683960343448574981187898069151687481752176584821693733447444888371955707097374691536137227380817590293886925522132868059802181489767042611733717800758973710069253717471963806259524357982835670137423554384256473831445861969219657290877145231249845409844023083982888672866870349101353431033646536531368605031985028929392058333036039820613931037077263706735562563234009433957204429417248288458564481989282864546441667241394686180099975377275124294712430264611543758600843488771518049185700222931902867646007894165495322474601972877595261744584286654854052002782462156129876662605302268960496520040058212671258414339445617308327513472509542499641680347120286032328071946391739886864172111256601606367680876050521981526152290041139277349023827813145266131151582587483862363202842663068362496159189604587696302289164478603571556199501844060192860171046341357592002868592353235746551279658617290053553462125246303447405036789033928150095001959210122764737546436478323548885387149274280941143677055076699599906068119717868334759486124150037145512191180134595201227003337843891115197135645534696062354807985788201663737215340693998456782125577131888464784032067711969011399083418337951810715472019721021930629770744217551054464926576542699872539420416346158281038061515104414464805678300042416566673838032814892095729856509679446804096654441494388909411081896233693554341477197172920458613929345350460837625121788571868728726986967622220358534539441831533012759298968495567850889845347278662798372761554964907309175644993120672481845735671011943897416978852568232638584470363149784148187026679098367522983688134601219398492707732908117907168342609376462408037877855490015331075331503314009925112709985482082812413622385672155370156499551169892654612938134147278578540401968291954571575051642497716553544853601618768330269971893345886634563257580296117981379787064329291715848913033635683188024582549273396950525297424030940836549662827068823889018306579671312873134659190585887556310857825813544242310989847625370451788694001856197141847996428538291751619841607820276786633063316645233242314605310844743093390195623617474239808246828913502186762381038518125119664836868866549530725836959341874853203065164889823484690848791680687826059330000722159645494867964801863832646338451060463657358095792178065593986345117051588025824814028410713170292989205169985911712248118014410083968306990548847820551386378357645332583965512171631568148253766981080331871636297497901071225367108754890166186229177673348563445072624390135615700662593404157060955922098141287220155899479692623138192403602470412184748511107267200453638861804843409428148232226909742701639117196010956023337468615789648956234697723553354032518567578246303906786829109983281827520408684587139422360286591875865186008084944440238863724908263091839380996842389664394572284397317777554569235557843863635052527288435367879181697288904321975416609481683914852590239995548148711284334230904613361273785951534754387574397507763640903883873252875089830390416482259549991675785461482947669093785625284613542455346716773972766321301596105618492842100482988430140987318646850545890848278171843894751296089951440327817676393946960594851000882672141755119952507688424949923838785983522519806769861950575591132148138290983622732564443000557153758185575801688482031798730008132899303643917370110377459087110403540078946451822200131028033140456028188435757244496795324031650344992093474417992134569347808914752054313672118610104250764643775521237849873309223485076970369127458687761793265481194466562372887278917421439201346610732474659501343594597427421892822224638872252127846352457235023563529923874597310930047398387746491863768626165366472149398441402374346849337357851820686933952986672230339519268080295357080064533460555062471090994645850942972545650719906788797620799857934953938825691521473003856242323946553237747159864048053693001320090844107037436827767288297168844285425514983065173131184699977465942234206483440938946901201718226633472968621383814308245561965554140823028444146388398089895417425421217851258998128644513072169302922660669189607363158703326848652059935601468578586287516545877742788700192044452869701371750205254171877288437924932208610766980756441308505001142424467883551092516388026988659642593042341786667615634142590557886949118663475660906034227049316726061234206897111846399241202354272015291170988024472597868710659754970297298289777192368971931969868486823198875798489633864786719621081519522237165277626692338164043225574270209273252177744663135050534568264290008530231659348024020004531079913547739726976798907620282763197933744410880489646046416901198299332155341092179879490691898017618067569855860658636844917100882478145368010575072567729498874940236682998635105120283630456127019233279747874954076002144181423054895151980703481552048926118838240530076987677812639357498306880868610457004053758870234931551507374240527736835451949973121590682324395459180364910737027233510381961784858991051569901780510788295739170032858028820713882841868349067570446277142522493980016145362443619326995129642862528601101774672988269826341744763282559034430791113739264197530723883084396749087876046807033443829834148747934718004514772900861458057643011226725804693178791309541394772994916901469752942359405682888287088188054154886136259132339467327530226562905414057036452100940288356322546466028597135670087789863549064029937602187688256991743369784909866292821713964128469408459742335774716317687359024387833068666329259282380995612370203932596001534862920353082899882225628810980890041532168145300384401608025150923040947334957241814460989917917623955142189285272096098157189113049095161005444003061281747651071816976381952240885940503464187830341698744903081767662663169301430774983964211438882147816916441185691629402660563456547727381263099892291783464150186792195635569942778138599829123225808722449554738295428536345975362661482688539643815590373779552908620762188152288613870947085461592995246292628020126271178534190350125384266140896626982875761280661036135860916298836764758371696554835502495366838708091943402230267318664134744936878290000988062416988185751561420826092999651629655695772568786812948637672861263997751752603603924852953682249715012280101450495196373021550636511852340142299298064834976089189142449295985915086254202319358578180594123038536867708334700791857343437062827870803655272272630504850762156130111374930850666927773634983811818153784337583876984041471803269183376060521069270671729375925097848196802154533633321314834761849980635406794317326025608478673319341549212849865225794872517335582694870360968056190714732773305192108516621570747081932675065961768988875180250260535577119577985072444633862045943800318451564560806702431459663338921703646440824407635156460078898030814719206272893495830034934224760624100579097802906882169203920832741411763872992429565923205523388699660315431781737409118477577245605564882233713952189271915923558778170911549958105581029515336457742610020996273551691977876821501429585347055162177122211706051210774262079409634862310239130233900375357206005977224135027498697585296833814556835334285619205148728936986917482632814337595603784337076672124922886373317200353752093304158097807418545544336602235995072513456573261087507234442128902030578876626028931867553836002660142860751990316803279627493988183852093957517117821793425046337722073209329045924307060551549819562218222774501902280746618836218203708165804814991801367193025878551908736205098015676821536272333796843325112122567739693412795181394095056290773142647253811374888872114995869360604544202929030463193239289261407115960824362750621425459061457912469647890179894202418503876567807792801175389495824467968124110773478055609066970234219456427716895150428579415151684581428004170874507216027334083365001363994432055598584108036992953004135209891189088831388452681680153482346623048301802055499901496765671412473161685592966705885768699848100582114480607005656064993468402156574461393871261252787278567467611598011086937705716941815410869996120967267121541811731035364540209152757168610327268464787002425895773719227514320182630678079677191647970594572767570891823133881970223578090291915180133734061151100532860403908074157190331177160403090631985582690600966682991771169240592463106908727747608571976616064873285519258728369897607484347987469842345514219205668242036899436106501065904755362965890104974997022652196545236866069427690413980497503200716972420136898767955212058258909473538755088005893496625854915531131551371466979906990095842482046371200066405028771714913892327880801925217848747336077882618618173868827185774555083363615979066733860374695300508271219683352501757850374782109487534488022005545365269564794370914604030546582158439194249444830691706232362068163278456193594903712658778756422642360574301563455572642519152243496799802577832105840035132978232482000711816808136731930855806042442211200951914966128917919067027953367526181049357115935958173140721179835015353630263005197583021365386943578467241583265334014904459847662453182344654410794778070242293848347221000517860944651897228765065462413558906137171403365757057023958867169189406442067490351050503117761672367080283911277064523924426399683312572087763912708064132061398347141102085270583461408874401602764129095556193598573800747786394043894433857260140417710956528578363170204073141210623613344546674827052061306737086316704724096570889596673165769462179956898587933017971529224863339821578090255470395587431639424404333144460574948139630033682622410491074866803003961389844579717988666799197289054483380564029660888048707858730019635320262328309625521940019021188490925346757309668884813507235404519536106681821450905406346798437398162833193214271861554436563380512895463837966194967386140230180836407028231781068108124170467768532847989123305081971985179073594821244456091389576125680537530257152853139646570259236724623692717106827169647922446400613137596732953587721192582485001948847345806907645779423678948778144211246011935757113000510686169140380767172205412982719216697985521263989129865455351171788058882249420102798714912424392464886357595439852720111991940182509814960433325751850331692557431266118621241029043889169640903643696991275320064293406655070028017529964971004870815065355053570386758244672629066790260737218439754686175957716271027977238520140672815053123050495502585573191503575456119157703051734043885583033487379858057281696613192020487245307254712417790596149476460990909721541375852388172381643337795532968774576813571956509971139522336264550353115063474739396703234875384171286740531567867688583397452397618233681227616534491371698187116477899059936149706667164912151119364802086273279998464991408777762026731040401142320930389562741353476177936079124296232737177895737474503183654954493867661275311434157003636940760447685262689262653788464449245385800826475754596892734768128853309090015897397935119759298686453614879349461232705912129197487492032022329814251658278487670852600192403388126565514151613310064219679951065373215646002864743225015949978877104900353783096806799946259411224226693597455728419044172643922634058558549780067578786319608015520750958620277734092106705791090142934120849337621722343095653168783673626811762472609014902404375566633480808708044078902818711755196195993858545919338798715558401536471460727864338446591233826948258598366498768708129560470219990657344184286132298335547398662009176366421114016969857981282904969893963776400303559270903430526998788909597707932548322821369174975970090738809419100487881957766336280312445017918300816705966883190604268588995091763362222051758457686780453558918475096914267668985519671997605997318149170076540084584882534831261197388080538474006245981534157844057415457496320853282321715686819206937211122658055219520036661294940572332542943378454908336292093424298858063995761293694916703826093558464848902886298092104513313580346595374395697327995008932609878495224743337627503719009411767828674043123546477137502895699208393592102428876476458679340232549592292664392781902471383484589969014198229839218506533153316374982819712028364269845530635138412662474555602172608981372719345998282262606761198336546589336463872287675375933202082161230354782427245841532895869661117471130852254229304376825769157457803962228542126134367176676666711159345994607201283710064917339345573414568392785268295704545693312196661307738206415709779267756735331291312768758588540830607491490565674414933985728565330525821663103872021569760254393721281480209864145900156669200583578625598708206640365348412264536387807518960890239431376965280558623071232659595401991919319533078857055812717141730904300457137582867746274159827589285798438796119256646769223185931284375250193890052941274477452915005366820401952793318412026170082143967972113512867936457744850781087054086706676047817414075731192084011268104722192835157092744414031464087685352328983828053913383318557336315681951189977462897640283408520844365551654916494151883614014636885999383441645279408992608523159581237501131620512557586843639568083104288213848803133766689992631703849033440136946721040823183398190017328764511285149391886587829344661197106540244583561822014850302364996527527170413271057006688012235022389245827866550949641819095773290969292065487908789425417875683865346009230822733949953542437382340946870916186402663465018343427707843340265458411456402457807380405065249875839557102251637274630290625647526199940526236668252802445078054400997865941269693535770178684011783485504642852051154354876315700636101280354554819593016483801994328942460371903066352629084012077492391064992722730324680981641302324746166455931983101348018616494245193429021024118430219821791048461889211549395511137672900032994514519379442310837618841550888814159420526543382147621905437887075653422765926059304249737067622267003018415907022505819927494281013107079808263192049264276650823105858486149615457239691173347072392723806504349790029409274872056689665987802525088042533911451854718408398554091904845509017727138760423501188050641777913442481587597490211474046970395357564089605642439322954996683897122993348083528674656966804310690287310256868621031182602238091155504034854013089356241467530105020235092989788137992644176198111212636938402885924740323527088764771649405322043160643971080797528571720986762618027006686028119052713709175217967626346095038441000537691611788135725023472883393880764496964807183186076393650184414972092435253899045052812395672936817925924939754812428688110313607522284368184503375301914000299104870383137054225833183259031242532436032002034549557776388626760031241452255864342284394786856529868007372366940280959382479744358915869671367548720849679640339374682328886392094917989217795295325158378227497551786231039852050030060880084489683977408392286488197531601294782420191548104905519724582033132669021470153401203941918562068550097363849497152925471841908755440000593397019496758791195348744056457710147872787458916879062458979466874175116750809544988528784467910248387058369460999882116396088183516237895492416215653337094725649207985856300262825565106994148639591147260087315930833357146410216747291173382870833887121094777203652898839338400511360907027128304487464072560635643086058082411812458981536393621322411058707578163851147436922496453925079059230459797538567428611741584122633662434420187432007833459869552497030395365329888430524140147476153040552695915617164472340702608219190750236700833362003417636086935757726778730300367606450520098817647667031426445016845305303279508999900911887637585011930818842848065145292077052582315664166722128939785556614387380619926478919172969863055320390499729241525834554313910251867201587534333842330344902201502271455398320089786156245656584092866861609404684658757814929693776939678544300885140993180734197481128078930170482585311618571143448491884400036512391174852221335260668619070432826571952741830527296713008248529964888085152518031220814375737149741407256363967708674179349291986571409477815714431842317496557531191324575994363484241644912338123464501974397975530047159687798676396103180127529960764048992411004707701841697771720895319814959332579202956160843344648604823034591099552461266715355717996642186057678081491715631516379184468728341573899627256613402451375938733620595403396728423774715623610286260851003912163606084360288927501803883629322286208681074760123055901137233990750209998344288231574161539267436100602342409151922633547952729501985182446360564228871028395022609038544221714648539074703269455219340561610756360417842201116113710601607208273736650959974351763195672460609074924745634981452948858345726859110788986709948619128663768631551960817581238187442214253707691356974796785952803341437642717055790849129908786454324564644238597905640009188098425591877857846164819100119309324507884516333994451582485308361518425896529360023216886562193206624797745937247313946113229917170943385702489648465859807627830397428447227516985954306813341445107811993925548892798668520784227981435999527533211372548374685378991132976231774975491690997131407553580765687594393442384115022249703891553309599877154216247524616821082814980485894912432675294187317116608611801736995669736943172942864457431431711651250945037842043575358052934594496235302362375353829290088379986436689347948680323131054841355197475231071076238086728395173860780362197404585167936919996602032610214148613125334069429249073367923166027145128209589337024556168044316679505910682341824659184354210066717070436675994164373982309181235393015992613748115618122343632502803073239205392034656022334979866838435143380184430645506267341286507422461972385454760297954274580942128245257278742624337245580798142491282460622540838092496153736155410488801834690213260334130400650850506305809223881416990940059838638915176397978614432040885872008246842557698615081468304388979672766931748930147983188168588549116990381227459071876586464038996659246043586775885452994368692673803129619065288069567072305846809605167100759306411802843154313088802045537838694540791156936710778345704895381196315472294515596886979375895546966050658184859576128317330964855973423714919519736091512660281738053654506060574280964805879212310221137595908833245365935465827741039621447671671791587858218290261245318095891317415893489032581385425046041721981082782562323429368658131565752885826850762055385046994959013245214622909204589232492341400652615111648495929233925920702825382777158622395395658048501428501096700894589661387104513425669975798762459158066736028972652694791620560550428852027533498854349864898854861021225981061102756589414818820569475229669787035989739167895786204923054933354868907665901609494855906722841823111540661774370159635431319392270525892529867742627691602824463734225098822224662337952824624469277664900303625292167268713215105649882953742454346266447004997320432132286511879076697528862480859885305034662378354138932570103375976493054831450118497237573789704724725285537321418926368060013532213747648388150958422761246394438344227266453096093097822295391974606021487031085829337762301844457999280254514598917978372384935696902343958471716972135955648694829187424012370258926116968038725143691677187777510606063619376935385488579255661721415333460905457207680043859773436010864995363184117269233082865994696307830332885339837182743749113572049294358040686298978129178305882447962938156288226106794829718594895282312143103199870452393778451797568503078230841705798277827315484187804144458667657109214970454760505345224819184598292662881569422727164894159215608577185471544762187786763849642826815312063866390531998136785497552994236549126720337213381670626502619081541979696356968823856260571229230273210489554646350143912528679731990512491275490138112473685288883968547585845816323360334306078403914894669397384733166449781149508997857228557942852118616242694722435846732607856348041135166962768371332244298111556820076564087940639668602253189381880515180163975132546238323690218182896050174989929927793161513804533005476314009722386019079496199573352867117137480624274160780355033469298341313488921740245237789449246890690854896787767574830617524098474405276940354934332155275278627466243396758438243197201495749209819018528144737974847857654083558426480096462181400541917664015122871593471958756528815202361493501363728722980158314674373283291013955053149124959576683145678447378426430219243353847914730711699125092133948975920574458443020493411751630516925072271628524934786338194183247950835839101640221114543588213728788544489398427670960221390735495742029491527152656740964038008925155723626832599355869925938578296848704663262433555477863987659511980552957433745831112641367066855149723522062169670602229686666968707813160622969535124846652147222895608882682958440345090273620461201302294202433044703434653198719461551267442262654406820513548850375476558576791297385371569811647223061045881353029199439418830658688438270892379427304450194171638710696892575342597658255733582622253635409197737292223455821868213892361383694904917574761206364407385568757840550133350892686693186057843385629781842586142713142999346222976447429044116618286714931762773635347300584337805886103442030550549524639101471588507875492535506460014739761435331180180906570232575946520873204173988022061085712505892171854795105260513877684185481443017786691207118774824856379818014766322726147989495231758964664683493866177515956152651886464512515487912985058409498013693299869075098821337992574026153182573465174848385805917227054305937459304826237245683152301529846362984668998380649167212786004140897886958621594201382627633476376380239864627159792167335815212799403882672612050938457112357596015476824180909184164321337361283666542631185821617487200278360811490181721124802439301059147489504995633465341753090313312340583971001298951813120611420337157349887561982385924396877862602116854424212145135656908447828891293800484349117669306762451756621264665803096244125707896124488549430429849131081579068875586654306817960730003371983937765029912608275626575103310247116698456265603992426061777007155134047315709542311377039267659406015231313614914956233303708898571566361536398341957222086140459626767855236138051218725918096933858075379227474252026260119925931569020864727303180460345880262733926677604794203900097641877142736876279563406588284754750490798388671470240182497908229012389950049798695786900494827863703598896084617590066234439651877191624340827803096762765673876760968778233193464001807674549824592081888165868204475442670000792317130352330507745124094705063013659254740091258217638689589556390200268841811783525299800334196188245315895010913882409353755612946093942985957895481076571652813646217606497377882450462940922658056585311461543977053162955296991133280971576040017255144669490788844410708310762297657266776926905524733552494888086365525374695224853037081646850275820455172007104394681429830010277207688732190821118470404674560852232930963206771265761509930218092376414018070133394472468859584363719103173361625549141110727693463181388604250740681139339337855406342514191105419639389448288890899857606134641268692454109962470538761187836679243867115234060944021637487380429972060313733639480425485150033278516119332869522622080510762337737633444845504058421764428757386441496564138457048121897877148668113141570180637353326035629059851666427136023933784013871622172071376318317331750484704289138329866889793715424439262748699080477210633764813314054924270478127183929226008640809554879483712966527063817724023180766667865412120297116909869921558091712744180906542554447098053203310047543547047467478968166666197145076994236371268076118823423459496705167186417690849497037028429847336530829645615929185176835047958140757546377363518512323291808086829184828703693937088177107103808800289306017385740207258889156802598436577264361882529238751980956576790274232246895122810682665548648554254745817221052710749073904865996562531874681004429650565702082214404266047793259046212629459139962542183214265222866077822674387813515227150121028016255910339593486556287626278273987459788080575326151782764081989886424861658069067721538030327926167829317191511188495679573344542350239749857651488633326889030248848625880073143429942824697957678706279133256051055636051237770825360113375296425386738588158091269770157190951100787720849622390796685441006640566663612877403769090101506299499136855233652006748675732390230794023547882963683920487174394275858452076667456354063457421140039696054424029685388139982168748742154709474469525694375619138937189578127951153553354534378623792030146958673847013885913065471935309957660509091085983625613756134644104710311319413564320382025815711774028401203240063772475888109606572085048220098578527613204321005102633112190398078318679589744050855663439170588490323289911197825215407735218311833566740424012404668819582627940393363280980933942661218895382886431283225893330036313227688221342896678740180322077276410514200527917359456429283326424618451227325609496837735850727360305653107899350498566464288093219709875372978924469573122949574848005003037746005329766690094510429204014172975167045332002175637402538691293183008032200332914543047649073732841496650056993444672798442703825232274211786338553801946346631505191268281689519819274009530485317841026267388612367372087766695280409681491280714815773959942657056987533965002388604736298784254407867612440367076325074244758836677268232309250063464492028709008261505064323412713186664171283175251611918363187972554297476100569758139296394489623666649888365380257767135543430542003640456702223936522960842252182999167632213749067137034425600041168904528572657741795531032160780226124702770316724147856829831799446012725020963449064657810586126946123140034468290671390549380208649476003797943808708784151731289371665033631927638720227407156831641160184262813923889689759718826991948286646165713405446112543258955514734499876535277958812006733271120947817427030491307215497014983476691719483828566103171852881578374413221697427365090089673250142155720538289272772269613072023911019853994571316984146580765015969606353033418286166442528051808769479438356509979570477748456785109780647685074625392966950387121656038966248237659934915806011928992658672561493535676322902025924682914373266683191105712323688962160605357535650198203755213782973128904956922216136327347249280082093828420297145752186866304871519446728180195371018373421414178961397794686245207133686258161695822363655923763718402549400930210618511802438153799817687496929645650889246925722511268004512397219087248708056773254475891719359214994118230844521664345667547291779936173387904289005278857708309266140258139996789153336334788739313259690293059874077743143817907918161222233018199183182883272670213171092793973137501227628117131276885392704133862967402266641701979051205708688568419784722208058457308641014648698093102474451560846071781453545666700628036776502894577321018955106424658671486457795935387942746323368849285729937467251211178350443952022922253174225470084477064479299945802236677546991315446993556712514779240700566865947937355815636569539197874027478674438133167999541217503905397023373569687197769621807801901385341385132394577870948458466400980708632925991129825149468047312328620168859751220819305015789151509395337230761352752753825502271151733086533797908328539942478444610924783956785355858587043984372566908592909692387414404373623070829608719730832870363795848533960171531564278235503652738822898990970104336656065442347951199677882371081230354867758376748077670654410511373804612955877623562921574237266263067974109913628243447668342949127695107908849305364961573256884782703841349740433158843060007333394999100577316255390780672755074908983239966137188843004436737413514306214693414703608769947649532993468970787832609800909690609488983254493758384907310758742193361067898321739917686066297770833439170361551069314402670459176487833066213161633978544684270970763357181609612930921743428658177019702006341471481595711962873003595289255449003983460678743431208297671149937381199792742350538149949065513498829837582988710236050961041234286983009782614966833883067306500235067741653866400540465017723382480862258676121046431820074829626508381661220029978201784589724445140515286790999952400124456990506519717166179916390273133449197833428833958871508448195744432301584053149924032203637488068864536805861225524515156694369536709533265071225343086761455417545550968165687846972714012983547197007039177094898392216622317171239424090857243674768875458585795445506255571378678329820598758009695693575444365002585332805455876029591152756413613196250795742434762918077669192959294985418278264328503949085221293659206170995932492475159521475866145238427638721244898391664075770072909751182373653346844290443437745562897715900106230439092820445168061100999830483128250709275479402340018454289962951136511293732583976902588468988776929764054270127842658412772346259172463629222254403000236909374892470171612618730175540751609957377949024481995132186442692531563134322308164480287959572435433498934996719806704669032699596280707471536517478541977000522322643193141585107814655460213032306205648922070894326508559692705185025079582883087282296730270326014774643687631003124510240125602791775236033689458469555181970639352304070185649436864610612884270295604165513024902066883473019918706521440773289069142476249544019613809704653446361381499208068645091929604190064557833237496638018989860735644169525493039168773771512348203960207202140146476699565329489046251484918622526005727892205163273176418666648527925650170493220150085129410966793917762581697685766355606083178075741502428272813811660347087942981184909815779845153734981401662647386703715159023539988522949221930223060667153517153909722334899107572804934453764667769953583047760220507984728642419402241989653895963355858629028424717559282770760185162236480325573747629030260976331744460736708166926557615932420594554785998816735362208439426703657771006534874734306135029014862738947257738867231288652823349439431440454518164778904238416106434872863264754279230396892737366833443320901239776401906290120553131716720138959016636320785122794731068978382051102102297016615098092826115253186060707867439836270773977922501902951726284067877882739458266430618001078967875456369400927496830689531926872394563469789471451377215148397628274644945152007337750792986086405024089544355282345906558616933129324415207732684363026223523333553015647142230760886053522942972278601345621524586867872730557029807397072931611738575275125984616674836343484580279781591048855597833689919446405169638346767542339226841762253834678508485879851143273491335432380900832144361681881583244479497566560629826193296225567344356886957016991685670394173292199457934021996567063105732968132198649152923290268561532171831473218307065617041142380651586733263870479470081002112333433533336080484446420213984612800901184864425068323741848939955952923183917029019368336091427273234612742651731653201938355013089050946424489488036003915733229315598987622294725241116800655098755295883547065773688167439579343308672955090367429487396396138804073404419171755297673142212905343110033558863487548697354429139578907483607290744440369276070310709899659359725784984442418135371717345618441288463235812425495145413900987683490663216075144708538608623596133512283933543583107828961306413713418770379332156692864342615424162532444754051055013298304445942460346681235518625362821788120011331182551803490614564061281346782093082760753272358349838651518139868566416490336118005790694544652544291135932474015694829827152351444721645671165462576809973594694727977988953581975345940209763129050425058666859670677916209296154665613536986652803226520612355650628018696982120045128645748044898061688663935719903528450539842453935934876876452092415411643401904287246002344174464930012622589615790910174300033492653726270020769193365414150043272150415428474962765802790958053124309734234074596555180930463749311609633322167438206392532480513833410926677973517369365533872978314043203843436947639570474013070895917220795739911936196633250259203488806656340542031167946132800523813880993077008150266918970448712821120003375475196420480334342564804438170365930038754943644544880631487281368645640080051999355269759406154245743869541712475546848249067703756297108805695411411189579299438276751119112931893769594473528166100910186275658792780374300560388512775482237343975838391618936515499792912761068427780823373153360460285282647294443732782576205149425564718851663582327690623592365340820167884391579879467306604819985524658742803299504635833708565985244151044878242671997352625536996966050618103665701280946308656446745271690093108922026688233830734655913019072794188832735767489304213118005900612189698149306536007995129267665068918921502925137868668155319002220124643181267833176367746523688600754778434301548161834052221108191186398494358847074814807878974792196218112248976662906566782865086682580772360641599496148910301666066915271385578208938103552115548623153508196043630344944590913924959233774615815329691527769233192513034769278235620926924807785650887015737849615826768932130431877829836061010510726297938240856952053253041319324219599976984674158932311327495123847754231800003942326101675600557721691985803885245323301915654928397447511419695343970683512586686043809232224599073948401691424242448584218852559754188435115496665160670331561764584033029631831846393373543455759810546391192322386361073153185654642759946916567991974136737051775967108222176495674642296109166025161717974629867075955821034909703335730482428963139594410688893342936702409938999901343577413258225582198639963181442012592765637122021844808423196694066535435742918523589941829672593248057455663404632338845910233989337272468886371327360279099337739823534887126976302238994986707761917935259966331899507520484655565840836646502033848081993930770799065274011456052165029991185776589998732270669404139603453611328880638488934654703114090049982512972140871407563400449326196768546915189970863827487797822073320050110537052734092398943970311182488914093426295638349105892619021791333290898467620309348633171600918166114648023104320364434746177096338205634247899902879766947757781680532178907392251402246419755312000747094989406145352276132691161517549461777818165897635774675844446287969382839158841181963967191525891460939213428540895172329813192230763022718343611479052680857552983814327101962076608549122025935455407607823021544866511360148111897521846054495184304652466278572214196930626409141555094559218945365502634320004201810880088542799411196369697624540312986880310213725618919363955981041725277984986500418783686199203951263901740691406461045479429977527437885264449360726985372088625267933116901923115344029998960616175565246585186304454818782723320994978311415296257706168328957359164949062903177618513229094541605826411905234843227708438669986273978834291064892143105097539490803102883048052032056169744755761826208302944360565945874682805103179664054556474301640986356723498148336758953733576599043776954636769755138727859186461728295971215802112822979555224641054937295850694091511908828539159957095867890121453377984805615681059912836713556072753823550843313329954441093199594117939862184031681445161464571357539464238617733620646226619474567550194385794524091697007541532853894164744701291198804646998847241199297880897029193813869428923226904357710358917868849571146969104369260268427180292098030115618851174063704951068770555968226761426777583270383739515746489793578858644030549047561898539377756290103555624003358540677093277030093834824618923030491115187860989507852757632278984740360232590168782546872550026222330959137859946127369163165702246709165312239934500249460372234051073233730934138860101845492725273352487365696604036524642938684053517371566404414355099590004312569039349594806542566002724016453722474299536815815026195251895439822005769476662946547869923579434011021183277690090351230311054717754692774484146399875826548168380074629595667183071950044307114104847361265728314745417938532069912627569907622767610452659259055725019519485971680996158978817226712403992065927745286935551721993251617376623187349665165598648974905178124483907262950611222828538545664619042102301596655233665696035614473529404586524075510269526955219524930393178643623210004398889654600490547569404951493838783567152254969370082450567108276224825508840863688903873753661824521076122019228673345310372490117822128273045962306546449394544391681466089015731778912954845177231548272302017080778191130876328651464574085859039670876007134567247956303644580788875085761066535973803231454386893878797479695448453563059561131149651440479364805343515706366625592383042465842843852805321399718891748474062385061571261867591778905125715171369598755717816025011949514118265726643703855592773078337503174607810840345476495502977909600131714302523622410078833231001804448863362687398633962808041546922534872122809218113535239382558887098596518821801076146894270460413993580370957425907587082525596449946721621758760687073557663235890751348757114836210302608173850833943406187625339858583163687431254966587970089804646725294820835543885845594451557030003358779619148556320971554957063358399621768451593481379393338510890154680171084646839155631635588196838540039951861361350544862761265299869962450713308705658301443165218915822588580044515512971185396567216914792204191638743945828861741681800332353699562187245008846179801770168723404197358780172816155205136896262346947713678803545659707493801496259412866511979372166188582247921022883615594763923713154669191896825394463391036790031140885384245114277622216789986653993391518205331288049835557373385864937176311748870538588113667076790966265813315064185991185015525094506801249385239136086550426946786047017589797859418809857599229515603038623038805759795061074787746706754860798973109809491071926068819905161012585156009675485699197999966530576677150921864236791162692766089858192535188829038191242047649198938993195119427012617597038294820321699174124803206132220461131937534723312164340590795091508853780786013802421274044504559235560947617698580375018811324221405324006504187021209485069416510531750483260118531460533450301233681333971413188373061927686429314129101179890019787589599256604260826570162381338384563571860458536613880979910452459923801603439463848741641465271270401493847825071570467912731410941427963130090205318234854310591502909549732587938592419326617408859446806210477105592949638253235803708474585206075350601279922520272459856433038485828339724051036211711445742186357744062989815317014552511277471166975014954384913510390148932930563708792815977908774603671946760757888129088418745622816453071844024280611781041187277433020680169011497949819905419466418369285389406761477048693361544133615459343713032866035237786437268353661721989894166625269808284026908977100475186903138593599302198226314055700272014702655343438263925786083395056445362787384933824824802513656716745204040384937399067470514531455612222987771946875567608961072958469124782442676673250011196698084680938674606152212434275534777411239063637457436921772871074944398586231881930203616001381252064104615521332015529466805396169269644985092063570098411501344758085032905421651373897320941387192363963804345839753474135520076286394532865394139844034047904237126524051962835088747372072393997509859268973484084140877161242197231938145211876396568684045027556956939116816406717144527303013979856586560050128633991406027283864508506696268660952770664337999515755970140848830779897105425469107126232345440393444931985547051672102376460409952947738094079762261485636647106288328444159951141072161174987795720664381319034527193388345219402327443696304004565430085878667218394860115370126759203176806773928770658209173309419094401141808346244014297814176217064494301055693131614869026749550613483296214243451334393011226942346401656448152863964637795063604724965493962791715254108134111001091824098997486764224647253218638949822393935434622639688260307497096195901920230157503175299952857069385018944607883265258662422710012317736665530670216145371388147265396282104825434096575123176551690891908070165817504464812773736165735101340039010246206344277689250328737433619312468442977669907008645567177313858919453119594278779282864696332834631790543638770401607270758181366746292133698895858088856062849068637997687562435539943898088015864800939986682417180068008912105823854639598510823517244738139537282586083696271128131789635257497771978030279314861733099642423114596535863936407797613214157593989173453657133645234414621107057721283129600913343148704302025412935507591645376279107641726338052188769857341378363953998247352309994806873238362084358132663629245302836881309693416194996796464494353915967687593890029675040268213568116063507359485648222980578267684131714428057942130337546291561278406874189992364521733339768364110093317950108628059954607280621138447501544705221906176025191813896156008939009808025159620128290301816788998558872074093099024164871315572150079445496997716894847957267162130442983551257761403317576403531820787989985086954496716303586500418324809608916158756735555258914464568562693965945934417473228101128905298441212355136588832938772371483136074996113199151812084166094795803086199814307773226591986386839164757124252764440478536038546171643044585037226518076920128005558362325347477341845132337682512128218805172097200884817954957994076504517386932631067304536823233050072808236242688537405810895458545723987972132395656642500740581866834843721275855255079186526992239634329334245446443514570441190144372364701731525620195631417436134111095037987354272800976130491324635270156989683002293208438964383787457491039288961562293956856617331190575763751003438828300351360218887351574060391130846239128440315461252543714961182552836089316712185792233984177113708803369702420522097701904610332222477657466567943409529380650071167116639812057558595652287809423460917354793564348380015393346365800799681494898702876879833201383477286464043655881921325886706769996443610001810108797773683422151596710998950244452054365509311401987112810238806662300296452639248781331061875923705933469736940489772799763978980139219290478259916708864139321554260957477706465287922750714806633531910298291676408871793435202556416259259296111200687911798350287612188717927604234719124065405860152020566920208678964647392059874587053154255550420788337743007836637239976066651999364932461449514957846587457932281623143467850950880756167864779776841774214967075391948916965721788554981629969746260269123165356039820203190828558222694240490652229048562376071542870969314571222058103957109338829406190205633438061228050239607162419716654331875969071951475631562683047766369214726680827281286772832288570539907397385502421119371516648984305098507163953983507019092450937690345463572050916676310751874286535075609046200792504066328509077130361225058528267688436618208539914788027807377878949414356893054445313967724921734873242250353181159428083250532840177580975374207377981101763050140765682264534785387994442822787676533096188681917297537017989612772587558754562576902642367344130120800628951921338996777705244278035009031136989702607306804810940628377077210728880523858361865024738142106367885445821947647769032820605380712607483767353441628076582267941614611803767706042551984107738516204572292711183910436030049319320102469062225118829870905887480151460607250937939906754090697846196579065796842820514814855302079606572158831832305019156998165863008380789021669149095146544434868388896087135059875654608097590567423898492900381282165232534218606319654817269899997794259233167643778867455891900218472842756791875744781098902647141015530215324765420102748967502076340310591741048638843719202028310345331389328020855655665579696655590707169326235851039476152969599471730980893051298464424087763403001687728598212300662440141038186434341210490780628112402147881831592743563202919872833690004745046961546293284242333316811611196140709877354870576583654102509096029939519804241354189009257852486040472484161509722744964363701612267063353477957017817514009652360670505993757890039140764573973790904768443622853313534597680439681658213582325181517096448623932848186953335755327768027202888612237701437204846594113424132969909044095952018783780226074330344155003645078823583930281823182107533080941664591232855501263611075861570845869507374408541172820002857829126125527718973521014972802738906750427314047866042729138206709473186256292139734882838350971073788969014035520834591329547764418713993739470492717484864527337016806550288948034881347420813967005811400584753159051122749457396022780037243653393467251273312809866796632615512296883665451374135491544501280332139055390974153023647352493878700097701865308966508478333191882157358502601662557638296831483365091172349083280920513367432630714815572394730745277929806388518149669616714156308001376589384927454466458404493577503186378156437247029169495959682834006584487499609903406780067953721409665001514446922318303837819416487478647803738694611185221620791787672108084215760452884329491201816245708595510134596436755228030237385357852969029432234588448581120582504293036032761969956054802754563510901154188321156420529043418784100385941750125234140746564634060288179829535018421636748248950948483412425493738428520780601651229683468156632242065252521632118958203231194952915536079468875912078725190962572937356552972528938542711604688039253409338545821120156486992322064961846208106503255683398428274991209815904122375875186293885189226362879690430835941805835787414735934869400583737354215519740702190351238340954857867782934360029626759842877551371824772750678613430920874702140651143892169609720034350969424602402871402914907997881411287104598094585955013468397359704385056422344155833255345119358587212958511157049432658409951238544072513623338269849558664945672201294019945425889748969510084198194486032552178085971585303836970666286278067110375952055773864405808691006964842327512552113322516642586848424674933802083985699333203656446634699720857618775068805248521673014517616872280745741712467794309509674976769607160819537704892556481993450190956582545072063473509055321158844221988870229734091891833638004556368379391780767199049424385139068701623810632271373577219336009790176673758752661236785446210171664125795155370002888480226867693521979897406089143928133825127016964541554164981380215973449475427637210579093378852751698067748077519312650751791995023172984454732844476747012730443213616535734104886559260575577108228673472062346483896771479680047232757773221808603095675583244781793800801643471714246459022295870880936382826444397953051325791530528687224822419172961516059962100818399206025841648204030980428749743338673730730459233272254928645429816259084505825997388846751814845752931420139616815101620285039451830781980631268136695270446985235153125758304839024432126630368909622196742625203643292301916055965430819673789373657371963190745303660911896626249359342719523049661632725640350383064324010272871082840481182324360376455778756227529806567963732535339750657576528287803373149272466734384279277561467417499939108129457992991352753227926065665034175897932406076040863851900743348737511797684884004617850284245452648232756049282426886087929849097095749442556226036383240879084541405088839867916733598763785713565397227080876753122214374576050452647525829160181160091104161146287327151236464798383041764928973348991906154819809943874409327273591046362874488621109812862915467079944740498673856668330853991681819355509843421889055532060767236847866495960879811353540252094842040189462866964743782225477723278955534522265403317342554215501535602623755224205165836512567733770374849112269219371903125304621253656469259307413201884952148830227558687780139378723244459177576222847309356152349835907632432986115759784145458183193055745071202719597412042141774852587911683669621528659912679111974873287278505704967441494263621771016693111480471138745088346401661462572071579211513879936348168653832084672732239681762851831820897928473053738993896205471414941548237578661632392799847967885447161211356153615180820333345588018652278295844086527731819107603244484576845384216664902656338095324799195397693090141979838557297229215492779795893193926833198555324636416562830862216719257299253906077654370282931719350921217165069210778551082836899693387063544393445642210087212916963512502341446380967362821639453248234475917386498850313740184850685115790428497336706491068987107143565047085319982028906985467582364754681920150219831441336909238133019402796386630721345514438948920850660100560992083365210115577672806271195978087475809391071352844716357362174617331056218589586513740383249199768479894653886478541713359484994828819901351495676801016455275914129688977233424961044222973466972592698729826990990688073877289801494980983812823392050849552845880258077803799557857206028787912777654497864496919411694671894283623838046895407790988091955855717725184405898356332330181373356428652453580117386509774514868060726483083231093870415780684663001774187398495144509294565490437451631652991239990977154747259703044042581010576730217528220840301798005449346917238307254060701034940148064924847702006918596821710956190092483366819323175841168821991017480989424948664826244281737559189074692918467984184602331620760349857130047644930603264148717896498814631739460192175139859036741734181176086843048844181272716877608705949094572029623652381563058998260450420364115124192852464819967448885988239720111880639505910810861892317536694355912443227919250165193708078033972735536552652409651432194595281821104515500236922555004058389874985733706917272125884450450445801378368478660202301015532400688649361036121722978445270883424988712970469610517507783460097518395802922452463084290354055447756357484274313967243506979024380324952921364345103490602265317862040601888706372420520538743206198700525723781190102097345286992567223602639702050058369697828304321327597867479319330550543703603163452434122395351036205385812436505433138482302799397879429522086287016306436854519491570922167930609489298131682353421405182093078426953366932107584581070676029628868484725124052282948442398358051692376924613861954373343997028465121949554391167644913057157604327122339858953822060789320955857524392813072245073348039824201625629911865672940270045055633349494718367630383787552135327612074530513980088723318355389003982592208835557084229399304663170638148738388337494504419763201368893043224540224046099676254902653190751576858403982618622679027070159907498252769031441558718449330376581487930156129870172108021669308719837801738478088733332290585330052628457267902312071046423206958354924043731891952350642709499147997806136424370154307858704726009329419599871885428270927385111304344753063237035028332530305357444646108756025958041930044265033699369512619188188335915733123124597699571644994304383255879140530104185997985892320074456460517619184323157434984291442638971945251839537073257543433081721910217208263610372773121950936056609916032656588297918748173618511887609961336279855932844058458220809968615471715396189663223737524606790427872232345971615486372839202002213779447427155779445167865818199392232195264168798483100327297307378953249745007368411131884423734020809169384266111725057816616916000355717557199083533212406132280682230588690462029138128928429048515909593827106786547412446323467080205630362614343941333069642022085162465058316660199614532148171264274764367383884148111096780148498636673149106697798180038206113301762275268676512050660487469583655468565648922876838557718641064450641572308312188027540369717761956721883909389579551747016917829806838801855214406610253951106747707088409979681253232141536294426038403151052417045246310654369557778698744664766648496205938704994858311956814315682891313611629198992629709408551332126167796864810628822340256503696263960078654118369683871620738794500563660725210195512289972675439531063755144904415999128730499419611987259113500553088631717279968174599479261584158758521298855498956619999313283896393940304807172994025395206636880391210384441239361726059156499172642664928137659843708602949074771972627843531403002416405784368219365053743807117660950082232975387682085986178002034988290433502118409660345580197317299511049541079665309718534235513844578787899894966810662341705946274621656344400482174377233792444914930024549024519341337709293199754019003436206936980173356043543301140960005755462067125059493147077782928129504929326966186423879241902295844235826626302121676122736965901496606818561414503854217625622760514751029840868322387164963806817430191105495152823174352628400712551998562976020046995217264412800714977161618960934099626712733227708591279519271284048166547776328453974462462177581245685002854305010429708056387210879705655937788128633891260153720096667831144627515209949249792068271935715849560765755502934214548213354219232042241128598969015963856642783917908618728500236774454390514387268895944554390747950238570701303508587484143541636583484867577473723878852452453373276803142190652363092631505459888176039482054699239804500444396929319064117957065306804951064520251242866166417816506740964080654828676252621276437840380676990287571912258292812231947355518800644283398263383816025069412451139491124651420330432810153097341480336705584835058407859164568578591372676779529218489484879188523921470898400256979487582867478130360954925912141092839101576982949711803385446943277499043533272478965692293080158174580988041262955013199902443382360105687352908345662857910054127860422475478300006030922840986782091115977822239476123890696753302679287669632434995100277062572128906604668103038842080494580524117950664116241159307253184485120694213957539210487238647506690866387694708837948990998730933645915491019927504649656408702287510354932450869078328006934776997071690218874557537375307870909599678406526580459008559180536728902051404987292345473495150119834363924288705921041222170348967608824555264068546695668486737306177457081120422776899343416505799476608583264520005751990826194549602466231718828380469555092137974874791457119995931268471116439778801870239140001857169052273293738486684059080213889270545140302163502045689066641455786377620783644488198077818812885382005733183014035792255461039793228148006358447086750641743759715016350830108399994316943851485596017462008597290154478909451191669258116642260612958881970000543457960291956565444259805487352372744822057394710609030317786018908724941652508689891399765913201912577809501152256681227828384774814274629642509796242817846626655089760842115004444535808767215492714730023749930610475837621353261364255711667086054769327525178830512996484028183452180989542832480126312646422472871773605438904190478123234398720459110895868360725950664510569742235602041003131460606211169937717362567135519624152553141039732443337166427167060489147672740958423553329165941653908477913206285177082532798997248427029402157705624244373670592349338416741889966044511419759773225100801615933374506930093018456394519839033904064674237705617690027904785248529623872333000348893260877604148353705311470166191906723924665994517037397252012948291744491908258578875967418847164951198847978502292251113850991111632511475008277732185686317845979983666237008909393390048145645906860996927869338288470335608063768458571557728371325358671211583205806310816044305576209734937221647051201659756869122357562303089968029765307514128026867879015933087152230681047341477431041466172046739749793163714672638914211133096994999423006308083594372962727600052811777330841243178721315766081123005474995857177977288874555164495188775071460120807537033179590816231318314176422783568311320745176610240584205197053931899899752430027431630729719259329789825758312007224872004729675434724980221287445825467586264309726404483353020086477172220131498378762304793991364206192647946535380039046073308246413085002665117531278157550837029954969048611038060826755161313798527517346240575559774524863101149384042828923585652216679724031263564577987185024861270685059805148312279759264877181600089180289308766245167042879615981820756063227776215634063567814524882975512012751946348230016783816895279837666309090347554270414041569979141006542162652269756616939832677882180729763888048765627428768118232246309551172151514018550857794160254615726887607921830124608516938150592473243632212758505106248679860732132414541540516388430371531778376433448033567662892642227294659404354789773707412441162612432462231909890416594228394132003650871131944241648638002637999988334391884296733462163946155821360682634001374937407270093469887399876326255056591483819686985218224855031514788982101548247746039033229894442186491978279180867692658410320052472267630253490671445212585514684546270218001023822284794986111198241223407344038774433512319043313142973578214236160424008603506114657238123054173724198304447001568398033599782314593960082866438213088776028175788445597286252519391590368186770097137007219666883470213363129324552932986892814976652801130968446117808086073689705669766488046140852249071652798361839126019541924550353888506528281027843010510167725574447295546144234483174114633789374576561278588674471823039138736382585658818884820242797113494729877389317278079063953275330119707003762112964094960491050815721433969263004141374630850222253065105180955724755235396753199748972794058967653260337136051128224795241032228003640385591262474136974360629942892892815254502695284635505314070628248774288366682130044284931532594464388851942854571486182243275918724286188895842170221306036967119793498428853449712894481603762601683894683674396973944985177056303239490688321934568903549531893673677829678392585493877499818991059888539883262436168866226890070037840965122335910764432720615047407909585729148936382892767352667312084157644799010732506435184197405985666390198099766908609414309070265925226822917432214596511032602767971341299576347039572771509517419682137440138413676407079121506310098624206552076267830650644225306938306579438432444972518539310813877441476345433534045303414730823412322788259929610071889563368811932150486114741804064832516352812688842077196832813412702331260852121280782271238464304343953623654138468188240185982187195770580639405697088646105432547254104546721584454891988002971216521457057866483295401724533430125885270651003273016585705257394003340849107590195502010241097092559813440711969289347213580818482688692941293798596289940839407083888021755103434219872447095553940625201003967508238924613613334557152085531991679207570005063722570369975870159371355985294409800629899025985346094056277016204338284157167774024684254536019129271145794111969677252722250676145060907594175456003349863819570213041396678867034141357778308922452825089943307087261475180583754023847881987549846850741509225878378396142855960305582637570995355276798969143191362319170398810381125448017468886420943162464318163606137105848634411475866944109833499594508837822684269425586869707410202211982956659932281894418525785509648344522651454153919399445160489256830869478295984344025423459823056976003229097891470926250168392539245113243541341259163191855407186279752663553371763401117713281127173696940690032496777134774668223671802038256207323348132213350231375389403842893640160783639631801116210533686514777374650086345677531302242524237263793725844547451470727921825690881852874811347903514612856487274195208880390016648992638823753696670812266745371579368440751792163792270348908844609224565221921694955217559549656586127507952586251096494726232977614846075731555839332793367557368718523284481944209421926502821557148470826160483952562881488435225957783496366033293680349776948161422113636133664769667915161716297665805744147121689038741528621975345052992104876343658801547173032639631682063348555634007814910744653811607626039761228749552199283940754086830683426324926870957542513901198332920486854110235546937231450995602684705445859056644115618766160786212320283623741122420496835589273072190129387519332954554402749556387465942966725900435858805912237184147067110848571328776011871992349311309309439488584617935557724372192599554010170791457599835068671783400167311718592355968576510811828172286502062688235748339420717835878617357010188210994146638210848070351505074118738255523814058219705265134423526289793995823636051673435800821744357784222555238369641072725861910941432608546116111817683946914860450881723536718087702242808517672965899321276682655203360755778873608628259578782786175304788492613627452485481570144641467461027411599338517604258471004885765215681766875991863474971791354813535610803244751902056646121174254941085133003940289699249021027930703082420997869558399077722525057514881639483351960115511721771284896068216706310961112537528120457114996735104548932588496459099050975296499037296032079037017245350125330059859821231639452122081360947211154110812746189046166498463912146318894389062580111799941732705548392897145642046241705938176917332187307834124077202121063985742072736844558353084455101706707135002762236997888879843752854667964904139631167516928035699969983724437438910463651710448503350668116209834824731009124878565597014985258136285177248707081714128706389419374514695885074471630538324366526846465631013505909914481815699901294270297255104992691681164120613588675508407915903812095310757567704265122543905959361294263721130220495004478681476695407087713379791142153842883918475776405512572118706108052408307451193113927409671955746160268696843736190344405955986744243321134123686855380948341232702916805650533829723580550720698832791760962168020150000274998988512263588089001036737162342897690746336637916924703744239133208565442211716881319984011197326714147509036007156019396428940822108272692310108540555784066440771108113998861422969793476848347389341169457800631671416934367640252940921420971946945443918087001977485999012197848536424266396003388107788993113054093722154789985676228859686528583909412736835502457597327441869712533156743145683707152353712459154715897049668305861880359306942843705467146708110296514329606990515004956024771026803053881278107912989842814015629064162867965360130703186979303560733925286263486694663086414644586207491264958321864382596677345824811175570487402485392756019709705738141860616484901379922536843460690513297251329633366449726233580314945114852732267331371424634941827501026877642673350299339507165270468352866105891722017540189857223879442153693825074688696185494482445421516959250983056203374321930515812046720825825237437498540131126063763798923384522874003147434389642761230268034565609257390848482136608265692501160059315011229182265082252310619762558763715971307212133449514373134767680187078609810552524167365247696709985823826462652694815961120759568939710289901084624861284880612099057242330140896897677223578316763496175274310755425280388824229029260611863458102154369361543554404628908905130309115744539467171845697612274341862078038484373991076988870629924432977600220841624966915930751652506957971953505868901439393900737372334430219131320841455142751913037364686929728122577269271632400122084337525705738889475865570080269217281435498485881459295659248468715040495253164880476416214689385296360191196087713153532190884531296777734847697766886305133069501459365599624484320879653850641868459189425377674906815134493146577580184257532434978091839190306532417117475855134561240895613734560174354728647224425773849177371147709554806846713356309015914010054347746961603936366376513257226760720684321200661879665906532514249958957560867598798894509830969252720990020697390042685691705085581003125902595251843778857859925750621218987036131144324597298621073405025826516508972942691947189811658815167518404626833143686690250624083105804289954603984187542260760695801354615640383399068295176955240986226540053042718841689739051515980436166284860359865204672587321894375744386002939990095260824808586664469190793774921863432152651824683854834799983625228621890315078783959032340169750460968789735469181002876709619902580747664826313665156547350848891147215710665003237713837505281808602766799368036515402634459550230427017623824896280362134431071597411386550548151663521550821752963246250004412447160645581401298082274164989103835544243295122025989763203403493501740066764156380003303909419365053854809885504483150705701762094285288874083099120575530519099469829426884311783347891870911386299125975265539895926937961895319318390179801120866013046995246006716368190657608448063656181477192174770406390643387448945405796002818924555378593561697469817342712529637846507928202118809127676053338760667537192978369059881733034419937527052792556101836471088606887599367224558326902533609632113116703530214362435246456793409802275541766903353352333227573270541826047804135465547633757738285137572587907716423043087432857557358153579887417040416473548617899946573072238048339128835449944416203305362829693840579972463115107535418684755142536837089286410284403266844749577132960087666875934785898293377609219844592923219877954296404685037992110848378517470926636156339087478754685647538949104181444315848866521232295368341618662131777260156888268923552136761409665662208159932874515112811605159027270273487307736527239774856393006857749071151142917318118424868033329608549890163799662150515392400440413176795317538151439724692961306414882490612240595319074811718206467701744295537209767700868953833026903046010112549195314902241871925434573768934837969177952816454934858214983217565243867975375756496531535358088422091941279312992476087766121064528318244750951824792512050679205147464604288519863542119755177641177954979873227137848543445408351459490273295287123192699540965916982276766459901625044184629593023032284459443613819093874444948517928732706306562284124581498924671761462489468158057260922581495517119491466329642629507154005641579471250995380289962397104653517469917664683561753486647765206403597373730933633575124012694533003281402169921881903919828113882333587784838460104440402349578031321393258039324941898292715934600435249964329491282389112214389671303644597355106965593792122913127613840875684001053279072600348550474143905807017302309475531436121543175897065275947800834832844800180602966699284498677796814632219470995563250826049453334172970516468060344247626913443727544370667825805715504214131880424780658948391099223555857318073546107009578833713575982602761442383884918340921333313499517483330805830589356171422918272192229139910621444732746950879472289413420061649955176459544239725456470762501486324518595831107428616861017550636636406316482141336601262049823914134297936090133474326049320684937308957407572875326016454912914515684905619610623378562872002723127140600670775866178862880112286194978669696857503430931212996446433172331840636370666881727117809598508789240870532097404715966921446148032646108934778471468280249849983565833030702930408311564687426950967915669660345747981078150089808937379451216654463783390528795927490448220877708796966006219871044161384591605335355171823872684191637407185575928217638740792090401947339678814874384108086987271701016165320624409046034981746633114406838936962575304207707857322071387079613082185505115838425897651809438475092387448260035906852293485407948515267395007688819767724237258569500712908953961229622212901128383846800465028741201818591743304120476309674644209257154581438601354717740408725419308538815476461502977818401691323322722034673478078163371882787945415387143253255436309209496184773027458286058319819475845517983986463129986947602929594474126642521213765365085152722303083832221343622571996774827463213765652385265570186872295293110069499381402782239212800460711715655349472657759247669903411804155096362487359147357510931457516057388358015745469489278864878278285840093202011296479909119148860658315501531832216331523536281419069507935410436009524317067479636485667923615268033031769071331150722570566696798754279255892631993736754924813066038324061850055777708353180688641528216526376701422703221202902405528963994908921633026991100518675887525075802640759116333535526294284701269199641387974822781062629469195688777426587781794714857437336372864539209609299570438208676583369193732937698368856899776364532074674022410105350477289446174667500867905513376948291231171975829443399610128291036818665182639123549285512663028728723159516506400158495959220576464288565934681703822515216183347047075951457635469817602600783092210022274594372885316567293065959685243146044407706092390338815136817785565052213547143827335158765323648774635451465346841561849122626247949259372824438931076591223125636343430006245814894122616368938310471531793697997154751601599502446603083057752512531929257223067129784585243410226721905997251255710865970843940952164963504903819248474855291066301348628924466042328663637880883101904581419646047247247316781084530536716202886588725540794699631584676200013718923858455094374109415676426166860461722404078056746177704968873556162344047145693290153867476425322481086267237798807281071800900911360712191791618835832122109829318195839133505125083912013152127891715927922926225371705031825846916611237851648600403995603858404078280944652503107484582819678344133923705411407366272416412898995510950413769585951569568479458543726684514376380285398713519646608649295905903917140354460107956220754849695072009907375302415279485383981514709610202610091117641631918642017994778937673050966543013139503636229341894713410526655638110743349404972677341186349598117059464534635508700037699574864368683316942400244488413498621924357810988157487852062024612925607273212555320405584719981635515205315297796911050814831041445907571085705314307945637652555375917290355303800413830467634019290572548442550342185969838909476425142787099470816281696332840397475422765692461282864690518330754990296582008635958408744158752974970059992458833912912418442712781705510815473230873197376085888207040252911172048419032534543989391614421279025392070854769296667642504851802867609781306298615576987542865782201890591873457994728259948677500932326972044075097430376332250061463825898403705251383903555535961827839413499735741550014562852505647526165820890823784710122762899979237478546887924275599579647641270236899391873676508845912695250422859165425065529088927309108742231231452099072798680789519823732927603301972021826133975779103536402752454277791000159924902859961712345541995239218293249387832986594310310630166180761715731157425426497047781253292138737899840447495354037506806655211586659118560681132083355183369495566504460224800095684987921606735355369607106859432030434072061261489543229236445930815026231408950343996341452662450058476358777889581029282729098956087641666211238619328574576076654622972518398150068663189181692596071061916008778936377250769306007389728686917825662888010328740563597022871392320629082178824869484274936287988830155207670603646051546430185915249605287624622082101146759810853272590653859150322950317843757901660184806607659445713820176521189145085309881517859098778885062765432853988346621031102101310829363597352398908372861664584613718031535428674228713147825925645842812298189678527624521429510585603130381447591263369464608161333903207160080210134701574245713015292398434405187802939190581896397209060496710285420151048609445908196080699608161504175254213647951904987673260152705612047027094687026269201915653567732470601560894775208082174284327323542573104071690613468136470884447159249566453679154682795232717226078929803174729729393372022818927656372863416294305566123248695636935061112278080051906557086680140228317201746781478418914817405353261533126491288436657423364809631760764808046752307329020495117618393069196213666758686977149228865409217793386018289222298057726220563299817970198998873740471251821568988893854936350242343605839838905645976358004180944366809821364166608456207800923748923834864452042508474363284564321486941847483934068127900336752702756792802663822352227916966179330460033102097367537131554350836137940616645361674647408398621812890442407652066253941783047282778852463156910312362396677446626475964639852152203515291763078952537929735930170635517183039772580300665274052106131091661703943394360294824397405998564139802250138265809949619692015227230924269051509552467352015292465481852869148389307432170578958253579079971187802660911804707230915763897404569807544800974470354388913995238008061284507024142762920980850826134351894487522614518950964967005109046378961183510693310986362020363736581376097371626827179042391675475454099417250671752515683690525644222403249689381082189673322640365253794733434315174158131854625210416344201661206669330173949915677107294553699317681678973182917546634856587068797627303071989246937550101620296769803723948784722540933392182903902364421336281477861281345751500498215643833560891243289012856426025212182102726361079275804569516663476790933163850002472201614838245886846044244039873276076445523256640992968305423113694311872842816477432227282928002189353208848706561196178705039755623572965054786113107160029313699891144807990479906973579028227241086333130152587500174570982627515309440915005927095560988362954370978540703973926686085577084760383277712994941855655039622450544484364421959303034785707840538938101200523920347546444734750570199726961666836541570247474059997718059826673859056674971360810411129850466465542645602376132422598364043196133380346891311578900224238235819641178895737728613090014075400401431997943763733964476966094971942034756525770746435138082486404974071054044735512691715991731673607389750473322945679042771586074347415775328691572920516994508803381717145866705993931369669771939493199316609895573062998993295028748831234761516573684077650775934759393939958278205674465012366186558150285880829210010201233875565069878308694657774297280894289328954397430053739706944526108473922102382277254570255337030589535329607369139400949356353731360673939384543004807983092821320125421406625244847482599221064004216849281144078743812859497777279031301636482308062148957954040487415488349627389052520858243613305990570108270806995768444129156438615924679120088396507301017745204553257951963341545656787491245329235177084582426349288910824284024231872275951093245697901563914151599085508300083683946572524573054437083636774564288582852850696515090764181654992184100497291649584219393897013909760527854368161544645294820668964716161421047649155399100702558258491797853804807726834814218867438514129167085459922255148600964415990299344049793613941240553487008453284865280534995410015000907877863715498495767066717594168532981378089790683300854103845300419279694410469293335741859999174392053977830545744591673447824506474421725138671153012975774006966224871242221958792379248195724934503610930437951787911738367009698010273268830768807503774098359883015987251960054280028195556506076277526717282832350545043870416910747949483076740757103097200084799736544372332458096454630279036283844224376994714316881486218907883872245015313666794819176139373960540602561005151388038201659789962799205771483082936318619760431555292451403402915130980012309920353117251392430606632813340791723648878654435506370972399567381421018449690484474878106974568895922858414371653923466045207913512481591900172433444189614240924229726838308972412797017029343193713867404779520105095663524692721732743063825592935113098298200153728073000064704588004538992086336426918743064733155148576508723822122965175565519675972220026037392479888969269892241115786180534210463321599217727661220799550116332961652255667131330433038569180452608590472357053994915355137700221807131608224511745773039935082637587851680401798688603380300940924523106889394286113478716816850640201433620018922489763088898377330231332695204988970212179481787785313724738537229867602299077141167868650615504027638660373473344503574628154521045619323013406478386476906768177233131625135215818542510337625539051021492157801024387484292253721478760576696559005772715754433368895551183687000288526114695240268613766277232374416376867459244418057834294165303174863137013969359640011235873188569918630954982218660175188558779921172332130099991535570111777139222738397569250872887429899302077030590350991481226773266679628131980102816535813782183569702793514578693988402937034665312845144143601248679987963959150871306171860612508805003915041199168874635489610336920360630705313325155389474472762102604823793124711500701919973973060154748749438628850077849183679076106348759221076809310728597117568972566272725628314076790405453969362141487596274587197855917166600219789441586080666785907327191819387536788903705129677637966499031642812528426488890714561307703835282982269654236018538666664392302705018546542527659196425251187620347789762930374347611147193373514933568391704950931070211382845935695562772541206653975940474292820108751568739271237756967364746609531623412725082810341212922428699581234115722506631951251549925871792227023720106028361054373741648437746375319882408289464154439599329073954791018202630752365502884263945706708916078855506291247768784591321765836457941711427171155797437233975765154461018754233253255840567772114382970104260176902826842571973405729634798749149323220409697867204989926232856921519973964065679484458557837929684338342535882512856316380299768110734195191653222458566698121413387300449979709160429682660285276763916297028102428995711226141151319577865093357961411933099449310376324198041198047436526057381532743037224355738293391627582512623309641908159803374446928255477346086637915511617012538170916990943954839752182733949672052976115783334376076442398734128784629028627310660098943692750063031740628022287839063431470305374452229889391091838264819781770296728659408235705452588943024692088917878723794171222111194966238931779660804852218689564264547089417719586853978477792565418605709128409988291433258998530912145090454566163517310819240003046282988268088657828272638334660868879691836174554317208264362205148164499820907919493601383277762245207359096100244233864774391047071117640978616733196830854258409822790292710792099617293759997938188845386809827474585868985569109409960269541130714519569517391514069771116250247687488803906596337501588214452970165993862736689260118838494952167644768045262199847143094798442253918540419502068048324779551012945409032322570277473088073865022393115622500372491729199960100384664995974458962433455962109237853214539383248948761801262808103711641791619774485205979770066873180909602503500037942555953893953234567022247933420091772313894242605664642624966574714499397709426421427857462759461913144638355429457423607933495354247177981972110816537929997979215384171359011826271728889440241325758320763600663609759876911441406942370411447147012339510015432298760222607193340633779503694780105334828861315027320590112522195446820607832297338280691676814152543297231871636020122741664742672743114324467865248273293343556610472483259632870043404989369610268533371016734720036054058356711329350919714524646034668455540985450528557568677289941106764504675583440611389717372568957242370072226482152293148081195866136946446510254055771649726921775762601302510576300944963909513642775233537171857983796039308867968263797142600140567743380950958169503574117280773973037763606040949606247513653164140598621474114188367781622876419506778874043179634575993997342051769777893887825898710573633916452914132384796519203135614019101931133231206062711726748788167001165537102525499877071774872972979800576266805604897580558957212323580317168858861816984780236038728127150116841208010203861707321173984935908887066083301970142039750443438753659188372273938113613733540268182859807961086198609039133225660706119788680621677175965976415408428945506904173960075367918519396466201484069499844805532519295791947189026185550692805651960822974115920601274396637066256120651917411940034771417124613268805141974643749563994593358769740846734554848402303301192837109004167439706719386955433471595024619234483006319518704600037490504632492042583611393977184300917321085611456624920537220011475352317207978044268842317409951179134742365585098826349110337274239225430691270478891597915327000799163513586712577541452074484112015007941657804732040016136532262764387441101810871148851091132233964490737186969930820541160300516098500978991440182965634961870310587355739309699366780182950715828332672832504451296441938471572777069567183213051154891550785401481264121496554016312456225786895080028928671210583635402328147379230223532113214145864758237481882715448835356902351497758812233281101870793747544226104211038421931094432350806748501952863104344261040706397719897799348491969905811288078494743085923227295214335733995185711074599609274851896732831751976256722289640555586150820628991393185314133713931039366111268838449746274536927907918276099596335234940017199618518907442524310393017946964499699987447144698060392554624596262649620583604369197651476414721359067718823968678764935835606580926594929226870608076268422718802929688422005660657061671639035607620906666439012624032245646342312573495804650354872855953063915595354824819139766159658853398627975130997127468548507291683903791229875883932817500423876194846830347013555319227575686238115995069163799632520741284708224337441513238325437469894986188603736524750323793843805136649947076218190511077231783129673379219299720433458447742827500635252181552445586809945310772124901932217005935329022288312061011694062798531079503188483064107332505004120274762569745527892955787762310749101676744950406357604412556557240865103627140204152192763199723887366679255164119115720998169096045379034631434155174113515918425580717754529489948000901353815513403227385589556606258086010622026992328916097066443181479924577625568034664513517437880618581659952029182054049268417677244410657555869697591222893874580025026035503476216368759699055247740455066758690978397241335896783027102890963340924819493282372872003487310644030295918134261374950591191006945142511493160909337692449764586568132569114069772756981883283718553506884476575581792693462734612010486894825745829099774019963522931942099396408641054789989694532994229771947891310887201098854343976991648320236913737949278695146038321644986521600944976708583283943879248781270823127908601499516904653471879543586420458194921037322797910280011104443787361974872828935570318279928231486434334144865764028330582237121383579940842691974459084659246715037788161381980891838838667498762274369435071061283480967644297222162941473749435880428809270165106826911381659583296187872755847638683873515122368224521401391309071223479180461351306107407642836480923012435931717300102641473773897259688900540528094612591726097079612193610553003029067569972003987324873540284309026679792571894403092454800639929572208833401261612018136622054570962295889514987838764199265904212658703686310054431063704194542462211484609151807488592126154375049775786323859496204289507121481008793525209765506384854691986580383167435674088637697280499244184688932446894935985726321115321727149364321644094407959243309802019840771935069293836519609616733127531555738427087133389575064111062825381770815460944824543469597071177558738515334991741034638102816541635149148489529675489994946073671576753666257883536065075803265920069583004396451628779490343963629508112622194931607623791540592023161444421885848687146116215008000097515171041760078759941522877542575138500969887881521641977536837376026358213022942262891138340511792650403153880492321172890718557340414647961019739827443248941296943355036437147873684174247357766812625457883844386176097520158232707684428199815089779048605897686674295114474287347295479989648787783196466618208458367192681722441257044597937465622584779303588656811491261540046662546981747697198572461415247382415488213448710917483400385791605689169450679644506694778816416896133719244495915112176586965594080250557832529489988156472375672419428828814751601181959256706576838825165670048206568045198296891413216475338342775705090179562149330245191118713831381138472551542234788024600631476968356342385905508147970936595657651530086677897842071093479661394460892141694399105476510816840895891409055495974072728291693016314287407798047036002161872919786905629990818948695025572286909738965024268342438117685632668358384308946800923940186957403769265918412578612287597645236695435259011744727271735497963096447791570931578182092601830954191166026325497114019873016178981958791386425819084625464987085236727769360619398751769738783383279930586540642627691513700631769836402262332144056023733555857055438855959292641617525521651720456332594323951235946862887505964715034763451458236442166874006117442137391383614996008181317853417913150811172052241225861520864725436622275267742093110720496511865524404871991475612934693036900396152796775569462776028571267791481351624408064984901446040685628530282559418348458331086891861862689129022298886629927732334431760024972394630288708731929693493785688088857578929560758358246250860768731421793102905605360174887364869617488217107869891140881074473822949419573017284111722644387753460617053199782822089799052312857649824461933378723552550175154704277231813614880928368856986804391697207544533469235660035218512256689493289226739661644454858146802016007375593003648424533562094169219303752913714813565606346485903500492761119774209742886432973216000424317537145871720866810423838039915345101649800391705229936162417159501456583884541847093633661921984063666273488462957544853971561025512431296311821487689673166413455999829304194179433792396274092267167393138184856017849196402460147422404137187201847121061645909754366693048881061658546468842846627482583740922100016005532114948082627634694968593639729628422765465602436197183106354681527053170675684316532029858048774750975669825804979867551679024253162291422556489694068593162773444919250541235671336144247853885584741302759136711927723400994056576798305118405642182913048020079470059393664831582676032966896685525344695102456216022654029333649447899247076201150532298847144821234993307772370336078114370850658009579916024388662450918898660144157834331394449139361522377957371271821894893095943817522090900871655341032985128879345737926821783387444169133455195420065250033360607029146892693791069640672074364319209005789950428485071797669161911464637100390809448010985804350323287303164527949389157371034720374989996241536597121917558026601657522242696508911537335309707377676934484367049839804732599040245263747457611162398960728505559648036391491541273738044503472567710518828280113450492288546520409917112065835625790390986941200447398869168968191758353367427885541049082482985849908919285016453052881979273189337223290228803545449320210847369064400632751225527077018324043945266033750852943017242033414182268710729682134806758574812504353673684741992298433749839511896079827409451643386315694436373434429411982844061571788361479587502430546912280546055095654000850125263462678100970134835179174019052836400006290146661102422137453269684697757553346480708945343466752263728151188275156412766801746965153582357947454156871072766005877854740814311599016351454281580440144323116052685322457843723296539317368954268337276316316224859361657295854721715053480930811481819795798836077317872038987903585697972040821277461750767243374235745449703313906158461091656140642521122049815568477673668780753725318295277544320471323187906348810509285189169406602683242439990442000619990395744361857418608522565409862962392395051513102535554822291318181924134970936582896517151964595175490322489369225076858957351523790893075893982899703979537234624246883708400303529325349826676684529001057960811891397906029488797621121826100710045437433214701747567522146996427173504469317340894592250075050302730088680352397623653181479225517324065219566578463746058411849269863136471866952610166780970521934294318735983642296324695683023308244118313677106435963281526935244239748113922122713007501777064529720031326159098293038564257228649882624484786089204509337477133220121711434651625985960215306752528546164871858986088060680594523224371860530295843955956288082723141674691849463524418387340288840361420142797955467538755144950702916912186449514072354763670681580954899785506625775952259676070716166692432311394478942573913899981640461242982304640230104786898507176497268375930379707170579508990927878553572462098599386925501893768579450176689472884381511892206663216551278787611031521958666995389774890463844778928079105254769804854845578234497637654291268625246099926115036172874315468550412954942880318540795876412360236276863958432634704328957238870087121476674301295632475384211754610750833295778603766525922962068152978048212458688997193757250970114617077497413500764744830585548966334670385385203288409086102960933164968472722784038865140723591969818689835008952892286109184277032220033571751416713226672909463683670491847609050737632497952287654676538775228772167955064864470016362780169246583488467182423806326709626158243203107992548379648240018760336928916746551342838869716717239505220502526703543393077315988788140739473159859771068997889819577787701443948442809810786917939190722729216253036212704948951014402120820874603917694866585353683100612733431691901741344239067246665091581305723893922319940301264038167564342685844570307164801848266133715914787164750819896678980345508578945679910182018843686807182867148886977807070502392797113034084874987676338543079991363259272461853205097216670816321356861159097328400472911350987747714387839826502393769888670063013818085044480849074319695679448381051190447059186774958025221848674591238903165056958141258758961367967096286628454664196831932065875152206223878527078912443914963857007090597042454519275264716598978663721112927741094961458013811602120135194276003407301859955497669601107380941235476586931219943150924000454731260631129276712041464366410904504844703451895560971719902383932312768835186984278407124745375102204619053262929099409788378496855725860677109728192577822551016081661012294896625508301292573412607787412688165975708227411313142710994770806288592184688767342590844803800402422602361656316504924295692859414267804568173533898382349733783315124647240561013318388752788273490635524860721200482719740119650086816556914427523091290718492506611833725763673041114840788891276975088938850864234979659816923727801399496531574402875360185059876308238789304254166612185904256790563882655693472206679022469181420494266365171994514896142452439064818179278040506308464741875723530979987564829092437660960219673193704185219062716540077471575730029935006062937220695895372921977502664552658512198352419590590592739626042581101583684948627843634358633616275632782371329804854925116039370966957436443003852926190222255965112215446154521208909351509446457578314485177051062512237507940958077648888107452430459439196744016352609159886137061640431069386542637500108536798884005322223253981180921606805878518221010889434752429243109553487249699394591641271818754430666379521825029562548714224380560850307719365583450399597757118156346534897636162348384578687895580356686297255111108939592175969125869116640806182944858329944622250235256437509559697900750506431546943103014495500602810365042081453109235267133438109471017611032305161836461578501312929984726684852724861959365633636839636475617203200728823879377682710923542403679845346264632480800132091293379648238588841098914098600717511060967245633672359485835789170865069586695619768306051979559094063308223325402386218832031128367781278380958910831545049378229104347994486275641511231897438029014311596381210588916507090244540861764809701046143351955575918032422078472764619605963331469751747067933570243703677282060218853403303761664302751188032466972610645154430958101670210437644272467614784394740959269038442883067603199170119879572568154932752850134588104418783278092489765622341626091097811093603045550621012172669159813581022160743090707509800537497917741228129535067918325466859204039987159218086893089946040993184603452681489584122622898458219786572694591919455371211439125150195996021261907290367370286374770524955874871980957609390290287589696499539661535002344716240546986415856500010213249968936538917013933782269310368671539685160666233652093495486345083793656897851338662692821435319458192385863495769089286007952572077517418084993031369318520855574444865426052013688778193854181519473575652693623735330617153947239126040166397462662137184566397945249732004935977096831604916527020905847408989799600945702923822091347318642938584886381092563703549370321752596277939374310258506952350150838769068981591535752330975627403492849020225856662033760444257849533266769405412163339155762402492641398098360917293976298952814888634018301374590895683313887920257330964506141435845074189676527787205351234584824313856296176849071817696937586956033326899321328537113824853236985068704105268956028095421790666716609935840856378649905285538359895586994120861955620235524653673871348211794330498604603625402284088979396150731827687001412683096632472434902247663969122671704083357029720121212571895027921806976901059572691623332478242760950488230777999228754385711582425232697476674385429317460228235001282645472403363260380853563818769377291563479125939465635950969183188697299940046190756281511057626984979516109032576763436744337947371242743072052494162589115451615652318027969705468154458684978778337006511999092847013456701190676057632221150544515998664457842983728259361730571247798328771140406474855146419019357687035364543452802612435713106811706845723276450712171673207605629319453855643933430257968593913155757376408493391839079430276194033677619677984814574923959188049536074937886640743960858895730841879614008742387570988093029482392426446303688221904108747072584939669251201125832433752774968752693193425265943702308177446718500817264990430949212657450049851574654931938932954519131815017160700191919298746144493675130786682629362658115576857390893962633119345235299267234298598343961692046132339185475484643718402135613462710811732547540455502486436970914245671896930630377412225685616448359262059210337809723429973602142059573304712861223739854754447135046855348400012357423452752330280912977350525484156736788971379813486187388501598609575805645546299219266531320048665946180909683721956379869543878891167584704252846370299462984039312722276793295800026857800078622733572230142051644487671159529197292712684071810394920006661708290548225919990791126216935234029466929697274051294168421337801391497587388007773460170961467449591279631782564198610321240597912200812348028706928745562188866332126414908563031520778441067081046141468549863605574701696338962060048927567671545382030267141814163600495633088693938447020482238448802427226732122580918396952189459422282331897732967410921309591119145729246381713455620634662623802094240775816560180652714916758074770207233595799734893115898074138142927843041372856052729445823690191186709122303281563307526921038762805439740114390351791872114009933116054176887220805142447411862735833998844581661865711924155965893892965178451474083959769335937875963244223056122944961362672263484573938601590768369868073832305607200454500955043068307555290445920120560672260116942420995876191325707200102368423302773619626448844773290449954747618784936565834551728413123373915821590011544151390357605079895650647176652734557032135564831254528964021411531560238714464420112097337193006413161641227992832754358995460558302355701071054191163097950487173496149088267886716799289304195376326286290949095882682016410976951955856171732173840818105271671450891578537042353396390342685076492879195526457317948450550255310019551317609859105242666695978249599173352132537010956015669177132260636084797098405443385685479302206711458734590084879901451419076614617781555966352392548437645698664815195015728896955765127899058878413418343781409080464208917112153556894255875698741711362167263370922502478375747026721420937618318993994821874645118540344748323840170587824634788302028725506112549730482520415656442976685777390640231293745016210378803084231899594128393332242755205296687191564913324939747682409907254653352469585743119369793269044029824540026054591669731941818257556557216298743905981679860316632630837375179465066609290375857998080142759719447522510200285151405154817615466881352572516410796904276415955672368285361740619417501571141237984381020574599219505645399960394911025207290789898698404392436393185634380324344196150907149153541351513692639332875710236880247088344317151883753617623616922320978956181083571893743597170712455171152696139653976669189161982065197146226941158187053413687709189445360987514441023042250023879038297453678302807042675359314963509878214357591464693095772481611437639589816734986459045533848881536310512567083791398981583122212554679108692125560622375363969288346052419673077568137375602067936037219651304190024953329174483586586852901951502708122177082693227602584151338734466355340145678112875129041969628950198115498284281359716417065536356299914491478515320536908717093975202517707857722770343427814163390865493131652691365787555206930799243943016049145481361911557290198865349085055979169528753033019363031957733279469220776775495738269595430363777174836433175831445426289405837101462283777568362571221647829869454469665491306910074903893476747428764547581946627592910941625169995038900401183920759547170772732898991232328252353139297351434023023734130042449793840927646544887956378945658523092492782704544372807342902549456633977428735577327763073812733427018171945867329555322646395742595004490724319784311792492172210520071764979934294889627855793192998632317086486858194811503517248700374702895189439957673412665088991224996310927182217832945788597325521202009848838368579453269757423676812100692822074483247584907241214202954157404991872007894004265612201286285969153820575115826071872945792713625126419324749408029816996278263462760592992203493375294055633592540314388294609277994411440340297281915129568324061277159432773320477312337587851526671714628156551804143496119095959985323051632998466833543488757218206805375424882084056107192896746400719530821441318230456570454672472198746918608469498234182618061885568318503182024458609381951344899487291310584786636446481822641979794469004331879404809379274817947492773306980072620180408067609331822768023759025636995241624671012380033765613305542221335860110617190225098712835056366792148210390093409836625628310512922005626284572345871347244764098101498206488685719461307051909198478665122936730950800331582107557728419430023011459690304280363719712021918041077079430233648863731579184799609407051022359762698940763622417659401147869622326840385554501324213121697810422439900532194912806481873963814960335049892524825649600512338356887930206025125242507310007766304470484714746688983472050763018808830157892352143680978005703953729286721008924678012969786471510953276678819866131785571217731769793530019638718854465313224238893122977464812262645461282792535866821588097236128243191089872208307687098365687145683319208854630651775163756482391096655095053897611904470075541875132114757883673272546959592632879369374020469378777027557653250425849895599533683307518385959615678214079139420202680869176711441942621540748413601934926116167220624074725844006314738654001046253435980124147665527849733941714835240650769590578532460803815442351432749448865188910892034801914022760196647223937491609659460414026714361922359616570890110634509233603309296580105539795462082709460051074919655465549053536904641266636096917226155507109132503124432599779156769497365460433582362324504969225419981996214263226022528584599878448102092120910208363617149480464701396761737709126781511677977334336539849254758426048833639771902260578276227659159852855470803961302551599908510414795823465744018404023368556546392180271792564357905504021659775742350087379769703214909243816536942996888274560130703590570352385299734514834733910867855126447234832956958800656454758767048288299511263026016393239327332926038401779438500050911064118610493647682796052735163189331306866301120690819116784403948251625228553247471130456525907364669406405813961398919165139871089449422351514912252368416897255925645090397952443468914538854717203304021462058602385013966569153534429284828288992744025804870633160316629761128504329437761076194519954253973784031879966249876545665239153606711105783830035528435723185246731878413748877230147228087433826707777627483793401023104894557155213690692254103801683276314815521316302281630719137218184727968326451185564021418567189644824673268337444934530837277379715187734274034051678956402580271280463766577146167835495060909706622504662880330023423109345718249059640066460931055559243325211988617072810568334481689886038527897900588767056162175882993586971995574466468528550304298029140350379252784940070977979477238211493224434303338020629531027858156789298658543655860158933446355528664434305991407144230762932883778044441012082141717357874951098345101533151532075090430403329367898223226053872064758260351040778504812152382961641235557487958488442731344818602004518542433946523126598252100804876710912080016879512803688024544063340146272281899998408425378802220334496556343394197041436911295469651314292264825302598399851381395880555359010124760600539827696120309291149987689539709049432476679378402606272794584051510973320387893990249060463989595207102335634355499036254880749810589599653946043204720380245322212368994112123122410424582734012729337987157670465344612737706265179105274951882751316275588138604970939155238732796118186202797480806274965891296935718657255298872658959914283650024062992804642750754167504118654687979899340289618275673131440989910748068577585536929763712189244608423397004156979288474253964877482869647744109030354149315178960030323000337970610530015890300471218510241408961881801003463883761784308343292909971797526526275236446866957489852509116912609544219991773013409413460851625421142302409020395034244052085152276744343197941705866567946009765472897566038106085403659682736412024172400335186542346318716377821731827350930691722046288759482081795118888156140512288185816759829427160505646171404541929772154897010141644569191490903356095287740154353609850871764622547662488156948038116938522664931477853013703395038422379830128496119917307525003925607600343661608791483613639356901000450325427530910073314930038344611351249001430836346864399500354210973639441096138729040077084033523320711667633525494272011653356571100100501949137006915365755411421659828403911671403002401335498063328972632084860691136467171654838138611712612061697445091797252278946939353525202519002000671668623721327927713496694614759865731530174350429927881528145705326631468000452741128996110050386217285284760923860828460608693600566620461745405341009358793497057592207217486761067341391849664972512615006580093396978856816649157034143664126455325842717882843522181026039534567333845269648725745011782158966569477463843443571718385019620942547787166247308616563635797509573279504409802738917283127171581745159681983268500926403931941774773100639501356864732119420159931307516481037725208042226470792544313408326822287230502230316070339451032311274025915827494354319881105347951319425503816679210600600401346709223724541161724406509382139740532719939467995880282396321752005150819314520793199411001913340378775572415000865736122685804462534252874471527943511300171200369312330619182337850592981071739209249077163555303639337514942964441908263550957849418815091314472034871009289915630380065151195512601268942355141252013014463593922573227839946424680550379424839070600496641494036239255569967766065782516165406800855774000904089756528989722264169268886980335708374283554709571997989444518859004918900183327669360370690273996491467569240863629843113168379517831080756705366681260389706642344727557799894034630493418652720312409852767774429898481022095879618402802070298155271818271011248189832870273900787460786079463474524551607837635879142561675894269680190757933741849318352126963107620984910816344354137667889241512480129563577050655663478127370112539922930084512608829434858703888709747441298909299489183106979362673800201688725309390184867795135241941959372680652186292411897945056417934049211553265184943384953702724722422677898168365808460801967692482726331590744748147147794746140302095312767672276003534344274809741311907537444514650693829863317322754746837399495252599748769631267944271399874048132000110325426620122615856528010912227389437443351312659292939451427938619666468945032437486974124362512834973445894611891628761055438205658920799746568278051679268014811783639492165490911324405377024234669470217894592404939512171807006496607777836160854409290688653073073177198708007875120659530905808476258198388426226153627164747501444157749572892631417583880049386641042853693131997876341229356291549416351407229305770269746096816996071929968138405912140634629386525909512784307869327153930407154917366183789659138223056960387542502611529425918653679663532352287322285262592260062397418557758698825834822978449212534761723607633372441818192609515118106764347358244761385677467199325083171338439901974780253989631434849108091869403123164875536885664264750089139144670272367615883884120302993932657919300628302036521970586545070164964761654493930343910118120291308057819672176760591334000420966593490423792690453891030395059857362232442262323309572963916889892799179073320077134642221943507778690625830120326276503807015648513784131380494492311428611389722470350074557900164140774839627161944879778554662494387246719143642001217426633977189620103573512545406589977022938295095980933043429407959630022992176390610201221432259488823192471125213523768253192885719144554795573088362238595061361349054287095065149060396684467000746511752658343147838145388581421271894057245711906628471535365625121520668063883203373304816246855593666938011121306621372804913477242295637776655233156239809138221005856829265864486221152448682774992700464542353186581941653768905173454334072263743702095783694220989097557463318586086425919109108241214329332079737741909959733163040359106195703692942107419978654971339020656141966632309270464961597289275737053624500916855356908135272888226710686515315668364112826940870669515637093623115270918391216837444108011502342154859434958234308146711510793792353651475596574091234202502368976465033543059008896121368340462454609697997966443667465343761076811052139688420419339801075636978609109985390169861906401269939056773131597454390386480082645260338094738324895497306471927365456898278279470506773403824710853898935059089898210810785164914786642459712344043749641949942951458457606881967297632389354619809877182518051114156000238025401825658097421391286532838284257124469858741675756122604757963841031901050833713183123669278738570867152227227943213431027746875404844669441401855711380312082689896573975928937492728717522372605354949878865740695048844079603081139000577743403027946490255565691012211330220400163162651212727582584733319644635844310682161785993160924519607856430434629520234224090500910862302483141983993290871044442031816346821148468784748358640539037662713675761509612723003326399672286855075082811720907190410305139533290048643614813490157938154437813707745362801095588853913944498074753562950641148965760726706403807529836107310216067974379299034914954813141965924203215395069881724100441358252399886763197638483139347458577668566574004778961005918695082126832809976297721496173785110019976202665891624365944532003379502985081867172307371916924221242607873663050163191723748843928916094510250238049139513473107828104025431623855946159569775902082220528225989044904434170620287633527733115868915898699091382202428398930589164318821673392203906946258896496340336110770373989336301471681587249106850963966220038647922747925166688248031437481095464531769402328584826156527573041945750993814361144114512932823326851169489897195269065539966821333740607489394964992897922588346617351172317184799233727773663746915469243534154668666053334822882946870888112991761963547609272508399079432455460837930900945544184058296423577636069404999097354771981497366076285820377266886335301044345664556357352812443336934149265246551684383814408194233684824923609736383581729903450800567378742610141914268063644394050565000299294920036073356912343229563883662718543026345269895677386868649550145418568708511667928710204246124158876545574327163553067995766895101659803070738252500907561719807358378748544797380606715153304866870840728456885469509593684185855858184753693621520834556645890407368434100100164391009221158404768383022764332033960729223913387789500366963011984608391391230040896629262965560655830214178413408926369119796013892041382322699673432637819081455880094659175460861525863035800184502576413846768674305427094420853437244251402462608832365070781924048862601909658316537277502637286138219118011899300422737353891315043219870400168600440190898141671359803539417662519288767485851309349626887327089225748445394519417009820004787818544342182965054469076383995214590654953339770135863093806711068902748324154732193411868050257990402583584425909674128017318246321692310378693152864764245501257967552865763886481733049144456081254608878166628353574729350150969861110757909192424082632463633906488575016904740828279756694111921258579673804294888348832368086387672551337759210250165714156344675916570861394164021442525794817686617761512504323988101421384238263248081885790001576604395315092125198918233088584337509511409544431757171946189509889890186792262818828258616956613708844426630972427869902390793790041024992522998936253405954247751786844767796407822807274668687740535486407847568795927910697569341855670630467612035269728900841259535466802516355838316272109479623266469214672232431310880396902492177525592465751215199764788309970109170634605308266480096077605092850188388995941504552048356115976203033232563707413429558133414330272578904772875641495746241594803875516614320217658044754906017018449925512513637935076630615290204446654721934998544153339516410392216004962252512449281986044445908277175445587203380808551856566410695416354075292266263552207313490943149737254896220804453217035109460702363661147410912214574977490384117480359479097349715235290629357880193816773617683625082380691377413560895972542135098513947350459834032477062822539555730053137534523910634706217025272789342591303220591386877879869994110288386881436343981883642553271317439529760195256679116479735125519757148743787974745234266253044895989603380040896184393292483612527435331080403195483592381750123067108722814543198086808422582148745918807508010468679722541007801523298458649489926691182084419167550155889696920760357333063169402613488445890265619877569580659073575289946141765043274559789418289283060938005091502080372856712895027022684879025787949792102413685306922537563727588122870397974386382582200470333265450349913703283404484136132759234301176049357852749603270686154750812722175266246349910250017284588577056807145523436591081370452442109901317879006176834849270487195933118624286849055008892777369436052450235022908393570853883003307500444238141232446706586806768945769605376789239298133431557728571256059148990756387395503206696365292255579771733812576443637691576327035865726745033053590024220790573428375537213106406666189172773961703612442755512885572129688889817554959883235876185688694448244306194990896802191970440664364973035517041987484661720224982064322574571327930737490561836689023439704129909288346326830949417017548381987837946477678619178242116556763935187875746244960462798096551061563094700086977110952816423201501952309067023743347517134115535012774594561305093016710670526036833111161099424921746702822798059749167501099896120670308690959905525745527761462046025206652632248831524468869514062642558961226309450434113719652559728539423336027427924784892355698642909594797156096880862065391712241408591430367766946427544431815374104943216104209977238213074930562454166307632921495754127859959411186618690385613987450710070506615158390277803052523607802199011216893753869562868296236107782431995559525453529455431479581814640806669827923803234814074649538523086391284304979704203314985201247670481339637878336243312004877580694131835955160847386583749202786342250473492121063053271587196386350741780024717704804946840140486047841827225310248379662026976748016588785502671601387742710891591759662713656459245976208928164509016333752448107179388205201456007180594213990259022018535266096932309693603474044410959101250563632512321835486496498698986479140715749402217927455198930580904208455854957501373271149797334782936819689270651896284196557511762747575586294484146219257306066484915049309441236477586326891632014743836604372181301701460110679904928093746400915554836215424872162175651293194571808695808735506407803768503187549979756939720185419574916242585211863196597352712110548658962295248317404676512588269313611277889852157030405897576762829918543391563461342507932529996625186922541400544293150458860653336905639303878344628505567123502492962488573763779533914019509025617587759708999911976544104496162174361112909357644444574092528602934437744462917297711878837641350985833910475766075358798636831729584156022561072116497427568737497640838569767405793641355870742049428674489270630640433729841245244551431797215691830438740416356002315068844288296267435331938379613071562544041611132124598918872883518566722573014570632226137868718738910276691126326018382935450843945028497476466087056433072553900917155274964294487945264950469452425405554453379163998923346171757517391264055242581494921353150282300082994799157676754628346271558092877372963079677863296760776893695877617438927169555925166416402264326952251103716585830496003401481612522570763927567909318645791127111122128654465952373256343392902854466643794567604537958356529387952651940311335734728924361622801078406635204812853567892490817568363540494784801163358431681899590957830934031797339690381160651127143909230310101754900577164990142704880537407682745317984061272187172091493718081980644367377712908214471531405772863660665523199676106476756787760996078556623196848863815987485009352870626494947477308973973099754323075494542628226692281704084533278972860754626195307732853911472061312868998351977884075957762603221308178622105512501084046025079986455808665787993921346240435662065880862836355607789258095379678852014594812537267830452691200183615350557300653677177157809552805167198741033671015034296372406773292202122582523956277802603585378480337173880407710261587204518086147576578828860459107431110775736200933132747917056308339987914555693297523628115086743805031336849313678647730321458865233428975795789689053058422515340634602955576568033765592597813971503878000163203973288135664458773860534734809216972279142135715224214217962193227968400468372061020485346525732529155185336203069219040820941798627630057402649381012214655269193342792789988592172403240758331170653487168099994239066042440839472357433197631094408410673235094113378536269205226982461259823550832541024359577125377019505575576316401182066294493770532685622015829907370967587453460928083678669397628539525103444446102927061768436340973040536099699355938585848276450836729055471640696284304891657458038038186339131460647745659495901365062240983597603844388902266543842999257379175325335252502929391622099073627532087940535636300280078816101633023380366984773753561586090593941624774783507318215486144806256941457115915678743429313800926832133760485886216582783141122335940884618042013427321683603050815034021426919785628838913754343296014330814515625476812396118148583887440520107854456217984278646346254724974768992455774979133959672553519515668172652940133567473616415967410472233001436579041998043828924985253415286406088405450491721307897933480401055286987829335716245572219719411688929701749880851791891144341580136656912276054085706464851923473115036615859040041328124167848674650088519701326821514667415028456056219218066544985454512887035229508821249881798460102492637635538848606980040201438869186367732439829541323137478083872253159187431402199774943723092362989236575838030199127539474262163119322174264389278543418190225234504870941338416768448191743177629516678138497770744159720923152774514393792820046949175909516809205365501617303706170010603851569178824675202259024790775087397856161896258515729608603412287475457206990726406220923605292084664355534211929457759564395228936756937951786479227102944751815817685810481192772300573775114555042459485633546483814124395260688984476584647566717142115033335771022014635033968350168367843714083755979506507828445165280961706967590918197856717398919350201284946736293154994748320742632280243713551655629402922060859848051208402337148696001903339935898076217313926163185753881284824103824872544650281799568483376246432139087017826106967554365761460545673808863297978519922489124375136256659864367731525058268117709339047910490709067219335310646308862787841048698068470010363537448737922403741423669837566331609295941150187438460211094563061278519504652421590352671100917605307725296785998204312896018037478880748278666717965660168348705814150188613325329738525940592313118458637120227168167982511359617012848600676541415162472155809130373051028709164128296431839837428959707231485445094003930958120122094568840731814529195074473610460954230624331402309393553486649320652933501656420172083910290814639967273499902646770955291225060461504801492019961382742057546126048080421561221433985638593112425523054906049635555173600714678058181201639408254782901006323684883598232039010096854649534576539361397938187025770659130129058281518057449430225165672647039814245192540397607122403711226415769584639845493180334964026733742620140266563412934234095372932873746851479993179052766850730751367678464819498516741857448793060857126057907501306587998755575558971981128154634627664708252562595611099184189423505111340325670863302420033057958857600727614382801060176648598287866937472435866483554113355492930505735291567446692004608602400287146479228170948402710245809853024357258485216480057671038228699297593127355488384628801728872335941058478808179025513987142949211215837995729815731116436734973359280941365968561814079843437743103465235705302828721277192880823581575691443217848007485237809416862055876734588642382957847776365230760585270972744322382787081540456709515728240235540991238953319411171241050727826538522676161591790645564006067659611416398749496914722751379229681671503212301055437924503486499890004428883455230671944248860015489055832285476359622249369664018872985986562327571188718379301969637950075240167051549796985231415740025809858264124287442482884699294590586656992115239022721468582291757412531474108407182292346454945021325252240500374599812903624490343465409578246034642706505884104942649509816655713712639727468723977951508712685420110123406696900483795845450503726239748281344087676117936745082689495364138504338867217866997495579901581757829768049147331147464016581850970808714957944849463579852647199655487268358303730891064341119987044654474267483290817322844999791093844852496568646356321946544947411119524708591169576534656122461791920006343578397092875327078502066843402563969470411432392922689133960566901044712397755983847274588148461689773117496363155378783820882361690286551304746820487955921454453233256534171719321479717242338393424332328592629343675557197798840535674268538199385566408751076581433849412144656238605083261488484232434553518668968327521180241349982775738452287734287951650958132250360526807120824716255150661525507715939338706237510789603224341828021396334323753495489443661538140326357949995073033702024861881834474943869065486333031210842183541957045135705415212528740803002436188440639750964002881529007539110903129449091202671080978475053245763581348599511918742733628327129077616295909930709007799214070112479232602653833214122704118533305010845859694287890124466720603691414700542411276079814900278590280194851886711639401790156650242460119918702822637256733546075519216043018707240432107999388141768477440221259586424293318431881788456023555568080333958575869205552042225344593830464179914560096985260549042857336963276658848795990698077434937382318160152305140572953922282065275513818664715972601423087787436291125497300914243296424336420870821200302215013526338487270478233217567465295845464573757969704809661146269602265060475003359427174983729377075782433405074424005660634245356882697689785783720603572734708081216040165612417846274592801027024337728980713911855801988603524905488409708055044024741973881202291976384504392957485774011784666720371736879041694661414036054166723707783851876690563421698019608816733226327040743348083178666014079092979480876148765884947736558543851886342022629979276359058618438013916833176200007071835451470619973263428964436129618208776634430082568766545324774973402555935748082616880927646492588728176734142338665052411973423992846799048296567557979047022856735346331411610318570155092445211968407616397157380082260591144097737838249583673211204604188532889435639186074385970645438462743450789237967149327127243870905049495721907054289808296933970946807512082548025755467250454274654538219588016289308977389310185014602186387909886437160955191916823495512544093865033205144171523736700837267771087588105166701840304057328146857083459495427023342973315075988438096753859070384543394730233294030485076798878093653908615898858026860004814750814885487877020924090249279595861151545309525434570657753040466695102204049222018586881181865587142977361227083416692885807665118505576518614492375797382122378387117405544115914926332189621798548625074637418879509683679605931780392820308347429163055403632279741883633899798380323060285259188459363901223608718939681551669755465991534428772651471702627874478384541694837986982020229491455283646503504176613933733434435166746161264875272572243563693571156038263988753043678473496613679101327179869628064446208777933381307913474593674910685082343279773753933322553224331834549730202183197073675685609592529217723752828151029289465474449620233151792236349343532998984255083943992595111203145627844473498055050481021172610845739879754238184382387331440066705621004154097217834782847224147946605391006527694754286561987867953848430448845427861676745500139052936444892115236232730838716530001909738498881979940478641612047421250052511895036112436904930204546106649602575060631629094170674741205894372959228928382495392052637074740876482161306606607758763876561998444328538033755528971562338951093346879734090023775306129568274624368930169530633103314547010674191905335771400275663904366307388606856920258728352601577714558110339641142314857116371409987785127636042898016094699538894897423795367965086856230894592829120451555699785634687124612927669542873798609947892126710504013759298042101382803407336289021839801566182663510495900462510041261044815154424190829936815522299397679796162420127026189542427832568867939369910909067988299416563105503343470860460349170724005375943121688800256939704129974677439212689965635767027250265607333535649942171421505948930556824036020864836844212509196642034946279593579967750396416581052731362195885285111572619447715886604425563188350734317290533613938723259423779492460687450217272107781226213917206638401912475244867043683836434025244708463262219210146149433896570050086518306671017990512133833913269552424375823898718163739792592614522021885691059692447190495793348741632939127468988567050211263241389384635688299889694784450639361390581247797940150887446435735502956973766352016482425919745973263111820511207410973024262430665595920343875402689720681538516584542780856073748850940296361519045921905281589475931612563083425946274919974754883828842044403056385350802671192455076348658807722818182644493741166341139173649987621867265940997778680860188753485919585778489996284371010630759900106369275679501845982055743106048937939884268999519073292385525843527838803691529890248188344503536659494032900761902731681311300070243120492354358789757865532451008429891830041005754769580089439784978187367875508743467209783014997907489703358523315667675475258436210435196246472482064299126058375789255672532120088352901398681114166724544735982337875773947209530608865190357539742961495023349009332905401812837502342802820047944242727949646799244901618008551879131216596255588768710547883315162008575916338285689307257369914557200032957585908478131823014534102944758251104776666085597047274192295738643985402122902266136545501757223554250416762253107961004209693124991685895563574159699927336624104840988149055025911381672334144233265859763210703820359228247479846262089737964924904597041141671188915623010005366492779097294579970823104533204658420310915912380792606460419663811403527028631821981704943405102943958031607667223204445197131202055366499790987911347655517224497287180319666146150759741908007354102451618206225548712636147311977466833263360791039322667282356208649445181843125678804317866629317018876900942381032157586786846556851189632529118277173898915626107270465937506052385441585047119193705458151315973223779687737065413802958890668462306133799140126931938049587964609990801452449797575559599592018589329714670791405155073069841385580333258015131554243352579906663401217483467715473419798493980888845971980199771123594466327140497639515557701975542529424737833300016488897585794500364893585751039056752229794407890238897422885167739209823165356628331336553530932116386650074729105786193581357046809252758756665724577973892947598417209768614369203543335748486167752262097538047587417033372252888267125094808624781569949103204435715728816060660625627660053826103174837490329617947788331000875242451082296863085383319188082949597558009504183706531719299989390296016044415547191989889203733244496131991085530354563982807773704844225814152785314917914834584106566565452095784954831466254052240589198089070703962083173509866756385942770036712402494249896492394925182396369145328986660032368716588892034578880253955884751557018779822606132349020090415623232850066370456181047565961413157572389411960097522442487743442888745623032217990615510798514535173196617818682657151176927729069623825140880867382389527455316456004649047373515974340317147801336309751334509898811120445547404548687235158330156968625957926030433744483389712678054856453587015878381740428701624032356114567870242396950450167242501333745938719450915346515510408037652469150435759557325416119328362075370903760559860694792546873327434397347466217381866815167996866376127164310667233845944239256329693451828130940050873929569462604660952176392980965425198184341012867004509481816285610879291228443324111052033952315705205413973579337348430623921197557856529185092338451089432145552539238463577319813871809517178625648750814882395993558351471254397041496346898279778711759733967082752818831634502907198907790962535683108999855023299550087029572283017331565351857831492283608478354715917183427526219515454093062947736676170369894380121313537324455267798353207245883979831081299429939224482691998715296371884650927645473134686776207373014228059413033536504128663061373710616335955984487150591299270143025528106437575205581158879781041344301941491619630324902268917202496818760587635447442463260564779353729631749560864229075741167051869502050159145454025189764460918029020385274876411058791263436340363542899094391616722840867093207686237279225993701439771240634092717842798901574389117052202684225530001128934179941827894335348180933886575210622577318851162045396188513397607126361912438676883505358416200665924642181009884895246545767452682087813715343975623123833938008634436104960322779216305720368902519304524765980532006430890578149153514363067060670538128252990156192487616833187280023081088135331605733320878047388194668556525696553719155690231701348417649939292668743438845927737738027702033614489908452373024416138637620957072458848119496307485601192911110699807041597985436142308510175809496207487763593660615217259905976779841449966083385447943021376372546575615427646771664304680633714500373728946339139074581814690354906665606016516748110092491655897546303241224263940215143590690575629598225322187505144629511565169360562423211673278106203073326917082999696211155218769416890258101189672579108472927884534771832475746084027105224481459831667469512982875067184890261054373838276541344905522506127944024679479289475460504902723014482200539118766826437551727184534460491840147358633055014663412762273472000662565720818806625730273627457905439508372177409632295641471443670834490997014977455894681704990292904474232251920158855820408273858578019684440180332715035358291313021689683431943282638346103899496549553002867604339701202743569659181137137744403778442984198882313112517067781559897203377567869222000880635715939535021597960976817699567418468411254750889630579425207000779485112718702614941794297953977815650317698484701973295642665058469133845866554507202945253072096896292484380596556787637649472723975542319638502129481806796315266238803543340032799801469346424698610448589666404901424368526882255752786932187405346618038964713108316955835188191933446131576183803377933540539490879978456313176471387946548668060205664179119065271102853056169677121698678821002972884613013047117785025200179869119630589005752674766396067107167346565370571605078749027797201558159350727342792918936973208131306582121277397380726058224554821554272223018771358487722181209690011077489872827372167753218959011569063893364989168962941453353407522204568491590840354611472864522893225592220473845474263202145642649261998868021760637491123093949067824762924509869650038690012595290489712231501851041734390477553550024506447951561674464678458525193192531735881463908523477234498244064746395694477981206745832020821155468872987220885659523460635220211742016361845090896740169318165331512680515991655679584433793008931526198436507020172064202305565347857487062353934033912203491179433387924491584762879424557702437599092751668830379768703447417154657604097305905274750651581617161974332004609616530178884972905955723705968877406489995547612859868912006919172619506133304953734616748970370129569584484851510039230456623776978234856474649903511213077168458180016443233808901552699718364579516903472855706539442622812669744917990219272622320561083153121445318030880529038237909810763802363798905449810727387765209255444602925129072449434372233051430840813736732098510608058075544744526901549618670723352452238218895559980648250639217963732011480515055306312463259908070265696341692298068896645804504083364066593318986410044558092065543908392777124797294090182203003069094059666171910416554541765748876292309176120604691634335813708228003005149337191532761661338003385834457179777067744963358449832234385045777427644034610805535546580561193522859968328297283094570188649762143319072913990164278910862446054867198374054635215592930433508010267396100670156812502028204954298147239150344796854204129733188828726546844475818878463352002277476174831072937087481934721866409283968158118115624096073949868362194761923105374560393855252427390984530305754178859716640169057276682926403869135578856865872569254068571996146599148145957654278520814927621333979890002374525564523333448267402727954894576411238418581534027296702356945703277675784033171259440456967961465100701578401890368254448916558433811765592861587664960792457125096268740748224339596448128792026044427975787035945963596726337621173147142967211172064882340031325608277696169360577357681824780515744374994383566002582274578306741525343904229836496256806367688302471490804422165789915486013818980696193425149077998456218952349902076587776378245294330113080593779164246882082574878009735608284888465839786838346793130145386716565717285764534047277117015034462035358819714256520353027353924602350511281676633077029978580570600496006722361325638889524517869642173403348742954805990805794006183236641781314905838522644174504660189037443810528530572018351820473547455191545714579727946484869308181522895179471297825287835768498540671021241905113365216307948540385029267729447838635908757872320894548102888346319838718990652421668367679714904183001458264930220868571237473258262099759891979858503844307156808472590537326726986016124132259502846146886151991792301837239939560925163768624401798981516957688216995628869388662946520657327802873801387848083501655666588308475430975491872915792052363067702944755641927654156340501278902049682604295165292399369887027535160659165004892923548283379037711300533683602813806029138431524819991701820896081878773195293974580288580060816414592053571326355045183716894442393052814792423298317369283335852685830996759856581877170418549934515238214234424332439633714460926430556769127513149816850389869540247290772835050726700092584657886198135819364003160226998470023553155702318812073471870057525641842429224475599997757528963428718611699409174216856752806614990806730020651673681551838842289567208954720758663965735552123659100047661527423343717943361723712903456058638459656972010152693035215039243089438241150056210112013393230519565421431340185383943929322718821095863801083751245470685428708937228924338409356990210974770156165943452324937530545461168201626253581494974973604934507365005090218931064476113772470686479994937971600434615470758787115680529780834557752956303790275726146400992353330285532027913810254512359219783796794227616016769502506597986491464849515035734027454825801238970776016336315858179509077090989126032736273862155037139580157784610818568420499475497566446492542646817112966188080982330392388047350735334084012823012024253770732330640660674976681195984747696947919993631117298392852280381287353369273458252736305920206840555821664709941800290853606404636547346533985450796480433161640553831216351928450201023752986604088018181702997465188930285890577378597116685750375007667991554248081007930476974731856415742978217744932259311809060727539318214974148906850117206816034374106101230347429149469128238485149183960493263824973879496192710979349860725838419957210595355665068963972550155096603119650474626284934951292218559557263495078234047899607382032142231588451105208954829348187510412438903654409746576941513389635527348865168813136498555447045164639010124976149647562686260130327681816575794095038149857640280240408622999618605292968726677575227741213419272091007598850087198339752211750941814736297957088083488444503969391383919957943130911282345611392144576749857718546608939711771125721901068775055747689285869979126646959232760466808539290031987491581097155273523925507322888130502382151142253221263758081278626096158309316772846750372109798489123369334878855146416255131161102321665137924906663538216278005606370270123059320625257073487671634051605717191709680705309464078809111959934282650626263318046775842050408898028678207498190536821858552744346309055242320214104717140888920951346119071915679223371302890515684435367576384321788283952609604305076411258800329573975861010148603205493072226566837956920665846470877544777622063638599233407067996080603461403276189594621768909478323589781277620416243863658687599844614547172593856447578928787494040994294262807339140029067213881005123377218536606019947220458037380594244577857447408325526678885914519776885271181155809838411612632358844219929752756909369790026282666561693313061875562968449708778581065837077889715538833808513656978219928190604967920676146777336951050565673526167154346382847606744971324270232577161698230649951565696662010161218322578087649409456303085369940000725027530673509689415897149067043328596776904773587445631908148536856654272523510982336435206594073194615137124404062050517060582010958110341494515606167553402224694528067422981498187587396822033690932273983661710828404235127107285651277033535086353983221992955866592216947055609195836267801308198487702037683622354875128814234004612002336913631592983859641784579345684145271981162252018186319699762109267034055126805802071056869671942024601557253126517262958669180656889683984340099001009385831762169694014130107535621900076139878996519276137970472623521969696597831889715524743104847768047873174308502927958412176798538877161899644452653309301659733607188160373328151639842215321036235628289413645918443765805214317989793019951385728419919474775236563383991963251782402802304245190917609792482912622672858649355548761654587084780970552399997160896627724053368179772620416307114125843227057857570130530086834569124058189608892472694705610451048183269967218006541935383856751167058382381126277616459827376305973516568133852062313659478426747202207805140479054324990797077613029735332018909412766587455395579132943072221972761475327718217902205802327272812483571839863768140550571411486490704196054291332701668435742036803608064562198934114623820363185667797886039406171142642885539400163194621346092237253183377567038803546699883919317674275581097947045000425378514397388370821006792529003221056773891993418252963072063892996773430795214969978774583057025676196119983679644910117794613880804587133454244139112052639522211448000316665175783397680312844975131113174682639239930702568392748389409787309608043502610601847924423101992772821586989372334559202927720523999354765973972792359024401444393713844014624302829567263575001628505668055876761091489203293759806636547447434984289982768475872360444313096987577386551853838736415685600017014602353754159956521791836971225316889915744136190209062837337368980502345807165372199772108823317487056326423795308419221327940731306568122731956422336312572411176422982554277267904553964924026242609982789791085480392284010329126811369909192936778294238678811370983565920089589795783033883493125152047343639394528081082835850638064757187704018816387541584399695054340536337912735181430982884486146134886418386576932857128952251135107321656430849077306848308778699308555723006352984192926181124580860401932224926809871348387127937115387809634962538138057710109631861815251229227521045157327929044172237699520841890382290679749405638326180279231980507997053123526567644971060031128037420370931288084750802683052131438685828551817371506747851520308441268972176489792277474319141985331227404412524547363562768863198276340060956354482051147729998012155923352541708561771911871626909659544512752552376696520843029227893871628122855619293351378650831817664431516770869829480574328742313285745287795839018863026310767999687571357015035196124156201904713908113809877341363078127669806357750250726566177956058198755776739257935654146870314994001588581851684209856667595414694472134252614527670050275624977126309720432686660916384434461793379773539399260037371075436511313880152734544702357095946926117140056351257214314286790397917890795032888210104702004915205269921129343064721680334120689564710034148664369044519623715388387006533918616729334288892013554027542189686648638418615822685044034526666571402314817938100735303532594857395109980648711269089801962836799136320212679912703968968906322809320234282418336152677410440662118025291068119927374800455099854386580365525755347363901062833964986565937848743720106825284281846189143207069011720239789050354789758859568807315477436901869828681992119335030271925382642467228759238899121841088596659248698021349033787165629623236318255376563627903421474849287494371374106376125926740256846194574482557010823708908365370142902964682587280148275047041364842677535060997900670820248502186643246750686428704807674559613089336369593978051895960046862916774080510318964577326701069777475489516705942249162726524587370937096081444149152374831226533414765162716107688224021236116991536108773808986010075151284620130526270821492815828839148743844252440412717853222975408792779175965610220830450068910031167205528698673390376771611068323158695250885660627478332365156624288307822601649218879876201173213627490416148999028870780617917835908578884242739888507193148445098443870462166907891115614257024350233868801039277256686018126146923177507590706193522903576871940454949479084826481056163026336351953296047639746311874299072132648088128879318602762954291892917635997137170947453414085219801813899120350227983390739442682264364058113726186588890544487767082765390187107969442100368652905076635062309125340086690955926562318231883522240902206010055191502344921943734103406505625689519769697529363268260014108639828425628718390247190263624487792144975927286426246078400131595831453915995025221568734028950134708671176085307712094874555947696329189469827677515317755798893199431536348381246661050144553738710632650049752381017040258327378633965893156705903066103052869737694134013242062154804392151538079378000612406987539868659019178867603423739121364595959228786500116090983012493067868836600008555612967987366717016533592154364554589452332933498378589965173896101840012711913407251070144362233574805166505171966943400995873572080800147326558318895256988749450298604478021434205485234163158209605825683186255510717159192247374340853786407559066031483850831594765026762526770808744147295274322823598761117755311072448320991894817118635153774741372140070449050666339019991812134230272669679705822431197687555277338226937712759523454441018566628905916704768099077373422371855422915612091024503511291114524576799882158887908230393037930473316220130319197294476986691039270853291559030277245766534565584519149858059701831966410832099499890814877259376013604896254466792189745576517136455241416894400715481451684485247664653865186174068513436429637222858854242168488618735165620862770988567822248204724293031627170805384123422490061310863928942919989387037687608832368468720958190664032361567455204775685274864690936885830268573101763129669876390635084102429201390112754730925817991930127457648212698137345585822412768601781536574513074611616087741346872899527182767420746279660465152614251395306476439691250735780703185482444879144164619778114099125249417274938043678244388643931399818585654659426650319680782201322324982801542013165901565606403530154059797508540894425731088792446027823961245360339256994776436323856595912262154365440191254583740296755972700776240569771820801071386580209244408387720827299566687901452887421901488811106896970360679922818539486668247876377637225500309844398804132677652266900979067852114864054632131258239612097088853391338890319238436988469516331118262502244734696619653657028103570850207686484394754018239300940511041596445448506455709708259072693463278895542153202784417505193268901653086311378072765798625300599310733284997550492740069424054371814546583182655288297133459379206599845086334934296466726326849437582735486112429983718766622093110806027167570203453944728325463055536647104972074995125397730511714835654061611347193434415467484039459024682555671534045676087836792716934212550046570427510279091405525039744480972778777132904391388290875598833864642360130648163130482744487061648518644872448412617828357555846908345456238541849194774175794127615794538257682465367057266200721963773244976870138911113885553755767107908652779531986647892042198102702517890987253207676690718237632777959937611950824113206990159544805475660575485645009527477068044918464284373673570647413163871172583197565127609163970456319163721003450630434856435115460100727073051990798279945001882343774930713295571210246415534053817771689774785591276733023896496797527344531469215256277647405796148760242961554205062273414769648436281326261953352893276486058076707092610874662754907641636959958170133936080022305186219075372292112014836664370955125477652322701415515179951219319611989199731385906991144435955875133340943750528804203536162387997901607625738938760589346898386812919804555442545828808107324354772021982096807991011220766739308521808894676806988454077700575171269177841599327009837326078862756477885087125353048574892136288776755605834872426984003434410758314165483992006369780284277202476765093557844625239236528915678585987678379096595843148066634878386017619265060580646377788580206739737653473535987651590524131636412486859799727890646939769239370565041972882965462685274602708844772761395838670147000832948539009911048179592710678697705172348074711869030776683373545556355020173304321688706290822990050116165755273182359529982825564445414230831337564323615315152499626918165252404606625493884566397417007699358376349462387735259706395404292175860809374171314870092087537680612518516955421033454515723044375801796968080960039122098497391068361090577043586219821105687230528797245410471861823234918730446654057508303221629432869617250903256141656958156361068124107086333445718727211666714225693060095724437647583267608700942728838280868121124768403466013191493749022833763134572032484383709807737805740746749776220982880522730769516517649976334362020211360530464280403560864200539033183641724965166654321124331051113382765851256039262880186814369912223436579182932906426463141288093760487700582988336347137112125753106853329957786656292412706981896808421092754727206878773102595049241240908425668777481747057978123670565490116692588782591762727002760934517678509463330843692489900109304277567728737406183529833611975056342600871961155146231221703142006798623972427570763431656209133460313098190393200652858084995658041957320859898980203002720041088701835572016786388188220435290466380997940074893542601157390547929493729994611243846486352811020244263428043818891771637195802623253018705541900808430218677186913981643997019258338775803258392233884685695897409666980098720589488099032651606321104652138525466493516000227064903800436164828124951925275889234833933902531388058554347807497819237247470351696468484724342481466018846011188493982812407461893230610825693786157417151892658762539636655667465641749708826041666388123178602820343456992329408886392320019211467823204371870120703862572104789946415196403807936095757710615271213157208928673407546277659098065665333194706532780391060401951686161737858236497544221774732575380459401532106096107178298592612581732574488513546992492816790775840044123986305781414870786033600714928706103019778467660584652454577626714111729617190819827171528365120050576588873649739391261570466203636199363326192054177678378850873808126326175797727921083787598047622140810876691571545747201757535378581343636363060689728652762335324355543755028665600404007133388095709335018349013836765283732247611076707841927287046175025880166156006491220618002903783952674292674438899894994642410638213210243441105259142202443131424484304505372495510939753015530421337187191446621055537125807664684989316661969971214841045841500630659676253284489558787275693747071122213803287190977433717241543634438288323985287109595644842142081110527240680496281482835425440660027920827634165725548698896759885070294982940206752729008522271565655156807993603639379563825039306101808557526533610608835330939173548561817925007612755665757025504086860671969198955734788778985206164996770619101281821201053908524628790214080728577110088211911176647565784716854332764015778864461696844903581429536878612725830998691681798372541265569928654085413249612227106617513096300507544746897150940968412469139633256417504386077663648180897574866054213144760381653452424369612527384247560773979446705434102334602118600592062475166090751380476676992869762646140179245033496469596237466692684709798025716346171173943945107257640138684004310098024603732714897634216683003382603198698214025664541649181852833281630917263025355994795484479703684247362788343697835846400899322446439279263971407774921230766915953321047701040278717948351859371354884269686965422031439493749881547944554065955580710393553973044921497348250858595800027185019384367811867105299570868231543679428586152961859916889111632764333251385562360661053682009678568588563630479573698823809415835698188864855166708269820624841809785981977052368718005844246310931930967981313734494988356355759962043769171485252368756183225520438939747945013267481435527313708666141559225371724658562779734287236336316782038128714759073299688737130941673080011650724504711283264528730681187602808153426145576721810023647042992763682096576746238105363384417954434230475830814748100515563007084128859353708844448073942875491077898018647568335115946905508873222798507284217838994543597701713244988402292443720853220149172790592613713770407249393162875089932714328643887199090848352296066809233214960975126547282467001048691870138829232980334287351930879210302753658657064431017275645978349914937762126099940421718070461681181749458576304285312787804618345431044296338889079095342933595231674099178347429556385297157670384404645527515410862665224994496969752682947220951350120393716471737183963884269310192438167134998536780373099103251227425012938582615821110673750997876367447326188740749144697458383393310920994436392041796443805772683846520367930378656805692268605153553553468649975565549102045684272708047694443680518140016213265445807907720704145977220942697664522756515052388378204137790267694007905660550050622362884973484497407690257508411329941877243147928142149049839527455428638733434953197480837094451649047441371217964998297134956341640355695830350852517521992329373920929035566285981424241533576634191299637472507865236848825842152335400025807687379840689806530373341614941071896776386880657395119119110804280406487300808090269546356204138741404197273771056530363537773133663028500838039772852087272693196671257715980168391383044094804682130840547570846327881129072140422993528908004578802662331619870012898999165311939939095738700762419648444793484074501724068351080058871677417549128335634759302931117716966117868915408781309720961118790849165824791231981215307148007022791031118762202850146057474452267247705514772976825867458483156230415021422422901760926669502820720337482049258815864196333323031286635140087474615551963980122527274266876180853639272897086540549457393888183555987162349474069939928672778216889330230379749266611849615560142123083736034346684638331080632919756284405886475431024344643475026390397706164858723891304333870025381558917736300588468286555674245444213975296614496477768613633840279158573637680959485928674044189251501135430238725459449348970034285824998373603962097829125882866632804555963757206640481002096539999513312054851097250651000770699680484444712699223606446078851511863569380190619705843154639821839010245265197439232459499964131462408984139677415912748342294128429114175292524748581844002801255623474515570353543951055063003685741201167590984615968422893019355832396001813220126449938255587934054441401617774874001484050472673827254474533994875111417655960606503608522690462341428966442949208050527010102340055622914870799348840150509280432759669976523969519692254222603576288574636500205530225159814258496488257396270952561622354139434439452493803706560301337559498164523188657345805666630354923431832885747799830575738224663671383846421353669671769771469109211828945622622988919808669628449725495825133035431651408689942200075815147624826176790399908919401196547488241887972445746680778331241978450064697075066413286566920711909525252217698702909514997628122207890841452655350213416013836648514233450886043041782204490132597039766801982959655605830851041624852612088931798284188777190345624121813426137893985413231249924248688607268127647454205329232855971684837488933276696619926995543096606404316726246606655935010375758628280731820985478156422109781308108706815244738275679552277821190131401216595140366922049600617424812245339840701352940712053856476293135707411031658943950625821214868660752069755220953114021314072823394648195647256905666780708131291256933378298603366415849293148878685391838063891631148757708478448174494033046944695558445942323880089623639751594424083764051084240858426202255997423505613806624231374426638715515135678216593987353089852804009736395477282252098034513223160091831356790240949367996474600016008379255249942435398100071826011931795449053858374048291510726812690104623536162804106248271711020143210405547995389959932254548945975539562260233334593770692819127552792079071285687381229530505613747616778839277740250791574548288705530407812518223346729754451304086999737534992251443931920558036840220752842796055454734687613098752188837311374043121377977217215878200115916808813798766299857229713374146964305884754515708798242126576743753327905202744211514864310319094248946129321964638375717571157661440418610301072233784418065451871074520263439199557773405529606695656910315367221720017665290080486751883662933680017880043490662078781396477608876361438842791616157934985812894667118061825663484605927438093932558633738535896271458128608549010578191957759588973858654503210184395407728326547246522896645898173093144357512824985913641861481445516439339789078400263839872932315580287693817989513336904645390198058078320980053460118996895152082805692373225246079494906755983426641804771325035454914015620123001703494594002931507814743599192692339620776532345626186574471523173443676640325405990746767400109076490499719285750457148601099442449312700718546123638321397385934551668575939747826521617519437757912132703143821714931521758126226480740687302354282428316271131441726189106348520397002511298122309103764773855958827830301813276399465647718266609133792681804524404972579059832252885185998901314581933131589698452175791238625191230736399335026513536992982705080631311704622182753729557481127943176839701602267414316473221765313988389808858183438277800018356850245690109677598305135501244178772006768872985919508431797406629491559978329230977746341596447446206625815778197340894957923525915034837267929793234671437605334038229776729388684650153652670655928571492113252939646894193105144267492522478051887886158711405865342787387043035934690123753940395271776307475486444479884225378369945211370812994578659264704589979767074126696112292964339820201417286561315542996577499960141920712998233063494495301641031647523463092555070458762313552568445991300845124702915198996118468143745711625234421002297469630374591221042840326490416057090916251250276477674319152633962526389156351272911506608545213225362581343136369428189401298399350204927122439536841794544328569354622455694929168626304814091883158847347561956343780209661867621672044458853117656043849657974577752778677696233396906520333948198413962913806092237120156306270246252972276682092515090713475339584087729550613435369991159848932525848942779187772091022752719583015984166282141082986968370748646776222568836966020427876764957893182086950471582060792681717135222339942097221658350065269320089092715711141673964669037295681180746688457480338974360164138266438543910522591019142863011337871649683506175944019298882815027828915658100863636754323878602234665118937606414799556118400588150905334570801847508792018035559358498583967730249463623451440952221325071286429783648095160598877687169281808294934294434221685279789502587436406723381519252655479905131272180539094931743411434898223051182563098511428489811234559202165430459382225151661228805065085114526762946855408429620033396117511099934010428080580175952981020154359214943860524618590957610845589609360354173112806954124559667120535870880287306309700071570498027958181461224482736266526616676484417753029739072374634890542488051732082857971453990060091278395387031082782500453424448424679157911916663336546970439848992211735566250503235572897851935944962247983176167477141447457201332580284819910755030867807375713814460480237916075926781035537840779687251357208295442423598354673554210856887668719176922885667065988490355752084318510407431375503822974450092967621348680475902030063833241194846128820244724298134979719896275583628200386144529532256236890457808806122790277550678702971687272500875358058346601943553636732789947081666483836255290536512917968117929219115618001468799341987911245309620221405708377729943770069075660034800781458991857156756053539229092519120799837288763590238446205317169925092162304799026166605584279416324582026145569184107256103410740685909535869479988595951412895352713799504960529040653408980644852770086395014962731831393133425498802053828442640734464617818578974460568197020624158721121384569051191780429052639261568307661752825589341020540799381474113061828968114457193291424483104907413067467106693572677278543190968731493711114623434957609696278428127189817635778190379613854753543083456194919959122337002386054887130215583203486289418013072626080554882754281454205977669433782662457133922776183011704899273951043612555902390213317679725727416792770176027956834315948703998757183896637881934387731152832164555908201062767417714110906728005048761592698884330099500585707849719240799031807850356559038355488037105339172047448460603718661342508015008999299742791783783151961139220213610336625720876567751274791512833384266543488035464109467573129811185764256764502991882472970038615269691116225788445224195334486607733908494573093125906555366632439950175218468368641348891222495733597729119045535014309525060935301965488081232096679229890254169089098933884075432143516440587065235028785190549317775623393920453282234160845161818487554130394002952532221116330776620371006851527039652485570826514145301933736219641477536612100459375341138493119450986011215106500279476958964948064340498931607617199555773594236176344724214737688323950250404128736631583243559221117174201517299829760781553894759971627046861087859174157297992131916893825177359718948207639482099694128135723494343246482041825978944768709691131312190513904327340715742852282340903120994550841615981290981272825621144595228289533548133096858464071322301350747315776981656866244021672572955125712382318518429224450932811966837868058736461996747425474625415053482539813875098393384234557621523016823611312778089473287965638040450045745903030093264726735049241920959526056838539373084245839512307689761441530263740648788850301939756044698314090115504360202274088273188220677688540341678629376566613873181765843573630477329247719449927279596850455725542635632834082552266307970482411099200742603479633041906055158704392002335861748980433144918496391494776022029628951252237497077160925917287267367634290144440560679673368884104245558400489566393977905193360598326423754276689238963549961626890817339467156933584701539479944473387256026027042910664569522450988867122918953518726746266422541125248418662005775832773205687851869853074800224366449101220105852034551296419043983279540099646234681162571129999105043125797617204278555711111972749094425268128963877587769438096794371780836584562796267436307447406684790029966857165725877203283893708747702072100495375910486405091387874880342005070363336647616653999193974347162924105818386624057092172568257231843461786933478337924039944761258667985190617904277661973061330581570992315639341660659943285138324274026295703820408252670798180672179837661796593468804586212377263869785239094713011717906449153588833749004414868196424792353932026564387864176067032419816798331445839730278326482808886533977888362357100308487695996014674404846405417301636753314758467671758158619323897748736682052292452470658387195603489897502154048887908919453926791303842741114312909191231991445531671539325704638352056744233267276161476130469977793711602249811490967045952769745233192913109955079723750668782960810538973024199047874797124478329314743090203271126765695614899378481490123804480856297918614624093618658141987962991988389761412134517306009776104214830567566124232683364134156411538390141544849328021559992016716020919007069156451187617597015963366078006650977566273696908522129608647417189937462435992071996177200696813116674509135519168532694108866872624447616368067026324798880031912277312854027296427434435574076799966311938178476056804046634055964402911829214119236255817384391617163258147360290501857946176332043119676670666759148491119972385256635025656319499293746667463132353093882054527378271762360878757489905523407175133036057891098163234352815354374829302138639331577529370566228171994440865560263215864077651986042490388146724413536835432799084693712784221730593376182587087922316348735353211014051652652948753184958642934148061836101292602440458058327194202019189690616498158752892341554450710301444701043529074578935161990356433919632738679836041333779700003125751501493865030421939383956113732074654457406317299245548525182521350096261867959121254729856519330926527918868467521631071850702840939347866204803059348549358405416506021009069244206956074114861496190975009093978263808288325950799923192599852283215065846083335586073367876333978720435089474221611558778928675017616102992641774511672616757719295534489131646591075185423181286643755920685373436021989256616000128952410103365052299026746086038332147452622224330062774982506199589593315129129016281421279847702525110791054360697391795190197652464000488212189659335325347936725053639590296422652783012296256177015218750022881534433523640599280784715632947467826960349590224650902679676257606106129006483224745457160653612262727011216734962428907307791614139837272637067967966679315355182150139044317291272016867841356523949751958930779573801555968592281010851241492946849731306587954548970077372156669359252126801584166811742985628344639742830838842459336265057474196667342329759193749249887422011275548321026916926697769118838173196605813679054289891191264416165358682892445188272872044114945609577163546694253668893225467122612603757377304685730930908744975263619671139363500899405431610988881499022922478597630404906334290135458715473804819299420334603950373964027169651689292912791523092111410999832464247069721630726237035054313921088513252559764376579966298662187542040708192212722281000456282771499712920377481401185820103196952941134922235973704901255390758731978495610415093935674069324821863310985165050584703924807603640820286962558939615514515297295490441021686512213908194111031462394920741872743959642847257034235116091635151374483641618988883278151558394479791074935148029848059688042677795855331948737020644328100973061133024744313816667980647251296475912977535336879944677299861146909132588897875953668552074637482066556558120166233353862408819517443523183536435343303961155477155386294354329227896681620768538349324115369589008044549538923668688912422145777093608540604024125499950480153226725441064380516594030428122519413914680227283182867109334762946584716824320603489632187572178503444203193630289086792001735643578834272106139315845343648653706247826225593821901029356504874835588807860519636403838255811879295045087912170998004824021066459812195896824484624708273226497474642100826148260356505831626052414090375764431044979812137479677309695952014889872963011290831816068333386010795504031444214133641516486615515683271366632757494478322147557676733849867254700573976688954057127319207988500779343547179948973491921280798965160214287004405967722818730620349786916917989444523343388677694860271296952202365603222278734193199662745957568620383662362319312417495621380811371151414858332228006164451109112598483387279727389674630350318841228824741614576843513928496526583714838433933950153976635970243232263830197403506480257665688296734288445520127323713463264868372742356759451983005933007039204986992929525174009966620084249921221615314254796141479367571237315034550046762211987262340467330005462379276716427803025237089774450955319994548481231980198971438156222632117734103959933505976893113879799856874815742595299116487320208271528775437013329392269803465698279816597350452453176702180118470070539443168330843414446259280346400285547447215495800155932566385989729437080081521879286478032400189998399916298477345638816724038641336104076844970799669082052295466694930651928559913374483660098908301528710240440318091185618787045705523606864586672215686862292949092253278416304145884971553175550175437719530411368440758553993394359006414901013706071247731606824579612055135597424596838273253143754606740762999624384887773361514951757560508054789073153276738007337474218292594411533533376890114813612611763130169221865172513266171687949935817320151181471866568841675807156675383136883942144851419540725588492567199400379702361324013194645462902104878239563234770187620035905521304211970787988109258918839782327651498663216843101382541061161431303544312960993328592802945434530573629082818301519212506630721551120885552914088570201503773966446499604904191775278723793428100260191068529835672884445128936655719760381695959444467219451229639630641356986104378924001692654476742072519259717214703651428755189009955793552441487909667976677421742585482485593632323168130533137846680686091909075227299577211916581705157614415573115457488213542520330800074853460065834849309684118232124791491658382815887405562816775762890584481856681886784192193977109435038569522929838404810304945619788474644908658349875070099778996927757609025771835841707262984522148248159612999585227043378933066128561578378791630839874648473786806438776422259651381091334788143143142830745218997169602647335870871665846042438198858270650787683959226894205895235484298371046438472574614717929287277058544365217109685823389966173245705765299051840110524901727424490545742382997304582228691029352612747230726390847841203635303848585961401945365202976909930559465125733657064324247298268395593063090192829818949636116475173081259679662334980058376446141731943240712645743017369250186405499944572052113598494414386809842399651968459321365598130728515271130898093847648283258690135618483189005521244301585696207627770425627790707504990276974435548839261520379772528835534946641034283939157708114506006289071925079455170689798723189809350440035121231838957114100648866794198043764664218113043658405054242325266159899328745111181717305916877032325873830470121889810880533897028902240380035274964131211920405835868085953275331892139860034156764550874183413234308045535539981601070491160647399025320652880319654683428163539784448287965399483285910238679861297312084283052615299325426172013048830820979993678008444135742025096661208984946669603221726629659073477932914957348208533701765193035086823839885839747095290522502362581903092936122166703623070324011211278683756169796070655310330035038362061461785377618343441138384359591834679662009879609269594643515245966747677167979370523815421396928090124059805828296956943961707149426276758425711298060002867535348777748433311048213017048783951754815351859603071885176513150247754308181831994628828557680971918800609242907797417711845220154319115406624064981516749557127166114575085051815548398557018564162249396109272812043502964164780215425301959501068643560939240225028098309670175612110793312700846045353164775908450702163830810383492739914717015111555881533101938931790058288534302996726837431126905319072897074896224082246055827158358743432965513424835089040943764393860182231970671953410335048405449494969897099980521186903199118835835464523860064216783109322793646096016916333607253223842618093983470180430894712138094923162581792843269624089223976214119559478054475784988030467685926678326186905977197279238835341753605066458105544423373780435353594286198170307218007729570853255380840922074304685445197947157389175714714139437987676261850838576836030358411635860016344590324299929058828042613347742446659597205924955384862481281550965597918884005293688830222554045333539498537144866901820946342302085153827619523589647782253328726934072428685896759661339858808416093303193328787559702764612353662095381654032338694251755035604242937574682758197174295188195958277506142957267688774998386034414776271449850035976623763732928895843438627822737200924981512989149660120561757507609989719044899908315647204583237183270292477683803591245554055665296805973123288787429243101662392558562832030722590720734677326025523835630410684132947930681767617830005458859235075639854014020903022478729494768673762569284842313721863534763662134360063373407864401372604533411224208234735864797650277949617058935258523829620956268762930587001844851963149131637097662153288037555384777893692210921590120205914639114287165081174199528086132380136179125484052959183101534550064060831949474375094332497515075902002584049924671355355368370535384253627283573589470118547347085286096193425615763904850539404679766571889317664267701089202972530031079854118103639070104043890792693969162665392816315447145465271535660526584168678935565473878066012800019830763122236996145246124705072567243770246878078090779203347919604657136447978138471284279586007414435786617221201049026472958066314919625282119384738520252349998607599066683553505219126466026149660618651958914200007403538629113642401279111330022072391725421124901680071660487849214077196782099349578032743947195432000633850448499697589448949505580510256161503619200317801954099020113848142527782782767033081076645650228070928305470748638119814340028671880103451133032497021737469038394592654323929077087651101091559158559003392722219937545383801258409397654905249161983528173446355043545101265214867146111665282252493055514885009942914954196530668205587127815590771582074678498700648689794579244751361838298866956020535858000530583822369491657163194779854404015750619921257947162477212195876163570633463885453299718683222413516959478659606922466775203678546675450886701049417475611355269888907208552671825187819301277463705084611010820537869389284730047643995200496885980186230174445535600058296433796319044739547206247217827170064502596020477804724067676832018418427972480377169236664985493575651039154890210918627443888735852636475770888661632575635639942255202689487035087854130810027698424762283973936461315479993604908819280305917748389675217164798213466388663214793911444550840618218878724726063259252515749314194916567968965550592432991263456897908218756302600087629704228908921068567383903487618478070209455298292281223181380999965804401684429423726525519261803940595258533375455729611652295692942562877496236306395598664132124288441484459887563404165355404981406724855018662654431099511953983186374628271683439126321247027770822237226849316476821964514912776916489548725203583064852981627789826510859681112153525077342456312488868986220157863898982438947169081475760114237948776444422089250872208091919450316396839194296540567109490523897512008527671891036369464600934532463398869603884212148449105304388599659033241347896743147679841920039998416385974381092036815330730951748271055568346885298265875301611764127343196785752939840062699547993895625504463506331509536036646405251630717152696860692179470729318157978337362793232549635071893584226633055591464526196713188432434939336943541428860275809634304069584173037232000306994931284183901919903785244760921903521087808871142299955814916971370155554210871245278584305450328012515857677669970511444338195484702575543498606234360354900599240491348460400918609249509996175279051045539499832079946999480802819260224245521359969483474520195350870246964130180191673039226827986260788927768510513702785914491318029506760828533418287093260269327331506147451637650724622778680222126205712458738517411030718276194245550907801534430088346432469822166144225444737183890340563490435461203477144324537304675461952572641741481390975417432249143852174919550609179810879235769538771595361025206713622546743490346726449548494066547196527466258968557387862031101463697867684534027982706628375670644708631756191822972071879213065994309516304909472781981886635504769866903402310989235041251294922633090373710279053486420599566023904148179959037341192674426785470553917746874017910917494850991166173126140444721389738654755671916284341074948399124023021414362239191407695994143487810521484662282986510275169260102226209171081427748556380238853900517730060975951322415231742640386663121191411569306185337877960265621344978940446959409413933555351591196566811076967533531148608954302214444649108114608686950145460546137264404283503123532097990048789657345281633448251859936321609312018039547444781222749826748751613008830487479134875310666775892132435017563192787471480330906442208038404655547023065407355578533228060490715300561023721960498347169297860222163739749379924382189296860016579147750617413731262426896093386904141932490760656061505047912655262376135490563508864036595820580460385303925739699132587229909848005592723179792676422209100586049228276037680231008092895273672978734057886284976619264284179441024291307752560515725386413883410037374997648360770737465304228774442386636600651561050994947505166860422165078906562874623954465539696990793154986929787181955667231430497517899252047881565409015845871919549864623373998984074984778042727429686982755051313233783379267909294761554349227564341902873354403516580607279706698791096744569146359665704717194160405855615451155098489257563658108178694778805241988309995391591421253512818004650627297402277906313945637455396660269395145632227921238603557496643350100178034360328646480151607807233453904449821940564741308006262790411712155775935142118037419168034144724216268003980963186433821382989317058186671769396278887805256561029996896141596594909169380780806240886307892318956644163533934443760682331664780056379655319072843815977316224550975172084656717506257685071726691447227344348394375028878782559147793907486362035520803279555470196992231926055604337277529383304089685834894171802731110342295184877626327542090450691452753075361982643646674976109828160195257142875858046945326867017902874257195387831654185595992918606530749367362698323715585910274918683161210537191448336084132143996876672446056657847424919027003208318394261218561146740473333841508945796677469875891288581802826884649905993094547361489692345559906993805317419068094721311210763223087820469168787987876035872330800499667209097900358382136634760847656259227545069872857640727204888571173180939092198058184929083655638231223290967279235130674016050671193261494515764463696852597753665175892084596244513334351621460970284388172399917501866870598411221142174357028455795817288674506074601901859917759623607693689977672454036093723415704380173592202202261907735430080453296831085838919054970650625434220925293987820031805930036375018575041468159868999400760076456207467091808567451875427772367410458489140760769693082614750689511423516827053797988269983087462756051918631172916174997995122133625873358441820439418578662866767688851922798740137074139280017203004859438231856591806252156264467826532769898114533382349738947635357153157696980789023317975281520697302921710151600696620785620041245133415698027406712007826798373221053257437759128061685445609877180733981442228697578318339563026181765630764693797302401227591468425704296116754450061333971416543998794140946174584558902649675087646201721957479570257687911809077029214186140784496966198282515481841653439587028791658039002553796694877699070051303165248757818865478363434484131614253295667261079245406314180171423246284035680369932140237294060003206768310245847152240503286936245320434057465558995089783615447578683706224198693283476200404687928749607604881171861486587133910557277903581204968319042113524794199970159295100238958690146855088451329540445853191604007265616921364887482127485473356334581537186050071800580035422132073434525300464443604863914971062461488103041480725726496479516360743558279973251615064028415367069237736777493327694220694372673699942553551499140593394255356226640830791374559166150040630532431827950910454640665710165463302272389496754408914375708935261903853353102463293067687915217090755421264302356247970250190445924750889227552533485221125808644410339409040436851847465571115219842791884739582816626368757615997650639065327973956395806149527194241147507295221554732059440546350929916928890272842308118193110902918602422002227556956949612966162573192508580539316542582689850941238205461507848459958241454704586082694139839231730853904782020092977999180562588272369772533297352717249055545544482744170673830795219335825959449237670397604207069288706388513349533885007639026641611126549931251169068145722874746275119504069170539671659026249169629989946589269824252852419254046542766619803311055109567523788724050673566375959538697230916941195443678658387982742899844154077931874343692332378981637853901688900240002737225751033592645568974947940712042794686103750611493311901946464324983536370682455376861166234095881265269185318627779270936509480971460016401629079069897483808988213422083683167471105813880529709853873141289252599409075092336384626530319306120830992148453095450374029996200900194072563831864462076505825203778185149905391484025919361253325314634392245950038090040834588618273811135476757856185885570109689413662196881545293740572210464159394157815239662946168040164871504949952522577637424771309263340902376370160932353724192886461411501792799953325803274879107158996348572355040551043739317677087661725523398658404358229167420695702089270156724613962371626971602284190919372840499396090111125379428391543740848655714708899362174091195861560807957049727565094677313732441350608033380507073317881228573119248115743461340462359222112872645345894268834503641090241804829377932158941691381124751605003347246415303397102203602945125743352555047776248355128743087195751542638208379770040886446061911852900996449225118796285572460985883108218989487099062542100902305275056365772966847010776395435579287438816582448277245961028368075280908671240439162374080320173444014634235254915727552112764366942224823919924542654980862403780324459686767116267208917732793390759578665081358853855587286593573179990476057306487263088621697909197948697597408934649756203947569933176984986889469909227662775008578157417909829633856515556659125198644196447631374228711997805344157701716000268544773121342656266171676737431348386149281263570107979594947684663995055174790410801944561060787883278081822981057950467274675518192868412589175832797398153639580409225292048025979129773182753935513760898275114472748655289636767394092757619482239614674549922276713093929902686148274981344557577517629343887904034302098035298502702704145567387094859624816304569278004257858901415803637867472817716904656933396039624307288996552250801442159839971041287529524706281027270981557596427870887559465862355286494276606883990985628870189721691954329492559623738387754522660257039840966694026350225634969321518944851455759247587385040884311623200199394456787843050282532161313333303106461638130550149772995083333837549652842201670555426866162572614176445922550595475777086438842455479095901361248443057656452725976934736895824157531760799909220478884988077912023456173019666903458214282426651389319354954458088138751371150856753450490618059112049658796308360105340556324066929845893417711630259237280299108411780653448675840283050503237164382460346184055555966767128363414386637198661012152653096076890770333665113072801377045436030760384673492766892274229983852365535053572995511607938215614400598753893702140316234138836969220903261117316971695601026326792541085534712261524731860299472200231771113490906556810580540786724331750358828105536490236758105121881501934766394975519418475712331255598898025353070340365553992701674497043472278703706191922730186295593019445626116559963043277238480786794920794083829801442980295237400780048545437520774423089588760839516253323355451082283055954911859849593903402648507965145705515444623837201041857215756093255499343650807804151765770573464641602973954954534734382429267024950574544585816997215062419659028952261251295724632895013785032981398527087415158004145572781096020954334474127896425432857429704704644223175531716877676804147866955549337892778758638015311502776923424608039234924850425707598533454254633731094216360718835668611246562605550209146588268416263111066795335991508645295804292710682548230656127871116221298116542135895232101073205720553692048227222967150619001816677211982049036617737676201911624343843181517274048056853409108323682029635928445762182179672319555398519444928490326169730210959732105884364038164508350561139591146647704598228093312838269272494091538827234854449490647505595426947073125955230720421380707272122598970836471027155836205663828941850323537032931043877757290087899546395586664437033127280614154878333064718870428489282874038552917976977501407688724000314921487059925168615159646658081052993021039799155917504220141658387848362425119751460404141528660413990201505192867861512327635447353770932816334205552378361323766630691191414778651234652171924857187444437912140360344101685283886939025782498890058100729673374524818700278917485583172185351028322702022298908626048172639922934468068272407194320002100634534332467743090665771743322617287490416093718431452228154266306021042323344100320640357821669706461742973206623702387996243122523537829767013537394199199869478854412640813856138851189855351351088840633260388306669684284221091210992473016222169451535393668453978965436742781306325314948372788215595068205691494264313597810988838571486509017200395613152520310572204148414426382739353433515205699373075435645603669727629362868632942535877184211611220549243802343637799996494075506118471666007862228034720438834021758732515846653180266513797286141400138418203469021794276780541179538937117887388717484443838016134657834602353697189559797385205582640300144297179407043838906176584184156093002375648585782152002437243712179337339157290411589289021281001048434562794617355568720465616560531578580548045099108867218477393135414474669454357090726294442200440519567159754363813112930235507302613553416306743165825240572720458359499198445875926596667470589877303330544986983798418279795496431904923498352626826618335939061720750980902466741014271036690906646636247036634399814704929124974616398814106674869840220832967170107659431458162028157345555264842804266638537985167666270419949842481184005337807180440978954278861641603786314821075380000213213464505122755483269201028620088878396934318415479495038891649319846041619372773148494144425656384774819834194182944442472478732382642427732290896780018723489227171675092910426166822283035361906932765063937517940721692541468452844418594579336860038921686037003021874008547249615963243393218136455231984008842885021484132030390105279929735423551491302047140807723003329694762259553031062379012702158234562959597456964608003626947267351674243007779780299708181672444583300629493707938338962051719013169658055875423259867832928442548948214716957386057363506106454574198477746003706516933737561024600765511891294207717778055258809377131699016569547324386340350949256501908733082418156224161881445209725733850051606077241897517273085110743811348666769104794535737854471240652222051905227754924620473115427392037812712738979711772830897961195606377989454426673370895814692544335402072924108308911790718833003272047200613827045930512004516120376721163970161499275294297056882053029792406539962369455362190725792329749728496592892671937844358207770480638215260159315987789048998090930722878703992394016022536861964031499201714307279244309780782975541109219290771251671688435072343220847995663853800590789865514345732971419483433631567419663504865415515527619478694471881560350841400390099049338125798730337176586160920582628293255815651319364690956190853952351996311415123364022871945490118195619788688363492736963487974903824292256457912715715081577805527716316858929152328035574809023179543420914129128287982918757362793524262591568476977237593167008077486356755492281242830266071354633724588453491399752190991015649072629366415584059059934893341606271501865244307274318531041737015797527071198101510929284215339819960134379233786878753007348478671557187912651421741333740994752005372683640599392773490823252503167250890016983193647049285744219106673004035886544685650432910040418731752315468491266566694727302114511907820139622299607091334945401359632137371993597896510520755722697979992529513412201817985755805572640447721628056402722072615302753424034914061179648863018042058568433776180189455656332745322642956205132964867335426559161224616188083876284544361624849104972846407363574926353284161213055198251513494481887189724286627756369945204805481016022825469051562249002702586521275401462511570119186652918470823594400739621246971004534237587020000591234757775192076447320206893670429411027290069574900668972201108055742110814765371032142069104287911973910881910832998700776935299299683889393245149790240517559367533304645265739938455545934108347720381458542993490264535280615436682674586262957347095445732372317214439519178332743918561448382766900104109246773359830913967421043865996585020670074564228817047116525299020262298108601900806485933845553095936402365237961532613061795410621210728618101249409463328219918595969156819829368360943963484899288573593738863778374831023884216765912894298723339721321262249880829295401945700032762998633890432639226949962473430348326195450635282829854378932218337471618522790264990761958616617498132881200335113762472226389447858614251500335053987539042995336447722891553751263652601889354452549712314359545198293611588329726584820965703564945097794857750960040413855526086884357793911047630693555649178211528441975439850754902821472770009500515319294505331540155937577687029398660726034612614392640726652747972339870290803055239386746525879068674230576704494325367182650939025305516331765482510858289144392771006690656502823714624941220281060230494984860015105400850972914411482161749035636214716493431085534483042348773689524281145245082888737205644888046211053903964719172328142240046205568387402742179861869827611136951260111934314022412627030051558564972908740123798878203951095039644021747467297040338335615078842124923642431941556228708639462908897417028280979268611938554133573348065023196624430169171502067275885332441202775962488139976122571817315104124254995637280433755252124290660148630064646380891447873605726846290141372402515936250067661887765747005920803612720817869040588610662806662860730645100369222963020991700997254622873491989787707519740097226772524406158000060816609837811757643448454983940117269836173167622523575055061158540121276461790051795223667110471148304507565947346676106831913841095189708242443606057762500256145978722406555252953274161526048970782500816265145796502781374302819940666576154110087577843384333788974041736924962619559213563130021038839964558459013834345974931229409299485961222545206859762172206420379465383107265209650437229067018738016199605887066352040591785176429939699551375723296667944321903336464312558059888688317123208695990865363640156148216144708848344164849430815456568373850320153994928070360339758350691826369609608723402915200553066773194716737303773261902160312939085239036253206712726515660434001229934791089051966057509448215248444541169505801608840632483673626483565236250269182462748193471078431078407661171665758938217744853079554240907006733291096503978835444396390698158059045980631708978991241231767060238349638263592313570886901107905406279025155398195263240027066814270048916460243238141621185259934199046126872667542902159844612843910910509422900136686319593649567267809178436757694465458634944776247460868613313173051420174023564245225697328514204331248115060008402482816009200202996102353583690707734250731902723589765031799938723126385322344949630063434222221431990064286138242056549215010446285846133130715699214940711655116622416498973456303605364049096530881525115672860201697618858431647138297918439604287433927733046322614044075890093822989056495960700976235029160755015890974500202718131445804043225567813628780750453621568532101294252331198296320762023805538764384731412395977680780705732549550056248648753000597395791752966246665011629771551558049264333317814526364898117253976309177217488035365451104309689622016613126701594776331702884933358149121367699344304896874999573550819079451946412850846074587648130069690900049180341815385655313921493298242793431888702150729210420565879622273216045979426318280027906664786744954433528869110952047783652430008871404860329917431654984824227405592771913481701269413067450596592823892632113399305109631088514502856752414032251031587303254220399621684777269708021916973792389933307593880540770129023268986587085586902681544031618893309892145506985454803959926595879201838884015774020207508025118006582321059857468130018574777050291948518427763562497351150217540370732883545755521741150736797840993793803232160018863599527824588170070259749154710831435267475914349458185907538403245112863903364771881541971628334803464639721984614349918294895791114466884710562068705298365402133072320954149151946847097873022190345621197333089082901728475451927850122932033336203924687081546002368092461411009768935967977924488204115743156933591105418943074161719119271316861099236900525014857286579117785514681058810047527860335371829468484407166801615885739873803419823465192980653976624193499112383672914264719204455622951850021364626392322791682057869237420466950174788252412505652998036494031185500799982235167757985431093754069262649091555263860119406857996878051654643426219252900174162784611464410384746996971540044368232254921404737909323227335700850874172825507799981203571728622456283694718110741318809024563031216746207520874741371169787196640916239346230236252036765513292260173941774935207340752713411817264250674725597209888064101184916634557276828934873642616989357831521723380196483721886391553747248882114739040200668650691727183850935587200320476740127972779733562633965261650542837671358091913825231663488940516598301156063274298942474911761402191161959191340535540262590785938724633417546057790848326201448566944256685902003376524060014500883476656906072914182908057853844004730129660266228365184227383655791612194596260631398072642496295194345719661800161182309808925831945800300132011155292958028781067318223757744589799664986660143691498887659612909826183545597841468806995403276389319339866617405510827360172969470806810358773935508217545908678830484910295523450074148980082533494400000275466602235543279709289928906150963772569193982124307173053986141775180715274214747277066909749667640809877345822393826110255837407659301491807436442534281273705479187605636089797193194813935105538499118413508897881684839682819883669281989613043852194731405707710607364346710528634188515924150930972579904320092193447877199994681638945839753828080028569587638107197477028824076023367365525925913384190655874549946023968077496446828326610487940166977785127784453186034925525554582912899649192568034480091472727064188852568520711000344755828782853085104965028048959546839480268411424251009284071115028107877843411443447805424757610577444283220454509542490004104846772714851409762573419867624932191260503506469752722829953190205157215095201795825454312307671596192574545301929420660916906614397713872210065982040097115468164343962559600834418656421001702946439117117681866914044161531393928403653077625218380675210814462844084477451208851038415248822957934578638953861528936989991429363233750684177872333299792995551898606875853788918698608165216074501810602322541399192983595045319451535075248687965465045574285525693665325494794004351087861879679225489857078017918218727102543801809083897182083538742366292832028340979029938327246665318524547178682504694429424927428961542535848196477918200710748525817234576239154233059479045405759972798088225147137207684515161782732517006396204416795052478589044880764382217454543938351750152872291194237717392694856266290767671863228546753421198197890857728176613909200584068367860370873446181015402228476817198436820939589606738011821322177433816629687956039316629199013926355060747877794617805361332501035281360276784592164463285712405467784493856113153802692997805227367180296425499654214815876982672233966782634379504168614615337129864173798071082814562539112257861849082613291165854297690463323334944017986224758942833305303744782687555588319140120434608348249128158824139208627941470296529572270265058113280698244432731287011722091933709208976531519977581613362278643291871626197279505442151266964144291538314089488352156881102901268696175359872268327427090514305048407062153681219195913588474253855565058551490650832996421129874263301060448158725962054101191733493267708047053674577711714852037586376937368223514593961079107606454362438961679231014728060649521673908860297216146845984911575634002557241542314695656782724602279355640406949469937807142353079749551048141819488662322691427927856782704937973907106765457184128933913485259755673895043784982216662235409866938391266801191581913336410662063804749192541160639234194349372692422201860335663607922062863859296218862390965300312522414332264482721577128759601903936441771469993156659536634689700640487127034335190529118192358318523227342325840952247385901281348659848736288133965883924225863746149366918640605582438020492160745922723704016800813614380476858501150372986190664611400924771761297071146323906948030274395850435915474366155520119706374557222520003387836316440304498364233761486750894812840257379474491779062829415849997870563424961717143472099716707671258141843236239778337783654074663812594714095801583105154441409894232899149130424838534765394241608768432429282529623285492848895137402313437834549446349310496953909640991023965060503084106939051820954726341755181948210127240702647608936078908446510911251044226576166265602886776241139001759259784735655458294686658787669463228960897652168897685509638098216999515081586109999013530555084891261892173841590498876576109934426549992863603403675277253296128712127284975018550158425090699999032963338815576179609818484856724199806612015535746106600393851605204426221897473301076808941839487099387562623949454622964945600962092895670652984670975039667839482704803241483368255824363209983073602559335068397716985251104257072425583471921466188659180793760467006742894649629662912350881943309851841404373698052040685851574065161981428180972358486751499456568412582682846142178179235231995667648130233829424363253114750987930777670356855281839350667408483332040596148302381752714598756206346276096927364357860590162094605361513600817216491765525445716430355966628661193355358439702196102464323754263775171398201470065039987406685665089524249036695715211255690624836291608487615802428346409471156906479725491195863338706515281428651582820411075671342079889836429384192361166202159888821088009987421602292507257227116305442918472904371058095482842925617259505039755013431655937812174299264756395483761741433858753844760512751483328287340796306469487060919804286456888690706334269402750374360515697928768773601258463197247910241277748001959619026104409207357140385737347711108910516945870447015759062708221877915544133597356004708971386747545621825710645368252514633341593850166837697985481283540481757656813712746104214480049116856558083164927103310725318424373469490149455553923080477805866146045195616943479659812924534391440707197961671990146205439992831015037986756816851294225869964758100931695415907881534339198078628513634300150447024198663131646314656036711733326109407524595474821760770368380131289522804357089140440046060582971087868183454490344339355008042251803602626509086157753931266912997008701536708306460741814409263852515313477505616434770313685100416497903628069183781839641498964840227894699308957140119092093025032086200296688553842269401251141832250988271087620258078449729662270647835099197083688490870519346019290762286363324447132298466146901926428983399039617897838873346582370920051468325554971839270255223752574881583349527558062291139091470571137573075372435453435079616619018473450241693181057918872527022832721762793469919632044297035394270573720400496336156654521641689669559288892119492075723907433281672888053069718735826804286959602343336756725288944672987111187268261618461730703486493881435939491217836227042133877733469313731896774982465598485774618474441040876072012394549489697435256103366206582778746195077953660050275843233518585153463018694346656694387384783421244400117479705489360108347367023065826027915638300256958330757513439015138233390275438964436755605993902601022113257054416293701414098960064009391200569986160003083799881806689118827662527149079478492607569270344779086844814772842910478110275064867397098482136734480830952946926681370201129780067205885849033976899241528118388008929424819312756465297652089122799936139970517235151708715669265239874185248368599280301736169197044853285246716419881092792410406002205858951306518181090984692741617818027009447462823391928525447381034994994091556293969812603483272507632081751148119979787016787861522847247640400258897357328321935099593280745353297781270957343861711682663281612593372271830941974206597215381856213083433390221646321703742339357267019255486453208601561239390893541193347408405225110532569601819578379033443285807336052802299606146018839751045626320338964197212945662296610896017362253359386838851739917602465980489889110529156173914979586034754891687252238777383175748935857473825451926473509037954164536975957472633714195837656248126702240634043764644422124601245295169876184134502577430425934378638087593055613901077563243787753956776835574937210686053975466939626993152406133116195826420198814857737086364605718788696756194226797363334071692687113335618706035554992985356192711164609199909235829615385835762386590395521795612863109661743476668937281246977363345369679107765444812607788348105009396673230103026361306437626461300120012366052639891652846210334158439833070433040175542749196877120463408169483188162587982224332940731817149054039336827085381754878229046996067384296406361551723419264271907646913696031961824622848109444932093091399800207550291456592083440544811388278261209183429242552160871492691269328774968168685026561907238576035812512611253210093530311359229539851724812787425308595447658041167934240851058563150354812549959109301604906688249794395719082791587518145445218772458347978085156548071934616715603871698476756846793779667337923368340383048353821992672349315721549431633677674707323707183454807253741193364301512628396503593308073376462777974252536600424731930305366974281371300912068152265424524713513413409800273086921662479034955420361939318744461656150490860255562609087858370033191838481051948045003352790803588119072894695154205416689380659776066535941005993788251390948057173612538187941821431019738030807106511659226617363501817848272493999950226923854768985236131774585311756010827028891883094005018763700167355968141072505771373778636570611080726163738675777120807016529223360804045804938058750923029727493182354932728407286206453002794433481474018366039660977830392736931465957109098522775880305581744107475594171538441186136930257417290273275079265872511488674160329989127269993858053151558581746278086041947656509561276040963306722188521036622708012339963033935871060607600980438432958357457313693753499913114640007039488055123094429730087657519304487823751336161569986197747725050756521635286178456284898039473574002633251490608585716539260591511769261535337551947220639529980792787039755496652598587238876066320608609283250814788351744094866399719569144740977729030971368014231779330560736748028351365142549408728021028457789693404922842375961110985060356867773221605114498623561166243467603615017427262060008014428635732546899185340226503606074790849100085368407021085978889789772049681892420319968618073724808419020286932867432480040498905001964186942074341027760690031408866370213892962495735936121210180825444869205114598662273297460812082827385748793498447346653833927505234870370697514411958976490260376875764523615656965937094779906663337600318444771875756291805794204819790925627366734951418997400839858564852637556372738955569689070481187087252756345177484458308353165999391929430248287786728256592869810536014473266656554526900724374281217502012991708610267902694238665634269561113037558023425810805696685919408475841467626201476750083053912915277276801452154632728090145914130485020769908796516095009058708208886461555508867303293741558980405730064223199459982933148313779859346323925154288991091294573816323579847553729282149864242261209438899544844310568910473295646898747451709308624481086177670411304576697019095647696340336176580920853149905293599829652081258709046692858416625886525803624193747503009935716413294315616016436804051432195925672905947440271623719586357809783210640070832120087164318761362633360115884045225210682789748140328736719747960201482223629756178254434319150905198148805891156958983455079785800487671499124303029649617644541860482010940176494094642072953214134812686500234848513450710932110930430369641608646111925159381052730032651070383583318328477173120621925269242518863801611723299478005127868202034976625005313879681911885414735979952427744914186973145786685318795540590918416825018015695724302169613968584449818073067300012478869778896700937888774161327404426360650770730879135802930990036746513453554819879040415814004550103230869447396468029117712140520096077400541408537205229371134746157120555703885114057429460387742607436634086391687181430849304118357510693624279275439336113426611999477689025210635348715534504755008515409254395439069786543814907487579303371754567344589072162053952113903360392654429597608311298135384442881696085261652484943594832018182575474164919897428774632094389626558344570677591713448079288439856376111595609707618639233065942464222159287084743688384064147611476283452359376641570145361634382874659147701581136618686771315481843341827776115986208070465404783304976377225069452680023701215296516910092761282919355092333105661404677954054868384774004920663061946194158870548370263262018726750113960345962373758943105084594191137355651826181511057844896455305520872597588069982273507110075933203272668942713666368542779728170749601298448265279624716379850367351484360495440239117723873075814728103591445938559483655551142267686468036806754982663807460182211471317414691441216118808009182891944995806391198941075369086993451501171386378981762420587130642656821558794385337532592855323880506262117343409637134926447912799715908433449621803006287533300923810599445272943172056893270371730668349434048049922794499532671640006653705788856100614302097367589745530317678174475069600295698568065673212734949236185630261137333074530671425901728782392059257640093022980337384134856564175151075158315957015238955207195337888789570092746330302508728026417427371241056263814054438736659406671284112457422780023975824104238709029393178262153887058355298851007988399968816820700716473271083853664433351330054496895869814670582848846944673424086188354599083367704242483427364852691575437735314866288679744807785300155204199912596938800736527348274251189022771879407647913439434796416375867762646257521650425553248337849404158463397734704290020990478760240795940202570502448378998305115011256926343886757647280496373345382305130969060438524486334073823523962868727022250117150887343126528074980392030321557837895461719299732114630210038155789365119308447949297074047271955705221994131688919726364527220013496731425022662492583560481254304015586131237943142072311654648150315917774742642860182500297398478621603312962938401016550384127945483863827731293071958132626911907122655604291691808529195310649182309480543947697901962772135596978365025699420080931648133367682579604068345535613238259224637806339493920072389764696721263105563609298267075061264752333258338680354647867717947191716388815105503466847420159022532836655487376071473532292903688164245131915798874767895967812469055825846909943892731667659888727508138277193561873989285885355705626104465566299078475795784232039389227787541057586746858451000299163472479132399037337414234524986727021990007814430789175164417736144478920247713727725717290996433816635086621467124571080976139258607767054706968824735292770241242360087323735458904731238884562877599133943624817190144319213686191154135084883325718583429065687936164089879755311403167503001919999963407312801655174683441889976867645173291482838805868832781190355856808521264436270950924461480994456976202808237839240613285979791708748335444171019026151778068955788564555293843514042363067861512919441598670752753252698748363329411310130013802796652755427984758743110434057855757317065528009804265340975177275777830467272847419911641828310770682638985072130740129116861012394162177792874622130596314634382624045121020730837845937224834859326966571213666023728700087675533589245946811173421596276205496927376431081905309642201122711006416135589197154414283350391780384007486445182554051716032550565816117581852635421550869389005776313209096276350343367594567878889800909355289951455662129330691922639105558350008899590593362667261149472783928996132856660934056963919080664005215933860421631806376698057639207987607343277384856019027532106467242076408330670812496052299917995979136370555258995734436610472744819002811248798879462420679903385240477153884103725605420474308948267408545160391937870902323060966002572891455666043090229522913246011834159792067382319080637042691098366755132448184294371442296487252299309281252823785473836862265351085446552553090276961819542961460556315556166625535855761423245617234546737639613237409983526239802209861313226524717036487229497770108844070336596556505662852650917722951212492833299937395470281203358943077534708520465032290328765103574438330101887555338939649326102242189808353580272475237218170082767669810374440867223069620156263163839721866040516258398421435079903142191051204553278613861123621182593918111263719201930691561560836161742925649284046394383885158351857429805037978562299436415717463571882593017135339316668025136450314316587904228906849079995874469879754969138244524530733555408794276727233333380054498774960267194426215271069992595507554806318929987984120935049730131112306558495205702305438944949120850743783591505602453292032803967978216155234943241631623075052544200887857419881821076207540525329884658457899652122688192528771545920770033453854950982313084543129000748494154936771264237972337526173913932235564279826475515622694153050662297036519180856566528736608036647738502792821658582980974543015809150788447499402812025137778628678132859631651648775829488068260055039156973248216943103452073910907565634592811759376607555985414889045477678205294728393239490830370969473808195138014116636015054487842477623127497107619118352688034703485727507499177749373582095590513127226523573794659109640940991103786673418421706649703719978292332938287021677655914883611475086390109483962404360929262753443293900868856630535084068251126614244697524921246345670139897005179865475241610275127057733313623568026796887593716967953777533496197479430953058606665235929440443184209701492303944315302392691170026937335661924101551386844014012915399049540766166052470656627769719084529368544555915589152057213776968346172451195210633144261759557374524642957294838961389303561371966591606307250668480236276869210701949537994766019063351809931844238224181805984789927607105384487276982330890597095009085374954409263056216747898251901726667732812757175583575777458812354857666541491427476932160376400534766310471419966817075149669075101761559319999656429121986723012365064389585066211502926229257430456583311167096026751912902953719378661485397062260321874322395225457084741083758477461051518517955052700268546014467537710343633176805528214315117132315120891598547186171621476784315585969437125868658159934923554448329175564216016310554273367212741710690103280291763841442145917749076245083429546417632614601767171102638886175265986895085242372885464167046061706887547057085583626337678085039503999446637717721251509640880877576779007334713165280943789768513507341364665397622322826332049597299806295560550068002904744990659064363353032062458258549431109898677883375667735540032137982789496202299194440637303058742935558443074771020820833620645264258516953339215105194197489291810569687022808144148568826149403112109784278303504218568665038353135405503501636627128307885191150520283295637123107783456734746179310708178026207958101131495171697273661287482342800861031086897219796153297427709398985070384839323149335729890392885220510622325693017719902950594906794193587580969134395368484944787641807455659904524912201743954994459228144573124503575162457908275581973525981874655400077387283636098924089519972833054922421486701186074262335445513283715189353817260434010393721107599910696637907791250742627615964715144584188564405239219197924393864867258173586465973088834887345608245657495029724636009371530677626168393054971886630026573925382025212776879456483178764693525952780468569638250555583916490661525807555473934375251081093232382442407997792642307154925889129973530158894706197568352917417214675548876684753379248583479009162673477436524826098332664941544815294800607981740302614753527908943444396764860174134402580081840396997879775989040209371732791399942200281415401206060741133476547252636238386670483495786602000739125169399650898041414729866434612681805383669225736967324347891318352051923435762538685318924092255838721031938934574927814794191889356241684570946072153366618093086103163861715698101100697784380873020482011591655032128640018201127965329998562346389256712040110640953804190569796598422643044957981009793892657551259349053804406141664707095847372168523000485850069236368238665077188888714794543087740406955478292578717249429082521373499968127711944340289991681993510283997269328619839507217078187855471594408360357960988699223966981759489010601479481302194371686679678981084208881195486376268794853719964689413391446557649801556934420924006202982716065770268461888484959264184915391956413602980188479028676381616466529452415339272771852111613110828047644873672957025142503622097317170420929588054184425774315091587258263799409119606185235496827909945474550735134223966537135713494343378349099105896322280122826030555801942449587742872875404182062972687101690405156416440927707577738893355118304862605685876405292875072682926117336857382546834487760460006668244999083333392098062387028212816930369266492452576992919012744965450521518777599828931100631806230548363340183182114386767206208339222946517959839402928085377032257448622111433427536995516577035392275267139565328757801645747949425960009170540975527618745267036855979455353687821147045948177026573649455153705749857413833806971790423949906924106738793576507436730168470558018990956004529520970175691531634337653544688043345721458402857531905527488227873464242707824162255935207614447911498303889160727500327131813764320411034128274461420740478040690383954662948819973072109282786278107364087041881428945056138913334917763551259624703306983205117561742558708265446664477307611233316152454547482685615213579395160283213157656129441900044737449417863039477307728750217756296144033656678648589323642992219897257222628175351538170449614082574107539200628961267999690634038084029774032849084588545283527224565038875961178798613831780820581308968404453908431793673101535610662685249434672498105147271522270849389491769902382892470390304905126960448233480418777031181135056663679809722925785830139664489064108744230109061124371903302378868578507286166290274024774021413057453656054404044139586048345531395909380986497237231308893129248836727469109717662875694310206345607457519377365605442852809095408534078357922497540036437745849582493386704902603314894443907001782928107713619781701982021500668600240168425395778492356876847777717131956668734041105867516604236334268437807229641461225650208864514041390718175681810748739744901249001471258901025554617490972862412171343607589891894485467989305788185871531704294529102136203624578821232200247229190516350889343565553614940264412951094751891667124666411396008764001917339399077698223268392174741321619360369363418178085161780106582600181652903863967977413243497887601179549272444435411376873975109302040019561264270985113284991270592905455120043445129982172812296315267055756297326945662951622288137173994317540018722249487653500550385039037323319974109022664570492246684983955348358785851567075486349759564703436482805711192297678591724081899012388478851100493471320857546323934963602857750616897876585679738094096779718738441306484754196018267773150316014428454153255088728496338233599758604867424610907082904529511294879301750857762128099232845250654509643742769602493550348047077168496940447454725160614607390813286855756783094565206891092163140025198245803742010925944849525713826070209967020895587713164919204358956527631386029804059535199791648856161723762001172512087371986048917480178049490411563099494436378458791628649682403048783980320057691832056317544927725778177196190818207188799624351630011938753891583669708480500961436976834477049527456873689092827056257953089722820748201281769113087621110208356444019903906114489797390587776289519979775029300904802428382363799135033349713909419523236994395392775270287322771689786259817028792462066046158473425684850783732097319640922546713345720880012468095872421164061112100586995703563694033466318027913792542242799132133304353957837089606041424968840971440491005405561953187562451587192087786166437387627531478924068281559666580719339707839270343927026353802946326202701722115626577144491494913763522771136415728987242172375934143927023931294286062458926142765331044261918169439208513860818617741131766027207875136399653598168265027782210316649053796921241392463624948883482541280398513930330624691868876690045277200673102110300093276046357434859035528683585666587373075052730418019237800532406574068747722350076065337942559759920299741822102723153878888085735637988988392755368406643035823518983956174703598732657205290901701665566761788675192682884245042751399822713297896618338314898100872936880801406017824020350327889805435950795832919248008789751087354345542996743839031521747192689434021163390395450566921206558637720294212482229459008676205579881699152662557452341239958595386648596253330660962424980606383652693387410092377115874741140472669877957090450929270532404367798657056693449674719515980869276591784772036838338571789435696891115993275577735199999235460719861465971021834373257413550738194652941720469549283612374731936583821951776544372192539458478341535700000338773935617955363820866599076396095183601277526986490072933898666728205015909760101974907936355982174764179619660076267367837098642655463475160692916941224592594777292083186017772609241245221571970221593306534271543560682089649021629677983447352236927303984037657851397604950231337714156077011704915299299675499654239487131290051191612555261619567430616884826412094550928096328096030478798442033795657394550130286840897233669658988601683595702936534433995708179313046828885345922142004802093041526103171414512638336924009135037393760587090879930048882920563968181024899119921000526855828266553914022953570499464997031814791921008367844873871525549536113747011941874058011440645622946105861264192791056217732530682006144898395190323523572871981611602958988812873857099671471673558325613748416839350839786017654642925948527787047592684413417101748944541047660442523309621559228200491343129132535381020340879052553438868456360163243117808189863444743624283725925301736908253373991351489063881518541379165626228086351618000597168822681734981817358029079649147672930953624688612334015688039182398985578834527367021029210642014082860812118508399086164156632724375127724721446080678513021056086236046960189678754502768416883436420864982233205946600361728574551580289823749598353688615226415758340808046938918131186683850666259034256196207001465348120814531088640569793314988899220174819911351915218767719764606048381974948371281548732467669165836197994274218129855906738868507341749968738590263924172530872068681317928194732205597479284380155040426401674127384916470361377492412885419020978136376988788735236252868940068522162552057084184832233135965589475781692199113897929320078032246446811004706468598646891171500287571479878464384577078167736061006064237059013509610773505363152236731667220521323884958122840764834342854256993634316876907880353130286667610329175416563313171679040778133671247059781439075033513455405103787309128381698299571136779264713172151545227227922315754812328509542125043550447131470760962897629496097119794838063837179837022274360608699425786678232190649414662082785448028908206407798075153897562518146384247171356531714810631370401153049210257089972175421978109141513606586693946686963641117121532070709991721577410430718742776990688967056801902230550301601390375222215983645097105291579009276932775067400428338423339147291136993019663947698398361095918865618953739902971286760021841157456709114989803886977930650306424322448501523671780400411065189954741189768428447467913561282474087892829828935680364348348806792175180574498034841423172362002937871630899323276059463176365805327536800991501387005785460251200904750207758516800233401565329047430865517647690982131682156693512930740774746844579868859187820401572512396827433758709198975043361000962475161061042517250676343746239612015697053156977530481213020453037564030061872956959826311826556964612163028834658484905187443355816201619143737737342630678836361246224327640520219341842631139352461183432750959818379482090042557355035090927876075139235238759188450267202169666775917789281718481723427353485543615376142328830802666954701219151806679259280110848206854342593922069517997783192219701029754737849433487396268983943685820753286688385372510262470613172047967398434211806326346619558451196370206360274960929987359314410115948801000563659075584750689462064489483359133072120205308556250474497955718989748013541178682667413040584025830918606763583991871977860868115227180216508365962391703042420160806986503098815507262349278439750129189169397391415774198993613090292198662790797236408941462148092460294102984050327513399995240877237188252329398703759321835735517925599940597856826836123599587592743887208915623619914176360634469463545828224299709135590950612972030205150980042535829335444995897810665857882785377236737367589675015621700133639680861961936732314331240412131651535420224071687425223927053512193822290379629404249941055199036915131244818687640709288182266724744176458949439579176294464636214673717656202477131357770797421320812716078357097578015170221340045604036247099251528542459964994242194563148295043097468550756379801055418009910205143877110544726534705335901420304624285628498878329060880510133338382772989125616366394856740934310479867177371068541019427242898353060566098292501146240902075229891725510647525290900776361657141059703261299477621541787070153280494040993397607937577564180041853383808889682388852075582913036242655475721311324896679918447311573260345616691301004640762775556156233895380018309142385014567016596539180582609162290314131128921229676912968641533624746562407241711733926426055729469265021347888536576235245960067484643363665969085446598984626745318110958546774420630064764984730957968937978759602362932955937607813861005573377168309171990902896073067633029302594124061896480043178045436949893774945509680442061273538842729716638118852033141854834081979509064158893931744985635947456029580517437249706810219204722838085681467594015245787217005323977531976110129266416191286993249648142142757247401927052246042534362135084448973706978409074018131656785932871282112959842866232394842477878136029069729596053848544620098885309821644139475514087046504185457386368802490589691339474902060082441174006870562822068042171632082911325782720384909938950548759153734493348933005531157026881893132783459910435060294876303428702749269092100146688386461921267346964773906637195042182116188493905580867045348721997155105669302136032557456966553704890308762120345387791935400637894558702952882472909298272386369867232461898181437315587607109049752650461742555627126146215291700537935673410379779359540975931436381447624660518956909609531570246674949927097884217905169872844045660945658195286945285144225105167981090319218557972919004617652505189220983724274243379244456801443484110221179158345843183828036188943472719969851801089034207428625540649642305398942067125718114093975613874124059107074986127401654400770424064891030241235632349449846324797959339722267515469948264274840370677547187903171609569357616183738077006110800120113666284960247709146060415829566538993459347947249775825429739769155657597826704882401587610433095129351921964219866407641300590785318992788059761926370631752592293527438190779128580493118129273370979779995869548709108985659009548765337214700419291139103974642767347756779676407339479681089672060489750373309222307720673277292552333865494919213718929654785127158839797287450683625992330477538350552886224691742526171435169106318573619910618417764873359195849468008932649144579304548313890228495881598140160578784424596791438198418213220045092834073625755571274398956392627243254282527918814723431223481919594374473282673121793556951604153145320936191174238693964854648605163777151186441104886928647169058086405481146404364765610889868365345585054627994389466475815159871233460350448860418597317240568685552499875126147769188421049134659809304644711901392804915743317552080874645798777423211919193578508486578654808209696947105884359998207829712687932692498180607718831439811696350147408983173508429601299245892815074090020781421431347100530663027125302348657833368291670276599051351023296419275643636273520401721314693028967016715758304119153065699374769275556161180183925397685232378425625411989287716310402614636663862326499360431289207703333601107046228456619507827718170226397655013147344989727349343330067681722924883258331535941859907869557909629359030106952082436752309937324932150818547123568846928436328581752561529655109667737267161635745517946217128194367535097362962559207878854275204854660775302289340207337356290586436697985897366543780826170104598975532081383898542472451556317378510669286010296141823731323647685131450964188609546403252354247458490674581774564915421085273727265921592945676186910794912044327643276336680602825707118202398482685341547796376060831695455972578183657646061490196565544199696113682106886843498497565632996793173892036160671527038512412039852990686469474130005391857613673843035027591311567693922097401093399200971693978947677147762266459408819927801266244293570352643801121453082017446655224230649803728428853699236106562750191234472922787114725793352294161571433699420536324894515756680144806720584878020031417491488210043817749459759828968471876620040796640964349113093008788606654155361407088842594617678597790779909679339545091196406489427482348282482940260966376410442767691783162068692973173095491803182291026256917258895329509674521018681358810046434360795924607490156778747208757086639227811139383382825413659393318022723909985774646928945600888691626357371970944754680668050999758177294915606600989836546616509350886791000357794079348327902824568791036513253208356991826117085551028077293929272261288918842871538602076326651627821610540009568798720117766557659131839517011975908198251426160612055369264297415777991934421809972842111968138802125697999289350289052618713576734303588541113249683283373449053727329887873282925634175229760075939149533880771877503052056230337650324833534997675075916510283868289154232279667644565179742336411033946219513714242011495784219688887465400048120498800472977407396140310585512734909346113052106891899047194037520271184729423725110167204293183159473027624270544401288816418113866308975524407441679154826587184359687400098894017110002027424487635700414843966330621222123338205062898917251454014708172897073478156762026629334678408836366424282038426035001439821858826471001253487657889687674332650744233119587605131051137483420601617309255499951393517552440554993807213493350109615039327834967420469473647394901219413653525499929071353723106485805713416740438411306126022825928870679956250107406974136973728250496040612403464479899160401502801695355571892139356887636034841289924327953070254045684091317092362719590085434068769085059337037066162149836849938791481206305529386418165369151464847351689364949666755712798193401930545798348291859077310495432097922945485187972435646685668511840833339721765938627458679053494796843343733322346863588911999816151131915936576368123345116674830205343593727475404171704314483733292307875082758520206369801460776965508663677361225924191997561328526937655524399803798997088840858258629810192057575818966686278293240734980343669954583835371202641642433892302443641155385871798733321132792680798608341373804430804701449621126841722159386106598250130910154859115980400431564493586147474335567876065595439221685250590357564883996699579968445089142525622445682323836050463581660836712680280376704245868595084368312256887929056123183536884450324291320154345752685060376142310425477567908067199887531645658759685671475322800935243645759799107619568694837394167646741090722545047115927187435020152109291009532113805713244478775299335586186910011583452237766532038996282302288341662954884749239944774392057386174600802599090428899415913322944173786855101068549548219729948451431470184026330141350914476505921924945967921558020135752261333974413858302927886648982701402416177036601127874694497382383352397386543312441338540809954997026608351272141306313638061957721288919030590439640873663410157981148427739055515867090174521829503756264484019632076005055838063940669707244092302766440408939586682646747500854046222616797357259846487251790661536943697510451349060670582164782804583759198274496281679727260157239278888934425441821919821836653094741635735242047971909799285677242338925458005877052691494159881676837862596186920897601062139922925472340720909914914984251980933252920588224793424430206761737299330551511594906755052858276928348738701658104004348318035105443657119849226192338353610942169982790522481172296156242965146065257096928762316572771522547556422331097641412435548693464529940646074654001755083284669715433382914183084723719707674567690333200891195848423945050770381178575137629687122066133569109983734694215970161769103967721149656438845003699407012702765954444847524487245193101555537321960962992613877850293180013670947199549513511085794916068301519234995265492496450426518319322410998035168846294106169133360565919393725991650527002055001134547826987743486593455911987342517750644007363263927639219906410766306972576294209171582359999693760150459642110424372770929065918910842709933954672447101979022447510337458132118137432903859325422819568001776529642086436907465726452380474199461308479472400700353826148119790525286487364738723685173226548173337648781488724448509747449182903544513745520833173983545567287690090900529944564123089007401269451413088280090697935033738310730806374908120119501093516927562230936226704577791326245374823340977021789927332880288742398560071212130681483563665118453395115885022100308278895019301474611776829044215449638508859067096628178938881304188214066039211384210447423417380092395438046891525293231097770475242649270928006074551218765823439209915904524096452726684848308878061871895865473609433072627180429425221775411856880690509596836073859611017715724755728551594273288601995147089725636422626179329409460241884869836417660682206894838986448216624398866895094444212155097538278942640663130023734900311662199878638924165931474512833921217667114284332685424360519855430601785311641279644651348321706746527337108026960425787152187348198563167198335957616362950661845988607630473113898331359800419022768120421711180044453354150669870797579904311739494429361075570560464845847676937751700187773766953800395038177650222224900380361346686357467092652990135389483149739307842288780736445235499458448352093568594483907153646342776351240210285549340539290792258816974263322785155161206315523651430179582074654104765749154876936693134645818702760297652574592727672909057067283273987631450709002215100406924708627040024873052574116902110259362956327090870425754795494248313456178918684671465985556730567804692049025075555641029141455238328370031141869697618452931731059408525162525675844634675120942870696835286943393746297677875344831880795445302802604693722316659458044939330252177656399064190607947713215046999960829319309573938209232881432106073784640962949257202421624806451988500370133063954897524331560870137983998302410023222873113855721278281613751355224344451915544097386263333841848756464846840218514960944797636905247907092179199450892881184885967904139715778206153982127672420997572182981651934508977595012363335905110877138822113530059109928551482901160237228691780843532880670802021031899627276852003521725666933012796326662238024986878526411500095004360253801099516675827049430222792250890558514132640589787638095284547855369842033398409421853575145442188125773242473117412045067094094308650163259433619165880505844525056710626682497368999502877934110560976397583099934895263293930942791285194402007873807540168945335676083442726667517044066465714683868625454493897741345475722420650191366251916846417158152395972374577611617985527091722839934527057152955703882388394951371309528862798281062085320249950847267179248977884202386754828202496369031523838276197825745209069008387700550974808010509327114533728817293460165681991031490957516397088251651455732930128149907713650942168840119088854690785552817160781281159719399875078388427770899633189780699908481671855325323388583864013136421373195885678722603363279198254234650967258927436007586780254479079031362941035859904053744707776353998878200098802377859572117889203290835139782448256862000508447349735195105552132270117257543362866668122104314973374336947165330453787510686009642653726694106918049309093055979153682117636133076386139172971559378949463997634973131636226537642740481982854773674756941555274385930969518198969235215786711127547201990931985254991815015084424699096054080427250848270533053063959402723124227560961952734808494204549828170507202167946885643564120532731779108388632933140944708197274925590898243655560271841127918599831342604422937692389055451302285978429562937806843402259682759874550549569123193598659907452934101351348311778263087222410729756764051994080891810552536184816745947429461404724076688961693210991637739546219397408553970820643301358220677399342345959426744603679843247838511473853477735779246711732589340445771775918847171107347206242759942064744549380466263570513325563823534320567818669359997747835623904289488419032505200399392868055920136314621860327227055448220590942088238930355328094237077998341470982478109604688247435238852141161783996279825232178932710829305839216224699964713336189061442577358726778388345720531534809658734399418916801190605557186468210141263551545643748034937447882297295210173556684771906353390894323143573738010612838487700021037353636974149483438255953128537901493026513327215070104882086388741212823767455751196280395589755612074265860855017909496615039176269390733076393570699176900220468406815646069475574015523689873906118327986053073865722536896667318353110264504554365222898518985012583566546952964189705721385485775975293088304854930449140281387262754112932481567841114785083739378728481877068102218521740090923165394111186260981846848522000551250331880360168287807145301162439149737794221360746794618590987393960886561179049066572367106248202590021966333878182646622974666800437120682591372856854052032562246668974752612067824280881217873865141908934122655020608465140601656095533431377437265150512329413959339032294302735359672365672213382356087367183119931667981907060041603993011840472870604200350586115554242600339374411177814864567214130649121503207751646518334712090261283840261152182610933505700990190077852007270231024020050159768377383145992940641280346136884730704366559899896000355123468787939085981814738939334523145971672980324471369206048440937540519933784269522814873770534610275280669506103779826462817357041178387652485266836085696716796625301362725436013359124052404120642215868302335330941637856360745171477258879730177830884650045990988533112572390747747478657571686313343932539476128673149572317864292739752857551601333486884743132083553995850583093420158898106975376653238087504006458005414242379334920710441784004141409215875719953295770758820270978822490913032477361254509767151363197059322403433892642601424714267641943764478932612170727335517632509879917243845819384765789024685790215178667010001800877219200816364595434097345219634845504087301713525316405321889986432594482424847446882557258734085230042861650518943887605227066884729101097766382988640696334557011173727654723029030980828299694633892812366355064142754519182419894635289202080103526193886576070332109407451710377901804203722786157017283772100545900419568482344658823918758536196684686233318760505241302901717075454899051256440758011002258262415925010673126646786767427836915932841425854318825092375868417358291128956886300241956434991656660567600775372381483172738170872995476250483781419113994390033920413451530494423465823423132063948016183767631284212339813448283413166239871487953897489155488833938537207989408855088878075541742732215322890851309524214489407185663070184930080015251366559871943028019192468905197710586486018852161075478633493499943892282651536911817634552175047284103558684283706799833458101620476863534257753215137956729841682902646667425870984032940880043278019310648716491017748935173161207936403462681802994564979202772908416147126318471217278750595676443249486571904605326433918154406938899639657361210295723181135424832143350549128821960724474464036406651501684067193384697472574534911935372064737085259579196678321360526448223406543616786670924084850189408769743788604052179228816479687552468894398701690234855331827163658681611142487385272776302665428782185337774091624557922743458615764712596551508062732915008467150179138931583236960277796835242415436826916450906924407983199592900445763519246725134285757571646670537355406746473574513091300804656680230868195116408038621842064476381332703276451477104566957326264493348844063352108094242425735384999274302092078233855214216051241187927584799853723414305732193516724520371120936129304643278968620254357742940017788650682763196651392563360591272530947530285142845705582874826294245934775917272715085403629870915691652372767811749346981522198919765068665964461899660572272597235958615586311795759051596781482062893671921054547904170624469380047822654711724352638121888508448333867495764695864082563848587262999790810828992888866688098491195534739629620995912392985683067581932906502680270645793043388848666976104475210223732434778321084997553131268898968272492113499768666921655593627063196137742076639665924823765970453456763807228078519316024343359940002094595940450423925870604476249576454016189455781408531399323251659887447599142385451497286141495362415854941210860451969102001363672282503404005904544416758739430658343683284129665434357388353437290595136713591088950826557337355258282175069912712821519660078087882538206397102831071509776787777050666886394502827086680536607897801697960462876454089124348642714061666342490168597165466729167053732580635641267344276505877690419271130682682904515405728006401765152316982738948296255953854457965997874417539629222239712016464663131322254874770982224461436917397122117652049153628954776486508196098212993100244639507034579064018974132995558037176131879544022887769158995328100487780453694005038173068782512743869155388530567786401188272115877900365179255917109581389798749119647894218082583233213998994432344207248261778325208814944669086485038811685960776644199016719748960402220863525586558333062092690515903592934438081088098034269152831467971514780979040244797702126530868970165319306880389904179420082175754574527972779971483822113600689827099699102933769726893934457368557060249809267795377225646746542699648690296165161546652561020172629290944366821524119353460310802491176621124168541235666897662596772288013967523310052707620306148389428237741514603274792571710474900391013358818482924456765258468479805104902992628736681833348436997815081811406680827188492626288411054451308760041225848386177666538383842584787869639898126030095246153181763175962457372297233934240663874309683863012364622395459636039404481276885808781216947164476768600753772091586196873470542896077474118209632680277636342856101067195571779665063968739581701927855621352316697664793164836094666072247002240014461293020484779473681053023792214523818928877429010554748968273705028397228067548206947533695034857482166278799338888918845159518061799603806804882947741499653956803458343158971492105071390590231354467621708864920498705029038011370295889559395075142339081082524754571253961881312406776369693495096981139650255195467250316859082403708311349915561728387129145049244975942610506899240967853142717555418044637333630649814789741208057498618338516841751652778800456494791564919420881813953341473114326349234548196606787153032511303102140051068925503621888486549204314529196229469567697535327904734876598575979389223251519740322426229499142196182952642990651216852824229469410173850635570247570841884132740666828500983103065862076394688222779082745216657629566234569581875380034592109837387039147650302683587414214864923611430641194981446189925528498786954849855860677897125082984187397382939641052015035641086027779455605436549560154711123300614041622728275179701700611287349763737500184230320201550566029372606169798677082149548966819728101405883036245124131199926625879155379085304046239465049066318822575894031019538648921454333363813469132582095382818370266955239356559333089309462748384313600879451753796493239480800396536341080656744599536059289947216607170448801261632941119102381531246123695711654523393125510486246019859102485871453926895685915346303297920487709929254161893600006476903629341629191535019202646394062427845918052544244609885878507243492960791001024268865683760110537269136912447408876636410365082811343983291888105865150285691825833540558504482160423220630915489005681104620952349936057150463429824337939954174510064785802646288806662691544492768569243611217448361073346612340500001734719982890294324598814805319396102729155611906209108792473249991604636805793093676321634905490737267156356701808770493681611972502208137716363159550234187366850329437961912098294849672744973004964427340596988984714042705564084033217280402595514753881456321339668889531565643060858323324706050769947298165285965517542674357801747393917056959355685818255200492876908647826656872899029703449902864401675154852554296414636858014077957479842764305026511836782164046107931139686700985582894648842622435390212821249340617169002772826051541271947684688397703824466368709772113243395870806885236458715756843617597243466109650439334043712576994222565104593327610755699284078681550061731755257107137615119924602338775616868282482643173300222449933954283369838185102952312413808166200448465219021217982124457882965574708634138585562264308715384805246166533019907277778565667403788810007476604531057138429018468058992107277268987928244135887160466838899950176555882295656209644920887598160680572669967362742635953037404727607388361459728881244738380124196909332629149504797465934312409109624816164424408853250929527380647597676923893031905243989081727186732781431899901289773302779108099041282880218627835382181432206665418123793681713144390714169764604754430777054011594010828213577028515864133868365198619773199567697818059375611462046391933594260695956608974256843331759644068703249505268325235142438807759890267665058404715112133244883790351420144865783755975681300694184072946746513719422301883546267098949770527516448631260177667346575787529178229294539299734243435078850743693956566438986949801504078226161042971304858498193983293735899582124196631597890903017260779110990588130722591155680510528271507961655315064817127625044219867270906832685142172117085051478124929663459756286614022314147175420051625594289652078638277842516523576717884175302061344342899772099220397296808318025249120476412271444493301376480997561559351480941553131876701426449413076557689499418480387705223276820441933182608801365873235781075091568276576621354515442202646043500029579756045928515404049792008027869848670660045508875286244571172201218740469518396107605141883274759118406174402648632652536274547654988853761010387063091386168984992240247160618828964039885531812582889951465860677899696427183624516820787285554767300588632081125893272072872327490602511551441506318555424546889865632992165790913436364291945639128570262944104947790084459521766384727588662543906501775141647209506540942360273150633267951168929117772102995825143999486842312421775011584510901035742118633367676770572451166389454235292142093366169198024075115273380822751663096165161072154725903388525375086259472290755937072391755951927772311617865075845510210104888489508929159531408652703413060836064946675319069666557603447391496151506928396255343570203097829440504467890480686768400854168417136462118415331074451066837534947942033684108746182568174723614202299301475229756140627767222848714471284906563257780606882330367781127558708582833836830930595088324780442287002570042982243507460544193556430759285720671301601098297853882895984644349251063974286950845286080869103668396016054101628801478288085791265557274491570558850203837878650350670432083692616112723909625175315121187016110043606724361162386738980906606081729906788339145928506362062484229755142393143610067013672830137231458195271718640236344624931277535839941757123857572179572103386096781163430886417062831040046620042980078659439327765875366302724730616596674409340345574652025101301856727301774839832479336973909661710111516186411730491064084923174540983076472234726598432226163907704508665459428075943456297486228631628270970729747847889902139379580494226734719398946425264987005087405352618577992831449385483111001994744775744399189836750134385004367948782591491565212235270176979671684556346218491471561448106345272035713405696710483229420654527848784954916738295813025738914443394491277994559900561284702090640030212826159215364996459481814760913210800326450545966746054958295501542107193638476194429041111679174984481287029595034917931518712135432582761341374599450297904224102728628939540290000955684490236100909267852568226593084847874975101462872912939344501882713759046590659467037383405576326794024952289282206871461194728636383008967590133378524760121302215852607581694831853622263707557429033803099700807183689203847795462910364522902386732686338591458921453678399899941968484270160072947599673133591003869925620369693906648199930153865544211209044760024023348973840723040555064313075100403131138158248253547976981819933064983539695571476963682620588861023988249320428755946684194739628081645030844574028334262314517393244415030908874566545755498977340669410253731836017443675953081605195462813961244427556754910680496248071972928580353331937668833358530348661106022937373648059846437413996886400326221556616466341768033219903053121508714763670081011506569630223687435682334340900400335621697773827592012559874727825646045040794082194785198055971112231130001991305848451118077754692837445647277046985378900640007650808562755426118554143549225098418040702608855295039117308559019046848103158588075843097183604939072565811959475740998121789996965354953346016219739516141382990819101099766812524484918160835873605906937427168333709759893998897688480149687557574372298284014034734024782050824157886445949262442634553152189566026392848892824404605143603859705366480622713923237948294556584679874697393011708846387133898230152534555594646844809681012436867282367196810755534970054483768081922431388008458406891313153629748006737595630322420956534318080906563481631135691114733685905822511870091155433142836846543358874681642449226240026445614401490002881848939899113133532108209662999893189362731593453182556187644880336297174285343908193032544505898619001129178034229032926960455922883709342660175497046869499498940177849389655706481376901270237544783201320130278480912960514295499108065545292360694090473379008749802749998977620914007681951231810299826243039027416381138484727750538910769384941685632303527807208148448088366507033612490692415985324784419460769543711923942807824525332573741149728725538284154445043043676839779692360336297166295541254079358774615639338111941241054357493150177861174015327398256163067267878280112928914814390834394474383397209074760750321707051196446309460140921705550142731312856405347759381272411270556842285557087991610807905881944947547044506343227459589467248226756505704661378787235026395982355271543137077375447519181424590302002288549061449497870520247382756217363755623028034970204327573819165060357146414278379946737484492382885311308131251596006069083405706287813931289132595225825679876971640002231429895017515149168693033632590963353974681066578815048797855109970207564045654291373247733674184507415841566114757951946494508770231047111730126024417192399759885084489613285869581380472656801362333191127910299026126330996921216849365088597048120715452498658520320187689849743882376817964205241711115284764872696267201109411965369589630114524050994442920005934449701812910575549247107541130031157745023334061303166315713866283464894528371572319423075031069705755705737892142613340373383002145217489828046961635155634922780832635989015869832066010610608541958349327503707617760929232355278753219428064984623247921259498903279774132309017276474095574431433401554001408997807774299471107093520171018773764285660360653872045792599733448437042995494288396919522751301076887615878915764308818068065063499696911983781346637657159215266700079342294796980656628422899884156241027399795000461892645425249478776976444675532431780372156347845034107080457031680737672337758548614888852041581299129993199028238008347889028420903304723399510981143471998318786251416129119839868444377645271278839199267176991349425642020738386263214520352862915731950840079557175369795658915808438778582897721067159027037637161148095162664954633653268245574513004636434580663214377035568435503855362800854499707871196325275497585293049727728650771334684374145273848847082512009774896339454591342544249527009798534210008903441653615976275861397264652337708010541646008333938903649223359912258615047678440097069279276539189349555375985579991380187844485515559502261214204185322440671316766077787325211643551863671496679480395504849544869487387129550154897188635181988710764924855692489272630008813936289251547271080607743714650085688709946140129105381219724986083686689348890466087314586066027551886047503621615421420032685640451833796117967390766414342610230266486852646614828426409362160151629082214681342947574275100388847679546276080276200877807081364880166103857303730407447016802801683804332068435010548265669168380191952824444605050844714469116759990554905734741163279377022880376745455037287856673185516194401977199021651145996008094701212837751127019982055923297587371943729496508694365465358478124789967205287866271143752697652951289551031727135810626517852388204871126394058646981930076727963136803985395149531645868010115373747687121053381235101289561554756751460622781982598890978934474227137451328341108452643708881536093108975369592129507410925893941161880708853844259484224921116405210097644419194506012242966486895893461082906675361704591219467986060138246436125525520611819536079498010374436643361278429268407158120524945285022217330402456053820774318084789268979423017978502202645071634272210275849151609953185191771628880919790313427555912338035119254536723428865463642029275359818953983845340950048501399519473635629772024653857121959202230369170006648831951301982280566613902474847259256114227355507011418156056386139183334275755642266010229716130163395612430830617906919956659780306428330276012323734250356131693832089580858813570217256755614260073493403975810305623219265614197531078458611445295582092616277766967897691677438985350395665451886159863994571496412363036334697938007014899905105696153231743325809778435541974836759725028931155406565607016726341923336752142027963523393802444809919194992862548913644465390218532826873377399078526658366610137463827784106602530861183510040383818684297869798220251737799180794096674218557774544817021269546384433596386842435214804548936633644467411262588137646745944491003592620487980770853428804122953175101630160148822168579676309800897577338828586976604020438225855266778147486109726402255376379290093867026765566011101764108237842973514041355070149777919200711924457682890640538189783008654330914511391484139591001847224333979231514349784609859926872688589611432737949161307995685841699374029693509817725797957744884117328823564216087659185607555372584030708829327203532314468510866657633373385285053120558502407965749568561468172933928505027367361680392501861519503598441909640623177298582406108571900179652741924161147926100705496520535243107216823309120901746012249957478144551783703484963616244031416502832961830860850365161208147569935477239459935664131860812100950304564609599267294611935112627961259943723030165128683236561601260771281637826079026422029201790136453564317065814352953268624372748784472902415481638025634505017122363216757383144803805480375123739432619515977503357748703529457175654791079310011183022003082403880539610046138150834293577232734938180552558509946902037827084348261648468784354386320302113934532810051119090833045835151589867777325810494641604139147490604991622979318914431144787431650529288968828874727512628050783219235087518023454726376825254082239724297431188004157800442895097377793856175248138578713412753322715699561663686457206641239359572246381884399821503022353402633486487574486941572055707399884582635092652584275952913217313331853634595406623034191733295740822798546153793494014691164392826489652277585356437670325876356137392446812923026736087676175952306295949252426402872633081221065438874705184013383388732317103751737480381401855182815001852872180380157742961659556739485459560303817802888339925549506231502542080221613961654711483496883610442498983364435838077546951006174766317210169673561940741958891570828462432747824755980760536477949721397436074487845679743764387778720143972635937935288134114892460161845895499967431442787119144603031090731618829942793706664055362049935687388502848408195126933018699773287109111491679391763903902816085177049103808131969902941347461263804778855735839953504169734556768603570640693220655862384273332352209810741383130468699058013053726533609317430339124321419259683369040435233661520889434731508196629404634968496125072542232580733802352661219814386491775020960787008308159525990390709553651444442630886051893292584044204235757860240103981579616712356100490631178098130778727429093439837315423303945363607734032519593063765389405799225844163961359944862664824710321951662396335330383989392717867178484723650592174355926400810529542544752745714939963561169019641099210287040861495911193689322018828705233117325233617795751009226073346204824393974120619971394994374346952432364885659426194067151875465174595744576193187272169838401211813270183623594847986630257880774271951447807332578462646128310952314935397579965959319947059243479406776548569039880041336439220023941401680987595622453762164224139723232026534781533142457859068946938946024422996023870525320934099889824763557058670585237450819792294806407558594869069079501582501695698570160357342178162722031614280922086851688875474580274996468170416760304871822459210967351456169700445469982319006657848516998052095557319076966536012304890621743786912157161604231726578739587699905651524473868107061667537949623794337644419329957963131023833900302932143488239245914322357313786958750906251955605686246490641973264332066362286980337675603267954562941419824466502646685207089264735042414584306260401053324185111099278561263696687637059402394075837055636171204989642365109366790608110448005785740401572667031283221951316283993425221089456259936889575774225676064913521276972355691766641197804759794197682941583387359617964081471491616102740436565916219921345637311416698038276801698494961768030704727944628693517397961731784527628744030032895197794625390812858266801161967253249936977734210451993483176774194517114236184499012501048873508866207555504671766070517319927726658347448689043439456425808751967602787852732668592886191008541149906233311619533101808670492872536268069938790899973502765081422515269791798605101358454871468891183885228695459963059567097962392126470642047614972500925304366422292578940128193335872891597732473730792411567306960261192318558947754127773603109688390663825221551220264466929844853516043558579294757411041512463334671490428861497378547615451454275684053326792337575115345097086495939863839167582840718132274601173680511690433860155788033278015097627770973355572926045270841940040354768991556593901122320696906680456778315737948841448335332935777196800853172471349290569685492888843362808847588702268767875216164716925047402807669382171375714705899879257543350176162199400667448209057298281323217835692119915046987657910198208256997968659555140645545702694801775363348494254907751782356615550156934983777490896066202761719384732455810153790969646700842950962948635425763305397193104004448699883453585580767212084334263305570127551679815746980073954419667412606602870722378443305495459619252235699881070581018519407118593372131469609373609849527316795075486119404876013633050461170430113860334806817257174835817130312759919771769038914860510666237655460307577204072736400437966468531262237426599032042087849606886089167631188948803756079221367844472539177520219318340069685418717705615580917655240938260492273275628327683264800422930462489022502464634566864235285963140238512968422576014732509418838505987838107126583597187023558529581511273704512550573926823843333666054570311371347814942331142012547245043396874324635538739423508812849427030836472775817585610699800221729138767116696482317183227951353049748684174082317700882455340343781235299276260950146242949697046591745653020810534723913861259025720771841091912364288723948635247948166482817555323942416744269979649008039008535566444629775128867803176104998999108190297278674794044624948062673592573182166032361142908961831924077434575213253623631437056208635983870176612033330666547468813551086157231084982534702788542804762697427693103346423458042947415089258805539416896757382418928009409644792782351973292185868037159682562172510849589809561860103513538151682282615444197616564197538986102608444181551495396654554641929786867263191945281083411688090969874830775372613297212626449632346258794697311870486925880438639727009331496608697388307361987936527671097498009136205476026466896551437854899418300258152270666404873599882219344284608926292128952082126962915424848531835898512329630827375372143321709563882999978381007495709719201636272112107991050613942551959000164468417198206693502057832597172350522823640769722608738491491549918691757304374454239061715427994845071400283369655910784323172542383109345949680327053249960098038011474911484371043301361172173087489230322332488788250420953157074271942862577730452399703564472244608041065523982547488910305142654935009070112019688994118201715047030944797036790907011507291320747683387178674175160956578910494737391045457096487576912825324299452716425431400043365908314158666534775087724737001697090320771161108886526253234376313386272671468371756018617674551014326447866402904123168169744431772318788567944824103400266720026702587231564529551147118752747089658983539121943095590524792217808869550545160236693210909479991686984610147037147033212564030061921052435017292403710338712759328428962161145011148791950405777335484504054204936611283836590648705415691463551646264373369490469935793008264977948556180243834686629378620238821074685197516488942051784365023449599451592089964019917757762224765378093653978619601594435329745199416702301115640992465931524587818042546346183344476373505232630586949071134129740656381529659874082458255664443466896303823767840806654453697365417391825159956588127144341133955367450122259680309403455452784469184225805965936110685865059398982063133503128308471579001604344874228295727472729941071855486559023221491903697803054723474080855719534494430290073552780093909042286996500999094238227478989004685667291939377494842183400720052982351035259297323110184486746865019246251313928559487069736427729941194033686370427222254265317182396930038578256381699791336254159618563295219819415364537643210551112072749508110761227546371562415132600451431848262033086942398503633911086949573016919067369943678765594488403241130441986000371824242528468902020253855118789732560912131232080422532749026633680996619536691190036581685694928722419920222505326117619995367490211543519863558333162673551608229010486624717449413486021753600536627498826012415653178041251269226426942933732409887827178752300803363923018164416491038763449660009093476675919448720982033426220571354633398393631641882513637777892878637252879303980500590097046390446111144256038499128349489715512515531084377484812296071520704024117676089357567488499933245286386003019396774695430146748772442689877867355672971909613590811285982314821114948157191326534184668712220553862758546776200610447695124256462473298740072709042159361042032374495772034973393497363557213581631486085948850974863623111954726233412661780098264771669593122569248044169286664543590113782400772835266627715276098390109476066813457133160467110310886965504454161256103387103508160494305799411233160354401068661237643168742682294442757035532909594248737264061986596888018158849866473316362344552127171699234886622400802777348684463859782165376049333235951421994563242620790231108568184881669843065898303136352013057050328758906705695153239756341413156534638538230180093891182176720633999143010559417167139353509964143347768611344609354829017110355819632444536366040605934813428192297959740167717105563552974885397607467499761796232245723354076177194618947867883744144817938599717094177313330124717992348110931043858196539718693072226930157820616345546498175160278912500256720610246992022254125878819677816935732705111951626667156094861510702303653456147869524854631506293013122270983974195739501259502285556932445133487270386476719002783532938765047682735753232582152403448384439324775690992682677652533337329931508375552663717384626796644381449930459048973218164282825239456294293180204234961405857299965841734734767609577626880609877546260246462538276076052177181397775199307853358036643306958006015267810838729484825024507629634598639944250437502109831788658129689536617280838725794382603745436235453276690884023827956188236990183671194170980134732640049763436556847676244166134680086156224777946642117609990540202195012920538023808416463835663037903226100316078156214811719425763355586686638409130265966934546544875396431794357046240838682437158452777820125889026655629160717008022071039887123115642637541908350691723814220071769242569337453218173046567087361093037507556956403578325100448911691682358909375369056330535040099258204135824891348134959445042090538347995020315112724834033819243321980738599378601341791623531263733900333747417606470999245061109218171336758523387876874617920349111478549540448627032771244738994858217003486520692040288570422708264090983265885937795200482197709566554532768990170509435857534814195648999315288645943577837870631672900055043942005122249265307673400126813327743900812525435609974254549111869091920085965343287834130444380094634108242507603965167757370464672063894769351127006400553992518012182355693151132323474732659679427433385348733748035447707791599344670125874497841428649329572582846081141499410984244464654349091737376239166390628911126597402324922506212918606778220098840861814767682721157297998904037655306032774291273118737344509333830985080543393394354636376759154453561377433434831035183633234878547812492398357368615955522002544508291648039295466320091203381102613856308760523843502672867612188054955713560947684923952989897719613125587804440372729613347758981389395868442902449851012259371277829176919097475667782591637620661588871822553858521524932589980790940628449494183390896330943685467104761337577949240577280563051953220426527056762337744091695231802754524284991566497989965817806510155905143127646770218228432217340733354692804231995459382942558061495792346414193085566274844235982451535415752700665293487457279209102552075842237874011470999315787708109419871800809788033900359399330089265077225110283151203414713048733440871769716587195550930038127804939617007757848058104288572675337364341678641872756653720292317886524983717111320030271542349795051969987288321726307245995807341465553098127096071592959010863132521197678667168708059222843161721274298788453020935976888179677671497138545536067906407893143758623539121900013484205326274827182697089414051243209925767482792059087733378350392490915681776422896076759996716707219692850835112360178472009716804887133324360924087911727027366446079098261160460959363965808082620024350337851334544634171475940393485560962035850627949104522470002689846369070192269948305105038162423303243002902268592951648437628121567254919494787365143967060598222617300293312380503635902177236919805816891553143661368917573950987703653994159427438289722412635637870265624397952949311051378227758491298048368979405837916574793661324522913011181553703074034205984778898468257990147902309073196269047772182083194087080586050709987605505778484873834877035895289726507109991072618143197012036938749300443213309626178605520204965033659308123555666708711092591415438041476470295032932459603119230060965198309892650216525717943831640222707967755687770159203640459751413511238453027301477661847531993788372632151898891853047713389658490548615960226541540073931001140989731722082453836972906405871565301792700458202269245295910150681082228739774782936237196090811659405268109603473837884049650408742923112604772224809188539398755420544422970425534658808701181608707543716602443558622695735424517459777579556983747289902393766751718861446656947314134434774388968435601627135737594721377632362065489795377439125260015559333066968698763732560622204130203458519289036441361079866706173607392300153472264503487348294443414591161894278692689202962141590099211645620963929757597387133797080229309292974571309566126491704870336349415783361963071218124136269662856802940545075499381437549092841132432230532553500775622041458684584642592198265379513434939848967922801477494776232175161853712403848294866675957251047643568553348436154860327703766019661205154223801881210354772729817865664451575778708947285163519495526352802706873711647448343592198050404610963610965753323204068933692310903218155480834776288881548822340555895566895265292476356234030416258718100890984293244729485289924898969122978389287686972875989307726963379754016662229420252352800636560743784237687016212997294420774858664503801424715567765199619376764929606888817034745289053037628216446678902347782415116372377728247405395011619709662988164759775307422842950415790959757907444678887848004957012086271487159554708143578303306085838982128760971659333199200963981968157479961327638934764825847980710714187688003374793373584215357816015592956775515608616805699650599721340880362363928750180094513608710887899343531912887442972870308721051586378391585944655768806432836394799494511524941399885827250078850034897091901113312232048813555061353355259729311481370340455104256829677346075446377570561054026241272028609293615829648516782110779961935907027782224262758300954899118557353027253831789508525505524641224435934564520313928141103991370935355419170500312239497967209697965576849748640578311781935832601595268810020139189047631559579328079867937916374640344346431950611298642432051298862717664800034076473060833561495443797224152097037809354862023870709131957842317216858039861127460268884455577958514304731632210264980147492227055433506718809688205322093897218707087268186747192667973072051468777447680018083456309901846257613709585900981516876877390623744724142849806587736772712190757027067088741437153604987603755128290862821456867926740543686969415083066246847551958604117383295211387252302564031837938354471155065541491722547051802375514420399479352743819920914823652107609745942710286058871551402936977083150557660136030686420377963104046203317429696329958799929300690949537558530144644550557008989595984980781547453075223189416313718444138481736637750362859576713738640434609664893756532572856310184887570848068637497057874823075216142966967694459549921390318659524161510304182732729946786688456528247634239129600347219348702673153446066149925346099381154260140659755126250115487359727275380786916606476921983897065274428415428186519007317040411540883835172616074055475659025806497992157930900560781992183074872176646545025301558093407876470596509741432942194580202406824346390524799603604401796222373977142987464717947371853800580875079483273620079886548718485132898834284802610572649367107940972075610923250446537663566819423990514301793496189279497065670628541153381554522892684735269603363261150494637197655630266275596877810658528600647188225135501426044273347429045068591619727207392018803843517442559570101738574938729413689795876944661327887905128745136040571046802883723974878292960750754769640933677727968625686755291655036149476901749720473694802111016467822086833384920028352692986804816685937688351074876927790607416161262335029619660712511540362859315822709886357201959137907179111162120321088333655219124398716753344325538432988279886594693430280186316891867198957046453114578274177615022074175178049509784068822003337879721166352296708840370644607941049918082220094190372277976202404134666043554378906184278628892601870977837434735346084971986284252709630000034113917450254377312882078563800230274417419416434687350100865293945233245489933105547476671252823279215686915217828015668822643662230800499158349392934254558272200056388962906952235256493284677301725515255520907992184337888218718212621923243071187115411232149521156537025319715251128578499317367133491403146597936042467305170278377131747566932710759373895942672734823989722731512048910468502238931985471455986534271267453952814396536677280685303771070188001386751431972222565174137884573105431801146549963998801967610460939209558799264614484937245004286398622402380300042507329943923140657005674866687176940004328171125032171371390580861490219279460891454976977880914054335827496904285424340453979499011756955078308639004315116015784176662125760792301776941413831360032686277236577237248625159754932174719689833702431491169233462077930868449204220457137657262204472991697912324120736100797343957663276093222215303980413934744611819268199475873907295507243032672223967703305427742738470547655324982014809036044461886051264459711945450324624913374965134101558606686202430375904143529001013886406844651098597886659376660989905213249666139102016897765402692165452028190211647415481269412808882436370872763390392386775486841933641834092573359580547465987640666731409960815005372096534792886857797371942727624210725821245252900401841032330479215241941284084417070297486324363309296832209003445502433956169953295893245390223062679453426188372327882401890938841288349925410181014566146026864600663480384619451920744112085664922198827483722974598444923576375447846178496281616139963352827922672190358963744942154102405449858590032486633014445777637885390497681214415520565969876472852748546426256058456423319691633014872253419182521790861609446070439607786745645386512622743993459924865359697860516365722372389159132021682089553012217604571708765390130703740454832829928326312645327280883871438621628474989936159529304724469493529246222390648266306634585608012203049563026520785598719827029243095323687942242741929240652008047908668736460757849899410324919651343550465780567557776257925677695631818588419147182526684728405952679073735589971701456829873805141194499548174921645586875859545729552207584688772241072060374787545293001244042564705947435328495603435745739713962672938005012103915231022470657075807953011543743714083220318125582289507202311835552336517129202513305447688028400029525524756782184130070515296627512386120470760406775130266573097284952099033980165021882555450748845266744927178913005899958253190123246636666834114651562946876207460654060368473252248505813299700038962523278617256651160413588999190054825054504593799818725173900605956697737553969219373224460235538441184774219565927181287866704355454347401913060921564787457016314321038016952286462304897961214366539985948004719888512682545856282768769715606831584533003413937190418820245210366458246783680800291186439137700829952381341889690062623384071280494630932677892723806368131473760528154020858848080970777722296351819400442570186964534580995597875323969384089774201162732910907578490523080625871527650733239214580831491463464911676238533270249058389626553312574943400803162092953753385134992750603694651767928146608214403506697597379965842417800717501384404226762298272246093179043848310589177177201571390614748435467665487723357400642520499945797110758675961501102462210633678994783387074203754642184432598530717928701360642066378572880110021876893260276905338170249249858308940296758437383410259207447085255102859170536505612313001062662026007781174347896395245477110101014315745490985044426785775673741381085181780734490521732329954313741098812419153135502512450225399351901951627535197608377689987552290862345216568027993949662223065789130789817447544706150530980987827976601462475328237480205341353590391439700834748272699017002189145803791090632579244897922041595999790137448846878598063807585922282871492037389245267901823667000820339471939718404942246676037148198091246440014321517103963299154552571770488634257529542214176484274309505797750828347871934250632601397012361567653475058127713189602869866053251193754779343055122138184719177386841847022602240755210679472232433625578017769949867656899859967874542610981502332927353860033146276732373773336409753582055542118856551728638047816732431483851229900039400975675008026383963014406276817985783169464325436707373354405330000945005100806052666623683913263864320506692358920763699279009896251321927324838383895633608986810967301631239164868004910873397841311448392087137312127862403692761521322375311545269985070109027354450045689247253494807570779876072011037417034060108169489810248515638960885137746434085661841386013761211107759707105083537792105400944910568287853393391089743072113078548639704695963365220004488826897411213883174663572180206862096881733924663043746401285694444007252695178578079186340288081258219050922626081593470581234697714704616414896981052433324601310917339017451613451873016105313168998780300338607019731508577661972575023569678337690510606103635856470939924272596951459323376460759009793202390390703501704750647559792887278211558595227626752123598556864882838627655521995637473561213031232075290221114736636735538176962202260381771713405315729074312565823333657771147233127815346480778734884472979927006890075632081575880485794204320955963129031865727342220957389671061309689707343201625760267901763339879517800300840640658706242239192965184440673858294964434446822583878310484216348311825136562115016294851925496955225714545653744774746854383656015191738203138130151200579151768116213286308645107353076488293514112621908090422494148373360485339503172098206162026654153615124548569578047112774524774447644399802001639494654999986527004391850562114530444485080738088068564479560967907919040978217353670832938075686870188901563187459898011263570642787146658218608649929576848152224327298032718819844825285078528870399698072632963031975467973515768570780052890429831283348953854676910252900107941240864212620412634297772864321745808360392330428470912461782513039466948456987234350527819999451670827015853780882682254123961039658062391470495972074489310702131631627586220372365836860906440462355855784040114890551107486801559456288385558561092456047991132006964700815491459647098623863851502054330185551631352688836727547052724253919494097060708644167323800203730410864638591415793888641549010246766439728606876401048782768716874101245022238497288202113321521139027916026029784271192590104742673453968026759456057281717142827464523883682131647532153162577559543493472015422206126053445507906608393436964688379478535875585616625700352049004318064043386400165690910022022006598333110027979607468807857578431007002586909220353356291805398400766743422147207357915246252146278871177741327222925990477664616985664312106743225947576928579768396966778405317097309414600344192209121473745205262092955749484452144685003732303045438341711203901086783812522007336917588246855237914372870683733459519949831814293413745469908506581347241528250915007087295697841169826977643979464308689410319928909183452998745014138005484830347194694380071003317240724840911556659735148795389108694090502964897879013912780107268341592828459878392293516817650278405633938462670986257166595574573248715468692662797543538855685759250182185494309738151469561360733711066898209180195399895852685383787810218090915029191739780997940335171555296296769088091967466361863899105349398230920938199146500377861163181336729062762681445833606323835881787629473842422757703789982174452326721350048224862541696644350561047551295223317008181746291803093970084610873680007116363854672691141696757177663303002504623541234425095920579803928229694160250621386631079901995231120494474703594178643150240648595940054376217176220556299975888215466955607885644238405455094029757997311512913932392544937110756259444892097505864951136306913867972948894724507588617935753904648961254295302611561870450185666226062443974536032937244966668157415098549025648535303906035994783985245178092911495509754176415181130816816638756188720728571677052284862385276091615563156058738004532618008036282420827457135884893086202744614315476877032125828851038992009978932455932178753077425348501425993964853566582633592128413535126269885195333794076835259733554123737503744083386270862245835152457793005043854158459107885081505789266874681671803098083264071259137725598453376754322560054275603975575741636326171728119931217122935772355498404635950669823388201510413154620380339425736574235349861450889341481962570009477244103934796620038215445395676567482954457113162715458764214997416759364171245303772343974795073543397831108228868296963937377161557627888312931454464384745203597712670519879252442151577795252917059838746497351759078332044082606442022392388835461517536428417376653773616367451836894495186978777072434032972330023955836725013085620559997956998746635044671674626851475177121048667115203817557611449972030627089682315140336943014833121485551576286393743858675400803108719071948730317849073813142608519439124566001790772527313688900505971571006248860744756162074230027614143700826939304364041473512983187510404027627637411337928944516905708493258967212312959810729582722040055659547558008678149980326912330263680756712636420853542195583776665944803908616719828509408037669491237555468612495404360439380499259262750758123137386618697731161384186873922769031006996301351781745778333922595184252556404325562562401178445004393894050956071254884408834165128524212626926354417036261173255033862192600161512348728307450180440001560694955332933252276009476397001364999389104573131859951418294100860711499529212067279373760847878216002694600084951947842715706527955022236005404263558864477809789788925574989573979982081139855838228995235162359843611775295590044848237694610552495793010486124779442762578051045811819710360896783877622954923564311489980323754983715926844607865821934107023595226025802882995252462691588318270465862811762108430936754017468669141139921018273364341233812358818156875078701231411185634136621544364303319764752466656970775804291042093432103334358476973580673791310743706529915557193892180560097861277665715943859705652206402369110971758385036164306245753230850789415120876728409942260406048607129065572789341061420652106849587108852161367694098425387146013700850592073805409745036697860260615327828550400339805170467412808547765782126209999142453172416991328055027432503043656366213764167970522545114095006923503677994245177558491372210776837927262516102009539795989939357774253093119775602267521924854488013720556250077268322357072771301578257148658810640280957650084925524870840116730556049928257550386209725588913736388110258065446888881681044798518370961877005227883603597620916781458294993578123186779277195877746108681502156649082888690088350022804007637331853913845468024735233796814706928853804367790653442263151274524183061601885069356952166548105758376205829086139810180612137741368145980596405275180117603708638193442555043149403798051193392439931974792482930813409350845370300557319048094172641864617750108011689817686294284059566337432141679946825582056758849388873470183927762854790642234679549889213652309140221103542609501049664888659293165613898675456575237455097686072953427867475223317721493965886167407787474228256019962280355901682170808187867026278365500314521328208715867497202067902357470553937076593393889508121564304996545620228558365963810577577520825741788759656222736991069421892329773375789306115754690658674652554494911801525425760092653645449053982755607463258680636664109646841034828981744491224522699653671246094175688670586909463639660788114032308635144709369552518453654074118450623764711119191206411356221640434881040349642584728862423502140628517032400252805372410563626104358544246860801879779110657946230549328679360839258332681649706450123092032439939877058705474700562981049914992433340251864903921748604355804598925000011753338901544117537634894612559499826131028943706459703766351367529361271549479784763531594089350202017577826071192381300286605762943627230035595052061318402864423793246898153405510388287254439519778074867062992761718637806170028359777112413888653544963950419763709804053135430550107014295554954055687036240443181378862605619608105745831473801773894360713182862801223430927809156295166404299697805226771552154908266241896232321757699978189099013881111559676731055263288442869967727328051782734457492418848926390210810557994517772541006899129316211876686385500732953689777697757034750255831448241282397155055864857101062224746761529714341290940394745482639113850282171830127523808510361748031220334776395958457109850078122040858444708755963893956783343347752483936730736475510990160354469275441483019538385731498155815880741086664181803484559038931098847694800635474334810733988154280553759620367097997455545372492126819051695388455830654533096336758209932431523275451429264586176962320401874101267751099274644974851224735555097850593275140442345113503955590539569439216277248743377442509412981552659364026304428286320571774784985701381092809090579660994906763361432337765795516470302337349284816249857424300885917291811376146164339138735087913590730059775896231962689158109046567715329321719534743227185757315102035452097810893486653561608964893951454204177237685600087435327904372834634396794629232440658901527143828740556539019610081758977768070522091250483421590846833821147926251246670336939007193442106166974592134830941539152779583816130404443162766093969449720582887340858374876978706534247399265119480388282976085343318334738478403038450363812508878202462227211365166555970403112419872903984566004611708518194660518870310587317333440768665064091335509217090957114774711042760466360056289205581145107829138323434406101275014273985776390241574000437826245205774007911954623023433424074109124384024337441160255182581047172746988116214584094509895639686394088935707377585487563886667471088196652895214181166270559041480339388351561645282070447306864679524094734366844346541710722752812606903905014814087899362906165019849635624270264392455320059988718609468274724975483057355209285338279670610770479547924195873788650084214067445762881668742914088064962937184287002495651291932261010843047955279965578148839517163432179871235085626985367548614447470375562122558928345723518618956623275235211504346026119484833539853658392746888967609625774092368060815772658362796415454178379887427948376969701306980235696580963501353010533116672456591095765119633533495592134070701330714664154162832054616975125995333523546934176566788351758901409731814078386293321153703254336980937839583130731627019662139468956764525707925814362526251064382070237742730604954787317289898223005033941991436896665557985333973730384315810218738256101114555999933077796570669774284350971674707166220066536922383256967279795320718783939286879553250566042838019740140688277299484054857353074292582196580232423352064965633742491010570383049755137371269412823681865333204058131451818977377739844872181529669269799288133878282611863932347633640575776644664515332214391093651014882400509653689325421834829246150136356618004136888744739060463640108117561919398108947217660276330895647573900674677994544640241328868281982757194108659852437342739078135580531245295116403781737247575156828692807257329499609135796992645507809969461097970555895150805025231629305318587820907406729994496790956825402413906948238545332863494945684917216787754606384635176342084560730885982995508157330641433402811249372975217700298201046056608725839522938158182118528215203066489605580633839730177466214235410393953952217801199695569112460999079820179934280581043161197418925693075872363530744686664694164455231802821027414372693852939035804321208313159639911267320913053722465409878126577636483166199563806564052809255616945886895414142279375629191014599863786997464518658265819665746172532272929979381737195766762669634554151000237619762449918130391735292510790208905881446843355104618648531470521995848989735440386400941451657829740053291366944647599233330112648547071585054385532035976515796407364490254248425741846574878026626050313265570159826690745408561713475489184655185046721538788763631993309219671083084505594716543621491452038485142236457731832210472724646769917317765278697460250010593281808352870786159968477350471164070026056894239341728433243261869140303162473786484674470061416437541074991823949806693895735942440968221671204734501093053292818478543562700014610165869784876846127815594906567737819117106612242580084498148279486965805865409073850610271354293470171101912654245203506656904417000978034385943242257751077733925507143413674157661967468310938479554030227907017985538587397141221768039648924941105106317764359140933644964490344622653497907127063258881744090774096986809440650902033804929507355879377291447846045982262738326121978403481132640746684285610561804119322620452503903734037685043884721599824252891509267576985954144599997165250010067542155447373817318774543555723840167437631020688247200862803223655873955468837203305949056375914278236043090165343588246454072050392505905356036660598145082702209009484047177457263600521274442879748559848429475795112197098418505223270915672073127676615317999879674162688671093585367904820136680405102650986106015693723083694425576728004171743115751477332544785040796818632929483885280564565139861480730730826279892053139145118656770446322752664502988431248580147175442420293065279976578916097063103338242722499991233362637476100782862180107220148484465716158106330475432412735968861657722495328230576248879113635264612715489901937860238572119184949781353415897631175475090227490956841118748550920822619289063367770536227435093704102101108955277964260557461778821003768236212337451033465626562667370784289600591274964002655710139955832665141452794719831273151123710855403798272468519732239081225901240332805228244204927690536768646752750740629751658672568000563147994902677888499451074687466654983159124700717283289479832786006498387157962180640182794165236045783937101096070418492181377253757759507545660450089239914183134505112842456888164216546088680640563778945738320277124155440485469596752039685573766876951423313868577914154637876685588952928353983539801295693227616610152481854110632373470714249725344658738778323527000639859773883962376656365996920518095652069949023746031747223959161666968106107069505652134311517536715793020357633420223270744899423955586979772813395739547666891041189958379049063061319595937765269701031214097667437359463794000341146912991896371845227642371249198527176999432964734733593086502376324402717354438720874117971020366554832198020996180803614729286815661401233262852737602598786170757716282921897939750226793846496555545037036717148738143446069464457316221685467798803253090714646795807920658640808393091503881106813376525825028580625411835126324945218322152425250861858575415848962327512942437198320733662647903434534440325847449554065684814401059901187599634040366913419200614100462621446365098916465710728137403534474545040286759068996525951883108452327962252093424893137199087443169810446780951385512636530055312584220821627375399805178975346064235340793604277946775428736113712629709170841416457988526081821264197417450775305761459695461286156495184540891811225297546522958433818854129979269596202585616823267939769148933583469091697984616639077704515399257703696819694498469378880828174269122710637050880822206000542734671598588085545766427367784204665539166519953659283142938205757606506178256407677227705406994352926224048015112347671049814887099662503285599995482388851456754658116521105429650710838340564868863993618248949494194527137912568199545346967439605349181232150862450800330749616590517276873341042746156957724583828086943024985177274379843563092866080255943513046306069956009941309374543646967824612369229612337362071057557038782546906201071183907743618576281208771715981072491840235485759212809649034311876639581036511898226629826988625976183438126389940554201321418597826937915540358683251100577268485270774250564389517594035564179189635412589252213294988249340580355056545196591355617095951817755737618553813550286860641286257887439220956748255347645160552762817942738252453178261891163684751228090516742329916561453495172107173239767874142793006210280768300338824987047230463358913118450117527556492799719527636370838233420007645829296273856026896440973628415348408026434113300834778647854043845407237561310121281322006175146362186514960241342370571835846546915389868544559751493466426934223840063386984078197385664785684216510443519229912237854765165846512791782142306656728903240347486307668921784788302351842864682401861482060430177448842247497582391463376803322308349171192351635584323283657022337389767749274825180932749336726059109042242616415769412757624900903203144743626728583558144811732702291764778850858626183469933564346166530690213902077029519159522667283166654792722469946786589789359744825026178862758450125566741014952673734225432583128013646836190772997758492036388615283670206105985193123372758945096317509886831859959047513526132663422145796765628455541289408647328095027417552839106960256177220115427553327372229206916470564890609552286660349345999715749770906572534348714900381243512582990641715031157064650763592998587560538802014419753892207998802398690130918843832264454068034278089643006894399827854530250263306273782324549718525189823853759561900903305435094895381507813538024569845869330863772462184087871180474954514142900723123906912501291825055547768903351474340717275322019971079658545868277283684530570265880069190633693652823488135911088252877429444922976398558496388278066014323970548645725684060724640275756728052433683069258057534681448465657985116149017329412531643047490155486850092189201544611454416367836763252690136068345122788779672949781642117491319133859353595671201066898294754509477053070253171310149788510614829508511379953350399257592369788091464041020708071729783567438534597660057413714716656442618194218468270002949343976666887598285700848180345569626704644066435247895911750671230972435503277858012823599873779916500117539712762428651929553821710663559324812913472043644695196546331681433318407169445474323186000247066608520280727602963985149785642666219160634425023376959648246639416923978790813710606376330273474486549285964297568437609521459328576708729981958923868933826586777086345771252302992024399392873191386931089920587387996111588951753886070406480140932063318693024928243684701971517649263940101640913530600612790627156356178728301059000511912222194652166389472423563334476481228890777078866079991403070995098901976276937392424891453966511713152308887386639420342649838731389976017503956864143185199202510268022849068082717888036296336145093948493733563610260888613629544704770700702462910410648524536217908257772381202293573200323053909888901705574784701990288668170089663402592402703120975958562884317882313107591789302786533188450042756189928104215938187857454980551739244449727065409593528947338389343085351011658042550360821793130396249415403054084552929856620083451059446794164318000003138197174291056689347819139652500693271197437450229272743941079173500046815953824425624279921636898520010547278012281878879797412603781631902632451196459282835118591523470874523973414035168001159370380900900876460924863118773561671412790909884073198863562991002489524083992965443426095880122027227159254466532395452658224779323306037952130968768511896017812173601874816558905230019508530483973971146871214142312616860889566283564379619885539867995895461236877141779491915839200556537800568346735069304039406046108571713256365232672528281462474366593709275456511168689886599590004973045765860795182153474504528560233406585836771785177507852235856107441737223747652944285756967501211614432712039902882312991234789362908030290011140406359500525987228526768346266477079354748030222974271948561205548489027217937905624547860086742963990273681434695524624459814022601709656909539474887448797939440627123463882913059211445148131062387473747783329889043442000700056904973442511714058237697212255125253098202818098712830626131803789983789946574397559931785342223980064337985187873834632739563252270463123153623663967343884775841791215921565508687919186994896897746761020238215559661027071613549471770087917663097347927335343981718722704541678857347938810553581065648665334351470120880480055740185003842338657347566433761875026535467608792562177269221863652076581498697313099204659022938547713813625246599228690977747875335292201349761851773847327420180134520826331672153633919964211123132211782576129348256734823065623211169193140199542757695303632051365415044415971228238121148494357806293557154762779098349777969186242541629602250022294113947224207632165434844376146371971851201987838725370500714731908459157453845650852610427927094688243239474398434269017305020746087979472290090655835338348937450115929659000645948593949297602099628071221776752273958885307189526538550944374988254449621517763628380728335403902950639627356355844184697442266006344919613988910926088006286305273240034219840737348430929752475474402811182558082197152794665016927136983145971511909738366640899893792112549453691520358146747971981620565430719718826766443502430658651015988792555384680917760971895918978554296944003009630604100906006637153286485969068638540011809925369760210664610743473368231119453436168510672961855594572645734508979259695419585892222630097760933432276584838810293273753386620590277083551677270861481336026512797073195610536378169737360936293140407878541089107504900632837982847320716919275962505207358305404984163512651705519074158639318254179211283628403920534603658992706986126251904076917789182250479477885492012344462299294973926239763274644453915318293216540115921002028173274753033287311132485851340195487749183231540473436742442936547283992521399053775190127992142762967924431274164978687968197970452108817257862235757904598638128817064527080214419344621092257388207374310407718292277311519308566750013552274738127329176221652410376762429404540110131682222811295872006123467299531896058468535782517122016141747510422898371303804206312377461950869495523085823763093831129346158168777862070048818640981346052991976845083601312893226642575130246501112288393664917418607625498175854114470360191817643585289085587906049593942900198296608622306832380814112728041795627986378788593283414455929292949379751991407830657300866357661227639757494098412837494905879598185206921253065901921516952133530739457547964237231399778757273515446800486110426495918348920040143791619248829130476093524630301095020826642573488300476453293746346665957661871128259746745905296803892954841846180979806255375538106595223006093116125682633791678590226683897703218638094226678949895918168928781426573910882115075309436433807100853280744926427840998139256331168359386600205968519670408488870511019197319237395662496728135870864663522508664548142814769837315707306042425555146513012955595892521349755135737025148985847428711543060062965576512839603133425916562315407011305895924969863800804039212070056478028437411597488920073580870880284956866447173828761783981421169494279949243649613348270522475010690313646605032166495480971258356379857055733413419915567742244602269064993897662235544186156206736336614297070521205346070623482695192062367808584128234482563456503781087792026511400302783865501699424434080632791506050709455733585092699129873963075684927952722627177899874212160708453181547024008125748099875560960549600659221649389809487522900384356180492264406998374376301928411807382679656673098829703665273408973265808811989347285333509123842954034882735682415027814336588725779878823597605350626559401242175024688994492814682850477121273479916649927883948455306657026694142292048937749446932329828046582742479620423264859267007672198130675002802064219294649582907193377189276994871453499590279135735556114593384460829806038722546838574979838673988594742922601504341344813399565590227346550198766714100010627769801756953113366397479608243721430246718422832767840846309918936704921384314908225104559340614611519493007092484935775189063212083761683194923188967996205729755414898151211648071707948986903806680679981210143116430523262128526824573852299861411123794430156482961739030428250286836659064885398934291352800239186789226657607988191721902948209655996372497811661772501836605212705053233448790130505994806170939107243366765901765784932944393636425919839547523708308131843728930662671688255408382907489034766163533476338198719136150472348601494087586003182998636303591837237193118765882462003963293231387327632766441973321481200818584960446499938753900372991373489696102100487090794853802838494280458972082424056766347816396524592795501197709214078568351723904894694790772988744664867294027562892794573553517042263838716831875200444653476917678671917837203137511115614276363840240360615488395896424932117531083008178606564104981150848336610903299378833115571946424169603315202180206372721976570101112443302050093190985553704621142153996675319147859920734498997980447209242002480512969182445581140390988680007027325252427679775855280266668423302306334506440493724305992833023730760372889746822787669732656992040773261424051170556569386076484027815779213550756151477708998442005128065695329438354353948026033354273496698982806518086964327123095954432068992312435316446618637804225423200240925677339598816775908281545514829078398151196577215955000841437162806816935477965949259184269386008222638186462818353736678523020129878997090193312338194372849447933194700265258703865318780085192563873999863013502211875422004430419232457211922595262750674260146811328232717111342411620433752974614140137176282345269188870521682123950757263473467230754609856838080292093570450131743826642772444046736560062686502520412928056751788563308750532459913624013344116129648779699328832728423980880564501012807807503941271697773423198554650928064088060508088720020160331645468370820197330024270624764864846351784292860049586177195977610387613906351543632552992741421536933133666479312072471587676966536202166384108457746820783966957016455303900891919402174191728183289468459696768737651218419176284158950721741008350895459582943275316206438296681042778371453502564553613305894845308239000636390065265246183597206562487067246667037183801608186161864434983501573858960966939374738727716888969278083644111312254412606981717647189213923774109205344183303512542574405252092746339532213452255700346192341819041469038100999563506957492640047928592881688326863888004594415290143571514016871670242822498652854693557649101777441433985777904131492083350678300899172321172806741239765584359642727143712016178080372399124154618893584414435011206749521573790842779825030736101168275933731094433628721434383880681147793133238453747137113689367891323496343032192323304546042895264767082377127334998198473561437912155326261001709641635383212888813200830249029914507258268966319558126845639396032023225959899855275764497299028253052724600052430308820339093178014786299160504445673688977194481236444874195173993669606124710386252394815245488432899586299185522286459200896083548143391548199949790553794386958930837342544983433451397464501579439527824436052524375849825703503152173601468941454738461231929782923778538266899654469488204852289656891641112179955551374610052949165862374762736972098857186491947989764061433677707025016678050218233534064780258927229417126240581900738324180950092819705553833431721118764880098677057685823908797215204549030122655603098199440528327952259835051475869754881629400593903490407089999538786893674535656239051102205843464751723161169024911602594863945758151858752394660023857192455292864136527685491843010713708190629351311854616063752771130269578803526739021345706091835354776061866327814644387015961182261100042718611273049144717713990482890826572810700980841228450198604669454523149804321637305718704207490788162944277860598883348558798339755483632855085151347726989057904091101960290359010125023532721378282972910141476125260193000778610205623606934546474745070247869901769529747832322971549128815220423324507359501688896376643272768589181801723967403175501136667688529802329904739978822737025623198002833728890732488251914486007511087663776806362537782171505914194750445766473847265120564444396990308176743365535708783048270514690193712799222663386367770248365634769804876933868384637787484895252408318454825412533925272788527699744424486647716976672772883192349990554235866948178992865997792188436910421624139008140299111376855347742616466548169889010725435226146467029646044852176499635861997278309006566988131257003994420031498124573603317695649006721092074104271373329541827741966995416086633634842482062579200196694159676159812589783355689486293227663231561455148209870013009367627139413438288853675907455684109106835251642991625559261429348966474898565249688093417353728167498482856306627156460091090520231631526385145058165305598837375670218595585045013994669223394238536991064098930137285710688341172152954246432757901227161071765586581495661727281089434678957266521553519557577925148547591164921844979832512838215704816428196978873819479963219122848960319292938076780979723057518983990578169236358155201296727338686585253115458153752127735590092999288811088608304822267020867003683899451353968232127304176612492046672830496282019244266467317821285639360760327160422079963610176396771482829724854614983703767179013584045707839342787988477773320955253914117076333969194454747503269590896377576134034929804145181241080976428631073899798765278162030482867325557297718717955841065578007855161928463393571462449591529941002274266970722027534280243042441805896613689926815465826481307646287335621727461892299135291421911430130368534067323294263884908853519060034078944586721344904266126307346438185591762451980537805208864928674378448181228413876584551690469381759130805978275082817842476396554443491368225197085323059752726831511066677864104790631877129860377008167051708378231838694330392752753651197336464516342460293997831230006423225413542757747340182690742884561284745826309304292587765391375427639824526464443826474139081064372170392115875139175151503896128678020280702854836075828751460786962595079798977589623595004685497703706625607457651899438472878873137192384721101285820341982135360492007124674634473864991532672966995346908658931495750497087315413932353130766308860498397694913167313276316874507316906240783732803183405371650810784306589203890219127089445966519517042829158191389647963233641398182787454489893379502779485324198637890238569778791712103819080363421003333640914527354560471220494213665389191020672949322195738101645519653079281064176541498186726144887870053425801322888889880280047312557590198855674450803170487882680209265565318257909625270878740314553061171186938703685443608461529203949274817221774219020828965860445913606194158045331571008495729056657152778564538458078572751030485416138365542301587689233303411603866208401971372737355861650023294622003150344696932707166971995865341430263963288251450510476270144178804098265338299089437554497635112522603231956320783226563722724368474420123224642916694809741622950148643547636903755987565759791714577473931770759161812955220309279681138322514632985165987050439559047948270391592110334944258173604249418649427601231884389935063487289050931577788476384827002822288950576830215364696689376883084098141301436208666683672317063865681214290329783876476649607720557438943303900048106007322381347700603383988753437433568474976556854742521583859035528838046655639311820597577044806167681415017441253747552694160541513981506318300944184762172907223642759908704365270790074498571768982551311644656124242830702907950185730329773180473396988895079377047128127528378588409211010804104219808022438068281469063147053136438817355006909695753125339457355999655457145360673300886922644623691783455463981153507582968142576898619504909753156346110395335258081582476199288960242401052624316693732577722447934295687753278769862745969319926924818648957809044997433514749638245493800424782737408512031949523771893990594873446315988333775562270628215291381306194345621043163121994710198779708598654989834442108476988940757736195402131338753366801360926850792676436199266806482134591867990447663429952003522338555154627567087743120017842474332430675595362371474831518887276354750567100699118099287440297036817715193579341508704715229904995488631366205703205921062026968247246606105701424880396199235925463996901751119964327020271304516563220924551893875938993785913188424653513787591334275954251197100527354281281357593075289331894285041146408438264169275288490490052474913081057510587123647092954237517309590874539195690888091117416437289647441330408163234438089156399395585818100660265242148165034223475585314940076433363644564514417118959201945342446901270908080434722276283265553278236514382663699326930135781880933339112501138494071886379084656942329495636136073595421205283385680807673074049776671564531516224489927029943469318971526433527177184512158534192812026394924992758906315540409996892983192697196370718940804288693344720932720502378817808155370200892538478290872583942407064945065729887220497009480699190648005466855820099350664421879408367658646186434243957256194228395341861224555814439823206985704342110826820559321872912663667055195899155375591333853443098368473577211270144772350513894269015973955185376338873572079529193119213499632718076455682956001165854528384612709726890883684459699207909148503736500026025998223331086358839117500551657013614470395046092348568036876137747821681030273224220059146093768468417076257016139583422852301210953259823547878614184575305728024357464275994449036126915608171127819849482217089303990014933775774222049537732638940459979898602351214966826425607614891561696131399105857079599212188104233968295218616441863788325308153716882766003889819799765930971000061823358810109540469573370913653905403012148034595872104653271131873614980037703756510035362329020808138957798323531882768723479547135363665303863661587775581622979368744724798000399142445113981628778100835891712518841554250882203741263516994347175662945671551863383345913931438208019561060736497389305011951640820086389849172356717601430640037302260258239978048982111252689133105976777974734512146062766248864848881788276724630693124393110616037545069257250692241751977409776334503253915177944801054665615137382406894994514508139605206332611492483967562784718081671343493200994713510005452892547439554732194927883487340241832663349209881759449329621293416891200455877535599130022935357941296148935680034458375247230241486261397828965303004373096299687419387120501877191488845205087997601052562640971235617916560678956496508702809464387586163573554390861255969112340822734934332833137211152023787233088571115939504151896638441616651383448123455960601325213809249601834826942332048955439873643353226162258891495941423152921559437673978522599317677798479919094948895977271491236506966290263316140851897111270556767941017696196544805524554965532774794783484385780024180938575140511970544682842693977179800725542411644881828105299325760292611250126680161565645975760656941782087866671279033914702209038919211262675421354223549694056684611609654606260499338843262870926081627044975162065111301945163828320478589749432082556788171515922230024182203910414398850855028530715250877626907466803848851512889544280653947012596561167101418472622118787945989073496098337540380322586091171271727542025973742130938840036560652203684646739309179558989229427899287068329320792072896255893392583905821841583834915688946573181230697583962624339173798671040544677323527082419349411090246271497796959853584458202508499868680261345424504181579517150571592509341628289578420649107033039930650672791226046362208042013857482549602503966177250371283446869174277141633091164510846291293362062817087515911993498128321988423339013975607296721243619085953629897361101126670800773453640109790412327683428972921234014751980350612118367522548571939842722873252684067859187144965043196699572970065477713979866411243906950760347355663886552715600112376762895148335622769704249885254947660143580243182497846434651034367606762882633486879310000813603931601666082015504013469306427203924580523902969598433861193426793078120150180625191295238856087346206893903488419938646204356076883517516385996863505176431886806575452074072699508708961927047669635244030655122845601948267658758198573854018795113012350124950808263709495390299984200358767173334538763852924434219875331423560556714381917217999393122241312670335047102183120628271398000983152452433943669957136573415732739443088885918634831277128087815118649261246779801549663826261647191735887486453246459208042631709294741572680324847875214212237790968412178828128431397558773100268785517245232033365426879675376755978886416298731488462282942211370080426038710409375453287341738843956934062302667950574844484366657091306689851795645789923842615966699416734229212984209283026416690362177293737020764661979317948892207978887728608919387299359094477912107178460290131806485462643503932483748818208096470513457885989693619819581261933246758223420643609460173137685786497618284671615519067995387594063702358445572870734881927124192827112505362676824688698555495057269950169353034002809121595085011102281125950333412999051734782713744799201521140334743144741929994077292060848308810723727521848653487701385626729539858439057741236766795998890835586641115218542194486312600404335467399152420983081620621156244932806393768474537189527195936957685838767717363643496218107859817963809034917026096269340422726416112095454320359423281097284765032191459631671776303965693625586744093507055129387130560063913323311151875010713375935244770418300482058930252261155805556547230655595019638623358470539044988121855728729528990461165081953582424489237221958072938019280206675640866208215858962905232268498834362541004137090578309862340282232868710662873504200632410469343478550779871552578548577987310911353294554217017940402226324470444530783252927719640922045514030110064621983147348594408441906907559772849497622125384034099178935714254185034580726024480640811973355563490100604429846786108022918353036727683832398597014616436154568414203182581226535845911893058854162339347906878137506580537148120275315184010823117603356130529573398929219442333722033303931291356185555525127963935944173705464429399644176910319019913089565847931426769807178869211372910235419223904886393344173221981974406867989333677704360251322213961770113070513234781717450349051684527589199997211670611631805777051200085623741422177921243478627828455568720584777468571526417193891909529271249409326626864671648194029487437824177638568952978290132295466476886355529357444400651989258526245704036539610342669742620782186096046087915034681227569361910147868245206218895973010762843255425939399477333680567846882213475220476923604297227028297979319722840250522998336435023721672640562765231413279219222847723067677709354835397761645174043457824962301547311264322905561065411223875077813968392660482607456914782749455362871173736560974632155238232994297873886213281967065573977472383824447207224379942874688625202623755300692580789248431176676497574233024619833887734652670923831754694977651839623635044551553403998257036954581975036019707503666744903747594534328846863972809543508208441151055246520983410552458483631443143666375274574876516431865443979987846117750802972368027359452615980541596810747873811412989463705055029930865667545950849029121852133363761673198080033475454476612810224984177209429823983749152708150925866490909800663163767379049967321919275158885188951165484298038557533355640491983174340138530690366471665062453832046872106659846820285929946169946715469065191761982466580796584609487362779931358644152376582716762186242359543832462493810271327579195031825104762451447743100815894511248974864784705564358702576290123095552188161782705745347856040891542406928047635995356704123838765246582277665269978251777159045433957257805518932101602220123033685563273253733476584136897974909186268827597005958402552324003229878994892551551239037665814443959818004205442867883700541060408828014238619015582424201494603223465980596893859879882645623418388381404218198991505298343754287662411097988009697425930947327253218664915322704415273514113767663386092592299300456004018181778787361900947946808467446691302076742019213706945596374741169021625530439157429063282529568463579035268235458350517883475148256612776129578689103868061227907456507699255981972061729182404641589439878777798628307988398600030712448718485510880756182192420651661058312771997755406194279672048412262678762190388747266309496782163759850929003484463216668781069336335684265206602472555195848954237226319744198693681238250571080236502239246131076811763854692100041375916244976221657645976315718551907967095662573061210486908746485286344981590992157373210339779416966505607404730847340947834283716054078951406055697868429102730819288579202649588986046566385242707505467739189092987141267986857702720114325147031412704512911650329131795364263566492052613389987124129110108039036297850987493311316716839051236059764310331358270639036815282087029067413404430700407893512800734050341163941343911694262327138097162570544562231186938227082184720292823257638351982450788302137315110540411201910698134152298439046734239383867061793329018009054013817224552449273758228632539370587780305994602735053502938873932706607498749642015056397830211942883498559827500778048019319456342261361076929984220012245854869909893575208512918643503871164918971669487805220910958776957248475122235184654225521284390648161938275698241449479924718230062963111992268457287964937311000057775604103988721236414358214841834826571476641947386123127955559202201449220765788430502951712804133068322497961596479648058190924012962573329370215801471326851412820999401462912737821762587745853037320230002394951113816849813850081646243762212477727844800272128662901645507886481554883396599540810890098391785155517406250469080303478149816188699826444290624093268830270186419915111131647377550720228679077046467457286288060764960078153223446203947668116129687108666005098841736619820994833941049685012351760889937366752021628809973215685787095550017689024516187808267659951396136985489167787088470752516830675082543361849952418610420014109598270373835497296815580523247722529400019994057671550444194473831020609635933437758967190057263645380171014677848288223963415268243105758963644535357740010153013102045916365240645741730603361636098127761432488340390211579945245004877937403816270125557626098509841798938258073556446449742170230843671905311469020107644930504293002778677333617656212008916308248461455824993818242999554574863301519272042489349866499335789569989768371705949382075265846895916678450988887943440204202782850705547281819121132559253575881365150901468154396535759999940399742566395433607702351889707183490740802889752414195273180636006184577534725571373476984366486959826914176742549029116444015972399125397485706116082235236549672646330862971595781537022859170356610126646273960499052266015222058847689749837857084932630211003514755884911713813597181870222603615573517496482961546121775717953102311308014367189650981321084669843746153268201423973903506063259912075263119781179519357409603388945109621605373975036442794071113993366148113881707118135054995134359615830352193317186390670813342505779818900657560880913924578292934614208400186979645150185251918349531141507512611102786315816827262035366983451669243359236403298849989861952102421477029967345693451775519668117940770011551637589898217838417326046169919413552397212790876900960516610352670720740525437899961444068041366794930749822464741781381910059382320649284101937475519607861349233887952960008158396511580228438112156926574776531351366512047064003049254926764967040842228504431687929472973653879622455197124482657867886367125399886143934860793271142336185773906264686772041568036722592773121481257248592046744003202429923728764402226377320658959893965278883385446628539426943604143745429291848599858081094070917292742628809385967580464877842538234986014781249116463706770396252949103194349159299828041302488799237899837179041866130486765456199975947499410017624414871831879572430499209695137318982278790623092738558355351560115641355526766125415303220063966435421402699334342400894930138998601324021018693920415911274571113089707632082192963589507552341133941513685108998953615122274723380869391117497306436977026170806150862984316803686247474375786063305436989965043495547897568292129585152398475990315182476514531156032660281991628007831685007736983803761938006036502925296299256881439090401867058353856275575316387419311428285044256885525270898868730192700578560953860760015282724114336439417129323130124953602697970717819277783353812765277569941559549869765360957047184210054235884060611627084941276721288858488535292621664114113237537643314602185944043513288794521668254122031118595020756866037755918971775587993054680995925767238062326048577447670441736166865204635489818506332772243026598368289060891856499847731318045233091573761497463750351464525874955055383865513687048478965740064264503442004287011286252974613784204066711889891269296662264143420790473874372906626173151568089417979311184274929338090800854104679234375523540275318938881383714634318828582897610336994287831897977524767592631176074286367283423087986918787906108086620610940136458346960938859476726701616879294061834702109597545251883538605967426163389321665180563914568026039275163982332380720725894333415869107281862248279015256727219605574132667447586536434178103708781830244581768457365282170881854988262654844386092861620671239378536081924091109775393379677249471946175056800535339917284858684481823418454662414479481779303316357592947645563961400443545425969640974491355590553166526162022722965257000827151176205167998234119707027982169382385179528581506167325236144316155219923446613626682927586235619939110321565400381203170825872882425518336679357613511936331321520025100112289552858064577519213917119690943147894937713319914184982541917184284029834255181641439439949201213165293584903948220851486621156131773865112043563762603785314311999982511841269278047414320753141102015848892256323823770376975420720127732615285539245476921792327367461122409612152214174984632789634677238345095390947410746789679862893981837429261550601760591047952176628515002024155234763554009560313226830900726917668073682715083745741045097711026190054962996211669663887173288482775683128096421119613576694321631658592751239427520132294797639515162721802738043458230472053906588195970999515713358203728352138953104203435033625623448733904161704963568392338860871598353453900339274081090605832975250553183350124175257563646868922363380113124385492246229907415579868981185649517892788996999221034608861230144419325891600935211852971405079688588481490785333243505944927079504773536938108441415731952958899153856284795210978032505039181612198593175453126072501827636075871640021588140949207965201486413311943683726192831846500598634502677803813124462973948962795747163620566239974546808772501359806233392339104411894919386564891870299224565140109011672850766042051035405648025831758836934632974216592546183503766757885752196754287697837907138609820703053297588616708314891133030454950886871909677923926079355761956311717173678733899167848778381829410468912174079048889071198449595627486760388572703441383414157218068207091142253534835973740629663147054246344857673328817959130143800003186725934483185318704821327575894629914564912916688372128422495280719226102889459409772518894061390680450284098860710038067141201596684363316082057407975123740483075983998299689074894574796218569997688142633364493406816669488073529376335266988952459879855037511031626613525724560202968601735885643543111035994412228430472499838719825180900622142275670882873544382946156004670906746084611229523042685780754434948882530994628287175338547134761086024859570884133228627392780009216350928390785513130581933206901018158463769475408446030133468645058102100296286779272523969198342009024574912758383756428843593512190434748617169681635457159139528559734627053568338027575272225479700424924531259422491562580863920647797530087384625564783211722854911273727065066296797432756083344506297773589135720654966258537092809798570115408660284713009372191067559058320005180688130475539744119990124685503253932619809432695589064361154695779463279202864352621693234967923202150119050005666931797860042508828070539580698015875895135938421581811926399264051346998848403330288527457013273935016531547917779463284966741229548036662859109552228475442967578963208860453042614085656474506080944364596048255614092244305947109169811971747150501429238698015604375335897547695683671346110620241226074210281052612451830896480535322668508860699614024195465115646809530857619065190289131591325234454654501715775042577657511164125122919939607082577933648802547894829042566109921931601505827626258418085173539246346374455232539685851296140368642166702131871110162638602210733362157146245754711325518965655887395069141640795212029211886780521704292743953325130836523945258639518834414734571449492163272182628385502270503930644375446819430927364113763809551494708432902852809832436896582176072074520086502408133781579874934772031401519946576039852200038344469555776892785551022213231148127390824871319490003811752619849056369953588473121058868761329374785911907172911544859357256152290925584239246423063312636362873787074618986331984105439139161409375565363995991070443727434282054332263489110615117597501769813310904422985196812948885581257205339140600723602242258776882179539967406172171268441887061347507554387502223466866288063302140614156825758344472621194655498284140414313872159340452953567738523109118250911436620776248339510775555373108136955451622792991524716181102111102598917147216696706732170913173425016109804593426044005975982728728106795439468650601265769257467228125303612872750525285579980290052984310607283783100041839555921778669979660976505665839036369543790555746366848133228092895913781625950920210820919989801537305289684579444603325145496150312398486213169399223043873673192132236714411269851252136240749034406935268876925402734813234347839900413946397952339774152684906639203352429432149779749521267759512004478351560359864699889063835996156134901794074884146175067450819288168425775157082165660659307428010768324967443819823443798331973049480700697588264183290986280206358520550125748727038397300667322144555488416302683757244115689348952280418738613816521426653331269640266371505766842540464713211374877502809092175731650186875688739874243121978141235920092418849490118233430057519832436858148974511523470427388556199365388531339540417048232843126705981023192350836673948950933651801110572720769175661877306757569647241473335695951868690314091017926784419937413625826523834359543396312530675467551242866566438862152194774877322081055561078189687588289988438946008482106716587702294885286798161859992038686920510847998228973245555653818347055129658964145155166646810167412140974851397476890850882557188986119090130714867316245682649364167938089821410853013385797269418827041894837884325491038964892285347084774126092715101708996981888201382210977506447682309649884167583027527184900074257593410534065505211136446093342721163608724444963170565935544237675814746872673305142113730793217064882126765291125618754990833164595406499469788233633195569008998998038937201891001932951640700048547662775900831675914146697801344747034646455696467429524915451373445399255331980234172827965643654667952104752231719279833683184610138444200842087361042178167211442778991790493943704157460698285048506038535849571355523171076620463976479001760362037362402038664384786186221112778868995320857526017018931229025055587905972659944579057093542368877317351881014761153958286179060890109926647631318801698421704619782003714426543573271754215450323800662379105485886832290459715553620555903471052925232598091707321314328477963923682734740976228719200955673267042681557491494662793210214402538550960981904439355088440515955767240627882427500363475593528551145581443712925106541129269231149985275575265307503862629530012800522179407893012277336693706308133931106339554915171524482310182737249290608465557370946078566691580604539287471653003928769228203441326203472146656625164278997859459161416006514784050077903590236107676869000880481763800193643569516306289454793020945559889965361247214471201146035722700871435260014341915101336911887863025235876522609976779783866488755387764587468412142238311349273569771997122282692865567421376595821684038562886847162801909868287034128863557665533515660422272842361668632645153389566920860897607633325418201818651125384998273186034299283677122914303396263031063146514881475433571513753695914322601367101048532140325383850699383067644969979592982184018012945003802011874167475102982340458593483296151069986720896083102240217893791075482680618339033749148495463970256215738207741394691334493836088003596800980887329452645817919064064579445208096144793170312002647870556867300018068980777551546821736688202604861759869688241730509183061565198339395533045636144459567467557564065707773395036166591940028660680930390177909678578481864224625878775811953592320299316520993181187832976473416741753071106388916622804688227391969685678209033395603389295227384072810048575581795771367192460465988629218869963482830294573505895212489281522648535929494846222659160080973937447067580894946696615265137652007986166589051127122504356291192124481446683809880907993859270679109206315062106306233157922471641408980958886908853334075233355959994239710731521576846010896437277338503842053795333054283617477058574648353772981369817298970330798752019889629719730461312045264345091072627707052634526605311532444051488563922112436632190641129813971777920916354814515271698702539876219517817751612076928840945409339454325380662977056134566461978777593012114446670213837040861276805850587276417858089461953780481148705487692859668133730587443187038035619147890718231765513976151728074227025354869852520086357789151541134877443323716589437098769291000583179251444487931492241170955948055883816702612223493835520868113331582635480436720659825356553016606198662071121381525594986343091209872700225704891205773029856736775124147137242871489966364238299461927583040033609778089311593268611273578284533469454622141933825174731172971742778734405301766160396984517727169674448239627723759827342713846526758491290539595600179313164939875181848115517744911208510069971898770885759562945152206016685822190226759198868637673331546174503630707634176315053749248809521811454649120838260596884938560315783493352864713117632023491310216879649495986352606002996051886004423095006837556644016373053059563872026688476226366732123427698170161751475789821022048003336442518868868810631967315394531811574662003652863533434849890066595590807313452147825342937337071256618458574917708820470795245164991923368049329109179102956848203245143675268125555362096095127505402812976000211965241088043201226938789406197908400850082327258713281562147884755778902694720739560776461759797074228239859007524619980732746021945581428527751143194004792562264344579670017987035580657415139480244530568736032962513251728054031512353615755977349136756625514897753632372863523782638013211418138269161651825704357546635579784637520527789737637324431007108311948428610602805468650997130893024513803457446464622609496125686628494072135879449585612565123859608112755398761155928616384612585720228694939986765649345048484749877035774047422837425869477416682682253478157064897374997612433427366377805881854850762990165306841579447457222975739983162422529075142041998451745192318580528995880813866818795726625579971349879844521259953752586497963112021214863001732244576378477565051876683604140588611953977876477495794836086814813178961356160012883103434940301351697903400074867156769280034479618813167865285577083601681651997455926892694383329162901382411703704771375618387030101309802925898336296552215350234893297097506247527579414050631694599246334935080627939102749553589556083194672214131417056560057666709843627339281614585602777192291087071465257802719638225299992424928296664931221489740432533708936330413264792311923969809905340879642864869043143903096158087974578588907044253823151531504460531872567741128586905758885949180342502800747886009236114600925325955850038928411591573154497341172381092835058760610337074738808303021659091951154845314053459559516911252833532579518134862282653906391006729086349383740680961926849880718682680623911632462910014130292980093586551141714451162869529298647837634404501745879114450029777567377468880994049862577803632121202592274773585041446572207666320165826175287468846246912929652144361705580994465614152285359441480118922496457937913282269272722062722675079319691100847498032231758465916858530462874452309816595105545774263045944541563164267015930131026528649298886463979632614236523316260961628826261896849282384975981933093357651045017852062568207388493859421291321398025545647418308059926586006755770232802083846294978166631510262658044119509723738561882950650693996911420587524759802822115608877394635266766748774755492141609234326045533975116803515005740079767774601281589884003678147229193513812265034106395348893884540293459640300743991147203849049993257391679927586902241751898370034847881583653999068902235203319739014137591761007939005748371468303670670158661863299421870718461494004078629630158256526857311811613762471126875896844994837891500474164897068979101352781945337630134856105058175682493905634497675279267519423312088982474349630549364489626741142439865310121689851822800554791656893875370815307733180320564601590802014321765235308136068004268281907412514238699057452576485717449722119141888779148654189621012470095401577393546372726446426428379128101698804433962158148605769193008866479531493467249393270550441592694765768319189271655041314613131330764543714086285018989238869500689753650120516771646712119420017243610990720238252822057347135941204210571660643214769619711779647770356302407226558726650739028573583448204025534645169477386982070666543274265562275147254295279412119576547404981579388619811634507410318775033478529545780981034698646027746119452951362474444609496323557580059499874246632990027646163083154814094071301788406041846284702547605192252112971583818983771636619036609151918739154641815055612177659491790951688291262506687241129067388823614490737144327867136893314961392116412392318865755542321181084230185396049676907724564027925786489445021039466039628240498168577415384135733620960885897999469211935812314859285025174812125813013628507037933162966749510219322586002958082722206900009014851585978043746695325472885606470474999921994877305174254640912569438757049971416264912121728422325129200469008291498662520803317316738483081572157503584354764505862229646440654206205474738942712283884961359050305816549267339314867457185325931787430367738156431738749781670399688709206692710720931561608573776276596603515465488720000542319436577949674440835153550868317377919789608180769695495795426255112207443878210318256556286507134554707501462829228627123921616628568260590204973678994577155221622699063177050855856649034342964960347984746643175053035934643237575342349477432922000191440022428225848150913719156224668725961424743987158079689107612299928085185411498574569320787014640507887278708040710178543827236417428227009668863433380918037373848461654757270401753417839613247879250787129706626247618583360307392372697749591682423030804068771772469693090401578440865987971575006763787616379596050255127198053645005884588599077253064566287052291407289398348465943328741093404755976528802499784250627226318481312551981955013719435652329533249332838380558518597858894240270753465666835529570875271194341479232495696974662015787399219932550078601066109807598959230345852657383580236315595848714460292134295864642695653824464887381248860244096103154482649499838987893621481965421510263514767014328028985526254824146473317691301267066113445170002951495102656124086969591533118276692371304752044159309152702222174320691799779925090983619957983760817463812213574097325079245247537798886316422759216433459954046183046554766730930621751697624177992665715480678169141848881339813787405513120853837752904944698225341961166200811401112560230135469849546107145315962005940979616789437528065873776305017386772737197224843876113905303471755491125071490199272234005882758225490697617519796488125807335809927041944937297272215137514961594241732982434730940173575353279931570546640914565477100134313402767160631195645447693846374166093561912551838555486049986702997638262882057364839193535080229602920943578599452843381460017581530907113014997137481723760044267314784435629507702275143474129940455525065643376874600709794542803143171105728109903453687744766800148738929284232814021852625766169761657266136298433389870382899550916989904023220589245404736771602698318331385749998700287751613002438713492311394534967973490229076837077797236558643657605088042137684438858370191607856605450294725159491470560975706503655805393154284793167972373307243152439229357004179353453478132541692917788586090569316170485641988337450556823720187862467723254689609357608811937461519980346991478882149747590006582636911881639955460369493877177616350121510957502975241465838315804598098908011895421004468270589631046478387482125966899318571592956027450702543211297316128071708389607824217490582135696748480437556080996828514003028221768814549708471032393867228071466872426566355144930970654862245933158284078254508064671259928048005974676463517035287955523453406232421067267707873423450584036147347248701993908641589679844020994749978578425724977791012479493499412210091682554396835211310805251239079294383563755308774000503619809071060365755792509205646240595279404428092196197713835169300126865982279100423480224214129853330696235029954806096122042120505205174001902794845732391676671773626569346333824409369389516153689533096376654626987142951296814021654289765852909240926785306941482481559337214810131502827006351015285634318883591328738164218628018838651956692108454900204657347962346893278849680907225539755201057016475624206719346803184727724373105585943963832494364285581080362826670299918502112329466885789531489125257405535197177404521554111001470048328476357372938583539664187335446683208953191930939303013272727562911018950310488141171703677341796823245339200629614631514849424158973115741180828277660409109040939244405329750758090517268687288158935832935957388581099749626511335018626463411556109634280862223970492032416613672655181233173758949272638657027597286156631220212881533290231997249179224191420428433904209102935538862083798189392210047475432440391402450073201217830999267303123721903446282906479358032984238019001802217059707655941818482394543922646360026626980762215224607443444712659532563998504472118642525449603720365143202781988560186911483068193356899609272059111278046254104582904572010824657511500168089330555106982259658267655742811131425792066530339302308798242643110613898728852514464181446012600294908558986688181023238541805019557877636521056524188297293192616216499760741014924719715234660182195745989004058471945899141560599300942376994422273273623007383670884382124727187230457799185007623003021461593937029067615016262845853317299254351118185356888239583068960050405232352751975704843430077084257999283488138394754244971028049087796645274101198564684493417927894762515966004657364183811488926606086318552470323677861443670023995813915379093581140778891869745564387245448049678785601298795027010472650253126467870873332345818632494298197286329033573290869642156003138003627029778475226674959106852044747757826894655214092877944555315672325967404676640141915242895161740692036523610958253514737800590958912839634953399637685489231841581502891841498822202402212001594775795746676455170576251824525263996770491831874933893170433915325437597693038058858301876427401769359109875125962663492476289143592230756729655663191161917031294636133280908576010925745653974096846864095005189871936528171109838147441877698274980428997544770486503372840953012101604885153587717563745360672190630851942531869824271362589687048031042768899345477194965312224440137825597993870087346749023450390106322731074967032444942422337993044972457999261514459519498199890356955838164555802527293702559386752454314529393570321830801735919611509042916332183954262477259184419267208592937778188844333846934513202652812431380606940323587652517998999939618086602708225456312610132839783257388850529644674937087155692566304146708180732053802552440133690676306810017043308737140682147043410663667972553174632475626210316548576882375759195709081636370131820795024586631796373880029228594600146936226818476951332867795460792541008501837692565262777460427143148895356334770965417519480423237948156993615387171889173444440153570717238112841855506976751180326001199820988847338690104426261631324128838568924940640192860767975433815511505897097973235665368772816477803696459278546144711843319752350947648187892286325706682568569431534515330076357520381401228152365891655426572835067142936373103909331245279723899344181366024846788759162052940238927042784327093059647457422055831391035562855374943229755915973374107963158908979236950280526318357559010206162077525585584858062246162318068213359873084185708360328742094008946458102766016262480063051606775770144673607852397350044694000349405097173835984564118094158379803780883253276735449857296598014522567433884750904054946294239796413222483204784221605066163541669650874802921721569627102199249447985645265288738603632146933476567103522234379742699107582568525777677902667850965755522742481119768452122406327708701542579992037220043913193782758013426455541502061824052018790139690195753752027136113916208317017278201186729005436210495996762902872598577037287655347303069719189449179461764774770083235504872373111209971360778833787905883637565748899935471304038737118002420899257929988361272339954223847953263138891321262224654635334118341001025804393288855965041014605879469367975310944081731552033454144642347633844817973098334446067909736354547728358448615729368842889441824343861467190028626776967346686778267059998859981978779539098484885242626710608402450246961249134643583306645007173752051139011586250066149061746970843336234611537304373394454366608048368109771174790446936995899639522984118138153256506235446263863932025994960929194890180783667949669667095172962046291971977648751758328586503957905411457330743537672415615329194151930932596710764737981009612289237619958904872193615878369168068330312926281461588239213774974493291937843991625725360317834923495868187469179607685694137054160352132102198387494935138214131191739577446851354823880494283450329893961774775201041329543856973749161498472456749556242901516192323724508362925149019031147948437082417204709076897627988894399809840747413975741623131588360469142479964384692773348470287946559896269771477259392907685156730327955515475696870468834658433550735345532092138198259989254745275032127583984525644344478301753462470879230161415361025584968777720702221972413685575743119770279769955059536460819204541950267852606736524067252179250401638321973006791963832195451449664242287984940344276472867229526435035994543071444239461132068387017472983259045247983185396934550042607815848376404720722147276110975520734233770364429083577341332869584377308610682162876271580531666331618663024210853986068418884598721616042749542032336678625137404343383596531991818167151613054609899372749712572369790444336549675105780005733197715836154946409768779534450629902733911604535690304258726831523157904590013111118250668673421047469000891972707832410090022679383680602672063313638874818808597138266263315813923716747842872213464617093667289334560820473253126635266876885728268635618076955680629957280463057410191082183178500461261591478440738423594272160187986183338514999795105005479695897044015670241491543927050705342145943502803446845782796626115313221372167504661770355063062177816269697595713095468643681764811268474235229621344734183374463781444491960505960034115871595624766286076317257869663120960434769767561784748285756126233559206184893864719491614831257591671994239147917802646183894112625009965336572356569812326083385074394751687481839123055440034360603877023660300345536720252692903569216452738742760799774548912519723910254642396284079317883997138720126242043228646777828447085047860199283498056283146361563048195249546463641791920835437545088677945326269917725067163341817607246900029313499570195617347214015014874452412504317311719593588474625918437946202557736273555849918592966064596689711024218022608611853812771765404410238170359360790601641011433752700752101409391924575247872386064080896930899118462970014503842709343460472291971529949462912351764029282451970410456074198310530622449909289721516564252161044739080126066159793743514938772085084659030547069943532151931164117471422436602462065648417506178003047570188129218449360902102940213089159716670038408205480050475617112196682783236853520117324471257419934242615935596385936716322557817086759833820081793845573738034072125392642574369542474368688885196487342052436332904883528011364039312802602126972467867307739048272883512562661621156287370913416811716752349788635411844052092725412643245696560024938227189528163509015230147021684512842669834128240515658514085167578114136792776182640070206922752624347863392924848782106124927625047815817111079803778039183881554097068535578394069521263623718760233532135998605559622489078010330539471149410368312361495056801557175480241017337914243687359081507533601431162924985659838918897585151729781401046947040543440536661304392620357987464793109474305821676222030002276005234736859092994809267846211652737543651475960289653998855402304020643927216292404737504544082825689550396907903337791222923692098529646448686187466379894135273982007086951550208161932406055898186860588658609961217713312952931294567556190056831034185360368047581685006451389181308709839970330095592179753259154334132009666797859019986397413067995709947015918342052748687232353935637672510586805769733559097919867700684214555567284278040319813330724272614681121851496844165445874524864353231827467232889695991051952989812057100953169689563501667796315617397535547547230265662196943225156935163248861598885657959630598671953576402098771173948923606308580886076428012889258189637679952271686109731593252439036169922504047845842365095263008434875715158107540918438654998326258923569065535011668155797253047417175677729263350744987450555744325665278535282650027549307188729945640395980737025951227974818945619606979718243468320527800837986381831310325785275233150180915166119664684220907003130725813404319545974799821060272149404672308741598353005484581861281288135330480802271778561139817441756952576997016012653968634860071628497056723813111949851274208112128556396963022713387900773472539823357908578375366697497814213991207560276545209086535560201006759914314764661142284814293539831022991150164943294040345649917327327028947876327371724138065943448166442114357618625134579189419944900945234199868996448429493577789989418416941004325389655027616156831541640759079832625344820913581899137637508082567317345554916622899958475523415124252682759265203895327557311063129721417615548710262978907317978069083568005780550247032731708038435383876116339635374679956447357782230309288237255566640424772769048847940744676291471947845871213099002368104559466037892375492639213861256572028709763141786799150895966950051759933174274180114576991736517695970936614203105427940590607087324996977226538978101400924292172993205179225213858151145239502768700054006512899290610219417318936479554169106128709701324022842933688188471112587588823905822538213619873123494562242727255189587954824298931957645129757026133153960741693142059466069634421068834630946602796580870448417136641934217671724472949564899852560423036052557557432495596237198599877129864219194266676921742721599860186075474157574157628468677752175679654296106624930330299013467780738925283956921079370471059519752232857110681995766958863640557893498528549330096162552619954865357277885523367960294959904059008232760436870575721498440281585898267940759660103640183819714869587298932553847802188444242717886209129999844899446558022144924321131279034239721364890928929820815829581825477717104319003739120391173865710233691429987206468172059675801047141188135037140255553168613494364868253933267699447862736301239044680097715164785661979016454069283845791715684952108820235258652967678945824069473039926048767780073382159711732752863761643052615551419992390082847390288625671277956025260381173416387568652070015458331284921081834597554146935205668984256787100982990330847955632707308656890418784343511227765837900326997870803981750354116472400654215357178126923709955234078977973921516177791032584024004654938974562220828806710727994207585316537666826119907323099815789801401861445711499950833547358057540026102677913855260454692594565135260751022326375674822906450513835436234495132697766411617479770286422834044111239363634773819240070937283792159552599335799874366482558789509034381524500162170541677977975986985341125664871323671984085185820601857511782230909852555964677067612656112928796466477644937191385766192577690137687040699241099543755948998765889347937277095688381795249023000275352860555906031752988249937670342920830334104836358505788441841872701532295181642600674766599985369827810948344389461004132199758497294290216101077709478298116005947009014984459013612859632268247809288763729162022373380201907310479744495673665084234583496673984112555081921596307355020977699819142565765766815232640639612988176219117101509013844494686135642350260897188728043221965996715228960892003030716166618981898324709850893513002225881849734505939333588976528321924782714926140901290319588435272374894305833094776045182749538169201013427678807626601073009334957148441460491642451267681297211451147791877573270958620302892886803227513814876206372077179379795338159888239575583701741644615872233945546447169780669218035366382524062048385409875532478400070754759127299702233616751088447325087382121453986608279538612845386879155976014098589572251353407567304224550250873047784787628361176991186599494967338694580809323591046058148549219259374733740658737995582563223921544222436129387572472358030134591281886077855790481742769797171310706034761539594275782827655724335565536463151643842724053130541046241341749775460868934156242264230365700122005171304953922366085124493223972496158970327010590762311985407584225393306025658351194303422961528562154231190627733587058731010505625948476163800246286704261313267539908272718224058680139022458714384268049652173821766736913641894052693963397528184208176362486562944987310321965764899252297289444387857732215833234231789052982562842191473424639819760321433937024452510513579628388271347222841824850704738037963603346007388752712554215671735684662252346412584288189209391426829850667480092438201857412007458359205172398321223520261540592009637361699338401944589086353798667415485072983323031020786777637163528780874842600288162307221409003237855786786905655023006535965795366857186857762667386297249521702605999098855393647540319971510614945255564250400273509215921060059824663370532914725142984621639484172621037815455207114278789672960521934765543268830406866570495414991405029910412420394162690400264113075074933346866386460902442213920103047676867394008695648020001371651092126634670651824818882040513763626562241003447400843413032563629815836659490838672448401014693731204435978303682976241184409584675655256890688960243968246766438151104533858191975319319920428076094731748761043625890228535169248306839438984631084545574877133996985956501297509721109322261428922026517847692862984408869719788337475897661820806103154066009387482383735439910103189178801617918012558245625120592517394948242238513286176025853221160519038913365984165765017528007476513356799674293649406720003748247492024175136581236141582600605882631150173492661791509311628949674951771053241827637603274266812697030942409475419762097683217060152514751174289903885940229600129721342091213765910712793319760468539365738364746493833307430779230023745276673780989730857730386413178399980199536237936506767651869209802676137038658531220048816927535947689250319220673001724838796958134238901553655366613834567640040117694523623379144274189661936738162475902765757503642393000675526640297764113002887786470868100708347625497479209934572809406057076464929687838902533592827987425096285052864761057086955628888046683318285368053685358935980303565903661280307549768988724414529846681809866721544406821647064759006934149589203748289217739362289807213559452581587435527485285077459859324640856727676273821711744810868036661420905791659008238526944211492435853847910765556660425920427674827385527895789410660444316622397778150427450860569826660679949084324669595948915587482133017530820136514766556592259341524908261596455335864331983414194202835041971045269625221871159644073654252074762686901458170611541304321046404979807086816497272581991721072859623893912905350655170252114113172279698920206387727034887703886038366689737269981953439882711126410834363585985067173073483778198482268561591915212271242787605860457365042244996462921948880786134180365460915905047581705947504279575074104191045936886004570253775297774785938487088221995538917413065758693911675398222821619356711392992234487271036268141109023866291545984934696473360316860338226512214153070288566088763936622474810648701370328257238670648776269422272008514597634383503071092859896176103512544353134390141320090930223167521132384129571458619535552474100369268920462000406230014119379395149312954271374977077248693383287282315599133982368717385618681365577711694718219866642882974836661055956150465829443414561693051157666536599127688676139125815220721030343141733800491287638884740037368557460452288661862242272664090122219294883766407334285469944369006416857294629676225408221773797526308353301053613039855146540196693358873181251422141864230610154790753990321075271467724049845007677658317357901441810921479992522820742537952062624792893818304333262220722981978255171606962748633356980308249541866967508471712170693431765109831297968457451203238151347034663943736399076145237020087483174464761027844339168059114831471105084030874912832611943684884701516637969338693100217744152731666977185488591574640611714902467039176586399328575354745626110325229811223233057747490316274320890194922702657945841701231224685026340028243075632100278062468261825313513490109788840474776200283017079808213316458278198540561051013776148429332870891957592167032529538806888459848600121260911173468601304930477100182851696591038315025496782353393426219228163844399229171790228894120875456038081329291996783817736160224213460698267735836859072895932358587039624765589915168547460370588107966437038233297208245755851814838446904775382098792111919731168435225032589682382497952517247693568220536527341576013881590861895854790540545817972347669909116140845806869862305387120469332944974939172457828980030366318854589869361347880124603458683621926269763158161582840190977947931423180781195178019030398315823996296513880400112138852949630671676874810045497541906120426338894917294044636063185769922550331791043478092901066247539244484441108631192776532901786747310032285688858252258522503376770720475569015010373858451013097915243210766726810183198845335913884784766634765605320435012255328261799790763963761968654755858848609036620706218693193678167733231167894681455286558986257468917438093337825457216997461138787963647730148215432960567828994299725870343867050974301105565494546902364653962927562616504262726693988644360484308748100508226862642137217251001846205113639021410637424417374896760436659292631146703323944723955529300777773859942343564392728325993030288639498086428060821054941764399777312259265523969475224196748511068635671205400128362347688500957650612717865118268322030049401972750775459565846116992920867875476259144153002551618733784775589248726833862449349930024138190521561405629876928554544354166113549422240272718415253655693654187566388252930494032730076711171458552553942607252142290689243112339227887393512739956340754611291553446261846059993913759401832225253151018900679557175197735718990681492420883631315308244458727023071633363832550577258660282391898104043127843490489273860322108619415183466036897411645088211752622088886516576096321712587919413432649379452186388201476127649970959167606466519070514459951908603731019038768017342306289601242970116493250836167711478855274990962897452511235594644691758963867120127750530179126167542746783621997918247195970852095584209962486968016495406266689305003335342524167252724805930109498275110440160090982372966670281140551557948467795742854595153035116686023433682344944275688970396323069144473651237847078061645432244150575136931062352636943471810111513847402643760448479054924402321411632073281486206065475942914627771668600100704226494701033378352095140567452845606214820541755891246463507846973343104781863206293350860795208708861818455548586513020288234757928501346635590835642289005469770887410730788178943139716925265178971475250304544812532972072952460328689129968838273944194018179815027719773142055514925208735259917088144964453066213936874476817213398279789654052600700177684183166735600267018984937502558433279992786687742968782139210976270856208220273573922483414222827642619066090894596611842287633715676440433700532213105869558602445185425949859289459004376588660341632757528898920416422577268622335567830202177118720547497391136961308087195241130292549151927816672596375946511506291881457914164436862482601234259304594858526519111033092968746642865250985776639030701890172544925132741679385365290513353960843763007109178966385768523587748083177324260265793226488123013056915752181120587373978286033518311631867287340049440770226031074767147885654356279412679396715071315655382535612559967887225633275962769387918143879449459994445421037938636593977145862069990421517765185567591696894766872005769961361232974771531102374205511561537740560225894292687910266121940511093529707525345440291320687740936499367070586476387398441382279088073355420420717584263769243601175125636932872256967109724727352651897612041225839752101822481089574301685238560438007324104308857365876032095965714622532629963231397763005606405948491387809221679476994276293562466401505770346291631282775625239934078398049973264257789657433948738064431786799577527057037289968423146481642060974383962993801442971704808515537650290624600425590868063022394763277780540155020648310660986934672351631997106552560017313719923818055778160939449586771841163706634839768465896408368298950076430205889725369481852984304041681410813980264245704103321224165655474545060342988810028653176401936781156727745688561511166880416359772220742402275871017516060946327864569601869966700568800611054335700313877445972103831139686297744812205557517775757466985930727871995039531274090436877981960349377751497865242159717865333443982306348054511615755380687663956784501667841191074235121687664722723887165816003629361574499195702533532228134323289319355666641487244579967723850946741232100745755215872797872516306639920402061160906259610690109948825592973617808370150016778087241204992889631950667324289308521107455917902408392147527461357601190826404037819734854950321926445512094198471913824499187213927456467664455585762542334424895520926411166150037055793277008509815791363538858100857373248024922140341107708127093066816069368649277702255984511451616984897711715531382130316549303047271230632253689936967668126337429736563648452967760949836626167007105651297766387986066098167943068548542287691242099394933250637655504340968978997640122589331499119855247343155420304405530024751537726953926177658094443135447667292529349690334777153398023031205020729531177283617594680566275544858169835801542766550365622775147256736419515373214559429232723179797994508410442766864751130694298221488189168440273426888932498684771993984102822718730558824250063159012502479294561003715226815314639639582938187178878106407224339742489123606017262455170088103700506718546739064188852006261665456917119623234537062871025390541716296626413921481781805612051490991201331702419720252448856661274232461849599704473827786504252758654025400688133200203071272221724043777785255554021300320580729364713110965412319030984858130068416608487172011513118303342332869142470283356849227763214822512642092535866185417453693641228121502851278373061239004426112113058592460356215258113789539310960067334625328222989940540877518574610928701807009726269017482244304473960141223129810389890151972448718655450167715569061594163086934104717483347863169028798873449733849747408850959524991215722156428506258181270390613325984212904946277183538395990187943070468476894233791009212700069119181975886061798138636799064602967262803962301828879669351876212876973992452827323288437434500917377989489531309489098856321009179498676828193634296378324269291390125342995070251989367844940912994485858368756631611982131868319698452647156952181965901867586781612052557038602934120205206514090641913042792165703841732613559399529612322653787854324195640003164274083863980698840500494490205517808430184620619354979976675791105594896964573036883085015766728464427522508696834762828482729662269253218032658811564154139934878799342927015118902782468715967340948136802024533493346917964630407548465963347829287888096217268477305962911121714215624812093552949625912570083291656835704793713964976833924483662395373689614664120774637965924518613830163780189346390234686305666435039372757683665468536464251201539020404690681679060064891827413921346003366767771872666052137522454073981027760229273806459387306973724175331752802832540140978505771707683171656797933449935144357010041933681298483681408518283191369967551333391255054209562163359983828760665431295127997942578986007359934999253993350199905055990408849938786030902608949116435231964638771473471045565641100485609532195156014038595869141166682191458217335287479813670937567316998802906572095769415388041936245943955183761845677827221695507411156527895496999622002106072743584499679496962708394578644797361038233162354089022131639979640938811636020938861129202473343448782023169659406964746470623453602539446055391870731063567058685545851452395670254512126920180049957350408244348080112649368235514794698756891328248625244607705638850214783562164050422409849784274323416313028603923308896815614660952250847117630737404581699525078803680067249255939528377753760278922189838232683850957847929311244661039869207493950328926503519805612044961967270795039971512544075768993031576366313935547034186356619706544867323727847640114562585573206262535445566811557420681503163408299892535802355012210280827579625337571162634592204925398498443518511391051136790507091620985368838932447607862427430927194884281314406762037894416588818180139856257335201350784537770567579361408939512686412122501339521668029511006083488418943150335776758592214346794220620185155074016073104787270259348992521978998833783242389151044455663097944809319028868336984021295224362807563746662100348697355928494153622732636859152021537358702576191102561940601808225543799307701035669068733500906960926852704642555227875276825751474053615815711149250214848379418022466016834472289324409877730588006228022055885825159850248593850688630414390169994881035895812725024433406126373990345705634314423191673748555841106502471429839946060943278795545466493843669219091766534924287016110762225185240145091107554027671454509159738271465887949749325871246528576018258866785423010220735182966934260848591579921250485763956354683410008462485611860568363182334304825841940912737396494840904742178560064176376054295746823795389242058064202588334491271818087310949510694566432084773035862572062629954064547764316548261397967194450822310090652607769786272273265047256979615591578602215446471195677888154451651755401531813442080538971435134884406250035403926216838624073863072075710515515083352702755763145101492991410737531923359811136524359911363736993533083317494268830561836902953261132512432023089398520438270375396078011865284272616081607130805756489579971796730388938445893987757448769582635744479874296130975484278739844329178517524151697971419441122255253649649833630149572902266530907195126931340554163680884845307951433331472168163009944041030462783390937726395630647131578588501693966545057938176476341399769693134867375649706942510217608738099871006633414043449391639737703594010107350949160101066267571414327249406646350196170749113944069456710170104707708828424408571579783906519180986907026424427955504125783831361126764492239129508132552856265894638164389807023056254519025923690412083985458490641078167439753854000494992320843786604748233356056725103429253523909138186998162608228034518840906100971275339006605727302025638257019836982072241185910939205154762435214873696148476974662864591590907245321964105427417684073396364648622186491490776498847329420618232811216188956579112356256939057497048257979479093404342308509019476448796773060757530315872617458212694760980566929115982004808299593730325920157673609612670242451121338480413949066557405603381036548876750547568235236991151533300233263829068583403388965639877839966445386512840996736183275934942907641901395665160468877288132561512024464625329244587131002979971743801728345103182368668220700320156735353552762400930952862217882322520482554480164027851486666834134295957478237611557735480664749038372259266821377354700107756177013686675556168407800095181260541911969010676479992551391018071757309808171763173782938559040232531149155082319002387197170688629115373155324434881940083500889731679071651976754221010697818404942469957598772605046326057838528097014582739102612434220608723042164642648052508146519188114205907977616327765881732068659155169697447096900965741038531230443860882348652148178799281016144302260775986925626648861400894764208667998091078185187435097295512850509998986568995774685837374035013921425527108805816567885667372290016847175084173399283920535186725766086417772569519288373441635186139406438031188623467366589991693133357933970816267877407472564262736509737752786086920384417082544383159684748663693592396066190564448027302875787307782104380894014412376818652992029632974205737205652914955574335447840642809847786664298194505167621565418987241668146117773429842990569272707253370107021977902208545129747264671807707617316336483174360481756960882499015369384007376681900339459109599407380701406413201231310255631821535594155835909140173345096616786546802595105466924365370241799177592481041577021361235683185397720298777588966402719613358906076495001266378214749790031359449811445965427565789965764275672176006378065791501954293653588278257300179942669065182634519325190843620052490310293811733056825205864635255231680687577738996230114157101365787872156026992028313267409680229105651040765624068336177331449220876009780065750529794191494240140547404285927932859768289550894401548831399672084990927023269439035711118031959704842662159345240288007323761932618180589169795174612581376371183738143062675609591374997601699886562778783273234813404173082291885772621817265448027755431573026457781302824122181316562972027311595022404945583969205842172488925923113238318047468498692674360456416720634234766582348058978705619373003604788025104346705205115114953699842347566159174964745966941851574290713814772579647297664448254054128755022154182134199854805939019057092544799553138620486305683792846157336705940899177712739169239319356743362907944377464917248133698114785991831439744695990008109296002816320237119156321977147001223849649399055436658289416266672124895565276667700374556003186395659598562774893816970242294097137455417465276765131138390627794112958058300299589229324593115146601302355088989610143707907761019568755464093289831686138086614966323235790747871531560599396201430458577559708649120196254036687847746131955124072544891494619066240520136465736815113839514802870435994510845355177254837896882440875375514579080872222891510015314525001610336413245588372202431382425435675751613944020546919411856338723407198884608093447914613028066774075648143381361348296727477602736221156128190378039409998071837998158348099976033325072408210466513780922510459754045126357250137917503308499165253383805833611306967191773727531760519228367094836824460193192625808789130161158298128060761717816202266533162869314618388294827590070138154823030832872924308207648516812550945437705290146216876612054059722188897048284997724213324882548046390698916524186464470019857073642436105259859725668504836546016677573616595614722600098869546283719072498566761952633040409162548573660486715483941152882805084509186494094243693957305147227571962711807478367568470561895261763701832750534344335482965028066706343693742336785745525386066036409812347394061210793975477059917780374623383482917160546223488592430116978121040523579630158022332916000193122257155132696221985237984807329046480643024499685536866618575476848077377363898860694675655593354252912674877654273298312433170901238360142246847777232548383027551333514982993645221939503081509564841854307762481094875524363811554110738725376057222329091576550878684569273642692804192978155461350248338984520572844687464056568276167828233039472459156267359060767711686152701997841293514845711153998261266504645592463527753046399333013982754977926164568511618566318863923474947408281982187698420994854081858364231281533665101852117760000584074434823175233991827682034350760635721555861710861791133454807316759911818221259404409504067228048647539115809426744034494362856641969409569125737087905641044323927399024988408777497093072804322151786815235993360643220983048785616429527455452090638181770851350951290726582262128382021984049440799269216580941837339363409574050093337096934725886872423459960567189355515621360616306226565462308121814082851354837078940637640631503050886644568108274460616465168602453662835008131247292624640921373185014893053816002519554495496943489856479059819290255199391585433495317106598415173923280913754252988937244144890861872445892718334539500104382385352567622739328306240864461219333837755453432272829409431178432448468123915122984441480025849878731968035112052489240673357061590205978743578250923361841209525011987797928901695743335267255201282804517215137997826006235896243379775647032481697573488886127283597991686396964203248054048115857300542021156280843787290768385540186551286561441809443339659003968500168087942059254953997628008918640455760277443825416449156240734384970051326634760439713116556199530746460474197935736761090196154893117616121178312488322076808096780315484423345097285552804930328881620586173494091453480155854079430032351254775175056792719357992507521045792018418970678579478581841303937393023836635700897226511359787260578475646656203311394082979986048916103973942688319885923646613144557893062381159229732795190683759997547569761427940681215407324049099912583293747961208047047552370791092394411842401591886503704354377497148587266355213057983442431354812426047739803279684088158936024498348227283993962446083608215624353986896814704300146374081226859789043487858015322274156574463791415683422147760156967639113303534123866361063539902648716232509150870099009521723161216477192701886364799254900025473912803885533707772986311346383806172940213492819824712202536186648098805076546054760703224954952741862992024006439482690506041105037021257318539776421236911311512942499914742524629143152944182606394850930023593076932648862842223915729435928791904193852075404798148073903139433150194432502421556566516342480791025022445184915341771465066462663287675454144512402037117563554998474093767132792103696815622217491043285578478499189575091599371683082229830653350751377484574908278333015663905148125790610177995123968747372711851656554890915724692248009507094746912035769644388993254858204659670323085601526016756210518766169594228844187682209247672829825455047041500515417751921267890123747544366166455498988889956957208945561812505014423465982102224529888802162852772292377405421209789595503366192271833133586648002256640319851582930956163962942050968566700529178504480092985024494897639783375761054715229069387744480847912059316302151024908331658601603819387933869428188157307895438755947278574086150035520320081663118434093386725024183930329866128246254347362944749457856598149323675881805791352208989867516762990156569591180859295061222771069226696255984147133876936174097270415210314557446027181225788361552130558025131760480122815674994805228129757833919654517304829920009681379457861471816813939451317058148864829130000010163664378180866177434109442586436495797637502379939241048317036153335007204846003186008885110858104080455405418333471406387581465470666873947019346799718909161653038908212400681067812143588947569340760253234776467896384751221913454544081733547082447272652843321077861667127159133361393252979661045981517982665722016653759276484271291171635337067407748263543248610383477617291726927150542668042743758478931967074323876517079968178231344804483475000141706860508676984673313967371097411435008966306144436161196246898321027528552097752932888965292937481404922263243870898960232542075589890775343304589163062656135654500078102029635514436529359166166500784077469873377640247537023271981333794322233154534943263784447480102120437703935644761113708935038357521503099044084769910922912711902835447176313074387303638833505689696496245614784872199808259837361254332759457693020108461254962415555881661089824984593105064734286944618084573560433208034058945519843066520777505441523221550372914530586436501759801075304054897225447229972549144420435180623344818729328309730277495775694792216525647337304783684268068891387326943848095654316335940749835882222098688077165998470725869820575481050421706471063114549697753648076498611423200435125705868682027499751017549716279180021749063507571469046622581835416071122699226946526751386366595423912196741452967438197739934924580978751765629690750106970181196658173295516319573693297562156871307211872080233741880318930386741753314609846706206544249459560199600183052682196025472485366393157286346856485199242982919801727975422275311916345228469985981636644864404542239573591123007693648558436589452403936785988746061004170870653685154084356126087424125485284332179059819090475640239480054135525130845453562750098817082138426020825072867581428475988649979500557147803921126082572434642923497890365186730569792185055456480556581822212176134500512225045857518544231323987138973674660540179403337793668444719540818500153886158565007010401605814927703127238412746767536563743378142158651794444771885036871021124584467835460312099794960412419331243833690300108556954680812082905512592587145180798744114631775323880806228666423441168712197640386646446083359820617049140441851012204216060444098029377306887954340019378227278424811568998268903504273117862093554399559851645672839446684874364479238821462544651889138546588176904612392140477742863136109728197030935226269570550252090491045259969909217651963193796670745563196750604363732861484814697521003042069408690696293487828431496652611298877297227622010078213715809729812706178333364554726992026160009552782237222469504122692351106412959477673823752242128455667424812195785906319040446456607438746401336276950237657867208657422145763837912329175628137665902336531071151756839604299581684445094386552753546359715253210906674206423264831777638577690607995058749747372861249486538796966621542898371369780441626024969394886368126851237420196660704509448154332940647076329437258725454576897719973203247987125344815238996175213364441279432935767829956773227020018672070024453320550788847056970137271631020900914740320396959161303130743837366743367776564613727220052263256363739432079977816865337172830243431351186619633893831293858632555121350476886992974179248429542718975212452356080133732327196752642452374233563950507678763608681523263216554554097463912950228854807750224264537569888604387575185859992259999410964600651723558744112468914886427364656119461047188603329531244559094639816170826606117983176332505194962210421134111548549621216846370844793103030844279922166250872025934717324352565014960272918100826589315481734702226077679601492867137088867922747485910915350609772694109298492981580778866278107831799549389885303250804929512082541979623049540946718767870274468725528398777763944253343648819368194527477727494961733073818481860973912232432189455957366306770503199717485902801637961523809106756863356451132809890601280638047793695841473711146770418894743255926874036800812965847334796899900703356207272848250512581072220926115335174207475155816871936985635490953076951902571052124121918650314277586206378919682774774076330228356906056463497240301728911361131001155075362229665900941672931719290876673479199722251400224244521045203733292305095808106398120263697292841486741904145595520030227246254914640707315422509844656252319671437899350083855221436806395352156274457605706815049620870273575742294016653382447937459306316892639002285829286256544931282762943071265403520406045860788832472510143990497718050522168589450774357143485772601743705690334122692945984269684449380652011273308887417102691409898187004164857016257919905544954446772688188346244158024847101832320191189684971045123831573750990112770752642431499745095724999164260338182748788372649758672299736389925524535953292889847680526808734538198892406936187910609051623830098119698694638199259020130686605158446872174688931231872711149637521344109798702960074983188619609908071538634019707706439764616081256209421792099329816254026458081373698860115384100347160522864551015672350421773887041422104186468971058535254910300959761919568560194095599285104481678143188599497838654464629646500387058598250502405450087394804278784101019425427443153210117844579334790405700587266759661445757313102563352029786041967474622547583957349425508563926448312939182354193396571401638552394158848788084424882184008648515170885262875906977817124848141816452015952914382400732269265427596547761648753414115231575079302720724256967826426736354507594890925530329563291495572681864791386617174730323492050246737673295996170692449939189966892703366737311571434857752894071231070525651240301017417664567500941184797674141082686948925920445776651638348783754463122827079861247510356277646773603042780813398410270956256027481689249272955215403324558614959394321642014327033907638353982662484881473719463332718002344042984489491404725702729670825392350046063443921401177676890789735219575614793328262392860695486960134816259550947130311082675245142677451714486975187441944833560476087207925213024783657805691038117483304324258401003963665900476699295202964020881905056937917296230560362886453286024473776958405592397161626290417627304103710697613482877583066598927706810599774372417853294399057128463459870938187068891689973402624446611056359743306827662256616113406549582232472645453711238570497964173304809005716460794753485595801929162825587730225007085835498790597473340625633933853007523915395047014861296397823693183649959850323356918211596552966135653336132025373786041128512763144068416805690202227471535609477035037378318191519006239855891721662887882621783642273404693461327821799875337934236850402439668170507472699235312544411298528410616031517423959337082888850581715922837205533682590808439057384130556561772439447544338610110145466025697866816628103340534818786683720524781192657073218062164037256895847263050041655809295726010829514055948422535265328107926749290548941223990966395624305214789131068611285473639981067101654052954073197052273566179159233816396071798621255912933748182662417047433732104983771482364371936920574904259104902498521193218353855588761366989608653846916287190815762105660410204449580405136241152830189793977444003315524438055323088866639334190101100574847438466276535136501543587231963698668386577751979419567248836766741507737308963394684934137568768094340813089838006660739810712264407258562513878467534651334182584454433694027314603359304032210926571346219882652570742303079905558192213783544289027562458258292121967529673225953998197986785873464900928510291160152973197369872678983495629118563264968604524567829503825619421454851768835156810386498295750247551320605058562870365475906957010678475424224217267394972266745942939669396676747219423646707801099138935018295907572784763091921567259045295712979947382147384851297708855457979384985332923952072978516380981557353353086577612247081231776726178753959179260864920441719851886865378223029718996854475225618247155595822670636003497536287266604748160334035189519178967322609188219554254725789778581767308951876019782225255023976907456522349415124632840927626353045276366462649248477939715703774547363688172441844784780300701293861336907423921998977343613448507000160447983497223125761115414236078512834582568922075245343791714287483111617885698803248798400691551911458614300759687642183261889502014524897507643822859333991298657379149525271698840464491622367783352232309458698766509224968035194472585232773852297303037638487951451475955894762866518210023778079867477724269229711568112110829611165580544307023000938881366672101402397395092597926077491882256243831600359008758561603981474678521210529607106817721136147260551246652549226827417085411757879929584406097154426538813198460340257474755156501414292362429046979790714512918533868990595378056070414866845196481306333380840215574604764260576684988117216894078839638323900626799002843910146990811166270815588373730904843331063630245562541045997193222246192942288551069982265773048005848819387780989666630668650556942602775636270403523912418316787929436369155074762853000821300085851600373985904353978330860304235224104967977056454039868973640963793396516445237610694591732076088914606071911628195668310338406663652777459321393285687819086851139258834895327995271570446277391220047417446242403206371284372317495556752022577034093882291629024789528788949539957596093804612185770711311585988375873254650033633478397096939054862399779403128288109783095059609596054481802251962777227800879193894743443316194005211082646185282103484773638122936098308284928074987835297092163512106425340772520481205345681926184586034425994811794684754042377704813821193862540015599006302977644887749449385785115418959803326581762837827224236894757432719455290423823508285060881911724424407068417798159874052974554202190108335214580563350350349976649281497769160853492541979637303020326795396320696985556890446207247121838935071748957522199656127598434537829699850370716150245830304866414662020707185742386535526874708774139438366058230924600325092707561239944889187713485417363784385797080945698706555104921951735436344504157322848342756228802037870298093084044138763315394578250315489889924785748784649421598470045926561869101721362337052196276380848429934564495224121398656308402578035503830686880492279587829478734006703454203105555512025083614554749288547123689639157514302784204754841652491452488570502245915709281154025073810932858693488143238973424067649240276370936447369176298044039882088291488265432543144719583526625925025636619663637833405529314940114949330248261071989492466172892275950220937624272822767845257527663123674348737601061768368854488624038505804642013954642907320904854379674481694262624605533723140838652362787453633864122223147463606874842472327091301602417056910026070942478521443617592950289612387037300392971234041423146429260902168729702214190894547585430678620494594679598304041942591216182215678586241975570757597205816959725040840304031311571744651414572962509851339693514808363351450289051645957199120380870027264394782371485948169584667341707378444813557900663925714803511305662913363014068782864219770808959315108342686596317691679301150365407711726457916170572602824215608261762543210381775706723060850217624928383631109860662987211543180672724420759049193496178177934863670438851149163048024836980096043579617029912568239219227269259396549533843584263517076990153699829657069826477674068156118328038781376136098296218621183295212217183397100492963410365697637343468166712618386346872068081152150229532326238979979452439797274217490003136450339854624845997042171610150680193062475584477267553868363821117884075340576634686064288301085921992413324600782802371668484575289757627832038657828267938224466320852538715070714772267434909743907348073782115185672426507352503731091951540027950520737800990216590291362488089084419547096077562038027358382337399191282557837251240165552495976522395010795461280772832745070576962122705100291672521270480575400114644457616618975151709032883009664495154529712878028048660158783750194299937540092818284249137713236103394825925897260514202346227725890878569474684643062490887440243176553017510662468465427443886564147892404534955167818721252801665605729211648891772225267475166867135295283095021823109337637230654455923069896828291655164151270333571071188372363543447686959234141237762702517417999886176312305554867411689515653927850009314408305959548280164169646586427303866124729586426982672578052234917108047836987038352230264678122123604456105829986234975719856651387104735813451497597203779073812648048652743902194103037552616287783074736631819627830684599391965479715563061429582156636291257601794823411170488783000228446111969918498973538049664573651524640618081137781979210744215978216119737178568986813021488003497473002614386949346629266638224796213286903634501762218402076625485543574130435161699188854759059082958874010036464244522644552131794697411070176248806939644792156962454796393745295029312585821306214523406636536944999163182486443911108857955008887625146848535883402532564704756851213785736095444557121758333821729500659502306095087748871003102853816505183737304221570858954266456408305919282949555493546119436035496995732681918025027936018057256688362291786029214662277860313482858879038933407819515719456730124852828987482006760732372030313424121187055682859621095029547811829499211267206387230490763226212648185225699807846169033287456837922375603716410758305136362201398254807108264119072010700671981996507430234176087470728068390112403641694327761188553860778176378398760219614060042085377447663443206345820068363556514420112173471833871850878864128050846075912830788810441365623147603398134039050241254579647468244766771297897593908580824236950828268238046346441523729012901014246049508683452048629250039001257215304900958852431985147805630987396606997791344435457216404952152597566255287876321551558378361472755397116728250862916135417935618426032323368486098387448179414362003282654458816637505790916748097833017356582565313840096392130264774799868214388709485232537536877244327933518676763859464084120662073515998747900515314152094195289163929761731789317828639320400496524851765715633543854445410665736441831558290287740691620051137628301483596416107242780366233129464893583121134455318960810145423180656106339614847134187029492004683213182750714048737934983118226742319652555929763806817413732324333044739557255177145005213764406822449847399827812073646309215400209521129438748821688237856928396199718678082768471989562559569753477702959658615615257513819676196869963557127296821619313772038906666083783498365951898801449171125936751864443047148151275193255937174480848977429370729950818641728120052083385834318554352126052388591790741756466452950225921291450257916377851353897685143533395506368164080527156437315118802225018765712829596134228958745581650724866113239582260834596561435630101339264734144627400312424566060554865344747652526555791061073205762991798758944297287906824831623475297465147668005549431160583312739372607826322381966709049822547415113892412747534066511593771208893305777819675928646035076894981268764012868849414133813618627984058193479847668951537336639540624140215550446145335943347098720755612594882219157457970343284074857442840538345747742505604471345746589921749272947287733380485222106242658949471124585076494059297015062987570823398323688809902436744845723140456607361616858644753992506293482026112087605426630928932212975090475532601184792398104759359104607546488937790007014660487871502086646711778665088949343741105502233221763390152346710712528821755243424620016619711052464640315081957507453943677962555717634093153677132617261342167134669762581346099815350872411023416147411726535128853535643496865494878222071111349112728303459058679749325640312998903879322920160186474572008995730976929827549325873564864289980067221221431697729817664656144374379427444177321211936263051533172183522763391515753085889500721231461350664147132220401551620944748752602941163450581621232705444839653060012681731952012993675257306591618858200025005280863336187519645041614780001845252106772458330633378465883452732721430225404603434148605402408483146502711645681905964413828029568506374863470089615590589938211389087491299734225906076899305319642638902172228104072257792164852415103850220827731683809174402091510068856907605863860045236775013281063931057259090470057196824973195891729399738718468351598394770759059157714455420144890650684531538380089940842869291557590330430286859161580654362184548024904350047167120678748492766454697812457179992732421121305676827022370896182152039626707265924854706374394390606133094735599891149084904485527366334684156276378324123881680921934215548518837734822814085220672104272015243107628422740947681413533973983165525409387163504511009906283090510111039208637219264797303787906558838484885095563111910222204788616945362333180373595414916065892163211798138906929218847805750724618870105375791141360484892504313458822372686398713052077037888535023577104816617801143497457542733622650552883928762683069076296325798341397432068250795992012648383821500352430066666214356222424884017459327955017613012244771098650565155747057843225708132292423409888766594031229230114025776288321934768708273674578148095579427147692093467871646290147412843969953556726802127237721182906918972475107885731548314613340972648857604875058792154495650415269082627864833765847938091835589985192118970252654196859237697649893826066429069731696227083427063383828370427529664058334855196753621101877830945845893795675765403119178746117807409845849341332403948445285688384105460064539083715497465752540560574913661600811489386822573366680451785831661403235745740597364170162864158025832592525185515883300433661338413633427402309151687181695768134522482347414579837502251182569471792164243125380199948103742445306254578767878529576416215770972296787062477698341000637948205761916108299849203354372714990868967993256431628778112659576494106833768689091415832763375058955076392768847240128581328199030921240438263051332688549195699454468306736211851169900541896843914039472380101554735872454521670056277000417429263383407085069143613177499698540464883913690681020554606414608149878615865017622879136614773500938133488832555069219768348868853914942875456908681623366883532527103379478751230837346714241688770900203346083120128187432709632797592639327437822665516309594474657862075168980002898795987948023739554821192344056444945125369456392810968304179721540863696872707901301863531507756009891590352557411881023744588894988230469970368275204512707722321378882932905950822838959003136705013611295597291964128946856431027562069117872249830511464322132011547093634959824750773009828550666421554041091855458404796496810400516021548590544441685327485487606232242706173084998262637665749756751354552609780259397827258315288354943861130036624785598445238181870183093422380971091644895597700695317736353593732650502200241383572927882955011952384623283549218554646326096749670055314906219217200574545575413042044608539304625241190818245016308343631167050508874464687217817613211730990748576279444112618186154815162391296111208311513450771530293636197638763237508783589180599228744150226309271742677324243531508914641566136475063346881727125627782234825021045680844611111328294809564848562037302207120975192719846920059130947291747345573267924452998532955424165376714400315811464055399409990339357259146347828772929385686794041255273352623880618147081762101865071864455685976939561421124834518272474590001189361189802302467949466760312715613338917691486123343732172834397751763207018059801608376532737279765054584136589871985398188272931360641294242722566988718209043846419450682612970069370605069215201695922386746138654187722541174552160760247160497037654212686364273569456767535682338402253324747705544347132483144644431992524832038223324871721226771616169797308513159124683498805563712462113302739396505716928037146279152030629726989578606049072670676845361045585613310604034463182631551604303273601576453586115761848083393838601883720353165824063371858616682108780324732090449439965567821537872880853562159301340276553366966793986122521623476268066953146774424478998264075964951588906508470556364415092132309029268286042002203238769028099860541610070409926456266649575036379717531328659437907481123666333700647816459129708705127898870479314946170091999963538782750507349974825347569096382591015292656152053139070509387326793020694642911542898900614469718657003004450605854492908600670704749136230967863431531651530172906333002829876933028294437094287597689764161478050085837410858427198271300711451512568276031922199941531866986700253634902297373408777770064602842980717108000588390243080006488583826723597299457718180416181708040279066713887025988935470673676375569246757370282411978083978921527591677544644846297613322508639672116243828909062320507149285267450504073647017024441203632853412925105760838944253560977860249655443781698793052093260424632448324460666023054609933336976830331760073314476454862393732352264533058616146476911157285808424209784450530426092054356503038730563339416741835905651793206345736310670232689237338205419788115238158860169109159947865992215443960136721263643509473701076596514290142971947474383656343140418694886697274285179946540360946662309466231362099339528093307397026097692632019713136200366795620336187924608112329910156957957891517993435868292734121026211990024538447115386934753427002303172201763601026024447822253002446752473799235972274565480268617538223967401953668630089125413148846194834026586423752822669623307099406973795481763634410919227924021838645634574371381179152640966178605652185885043388284658417003158472227926184130794436666086569141831873092068470881312333325251513862101862222432853225037766786399924275807402316771697786017465258382476744855700831004704604812266969642615141366948244180886804797268956387060733990992577560924447016920189230789650810421932804775949535058942246712948155061634604667245105837118477415905986845543271923403375802249391866834729146492313364952667352619790575729813325135391431216422690596357009366299882316507589864395202767947665877478896428054275785694950071574392367937201774550893326489361316089790024192931013417988170853817685973026642165947205087062069363689246724269279974175780785516855265212420224388281259667133556160632017913157799908092367784601259839674579723830454366499811672573486662598874442378086517201167374487037535243173235086435884370730539247495405255426015403874738579886099464943053556344751582100781310704884750673581825253424391750585707227067306383485665105240503487905545651497864672480805043545361790073531922793420381508528754149567933629403452231015974637031696731387613332380922116648012140908899274061060909467822396759352621663938085941353342461057825587742586713149592248273256635520933967184474591538620350193291923142450980050987000984150010479182743397035976078922487760317225684398747627927807744934370437790585115636949083155872894267900937476016942217021269988549015829565592166230283306965801636850975243409405934378967468577802389898238373572971554159510402821352660819622036994451129340777595299069405409225432172683648438270284563627428054425077705260987052303712112806199375852013243238034729247630172506975951611703190308584210554253920627546012885992812455462546030097957650538326594471082688426778621070586255058131325191491707974338770512529578082234162515266787119409822678335298848793702318242987177854325697798508925545474592025880766989945187007882009460625971394545344374576611544262175537469845700709326991633557243709085535257258646738821376225475664466331770559416453933067263171962508300638575558272879599568637119142752207466077677391322146616489417536765830731199518439443257091403000519747160358482667573045827997239279167128310408602423153002696162770218251985844204188538429784399450912510656282027033647546329042421361504830521035685476402902537031856617065936314110201322407514298286733890589645546254256496888993315189158691927068534000882584331363756828036919061113437905702404944062377241400528421756357197668941421966897779959333234013580788474771354885728519722095617673917924374141112706044590895339847978025898616591012342683455576830561290858333778193208139008376479278823918268007397295954620369822436667760337055733596471319213945118478371715675302370700778909423618435973878117476338316648691013785278098998541766397948107060663720521490018004389899778890728623051386102823797858446828859665900085251641338516407562368896753396271349994547447961206557722515280645130283922349567283175387483913466492447874601114487567477404157061579403763471271740458907530643009603567929546842914683385785584271797596812534950567486845714292402006586322728202738416323582997855203701998232588444690212341065470677065386366226639976839039409850391043201102858617716388068740859072902157658992900689510466771177115580664604627268634964466940588621808507182562271734600276110705035040405742733752490820671042862646060035467828240156944771923000942284756657791688001880656817406374570243983420191052020644770068067126147172556172639987119643902880182512199299073849109676805902011903179655855534983779965275624586148763052134752479097834191841178907882524615180214244629265276986141633404076042613668529765435280932591268367661567787575107066570076567101000916139341149760413604393249373742751369409341409073808778809251667054012049977905995224291954411606356148339455775755952179957730427937126328780850110111568069746644821222694316144720896063622399101119997586312739744416281778536470952353409489598266920003120438857000264602738734331797034422506945415210355693744621985006901020510700363256899397163021509903035359289414927648311131495821374688329950521697680182904625668405922266109805283720494584067341203967803258675714927618733702851023394664291204094735751849321471750048576226321923719187851370124911826486357112674501283301437338082087987443132379428026990822734638315561602658295828148233464854613733303267644436868221084662242195311686484687057290745751519144478675035349263087047432418718391632696138768695593983816912786716085491642611138989329469506139749419728142826102762565848588275595141824342507132561546073088927926775345957298239891429308465050888728393862162395542987047398734073822789013898596302418769775691599458550328732388261499859109736910311472926801136528631747809352055813628290187793015401984585413788178721011938095156212867372618975677941213849155612154534630778685915073366382335048792441094475494992256270461154789647904360730415826624588909686840951902013531583457019726391876516222669283789192598524936107284826812940004081319376235829762036180056936291544851359744619255001519942233973952311618773703386230113326331898269744758675286574130882258704648057195912794570527238950067448302173625932481715841679663560064232290718434788003194274163060965323117164560476791603619288546575032922149783821741105386854948109040140064084706343842293863826399086555485417737608362927283303427036371806254377417252505085488786609296800701801118411331641967610038785190073997662711050539006265472319242536233570388456249995959305857317036250449446544992760439836343480208557580491886175239081934955216310268193373163373611410893180579681631729056409823281118433613219926917252007268455703924979552567400070614965507029866962565144977826727571791022563354418283569090676448316145688825305162276510151683663286641624498847736824066054414229553876028148948282201325983122370744959575051411239922958373416716021536667787847778795992194384315334389802563113832423402218703111658227286071869439603990468376815820752874206300026270402227769168216567497978150348415075067546351796918352227840019210488806710973416965281497603371368190959547503704671609902114180806255865976277338657726637527632753302868786922453286111928399760189662203593630471861549435142374743887257161385594620727500628240767289253003635131792106550343600015615926296688319521837417177740288577963097440800193573240401245099689150115722443179075407323209170685136234177637552757137168702353289283644566426454974891305208088592076099455552098530096930016992151704562683980636378329782503023106779465348735230235100856274853540255549365092863979117450210109998052511640344359701454571048286798075008107940299331269255727790992657844885882665936512110000159916402742694548106458373556559223753428871166126701329731586184250621289413128900252666407129112311876105830262722552726289570652920303425278094869643577762360144515082449480284736268183735744849726714677239576832080689204294121420012029286563648550521481469859254960225185741541026776376036844452741570266650899351373865963194308871604569396553458423100859368327793370083177253028295342064416399782584209064054655332399848751678476474383503963683736446858339069618494167954916377990244932299965066569764838921752608669259789482448682489334925590853416070703052077855308343704948613982895539717183845422411860345568795265048716138607737158057351821782885202526501458298134964822985378278252306320381671536506214476525333178303566840734433320385604833026671549379972939518179664752688296373373175267690713996129370595199468394762147059871905931242660061122078722677014995687294163804945457319500488186505768935208973223447910572516694548183466606732450561808473792682891857525597185754032650176013272480203749901708960310144697932645290415200429707763680789499524761271649451657460514548861697849417605750878801716331055383736397274689295495040962590246560411675296803686055311992296474471458442049272411235088414116998469737939298443799497018670461747954404280558327361542595353104532054769692449661885980953536249299538078426931236130495145885845937832700823600987391322515726886412356350980792619896987138086137004224020536461690196922931253983631401387623413502542384240723501697663530471720163791588628624197703066036418745989841827552515118194365678196443783351063211312808501948616044967500056345199939866881407020644958568624759582821091653998679254918690207418699778558842891073852487367181831847038290962593731698152107622813946583245326333920879583416610020922881697400887570868568549415999501902920300506061073282866494481898740312477598606726042320980938327079926582343591233108178104807364398650306307237170833163955294505256752150770555079268263669776440491399024804023488008622615445049340728443383717519370880079673437509135490520603146760963767060967964366302959538286432361451661743040844610486014245010898689002278311111678863267496910505714031843779798873187681879674620228594095156403087754861095424353801566597852887277942250260453873534098388280059874479857568513366949572883364039159181663411213844059634647690325374492089044115870898960092372560598391810282101443445294776406912765862194049034723385357710991309235950213989463872237006249438734879436098974164843116989693915144764196616247016360593788239640252530798196054095016160030171223755165833238603827925260083228390208225159180000137420465786942009821527158643153864059980610173560970599359238405861508460501816846846493771358106537849373612221142657944808337735938522485616070356460332344898925642888396333216767842970326189263750729234274496925950053973941625308643545215124342058818950786544103966684098369900316916678303317160928056538064779876113231263134779688129721823115871585632721236575703811549023967271202947980866452491179171807219939895338966474267408651686542452518787960047620339505296841073764182420068476765379615881025635102668885611170516923542567190363841586171207293511779677109763195747651171936710024228176076750941096068552043263518129313784594932228805313543615117235067227700635390229227574673623761470767870267662763840945990809738931230774222761309399610715014497488463865226362894284476308217362519314092385188832787277682242340244364219310424627141937036259600901593304653108368201295965603612117154169552457410947291907619511264207711774822971600732129629753072943819770133639924804961599522139503568178479975383271030639612547937422180523096459345982909493269373009602655305653757578275833643800418941175454351641382158057138785138575164311064195883213646156488404777103017727116221316513789305247667370162565646337037827727371346181572153553852287504634058972739736044982590174381286182453093792554591701036708838044582445972241687692747364454987429835228335219388691288598886135746538903998851989678294799714873472335463769792894756758332072680870702574354211822044844416493753415881378155742206183066495345911732645859999455574588398325689993215205800836636865511648195997719850700379353764768665668875570256166021135725687062057567388767467798480012876999570085578316332951415948240763944627278876182782949905481040992455143623090217747729749665818986176929490493187575771378073636965287496716903690200722184900291532763187776934379261759507155031100062621755755643244919563094347310823257722839433541092037362694312788376670177623706153359135586651654209771831182666679951736719073471359874582624558500140067872788282860925789388319796051190534037757062490656030636820425845733465622459288720124982036033751677745636002394972920777770454134541594816742458969722050010348704530011314130250401819694401580778731224886776442283450836030631059329783445763319900838566769001479540418844558791349747624969921435951704279577792184481006388429264748734245479503583623848110330496737580409099178526856315093097603315429204215322460849793450042738880240292794841973087214462063660303691824572696720330913082237950537391226837337690091241678262997436779795198276606020639467610887988127758944102922196499180438333350413989137526871246581344414830784698031610250176761777432327579814144161915734905824207341892141735112045886673054930680446297496097686123699301423670983030568117998936978872352488473227011500291731668601720829541992108758010152160278472664475750146168224434988719476428834092929285690702081325921176995339841330785498895824560044242522857082907239002411233761017342932705750165911601137077812861912134926786221594742371861638765967643745595728426975741708826594397528576161258893071969970369759853289354899548113215290843724555478736513267141123058666676561640682589438364075326833264369382100369859765169551831230706478472851429363074627923887182443698570067069790150808304622593250643864530878214104564406720559348114977654764680206427554521378915690508507901751243403312915508685712311740435371958617474806345968513550392115960436259666893426138670924560243213060120895549609890154804881325634145098924643724173225084437330820199606607216701894690073414789684364275160247172443996684490472959474432104059818082052295437925870998560877329345756457340198942441362296840926315318078817460792331289886124015668177144533874414455491887681689886562638678346881577203762807402598582425990487357258715673301626799806508178854814261207187907986559687580163909751394201496113370886653173268458616900751355044707881829027196542198865831074795082892183806646023726670957559330989367860121913502027283160893840812537817526123269737093952746747874156063687520728858779795235356171969659550879368547717624348738182355153988679750764098375649551977765944536332017626583237804594578043488209670485444820256590400162216632345284735685189333156818125495826785608873735654238223387561490014129497174774546647917153020732601859560218040064814999185848411177076506373025998402943010003087096735039293215536842435147076949533348798885347062045232933170552122896370441841982692211058613139742344786964694956874904972549877557353280481724523855034368303185173304748023224448789915810387923837206176569631857277499568487358115438226469230500086143623968931734626235327204376037823887279037858804044538534517868529047922299009154340620247641759468787735958977737840319459741567000717699395620234253886591305367393493064970805037650336310172639053415619685520007554544551103159416274894434666491304932367690852215920416665382460015120150276899207293852471443317510039715309884465631694557458201607378534063268068650243074836547467560120178646985699030412245909047713850370666777701531076000034266676231364626375614077475686329294031756021053560354343044384978168171804839943911610275337991417521126517670238219844294269852819495111033407795085263590584047410885497131832314886839665157212589986746729723884782184151582228976108495517072890554226337783286497067559367416380464482081040128390547322090208948773194874549039812875177808533483999664354546308324425638477397516202894620307392091710819037399332189290089264284029746001050033811139287012813788248657209839722356679464843261582486884324318413392402133440477504376559828407175715137445007113532254478060144161353793938734688122871486172102368158701287775605061302087084229219712359632588662377514602623335998692187129475214782116294953021190840274482297751138375878678595678562886985992760661647719173773708797398782403287097314955870325349426483870045357150924513751946823988727809502243007916947040181066504335632735566759940631057392657307296547316421196130940670155500817064261759813779443478107353961288395379169883800730579184922045919849301117606158312265079325202040797969363906596572496775708837698641456837699732517279270578205060503241052786919365552475172944119391529691647967185261831268539038003450331166183171072505453976326999464054921094437215835586104155896571518488302846735973028235355323792984280378362772915322182800029349638609903471860322614761303611746244518604115222902297235475755762864956208881653852530901513670488098177312751019312563876071270390090159799062735517641789831176099442435014755514587727479017780175449676605057692639758396287026932003575432739619660593370971174379537332850952788568195410973252551590019266840816050473162427114804746333322636348773832935412805524981528468790392377435718467733536030024297601679295140034868452460983077338944687595292886618936416879392649773931263330201827416799719232680025457621424436990799973601680469529981375441690317682457312932654741450647969082590931191563230190613622174625277126741189853790754409516752154251257250740494947124162807977829342594918735622483441829835145589781168472915619390364312916522561728528101998004438454875463679515368372763923783640304144002559142041088213105405466535721722200772188195112316374449383318982833559954344767827516622382657359872404773733405101041454719070438862855445493361917677821893992524812092540369395947970934699462901242102720969845760290873801340930025960021643839265313239288464530713295382772419909918869236374239660736852235460784354256220847608235736941491666897202363526915587473792832630123961146763357226587630003961902844255182907302852434490347976301536622204900868210142483624821757302546521308636147299649977351609248655574640338916680182246462626911803832304375841068897688472803887756330421675132795671600001032091115394412814989816346726655591559278564933525362590694911798182482569344535269189076424402397474626188794356426303913999014102080242200468865723109502005460393784914270523162713437217052797738097662627775450234475773604771065775591224824383241183690766097499174202196625653875676911945076264485598437748529971178366988446174919379817023798876730135497197961192881531601921840206197085041887873493851909619397146661917959436463574750241132429101907817949465565943504297066754204718512924014747509057426772923205312632103529631904808265642921789414722487324182673316418086940029621715943371243192664544972581915601873568227839603704562386932244710928391293536461021641758334912061373714424807364702792423534384491687345738584740673762548604837470793764118031182595064230830505206488106044569897755623603384964553875859428044548127012692819533179386865172466562372965212784136162114984173311890492961435212718845179460137879813952308962036422967951353784575328098584485669091147525330252313577791310446355836678294130407508367487920399902003295381089639660691906984700765992162394880302807104382807070391010822889144169395867961724166513364701723300747250259135046994356204661527638379046954706220179463529961860666664099184700038907463120408243715940765076497027131578163845887170235933639124597676242987173326253357635094728221007956461618489294257350788187220043673357137482920414613112367080506227138401551865598458477906606293159546537333871035063725964651528686568833946177115982523757963605295266276084766002200721010413982581836177007957574797712215547522122449555269714985338093815959348453481291994410819771728869100984241254548136634291189993528447986263250267523214675016338691277463810994870888623381908052596911063948138718149007720574540163379535192738591871687277344498621369940301195571341251655324020718139390582840957423399581943883996112274163462224819704051105880562590468154308150104302111126554997204568283218211103358539618359562655770096781492730633825829814865771388430728468442403196306115657106185882347179427138075817765200418521015715370227072739571099325938811389212343819842181644631790795693569388899374512255126385205138527507263205600032407826431064399155130183709722564010753928480700659279261683931334598863398065940255622765261346083073388505162788340131409952308747474097373172019524985672365206189998944441944918784789783976510929710049085941437046813059386893766591045658375262562100661946015837908111321872799359995197424626402509768548757300467072818427589739550646914883972366426090161842854636026384575290961798992752815766625937703906180602610725771821255383605452826155419264551472904764683514333159318745380562035539039423839833198458623248091366745648166981482551406164384442159144478752557725532292256239395182451711897122551294657168510292961006670270520705141550732139570850573075090634313837725416954489872590677540649142031840276321397179350952019795209061462309958920379883576438284013086262028906268749990431538066262859964332973796909348568687443774119792009914133193248025194116251924658175756895763572042183481736693689270616881829983426029196170083540005403521863493261852642414583706196555897133660059128477589709240108879176283121917390256103350151282150454477787719176084051804050053046358926664708451906992428879038907101500353138069515055449092619277322059972501029453683197247242516191439057564839945763885292973670241264345295466752272234266050194679925742844685982898201002149468170758282395229410633805150082646718671589153464305065602678477701271406621152550867806038404384963976261646575889144295828789163675610268762509303854508706408476009388446070289500180245403742365287912186275950716142296738648462449651558408153160569906012412325450741811060557738487673322323741301691158687416470295540738159729812403379984358049356244442710233556142245076911891283952679403465658213881139715443356787550768097086476970408873293746508181846166848384480723179688089643394535558524944618845320478646699907732070582020706681005886251048602804537828537705545886857276338548415491452200904895772752031324328177152540180721606942799043931605913224359648229687811557892205149325301075206660634620120694011394738274789645614230149766238130976465218607483923250835710607299606269878040048276062185256990019044612333741000494688248860310984883002739531985544943872560210383375870567381560124317463513127403714036505697213762315563595004808596436942411950106536226518453992437815966573879512557488726571348804981024333035626823616270737704669158726139188122513216616421214689546711283305796601235063540672139397823197529350659854805014505611861850240763041343838171282293206160306482589685957281991626985421204586270737436656220404029450666217584253493269052996183074964527659028956925659954880866858321295570567581853110695610685679974308787406934025605041100541665545782742171877108835624959473071973867602350401078566888781416487101640595781735303941007182529331446591646990229053713903129458623585643996375891784405245547277586539808883752451728783095613453179777448792793170671882903866343387730715366923204914344839512256503491964216955760237072098579972185094934731644096263188107111242140833188237998208348589543693569895022330976519217472990543174985879942232762136123549108964878638470515799854732234023243476275622141009100553797652539748785686354060183078118068998270524757174413802058848737183911643854851583882568325330394390570554735852708593793077780218131543195757883360400582128668704551946686493722101682822803536748809151247034045370216034295952594426668484364152714676023274448283689576635750497540577149591902817592220171471846706872660498715113926280886350936883070937341348152199264318415544100462453674863841343595701450678125716236639395907203006271663470119475004297135480121805485049990144864570826207731530611310169658378543982372316711417238896112051709286346754896354696153442066448377304337275165533389368066025258702738901981228875675520516993798527200473659978739596083091156246458149574416012416207287676235642414336228552700600963356019065471662813375267069523926984531052875895656175605889279489490872082756179558327758599052123639817801150817218073640140972663581430188464006614327304760860599327794888435180702818936992556888875105707758351358959889858143375539296343103392634898146629942429937649794103592894007551219678777850943453771563036543570236972747430011781825718338486209065571029643624085638137607776513906834776685248202531450351431182146967476942575379685473212600636529231471177801637533951678604320083704816203246191780498080358419668638709864602284900103321455108851663194392981315227783394376303120962480581046025596862026200751554469143678052197248805208163205897640951883293574055819862404825117504726629146408892755748626020402493738644963005152587666767897942346719919126912197340653951082108060754731113077914274754000730928006870392885240304798560228040995246232132724759870328673323269364784641632662181640229192126989314083178838346586859748203616773009506186721767697160474323749516521868529589060042094704389303778399351397268013823771598406840284434233473066724311662856555659346651328666316838433518566911819878817834328248180535813313738444974568545932200473749929643743354322761220690633390599966148586031104769146376561937786723235591204355751163215986023788032431908870787111974878823498351317944296446074874087177937799986745324389307787762444219777571801076297502027338876046766193442687496815018324316259191149198331722907173838907982050441186412440861689946252277489025344713031282661034765843965278612260618542361294964440912978165758658187946483687180509539661328412686220604570848499889527044725437020334814718619214141895855510557274072896748410853087633048613343906433847907365223106921931163906725779635256769467395858336748700931959595092322900888105521509329274786339237220458885411569854206886011334577951124716267382452592039705981717998213989782268591093438719293042209008917986326841314889434265030079211264618672589514491742545668797983242790261080403181993687138092192958361679282258566439637796379610657717366395082462223265015605193018555496791563055132437213999193805587970914014685161669313336160223408167196319339865462032978909676957080510856107004748580418591856332149042953217305976061975698692636672680458726712216960198506671709332567616131401294295054096195519640579321358084063335584716610157420386969987263464247548453906638697079995894367820129729865775723546831275071946966710217201404126262552467154741355761798149233934507640980500968683514801901236040889669446829230908175326772759935557657072112576458223414958724771787019612797053841246921239649721142870090804942955300260462552643329378195178314623061360573716280070448042451913574709309847959731804872905265122800110232639670176874725423782546350452726403479981033747233732111804107019550625551036518252121562284219598626904562864956270016671305088887412990153508548465835203270278941883577056191099367220907484100128134743693097387144466418350533586384931222162140102897848439718573167089289909150333520790433504754890060820026317791073772888720907577224015815039739148498418702464758072927003956085886497846329686671619022581113412850897006553457465105495982820535693806946975328577710470719121226571227930338966365674395864899207369549083722325613601817469443395475615881413752423961537717943972956153649922026475038969277599063905300306486645867976820209869805619482885835122310322921286883203607469618914739173298124428271953947813588721101225304838426431604495256727996726133984686540935233016406949940772197382766004562823142951733125691547114002340762421988810561640868489381834059385237224622943633849111007851334043155742166083336490230396647727155477111546949835250992747241675166255970249442909007242892747241858228942161068240238177290627097388919720033663763726905120516272867363059489174634860663090148362268824882494066624348371372418774235477461383440076618678076314592162802855553592799690034191246519387569138746171141667038271196384956446049222134301492839305547075360618252899984844983614426829498447763759236028156682417611260686985381966112086751528240361306952214036674864890976552409961739339192639794951462059837657652402237874439520243882060675521485511815419666603505586724477722668156038041667352426375658342204955171865215071642930914330658476560439572158421088546846311643947055115124229681273074349553831610532251857194466447826434547971625446143470290845507090575378181283862258047295534479045376818378140979478003981829215534345807041407754006171090137897901729723733902521993302709753759980713242394350254338448228020739926071234519833058097030174165199519130536990259727936106593312870558460890385504915612866420372915122700609626232577091103937822240095899204947250225810326446410001677385903894497124447855354587066378187393217954067045297925167502405913964351712822090604241381723314703998334572268835014201709383929948990381936122327161682526058793105893863660579107134422501747635842938756792281725505875358786461303115962380311259156133741429575990085456434831570124847997557047199721497339252276169479159320049102072866892826154894539877016752306890948707291192905356513257021901201182852613906125404022386560343940789692886211864525619387520577041909852713560367755738025224430621426124455468102856081348055860589436882456161514407072116564649637025522666729726068232764602273315985497885015214231756353446557336599693534252165936928239176810600356647452768273650015927702010524064846844164159186368693575042722492591001337578108538074775741417485165452884508530027951681833557690759169681328987889887150350168498013880585866912459827424671114658953850545323745130020456421275927383784029767569028687801416537190866397093691797135748470786974456018020686476435948637526278789519022215550315673695106130619249876122810287585616598147732113935648099059622469711618749358559497263029718023596395507539954747202667136497510509744146531205583936352178893401888076799816731297233567007927477579117077941366550983986169847654506552767208192715492405356335254244407337015776158947604679292857787853296403396650061949779145687058406208991301335625677991407391866351537661623338332747942726080717863942977959049017333376653980881687941538790895420480349850108363229089080036257603049482522772450166867999065083817729575029752262385635465517326010374669186198679378577815382448773114611295009625679686512874537711847355041443145158599542340547024084047399305296895535329438359392614877997842712564743309809278022763784851265625497313699578001927695369360715028992201186371833554367867217724715126177616833576071743792439904090214453285710744529395889811061882162329971536575365405847361067188795601965843304974002007202457632733891915129213776654671267944020722822770488704810554227940821359223000319612897342113030500244834766358996251375996608786966602729685120641447166344689919398437907611026955915023130593758918732346972799157415802563284884696422163929585287150302354567558697371525786813640193237748439664770007398373288383677082507955361876366897023964940226530035987791894460847418481291794240516432363739168640751092484041207762782252554170756830397079540269747815029456103736159809219834031356520368925988435460193577948817239123480090022967828947941280858683930127076155939211325377878416197290646249585841014010441711538571117256490743086405386151218715642070119406252224711112717295165793137489608324662775319823434492311475157693813819647030708574896988196374601453034194672138820632500295384792146856860667219883243543766949687922267284411905517258100311222460170515863811685186337251933494993042527601180666035198884595288296257293333842737467176314747837740668844539018338580446320378985684720170268723866477304187041746104944231122852449877689787625035773192601117090457563666275927162466763339924034628150440088544385643430218512997143998283115257951672655639035999606992097568130199995392197664115005892215955442885160491482719652870114792635965829249463655454520465035219218353296310420255669782120172102743390979952507523279430226070807446365979566756099734091592938695741691145630799965565569652362346161769808722026198526428674447774768623271656277521125356825850652214565104076067220151187699963557355657527583726195646066880491234743924733267907294891646593502812124188786849376067116946983029630399169876995351104849476373256872959698213835517862151823691981505357593844927271246214124586808523515844226752685441046799630238416523180519382974895492166848666699126555027804267118025182705972929575886026233547147433504817240611058833106888753614058845499918968458404605916927149418202924708356352821173387200624864779724487868560375845338390402680017270139896762874567643012328062512934330591059025055829509384087438209932723506222842782226442919977123242663877286491992292607052029924527154540093114630362503789780680728680659821769445307120082227904629210779333666092638190691287406445949074522663627883904342917011942190797593498273775794507701212624742390230660487827184667789536527025808171631302111625824512267758575791735643168402917694363993684884045582778780634973445621519520499482269240287105373087667603726771080426191465763702237255636107609349688710056498539157873297410967817763281724599510416894392715892496517927560171794503855144091936616146932079043990125786064229378626758936142096023923419931270758222188637430597050206085388294615051839841661859314157889845959321861550552936944778523189475523182891780229488484890510388772789802228828468907160714064712192807053507583913081230298204214818989291954738480914407969147967986732222819404341982971966916435379196075535249837883414183830087943628090817948777466976537688655969766333050599674216852439016399666321748693738506948792624118965251562637240113372504556218462734286793038820412619223999053674195755353417196330068597698951480036334881979126822070835717029505700444792185609843474812840033343557695036896943649880405269938664599570253106476583697897692688983883863739075473291135799567195850624018358649962666729657665176691507503814177409046595336408115408317759784456408122242926376692946276840452867824784124151510467141375946950681124013033220959264360914615061530713841894955915255313719222681612086779810885421628873800084237686157231547445398586598368638021570009152511007411137879763254256831315628324906028474189664678617838300659761109454117585905258046006954721036833292674191863329702923379486940035120319714975520149804069725108445383349472474808212843980996182101907412606919994793952757220802612768829786102769435447618955349948247200525319305910474862088402869550377542044082742367242173741590298976290885994239139686626931931394289911416920824928405057830771404525143014620919974562943757667895496901641244938687783702747198737423882132345992278890522198054410237005103256314323038707368041633317438788532075883279228088744771363802307817331605197522948553886401213465432856425925247511294861538741894735720057797801080604921335883949984429112637781901996584207648973117403168518135097833780556373309713294376796248371580323696234628736798219910617572567630964844318281437612820084041676889417962826900994433237220065647666439908703585146830852098794447718167405132008557706328169082065917382599139683258603685574047905927332963230846900809434388079581771780014524477362245697413105054107270092350344038596231462426057356085758316863799937449493493280763246680878570286427400768989548101208609868316219517562714986497795035060365828890921871781820985687605743089100318959586613820234439388284171814301265266848180919528687765525220722038687224537577603741589562773655748355107472896701886837566629315602283787786024077447039975361250957328503139418426633620679350953804298601119389346038771682985967211208590439874139547627510536188722644545874076568503487339602526244092421240821928322154527917356694146829251931229294834707850752155026787980221542158839950056327586085080958347874605730254469039479095205824355887873759816620853096400991407666684775905026593080302738300379381310393270603513953363964340256269263770233569248722954843578367789381723557536527009947842380685932342488366293100935668794990573502460892395817629258213317916746906906274005610948087982404443065059495731127940059260725779306943862557515877162646398407644677995650963453391022375448542240604883281068052847857733681537060992261381891479952872756687178053253831513515934816415769129635961237306933385679700185286728759762072754903706911171218952948660264276616264488744649403727775309571703280606002674516347940383705654304518060740042420207311036120610978373276814198709094812883693724138088680346719983232493095807113721422247306678005001905681248016313071106778608338675169561327056484393608809442972378665246659045640135656614376724501595480092617783918672839871061554515938767243652445609264827586060118311740628371934726628771656099336920946298711511277174648442055992001551283189484783297219501067743895736671031269733092736398089004667370167477008255429057945502980747717476088690807726506471401689611524267851218729762114097881530833058403787998447912716477960070153911412479199183314313776731882046944587417859366583701708209610773707269087839490139608127663311101929364683463639116451070805682774172101824762364236734000716659876845719819222328118171575411521768678880692762896677822964173450947054340746828827239426938150072465480774242910206477696166637428989697434419805646220328148927672459495077456401432237106842702520993859369466230489294477663534073055088909842429441342680487186363804058335229748087999931757340629949664864997066049261758188980118964254419556374906122948820728167443704841792184701608619781390125591516207609597380890856833434633259035057321673691799508028800493215660974608067553805773033827607370365169678652591535441022577303736213338505092468461009656233478521452557869648516925844597032366862976906643158419442836427502800346444149736997729565954875203297718847286034781529733068881773282804208173246621461521787325742281179316122737310225446421968001738431748980154211278223552364883011599432879094665332284268216569876430505089289200218782501793652916122491448738542847033469309242558775608029724222759929519202372578865003057530747538233246909785584516876210715223300475186418633460422096683885526173629796101547007251085976067890883854861143658844152687870421816624696221679554226876916237976749152521672747822452750496494758354983815470558099594639009020700097515076589801670236559349257669188540188330705104806381941859209907130669112798112252125620601656225183828207213784154005513921193186673621355827516572593700382001619246973652560964289543951044040245093179411587255720327756710749675802091435951741229711800038815470916556114885275472195091627057732781693150630316259694642047939811178559358344431083590097004101584082785327728302894850368621365992768760078114148507462063263329695846287937952523558183939992560788176499613931297008824683377004804843445853622007014469680718579343304671379074811241964273452753754630844418601866754492980418070379335909305600156714835179565159678947039538648887412910834628494892270610158677221953269665520690951528561227878710970934674440992401083015754218617752966584727756964523860402731858806365901376415874674000933603391212809429897381421087224206407862916135659765103545967037954708223240201598079919119759839517302087581404066286062646762956183431026182936320909131609123331555975265193888497014272374484297032569083931770121610114495245098201241033841025824148520743162569737947146476005839418163961846819705145338232825063714674223571201540510798183810621528063880989179399814579326764116512670958844842907940235632291191550734037447853250100502784153600148686623132796518285315368730673331578895365115118644361623887541427473879773833293402242454879538981977054774609468063775151019885672966404607923064940750879529345475662660532682127262907550017615319334237590640800800735157947365640921192988867144864299211658886773378640222611697829478084416193124372742334526821060566750444274444633958114184860394912735390940196064170197622322771434340015374941598587532305744965136952777549651112996675214773233056275334261847934191513733640619517806959406418983726352215393771550095260933310071506830242648909861408328414935554990342951180473319000923895324968435298943446067423970710779336381853352603219492026496417861230460407301813928412300581817519034329302745997161710919937432895282904639060296782804590025210241922049979356940993126250896684886326821972381463358888335755709158585851012670228460638864422449865514566143140193711384618326536436903495383885891352368865824349211095181210403706547934848191486683300091057571328971171953994480450862922258950166858666694703190128484170615721769820891229682535132769004616477821065108867976265777409090549842351548189376696272101130227078926940523134676350594495580658729260645347963534684098652527178660566359195185784599483560275222177048322144582207154565674215719951889855878724879848287609702811272560631546884185373310256082287235226522571316472823278223464851452133364621548347871949551443499351860674024576946592216667771546350415098257858869533897631773346028169565189692391779854075826195822565054997617012015780146710479407238789386497978083588599043233673012552062685565691018377262532642982284845958961809638148073520082678700437946684444849001379062581057990044149780492860834265388376930172030352160484223091698988144853605175819440002376387443163447011625345506555431077203515972997324789364088636954277679948484945434334227329398180078289119795010247278046643425254460805641514336902922689238857133583449756262424264361891281614621512834232013133027747840993898356020001024889297022035705056659146451427742041590091376681475465715180246300090814239582151915444030395841315105036337319353414401778505502793541049158230727451094172055712519061147319351665612807411797135640459553063520852921680225654327968743281988803002304470624637532776737304239892603689887051781820464313201601453780835254858440631679988598332693012957368689583798290312012913927503859770079926656362963470054708053512661844656609028583832963276444173549015246632513597529222416982365723500571419461981712115025138698374842558278126844543531644723227940046987881543526939229647345513447886395782561707803650166146135553915841256603329030595592082526884545459027844214193639191218788886824853805471513793605546216271898932789909453711089991084216328525700976712361091809545246653620340165567729901800078500147594841839864708971534727223983583437063063292628064074089392824318021217708689467291416986934527343272727614131306137828706549393488215602923462308635414487095997755415627162755143833398239829295738076177637170907587333868168532607360076723777299760174216147285982324441490877993981278442101168204520935007972832275967770928688424742803300029863138074612921828764391066572186527036319166736245445701087934276586786112109442674883976774765789984663310065081990423741682665773511081428832726598670279981717344671049494112263228687788937091829420704266749302921813272603519929467498901239725603514354901271155522862121486150932160650944182054039128223917716314620085148980710731534634596221260262169621896019651928625536942535974438270307334919719570602068662219116945518347510877695239146897754634699225581471968291496254993357247984391779723327587976949605036457978629869713819102825494794961842292077333467726512151867264170964621802980860949909062909851919432480583711662755399873475341944199843321068870458865501456062649595366984600523136791105636048552996161159430588859978685631233395518277215263553947087873044060886750572771081729242536727378750471420989769521153696083160633806881010772840042643389131351523142239528145885679021522998445015068994521183870726023734710111421856319609364231249191606644052296612861102463112690718607658949963534747174733827053472476850653710317185774591543768514879263784053851826783132744956520323959456943023924335738433822567408232127385669628309645728668400524280650607490008512503335083928527390857518154055740283007233915233299826824767565330560910080746905917506317019191340358290666880525063087324375507468076842996880311347613079077123722306845728898248972324209127282705629569725548134284963870667926133158604706048651069062733765737287469395745799380993455715615800074719132815303673979196852531277902722214332018655454265503121912265118709532201141117566565336216318050599828268392530905874195126736009233682080223155510610154989989432303888198077968988885558373181925775891144620203877387878027547322525487560973935442225411728865285086568211966963726680984093284491594957418702723747061011025296715853639145281685017074271912484306113279768786977983451891886295259934246298907687542228327257335282765549456226338569506355510160091546111284687618653968718525754041613707816388859264758827207762179033754343643501993894857027948986206426125262610111225089491675861027765516302510875454677763056960069969159091959381569962556450468093102725538276247386796162877455856571887971930813259899870903261860525875691858690026429325482165886143729516535368326787121321638991825356705962524486760700802089987981334787320423887099943987147844424994628890738852621057120653321529712784709645969485514238079814431979911136724009302699517631059791023195446665378808859109093072471124147005820619584479384658992876556285543869220373613898278727571323383144285163921161098520044504894638061130432585395968686447918114084919291113541603596496459247343705486233618337817929589247738463964937175065318913339500269128544782415349710049132020156332683051878856741066440287421719147274328042531867330820650674900075559455558262733411062461821757748193177872667516493296047732542788477288888291493662055666486932957330165336017506093963066599881348996991986010404257522843069862356224096480243644379570718648679693572698239539152247665918503087111657295445575896332556171389219172716392819207228392382762386464627142433442069517630514667674232137552377715875241666168989544856619988155469409492783322583548577410566344010764794688170002876618162125532749303529634800834043253794505145944861659849063858303426132668991006014616949127074691444629247063859224837859372565109440815752579751389735400154361325626204917403626065142707331132990187889234209638290571700696025560386871690527439054811259958728094003828784936897648099304110514938397231121551741130755600201832213611455075735736094642402545633779478583307365921921090404742691231099743838576383113646666626726477912393053434202996138861366784982497496402077678372300461621781561483944959441813692196663559897590533017759467641373587951809096698463229788695502765713265834888808611794125360356307358264135994445107065518236635698473982320184658742764112258036385176482207037948191897939675848676242195331105235365197179766393554928143771272085250440189254081285124977360660687606016294023925288404537707686348338966205910822552174811970628220648109011846937274709065824833632950215140156317714641379376978870247670821142515342834348256485960887091808257565050857984529303221672203486640553047717999853827209128951199704488349359081704854257310719447678891898721592364404870840955227854593719614732874601035043839394197961747347032145124197850312836335932634322448985854075662886333094171619807735973627921967136051991675096964642049088165696847239626296907157232878953520781162418245564232048120329032357256709524299391621181999537175681110129165343323455110906828455177218871854979066583504930174137196107049408314533053101329766129930300811696253577221097192208708247917434727511559741202166662509412444446520528853462381754585255052525887651440708601507763520669622337330970235449261057991570950381198875416500839841999510049368780322787999126497267694745399358221060372311861410633149959447849124661876418350112695632816414668809373401791724088718430064397361281251858635836864252860905474400284174290317978491530720907854623820118042538767806496052925617644906073370136272084479009803959564868524318577972902853632936225921159492268901675263539705758961262627710652970704883084517961435428327129179246153369326720871153193113370793663797029429542935434128963877741303610921879472088594180633857899682395438550180799357975042743985423894405082172729412287139112786214965820199682820838461912829903646516343217135572662942784026817316967714302145853501893253959344239182929505805776301216473151970746814321796856250847185105682249229514275107275423047559384590031806715347597445661139204193329015719855314567207615855378474341791692582481374585058488341676712491656626470249580704023680990906931454909547192922541037010413493419046760928116739514397090097508028061096924800284640085900038263477621309855507409701052223189532223495144761920088092480733753190638722576183901722114792137653744291003409257485858483566609083670319322754665530113220665329226699957752756698119935109243908539310097056194368473641640972075793331644038412674880322132373613006215048232236860489969029082441577186549620027906921359489476307632037715851117123424992123005675559222305986552401493887993902040085952789509521718177634287868322205986672968964933755426792490661636953158392501585621616710343681596363692556166952798904755734115522925369029555371164292092025134798698592228762923051255954141214266307449814024553674196716459318548790342183390482455617959841202357985796832047967114396527986651848727522924078612404319660530186116110931976421797111689828183183331166971529858476742345119081468367212791312203823213365691966828897057949804451741339972473853429060077098704597857898590706557247803769525705810075205645413292015712050495571943965496509517821299885332480255070704784523519464370776398945305124100347005704553882004027401148504350397077566664143854619884467291346080829570158570331990031568827287169072420135145929946461207614659405221722311946768283023470407553198962437783374710477907626760190991694652965716190697220669791792464157740550004106345526498937390550975504611041347850646561778926550063760802462162341583915022417158175315513072697173907649900634583724012872525481489056012642644691716441146156320651142141390142371747377921634231403121943626293384626845639346816158722924831215974452162708288314957129829546692066675337391409669771256288591975049116953606061946288111180034539287346545667573628278295006498220979378777421459621213234621672425174292232594236640608737914357825975458908779495562733475359848720835217610968364398774733642606740343648875573036678915712719014959240252000618882210500425012579168958003737385337324831814648009979628076300013061353183449403786270141045590312975422927354020911914379450360627296446919070674676237633654631467197330336837335720306970743483703623902119552675823938986990663247700532033236014434360266587771039419478216646728421083417951805281694742734296415834684865237670625210886141853698317428830483650385118583019054301743203284378311129351050801215002290551704185047136514484705812903991755863709236440421864771807820580061874415160666318369294737819702981544537226804744943734285506175073507289640305598696715226844918821956584154098620700665501295599435370677157438912925348944770726385838972858620353082750750852903173874688198767419896589998919707748271012366206834086808053100176166774492539082689788928249932917030109684070571287965374267794610406222646795198371433232428106338996372752398478326692100024685148551665461108709104171998329384165444315002687127523977576672646838902968111978443023084331935321807895524766518397616358516726904313260229431919637380219255011583535134187022915289740697412451767411265746717324353810617620815951610893247157920829004570001207295834454127321540323161872301604710075420083336020370554235155625668787424140792372839194913809215204617626224588508666073183424759414921086963728665454980611259152156169937666123132275588173768001666482001563051570559514650674801012331133111436945904805255200293520241404390994914690244056723622505483205862579155560996528245513454264619515967262113523232522088967368486362972021973590298469805838045338428258239919856359705494560423218274180880749413549518015034077654889439065663781992542591637755048376176070155000415168905330327064104701439108943524578840061289929824059070289251222130656338996031093700703296211628937395615212749835495292148712348906762119948571125518302882180783004378105331078183410469746137602621479458127045584782290993393477397269531073042765561022468445589161560917991728954554370924935526771887365592191424570590547329528635389349834833849036567571037106465397123507308687193298448200815049612040648960811372454932268072291762436836561999118216592460677535783795327380276860863059270985910740956905267287298132097384321352188837203576219285944937374913522092909691927283680314932433073928156452378552884724073944949211767304412695504387250308335105646226307698123351540151676833528563581810962621960195671568406332114692675798404414052038188919445882039715956746270544395147441121087296364249001266031025295394586907499664246896316816756447963203159990908778204271817493455152316429902243416806443862821648939607574287605570517802495090975496916437330093058811771097397762925429641898014528638553940704246682190283045625197834534265963275044116172936403839091681769763981567995123256243581338619280591585939445486272146557075923624271532235186214836670717697233548926168239926954059811147821478761216955458224421975990668339783997338662694016159594413497682847518061094559899396001525387249047790774651397180164674068913822693023270037192796365601385315779532586884029652107827721177595774911991685200354070153304676746143825317484241318323611702971767510801139298654815694310748541586809109765463147971673170691793376378278732488738798293113518042632249907853921922181899961752474553956433728892261875908534160396970562324746233284592341025261663705840449430018722357039440247984219610404840097826409235561951861379086273537954903199247149831027387559034442997401737110499249531239302846951138572193417459198138922969807951640031603254182160986826180191340226723473288663109105305098765615474467083008590240087097219642395871880133996659090276192740584226772592316756557284895490917390082649542717620555969070290932012179278323983761199296994377728190388144997416276002255628390086540868148089189694059772900977418949944797629556600973100729977535964213714683264324413325187578831854616450071460663359522756362019253397657246105327419744236901216622425602313485575956227863780450887084207320840865815071250183568830106523960859743286433700301107971886378674865475839843111639189484635530950034757451113824184069390759256206959991165212550996187916455450124438029838052568838816946161281392144943791458544315157600143689444907702337455224049766497467205314249741626091397142900073415508693658969637766521800757570016537374502615322389054671766527929610656042174504889363843377845687439277525933474223143585746437011270217404239820936187083110383244524426831856675233454143147532132390452912757092128177524230129674291008064139587460245523246242915246689156353601925999807762178011341346180398113326012586341962555815284240282719362823491654362270185101951328512456654061689552283635066889492890994962743841270212385414969715421992204154680444538134105064177612278270041641562646687985925653293737184642311093433811649345422182619757356752514943440619701271579631848323008435221492960492739778333314947452765099037275830584291756288805970828875048744593119256560389270560230019831266558844310021597375510821127572285271314700512825318892780928163262868148495867778127454755309522677838488707021258547683717348354748407997224602501491853585570244006950388778806134377838298834171570037103820179780747720169968835957877226522367554741564250714695560877221923387287023326461506933792513810300779349122635792535733528363278381458624769731118989574282792812555401998514108401994972390829351163552538027881027956847873012473872356361816300608313406306902833364309159370776955580809728056280061181580325820562733022726859417216120076523054283761299213693674595647730583473292350822373172635217918040369116047709275817306627819370628803224102073874600758729726573650490939749513170957746753651595085084720948797991246915756305734413437734119196737719640662304477179570966939490011248434147028952920488884576036681033578529170828407555167590649343833136411311358632028857298899068069199817270983375143052869551066726119104670615971852848581868562642544163401399353600653423055101150735556383144614068505337475854058732105525648887635912916641078535224504909073743322573126159511781236745100417677277837604185466827778160198143805723447423522411548116978634008247628258574129746274172338055157764901269436501480579290121562693112244933776907527813959668018906326508732443275853733364097194682897525506179792462815719210901685353876297982249288498960310775631980796538615732995714895730090618587095676883803288374408813101656798879942145278115495395455365606107552886915540457738656343033222002988120208948071172244500285247811186178587606542279882112749614975160873762884210475896743872605476130225954613503952985619832639096349733789163278855674477917674723261878832625120262467591393230943369944437111863404972631770832369451911256811858601198676564126929481380741449192206356988385117376345388943433089328648953280032155929463989356569611455476175588493277251645972051888470747117715463178941111430073381894343025565573209301807847959763654746038405183245576488433017053214294342432800650124389269477751834130869520880604612013591122085259081649210580149955699573542456643696841231990784649672931095815694438365936640858262533775527680304917180708595228909746749837596488072258533473078932662640019112255600868896606493378715639706243163845358882583656919437502334885579642376346461700944171737062032161290589142419310195794476956778489199440352294708211214477491758097664796090605072799124341913743060198715131128066220212659532279177996013743145927013535660386138708458015173817716457067941821321259673100035554574365945103073630675206855493792186189992065735689470903465929588490531966151517194754777515037315508233188795533158246213398591338189208405110441760170602178441771209965762773198094971843919661441394560096673785766839825070543212921119054410529512512148810059940267617032300901603211065309980311169017694134256005092764142020024855670225272478033353558140715978522358164194034902613995247846947109032434993894542785071087286749557489565245471564810769569634289267358727506450792378393392762534632495998875554819845875397720062088641474936100234679531666560911811844776407567071843583277661113905854430574398834608221520928868963759447163811027926572202679017907738819643433484413802135487082890817937375832146607485764419252992301688663896416259558325040249731320411397323271540375535021597536596612612576750269921888453697346930259233662125677792923725866253444299633732813039322365364487107491558364819727831474128990468940586876227294921153162412377781646899847285792930428132327329471424978169612526781057846867689820133136428337333221641761744487407368993577608895045068910924513088507873470058090625242676115342528309896638304651703202049157943775149091492842614271289095329467391660280590360922086781371134652876371938342137352502391877103001651491187924253013410031592253274167558779246918602856447844347004219604440514637194697161526451227280643709849291831705249227342338172413512458065185738503230618968513927577321733726207313033716953927603661411334575595558503493648961115647561940247158987442127929273813600653455312751123290406970013127586849066366384912355131358129799438413624640509965183709789842496342242352523042223008436846246990268081161391127121436172185743248885711544346673913267939803539972630604423074521587695936441515670265803541551690805916728681576714686686154842676401918926353547292816822307584572068608053909747081757883638221127279499956112712284915318485708322795053251902104783977043181713270203694724348691144460674719541179992767323336995303677873286916779805995541731354115116207154312954735877692260565285592867954261470603146273762544441971332075211527609095329232302096404265842991295697106469102953719958513192639557256851927325607299575689136059773817016403916304416585420465278379137570073883199042356183654624850566809228014303490817781289466909502810221810839146651033541065778367346496706456854499050253989275443848488649053432375396716873561298210377095193347877166329845159621929398133012245317460686494107032566863521520008400605071667551139791017879012363965182503839412725449351135288383441651250961987918780749171506324468595540800930557337174563874429586311779383309106492660448931957449992812943606950496328336160282803695502932657148798502420950875701751147900100321690041120130998446711001842075511080857534324198497996805095637035086117272854969617885677827034003116510412230880566578277514112610884896589629241030101655381349811160343031686292145153361989305338458247205144783997295250179537583617594754808377116145120079055922417028174785502325782131228384771424461971284335599959172163489138875570440024952592990970902780513074981699705040695475299578824065933403253970687233590866777050961621845825879268333857456372586113071016063706952874531908213258235425006506534567593560948188096982567168169337285085477890275758246537864912655968689016366319353504728245909734377384782669610932573789860539390164080721877469079558815831995032216294185232575811084500427078795157922096596498226775339420666758010413665887273206650565929886578155007395809994584471205867402873876558795260032772230053925662500699407524394395388525390039013998025144595174103564573258724786197157658835488093932926813756218781096698962653952627640119262978435192931188460024104109737585403460339729352940039611859668513246471317725826317603744793760462563226219029655397116516696348456812376906639525158584319172321617183219396238015964611363307141300805915709023124143467815288772203061895708388091869433015109544145979704828394667413608253506807313758804502152997355752731428798789429762554521759618553037051004517773963037783116668774121045280902351374389709924771291715246575798121279080838370658076946270210164726157892736308944286200484890218243233894766173059957255550673347080191248103580467202201530514304583685561277232318120196829359254741369307501874486073056283636904181837104017124880937735504970191226007319579734383209997969008749617100386511242447085718155036178866382799072762256868030120271659459465567307152694953363096768315223320270338487895731665546320471303211102205207261555850686475356946323261457557029262102527996013506407369567623457844960415764969525782412161929020789171897813732528794166117432453550497273101808520040506468470355280064061141266232154552868225784421718380245847296905410603144591713180153742325902568990780345785652801739031002710544513021691628034717383020235993503142653854009229660923742607172736340718569683786189572215791850646269766146781361107408430244554790629466934924749967593958427636186133835609135047131941519848974597111083680916710702032444994769428527245846505521245181035903005509949922623877357230541300814164063181194588204486002419729666007606655175903050109218210488956757762360492387330031623069436224604151458042016056012926205611401703877974914386161795104749461698594591803625464419050331691232667520341331464863119058859035644917013610966583195594054488127972831391311166670653632187897740444013157625465659310350500984513242030523452941976787179764662948532661779222450361141077479462666539201800972583397450794046220400266367722442778655066823177528957559359523729131955491784879220906590157485621697599271119605342104014842667057796706267440277704899255677906074767968741450019732680574974389347968913380127126419329627996484825703051392823283103576162483421940742944245169091845425961071377863475873126628795194738081820482387727780314550069501888995659753164587772422264618948855548560209597590286685470680724263814058284240014285113092182990882931637332720768379356809388920543792698788620597110625008439120218546367578006650342000054608189625758172419630214283906753626325431353427491134983419113657025642803521448139553449443995427917754308427065964618258044253988829522390969443712981682937379265610425958611549692769186515354918083745711964070441169999831213703797776935797727836776732691690664663745787046303249652644424081423853825664241244880500063523989602940365087910977443063576102749576113033027946480908663220527713731215272985859641845259670442269959851588866369827462126804603510708506812615794032739035601231939213192762553494931005438403976701567853769369691512611704426865964528334272221946844374385265255830078289986576300983907050735717120420239801216815557625071975977087885586744978219101317184025295347633924865254498727763960941096548392184747929387312280649196870562596768417478793522293360791179026339297721951704999523304693820644312929526912300411938956629852865658166328285823574752844160343210481009153241783444808377922575163789368783325045935596020846279929854772946345967154110775924541049636500131398787799839886298062990900241623662369989528583742174771556467367715380706832638212211474100703590426882223808782175866212686600330282137053127201604490418693708965375184328699643479502583587638097663282975996616007640593977903830534798237646275229281612048270638386122246691151290323934394959871709883022030284833288826466192667099252672711967665259517919119754729306582238460989206231156027499474689686629477821542169021534689821565411148695041330475872669352101063065943813239824219773602706294880915080892924994759462246263116107174242442694423188590836066643544120107123907228032426017073758164875078357856323221040767682872905681981978646957497958198655380537961940670045022293226078950077047633079477544078673192619618510752724809513447557309651128310521926530415126360421829956070800670907714939949239414684092016340341148104729176945756598439142141610699962233709871897356684326922220097386909441484895870492823101650158488934274422873082308311713711121898197760112395604208802122696224708301509841103047350717483198372803161781232241216436715374808622806840810082330531499089146895887173347318079143261636969593548278951319495850431212485111393085009221656076583814817278226617368038253826985566684834662190391116218642667784615736506521127151832042008769211631843811684860499045925035291257648364198502966304047486942701081840256448046299396149724124458088684429829414411831366812578472336894787376445515401590882263157360799509593255654127585721376693971182764794484304168315379646576398539386858343258429280760589680331539207597750182129936983093776492124261847633469204874297790378016044589582611737394522861537550814392396332329565688540691750268725580209684776584231245477047165644644305330207995528463714506112194133417115599236018705438504838392426935000820195559749094921607055955527541643097026403474587844454502672259957300307718580826569998853801772697019272203549874837763395502765024678322303174579481686970720329706806764142838690900729036244359189902409403567881909669825799745649778546304646694222812234770798324331382303056383620266104229849252839751305702038530289663340575412744053389790692073608814972037212340514902484321098474108298365185283429530161641519737457351451437791762065737399429008345847060575729568675494063927319201457050910892079988450262877368405351622358588508855024423052887553777688024088644203084363215707718446482826187217769893771017065335402984913721496126066507541312575918370381351621021702238548240225428382029078382505299247761229347453715868179402753267125175835813744225978508807151511962520019345777831572947566530541544510266360206886285098002749873999804567913792117924501164296499828829320725117546564481016206660039476060218064166085334613305780632120438552757215458173869394765552648999629906304049149938036752703186325065820790586611737477583589153403702154407129606192578915466989571258348186561702714170143247137346883753425992586657343344742241537372974677083464096471084644945380275533361075686074812683779846776668248926865378276678217258819962804844821020727482123466254777957239069902118970665648659924720942145867575132327228960232685598016651162445445422957512884103095081985524063304328381758625100264947728305739749027809378122003366726961347716690473873459698002639106083230844641905576455053073927496258575325747787334449483700505328365965271514864098327759587194131708208161173997058943023243216550145397099495137573063427028106379455059547014461744666451364451608519827038570729264845391577615216826403391726405517575960139393658645209795376160297240245250325487760478289394765182196650346709328960481682528725319143232994317488598236869684041782827998065967443763753840421373348478610501570139387683100288128947261144803758288421870363140646288389062088473859096757681728193443904605998522680681555555177091533692907672661312266215458781072401922911735564563541077731411210996529708380062745909428629105106619850783396511249584579470039540375407372999322628303224431536474674963339178699818594633439381793846494579420969474486315449781858828959816343043390371620676147950856463021466383220892952623375673838888599105504050001665254565052757932843698749590772817129122744717752034313470599564559853958346907063832835221853275635495421734183801052203844982242042324403149751612880802450484793957102729476999410356818531962014024931544752421525128835787721932232262094710783762379351183286677166541966616727315545444490289838823036481652061608606173587568042600071391258109304630598184115485336447367454858948997300452855766216932074894821150636992175325449326684320558525921421997224749793027981324557642882594377078640280463969429705176582680711261539769430807461899280457215348324634735798680019622801239975393941292178401575872046323374991174384256580286543744791741444817311029698228167908406825964736777934693760909837895203564014490450887050129871812030556059561451820964006391010043033429774816907634772728706930920075817902639077126511485026510143422073676915164679645187181974087479001049587470476778816474999489956218104833319485107994945493156014953831641723277114056118392973460714148295986934775079892115062106805223587162754349602197239517787296035895398499790760281325212485562640721276596753324295872644598151875019500730573472066002758725747012150860673387124039254057598612435567937995909676596699944285788267998065629571770647930650801808889790140011299104664481607918319965378855331814564749888152086784523482016054975699017480910771045910341040550935650757629980760998337400849444421320580426507708157452074863155347449654767199307959766731830107624442812350806117640910962125807846772159397798925452118881350433051700418257009350564204056396100030994180219423909298691759803816720701836591576994459869793511951383962055920547915573525136960025095007907010092460983044626423903397792606573253757716935862006487582091279212898478777585878143407524040133870700467301608883903336553920092189406798789415619232860028934233778562563024429745063959426831664759140931531309390759864291444793500856299598657739145977102001577345978674389242808286224781808511677218705177067300802218418659371975739776901358972245445562188263630635459417045128734358445623547350255715641491390488832480966806840133924006338308314870831337579965825324092966087127098841124227372948827768827918988198751317785730617849871949369365397929761764579476284673269454949929347147086223272172222602925082136168494892072770344422423439419604837896997545871217144669587691819154836336314168157963614584448749668528523289890571846950213287239341951103249509757039138397870470841671673049971521740367893149621173327227750130588366301373594443792567682352435418356587007651449574233125121312881695046107551222990349540465231753172935655238459202560037799544968896208254842748511852991255667210074095886677758669706059193003629773150136008483989181153728029362768088623803439364052203895096606540093458748388515629711061055128510732168925133628604297069145654506886196588376517003232638876845064921050681374462532828620833426616890517644415220372206007823062406576810895873825789448529010271684029062576940454830293680943862314135984615858037762930029745543480000979672962592921189151339488790497358637460590986366963387652442974187509975313199923251108409003817344281755614864376134149209663044095436665017613110417373633988796515888905308636916480000110760241134168826298605721176218717345564428121843046781804975411307637353136652674536797557494530436878934407890927110870360771389634495800499864809414174748132589408006870583291035176955478166775328945588446685337810076701019531594898275744964792215047834979938750664974348353070725998797772279903207992907921147395933045598141744038099753788100428218246025538064956526622223459051047128793912188408939474681477843840701655301143511139145175956299330179059634232322800908605038714817192371418199951160006604378523958445555562873996984808264162855064402518838696251467984938927721241644537127780574655335513778566663085831275218953745268608985609446294708955425940321303322233462527588183938728590224637023750872754876323558330294444808811496990324203035455722263760310923957550739298506989877274951700869979778140171642204817342300864389619639416016361092231062587265367974666553520673143075050904833428965982819827999704959580500653526508702148666891531718803867775796018190873646559361448472559395484468698209667531129257474625987851326360787427390313465551021529018166143954892338517026930856103980794652116656228089026330323146973470693491819107728600642355457344037779439827870008843994019525443300073633942906140595362753991620618232550371252329514071242399080689402247185361624962641778401222018514557258737201619883104899479719974461605640115632976359872471576495506173011856383052745852860439307540226392576416345917249989062602282113762082870419200435241401455206688256399757448613313050082186335324767338996957384836513407991999869577970601700053274986985137572579914060613124688643551283170553356242787290373396414522867241537918651731142383271716530011274037581775069047587473754304474357418882893605167496458426242800243915685329714277468707919076620030777721080431863008235791170577360416830660090878784659979029578638960229146654042673982150569306227266434208409079458569121952782854964549057472792095080614463797870810168462725388490070406470262588164153106752842270253780271949939036376735849772403529537662382150705892495866133115097946702962639472634828869200379430045312575986364001956133530865522374645652657461790739008236134102400332520428921592316776108668068915450488737652015957103460271376673981077379092027153666326218934129599313548471569536775775371957912155718846245367360247612360332104488726999907619624016510832731117594560648668651568922214057435261183798422329986194427377968425159038153691224208836342571705302151940704282785122604437440571947727108389783230422988926400239464999353828809466817647613766903200160578800139472797990765075753141280422780806440738251195637947008171079381471537669087172343619569155761351395148466772213155680476913510010032794000269396986427734724431735037402876000295624656980669934611455431390013268178252142379398110172570996401385128123329471793996117923058405648514289690329054815650888045711599770643491905888419813676238585037345496873525412944832294185135309198614356459762585791024591240330848244497759542637849297215329965027070680951759060801779231535812085925322786156402682554548771129765781606224820857147037008743593948219039404620015700945204412966759719780876882296222035177297480842787063487763796387422795378622102492562665593002860803111860383469363733771108302624032325767138154395104926229876051673394623442467012844888806197636644652973061474239828005965114045095344449831704697534889954980683459418112668276461062277483663286251714274843917361192184641740815130307730429323744295241868637748674541904404930420873045553828810726054371087127500650174505366128540414353565928539598752743861700615146971665229150909644962862840516071356187503833813148084459932061956773834646116983989847782110653913976198146023708491339292696778261061331651818878255254620012976037723113593397503500761995005369323121836123399781089392806708495532489786443340078521443140334645453023762138413407507713133292393826276831270265724716252231264340108876714110478378437608560184679990834147190647769244603936604161739750782934252184196762351547490620202161738707839532334269734703661403167494920298683104365141657191164567258589763897991633079145287874027371053889127979393709169186367963919297195203647804658171830958884797625377989106464347960424001631969810868854471074850081878009358858275440296544341020361773349139664669717860452351517310905800011121493674582088610461853018618097745653009115937854472203676796610127232409964299906721924448508733410239572542483215596243876255468361449249428626862520062606545716447124382132302886982880336485956626291478926203868107160982700551679344285951237333892113637688417102983499939957806522672391836690177515389434355476924326776176088871956346480726740512990254996072737897125426824558536520284696468373872017072357483678845720872396469683544783928264779331435518987712061709719300985217203935038037780066564988950762795168152663025078131621311446266484679339244557573274482450221459504392502454151162329108515203423596952981259001542969600035097704334591151911696934754100804322300794861257006094434632269718231906741725439834104709364836585136951121231599915413032433082860526458307750592484623235640446851235101072693126814053174820313630471530973011689165940092390344188920213361507418107726161176872820798099212834337236291671459079502781646413106504987777064944399162696840298445509047719408456797294424693795590644896003962463241770857261014996909432626214411745849775132454754506771689233762154052059301631515379979012575747863461842839254869852248742965737358100727238402922467600888634699580855868204547478336740174352619663043636461042563962668071868474511995181719209801873430535648027715146373489454928615678169135554955829974172126174026167458834923024312317233411481687741122635868548765602249080271335171676136335507820933989027177251919574210077127555110146933005306839576321258446039191521158262035487151173043932767062783143794133472625493751630737492354497923650632559385248205373262175781540232188507947498755572946880472849671347049204976310722139073770390428871422925168479880812599266027449122701164469806763724521192649003562900627780626529772843593258940784506812200057299691713001156289419736405297809457949107602935483526199261624637448980121469625543812045083188746446078929461598084989377506794441584181842600166421952551285138347190818343921141717670381882216709949893046039166303653599212332660827840421452378670376123655716509075845835350438371652291036817676677632706647612163928683109226242967514351034035435572901946288465164708384672454805789694265489982003710511262881610499667529888475449007060361118806110510775099570927209139763642719439370068944239340990963610514876228112834177332755107135640158820899389767791209395825935596208969225272556754660311019497015351656529007375899826577668347721584883023266185177271901040764543865782614348284682228881670883096398252188418410812838862772862291821090025470547639031647657918712709542358757122290868185969787369742689868600018875936952746265208929157267428689578069632987149598587647027081565870480536697462974582357788373358850121753713148626222817359710689302519060154568210873457639976136106490815127370480911072437022442818367617713024482513396388638332652602246189114226156599244142618841071452299258795122285486984417716483911527110731764253421221283650699685872606514865133954621728272354770071308681129270322435944038106306130722361770166264823729314516184141490838631988851948984022692133373102963377573593052819182556189764950604570471030889608744599773984424320750786981626442797939603708999663379623736660537526754269097254765702493292967159204021138396822226090554740750987383812339409327938950630154809975529288221586131085823380706315227421649625714344361468173370751078265694164484628533686409356996068494929998357537620477234171949604907020256804820199965641739428397076201395003561107660517358198283149152177027486355497192141078791069224185673069949635668200375619460741987911712454104107777619300650791708701511624315811430868011702243701984232930707366196134691051188730101235580500384329528055556937220133470894677737642666934737582233914364050146500278979342964369407400844796603607828419337583136588524888119621023418505071163171777778725352892034446360351336241068070473553628036711379432303893798871097491554077165839159321519469678824060760292603461412195451982878713226869828297292171621057207818830012094037244845993215130391769462092014815369777604955130455709976570041782367235271571202550688380285690304445303723920968601412775095678614778831914254515279101391682380335263419182454095292052767820928035947813573067164808784127455855397416220505581189932305257077647766059962252993772424975849436947403898742776643485972411742753855891385542650726195651354692926767578573305986663861233095692501074905717531827676432945840631347569996119890807301975486602411821176914676635057448029990374792413881679910315991376632249671377544719766286908526827803170922531914512520949503287807357665581966006775535290104491596759180887751433209216487666989948737755083720488859120183070448026147373332669324539085365955113464725643556337540165558251099732428198301318337926289615279156105682438075922588117088879757556054611049370356072437233903507715185947568007691288882325858522622496437165970667246633088989158852111406362102576820713368250663695057792073312137982486810907241353429867394077552419541088926813091140389483954712299679956052279043205282064684883216410547199028904801332103279429085101552365600472232379644841889751537198548264775546284964187332530521898089751734938058646641481961337223423250946376623570908374557592053975388610348173160983261012765998562889866505869169931693049662454269535339899956975526434406866295407373865352304659619197537279505954023648646208525451006245902968891231786058291162248443702480932033198810027368394183229501449144346778212143135018873632957600472002138954391505553785268499746287242121343463211529714032604039981724465665598979223375428431333198885916834184436191169639090002581528729206699710116294337074104508522948600807011840578893079276630117951029869591248838355495976243953388438792556103033532034911755797226219666337943895324018414115038591400193667489781585533723215746593092879180345588997092084875891910779459061442650972363941542821997236724592786765021100437767152576123596763216895091865917120072752044721536659803614035044550235876009991534540595444661100413440390269558086240140263529774763509372523096715918986868343760153191568596134343050147609410007681288054568703529317714483612639581361302427114397861548761317292709034544027989916196020846930965580283807322752182921145407584822485425716408908757518175888393680529395260580544744056218309155048495238965788942322485446189253424386017935897512299207184145238417973313921733416787881253263439840802587842059405304552936303131388279999458063974996302088160980334686577269636326978563380189988350682207856327192190634145414380489697837177684501943273566173414214073367463674565345142560122631542567687006155995764596812477368498422673573658068396652753415635724402022616984405006733813950411251673823060546486007068105792877985568859242939309075533307766751657366570418417587484606315980508779159204670283209825166989608777563745783873931731985053607614399916253182226701403120774092847748096512595167218933719120997766543517431283789685208086746071551065644281056850188991111150418413747881587791818932946195926107891589649307574001143874561143321923821095896160180723488235730704602316460882704310003672753926562138381593512324825207393640224177874231105533587355841583372943449129791511081601524857343615523427910285776367063554252842735299513120320317384159983041621308766521295273394830644069032720393081640208114721685686332742596108155088718345650308699195460355433700927693932108222263463359940684099879238147471461840479921241230475350825595505820043045326433190079102806004137856204438397731635290435610012041770924207374561174309842098196032195951390316119984156614110296085308033651552456472228580905836378972128629696789871158606203514915457818154223355596116825830702283265287844274941628483902436064135028909635131797553495867859553340346138600843341892272804268330778560619158495582854112741687458557729738243304650795571285057249191430564135544131635982718944067545093640173119165170038976805892825462487723892951162803040718746881192892652545741337801433049191590546472544937315303425610061679179562930967290350926928588151772634633324944440056608321790831325684810977705218383894971710834984519375383692326047901080259221766539798144933419847391472256018351940068632787830339705061212076726707237246024608064160355147085308905073372903307200075224640738155348133001219665422282425427285933203079180468727068145186437224414716442662231312126900740236573382622421875723431111312210277859151677835564955479170563172042873749222418885579338831201020061206001917577009813787090349089782813741864438037365602006911186529189830586668458932918857867277205848583651370230674519823272111273864900000380612379387691336190800623134392449329393562627386789834015536095393014254414407809975240041631699602055533082186017607193610221936389089657312736455955382105257836512624218454472612873509291035845667333878293971109810252420845570558429867820392714117706688431878772080073347827065783865785261453062150770561556524576124294434825011548795180550215807079324590551911627622790719499403765347081828400565316866085650284375486016231719233310188942413896793458501844215557062682717938589971438664390605388601100214452725837436554296656347915020346823660808211157149300522011751112987461444349957332135887776882175928191906113112435776144242694996239527728401914078204395307408552754315550503971378735910804206304911680412828439910385175208715883460247639740068170661799784692927504998572796025692495109212771274419047328823273486663072525667846776520349280459710246520230596293258057853924523766365275408299133928042960639487371923555292998509398231336456036802970297275913077202138473775982406451776501724694448506932208664091870188464460689167821294281805934126817178970418151984355609438913695964970444772680903445516017818649598727207276815962103816859525234599161411876331247144568557571902544855939581108118582496743159823956018679868303489343996290946549233223799602481335352604155676755310785067611325979404520369917826178378451181711691692090137847774168272901189860454106702536010725149137161694797303510633804636344070398213899399401086620406347473553568663360515855537293865470431121800839383212916196815692356196328515352933974196859544775593190131437714845738417710026584519021127603277696576549174814561755247994863402137766761420611628263725785523004771460018445038690252351156959325974863505030386449315534380311996104690498237808895853754189306521633912076220884356561524596016779022051443509347372287345802775559711822808880585374640504815914608690556875018285844576301752002577118466396277569156437271511874692598791730137161473000332844772698553525009816067536190291434837840586638035991805021944051512637213818233513239776208413053986099878384833274907976806893105093456801663525178796411796595529288071179825283071385571276635475738911963409369630901774592703294166173296807925438077458910208661834526008369284833930129649100753983864917478231842585190128084592999993354570646164168399606178179069239596237777657535341518606227150066194409723775979956998460565222146435237545174647271413744514261811526582300327375977494445729086109871155650060428577001142437343054530183999978510730358321546236007077215904257169047152519224512260691078845815498797973814921787015183141053166798135706869238039451572705640761380159830380898431813307976641882542435124458281103982236284068833345675147926757344280993041628915244234601500753692840726018830164865392163762337061195347877923730071463689791371797704004095200903689625406942480632287830234809770633608200506578122591346710848595238088637027423505771004975519508295344984724140171544178207071803721618790251790577173286503070103359163386028441413160713160904580773656164128333351985908828272884446728654345721794227078256160430239727561534632626615909753105280157837763529742373167881525457312440136351880006445346667888918087167641807254694769949675177454683944985716002808094018848952420207271313745278837304493302778929332327145650438511968420902065210425085081738232757838153528058968436501626347524915990986132803824894159838755422910053555193782534117381967115236219433611844459964811277808170939571680467210264028485034169543584571911667365867610653385228480224672240672958003673739070295538866897310530748125667169361293609496112975384265772841471645915846126696658214146662279301500985046427896748456914065540573489141854353618422519308611718878682311230510872257224107985789180333052027976033663965799921710100349909503469538573213778413905364238071746856641941043870049354432849369736720400612264971252410766405021499714701955203802533933939317245420526112987087474639123953974505779279846608396150047384332543461561090292885711810563122904774803395225294832568214904713758431574065701169589290897950691682079775396392682373412916789235333270949241788347812030595001038204025725386487482059867891193171385425498503602699288248622246181456023127827178951074411807269863826747044636057056036885935603348699846143941840847658551005085580785269244496916986858335459203168000958443148226411670074647516411727638894820193000815572643146501386557377049289195530249423065726988094773586501467495458830464720280116410765879370312626332540667299549991661901749529155878930361841768645615012986645064693964336229569369537669076690154619157826041574993568732709060387903807837980890897630342671213460296491906644212302958554837461384813555438638035912189558223603474770105277343833622726220230317012162526185538069878861345158025268247061560084066977106861226752881636520938972574047941566690711947927476281035637179185053394424393423922302560116631752551919100066294479910063236630372090887650307106475595878762585251712286797615334402796663716898461902726564336458407681936933586715403724811570620017456689034811769768949809565056914414647736075951306088698046236101262876240253687517309029155055784854529884799021591010072740255641639296291005961182886260062441286599971696331963132989059553878881068381075786490165927513796011154021133972105278915427733097167586418489960808845375283416917483153073381190080357595542768008283380216636747880403134042689004597034760197477891429238993658066804772581043276706988623001287954445740718991258258435565377076388123193546426563529444388491789547870140829159522518234170614203195256733760432539152857090001392776492292743638086216000171485563085128696329118009450765236669229397453583669104380618849001189689022256349879371955927615884119075633854126807536675562138018611332352272568336899269462635341186882325859295786128927588273442317437829225272349765471867355635035678849178941274027444511130424303570865058009256707355605558098954789011097365432332401497044450678376865104597266613471827569599088470195027991730101832947850009610791739581695781389436447482398617044020662107772647953388514224454056127167871487611071962121053325746822584458990266893222181572540375429977865508499935788879004135332945097253272148198809926696829512190528942680149450607884453819668964545052527140277366411079358320366878910916656551580179982388383023603460120044673603847799220987285618471210765343902216421653421131075140167487549068202327450961321043976547673380281398912178750441128034777899671256659406794775174758265038308882074900397807983202753575287887434446185493330373469442846044803522831972933324788545021187766102136690670152756242090800823722661693610130136074979076540534159157522042275142431410964088340517004747287070677329334315672772776479820875140942280296875087629747389615453244111840083115483720185655766922449054046013381001446612682991344452851485995894890647795500459163255754365930318769031207432593956072698433311983338591893716063792735391601728589064234801214245377316952629403364410310066519513672291225620054960795183115391957498717155750193432149254659290983800294971843756358653348304260962223090959713749640963079434457885431822221157576452064938066243928529843590153253911995112768441567768371048145284478018033570443983333216810442896126685236396281843932693583519488956505719496392879753022492097744679213830769192067380843860911422185841663322891157556557843193469791124740535884907521848616913968353979171294169654813525757709403914575041011987882647399583988192012468258867644569232212567306942880205712738422703248872109588960802707631495353935202820568800380869732035587940650896866523002696518538302453698795627003047377659156974384873729667029445880761798105988713731139273558478663131907566547811579475207923282356451085390119537247206556971482864664892681632706444721671263509484062104284750590856991847735952833069989839689623384425046213420470520905935464345255791817267924862649783489395970512247399337788225826569217199704372778779079186262964322051859641324703455970509980650180170366272846134576822725057214199500839743690407906233502079978580034397641580955314351747791294598792496192815862270961378768224998747098077768507475910045400471219757392911491090722682149367491200840356370741301158708729929294298276633945637160644369372409486672426260409617441190569092271833870930344123258136988853825923304161467641456083933239143041506167688098842640252162104900434035336610537131885562188305365168854011956230136623367087706493855030537006800936385683213703537493886772616899631765587206307620711471434517881210959883443072098375115122325969206596052227100526063449822873121023203849509951632843241796891244998417782169063949220348805968692897709431728032129281512753637610715926209699730356835144419982697454408387190591918218621194798002513083654263580201566302199778568814361922679291773642261831174427945988149738413789938349901287797253707647582370099788926976189996435368580758502082072025840415886296097370878834830437051726458480062074823928762474120679675218565924287726866754769276225899323601243216258125133190347961589582563737998952835582071773270726197494165799780884378282617890769352867309779587447802123333872631062779427185200268330181712883959007496419456921255478702631813945521732036019335177242133999513336562711849783596463012011144966290724537239082787989013350262583814942635044876945140787922029748318359052305554463713496667854877062631106187364169347767746222421029596500737874170752356197674244343275813200306032797818848991274100110301311248708255773459606337410959659266199420796443809823681828734577098525485489083989703094831197099875756527488979098475196078605474622418710070066250601611635008190327196321404012571185412175880441588260441677167694136891879210611519356546160482564546327004872733741996978777480731849401628148187273692072771318436225517435381525316555949460025394795710012514286370473429191374922177121925796892465509380623683027898232435457046536886653713435901778111304384959245411987116732814957410452573556892154834986388101443040255228685951795202147989438918427946046403670275487424050977944446497775923007931706099733669340169672105592281720041418081148893641870162443019137448878785442495486964618845299589801814303406836772718631832860385008027436089264444916053641540540169541644984667022892248181960043125141967168186397241251250661372347049064032145125543169462310086143367940792393520439084741491629139201018708556716828918295699608407983749403067798646030690325423325814470226950053822747393594710773444423736648835166915714390314334861246842910445470410420759573384422604374318630693248803649802172326777486449880909553355541014450059397509620390124563419223060705141873373158229426687646338195979744446530009292801164364071991113374401958973416501788822299690074615929692415036778066891238010489216493346417226435014921013111738660585550775498574595939790547596614012753016304418022544880309543432745514554407631936290704760860454211312183433524086685544372462201447043657844944835306597282459521536112128051111434877995339391371316008866378711231906152293914772734530624246878923365288952192999804071171175219196788561555210131025273377856407811116290057750247423706121574230172174626847748665074979431420503856779879050775810396560821738273200105667562752125895198241319042178124080464197510779138389115426175118134800167993371601947109667125324848164190313219155591519993235267010412781018549866027410200564603261354474130132225715471222097503620535543821537472644172960109502818692269182835890483559805950301332491242889497181626269324264442262494950509163255419000064687080327377764672498593420525607410089795589350451028164703737290179100805275783554494769438237424811626451277093899984781743112316350176625880622567865447610166306434892872176159954591693345545816089410562380829258224502177857526518266538913034852603588908541970733842517679924169806113486193045364534645893232346911904754949780939677690899875296291250105014314012388159090721804004952194712022244892131456333829031201745150946948065461112577709834095521292371077606764102097526388694300169616936876831382247325921508370511415528009606915470591967920770847046156041661062304265638317854200005788592098750986991029577077622199542669063126551817198768146263188376023143839174714773657697031930157933045209816009271536521411103751879463596091585172402672655302497572693142325030154997775945867171105114315204701293772165266042526621827792632151337552048214645552116564651807364232557883365178003901612560548899417271203074439613941902867188461109187385927961509479050175256402980072371054959820664013701285493799012664825973370967342193524092324173298788552002396508992284784687642350285722519251871280779311234050023805517445743293123068205736574484399534011158079372121189076257608300978894620588329204002280437810156063716262042146978547882881375600089184611887670821916970496639672262501362176070499178580905778835228844100002211329516077858825797446549626530803365887105278789794117170098543689521095448191403377998932078610072657619313203324510759796243837497205751272063687714177889528964254993343717873393019844565238683541115613905649898390957803403228170175484129738855929894871826685057624780135198641317845957151552739554425738122347541538902325257013335371691683351660922702376868187996870568744325495257199779132436588329038046485541480535182419355999671340137123128063924368229194417965557962693566229439624630783230827660218435425671002106760748176815766326882341902227161603656549295774356429712906811619949734434719930560307509084019004175689100847148536020674524778056427895638000968015398621808477509130178882728067137572189624916099156518918837048680777841337576300843005401410683341007040235345441810560703617091784244619850271628043135935384273956593615204661645772590904152710710893261634652237335319131331912530869022980806759438917440186948662746500223181248673356284183157388787754792933759426927768409599461595475387032945582363976679743808606473674429068159345441662688809243461648460786595928782721685347524939207946184295082546299026631091650017076187873756415366217477532758502672326615150887994589479067757152477162704443586814412444490737638012447609742652709614128632655835035479318226615273524957510518767732190575227083539005672213561772435947555350987958794705883468525519294791848285799617175094625891794009123984079106742307384995355528359751920817918831931959375463493122373019829387444754615144947987897912450942732948547379017002456555324001043037608763513257681763277659533352062469128136976923167416482726004066788938740533223173135592459266814645085019319057322107843347176850855699220592881725126387980489876103019838613933344207793356307745721260478556203836596217828046878750284040398134274279417787544040431723442474611893615622204739128110111370468122088863946615430287416900007350283964197972689661840187407131457234899558786909958230617021313843710833021673244748786984235856416029851413747066533533602971542571887208897322220140699359131107858968603761551997718931241891178947025189551254735941508100227916024549104629566507020391603807884696897318873020165552328837067953180418132583813076494597736464265109668578286333595902489813593855161213595524801937854958065704853975538896214491107880578055066135298695641230862619740601100957680115708234141412857544740455850121587207477791729017529126667077452033102441292093196963120774798647796155004551860385276096750136073045145033176025337205983277033318170611452656026993746373104707771984618176647097908995806251551545686824776608329108484044512947847708652605589330836750049327737710109610880780884838382955076871340272236780378192939900048443130076765297153472021628781828127137585555346318718631975242612586536863964738868088939197782188563529179763571162157068557796490964089275277659912394452624743904564786242584995842638161528523604527229479773224074054037037034025246060298509954050383571948611926147017891711632542565562227680650410569431100825364868514552990734300210895602463832486384559552339551884851771900500486021542500999634817743253362518346692755210535828682294256501624456563632023343743913043501946022949558689933569130489462205214563309535971329881141751362836104106715400299091760439029625441333580739837128865067447961564263306253537824843869061978836858766227623402339558503496927479260361397187508878566800806330885058526004523859362297817534709217715408237814494320401163315488896677166943580723305468730024758001416864941416254341940430625337772374615048268623233794864870755919307127649560038284516965235180547767460742118069047401840268258792652573097630401395899668403632943677938062204680459651144538536432516379381298948962520729598470779039903241458755770113884963920680642412219769839780347686205634140990707923756058843593382897042486609487913780680566639425542162524326620296128387302559916371583126965675980704428769384964469350958398503887576982905816133912086007910731286442754773999452652608252943531565125630371967084071013768907825991529689380635355739051639142469690997232971920754188304429575067899156787122807631929675299259304965127832870588200994176940169536968250214744308586295738608240945705510347963820447664561755914053541467637266474592001716283430759270093254543100712318821587553754152801612082204391213965451549570849916539654352030231597221741411790055765364737705788313159252336681238403499625043738979484945932326811872909612058176268081781038728736015745265334523016143469501701708568723826692460010868975022938569074207139429923220290328807444356882674824483835699115728174013476900296525999506361725897510479987513446076785231773082353091357737264998223976722408383678718603426285843562179747508667650910493078476327377837833650847435893089456545426980094564360748926547093424084675621970906514653436149646759884447362180885805997701029867078843524123820699819931765358273506643743973632493327153324263488848639186475860027398755440803321572715688679643423755053436292156943981455410553805025126638266748872633590619732403425058211725530654578300694156494664518548594017029311270487596739872751667649318926113508654124122741057823472634803147294136252325123803702001823982849596548051881526937190871059701876187313306927890470027374745501281066286133448164635433416344767106353017098602168819124145446094188754371803314445168431515234206362175553154371438890804839412030826400645620285267548920248118275135588247762604145840164584528580219026891739646418416020841485770393389088178913107815581503572481142300982188955503048333038823499048418562042091197818101841750431649819317675135008534120175395326146408735851229799222455544438350956344860055005078769808474895760508761769306663036760766810285992757506502839749402814602828404755559847934257451642628279784940937933319383630564806822225596786871961550847842067187442959836555298957495269840475004098764704228785027986540013406281127669192624181834740569891323840627217625150929575809310799422524725772982278844532170802950619898880855348422622891322894662102141956411963425054048410625948484560657558633580989725535215292102563752259112620038562874688536634994605542888110233784028114684914726154181801822306836074765012718318704508079260195102332923489220127837872879223227649669352984754944286521651143290262838623993420219086490397216399082515864296425305701403324570469448341495349340668067928991039433100189509096159372140278500808550609666808633368842290441608745354637445338034427745761476352911315285275104786848690462771162348094519512545361336208243172190224108359663839706257526277040287005116615284275729532490585570067664176593073459681457322157648291787724390471593764861620760160596318282201006807099212222734416064635969851740023245350687921538461963997730176591068498341465150586847955924102323984318024273643543085191029638647176759972117555673297684524795991514280758908244918018375825533024944885467090773967767274263530581748725861428732206384727291103388827215335250112749240458614652016202967775335842179519261593969579069707935382236527887750673243495726091764430830330515617700408807151222840238137392847902011447825410239958288986442169606713126158022626707858489680681850123016286343018283775013783776358033273092710311877498301384835959278499793744057474006528695291116233262524895024542836879444096245473905508007544616226845142913657927675545994783785810952149026463598513839892491793223140738827138033436957182075424473891970136568480562288337226304635102188884451477814978484771252091833254742838539787363179253553023660297146319148622010868805150946807712587840256201669638832909063110321406673929384576434730098529354638036024572461044803241610334298147039490070317816326344556560740150982914368122387255184063933498475930831793654444334871197798683087257784216605215723475516497613749141740353956636596604317103363751174966945806132709089889373830431180423868951676333921093122620172819350058308943416245258852969641526488734458009396476559850458933983854154913977267484013869203397873014517271929599631559098080167080188117574254064987220498983157003269816663275663974289923455771207161640548763227713205083421026361879686092780777304612541088025491960850237835074757583896833663588351082905129161404837589719748154221854170895004546938430819588190712288113323154831804122564014503091569269433488779272061760332019447925773276483700844301070084935760010819717927833402395438268644158823284837335718140748342629923680929695335419917681456081653338225551926501170419820464568604306313497149884873005263945720463123157648021273226870312966736128284838590773044287357876639427510417545486931909477493839537723623197968223962374195780908622160082010052033193337064891863015586587918932072274661181139374414484821688032128896380874194692041528142489254348504809967933986365264951973365667118526598286653523307808885442720519790750534296707237431034602980388832248982461760583900876171183451063672844113861799565980454635410922936019720150287477984743199894290814571790663092123992074697728823966468256001273620445691813402929896318477177590606373249912294630162182843515435674515026991440575297600380496292877515356557081640747404780357682785981806231891279186341680845024243885434139896922733334138463360051361041109515233194250456389371094926980399724571516957689889227692522791728890588936324635747269109216204201016256323993402979283151032697786480563496090126838137861549997467088852755123270947753119298225564980367517048385558534716642734957088190480386261469723613037214567118822346121167172463901662511967573902746161754787342712715467056033727956301459468936595931233271106210835191331228049283993926330535905199095620664933684035307852849169387521340336693732699004281224331232062962597020296785358834835334671469060130399523207887549460044084191231091554249481439169590747817957145936054591889917154805560902345281515821084492825385063977232717742518715804302286534103553202359235223058988446460970352780265403705960706277573516503900487770538184311125639537715990296717959649338589197209617750758680049253072581764339818509037513929510954981437575526553196444263462591394414982776023858009346225936970110715410929808836429537599281439596471298661959740351635417514739713574617422078911424926836426904714483245241510067906907436422549586697009375651731495191031369698307153273084072013358734141583353220560378733816207169163584091718454253971839640957527955078959572147826940644738705842662554019600651739473738478113208716135558781527307710285143048306216009998216178052135311221784732020956927821839559361430514964082485976398574977461085828799871255054402330565719442806301138036783806284817650579538171164753845024030006043736209986247098497935625932933161967502101399146126008773111746787287122450646718168600973549155243677079114533496147963652615598658433818678703429060030992601937531907675464057429788131095255605244699032204253794762053066595245936784349028104325801481822684197821854263980883049664710504561738758806647575590305927969140448934530986197766805978101312570537930512052037742618422034892900884000045955405467954912506244136326362761278371773337945179493716943709218184955434310953933151187580088364470822784726038620380210969958564042579358963544021159242165325069234845882870843604805840217951294108450292283447441345170984865228196749278327579093901237777708265741318977105176469170714601429968410149949233963343533322487411645142045572797067875595696762762102663259455540451411226231184693120267705081111246556411652545410099004397254452290164373649192262434847729613014733108141471391082580458885070054152131402696740667211404177403388874805470529183365184720857815301229840082556170970895609221161706198943531002457365685488053115912691975604136573204538737156482870181168503534176051378008404659671382440671505965411028601165172947134681122624073619930623506139506824579643171131992043940476983337946262025132371323159930534501382382346103802911118425864000297234528907857802714725788791542012186324040294745858420720815739795828059808327016567421350448364246968962347532683035395212423782479911445163303933048404080063686499806309050315319390415565553451672543845913195900548916916712278648336376347958771553212573896237691849348853119728205156299956743545906333063946165836673871475647163297040193499563963497752740053124785216777895871912636976679526590752670481447119399877703935305207278999519955651247447013813040361838987879910812054232463529374978055757691931029210429349872572544392576564221576837039676805783226418143871919986337911414536781221568472957955336008058112825294618151042555970262610922211322889371154347510228203271150238293611259467428762762705650266557679331406072239937041593709924657037326669793848597066624135444303054709585178080065856321319332404384842705545219495314889356484813748757438012136749033869737280348684864254732066523936873651669803122275176749593836961793396129120886973045068445594195373334063606293662822173641711284137889820551683478670914460847422334028967995047043959407932128339528355347506291346623288433600536280487033862793547122475016729062924800660606863498535839022910725663641166233946428413803777799545041931593120983133893389451728896882949659645808942900088310379259432357390128772022532903212321287084007073329678412520002578593385347704227536868293613344030843959067564004010886918738463818992273218891518691349091272504130093367768620553789712897234041839334505091927426904453879313854250816406387772406682216339979524264649245742845396126033524949897191759995004965457381817160285831954767860232879361248819083575463191609981607801285202370887953633237874683532255371895599354934610896005908467493033057904042328424952986205910605300556824404059717244273430270211586900517870914284115370434964031307532490742059522231660820670994541800837083837898032059102095996300893708684638713135420668622117418235132616855755393671261921429284973703556038665068988614313941700366546708036893024759191663122163686464345631148765851031231978565734326963187769730952981426377672228497964800367745255104124145444587365859569143343232928611753050192663216423274000375165847173408225145372839208537682029033949010711452689081356957540268979169514895753121772554527501437365773635930459699401500957432045517994685840003029706042490134822235726527143817915472662422313546313783293412676622675494580528664185331285166062767464419180697885428517631481360860808855565028191217241810390983827451195327264013875433843271279405834339494501019909583990402612372729663906599385667359113522318222676717173897110292184021613986780181922077027051035259583415601758660409922744453273126856429061074462978457797691773945769155726844253170666052488439589362748918739900511853180450897209754546261788993655070132111487219774682869049016672953824832094064854483533583418435457984312523210055915668241318800999603147943903743172918061723805622869895410134145802360353754744427856513607213989756717306177085446200823356810831950108067315425842558580474237181229291414524032729767880215074655613762876429253758136940489138356637574275029252652743454478201403299169583922034512765812715660049289538991526861262883279821935155292716614982087917017756414388348385446912276402765731520127311720019176603114779293089587680441902310348407810685433551460838388757927543168073880014609711366279444542683944788728455805883444324387753840233483686956389497752421332554045887911396974734412366781364009283627004923257788039128264847451975923814601607007541569046315824759652797866955950411738311163567242584824685898671466001824702450379333701607736512395397723976253187396203969099125612647743767703690249989788413655140839027844739645228783538245937659475871824343293379051211793240766291109609529463099198687146236686110421733564497722468470204163381652377133268262888140381763845299058073360193805788308089973122364159169664835681459739757448785947306241522722778632783323720427420141640652067332048874271853072699121773991848688025198799757305650687320698462136587938014561606344997322787105785440984597539151488201330213981847222380877824040816201942672125839002705925838438363275830915769073920968851604862368520596715924758312776773976795395358049906042108677784127377675426211173037337755072220624675946059034794194923087540981138319916330778169493438019516506091967702618755744538520576772881072886815932612391627792285601850680896183162123652145017918346320457916646024138472407570852803362488006372821461589190189262564382302937443138373136572065867508911983418844055731304205227065101599402627758031596650350222393213423171724383740930464007038672402658510986298232695701381415397307092231368996879038748170545287030927321600554682412610579211986654369282520432971725685954700414590450432446498539689515963090359465558469733654113479425561450444119225321386416101336602455914884430845218726025810909611151861570139693323248964217069047055213788921596303007379288148554991745862246873417425992985623901559975882805397714162589878197989974549902512590793016556862865481389243226232307831092869866467799708648090635244351209567300931279867718696205439062908881148383617555888544875589593431283539260787649845669698127140714092304037152984128786942639665144293099026961702682154634383748597693600148961644695021461620057325534228785510339311077706408982891672004218488542090181310554933428975565470700566437220073382381246361041939566535012858013028373230279738060886705817731648146912465279643127722797735157997233995913957232951665760112262582649423799753277314452125591315824436843733093852946869108072512308625355868414494193868680920368814402004169587803755551512804045837179641848326397638704780064185294921539934632491597560856059515521091264725751765787205830257245840132114888373178384833844434350539793704905807827759325860930594177003525841646616473671769487528447542366771730462281574018498735125747878956916201779995323888713734978331591862039071709581942949682709868598717664173496740840464163905015345109448863176365639017610432884280735186604207007352918302077268768933673570494218581403725475074615685885347736633718036023596350373026028411872006551331700929046400329957462827898767465214180211525727066409066307170749385141654661031141052582602778775188874343029617959519374743595974005573637762957209333769927181653969051073807077466750674627173143046360844055938613076982453940827380257355315874633049236465960288427180575291297493013477414104281087456845588240908929490092968333055122481752802881716503476600657920146941756633572544011912040162007744767899347995594621044797321661826503471864203925441552238501695133986417138057974394961208495872506367603116332202835832766803254939272177516782653347855657668427901894125385394478421393638219389019065771879462833590047481813406818816241170990886374097225019757827865484305038449271907647172731827373646199337418346759552254103093912221049872313832961448176230750081065478097945681826255727747052223474864401381470292656835843347062627106566896996122790910988316818330394120076108447656217564401503786254472764539661227274367411494023444176379861608454719982284996086592095571486557902133361771613911757477319671667834447643227460163674835332440429754918600348526252152528324339664948796213295132971104239702948934029157156724131731886141943402449347006734855277134934439811283418620172638019945929135015452118140936050150197140881166600572434059624234484044300914128550607999666597335976940754743727542980255168534572233696080381803561929784569959962945953697518334702589486547259296864688271078298938351244433109478447013109575285145165775800652638872060265859390599331619250958876484892441521439569191138705247837219184477468980674680861300069650337190221036024886364842230656066703828998482024330243707750230811570922525474547585293547508750865454676090085118481337199379835367680595855887886533376718875270826238510295974717680195079265301078522790588299410198873717365513164660179237255787848991389852786394885058675272209680792489779429804680867304633787649556730743472067655650505070636266257691336553971625760510302472562857812926479660828469211186856460671749245103052050839818962629865931222450173902029968668203418205331307283852986535263588727116950133812727333240453546598546214419429045955845226026868867086734916758704955656731616744066464217940914485696244982673762930033492601947302419258415341988330959252587380601168429200278227771639977631991417107503097846419850019956409033270441140625995442013758091980528641933582883479729603900755795186571538118782622647805022969843938389796212802924686401308885046841191273744919896555240568272569389339183455660488718518562511000964509192304739928885157037441004539491422101949807220451553950063691310553651759627475183945788663174646972909825165520900770127497965510332615698744859531326163115026533528146183531776704020250004186459717926077824757828710709605734983347245229646329744958189171467571582489246988605913378639334948656748016582253858857771772129017638484672258517461123080663177544584765301854469817928256923313249055185306760682791118189444311664048264523165743431061461222048594574655051956852200099235043956865297381039772118257107974129598863673329181490353748487281039959669039977915252821690011261459393447630152610785495706607624478164444453111815296480010907101877743865727694528705941069676983352776172036093541461808626283888605608492551821572085245096913720173934417528140583116576144750895785222763364693274065943619360846259256656040610025604044279266549851598195921540319493858029086728901456677700673736997025616881890667753321443742207953206353932201176983081234530509793987489408271158684088112216487274211516852295294963535062626348119210402990435087432821337128713709859170569303317368974655449691524816859630492229709282759093009794095948275671828565449790056746056005490648733805284268026561116505836213630338889568032810460369354176464833914038579800107879315837714249691966630869520276123062956547383628307869463642755905633254913830121343051568217033701683535706463573396900884175558372424438097000875643056603237269770710174238544199812082064042497318503278052328550784105440575936353993765556967034279144908696207651479194195060967279951542296157839827835553369906617460794952919652970142913422944091243677450082011221240173663594975378831110889281775938242214633874827567653020478204405662287589342362504502431073015118703976650235763285489261635849085188921338497610393565002005532737947741921803542775491284458088890607838146210650982440537229360984226869484525889053592585723462248142516582796803716477095057056845433443915862311121718997879293519512476453812293727456521520022005570536444485583670705919464664446230407786781170497918658989590388110144054443276751443811119330877109375560834822744695350875054163850802177706466084524224495023210757084257331149647793814589987038763909006559135545005351774131319436910814048863504491825351580653654634525970820095034369136133927124600474638791396069198788613594731914551039735090417571492978016781204036299410340162362964221161533711285160551559670508033067113460677504216586923545945890734894765609469107183504051368834373059190611170408983490518940305922135873467150053073058560571678915322777160022212134263311737937823357940490473364380657064021922259821250329364132107489126050372837035968018652903298266098099769871132117826764589708982185728146728677030645394334665304869534938387364069268834757358081456783539078373509565669182714317802241531342016795372546868874158101691388483300894100892672334336576388901255800414133955778977190861859507759134623429702537428212059572067191144800561105379481504999318412437881036678835305732380727318677228533621017484098910788610029524051924603338324994334992262480057273076800613183472516454103140526890684913150137892109716520242128022343068337007772191544926303056530751965909470959903617793199657631706995088621025257522743673246875990844814066377100869178296828133357475731639257298905234704810505052285276129060217707202897846629859956792944945693042393818421822766460756116181613933502793674910000235667573116882208016636918999562741640032102513331116943911999290905805150986451279405178902411987144546688329447856559138409070237825249184819434034656060035131859779588125755611260949436926988200302769629030548025495611465003538578671847684036809745640123900760086006065684028771854365105040333315162634884763641686613508376349210766669567116008707098146062728239294412664259074540903147252943907742829600392927325928659819142502073915298752196193469025511671747526649342190074385658733996319576677008079886559230228370945875203688539629460479074522648470301212894490263690736442371086046941014250293124860673258516551091150550055634078735940165204384829113381082012740103027294088950209241962010613569950058659124292520707288293989588288355643851284101051083679150847555641946751365835132002740944997948323590617501794013444150365380718244811689561695091535967034086503175189469912173367049187735237997214283036210180412129891317968066430936831985711792050328340271697066151116163089545722752638808541448025875690847917715866861056051465200066776780834837230778187371531352050977243703214293166222006541609816684538761818172495148656196177133358337469630852661853136532983064963184616241262074337138046919865239907974725645437962930157298689512013995142630387608236789553651990521885001984772905258901694218571208398467340613226560261684835111938822409115201225477963306640560578506683738937451986971831051911873273995231572874017048670438872431953074262359086462761739748965297481415971560572878395245599565855270366966523883204546966249091304087584221586743690783092683130203946861851093176822324886398552727661756555061825419544214427961323273829517852118861008718517095350188826162817348487368468287645414903553441094192606295665321314795673157068337891954921276848818449391831273641597605540827042370290150313891630644880705983769219406949107304454066069939703106614944121650323529015014802447172635793818596104313859598188775288071961346496529046792582661331534869285045907492008214738851435925910635287888746242295150321856526881360309977732980832044478024332350306630335697170397800032147207235432665520813819876826486312501627835763271349971057594585538049984184666434434063612576736372242586463097425995016188393228401265549473427792006202114843870525630397181037959100509632085060175738404385026987000246696907741205506827257753520470774970351597879615311792103590839923572863424855021256361287590988078171989880309034591796942800420633853133132818680790930084236964710818795130800548547956088086362715294509118501282842857070403547235117110707636576925523433189323736153912148562375001705525512692588194521933695875221244894820848245477969581661501986012805208140404898657582877543165820678097699455258229430910582748244025475397715482565782152769386163322269522684029991059385885634225959329236493924000799164393496704604024349684829826574223082794535637922735588104162722475045441136617822089402775272485038049453362932602761593650665960421801786888999692712920444477481234386113555757073599507908595959631956452781386617532922051843261005699791488740676555416567515175373246185913030414050199255231079546913393529424296700042138627446502144388867653288526524776657760103943324150164526257162588489994471937695830936495748242477920359194073637308300719761229911091539629018666422329868211183115542161041836612157244182699207413509179520203125543836884307979267255822491868391019268470678801274681274698594234049240650149348184649258626551576641014193322154626443824125370414422879850694022254173149679704830306317894663199110960791184561636822935998190457380141867832993129015536988910471497200810853043283897668385651136142660684369152560725224349188120631215895533405015362766079033963577418464155290589790604067803709231275807187060256140465278674692432788442524348411436075899919790456070054804472159637816112191205374563360613138943777558855908174164268580893325624772691922329284360861947095391224832590464404692229280426133772365418848111190889007300102162826147177977993769928975250691588141031065447536084855032602343191493751412785946896155150754997627867719353160002591560603464390787869813222359464959055667930032371599043140482586097332781323980054966892002991467596764192067669463745027838954960495459917261660320055577904143861428695040476954386500106545929251283146097762834879167065151306888610052188240260606387440464709440015131747606766856081796071820882426166280982108009060374912198492029867287060952053158246275618713674563289783219942136279508790094838719751655533267241190814351196459120579011974572101097067798338113159817893597600206195776728699914972663236725477097300864795472979469025086971587494920459465419352953020731310668548422042170388370558530917855750480388806939698723128692231419566542040827344817646500314456808876069984168027593675131504571487548042610081262027081518822032169223460607642850066990265081894746791805613092685165538417415210737848593668802408792147846494543044825898996983705055495625667192621829364223927025889296468890645081090968814191581653301543886727245647338204332530953462583624763961982945694704040982387383507872731519465031284009305857820502039645945566583110397654587700238272523384092105243846594855142783706837141186471773785524137908583950474488668334039151579291014406322859638035679124252128936208272996177308488896164608806346901361666187370682779716601227095300482133639836050969769191063303921962364728459132929845296569100104024631791414360170052998806873146242158235812228583840122033764656250162253180468584663557585198201208934408180330882830346248577517737472827619456982110779161758860130539509799838278974169906767622909809206104356580583893839189882476745565998153926121818116727466353212885169857095976132626153746872413319848645612379684262366238305391159283960133917275644132640671034538342930972889356759591571561599568540659073877875806142086051233640832847342798970953475612536393706478738716741468096079091301634727197137076115342797872281311082029219020687859548541413751737994500241419101845911133053349307808326001212837802911089526582454822593770964480503672057961281012648259646867259748901137770799846181114214466929483905020788446050662182716824535608920043070201992444708171738442959864052963186241625656353939171776535329324181517212623590147090630398750293513419180989299379402886090644345696328864991862507398914355896034392980140393024650126278786442257722219308965350643264490067524006692312834881446526592464984221875697304201336498483482987870576058011464418860099458769604320797743869736371395080387490826459615351667881125301130882423444124153319660102095403911631857970512504754447190130546391749319596757082706554330119477433532448450300345150963127640557994007279243582263079437223315369851040261796769781102710695168894243141588012567672253233575998670624130609795428003902545093216502703825825897026141569956691900052686713821885232704522763485189163174405264616248199857645503679362918736790895016878507570632567375665964076972868424457818965175960041072003392106516887113788015669668148582810875407325629527018190943692974489098242622227475715499181620519887791565713432550436413954107138434980936649595447981483090789215791425941597565122073452896453605150114783100815484688671521061963639551043125180048408607167081094108062168569738114588705020917996239874826872453097945471555511068413548523460596300625283023916127752174797698711809297795368173752011170181273916514269492727014904898703398635431469775492520466659308083128161753119825166380413917411820477520003040539309188124834078302953985530495074975552087144938626163500079241330867148585981542441305891300163230671760440799627885350189202269386631707189337323680700595705695597594110817408217958098468029544850854355759430323439216579197595958057782237089393360189798930662978568758000300762031656588959248060428333006490749517859870964808263664636005308459268256439053408689471519076166863105999886037254566350622186312184139019538122426557185808899914050814261629145713279950395962493089749246438009734430033314972275393496032894779619637721072033576350903142994288550592249373445184214809483642320455590395670899495738561433243668140621742763878313354443815955762548677648392655444097025657166564172707320064316723891790876579894557056163941127535894556788864409428919428232343744037676555177339812521552137576744158498822930960646556759496829488915314803500541917512302711953234563799516824430941054029333586932599900288942187624960836980711490676519773542157986566696326933758596584941609240575451114154420861339229568648262193809329990473298627590441208905469488160050468546351726882716636624837644825789572646879192472824417219457450772654822617831097686806177783315177513669976111612173520512805884718701589172014999903753781040638523449074163015521580525698075487880822122805308862388733169332161434434734085289266282314086595479396011263377949656255585401712432923406640853543947812807392761112537270507396786349932629287001880426450682716513927401401644529439049168280593383508145424094312903488148455288794124335896228365222554345744105265840370216619041604693536007713437234555118734611625139504268717315916885733495129226009068148651019944442400532619188910180936784650507605831708440505674180163458528580140034477196201537908924572595622068975907105160720111634911446048852538117154807932494503243338970196500080672975755958714280083625058616602020613376132001897976231928103811629906896409415946441572685105051880583608531040369841917913535156112986240837576959846613791894698875526828472333303481241361528138304995234630268748523822939771528220733987839601722687850457699318689824102519872469640851146425651690016800204077356141317994355107554464232976566758239419305462401187110731309998137832076847239635747474127313357006016475352233913653665764314099580130833887611760373605553046065061495013104227340758292235240979904135000262230525925238406407378347523284963533397152797027266101070742692404153621406663623773942973965659224662490221745806521736101901183284261598272728508498226689324978121364006007102137182970768379690386172166990632272794724528116319096304623251090049014965424469985136198315839470107265550669389741983552577385094116628622060267999259853576331118133549744896335022535322462056068066208944033481980593810460003363166109302969251035146429946307768621557452099806301031099127475289678875489541751111800093710378218382958217372960553709182918088963244468438515359146345438279012919292440319641938410907282606018859208289931321801447524618827930714138127196637324539006966454751256286473962624646345531029477576843724033282894614895332342466705402757678820597276517883492728729131875972934373237417423930750700576313072892786255295087219791283510769064793452392631088979045217243425468877210453535098168877432552006185051278281406110107238437158449414939659445022810780118977217293409540381363518013215438574456527608820547447996903335717810789748037103620700430685681340235049029139253104929777427360322164831753091434429340546387016799450754059566458865941683228804238911039833422331726424390423239630975686044954786087129171900658382852473592568276142145988189674560931804572977704255788455974678945198862529495763443021142885265451347342627709368740092346787363426488909124776512622425691897719032391531417067479801070228582307497555356358251760671554235379013299644158745870047834237128979556410507780550898803207305013581063613634667186269930318197294722991254834341118394985894261373472563089491536181622975151832153788410280030327666524934140580065887564259445756699584180721737330377563896496219051181734426689389780994943759012967782581535793668535534243458051905938981003003939435504933245636689519457592490131202180526359306141987224010054263408070652522620951598205575659066710936440314958179514444400511637478481118071724951318789705449585100519288649404547911383864027458085731671434863568669957500560672351879287418649935765323003756186483465436201640459147679226752370923180793152039495159134270536771355558121265944046717163709671245169223234623581038703826954932870698840011260097234347863755729604617163974019199764729815896904129119763959780355674802076982019960224949689316549869404073596213718943377943197659130432751764347711348535093898333063399147998432464924012737457683183774449178845315902707011218587960459572279142529762725944890860943821195050691428139078820316224561810527819138753785699184282593357365787277703110381472959077494448161321839433954708708749007038803616617665259486306620806083333133898953913864321630312512527427655561778920973744857642760741837612183527001702794430194683422462047001168937175302514102914948046486908750214286444113905054411782030880511797942393941435724687161455287209725287024371316304457568345027173270910067522252082574539477469637363012865253623957619409995001854400138140129029157877506258601161520468143792217947526960819576535059446304802673363690502691872530809944018328541448692251948352342852708604659944812124902078173095010983971530462387671896277968494198037362890334040320985048106757470050973390895898261717873040253418240550722424377586000058433897532749134217818623804431537600268043099620679243947285112909335085021141216477360362399932603336447777796554314553012938800733631241146007554689153035568828165487847576344515118295161096663316592110399561291475463945481034491709795953744573579349916024943327857972057094051035345476411567202935706535620957471336861433835018520427779567820607549574027999458486951993170985968180715906167839015898546892596255407936847147977889882410002941225433661354228354231004562696462034106384898998356207251624944587012934618898949616008612112796751495564967925123812687579953751047284380316582575382332515657738429633280307645424830597553448349976767689238163579229618957836780906592795215840540620401026661965500812775558873522893330227036412038133666802712264113490777908196044353280213921825678405475006568780179371709461216393995274604511555226125815114279776319242573151346061233008293744801762037132679711233432000134954945864751292708285992547457984016379039201119132711493724217235905590220086899940904432813573054431682124196901407153456956810403984339354386856189204118154648675236031356260716921301049469053097324792547238165244340251754202596429953613869913429550158196655661955360956501995017802032439105285489271301556873085200523837952395950834273046204164238358150771165065817044190886934557622314839169387519602631597562315056136002725990683285526747816213769220970676215961230959151015285024693522542192355729742539216851154168595638495257576697218884337849619979360378132797762352308876351809220844471021856567358843996392098715943335783805041033127842740368213888171924100827804697381184447643044088467397411203113471691529850607632889176929676425487619658745921259468343638367749536553157875510171691569612916555180493343210773679324455223602622681534503374390782108294143315120545569679224844161712792732613889076250963026853184552835497845709508802422797416496838464530542916268121777773131351316714553612818822798735539997516393453986153636964538110403007210859358992975113275756530216870149141634895901337096340567106565812355371427453289365599986573328641338236936741646397371738810295960762752917711574267818346565392647605083918388172571345402930064981578140487329061047561686200778268002211334014662041270325417776827186100783357396572713543673645664850864164088724273660616624253968622539111131708553169217612018696274722424893845448550796796734417736895465488389270689412541048156382553479719338528338609858680555565999336319004734343083728074153868836332099964771417708595157404820533597205443559700445561337219013232278592718524836927073727186008120889741627488034921143834799331860320850230608928953621031787516175043231258540904314021844712257462400850946215087274915516244591045372548406410222871182256302512564125790711384069879190501465395733077806213425401153711442323093796849219465456761872649287008901314125138409331165603021139728912407190199020595340044134185524974360975133444539917164597791546639163619989502983943384424226498830248498767895406990745824417294880968696651039490407550295472433115364082598240837066221831329397296646870189823400299187454609416750328647544888286499617017884548934372837436344385659322931328003326597703598372763814395658414779472621500525840911709646223278947300182737947804430646721165235305112492972340226119890414091832638953343571516948605843142024779164358305031912187943931207166106444942289953635363605902466357884603870852957461134756577478180288799688712581513152186830660468825855741421555352367688622764219164604467991265052465188398058225510668996012587173030892782450690317540148204132015708649054518098016770429327584573140340712821833726842815973900610538543163085743415093191807647059007041720969667634873863624845241429709610699414654613975861400792873213279605193886904698363517451434779215008466456261283734610037719963464339748802066927307018806487707505553055713438171377205544073834480899906513145260682154244779826134280737530407099171472477026219180172896552844588931365778846331509058977811743639293009976581485755967757942837855908342464475604136869982295894171710133273704249744788633263405110861580728176638350145744715178952335707749280228521720281863299557328368484579254303062642064227934099987862743220253281837216936469917703302387939992032715094753340830067157462658353178257650685615043882500296491409271116740378862429013850992787739355553294411337000783423159830896465630308083785503459941835830729964549627318812701684008904487413084294929495529509346212029082394567795108952954448194074609746793400223217313442898961087756311615115684391969451219238952060821402425765385236896186554758262380127500822217587607833616212126828243932903821575042287377658201922688038230603455398999709789611404032742437780774474416673363475453054033549873481843985723122720248449782261942651926331680697250324393051917024441433616940607428045877691322401140939371084722928409411334152113517994194765546044677724081704187240680021843814117735784393294421043693261332667554493599300359660729325507370206431465410197525815207682676332073804418833561063276423445486272966323403956742554869526476199316732773572734305378813112848027613425035896114885215465493826499793389292545153502536460345909056132599685859441807793042074933928264682647082607277371268016708203969798280233582830765642994844286931756938149135637732036452628623901744781639760994240664380894001114284871594041283220149840891238166497998154106711065893742756227866364053631906065514962678455750781039504018200602263136427722935714861765969534529109087731995255928959993022668382158680434565250157194169083341557063486854312556529890365485767096448833131929347918582360874289709619532567537669983579331827192990625656844076613717153316649492321433814533234737990128392932407691696941498161134276015982439475488938881955602663871605820451858268964683013545435066764884236211292811736615050667741407468757709792251097004321085080660687036982705336013042302104085470215678418973914698415006148949313283824977041516916727682623197976968663704158115534255302374577167267134611061539890799900416476886127893501069350225931930669678753991157003839685406091734610810825726192787665436832090895395572474807700868595916639656389568032038609853293216839365854780426898692740756780956370673730531078402693607004714296894592323155427711440373607586235848357474363663650863509562389154224925954729314098802950934140500475354615837929826102501927780691501052262406669877048969916684867663923519438777702348738553819019577469250928611642010067074236464838518769334809805265714659849787467147908644528262243985620144336704104063218856315279998494129691303810367396942553658050696311672120842904005509521203631351953488398560109601096233067057083816709476297156917379535831111705126671260426104675775950021297974751700316841311714378412475984194284387172733005336190174513326437702667071693263321706948627723394233182481094818415763914759105041530540067961434848268658102106903198601068675242293029561397453152316755008394658886116651477304336132875602182045550859351742799427084331821471894983875010687810377268444618259312165838773684496232281390112912536651585812700963496787980165039473088287552448621717265650076950756986234768886033992809478928972512566334044912363196453861101879883120763372310408725991659817010804520281287833052306495325026250581391776639467431673680759221978148093953861584127356165674372160682353258275582009279963913795165542444543411196134239699771823237763922783219460044894893701975055430728290364054560905421362867399676513354792664592924448230403457942594368727614366521221843935937853093657713136305989133251419167732092165795455136961333972427556307811232473405332076480230118826151830845579232312497578492838958085653518994142179231575059133965877324827544481986647594599533233118558487970060185857746260080818838651352793475758625103653245545070934075496593847758240972239398674834732885776991997676532337208723549231945225058697047626043811594359628937074109383256033160652104614142281969599091253841644184850086573065961142084633470792767984277998027833036250268776168718673149896849847605369810385855879795250581183899327598266079823277348096745736006674166710151350028136005807978923566359334695079870665217498703385907194909816646667722350797129628289532269808470068402137947926014193005924770725217095587262276520916884171478919306415152164858472788450611041750572827204699841845849037621472305534331061179249557029261271105947358883688978945207552451331476389572087809716031101960011996453638410692748453721456951435121708871080090696861095458543463520373814734744367405981213403357483697791316818907941720459620313367600448343244608845850908194432116159776865734191154386716013287208718806248943607963677875708601098396512854119141255045460549630006686265576848469005933677894786419905932799758754579522221908322766560796293724518980004043159233853115570765981906317873161918493405603473682048946258629108229742302849718810754847821899969514033919105776657171691222440245856062261070409243668603927539512355631737057230761091544514843475706084215446874626410121358399491650067864564858330400102519540094581402744341761831672181617458885078035290634138376153826759722107949369986937620939522807516205372963035957931187439719639820472492162760191308965710326838550979934156942174472491805960798706910362772626573093114469721369397854551059425922932871921732488604664074802837452961759571804612272619673134634335796937015375624397253838247546615808275793959250699320296063698401882570281797212046489786301396657970038852049494946503859039236742182990497368362920777173147558260422196055212926045300825827370916019579240016999125748576845958609516069223449739763390320181968765790079838177824372527151693036737670488967806963223127195351784172599846275234850999549799034631211813756422250193364420081235883675875108777952857475909951844935992909008320966913055588729050892700085236341406325323119252682661618430252218251002197427182713324192831926313524285455291770149496183723699278280235519724244589901407006151831847013983700428328958925625805365944385591145530917545158639096374310804255807876947598626815580679719643500164256513137213746103134404715533826511001867200574138972882155279350647112250511425995582274963097028010754125558460346419958962935812012640974359644700293371098206145323005961384715353787629898090804943614079775638280601303929648872645866728194875487612787359022211754349876700024618496229258990067112301669327882841531912075690030389749378022173615819364832358913371686735776296275475038781282779328720026145661932639136272175128206173469752470084716312538970900286451796001927700455862781895467311240206720407388506815076355822976183944101115047315502535524479450367975164267409943709356866207855936551437562839686555059543118879946586869850853476074979344079750141839687606954183944159362058119936580932108873133316238147776399816106892749917895381687410527188866850160071408129138665880343260789617968824558532254308559241642687522434717123201505404423547744459749552518400018917362027300746368124274866534656588293074887459620992969447910596534675016526426936761145906669302808111639741027163572659941881681244749004571409367353730751661599911946902539245437752372205107079157937962469036811665799155680273041039052456329189751999501697310154690780645055042544402584057203151446843858102131031000112779934141155941567457495057212621149525297379552825508874070866195754001612006474543155373241198372408212468301937946319041069490046204071539544663362986441197500566690271891254453101063118380700139283805069872905956376984476571868170351997800592362473673839227810181957392486720671853949821653633657347633822739770021891521331952300016372592441914331632079911415809155296693187318583470335087244019157763707637143008294777920404279465546439705833756952341890994507940231566992609776260006876480831347984820068843268451508447268026929285259460225244319673079415582418772415608806222426590407901506091234100869870579649697820056494728834863366173472698287520315811413101628307804372790668174595788341678145282222340943956940973574141370630528205079994192447696141355194529100997079005153754437259789613853131836325535125089006446174371099147594141898636789667102562687156093168491825547829315573716037892866579767620495072924419837046010906012426379564173742515661094231727096311045605985784748738899395940242073124390624532483480079663338544128862452810375063280400597833833415035995418217072459388001203900797058732821437613283858784543711205610576533967894294250857875763365156922075599451593513626628349496748714826878155665673224959868206991891040852340970842865071936128646755466980103626268910605981797983866045326767946870583500126528192050671022395736969804621147622600856609870496777911093302802756195907037957453817174815044404673692179529951771454805662894443100868925423900964403062973572611735340110551736069138169441783458007842095255574590809499896080240642170191126511654526506853552161714089949123539486263315365648579120684575989725712454560205318303719186078579889998436751606462731195868934178552732518220896675225837128576000790113834913860548270375955285959576732157718858436889184578365234645016311147041016593335499329021611578974886472626669351920150777694741199831955300373143410514385691889658034923862042934475141580258067651096021469847248086974736086886872646923047570444687821779549874676189438160148588883523106587470046403901972965229622858704015709357349430063310152343783411135901887551919507237829358084857121179156621989365412310211545593537055862241974417049116155641367095028306453000769590657421718887286749006025862245409681181267551008570847506769425222642434622705630865154458367703136518600749252082462690493093929164292578366053021684020166197357125448932642959876100908027806214290518868185148474414687320055332655876679356497974228017419586164575070081261891961096539801704874257278190108903319793447676567184037395169733459114784020447725758859862936490339518395858285709997557364500270198497108618803338867564697255526304746278483006220238063484050048448454101413414891891721751833608174388897992489410453423820856262893348549421116867236965981534346726365906080364472404962130426435284588712410361208951938859430794011148315234002880545679280968662514837814837160797152021362936151079557066502620604104205362091791491878838583902968341340759231221519980429289597006169661626281976704645639335853435494705011823595831369881489846610525002389012521853828544729268917136857915087661311360988920358800678378289546570374299728218733206766796635988069226780845477291911963121341464681549591905856864709672494756909205972024969113531745743749536927135709221805661749885272142006438404416351934968721202840427555118005256455094135658205056568734546628287885810017081332339957190753622721298874959777373039273728187178743266294916478091290686924323113413082880818696310794116592689066371895193197504752335765095731167047789957103917214931150977556904129672838082959039298144953345599099179855586901630189893839471460628685779976199429586658621568004611908694702559606509996092659215117299313112469886542816624023454261883413193926353993257523780928495421985794185956458383095043840470777866338109486189594951790580145797413741384219444761425441996652776873732866660633813877496228228005141818996471159958394479396912627943795792447337574469173750393470774239120175877469711368264971543389952898665331064804562661248712116188762307252552963810362856034006230687061788771468441398932155644108070435845268169536608547797138757435342970945894873825916050695923234356218710642165889495331303288776280110028463028585832700358690614793864941445087039840614448859104605241666176219152151228197802489276890339874963550450669618471023553193079074158202635646466370273534572473868976033883563905959804371980448627401921611307231734285923637059343845218554901769990909206154990525481906068565411851025196963864797650635031602463277732554186059359855788616899506409890995326839730359371926128948133517586711326022222430203196611229666916765241770606191312476342847968358439268879593701164886118846533301238522289235245849097162606717637366873701452569219766821545470810622768707089210296818253891736316976173152272608080289248299743241323032882303442953941592373714576678196633885085484293567796355555773231413045799469942455613042001772137981520268861746306144878847816451464951660490726904318920822886048230249347446104131945802303570460685280891349760161496495178150091483809505786146956806743397298480536353613138250660498976983692484517139748366464476773071193127238880710752675294649659246305331127882101994600053750217482732344659626498312053299007990917441989735072475266511189242042928128820023410564524109298162663861253441141453260322564682345892888577262139420762384108836738009099948691231452990000715800455599145279277697398922650133408542440030142236622112033636084518788605142498551047757604519681510470251001943229097500449885241597411111860891893125465260674049180981553376518993395593290087271225871281048858635475561262006987848483684721357020130166814393185278623866623620504443072800208327429786251695251589671590745814139235387766330068560845036827458456312343210745066344309593847098062902283694441382797250001076197044591718361907333692164451480629601864248737951062292222875188152287249169598319851603674003970050831741896829925223495135573246612383374071927263016776656303250638459617336973671988035109215928335766214839780098736412845090437102805388194486721274683860207411617107333722400094906157067472216335520310143343127071027159988273839832754965267833384869501719420433888621370939202666501790447227200607007794597024076944431234448295781626822312253700091315190068593717829926137683802936581614783668968673205446106924681475291199475883482274070486070255140321012676959034610558751333793739164652925129409639156003117662906536906058411121081335020478013934297818851702288947897819491656217196305580556611088251839225923964949001627815987467329166816560427147006266078663694886798723077592195381643792589516756828780992691967622783686199840095656555043500481196553756434735898875696704845185429389544003893212837861196842858567679493418177352858872228580555396849730397717383909257847843030026222674495056698538444542408696401984867474191294207579319257357709568764016619802924628410476899585799994965192665324942817921292964539984230694577075896820675561836130968990588984984523081900000093976611928509779915685454902787907649337917166140701586416870635039224396497493320358349129229577614528870689331091618452193240007575451134980081369846802573775303858893091367318996468717258679529909510127069660238094404051294094093423139236882292723539407674198841568167949344460579697883949024011115146502924596668101455297070930221697106448720797254924717756305367427466386143983881089329357682592284704432642337081730173465223086538969476389224996428769648515337297708135320869624234736988709796202461568194398260218247337221416450782509052502525969020989578610566027710115535687789370363302614807095681562574129690656721670986542684136492980402009981533821176367097452567893864426551823849493924585488826965613438368291097918935282175696976900893296014594980481811515069491281133115796106166241586584496792912614589545630100918540477792212925025816682914997331836278875608925097853909305997345972633574525746769378474224305477702124593592941214233126916624854313707768498446837212372208206661382056346415395993376047520328259573584856022931062640999786853047468084517745391641592907558771607784168416354090428998209677024104003419275664385704879999123866668604882253792604332687536236436609244133593498895156198154235169732773605369176906868306860714085407930306089139389972919075415663086072282102616894650453964973886151390881608981681358151888001239790886182588936763667385901630068262935803251445836256529940683554248304806590753110409963716212120263485000975214331530156989805830205752705856388003733226125335564835279010154418677260301219667827148571981421218660947443725225600784935232217157775964673678768529114445587277435926595586231626430478783391992600363204053428178595845488609262522668434165505131708596528427227524079694512516701249604132498252493662030636663991909229085637392997113249620014193451959491372633050274739135445857246766715438688411561806462163282392767686741114061656311167616684963787048938942541651736508352021846647029227877248263373149181611700289397776172823314421245126131906371912231840932092554289905970416952441347656896446884272178464752661990209521133746828011463391662260726717221082280066936475896915531867621453216434199163453511233312451110811873867004655364101439789144107935828653946134335112223461247988059448600982689360810627467637943781251535084673678399570753940029216351002316173223890574698592801595568932710304106306522888874288862441473032760898990868344563111601079795158142860767910863775433537171415863702546392028691025506835680885810856473073830932514918479872371558021145647230843970587441711951158343961000453393864751403821174147126786559163536715185455068013909028652304918756242888341069758200539584705531021755652396911437988442152582894780467447199364594180348192720667227805514046961964338769034270428543702494949633366896157356213150716607035448470599047559494755610825892744876774901072853849146252004844166037958762357644276691493269145324849495116717759972898269908722571897956587872585712176254111796236057641187522032883519692356347441529324498646614325930897302842014065287985256341550929501240905031893270347789168973504063326419729182028429355428101865159370088306632020828297956490226082207944117783278280813752909723530122935956613810483225378051733200125856201031945227219973757769743590108117333504669738835768435368075252710736496140278296874612976720172829393630200960467491562184046230584978224801847762856570422294996652972179495915737068990333760477026524737775276742417048551927490780195198909093544759535808904776780473896494680774177098720098476726304822730788445720273587512784901653769124147544814723665611727019343150307035493448912008819281778521922881302299573542153211688706405881959230505759146756294004744430835501336094307913045179872778568324711923114523675666983377449418257411367328481620902202477655286356970612528200124793996938756566467519102327897738482526317912959084296165996186978014203931037134150908927840851918075099843294289793670413434260639173935580324372344935125597562084514886178259660317845491392823621413765464508391176268262422349996681216490237602796564373557307000798294867340897006683414870247371030280853125120773797430541554672051593752420804604728180273069168115489483819069556689468619825261438698198510669767588416118288274034264891874787697422600730035825860454911616287157541994213802447117335435555578325156814209072572321031564106051990956221869265800412702197736937578012122058333351735818334476701254933742508228283465925721602228752376612934711427672682475532531408066490128020817008037961228432351386544990271194493501985984891712757931636998098907826101766522678992996524615451514700060694100199003754348811882306410327078047754555232235725088067892545373511386722410587765932901368367893718002392182450604714498566753998927782672220887510987335196193207405812326143248497016488979081936871880433859913287223918374592965631674748374799072331472613199761583605349914360455697107635845279240979908598564128847651366339207569682473677054892863284420803926382671801526174292284322853912187019158500106506405595818817631395446605866216498709068636209164009295295831858483825928076673703452372340331003378415146374128568011546078445012302523480861063218632038845965868380081169738498737814203214136424421774398626030376846075038433138554084108551031419160986436225867098825132457832701913062855482415824833477755677008708146401381323078952070296299687580393821095578592989876305868422196519197501806831250960034071213501289099762184038143960910486277190597068840672728349263592635008076750402692282457715341842597567687667916008161473357700500768469096784878205453016462532047593204731058822932806411679782775003728811975074374582355852755535738750436632158844248134313738527518070363621985695371810171033206206073268375913579807297255819017139851892047608449890621766946325158059815708843207303247539192294444784771921327268645826176228963073378167450322500223699780160949321024019047782989147396060275128920528342399613162238529343656360181098395565438596638892546456153477707641537449274308853037350447324916757104714131966295646110589300743692925597986361074584675512177728444384979710106788599124020805122988461198169712006008054978569990949874704691314044898652415514414535813930761677205687063165746927887036442266430746657260560438021641405159069431571428226013923100133768370057874131895226914476516093177360619101147652687607196272357215976915208399433028775393185998211857041052448400679439512708878317793355244559086751833207214271047586011683451916129438656122060998313713185372173870782816324160917932265451842568166271986084837580663983023008567791084785939442035969100010528805601316202841630252092774255644383856845615718388319175480667360107245966551495427403125160563775153699051539735291679071201466496627541055504667901351020892354343421449794936350309199670866235568684572228021284420805919510066478603515538600377075593328068354816737671599330405489942584251556922974206137511452925667006924739005740417959977195287711870930971079906934301932540358925528227280608976616513462798169320553242449316341283667204993999860114168935237340573505075573285237812710064113535906084200086323363137305136640561127927313036545627932481121883852986788865745437841942561418633744489452365009346685923836183715460790097466489057936580770212069894280748397822311730623870418437488071500729921123288765199352061540758102144201139640560664944957797194734405359516461126530008150698239188836094214976727281385549472041057889949744449767847633453383998065602668754921882036227004309484440863995232435320591045214444616909480771532290221937202638792466519137461098211590736469977872503171043053191673459154543799757754670217202809014547052918385017628074542263852151684501603647940700631694641376122508479775076351033971242726789309879030318510968291022798865798914330434937742574502818573167580651572841804419216578593535584344718417748411598690606424872589983679277193796957408494500330441903488326532948091027221431566378535116359561121376370463690364233139254169021714583471405655171505217147096630434054637988361057518837562158094809075041270778981621863595818701338306421556796593452196942056519192730672809229625084468042830534047980978081402984787127522476890697758897045698456624467821159457177939923938066615744306319825046156708648877281755314725099944950898601309607394226793801833204248485968612623109574753689345177761012407297741502223416961995410294117352018359153942027583776311470832112159339113126370820753020736765621327995264818240060769222357623281302990101784977771219193213079082878881242845327972022317933165485521960949252594445877863724500633161289437486298048571182298068864913422985152231823337125018073120421926997613386789511309971293445340740611548819806155680144839559084226767757947976230620839304190422149364775684500888070566904298666796120077251114540205399882517867746490361027890746439882324604519680069605741061555001804513305273105942752986779454166509383039010681287540181047883667555684059209541043186307207221238691463403114775401573719779127636884315362676222449187233502650838142545421844312121397488884404742723902090890605295253121689598015003781529618052351190262159898876139367521450744248796048667771800184878682808381836957689902316653906814683459585630735742168819658889982316211738052975359239718265632660463140525827597718515653451467915961684628459625634481515710499692675985783348431934540144788150321422029444977489376695541247664194840786269281679794346921935779664172397400404478403421350639172886491893345947855683557721823799800621531947196528986782382986904942847275548804913001660322063150492551642898387101321299013564959136917272016113496198261977288729922889456696560679191039122594917910073536658244795457098692104446238703768094205970475153029380509188498005666163667499005198046486927450852446618251108515668177805623500827818244680557861949850464201409252236399936165073020540905999714629325811383942385854948312059074683551684480676569402726813292456898976931985939395773028756719263081400132696886763694743616382308587162604447108981532541724826028802071694004441658680495580290327760538403353556659423091336662676177691615709465336357260742153773567072434021488493304907183783803333591458745379171696622334484410924431343235052373285352461474506715542847281803215469360753268889589887056332185328283593659199595546652187426731903984148814205681066802952536795183884605840413185460455573835262386163312274120673767179871715514121089401393566502920726595149352782813128999598496161686322454978735447861824154637029980963439464794300978811449193431565931806464546096123480038467132221377117569484769262478672851601323360434591944163684049851112554862230031599401311283989563616447367906366615077306592474423440739485945408038347467448330589213141081679445698638388614317945072979569094157990411701686626888204270694554003629248928702019651832674836581647231737746628398124697576875342268925717619179395935744556394466560630129107431390108544814877387291332898779670918642074124747402066302000311572460254298070062699287516975806804257620203039319812503058519938124074982832323489967555194422495415175328109608097740456571217097820860425325555924706961790896699783201008503556670582079232004178145905493520344342370596046074955471868503661260877647893091386571693816677817312605220995783633330574683300421420111609248779329650150200866194778137054360816809988172395356854626277105556926805578938882624704546059272532819770658271167558912048599747962315456332018567562685895183283643541095836369265514828233384690639383250538196260650726010845760646872185571279807046289066796143287785421051732113260305178164042925830773174333302679906380606775865479678163777410984173011133773108012415610720631770655956280993387233321044262713561197265879882578153111042643516736070928277434480442727375323063085362984923588277090675894832341802222477983960182861656224394797519106434558713364387412549090741042699461028528434377108624399435019933014133770541003628535463964041839137763217948842261754209910943372891248048404465817854371270891609624135030801178305982705205933059006565704879248085543945515291033130769058759070002070648093720347644696830092492127121208669476726571632290846159279382005670288413386726089529946073822312196049368653033889779565188295842055519684888311775287966272968133727896504484926971816053568972566194885621915993233160821614508856918417908479726135440803270770354327716068547824732717634443797163759883170177988841970531444703756315544562491091873384914679495320837345157421957342396591218216256838248085270365422516570506113822100748749205400977574390527532523348868383160048131846277380797108306881333670347625532751057533275425746305791789075090346800519826421562618751620921379040894842068500597957669094313528367600822186984501453872587763583737328458374237689216115507580551873353767871736003479629517177266922312231292452550305604142278704908363012864396308003685479996195849805248054523005590925650499257032369456765864842595336892004112581126724891918428036324742569592710143816108493191365205130530143424923928107118261174732383672592157505347358104906711407857762456914240438571456832952958216169788054262364582969240384943607338105201065364188271999601073470851914335936691455381777786047383057422738998629010877415702527200110268956774387802981273451398635248868679064751200301738457090798414014316656730398305353636846298140820449633852748235858902839046919548201514417741597327903110159063176224012453946183449718555515335129251661922317667967441875904098579816025318559443975959084888815043976138270629338866371316418737669342355521368660577574274848422982618052703677101602720362073433235671192469099673820731905242855514349441113503072416103053030125579005570387328703654531225352158430408465875613084463513927413226280172828151712645738059212133825436396516952128438148216826318801164038056122813924504433588749580745172311233786938024142201608649033964090423173510637397182991075974093367886521242539908843747518385148522753671812481668171633550995284753467889537033373013863021248973844189107269750294392941562982611534297200650106115387239908362892210772776212874953969745815912420955660242620655794521276750860714292105347681737543953495119678231221456703734313508190712710114926951923267892491697444184769765598334275617142251912014841629272549462348232760812663565742891506789254762293934611358420508105676155099271971917028023023102705646936048589233274339439085535962508737154674037420845239787506147123080003681551947124702424981298466713626581194001293074065112617935739988019835601698490851037269374846702433031468309559116071087158838977034851821599701249069560690133928974366540705302326058362565168875364576487062143063765978724170766964010454266954993521827859719564939501997936283625445487332907333466031429091915974157007384040767058347998323593940326974430141166676741784493237825351936120070731005818174506559661230583413005175439295585659989531324269807864423911064378527288234568563995584261668958281932494583827690419695425211051099468265947749330780768511312090753605407497856056310155585343287939920060661715248076275435583556945293932517997844430528143042494937498418422527987881430275348358927788333466564624444940593134706346829628157011191058706116454208244811856400016395186398978842030678882107820169207935185180080018305927814938263154520870276369133413958398864186758556184865915835957755793270658785469913103845865710855319593980504666489964671967440979080552461148783755499208020217494587710118355513881509345591461450965850831036429029970258599996206095118583290320346278447819523098081485239554160407368957212152635634591867703557520932970365274589964299859544883980109482249270428344873730005981684808696987768000618599701643687116631149625131827332303461152528440994528019150800700155068942774366058320515443430435020562585779060036101975261082065096395326456718367877213259189290080983961818694796378988959174273198787584905805900347928866423300171163706475395265440231495876236852118266873935254688196956010635876422302576126800378942007084262647159817134438097851581604402234937159832259530573352231672072372600778582038810330113685297231772474201250612595267782627975168195182690305919501277703521061910400147062200846011114045998073641789337571754437857054575877808038816944561826834679808472281795073099454858378886636922530344820539139673586504260893830670032889882586915560195788319321907937685982826365488882180145544851414509997108264132325125219581968506119765448403667053723206385261258726987247413762888215931060169871465860454828674919382614389965304160803417602051013820032815276874981912285149784874414029452706934525906715414728764363315832564092115631682514150077684428148490727549879341857412584744325189329142895552104322141300527443508255046834828731741681652469430095357501434351587293630951221661261846377692170332552803899940122212113861503487613527999529953138476135839833299726271748359660009733790621467133842678518306790226312406303355453955704515721602355065991456872421688783696200280205175111938094380838050547083762067568356032891197587835312363309628428902930855252025349542907424849158494658339926431460423264531817442299563980953910063437215599532316554082280420392400418091533794283944548254633623215069248827156819628241475250582761854050662213545828841010636276234200741649445403099302703029559009443857381279426312530331805274598072666685256185690933220666122412223901815731308515005877185405410470929502784792748555416556712212587690050063008644252778901537238394148471706941088866854441914487245806179368473012947435133630734943747980776275496563643333760786401628490758965988500570531126511248032558109170498306138811597428286146841013033941195794548797613440549459551197064387822213748466954733759069589778993871577113903987682225691923584972398765541662530322708822640933440127909943043619645917709984396171315030468019176244218393884158145917941041632255274824047467107677298302049259400645209748125212617837055741089654883946488331982805711099969028659428574278438155865747254926437680825140717449448657517158368940307747441966538590124761293075594922294687797345098063941395224824880139995795697543690783971962919200615327254533744903597583035108240634701837501415199202876562143151156749852136492694594016741362067624318237129134793726508799497999904754632766444190658776586207703581215065220603140834027741537990224901833713506962907814724641203044117377895167218588467744610110546962322183306974192042685579250854046554293043654168774554947234070571380853582846911656512828869334238975497634166988061584460773263127022257756299609580102071047162717137483144920541652241827078415855477275867583904015908655243036604692401321819258551786636752953881735515301455947669069237748126181898187862367816794635698883389892881861029148278417388659444228788490289772117566114775442412322352933898661516511524451597432365760878001726614011447077713266953993249156952692681133088002027306087155952772365812033332839146523213138698470176248594050177927371439114063727862103921084933770014467585921160277722007509933922595123360760880795290892775554455514711519516066311578774095389330114377199238010465783263849673492407149111872617166717959568727846583883649963556325718184834353361374648621445967490752027367259682636136248635152113907552923469772865953686046844505052078336702018305522696225244036651838328066955312411624752376350070396096515911182395113545991611981978794058647908433838752842685755464799870483528059155003675911859186812914727535603135109041889883512746508494735337202962343185699926055687585562676538575638003962915817175367229973899092473019589727879960940220310913498166289505469534702133942422571405327699564910296756984276591976208802975560103619145568507895785003883317272367208177846407965107717765079441275440074512707232524836724734585524007661282353645005944330925745160510039809623172985761813287569715454813033900361466884357381911647692363025898414967325552488348846912175362217449843038466657218601930131259335142412294138202000711603953057484614537496650473224613700457721950716476949358045182893728351528013581039832895871762848654029765391258217722938193249699137768656658258985164746253064062620369562538111280229547134437904815576230235712231226839221333694441551842705463657985511071081201344043300794149334419335306411919447363853425588292104959896770810209712731533907488018593501580984356213063631514464845649095990043878414680404124567024441703899091779352181615560740384653633037617281289987259460859197235574338074074267256979701623404235462636478937198046939226420707625184862519332524918015416527719551264086889563456726345513187079427609348514625417275848241698334344045954380259869549506199586752216701398381489620774364611294802092604446437922668313009355491941622762876005508243442813978164844830127012847109498950059055602893460514261267038017317184671500786409642964720269351128384723980637643709712138094925723038970274793591838148090120226813450199346542696727891552171543789936121686966681445643254532987997536159504507085943289327703560906183892740393707433888390563450538249096818922276922354586937036812494205199050947140241377429938556203370278922064904002964879095443490869503439247416149697522337156690806961260660983490740412221419075286940067425369568057058298567644339752429188790085307343541053048880130618573107931046839702495629708865695781214941312962144528842680170707125347818408912152587809917929465098368073743833320761699802109003914344622434075468970464085236716741789466673178452053476646092344735314398788432803447481420746639115595728494019543734094186075553996026944793958353942068493479438214538181293728212318610005480991052423269469796605669912128976626525844198860671801707312504003752110703329031753744669885017060777721925352826542268200152523118595711898799501652866893984574580752681526708726100687096394393527818368525789719855299038593912279670930514729005726408138954186672465865613772672627867170652079905766947462115538848247922176553628941073889976604462055486484241253259388237817786941068040865709132507895927749367349342268371867046516995356810369551673526580340051275674436638723142172302756291581939126257208498696785905004473951635821925748112542829987613046494175894570692799827056829406347716822488144785962139217499435694159956402940520479462446240491275758538339104460084719704966300389524538720516533444737492502685638984493355963644073718999401570194035695802434662631592513772275058986978980542511326479482069265152611156136212581586571626479328803560117075717415068272926392020334669099296248025367014129730387317091166288935310006750728838007990759664642180166564472331750650680499658557174160042278194540658123903336087582105200208611062616412091758998352224803128764168754930460248348691850877658771541316999375353000370056502727005944492874161105967268621648106421565973893908886782419633362717085548182668917397355510059493748331714848914357436233155093328265705188909604807190001993535835363706298251635756421417078083408408685642012345647073150424795162287187937714366920389143230967716391653198667398639103832086889416075667474566536968051843748084925131505831328375368828265064045606411459395750458925269791381024039190061388903167027564123451464479782944315145431550737025929248199784831807675197724113249358393358526753487671784500212454659045340604291620022249834198965097034529254069814196097185639444590400582539474829016126963834683674759649602804733124168472914008194732338663170415223093612647929218457339495256786663173917699722983976716090072986197283787991532525524607488927721487809685282524716629522290469332872419689298694869587888451863165903035695396399584096867788459068872332057871542368987660248295896684168088106840338740353700313733227722776075416741110834204478627362124333440853219741100079237292196517967895770189474440226209657259747280682200702836821677013197115382911213729691903982974415035848621136563093225741544553140028001623739173173295347163705035586506055481556135044498354136600907501768273094892834037424673146230913802134530140720102230764331849394858119910966818669449879731317326501622986100186105580002349893113156522049281825560261951187134964762884605369878667713144446175233534506443370063625831857025083227463830694773311630445430587317623938194773661436780003619841941668990728780488867055410030941981559078012448633870365636017324282894980527875497258211008816490282004658993256267733359025640048136443135239478385133701201547958139229141650108239473663174875804551968083839159117594473143918429795849356246690234779177927398518974984739934790965803730493246702650977471667966415242748500766205519712856109854461495854630980945770291253908157791541473864126765294995425908546244429560593703884116306717504570278732904142599891219381688941671152432667598204307053453391228263189722058948639238606053822134058908968465026324341506699799218835775094046637796483556074903459911068368873128212988448999268675760266005068142993769496687766137940002927334219138038784665244261193329625660838997509481403136397747461584639335147072395867139418768021538684578514939517205136440736566049591489130094047130661655512591437562808597312469480954845156821688792162058436940413600380155145917602790010259769651628788062061952160098631427745441217676350294285136663309693648101135868118490193682931414588174631163674737296241691671631289667688907217930512864561939640635195801022609219131763779800455279410506007140729710850382071426114788756676215318981366383461422509780700277906188572398662911196361428132633886316019537466246479552209897704024213041010828510755494094309142242462297763667540626463937084748425748902033682492868446957242519117992312501878622873765019363623139735928073521425285684695192583035912788689439144308917839452871113000916177905061081233427152361461452694402674077187898770612394800565535094221716711866320495660373993829345159061264446831075745358873093764202667872083127460500837973746792777894345026475773210491578070328769992524046349717338429576837144808022767914420973722016817734847524325356543368023527495147081361823141356529510068487994288329569937504348962055732827953392561304450649582301132308796930800287146144328643846090536569257793797887549079664701766102464291789347061664665672202336904506186722641575140526977393868945783284602541219329559840650344279177690798420145333073914794785591305365387657680686032877852530025829386908266619210418648912483360691607953269058670836612410276327587499816106382023018591275431208695174763938639350416071398166277478458128376606245352200197750773402100091891711025363834471841510154271794139248535474880363345206213726066464655676737488584491224869605352825886423700760819168425281153073371231760684983473305509341867821145148685282933441528518953980686093676315383949128518367610486494947190460844021903890140919984722640218821232025159003450788371875995639510226187942895597316234952188033044812820046824106391895312360699129647273545578338498046842912840783719114607846790640518704438337788555649823804588413361226881139768845099225365026499275968672265408933445128479797819728891557201276557615917523235237459635103295189981910377511012259633251628921874628723350638377121301479151303866231577836237083755306325107018557586033062846472224554871132656535255751194813277743249069317580099149109005430962530697034632682567136200524872271146687700166189333892815420752170566375988991339624547564426149988243381641847064591863049300103493669034613192312628165283763558189891524275228189880874546757431690539040470795242539409144974676309909094978953501372216191232816477129409222613987684549021491553494896726008293209830256425662516696708641135125311043671860547204601086937396480877916566872344470461422065784058778591495358961941478102064382284457862563209362767928597961706195889991020803119349244692996858009792069868930385193107451543253995683169060692621994771534344338843766409899971992956478379260592929778024064709696484182847378330546505726569415726345547001504323858995263249858926168557897512545152375625321788112402390366801980230003307086339971650064886894723245493768533102821725595756853616836563261296507798816793760485100846891120692260496582243349660486508483953063771714273830827013028497984339825887151146395978232391053018969543202697960745646771890001518790657749491091377763876559198070928919164876146893097092147447144719429852264398028355454211230536756787258284736995818831156567271569030513106226116497297795935266491661848344711202990153407272410651869069834460116886213524493392737861225147791477694499439309761837852413101319209160384207762427130775147200438981005460474823657066621477324682545058150266700838997266384069295997567412935818454566240880421652637054760102094560842695433103338170504032469452602761346597198083305961859945654870245436004699586555624390020815242175411419487851322446322507637988172947633592537696190476370562884517972397770739852358289311566601327292082612555520376040080140768801428095044637315966898303844115005898298232677589313545106290148458656240099488464867293769330737328552835106674946668787237719082563966237951789988355584644984681765288480511463296383750260160067191570758935340405784625249146119021366031335198241820311936371517785754029888349358713986066107203538309284546627035084641136747670480002453263457458493514076067974658485489782897179064408762536156886237631738276309289033649368564494959948102746185914767824463678175973366383670869803680641795783530420304652970839976383603859403273350767046346801956372189359015931242325130427396384269787771934459896788284403574940144325849706652158312046809704554862535821767949686021504584268405508229001354369194132789832113322513396347481291219587702293908205562988574418276686891791513617218133846144275333529073373330863834141937491716151713569070733655641079305818666242540381580643502312046520096314233611527030591477295302444441955297896504060912521874418077963860778752723959036497054158480323837092988062062092123354325605722454408004012690132788949844203164767963067082914712482558964170433540241064433713385842805250408810099951141659184388026080148437467685242500073059797415031990332583808614167824833696345405750489037116441322191847968060153837575503025590021093562939415689792489226547307951253452282758851004361694128853452483046360106009564854516590442386491140659621352379462100058581889897937581183512236095205646666638633398148143852528748089912459371360192539246034062929494035899833119952341822478254246630506566786606182273732469861573021278293284793093804355279237535200981055035839895938466492211011483720650056312157707728332913136513554424235551823036325837580423716273963826739050169227120275886883269559828042899763718783628013062368911053178623295401358560746606530189379891586700600080987374876800621624288068606343951790702621122307395599876454495056326269692871457728127864538671548448782427062998256453604144023357762269035045521999291708016087654536296683325407287970159134740728569459731789346109591035662742517002830258342782578132689916265403677067026089254691160445107883026892614877946894701690420754092054227806589597195504074843589667466566637120416238615547397938016532853155241830252502688950232464800524436910886958738190726179563899566942708520794715842965726652050757790641924720741390866729061105156504396133403419626338229157730920714921855245303270623342632834758051058673043392976521675108886404700694045515268544271973803956450526823090435576970504762639743206107728214777866791983945444664835761174701679014860632752840642619579768434528998543748463589908432646399878741554659014646532435092783200993175361059313838629870104712606493992140397759539977635287363007222126938855672076907945958884607377410377070043759463626757668618838247797720913861674073291756188939205886258624654073987950215179340543085848668418078028943360545505287883528870169165647220069838316319100130066145339385098793022915984528341955939414572262329952433928953581308025724654567678591004651611626639223099645835424143575868652347802333277039558867365624591697393861412354623971158132886929569133074213572790840995381644723554851205951479763677228502777186785498293484179474237838252780472213352789536121371470656402188016051718257337597623583959363011339199565709714353903628871345885021105920934871893695834329270026900916697916839187552122633373210619573845022625713244655312768342771903643871645833396497036704837656819929371428690686368154253668827638297226725818118146522127107812822692302922068427402608465571109213462761633790075560850293156931072792614230244373154893484606633837596164766289528584248758590495927779834951460234884673336573911895485712093982664494257551030903114247574682600190387150099933314621515703249639086497291138237315654504387333306577980142906114618986175561770381838691930340082321658759800932399334565421230092944560202379881641260720461497253164043727795704240214671749319219777379127526713880255881732154516109049040820698761799105519864298599105867767578608161548144095900303198693969464873534978243001811076695558557556898235948280913687280040686598910645205645383656768017761383291075187686184780307821738711047471654952792621703380281507562608061432685269460223853634702371641006995769238594959665662209183803385628085233809769674855311292987055634041155027344661433955535762715784300138237807638792528683336288885274643076841336788332850441857897296055832505986173988932596722569098627059292257120168539438325466976010774462923362419894830170787447638476115036035065406017438926033518289554532282779974397408082538826553850666447934690050889417785552421316702891427169317425564202965505453155475450539510032965841743319726542845211597198594064325370045283873062915214841469513000740549636520804601477210727709567688661622854407882099401252513619194210639110506816482853632433948687143407683586139797578405618852069624535909177279986473959248931600508499018366418189967366751783232858830729233647440263422228131161917898515275198825931444633962727178854550419378552439338115468751131868907452144141118105511500829872610611542817448965749395316190968204380138402558687663441301687608519422043496554127911152609563968761398823502303317651797327005999504062060527553220748433457532184497314468292190067770908968210576495075670886685349564286829876897855446877491969320764014391224419069832875076308251608085311853172462620852949677142133142496866452992681507289669869208015610517660095198190180881253087802752904131858424017994190929023480191628814191605865538746027502787849164994718867613066131738188462740394233316215691762419368315520363174311480836294504106324605158288277394438089169359804296260352313680747973608996530424825011161719374981415262002970430793032142553475139281067187202640827892751766399860067063836630698000715637205058873316386860494104325253166825498057461858917206878604625775758585471650810140928817889460597145158460770414054656183465064721696239507219852726514356092525541737215308773041783246647943258003681589922472096697107418028581361995587511638847846082124062339382529556450480589761145670680100594464852427924195447820375292312062182869268234103962721719570792208265218116055025096372503512013794018331046682064473978086458804509865442289015925620567514920730723386878014532843615702298579998771986146889945379874919956557598780533161302243265187927857431538765481092605543704757275041833140972065836405692351472412873233097553953332368656447677606102141970486080930755888764732270568367309882798213608674127899652618366946170228092958536223351615975426053282270974548196777225895830577938795123189369530024415499584180770563710120551982897173926359458746354996092008159249200846461285919373541614235728947468592254780039250102734774742733064052481838390401276300229873465848763966380332762085617281883404105647390772828976466312444415079713798151949553561923549191366716594656273364978075746231386951658902698616051627830611526438780567245789072813230567034644153574963502165334451212618608920259482783859468976972300918771375414076573636747871521902083799146979615164321437229169309923267407361659622176094861094969142882454744097193612248239844373123639622752331283748791593234969511870592462744445649223782865360759068656235765485139583331132853437940085099151203571632473438520276044236440472952595557648410362820057312007462182150302588146817541344402222608031129113323274359247260423652470959749256470776460518777541088581680846168427429118677052889691666894027879780867845134046743046726294785455110230820449963579506024048930075349894967838633656692664513092567852174235584318598751721812048034036448117424234923118760988894120245323987913328962199293056231319063091465800824979407412963923696044382176944932102043772757670155368417526782064357242540075800121321506180829994262826711003327571321453116001714208367699365186662587470948700721987599245348589330456272976159727552643579032250415195140356674742552760143382057448582969288577634886735804939072128796966855131927435683091072812322478760128018856086209741509142165115755822488753647310174527445118312259174172377573531084555550804679400582832510160942147309556131607461201153044047658236939555645974178142102201607344528384166770336750857868549117867531248736972838772258071055529972047053660906514445436957903342552155590998443654763280512650302995010516733119055104606168335889361673117395711418131192156425460919728625367758070136844362382307833757928959996711075286285288664297972279641333519253563909859598309285417393417344699381881718739114846999018307306244418982868771284707802233074900524966125266614882934317227164378650251613404789427459777065272379386807759156449661645588444669499829100353100624500084507210788939495476355281820766656454776593052379547758781053218072516599303864947596739757451236841941227668815463355145588285143483434796501796646676752221211553064827361433832950301020934210216040252410974597291198053228806371264997167097858026704219290643376744489461019025982227410307232379395955921409398242056993248179367797403795281932487580165392091509224563571459061785690575366158077265004663676405440396022615251742774129462163120340939949610764473708974775572647534487463626460948022877731390767317433435978936657329038086675087333243887601057733359075522750269586386083400921170101461376315320475659799100324417796421223636060298809753750003422811294214770022675402349067210300711559058332230107469449350452634332550410747095060747245017137309779018287377178716184879095450436198667560794994381381099209768366150575581963286279184449959261600590328558859087967490084707953671539421328315458435819453837414697416148245513755698291715879761093715204490741660382456685070622574788279456531283273686145582239406526956750511448586430107872231357056181490032793723507264844940332924459718496978290467703295402881332778522804114488562821300449872390779924732917894753276181275240878082040934479055245872379047488991610071202778438142014132633830850756160656811201059986836919454611100236274049716087560872970993182237689510719206830374513342041492608122606264760461651723530951649410380393901577727007290149732023978010755557536488175977550358280096900185318957629435559111466317735769799121772725288101384924198586582807917501985501977828066907978120199179594562902656305964112698736725286364465898020466208294921406127020540474362803954673750594276040598367031790069039945696699358827427752506291433987273202118229404205039200779038771476521814556265633470769501632033961162943808182539505371453763900409173262538210766912243686111044401769776398262002662099779427658533255816334359395882570709654173918260555019158973668274140488160310517292383250856665479218500431814897130697818168071068604344906882571327067878046962982115940943236486686674754867858867362956515920451512185851665695410855763231576237198985065332128453559817433423867856575421791327221494518191231626880241534416439174999166503014501601170502484264236603441268428517505316109935752173704832730707261380740772672408053876514468678316853282059820538118416314652275527160301175997329428530862763054803326637849133851175323001072915610605251508429195231873479614592082290167613424988195203934168671688137317865652915855444929362187037304422643583957092420845241739181745324236363996105218122965792708463218758304879729986890813480510119660008846042302023641552027848478863277521723387484640296552492051568366020191202830404360929862207207163488673788697260410077209149036787954757030008147558820949090745180675600462880594772896184941575024042293640129471177858416278288255754784627200499585402624408872715779274784745693740696842071344781973225666588692523129084319901532947133847177938531500863014602156275523516140940985888959179939417955186660947073789729674112814395620928244088385049815472747569737868448081157766976172883533495582343261790970187435293674755383149115326355478789187291290261223534854616839311810343298312111158667714953309857486392192967126263271776828788333464191376897340895132786330008077243578458320003942286359045699418229439214283510372596465013133028958736117447501149191066238478400684959528624058448435197681015946745679914450082551750768881800549233850961065168954296026829776041246255901222117696838901250551882150192940995734044348663369540476440719901890002781620901265205933658869033212505194901754387304386254205953672654304000908077934440690948347096917371956483348543267218043501886459396384759888192431216742412042520913370237148462934054668134234995447163060746325307541965763267239460031431817272156709985469921100495251756745911627479056382139687704689954511899012471995446543627115642714463444589037367589585912849706790190756576081491621666466045950440663166460500709084261006973973533613905156220421299840881951395102771848266978747680289442530411113033208910480781952701747153170719174940565141768022491704859370159447928815158592327244470992281257448429669274746819035103314364608573584875664349573152717863018762253386781131992944402026897947886639843196382739819781181973531999580863739419278101538687770830620754254574013717610301005975715867411659073174121129476124169649465567707088288556881774602177771050206494442293369289994645533235553083650458315711785857628937161637364770099816750038341637999114694431747247881281864568726708438345861519475932658909801674642090620451445673392351963929168358028104176076196418038668456086876501259716597975633074017435712708618030221034083359816280116408736088702534464474597965865072257575222064410444846662002593227423798374521177157362352581184536935566507597347661136724757614502809538211161398694206550296845051396992543502080576291091248284452943458835318182041119885418966347153130872853372008518100732393470344883075719965519463537336076089966462300772841939612584676510111085761679429685024269576654060131560863650492414257129573028578005138197612389589757002504701604797229483003455029423534209335034109462920374363185445920947320735997538101108199757024491720938572903283130871216791010787568154390838625475344220912755907949752426288522683473619595245294348529859992479417853419066038758005282636606831488266639734587245837535516842840859274378680506892323765683807182354577468036455624957703058467042134498232749397516513270587313666432841139046153782236979192475441781528713151515734352688944219670922122884762234968409171472776395702433485999486282212434959416341292535179703187311122624952415640544112389855812844483970006709217291961709432432197746907988136393723809703248974046106698226671791152140762287972854772610949479378615226806812515180281422118363459277970771622188765370226267968404516880748547277158690062381033644111302021312504756232322120810701067140905541136536419173759431038679390530581812857446516920852057025614665997021976553715646137569450714804562706491150258345677510844032221166453818272175213161394843082675254396646612827450878990496724550835539816916623585978891994823660550041889313604365987627366965106881775525621393508255593532415345332467546504950801801315980544705894765311925294277773942316867170307341607062400708441825653084807527562863730454701273083301132056890195823502917049734632661616669467716366874017931284625651214071935615374251456022089373634355476399744770864330339665216306891691884257963001916961986351794349312919554079525334300898280721537471528034144436638825736363963114956727277403359507771613119128125615215866364118146516691848839682016731319283089547676061038933565421591385676519701749841669751878195507537307096894030426622054593923610349179652395084031248096823718007285247554322951468938849562533606252904202282510481137859699491122734848102333425109512280542007010247243247174172532904409709294039386311969739885191449675613831388958713710156600633628211163198548365493064027281042379787526183516425837218681258739625347790557251303868452356444494056395040359293207982059039788764311309120523666715792876786295863601135376637924533548996073953261006636004700566691406498053971677513047164770201788975304484153616899561765148566188409653154469481377691957158864041974230858091112820516332780123234131408138534783993741974816888946152890382626518882581519298665906174849777279465429278767170702212802398602584337903978657792909612988840184842836013955411334478319247042133408903543683048115786069469482952717804724327294971101439118338232485799964346154292636899463535886308894309108416512910697504188767247176905833072570303115642579522752733347266770194119866515177401979603009734102939291834704335435185583885595441746161116968940751029736905810163208900200797418008902209395626303983761477863589683291690082587812617035600014016913308403657403780158465765498812750572400829916406386199582825875050482905920729418868229507136586493051113869137678909199729505924112352258866256630574495089081936934386610123120923466328306758137927435089887215234198395187144001303107929852771587455159888794914106681943690064671455082266810851191630045044915080694082418648631087735573059397180735123636439466498291842172977314811432024603248822994406716203221651742291035773135020137970828977081233745692981672154294485398106420120247254229750818175577028811860342370089348143484401574867967496282919149135199823919348845758939715871041595874410908688444709518187331701254437594071895303499419174039892844869624372184501632394770724023610569337349468446578250976279423217968850339066616008703437720908780680113413346707077044263691153512855541038790622534515898857543065664025995146011310937192960562248139480484380212262998184262404427481259718799565919139292207398868064384775199124481250094363131536984878014570886694436010206234301149101493126448423955650777361648898555233028187732249774494164843031341182041671262133508492933372830669346194756352794470327241554212435465744400771227041139628513665502184733960241529595052531536177909891487342516253080289958559697400164646655888633115536143367238292395799077881879085854463344189232215979537911422795033170529141245725494056217687601721841830925587716451804954297155969962716093068259275606763337830970146150828531960701654541981723611946788506043040203997255383568004070958092135511727666376701147543505702512013223972070159496001947222379781084945917930900170677539722333043140637392396710828819566285241574679497511066872674730987758369602166989882019522575204469828967109909813145831411692733466029896073229346899781415952476137297017568714854723262524016949071492031463200600034501928546025987290088407264195153239340314857166529236746119847844782729449359592442628718810319652448438389488959029194422355153839831001595331854450194067571122312023835282061153446484083643148457490006477163295648421379298568871378784225385112378572024988523952161502099111535312251412359610478508318485867317795539327594087368616606522675565608146586987408095465244761108460383342200021267831886818926332148576241399749146266802037957678116258982211270640271293964733804204088806389045388173578645478619551316197675261258837490326761476343273723371833217019474264673931304060826652810218634546361809859321820213686292046921282717179726425457423540792249838269660858039138353554926685675024368552146438190116722756891551159515793419039242461908355445252338588349022125165722804659150165286925882621965511118637794693771271556650225428126474784475842493207405931793746692264073031219169043980025767204471612729182318625417364989038756912225382691913178728184387717657526198548574147588440176580103175393149860843692608054942314339849096064986456093590513658322146145885889133999588655472223223538430120013919063425929287082926555149537725157661608763836725325960239924443969191453277384307569172976954049774334432120016676183498677542623637171692461526844784655889920355665477402618650496150239034893770974849543667301586086812376767651809073411362675478158526938147733179800800315482381960621858548387596683895906865398357973776303493905442062957713508596197784678942170028565573883318826266371337782544637744670176135884382249715958813709002706699112347559188422308276445486995114250819114087901926001723380801802003037537640904834331168533421976481526154609138738562812509679225779839090799173648068584222257519715203088728172360364340186102810273731129489528142075636045844512197238680154329352653521951579930980383340039511763171072167404223105506787436111129673184180687829108303388892146803252214020773393942517494835406988127847542694165433262925804897637341751162252279959246586515461639806954745304304517734581977357247941668954617086633278792371303839148128204030155786299688489788468215701819920227455772545385925626874419956527231451384946358899103200008203028619280517256110090329144933955415494362694726704164096416009016151898354438973363617699082946871286765011233570706401910139836242875154756763902981187809097880767446674082695615382418656681797998285635694512831631985100023357013620868572794694397910506804720709751632127382298943153003087170664939919854911892097026620680699445359168251453442713346743574533614916582652890262313489872540623854831348060001122959125173130623060290860160620868367808833854090958478127658234217604372226394810200760793806233312508420566274441159091334873843631883213921114416073797111275522188099843652695125089579539267901839674894679277633318049536239242148505206819812144160796941999880841962688736491691780121529103004932647540946724022815869142896218454090403640855152303560189082436708160687902464479722289825585114526935767303807224100534436104128936234471431159836765077860332214776661525503590140850672940935163322671630782726488204814449697218725566572896015213674440311795248713290583237207118558465300338985365409921429445533294998914138359172891918346672822363660358650434866362679598092755160559828778155271564114662708774836650704261624424571595003504592866657216257477456493214725860555239214715205655707402446092271084845817532704867578191047293491544571076911197340795596462572046555173312380056317831857865596257062863163793256264775501200178938455024077564198933438197834611862410165004935491998570119609066490733559056477810787783356514005135009422234041651580638912110774808111054481376422386398432706760706953217908818362980528147470877893655330140698306653287407808927061343176934956527706135963280695359617502911999933417081026918174245861963007742070848739989108185832453612811569981165447181327933865683787120121107406703525759337866525331925650633766416415244175261201109132388665474953616204872311794415231347657463402848105195249914368929901550194070742884569219434282140130990451682265909398689096682932127788193790940197866749155821733703553819363565238085514885657332886206335540122256477596750089225329312248880106611616560633814439981915274273856570737891301723619600500020837406128971612715624737280069188257526935539521557325506967454276647374622720064696713576866367929875460564915572269007596759870308521303182525898423300514204248420310032139522989381515125400625394739175649771240122257019511053476890323321441591693599415110467554424728895679049199244977256740261554990072573281783407707749957407079730232413423553024027779682597667202428062741289030538650081681370757795797021775427559632885405449991165284538480069855202880590370059428405589554194583682249284293818896783902533001570354141018742564688572120095223918211538670256687786487032494831817283924098250908579262684588688879565062202451532853522137758389250573744020136861532839013128205081687618644062149188880626242403214985791289987465692014888071140916641749674306593612118483292281708263676261425273237406816871878265262913122131452621462652544551373548560480061167808112717302252068792344212173736164371171462938315228473192696632610589560318344933896173270988723730318087568202582140580087238192829224144818376009392109963335845796265770685802723785868542693631777108817760335055942380715623004545903550709882296777415865664820628749417736030256638507745905885203062982577414546981191877190749964234297534437982553203658960640800555938849547655521975672855887378576291188340759210680235152256987182001649969840040260455062834491698030328570002963526585412063817268432057941803417719209105962319246861205768892802708269560838798004174639429997882159801191993543505676559668634673629521265379307169470880494073780296333311736985627830735243615960035008558348866494691055230665286809884722411105632618561981292269408232357652480823500410178292963281861706468210365807468898087975170733893027626648280071923195348490518783173321417739926540675905863059335308314292366033955821525810469186381782964468517481912410522756585316158406707263805317128610503340691420070498982556431041629458583983541689317270022392928299832193587037300005359777775165064909543877794726201889122840571711922896593701639185650406244321483949067735114239703513431273399723721691097556960530648674894622127060621915684890660056660338432681513261275072973597627280809576440700563614970673591863172291316542109471840101567214396766452520563026848822058084426003341790603840282696298844074439679912644089240705390590979398527118060206012697505160011143661162092595067918866645659630260257108203472871544686347047375602359693617146194991637656340113350496159025926911292726911245073789382373704833274932150393757376913420166701355777164656757703853824224000130727906065118186350961735598402712147022250048023294443891861041380325975089981887744702280728402480671724437458942549406374338674992717514941106032834243085977546531831157373237829248377158339945834711796460268800194137938222960642957226465927056643706222033651102670869613626408274543345957093623463406629361014197592926160257212010987440552012481186208082546914161649419039862389237040042517059217072983087382236079854128619728378627673741042172277225842032732236468970338885762266293884970783834794297554095431136860617857934883305352467862854978793471616250380172674840891227283148805400618287094583190041067539463411227539976781041701358262806471288026529938966846462692877151831511325060464589961117653991757541342257532268346624673033691431078157167150258411815004313446361038150905268125922198567414399289115058108364718909472050759056821578820672540999114644976869034679939364986179745819237041355855733842884289122105680847215447975619562626858104314040892285631600069244766342782943079520223128816186198173009094170475453965191006719616000325613510768712676135289628328352806926899524857549757486542112539632863982208359455152138370864922438331774591384710260526364998629495353547862025105905250957511997955794657999394133419603112539736194221986624630023254677323174929051011631564225737628305034020224797305517532938315269292682091071432470658708858530745643063979720453735515755591779562283262329282426825946451489125600577384147190474319013335284123220718639620804848307059309279139719523971601169969681753759007360516614080557516154642413343791023935977566923975511246630416017488467311408493595880866520333409434000134726144821806519011017079363840075967694385128070939193999948108141736671216557635861446694617112004386475234266068770983243752325873551932334218340869307370636754676573609173297536751767320966127811431473986068817796768153580208004373071487049172822702593960264642184515652119671378918113368509952870296129044738168023343183772007837978704795381608453652381181591229519366887261676394708794477624690739779923454870675914088900558438452659364938798207742764645681439179818813868321923988342175621631709047884018762355444788269523320615172402083485344656995588912701130512974575008955100359800172735653661830374565070324456131012679570000284914993714649199774916298826168643309372238512910320272952063849808119354572344582071668696684150182113204488747231250103478994399873681242337445983800075462636643956835216091492210265883871442513175499428233573587236508432533986358332605064785081027258571511205731383461650604658064835657604498166781008309040967091247974411011559597161957815862565156293398347389623872633890822384104072327403840848194616758496568385873107948268137905601276110747637779458293367577599616862211673354737146046048412440879632249771673174387372449122552630147873298025248513178980697356813745192973133906818308274627564072100828498015455538361708776443019937389133430820790745599096386319802983075741874190664790984400761442593289382947333950320133383783065601222419210459644253739015611632423667636105798997640447046763947104859625609038931391829132820170909371005092402404026574220289525025135790182617782869703090452158162798313599318393721632197943304759746656665865885551295382779196636981068552934983491008248102998544481444397557252851684648184250748789629592817770954062624633229577596275415549317515999847514804627824779736089477405470017695871667870365092721152486513066038794537865949180487175391934594497902310231658796449839664641697251966501412647111134675890357871148690974587771248666435141417253430357605620760092720436753002413989984168815036140019088089439954304273381923388540016416584878855734381231842790797271392757216355509950029949078457052479410305514379899942438239118957801930663640916361615600973090774854668199400268100072593378833765682984663490457471531041854429595267220716911527205687735438238184094491249074580366275611282018644322927770763288329432465194186616344997267538987501460368548843702388264293398534815052980029318343439224454087796588156480496026693760167993257889895115298404431780492161928300211027638328397139932325865030980765896367169196905570309365555456257663423902616958300809378984543943895982694459479897383077383260241281309040933367343539627136578120232273631570504572156947467349700356963675179175094307740087344677597360368995071799497098998848240929053134170560797255456841060690543474721375329391334676728979800108877541955421101122696132246158193978853828950052125254843184405841368604417132674219673131087818548742129923266304914687469677762930316072287187041013493111962594596313537607479321419932379893468114802478894197918593070079005104409671308624474312015922530425754028799558676037755491633643098341092300839879773044718975529268046521224561919936534833211266570320995902180232522030048361595591770181356558140623201455873856720250505968764959425651571083081478336440366382412638432960845364415793215765133658250063193646806412124876238649436363773125031284849259514184607847645312138199816354723862293486701089706693735801357501424733166408338010301512173270357373865731999066277192839929920306007353563640554984941065362855146625219183647826082829109039999671242506616171241006780755748891624350440280828475200825729130832108237278775006891306302572969011955648148491653410789571304696716328636809151080516013791598759959140698148095125754115240625313160464454491286657567622424768643792488420220050030540266107551968914622916445828169091031352507155966616628118373823681955676243209990333863316046775881121975106636596767179860704892894263875121002716782683360123108103195868357177743616301684324318449452979527979668436618627261809430534961004617421563058603070082337518895141443685909616138473691846262800675231678504408279282537501280605959941542272721520952311556149139457845719635188550131535849868333030661509474035027407439817447727287892850834789932071194460746040828870725873229803351448075120260161525361959892561736988821734429983104562216269282325256007727946380568725784649598846125169706542814119583963019435648206739177081978452175442775018619843621862119438170261558512947920755749562488119764284873784883681996527681791883065043285004360174719200567372019462454888661710433075193438386736084448626949008561277949602074355033636965225437975720341333761130547464085145015072333135762929875016941746964650728723562078722788902901770515685073887776657349816142584609584200607700151538089812045205531546163741791811149723941424965317904521945479051575890194865284722070939860189483206755940487878962316741702065003595142781139863840449648031924687532973730717971316116433302857367008099946126114591843955950685738670785524136084174547327971095687915691851135557852632074256181563081234226479764721820121285157607453300262679266502862319285846132383365232229343409901376996674484195978815656272161887776647960438502366775750100081361118492298767741618666337218433525079632029200567174039418032683617890277719303087326206907062857964284744816217016915755592926192689134641559116849703013387640138074491807412808008203289771414198666095553297998728731365972100792139887694313767392093962404953581620598028590585118852713776040563480328576634998013258756836145829708529227617138329797853656888186871468818567405055559229440491490513236390371719786321994719028902472646696177305285674300584939476019673471487877764997536788644083837225377322846888437180607326654959489412675667320764502512226366583669136919938164294155517864697412401826560602359650379573655660204865274531120536905998770731003680694936140188151733105202455945618816025651643251636224950267159558372446299397099001004245165309679184972050193883397292758233837211967368062253499146817893298385401226835560194661296532887336622654732763822279832226936470613967455706975464987079693609875648154814719260398766035382258988861342360067878577343735774507148591251107031883497705530434862120484129739589015672830015054422926324377971676975791218197004743481082278500562152735610805485957843161570641391558329747408529834708361956882683771171658609684029642853303730209256882039529465851799185748365726719150658866338374281695477556063757843006752853465141961435963628191595549946931216242418069554449868055327217239300195425792081178788849883730336066352568061765060840311020902545318511351574524132813135992463440919283681291974466696727876230171798602308757920767391068658852185581160680249400017661828978172107870549104068703217385110796230827923061374891631836300042622539552454263615359559203432252281769395670427854085554641537263214323101940425920390120448847881816590672545074504276325865037149982977660636497007349951841727007442029193307281789019396435595285132158678470046680379840988927003182035348587361453669963546443353045990020729917287995868575584654375529110585063520729372451919707158993987109679219773014182484302036289124984334839562705475762462141544934458764596238478166458394419168740858168153491214788448227971328671641873137337527562040435323532445419580900210065648715106840279981939588582319062143289517044593531806186249247785183468897261450667552092422756540854571486742445715052846078944575583582276301259712493227513833090354820924122893640631021360828974727327262669692363701560140134178072923728223067566909462240560571771972121553288150425125257161881896069090442784445086831664028207441416108206964706808545165346151137204770848713359400611491078758516958747099441006833655835613423914670152810758833779361342789393198306709956800792182694191692160605569851764655722937950969916627132773740492003812427615641392024753384510995293052214764837786213726184024326928268551462869969216378717457822213758868108763412430015045893604517495904322743687676838134039222109385475435886044107850489849204093758573285251715227097415670757437634063220553956200646000330259083200528610040974817946793102097858443041144346471389299123112595963858709797488798419659062439776496372535218809622324956030977499815484334106849313094736733296549898643084441982295020118744375091323898460295400816189196500706835769772366977650694572250382111705023256141211497081850466698933736748271680330453571705949121891832230264537374685130462943805294557127028707822391208028953416173055210484925424287935797504638700205440237851720814739293657955709319662680993883629546390599269074599397071913175463081582533708423217574763399985816994993450760094942120357955155920600320772953004265345345304381770526798273279711044059154581105285152787526515967368303361422430873271847161551350633053432823293772384164178949466542541804773017048626079124392516665784723126875558771440509895291473057721282076838747339157031516116357012788807635675043125876009593203919715953364725354918296523766941466281208921769992253213556259991043998607597962177041232920760293447482669361514848585404232649246156048620365554008939483269034266997040510193640930987021152745914384183221441820631510465227897743362826053361399477877958489702028420936026092552061814261185856615868665978278589258393561758454219123756782605111921564530954174507254731257106341255625687993339690696759966504112926700800910648584123455721916000612647866056315688984475751487283088470747324378563784496486293205694667410210938369323530343461008030374852083576011953642159379421881482859064314440551845907681570309962979189853688849357616051083009555999573447862892526312281363183442737579113868553290477055336652263791000793632549008188681198100694582889460767862989583825760744323834645662417478434336203621553655928355734817452287111182513078497921378582637350247396635757603519764271757605963670500097295446272161261719162754348192145605679856803541645874625180384479889236932219284022063637277229271907655692990392482712768159368548026329321629248581265952841876742857591572073445650188751255141591130001776512161411014391255817773951047866076254253315563077025841302538052861075080043448588264244299609561504444583458592367630078224038512453930182407243959182294888387453713448545090006326337262887236783156197007196799640051521687429579210213373164899627379918654196922197728218642609173080653175669049079806843640514674616311984186884533479441549709421243237430248489415633348836719263931201717763463341516420339261239354427589790556528980724820586124365660741564762366890615876241811513121313421675751460766347775345015248890289344426062706219915966031143362176548455274309614750841838081607738501945512581498755769334423178080001643584943762850625467365672269892546172798300615566600920878624674045140282801901936602605365984290580502699801542627139011130290409866940944795291057520559186495434409802026472353355383954200774084969978509441836266557142608553162975937150736004917098160540102956469590724515711890286564751023009878161606849002053034036166658415435987837765371697996478703788135311158501048869436164869792577376059936633474788433905507599649165718996432697075318493185729577680201249346134853599661529487819231677391601745462641774110270642509697887957555899956658097165012050728814271693055810761880402638049169657350013525849243318527054531918754683231686702250069615562297689645562227635495938690561572973812613913486918698783939548564672153828164034938803706921357196873240443689223536006270364106609402868009857928811021173875766715413834958173741545344188367416385876290258477777067579843169112843264797672270062444617084480450170159267591846442101096916701381989341363639897071357820378835844968240484687164639592372788836907844668486824403451826699635157521407401836140232148301077147489288610204606979492686970554116349941138095937969977280365080231584639892370788358669276366659174105661135978519164873369156611440445825121390896246907800331814488744950220309080602601163874980416530948233358009815284813143564207299526265392681389949515808233925463835023810951935850426868301931790270431562923472890576054259366683332856188653975268571781373088512217160134519481805600121478582519735348227220403128249774370265908853543483209329495793493870203685329211452174177712942577790393656574776635057300284148837027942597269934015759632655767152119832389924421266379083017993040703556687111757596716819757616125381573162598299267999200444586897123358822755231231077789211648739155415387322888963015087959134975428023080699286977587526648320984777182593654454823025252714530587056612548630589023021969833108967848609832757341114782161564803893024659196922572654193855382878158671649559664680832140520532713455640071438631739591248958370594713725290338190414172780522224316972161223325729336583225554354869868539835022654916600119396962392357532280140929363302969236558361904202358671237545655219831289281935322320756027453652890945942371662905167645844078835751281822311295932635862465278258575819474103333395090121285276070153729521789073423846816866545309256335727507420903869825523570163712353170959082492942066510888912690545795212544603390687475711728002560487311525691413970281974782307623791754814061556786066099410345779356671734898176141398608134410020393698329378797198626096163792839311866642866065950843626806883916084383007197514796921570917903437490252410619976199615141283874447452331252745623935003422971192210480703005913508997029140168832476850417554456313651758565633455485149615950419093870879857180807586961362503504426832285718467823246227789498581942531858845375007867651697344499563484654032468538209590831208757111276700318250481499095493533154642364505420086761026542752233977175852723179488255462159898151789907501351122957592739843750153902411075392105819669575222483997832821877509381158352513863664997605155599110278621029108052381007262702849105229973274514063314977288236281023140960505510951967809766237094714701614645329044724823090929630365264943518115779983720125845775699931692106186062611708830621281801583356578035201642795028410540716628921238141960143282775715398139603749171077768169487711650309106924088049184205565248656543358393390450790629920863218116975811594784587074398539254854004809240413591821085144466965453442575069074117223750303307978398295790250746435919419493332566617070628308374076969618733225772536777430313698216789690389430944825218900132829507332674353475288940680937900305172373598616069904554826013899402493329826600918086788347921382958466192765442356524830568725684425194161343896596742734103122464930695537178784078084485459653896306268527683779171486825791815414605066493706336338193167612303656012999504735064291729570191773727663037066641215128779208969290243263338383850618046258074228460232921971646783405251982337830499044365920663840281139470121203745188239955575798152253377273243876229652338160165609100516388025840709385985150054846395111745577548617643954573800287310111743310883896895826817049016219256696201949971872438432173336799760279030618436652193438865732909409561539552047674308125787852131946553768251106459711082010242547169505167993857280553528373659804639224276867849171468256260131921625710554928180432167556929901526895507019549816055354352750194607174696740513691953057109677492664432419713857220099909588619384296562624585213847332754975794191679586861358372587549134824584247036527351019690209725157391657966126235273823075601465841964926903497870079778330024923441470630442030213917875029815877830186716883744032220459739187359467441580529419209000875060546743773246453347091019362271547361659320173944627812937698534050653096454505756263847555777506469870388189819034236918979518134059825097648689054528448498623043649707266253802164046872872498508768484970891093977929704235635133419164586485646771588243326738089741384128214831563520268344199703920795382741831154431241481151990071678458971174884722210556285460170801578103607789240253555582341887774056897225163680527957822371983113298139177968733297698175386080131254848582756764061853656189196611772170398822888353153735067706415406105104961125632833333533140213169859920263128883685629487017820605134773593792838355572088036005295096752588649035357407447683564072690720996347965761722690983776153418623592701815609250294817346476841565568001549513434534822742464168940302043234561587318621921072212546488805572360737223439569116136239075086318417518602633189033605783473701026538341114460124560509393839936600485874241262510649438906644162230260705344586757780298591301869707276235706998811365186078538967368097145311954089699764848682862161052514480519400252690712568239736388345356449710564650242751834019809346524952287340811902705489460107628213874125716057753277323858982328097165679516584881467226474766764233564773435939149592158293275008658907199987001453944608270389316572547826093741026004316159826803515101390832029760558226882705322887096556284735699890751710643380034189074777705063252952889701464686862644818773896464089510740011548987448252417108792111839425227161945408759748676287528100209295032389246612599207099635298814788072683164328679448614874797593342065266714354067312007275897940304368786055577342592872655308723866472055086455041027715527179701557543081879664875308276924684691111550985419464358803607061919050529381871671701786232711601175482840432041131631818941652561194213135000878923390074345077628146814251594761636925519526621178780546434563814264397828677587363663227643861042125366594206306202706546671389894807404848677033410651308616407747356809642296711601195950539007829335132589767729723932582631603641161959440895532254054644117737721498209258240923329848021728783532397733459683866718969040769134337460309662798373855688882932411741532941682921766384622162871643074278375704819015341436631613355010869733429646045739978997134464296150795031890001600315230429608635244921877006127129575534097647951337982877804834085054165284406920808078760523081357221112228744529976254659360972453048998161867407395894289713512233429289177171997503433270262946252575600252814009589955726807590815686031446874040312082967303358081358041682606546975873756973764952224863068255774985386583544512782260805092669227728378018413807728405551381960837222292003650724227523493532708419080267196243758239544166770231020327963927464670349753038267998850599013200092068017849245919032102381850098942539934263778632361054403198868955919372069622228301686831064811029735016050058640471282888731787010351389889463705095334276377311004770013282730392339672567020900904996100045521029250873512431999201929265201876605498398875936951257749217505800763240466874959865313775805611085526688693375724914597302043081308504539330131241883482228967977940877693337488900823952309456093253130211741005476210848815673587541829350799484690199280237699709457280217182572703882689767628475816903774600133156875056517173213144855622355059377293859069205265370218735007294214526558199857527587288002737235593290923771048990834002744636820184718581906759333985623757819974810869946671664824107216963835048725737443303926523133383812935009674337056550063270919367988755141570843634362569877373386821341035642051971372616174365762808623377651178122902003769952134539879892681457528223659696914905640316406015407504051541966922448060383626550265876979986883542961270592096484070730671320120208450747212471278407135319490679176067618689591611013285654691612419473492081403733540683803478621989388184863114440869094411130285711806357407541658890175269974765349910628245392951927804843231621145431485877518850448892893200552846449981700631542035644038618219218981431516641484562421447270090023754159774295237543623825098837557460130213927245823123272582484564520096587957373783435683244644139721754313312932761556582816452737014960605172410704168453960759248880117950405260705665112017258670601192336438967870299311147175020391034148509564775069635660628268254804792816371826962097329427691782220707039478013591051028617710620277177367475254388642529398676542537095013721655755835809826123522528698408919961429056889064707572086402098788364514151481758052444083743578101411707008366803581968546282344452296914105567311564835073974472499240612666916003808311948401970188932638188821699658204268816707446311330219913443247695683821287384462010193994287398567129555018209079972384763365787202976299372287842579534055380905395204796948444780891292622125832339423330255958343820543308970235678741705846180975174035636112807572929183881411093508969792044256776957552817370756874156761758406522283860918637423050371695464507384973012580548043288390659319325009541290395120331445359144612795915861556101469993864403994684118157367518288464821736272422108492214405184254821046870181769318140084688099946604672895458370028555042349773792185526232944065523557542050442539626805489977099377606586399984353573816055239163148307979090319246240327598451632589050501822386595900969129287984494963058809444156810970237114607339886475782303728076564697589326878059450204147531600413762997002862485425734002642239393252467210038960369963930061300266580614837316358190868606184476991258429004974235154652620373853048583377903783184279314843790147792706132222695586836168818475500013757570991229294499539412546527893242012436011848570536611306979124935818685015190859444604381654373928043024778907440136698127351011648532363513330374178790096645065776368451460392906145723605437216727192415406219928461622375671647209062645800209575493997307644692043614138837179065050427289350033524563593364137342492383122245374237087400490241029540607346055704044544725183365702773020730600001670932948961492735478838505731408166596171654824508988898045358517664240869216347236257561529222966409837945863237384220784952734416327248737534909137902315081863033422337505520372871627039245404769437950229802393756019554571154120143227146453283987632492622230213632208027037039535224494146144201574881939138118690572506468770805395381148212948772753058574517751474636308682086862800682650334530291253053802688077133538328723835010069003870695541744044296749967328699243684377651065491404533274061064154617426364044289562159705843289521570889625421293178881884273540620832741026989811597565072044715529303656613446954354497674027526532762107315322274739646742919639328031473835580635049156231216043755025017588285619617581116991017371583463953842566005063946707303565321161654935371952930664820099697074212315546081313839379343988109902340174373642455761364475811690177288803888664165292886324206077533988796955834302511260590497215192097652537120865760624963694091255870495325834443043663750906291674086922691051189797284924001334853190055458760619586714558303875788476872591352842057824789523314696811194337239662481953354946714513853028153535502905620343010095594128996708598419081139173100543466392675169938484332986228437558979959456936742205233699584438378473667880535114383885286771188922466000416610456437032692781208613446006227586029837847764829458935351452255270537214790940549346206121481674886750572661539426095392034941321370858600939560186321955979378397205993019639873908189278684584234235176669614919222533256507196768580377999504877833910178016225904191964421544251951999913722490402025226701912525927460497016425406095295901282592182830836094513957018441100911519134297291481405605540966036177910044549329086017758889021000111280879725000869864265575373938560817401711147363065039929983055832886896543415185041212619008948178132454280778828776210302710357239796922092555173489208967001408817274093919483644455482091952509455885144820579989523994342864151803958836609371564997854525082435555471145398747054032095149909809888936983599360376390415339628829234203345845151194793094343782162418494093824617035290015367962057012800985829228280485530984951715890976726336727460490811584643841433475346556829090208924189391190511193477330084085454023061002280508999923226830063323720165142749746716817062645569267831553684410412403984892364037243158302248559436277336200734644458355731990620254175807136565812465612604721765011749048859961927860227290745339481037782611312085432215340531821183909990685006764311548022077829365864884285257518195188153721483561224345642246030111405022309902579926921165459870938971178099806963167594383809129337334858085568195721180740876043283756610977692357613559186198980207799966560235594549579958870560721143569355596735825546663192449654600888224031029275076615055918613217376692107520898729914979300449767846864506983669600782127394143931183829591539437019578990012610712354161026970098073979868891884475882262807200304914669848794851679582202196248977955684161538346574571282654760283895103164594378144447117298294629461019138658552719180341151919935304186376967742443340973283581820271523887409499730829974905197984200046300400008430677057899944213829906025656457686793562629714220570231650036536127405539602330974304586053047463594403758696555545794174245860081427916083900177774647149634127799862516628979395981252403546392655749792837720297676755961948115008418069542556385311174793436605468185217596707366328388218648706725697639276425568187665823344719185297605973567015330916187580086324021244469405732321129513411804152638290616616207223022500863499139333406094796256451443559827916301181932750918368226684936254669989527203729556962421033547457858672616626669908292658207599838736428815451770494099098930347841075530263793382556481936908514983993209921716258632879996932480124272578125189877058669755220451992883495178052996447058329760143868970707032432097461957583182753541762639686040686601196228589117707851194093680261317713161803785322860801702225743186221958147488917876857660295452957904417761180245566829633224050116986218282734347010203797327388004715511701329797678899771028493604440491662564768434160119145051574242379893998701702372252536683245881222038945419801290647768735683383551804324029219243031811757620293047219888916141185091674348259347252532719868619808709482337906935854064391690152503253852709376395078668417690988389339382889152147968472333970074451762139721238112950074980531001070393130777136562467167957031780994465116883940202524569512747697667347922263915360265284689040611293999221103394723090011729481073096345190849311112115147697427199048188084063718980979817939664687708316762070036674241496615753418513815140350429424825460188356331884912851858406767623997338823959004254599201490242593942728865233325370585759172855450129615230312311980441016996311423451048691409827238626355042973957712635008858641962392997734410835052603255215019326645648582143006238261289905456942973413400955482292392036543809543248950054712166835331262470395277205262732839636043345249171005269607977507659093394237811748391196326644991099523719607511930431548267650894755706234140511017729868273373282091796310480354793989706917777306634832812006219610721400502568064555595978366679282889410299506686918090436704195385010146970654599580022027906054090641815829406709846278191058316673853353545938420874837539710187975992765776182735294177076883636087853379226797871238508512784128363240832795514064508213487412970496198902645362267622596818875740205901415655126490128553404075603649919004154212252032164871236736698234935545145949366572001802667368779219595635222439737206583565882178232573917581931159201792533108499444860195056495249274314106632648820233188549731999928379633379655635969785334455821429543912407097063622038216460928681163574393091971133662618788922324432078181797272729393600046486438207280368610739363457037927185085032343021338326349639308298150228920524391216485349373910972137210698292156991241018676552465104929285793582640675373844284838313859046830493021887456895642431150045718453214291781604458502844681788803630157117950877179562355559585804765594033595626485490360686178409645111689724507955754045843724578531806385513206084055019345312818340712756809910769963005428754071532683442041065943215089022577778216513539523191328037252899357517301195384810659437747953474352977560146787966027060671666690847461970816508551956848723472494604666857446848372802100657050529326955413282919581293944873258191559072832021161102569128660103178358103660207417881865726738151280119895964140004815165915128114720972934345939317262041309331202657351712759756386459559440076327039666419863853207470662479521446248364617586440108520293484157306566783155650956008229688107481702156715105166991646475008190324742484027669155181940518468663232690832538241788551949363970036245181758913235283016281605917514051630369531357312625477417591822396634835239639098111766637794971316678109210876643561017655897892865410263522239684065990079664242027910188034717845902685311999658393865257048337418497229239082446968092044399196468832774576299956471762249339809280845474928855746957134681638200053024241346660114859900921489464922528956538155914654061158245572997757000195535339388102605850009192004011166723579759410754728989667347696784056998392826770234101267424048476636428398122958644372529694027450528565837261633522085643301751359562705593886155904866563484613217960250380495614277457841510148728690281714550802860205323541589147905692669472275755808478764390739227681440062979698218091503502771615062861358460318226090789596409484021272634416390302996743858094125583397256128645724866885444692668023626945183041879537817216807014024085320117960949304581043400343391772212446230680613947963149792974452901895398492408189465955724354629664556164041979631472043724615225094322987655723655390561417330964679023639691721827410688878009470819506484648912837859169962483500054182305348269105092890410919392732650043768765621488065617346406506786157721291792919929240719078979869319031896396194162432018543596542852393445795736247616616236276467046031311251004815651563014536939192941997381197320342902930651709425306023713588065316397117504343439176847243956200109492515395147271361114232789455911012940555140224786531998898392791276342379186873221265929574139785977512308611323527072204525083849095221315663578637279718311793054204076457496150146758496612889210369602421345821151576056329868743611496660058509436999956177498106803104007841933466958928711442264540920491619015599902178119999723822195472315506492239847401068399940112248313011594146034346180759880291582573163697586839267277454525138137078307944425514794848976973798755132626816396200332251209646552057432244496610041874679524503826398096542684303137835401418550028539886042477075914427705081586780476081435197594373085600914464535241279623542361746428015864962689606291237771863908453941436798860546482539770842703352387696192955157215627132627976876919426544749811572878925304328915115466980422418152755907534502891391759468203477970452726101232126972775516218841270082903725931448424551185854170775180138432062073659035411180738447691087730821491839799203455033254141529084513691492782128021593311018540265976429278904965104510905768711193231754677557466158729328440172947941146340982800914272302910843039145918851300669457831769635263539686460143585355724142120587280749898842686733181367658319940722760097900011024195724290981535153539880111151920276826032551414662835939356301331475045423059963596467675474684345823565575560065483710886630777618084816478546019751034733350091100797948434937776478581806333873384533213026230607571470201762952665877524813702279153248951200298482886438871319692903685813668347352027803077379765382476906587829051601981364488971755169642166811078538879115966600667175525961918788030734312657679256986057640026620511843094131639300853781067507589483587169975464403968689456296298930931973762901498984992730092971243624124354994341662577876836191755114455193788479384441733400570488315314293062336304982324669458082564256043437443187982566917551130857465912527603828471413542986252179307346393526782323886882195081608526988884563443104991681099751545709743890987349597638985751329908821668669502280953219898651734842025449322893250325720781983883898140960043304401009629630979046002597241029315204201577901771464642256974453613970982150424541930713068857542931852667538057763632976723287538343032319284741735858629952408321332887977845913827087878341057129266376438825114875011522323525423472382762248072565470525213888368542634700133332169348440858081671244497434458982105076408407283338163483166894832813282500901290912195154597768425010236539326895550587994234949005766534735457161346473334137184203279524321562209708497872621252831859156066377572472447188872849760083698649429499397212602724647321366405339697521781219208619549915199379393017075117332765929808729580833749687877215907642908719329517153033349444519873530248208816601298543278672682222022371067630395799477071478028886577330632188503153651259344795668013667096032792767850031071760838317390609085999565471573041838968650061300144891640418969665649093772225081794710625262154047394259625819818431586930264204667581802618000552329917834653044293397298488616245104436049097902935598486805923501181391255895673418319873144136519878052683613653156110955803850111602785809803102296048497090238865493739049364663174966357826137471984722626782620165146004282868944789107482860526276233173629389487157545389735939619300924184925934436225528464697869674623468640476961845781220990836621622571652086096087616114279844067666331148245070698467336015938077168252079220496182998734825148256545870792457053252215914161772092863280773997285383139255907656716158381813487355984800290181615068679036497188625188393928584048555833033396519727008023702341384788690068854305906784066274112463948943341215904627641246389918791745468710799882589994870802880032958493173456042367918011667617621474336048809686216847923429453717486989836104212920587540638620458424289112503013056743738504333952168713391181787736429369487628608420052434078094838780144856935745843935253702931082968269477211055726936057090222797245205533992752115732667458512623216177989648293716405918068273932084838253704110718679692616719091627477117955354359671532216564430711102359266369658136980725746942509556429122641652552548666533318482167022844023674420574240334757616204393482885625373516467065624442210866601877673096343086871127400577966450725626812945595932310678621722561526477920567286651658818238850144884382429850659687998431868597444673748446111278830232301616716541845443692518740967417744073210857785744600190578221251167447212971991492789335049731052310270895752436650952230361084586072207122695009636162819251003533393618757193859166089686664378711881884850824300735245208465293774470883679832387294629773085608599116135556753290098521739510578488512030501380976776446048887260777470386856461380522293337681313182796284359000719992059454993434340410861999951484176067715519659032312453106099731669463712356120737367151584251857438819138802211037686022702780832194763338868680571997240509528593125225376539024131853405342857956417344483223642607525675520368349262084570330395839952849712336178962480445560456403669107213521763679473707610769536586169162189812799048452368248475060717577973381989308527231081204826565377336801900403908157472611254807938348761364206843353278801553268389359466014372158587159138042507639006532519427145016776435339656162834370351524147637565458657708966468536185123237522535713361524033614464877084340459387964418828337909283778396113539907497950331257949547744187210372590919391749254129904094001287051194209124533744237550347998984268520279472705647557325671122773674396370066874745670522044588244914488396533079684090828572519433863919348659344190849344141691012253680446089036262507676769756473156695410157169777361083833114008385996539888625379366135466827936865031506442455171189607983379883071112003928830703084198298093290600459580663549924318612184807219496383823221548974209766711346276539552382444471902572812133587419329756347821802906978042558217564084924876264527230046769861615505595162685254872233284437446144822218296701712215126437685157885998974376580386099027636228841659759699628296373783661583724038773682598461393860038832179504055066902773815773163749637100961880671313109735371001041981006710156216523907209471837284450303551490885242598911466274220366921934295679334119107947463756326210504776723010608767069584626369063365070367720496569099177748985248201562034439317156589903280860960426595706112077297540940995623796096738599020182084503283568990017349371012770140725251443705866284858948895877007176414283217090019169179791627194945795238154958838227614898980674542381168545272066471429466158455354067080367652157954038681774599897651150850119735954405857160935019254727227761718239374117366842836573171302940650541263851635623763897081731140679047829766760616996150832045320925562847918443806143450204050844931477738995426974200705428102395254115802341807534516895802080712498658958518892528206709646161797390707115491186648127096574835963530682467818073620691601983993948295529397687077854375301442124479548405779501529939596198482864651428757165858404713730212207332074009705351396150058873720233279098495982778776826585895688296579784222352193985060313398354226846645107579951549035678650894346462821206920302227694598049092076522843200662176426268143707793357201380421609521160660073074953742373705010385025953386719787124388837677661845274312944143517621196691693050141271637050859940608052995988763621568131427626343786437645225664522463739220764202801781350544374260028086112033454087659625000640398367518508719038029947355936049156095897838227700209454675311922959320879365748470892699798223447907902248723251580030500472611117233332982597400421596241124596879588864548637227493918710194696826534518093228694133888039368811875436261444765489046876079284777788901859384201630137455667335937973529717132112775281397196960936268669544147057102854834334299315348399635782592086909391809164277311879724633410809683419726997925371896899308945199703317137594369870775642316150088355222546650281559371084596187827938701414657520141522650367876826593635890766411366811596646688817680645380181737660711116170190684328550648766067310210175469635396906697865480040407543301055799291867952076026901356624045777542962226098167157453179857395964896374561136394220066442172521749419188960610837779425203112589153802384308174787971995347763370034617319604750945952989775315734987962729058347130773340395727509701205236156768262144878401817513882238593363214653047440721167193199501694293743463245468204219208126874881722802671885149913781217370195484522743790033243520434220328572598654352538263648278572614566910724429358533710944285185715779338359555002204063097677124603952068803381601342026621524109692538010975788878546168393668287955994479759366149166227933981047728737235136343960228887167548757123855418590184081252476823429115186488533700903347556588090105431897956657118427727419662470744626053465374207778423664444969590210308809811769037476078059937939509977200477171518052222683684597995292360446795747776105397057637572956411192602330050406333056240487528349199368322876603498566037205994582733719855416201087481749084844328450444648637389623440943760847980277190549678371258960983623695714277329789263495418049678034188914168737113144457700237427509043509675466677886339874154060356314816275949109190994853063862549235923291150385616057512575224473399632113806930747989250055824832033427998385009878999533147783379986992087948753461107726525136041751058173494275124458817413149336059521725384289642549752676315039390124824833261587843050169598094485769370071412623737094742265221316225827765455533675056777928922023368775655467818427216968270149014277631125167429967771102556205551334743965053357602655100677351585286373390569905514882327899240588731081820263864574911535822749846711171540584889203080927869015188906273218444090256021497594967549993212697180159621411459955267350677842946619228847052981157917631076916057578576858302981860813721299530116637691713194859876883375026320299548571232186009363385766611718705894681492812890301934756944539838172900953547164851950782180969866087947232567754485133368989616278210792090259248267023854027625961789244993616428491423334511634237043697634556107130365726322428199687092227338500587573301589983976268993768044924479061218784518322616205535674646210784557461536041197025995563115707338813816724681899704829914877302310565925409123518053265290186647766919102075593856589157051256412659118978379327335895398634128740774326879043441674206750316833211579257286082880478330930254483987156128578678572356797101676184009841810835038320607233224394060220839819149889685190151460621011583336227404554237232181244276622811723741206678297045107603883496911107469275989068629302244870213240199953114785535713327954624360516173886994834295426554613846238003545347891032792673034143455620912128324107921883370365157991832371881129921008510002559315677787851565011600324567831099550731225796441355084389734438591479585697049209476981945552153520755265292691196716632971285039960199044197527797364946216034440961907784155609108539729189905474664357116734004363050413033509447765049031341867171245593141795166707424745331770569759786472118616254267460520965686830822412413232005605167368939695160216801139252025763744504812075593657432693157062222394085201269844134739852286223134749973200413887094686454042193922646647914426537213558532641286903147692029990034160633508323154256268215167956866403391425652781134663289668545813220482242033214303545753195510408945474501946778223294897979316213929763942815750351393557327186986541611984799884427017537469137444895438413611558027516059448441730699905282285923326336931574625499992572218228089877757258691174307604429431316870249996650911578346351083635228906101947018152896148506864116221585518861001161945579555697336283391202650439612883925976818614694676950799503170021303885849920613514814472912057185586425998147784075409122053453874895076609374868138725481281706734989439421932497369506209380957705920486596201793435237859440179512521341104459789561519947980345069316490227991315771546880149727993146355692285314223731163345840973851179998135952940249829916375473230687977177066477832658419000048195590557825373228509473107931540700897893170301826607369483225742673944148675495032722823276742083190367737194335373353464462569639990189826418818444586179316341521922679649109765932289283805963681181116270943560616004302049834471507118330070406315889136816443979573890831249074167971350685638973766832171969060094252032756940152883775787254155164494786414587086159179411806061791360724303408346113207354244929698675577268941875888281190509964047240470065529004684703049852905309980136417964781530394359636174934022503407174880594758190086077991871331182764550585145405386484845285900496282659177759899021213887462642124308018395443670151244767080886749530738155323749460307981828432454849331676828517350545052007898012918846300857454373800013933967006905079628088260452785332508804224639894728068026395515487209611986697241921174344846986701193327404502945412390218801448457579539248226040835453647251033659939628623611952320817950448937049854769271388390226263217182667049585790431101065264194471286291013552026808787396026412930051828388237706453819347990431035931829645943708740258302647484168674613286561290883260274518654826163261193298813307876954513030672344144872135137551537406591692221239615357946373714378837280952558266588516972453308142737950911617659205402399653799067308997598036915508587483542665920820443428460440183086134973689318256966826041005477510036577198891055978607759125695901493357872235649095868104479708165501363021060054593695397510067449208019507169870369728710338123693204085339154283715001003605195875117250333221167838325024418698780383935232889626273037217034178112367598295145536087101994489440548622294475981725468216537830656153896500202555966685660326472241031364425942605169534012877271491267835947961229822471772594550520969595238899618573233579106005251721602087293175970369545268395611417637166517894540932415928181516490308532898569370613937909799334732613562472916673312524884511357939500337527696888020147363400519181108917772256673481579501044995718373444817704680642401435299572411523844652329444074861984281163370155672376126937287882043626339980929962216602726872860870215325035752115581760603731582074337810171348199036125647348470299304090870725327251691629949606632313035918093336026022778571900630759532805048301105600109538766648991930199786446143721326885290753541016657030256968378160611643556763949311501387125803304947914329973608197401052717593575760410994929619245144745345539835192720663689001963658998656144698579687781808303040079114637203477416135712260830415045877052562821534952118152543053377145426752983939044765051141377931756600028723834267793545886509918325154237298945512556169493872194605015032461526352849785813478133298040573609614156787795911028017875431350303703590242169823699803698346250058435468867714338124420252734069909219248066769986502632299264211767527119181747888578218066488490402427709226186630255893217195616325415213184212131274686931269800426850219838430010421600356003129493472917581528664356654510243008261157480129841824893482775183986525738670633228083858103360681968417814024182796838001891371496727322298985251875235214478448556254950641348966184331354107653331397658629897895603877946788846191248834793571515692826312860222599224879784369975511954586518124914006651628330811934095370658768883502397879535050049512390447025131374298375194435814899159199865411851262186250276218016589611977936435906484992610015558976750377168620091006324438366041225361385046591306116949014162176213744226917055963145943634674130606628762029720674820087555812689365042854107238440979592992958960018202632169671136191237665715739562108126836225661163183775152511685015992746446533191101221204286844428462091314433219934846124843123384579488370895891739006197344538725654254987837661271900888247787593879359200826457820113988499194603954798778775939104857711071292120440503366980515723399910507576740451620222306170454408228620042655804699290614081320047123006740853804980057525977288804433943286044258990014482383857072448458338588869329416872912979549814876367416971688345239874935610491528463455530190346124552350004031973011966208572544842073544519794711196962911037578454776645368135758062316689645730630034229907063980250195361136061327740952701303242812973280703212818458010144534644022621249056219532905865925269666976830047133412240461561115593262755724073373567341280093444356318070959457525301848912367457564568880971120076874643586600674635324503791684230912350217244384069197381144893451101893271602227174999355546172935567383345279472486965806687736512273045668851020152556834393028497371032236167306909693346407636600425669593720168845335958610589694119652455908016488454946291697153025142734432342123429326657880772575568304854233453390530726526209030419967526260784059467482991958762617496277729291231622584208643661501281663037257257869150770805335565396886442004425479782354411727324181287616625019924803516448893699154111162205521186563503422027564919488831738901765364340799082987596920534785755940870618447199608398130659475995934945544947974714977197380579583478064101606109435236491761793801293063743326119584781194366095774033012050867831734123959077400702644550360286028477832245648051695438296524820103628678034701930504638733353588820389368821365881703739636418563490781659692562709757017996372876948996155731493339496459587003470749708725770417731526114937435434954494208246001137954061171432643594250438221239076536675253214703100805115541549592316259294723399905639430068710775645663301075962987800581238317521833419619701400331792248218471740301440965875759744350882705310540589641277276361110770942536305820689076058955832563776624790842108413843245816849592708808274285151016070774209664213431625335482607358456706863536511315367173992929270264054104682429932314317018860924697701451512370464101291825828279120140884426243920386457514002196483109499684634411408579059197196276420008389644867951164421459977915468265797568271685679138314157079139371524414992732388391275330801953120172340868345434193090637456088125500651658519041188412528103530140897606315975754377672515244306965265500658799646943748724617447674663894496538989773071403226381163902367933552849067243814874465100315015336086738845525551985736569465305092741098614782891886844948208410435694558419538729314906110071616725741487542369205038328590730872836742742299826136305105317473123446977222868467011007382991202992618108831772079658177705203156414895150906072930196940099469309066953627852041854601414519634494581295785419767283535694815542085671965345183359884648764717486396808305858094239895389429693604791782847837148277532032773624924364008230925818773354241757362713544777653758669741459766552899042658378360619219482003801758211234316264686604461894994315532310038937884366595172518246569420056798294306131718309882270691496472084944609159547952980107359139296818095211405586597840973092148001792521973227494841189467318110732560865824917298657940557073460735697502025177250575836953638222652139710420660710604014463954973255787814113462780359686153740502321728863121520675528733711145510664685716465881101236391881286350885921197102492333870016384539131142176981012694467013846595024360110523670353029992435211015809904845006063453284386350563762794045303519762961127700121188233576484594363162558770933926967776130606203643963963533381463851607916061771608420616897623167782343571853917003577004241466896740061494659963600551426210896956907910040240864067087042933370988000580392877302951189336829534951403603910385617296047978045922214431983711294263525934164678790291241739249121791064745636150283330967393853102567199970516377046771865096748422377775881839276960329537121265616834930034828670161817945955073542762696114442770208779351387710649145645598117449059324923964262539720449959518998512263577910150132123049710060783179091762555545393306886743845306104045917287240618961840412974497778809297355988088214290174533001112918035817034288001385084673746287211719217727363028513282132801992434233223685411934879419480703891107381391969890785142018204396512264505315787679380184420393621632639714313609557777180228394225925044164250764790424054239501452956445230343714808630504164929186149106791011686147901241503742649691687477551749449795769623346843635994328566151203235622571460988759948343342659321771840340883598996323557303038491079581075664487053866024076887482282215460594885155864961473493651824220526905682890175907061848089338975695171918562285995252090065499741050770988827247850124849845402349459255275025440710903983941705601543246974073423784823834055077694293302280612512130058360053359407547520174473025871276622318669637401956767082822740620007143367210376809677357692124117971514426593992144869608950230904193995895847701889374025205254981150552758311190558155387553703777088149612875630922842712050885982377009129934109168831555769280028955650862205948592819245574402669847950769328264288885713772315857536976854444331255213095660605175269346389078807131263372965507528758494277040534490950464384788285900214347728768717222635874625568110297316220507087383327567085136099625092968500839395871399140828097056535703015922665321287736541942648379766837929466962093237877473869545745204093593033512980486315728973522102295930113299435465023012458284989333943208615851947065585103254468296941971014868584117395695941584401125892100703218403000696983421173385265550527685082619216658660697176182133286880611521218833658248853712607367125411494696338095728704480348426411481944755370315342499620538789702479131780708178328908375188920907573172967097269987370348424060955283945893959984957913897217267534836281774570539838534764239901276450501663485086989103739355442880066876164799807660053615947305143442828946764881278701642846251650987469563603465548832805370242190630769511400993836864756264867394939820693219773289248997549181077110399457806643889153456993852228421887096569983517237460867388803878635851733057632968103143860699062511880395692816248953299247276113108484143948834710338390745438551865584371178696224400424534949209251802493416062868249096281260808410786774467330909791539083041367743954846646536735690221434148564883831925430841359740087125123691133334870158036406763459445704674455640642986787656456390429192040729762992739612470005114913866105928974715970435418620517406166454998950008036345978163161488621824217727028658882626795279835905381561161796948463303393685903142599089330531630798444983971347442400713730233766667164381606451640475374248688571191936215890036514015694395504367877399047347870086648590381217282554907991148096184942619232482314114796458191361251163553542180583728631013425307811714688347063926299572549156191465819366981743808274953947785170487634973065104635798692927541167869979575049283488209158779243311820116883795945385587865331006226837027574130535892097996057075169362781071670914250277429212980156774438846750220028751167078899249808824849544003977720719367129359609621834015942828792886029253048275325288839491527547248785177125860708416742153261118837385495054820411607952267135777421545205626458969579183642732797407356021573919631335925557913578499790579250887104046166045601942295224320160776967734829929229654849068971889907887276873757339827179007231752761288601671413012111378609168180747327331262536176706282090831476459359762416373472024979742034516012840066578005294041248096165517888440644689132668634421074997980778768952141047318337930847507450826328488715961015962067943130135403368788274429749223086548285903375663601456673142994147940323877106227720468920632891199635697554687705170469535532465294722614161915695793936523098139224199997721857915100402398226644540168995901496030221001197878110439615918735207539602173079763058887532957040530274144848778619739188214204771996775261506845767293186880651264839539190895442357704429325631109595533228764016794877393527294310060850250530734697675368766681436280556606848438065145285415604218912735101776262697647588362520375023422552261356189309110821195737566473862854181693863178702995008722243429228797269237959125646946642265911512063336202483035827571557910623678548652837540880597867661243435211369525954795371093927021583750421693602277740181097605894044223399437250349079383363547175605527102815680591268955480458011287796588388981518428698049743419883107415665572286431955111063260139312005286483330273895251670523220580225602648342644109338521479681311700181280747508296010550429480663497530403947550486618481676626061811097725774201561612543596222541129383039643769636272856475517369124638215934188345913958499345910836718097548343612967411368919620411689206754169865647470132729388320199893925239946788181344525007748365405735375677668337647875467111968277132806802144498957167550181586040190355036966205272853671653000869270655798507944286411034351471428961455118956223778646853525254638603757293288456582262894402978236953843428718430321752635398060417984096070970782825188894836862106864075246948261883722934737010108135842912047253256980970884215621150006896227105882626923544624696473925694578640210477699865142384608974283526739942185553971907648474680254567584816703993617539901673644814232830203071532690747013727740105097893958281626272162294468743187133059791758122579524701979816705476852890692145843094765778367656720019564803151546102945506063029736745481518544470148037938703458227803441902520070552162920031605226118075975764615362073927327184408939694705379723060617862820361907319360962799596439728888654395417131213570094963615234575744825166528480866773957200200370173050297407637865288168983595638205900139788243380784321627497092699366387911631621683350453621588055445597508283588038528213648812805690695931687005326903545246756612562209120678965916484259097182786019000498665479072072745644702806046412458376604038036890609543267819631623667628876296846577176428574303245165517064564644590985201453507510831543874742509333402082884311296133167148910700825901056786659553933582282839590300415196463582313042486840091761334474671306390775380011840434144047890513650689972537140638768592811783293860275222751923534993405738058887609602565961676718823976381764252326076655098944034006942324782644738756155901405103012539323001066470303000415387515592605748228668034190021967305554552344289460078898263068895702472904555526061948230517187569938882715305067319615778754748338613263798359659239206276859629622960664468642102079256758946081435973255614743962312645444726704243838454251344013576210221860520994902955440141555793553250752952869274431676326835938552512050755936845289715532396738595289564390766974376377220759787767451135899028969673896165117358078155760029262340446953865484449670033677999546908576355367633806629099086190965912412983346097745071183970574199224333883256510101675132035550160172039497378909894383555782682583991534004612268369762190618638429363823899523929642983153471243534362130192830308958477667269022046921792589401377907249411518853033676004601736635704793817851423465786233838700907183503596512335488315194920239206137465736928411853323827573730446257166180959803706237215557310161904130847205870350907168134883488103900229551282095430333877046160853006631113157603019351476479045791957369861470375196216444067940278056444514433208600266194067987168452888931413689572091274541925229163101878705230931583664626552275518468443590038759624509846342563271816590573080780081552207091421647509633829195587896005087546730855693150754099850299500605488214273853305637832142527379167574495443102204284725931231153743688612044713095004203926845445163720693598858165219833788703518895597362688493501819279008868489775248687671112576534552190676657481908281831011929776771885760354882586969775746577053791055511420117988076279487299307434071986914535992604940570059189121647245962892984504289168654469046811262672099208175790617417586578746116920671834679615148196105413578023796674695220940094111509691351354675659552967908094539376555937859766383125608459391313037400121916938334829242113792442139144407297674444393467871535897524433398328765383612461285227638719899179114698138365825268832901559890334150331135706450971571331544673700566713690722882381754276599698942339985645922844181715191370597317235772627646167571554947598152711942076785095050066316007019070908430167706984745119430056775689454742293770773932683819715456962316356022792189805668976312139430016385539056477214584521303608993828904782920776090585125110877401561051242629168043064414163468657471974912373404755452792819370152109580784134626602967504447192018070849388906627401352190246692885824679376344788454879460356603472692970635948778961596211312083277147202304795165653752153034900100054657031972726939722438860704693394478872687193868592277731605013478941165432273096767946472605306970484070481186258455420687350817081498495098601300427669441182544050968235276437128126710282132554018880819928261212059606432259979261663621844644554286778020396977116554345957181735677125892644008963690361467989710171992503504226448832129865608154724579481953462061111776377376494342343539971330363881660349891871252890197668236945063029735161878077320497872085409756111165272308746760525963923829740539153928776374890537746230979967271646889033301102455187226767389559506443981017781740870106352761068614513393850904810790904396871032631613923671676577866996985259303323334504292034317166829598959224256836226446175693618966129607865440851945600033600495876006248340281625820590883626798752477357678018089299979605747596543666306304103784184456865315395125010197463693998558118554271885725008168941430247085395901746347363564027895673530310334397162593588822840898726654392864689553164260795511982854196201690217044056380064185058356274029658615088531056961210233546351773427930181334168920350781204690953584710155611861920972635977756687136402109966271424030185378737231498655466158594233512393245846010168442729683172020291514733834579783608345486875176405786045334202075084256330291709987014986199665513214363946201287610068614242911746514124131547872759520487083344173572870087844163992588067425789695040646442625223248396788708432784974767165861415771901594551631877299955287210844562005919016585192711623516614431970182243903022614932114842276798340077552338392575165866447806681229701880659048891762829836164428557313619119258165008007038581409025527683950062331931963867903751191175716747735339465312859127978645521741516087289893222161425386058564699969980193463846985762623889074821791155048724084620019473938105567303460737526037285149220854358177455370801280842054768369787649269108427954388004540814320161976580842011521297834940211752246887694046119798425605455109380296500149179886563474418122689862123614585550789918030828753726319800087436131240560749781532844100467701257975034542410759944340775794645223739636612648710027364063391964926634780412735853440506328574168121550058907706968601342673392478095681435330762117106055189532139773763691866327387729810190651194820154771677590838907752671332079594188737346115304015072707839998649666645074578402494432765793822113289979634161071743889084603449860096777105534162005534801255606830570906521622139649230133287522060133395012728830076181195681505771682841126464098479698283122504234809310659675433847934926431028760308986320527858504441269768638068730446193439654877329178638912209846991540613790654331116967368988529080763110530216423151055736044465959052367510548514111874665050693931396359967385707440766780009401680240326831885605787254923408871688439858727157073566600694445961324257625878786543073320206896968478762815730579077853373621183917465945568337104491306670502000222925295724078649190580075150406514226941582323640089029668848616273288224811091712937043601553479377762752629707073383264414896195424731874128390611050401481485450174780083990303295643607125178858495728820767600340380523384836906162387334550875819679452686776544467954641025153475088000252035283514550163365531727755390844636976850811363262875919075109816345114527033989680878579216678971521057688144445118284887785190659992634765038074139038350230773513170129057037187771291085029169347507261157995963047006657781964139844193883238692482466453778694394852037407723832055841634242261530035795486371326893902508341253793612398148414677789888693972120793192314563565855540949198345126851047767213432020297070363053845989818932239680798906530491868036727395957980829295053171280955302852742623710852862023555713798909271856861045230734993979090399623229700872938261376198018871888927826272393710082977576664578901359570163465844084017872453792406092503486547721588342998412779819371481209798132241171604356530592989005114724483945864286977500769636677311757447212920614255069719844756977920088324244141004435330804599068767053066036342423349718623634644190748459277968415471348135754898295943149446045221510889096253630315036493848381342799616982953408926437020561181539287640604911475896386063501925453104824079905111653809236353672000105773846492668633432333635275689048417425025682671638307670137196714871781120572570206631533957950953051704361401390173623560602066084704369707720663553727045898314851906529282082160979054441808657324562128443939901840644810385973118168007151090842830190651636285717662422590264357508360055488930732063794353506279207890974589297013413983174280877949084770042436200510093492669268810194115170247339292337396635043194679878555684139942817047367034197239033689811425267835325268978938369658844566511553392532138631654429468417922332557473422127799651638087391726196569028173651342482835193863586483983517391019521701381410452777857352362945602597105930159659505221124076365276317614865375068604427055784612141383902365288067626968839329910353033531735831355098001642281264095325366308712688402590840551328377044570053798333362425359940794276541403121491719233778478673949432563680896153351467568922537083806993766369542134190580130229090023368881040027336195063782069800777561756725417162198950122460609100918364297010595240516603082736998425745201293910563931895988646252671883190883737970859417226325085687151037314140420219273588794272156052173369991826904690708361714870078532716742744253780669572093571153360511265561888480989638690380607038603235561282325351027052707615414092151651315602183089498444210560460168007965122163599855843412017784959626632732390001343184503108975079433914251871564870622047338003456935130270278039761870318941515487234763721082352681025944710689768482283572356591137508782228605415342729636238403093358942402196062512271484113683587432825767657227056539255985856401575878169296853535659565938713938356069460545806746785737616679610681242694898657648198197072110360760747911953326760496775416755092040454151474873583815712054314330485806255613874250810295590497883886961458240531045100260733496983026631018182148462933395886199083419177145290786655719598054285588725580986733298013707530221683809542376400071794393441225028716209223243315856824495866056493798918665146273119607165764864533014801916992361070369445917864484645760170039222943708315970065140357367109700059996912323662036327828591263436582796377737293176907975208063540272511755725428192037942446156310119020802718221194885475577386173567137874709226257847245424935596557633844495475301858120697545280399487857793381431523011807853997763256644272326068955479927598950276462243994904805019755632215797713426642176669810873855429365033623402030961342364639209124826661773887180179665709413153537119130256296003410112242594229715284977241427774540134973456649065188969814056951152696853248914924723904543683644722265054688766294020152102641496053185144687374667386172658945340396797193294166394399436196109088361972502401007160659362069340773184852324474644444035740403223553697057702686754942496038545601268607514225464278331918790542256594329002800097010531668149323091338143906838137645081487907126095467560681131142009862883596478765025240072044340312071420436111046924944323224540905761705020149926849293404252058673902716873391236610042773945131065844405900393455708224242896365821708450041896427343975774496788763971883006108755856140365755247967012931987044819122654160513554295564944035206234759391434092834969347421206049144165181736899943477151579429404117052569543295078146254681503309250137431317631211456366160825144440454640986107256087374927079819704293914186904676863206231970466059046421423009234287529298610623898078943716369644983416369019127764556139311639844401303000786821691821327052763015828069283126463800033033080382334439776003085648247598563770079509758293913667603207124438290349844549644913489036041468996277693949623528928326563275402519019920798789347926372798759793286119363429954617769259867624937977383798984888734944819117617593015293828347877170058466555149093802838707455201028841017855652800578724191734287183984162615774769355802865382041823388039715560179189282230936773890199976841929581616272260567212052224145906498504691179576876282806038940317035273857127368064025306165688205085047211491380860452569006851444423738158219387238427738766676018930704559578719835088152247081501746651995670342493168819573804458257323311931870510563767755135720219617818340426776353112992175450124503353947245078871062053107932160059740756374264538918102702382441081105006924508718168227684930613241894956489655419419826325152584613677968351177575834818936015243970907847287110557801044911493491844121711347224404373149671683660760893371593923666771097649787143291450298210297959429559228742542712484406505562916504523486698036380418631608508073254442532202128410961402175480662757334310598215729046394136200197847988058351182738571134479899120141689099484775948174821184469040794134934463929121696005059441290596430007249651146958247012886920505193046185030192919625606945818203659395325327269787203535561167624722223640515101941601683935361281795796693169321161679536727956671764587814580797605786688915134270696666690731476079889662524887128714346439128599247542085841587791363479132516584307037541494967619099664580376640207889613322214149069732062610615276029840230893784128811844680834219440807277590095663182550090957273526368461039795662400263693472721353696122504298517219407184526356353384028489387885952961299742534057856220480895119865675603795832594022284560827347311562168592325642412396166070227299328553964878570258577964952486004237719675707846580141532639740080683158609741055329142115248222539969230065092348551614558940526037534646760863090683486040452035172100448437840897185432055891637438400791744859979273955034692003684688000605994811205771961907570610459450822803338017891545555917272951472250518485357438511863032604599445403469075300236614357401540866551820443074716059820528578322396746664054478887693412618251202500022827607950711555501060487690596984420630523385734237442065860562960100570986951128146234608075289369094873060572250919120172962903187407890114996859819169274476331723291211910923032452491337795513917275224986481798362358410799429395397818322650823266734994099804115360956646193198341972874748535435778807040350851431409764137222497478019951206971747461404972978320511391572369127702737487952774200503821368620370468480333770285878819721964543729918558203516344331089233645686131215678052135517271351117143522263834224798861858869623099168334180595700481413926938754211406870647972901514303266780724718656493538670565150590245841141059236142495539667561623424644643195063415687174203019359718840096178171425327863952905871051912743888035041982366466988422899732369843191182543458926494122620497918316776930091567774061649116116438884796658802891840271227770719114370785404485015314201014300040373499229771877020637931266235767789957923144521436885865519840833393684065262738054650189089795560420385951769678098074836296915081586321401856106021341028285933858994830586678666300908920752487604257578461224732777238083230840995381933889865231699543020590189990501609741885443537795603969246841120346316096453366508500457367357941266609011125378662297318236280480574909237811920197681826656549790632706221630680276464212364559230338342411941240902107373065939065336804489756679405620835688551306660484290673583429220921551021904339036845895744882648610063343626607620648541608951634084991062422563602556431513042526805114183481509598749002476596608356257445362920251270011958935322540652123768582488575708211025477929705595946183183773488275287364411768401527583181554111079056646109888447144569568776434521378168934517645307080727178216218896904558706563388687021522199628598353418395068266508581403335839775921324604727477047818311467122441690743788194429971612588397813470843156194918748352467684759341608445100707122119737480239813589760676199776405279649305624438936127139504562843037314260200128231346173454157874594803257497161143701388298887776425241038825855418337901844654992538283147398510675291257038470844498858709516189569549570841189950334827485857542578990335715045664761650478697281331458246652429282836448218684378971969624139813422700437657375327595416190548620722492597639826839986620547543388775193898328530466115374810426626706496310736064340824675038327175614592384553356003156575567914761233615215445976960735921710545065338232230068288988511773869341577245735610567677888321925958752873023792838691644546311998253745063526298919968451785881960013611898060148897292682160838160369760340552387691891123808184925400782198804724175405513919535670893126540513676045637777188766341435949939963593600484372319926406310552662588988431467242303142447692638169747786232543109603366216324821039669121368772988420821306923843965480618155637444657489387791665701611667128428361235346539749315791028994925775388106275594262351222420857238696991308375718507846058466726757923789531039663264404459561493605446760144684174000883162670793405170221304146609896181815142776424781673109690764197776707985372497241576986990436988238402919773410535363279119126502905147010808195679875621602969016194416132180451241475649224956444346717622947894243260943003464602730605670802230572288764467901729112373429794755632841511004919445403613428296186642050027952828442418098135302428603659103776766414143037989005616550573750428748740526480088255114138528370404170608856285598102812136284808625734412337590185428912989934055116787233723713656153534140229220011578852723237084890290605271407434589107959309127473473547915178624971216523128603016758786160717405197761635786248251508050851444253452669924765389107534822282886117586339729186103137827380242436023995058109372945807506089194774571302807031573421139736749067991996051618322106771079745725979148029768463590687160585177117367597967748051079824869506498086664848701556511454825629982587353192383901353146436576491950040487024063797774006545519626621935658004126209026470401565485848605118830865622373394936273521311220428589690981997829559810920714157157565518383138661932027695006530930724106038720294211762552129047562658722981523995788062290104226704731014841032955820233971211682018605802575071336191322064912166938300627429810611218063701612081644643727147785963980556107638338210305628193606354184466848446184213320985432425655501791693009249803496456824693579751376217459481215895231634014037455351098599235890325250644727879468256609906865000070854450717947630918506972559969679753820940597594582913828933336055460370846059750815193670045777850351829692814183902397963513150758965748625896146674426492518911331464877230886045071895772618268314851665390749927067229657714844618526282805096378783484019463449805281206553687869530278542004064629224905050586324774408347662034689382033533972723325941526630658807415482963330673429275690930046025257542781644907733100268810471915621704419864344228695787694124542946299496257094551756070541975869864530514972482846335902880315562263638071346446948553492482722079475124786916055737196687776756139112789279121737559863658785547828136841481794791330263036947482584550576413453257069778609108378790324762157615921185063335623536150740411754226478428333179721036081390649938255078456331700217337384796765625096860119696725842472058653234520463032908572317913219041542295467413263764672489437048092376997556683530898572156553142165212374024411156096746240105113310633969610184709106046709379893834733287415910482981099363022599255630374708491208802168071140306347394714192394088842946345508686877881422996904845854202173964828886921510496588214544873827961049676954412744576303735911107590479965529213454773247617907404543571832418569569166962836182102752021415335170993473919773590336833019192548666474146736916489444396896915843665641321002333037456867083827528276879725859274946464098116193615243367992518087328640511052171118436790894271069041067294001951169691968241987094646123635181354739855346042183622491352306968438136339248384978841053371770437703342124445705774544180054976394186252578904697571292371289646034380411786371959964849563979706125889602757790504134195431188347471820259658576348579875740367318805324989754787779768474921690638606803321596078910235204770915663339899819118696672907313035039193135392500420359690670270943462989614579686932047191490332555579023909525284503736654728983519562688206493144059235078923380782591437267735069030418993316734989557930385074706608117214199796940868210924472156835920126366688448374024858936961738990586275232792915616038480872587341637295578958979866511020893919377302630694261290814717909644014446487884005581893326233124265142985146948144300988669517308065068759145503227922786043252858341337559633403008239317945980989775391164373308599935709980437700179256923014285889605881039418397341661851286385263145017445449804826854428818872420603432192931412359479290917567162931771600016091948706329427336045034177310491308404192824184539611072007581806095413624494247852543277059508332569296757403933176297542223065586257764859603759960123306291943206923893528965356851546920655913568903393621518871993356447002337926925708303264574962161030917443177663131416074255343585224444690854439243602733891550883473508073352468860810275607170079563187831079139190332474930290309238183883319297002570626362136677378674323347952617647742691320469428329071863342699962021213720224469232206879708396496278845753397722569843283339441034359643642273111576300020900116610609556749740573700569302664537803977226458565959361499103545851949699389625635399341650958119577998599140988220312208380397100981458669544585218324246608412785055710399664508140476026868654306901664337117232753616641708428446108353987076132691781510412789815085574528487588637123519625115998354096036300895035458841077758815565523909082092673876210139315555614494351914762874054327338504205468215262605633661965064307188987806935078228525650358634642229903400218913203486405280301208932454049341214787782797882853365944563809011514957756875915752675152098549715484970361090767864115540822526531112620072622007259381871253262235794729447422566688748575468887259190659607256320788129539912550265936658575324116702931511052721046695498543388139628171971116801783751500652994273552421232143097052459859914579958807586221169920959870068022783259051955647714784733564677770725869144912452939600639545434529377534729714436594900764428372693811387001054192229216117768056121219992661429046783321469929709959715863608935003913537638668846026327668036685896024204366550888981950481636031454528221240812747367688899095958315338872668516934363751087629567935375114950173443758517604502019444742022635821474870927312439561913609288213256324702072615005142740351118010017765226776675147943041103686041935728316729117160225741338827927182530649235206452000863643848682365516844515632623812865050440408205294935926021484280196336928603984831430919571895416504577261243786336208757845556377428360032234909780751375288357480943857490274082865091456651308914124052423641001654011770147145214421873990567292378595080905463027400742777730349269874733564804493440554714723897121913612925106697322996471434622899510989892964100046577881108805100727647512535971814361979400180200105448733417372057624520045134808416427740220587934019722652454117556089051271174216152641351380375183157958834405850847797027345788812877960136834364192286586019901586741522193483193863701344198363058257235573217556552897130821173018913081308051178442453019221013642322102382131082754970753372298402941269155157191778247574957594413686701175257575145043024989267435178207819015121939217038474267204421949189338767155972071085554846915329707223912537015024130946168277094681106579939138002433900312744202831728787397208255804470631488848361826904110338250939123085260374770987204319761437213556060077715579337890130618048318184394346114800564511243941261945528331269864579144137668503914456495199409900974818635236708073863123157561824474229134964555811021574165954064572008733697667478949651943341887360479667789693437168979091812675478267523156507892209448999133950799207833439564378943623471786524258034985248742419037652766267879993155616441859089694556969848926974773941694074742248536188079504706637115426913220230081818662911038120999468098587416635470231590649923603288033226298007804945394404650368806983958240427713885320596241530901615619917121066704996678162644630775154458306809994606244639147199351347378012498543832887560812394092217493382008084196200970744477694864588086392014265522943664226178023655770688759155757252641011313234948040814367519140823949815483346337340870862263462043787267757642357789924183035267902377997128831247155539591620668220964733486104212029514736518345425638063409613079170921916281459918386748709943483080938725478433384690117100802186276947113245329650961889181789091399827174419623542428713871547107529114292456156101045646031252441960792622907380890584021003163454148990446399824480644804118265592436484455465246591969604809285310104779663290722050803084565448137860488379938211593338945519466474092328732094029852584759423422100489760926198248589296810891761436015593137325732284853480382232116196357981968002949248095682535566340533857309646622974896167327745270939277968055301619528907226404293792737011401174596131642691847307600894024080139631119392295017815032805112746345473387522279674186407316963470098508827478551230596083981461093908558972671710518459980385867148794035868893233628321887982671936780578808522872533004277512397913427734744968314449140646310885652737232604401806247016195226765362658194478631791659540793232899717779909079515876370848679212235710054394607875774815127089360780015637515266564335180613958504091453976949555385502179213267268491190520250502541062260565355667743419587796340490414099779279996295377668666400759719457735254745486050626115247480395786929615409076086919692732682719928929697458709870878267091222708836681523234991648342601640414346699434411610837195231816468035605552194285044835318415968086437743338369758438521725437873821648549177306296422854770298881375219100865898089106212391327304925789956312481085681521380702213787008349159515101022023394152702689842368059163123870436363460883596393048450190331443991699052702631444055069738377199256782206105370018348734753028631268630781516695290926485932052750087372631491490597381666161758456088630479763667362254997364135713535846614458526875317095069874967967692892745024737478094567282095324385840604926448221741002656581287796730979484459373304150902566962765110953841036760968190574122122809744535950054727053167138415853842591988337134218614732786837376956784700461014757811413962163520511928172246354069003256222061776486838460069355593489869644145136287950999654475651343554369658017047580130395893276159129089791541644461843892814636572124897907777912382615340098055897060840658249318383488116004636506025517976027531420720586672074237190410476322843586077247820672352409043036078772799190672802085781784481245104747730185510680056602327111052280268858803109773845289408831927243266089899399305773494359386459594252655151332001419651294357955374331272687683634571132133461759632819607252369746677131418262593461826046826206770309398349579739555046477492324880210584245219735452261486651394372473050355547742109480528198176496643825874687261158015662116153274265544349636091599967203796315345597694660899086795378807397016158310850981483446569807910186228558939950344473642870996599830081432133637849524242683343508054710009761586947085232507136475547540175927500734995575278758905066997676448428530925575510392347695096442270173334337593333891410515728692553704425783287993226969263246837301798402776914020004558213714515390207802459024050780680004587818583871248468986207936687234305475898183540768793814952187049137249360232935900870938481381457612143070138587106832995779483462671095161602607549545566873269432592325065704360624112740612486297647541432730800371784464189029281299480034763983976056136019071560008455328215664869945609685160681234282675190194339967918610581004748743528880107893290779659413516501172469325645640379940527743059464918072466344168832208326060686905884897599650918455134285754293210705579914423902593928850699997431834354629947110327519494378221831558987060586489369431088696379051497873740675056673983461589965048410876436811178229375691055866944980784615255723084585086003822456804800996919468385293408942269569926876135620696462620797720322285220799709138871627143579578188723672030245534654783536148406713542895475541873073697205765934402823390247737332033843646190897281857297028530515396024085528933730686336113028093800910515003153112064785336116725192886752914445173567650807893756247822204329276250979170357677238842861303224000677104083484619797460083262443980948297815304853669290019475482761193079459990405762077571743806811465480878778562344925275706485510851177272095629689640308702559426026311336496467678343939902191925723102098520885756481924407623876234431013715249031337976690241434312923842976219387524739877849233048578809068059052986064279715013438932035417619575339217172012559991814579925709149921833691975785926681231678360231217074577681228679725180343829167990238513100823097763088934450675785538234121917565317985737211612119576626218414059136886135737664564681052870010614248297875429902113259631831938412787693690925504531435367496048699094095063911292934695531539621893482239140128229530838074011302313059339105628934708447422489057313707370752536804508647567010327120343867401266762034311348658599610054958773650591381781351750706702264192204854250693583503654752385232811453922996189020594248411245792004705996545919179398762415531097690926794967939985118118389443227484805842058589666032208108281104165230882459491182205680053548085868459047506555978984943267915483668490044490140102995159013706877093139334276723453501708205331408261833247898991190049902398725664110202666834791238590682990300170691214647022967155666820009902183099757698009987648566524172834002549778597659072794724189544235407366968091159652623500487628956170512097032891765716112360144525583923281259243502487284137701455467957151194506194504960837864972192715967119834281424370204803330937961697932837800819059949917209855646704139157599463841691418155965198605416022996096144856137779388891966118114328375371638525323136222733188377203736356207491493397928257368052881198517727493821804374866137114724964921340314792576741170155443939328289310611812123691996382144221784638594877006103459659795990627018692561602992728602707527561331936667812821711788066654178643414404795647903117577811486295928150196649600529270238669923258866281851427854503766674577084034378279325527397908427978280899981291349880533100106383733237266072538634903434886100711708358600714782194126058529840250181015776018423808800767995287864155332599180683625564236931556989358382215039843947373389395503464681683587852098541562314019819723474660020672177465870264427275602526180227822909539990313703084068118760979917432552045594927243517975540850135041210855956352545090052117517190604197256874622579283532171985017920045301062302162094810552071673665988592615610255402044622497312689413021264744604660095935511866551878803383184089496795218540693987552367519191152292040663341507592303767210169232441978876765082454986296949723586182514732855496923167239028008708587711463176297069570706724253268547929137032294889182207724692694970703060055923484356159326742702772161681376883315802393918353122334379643194120777422094103724877418514682424611123866995922659811179375786758927351051388578376148380631071653293862374294063942901239339935154696196914680014740120163284534762399253562121747600113000245450220993650451459878278689408240633624773387779212835777572609322896546790707891051973946184823317000776218215152506631613055237023642661351566040376669314405523300184974657745081757411652239368398354061463122254199938726582907944574822938360519492301376332503551702309915342051873630997486710706820936822656415957712345346617621055402804271505764634382871173149885758432065213099163874379918538252545990888350427527222352034174075122586305135890499395757795635859004177339804026131175047625465851219297087518381723548826011633927986412996890159525596305639744219818886039559754934977630594593513201047134339557126392051218843861078375001046568735694559653679331865956798661068391921105275660308340527892853599297878945079254546250826634595524582303266692120774125993298035515708458844632075943927962127796315542150374854095127374125072620160853510332955608861334766161968140388197506446226620421378073747958858359508392410807843163406417601242018387236187565041700794534317226254469013640830202131418573069875195551836406432681794680898527249711968145423210249054471415487300652072356348077242130504012669619666286917457368589596108210340828606294467182745629581510797493465712349059528517755886671437085659493494028761469366411046626612416548506304166938910323624292775662510174119770301577783676560460871840420824373507855138867576233703104538393062057586408691379873233926334253487362346629913285988945599362845430682603874742344343846801871204032612372635611623612227890265637793212316796799329098806720195389687406613555151446471507445058732470541826178886761399874548999564629527388565974197352213002636675803628075878913219811836557691619460141560398810476512370353140777020240816671692299059005631331053070133836397363687073805722668847863601453293835208590901673140612665537002888354735041217503816836113437001990955862500811735285739068564750281299876458098337377405153348269067295543940987683271535798276879117327872229056423357982763741840435094396488057176600756813347909057080679122470785955498848586983200169323680573671759222048653049346479698254698397519974443860250371386992857542930192122702598414728447099486962783851172684121087730044740244160548191875551154296036760660243561254961032401194368713712632382254279551041022083301746074697124632665756683910671345584689685091676138958634814471178974308462879895023929540149240345159621938034647291082160774553094674968720513438487232102488167594623310353778535320727088460988931106563729367626602349727429241939941577661223638935409262511019378581176863187209970338843942759273390520742644553674575501025622218974947326270036837851829535079804197989887367945603354466358038886234002683878711223523272705572320654431156468594067057259070489579075501265957884292247000058419114776893961466483790141473736110540037227614700828811217291136312834534752859444229576896676999890640265631253978266331203218831214727545500066024117810652301759749082579773760407239094321275098777090908069118891415312591865745836041537326809989937303742997479973151411760212475738597286176014758615788563146340946271499236246976809878314641235545669262372464116888425352519841663165624111288817019358419533755225414568425090219420276910806476393334123854283041913336520728461016860160343429661829398785502990956580469259295384435100755364792904732645134528636599142379438360466731751182517775830818408520781626722383962702736059980565256485718619065068119611163941889100406404477976010295126711571692012582719930937493639285695709361102787566871345082659026511648241789095667967577408678667205366868039465353226743133207437943322794281634932581276124707748222122544131461938705556245188848343614904940364626282710565213471900760233955829682850870537098075758782773823202956561458755907123801182394177427191911599891765648943072442320787780296265991597979817421994185154194055006917901890722965145412829265891540267793843692197404637443022327687126711666427343942343489206802155933523526500200729473837307369769966515256434370461367762938440558811287202030967714043990808359470829327124426800635221188211160229627640535801830648158770261769806548053708840363085258071603869780362199818172163683528240453899718079742253918543202964300083747192518374842461473904296889464422071476446995405823780978697153601526084360626650883164444787584629237935847011689117950677715883062762905553910390633182810933943886552662671565859872256944572852301909988212313015606869648989612789766063317263022070849313619324931407440145546533861593086280364949648561296006821291716585715550862349176926213141119399724046466678643503853465974030354844120136808330309696665450607087756217358596726413834066232600841245702759747795508691387479962357874494409668974261463939075461982286094644532024934535606566280377641591361458327407896663076693362781329952004018455303622282160429388796817519429909560661576420445977882798933892456720602655677862430640215097792272597250975270151342603460498347934384051353532294051128933356848049215619168841653509587246192779805859663404275430994277978328456995279178598813567489578759615438577309030628026084912963482443841649002890982061885110167631639026359595387279200484635738854801160546707879583616928442127351639691893310107300414020445961859168219988717710954048877891620429564241921220416332582161264809548952936811311535646823771757047677298686983320456364130366106965812202158974562877216269839741818902303965940846564363445049043416260065493166127864743440754556611256623556346748843274651482116887870385200725549712623650247429958693568272574270405899835086519529058419693623828042959021531345834397073075126574353727516074877073064083598842423514984041398441356936116716224162388513133776181553602598689402492232626731333763586017265669111533075477801783218492874015356217220565493580618898306839491995783291759967642518049990243714654870515527858724034496969570035762982209069878932530706864500128622788097295494898440126417878804673450576324383280131324136958709296716177192308517482832989780354024614227701814547600035694743468818417002882074687825288849494130802687085179919586411358311503288906695111273470961565414584632830547814110484011881011805514325647465781402061282970331423492047854634443911081354790770256149671905410315640126026625050771584780577839425783986704755346023430159923290887644526360496489685136376524782423612260049865516362044355108369085449353054203164394997197762575459473014122292508078442770138149494710299032627323939914081611159833617378683603341728239003032258491261789658091222783262370704360185426967632810356195120076077618442232998355879246217151113415575279640937913214408632273411394055100703950163629930440029627136921605903817521120544684413859216224200813093856928163555295592730679506930021946818663146520753529700653799272580487511822195868505091397595777436240232060508012242738855548917792141984168797083203826670011688697449762948614014034795661338465895624351081514409749962847479317812898339955966247641386390813315418134804713069698326680439855038349020023633845569020810205191609203020931685351495172623655922801658795746415020172539576630511334528421259731664225477884158644270483017623065099529938247757523254452196941691791656221342542926883138686341363361754017465934884365086607308877182923721239648455420416334138398247145318588065254573100895352769770842940046844057195068764679081947198380580138018656370998449357116802002415512668244193689536921425584380145078874039633322959400674402352175895642457059478501456154926295179249326469431655443372397942802546313008337834770215529857183632265330330563393324615734106466250840295340939545377111723510657786331637743918243777216271522989604698582079324221804182618799592927677876323409532631942036038858552633068627031349139612957161362238059447165030224333716317179463069656276037863696865535974207573029018522849721910563135762737532924919984100972905225542194828707230714045961499559895275665840514383055324246862540421446621367123246102545820887880102140170306447794106479029261595573739140451083930437632217258515068664312109740504156416006584035713674075967977781280180866093413369736614170728767466999636370307179735997203923692702790918638390803665896305550600287613536841399877872595050361934343798162762273095149794817764637090154320228859264487551139400253399291710640781747208279234428168736530450629340170304735854868591762676458951101410432723716672497558977473984400931421943901868913773623606056614704000522120782561696315793839004525520528254019272051591083997022107743482484845302033994285252520650569890522697117153729491425791646851132517585542298082060509912864870480777655406226655244415919204693307066902949513977770919466568613666648542157471578421512846557623384985739981615348704027615357222704058770498839952174780046615842161347821959533897510894066589956110942488039402744743640807883972903240574212508151406003358501246576739491250053350846064856409812262975313239517535820235913255287263939371497100120315219961902013804374176323716064815888192463807048559465669511971178881020791777900825326621852200972424851767838360865687108656010081918897500924400522970753267336320875602333050541932691418783191268638245302040050376837182405610044795876517812104391121186013305869439618137914465175831913504787639336269994337861011464552459201472579798993354046763900537373682396405299842018323812385769729765295050747220812877425878925366442852489587333285403774021946568077068906953469451172392814856134977406692161064354481861190732062161010106121326857255744491609655360067908687231601795066427905551720231049028424575521742263105706235649164315243661939706809170425894307020323611710659303499086442939751535314972625956658581524492556297429885500688609344906768825634217589093485468802508786016787471027770087625835946818085929395695168616073015913755181281532198935514229464278657549866392465597179207187238042428977052558523384042895264952579941231294664317346282671606983555133237649433855523294108658396935823589947346371398584421169821725074925856536284648455262986524434907481882956114871414509035762430031821245146285457394750754695204744110661607920751262761226864488949691631202740971546163531040742010980263389436901104241404272565046282348168556851053181040315078895696660223976202838840267219075114452540022448985018733170959379007895298630504143501384852203116764120879117517744204164458122522605374642283357331058055305634540236265823797794521097598997867003285777078080506350487986385852582992532452039796835833465834613756444972168153893463355018821895794163157175855749889036872036294948320077745755551631740526228951566330355645071558927498303795996731697712341573882112187369796313362096680493847810166095312014478374614367515878930931682969673138957865424558619753153377245874576637765380244356940678323398293070122255601471125437759374592262585516454353944067961506775033222039688661174946701295636466028358640930111923179641792534205350647560407205266366416440559353894251287785597219058180115567117279122064224836071580380353319605251134699363949093020421538900801625567173861229672520904555905793587707540415317920574819015771652162533771298364434634389217928403193409548365698404977150312726650906711910227967259466322812643420625597382244984541816116027847597430117530760351251285923267728534439885886516860790382518866919258302372117324502783349886569195768981792929023318870587711186153751660316051877953175181522189729001083820921476100031928796180301445204543463943258934674617939244382506118349398143166186907684304033452187466765170575088601292336451805068033840344610171946676507461585386865755694178437445438735246730505428662855721532124159878589520522395191187821148033263107746342998591624561121553853823071703762496925231625518498067456113739190852888314993541802720011661873805048481108127985428543480796631499645108394920486938783205120197449993255642991401888573396124851847608184992462069545261319606395104263531254152408588198374109016828234149945868917531482415780799713881504723439861042705440008800558843943898541262835972788859855713272981951793427231791075901873171332788334536963860573822420337044509909025153364759690182997040359245633618603272995069325016540377201901979683040570617759391010736986749284122902284543882927485815938851437330485235709492477655903704801991486596344511044601818610140251977400401441314339783788683714538027371463441783085843605774223033362602285135638255620633218468977837806210164495360311847076895183329064618057548711206637868492152738987522892182512125154007191363794872095941438251758984359141395103774071734193001405051312555471342295619521659715159766065968542305061603323873685979926908455900668298912784567773284061963936875253904867670320862161281734449200299948211349912010058706712487545951414661729263475301608630380435009776162760390054690860202840521030192114109452505623607094792296521634665925692377611987548428132918008878452422475299933622421208849948150236786007864193496706628799002139921825459941346532068030274666617202685203068469525258561153802433940385170025680324450421514495791002329285493580448971857749749131836151175871692301287171861379705801497902806459782044645389582806495376700502465292029961328969230349323762076332445096135250426651481211943483876613463711958062630478653516775404841789584694205058433653965134979675697737567720409409347702480940712528489821576242633312529559837538760678432430964906338912981187515361505625438321032734401227096667835844409269742629281453973798162658273301512921210654297858008017901313737708520517666226608097987172995040263423499201926346781519429047310794792931070909046385550600707729407840058580025468165267099264497638952197009578326569609251209277550999686242588107783089664723166105827339582096374111540898619053625060209363770576885755839294445659683451879642814240818716794695086989645328062328628016742839302141141371039748111404456496495437362729979548676571998869166319747584780962064108226364978905500542829614077872143142971974245106075984620270933083312739704045644411734634082505577095543331474278535693108558410418399177617168769417589329590408744370928782206302147839031458115008249448759995166818101604645244299187005493343944367702794124075412164603357465134241888049478971885071168101957410400644636343888082317579735769866057057259465920446736228770497997893597876722598972886107629020056210007936492366900108609272328204729020115310668634907173352644978812596547468459580233348720220729275738282892121417410393331360058370293100956871969450658598283342183695471262818163249519460160964823087523302028630659530926800240694131670138443743632750757652090754757131394079959211324265364020741298193000439477469479235168253217713122761773807256496964177948854524578623516219203698114826671522373693072148122677538302340933028744994177074308970042951213081462313164395806952244900891692528603459225898843293086951718707984430477531566960506698349278308301193516663540142078821057403325267152678062861828518535573408914423769467681524463835884803532610469726978458812364249323145631221165261656470410686068339832531689904988160474992971120106804609794683009241330158491826370291359966209460289030291529497513662996063814943926129761101743658777644674809518049712794139327866141692818998699282689334131746168537316181955921091801054645207143397374486897584912643356007409731152590561793777935527419159260343712929871501298767014214924148571597984425821327402577372610329642861376000181209631133338705340467654955116026062760004614445739730069696063073597352278984716679198945607808334534778460771474291530897076448587047026973769733842200734279042243132399893176156773396231232328811849318799955747823378687669882157262260482665827520677835131829324717357508903203093220922431205830387598445378826371633168933740187518021754285409448096264077105577841493294578643542362946504310360187948340359603737315906758418060926890227383545150349643893009556567355057985876831652089295655028501713139368165838450641426353205083388643910179932020655389735948055871416444517978966509278750071430516599326803345431763297705943306610848791482413364288153762075494523059320223079273508066490502949092815768131541413961328504841205193536507180041713223940729301411864960572038534112943915817227876274362834909497705127120434102467731805171990064544461214555361054222805635888218216516064680049029794624242757644098419746489818061871166981223059203963360167774552437976903564218662823329289881823136744921237287928789208218902212020319242195341421144081263541085484982684706344467243399325984698703587409576254885293171823918591998855312277624930767203883670631349716532857626484532432405062367361988607068041865560857969366788054521950059798159378670346033098719994025658968807424343426999336224198913257459265550756363377916281126275262823818734429888409238938442623659577189841353131532779728015654062480588407689708809635720314927785760006527312823135864355670667101222468773884947910755937457105638657255115231015371183179773936864719695820961974255630693430149816990058884278605450886617057885594979139587845415830555396041992975091085613714744003195595285329103902475775151466985638760701284236789459796352811530664789505580235141542809754930322170709323171869230937322997591541058986591128198714624043572539531758003785262256495336807844610131583421212392604163989843970613662019294214341988354061448495573447536528044714635148797441836729745507922684616244479427310114474000405094656514818379522810096263618346303003373876966764325978493249634448113511296207626629930234045298769029412058542018514180846813766858643690051149480850201027656217774035074405816378471316349952688381347221029816585934884787204160626705828451711833110015983049526752441424022253603824379031371829262585603210625042812200116012204267246061405791795361452452876646563790994845487318122864152964265573495029623970979982098547463095839155943149939255798141899428840847590563713974744472442478115692976547072271723107211474997720552002553817076703775273920359082282174779916471439285758540573000945664065113576057081791779475472681190223870373119136492219206136814469635043486957689415766295372981564416993428529607667687336091512846766349626692497859326161251754256664300419233637418055506595781628487620586832054479614875324379246424537445058752145469692540197284426233496678257252662740329485188581518857644166850882835323677606832870928943460816291943311062449697583593114480276146620859243404150928469587764482419575637794690099134419305882461961451898248006047778126246478412968286242693181729696824091515004354578792803444143216129234475418581350662655143882873959762567522999894629414359511258656475638589338115921590305430687288103586157671080902117259288212563474463535947257386373688726719476982830794580881216166470317177563451132843957489294940477527587810317728172548056149340310867680025886382183531600722217555375304460289404634391840447040414923267922636435781288994004788818935270058412767856038168441031695301633766381944783756315090260708787163542304485027069845556680705966904289464805737114577984521230240236782938541808399241845189667186761990541628001878156574981160916798151542380953380742639153425862642138487443715935705776636641284469647857048998912963034274201680029453987226813243411017715397003000790366069083998254770072415130102989197292315176876855281582229820530205899224952600200416055168872233398629117562373796823526067661483859711337438108594734470739635437322739654518650622521227406745887277600219246817967685096358087708885470282267531079619582528931270646374491465730640175280263246733113739121242768469177219066842513985881489827197835970210141096761853793063334830222492971112114325529922166581154542621032922188125081205938851158349798547872853326584566982470401123465683471871776649463583304301063112959275208907550578029741078437104710081349985461494448007250099556972122745402504537482896753705797015712165859808206887455254798083992694462241129830552552793552072894583540660342872337172206391522550337213057073102318364161105712446961567793963330734771942091481311646298970602364833975554583214008949249759115899361696052267881860706163831858218315712781078959502115991656380789027777615862115776501124972163288185107525606980615021073690980989620315347307023258681986213539325215279759805304828693240449989547595127199378024996234031547914462357235380281574329423826697916354185174015484893959085654583747806658291251525091932626932579110650971280780789664866187222940617052016800408508674705121133130375487665196417107240502369207256164018215894890641573096109567443819790779314014152173261287208910492993168855949962166648211162365749387341311121000820441202163256368462333391171066133010787417018528628542438410233964963460926931162045329422659464643428074890729385810853668145316885133505250674057938100900380731722575083355711646343235999251860031517076888167078684944375212558434090227225731145966174961922003701343542294684943764622368082817100493936717411616586825812557034675400237564895617760523527827579160777543092211729221567135968441947820134365747962651012886036440990804328650391427909205305766575651792419901915977988068203182097476124511373866112470911891686792186434903103887586376128603789089808803337624011942373159315343739595873745138706924530417335724357263928639776159112252690106535802711908850994782000197356108153786238479565098186922946692660358820779401517385952853428198747731875834837552524198549871742522981194378223390065979083594569091220342799747313451721930408186783114575443244198613340034215109301983905881700426902844850808686663713703125363442790254280828160735679288490542780039490276230807333643537808730303995577888849733218836205173382959603107146628877054960672833708739024641843167668198066519949514436514106711607353009602135365194239086941948355759252527660117505972795321927272949594712622448399207890679105778285071085462652561612770238017753792930870938375961915769379111722128402543741670428712062484680475216790137576483274355989145610327953853408324807571849266364117599543603236457171533366588924984217996474229333786104137501194915285030705048042504313616867352769781030796980938586419455539916932134250911336414776903517887327660939386866474353005318162217366897632854731457825046160597731540945617597903568206054597281608602790936599102187709164716693472266522689898497211543978355890033323165058901767724129601579008466432842032518605485881821936154069487990229125586433110756130477844687590409735063707804910068775898242673375202306955649210986407422180693156199506386397149763633053018746891261955101320743803338880851768046961328267668244498505041482106314197363251414459777567562457523032059761735389140838239329996667001940213379009626227343414760748791936239681161119077800416734470181167344519404533203942766420202376991029720770913981840578402203739731101970085935593227587477603341563330440820493801577242135867050921760181886446261165872148095318279637066161091442791435998319221370892348661929478139696702439259449527657061400949153744621915730052349413178963098076318708915447028936048987440787160358242231643435400066211358108850602105881362078497697385080277892728094658842875982032240250691878603911881399783686531517437741173249209218360137557846808698243410244371051552052124574971964068290022341896810145861338133368744610875386943952646119307060690495237350016000156632077436536370987348708822501720298690510152188293582231416922955396444111278270166723913555051419176194679914991759294651531349564343016274253308854656741494059436421882262977908802900551395089400626188877214323135845574524021004517048293008839816162840976549288797047508538764875046607378684784317740180241893583710117828564081285532340939529544068808659400543043824174119084853156970604238227232674496598018046537138537853749602114569903067381749660754432442424323740153671550876493346704959368024948358169036814243139269409265734068965646870543089885895199953915817345564000204783846047463954703802078874169023906944798610907625460541511797583606609467144320675447063894352225794428585744245322690983103101564315980576540693432779347918239855674404616235619775937747874308740475848886849684304628919084503576974201162989578239849206691840039762692717799205464234547605496433601240699592307730930349999723969880321901841535752567903147946202925278565393747863495307354020291874766884688664281483811623616793721096852612915289272811971214559040408363087555217936914194154555328147108483991775961226086439809564019593389489433365126117849609762422111028347152100609921344767606999454824903003237397125079779987792538142034834987245329668603368735764195527339577112879355887603310103908604411623065340720335184809295911282481756705458639610497216848672289444847872615829222034748999911824340858416883100960114632901089815493296910133515375695234029259079697554529451600113537553031720160847832436529054899902598113270977502211738586670741979662204115735906049867573564509991223717538061050350000729160626289987673512652988111507797865825571159743393113089264669618375337009292099504817207915680732932811735171157266072057569558865969071042248904232804961370259327117994797892335736042077101631248827989296946112006863543734959362198565474426051065791506824134871711296310396731825040066858499093351137538346403500863017350467094844431816258073218183433306386127892531359241530292191590366139985976113793951633199976319073117772320599460373437348027294475643348756291977831115466794874516489412811113619580150705790613224828963388058684934937317911744582094139306756865024961437566519552675795926182756797527865342379913924807603202665887464557509805190914486623750776065142405199374163513627876298742053256994439653779950941498694535527548944873370415538287538320186128551374484285966715847962737358314508566189856072064121643117522515061059017692262205181264265992065009993182514142292583591515925606426385425893471158288000716775704872558414585260705156121728607849683568290548091640329921676770341955174059926196172787285418197383365471814832681466333766256076600311124823312762534345784430648430124346180635176634198286681982628572719746882906331998620227531940369993432973492720652573430779949949622715017899496500131348150857773761288580650365028192379439759501717168427678770751313616408111364603159724929723976872915171447172220641527044570855554611076213137550041419869125114539116561211904223067048455307979725666987884302239451597762747174848456343603164775325043437582790242256974203335248839814206401806309048799152997509906136311205436851153150409842143453424128437298791402864985151619712302552379644552876258527224368135491547127089079680234784760487611720597756043295121225376891922823904290036132496080111152287719660877723972035980697904206246466684223521673987877943356983927200410062943440426516653435122519873047525930063992373112551140334121730991187701104628156915911464296764644345016567066871133981490547169886954894221368008973306189041474732021775931739493344858513669398343581776877401833364440335374565333854561243665176223914710156222092352435815993050209851495577224013203009756538904290594624121152196469019473425876244957939681518505814841539575861070811321521720606931671484489707748505246401332104543560441012528288178960608897040992992564590611107355541640990951886618328112996934655255598867026607808047743734605636878162063767685456383473940541894288519113420168705271538006117100993554077449718211730781898574991537546044314255897075332873526932233748842078316880256326002826297144885195807152396312866728722866929317867668384209385886789684776417674202342999982348671326563611559441462009946679524067277645452981875785688861489029230658397385533774382234947748581395500515504354302720530052321364179207807137648320887592676891943283347242410674874464448853437372845545459397103197782078887895708418551039745156014887518791597267288098787786846680513926567427414261773556539817488191916194070368238238971541272567348681434450495755161009826160607791801727542780490538124762075216550009546766261103968030434442687951218081527809867545694329000560907220672772871107001147708295751930441113802094281717987327293362598851978634728936882322243722241160666104109525873500322465617645157556412831011057703927378036843099403073168201781609338115256130661414533434465156742063273616821287946188376760043563652648036486367863834049640681217933257372796009081848074910586168266943058241614140255948171853106746800739648328737530486474264393208558211155432369562942462991643870011425492546263979478771502407920696971748288960549507146220173176529461625391569759967802185876192946794109499945914790960051888562141325090573780421001589386217693594263455789787169787103021088437381942602383972571359963040896892291940053579446266162073088399205806549099754777067204438691101995248156857759828229104840223913409349398028779994791688756117494547026125682286405205803136184094925425351111503052975310355785029259660214621798349988731218169958591560195584688152455161351970758943994032770460468467532326161549983894843690870070964616216370295508994264227573157088032464838535227517490296737206191000148909166000014744967293906641085306748608894911855217624664398772489719086570112368074948775365377919617368711088984761400629167062351203539364051835880033869605957647064045536457395894142009224634932536645338128905695255337655078944830814907895926199568347382911589948112515086576970422039034425386341165114708361162492630248670034488962921333124217853452015904557794456959549718433339578244001438506438285469540179325017107044758634978559827585689343837906895869557746464609736720490500191522052571713729279286591906486158300447372544419570048675195381699702474774458719412275222544542437321106314722540919571938476208407018921122649252299306297373616138127901541981817952112355202630027807977542333120889718433490436376275606255411719834293331907320788804105262473586372701565551727134840521825171859430556243654096899577662721754114303316442459219157328311821295180856472400862045344311275466300398356789225191659871732746059133308197811770919832134227098820787177118793071020965530419009556539568344869326822840019385666813872322078952373911526873408172580569080514752895131444315310693941582238805659485730015940479605464624725938864636182431343690349944467733159806424236282113286639646652325234007718225970848900161573488805325645771276326672465227426393522811511718222032682962329595813092838936414874156601381244920321815167226072588783840400823596220599357103018183640071480551557455956093904798628320271308985711006166240688620168918346977510894921997922770666553441603647235169416355220081455407775530024990454950869847990170715224358932561201769961474861588217099714158413955317289010672129620552157200082143853392356628872933445698940346342021672149740302876873574815828128149709941102630042987369705019332124454914877226531566989312733503644351018029843458988448598554139524887340350657136304274112188861198851078861195827131088219628735330437986709700764637959704547979061236379467576571171270627704720378891470028090728754836301907121268379556757508619256998412360264192830233238693905040455722408909513279120699221356328581845362258478212017492357427256202422687002518417488618828966739754962365796046911728456158750556534361477247179915797130356609885518764676628691083094409698855182095372041630671881254182455235604497087792607793811313949485444454479344107465798718590357507444046527229115389019131944276289839377532486917620992460920967801002595620824145641911417082799695369292413148708788612816722045255255183741049357341854350717115354481818177281755354388111979899830806428262706840588500882120880045721960926245926715378352292985012308125324221968767128752238264802102277161981818757663236242764954298815121227187539392050623551268682928176967699017789708594885453152829879479418450766092365842110034467620509671012296955683129513314165465280851785321842947271709444139428381219896730459688950031928846950951451640417368726708675813512845354688380759333331580043396476488642796180303659446330184954307888368887979099369488068709059799658600988029416354135481977780781607154379217347944788918842993855061006237308994506471129789530459765452081279947830272159348332173346645426909314953090498828074723673682005993146165678097043691475773115859000108463656842827453574380905277403533297139377062408356606754625899697845804918073081744252815265819480616906713136903507898916727151413345570745834879360148233615106055621086367245248815242974997846539632909926817338299010644530800850781559695732499915855726234461401693374617426045074008564751230105631199409403410622639598681014432179984925613308419627511474669973410820889373444254056298760808413724632532024274133665957335006896516201174241892819332018706883607364535004207511528185013876413422193525659573039954322310951820648957373269581981382029207631919873351670316859828927740274443196905942145016193457156848419186510611240620218692122850414936985116155595095624604207297168313705795367287122212807364991281936274337140868696604778093367930113252685823990970717479015758175915019597044246084538989556233631021089194158793475588554115319878640485150294724189972090098501784460213470708577786201080355685905647379670227532263512889749290355139577683303076235923064716301545787756399266148635701989403671437702113812791763704259460756184005782316136846886241376799063995915892729509069614290975166869441536990129120369388247922349584017457885643467294571177144778092669926138987567575372507130357482504964474940992979703267226841041421218001339711086434763273778984359257201508825182996794903166681304532951215452121627010591556116053069658095027826740249238268863573438996080790982513978359947992566204763471243848111508277237486568384628139392809029287584143697802735957603509568255171225985120342606975973810423119294648732773423561905805637823291353919524748766781977065487942540820187287853069724895389400803897681760729351665970677691720012960274580670185840737563918228541281538152875535436531461659867723194401614821700872663350125967845318263831969971484572250085922488406287227939119005610199185127833921326228161261068463942408574606276632338272750151469119762223127043486761796946951337573616075172207209985997171050120356914462545345253540974168104119787774222616887991083228934710936887174905542650043077909027990625276634917906512694542355808287287414207469638026399119087520164367915687268506629149554950699222025186402836000581059228569173350837179187721634802266215185347587761974691089874084645683109808269329569309884467826366879679432885101971001617916965383192213131661433697800304286875379344290603303573125621557710516817376664655752851786275163141370064964404913069622256231895737034679495422264280206403632266917899094153348009286572385353058548464236057115604556874099357848327396938757212525157810282511086348155470273848610943137549906659731706974553572605324207108571314892649218220226623861452797674935656873903209381455194839093208220424542267075315082745365725924161840550391037759627729404793148239449031337578447091764374364642989402453060271655866439072012548157301940184185923951840886421611007537810555813987526128909252792168326914084020758613155415516812214508935942977386447987655835187723859881110256203498378146349508087009618802590367567478673615182027306738691265230241219087246429218044207914445376659948946969818170269010037479360605511071355903431876568103377405523180781682967237188085482683824077368035395303278801976308746038735527723403079623391031508865766871684432434160092022137692960912349818516117027917956690600645959366751548469174195429265451726201415835089431214324902177351704079168200233724818136456531424846063173163799897821876321046806252843099632610705987460998104182290751399260050795194863416514288272612068747518749666594255627063081330236803913683645941459101129368012588783674996843423883200745659496614030127349554959245435078622512278140276479500767839076482799805350042516163011428462728000114443364091262135024804432389961605459964633239454081414730527021675218292946018119052287912598036908381778766097634085203167028880353553783772676218957142433715753523947058627878980016045954011418090811181455880664677057733869961765351098394488469601542752936534441930609060625638246664276226607659325385410255065654732131536226351665736279076439305119190886984370582450042542403914909283470592002057729249951499404275948144839180581403495453129658521408200015379256144077048578425209411486749451062242886818145878173918865774537724476732323466768832163305734481169337423032941796913331312374339910285557378190815472431507033911833212601607148293818997520050646568141086413987235483502113120774681594020602207383063041644182027902833601501587822413768017079956938026240679372348645501113697277152378919487621585990544984447263715278243414447705496904493001386960825471561480099657198207003348765524331782207221696066771997105525640366969108656875303438728525518882839954201667554953035759711963019184507414949638192291688634976233156099820960819789573976757521051128994298347827154889508716292853126732155853516885795208972212070469032188005437845057048028166512341201111582044299925695164343009865972241661376523106674355441045038118260143032924696646287895021278730713300463448434400583068763159196321725669325784526089445173233645271257118536566395402773829826629674875504649893353168258268292856547524764530019621522595060242839388762807496048863629213898214849372513568165072260647603387107396235852826838674243870461126671976249422544172939002118552194342298450016588966062762785111486405162835879826769824265506588704378746269032347617130605280132308913315486298529290388027147165149954829434272167044998533033003233502654559333680448880247953711241169940085807428413486167956691555921079599291871037476735119893295343313114468667303660694880360018572611116997001732730947286109846873246547345456989252701727720077610448398223652691484624572521889527342697661092842972706155497569088686330001059935057588854991362266857280797703736031360486298617748682579701464555590294770010408895776436506487141786337101408944495257896834042205353543818759242784092972825661610337328887180978793198939210429455922789177191181130199061725196482225232281476020327287768159334336727455557956836229182829541732350912062500387159361553004285439817879194597877221260108319604386228789186118362970726321848011971072110655353868878532204898003126411642445373408996356697654452417179945021282248870555685970527062290377796801045946696835766426367186573228807230224688659910270420669385293225304380319603738365758740628158710167855444093445701588448606549239496014825092308175895028760344242240203707076918809806233088496623282307000442619226202977993789481525583739452130004934249047345358840710985182262375674098980476615297733727887634396720970718931653457647091351879491968906425668471000959689873437923000620802419582603904660987888460864061381322896475321895253744134067793199949271496614113486946212637551823504530924251657282468465058774339722277738940214629451049932483426848147907744581226307318688442503248990535856830294014975271136092136758114630134301464805800807364098794575972845387651282052031862321829098789034877089895741748066601899217250439347132844785210158077162650243086088744869236852352929284823039218035985729468488466089770511747894643974150818638552109287118105713887433919589435415632933925006527785410287969507367432975122973213074382542890954791621728807649165601050697759512228723713940713423081534475426033991065225234952563910950968137801766673100736202220082959103447252922636105885200329310568216168659874028255569124916863670902587707134326184384096504299965342597301996147850771086453575130616359378519040498097858306221973266346099155350145750984026813072240871732002495559442313431673913415101540400309215029266633890778834274258822614927705348938076714765303973811091962272885744723355191948187941495258302573775115322773565596329455885306620214117205743915971379850585066113602621639454167923669140720249824483141397354571367405906376196920188558257653733432955642864972110415668724341171721334213586762356851517742360558737504826313003819303602293385073601436200666028617095652242285817792629890127549394120198418833118828711406570648251805463214699537997874865944968646461188057497293849804877023792072236688289609834911202063429676138284887015484243974291228936956032577159565082894965798102100022172755634685755739212351361645125216121312986801427655176599559292686873993874867394800674649279546867542381519202492943610424745098842110185476197670004290287495212952149660744063949438508079810681949916156404564940937961499905498120031124132906993995723194894721771741017906375129287208811959799635981185755115033748230094810928056327632513790708091445333188591992704813907667102381581977320555077895937669451500751852661428604933109291475745632103936981394627013185962528516352498395004418883092239836464464868346850000998105747359571735986700750830187250698788616032308023271739052801352656895321790807779257635001306246175791233217987328855323657543001211020417921246146653127934202027653527076500853175350013256212655615615934523240336162326708844716908844966745946224674938975025681361979428023430451826090432784997011759827701986881666531094115906124940199227570225623946250716963083111451644847394169459125304569452426113792007290976338914583730746224159464878003488923846156286916548116552275558383296656005629022484346961499938541222746168288124703132728498367963379912964136627629152000126751110258491850338277679467924759182544758221958283191815933487042994995581076040617019291036445032270719866369545863347794394581929015678551112539460723817205553240254172125282937056229732083221189233053365468207295715284261336411348188652070277218095224778211125443371756574430683899322621169181953047338894229864489217947226185594776167464206438722324324872461806151866303418614853395414120894810945435954071244262049427219626624259676663598853777729158275283193677606195748900337964130405971848478403951375551340001956164650379067228769791971796941011011828444251860534821425836119383431968024907542802661558990057928263171644796512171203580861697075556616949951256200060855965509571722160752783956294182783275286843469502809673107336596418659828381828207663840125210084368191165143816424112251448290084664152011812490202037940052492196573418343286230977034889632909583347488415129424307560563435514271161477054788254057849223995601937689618854404712855664434574237735810251670297636907486114921972687646255994304751833722075868339451622090374841348435527124813162685370204518989944797212787113086614284320045333388117444055020250556621804483834030194229475544756083326718215131663492133062321195273352916023971847143315210835208751488185150133904917711360938349232078304336662731802571021418046773991491930713769898710131855181571916897055922118461799063911480966034640952253652401120633817166453653253018514909696415006176667607194939718598918145977625990896577830245266106503216366115402287915155353879141679513090650466089596135196238847073253540752562941732259626227309261777130444169344352491006487453499851976844820173795071895248059823349187981056436056491582634193606846024299551071190536056692401326144252513690109729156132173144431005935628558247499628962570617788343693914731807352303948852895593414664047607342530669917294985484314253671115586296284345222555536162499567743904733366368748627241553831267770059411825692331947357774463541403397617446949988486395198115306521001055549782517416592550470855142031503343217424314159378340198980642863051830426467144300479444557855998775367914059161749967821931612324278125187529441837023576976554783626266837517910980837586668084040708433038727511533993909115974775785258879370367971750590403392972318882030573023075727950103056134679800515576888984208926973693853552372601108180039343356373840136123901441978718785980687518494921130229284386248331250189499367292437725445867338080813768705764149222655938497778315467953850877941141580412075813050374497286139486141956955631166412219326797089519584052533355515925145815173620735949385326662083109605535292436974521150630363190495111537125919220918079831448491258048316662378424852714968173168744332247794459958761850982705093370944357238244793360462042847450351568471134606810292645654918169023705393915124744422604626290536902818216260400009042368654254291182989956035508803746166356567144966489705497634804901879193512812887189938654792704281375974342833649407749823171017758202283143711536994513216772447271355354745358611107885017167844130503987682963366580344170375007952459049683266068059313615626445433294176670756559698812800223694835963736046048919488002796172507622752010810684204194169356566953489188534432130433046744371293726842843567122205534946959616938968423416240331727152028909756220524057101311064573756844514556460496513728254818928991203261159294512267304412617064019118273679822880047345927680128952050309301387007770237852401839600219674591628434513209994376312703823798549799320616627276594429363952020734976610465169943800634373490919111795047348275957351325404387816596176158388639954056579162380947427435927644872417168315984644721759607405911044583640526795602151998051065166906671001990086590300069337103855305424608693309900623041353647902179706962284825609905670578823533636536293516942319683763117970754315579034428089367808019927288765432516687161786453755218153692775750239730242414451280259708504995267706838581393403160724116270682413441581812804040791255958493978436269686051510202533531533436884012660863576869574469989507034873017631463420080830047324702108770159334895128831217793469710101157032308002451847420936297862503654706237260386876820371563338157062905263402663519303156215000834720252726009794229444540754548885600266888577648059610481982043174385483266677852883976273648214994053290641842654754123720202305978799231030636384908552113838221092442438216845404516011237370306864583877141621944156615538661919122981950178920704032813768923030376703444698163568657190154329120200212974787476223316838769587270285731337527733684496832545005757046745476788618282040245820696021091504259095983450013299032560794165214222060791988318571839858632408203395886301056798629460438787577328109961215508363345049902304420639184096631562784795446501846939191935039814897319638216391153104093312776282461063300289895457620468761714038397886324425388265329403585950498686726874755784146001785044207243050615024148142357011108927125429799618639784944514088188348871578538227598854853176415449790695147761319998001646845581304645909596332974379663751804935294532472628777116773664855494272156455965428298030590168424650355331791810702520408962073482492346273397242015763574746788513338930546077211964619767634241340937995556702814423844687274543312205655564503047499794061962061503831684292948110688677769240868388023525008516923163515187472194769036675115288367686574844962436662854459876200985904129908237351214579090320336388953955018336344514309367220312632171600388283892564522228908323516450427147023491432531047466553205344095129631427782409250743953463727324154141554231726494256303721640953955733882968079549333566626353321656854133690102948673816858988480600924199726901924322049755144126162683651490457722374493544797918563431525816007436606604439092466682490283278892165157816000968564308871604009896039235911867457659170410996686437342152944691545515430637075868605885811587715780143322423720942876273903337835324370230720713016039448318826097793204859183938461646403514168650710216344245223295679170866591231850894117108876643673498017284637581396655717037732438154360368642308398959938413094356049395724127180257853578226804996266423501533779179383624468578537259066407289863745127083174415980006670042970633275752804530088680917862481042405473274408892490513847853970654392887932995600283299009600728002178321836355690733397813654354940779349640306794998016524585912739399316807575112595773863887964685421808931145529051053874840408363325047308135037008555320300612007307646979971560901097052743069489079629564094117839254746731966745226970009882990353674988849202550718235900623771377953195829240896888872331990959647691534225259434744933093770925179656499308787258944430042729268022257708569391823153366683405391067438113892609292531498239860220142874000600077767490207067990055171226918904941368845258929050150124233097138417490886995101369443228779429982552406366770550958225207276635521960299029702544086669528082374933941584397657409613738265828830974119605403515763869248751113284962724528907089983553822179921567010593757497773377838989771721883747215921024262069176439967876230694058505634280325993225586687342154434729863456736102884221143283337639147082869409864540786344363439838375701698698728440490718050062161391041666614246649511529322103238805166990497682816724114071263382489275832711737401394107747923977318886587729797149520273825127944701374406739888598189520952744981248230445699820278872647323487680836629920389916182690467120982224457731009383783044619239666357297634608948349028067681001525661965112349391528387875084000683970740148580262664415229536616110669547704676165885842118382977044550440875836534188507828143494717498294131946244418088798208704008727702061811335842063135870468412663716502970769843449661138217248200437538341927201459685959374491018856976634523621782674854606647081726496500076662661863182584963618994050133264547721457911334682487811717642121545162304622732365012839769887316205648207541902914265511660471400654380439532331106869845475470226093612830216984711331668452869004710668748685347102284012742821559907159878024557673351329587348907640081743966222257183876570321619566542070476423900864354874141149434197607043549583789954379694253668225916917234321410803030511436701799890176608503409958977331086481258007542381133950751357811955695157447310621857362073548911750148832683386775422903148198425071880764657437197246326623971951854893547850171684016541832343018281003930940625783115656135541782295305597467413773379080609183581530059435029921324266391183201694849566452335100207244274054780527304494565011886994593471469475050366417218563523384985315564228062235773369566810401767060715660400330568091349470651833829962384104585179953948975129087349708434103123859206504369227057659410616495323702152135269279344487811845491999899808731034276824057106014947308324525650381010832620143646748505973707764344430526127203300258296456375169380557728522825082981632880418453867217638475267908137609972079722847368791249148299859080933990425264259995216672377590160551725439390728831227585806949469449925183807649309159577101404078406044244243972482588930461060529203740158221639169377865709158338170731493686699490049066496289569351643095642691759093667709893014916488568526174124088790920282586038358825751821107968347836293593337270354183578373843373620526662728325809204882464555401397259520287541226335585395440648431369760081579399418249232557187009350495379095831786362474395052401315955358247860800485101893892246984792177672146637575014069497552873356885722513738590193582813110470377285684317672824343133468445198895247578131317739043965115727644633032678070896138758342221465670259191949355295046367425384050697032353019008462381752564056725920783624555326089547103314226961278814093615408602962503756376047094396856647685888872150583933699039258884417054842204966006727192272312296464218047599941391845525402759064758719763750903474270695012889603828816381754178298585706133670416441919613357639366305719643019567686568191346798345069089484964119663524952425971674313562762908369817206409887565660290348501322433886505641789579320715465215533369559392090162836370250532290071631240958759475658451213585808468778553808565238869562797410934444817117507308169917239105463503501105015657415302073930695285985548250397093890760062061447332112417018711048039328163845752755471291977794351320806260532218830882144150791457707250526049965726129199611313168456492538435114745113572640327949991842780384426545602982732555363309869055197772398419239974388105638685444949030969532389009550400045008280434348523530654531317737229987636633491297667358682601856170205763489324434469836634865174264107008067999505465601522832694578359210998855529243849628508070506944562249343034732406711918646342265592434871605831483277912774193512266929356365011013638331029069028377388345864001467165667038022628873688116471005284687215916027187944410284292044200546175433990533938500796692922954364229293940401286596272606150607372253851123710895887650106574602910660629894785262085920165854521814146802926731097409833660848303051955867164398297078291555530647371784160112151478436541219208210230302152045212773546632021245416334165967851997300428103538069601170591660069734138691585328024670926983083926843870970197201343748911075893111000648505831730538405825273786889722379143058760551831863462077924719375909996248472583298935750057499335487436893424982340426374993068015808258868685304536406349100284683252032188534233344464377026643158883904222155733425972265773146471783429656350341226973073392329167508879398647988995366347086027634715494158568928388674641160840303908502209401892279002007540815643707059216104503101036603063072506105657192555385588323447814039811161286675689030411073879386893589120922480263863169622268437178939134556211511861908392245530984181214170436363016079369617389685537683986428398548742976420324322908566456756369932387934345335987620060957053879379149809326412330888321354226189486715134531441777612652139310321954550268083022970906986034240386837779172296601466678734266731522565463405858995827763287935844507074337953109017054218363633484551692063393714166874858447675927450983273002485495997550698674985559162382770269352558641287799661992747068759286987443059708386382501340669228271840270178089711322955291020769432258488211794199125729459031477388597771913230746636725213900885949022232893563258531108133775524116910035789229448489633290814500639270273472135952938503875444837541277331655944809036430399282378504510426908255243467957809846012214423411488511227038357570263315070374281964711088484732925184155695420079616595025877956781526329470352025127918099735213187538005254941032617281623170418005710792872010535039133607185905845879807851674647882420670615851756243399883198298471552823948585396838687175454657181242412618155083937534824589610016943436697589459102526481408496699751485751897626952610947783073800011283919970093413363946626148893484428836979335101336826827768955122709730176340595466538245205457075002707093630057293717293033120985996968987214725086671209121530201404036872214816952281544305357018584504684116039114403711388764560253382008247139111481173098518207241427060104625721167534358168964967446588210018175217452991682185529614290294855128534516563567040204668742463447278026787089932653190569980391200277147069493469065149623880057849207418053718512952825306681846227097302335194005670964284576461633399832489535048883203898691469211474124609249035222892517353466159780622109658952409644709998552524751540654825515217862234579589910525132776695678242800004081738869902947454020900673470499101901893505893952999565893154558168862189689163209353704129521060859740741084049741167853419583219729642186168952378432529486962309967749329184762764403418486490334602207680832347751181351713708225344596251501241863285982806762854704885966719210514589302809950502077324421670409097609031511483230967611840889008746954954729915675242356824018803805534818557834036887250792468882783221248197013313337033619470256291380621138275866498250356348414906004572761322684469658926708678690566098633474328500093294736008696476444598968837838779558704677261860646804354164866767661604100696235233435859664158453686178712947973564369907102994482677293327172866927827348337883707674080974040940864208109740458956110163771461494964580722902734989339127371282489427779649404259640000193390643069313250880343227914070153444211065482887346067226392178732420972411434068053526616293793220642943083268926089368588176171398345062434468027726061333797146555372418152726908824685627860837420074605920402190086716732929794346566050816049071959545678053498387904935508070129358506690090626415568999140144279052563255788056260591326152286522307520064275962718242832767763923511484189019824646437222813622934698946882626956916113479659313898391121098742124506926907908922954336196056330395990165059433734536231039248115609629698089412045370636102770477147788049371040260934932528077503123421652297803448282259960170483258058225083226258730604156977963978860102993832309455010614663026290645181712775515480822748350845258040948782690127407091617648226746233338762294661677623189009345361395898122542096981312683442459092670472020197890816728717259887828041420792993992065341688492951781307286003581764174878147140759020593544213270394498588207995081950078750888959501925598766552655758521397265373275085079765351164148269185405041214057959996587001185002196324062159227563449123854649818437478845247574307691911721947368710928377981370886522987007365211290639530602715564648485886783039969642424523955584669824328173839281831724643353513100026989322734422211473268078108696638813467107013455642942388751526455048725943844864291334691348164732484445346552574731396656325347055620093253824868426254886059868662690120588955993231816522364324211224817172272572448335572930037701548232255609933690854685906534972604790695196876711273770826519792333085716850169710652296970481610181441938604730842106534831257837715059116549282627024618981133240512056248032622858936900532001909724475394927511453490982712404806866776803933352381010705109135582990235009490562280721338762486798868602005391246265627811764829660535109625481457385563899055321193318681858539500118931565289909876535383706938197556014213794651465017802309472931437800876379755078140589070463357608696992045897009856610962402930869463990336901471300821834869100590056302957744986011604949316166033213926847871915063637300534495326963057312651379481484469881514546989588362638866006896631647600663365265943507710117316637109211482896281241479165671117605889075621462554076452226672621621370105443074109040535774797044447882128383725913883260920353221629548300750145088430496145742579206380061188734492228020956491888636467544026613789298503225932531763506119865515991150584100127839410574455970265594842554969636995576505010942270937815763973088769636505414315452113095226550067512653035786862151185574116560207022474619920335141510872183960420503514362794644115098238406227885281278378485653338739757645892784741998933224281698132482952152958368222730040737989371227812036675907412840260554099127756534312908729930882523966084974044948081368808369959368840056603477517071150565941300689809969805656905583364324658377331925555210618733301007815119527895194093103010902995581222389456976999654092583859073418322036239305803548227393625149114735252058833304488930397250204050638933997355103845254136867414648800243566124067906906540746761256763006626936248414329780659360128793572260412915763987068733867468073767304871741643906984811971782194650802335725729597158496661780829568757361929201978844352201983617475382591409040853644287244681645612652529840471712498683799252204241449128604094677431172089772771045928853901145760342116320228018824143809186394553057385303061452765359183773292714000402155489778643502985249567403039044073828539858775737389604785325822029903334412501379191702549088953919743073727394498614524675887892438541318341124923371652863199787346378174297390408157056620112355162688123638655619043367915582787310505321029689753604207353373917296025530111945768225820132674013569657798390445888951229958552055253028090346048805468382933421063012268226226473829108500554367497747104183456505384808627311937054075798701049378313587133970698181978177191840091997533408812228196663095366207382229099675577949275225034958959941369858961516391288193090606274653354534125488252926817173133700904841771517103309874532741715416724891518930159495210086653749097478746060287402440699093187791350632670533140744052684000133734311997813345698846070977507524852530943777882511853686223763611231519305657791557927169748637824238505362854438014473626594034260349683459303638467630059953577047323756821427464416907587527955254641035208431260807017911997090823134317635446095119686486451480825695818967409066356155906939328211882645543013831497464699498787472325874898385264977291217667058469198344149570853155099963618548081032521879428983791652354921840209487223593137876011785175940016708348095828528354797772502913199359610240889908888710966119380786659279033711360353252229288892115928482535781988935890697896985461043757511365940773169775436645933747972158294181937999132033684342883438826531749746196231910507173195789373507753720415067930763902815447636392652278506669445749126228201610891565782146623066781074798486136611001337320159904030538873100210174312038212303984308786172892576446791631699471250619595251584850848281266362877376299798392291173905476294229893090313185829044980611967305165695725405624564332459553187827504920815575962281909322867616336939131743431260776310023400128619266517710012091026421295557326155205753730752477453746122917851573079481189503981498921351029275891924384571642741667714420994171320490985814272642550823086581712191219657260108955199595611236074296264995987143302479917900360422211277411431494331353358110165956902858789872318824242444827390467591829066294385450556631072065804499578019001000640120749048778960570342828008609396651810266945039946976039957094839153730368320866079048103687772792562818985895207791520021772216781490226580439149724127471366675749754368427341276312575503648709011792971419135129314496863278314937060172282297775776859182026832248383431670076970274492146488445733326230237651082827603788159816671549382189492472417630471698305792089973590821738950492353733961494179274568035043936994211411138291032423255896925175098603090705426898088714404568445442357770463077837712683061920718983202199758878364993878491339005590084214403825228271562165902058356708782605122679451436065086219033523318480469400294090904382478648142285210013669624634723700247008763230229879860547904757579800323685574001607613025051570134911773873868584114026930991907281765352800305473554894976887591170666955344012698926071016575314650157605102039182090141441797879011486305370201177688429045529932532592143549277623240997392505306130015959621650320927695823352860676861822830080027517676657378758111920602044217308911650544345881094370145675229664005621380021460704786539555696578621323489601168411667344624921426033433099965195375287426473613642249803654428679543680137897783545754899858840849357728498190480049469839293627560673362718699804876224999335528708169876333576049182486506691644820322000418277766779744185244906246764560843017434856602519322085631654475712070722307423745326313084689825207468157124253536713874716795541150445603774198910017330573603615814513696347665866488969273006723628110216207936293524422016965231496564871488767483775271948637411421867041339933520692367551491358465171488806664710347081940759718747127786573816474874925222009859903806474364297771028216220304565776259710152462704137737024915705703047957627505812735162543757807948458541302588266559649702234728999223127702311964105027360311031859292926361327240977345216832591783946737291354533650043326660544590725359720723550827846938351759625806162026799921239551913990828993642115512987299634544197972019495632744394226785185557136400926792585814147249329737294222199808151449119857611449474341052882787385133544111501068936775888120203360031047847295637130721556138559295083030841475746957786533110271356941554337132261484038898187347542270923240583698979262669555651189480822222476213871746880273214557969043495417190548056061360963707362469294785011420593526501263575800389415519223374773771640533178708870262027640617652911061246679095426065065780017961267596402432150378923030369238728890498515717402630297500602200313148609072616099201813064887132669217763244202313016920778206635691952816270373474794835613665390824787383466409125696395529318166435267826362467958606859875028901495195627131414261295201952644213757167865246549225200936197479982810689051169694257655742837926115511027031892001445972772634909232952286404392870425371890565002793698279887561261534384358965100451459855471553371323597222874898478171957885404970397404837998847967085328858291935646153981696842216495750789666401435279819325235210469707383086014276962070530008636356685329665887509427062258275024337084926607326383625169489411337833132635500630983678519259454674291532414875532473504058754616237227589451128306378987404898765758799792278245829545848806181641154160465468900744864551438437308714881829828169801520528762001827779269780509668028742817963546563819965651881100485641327041692628181922046361291520462477201815795394726215953689234870184981197763421703855330653624428985537532738394559392254562808853541232579435403496106151248055587613257171289320986623193207946746217051743746673459389032012505102949764943507870221490251090751634013193299622510523662454716457769236543561763373555713806230305372092245443506241221108711608063293698010051988964153608606330075211489236189631949489727597816503224966674335356563216032494952801906448462046157916741082795197879632395511048903575940520004652357841658593987550902898595137264584948996743686784145588008304702177590864755216287216402458317413857293500294797920239309124224467143154496564450295219494090430128200843668963252932791424886227336429334650760670335553078267530512561286015970464225665481165292461134259320196483443532159953305657223368156354641030296194598212233437645783060035607243066030148575495561031247206030303754302577401371240902687765013077018438814911998177780785648652818255033040328082548496447548334826825541514865299085933605752276667397667838261097636950622076027014726836275564367728523945848677047578539961028523750468425269231093930140938400038646945245797464545257267890809683884486851388189250211367602298591364665346203453199549439827823408281303281159052525415177607029934501469498798359129245917985465874336222055937319552841141882148736104292469182165003733842782578910104166186465622362265177945851248241827156508049840813662103123095044347030287605374107976259381002986151379226571124612009032433963391246728950563267195798748672079976135607011774899516427307855330981041144834276925744992558624780862576735214148575353833047995413592771655498131781435472846655028770420996358118094180087138820297538344933127394653169994965774148244791437192611163269731261420991813350270693328965629369525426849837463072560421521806943352790332231815023540839517082602681551890539686420297620903325036999646702317910198201157595223749272137508428250151000758050771613830274748246974519998884940479106752677370265620897079783899052344946730046945378870702686930312637708406609310021827913994002865077659736249214264339810521059509783346182182026129702908464872528540756318951168516116741428281897092894441866765659143622889575343783970141080500035536198620087510257870471845546998997417999358908382820217810203248044276668309221697396525288563369835872835915369777122402193119310755567539321969068702636523660921546107867918631243895292644559249251970760711781382743168374862915661646730439414129886413080293794313362421108385818452558345279639616950361388074320420501546288343224742121721300951885291800998900255007831666125922489263315016039648639468409122635975606490241145137722880784212686877457188349383794566866833707472087684766274881941158440218617308514563919939646942104921792642608109634610556487396158239792610133582756587696397282633011905380882386464720739329133901852474189952549494732311033484901211501730136474902115496053308233722120746641092724815768606228543591264606408805294769288780809334892151487952552784565782553894156687304263401154096873545613550714897764943935144664604937639164892789595520808981507151698945421354538057945524608640589236542417083567113500916936123026698252469830823810873664406930603377740560155023198901496862470739891047830868699723222141777787331238377844050599032036500263239757879626039355343200955813643754436463082391843014884380039227193057523039704545376337428106348931081513747581385823451374138273592892640757643921700302872277861480776095592862978308325831220301364232072057052074083367508903010322886946747306065700338983116433089721954460597129387403063448999367456860703162806356720718786180280992438135085616539665243768909791371539295461230934939480878391664517975239256101934191532287922415062813632360183895919440166238522334392163799890710621908914715811309124290882810467698448255923723663221224758384191920618208900964978972831239943026012398701974972519589487116895417508398467486524993191975845358771239603892292860417413641828646865801217195305897176523177761798049908187428107535297634640946583183386525838495441478071155610143898435883619783210724580345414484153980581693211693131504960907261269821588589151009624637127405693992426594394995172167115587612055786698397062790741639261718304568980458369402896231270079512981304558358699664951686522014522180252443877206586812771166464390137123723694789418970466460103956084626668748790711615104879505740990272284668043666474726750950737148871563783137135428084026489096867226405215105457754820740183357576808513961139808591378300312493800369358526980696629208426352643766138312180253950869639586720726860989011560181582422612836991388933160277489902789018436855823461566256250993359929512169777627954055091847180644733231424387245489264347626029123036783071284587454860272060966176615759890234715939941882678902314707724128238938280364968285025801557221189436992487204612095995734093879712897818219518850996278499509173740745227090154176075119143213421382807884616236107346303495927005072292433619088840922642765221179842558280326005150500604468224933063371164550904124714393837065235901734895301610683098789402637700558523094755167103662964313847828079768669092163322911093933588657770568209702939549822680516067593885981770024274109538433205605221316776012633025255027305281421114022149403557672420273123729784317246882805706556456045359975154897369067181881559092024637064378181052969267225367115388705771553559081509890910844499387173492346249364817389363665492842154493039306362861286170596038863926963909151322013201137589635313412418250520759672986502070236155717073082923363947080911439142345280905436815576211909093363077499963246790620789216592160375783291294197458525984432631685585607331975073059169064648245463109454997157691700696071854490336721308344118792048514471567452810921022980988477627878487837130276101722896937068734865212063515778468015246003304440858556814771279666682685478268168900067247033620630209290365581468761636844909541606488207373859237480284053454534032743537104298607450057362806551860741195275946089444278800476611892894861718689282565586778603179260301291649713568890935962924893507732905108203188850056367322538494599855127615361889387834085718652825419701604594782427030140995007860620191767716763759883634525971329881861688468692828006463908380407167310606440454056489940403855160770107688752851593651283224730128573891600686133025949372451609858105916348400939525669626015764609365790407919699586544041017092412681587511026553193049045641284270643103146795894991429683085569115026206933446633431823749558782749477925409672768850144233287928233823750344205066539107192684193349306500307138139090935701418089150496177395461322021309969385735422195783776773389940441621721022555169925800767136148430708297464460221681783736716574659804805219463673263535930663760576238457973206827385121868156189914708641256689794826818054926033900526175028945477169965433563420956192711534874117700698313500363982936879052625152537862978125987819923085524568234497446827403780670293560193784304382426617196111734189064134515650229230592747526065019817216444383919668266903585630097351101489791225770925988325959289239360926277002332248596173959012938822572716553041384620641618388395447678120124094973453356520496184281910670753426028497933609154673702999870392353932610503069391671967274000063344256079602059039961102692449890890865088677286363182472261046903841800520563900658304544983008820760590539554168075078251841186058862328196936925422669359827603515194089840610483306335082344301834863439053509824613094885169837549837224011686248005215015074019964223079449465363518052817406719472212532478485525767345316853644136145856927116881369282628613199758356395613986946771204495173926559915452760164091196079523556914152374346068778599235574616879145528208341982323205632841961999473970349840808937797996882534054151237984106005589647666545593986970296784477006527100115180385779715143035233111324667142946836591819425827133684971574378641270728962284538623205946319623659697721569935722469576170122326171864083468108612681024881701677748047379699001859924419021206718478877594690739408420105022627089126907664256999409639789093082877271916586482428602336946128514735468433031120411403317572290739054966698098096915292051545715535683394518493765927482477925596711161320376787594668584097996237082188174333666869037205262584534671154590123984018261418718790235903001432114838409600380071493867566655848342116709470149139626247851281166320739833941150174153882766837750088844616132920756809299607238332178554592786881300086870910221364754087445925350231811887948680524007140466176133017602921699655973395982762376420467823680609910097144564144338584447913562338194124395494118604338402750621681093471122987190937369529998303122488001704795791886457495372293770426749418988773770871485672312060163156524715423544925512324534887047767043036588674631081080474244995016733014790288246182493032669220934826257183790067614005664514497892680903111734253171742958061749213875582447357507288557960400470938271848244167524443747529008218499863763178913506760306368743025221696618641550598368447633034202956597697085229202502412525063762046922217942935594050922259198589404046217688987147961588944915441637539275437669488126028686291465812874698774520317795202387501874024748361086127156838605388765463112477632380265278835806343599616101805340037526487833174528260528138524748095233570827139471515091178937838022254499741380944769141336961742576548824576893604179804796834791145238479799785980385908751499017081509515109136711900006030000870741695372095889936077240949924297034400564595058584932938520454793314198206266660535878550904827575310805643870432365405853490354027493365477884503985580452410046171363787275238112675852625189164004688628575700391872081641101880834085840816204205610421020954462294993210216604543472722751016417004312307694724983570203702252926505646163262945713054486372853799106225272950585314010527487717319651620450087465694535703115227736669402795937040813686472478590297055162026802422559174391484455766956649743752170837475232333607159948464253670826611055859913919106580937930073929681762764663659933362122139547112542298086507068714581149217929913515940707073238888262366922657525354043490285782391577943124456137970616431629367850491666494465388231556740168937155871274906277830603082818023366210320629366509533781624588081942662366362097270540659532415381160249815830208602966653445452606172134464708970170342496011417807016797669197572952173091995015661930104448531087464235651209235749658142628099118262041749375568790037641639451925236048729851129887033447422807732577898350172899083993873651457148437064053624939495221842458360566751392577200191939672167751811922217195099283561467873689596331395163665539989221041039340679323981539496039282910718013755450974641186896127024705589753150141771636255649561287131894710933285365579657589124217101671741939260957672386307088298180218478718262751740605614751333389595583723878414641159497995471372299053976698818865739596043489223407011900551649662288571598773923350848152378201824364351954709624348261034660566584635762993779875050912313606489040371931102452700434823734359285838775761772800934925591011734655886813458645436894098579246544732351309147341102434186742343426993370578562050209523073490366882535442754594586983861494900702067586955687689210849066287409965794504926966736231679312049196493810414549265935748882226583092696873122815051841403166052197183775901168601404434919081731149354987851339902119365422454493728043284777522407772418405256939375935070290633962254021452814585434601952427197573802055772416559719510755433029887816714270773353977620110590266659679725018302330709129901302483791008510952229323103703078173691389739972318995097807245156770165469736553422443136924109821550548364204228420354280463111426576184331187982402810016433329623358037882159323101997688095793759001029947531383511252704807768897500804548909006534531866075440782871423112857513149659035433576667900135032316610638760681104680769047987872515594887836340663089460824181736815796874734935667830902981241685565887940750324258004158393465386921305122686637608178123918198908109834437847795034350208537889356488393995847552397675806059933397803883402508238321511521542413068020143450886472995756955824260385086620815209767869464954669928271165094722646444434353463662160498209448894593460108200145661867441152639636864966544917545165847637248488100235853340467402692910454091316916009054528636343390508279643854945787453991805869304109282374960349926939017229741245664341460028895214592057283482787171391023438271914571229353649467686003415742670383838536752632240718362989422653317786135237577316244355084174461821716888610508493473773882120719292081578570374479613045793493960543726759554164129533708992801546845789610193182767504627889288774056834382638831545355586593626428302345155641701852683040228916595843431979390249755070563917798598439559902663921347114013437088304199334364984006895178720210575536393289878332620328518475529361509445168806053844038844053667754532544180470706411146207128998904232021830440971967658882442942282305350380322045182295778425551471811043559888730369428285143204397977198817666931688598977172901788658021087444687559541108383286567841462143758606741853782667583507879567443134355012128319378659901363164843531542586790374409360733199202051118380912149184446917654972863871363667094379506257428627061004722980047145570548672096303358413210017505600454090037954312440471630224895707460892238738771577975739564255893762132333116184509315336848772974202510561134359920800818642198992824156682202207203148381161216924707527651988148122065969333176257981885371122005735693053064456493580328063658468726990617286756369153050871635157309889419861609809824157960896326411239654387995888854699322164845535209096207070476667801926431669619957819949773728755668089498702021653422420268608988423076655892972126726491188588738205070958841476369989756272034669824217604537933719141426825305127700503375262917069453939801860041681881579652524649779624590659388119654912826656264825634743867956159413358859882133045002710106965344848394505390305778736030929054797951300857332571392455344650118849083735582043297465013190819320008955579171846375486381140566652315784764107542782952176954576647364238124186448794920507883145157993115568859599096156113738812496364216777059591297858747648367079735468134697642390510226596870253286223170684238058746947832280232606621022089689350176354588960775145621462981700140043685564315563073658240641967064386004051093007707114128025244916564057222854274805645798086670769082851820630812806096836771268926662005947599177511688300660609257928125643472654420451974114140907680072008824475131726760949856658269191131386826986640692621958044609384863523639019255313477259405018155690129133537859666448971474223307449039948449723689484814235003083910731307425893826220665919478867088837547264068914611296173887900829685146061416907616872526755652841377801211890636663769691304215804974472598290571443010945631924163764761601630278843940309957698318119766489756066682895833581591737403640226006478338312769050625647500773274608461609519443614222584084136662003114723922640882155368605447275347019272764253982002314386667214142823414489421900702031613793467860016063150394409458530871638590233265335296066216717417546740826484074291407284868214463966957346841072450355372387937579956237643145478354764635279530714905124352706436083372354316625760329722585429257472912865279365812391495676900231055492784632542320227846338342992163339939104672659909443121315672885319685896845987909130594410389232273508287028624902107711279301575455569288007248601603130589007349525477916221932726724950553688362868067291198964461603974730657282608089786687443406871783971566681668216570717345851008797575306380341156536629168364976311909191931183682901229354937575183346610574586951445003668856024032212802098804363532879767894045431611383310567331833469470839909108673284757506005738247962221070115879382153296767342672544447097734707421305930385000166707531155621242370865585332446176945552286918367984455449885767001017616049138348815848488231642387884999210466376537040403477472330240522543424802070737081230186719423746861207815015552810870925115039336167860820691271433247225702275706270155212064100090139442537367555683997796033796504992365669605162454852916803092128191248191029493097740206075824713365678950380892434652100862876709229738881045350202348481206509168186608232205416562877529494922167879154119826323144052222687908617275835756367185703980157890188064541122935550517099971432721824035209180859873662629596149457477799616037177623977217868141016131492687592794494032000996423970589725225078083655046989473344451570066826348375231976095366331879404782647501377848046574542445505551904103439712549578283722568095765168544261968019741461941910026027640793028602725385380616970360214306075970518872366786941792607720454567941179692505648293950222235531879609767228265895447009332377739851293235018003185336681219371328375501533584172166618329380966284543362115413388414912513413001926628313621936960659005661968890864550363925708651281928145000720885879764983999291257908754338590401457889348620425754131422447420873956458762956053818331970402614756954486095451999177286245291722591118781100143508215723987916139972761023948105202651586790266111248122364213396328616657385434865617656068406974774259018722568064001312618103718000179864155153572196246345177752415615485726957225392795018836382610336314351352511387776171571736914102934126419315912122250099472781417593506707868922593648286590783170756116849574886153929095637272688163604263324213988586324853120403195126742333308356630747017597718513970189633886534010632894016740533454531209090129748904382834591583893072579621855464586100750440970984551371306343141375572360285389849636081416544371800738788087092704431837542323679316447012135035582046632040724207416283202053753893784300304041487365246336474398726812236250754917390065053344623352469119576516595667445310359868448819613225075201257062309630578577880050380921272494456858328480126188934730233927709641196939992234672161279131422605419336572778243705517957756258047096231145481274290799010342981302545996499325627905289872067032160299972106314791249352319162195512326319305796871029383339330793083808581545144222301195025903720256549852526867861944313274194338058793954447056683379780392791369936939662666801343487517187468173939425543311357856623901763983864000110758198814081078403036036736018749152228731902062942486996365697637461128096615515893971103843723156088276602833217285691505655077925886546087853767701160452483370777000895495549307348917231876501904451230246814748422373810947336763082308245328927620142861310281307567380913924993587406205025251551739708621459933590494151907193299869597723636730865534403726115410653222777123289751607887288774036260097571608226910692459885635422603466108396268309224671849816840336142664981736857833041467157822740168699094331034545313213264559154107248764081907035827054116556217838001223822976687978272911039256184541408544750806778309127482250063720130725558469640687861973074275176779089584714367594779729471751422527828147266749319966334735149010976809689341100199428856997771222290694558404365258583205491813507196956205803517407669841060047608928996258936680230167857910887676466746271984563841481850039436228256169757804757262462714694109698497880773611415324455811039359006695501894422101128646284058220365926158529499387407108063984787260861627517282992250895778796503020661069632182475584215461653837493924470351631301577511948413382760902288726423169837673839675141321400460356226291777879594709952963839123922101323731172766265230931706725909297265728284548439010956345578994146191029644594775960149809022455897808035316468168960120809520177209829436603634063660705397802523692780723186853146775063400673278796086801870434121300111213048484531084231698503230818663090169101139307474550978643195209372994242401715116943104692320209431194577633467531663045751101235705254138356666298072191833075054636908928567039785266430707212977834600810210270086541021361344929699298770896099810263599815393897813482238868541021083870758857120554595736103307833385787157383332396159271981165622697207258269881151030722754698740156402893434117361658176196502248160849192536522443177414807555147147817710063889472684468091512123824609153521110616435627603704586976325429872935297341537130231341727888657676538003894883459561674976320329827399347245681887030240668708413371002238586869134225975155506753109811060395264223131137209123122226683370426756375197265144110367171216130919509945992098030322630151443974547368018491620189527796198170994921614574261905792459059864339652266435691129645448902334945501969015230421574357731599163789967577560213734767553318680396358199527247789318457134430692082735187415456537144580840850770911114196209980725995630056768366116687173448309373388622034582116376062459607514737856803691001944049645533229127040069836500019750908055165550542759577805894520410140970109852003769743855578140057747477549884028827027122900457829938494886058287623596954612533848684698314348827387972328337045811354913645947042820324410544365670094340499062583113033719687483112401883009556339916825862681379617149837237905456273344188977827122349648980164112992420107730775994421833812411735793324859537824211533766715408421754925125939455625658297168242302601866196021140144821808040187298061905142494240092113643811023402233084743669638394803996237631459638809777789925244966191465829989940433875198471862686755628007668476124630530258022908935461772889197101242816703462416985534595650905991567574624052050218916776740207615382231511736864847238966336293034742992244485476746611722307511413033882575677728551959652335077584931126479981936161142406714275843472599017950326455686899172755108093530628837617236457701189627644630353799768396321092445028240393041551457247210569386504612543767555706520089335967644990470406843121866560549138676591674571976452232548515450428037642357387005839694117655960475536583846915127995300330774377111785030496558097117169639075958982208524523255432348468013091092160693910459777044196831380939005407171451502828259070934731125151406201384765103063825612237104197740354431223217385660997676039450160322018554387304815778449550809650016430616727650747532742972871523376843061233360934884374194249017806656074562734685608805584367911106787722687907145138347481623063841342622590557052750948346325768983602371051788599954803221506651903682583116237610661826221832333637579278537601489385078772033833307254966015721713959484848345028775145750454817553788104157513261759903020730708478470206700326689931200669653129656154243554187942660816117613916026908611916569508074228423487973889533884201394078993305236745744377767768745831494457685370336092694063020539753960216692463124061335295129434155244313649181823466795725764184080056994174652065025111792001671753963170925396153797502514871541745950970327393879616833732574459714942573834857290324340496179967552787035628104338341339681081097198291795379591345644086301616145360608852562642566548706575829039026217222468059015058474023387795295003012337199209306531219242282122884329748076649891670464552936434093836253433973957326020298608364683500362527799101413131288147663551676261230583166024946219518810625398066010018862182384029368277707151408685281178130924458321187875218572921634086803590462757736060933763350690241814957017766241738514193304220551816464956368987889553480058878018679648302306280975295181165332312667693638384128190426642025900599174777715638780632052223209245803694690894799539932389480871692773564481351525744835574853918083749883772842366145272816920241756332100039722747159179367632962978121940074017238633161161260061329908950834500176810832721113252145469304265073685456990458504458698020758761993820192089353893033779910894312634882142309060366599087654829569342624807414481254895278309262146175657932663316376135380610526174249112357609425245104725564100127644054295056602740225474837502173597474597770671748444296590434478541324899095423199116423745817457525454602567080807030170389547263584368714117781775066940133435509643973519960863496139457299376084874330190823645002454378801921563249667178324218856845651956378148184069568789901266703071800221575004438854680284402683560495457432185686331478065717628300734450826821010682232252948519712196986319162518196484636947797146897685424356293039743848858621070840568013943869951679639268570176964812607168972222895342984630279849004326948400793663952383787520843436845577654497898804462460234510783777201661334049479776048800783860590828285085048054907643434639497651790471475605575202535156423318786620342601580429132958533456425126543389396227155753411131694076573681534838983752177555177857594478291633888662226302751665484100219599170125683835284102899893479742923608603513874881053630357959727144912739005122607868207096732885414971206255994402331812461591487108716688649883331134687878826543827433946137414258504595494870338988606824010030067758581531896808462627087416135582220052829210525787554379334113837583250184221162009519476487857065689191138630125088227526225502649808638838984584273500073538130684456410113136157312674176886381368907483583935104395056584644729891640793750778527883754458656366697716364069615614928243817647669047460720716960717234997939478120938801279685515897671618521221657859675774809397961211835755306873646283528370901205213046169286200108716894394471992645660919301913527854534637981910512032535590573061298498004142888692242028664100178839893746812120500023135613390119964062795026221928654435549366060873107911942417523175608361635766407197769704153923806157461531478712904474836207652816219904632691034304514397067879859455501797519540398834899672714386689656490395999706781353366781374235829196289533458470868181253516162846613527369491344938707971658354881311745638331906274693120534820355437216101141034812629528735753469777410085447605911264420463170009631958930471967544469912547587795048012362903788971769351924123441644149959362686377104622449192998932724997442933826765724853129813922084274156976907502709024083051613339957920953445386952195753241818821139641173198651531734299552451647878916416357520057023464895657154155506952593638588348096490080934546538619749297455064650454590137980341680102870111982382996337482499559717200043637375066726283925621925253736306861209428757946389929016199953043066736913584548861982675040548629240792976696023619034504856237658016392532825580049744712409829722204147951697794024204728172002954480352803092116817188949831885039235956652777552134018878939833306349075259310132054838812181991835513231312843577706653186143001744564313685025064010598105340913966744079692804896345214418909412094265703005958891822910322377829939638278635472959807058788465772092744738741223214789793116159722345410786734108881468266870637055530991087982211186094595360965232365758647940133256166582296820467265464318979608642630025646439754227051983606299853886537667248662010284513319063846972201592423459082271577522472152850024973354873563300308255531562452824750061947167310082768131550491591199086009463959691534853669387086861786122123179321291398853427314951501388517088718347872894612195857448996746932016621041670222919539382637671073444922723190427147079129482512288649105103479679158069439979667241688244956289237184817189465396913093747661766528735970137844697078825889815162506599101881598320773340134949797837591476839745241831621924118858694827408592388692161988598435009406059569817493095263253418453607601146448162093543133766505225662407167627086965978546366566021370953010279788672606957029223316188486947362740753394192398894590851835266216087746980364307330878975453364166855465490937062595096412150387341569206269123229340771004621861684975311354363739088667580680477276784617137619501063842268874739463528876584227604341445957961662348942532109874620657510174537937654770097401099049313409941070031248465754690907086901172249247032863133324008700913687127295061486975123405597829725161410233135470193031785320338144020138644540664293415850407023328462500520600922254949574896283664999260991140734201703707282512024017453039602370971585824861122398434338892858208014261935661365742210411931831096450601495730131159975762980760797004834179905469422480734428725198416971030094441436425052519872634797668681928086711530543554795940111699525293750004007165487287926381497660477959929765782891644470690362649792395464990008009026668367108000405649209814925056691118072300253257994580613743622251633416146253650265625251081301968142956469849448228903085910239226895240942552200637672366260519768947107840441300601952980137683113264017790018731555829042681813039479119404276818864381852028464599202563894224356266243151861564016945170844861051321014379322788286842531713483022648606603696346335928394213136310996101898440314381865246513876770905748645050496157238417869728458543155511408313370353172777661987651051125754139470438839857783259431282199731885857918196453190566764829753177638928651545857671156428416393055783437824121657475469043474044312566282516940256448212407133582638974109795356537613633599266982316257756645168102582039056999938608999181857303492354747461161240817073556080511818549052846084386204307757444438510959162803032685573427605578072416304367285714889138097635091151559583669357665080084200911375909801152721271123720878404931403724434999344918392079270309969230065482621982799948214191678976418492454530801934810660576281467730926624449248885192244018269236839668834788423357683201423421601721492262160451227003816602562174588031650247413578709882373965762125935078046573243074709830934367625546876750402740994399914815384027179220315094822385131826105901251326941317480282782526651039876936251079001170400786320671776078762545345981118723312330221337989628075565994640311738918652027142323235900736977969396802784146458510833655634185810069313471106996912565505968271446848225441806271009511171768412140615386035189838846300358417609368861395266021288396595812815736125039573317464599163592637537931921399189061025706763840013145742630499246959723765850177214128083427957488418586840505125090757888963903810344988675147802564271125188093356264572601617820311828496839915020011633986839403061041861039581840750684365769148359908455301361389501618937785919978172620176291861719106713619057852282693311734225382689441277826653685420966808308740395804754937133293670259272679009619717690855608207079717663918665985834395077772369321253224358791663084685402543372884706806287952556405733251010200074866673298788779846849531540346547864390639476255854565511150503675266754781631045884160074269759463923557584547169336021797957808822221874280354677194985053675457196327877177400882586710788928759038266437973134134467574128547111871510715089077707498253139892955477001306252374480058328315621325804229960494671028674810522501338428054984794929161558056673164778835564221857771057578170968124727258228589083513905756521456283917426388168805036245771482376723805995893505085086721562441748971509071171099435978636091983063332686849413619337444966076329693990369431815674593228374426458039559452823657376486567557916667757675319677944310454960412932790209360568248447954060331266444594289285629311176456643447415527934532159670139699764777179394975839864807905177311634307474633335104239119596157445108089681153704430398591469051971895765539789344314636228865059374488676849943890432755132101197719013000535065514934994501597793367131552465676264050771394476916364718441261572578350831646901005884128820643340051057025182154325416019429490136096991483376565084531006729297883895896127619911087111698794509631447076486896043256148932607337867895533401561112255781248148563731875549243362138375815771640397776842284182462718577821660984967862862634317825978784661574971796343514908137913243741084235515812237429023036000506465138853320874741646569303496005536015646059051030908716872810413624217564294594578076397116465423572468894883443368395929381904495259796652824888838117575109364582999845619247937717836075326663291161775018691362621074353111318641770173938780026418472161271795539308610521858518149407712750346173395684664186541176205567635650873625907213094858949576361449168643655593624353301108556768109729394892128898078568161030046265910563186324758060178389976047470117201820216869636422553900831812502086815842583244071192921838965611488181444263336305848799975023851260264760082031202358213582628852383125876204623755438743112372360769666484034136556824127115468413286951464425891156071561668862202893181569938049127952530610361171457906242603170392728129868171047545043209885726063555401187787705442906859514475346379278783753600936421206311189604231760296600553610296471233563825249636053415818480828836401612055550193421996478257156531831278133577813618723743446955241909899789484146054701701403022887686053110677238915884534464318308149878699108396271724336968156423645450580145216073879927783107166182324258504811858748173696250049459453185958460267122565519373923231127526857716452375829409267575111818394366757578402822874844329619823593684915824722464716048862818376286457074754771402041376971486640352837231783844736116488385825050424049431391010067482195487184124544539690198613500993907198181783003667113506640443841299107318704745930290532449236128336965931813621338295735187584017602015916472126680491878788979432768334940452063914300623956102642599014043100184950930846544347019687491026519773444223240428665411028475990108354650099732254334523069694370022436899931822684269926205070127214960269753443714257339720786807608691452377183699235820395100476413784305318987737625079119334631121729536474708603592613990096113079887019986438030530221946759564925440331099870835239147012989940281849481230290309681900460127081392836608640015703142884341949366770424967479722817293351785898494419007896747615735962174735021319275843102340127940177632754453047869448029481875767115410536902101530843355504244393743700717400779650895754439605892487842683087794158515349683739378638988501277979110296604353999989187458675578650330294610322141435724001468808975633796606967687590704741563913285182386806385574295525022385548124798306283300411602238601512688173204110523325235467126107836788762356943248845960016259954518062443590942669986055039018702784610272121527528817191551283989498110869206015027661484496356610149889100697402250814252298775002573939505593465148666867674941370990007686953873840980833805789245413893746462749674234828172558296111561096084482502962619976763578441061116599635439481206093915018233641314285891028865495144987745232425551993935911233905565309851256276315571843401661762147923467453015402134766859273992063161285238833013316032990337730231792516831004523251787669277272576798457335568176476269701768214703515400692571500263266130411236145882517688292978360235679943934131862583376417949078930654046169948221540121837570172568057780564966594304620790626153532035074782727754404688682385708704931278724837045597170265618624143740528592078517576063239937411931053222946783249511605614620574735708970357664904002022497368899000888001545034079097253913381911882215858523443191392604340118883959841781335306936415032807257594790667828128218671873301683712191690718645135323337296227936960266380131251853639777624628130113584436069581086111362653225638926682395844008751280490881313722729262131932943000195651509366161525029275858814657178406631038786685651197677520657379581219319286335527117282764416831925231673157996306468322048901698099854858793385919538430048049315926233789735187809952854525363177832432254999642050401742658677169266910010418428011430125529892415205747308283196474685589113210573278763370126864783755036980844775642483605792379599633505984840525299265029602909514364074316466977274062184353521844915700527614441476204617279122398972744573463809946314501056722514418637534305005239779587137401855178092899226309061920894231111338379296203860401360556681922130349238012550186024784284270689784927531481318756111900758249042934590769978224010536902278347573871504437254600781129021988715789329668797941512392929512937285758517316767194653647485959404252001089611463795087204608680825254139053218672743249337205548625353554001525234672697069053539575893140585517745330748862037941354088217147881052597494055576833302733458242349444190715535108566214150603862025481924909685776177866253808266709659637358349516884450137710365831821338242638544642974001378168626772221004143832427631531476909652619642219830360457548928132955945107588276681605744053541330717690860468570479860342416251913556856978643353703073341963070945988533670263190214417189081873864913974102162553714136361354771890700157303764381800400447970457977578382569283286901128590210367077852165198780010481208945131257177582462863974119618155596866930697482722234839126323463064913204287944482573984982716339208079347044989098327092309259207899975243321406082937084836905465392777710059431422448189546069677050757726750324514787476560221135561939314797988241292719696105640062012126510650897474277065097976922466404911194429776094716937434453103888387533042644387605743062989011605564675931803025085638031959355472163903310083432937177543391881237545645175197610685021223736655377879549241956308279617003578782834151394254420497626980879722121888018934822954931872327230561488822613210333881883284914417008273796289219414430317860223609533840142755951230531030068779978898379693961936781461375458051956913881670369145131951400654870452317882119624136619752633816005614315043828719129283495911040180662066378851613623251307622458123595049017102094258472380891641128578612109181548531440146138391476103286806425802531311914453812579664550158249017045530516797637990202506533554362156919340097112833222759626317153433186966965463985589101086168517058293390363285094261765118301668973226873476250830939374871189850290862007727136797952946651051595485397752255851891046271734679255986641245814473556036382839854112246334230774414494441827459150898647527940358763979182428663713961491244092666160755556592407907381229429356314050773860785537614689715320727965620623339244022935453572636834720870690065683321703150774460838066673382464769005211546945756406040679628355716423172355249257119656296569278262698606272048323629956732804214349682285731181214696366902705025924499264607032515022839796182187670736671477000980706782794277652928161471791690762683919829854483305470658871601658097051350429504634024867635859423307997329819666690550464573706156571161120893481296719666109271841448413015669438075762465889218879147144569065337696678368555666501843662097989221846541184482114518186452821513571669454559811629471391106647208362991759538990638734462382829467832937598705265978525465654033131993823910490993715829586122642922694898329102010959268656581353784080943354667079063589828305426958337612076281650114892024954181584198461818281259229513292647321647897929970541771410150595934611752502813033800183296735463216040726550288682679140182325858893686456937333043367770580790083167546539873249693902586062567590378735465055746473695327995262566344019990780326564894044413994930204990704000260038269891464136063336386528707317649861390205361331473431435592002384590902233736423789621542516912993324799097629409047245898018568068684910813772740923987792272782699433244093726305668027406971839461928928499509218932411266850664782473716681881606768823927290734945520656509955812153783532014841139343896255285987210874921791814344669531994563271060722211584361373177781788801899817760928479068490250610079168571725431477657791554291169041075952792179051909427311755060988266457855402319952563345056340677182799524695098598631371187696639240109316207879271414637211655383230050444940980030007299337862152579353564159500884747724254921679037042896254564750126809064838968830706844059196176116224749852875335087568152738718503624864780601537670690422004379197086327499429884022663202158266811492835443505838748567948276459160921454965824310772704478352218011990429247800315666277578145974303354928281051722167945347971571809993408720915058656783505194334438507691366269840085721814313122835138935852155924305857335430800618833227309492531179817973373461863122789382739414491800691721288144996439281462503844245591669468849777017984274008906174095094239843220461919096960424468743833470149507443219731970682820452060476622251912003359399801440738308084885343810611778997932317644312939735037213288699295776828273715792110966152832756848997576436498735064156279683065870157863646911053233116053207007265969002033322601873247127552625894676154633644848662464434664609354345964611308707298240554601334873487448607702954343140840416071057600082066653349753311983559838192895159926442465083523231341187179423880240399631140371209771413854002337061881975837788135244512640408168782029698300610712047159186694965499516486036705008518264761777086054519594114278853426361186404038448426818806304544194536693901955976683815123996464784604425305992018741067683059468061589426623443807310733973384605860947301723468001626148559245139286582748389957850447297505920925232710032935762852333993078458415634181807040751852300764804140976464278160698688189246108205550584353621960034974966019847700046798638029939524345117102790081173297124385342276579863746120964142937494794495429002692398749354988385589089402604830092581691790775121929913791108165412958698313557563335277876714334175320549683862201091569011212682205166017746440270751690407838948173005022360834712896912637927706040350095922046718128748856969794593752062188226754845092349471764594337430844211152175930842179785330706752069918039021320932293088384686604665624101372955928195429389348466848637004310345728411824357231400378405135476248090373244728397126177301453288706148990611060677920785477558613945274331656762968782238782759532356525779278575329807051657483250390371424244989772635865746316500803525294020230910790342244427271585702033629993494726646529204053658949497623530383915118715360608838976586689164829357058497184105261901883399938776512500728806155455734376903277609600507627708625629609567511574756648144811017894138342802871263427900308092839255747428072093070827061187509496822784158534904013646291169848687970366353151572141653305422693348044695494831626967177457725994426825502601197730851749437367802935569352763094642002960188465021642636359564488501642742917331414335078364703496886301798126224409694715713551140872960838986217524347207896733170228103031474654193520856119536315766782878599701064972179340774290314059809746959063428075414091224569029391742167115579873935054749695958387153596998787854247519189465360025702412306064365691334861795656534185472731479716493880872682509990636170332982437107225056421537840115524724670081702514908893306673219631647905097511746388201387901750236832865899553301145042321335823543322110605776238801227073337725902521054618564511703000305667310105267186280093581203208203251889390903575731702861530590723685181130287956620152109291204430162811108977140291106019318389889882811291422815798296625734397873683644269083977446659742997849064158668715399994547804033359476329527966042377779709190562771403968353054663545493019177913528114343611920229663848299410682419707558649898337741359400834183713814879753120104633117423041988804479050016599936281009478319633798009975698770848737373911509733487567173083510664932468498982930501833323423845125191910211497198564775829226431696849918000488712661456638500236950867826177831552785352904207903316633579029920571303295464578418530410719474303188052531653981320953320546874708954249842706775431933186232372466444625830416508550321147475312229223861930690908396405012405668541853208800570006716094278210841252380905500467200214866641206414103792441629671116707716368312227739935235307578689601643964011746086204132206696378861124066024932686068915083315770146787584235920822205250369841138243700470000029074112234460436467033611335186353675221593577372533173937989041082529992734221141214838628817151759530754212287952659018964922204613695963753282504792165449423171304382947059442786763169475586350882651301571396660697717766524694741054802204898464585664298808515000856707360646091788388024415335095681050779614105920706416367774917304478320441038903626401753605603229423930892973833107916705276195675727788506862160789287916599181538582950617828464325555711040745972782589800549291638024016966141627973767748006365832610880558171139562193361286574716901642490448140868082903954096639952775999223046958057831576388144858608130598987405521394948669787526945755602480998759280569686724392965427614804057493106756684020483941198054494862621513780640884786849531479995296402742517900744759463474405156957893587842620147333150271006470230307648840050402416237124667226498228704300654924273680973259920487882080795339551014020771062699317325891165259695127451036616902417974849375762303983217164926618419425257438310344440547692409360437927597122097732699138635218900116400306533187585743640427178502858308856299591453227321502811005544632782252396089765620194669109955973660358999990420140681812273339135789276471950648434435561835611494724014733132947087708169751141355142336699644536869202007835422941377114632307453489037664251268900995843331493723527428540007199921429632130437593301372299510131006171713317014594418431091267321733794585057877291298899950952059144752040493555603110024998235072036320956977347266697542862048014915844746348330023293436571974768775400181184977705812915599247462121627578311370844742884643105860721559526318080502209949669815340867342097973842756475769350711568366556213107696797218568667788910168471403958176879375587703589308265651012309318029097514328363385966091554559294596037414052787991319175853964578349072075330952420850258217442298707072987209052129661208183378767627767447644122214852339998316460209111133282639633959788002768433723892735875330472314814175088546379385627014950290269182933395250225337154012637397135297396449921007006939178509443067476562933634557916272738756936287633602291362868439410812174267540887804866111103899273725363886023732414229072253120252310273688953909448447513864865045887377454105048522543793426101857593570522196829765500218094782038001611793230083376217605389336736646086552475124433611257509940350576164529348866205129728817706480641222942401276344437579108615847119924826536313799375139213552952586921806575603517610541247368570425035398520023024344577250148897327760505481645743806825289208192821675727789500460956834516949203422356525047704777847160189277960465593366232339852460032814756303503432544250066379499574991014925355100984862847853750486094861248320266320538015861441428900910201320556109597190529583380062309551382408577124979375259494722482631204419079206545067328445567521046693234214008753386727151189754995733890738561152438753321150793753972591896099096590224200232456824307669729761940793721329798090950838129746106438908414546807071999562908975299394916924650418166446131392164520826201327302444108089124718787402519193011221852469908675510814336141799688546391078794050336711739649968086696147131646666311004627022376914124175127766909168194074209122831397901672935499899427285686325210619059968911464604186351725049801003781168667720875902557483280746648309358798369357017414579464481388213595819439084166361753650427760353837039294847494973815530224159357966328409550807679746775758792917648886353198863210332364868927542892669207869492250891730667895253598650466484938593017320293637774649802548257690924021617330614215059429154579798481683759305463931201822358165377124298154163049961736257028700571770981614147489886307244907704625856040182993163477240274137061965838872229316631244583675873086805233403658002985706436166618442715237771659850208570376874713277246771128218752441969762363865273202128651665576015575683390443693704987469899784207088616993219490304510353285553216737181039932396022784749062399349997048817608207838496010822732137043803717013753232055562005253741831412705231943181656321285143640124163686890004544188120195024857712257403511217295609343416870538678692319556274162441108969623699321474408691986249330724188916146928252075078503923982823440563545012885535487815912459961067119862249834726441839676244308329028180688897425713736372080866267997997888691328729456761655059926972616732816946123317795834319873724469020789327222961961885692927303395399062600957222017825258472767864986396814695536373478001972367687261005700865374767407676752515655050191851821965280487853003932763147045830869325016582467789166766135618880950475846048234515325949620424113356704275398113061703311335386560891414941735990899711025338346360337781786043578693229681163636652309495587872026017064967104326122644839261886121839178908878576099715187310426703406244712151469527412730976408722621302736215003747418255331748897752868174100777690172970165579424523412646246798428123739627673723242858860389483367256636278647493367691935100593607180158318989076165489503197972580999017983629202121598544017200447561515092446431015365688604967043024951771186005006041992353084607212311199574702612848530618022989225638791829809272111190221144616795294718723772996265264635733846098801219771278027257987706908495923610169958360005706178999203074356414073550482987106173381333340038381664402694972121792363197137917317214999240117187425086118703725732036242992461912772764584592849714042953853739826605851315040272093985370523516429762099873514757323609005407754235321853256515894208825648906734224005589417447098707996125556500949236319126946122361143715368805349978052511714298183095457310161172109192249006845881876344649047300890512482018125280094248064801642775176364958115342617675096285378814615254538001163347932786970705799855522064314876234761498790869647440075981442249805177850874960718517572879125843698855120154527825240173167594471548381061019315849510159940599100499924257773664412991640614563580179574303344745082322864191092982028630477957084749121029351727399198581333924084370560555931384614317583846534374481407008787155809257759419473936670555220252071200227447799070964222324222155448733986731099044136213041771581579072088876323350109693797114738510846784462015605799491823977807035788379832789185393922444157687827613141668082214167937286332904120304110502784655013100852278200140483901248129509045853824606246870354832618220592092631889128985545827890078648173341117765447623465275102988368725802572073157670994425922111269757864721003349965190984697167224907483123525759790041128239048648049501402910198956792269950052850253291339857357058427942547340441664884984570632006803043108325688757659720731536880183625344214276799215098888522773346220730969672272448234412854276287179557075486089466082519570280603300516402994753993184269878816899077882974601638079162401589763473634670351632755426711376682601207849197415386944879985228477862018231415471059482588954570207984681791336995414691745819819772897641942303782823541116080575886626239884282099272485876728025102521849412265496884308032901520367982763645824028058131286974189542874870441675300097469334538498663967995220530450397901867389824211529705242223634272766042280027506166965313016863251343952922254949877780890156749486663313134488762282546040464367144828855147188845176475831231493295216647765129052407336115436254732908475389997108076194832912434112902643260530169147715638189365972747161590261712693530749678790495681530462006194799741548809279978487827686490705107018612292270737415330155474161828600541585992979655828051012306956692527294748295785092537931620333312044448397445788616743722694902797483150215087567440559099826467589550400038438161328923790424001220899670774320236359938864090517296404725702909938796523259188851548153748295060195103564029589242357265694165377107666496510433940347712375721048803275001212646761257100840795904908476334346628651811239842401768160458240146518191814714510686238952818241058177432081495465656247038909231254694748096223527525389441754712067366544995035650233514250560362239618500102415318223402256325814317757267523372653334243781066964661623768327393759500516057845640799893911230986691110808207909248501643258058643118690151228544233720865795057424715513160560816700101926700212813408135646703630001756587373749167912939798554794500782929289586076275311555672130333545336032783005106862800979563160102228893658310044875227076993826666846759283384036488366321843139371001258647141305039845807001446087746445091122679404017465010291082473934653939417002226089875405744021418093122429863485463230846199742847061197220025008190851577236068485688612023117444566247678484599735787872905227423574175806806901097705696296150418688809318071602785287134206882146264692048266888180577778174061310195056649249909369900809321537917171725027275611592524628425474312511462237610971832034202759262616267337959891070726028274885029467087204857926270059226332849356113963251008875405116716535309055617524875409042194106301578553564123756632134546431160606102421939630756003300659987663034616799792313131324416394461959922716580754803354518539014948635029619101558941497264524020489621306068248169013343379178774093973012283268028386916174182119777607787005739570801493804878044210590437480421704916484689146245854638176530827771602730921834701438064055872695993081679679714267424046581396981738488184230222146812467465584156434926401589778796157145154567993090478554674520840065866661382221286222382797045527923055781097300905092497149928955389872497153736048747429820719754984075713089986317457655185582429674323415291064730891193857073289873339826786196307319907703687042248326523807543987761684245130383229221971171114348494857184600816001726348865862626508765973942704277604972929012493838522216746907121958208641810529441770568161039516662278817418493701741252033768844898925395683927568869088128479926264621512465313105202836526137082980694939339048827450285598154634425383879343427362414668631318332698610671178554051693682614074597857733208028924524999325317554761541517248851924069869461434122631586575463343995615837832445213138808250586766567050844753776996012438660707175005895384988021548844266132056049735360066612083675320174203193441329636431869014795735275175086555775885063026015971143242027631911416731714800940794401212293331936416731562453939245444021861108723808842152786182850774986634283383176681327087926201317723954158779740806909869899849561744897879325794408927434305797836461441758648059317269915422685617667333693331651090191669332851467299245159257592771152647669749800375318393249481788652816454078918211486560414369782853378756267959876623770503740649560510028952798032085525117541099292294854455678984327335076658144440710896727176453675397842732250644264937263234760815133247437057900913262307357861547629777483989282226461506939962091342820314542972369444900975251203685208201808668536627523993433736445157921171155529556411381973042369044816049707015772142800683521285714136307679433399851967432712513274146920156996061862057082160927463736089086982699335546178669277814568770071948966809176135270142977466007565707196365328242338113580054565606293988471941396345863861448378619156862885555894369454156616508697132456750968505699905096709168436759511016817114472902443925470367425581234704272445830312278067918741985088636558411819494669144291570453109995496713407712431166310011400074885236890949401430906383078109406846016793055628431157739680186886518649438106125191346953503096353844745229305899451592411958554252456715161839778098011581236397615193595741988485687749299710251256073067981589783791776527738022266390127605833553432717836024172745149556041874204394365735214409933851725456865613923773260059781758767411362496056858200403949568327061535315812216769645495298220103895999140406460702518043007962458008372190090927970591917462086703710685436043326445458476807241588736619272549385078331284739142540123015862650508594002189503120645368229367411989279551862091825883048411276416070121940603170685827304967591425046922301231464604811422107465878844231793712299637967382118205336300856064929942493908434460112082250714551261414805150648646939938756819255507930447229950771471858153965916561766350321017804589654636197937264154556471670660836243582133270156263627822669254880281875252187666376100252821174554212511839103564202863170904706295176044531699872878829178978729030073255681741260197675888199381025410256403094197683531068976602024495647098828094369223813738940231422329346280319477654090848276441100700074066289978142253538009051559359800168983533031702279550912107620671413021491869849401921132869528222635537849744860812681681096320492396924075278913775038877829086800062883529474654457845695900022658477692012470927653571050333198835503170604828530492531633080653174978924281661451293845307630920001912015382925525845931363036237005360962127062743720737583474057135227482363366136904479545274936897994113906283457285529078525292829220026237277350584959234585332443529334378037664345401340605551711245350536258387615499209832154222655355372139148351104901910560479086727523949438599354844521412143249440897007914235064318335480663895906011680265446983070216980754147455562384632806025552087845344711785649012336494176733544768095620068291257498720141126866064365038749262815662057223919162577071295490872359506766067734605664154589880922478579648038138962957622794585295681666021650453259991804640597359669580182069204938800962950555763224226012962884259693654950535980017515715164671404874592623159247515073777914539591716951040324590916509054394399140913296440625475152782552897477603466412706245849472664924750681463386728659621596083145039949988054008214847111495734901727610909351655178864466754490737672200389519332947934965731503262971510859372463183504137833136938421797686563511327646951785694470919944965620098567186386574575755380980261190651474084940890334358830195740956481256463128303087551468470689796695974102871246060886961061657583102391653662238218889255364724868539985266225087215808151449456546922087417582096618368240771206238761251810068652257592031888749056064474179946977212596924288581383973821678701447166937864119448760312716911726653614416178429696306619757581031483681418530090292555993209963594062780505418991291270164415355131045033599152800653982544839732200231347992250672739775023769438372321851523842119466026159544954780866231748711866906420934595646371454698273188550013046045324343696870811723998612985785212222396342109358046834742441402582498667395065699718888148139742700403224836324066690916651349573403269305719699503281234304199147945853436480144968287499728205793033185823048805499673784431285357812573584675628900375973044137876817753837052866935535612370717478945216328881180801526600352728846448021418926680256652621058283600593550093573978353245513302646872902986347430100233712124400449671366117491924245396756192826236670659003051533544090861015102952579604682038723320111600653155730937136486451015591804521084584204703454896020636169318810316415929793601369674790181079528842066236319655301062605996729943481640802524514264031123160792524771617558346091548448381061245454144520283615283453057511584183218577866027071776402629379881445392675049677649805441385986205029242793416641275325376552562322559480078540972936170679797457106257336488778970905374017535046493837977012463185972679563901152868348966966656250865263332266593324723992435655935834730877014743970808816156581754374214258088112060861900094943506893618473866213397994911923451827198858990066434829794071262142145098925024612645059956979111355237003568474528482876869147527832199153318007756075024029788826825580611510891608946947480507226297282582948813009977313793073483738314338459163881205240633905664409625687933594373657798270747015010421705743212338719817842674953300579663375207099560886834379074407074847065363832228498281515460674114879075018980302992123792398989061587291069508214901781559834324990580373858037434578960484119255720461122316307704975627391632539451002840724936792517291345644156686147860923415887416261634695617987074895933549518103718455551381361540261949629051806068202699116383096852556431012496836820149656398743260527027038866268710949382879344912148058365409883582835385546907219587035891304531769431711955348596006441344046985014078106598320467607102607804844811023516461449768089066208850920537355742234870960312469506588591403282225649992681325165008888396245537832077104124504095798534358452944430812057622354451953823693270908132233502202760508548465292046073248064677396320657178575732539551882989618401709657898173226044076979806459040841341902876501316723266542310282957816854329730364469628614187213197126838905157869205797717474531182273075861038333387723618252063464422655379090483888162046126621944928430327938791635905073328745808041713780150839034897855581712980617282616720465242139345903318515921515165672982497844714453382882444016131466666186997651785329987711998352452019655436052873772790631526627232919994999618053682950759368237602300163691395237104770204543076669449675210886921272323566959629983710744510202518063982579338863535014375805781006862816038348306390607981061569236158765124473144245775094301062607352701030758197010029430469383240211272787269688785374472899962366186852162395570254640288578110997292639551896464858750146987525482867908049319060972531523894567010344796183309534531484021906348217926691085686241890792217541728205029058808924447855444185573965037964629418762073809111799030408585836086700509399132734291513117606282123820907075914010493535811108673579546171339465314030560518549225204291625886719415571599514158913809059484059713194686316574032275886860874625914143620573745434791995348375770980385249112995518985934210266332316012637852210820037788062964544115826528946335877660585622014770683067341894763280293259086809009306046081282655018573286165525451491202187974086853872169485979374876716243727840466788223053498221180659412447124941159969624393768370931520492060942739402938742407240477114933952677423690210783649956510474104367820567563851426806014401702573798356269356874724902486194187742240823556506479351179262663296229070816511735918378420055779964300716128526241275787332201869299673465052640690015391120461232919820204777972061464150472123940120471519965150052511430004408701683801619100595895101829449862663579205980950536949759358017304061708833323175860660200448191897116552472672026935215058056763867411889845858555583708444879312422791729967765070605698598062353873978504956286781235399472333542519591254407722270013553645141483350716161029288395450049253640214149251143950022638133371958744608400317322202057716276777290368909788609001329944932654385493978606088878545097682413242774517817064116975573909534408284610916621679145610327950086597372838659406258856716677039374866516507449293024995008803316764380204881565305384274204319919842955500848278742190654607778455808115997391448399729820158100989654456308205341874578879061843056015069670136596709079792980036063450541688650050172928811447306780158238691909231084179472210007445287945749086872203670517006979799265986593523455780280695686701125331399102654588270541251851880762646041174493357325552766509584705648264579032018311578946377312441205256592676494826466730215540940186226482820995554209481215283259348815684043679487224033019651163920465843980362491821768646059858643624099878578942626759002221053051599515519530787066708422067439294325443321972126713140143404180149931560040966746639437599489915560647684848471656175169693389314104446932916621370001189664710285821570117595080994181253035647266325455592575708153874167468000155771391133899739118919612572186712229203377202116293884335082026255194327979049203651025069287157094454568456505104446522440855450122395820501935383935738121444425939574811232222119564453379426446751821964150789660083639026986092808353428394417592304118827559542609772699781789796171488459576313851256933686705556379618465141601703573227733052234058327067546603166518111556667974196397817410878364570994189727458079795336231071170266333019502758943371285745523765128973417246765633804633688819367456178377059456520111696363123027406466672746535641516258685139971532251109536681429804537170227040274371666816305603772874864459994072054034154339827672431889660521113986041571345859487881942817440372428098958076229443651290773061916165804826997433654259617781835180630437785519825223311676014957309340588622230195107898892237055646113273282688898549826259366188181234523733930342018385669681761468233741151063846144069106341401155388563560148246368615080697895961385901025086190303681303726613364394157129782778072856821403424648760203589368783191147746299840671195812124139750978091482328080301851007392961398976582544557113981148912434393795450166715167065265054874002877253690667178031417618476023308222427611830445588021990034991548035340223490167579157746073389454136348766683659579449091550334115661819385950285301088526448204077593361073372156736637537558657958567508206954137202149699742047677087202574404756734374585981532034405213283491252218424087278012010879958112956617883753792080296877089974186153719242184005075183033104983828821276645313087428200048813786355089939375377851676626409513518853126996034215249806575291178760393998190329285031464865932314596925033314174413239101719889683977424469547288695472996097950438675031098394413829692575198471319544052311583134311252741460385778048017129560157147965331659602534319631777885867576945538766391289940559766903770499494196496887084724757011264309446117524291699134788928306360611027491182537117906985362460000128089185664266059115095165230114212964698021058809294653176568843100090526275156888317711798123585306231840039925916544524606465251297168318741272882022908187627748084554339640490365014308060586999383484196111116710274608715215239879601707084968080454646634769997712285874424301173738038477043785870994376235820788260963573787882036189480890251220923459151790352768116105772724010766083417653928494604637191498436259519400037983272169880787251786985818995788020199267536729109349625702656477500340421223098946767207507834448909459057182841999966625922184483922430009097869070692659021188759866637643296405588803967955472988721440246996479703400104045148749953070777228013952873904416333443727441369192028600433429583201289579189695928950864092979338655903471165654093166807009007129182729053611500568243143430781247968606332235090444632146010940294382309029443227058253179849240260656757596926312008004414867483428560648179196750652690570011854729225610385932483934496446750544961760542608206223303773122404018326160336401827295021928242745210670052300491216339898601048941844309008562523034514448750831097173066509050521054635943849376336184010278466720677688816224825460000240889785931797520036522023984236698158637357257686488122734764147719132629734218871882791367989597108079545679124720530272500464963952159840816349379194221277620663167796604841608051974488798666079472105588793886075346540045414322743986042257667539434714617061257986875928375946340258647952774172601307823829889355287230754841171050801162811155555985945349464318387325313245337039340284181593763309762438297843385691171237196164118350822618501842445413009818890448073059398630023252662335204215033447817982287060531507759760779021814346296395983584312806168810973622006123604528519051400335104420856590412613024678414927911027949257772204100094231622782274791142892406118617361055946882236637848478972262629101346331188350119275536571204062289983196655607672967394062852069621560920042525707578931826021468674988708819152899281704734947628870665784791315069104360925136579842463211507303888926616338119848973523295805326007004367651481703429793165557610818487735237615515485376629224627640302010858183068304312681235408230460208420817568762993082198229786397332286351827145223152232863323164353928565202639528840242839342143786011640828903435677552557953001616464533821580988779901856089358202189133047621888633328023826388912002391675031559546247780946541802049791849215065928581829022051519688525551019044118317266916547583155314111235321754391075003117090189715022397833518028061067275355205222713622694345350071648093898648795799699244741752493812436748691917567106371598217413240962883990392509907408178426243675970637660694963893991670576916706236308287990786617408552439280415802697831516108204557707130746060995952330168515565715189895476808911278652736682401353385708750921096728279215848583960341757095466670193835924649414618814168455699557495450365198372218127910804316223691729530724174602195735950761908709351420039660862997728199505300475729973104844163220308892679495133511801698387537049982181770867221281557206195877101278545968430665798529651537557268333210769419353879909723790916053203643632631460780643765388849284376436003374850449126614108562501824408856910435791178755546247433922574736057258453564813325959145137320194951810227085657895930815652998304185067437347072316539589875236780665350661036299304166903563753246509592645803847484743404192261811850823195339880533796302451064427389614809373488416532579497470469893969705775170480867497932657209266551063716244874863492521913793113032087164633397376713666919119221159327375473135532951807162757210652979934536118036830814231112501753899547762138245051062761874290305073234622381751466764425378446845148313013216373699214930218047869417875746278416847082724175163088007867403553244098880605912904065977977747870499376242612440771504674199362713588086910635430635170439523492996821528844039913690026813417811364167290538046759444944814933092676908448179003282580498814041872670800448409084642506843275011201529727818313427348507449593453054323308131166665678835699605267076981746636280413234622854497085226328015344069379749425968798856813764229421404596615631423984784971113311271148561566719004696397049116659491968471860392703641858910332996526557530936587708609523498773259582919950223669142963282118339114655844155384451510567804132194628359776094700146180056302369517645145631324336501368911779871358001264115766597983511533428842903010624721219578488120211440992293167791792977367177823381750475996772916008756878716496366521100238623813976920285775485813890526781222301328853983543344223920620561792554143508387809752297872024588237909488933661909961307698208434842199773709642743757595848446847334644689213018629974213041146858992088194989617726313825666478941528820530442994174718804109212347067747870548181569035155330155042518533129804779808460514545266650134584872968567886944990869243133790204928947322926548794708258529206313463203482851436905384963191540308682857885419453053119193941361499722445932909106646147006969093646248913484972161209766999642981142764636383655103885217065148988651589373148036709275318287921057688096885117920255989014764750168447743360885157965325544473386075120268639582599428014166703631739303976210784734972114079905738727414482054405363211337952643283518400160303960391375432708642791637735214613162283643105677806443444468689675776946891177690983171977159291488909293742933290146993513622616142276655499565647105401847326148189032434348942050420422469408498996132844244543959361891638673950840320592058019993908450278421936315353078500890469480654714788925301937941973850247214485044648607409125799519324699438892918495222500191112900094256018148826315778193653499672060580462826305618725143572722805866344331126487510056970468392821292477020327229250942387914008460130915374449157377373791184661824881240676008317466946238747167885210947127843023194156633404583432942443317233555362174357676111646270327285082630976038212852207526629010577753848248316403111111524095813130121692450037224933258306094112874198207988752394651100600963482038143692034964922135025661335569798449813700187188644121160182984962961117481050061005088628578711318942054116992787670197867684994787900751199211953488698033361545176079640047658124306457475322307457292092502829410827561838809752325192562349159915529070278082971392741987151193920090332826335108365423669306321299742959977567944811725115093872017737067548400166507000606231729832479506437842341080411335236015530770038101707478925105882676054610304731032182902114182499207366883098644329117481781158598140948373977388166793853744497456049423414381340773454659161667290972572809714048142038916591464688281181124721961862766131736261540208497763808773210384179340456346964418573001566289387878894817458346249226738147340045508853433840117531691678245176641800035423755543024768149800697179458766375477758427853040522976577597057217291033446122826338531488665071329228979970103667892450115048064206019945478074797077152745639361396354287535692541973581476818901193283284636559330994006894738633022835744244136214198649276316910816630663285146169682788367975231303167396739166800857396793426125154050359942460407689407045971582062094702344901356704527933795340102002833820998344546467928690140857170566659463903689544345539381443486556617728399654829056121834400840511091194410726781706486985153020834955682846671893207096381877904249094793885624422571550578136547015791016751937321631524984336027066580807887428892004923603485884775146356154612062515789118805105581455481272760528073000312680335793875154143816105962698981334207405042565272702572666888520085703370023438159586892810691968441405167931469680793273967841121403162747786986904544839431586242986545889937318636799454095487137614939521683858264244357354049024948924572628829857097993817559800088407741883884707696783468775553032251454022054526694641987863072246588668806979524928799449372747661236104434206646738461308721275857928328239720279644798203277120998970597648051666650248572541035476423980619949551629034548428577144457303222842494384119261351122343837682223707761863870619056841717399712293192243321982332140348992575708938450606031819813461236579434008250159829698581808413534487715226542094867902380994671964465988677783729651462144418309268938941248582228596632449979476932797583207134263578539171953049216235657251312806598206866424093524595328963867270156515947675734305330059434581400607897825794947698397592878316972306495920587988888321804854988865766577800077260783008994356860288467484059429120176507907672565155853928091626555818831788479793932387439469520801744398012509869800883416288943021234368456319986508299635532635937048835962354544524567800221414161315287571789141702117087206182938449265172839447806196585957295102445095697887470199731399119771934111484464959807582838009172001373810266719472946979883288411366937874043981317307851562798569047228474923373164318163853481009408319038551704332502023217781767211180649883450031412933476778683363727653581357420460949211571953851183006627845570466462389859598416196081374763745887674510362387807801583546278401183382087297748552407755968101181324365624303921184828054525659546454722904734543835448908756360128937397896050185401184920185382524523302479326045668172313728990909537746187408668520937084682324372515412734311605961769932551887858605585146183947844583867409046123254010404894718484612940060904206744678378282009549180329451081302396748322537733161924110599261131830074657401646522607034211452454440239198191470454114429384945550342795327384017013271194416397976486024355822854277185567474672198397510863923015448658885361878985924351721669887153305693222525774664769546095469901515997090918041563160162835539043539458392662284657188192771327807259489765952465377524972013954793232008010992308992071012153537648326736541155881714355461479694889318572083305269117166482694349217689926840273666593232531134798671885814525433807172836617435643924790261036634174964202596645258770787280746590897551086971909840001526925388783759839915718802204444970798815674675708785298005053842817181141508470784671772433464509481515614886055947313987804778414492010064348595108316937715589292393988640207544163562734635835172498036660152215792188139469579288620429472998681180290577470218978963780468908988062589850877040833754417387241990024174060608886419336695013274199141784761917038926891462018603261408675789876898932737555659521027443991631236535073541935464533269960264407870699429391739343443594377863369086816745863951069606725341927436322203784066686981483982858145118724581541777485096631266305543862737047973721099958695143111731897724487064236355143128599899191234137711694636009429078922467102499180901656589449226769641652532641049860438721922383018321997856446119905717382466568860243592165549277246078364063136092159897623920722101461948496452021523374202255026725997681734229757488385761521854263739833434574904913026657219942592980605571376025308694392070760688299117374702170430051764900609517530935232289786746531228952598362721264602498019019564283581313441341921423841124176630246522646061611880300607933167941050885842276797228186883899255910008136194709864997655908325669340147766935605573821800426405326590399108813975576970094636270591514930060171998477646954305373995378459357556405723330618622607711416701590812776066593189500499958885185031535403209354666057959515662711649617489505503815398910173387373755837843694797106214661368495489559138194098365192175683277779996099202740637012859735082922739190680553103706360508016626007060828251936706372522355903380452425708273174842890605199270340964882797071942898018590142597956867753272068908183127837801876180720995289788704809513012624345880881516864766600660401564329294473620149662445831626108917324500512261729962884613014553591838313913007256859555267225986463971013386521437981817861497842507355669283594797708523760540111442592001856510862025730367970199045606874108440543201807073695112319642102981273919524030244363926075895234237306823061958229583709385444576013058798673438925458194533717186335363767078031030089496441847010222905486042634614468095918941209481127649653691480409550184888456178880911352622987955508597984543392495527554906775053865799958757687303324496325618491022261115761112715757873976214742718137300481938634131369878416547022765534545832867533805853234362826761935187695651308550307720186772403717823416572702619916376472444211843571961344401530421977179687733151356235143265198556585825074448422655432312702054007893717697891048232230647081548033429434791100414595955930856093355740643163998920757528908512940818633880463749798647054429754261726826254200056733517979912485298881011377490397470624028994188526221262648760630719735813103480707271440418857385794984009790555973368355528954843023012537639015326443651681836791167195728228262421707656949655238801346251252539980603939334660541955781248046805931757415033679084403273289799544594230965900486558042821687939638128916336031653906722640388311585788368013559040961773084727461760691326817984702714473385069569913310119352676609789543225051861701858169739980640936526372689805546385438109708836491000064547918396749247866100196924805337601295055785620192633714053276527946422991678261136784754042663974193986105838858383230209147438669633016420981801428988674338445817277345150933235529310466682318821343528407639897148361274753962865396390447090440944334639774462197153213655901469681804844370572755116008851671370413351402867394486121126178136348553699206991044164662592893665347913073954506072543974807828220313636431784838586873099651957777589216717743597490598466602918768195200039503653116008887687730014377902730011028276184005426795966077522371148599763791037990897612663765927634403587811366432806215162844966171618866155207258406331730494761784505484875670256655975993997772798593529726039572853613303332837269884074055935251271997274902994944997666212556432627628976649852342709004326325897904236819772886970742008907636729578518707075419644964797470146167328941882817911831485490876223433055306582915049688205933357693179753368874400184949148723667589080397553955341658432527639634543542983458432305245605565856820354899958685899059633239320054718698671895810066367647151481111884404317306718544735334732191926840401519483170039337485360636296932406711797513758093721061657724886263447979473067006557393453129355455894322944027290463832879334634083025272231622519924290107020128754309337670843653150737407823939750180692791687030637799053001736594350898652487381816667192420416526702518630901817880968888707189760200696180470898377607970779156541713473185673169168452227243948595035225065866916309727838034985500579116370161627342892816526929498498209486549179734179240745010318915779491082005900413501697443620157827912912132314137771885369012468375011661165338017668735434635186396697098530404963514697791972349269208343723228609788870264430160445924446421517157350785754289735456183414670823571507817047965426049263558037334526524118846617543448156921777216939504126514700834276162306688709946216562090285694534682023950677462657935757199759531091485903707838286920628831500981743321849749426046451881365524999096289585506628736229560636147362491533241758938899442267871887078576381595232308905141007256450337118388253144273805166443508799707826154248286168005193138921988799423053543462758805358850179883995794471153933444118285266593617325757199272205833054655057977196850870966197162903147613498291240790687547928131953167756853951704247693621950138281288136342913505836560956025340697954646741317687851225920732005494107272908896205901182131629148090895648580621126979509940865101558816392646255178316494961480548417440427045485030661928320430644363191569487599130301500331633726941797585890068159138319218241837753336948157967689712468629213558070826835504959381501151245710856302750747450442679673917154819510131556330816784523496650741914773111489539443357962592437107623420980540394134386887585101635015539937344972474121305949594483110150530701948884403899063509602180650805710631585931302925510981710562803940068867482467257952625999776032254573314409374670542518571374691844666509806050860593126414023259791111896321750096191821570914125536517086435417230426349899981764126731227710577287277437014655550468598275574231178916193365143006286127250716213740867335280522300563131577622670509926461627508067050884736438255159730940602409976302128353209737163205823974721555850608981172005873890064260240835160625871812937108920208060083839546226808617502951933399890810969843436070217098089040733213456047600343869701900280826019031934398294972885806099009019746230094316641115941747752655565630679632532513817951019310503829697256859107145884623421726831666651318494525283580570940135880081721563735293709637878824968212687514826428377826179736749343933128849482650096304147096344544749473846612865017914536524835399843723517086141438759770728753081719651528635683221950069971386042363416195846410358090507676736081021782336800597765193306614368079954743644755951270880495993277507750887666064892588254421179545649258543142270138202253111318045830279891711470407866188095058922838515287817979680524312552870822689060622980505761419440124861640661571436773317728303838086092168655638559818813248516392378684499753420271350589175950296524926299184757970202624639053951623098965896476082512172557174482149343924285713711976600736172143807524612756790235687907143633242744380927096988621959065363607682049986258837491544541683821822823554238522795747731934030738554361890635761316094436443987329306044328524722294213062884961726773258732721549918357514120515330620080992507216764201539849669533189584394709876993382093605987457025090271486987063218087815421663235856879810704732524422865763057443326764632486398053620442180906191301977189815617166441291405923711361789040736894587937923118708862727159373343472606445568952950698656433651106406790237016262666258524722248126592288925820787258304903054415210287062704847315583008573858496041279193313389562598894646893273948751181218710564897489369068619596077982853023560386355717897250318805455386556390930630146772532486233797305167880837599358209640333185205339930606320318763465020469657093615279388100526303409308762236381823784226308149794678726133692867189897223205658035262223732741217707790841771915946567091013129618768124977322927456068706857914786257943463241497429828086838910097567083997250724683651318436597709924578457690962971430674363237558827366209420332241304315693240893115184192973936239415567681631492350464162567252397466505748952526824178295813449946336537063304929663836107171696197879769129247252728504588133112370557540029377700460506023083183884107265241299793681284618485302656741120261754754295069525611148404723825061789979529799266565532319591995938434741097897375057943386496356236190617257877087545317076795513973036478462699059012948098912766540776897442450984825996835423854174696461814524214726605913287110234690831166131695659665762093968559383136649050980537326684508137171145145944211291706095045345894024267171602875264766587460270896046158223613957422836133491922359186154742074420084567786640015538148077279573758406650742149925587077250778865324434227450660692013304949988464872144921556857546161752279603408696275783435929769378385420185673436377818811093107087948844653871042837637100551575910587752956145973798944284777503680887883842047831194272013340957902404387718464881862853703436637855098283508790731707485886165568878867469485599974727391328156533586313053056601213407226158659484814584417247316499430401255712494788589709896094204157830026048173087042519166181706841978809622847988990294742924250435749247831416081251447421603119925250500372049785008814399868629834255236931814157072937750938811667414982479392445550166107903050087022608594463703967595397322494663606880684362834891897000243368493025734775549877898493213714250765811985250468389466917891057783657964634288133490490468335351268085199018195334174994136770698533271964192055287143681035908969094921928521491309457664874184359455153205022824071651294627976093899732496825112781159942648535763630317257465773563204201973269681900835869002224196390326664267934977304088235662974016838413979715612362795421737295422019534639862305192801963805876558373211267279672032138183753583135962877327462165057413528360746324904362564986417913160015189329907427060414948630212890748262157571477626175756433126256189093084853251422280821060728906615755334822967968308994588916717861890342689423647289847834825805191534791483685584699057716277682154418189995913833719512674810720329601546252595277293742262289153021874381475789821034115908628501194492916988862182915328182162932128143440495949026842554054178242299214646936867773564138276175105988612133000006479225006636143772852994716096073961436253530347732114429233997160062601781039333231589500524460858895079539708245887250293581708835648467845359700473797824282111732308878505626259279709795679454169579154083926495904359903678969812858051189314954766655552450018457871665411948760248695756743977388255769993989880598079302821803435710494574412517353956583553236721778767603938757204020920629400395735039414606150422986699157693779755163009884720146039004068350348457721385744861955094245687116355943506304150689116711295865411834764436026012511486555782813069200511468096121341388366748647977352693052213036536555604582736369291136758125347727225101202675215463944915561894491572014666128154486785888858667585363869869701020534692675550377126660422789281286755341452222490901867378880744277054485273766362920682519523770571178433966325287701907221013075481402355255009470256492992471195525161301710769555693187149223052698388020716872913806426830806117847367615362613030928892866499342087136537464277936751070598235703412203321437704557676137487134196495674148639306800059314926312006304818667238695349160128544881532113420321319254567278696581216332791021071071554204644935895952320220819818635554969241238269331574737834093737891706782384826337027934661666633984842156304978664039952139730410489305769149438209170011445003810915886631706183764963411977969550892870479495490677160158370350836962312301982008121580701653952195251005833247865691293053100540875841588319966271245948708474854174585695197021258933931357570793164106472471456403594044932389927704503820610368161073723115409962153910136997615996063275387248303250169772971876313305342486126531216241835521084497847101236197138536794601712194793229764452628677820567938577079836471826276447389011132875412498231284200909478580729408359149625528906065169156678977576479827591539561578690551066012903001404491541728648358803098329366306918501618190750125616523306384698581504351100759262999348383629739388108324314576585880250244115839688157327946387460436983963393488045761659499360775449421881608810258501102221785841324711504096832860499654771896843496907956189812636576053510711128539965152085306419631973740416008324977065127454928732684948667517138103331030293852865622954232700210050102745973312735187688390720147395600212541431870332012779723548051309854695413563807062546701238343930412371383790584019345331074737129816251406908732137993985189230061831152597319330701774937852234487625039654876616639408796954103070430435138926593186561475292902831816106958936196672903963505947007628633643218228598365228596861546934506544085214699725066384250739998990367115472952212953607477892496590132605553595001699158158937219257141544009623475171147749929167588713784817417336404718421335670859947646765912257775100124868568567659203008238537206482466368372046529652443835913710111138637295580294748326240558396855295402849471786119909060318312149730634319865286844221661555151579251317841045831472960132793079638262309067953209912370482908191366042553675609332390843318990348520916776525648511329782505164371530194715971525734727290213106300277685843256162052960435250075706021894962109392477904927709536812385088701366794092129018358247822387401574354827111338499132900438123838807793042122930965381856471994944111879883992503973769764288974510357009294364983473026718148886635861601076858381550850059437538306645329993379216080761424359494186941720313087370674110157868054686704985359937849411678120147980893612760705492872784796472224133687579703445836829594463383921874223329306013217681496393643128328781789410599865974921024212693628300642992272316079605835599667295228027389603470345876894939058439266278197722412634756689089084981233036208329614340875210770399789850539372518989025230126319571432478696615663854786259373812854226702797036334288121361010914845151780987938868926622817852128760053096266736570068979996288539096639231920548163534029210873941621547117300528996080187152985245631586648694378718797375701431163948441664642071376043615273874227133452962063572472500765298881673518911499841006932321299833159124373342985304128839146971313228031923204848704732550915299447911242010373140791237787117958050562977217809503233359656617692183566220500153801986109268604300688287039620576756284062714478090350825992753422688555473020881127047301220841620486564899247081328071330153018683364117278445200901134185152978611196247916907182224804934679610641205521543279589951767882006941064103143347660765216199126223612319849878577704129181965411731457910887069948879296825039309935136693483007481570546851294592508944786531119137445943748974008512304865210863704328624747964589278733478177480079393047549374966963615977086457552683267855871231237239808520551688508153522448141358534800760299779532579645948349903395191660211198213203535311298755856097757789302938491407270036303733556496200820159704231009827680019967799286207309233887562542258742976761373614640804972258896233552782058851092473076137257646548683489348389683709646975821812803690991826006643883312584264974837617837574882444474848643248206053712673985774359936431521475492050350399303298990542099545222872957556723273882766047708163230865838117076164873519439110040575900664854500500325620795550264191667321726906670289405079672086297352340129384443401955723083263115702949868763127565030275374064181745112306899266721890060108684550126553228079286225927613248042787690126756804901638051398700830745940483230779600352953257525740615031774663248281160896579232248856832054802047809068856077244749957755551754457620133447992271994829026375984624877419985143004975320761330662862252956262612099740460807635057158879711561455230414545748908688552110565403808802937043197426599195982177037307885119085629555225689074960155408078662758390662594525022056733182692422066162463830166663977327040666484282895007321451543627245723238594093709723564152252982356494491849502881415788310808514574493348540105049347367719364306325104147556688771473224646782765751651302356462599904889307641028808349608129341832948385810209032749323132354261447186228188971987895197460781317433061559930989293615191384160430247739566059890555689818646082160893924567225213519482860901031768088913705623557698679201960346927197516341642831731975330654319079782198067567942436021775118665501937417596213720421268697982341623252742444381666678479399402590445456975807101682686758907866474689397104937252291495836009838121420465289431442895300703221167290719037569328299215444527736263377371135644924942724169695475201619172956691019137067092332370723563168778030015310928798918464843382444798078551676558440912184426527638523309888654079456433603290315555119385615708004560498695342819106958853434261160218168213768299597869681875024731309816279865456711114541925003054775304171039063713176966291879576177348460915186124809680200722505136392653337225313852120442319339313334635307639362961535087344679821442042738992699709371515377018981667169466583686902018695302644191405498249095123079707567967951508645956027910166637371996801654903243936819193128161984750088646096216343351482381589542547880222601538213415215238332189091307738705022914500656702103376045827794818151330008156348852078622713737367919277549431480323532928712325896525537369944305969487236095634667456840439291161562976718198772729447716982448223064914713712426743675324846878449998633855091713210428054954125909553924988057013960396827500572286591035202359691796343923239625255780339605699543857528949436491523117381177539363500700485873179816604975873529300042361928573255549551613507320410989904307836710987989153864044708862472598759868254674792555162089442817802415634900688045844655410278654852399066262158048226442138915181910283124786793251803463234164315987954712870860710908157032668788690754962049002140049976541263576701689422184918746859438003313035449190551222614183685526981577666662626037421519545373676353360137767539685795800018670853115926352590591612830130153382192565951687215019069233996289359795181026965994668758070944746194922577855921811838466813720224522544987634955794196665460744286167492059468875119345216706774829425748748072992910539356225088473847713106131449551652413698372054613014791305967713799537668507429169610845061517927510723416972204297552394876675967400857990666955282806934306854128537920216657633463088782672499813794543441746880909288366836881281167855382243572204798462644799576577751060276098765333913992079542586641484290670485449519731459641765783177896494984150786003917542557980985766355532632196795110896819819762305349983589521533410384263946393055398320259855406005351737110759841175845618135323986464875526313226401087824208315638563412278190008757924119863863385788928699072623677117868320670923721496047412444340887494816346404680088092646531861310842262282158624032074992431036023342023375900904323410273458175620887001654560338974393449546729073075466913111979961781125379341424290500479797378933508774478001053163726279702991095316210995959989786745844775131425302028921097603002611100771344964013358058602945232933928872295895826016040856806216840611435445534128916291091929593390522260963499621705725236078333611902646282406769148551908004959827129716093524602692954456126592665914994106927881197578387144602398324487938546133205042955350543788978063882824208888898341228968956541978789886776165700438104152775183530332719230955196509623791317908321932279092017774936509301382466507256647301290086205719341988412613509048601671357737517813864648221805661280562002916664500712378093345731300720538554714081006317303271302473635069912642728743316995894668293505777274126824797417330874236803447752581836998428320513693632710962922672769867831355624936634497851670553048495681952442279610470137730271059506796908196622517408861334934387628433103928425226064423735607521439520843618569927901684326258387994380348734089273510380702386464407741524843973000070934729386872668240245129646109437031881090856704451790208222860148114915935864660325270858707478690875251197005340364402202806026178249722407399565543155753236249272220420493028781401765594581143566555226978039655457888299433350936413159145618683302859589190152553513698693886577953862405288630268144629742050876983536131727518687750926289956996502832299751898951718138642311599223423937721416972449020674581205167450873361919163136992226655298954548455260889006652299880208083964062474996401669002706421957206969043887187877112198771742244545158804406044942545405146292500579254186901574055431996121664866264882031982595020941180597394080162529311915593206025216340792858113771841303454095801264422674528662126071100776009071055541330423970685118684617704400892591483005232236970618362950587334222937580861452303012515145315022928308272041665253166572821275308257750376054248613180154644078370851662076554116751802246465526498125575106763644807027416261923156044484570375566661312821556738489475639763203934512566966145878223582372999473531199284161036687539225037882111178841951165012803747256968715944851278321263187203272348450106154434984431408412319395001172458485001325268729114795862744884755791387364762015585506270238746665359681549653940562934385705957299772827013058392768774756233757435567519923673383437624077188896333199340521885955682151727822854875689991165456743540460110989403940764733729038174027948611684165563760928209813641221847033142719571630697883395013872492333631816900335892473148596093452308979858101381914645159736508779670662500960406874965681188933128395139240241010936912070213372692082770819316149398103954313736076090222712491056741091499892543058226032352935965634351117573058119143275144015016888434973088848213852554795985558820854806938019031371551123816447077577528188099920149468691865139494448819775366963586211921692960028077592437360927645286498360444200283462921053763252387767476524259382719217825673330877830156209917076773414011271100449557792470859227340980643522299848468299718443638024484600626484688525641238305285642675958824595609334444169409683666484362489651808267892530560740280810884216631751391902726695926493459161213176797242339612695021265761641183478549753455214175906705696947348368504084428237270933358272179174470725839743174334768371325616625862233022291620475937257566719068831870700705341815184318381196993144984391132982350100068681830076534227743953978736039418380625859153599877405860067939499983793318729217508501488245523674671668085495556605571486134403423736281344536984879894475972294665680733823096732909672734660713083474922359650502554586259756727749058952147984168027062155242968311258946665898517413000202127148347408577504521057517801280078510064655008428519521421866901152179014609627845649083178707328671629124020564231423296999232946955653620310718660336597596833460205944466381011956219036442616289594530012950449505991214433419485494000920942417982032195044149111363422128390355097854925285076747904391810750884545712257405103435397506876192353597604818875416999060466483139702311210263975233598185422181889427788024504182959140696676488649247327347768376098478278313581618614501064005669188076798061633088046002480636244539934961340342698716181990215032093962904552648901339296534605426506087252261885476638673644731754007008392786085451408062085955273923640246318044633660010351154162790476878663499380505555111589146152621963004611520505724354253664760801704798180779954372633020832694059583068865668218815816380259553719332378528667923558842923970631706435486234678981254268608440662166260119020681359812851814239248636598965381251074948256699491115829564613929916181916869201902848463776404887747589868010926881868199898038236532409570810816106064462455472514491156021490667506034099223790022926587521792308469724530712932040400918471930344581989716639707162419340962767345550477991701280069577853184803514077102448050565701773664792668110193708069762482634941153494343253549734200359739888566674890013420723676866003322169602807723602728635463591369405086787484356231337708714674962973414874010943015737137315477973406954920219697286621263696065841853410973502045294917371694839912066899505271162334363782581563328341985970362330082345881854372127015295020539996402740736480816229383331824519166144967913804881108058391358464388315110438517643559458286292422267297941206450111870666466984522877238140802385617348011100908830778879564150502971739159823960062591928200683080050816289040130696067940816630294431731208412179733055416663456137748411027074712010151236144617636736416819453865262116540870214873903814755779630449404040344389269022753065535321180850615094215194459728102902497801214711367130509368505450577087442967345429753281377846129965255444376813582270672703933662337781611577450172309060517405913289700590989095076944741703555440413149539042867434607388611491843288975350193310027260650299762182651220927486945613639176170291293639958077505120375591109894816054818460463209040914832232038166701437966719216298188322903464200077011101824322025436638453859836386655681124235283149536475032102002174725570301688476038129677553145672339435669550787948278532866945856840691936267218886517030718048445379552906776018680787235924529170646368213209611202529314550487463913900644520970988508470574014942793070463686241284479654410877641164006882257015639763341121909926900269871660943632431307358864508603044082907938932839483255090843641843000970879001947794050509510001136109964424687799088096944715986552034403510415870043694410498921201932837181349761952835982611808640832932708675377650707241405549466820004684044651550757343855424413173640424982889012347462938680837890418411015076622068899738743095265329737829573189824319036781798566991717937966264960684209156536337011134374662462870915928832479446614099770010664143513250491119877542258945876255362801911109804560327496753919307973645063797824275147625754372593510604445721938069744341025793001161467887655241100362275507077214016916408657597167987939986939338489324588667040101662189308136771131693051775131220630204177702040920329999364915917018503173933903619738064940120342684870370786290031852638146203924798347754313494051297236207539554496343243092447308083800020038006725584059638910593127788620306269696983239291046717161862506737732321245575996830884664639916906201814635754653035986369023059675044638593795716134469903966718366272426819136559391571402075234720158169794807608145837694979569219119377985219237962771449357468571427085363144596639466260604879039345983269755819297849304295493699727528749719068608772001854054131443472677522964785218612164899118137173146604683139590462981783588468094982185818703721835032412974849083617156921766654633813935286851439197647729722184178147027262558107630901827630516599209960205454708151913830766040095850093021546261199561733564988605702203699387976055063275807936352084029690884323290402354057381033380997207386435238332887936744279011112122089486036183039535281662681609337763251385421855621619925059398927398347432477813130304934766426621946599545422050216560646259619026257083746160589771366255452375588448454384289806583138021225288814973841086125579142826843609512349377206923727852146465614357440432987713082660813234707578642461953260735727330049777341819896651444373185164218780671890519293350302864133513497099362614795278185577321919276546429596067705476392516248600826737317200114860487797861415045818599372083328145315607193605796269587025671498474255544764073306461888181497084399139941187769907929368975069056171414433414516259263189369311000293748594877016507461979316150228631456545230584077128623644390027231453167532033373419144649581898357021922433279171740676433288561930577799274826987716105025591990752132862047611549033464078913366943340573879366542385566456418267277829881558251294327999043860168784108960122418209945180482645115424265529569244079431754607772389416996954119032835436895061966609036603020705868224085365859551821863585601383208347826298074732249005870664348692710496996863920004670467674717908079187620089321346022117612019238368231252067366489027932410270362707227262062820772367626403208951314661798863420344240544449279584582150413902297493660761794111400821397994606045008638257001288180901297937807467967400347122045538986280891103463458372379155485879961761907795394963204823004521640429177387276477176779667592397662312958880802293488999141610473905024150485414843214024951198458572838470413772337874102014347482328904167233132376463866190541625252096254417392309901492457907615458986753423553887004886889342715062613360479416819267962628918048066701041678960752715157195088918815510686562405995938004937405135000066975421166219741925480894293001780863790961146931825511232742946612933222932017258675498315751276217817961996551527680948235404522675512713771444748310695156973955468683700728599524198124771615998254722663376352533505894093074059477917877958635509942368285516806792958632242293171956049735939111200069820580981678324548221561151406297466453551798027418070387222624351594918918715992986847292763194152203214013205194751430682713714796136720986037853838093468338360584486152337695947792142214713825401291180532353106255216938490254278155737692211559319446818977203081646473246689842120052520503261915949174053732804268536782380754109135432148811367168551847397874946123524108107790993714264890144548468204138787318765247940004092656787435281322387787490095636745848601835157306900234453686912651081229884751411774151355751788112388927418016859343721218163050817924680266715488050835880619183292800184457165091035914121835328591828949973870122349822554758224932845799646191798125533860872264756956478263767351194273907090034854134083045361718726480481655105315759730210479600996465235298747316543734987713950975598109752652749692850983938664137825248691338600900510235382311979212935348228753027274899909256782042169558061817507635732824301253019103088206957030636410762238067685146931923708159715211719705277114955308813049167501940925464238819936350058594756286419500025299716745847989547550718127425490813579511642940321175880355066058396295673646288704748368627898131331847254973574690079317842679423245931503221349259481719914660050744841946606360544299181437776246323849069083922847927150869597933252278509065995565146586542264581161413095985095939963000163521166096307349761045590806574438646593575603829710234980902008403001339825330065641407387582079878504031533099674655746423782083649539298837590723625459532881977228254410984370429085515258593635421519394785152360866108253884841841308762996243631154708443036561040305700773005180522088943864321027642717690840625061000797827129772494647589540903889552175183278113200345936715718327339848301936278981077270095758560585513130920503349491159060216855857487103635980226872879387927221622863408173828826314821790486741102444221806197138205406740067760901517769046860650463668808450046964426887951104211114827284630322934089921848778901826225326140403589335764195254150857123553440368001802774382192626002667302763246212020301699715207068552550814359005315523341817284883345940253545632192010379974801315550005572872647123920618568367799959098122510545164144116194665248106677891574597693928293218843184482269446549718314653564433133421737071691671171661559772612781422592873611212498681260265158467600014644650233686781759585082497183734907339459792092758741715385636571826580831321808735588385610074143873695507615176455443495515523627975728954355490146596817109167182840698468742928191461325994148690846654191367852477455788264223261725388219953064216270495874726661353373223019141251009337596858894244232684804575230266363987858721835254536820482940739749227708310190529241586651918830776895724987634557246509945946770844636065481606213457748379477612983624051601139793496730778891363576874659568503492067283816588599893337535197906529803052186202068312570988119805832038700588979354003542050737816978501945126932031685716682853912978049758660889064952753115459494161352873622618387894893325942352043228756927285859387505001101828146645188793047098023382248469798354480271441776260991449762161735977534946890640594823171699550400700626096104897537715647096823799840749996468407627777432330401272818055268185083794597093518701376747658771872814032225857727754878817955490680402366068887327584608974298431412736905596836148507878352437587368902523515416496881219346811449451294055729189731749898415139711648769965821213430135888278299988517879037817449396652292592590718048229990266773249951424935113716083440474080801934890753289896105147864080475172624857276859951387347165415877633061620240929382398105539764441837621818721316822929739165751581285338172208946281005267320975709222034630462147858231761765839682130409830428068071529846664960253179336010464712777275216352715988248206018927961592554666250077212534810482514691970002312959934648246905156469171563510683620154499890535020093979256409094278940202438450787249089626155018700286565197560425310458778634784010696287286312511837369331932132502184624613713062958445453797472856611885045731849083108154514492296413754354874026442993280456788488411638407022645817514857958965297433277718343198191746756782841111422478963183948150315255890692537450799776126233609538843376841427318601961439609928855677298393446252298905685936591591626591071071886086781261731673699178846032003913191277514294034838356795456008264322389577095465824688628833426728148104485066432869653357979914140661025184039744026540394477300941959030145466497152131267943299815700153829441481393100621930067855239761228851753410867446118290585252332086932688302118928271675241593732354141135605625004398248359148862998216726026671896418724101117975295165602071907389377131121229003206785344013695493633804618964956026325812060916181543927850912252098967498102605897203443485352485800089449818811624262444864709528128492502463311745676014352054849263254347565601790509173110984478807314871114073314922489222954911883144264121706851708347299355700967985388826043044745829546022109250704610969115913281121356235705885294368193954939433831535867281498261968544102618263775973598109652387464051561784240197546726049562656832359385515022795031794183545819866595689283469596551208259861540668928913048231797764567569446195536263070654366333826456042399171561818620255322392540144321398770695931515531110500549556647806235029828681409202291688394510962502150769495635281278135801835905202048312779116025152961292930972627170034172391282408177970492838956360268317393045939309683533976847123331738176191673788509583185653607282114119428074161226904798762695902989518298834320359034218373830564307069335637240448991503935886762028896870232324521311364873798504443467757702262263789275111569540536993041062912565333914081908723998533219571238560823672354313243805367667109459591719047297546156629031043847553735293726948189623232159324352008323464113817043222902516090258943483059873625626177609197232975787617540730662040816860002409011877894506288182888073991692043289352087436165774654626949009698464148811325593169930554700543818660861091972423096000876479791934893085085225783938636680566306580427152182071675864190761554767567044430210400709819877274068234535224404958705439705425729474046281608833935564502842739014778699667008210152788345201890148642221579283559798289350985646192940901271906334275233412487996378031110934876211332428909016030648947831872286645928628823941244934257222355272724402825024564993442215828579576272475119327884081808386919258643363917568880192376842944364481528934407821681846058170144415048463803977035964157841228568956840720368960804761972369155944297009221744878306820549337556846728549267483386897137669549972646622947696584855367571914585182642863161320717223074782613990122537365266292231102738025594902517935451616600384552549435149973767333613787141119174669554625879847328859235508878091004933013356680593562373850418233308646363381305136634160336200979728162667850986514927783822759255528485539714594968754260594617496494342612897940057177584147270716162728049288028133675352272576131222868826356812668256229162160540250759246503507474360213856340586599804409876508633208914406583547837917393850418686704809923511790325804021845265845836375323078969732089687129800041494870673095143405566330320890094997848596493229555664929147603420586034663865649892495892667490844276208544714145262299596461444205211549985144987807870506007002514540975163786506813732976666009537690816552020454100237284760740411036820349126896668882818106127556864455291004918783268387391796612385337585829766030265328385283660120265772951957795090229809796411099767456557484475240471318902161869487894742543107599765222301112469462802207455754528009992117946944108396487054196003303278631693493463977434778672016586598885233841976741509480505733922694427873639392864343088737151212479676351331417750974241219727789073100554713955959616751936554281289699451284331427985187080840210857765186553537345621010191745910623848861914424863650708160132712848285046383050619075043524128714786497137211281450979844906802804896081219658401292545069601030098996524507813064579862984847382780982159226449444542578517660808047459955248415673801073795648707358183899177712905248417023974009799590709813576654254702470563670086043586502227970434749688768914941403094417610146488861865662801881948885395333704362131837723701847276805324841111956497631982553417677390164270686526130403021241616797746218790206470719173257768196728884781687122172231088239090496101286089668279433304099036998394230139214030881761452316422334615474421725582907005206900929839137633453151646436747761820688229300832014103918046758530520229204100658723491521156470306735810917897160135995828341867536362717192099704579396014587426979579738920264881457651204654013281232838692169127056419580507364623540754093786854572004425705474162402481606980405008676363426300786613573945680999710919543696368396084035395595133637640132787898872625343209412292937152098783582978777688087382712503024190016976471670901392226925840719946961602482434231109640877993937963963247590744475226174221785784093653328874892831208650590810370263070748552526868314194866456927888366782896828676278958468376157775146788368225308106938224685397651373950677473626759479548785443232764413184588031135281484060987972683466535338561757653137351605362882097066912587546446354764583126037696295662485287562589210649935705332614470251967827285288750072128958843850717217855112127910437869738043288995652449759104492906993817534537850834624655194252655457546092485093760829369085559387877234748801301836758450561286850741771722626079790363659595274231456236217712351443011377613085103083564553379323150562910747516500172282780451348050197250758025479114883334695995665271806223485167910477715122796902607875662036844037396083922143210785975034592357325808685935934577651589247722281996906233508257360878423168787422848557430761794718171528089866699311573577773423855434198421545088841776892549536890863368599669001518469922631684778948341301757468109495399372434292435238233953312314049661764507442538980065991308244370381563771968214959579833550771703494420921784482566145672763966697885100011419066980932480799687248114034260531558450103692901064732377769994734420395666415530963785898813145103957017466473489461097778415027611425803068579965904351230795265362199563320984736274453582181137149656540868822577481873607619041357124799229367520521593072994459860367971787165769717379419628888296252063406256400670347761731505055579662593594476044421236830678301136567049654189977078755879560316374058427228741147825102867364783597806071479065781846612502473617617079835573915132687404743703706523023828823439405640115263865995794657434308662113564562576896315889131755708061158469726649791266774408076762509624531301713493891455960952851902435936407513669362532553617569488738371767125570482296864622026007301273906114746981782253313799177192778175732980160095259186843268755261658171973822800750121800591233175248296166088839767018357111449148370986977563533358366261722938395178987190635547522395993431153552252755349238671590742519724201046569836613804333834704166775070147540263360693630477369542721732198268979833130908819162468932539376328188167991389859767934699814192407441486538608423583141498367977518522239920993758940329146074910652892532017458689496584565215214939571043146887944813895131716059334322214962471704666645199637379270033030203475498939755237779303960545696378448410368793480684466769744835128435456643541739650864411730564320613787846760520526303537471519874784570358035402764075561167732043800454211856587887663851280345635247092904556387973445688807391886836576177317421371497444595439385021919888096260959647497498005350065177586185404608959054622347241451065303622691970819863911377468722370171553178104983966394839938427012563553475857903963734953133678677321431531420461284264368972543260389219936374315381284553758911550880136286532387586080752144821692619157097442900432758191886460015379275932499057778876700615300743932396749906899227171457984039008303662663472075610011849697199233720947271254103302382152909098583045419937167633772030721288748867613250186738870674497668245668758553853119879447906987102424015681558149894024964316015947697033535628244794534675137027087767568865046996537894473887362532062441766003338615267406427128795769949143985067285128224883495965729284818984496861010558522553553502492375308297265697092388869046528886957707676799870755163457099144971412012470791881411506022528009102904480207906536524497277329459284689311015415223932206273687722475722043211578801902865542518380137915092997213038050090203333184009673794672827247028815807599395271742781427850657188052584056327889492223460847273182114124123385493003299993556862703031472305943830121570299037476905613694369846193134679372252629492879489224526520051016221266184894740353679774294162583041725385134930968376847031132509446090493838669923055394346415681592334970707984252793521353908629638860215840194562315394187481413940689648690413597545156119692261887227614106511135121808953679518794596163270699607723960257663454203455427219948953882215231559814768923448055723360512395860391295792745719546474799854931373695518896746039816749372981305031500529886638208979559007143664222939429555402823138930638502657470757557322568309439025856530019923850260395717583716511554214670929538128060785181950363676252258137923707274005607583294513489036928294877624120989743295651168638220173872501557187739503861318903144517576530024895221509695675798410481542443744083627820115870024250808541654595231989958183256597091359740126309215636638665920219648801289334574993443134419969822947420684298170351756215640282974671810825024681935353860778970617356493191970464924798378321312834863682880212315846084687904065481441195758053655629602943457769605763862357320428835053716247097681888732660445746330975992292349202635840327505506047422656069324262767101496527163016250739519712314616207114834456000367437685092903869156139914825660367877596462374827188719304425602277065353475649049661571417641931027461592182209816253686325009465889464965576044503045737844732999035568785869584781611517373306226884008618481502724834321572384236898099204341669233068961739773459930528880079544897977536725467581418074221707801377680058541245578890467866776812484723069955209456648997091210798127065664558505013535603134850735190439404196525625722701728348724357242393064566529592100119864652174362071787382373737348353322919235416265262016339684891947306306838529597687017227215266771784753542377892128714691841190051194575599792093607274719741407982856782708665563479758842902643711669053411915318420279428497317699877818050876963046033065405615060171862000842879706776545010779166494297646573907958489784097050404354256814068626400796582456470537269665767177189257781969675874593078247559264804300679259484163591401705604000164016314626952338101513420821797915829070936840006873095109453171287940962948705516200524003170596536288222082233704972249329630876191910961166889693797318282570653802088234406473482488984075147871999678979867037960254812766962227571396185589160794456098040667195775463017614309825506975465867352148043215353137861782841084046584104094476164877659170618468593323437646971176922560029146933700823690118546483550246032925059670765059807170401092007519165813209039723242283811825104727031757677458725626535013614040981392645324842876850728625772446280959370712763370249257222030902391307001527003907684995980311072879282263489876058528223686327452112483133337628207632560054840796438470400439278015182037064308903122975604621098957454316240361135052507358086051469307070779834668882140303941218863415027790436662246795476878370294449984678822052363953325047955224681692174735802880690261165143846315888306798191751446161093460699727946825925710908520546003109540783939602745180221679476246406232250357494243461345495949348281718826570572091682251715667813033816576198623142351406729603997513717513968243464709334641052817604274843958525107896798573446889859353967424067046769395384332594880366125266614831000740703514217766079076495786332717378795168441218593803242012712728062900763933990248956503659529007587736653269819239695013090533085393842877605479507690161877387906945169440251450377830382844569724451981798143594211552234070178547711063943888340207965355714619966282280947885334723682761075106549736968090205062305355744123166406478473300420680817458611233507258097428677291980989799502400432543861090121967171850085042711452007432607893070323304131355619470523392458966981978433456638379893038484470914402816174327260569362029334108921923209299289953143007118867477584512159843890322036593793701935102021130586927628871610318294524066817704053263904649373945249801294708473717975030363546137935641179279281458287805067486722320900666711282093301271505971098530238176685106115992020912011632626558959877129937900336145281176478263395533734581671983546908592220836392108255083270350783184139036159081813543736970011945657447692649967296419110153388446212048690231679982313255774697472343509357812044903521962909411831030138997678162350709854840591699273316789117721855720735399206300644476443437843790153875636460416614564176921791157530795374137695339837962918126500791576747920594639987046730575390741037575221353936371255547934502088004053342517313669592451619253836149188651149115751892822381684893961234926952499813550758498989080323022559857946040459529806629239757660221635457924192668929990807092001333046926127364848853872651851398678257677205160241624072306455464549929523279456390733029916272361844955525072914084812223944756257220311453196261160603975016526850019503574994323664982107600195258075341970890937461742681941458294839816195443935836585316037146300285711109219970339639370763662409918795099880634259062642992200205378906831617998399202614571703383294757066321327598404646298391503266283829330512761105581819894146368110599779218030515585268634137555951324282190529398731112433164479756006248588723570366257072079452402988114575395915805446756659732251984539509912047957226519602499531978639265252544854761175977550487911894104551876677673399659692924570644262665703145482207551966072063125066981107636460534022142800747811397922558069475084017382426039637888487320344629458480703926502718889336663795041412307152929309985220945575524578498275638788470718683277564713181554032184559208792091735131303657678603928356553572190927097534143596377550438860608666723370977280093697136675314584621332787599390737846214494235863280330418124720416557591886831106347796345087620832056783328081495585632247556894958495487228039542130904464717091660652852036138472122603447946355884241508444456877875685139281206080396467272854869700100691423241914535771301184150884126363980865666954047866854194034949483399382848421560525524342390053104762174284423349453077304834785318050689139254807607783931349814969517034536118995583109266058478242643988720452199042622962196795462711029675964363654825451144840074324208769225271075640462738565651402290875048576324515983935222262064106765945003477400799337312181759795677671091577291685276224228083536201958984621450700579889203363445557188351932556039007401291395757747347440880535177048023715822534210301223583054208801085567987601025633561026654299043989605464766784618727488883306127431434524494753534338845565950396454735709429880547494077623532393090119290048970598180813833840649132097145067063311749020620937879032525042316010586802363840847914696695775644460802103148919611518167349014322100320722816709129237006380606208788782514012063183564978250963284741329695573104169516759263105283287865917455543935335548313573157852234139016437691493691011711827708768867712278071662094880688919752718933680172834710362066589268212121984479788303091776604621329883079336154914868294978027013378010172511014084664755642943582002776078248554371449714328166589227524846520463086531561049808187316993782143480278109863128118177895345206193895861963044725287688370535227394158705610800875585098060249824761976384924959778984485379148507736940968481614232785570435107777065043697426235312884568434978265730828504162245735889062567303716857706372996362490369192312836248717500259668131907277498934490105878838780654643989695580582832174078243679189404477061368392850808095818908941540009560909522978844265554107379975299809815908408411913646999571354901658031249000164684139301568900915315718599023734062355056042448240965635588496286975070211522826882831242019531417513570137560592898851206388233317579207259461650005712370606189768390145614119365619282923767921718678950393984731387200178361320227183287063265094449943191680809880023740149837857181726370405836672495788454573709763369987730095280191903551091855156937094105596762364551515466523886928112476579221199758796486201610750006941592725387555461804531730063163069436258607478393525037349178807918111943142988057680466487426395864814479695671911155193437522384483304475439959453203944321761688110790027926547183272725198978894448746506855781945785609571795336859594759904162523590561321754225796446213950666055143123441477808447232168233553598716159343808778423930587278614277525477285413472922216116941897676871126123983225471944831858976563824901036133741037262935271869643983195153264797826877187862622322150863153613841448245308867807010574941473824394150788611258957548955311135918340879484708236535357929636278868840943003758492842222827861111633338176662553586967260894119237093193248617914055126739250119774047217621767271583430149920768342743384077477468032833833392244312141069280131223177563880395398912965038290941027587692216336497661958829061428276326810826714752169705029987808452696522333880313772723556779862445833165728034226147692322009034638834581614886445196426019147336321845009257686592695573785543910469284233596876599922299622134814381644203495045059540549003735590404715335626504285769468843809977315096637455103715589572390157567394613808691247049604692902789260925147850368523959008889330472205437680486164689251275564389654035726937551322839382173809060172406255825087131862836183660476290027598691477853978686281445773275955183678453624058532012961068362048232587771791619834717671098599502024522906802992238932954836164180070250773250565173841665499090305221887761417498277146190067914227465235687304907964923915841896748546863506621686349829481590200431343444578396590412855281904449326672704476214731638576162558728290251593409058520192871106215329103609690022028364170719527233304291755012726013801076142585795470874451761958439438640853641738695991545326598328712962001967933009156115561337669585355291943565108711403818532567765815278114241467278889873799431714476571008718125674105851396169966172073643531541670465979262533932546176988998293608416218880324641465611309494429291481216724846460247194479115153264457466388072519059513106781384383732250877106798866014629118292728234908628130874348097269591292929277245380267029097957956389028038322856516981286968632015499324878549474386531685590814547454705570378176173136774470715437650280858055725907326386167713416794316629397698811882759992446214376848751315954070041373438434319498753491498620566197269264388575757621751073562374782791285040401111619441304348747047232657944651517952856969091925329155921959886260507979025081467162532703945652508375094032262195707642846208977608331675721445603698926767156032465854811547530511887016075166567161867040906515525394612786919613304922377501851725336606522076503962645142981812807623195746621828352168418448951125053977525262370244126211610197889084489918932652197272393439244925968100313263683575130217439051191945215643781674320457123624063612364640869380162781969995177186921007837847512245168215288499151644747781584812563476456084228813455028676619539994211505870325246340594896285766517970321676544088883078490831537328164761565083418560650998978462546563696244655340870985444000434119153637086922530962793199887774857982067297782934683286694902989751162687364850975041473787053530845812417654311027621462341607273598830356292081760135669909370626560733957690223670647628318677446573643590530354610575197409524277984517883610037793592543782688605464674395534695526633168123200677571836012963892555566371195480211896555785565628678602022960810736276231223489893328193043314775596406163482850558453758602124557718391674080281081414043538332820192521020325307866416600445826520778137751400431278207112867259262521390815798320316132680773464670853129820200760341865474329634741451512190089749904809731106801192948698544784864983015896272744496832610408925820239196704762617204373526225751773628803990086587671138330083406186959266237554093666384800686124384379431985905420886413120274979793834885754726402122389028088656436035096056610838504046067220668434980976747077883386671654343035225134471298212438089921734174974737755525399453255982139128232578170203235148631467356635485234714825522569245019288060665784419997039529196396258027587477875729322506556531418049578085736745534130027991699569396496368702318967793231550833322844734144604740554357760443775064623882354902998432426155411747061035051528518697853050590262915150575073147176473558017883846507310187235110742135789424166535928722711286548532636792206735662539128730753608115451654605978623623774628512699013889088652142107742397328998209003065177240180934667537183585862646183434411118747660968450292644882353323981192553882363371196812807916540429005261678619654394652971106146278732918953312201946028901519194547951303979109464628579479711064940335415672057857476785689234881724557764531642065588725056649948389044885860883642049085611442424397856736628031292115027107395141235704532411644858245944552920701885375885166851076097388940893660947298601158500251084582551637827857664587503763806148793035339248661564542630253376732598071052954528157273273420377602616890304771838268206523504193280010759347633097963937779839322009031370928560541031400640702350469212308619895359833210696023193154024320286052020435545812903991738051581049439141974711803906995136005919544836830050771831461493978641207942413478068006693406116660682569844772413042385147994266636887060427445405927908919589536389992162520943816433571252722117611185855045095126521285135963741610454752607421108459865509199620935171375709399537334514553329619053890245471955629870063758824307363141435807562438967861337240765012350797747847092502192014045384992129119028207522053545457887817732096772527275959905989863913833991704545379169834363516188309506167130975329445155166853222268027809318408154428024509543536862066813240490121460889415908835343679996530889945821785803407337518310234603591331624451001002756762644266232466442665895670895009835464833456034196384346987458468837085212212276680693315085538323259138990865354727010973258256779386157613691370079934366478996711972361287653738143610275951064936081831854455961377990587966817423206099183944589370588465184545822860647427576845065941454705624385942742910871260760515917266032090398273164196271021605351728097496845782336553766538075627801439336146097973743875449064873805410870878464181605983713223416976271612117516765401258458437434328266874260170328460582178988977870533697465443817381169402695200936470530500141906829996844359205995768676393193578428523112594224185528873458896577801174963678192853331901974293478374468689865247508030964117187598556296926202228250316666032005786958578505285977631255143556182022797765539188050890342630424424305225995822316132999662274748471975247227671964391952396303697244022197950748443944753872855621253844370527160599728866706878768563877977474823758232251734998824147406901720891235645970455689464966143841058793953757919832263710128792500283838456326756326099049263992164900242739269838842555763434420345003404607183273642560309030615508092138803493739408890218329795087041981770885642309417345155073233732869603294826467702389390396499906614967638965397117625315139287656641384755961153984819908746832660391502099337844785535865135683030795005255981375643723061882402900604751114418012348451873213946869215933159493817261019725906557863517856786808810884959760442341245254246151084139107367843127425129674424712957067148853484067093405996746116143454340772482987311660815191203108979916025460930891566227630200681751717219577909008392936767839413353955692274194591454127329060790740487961456046169324770341057574155313546313516262277599618293554198847382997560243638290879589795359036445598798438358616951258811608248351696459398164166401198392001226489853263898343748928663235410933142312785951252121287416595902000053545008887370183268508765678226520267271975053192795367513968315891023474507693650449166500834172368875610891385541545602738513336131732160414363901871844421012736933433254731101957554846661110417545372475875754114103263113267844872991155971521801817633898888211452516191296579131344682031412010089813056130515764554178827951266914608927612906315067849377824981712943086677557255245240690846293214578634763418922563198010759420618101551632808804637094690199235735367947814135729721585565921004332400605381234349475827680407076746762733950323359621325094491629032871165880438560020418092657358926333210670265170255864386692778198686132042718997443332560467345495606111958210524460147747661951251023309730473130193592958907515431984860058987256102435230215237017171347853835997985580159832013499462540586182938541618134530686611816757109430176813332171822533664781489105302351694714428293201340335745435350169818005478785067664641746131249380646604021004073426553279832631566291424392515721529285496494002986473233331273778539194222089961070639227537040924815912390760160153925979845945622976877298640867487280675990400581427759888350412482671494148073673161615701498073199540248917031537770839906731865133041414184373061666817814411158667883949329501322073827440035568715023924054984697266217265058876963037446988788297349289708588973009780859927803999145347624435469039189487566178981201459510104974684753130664717284723383278897915720732912367534124910233743465629494495265409918834569516971685994349479110827484057219872252130261667081903964405062265476368030281074999592904647027787900179487839114986291126267930008254515143806270347800500590325996775294248637458154869862296388473403393762491396682637080316157239254078917967238287733066885599212344844355501142339002309330564314393327355279999833818948179096407223640320452744435147424225969729234253309900554114755320717957289173433568207900829106029366377694357110808918736783154590346698623062068067208034125375893664809596818530378398269141069495188204324168270777259276588603876801233348833187960553247991362053194964392614209011047416363206649678031391674928543397731229174359250904728156052686076958980288375062379432647796103460220743639175154234294607468695909213131037509203819399967584507429487532349920011608156011598191827214250742220823684992465832552070695693695105463978684756774721419526143398185948294417188698968387902943004071953823196639158307176859498359815989884244723224130414261413847275770170998949962819454293292714550284169371485567186657659464299328710993277754333597463041524422879803904056530140191994769999504389105799258005324591418942386648720296696011379099174779641136423748697960912817571080974950801606108146491293936171142168927101124915461576287954373072701449275997484138032247767663038023643247492669718257109445762482612539341893698784234796279207374395138315482857836395475579736466158811718430112492369409623344770598489925071140295903548505537291891990150500491107395823609606544943779377443578006639114843691986329945386270643120753061319182161387542943918618215754827127209559455373749334519829907026484237083638168452006425391404133952653640323358196147703886924298649784567912988913540679706677363585730688672829849612322069147133927478055576778981779363739975202856305217671780396584916357590612709595462565490527869295932172475138099995871161202513350662232588825183602776860609244798369130819525250963665659375378337736831421666508498562071015034891428038956715424100835128276038784857164655751956745798913907090331894373824712083371497580785434404699689801674554128114482630208151397542677074021415717158747319383422383537650705311386737973713073317117802134738281818441908934955468684827151360776336030847060984355070217967316155884721566797162071652924880157186640047402382214234612927529819210081106282580158920549401912495303632627041783555013564448416733309177654310261119204183415465570360944870241674242314397251785201028406164656771055163276317599890771948520306598770009514523268225796842581269043028717364721630333882672432480294908774496758179382593709915560867352509412465572465212901246315592788285701883040810236482910992665933162807950478850991742570749103146943655516090223516132506095869567430600672919850708707005144018965021507831567825859326304646328435261652120868366623868860820247233415802207447540619218487199261043180706845298351766307749097544337533419030881559822278938573790012155777165218496631749134871108827256617969185784410236740198505908746483766468868118206293702545209385296078245821383497152967398861640486736356784030467520970869708031194693755911818887383645854096250616528869334043881034920458214194346961878669973619274683138411245742188610336999612142110800644289768347914643325273966660853041325269111630798614409915166514589968932676587696747826918288951815998781838024690980477549332458798935555822448447609119181385448747506767904637293711775652904711455596179004412591168028874232704472157519778902091003496586671891884320347953622147493147194546842766182965881374326210218502355869390355788566631145574036045203992635484879199301639936631263110346991903284306399837574181699611345078036290836355742201583592350348349797371758549423202709566039918699688752852341875424865178510635652626789220384568284506419118567154753375063429263959483664623760617996544860129073394445894955074416837333054943256376941664561388958260236691321696358763860299211674227625712889072790833828048594208995625785565419864206797957766754417044674212649314225653649418497260477460157711563250822856325813620209292210760627148864970740443301241347391404483289528265186295939947187178403249987987421256154429821873951736423816291120454661071189982918486322667619287375588173414432010367923487856266001964570851175179338799659415085888081566388437431137442813293680302476892743563338005393562666873469700192588367647934351675614256370631063002738853135498880794562489837064158318478663250214436842558696293259819921520239980371081419820593411553432595841323706422367984161137320461501006843706325122840310955805193721771497104372727579006887436707593305543485266636794461558966674270005791725496209752958326000804769296128896734311065281500269537767892341311066975606013445692815015631890893599274218174909630173001359246310567819311606099363102193219153532692483952576828560261039365257218665673205015546437902581442126098053490300894543137642805066978817402268383862391078729588612638144509624135753300029317555094632442232779508141447160470602473580988780215635235743152404144619904825342231400119068634301478966080864734435323395571376745936366885056269688738652579498210733555984472470531777361862180335777660563514537797751822521728348657133109653316942603327350793451578158889154041121129562046787565536124538091724061003185839157404346190692500133198213865899147551755550303767473241393271750854189472098400121819316921741825993329399230878053701071957284047222387373442087291116318840845695440659393073489640332550184187768836334214374654074312728320418518489961169919653390549611664919203115593779124107460489454924795559163156117297041930298760292736060303138678824775236304279141765143729478621474056019355306991208347516416687821780925498385140736692661480158491498997379732354927134264756693725743060113312052131614217212773896424354222771396138656275193730692287689455977297562170770969383464283597165035766512680952696775328393001529021858138088017238657897457701384932158621420140944560370944217811555407872286240012147073878045197936654544299573526302752475837810057848306637930650772382101438330999742354141013844986437354907045577663038269712362589510779818703126086526594790765317504145556122707813400174110080147523978822204876919721248506871028053860348559443983761481015809447909572630538384279108896081599290492823566642373311692884211262504788875504125619971914834907305429221411978435884617993637679290343155850475482453070913924856106039845713294909880352493511933601658254138953081344534748963525745017802430688762159870600104208139375025277094832100872667587732297170918464142495561437816444503615046214392716841333363420193108992822677655429378686598892275289126543368499543511470793958387379505840470279541002114633778688673705076788409473745345615355860912139879257494014245506802975148859512799725682463880444556511131396033884555650637207714318763459074045762383108487087046346997799790162171457907900149390570414919840236862015493106482148865720683245010164660641217613655560694421448483220906755725500386895887953250356169050237832330889129023469827976473118245577671998135536630643981463901393811239978162052630489377821957516576177247429802720245467796321997110273619229160329952327759933248742867280152533026289959680470421289364139510012936179339520217603210188867589694691699266859262670611918241364277793003536017097270733160550872049196633479682816379520936744171817407873709265717324341918888802873587667857589406743260458275965696035139028085718417038274532711787071031221360270138728408376095225228951609057164223758081966345945084958337108450664282888454452462774833904453255443346840806207725504134977888713025171611947514060792924036693078664180584952133283825030660182031555789815422680008070531992564885751651784615553947520962061567823689431854450953793771166716867785403285162653692850671859827326191095238335913942475170228174982433938547407972485081332925225636117398102413388657482352167410482238924540537604024745073808154244220276140865218426708327796916297354434864255911870826550602701993626659258438099747426984723403185192877021508044041894541592207969298595130882240998041954629835993428355806848661838909724246301433754501226513402461164878930600096736920411234359097683695299950807622487194406626627752062473153801838089163825538030075250541641071939641826008739548033544658904666573635110608443696616121722481614858875563285682416415222254005737153955081647517459625243997405209007087024205142335686256577027530146079201204625520779683673982911198895748693124433989683712337236387523224468419554153632236863200143107840892787872587686361800082593998992182222097024913051999569374446114970703159232613727784206524473544635879319091849112189578472330778285943730295406448091287300336245210781085591954286328012511501149270407697091765252090270537836134800013047728842640105148366091448694836290156036903708715059895936750224178295741488527454956247521371149430219382456384039645509571199536259167910389797571646910337263057325986486531347048802840654121783776841223465909187168841505663663157285811713589811994786380029363214022689119232392402772438003030291412039428394623956362290467917581599232125555399236310161522178622828386835613304626195865952655993076398187286217429319243675787384066559614958906948428782348794836632132222842082707596765843649898043836756313449825417727493736930677972101098276266387543401943951893479547830963402528396457853054705338883759383136171250950761832630075749979146954362823855216715754200763178493622021988503393328757272807759739955541577999252231053767462885812563281722614466526710887569836476864590993795445707488328919424409481128445207730343337306828624555601119084826532952513301747213319241939450533506967672283043992690034592057503803316945411805042101214327992712478664170986012897186182637558171160670684880145556231421999184644120867488194726203843394109661225670543560114328621533892134883050751774527278768078850204623822564939837286328771539151044332069049742923818924653571666724925138908404132931548027039306203635331179743480896214029062067174785090327004283168402939187131811000258084817319045432277811815163182618481193465792335514620879008020788411050385043782509579737105853414241401958138724354502072781497839847774333573127913643784260013779818870005646792097696221377730809499473356419255322128871386502923787923777495536001373914471871852917502656710678158611656200025963678542901658220566153727822707970559250171745498064502537424169515108146782665801961851912101762640326065499476553487209486358419602619693065229675671232427787972002706926164117766036110074923115350998392104888285781066467975321091259152357188218042329037010227532685310165038498143524633028931825088670537987687898285428188434241161187170670378148423880139523080396309252127936712447264461653963376398035078081088642938387887840770328728320078227763451390008758503761940068360210517090202785649781309345058258589056531909917005510755821442397314205985496845884310823257221929595627082659184569264687089209618654867511941470279436363182692689352771439810232565659694256153217893812249907261868192112198425871736214997659548197276842949241249675067227564925553441455920760848727458451366724380153876896973673849639555031648821921481759233368874103281353689060738229517459789997091418584381892068996322955935844925289260865532935837930393495022798192316991155570669039300072999131056548839082303064976609153798893551683356333362606643435467020113925429793301138029838862147077330597460323215692905215003523356334006491771967684729794325969438282584549744316933465825709176235616180210204222885467028788546645062405369968382976316232048263011754594036203998970965763893317867415727578317171944488469291608602232685593384280153330441784930618453982318251818011008569616605008794631496370865568340267741589393781901435035448745311711434235436374715432563483638963779727061394235869657269444796732858740184084920782561485156330123561831955110263890104312997575380821169024076422678828045060515889149486649018143944044323604371191499674026179525795642061358254234484854700047385070527441426666307891915907811679688265321678767763763395261560329259659251685880720203353907017950258651557565163567080658098886134654807833470859685054658270682626652963994971565447939366061979437623157885960061724445529670396040666381974719026754715528021974071995788412473947267890763156595630140085874943411167020579520454868844601981560082614962783856222890547787100883160627485234584409950478975247864015167088389693420456615274511491208447860926831597836304156055375429574354206853587915732591035822180373970233049944130617020154411380909205455521726674192733456642046020818726556308937923268557054517049688491785735192971330326222443407239025461833792237457789993187136394093069633549705563937249584723831654603320855093623124110645529360952184751757740444610522463143999252862381635402174491572691839179488221003891041904969879020048029703575783062109965054288613847334185376761712705593316693172540412261937170925286863410120413151892744793989491738357437496385677467930268660527683459233126507585005690474438026198629684954555288537192016785727098650948050573097181376619587105210111345678225092460543366661056398086915013758453817646029664818786746493823136849229591331256075625722452435837548528341193102438267374965146066182597071604518781943450773189101723916110076364710531010193682325551569809129265656368836077363067785193877528087554840313566980053488320060698070631200360845683549078324026884310156690020520474354629073262811211771589377233466984259225592847759379516138284666545604592629380262170492629903150647688490851176338366183026559323295731955208211594789202941249215794534523540781204942855079148132441274130073747546453807725315129402054440726115014192014641405251070783864251749030553246234246682860820801352947566419982747554706682842458088202164110425483389738104220472843461549072170536805334518034316269386102880990180987075473171591741658059204375731724679795383822397081793964933947399743645666363264706253519721869201696480369837159525201373541444325461242146713686625995090519730457065995090397598344079412334937732670510617188113623201412021323699064262693590787113172383802650585685221971472559367609731491230748015532644485104170867723391705287813711340080677526823454458432381234424781789988835607094745827208090051796479487307019039057691367001959170379621107401374764589239426877735595516444695230821413728814840917683841856934239724219645290878417469879097872268274853277630916338943874091954760324392370224776776185836765191168646797956358664212217876566171446522059523690500716449446935030188768498924684330104624444914570364041143413517482930154506452917993431360912146777985112633545080631843069274632326610817665999025072100503623101411174941017037434017800262454950319416538599355321251600542935919695977093122323171971370485566846449576034119356390669105180064059861448050446342551575389222388219079153643526578262788845989691879764385593101673986254603366681515945333588678277230065629964581487470036925873913138177842323739550570893535630078369207870202139872318642703536009883645185998151789988259477284883708423500446435335595167791531436724626350277392403717452757153099954219374222022901150857239015060057570841450672679222955195682131528573203797083327032942443345274725385950044253577327112828983494591981815285355671397049582108625489071218042957809974308576801572208228328102584569604722103186092262898249434694007464272064626083230865049921043062480648160074798953400688542325426278071756022828354117288319437308043832187332698441005661401759258964474881732134962208039225030211013830418823957743930520553944279915032606953836643824149193581815104996309088207610760687797146890099361765366353889068825505632852776843883240650291018715001267801694818405097590884275122996966206618336879005103925491083222730489040787526584345361895081208353133669276464799449850114227624054800564773072328178851945205999613979292276837572087800219397884719815235840391663087251619937659988606945785347312332022729017894777982697354574474251900554938172756718965877420893813871008863850167303447504858293017876383941879168830444331272888066716687471235633896108721296842711124357500890798007299497253146811488558680919906073394155762240016253757836679020929997832147516466657854347057656816716863220909199832379329475676310700940093700147279335278689085411899026465261615476581388693935984933798019494453852429296349569268653822091870238300498602044209502672752847560263523981098451848903296699459006331603018248673492385652755952390830493652640396796737571842987392622706884489359259052179575610247042618311210614108795379702141376436538603262017643967039636319069232896437573819696795510676005304849908650388299240901689611701945638971935455023478470246317321591022438232456916371632299495152595140097477388439261159029199627170463158252460411709504907775199247632724191208549942155482935896842923212793005394363612208200591626395160525838870578726185711716694709246792721133936210157313348004832371996705624968922285054572343614227462724120373297192402966955478341383253624069646569927868963543895074304279332786020893077114329491135905959265121522097443870613236514716252747746049245206119322100092533959577749891419848958841277690840876480685556893353938371849268401456248795693252172688486552456565668322561592496952563050987726728242359440025256686802886742883439369805473708314221018121160303800174024671521929162811594786282337051202453881371029868781339955896161735034223218942525384826154206830499004933483507473742287129999700004638076734999205948199919013306562649785449989217176108794808633763339634472875163364515944462631492401604482927543487026821558864922615946144655788122845805291827454085023254158771290030131035288174475602173710325077851711938148921506651362992632958505673840757599246443798907237473398226920912566306217738054628872818694228526721977212084509371015011055675112832213373776505479288730529279915906087172925851927496892069849170171860829380999222907582446332624904772448471690825457409427718729826640910308408400957009026693909646487651148738011112816923699733166260734980078968283220743429197814259022413092238837308746310165414315795059027640780587382598517047233093160658828559298539454378675727348629014716792214418945788103754601949163135839789279044643156442077335909091857933403903044346912203815431820357615625890808770714645248966808921245945186136523531644488267228645049330049784645861084195639563361322637353315331273361244929718574174623428942669250513581716640489304187910340594097015046977010156342067502193151311377823456277306292045581987594012077840003783665880815365281145820283445555438645039855872451650436909042520671614529362102072119688001681628294476863024714677054547319714142587307238743087831392060370923730823304934940569236807009966815738544333818693410263270310896585595344026292721196332839536443155596678153398478590160234246156321292514515442796378266214979737436540743957487883770809281675898477736929208404737873577527735904094390416674984797720137168005364972322320105328922396053057339484399119976502570599321282594053898951174219207502147008962401140251947571400931154258158017989944748471051290396438382176003662171218367870085621786641076253411472287919204596065900923063831098204211454800539878523403338294887741961406425129389051958064450062751255518519498497459034594672268585037432227507876824789800758607836181400092898655333655158415335711997871341829521063086409129481087979792493531553665498452355433219047402613258927227707881120349551823958902265711368581891827728171029110007035990360697895270368123229674190876587805245199537901814362339100811327896438040405432836280764894195707099935407986681725608581703242736955869797193800427730009778890902196528435437498796623800642831573693066971098771348742066027686430786649940932528713936735531195057835371791260100555300286258652450329973758630623449727434137371737026819382924736327037906519737061076462523615890017453573413174936087377453925037452802777540629376971419834031530503768981133824208552046233065725489141036850997195391390991759486041335873651002095403933729056626871477801716827484821465511990330162878394820257175417877710566149634057017463092946806812972138024811858159532343712302925573177529377060854164130459475756902614740998503133138282067308351093770344983502483027290538992823622032099074798082728635183497174475280299807950464068414616511566494232868293888218511312163364252714397076214991501137427887990144862277771777963747859902137175541154378186674972346784569082821502627432705043885978058232316535050474316348591904650121369234631074531799457345851243296179370670000740955819450578040561524024074527486296289403776843664558449343031273161605448754531524912040989895502443588581206318585050366845699875870118341165033211089853631720339300310212144268174442578738173259937988946490355636360242868665940561305340720678821785615980427675818527960665479887037716051859441888282400722274073570865106933453449066132535010301765776174393179609252255265561211316983864603637929286365640134298424747276881468118544921492058967336347368857242235148344927866045336115007697998999856320611774214966598292005072342362644991670027816988117364572162644654608223981981993572364042286959528961675300474349661722028615668868124941947433745299758625327972761697122003752893666902591858065254088990953390273888685360554183042140203054126370577733168992462009726647580733439346536267100303087286935023580014257419830365175233878175305075303273276623979408868815982878480842668403918181354217758010505352874718628753410296526652463505884404084458148038042812828050289332177801913081430691189081746796826161833347956246504207316882943739125608273408196353497774125158203781196124494460225847491650913824130954876835158961207326316869107337948307271192976828678097181621334906462520689016617557432573925363719413370893419955575254581201777115604208951817029898952875340791079020621628612411927431194960598981669359302572845456633656364602714283557335926017168584510013845324589451751706050491414982826270825388546455086787461824006100271159158311686267843013850445652738685809407591295127500805729064457068408452929045812363714474283195590539865769121133268377041872144236456937811648773980896145282620519175399839808605758262410577092630430827984267192821230836571741612446340606542813263098408516167153219549501876991988285691252218627095286363699807118791787312496373252716040017371353957289483394731163950111944815196910495823007239196446517395011015628123198990986632319636475441515140434465988477051888105572328677378558508487137297086804035952036681437200623447595997775427338128086041481617242580888859004665404591540432719230658810409115844502063348212276888226917962990706848436129092906177994507808704815284596459226461671526690803180431625490135154177848025129327458289758984766294628443239117212919416887779232566045841332236424549502809064756078957276013569081837621347785389300411893015959258740000294514184925905124789196255394897693313407168186789650595543656349881578699607087108248874509230607602564535323841217064263795007134091532504409366975901268250762109453141871390221261397454543506395643085190208524826590545699879197384798766358014080732743729337859087758510699706856252068744959334815785406420973337364256584345333775585532991179564445531244037798269814338878639996017120043817959846240352679587269171741972100654941762279932949854140013391774234521106876669042427981592942427704933549410856657921833892955307937632849784662996294729949025231320008806697751442933914900481553388350522154095489483469054917623853495509465322933763785094811547204006424558265233749240540885078173355701094428864576857466844113447775738139570874732433586683824675463488514210395464535717656902886536694153167045002476374979429275574433521369312201878334816355690717694603165350442683758242860481329003763703677970767927238932188179270726745158960588327224716463348801576522659112767764110835931623161113904628089657980552633453258423221647826857648462110852562544738533383711716196785986577424166157605336576946170592572522147656625589173157053042227267304799214093024064787731265333957781059594356388784101697437346871331350192670879004323975734754070473724414797774725484325600046806669234121344213375324724895068047138631081998385169923536598932004011130283693872092384515691468658501906374166569271165806375072073627340221557291936034648012083506252706393391699232827529790853168090869354093541496759247102181869268367710016579149406378140632638986184428315030853648469288743659805095831617792274074179593639281520069727047194352823544140555705033298706678218150651116342123300010942417222599973777960715125531146655571844517749641840857564560410666638569717890884175916937703838073484098471377251298209235162649850317270876750133986795173371888398513941287192174277845134990210927511288719230458134134440265296391752211353753716818425911672557859205344780866359922957842368861903896799659801208042236474589787377330145676750054230118130129183727484712198676902296189668146560776246506166128965213083207894120317920808708513915702670739333582899241690483998279929276700997525170012514788505888383976385468650281395283739362811445863283272477641134900682429698582178593125729799886284305346100542209795531685644254602989876474469593648761824138718787985821140528686902476099218712440411626065338199932135760784687864120332712033648547982668343363959663785274360428741785502741021973552466041245099542545253278240146567155028654462286185108006302169936175421839398509382563306402161961079063999197554335743842473169047294054212865365828885119472549934071859080673799380109088377668179471909575552649707602162166817759679699340593417589953270882481156042787380522835665478682076236816076854725015143352631490041501185078524733458534147359733992889008022996496029273049352212271389034958170133418862598644905164606926995638379949881745604747564360132867962882468392151752198506737411576186521446571344026429024664831093980495656111581605138748996878175726526772177350878830163526702638889362577237942540462820681896070138652402882259887112836503161071971035465606589256519097798096744794494189346439368281930732732776231545311276388133815639897677928329791743371061221990890712342037368849966146268296728056672283883555405465141476052845368351728795612258014223048226874173112298911556444310483784600760286637994299732606378700440338605945040721514957080958851289680974930867130782073436086585598900541016067896370734864924388166091976184980669411887343659985452803045389222174188603302064285318181367814391949654655633090103130246637374172391578896001945219305071850807542275033620814105749735462350617137318613084591771310702520947237818869899015669970881054811167218840265024254035471887131778113666106640009495594212361149690618130529422029086087393953753038835591313053541342019938491260767303060782531371129615528868878029618424011264158586136752943611337581385572947923380819587557664612521127925638962353641687131970582754967943779450274781790586995417985489852383051632898371453493405809525608325653713933684033362168658062202748906145882590020217844234268080045585680873230025265003652193210677108419115204607553336254707938982857484304020897011341923883544188399100289401426800208090050216286885584828529268107054242769497714299285836992488758630033218094097017410711877919144121981870376163426171127700658819021182390354765937812303699006536411744030275600941524577901764384244496229522690997846612634524812540490945350654233193244539772731437601013388798237809427854212950678365715421611253054701896885435934818549402268733032104760671154030357110590268382058101469913653369552459571535712832629161040865752067179189068390125291674170685710949373901953441261070086952646884521126555950121967429614180346656499243788809770144028418265504474874458701857372997941221931749332405091029826238049060758098622056266859448739394655755091816288848418260522839117556168568793236583158490434837309325519756571374139517821385244063210347868193356217635557923255629944986819608659223768036228090268288215466658469979750595481583229890544745417977326366154450855021444652666837547252260421094984602201660110493229414142465976216299025590712868811711796560134060241156767587965771528908369985824681498529668205950754411028937261099360797850968866797965473451988543724240793161883226619875152019009229602725673717069246317468023390275224585673788001450303970929582187963811421487701632176698139070108422235217788517270557940805402670278852060774731844417875727546734256692070222337586484157383741728059462089341477060602782499949837980404391124969511950078710832650894610690693918475475196514821255111130080132785644977141401949606869477450566811990463451193928754359102020367527287911828649817360791234378014537391460554189420799082412705690781501796866113890554986206804838141430909853376141360742203183108943713187419993654458348323198333479855688601537131514965426418435071807667720827624491984550233451534728033808141054223242733596172363515729274799496874601831268036346327435096117467225062350768256313593212867375644337541817146933964050041880838291003817376522897830122485178774301347610115682675766204896714221381570383358945562862199329582405788207138122366941329896408512651744271095638104204644842616996763164457874409867263954297253220215081397661259461606408009921244106802038561948866602550559901974947947840861571205607646840146279429927761867299178237674365098157931548183329261471678689196534485269525420254439845610035120243857852798376146594087719309802871261107544867272556702647436863354172429684594837836700833844930933489761938997790861672350634439539192261008819965585683982895295170582107035249157226592099077135043938114493939670706900844013148060782271756457592960650497127607798608015603396692738419023263626358071371790147426395414572778098318819987000928794532657279406237471117134570050916399651203339267001483807757696074726117536763169603906306478760647457877475085281009243060078171610799981511466832941189384179734599527625412817400589572083577087182385958948059856685729595850200668841325942998590126932146785384079703981718684731130403072456903337231714070566455506047272007246312340113703163456005901026625272559975614531964272368248243112081794306404149883101946147709408948926657239027221067138175538202999905618287984020036579812435956263200819105623032249787199909422457876589131060707580079395096240753393513538751588139617149508752331775819199657858691790745992284529909437943138869407337916779881579576991161915055624414816714981549911157510794994133393455714003479557926954644131218659265611033958340250169831449026443060846470997236402973610077885499600804927339706300324250435706351607892608576362637037174007545662694081277411841952840873844269846978891727111361797787276024918011608263881679879691979796995867729877574776562796590536354165232641905920668924277207767282485234654180770691677319601174382947371449192867357361498658547071660533216978838463967645425641888401659210170261619699813846544901759181949666330295073573376446944716720492258340307998150033928850684722000075444977177657825577186800897803306007748310608033434727912358945242362364226317587162302834777364658650779268406199064310761097881648583576690562224698884419515306924719472774223672112244146225137170848988285584748194421532860554915388549514631958660716212916747418026115167273009211162170894410273988482635453233500869830113066635077721117181564224752263253970126708802347289077161258124165560587322808933663167577048812079363639796666163632561082923637866659663663989821670192387637887254444720814732507346773993067694823888949717798195813462479568186469225716176304069390553338701609892043656200406233328750547411435669917193166251596075507936402270349224683279929460806673795441939202287187954550349341842348265905353082586362511135834369939787423459464901221534314949610096893642614683314349705357262771034844185165778447570309523332550872527820845074752543535481629406522477892728374098422245110945473595450176787377689875063060302635586168873743606410771173383346874620983790081991521854976848104986626995369880900608798742382853280479439925158358985841390562052607614586123325192619870125250106567436776372442457402663355706800766167607149815982868680878346832348017745108765775374840424429742269584409915411677497991478442022675093870855012509712296505917889119215030829890204307700416767788899585501194054479272380207605132735552554747995278340810625982502785021504458300668790353055918737881592542214175608820417605781710602150890086554277947198817706749871537890269627922640948168861284386946685750648610644060276829865730491000139984595022466588738909631626885967721532039708827900601788379646773766012748091354285149191626946739013035864907497957746284374951189009381255266951766371858039554424520871495409890177919689227623098039342116243287674320014148854519261026851572165670771501206040110546083762568805598407400928827391288350986767672237072716690097744377333371202918348333635543837517207578936890235317875029393586081967305159902657009510699251273367279322113668653164461334361119381619499513395822718803992431547300740188047221133312813729920570142304367615799843197423980884961417814306976177340939360538562705951535018932132082595814161152812136894051107307285522616853339431680729880289125556089040454126030202429350778075520782201604493963410707193032403144928787107470894479867657827718510848666818898052011251237153522955606683287526937546473238340762646162473158056844088823409541327156955528317262124331375206968001006535929250311089920607530673860328923615913122991326395154532842227107668022633671466842104689303116713751539819312450066611162661952305853882872064717535507094622845584616653170053533352418321704875768229783496143110621365654708164480086639933883036187346999386586036995703789043199543596622507019881618969940494034538504355575414769145515019367621377990820149343307644841382792736271510647548010231312749355670466711079391240661978369396122875887137549984556731814723598189377152588696783375077929574255882697720928149440747992951127567599344745507279595292934843284399326953675260088293578347880935950152309875322454572483809613801031799790895789666240514302694431171442272142158605684040899968704031037437837164966311390173357166865810736029984783062117552678878928702887525423819102934864122100531469184701240383972450453982942821361416558761268255748272291678922973965528628025913485075455941165245032223182168932769889682729828084108800752595929502964344243888078617633039265108503599425043141483636115420595100595308597396366962495654990656976581558110590285126896983750841207277573746679858971195897100329323259503067576376877091046748146771729747399746127454483159920621179374567186863489472359593527887105579739545018491899674920780049105163860233319452526782174843364651777156499145585647715199819227883035358689758285520059178427094139582378793825171225512121538289304921981181440586994937601400407019755233852866592482192890511175665417657467184662597328603391161186998591229532388030151994231553448144091110150118543569826953120788897962010223116574297451058645837682357815930688686789681894612681185175275152428355525481366963064957331951797772747370954202323804235946972297787409424467033940943282767966679670162019098082311074699098544656898749893562008250572193973740934425467150368901326020935804755001584778509371949464805564842303887353435666845601469685114374766242660067892267939670352226241687852001012173305395410579573522819003892899616210241160713637615349288058680118806159351449888350313008679469610124171452429406327889951569256264895544118388431624686946708210989481704127512576415619182360912100162921865584204832632392680564502465971580446097562470286627655490165587854601282957123970028385342752319834524047965075910069293121912917580560600178188547031072499209627898191982781514614489244927061389511047424715926591327184207086238642557338307530205377485552248708633745399641004952012673652302612583767707770281390738252773497277607680796813053715913636323073250137415176577438961504619763726146221853526299539285230700051252160820297531499438411758212816181222888611381074278684377054504416683351933839992220466257118917241113746997598240212389191060719106144442457519752894182715616965461845501949587070753835034917648566583363742707253638647716606999613125440383713745444957797965437500580390153217503196655936789536408130555760996410767872536133244051024708803366683074938742880175840267169524760562159009029977652199571523254565058564346887187430773115322130558416569346643877871664497510900075366240058845439766764239037216598060063595182359888430341763549233925753942447016869379304924715792256189927476865733623314155031186221458398532440723170721896160669486120637217105356128349847871666895111140157239021485900821720801467397297958705542671268660935175967375390440584235143511645177941986067303267489141036949505001264041282178315624981419821960724222454930617264911147686177870470125414629864384011578210271835629945780401219628464005083222401280876591325743570105281950862446526757577593737796594347009516035592843756814068567636323966518543064114738031365593326665294721791291850735321114974669438471428484432881425706311677764135194963104033705134185930026213401631418003130599661903963065184338815633640975794941312064638475689511780075615969473690850490339229714912897099124375943841485218072988196241297347396675156912054070824328235696974153273059910606012246746308579066791528606597742563246097328447429940356998578958533801754437223288428623725065125137156717544655930982109133973163736220301455795963730978991343421631704353714651747212123224236231897356351465079427262541436905229917553382266350011345755093872152530469678275991866283816424317101752162484581019805449245160759443605525685763035429945269842777666703767684841657271181115573399670430947663335378081253949317500532120043967379825767883602321228383707299273917537357273570106470316181728980950575351801581638952978326891108924660743163617367888816683526039316286366139053265945682320950017118116532524868232966795766317786633543916544837737761134416152495057413996498856047760801327882453577845638757711354066447110181252874536098967552139345258600401740676765204321712608270393296137230980005375624866325023114672719565508347628443363261227957584984411684363773872206386007986262771426524314561759589863891182520557051682485399043257310301578790796022786361189217224302848117288544046404342679161235880021674250652212443241730741961162063273058127412362764617073285997275926344461799545340420602980043661486288224533682374213190670552316413903036148599485357874390486490166709967953232634012779320541328409693489350729957507262811327852347764337668908202731342506276594739586704447688259354013605456418659242528429946696048328350303177934857891900353805264441054122112569676707929083952338132534094388847876671935762373328157697971980442597306153254429161205811382335172835295434711171025034395709200072890206206514306200953527418924915982526749569524411790776628638273844140152666508790629369163162527490798665770019780774266846739427497056563137646764709634862269541538563583497130554813468261490491927894181606537880750740741745032477053077130260258999503910358099026049396392707006230754486212683485627208001280796669046988284172589922886881830353596323014394432712412950757107237906732631695324372180958006834244833757157223528335032487962625043031910918551934303107412722196774019676800484263908922677187161535113170863861124747799315707086739660858077097492852559701312028934868724648957356291376960091060545140385196378556831926604865914655830655322844889063586307138632140406600410684998332601943284607712066476153137415116992649885566576611069076356896562449316674389649413305664476736285186474108860505296580530510441904238623176583140444624352989278187054087916074926421687362742163456050440061456290294183956404746039816510471174589720479106757541773727000041744099327898853956384820165014964114542043518196306820980997272443023065255146342358130575820659580038440804580818741458986521501241695136289893063640614935175814633261624339797004166206005279460329759832520913118921747169423233313157111697496893101157012551006871220305378332585875645461096324962490583838368899335961310756357505942088397307495128936135238263864541611834016050747388441024737107868830743161098208418261366287609732321905287402046237154171728543909387605241378263016822943204311642834318919516921900580457983129791324829973533517381479213685214596236723668691531357351171804306850116928671284918632436526242862094743999295066833966677977313979638073111080934246642625899026238838821800872780106386119202507566357085114507506731722223954586003644418730793021165861092289451785077501389921303049976735534739990116932086935252759359998230401038039035358634110004524396429840909321088356333982660100364479188921193202344700325684647941187322193178196303382549959552008073905961422085534264457924686806125502310703310342340245904642957220991814909624419706073837677788017827285550939158360259337511544263949394538948987740175756306185826691489154891231683667450659258701785124999903542331410433933123078573393989582125860569675705205689299372370700895111993828526975758650169549085548183374562686187899605101512210103265383429012033241266239547603272730883524911831125226627616541233779863843134253671018563846693477309147894371060268030821970546060840736886997640541320276566596010697956173203374293122478657239151472363951073628470038738574044012177960534909064750312190892851536330808196380750448071880767440562932841351284364625157255407944013328433388495242827927168904191276329265652630898353935027564389138808093588917994784324740514827250449457888381552245840203994438740137286738792216235895907159007060589281131844579436678539868483738961594743059956710454961908165263565778108219506159393275969252272520055238898803489938180435650417811174987993883992265314266188447223766205042568723572447660514593892933306215415979366363017381177218234036929469357097414470813013682964903314304481055288471497581633971057363919039653521508463201430519474080809520592116408535612950519488861611594955366842724974984295107589013736904104024566609587356913809717629205069772424748408644557586080292312756653121235111289643217887185183445025208748614400787437744259922549539366015649580238635827103213273222323796853263491391505809526298559911548099771735725285454821234283762296987644985296608739467273786416680147727353325900226980965632023220304500565012399636280390083113364035729951000966294514764271783709053999852513166977611780661853916635133551336330122571043158166374440513193669785738845296135275741281728510164642892076539135033000830189555352718862622873429820280731628921410161120757743052587515862422486817648854116732830427896971127086042247941471983193108431417527995149100311337486065445625514395564335752656932051295810932294794342252894389173190410737617016114261711400165678799518769011972686986057574743052375927726409263082836851312115579629679257108338690473132479308834213060038717524344628592331588633867368957566499208437997351916137561378266643183483876232520177071235790993442081645747057655692339973759234333685823435618311867146860509067436286605519614753751368081392493736026199123606776989665096334933502157780329082487382671232396410269011271953268234343913836316346284652942255875588204678373790197509875984469028576227569844411281656989138948816392952834614696765459182305341818779317339907384991673320827648827275824400510513997230455637450693293280715104493316887933599825097259307731515795326999133189581942407129665728714686992539866707577420105529131020524361316312395409766744243753946104334220561028642133087943761703222326074819462488578234067602310832613107680424049997970213700852950254453824499651139670151457978965694406737478451000717414081399138859916431149468835073010682160646011535245396328395243864840393127526007908185475714689083950929673707081652286711756481844855140946174828345350542819559740500408491612370757754285960162711801159323171401859957594232245426033078552665200882694830189891625566794097806516689019046854535905108690353431682249452217783342940642171454020376363009634050489669858114425362690380102642975022922239920837990792176485080858602932383343907928404873879929058880075607788596000565055773012789694119354185518148960595650405604379413364552570517886543089726931111453375297339724800760070795102103496385767941990577348212186477528592991608176439008416143628434101852409305901256357767557757082028089262975036666655749734803348705520772453914761263852794371122661354762669944098548797772938969918291687662381254406141692975350884667398010853372245283758962697231692552801193118204444568438509180676123986425766822347086900593337247796443812135176967961451508494649336275948920469467243723418676297366783048535660835090324346985097264354309552843326576731538203851455768322825502669999743586399122472598042953694910817079437426432437997565561601020532806980677634171647251981574996586678001190571040760697403073774986930830422302996272272948572629243613963229729121134616958361787455535204680807158542510891414144570167816152604630653613780276875694799367497819675075217067222342029587892740967118516233797978076009572810120811345253831735311748395674921420150534448181756501746341627513398325167432472546966746853375902735862724200110214503427761108544842336813829037763436861730164450511117555286192217836249519928555484655604600242392472120547523767897121289529185087432304613778521819888505284888776010809560087723462763451611163161426909768296880940343144692912795730934656605002428800131028490511128265548156298578530700101781810241411742529088548689565489787479143350270431679816042771386296629302303289659120250992171827830841082708475681146894677730198015367391378901432986151989282438435437127713460248234673077082479165322302148582844877359062842267673978932020943340946526846156431383809305285623467265016468902958310703500825022225360406662082324831738687082217964218306685426252438080732818315889213058994467459592694852448562772730373723924474453243040333630865286728046984281190504635715487790183788866799520965124946078811123887116532563312794496458840997966316747858351793522935879380316475815783004348213261332415470751288048511912362110325568807492990669175573165197908705813381551664244699789884132553926372447014749772883067314755013282205635513414677704920050925770523853789040212733179933285729708076338851248368820819819457259583116419934628334876070241587713536269134261890705376081462682941076480976940422090169226002287213110157249444520745777143723529780596040254459257739180333818647947666138695630675976460912572118534000162394804318571907652473745644454208634846428440975968268149017824560691952265595990991281632093243861986201674856022310339277660309370301819498046147384084519202167058975681360239304449907970654615051330889077478532163240651632267036989170709955271285758856252220262421371195899522792610262247765687786619646895676482320211797239546618538369516858362430827226107915582377483749521990980561183870024528510632912631154535774809154247810843113621296199692969096167997408306081673628530271908243025212834227910450029197039188742777716352825611858495695006408646675365229020498636885296660221941892843867969870491273513310638531646382154617402367827987991315357759355917403899084599177110504530653452280618123944286514314428206256313361261574746512344683350125872652894649232730192863260712029884780843565157113614349919885243112729326241393072686659930821524523549479109279475062014828727392891850694183462180643330394276473347943138182475597286971597413013663659028605973690717801713142504047568892722547739198819785618178670177070932636627796239072014865848160571114277465361923498348490717032395372369066089908992642531408180109270212201585615959208077467128553781513331119213428422518649900288394170973108325430609017631962072119211198882674089409533436723401548573288076660644303988960597448493625366214181332782365738499625498914910146105880827955977174869000823999220430392308183126413615340108728376711464682833372407447667888193433106017464760984139890712696684995101110855816350282701668086526584083700245512861629200689249772575610675874981506610889290164344968075333340731603903755134710997074612484106029924468323697781567595034626986394067818934597490398274271113584140920556012951391102085749972143431910835164069834856256024426632758907169299502742949719843926477435793491397057830997168868965649299375062169782839724070037302689517577881902193044880698795736458367028818484525233166272202397908647552217013947767987137769496716318380188036596734547177029900892341755878993670304719414552370028935762616593326450323103452287024549107192354907914734538238689840663531532368544118013655667893297650969945946385362232699260929601147259448789994036902229013358926202433793537102645623130143286594897161516826220945652586925868757921359902630049580163949998183140806206958652578780573293847870364360319133005613968611007010289834490130069241574084774086890146802324081067979346977212516789953163044214589342371440112777842019022246720028946457715856503022755775817772105108121900525551373368403304919192002074067484143480486895201590958984866266197335726510771286236153483369515203381235475845666981576003858783110860962905966665174482237271418056624118038140624814433076928509688249196451965573969154378493938281049581897737616387751248588823296838587511338727861289568390378773065088237114180459448896396981386482058472862917206415547432665716598769531558342517724049818573837883714115837606184145958734534564037388848776620773639683163882888554637598309038125294898022320756461641198099793476190091400374015654495794714827314440257678680947949116812333717644139446332608182190533987038210092244474123935345607461578993870625694937685915990731278612973194141435403084588892368769997292675678126297501659320340781601187084823348887665606508316058436898164857786951425709726909586947784595836523280279552661243357557094925142183275011422887763375110979431613202026197693255798078072754489250089488438356431244702090563295838433993825362144959681847395782561868440616148639751576325115442353536796935270029511730853015966437131045902944762203499154751671506013802141304805675852890398601119285026669700630233185422651965043402319617308452667817604573140229731899981331260756277119390703700551620891784492841179065287053511142549091442685655861407540115423058082109174795082368727924758740486148824879229501546213995584258765760362511340731932246109012642457513873202160805110674601406338300258175882859847862068903385213842872585588747913393549689332057321672715202378979652832925524542896127556900089696838460605456477146898384331903883084723992681126776139857423455630568450019044958856432874185335999811731096570716326568420283360384977654593982221775500357755367343370402200039103784723738096269025466932533663956029533799156166519100132056096784712916506061196290340011961233271568610354573946640656937698844343595598501473891070713767031362665485111700588246343033927186868907218071777126067917009959515651474895035863752648273890344012423432583101439660517141259630175680910162015871125695266609977658121686859492522860259414554025282042535649896762319827677950349383945842297900077042167517325739178712096178414644987187176379586023836012239876886901239542835534926709492053889234020337210542877878056046580702029731643083883922232924880478413368609018053931353873032822212272700887859385964527374398363229748244021985625162974756669918929771244365179367128768602985711315466869329430502480524606413456441005301364848558434136402028231789135263296006745055035224131096752706562025261684736194856748049182736912183709411884266587117292971293989606202644186629139880423980779252560195224134072230033580751656959775545892721627114342409037925342477281201528441179157277707864940536104648801801439594059348648890167235902473121216344132695393386460647914598227332300111113962158784783816167914451742327390727317874854821789828269883037912202583665712466179061276130052639336586049875400643857095200619437201255026244273089856861725358951091539409235733212651993129272824847110621791161518369682346413583568590609378110126884202335791085708094132969144454570209235625951152290877835043427322002716515452563946605823982114316510693193438567196814188854040003477978325338731534369166141334467104729738169931047901355359409578774537731978677525644693082309443321801415946743158847082671222485693845117639692638168893907710949123634235379636338610556154921143670127285991744991492056630214643772653711318171561803329449154125322890713670178560070741885195954041089105742691292342086139568893518532995771044309515318096060480612335992403165025062376205852968309196920933195754039007361558630762113282447929398542454317602931625647336194602218716939054181171011371144588708908581279102822714699979209640814048649721791628753963422386841056252078494225203047774054586801074871919924523568696084583351666826067106573906005904258245302775654479202833778844878128513504847671938799822013964834234019735183707681227426278127746573621670766582529256214389860199982322061004409589709714828371040604390474213066660922069632375363302187726506170940792961520390483438259444498767306289389573866099533342786603306939437666745549879952337031080406397265237617736709502076649743915483247491677528652765362501127801386629728292266319225469680828023276744885178325388673148872288318021546189806411684971501368549142817336605538692652478563595627818651595418897264511713268480856491794668668806752606845499345044418934741130732259574323501278061339309363911091401683586588020745862673568930737688252635530032687563907958542217372872818857196818325439454133770804421476937770183684207938306450698578929419771046430991311517186508182479902584491575879550332315196615308900467273830170835042289424128961963021829093847341305507748233805331190997809631989682688249264238941057462586546830667770233256044321533949136515486013952549843042364059461461186906647177937241656829809293976538810543363197203767818098275821953289780736621777360428271951471660819755691053273255726702823285733674670330174637295433713241021985153887276409192065953601430460814357930599339431395699771363836948309298651525273765943333769971478057340098363757455351217904125708146431999883327956956238807231475450196335576551289692443008861925812291489478070744929563450146901137535273520468268056345805387971948203525697351434283221733115041764482470060181200372393552520015348077316306633383862936222495239804451980136536370265935135694670285719257649777476888104300068376364075510907041906360250728902948734838223728575499718652549281810590556291984153543842676468300129547117032286052665691300337354795622900705116369648113342725166637720164951700892615148317135523162898129700586704842647646412900918575795513095767599792239263312641060007095491599985984851739355642559062492130658490505872071446757624244558294835479831620635438188787086853274189202963024557756047915368115416878616386230369557447064964471549108438807455029879902677072128733556681900101641980856387897555995885473279681546562173741290914794747660521551688769432732705962074819128041034460656923355856504228967699648586991765013064618717821400258332743196519381258771201549016172774779114766700679364022350437759446892932871969424737266504758307775472718867710128965183927712804768566756489994496845635035321983645857237382952235801637175583122423897936043424137560170189380332504199447972839105683426624167447352095719014495836404479754104530757362548270537092325536145128044059280516853348462741822582227442557558392603359973113051040233546173024007678058970872655068874730568174395167297818995424989114379170257478552798614740869081985396527949657027873740810575785948055603313225171947939014512493170804632469078528025013914943643548117413310614238001588839126731051755130483959161796357620036543153711461382793457562261197471318923482032645084720491579192814943697865288532140760956751140762290380497940594301692587129485641346526025036932857605635772479148684677556399407496069332107306791503386041596691038523255670291488213312464427413791550542078989227087871678725003225754514110863443612308449550605654217623123705078656573358313773375693224249389148270827931080152652108048528546296524470576871079087989319147660294590836992617556714188977154016003450199603311252989431960022810685192437478684869392399006289755661246392488147305014113633373704074563916898742905927158692262429313204115848898772353827815864880696755075549814286215632021948812041240391814551224319877927022036022205632501712674334816119410305273294313188608860958324081666604504165452848845726700216692492793739141516460039613750134336362351017606858153880215033908269240355055367808151458437758930626999933160475171854048585777608045846391850350460471404836490521005750147471951423448078344940599534587227670484533552574532172104762113394330375675273774757152794878854725070320067662020157120012806047880001766398673293145697332288261602855315775865476440463249579576261430056064537723845734588937503385465870059044696204167319022417727309530321417322113639947629435151159369614385262041726913370224510433432477190307653801606384233182015206729717257346385652497133540093359108672613068840106653021842778839642862852143174838273570616360684064384380589336821312192528006722574048062729345157236004100853497028779073142940356730458940434387274020146198192811960801566613210535849748785129276437011604970707294579025640540472461689619704969714956184732939213809287895193044363313849848204453661697379448525600042380529978427573127624259574621860809665053684290718078623076155500060995523481841352469639346138684375633648477104736541566939094067690418777007514756241814372187625326872537649402915106164461198668013745119794012658377129795398073193375620027230206643198126394630218510643812024014946959484483285980134773662353164060808964098128498875761231565204787292471959493504617397286619401233497959695399509527531634445476535187009929065167076881196960068164222714856709293890850824473077165212371232253091935438708000760432590363738015814779511562672071761604825836632168076531949068574397785966921497663542009712331205357947515392427712769420812385174982654587431481198914520846454078179210077878919344066502188316405198617811207187192038766833703252532110112064220482803857719681425989551664171784044850681098763132382010646327880143095207900787006117820876369453100550554066675925692216526987802082089162147951060123488595493418909629584521521384731117846627128685326931256487668000249410578262253226090789779747072142660471046020423279227501128450427022875910071321293591310443192260100641839195217256303522887831643434629931613147838253765209047742586141798072950521689203433519745897296942683189817258304970358089585338963941842769731690713495062931209627536856778636715399422788636964866527771084007920939067278366346298450850381969336443938580417769130195747630712247997428173587961421326177600409014424838204794004795629840141194647025836827693965907013898499928385295858152778654961657946133422780008762079487508633477585737756009376992741824141143686173320440253595969766576860958250583520896523116722919321615086474687249345680620682706793264814855632811427469324759660395716886999796725420094409740730328346089582817933251430103927482023550976209420736113520371063290027140644610641612355828139386326905536668919165142783877785838550382032679722953494015683592706333665389829102178604607370289502526439569105775487452708875874997111834272980643753188180121078160099283941380232852609226287527830229197955549568544142886673243816067837973340975741334057556573149601568590053987194966854276973134999714317440113219124621425680619829612919658371740019706654665006943388388021472101706833990122817983463704463776283312457824013261584207089220606584721835333258186584984825712998033998807869334067438174276094826276107284225261733861239110558206234887365249081953568147621583897494890861923781925161030202350513476447394427463440007031925401354478884874992443698279870596669184873650600284565277484470122890715632431236403391392811513746169095763456054873826296615214202932322398631648423026671567013319697348177547930816012240416022995286523910539385816340476714672674963650657615123680857323715954205981741225102296578810400548765830417779827068362645524104252596859996966799727352657678678722222210402128569045913540976148266758527098917864818905580175696384553792392252758065266793977882872967078613793715358043334847062316978612749821244399685773900656171885061649157557442523707573706427111490837710277929771858733322159386370982563405194824345058397080726264025423300121134358321632242310784563082135681236891844144139483412324700504301075290659225379978742803612502979802121394895290611567313772339105125240499567637763710939331517426262829033611492350852754040043937604639501891282344187732701600551142150078954363713034087516825761559773233685306764085490006509596449603312619982287425559135539602320275872679373224588461940860540418840100893029729329125303241383937214711548309988114724319856925619402868313676183141557562693954258449286785427413572895039065188162725317895120997480080210213637853456084938879367515508289115684949071074980590265299223817832205767342971293212988721533024209772210315851538404224005930628057997284951460971946027382763184783459244240345915127951428967421917663657171931332785102966612280896274041718935512982697021128731738976988833863934674793971647119715565756087189506574423846660457043571536725599108663842645233057249440644938281718982692152971228398033951982829073521235387156256987809390257659040931602399168771400421319011205639941776911908011594231984200468200334074537567541939021634752821702467229759125496425018570186950171710365427223724753340634778847210592622304537306182602476363936609402772236635151926317085281383264381376479031177080454636243455478221635139799405354913243602301167735316239624010550394240685339579115375964364584061933423002470244297446216600722276812338942263157166906086816522114932827469662610395438799517085593734030061691175184602790022521485672868024336719713122056871130951908332335610583245109050332253632965556977089104026580724432234600331860793842983791896168973217768117526852846703167502021460882030245258619048815436704239492277538806008733809914879270359055944533210557397005468397670875097016265094864638473328514796080504936401499003270223967375577699051813762390753856535656631212217847316006111683202583484796402509028436178370952804988607711684563592209515958204814046021928227527260854521006197176573724784973435573975676591601336399068328474715707401820487094605065182910278321034302167158737366903549465852799869947889649889889029050310588455378841706130999696266698552215630406745630243244487767528765304978886702960765259668877864709127441954522769894016112834696472158715429559294665320259083840929843140637611784875236079417583116087667016877695535511162978963347100372184094306079925213268185698511448001381815783521182941087815490364334237322946773301875596756207732686759248995516105274018378952767549324401885625294579791990000387946197359516656681824361990851917763607336178512015135347113076399009029948363133652740612321569324442398021743313951322901773444934345773873538729271417185111454015455754574423666545009326462323543695450133451970784447504000953569330827040576343276030703634721177926460039377816838666993455488359158185438813955500099856437893859393498274265493645255885089534014287658057375373198746199845712558154223370335411729365026681487256991498172611701356632045945912234538796248302825164914320670270104972251790761350447999830520697951913593548417542454014883699561336591883955751447667251128200106324343761382537980530451832402162692560148188339265848269844811712106363996949504697269575674789106256899886208635937400707181774558200974030006183737354542958091544882240530498343145045324581830607718565117658278676132490292920802073918341956133599884915623734429981521997392935185120266970706559219984370942101837499752843170937276625622542363170083241342019085390941663624130998184636518432530514343071444879071394980514005149282551277260879082047802980721445509426294555251594524177520535039703821437724897147863906869464520692226388256060990957426245475878584290665222687977408008394712710171192754294030408949480566743521406484022970625455695724600214585429430355418483665637829338316709629537013106590134557131851654047113011813590906654562988738465753317709801977586874548504423134977312009109954419670670217121110644396094847808913174591947661729547216177114346937192993363074048840731758478979141265464029594620179993976844427470096106332894850393702976173248815004137125920472272552530211895909739116968042319609973068982530529366260067710888355133145892365416930058324483329849361662045847761273141301688648673718421422049955755321650540659174712108191583332355654938849391909518321598694545204093963523273181476869426514885900589106058137046770763366371915446809063552099854613301159222351839159667872561610360272439883476969532265189847985646950135913943181919107015445495904577725229377948316831887507755340574705762273430657690281418450598264784529233143090123396227788538687332572661059593950590975884591332153193761274390867660193963079942807863816974100626066384623767634256805807691492398156369565030381905848923295397917089139503059840071275097665395242034880799655538730128910345030925006047977566500982389423576777929805047890780750955189957398869965555827853093396579638879257286230943756143608882732082741994197626293344609649242732025669966376432836814559228729874933035609389294194693814518167874418328726208306387795958402473200629691644889146161996657871150061487008518108200342528906282670389543958711736200683964520721310962597986648772844842154080031044183833873708285122897365542430473385139457750961078998877865947963841985392868417649436837484701058967196814583427845248536848051799853870296056178052265989963940093346180920300332240656475780074189545723357573578322794171697822265276266826626558887981465742071351167132029231082304744126179334735388286025264746452055505736556417932525461252370958129462527787379306287723365464464851847149006767876670308638872748119535730829955582055830827382586796695491385203016284432538602564855119547243670287965058476492145624546747554795830335339502217025966675266274335871470861876495163581181216183705247098397688507834484991017417259348341903428201816066673818353510208923325539198353023780007200519800979438275195491821510769718686546488399620197227558993488322204949128180258992989065788905549946498810293557397886705134200884474298090347017094098939418279002549359502333236150274611596167908296634009914675466381193536442495239351480097218307876060136869965016677222770724121973399239639032757062784960817576678772439280695479116837230979756090142389658807388912784562856357155005505971081592177772740660800271235924398434219993179162002278301091410595981565495007622881902570640935946090237791825906626536291135051766576194621433439115972574110773939251987942073077562624231490173202202167464615785556497640524053022941566685145039071283045375023112070420384793388368738253055596924179037371259407270083151983377490845534147804460297568235289553366940293658871823073377930544074871339174581015863819004984426077361775577853315521421421714314155663101558558988115337598081224866941531592118209732847296715044536118198628195197288012947398369680078944835176457276590722536251798464241851384657191746556076728808237562701042593878180858766879097055277228888560942633016763762898616112594456751601748829484712825682083496196921096187105227302039772065185951401572583711736275342172137120811110769243500301888156381186103069038921049519628753227130171285561733943697272177116310500212986101414439682009562220223917358561521389870975933007705127991018351798450782080518036853181794327879634965508887125902330699134790939157220477869451288142374666646254459008178362547528271161320030171685044036404937711168321294141526112534161495828642144265476844622899875649451100721232962128472670353378012316490160001067057402105375838220086279267634668721485724491149037024172483699629396846600755971500785832362570027695173553004363541108533739663768035290000793997418307339315842614936022025414144785002674520335281733811589503131708632699104814107439763201752962047871609528529566420282742307670449637915012934022003302084934490374158260869324440920599712301176741112031117195856092735552967599122881343858173555192085391726879653654672884424395247366034478542540070993645116987843466155325638922572462096645443637510471091936315338175142046031658045427560181034352160390802801870227510447550499854365500859115945038378379279114222481597206135399217570923247615749030527892970756742926544282793675904276997945949857110699017727733929757541855682008434283591704081340347780096271447411316307463963945042634060619565945508940011898982172034176899526064474775268535793453000715765835930698552371492609096999917661466492725651184417762721921048459132978216790338623773382545853402609616616440493430674788050692147730790336269053599415194491619211648434055333767144907287273343980956535109421420951505038297700801722666426414427639499066263427006752703518382411981072450008142711688354249310899625956301349600154742333005201228814193724019644196465246714363728351573123779169449238925372272175435640405652763841666970940442446822721393361297490360100487185624110237423340072914325414377044626276031944024746042477920193372927211540695515005855495529280924780857224069650090033016954886054748004325426059045634882386935503596655383174725009922801481937857737547648266938446432639691858468652059705498649669459003336314088460726786504598296156441445063515229242793332134353169962570245339862102151763959902206881836464803964957854368772780948354898051403177188342086623718840310599457261277041442271814360611052013620757708433684199333898196522205790161352883551635762688155509082247272454107523311827145628623520610512808710520789170687586894080700530609188756468824509063190836695216611971169534863454588148290488301937937753020342570599158142000384431567970597768286397667598050126047457973866053021093953778954834928992298967913681849459712285879528556634957827887849553631720649175540317222550368452244071015969952110804470547895751155929524703393079529574633019738015614024192088049935900632676413960962615092144781866913861398963072748464222449869963690572206238766594067486403429411489534324825615449598731156150577417382408851637963781342860868119545258785952425731153552277955640092885610746314854875694466405214970589545217292797777449755862613040918923350383165604856406145123455883656533229460389745021711888875495596867104165092194485572257118133252266335914162271708668138292871469719653482253763397288937059939890566484595901362434700856887464519515477539218006166688760682299821418040419645814377755042240483471666164665499316468258751309723605804438438697043247298927728219582610542796627988888426911138802791460282606819292819603923306530960063361939768884584491026638102181644474284892637350089705616459704963418693067487267340811819702157865014971846183076984059279531677256974746588415200342261020229151029848329276243137857409337953324038952782946460606222270680573609996950846730042704342362852493168702302911199929463326718927170598820126864570319920385501809835061064173620305489011017919209702644972024161303207544060554434648396909883684669883625317380115050297918931703665382933484222918086013068456457487309759784262097533584979650166105495210740168899224881524636067159774600439855847711562069634076718405568298433828965403298516791047345854206312780264591786231081328062657348471911799294359529744382109103788020332853814419731656854787359186321282123490140753698689495793489420870889502989457455240608331941652577513752520937549328294954723945916654669604856819253932197722558430634194823166728246290943080526995932429535342760746180547498801001599199710095983774900540977347334679949830177290631786685704736115053335287058319872021827425278658680497885531662002462357374355844717174325850529710598330392132531637517669213225364885675060155872775519864182678939324229018850642177152573075804682438302575991519601098936988095701006010224297993438544250472955988441591047678933351141153242636779810970379197513042171198815435229811093296565799605544161897904612726800377255213400999315838536312837308875428449044253555754608876142760933399764175376052501549155116177492019351127441450307008093140726964042713281056002945626796121333766512465911018536673430870674502079027865912590733988546536497410025889058821582278164183955480615219057931701186920924964244888600635951664185361740631783923939286549384937731364056290674484399883322164125564211635216667718990615648738564288821255696049838509443693891804240518204789711890165181972596000910966595883656060915555298867949359976481980080657949813790889753036858614977010683563156962073560647198658347681548044898214730872844025043772265657545562195366080332474154934324024748010659120446498642145207468480410701721116069766819871494031031057118914163725007295371218686884967643769436465421324595140692100250039759592709581057779436897218767140627480050813178931958668159678975376700180441319205883593715361394389525712043114562927276994775723671751204557542815280181993187553924295678554526248066783090694997177545436014650964704107887306448592862555979500328092135380324903397724870070293016402501412749712791863623315194685234790397501556065374140992470507218176305514078492897553762281165899721495178567068695546321132188279193870916004316525966522018382864255050449686828539304681158204598715399308412903927169987400656798599242106788991586611133518404892914154923534969601174249329982796223967524572027627237272917906556492348767143659318353068443431401899418128436595433554615810026961853419495180780454065437173957715585871226730730341786093999951504047223495733987006532039326221968265554340086994639488223526432451366941958832276582934392127220640223449901292274178335825103294104453737643885149493752806337497542777848295088614961366223707782976457192627188297723913447344044059519395574041799987117230908109528243706216691681887065708241401600142788987524623443152644752085678204101329235520172464431682240208717902012808910433682590947555365037180699476592515143440619885083597675737164886119678614849876440587455394890979753181792614489839270878860085059264862086486048881168184230181838323808523136405738104824396594786509762282470623419353797371699020873888768581338627059046824594233345046024880921496277370633743660027017967402076970485499302183826406689166940598919907810005007631177875171231830258220733665283827672075200813875724023684772171030264978208959179537437227132925790207358041293135715525897999794963950831268514671157852107761964307377187926456208615270048322480360291347947581831480721459769570725890360457073648096211184350166505262327620547924657516172453190393006158994956027826608775716545221390036142017919874171360269388740751965087254887837445371714481272013394876204674040305273213507975330425998540776603220722620284000611445071474579496967586584343314002487544985024176698768969989416940402981088560692462929867906659941674034165709643550422464219024999658203390516410614759252173515656184248237368513411247959682187724070172428095565205759413747702914412588370087666495450497859976965028491038128521531974771327072362236974279837944172089760142813467189914525787157301191213845723577110563546484042869349281752396221119861016701781203203453372161541990424760610689498219216684256215445186530186083444854578515729483878587718625477100663923530729336774074631070641833996814709669195247522691360920463880933614560971849669263798665591506791180621838777766770840165698463485799966742285347996323710403917894525012054628168576073908796981296548933943596354447033159655850210147387824256825769777329790404599300664038050489252750635771018474085148715278392941784662797029657902325777853709841805501735824178972098175139169453836939302126691865634319314671927577623186623273628729320155750680707688071898382821689063623746979621606823750835975336905678159008746908150157723444178433602938763778559973716702284237700959417194835345956783367942623236220115803684845168786654332687846907409527430419519509303675832043704016721376383013146746288446919310851906797773491725985668482633322099228302370821127124475890345661724439055001122026436675044404389293003017223559520457681254732340767119899091017424602617090506508256357861072801183826779650872309946988010556583931863355934868405408072975525138898034556870933318758721608299053761879223892335162857310243857424142254719270591533433511626895711311206356548810592688123628150609429894657937596108586962000828087619233138761788323144700319831097300258339505574328588947559880666471001435517075010407325694952895301243253524920027747442987180008308282535418947513824522232886339387659880944333105402754528027123780074726650637057048085141561929396105475882277723325042381199268439025011871480979882494606119687066470753511824938004618159563588441401853800479858608659505979483128641230956821505712410538835524011577965241979378348723981535069603328265171691034328831249653943371435404319843484331876454174739024619271036110597045166464554354234690127054070221038136812916102619811054448137856803788400073306946337033281105302363632974957129374033880390817539460103283854095372711338091602485178700389947798929864068982692905983657299750415432851931697869709863291449511184484099105019799663073688336670015161847865049614938938096688718224185473509363265724586056923235709773542384770342446444595057712517669418020744855555879562018446885294897998512518349291554714403966292157419604707019875243235914278771602349964678953012532059456733027243850374415645669240517516568058985955529163907841698310380171352075776926927266099319999370764721442233863748556349033466050709562895283715295193957694170005804187393723970971351143808783173774627029838784671556685860079237845577624280970462606373675830705446585981192828901051983790726158944917384421307148576302683720304861832574476662427255213809287954270685612495451141424980429677903048711914342617446908300307806200620435254681937791458110710754869358187796123011506839132774995544945696858653982351437505584680169091950131894980234134463073561705473475660163367521177243014432104721188386533771863695582621529911517087155826814313291141729191331426094810734792186116242099350805047609561321336296107531282748765773529746155185871434959964928619237635718353766064058770234647262992390071898721386626755617059636124352411530381509134476229004397297296425875979346016373175027702748682094527183318016411530019999015419164783785027541190932751945067738696066248551125326405186075337724630383450934914231808973081337458637269476120548064902095788140420721373146447497342813485571289170121624168715928990730894076905976456110740996810519005546934191562078625260482636943220821144007784984614619252586575690219449005875615123467189876770102984817864520376442720017992415671167105847959574342559831751858901365045791515787304258570301177064155419646625594971505766800177575922299663819620218767187968746889798483230093602226745472253365829019024496988175232279138028225991903787412020203634190574561443893819951951725733613314068062473151770301752779367674860549229685700640501634997425714337720058764252655853940725420142332367823679947876571953243505270124339129038366026977121696983072866366848104852398025399731515076945422119896303553589350634266947433753739150356190787933902982713612338968575324779466491853894028828656169993052728863121748615011988350518673784041248316438516587816276816238904440126517226350207221123639320694651860983947251262740563220674364478042259595105431414140168232724667129734966804044136501927371689448556762453858415773363424157670963750981204546083072194800148842811395377798376310058161288065197593898953382351566808457415236964851489858999880815656042677719887552485030371987946707991704973275286834931034006830793940323188577034709521787331067416107165401806360716910468631891655997548061325778869748261550269717250141914294138067659830588654553939497201381320142665056086639806670298908500540126279396925357212091485237157802767727139646324282323192440785691139146488703897849627203622705791440180088218187011689340276161403330268874032164459932433345937292717155748274784935766809173170040302514998646290612714854414672233754192772556164316655556412178607837035957142794184693938062541248474035076172112027264457330374723097125411266918292642105248558520219635102140710025462867652201388879503570182675974018162107879835874556445378441944020453006795688023414905938389641674717997887954212955119351101375427254395488704858688937617016754796022118089768964278847445695923765772135296157100077279246981560456785784925704903192383370214315551728965299791720150704577867090925894729541394189597987857422519946527760878359161969541399818908457840191128769327064666664664527599089486031667563081655729465613089794540035089800186887371620125889797201718965049061874804416489470070283759196801098058280149023290771919546608744650092480793359285778617863546264079945184836442825292471262203538652333011468752068353195299413025760490529024883177958009021859682467214661110064563227446279368372863340710790907824480631236090330060344868223655126936673449431905772005543156541359942505933115670813054282185136589571918519631819524255615421857522268284298619117931699848412984427639071427383622571614076441361997021151331085979782642260630688228529654832820980610799193120212484853211188438284280633022738829555437243650709940421241881123763783835776482236395236814651317572435601063985004609903374325053161447068129112872578676513034752858702036719364129184837609666872887161911699291687577538343037414204790819122793885124235708056754497059188461525231553237831135918689133360875211769739379875531417189578764136548786049118365727275493058624902953184721191620209821502458682307156548081579676624075138154071585677825518530749492474284386529195378718485323512581502018448138559044491182055809540144399431596517214000796179086707447739255545728484703777168576156370469775163363506312072910743621084132515342383877328903641333817286692369616555895778285760994270041065417039676020192451092817379809409008511593003362600486323435747056237756245955115718183834314947640322172523452710667403062810367100085225838650826021058596796757290101237071095379681324117902920538027570593612607615759334826831265582665140079189835508645814769452213363563015145271796795936887890659118470075197228679210295396340039234517712346833974213527609505075998235926446823072265093127136089645524229746364122742203961456189058809658319802075986190076161638375510676575018960980394356597541994454774179241719427619585984014529478927402673890245471623688340067784583805974467531888088073000628036977604671497454855148556979724033368746958648978220620242813762713145447701802042902149750107208901074635032163699542635294800800402641506975315296162735462124021194593655614891455300805580251265639145027980084989920936019632282568294641340869104308194054197703090323482594011235464876421515493579119004202150059949955365106856615294744856976437531118441958183330671220451547646728966775175981074287253724261670940471749940919965826515525267588428190242806181691104667174702427944732729642532711866793984448243419844484947981838509120215897519934228337114766027743852496799160297471879858736346023680558138395925183564063293701042735005733414278160175755884687354878793930946649262022719930838120551035309135062080831165864106004435920056903711030823403739952655616478641592106543163451422640666530247183069700836283940205742031915133380145654866537902022720602897997223040559467511334248341047975643371893796703134150167532155761644758028799254217994214394260904145999075118154953951353293633166066872850421726377678086581513167545797821527693524227179737189366600845730601587661605923134529222105914722282550804399925814287620828514841351160000734997588922856678497090847044917808348676199593549184132451591179012608871750959699054623877714392060620716439989066002332696237715357409823345499581974784558656557823803875396984754549791781386717806204277941083892340774377163075938834238751761292796066223729500652623766311581362347980893628293554090576025776639734280277744137095114903116468513896846421003757707431353864681273977561020809013554322648239597247691550434687311359531121400908264268102225871660031341122903547008896731493378100090602473536647383101362078031551848461911150324339814731475464686919450334277065984194847163428814315442690382668677074184165412912975133288401027428938179606579259389810591100464138465602690528323141314572389918670977129335167475309929550290177689562685470739461559843503167173815466906205711439243084088571551723596353683349038074965958190033732102711427381926773899616666966793545627013007307470403393365234891623364072444598787629192359461322479954472535722642215901094402278162643657388576140174633685233165083892396299081571388072656524398045882666968515073279921151645485633120787535270585280997749512403711014245119675897036155522101959224522464895552145716846480140148387068615526398519986712210134483091792883759558501416925652974354088356363957580612157187728692310416881333942999089928180458352088669803064390493911410222092519602136179428547314038650575376712026132617450255599021190778551927576943700392756566710103686484109025745282058900562901824122513354517540482819400238884957103718931023792562246679105835266069458394778695024175706954312069670054092953007514092196559390321810685740926993424078277145168719455120409483712211385092262775827199444074406984188924600558391346424066584651778167692541751296551776608695363768757963222086707322632701481273264985408245346898864069938711212248481256999797039289768785087918602714368640096885615453727771883079514446033343853563477801461496477141740238220576205913511823245033421700920181535238180377594027936047573251226794957950846140779246394932782899736089142896252654234715100291846447049373373751793178224511382794341583623795580270000858118398336777673216154759826471117968930736354050396607554161159657000048690393847426576844209922357982398728192044181211297253882247043310280438458831990668877194935870401398980261060142843907469919470756946677530073482048965903778081131972428663624330036459303712827962049554781630371686871236419107631482731600682867275444446702974334084863907253323842752955216212285764597009552156478049090559688244706214478874172638113055100019376689619999440084505811329842526273584658345216563052126880006022181709635731421373561160332200773417755137684836133699791605393006776918031904253948719805404568178357720516493903335909221055742594228605826948522690307793154993214980956199075761357366934931194672926431461287056249218188931392337608036416974393424108881632472237818931426420319051282111534898560003190891854178472343989966526999150809518260048250847315602891364296284898958636872487400081725476317029372614901890871025474410106317405178287891486301071863644669119428107459737653291261022028469472088565113278848831074475429298829831279872456935413479149908064974518911838982710836738276280132094353248442688656039575180732221754606078798759554472039045581901624787573080607055138754970942351371369315966060721581458633753425305176158208675756284642986665660664210844114508985888574123189731611013561412959485785307314269803035717476124906831258816284728250974525555104821170504727319520424586047210193370530809503653792235006863938519900287893630338484395303685868659658208916837068890714736043294369176108955328778377010762511193225283093209753593980269041880706284338644985686392586915791306012623616258104628928076802917945309769598347309753424434786743633697325047692309946205733349432282329388340964816929517432295179478583203278707756760321358281725521973747003195600495407742815787235171853039441137008226706181475494304416858258292496746669383975085963797373547701314337856914040835092859053553669303376314416879264018650113544347152748278016683586515181231081058030011763260461048862833105739679163628667646898677181257445033263443886352785432908217770708681425584322325577063240950511685065493669883881397692394931693695955376669870293485825574201334747206703016627650601701945191236288408059514486170492720000940635260095987248349391252314725498905918633157081086075110109669113254306023237515642097811195376780567102552440927565515761744533383696796318391025277214290733474983740466806057449786736188813022295536332571838754381976038077912381075081999173216457312542802665741850172636400654028097733560861643409654652160779775122563166409208073529912873003810329067585413355675504247019070867201124076984944921605848354441763810326551693655923464259975479776359733783638537667286621497948000066739406839128148853631748788922596653564802736160963698389911252573030617560925685426686063906622694314973480993386917787744278235469840080513157522093416639649421100599432759749228880822737368529513611802580212230295423118388029195522717009637046640381970234391140632040087225422781191471651331005152162461220994603426525070009961934780988012869319044121667870602546020350024520851671618162124940534790516169857263048100315970652290139421140960786844224272124379501358446068273465555824896386702888541895232999716751274850918095189839782267088604628824499920384548170378515663817133767477741898404780249971122643983928411261149611245731480148396943435727145798074366921786331835170820761505476024064665071423062654541657720957957470270300860866628700771170962605438903714556859009492075778006580249775583608700080174102489316664328445424468209557731806471786930036953316850619982875454440466369332283330534840277340021000730110705417261298320669917983220304943686237617845910304598197168295027637724303177576771744970171711295263662740260744122309864123960836942257499456849729353981644486675268632296227960475800136987575617056613143886784336802814329709427378063965599678417284278451906601468560640068220923390355755658425148483049313934374234684327953506571716234224866216741103187399484682289985127536237392324900469359928559620207461802653044205222661235797620559502457839298154112464635266344981256869022299472988079682774410721353098149939344293797148279763147398861075286172408541968591616940511355480098383072702736568007322076708220624293429144816483953137999008708209587883188021889380382848633990886345598941041304239226519242049571213353544010643814513708383491338132730370483352020683363886756775396820365972132130547299743100194897884805169542872156956557138973753526448943951979461953470827162716732196997443799880103392695224861079473129739454977845192161534859466463273533632561574787446544098968679141746268095860579761971458440517701487163807153709805431258207118923706332923204552031775608610298828082562876140128423961488737122364127754560114053356956202271715347802046318588600212978338475172846722391140605678575309933897599583182740716768030235523064239840971637581876191149419261766630111751438068206221176454841542917945132331678970097862454074887255007696195036102936391058974750467794072440943838135377980713183793654148943502661760117405398481374501699838774295054086420573387139905293214887227307786826804891842942205742706775609721069522816685131919420107464140836785551057030465124000018065828573516514709640569144825204647644063987756973327424387638388976051268324581057960362440073198827067870955186559616171109480632300091200423117117726560132263908649084269810875865575311126845805411924972492055985678606558356224703052092497322102944425063473537125109052076106628301302335006442366978080160546027349725937128148741194421107563082254207033906533852170394545518753061750441258115875657074534139221632373526700238918824184143742318438682409072002959918619797729650586647643795768349974328615773275831037810266277178594306357742895311545759157762089743123648854447517195567362213488896092885173948028033324570616986180782765731131072234631170848876000596712974347255360104220331453018623256429055292999246445059190258597687224407298142355689117247360614009372969239201910467020499736525087016620911039911838337953408227115248694521651244605069087607872867814765572281123068730972192351413681176686635831371265502516234269599428615832546324720124992049435449469449431491577897963178081493694535527152320798962394873367044547337866975202608406876324020905091959528487800608706953994431393328816904803356291260958089907900532765765212213800626379297446098974376535683247326112333518008051255498530839242666037217771205237423463122431477263778047439116773219162738974166511835785953092846094613718794287829514603071058990503339145730144144263954646108472425527519905046231741906133478909727181342123826445587084223459273755787818076699659786667833571423667591121022968347968264005998347596401761617628656590266150341010775659963748116327565913572412675269870390140847000046710572236511215640705231173055176995903755680465433591433751801711864913152592643151452234748906752681067407659756145248832433291351258128212543207185119814146174897642713125953829772406086218864742270740897476837959829124326699679894553034356692621929410160509329270867109565892303788340552678003301433960282769302056805323692219270413309855365574978594882813687841882879357593856321447792435666046318603707731427616591232220288997060184929055760960763080822083170548202286989720676329109387465091622313080283178422280321845628266206296567956837901254092230945712725722961618204477782506726906660164038683985302515123101444509354239811431590644218743046446512403552763152248985965446260035041787637271111989801228423482495265452552106066834518535578909235727702720843619635219309517507691310634127762773574157374316726907835254454272958161234179699244300694535505853294102654748690885587011079547804794063251962257312623470913775163163639357497094507234773501971377066412567885037169198840911561133374527563579220599479200293691130822553896680661335278921545458994417811067768775274906460983427913858282938943378432619833171762511094772984188966041843457411637850091309182397863801333234497260481975241543922929121600786506877158031648597066449084442656352209211476475572424757868499651812682004405853000465901829404848985164940407368974204386020658852099607085533069907337825796235046311800043508349601381988566319361000754823898454194249633933915147608092734354114475096994748733080015158365489213269967523518834739103425725717135192055436113583263007515521128185295277866864744610660786552654053729264971478522329596740312331920119535600465347200811240862689631832825738292339032678264994234070928261317112710289148524566499948575775484677416952335190303995442740050903676237091171051522189767891977218911331368388336168167903101397731295682231897814712986182506723042074802239825886883351167874255962498255850337337406988282084626218672435261364614261120672491368862094987370436183356086729474845542547175445707113101312488612247993179843745308695235228408224122513033908513388649318901271863033213964626911204299667430725685852035472528503903509183271916433396749734363002779832225016216928459383076995949810815119974489633359067431735752329849870018728220708787801828710374459365695192093867015684651724603989446807990289474678191681941906138484012680384675559911317508424765406132767316970576995187169242159058957261442384746815565547909485855571273180171869103726806679064583163194226188938145462873114562014369215735521494025596718065942747704355062427995495288510308435506173016457329077437243809545052674093450457303957666418271079773164380631906934514710162790390146942148666049037912838775917575617727902179366415163276321695782288712030358523138847199985570589880048650088144166361705864470221735759593276909960368698190826226482592111006877699204049608053007763716333280988534339095557835218934292648649278759903556504901663473278628669924674284638961315911215852801729513466347914991573387909945939169122707374093600724041815684703365910714903243357034996030167529601341785817629312766940306417599021063930567220183515512958209706589157660390649343398579445608058850739797182989667895448208522575150882200024933717199466567013573835634894624405180856631961425864875291885021679109694931588494931277140593186765293768540124133402126636047498163784487500740846671294235146266569467204424280846715995639774712728245115039076245030507845242741667094304752792054615713249070822662034018593035108758572462474408089696695878939474983519166150842440502519747328623207912835950334865331773521776801078930737156359930443266542280593146187381187664815257176116503626643659483380912309108300612841394184824967074915613667793571768452343609160190530195214208370058878007596619596011038687520458258883497218889009776013871170548443955485527785721188697642718568267443235231675217829065575035757077168380058492272323551928838131566655362525281519702175460164472132696410920465243090619678614893435730546221981789752505967982370219420129325451131486837876183777141181456317257440544279896809038736987318556803271556864320090641968036490904459379274564009605823508764542907448802031700827435024135458729662181371926693803437902666248128228788597891771223632480159175809113066889254898234637462917732002955434697725881229225974843961309806284797501171013534217786901082613256159495100354551283680276642683712217874705770267960172166040053554526109723685606737793398193723817051997601899651284858525065616402123581561012130521652131829471283315793995439456649221633260486882141357312339536272501149259300475176656720316370853970332491964719472201572105698607172622362943676058721865646463720653984236353203270435691526074380305000727465747781927519182307955039567851256296966885249791764243855410635130056522238509832520570598767770859866884012358047864195157551749488451093703413183645936507471944719792019341177807149052586782615465553351556685456526529605152903767413111544878106212830495656058969138058707880419765202011683958195346405515653150461984185150307690845786704344240359620542538273977215183810882467065094511770761372142903066013877303555590262877624947724037036714244211252294819208862453111080674727325878819999382829276040288838598761729932878781198127088286662809363782086976993398245347224581456573852513740791677320898083740083731223949279971793338722058412219309534135863099863833249727949692568340640498488649653470963365055042131489576674287377536815659140321196398118154078918434801973221798854808991099353570173005076200804899329754306733427138578523069306182613007168323563229635717623593815851508198588852172803418639042515172605902739903070872693176854838823033433058933699440789018751033289017559190536288112611783591139110189999853682714726848114843378959835079634172703458854262449887778636433546055988717929772291124156889056307310532791440256667239731994295265937861650446403989467674288109907679107993685308277289819442408934163556569940628050524091823091140705017312087042091513353990973095861534480717524687208748957566609838174041797694530813467615105685608259197008977128703300619068795054004496865814095014325756973543478859888732497102591862036541080670424800650177996154849949263825013790401327225782261409108706734709284724799241549482446138931471550283949423729792712895406001189816350691568213542842091468227827777126455074334438869903689676800544268932549918701210281187517310592261676368242945342553442937252665049406086572176974456732863172127023279504092980903532601978181675721426163339675870829121248438253978966594151471438397727125887781239641083883037598212163109050759407906648244547629185138603200168529287951359190774375906649864131854537532142944440900280624966669335800237515931967230350123982602830342299248305757972936602784968778427302291938543450098161904023084244550754976289702381932950668617162303448903592728427550948464517296630566547398272926430352055997031569570403012405216736166825794927443722641225423460443592095890958656845137718332459212243883684880033032528428167577446392355732567954263540694865473518406455228397982743745426374372814395916050478777252975136706322893642740837021134151248630414794993951797829474473281847081215151510636293382690260716319674972855427540244832391067331431656877327682748873601290073520471658428701795748317201777024785944617707064534079053247043430825476334648824946379875021714417838501161997156072568956922991783566517955881029446411938837189936328082982004770446749927160874263776519631676743088895483277030045494218369772258906500997209004629932103957285468801798459981487020174297821710980793880837672188651458434547701654715997758100715146862751831755780761503388403755130164457779448503140345167858155192861753579129088640977134078432823953782825622784637113994716620295360017755502570506430754728521703994805542281383809766148589813744630519057500187031384149790118615265714006989452099395442107001114595722300644073832272611035165044655366630032720673135783560418554995036921194112388491571250379607959671985278684342754571186299963735068873425015731955851018018628576747388832850319637883122394920533087107624084870336384930996644173099903849064831503222422857420860052833593391284032253686950741733738990443619165178660625553690056193678893854300794529711171371423400948756079201415996854551784030973803591587562090651316608760264759306418907154435089039066235283533340468199145012811994371088484719557809307468244049983752700622903212362722759121842775419167182273455900928522525923942566260929211434788751569404670889085238624763363217759930242206319438076409035375673050326479106310056868269867956724232844922511839139575746819629538807435818385410349232102967061892044229455330200203234581317033696677090442792317403371568743213855959745163502843418058733645327636636885219448644291431141084124177566619756526510672981128746537238297575388805906527156711199472510370939930899169988118068136285589759428376014130283882482733166010725842440312515970088848150130348506061255638904991994149780843713499181790429722234737084787881951009513603068782830681048363472873007490063622010441956111696843310037578413051878298178414610939100950348614482743079311921559970550081992055755031228249072705287416858252326693463561294371318324824876388757101274241305404658678604603138030605321526478408019389339928226400439049031988197300443139459281969030872138377360686178200111722759313745045344958580161183285668142872178627356918579272331698579261888229666433658795441436410178053279268052911188721674330647244104930297348809231736228522673363441180767757080446249222551000441006944696263359753614150243382299005358793216906147310298411756917740334386706147837758311003928391437274628622174830444762808414951533624738587127738760291778792125969411829446588158363285348872122809143119949222732288897348280258853529465596346965666902011101220878208532218935357564575840151655229609894129773684873557892365691676522789650258978348190187320564727895962741565368785204248942585879784655990754114513596593720028172260876116533420696159806585525069348744384283495225162001261787019246701094967169880029959261180605765351812264768145683656161865437994527687006323570878532343150417897906686871873228466548893344997040024237427244743790006156743376998738524182473683177629937448368488871100481205644870679636263642654322501268821939436443151738633474393221418358033977062231692709690295294607228319142952523407197397537244259902883834239946292942634486103206196756765497254101765020989615408007266293281857561854475823679550552750744655732025430536300247384098144035858828210815882080035612813070718150663246080682534190873284762518950993254178158635262359406758069363683344252718670399566411724877978391410078497065228687350274983500615824263170395135935110871671414653875860661170701802466066932214828239184596381087665236655017292548390066119415146362082631756431379275888718405182831470545272279268536496362797354037138284633496795159053435791016074097319418560284613309448747847100439389221574347796316152305457726166987194872866031474847291053987847945850822117721229241119003069884534455360328116541942612570865151090660389894368669875526433972256865631602186879211197906378847344638379760075939094125780055119397951533708110236806897542565436075901576893497343785290148741386663076037410154732264606453182392672698551070079744158408346174967720190848311048055134056090598692962710050084509756962596417659369651797996606634937013473622939763762934501817231204107617337744375869839419086924214937477911687122334121024886461695657422310656602329395131164087328594051537997903055927046230797918268465878241264293472965426690067896580442300696564249278814033151945575424737223727772596232669607123226986121241770004494110653519607686016008467094849549662156226885634868540411194544197977448305860338983967757795323625927226749198154945949303751681121557197345292851117112699065425357750459478928630991124738507932593590597686055447961158567746351539939474603090414499256758035183660706481003764894227130325571743368014713286915192750350773531481690629508013467335092332776812353415181754171118477931411426515967463812544157515182785692620598702858694838939231045417722961902639465474158822964944565883237229744830453063833452274058645735220232199156806356957631760332383155916799374571624858718621609793852944165756159953596203500997446095615895557109500507703710995153585822119897213956845204087741790517631297331786670464414858317879604865045831325204033559701297286485094974969316865490276634097125464377515172444572566631249316192655079732653520583357552592977972516939321504441074396988906333979895095730253171578024226191513479676801783947389962509877651622567600741957630442171695161327391361958828770727906076919432080929742903104938430869881171077042919355937458935527358686110364323626095684213991528871110914838113342316603045570037566022497519743816087716244516524801919068040047476221018782897323428157151488344443688138039613097815461673239971556777949781077858891134184615336156327836377677666203306620352874901266023385439655022105210517958333697607724918859374415570340732468706358063968020460731278234981558250352302246939412671156793767505361870744592455785186528673021645574207963828907884384960622994437631485958987855982629427554395875958235465914938546113882812294897832094972162687204591258374066718433703760451251261653297983358550001072938588444636543467088263295218910990958444591909298948366941067820533609468202722915465946335596484199961710106472771157694249899724289015791527581270131967385718860022032655546986196934901968177702199412345495286655393307803019113309220334477509654262040725010745946851781520121668063133382923343036514938093561397429751923433077303889458901389891134224516237503563285759700452648566675071646989952906060445221525987980658034423992588940844403772329001903031854954762812354193582349135081520949306732440818887035040365085041538488928792875085797611186509012407576037255925513339006938412139055463239516425575097707489352727916683343015810385610377994013418301307540543672958568559702386742971137435201102745828982308009289240808242739738460331327616389881904212599897853480432529423176475918296456662056166227480924727798354131685458655714210272920891430678507047494912921629406661470525831719299211065329366535157214944503002616114444889250760982256403445549209852228315401774082623260355555052516669410479229721061260750223229950561222796790443269998475177969339994679152936321661528701995564261962134665257516970362511900727522547042668733548043860503355881937449531636203182632871322813830626093444157582373462734005549786200750213799091735806252017513576108077954155702201299182050615592889450830964808630401385301305988066389061337096327844898143172829932088935298719918030743916905078939444582372947534724816692378612200779924727836742393865917869046692976595304319440627025983953211573257404097995665203358398976241378169849309415424335876832464406205214661717814652095818120739290625665791659918168608320877290986057475219307276276333115850302327553394687872755759682923426938796852118118186562941773681964666002472537791977241335583321809381816238066195761512177512411175721661348943382827187599778323024671386761910894402002190691540480808283819369191658808400473205359149361422353243126940500673008033743494719572022027728143173885565500867975840581111558820753151187375589618312063975161555301163190317252816670112341075420404100284583758669882606496473745527397321641716359913224917197514262925161909694958703299020431982550662008037002166876658700624609054178178368913043293808119416670211429663990389222134942559980730291879144861115754711408650646153116847514652054183217060601223744102426438405711601329169561316489636955038995959279183559794341936848911408262676334003180222900893758094239659376496723575739139747258786861302985096782562564419207907319056959792859323684448441019274980143252646955489554012187782994463393842274170365586295233269993421156096246147302932904335870098099949628615790722899046689962899947757512649505474282346906645492828605128960933392498957525124613602109785979180320941494899011290549150726359748756179996102573909549026079593018577650755555851875593315702439917902566888548200777397694159509937537371764533429791704940904068793083713327316350147506370453261949136783850854492872992471621763866303384483017039301117376419315796030608341293598794743223406079228666475329334785493901343695985110710264434958339656177144097050578540040766290837702837985744320828314100301226799790118299019429618660687771791098097680710779433060029578489599996284976675961580242735486370507368878581926754907033869492793212689058976769843744011201448469174909343238293105082409866240078573350973215357661406421585540603337418560251524207731765649480423783057319354128779976334083188993064546894957615570050683483374532293976201635180942919492419696363484629252476311206679900464270292095997789372554105310069632996692595363573298655990478012327301680760002480976320542897668308881692761606191896328894769842842310657102327418196474659581357933238759256215188332007715876360552171722880937444690340186326705710148529962574309208241218701102842511795076161043086269776350934962427842643114515567504746874802129425351741365523646770974490589332246961172526723689634860815618097138375392513310244665838491090889333101775903287975811425164761403453848299688783859124508591756099076833230584799369275417819595593825520922758982406911848003577794204977880445091713778012686263132117743033425314440290551217359155176021734611201214629745393120629755462385970230303775693716648645801075097135127016313207522264450673595862407887133157803312628440978316405561304987425300455261668497643416042056382947323802376861223366823868134950053911904796632263286165587779810788637168101926295932856307141810176385365364136304820275967059970098113609371696565107672413741896375984750671909871723662848923152276268648863840545865433153053460248337546498494007253857803098973688803055621768573197527436966613082892264725464750048653007082698059497015473736097628149337026139662831364615899491997781943908268854256766195626192347367146934873757778655103212155018332894716744712620033606349806321804987955418234164070689726476808895953143527854852082224134313504997092551094368960866626808032441493110527864664809147449330141388316698866153775352218584558656008084818342866037922242730129199299695208561241573030209500705093991009547876248207764029476805420555657619002591268659016615501616916516530761413000691550413306027580501309909147023241473639260631338521138030451756159295251935318299658803331526868717758660135450404655272791101315361230496499127904375981274931684239316574988250055078370814789960181544307744290075160769925412192080471867852930920738305454503950844544605830904769764679210399039559433061191612617707350669232987518050356599846544302668861291432375044983723527540635134652877632200562808282848857751409027140273283209023691849295757131246886614902274750060732438011815247011647973174447489751075152912737109717421781707473580446375939925873951999626047368666242488720600812648738155846633002884750563091011657378779794681874483696605668296465269545703158816761665627173128621701011396055628710628638192705944175529617313252791235874897592074048117925129553127298312376046995780520425845688617852774295040803823112792130861829628450105955260151528484239273514551659574147414964693925972651329139036077729187365005418594356777141214635177244122748410149759436839897312618016442890561068438119906590025885143461650070989639654559699178811428527263801352203740650350868903111712766102406390391809214751462194548953052932128029458336002072221905589632403465814296514921016446494317332954266331759571200016428181732836136742879048163442171636775515928895727866006609926505907637398369185675765073079786421183365547429929433269721995753167353795351087463796777630166383877929195992220948121583766379314167333305522943064711911766791940331723452923526330138542411765919676085935221653460844882830302412058542271277762153014693919569973252282950643372870394623256562303018575411743817592851344875695027965640980488899379817521825825190119480266519673305267684657500979993233793028547068540357111363490007470217329923214826676088789356729139450601090764443561174469876131355571251020141029125179177761899089640316954301444885730554020028438610358268206246521116926231466814632832690125088239539181579609916751961344833615670894626002946237135934639475840261239635414558985969463874586536667758296849083335002777451044428536718675030219687097986473108171857465232472603871718780008245694714546913360567362355251076403193122479667239016160647420341228483556157305298824114966328271184135477186305158233472692766319312845173480362948621698581672189280122323675473483923405187362276743172089223221186014158936231615687417172141993116324865151820307363969235872250685277125719834286979770822031069576548380367835912414416039628413020005123763542717315258781182624563359420971120516526682571997805051046667739472532408707456420741510168142851715789029353827855853938206164336903988302006730906891179827635317378913092659006967987817090559943681370077281874793548596400804852460418827884361012217784822033396378969544401281323762662342342167457022590816380690190004591979342041677740192601567389452401079838068160106090311415621438538317205516137401277060762220531761213414004254344438234129395644476753763144602350726606488892874363405270643442502146424108508421216918904809621337332100805336829360170813294796827381684697399003951826412559186049561486364469700721221665563016331000152910317942391118273594370018446144149190857080426927772540814234181679026259273862537831493330213279509659169162707281452538734900161315072405668679123868091814507018007050065241495395723999102055155087067485550420579749147385615054057558186454727913054899340588980329016594234192412674953157003344116067112011202386800985403466740922514941406928989355167991788905484042691252209851522715810173409974722831394184173615923094591841118995805031782321701248350204356230368734971585969629140472288984965445536815832162016805085922804200810520666076044849523790477720070740682780326443457481980107670944727018409341190330992420198215702972520507885793940715783173596322119594772287055254419083134355015373285467338574901970954399306023051637472196518485666159419887453699227106116691578003390267573230860792372337309370407526898143291560933775165573038968845612977385468317136176658091799317250570474431083020877668698529001214187145459478812726434035868304207941524257047816046577807769854862719019705412544645501177159290771767080824242451351182164772210578175944952896537692918341263628801857621739089002651091549426239473244080156544803023722639712139754944002862701554138943965060096713264881182038165162553570455238882145238211605512339817678256337175672994735293938158122446254765949060562488478878064127225843915543632771863310412822888127464047317888444694362662389223434431756713609692492924171685737236427692876419308002611678079530547770003769480919306554099339458705123587678493514669324242871616231425229295907139505876105564903612586937674184266399215992363046283771503073846625375015506990596211475459964541218626987750471945780342085468954923273443867133019426962354908049063289736219479880946605025284104280657479982482028188267332948582913350512948022537276547412160107665428979895116341339041760192398935375820953675177631705190444605984201511552895621277312371587109155309431511780607395410074978203437030695766631280400210895538375790095933358152394083618551748544810631342715548110762276416763495406785411209175541223505394514997586505622900467657697123768505479890023732057700611750265982395953782399496102010922613608471191122184865359238642961919351534686381308358758437851168877142563528868470330577588648735320730948808409105728077668361296175218021893665051150846235359168300139200131422081286937991756367007064699044030092016654854500764744614919382015251076231111631164574180448718837000966983750319908884645816879495852543723668768818643803214181348935807543147732872643301165361708555739735053475113228948937123846371952434608830349391263552677495049085987518918246810791728754590519611963979370758528134413111935297267469019269893186907016114277411221462542834825193728198120496537522983214245632754904506709049394023152658928386443988348684083200861200782074128991807120720471164693531921602306497504780977745038500946567978533640307701080575410152361655954276941788392978662911239858695352526820440596954667665617643510610043263107704321750130307814453972199663248747201120253754024643041072434322405756167210889634858841872224432744990677431430979758132600763057839293181369764282352148616361804846766177778052553991752912623724785987309271553353415140802750999547775225290506028369037944441890579132614183085334727191244901455685699867583343969717864714108021854278015427560687205914562426350418177551527978557316636104601416006836800217574495828501763187714354340734205162380234177978051819451199534136856013954525396194312934760798697513596083137303834525008802963808400125217153952642898604702041319523440655178602022522795375674868631485222423237185208719092319052418237387593585387140445328855561638866632509536035562433801638170160739604584557678668864039445754077338292212659483698711462422400382376101161506367366919424045911044370880330342864495233965648295652042639022270292411390903298666144722433966455102259453915486492917235250860258755871470198218914995064626100795442372482301516935416626317952473892979215436383643525028251462311213567088266536054063858391619724763679017442638789071792921825528736701126004637814900088413671359272122534189924057577895286278160177998922555124160029896721116227963126194398730745009418911178379407245352991969006776868994347407407991912706806719027353672334372768891128188140610692700054486854792584550357121296929573027196530621835659417997316905001494760989004589255907053690164546273081161168959974445126633767771660876671913439727775017810917118154475358665346516139138925641014096665087867743010249524369995729224549150977038206869360919356898648358043938909176461122835788202734736713096478814653318765603981254198149029450480498673737398048508773379672418305655991509525935287393635368272569902974439116523841151966539799545333910130733026677511505761405039607557204459093481947009037221971692919046021441632337025782661298233181368386438498268665800246003036818482578140815150856434836878616408965464288650993019773650660483913479414880327838316689619495363728851351967886724921574262662183493150063610843140381975031970617136050702490974257760895665774619620177167891484684640838435491757487187956576633508982056277830967825916149681627734322180114254312983179799553041385938541320600417828725991422454545087997323389255223820591677199610398805487657466058075914241975252813442287555318416242270794214518254075046726349124031581682329387075368223519171196024542825881522554500496236534487856501316600933257517740119220770056687048032158294207154460825886179906595863862124604556339981174198629203825206678928068215066371188538663133778586031980094487934342965691286836926889292543246276602666974455151608426496596903818471267362960478031765827125863473731725244635742788405734837632452528799581066879881333273897110339330119213300419193908362569268885773849635594201995392776740400032973823597515749962469565836552645566322343246816405680284242400945828689544696640180188142424030287639517510470844349383024358874997877557123885459387902671130966905950126176269765451118688787958948429886244971163637754737400378675211409369766909643750566226837752653040696278055218871710437026712501050774388256828352186446741951398509464950550165335530228866252429549923621375135679861248741748958102848533758150478200436378994694343919315543543477784806721838112649334688832963489673816704056457130080791402825257623376361596912088752169591523927894602026642677792400588451577019941238287181288921565185905684140215917379188398398502110874141589607448281380857482116722599554968460121682943987668489419539482334509308438123584207049710308905240670749053160916389455446814830484931574582006726556220494681036785856754834229433595827814278076743895405612136551570270010531342075283762777844631806830800363611058823933212543868057286127357713829455375450237209674899754454686708413840483925763744181563737255666117111613422829130675135823259781490968600937015048342450983212769657480920935683771863913777268074384772876543707227401957384561074607525119530982068181840297417768637059498995377312061826969772189852567364097403628823817461335922024223140703850119786697612836154350447616214495512011406824771465462643005061959924646180785907635659754067943825313843841036019074179626560891188324209712752943236145561962119433265773557258438713436607123387999531910596972128829193284569367856997597080157355033921082311833331640585581373787187117124208607104777347323504288586962022078033867278747685009709954935824673249705992819743526781673799935059561317234380854825771466103574356950881334348152883976753845347774574785761672313970165608932288235361089187726908957819103249824683637492778095217572235771683025913896241023034156748979050521882364233110198746221143356487335545123540082922897978365778436442229885145091476141480636136559171779067440348002618240312974587151120594477288014297477677073817863608805295392102304597161402418458067241353721233838119393950801996644566074101657044244782956422716154877535668734191168734936689822710764887429710554430487548040588849778375325539468500814445267171035073749088073545279114643877751698775914700836670815896290969381114660741035753281783819696314880095787790054818394571086210548593994420948147023821632485560354680351835162593970729144748457038921884956279906707920439553194172829383037862251639560780817984656340438680578334214099876672125987049102632566400800577906505633900561250622655146440276861822374470947456333197025034941937053351557910254350327762957984045373525418652878517361213467280807053489086126668606467305995497560978368229366605590329356599800811553603059793016780716474615783397266311421628229348439544002724183351449440692939329122823170148786033684395520543266410220174467123953245072206244787528902885954246898788865248505545959673816360707050665618408932102978970262285074555925261018866362487936097680731928475482168640977349992353189898400650960371126542638456915747508244023814448339439959443494073029126410572423494848811611396523541936388858125330470195376795721481529790577143029474413569088988576684708559566141297731012219052085110676142716040299400684229991327054367642390010948291734646012302440668930477419148913436306197375615561969282672106946972613853090912208558970615389057201714295797286687880457980361196278840756704722920034104755069867245188549745290281866631535765690352526944648185705068952384097315298758393132617907210148880073451927706522715752245607308687221285213319284907688107444766469263713642351323989391279948885861406207479106920844288920776255821903467778588037310718134731165473654475047577195131349068085111634729993544249484281905099492280416226671615431737745724085851927258746604032853460742748978161290102568321633712793027739433361710976629455551628556425148463087998044116885607293044572939050168081879994541862591206579539004322712266071858078238705450817104076661893941983012895797499510225103600746552372305794741849492998414111488732622228478490729058300244740713614144136364337436778451184494503331249077977589779575583302281002439579825169519574084861800759420031648418761690037832970273214526705092458752415704377470560272828872687346176166703340815277633283291832332847652701640236179202649298686942882489180478247864878569959363343214971956902295951964894390997140456331148393585764762482355687945141122349260207545610267326374380489053627445089160742161346095375390280756542640137171596001661983756769977996491883221758811667644426673324699477306750748061737974105742636233279877940661784970634981282487761344698051415558738305526515164939730655358441362613924200553165613108826644958858521557892660688849927845580607130474733010640429656214848480786580945085986636693724249413573269770556741469294660127366065877673847780014863626292477468988515612299336980211284591131028917589654832664522212404555627011495993112959555717873907921704354234686658667220052522392121475814938881057956742442890750422062925677024006455918264707162166307936385685976476963648410912819568278177768492791596588068767119845145063928154174092662079593689890674017008762673530980595719619453712123826434300330940672103522158643229176252339577781697152799482318014313836540633744993645788174221688722792983470920517436001088600661261050429678175647621038174082895014293997626372848857117637435891051088434562965460479932776012759743145918009246935606592570260004092239447810197198592339792534223459062742189153219867694443351859560054160899559173033571246193262397837002566511928782966640688273026828995220343889194779934440393475796725739632028098632328615717716568927188122819019873563936766276925111686071737626310945039161351947347780546909399205242366874559418983851400234632732751682491865293574030587667794056663726469332486532674855483707555846766766843416120000494716325066247430742513029722150460157176772938666677834811219952949910957529978195967360621209801142641434766198738655981633728697500323432051632307582978621027540752950116069481546770789921556652677718433159240419849111879526211790026126929982326615599302954233714453624937034083784410052599333780051786477919061722516914030877167042840646940066249570008533481495898152774445384474286178490014510215167770173629357247524433419028922507226150916089723135530050168285619977243874080039974462903783926825964904814479586883014529407753247447037927845441413219938137802414176557065223700916826024116437327958452274809689951434118460074129205547573630867935777766341049785506830325868698433604060011245220162884464957088866878796674770703158739395502328353079783643638934119786997199989706038743667449563379121873032550909120951378334517161980497546373413313416581075649818775406730974567443723889825589722871561727823580120265006360715055748424200246322443916476768368043728972932064392996376270515074030796372504706962350999345975710563886339642113891772940290602966212259140258495087254162429041833628051156063373893655792657698112348971322155201037647587135395156355450525834035894455620500674261392715006035422586083296658497719920304648966887423342437269588945025941582897050117777693171525359079616268605933550735907285634602504835934974829207448163152402191037644496158799690959761884753307397413692070984098107102785065299657470182256264265919167156523731762431901271880587559623507013112400588915350789343963264085891422490144888281306278349486582183683323366155116804434960334151827196996081636823020041751515815290312686377642067853588754919563830255140660956711602978572833868161547566389142022037943795009658327716012386354341922369988210534965157262972827035094416381594669854272045259167194821184643143297079083126594154862096702973617658455860129375103752258952781070487517502532869950626520687974569929215547030146507813580399692962349287746663980279319324978841489831859946470130282061957710038694386503806853235074035025905131860032398093992426799790014066372660035599722386748308346082923264261418867835287881247463805043446891475375132577619265622307438927326910496049718913108621991497443003077991774889353373540411111337326110321061219541810722670189963722028367656930960696421162265557752103729481664656203206121591080735653138115185765857166102064248844124090721867117695282498892771433618729406704121119147080382350130618650376497954974054561555057804516958416937741944096180739976723478782349918496785510996374200612739408591647539092066113945042124480767960495761687983158018293964845416086190259128850507637634854888265735246222810977103196534045487263879762625049798359291214886816753514805001804692427887381198526518225587409921328321475576409496024237234147828803452507366728922175996608865880063422960636652136756099609627251204354953134973859290370003780395227973650711505075717097712850823411620574232809032119134364918841129826861817879990427361090761651485974993234931581504418179605554220831079498285883904070843306714129907696429791453248605641775867184715694240778907050866788422372271970187152871068421946996583557630363701182533741595484777203249880665359998875985636631192482752772462007243895901916831656680838913035322534605065193774139561509751494351607908632477396583018100068750049515146775145337894963212775033227612833439114144322870378342667040746364985150278556945747249040919357039867929063196821137981068495500487818132864411662125844846538795020927014682298000126394057169005708953411769528443802370917545739358173854969744774269448260975308817989776048806187617986720840245322530179402634103894243715266200609112956052200699090935121882046963808723776494037740524260934401391048488028571187527410333556864216411135886154302184469018013142279295842027183245033575683091903770494328648315262652141088298827739194320769912643939760344388491263179988213844975091835035791310877614856045016927783248433112606211416773181559435443022301612671915453625755699834862961395370055772745814299922987836615371753603142120824870027340323903122387205339283004896855023258851610807475144019875182010854563678641486982880964176362077439318088090476776141209184061487725176300298327641948488585779590866670183112338762720718899807980753365860314509687182925167668348383032591251804630305166436078501145439493617070133857604128416369252727129673719578016233604177964089560424152237792038729283441900261970678100000850450452090726035053059958630255984572376684808354018946594383188807173287823630376029401677190749131766897713123902169307733164481919679504086733702413558750868147716438947897005150589942604650657019128192623865321273306341756730874036152278144637422348123881468804562043259394351802607116664293185831907310933198946637206709847915231277602993241652523077150858604671484365939264388812934942728121334264512885417150320522858485228284955178716510178071950313663151154024171944610344070690168062948736989060116427641854711146756478363964819237987245966755033310826991157191622799186269225368461047302270198092311696954614874869845957504128221768147528619685789351008291878992551943085605606857801113735725657462583645439214952514136098384084177664942157778437701683728916552333688894355317798096356353596216926027989326482985962732958080114550568507516346624898927988907765094802336705144136271278195653230841609306440480444423996961631069640437458700149508309464461148078860375244866080030520841248791816396333968934111570017561502837579370602239631255078670247830197409758553142144881101126287121780988304982899787728246370943651270947599486350975935946282047860278424347532453224799161140581453222588565622522333080871284480318009979928878241810837135015012717417376144206149858361566517371380947278906534431249106369188312779461980469372203317915967312333792177600549165229031673176962004798684107584622203963734803355539201491765437087285897901664005160488399613772714088127866605652313664148739941043500422861231750744675379803663360754237321862070593547612367738165898413995567842334857151977617101111735496376316680086428904838960757185066780244034868627423328346743668642759976705754648037630599963034202715903600409491496957415815974809281295765660727348598050228879574708604620968152790885256001329269737361184356177937651151768494821527640881612858723809964103005268506907728655132021966609520415880655468506534303265378460993330561443173956271402031731729837294990900457221291195061089882818629968514481281111137994211609274313461767295478428284857833992614333221731963405205712726855534463238660573764191763104178051594677806264002975482569138054438646149068558674939889249337530671247120573871209220705929774752918637339474873995020058816538100410755992611567512477542597115257588167133203131465011632745039288117852044737345724195151945269967190268575447469910204106842246494244144239749741909190439766342654512162622541313080514592788685534931565263955793038776889810770727492232187100706206779054729635469243901182500119163106759942357900734156534703110869830163743924142365863014040417472300837373832309237871373514372224239946811791382280607467525804286589299194548432237366144388719570103676782133376304541016158753682036157265579120287902072463308469060614970267710816251370383211170775238342408218458571031658913417842295339992408697725278656046416311572533092099513793516969475004314314192619565599251377515968857844880218800760687897975476786652041298816198148278111611372049470279840967177501493308970414341517095249681428603669762781361015261177838291587287821340197293065561767104769987053952206021335436143790560288413491413788424260683764466405355917325186467643202071099236205317789058984739486637156720799593420676564711472675981847327279564622743610416318803873030166325866144676863662453460626590872484214036118895216400534193516618843997294811393155086479523541507659366654151031238066110584666892615257346238034034407179527140245400194485364821176693614060756966919378309636101893301926147313569729136834605142569357961649967287494743665667675589281513877547034898100302936685042540540975829588869141506374780126182809682176247825015560234070534981919195702886980413932511860849987697150431026962872656066239905551702029210865220481734642373904709540565961512489963503756049426879322683084582359969171137469651387017941317635775270027937762357435786696808142853628321671475321742198844736227191843681372082128658217329311684055222643463176992910489935529904874382640284594621545583434325951608757794189968492286123801865538594805393980929488217875821057659273141117201528399353059016346707405411908155181303969734671747686147123119115419737781597403073867210186375759574174218347876139078529852914721155059215714555943726264617513642101355640634592652127656034367410757652802426648320428403902862242824219906033056302470416957595339533955775758721236808002774191535998238137212595360540362442114356452126261218766307347906423238546059468319054185402084455775524534053214314780432168521981871719999269108858498200254738065052711272868769555051198954388403446239553649355407042760430289054748019559022929763389382951493707681782987178074493211195401269674710091842570796624420540449304408431675798408930358256427512705323244581423073168002683467145815310072072021943237159745855012681077502545227981404181145524991557715294207263041605749628031189921182273363622434999650951403935863397502906845915423961054529316137048064727717765938787225828443483807092557432670014253625328878714619087965792836308518568628864961185895603137791445008606722028934776101660945867771410418204226043468969443533922143811765399022684508780847615782295007134600925228334480563274544970027769671067369956892809542654690586075504175668298913480709885763567137874078905577894098346850412188437159664713868128709993446827559119449577245651353920553037788521238943445706992376461056745510531531190933964831858698874196615236179046230547662830927319450777473706038331324652479791412668986097804354890660867136465827658613912263155017947852086399184692559034205593445945364170494092887232036687045529802715514477553406363366842898083537889498929645552670182611480104394222121192035002873120750271182941808869282058578194743049787123097406025662199931839355886518611680137660198913785569735725664260592152640555782106907364233307629289142634800974537654591132365780943828143368453592333487569301116215490039053088428042892292338980473436468028878142842920054223245550307625103271375838513713105799707390815795630749339549348943714550009660158588343665735705751541128551665280270343522273372067576712326712895358125447773299185417574349794850765101161108741331067627730161314294027433355082726008303173596129705193430785389292606268404979575280872674385885249070290620820290992334070786606160681596341529798678796541669644973473598891578500817534819758488008358554699894589470806591797454683664245138743060738985302567412956274262053180268296997719642682615775634850952767166649188917624758965709619888950302144965894729271069630244354839571715739566107258454868324271015720835667184657023426880447193688230178870766876649054906128419157105242679242188672152810926581390801578719567523889626804132021617950334373698820694643708599218795582250200612167278065822392313190609827283982876669246681302331265615122175495283849956413194568105105214184912553608473538127962422160453707629207924743773228408304902730911190261960731969154092172038522032312318734230093006339942639743657395408621550815222733607482624408925938553751300265125210979451572933928560335864656269119950971917483017853686880159606164242579096575239030309917783728445033832336591327680481161079551955551411565832060009075684739323711576747222972892962010215118393195109932095523051215270502966819381445578204689979501148059901009002217995734446114530437912135992651766899422118238435627649870439776671717364347051454487228382218745363545733575139649515116441518149023402006491437852894849491526783630936365255088292128642025312545440460365345931792336147401437880433479758858060349770094467877518497904559108563262690248730734023854522292087822720278877392628887237201422626256125725272460629946672896744770531816964046215872158223351512352728103645385805960248757705647909459306107474674712413303077452664270140297694166517663919568813528967127456456488693948018198106037146417323754999231017058130375605150346022360036217647911924926738454459061815309649821363919056043944779230041831540899954620344521336762605109669857346832804352482399215178692252949857842382744588977522176413266312271262155377574654793034737648829556766910147835594421860803026287582500369589971465980621746689027058567529421525185374789737183998495493506817665175227993035168842777032596744226299818200890672925808806471114389742039066086626761325145585815791495086298631288230871487843859816646283573420654256792776777258993931430621319167678188522216871092880702081881115825052701196119412011470667386498657665125615593740055201583474895565992047104963603372127267086628391176124387133999418224905767753547669283820804873402470929413305560317370620244872958705651932909172834970810407896455829103273840779850288176577931102335599561548764804338371671014103755197440324100702715852570222815348289125751434690956652570598507754762651899686239290027487287724546000876207400153782263008871842101363631808351535105747987714930972412196080739524225116221141634960224658979537215127919716286057363558855571053223180653010609030061498641406855943949470913296849998139208879075363574513614548522737373983765227026247997470275983887903737575546868456910800008238819480909114977664582434786069514526081842649304531766508608653605115009327168133463101927714935135388389653544020775886104836553467846409478681195798198620937869945703334072935339213931360400380809228672984640290228259232634898998754622752263833888035742863702864615910140625634738402461723472390948067085814049548560010155256301327661860295995785472128422058886800856658331822359220296604865999805583665233957215667345628026699716318709130026132374410099432761230990348946024763231370123487279030956499694279012494401191566527535170596534742023651502628011061680724536276061061796823204136766030856325979679162665759988192904157663256505004415195437353085428422991673791351012968903759019096550007673562126615638766613362350027353719995589013230631044962627433070074480656683240943680779105427474765840571791158030443363810376860915350945339138771890956071224943445103296690497449116132128008256352250479987464990558766196011284361936140125475105558422739628067238292748265795653111605281626267166497957540677349888775599009444351759473202745187375937865869412514084784796235397061874888277996645043294850260872635756449754494410423882923148678001735172165433019413843938060763423953046272469490413209523402755468697247454293808892977098213286715691485353717078036050934455570063331632809946837682956800487046432253773699448539482801219991504538230310956917135976998453085895537197010192121269867214597892700522158271323517528401712689893759414999079215559842661594927902935045929601899383525619132904262710260025171599449547046477382333417554392887126167876686695945918622439055159608866932868753215265841488663729440326815746646692539876340579351541887303220621790388676612753335122129225666708268300736640075712550247466044755351685758494730632249890472997502738297423351524146035233133657881019883958453621334666852887583633688402523789522311654608361823630025327696965336441690977884185027058500354064809652794382338617366190005815272435870638036590285256043711105398875907917959821005622515692954556350973446840331666057197817943413363080310003608479081705730606711337888795054219883151621653123040535158940620905645252811638938759278525647969972652909070282861473827889756826151411510995836603159666716486759379186503348923739584805038882851218049165665644293664645691570282233536986556958103442218804173442364175414944043517986725716026874005324533506055225971145474126281497997400666440379725980096980407924760183492288626323162862924785042371495511933097799640086382514323935890966595127500067247731366068644744038541424939130659686066508655277665969046023573193446877693354585108722981815480280027561974992147558263945344970088440035094517337295212166568596158603549655089391494806239845622310303436268488955425789727520681168647837538960460008330578971681804717990708560349872398319719609093651372395889239182131583357441583165850108384173038430104226078007559633938828297799258646908088528888554057319016672537284678184635900986393158511014975803678221942732344715785470551290836092114201522094069948269855447418907986563287709774870706652192567164919534519179303196351290333695976486919639204143421600661187305745417892885098292520948514212470438281084771650583295471545976443571368997981739072424937182526611220764340725757801435366595419665344023762875942770966396207648361599618620923930668914201817616061623143405597427021895291937258410220523683013570543138156837450880965734196911959541489285263133267456615114792357029334607245548731923510274231635931915649329864573118432846289956000831973201857521120548444369552044336963739876659512180488607408065440567130496121386242541719945383512152760119120916617607158595125782328733051486342040259044002782550044372030922290960171936499831727712007101790441704489966486495423880059793771590292787728168613989215647538110068945232636183912081709243232882950153042253518457618567002517133193016005154838865259491980056631912433781644958280877507603349442591849525577258445120572497985747137840103518283732149488161789464819279687934847699032832253671801330013324660991598463400594580181964498561674265197571385393660515733409691772432665895682248070699209481853392123838588210790926164579672085779889462651089724154654225886353214264279234915813181998131413507110174375978071277674496516282344657707190145049238531860484356896919479303247304600089001376484646615615306939047739674582183565444250435339862529763971843845634751472197382393612333637164017180210538679271263638014052443992234745764938318227117926186551016226986421871814293894039681915500587752836466636544119216271077440877716526327342769269402415922865388651525571937684883683687443688682560786419529172478696529609717105500593570802152238493684776740616365154360917810480359869359082909483401174347190333782370751861593385156235055768990078878015391870356354964008986619974851179880481433934000660477298238190028544551830350555811166131373040531838160758522345648839013552659834551046195225265363412301826773815267558706633506817641715846639014337058577412379421137638167124201809292213298265135306007501784848187531080636049442893148236227145890999906679017022866561526092194080679529615243762370626056172473829424055976708573031338468777294285176914638087937800572144503502776206004254557147751838813839194852340417031274753460094030458401106764082194528581643844067295003940988934740190977421798582536925230142219567873458790329442429829128433646782839801541108151191579568641636823385535703631921478250870588544182278512100558426897234465253954815469174091150284271739327950846831604217240311191291637417575663834590114672893686636041480223528336900533440084246114446522535466804934474293214441828873779972789606270873566844820726091713020640692836742245224412331082420569687525104695517633370487298287871665174360819024967897260113331365447464575813661923859797577394841100788898336850152392608633837741186670666691666072849179900211590089161904089400205895169646812384588831767361579529813299715087767859177989093856623098343943289330398378274410118234290928377083465437744612550639525413615398761032333957880037362257083466956144287220399231488815464031545126015666157473600304454444059124807370958937506716805955921871457362052743472542755755994087150188874435642116637482712035051040359657664606514899536065914225773514516869355061247628774536633941145039792709373302721358501954576560062705206178541588830212202262235122344451436792991572327617763846622283380679050642102969920783179127714026763500802838503888037120545139215828362230013973369570225691975714048543847375154168349701759297947372768175030706944406700817336842478758654454552473283833586227475187498990122090605286872338569472853560788085876576785161335661228307525854561084568374870765375993608871362665494618737277342585061534822824660096626569485911327703248462227645546311759625728086598480545667875482504211956850204016563967623374467127025870450970928399349195089830370366837902243905841859509701111959468428671298050088539101446898056250617043852915744841275879598579641060799811150987952319385691247164487092334470300609825012573674488778250430800207798930316079388811500883623888081603496516665979601229211801598271331088824849724069792998750251683441475742479104764503324856287183592774241791081230388121150314249194897222433020775729910933974344456595355461658283754038338483581382452532891572486142009311662029620858364118912171782235920292591732818160922987166611480213700203263166400106110931728937074121643961843560349049877018956379649494747430549904385208843447301027752490760173148865279119977748745981582272847197458791722847001421377160046661696148038386504487283743730987596923401297416151434675808012144785950574778832529486544119038483489399495349246563481046720969250656243038091674979128471512764243073193812454449137044430762867665358458861002172229825011770588419697766605288509212495721071167846590136901772400102600427179507133372850763240538242380110697586579229046263702813985188466533474407012194048263816438332497852685334176352815211026402518310209256468934062060448981269912527354495968652084445384295561911497107655947742475371811932350498370747353711961589609119859193654638453032942132990790924150404486097979398042863661780844949427446421951708573463768078750622840958551852995791143803838430755366413655554349780973337188659745548147789768003603984030309784479757446859742903545455793863890325138831198968698486208270455254464379383439208491522474762529306476479442716805490953610132540840590737895442000289332235498577437397755319637219488651617186369360285877828364263757533918519452132584848527411764395786908368330589998796521687338958636420916347497780546776835200428326444538565347532423996916068241342965485842710858569202809081079433739872007596058571307777714057055518592594409378184341080825138790431595304937582104651114735361099778709159666745087033527192979685884949282734535993054780671841038005887707410211717127450554333422808146834119839900991087480939903042906501975296885723232553895562674347893014887731595109106991333149507814836915955908647666239804908625803106310326520676807169058668941983337751617279102430477301054760818538288469996274677969687731698450069012200976385773536126058589455443319500138662874561671977256996926580262498928952017155284126081385158716008299720989594908845725021085637247732338027479683813984508184919137297809921365354430528172694606396242351380970443417908412307300090758593121807014975662933146632789820234572321340654674215451845663903573237906917671447535367703253260646017340688866508198744357093658134273326587263926173633535560455368188224970666583633396272941874766320709894939349865563884736673980126345207486584273183595149946681534330404745515655658307083414431971885939029934944398837490048417846671945742071513040777899658170494814466629376761669245156878411230388146490111940741798975962636178733758012037768308701383982703263676415364907309938145596514011936286416262110739726538110012029882866360074573846144584754800821698616173759090958911493362839031957881480238187036424619445627845764250478713786175905074108864846731303400484198451444761026097561668338749805132510648005320956654362814962068239288029987495225185709656302577095562808718601761570466798954717667205175734418614605828567410966063641330666379283113824497868239125993693967734496149115851649870040820140673348583716177670721393741733401544384908183153430633097640414511893715831337389569965746766156609461095054562476100043100157475006219591789524627431065797080463428935758877355767295015775994577194983345396470959842867292159275985072007959973928164800500288587821033619075076951098395827381568413879618043689448336091633528410690856804531494630640577960881847125035666090248866330031704708028589039714830197963167394935848756763983362916554558909212102397141711564455248916080874664956327435526065970230445999598957111946450484093854383933176124233630290473943942008137726405688489227189357567101634408355956295917550130791378455935152071488252387081159386777793683113056652629532785470235032495233704402592424039947264260184098956244699091695171285269946932577825261969096350244825495098013571533002128805992994588950973042699018102997034912839465835191151994121092499264631491924588277519606479462111257887719136548318536899804340476204107616989894851953200358141955173544516483028233031136321704646126626875716072501343853625374685709624320401725226952129245898583589063951781648674474352682795669343041341115221083790417368538344295982193316754679483876775592364619248405465155719592585433942009982987463801746770572148357609209538860786940571469189046855484937758685010097435083924097870328942581481481859952147039241105230179586842866545238938347608573932877275003268029078742862606041660692777029326094478372265425167148155919375606480692938864053601436140582718937126505672729255314470992936763412514907901668907894262904414001552427389631419721813431973645447175918258481287673858055259770988602703146889034162070473826611464160041331322470496799014863679518906291675371878822858170610373714034303855433155245440252879334272683426060564318207499680916337655262869974589396851996415129424176254064973691057491044335097333434436040637849265667063867088654732878630081760816173947810941995769705906126668734660096822953914242696456759382215718919054306111869743536037062473268193928504726320660849062734215144062923926255179346050124356952300135380181823815187371531514157266366055993452496074961627115558884726538150305617585061134716301709154571829007667682774454936866644179768672873220498851208252829955688261290442513094199391474767207389003201814050167512209532787954676345582344418193754541518638579038137819797053416884726064403804334875137328453672246506122280370334075583983036696277587464366462799682972550293708886947149534486821892001109703109382417239943745280658200563986593081652636342161115549081768891728209352342814796989329494266364605392196444034393402528528229933309173708338798966958688829670214013944955419718212756054595796989473090518920267595265511081881050546651755125095832354542179496538462077216287745499579897754039779450846567417529751544844156681527201134624488030134573291494434619666148876926613299792149105587499477735682986204678794868677408025278738302634452029237783849379780352854093354170440848683052475551913128805757158181196995194141598563148625695234709296940944225858650601168419766776178056593239630164003032377582717688060607928317077700267115751874906717617176010847603816424460039254327896537090902406023031393499270853215448058608650724603248925282946714956234426974842893936318845994148530316799145389492700456330912268665687936352804238392484979118803334923843159130741457822273718000135007706452672840747962357435716831527460780773412785798502157162430944721400462014916297965247001793516788140336356537007979511200085031242919213216642952963698600613802467464683459878090347076673690856668667410032460518346290490522398861102300977512322017264067421980041210938096855309097926870293778028978743927819113680388956652484972748321626971829585392258727473072499298305768000818816342252043207494960282679781439479382440306711767279159338154623170718786879891715100627865629632715621555937168504332012548492272999760602378379234520281791513270179686590199906675907269327875095030120846578011388210134003177607243908772927284111993341720957345311745617351921626907568512758316286816949012531798814618111116062044585075435478355695454603506473779242714937099459249948349653294018413099921190120876953554734977021285752377556808116472249672957812873481901602710235516105199639653441770561419437179165435539902994880660004530475015473889855492791775338486972135125016217513474467121043629588032301558562415436383550052270555573279551890530777954239309432326696851730909184821003873128155155175115363941205047761566469886899340323489639988507853331675305643228913014629735833298018149917108031502614354764767569748528534866710397993435241428352936562731478446409954782061341908339460235065306135427373800374619829631646540566220139211111094876313477442053828587141706593295314586153628296632765898968008496595231892984914265216814387123618157623933339644423891334457571716461494242468184178904472553209655603955446572689363590852793618116048034074799148575201176572505620934906653090632206911116617678480683557199961734714598358057538772734131373615396216231493123121394726496897101019045781153265338266657300248864307908754283360522350520097085801686310576761510833298524085133803515646451433888803106301132748742700222462558292969946466721904020369510509327404853235888842677292620177950197735618149811645561455106480957037063321986393623333071421799185894742555769194338671511324270963269996100870421558973381934128199406181515361314192433618342862963078943646136642615939966325566908115400093141560446829899417697475888599951262660046905862143052334614672507530711668411216951272499074872229616503947113519558623160404601456140260085430038978258772535199719491962043587585613275023218217569301266057987521094166150979477744889526340755563439100033534680532486552421145617464708907396102969104304715257460097206064709620266120637692540176756813238498488837598045731110147628678276568250474105021238518730360221876667926831804339425452900079142013034547011377865060466092086133248377287565484052319673502214819436026752109489581594130932025960623784900585770626389435161519403215403482249104499182448889487651326937227048579510352585472007067436842849824721996809784349593217527171168258709837531326727208415729590145679794962797405229631047651492124095619776342510483133457554286588045950396827762261572364954616897295786359757085132520239445177700097059971996640399695944179086933443913764086972703970638052326620624518168262993131111429508385659080077567208942011356574667964393096050644356825943351085132333988484967116388720871105457961542333046711588824405745703907499518387285972024299112262775225278531506336950341791796693919911094570462610103833449772415253333414213336168832030410125862113371520024900791516318130668820159011415117159988187520458007554412441246450199453386943249827589830022921255607264430801538754126188396142948515399097833206545383665217469629589353567879046174063441318428469192194307527944424413652113921565397894230352318821059299557174298631760180765307284861130515363918113395569739389935571181700754093344441216561151619542978101793831573306856307430000075575586837123336767066472311987958182940815990358606365415979029959781115612680080913448810996617166502854422921957320699454748969961047248657957521267001519378192091875002623261396205928364775194997772782306524845671989681162519333251437054767757464316817655563656367071458530375850545114299602244033052799488068211835481478549544336778478467139158177029274358776270611176396789563648844491904944736795946148987942671150527414563555212712957378082704703605439660273821305358019937174813980697290143360993855818288285890372123790109869976700787740168128956478872673393436499221906571030576038298254637245398047732812255586017295000025338306147863477935250096810750042888083208716546607076903780433600354664641320118731630218876413097294567769534329822750000065604315454884113733682634918438098781580880713941304274877898342840679680042478987153423281403106523057434162910661522352939375329863241364353760583865210796918384817909199363709601569107675161193300450767565873382317418840111130708852971376964182739077549437034242024574627224699547936579063239095617456675562619350678629976306620124200893387273700597615381398160692445509046024195006675211988344428176454738008594622974591010868743946754459222548492401320098349357397226954532074461751961611363330389037730182704903216588211108528618317141356667075072110234547253047328325665331277204368514742314667911671329577451030012651017365398748991601190539678640933582956957677697118321599033597741344662201370101290204065366544920687352183037570870565225159664224353336417386562888965915233775384188804284261036756530628829964916365717538168017789054027341664240066438908420156477882266180494854838077344712751961287933738590971734359369469803492496562936471923141662303028329847472947049707685932620579999339891503794020628822103611510306040659457591819732369837526779929622939949302813658290989826385028338521873116748314626989174578547688942088000731658457855072219802640867994580094617322041880898773202517234226509845975259434133416188500260782525136249738024019576545140710031582971550513499467392435933623319436725212519723924107523573887644942688962683937463622565058394727083586876722177930056813816542537607176334809339619116716988177240381980807734168316678837842624869868456886854077961133349743279059541782029209515275207068804392750336023194392123087089723451236050340829681064678620939388562762900294705058682902254605852921020441833862439052436135452543170797265773935693835483884417824631099461904915677684201540255923888436398216079122413230122897004009455851423155213641223992258978444441513393274687158829415429017189204725192593065504324851576001764529644428663680299941212314888415829198579414800972775019179564863353180546190398716083453383562545058027373545241145267187859500646694278413478841152426577355359705669705967591586222387087127551969928175649821409579724423012143415685048418854565004465329380285606017964859390571040315587000977350775249810442196224686930969356333316875283077413415033209445361842051197795067080942424173721704441264276863115580303340897189995976324909138306944702335390378391389411389289967293770176256535973116983482607315761949553335738487532276319065593355999230664309916148382526698393488196606577133829600304608460242284766982948130509856111315771092827963636107461710247084808810490430551668401085925418627037790215070407114169589391711439523706085163794869201546716947828110066613920169692019739946600813862786365005120539584312625189278233434749111484929089549867182084089287410792347416482740431790246581123827070516839518913878077075035281698242262240058790910940608418394736174815688769007492226731030834088214710843883716061377371192428309908894022958871834272502945745169779273294615575222703679225492569115324315617831624090989394027580019299271570318413383425589726588745357633376729866359452997426013401022509515771292708005789672483824717650047150715974778726131626506088192599991299422346729673356404285594405872136244244257708858364426185922173790545899287427924735244286078004654347774764637596067067431523530358164293249066108774371852472013981517024621461114644950163854695619744552137287096879700285628645530976907732931035268619418407741923358437405288450556174388959872435005466107465952782125227848403070265911388472016667871660106618240384860378674964076006948770290080120670540749917649242663633057402303988445067945713115271421986688259071116292997553552055556649958154322592325272937749892047659405011893052331893737126813372070883413235152173777114913080574183153293596547244645015237882133939157136578128884165423689822898721370236975619835705257688159786835498570635390771158906538534962057219017652851992191749975536644760945964579569320679499882731945982213847557845936469365067519055814155312508001274355079834053261498213175485679217873595363105192167701196495062322968958693038388465448173982774851882523103340128033942038264907579604142699578245038243312744597764136170779944443000071338544201877085123377054422101059140554530968951611052674627649974070472933126643749295246510549267991908827605398276948262789526777894309014847439096457219841609651497540761751901257770658498527226738443040029633641265877281167022632096840088020460385998010102049726442442188295420030624326659136667909457133638785680888336454015848874881245012527982557247212959303438638915259088772414224302484173911786308097513638991524693482032613041168808561760109711883964348220849146436548639412484649237214116382901644851715269725492558964879844528640523810328898851790702763032440184862543904760572711335916165252945480028972748268854680064412114000080198068603746542112915111573078276239052514965553573631794183035097099785292221073925518700615378150229984093909281165216368269286976656610475400437904160289896552290664203067208767195183524340384694605378505981940889616276698359175907793202208875365843772050711064161965255366019181262916285338639706857086639657903196270553119628190009029915349341214497191558141953822737839355732768806274464013697630032632930760541492561610371047301004336064982789217431948267768686322241956211822694008714554201367103555878006706218141928904888232009009893500956656368689037279826798701259060963210329011333439732580696061616533689220085054528032243917542381414628713757413842982849296271518260738973252248599054109169514891008711469448121310481060507853281457564527523303944404763936738539031726727301327668841637445170304720976971112606994364794068025296874783486656344279221133508180932184162827133617436670438185038872613236009175935030455626721867276031135932681423266529782536796870845529755882410000021004102852468033322443890895099769115367914133942694372624658248676084322101391449410190420135789952326765369764806675595584313577489489813724061728453552895380619841586807255964477752419926232301189459463462009328633842706928302273658776442380391810142577404603918556292848126809762922776575596211226338132940319329194234499610660618409451586527279328401971159474946993650273249092042331004733812397632796208665092034208467024793809029876390864963780158583615211051151375180883410892484560248025800107887446236255836635780307173778382107478811866706228292429921330561725391868788980910174195410947740458936675312731025099371097985219142062327493773094495635974102280575075905142640860850565651555828470097057700895713229423917623947548565083179060206112443609456832043439208608597583600988611497433755685135998643216184621676988190674111629089795898617765994719886605497488708872063779138441528773057009903586110803200918319448562944487212056911468886561693329703194855520727678540190128735369732203107257907671828334564988474999153572288964128357140488644855349326556863457049663980922231840660941866873786835626535970597809129658315812869016933999073318054373401260836454049121933358489373517253855814835273190182654142603632600273400667246434782787137222520161924045007037350868625306930058128562432103891725567421343575315758977222657858424776271373283731781678705414773171822904512001539137098303114911892372861036695890023622993316015590695405781250907314036345407870858685873922606829120457871658379061974918961314022318611111518600921318013486901163531878749739251860937320613364830433437051059618891178269395033947763320049520920586415212693775057038565569565201307806254920222767093715940147609895232646986447659005207257026179660615413085896462135589944914137484434529629818604418253405065337043986361321442709385554593548359276156978832398907149419081639251909817584562072566838440277752984465883505361444961533748472478878034087791943451674787566349388028109961978949672757204067147725615490875988496598389097675118130706972583328796127563686530993251372525106082422498518350877638516345497334503430028558942595271458968101424856745778878550430389081191631347732231755451120583057354596678682304746084792973091572920507732580137961603925537730408252235619803757079198285721974502148368111087641485735613238434944719999855659072342925187096008271154812511595872506982726259241807793237565539175204495066654926709674593707252858406098256711324377153818922881085351329805455556891731074676381840345561766660777598632996407391895379685245630116644294649680656764980497563829940273920720653616018405883638621024955368982444562280601656500418316539802315902428314820347711602473865893962958136787990688326632692376324498613773812780199374431054372149536344833438252075488876238575025008982484242740577422660194232607388833574237189505837188163096842240598140260641677720242235564380478520196913960009185857943268950470049725222315741005346421152875883563855122110763577299867035596652808349716560593057014011133586654785913930706089624975680456463826362098490298213584053426984269430651426459171284979162627485181647093103941325739274399951250288133730119687746837363258561042301474493898448792614925653310601300592014900602408920715982902836531628060733084601072950429297153395826126156103866370368271504713295822856873161068553909307683947002301579951650853101468315918848822852768433761078565968413517806764401402078969597690048877264943205898554071150931147302725762377025501598002720528946911533569554860599426421143119628316417334061808861657131063283154017084971923952794300739575524464012325080494923735026680258432690029503262382041993736452193304407414058551542574576378781718607326879104575158258020314161527233827843747952121905391716427339125852818436168137667165603683161879164660392756453760378697891239335749443895580002351901976607733319805402092719988535928607464875193807717140124373567707792125991238865026405201337231205561225268403606653700674525366612789848873974537220098786421243380176894403674489584617505801069585905713857159769733074489707706450973308978269060733163124227034282960799963036759673350625248890910589419769484534844209284451771962599129957890090708359882475762915952759338706440638779114642363886520240839457614927648933738154755122200743027363475801855290632160960577707372889328575968542893887114353961399323442104927027872536221475660665269383839664447662030502558936596337863091233506431183248147681432723675436205003988420722193183590424883360647288937782725968515594681000785360007181523762252584424678338046481482117633889765555033301168180748172822371838862784731070879424352890081183815619754565017666062774720928783952085700068092109774030077931907117268381214012658463692696841676167029208985417552803246480041874566318468887135401112328837528025729824291919044495502311262668227344159079700502850897202588321371502156670257960900137953729185044846869864153687566545341228276003395740747664857907675196161493505272867044388639474238095375130041058125248386977659257792459884469120811333127515573312308721604252575184909333132766357934098457049944384603946570707960700529327157493635427702934534854094197959587260605606081242897533082210347337258820670293146022912339676346991189434805146541927673404719507624216683391141454470224044512768655096564133639431049572765627973899941635159833611538403299575618405504379686889542315242899014893421512604027970324760250419262703254807032218190300900619945077760960855145932966972305236072360375947571782290033985089893682356196454952945334130665427122071114915534210275523403281962812071934380156355177130902380779136839710184124023469527055333070994515874247296286380879693191113081871403409979151717935416256964518861473577705859365211680470950056242190494267442717596462242788669213133544807021229160962599549045901161567153314367273231223505182658208599888315031141413482022685764990109813656643133825371432649469248837932794642513479937918703443159194857003418964574810705467967420907131373385947844262896969233065293178408758169190592175148569962782141673377328670217783942645280780905085244155908267522075024143349534902751774491254525823864479666460050491504526691948000354956273121825670369634795326265700111817977164640210447018946233530126668771658268066170229176450220234989206887848531663893202463602103671564020744958054857096891399981873791017997524464179774122961817099940497189759561055199439084229448373061084055759692488820682362586571639311410086687088222882211382002524598497753464658644709050106332887843759649764176088134378881814118306252876869117219464244488253976113832211796600746470630194887366913364151624999017727676597698659277136777722015592466880598676916388836858226028183764287309900553909942783884976256513139786239396280268214046685041034876990209926089313727535899211530606277912702686848854838655200171526423059950395844712623256029754352617514924792709982011366798690136273301401678017880734989001886898463752509814093295246741978258231669666053048320005784862712946538523855831624747496585159501713971152386923383172416124524223519987516755962426697885118854357275596685545452032662296977024006320088882128526091123269749314964154739025464180123516831377499911074856970727311380078297270476323423959297300508041858022992151065935898881138810733516569247429196730644996899561548449853381476789547431831647516645068028673787540675268049711165054970050792841038955695348973598472909004190146480244845252052217821192862452074795123740766006159125948081028894703899483100523856911059369117662005807782786211319417591317651277435786962285501498477187991822526939686216515391546922359378158178069538876907833744867863695039045561343330823583549731786332890751108879201619675587308117861423845357078750210164686032177139719291640104102205466920482552257190228514627985429738517159474758523099304207529747311060216887703963901795031757744322815820203302238454439937476791089806557681743010145588196678250001882575242272638384198712147464824719285613874099926053895605613842313141615172111104738161574777687251874721662678441209375149768244598844853299902018196958266673963665692911492744038722893159757805678008104725125822934429850605767055138317686955911302719493165706422821513899468770516179617652521424920001068970344479408496774502062702603182547717808503157966409492554199663476117553520883953392962632794361224811481672932761042104609697503929049681754254545940089135168585394341926087723135477150868508355023864700463546633816922354259556111705274208898900143726079326465634370451575279166981025506421561249396118134786827472544347316922628336811452649654309818761895347173023136870807212054091369942658732482529918698570164421667741040892008179516749529799867159832031626169825840472016265260138636952924569727671144291994520562819073203388353981071366928527897432027691113039665232496431384030737738814262548693883917345743503359979062708839977357493984756601659526120927651844204466372875438867815661527970022322977268368248655896236318755847860965397660913208176409276778889942692052102807365999880998664965626971039379294829840946114244015106201372800901253304612000849465503294574433374290812091623047483070099393276528828297993924144172002271259772247419103549357618950879641066324861476016523313863840232433272622440044383653244448279125571657240197242455221233782480996923549293491753345024722981371525378081190684333738755496036710854171612418064366242602311129639796516555213015998734897170898264315386824798181506591562793439836258429083759501537575058061954768572663456667663148615979509282583611716486643646075204312910533209573494557777624528771291923803439865970141665186178883709558658255540276924259134528723051985128472038304707113253030107921641715717109955777532950285340316769940377205829666999486901770699096359826192739015792799558895591489551990990749194853100859196409318990684760096825549784373897573975850843115185405969560543475931965614043324351203638240865514456111609358462987193526427485050015138347786654703513407047412087178453644430300678459099416795560377847022620062880441646435827752965550811338537306037897466561852705151704881178035208864022234982886823793351857853502369183661899722520555324818127161627182796001029540014955865793969014663094303767459297136924177728801980979470468848819687816206024437551306838912537170093606993703475666308933256164477406861773377085050198851353580729171302106258762135212788767992577222415001923819915861195212855415906235674275957184945370239997907268963595200095198713014145697345899166312394297358051499371072789689167317005790691829266943767130628451358021120208791757717290761356841534627033059503923031488035688282773815585061058700333216901709753226610592231334103322762692822097358673811510957846569780891997522412543764238548603469530017362391999275992580524799384180859744625692086861380451455838795517581577928021832294290941952271359353771221547854548447185258543639380888265058559479004775602053220197672245105102237302363675501141663414100976966279261599176636147964165044216136290549851795813509686430613278686378680536948767952331419422970001624469210715597060199023409514736318812574598307490059737069218665435085451289341533480638324836316709580871006622711314967548908468187188910741108338050709310818096174579644853173791347502509482162395770128241446727714450103827414445786246599773054135984284436418443939262087265333441251729116207003649903120915476411401661914342512646980613320688052251208067090597855905775944995046799980750394706909433402150340289093256755802223272141344496677167999020892050269705289846429176656168134247863848882532586011947015819510290135188347258673969179404348923460054581382629540514665954313637874092794410691787469885125604951393421904941702623297390170308957358961008357222757079386814532826358005688145342781216730680088235167422636770264972947703795014593294759479400234519812251177826680172863951103371495493524211319016247964993488711371637342402694571650161094538587621429450024693866517542730759085172331105161752336382269146960019331332613140261460307230234922862071316674752905484275413449291110525929830943366411461984612582521985549450383808738729416805756469102065834646351704378816514162386610295395808216988113037060225894157459930513930896114971133493162649943506013402699542859007582470392921266572511277650039951232879334053695963149317957470703802166836713466120931557357787685421852911331623850371337233590942949086531635427023170359257327239700814882911105291011498616855271530738802266187603002132460840235339477665689462909443755658229664701503580067392815547487418588138600043760629155589974219352275601348343191141584186720290073569401918127285559942538968501843128745018527859728983412628105327518254354875802061317087158170373121224095987412903061269775370858738615631877996107484429410577781968618595889661829310784103614095421114645305860132306477711342820101214207218127422476404414557079115630142080256709693400177732008912785156839334542385424523776546338565382000344934143779403202073847977413591459003943234401145560390323158542266907486833102246134911481185321145266468323580836356375278714740623559151224797266320868530430121276147840304404645546386183218743992522387426918541676078040200278101534262914248256057811172467364847393851986395103233954759046442809617526200098753904620201721058200013253266855862186452265167180334546528768186084804790720852721618664033074186697642962253518052608619666659317482184655905795429233642004251853559198495513329893433740192528321665099659381345630316317854670900657355837761947102424134360612878151266376881954012399984577076591546321657525224712936045313879435738063977644717064903386919192686931780749712675723292193562787687327157290561926680902138320788823546100657451385294636255823377325906086378086870721250631606760312014528591866411875517866501977958554204751850064158193817010511283672269025080789849061893627842139612434987718113221013494079254436591325823323123650472745625285028462896808697368345074326819938978641111881479206538523454671991790867058789316403678950220291323425845844191748777319239408759081703218522517072441897488933155737357825190159065699130519119011119000636555686434690125889858180465626385502980859980750504156662739570610392570942055987195901367634042071465440687053614155321932355634993875200594629206390859851010751076149939808807682337373186388476994456952089017289922006241593893748702896261288172000019735780665016377767509767860164687700530650264164744507350749948459828757380671095619385790327091879843265042998778021778219000509639216145223835540553075684249256977032790417864442461428575580341147499856485951517208074030045460894413443589029655119193198361963945885149145103058477742921777721756900279363505724607122630493228968997534314291810490520339253166941104973287341541919706196984107623389000271900661513521996152559445704075247200702963658189155801590761794448861924203659146945276510628349664133283052250198549408631421544114473201113493386647753339013009008351937352954967258781705228476900067526985612080564979113234308542713399297170062155796175571044365545228319872559269426610003811504514692105869495860268529259101309070792977532960178833060481104596459338592245351935497728107982917092938928174496141896215280213240799267009208900914306047205093121025224506138542060105044048485493045992612993132733830656101966390640557233399640669374997686671676895872551531877961518458731452113277472337301060905426525462336654181349647306811385950738090399940185089112484030292629062052238407130832477402967155845225098248653458981975586947598893861744384690673835354498432842901344164784402374729294888368515739496325739168041457429107386949569790059326773582204189635290677491210506647533370438605300765653920102622615599144045685192160247406805592208492423915023532438925906573685637190885548644935483919952985640808001182732220987290639314812323263088633590294590120245206827080219137028862741857290894495918240973033591742338860645336681653999541020668304897385821383827132454673397406592163547487892028014217525712932868708625079141737206787334356577938547439529197064429928865342601239380926728297297526195748686383551368642263188092335736435163670799254074674295094860752814264832693388844674574994600605464065750090338753855658032715883721397201823304114042156815284670359109330924702651328294784391206063853652648198900156416147246125186087170148056078222923549128430378100649603985529852775039776128897949151806585294292039960445155507457503818595899117277583274817018201974147222026699544930420983871855273842663111992357525549835873295178462899743797162699507869157020192429046053084509339123977640489240925018564580811960073084809113703939737589920481126048919954965004694443753310905479775475528443319763747315689693842742495290194737228852242932548729467788947321395759388116226565649162587596028839613614789056767393218719707622293823703302093299545315307301164558203772239080547934033983925038304968849797528823945468454304650282095264746101964315902916940459443583999327374562637008938914653908154317907766330085690778983458892438159845268623452696182941691353119095562980239299345246882871571861330016458894967643607423382958219864747269335417274021218232362894691794086784961542570798375106632806770636225448140806378428215233247394979122158088179891134320138637440189364506552354696622056457181995403167408761671154520539369801983592744333724114364605020788330296637340461580050494667638036025566024571311721955706577591812610616312204550003736772712694900191581724117941932421838159631551394376285070157986996959873032943248392527764025324527699073326508437675827308698948436271813666121415167256801736939604572156259163319679787201910005339411160430155648021489191163568663507463109292461046814631936669493959328766280493342563391998139205974242860945950746009414854402138756325898521063924840457783968691417398784294205520155072844017389322776391892998833708079605066123566407390284975340582196613195665904705328587193186089467622142806276800721765176115448929835163383857685305407892156149574007287700970274538041665270593692853267055901870993640447341705050727854918125611577761545404538533137844319157350398790102936339863700870746398399706484659401526360516524231844875684928295096046845441393689235581497841519889707168720798063873417034031543805607437224499670362183128366777478161600442583546646055114033419738965327239798460571520411387944772010454459727114503293033276044731564819551737099489062072690949477756853506567583258785986356000935913665956421190531033906178223906164272470739061692452860152102515893651081344911305847157945683174664804517871218576348549361818723805717088860642089631787431716692081739556285097805204336815281652076982052930587063459938609405783601162788005098114464945772920232805467171151786031293883428579058606357381472423262214065022294047052650399507993609581511139224473677254218662071640706163352722571595609217669827236591057166761905183204060238856316867387391031369897119617440675299869582080343361327026255585476092773453435760779497222408258905346303506770674433088676995623855229870088187589379748317385226408909952726946197325217687791799017494910923992760953502962316713478130220532720337902684580854207589619457115301795146788250943429506009038147280379160772022829214710112468554990235173373191915228893109625923090410180847041187394893935956500961223924409275303038285723862001571624253097733229068171127667350659900097910666308485486847304413550273259002509963521079322310923160808158891490327856008689387645295088014038702473323624402713083676524403417355770970841096900251675304070370922316616042865503881389923460060693754875164547934799081806723118387701202572808823271216662052705967762176968630195988937095558507538887813376994248993202076294408597526766626256639087498175880110868938865238483519432996896586074661915797762857401930250063728635491503738949159573529041137046389314346418082280831350262598300975430870893096892266239580370661230379439671477085822742654292551104981399168042301815968970952190717980510460327639452487805923902665518807733096699148252191951234249169111586821220141029531775676348171508782500272642566492957217125855174962861222011267394021012206292291779123206697996550542150128865556819820747283759839169254967666988700346178983805168621359061935840712052473791519283613473049693113110741198057088758128937262787462087926932353586920768526413941230466907935786537131160906693149219426308519058441996877051524147266789828692635515480745856501974719968243301346506085604830802637860444629184463562126703541405520440362694596311622418056712490535243968916794880034070675691460064322428253227556658066187921605646074397846311728692689039099582892286562661794414413358823088223338757611555657421903429507814616445928178689786798683138270588308562759299157568794907219414285230432921556872707454665221839380083304538121795974633294955017403731844313757965708258786432853371195157389016503989873744313440431446098300384947459655614504675007992593879716601223028855785256517777377033502446118171572439397337841438643546898941930781805864231510934570965451652713678256295855943850375846857037577343315248792843383744198608227653972667731282292581312928210617502154441304656253089800942692506934161400756601638325057834859086101832026622728579202525056738688585032627301209537649866784045342345785353605857446097157366047011359001437922191901744167001866807812715057622389781983151113791596952901360508997020731536083183517382723441039647712310730118126653783470272304439394489112454126642400586325288064649530093636113387173875251412430968374254465506891694377832724880237212092421347969075044378399550175815781983956432539608180316563510852159240112313892749863267851259576214214058634158379823542283495449335997755973365540584618882062720602888639520153875490884964301706760791524296122694812791667819796750673959665455544767261189538070866697417849910987883323723692048635774491929062699481739587103715558802960118797252382224729785393356062061014575068809651667397526071032387311747027623292422820378151567834960515419815413954473490421839629232229099717824631806462798270318189309567407080669867961144165955672803960562318810189971111154448090910032949439730582619807222628470231963417185569252081562077091398563104607553090545180635895964461035732943653792161808157421956731373281343689317574772020714424416957582324913749188341210338665873830582102064945511401689417889196320724451141448091155739333441639075037814754607921785645341713186742608457304167720009174849543154073742104906551577688816145782824743040338755563246018040920670003877943293232578994127282058729583627661706890129019656059167120487905862579977315028380036087158661005406888801737312829503527506148264724210979695756634923173812428625279152952295098668180694094386670282284835090299415028539185922668510622824938697896445288486341027464462474845823020921415009217952924536740202343934676483062577328599096617978381599481357301118716967285217350693795202032413180708134706383122146929664701270848049833310997531165486317367031101447118632870454753717017015547721066351034475584320946844194518910837908880903467673531473233828255939982874631563478348405086656450871076196836977858350621772422905941498660446058318401929093383545795032300776957287166196508635068915321294626634564507778088527129060901737637432720926591933221013573307683805653097736391331417996873363630972674140884490225965330676222857556255542113144191222406549663628484457685385035566056990141936908409528637899335573459014046541133343790658688118013454748178578028859922139753607989811051250004139019762268258721670628210348161029870331537330321543041418663904867592016626805547267868970369430244551046367823639634388514420847500318279451631766720243621181067218421911855731940522772121883292408777145323238971350189584640057013872402566073612755811033552593039895966321542341032515286720266670010673723973516150695885236472733310982966192188491383601372798209684377794104566833530525945276214355169858701325526122816510145541740134658218060045416436427684545584413796577267611077318470490602563545366981459645929899125024017508247380896537933456824772364095350726293237659557036125994266145810313328797110385509053718705653494521106981157486353088328031050462717757425616803129521384515673855069210904241350926538984061236898201638425066950886119344573708594311266271343050765091859484376475142707973938923739379879637204552065773064058182015116788321181423622323652361183725447819717239991779843555456630399103573708166761471891590284992015380244243503063163448902415880239738111102746578575688047784665476542173602552527266129054468238668161949812395512281966446176187536898328355300554559107470229978140883998981730394996488171889686339913040947519605759324038175162706951686045588714369551635305532782384346596974712159325518390042133861952257932943810587859458890545710310838584566580239666981937046436667469181060993790901561108254670715567793441197740625230803096121142263248290551577982398341583444424019874777306766115056834448088689815566117547628530052259926502977855671196869218288940417886312825227372874252464857453481593095260359325235463680934439387672701576066604021735609104151093000090876163328167826170878489208560028160429751926837073412601720266624740341269931541430958681713564186545209048185188842958533135765186129196190282534742835530892261572348568565112301704141341019472715901677430371435784259462211311601987112828742743274467793530349791280238752841305992576180826598648998752850794140709964116997954253366249988052561380841186819373347665399679085708689037575248769776200190943798482840321476814908251887355651565564751940882855444104601849164644848624443008966823165100534156329449625754004114420431423784275405620467393998690775585242467500275752028051472560568059454585407122589131530225800547848000279285264225117813733895615135330803891526054927693891775755078372668652954585527957050155412020869338863418558830101087041745495429644489902798651489267685460982973806474710409602178566544728818278348050728951219173840707994767214725948972877468669419801398494354035451557780699554627189623494575799198859185002581252779732669907170303335019399493442272949188760861679496207411687235782751179929718438184937712982397393767316905786629730149584844381665323215250244982466430519632992797380611433250889600256280702521001681179540892449112456822929880826910677973424230280443044491123420781440510699608546594189735125314501657692363121234035096895339542395385434120329807440588747642258174186852099284042042064484792124257837824815789047412260794608425455845110554005842850786605745647396376061689083803038254985902508353940330255560098813465061800715269969806784156420520561567219623911116419213971185625986636171290368406342241167411850956932105692134013535588614512831570739133458426627681002573688292360250044481665933176162963315020207641684338762637436202088514204395838224955897185085241393462088026688786307034257004219974637500202053347692963056326711942797016453521542409242096191675585247495049646846770436692752053811243050444441160028745158726822801306490299613828872026144926770471909687716883807012724479809493200486415073154604169360847317103061565420950424411770788075986529974569062124203598198010658938918073475496641476989458324207386665835828797677566660889824300579107642745510041449208906666441586842647848227523137866519638107438409005771644716795470651817239646459401897123613919338567379185451358221556671229114661613232657448998011582814899503098591159420150990287163799212580624537685172996129632463424355300131366763568688152699289913029432934772383202507029516613064897176022198209351084350017979394962461561398846801613196418888886352116572092206613152341853616213923764826280312969091605625137373767328451192310305585265739246329239320673204502810192573419802963880073884865241301391941775334774040427752268672168684072009230066142787692310457663082290669070506483473082197383756507660753133545643667641461302160683193245915619217254235721194120904304604916775178664797482303612913740116762729794584823340382931040929275091207885982226892132799334395184376207783933332782089673564914963075230848857824112445898117503247866401587724401194487381937024876442674998699138511034383254608886966463912779551654269548521485077505926527929096963027388404571986047878707687105177438152982436581765538096070167495920239963742110966258050260741776265842119487769897357913657191348604364643510147273449373440157462655784443526544323480235073950284736270897868084864750009170721914063920148894278958834161586409542187828247607507651208961113420471310121248512499480304844032816067310115178461275220392628188215130949533941286922368844028972464217579662101212849244619115720437366239873879114810921584557614089238176312559643255948246339761624757617153846264056448390329499346644354051159549928994781288581675013771451827011990973816086347250522175747962040336563807274796530097995261045535085410168358952281409292548731450861010525580447559125559996489636726400808184931307924453261097234238765509987097892618651693367761770576315299546865931837793590802382955046189362831205612493076901172895084340456406683302823223615048348162104425924838815046572249672032753449405273239667407393489859386403088458307142853869920023077296361267597598624998992595112336516239545070493584819018587037099257080785171200532158346362278256348339865543433779359490444354845816716733388907502595467867508462756537977521378822931959886752744826288434242457848039799711997064517228493206795931241972244428701912397522570792031149363132749785249809054752639991599053691382622131365627177305342996646273070416732031571577918010754979951382891524188885294349517096129195929648272383915123407163070660800316050469649032332050880264804929186210055691162241086498340647200139144053989375639624093347554189558810643688132261026046641810631463032162580887988894737847493826091481984162810012696466787735588208196906905375982443214086876060044432846062369440232135181209991281114669394872633265197818502724550428492124868576124203129222633145157690024891880847552482101353032966106276134409600258951817722586914213463020576549129677562060601935235338292660948674158459318081537463831976513511023435449794362309492887894425648413965338981607042709280871506849040352916849355663161248618642018920703379202077496991905814982952418408117990505175366955503994548247214330252728602032276317832047221851494044489330839081835122670831038112655365508163693830256757967274238649987523678950149362365421740007177273025050577512493429392270908054564061813845297025711114575550495141561018704278999930551557224659404476950638599397692285763909458264929592934777437082242505757600541028548482719375626865118580584682031394257975470715193960330569817738683113622277698610074723543203566501548751033980598989504390654724339261986942265597644335750881874643910558131703927039702464596064416122144621894616437584785439654353827042735943669881528135295576468280159740965326400172315993280113017841044016008406607405510630082079009093012981881915230742856429196790929446249386700506803750658947824122202770225106017289198338877715437880143317201776034539170955363478633675526065867942063782243023001417968823763175740203591715030904669327837983877709122171838266873338732475641707929502907539338464701165078737613995082676402571520247897380710902326189836178135209146350832745826700658059792477821208960307994037890486025533515413638987460153208526442025884643101728438581657407301646067308137964682486714999879853476066592077957119329829815844638767276845228143316423280066200617667705678920935573627623161206053747426858964201767754044620357464116101617116506588543470911778204483088503998369522665944083355239247774636926901177707829023778436795878305608728494447259439921362197910237488632052011848638787960597781706821096251192835194451114616097808336941616830887357974336351350942148795506264027023795680158604702223867224085519742977324039959371216309482242174547669486543105083144172289657168509288640959561409433546724648722714537814318418615574209133517912244136842964100441992402130829697828685765030352839957752218976624589933912048430432710145440627721496463862577118939908821940461145473366345332953724919230141882306175620406950177815184241105729664137632358699968177764025826372061562822276097055503756970405811405193952866621836762290035220383254478997125142053235573474000724222437414733254783081866832601854558628462975847764495091511289334096141805172919886503971410062045373734521750970951485687090555418428722936645958826260192989733507831875252611833281684825638573918267328406143552532562271474199520722470449739339908101890150056771538170362748174156714281618578596069322693385050683058908619565656596940468258767572798050649292628830045493157520590055586067927444938599758521438633850767699251644285542307955572654408839299560808600224876573198315273987504399443010590230648177037020958358786622458486699663583029907673680529320039475149800475699541223104821609585145912506562051917710317719569684369719891001131482683672576143644172283276622029903281439698063176696280780180833002491305886725530720348237133917512129335645359843045234487322335080750252076914030277887870862213327268832798070795043261556070391170578387067170582722269945923314499758050876497845860403960333019776362578628859583918573951993398028979579642171530535391189607460257010563723771600639407681978595894155752872554929418143972152746797210528766165697942211794511550075374918811114976970095264595191610191371354859897864500975424545258278599856087035339913692814565033806572423591683267744487540736524320822405255020329531820128659323580990477520042676036216308857223216276391892478826388300901586081053781496427804280357616972840680866633509933072389264467744214454996672596874209606786296252586560172499414763434676822130225183189915796971712686758065068634889530198455652568939656299801523713063001705377854427873529009371322139407402016800188662423920888469200560655955121257313787477217300506057926691394158889531788926948713230523772241735009240237148589024722391404684046254804317191795108907306599248381605471756884041209325949491532917418966242834103860813172678996858201055476939901204081277118082339354774754198490223579068731533814835025251890851447941531567758302540722113712116487498105903230533762289239523066758747851967584910927023538554782653633454643604059970112849794685733213363510838585166228056493719781211386234656676102359098738415514496798415528788397352359606774526109569273559814285873259141524249198383908623873196986266252973037028753165918498847338023469567067946954284054748267065862511896102581114016024914250729655314134528530620228734264905222261644288601461185600756483005942427162995452858161623070220659586904095359433062490974956409066508151536666358582026842942910097519186838172254644303460487205466136699498220622211657630359485653574650015409463321425436971195140432424387915615579298405978761995844555519371418873102979859162775766921471337088441769226360571464505127299773604312987863291742808396805456783481797225174381671848872640989344514461009266297860453165070785887547391082760631895573162892754711991586052432719632841226944612171121462400135409988771776139010289822154596966709868813496652332517415853924042532879180202531655711268991534545911343231804502366067195759712920435589746488513770661691668492962616406033845649124579269109192940658718447203363153222176774502733858645431254906934475852287238305027406679423913058746866220784458410729957716980480474606880301394788529027003189843616004795697091761183906507486709235708260056934104308486713985764938831159759042908106387758406064432626861051907293425118513045325029803061711981485718238450494717191772286607947215025878201886692808009506706714335727683190452435516654260294039811772053514492588540251265500305818456874598562061791006354484798337999742539041317833639774508278739366067170263303129048559679737963166120696192156631281708157313404527854708050657788354013396069746623372280064762921650523349007392583327322264982144019105955582256887959946323576481295604338669679870737902673824724009321378962753308688787493607245870411959378745807718394139949445696072425303767735704341595743507995300926079176742926898901120214812412546153066223077170981704986523003926882241914668099246739521185988542168391473914266780708151513722526062452285478061811140054161459569158997219570246520575803858569060437238783419867302815373525812811204066633099009938413904110186206680184441324604066517214879368424306428307155724186773982323962487563748781932338259185658299312580642594044386604322084373577737842026801447933837308617292818473204198619820710035788687532674123463776069765772960834155835438468145799296740828404546662005104823998466118095737703151586319652857899733342748624575724294756339202572699113765049929956261905537775805603036166829201439243273579878821723467651371835655186567938060993612609078957634563372372334991371994615248495632902484707273548460176578625391591117178591200411088600305765704292393716086468189977434426643216554461401618898038210846564250702250486215309293299299222507535721922921016054636535913958936853248800826865522566525157240659814064775965693998997045186201204953460338790102697361494901017948360777049230756109645089068776053989535524837959219431450753661970050338257251620536761203871465254934608656070338981675432284109601968801664383399992653998626780063148554017501353700984326142511520523521631205939765062830338399983214755790450477941308001549942827913479027159942303414262723974934207285296636571643062675140833035120058216512569632959264075532055467420165857316895625537051199283235967825277928548763813284028928185384504741521189523657900317641889465742301402560825324098202360795654392877133336167914784106606562591443993314252265669787328854051344161985368582252243864955125659356879756792062241427963455284115993878462519625477673763274675007755457506305496874072683368726140651920886450038432431164174647152228578129974688072744783601323991621804637853097705262893109167745680795298243607329842844842492003405377620219794616172426648867236458534328912478574922607934839154148323312818177963047684364502914839822914540648579962485332156185428299584675268070024249900510271136111346119531429404139322052234596359708942870854977838234446372447384244460641313874066725204591750375541685590088561619600446450605811790074002197034126282017638352105400036242943698827097885398236665834123508782769646814231728338448936683524874938229579657466532925024321921892955260286927504858244818655384730790421096840981485240618725706919895736665946791097812322190295644664992345257484993962379553907380426962793601785698153194909540244683927703123718815414300217908646371564824784376409461997554947560888827350687927067123441992406138228784520941130953389938518206583815474579103161527337692082288896949938038015443252779473984076426612885587197263091140951858437748960995195890404481654526031926078705259472375760108893814636810800081313320070935823901025172765744384362051307097964173699107913110490097208867389863924098473355071611101669884447973611805705285305285368483086735907310721118615049601887515698778922818619769794344161388942859821067480881636492345505876306006211595718540136223675135549881807110122716076887925004126942083963314224865880129742210237818493614077512717278052849979366185392444262957512557670531903568900785447908843740882594263197229478562633419734498754616247595182916172037634559869635890596504725899784800856606752121621663568238417616400682313301019366667521362462629595548553684585490317106725191128027184926631963768138377055378552944039177112677271536725555294003186708959014727490481866156636162784920300618245843362016651941430919694138968730447292617801910292266421860951976502903313283673213060657574639383524449593666360080335588286674826538620780409698104683955762521713941242346736038015663649828223852610677841553471465540388467486745039271642807081583686855999277063052063976948588883827968591079157312549801438389464800239149658221292675216503375978139943485674144839740961572636923681420501754359594165181310576203503706446855222566400396734690485240002203925027614448737615989151056212174541545057198243883121502706754466287645198095362591792040565882669916475982838388298335638963933175905573959778245351193705326294345156712444506705004956513250080377772729274523497540817328568388665954936665315078778389814276448943966610000060229883082133686102105976188206406307855513599548577391675651179434386922700087572117697102013925068736379163128914542024397126735332493607196289008959674037192865932706804529425143800730624565975062930463040002197747569803671697114804054006391874594451590021004468399635361495301627543468207506368176788878241567458228301625075718405818307795700325811096735183608805575339462306000092128270256479890641920994739817648378455684394671204263860644389108498228714957234696282168103508794106710444972548709627009215250131675654801541350119705532585035162045883109182662498011451414194422306158446923596031664227775010533780976088796164231735817075629233290243749411360175304825074034465729800829923977939109129330553036635255516691330344393388911557364946063537886651242642008970893579935990526717276972003658007750209505006793616262492675648268420982607016696675280698581863612708632440128727842622641624899041514794890952555809837281170389842370790964779771691030456134982012747549256373183776864685177461986800534023432988707834364915350231835296728609932966011717823479960490437933093234777561529538503461734567224262169402105296925918606019650194454179738610280339980096086270386281875913836519733782769957585328522052128829443017810059329407858399158552076515338323270288212048201200237380724933130825493818076283691524591098951832955406634787139008616936606288912995308940479069315809436228509438475917511973786732337384606105458565270313684475094575255515564963832758997498153629017861678558430858082765661257452405150824752870038718707849374568267086299910540358976188553520615121381264632335981726251155959824787058956928951059596103976808605314497486067451728651423566240096983662018189572636450412663886528204299028034550919226823638458767454337023144134667018218201479818322328026409258527753927977234331632849449561053495565411518012794979514305864758375822070924060492256964983847071678894706065769501242627363700379992272740197540698340244216021796234900204929041967640721929999408296346531937823306298500095103320143844736690455434419313048544105871659845694289554472069464885009265509065044825489033263393482402811854229170464755533020582094156726644689355507804657749373412281666036889902530343711000136476400147931212993862036147752261490050876158719958459846723882129455040119566552425984673626928270688908121751758230334437963669612187713381887546341216301880048443734143331529169786441322306314114040011453748668962629033561292824546704581039074873996046601742144496660611039837651702174534441178377324337863588673157898184684498618702840536618203792108099683585813433762080942662550299352426857896752835997021359786972122245215720734703686536291915485728571756158730488026282592951369542952490888285600927146066702156920392800355675357396937302314836413574388446323126016534168564363245204073467477137670951228190407882890400324278739614276923266010652247657924739715827239980806436919299251265324345332027481693644926864365690883326829736611058681612394796305101797697332144485972668324058609212408886509922221827307634447600060926445751841500416485260771741127412176912019302068724687936135086685569524141720297675325419657760411261351533053660133194553094197016374907257016887528357943657837933124603252840908038515545864676935327002258943226346596213734037500197385041576585055484617885959901136833015767445601861302858138140320236311520845674146253693555444245023438079365140679304284856626857366184480697518310104117320750617757477357121619289125848382537580906280440549963486493991047310278240110981415957710087232780036523398791792750360808951354913202441130485435679077502548966098364822803536878988130289056530195638707815958507979845121423318013470881305140719391847855721097402904893432502562481229033711949758224255472269601524308472314423050435108835301006967170795632215042859693040192012887961438170655927881443031104648104941230771082381470917024775930009451517084319177126796993852337911003126421403526443688905691723304952288459797332752646619391353236683971916985984690399387568229409622942149644252571250312965374677252668200806686290387581807777781220872892276083178990402181973594315546576372695393266750176899024414354454573485580248025529583780093205235606267085433499461873774971604308313686656645812353635057336150942675029223676065414026968470367162905121501700601840976748304503762301797657095481823800337433789116973667967398865928124755901803510755659812844698629741889125296504396183450558447839285462889319422503909175678037566825939398489373408939757533990524059347534595172250731460678233139993969892050424568179143146242152823413609606657144062118935027205084684767794296670901187828395815248420240898937522441218780785716076757925625476841459180283367071524457796063972583147933211211805141594555712998136011164928791999057953380652763501554878980226034242705643661829206325510522240648263438269500658301311852747919535261829242350003381927852041534473439176165418646469233785325569277835955609346344421276294456965036156643160899213769940376532904377167082136810039839158024735363780435873531965674484041832790075120167963211925896050353740288823153599188206712770515251966766875379760439147183776783827173704889636879938558206474003449041471040256368219601673495914307055481724534880254665538983732347123926196487485284537288876540292394672652275643434798119733787614292931297198436778682681334976883143971499637384770458444243511112021560885908627711052318391299855177117214020740552452902634871233416132516452065110849957681947930358976204459250323791138174670806807480013321322886876424524253168962016761673891977035757132062436791603388998970474052747429237482528000863811850194620300811906368170690815009593728956276106703935795663261778145276282817680441054902219479720411242926326288101720067021715515538626232543000885566370475493209526824131304068112571820398916829593209760241169725556214342614893309790362926020753520045998985148642259366374705354722068953133875206990528824929700036035445931017907551986939289934349867524459094929144062099073187589065526099348177549406126721997993405475343418668649938305019819854793696651559403485077062474613329433663368372578725669857165454737830832438846431205285476413321254486679272877631536705352157775613905208525628245461366632153389703971373066599857446305227214575803072211921286494437650682781571813688579821397267195084679573915290354026653331596899131015540621764759408023350733841325584056326532758784091648002916588895646524915542083456949566098234574397343704008514539788010629779154531566940810348227442245869227205041576562933246060460424744351827567074935744138883883686366438259801135739552005015337091679977899031288250571237458211470271262708625975412344660826632063644679170124865363616544788908984806026738592574128520615460386717969318283771871560217811809557727032272983008191557798928287015653438593101299897331800625599326130697519680905714676585897227334041846190808607342701866527384387029442298904693600226686366294542170089232600721995373547388949617312703315758468232210503596393776948370418975058133460738730553899324312083579462380438602056443623134182113425673972737426077994619776160455518924628526147309122409713367384774761339778871629696424780889110238780247904796510913580746968176791748159977231052317024853450252417094446020358565606037505282651875460145545676694068306799081567917095725303177963241825456982420491917512696382283070825949920405648111992783355674018132577561326203423785029654391747166078619660559220458408545626203057768285851756302311824155440818817212621146745770579570215322089249424454059367508054774410348841485627353262664343843520820838261531327977721145658425788632950373351306974683274142724767784267733570396412883984959263738410034233086655848977648319110002608921353432998695323159224167434360759354246052169844504882376137327219898136458262817637987723049299582971727688084006313994823780753019423378820079148605735789064565500445726723471976435432123200295142845434250988927171293884601161680441799923959684046114119130122734447895331694115054795482140635968507792286613986502098250012996939860610901761807309693639843481115830533723683903623686861672747766533501343275522160127578233719213950101775094735957920200304072801334383722477159357836664986004541612317645617903317647125123095233350574471248457220780629556176645987069835480592486655854313621069723781956458589428761307233173973735832527622208708492290913907010215459865345738608673790013364046124041690243495596542633308245697558516686702896192368498550320115756647060695053498983956768407007968309806390949493759405636768465546031308034000163903168743682391858170898704097883027314033003500677630314715452013809506318536783412359623878360699272349656886466582523112697206927879262120823752765447857814260009570901784514576695579677829741154849979391547851637441613781095079862623854417935069223993970102450155470972492524610616963583135464406889242325579547862295873525161725723157684014591648420801940156888623578692197736746724013740276255528520974010259582721499330555753967875544938788078117071796469563925544240521785991171606844848845899558034990895697001687142738895551693826951034153758018409313417990286110281074539635268144401748378163200609658251230959600311408166134000050210145618664442423604669732549334929903901333046143158600078398617987050183581643584343906862059195246108695956650827014281568012552134983028883160647119456148650752582524267099918561166033363397623397500767622395514901559811486223961889507519880633411370305983381332572836817064008952410679601265344783129253646130493307792395403689601762089951858632548457541433856558787295537313174230489863743828107268979026178796333600042685173732372914208105220677570536980175318180409664239973215008706201984544799533201416270243767933690920771692435128444533858242809587861771044100615143104889728647718383297601107111379958111517483315148971675534322294266399314333084729184931131836271137365486952600278119983292108214314157200344617973977810595622603630345200551425531576047758059695900245691504498689571596615813668116992267156560004966016802371370277626321682051053525734074853819180207943501549490086481220508845544291580360268980264832979490755699059968718300426014131225211671776626001717598280703020539987839030282280334168792302545263829034422943521380040982426994864925847181794506750893836670818449085935291460444387597909078646201556417094724562059460754928025763685886326559021961953456547212982871174711001246325613137544618755484250274647193382294237510621234483987473182349652899788334532227253300019200657611364192252483926604630497699409961244880269370450941461233444968953046733059888311858077807471757257344796089737597675854046359637289925928946804347725887735337743472420595250161950815867623040149657597920645079561295323797209030307376648769707861981068259024845739536001273850014855581216101511602857925557905991113193916536139674190328800264900835323874570923913074378489237461725319162168776654297195360685535666150706944893469226695568473870528023970858487802681112229930413840106847348009934424146257628492511962931431716656414311975675719686277480863127426304322804693135318408287963756422245896955522480108022348709084988912823564473477164416286794295872443022641232106391182348427846532378473074973439260066110062407307385671453763458536430351062168784085179273537191832469823970637327216189160737680682134867278539611466645247788624865085310209942853589287030851660645231541602397224630782249746996215940171475502728882000447738137129746826689411053853467320990180754795694544004448572401248799675364072547328676360707924492192330469532200954955399266562308829045795943348223730415356339239661587603886670039971637219463270167373191762429632232721601553050497679035807709032059609784559012540415294811472893381206078981969839075569086345681019617391925241472848355506804572930146101409162193037887001473271296757369340226442246577687070420109341519308703184881049772127857159289210271317212044790423925346746516426630453463580765595997925053208203793752166814669224092546892999012383203053217115181335844103399475877040893034709229863779623130076056166737801438756529249251320773274787906030513021822763505686905937955291384781436206394519934435250308819771520959093183476829543530163372615246465309462070540382597414552182151379786841893970361803770149638743508083965805405455589335506698612345917688233049941114150701160978970734160823426834070775978783868307005663366269082652924288877601584947436633516542851197974960635237268636043998487835207000358566646852863060202581687423995786511106180817500694084622517169628920439131270594982022024381273564825559496402710174312969764310224316391692919337746648847970461233131160340489193289904932055528742124063015104416395236767281948010945358133712127911447742116730652397657780627809887112700835390370921250673841299112039900993149728577562354044212414774369468900635490928698460077247311816376919065461093132566721594902110133701663856334214308953860537781725857184113981413716753680338524431788771288408817956043091317428935345590863418893905579030963327619152480444222743524826658605059802910348712284044659517879307865457948680254793220522408770495528547470959424624178935471512887797398278856448992859748300618878622895082119164631468740513123722671108440290919649473726496191310437257511379028164955417114655779243524000980365683690866970405198323826600091779578892698335000585555730408560147625272984305193121925060950160331167146819822120876904360008984762661967275909227916792712845125654552176303375593393367214779295928389129183928940376139283968802792549207106117707958854077089303283966903142095271967839001557378144303134462564285271805321301988413208582038495466785450999894277419770154002617467518017884945770080242609205390326384966652945803045656083480811989033919757813464980095071289825342960957900758513906242569727758025501757523056702992510639404994715186880603679583742923537286707011517297286721436345906220071667985821790897642276128254457235505968549694945045084465499165394657354350892696929724772801176574406910330015365979184396467994430145138755904731070521648554461571952543685144282742438518777148162797518094580229981957245748645728048718679373044949212051020427306764601262004365721081065283300153721343094043358203211406504870845876525465465021954547144853789021855593008760378325338247234541552054666095768973101227995296832815830913520888079124966017828399090160741978057970386880254024617082339853964702780138683244704428833991165675933270952762913069256867791144306321616903575992034796282025974755476866647170798067296233524792128245729822787449864100595312440508110572632014382213047373905113671719066733464504867749860819333181411585990225469202521995584759270984268558953638856715224945585029366926615126814463839408147593526764228247007528580067860202409982611848645673057722827002619118631446310218424460889304882522010480409032223524295815553108516085764120067327371430224097215090597792619496152429989156565429933643046788705091198726639680827494575469949402152340188143219027450737325560792397417916638708702664682081798087277666970491585695994032671074141807783898954276065342038124392290299095554605389551563141258752573768543023194136196891735244544454624498215178675627112363871203685481489329693621753830652733751107687391739463142174158306174145564951085582829316263302448712992341390359148021988038075179996262522739930446615600600544267555466175333405659437441108845020108560687759586772428677533214374534114351920443445840956479469499529605188334822009633763773479836652734908417474559886946604593744884279534833699997278597707937115774607968574477754591474599099522593595602957206400643486366611580893453902422487076264606507562496221917141416192210694507830772759811457134509643115345718997066096806865230848977935377388277019604087948692806660636828525340771323012114002044563703815787032243145666241371827174141053808730883074945480974377577846705566959910575446491378577117164413783275657883059692249839895177115009563821202431761574387727549083625103381504950925613350678050112343910723600522646278541649978598181948215840019874562957202610271421924264407536076952373178523822718263112675422857834554240500836102693291949015160914357950714962311355690284519089883134737829682891364693704740889969484268375170925560952600302582133484216682319422408661142926497772185900216012318703138263453121010515455864032094457596353968719410791843207361174926283001872725120382618793972700152403863401059852113852250964786278206099346180746585045804775562513233428198956697251803325538890083957015936143521080230461007394023881264258548653379559091962939320117395014769589309169088288733085337545360688015541202513754773462589607467051026310012982522766326564177983016364346783996615477377949332490785077394092100793385764457056673741469176899259456885331897387915861564898777384653731527097298956515440658086104538086281870600626797452391990547510118464289517893782701578414528285921862472059488080371301352638409345382763767539587085760432237442664711534311266901005618388124595708610547028847851413072991932811771952282068881429916000313797989186054806149764574813457755052829167999652780802874580335259852782521975051265253923973819451164841522871475583467195364453898556372597080841171956506234944008728303548715435911922687287574160180275036625926937505458324370531966578157511278215726105263152299375581424977109587622510528061318310306898830046502121377736094233503203901763999465993655137546304977321346613275540042225543839988067648691263558798287170675087707661332698840362812015989103673492799634954293072071675307626393745540144522014061225603297839563541928903181795810094827286244658876863296296659099752210877991453148955965047200074189457604745552035879072920037431615032197061150729489270556985008289666236180447537475536093263397052271935645032554852319957321875822632007686595787469707350836368854433884838841903536162891757463263500162273167687683277797906638205185898490639819526507596933551836163658468083148695482141224251570658520955010352898498253451050797239119135783387381108918645937167458534818400514715863565735098068070948259608244931297027506178054639712945726576391818953623390037798761505612050755054416949044625031957002918530424925179143914433116791207448354073057273432103814563385111508480798100911039936688043985424556996553334712465478639272667171672963688968944392475040538463537090659157206429516841040772383194365450612592770291685189069914816126426636462802062557819205315619690167485224146588212515483842262829001970370385553731124538162129997605581923860855370109850178753382330024346384386844733134382320937491824034986554383677567591574191939652663348506560357067707419999462247360829723655920958446201755223670023131018015067105523001090646638001914218482338229085327744248788913016981343164490837210741454533613167735490188340895663946886844721844869996963867561469872550106678957272508716037290178732370546805396729650060928581925302799059257390571924839338315081466488372465187678865156935281867400495738479463865037881792114504884636252583095644677807732063869027442519686859779227335293060449881924149736482182628139950693594204591621167420416499138110720512704636870893142877841273773596617388470066070613010432028218841561487905452012665060080485029730111578175902477323061911920804547042881223912794255259716075024776634434249643134995210350096683608896096077507224714549607131213546239493371305442096000995577143021940843416645399121429998285670373189913133922553767753405265759592698412709924206530867861892117700990662377080199142343011991238266116959830327826626946263572867010044289902565960761240251195817320596642849962286793618947811782589094075700697057703936545562264447539177806649730350054802274475204646998933749355098696361039856273331583748224936619765028031054369436265382798250412482694378432509666719184235480631055044304203504450276972319994549598311765249895209651976472457482830952172778027074433507063346027688990060923112927269226599284512146801717849491308613030038853104269850768902084710625937744350146374167125846830419917837232232291771617664284886796988414678053782855389825013485818523072205444119569201520232899699257705605874319324309173975372173820219242667434711051697756975274824365779834825603663052784607647273646727261179903370126855194935233123056388943706147955392504945050516602653692252605717045703212032128445715951883642762214954940571387130418365239910705673982447201305635692580608200948104946854671149489360133638248424013855887759267874943977864460672500533924665044264956147552171962834767845873220038644642869131007774006162024129848539163154936959017288019379285690459786828089132513704534306723176132612368848318900318290411869482553629173871947230298859318311538783054563332248263044627927429349803760265301527468773140784271432989232970199241589829706418867952191125837784860483426567001884021572741716233828873203861588900726053043533446048872323767839333128318782446697923776979251452855898709634765961051346309696641958842771813569099611848488166614195628787272840891848855968999992334899726016581862816577434313238941930602253507941603750385559095075168834315682538958902591129412158535597114658071276032804603391121898210851477985252257186999518146673715160743926717328315580034274735125871283944117797664284063505723158499779093416813166197985337977901877681882144519547787296961937132068557560046224102250166136242778492021518145843076577567068806901809471107921776671098573934246463590131966582908245183169066165967168927044750880630630291901680952506182787943416917773933937596645292161569334265007527603777304920019105426800676679299972335580581250037057687812614633087524901924077536949795341329241543945028313510075461976167725009140802244216637309425276989280537489568506664407839094914533067355527259367342604292245270071706502088964209763276269795147472389758926853369224502722715660714029216409464165189783514875584147332856870008548737061395598381149662676223893248243226290494021252394712083639764230811551572993845497396399570967180804473473524228564903655570711752286613740729999351908197755864333144065640527159064111892411245309737445830631308609229462611931297644867261997266964952252520283007843276410722665162474738720179885911163317650583016833581711515530118679666199833718890691514689873617599362376707755902408157659237915432448137187622841644287207682064675049855063545290376713576212640636925081154990738494683127505570656512015873275641564796543273296279637526292743238297719926856535977684247530904963381831996764256558102959020146406450565799040626628277121759331076230201872505437766714463237554074526525500331302442278061148585629960148724848176426357347168913613416375110203030356696362259390886849305112983728753380956891496186136740548915426068184767519005500590271374340042695769310570124533322761173787209573863294108025950437890460634476880723290728867418005956542760848145563898871869760995908371431848658584564910699798751830326745576750089745171205549897154841167548201908212097629579012832253280725365925907528453628775399250695946131114996149708867825312465408980733481355667569353346787109682195717110413832584216704545256105501863298006769021161466201308877999213949684805673619011814349157567033463494663056712598497061416590732283303288320706731673031543240547368291992493552222482983203395340270179590948739675393508885116977674340611513669989520833525699802435455270995622357725159250133785970521566054619340744128334560858848996933437595976875828704349584657301456321483688279723533838414482391081229552503327016453942259943180108387480616442225366199636831136782264285843431795261984475806173652705085954680519064709606110458550998300113052749084145414961002757763098718750953503356253485870590428056955731834119228631762681703200304442077507019645949907373083729515529330501679727979537627236012676922453943236168348872763251711744791126200915069761862343840109402507534269714078033627801726397428173657609676304255252748432566582631843925363986193372490240171006152555240203147416835760724466563254650057532883279558780577271314434532662861751801080766812851832022688211612242144818048087473664197943945119255967583747438219884681414635019298342472161213678125638919438503326810063883835403682225267455954650025613436772396238410229914635409161524073626129117947836097976696035452536310369630629721502017636799895372477003573075983657260513036317310883691104887560962027168855681052368348690226251984699476966355301177112455093228740513530555876915501130999890742038040237906349387938794448012498640710394127108967950777550021818208775482993616078036031498159776586437516261042316357986048554820547231740538464378319783868914589863960368740296569347874278718107713851432601503478757987350559000155514622293779845430231347336734516918254995780511439604756201892230773655678731052470971366970762391380806814281450125647227594108047315711258485931972286072048167183600845848495345899709992404411288636239603943451181999988626944722843846409460210454026962352205517235002703858506467509272071737117931686557085032611562796176068154369628732460251438717582092907305317804497955803156889977253378198781474568372447235646561699693059557363365727973585948009557998693857436688752733875946380715188096695343321290250172429000615627515865719953059674327351395619017086235313047561346606754539464611788235447812635852280327179871700946511658591838025192338294677647194196105399535992127797224743940260671781933399254487954311259244645375537835734790013373175844677797888694663573549722309332512256177872892226254183114816690352422988580244444785282816580786656278184299695310324373177267220779434916172762046448567454908372180518772012538340695456021840648634885191308879653581384845473814463065105160896174657271428188989373741485124303796591275931028842067973332206357673508880624769667103972735254233724671847460109580254416148805764700711840436256976536122196855353798261838246596523552134966722252301343748586000967607431981120677522511998396119989681001465458271322303792508468599808876891294249459420004155004168514128220839134249851028841740880778387418930829788164011093075869599983682754861753783644024034208929118497166678889167117527925868109507214956567598089279716954796852946499959746250241366661414387513091295801047293062492254340058771682705790624110988823355270883468978087055153874388464423703797069184711694707036374701192313805511972341114867507270793054857373748066711611294350458112417240714082714190026361773044506507079942920094459008023350271598510103606898881901718286548040281720185689136842959688861468822172114147892771234498937987416294599912707525671912479651153934009948373783793772210816546205901784178941605358122846535212609884850518547389614590242689001556835808887384197253533963758539035719633306315021572375044204283660541260867941277422474657970828467940554229294518755419326062458166718579646575044118528192708045753495523881174953049478341307744903900509498195005553028316031451950942747525343495479553762607361304125319466004612090581843891729320645851374890483430558800036697712977909981850740528440090185861776937036081434087272680336148815775060819427976132641196419675713581440130363191850507766441644074854426740878249948079470352610204227486145410643125768043074061776115848776488212854849946718290342198105294770440184797355549648519090712101865878142485762318087873028585041288224808081169638279633701706914481801714824619274536802184718822633613786240497992223925807147626468730032469802144727596115756116513797581818472250186751607923602443878611507071509506115995635760926749502214433888122100991284736539098107576833085225478604238116522660831795569445864550319334005536212243656632888897710641726722674216420341057500946461804370873683065508408152622062682636661948475105140113153490596211008490218704646198999868492795656804916411443318606117602548467019403701129320359734257643005440261368190939996389364163605122004970216284170807613676809221025371773828399494635445631844149942141508218368815825204495467429366844431312048563496020481825860776394735684463336126862003300061086364669054886993407024562272239197540935026361688560057401962622189603347490924675481331765648060938938759191513074145484489954067822074969145042472158410405060852507065684755821072477197859429845372294053703157936910490008615726049336887732348083156984760178787228955874853235347567735494997261733440257992553354219679981339414347736485296883426421396415168735411981191057340298975968939736995134865790553515781290022683682663646221579970442683907099413913502607730768286907020193242575335285563020262874928252866323482081289536559128827701699168226051898529667423320665500204405963005961867286190841446865305859204662682733281580786142658501222565521197880135844347709376743430404853501264560390931678589281397375603049697091484466157360289600545444683301941752962437853285279821067358094437391606044794253231924708871945807931126819683809597462609252969883119315152865811029506850144165095197927683844452646873916864560243216839712478087281826132147915501766856895746701421359857315709934558762477313798808982262690469271185087337025085214201042012860164957759241920687641406819619847567860133063497214064894438740530386632857399788116230473565722613618941710128091939033402348658637735692592654828313949879421823129515053689655572281770235645963059653462578747477035100390152795330729194095179414724518164736979508950189957576637405313729257611869527494971962796021047422013139603271017949931097765109312647010954132314374405113940666908076023521535015776967622249890583048043967698188582311746863440778834610066020279625719313112427657082380272712624715154879905181687863713734934905785696808037359747152796925678113225392046861463176056168779047057367322024124311039128304213486994967322384077724201127115422603399160114434779653220155835155916821009669376340929470595018997155480008333216280681750022923919862571104436277538891467981549322949565373906058016844516571519665042502703364740301937798994927067946136822540411282491538428194024191429236513646945313984003808892328441151609241995468343717467375831919201094677719375177356913954894018875165178264372634935904198094322493323146732517693586735770266586102584840868067417004140099354124636496759069936425807581681829431406365264841481340411162962019573638654976718347443979695354500467895174824710886293368934740957206953932795573020057552263483088805150721869572807480829421405562343263149672453345641929815661945918163771862092652795193086366035151955325810660758137270028747727973312327692631444574760663869751835276831841664757519984213234218143031927840423095280088947449993415799994793374585938820307561106505033397375541619982853369739373066066861133857084008633310199129485072512514158440605258627457311602705403872687882348670802144086926101450077234654957872647916058449220772985984289961844390800923846199408750365214835149395933983428080666134953272306533107953725288980734489205781744439337619373190957011730555348720855882387400245394722183652486052002516803724684143296869458585040266981548003247774493141992848361948391135794370140054908095912429920962404367820210293614030153989114391522714558278555987836179176492582646829654621516849274622789903584260045079519712598376918503207787993200665165564810213355548493165821999895006915985012628038284654008099403214756912787309276998440786230983771337730199571354889743234246776647532691908690537428292418938348552839088313454948495561274838738455662212731867859900733090496663904169308351827628332252677142465082382852932703531750493422768147610459854995020960633970149924449671303495790488028753267240993192708543706738236437687156354172918184331398691685491252406813569560754810424587591449831545706199703471832293871469841086510020307317079293019746679058695812436514466269499868845521645953261415508500358496916509754992077409927856470153964093928213718676082192992353346224491316237932378576984228282786685034173984334341692533354766897709240226330003996305007216184726570536591486850168200330815126259276309224695550931786686187064999166422324221392199128056077205907380081847914910332758419449428186405202060140701569962635675928315008534379046953657373507017761022708613034789061918443153239615645222518917824294389121272815071207213812452075851715953651259747665369443215579598470480501059452494938960668332721769847811900605223408873223868552399008952711614651375273339948578025747520800540353846281493882837761586481426357723150295962928256693026748161173340470947318709377551751592789256264822190652674446600787982538617485655845232847423106450522501233221313539619444795688181878285834303651578361911201690924485050927449596845678227610584225813625764140107609947868651387512979469090937403920524700688216996459721664604990380646658463672870274076445504871514173304704567920306449957437624245330403703589308498565219703076327717574011506293926317512806979361673261086393170749411213487632541244263713665374615905358826333751275590993268684751683999223741904659752580974910239716851946161125582952720569024370615251035752906652574558737195252990112605641163812074968612836729970794759153280467797386032387947486254736778081727162004645286044400878705842370413670640886334681126748950761481605844538337473250165047405669736262325880431347125160437693445543368573594652455721197135092433322637141009597272367116495017432242622896509305341996610634659097115321311814120366917865064104030863551490031784146142697077971216580817272238504367627058624549955008270870928831543021654009462084863019049348683069619613840938965962267974484179371146489210038297504840710634195206639225814656177885695191902967818455424701308507546473187850050805093414890812385446183926558024865061497953160962238303125917877809498992711249608310753588754348930526903036983028356879491295224339214889231089593423101625467522791237062367115932660056300504937439372281822214037087238184660458349679755160814674360083528729763724759225082189388128707228462015165762353703265965916579239891304999549913734487227020951934361966713644178762820714253969590563023034854026999575271032050730889004179899946569618083439833494003877381537820445636853056471117760162624450566775032610929068683888167406622530349774025365048246459480498939362089499264033601446092461253237381178110582284500374154208334715235561990267174555904834752079837462509054650760592972253609144056112722814366169259325240711179402109926427237825316844839358527866601788018971694039608951782345898026172916787385280450017317116941328343502823269483072112756297568428274263344139674246018950626066440123800478039175143166155114213126042039200045635024846057568496696823360727796359173069640753709692791224830001330431455053235138513890775250142642966431692869130470065790584430788875244957371321335047395229987834841106479171997751411415134938252428150875556634546627910867541351035016406322030074213825126069923848259918620691911119232393895506355767652205130924465855893456566131222349061518635026665211538465117081963886222359009186030499692739481587934583739061397060473600439802720189239710019518701637566048045748927665590076799391620295439391489779235451542813964354160561011387710280138494518833338762967962609430506766237492617049529422420604125346877556934930913216908434133234186410195357361864125499069232058052820920735514349366639580898536382385861523603445934292529400439364352792642865477622955865976952149973061041323368366649093989489448573062313543819269281654599204932263758327504480886639934603397756380747807550749582207293469257872041084628941289039437919442617382114551153842244846395459852937529726276540889329439706012476966440598299702195564023621249007725785693017688302506524924901314298483468203425453093539982938110089888831862367364876151773608648549803767055300297777878741268917674197588580590296533038696012390661063601431301824371496125325172011066589684752679664759823214577183410181767381288444289749347006419315259679682240800559220559065016532275093893317017863717767236269536522677977444626240155549092745771890219427692645486624623400303145461972973646438777031980705523284483690508260549462267442471415432693030749782893794403423670177087435592072984166228741090992242216058599503268255037021337859755728988590065508273984675620098688827102593850999723789373594935046540264458001160382083556978226203654948479126192811274797102000038283455259166572113798096250782825694009156762439675281823195919689634916958305065854081116734534013454856084426070022956158976899873553242344383429378828636335600081486236131670491654913603960948390686936899227696478504708309149535271370910828025356565257463427795287351122008420223004212499002454370982101867560904356370511435696028336402940353374883989396194363335100797313920166858207507779469462059337546780376666187633297621981532373375347400978721954874890705116347475816673666454856204696945145525450996223958901134125226319186858279241882790920404443502012087728000800063284477093033431332455681149213652416330419412771275183519310688176809770848923098365916745896330057665104186687863820512706791309534189807601713645432830376057907236830933777775851680859247869196796015105135376417498800717442478112314200488347429138026293819867527901884215964677832521296544678821205114771680636335958317694884207827730844381599509625783873170093524911115866464313226504744052533746834810773729317938427815598621457328865897690134886319671212304779568522768355989856281423016044933279250747357295246087440362429148868054499255190830391176504286520140871677578176274785640983839994269356863118402994726619053611352016644629522002728820913091972537961777334902489817050917429584779539379565028376680703726873689124492701631079179615465071228967589525533421123064678539230506728341879966799047297795281667701180144713351214522271954693320230527598491271385068424283575241271570488362792171599327878654735985007642365959630969758990093458304868831219307218925114505943129120325714230992150419236182872791023980265587331631887937202322909884643385305619300475718279332082879207962079310342250404486146268595139004462630509581718029163962572634796738457985677314652740941081927073315202694607428017830217398191292292902607765867619020818254762120840692596386309105087482424908193429855016810273716397773129519822001071755159821518395359669273323994175879584836843012657030745386704303118390942059104154996727045316309293782124537691361200308817877477942947038756703548935584747516299482855445841168719444064856787234753484708457236911426658097189172466812452888511482815115493751468784225565243043391761172899258348152362632062762789532147850185786782925476551524833579664233546642562557343242877627162653594752295828824425556334982390303556889521966804764871801827968018439571583956973162035047570903829958404632718150516051988309331837051630558058839229549696603409111684119660936044456578560015040555729182099599098458480717581566388014735210039711643374673764559557338111638600667512472413720340377258905962979784236756737837894147573623562721177942063651174230313059423262206767434847790468432592218815989491254622237964430703159854224110956546244877970765427981970247923326432358946412050602451206396023760388782156873014053908977069244900272728473234787088427980283824521041102018681274165137464249130425942039043632022653921839859271714936545036973651269531934077409948474836900932809364520699624110593388924307363108551193139566782156012905923925605200807272713033283448892125108446436901479567378196455505819811991230615904513529006744036540388579490225985119148122214656450145981431422599522626381019896769697517487223187768324842649864159881942017702894826018443236293722537661062107982709610077673257757187093759582353099641048536269352161747904832587480987994790443684299646557193194647813927569209703123965300188387124340566270677955988667350719033432088176498389622723595254827196491167352100505539640716163006401838612129218778212352942600666340135272779705770091960984254354745158757926120271276013441991731578964662379568308365767167005690191663301003368806358478946348216411674125877783386136775602667498652695833298513567676753103688881503721251394711597061238544947612924400027138593584783661483663231991392315711231674591550937954954396335168493855584388588117400888359443386990552584371130923044034215444686714717511987896233856886702669729995002219959486544320702511237923578912583488114146449100173466463172803832859706427438060770231237519671967342906220991376787148057592874644435237816460503052768709441615092788789200675457075745483502104954720009188812458479569664146976367102356859190269791208685023330924376921979598883276617754990439715214504116351131389892686130624088370765866646730804206760811498790800573768907362408755049437525109890252203919554898397818108854571832389232186629355637391927584607652335322919584568067262961801793869936640703957672890683156541591450998572443218538254389789255072280121851356922904058532428833535169587262144718485200691653082259693823975743195158924270741484599482319495776674383045812389852947260175430526813592622001469661684696501896425972715545292138936519757686256524057905944300410054052742306473479447026372933450955001786638377814650874020768818060951067763305664718232769319735906729535539397129748391560111393168329292718254560063234141178200511992293615831308422109626128198907890425747809449309568835826074166351846236749213043311678605300469215799488421598101020556503158840337719908721470295468718021081109548596434989289095489140274388330215516527999952434705539834781989650906690414569987181681610965209422219669749280412340810454267136850909865141477126850847036420938551922665276280541892568021761815767998300404147865113353658628544101392734745859876980843008438117326715522354239404745107451980189566611063855195515885749165493452426540841593585362847327469168945995519097158202494890077508050530349014860403597690523181839544266617480288232813027316537153070898046189026734413725370866193195474733425639149520160842188391241990936394163229655008658028370815830490644449432493548080723794197807547758250761730060537203846604418472140744841298852334205627970156446452328923293507815476284824139634589449132613814639860402021635254472371009602043107988790741681369348664007346497667317476573334162289014392070107199618824132287902377663685817029664035337549257223582372215214144862243940743019110778122719472782755367804177286682958761681159563790989730177862882156646941440818778115668828937655722378903892427328187547240382109953625334695187432650789736325384063464830160149184256969276341150240713728272447995798040972146158368965023319845163555394917690730323557339462176794954058009920710065790983704060066861487271494956018458426299586020293163286623135679688287621867480613202047750742015317082301445043978695414392334484719883058839279629315837131332652668419603329383786717993487421223050258462872826086128162763885097826848475890090085433959466970606250997733917329995652895184712410985248147707342454588443760437548760296035362903214586102474982767454219129595486274485627117709189705090517451053803714315374020196796341957265859972439036030259710517847979102430069223417926107128992821560607835371300081656129868366027303731735855013794965521020605927143304867222033285447736899706635210818543137671056988963851962005755119397910205954877686662436058743692257283718369335461430393851896860417300491190668710952418812521055980302844835568938927217497822410938868284565915554885459880132461879832376090107659196339266076370927914946267372309294124276047684515926722245631362033248475779100174754668825753798372503068532387161220700068361244517181318722509926386959920816510455507462290627340282607284753531183606580446754654844043377395699893836846465328999633146783295132002411993912738066909228926937498558072237456408708435960608758323376899858569708854595162507328071271040367818759979479945813389271671098328246998801834671202463892900717734219077036503533620397524456191499626147408652285385766837074148104366025838149591692356766306675100884030833046752675015144489199172229282789621724325455902899967310010716261637137736813334828927315918269329668893362647874667393232960581398957154967947798254070794307491532473279390265099628775213769045435649121605743625133743466949724253831392154333247845342967579943547779217922316328093993866177493117145519072845180886042717544809427774578836567580460718860302956240363946784565772039223076993240398601004127037865817705261576066876636457820535178412591734590720423580053403051622457991511860944046777059368896533303350017296052416158317749679473219863047126101491982727016810270904958021908014325260006121614221517568817673161483880849542284588112981429319186973839830282532272109979541277016351184085530705336746841360548890574986759645502040229449133537696837818459583356481971779002357690401825558732314769980925187482222723271288628335509931141141770828923312877355283152573400297745380175048411693450281851028733535467982571415470311564852517217867982375394526560199279806583245184173535225851077966207569818342376756949160553550776711613111857834021917517754292883444036618051370621417693137064116739463131493338433017497008924451129902533746124381522082322594950200446493899330325449114172468339288270707720662494373041193579109822752759604798380223703367010800655909734389358890636032963741548285750959909560378717880732990744147789601541701752932566684516623802904002477735935809770320244351162874598667791544440961341094842490186650725967131446633980623560609059060936709236224862240843381216609137731038865141558112834910948286435443650021332251088309994589926947492630934817912598410113381611400563622011368075366145210747405318512994387968443622841138663072132971915260317730508632047478858439072996024886260838351427075059230897576490339485247614695582632694388821817433817537253310734478827376154931614904945725973641521487054057676030624915717190853131497867070385382930997880049630011204501992290540872516004433565867343147457101863663672898342158663247180031892909590349357781881823660697275717091901667793722411007601245997258977413186232208600703753281026634129444935180825347596642470262907997115420862438421049886555786087089720437517090224611469390527983399931934279977106315286394699129608863474881898301165304073236224357024410781413973168694919175762006154185807546516144771925659397091540138378373202225590449785082839091206838216296197811524612216465822416226317199595612496090512261850313904799205054621070446856732370369641821414035897453870111965719578220287442451435930809786127531679253453234769312541681192886784373241302972239553201423143780078045688323498833245255263145818821217046979203514210355413445511524210881697520552333156576310607074980794779771011378571347538420175948326782956540993425145419114751271682165049307277339233734395374860492890551065236902816565295556468965583388179033303969631608948655737675176592896525438621086057117079451415085026055238360373263542869928259328181474192747625479111017084431336431611211835585619622077233008528326533193937700126751740351267510502243066271155921698007191499031749818181162507981749984149166489078150683072824301336262556911066950778331921217631361455045971542718350361267197580630387195209705511943928721535505123043741379837564793721047017339757835282121127104576892426611616813223973638561664147197457863652310699590592620342747140975397076034773643152823628884795980494170808035790857304971382777423755813019492346207783815866255067408310211963642040935170072211271620051095874116231291565188441213980734988190050641373627244167041982439773241722305220455702349740777272526615713358958663473095945680597065371317707543476722040609548407595019003836409470157845466440411608419230707333972884211968602143011358396559163513548423122149171616322424867785717668583757430243067871670496155810442978290939109082195048228620068820193996630317776213358777439455436488896774509929406092614821023720373535519703476474233996577870017677866495612347927410447102173895841596784278379544863751503035083336227648545576899000995992754813614509885514588801423674797527923065157868103096079744156791836442482158197495880937722889743576676541861072152345154358992865782882635454711122524204600123238363593772582353658548995207492615579918041555735517909858132828569169766500498444260353928617765123139693430872112484195514437862938345159402269754431359965317284684025207822779170860652004250571421763235924853658343571073200029083822010901054550409243002271562015325656793175601046430972403050141404180771010719056613185225569337191258811217788577431078530722552526869828319388008812702027858934230871750807744025084821665751508423212581671369733737341184443728541730907023751199868300574783098924655869742468956064215886810527102721254522816731060166137848483582127481970398096013764121797702855454212868877179475785254062465248800206639275253786085591037665844425392343667426121168986942854956503794355825448219832837602214423222985441655662369451704872088092284719863773355384374199585900705968070453938484232408862902865983107552450934120660498838921860709049889993252068555839534606329365493793965740207539310848109199759985392353925861142176331728948202556326306590423043503351658833084519808680739430907156902071201755955965381823217312595163838624993863777365789071164560663518127984908885527113713705929400420176192361447829366434271615491831470819198243357923299116057325497682229915909872286173833158731723439790707391142041390849191335055228707550752927009031714090220213643511118722747728774605000438134827683988382043868132627482199576723906751517381735493281049182366229486729257193995624015458471403126691552407005806325967754743884314888866669256655836038646366917924590845793845598652302808859100306067288031485792875443792086629595967079002800151641996714105884468890003721761679502044487385920558293792757961153109967154141372756416825953811618590509171788097044004617998934884079539818295003128677776100722832786944900337363844359972249671619673689918853436355204166302009544550156947270838462357228415796132737921665763522238938965875018989094426008862275690687466714787748188649764379589015558518300105278508116125695531979010139217985704423011873162776966400004086459469665069564070290625886526462548386517792290691967902265067509067193372053000079530926755347917314809954971223144401941557106266803372910787603851615227992161062753257588748638034918661804151276127048679097996836244612021171797565052889466056378312411960395242908533637244896401826493007645961274804737087567517772066612176414067469921275291557343502385420388088698016944475275855696345301262544363666215798725597322103173967242691829662963467749513927365483198465118419506516258860297424612780304733775730634932607240992506414217909761688182379572502512755349994852438568659178856638872931037822190191331895284390221946333321590067646340194535945460353137136879052354948480135552491113389435003619803703522204755848899116649416098344956590506349992465166234018719359372857211717957866854261480985701705509455085896141179654538352468617389890979373323451210627443962153336594077698736656924140549528808066548642711023809050985951393109443176781010802094082451511159612590371037909692082977790908386362265943115425405684394328216947243222361871336046986499426083421683104249803772906555216837358813821611421295091594114337529012061300474912431135827201066761495763499023074751207348643715418588362550536256953544578626393106856809538762501036743362650171609149359177549852834310467655008941496084152892385345857769556221746775851580618582870436031777263293638489332689447972856513078508762661027313537469743633016153042326011808575663806249899158672332701821223636187285872910910196366630052089266266438610529381860669328937366067174499949957915774624346822377254302255416506308227841380477156406557347735444694883933716920667978596724515975689745213072207358047483657650570876753158513996639165389319891642753679267350311785382534982302900084671589298224808557012482232051723682599509813733785977878502311250689030618103991868451399034587462582616869968453037289184133192795831859745035406837436663620222913366778546515744664841180026904106415629739733596495767084212452281115963130069084792066739652130906908352413015636717009775294124465582281273715180939859387463394859769125632884589259298797221472351190198030104876408032232944494753340294775056766092163720194930914774980658615016755384412943027880503116537282492773380327827264091166651333379893328318085122502486074623032196925072967617511529959440662245703500552448677707469674817260165114802371148790184600888648716756490387227933141188159537776022381929070447733088823660829680741734528087886212655947792141202183289049396978643846589408778468616934853953353106799013708457273695795607724789244037064285511015011700442681072844572497612512648289709922724437997819391213661738099796560440011809815931890441701182302766056350388660921098741993294955879329627195747314362720286647634186381340359757501633574074720411617140769987256358555531460259843793835373973487392776913821026522707898062185181962189108725209224743571602324236183052211272541531735592493813171141422496996318546416115325017745719822288205103921783457527314598806691436310265944497464815668470209475160504759629372478038055832163926145412360355625686229431042782072515122088898547016718722339437680004861717513979958569360817070840836407940007617901986449139080855231710752285094991907422052200691656046845224551025336228286492418731978301354938567507257989746430721791083223989156785336588379788474684806838094117350612964484705843290629171070110582575329173418872340528137429880371035074070046024503369216776745585114604980298992547805679810146096058279424404038893781502772481780441355316661464022911114261377883789920265995180300677340756229661960930866798406915403320555067224183552953492619656581267475825589499949534592109688371286431016592370817623476451331458665016644207547711201804825890795128553415249805665974229165954647807611387899355856033744931932632264679052517213300682627649906253491398375796939785505663898793165513859886848432079517727619934438313172172264030620109577502514939446278879777049112359343453118624797377290404916972115846942701203253795943630147031220176710611699603950989218834353016278120304118085359745729174697883747395811117453868431324428404238574119577980428581277521659274292464937806997049289602859342945861827488497797126104937105291315745595222090189633793194911536625973835540960338377870830032335391764043856065705046130593252638899858123294225730589473972508829123642043699862095979458619623348060851548353680790084066337192533867501343546516713653346486193101130939377688012786672119022486778179614247046046756179193178834535481343833764456974889684819265812305158321753262869507637898930399712663207900054097829080049749984934504571114939876630047966835965476125018771712440603359432368151490622721083091182853252305910215732350262542056002194261809025247739744226691907407915003839851479756610829931743297213620217548721146330520979908392560328639374979065569975169843978125441302841784911414251091248292243034623359615758866450931797732271980357841964675092258558828264922478552978762223453297289400644635933953893876225015755717625648226819570943405719434000027003609530705053415683914328648507165581308059213422213385792859343999059308219958924526444517440107373030810357100529112848515238570171766221181765874825780678976378772944621869608662703736088659132755958671280497568561332111687694166743894303206327649184563917440825506759835925188616844756074981125588502506754798255336323286018067590815078093132442622958366697036451542897072595501513397877998269785843946556723132260161249637734547096237002465044289335915720716832103983408965118183974628367233367742332515103461398336912668790137072032525071297639016912113299462443864648645709634131143428082560464455647494662005054597548065016945787198670689322176341632888974593446975550810334542752170117552150287588929874023043961741372143858179899815911758589505030270417570878486106393886982933399272223719296704338105459169814065860742535150209174732415280626758596920173447345953237838356573190688997429058074078975447260657948576578302382557592979549321093883795245668151223830420070944788008256338744008155877360365507597051525836183711877939539171397675105393938936019303236014462150663445594658624729242652704941063631638006107559817888256577271639824642034904053591068517606179530209679503411171774434639947366417876823018313039591410144264152111123882153167712149615672456975317145918979093333932745408986707374313230176145511723187817393471342225068535527017947148916118420834699093435554717119536519358799839619415117938624829265007193511312157111173071068870883082752982458723898874359742334320771636857436095431606324218880651577368572501834215055754808575690431993048511513714480124902622024210014620252566475376593309529806502256148908046858689436413841103057649866903834225980706647485736192900491492293864316079561324868732398352055687725951778833525172597668906642883248231299480710261387346374504974711613431320823047161627183323646942998280586784753494997432156245547759694631137271095632812045074433398393407429393670975226487719855405100092498970564111865716596329611800948126501338053012207586693357806632613871843411704613329997151641747952510785590533242948242805393827827607132454232764458469776220641255604394577206228088602773800331019768382660510481574901492630781320313475427650997010865039176301270929841231622431244426112754812020971363953394136891693409515832385229360760993910954140062406216561657208861640376037187174861444002893389392405584175600219831158849421575729495623358504592081670167621750176988953030400998338041636082972599357109553584386433585770190776235990592864998457346196532306043995711775248786535269637966534384758536104687973639178363371759354474352208923280853988996756076966267142825507194889892292973285223943620726653725618310956849027003359052269905706211016672129506674829898904286327391454364696957236951633267464077637922835177515550766150785524921913218882820422545202447954541142503075576151602547871164061371987290102760010419836946516232988797626009174405705468199694748668768989401785743838688104653702059851986904237254450967282914195062621090059104061562959552785708730385669656232180256467685087295007673973902952192683178577162562469998825712883016692280904477435579511471208128496206258597469826277756143261383522773069690517818734201076129866923699708448496762824671104862434230259688584917630528763876660806055042934514832020341902432027792610544707725155832817456661074583112559941817134981661372479506880015779447369472519237493041388755989055859785724984828529366118414252959045964536384712260032444558875390481560097395401465735879157091643333802610527106657463727001430243782972964805138760051955898098354271548803393161374102659180838369626643666623805926830657662993209055117615607142677577917233257372326647062582654136890991369681692123972042545891470226145005157019383986886532766056989443604052006152766096167383774382992370519596205836172796730449357923096355296953140309092006706513382548122930860791823578143407592168146679485357514512082374433642695774677545242619764003490536563221742066082959945977134797008418857456604820936449410177262024992382889801379089569157290545511935939079706538733770711122071016981888980607403252588740113807176322738576516243518522034797663894892435207940189321410926568524342345999672721530490400486870479201462135381248991593666393376786456912877922807613519372413383649189603187188326344616266479875326406621448185938816956873631906386690837585968063687342487556284220744644034870483419165350137320213284755340741345685110885710753219060609854608689649061959279336657570312134209094674785679223313892209622570764404718846633644171733443591454438117717527693978980320003663108254709086328399382530055661331901056679424314818976730596380331174604743760178077505926965708740057882013453356972057766577415609020884357119588094085594392045638751216996787977940109501822224045947287153716920738622474440451555295984303553337281057124547455601930947476156166236583138785005775574622114578820426077535829221732556402364370642341101492901886104783401326763028953751738938301689822631033807510669963401886280468871078368801781146880339229853187781294811060813989098139487156860152523321510338395459883802948006347907976580186630054730390284710757151605909879794689467771297324129035188669095144887043706934623712064669614156212168427322293371175012158382082131417368201636066764668981993232076620762393838102877003791226161182646042459696590570975476105422080413888555263568461216727757340454990374532176471723934894028104923281419222793754260667157900959519599548349667260175252860681091614462459793051430902795673669424961807872194933781929706123161148248081706706796590673134040817997473295562204807271331194576403912784810153416841711466284615161236688732460859077296874573883193300300314485979186893151533299698265408278895751758502074879835280024458948217182015869552478479036254395194835115294760540217048907427770850976867498469119485357087589174133074554087223149731045520480114588566678314581759425340572081863423242351627000062147525004292898580181274682932139763201982466946563334727846283224888067486306566766406684145897195848491813524838451123330798133196926525460315985732920560462007819607816379029468709968188794144954829932866186635063852672965169917960640104251958294854391871623489205327554024485804404597146854238095140598503288378101700333311726438299699925578585259765592564997176520911885192657687989410071345388636596045305659052506494092414233787181042744927401377504840327189399384050145961055281737869461676291334645237622884027086176977470572708099391777733725657612167469403904891019574236137230226282995931858285902782294334400149379039071940069785984452577444828427317835329326531918175598128817787442646262986600762454633353023567811830735385952162531061279836766079481066022258183694790983540858776929324482516227587189303775766347240260110084972765770977507207960806959654537240824006289998372383098935862417636440941082473037748431936533474107155696529346550831535393029115721128783560351288717099599677976855166108327966472906855735465892446091533788117021782432733750428989728152658652381849285276391235621433727690256431141719420960188583808519375341179935442325589911008554983085799804688155307654005578738434573462673686206866118536387932961634729535582937487063662588333697577967314851031230790999762893804106870640643963151859564337270907626087042418169047032478790325027538436371530734515676125635558067829896769753848443614422462970095934508500402547653350138976108289948275847913189038250556590160926581734213034561624389550986473399245814003647418057783464168081038430283182020697731786331127120641038458009840287209634867305694189296515831082885220603240774836936597953003507313227068049713235791406883854643893403929506129659277826659064408933041977442883990490207340049536612087447607357434432388903449689456332862628588360540915859827513629488673490647178370658258857037567176325798232636457066964712167621354169734663095019164520398125339819808805613946779970851021703206490492260952029965762468091475981648452322673639004577733253407163657763312838669312034694771391313180782297882714976333215134576191289359621272101584967399155751986974938066097781526112180728675956042848445937946272617182298140144984915550152694782823781232488029850489204425026560800678647629117651761101337888764592635726623406224112646505111088744781046546372431677408680583596845906144737738100369567435517704473165821941681604951008748953511190641208239233068136279752439921587929800936385980882983720505028523729759949214530939934541687526208670659041844829748630895761503317863217147773829116413907734184685340819492712829815332282616019515353727055848869931041582942914754167632900583602875652345418398552869145414904736535724274684004382361868520138576564181309479995494075635542282131684914970781040335561017546285600709346718733761150290130773602694297590109042087558808937297594592978649254846022332546013860674606070656086516952684439561413759549032348496635288562015697107690919709125391233631451377850139306636045565806135304729156013550282093618698504110624381785918901814775635725199575421688322660739455752174306276829029759003002153935178877591815753501248116449242778040231218270178504513292173939169596682834966574776421248031415260930146019720685416981951123630768310042803398064272201389430462622544044876244704823927768561925581402185644540674273036414139588775672049607032112545521869368079581232770886881524098974578499142521002671243098768214368073702195822213133415024392895134981401209615609901178847642236514297553444175190076323388996207532968063259130425213748515073146816855106393687790696011807435578770318862218119300730115274934653645048302605811967904010321406289248025741198793179217312652531644855537730995020246896361582771414792658496930910477795136976698319945802501569463934556978261926015242236725104172967291995059479661926496956769602661908004269681759713135561125328350934245943711946139112104213344634261227081031321393375427182751769826803392850151141278033067218427362483871266576673317278424770846979377395137324560565419263724291456080465485551158414150771386580192203839173374821883546730817947643033609872299896413283747453518697900309167340874765984333463659005786924734653716600743180525207706693975370727965828273931310455932953120868415500312530433175394736597665955348953565516724460558385064435952426316457561809893722613256982846951674760707550183219342387020902466019287433334299559497015471896913803531510301128187604050909982848720634333969008425987520533306989206300681483298143093209201287276775161202371564616468893129263763713343087752681354615862267240918293080568866522543179409128590462991356270045302746349231612350405454823996420267331519597747205307506233643371473602906601695670533626665763490460822043915458818583912677884052931254350460935806634509254617581933949416337999286395243088504863578384155587064411945455821411546829280500103159635205657693339443225437212852769088883899201108280815978907618200088449233434925069882205758944447215106657769076556717399870410585467046239066323157762795870944795671832223526780261985988402920866064078567524703335701993839800664068669074061408143400498072272912494836813715078771358904259738829846416666563560209959541879135824801432475138796302352833265508581521644512558440129986380501021283701207625386767248816174311264910471260231166490946624173074137542106413851167428250433896074969024535189300146257809778935711578710045715724712729520965302056502503162323483724100604002274147789660892217622973200659588652411149288524344285791248203685492251428734586362764212099891785688186112316729763115207157037737654926869309782611179611318379198184275716494968979599077657569008609604493367834101037979541314887375236687356628063887506982831595844948356439397447752883899681632887257462544170953818446419753978364923305296268608663227982238057312905710697902399535728596613622482756429463176293898156362409705183675910125071822928478069558891575668010980857222163517044565374898844961892294844189604026470484163497463994204725564643792191266588957660717972660604916070840969304361291534519461136224102498103035341225962852653775296655153382026231218711057400274578367253428736708496055597226586787512825684841293291542371934579108125960392286508433278588331582482587014521741156175875346393779827208265716497091228008803089401955774478159928707041301601805286978713801642440651532767666255457323332953161769269909326221279710819052322432953406814184844998031787414305220532201922810140431291174660110051017863028818991354346672437581256431216156597702897049472907120124639450146950479024451953247806178440196577492694364063947820792934665680485371925264817510334747637202815976749021786630368889897469650716622267449651456194945124686171650910767983702870695246465391913856797116788278712391548112000144440491882043551467477196765572962052814759770129297089089512220588899186472505586390496628536745530194103820296230796102170423878249883481789891529235715432265372911135144552337835599004182357864561990299693802224633389423834749373946786013206870647400918215183883987933164214062085505690937331016900916980434904319962942906854786619220581405394821850842771744717740164761056471018666401495277139659568800832799259209928270813694103375020729110854133951963855808945994829897663509329752805077437690510867512371274698693074337605179729062179984845491439372593431510003945540171805584722461804409153542439235934216184694536957722132169977232901936074478453170226237826186071395481880988980282470293068689115129495168382300739018341089481257387595128591933609978551140217466317408825148554116127149564032087300562883062469413134146777321699711360937379044284066127847823769267085907315484683680369816612795876368892299264701721951984277091422470109996887173360431507041736464600088457719900641629141818902166141378299684746922840098423872096376713484984853794650070181038390595092103167632147500615168797686803559492501123836923083698615045607864807346905607810037227164438484520297334923746447521218622367537489262516031354653570137781571238999521325331441970143864496951579090263264916019130681382063935246930486577040938125255367715867278762037766771623549113188834862624471856357646734987822552925190255743506849983404582309941582173306901780026221662429215043163602071999417257463789603489507274354895847828935556997943942221120402471868038731510231337067207824634674439448144365688732347123202380393744390438472006343470523427142422081263838800427481218663235920978097665191712903511311801595440108984412363685931540531353557292641602972545781410586587866857151099980830226837795040192197438421511603130901683670886377870490653739108945442034211351790335419782289018844611192543584113229415980567326867178715821067158319656586762279111086791693253392090110776996512318687386668430179892028129508893003532091225461846862743378043730977629552879960681856428924921305113036551467504304361203537630068608265882262857247565321162720232684347173012954175536646892832868515638104883850323298852113228341687707741142306045346690728583637821465331451680169470394597839908645307148441612687490551528715833274057922562844226433179490258371719928749417537035316019158755559745836928699928884506968097573637773694292211784231595428884325937147405188095366742609762372460207807469636844090988541359805809868232074129596785957252730109901692163496451903406124397213400140636633110044847523674959639022849039703976289793550777159974637118634678659902100755684382278013077581799847345485222394039858324721139341303045629660436267672802198856807175724007376015481265010448098923683427591187475534907741506568820843573627497714973769264712079497743346466879166029239109426234740777305136831376273743841381701004317017497173940914665193992877474146025949641020703591754599445367258514161457208012591653326282267449311526755182963739183495499883817876162495733687054029527344691004816157236933772163605982358697388815439000664794532310442150735041023002617633368034671411495696756999633839900663780061969289267012081953319487473512026473828454604751711663307735658360852342158959039851393768771859778365231958164777852432190882251799791103318827211984412670009995062100648046171275891605295883730616845399598152514360798427332452484718602134680629351619182597498330557228776848394010730606293158976638561548238747225084686046950854839553646464713243228872556701053535638999717479612079036469558238690277557532795675798412319039366279714317941632248130326836281537722393965232684343772441723098681465536290130317772281972407638869560114371291678670003954729753233074830370864222698040067937487518495918251665861781402835686465458023158624760515237284078962847909046923628586240485850642146105913016603882537332502701571769258338266372629894210597971223621484968637603079869071565897712852899869810718826103128351824058883329447241818113003236667528698095213018347933790202747210911089143744758306565678619634004003517123351681473309414640949444913210022995937839427083375034028106068644717301851853385334060549320237290209647014839257889658920597640556780288820861454164496946349596263443595305187475803445207578323890830424356556010763526584455062945843808824474370862025377671779999836502126148607057412308012062174765795774984262175807377887467625551228980539488354285161898550463667948593851292331325228399254268081259008022956024020248605874204674206498727330329651801375026409737298806986117764335919024716329948782714068303757686508109282975348501535332917479682233571493785236510870058362341706960627775825859418458795914712453072281676835635603597741762322131644626551479084372947475488385601734300824230750719128458400522937154675278465962023491264807886046922675604888476187867725888958127207156361410294092652304370734832682074283715248935425570267374984915924757680776666728146714518236732408762076575211275865917603477642603610629051422627622821500236635891103088464650340131217301544213142386170917563743656726097321514148364571130567920471310700616988531645270162487526716342183886845911013458339960910030904465786420320549018506995996107997068800460059925957107718915175273226343636129929791487250754951376459645015492915943610173090242222264925670011569301188786190690637072905094966511007264464724045949441988352189073450888581855777798720391940575338697025657724985220755820344364266389397230319877841755813419135404798537232301813354495363344521382256989774679360506468904040335099362558065497110736890494479811540500247290835510208037497663524762811286149411296751877461101720652135869939533109531780137029707264877717909282441987105673942890587257366587939143754275139066433443724764179657303320951080045386749597552658723948784173372850980911483601394487786784565658942495782362105778363119821868073935729387524786072767830273899077814531544276492279204794823499213208260496801521047162586682120364421654608797007932768011691263470301958378093894921500127235021954076335108427080656986370782532611417400603761278428354133732760784918183405187472141172426860408451209563724449735662567109741125591129885675118616615029329290073073084117667139559815571889436439034650293449508829690050422122997748629871450094061464069843413838814126842233031568761652302890014754459399864769538350935405595269043096806288485547596552250334669422568653994426907167691970675698432256160737081943587163307694667234517348279657285775130833414309172580991210266600392749732313875132063802215204985013667165165935619507178004209475115480345177471696328507616045972189086922127808930368910058832410829352174990678647378115707730407628099597448937689080977769723778775090525775094352884845393948641117381425885264382408349580332583255545129826279110462886689879536669848804284057529833717811493902351147714656752615342639389736037611662273659125559757344361858161048232646877949001560082484243184301428463251856357064288618776968799194912328588473970891191303277424047216843359537265765640085962627687267340556633681682821202722292562890838833011074779081518870214541290729036202420121464311303201669634153179358004527984649590902264992163274174801599795615836149323825661867040203116541939117940997835855304574637581926934341080100937790818981239004943772673194522739014665734219018294752804391866282802808761209807499130748865066047241652936075121610496331080373094024921765126178564991749536044995340164007347307986601622008406800911751759864806606649272668716831256879075132668389632175967140658439963297128311609096831459006481381524600021336786134914500340408123501652909319394878466546759235364073364766054422264940253013964348392986815533964539977366684235932835900564905815538138723508232438250180576815744689901770352335206786624136344609183273244341941273043845362082173338992136480838770312758163878251937671956759970710182814512073705713930412217114999779836734335820449432813781083640143346401481198898852091278831947248611599367512994998787696627054431598982928418329750093360452203780655302412302234659852368116838559218425746992905344027611012885632894017199029513636715568926073407977249955344264125844127418426199702316854558708871323205404816108714238756399826120218351238551293701597813854206962409883821500868532734098551142369499374021896929224309935124315053671324582259727435716703168275037245472062028991410964137913723830389672644457708722330648044251974918113647884233191986518356597107803686318041198376772259952451100269255833185958478649080506137616020572898057317325795950041281138988648987095874431367064952014805032604594321771120271994274851837067876502380956175893524168805220761760878485315727230869699447985340393758664746274737532014216538754219175919309370488900532479342034857004285783708436544575154070697491309746473465869635456642846347243296284889219967055434449098884290800769820914699943108006562035727535804212763762791509960886802541056757972056529022884077278497397532691326706641054719134468425401200512503010224330009079024135866491353720220637704449441133433089453812002401551154265648294389063289930990958504614532767061190088476666267566260176888254788737434848030966151183491736407435574956460151816685098948913133729242828854565656902021266567271749624609841033954508329462751069534884629215648234531513390072411769436836092790124481664704567272657026672501552800070871853094243601850187688755036126965782848394548752350712380357790335587436916364204377381528383159231562321583211252477095724550631793238650620436619271209754568852173530313885791782296993226609855877438431882879318813732608803825428425707002553957560103902386413662632038560803701425902739471457742567149627039605992429602816893325898957115492157534717167484585665306303435094101467459840327570380559925458571202727525379621030597919344773932105788993734894114593831099243560837614757591211734757920975337992531192998274549314023359500318564413660632645372332914136811635828995053922789908101045517034977526617305058839716333349838223437987422042831609990195816966046768210783085305522093714119170981993170231325758242130621939812464089206629821683069547086281548982195796934919241155515647964066068773157529774370494398012089480351192716764143937605520811991035209576285261710768192715193521416662477598073825595111222672344161630078626657219522643963538230346593671251057469607456706030180417296912954023745437610024895332944648563402542243016302516792513226136171277651013461816190526254074213051483672687759568097085426498024450744227720433913824480141732823681020072713361535499734556354593523827736649581164504561777649321336900124996591181787996561625708132843814582853100647268090216527894982398774213141552345861465011425807690534241394188554967293507415681864491714852382271895887305876253368044769870131327359682539127883016242576632804547860196163465417651903816560539378869368667557946300055373209133432249794460759908283814141754256913622924568972481709792177819066731317370013105613463646263038405444105226469434224458724131830024051140521546557914502763104852032091697531017432232305502920985311847445932873049733499204327402509219566181334043874983835427169664953177746194831271067864752728752337027248022025242110337973657372583065441573147301566966592931622285716570419961102138380093052887203639723205890913279884172047077766615884929379654438328518248361386401407797772447143901453716634766043572506060323361611431206837184036460807608802229674470241239034445295622558771521816721989412504175181965659677216611477248797690985967100453138078512909052806127680201135520302149241576419320667548338381719992499161583665939353680377812303556364549127532203260697488817962443247678372386430946618201820975019030951639765501354691794782954671633869641893642465911595139404458121437259312240887316153013039491668406194142651103030565080329066192138671299498636299250180751583904307985305605215288786206380039468670572905071727634570255770086507853912449546972945666300962846948590201824576349975601863080477675171539940284163077508059728096225716656430368822339048360764638281278645791330552090025449603919098647334191130853382919474480496546506493285030106356933858043029988951617408053672204005722612349871910623380922271320692305497905257746117294784230459858337736457017536709757307098119977479383819062306424274537702546028895144632444401851566339009440841507909648323463479045679933693326675867978441860088430753149274890377255644376980269150289040891065442534126616789804732031645350890500493503783400299971333663687974180909407588528154278160380800720845510783449161914737445518599298617164878319881071834494284206751999420206537325669149645036448513572767324853372460976871392272380959708470553555418408761940394687695893884707576151642493533157970518280904046693612722471855352098112341904323618068678411080461486852468341065992557451218604726447438629633389130022193720308319845424493519167547752260218383610481982552496169601810871344272549150002414319115862416746731245245514370085501848199223648653418900793994905537122028785435021916594664890199146257062902004442012481448058248085154698637209245794590661862604846786369731866495389753970214889513416660342843612492738655836160243089787899050624250853435812134352414954517658486798610395093318224218507774714273939287921786432944652423955297062279009903463684718907233113292586954968511327447397283122984199783902635419490131897350727062814851754963650306597316051700028419199974147509618508885536007577959694642963641071794364271917669966461256836122314187635980173878857201889127495725902728838121746954469098771166027367101960948823402151880016903021761834195965096939280558089751327143116286853914185687466775623377676807499036068220094336444052192874391098429644559369082538312808806958026460430206968059535506222630568789600323891544838269243923061200691846474044901756907783767330955024736240433704745438203296133720576588814192790581223123966190028435807007322578174371560236657494876383359122385136859212146762040750153695131533737630997289954264079259296679434114075192605327309772894271766308678687513614450471908441970269362848211358128411113717312298728474420204994604984386273820925664876962802673025562117296497974282929886925265435359108315019696958442873306733138149192939335007144426455308682523315073312375918197612860681263608825039165767599746769603247610057559917601645080124333343626988119177727408904921500433097641350089164978380738728019356608707048979830105058157759099739466265854949872990210496740335229906069387735057845594992769070342898003259286286157680204699026669905424157755345389085417755002109167295734538108516120711623994355861334318767486763402659818390394724743451594337445795867740767543835049061184062466242716151298907526719869664400605203952362785697027983321429634987593532153667076933735812264968692124022386659660063654412195684093032927773338867037745781902327561515091187413443443563693562882987249663411196985026014457091493633081443202444176783817951572460979796493848824143147668174858306322195146292426834685617673444855938114132227061083269684504913690946098017688148936214335478639260593931587478235742148934295996190933054185852493432263746607780416382402423188139902784368110359696792173882700570684623840058484372014497882093948791542773087067455560999467848928775524866846256328938971786694199644011875522200705674504826699677634699892684620754694415431870607654126272483519339966690519608824090675850612590600327489147393510353667822886813668494920815112654320793170708515896189430946967840155399410044172596973112424345483853437824701195692797530207507048118006942796615778632629210317722343592627249762725553447503332724861382807545111569805650738096320107547450116388746936317996857398631817549628683612371855438648249654425653021023997581355848472386774860633161970078480901541181193630466056406539801715088831272806267079582955494823078269187324306499158168498445498354566781903289076151461750023091738679065146703297047149974068116771043099092809679676751650565331110221148805416405108823572399778598484780752803030974199286793159084798852064711720936620354301736217370440111988263216326379173141361203848432440275406207383583901555670734488797516368059201025085349439407984016506269745220622114170226369622522624874759769013197283025710304476283245465147019753867676553073271661128669095441500423855773774714308345990390865970150300555229557105931034701480909248454744850205253822115841506925257942084684162706275113198189738891694566713241783928458740752199606600556900217423262419151969594212466945598753567011108665697408820806461606177540042255202814769391305092682802773833282210185266113157804801126531605979171955430825855897614998239956139363201028161865427384869034642720321047435688482091440454487716580608626315131873971509585759752537214286013249145699184118097435749433648965272536740842874107157281063130299854643161270013752341757830075902208465229603343012172188780682695095691464900536737853295865263278150552738544417578914106869680864590451077359756523418161929506556455657756814056656273563298790206110344824822191593412301127658708427961736095670296440473128566327719169786559006587727910514249960903784969084830977983574986381644699116599821551832940706204412664729882860800346889966301736913559546330899489484868553347819388625433413474218665071134794179468421730420177688213182190354885620403210090773483851105784314339507458797412461971064202186881403178810137766882641810168774090890769207200903650443076625324507428395438696931255400975873569188843255361172534234347341606446531863617822885140944556139956914404724130468508957471932236497199538090264284437905350683126845272626525510406246667961075202675981955383010135135276349523703982816148448227083870314133249946684053995352809807361579640632184957525767562482391317883938022769236959740952291148123463890049905728912743767930501792104146335010992955153434033143727662400708457379639082356437766997437526524365368377165032661602943130048913703138655736689104166832251785781479173245199363757362619305549530909258971298340815104090496710176348568752758353270101357928748222285345329075782017093273585964032677216811047521961827190156890718893792288498914470674187993717677540937118122734244517110906228943662185397530417710211525942702907881886574069416438531537837177037743222963737400974986045214454813501168997986215846654602596717278193203746914533092182833193253866531459518693959394296795274071902628574102171848729795155192309022973134787694366864045993335217067168972457889146834401254972546821677191243806569142025193677771592787164008015193935545739030481812234777384018603711350865297245461223858322993033192304849968169359026804625128188221956425252656239061668240676408320933592687933113595252944442522508460454086544391965458974148170935372708898702933042665351934245743054970238446584138001168635835856208599589306925949214589850827328475725102445497426785140524648583404659931005526907777515633371707529827250366053668394443633787764477795294668997731804620256295236398169620283014883389393238042636110254281124439180447116714317625446768149026643945283842144058463677390101622405709807419915796765129664759317382060180179055414237491222851070426286137291455508522998668437073283605432885226108379108592679957519939032965707244313849362517890923103860782002241014199870424960760410073497105823319273022881080491586271813887007736874510232199815595672932350349465518001520367999361498764327078675597262537617576908995378323052910455722375749449672823121543373695475323020801886885688553811293613130542970633179836712622497117325548963525315048217413266407202578037279863496561850835794431612332377387086321738062484228213130757840848592426089277513607114371696780704432724966503007949083881724984921650875171452233147838483885404590416556230318568549566139943431071350164372426045113439281617428463205167788370718349221446752521552843990662315031403643936327927619456311628968128744733462711346457874579328886891015035269184866603527574063735137079862394399169041253987675081128250503999615544872653064096598229902432904373819396976938274322321559867229659927854188386761302020439469617907009922313193736736514644750681145942595884818773853865800465492551577049627462163287924924494319561112092847791565931765898907122729420338000724382258750204813629870304044764032873020427431056799221988507925632822129131755129081617661943215089997367110609392522511461215663192015238316054029873559221510629202396775826827708849504731573491376449252727858162553580754236666643612274556986809164310008173760977163174050331179038959183582861117622431048086479669583968808610579710016391579097028861322601252620968927037374210694743829650152106494163235054298546976541085254749464659920485661186630824397660317110402110373169615713416876925260323232252812501146680138320451678849651475373077123974257052042201785547331258608851370116263855925612168378373034789080814815016346967494390563952459969852252333368518522450883092110551614040917124446500347417740718042335048003985306712181781586529122848794783417717826810778670419621273195779975595171952460116005890226942429276507889588142682569703620190361398414232119206837027112769383180007673299625289370643264926619518507819975905986007270607020419214650316884226730725982566717598912367590655317628841100308634758507634745435268062251707647266416624982032255595843175533325220854055734549468237017949446444525815707692487251691418932119681190369413025368634266504841733473920462571532409158319816322153737595043460776156335495235824547840614725920627304082951654146356020289904566214951428840915399685152130245773750292189398709397773359504351222940983755213465146615410241618238432230626551119046530965205654933960666484255818528749597431459240685436660770768349728941495744319337446690946728683644049995935342974003833744080163880088593329890885384619411258771246354413133495213261323054644176003768940759619794068358701244788618960771679921276683433832969328266888826978636711206502506218295110198219451352963266036250997105468934921408192773039215333017697004439743420492944799602453713719350557110130415903872636685863834990014985745485010255921458334047184149888952447553250534359595102449855372691283964842983301262102123080053585266041459394336434349384195181610099318554159660778353153940509392178551817718428370948443063217611495737655216698850602102817529738454739919125970765268424163593951197847338999833163514829558785722291314404123274101747824947688139909956260937008375034940754113333509338063182933101822237897575811773901090530652878809576390460657739436220414601486507199173590181584881686609446666948315804501251977001541858421273621708181447026838374362768851188734267479778506177489479475889482973232297893919781172079873612809944940326722214298764182305297776276875711947462568560785591957432295796823105832196242126477343054328524405111181368176074163442725050981091437001159943670854962922140893209000168549473038239458402354427728705241512044958778935757950276360936303043160387558963667349663789953189581369866829439271966160653528214851308489740024359291861913920198561253078643902705835304485662316229158972750700611576444367559361412954415777984019843873880129535676719060814935231187958009032821319770016007403698425555739193471745122567823697971192460518577790092601585112627512046378529746634342803022632113114937875492767472290397322291043478203295562474427784807524137888056505083895519179838055249843140404494217973366144265833757039901957680642982616083541043385818779195466437653177485451263159809417291769287462443721750362683878905996339832490779432808853083221686770114560667651586478569595009529863115367565273473797322175428991646303165997387026411011196998438805929588506187909277522289970269541172915727662263214593313811441594608127253726971634800900102306044115823537838819750907444488726639594109840427333154663058326325292909428041513771888241571462904160725487876312379402008101160193567283149468018577950564746888396026811066513337728831149002773086915912090934200365660699770879080474109852000567566975443256972236552434996694338909547432620502746439423129152579881426101757915047279358242952563452766832783434969283488992390084809604029150786683681196134008386427798955212249137765856748677213650043056533135936525051608424130241978162888711128008856739648803912414671456831750319770608684701194574739774471163705770533311453924373543090207489836638089186508131027574815566101267894916446797494318002760700691551279061427570185816200055172267922796359270526935893035288078834071467856806562927093875571802938666321854523423718719296539663749267546842721564850090850488939785081060774420176905661400283341961594330785665992342883649058394865071693591166725871025478924955752851063957783659426340651982323142191609879258387856460908180788142867551044254940518635941326394616017853743592734368555866866815659704014692527921731291153381696573529711130814898946788426558563408519960468365411463659021069164176575303208816648189879008221838769743414585516949679516887420908167726437720933826040543084621009940516472224064603647174586700832057583847932329775301929558230518860946985656401026704200431316527009367014967666518060082372865046094423065273573196777321463283739863208032549389984743162196652686241061035547642608732386708795348088953739542345266879802892616362604466302261760326684357995831024054676191658710091000728259808238172275570796454387592336811035739064495714604449479337502561182581682892099508256810964953529687872323607458197167623223691988969494516989699040663337956378450822668281867990758624059998016093630385043126641540015058709291755473804757355871968901523778352335247970787664686520877762320007179580181261100375066393149518286921606114192291137358314033962240972311243831811749371140273592589383368129082654725652714179461885514050669826509791960342346561165404333200530274649689579833736166046564596402959142248635396697498931315351427124744321497530329339007148617243943526237523380246896577963815830484155943603162911843812501839401042437163774337634339062639933080483811722619768759484870519099523496127564600411682610712273444048379114904941938299897337292820288922778320222428600231550581614499928925755834234541778758551216293526028222088303279551435078875377377835063392922423972236855744831689410190278695770940088127453800154787923929314816853748834488670677724129345440453502615185501019922564244496828481058165264529553678973221380794736398474912359137360159810699987442093369006168216132811466212925017662527715165307085792587889332177789041059695835959202687015371657840536633668634356845381379695228168210519242011271544570270202654633973655826771832608578942470410878799168121733469773912827482095960444057049426738572958239912340655082901787398478161998072068505611472947194490163845344404569315476762069516594290121314947041323694818469746103351946473356754924179325366766712004931584794965343604264704240246392340628586338154739360013984766475983351317831399432845097778376535552703667533467786741457355726975168027452902319027282811256142140880799528456372243335815248177702701117574839860193660062221516529231343660426259247606416757476164776886785848345814154872090484040729981703751654776302796031540235491214168660310994872700167681653990033798018366071383474972862352561964838777746430658625875758180529428515496267441081023900267717907162030690176349580358636669142935978887010240680884730463783695557202922996140261287934953884255556271061274399207166836515890467586072227580305313130699446601986501534324852922185431539501739258804553462997044600274343556502291196983849324103088756245843519309132985597892159000090649323949928599157468112678027081935263914001166233925606118401033698243342641468807960299664300638118713898161516508040943540267012184956188096174573777839116068966481715778840051729019073259916416638275631120810083662751607405933182800242878765645468256444569010580895760759778712532956332113273289203923076461622173124269596848117884700336593553034990896141126842548516509564393927819710707423986420525256004839175473506786592631284763863586703923526794346225870753903874896793266198138762747403649350208568479749461967831801174257294515352676612124988639450235328895867832206267542830639801090794904439877824294895471962879775118332962853439401571071348285350192556959932591818850673202794531396381885790024283741304880674965087140549246676928866340198953590904191551793569963487457883286359475828910302501016641162121993405477699895100242554196121867840330570712935243894712805718230283505130515455886526467689256108976019162448308879007824822985154167274306335514169827939072811243729179838144275474149090059716124567936359640721889333094080616780856432630768736836110418378464461642002967402345977950467950223253526030951135478790224333812016326669427479320866696877465393911136829474262873859793468545310868138139795075633888388875603724037461243494892440938109415628685508076053946841679968619459683649440312510271248799632798145226164639272891998869803258041575829965388986048323007087492318163143367168571925117168755900249260544561972902441897782862252536133200317631745957890958137975871702943539382193351289673000712786468101165959897355278966744239065725254841641222084138552830252436368219180979777506165903724756361455704059524949440526134184319136219094580945881560111746535995696614891490957947773029387187044375286868877141537910488810782218406738247819714123247149238296646482567950424267952018372130600889713468355310979752259886841263472143440830972641467096090287425326083826373403649206729226196375241570046295876071793063430256412944164930651619201055260790538692334038558065994602586515962235716087982471864278079823215023463619119595660852584917263532646523713959412226683922585517673782548722716936772250383223280392999586919156487318231624957992433032565815448197866653060081090703390001312075796511385956884632812550406130142629243620039288943982858384819234051110180667965147608187436809976123855937198555178825331221250312155797200138168224925124124006183235292427006390316067394231195394832527760397751422608548146635043279165140473169660549038159232692781294715058294223125766404860903580888491876343893408102336131762859508412929600082797489122295593456591515963442564193306756223448981031028922331643703804597293403276725240861360483266041789161786614239308497747297930678767819058964334928954655617875120261634110341113374240174756238812242711473384463094156858514890658180117983571221491685786157395077673899676973324617801787971514592870981300663181522160466369687501685853136215245301344005793477172587959995251921670802728181119419415462802235773759122808631951177103678142651809559975470743565307178985539896481917891712931848052067730952897505979925726565000969875926251609871992476092185731049218146325771377371862621688951731779388373230398817994053656967802511204372161186090522168769448225416381544950913694436427052007294584365041104647760445108532078190359407252836796654064821855591008045590871144243109967281591252690211392014925392327227482262235754971466600909259597726700187035699231674931298539252118895344629316025419499248448206905728070337554105203523570198107829981172252153197139525309288138484636817061636860438424112342216483396289782136332351422362272267880304463039318726610221171915862452018443386404038807571530249250664445888913494148158236114604525229126640083489199131987116367543041550975675511167859675828126202779278562807342151414281235381416207466233841333335129368728303762503920882424586296802558935203505081902732392930876368352132235999594798804634105367259029896691093322577558102517637414992929933322518380986884902798911514188492121807525661074670102765674769497817774112289489374365081979594471559548917769464086213696852634415165842507449070533938535102831563238964356310064393101101965055419137845578528686452892855200548044918081351826257439803355583064181375089069648371192024025902675641022898707355001112406752232420220112147894806399456014210976794247782470618632873759726949217407692546310706721047972671613284524075384218587172084735884774315691627835050977973924171988606868643773902233379949250295881882371671710405019873157038874830584130582473168719630817968371616572300275734133728902297585858223012991773608959485533235951025933579971984801826394900061676778083592279158648335756070274248734963034546727534553849208202489386500048507807015409187041574137805437728420161171206425164100932890323791763409297145623389926945218810912800892079943876916697552788490726158941661085270563450216972091699427674898433057811820453596803397290319195585865156327600383977367620206265992155017491618759467389243197817734557696655778768108262096036899435997246197604251859566627064403187469822128058900884201631580622728186486817755090047005247198598493227390478231114747820656472794119380510735078380270019529925915680706099381652545596273408240507234742600359344628608294086799681653206778469224481741623587154548476696570051708796144260029517088192344369381355977575341615910583879279921816076007655375945368763348674429790257042147661406808528970266066358168312659299275564546580277375607114629007962231911204883862316019679769407475876129105224946238309731563248748977132030329281574339902192456436021052493203064252795989053893138777052426592984352422338647655757303547931386283211186783245137228021641827582430633886798135321683471192193144346483258494580160972257354134519425207419047561560797299041214903265456716705130340673561150026355920560644984678312411627359741761204692301430477454625712778939013507808526314332301893692046396292900292985293805974798408565572115887604606376314528132113188136133572084966425782907222901152134677662357177182432233499078093505384559468178170915726774839682896941523180534088606867949032526200603539210932756228089531204902769770128679199386651074735671678463950831172034472305612149115845970602214852541749064715655599935336429668579068929432693623205418682344403928618719861104476235524191160217250072588666317868659880079236666087277557769467820225150471817063568979212337630298749517990873510154949997351104096341067504963405078192322256927304469169958018316731764111660932011841944906078995720387764870089106770572258524906138331781733843673852314504252908489430272095068500323682839682806965112687858270737548082378741363651422018429170675547568246116597640651770558332490625883056052273193925426088344029607623808090002841721543362506478866401408230355996496507055381966432536336695051346305408755958323860293851698776461635998943747331004952827836581170241454890426529974856181390072157983190224387468556598797446775927438309965305448322356933412702088501818631303830597546628725221842806439918089218044223419078617499039752026382382129395696452748969613911158658751327652916175461182521968353139314060014297015167705759244659128900302431654373576407747983058126533072509270482564684780459897257557458114768775757155079029559321156606541601007547906168837216853220204782333185743757863411598721537934184581479792829756374823244999047635813761740521411156786123455854592496162975168567029333227898969461875311184491688532668044365372305075829432194865780544106012224364408619752111593661360030924213255828402298695344369928899878427401038659125819953595048799211671223613161894671959987987019818906393483043890563873732492910399538423185400931315586333733154773223263019024644312911771822070912796143768645629641283772157866817511526314348412684992292243135674114280631850158491238793972206771136461271335290500757563462661631871855463920453780750221257662228627064181992536323969874857320977631051056953942015972580970163098894046802800221597028094901940720466935779059968780468140435657973973475167980067528649972882141400742164003072940220044280009097439320241487264774763833794251870872987352375316420109063046250636500664355537683215001166249085838602804260610709395040606779784390922758560920203327646555347969024134237420422268194550497338506381325159283893035802018133800778879607525988880979427066970364714433419655090773000855092985926466656129250187648916923833181385648658885187322607598530913089887114635738769737209252797174418945167616130087380589159076476641280910495356585848067776298527513353744203558415785828155901259079635794610238116913970424401320906263391245061669698399599029052192899690435662810756873654602992066364267609197195567110892397348004279095941574894524314720800746795039434635823707223110024698189655636163708709775790803938621796238308025677696521612356702158943389010163146807098442799126913064300276066724674580821384057662399214198830808352588382717532707559249630507539133026775893642069264663363000447718774838012443675100194146945324369586391847125826157468832181095078631929316406163940275452235688082755180077883714763372795699935513785835308535848161062106732171021589615496380173641579546500763108951388199535372739490536459839966954944522276677564878062146792954280760237277918239937568280495954436661995916287348022287295063460543534452209062663483895887138817858107878626826837045660120841419326588673000436595078694556114196486375458580993480704463674167927052203272853221388637382210952152773409096396542172436933552040343674353707552276205528562739731350198723697367113082634596953774458837576093506522786483009950543319220077028150295747243353508232576725095608327569398204954171451242391234990640444118369031678922421773997736261066956270823484560104752222984276378085917054543538864534231071499150006217347765851097544431086452459514724844033138710723023505516784978002565612582636396501781987699425721971399107945379512937124277464298818928217749533384731618293892754170652076272214845670614600548882789453643176218704129913214111329562784135179564434531727245076521869663593772612332788607202765145145951231057300338821699391234380110178714948227873050558405164204149264095097011060566806053213928462655605006657676906398643685377511081094523732807480378415015754899818378644577762365087610438870763951777610546401756332164295151627251144161128121526268569042822461016181984015538518342415764088522098134584124330526320432896649115203881622735423829223134233007022823691207618605641262803975364605719167409200389327847458583409886326149567372530572418007290064141872651490696236508711776315395075837444872847157149612391267798558055193022562987737246001444496697590508563190279384871216725876950023434411982299239733822787672920169171609879169058745396014866799090254466230483984077928413737276169450339764951107108490029709215332274543531827236450579076839586019325185176943467216238322614146832657692840015002421031461044701844762889730216730865461112826043354456122995240570291889440772771191226937376380660084271994044169359467601319408493425690022314397655666029275640535322940343777756593622339100782687931629818616608517153606740878968364932811681659278374674730690548712193159984700345724847307928381606543331056310318636596897243128464728257673991213991228041194759659244888147154075865119726824329360283116239452621269861301523245045194461676021739141605415098416229378872921537569834015307182910824467121217763550162658548067543538387233571139146492362932671304946153283562338810297161040340203009595891878408652888965232038551078008063654897181081428660476475633718205719887804186835623428157890775822484713460421738069055937242450343674194262319088429213376839706544213701111903894337335416406797007233344772803402669478445464749234560708472649909099750784003653759437348047067280774711087962424718949220237790920356013578793568047081871125128645644980739185538960173122360288782544915022341704468590751805041434617487070837284725519094947354874271223393461076898186887099670958897788978207808812513252810090173946117967714833761972074691625448895218494144508620903271056658755495611129207421090777991567717065896556556001365869080936482306058757631881011246212405036486626605306939477248071115077297310453431937419423106520058074357166932373517290417979783001869587216275272344753176542302987318930868979513233440882410274470419258372092492296428244903426364948489486479070595110379042324725811730725827797905634859871343286192912542699301839289269936362808928016575294965926875076283038925675952648056718549735390972397792339899797676218201129043148901809136631997389638910127672780969304976529198772632248319837562585270045994089492065414008093862149222809091030196204274171794320440353802261085227111331851111009806886912460089323870385395377273813273456553459195451847505595655773763410152170679764389325726028151900183330367555819493701804086017787835833171598329935033232458309540042448705113674332756792930163432739331545179697701492347034800206782959377185875910074877801914820875648893225496288432120792751637618687359852238345847382884257867724312343823167460843673040705751596528132606574256051801864259809214230389210923233393750514521939001902265263099501489110720293002635021725603136196645525858157487284559399628151994069004114280261934447287131766152387581716910505782043941685413941685680824802479495930880290038248385120070212220128707131146026774587860848681393963917158606749807169073701481232297689783745941397085419574498838121603970879832514054050911780517287432433894524005615634753207916389498465453559037323576666926128325338721147329364552809709319447940303465404238673566011462295379550392164402443445745289365152391540777106934452866415772897944571996673411816659269421475296284213048292056016927107164005446829888119782610516658268604380270063127981741225301074104503387174269384307964156663167212928550860193320945420519232780329662128352132603563521747772123102876143209217827620194918784847484454604899894994293703654383597073430039016054200268786566266099789807093082813235678327369188932464691740848983893828904758531820210148976212375477615143151897622362109327441620382488750047333756181929406400003802594369752967573110754603569723176764575262097823455466878617672509726793267482934332757305072318220430193376785955631700674986894572181513553258687143554082371393847684654434838084016622891639778902088546228528058997518456587928778724170590649307453708955476326006353691063937537626841412347963720784483799401784273730367637336637150524789180026383734309497234652449095388050155457887944957443029303268088744119830843713825056726519308263262450273297816307302188741090405716184026895562932963002784565326236116649504061517776362115299226713951416916638860114764704447278826626456391755340474422947100701440332129829591806000370601408440098258145263335014583528994905143736943383065701745521797822381123761080604242717326258030931086304065583378439156448195936337855840780887673117691998261376397637720439371126635677903726907225131309530971706697613058051552817180658922657610025208903923428793191113738636402973447084378085398941167325352993192865716463802750486106880028103240914181799755029466082301570612644969669960033066158734817603610468659256966828699980986071906188801069906905600058302349534710262156045075265746131060374007981145192449745564874089336515825118303275349280594153947019802928684086274980727210201377203029944686286197838498711758495889724670617873375726852454298396465076475568312373207521517028725431315577236526727756243909864526851540521242798577644458358379134662613762378891292946715291792870301250776973220007643086426206463238751683964897305899013311055349590547015450937636952673834702753542884668655490773996457600816197030312018217272355493179972826189508730970546269051503552288229203064514423532894529387149412101828163062597291144673539189659030126347108203141877120255830633299714807104238177119526761401788012994384328355559899398521432385942490614021582027365817542451060796196352485265737526211949739732245128842752954384927219419503906842796101961767668556828409295819437363885035131351194121511031832390432183056413446677700638747896611971145519599921109441365714198821159134136053551056224603675837255402812354507993434014343850304707052399977165247971266109553622397703116579819199674845843147800724227133926936901787373154417735497550724285967270329741976109695395608038324428665492238205883262497306550823718413112655941990757914913643746353824128267862614083697751754834404508718078433069906832575900856784113223144835483131834083903699295366568020089201437036349966161198342605376316209532240299090723467873459749850311986308190017165693993798601344601263759512028546814360167210719835947826398326532303416766440437804254693479820516954583073276753350625079900397042321907970767110025973200419551221631168897427149148838701341281771469991228855110203357288544466626485452303459828691040063681313197520946806304481493179453654215800786528963655694243684266793388989124760483098758946045029208088780238134157569885100129096753090374280169889226840100462287248040255956991769999148744347970480919027101605480406646685626115364943736494654787407096956913246441356729333768300738443938330665247330901884039295313353524139807602926738184473646311473858884637229412061285635896001722310316091169389984178262994851391492109181633096980033387917306666143553997118690833296249596433917580485312674111629570991486992738400919979243524799984174100861952394506695426741991217779704229913730771008735564260788757439608333522659711089189260608474807109581041094470956022395477814888562134365211950652637103879910465574173848319613814575804266425149982097250260357788106497120392056313505415734740038948516102992682244532478146224442590453816930064468096348113617311861286231714526675831617318083322263876981820922812177636463550218411262635353818238663396838606380116514218553973961228027166930819011708819338475014886139561507359430276271085813335866933287029192595245138945002938025457723502189110360506670705554608058655012806739387953947982241066700354881645597160287322077272221082096012969848883127718294666322287707908208912649425508291156259627543207706889519891745724349749766224056152773220247607710123160161902907048530518315397155803936374028344436288167473033572980172050717603411955296335939377155082969046725694996493660900056953291075184031740841579671484612981512641441904439478947495142048031635649764929919018221190565745188551536246510980500772190801016349814475725490728996284635747044267340928395993142009162232436424716518714744735665451155410282005199727519035288711621273416937525173929550217868248104202870543790544372135853992109136450866911486609176496319472752899052483027475090734355796804167039892262687809040173577215848761985986397025862515090071137153609933479460882142609644784859269814339711314326903103679040487115439058660873357116648477703943187469717090975908498410294866156831230984217727473241071226709779786602649655385830274652850117299532869679755533646803093132655423865415734403483793302193119895846477004949885166385342055975184125482192464281442367166472159153291567776555313056906679343533315172868662994001298485689465415676629119727479055046806782231632174576586253769764993749202557303768078765191652502188479361878868164786243677102360431775137987045927822646131031287455470880726352805577016090659070392774172380989245818443674263085495725652330769253493062254911004886287973157558693507500904655123140912353480660363229016390189918449638498782603862633609546780173454681156086947851654236774802199556356256933348301828059924509400473345864712357817431407363303243057650256185641261139841583528319711242355959604170308313720558487236093056047294639180227942292132147097272527510956987540138147519266047239209534441913249628019373151013371263138765712689678952673954794496014164748038778852337079110209069061338508780663462341519322990295855064304173936380713086206152684423907450039878541701785280730819423987872029066767301351391152587432697194751587225360505855657507478120615983386356877947398326973217389856107102797719343177873953348354436959524943761068152465636779741495247955029085603939890425324179378778886378112221886696261499661700798546838380350255726883161830732932144803051355466555606420326592885420451621965216812589479801565045527288712256672912682550789652109856154179705047971646369593612400666642967442369309357120803266680191294141094707079431768647242759079635070779535005345127914737615473388851642910263536621829552600387528768625400084524175906991129984303803404465250812568457345378378996890723984785241068760016921213051965436832562653124011228118991409958240977023086614840349615394049895232493300373964564785103042287239868148114882274641620762104324878464881275158566477077031420611271840756969906230620992760131422189580733952614205934965878076623091708772408347510618948866964021382526783850951596829884106690414419850417743736509550545326736425742019202431271880194092706050073829772009473970663105144733654372271618385911718614477322098081273904469257886321162522049833503560156981149984861505382345872882604361255343694394882637409386111528525660644206040439799361632777939275601163668099021668335466135526788713961698004652818317920364594354557057775043993065664788248809741411902091687939363063738119891321849534768186978546537748983558329788621301983929241002101356693382974156479177263778961513265401962339134925303992385360798847821698608151934618892391805087873209293108334343146822036181889821347762625141943677662689555459663383756493143807069941796836648815142437103248702480423894074964290458578552968715184090983080911579952638953846463689389100758781908088349542744291148372087754570307883429158883068564788895796899205681521114578320678416237835689159418448924494072294716608917443680899741586441648383315933730601495253049597983982325438423964663643577371312071661721679048539496508404771121186041218061230696762444240419168940361523676132889998700147077314862634674262955066388106004461100990582251961169073234507401015210198244690533677311354119369109956880417429488318177141687293664933322627806811504089184520557079067567867613047933607621720372820060691849778520861193098637343406612047434844409698374967477944326454148554829376131260379112414329333933078718850289774113262755596008091783634863057193173624725073299757412301918174240177118709219898594376926638125989326356470916243752165494194908462538433589583555706140714718294903536869995123619123513879466012609421384966705665135265845026884964729879084237332134266573542542651424591148091574093949216064551728344791990517368492694958941593504625076485793122162352007434681626402624201251820170276438950699626682387508390617781631732016814658942763398567629576506798609879184707761948289296947207280990875175679320575893613189528436483800011492370270032610214087973834008964333304371829189010424390150478961522412292633489140144421765005420520874353938376241797579782794323666372834891909523818906113179452491991891013617779162894890978595100128946524633493407950664644658228100510658715810943383216581266064576230756177951958866902967583093077429886721953768537809645258168096960178348454253026631722285459660955615635629650027937959612371045530274897371542570052342515090547611162150819652018117644817814076311831850836178388760443887814244958531786852547959549112763064333271296415046091096104520645620608045283596406655523250152173445473929309405990362659196187784531367077834845851140860531250528593284666624758438915330451121128436798144577139485917421910863775219288646187643254191636382620891337006628409211824498731825093752795321718769365240579675521678525833033907284192283460764060646574474423923718637496055128478278606360155796569968496397802713633180473195473686372257596416351403831380733475565445360210368897644587132027594790692594829551218446017375520375651962973993759084066222679370237345293151997971367859148907678592934291508048927992999277910046792964455660371859778221838227709469969258429238017996154297890271441741268219586774737868199090969339417973721120458038470599676292721471484897948693387016778746419317571068527666400395050862337351072042795384884312085841436035856612454355283929243610499496853622430672928144622143768660953817056258760312834882903964102155037016474333997938129911198060719655495864059792582462422591950479753727796734708441307667748015909384189320956102023996749475236255136519630889756540833813749429496948288648144859085273300591162040126748447368916790106529095912037823433630286206370926443470044357918465860350844990223522475843029665515735421297519588747352248267608741606963061835490475324891623941518133975147382986379611218349657807116693156540090849762211325624731375185932275047531593864410256714619814728334133378610271305756899788189434205903655648893392509338357094406932558019907655060537830567068837049534537857507730731408620979991614000614527115310517258559032611235403616402204879380345251727628810023288204281366856221846948600531730965466783218310399614847729949744580105037114257958831232970902115403914540589760381004246197585562448272815906143971063358566660207254582807292602602946511583030950442020182320100302876188994590437189128464671407758232825204243595529727926250027124317798176641642109042869645780961991527947734995002692845219498002649684760077560204538357062810492926647559764114289111923045224118973688765328854460921036808618144467501088183031824449581105657302738945342117633711209979175826108592100329278318964328276869012670781150249231978145471465769695098794034348742524594415208292729156619423760788030148883679149198354109282963499969086863316391112822675446529379150011950286000616331148516372066841991427072427914781196503553522538593806349038577796758575216781366313687323122115111909409510624227437199560625965784227053744207961638463632146914687285635703432542954069121172120822607900470966285949391609432727459234476045217029320924909153234205923740498201721909923184566849795169646641335849303463853590418440834510611968124776422191505629533631519103688261868661759838751275481685785118069885024899063119393102337411719190148001266311460960023885615672292065831369860898415268091980381406838743352872764413720230206457767194769110797577637259971415341932649505667028617052052093067794972775451331555830298445407520279527402932767522819943062405960132118784232317342325082403906343367589389457905537602519048127815984604269452040187322161269178600904034119620185002485814409120646911721939452272224090359882909202551478013160989328699404206056719902586968777729299802637795549176798682751583636560129717258363567147566041989874154752360575228868357002533423116968391557663699790433077869559826741229788318078769119598503239684571940806633882173068075043110384928379722633265723969265993278958002191506450364552532582640845730731643627918679656989609953060154417619653643407372211677116373267977921278595743557169778736701394914845363893676164772580886270927811181595190320570076789570783600069124994006280081682472068286925562928236148556177105909448136064535626521777523032756204051811428570987795953358753450023636655620369454776029473418614551398362299359180962040077167214671446809631932047796694441975159004223937670113131387649402521231048442030626064954997203075091674922837631584617587133445617405859577035509601429010801474694695872503047794736437140680506386264409707548112053293359256531372518366805435976513583168745644421548643477639500685610447718231713147245353795845744887261414964995025746540759948567532295066147769724252194880001056799786733848536586157394071074751984027981280718613599657044114837179231332774122869720609307047861530173818793402052805431745192175994424978262906978891730658588388484678034140181323156812227925466022627335669115161565282721360783422058246634828298165687036300958905799618702903327020785446527029804277887379972552962542669700443854429580326542691583991219369106447952473042269463786829340886505295465346313298603887838773790809563659437910360594048636852740704821583921651727365903128663179264794041969012001519409229187543940665884725011095505140520203270872368534215141378520291238436877973816148933710531896205432464961009943935544232335122304175548876955010447452605863989761286774064000018705042173334782072865255962676046586084972576089973117078628608842817772288212419364696952184340177607388652284527881844536569011187782138175720785382347860627986702790915620095681975058488167811917662396340345352619048736808149244620612338603383687794466478725417966892590105658575316702667311048228346491901932221583639466240274337282800320551328428228441183056368033065862599361130070022471080154254296773831690431919704826522236142409335026553727205353758308505797400085783258640527311463603605004723558274638950859780229955652211613697439357118474435612031209908764219419825513167386997948486147109015868724261047948773154399049167301692249626148872981433805059007773228308714344949006130331803607380963974834043059567943393063868615728723999431524008507913236360425730438460078578947783216529516469897805464259176693203156667550976252468831623300288707509950288383144478937035685344854844872402144854979764131202754309472465481941453791025176307091836233859811271189208586530839921918981180277886494920151164645400426955027094294573898453338761064521824521129746695240530651132289612971634700394508213823267752116300193401546664059982374826790193299581738324195856508000670003800333863075006987916424639700757705689933847063781144451611015661633870515674557147354616453704141907475481898742149878599721437696609438006633523639920805172924852585791763876962612153407203095263250616361956361484687618372786786273740507517089351231159491884361416740418120644537710646125473118767977892477224466959492261478365675714716086894640591108838547873070887654430929653151665248373265657328134233848944263444294451824805210680934395098249690023231293291704193303799075835485285500618842379108870456090338829189443336140666069321392990369233415492327041371800721799303899371353028920523714384101016387608540997028222756819313922786559055606844655112491762572014241379865613424990235546097046024107657996658493168583980597926570611174724270615067516517741783592499012125471149305779514899331824069603327210115361795373089435040021192125894003267625119269978775256955866380783396111532650906878755329787270043578759293937265418337747906807299816902511865922901641355667564346913217762366413347473559999179603729376076377787025817551082861951785233787914151525512574948242917277383248535589093754515322754412943116223872185325236794815053633981239551243938932337897975414714660759685864436230106628124998498250351466966036671019086503572727034235318679674194962551825120105350349367446325573617042014154255289594014189777533932256708442767487678836815460322702714479384893965080637992380743873420111615090184085839975863346500013599126283709826000910896612215431642718431253312041125348140381992121724795762216107721229358826895229364844858456860994100828473650676338135203217980461419631335249305585528437160210122832701549971600051103783463107714828997133557263953316459832023334120593320209654052397629079702270999875866275069621144095365712568380873581384773137566841511920945943849681458978573070848563706079066505597729928047184904379245222443760698742013982533710371873332968351649497033839419692968904627140246516768518383395731648284159313311642026542369520741952252480937393302473257259632256005044310393406436410955802306281824788748597270845916538758030237462739091981606108985250174213166692720581520481672192005515924249733237968232703987817107437895015047865804046194164080072768437952689781364595334728462887790807465247050159684934865684087379838301627970006301612158786471343673530299045997568310265117189632881912883756960091010842845292383446049444259001359283618602648585627749884765704797715926776064993573818954182982480806737707235340149556855503624368062840146716364019250913981667399275860307224635075820899802687946879113648104082892483357968793094682752737527217685002590097182716452491940219516904780155035869156484346460890795766196037409471600240604949710754399502368560204321335589954070034767102606188752536371580514344712402705907699992345948408546405914392892579788048900848592406752299757132149750279419055097897498759804433257633219637939392503306166892472876302722774640058186539037849492555592164602957294158770917156076322853392313122200340550882554716201027632564409664536758403774870283643245412751310509039453114853859140028626757333519869157111396718533696287630605852293282741536066366556325123469470177403216768902262989495575245183498856009808950955115461735123578502564791625313187280009016411652590049265020369570051208846880214039887730939494833516026658284236254781853718125957529089117421220275145881470096168828192480369516759811255186369236212453610647067989952691129927617016083919703559656599687868664891560446781712973135759198705872015388499873890337482489709633028996419413800980077784055111092314062095921298177478921667356920717723513026194982872267665765982628262677339328969714912086782884905271030916403664413245191084054782585776579437024711624952410890006999157086209025142443975299124971810690964921458877121437309826576174254054998732501718966205132827290519425408787306166222407533796068429620100722239108850197782091489709287686755683371716091774046032356950044348763391705827568362985676595917075905145824691533752206534225118359001590676073033283583127188715277221134757881840963303608591108617936941060618217801734916599653225949496219584353202812885733252740869254539664659008085275055854100999460171842173411124928111200126515903382121099637963197247445765567588022108715364917987147892378401133955128561398780071010303543546692494413365787121937145164226523309020618156546212459478488226968939248522123928813489780881918712913336540511275676661769125001245430839498010360237527510627207332097811342585837573906956803564546513376016352887010156722704795850029771501073378981449150803653317002363557223987715689068015769786053933283278787645450689368469950161391208848042567213262458056100425101115390363340971527008342386099879284425870307071089741769193797027513968112368807955854934103767995539571837134501537696514472188546140198155402365176326922990850314535120599338636982249130003413451068395339050235983273222515305599562247388463533576573666492447019323515119811559575861924253716826667000387027103898286647494074747359283653108306620287524725001464760894967578381415293235678760295941510287985709174401154393456546632929357472532925300192083847030327205484398825376841162163651475080414914724076971305688721526733779426978405366460540118938433663115328622444119246132351341331702945939216321965510643985604784049157730551118720455825409996020408556552118479802930897046779852938380453450147229968675483322360951296403666845935818054913146912874699040576030364506973653360027014087129633141542280573701236425904884563381431284375173216911341402659161638247098084064208740412012699301139808130978765624365273075881506096737622616911492515109392270543778248024800958322756338334294701100629379662743102870965020762121018929360913694683937365309408316226873361312847463957571493515376675945497080554480600899466657924474580069766582230495241216870596734496854455561740002540241881269949614224478545116550221172649149694864125364651237615590225737398794991129573205980399103937708106334868180741113145255021914662295434950825517635888714734468112615737701308735955353696887157040804357975576268599752677393756574706990375835160349648356626230104356824685846878173352368349920174082224801928725562593478132308045631627865386938347900702075549363731342249896903510246222449975225030936498306129357705540915135872212335711052806980167330664774483959601637490455100480535782963616055826436274548034265861126554849607954810320073513859912577802079261106938277605348675545088977354297717320693024759582273565465805492072373401831203506645847274120961325454928473262355541262440014432861574014346441072392165941128423034438424075225036307704745822448700581421797892622783910726232394044833642451583359944210851205294965284011163673730796838197956830223926783902928997564222083342762051629407715012094441599449196205916203173150458081589091768301986784164308495452221226522830553461265190401254325657332723531688435910328006262326668335644339102669838180880871482535799871881684816480159008259918894363366078480230933797694699231740355313571930576432498934380627640290227563234833785849757135616489845869701709084460676544771500928319635961151261650822728531782773903510890479937652959244779507633687455769653536116382456059946614163746198653627806521913418819840067729854018968527081698642088354895990231867397111155269790877236038903380366939839774483399048320186358544568504271044839586823529620248748060909647288016174782184284200238398771847413359943888905158486213803869561736832432697589313811871490404415446006762252791652054578738492635272382968666807167219573511755606415242648308128845189272458612497908760566910942494509412964344448917180890686218340523391228348762304083458710732020093759931926646793670820292515199285093464154687760326667581366614865767755155876107364895965434359724527423977287623189789749353870207391851683667076979549366762027836922791126047964932569317292534184066899641469874294708513464885866773214677750788089138460504685331540109685006746936873249684383364280495665478262681455162459992307125217509743499525131927522550213926786344070851952360646482402842671300204719540808239340246180794493979058194195585128690915999344064254765923258165148643807324881616588902800563679611981169233862698574810135163375661721812497657937669638128160888776024775221731809345701747503454092073973286088978660525149467760265253007686093929868213337896685563478240084289957743756745030563314820198266974219656874295117318412748383223273711529642783288610569787230093405623244913033823965853644501181220560305297740578901673095094826549463506553359553937912292738436479182057501262981720462509779573725377811975783061436394889710118119424878118294245361837271800762221043499159411035819902788182403369593174438466961676715523218847275029523562834695338304497340092176455009649250224771747802202150615897599675880389477956573241926397472354138970383376731783812199749813013308708705561400667400659940639974021842360277928996729690683695974133894150461829292363124043260823586448010071443173137420603844750923275363340712832421295164709683651505739072602446811833494270076718545339845728024851098589832843579292867827439213403302085690941033318978793634283167411303198842759719671278343850144439696554345420997298076279424019637168827959969335176108706739799625995282763898100035611759551295084472016866409152569266693871544026095329478128735954316487250420422898659837395143326866049081219520033961730860103756498307864592575656121903619959159608528637573106027757788091512686200692390009552291843106568740707977695132186141613497585828550773583402778715413196282334481405129245599404845047191920213920448353688507841828083279580631378190309025349319141287399540600294123043600845533308444914148997997110518226926843731174622929851363855901803946282126986227153053474741881196828580584367152701319393366717827749728694610997525528535973517338856041513544675913740387198436940490005736791222119400015799621384300285966044518579884304782307741111176008398937556510126151519349345176496975519713644386101837883163592491109824094500794813964458854928470120511852520616201274986140449073718311509060899303155370083872823890132104819814225456955486200244693165935528484201926930080008848897818097354837708326574899393355961596491903034179243390716458781937819005749753535145640608426526310167308243242728550980468067519072724928809270781526015728881368261298528155665165661811197370713977765916896933499204931068129994220607358935538212513658279829054200580976287676655862023953462718996796319126937545713466309435099528158092372474366961756208186003173244891806498430602952040266021836415391301242370020150699302272249296295615772205436189790520787092864287350817355203920467787195290467647719315119349591244138184192070369516860013009243054198263943295438879075111933680563042038919693854973777742326253255956244661593590712115657778309281420277631765707505914766004493010454672063638396893437255526313203325324369611115646144060942871338856111023753520879611822459139186756633965388975625642721303176916877849228936841269437669964096481609426137334154163509642455731514919882602468477329336502268335313078366052416408670077039137975872282519904583568562580383984386122945821179613080420255890986724820983775376648545273291929821272422282686397973732988341518016573137277120640269813540649161593785272830968717276413337482661401178652987963470017777058295033141769023594511477045215248833654142654094588736925843788149587569550919473916021742689259691315773490379037788216210979767485499529364854952583442541753335252894880952124285284271376826938904798848086436759272966474521355466228873115822701528947978792294438155450408357861262821895440654403305250623443149152154296813773108497124217446435764860789562325318646834318042178510020708195377178304704741990812167654697621848576301386666224753386517266204459210569427186192327371033231762712072280154195792385764648948631757545637662431463473685688215415310103848460861215885300977352738950203432738852829131655382879644129124580312875897050402689995973662017155587302093495482948320588844541268325867676094403236320585657706406990089225313205728888885493589702194662345383867354357369817105943899029239288735393442567582140620551048370992381656384226670198299115972671985200992155712883069455148864774202800465064678252675470808002217040625364972655770588327007471810588797077073729409391010962997522379136764648413768860633734061087869042513041333468361001726242541717872405701817333722282375798852635159914600506904967833781981550484800637801434015343671124462200152565940970124201746168796230410085200326037919303663618977742691801584703156642085364356020478485296016821062355843944943674492168673659729977304582272694034903428043025948421717129152387841588736161045100048020380543650309089823314188523649012348096700766589154112912390413717168459502113003731734658127474168027968238193704582833068979821510428896407040329761118773695032554464013952050018836086591257823851473979968125042827579613822689354267391248070016984489757222786933397516919979887302256815700683272842614306549516178651254705199333987678216433461215626334090689354038006217962406332614535227307061234946878046928363829156721865939332916830449654269045260385955110895708391039011108791513043294036489672557124684069252744873205926724688653216626114922189524296724806809905136029754783709730132412918817162961502851816261362512525880169643225067844039177481519419949932537020000021272326218100263536059020016671083337062348398905876905377598737233430052257965552701512483726003775233940659562491813698562811444889610594691608470855056833860811882722088115865088996384550292179513299945892165003262664250826918632974995340164974248263563769585824993846032381444822098585178046290647201704344323431496194795579185404442241435784148709570311592434724224193268352900271631610998129837988015157366563742721725833276450520661704405873203717660066162398106238427161077213068998795249959754838412334811549812262906592869786400384929214427338878363038584944916480284873322337370443743207384477064662564352711449488098350930045565901626666754546459797467940125190489213635194866938315012659584709336419935687979982836227076724695640468057178027117498807737957207106308282890524624227195835609097056264209776453619192664679556421817688717736345019228434623416141722734995242472977970919071292231683538251616024132294014132724903433595039928608186623091144166609408597608751269102529716866858976341675555456934153982363887329492902054172661499846042766285442007443436896720840982512533058343018627587620408603129667359623251337468892733110162892644568308711540497944748565889873862085028614173850794894176754258440634713362471183976782007479357100481537175422724439905788578419569487029046840800336297394874039757897823356018688884726227990157834643732972711986426401343567069260383349154277699295765756967076016973405401063088080238658583843181174659574386399549603776769851400115496427192076749586626505940697360724779444368852344651344969718254652611384703130437157344626176413018307169210865107790639764617776039074024421052258712531478110515279295574165400879302887832331405599147125256993952901612552369925821921664957227809923169128474867164544554181663235620487031259706050742791245720127515188200741042674553485985923878342137197688813195429177980603272620987751995677108028996071223473813941040707349085077868245137150853323760706145296797727087975948966853553058060906335625260403857698084038556168173356391125538804393057532409500205482579348011151094508077275186374006791995090082222873581602092786257553334929156964886509643217383695966789311812094834989455522395896464514040924155621522798282190555009452057019445374420224775945071500510994064551413576818622794979594282545575407350955363350501561503856805111371127722368849592732074835798212467090899336341433365517507666461072862841013741605539846028102114089574556025489929867963880302533156409348865038439230283084520879866630130972767330787138647453767122714749728960429280771066934597204500169853649420356640818626787574123571577870331626790444247328029965172801447431401802486819702071635041469072866833336788249427896417567441171290965711947779519718752499276142698333020218430177100707884199103156073791853253178262709685718420239316117788203101509606158850162060039576999978299475632970902304198007106375593243408857220266680305439224820245012264251230529017112142891090521370514009227409272078812015605541624655620234730792860361555397343919357893280157339885559765441264645828658181003969291779486006106679583162364001881811023104213563345813186482514878869113481732125011260844029231987814717737315308155044481892786204592368995675965088817430748183688677021294232799015982884504583280949002765752629525106445647565584213896795085333473709677363849768445061235456827592549252387876758753910878229901633393838487006600191621561173818333957766021269213468166959892115658806624237095226595352900336619398187016463855454131000418416322188506342050096314737817946337111246284677160392541826601245354062332714957877960236868179626177040723615398114969468951089180821387059082015880390374302582852129466302594903186813245376347675423240310238147482313453759212412990244982709320386623962295815238906644303820300846722584517463360185724203789881234668325357884950903699580668652481500491979063792245587550627619492511621969461842208493187884449744747580484424487992510401884795917476481011331405113878573744530500850872177766962955301513406013084102897701421945081629250123245061120072995941033804202783857110825696163855582195466501778495207468787223419538514632122746636833284017622048836628456929844234460612621064400316566107262467824159018207633735987072412358311284261893833681374133785195815481061687090425576634463117434653302078135976433387969034655205674891290533939282478947146756352615101013543151571726123827935714641022638463200281213443456976939586378841165214010399589173359934942588233886902316324573930107000990766116277483835462619371604400722251847661956870282297069128309726316006428790569246240454425531128600692599367307348201816417849280339067707275694149751369333411282632358977867563252765026082230955182194412316205181906012135752897382167421480427891105923405340728629224454292028915239529677509799556969715519168699169015484239735641369474317563565876360308557546066628649888418770856112017606259051480067133647987899547104018974539396764424117635105986389594727389780196707532178267269911800331321362922202137578003768827137767863666725222968236466837488678078884790655312135699414504037768410143945016221816969011371797373414868012329265226287912711496237202980572991090078353729788360356208909247432710365286063846924829617498017514035652495771157294544896516364139396101114284896515012062622786627670372856107802015308049558964741123257172385462520739402995391241402143599904259523644670605811349304972743470675074593713222728409328129440249629345837121607594471312835200323621256549753630659768047768549402152737295877577216541709920842342922673978422290578913123628274656597215205305727056358910691033367634673868108692836167030732846053909265911678829499425476825229874873009503016399243350204863461351038710467915020256195542302807728634854931675120669908984974340964685394510773941978853617359263083156451233205699830763271325630533935281665904558798432281808479777164081075231507254230046487998004332872858746328949448544173894155601587655476444868561603536964020187385776546069099311484857902174030613967248136567828900766891193168090614323220394698113961776402738131324220788979281062213500694264651809622896659742693894540517588883352054617016954123640201213249425170095363960778089725292063420521599847931407853528259849135581428781377435664648015615909611093952230436878259130101886477296415057532528127554264211920824194048890199028342051130334146626184371560938815930447727580778797810050842670729729613209608841794988528905245807324908422632390112937592164951535033865419051874105061300973141874995264554305952767967497913218004053983784999021062405858598740154629190002956093484885298062094384123610638583021361475770862626740362157753329964140600416878284618647064025923114469168680953355643144409480580443822389939414870486234558378807105356392446006805664815750811832705183299043155815150131669497810878245025092777784213926268777262516065272420487790136876328611115822677064630668061192153011949902670491851450552480718853491779658627606988876277696448870070823982022146476722762083155368465778984243578429348873076542738519736359631034755022149698663921092593201382309969705419585211948453581220520923037398490318202475853787788580600206108146829969040744676469090784116997071056769599485870407679934318925868280112453840028299547507701197214178733455975715970664304102368094072450384096122868420539732536855973433780602701442661709252662340264843998498948416219440701764349917869903405665391463104260800043407610611659614301351287037820300682529350917593180761481956343557247324337059296087655228982172199493889480789291006136291714516019163965289781081097459889579499604408134554926664126520127665799847243814057391904182445440974961766628888239779901112234424016801726660077669299445253065937045375034506199652657910248153090408429626867255416398149692114222193256573516108932702747937574070437989187124765270022299261353778725892621631931107834405683012541509513428657292350398496408516548317592230405727035689250426659814323257244683059456075945176845815378792554975818546593915565764496800915957433476258209777725813736169435999649182836109301865948616864251196243352880646913215691808836469478514146682421371279655590950525795191261343719500340469198527435248948896263426783788791430840354367737362753979277386305121207095949678458876491845670407616279809538538839606131081255770673536177029106344147896906407003817530017013689398380174418039577155565091083949757670562168572572839108234238416066687459977676475987431239363041114407419673379765405595398399996769722483717425904097943811014140288413315471182018952751854490068954232110100751952696897931749324541317955759954166448594569199025524136530305141886694234117857039172768743001132142141677782543345855496982237956826933264656726742614945933967812676541851063017993805423840778413623587345734961697994483146425322782378498330293655194478914099802503415388845195789562381608776494616678709118012580707593064990175160732462743695723834402573243748915431245700339268201118945584888674358183958179705429220229844514793537257229869156012214045987800801925294280519816161988366681866379004778559151717984599456053039358992833532175920669845103940957900838149623612040408874026849125098009473296336571327477006895556735697579137030519248157152975018218333432160632666065974871794176299220314887427154321646672171093366446399486901970928954700677726641248319881877549849052579524632178258420584990041271912269475357024453256217259023167920307682334168741732910732665281341855877669773255622881157369769226344529169047996215623138194952478111593616764351489098794909619639407564025690103574686024118115723860787490967107960049192291787888665493690606284440200398164364064873067038383377946208802366491040888938693672078382536644694089560607761492559704787453626758271750804916171491774439476243067069221776211716829881301476585088061617509171117383314394564482675202218606923343463849927251051240743621839028447995402559103053545867935108201788107221008093779878351777008665678162302654426091414301968914725435559318381576898496037730459992494384198567564585831538327640439804091632206844599194087959166405477910290630626416970404215052145943543761986460753795282064200096660287443212162795584748299630052617269066699493595079971396946430478879433239222347209464190705332462285176152540125438008417308633388979330818864973087384870224165862814549605629746439639506924843721562131641544170874252423958760249438067250728393766864117629426518980997727093739356474200091112283404558319943460624788829782315886148701108890284931281944787797341389092684992773663862235949559787520196727349824576232375897009398175221796118883247820584298753849197126124805906448270305918578395660408023985014028689427277764863335445560114349737951824745938722981110331995424166433214478327867416511107702780913011762275690846493441643403793960442265325712125116436252707916511381155096408433301909907085694253236609932730915728542129160316661570285759495613697159134448908090428409865615884376800047597989375851702767874856898966932310559927817394211747100391979165170089583029374605063894280779445084074385492346702192503028295588435058415131749857953708439188819895067936193830129422807227129841505642773032296992246513234010117751511093876007135679880052517054507113803797354698463965165619271880203710625771217913287939683031544147928581501818408363325829125684998364782868111221154199487883080405033802578458468405284406744559707505810252747363261709377322893905285923344207258954880127781203179247639230979108001010930887291265029438936967587460777477848824122825170939268057210435027959848852584471014087775259379133524492219700911184635647304046540683770579438318326328590671440563885610133218227718769208487030548717014408453687406232445720266045086110608992593158936724336150789470621221092899123051826481177841604804514433940146303583547083652128392433200173733461902355257405721897336290183750352977234289253011534778734172885658889128462410851649607352361190638891590105254671316748795241970795036529758268967518462599420223448844559984947807295599803211055974474370804327459336198693861300748345377621181866086085973026559030995124305858355158332478912485332885498959390276115654412200164072717184549735331802956320605063233130290121508494513384819139925023197711612247577900291173827287778663828099342234368096086109570733342084674613085235673564807596313888209884666062543736743259065733304607736543175524446539847023125174500846105241326618957268664556278078999174722857993199868162476204009135415273996080485570307775764173423879776087223654596703562056052056476828855332612490700091942931614109700305307940362265760607929569411668812487089195263106040836329189497688594486037500307562541374015446560228347385204827121155632512859708034235845638101112403092811882732659955087291390299715810870151611126667621364818631810726279919351275702107967255022615899029020917710877403910638058725755525503390396435703105582621658251431338530467042777541052769090032774857226195809645645892563421883941548058038826062455125186429804735530218437853641957450172395950556120399337176369799117360349596342097765031747808725069375768205119116299139477684923821135269926533798805487323392951074145749715188517166390284116493404928892593502603203706205381184583563844613005949500169888040815877165869302162606905723231763794630454597595931099743466870222731824273009677036801078590158046361768887037140940006723428302825688741980597901362101040511419969259059639816788691839866858310102258390226535692836531659029049493932458110094303065096197603496894515303273692386916722471523697055883866179792549651071482909244413337721798314840962928495773659309443504753506964691774584693115006539747480877248524091354507226675026007654554626626326321738166233591464458583583585254640643729669128505293146160852277030286990211951466655528373017116118342039277276678717218855543742256841966898499369168039018121383245044283006376635052393245654575146738331391276927246593597835124793981797661865417931040469075025216452776978894979177671957101932570603416291853060027006967643752729991721828861531317023386546011936995662371868856245043766909411797570579643642591930093104734567498376430815030216051103803442332368647530087082584644877249554538474406325974672216996637805112694309423204810834149480645417023078503735944807248059451050248594518997295131708968598739829811941098350792390987336633387865592398387072981620968341051906971499445025563957892265594619981048153286264123877153942267201961827805601862017167501131087665980995864419955268826164779248621048326947199372184043117696011873874865256943695947810193386663648800614739467303580602759269693180054496869964212160644816957336956630358697405520934755320638052270043070264409451112158619880776119669671521435136613606958507195732150887545505522395557969066613921936084498110345052887215043002457925315819093131751670577629345754366838605633540074955545456435118829064071824839384168454847160216940541996091455643585016370271454591352665751313725422516280115154826296633658834612733507119329994410736789690671118915888532268921639750082890210303210281542126384472534279940488959130644514930178296338435792946302066887668216596474897884127175705843096510432201591153462079481960804397221821966157602335634002474919265840756662295241332915302238859428039156184664119501776761404262815343059687812066955687573436323852062150305289044699362152087109159465282921044602512223928778737240801646402356733776539329693973938332586763410674506655961457532249996721648397074136732543377743407052969009768662899559867658129791976982799521172715498384556600804378915786389473640627043396082926984378748483141999008267916289577655528550203006470382904016330891689573013846944964142221011411502585085466701151610098798577011576739085508687052362130304076155651632213314475019455239199043834662387426832675562372252331953174369346342134187891598299384661713459309559660927687840302792398220661089106247329315929844250821452943521479979346823419802445291428688309727263239128663788525768711968349935130600381301619398441967144539766446507904996572080903617887285336118275941776093066124106658172088155519013216767004185990138049028130252659150027861066826996084226354646574458465030268522094401590293534979370999739658822435433371036886000957663557962264692733316397400689735526373863447809614134217827979067279651286438691617734687842525158830477033817139799987218215857409652949170074571832098817113504675043862547242517201796420895021679838954380057905375087020451666639289782763096396103233172056913752383182081713528813667465714526661130341529038346644450799211019277769219083024721163107743288047139833405836997115586932353688609137898643695924432127738814733357046472032255630314869669064709660885580293281826011892056941547701608434474287514081808969755391277708630659738990722099375929513273830756263085973053834842074357031226054713158989055161809243176992960981696490731048615868417790589164115903266887881770887487628806482652093794755860574897690177335433279980405679411840736024674257178548710782851270485658889744089237773771046747078474970117044046043823643913961129850265091156440763153151494402801073621525638733709029105995425676214224841137466036130718525926194556969917341533848203027768938966426350260125789757165983642024114675541682265758029686077328167350897623042029949391441762752194608377433829955566192024975844543247052434318613462599422091935887986821824128476039171359946731657122277381994753788930861279730784419882458496994329907002664536879527610697875868685135961694984827556492770369084133646934770202674770841005159088068264087467668704609600512403614856244836411121005710544362088296235057376916410129364072991941402766542417336316974265498178473871633007649183993135994486169529632605437978537656734821936103231714200996936893859794210612241337499078556282306319521860051379698486578651904068577373844857923167081090896545482693761298315211835088211561286437987298182133563523545353528876546560116444334394715392253967078265773100545257694132861918952013104885234835030507973504631834176555993054915983261044085727506396109872039470535607686713857901156616609652351607184307782164418290664396638744036065901936011566407074756533124612515402884793420358612870163087167166785792426845333246100428531112646820113595181776004883383164135639853814202281181048905990782799429085593669150952551535850078707858908328543038836709893758779650553533814281898920635447285977170689990190378978506723596145194873722464058558132122581993355976560040602283967953200432631434352139174426086015228579888546505387697958873052981269073514665640145794058670009914205649146629291674548551125910825565462380160978636795724327847424373762770208571616383476756091234371625115960016415948115991752024931491035307492624456856584984144693271111725334508166924451560601553258295892405217982010749788543331794787890357149351428621350534205833113493345107733374152402648662396469991793222958722529470077227223917495344298666948181719446393089311122984502499423396505455443383417244603890614260814380153901298885858227099569852829791172077396410536058863427606134703877212870446446123173306351612229721014143522521538745859145365602556932770827370257896837648677240192428107989160842130453281105090957598049189935593374184143032369068574449985309845352985502797004852273655178653348139801634190103615472811742427008542056509341238113482860891879945305594868796741573841764344505347058260634507209240352716438035488801504153137126695986205492706192969507713942668809200078597673339804253046014518955091185307398564350803983499289880959596943916286014532946681266059526957196813229270764553597597199960142677114422073636553452397836353306634675214937208923140375013516489507773205356565202508149517384843891243218499628283923994556079296716411295146703433582684487595097536389940140868710673949095300828526359766990877646826551497783339041228220511830676347062890903962409447638226923202524237388097628321429535002386886727515321202993218293590840920819780422667457462165532721034248712178573078165041655867114121320612677276502018118898667229522240457969170149695969319795684991618221617213902487061880079390666968856339711982208860642730282785948307598369420548076784227557780800600034248183135846874351330685713858371443904857372636231005692693119669036204012421784011545355547721024600958514280209167753328305902314453203159116483302364737214103565960995189993039049523414837916314292566194469816367079920175748699496515036876917013210291394963054942113566023509655801880208576748689515054364234375427844356743946091051584477516801994390039587573873410805521855874255560250907600712373857220138211987938171148721013224523389717263087626204588908509464784046415549296853125770014758255807240411434244964481529802327645952892887339866426567156056980951218256980107821527159513437271328814879264929282020113484165684445802582171935156921352430651075692905869791994535883940870849711451014875417346523408690693508056633174961808783633778718908602917697187247716085233778393532700303102637484229015265480487104288014924266460166651307717118428363994749203775085998577748280809307138477380218570491342864728649164607340800229764191416232801867702772227668487466587934556553539248347795142717649975502374651710224807197504530330883014614608467699872048932266373636685349193920763036550566067882363755922651575950704287812989991361830702098269433102644198324106180331028404659745509624082182193576247762694985301541807941337965767793569631616149589782694987266229774714785898049649087331838980600184244987829103988231029087533008270857956708332635608286891893309228930458514222985542584637736697036818808802922714418881265444716644250146358012643953560432975893675388260295614275716780197695099252233412268254827580461294352302210490472528583583844152257213491693392207338954363051958335697346674092816039712268832470084296587173846919214024905915774115106226300315247268046495133712876672613866105048658090216266449169254913919028714634109720151913264410872471856577123152915220873690698020359027644211110984919546495446961689976113724587920723004707388961711023715427911073184491764941309719325864366173964532872679000523034234599306899182405085829743996626401958551027392666749260942923780258030685608258422026201919644120709922150023328522592100241252337223198058924434852369017339248321044404698090004042335765290370278848326780431151576733894054163828943601646236123506560193149267975721043455686671830253855730971975124723354015968692988575122598557266748909401326105166935805313630711324059165825225874958815188195893233650933784498941271234609143939475378405230126154090679487651772014061636792523681590950211126176939905286532261454504809949217352547184244939322479045763894099324868211959259787404644376178778775356061872451255165090311203508831943529783501518832450579931689571604570152039747214799877963777063086229555399374746736009952513060062167503826911999726502779903988209812177086519902178245634160440439934835167025469443368989722985839481942571910349554164197273356054017168620061382116772280329854547806542325325384811381898513785610258446311109604357892525955512400129519678267159361333418895222187345692149604199970569231975540260031193395889005444198491298865768382500073120327476242759007288699470732244959315684204291884733608489102889254577469093992801965681045691553259992801568333916056586384537921790377207759457193976173371521989677244345900227407616311385132087947292508475399619365606116554403911381988712000539641176796451080367769836315699380585049439447115994319972471734904408062913986897575415588851205585050591056205297014103760842533074183677374425616681886049268322542709417885411431426050962699785098401261200415298288088536247214528682657291488320094878526473950742514793668373410448828477955510453343722660848272809567459590649564296818401833244232882954973025939365016342019964529014588988532002215424015914401807084075254855034264119632488323400364813916088958216958442022966167785231569128068551985960043029220984117531650858953653288854766239981072275775471711369425364503946396754503416670189096976052284050357913936815498433415795887493857216324009094329659847708597694585014377018037865889775234582090195448011338844427148478439959817452814451905306424801793579798776489927464420060635732965472755537253696073937215886426522398920987868674526660862115839896925250822800943511871126289215578960842441544771693794340028694728919768256244386869622556613056697308409772070700196613833910278507080909665587596128486324881279739967669612083979977311955151474982238681152914295999542457970275981479052420972322642486084052256995979072263197526687569829455112969953857259861593974908567012126543837060182985210671355043464062845816751263880315519859730217708205801568728539540632430811332347364361008931363818785633249823096838883117971493740176918339288952797161620821757825159240967516662084189354955162996298983886146827282907272246615763830936714798140976026037800424377786513305706713734872347328003116379874966987423136489504088370457446940363196185356629156705823449586763552791288963314787038723757058689872935931883837447695963218124818069293080586262357303700764433574380055787170615714707582684159522033417305490575314504994592248050097411318852811009194338583721939160213902602821954953995488137135235866027229972489733455074147480596866501725987619809244591156448593944130705822954106664611681683747593399958545699278428190026684326146061931204999578749588102612264391718676382096807682984644237831837838080649984217617002182467468039908542887565879639900611376077599617870543333873418082402750613570652759101300887505016085954262157229667988737079577717146134679171679779223357272458415015387689735681587920767103796545416282024045375154566045941375955852676145438221049117028203570465105252846693111836302923795524593927522049297569029752705431068135254551049570005163097436872443376003905759786079874146280195490983120908067940660620784847021487694864519250530334267075735148967293852286663708997901179881522720041514671035258453988211632817877917882022852818653113659263244825171295780484026755973915646753392108732671247123443870274286850957741126501195203955598987215870144561813236144913149180437551342837206751198473672165402361520597249328160059437618989123643823864141119692999729283556683660436289904097343646476743940746508348643840623844691446730283218594288229923000942222129634301234079671502877072213554051076574335327768688399472893839180644721113587441644639844043097306370099056255004432321948899177694336072226409477903182780952695109495866969205567406044248453036153184842259568131218546784926627197362629818508673785980559957922276703576726306782345024956602940752345745483842437115931690902375978631416128964231385157266136167630870190458939279763801823993878377992475016822138979226597556208629847571729403696844299096155516192096110369814026941858110892987529721223426785254674306097001636000253417460702981344958037673811070788057347880685478138642887225148335270475480811720136688687167087999314828743265507497223667644420869239953639050559758889909137271183899653058999954230122788398558254306436786501269946710090667070655258303382366565763259682366334173628725831725393665467964143580149752929943845506240580259325070374094202872479578123143218296173498475528343711450667146484079136031373420682695172245627124465774481511090292033755577123353602858770800739094120388047111588065882964596198658812218816099641290335338656235506397476524832150015453215938332718561622166777702276459624729879931454307940723741688618073716997847438562062932645477381639339365121656889713219345183839812210222838132255794840611967887062380212902203472239809151887068979578279367075426720110927830963271593034676561606025785239878378818201453524770989169808319850909223125321463825267520900701077945526898298118329154680215932425775123331126494095504246660579062170449721878965682318719423711443899080216880205914567292382901602819223751007515405384470393534588167171731884062912761331925506124121096045914332544951370736665033392431226016348683135372681330775905429007762205769101820958728929096772977226184536162028765731478058733232594713090089205552888876644851156101318734993393195194066533144005315582582025285617451748472379571763498861273785528599380852304109112927211279578393293667595721701934066838751126224014551139648533152238747367503407328417277770156670153639701305261838177536623382545564420025259361113389639106474532178510110046666962121998872054647056519882247173272311054352545456385008005705299923546149769945377936768722913106304511562560034926115682377810639643014199764531314861002365650007297395814081520114538565020531489125364273439179685821780585218255690254902149645932805303884776330995529892370000170498489870796700842812652612688344605827427282585534978126994657138491629788742645959397395114548832870038900738039164784214210031317673180722510461433072515946147778486550050003795716787600645278361878134240932743215151611865466971732293434562753161978007198253173595624934292856992281549199319960568251090909763866511224933395084569339175154270706393192091462246979167776196489145311345331559605338967776369978174365547910430362665659491416074540135531997583106898087995731474013953922224443662712334535749247453509837332359864360211186049237913761757980787735155440227593782209383257529534401670989886460152325778251042183815549707478251371688330310918175646760558118891289107753647722712040248834462507270481494038759944188070879233615563404311012819837895038127969905127576363628713323247643019191578603929926423448941980162115605816619123051809521458465359364739757576506362966174186475800820796498118687342849552089237531147092250928757737452348827494724118772428293518897973098923898769540053101535773289564568004411839380335501751658910229756257954807930143064168357430747860088655613210358325241554334577906061006910006830378064125481437724564701051614440428911658410519698550523357870597272338368016163530250018135064038168385823565314797350151715226890999247198080426906179941248868168829079503893946552142898129270189924762358032575835687747662507706236100245227216372696237716075475038732592232740282832020285801898938300929435811402491816324997836928013943449552021427008769117771357668820562886985726527805294919915755900806162232796540706162540563631105563002645446519283180838410853214900437917037126539094615657740525613361312204505933135552217897597103182534923886692387730072460531158550528897358358897011438823273510868848879856602584609420152430049268531740953333405233081561239731321099625322441973197501557758631370299229133528488868081507412005601714891277509438329250658697443060804838082802904780620440365396150622408409591267339898968072484773046323222960547029307997508067142008056448184377428517283045738423414896075301992746307476452603749267381584029767913295258190549474377351638986259796738304024375186816020932754015550642843149997405327563558597000068260981134002601500574568344003827470690029673351301773722515890551985960881990182626528840594050706846618253850894507103550764673047204638405340341063494488173952864820503106001855794500313480938438357393913134068789909565858698442994243107439746797645570999518968501291963836192531735150484088656819009209357990343601398315759659299908079693495373299734288596649534957923273765957716365021991791702862685356762746306450448047028178060529520109280501191709772580349415939442173608715553360695932581875557609054830664980434571271621452594995396544882582305643214337764940187887459421886598579214298786209860505080767303853915234233482476445709388493480980751217784709232715563256820487720446867229032577547121319119032351133159498420057279149812209856481631509095814152382968121102276098213695604773292091581582506427770179767988606950755008794465778326090703985511888342917619040142395918850412314088776050942932582169095956223325990130715215149192401187085505588453940557899396482989067170355817663234922459615294381210170934641761470508169935958825090823451153945347795995340928112362526238759190458275226210427453827947878863837820537280525189785828851486945314188866865303617384872548598301972914504254424995697942520185020649459324280175674844999353427943901712763891078736212593485343482591611746637172487530031829302081716236107925573934441085151621043792519230277434369176750352012836182249541022638822011987413354912965531081718614962282854497004917257964478479946321885835676849511262747667062532154056706760244872942631597780901623852163013492954833606633184367414045676255944117295978798049265089615453965612751393062545468657885193053050622839638011151743755868662954764606683466975828796592253185416955421639157793521193171159868180584693214811281674911433864546653516769401773716770339811343906632090666565066681989929469080970249723473922018377598641264837360614944768569479907043624185413145154825709111148296574102407281144046300028784633640162553542698425475430753886515453239569620674028172334017350786282274147996628067978806863347735134643584455549799046915936392192158300336538577339823928161527988941777228452845817396865259086876968102805355425457988309185091927503180013043405836720336651194670432010997101099518520008879662001356615968765050260957411929353364773602524595467507964091650875282298364357126003571057226606915263206017261340576367543627530946927058642044713981564505187881534674751923824970521086275662863738032913636954702607105447129897282470160999260220205746463839005233810194364352663334184229645249911388046590095611133681036602291638998331436984362307508038215190036698619757444128552763562170976758693540617999751224228057922741842735723298186115463878666163026692185770481492481728921760593275784936527850685114467187481488692479663959198494401578567287242696264797331930956535937606649859595888130269536425122550186887583791799511070102701692739882515917608539534490713446314075934007891981068180417203808092890540908509128892979102503024439532352914902435995072279563819278024042223097473609004062497544201408433596727871859846705759291779003881029075564377262914761584884219151225846512506949395788098981351898815634314749864936746450809759803720508244683458467011737570053117278989934780809470754289399442167460162406735303379819626127010498525868531787602641370914959278864904415369455707708685732114561952178697502507001176427850810795905217007425982096050761550783202355333483149045748622847166214448380742491991302874300627521030191606220155043492157523158414455537134925987682114246501775206907655227152921624193910635451759178158932566870469286498396913660955175701248362560772771891609296419784568108246746398736825837525988192614397982175570953310263114118458734616437043963540599467508797265241382154831906260942297552430746995227562184418043156716277121250041818880509675010864369771355825356254535702540254213957129484955995862043646944595770426524721364737931500824957546855769321651015972532067331461441449877581685112887183213869787594359854535328243372153897434457288953324267786286723842824823286155388036686807817605084251792763211426030034713370025998460088675827681160758883814554595944234661533840559798013289872333231958712360856050646739137389313047884845640135304301513179648525280425243767610593997093408276646329146943220483279139220022231734786574309504802967539082572993853507932247546696791341294168558548088716315475924758423441462141954515531261813279807563309540309409467754195636922325554020236100092765182689269306001486269930305962434809880188909675708569784938715045491938030923221275640370342792329443338490812673980423602534611295989918526510113309886861307692927100252822511000761287122121617646944146832552855107470232543776997388840443075180285165280418621957592008773847555493798822466842556534638978718643345442456085350508403408983644935739531229362901152351294131110441700755294920709480794192017464454972872456575110837101478245118793919297260502275707064520372790249946492828012929792396207022878973380026414041189805997649972565435795700831774094401380277350629261021458432795060079418751188316800887573866983940032661123754120716074016712736056251691417581409722708494559054017998520086511104539955108114700133414486760534328634214295049716861642202259181581357352363091485023512605506413335382647650779195707085604078567123625711639568006112896921902139419861899102588116198542090532951415933207983336445314746418762347854708308444309046487548098742938670497195011745595437152988746069898255549554614134720457960958661040235353357130261154609655982032933404902073317403550494168013294079357261157127065409231620228659202565526612018975383135307333241614254440511961888681601488567936247925512993575621841131247964171251151646189300996197440928237017043679459322163453203236512216301394631031559649589219899949725867641834694998325531595063439540470827129745452864173324921931729031608979087082156740648600777496533015843866713796964121598319002849742186790451755132841212164277441154256413582058503105201722998095072024905091593563196867389516684183527877534449812057897682313367570958791966682684474729353885074850805065265934785848726402441950011890341280942750029587204956743703401755435463579113341067191802856330422339349772818294030992650609795514297047803967999191756352065228876172695781228078442307925191592968239888385587609322420366200224985119645676391456593412560452727091067491116503437860518306584133316746901498505340998501858583944682817612089978175516580367171664119058375317760353150146458438447922259256574299501630815344318773132870277013083973986105122666805407666766771612153573499730810264162986583796714858349559926728468845428714232568627325768199972619291950996132111202361870173198415510768515710820843294338881931626175811373689678866001717524835929658614141390789933612646760653490408105813887637372087847198685501835640919374445853368734178255204666472374585924599663286638678397519739833181519158396922747535572667360696067118577541470038463788509005299268860894763411821762912429636209490037879223813240431906424446312075046170661533674862278385864146797363246736813281932958013452303869237379596831676293074309616995139080991167588109513457727783301788262890091106150970589223559572642067399329278621787414683566291143000924901352214089422817398612533509519830254134132440091367184154920711919145214163093867837057259397342155002099934624437746261749623058539705380664101945581219469259799212425679116234191637541878527594504718543544077671021587809049662022969331760280213365342253181972125703015257244638759446291925237297358945627510235695437867548668752152131363842596897827208300034426970968444562397574718180500625130127257913880953266614848001536512115634387848501061420533080333506624607790975786625844232311403084850519602757784926803714480136831040319904905951949816365519599304198714864531101540239734649006353658622751614301159851090939914419288202220680822713451376722063474025720103106201251626004721850629077255863641864625223122616803280431710319584300684833828714073148345594225490429297094781330852805559538892184221703299671934770761011306285175156576076906334564915878329189211252434601121812039756255934542925862991687242218627325713404757502081492212849381102887461335860143148781188716486115947055821950318232042606144303682978859282916390813833380830029653313608437046117063574394821607500109056050226467167043580620881794266138753679885633418461836923965789148429021428782895999103201304409160889256477026369660259595364710630574321561421971855100942708319076040738470499052572606173080631568184560764405960897649155716778204063166459221520251106878456340515376745806354303296381530968486970448738274885808241307351417494800767558688006151621906900918999189435956598395887767970671571947010596341974289808047253400764574666481132853517869039699556834761047186643033026996112006862109789131494572402422209010198663996237342449849407412118446595959820008831810203705205880335640717241950004735104309248479092520634467841033581071874207104822085994863171134224275969529646035422026823083351503330583119936136742704534359222274913400413432144702045523863100159597770756963416074936503502028999977204953072217701067159830687345469926656229143325722471221087081660719077049604578189699000222796980862545873018181249728263546599839587761691545317798151885220273596940240216901114304816128263629851138143281817166976359749887527995494814727421529512811261134364914052767027838574458578236184567580266115697674732993979597252255339944867683341620532100432324978797618580588052258490790367357544745329036582084567273290540488567271260444251176776162833261627255621351683778441806345237390556350316501916037546931053225498540334054120038653066117885394958287485308609024135809437032074444654556941586559515802923689205191084657510581425447125099934401981482611942238215216885413995514464655430599834017441329884352577136888839001612818967123095978441472731766696355745347111258676972968453495274441081884584798123481780973981608158344427344531939824961535850361723808149807276851837581908111889557266337039093450728149661422586675785582807868438290728082793756889486578512576380010321377753897312630321384041497030009681382545369744296128225866864911844253855546151662086266720882790906389496805856701237019963955771364608466579043564589906895144220319563506503238016741678236719294060481348141584029615803686113790251989385631030909703336203879792356129270205679781833458282197280858081266123481718620293391185787930841585412764254240237708925767181456277549356218222279788645017910645835326279321373999814722224375493886014011533392134528773409170505456331476160172003152458788643364546431476966326481934300651777848954095354412282139697317068147381970210292999963417354156114210016749316856689781343948612994283040107697459017806641914863222813500738457028585804025695676928289997526317810664950236638467350648391119481747225892097342741380347720708402882294195167567890092852171883122036653620049704525489242448553979526660641993697976905079184643771637772849804144073812226228849076153469592484045634746567310360992365744193420872851452254269057034211296072259164919526452808592560190002284703428846461026756971105597313905202126208005296339264041166136045362693178369381634877216981957962504598188736854061476066311971273391003581294905775841890270079094732624351488596837807623021951744513847103627219057670956352057607055434734778814096759809886332663369257038156339817353290866620230001788550231276480352366524950963002334655220180809870173645805482544606687074710956078933632688182692994117385685077957675931281638857651756930546153026555192476421671617252537274384058940173479264923468816789655368740972145711007613121787181591662902571421062701702925938738152899661830653294932981345903402791474574058948621853596715841615803848815204391950903277684464618055098343882697157356992947177368862801513937924956559659546178329084438085255114124073625509602894247095794583871203037511589764254160313773444245824614456914277976170957155374162912525073253985848161817884203770298419369810767748401046337335074658944978711064177378015445170847791486016133114879920123118698489711662966673730504894641608170157997350313348905966377009573033916458947882707713311042391615378764215601652138914337392311539133379890254843213576087999760441909532704747130761831267985296843814805728659635398920009271438241354463709752778459347978392865984696585397113552426733309302479574010254575991654611362058907334158041981538921996384607619444122785188931419852227932313506268751129564325690444562521370046285936658873956234069039072209076345361600401159066251801491593825784679390663439456640623162586362336340164742937015551412773643799980861902030809041403329591892511968356155373898437928375258594973973400895669791026421164222407189275561770628960953081902561381607472234847361239145860306133724608831391388214508937500199406573171849190677972229203719740775106969005922099948409637360169670499676399714556001331667298014910096410951518506553548215359127691610670716564072284359357044605187240847390868518437646358644440781994993215100783029465661305066808963160815389664978880470947785023831118376567347160173869558175096184645712433316986962513490104431044527796465683654410427153095561314492301758661538426380307514107130060132190513534215251027876286895141470908164834953372633415788321247165706718919960776726668815029362887400106393856097915839633991852891850364615353213994319307634339277561375106017687430030756353124845003187784079320472344853589454453184686746231782406278683782549798358844723703701036676111776155314131351323267589857241955416848704888094597645581003833162200990150355976036864463097068205916730494806825358686990515378771989589522906020258546506648758009037053890796630972064780141158248166679258611750509405565036471250267766578875186121866525603966494638354292860062441406739357966512854827954024472329776911918371060018200416839620095656037350472365746307008546220277684997811970701866657449173088240474523752049727104416009699730631543535432558820089767693550053409757362014797094215305221418417056178706558598561105133436085727565862324642227292702313713412010724769289505961369746792776707217940695223952062135679070338016610863792724789858273976049618220010359967647375690751026796903759617225809720265503178517713971305343217557721476742490051604403748836473847508043318903095516928406806031792324156708102428701862863272738490880651829966998528750397262327281066552948184908220411488778252007939902214712674408725799859531253797355833086602652632678301597338583970584190991442796315492190745252077311455613049011261578146970342151386771059102055109135752478802945473472988688180661950232775851920079398971119224972322446898840247795003789706781752947406885933322701935337595490966036593455101937794766817822818838379709435659922685462464125790375105514249900543496088160151932917877940516594742119344938136622130209384474892758754527241518148057155376824050587012736295109017599496358297947744339471309703306301470330435636139257877131691273967568625501926317811364839992337241866822944671598333509322374676712143298576989475523815383501476858219830941510964789176739267129449489961801240473841709856599348973349449009057256167089676931923394608826296637221298070904602001514334436144964595979942209507529868348387347485071541316355020604672159033898350301214538342284374363297231711243612843539175114557068052038214316227773341008270866604184559920140259093666608452918925975748247861337963803843293897377470007692198293226317924340129991606917633246613113238655529075066557082260955856975458752213850470713437455210854617209650033163852524705061933163817100041117120295500042901993916044902107831777682834455332220751479485452525483393032635662124115344496326625995696097675762685127676030813511264175915314684475278652994444147871170882724517438048016249954634283451344268731053587123635043921757747592087189053726803623322641982120151287812577555944830706258270377228095409530407321574282856100088205836835028215647843982671111280287101082077067250773938263479193214070799894313957879502594181505294924207507756382209813162118120764785372598305395433135714567986570602238376048281969841039226777858558281103393649043332125052621837146872720661144269838251511607607396228720220307858172235940032316887947818595540923444083232988144868493702100119859379217243137680317171680090645230872686530668816222175468429394834743159406471238474856683409640120965235299727743052326659798027081019402332054636296412016756331232718476790040759034815002378324066822983643885688965822244704920002819869030223555799489179223778178222171601482040344733523006738633538795264734615999242277606031057613216635117721228503582805181587090617214076903266230295439727540260714281376483016412959852311645343887662103202138448925240011781990320666255488663395891730287722383265832631887357059513787191496295958111297737163891622799502604097441372884442206696124045640286501886247419873132595387078712758090322207048309289839658447259031798881060988346194353344658939773100364230189922769474830875865478295898092773109481040082411805985543118846786305411600898718904163001554448751809013529182552457806972487159132340328558742606104124208514298121473560289688082314765443662624445143627887875175779803149350371140458125600621767160427485338108857697455933397986658728373404838964104687816486682833618020361861270579428820216660779254423833222933679780955653837802916118603454526693618756691921341643661691493419997694526249135360054987745597295127647154249527107135207789182077829210764069672502819515562256125048677939191182342980806448910873942493985530761848009088220964308725316778508456735734337310849388190634672560349999466880634500214161438029490878596435773287785292522988288854671878266087800228998518450675300281733193663709563764855895479965301943345880382401209912862807939430390141812225230600050297188748251144848040942764649337174965312357354779234345048943592517121533420494660073390045050003350665354737177919547017847400787526988853581412640861089420107856039334370159935224823209972515247664249050486516589851332901751842745282930659696539821165850927378555752203209710974482371918251535172388596359735365626570680381991039297344528016658732463025941487420285506261943102050242518560806482253167565307370340684882408366170716143088295530272847265322646798905810884659827167806039681788084758172581435660246839246624784900720950454273979363090756218223173893489821583075458279038924949960308640670344881107921023369821665596487241917247223219240107641783643287975317835304726032689615363948168658928627710499435102539214314966733302303818728760842213152282531901137493241343657355972735634929994173795781707642568974870343700044145182383753684334499260661250686703286246544666056124206530786527016931065495491255738308845519050825417024557685922056049759668175132001962715324759226528375349077169000518364887651438823114702005434834755812525690238982099945146247747575207191020709804627698499607288221988124310426233116297347175935623378475287315601291699196008710474995886174293797204923524500855827248553610165974981150936908069943503413728035004827913238975162241895647554731764079573134552752626133209873824472673093227561035205321505480924775330115780012492616938447405689907668208143196243726861365336181010349377297525439027501683211990217181872976746480656742057230088463260619499745956807084136343742877489702776511646261011287746978176617823548301590075885327759857801692527214274676948007641006255332958801042137809582270968785712091135756564331066193762784620186182982405928043093620774585553097891134075919195525967886317992351438917482263828711462471158417221124928316029519709793122741366517465672092186772022897960491973985939078440778077359784531085374012388325886398622621719005628412741492994926681857271903348894905053988971070797627876387433475305169661220978984235824183941327127835443082878193919679689808253305733849078198047955805847046769188496985755277072272759518080152362241383898752789795040675397936238216602174131838738022900641448132329843296571842622685822027530975087917273410432760787264961623180963713687870825468925300930830330081331182221779516717373985629317658849601102713144847703561735517404260508605240506768275333295254610449094399835515585178668200528707781443853031266187027685522481348937086449883392733274521121963075221668995659314051673744525098482386338151615275561722168648560863847466573161660399500483130903183834358034196663660718662866594606493826671158952329592367836238990749808369400368797342964254497848050909285627815529533299019404643873583536555962896311787796491404829498480213623779881034401553843171473075179940674332648078560195058342693603881776560164324716934708934692400633923137613086763872950770355285294167112337943321358464356223558674614335116050046870473454957397759568183129775259490915895054795443481451180805466207685556741814807781822152440239064001124771496041342918838173931665204167835587494174710108361603571107062900691525447552720923438153126093584404114496438375912275422440730867435883646264949156107935547249945740779800326973591883269330411467135454239549327502566025842605036825779382020540898214929935521145884942011555896550361519083961676186839836582232023385381322025523801901968744698010437391953628661271514041148359663744279110458921316658760199381221226293191455985426310030995387386394281784230122608384266584982933831551846157287759183704731931215026283864570256736772483193901977865824126483891642633310446178098442489540957977860349213551973229821494482440136576763166628289215971586136789625426935990026018415760261739267170020026210516547756198213545846513662137548228632912657123976832277953007056050536637723347627211476217173103598906464807383718738652236211984448032122043813379679012043196182399415889536725976332663745640493565794181898120660342035738554327386626340618665967136439785421270058636720427682036307086772166462824027378059119734432549492595821374022703163678187198364400082779821511258449900251596099900093001629466719968786185040259479941014215380098794006954930915737388424397512316228054501079704895268086961685808854210218824032014248445819446684350564759633844369500269370711406750650858258730699935595169270735873550406275763814732199889644896318370505435530388581319710950092884579776676047749833634259601713012067358180958255848804603569103135790326815234954262694547403694097520109563251880406405142275234409421940202585501026021270379033005448239504644835108857636074536164897079883299346941469731985796684280837750393547771071416913619791774544603004886604740226204020071527050706714856912069922604615534095971915422465432756578950762112726885367024834274903994475500572701556345862846319862783584951302693435464755128820268359321460117143729978928277629200598085691445939118920817494646471844962126177262022850672360924731996884990604602261384990182969787778626003994165079920244513172809908870851762839065420960084566674249229750405057832126015544180792705581826618478212534731439999232244549886929201080667963692823446056301375430865023564220946798504268988335387995488545649852074624013100368777190351989258963791976104262256888325508733380438447841614437634395323967979654475101180750588123367815921369204443469089028513987605714426097431283650760356625434280438346910792893142232975369400846029254928555989854045048575833295181596042190412227749896300919751256209795131765584900889373075384126441471946129943715004177432657524059745831665966845444616962338614940325164272488411864019446960842708866846162644572447037225238882151886896305299415391143607098230174074039472267827633457498603773398278092599424005676221914944959240176539975094340993115343800650146885107989836090758414405553362074525331531578220339643224718591821239322454467465628364920093686847286705951283193626670253123304192678513391480210008724876487102668184550359347189451446550898587771396083518311752281379578123666877534119630293851420096804690104531359536166999098736109148676862117528714406990578661481839565197564297551733278718829104110442187597362255553063398131332996577677629626498228267841141943860760800174117394025797132778485831726395726117594483254174066362453227545632523853791532993139965691018098514629269313353252755135775403641260461682587929720080936091286612444071651635210204074745671507092543069482267493347239390938567245242741057702860893229391107834096893635551956931753214718352857604833283800810502463735980110705139343119775737843753890506033037612149752743902288257973282586800721596511355549544824962070375126512291246430628907729972472869226338038855897688191103231639083859758962605304371098624468712941842404611607760397131646637748961255201250072824275259184714008021559018881042126848442846808625823161388736935494365526778543163400791939704465743335354534952563698014644645474545532226808591276389279487086008675081652323934234246677737181107105750007768106528069293894582419596402905620572658953261590082295303236886505598757660475168931413286947922114739383617189363707751222144514356201287227626892756718351414752341135180992468836199503225539904113021063013013889965091969936952324209866632666530034137210295921989189714079393304452618307787192311885255063699482984512619521430744033758397273447571526502610320275694214967648918418940360507937482214744087868101795620647350283535606563982370443229774838031195083400690419297837974278351465983247525758361549981121497450224082500581918403274843889865017512676918061478301995892313273242392489642874795570618623700979520156024457897053534205172599957740224889361746464643748580676659706439453922715519936683250866282269339467145803524732549299745174432002899407065268447633349760228486834545194022166267570905027215427394163848637219952605672100806524156371386974641678469875434702092628616887493729983783965432365734840261400767654355389127328304409933079041080453014971678394879708496744613980517478072962392627785650832556103212968714631608435947223594544435582491720978349006438113463606987658008133828041726651558269883239635805014034482765488388017935213141227482336508617870266685493491757485257449201342984284354506409241988261349352584232848001576834099913116407735558595120958410264734768905541632519621683459435371322097489328276266421739732632300506149839571275748582819581826188084590025011919542516138725053504757041222293519466157049437696725124379998455383021507482938866763805650320511308238427487949462412215101877688505245100987032120140293509779590418195934806960760098073335997741728694695272479094887779649972052093485485846938137484869526740824417714957494556072614085099603714124200099278116886697879971217569793812928994158263244466326864422178408253960066114599757322603606703772879215996223069319780293119748052724503560081325302594915319636776424705379044682676761571165481786820428652587957134844205788496113905145634252395901647051124110790877447726262558700304644222230808820935994708498725999199641747382350629120111391319520928567800203753607418353020317417455486702704700996661017408921508817196751405669048116509269869873206647593328137340627375622688720679028406945243336772542482498436411438406839767200459149410622141838872214360929153389255955227646666440229252763949251002407402686538234859821879264274669208727237195547503384114993655203037763122817596397787720532848296849119969375627586566593553435510734711026678087570096365181364400374004959835035703276278174866216536063201688751795999496982369622280096087279937812948401021838298819365236593945595066830283918128045741685993405550646602610963533906079285097552698769836144799630480140372176797773402933252503295600532159520240381861799573736177386324132734217480683749544131404050176660654729730284335841959304030763784513293818058466825451261288853684386066310388420838782957910189895858342268826002290944718623930216092490892356027281106788810263378946547029143025003830481416450909931149548924390326297737106320762651860919778843225614293144660701771812852964450708581894160040218148240951923928401871362880305976669136361915453367492840071760593907966076515309858948832863664960180524184704159381202826736804269272689608326409990028412540761245687966832358112081190682026050219551369555875868352331275473835941721831715759957461407789728422031053084774531588715674090750810474486801423893265736981765120759804904497891157671297069320692702479810157020087994312354277644094268184719294390860196546213102511977875127510498171892758971720828605857102696635472012061955999582300572841669974052518747102019996202921882323057204925504071215363728365916568008556020326178009877071690864169975712173094051715419967402090228756022039274976496422753609007069010332501301832593792261287865716778292058480649677661462023125828335543660234773181163941679394979705028438514533722469815177044273834195597532578784444154899320698828828945844434512071179317433744762611189820258442111326438415933967484715694365280066745259816595706214460789741464726152398590716426601179923929403628733106076382056057072440699284646434679578723186064850858192324387411791151886763726362867961169568337607966209867117434134980319402182320561072542356931306191756425197921933191561147562770282295426767795903008781790276955869528809878753984695440906321543654957917003651697984703042724900735372320920573237667557398641842177781456041518459167644915473063900051021560480520225661189519484317159744828526315834183028856051861688414286302469988312856001409842227692283986834070899984062210770899467439022587125376478057279529511618415295066909588081483457216626628342767290434590371115380168728023707182867809168981631499797829207801867891842911003752923340045853298207289414403942505741537765498733790823453175036677505678549390030862449986730728706677228039083440196663647872982413675067035493397512813381138071903946155994861286701228785123286248831606526245514826770498609871413686513568528775330344006445078851923048217114547199340282875086114088018703632944045476947521010321556638605036112872604101678428226090714058315715378732960721439310133000022548379788535635034525857530908383471344479215172882068131793756372218441652143042926033554553366939003495705063016446184393228256121165707931905431998300935878649770373946106317316938896309396510613062663839852377751622129071991747705004937117373274606660932030044097049842534422420903742917933167090222866065059637482491453269397853640655228289655337272167965785726265390924347270486235817616751980565062048556900324162802268748541625057434543063379618835346504283880706952602611739672870018735777210736051228324440652963232521600654781568325736056134363138837299547914067113952704381387436786910793481695843660826696288933443350879494457416994999683070881750301348025514625236537021755365722179370594535398327857395567049758004270788921341286204430215344158020350062481578488504844574654860674073532655800393942333577981867894270092828035391666820161858674163671612464725126672094333057948110349623166774183597650825257462402230911819157643832772388498750637838296666703018433466840818476903663312990331667336738043962159267083159401738221803624404550826425986517989855176755225815079326945185538766006287537513639283958802088411857137077857790403566843403372299808461132937087069828241353807042467913671355409369532254265997526452814479946697554249962413815843448480803662479047558548511274301672374140089621932034214551862365388388990913727599535718510618890444684248953527144303384666516381127832644380330226945617965877463216941783477936777777497865473920868653488159473372823992187171219082663510554327641374307114429962384820041659095067341170213266913895370220903479992380842715460885426055628946801204690649498417832392923275637222354840680536797192411716361137704408565334854389260325400113779281682966764577810110394528383398087123822534323079839115758809468179578535149195133509493181941241085446456114019772231456702637925257248261454378424859643378885998221168859284098803981222377849182860684361173225563216326751792959044182000060413900922638809968071634794625068044509297872913439010112237372624084228971734211618084666657741105106641892017283522105596660668099577614105240205995445423352003749906149633138795661102837610325177773780861880175148614756346518815770030327382894047317835033456898062070246946830457432952925192557121486055431931761100831031809200005127773451407296993542699574092667136156784479551339899640872981130164061507980277163859868975346265201452144573830894929990607241087972086207598056216023631118525769835746596235445239605518860540135767082727950132971644215976612500087067810559195392964433101760811378927710295742789548717624930980687966140107373945928100742079167243323864812595559368962386167176424547892163969767197443794904297522886242738254236134319529157911163504272149222936072494437588420962158675406749156831823748109613930083095794242840594415488178542988317563380860000736078628025278229251940334898751630561737180027004752120929279145384670952253793773085731528660985448600172841707603583838935948105680094607529639063275421453671597041819687709043500408269364338072873727604293002750184968690148212579888353210742354607078945904790708205529353402041189498014083028220728808164702260732723111983826024167352716254362275057275868598528133294256491878305817796211416984459002657511265023676783032318000184374204102722059899182112652024644848045927896310268468856501394687007955558237828153731051853036365793677650106642473018934620174714272898831151234842550600971171155179400899121589226229600560802121240936468471256846954594997603585010294358379645352951626172172628367224878517015636062094577624322516649004370409596487752593646145824035862429620080031842809693866526654819112748155910609978738730776049070425001322988863256331263553698560219140966255291394507686619778703931012958070197928261690007789152931654216196471701706387810752514996197320654973076305169737798805694847407250486390540629729658200988034573425332047989563780400155317351621538266318044639252025376468445724905727782045471853988036065927231211122921136975852038421610987371352425463428670883697948895615787564779675186096274592791763170353336864251925763613382627228173369993040755057088529136371447036223423414036419559453447159641896116415047977048024549127223230062359646802343122974568254754868291757135333316274283822106046360525384479769813111348246160260006996797453378056534182694143986503042025084182638067438256625174110467168061274626395403665139469965335762018906916559133840010577107353981597525287437684185277274241513185411349324397922653014021646950185625991355585891770329285247432456253846661775505039679743469346235575683962399929895744169789327063332355496463919171385832521910404581573980303173247688401872992058673070026992286205891778238731792531977960378051844748446444927260159306286298594517087334649116724973068779988479912228918332704035144072091694915032949154179426894034116078259974488063352946256158950368831608639508396813412041320193775599821127082685181906702865331325281818779253926057787780168874593197295241966110687870399968612984624908591521733923663463791784653257095046365263493690937223842341083405685402018891280984534877892891778774821873365912936934444331321515136655475320342494986348712826563157971196132339537298027586780576571371409527536997378083803949354148764289119922357523633088046508851720581297772207003537448400310655772851046367439722979710581553066861513699096019549067671917395006769649215622660501044817287578398287781491472559423893444763381314706049749835648586482019917742038259673387841747902821851895807094392877220329620185462572916246728930584471988612938748791498273557761424108331857106593718445258767099155857959233781166202727168743925754121751099865173017661374077109584701307786296029614711509270376506077557054410590924275701811841403324410042379048828269794172058514805117830655915032474543187522206345891067713729901050609206122469226062516381290376393657491585538922846962895313617626899760191582102896040469429781668528153899717782490078969932415170769492056684196528541106585790145168085085626480641537381268169221388119843430076967516615632378656669785156554412668783814725263410586318883352031558798165174000718816162378523357839611218651294149612395034998745814442285378440314616936827423707585530360638190012777340992858353761100848925880850662559427616519004271999456860748531867494498045557635463340217907432471307745369941468434367941297954373092461829993688483203711019828564492124544651057836993311466605015769383071451184709757959836952089084497328448391817875723737500261279204380439703100209454837805454976880289574488233419428780167400382122504175541615610295883492322845772138058139746262630594098831734229896050590494757850470329774028134829484213095270553000798576951217184171750928513327546408917260629505215416101905159752354997597746898946370244600027784626304978067676319216046674423457398856893313478609375389275048468357231317694270285509166621281935469582453820544511880032207570426468595418838854724900009461136389459184793071242259673451494986213105224513620782443288369562731332578985269912505074601709800654595791580159773688589157204072808470337551802586675949821972045072574759740779753074005622451495869717800917508182044545928353675018244644991890865967661550851551583978595326720027166863928714486124535037334626119986802597432137237211003571463534334122140889094834773701038262380692119383236688674846980201101788722036906255342142854247136847772615331150725711253545619302423781960125506971473744276868748745253514769866193959899444454237175256840075701001715538170493203780353989984603270700245041154339790400075700760955777514527185218475786933813306870258108854531916432504559313575874135194666042653703733267380903382389826354335162899924022843741757107443262177262028065475203784074546524743799103085457005584609895923569680773075839360154344588441343575033052302783606538605140215596314392156017590815379610446775767948344339315912140905423189408250356250210700072632910799761190085453983889728903793767404629935558955412865885491050016949146509877045417653001425652403118707165063396428601221893864647345498229572567831413650424107660467094617821879152349729546223090783361150125397126677407042838183567387929134485245089603430634075777903780489486500640001486748154124334555099784813364818167148960801187449447428181038127596887152421150962895411565896513955507014232596868965286129454023979239821172644341375337108886365395975564611221074325126700825980075050791054898156429301255869316374441688566758261349103730502892076786403256590824021709215529946381595567638787874759679381043097257409922028867951560774787034247915086249297786278829876996282033776079302503108020503125327136280976802281701122494953291775636176358490925215758560418089154244226768426180031478365435081380999133792842786479316321785726512970330662833638206463611841118596378825727961893997945631245207016875002385388675780213651682993830010519597419863215541805657161241524414866700272552764076120000625474285670755344036433609412803798246191428156015582030025850587276256379989389895234839127403605607423155339367431586331537586018322666994975439403271482790781710370091229721946587856222949397463924977711943259526010445098240368428537578488848101430633881153626410353711819700927375636230816214230142673979727957956795078488886115110841646355819928105873956535876532549263735164874345302519216615278479167401089771137393476984584079326437948195893073618342456003597076940573345386317231232106913145879423296500788990116845435828484406467381308643805384143796248355815847495343251663756468719931138714589986204370506693852873974418730821952422079726930407712745888651555181385058215067660960535212247815505966453026852540695685771949481977270154265014192647975454712363797721469632082739875323891102118668121506774578001746520238319713689702432215104563188323294858938286279111525856687681706814820767628398038465295620940046522860369200198275370392328033517458696864626928651896806881385989974290004447446941925780616142078711496055521250469011875984033041208388123916335194730253581083392615605899244637460190137319011838871679994803449556856864818402023667125926376979066421055993923575934400813539892130462084093869776795488540485896615184351283784398211262668482819990879627677799493145257330187962833810707754079421401119070125475228654217416382747610414043776912004496870578151757022575419824112630080191758620277246233040433657461313863225063473019970836339845217209168220452514656955521980074292720385679543020474301200937333047638201049129474789050925837561536765608031357986992972251213290812117173621255463217020707539909838029962337650214396808629639945754690478032561538626146264685340838665246561249546847309016322545787665223066558195471719814397068284746280167099037953037977215042069841760316488209176314219904732444698796269946686761909785174863874346225943299716509513102412476034109580241444976573763412369821179574084780770978469445862917986984631286826577981951234959397033625112531209641728539031923044378192754437172483912809305106303837993197205702612257853406883642048814653555895671632656428138012181217164943026039232586520789894009867027320814845318607255428493765548008661994011478720285423876140830155972297898869452633947151147013653656495598505741022173839230972209790573467115381619206117237100092889502727913776570389388783345183091861387082116284639066474953756880940991428959925251735019633426708232138362027344529008135815753923996753432098590678660089147793524183795334123436094884077617568113958458374070562463542670943939310325226874394667822107370388217390808048235646627647653384008930956688146647135894474767521295021394046311168930973609330792846763007056183691132254465967556260844283457066671014249182838939426116089761318719533284828387774001086972582743879287275670300616804670123155121744916200572548688819888775035501756581339799387261077059716283702670654988817446674578433204663885411604768921167922103955482113519586217358872293952961418185366462460003795191589283838299915348483350390787266084120962029821954312674209363886500429862572865798116614653137673084342182346630091881191679363417340799674559695285883599068111215087454074852799676575201660740910194692020308624051652481562134809513124352023655378620978895501690781059240043516267368227121242754158304533412665918095694465915600984830149708567630020581104883634738468818299751536537018327752546991806513282910906262357741073959287952893677366573091658886010288779766889715758559139126933614876423983833479362183148702975969903392264956614102202118885908795898748744166882475787057861912955945990333860863221006634746428900776466374334833743421594621251356351417071184450730960873977220880307663313962277974287440896035009300125653956813868192898994079582614480220790139792969598532798372645937729445743509878362590524687817356757963698109077971812143813298191008696539820251230987381871038764252112009126390300285601235366214826599359004975524799235037883658125393254097742572165618662952646960887088092006501064362211666639630356430169398797606344432163477450638449374647171036219335542817947382104458567064840506097083539061614932817332048032534263281669084937951074374939323120326555297464138245877165562766857160703220674349069933529941716564870694670403045395971168756665159903396724309996299896722284405378356371405533146182734212757556314982486889507506339895512718091924027218942190771538761524440034426867958974624096882756639629047351153155193371407894849451760026372208494350647571354659799402832479304605439892568484627330247406907359406129304037495837200041533862624453712245138239340371378390985601064974179776032790183503234312467194860076131900956310831892307250867214197468779184457683765377131573096077850256702073033810224097729946836768981216092711645818426741535471747668526739999458089849198795308171378893656713869277997665421672134595355096049846962888132068099295177524865601271999016429088522641438233703421709444992855400746532772209968099202520980138204420822849856227101381371840373815701496263170317563925127221466968067749857689314936108145623454388580681820598052688737804629884574469235841559231767220391744426826606209406325627485664735671526985828907306249720684242358635399104382763127189471831522603357227187545777622025243973452601053686593709921843319354590774475723408958002755808632375848125945936865308227734826620365101881658092612427435604425098235839216348830703148314947304410331728778430173213778398990046810834238543979937618086651117295680065588719885596558905329734013864983786024374895612431001559294553756952877387501426085742238343842841366401128768788029374682318075716441805622593546046557550891753687255342087428077497007212156170705477715696548062327862261837547324551467407477212143998071252572782350663060495602770548065450526395081129867117270198816595409216017221625550479600651279892966554455069679702723458314757324252336080144335236630995082823767142978186389188854087576688626832903112352380712002579210675105854287778536403473939072088390933652042785576123503186155102696404379692667698634014535367482625461605161589547833192631300804955727715356666756055857461140973942748676300399059638636588246521085611542866694568275632403743661977173450660125929984910038392761329268006459870440295621868792765166814343271628163355289250531251901440052476727335533875877468146845150948575408449097674739754221239499390009114400143996520347064736442293932239193049021043263119815084870537585040956225907450982535401733070283389600667359260971765678171960436124523099827044631186494453156806292594228711300637634803772483137604744407391498367958821610718048084642046558434870795006164300735187780431014215024150107368167079805874616392651241325031594372595364280757484952518727307848124022008033592547303939245306779845363375697546151586535943374574287760599556393903289881267655660891458374695682309230722133169672657765405251363012129440629333199481456484439843353854907958450188988902891093628244124360656766952848436570471536434990257578147741024504243552716809081450087243398373770086091191924495572983258561783841304395280829271286422002932861893598505573217044558126862212855858679027091061970360018432663701122974917000600693535543247453885712208201489117081668859819487717273163081036718321172172577159157556684290319241350275746904745096374306828541332003404466522335302926535765394065431283949650782245381200585561340210266691986082576521638949148915498813521904139023408337028651177883754025827975329488995989753566351733890372743265295919533090884883636773852264945463162746646708757534584558008578895823526431581225123112245567923163953743892681858684798549442807188544129693950945250506879491122539157344552300307606904698676365492762065032975257638860085545012528905397821516694068227560562322696205331224113543498330497176172975830969731746827418457574267823097356060508197865687055418309033586050624163515647873455397029413851160896056954344697125700000908095291481845876905950109239301115224384435168610194897509492266808101035250164306361253395205811691166779941085911024990268490738855016357329095339159320829779332430346885528120770848735139233014172804270998994479388529031377330131830311970002441806478126911182383145108009028010139070441983756221512511025605835717421000491869974590407998923852494302661329420420277465363828795785468073000220932069596030247493584372357655789130922462840990057123709840956164152602387989284535546669957795570492867458663960497142381719515149906603777727729887763648176522031414997967922453144836485221111314286022121313638855250155685162535537306963367672951201567459799190294067022711713869278507808646910720732415653043864713703550085954706434451572996573949303245574054907291958212511356432871139644407599725010515280681990398088334366790741102403004791005755673532349379094046833569404455741733146310141639058835797644893598369396981995183120967898788894749856488716964848572861886516249139605297961998743736122728610777609810847773940686352242896709322353723400246958958316595516073633677135942344914381605790099788689775116974441287318263685626075727065009076005160918624808599625564105942051149245416933658587325822603790217126262346062213474887914065758345550303651640128755828522509296623783307050884687282272308074405958520455411455841979653671554284346207024800735062012300324350392459713569482559535121819735749168222889403720369704404979703228581959943856214664369319384823723327911787328241350276221813183901399233877593390710848831435640235112928300563091478917495060434184369358142534010438161581719362341738972348873002012808077718186059448022855087907140700696478696729987852915197106752457131707640129862181691175802211829840630605664489984171828085711353931279718856379036901818731802765236559840429712198085991645020677290671969265515254135493721368507377328252116908579139341095345270012642170346266362968149144774157831366541873821924276494612203078347841763327782421931327116001705510028978579788920823924834645703883382476444212821688267112933555256067736804867772985372467259078692493282831744384397012961020678326227834635389133458531603150203558677763238744509699172692808534594973330476498139536711423857892431056388360284093528683194685143931900446557134351208894180227022504417568843675478468300040188405866921065529968062951663537283405463799284030015412004326798663760952140432883024345702790427966910682293564414848906046125996794386671544005364768862480126442984228911878313292340334736008570878942836368391571645108801858500968485541545843501535624464518703845829736246209940393908249307155438109332279040039058732463163694250886558685697106147878285283484547453443719365868188437286382311321463714568974824507751257243256618770213241518746856374256491901989645916103489221473538390824487063596989532591397360157348367402222565141344350436283266565215669341459063864834205992394725569011438598875571063907351116682087420030238349716215381249890525518967894324686743752581841722653794687611072738697461891506247835778981382867724393077127577698113085673719817762273815423991466898172415620288136042072275899760342243523055416335025447582176640736221326657403119403209694225974807397594259038149141822420293965539428384370859461942134973823285529951382109324500212358524316512430321059669998665881763030483632864178068488852327903490066328169622860554780494314410382970756139683714138596306308053687137298802722917666942518158147787689608461808994836933309138477175354954537340318295949408932261682142285741853194224455633830592751715112120405778811412028923637166765088359750412233528836437046545143445870171655102631104385438758036384245484239662300867505483343745692532675556994421128329732589392834912975898994198184296852061362080570551625865627473564763674950232707733542299970348031299882280790312320894159146223286937779015325769734968939430273356072566982628894837500293969451222398125456635389912739295257639943939795314585603255211676664663315150491307319506425788977980340366769086583118609356249157515456650286522076873923382522209635175559234034082910768475478747356894763931343063781358898565506182645482033160114576212839944119311992299349266596311998519788991568072289965636702009822029378446331296394445692487083234578878696938892468000346379269164252938996080802478229993915475706494441462784132996284725295821217072473655039496544979504812690407338310464356167567399245823718930333907381754637225921306459146116162154017732882701851631386259796777799897286622233200976275073293357859582514972662487566684539670873096621917820826310075381149455124828096733505460607570963376258079300874952543289456913926738592081296885489090908239251153545156444828954437000367134044578785319165759917641099645181891480495510000875728087096286935732146168428194553117397060359981440243566865948419508602143206275207556592723577542751784979478572809384658950762857893761937941996260473690176558067520383991281211280786692264028343904200507331421076655347103655283141641661526643967998691296093651325241739624756600272277167759843548269474831730106420306887906476649401620203460371207498521047437918516940194885695241366431919526659586609022630805825555748803059676582977974499571089315371175794830904004434329183716886080529721864022139893077451213754079580925977444089778421290350054125281172090771022238394319361922252257819899306892107509556054481877828767315871901189223663081368974606436000135175325365137902197295859219528431744501160451658374575172492923488796221542789900967504868166032898153123728752117020064853709610700467936284618627578289547641793470461997492358578250767184428472799403796465099557604064377814322462478527942865174961595453662401515809592293032613227524458728889140779926372189631390754727338134815783878101684723630441492193767362968167080744846028335735889339144192221761593146477866640579077661877176596381399520213836457839519729367870998515533437161029304579747765226468424376156844354291373100209910049326275867116582968039878456890262440384235138742588571839630440698019786403086351405723504803092155566004535878059949702084336712565949698270129658362039537099956876692622726003194231291318784285959496070339627310434768990857730749857990442590643883948961999959646040851799970860175401569848638905591521703880254364299830264602891539970109148413113378252072095204941287245120189121309743327505472014543817836978038065698493358974097582187152823269186383007539636707564216988180806686515695762428609001397364973631392238688248261625696665070995028977486938153854039252415235036178279826980911483290525574327546061921942239967405528073881854585361079738254413946725893288535161738188662661716876863644402816033837685912061462174329970602456331934856226092078936412196865070120822220836172755962608142841150324984353199050974845682169364177914761838391748427019591878049975737359432216129944172787530414548774139044454296363369990947878520697278887916457289174787044429524745401441277535701583762861822039045560441109655470325760680514073355518560576507647359007069294928776742904918847050428668346399980572219191288124992320982368034072168860536922274561097131364314940025958603756060356775573240771399169498008363941195339503378223002337780255446971277691301137728053674157133747614941114365827889533027398481432239768048772101893247794394792128904067443503076334281983684668977100782693194388023979887484995008474356378691008336784199264445366823123481121414534729520316618786754993473059771550020348286614974613395748845989260338103859686644124925852645760340327329403684421369906927719439806907482406754977990380683190796182264600516138707210050567443696702157578816196232946153774651476628065473328536471645827828439359324102172246270740782388282735691748109744103894062346695719631132779800896385074748189146267675625307590398464814066290734096324278639399300245215665856740714371852460575289089374153550570150005505408635010431563791773377950674793746711106472432048488400901474745647207467284167450310521471097790016664461354099659887817230549444028814461822535076124523987777761851476205640660759735083336455942918339471586414014834128846559126938353214511910635030700664600431106500317714716976368800567482748094020061664388868208079829971919107720639881789851665679100184478130200247537991340672898126542968023230809752363690308265235727053031214974477728919659298291659839402319529426707156790421678056163677737548139103649089880307548991998994101784260711039969651008227448288279192745152469851753301558060770211344774601053628577183447354111153607521393183795650792951399895505095650648350998809691625306423488711413691697307270146367261383726674694689347637841191419810431679584263071428876479814591811548770929914192604865009651324807889005582408774090197820530506750450604703458442566186728499293643130601349664674156444884197554720147497641768265952269818160733915126413690839416645669319123189067921173725963127525778597962344089766845945973731744127921394185817865284384005790672468764725253809875593606475063881401915179838860830508607081417460713464818160671414272628702913582992433969611913582167294598908698260623578738921519659704593957978997026017275918007959355052354643243029351180044932726901521801373472561186699586005510315897498407869695434930184235373059261624657600050086626980308021244713589343904969938447760688580848529807516768304429968623408594755629789144534065534480115507473953603692545866462463372584975189391741178847570689383633444707613327339049144332644900580661543200773405065166672252272686375637538112066859612958172991567584712046875721616699744352162481697411147866407290659476264253220755320070152858793587118785463613001273805403454164058144485762399959741492553372569705100867022050838686098210753616062418383115928104257897147981244421379011763628242304558956604096842566784814657429729525809751259715903882310953222775108642661498669370538226142434062079888019749814109031355968649510000326000002905506138826100575468382896451759153931710069361037997228440100605064266573512142734252119784644719721980281265026936587269506314308608490581346370597478537944491040663536039762614211092301866268693644986803761825186202653106647684080017594080794593262978529006843875354295235759031999186369425958526737111897423861889140645703769172932704360942013533784538303841916258763077203973449738663198656127325882591965452531953674343697483269928005472057875594852133354243691958133787932353595914580269275628424362934192352190874463319431173043409956744223247157823150561642480892104896534926232794944124446074328755505866407588295769696890051707469293616485166818052274374598686089600712478662461914504858249477273773954438848226981306547601056355357028704039952254326364451163175571903666061675148370412608995135053433895797014199952647556201007453254944123701048965403345407516211321835434465742717598181907478893751462573008656059074988812116604410662950383407306188910529297331911114999445060432401745323089326342378967455103503414843403622302915672727636132696039537780948534283903071338927540234293329134631397464650673330707596491952039082448900010149037606413250638674400251583323390985799240037769426382227310767055378411097426547049640748912018865104229217705839975972432071730885019409827045963446721308807209868424666453722300094212941454634559713261643651247394389764468258918008443618244406624532419837777024616242580843556255018099108015279209513206584534873529181379497417243289728017798847983369757642679797421554523666583743552023528670439441920036637366983896621260835124315742043007170719341180344252047409764392842182637751004148722274125711186987725847845621049579861734564769429426301871337161997495801969928158925501243437358989020297012213111041481728233408642584780507610285901455362292771550635792166704484712879960867945516038457129580271304944986858444355001268914253271408821065535410567018021894666744462555405682740128464283487756162403730967748353862538661137950334199345350652164182974870825821000804732032071388263125303058608884785073767255641713598041154083947789055707145408838807374195309568661775194368628193478329611544155945479089297310951148674338532741154930798454963493426422933348213086969066194384324133883726553938823578405333518838105256619251639798119782814667532487323849475446015901248412762444085996594277605624259893274999210580023738314617227837307299340050476540738684618903111944404533371739474811086238227880483353059512939707247169276277874610769732319558914188440033535232622722767340088713897214094541676397139013442741627924319689481759201995043917267270227829773042370266630344608018992989764508657835506054981721575053686501641847402736708616294702149630820973794958844676530808706792994705088233469174801363970675633088769468032765986018776751664280582473049641751885192690116907533914506412654543315210579002911785939470509548951271508189785026960635340667846489087675212446958694024566545730544291342534551423751774734898340638590236031745369704861763833307921634464786325627042219207597199328318102646684028876225087659862961511823724518399590519275204066961811540650419255715012764249017065279444002168862442215448165852789300161080994910881879271398362388423788903658929112673134359410853890177967423719379324288948300778879013455228109646919800672355620304635959460410629465097357912347671815609859497817156048570439058106521744868046973729876602620904184112430273648493812555088004643698950661542609419860612456751676958592819824259250647864700784986031927816588213503979828728364472309633797989362083907654154831106850134479856968201278550312812926291249553325016878892726104733513782070593989056262984915455577523407123393907854189236192959051900206438577966648062228672132221360104791752278027288200014729046810249191924150486458508333767884315210480348892062834272290383780308593617057662039354686643121506942726447177815434290396143233421671058862371512495936703578125127047317791412844632544837466292204784199556236576878258022814297371249445091305582154890876666196582909444957301024465095598558219121267295516684402578606983308316321148012978188193715584642763445588602124236228204605353983257260110466060445490415575992368013274022897653046521228340097497824527928978023316151777160761370707558948082717041229339023101760511993273102138921597510965689457065490765251789238963701155811357084738851994099575398871419631843602563263334072415121966297291330966455004567054300569320968719104552543657866702660034817980734110079977924665077406129553924744706504384966391202734463673227854303825854258152731569499512864438718033696274242026467383111012496617570545591310025516343145608621568846609136714013861898907894284956892888698997929218619240275034483921839658721696525415555681051710565157073782653060550250337159299181270156720165774912009549366720498553615202202665407324745688337374300246147959334569536046741642087422235970856968922182777085522070634933062038470003794162718093033899990231150246052353622196750699455826030273541878275059366833871844326545468210635418792238457112238436850425233432095446835847850344121941975073941503020405560158887771871351056654303458149376194657825397412775366383696084598425180579006540756540740620691697159220001129878823714998994051782329722948197550173006385008312825139459478250397189446871441592318580892395750869936558771717501488730728806456372247364651681002103396853351341759357402569928901356959388153442375249810837486235614680639393875133394050920026972246438153192110322415803180349349165708687320487452912582359810528822431954883592273248742960689842746519515915632871289143429578689109676642838733055196784240963174715089153427894896703517821449332553474072973287205203645514971650685749490717653983725989460273574229401333811852845724765664454800879703276281237499775405443253894409910085319638412934382551339777553451606312445600357819550650561884606547742814862294916404999615524155394515853993309246890341366056669162260150362116722758948899953292156797112697742808946742794132476646772878754444592716844115425246415209570151986873380619858647418281411889178400358778348260186022892540607157447050652794626462333785648256041985318103219825120138567243092527773082273850368447823199762908232028654240760092594979942122380695371770829193975960794339225605185229614149275965553839956967113788531658601115687350960729614749762244742897620588906600635675544189264015170466287933842186058105453783792431280567488104950275606975492064314445066527283957860985701445816951444145063149492300576982493382309005248260396053326599163095461794829733099298492989977145182105520374080366329945102891450406988489180213156558690114690878143621661917374933901391033415442902418785892297322221899726336890262051729296837619578606833795479718768242409885857445738072663129707658518744052888948697163178218124563948463196808351219243035809823244020841998927763861038667996847072927121671756254759720708309065148352997554878648071940878310599764464026036824814585831104570568666369141628066104499546411832371772944492463615290194922451987721648934623324578307463826401559780505453905081947947216408482062768604439505895678430737444927304244892249711953451843395424454609675980217239407921284010051519936229927657002095100151019822673601629694651801914772325775017918331624023918267582266072918766559769248626422639152859161162300048895404573786435378936006379834500332242461684604641277346278863023658271518188391927680774468570776589489980468145930638881629836705641569238111121469567379622710908305781454310304337977282952965302029562345225051816614892065426145262151988395006532733918558171298849246887467028828014805342412864123423833847569718186705576149206582325681737929667218871249533938241976891316033180373475930115744700566999872517505707741325075136478498905603134066870875500151297425765613303504695286872903576350322489922001004136753663709837335992467579970894129031649756300043384378003261487205678795821979180435523896378664481620526096383170243371475794945093527479911886445430460787987202325611458457736105196639642623611582756675477565497732257130306991948599705588711136589509763883302409975739346268576576229769481377904913681749571674596004243645343280292662746052818475409563734601778224430086603709716710861057500477669406138579475575883296612041426907134666990291033469242572404347467090803930962125988922978452243955501227914729229615871856854658315814987699823471132110841504836194369976914608324846119805276163551628978955741625162525867644426931751678332814286777624628116567829902950370472327152679750961302043330830558037867984908425404183386216086405184592631757241248193278753091219261759420218881387421102601454710010444911085187168857112795124066820480398855303434026846162463795155613345249767223723791145450004315207464490431203394733868295811189373090282277917641769370484998428417875559494495682406571650989481355712442017093425941108147892140571561346657289296900609717599490523720194196211647419808017996041929938889737645542015784567296945845001349872474168821248256960568389673247195997528210084235502149379337604776164910046468922126979348402195866393360344506867346343667014542424858676746005735865229097880372003861246840186695858346346738556130705270505944500113647124243569156678615095901218685912870502212353615061910940497361634176854656675532773813008544170130633902331205368561167880880122882082991240115936048669877806095290533722050481935965540937426567624452516868803922587076877413693185347586144411269281006584591490871869425722385391774415106609872735365782790264570674444530376184286569245891437352648762506877999959471389465635941535437157260604348447093380113558823188723683653185233889996706156367389681107276667469517078801955320828300210969673882535246983205728679755872595089200741788633298347789308408295860961136485481192747781190323449287227056979723205939290483835797031324062817713031757250835214687259147931476654174394379281812304353896776912811517357437184621819207391973942688477850233303308448434132585360423707613077215873282991203350098811602482722556719256299726293265689511112336005347936301448969867481009356759065506001474256310092478081752692573878504749241343107753734991010168457198815088966489732431207719922594634213288922726807895497289869673571612973479235940750270805428408995652752265699498322444303598133317959478063385630592655668917020900072436150219203394595909267893658847716352130210362121365974655848828281558942932266493716132751899219261205694867108632057352205318494570997819397455702251879085861248739499387907100812127428934333552039760186458179004090348954775644142990302459956246110234526733019257530288748522802937865024622023129226137451654070523104594780081986758788222498264278045952552532785487575120173405909598265040308411519635127229107265243978436080759006622976930779632182316669816462383495136140483904789636843896399564841880900400346819569418886283454066586229668191530129789518009351365158944845901830642968456610643515053006459883432170832363408668904343683476238784379286873226961647057150565916929423955335943792002036251984969378846972555908406644254952176456018779131620052647411066695667982275366364216584733220048607458364197753699216348178649963905164203641964078128334692556782441842134648450535372966216745550605698906008811062384485534343652139088957812395382977966092120409671610789009741479657253452544603759034188451925879501211072750145727986491904100864137337811717726007268333130787210850440429966506221775799662136366031532817836435477621340644892274872631237981599142956559687330988111274529447197248717357785979574058931475992452008456430608108594878289517219142755414644154254155943937254276438497962469739563705065348682125756915312225317316664815334655232384083554474440874900586673316383106562669449520351533535591600687539033803663328313208732691799081366796303829261882608895361195278016080551093850388933088799833058714561177394829514309521023777112057739565760565242928636511685782696596593406361040743172264370852121729094082896616956648961725054160707823639106621282914207978894532301158345334446454460168595670908062703240890993107003968861291119938629396513871576070592126977855776151719654852518254820825842494895837611106603377383790057536693226694896619281220182930702832632842474166283444206819590826340223746855062196336334389388268180770375214832075297398581355707110969960320973024614446521493116048042446092016119961680321237693068758599925075156707508328175020972345529326806583707846168970227976219489726785228084516210643846805323541131903149558822154138714414452320673037064955630406252017739195178594170893422420878071118140862761739439823734269730005547828859266871678741581094430183544733142731404367574096884674252254187560123774607556026179596432700269976832988593187490082151197820132079015210111365439519286001346270933475829896340977656709021076352822149045567813758836940809420831129230062342980087370807028345739143459068145010849774656183707229391011657261900513617003357764920318539532038140311943245840894005330495204488763094434052118397758830171726816070664794667426816291788354500500364761564377878002328840114339365372395116279285333823920485904043296462408623971294741628159681995411296102444339071932627053079021179518456360462016201893439644401551694576766366123427467576497910122058086451384893762919614874655048173181032190644428021522668647998961021599959163277474189192693127385271355609103293851902240690009513750071371241474235430396512469477565813358892752805977634186646896993737907007804452923453579313456535082264226212638255721456436528632932775509739260328309815325281903806539987169500937644890341283042913273292775055014767476842082190029066682352645879666971625101456636261300761769902467896142946588940362953578405568185433742709445612444839177253377265191198099468829918083046014154268036779672162128011997779129890295044936458527115019563155330577912554382654690556668288557339128430285591420905058686172760599206726769708826432020114307715215947279077167999851505533455830024901811542049665767893522029136862912476390313833250384821316284851819976725081123254781203452177686684345356902577438255104968091231540504992244734352117091434284323709377896702298530033639807616536645820513071336540997354734494947147092974092318750718745204864404866990109646955553909920246437244451272424351630681354660326473729505824966510192012325516707703735015794173427065728791150374254486257893443746450093764691149020919142377149838890394862535062438643994232534887983953898546766643588441728507182813836810295466505662343501213309483095631347927412120971679349006101776090240386103362156331192782191077159661897143190592975977232721683013489180139714220716479124049757904224592546084953527560921776785749196162052860408883151881233055162539420442058537825005707597579777324896207757281825385678306362949097767480208592072987647153738139711883317954922011349563754512784893590626887133499084806654425831355588444789791411920794578226899151798958747944879578865969684098309750092374045044231277051529743981041486638865730579002353527598321123659361321808589052175703615609115391580763667660707424578728833181623782379357868123373468966553266286464538236330177887743941800102908000000064520370794244947223033442507458272388276688782241528406380687533484307556778591075819834275666685312084269351868543415061574704978994053288471793018170583896199396527623672634661338722965661356978848690708754057316896881598517897600773664599281461713649102969045898560430431773920834683367044696162653322148077128211930863272429147182200442784784868350852040393313240556077978143374303841045020572501141667282840576377060144456024038969969225047451079556267241193075219074911758692853703770239481989540381231635531052573182455734223080613974604751101371028263020447707967937039159286374631131615196004810052761932432939132246046190786416764511379998287503959080724803534891488862871659197581612520631237044333063060866710483687144652243360457474517651646086500676431321456577588223032284729053852873924163145002417098506941255443539198727085173078222412993987252550132530024645669878370294773599248313208662723071316648748321287466599258869456967647988324294600906681507882207248333666743700593543257378216338823424349746665030501687136692785290260141533724091981322850064868616838530563705318425166428460314572913025963894321356374719493423389394320588019209657683778320043222818993150147249665529465133016645427322397609205275738242977323386062656084815083557022196465158426641587602453020210072110122003054799592923784069766521124522862469387414562127762171284224864482252810135107752626927099024253908489989613721741439507392902750192617241782078400622557589763147675541988783903390585609940094514112038249847350043572256475234335715861025543501513610756610435041670683760209455920778653441306646086835081946570916621446546597109389916786007626012773885234327032913138023663712487207341918194255126555376090543382487125025787963378221602890429151578885776205229165891157243368440469676189170348410492008331747310414949630366934573235556253291786695101175874596531540603255266639905460602597874650703524669814558434217601430364518428135451638569062135201249527358155609993808767706944842317407664854539876276140961426481160667638413245902507377956670674048685974458038417515006387488345900321518651531405977897592382085998536445188330632027105249158002796627919542651683513212034563150620759944493301470810825370539650826485619203297097806414619623083533581825859032096199543622397847161488711712355905065341640284011795466844461928517486720872707072104363257618044145552797310074778657667866776997021488332156129366431971283162310371525931273450191562810137279770180084735406452602970300016565707565862271140451330698462033346906838232651522148194160928320372844013353587052367178564335721195740864806311715954189410851834384491102190451498738807248373494164884874269772630254447284230830989237995120068984836377403357402226564686869809722282543361766640020896109337475600930993293111484820049627721815252834614146469254642333624470234854751757652335954318000812009414155823475348799640159163773786198246586062656684120531491776082919244033624116817748963571793817743989873784970191904676539899701796855888748899395291633610454351539109760774601730160066392530075277887576502975851337335327655059946609008024147961311743610342668727207165222879979957885806440114605247540399802610420341736262937527021916760089672327503362324798702510931650902158387679478227004003668613225818127274796002694825488537190594418572936950385129611711660580890554285751188645112610601927615933125251592085596223531970907866266765543556147605928720912285365549518456409968807991936843722422094929166035907758791965282131525139354295034923302070216759338081136689130913511318667038919420543457682631226570913859702431944959020179423682761290362921797186290427860366498964124876605264286608089881980111108033714051993798641376919869945674101003537200103857702717239759367284511408225743657911588765833342015501802113091901116573185399712976186388877861273504944254278815114653900273627351952113692069240982460681446177553345904932844436604593103876005889101552316169575156212416093939356138491555773462998811412680776921899194669714249849132100395609395505203958303342340549959800154934475451000017398678235151287417626806561831262431066452884457313658678691061058386614158360371651433982966623280478656507028859393396051804722672231598077702507829703127088700750012507669324168389161478587325896607390613024294391319674183274137307034661010098996804652317605214280579794076062476038940310800453760423429363051141119861120356078863316647729432829194482092252432589656381576165850095573290133473089392829268540875404949702676542840225747630804490518510061143624238065816842363943638636213403531734389350058649669151676589406705182463491055698009539494236670340657515663833771467486539970878500173716806285433772393647060813491639679081208359343605662965981721070563171131611613350574996511391114580363984240707843767218353406514835943479906977966813669008201736127917348291484628465742181615008070494573965754504568862253562008791273509617054744185532264707626253128983173104135388402045681569728864717605634433761522860758690943320779233552199281391271875264045928262921662906556848137441113386171505687635506998557348973945507096961395157732151185946209445207634674334471911119636460226408106861231789039662257732445927461201161164297129847152440851108643858622511992761103462238694357142548383810191143343241833833183092781742025284459909466509196851985999861221495211343127522849482016555004299795559527108819382333006282438406436598637179434362722501217121776317233515669670901634277590553496007211073757372947187464700813760631911224676227672181090685821211729960836204384991967653573812398657949873038143473232932402639518021550208180851445504769106064362518348334972237940596885640693689458771279382571808701185796945263999177809348550326873060067057236633764683018772044737710449053865302590420742216238391725123984503763375805804763039198309890619966079018921867325480180966869563728906288228893226650770703843021662539443745537027637704079837207206993110295100301426592689322910707043316650093079878189498660559107934590390414331725340995353319375405015565562484825336677164862144197008759173452318833868957893810965491974102349253188173903153545700260173085609828486869466369743294120700949431529362426932004683871621473741938627968710721581374832940647087470576573792036706870098918215184504348073256855643062687686388255955392624156199053588496341126552164740539389814458027148196716332480793421505760312827783474158789531140978515762011840641963586061296044211905093152524393095337896363410214179057889170782923060052025399936731327021369192391036830300011727889770332084785334430852545633143621875159969311449677751371054284049577929158867374536414795478500308880080755286765932721387189829956357092224826050726386462034157045062444045358858263116467812116839589761560207912592538326254226415290055993195015159841232276230826695888650755454874676782781957779983367199013849582055727861234228919773518667305187219850291358197564565005669319273937418095721806851096475857932334917756962886623573334210792194552524582754277561785093783246287787963689011899017757750256125717603457891189540114699166992115066827573091631259307413484948763734162561167591259393924635279342454434277226758760915582715804444803374289169470443008444896095092387988099485451751237822549968655154985273605190581817522718366444973676669581998034733338130656656221753092848780324824755125579019255263343114440355212977260080886204024432572788154251042325487357659574065738331621253505001298316854991336683782140364720635431285822514389265126015779529294289375343395212486208223889989735302617493382072185587905035634761085652453319122162161772414140503048951864504034293090550927488151888709083734913731015146529967856145593208986799075721438761011022151060792298246831568063369845709155601920957054268741275948608110639700982962860435488535153428371459622811026031700711108096681950517409409830237210404616524143402289670361549098794878150662137427850183648515421863690924172281428865495416089775723492146265351773593583434094950332096915697729536720281860595621935657917783266133893067845941810064328905189430376003733527991344997475621161832101457616380109857951253383488295305565527265130100586188461553230024052455469489968187339663961884614202621460304295714791850823964739659570179164832001771371196569223326544496138553273687518041014515978012778499886716566998326581484094258587247411357301524511496179696286730737824231582595675067177262464921787888075886509898188340520216316925012113543902882107468201290358314638316782535568431140905269152715591668384393720444576066680009194654202611154424197312389712901060725213227617658373786213921001979328357979866389042908614677976809191333519455674841405354204028222170226192571717265059325036035006588841979904220271399262621865231368392546876169538408898380889029229082462047626430022480916096610214630275327863712131897813907861764457383307584568018236031351378564933864675448461136356368497811677228631254575290030161882932600205265049207541165877403981518854149485593382535508917119453071988862015488924259985338759448004979830028491964146785437366490128148761453615060759170308732075808829617387284094270385818016187241850796916081848379833769527934422481771927524456994630681682585187105872480671014838480454219660833005793386846234535273393171342590131433732732635525443315845828945935046904308336600010670714591656063988782023304523270538405433872920552438372606745017236533021706871259128193076422672498179996842743048971998169026673297699087068309503682366773101166680671579068318853089300730263792004909259018790167715682808007588684724870702608794814773763523511381941683530035956411326275335145539690156041978387252263885001540450253468978348137739896546820670563132942938419166674816455266776877616582019669690602660973314418910283449301981316448401834573750863855009899386165227292811748236894254896200654423583359989800861650970287289698609577455240869757410122576624621198832739023978838064075499706712479405610262144910544901289786037491365540200161249570427408724256491365889039272899838876786416937483658016248831748083987145151611076396100195679571155486482471113465844759980360725372096666986345887814686639680427328400623258751857411802884084393165801066444928472935286034385371689229274758938688489579730813193517475777779697861766114932978781992879998438997384397989448828751822415325418492080542427713321798324009156349013389940761845248986018411955569049009679388550411461860348981238364971624180188948100666301510976300113470364837320288510353338127728150885318376422648582983786388360730357153464724716051256663152049155512868497737062625634134838797372962095377064356716934644847866588666190831579816706315700021715236448903445978318662393375251074611805768475034932125465193858550282087892875912943417573523076368702204925995998705104903480466117843147316643907410345649517874441379679962519584347944226138965476472686520955028379039659939339319313248661699854905972220548328218283082970825637195541927927119127523710817476033169111336248282649143630718272453101761316731733735293487521164141321632694898683825097171340937560933746280060298564547170423367623854232464592550906426842098973082494236189627447546724664069304107531663407518956682878940144770178857743713932859423328822580450177840573338625305415187215937652349097836578581728879518020562978849679925402691664662901233387955795326375877584326572881627171656438097571577082668465872691990435690534249503568566722639212860096078913825631798717063184653553939092299434823291368180260112573518556301846297691366119376151960546654429403168529553442804088209068582375608352570212765227251617304203552858696007506299214926096600246272300772337364462373093550923481916873820975893893391505068869393207780473996282687926951026514137569369561969013097980621217769596346141763659466888325544796094038352197644495475368646758756130985008077243157775629145954473500519322186908694920141802761780035399428782527697657503170867980482310376105479668209867706355540710646222066112754477603686067884185353589026115813162625021196889042998844897984230042897421418849617252530666154642382682235244929693273374915689719273904693878172133926531299678821252718877900021054224068195636585494594405796921213661561613705428314236415890182670392387551825736201476877691926271102845480569254285062560306426558437562732260287646389002131437480053342285911030909195160727553312947472383730583400175971667576523942539528801255012391684753916925469513890739058007516150299316833227675945457267050763827402077253539870973903845004813315208232525265849787351693261650661790000389221281370105787691212608901143943958410566897271475876111190914009318426474200497079795863760924296230255752382482961647272188855194979331285950690876936641309100342516333093077027389714853797406354090066243667117545745137910615858914542697884089474750193816708678586661101289308382147531892052831482714539659093542638736904199308266342384615607969247239337344577376430023603614596769610300945089601115449210537786259529049489770080783019561548609203124782078282513257554831828762458990349054530741008118954154547228348955025546308186751008558884024536489041187323043241641175721462833001487313651405355791450527833056952160993281558845639151410042257160905506919453225107463695091133764663318498005257166356594372230191895240800297106264456842074197100659077756487222280261566926612883494439311536128426897962323690952225572522693906177512282082648699934688997203575785744587659854553493560542928486785276230416401191385468875935875248671138707181618576322507904714640385381457033976458427526245106807359135342504014722175762215421264372704697123942846915592817650254416750132525744124104940901123722871891726151772457093838407293834100068471375191556047808762960343984771777457244586445414164457238256778759607518440073864977682773540736683438395618462389138458169989687386596036954933935609188730425194727483469163403244110664356544081362715898628028253096698215697584239697767117634223734011655341283756659822057953601841180349594433865130633092248152656104686304037471077636772309508977582682169595310613903936109807078813481270550182700311618816252769107669681475039858586500069345816984720566510340846817553467829018926649490966504721304146062697026934411064947134327285898951520373732625237369230890122561833883418061593396353004997927009242740910787414004932295705127099299380716987753790294565457048412844405191478284970441981099764653670802813675626203103110767833577829469690148986647917814703074094252140443813798784995542211318148720962705556987633029217504765476640095736423065862139209887003734734523603277752852777398094996290768199396222656640616219781098464659012792131553364477164383538489904781656318314386379744115251366063159602518016609780729363076511269923167541932650496861819798346008556419492695036050529073684347428031252708233663039153705975184839556924897439821111329317723206015559717332513371260654641855843633543260222481844394145315942954182155573502581763279306064746170735083558979387391122617808912437135896166113140875444501578199876723434264685773660974828789822738041328795467506784616980895985462746151105232788402039141122951972208535392055965193201039826449917451490881818516660004963763774884333623044957295353012112886235211759638836123336834821159629431048183574349771796146064187701064288371999606176560432584625234452674553061424413833917532915288493995791973022042141308607210093540416902622062950101288856022136828852198029462137045093499977930525064549611563407282903809284708255612907539372960600617583592162842032183710708807753439031268192792540426134296779611702657238883684922344070076454828474767371740974816103753697118516400295219077953219425065103545660164456192457285511503695527247325290116984643987513252752913216450428490417731905286889850642061670393891069763297825441640792016666964236409447437710208326966540028849659575722615486326155026140911796481634397748127759153710712707825409466148435344631980589168355631207156493434368451686586971567518080459700048534823738424581824362214923562251696577570303494655041491750793795465269093369057217649970241922819185260775592559119180241836687197688395435398139100437703638645734078381337291623430219827973808964270427558539430476496237100605039449134851654272582488684467466242066222359268201659824118074224188267838948723605945318886142326459305099237395255735184608676006369883705529158047737404702345924733754410329021741213602836876338723374622882383652697530402839690467507460110248042121335038070377292020079386540729567027307217833538054570991383459319630540275458754836960472380966938664797450154297361537576725162771803089740415629198852201447652918806051768372267939964682370194364658158475495121772218392194532740452626897931762621468184335022032891981772219420840942724727359846460530283925788389193546495363055130828367445873927587256043933792632212455192653934793030545395668785845377360806222879207204526028281766870678093510387313780027617529616165240040474056066022671021833260461179210576173353313035930147089284247453340213689327915982501778785398217658944965422058800923780186991918900551479585864074715444090595301292751912189961197894953101447189103655936146754621633367842303424674824256509317225521196222061155813216510102926859028920683100416233548972199290251096800601465078536032520027792644954814540952786998488050975888262593813926630527883264144298711196898419596204778539055719608859736121548906814246817584951938289571433298940123859692537064167458371588445961015955138887123590652399057289891297274053387341506215991880233083063494807756313996452742496615710751519836576412372372141952142875998627734490396840808501005320312404319596167242145970102172816659958078403577690435234790223395886385284631040212441220502637783335742749049009429842866228807976016789393105840317735422781216161979391829531137642825586389868206200073773837657112708998928005043374847250623440684823147721805560512734767083272713802543636028985632040857765375012410012176748858384647009826415675394295873073537249565652823705565055709551228510661780043321693096616537739239262745557828965986472494218156957371605816765924458091828930162813835049411220222216423045413179854770918957450204190292057378438032422666833733557139133576882790103087038621558940355489264593762925041112317585710550534863398708443719262578579710861220405788333580039474319855605890620303925313676274677474378502848393507739679780743901566961895023963290063500266208943821453982039024002800106422937567411286687956341058130409094648671632471159384710525134484967706308124354227294913820157095809167198033156201394687077735713859497328438826456175983652355650319365394740594234035358121123705835218038395714876217315590926905683106464004839810046802530056002149488489601650276496143032896860242258882314841678262477097714600632814488712240476936169349610654367129993048870669483775964979897342591409446138608754169449395095966656655973246707493574180413460364128439732529241087419274996901996978673709511601498516914756617681960337076058762189356901230094889119046686581123048440382648177319720618670590577388465944205889561552598166808630406460643791328404525679493861977991366890936235302895868190673380879456932093792663063633611577352934097883549712516775270803171859758263610444613592727456178341811388896613155138919761115888237061436895135737109497258745428138287045935984035491222341419840413602024389985896849326225710867358434135808938972399748762243349239035016279791400585855742804009266262326843193118931337504473146013985181985864708951967961437047902777206059191979049328208775362818612306762946807146191503553375335208078032964191148781542623461153596697931436318870667373135845080440221943668328998939719017210562643486502060512798573161927341166184650511762473409397297587016195644143636972607221779672574987702279932081768485366068268853640713939847394657078282032880659013373693550218442854388807214771547128206142914947521461824620015213652666369812726263760355645021742249803205617419325743563145382410886604683666670126463325820566979189760720270679250038136758351886961990206086971815455495151755621925270600792562995500627079179742691626572338499393601388927938181862139355912962261190050208027142833689720479851914349258963493401750223967632224785105845266418109704111804331284224422276141082599379124053866139169724293975438956195020660910936756067964506203868875822667108631313120730565379824031945243003778166197929856322452661671036953556036617280655889569002420176945596019443799342644132542637471379553536428464333248129631533378682437346748001477766073759300708715037136008416867269169321261906585824157988918170067694141842205089865527258147158199220807143250279720705607324767743498525017333722207071819967526576943399667000041349636014816399651103587403641796568357039504679046735884068510009352482492099115692922401578932997002801433115102809813573063237597885082424809385378661848050747391111126594442721989359231325871784962407005172569607159125783995897242217981911730695457715921096554849709256882314876243066774548422417090233389355514456134111668228382016921171218362201688987996457400261419316642748774824654253263553876874993135387235787565717486317599127518251057322779665631526222080024878194748711693477867598967828520078537014562689243961907405105137165217158181821754888736038621272656252434915377897014746223174421907265822935584916123174199271207245543898703039055910524151855086037050250818077821236981678813584764417134576468522090708595329341150161602740719093335584653076269461148087190159691438239817704053857621529128957449217977102519078177753373287515491373472601109484050435030464383106520881397051358391955369890856632786280377807824684889974420826395177904745090928588811795497151907302388461258347724656449576089838260457606946798805379653801224051935879575853081578898138947942713230102305204006192244405062306489435282125784519622239927938554985276215256689488183786493769839143968047107854213061684969367679180199740826544835455761033672562359186366829642489217720996202847324444492771346460144901813345195629516745243439712740486280416778101875470059238888851771330918838987943975204286920560474316914861460203261222047883405005740630354544568476808479398454948546869604464975312183986909728280593425301837804699444530299845669993424735039271173754713789480450550426276757223557820602751911798571466054405388591763077353328767740258120993202452097266113879928001656697746620082076813422364952237710042657578999325203922649995153108899263963278268693603597319208117706759978511734854627579198411103493305397287778808962879957061615514328379910768153125684197892257203003222829333897312262699621089465155106227468380868876023513074053418977763370371303996016210473029384649493235413001370640114452896109893000197864170262027552972181020158001431864158050658829881177014447588774999657404524240878920119351102850854289305789193623302632930367219094200415694487165851844353460083967011391579293646821202544857223273505719920035753137335774979835764964776427073926197030136784699701082786289577546540686534940596650297781243832778043733959694000492731565564250838587957141320624982855334949213699064679578283699469202881883498653479330499510290413704001860753281050860873881401087918672423356468834440818685445449672297700399650322165279308787397909328328412542484307869328124625178155027497197103790508337070834615450566610228806871536383329062056040656792325492048666175204848512264807360162733314168731777700197762088968598261906265296966614693578540649431286667956407269793885423059564565357805705794247990720891438723972622224095758822501111098735246687567032851173529788867494296988904603421105029261612551753124352632249831954643917193781482980942854540478914296439417730466615892495570410263029000496576095723841911057048968795440585990708487278474487219881656368792509915178879388991554910981195410314378740394232276271564760263231137307436602642556502830294604562347973324589498401422164307771278386614482027673115422557881305129741780956522232735684525260570173280731414002171041785996102847305761835004243796796435609526919542774686554448740333282724315398468964915666694338408165758437482788377672251916751292961369857320229395585881113315807610768579171677958929924069502998364486312116850805245080335277595779011957271578563077702233384664263315420687809580690785909318525547650496409008449197837804745434450457202571193948810730080150015689491439490531889133969836787450986276878318602576719423559582567671436169304191507127749116816928996151919375599854596558687264673530819154368416652228252123579587021335998014211305391177195592894284792062479340176538640359109333962903212900729594446087828223113645208176486940682603551188846477597773312745920742653666215197947599286158103738544212149706154978142892521252596633601746458832302042964404278532170013100549047608602782868134673911472731644681206195426987443548051890611706651390350565578139692112808549081125446750618892575371466765587856185396033436905396120147097700797385641984832123735772711875428891787268775381141414485882389277904747982597799247328448450513141866921862153922063273174067728067125817418886779877026137495311772344015638137741845294234437159565752236113879152369572344606126528059349820429260575623536337551320045459580236766566502658494587738768498308923385053575948746507443546601442991256179368714587975111206805087549100431289890822327548124040738592865043776480382783511466148929888534456390419834854791122166890058704555466252492223609807997322603924851624999004002330662180576740230347577905226789887118210906301283757810909503043557803699494234863696871692630035645786598006051949453134294369043082730542749743546149844934115993281345030223223234604701536200182557163435664284749801266364203632769503362036301887174786301259146625825071696503731073937949844607824874634354040263922205351633270243359140875539517460101933973637267921611132880620306230713918023018880946474289503207068547463999476568143788886827654238124964294852556993801142821713443913847525537883609598201112863146075031212093449047076257686444783535327386383358805257908282192901984968051314922029184085956287751119005282606014487674763486605468051774668935212448553130830006397515298572559155879914316097719569730204393593096506257871618359869704623255946641153264378121669649059065924185427405896841994892144327965876462716083989935476042892232190684398133174707766642766505529803202962984359212324270546575358289484424180896208854076600785868242097993413522576986898686247029792257596831710035190823426899594881227479940963381893071790911674917022504428054329899458440354372053670170342738419429736881227910218162130654980397103066894108440804992869959139135931579215005191551199555520435235987480014858076134938398444809407981725345351260067985094365749335148855978816609606468390355913441671384128273565662062556359941521987507927129506513988253489132054013835874232157926008978015445230474888714467719776460391812500906675488264851251676279093417499982500846120627224640440366800562437440517253951952129498332500402342301510229708109404051105537762521883652975634648294288629535387976655720899367721632695177658520466684700370976148783830378047187091441604798976086725773224590444090886968435128406208135998979825326753056186107824057451178590446623852232340739205899048339797318488321962542394982348212672248479687887121564401772632671047586033818354576524889573016524464707831113067898885737280231485467255660287497389782716156169510503306712268965860323208347523963246929472779856898145982343149991701156078466225707385924236131560080872715222317725679605913325021627910941763918851273422494212769612844597711666706696043692542153109037028026598690311369064469346304227470645346490134093094848100186277064743338747616193951652965230343646320269507499523232516950479144845741318736605843935480064687414700062969824201115435684156619275988891325454528467689658218081475125745834107941105504531561216485039108985871434044950629774840992993306176737498428986716625800398726635716560606021749314314827947881123275037157001284085274359322350683502970873328462454196985142450483222319046108680016517780563414070676962135872925648563492898181954726989864524722424135903291233246763572038646787979406977111011587440715328769666517930475420564985744713440502646773646930705091621593749445800542413723716858370987817066105228773723144511089558850634549165463654618939244661497165718537560987175574826837788283447839750573947567060198803153495724652474309683950984351490298047346760721175543689230105556912154775162361997574274326096738557111354976681739699108562843105154908524635865117714005014759448266985114929332543740955751580432654289787657614142235385162045457085305417553560029477958052241939649407882961066046589501102141127540230508594318992211357949323763252525069301775217852914504088018910365866072743429082246260680445908248476699221095095398131461493610408496200273577501037857355811038228678652727378455686276092012586888510376598439852836051755145270057123897310903643157015425332968479875324128644029614938039004671112924889466970841164509448625157572429363723393046553314614221573718520661205377654799844921577807696267408243333471325397176677871666972753344448299716794188080098322334346802473532288328898308392146768202875493419757353105105708491368511612621613359960891973843575815379318662989155490688072901685860408558517084232227506915043673494367711996113920985377405961906709255543408619624452378619678256207529160556445812329161526611803622839859170621238513780051404941379863957481883879759312861821137208210723159326502297752446905022340304853522370646716537575665175688533042158836181877117535338970420056266412139283143119172094078805775658609859212262492982431675971345521194396122873234798513426000527289787057990509070535317418984713986193102422769256665739442509091086185012024960703780261728640519520453975095895735520249524058806552896248463491017483155049679470683462508301810626728618667533382561328620259643005345656816593514827961789929423414273332324106563110051257413243340709494958145905269202632394203036268873398883700186670793568451000629615003915667631738209136198292428139927547302975055085532739986245381565458104809998707833359676459440451627060323515214009369777924169174522227840206229283373500726687114205879922792842005837427225119962922198029637354887811309697868930555653595036070342036827849481947811284392709840602915999672899798421085723616545675462057754289081053238885586273887701315751899637951232519600155824127652365686102700763315691253772475162839322318084920702535190742077784829164778831847766329897556253486224137118708392685971363026494862564529536180240288707564073082349756990538652734105908726546003484820994801072567072007740403960186855738784530065539260841698147768893454818036428513896449204029500442025322009076295537014914790890011417168272980697282849986383641188491900912759655506938925426546772241771863652867182554273628148309194281096441883600714513811601273888859346912722110686527248252523627955846870594326999843308792599353928251765276042401051988543502938066825086808767290783504558787195351788642281155190265961635220342438229125125827796606473143974168119936593013496402399525152693365580477882386429623749610928561517267271302897537694182478306669682448792206826549872592286023230662728787813830009705879353951951404948831300965856781123140684884568917142283752428263840825885297360221709217190765863012155042335928762131741623751896965544868885333623952679086153534662013704817891503095027270258505695461220944222073672473275807422375200324578245285528356791029116309777532190866129703350258125437828852102197666835914999598774896124665111723777826698897918283724251536164648661891865682787578260468798128185368726389831645892039535708457038752036133820958935941299804478716869991349459606775206049355726656487367609880369399161780403506807905127498116791277511999189496919619057598340315879691078482910944204824827447725652856618689364217224851367453927181136666022143078319231221965801073458682507317674295070350529231380892483357715034101974920830800120980295365578042361774022504573310038323425284184366397076035318616057293556845439177437132427848581516110079064334456949314891642234181059379338344776883691489205815001887127133398390851511345725108338152029078318810849782795637925714255471797339729058008980235167161501192529772994262741679276408655468926149556832812292513783756568025718556483038131179924305289974676968955936303239283473186691146839071125141050177775507572275572663693441096883888742105598897936420863906416234856369698682182899106911140113775768789003490782238425134407824693821760229724665924187314693388363956111504818268873344119159991599843590874244532744280521998547249802237552007234572913818126768953650925758243649499629369663673045636224178656909996607674557257258038060532015038311587739151708010640146100152518500837063232306248613222325363074161606511459368311273557826368724924738805279745404380522455868692211764004276960490062019811057742004116169976624904454893692742146131221964636887472181030417244128876799888344337772712403803220712297463285761398529081160085261587530824063827590564908694363555382836819256446904580867405860987908433395258322619865559333643839637632769816556039456625470489647974290201514273140050101583612453749566943932907070900238134008908237972898013643994938109507033755704649473943869157766552918355990166555014274103020724018329822751480482897054441961295818176491864765186551589092377688506767761141457247077764912420648295783676120963332607049297930731780657735673298915617235114769865731760266058771199712877967556374636601000615734449736942159994729885971417080016392167641671237784019854517808604159234306296289436256891668542467471133899111956688116395700910816688093520647652146078635908940732583582522327248448061230973206384779510167552181692851871616749168840106735808185558869139552081652538688252674212319526414438698182627851708267349398157577462327062555549192866893673949817884032336448253632269824611581828236100161381770255982220112746428322287490812213372698085654878263945188291240701294042665052205779139678112468577612068799717621003862657050660729823822878553918746374044917585307435502692463801482950639761931698230082305809487864624413254814801133005038894187427931024952616815705624876990563458295938428823447150223021749082460216452080740347277666302244877379985278692439134356352261119733992840514250083401794222115587451914567080821707699455957960019587500221638234319460424296318384423132801983613096584314776708517882306401186939914396234953260635065692200040345033038247345484988717521132463156514499680249587194179372993665927434035879264497729275061100554103467151296540181885431601205700905502444212316762309937448239093323241583836612739462934110373120817294783585676010651782139729989956020072780799077548732046361248959319335722591015479144827939745681147838335653516433793330407069421062969152343042966696416163978404710478256853103530282216700774105750601007631375873817207398300424690906388144659840872927064964483275280808148674906237727206371352267863161417273575507961364530110347842629372833927631651182712753906894522385152066924513584703531823092436709205022732860495195171165261036698693362705201385209893230258419044467086183658624787848545470335925125966543909067735238406420371370295021375948936517808532049321674508206537763502807241053891087966070745457780491131201416949335466695115502961548955825979248036767002248173540590838798924065961561845300779952868937040837842498961682166023188864348487268766570401783359238044414225448789816592956288085673917238743809960195918279193392404591038911246284827314478066812509925802391560268891549550845426440547675229414303935106900866177402276842822697026105563446732939311980663481008379224771831772285376424689882730345841510967431602208882055637496858089683743970944920321997943044300194470401169630221912558758833791340713602313591553494584168195065533405245563162631494972391985386672940033537468294037697433903519069622570398589721034442220280670253411457185621116004114483060839735940889554310840033235673233093258819012740179732981952834758400618668427594625220664793056137981879351173183261172839765424591473514952006755923755547179110963111714079350406304548823357652614258167632274593341091499479117123542673203952513255777791994727186782231510614374685714240076992000032196395876849768167321237953172969626944181272573288084593177466420779609790409155749022801485790130383480461945127079269015793148069053651130478776449894859346735399705172558313716510061429834875699121900837676252306470061584886346359558522899202230548431710547826374605016051879478739128403203819464457885416008504799453144720262770599207077389297797278516010143942207632009695849669528291253120364918948135334476312242148076591039845601694035451164837105742652733219161933680980697126880770412206213116351367932337692800997288647550367298065913466984619399743921419135128921839596270702754071826202518978059905955835214358976843143204984566623502138424843862169811712341003033337543499010222827849399144866104047852729138841776016318442945718170213820466167511660950057450161327977228355115509392638550114246000057052446050488241879074272049508257631707762368893535829400537127960731987588700265292674044783752044142561724924437352250606923551729321124626808106474926540867200633293288074231350303957381491565138082139858454284417329804447011321833915324957294808020027404717514593351106357235399628674423568134640866141369586003609956857062724122301527136821429391646370291021974753799685861384575894082247818698089446727833928570226159780061755998415735266488444340235661392129079030016307642291357113499355752318283209516270859604153098111087932804918584237608590509330867326610684359150116885920095897997556428900184138278897611654816361902883658311768066684433318209048723326153772208477860344835952452970713103313837421319124749402089850210247005728134573306647107362422083765630139637892651456288583801762744113918082411863857581345651957600651092779558954129972996431373279017177872537610970557496212175617678685108904779132439543251635081533485364289948382303547070708508110804643639788267223804984202300799363620184439153128321257256615038286631692156724694087747555755600129607221615006413728090137760718508098513076523542199784996069389972368329443746428460861139125077431918586427100329771312920506903442395326566413994510322682626557110555482010206752859714268044077305032527599663564001042331436718648387922793697528013240880055662763718330863238907974993926454798047460721659045465029964068854326464328973030112783898298816492342256097801189315792123146024166022542715260019440274746074841647361990588019460779706087762707997439824455695284282275393136094321503417331854154532863604790137729721054633551953094250478752018082103570907953310367585360526871752975427462307009660719243287256150246602542861517971860954771745513585344140713440952729067732993544051020224896659747722994798614849931402563880515077498735539815833436559208572674618822828762082634511727499969752184096286715201159667851576033526455973171838908964023278414614856971902558627193464276775706914829366524399745740953218358996344200664806592780303192173568251872611345788286463493640802322145719313202415795397451641860862869046426048584299967018260994262993005505192435359820053428553487102307481351130139507073480164429868023084819874957614673724386434368126175828821387429574266204988920157069817008786214102232925271062929236129245206227860232017139003871510989966197862219210068884555120640122665843153586806122309063350275676950515579002559293672769094925335144956160994253083268555911724115379467136767835343868121287272644685567639515750837429933385984636526441034316434688082933171627870077314990694421659794153821575112283564049888701005717610681495897025765987619490603376690275915662521236829918438271780306574818056019149801837337229774414289204190553258625364081545473768988943641940888978427054279558972402836100112120544789537043533836142775103967446829013983124977557149645969028901696983674667093432371130526274683783042022570816011192936559629901299302609978248916323231397570649955135500662693545569345124089249383481574704029016732422260691746895027204072284341877526405461352437237149415701879511656755970162094302479089062925669095085618879437943709186337021713005798495639108767606244109108233460920009087641551219130576002969261574785774922077775677474102296944020786816369696841737458790680943441562384277743183110878493688553415767045434974655098205925421155153461113095693455849147707270581842301081239985391515192299735895489577769853170910127005927078460399230164647268040558132059364814792702411770006970315061396754883803101650282967632085436235491256021557941708346340910044811186210951834837826872121284016296258506213304942093559695554572925808052710098048600001659353138476945412926118205042543036410562133467506634883757562373772066729973613162776376018654807250269469030387585175132525415634397936977715204724317087478235568003276073179665656034640062447339620452402491763575868158837514289677357987914795439872868791355165172655100780174962919281797476286358592568759341017718198302273310324206128743742891275160292605931045696641195219896313053390539589015452177837609632569564227503909101470586703029503570494311031012363368155661779713025709487690619519818290361915470299132321058196591030301849768310072602356550564179573452312036435225921349199409066439639972000856035071389323561929713176000810539248675583214581452829263342732743046770792446176528558863103645734770917760259451031788952220867109343003393730295829864126532346062048746106440018945360559808568420784147602221731290020978988316458259869550370225452845037466377618670384563656343873294915248129863951585871253176594571295389887979942351698526450139166770980706478190623630880919849883378121900368204633859364706934534856940321290242054209977122774865958825941792897568203414047402006881755983403846167455740397484732696635008952995632141381328240615527553559428271830779354448585707786453172402376062220305854734558024058361606885802477807770622111920084555796916769395503027549878203878037939144723033196984133600599797273240259444219896806806145987552962321270731977363538454060397622692741275006472736457844752043307096710479367954085947363811478953630743912932762850713672211229545653861290093620866582172877283916590515649009749701247096723415389009808832633185238324876604307291944225738952874517415624517796611014582075087845208946985088477324130979479797007841535407413837148406159149127660064475704209399630604681570234103110052268146556258770272875202807216566649926716631815637940911363953375065749106611823463213007147764877540950589964399741803101338564811283123323233799606152341286218523906796172752459773316938574714537791293396844024171365452420544482426895223645130520648886245108094438271400422417953659472820237421312990084181399366850196663431777683891548608517382383863082516966793435434577624951573363267196478241666192219080810391499353439689377910008480525595899355115997642504681581938129639236385976780740566931893975058944256098139848020930554818777321240887632246928925621373933997114143430015717004959263492743402437810775047557254969618258886727936289287194352058932315326264250090534318330813247192773180389450718056030058873921179078210010537700004478125227317132049709000314638864112397476512090314473701122640533458793190430688161041554608788661771945077878143825190654871497866178378494114715785505442068776196323564220039452172185650640689818404134823782124004669884511950318814899952953428544970154805129795950572088915515375916156175936501199183346465360446153149533651447082574573254649429150081306972429526727709068283113951449977458865058480843025274734895038483812141212182781485237373255925540975832715922720231333918287659618053095652677276464185309108457206103788695682373274213432960827493643644074494494171418912827360698840884733874666404840008580517512248166137586628573764846875019633976597114930712431661728682915403971708076506249125945260548324424154642463487826331563150776181055214753012027730169471927113350848961395535560087762976513716965394764008260944200349961658261668554658504057011568915940839461373114482419348960210747905101339577825691636150304957279264074315390495268577722862315885405300163810140764534472506893860953091813281457537560269100170188505599057871141324674032216584191853876145890130674245009548871647647816621007644795790953692257367477448033805363431544764369093638898822555876808762543084061363334478688502228240846572848245445138087755308287430133934402710559147190674307182312151458098317761341911172590992708263465399943502462600470257097749165931356456402933966544068309672556945590686323309699781020472769559650089225036998996152671429792489399582251231614199410990149883802248806946330866361403766985461600801639424917321349527071336632134580621131642573179716329085390356644940535676012766978602541469097942352676248379130668557171530504765636967862039228938855551272374805617134263805408424678116786590173437454307598842314684552566009937192977249514825799475196120165503058081762167829376570831229925384679145894871684511389658511759916803562455580576621642484599324751862137202046179677221597719215491239569276481721164619217361598620119965267345932259112573659520726161030977956902041772240935646626440441185077071788790022477658021982920604654255270296931548037544597892982239740626581452423880264782658038789075139399703261161658101222229746378214971997158696488816827666644797965239917006990758000021757221621328432452481844086748433603003300600604079304913685935797476566251967097793840460556893046452640278122056410193559036237165768389009613573662738625803086894591331760553222583135317538252408099264523322728487319225310057478800463185774293356963894731344184518872104542819634473177768207926830627037530807831724199534307250119933223437647528294341830380739868054917369941137456646877213111722278452082028908036127866156493252447426773496793762311744942907157386108105621490333717846718882699303322188283205909789125658553846353465971325461126502631519093470777119990320417530949515727551571481223337580846373771826450620774114952821225031519417730846713443515694593436358148322492230700026419374448907388352662095607452756421737385046140873844439953821344916808860369687966741487876961593244310738462118743404172256634888143515035608756038242736170773129612712623804596393568701710813677234368699725607022520335045496244087474631543594847944851892361220142289889263553315775984252795800768338811132725263269738366825146830262391846039910348727738292725203347968865627163091885516993974378036728706437367709227795133353794138175488742922907253900452145512363588948627162805554827235065426051803002291703703241256965354225884229272168852806083135969757004006754169041753466620112047893858298342455548194186318926692489043914543988273599691270205416216805801221715576697502297433191393151386249727876355375438936167390423028481514402458849053517407517383187192297772776585570100126823038035852734775329268847787629209088996736393959896034690000168838920425890647494003258396351688788459756785908119283192930932800177877664945655663146979860829738144140197924442411233374243419501957730530762000413912803658969554381320477839607593806462143611596343822719540785347571046099424745980859677154664983928085966532271628701501850264041046010096202894998644155048876136247423128415117876336969002414265609806645103956196836058059544736707582117114334152760836283196508457809129672894984663969542724978198810304920306031821109238940403833318671222808273316660595816939929295323921156044456935621312631611035971520658082977152866693230731248740357580536249990246583800687255282492057192036217398285855487450024360817758037894590262232611053169899689218018483622931176007670055403916347925720429898807408078176075460142919484138279280174980160544157371343396436687510814670138671494138467708589485485874467194329948057423473476501344811246907416365956796419318198259683087044578606083016873321931174639232660433476621367426509965162402619807584244262046338332204945608047718541378645627288357777133096810774593699210128256185276003033535074108318460651402465848966334815606640948206091316339633881559862230537545608378055462745033506935967134408937952633740819575329387473751391063501654680569246117208339979549505645959860813772424976769611471321859965096837088932040028230246163053783589872065766365160039606312939471882540748589182417670376388520999271151462125039356417619147461906089176837051608702205523293772540687205784776453602464764606641639510862997273822260580649268600429805212920965794936450673240871352325172318200566051503911968545076009096795244219869418979102088263962599229698044835277796160272732608580671678138737487600047429380040140361874347787266246838997004376592473937565867841400204479059499545042299504589965937166622435695034668518427031940357786302356102924896942905362139052698896156855177198322277851329664994416261713009979117689503785505283661926562693626745783140326183870171155969777284802260658595639200987894745894560120174302560652742804402868345517466423255328193433898591827612793876087712658003239642382973022794165684330202281440853753315980448831591116555292596669091740625561752951086627910373358376368499111891204804373433283811140642689118603779364147270486221379703131355798222983225925049455376801925522676818612837253703939889136276807748677329925464660262797535042401326747357388203001053281693474779482255339229008863237956604478380970926042926682213003220700347813682527105464191483225651644201829807780362319977753828200765160824090525877186849337626579786711061165391898671298859798574057578675925638467535353557625539762610527832847130026263570779506912108566780436696544515562051117835245248497807123223348234945812098977028524477477939350396630878928530625028344368686638040071800501094051620561448023840482249366787492669107918145188676278545993238218205643372296697073061535888111947430957795135368696120587823734135951535000075231260347585289126992340373419341454113413617402712995177991285051728117820939955791174633365705824577760275866279560488556678772607733073413028150179584195807137784143586767231605414701603375849394362458289332089806861177655872487200261366122140538547493812501251876732144791412787483471842520510512470939974885066676016300869985919770262458178495967762999024253639095671759806912511840944971229387794610993339117020175448808074236344020333708068021677720115487629241293696117627073156509886826443159916765973014272496115431201061207691565705544874495934453292079118700957302407229168967727225318645951919853095073319374477608503144967191681274644969962114052878006850234698613562671860057704536501083235390349088187745274081684487253347112666332020029216556985333890755861277213897853326097329895371323288182535375130236382710648014031080762222664701073111133097417902019209772487260496538247008460504023803286695474055328721893023436714892625780126047110585844238368299994245418450287705760406375040675369156711059284373181153206737761062392817350037769602816144079704891921074433555845757871084497445778457029444215858569957885690514253763723993405846321790313477342661531032820024295526404750021059698091800777169521783882625890595184319006176265938354035064732128340352733987816184336452569063077749286990816358666723912976409657545277009146425555839877060123243014374899805183052371542037734215473618697382260802973719636132631281999013959265556358700810654997907266274631270229481178309967146119815314657444572158830524774282660812120370500263184663102358054025301192049507919152967624440343011339615339840348638769408188958209860834266337230855536682633560760521385670551820676077421802153728654829276942477687853652271086588282553470885150759039972769871795652573173857735089659361212534021182780961035917286081440154003672486557087701728484010878981414816478039685268274680381230654496410789704603552229416489308509977202451494808284617189796499295613196851593801489078635911836203945125509770955837753849681409929014750033064636678702847217883823012247620128827630451935220439230418683671604862715313150967867145988374699192790485974428729885450718767107375683012739360003307753972193006654883388709930657778087575427417856049913373128652935051082605815278956232518802407966482817284609594894743126169969794451418685254397603054270947928028615878586215471015941909599905215679100032450589547625100626212858245694312562332797964461917182262591734270259544447094233892866286489188459007434579503362288452299318599060999371379658222983232807303282809588337376937422650576400474275822014116273181716074974671138245911924167200838465462683023984141308855251477670541068749734014172151673904070917390880511301990515684632975847521335787376686034748806121054414136301703679136435573231202435105737672372594990403756803574651534803476007253826092057302847468448942070763570072390376068016172490444282769980872314542413001926457640950788843683136151647439697176246125305261600770281682564838471489020324887517468721775245299291270358449593624517929964985493312354922219372688775929611043892368386498996257211702126477072503402817858448548241112914031175114123990948588703931826694640450903029823824524546281952518759733688831203820812070532409146074313112054634136496838945986338072771269084440424665062838516159604251110486507752250839455445853067284461721369578144855873360662168422194413312575661744940927193725670723338816612130148629354249827111989135724585031694938190430306059671082930042030239957862778845837193767796711316657872920753097735676097226011225289236319588303966207752691131226953709249077651502586982990934599013789917289966318539413798127147493816739436973922256056148952172315044323755366370424730202948802177584162404318977118091966743407163259538702713432985091207508447919284527846717487796789560966489860408278171905974532424695878240821501485606355388192899972018541666162545311637341151525261979716501091649395898518550427501454321663601202526501008502225867781902688401181890103236209431221521604247825530560168055599936044778263276230040619775619301116013942169017367970348283109652017111838697339478021300071495394857899126895048486331325342258072319414515406017366535832584900092660000563779205890554079647711660544372690170050609315974511107072583731348413735920917079388627344715362233322298546544218117024296181038246367658292614474557402074393060737436697351058229954671524715803432925866087700881034748416195294961373152586776456545486860260779176512852075377543185084340429942064510236019408531350498140910561407738903478145266744382252017066054747964214995808625765146818737630410471691802641543281997815196273307710298594208953001622820969695807088692661470088502182533611492746933313994971228725801102043386579952154840452754865889098774268604320127599938444117308541540158617896454881460014503361984680531779713591018301063606749553705331926944761773716392709999097576908589023376299157975213785531795793665298278604042112165688732622502474104208729558402095798054963063414607562218020129765256945082685443514490590621204107927098085844316279971683112820203313404731980265531069257132031605848834617670789567766534095293835364502261112178402676330267948578652195119837405004706664652335772377431424272751908520836822628141588019278352331320480548270331430115171486573231687516259444467924444838184905659530587858004605277757964620131949903915271742137557000981400908215378653008659036418169081725963352377073502408094429317310740469090571792166843442484237344143853001409174327660208530180382014439777141386899665599496345362485453937945537474875187092734783403155259819026100492646812913819513830530232119959766770930281868880660094790632778082401868745005924164332536460435380447074797804922791056489172652563583555512554166086753624288592643528876997259289030028568654366624336888781854764507961658395413580969374405150503617515448802413691864083579136064041938612568864203839029662968114790849281038673227274100187567287190192446755856566365896693037152346567289143276204877870248937942114345266820680624918058271392891036732150694070606932141037205206775668817220677301604315783016016392094524084046437082695071870677264012649468808408594768168252726752486116018641908982811705281006498061407745773286659735079600953744606459059996908871482047016334522982220817742952911710499269423994177127971991313838066200494406361045439258321028677971025652692989174020612685725799151033019942541297074282487033884440817899660090249517840432318532536313670921697564519604775116735750313661629589692217355812671886547957132503970297831414163263008411534034721653368202419709798960216962079648849110962831677491386103476029843342795735767666837054021123103072979942649995068175483728897847173076988308480705781471467213046350356239773393561143450163072131235591666298883095819287681303424392201598373955556193473311931983549568622357485381216954136808327461366550869952401439811121659121821507541736329152698892393846701484153683011885438891885824456924136255795581744384219466417822386885318885787662794283889767212755155926537082826106123351813660163308676858329269085312656561963433382626254726517631529293720610398548003834443563735768448288127309620060137848059743721651996397836084212513488811879308984155268091656454418563849746529690645801792757743337969145387158195997628260552753626342287943722913646794663471544609100330216703462484370900553809478826602033940538609901415310343553415700093557666848739587893980520575435684061201227628398550978122112518718773366365034360808971676881310239024955259188753428173182111616971560761741168753876582351650124980573506756064718471365172932760008473399291940255446985127638983114099727111590698354808028100133588532174254845927583659715632035031421111416734918652480330546087522402765365490931252102882325626881129801058926962514182390112546989899367220606270501382537505710325039879304684638101635783603574798314940261281358846277922991530122187152503056088327825313033223752170376036819957161115006423125528157959585860868356778802950590943773201468325236894635502204423336042145340430181373545668875509511775501611271966262363481032903600967044200722194780318730967458824379638187265215495826626719157580305523994143362795745801378795174514163943747701897991262729328173936839821966847919423234000985565355864642410888769734446059387877548290694080228795096408957476718246196923814911780780434277477954518534529393095728689051993079152905849624236139979690142650978996678672081695458498117250933692198439561646659826415217282153566974650669759896756863627980804158642649801218782727252884306928836693240335628853924751845309230741917559328945941524711609340187128560727453755955595125067123292840986345727504438036009517118619005148956128741687463039487760280014794218515139515257564720308798785692439167129765193084456474175328462156011645633469467788935109718909006769729741658005546165659684437919821315707282987236743849851788691739564760351590854941388865360681358635789559683208024885767863859670170665340317607763766292571748301119739466494321534978543425000224228779006429521989361815032354492428843961008009041878458850616470679461664772581362521552186474652033874130910834431428113951313437940468269777234188161418232801139406782979703007616979463839266693445013924595202915203405094944670719279274906969891044898947689357655969745500168433624866269961906394311386195430482170539139507893669781108951966054870529079190158056149125023166050105125328226041333762120567434474066598948872466865868612588290083849362776596756068319592975075841661916282315201026943991088807361900013741184527110895790697015149940676499994253498068097590693254117277772883250899870024497185361203855174807018730232134878591393079538060388303516080634424652921882103025597051565569060346336734421988933107241395188775354150744139651264215169971132809944945423650561066352712244212186528026240974474629351116473365048918239779942409344866616311354741704772770409009389642465475866592684160914451234506823662051641264257482868677090825232091767458886251484439475981860052836929468178063155882333690842219117332733137545414330283414142968660231426912963744039324152814567614867114763600569432493641429804521428467716410963721347432862846372996554860336665339318923442325336545152162517670423864392904256944255233804216404362556148595888239245132665788416070776076635350882661690878331554306319361000098504051689160579949443747586480450884775276839404302197463271754119886335860976419983171517251088641578204869130479643726137864131183517130104935410522075012814085871594389385120870465845877311745756585030971682416783239104250485201099180149405475780581577120394624529596947533139816911864636163647546225100016114703304733728490373335110664635470156678550082461108192160082151695011271643830908254726421041055397354631303833776152487065480968860175192370134915398051712027667416964388136714609503347524419182922074016887815293344561308251287491666256135127612200940596157355407788313090876203674650015566235702074547736223469229958311203500784374811904234042262342271560824965765413180480346223297450591598883701332378637391621482477301832479060056396544301471314444378335940224119460521533666692680055233557806446378643967520636534930672083958065052435400488546618969053164552886789212480490820223360372286293172441469424327495645474528913886499441671026015437683184935887691441466602196601471649612999304084086704893944295929115506912043686762826949484857575579101255489956113700168802341085200398322037204370986140127906248580722104120595971819789699174889216378857926912585178798880860048238762617849478710570999903222412308444074247300477047376989547835513146431094980443007542125247392604583915796715387243793635438152787196458112567267560710135475200607797262185785171006297939594383634353684309404319609536272473029522975111768583950850104880789208238494771534469602149442243356403865240742990650154037450031912640646610193901478042465377061126586369659805092331970116231238498069711115434893516145668071962438331873224240966042516378874792453551999420732049791121211114626797837750166833838987199564433085832185886298992642255446116338059479463155315620615321495419943334132331504450887658486851099184641203387877592613528666136699661883988892201296630258215330550341617609743296866971047836879170890264913302826422814010307866511539053785148473910454151418024513482650108827206972256928159651605761922566056153701375788973138246437424641390902522792630553250119778837524670451242159877536470415563978373175023037964113015211672845803049445772153412659796927260939246824617119161733572319299063635867240020930951698998254713433665692524754837522366707587075664933976036435133882970071474070484902507615296935519362472267831411993988099575390991750441377865921200240517534632842039459625643548205574417200991070682673562593807083025686910779985417207910053750256511754273457814751087714731042359444577047278793401546828996933185577160903131563264791324168627005411257309661966444352026248273117829214670740927695813542423041313487593381362012183832615339704806218470094918838919515787955525573554042076883910904680700760727888681551991319209774123196194385258857970047644574012487557063082944415310277652478463604476173114307100618293140847457712520519324082800149637994146348037147549087249557939810577104104186763776967591063020943903386957994188088025913936327408663923407268324639027975638149772503721259722608493518277461499733407227565229293174810024196820935026506179622299256373605593759452636418589229371220976781564603928666674160407953758128997145869882984031157497283651601091289743411945188321306713806164895501525991121904140120674502201755016945702530736916947544143225563029176496644019366118722770761367329784167463982579082300523535019836372707728297899470849586434173511517696145606084694330800728320519732202199471075046115299492708975406381076678242416974050942181712932550832094645388803421487410691697358484621622885523451656096143356832261934784265845035777883492660623637960417178895078925744486994843261914085190016955755713278266805682590410323763861630373840562454925298452306254909466829520022056778413014744680718074487482098885059250777199268902678966047181461225215943702449272803324153514711436482664750969246875728340698608859463800776557357324662771549635821744054615833743583811995935683524344102277196833788667915878887446392725862112765629801997526614351482182060577490928273177066263621743876231385251811945436951657132449793066063080603950710409656320675284680469583277734933908428707675420183054382200486214670111398649183972405351737674954556778674491186164476625989897357849386556958866077081490005551640380314881506376569923876752690094054680894446858060847533686281316012368888278449700212176840151268580708161562586215267041504301812311491871378854166091062658311043278914630356658868112130010288725346541352529567012713123243640839494490909583456847945231397978607567786612586175181141192127796422467500813486942792368877893497549749502858121731967965545244296428881984925676968198485743921449438449610460776449603443283445795892669318457437941362996669533218473793728141524235939023547047838394656775375563385245204420830921001635197625288022288885296078380226703492962632083201427514379270499706184002722991084670199672603033259369149317250384241676689443677014671229900502676718712542734802920066683516062452636840497827316539427466292055602811741562097837627281402578634128249903765515136106371991271160243249439232956585173907287529114817974685041363609697261238178091654697911833616777919068453402913998268216450524106589688913102938311541302880815659161552185388693861240167176025508616555158027741788628306560106796948099139300411421841097635541252448232240594950396708907517321888051860130454648825052320930487170231543837881108521712684685192436403737363703726315488285482006189958743701006796509995391951273849669232437683270427394963230594359278025336944998619466091880677915466007931518543736930459250618650993090390680047383021029338087129576579030292848016296565394433752593541614977806198119079487308664888267378640785831309280678959584465702043158429560977046967026611552110518582740014425926220527947161915656363174547486689746099528725922028481907541217486028654571864811552613607035872585248211547222848580609681737305985200773980150357803048736831971170917181415189138492221282803886743331615013833234507301453714741291174370447770293963165659570988152429194538137929825030289690550435547865435584814070664123142331532210661264731149860420642543118816693660101013291124545810551567711842090551950254021968744016191174336218260924921407320042219161000376358261217822945434767634517626233696546238003479411243542387360761395934279553322595852167661899453763324630767991437648197717537962102776447270857799408266246588174720522926470721503050315846393925955876765248438419903254541487147312345058321161606797872717836298756363252061892539085162880965179750260811497658229919568675817791997954750914367011333988678672444833529566190332709254092098132316994239562862521457234272898913863290811331595421776931069416110004741781407466153924779373258831513539235684757685716054153225056056942797025293065253374330812928452098140095018649243321014389790299745509276208770705385003722548681473059248063481584550726118581437252598464702026778819195761524397741518225686572888853925478409842979793509363539888375434673966624423875310162481409836877700826634364403360724721806210317434918426323697738366840887975424067251597008886268620751215216575427079148221650138842655844072965388159136400166458096212367117604582017891080554375857133679429311341407097702360318889354124499624855016099476563797690520952519682534999407208689430125371001906958136687206938683241285846018720712694665179229259309998345067230715326011383105337210477902199208381546504019280839940040411558786942496836502968869603200614451180673471731412763473535906661561814185685177603545334888284174154102615698213831772067812986418677541466814143846781023566236359947041563185701745153635422396555058116871227933079399076605076740232240753091574042498142298856361717311418946056956332181995572717481555711462381732498768935247022262973783882544112139267722428456372060065146195359085184053828860833353823693515215550344129355017752991882259476504024514842770973339898365211461371794798728696498546003422687405046778690389187843352110401618575930046743195107360020545808416454088058919444260462724489546517340219170165136910896555078039490927401386718991432199799893521486966659881809307666098782054103925354037070874154798744008514154428099856890343559360871171788008920271897214542311235963416972936947660885450628843729131241769322425573134262707510606464211946964095461267294524369201471426046402681686234549801907513906186856358602255002123277015347478005152045004747203670242460964764334722942085205409643744987047343452672949595046676962722927520897913100895134277853244267624674586854592219268322532275719557608843897004495963890762695500608778609595735246696613881516847857853073675211075751179678453004880116648180420797211730016507388270905674779434430395603536225227253693422474606088040780353340420347162983350293288110963069647819840523252728333785633594891950109741606815766024154694084543765591820826998357436659339468193998692121241855518781846478571816819484197626287950713421075633971811763427148982399017179035180285883236643096448858525133677758214177697957210066220590653107970476741078073355886709309815024721256405636425011486803735202154412467676575584067182338166179580145641947576983250684543594524365918153565802550586311045314011474501980941508124886754468278119524705137555207142803978886302696997188381224677960741418472726404972279639075116185437270005978521022049296367679228471054327206421217596176456577649765097009952131163603693192536470642116337091540772669907457189955468657357981471505763891440668166923686167561487437954397848650734289225912731006108231139407927069243765309995225495527376292961683445424215239876089906558385983067824137269946107716420608938998349705048896394758321976861158633033590643815293829876093034728760517554667962817410826324478602820030916329813556896803846365284184269377992822201729305335756143742994094447244836790806109623582221522045395358632012096038739082507786923001991884309348598502340839046147692548879655957717888888723511774982484946758136835659106309582575441984305929901192307013942893519231566111569824145488537133310684319667725094968493968692966111547173523567417276299225863529297336707003795323203692180640568591415724447040163694236875307162398840376140462254175184133975359024668671538785709009262493316193477172485016535024088810775173090129637376239996967145080503669194987213575815789783806070692943558619790733904137229110722025448993695887943487972881904794987166829106129854060814997962113757027803136722740365298544138791525064734767657222157934785642420974745396858314413974607501828805494663730435566085138467746161621288559111403035915696592885233181920330274198309507380812426767448370891680372352854940289271783540484416550879065989703380960451466899324165343711386023599883018825318098622969605710314028606684493129574537188026349472813251010794683063649548122602331657584030129768015700653731369976305662806136491738659575468830084996576283061913815277981963415887941610040190806352068295033003225730367877771161441140571055574947806765971289999652104437521568449078817414092588423540302954897748444038514473552338543436635336118509277431001294130071302767002794914148541622553237650881403885493784557384679180246449767532856647651780943140018628147488916928428251539611573526186921042321130796086234231640072610486214662630817216885502088947777126957077251959414657086175302449114288799731468422952518130351748758070090086495374761625320595942525517680301297881182111221700348940438014306649122491817446420234769458782763603325987531687328227633946057959198242922089178403864839942030546712042556392692023504912207322705934247019068940193101132116180436461598696388088844013864122799857528623694622595504200707836515941462757003961174928313844537055139666787742817264717394435448550058411013232657950233947728176997446196628954680847664122082903823138207629391928333054030376748774844641061409746639735812046444288238885741220988112062539877569507524186660772376373146862692106132901874194252365277565289133649908708636200136908340690881314501730052222194162794379301890465622730175922295026988648340100262309005219669764081902156357599822776512219089882009108220038350089704744783054743429975598212154998174461353012548936814599978025255058039467102736691429438880577944110453421941374489502299853226281943450948104030503871934909651469017305000120860941214742732207254907447410249253940492296065558340254401920529554448313152364374822316915023439696148919142448042581047659522226751109500400467376367103201230578686998911646742418450088932106500368715975812816632907103357412220974853480211092460102745573163417738219767908539618529577672489642740000264108826863255700998640881602771239198997053580428908166612562746234396289552640060436684673877313335320901679729380881669149453206446972290970614661750070910845704493647631055245048249291428075587155729376188251172948879040795353159752696553214334792684351253348642899927770349784462135947624415179927076121139697775733980642434552433351837081970300512151154046525438344322332556384992935909863733378040541476425844468433795506169890735719290894293285380733389703318055105769427944671349936387042129549320112727865934867139302202227920795353768081631733914395875219598620826033090916918514629474443298622056528372494900699177706640095890781375594356438827581266192170137210901011117406939103593040516503632366335940622063346157820155453881374546646507112496570980748750087777457763180549165859821061401606869107430963700816713144298702391248014961428211797876758772624694545818525774807650416917712632814374825146676986193740395143441989183068139758600364429854503789131873476848179686677878885561196429092150840438973943829680585132025770310582445758046319233202799409840242610842048583766412389629848640457715589553946790565131083017028526124634497838523887873181638251815775814823012729267337894862597433902340408250918663223336687293974533305545787652919725800078528084374092876684284981180379294273190975184165870088251192183536957163526955953655842273388816335516334756302123084066973988379817867839642309138437398498436717573110459998559713328723195830096938873946049175722077782659134632059758447754540335921300877032407398630621954584374073762369979170702844529793994522052123735270954734201704438887988231916994084526276691044171131279759162077798762903705979030515467095061846696641135361722364714482445938506953974165138869443417665724825864737535083430789579731422529091832960948787026122646337369553469546476348146440345901528651030393759090349258640920231573038352563620905832832034108419317783992031862829228190693259198531965293281094083041332472146764845450453276189364910826396035584123830447852360110675961975947822431104218221035415409902897045719240457436816715392772237360161073066844829677858461344465507928035297845573058142949248468658701372565491011231798461741166942351159818663796576806195602676277524102269231353776518005875693592395764992251195285500852946636060851224034840761269864723003741123555586894251491624924842360596468465777128135057437270839830323897366379981304521098152843678909656687048975766221395839520689522184023848031526477051821410822814692652449110668906095762613377532332695962196356674095316256853933489717247719121851844268527797741340885573669190130499071795351404653801810922959345324171754688753777361576457595572516840178364576655430647305162791505879468320932150383433602572728222284042976904070943670379191173374865136573546837547587958693788256320674169016342313686640335828379844244095034369435427012188044341529177587716848022018570316007369898413925226518356691577645582512086307685706930757271750536497285868298132441167689397727959799069754047294149965544977729314675100954841217098718002418694006726789091835944715245773115785916378477710849889504980174627980980700426621853527308238633891916784049093241086806899183626427314453599053915350642292987165135425883742847597927976300623581936677885309933136976524856380005048221391553089292154733246348734406483234720453706138249986800691662623582803498718004671889881544092363164172804565468438111907409618556663563636088061349147075452415747288235919887655314789780266971551589241534852248240425673254061273877996239177972908162932787270166470716358842699933850187789642402696403248105154068791384119176705822579863122288564574783063454901544656186091624702860577202728032172330415376959364178962592179966562668101306553241203872000139846148140744257830825862900831303286261415367629459639104085626139203325975653116137852468732172898305829824624526330906427224364098700583923415619249263827919279105106283068742648240901463018724933600806939715424399606691343758290800166228383923250065732803130271166086026308061219288417171086715116620898716748884231915957433398240489923450901155273808039690306956070492883560520214032931827766822812911567084680757824163983204338990163023553393290337646602182922970001669439838224762881075989749543207689828697022324309529525431499889198255207335049802413874897378668184316476740408694216140507236260574802259770872045411569846811806974803745685227683924268842431231072437323875271566475354628180945440698882628224731579253664165001991236121579277616620001563039448464166897335317569376649586216276769950531853390974312176528353136262753228964907537795452322360924039894977779533715882911583981550405336445777543058250941383329603074095418167967968190600942655405394993209054029140236972676640268387972958367017661129613648237382294593852321668807233710721258229335925174174699482824458771284871589882994793730513436046588268349843304985719173213013684726936325747084507360593045853513572143625069176366595564506529453661225803353437832610374568156976673892417238131150042021278745273547754122366329358326449623972129734101891927055869528645525199844204634323204780996275889793515136405737153993061036943295689753793106489832364217782255144422588825687620173087504336268401067403967289647736512170315423975873177327408998097679857943526994408239903337311121335348558322870805324711232043518412622397360134573078819445911476298314697687237596824294246922880348819199892369368913632144334453298667273580137190939418206479808993794319594021802041600986322103264262573936876611544156328077898367899053802557801597399342818134802537013687692097273107823680646017318605823846804256645575925582148399089874826330231411546011375195410883511144270345864704679112151985480516206019086761297506223404402915994316147370121619919398392188485224030704144437289242754153260139261415817534934714698108719888719722684560474782199382417099430390875000647657637607872362855455731046574836503902869973698685801935325042598317100250277929317389057004614361927517379063941939794720848839962139386741774517434814583118666683472526153513074552506601507156768158048345715184034424313397717572012855245596966528457876800188700289377726699677257259596004680404870995021234793762716862636214935562480662744333132122652523165434395891098569267858905463501092922971663014231531750656744340035657434088132847853970711212738889929079027892422031896755399703734046684346463118260895023315486811086560999192546759985969641349316789526828130601931661141959953245015139246206851717625004187847974582423343783912555281384550273230625491672765595479969568334199862521845638042880122087260168755715538687886422093320607846541259014127557948199440845463868204468688194064429789706262853529816312697789710879943937742675829913349346605218063087066378013079407922394560253038616695177605296905583204788066528346389189093525503734798023643646465564115186597370672057325755828131681040018476171156861408586553251500666063225081260419984548497425995010545749538192864913654277386453102884088753655422429977773925798742806766102278752662785305068277859777463276811151833427710945481156494301027514899688195725085349958806401139139877275118889384094995461078034584763130400985546102901856774166924724814739522884898809972164745043057544737024817762773484564277837585918360379705927540229655491719371452225853595766561508819941073306738058360990479403793447895537359285749241198779384309014133596695107790591728840786956519204246218405997893243240083142800921973031436624995122401587261455119181573159422861057369169740749526306839923763299075950483340405134648904379976934314334654593121751076279070736347339533473655276516579311487951167258146776451519079386526572487876944873701656948247269431649540024748691693999772111142770942243219581199872883379623216927226855775105496624374700301001706926181062250870276863841025724867180574071198094245066494103614117537290878735336407767480480204400075832906986339876563903838705157143406546835957525282409515854011578285669116819530829766578347309422029017894148407477327600640195698223552242288477099001457621713807102528999570840410684623825524538693671932797101251508858556946355916169604583858379420391201705151598203283136580918614539460154287344559270170395474832864379304097913072685150005496742691877905852871612761208136563041118291656620396789053286120836143196596589082280397632536878224687092889648925931706561202416919779709419578077896219073207840497604976374032152664871437793665380449130105490046473053535097727640058469604542351069679962247175642285819522821625176887119770663867663715766559215953425647615696781347020538512479849559509790630199684449722545153896357921997385252391665646633151391220003324858991274474916894732962694434442951838538213240766050983200296963132332705772666638103177091491046818367599923009458622209780428815477978409129390949847161435699402153327020191271436340724426937069838771758264669038013001184821315721360074469504116073886395261953817490177364001179850779099581538636962342665740715029972428137196103942064075912286183877269442551400472688954109608737964151581454998307491598872656555922477884835323479874528205681250374872128852876826027509709450762661705665179291154145804237910829819968063488211641214910184609861869363215028771435035630797732597999503066523418107572596555243080599191668607641493103210606006891043768877171930310518804505863183344251119173390397172184999029232999840862384906636902780388031305629129212783759255162263091998092228125590644086084111649797744231709916155923392382542074194858962241927342477221767878397493558925775072364485289057105561550148799032037160683872250797675176936718698007660574584266006195009680823757300357282222142450412724202672566285701584670745493628970650975845601080236598301942891064575095582645716339475362590381983558413526833121405337881485017995665786483850201925309183598932683806819583407749168920994841048488540695854550296712853035012000959515763824820110125807744071954369636291608580153177379312365896866073380350042838519307036473431304077915399033763176205082343996996037165459160652119497078476213291203382331131605896853655442302866671725416696897253131492691053804685208572146483081188744712092957769094683491714969223444439409548410453932765099327142997436898330673201267391255004376480583758204021013957383308670528439378962781486636398945934357618227546308545569224140536494612806572019222446298790770822016089053789391986538935898854195569027391681470220080493367278916893455642537333705697479055564839240896979546264596904420345223332563521229392497921835900609623933229703068623371563391415087083251500625419423168012004314809313363710015347147231208665459275149772340687555849417614960943091350358263553856761020766532604349647839887434016987128334230643043836635983559241803948003617192600206837009812729622377886758508837685892994127286511214178136867035858660883022134864054765800632592129627550669243293717799913687156195854349913878488127869780503534930325630019268029766995906091607579266893815700053051140929449627423768190688272158171433584934091874923016248485969319726482097752687628168197787005622125983242414341976655204153751443945011536339043506541666871111590373530382966325678721030076639977736233248669592293494314719217368926112658633471767987676591032846337653685354754582276647405101584044591358284028519517143150695215193890571827383510723989434514844135255689483325080478803876381442356215187398203941799640893852195344993762366182794503515990389858371278347530332646999078416400109937077045247558567740688715918554626844852991595976457569212257282750697202756111985496769661688238182459207972115946237443817859434642966250843285781572471968573611167709349387981189074969617330155867923235089144141510166141330051309529496669504105038607701375704001885229948018918847032749401634861839830970994923901825244601367467242581055028405085544590815924561679506645784519471568435667652378191678483274500689591849908585977567514986645506989190654335860841770043896752322905931114059342722622580407586853405185019154177373872113739867098136596320904834809484967767150419927118426174318177382580320446457963628858249165684263400080732316264213952022804107474447151760822670406701274684750639400247313422017423570676369878660115749341614580223355251414698732089326663385384145032693894573340513560666644504654647423845291838241711316268587068293903546405872903747334301173224742220001590217260729531290945042696505665221906311967138648378376504752762088529294531110880435679135440000695963633549581513695696454688650895707762859706772158280480929930307280024406142206007728519466645116937635310012599640552842517352181062467950892098900296481995245472022236476602527708390501084697205679550963854373635884636324899495839400756669869916339408558952456674365963571723952386177302921851110654204423029624604781978734708916522736044456518052553105626757072849833887288568460010783837124907275954883839159993426087104268512466514887070934399029240432027901502028279993625169612634267874688600290857714744145809534048986351342547227102782364259861693676909600843514016004399657303892689022563010835817988665482379554267145956004534976284179928225462605624889555496198199122950584492744468103862613468714798587386446478723997665264134983572441336777503534571149658703782565763128742552350631640529536907176446257266364664400180156194355142279221655982191669242019997990669560424905599157850085505595678129034969299019429847267699144725459849193059680398780317424299145580980408291751343182202210079177493399503331222885703453858723061491261727926872891476280496466834700968348556629062769089437339462956594403962954523321621787987621927636518671612462698197149519526252202444231235324055001508622001291388269147887749945727953352416202237887444274503307468174848360728632462145790482471062657794808782273641050886191922684601860287819621050544011640769406367523738169824100272109058911702958288230055273840464675107869848465204564268512209336639462441906525122195702963330476995257688281044686242851017227144672720589245984243453413937091213486035104565048067385934622160735983144757049028284162592456546189672067392929489507215956437058920952837296114168613266939975973967607539876074635623029982189919449672825093845884487818111740605469041808939258314906071922048680889850032588870341193849750041726671146176717171130199576569870863828262308595753044761896815645856184776685163057742033928134800944116798649375636938333209256180724497863137930503916524236012374763575227974677535775032151503339890274610917106241503382278228078124214530022678248511984647593656341771566978759374080658955951657863680594503676167287669859608624533343033836582210475445602487675798065782276666215623679252143564745739570807259377066022729988243358730053733707813886119085450558324925027412285930778638898049195801911840686819845291083937420481609428108645875025798340819447246660538570766676350591376180700457940592191483834414808469835638646588741912441611044150759961359083947815847069695309480277937111990279759183435032836551023373262369040694212481385078946162120629091580502454252358191863954784586224581385740322597745364026024937105665288178801341784539654512351687477620911741256113810798568988827829507664963491044609360310842072691482014220638181101002220778728850340758831925282983338555569876244493212938910670205743120643291366516410744542506571318495539417080628032837426635883967762458175047905408367699655596761192870778389566595632149320923898914491302383012871066966412468653992114664015150832266456594792562464768612046707168908536395965667217135300326085695095836425735616822483023033080525704593891387286606068638495102591185980296752288958612643583401536658619087226028344172261942080968978158589978338023237993657102985424859453948943836847581567358850942159781654727852982257368015152052390241275174038419222105748452427768131003258508424839248918358047013498787311469003447090444589589042622359064418097630555326457162964504063922952228451907577210072685761270955400004041798695864677221014765920487099337569765458523922429133863005880327783270617679683349574239734202118483052913156753442088168631031531565069879825260298072476435947241209013097908023873446045976793596450410427132455191517090343558956760891853921826342466535406710522404139809830806400176676890441014514394916056053608791173065634834412623937596126570367345472383732590424046157756834732401306918029352090897954432851435903487742177203420273101994932066826439579035254367609345688516342075342882648895350264836503548051500651499856724835934043531005767159450267862329481540885078906472270206121208000943871037247221032775891640787282081655534176224076132670235077033912024001302694582666174091316647474682154112871820146014312240766835631099625562087713224758545302649090644603045590827472839158091555928211426991277112065510708120322049344550141132086195848237724716248808547581672482438876159314716418180341181133443014343465718970228162518324523118732719589807869339562646031239815193753147898079369775194417017968947583496311591356834875584712113300132747131620772428403356008926851527483434962977305223336534784011190129179977129602381730277792423351836298329700956637169225953447830381974270071513360425606940483254325100952670134398469923452033622561277310285033656852787469219532356232342543033479377622237311066764790562453964313870668834742337607576179599402382408262998116633910091383077873225599054447564779782790947947335320512165913040610295629612973930665115327523654430055951032673550620610160785444860633788157298097639572823286322318336495482192758437532073866970741947444385799839028094975899784997080362527270960534687730335729884079838675882532224113505856849938069560091546528036682521257959259308776836246891140595669534356462387834089450075193812491503870625474867027802817965554473901540183382662179792666323617234604146551146207224306500207552573739885136539492025176387540691388671635968143276429378808920412957843680117318346671079919328567816515162852959565959835309311792341711174088407980554401525522166165361544679403976048176463854862931898304376557804323729233580488290787111076561121653097615643870663799689567968104186465378363468853718917939171587049720809691899412728474412900949179475010010901852026261507245348411723772340707850084645349333539187855670674712837124335328395990000272141770574638112335114365314192409492882256179110493252789902643001086403654177233373774173809690658706298237506169169477301711272823649119258084528844155095310971179778046938064418347549338184861608728717485775229234847599165821388860960506828450969852140404374528462066309989703977925131623895634491704326465598446980961977394666468001039761685821457508049481168081109335402246579889843552152252002371103456616262962536064860730212207759015055751789165586631629109274534265198693232534897600094706841125884579098047728692872417811727947303816481377973353334952126231272804057494891594543359919805961405872427399723181404598469306201345040829364992232773731880631023387231869486830557867293322451725266795520605659366316980232300834589039189329090116334028179439689138316052837928049629075655682631934989845092703058270333730395918785411165704398411356421299649772626855356388072731532294660106449031471020827607520899470062749084889092829454070697826280885746833593373749790981432763033577627672682453065617102833146256962271093922572176653955327861867501941222098191016289581892856827796871477651378329613031684316412408472330158584944074794252956785534574575764563800391155970012725953939496005330629985525760543161931545136392084085994932176675826919884975424432505744180342308480372854942387218687806925272753635267765806868945115281844169466068580455224400171011432903722463737091011934704668695123622487204592360406116906584887442974249694400597605544846054825251616111243806776992658579162143038068738210446337039422685208989095507881696440049821839696346102995361687434735054720825173834563705667614727615778587307922395290032636589172193363549822643629788779978285835452198521779815596022892697909780172197755064076473068135888432118950191779568643174171103479890297593453209939649318945252088404767050023256855841900824729895659806723079870542799425997241583516802669577820198998184749749487134945945432606039553593814440208713827968420283510636873009277386884275402375456676235085639252224482107300681270693652083736401613734709979321176266586911174330072268194287794496013713124582729939311906659767011396656084894925679291011520933475457149412585799080685881005091702147876329710757170257951796617378569711722923240920884654590189175476299097839082331870802423901244473168511077197799934434151010890413700409974181165314975588120946314680115383152793796892156780934671600232769757343123488479557885400700847983403075890752001629327847924130024491305269759209700835613548078825611642116945704021315177861169011608243235278264387027754051724504448309587673006261269104407630007543648948996679548911310920390210084272546305731929254954504368457442058955444935015050406999967830612249311164098251887681174466774552472727779995782775279451202263780421457828850227318290708141335921958250168549467587813095218212656830406694586400981251533583014874723631652311473583056289645119462175777657730103125498315566464674377201908970578943195951781411004994902093427362531683900760045340669190420619379933289217685023124362966875849215159481035150327554307042322421513534440967672811349502801642613543941073133392081996872704918883042667588506711677433487252026114199957822827239313405564256120438942419993301657631285771996550576706382957116860545639658929290844239871829176038991764452754032905741434239355446372234601137794903597854482724996130596117976804333063154505843304077935468548801373668239023584977297521596580148629521523440822983106608728506600267871428498508806506885886119106880253698383338767668235964833793186456279610387868645551872559246961606232200159424960159818507017210591262951239743382450347870518642853025870801717435950054477232713729840493572896486627750231593607791267238723899909497304076768119895235720411108126505356952282012953144279682939902582774365341436124722799801226609087496467865651106670084505902992804282699742072404736834196296611641290435961069243782521394960582789632725974996851262795650996561963226407578462267742685972429008512823221262239924532991454833914488299878536026695389987706832699982152420227912311055415134709619770203829725024109082677005347516627030352784140203639137207183262023179767990898759064915410510598828677072005681488264504886759254102049753720751073971539291382600892227832709069833282690918639043591298691875745695046006968676797124083245040037058194473537952466036816650081772026185533985118686633117916425373013537292397306844334434875602722859857953069620291181722482608135224842626642693355053455424180543066564409890261649174956664616681618170957797233212417192034218599240675796398518013501544401968257005484810190605109750536251754064969286842674751110786716519581103367475065250310529537133792590083067663941868971855513222532655937545640914711793249634559474323445586838452674683379334515040271145461187338199341540219060535119458627899065713619375550211212524711106635165086503537144720755870893312622737741840769278111957013160789731618274582369729773474404631991737749213270244402738866863879263608164373947585806668998023948706869449072821333764778631703225805070999019021482174820553554599828841463199780207163919689384989978495388521916167788984085802950709067356233981299847435876979655989831558613164924509898062917302945343179421402418845715009588076663143166048695260321748877176513267318481172796843887472075899811721118967518914363430387776682952274396455745819035348799188561176713761522642887652749019006215495799625424116487044266065750192433791357524209158283077326568843152731023258533959706026366511510232727932402028561099448763654483596207956578080757537830946149991553581355944786830974445747666798877160039917558399481655598471647617737345632620419630975941407660875442889825432441579461663826325838605993817540049069437026915640461396207264847628810862196462639371200208192096091447292840675522960407809752034538287607179059436376407930130019809949060020125106536686508711426288589522482506873994774498827056921026111901345090959063587318864768577395101084257657224991254057979778799554118551032403651462220711802146758918694156308222602269234885972628636237543444875233246677476855346244567958069733502205568557442596851340896828956189085854785462486885080131450358805935825179241092019494434886796345864735680637830777083343483159633161593373480063788790879643009044236421754575455132193256918598380029382412326240591571945621441182456985322462986381564183837975990304459225747978343648155670461531531718941622029498717803789438688404225468257898249039765972079453275941399595521935831515235878338797414295051767242225023911709380374991235246009454601830354864574196903519633843376571623043177393429503198840104303451476913310078882429692965796269139034863783469825561827134745837192465168986688052525373919046854698657223484754384750821564710322330376747155534156328376008997357128913596195718080315686104893032562640970286220614281525342019575792117566836054857078001673995865531959080351807581658971118676561591720791191184891508712038635141385909285214510223293772565565225365832924856141661315227698988379157546922173059088399866626729462027583033968108787497445833431263034742903402298700433707146388964388466760536421278677992642985297260377882255882155697974870803347758779209429470176471887635190096946848098140075013275875708863161299180607247032495863532289802051445766636634714550081560673657773835482659187067669137917619308584768408820980286872790830009925466569315329024013477334344089912984800129931549543280145963416123210981476312899981035679213935785375739266322348052570855490481255408934372208847884755322326622894660951723478415874522876011839514723954058821102740829251851025580104842843227986216285272588450091307415275163344024455583182974115085872534622967074081879043263496704010609977297530337255130177185278468412588755333169373383217656543872608989860591680846360486848269797746547983734415691856141622653494680678881002325566022607041093810390096674214858673359351333288512101318065660364280708639499003619986729673151258039330202126324970559734792410288925510365812160295316515095786704138864582291498524323271818252720925546919453098754347476908819280472597837224383525317194511298209987997062663353721348558490245393789287324641398239552042903657091481933853699718212389682485973778096043721016069841536127545205061434849258224066172451933757134531828355091810773898879836054457119350777019582123472704753034442100915366829935843439326077247264594604165603016970508044980680214321326984943555214602572217145100642200696818723917316472063771069347355966056586771476941070676547921826548317493907242037782845447639532412443394505378720416717513440552572481658197159776452600769766080356005285356330701334038718562480129575274667312053047453776630358736658275669306011108530110036604987772498605096995966209525914680452042218976664956016230157922364050346667248409848342103273781163808544451469123728822617010403834517140661279044238130247785412998750276858695893468335520312226229510905671432615531101683499643980810729251117590279989626279797554038852850686121410648829392631911671491323412880513822808541226831229605569804752017386484375670361997429180527669529632875934840103469306234632896928986126635056869744666872987409869726431330692967650771863199084424610289794957720085194432227365848226179239518722019784125004645383640697137190848139730693939962998079769469746194877539436666397875333414220965755442967735642334124552340710167383826251523302907546426671613002849978835620772496702250517006111734992605028421421024042734330841925628857229590991687278697448321147392855213853700869344540444959436913184499559082251000661521925588226914017805784673751567748241474301114693647777521713056643099272474994959281727033119436484762357352703841121186193602841935485520907352871052312729345020036788799179603750359061760772820500883306741564815680779764697146637433836067520306145360197598362645775683792190916872305130475396624780643233206238013106113240427160819970530028162388686024978236227002265309429835707831351069185952836052681283396429539637091992038999207182485998974686197800829714703244207922032326114966003967629626743865454901192633051933154611659027291971673741981586311056774785747629108289435697367314030219488410309880024169840858124352679007103546405276294227769475721050992508253936794170111434478731078541745733716538659667562778093185869719605050411160924256822508296540136066943903442521000760018194975927193520605983304415121826019198582306491092975416178527954823544698482802327981906111298323687179496242553433568060923110996182896210624510527713127772249019594351301407915436207022660669524014252177765300367133833928417491661012266211677492669088675445278079576006939999206911434731707625517096101381267424360499872029509980536549410828363188250051670947464435767686703109252418073216138989090871045774309161377328516024464923219803862407049978154456567354455018666909350985193893785717469224516836617710995692230039062922170260541982718006820216705504665953799822588210373616044554679470613911791264890938438479957447718652741597720517907080851654913205663022117643493663675110882869588005365646179261342521098286971787877141417866776559386733390841268865384771592818356129802988645451899003072105138813123163689632272564660065399409986393658124060738715958761356625524649102247004928548915380856665136089198924807060811285385840447469782216260819690075621382777326337397129579554087463995604622515154030358188062973915659507774972236952709012794570116876981399757043234668266619115934282288991250667431829376191776858311126069726539078270101189267944736339457904100858750660913204636676219033054768446857922144016372122789040126131468750620784421684621002552858148729559576136604265173928592181415607048302285546463324712800496610320853478267269043407357463578427503415687789350571589987407339989369915525942888087433969433802419440116804306558429212129901706699282076418052909208051713179187861437955415128295382330613860121817443749451579506482901765357549347740899063757545680573602351877642193833662401256631636491646996237322592193948304112063656982190253326898273947272542273384480786135186903955478231881574155205935198644486469444227679863048717952313585362418131624139243654960554475757289103858801055168052833042809014735351886907522872250415918312553724949597917237669666729453155070121845778823093282474138630969955115030865784605726946188177061986435409811487218569587398618643765098460499490286484147949548975301852752038295874405419153608959982633546674857408519342663460622833044416791047714827776662968706779145862957676764117386018460045634390323193217618364993537798330074957069366381053094123997335179021874264348274469354186959233238737233402821495079615162950598912422739178762715404864130787420457705528437683819644018459724497580812896409496912278639900556611434955869054540866830734006083158446105275245458669752942036057286258075764047516961996041355261280094608647477206105030817937152638233199897271750131142578374478481066919783039041269879235307747953996327704847774617539853345785790529714357833883225944347290065160412055045262814846031206363195085651651055709502686681947127142015823752916504599766203200720316336924291939675308691319234359035460087803288595839726837579485605475018414488935113311625020468265687065516814273643657499988389599295606716059056937302036552247539408761193181919717642127728676491565536987924060735713501964138053917376557338261987702751932980760489644912081481573284911024587037427232823695228623651326892635864625025110801223981519616343036426845128538239978406774803471019350757067141053484892530705334555301128606659005016427620800987788959350666010830286331682028944743638225512013180038102893121597965750630988822205650345583849663869395216271765132373515700848948094733035861039108398212201044645850096616728648847129711096942232327109180797517272570790548449218224091566552370948719999097680122598832597927754317377304538560088307477530888600014758542496660477639468178961599232842612472668987909897751521291390761797289691867113968398973645848064610296511769095514368807314003685520280748478887632551206117042468991904919757268665269273413704778011459643936068090443898782072219789274924433970375487959798809861814857954672025492609484937852836536098755145025067809975584642714486478225986406850014268971991312716202506768676035912426841856050799658189256697664991353983132726232887716104800942862582786528297185820027679967697248936525201298713619869168890536097624641183977663198480781081121623045968901676152136805217330110933433047907400617969650008495170166300155982732839323565251369719269415572368448097885339763560961291600654629091482778388286213985034342501645879956401747202498540570909138102298901282991331628277037972613073767793141737717643274025866401354117156965184641207051683481570449663827835381053552465335765071799705252723757325510648517015224416043790252539820999386250956258520255524823987986341338229457458852852966584182851869709512249571092446342540265390468826408843560808200134369693840099035611319436851951808254853515140202466184881777143765130895180261292776635018029973455007986321362625313920184400738495256107483639190796272467884693072160089766709460720024042822416003059770675338070210998606535088086081803950717624704410315854350779317225569117166108662356781054722125677024175954315199351266287368821722365377390933235166930530714597664598630806607241645133622523867920433985975329253603716930822871984325853016171320671778088189570378544575788217169739505848443895741778246035303626128063532745062970346896496125325703816412240137956445116388792347734943337335111060679501881191830788214847367645051687576554720589574329155965887222757165168417146585199542873870084998648677357555188891634121906990978778346247313076326041418066087668887356186905533186357293948492660903438698226797573606658624820770251068341729543252826321901161937980491823478325694148500572464452821792788752956923199230719181631175335326023212268200015443395163565257164386158298295821512176061645280491859066322464443693180760762597647091358825473481168343763295085447291427883600221674696136011345353905884639438435538769051907913478589956903536033676934958952931781494074047782517872988777195126117925101773193255363754777538506012399690935671467399366804730671340852192634480566557592933525385960813737619385630081466367275138667829757611466217616097001281404261114229421885446559787936742910998665557732311090553518790160155813507817757385287508538432067963268262540924813925421129765609095556946777686755775239902889430798661429358496519424872203481568983938288910557570322086206019218073078479995016489437739923916425340057174315634076311659648995878960422982105813467305009724357888874284500746980801458025543357753533585539761209092071551396305520059418402416412579083948894940260811795434652064021758757412407140062907619248250894489495523048622901844866348203870662476471051914261211894565517543654588335045583810058048785328151071173011031464756432885748089375397016395172059938517118858273778298508592484899708658014108566306984577371295139713653523643114132108529022936894693061101996774833236803224574721629875116351497754830293251687942931792319523985099341310466797029728949494690784051142851844805567145753698785743318572011707330504123521962271015304624456020150124742829784235078575152116210365930228826519865439788921594494295027248573167561105931437097186533907437889458819260416528477648055177456911785234133938420385278345160382545330843965961587555975090280260857932740155469202613589202454078639067131039214434637307637678571673833457518473759914418577025306488967671440290645543611700721860397271017589687905665165520265158187369829382846219017458787957201434565838268799678994301653842262422918269762637202394849831599275575250307540471545299686871264894834273837059171450127447928832255948331390632931211275224605743237528898636082982289636763864115524313221379598101908034288659619193160586346357014131977883738535874304951049273677704464445061407153346247459142965420563819061962742383267072032873265023449549207272102385746676026136321672094214863903853072769892764117491000362267220329295297294397244574003765329729586249337116534487840954460898573014894256133521656976991098804790498468397773196799723189119848434831011913657317155860830705131924934819561972214471767138479710920161990990216615167870431368779203666074520640017845840105846100538070659483042190364943406705708309047092039350202907921441128046549806054082447151690776067610945118471090409138836495406109756339768683477170478189525392736991248007704501676101394655660671740866981180726026704170786722336965704406118870926464697660206469683306159723828983900534562111620793516415477724327306638925631817457299190364241653123664281856926565271681325980673670821737181738457720337228438353036107151862209746312151229975061201147599945794028478435493719566849585228395366249358123270254676348539228147710243159473476212729164405105208855061435063426608319180694196974072772910567092012281193752413980365167874881818776517281726571546321626036556179177930168336551375840315812518351846798468592596566187655848928884866497032783652748120359371561072067693763728042273182802968500076115687037911901774300890228863114409932686368672650289966636463726227280159296958734996943376586337403860704763163249245440081428567385355705754322445923399977927849031084966893272284107550045357323898202651503034477992278352529327631392223502110594739581170854511110910375399870601839966831778315178649420819610073422975225850282918191413284900098965418589143319589860258634020892902327383401375474617303422424261588977635253100642978521470482982320572671139018084567912063089003298516972709019986061157310612169566930152654384533893546556856777458444787294013359118912498363257984131672821662207046821618858434968157726232797489091329942004897316750439880526588836696899210541555004777251968056313875865872765782930021079854065079855429824773291202065601071999459864644199315103482853840109978319666770548825669602445382924693308546721903585643704091731650504444452657581203375510821515746312417283446184693474520185377375289186712766808131304172329296609230312731835659752865244398568917572847963009712906111548913102193027009703797798317229801862741264619182571857489515734500277372386055339126365887905270424934105469024983610271492134797360263057059565933608884766043027188286073374487850412987105905924166410109691091178118542161178534742905896377895355431019280042410386951207978205383760708882055903727275394558003853701850406154108002463073498058285525155692918351766332068044124697126733904113402621730702801236479795874525763660900490913705340618102143110465424799037130478866622512839616615735099226826790749204054093463268487536232499672363726515730444982042773260037402433181411166142668661941946531213172680021491825261407938791507167150204173865447166008123351198512386340783868022095280902618527000253392908765683336371493533414075033007329741508564387606926994074046700754686913832923533909244339856985671425131292108289502188878930922808264458013575682621732434225558201206728607281408559688666575326673056101197911631269358066450200319792052479414160160398012973826692545397853010633947399506759116106485320677294003574157140728061276928461889762109361042173818725375148543409766944536522859369858801071726631248981566028340061668634071188278062183623383646464624580133220324819786578186200760311241318451197357655519353127064263224992895512704997864480046760493847133298745955646624877364661128200377524279968353890106998541854375318469777841672899828834627939562552510985407568466906110887543659330279478485421705190824871506987372295067129053021548582324521753248367726330532305185994323420027812527466509105306902974843736342543851029024093264385908340121421005913178100902027076369088547880408991784500950136441037068321648943935102630141954477782860223964766304215954856063960235344981574305733963022130267283994407837433583041084244144953115266533431643178456539553698614569371960069172328326339894795092708703037947184606157880733215126350166008929080526192975333694348864066344682221665732673623230455046647773517487664540854090056707797758464309875679651033863533122711521718241796499191325362306730249587283867312706593082705647077426356035217754722899306836047558695718965290626810979614526740211410390417186351202200727082167960861210607220965207903175841865085177338172245369177018094485359274607159175066953831178929752056350211244046530430194808415391142215139576415470092728033244979614515763530601363850890798089715587443587347680397711873343985754107794968739180742337728058878045422002827256689547568494939960410963928556460616512260871372225643273833312504070698349042049310861868688308823522398462998853341296542572438897853798999539111970551914508490599570655618180170271824366538708655145112516325733345507622576142988554501766955232426561326390888123566285178246052519958868714712502337111568445780380040219317873040214128410116557718065889872856794952432926243779017738682244779207152837233446802527906966787356479464260163104081772967806762456061944335990754670618540423353886581208759156691797541328504629226685001838898595539733694550890449358564640480499937282805597058652443457022494527854586560466426379354497304909326851187012670759467024171693987895904287508532805513519471806810812971817368901810662251647668690569090424002008987029991867142902254834526794625702924847933610322249671617910765259043476996526559353593394286954814527191250548433108879657204063013831983934446722628217519635589565024137767095884854750453949441859738798505731422688423238888173210097529529003548593313419640496920864728284236801102894712837916946926912460555206636373911638573683714538914161315238659440600002161077261689405128639195345513627394155232015233116888147833030834960949705800976064234501965441015704584864849104637271284255213348216607693369343012627104125087648551685710306560583355917783145662634389655603467263364002681810260767831771688594276799865155350558279777627010310746635462568882346081437444500514191850287579600750051036188834040834277673031861454219190095155003317432561213111530775906223058320702813390730622282251161785046728319457856366759747121638437959206976269457254428455856855886912309502922484580539198153141061810247903971894881974353591016277438125133573962834091784022972095538590443745907096058849929461439826313755160918916140091653966120883153832343619320197032940139818898268454932813730445390217776858526743374159938739106456309303275091439910577712343406144657439983655999202506954171165656645633156809589899520373145159373088578811923857699905695169952852135657670229191689065664647906299521183330408462072350585180224009620405621633226757243324620900121938483618478424165674924637371855446386634211719692543625394589210809924303288156926959925707508908872028109359922601938121454372585263442307686889617210810238737415785082530886676281398695926945594355549120065287818207157438136808403001070093128265523222764487873401456650093701554470163283742147627005165680372656070337214089580069849171515564980228019575333643990946561249300844753205721493568948552164283665685438463312616084881162696221044184689263329777313625736025863198800370302656175232309829816267989732092250159437937219759419937330503290406467203803522526172355437968519909079217895303072390361036105236729492466058861769051450652155886214285003186834800752442968297795547474460493246587932571625175752421654028790317455821703465079587631596693726070943284099043614310502941647939155493690408120441647919093107177792749873761738559598371689954885453810989562138118474139599133179266614756148656544399896671783924335371292791298018401991266072175727017937357589798229125928820531328353343342266490052214628619419816853541367025350599329857295659449869185165167835768114031253848092945559992079161846634035848066923829511882589528897222943627693250019959833308704824778280275688330582877305617091274021472522180185567812352720764465084591095768767659511407274484443653076994861473286037851495991934433438025249114449372784005480276638869857368735821769078749301888742369649411379726390848657909871655867497437503784295164504334531144103052908480784600245507731264009349893641562444096414080737081373183497677274933589788193083557991963988897777277181673683721771296567205235558683318127533181929375488415867960960855555434951270889558821884341281284283527808418431325470654350289402287970704959891271956487632934634756965718067254836295256644151203175613822023252006902581362782922444849503820714498095611496488820848087206729391046870806407725731193382930029495021350263297025862807220065540577023003906835142451509739641964382476080447144794878080436081223158862807762026740208933041121072717159244817392507815928633821220966558831177623408362190654569567220552092593280701205093524428144170539454426718167526348152736885923767993677216644723351413417618805247990332520088496277198156629299784519617023652261038474011165583428637523974868254620736855647866277792558160391433619416989071906411926455030580893685348803619728716503765168440856749419054150088911488055019941022371587905682289355007635867285786751144802312231682847013179069795687175338261731781889971104520648172769506992970814041631604775316642127527200193013903263543462922697530078942610551439240629742067536667705626390822161917187406730553701697221054782334375159042235582056568312574981803560376463234365417553900030134589474796363566179405030173742742627878022773166328428708246811370152562452945453052503636321669378487568154299799862593956288670142416236622504998641047338429542322333820590658241509106350016790340232526461661136252374969290203032264009104964550362053507600565327407379184214504593574108782285122497610333096751006626352714660610546136762918364369752975786690466582834075181345211389165619226798271538614424510673961254961544453239313976564770095579111342879114203904081495589700766086007058249466019869287666991602525825900389493909398895377093350281281316987821454166991441497077107105903268554169678271359046420948573868611545740584390809440265278582949417531677610308055632173477641182336106407477530974193547286195004111045038718698243049623937463149854725771089518446443523511925142396857832117936823902039457974510146807403621017021562531247009638201178077030477870468651423730556897402789757714524631546454102989264468984761470558171875397166861568718052354905874119846434473441612070752174243337313003451750492642145417184891596225024657446653050147512072440861096345635954592250021669053098588665312915767686201095163212009100115923491032084912327765786456162199725883925529117818807458418457789649820778143244718782993845831207674747810233942523808428011161470307048090180692268279966898913496777684924741550151936565527566131255205699855668384457102040321126240922811250597918989027636812558165206078601754750615274648482071034399457371908167167348588891555115056728937300807167281085449636486245099897254979499473910054187910463627244983332954827906995463159004640414242847144094621765855493025497020581926666602056026668938443343772168181831119782149492872876389177831729531971406863644073481118269108974990615263067262419391791099105603659086756764603514906978553157399554612671652029019195683725574332275133659839344554708227615247264179058210080151532875936930423898737129085909255660494750781971217075900166861439593335837674002928029250405549161547003300906367108299686955683448862960084409872155974752372782757415307203185531495239978905832769578638139944935123356249961200653764314345501753931359235823995625945852254548237398417881483815924023888085531179358919015873956018956018877352125279174389863637402096198676044334611816755472435075892643941498880135419162749310449358323809361332293584509244232767786609693932994331827035638659334404449834456365978715825131559453811402311284901047306780967444159542987134786410520961298823237611341915413675233894372287164958569355838471524008908245308390948726965278624534201537648504373810678581901453263503224383808165932958821746016685907571599049570918588478520506891165354882558674629985142262684313055112798589263987801416355989923071436256463570226674739124324236154084632038353083338262263695402415124972089782635403482138540045044911506475468928604660250874968716693740911553314727738566395149440623352075786835126182853028905766641620006125499396265453968468239446307319836292569028511724719471663591054681504863178365732167908524148988423930676185753215681729515885242705942618175421946754816441349231921134644748146490082480295103694915355737528403976829891382415368396424145734461166897586205601837700025462962295744871912277985131481663323112208355653537957441455241566895053949108473402276809436585874505870742997865486382615785390153135431669447588376684650258591587958024031537783901594819557223199668241498796253344221356751517302983636936087012698587270143639598464157212787664149062000741437562611306848693582609505434990266012320720894107160192082473514798388227043342384456241791252894688260972269396203716788519919359401495698586420042986636301014451097699531984500049846882789390239984821525220967647506253189980332950237438713363152097973931081303611321639400413951261730438234151604998228466356994167218757636519474828948550601480666866736224736650143587527511913724372542086942435296415981031839233252764947042967476513938991176237586365757930754199975589680369488996237950831162339734858196900409262778840239514093093271726501090623480317609961750481665032258357390536231585197400090299786443967491770286798474950781533877695497801860456492322331239064244205636306861019113170278926005333141348176514152425844042645138700038745700442217121649821665902303666956902815712309956875517661443202983537205541331049809175078393454967948799447472343521750934896605818405993751565505412222566533273918752943324473560594737556440247369058861543526203452730983670056479396577445884240203261727809831379134918576324613742809548001102056137139516995501048523558795477151856988166070275362340824904540401750629088266345316217463798656098056989395852248330194118291341724202321509409070154051211429770892956933339969494242931754105658149921202911110906877320112204376100481676677909215635651200472933649138656181925568762675823135723469857555913442665031120802114235324882505692849471469994675978284625990198167058913343664467394058134062703516756639776885009498373649886269169841018041236374750431021185999401576980043295098029490552894414582521064023137054819933897183327850005316384246309625511224280736284141117398353828225882927036814029124509137764758564411732073289929128654857370617851385674002690059890275131110990209583295408995769483824921965660582452232804631092167589519108715498215488467165252125372621265543905960548071077497509463878297573726565805488859126397394417157660797077057020735861886783176906043456122424176854169765433708772213687660834315273241517970282621109227852629552631305597456438279975455874965920691148676863256132370754344607963366563546723860335352926785781540597626953448152985546731138695660480431389442401620103964513730495429221817192765350745476714091001124637283795028123391196812763503918279995695268502125668210646359675834177332561406345009459442361070085382399589570239640835271454152217303832678147384300046507612236742181061528830324927685804244989864719006659044821505010696453861471242996888721546046941460169646549545339778014884617350740588340824542333663036580141165799254183572883267791328219586855463084052568498463397864545678933990985261138712665316076694516707664272767090912748449906844613483109537005646842925493665344774866052586927616375822451806175791638530303115884297832928420527788231321486340097864606453197369536694459690605857376601590872453906606940077841068074954249432837818931174347463560721905993897884294959627268925284609529689611140905593959036181136346357635869357659844443604177228180489102467323063424331140180821086212294135253808822250607865827341048011095074081777341833328307738131820289844149619237944270433306888577467526253275814313240512831709363021673666882504839836912465808384457413280298898553120751657999870745783529719807952986799740944895554270471072126464657154469615219564330546579987796034967212756144264925900108331329054231710665327068012828522764552380866574512947570297217097266775261033952204647418157500423976224836368116175510355370283853930656789102767300175102954520637448449827807410696196410647241343194983521240036826553858276388149718999861126055889448050297200373965092563127450134106137139543062901358773954512127157343663517182128043935333158929164620063927785316719321868406582119326770979530852902329214601539717881639201753665832536576949442862284814926299785053307900656681972756310578147730829870293307967010319824296071637483892283845053717670177344442641690976215470683498293879959319794435881115620309664789738591224223528444488087967837602838650869637446954280776224945216485923371495269079741020037779620806777800850438805923721553216382774664374580520652918389032635774234784227619652381838113145136118003599757433250178749224529100907522667709144401555848141809977321474746516330026315934653433770454355126960341918579169850518376135071950436893699294394100484711138743575803880373004247209575396216332462479274067509515729387262307021955459959555460636573023401024244239845092014512294319192311020980060005341787303682221467950627973943871981347122533136778105007482294404145271061377114959894603146671895160418778751812269751317960449011288576733338050878780292987335625716293315474342632885728191991057766492226648827697878354248711881083762724786076947510247683853906121567938693520018743908798349724790566817448307795305862030669368710825124203615590106751642362020850620685056788231231377778017703725832091117954052377629229625709344870710941218047537522833531416012232014487017093709878865383518743563958463778528271595663258321909912642770274255527227111590997279579777626970867448809900741220064181900679550203630929875505630316603216831191696513312840716806435818015615377944961076076001386982444860613633412727770845593242480585828767202563699242324822232733208571046585488012038020111014521152700811308929451127972986536427174909608308766089657876622018772925223923164003229062637402902027950300540571036234451158580024307392076606036782968017204228033178052698757623014400924479940686827381490825812591571286782357449815100510302519269398934474396119800947685555982692233849108095758357300934050460356928264260567135399279501792532176408626055649269041887845620358398383568537021801830204939712027733691477835139722790021968239904419678235657703903548390752112537570579102564101070522852077239841310080527316497634560503351344031769065017384203509016060180566960707201586194702808160590192029754086766346013566664282452950172129702595593059731150475487278682306739595281439990002099825277844819331092120061645343548337202888822424508914345288578836639717437160353186658145236082838170450824123129406948905275599312712431365846266463781852569689045482380641328703191332078133218267833681904501621732683732220419186802153946212895963966624686233721018369868491535984301222757264361326542710683330711458198289448921100644608306770792987880411747929221737122471698395113339541044115945189870005231225148592044227907837967946546745470709749495463472262765424315327657867911878889849323100643177637891583116599267154415680606814125297620487365460151499963232815841962216450272717022657648427961340866116313589627559986425701872152236358255186254890592226900240193821370296172568812343654072011870721624331470881364018432141327575317708095194909500425772474893289397846941185082228088247218642494605549793415616482884085042190718294083869032385856276149133117755055960344553775353844812068609362242627428109075178097185746626520924392884060144183031234675661634000979037344189544254916201989318110805958644392693387494863748425203316860264060006515467388043760110490347055135099860271558806691626782661097246498235831695425133919899943459257554872280072895524282175810760932476315948034979476812105210688696239377338031765955466283117677861219679857237997272785338253628379762597883012901582895849639461777500986922213636702127131442786311999216212797918006462995232126309874710364239387875503513254429694892435217370987381764505315005533154052393433934324691674197322364280706685011128881562148776742236411870222023707120809102993478363976527213158497680993330223732816850821656472481269775231728271361614744622102854248654191192753662668263920072419841908672166988102694606563713282433892479044609268317519089612578200004990282181252267281458137488650881266651266018333924254479534992913392870601302617495222466930477290107950054145234855042210135388365374330334011583914837856435438107510019712042721152255768649848082760477507869851855232712760338192485954152312732018252512152301789348546117910234631363845931440479007220966719707477644059241500814377648752317037602805002812943849612195559827592505570934224161782609414371262863776607826462224304398171972548089159975346165234401612149037701930906780259098113151654405450617391030229881899355603078035904292356310691744817263498085505684947915098119451564427391595393036739914459793087414030633480303737413609151548110214676584950155488563970686731230840346508061085480000716050697026619660811115376869398436345403386949509895807984160450911587162539607199802551642839323894452153634142330071441053028193879927456913690096168045622482238890536224477886950012934676931024316097134774093688029728820946115220180040878192026077950118625654883673150015736394750972476743864689767890660247306864035596013179055221173365740521093512487695803636274505400996725123733570306133519642139516578788114907856017222515528472191061390567531922541932139742042449179987444360789642203455206889209296541614506198063742751693255903700578221157045000749602332248375224230639011617401103139153037455944782722259212809118689567990339001674269310892587977533262700161904693571530037424960257594770060144852980878700213738454023626786335860033236592298973577289704619877136140662591625676066540261600799982084771281329725947482334540337109371618974395670646440317952195618515968360564512302353912187399256513670146850957234005971639267331468737275619973247894092339445904762379987573412045217297681994209664584995996464013848693778751845298909613904617965150870829313028804624338531395703197841465622846474014701985596760093763398885346637231930779344492916325265709629406467475510539536821374760761701294531953029848596095173473046996547857555884487769319975958864660844079524244833149825001954375709527903530700893699719420032832168587740935231443997999998874033584184293549105386056279842026948300737500581453716779017462299715377398063004015193035408604809310923032758936835902142629740228881494582484542001144512490551026872100065636613603232849386488846254737702535558225958750403853014102994289947001035721326168290941592106842947095114722270030215119486352462642119594311623217404981424170952709802119583917599482791545494032927072030032100979079775159786109485936311059152806729910425583738114888338157286370813521185930216869298018448130952368340561928627349666685365305882537056787618898172311237370549245649954067678274524168126936863278261845364185483349714731959197738314477931511945058879805900184879626882153635475896703884199449086662003869557059631875939958747613812588240583791774545775557189490402532254489944478209602251590363494729456496824191172002690155626575345460775963107551586044944270209683819053020210848200964730049435603825972076370902810461890800356727369665852767751474615558941502614178810555569669715027411443488517049123796421632074563724810543329964174874506893060919591574458698289660800809927437885561789774298957797489682639644399079965604782828947336132999635725127281495208997979106213530063276235395679514572960268921693642006733559115816287185387900358180290760810259034656283024376975359497849396456160403658438895720139896898745858223865034944748473053876952947664330465340650203258414212597586936920594885472509209794863655925201136866787995729052783672652442116971674661772462035082888621440419739040044280006151050294076504273989920942495827258027379392353741035377415290756506244481171847059257128072957674721755480186908018837080031321861686944843905734020220710964566372371342843381081308282365024086868829117973417719357311383492627636502487707581264731136063765792279302882772008100181336487197131322240031620826507907453520786532288178905731942702766126508296701064206267831956216184105110319820660982600003418768176179282056651815388793580865142402157986001612001260329751218520286615595295881746459130705978755897432071330101140256130388174629422809598009814245818069324847803450405481068281081705305336185410932601551148349332672460106075077361839070285193169313891686258512023456304894824035743639534296547565841628817167307088378526701824218014025614394685610065394117069460303381403917829045346287918968191304870103976077632816396209103516367585207420398321998107676494388725293953955041762970058499540916253173067515098790898721321180509529903100558172004892139916416763772890930462606751734887043365889054505347510869548213818001865514509060386491567074849627666725623176959435847344185828198189742869040029476462641694478673314144212544565042309668388256101529557376724528462647824859109131331360980866952639227003551120764298777281733608756534422205656235746025781587993557485988528735390952631094022181589118100657269338304694989574978892908275731292351287310136798851680418617761875331575127826864830488157298195467493914487724292384633675884706183739936739283215077435362194181311473540035966748712098681279447499454069791469420983012851364246685183414496619413880115457696090611415619394201838188892217056118437652681341260499091969523285661698219100827695533807073773250385358506716043907938360104704664697939266558912154696937854489629144410353518720156855598088304592716835476520393092422402514340707290085906842615868310727607796524149499206058337364714046374319429600308292878620561006920436754681432533650201896533362068988929049645627455708964093622897592613544198767965784350044667859060905161334812041529661668439811798627262511542070806137676746355610907254689312152598647045970622774648035182976679427804515343433160935226012075347037279398408121156420748863147225563440393500074624534325368210680191934950725873850513752244463726744747293240653125626844427988533706208686519919301293164755872956883503792012177903176002049189531723530295189707172241088311121437648549739874784746149316462645616891936074353578365084621700470387781344093887979718241704926569452455045668839423987960767770358355714314563598705528053918029684026028857021009810324832040488518262180001531859048364955279090602573254824119644946730336826455861014701334300939046292746790646894182105698931628714911988505428864078401289881295577824070859454763261118171773404687592568298123387887455065979213909983480049944954675965407503334780720238580584923602861530501343509223760696270673300498361530123329803507772206493804769017225817884681982423914846450970281506373171361091311262267490444599165315516218475054891450515489838250397657249454582322040322361660094858073807568032514991037204645667489170571391107048865854332440668609723642210046883103513324856789658247351819104122119837408251630451265374428157254324114420310655104726654243261736853970587076846595071373706910178966967253948768248017402620105565801671317938587571445357940463159891831554866755845236346893848489045348863234370413174756119760615747325126952334279887079186845536238241476574625668221038813883483012140986923249046136387749038904625741163853877045005894974104981823925601566611005224194363785226289496104448949426787668307729970364807380815850231591181092130176350396994882685004770127551552541309751419785759556900457330713118133998513069855071484678918659395938976890119398159748381590404000318253917637780671134344123997370346637670912960229523972328144370146575282929618088158519368958594121746217064877386550471434799603816191581792438645156534646992840772134467256484799688307268384582581609471208794005268737511798196201993919982166370429449067041022767841360351426080136768232410600948070143813454202415453077208487718064472619259589397341919317611987531943779510450809184929160996614644506699782139453036274307643823526935273100591826181423797384084672531826929344899805686353869965340188927469740011377224463923131047328710419234755754350083652701106100978377472348377684082013177860394147933240612063472180524565181461075991965410536243313405120286877083787411894500342467850711334965496044309515930887185917744568714547468368084687302736904366371303368745014841959354537933374758143405119306573557401422925312910964540355171697984162445488738573388032899220821693032299368736697922734460304109686837511274003131286381833205525349308737864722867991131200485315567429543242314422630581785277101601931083415201192666503230804761176295491726419808559209856552898895236787298854146093107041529266714973274703841213577900455739943949084051757329744627277505015752809578281603837764046933983672718475472012348652500656427963629435218674637947882461816447219799326560647167302016847491162821266537391765847434829246767431386152614456690715027682133619993952295908325180120137499737192626398240973332054793463206309579559542852648770820908730287063662194388336747587780546333898218278576071704218841421875540967057229385609615855813990516770638709403974089735333051700143715333855602543118772104205028837551937391911331605974006036490853208814820645598824340992880807085746764853821025810729461126695575774106661437733032284293770650793551609715546732100272128423727824231092447027303414021700832968448422100705179621899050923409619767504640586478241162291093449708341739074656252208718853526941434592371020079153333777561488532574986924310338986654232656404938127971381622645015982109469554264196769345985402343891879317935598968332589440296033001687481548181389499442484617986937767753359661206375593012673157606874233372380183773395843904512659083622546759410696675054516737039741046772593753699489742782495238088136174983058989780155445052090194768716205527847008337481881253444266998878072501063061257182250691095838247629068719182675880290846279392449995368864100081442468630348495730780913632861513063932327176700861582368689808364723682703833602629782595705840727589917116620547063382879295278323024065026438358516062229730393921244893639409889100967202732585126888294064375428275848233242212249586267374053330117201101185978239798650627006112440546123769628703132848086838124979436479155676329912219861243348945319129976984559849121875487248884930466510723117056817382691392806589378773043261484738095426855807227025878338256838321217978175296603851369008347117741101571544267745026725555790506738205597364011190158480051075054244657506273509556038970772913846489939637024247532131592580198133770913922529168520581669722710863209479672173068073444177770843959378823079370051614802733880384760126848719582389564901905335293578598605258000267228267518497104624100215915240044574463508387382972451273431983960035274097769075535794247573730418117627519246503142968504765283056050656389891364216995236584669334799128215223453658533362958502536320933071449405472019859621211573940403668841780782373329364557832261629809334073505317383029949391681878232105084665086613157217803662176726057172631379128360786794027029865226796711983599407532873537248900949261489609482402889680709334307317672940601305212271074992716677845436240550811029105387777671861421794832990608003675231410558479005770596492408126190389402837528297477828780380986743728916616039819956962188765889623283250649613913796846089039336853852223685699455318194075229219717594108288943544020348515168613231524493519624222495664378042103419459229987714702433974955341532552831834602608967156638537851517738989759745204718080152619244629717342754599081993116636795700857335525161146459122408268546109647441514837637527638090942245906006833668212417005827988228359680570333016676229802388781643899828500688394826678535245259935922462577557686054985142298709749071980019469671838968966861304885712206287265888177702458653800857764175998322974261221314284893637174042066933767115266148885576359762059399218758657011739943105670942823103238784562074708649596637510173100987684775755790311164888028294496356352698835980972866214887678949397485498107482312872287976984689618261637084311872916348961349385526043546418204302854637180056571853572518655267323582996264993297691358105832493162415489294934783319315883409242451332742625613177563908417637065971497605149910281646913372985175457975969380915840643746715978384374259995330689013998775913869383736892419814451818013503501017858750462967603786566963989467463279620748271217102223264169893441092022403586265851230469548592382324023427211475356343127642978972294539013423121643405145936795453621997231061443477430663482705147089256866769927829178480617028761081540369109500695130875234089440502672346253755394361407840376613628575956672987098447939327913173649468980222672540057921068240835134627710380996491653601205060069436901205658566040042734116615825252228134225583837916153489971588667092576109720389217225774240994988864986720235546730705933592155207290919390019622578937116400354749090984595903398484794243658819021158804631198517415888640554641015054131225559407223415588806423171766590332973712489188273563357708295428987571775287652661917682491188702863221008591419121457858651015660753126955666697663914935927432966151916711271789213671656232151095740528327544286163753729430284410824939133948378341511579445117786994450942132704290971822989222691603645618371662805490543452406950267179414711456162452417672156998011958216327791592096640505526875870006929559738201035260221123076695907959984302879767872088544074654655447309810986655326488533670423923227832873516435777171633268323970952027145419318319297492585026898656291357382082083975127882403003721469632537921294384740948270101369735957727667543549447708913343782894199300658732496294893433216211656292640758117535031254377690780264278391475261647855533354661620036408994406528394452321543274371503769602594015475377760245386242268151969319527142228345878423092612947498280242575486691536812364858020018219031018230357832152098863479161087237923150101783454483296097543009441282371701944331894149393351734242512674028270693484352870308153739173860792321245661755861746568254826640967789231233374632701961565464089561419294357661824326840770280807941916723962048908733592550101474455086091108952821939181989788610774864246029963881640004218491802382546182388552176230943298571939404577789555851588553266618209954805146082646834922552921233809509324316664243015691756349056243091460500317596601757353265229474753506399803840680992344539466629409824495079647686166369612146247268095146420500793347597016681793503573329590438452381107748021349753583854425689590125859621634536174118712443053241604407200086261589858992405439433541831151881358460567572827071674738287694788775717768032434591615985266989909611760983729038550847916556034404782770234491405271495729725251204007535440108525433378411310799449583894922080127891885414133344395852819927729278833242576469505898571160538939265228174924021185493804224034495987900090451885041445079433145173433967940476963908479949575595210314187929200123364534036745852700669391086660642556301243802216407440759770972643268433547147057566707719840601489611177280749779728382692319411628035026150924908529868184739146604078599481792864935027405822054637517530800862999540608981241115111227087409656595298111086476281559992926406054713126222401763013258313911822976680481073546120293071252846996508252924261050616224917826041965161542660753552543372140210463757749768468256655072113610505984418713576091945171225536102884922335347656845921698109954197288640743636235131278252592941760429457171253631441441606987940360388586992794425594683568464690675636690631405378553340585859786577975368296137547694566230951682596280404169409112591459806240630041783862669024272508939720611621464127818607667374458064811161674489574919582823093158481728453459253125894492051797348261122740678775507278206602344816456741753418927482300761440170030735076430409139925889132839235482578328937959481826368129615956508933327725800354116826132473713236302639236904936917373466093151911452952259941282188550522218405865238676121228665205611550602219345687283518898614442792530342714995954926138360793964322366667844546083413176026769368661355141760329317636370423690132264958673173748580978032899652354068244434802622480697579818890664650406911163658125731475164015623535786265700353350304678131163236512419218926723199344208228763532337003153566498697701804603209215653627096049907242074427941918113797049866686213541992646116620588782783854557107435009804006938990498256395947319748223032687440856792233702766517013152366115122614511699785201792953991656952773404942755860388449304976736672633894405517336695914791162988579867684165944437574682367608188673120436195189432769839517916970392737576570519355123659764631279590402266117177692290549494647331506329134765933709278156279866665829509246050165241392306095073235135215755866539170791709611229025763675187105677032478332503701456315277774642646671730736220053682620603111197024444616762359663521406369332238027443470117895953366639579013744065708648738806326310885067791431320365957811093020437746524894933068847172425110927825930114227920470458365005539740367951049050960124170429612313988902543180687169849500233442842466732058996571518028685451916011610889192819019783127908593513916556557813780950080978290097449632566610666932089169012885418440380965647429811311553782180438652797458682688455370237842538491140975067086435689096358686901220527771287214589249003076432036246547175871143179379361889140129585199041089587579499867670729528176837870909114812353593501313658321903525651548338905509190505483535460286986759499510698694425705693541445987709490180406691528965346160791123813553513260590538631093362922932600167394944568081200521602460434771583801371435888350363091177512619909696874526648537217236148308372338315935577143218665843172672438608224200001056900426612004692187664901087348828251456791634500063449739474527638205627539410293969593193294980748119726321570926589969553085315985458069170834976172560432118957695567121662995259384375045435288940130965159149474783062418356642797684188575583456518010443447158360945780577360655745212912311367663554414281179737167020045614803618078624216248415646253042560940974538068944318371620889261040570347085660304000562993338095897627948945640701293917411190823730755765941735140180754876611055888727550012752819071950508753900385621666650418134876501847320734386595868063582256013868908545226417340677828635235323289589122174665900532177916425976173848851570286216504077867494082223345931286275787124307360224357025891499952292435672070281091782769001208162125382417571640569948404886470105022800010148714008683465416559754894441342752239715380734343960772365828278493400489875244406573439368754421561597075471060541217102916308006501657584269538243624322921475394502932544022030173627818151905257994306139987705542901242752026756976209267525696535967171656442231175823660258395117666372325961890652476801483350244856796946658811703746253317723807808816299133659774274554724840686670001103170503814568363063809982442322015960362963294819159424279457441905416411907359974789670986220244645898685373964065235438939300650653573098730782463094618595096238370905604114594580476821137424050003507800873505518649250131870022698669843625973977711102135599552667177088005300812084319906747282643984899101476381353465740685454002264647662607657867549007201955757409444886485266942851786904719195261365832062041019494205826126899215968984584952209993521403546293028501274084334248371175604773559749076832732290692118768888895993525819514423566764745903673571209875948841995280792073322885520542102681296844888336367423850266190886989221256539832934170998285142811428462658021944073519336286628071216924726561139356825702395693428164492709172644453643737469255176268980237729773136173551769011902985896594626053915307410752810876228244688732848295822675166930844767791232777964280930721092407914243903274812077528768961801341593735589639739269144754214420566032034921463509577318013848458688065394407805210005276033084963749007072650719646651029355584314257509073660869413360790050889081740955688008560032928208512482677850885409522932382312136964485995916395450433029130497358728986438371825568906152594350760389101945602193858341253880743578723410372271553443052089726878693690896342485468062651807927725353905878843403307318573828457077198426728301462535398388674443404380936974546161400312175363586034074730580072338350463381443885124114088871502697166362323775389440054397119153643341868687859234006141324703972754159355244515602378896698367349376455192261777022717895054800782183880865255152616385525230823496546306773219915402984833228069936886034547980829658992417439773485023795497244913160416204809764897983239118997345698486929772182321236449418129422929102115322888576433173607102352968775211183787356770194080199802332697119542683301238993753670071688247630225362693325680136617602815449508163406096273682189746452486120458561910743916874499018981213696466939821031561716669298124003400116123011250882378185578803577048271843458027154463908928337887018371738379273566355091674076908872504181367127139051854241327804185587890608710098811774956197348603591364685931050212787588693520324553002301698019285824734980912680897128959370931489213656095237861678421413458595115842063722551355598297548981258849880091149012685026881856440729712770907117474640639441360695711138853962061046379842555812578209094117631017438383177755630498502525602798760495926438719021109664113844623102640840217227790413096278078973667102205954693589845699601965838770248888297514098649577263153359194327488522306565793368812233097854030142487159682529698130867476425197782306411633692027316678556011214516299814657899064028438542007763241534334262485165410247137541030438645427996421903607037076824997985374750264528201402959066463590535563104456178987492309686307106413984687725427945442577392957901829076148712033151974948819604968079789133538530780717728789720239284733934006300994379355662947859307346551223797802856869331464846492179885793966145229770154363641108479334288492287442092254123397004818536645901040148222596346033280418427932262753769416818413727168523195485116207967746440495212484311562319984505624879851726658932188492830353153430961164921057230045111391125596551109880533009969085194441120794960370985526408705234847948698858242169701797423921575862298081622080045080700975509289655594737861743384672701297479884018054632351686729061738859131810047322665237198389980283815338923007862962570064139903352951850194296840611008075681196335234836000053220987471224822080029029887414747808375028669487217479217560885019518289576795689956593254589270469513593642714978367613697787798781839490224938887399673323671836599528768683495762687024073538566941166619997218860408965375572575308087895870943407197256572254031733159342086313490868924319357799308803769647870056927416563367814180864831799053409739585829797696911776122781626404656749744537725177687812251817753788664484189416704012057577608469123878002334355974243446348764668083528965797718202711101284915060385151195880983478436138570343284594361206196687159438093871279721108094794599440792026923992472457939661906719850010767148542576061261399406161501511748103727009513767721732541295273524812010378871618726221289448747206101672186599500964051326358338121746910307195259690937935954371810896627845490013943189579474266709197397208067415502184932815723835533561102433051481344917248850823687948547561182495638811382289775686435710045887142137777545487613535764298218200674587662382191010229968064495085076876092549205323040444241990679012890220299917371368003002091001665164681396061655611407460342535266458475339548501990927850336293697145270338505503953984518441146890195498251966363751279935440757835568694930894185754326522708082608057352745268039563357322112548472101720631244456209257898987617815278993742213079245165827991024172492817526024466977449487360250272759101250693235531294147336915193740839947796796025068362096957027878285264560379632695386055407172219169409805515167851215154182818260162526461972103714758492784617084089832582989140388714439863299589713270524869564902845383600910677427530495604074398439405191276071970174224705311649191048713616417206197037217265118097887762685437553486809392131799594245020156184770027013868235427225601646253669983675114438552939648097134624804117821095257549755646042703398089249463722681714570992890020888160407564658323865802739176580510089075229402758470791826392587670598642480833843483324693759882832283233744918644193065978984387795932153057954048211939663637717734878717423280566703616739029514354028063025943207352598214566515665675835825845400273582297570058806915999120474262599473093838736498687092053409272432016227360901528425330515025541723564062042150108118142760025278617390645346189095435236652417865305171658015521579737768082126647728280024752081806758920456441042959329159214362431410953951644984318615025678037783217755481169394465574069429656332732732599995094435589577599811021002739937974298582728845186021292284314935714244610770482495073819390814082871803055542295754043337862468625219908388192476571399184701627262343474304956742008520795187296643289443040732712679305629325700978161844598469057681533535327184913655777659701861358900792800626931933902764947263946486658461635727074340224390890349625207867829742427753928045825875756752286182716241331950189789188013563305220706733281319339318985897565385960602399815868616687542041364979406116018540685836009084924203723902586824504301395798437630204030309305187097339651511315946208657098357996990332646419184512258019937882754133891743448326186021348306731411150439063371939130129226084797669265369914035586417911206472798707342645215852363454332317949983229431440358261880713667098185060839940763248019582427002819782140091263322626757558661066211857990895951371044298634821663375104784309116413374387875028157046955845247199556199016043991412752593091397964993000682878756301873646700913654548353422866988275675097224185072735109048225914166551961416127592121144183352045035441500786713816086919304863583146488707579468539799782971310294180768702075013170776852995250111323650977651748229673517571456785396846575722074468178581486574885992277976185597559642264972243433392320646332812272524088053659948412160006407751917830403780142655861910938028914245961952369619031559713868638606475226962855061118313439711692548316963004476120660173402846501968506190054596018741482700034133216127653520600598272970064069068045614889321135323863936960483922614620162033186390283682753579638056177091450390715583888364897275120441264001075518982957398770974272834134738086838967426652143945701507362984518915279351185846847189129216681881162765361451461964407573183698804989350593676436112679073201758342412360414522256278865581913508788467726073849697982059471835514594901591596972885255307430842103564547195235383189573385071404971270907406526555571888846315616511256465073802401356960670553448875291478896359675236701541458917966517985839404491808907307017852062625250905599723999044531657314347777043083404748335596236811242803831254002774586867700661786304617585713050952057404370005382730875397176511146679300703110955392225557107332780433242202832887471758757030500420376537390515475539230768775174197655213021448227494648854535277005550638601155858065872678660448496124706505953744446805239352830577185248996813854019968771205532288305288329194221339412345620864393526116688449187510026886195023251014829548866134339592918771434458570885806167026732043558457813459943202948302928103438799965383590952326027922480918527044881664920682641837210798733797545470107805461910024586763403323229908713674094346083844501178172165512382489403016324206501622578650555877244897590151940944552478536655146195110575717931009088434272096064140774173846606090004974362938203573800847301534206053950632525941835114599688759329847464182265829796236990885611359135054143808734725853916126792161169849391840599398220169303734995788922893877237040255280804686201175166418784255035069374286405306690207449459682998856003922118910316586289004823666899188380682220320329089751012420278437431463682290505429456252002836957646400219786155282779183070634253130482854953094637071642880755038983221926092842922071124702723878594384497660630647046515217534457137046994116888370743418579846327459032791172910235995925581948006260276998786278674902535781859280653251240005569496336668004734206919494844397621303633593989487440735501857669950365968986543269484626808927062006087611787010524041724295565611443339523355917928597657251974594251278289869774660729234138940794631683721002370751846980116120169919071663340127121855311037104026502539411296136598603299539083117420236111891268985676286652831632859193816587932937523352955216134702115200097639962898400455009926274269504720894194227657287625833666105679775762464542197332359902126432118785453106929834467757940776323956326215144472287081269089089991827366278969625835524524232837613631882614635133151275752547296167205151261711958701077730187594724660437454944411023804687217458260365306351150487959814211561131662789039819383936448103452092416882806947274941376231425527501107592012957774440475504783104298410127371817892677484136471655146380181574994039699351858340808454638443776897141111758591821043766264106164669495218411240525152855200560723526392090211997864730725810493592458412650401720922383736134960457461831850444489957734361343443179863790860719286693919074189592844233497471547115836024337446459884926187550493565355153729457336396218785713854619086819635452275556452601384127423792477650820627801302067392517626694274811593527643558426794954794845750512470321093615379789593969295862491430341859936840093763026885418768615711840687239939318355723896279834331717104040007377138210839280451638054513834759855117232924941780077875863903589344346879158062833371769990350867757634809514428596489079031218982981947116215666025470670679751547596607948530259783115310875460457562585446965583084840662420517836720656127614782852807577677054709649543305322205379772088296646847107624003599268487798541578970156188694952795529003030316208411225495637188314685552081065068541374424979851463639857506995813314631667901109902224641114932453646074250319855574218653110565243930591775245299129917647212564259730369790854817579133338618258035729662862255967847567213181290166749662498469927064229535794594223896564997219643490437710848936983168316706184953255867249683001609251482472708560714012161735860053782435381687079809386173957164682698015727061281811424585230170229967105620976977882017178682832130629674657570831155959374847235648701607514391781647419705916156247370567016515382386893666509170572536667934577200602760649712283527258472773701736540866765158852446749549710419579568764539135103363967307109073208191175664982270394429953386006167867495051507452330820035538309281921321807157852942065285316169135922539285852552737337386746410957519408044004609107478424007513919250921174307599913507410523640104127975295585094999126309679789150201928262194948490457969825478775858571129139667293932716495392834109818027500958368784666148812898666705402504998322260632040067344284843043272748557412765554398827160635821734133221741017072703547461482058864559701541538305440632828603362555363388015341214358172852150379628955306033583454550316377953775613919770382556991371637937887727205869225568631770746578086054341294626579713958876728128969968114733595793611158364767664605057725402348323989097631200027776504967210252459066107937263875382522870740149022204033137961243216385858364701372435720595618966802564203759054464985980456863038295644841979206476627468221454627728170912551057221866596103247650784953310450635517037211560538625805363014968936096023980833664302241840739085710133147228537729703799052448688209856423843645172775318478405051892041308872807912904838481316000257427941040261778839207374389993404725051121291251376440491954815500224408990243642597072288711139627883552747282802047392603883219984994094947258512943798125883790983804160509840205450460415612735158751563091058013472651899338061102975881036093089893627023135222141329988530270494063040321973285727653021170381839725110831861612140427484420651920787444541248015520564308808808283723152752252181528164093811681368566349312437309337960297420437511622051651261064299693055221516608706405896715343399951462701056001775001455695644288408205873803188514270384367255457368839289659787926209333287224593342367154820361324663932918055667310534361587975220955316548753800608936974218329724933134832876671313496350609132162917860261673217284043718942637549022904267815028178738801393547626252280304730482420348998416709544901500677378673438563662419462401713350494279826352518535160250830097960970618518292865620265100351163578254215124295490509359093747445531611907825783227231645492401686673443460241744296972034469259412995486573512452226244358605232428228737049562811976826057463869233641584366096992710676118016717023731419381254562516781995824871039566559422130936886114898341401437125483767311404975317156348107549498057544330516804933895468227026963521681718557779588276842940547932453873137622868097177646176948701989376118296324399944404651486849611330007499760494182749640043572456569712133126680450777342486289408829555028975023922289723941843801260862025995990920299742676217098048211267066390436901895680205628180593895100311625692879904901372531205099265087572405585608576209679420863936239366577991446878836440624549354145526112876207869512756171330133147925177378626983480979181261397442311479229514791746499941665504436828841305676184567414523236848048329768704264614049579860888353556722969501485732585719955978849601471785627196219479933252615451951927970518666105067286733443140788523118151690388808867487867687049810156446599931855608884566074469294467698687926693647652976300508944153994206727834241209237854668947729666312991484855051054971646690988422690196600194971157128804244293404854213664258506125083122065986725205191780109301431438125604075602873137588260230850835124638676849895628854671332366332965060943477701951015417387847813259200378917774882726236770579749057007604669104418416034168342058572801124078380567054049906266959720489128944847377525469786193315593493438070827315918999388533488625616502959445375074181930836124056716466339971463530284188183885240200461740217144668049341155440230208549887642656078547877902838009639635321048481942183456499996827441082655296871715053886311689952128239561332875357774205278768914300568428393154637506112065893937488278511941520119923257853963707768244407023143674064518349441014824160310559859695199520340536498089260737505342783841773073442564019316129083949133777301740115654097326259857784059998727664108044166386053932934976503810148110157120730163527751374367955821631584628082998690325305697872319022247296860663984954913256448013933469981834288603436424633643195596832414778342128612848186340577509921610521434129730224624784411822090725617958492968492467793548486193254189598695735893520066661829428656232949642941455126408751497740927943954125246949816160457861167162585152635352139855585230713023639238108712377563643517175568768011997955095018857846071134708320095344830947250761765487145079648050347269437748165517547214625802916203736937296835060669815562029796952765854340932558882418889162146683703588054606200260284896026740301087205597409035642986102998318746711292583463840263123410199291981740657334710658445040012614205280336697606291903433903259499971244334075963110070077665438536753236833892413726723389207045394080996164722767696102096317491676327457073003570151460266122440730130611119301405081453916315959360179876909588111041793758118900488566719599976625419996461810525402830588732492485000823508299958821859987706607685846944054715821867473825348201147925574815127578956150461066557406545760482087575947080472799965933127728353567997905628189936223773218974820335863773939980745988517597971757482314331627524595606459620073901214071603871958764369193194176682965487499331906936028783907788067271282395183713196942161518161640022827197647254515976059417682324091321640729195662212697838594891601565217411902768121334725897085831276127351605575296930356379734293371002854456063748846031947369586345262269423115255642108034790257201302946012655267898416176206222756556143020761606418229780061280413084428746749403286785166969287023280134907673463753879578339645214063044893269249815886983854618640073900089101984460675787140234015556878000771066592185444114339792957404530422003320753528617869968484188615892170851002296056292157737936349148359658488598438854276837459553578949938392487797019119984068198513238210240285726895956113194102771325116499574740875621926630847389257559152053046787483722834504084800128744316282021486728550516054771925443246444584263871242268371128021752276753109514301174250501284809447347048248831510903291052473192271136741044241244998336758177365052189294876647303091732931935664059391313471359863429358315417575368810592785515056489081989272738495443258927075322064663716518454044198723652157430962156409787652471768098810018808696022554108354296632680603643705334673530886015850199564544893633376775225567886691684388412618230284174499073930024072208562255868479618773193462687110618292360774099634537181991747817673466973743880451792444147425089955950221520952781042194701089581538016743163612768375535529435604557869410978714590950692501323850830772170004103479198741954824966427885131674189744348592256416641773334196258319740743050916966403342882249617751425967544465590120003835245240896024346994042689820073591878229759091825265729417200506497880894577215467846198402124337915033464850095486845009292912931888610348768847148525066135009145224412194940736700595087629327028381346019325767957471896834961938427553094969287216892543895088462640064043631032282189033521638875874830533688724773459076836597562220270017827966599388305370632516169197284796234009558991087201708092241918971252077309027485372605270842339738342516748955269443207337333497796108642722529093912664110705382309107142352218043852389088914824778402724588355606638821212102312493845354819976034741939827180752201705350559024305721700960344432412385516631632006965858112009583172276757819691113525423982337749943746118767638383594285041302401472148524044024576742390637502045531267208705808327550948075476225095681561003701664075290267680418966362877431492985709011091583981868038675624063463322329504178875518566857498234734848988432051695311959198434421223743336242684079581515608481216528009742884713509840248123705343538060017363418206905520006879961117249292225259108451878877450771227718505163126063961664001820609568166860863633680792868114698362731379522542031538916819275012449064356980859297893076953173048170282639887036457653799957685656091699385664663831262923263673686550875508185635313952356405498308831289705958283582672781667612290211953765217438895067138523522641563990045391836576680149517881615431273845969889050540358251156362544193787965134528686376404117581818949335355003291413431205219064535217735970107503912486015067498348499331169338489057072993415314500531689207161664199534219105987708692370735544219780301826954791443188542069523434372516832566738361207982170136177542057028225223985006753403286369071080774299408923965659809884221348780001798885021756488176650764140705789335985862431381373968690336357757879559932805647081205459723906732781357216854944213779207569593318164237053040940580271242861884113402557204219445268171541565692213248086241271583321928069150462709455887915786104956000971883002677697599573021397532095333128617359829727577469422600046942645785395014628159944244123756800931135228467919537574724461607190518052850233093302379559625107882489423645286706924978063766805745083097044747209958973319641940973986809904395864753185409041825237032926848179239271150654453798440614374493516493833412271827864299758230155815661235101020493969761849071274431944040820312832697658116448537901299495899328574137920004592768269198704160505657410001267570586911181721924178692515518296078980073299372962418138821919713464917246482574198363858573843345154316678363243125969239050466823067202575503598103014430022144683317238460288420671599437518650008068914520706822621047590034129167456034167075152803554677376588180200694691688088514227469709436154801374515369213633382145491489944267089924763038652133657988296712479628785145798526292915482811057921271510296876119183571961200976894708110392411921987371464880142191604503135597881503544630008891303978454717419197990309190856101103220339009236656714635380704600105535481914143556450920001104166199799146389136355473065224593241750998705316891935315634242344195866145266865622647876183981817003758086803270712529604467618855618118720446531116426360377425367624778860193095110103062459632645015012326432997752691479333028253408576864775485521304853678134616631238234020916074710533770894066026656933886345460024308961389582733066150649246412923877455654639730744058105052797492936822672851053522199630733044323630644784774059004099492649444915215474559089775569112220273435381774725228965958629756996899449236239722310184560327281915242584216143495643915841123208369690729353843594781621607749689774187892396661115857569985642038462610903697935431599540687563912863386179805114175170495957719268237728586386944559736436618151040781748421150827516734837165013557640431540759720018993145182309569509656670171118914471623817527142301601208172346523024030968589346500767444153475088120056802478414213947420763285261669094696552201276203806568949005851927889696268721140851399099853411437123120879546031163347973062413601521954063498290417980588992197373912774390812009521237805757044200369317406382068315135359934082098164944902211668320066029620403652857799643705741572485577914405969743642757899024692715183159056111934710575640461339625845723767646510290249339150038768036990474039290343056192930840505956233403399188786711297735680716333269507193463693031339797814563726436567184673494169189398440767527719412981856907763351756538756033979669984272429768962794412235292113730100434981360283068806024248756625747775398317420488819786554388734237321598500915651682303873254665263843164220238649899437105906877002155741900761836640235661343552829842976373456278093906922102787977313073835208492849372225165877609827189081182911966644941941005118806720365829848295714914829964627343632542887185442146858826918514383575778803168461000258095314115161337781711910436190619235132829015411992180061836938812343655513646772026887728936295569913525696540632649805702347729279371638087036486503565814732743729942319942164615860081052012735955213082020381806254322875157236820276218141067177169648675037715856713807117692735877535797356401432651869159732054996609153982425336545589532300788492547667135911163254278256636294089648313041628386291880429844482403530832725251152541615090594449013517462074861008438273393980785961035381355488440451691371157424376567888850164374636396861264539497680892019473911305683842640868046112020637518180638126567203674381829546627200468813046886521285849753385394033911128242253937684891464486036370094023686634675312716643583073413387328978716557290863109005152734407975140424272736014513375584872135169815955120520877831763912132346329332884948640001777193089201958191755657971026910898452365630276456472794587483211433922759877746348708470666392515000934555477115779036896076167404107343357735037628328964071601776435410526376572079875009940630147988542009593052226113671511847251153652592608201396690743232256760566583112220087998565729961161284160770662301279930214807092541589436193444889977221190651582054915338286335170155372674382226329872056652229409861066858248355089527758423212495493181864081894204883632006386889241429498752268024331991082446472778475643153523764431599590224689228431983601076342453976737208083538139801596661892633737686366691678994992361771792745322548538399666758106334060649097033338407584538589005638928162566444315514291591906194636961457566896834854153213967604814267370948182696056970766317841033924852410215793953903260690122455485201854784001760384753394628197280252149862878599396847362120200208982799350767892984900296612495200980232188438410056704174049627639050724968733323962967458332029310196661049915695829414717866818183481596687863833494371516805743439465182920956804610299005006143247839378134967837380677841975175108697460459612316091894265467911944374749905199943699394628882801734160988643049137102255666400863553425715945675070245474923207510580604663433780411211595179151251506423592839735167396808207954207208856922273183995816904510399785283330596934977981298564901015834093274369950137368347949602360441894178295225166614018938669292705689746890314848065215701221793806059611741429722578428547737734604153714943279349171824440325812160193025111655210266638917703703422927093560145557634979543143703638239292731025674697030713975338235699427755956947828404805597697336572143406692363023152553035530949217818122194686629574284401955498214033338563046272817641155552693648624345425782769460892994492794303286267843022504138942903529686752611254283723965830967764440136473863268456056739417055273747843971733086054797134837689031361877242778994744671030285381067606393627745289585856143682350550920667353554790064249653808333036528353174853164585166675168909022317918109267714876974011712854535713968534938480754374322211008835881281567236187384929193701584369358027822764559187016342426636654711211098981110646566186114335957103732787629433301758607361847716251341414268297188386566891206697980732708688355170852805052420476077735047735393504993766929237717878528591326535035460453472615903152741380560563380689056193222404591838755078313713514732823594445682384165414706856399466815013847713231377700493121790502843481888699265691047713815270620269781104753938379454846641152113568537924069150016101111927555515158184085830941132707570345061552636157114858112799725582547781683481754860067017408719887333100750662622679245980568715029265133376531944120987490345228040568809576414292586731374697940496374730472244185039777489218722987346168900422256563586464333369088916039104447255419219661296706024713712731278701950763162999278293554922191172523262721834047638830892468717362431432393749925042149888903054102736552794378895981607054866604988624908308790461065155210198044042467256852020520392841934368881251054197564515369420161916005937532487658796394752799875362578603428371869217870475462217637345891732872292564936272308308287736953741774802856318656936698673809371888228901708185376926256811922965254989438717333367710185935941653406508854119174645723036580345732719488354773356831347346122429811433645775268532667742272982424198890638928729764965533713938498868221319726010942529837928463079698970369777919153159760671272620559963890086198698451957016001916316083000642087123047913831325606261359814299645970193947672233981731629493662805777329429039924116466584769379342148084401114893816183427593117599878290105360452518352158625170434198394450324538640504709118606494599479176449910804448045870909602945541886367047425231103889685441062971243072530216163413574418268036083214193766886305558954818750129864833609481688998825936482120375665860298489199861681970249420888500316045951743938338366686749638824944931108731856740525978019064265767468186349231129312078520829228417491444272638529261395322453517594775813935303821576933723128400335933997733122551566854849565818474760428889362782423088372853036897118340754424493022335655122702380551452021387512475554413410624113787800024658069574790665161563453018288327283900696094316865304041876359495801243333179720469618446660751362037912014121018429574180145090610192390313114048066778177364782581711160809871816560185330599772924698049116177786365298766757967894461889577133188350997519776020816219456078377805995379686957399999795321093268486519627655771067754687662857891758693177456796941383369341514129708300675863563054032093048671603276018353282057136798931757840301813403100733877526295209530521405427004201637879950288325567365438578873865019392039438465614759212687531058621773790788255972435174224678208704935788650440927675485701223559936405685121785011292411265898430111114824735887465489386895571302190127510923541836736248573136872882206607940721308780628637749659487046486574497656624459344336693935299455396121382467310757245495691200022787335022232709046419475083981059446859294276067715297796141345101178789713500747664486925216936333190041336342214256875857089679829957698872284278552972781045406802159620791422044724357139856033906008602530316117451599168141707473484070307625069346059579743283802187371016572046108285055119448057917940303432902422973889792862761993303286791001263986324086625870494918793535546750583089021135875842412985941646860615079131257238751744061341843555778448904766465218672020763636165948459920521024085636345807542204382485463635566254914059311228378945830575960556318533344094904546538380181350621564956776370488755904791192567474976177613521461839864324646748453406323355490514375852837236953072936239743558236725734493366384741998457738891237822093779506747573488584802968474445661077139061112117146810136474326693803360763610056152281799366398701414820427681634404868378112788640204755869381653965886632238547470891719455149714462093301633197278425983196055691524394776011422156358786894097894787241609567297917903325117769415439990707146580914385299634655893660140225974681070559077002542669435330162833849681537872699388636845074724894316667729690902657592276412077606700337868160694096314701345769233302263244108744979828441503739327862334960341452523946016731399750743403364766272176391364811486512709672280155938184446279603086549423575395044934844452495402428678601553595106225986609251876269263809959115978319546014909536405730514042258236825436367883367928584755350488621276032683296086797384192367918325859497678565332517225761373941540049594049463731749141078207220960768436956305095685936333515446123693709159059576228841758717938771407871980391429653643629462293387856995687574504998756176789184956476963812176625129075017234455201782462859774597187866496741105404452375045823628203051833505363441662737564207440860154554604565431868388496822603840116397635617346603558619723537244818574636203280187292317771626989966402601345339332425422268534377153083267990513773325274027070244601237360580926324984589783598703062819470565909445131156862877837850024316217206041028042028785540429091138956340714880761712599071299861427904129783836394889241146567565997395108543083640282426170393429484259411546288955518487038218946616646938517209596964808728283086038443651654040018574843087276259416136484714780427547491187200428484642814708748826667991734248102809183442285827320664875605968340388441414957575369593321650773510293016688529214625116530096621787164904866832899710870370195709467177235296541900738903279466644969977976908461508741658687667196717996952858695587117282733971613975217221244259732627701269952176036723250268196381753924048603747420047724320339736557724258380173893943486847210249203266094082330960550221268177510587382760292662736634950547562815336272700459562841899584136719650093520578006474755306282646215711555037673411383960579537783087815800934729923296439063876282362651130018607189720935400560796438397296540252753593926737188501649068815153747385294569207569073223901233668089795331672984239184391775457976598893057607593651814683726883243067594019620470085562750185014716601420153212263592114891710196076530794936588161634442626105802099380486330407495792485911610129785273614411682873869741174613579572458884713332594493809166127074728474308862790991408001714666072437365423272038778408297666993201498334951456835396950898523780671476248213614445134539526818112985550290173739648257452670527549268463964385612770868257087634065769745968221883388171764453567894460386508244263270891980927649284690921721309738835952174015501255922146046943240469419397827813786601262306999772802423728725750635460228562529596645838216456937929168482165588820860437546668407247532058185034480548328542475699347604205269166393719550948024214427518299542610437069766966543083712709039581946348868981786397710191370571706702733835151790647834223097293270271773228276375991239701034681425441880322080199444733722996832347002641509050791852263953240167555669194791353473046920035210726884708000412714600793248396109373910506569091896456627488298777910813353774709326448451634887613568014227213581890409599860054267290322121248464638279186508872946298846422385360265801517697908942409520326708540935220748451008098998623851523808168680913249989120216416238768193173774993779695278759039969611949291791345653561789394854229115857323899865978721108522244577474332894041035489137460424663655051531106667601292329105722654854146814175886183589381388865650590923167282598504943124098033635528540450352601861625968227890954055869696006762771341564973505107061088524285944076877011597297761526207124861157665501918012449420159327198417443375774583284209931260501779316362922628401744888670086103004431400955113476070494932713416062071619415214425893300838736928426339173312343137719633689277503780379301249968898776297873869827494128733252417486858277072574167017697260952526159948762147346099245199810676512275335850046594127036999587203520132969807901063257720595750871721483521397272563528492625059186273725780928782362188145475663752771459330245122090050247320295432832160004047418956765804183493753736749718280225706720901234739760147689783369796325938061048156327524842828884524887190709336223596694422962114167051997985420604978821532576200254910325760323775397968634782850346852138496503055444355535044070721431115269477771209482049552081732634900173891042289823439600590324879895949685465005150789660040314273679777985118310167181213607599318064167427591933531197304235455429763560107524814576547109181997861798130405784343246164296298376324044447761784469494374372967250062371749168733518773207057274319069910740660673386119846552436695721363022217466109279312599077887871953012234810572081503526024710215463017634679979302360839701939767705561378458373709034639618153591756328593727516056657649148856755797074799836373255418103037999856089220570205661240706839101976995905828833473513363717999130504102060778176261487703460846149338332502501728488586240522247118517922918141401002614931839986598432387474417812357804424347694720456633601776347132043410963399310777420807662717182864530850449374693570057345900415951266623073651493462324778597077587055915430300050969016439637890195850351601615575230291052293288297565844932254500676643586870113492446952186883678706961709013050356745552132168563525554838004548895296335249768637202464212392698744462257352091262922051467612893811057950690676654671059857744566896219760997311619992794040250474698635748544945514537145984575776894331546805468917424855600853835431233650452833140634733089715790398421337131648436689725889443760371838421152063759652956285902603014541012528625296840348054334729330741830471573282771044126629523492934562016699473641078646853502783939901046423771502857902167746884425491987289248357465015734479029467117555826787114096525730225688047323952418034178496921292923515591468690538643387801947613638492336585901856721338960492399414058184138472807169824278035306658184480238050805400415005474359810352502598004858447613874548052678597778593177706456402088176113305052105552083642607270427012983291908183707540328539140068490679324801241459941222137345596440857161406794852841679334038684833825893428291543493757958748466560099140031333423711394089573556841545988865458937094840836064856759555108988094633777270898026615826263202576765286317124080531689724913813728000672755842820124218850574370090603507456528631428938810064365747413440185622319406862743691351942338582297038312906720141218435516055217902754914596549315785248711905594054149201871860424039767831359174202283793749010345869707254297595084308279098729205004837343046761159853777404074552273569946636808153059977454110551847728852091890869399100803275557878583662440801258702715632454228927032143107218456026466447959922944102752842975054739425935505282324027088405503953625408714437392504417615032933380382288540610767944524758576917620451261349150817350421077481368455347858271880659198318689482400579951861812121060066267437598886756166932077069332201132812936248630785492804478301846149949796293058089608831963098710241137849581764067743508576091949141950475919844937231296715927186642809076434604472885077324692955704994341153383765979895159120508417524585569010214737758346093338964381957558786809718052778138694317834751502548907661803037436914424639138845804480583063043274294332627258259128349516039443139678149239313456926597377952852840848236236401780863073033315693403108177127432147892827943904920295279031872515945020250440874630552205659860368001227949530324415870858810093966335003284705403555247146009795085442454244680435781039453904513903572654685798272728527914464706673753709441442435110445696139327801073731188110547431116120063520689132655481184484704489353428678321824721792349756361053762337141727211447963264837334452775959578340996874225766083425945048472168735715929705389049161354701703265211400838807070216842850258489925332740110677257404399598707120056295206438689907333880632380002828683887872577062348735325673623493302918732214744171440890324893349652082484931622934853991986861175378879643831850066408707041256722380496343482934446512004144365291108110002774782231263282562244102633335412754414859090169164761135911664465670505911002012994766193562411803547807773019524275706967413120476540490657519754156091126623087083380777144372822866720145061113631503763960858216688639673570829664532989775019720090378871686201842201855080578438702977274704095420349253153771904753104654036820039968184764242432028275821664556782528768534343874521321986165300795595498128202249414150654519326897085723553265478208221180456022644053767545303749840737673875194403950795377640593557313478786343092601102027556988202603578927823997079648648905019929854918854504848463924954982453966221227898073156271181065654536342381201836219992866000736624077640618361729125259745665115564024283943520668530005930414104240233725674994757813787470247118067404873740148565785564198928790952396393521028214926585677958640218848279955235157973059425808847445939670766620299868192607628917078740263416775770873388352646023065565248008250488193934091285942340282848829555047965470130854587216075306711150087724901699113031094028252846237632172641223395678479005662713142998624845636494339006574318582040613447924748773425998975488170775525156211471480267229335604829479655317785412539907334707125056592366131764180037868371202937033267944395726973333656340615887077920576349889480470547413633687347731024727909409509247566888636895410087519273370461958537350234756726230630194150699369551724629139743976427919652772525001466258701274808135785881147611906943512603391600911660275204032988237559429515677736721481184829242347798713430849647737546639551291884294523712938719146698391831467728849953268752515440216246256848861800756553376881520715722225028090779458165189226231449292163849623185210161539210371249269388915265377145976724448456447218494193639022272831045389024180913489711715331024200603215866794685341164359825165476793351938944640766845247619931523699934888841505716802092422009081943240800501456683003876337872012344759397055334068772208942497932936292545658453690318274893553041311152872742144702606911458164981039609601973879201656741779337974765389610646042529343596922243358172637143892635454169608859456036609211101231546767316728924202103566467162212097578023073442881590337707883572417355465573137716627835657343141069761003640564651220745254136584574230571192343432499876965813287406228596943232609971725938281140268449599136957969403003707601613187437640716069113069825309561605240253188389222107736100823090055524792201543951058923317217939644336246467382485954032227022565338354025462531905613384127575909625262515038467912737019677284709410074012184273322072793597397586616031539021059233594222652486106738959252672479212854521678641512904318579220437982623682149170394816360251448904941925688482817470535596799682874935133906302238443295435313259698229595060493974840189315877529775105542592225213451754655996753207358159988239960118612407259010066187370131726037627374114887509947729712371893771218614964710037715252551486901759267431830129883499832079372844128746267849144522100693099140934385300112577800224765310950848684736400138311304167685226412940185754027717579436377888624468080919181089878306245950073539761478958265975904070642543436420803497428772158374113379837926095495844072418927132625649824971266279260979262465017291635164737666242480518104410414949510216074470053373187508071741105204890632411453421419858587685412204925110420234944341662922802006134673650271793484561490468260633356057704778511593253655851384635325310626192216851224712172246040735730138093266986089771049493439271198274281335248591044265605284879620617960280075512691034025685934873705823175566189906016213131857014276176677515660931187440445392399124743378288541075411608616193853346921441030433198113764017221533902014587367539328827708785896393309057494545417184596162830463771884073660573889095880952174557055168059486598303094314811907745566788508002890071487840994282938272074996677317446382550950927309743387866600781894272938005724990926658963867619393854751828127110850714517825149426842391048185544697216763069533687141364004250423718601699867211605466584330798356740030063492997118309324850807872685283398583125199396557785219526291826531362589688895261051348322266500978917091788098351070693574412722743498126170527568926770551720216797682333253920854302189171279436612595605224938062327900378871373609226155971406347442969980461726273359556341418356708716761280970338763198987790549599247724925609775350875627617025522831717874436772251463098110201595140924163871902837394798646011486234993129129299908393157979627958975638772441700362386677202093891694720728888162860084403134338729598907890823229844908819772551773805106495475475406885346254157226227873676537847225816999239211800505237373291916901197735159946317648819324549512899947330690243771534518860525010276259562463506059570369560421385654138257680169489316854900152461237718385540295988722041735397848264067582205045022967158923284096993812126467299537221325051284333709460946733038368983032450365815702523014343964677464717042114203731734963035953925325207191874478666910191466017436718990167075547752491967831767482699047944423403111005563168224362446058454335315455394152687384060583108468047897467405367363956250380632481054394899612084856616995439457253348183515891118173690481585483322684827904507959960390244638489065403293396204701161489173289904553189675980521749111424878050662279469532421906273752191444918157913523468163642254243016417720321897391342676745812984368179079957977366365847463328557519109236747878056224700532568118638471424814275074752057017271657483256577818133666773553273196451552366852616753614776967332445152346433178992266455111268529784352462380540076555684335453303429110850760581700778968947580938096657274808977266421055182179080885113714686028788975222747221276408075736604648444404370322286806139667624467059938461638915361461342170326131451643729693680432802431973659733952306123283294429154889004200169749684350632538679335364321216096258656253484254679213872085739366823480885758759171689983320866103924800696627055484066257893657684602065886815375906059170191464897277779050987797338380719350468764908313001413130168688874405709020714604326785467984010917844687897316899949135103996267242971299977122975274242279521004566765508963475264668487534062060784666280244641851321067486712836319440734153189678833563650939069302590332776065581375233280444505184055427125019001592368499360139287195528066420426575270051513980001335838508294939271868107724812677505552662405740412960995247896651278248762392611797353173425851696161371944788195892895763224772075693848233322676182239689512811276728424508652246226389518342656432762535203272896559109509404984135101611430059791321373182220387437878709325599515822133663156591902062966164196789221342627616469645887669499437020196509435052191893575925491305430560215621422860991285580863496495355896793876709557647705750996312968779440557120550992255122044958909251756332325200912106619512583073676752680416867770967638354538802807830415307011958623827787512192103831774500312835754278751476972981216509796600060527970718058634826368423245847686849467229381953098810894638001134633734442748437889188414699097622363308205469707697167343154604547415613634985080742711822215845505052349688112765301707885113286986379471480549044986202452378095923362427083873807560530464714045851619099966111604546451683075655298430679701199223623838794896845509606276143586050212038638087483365975540587294961994232150576710660156546093886390928692657447697729444856540844780288465425646980155148134169331108787051595710052424298788698174397187193894126451742480189203451532845137100005345167979821832941542172352803490711881946539054061798895735972925184188478933407477361033723210965514630287170967328867318685068328326924999462969222439685323018250866375143949854034267732389364656999421736891775156491233523325727911940165723088555198820474345013821028030609261101054376563535796847680137367198616781614132079212727531895941115920977206598369310937550246627831760641527423766181225313694556779936619327955643733435860705172425269837720845542264315045768710792198877181962679487217125212146980947427259148126522166022627806058170734097992046176889475294333565777932685114142946463991310996131637964987768148024578167289067738892514418011909837599978718224152263624534082441377202972342548669670525741994356532168279285435996468277835768204771045429108159209144924867469743386516924497779179234007275865364019873660899201661545630694582666073619170200279644169976264390451318551689349353921460744775115641978013877238954143178860334765887053171860598254107185022223214341879122096066449307398804306661797478904786931002758454478386872785056363324715035537821630555543777751979892812127059524328479562488768611610254883733546756460598595227797463281214977046539967462246163965340793848724428054669168104809787235376129548234475084761048941037987636197214922396755179405699106816191511647050571720910071645845867326172756422314634066822568129548848103127455590987624430434060051839781030674640059557751716810537051648515092651380885667954107578882791641336279505730189088807451470916031635154952909370876578510837982661210222086365733135410681525353734430872843454526772645773123980205405454330738458071257906946523463220737024907452447185094487762552397914973400617990689046979517382765590011895464723794351649464869997925212161092923772673351787113261967782665426473837248515037335359213651603634151699108510675321793982118001513849545361525641062087331797395976871671450880191489308001556061298177182261175374140855254035153778646172795003228087620977231111604432811515958733893072956452768244646658231869127942265303176143336632062392215881591899074599514015675336640565007500383810168436130471499070735434617582264748359782634168872649083482447347825801235313154935784386829078459698716752521109128647628050414274866689660299777675893519949898460212738434303567454680940981110254602399785341946475398805603335408927512829752571001221107033027809726813876151325391799740595263095745889957556523921492342232380625368359111550389357047129728134828559423932684799001165173065190479437349836441598807184488220704080993570891480498534569257390789946140902516707756792955861751065091735182293714840266074522748268254708790069858751607650064875995040147261187271194556609095910215549107402990078671415026139307516495128547173169385670823569429991742843028597087262628122068716367320686055549079722288508877880954245908911398675866586829748216558866345395149952911230446621623677669230677759890768893955195007486191476048713983067247798420047800592421783851369738229852775369223816367584094493633090213272739577027697596856056127281392931727346890795347318962544356441025087680702453663073065272180124614912983688032137574645037999819955979155631722245130684617415642699798486630672922725969445059176789059029805058463716987714982184765525205452752748375031772794792657325819460074657796588516388534175284749941130593247935869567380186638642780540785133812645422431297330536672184361685476272395564892073239314871717301451282568209519887618121218519691566557966704015528865530040878068143361565998686208888164224641904536129232908755588955005189104767997776801155656732888048708789248661350057419219464096675480736889926812777308922014943817749920364989852593496364330563824324128184912363168174747340676653842920976643199471558802247661832689048844024677363685551079164734805286260600758944172861007584463278220417694196752782450333504482379545979152147243978535306503503771073299449462341178513630280801087037393469210829479487278744472763728276790939647290866103562598250609568812559574662755986309770112905623425811042315162400913841586921705164442737493218571851974273426890481471126324470936262319590413852888396610627045274495266264112048213074523837651619696970519593689155993701770487597738230597835750496141528814912441571348971573345565772468825989117448331521079342136560636316620050470540838236988277457773368220708314177094102391058068574592768939295519577126821135515021085031595692818359251951183517205772839098201288116214404750679030462406536123440105832974923933839139973846347635190936653996203380126764939738113116420162949953848467376772483309678219953358574161074578407292894500617163311119985147003475670806167546807214822900958397712757694563364952001727238440301041183165184838576793788826139936683653017685018598526301558443970178161284926521674593957943548354532863688769501258586940917846394127140962685369029574448534834121772610990300659276433022018986260708908380067599231791882742586421933500696643029551285529895632986388783917418717639070843434162157247735795313535095605919779583659802666655911430270436494606944538551814025465384303203257345232480158040899607183750919678342208885674340850477472550400868523684578773870625877572548557875164739833373970522238944201421455074576490543994383999061810081232972697731830481131851840624002657147015368624976739998987636689273548871456961383408696700933288601036988215354063055018759998272481566482020769136379904602496509889730516822423042740044538443512857710894587827924023762119713301373148367634589151813343659772383958544771721268000600238510556355704996585665982407560063233702556291408827033472590257533356722348563475429229478043340642153217002627012415011774804567442729198242091039454005720711426201790220302312487003251158150212377200216537561363021270826534083737076631963568864352494088297428959317286342760843737618936652436787842050221685113605475380540694086348571717585775378825099452666481331337351122223585828414207156694126715929657005853532904845998658622132078098718748757467700904142296351009537860078618250275099820314494366030898062544912085119869014411168144175196929488067010317480614090367629952452121069108866415221919058889424390917715575217427173719476124470516157468209368058108794648653757077797338585613592996781337005035131543775634363017662703033541177951376026047446011013156115331876928786710255361899429762955431905441903011036992872175121813595872804503045566038002346320876842056267437169330191311797607721322468461442364059369359088143400743979720665486288345725577651714412029731679443536951570807527909779663221386403483709162041555072137233286514407626075889625609022963957395180697637699866265121037688314131379042154849880409544800551523303859173284599015680693659096409739504096518798707312206044494756171862588823928971909205741033893241195710299259572714177030181403275145825787588717665566636978511458428755909760512614871186053985145535753223936795781625164922909449552648581962020110551536836609160362401169499048953770656064365444784165940755606121458797468416926766939256663326024632370673424282986208444698895759447493069515115828835458993970173295520075768686059609603916286659592943964642033294115999812149534126794774568707651790041952173018386000787816640085718460442853153308433374473570415646720149931689303877071982089579496078684644531043178996442362589299898213113976649960789685861464370791065418490507581759420779850605780710418253098567300899839224184218503054014345570048281362869394799849228572322085009250237555101116286012848928210303237168526575945304922971521600111510522854635067662901873467395395145117404315256902202658785744457220904983944143584856665435677443730136408534227587786896461032979443610235857179844036430931302743276408041976480397511267560489593943436276842803930799544921009384190634249858045088407921037508178535672765317225835755723394268683697753270404599938797059101848613288530462998498667518424246876283910231470303291593358326076485844669898147112601596721752080843099674349042995282131482154517161609018267568011025206011716794121946785075170349260332790745094687528641673610213908629507532643535716481434710636701982538519245015283011875407517233102421376491515746711368227954952520335612138214389690956947645137047936912542843875361521295249879434393282323291923096864318303097634996908270651250522975029620224006400010249061465177167125080158532449256610709868430899039824934895333007117064184936332393412218925284679343500987478699105158212602349643448286705117913198329323836345448668217004096204038037148632291572506910452072036310188411726578854401963862440459603919275766683360616800981990121418070766027542124361547964936219243732473170702582892096912988629459633694084895566867049754023285853619274311349400457795762033145568881489190819985469971674589560260164475763359830180341485799879040469920728668857947340886792402738137971349928477722418140775229784930252096093033747088100464237301181899392363767294671099828087709409788019826951688745820655624765990076785549209547845388168820252179745460658728342930985243470110847435910248708859225133263161365107983387494377684081308584508348524459790520277455924164938668900675639604037161864876511146771644838929239591876609032480387694267871438814044654454191267099763729138053906231009463770373119888024292581451139168389642013459615996522870472840053043544182042194096937575029690357072430121343853057810618106646694549656984499229342254124040513440562810163895712959029997296346604636257795627377392749243726672195613806460535359848628830717442578278980328061428330646365223677233947888421991246871032246322025564447446747630400616967333508874845210403857610830346893436513108558919793466819220585100159345547372399202095078240027095685607979924935688282959973327840938375116281008277835334249305967498385053174330485636945255549823429769285935957445669803561079895987555062171376436634895690068139010531407793802864227365029814129860845447250949072833208999858668006978010946258771879213169304683834246400996705038608588079841090306782306029978159293925343069651505128326268152198536723317456802350018050346422166199291021276510780169909990579814909831856703211926241282823541917848084989480652557563519609503981356291698717531850726867962774561054721188477633649459660168482434217298867911067924530743220498237377884321694094625056800280556568533048429702251560019374694361727712509567630289541127167094624104416819775679395727925736138485991745960268696304921935309843812254903167015434256715304133671741091768427223268843445020477476526360889049565625609233125116299159675968544667658462083846905168904090300099693360078851703662145777260059059338616411729979758015068347975967068317444822357557625197894914340722907564348526857981393057949970831016020556344326847213002052197184418359288603223042960041711575939310689313701038198715092246611683659594362810336697435786407594538644395449654965545339969963371138848908411700784371551654297720172029558709181741025087582602551704239463728524517313403608437112665466553297401753905792981615751339555724707343832925103317799554517813273700275459868466374446061702305945142767818164787159047927695297473324469004935195857195065443572226818677053227879512311435787102922437973456021045680415636742959406982253553153280303361234576720973650628185812267302064569337671154944220729000460263002972019823777107692001114236205420411806691993715902137951816163810715133947519854084798772366767780751555834865066115318448800741665574812598675345634461323351161916739098717833361460083534237554287856056339440918484390164877310346130314013928845313983171689082191049530198454076456857855492415882258320121015937138361948859342484713072650164869480730773414180721255621260775890987273496961419921442647638294460062744978845733356557831372021637586512491087097302008874405610491478205687253646523787272909290418472226550872409916671926800814310291625818555775543063636135306053167068326189970546740142209062905912995259409587844890461765045705995671885130713779320915384712361364874329190800556731822768659844455643174137320096454984032955562798346557562592570538793804132880995484985257067596631172644374980193629060827276325261105615145699082141785474759733704421092587371203936334993804323471685357503479171195979120213759499849049909897447213874857524364710611740483486226882796082787529120457029075053285254035469463515996639225120707758557345713631150261177388603611285341537175363549423460546037309395414881708837599019515855561103139883041966124977939742397394919198623868932546788673189458402045382530045403187820420246179679876398441897002037257106386951314042716460284539213483100608281421026471781825212004286724951881294014330123740383668308990090736833304643354366546161758608353753316464984836915789139655591558074575670215400654259865998133828054223694230129122359779149214588468290421453831618582020514713408242836011038754740338325303166890868793083369913965072488811814080791760562678189450971848291439187243813087950763351148486977548347986510239790030947503343144320233285446165629797173354581966902649946239560722684163149735674256135547494268809507263287256977731302604257718321399742000412245196845298581610808868019788460382059069585201209229927802770237548288249839831109902445963524058201305136180634854179760037341492926940168547853433598489384038584938003429276333419738727035251195159420370780128829023603126582610762768667017748160002599668610352993425709014274440173665543542841729436082961040326813435561709903798221960589854713936465729252545437753115843867904276862085039931970432670224085204583968068205573824758612110512592158241677048872568717853194305784397086211705054757689108149309031068957982940335691560156994361130522861761615927545569982869067147273723501842065375364226015797229771749868783431112200647061844036794223452451391571848030360995149020339728978909098281881993791739455919540855328994961006984256008034378982228848504352622626060212609578069159836748096941067398931967311836107870186485598978235474412384827976130961876675717408231993738155914515930921466488982990646878041044386215257213300644656085466718829127851804583719442712407878376100784130458035284754348504225212675381287035571165525165669850566140279973553814776892536815032068852088332689457586984319049051180147999075299266625569655456439566037931266438446712516599662960803092739594291458026009794348033378578480083584269275207514215001194289539049063112039746589065205196294819153951514665413327713815979247869266442259192429460157064831900537256517752383806621318146873406338859758007645622123806014812072235206696698953430698778419046914123226390687827663162941307819668388131906133771273872732649226402439741964873802768546610300218867462679840549771714810439303201204184478325563769665526590916885912169559315459332608975670620313840377563198823828290980935149751757457229027018599883873825413170716228697383081827183801166833453566175019842948400055580636302427366745806581860719757302114219893934306738444709951655060844230713986819155276289403401912343234750483328184237058282737335224454939559720486515132999001056435757158709360743938110821967807081053181723158839831326767782507540374353860994001413195186994308258009936140618457814535722779953023553494260980160644839084826342660105308978722977660181434944965162052916262350519851198391902810105305006033812122669706017574916631681451677023522476525959840086712991454695091080219125402362065506699849695843838185545639716468830226656402288142926949492014322489002046581254380745340959132536883392863351849482310373261424212317389145507530763773502231843871007930967241127269522079753086152006281969425326777227727215434470828764605270089866846779285625508073311014984073381114561407638659203516858332649365270297167607195944395878380720691985881827427222115660719091752532472334544176412025466260377130869113803953143759511035555370016498248580476876290667831954566378161527786302518668600264261807397007185786112375677828921974424182900474985866199713943539091515502205215437984233027712304707389876842432457098926429792499364051858441031802080308258635602699293737996665568164947014482017966270253982044190458389103297362610478238901769277639550260946936801265585218814125265942736202593937727333323202556136875649652801640146798548157370864018739616642610128228953831600156171351494289108083683302309281926858870462162902949803968440713677655066801504977508364534297622972446087506286006657956240088712802373454380583814656640137743945079194594246496128965181815302045099784780924080265110711685414211528514397150579595937508875937768978834499327948941768291061264130752713651236919384758982148585454681727598861212846794965369959014457595518570567341014709858944200299554269212900864619903927773792477981669499289099850638638599940388863012225015025099769972514288871136398826349311782519623555476304718378625281011557115743922487657012149013617384508787978705816712287541302198062179986997214023840321002654268313782274141927295200725065838624897535628777696906029846038105717612557733838683013811678839993382985589206530256474523148966410975452126518716805232752018718667179873480673593358388423717405000015607950412376581919720343875675067890228170091400257757576229277080423299335615550159106385611246941408918627780488675450458266898467886254194728799801977146442419963237113287399605483300114017425183882935572932047953702353332084923566263243647958200386316750638260209401313817169579192304081843484288216376306969266398127899550970443953068932690520009033802486410774956632127666107533748233137541645526295961630463403520692358767647700142083457784949358982390505233498757651394394607419574296451643185859493482043354487307140246773971533140287674188104261423722724648360975016151838221504173260562615169663311378811525398452964176340436848607200076658157757144472617397271473321094162679956203446491600009089148737435669888953209384768709016527580837751945073249956810523117542577065124801725367414346243717131361214676355149541359630516328021118851431430852593687141555944921891816889096959903188540875688935618429571096706466535393134463186412659684226758434226086250942739779365501382346375395134840327859466227126223343634053320049014580998222446184912515558588512250563215750576681777400343562587160324704664912587707114562156998302678904358391722236150020337521824850816994543729936134086264131102754197172843742162414255514890376437739744633352793521436005479326313748600936231262669096120236679462380118610225805308372271260382814705097140627683661300550427998644236456951264055664815124153119326450718461348866994064689294244191539006717067881778961760772545415505938497380049817497831780098715972073439330829010463911928561809403728005878483928222657052773122806486593332918697176655484036635974985915877762512186821668289527687479280004084353237872571195891017315808056160212004332877887243921487260533268945729561981342756320862352234423819427990454081199101062625821414188831334566964746882828184614116207190930942257775622700560976448244322193606965302706139750804142041312078974728358546093099860756320225714926002951472032567143546283397843276872948243859656700379076651664601287805689946709685760793339115900285566938178711790965453179322437574853904925962169407291477359018086703175397897932779787149762172404805728444919891065112734203787329729104754034749527639584206990746494887176274324896201147202355183104521769363024421155998338165218492314529628876727719410735250601234103929315214427971455502662981057285729296311560535639153908123582085821451719329478885738304845729234640489168991726513069664611565839969665100911327106667332813666891810504616823928928537078257991992380274913219016825865172071146007995232452071569718391561844880776968013765492589890774172472452746017473818133703937837969349729018224912777516904669886383436620295257100421901811738946517487394589108761883578469111728680091286114923472647980981213986999095562011117524775582055198933049606877395955706831669130772766293646463111215902724957576002807661106045378031357636962283596351898797023969736189371662682253587694684576398598201687472002584519867030813506965734610109669306676313523171838203486030389313638912145933031036662993609916477776007872506890189243565390207123539001481120346970254655857902599866245138772404925575866404736016276646218777062837074426945615144247954760440399445339480185017478460539708813853846391385407159881357729821371123413679492952855680769627742410622634893614812194546380821851032624458243163847320824071049233155597629196873643399449594783542980273335347572692055345073389437710619689843532959490740179345911475780732155717738530807103805980557410217341420509483949027632909853905869336517963430701338636573043533124703450063033775263015731682992380313553958832613670692850482788713568579066278740590197365337223884308597085947729691391475754186609430761937713354604892853227589944961261814730469838302980065412198491587797322338465421253891049427344765029798140243811460278687926827641333925316769795039926891020578736365545056852887507154320279427459524864447824361853993890215864365761789671182849237393198742806562094140893097131585799632039385755137474009118071414610517540802467672394925912757559944278372488266785565689537981076681296216294767817367574680351312308927746115207119831297450044669948774513686298818495577191201078907448644950372859660303598028805427232171373523175193409796280692433602755020184248560225892667757560574081937862021979601023752247538388478468623077713107920764099996063274612723035964191813160363270875802420096083164193418837755986745010108066438070474244180094012436133870806434851375802983594408401535815688944320652390114506789125129602348534639154905398876352981825085763435430790677990072605571633776453615737626023480972655971273415985642671677227144974475200444514612683587204667627682287266356327889279362869947455870572411632232270915311313815797849863832130186685448700067492963965514166031567046208826065786830184786932655452208395010809927829572470486686589965024333829635911840948867241786925654397124781801222900448379303298906447054378436388182084777030990127112920469886846224762930469090722317752666049402215857953796735511985758385448517188110959437254511646878318546347112352988426724281527559615865048210173200479019231898366462516214471857489096269011172312624431767753936962845997172319623217539986081241255793988812405471628241812404313863996355980015169913125219675905714661917410378206239082758903726953298560285568452505842849763484398148944240338909428658371670406551956587952874052939980411752607825301974388749347264285181834169436542406899394132553893614930944558670087011447878403100609774436038940727170074496061789887862996279286883419004688853740708480916432133127883197080641400457920313174520444492399045689860964669665813592104715633812264133035439820899060653442191774899748084392734892046320859092348767277762986420311082957969584048502663600980455403674198254117218755677704138696951184549629865049931045370838577163406797747616161520317581031034146764177172852684546483730070843058949967870963466745311794616771709961984544047323614003733112582877491876806581758606230027473001573073668001357909864906791769732142420743555291075547310053969576764722539695401031082793196646463154875119588583345295439605820506099161943651719397020799580938353658601110755443542931167599204544099506516178622884016403924084905671351337734210515200108837440159614302490942665693789012504492869529972733509125515878788552219986522622290197423932874249724633275514626654079154413939775009990806476058939285626839467456883396645476647523803553548885609450266313606669163402559927818722930245442729376186241729036298527146629373736627189180550296973178836165555958342655745164934827571655739169362050110789645514029232814929149415506923566278680858137920981671088849353990176535668944443408002195542337887392203457765105713588566210363234854640469510260959493521809935523759986172069934764471658401474982712278709928224658174549203049147850504703288282969486775155347162403172078136198074589751001758839408701752103014358572460985400462779240248990125088545656661155054357342494275049723819034983377755247348677474650145871381643911883449024248474935533800075278321538352638571880184582072704204939523615610307418848886939544401036342891492633221702534322107210014185490892009143743558265619411090955407872617893475436908192887895340418878437499170547034980853075641288940630786599910263660526732467145988973921991675785204277298055486440659358123940225031686504753265171558863718613128045011438506293982702189989671961536170606363438029838266348111991227218840591250100460527147375082297041078184994922194398472652152387607132929784578048485615113547749899054989399253571838387439001119545062003858764849135818776509482098713572870223680975272538650508291038155972377257482782040731007314763364701949286457289157122740239943994535887141225561603868822200019997876931289565613042867374247872273376649308847004095003684990293461916728337908635476791841145955206329554459507751455150786902383871320764880018317125309222612476475563689123188720968529231777703481791662495530305034941461135381875428362308486541088515318755738044055428129918793178641819273530961456418860127113408233075639738469363953337510190422652404180830822108961461293954922898606621891906465671952008263520793935059998935609848533450218568093488211167225143033228254858670505089574576225434656401260739009676989414397359423005701123430260871224869862162740209033402951294015426587168944717282805253362430559495277097069611667105810074245694609170264608658299937895599879284773329105150680261512729861167479106526779548312228573748686608805578446011835535047830772457272473068508944240143883790396766911074637593876027303672144702360333403511622021742238725906137579995352302924659152371283088298341928710829742521371413967637571902785033235540015226844066063144257180500152403301730257912761376801912045952650151584644320045866313222515396520188093216809254161315735219455704360425502709102054580275223030839343541199662317248286005067523375262992400486009648938080965133706095811582910731741859015180028088287270008832926867769065252676026469738745851982613525858895207998419883036148759197171330517762235325303591979289772074046599642003310966106950538988834243181665987603872079480561069659034566989800040848732658391105209711987885743900220530414875785037277902031002088531462290465627883253914094676397086994679659001287887243321863843473928842379168623917492667222391825899914964513293233517595806356859355438380724067880079092516209226298656408850310521745182018304101327216305600286441245513095714291060856507486595580662328268667010256172841825661027116400408289616594442400572603149182376217181260968729468977281268262978848274984858450051106198278289481084230049176124214429505714262816950205004979619313382244596555424778344191900961824685330574338543043799040560566100427542407044718140582772857333884910946354526155178697375166673959871854597709331608693325905535672785930700301783678748095961504564426836426980710678588859349713653443771012846572427612700041565435273394039396635144978678197449361073125107169628635854535423374916496371501986489172494655183512977498405225267881331616202012742220567325531420365817542164747776458344594785122246961902625474160900702950404448031071837862220463178615623150822592658101813559149535083732423044859823208083147045841501589594805548357519053780594259694823383223730533701339161600724204247727458419606727526958729498680551104033841525179461339445906380220404357419341689183630995435420296976784112254463954720832743118418554068361660198761694746238263276845869810468074162532624038927707155484035156293835520792145749650044867614747555464381268964994498051877252162967714291795369341934210477143000401722095581969446337078670169471726352350954529372614060304789564951662237166359467684174795131317089005774275654517298394424921114041264509514077670167953918760623195497595421973237104983857509401316992558694316985107992176016758181183149988594745688950463641635569030600316743713532692799593248255491122696012345736013112546793817776728515918790618531642071410994125437467207395034874552050124374433392643625768068306850777674456503974470165028113681046363094461069450397717415110753250776711968641685647311702139252475860995944837454749925738301745200345783594355701873948143897441155724203847733253883905127262782357185902428449524554394571991434469740956005214438536364973200459791099418279860938709354500774106259979277941241183849899037597648888803469333009121218835893940075913734188940672589852669934637742394134925721155276033488799359892212361054441583251149621072750329346552074092077927792748305499689126691767942408395243890116789910278681461058689136827224313334791937019078708870787516569855240259782122603711283419062398938521711545668653761742499058969609765197528013646790384278622229341212705811604500267733144456349804936598776670307881968724468460380543589852043090603358319108564826581435884645750530828716719508150551000463689274043632012667064401897063383791604197135971503513411973093203367784016814973551502619755272896854491907701174503497051469733364259622119331712174545655045306490896357232644816321942590801905779233805971515692706692335665491110382052747966758121714407203704996902013664786312579839241599836924279415829061193651456323940785008467797465009112971867780706436211455695123209595161288866579448275394329201140840216111130341312788516653905424773007130729722172182205030257137330013410941079961190604210527923634303645158902505338438637372171370408938308390450630809268505811692037803790555993882143402206110354361540733903287228143142639063835089422668314744574352737286840892098677958260776632403350388993644244639301847189979124180348419206350422695043837662294513053156135323761761567294478830653215536624515696616461855278041891484157101697511729359905108208753561174516843823431072950676948209158473240021076092268282687356937910597851945870371360870229233159378390139665505653627687760144250069482909335714454219070441174186910600775454502114126653691837570147383826287061374517110187168744140548719197634855742421793105950325748278563447861571886939334701373376708116884702873547734716672494540061138805809240329432390129647467847476469076043644069651573545442690391890133007508348302071282892258379229189251877430781618309424002394819002746283820510769674540316816377607649302738785805730111642594880810064668219923816405882414599015969590603771964141015491091801982802304115365395325668845499347124483922062726795335012641354177664626354591605112234462765435544122878781527802748392369982542290568728595577356083125358988538993338663838323015563522147325893716812153699571086725857352590623033112336631980304087094369642984646643178041855850563029910860090469048179258861180390314714711990282381889862153892697039689511814166685676695578293498764038441327045267511778683434072038797303786455479508430086052357543750164092762952315925946025454482240365922795812103253612714003273629601779314870399307176014476510276539056665267848390330175430028530396194247972610934029249209365267569233295303863613604038469290482834837562525018196264219195160467642136101280837275637630476025884955293671330520355718272251417659414204186028886550493881713278848632052819075545792684564249043840101681641884026433209347376303656199550166120862505034146282637224545138144156200067159670260485509190572750426166816234238840703345028938075304357387396884963484864979736558876178391529435179645698721120182862909560358925664109329044075033581122170442596027726863507237518486702653900732965314495476148328643845924965280802221934159704038500535613325556007102416900674278736520180661056933030522363082124289906398832228690840962192682744450174150063350879007143659866674012788708417180495263248743523646235387427637325152554212028670052623138474890103447733565659918031788940024973668286681424602777532788783674684958392151906056273248358226008435004983373309353216021269723378425489848843836757816843886037969856531678329393225642131650579718648845183738429641212476190992265926386709142417013973131763589772597883365759954637241491726891293268258652785575746342067810284717659817870346664664908755557883575451135690768070691655119783490359645067956058889300040201094201722408855123164601031732810086619948058327666368820391237879074699257003699072173821343376749868712715028053097157766233230568430785434457335262592604121787407347200322256769839597962885016106205133833017935046635055427193746831927861988235854111107656948029402478944861450195221018654987512024732468390625458579041608130561181179781982293695131442725025475907857112522016330412173805685676586748737942342709933346273170541577090249910546351906255464279146249536489580549664914298071110022072284626217452962612091079479301429879914597013878656963026600829450534863107004865977599779627726338115638486651088598310293030597470010418944750084937425329858553674815989147252757860469276599436353964764391785341125296882288222092762128907180058286488093297692893334100234722131231335818912678991221537783340019811094191195692172658067360776031242938493841926449239107274670544301892422191024535922205320255582461458859288622179418631728233989315016709553394646859105321831689172605494876076857096611833207722107880030329802058297514354887050398771847833929377657359483477861743208987942320266350233218745611232339763059793837381631651016520621365779765399225501424666641818205353726654885582687744998182575015905238056844118965795100602448016534921957747678402321093570063484447058095488107608436481380065198474488979707694339891369464078303577374061172891918611965091526543245222460703568333866151229097712871692933427070521391793388313409101071078838712562445163942562505280363082236387232078610254801549638255692540749390657129017972413403496615000563379609297186107463085495871514464912914604407453996909856917591294177683336490615352183270337529004506324452350849995449040575707780607306644638164637393628282353830186806420178051854532052503503622325211554694151969576102262241153173774839195346675459837211635476966642265669151276568807854468467876909090884325161253099712914331450984511697935659308123187667194023442372877620570218688530330000732948982917487489454318662291111928012295388458179540900307006951483971807775405921395513085777508252569755403130236638949343051333280390420739732159799155100018395890142587614346393142902869262624093277558922024159008908906605161828112667232333143530660559636372938843833327292759459559561268535059674995761873093118559412138995606031030853332748895290806748567129392474928774163314117413247638311832180809492804844404401823791256123799318634849700033314445105516230427809869381032319819811262043800756752165701636224773977161832956156366258596816941632256420381913499202814840338825503621399844313004298637062646725766829960459875826064268267143655357227602577298591823634911257677084148111306472378985036857876339621676484829351487314010277926415743731393566158623425501564475024485308841862846884717625445192778446584856127120033758320919793290500629664527618938501220289085038485995878030639623902418872274186731826755032956842868172106791603471297097192581080304187644581279184870242903563902078560322852478681501578914610332153813063593087460942439032717706243508384853380271557205816160909213434580293277542646176430175608349698202528893003980286517874545161442234988218987670165061162172125300877976336358819019314622562550514550193497102712217798493036969052648600908170000707859063338883637579322870515778081833017275367939226040799479908020760010735091190965252557127869271500732389633660163619140496628898418786583402664957153506221100342471887231787669864128173870759340121162698126551414018693318821305170231299571256772182384296669011379490918523237352394490855524443198533624242296524531563620872282328163992771845988623319730531473633894904540193071864307933300531612851375701003611844195433127487200627362679653357581271848169022786410287302054235746854321980912573929680679667404853748550483073179483581159819357021117877083739003221953629200615046153903601585277361862389639853546263277826524024317072101731506831201238660437029782141986921773016801422780488653911921668513153225455013086740561210866279696162768598427371019637731830661968555884188081366357672362398560580329548651057158421476611441380060514666963477944864491942509291906051840134409160515927539535092782584984491373802552007552129893705343792343151882861273855228890902195756173073904686529491651897665256103228587064434712482600011144029292665838086273942392198325498475915375107765694119712371107750594048812304203087974271583841730143862483930422874846744708258423054576476228998466499328664507791597963676389133665267903093150339967222985013678439370125553702539836135355032340719734784751957800434756427654416576344136225887454104971773591574623707071950647117887808205492041741425690023809101885234232307833187820148489201125015258020591485905911866658350204906633236725650340303423474599622203490230333670416144923668799790441401795064815058666669527458489791020073286752206263322595911557717595471834110776148431676396640206542977895626228985162065516624853947260712845915975103540986741408851841995169078926173165155172935896099655850811666392176938157097907172940704516280902872044169226186037919636955410003880121469370162877188758603085842127934399396451577783564900862905516542295057406454156359889894739072001945591322603258065081295246334125293837858605598322475530500347209541936104563662366290103152433737412103278067310334752365495096848227952156112744220857407559011726919818232770780255116990157073661154975104720038035876226847656522045139629733526123921007107645922138630366337950851413817240745717739728592604629777434069501131480709772349864977166067614735371107906478738598855009362914809340734440954505150144644165900423629483009142338732826133983957843059018188523085379031701020374161602534461239729941829381657575475195416425605790260570098475459266377908344639672226790082119294060248693388751296252347116439180934724048975196314711998342644913334697781492229271162835738523747697435051330911814568311043597140566659786837824552562640226272601562017661722797343153799048606975852287555985454188194152349519671447950064645632647387596383784458178340886737683008397460830929845700827285128743018724884151656915191361663075887330323131600224522034115508840929295188642907504972568797747904713035882285303410537905293334211167817566400734572967695922633360087135176940095526893863246532231830868515630578474907040400856679211569843344599528720329046658589931442523849637829939367372871666750087549058920849293587683890655102794704606606353453946504667078896074481977387220008389136421956502726663440051220318531738150326984264105502826622303103437578936975749810071737035752557923816935216142962716478380478104204210859725785932795957562384717112957027715365716966417954693181308193137736896005882174012782728995673323471002200196624787039669751447426048506138610953593980357168981610405526428043359618122798666611967563075402167899853002380651959901193732749035154114901112632604520407813098809561284456053634347026908324696280380015226323587955567574353811393415017952907088174749997633833284061568388390447524845672897338805693729925944816621665815100851413014373454285370250435114708717272281778462173874415900090899275689368231526223816911102352892529316180326512162296975711251739357885101243040680578985901002475774856688070602662017352845214240382014339487519188969651985231131237000583276875923901430550024325892373404514394404519552929935196992985264074884528984859294897082183063613563527559411214459196286989907162379905394233357685040463918783810692010849913954949563745226530664222900256515771206672438942581354979716885317940988097611205402440796538600926491264382674294328622688027511372311217174002669082733649922459970702854480182047940065552034600451836919976797132561593450577462550808158894627574532055318630933785745232037912376994813506526351285837006249121985868068148280078405973321996486536434133249369420618924318508102522285040207709361173241633477635144756761188260772427092095872848921798444403847523788687629062062217613683588738554017860831921877127181498509355889328423113440565068186935012171997641199524426029038503218895477994978085830878302693844982900476885123519391390849544471999775133736385960284230452968595475155553206547679736055732476898327815579292160208917158543433137026924381783212248786103542291687691403146296742255927283757630975036199195367919707636538471845906263633431965765825127691423805833011168717792748728646240005675774167500528577510888648619188655831541494096017384099172037273463982922506009545903805182239004064139445236155830235139610489057001654709941533500063077510304875409469337112031984542817354746468012868923102514274546252105133663802869440759548794327291091151753082063719215707236769447274285920854477536004109127980988201871651584106078546879807932274057366973490977440380626425233950576827428543525717319643139549008576717860887712406529963115081927921481022734680655753563477794843645197695807281852616754605009260633758000888162238692777726644076100001017824475797582279351276101213958763257153241725951503150253724459697450990827560715758392236384214039828062393586961625215140745152617331017174783992788891266686463950402806862820445635062079213865246726014854206245920789270827231855019135724585767476495680994678879795753671003056972673882710714372041329887431085305221503592743998718603117197555585008709365807683796837152881980820482064889310033443874201735608707917183908166359500780500576943655080186584327620533819746457515771708714814463384751093586458333159985747075054157830041241807985902415128028900098478454517463015965846398283664321928239629344283189360978178909937211573131891352720452345152342573699981919359887752461206395945671203132138035387599119519300325381242978226567053784947699350713982500004194040437888544663643423576762914505168177169695823154228152858816020356329004923603091596953735384744627991795332666380852591877364326761389701759568923483396622900086242718812201118416803490710200746523598362876883177843836853310814710380989869812817471239534808574748938742659854675092190543901768750350423339144580790518553658449995360303110643505269193192959938219060950363183356462118778610143052430732279798485168849231357178248992270520470077000282405193092789807955689824564608962581156348931593026318226292516481006240576141395646085414097492414544533784457481801747595598254394133138683844714601963332824709109632010972648144691157311699054031310924061869074374249954109699017978627268191992691928790654678582142904562065085897419026896061146725866946182955099854962029017406717963514484850501408310704055733156273951448147984555383590266483499214506332160954406976945717646718540596267803654633692900623284263184356515071080240348332328737480982239451826282566822796257551387955647260410392841152498621778031016456861861272029760228325452545654190592621981337973545252130639694132895607270900692642948461151842211412786337131579887991481044023215829158706315760425417017229168784154155661918956208652570534125552835678857198546798742671124556013529998892666190245887960382196243784479036464540083762045991765876821776559684071765716292608475248964637290424508859277536448401378193404332171349350587004259215049516368599846437166096821563059267177903785014490564312800028066071358569435334924642726705021887065127779674720025156481951235252070559958081726109631925106241327493316133780878455573400242341293165245724085394081613453379801278283254699282534595348632071355680067664878876508007305995521350132161555627162210459704068534678396055406552723834860446303341468540436707693761766678776746641474053207068675785053312394356874708481424054618337164539605194012345350758659386200940468734573539993459826523965339961750308774545853685790117965947141400357089902438674028119967276209472601954251036199095595286460543922552242619871927491997090040484379725238650460578714184985340379346911175247743351482618510258827322811228734068763469937221924962392739831542688348077344417919949302816494515439600554454317636557289125493782318105078133221426622270275181133393364736212278524784286800384610006992821781172988491102710069084981812060806656582404911159892674976094775545371073808747125705082113100236721636094548272389825316296407371391316682550216298351051703244586689874849230648993675927087387657098219366955981428660364500699246702002804969757113470590913234038282259949664064320911487633728949662387664165896132232642457070314034906056160506027601736105586521230134234517706223980722970613978836742596031491534224795172526534010158579691261621902862673380349947189438108421652277004182889417425354115349434921461610986657179215318846469431874403311644555641878824953914084931386290154166846348694616453574756808568620067105325652631014937598710966473732432123086251917661940552649276410503359291530587203505666340317843528768352190060230193240310497347608935419099092413868124205836254648498894532343810080569865920892472266562572307150895958499300582422122949049810785593801442551941214163383125872661861580103467231275413211698025988802099838290239785084424248754262343392977251103541332888064434344047166347775275843171693691592724103124902610268587500282292026507472814895119532303035290783559753366238112205683708610564456801958982051768815366886505133986458675299730079515945597875190913256668256427502043207339879468285202167728366155744357573300323780554158759051321264770044425173560317046341509972618004498099679288450329570801632353932485836651320593302083178599954038281211608707108748983688909212740275938102756496365141285690018669276115373957131503196032873033999134400889583461175554924785873808720277976904503827918100872165283658137868120469786955185745122196508573460359064775148407012946196403299327068008389945529897563930941002061403332323559940168283524035701857984518021983328385274997298400652114028868417786866874331484862706420161076095794280568180455793099924980004598348012415550930803736122691067601425067425095440417634976244812334965517766427440740923241293675663024395843989750017667674965941132838295211364436722405743968697573703771836574385570305025057829116934269494750973132199483273101913515200315174995823900145701264666813025884720208446936472987601939154401542595204283048331786360831549870298344542517214056446919261979251968339500474699959092503210594266207981676211492841991724879655365863929207592845233380129880414426445402287529617477931985243528737742058539346886477535885891355749007057574522998241272367870460870821284616834758983902091234769564761884847293934570985467325499754942874613691088019685459699094321868158137706156675618019930722367021273047867471092202851633769463213528447181683217473930535812395458818404122682168605902851141318697686310470460095573756016575958293498014613638850345911812606045078118656222169097107733678630554889124585035325424006388813401160374194956834345524759162233428204313284229249443485460694944388650439718973943794761977176546111866818168379529500644075711015452621992368579086712471700390953300621057986418821900148717982192360614525707849671386223738794437602511937613511159096653564067364606093371678053360117713033754734091617979516934710622888868613258860838955910941733852871603086148381245424917045379244635374378337531803485347463759682786706247417502981471264872676309257147946935336003902816943933334410138366209229548351611820012230455141805625362155956186756415511390475811707851026076459592615530827316349635666375525878559769019809511867196604388081336837185656642885620218193356088398057890558967859147618704395029357086020109548704569574067515496432480257667795584118777661986415020428990873565229722575717136242476922803529940827684916296904388569529161715954237502198326156865404526602859179034845807797587788081143421954709634946672833574567591575150362176402924110760294916513165858851360951049231072439192216386975705809019360345377051499804327342996893095894603786609636391982698794573972133349377405486183810965448745171176079814389152281763522470557677494400993126530529588804911428541476709194563882489995415953093800649731352175246051686842506844951642296864265242322684249024742991172448829585736814398431707641882068100825685421722867450372794369750488553945988386554933634788915787815302425654381683253828793299985009933920534096448063214666595356557172199354038220495370114046875955997140299958641183542883637097076340123938661328072759852250621828872064908112241486896232377571586204133807663872373450006520619099868339490503043400215852562617941130072199494571950294585308543010311763944389293963669219231517479118679307366690384150242072392901280610910691755955403370653562777306097815422615607314901629678081282915784658406873009400094802172466472334896376824936293674494097884719523670596128953457742282320462754459952764932932137833771746571597572904596098838143945578381903131517179039766700598363760545750757159526943448292670750453758980076487724254382943699978634697226473200304993992106228027543180618768348123054080213885827351761334431441864925498003831409223770498781397448780456267020568419189230364167185462664111527127568585894358427307325370567575696163937868881957860179428519971723042188952935741466936905309328467296663290219946823765041965687167713071601743869931658313873173904931094716716150608014097826624002262478255898158285443488195731348784556000013909624082367187002396319435828238059359409024659404999701831981134766453700118578542489948155576305259463562169718772670286942009698897347363988523527972588804829675130662964839608594710774002475574643886929038588363384234523904112911314454575153014125303325010926018428397490950416712931513751962887026383663768666787933118169653872058577564231603606586368670896696684535504420043139614977619278303371012305230658938392819541818670172671326927828394360066002954173213254727164033996171332472418352959243232613174146992394087295780310099962591287908091267250393289916782829679396039490854159836904779872972681171586296112039556622399910051932294319312780493435392839364513938057548135974185142983379791317976195426757968411900503302395580429206240195906442980770881765116907263607803788114267335013116305379616950682446987299318640122834681167760453389590312289669901601580680713513147283756018627923417761685090592357247606687694324376373382780153664895218175326806214112377175771655958724507601308398722852935620033225407220671631426151151447775649858830656755292019481227334200569905393570635544949697052551502122127495452945970968483858564660554718790781084978991671956163659650305985477073993905187023545650175881151750934078933718540962173679210840412405931232587988711884962415536337559242207816484702981162414475336513283690710538171759457524674004771737362481549322506372405955849572229616205538363204869123042605249704421009794722793794758634465367284649834929996182983934918095824340836485728806016295210440062274890913699257875666167939698534482383712702476928475318932381118804239533857869434266206209982385425149623172088577814858399975950497308994925575986702229865801933556457309573557790557425014972889292626357359893062574425049075838990890997549465883968613759959674555449943689156784682155164512751881251496100583944231757136283507000626539828044286399785218386957586095959613691623238660739976622289772246429402037601324813743944692080374587834937198930287602024024039445256337645683731105564914546513450768279701749373813350679263059323593440201375040984397624232924947482074829260773771477180126557458040668115340024963083818354772559592294650159203794780223723525877442643747545150469983264176134630451740058768623910875001274807235048373248133220363124032311942512141601212364648936740889109014079506421238794812294622450323457698275023419031085939274813102846485593489903457583802131817317141581103906878555218343686415769167657605398531855428028860832382352418744802007718672220700474870580284837805073495985531863515946834878934772062509688903803669658186511243933101487759264884609369803986182925554577948007013104648618670366355210419190900201545597164891628003631570169076729287683898127862385643797226593242216636949781129479910842266771826028667074482580124976704973121540766288818027046537637788237982796754882077966420809030490336449101888398452862010543476847892345526040926512487882761162512689951196145911354886151865483880444556626152729707045725118507225025082393289932366934420965587866131852922476898177504910924618459149651489761277102535898416664565126048624151730579836182992511191643068630426330284908048335902189679693736648254664271637795179083559900410552813365257409467022530402554543916245497289066182775107731823368729050595143316839109474396169218666945679915009378887277482883676408736562972924000549252774380513499204759132939142144622045915926685011174346024813085215539594439307273667492240860317296350039057926436404813877835252495240358025561055775716587586314266239383951343509658181962457172308708043911999963569678591960850323430447251868701503750456892089664313650185566150082284114592644300736747611484868897231933701158001255160355771851128066550352900146580663433720419810048331674058898968281407499286324936900029446610514514964525143249049793234049332086837621556021067114352310823740348893203992640463466986883391248544717446377639078443186438397196367714322897211262410031843284869463679143118913437909791982701947738254471137623972835710850561922569792600068928687623486982150411443945236708702007852965163066650472733277170118267058538028084760444896447350030587074120007185773120972109928159600812775947352835782557958797773856012444157456330069493888159657190405976259438475785588596722251613538635820455299549556149576766702689130247315150711058514748824867368385644887747099333429975425966300002173795303773849272462113460933626477379317200706421436916135381105269465705011804767088374826480506910986069625518536477576304864897658477971150738946935792830454514936447882556666006795823790505913824500436803716541695156711002918954501656395608655581415536043195213129337682337863956050530996592611504296956476243136981246342307656276366503853893609538306568266196539978359069985531368753124979762104230782337613671683205975725837307831013547026611958578239850249915177054162505635714704790963179695107879150426035703983089551509884899641816392264399457606097866896181125500496449280790552960529858985570030808155588091471394654451023481395592722140228801735319909202832164311913459799489773088806674200426164324461619486876443849111725124688190272038960840359571039273063595291420288584490615095145113186285375324920554766910627443004114834407841513435806930332137239413469740101119360137952541165372314317058993949694820477566137999665906223162403354218261684382628265490457004445421963557425639672551826346828468052292238373413076088208865619082810646622914243313564685718128868581914700094054708507718703844223632024180102890218958109195607511826172782087696083947691407770856319969386934979246927822240221908564421599555266114909808589830033062274648222208054492904226886675430924222694487356202006886136346392912631050901439297690997220431126154712275356709495080445589046125515646271372562259028554380535667531222457095393234778902574194792293592052734243681989143208844386678017064597845555160050551427007973270418261704104997305373530767180777906317444475133231699781265618129252914874195050228363015574007824660827123065137975001657675194173960268419570088330117615887343331954123698765338741637247373605890147171481614378980087350168039422391183410195864867307891849780920741069036379865860254337442001595681946410316807289791466820467799800150436809677442543859684837725703648740121322285944401115347560350910288989580255929399431878193350548573868327968354404757591961010495510214691306828658153745042414968958554947098967803892271193456806219409727455963942852031869346370606517568031063488552211995871466337460498322156813603156954728190603111384245943617628928429518011186676308082347728993675747775395850662374189818275940084006283427877556721585637418338652039055761522338805120556937184813824102410994418951829719875087359127669598660935516819387612903696405825345212455365996842454842087620686290261287550918580658314081012134757981247196839122392748132069091677947013600302927502227338632603322848903769786998172034036940547555400416929239119269683919338716935969031977832534840263474101677265363280921203425705996777087938549713243498329368123056161806830534380604601110481545369473173854890267308609331953912361304912365884484230119236988269545211722257153134663662459082615892393836310423698306631351201134696038843511214640543665629598520085488823617253594729332496673216126592683898175718218661883707607931027447478468614435750143741713935631111051459722869346512008476434082679040825612528428574081097925669363438539271246146349194255704253589027907109374477823439291139351295424686073029736545121173089479260468406155502252761763594066509920721237751259868475175880456162873367209404373094906029106709078732677057794182958448877333154505714828469049136246782788838014944930668229330980937864152795150560658500188187592741610576751161086679135382917691728992655642193492710533386959407180973792605990356381829919642139243821998219342254935781693945362979369726239667317795739602928684625417620643948276068603991412886475931897470624067995624955981582182053842059985016999482097229478961599577947076060109826583274573237448133182488375188230984988253012097918062003404671185199493755655055774087582285112062368645259349867417306819105535509861173147306603405456863029535970306663953979745143895763757835181637391559891144298974289068691869520745085122468945220295869643161964052569731122743070192531717100859408876136083414156838304352169077415150915119240592931609736198437138639890858377086988146613041356083545824750676258104278668443813150314066793905608379881665951153364155368204078515568493312940471522687995786949995366781367843139218707407864782386796534910823073149308039147993023295633309299400683990837721678587925682358675856671242769518081059169743024079145649485262689022822104967053532205692813038808721023988840816506441901808397838646248456068942227481486825073736454768884801736712452318117195363065436156549897200309117789458400177698673842975856446485162743484560648616330490275809134554977754561258572287407597775540032223450630306806028592608688406302546533974953005174138833471601840243193983633193095163569108430934769417367411598688374327914195439108311468718863428029407050298091029299070505961806943541398993921159605602624004855289853195549567759358868301718488042444142786205075596161455777370536715568346615606208832899192768149667090553081321003016353667965480253575598634461970969328791060089426199475006335802633537864797633168222209439702265830870139389886683476530878413719446116290986077387707284609532908740221047102003637538265133279409945540740107216591400029366492462162319760410460392180708623336018219442317142138072183272558631687168431237420659151239597436725213676855787428921485177200836735823102051478060036708311717456321399463276897841650958829120897296860667194528955785485071185597461697517600951811611315368386083772525597272962826721837380982948246763857078159599896250767314884926414958198383457493372658503736395326342484771843702247108047785551679406088074381774601600337781846872333601048150784270639754930571143736763704126266661769255338591172782905586599744949667248247144272280043782181990366589907359886345598794460250663647945983205292527158656078182081019214082984114629945774447253460360505644371043432842605304387565488868255596907934942758464572308630246179758468279749086909575071451280023156757180925090851869091660558072168325412748039092789924711393303341326473786236447241485466059894942685589000946951429659391911606386553873221125162736559192210976102024856636862661273348309426918682610997854250347987137037800501760942888377854545257430515924723487616186092843147737861964597241052043327604113255326037921355229366989631247141012588059932822425857133906365725555525920057945897890876330787650524254101987802594434284296028429749067675815436623548271607505753465398889113012220818020042866249906344969562594523704877018589864016955725660651585308500909044096759730095002824658949221116325518464129552817137266565054363869128969461563226112254029750609686472106495839997444577705276476862809421838404481791486605861427284476530382089232571880116839567718024429995911072172315849110964319811278019641141395681554281685445162835570983794562582549134967583143650329792527741027684752544893806054153236521234599962346760186270795246960193590821006117754555077242995245620175354856544729945525826280154647363263088112362286613441543345608561927361474565824717750791102694369345242778547723171956075925302680570251745968219155108351680747346153580397355864963146292723744079684122631531894808922868874598816999873251157644347950050179281803167762414861813847827164092463955901569952588604700647788071287141815293401911431693730697183217993206271617072905802113047000146881272748159826717517570159354390425247238846612920423719688076380946013974819041299619665646334050811506915264561169013658387362017820075458098046939016267933605565004211439597292806795481984650008517646607555836731277944740381790723131834717637366536111092312635821982314821599087088898243794025014567451518888344381055516038410221374496636907513062735323726573111545550125938976971486211771441821144945755311198031717614628874887958097489915544741310838954965433541006849398148010262553279076407992183355133452494949608230572138458370445921304764536148868753812036463499942605417931295535698355353578641192484111734913225626604652773757782331079798825244660700849595524543277242446951853074667715508329994685282738661578377568204178408154427383563295190883514690528587677925473317803368124006196321368464929591423342332423475113639477708916401303621583983558492653103714937468701268304186664588708973333101508119634533358185664704282542116118828361611278301723595242592131711209569589246395232854644881465214903492953021389330405599957070335962558637960421382567487433713109172951662460036984586509979534084519862814030786080456166538899314373934350597307491810633743371218348970446150344858101996908529015195878878976292014113554715867621122178996983789042285727979155342694084598513532653295962541487380133211412715699579227783307268294099413106823187910066226219456012621392803926501293729007365645810402158639950165130876147284097721506287319181302752024117021607661748814290688545627750678954499213232561449725181733715441172099393591486840491743713016231730311203910268429021438643709358035844474820686643278455438697218389855825424197729678785618986809805312969185177175715966546785881717164173930840796967591915493517212586602125457922682440221229719574974184882400089332281758180100433005554397753444846713135959309296617037728478680863396401902122714668077834424505182665041251499116181992557972946703884374454065345414332217610577948922883384992431423916497763851144512979580527377473690746131990019075034613052439951586398773325530225732854050575112807536286315127183487385829625750077356987042477279947262512294603599240972651916463799363558208288412580978575078105978874256564998789419898144999364461197046748541388066069241387046511515080119024073119029234692898964124202112354124203725137369103877106346421454921445252910408024493610479844558034457920801991640995448478061189091960143973544085450000005114193705331674077906011659149084805765428295043499812930605604935860441555516100712181338117053979026585624413799098944047976019663065994625975286755781786798504566335785950383990648795495860894448385012099973134326399609690213778472764336846821655044189382470301110828051078284971100216080342771058398120896742261690469537494617129406565502354741101427540213446873127239138065335958166874038259710874233407643015053591386844896142567655332007066856673405712258295931946574063705449133940915256771108425241217696253593295841842373910304180141948745441858110320179438280814137571532915720395041599896155852887823789320757150445965775670769699933967956414564726580344046845472763913948045502308109961825751866040460288942470378689934440105218603855632619254833449317942378332193641378959205058482885375687129627744886043481991443784508989700681919140006810769228957727325209771507734778733475250492504002699459735590128751565881003660648643228072999700547809783517826420129340012625369324278618103971911614705332983149305902887975829440289086256719063388826756782186142774814384271561358592272942421730307006025255901081990393339164739087542921703120850928574303649818965162179613055992713613652232381389975705260444665617813115819396250610909276588784596182301264138692548584843512565742920461431080238177593448505504496641497980787191685956401549707536179613393152494402969200724596473290835339307331260035950183455306944804655708625960110457168310815079904182360641032386528031772997240157932710882615974383752210979656670124585718837691134418206942516622526989957899418505907882811247472549840102298983166535734448405218745132142557921714957263484318842785447660812764246981549723699494098438431891106950879022390876148414931675450546332525122505525208765919077949339085518333026779805052560584157388276826094138180748514070738508827988129771341524803075944107585072957731607068928311678978733685235866695903554375493707690278691655029741353587184207081889592707894021786768834772873251331270638232213670107291423650086308517053381998392573602574169058917327745772283915413623756338248767523954549259117567263087219905202785710876969589245224932131806337481728348810784730867256528069666018371921916836682358181625319350760821066990515216213784259762197208509513066949041355024928735434768221086114619288961034334109293631104502460607936988933082707428433435143411279700554776936673341345201689588213931576229718237232763038672311446270229122406640685151234829679107998148319732162697164325694600179661534104257232946109952002493509370410420019389245759070745726560612118242113939076247042528904712886306659712494619213567036922798092579795053322266949602856156360421195871011852780646510389002643364817664571623221746496985706096610484550181233683383935206101820501905923515371191814875145572326896875014133048491859538204758737560890978182511989968384098388758856607973814919170363022991185169376579492133592347291206766511841312804316135640374372659387678914132116644387922490188930611629660838529986998724178903246077007981293616816064073378680124983495483020855931923030462901363431222410192511328449416813549203917699650945851281451946744499746674017126387787105041363645002986450911476650488763908787771516484247545347221081430471623326812114769167789700271300936742551776833407593833308366260974326657258524485887733329080681054382883833915377781180139021574951344208800907543394248779434472778556220814651230274671152239111907246100950569404652702384779996732692500643779168981713246905848674702377415226708799756896228483080666816423122829418669393497845486075864121904297835689706763386924332072923336420506287334194359626438475138843254750725629091556069662889968609072099962328994206819770408608833438133163673700218325882871208914452978483826848568003755774919633012918083899439017269091356994122153391843054103394231252255726796713626145078433495645625220501191536973517661099655208836818641929980062265784487260540653287011230825649853007243208217309530122736041869320558734354228156271466529046803685337146297589852025174817923436425390181818485490680214104505568543291231162264143602542240757833857876309724076597178475246798983252797281379516399698597327068896605264054720619207379136577392208531340684554257454679567058148111127210348675730582785209668386249684161023518037773894481573701054034894719203301308961216802152770420924329891012361562113506140928594507189988259050898584215904487610096218507178981371123580768969986733883479230854202718322677412406507204273875067765095873661535976554446301153262081078651328025318210083589339825187739300760316417991246265199430850130242137114060848960394763168199292303433730649656019951400799898314074351224841859503380400255208455419758774372542423935407444025723399280168194137272514374491082046561445662631678262691924216279383937902775974089040260640631342438562609201055113637504209365797301992574904605442657304352634434325117459859933281921330116958766274328626922261743268120596054242820012998724843020936264617809005085715373864388164342337110270726927262362102893174420652682980827608497653726224663276731736979955822073928468095301342739352735768866121555993606990604951829259830734035312316786866762643039962917798001004086832537986681437687777127252398200995425072329291787881815243166339661996249928878319173025166098386029052890441320418261795309254877680621630543057499450112385224901445967142463001752820651799564159361257239671779621427979856287068619106022516135961111963473079116331601063548297988612974167589606504696180452916800770500907519526124236576316801495884075020362589539670881992935967076735988732922376998766315574739038749750491085235153523910758297499113395316912952565728759781509844103225201208445890413015049370812360199420395646472820103057301344460499269269644341209731220388099617875489994742810975100564378129427426001770278464171508071731508233397996324041723930755730812382422637698403710338636259826337609982823741330650806435595206114757692522652302634951767843897812494702613764011804053440957270764632833163184940258066605680675873500182082861291624730459712077687144902889955862988362133339918305653936366980088373733847709502654625335159692463112527392506556595873019877953876695865786409602621559359919769045316711635790901926473494112174252781019538724260871757244657962432062061701818172165892513756385724772884370679483147949360888688255210046622582363397770777314846779541964817274286105043834798500414257792999038935548462504625990993465106198377743515568361094628944676901916163728278994198865203633677493904451527127981953924782722208947011409574107449648604620397042904492237853442986358250816783834676106205143189569732038856771485686356818211043328351332982025941183597824940108841239910557871423429532647369105289626489656469898303077853313676589025518710982248515760396058794504683923939007531761099659297897433530985305135270417800954141402327760237479773232253360793261145700576862248411684537499993966990962800808028796529305981855105900293838360627564323984764100740144147115235112087617890675285955015866799286291132949398816073142364170092232498096637271704279041171309376780740195875213351882821197270493638237594054559024287259331464481995200394551505128167861341961261733369330470017438733015842007727385087228993529740064177204683837116479643114838201783950755149555245720957152810385816710744576613832049868339948533711725532538918955625502927004135790439712135090707257510169587683848064778176951222696136239495696411478283724757520303276475122171797858735260201461337876211338131606851076610029685554253772181282165890242759268658271405872322964276865442811086774518595492697772614412710678826585124774097872271872055644493376477993821234939976713848276429907900136939230990770250389701029625641966228496222275028946027783501439672603671280450638849539305724150474385757347121968096972646577764998465314895131138441358341556551055270437497581511971388451022634197867169705078080845150001811887780942932082190522932311293658183056388678872245677367802944614832502465236472198202625316451589234189008135375476138829494600836659438245397457455392806492377092561602363224689148934309193932273854743318779700174612463383672544415137508708101663681330927057826178130595191941216986272000480633230761601015642150206840874711764835709962717740724479520296028076122155481861402785122728295982030941277569405993049058027120572297305286808966702426150512806833622931181507846652710722702568750587734695430200272602587382608160632432309826487794647258997805033534487222550427170195854286095186916498980509830807399322905331636328475480512686858738571135745163163694899518684542190928886149716810656457945316909052018252160669287721163758904634656924686840026531127603783662041626193319823745376059975335117328673848668189306389758527256970841417184665203443046204062767316930262085151924489218192774436049218878345479284084191962173635237616447270641166109282889891435813093040268553139534516601143782880599508576397680971286736811480865901113701595611047240489944271314008728789888083481369432220548122686104940125490932315674792951480496755547126594531530246720665534425823069405127499285565613358245112600765397074275529225164529661158913035827181717335596863318518461582574971938647286280301308647262422170721790049693634557556672424235183100846851950338920482674044840923747828646768225000209485055164040723246968804057574207331532581599715997358789845394255684491631985816134915875791849947466277261423423326481467594798096890861933249372097496826018551508937541103919125726704914716751461225800905656983528001737975900446074003485276924401761956094086137266537872810327048074834923213177982890192520983039107494984777103254250876368361383734304620307823382021315527749500098337196643664784701967861437681961821249170344982758515121782762221185859669507723259454416661836579849588393181054576058569016680900900615640337997613688406850880407165075225158875672634935518590612263502157486101132398333681320306399199943975199648059417982819135728333519000214098856391397435597570114176739200670352468204223291120333836744559535189288035085001735833731401600334854573263824830652396587935571337772571164852967494259947988600317735387895464534315337108866708598012146132749829257643130498160142925302077889147285612862960219117998957673411912201961920460246689486206332254020703583781435229690233830701427048281143052664401876505838939451055566839388522959914937075422161804556076386483750385216477069727386764525306617817351452405848636410358076223321619295736514332828103247120516609635413289109454149701981478213411687044769211000485106287229546871309376568972875875665282429632533127106700885522562266710403348624940659675705953680362011825556155151276453290975809767429421100669130671905685147459930329535963481494760034209924584278719319532599191120875782118948569077836834567062173083519198678073743356611988187321893620402921009314771719320130293544389632685042410477989548887969343391865124960657107675766143683339811818046222806272948474117168169842875191301314283077132785474366410700625131469513197623817269344965308634397371316550150940179921585572165470829063320153978253337143508372367539578876071728849185875407239271744916024076816749615163216055258027083101486262939564992377375481320070121054129660397873840744803985937997138450674340804508433019138061621226426445480484582716458343140204744957014905916302186918366776533804658987389492877745051278318909298074595535385367137101283938228181986732013908298500679000258278475676165454656635501878229890097970855875616591286401367306961268431449629437898843227131125678330528941791327747516098181859085347109471559870998607931276671735642049822526685864174143064170668043200614477281251711820097847562920696717444078863574560363000738470656750118176171677190329161464648648154384923271421946519512160157382789626592473300815047397603953285967067633575847268443626980537670989607504181019227688986587523658425091462257083685296338965488143918149690967809366721290439038047030499884261463177537033111319284844386427191424021233982018507216872931654126911300764581119907260785086376568672811161901268560025019461879205277924638873112247355096037860823052862236019154120302865056890676047006253833386932126896364307218208968593127673186481330047026748777877830852313082041630046220623370548194029087556413833407321633180536632769465303551643042120681852451175663358930262810868846326869737858865976898192344445069909845536701569710151372803113512890300016091527065525217711313634648671572568029702982360272442086901669887648251285528365627887829679218749747869261339032471471494030117023858623798603004841664143698932997188174796525325021039754774924497494194520688949799122435312744385376724242580221679341137708315717870340070251165329086668794837389901099138006402372654516781737051415588997441645909653958749979845652046929780695697990060364287732234829950721394485970059079368556293759240768019546019860163929482903777299520797160018789237721033711928421380328099144892310150917734685469387055759734570409632741166926276030525656366266177788986092583964708579581093364367945838769562643044229265114287043311340505253408915820265433242303082156024021480381588454735699205699410376874014345898934375773079822854666063274140253927176552361245242191305935753958552206374273967285813608111861881980685956812087756043420486480809054393469957421972840627357873956774985588585095030367026702127174276928629711508970795243858458040383629993224235401022741852595272636597580801732142525467223871097194559117319129947797410070122242730243585936948037423257208561749397500974992519015835516556183740618143601573044033092331431463168973761652558967356931437309148626355294947344159248331003322243596731019328251412534645091565468949676077944529560205965887372414378279961368271244177749016894276203585608291603336679927207199105214762305767949772957872378558361084427790466675266498398231646005959310709107172749825705280102496378735096850209882570991996525503676762919685015452267975949928959034508960768955581118199959671343047104909711062878744364886106063215088139408497876215230897579213695614315758508905195333982880237515361910595827225501656027351472751033036367886446336392401510811306242048013834841797628013205386164667808814089237259282230325942412624809114679074943447758507982561661573848591320255318204587465510580474246512692245626213461273712849518151035063604019848352646244000232378339563529064675384522291472461605186050965808522666960347622318072345806952789025214984880114405585886849028229913442505053091762134757061406689183236046270694419951046410320262581580326511750810918453254225642725011378000259583536022533315284852062355088996178402198125829155528986484521527936642719056014004749359338240669964370441330752296026727486771639889847866049810822137237132811094308482648560444185377140288316590013060614779737707475235166183008201270793418097659567554852986765497941696287420910096822261648687820745065719530118589923374113849021024453875405030666765124958761311110090030499976985348153093453621287892507195334854614678681312927024673298670227083229961450779919558623632829140647425495948685707472386625267037215897927249744574283564881825210123852688834747119610225286557980019652424290682770759973127101581280659985502990150628037562073455669546785003114297568370769351666061358625622953490810035156533554310164047305208011201512272662456473663594727363541509659702784297323477792867804445261340626523111110394443987435925403029559774369487889844354496678206144679784627060265731576040378940301580919116854268252271752128704494226665408958384226448962823757583270716544671562815116909232389709657286281610414892973666311832816270571120137567817533345432151443188112508872198156565045640727248906428772161931680681738860350672526503383348974011745321652990741263536029981269168300913554826794738917668621072847436170932855651528442103680903875881893211820264174711191473861867297417713802842919303886948122547697742459914578585178432886807984007419325227616991053810754470906734742292135352218274978260571682662250844511186250262525201680930431333926427566406866816699898680316394429452747656092377769117433443392958776731442800179963760096621652111831228505625359786061885278182528282030412369553830659962219105005130615561370467950884956041511072182161799574383267033248976315093670109448800578472665437194471998224805440390052665368608749300284115053830532688604923970894498558096733119187153962310494452164379447205720455437282696134549097953058630302714150882352848548499839845935381958247710683379909836611638333505871809926244809121948548816360876718339513750612331208420810261873959546296485904416981423949931301126632914724253019158534676237422207037214170596246864681126103279634181518053041464306482664415929850188042200462105908957152494961985690042481510200832053701913944275765486443428065122730071861818379371776687911683784728759312523093534535508357578473508809806695947749358764297468444287050193066818089714852811129802319019521593477261928397215801051227405774628120745709694969419614377319522560574597097208472027529162762599954831691398422640971432483353638689982914449667516941606300839499078874767869985532299937384223498232941254966542051937793129911349054586942409689105632107680424202011601060634961855424674641487471579660346248801419610114112578881013443359294087412157595512802886829101840399734052824117678099112052541219693362006901935394187814878131757131657675002861305741361852259885655413133852355657019187234228395922671938811876967933339688418252210624004481312467270862828496996345085224516436382293066915471642785254980814272532635699311230607479104475648107403770599564737514926648130093621034790048473754477838849457917756042846306296307879931458092074353792426712385641859173753644604940345333774805110521700850010965783611487426278898417801544202152309423754626219792519323316636703842662443990742082981489923161514173754046599972455334252950184256686826525795353899842802254701024116318240585680347662626774754671308060204324850266316395845430650271758583528827776484193331281188252765139284020718428912239459983224030742380931604826613723065324189027217159476690961572630406982791065421076228886142500535934142950618614587955639792562764011247665752281923936469386109887802183462483893229060984306952109805699243381442342735919335164807903874924152429219482656430310866240418734075183021333450037648367130782275410163199539462656196369699407419515699333050617737222308428529044275324725016487204341452884265325987581602948577666677758250312113796194383946487584486672209461198452492795447571200033971979535987884899537266941546989466599119209136526741727922096252801238807207789738614846735543418034329509162328201473085058877283745507947773993827273762759951826867477059122415472183775201295599917435246306219319510978611103910712114371536722634092554329550989229631852054743351978162643586876078782020930105035590157178731273671138526395906923870961716420119514284081649432103590289521390425649205851006814117993887212764136759373410121766387309746711970464161129462100815866033121615263477861177832845137908157804129457094312682034368462180208243453822265294106027739728143257869973433033596449156427702425099628750465979408410763071207302833636869587587559913802579172539870810253304386391781947725829925872639196259989296866735366715421061085004232519305450500684998653591476908280026426732962693083779481712997840505509781721460290342196804589023846911452747961635341615507818825162792611277239124071946346974333098053581555999235648337683772577770678630830193001320261924796659303386415539900873296989728818575278405953689656919777770339394616916641877273163356292556039636401390438197117887933213107977419941098881373056649354963306809294894494903717572572093327006823973631217578266895944118185588343012480881075493823895124834646016946141963899131418655546206393885923804916556027746994308499803770803798836305380660506083755404650931910822524582608436231344027119444653625225533841550523730397465835899285056035208271245765683984253657799466178764855017357653122847229780459565050465730941229732351027146284211419204266219931664666825390611564988980105337651733509860477615221210217669769594421906883574058660590912163676587232184729007389338616972294294257531556681038079052645292880938950158464489034513073563108750242491886694250296356788882483312067222784395777966673375972300594802605878196644234615504610327378507338029469353517197771865389678263935442582221841349524555890420256476785651189453374986325226236861895502247936893519191787290211094776444955879266876741920012118511047787659729133424404371119033012950141259707402582891856295853409966906810777101778137032141368711891147881762725248162699730468858458530908789841696880393388732093701659731062051790676758436883931241634960969051246203249727099522924264867617746546332367374491128996950122137164212288739598114356141070954033294532492636012678928048193681234263396533977519953680164988312591702707439182745700581109089133676878025140759787382571398559661248988379597277356548494884092942680730094848616530822701564078056635137403002981644526733353051809333742070578214268866625514656100260596517161050343899886130769786770227694640900090177757799409874726579067951949334977696133922873854863846909901006912550111804609332110850714632412511755553126324402406953870487735384566272616875291896642354300587702969173612662950265510985496549838775102308678364296683091980820973886777251569167520606222284550391698932368269470087767974825316792286744824257105214206694695295864741329917207521185292252850315750383690294783685660300515857456144043627760775109790193193991167632344720421824440783504663202297856233934765498982524875695488384191912554031738789359433033018426676659286292446920461604863596271167043903207607431381714530845333977752152705874289372331562347584396151431058103639143140786440854881995911364862649454629023675388210349138149491959789166747492791626454176562321782523620641925935711551066954302287442369770679448967872622314195699420891326024330055471197790915607670511211896506583438702601826132003214106282546167108654690637941696167692034292986685228480978421805798455093371429327015738177942757374853256886187253974111812110355151148375672049611170848156098854544650476919976014259664850218466834205948545748609930468743232467383901701307052069429960183730295961060868235464345521049129262382741479394683500054718538048570273599422173474826446960693734676656597821227910712000261059225864923780422815494973086878463885401538800549061325314562032975302206040913184808552240470079988021580067310322872784657718291353833904158735632025601525113842638899531688094069320251753608430642450253462680736423872114604756884236882611000003563814733159558731086686708447947003483727185265348442452258277147833384567295267254418416654509697889861913528445550741945694259131231548616265094669487069624460397512312984730417723649143790364431657033686178124370089994384018941008905616757653497786143237697827690187094079958018874796065259457333983711836948697904706506055847189984522503665178451395524121754586401143991436773735216588219120621067925258915689353479136231378595619471110711578231528316274804654808771292272323251549438727934863965972194847674685424619158311000527479615974895242918845989385436921987581991476831374052269718367685134991855740462620460768706268835368885432594089196843927291397883073855960007533246631459768972788270015345844970589733356103977846630427447020522813965633949559829415631495550686624916428132821388423207065671192480515792027099888191603642862805285019591739282594632246518373341309156265811959364252396605033881394094077066361068799024288389521954696465084101216411301423835992923351699708773694049332776295788898035425091463446888144097116605367612307009003063920057786009031906256930073869192432415378988168887564695331286005762637421327607857745830296448535683282959931113609024096166577399891091733218584305463466963540309840288447092539340947389228531744695288265580556517030487837014078450637585044360336938401647235068058116771805930041812160380297839998628957149811213598241489350785816918240654373022542226368559079567179942482574826368981283637720305288072801997591150395260626207008907166409593512467448577265711381037741207728587093969314706071359953587159968465952899772405004771640355410351609764641576526571017408220152772985373454375208938299424674317092560120460496838599893781800514378353393834034117918081219630959961136296933489983836706227216391458869633703831931593421723512080577092319138934971255114233692696228962410887496830572098410547096570334215961123822786624138424637163384747631838670306681525600942662033426767519613661090036043983452634687151959919404481217252976123092922876353902632213675761046055142304378503200007807033915807834764869025191904912286061111840079489497120902218297785200738569310120085053025488307385955588270196942490236944893032219494743144096993510442898182828215975543753206844508652272590750725482021649068654368029832632622083469126794118285733017956673955704127637224820710121204704809383646173376705011285734456964471035807592823900852756989758428260255855554330777571742112801349966718291628180970857146913873799904551480304450401369139566353475456664161706054889733398115493053743823910906799650365646399941296819143911310642290957028971574026374079612417405135196167108555350877368706564249746492861269993480178787494355852289127879941898325422949580612799895288171872063918436460576415908882714668965539219771897197960461981800529117435231664675500194423981431028897631150066524892154398080827967230996511353630624405880256189244577063827903095361381507657223589842937604820858905592093579617033584362878330917833812373395635721436138933156351423746733329176306622724956241874790672100919998031059392368702612370458665257846973449657236589980066935263063920060799874057557871802657154199985007821681003206413704080254381440555360556566172875602546944178983029961125657112078146324568458889335551884537629724814601513997275631370946654633469854429840022426528656905838971196899808318567669906031938830106390721617638863503834773777492302250663095276883497007898246608991667372160810387552248450652308968012373322105292039491930170285414039814592852301460738067243193480475596500277775584725541049727931423312143635320258096259612913872051170136504410220623268245103629099208371568188971011556463513432864098526433146226983948160794967050917549866536681931137017612814341482394946481011275590327513769152059774007262587419915412490320098533458077984269608718706316955924753770169666430251700108364225165259847746503857752792515367148635762073275814327751235719551553600252220375606946394098774748126298922944074197191470396248106149757746697775476086537325389452346237393733398917961626759294234674673685892343286219160636107342693038898839899073050150653193847668192162184372123840526480709469708021088017565996462389074293733503387591683659304846810950274187223690791997541281880795665903573561722100349905415863304697831899660402033945970387903347161386125267454981677381494832348394346471441138967234965796650609015343494140474265288783912808250512631767919351947007225159288675812210221970239190925277444557710373678389247516784186802026760845673055920134928546476293848419268420227878741694762912602464752932772819280770283728198715776307162294289357564532014614753052587655445582076758514460817814722011254278542806450791564092214997088407545570528004627429338941486880376645777309469884102838946201370369029767566623553245257865622177257712479977744306051120828915066752279502613072596055235299792678264282358610548955668831505887586942704608447134002397528843131990538057543673019959209559023447507720573011042807513838753472917619799269990819305972858266465642382573656799534890810838289163395135331529400517817427669440155035160258080295980414889069654479434254105238974913743324192021436450298237420598187199343366375512638732368447366992605631664407121254166621590490498720367065434541165774452600935560026919872769463277727280289934778526661976484600468871703374588599609177993867199285642462775402585279157471172800651722291039444299961111047930773372029518088939215879847737707047407240538180084809847813409998802447122902770982637546165241563667258202422364583387170970548803565122151226175454306915977751371891201204064404797539018066554539165307649747796986652298800524850053097803325456800598404159941300741145592525547353401856481725072791369912458777832260697381804792870435222546075477562550432817104987522487444080821333905926142941850349735723618680859740393972325890445923955158917040004314714029591989130084573995545806180514835689623237921610980638452921433080039538000276736680563410780862477137566948516301219501967994437316683339370667535107918208869239886487880822465480434801365516658202653950460887675735061392987895376625709468146581890078148243504256022877273054478026936985726261269580900534237388251808165420136656643877463270910973622994219950279615625449101775809959819645375358610810052592145216989101596670384026533708598872992934247537087244755026859239809780235915095360910009578189966296319241293741019988918281313860899977720144223018700176154546984449732292533655440151846844544059127636860873623778621693623938051469089721232516663059430763376159432697948390527597759501361603480672220437938714118830655415969897814239639714909578114989258493417414824688306651416136887803069026690632860336895934799405515507189037006712299953420707450299337572097135464556933086063054196996324406661934559839522430755963103561291145429457287766465569995021630017831932005236852440083380557402894868780106039022887418642813932662695989601195046482071261052496424704431692832066502022860372993518689907964585467569520217366247287007119810409045389397562275493454853561236730819486556356913816671545278743326857197580591018449951414392642188361836366024044523278863181568085562715080537971584539188263234591254644933739328872296659378094680250007597105396768494258820868837844820907388587369932694633510140762791198580796253073617404699717985587592871879608841233477545354081066690926300050875054116569904757390118892466528053972987022726514140661592536270833348162594199196526895579649653142631023838630141235802922612495604925800995015831887730204524234436227562367271526574777756561211071211015937138825541696894600496314250473036462473478088791651769115160436957259581862684211839039253104556319311451626507691353042452502372809750702899176261200203871010123110673464965515198420070655754162478327031881054821744910029647188929597564409142002056553646250843086044129817534461312773557665552847499821884466804790319010825400549285438348161729162132754998212353126265443373358272754232693299378445827768928268728914414507043314842555010553961476085209328164099160822302052379217885221722103413649641587578969010882900810992904928621040029232099579096170305177274864948802876404069594158718265680206056208540745847396706363433419706936463740244678488410741036069600847505084621043833544779748867433227389857902371705817232327560729561196785601183915155887692383586172277047174130939306064516407086817343844417364284577955453316859456075421063368581755511567631638963626003766744284902381853415068781963114139999402789483658897681639659015440652308947221952211444792057204701303629770922108782746545788673476867831456903964181157943495540792991515491764401158608579916633221469500839653463282147452173215277611564221492655507135728612563227978231638347783625435982113923584680997065731917171575528283750666777022679613745846240342575702494403158822808558563964935270446199385413646859493810042973867550084032093066808860576548920070090747045085990093789995409518196039052728339689083330771228977742203614973653099831692207304535922982283576161195539860025527199468596378142325684646187186123534989452903152208520536351001337163927655400236510863035942822837148715386813541151431922895103319564405957949233516025623166756600714500905539603883201913559038547612884705812792962275940618621396570117376917804883283437220850762225179593026415833169524125126949058334452170913105310220973950487906203863554435873950423148728006547576636437370056333999632439781309570745751980778881613933909163271838116908608388980930400007483228106025912266485271335112655626622234009457806724510447056813555874099695485087774375267416786402522641798665954229602697729099396774142855279076293498645919304389696713626432269881166033168778499065080117549982702982550514829913974042541780112645865532556682880314381216787425769937387740155822460738795185465156233029536165853878536834880270145281011017218333758625838108319949680499373656572347795998640750585370288582094970193149501419336539403509490002466083861634575681858249198233881896884564461958138156032256896918733905222925352843722250347956548991208682420518948277101313939988482612084133442209475950154324018165210726726083953925850904175327079487771396343378684938667931810679637837705593813227696520370612532737686629432080599839610018443534719359149191937780518842882984203224741024893909238960713614060485485132813823606955506985430631452698803932885543425970193773385028061047675232332502621061270508486252018166740348750342649327644034010436767926232012121488704994457268177545101229365345261313106299419305147080168952585743892345071248841012503043824871193273625966013817584231756510440588384838995274880079788165283333424562933203218831762766744525102345967318956609702451566601078714867649312792251710517612557751986602740835060927073340646956169516377119013663919736800184207668376034810622935585947700461153157465755357293677579957343864384565466624631646948894902561730315081950212046075178532749977993767245772239385957801220794892351958766463447537663986582269747737638107750370668909509603727744026487144033664196509297745109935456970176112240808611465777879821611364100300256185403984102842786689388925365763082412120008822208671031404953916009311656956633885840958010423938995642282953608154760957741102615228137015147749598126118513227043456491146653272307330937532818442816821724502289341876646496638315939477814581311025287071508686849490316587901890580611171193079306536720229336020929362551247681437167147518783411813332087968159205276742943037648572156093566195319658459659463901915515509200284986170022024957005966231323869128725910826394814471241276080022446425078406045401862787586050593904652213768798411361590514464937482666896409145338389443366868013854400276286215642085514583333614213911418633951406845296882430741682978773191700243628822910001168207470933091387672442629930931750970928929425922485940020713418652502860341727406985433777693461454108738892495042224971036000214028949933096816913126952976784302333873712535894531675903953318929686677598281027869213075826297237170122777178365284153385693491194446988370644833661687703245365436598513322903133679841270967973842644502972548354469950303948868116783786399454139681740133469824816325788330811548628508189510830286119144279652575966735440184798606734243956664704406094494080907534705337414922647922206253430413320898336607444751700702115536341982624102533591422786840356600138940359647498226812973532851674959850365013107563532901286832401541452474256805947965093310839923232892418788248909327650129710593021674558160473323558714245775129358204746854374828028120684704490455781361793499988290080021066513458422650564780237259259936930282075209781281312863503739849008170281858690860083603023713490875921346195061018059308473747823406820498982098903605037431438376981076943693393356484339870289065428885224947351773560211294521018775303331382001444603635751503670354273779504304188780404644494558277940300570972875809462110665559258548953789308693638434210488965675379204465278772912140315855988685427166742562028959244154722428984323339548615688099559556265352106564746839098274456343013758529922075979413445012197116276953583179918106967947130359759714754478144450138730530805122422300424028288026279726472818040597137106818431837945605517653496732826137124737621890711363835343140074165312758180555901825896131074645162928255617800435692222468871555054249587175706466463642210006256676728261123315232159093055367722714382850671717292714687964715587464158389134888709715036271458443135629599097488354044475326583472834619906569793824713206308593460998545315147230708545533781244996616703350190734232063410446100063738299963022910208681674060542006740997054145220885787913251984458570659458362953336336603813956210614946815393482690711419905808355457866421660538110046792509937378402336397754981440190927477472705052588162749903185811742808424918909339923797231938643104084959077435725531867768733666524622481798419991652226217284004025362617968362914402330717524583663323931684900395720172876954296535838198797102256827748330571226162457124383623620201221682839502805145254155947130677464616562960663646480776433317419229668118525104465884881596365783424215563267342368118580903221678362209083108144367782834717210751217341327160653688012505715391888768939918430270736664109675504770905396837850857173489735546651010895591473767414544496717297397176524094716863937836308483862360063565374469969299402633904155468621985135678118627706979931977061461392212469674335127421606133180501103499414679485069986002308082178172806291923102562861472106073620122361413050105595845924925129635067486697572686585293923975429966993166109321273055857195670403574210984570214317750738820609994654897435243348428127501117892015313771428427270196689100259901290882797750345998018546513196863061802662763987480669080673881402208131793986152596009913961521920457168596945795612250838672840304641877630503758993620746365237551816249078594723010853644077987672763637361788831252288776766085563141666541579175056111193665895902498720842060536754850627334339650429503027763207027390484135254614215841069989186598614871296106855885729632393188026615438836237510194863226336052721224495875382590790760618948286667655600277992264414543496826532117285997825021182030648921517875248005482827783007133115222263552065437268919897444598723123291580231540648378882513329517810087601071536056999277390383827928131246366885771818837095370642158412190148153367049881700205498457809122227380730537758580155908350330609121195156358786057356443253986514470693063084312847966364801632896376785868925457645161209076879642082681310534871707017785791304666962669101197497012744406925991471944883080443995888969982253647859497498419295307104817103790862292665446874971953938193392071236752937210284234687577592170735650157987394360179427565876112396860660842437556916505130604233372985056342796815779753264542321222304249260431686221416061551361799230338436598586373596888569391645737076393474619635577578283944253363114496074918158485932050455543953614554351963934991617934842488971874057269131703372215371252203947700376557220984673683302774291114107982977451971212809901509851214664393826211743454493081155871545325548309103031894232788154027988761664209012303378529428194319213866450436758108386488064923345572925297952682816238620701366296110275088809706065549065766784289486118457543954319381623140574309679691869342745457262183950154736656280556502358329523691913389687059799646980487856509397102450007835273946939792457373371925946183079903283159726091642609737844362942988576514197047639288845230815377087040462097379662222615223787010064718693185341578830745551079529106021524347934629637511405246707899767431802239742575179712874609788919017276953568273186551123142357453280890270258592095836219020288834020338109788810320772045829984504298665478426782653323097399294087563349177386712412811876815819854197540652354688361959133234583316203103441462624783084913535927895874191329856925104588551292727536715711291834779403037309730209610462831065888595494578308688249103632090639584903807879658708847185873894883756903512047664568972433208963140116029721026583317414037697467023029492894919740020827080135362869725858080708387437146658141335776147591387981107570276362094398251917413719739404049998538712915211693216339908933712460573781232065394584622692454738010153759933544607321094681057048247195233527582755379753786664213154167262015809516141614992452426587913335642013335712841885390697210815240666169748247481182422018442535316180761895058593351386780400666814535928747841630136680415493363999408820704943625896938703024985041335625039343751442714055685515957343114213947996440369657770733660597926324718346275641040279917418005219422674020259556367891009615467362573289012870463070876305980550297903228005549592078942308136771695960178475284572953761327706346473712674193749243537822035374471942193555074392150261406273241186608964921867678699583358859447597566566828582061569614619072458680201630756605702383750911525415261048510994400430593586147990760192495857283969238081476796859724589155002934919570695215522473147947759058009884321663136661313773856683908003770137204734053970183878050337065710459330243309303329495371333980008928660907753140644944053135893267761922156122345790539891894042422904554610869658886073536416357793577916575919739502257871720637248897624263518622818084719694641787542155276269310407073982247939149521331139684904972091236310116067028400864400907358395901694797609886134373038108869113551707891650189643274926971234240299288749479945002022059963773919823812501120745085069473594581701667517799188054350303283769845433104795644763638066447580982041663216768665301740883472873410349310408205434130255378768911372942856778544899061495140852721124147690356987368586772201295544640255861572197331410947553340927636209479334921145231323456737606480974735902489434450538137942962018890831357260853003672194746223023913417947959951623289044298165523477862497196897631729417389487780747641925940975968971790155607624819089446652053281800394663018367554925058009524521681657526897295142834280678190354168787817785895052564093994070207740794679900196088521336500464271545973683694114324186370077477575756343244103627081799062801044429682136795695913289880065436912200258399923949893355918670241214862737425021582512192892692698688514615326361654189629117746299408835466927628547778821143275513576676159112890840052458145473640415183914280568422839727207535335294017816491846584426603157137133766768147700664352480675847169513061579687374245581972898365746075954246959633259957813438498004601867099215433315776441128451696222016901241100426730212248496302173796662024860319152554724140126917197579476817051470117245280639614930768846981153926871648928592607967187508363558145238754637712728371471368170638093182572271824889684626742449152256200734524126958704086717431556109039219080315297904765468919589666992356722377245944165988850698361956175699509290786234134160500101887818572842499284427960303317650199938441620034702275877548710112838138664445171100678608155622199083423140573342393966400444120702575687533468624507264114068365000110046070062630670333848843777512279063347398146329921306666459127086241678878792583106047813719226478508996457825893868452545786622593126157717399805051507124145135568472435566477201491637145311185056988189378152023542964853811676006832181643553794884173253876116440690742661720248055244719275984852627404997341877530389669302052473053916878487315349457384757806419019528825250315179509061333491918130869421326766871222884801564224392811618637488982941649565014944204959350538758051514915765271234727161626772487035002846806450855090358194834501319322471294924259024453412651731668602270490158749806184588389080702189580240719152941745341487283397337267650177233299466612936928873732866094655397346160840759421181382947653951862712075979825813836414217186945481202027963994683018888715873752417697990663407712997082772522396874910465031766362048332478122008955126719258929490843861158949837937547014465730630721177041954420977599613055771595441033357637027994184238930475822436506069858952853448501514172167532920287452171206987969490513562003439945788057657491609292240521190557919050900381968048824018372204011137611945201259518517027161188777611401104336830647197188265390563372832196227724370783394319416169594197765269660044950348927434655104682624487505445681624287566791826226437371861343297927897222294665141891541568275428608413543791009989725584709001717007121825213226407348954418735887561759023286473828442740690500664586501354184013040330150892139302632311427774805156083207269456352924387725376654273044045531931374713686004921123881187909703596217381080346890298207006988061764662770677046187144392321312121136976556283523556417883839753629802380083361691418038651128068090344756144523611170346544076851016064781897562855439028505217659675347963067994792950673146986656375922432980520987969318097517718039210098018802214235046321120543706035867098968133841551254152651370915290811327547099630280129509088982327656967159597864091298721386876943689880435897824852861711898005956324131134321214178614758851902310048948342316647119219235405103003206535652084660521630680381759355257454920534003375349736799624580709825457593348437524085822639357235972629608735199801312897372004707237309325839634221019559068173228355046633985789845643671184467151928946106944119699290158714463985191280286600103395271534778529987984477218690943947356405795805618069159671984204728413364813839066021327911622129285083712210739539626579437796843418466626209471960905229380132816505014705765080843142651915276728433775317113547695854076751912834194350820929498526508288891018551110647495737737204507861234437179494696944802816375639793547198579881230289645476133649187898501840865277448160610356390521538227210329911886713865155298432835479241729839756314604581935652452171170516731305813358994355493269720290479765890780757340399436149223383249888773313167323233742088005747673793608037867892467055707705118849842654275554769013185208790241491526664736856557300197166995076804869458753159910708717823120042826279041691181146183591720263129051859251423293907914185019230026220474251741115243714187647250017099618273017375015554406495932713140296985576248487805107220190542393787089001467001302301634403321318095705787365015424848528884867877227857711530178286120545379007825607654436731285807078497269032421054078315931966509926725120915322808000358262079912291475901244887421119931558415893287881910190892809623596697011374730682604287716870258218367096825011977197833347657343805319248837466985936869092188151627858509899771483632101262736668469992574040702271491444611023932251462196660499068862402451813380059350450942735136864008098857827381160015228707377642623459596078599724732251182120550891889231523948764872845784761399976716240974565962473150810734557717663507078179642846861345560192007399837004056650034998328009701570388808819756513904421167416578924427361828449447088064967540920436309071440901733427781676924207514394932045089631078064170841042030232795382773249569079663284064008708887020389735694418825190316054456039970953292915271176621056937116793500957628354177764332047428286784728138500256954533510892286177503745544579836448718023343093495455096845109710910788609727738428060422679134478563689321929087002778275578213624278543303417610287367900342180968103621331595536936941488443409444607658294729910606902938392919887629253060695129888253859038122411745638073596215718749585324544674381308702718543339097808644137017897827101293829610886038428704614020760449165556368435957809393780216438571950076133313532405495598582007232481722572522630532688639993141594356625611477049150918797431960898159711900838767930047546106239342956613862856695579469621371859891987731396872154404474203097210594141939585506966838128402416463084555962529187210341332083301989468562424069060679831261213995324996548906554508059214531746576278787245943981033091766091165551425189803788643451825408476451779569847710052196192554043965452502540616581388397632700038314647326734319320494192362798642844023280580984207644603416525259105903483598871940104448422164469089826001425539379197065126420975887087951262145098268388700575784353421023168821139690598312938901080051861550004901641607107431619044513865953977029962928175131607319308006071358056078308102789156465123572744097430383130045434641470096183332915430077139624560768712368109278883515240354763302760817730786461089262854749080369305271147178764777770021393800105585537859734697922800243106485695081786509958036680292366888728446321208587736275145659309120856297106043212456380399266253049026275388611152283419923352391469776959066341337732659685035180375418042164228169599668807784855427755861769533622460764611569998702127904657022100417706795237049047559641062563062820055028918027145181220224005709237850315204009402211234184976883322211550436174876492705216199750910931186434879177854489375333477234603683080447580935120020379752102616070972358511324838610008500972346660181993423989932775539501911159862135486718707861000982453436171750894931346088978896950607243760751227561705832583948512381677115216678588949481160629067615163901330235252209896549091024678677280434509510784421591698697593915297771313714288460264709975117124508319655736259225953228150229988274994441454744867965214989448408957591167504021690193128257807094441842149252645839429981143387017407899583218203992031422303524514357235458297222414203249776686403427844356254335139118723008629475620066545055926067301005847670921748245559226180978461869354844074384812352352285797109496944549588849892964507564245243824219168309908329662634445593977466716151562774610200906417428851127994046901171494413229636788461013371606247593942173553413832062258182802769717529197375263394994399979248587109200871503562786075855723295585275032219642567279224017727106123076735080945819711329708881086665570599285925479615190630621403137761408804356874321504631729144681848294215607639712965348402804786966068713834858204481337147591857102131216524974166958581356049206810948365363551932671981306610525227487878324729823779392944876413267329820083482389458046609987677957089466393586077518961366640749430598384819314183605153511659301849118757646138109426894164477674812148941676718201083096218518244589190627904542071868550508947602909341886814827535405961290574792226743850408315421256198118732596765238170407028496864456646712187479771054473450996208942493178689735658923641328387989095654269624389237390559558755777458672984248778948746622395281767381321255895259469704936785091618221614559278330956982519813273992889905552447301978487158759159753571891502712393068730114885542856203568913690240603822331706615457773869021252454552887223757400192814192963313015747248587881256972163279795152769317611172556140954553711164481837566757594829972097382234978652310957664568659662151201108330568782021150030854457641136622070908076113947046452840667308222095255225579295421275048306790473691413614744173711981913260869620875287339202044027660139446838796577036600433145774048919489991250708214890672183289922190768068356126319211512938000354354901816023117158270029336183216456606168837451871250044715189152330128287939664295383088870202174005324165279547804251431641491329759075298766314131373244616394075653441201933393022051678901248825664037219782257447455669005793882078751819684564793456293704399759135562004528621601174851244557680641999993538409570545765338810161379578952320198302851252405033879215187949878020089388561123674140475044918756469760326034654773966818633972574584279177822807360091980840349087141152879583885829131026319221300834468861921812451852200355684603799116066712392149240614881579325543210134929113019776945996108268158541174985625646560247366086361113440159075902252330762531207126398446666101253381823306039626537818657114416749730480010163854934145309149992489945550407295637734613847549017132685062256504002969426673105348922147359791264729176375088566818337080735259547529601245522132420863140630992525253037757893142274844553201754433490429396108106815165250618807834834273158485158704122045499364369856973263502580446174491543397268520428975845000090580437517339578713309440241947420533479904518866037010174250975619640266345059080232835817529858592541985935418251560082278651497255504939041962124098400168649839129089844457993671439954419967916851550301961498116552288354271111875992562098426503264791540403031271327181015060692098096285603274993186162268396917076031992796717242959642133485104678411385727202604203969272461744862094570288975551856605614481025630574522693229331038850621491530202131553318947313938665009558578977537652306001585320567560850298336564573914968335322089876020386056417529906192873418450234182805056724200735619899927550941738361930284049923918791373422017823757183516914162845346601141654224285264714491153619503671071555176469045427446696888323589761099284292016631136373658583107519423432166924697581714087928010212009457919443902107783489981749955841173432818804827510022079347974417675621418272982806695529825195660698159274637810325700449493108784551135163110775441923170453468103474880192735294308612327771662777462613491369371693831742778595330936814202783536747091709782854165960660472748167769638303163942604129209007141518148912190702609724816847054978024949181117646578760871262318112535013678158847359974347826776272421278741826578022194239440743043361379571352363562205083688107933934786644524830234863439293816044081541808495151158765744398843119526225384697670302419103317994418646144750799664460919521246339944093891259193776389919423767329759065817985958842635494832354056821593690372630652769148126682118602631714523222181249517327797370093649064821627451463996534272267905981556015807361941264179993697121481477140873680097181616129692863587144549621766276149284492773164009135204535984178648793944782595571199626315881388912483700986290140222906131657423515481374708434349112772396242467696410825390122462068731941740684999858897862189565581564544744235725378815667715607031380225628232691276924789872294808563211637301236058087092636748218694656489097527700856029008152517536409927250071378449608877988704856557105514517311878408315704837281853002834583390901674590203106234113843824179307708881100603940466706732604816291965521445153585195475175450859987993361370631213941324641798226034262925395948976870579772373112789982470965850753171577256651721404128251648936281110012895338991594183401930516301521930484826538929390864769265022692385948514879163000682596559086280213386887740597573029077227126735104756610791727826905342008668311505362818905941518896974711191744183216656137485186917653231248199775970103139065960264780115263354368266966076190072808523752533279939851212302538686262426434921475977718714862474862888883463961518846435469025270480979604089497414446214960402515223956660529819520967925179225466364469305765955121342984182914750712207296854392491526889843577315504271676691183965325296819055903987343200747744207913764639973124845083783936282607504687925158072694457598808280517467518369275266127491996982178335668737364469888532407139865029107981573033096582142899115831821877614878454605381199890103031319407147710523085977023186187105415606922244701241382842753456799753983164995810668086907679797910093656763110718005786046571333073131512193847072327541598970314613298549702756716768895585387573992085244888522203874057588340294615689063210825922013158370415703160515001964389775004969648521844780773609786108898875757242678949008127260972479901738185832960895729411711456483511199136424058616304138439815579387289761228081474082613739185226471711845111770513494776359287755133806541372843629153579582839757681653364917647666433339717607423521616084932099241638883310982990541731150548960771782401389999055394619595404995668161544841903341493884084616231259311903456575926880669655867282047268145487384152609842987993050974920633157806011309815183347743413017006405836004535262620657188129853092727887021604167811707888266534185704293787860026645964261407678371496970246447071883435130610617297606541371402688347481545581923816190220884884571392691571446531313124771695216710664444290060336554661332815548334439942093365967446434983920659329057495526232545023928202505706993867093775170401938050307513000508899912812392216812351691421749902379102160438412487777623412728651149301627269838677840674946191220401512486447608654735771984449123544763101112027433907053631295596086180325235944462609461407018891338362260921627006701907693284687245817310165233233520985948244337941236471850994339969597752135892967307000383999143372851076837396249927144174772836894581677083979264425321210831627556363582852251999149350143191505695575872856762629904507443487729760139874072686497240643360459101036369759326352063705314726683966254563206579716492187958847662334661349943111376810416591932757843068921531710672642557375688331217629691130791756272156002087530433572704741302040160592602783668814319846163604551125055503610030442532412996475133651597876172645213652281291026487774907302879204098015841270866965518173956488426417027813638301570585481440726949434160608365102645661454896473884621708445535220379373688868137427323982333827949290156083563778759219943597359672691891699497151023026517923306928129735393780322737010016261678947381601028169475618180389111062218469095013712024733435437974353574041074335818696540340013926690646306679418382471677919176885309336481212373429185424727983455416394254761070919661083839576472554726240008058715376869482646681089716364569925891671258148033012067656471008126097345094484005097262548140564385647393910780972357368336297266352303075175272866447933910811668094587022313857429004861887600934541489585201290822122690504858190353362860808247624537055845773042072086729436610523647496178185465270853677099228964631666399302323105826398006175221868475200146536643792817577237271322964681306503998015427902711074369430124358452966027057841002696655093279476649864395944769292509109725490614487132584469551478339630176912949453196667802050753768479510014819683108377464736650419753418454823104274161253056214174919160236778860413362445819938790107004863758725837488122737574510070811114786957796158636816967505545236054014783369066531676048272726112543342105451784969875625137481876569264508743095161990982580419493884061795104489048567589220454394594440468232510346601331176519175878623673299925720561367194018561816740428825002378284634728182936589068003612991828645583958528320280680848883500877466899235286853029778226453563749433305613512785650016082751787340407359428587997543044978840204207515063673964332410229350899111491129333475039242864403779580949181542863211667400250843935640665767976921534928211643772784913694359886260972975398688064476281282339128147649218052110555421659760523999995610959497619098672114058592549276997584056969536423497050065805841226203345048627831740915080197732185253035780333162293088221965050240306327435478177649937165692322885301938061262958764899584292852247292814594577237210537740267322680840416411481954152700285528442672299800779434604289056203533355933292705456327582995887486015391031929489450940558397977542186073564590060036491709600539446754090960374225274594209430249129443700163706401499619290150990421750242956445289281542017850021456408798626592316700438044379011941189081951109699447875036737676618469421221550003497571113159603356918325337445428100134424304494143733259031452041115824209988702383748670341636042948261219295169345416917092847894472471197640853181405209563589689416488151514293258831564560297498958049169921989033842206038425242691032171782177563660162275001064026063288883194101729262446424816087593421525960550098692780035261559887318270971633041640516953220939315353733825860129143935772470251280069085143459080904775575461696295805182947558740237774084955329882742652654914942883410887189317275163434132137619417332344530404551660042705363548643101249157645162693555214292886566461230325757318385481510357343574788087191248749649267198822636406656213862827636216605371399339859697172753922386600955467362027061577579952300169158433842746169343898405710769896984262852232607152085571295112379839290000038812641966566778537829830000641307851529926243437733601168276626895613113236265492068897111004965713454920611297916569134873492305648208344347652913990084101824439400917770866720687131572648304617821028055449816752867363192584785247282183468938523503612807777933833102900885364622027786642003701751332363505928953346392460930481897655803740144957266486241105769228437105242490398476969221924840006737760919740324288555266558520507677689182179179259898897112134196060949315770245413937608621541601607063241801867799800871168697619682740687578144393755556686364076596928164227910733740914974546700356778707786966963964592422826952773572628870788021687724431114267980202413814582246064212177119778053720763508537848694324301890760944924861781104126793341440305155416198510637766795956704473378040730504481367979873743880645593296259202239385427400353164253209966275685995604681008981158803384811998898373666256831065887196097925869027841242072816736580430788347304221836338648911536919857422707714764627170836714912628792036896111641841907374872431120872730009782389145233554465794780633150487537901599082988215326237061007115077339812326842128350637584559266497131691129306469521218440034691211933413425199435890123521502585261539603094645578892879810925133103545045245788526243763220193847455343918474388859569123080933859091422426917662949288558719309440844860788864948945580945622168834562274224288424174684717800565490823877880313690804655486008955177799505377553857633763462900262461850687868785889107180630824653136283141632949387358746281342537561069743909750278755455251630573710093123448601604107453113920008845977182617662671355611955899201208892087810407660417814614766553844545532385794442643995162294605791682442638563697790339668908663935521377371298396732535787069389598061884708467286968149519861843590797894292274026295113622081008268485919532834658360869551579139139431775845850367738355173856089479715963453527562412021401965899337662530816516702304027892634190388363233875178624231313215751752056586483678652575953990643278104026208781111808077682845564631148672762850802784376441403140955237801035442416401072044167427632970451908024085854286249036018789668361248306297826248582811412571821980770377595713137071587211900509784596099866955079634586674991002556887280570049431690569716346303717247130157394838509881908920360232250224600366991266814005706819514856844849208672324448637012033382114399831972559961523924388146977089742846281532989201496265536667547141389338771934207069484915393374471973363966066291549798268482594961950974374869539594050688882579550265078376177287964529019889921728482051706627913288134381277138778280897247263044438799705933987593526238506112476071383572580592036781393572268728630414639410677338200022218818922086782730360255035857001010754906448961801867444615628137714039023516064636812992592647991574813797444036448437302272777315928440961456558803344440818134285490722707854784447946045549315584159712680645883468905915262845283669717686817658897466260550973231237743832091840791971940316551188062247726284962046079457343697925170266676306894603129739834016775135113379748344275324814486958364443477166970740011299022330916920450357368934897756010446828438903605761450158824336922697844850259920547106070464807719556585526007706028793487617989144557798922254872608691515407232906633572478587188450544821237040148074570827259806533334051004937592889314346399732891609380302320175836363256897046419206800887198409442122573565971763185958803890880661018040530833389793429808053350306822945018826389570721124330676544691507874716820422030081377553942725458527228837616192411662845090644804873822890406754078414612063652952129670134757335757318954058179002824044972470225025369556167461754402257962889704604677812676558765307925569162008853286243000636797193450494025952934868010580403025314383517200994397716869109462503409988098319843620736821857050359873075178992261990695010527464627730989262038373750253374366289165943170656996450947165195957610713728823349663933714916717477586436588329842668310748672527420842375649221727988143739671090589274235938949321378389745893910740878760481174482691942666981870709526518404028975012982018955522191448485800231072794345984713815805708001321082803477725281905899980122210580423723616456160667492875518974606315663676172160218226497623466160459663744309755688400034664208534041480714100827562740282809697454276427981546590128723154197321469698339430363940291847416686179470441205866592399044980975412962105396289761486741724745920548410615744082563017481042556952687596309933536555208906921558179691985005654145703565316277169941960346068604070552225424765740144413399249749667788209497725407570545798908450216917073270978655820450698184200097411925491029980639786770248201162257191348452782832580938669314335124462210755271263917582293087348487139917953435185629012494742230179565180955461085880094140595098381592437107947882336734407584213976953740419188614364356560295938704219002011988341170938862466822176418261172321712987560933068319962850983766197461303146034153510293327651305082726251318441083631907850147678849902529601102864628139588756262786250396293242361979351875530119279665040908578136128917313920232669025763808613810705340468999166664704774754830394737964553310038360839200184372723185882199518435397554084066113050323973325058207181645868202247056182494113786721738344118392888188451681167346386048195012753471715679481481604571967028329118543334341566985276877164290347241518921847829036577146762250931223806901525878261103544248192582886001823611136807200896420470671375441855666195518327176565845407507020013999661706062302271728615856198961487911304934409411469223573922482932242043006314881488491670983789771376372063417107036906589493352299537917610212812623305430827840846927065111055376551928009233219737517707140332596635348530788269548194005543255279327230379956384446053317396233717569173824224663184143623621708318798286086941109800982545654817988576143957656254527273715906166300774540766681313665279235406924268083328166797368111713043713569813991543475117140297779540156876193442600616784924358868972621256617798725022275704254828363270465452820139666897254091818702523535614884321928963110145552809050832111122756542133020334304708240425945315362858101506892743821168917073036597673345502522707915643342903075722389309968556761681990379812823387951520918767913008482839402015434178869483079862671394830839262332594696572454766594822267768663681356501898704274941799408341690934676365607983258405660831986306922700464564433820290975671344591346279815393198323123528219574617224027353284335975046703684802859965466312364111087404744499214185789692711721420200357859308871667903567753848235497646197013397001854875744610882848765598827958601490874477164316212348535489856463123226525167755100019412525560060258175522155802722747379856597442599987364485504245364613290976902174216029986502119613339184360997836829377426810971815221899077134380396392432301207225065603535179469831884308398293924130426266671709366997302051219749221062359675088516680331545527088813185252700735578506164647508122981303901191786348270707964072108804966486341808197100414910684127767433407665401525772185500375235040117725049366374985595713433781698129613243129474320588035613112317459606030559949051735644928001554510398182383140286829459462019420920950167059486053870127372724176675800848676813781379778788684974489469616812697499749754125671284377453194410677457609360944216282366343125714934599663865759711059492881598523821261635801266592385538768657276284049702549046029650896126936526200098640254380649341680724984914148058349162692763548552932289642768933845505252262600513974577149842383130074437619901426525168679579704189220727154564718349854308610560169727531250911977747338471835521833582433040002855629311886093554258851805946030189322691046095020537547060905289491617952860225689197787284323603177793405585477482561618224154604616621286591725797765934556453703869243799944149714127043604815423694413949429111849314678247068941128201722172463878571510018770226194688873065820428178521449523638139804505890799012724736079219604107511684326039745223896923284613660560112912187976696884333540722127077052669376030574240732710507120097558268752918825290785077480359906545472633923115385054185788371284587767848455688821634295171883070413517595015632217522671345376942546443742962359718311384869820279473294772398305661405369928271003455370387609839111399610969429475875759105874623654428884565877726304175829936510929673833575707366670862120501651763009013432934947095007160169060139666113662942734496411843579991389080000670520500364214950324775656016950445749286929695126845837592596025017729864325171734850149731871906014202992160191997478924437105754345675503049337097189403087629820095062676331280404389232923447096300935699457555933423102511356796630133168960309450905129220932281936507286802667262788232143017262210373613404104930647013151053461479145482989465797330182597445068429061477153762928565990175396986599294682255848103991039225968168692990581048315240855910266331296957863103232714244681950649549896453355166962551563901207173780269173563137794821030518478330968623758170531284031612954814072679062607008093151320781924964113173486016543075588064223475083207915647310674169047574488696899188916357757112037654732475492286280842432917745991003492305706229535071675882477030584311948253590580260547004938812293865337995025412275288878479945112458985992645996424340894925801173245331659078888905740060669926375949846812796475445474327049539345604970844355827517271438550282477981674494964847430124871131354050103995913288072714173900954739381065728555767281964300145565677750340902605580855012818678840335825173417197548086756627902757135510614812302971312441401272077620301789684501450155603708651356881307393714028202553993364997407146645468447803949617971806192778936922218536001705189885583024513291308576583540044172463634361117157768467294981243555051898720232824535269287584763332844112785611143517439531059137363312342876815899496117413223915595412461414271265616893489492920901171905616183168309276393155095069265527883096885822617675227953468668041048289732243151856773759941747169205482091480493541774610904567143673593494898462697353435211300372519521281261401891548415554960009463246828799543443626433917908572933339826850339325328373323646147207723958832318714656449260187609948655702108038290856743953248726370861407856377194990264756465607549450185846550736857316200805923257410346778199858451315326811757931015979850928800566322375792535292752720336670717812518151066351827792092638187729069283756794416312848604055275637604314301892031208285047375883596092931941414876378060829517598275882989848202998414266670390013474383011070014078807948780878116993447623728524570044640596135910468612014133058307658539214983626170823081419842962744428215469625233257560078416496711188685483651950265297048754932069767904963282830300071189755024542111543248480623811384679486164980280933444322065685169210798722407602194552797991865403672392863642466579816861649633797319791474903582256038081994225041382300445535461113485877228958809616311900435592753896607233977085036555070941480371599396214741490988421013820315236682235685280222052895382997838059233821097319039050521293761578264018492496033357594949998359090490388288208754483167137711760733145483604041419904554382282777863225804315113142733125249598358406958771212802872573949008226034474669942296269170539003248070731825256373827958946750613180780865540201830796049187175770458366936464405867041792712752564563688617101744286045880169145366715063501687024241177410276128396126991653912379394466487481510509303247765135451039234526341158446565464837743998053834501977849716847036381726965072677422320829741708091524689637177583841495033390281557392593156140670533948499508248114241142595803390316727317711675485461719927218656276387600782459264666627605152210402428674839252115120771651700676151371888494206457442501616710724350155202940823670523348131439668925576675631004257564173792630880816580677675277753748033302722747447364555320757343102153664578765350397337182713403393736901005936070232409346565288746635888560148490003882091937950503706765446142402024691050151256876917534171823636066612358278562922730869470400211199994014177474553388358140829588567152917502029376386544875907067954036881518288551427703428761947690327862840701214373735951292404075280432617347183755255863712891651876691837447187939465174236220564345985499094005935218530160439826122407161699048851822518467728438497854105524982380032416682834591604782971311948029899805644702878857244234936502433648072767975072181141972039193233431057663171827376724251909172395287687562129371297748330251002192506864158570215284950490843048603885268919325190622487386388070556273939090009333451714185819362312308786629156443608637145139228509955429175162559875485398172944739257103324059163782524076251121411125680813134047179614681231366358225215421714162721831947850111406827406267020480078210561564304222090159451802071170253531644084289691259720012864181543433326244257955226507226524811567919626549296564170633501569197169755542949358034696347726032441085982557421176933321343841187427106622524994930569130040115748663788188697876945055611565319787751688758629514091318397452921430546839131693291056337980435926319726454843525062034729903264174427348550610481407256643454622739491056697256336656097811808166974513646467506671057143789490261325478917649538259206489328124343728231585103043618454634307474844783918362803998015800537061608195335143511861091627843496377890039822857361515416584850563031301939834165410971995800002826238436418632346968335292200908622513758946584218990560947892561743830015869249627689007080446867038546184426393871309222806178473038881902234980525497722900112334773184018897756875589712519634011216450534206821904043446444368908846192665702927395948603008178889692528610061702662596066454666191638835153670566437987941626281622520147140160834860178846699728636526306617049157957999984274210361634445426799080330694372488076686160418193320142772048007454509748217274265064572187584174999508785712598645782634981447249618761767296949616466060072733610213122954715028850360064515169905217327135785557578160004830598837218460119739925092936532041334553970167300116788885554461216188158092689472973467850598618053086153210138770033497995019392609857315092273121506106930096178022765485745786379390356899874397926761467710454243139521805006217571103613540669680824458645438923386188523713095919862162848537508124651127095150480280282926609478974425202133100261944913489617297489877364782925730656986403571979207722553595669333960704321473877923400639014063219270858445640011583996059368136667149367884903065816289253053736643594156405636098614220434041469712255900272876105078682907812013569927307453349943226118868694693880084755304513060459014297443000753198794529742037957913005483981836706174183309461163132533797489891977126045088215316764237318163427631875569964021405887700342063611250048401129325887926739842268072132760719682241384264633544031396743678108775137854825516340774560515726981454381781811062769984575984948355206665398544956593788022705222877627135549035625058373605127919957087649989286988667688402523680346869938194407826242293398376685344188814552906106682971598089842266767125618134715376609426975241529672302466931523328360461460080729927243518904133004526636683475475454597526821658079584101941436792942539121886156374162623819200354603728863433617565346699009275060518092684880760522135723071847020206052346083694143175772201822812297885672478307833523782119401015784700351071576752059904681406674012391030644085572947414779908466182400546199155125233200564926117105637335555660884157656077856272242786650313711815073847747270636482606631846631700343289418058679636028298026266974631553248404111566812083726991213992093935647930853237078339795376735962303715277013069853622096312617458537703626996522277798934486878089165751921564225435432768276593839272730062349844341754873837104662693925327152467904096584338103352109028800795876306252990250813412210084804508566809648084137386051429447196334848621496531915081777000807361418361967517036187244035324591970531314804614368938572262541769476512646671602488495955043211019000785495644542794686992041630675686306557478734491761436362030653679459641272820822447740735594628873632564383826625118116899995851250497710534676399316613688813319313001959774125780650700417309143699590326688560508985754042667670479582455511079603887043354452820778949807958222094899043028833498556153858579372038519208790267176020927735336314387927851464732370895968249125185772730374899476781624641736602189409983957947293327903661953401140021477122444745144618714626560737150650249934954527368943291209483843429133936380615216097658579844994236190385415572421984204379348975649238545672918116404904774227769946860941211208896197962831532115505918269308654949737989656650526286852968669651330036174148835325594847202562847542327289075752506835236240603646365534449381101482168423517122064462617364510198024025013803568591066206725999717196820851899798713827122260089356330058470821034717006955440794734242164562041711175078131659621773668584593580697443513669573298763626210595846326491334229811597507324563259032608267993678633453309143420752776162434134797268339980907209790700703917459307759866057396193830601553861359539039464345357194756629933638884797509933940054289555179093729827940548994308537466541514098115809391515111629211972495017618707254018512228061452651753332139045323803564739855439231777014407513183215173133822551599880177137348414443929447274819010044309850567951990429414080157317902387470940249386938561298167696565806625767929317563024869030395182139669778295636803927701086397702917906580419097186558473156696421319230536071913482132109356055094280102297364614226237007726206905147869591177837204836354883746575165135467289008192268957022903618534522256624636696805501249540083005536281870963160312045173440293526043766539864484993300043343125325892617494649811351754739020582703250124767287575354509825993217263142857890853386299057267000640366143192733522979406361852721304835468856704955723673659216462195564347070051208216707351612485443812891569898809490160700830688751237129032867585878037324206561376210708244008795588679426708248468729128929152672744618973735752410077346601622512106819423458680624179553843444606087559505515146133891466052462426939953169313594686039440078519381643015738454081815464770186845935142023567881627726370895662651830945841793676995426199788524882519224687120680789172134465002301260627149060131590450577838537952343240993607305580816835738755079576044638742770279314286047692736135498029941298997197406030305300290218496511751587163874940837874424271769300215031773990043459468330141292441868729402956090965307610241553133212124271749985239818855107153966811570232472932768062335085738427423005693904081651227502815629319967309104742870037540960067937478276733109011109957974273650080454863673503855169102519964611248518803252955470825606116265930446888507081136569790820610429526322102918154708853697165713895800044541171862651878416942007644724123856217200483147155957332790964819485484420984477186571857482808827978053675860983064583188667943956325788691399168907436286946500690322191241865012327343772839937487707088195799975020068299608311045533834035285186066937147554578831243084666380314778408523752552556729231627842349060560157576655809322201818967508402582678333946373598004744535957520296436152108781397981648380870884241288005965277714377960137364555856249528750065534483189067922729598401552597007214420197115794124541402078705671238838486651827022696692850271238075097933857623888686821954873805757932725338475092964734658846391311721020037126568497301233808861278611378189362158167908157876245150489875154627699559032019331945048915118724885332267919591966122076238955251081507008037554916501891904752394776088060265320523403621924758762860529109922142353272111266507567404147147378153579780893743014918603050321252472852642885356715307750406460108258893419177833894577046007546264971086705862491357346705790320225701460201498813643359485093380933778969226481272385526936369456015458974881265358798743496880017874764718387806459219201733132058664865450206035503912331643352117911299726892991992280598811500263654941272336050139760091521583355771449040985794914162054681552658144965048377310787183500349696134894440002536616490791887538536322395093540854664839882224405991913130388129577954073617653742712080912448815292402710257954009694410820140486913340837588636530480692593405370295492836779893909326097845317502451315833973477787467741546096899006152824494718289889836628890670679419127644684875991653925402859366370583233137896048051338808484084484721327544652480083518023870643705143608644219136295418451439273426536540771745034467621837690222258850741405782897235021844844146454062631853493197990017950358521854901510336786494666049627118969619121488377650646496865958676817276686382570787757282500517347771272316829894375296940002983421589530246785120423281837739029886488544142616900850884821994119276064924057528008938026908301439580163342534757174810787041537006931855122866742074269320609218497836205953773020558233440165321573197692582560300662653559450741925274119265777639120474720501825910398662320595049688825226042444440490630558535771406766021760821591967067296277503416339478331761702851130489729885529627321785530575002982699367154830574465270400320367952926827710483743955894390283856565863045053866211762997797674222085574795041515232665738764365799167143847449177968216132156877736648343168936606133249021698379198754428507988031080873700372836643434391914431647740411870818537440369572600059049360945365045635019922446581185234376999963422114370050383705764776783006801105910499793497502543146214806321098026039405541256542457439885651878990366817637110694265043661604183905652906712732982320816142050188102582083407895819807500332958232717502450439919383376306220075071191264805859921751373084674601641185196511881267717293341905585363526750182960374305807117508866561751698109406440315548338905537733939785838435435898177458782758546603225778032342643891620708123759067921852716072949739127904317121053100090531488096318429259835864976029469035382509622233635779444541076771811694644301284325515895778868469217378522049564005081761792535177549688748012025884520894064293509355397286570558656510973565144242545968623148033028805561092600904260744614685714557541471582455490117397611022106605266593209220614487116775880462280180855746313460814666798207888329429550485214890522828397279890935284724663818806569483308978039267033935239204256691391556744538739315147937237529244599676492658153927562439114257787439956071850303078480439923970697994590677674528336354736209594781720012271370716195694484405219127796140016224822123746546103803883728610932154210336397519536105758448118308851804023817594969257960971538996570129189680755819440165737598655651855909786715810395730628436242706748582667313519896482415617085394127811517001464460496131335849605793509452485948054185360189450721098826442313299582046763448342631481919335077719667055598917768260574540497145675245475295164614109901064021343015054162884731916927809055851154348023727313570455555488159394559679845198376817832286346231362181760611532706211069275585619048634301926053246949677826767044635514672474936745432943500346832815908690481125778200395790532847102407929075114650819336395502780627271846348575500977442640531781316587581857819120685579996920831118998634150290847037435555569893123178716223684877498821500501989818751461142516800676807167221004615597869623641258565550554539799071253416127074397881979198772525096067299010022580859395799680382888633508487091051357721924131122407509766063640804915919162809139100397353514901688371531795555538924773561071159475454709221965981196351052356836832772872716956029913993084210899395302584734333411863140613757092825008897678405696664936378500254396348184385386315500220035759347830984414201757994801524914842132548551781190839532667885860918690404570889901421988220632363103625873756895986337335232264003964429967997944595265636538455766213163218684335758597757416697415089648326908289343304358785064648151860832527454129193020017634981500049679680996707813427237799834101419427246599413324403874834839625974746951802937614636391741599872430225676077766768340491335013790229135943308257094364315069664066605188496923161669468788069945512050858098063422726216494582727892739305397671790456961941238440515286359483743266410039912640350246661267659215825933484405554944599083029421954165474441574432846131219321205483460836763998261381536011795271332804493350861985363294190425774758898684300704496858347047294380342031549752831625434785403335278417045917167949151453071842269893514363915714559628663008309272882996217444363261689450729281380651378156282150103462114301236278038670900486820227421637773203335572626465104790407815443387662629546738659026758159990648258791386360034570921678793251844896204293051131566594486974847035488800227884923495346044434298694414796394689900619629799522543589283514938537977596777956885056436061529492445832938904653309295942657015077103012714723471221848496139161353091798601234561689371013555875850707850793528223504430251562607623691580279371082507985805189888997356530637625261948305988938632590429953014810134463111137715398540940260687979882354176548598516691765337394264820565589606859812383322816752684026248471850455347454141036977923630509170619956739636891074039790543712183786162862457763509177669957569677543505285501592690264457790455140828082395044684176102843846548558001220432934515304079705597060793735472564625468719750933106997791797421007825531032038654686163066469178502032850777062864306470043424841266933456612238477927638044420869937254396574877553696333374479274438214347434064548894641513417293422559082323749835085189947181827827329732868258676532581831418823967500549819645798524529257214476851812893310361012298410820856569582697740330853360810246256668699237130954632358264204913964248138272787821980571925862676179937360113485353824888693599822400433482357199318724527472335390242219808663850276699532166642739008507544850442495300803977751034898338674586535514590855191892885261431676653780398846305411531913096736099455991081823877370350829208078087574304679454046513204232885252305388118145479433835299842300499622790049266489662440435421838310549248603444207066499018245483616580724265062794086176601153769448837071289586946611273143382297929127883777527899281548407150699897509649175963416918141120481817433701631274739325025540831346729642887936105806865403464832611946891669074155068663077051958763241952982794934985331632659956766837659113932375584254997861176816170721817205753773306687147361110137588619744729110173197717905525934027994646177823925326878885334567463854187425307058977010772785067425459439094536345936896745255093603250913670821203936190697249791935953164320477760480618160684159517912884684852779530230017060068210784490468029317618687547340948370567625317108761982395237838650828353397893288246165522975179820209497603710298559236907766781516705090636537680207298876095080445946149661287263560914632554843585046269383521640193000347056313243892344455439614865326302777797405538082924977445840998792084589548693825704945667373883559677535717734166970458644268871814533891211686389042718415506305115620128539585196226259879039539300643114616132323187239893297775228679164650046344875407421712562466648662333503149127403076906941770614341313417261418711640954597564590208302210662420933397880035455076388630095778627122703491051478479331426145491867198161569428755772715627963021440914492034092722350217312128929651192434886625798615462397837111457058410256359573783816217116683325652589539531991451269599317670605209589967115928920717530674598111148742459598354272563434444046143398849404397326958945568497332420685103192401357997719319060009442710698469603853826395406719101449044324545349721330950036346384945334238551030403741801218244060072694898351619864813234264921730930274524270234083746881019943500886131740458084940516290706980780481494931051680695021740136929329507170623634516296421621625142609379706910639045006187847394232653107810748483085671393050373237511640918820399475058919681482380304633085822655686212251234792236022276355502520626401900118877743965098169264859625738648166535004343400084517821654070150240846513026649709342055239821545926168750077989664509426340629671536745216815080605170485004276705419551992942944428668215745787457071584640211333737276180534593202583280677897083314886586549503241180980402087848294335526782173365409039852194337035599001413810170858892657383219212353343557390171928340201357550948555944185608959101414341693524278270516737215530698368906072949210969914220411953038540866509672730019708111897986906660128586364430135568957396840758804341709800295956078392628115435024720643915215827163405644564105757752910456135347307433355958819780140324555648869288946243610504090956305699360619293305510210035303537050712590950887400143135607124715976397389939658483827918950572589065283728492039594278534447480891609876749274141237085140773689337174682480025119000463450312975873128297364710987913215319798631644703780464870278175793398368817438386922350343455497156092998615837969943747710835261461712893389686358598078973063881102385788490941227696263965289423764431036442786005558868551266096762590683156375438595850217004941176997956014513975980712619918873214988037664530759066643377052999510235674083692437070552079446008274813888456999209603698278865526493518670496508591254546251318117139322340903633421246782269579529419810008911309722592485431431305459276054538020194308612651534435000542892035533697499840736968963483589056995461817809854720826056489028980324791853213901270393885268597144123896704653028574550601461818557506634632598181687746840831167785671159538025348593759330542834452262443759763430427538285193367755454312491425941522799243526796593619438996053559871959257664571781082117540425448853125268007788844067625497019082010101879375388415697469762015268279695209361699846846088841785852648153494963447251056196619163021015751372126892082028685053495310316802377609461389440279847747661982608494564708849885320716130084327251479778361949492947250400661800872097203233373188123599698114996309421159076113374619928004638221012896521772843719870926168705098026021217453797262351017668055273620476667600898783658064351454960376253304958233550042933442286820410552289538841633886060024126110524132800683843456412400910941695969299487445679841396376519475815808587692307253045918777430619010913477719967404927412790571806022950947876854698731026675195211415165680490640165906271961355467370513273276743896796211741776662271745421935961207545634874411775908657327413704599228928015133455824527719643286315532436533235657384915722928731553276435286666482753674144139195455404122503021547248599544210194926465477141544979010228257783498727513311602311811419655461940280243805788396533339614537091535164774075193749922748199094208857311699800735238010087074369942698454494937574896239596309155054551454117938364920004370500702310615371346827713863444128978198851835507497251117795716623305734847169788756496497255577439190867068337856495136461845896192998302755551248646794491654872710284884274681451527121354129716096070032276892177163902084276418363566716899327764285749828353321173299853431778183786139257186768005683257832650541978845771727703674368421152481448743381133096568223400305497471701463889741535919496057826420584419378923487906884260944960290891286437216076426720791276999042521470199243386516956881050103342025404116445112658957463852552083911791548436403781375064862021678007187642461815701735122686824366686885293023411141596484312801322665669627615640848128460382741638762272089895740485019861137816531000569975133279620352875858696261957556809712668690968115910153744913467447568509233827139357392079046199157524447223485486976051659824320744705138489681337851768913299519949238814435534669099849265327867320433952698612892452357960608869385736620134810306371048855927964341962258241886385684049519807447952776973081769343268066174027160309162243512659291817897180798837777773360796385792531513517910035740162818596203017357327118701719411589533601528376255669564049804687715426133484551185808074993379204673720132798888899134266794702375551118746033535001712937937828774737196403593449695494446652589466203306799228585599177412246646232428090027408620612448198893269624684815239526090298987876938673392442449268711575872728300965163308048416900231285484219757356336667215473352501827070479149203852482421062042630135388480532844012510220295716441913300599113108045739137288803939858719330561317053945639085387472833467807346853762789133545713148532078404708912203613543673144838087574271020170233117965310404397786503336100539104842956689021757011675389380455914190929828395360441526326497520803715149337923881501924034841800293151871832321049888381930860614100038791328242700830351267830331151121698117821719876632541439175013222598597307070181431371972656295782005805052090516908558224796120066523674971192371030102384487923411391995884362421038686682576260671164632528007691598828700680347658431569595170766060349740697175620776093706463075417012956299562106236552529688374049273289708759642132789440204255519953316395154195372080856404355967339099674427761512744301925716133811104695046557037471999874555619490354669786945746003127243240513123806693720332907595889144846609430570939680510442842402918928495969638726747438355364990868891891327190874193914551876865106126521592635350849947231951238311590568392529954309455436307123304357430533988411746794273139235003785282432325000395488013613384849349169186817914205831723706515544171140275540703696863390571289516869940821123837401523940905552105745496275327285609419013897138517004199470444881013640751617438529036972436938765209090115823883821447546949666781132780171196865687797323174191289824106120751140577063872882785749274899403887588999152723751594188236329519067057569020437555922712327118322854671977388394279902925129917474570235907304218705391895794881235345153296679288349985009144281031453504009739333471892927121574337693162038608876292607661637532354808270168639600113220708865454631770266275326456543046293631850058011213791748406882947801595645689905400705138986587712134029862432924368777985131755220556971070646714429644384773211807625651067108704380837617235290428694035160285983885673506452699361500110691511009257553383162284922208059947575330586338673798705626102071468907506044327773860776444469010385965130292541025259753609978252982466658266980270590307858849618728817319475555983251392388413042373230383974989505489482225530062772728484539776192007350460260224975253339243963056480123400682739901014322628775991440519884385472847972082740849733784521693947688483404232588623169445263855794906784596379510698217038987291563860773420428512986843551607879242025617433846706254562048458128521291757515197643004419535245669844900189739295308662598230264557475590897805044125114799754757974362438382433494743482608514236173734039455034143770584139442371892376915418178768965269939184856618907628360269735472767273211870026960569038522163447694268842868524917358011681469498185136408424798678861207921915276358048841403213602773704368222283904321512549551434894346023689547054069417694767058995517785803203388420879311435005615988306319468728881870866379529303982358531004857334970513740178259735618796631168603706328995395005809280102456166057071280971868531298534807627154915260442037990153503251167092058728074431743997599719850859913368856816441337962049055424713021377174351782998517625759621844269252089387642926828567967584856060168616645521022640150943832030774188601487565620834072048148419637049333357148350614373982853931070533904479241369343604619707617270474040120605697719558598932730990191467525622341280139588652137288073966305979085551814215973948319153504885138504709566312148458753520742229951634174304529190147167844007779997303286702976330878093282595285887631141405028286294474957917932693760703074427078223460169755375604768698352981188481471613541709545397174977938691116573990637097289452122197243918614938965064770664946174877154556581092317634408851618442440603527208227422772310052294713616748543953925432727655969702953223506754140650872249629167096710606747088708517860106845948025647837122032401442048243609037551102954424008824978234209544142626523139202315007831150444624344038743714997980276007171978027139105809959180207978343679843999566234318498157460779331890329833658625089421316086915039665725314412324996167742143839881759718836055397874497770508280780092345907079778117018362811364509181559325774802638187854799560589099518169558753683351657012146266419549177961647042804658183737337167060124799382698280995754815218469290723464535876219308223295151927008501074155588879799457077807044507892068721533907054772593099348961270154810049934260760177142828807486901042310166978755722801294541224359762496405733556325824890496164628322597001900759125885795869411838001363764687328535590006680966150584212164604423508734597519252106049969959146131189748374731798844025274237462751086007632013738971004370252256420067903743127408913918226341787973559416960074216010421812531700446316911924996703906531505100990421238477562342264926991006808791009254632946990775164484244293767089814391406356703651210015910503932997928933407976027297040335476321770834773788970110223249552457219942457215008262945778034941280033561380688323604730437682589344308627492063207248068438508504141787297398936767272875592906881424675163767883648411817135775709334776003474843453538618452809118443319953912782197774847204001591717465559141537572619403501203175239256070566885054966406247567165407793578919069000433456775448601128268274255577622499793269395629925569189209313098222886533807305023417546969313783323489082071861577905836203933802587917641576116326780839362485040259823634709555523572339948172388529559343900611262782192253214600089589150907823403921881658868242785949066248430023415103071215365157306380411101823950612758809078525810251572535789115422675783004703888477311746919461146145524443366461478105222481844957905964448463332684200463113655010969227876682033041475182664925221483599903962884657213356539629146482563980335210587172412194472617186216381941668830039398269074657576439373983055533810685094728628101709465851204218650891654896533960151250483109412552883157910436646819624619199737207630711970603586112797525689744219450155683876926238570179468158296305375520462349859889264752965326877647356363683357249732738987482381428148672342199847217977383531474999260242578928180666268864252336966343447169466535904090857935442298165642992805441192008759836494489783858945697225049389512951718491773981965937840154879250193366885333945249877338227827311810955344056837930575532870428884978486978553290036438719851560952820030998846508594132339618453493335399777832098092580361832716913642236155314675558025698628314637615150931771242439573147382753008405936914717336807879829594208862833938108255334203881343248429345292343283928068528515768573879529312407587129843156783211675474459786190882426503870855665941255697795905482336873280469083854155348718144962582535362293807989281049541562777246049024760894203765770361980232957306931026270669025849637838826845949014827675957679503346661011773400889595509457586771692271367569149273419841008244479521104930120006149902914385899020925191236899726345665565751796200938919465142941460747041528319791935747021503299108092510070866470935813850860670245955023638472592123784235619909300562229393503711049863680389435580580972321103384507268740309032392617522213771919243378972080018515274197077304949801612793970854680395626184742601843970493866404818016700796182824749280668363158092986488346698968044982545618211326527761627513881769538459252561529782664136709374970810400123455749344754384134015862169299994307487317754417056461788352772613932237413332737648131108963672963865545039181348343947251929237670256281039094905502378548227611976670154479511838020877492082772230252092068891498614217275253778445271815201836262868719957590023664428297483819339159318899796692805042574029753550210253665279565615812584811870937177000895089402553641175663222421417608235936688988415858725798951306313116712104115433793522862741982659605232632742192911041274699168681529291621595953053223610067295193192303285584581286504984005413665863644449967471663010105234752642032685915289334765577252322607301456876978342867937226071991958299507146050302343763545451428387401985294880015363530602860818480118868524038205753714156319481797742708570509479069941654687660408040068379007898347265164881324680634599889827020560580247681794073541036199086532298229291702421596710293683989626739270302614946310012846802827975802055636447337822079016590421273018571616508953731984755525259562714641307061539162071950956200848252905853161646080496172466321584792705201701324180195678518650684237790779533146630647182186532298383000799913531458024378466163744039248550863886206648344396056927244440147896800061361582943939438637006007925143597992632010017558626827559363559701668175036372590178612891586457580857284529495483775565891839692317794582710975439539293903378629271410174100717477529279340942607542956399043901491082398375705529689530649503693761114416832024877190224118033407903123033447621457195960669406055307525174999807311127917684644549893027345597364471537889488250908380017842407677069371645108896969226891913887724868389161558776650016484333401120732411107599017674122980029495763194718460752284026042006419580964657821445672316850780723994155515325694602114986137220442703684230073604843782244387285731003458600264689302430124592257569225674033013431877459649084201075491475064502159092189178478015999691103894254308025545110730097145790408510240318454223835441261996169900312628471501885831752248263250989243375725865361528125958364733465863289638051431266938132649371063052454615580822198102525426473150520341367759600343271726870940894028473492016132739080064817694008096717403373539059482085781106381943874755097927368719614450421110978875525769489111058157283235521807952363646922930408391104342313401224428933254655622804576627626654583272116725310957100700055438689589358933805622062346621315637095298800111668459102673970183949199884089630907148739643845307149592886727199577973231044208917673533148899692890929919035975777073633278678179826828374555045307421792514681414668630474099229505007380136538958291958411218983791983372443317771691996287756366471026931805779352330369266454468639069929946786393549040726417974465069570130757620651093621481770880710981807122271228313895938548839908329118788350989042912642172670861070482200605719720726777579878669478030445926993422615694623577567658586929660730833175808196264125223123340023542438529502749359139685247456247673903059982470893584870135339698461558704636025166023788500867171066738299640775909954746418277726621664586627327174610604352543754666132487332782638572027904170345103192565414091891996857855272468080810774473159069634875481296299454951443983687891859184287143055137713456664639824756230466890891654339979585609052151866791540399549908324666596994911259511126080074220578315508571142229795204336247349696969193372881961002146672035988641449312680763777254379359042769340270192268691213274143048362882841112286483986964693515163550526779701473436824271159836035796403691689741773918745583395272813042163747544426585284874425270290160352277968775443035640334448931596172974859871445496682741682317714287401814468904836007082037993990750672400067672958738867682894225135201213715522007530528097261351530062232517584975155525336057619455003234101199187618890781287221274561288089260525032816030636550837174925469050924313525388928193685644534131695685730830546158425829423364771519226665544711447956705588122474428409114502583898367667748753591724870354105487461979113197787775652870690955768522026175032090615781956510218233248078594430203559440079348769470339194033428297065825291882898913460064064204921371115086858396614142185529929402882642234192961525582160184734132929596321554409245214663690508951023811404984093060019543533922001346748806801239052025113755438929633039477437955187656321827923272226535228580012488559661964753636023263760271312707957959825319101528627945054509483781284014986836687940177157306149082246924715944101379885507558050975176707100324906490673337663000699584239507769062085661993674571677109350338050801691962791507864597576475861621690687650074155658028946604807547279270637988839492490761220095871655684446636173821881958093315058790987790576062731766035776322510344774622619965488124963060317646252456107051593608145371805682673428750894649909140690631947084567575937450956284385274599013005043131155303747277297825568158082409846657376017330181295168451911857091850582606839784614874655082971486701989845846991773378937944717855081110981324795093088086316550777515262843746310220483114201804794482132810153718017975022248698376395570486502176995023160067709949873708665817391786647389954271123734724652631628920923251028786150309083510746698511130071676890768630084379270288209949966190374588051758288159508903765193206991183547057417612163770393591283238801435303289895485758453638352156412164850234771290021372530618538132201467006491740781382149182617672932315129437798390091913383054197387885117827982694726922582965267698082002217453060410810557406877629191759093849156473158942316625028143424662900506116564220512493407076226466606800822493283902409451269065615381764529829721960676118136701703858809203899107416617601878358444468214123880308067818867369845317073237836557817954661869432935114047587893465438666353836602912202250833928700154290951800969447379780622203056343756124473287959428758586559047026240091842013503453509222551424599904728585243008082411431583266720348045787508576186389277046252449341260185690826575408605332067259853671918673720430697360021410636597386209424433594986664517123145074153500689016040378139545727577949467323223832877567397105309588088179241729268368158659591788087873145237045338264961413754083203708978601638630191414547926518806587926767348648075507697410767233256753393971754516970539689182766115149717630744808944805635310102872405443895583116135232327879131026914592559671773045690426684892705922044835311972964536161475353729094394115814411723500458883587156169122141756476011534642808623396723293214174759986191440497533435530086233513868438518220129042372399954032173059177998999523554312316570004297858432039171525944309322193903033853371588406811267969113297276001042100286776142609375683030424333052958856546864045289396490040436317061661824736517430779343606256726690880695398924795448848579492214023937502361236288529149877942341916354158942235632283344550168545637258219671335705280695844887232573719673046219052534601498654317156611681029515518334045895544886759116268875289731489569866649232821877642798220650149588027658963374976391248131465228057731483844477238843050515360737306838492816833627236256712305855511974363489633725225391465220233577354933635989965578726483766706589408059846519716493443483683417066482940819355646541947224580018900315944525525884617166547635670948187802158980956609171451447784123834870296645251202053068635256934313989040128314982947277779258510087529620637739012535132785683769754106631154241428278709449139859143412078105893474841598945266315661839766573944945833399823653597239018096224476508474082686953973815027814273410851775459951990516653795846309955742985942851659491815593798689379317527588076801236425941981966655512264941851786884328647057823780371201169246092516791918496077803781611490037748245849251091205947929309499305260895640481960294569288321072621995338558346155115369089998210888408466368342787857736389557080498170085379172815527894466016886084345283377690339489783895692549959762710749028552801632011660201973051953681875612738341199175973544886310413601044551391457771232662461830602637743961591524406903723838166892495585528915472306188818460214791733106315980563549977929350393252635720903667081303851582698205775720564544238216460616183677039604471050889781186356243575222552216899435944874394758320028229203318844558438895273689952971138799022858778338465974262420474086634514798545772288804977725994655146111011321580540245450636135233568946058824298179203607145339985880503012798790480315654112386647932836589164141709406682485372446213111363593971653093915194230636702835833012452774147809072279971258962007928225578523707385317655738194642233032490938163429472317830910225514191238993487288713632838951587345038899501780887491177060658131434416482194010895686203222697039089750967591609910013874715851719931562954137917380917844051422506850421615050674335066136553858585059469069204924647155412526357608454802877917543851944082606136896152025584583138177522543631539046132306239829552662541597595168971601753741963865275085514481693157621004596732869446423294228575364480612957991884051494068241370662032850562820242850215248961232336262187938110985768138713296362806603154912215758791288323501424163199731927533611842534815784236583248562035855368412251189511824046806630080828622516868434670814863296418598972981965428523788554147090778927412927465284095421917666778956851466060250087939468873917824286325262123278356923241080078666742542369126058745530217883323845722869736929316887708888690914787522023156841206644883372180429148842517584333266577649306723242047222849502418895167807204427129371698804659054021101475957007928321063394742235083856897103448327945747597656462730960720038316123081675436744383304238507954178475636607819555698298908031224372104621956344020602542689535000256870112260993826137036378726796724026704378916996750896448040977176132971892687810561282688872870132966492772447614229304347930128801351610840912879507627861483427691865241041595487834260958481208686526769578819231170896051635794842287589704664504532537975624941881796589911079136275203034691186903802570459959076461300422505958137533203478505546041490723929200763544374535782728307384325842988212550832910144165828774613624164128381320958196030989105804746936028715672565998559746015314362163161443131346375296619590731527747268468694378856393706373632015775895806428765569467148626430654704648095976353065656731568064514780284292267765611766483351014045110945721892627833570378945262415804564499140573470812072621910116171409821634982471186346625026102452255428011225811736562423320900162631072845931934071417862889314627349531977618282471728838241566807137737996444800123413614963061970815233830016087177870413217759575224061973435406035958602184447805885733155116958380591855917934519733949131082065916147066581390852498174291025813814226925782346310694852700655814770337618334193030953008145867470116789631549086531390277848957220815841570130646063910071827045031419997103824849250924562628158137307932907671700426614096430812974613602345147631700452827753511379960596546590754337401493626786029710494178452274819908571398585348488145538856357258426584818244803689070957036406446633834263655475745246240878028840827797561409915174475682880242815463335388368452589633098455838525923097054807984185294450095674296294592284070862779295658695498874806516494003710923220373583552019415753871808817648801430371047958485054748475887289508503362421102300325402057999666335050135282547587829803309831386531319833526074114587636832239469347311706449304931172925716875420839887915687877341396588801267912766969420314176677927918082889476900010316058443343075847248264419764924352362509523525592490677119823123391357297667522208048532205581821496625902261921676152906323694470753356403108457570617880476101694091509602112259804635354576148031512283813440026887991079464047774084830043757997993501756432451641437358339128633946345365077012109505766430623149495009312119978947298727230454965557434215819224406305681714319589532540635403948873492005686336143253857057949771060360150022130471780404407510561450432479118954434475693132615929845229906654912941363549855895093725263350799627880533354323345497244907406270047736142231160769982834262840471971592644424903428279158888715442560261008234570344030896001803312208576587852893546043990505787400207577656811076012488808584372229666748994029373958186172228693510136442921279316003858694801476618074297568038620104834638587634098627001802893249831040736739384530442886023013951030243482055783776134251290008177627298133104284750759649215894338285844159466225347984342146423645407099166618006913019866952434311119170697504778571213963399264411884444305243654962231818131870485767304562841284847395170836470721329293674043887065228879350346203295301453790450178110075045313259731879940174383797750298649923086366791307443077007050420847719997861495282506972878265751454338876890736744295706250468913940821042793057555986132466011762889717089872441614703738021728598479349783476753129119519919739618411096036126442817162637699036420422562665316207352220582083018941018637214600244514330698586282321100783596583253969085025199116493519609232552486599037943281665241249907193063131233613895464397651667948100390582513670788649033369608801290105873709200914439560273257117839916658390700634650130138261701167899251117621866928311459094061109532680802670944532146165533544986675081870780292255444918543763197833695709752219745660321877888251639723477633582401261822243150450982184600856572389137474795492801653121142773356228505602705532923486803538366031042958269297861716344407180464357639974966716646458973072672486262331607596180157496385846287198384596273044919612027180294919740115680337115597565967707171631946055257504307626352175342956274004536483871960540427579170449318944332763761104734482897607383638778126177272714573561813329710599965569447157823007773205385325719189172138479482675600248980449655735858642924876653709255782774693416649848383348042373010228141282788538097704636442840792338304566851619449164404176591025713149658178008231569132275407507271879328480887985170763754062243080642459206981232682103790896382265388413106931845991609863082843150711098351140804565737308006219657045951683098954804270407018334785754137832399033617503965923269051708252985818268480315194492590799905230770605090392428788908173041492831775285105778194649864065673393451125471425687372370947858829626515423099632412933102883962779268558736009268585624864043729629506050247319696136085692378279068313150902833972255617006878341802569484631752027599540359336409234120900659957659565944191261117347213369036526192976799485268446299901803048197337604048845864582277064741938579683016276783186343267324679437405294257470044855698925567457397003379593764018991991499498212025396958072299897782508491985820634322509247065873950958548234272374060892224031381201590355694334504938366373902141925643017217277181801027011530191588858804238424864384249260763904401625508604759566806130645363120515360632447296791121908261521426654760664341080416812181507538257274262223733413451531578643616657589588269913704476574163837462830242929556618299293012424042660353485256070523978444473027980654749521455927884128691467313985785851025418198441838992255697799253631837090121471355343304098710571184446463157499494759241439439038937641311319568599770853068606699239650753044509201645458748862563480658966232380123820503543931679040635200321303778485855364382160283219445130648317970235443600585294592957468283618279061753844358747124197590260780382655745868434428296742997696073336572257694324696410536645536995937360366145558017765004856406879320987990136613871383335461412899636707841933418527892490271770185430504403103512342831975188578875295133503948342330129767265260989238477476649365922303016207101804037576956895062223661309540513579218308458607746893181502020065482692670959318124916750113430637718000801096763159752057497997570035267204701777977964938696576304980120056601151545768899942792529845364849797439961643500861059806925036482536886875829789489810070499693488887667433089807560297664681965239580576477496453372491152765394111333957749524801566757389899671821438198728658009750845580825742780966249101731683344807638095918064571429620317606414271529205724748019223816533543760119957488435066957144232484856544832733994864482723790949709604402291358696048795944961774873823963438224933172080582384330348526304999974341881107485825768232508562545411095296227733248254716995367555348118529811023065992218328811408165583410932415653831509816974410708621417586489051865371788565598112358312924985536982293105261209180289975439910189763951727057270673112897681633714289115983523500017699148556660451997950698927671937527174058826502497152812954797237364296434346199644955477729699993693332302998830001111055042989260328298477637917643971966758107076716461893336040100786291579188893138589023456440920508478078130060401213567061164079394438084311242509924027044808181659035184904981946789482490236598466374441256638877684533501790884915113439238936650125695861554331049194634044790954779137845565612689165224784889076633554241261874881983180596338331174517679656033141695328878426907398165795216451806670743689027538133902406549155701426904265101215927939369644006507091533094492968088008805188151348577623699799392672381918514604378325721065700801353314333857613804869680908091973408263952177232920355518448724073359540823265605029495514840829522493817086013955320273804970605408065275096930463070169135476874101983769228157458898550658364267900896731721475073134907900732594183227702181508586939245575521182603494011742411191851907790947409431654547380143390137669675123190262474705419996750757949094142881411763264919217977325392274822444121707524575605040033113818218231603789760218230443786857517889520867609218541664347404191240583519966027524262840444595101543582858025183017935071949508603655469380600806420324495692504252096747075921930796809774274655798739416312811989326175480270305810136568438177553202721136066417317262286388308672010187866507229455215185352726485973250598571945985874230256236288920295773430980596692484237116719587950941933592161536133851290347113360838767953485976098298036186510483816898173224691894533265923021211285447089895287600607658050837530150085400611733419102511419299945993088772132482489896339919330595730933881317041379375411474242218098873143808516363751330126525415934918731006527293473034459545065951642617733691690472225314216470044456247561590880369017992380338631586144557705630440985866026575178757100731286713289495493736354105653817840582167177812324626364469645449679330365576058773945994307347845620449076646660533038746943318644348423233406485675177456243829018034230933114770242260673623380268806454614458753845690803442253466173054914744162680453093941617418983995495722736016519961515307606581481926256419797981356037797606173300332774767919369366021697193874314624769461467925109895287923518646095552476602864313268566451801632884494127953053210409888499105254569635823145792017378705618597916935186506503385497063999449092707389454976136507475603118482938566673678250232491348274073909162659319790302988948776747266069931348541155468475822776383228847488602525276317443144361240906126578334288857157555946738276477092665591921166782097100723572716770636173193635728583517520099905369757654904056911859903981949569263170601605424315707910104550716560082690951693902138392122749883329102923175843289773592375290823827007615232020104631212424074166953756384330942434587008480929345786194824381699677947815747751354183043419112396629135449373811424124375593271728885621642276953381505772840557872321454192619345156188921761022497499598544462913829514510847078974068548068146977117271525753420419574691699475437399193810527423016581604570923955312094314689434477747273881023328215264576836534780071421041732420761902602860275933921359678800659996979641874976184056085697688058468789724181252028834765717162955972996705304316958446309884916257791718777380970918925721180155687971606708517137018465513286553761963933213397136932665634288471781931539784442119613949534733139773083264952369557739546521298686968660814243049988518477878515812606186041588099376646959477393698657171745181779117489414742045019299768935650433674587585472058016830413119932254754015738387084389447403626298583861119645099853554466802611258036286837197422427496517682561223228044391373768532632890821241212213929876115758785991914772157386823469336850217509812785430394578919244637969587689197146708532356943190989960834283066543823025239686858787347315833915948838718130361004359173051696854477581196343429546704332336217559821298644674390173127024920186007291358311179961699844234797095358724938714662972885761908020850145550738993573597330160974716956285522996178491081145103365625392829478425655704220509385953901654608384330694420429853391969635986131816389120222767949319504121636618187205146743874898587774879085477065408737397697773055991145021719473693400705669465313930238068823222268914075678265112114169429831113994813330376530599110791914238724056024799991098075251571700271541862006977852799769779121173338378380191246571698873914174677742581672135932360575665137423156005177433617961162255516349588425457267366020347045620766101971903900747892831452621863291687055897819145006581403911278543433027454765809618900112937934817476434329656907222421065049712170752319270492594668684664846659286078327297307782823350132163965212319395805331751546578776198213365547040178134355027987340802777747261790473378931691347249526548547266568247008759177456498037613290254938314831802302839995433207052627308853040113639558716016593891334010834394318299485263045003827109235776094755555022510638031312489601142870304071735451699630759809287082177940129987734492831675554411534533358430853793234658562736576610227418571925670804734751072428011392731036774361315149612844649892873696338930441946076936898993324335382223983152149621253936663342292326161629524648197096992966715062018851079902569058369302574568923367357077115650556321815138008874286395914288138771934577290163008190454387867875956391562959112560543980654838100236373785458963115484463663233385976173496898054552762695493817180760139460197341465162898489853109292525521904549592150093162504482646009170753682221938180074781746185343609416286303489429880506453684030041538996956484161301328366727103501038194210405305938773986078983057860280447386921007178935567495097460621341971577239612451222122355124902369036931878302424790565264513974874770402041960313693363807422981541816532368404334209128253407621609476872642288679659363993356173713565822579634421293737790044602662924099253806538752669299138818452693398004768766512607469118978174495052911914765809235459010277227435064785754014591104711497980836588590425035102121698239354215003410176351082489092145097000783865973527499708934522604000574929690851338575863859500180067692158911014069644484951051490185851313932740387292721628401537852902982950807838701866702433590326244264758992375409136382866445091196393677904868382078807753637669124468140818967606470300467762734877912099176902734686520104349999465347011745531867560481797830577897950094669504322661501115753325890561638480294428125957186695071305449822563689391405250986066186143290102337682832014311466867515255336981116752156509086989714698971493721744445182155996509602689986595045402496033365979156708736925950860766615332243178208745867127295395495639440916303705038937727810412587029607064954742882659252880457628673236478061453432103772783422448760739534665609689335804476355653303211530946384437496932942528021103557543686117712707470967311572292970919837310881630361124120160560797677412479723470024948355419974351602690077270084210545150332416742785234902147739494722405905020668115073746301000036603478562705956045616245498256747138907497243482008824643512020341187344158938622698206095154653035734867845504651055299458036521924339220284232959986279492073345724010748128955979006406964269417547712294735129962011110107235631176246341933600739807465004740802826443000954184967323102314851730081455603145540540198422126819419464695385737992811152667964777890454251364454149468014050785504796034544186673359614289570687466141150823076807333484411053300749213938735638067502655389338083586734227964703979049813490305417065421492145088163955310160707022504529402837399818686116699005782092330727312107759915054225724981655055283040571134833693022554297224074220421210631858414586067811768483892718280789261933253705494600802390512869971256467669178339303504545829889088741431668499031613013872057052985698806852797495570722777347379153352851698761720848062864877455931351968188430434668594245923928511358167212184653239900415196736423929379873331912809701649065884973525504398245474579668441532487934945276400782964859655861712934433366900501862900528742229069433623497615015044205095214823510027985895473433504632870049976688019735325463691861903712438569391793079218248343911701293071291608879030499066049569077297549490298046173214418295322341860856504482413712790889304732474418724232545932846779508408170216990879386878992889067665292608725331685704752084814035407711147461974858404170144446059518687661839437520386277554053461950543535247853265284864588773316786088156010744406160721379468360536459772321696101975327151984705669676256831009006282619808330110715559186514936685697556649898605873246390182760464289332659332739232828477989601850099594758793953134215685010431856204562473346715431292759445411394500108612543621808985438457500706205948521708840561401699254030780377891547739060415978196656596439714471441930100130860665725286501798271011097168383169475538871058339941236951916785231881271760202631949589124966531248509736651360046650496626111199094655442938602794221377552238175187510508569477996993103924836936378396067520952329355303497364668652810215914173140207357835135864503943257839754215040656019996546814212067174219762234403948455662046407362148524131064945063230182958501671478087936643679976774582323641456067242692670736589823996200985472614641917350119220678310359563491830208466183015117534975290031115898028334524892846943001113666436899267124950583078791156868293944578554578330816275545546748588597569230693132360308712542781425951919878593448769569413165110633610107622312395132866898099290344753048758510085818241811323482555018083517295626671624432544971761416597544568964375924113176732657023965575227917648292082080983443577581206072295228809191478710103835242617537885051583527502097529436330032956019011239983899496415877175642112314412181576976570660469371444870762589728387876454865756021849500681195886199672080311123002298320502903625541372007026558859981518454014027380521923252983647424947054205780498239203761408600321346473338481589359727303277954991577445160253915958317373295671810504927159709317373095508144024800180121838455583466629075568189462404869254852369358101173390294545043358954427583871108980341810438505742332723903797821086491554158267352011945052275313908968747196100870662439232098780239340611103962622769554190375884567207648597793518658221776154275476813658406337226754241752418444218429192529960978931942520683816353606883876490708642757363685968212359032137210331224512688998342925506233497184745669457370462576661547805836543444081482303466914771441911339839606000920903182162827611629242552386777815538098256593666388276173287230433038892364757619374159657700636838770789910950124406696127739793791753094672380887116220254264374098247385831557764742392106309472965003498105004192511928971013739592957590187578036723241090881656770602041331712602882967449847880574967508569221443063326384369815431196658858964075416084463671090030541849455140658004214647464669299828335946560818217557312526434854717913408187932110233056543591833182885501852418094567634521550538153846442231458378234881142281782414900370413792788684319157023251134609685923841536888497027706250103962541686170506957505730203222963122832197624234456799092909064619411745748630248810239423687765990932187038878749879632146170258866959248575453008895552627879080899539560382660908274058418249162859999462427341832810755980460541962811975381139065170651260969611916541119711263496151842119031012426712680796584116145596005535316421064755453223547106893762969720020003904103705884199880991996414628025902810338618361197724829052564829126828192610214316446830857929110664083093946229434513350863795494738754221732819090311450410549686218696791166936063180644315411162142404324061940887237808455295356744561946704559604499274089290075272664473318642118948873317179659426691191477492578342317042486022431863382761426602347594510905488128259850303263229465286707015521749291553296883830511432304991796551634087326540453935655582945472438510522545614536625124411956811503802720612829963863843594550497794870926585871560437759983528427047304667599364422570619601587195457537849008719731183968080135128784399726838585352526236847846412974251764519320851547697592514543519689920143292881800809702311591283066969413556508333399397182963737654204368498150632836637368918079906873909330482785381419177773464272387180214617128042748570061372361110464162521423101096167782739694331061529461216225788999710435810955762738065171460538921111878196488084889626996195286729270993451140642774278539774731455375757908855042740719509521721040645630996731707691025135695832985237663512972474729057436149469503296058454055970976033077369679695468958545625450883589811470399934024842633951842891171283788297916715785710808582780269245899976821955240953459175152813477825261626116633248492720271918005681998049693650090959068313004369851503961616017392802635681789908803850616451485784438770746882412711181149895203302285954066424028684187514224303274144014234720275742000347641745672628723035339718171192909373042107985460572911670656105101404055794925742259016118507115310217896422461416870624278769660886300126920326922491643831585044117258272620387220922297914694456122896849884636183388479319887597612460117663802317727481544836242446257196930482552770674955969426992579005030027397826684901253393313719818290979988790720539991963274052762927368497021326500105065229226747732110129094929755698260203635015302709268083665403622170148873705484399339723182643642044585988726684098721658139467739850737581334945023450439296476198652352817018206044754828032602382659765227124519121614323611883236081181127318701894557630273001288903148268276723624044272760178131635017102674849297997541288250247713266196218944098319865407608499884406203827121925967893755523956683984848767901449702906807587309992773317162777706443043046837657866162401507368104085656641401959413620248061881431953472541647818190477610311170121845922009682859940069482651750247375501783121824654135033254851756553068911273873561205937973022734636306533635268456827223409526901728637495669335681594588210361575010019534886435347349739693280306787895038999354857860158158391957203311483200948693447098838100771872131346916667497125656607605527356827946272655266682002953153972535283307165695705653382837613373216042391502470130159488772870901458472821316844205500818459297782674746083142874988405291235599417309969344749103213288727980850898626629874527647935574737357241843045691557219603449293653604276122146549597533200717051227675864756196433487546482602698710955221080799458168518717064431342380968827967806255236662714247802164127771157013347331110984701648719294249497413721250166520302085600692258353468890583078302867555784779953346984495420158500423574683642141493893999195681566611790890668469758429051200171780424606072123975784003933431405080947605492789772207146084610972773971876218452824798683687795252564300308309321118079016542887729987225021268073859147396371245306933616963964669274888210035584619964243319648714649306674986430301886274100927285645634443941169590038561077939769560400158612633844009202134071986211389614823182331453686991575902939756144524114888239087480049799739818594486600585773001364909098592977120105816788663448785270879479036518239272130820339328056118540520103617827818510935910664451208179109536587107570777070081891485276507252338898108577171019804145715313849267214099458436948660796550920828032079127154485999342346086326739503565236076034979963696166350299981107424529463892257064523984660559300363126603343017942871633940764835791348701368827582684056015326310791206932207425023863532763012639246603554611346952680308206147006998097857614986723663846052271807016804657306426365468252478571482431630036483870847724842452629889794952008320206917735961516556298233300635738683803508726893833083690958997920433419063037514166612184021673411589205595317195025535334883661041287972693978724187416783316122352830914144529264160256045287549271792995086512749548448249918032411142084826135370146910675322018997653245183036570643520092510729830965296597069252853503554782870703005062259663902658799878064483140708947087450164205599589346398454109161597235259194515003974111525658746532384261429921953239140926125823062567109020359243107661428964982942227901063287995338038049178680869744681265314611684658997480097688251969882909883250499245002809175770781857491120598804425406856615877820391220690791775021299982369258907832294479742334205835101586975234390726609907787942166340412122849919673380298218169058172130646921153414663267749628507509895163099713618817537519166676008515520797695431163189666131418897887124027851933846110358207303777913587555060045207306756239993661870706401869167686028015390507329415522008417260581687184046977834377939403067703263040128399937560813454269343726370311554202544724631776674876800178032122270537464775565789058924711840015198082146888838583520722831873071680596931667122444033628874525922902666938557344111846040393919979164563606549815547949284501916524194436494669531228194598286425622074793153942772761445031085082097669829413203637263137707240451281132211669386207232797540480498659632908177644931315387040297774858608102618060452071309593436464458225687394349179940992560058284914143004669558127630254196914187634300292270945254495932073677840900097082882419132685987065411960534676420070308208132716429762899076629890985359446527532379008152765866840492864511887076833595171673728307946647047878221192118876089036277283139720376666083176014026532390980279607714048503244205302022391111205600923016518419611103755620595030691886945972795468543124864334587750528722532650488153525984784894691921913206922975301408208948025739390793796803560710629083445187015516526723132332348623201069033627909353298106940807273345916802591602152484980774282832098311733003791040205135315163660554365112214351357308667154304646539544979291236980108089789027623491952680414201623912823450358049827083826908621444309719946172680279352540251489722013398418308007077809040569963885975619098033646951970581933440945875671103530601498934102079234005471934808885628600715020835392665279731631815570571142401328624521533581694875093103574675186218106157077093062542199547628340697795766160019873286897547669589217994409059267492557888515093769853449159660033852859557115748328952654099114235839755708482294263676556455650249450526538705280207439064907556453530472619883753096107959798117840257779232948209636608929404350335286587204108505373122305054518827927705037579612525624585243528253152438866030019647946170438268606682320018081564702831910331079023038452456884173551120384370209790834013927667899081984160743805751810761962343891854457951142273530469531289831352744041697093042868255787264586250129078100483888391486761843058259017486211991902404352070721761904422881011649909551407248605079029784489828031779906961941483587099136935888174727201556271628704543375594013218641072848709488845787374423993675542309415310132486873609332093076699995147132651811518695189756979889890160950592507189864576908273395985712809291402879332223345696254813071117759135757463587051923481760395575492829961767621245422205452471573045913038054763829882672591964826944324802913427157851189577326799092054177212980562992025023949106665981850685506147468881258220908244292482513328096005220226628212244544214332462944236020340825430759375434452442851579781015268351172422299924849148644852869443577426844631304640754019684073229285774682684168189452327440915241563551605030229223021344457761291992265645335811765214699521254979965887554333669379220887957821841259191682000414237242675193750851403413331065584548800470221076324538717726665572320076617536176236143560532620145714178034624698107808060433174438432580514608080658877050806325907234791300961911227736430435713384722416912548272818283349935671735361689693363041470291310940206343253989017618255748617939153776702871830228078015784450927673453737602766600122385313885686844908432434782946538556814241091882321720313787820005284503331401158167536161296582492138207980581159425857205917408239486200214860023422066902594066844929745645954083034844765248155374433181342409108468842488466279256642815749132773091600488818956037569371916311453389068986159906523809765414577849654628309664369151657216355705558710322188336396553643668721077627557249789461621827601971087227061721439712893511578054792361837178614040274752689312575393583554117034224983592696967961677814767412793537241016292591115187814525300411291474556044113480317776169529484366575665538210458059867429579706200111204210886241306260599853825111053887177415307636370420112238102584476862465793968990532773318456284599912550836462674844604417005629955683315226930430075914810661772754036692056002165861814797636163832056360627203167928067947933046295939612050608155815046083542345511618292893453787718531921064415991234169035583072500593028516613695626722450107450451347464457239195280996915565369411642243549574904211836773911556951331838517919383556150567221223501659929998123214277554038882022287395782049510885766927182449583298801653602937336096027007490068974610229033779558018475054613622793478715226072034530415129624507466640375427860344666296230104918976581963037278356616768842461484097797604659855752315185982356922071029726118279886920722995004611445852836131660976777979808495985074815934937974630754082982869325033968582059966980486890187092988519530858976042676117749227604351817603376228385919393898838454256912298796685356771773873332916899761476590689199622496991492560324676652368852810873839295623258843710911017517710288855834488499003195093205538216113630839822710475286302261937213330486280512116077248147449417876887824643792453060207827092543647979153993192149844325477034789958546794513989881601070974803763258013313514849942862916970260762945872942748072656069885826348635331420692082989636543005623683480590481312020415535520204094049614299314834354571303200002650376229861133704023983452078691063037017000593880128340918017374221652998241104261195669299000286872914714546403035399042109180826605571177778043624801619291953836227620471649927231719814334669536639731434702153303925488359004916945244151218729437459712501456961783440912340074885366443662986273439296868211189647957730693722933541292208415415301649238458974562605545474911726200704192613872604242017933113416639812369828637403797988575725462003523448184541687135760543035783155433081613337894556339591537488217863653967626894869238271199138791483688791799818241450562019022621806409310938547951732791587633941228260575624495498534726060594627886559357034471741393113039811052710454301093246670095827253624232459728731856677363277962786485195621429209544438721592208036449520267956625846574007676489251233039890245757569635700989702418871923246257156450074728663377079186634920382803467445501736372767845581094479317084166975434211520645036147556329990470662995923171890439402178977436971634466289479725727224674731378442797213184769446623050948556271003718851291296376476350486186513655330522362388522942900151974483576413514842752836810093988896422939480590662689953554022397335362727326596064620100452088057743279571741964508815147812931622110651802057561677463489668011848414330612556570827162003574798016493974473528681733729400080582076933729889780239848524555297421575425365647411212539294618729197818745596633592466474688694846004276281364324474592537262044622856009690567907337147230544585111096444567097068248454817463143227584760960514915012727190923451153017255941492418492823101449054368706404044494191764478585247089428705223405161201402259416103166271885207023197868710954740646157161641885463938254121529458341380618363241391965889655057989538862805653900125024436473142087534640842949045030105642000820310144760804534153260293484175369429291807188509227556280124634036756038064658602391974583267164383959220041913236036397566052785307375552234871467610643543145312296914991582336712511421728717773332580799070940418776745006958447834117423468423758748657941439374199723694473392153859773907225465216656087825895712150718339520462050808406295385158479410172715684528806621105618627254338646960820965702767821122012952732637783840057621813928022826077068484338858018021941067424277947553948698547755764345132566192938819657536758181097691912630124425629887960377897277128861905646883504799572426911591465782977949640358694504559629756026653016852656122136427421369742459371858813208632345584465559728924916976447197815358067170843049192156243322667171623328829495743833215796749599319460188309437280255806046258152528935133572042465486146825091244917006211342241717515921653818446542642870802920559862398114581994338045662226130072788163742729391566964365945039187961918237631361140780950548835248460068673496997113756210264592419537262687062171686199999638834382494021796190103483464008279338020082865979039854662293918741683211596296977930316424327515210460634391891440400631501677739347887779313316004332291801074185987207371181457125580520056003620967867083960824709872804158358231279341465709416621080441064959815614195260287351836693975176741403568511465819033964767438309889071563166019570660220065162448807562916524087577314561681809219981948354670142446600975533540614278997954465186664130497760983060374478418348664623804859028039642070725186554080264314905209923030533744886527887594574904189145684073915665224893291524898636960006409030041421536497449787475567539266147943711004618867814720506589259292200159837970645367773252974184823637429286864078151164127401663970904419898381528645051314745760373149361493966150825828549638215247946542176093658013405732299246603895551409546541239853934593805914769366984900497260013164170121650393809323776071642092779348177703540248433883553971891150611449281693193065750658091341810255868585571289021699281886270540142830227194425875785787172038454296623134177787627028186075719983409517652317490028628755426335171701318588313812296409877714717266965816857122034599553472209250882421040966641293449486022650144455185713824733122088400760982599794900019673848933661421242535197678525617181246639801852158902855406753049503509860436251058733377443297797787713744669387574125239766686619622081080754189699067479573420697683681336623807067287253751860658187064103761477550017053177505644134856338337991867576520331958890176661319159809408219489701238443544898242459989749142986300944671698092339088863917244053013741658037948740530986405755415646652669775898360836417037504700139242017974298879573155672860102830785128245605693600377491556459130614278192547984933041206985807297333247896831665047412790525943733637948218880255673828394117844232579022588806937465567309805132164860797509591658876497522374086105735169862848408472409287080168053988298125328364258174108822232621807076406636348787012781075920067638507607113481987020429508946354596735176523271712987500939856818378163450061473243905981256561671566873656259568731380726857242609545254052697907293015889264510701446322182720984157452755372664648276855857720417983669567799370205306090757583058965706346029315557759657451176618956788021908935691795372071680816910119345847848721279971361621481387529427248509832498395680787762460205877021300331700769484326427745552125752121837687653132048982898460550050162868182556695826228446982843157729659341633105294108314749691485780773355828269964732648793977328862603654312570038494237821857034311211356794708662627071436133069961163165383411720514582270932279953222228767358250701401745888971543878760083127876637921966593510310038410152411282147599066357390719535603349287541271269108183882615366905626393233514960887785683368989092559015644081253146622943488219946986250156727044085788059622448094417229917648137310838175225489805465351143587520198572711219774392875379459630133198884555597356083855560775293853542308083141568963657204015224484342275652995523814710107290340971543970713201607681599929876933366779035203148275441752019029451445354691137652119373246075537869910675908952222612334364798762784997958086056515010712450050151866752482295557048453679120565034271699949571965696629332011151170622639096847116583780559245952751987428343245066742660781737947573509601206637433746564271059127407645446377969959164158336756585986619801673694921145217523377391798455999661103808337953984721595772087204946111251910956382547049768832658580595244963332554132702712670114232889781930952432777468604315406058098438977692938739926176870614528703172835413310119112263437125709565943064339118535075475513007566148438823876792342870775084491542647225429575181026966877483109523895394707455843997233317493513397452680155014987414320727597920415340437100770382635599578351405697160389320771538297191504466110390572011577969581105693397353136216479985039995969379989229513893587053495312747465994254010757741253090547003429461517347772357751312567084472750070583323110669320052462568059675533237715760151533192150274289173311585235868160932390174627794899615941115179171170307058881598884904270089700846012612906713927205230224027865345624680593489974511193652266946704541549052212411870155244792360557475043725002727131625616763986676850236639603003095035748084319937823318276665410065984872223133845415358823309888317132443250621543554599528153789729809917823977706228326704669800350278564166610911803519411410361890993108544241497602724325148468810278692963142306682556565146585898011798199896565530254021059047083235742821565104048956844276848769628499182193524681925466436806153246729968976047909345514871007875182468990367417151536071173402385383826010589896023292411867510725510250700295330459774596526337510493130370310833253582678536336114957219055578834160451728448287048443716245792783475241182706243642658952933295668879984450392089893256384062095455958981213284655828242085396844837945408948887251494511647359504215009277507296187945062358419193937359189461939401986315664276515484192661186248862939021677890650527340126958362308450947278882109290502085876816710990317683737727489664575729318365547549455814409406347492637559639815528702260531582333197558463511190141183180612838295386493965532020985338963048723382035666779080606257677853576910670606567778706657911731409366834978342745363973737159168684368265642887716580899211336709221376362961959970072116067363639513342860973839202702607954904739785163060248453024150284339015806910023161265925640868868913346098128639236132155461643578267778050574668466857160518421488952523780948921637116676599851890434052390548410889715390771173784273216071616621872338700339010424348963100115990861409847933092636540150908456339697716220020201763030083386121254908026894773895998781495000619055789155970620052104148700207133427354720010110129488887091885281094989570161913082825899665477586693000203349169311337469678326144916185505015892879135081757405149771192793687794536289507713290836612673940986526812359707807638934483389107559211362064441960916258500073449755783966885479693450327940250538813322857450129594794461700221092319265409670231257745365215647575370567602171547221578487608551978812082002562039741565348488860274586147696581382616573683461351386052997483045392205256187434769303946949073037592178936952462391623574738540531533839019792096476048041429838632449538244997462427335244308375048258250668366229720240751294785716964269644677358471001678755412177003671039156272611891622026154357776326717059711340827310024622333711690866442314588237103549052426495787600655873642474061769699679038169291572787027632494098863407947531462379705501493182915932008304627468600466205042664334057371708228785741389900062924550088128885108914544700823822730266944576703851720944454583209645789971307116882100268360507305404354141204132449212084302450239230479051538350892876564552270294312378912042616892379644013637305202519959484377174113080445662588401379495147160977979582275982926836072701061812196847585133843196521031785510593920118153938560443678018013030669480471360528820422391445225125563366419803174205578609781715653504186121417729410332763156612208632064498538976379542707078916096221638452878116662909698814166568630245620639063453971016895783362972069004671648269546352698771041788902212179527093217897208149776086813879527917193189549685711396166796404071787449580808057733878596289014504860632660770143931499142221733603960400784293298044489867359562678156210011064759163928629118251413815438615665386089150359761347462668569537925271070979872692343271015155766292595087103299182910315184704947290064337405018921743790468156403613738736631787687347594237570764370348488070751688164297576117955553981602505464160121858920924011193050490443124960873051055346703750552763004072293011222875209832530928158496472221831694011225521161530402500618565455602425973127408133312573793133331613919939488520474042196192152089467520836650236015221761633077917489150341289460742302592183476708030196858613373695019701211924037286916009023464796188813342075736569136621142878987428373347992315260515489919075837490080962798089070231414242156899814865586053455714929528109779172337480302089234698197773208289981660502884372634912833472212821450372173455420795394081362385872297362216004982308372615412844334282321343078836757548466434526794391541628619563796953773913271598403389967509197828536366775281707956784763869304391424341362874028993435896850310029460062365018214230656107972055042846201453088322362610921769149797073399834813770024874297274270094970099507197687756545666667529853045525277704275935756442225645075961189501931743278700987500039694095121612423424050682516925865604184080035207294708948701338521103843883163542217434743107108837277123132277997676197808083202250475072558137235682816205027161337282610909374435746555911451502755992770055709660821341123755294471234818066100183175602982764487897034549595883887716957879630965380229581797076770592589199406167803305541931606332837971752154078895113364063733530165900206828879866902960785331082219335376414018065749845977151893670108363386232797107702213105099524567765411134150362583306194472289025216381271528101944543501666573570506604060645062593909520722022335727953299089252589676886847365406313964131069722782372468685479522423493950995650176762724921188803359841935611582692924547134224507460960926650693053111796447763544414324561702995506225107925524810347369222276610448896576013914677645209083608016799341212856716010801276139383218659636877529948185903506382029149635141915366659606083990315669207588839365033823198775389397756640589592446726852953430471315344209545261895965806666774567180581501199063901679693599868965830704111272986412167289607861551110265502789271206505499179141854298559684180631569719580364447683377126387735889816862260217766038578651464421373110334175235236146572533614439981643288334926516063707116314293160137816706637094120028558077035889246383898670158028659515365475107663503386677022353446445262377579798350507987100154658056657758309757875602192901386586887737575275017406315909220149255970737306516661871915673157838602100786084499766138188592027235861233659045415429852367285535008450720419681082955427596867009960169799832889811793665601143803618519615360867549954573149391611309815000197857284199673823237901206083256429346798107312725446839731919225003921311707013308954955462827654127597888825409529224561804706003593976943621171172644177024270911499063230887306233183456569728093051795965282199827435536605953714996790808808240193684282722714666304247170509828072773834621048664389496323678796997557132327189732275440777703103877255391050426171841530130843626486117326609961212565388003818504370017531763434037392068915677485587164419139219187205183561821017364976904505617835900912956466379406752305166705692436718895933676247023955201902473870961289023188419003077937568036831132046745272699778630070821862546989401739777764730812119652786758354844583918205717511041789397067795046079617404000834221314367799050831564849792515602206204779656773962053176382911283550452208941776698802387731592826517920437891472095933550086551605888543659961558362002862649138024611510727151931726280681040156516944822261828242015858621123115691147498083040063932437241620387490294343614495580849852937572828833773977279114121560294141918528055304196288000758605702993247455800449419604426824622047692209969983428032096036997530193839008329320334435668405924197771959787537174921608453350267399382767245344621418766045132784526887624557625403897851969408540369387643196398363922616869339913782180796570119921111324029347392830211150841135804982789614262045053203882692698476519195604662978284986691525123863063849076881525500559351824375688932363570005838841148299244559725202404114541751873464056368705916755790216901541474555616613872003739133683687677721880455992163266264144147875016828784217443474650700877376841498058247047126923756225918371543339555084606514134093400621198477305322154003600023812194051859525533056718596802386774077199883966578636662084866002861849102463618393132595177037297737104841014767091684550796487920835388475649351955442032505082521936712587229713774400245851462486965127688468095677542404747658477392909238685507636730036017933094818113616951090503568444402499595415420004723933916099831185106151112974771175795893221004429530631789874392303863537454416998298952281573600235910424963205230596533816306548710369293057211326174307716357798051714171010840668291935468512203676042498474554919423234804723092409913126077773839304957273358249012607424603452087399642863846402502157763799776647608269531191644808044703089029450552634969134766170472556889344943811603165765944774697755486170099246117467431213695088263904718126026820783438483405073666596782307803355165618368919804422158693718627290364801753744431327861107739309995731798831155627350248636323447377731190867361867536441809674788148386681769233405713262483009815979510710113853975389590647216230817660175794038667656950050624456748998577689936091980201797959927880911675827714076120876752316740293969688962813144105820233251250665960522931768729315284154539789825799883758698523586077558269532854075582642539404174789731569643012254538104184874164050990909686344606227957070899233630081072374973402491788960300308286077179889696357678285773557103817530675609031038699795585161056125288386209191629764941771003710966660770685145469772488514530500415687367272677773449007008773433720865147366230368736806714554757800037760839382488689660336696059164108472426300603464352816850601902304502183148144830623736882984594686869755527767878533009644781944546504200225474568112653553993573792472023028429930759671767285863073396196378569504150229744592638727973020983695556935814188029856297587026469451416649780598315408627321252083182994884586272649044171710550257781702004392641489642082065550206685382838278901104472042040281303633669737322277447102173319744514965594677982951518878605575691675650640625944444622176465594944234808292567137080480602062324090047271551475108138219164990430046594769899362801728721368496424953686133546308888414141528180890553863073053506336248039089488870537332039940931455699051789682722479708326265786301627328135290669574849449988440148924942607660252650737155478261734897096052841731646978165652129726430372976777290160900704013800015717776725257619242548179790796540260858953988360302881278476637543230278142008222952901011767521629274121587931774364332490667708919681445353182019748901328573370064881390209366042537287427937153329644115666230505639180817355320809633374521597232970683700234753336657794344620708217541223830726384063153813393260392259102304881096493605026649874802302447837401213408205954548074824589439156969051630351148121590852637794604896772558509687830027399709172795662924946544122085910671111422600033196972379963250928364330854749289323044606598130462628180324821912032638573294418063329227332086305926507812594631707973106261896743494269556792065383421562323348894723581334626290082463311581140635120325764301295179090575776744045482799043555091963025455229267856344820634746358712917054362419622975378368466556809329878979010171419151105468467138943250778863027361477758499719593468333492012746014410891583516034648818081964344967326648262111200409012078175544595599659436740141542384595594077805310924044576210383418809718435441009839975475687682354694405716286661273361967941739184383629478653567183180850251654275681908824449093877671964921080939435543786658216153289534961977553038405064759368052268124349274817903867645474848572797506941187968857546264766737064549015206786019958956082966279803588419791578903976695966959139311758265686773332966307647686029558902421331708712531098386529067644109200162908615961071740997867058090352596206975524393300702660994396317755504656552719020744028967946862428058682540548555737193163849751899167002668084511386036578649542597234949891025658234524382813814883435627604107627258797636582299324021754815929952634720372546438215154885800873815563521081244479560387750821203083701931277441325017003765183103121016603717273305547002971610032213345071244274194420061276263125341865627226822062275631838724220337470406958027271447855475432931525016465793551740539826359881484721882723810405295088164081825858585908044644252772284709939325087824652154982283063695146516776391085542429275686185088293592891060975733588033172631036276659478970296562714150820204821953381955079937582252494807993121962370895326875156499686030570936733516377313499702089816462810341255355960389686822108267006983667125597980186447005376888202536864717430488194558343497935233935024472189701237960837124365694460346748880194137997440559380305545305079828176820681973026735136121418659089631681630624269449894997283579574721284049367560818505265937898274129710806622915397427033848629365029103844971808378410175735651334717980654964283137301552094612092753968561973690610323383374510766002300734585220847555738621606916151688823768957676009130133487341381610344684131104521304754855562352469078377772980639897328921707016888160806254882584202848211276260699400307881840423123412962552997126570790320788705845775799372711727073302433557210968852067885483389471452473005754903656910685057444767824365978876035574576785421383434971071665786305892705039672415627773631217126201825822553755268988751256167243145228855471773208172720054511646739104623543264208247308162369903211260956460835582626761085986555654044582887346661292089895330074051285010762156978612787493446774863532982200404673846744891947691186718408881987726267953297910233212978654425292923304599996031532402016647175556043679707871789637935194065382430698028589671669334702472298862438295529161072255448010831489838561202770285651295945509003073742695093434303816482882678263352843571007733246775679575890148060618889901925649977327208666817649288144458279601281755465199166562479336976893745442439745975305079128014543160160045509459108310031525287820530156747314969768300664696190698282980721994917794026670319464698451245745150874853743772643601507308577557055481758466061787162810228293623424969750174160586004875822924598895614881176845544479423775668864916630423789384479500297092090067000535918723427490641339077762262370279506617814226029168023753104906343821586268807094090493465880582392959782985612506136800818797197871813577505806766168459102717110545774482815743699111847885221907461355762242329804149046484125898414309477051343204757572357189475467937137207961394333111186203899507317016801698863205433786197322747014091567508806915755497372680077183087142896190836191734353790295057680747322343758719371619937884842773384186968011725666661856003324304537035714242355459453232345957039625099492713577108273698401980430377914347360443386144728537154793856188412445027797914539661868318114808682560104386580765564739512858054355724834047051691585456157944230261074949637360265065128064282907234652827356631374141223716774569027257918727080626615923284175809080401653191485652033221061532350310848151180815154523789634197875963814337053449925577118927291984340528342294829220968023533516656429891347024449707808947218276836865322435870930890223350260897436985565133957601633197703906985507005876507436765216456159876694820362428927067647507995692874087983443946223480042380733307472940369371947103825004665803244308679511345804306254348808875361500215036492929744596889814923631356502256822685427645774281333425661271275887982119361386240639284108759821982191911681247787387317143437468003863725686497201149006055646843748672786308233522254168644950480453509612483577661847195353900030517646997896808319831033166269403767402121883088870073419675565109235799125954984066536170546045147864983575935499322751599522534873971930663540374453326925321118947174016785996333726206197070183022155817271492806317668110032625812339247905435639710176814959252349009208938028534220628043855916377842831955184434251345099110242802133348770186646504494739024430558111211948902888643905744757312974723678135136467752781058870596388957134362241568831257441195572326598567789344683294884226344784541708832004473809946128047735203638148175907084281170278501450044436771810195295756214628658186435848580233189067356247970798123082021310271527518732730865967564369076138803500251908414756525467100850414652816792979231408586526323309260409857128481100345688522964086686430033400424464420560843278416474197664058130968145662282695883752481971737662055242605917989371548544966661934116822953507664640793643352802866970772968483933081413627842307665101509990390835154724085116335909692076123051859076519332996943211097970595870063558273620913663029258725094524174042736611542708504374463918462826817011265674828278076719859423619219235858081687787522137422186264114417153201586004175895351261305043236407256148274977880607190523981931809305206535616921965084384559525687848070072447989963275768619730097958409822325172336312609283251227969739823857499871396964473628718681073305563009901584746996028325313903476340914272885001077273088531446886236711972405728462323214709131199040186081056436687374968746419481557006550776672703604069893015416237938529167141489128516346505209941069472861944165495100346490489280646786948738146014327649645938520404359008696859392455470857156690771117728865560013689931737697327773618420888380204142232185798374923087614936145859378851376293882393426290655645820094794944594415382336996287264616929436325063933790260377689436939300903227420796725662691868612635569002359988140910008831520149740110143411611813758127732210501953246615262484537862973705972988342630631170356855730611983139664717369620747348302332090390326367845093577331181718009275539871011398319944810088379901810834885307275028682890735567277679369450114653314910681482101135946408603908318507977284407187773080073735252803057194944272490228077366028497780507522273032700902380240837433116301632615293972491709182759201100294166087039794570453366850776523292904001921315730135816081522192051220332315852387224024359530244444697423414053874993581808112035361202465912086989352132154106839574720385881229617759515953702332713200095635749706173909955548678704861876195462044890618834822214494546639006938756667181084613989397206617644215139180024291581378716637804034897582493591505595081904063419373516282432017246887052676640861269063644179291945241256427044699675696732326138385340376004290511552657720072603453936175419671931765756725812381066323089622941884823291834861595111080021573232163509952512803715913613035488112907038396644106797304131834331055300068462300899368282627593206638079101337826501799689164677510658634299031293550211955942704660479655237785295211914894100738336277482245581976210264572052332332324985631094852402112353854659145393601238246941823893475180927943596034789929761666053653213818759757668890842033090031902454942732180869442029269032515686981998075024961463040496161281858425922773241048287877444915026473043531092163730534637115537300759040338203803452971838592561798092345371561997643704417972906963038466976972854230169859779416486509162695981347966893463012846781499034023254514836008387948755979194020493266727851800122380213573423381313280947809215078271888063341563212602476983352425671978139842159453527220183342489317712971856174247214907266734604024042206576287918827623119078902354971487536313265852045535862058748030494774929770547941376431344119801410198767938762285306496357176495440688531343195976476771314281172835789303002165382276846656876542088739663400656346679544689896974284493114853848258787043559679308357160927917716087773505046998149055471774363258919869887244303329067108411429274922483903395572878614714768218548674180583314204647674725875336435203979694017435118460331831273963379174390023097334107556014966265119508005440441086417486000535567124666824302221345396623978110903916174700531693865211147726056269911929464910429350107921903568259977516271804561127858312984028324943153122135091161802486811725973596951803121110165372868675725759270766940659636727513786710096937046988292970570804379403646024823591553872274238764774570026081578650705128766590606990546476248631865393242799948576353829888846245795942247353201388199408707520312001185627606768252346106895583812214694195849579395222174326791334141544247047069629300487659293597360110334856946746273120560124126070716755719566125482837704496723496798186004876156914803828099963867252069301065986421533325748617494349135818850636861412336006266468002503050434597816936730186656611333041626138066670589461037077159896116687260230323518076485959995023635147602669131298061086940053653312428793097560364437766471532785877071237653431736186625415695190220829824257206437173843166771723969389956769741698898760981230876516721574454526760593217789921652481633142899255005655616964922877863295161649589314235706441735227385703249557931971086361689871542987824361799745463166943214801345035333114027841371059873233135802709728676016513964940060106710069913895659609664611218276168904322475167449125991039546664136824330022441668774363134998362842150888497510806915377009707338325571288635348337604213959414111740411713479306886700636522563929312982438397517895542926923047179345032485441873573191839415585409588164382493879284576760336226637369179478012138855308170469373727700735492537604835990677059381665371526303086083305148782986192977184758220612560112553023881964652249643936220749059660797406877912167750874106635974392534545825249217078005453883571783566749944197532464557506333816006114565629311899466710212486824544357877385982657309634589830549877153671502121710901410755610428413863954873495242987389568876385501691334463889929756449559544589453089723114680409628472943205555402530943874292582510628946003535238221943238139240303324937987844424866335940077268016746595113914005551859289794196877889757588855283944293696798857458245359927328299667250935611302779495200943380451141378412225487252736860239680653763722293306303129145884100911928914963766737569800857343248510734670851716749236375677867208077710433941083576197992541469471343236882669378921564859601099886752623730411731810210110456447923652934567021989519238137543162898114182814699282540591227018395072129759797665486379080972083209126284267197740189395944412628459731569670385461276151980748170309677186903153723989768286006329019480467269285203512023737645949800611215217922132857332677421333958949230253837823024726143342527363912523663712924053037361695485837534186711903654080871168537889407309580262566464400882146118380221517275402691691117098176118140316126448375981070202586804177964863009111808256437730690270274836092449797408005799110291737455357542872735539414295613599140852486438078564532158280166601783534738312630289683584777580548705583072874617584555537049037238032365458864700082218444193653015872865274102234537782783359709001724659647103807881959702073892705576591023323374023838941214175918383908180423626156233513358859486080429503322268478684395630644146170310210908112840334866197720077688333003896682747924504905262863336473358570017816754239374691888425153941058380850192101231282015614248248945210466068102910209928461467659960869024869192889229032137857290255049446699430073121709220677331032592713114981577207767926565517303187641527862777107702946137469136324045237810946314359058159775151522273463216743554546475837188684562624585585622214481264156490503403597874797961919375563236267994401547335671683783325256568520534974917836021969837431020249581612746696684859918125692909426591100555925327120255229518940660715247649101438032337945587434999209352612902719772824091301104133323605337657171434222094185540365157471717058273463347882647492219186246580230518318204749174728788192600951081680114527129254719162529992241676409832273056308239188781264673731507218453402019962231984474835851378532239774414792149529925592757647827876361829250557006077394073044707994338062488918495512446470895120539834136153749251867105716608620077876985309479012130796427763174778614940915241976921860615663779032671052189942204485693357401967782499432537738133010714829287246682675406906784696292730700533359310350685085461399782741709002226614050303216628796106533792425362730728662083952635904335227247233637889736637243827675526674835682604358794155866332803707437750180921213759769305358991323357328576965039660781235603211682499459564214361509717725221322699154458195513263345602953189400042680057436436480916039544832121398354954942533168939561033047417782223669400963741712821897439275175597517062015941445211125022594869956206133216843440824260718840952709826166248962340572112772701898878201079071866888762846608397456486281802607740345592891793026705513197948279093585541729968243081254975132561656671886960392805555071116986703885047384581429643738359995209628187356300397725941099116815734080606678433300840006088958519695278617746649460447575238728842772815379272961326162065296512642772681937766648378620903254879373645824751774694760668740782343595576938670835393089018468374420728882742018025098200133705988093316649379350923788855974218167706631845470375641678848164194011343791307319159355595039617758337432990284737806865897826899188039245150620536901730569076090526623533153027418588592093732691430683508213622260830068729330601192211749456691289423483261690699845817471683286765811544687472743228304489112740348480815111221328263491473437966109209090508112209652709798155230615085900046323446544326559766369771911260107790398787921929008649796102187490923177568504336080393779654459762032278837617155935605004513284088186122362562737171811200495946890760670955065122769237232723095608484500383282991386102051544385225092484347613208554994403143130806861197934023186330761921252735693245659624200363815111923574853453426035626244188342916116873974698087663690575373858091326300491268666746397462701725026470859357532896029913450800873494743235946454579420211054017454185822122055930930886780168699130724019587624835908801884656631857317678522718061469027852453448353368373895936958829622336453758185689439718234970159789609209294443177239577058066351599017733592983878995624405661181546224103185938934193115039958534929040592905020330450204697632396859859933109104840595352581916548725901148580765376062289178064779900659841284105277953692763178931290210132120971333905429745438541503175757212741899751721933927422842864949794728129561399733434862978451185381970701157658839015209940292701183191785396424322768270579877855436832828281529166561335116754475235562193520807660803709209121724768279677097776755646096142282573082164162327796618453607787921747487379542021166881092906748268678063369135364408370265302867881880616937837724973288421323483402108718259925923855024150982659528217250994369327873194785700692416608658611844478007423514234694242207095886258978739678124698490689854710790146206313428733428681661935943457287048754574251003582205519945201524698501644901204128430227788089681342790805858316520156708959897930285343367240441165699648773095356263071175665154956039544847166480776828390190200488931127891240013259957957638858261921995426407439417711524894638204462116980685533668365790948988842025284718787246031111314718627943945956294466454441371752295247679773700048609974685495049080418173298463257572220852593315116485942274925813781935056012118070771177174869321276168757796330835958088990322060097712738163248553600737928204509030230599347301914056204208990443880672818425385540606833190394243809450563962118490860203661938164392548438022894426172559796681472578760610612654807194912771764224246650413178972610509436438608380727509028008684093584560828197925987717269602036722479034653542682420232144702147421144611444338376651618779838594744822149567209795223255762390155100024649905873094478726876874352240511196819411983769340141142523938724693296274710482712821060605254474744716974434117266806189950748001214542671008469132654250482830595118923570817697840245554417918135534165903792086044807883964020155297782268891410623081005356420880212381577350162172745456341889197498277477359619017200545852335181385136238297784661869728394802329479778319725921360772313085753548789063111458975360240960905881134064240204098443339894128454045151110284701887810609332442753411441548489231816058811985746474884035941462598705313059272686370238124850489625644956729861934499879690473862434776957547972511139918082366885809395021836711214500711519351180059531451308097151194550344535254904138997871744432499409892833736461529060885086574353650894302668255236325349985738110838481773643886837996693876575353624993968470654041910684422412752203858586029029986237330344291664627457280118683197854316249210340484049242595021573890342858914367839507656011115255972748078949959213421956981689626795739659110536635804887459209967282477469196625180465244300713365936910390412722979562104676923749330800702766001661259534785917295105316237739636050928098759398794629252365108913444714973680051965049278902693349918715778363792833570371555188769169715655819638593568849706377417503100991503284345933978238410911476079068860259834081542130494085913577907858335488456774478446507280913182351929366051884907507649667471563713207202860155467295370935922249750586579650580237240276528738926055339552356237919574961665945555061893625721227229552572872702504563853693528711055123937462716240815335132681756027225062855985483939171478737467545188522201242299166401857566586411503670519099402281076560529668175105422950258921101490585686500826555606824374034982792579573962790905963442857362549034276907675942691250044691754046156527305046041074665838851270835822105439288563647036604935118332712592870368414959496718984838537813758183865369034064818484211425426038443842101741229749759301125197636015285628427716360135729361017555899596855244145185470405831339266688361307956549576620335516357674988921087934188999288409702198371951545854625249811658214685431499224957878913449438988230788957778781562377759226386089080765279842887384725986897738655318600140441988026409100340927536275388248141273308107204933950824227953713071357105409094942112796269697127010385031057886175070146810998197562433826031858297939797275189531610400627611090049154392877760860691140432111805046858066794575347282668063528216055963409265663108365681290274156247248381354098827366710689433107987613145699469185933107182775356895667873474671089524089131372580298067005035174724260148892412395585813583996857887535517810914859549375368648713166718994560599992083864683700113537524934452707375949653432638557449742820905752215374531464654805041719518756102485844149766039902467750783611765059140834285554279751764094066878901667227092191396800470180624496284108045672664713966654513695878456033132717397413545509924115556390225668324898136812818831840928938872669444175613881489952330993226047797277147403480789827265357095478031388146037324504523136652965136617502487259885908410956142325074065097196202565507287819100435920904997977037073554950431031438645089857148483144474838953544661570653851120693430892726695139722320522860379203187941221583572851228539325929928198677364215065677103115076212225964350562768686018327395991142413266178416708524179867577759837335019908832524211295302723367196706083713155020867114805907862916821614417786089658056541432469672421677418446791791232602096111128980975173437732121169656188091941488834791245330035670121113628908751876043301991316025711554377107392769322627045001826040430683600907329873035518334421210818546247180045060437963554438067807898011163729986361814285607488126612674166517948416820797312189359444094231932889084807354290246754800187044972269266635381366951304566977094091112709642197948676802558380542054555086148400738306668866144467910943116844312668342850899669593251299284486901267669107949388241152356724903379769664662467486234517999282860550654760199256829386344582745498676227785964307304589501223756292036862561174344794902547861770958781373422577034907607260093884714413942509158169668004553997866508291197333196452077412958174669599575831155108043317839038497283964514386713158724578883069905162555583883223302085775319460873996467779311219386875130288856158609170010810079285198041740740587491187994173909064567029563372305597180364988750688937908246493744217925319911605783962917990550922470424322412198428881227317160387102366382175607382648737767815596510909859245907791018836810180138600734298310296602040563146265601498509217829750221772110784091947861755940990655902272326712769581982908044175549646880483436382296268633189256653151620093133469033997325082691681983424498369705544408137214180438425156633922454939745605778300375816310183089224443160989754177110186215412346251156445539329074751804712641575657798732170407936380492010915166584262650214985994425330442485124417751141585823085264202578576071885542681523327540164727913258726324265862116252420406665481087226540374636321070639790610762504389948704051588063252373711574417214749652681231396393664443821332500774558409735991635842581314036694567847857862865667676050606570503169535169231912173133640102776235317901918606372445079935259050112872126474066714152226839577101806585294960461876083587957720706821443979282612940423875571086562539020426183797213024150526867128506838967660217224545506653154610514146024480500122990609683139654118065425291388562113415712618753485966642118543019972594132031426916299174310324418642805131614049972420735845367947453274862114751432159590700956143241863433199180379875605961407673646544640483948283501856606721734969308371132560701626165814246224851410220501920953293063385290045838097660378282607936255785634757239048457037735138750984656857222608156633909625607035711851959893345468435782879779349202076995875334453108769172193574870858409697173866448170480477326750271810103172824584867051327155374186566326025964162499100886837371266154370188470219349569522999687336026679436934907772523760866161791022626159768742465634456597874840731211212861170108530027103017789642770311804188307234045583618708778533219139667414539706910105193384902726085276591652201448508855885341779022954398241904830697671096489402596111456854271749053482639248786236450112531288453886577758582987674129712192184631760156375150012476145419866402283995142156120462352115608321197959325972108293621842509067774567252140154999102160307621879165090609579730239413845068102297141414646913463879800848742777551611229849595231898397278766052409343850842407314194899549036547912860348092526282811795174797832962430906685963584391719263498804936928488539178695516901780483274769575104802318018445309822657921054861676679937229447712926463635874593402317581907158192375700166445481462846283893158397132624593802324516267651551086688794007020920393648176704647494371394305610876489778988286229065636841109012262333934401893757411806661743533717202512140848554969051191681813597760926163329073827574192361110255668676965156301759353375409911379809400107975244801517798186517775769665874349063067117087566035901229278501133685498880853103110541054746129579326096137312635613517878486732536528035075733037673324042806495122334880560247321379323501379178519811636211225437728020990010776363334319823399680189047844363577714497146207129377420571496376350156222073031409111433972088878613503981097235671219573743445938960059797130006725181808403279874111038921530163480472026630093510942226299588848179337315191283679081469813957624375765161219552436703906494508591669631922001116391692450361737266690945577463461262726282708079891345988344517213792048774707296402085992235038980520452344745319122846702604709319541637577050803362327195562353786437453695390629306614653532374634630211000178037122907133474082845952220620786873537312723439802001442382632113330315962630955870097437575381391399661318810240587428734288350996249630882764258643416954115815459490323876797794830012214508543417702626387724507400488207286878003331083806864812803564748637255738681582581007796954258709370009315696765128354040703096632468302600046361593705453041073942252510034709697636328647290224444074507552575546960670694989488064611394771711329810817470110310000515478120800769230423609075196088709265710965610317275794685790179013391883921113390464122927658439575495375719804363797273918994064805587532853123453647079410242704074233799902282123846373099000641356624690877712013453136387852116433732026403672128517276629652638439289071054060250701127664565925163240773151590243220394890265109186296829668746997149099163465215334209817480177350720926235536186200511479814128817643295360854593644379155484235477236880993568323034066636125603463229601860567493562947286493390921117415666262523967267603891703601762687979102676738159182268274924474171188669779129530890098227561915812046090485404759223965857711893802528036514020112095117992573355378257353779389136092485893633889969039723858502745822655460008808599446460624179597239596678351325082970073514411055539557400420895343212323396948152213976972717278743939030331011913194331435925779305423168991814968144305319176854431035903898309093927329272627976673765778585109864555669892406301655584512917061476046112429507430448727487975431604890049659063319126708309649086429169949140278684407209919255296662215449626105052148430710651080368021490593162052227876289657737575041585723723074908308768930179814921162512044896150699582976452112060064687668131971681425979715001261735599876046012319112651832381067737729881749618298799374785089504618270554114773621373363636914400256365049989038287518923271547927509294080134959469756053009558930062321141100037464024678221729899282342960856392056125321489280817805102313218235111934057086524658535174980093050305734138207218169932485213628665800965486428248871632336655317349424688324841372445956157550633758226015887486818639552563568248607839006216495772790025014736429571652234281271323828427703356372730223141518123109115808980213855912325518804304178148957208197155968749140114724895042050040069393887112593263850673891102771814523816614851703389015696849727896197713332501992731960955928764415214064908673600820775837562739554854701248843303225837106833631006520952333706237980797898623782235390708153980423806324762011544837362741670563468945028416057645376586516138324998942500889570830328279767082874754930313192409063202946851376252203325646435962438475996690931424971378423731846906470363970014671655291842243825601735828348164661085988076261201955804462241850859362745947637676299526519532616274393873025709086345862418734031347800207904179092281718759450940111623235047289928004420093020927835836462344129524985232487628760226440716492725305039746792348063821505152142834743121977418255760172171707419343912310727774453158345632921768978730078745888697850782258617998181824432632679218964349040824918297040380074975924311479191856111857415410924327739004741971618315567898524324579705565975735344300578508202729865051558020663933620565909592879418803192106728255351425700163002420768675051758916809701424952250954377821521024246627298278879298989270679880228759556181791744947830152034381431806450487442618838696861722646744642579393723579005891175087679172950676010085214369193692780367451142420206230798857874577544457987457705390064317247210047192889704735535211534618467041808347070374953567148670701663785001915092389610890428734184627671865019194234842222397421014909191595029018738646641356475472297471827809202026709053942943473436656278820350202699402818602689035794001163328645943134568873275268311522689525311249321592989335693977297364567966743017852833768475885243296114250572703759252711115031100370042302636338247476602206842179886169212655266709787971486628287631954916509396866191678233454151490745641844156605778233071898784089044519513020174679084095371695614774433134679445393275959825740635449409765547482799041128944667754617603997522469000918092542937947981384617043289890874413009330983015748698786744303977347478353098651415460671314052429436342115850218489549317721399161256133341589193066686096116367952537259657388933890186377164806972970285548954897296088608216683600499966743881996058629068154773025558263889604986245254160593693872592429636394911816826160047352259580062390022283756461070112575690292162479277399572393954393282440901778481292548833001148914979477367834296986932108036773533851056916865642532631505624245967013713187905900804019447340476087635072169609291264486011167696487228671760408775405514941433019337601320645297473778846100516995379612412101643058692070758269582603780337445822024333463638619658492135507523077247307206738132514560900615433807507371029852440748765504222377946480421011213701320395826007026537302668072495366989762424163588966751164453955868340619642051163205001522269053092528419374842387377322944588531247739103979909993530080350771324863099957076090434127759720284251925108870766591689362450778882245061049509391468707403480224808317228334300655644749143701959532706671071631457134705199443010869278199575537183576491388814908149549714721181151481287942111510356499792843041783369098372039755099148050261896660748427019982986088928971310404926697794015598875393319155818914914044474994240616435160760550082035856997012877855699146332171609007409013903969329637084328738779414359132131066199326323164737356767323404497578610342020705602389147430467799150132374156357127508258109683628993595633606680656782722305150466391493027109847941258098241717139394734542581620323203419209429533603883183519745246127940656310342649356004080026101295337841887332953405673508899545411039212600810691217213528203295101634139936508212907573143005851354921808834681862921282645710857289493650416034140776016197668527445936030327414905907842221659051786869718252110955472834141686289830853726237859022191309632915192793036864685670761542174702449608298459373356141223748625847793638038902766652255643629163623742235069225490505656099620154066128342912497774332370820930281209074441919223726802677426765804852270249916713151940936839761979035480166032761746250802637594723675760097628695389333258950701840963825803721227955722114196156974902190422752234477813790925260455507481936661793213209351844827815547301594035897207984237762381401429876757098545852548513845939022069671322386000625979242378124189975548627190010651628831235674080395164589370105190063153497918189972166833464879970490399042360968497749425436674949207330021178423315429327215226455258119421065837582622465179538223570313714358122403746641907617647797305111223122823989139432967602709439126973683141871773171839304354883466238084711225905737594690641078819373188058566998630232321087027146695393339892362764847874209637461047627934033164895397335771408693502241878032938759548701549064161234404639703959905109451690293770236037961061453699110278687821873124777879271616586006872472597740308408803938324584598292892070547875891692259243771330472312374110705312573742185096402734743337137991582641509654341673015827479619274362957660183925333954485924929021399762664544158444727687486628213818520140266426621437297409949346846815893900348166919345036234901286364611017886067911679973287979467916715824601072823132099567835788597028113554346661409499036285834193817798559429482012052522192172090975695980870061268674186304489195175520359569312930708096453203324360631906323471127185054408582264936713933929061521324481366209054816901536133865319389349888718670712749826340902810605742984382190768354827595726138950958089073855032847579384376476217377392822464871825162071738047081894209374859210189939298118310244621082111260136199369985219132115251919219473248227025386416438734790855233392875232716490076288094552585475241579843128909141983669835897260990088577882369392077326746997978926398801076860145502356095526152947750247687457896806177240649500770786194596961408221776771130828753381687728008785116973158079210604426987264383651197826147112499068508097997822447084763921093144043710290552804529774576714408015848918285437783388768520503957355782067538071351373761910611438873007810635061310349927329823703493288815845909140739546561098689068950508146203618025917884863938479527835956329130614320498328656024049827737609233410796391482939094642398007424583822597504166548953261260307814473054437779744804255730358468038501580394157489686661599908548966573180148028630760705481719953014727353430821565948049618364871136047996377772005705613314104539723435546454599562965505617056048410840910038940195306860381248663414148595690254630792076489475023721161930951400518361621554406249742088635309781802265648204809473951863498259248499610966622519229497230588172508532599804745296264398807952214455032273453403513702451808568136133907619516745156919035168216171438678478657860958984975781928932843389215362179354769484929392267391726185592050585974542540291040054261219868788985782991835156766041836445267514435324763154302412397161092683427446176427524705982542879733495731724953773803607195835613496096856996066842990276708922913184130479662846247605576735785289219272352064622966192726508473220655363879537644389118340021499926234941034306950506313348708881440637435873915648347405195397083246720892835231067561772455032335338340820039955125013331480492818043839463670308650345136680330828502059596605201661442843410352872093660593498304585260164805599222382043828827727637465558974310992158602554976057034479643619423096667720768370278502826827406163264329128314493479613574148427159320306119992520444934735317287734695764653362820055904360243958655998750958053691807490978811786794703019703437697573471009154387435701955648202194148386240661333798591054629081123178141255589560888088658276182575946468320994347037766583433597327714163240850628091039911194307058553760136841127156346649845902232487701045331493720280226789384561823710773141129298935583052822874961744200208522190832815963279020867459779615074817249769442133925544360721092235278232140995008797032159282346108931415848050056807334367623172469164833312235046530390474777142449241983490068010567277933855626936770711283541747601755365157277334932652631942571100905494284123626914895623967394275321994812570296043794104743867330257429064142011039063339615408287696613714621224035239858964145139399689418464947493454178828046547514163153597475424417724012588669403859916024484362519160215834789635662369257607246449062965604545750204342528914253143237964180413595034953650012309852035922348639918417357591085518706967213308218085727395415381631829563846002924607264135188525685412918319429519924755195652218248594367650903237137261823414289075433388591854091000098662509357435094036452145269974735704166713995987193961558337902758358058778328031248191912330495392417865618008786469173359942775283998943577211146436487408676368300150953194563534941215849652841569622266418681283437709760254913477773143378723394554933148072915658206370328841008582503920976543201863921317069736059531452394952964278925682837025140421911459940949864478821128687606277750552918265946925501804036696686245636761780562470647406508990935193471496952309630146845200255748513237385695023593288312639638476958585552008741302064966632470865720786881383525476933532106833199428980435380539620488709303613735051845028461175925732413738986623365597286931992138632465656401869866872107379237676566559331662375506264320241313556553627175504859822575435253045537414527174529025554820637411022709253018137080167388297775007068189704711654678454605746300090744468889890109167118058913439851013015524339652155113076632323702543435502312358861447597119252226087252402575187463968465471223495579527720182315614186063908010270983090315294664830506389736405082350524360591701427910453572537880294123457922769738408738754970855114238663126940469636872512323411875507647631558453526539515050389966173578943218711020007259435094799690088155788762552861185167778002010396573578054953619536290744169925241083407336416854573895031285944025755216562193622737326737390395519690168430519821426489057449489608393497023610476768222392345632204015910621697545236999657213121539655973841825809122379020458879252482379740642932355401749865269192483683918831200394059830842282103260696067790654728077578962455369902498668288270434070737454527226595846326479325248710158312951003584604590955781733477504486021938144510987426746800836339414180364281348736252642209516479788583556405264952191545684032383060823670931055324030776424158398605197547597149524422389166595621216552504236404898688305439405640508132893545377964721419407536172077313327358890185838919287956018882674790482056384785028850197600474856884216259661740124724674638309830639031292869833728272983615155539954168669363279353773945599061261611778604292852825132108321997451404187155764227690705972578711588161175031685438185118561164407175609552473373580365447466436172140099832791298055181189355072967049127126536093335719087352751300891451455523491532989702931307697472283618136069258947089309601696974614756811135568373017440918250425313974605433157855153637491173210268510359830889803698711192489189454604868086769492184016633884817270272185397617033410841164991459120129301964209219950518795168497556623796683348146634917245187322363132039931687997781294221062629825641394687081434685609519142505649573085661475441983821756529533655642589411598850044257823173041698985642697257721110497538673813825514173263006512779237591876346440277797406287987340036241934452284207140399885864272117052173229974736727535337834313430719269056725170810088020616845194868520815695659503468266884813058448964572269744154668552006423338798447382965948603786545613924712710999780975566372217702673224887733640658324794519990947865113807717108175894286359913677932412921592643345222049389582956634005531742587242531087692179847598680376445309106319727763487749692441195290083117242384147093042757067805654198529042310612778547781886624124572230926683192548873253946489929907872271653356681508073843763779483303833188909947414277289023414325627539177658447400380571578075022715688633505173429354179981054088351325351783124987405783880140231629076764660786710801479799272375111311778072636404218838402000795123585770548537198785440579304627049330834936053458853945059871915310758991152825141063187597210947949052296775993608622639154943495693725409297319164928947021834072788041251827963528416490550951153557292138575486169838843315603430146088663096023285210248066084680839621446261721005765794215664823495084216824584425300918105848127167460812546683905132798046929362079394144129449940281797840097156099530104889366243870305320171558691043407499570002856249753325844523456237249737530362953006384297690738580493716925581916976474342648381294695605267709084720471449395649774093259505399548155082088272643276505831514194930924334049140854584189345421978710635174044346095151155983476615780342564140686767459433817157343641465123313564269397627756766774451627916000740632919876980796303527660966924163176939679942271359113942356322775125813154756021188027523875717349594356031880266628951921050437096851693947310865171191302937520495467424574343121521273395764059079886228021514719376182590211412231254708954396488499122679483569641019798795546440818065651890937435890337412479725114379881208299673633276252079808403603426267412458033675864135654012471417112650462534223232857670501333266561630080981106879400399114478774076285756879046833183665862744469719459529311621771435841756909264602235230319496292415796341043466365899882651281272004659989080413059694642740290333829662800983685340681863609716101485399335580494851642757344630387371102809037552929688221921911866470287450520025140470795937309697202819237071215459544600967992563104290209923917794030548985924531033769569984930229494991696644274988115223444829380848537985022026717406185979255118218011798720930468047468957707439143858120878931043396192333247082098667806193339654161716449536028366664165007402987610870813446612207999988416824265740263300314958337955251582277839376007400517999457333271352122460623616288340676439770564320271262503051707829916904042190263623203045370026115465999300015363438861465172570842146200851967289227680453222215571805438312640534149762318011374134877811026350055722772570384244645431674946044483009586507670832208972722956125649296268987071932849508544136091355179929084411595386819120258084402576053292185551341069135229195795592920768464444060221977565275061519121050474995903725760724941377428540252629735385923843108891749871505299509221390563404754233605682099571050354394178229407224737264148755038632171669568951978083743710492506378971104213211970454421279854556360941374943293209376488016156330518343025320784223490678946421127186092242496558014756372561466435187820508627302913754493928605192765976307296141069572241042077678520578178047814347275247771007354865158802878061525336829105186746405357795691296533835217050375390042860817719658330973471196128584491786061034697305211067699989161500524137614109529144295299950717017309932599210995013182203207380532837740803227347872891916172667199941223327243892825949360718328818359410721224247293934823254602997580660629554343045526179176169562541229242903219404522392009437791520903880767737281412642941489554350230396766561606134752234468693349980185461923047667510030015701657304491627979052494763746935515970851225435699288329041647021341247267244386236311503686650822052615625227764629094962789709106951798647649190293959938753862088214502005431912949138782480850564677283328011389183674390766328525675408923899783136693426745042651998477292187562663738757929647039791506724129271783834439644310518757445975648504069580564334759953583736116710786268900099136208130991700900476247316536518857098417374390697370126662233839293791057575252154706742485391540232376560036199407266180057825941424417195040209939942487208094527148593755965832968549999122203416252424297696106369965897358539801252727982807333037419811790984298011368900987052055362185119419052793247438887119541629572936013442925219694595934023104299111022627203512089940962625433783316753921556755736354739269314344048447567198599008777364453157198216331712250941247061628401721792553156000484619388893837632637185948781642859252553153473406463707194722470239253538029584467722549516770493335357766391424219645606994067681144965525781640004438926804678493832595606118929259329646099292521184357593685000585112704378455385352860000190102487838610597251822954289235211761643266424929665700925814732687753839804307896616125487560101193956209762325432437761131522180171508363900984650608048571893295710175673147695800661294548803501188358452395900297587049542394946918621062130801453830762623731411413221251538081451183457681571240700714006523559446402749445182753794849983365132202933347377353388593897068231650779223720652114999583571576573243829792093259850250224751963330284626308662932680868433434513977970135714366443639781345273077463632738345342827659172825031343050335692557048379056079400172159058436891309083853299261608874544077412076905952146441379849383934896413181532691711155600328899601802307066452990007966520222822891599237635056314462484468082639341015332420609544257463904605616557677000070979390225063190736261522191954786663103816228469900045328888958817782468434645535016716497440475465049159954334120465268550429568861756359399457389052824806669073971145762571814094831061509381627482095207781249509303854783310129150448318532105795866705087175962048180580203954956579277822798821820609870747158107754762003653787722531919138537420045472911800320954833226977618105789869280547994934973198583242128687243259421159414951265193585882575269059036520938419180411110093464172366854683814485600837359645178511425327517719980923678444217736313003624668909004152450420850096114044281212903359822036629382495662958948941882662775299819005027534819551745263688316652730930512027619417489700322657070078859891171122344755669104513469571245586507713963420246113244858438351115296579077552492736678806978163856477494831508463065405803665193621858478082893567106907227286456791095391463714681925974003641668338304597332274559221578776752272330426691291008263503348492961730480364343722642895175513355375476646729317160815741456620355597046511226366806188263487682596922580264794750631038390211952870453218944616301575271684012769292651929799914560683916277164262809330099662264007450982166094914543625190871181025992035526118574103780491924246564327528524015547289938614094670005502552975800413982273208934413609380330947160331608632569040362541737261630003610317127119697000047812394979115369204628231727048642980817255910840119283478753063959942148269732098108540078486851035339053802558995384184806309718106844524133935148236721205147808849819301187464202531404078150000074473781367408625538674222235326623998516197898217255288864142442867777864775158060823969720730311103010086744516972214866226638487181440456766090287715687818618109026717163898954851761888095099440689470977926010171698410958980750230728327022302352602662434176337506431278271844300161108241147162897105018930795938838408148651833436763889514153142274317087761743568906128550835051296044808440248905656873027307660658709688000011637082236446373822863992587930480657388185009655491032367159963890230401053055355785091126655904074961484425680071357410827835082254106337564532305487521704414944103988709328357217605226801588825785744497498945087361955242086531464065075004657588393507984930265277576717232221316863828790602428008838094911806348886483638133581891087186169200864473279430113510622675095582274210365292173314676297800547472549549608071514390599602541738629044315212281377006923055735061225285292943171689260291869094173747354995038842510863088195970330583909556663141752666171236926118785607442007327862319942857058336892323264868241089442118329737828893031177010360475322564749187624553030065897365040137650417529148357573468795242081038070042230656056554480414830891565035517685741802671228553660273257722785638638711792780507449876793959718552870187959528407514437720864631450139804928138597782834657312675112619614898832809369309442978048567004384579346542154654651042203439852439733854900070374297516076668209031324671466802042070921300906740313330144351646954477191600238923875604323018897798358380695164023511069401560038954732242813006727404537520636493248793103080856057549038758189787192457214614901570125303945053902507416177107685667097769823960843686191517507944939059740515940986527377757943135778318029230065738672563765388878526901366566927055378478906252928636596042230162086731299445170255534729944109953220289817036444665196194769287831623240349207768106174691991201184867240527735683053673501225920648224336837907744254221208737871177632184921133691915517429638597486512852700162733343464835830743948234487939372863631325462978541113731264416734839282201790140270595058726486156279654387585041034018562334705498286622787612102601746293894378800899417567680823363437807872235034770931505626072643583450984553546313796833135178649545202896279832284840823651466608074961278482242174736649331364763835872352693928054849649338070967376434490488432334980288629238322568207492337330417384605025802854728222557544848272857028620310389129978819107830543055210176123821370383201908844525467604172989691060688532542645923869746394263613713530568304823658734094850836579476728846901041524123467296946321526304638104714829554072147529883451679150361709975935314857380104648818964598678803607331806662696978190665895430885821703301280734604531438383477541500098613053089750117743175458446301225418307965076904000161422885508549919602745510700416618494363236176963908508797894309916492843970218762383722316898063804509635197586972839294472584082068681618958788929638251497510712761254788924166615835664170462908485510016838351713528832344241608045734697496863234470527611472502053921603368114092541061945070641502079880373363386290300016174257217370685469281351502932826829483365665036639896745685630757527609227271849934968343206416878297810005221717661209219707920395886308708661274084133992692313475215005955069921239464346265621466837692118653313867150707418505989357233177990022888297101460753760535109049885589337069318460979868961986734146566834728255987059409256509669486718095617998977289520178657606862595382187953917545058130211322051735616442885363425085068034955300115161746917978773364426674965609876349796247243769716076763598715098385083277396445627274065955142678984562511279802661270237266712521780861412493163162023181316882780066703727942065429572942553915015806011642614582054951438453303826123394654868861523087397399803051665144270936326610257922514049616470863695456874964908093160373117412049940806079429867596851993354876053910245470149094080215254946983191240002663802088005450129989190491690949466291599846145740095232504713635754845475852675619584790248788189059526792280518098841975492215978119957552853427916590734830939623239952707344658455276007260719206299580343461834097397160515826242092629268787230818931058187184114879241555560847081733337397698977615392628705053609480871685974984899800272770455328316007838584655678689695530863553885390562275064120282756298729754203974102933242700950710245565635902719564033749870394957070735853725038018775078288352639993631304544697314776413966867607899607471338715112800908616361765605280435056760541856949327630195004784808755167597555763969303039976357620193540565254733462883899651199217635831233787261656648048010476300704339898099066529885703219563048077617456582024136128907797791748790817657972775705389872515357482072148259301152495569615214223159722684012711352081658232530218131071549577971082850888328514871383141034138216698947206397945972318120993676502328601851464773186969110261253616961530314064106082224483799610376427445570240389675006797418359414810782080202103296972433085563253738579571962082062889729385708552271938918828807252118531779446667123650097213694747068200977587296151764622449679174734623393362858240975544355039125617064035979312202546218755508172728398330555079188650074208695830336984498011932143425062462269923645444992045775889083655742829650286947173441743235951904562442910031292064486563525825508299521287843681619569021013817275510470176652752885739111234491314896184638947343362200325308150749325920297242122915427734815682975359018535501145983228932515900491110412929208943803605919533593423676842710067959710389106349453133085486842813636892789572451429962685906156244171505132486619869402612308850625373211692040883933649681250696573670608563394277365980424605511287787059448941965453749673529597524148412807599221056058588735273433672994969259263669995420585458916362260485530380338637711369975353693028681005968410944800234617173121592505067176755415636284073731431655140288755309260884959202383137175307009690306483049328076008166663159322769412882420692416688167483961334620957739486943117906752570094551331490420722403980413395368187200894454131113977448751049825862450354614531837159041292459192352441570605305167644730405177496077620100251058332337149334887672230085868598642673884704238536585917240726985512670386451566940804931407789379948591693395059127366277652445657888448237455264264001220072790965224422586847347849608434178988727405543305758762158688895297962201558776202705636116642194711648153512041021056162655670688069680986233131060644422977363501816543022535023903150955920764123586202587896661046879388154835795090996687513381385984902553492096284136733237724270581818746677319249874665142821413006825225137267556296841567658671621190188259651009296811795386719792236946460794546611556871150097984511985580821487481896438704456264279699951842010031744643373768330724883790944979942546836367650755948246043789671606892302962653415662858140561270134841755524323429207633330352451656225422572678636681124107819915603474698038470510588698275555465516271149122539788326308809608519927925168112202265734202739974081910376590960071046910840634693492667465942541344919464575519356991334345068164513278903175394377630672328810987455860009244514196252874174991283118086644410852762847620300116496801127604616190214044376030884729826435505197729029324701653010932158895896495702742626188211154311455521643423024790645942138749222035601852653106140445112873579712364257528721545004197748534480215792078925943168609221536243937274432193262223703670946487337781916305776476273378478036872292075060781870148803267565111498217541117283976129398078139632886067891941131296674607582017344117473645033078605972391668185172406524353229114298778686894471206681044688854611073512754697114428016126177367239988448469142272081179307034637472642533612093106466032476723535103257563561966643675914945151632259188886150421205500393428077007020931582074380376879365160306392773851477962657378104482898877671432316092845962134225472605358956742640371803997893954476010845148658269917320102018080002619691358099923383637040667969495217083376618310400137559850719086649137507380880617720996102027811988676724803085380934136519018525842432724650052774059962562024595203544193461674288088884527627930179179971758266024991102543397207000616423502475318262768143149078648824009438672446620185350275550010872803201867123661105450376147661982378554605281873234977289062801973054156162092737161192175382534300343197209895809599034913718248557352781346432578254142643350607953255404290357008392575218894578181724727064527932239932046521249007203903345423094884135776951234324062975445022260352031130490083387227226564207685389208366410092092688894927494191305933497122629691980191938476108700694595701760610383703909862152803522899917604492897486166476925601239901446951716387030900017439627962231231640431180465865403697983462145837943112304614244022491187071176784611719341651959875211517942221351691340055365851076672971031611575157395178360055741246994094728967760847458069259660664279110835031240477121033602111644581193159918598554623392178292264711019644007493466721310658738921643574622961259524061786587086344112941451251968599273949045777647687884781868358090869385488304420064553210352965853561017197533136486172937524079419314212101888415301082145808313739152596695472892083124062197477355851942256148469721894388376455874912203063358640790942865092530381819035006084905284169758205330878274970821099322661509824376777841404643771393696140142132813138714293399251140516947602339064139859911962183899071005289416698797665338186259485993704338369888391282573070081922967495927516655685690531605890356967212967428814647471035980825619790079468572075428601254732324760131035885425409473282038884438512273075522346638307273876138975521054737355083192967245856958022284943087377105716299754030274661639249336943210280964299698061981243433752749391445197137718588120138826923708749098702798806802406142849592700348410985126983690617278213008187406323634722165354565441602950539345754064500269571535816694647251117418952955715400420693818485807698048498762882927592919945297580309120279052147934378041333877985324889157860605693970625388401446015595956532166601900690887431983368095811043827719138830049178972328053830896936010138429258085820161145662522458460672095436737340501040772499926823350109014928431100782280053881664447362698933305297540104605750850815820784795803400539413314415465091482452116950699153940401633644998082834991361051210811182466493605624218595106407923496939355006632346819318307890201881030766104602897319039807470635483280125371021025221655162188746700775493913149742086098967346928444882909383116748053312816792151956182169463231075439854345281365118279231532978704083322991823109135227409899710601010944308389504533125018674588519829287345092058632944457722506594627800620313181034851836240064005532819445189039680270604728745701081611032638797400363955242524612427660622921953788872647552714158902382970534194790127137411273549042568033328002683271838113584466719714282503196290115918935247133586842150070762927198922112902042490538251355849502636681522084344546814896527512764279240204850248495888358876112869555309591033183511790526083686820212339043722440447478636923755383324433602123801396739157207486637330207191806281414487568308619796116672693230551776862803569175044867697845672022125863482671810822381507068402184965423231768534192057460864320834423396828270139639278641664682113802624578690943577985708796510278585481159615208388070982260988180225273473697661768150487898146294753893155814381236388049948954208658506450988871840247082126968981220113082332564536245815463489193816057294080494515323056366298864442467727170217192429243255651793542896837173070218887049974528752934240515022527122698411258347026321711195895602780955088883526790033395313870772316119190329570551815719424911305067931716486187712532134295639098753083527740209256325625833870171668264904573053930134086042906566737357148196685339466290384547149804869114876939006809785082785117204004796608763066790269072639813090117028010998193223426476068136878103467642666845375754247222341680857447442192651864933223900596244795476624655016350634868760879591201141996501243267578525655056920560489196107971744846506280700723589138667237258860108086400872704008684991851273283117410230536590991570361183459074219313442051404592483275611328731220931407062124059714779131582183852029628967917760698886367768122725671108467173685915276530347174917263713943261000378566637572844709748587376728475318652906831335147498481020907003439840996183505263505984736035494812137155331942647906422675758880248842749873653720748337935442306132530330771268895470413690300268509526685489551323076619996599307133282402946629681439054242769647321000627033731706334783442457507969636007245120276629969043113148611023870421888357340727625804595618181198226337020540372268379842009456143177444786466629924975949639192516840312214003399861353432589243549131221685669150424433698114707864857794375647195328834457937498197791677976565567776931673520308746261327818693603554705702195297298325799079731405740977808105844124141522158736407584407321733901200244965921569279882712051525464085561235463138078180579291244456395675880851775991104848654632961654948579769445164141180783702840280496638688297333881179607650006690081530259560939537781286709746448656098899437276874717886843820777871667157304573705694773078021256529038429053156311684841010537732730901115697535284298733665648388730723350665545928139600567689732551906232693804862364763391421624010826898246801955674042438852369186753609385496818498759806966480421338607573515891383918267881062334839471393502875943419778705080835321788428576455880232686468932454500823390230792032541697003805103715148892835619422819623059316801317832230114823172647762656165950971774831792072322330443326559531562821028214402269952538613847033292234176395536343593000109125613855643687943158093634924283040328887431686383505014412340611598775794476770762214420808952348743126206279949370946837264784210684868605514207745365198746763554274444259466492282244478456785913844888115526592070505124617208974452874197211565791863969720374027664758580640553448374775377765724874816249658111717092054450363239676980608790856208729796585741962846052258477114806660938334075541121750363982922369011354033124477652593895576407109509006369956485559044026944867107671555973245008954231309665239773943610428863100294548830586335363064941245563985050093793865474832539638970128848698743211595502686174190806185927513985413969413112638510244950730139922803000664918277522022509297453919024175314485771675917967769018779145008393065828426474539207063527760705500137780184255988514643699123833600946065968843890072810969261882702451410182830960531742267303566197812956170179761547857412414472380308702054384950780564892671056392380030121728240087360977636757030269086381055651096578614374266010465282878422021195188838375698906114290533236137380073629191255434070407469416246154126130842997459969916115644714805827215574138170312102311404021160164198597484873845997246648863719121020885966511778785212946539485039218961883473351848112928409034310954148949821417980318897154566871141649814039272364889043701283866880972721377981472461196601839190127049262211727812452215684611993606241146384219822405722918732876677910163096262057755082068122804079304114598711597919367916365489544076135786660024343705235879032402541763977171174086811704020057462082991090205587020632295006890794146900317040788337864328576999733858981954628613687324346167303292198836511202912366143983804168805173232353265916949785492836723939366194185910417337787665199612535286296470005606394909282226875152658177462990836431044249588284516036156967147161094156513823417858001880491340343270977470083521563833511916054286295225027060834142592960643524846993529686531852156720413348449149573929974434590181137078577783777613393077270295133260837595113963898769372945511962805286998174236766497280199158861717897333638191495590234317216290613837253464065108288055898581452024386738777690268667499718783517233205897289453733479351146032932858649775249702916648245872091676787179937937288067232440417298418404929270217144149415551988426533752095961807541315128125833897741004846966296104428884732780199425084125582352169435392450961498771791116377697293825482772005887452803902414538070690809569113982436557047067637812887781297067398691845091942441929224848053665847400943278270750841731676659259982521327666436966425403653852003611306311585730742571960631118878565884533989395275318084910828972831125389260307197113630559540893450825543531160507016865213108373549552052941990393376627151778444190212503469179433857278120765922795974758962649206434356185054363618217901027718695599310910527709276872938243863450772715850371572173102606853672594290900008262380968123863482972208397256869234037439257172436148030979584036961486911287279946835093942814748099113900575187606086594540526289319391014425964651513436971689928792439587557617092617545282876709613054353787795706252399164546258529106588107362105991221280416415593823750011250936317325029829540538870709643805870621246942074407603535645519112506592553905587686127592870847379374292209603612463737879200173704261280443524032453848218970669595995951640975003224678458451920728336094500392524354653973196690562445324481334949630585350075617822027741940097441975923772735419846653674177101092161868987380610913553622722478708657214952599859936720514556730568986534866787638486077219219576795655506504516845015879045377043297953967300964144085734584257392213361588944070290475218436664894151875733421788989799541363614983364742867928852228721111355299162776766163263036986872953533228312751466771340342064187603388868133416943783099694252797681317049364481644396068690376643529853650726176523008863481073504177981212298268820752934622108947847599510443547331234373864187317540416557996134532885943662196818583611443702855900400109156444230824106454390003855396937469083404965887336537236033123724384387711837760184151359619114343575656981895839992018924907192290068144300808058520039544749686684633134252713275834774067505375964829898613629665131646738453095959530859944684081225603335346060879611964569642381203435293189629819321643913207688330714791472221139194168382799862135944805388816945614247571834816012327312185841330641839561387797528030683946408633469592205141830366331272458881721264704166202826254924589629903363957467487338592904669367366766575151713579258404948122924576279689017076764625470633840296805426093769710043342455065813736198234566634650801734866820546417474837204830223741980099483214226226817764210182124753470874106312948715206586794205302782896900988581455122754001473534349768577536894478135958099283967253795590521990269421252021337664098592703744486551961258833502788973708836224289798441276531950582545921131262108428151040871458999942816729822528183353724456448260114213782918965921636992087326655231480445795883496826870888673042073718353357149072002968667787569535052429937480588095499730766670439183665051709870507978100523315635199471113063949940881607829882354481790490325836283532211283379065047032310213890119963426240768041542814180727887932499027737994891036286776199367189430313961379795074321389413289113303930749414852527169681364671696424695723290708745187900044477850956998556748269496036566888801715319106023103389507333628885818826223724545467345282752705071655872705448292309054306760592213090580904338066782940196786331280227613672273001458234957260784386181080279404264678708826535953008368451465841493656127652306792389664005671475995939863018020249898394679540944731249487534963234224647146529649938366823353103442593608220129386402670291391329519393015702281961298372869150394991470167327463342645833075792801552397311416749678233721450939162416071829337757757704425231287759073375609806242963501134213501148296297342963838126961641839231815832212903264508087638164971519776657383937838336478561902477749308694168616803012205067484038457877263363962009280712225005045686217852158834420173335187501980849937181738260074236835266672654963318782275426995323793340298784996551852978736414163631476972360634530613353195289268892320783524633348439484097437099916467959084782502820956485256015148401527158162433633358494465801094565002232513417562559163093718921212808571485856176816959473532655593184739022569605027623766736285598256693256727253214184144938929866930729781007220056971035347410396685446159526346705987498421909262646084938245609211647256550278395101182602822872313556519102080363061555773807464047347459001862597346297451183892617058715124668526626681524307486386352804137210537351100088400002516341807578336748207944052417333142480944701858592760546996985088896911587893050777665080023822764596319458843519754257107222136928266532291192105526184718409616233779544192141700118760910279667735373314674658769533249555163764777512756349844191991191783541273250641558162427354118457124354983663817704483974005775840770403187917407036655064441222018759415965895384405037486010397944437756956397614412397611107880966200128735670358145523753222409041948029562334586339280394961019160871689596681665400472060505512048116658742728471451773202558301551818016359474387435029290570603713367332970480286161568607818020284941930191886498478371944193498601294859867698496232780481710345133606756646019066510987337863573206879493700200311357012419498908930761319524468317621510531002399739229984123067006931480383666045615157939701034564297408643024402346266624615819438742941867095120269874272485629830377682848823531793002411859882463740194225047250908031928333515841395843002822000706689434720179651346794398388016602375999194029679042138574237154873295846657432567488862607952454822178423000115908069819535941652016932036901117197063375759645921803553767461941724944101743590667696177255381756844924986119812617747090261782336917156478372126564842406418011227989865998783881353845971493328390089960208150953634624547121378212378503973107043317119755101163612143918034227241805837549708353909550246168849773095532236297926867338896693818432050386104828494123331048586158598097136254408548258769996905320699681168490032362386126861505028610663624456416834773346278552893220018664959536682895977861844209028299912986704536875891285436346308622708318222350181545871624608891434044697998538749820283405618259388507260252768713997261414400614711427909623282061913407279904297594684769084286370037201313009281333345380627069432242131967514802067738404600102026128509822254651258272130358335017483154313900364795151575999251122829678015218850893274388275428698861419694495858207780094963867510409846420647870132457022896696152430173598800000225501791439164899956548702903401478534407077244514587445730540618433702300245188114955365684058595740239327458448060603392657877711195288098217291860259012237407991047962193234724323383522447288087127309483616397659589702512105492815296822528287970368143439804677765079764197930054779914097408833166096214284898514696455357096600889416358909801250515639414996956153434488188597994184124955184905841710573121070044980348757785696983020857924359975856963216567496839160990076342958355569851485310305433842996793944860290178355592203644970555682661461816255514881291560157020623284202766847615767052944593958841224060612792907917294821393697736837009899039182290925692339132626135448067311113547742402126592480418465494579269878576377240544014297560267170358331023471408942098420557842069596343983908552272819305970165805072676730260855759682632618292430766173598246584977465831527294328677876268689115389953876661172637764453328539262914220822167823447267076222916319783609679755771986180923238070683754765615689751984884872106152750970476726880643920236212643697003188879306964770483857824315886422555230957836513541545824642531774400716292802351581508489404475842226585454149110787503239491456988979185086892626990643287957122442047117589621553636358527129263112597954568378800240313408256225108331939948512501456109441701936727685285696430171239195599344049879893410270204387009068357533573186452006724328473840025162868233739845655650251989814361760790166768066686733762571413075785175247976515340193234362758981514522272958425654588924978946267507467699323304480871628683172482447671140668792253811152675072742513996652344993672658433033891412058548049417267194962121520395361969030129002655010671877149083325044959554027771787089632432771673456471582711103706361728721132526907987777982913838884655353824603478552132526036084754510054360839179322711816197465381790610982852738192949972287629137215780682093386193988262441665828980055836474753445203093647647906443703025987112743615180758750294684380889189041071241198526574473424713518606159738170583491899200032382335699759873112597497780047350917855292607460719905319956868948848001646097466274186392997884963550066670219317636691454456210243781920335294073277035864612700386203297018693431689706287305510411473819301986988901415301373579912981584830504619600882810099067549371885219354446810955123020765334549573476944103206888679761471194861093224414195541627036873501597717852153684488980068196287520676163124350862573593243243712768107271460542100015995237677969887074955131677962112380911469009215046787210719258064228900463459392270170085984323041371543809903457534744828729378132713265977620656899641858820142735224947882092288853388538516051043523244802161479733559055452420795782587189374252279565638145286965760122085063804693652592491941523475294886056472920299527575352400684446258889726922784725262768653914651114659903393745388802022804185059284587728572149320900731843595804747527405020293557885853790441677870688936808122861772190528667094343394785427839942986142171704247589109608369290142697364520522532918892106385545341271817867331749260040241242863803621489370900142504230347095653023148700305714589356089985136562496270651236407971558299016788370328645214790822389838781063750500905945274583616213177961877596784100490062109869828656486098285066754022057792686892249169605552931128722280397342681086535540961323200285787979127533549748444935605718108278506796738102299465547743556815809291465191825878924521609335401914475989300063863631606697641526695745883233727235378024216242036310971244721043948325138188486048501383089341398162741548202735175521132516287521594080437347915349112304036684979918792650609737155455903826564662856154939292574911724498495201516420724897385990007252932589378859427794330786589137089784108512453395363345325076021915117759320860756607485148439442228045391874418084108087805165561981302467724829142791928006970014484879035390559385865437166796663830003308319170691223851003384099696455520689517225635206931968814810720677168919915286438392166964743116762227004364989179767167301484817048327243253593715540550662128995406228833983911965096739743061441895734062583056400049181499840033561211709915324680243780889737500916435510833016242751153102265776714446338644317885372206266309422136167128820863231961017177028163015962822621722446966191517598684613287008703582324186678231446985259397957983133589049235361426279096496036386469636122659507299089141570658180423199505626477938262433364777200902870935302507336819456481754895617355177808003442281920805811369134353739845638485714041394899817985519678259789438885143905418839871628144425935489616896929430922795709690323075204697550958939688460688848114735843768443116194997365840592342236941134371266197677245488742007345508593254098573560567898438071460874183377904199924021808443490107454049149368379613123959470449200901685148528467993359486673332952155467046538641047014841311167819843257527608013374772219335574930253671218788080676476023829502703049548816232050249454141192410174634823182940605870798009896192301807605711850742157304948156701219582216395557719200119168235095669859842529044044578908093027885773144154477611903627172942273153862181392994891856250137013240960600232832125583498804238910063896384768491389371867655273056057546035416891853589467267287807069445020303073156248267188711861510698499989675871784112066716221967176149313076982450849666120259202874716424054808510336062215390190170521019036939042702250193429027662596604452546550443860146306499678247504963211291551131165868403383347825362189479821921168935651641915821356370272883246472822294698789054625593286331476478115216037801093038083874048354759909514706866789265453452413034340361434385821585177861690053248652999157949014278757311098464164325340082999430407016824673358058590593495109681793461600499641259613313872477270824268407946547059799537264203684979216221835687071871946160166662187352952300325527346486451552784041351342404202377201625766655478787442133699313949145803122156383644570291264639867364443525781887905682589460098334250574853165666664841415879283840717347647293393457136747299437003785976118523655832560372052716652722650447799892761922037422349026932785928282068949547951783757596555103948947020573134556600962498359760442116178438431206802402035547593068736943480592546838101050933513271441256274469587448270423688998041118864147404562169352664308245345819283117419975058609367484409968309435912200171398099823132693497977763247834236783632719905945754819355218794352717148984004399701340089608015909487216781535465837731148865996962860233791230438566960788158549059520796590060482025169948377537318182088538469051835969899728507532083496829493827474772782542553220988445197511547521793426210222375029773534174234970050931932096519821883362348314372882260905731033231126271104888323841023440492422360528872414318875380321257317029855473368622222369393458661157235200390956553363997370097392964088105357407583743103112403831741565497607115651291104499908604452142338853062807090882277838357109416643628520744025316996648755913432896217750325046641620890927736801098925195172724819524767682651923351680016771043457272163050536939209691910171903516245160218324141078404672190908166708327840705219266593348597344234804264479280978490597921820655700292425255385714831300120587769084886788910985177046611411180863371972070748018545150123865565433717554504244050055362169892310726835068829876972931805162188008681737724220991056300257319646286348597195222992796639357031921999016844405761604423074656058662568414291479822409625090238401610622633389556174020865582468306046607786453868510178339852924424642677921175175955416521416241172962414498860895076590195278803981473457415712077724655106704412117696528650125897216877002417307350508610913172068466454598550701594708388519618490296994807889165450765109848022495565181175143885810825940659312282251147573428404437119727592309651665358574532387767300848636343580186878957221082337806280542866804250380638549390589915782670821074943044906091042005811402776662956373880722750618940491901745359876097956947019181355771665811725164073418249676060294607220463484472215716094669647452913771561433802186066525481323585587075573220340148597523950568318895385074759983341102893576657393369980736864251922803579171285055641314961312342075425649004473509993179853821707435130955190121886137209883205202442465052582877857858944440287454814264027424411046767557566678364745875674355082823032160872694537146530074815867694907151356001761339266096070503574555820239989987787673307261785861920689863837615929429472599301478328070299962610242639922588298661920856894935368959038671532391731385581479185310556222817477358532589985307476348515536832608385867772451307429070792872633247923276323804599347501875043603381172182628050753011433234699260717675485655077707773998896565450803402749227440745227628318017667667770897012650244342621779893742786039053904009300157391236910503840483508052103091188553114396253279624883690433692646473415450671780485738384820113792578939327082752307170636952814057033499750145051372667228708242320323475511099611160943997733615612743709850363548800314262332745273948581007908742940465684536076382006239563024211883971382061096525717055132773007158558129904800055923109029330647877925346174910230288132339993580297494533355275848146883251059207972661100671655667102665261694027349775626051146254953375479673867616681834945745854784021342120463615135884267604495754730761773345061986686336937080674513211520687285245276426027018743276067515255491707338143303638423837976742634709881773030892719085339108349239697348534674040659423086627795516937170094482345241560034341315091157433347536963014762896244270512099626813779848687821726432738064350995135703543523453593764469349258104985192180357541818931005290594640479742787348679817369108744119272384889846797172875976178029198922185191844551652249292634001605304520598913107275654219415433205298458760933455733970476667772883060650879579980767735532352748629401242523979682975728133222468144566007057198773774418346530536870942171732414681999665350114529849176136024672032352174922123818478269719060117107371329591007235170960112864243338247862411203267495563456221354119601413230753419085367995850396946149410876820985907795853490393303114404428729203041439015155400945892158093184725736206780871069696533882049889216434179268504676114700123996050829013427066501271799770283858343307078311689301504333244758597198776852777475541410982508947018438669480078555235021452878119493615907846989666531357491570520349475663591573082044094936941876740104067948640175793851639604125955357049558172778397592018079956378436042188738554489929543028970555249490835562151133625278886751508180503247975509586729370239522641919492258680189662481637081327787670176025753921815312307399383635130740313872391301118866994059721361349879621682662910554812135505327413959548698708794754918239458327912589941657618953456268664873327716269452005875614823551142732747387902643278715783507994003932575885569212509260424366382155574584907078185288050251498627059242607919285107055560756794182728097216433139038004854121486760553370465339338584422706802029574455062912350300954571342501638994530893544628320112655161768533048701146831853444670057335314196004570286703950128135946998725780594815586752161633098595888579890050455252995287644497259373749740986301649563299789223350560572396391730982376897366973353046155500267403324995822385908309542369776696565815962210940683724938470611183489708196020862290392835149733392454186443723672444239341820968627128792426525267954959649653893909843090900052478597527341739083660588246647894997993124892213800273876898886312054398245793496937300171783727244888657371653839675893279831052622171144432435044751188754675226259999937650068709585165434837748961005194104068215243842587049637038822625188290533628953074719658510777129023348763755535470649825974650385263928723540211533157376138521379726296730388529765335967406012428363233867571707341951348580155626871192205954036916003909876071515770412374000976238030675307426075529797693749716869477369561556876759042496873229522446795421213633885830639572236547356704696849453104956309142387264049408167961437733424082539059702252676993659442518496068906159481754980597285786578682751072892515528346445239651414684548111263032496929199806805085927399736379631830866603053244656658811128515337121041736804638137555027354547820932410754326545509161950360002880143770884876786567455644604196688626720064719177532630832006471159827777173664877394291132636743530376441013043755260672096464605216215639900420561448024346641282906056131180820053635228973698016920401435771821363426021074974465184494648035191321323461400408991775635225537767570802973009047261243335251015164596373005742173552566155302751420681087768064768215533655846510310955105561838531428678912591584712208391688325272348290775572291799597835059687025063343920762525089156565662556422949655142447870028067655445468413110794082276213443405840753630388877266313742189080891225179827950517805923035490835820881046610244174772834945313556403242962134512482985880526487884417404455475480044949850423809442714834931522907578770482055589240661271826362180314457631588783640381619702843969821972717222801656931850676805422875169268632883894803912558160960355706755791199434045055197873992271455057444327471242177058546432721279216049772464284269013147589823091521591963125723546232180849539252232216088417025410583228660731496361191275655509656220267691822949223589742187619097092892522864564960693789846321924115823075083688445620776039413036662779837282180477557111743666198094599766553418671826058929360717002171717785523545253541887156957997754195116378294537926213558134580491593828618649016810650577455577753446829284590848924888904118974759898614826277646786237135488968984064274873165103620582194804606412150663287746173073279753566720230452568404061324076944194275113485098369096690043846790840540885545131070877146793100215603723042537196188706589875073777686178179584071355986331176967337097165899093345320966879444738380627102511116452850366005253289817873338441028577131815705989117308270303524128565189285763631353067010427172948111112762415675172392877906190915822116892835916438208829626716569194902931687441423324213903927772912120787559394850531591829638142282930784626471492987658489246004582542140122114545352748307516364025040371546318846785486958284982064457499066492939323817127741820179970824087841635380554879004552657904584866319756193688034435558357477123659883818315084868577093004162339539309942409812936437966593124879158761849709377161673489643265518908034940463427631223277565491660317678047665904178011955951542703699399824293457546322245643689379288012783056003802933743487916242040647421076947882556366437850622228968688998353403789767473271391060464634460223358955130548991079854438051078062282549346361179291266164674220355563734314664433236295328726498884381370000209029486360877216775043786844011223280359133043207051838176005970488483200810783280879398252145964771710471137469370564249411500322995750944462878392939572647409170998599361363391040960654961685954496187787520870315432144925939191396647278689853533510464636801399211862775963652975711866984561640104087286957367624661330399331415439228038671016723722916454668191512981507501058142280895884476543773162361247406029324910066887801190187904572696947961839161943367041142498868390856040469591536951801941251175996399223402250063643590236083859841223152874321139219553257676578771108275209292747253459079577778961540995547304318707920399241529306337949966772258760183047944265313269767017761345187577798843735090535805943885530029086677876554097266510773663171157351419794016269074413697301868848147362951652368324361390318605840715341445273046122016449662147902344995665277519751347332311197854674606102255645857922038799021920839816753984129617044536942415372541593223172148441334746557270797028203207483232031698363503537981256922744698756885114010497089423735741192865249861195243323652657150874845225433866801833915231772110418550565984416426567672834812600455813194139348220117062418096938776379831756879880454640297649055021027994312544169523440460689201672577214520805782134364469505471545922505563694976072326562023466168373709234305943716477575202124624644842152119596949831541591709480143742034420798609955588177052721381618465427857166400484389140192530172814466552005049078697401940312913798616018514544857385356889987808603128429088814643095205541874427793112523390753242317080551504417402569680814636660129047199414661654668637518166306061170989587764575158309562299905436887513892774866744864511967825185447995608587947043835352593803156292354236060735769688917180546771610432825876757715569803088308205852762371451367227220367090751402863239767023778037577042916722370774358916271327699728389989073319448377122403948462428008759378210481762254744217301311591700623422871645806081053973178324647299222185624716346150262689071111988189579497383119513167240744889100777125044491015779990610735851585081190291961788085797142378308840488196424480072245599469869402430431359513621035288361838243513588591173397330586837898060558502824420922629462623898543497047505366335756954785636856342386533841508620253211461736868343002170886489601378528348933872434830689747242040808648293125188610542325478115664446734708986770871316832415192848262640370909302032554506782667549588919819096662790385095156119769910090704461160597370782009175355628967967080556011758550290428166687740122666668250797407920826398997013644754953391635532483911105832409540703294797393378010127384192423304638685809877754183168160337131511802849092018893736944294258358620374710825628259214329640638490976942197832254715560283867538454561510568403032817545449989220078816501389467326100837066320735450811273487483995973838567577767988169639264522340596801306846793601399089125835983693220154174340163942704351180401480560232930686604500403192742331815360206200818922682068277212655526589733194478344394334483817598272100096812996392633063285297221234038489845261861854317131731881481974088769408337080770054117180878217681564774497841391640512876702164891354092392415489421101350765488904158247987902658177775582755044420725835907037072983185952467449400911881679824517771782034881776487691874334560531171260400558879687366048734569782115390536674308989239020440331764934939721759728988540545747051296054551989782843518652316935302967025196407874766418637505618357892194024378524482083470564574240451729515095444785773539711023500595599433031024104853306050075090069311420617538708548300272473312336901053184673623203883332887109067431693419478479396510503523226906680008713886144183806124298874764585263405166495581155557634295416045102725699453373836593412957068368449108306059640655120933425603582864566313615141522076824153641114971803886086056072008207770113185366779400872859163785939491187310529314827366196166283864492800336377195600407020874114761450299266076515249318516725888734041473484546407850112455160435172701021131259244364541603130306422105174146632824249546575461376509420846070747102281854541941568918907050461321024992090554863685414369958764771561585986838312682529593763645966464333420146121973563299580081021691895824242303873399555840511131372327526241766178666257585199572049288794162471742115759489412455924266351980174215407700291549646886557956380635923305357457404927977965372342304414178035633806841686053768811983931444408493662002283047044751060527296322409450033732058152890881243163541019592687082080631368828571826586600852879810435416222105508138619672360969980440323792964110773786269178879229948506118701099692307805285824350532983456866753484216346118036461541356993490266480180895384884445545637893880339350625110449285588095345175170673375512167818296910885257413232901668504383148775068136122240709331956143203002935493122715081113183507566484558869124261271314972844765842631767497271471351170113470979286843851504051293510162184322629377894009204666989080139533077930025623191534701551374494649674973148432525382162098063351172707718168850186802757383217981531261315833935983868278007922785384102423039126904039821276651372973665959545300722598363275683782325952599412769330717752841829755607149353205700713782562777119795123348868136100667260227327902090496049795206528414057222943884141776115865491578742282139402701182563838801771901234334046957490205415126431779455796966888639639637695869855722937701613416969754506299559887635987508064030636261718265184926299089289044910306561014954520698353201899805988986602501208426883894275521540979321597560284789653829533742618753908097784514032957171866413750696101721179396657383909065606413981759261538762153804485680160545920583510512862291407825685674584845997091103511401127293073459596454130964284454094571583895961918497657819482834098920891924295890387283986520831514803003045616046172309966372884238410714582796884492707044520603497501449376002431335835960346992078669518358034369252674686147982798506352058283833335521204616979478860952068087468265400439230915612792483779641404471168677977460706603020222541643601689357835794276490314568865152058804738636436354908528995107543285080939650916469152670776818002870717604222079995452949229378442802370427696728511017632314329680955487167159361503954242977393703975532973607619928196583545549186646077304472069425194439176717879890534096457508738047082563924733174603229682855705328318399160490804123417474441432416605753139843497783173107639979866598701991512783486085384682784933426502726853216703206272767778789190732335981175284632868901256545025612458214795977312457809862328572229571941099263774005335308740943084768962676646223573180128409949424177360410635072846630115603343810468592465195940504382485061733339217368990419531789866787257253277648113144213372703403914223429438790690179749719104206526419726611086956730020492186360828517765441638931899262039779852134819997700960381593830359440002025066933656389412553373636289858461081936275732452164211462976246323722899434413734245652385118990294724885764251099923485875920698590910120844562631185173487331655625645870509401899003687400473676755349414660681574173741773559732031684726363522604026849950075509499250048745689121327729970178384131872329922438884455650149555776868219747796832626442638670965747117797103599545630008565476414243160199351965850635412417601989684939917532250938473954090446491240839134053968084749804994628145144245920838348247258774774221197832769741269724445079788780664929567621693568485591062524689762790805471894020082887446211772556089255951591075393889304636227315496858867217634161792672510344645476152941131838578576007216488630310895398610352744645214630921346287560118116214783965443479898438109566341175741877516466430752282181823897327784202297084143988289674802857645541340639763100300929386154393044407078575284410702421539180086557139679744851819298044337865787821694135462604844674101187637235418386828357850908388614053976199506570960475214294466977700030409120168686131373065162443800468914699966386776115811185202949355055267475623869546672240201321977196050820869383902147420007299922528955636485542036526183022581084250898324314291320103411027145803694021054322573149178937540401300788846361404672909999957590764251817184000250715484173450189122768879126852604253874358500340711000879540157430834443148394852746564437995425906990241950463508506838596738218952495697398149860094215097944124728097118382158597752068346893317847645889211807603443588332269075835987977046831546919016678225441014774693008787449393419516755081930073702600336063800867966787859279886867183094349188513760239418820794883867723512788482210641627966896034443563662160580071466401177585482628064817512723999482231911294200085872849791910607592198718959943953411102582662609245237808910933111457790506689748199795035235486600618502425482080749610837248899718427514907586204833975857806880526419796271430912413782180196512436773358075601845210292073018100779529657390659223325918451247448915208824866972355552469749191150640609922171496303190916045078423410963362170417292609137872148735669670880384154350221618947932526182579193677712989819822304541843380098500226973401583646393890203718381059959566449092227645551877225552263875425378924546126673400496809153226050404347498581144649025575061119101333338881146076572599205938598690960823713881444835183785305341955687448459276578647005118525054920141238471868927542438637155439294564230428204921839719295555565456449440032327214880773625242439081931600605466293640485692683715989929006113396089989612784224768745694927296713907776332383369695078958616991377765443016201202111498892738810965163120485851229227583669672435601798002722484464985656904670792159076512631219621909711634880514658355770608011715702549596062238398216615632255437158524752487687066418314013503705516208021100590721436005765585963353083218064208107319260726134675609779942034150637329651589799711459076229400686905556439353094734562946415338177807722945578973761578034740371906918428636457164421498000131388918365149095104936037640459150613032603400616139955918323821891912818416070774923599943022525640323690198916615097310002283608654264420877706807582409812669821231822792764449232628427990454212869787971505156814671586855769368740880128044344502824110382115002136752118698051081214037221564227941928140681061453869120546937296101404965774733215459449781325896652306677195115281381158625674520640563660039598242795029202455676396759350256227560729014738705830871245948785781288935026823833832426477486522457385613529631522909660023029182995843990094784534517416563784418509221431752803596081160993805449331320868068068493280583529560094570238465042459573437208399519912524740679753685887992207367353200832886863543621330751903132818717249453590488344693815218485603080345589557984553706240218147770082811676976492606359380730407143678476693547338766151561491608548837675786020722748556794559793577740278328681031303426609061147339666586395990504258858251172163456542145857025804328260026294755471034945576885915212873108901897790855376113505094961779221858473098321989389703550518697477037830437594880920469708852762291546942605686698798637711482526654375903314733121892559160307797925789882710841060059708227156523299859094264473479126921829840247387836058384452359159864992753818732893375001525448695776559893989444808806760413718503673933920055960969929612011817718878860150348784403784240471220948381566390965799241372837295947274996206704080265225480523803052618399075901954570440246697361433080707984541573734208560891911844854212270030117479355424022871159777052551376309141328547216171701384210303563101223803870689385428981862678688174259293210852301949220175766675079956762547801403715453878641035430264870502226729702793289458595440645893337566978397269060859779031049031456151065078582793789232105125077237622043171479444100785590115584432941664746806678260003695190618140751300741328190473063533067011389149964930903788562608164274200755089381163076687774309259499310358810355904543788989301478973660813857965821723905162045583189879267267551344492999257075635580119964377364334330179962779562984217649144751060337639877011946799410238669955910588822061801704519416007304741838653371525474438342025027642615163411202742894698670880164518962601696123362521081514816869322549960402217436999691239994068300869982718420567780455895100490028291765414151437148950296442117769389850706131559995612470984921854669167267143539655929444874059496176270140090075820128505100975902984900949087179267567525208645637435558089888728195073428412754196226311543551972248899474177969159733361890271645321407453598565463386077118283217266791184149731905116192241761262480314635099638293249564119611281259865268700338772186215161959121461279017092926511722410703989553118520888968398509873797343723976062099752473062762865882321365102491000825193997951507691785393372995770672942851742794093226212424937851519240931405075592455138725171447919397919948540100784823439088156146282543513160699642409007768975659729045980303386289650395386265400922098171747170976377674526924200678318708684465821048974103618149594031161265657489438122197701532473474728694333135848297595742329113523414871956714620018420352568042685576932768963189672626316002984101023717589470798870881561513169238161930256374422694318578923167355400390483314473918271070274535727918887982080285436525635379903077354639588581643600446046326922523543129766020944473303069133961335253060226241963704930079222571698888140891938209501578559716890671361471411495391510606327937875908770214611503206627001183622421611730675758450664284193568348986614873396548405802066616119535752190551963672692939047825083454953125215101137784005768770963498120343703702806155272160645488619351031872270696046819460544905142656739653298163475104466117377707031471730841692815692377764644276699922844844133935571167857691745684161958626553592065350190616536911517094781449804114276885601398490654841849451839850011704415648704184166725574182354205614497449460508122861019777785918841078543736138441259442786101900375003096132133504067986746932554169869501769605309572065708178180647905690465709091686778445102941395396785253431826434795942072049718475808012554118724381129560974716104505896425587864914443387041649737642406823269243436586179593973975976829384411955463369607184258942195576081211843199410326093649180917654457316071628985069683824141685967676298234074764351108461765991856397851315496417017352785607670705877207885907473864239870721614904695535023902378483429095520073020515271156101011994350252736288279663488289404940668233270892344148047646992932862489735565736471189562353263247654321426258166893293984108240768546998611336511285002377248508896986794232572119012147972600983927287547587365023154647339944676910663219309369691349978569044981655503573389433990190908820865335308403674635108052985949802291228812092771981933287202653293386705227956075264745575393476495258783371266281520809261717421861723036018991066820876079995969848841717387145753968728412871387444674898414224661824149908230088624548401622641626213891972886213427850167101369343928545356371371898395456581399545276335015334916776738709459704782581633792923795201993511861712747441303687478798782609610035984978710963319192587783766763537134353980639458485943557587013992298932063124269949566483346175868244091621971541056310180142648948685991021756190707551173113593911616240002916600380471736562062298719183636261976238142964032179370984503605209327383200160043616928402876944829694490344235177629455503349661205453941330277192208228879340458205631367986445014535418433237454181151801453408664814954965314082206838288622970085083056963354934436668918843791158596682369224846873465892143256086819355298546315758098168006638633145210443248228172420578498421141333800112305720642867998597428301891410598121162703085340861034582718125199454055275272545040648144518573346449056274431168414204831609027687939095647787666342849791230211363647891910093792126522255554674129225092131899599106934551622135234459517734552142587962561724609128382990827783942202074772804867921876457338021060511545988933296329665442127705786835248658664012681352352760329506083971311119657751113333204792136161024838020683075649019134710680973634614095741096585578687416909447933362488505100505962727415552742229640011559693941824513651993027625993014626921671491089132278727921597336120368965444498069184805616315857821714169254290346935637742667642269822523174640429796521209223854397978743828085997971748736382315898869297831149072004894905364801636994338963269990966595123446509872447803922878396563024005812329357894536298751380680642978357428005427194978605723415503668795889658406848635457130474845512508179110969412461573055017808798113463922792897852021699783852912268455573428121734605288543416349567559370680537532755099301640719043434544948628682615183650289221848226947851829839859092993607628851619798809185017389464998204039558303199142903834961869439624798019216395872367106425820185505352587787092048449013426125969539571484519169598165289668999737700126271039901022217665928423434408047325585801970583189683919448423720568008843883509250404444637716331490348788227446095076563568723669823671670402762298583958045598928392619055430695148251277969696209544701255177703382962593488462370464419862151366284470425179151000628386842078392809308605775004861527713533925387657450965778887721261872961016408419755957884124689047008970404515171644272372351154728048033807073435629891660519342429285936399837337784265270129753429722074864968355054860198327712140732219235526927208740011222670972673271946660123748652347186295271528967426002124192053554625823894013843941775297092146568451661128259599572115688082294151385606409645404462332377770997460725833229067083183712840228145516731497883881938774841403682664450267506652480581715276262380490264566969569704524086544273087302174696708699103892611385237151376081713459556891670564721645369580135609480006341288402060797914025201313050613687710320405523163427911907778256868684743197737219887189779987943923903292688803189315187450315473535333205766615122649737849572484237762120282219114422544923157321117103853799707713959311403193590614877119642357643308342443777237684279435622694320929390426044139085861520736571540926444602122554877066937412200500542621350996825807034805895373436175225935991314683546366883836439161996232789982615632361372713831224026423299576775753432503198652479956903511584615940402966967092089221766138356569081023131200491218696824122004316049915831912384261655060295353545043553091775688041366556031719837474941448899070257539115906905422945438331027510596023031880781566772774333428046275679805699402049000401146794272395209259883801589002936158424047158660655215551897996657110533443076228669061901471939473917866218636370813803348116623935392495374198905591861158634209988420061471684573182518060335341237818922718567857553847998927319210983513671078547008825834426208716559134320122159468576795643621823346841231671358767811656583968779606693620329386447682520342490551302668407027971980202173640183306364208585154432825883993883013293258180779063111851155524562836247220362939137370526098269496927193520443952126035707923549956944012698441584268074956543221083949280340210801813411493007605520675228267292491662778323951987438916537893052380604849712358110994224292964005307327829125154446818516214198615533946690547123090426668909440979978388299557093913836777466747059046738107544576783330498066535071415288185779330021862185516594751949752870169992511644834153727444909371350402724654388915680051828330485218141463291997232643709967135804993784716542696748975610873804468846526699380086341300475714005819911592722746668466679039662356283523930473886008266560099001797512525577771594961587502464189649474433278849285231402663446722268181324565675222864257609594663352837519749377095563256076213299020231479202992446281104686030727121269148475388683294608208560349340628668184016868110321282838550165925387513545514403823196199577112347473644940752932332865843410274132651534440653421979336027319759847538710915617243012946981797291611209281794184031697181627641520531260287866534103102984740535985809367209869665327368208631203999483813714335295927133402038789227700105674155249103568164412196969456518282410211353354981723317862768601519179570491165833299718762943457479205534923220613267994423398522691115954204265554262486874036713276965726281556385603725420010996824787549956269618428054595598236030397610907128325650043443492704112205605306331047648095389623630399837960265357891367474607526381321884882620745656610180465131490873148594925578504027638579198583589154596776213955204590510514325732172866756019782616099727483582861207730774778322704038347792862187038288190932346845207640298079546363834879123720217866725718537140311244024907217949019432648761594318188699175811003969074711283632307495140403129785383536649549383135179926018731090501003347801797685141359800202811686515819700366741851194117035348623246216580259951335299662037198859893967512861551787997935682373105745632515301269929609984352632461214543993368622008482900592321036171280070710110277991128165856238132111035580024990739379608423190100317265707485527140723850585908245225200453640825941967822815483937507039639000124061944062653984406653204970561448754818012558874320728754894210793879537775545319680138867556071232910220893687509652603427143985458996506130265790583785410508720938478061783759428055561786350906375097996454418810843509950788121717852103759873984277816387229934992042731529457608364597140020085159046355337769217287638712163452146596962107291887571433923713080110657300351977568590155142567533276725442641142816156001870047722710912527803709021026063871229701326559388635037905766373512527389462195975531272488202204927684927505317040992818683045919723712113154905258917765112107839293426900720125876668555143976934544561413084632578520654545121666865915420299914681496941901343803971334271530514465008581755636895800494460564622444575716102387587287724718879533063707637638529125788921658880808215195536665957095315769037314750394043789951133093071864818121469503634420103306268412076496320756913252971050057490525034438272653505645720966825148776444157127997765238219971495667473844463194895228434209947268839527511535084452895895705184689931862102164703306019991104463322784426767199920535938724931406942811883277752634958905511898724131963212221588628231780479223221372627843940398456823362909706826433945802207880761868657999183657759003346289403817914768820784297072078612877447262401287423713791317433670436860193396178998197651896785712734541577369694492467949027924275022394643080574803231304875651336395823213022111359939204109660484796315914654994001515995749290011391080678873985948350096172386772413968330575754490153333810107433699661953603351319641262696475711905213025058469353739624777327994295435774390108357333894010750251782145565371675332780993346298864838437862542912421382288369146799257831869762450061872220256104065034048366197509770166669563861249999716110413208031831674412761284230723256704889325863534397556644274193841517514432891996753706966557934735679090393018810494872855640569712818906584275659606514935201013338452626061630977202191992625388233147137127829718640030213742180724905550756944176835128544856954612566420583871277736262667585095145088377202569054875648115357257819281514393031620705365120920187307993667829905267942319853840445474246317533882727777048520343368907838392524738027251622815758063836789698933466768766165359733307791063260764153351197193260310223757832709992134332245797914567686564471744070145949859519382738006179585644305307486538310367056603904383592120565278923150929886943917446527880940158207173911115168221808522321241522961573884606254383738386436606083627680009807908525597293660238431418179819848610660451627938215964344490343032852506283225705224787262580293566341527035232163236800457502245862887068058011144027195251526402818268710837081991085110129384555866669702743135196372380269648471133146455615280559985938160233169120778030811533706946457267215316328731221316851346230965580456346162991314150142441769116548919873737448708625259936732886453784059098110061615330497656748004108145662151124942768134213526939052849292944096976155344366045891397863828479061107734540425516959819440084903555609388760613190061179479051824832430062474030822735104692211810880607413870778960434628143281470725652377644340742337160062497680251094517062666052187380386580239053253668420903806021730841460778210287360764559991495948494670385646998249187958824235911721295797941255382560475902191704352030622420163439106198127766460950802268788155426411138930995498675308413548580864627785925842896498488428947553107397519226949509012744288666465528584693051290867327247773058140649946347535712256614293897183311052666639885786472795723920148984540401519584701201081892209835598867626538023531505103434218534322894846341614967938885907046873771876157249353884425522661169947357201794750587135659597685274308607409344955460711707742413924349670818549602725459695864068257534128014424556881019299691722711024686911297191583865833213371665402369409890075982601837468537110375318789430947671680226993777023446305880310678666944446438419956214929454895788658535866301366941724461360203226577292972015880358457525265535470005667609059458617133079017682035825484665302060426175512513855079710940256853870413869910552514363353247171314814727255549665849656858427153417215733063616409235070536464103568675347797045133357963918678274828345592717473393670300355150615301274186313803527307693514740802296175392855908166045101922157570203057094970270838334973896937475105641235464280901772476027297303593405478190346469768007253903821651948788966782959969786298768684742638280451689353092010233638000637869598426172774263971274791778046541210674331672958051813399843103297860366644484775699336993633188314323511478152977859676795593253710138530395846784086926196986147171291446145919330939655598233093877695602066629292716590637756499121890251423302785533423278187278796484174952247796835653534347793078323606232183060353656070257935263253843502413482328561380907098560071191344419255662420034671510066454896405557839217044580130038599972124412640665333448438000151980915682275241479853361979771836632098809839647207235458823398902472758516013180246646754396955418637975036402922398944454681091015057477128464998501408458212567043106043065958639441697001989988197293050553277875520981925320311430111658421257734804214637609899377149966703696490537625157939372318749039659531750146048506249415151731711769333043550323740403119728125525211421937948182166849096678069642325610533160362672129554474119816712871143517266474570239829780948328019960879722004046347193867381811730806685724888411362502080961056792379565028228008103788177947324254186153904007210889371148542585180592443118499943874408928674662028173110294580717880209346311704568230343825774847634430016177796725051670376896730221395686851017788865639583176506279678323624135873220974444284681353301342602786550069819813666559256545153116279974834144145041983778864618153789208683186062009164273250381092936605002123643479110285689186492897191580061679102335997620752291884875124805843779627015434860666999861435311036777905942474331788826899374352398828447214163292924693486113626702929791852861855180541436167479597475229038274945472796600059337009602669750977299101280287649936052716018531229777786824136381943576071161586015551460856271389442760576613180495047149207029597674981099395232212120504034540362135409909072384891553754357084869442950799126133680949903793282893580595167018340598511552020071785612089127795814530564836068408299113684910202597100234651625009664985875369789360560908383044440865199911952210480720041578224581450000583280744499685917184445011819876729069217094662352095025105892299154873371784375303983328987005760301457066129441318569444491290968175066970928914808119469991208436130759631131132753167241574530854217806241443841758347467441722946548799142773407711565647344750487560373393877242511663121811583845459635512851385486590720018953664454676794786055898410256401647113443679194233517281861563783496924346945102327875432728086408433220413601517586984517704428791771560337725597064535294160758885597758530051089489110260002378849281765688824517559201569371567246303438169710305090153260090838761275987924839313215665880895507562106684005264749742088226619708483106161881979321478052593953207165690072920302754201646097354561201540701928211181631300879569350973640194752213689323455323996762548582981368512164377889842844531572702431068979999522410894620966161811138562179071916377714990632346688942044190223048535950457639591546441030373847616409791012708810242325071843433759982206051131117685139125289426157852622571607250818325069202510486082065660563438355980200895887507404517609648099758378434151922136172016379528395554724224754938385791967781970385408011384326840950648031465096150816828749651735810227382276617590618593754330971856999220915999403961187014846489122810442440364809910821810968740197011910212540690645032889344678847865646909234835304450397568316504779011713059780375913086006758396411311408183411416424330379428176123314944226849524972498721737014129428396403131486604978333887363470757835086338402202680692583907165604964610153542555320712715023124035193702217655069971835371174346913492688018629341853099544618035604861386807900237691246453537907331297566686741022568373339357839380710642555060223727284938319242007394021793327443426340209939927186609257205517908927870820954650539116762320038371568486864169717016823992930144237884812541069992609739533557049706799590889794246981775409426548113304919327529442991356964825829926196333704576869673047465784100858045330125279654345364837250576475649564580795204657685746306829155426680520667090451904090136320296270636131080096572321050018760913079308769936313545906379093125757379341958895955669000293380596319729926401825489423784899575001157452266073997871062043731483635901988537438065597566913555157980050725724284949898606652699792982277926908369749573883276240674625181641657278000543205574980761279986014505615130163485977393042582054094399692368817187447761895939735294126249530055450473508423183594057872569742118797382832039411128191385651892822586169768107264768789149413970446556416053210595272347872177373808016899719270219200688375375799280399140954043520141502728989018001883505178481288979747253931526426536522924371740268824404223919306936618180023539126796815300101928809265890854310912875706815253541965603727020200572361433684806457252995971540810010725742566907778571785241501673853215473256297300199240899866214058747111507974504412786334688149222137853446635082575509522614774365785442543919837957240461604863732897837188645825496761030352692723088777590302929334454818286662085152266702137379838833976410485195637154165676161098645515551126196286428876811450452286989600152753761997027159983173233146385812029822951566922168817689944422679864439413923222631936513047796417632542735325509202038586533370109929897103185588866101508283049914610006171323163998514489320175545500251331444926376850140988756319565312668650349138523192024405746572772704424632021172021932728534733796279752741204403291615385181258285454200842967982261557665927320832991161202295946407071314568581716875991583035156907646147224308240923116692229820418472344071518891786096344390097244712588342646363614730153349828690602252186074798932397127062340157262909566128202992241180611418874994941158815452856969330394041961250200528170955252832982555642738400157350340882967305178639515674161164944948806556609210438596433367751203250730066306551502264930164499997216111888737541018749318710457539913877451498357565607192754495007396038571505712081662917749219711566597353378258286086653161443819907066605757303805427051563633524610821361251212155270994203784164160569658102151476342641701069066552575404774095014150999568904507168124369553972960145471828314513379372754855481527054665978799998182364395479220821294675223759255395176285952226022468324347869154570495502856697309850865144881781080142992728902431130191011520814845517092486830584694827492101424310181469761307529793876720517106046213859886043179910879259577733921962926331175276105503694934993311463686673988865984257954962409530499744704212690933027250507354574385336944699370343889628066978590806907724400431584905580263802758029943479170344050189460993214059109115340397340821719634430009724201371712881196107794057149873138907832387064084264706286297357994305813645645323357886409813525691109151828674247209506384552339781527821616975127859677844280776147745962073891994228347359653106568044752374092816290128479055743412242918043899326635037922169892475968999493294254930278000575821608350511686999113076838980888693980668667304732764810467588465621535066369334908675705081442568958515993613123196434844776298337641420886118617827902616964226794561455382167576533273986431911963615539144784263887979540365096066310018639116650565901061571931259051171154313525304134512553320564782191674075329745210898219834691843105097607442799834348540439589554294813709632447109643025012266857361800486645923872538204885048220582265219962636796502369933582667551893266906261920816621828846568866791697762687098408844030580866229427171479008614338387468611674819598140082792341533849454714445243775230445305265222182817254623842060269470867095165757778049286132032075985839755961602677470726763314819940285902754050212842491265589524818612083418340906408988229757190298586777019802785820962835581021111268274617614396555591795088248865970654193445317304566857759874801945218885549885362854331297096437254074622165922820294928152153974666651806118508446283800532743653621325565027954819855297784967457705850171106706226848920108101241855500122359714795408435329112399604247476367075070419523393330667260605033266801877421443718952666029728092773097526520992347467800367303814115534450458422246922550362415767202439129909179050570654699859030075167831712462093821935827586639612233365251954903692682263908339540648241572582276841565276633329950003719005449641618439591222070394742450567160395941981842673270470003471743869439738404556162383499582702798767566676716954586689011243087665455457512291089253265449945700228551959726353415247406578628114325027534285724187462666647954460333124016359519707254286590064028266455981493901657743724788989067304744227009067237951508838760593082829459147103584695614804546955577102413410220738300201832463462047494989002180942556813533922040113143679865409727258076387331983601819320354280180941973889070141881621335941711713397433722641756630843404280398910156780232407584299911575848319839950529063612990245243444588887712229671252787906115840963937934577392673640594937263231490450093106575867934155050387279429856509217099945024586726717254792092322230095073670000730580535071713087080402554500806580312967721018737626850156532505764380676647611467349744737272945664332605451721984266805718954713929214316099354389159318087282402799436525271396186061448967144421721199446487005691614215832794297717900664642973190840454832898424855484942078042461324904534188297441629322630595437529769804088286708327563560426098938809714973709589736109754114836072822097262602712706027348335008349086998447959354024433734884225905868342354507964491298773533257313485862064902412132702408751911623954557919185584505411526280070760965357271729582612582376065030761358257398171520911815381479133323499703014188768687536167931734647609513008399612784532953128861282306483517827509778302468185442082251566067590004038780568131942109051233647624214873048851100849227420964532732272824614365581988771966556239299894351912174118048356029451941565053492775688539125707132891692526337418069066633927868440359416944200323000852161123624709905841626957053429759284665762281217663333835858810077575643138499593798492742433688484523018598138349207659432456632592134884881932742550784984956594840804492195550069147723270961943894739185970139806741383520546711257661372727900693039610898255538113158225024738021636317516390920956419513194694030984990811676994110899078159396601400560229106218370724659167991047177267068292126687652011610646770175153781867240504033231355439723025246785162743075170029714396137838249222763896391084037353601637676685618550365261023681864810503503703891161089666487299560688581228613603151400311146519011881147343273381629791933262015071630119687140815440833328889486759515838788358852725773627999234934733035332969933951937181325788193725266465296073088045289066424251667762907536671400641275508702871944020522170816395413817875348396490870430979845688240085648358696953919711416537134085843819144117415893736877656985710389868953837573701521220243052282483869478699146162718538065614002303998776467724489016952361442470533033972430832036611409130468675941543933106928060606782491507030568062606074876928419792403745101712096333393595372014350621359692073065700248690950812564248017878673483657995548576463460900780099896772044832621194043585920317480106222383250857675749902978529008129327087151910238268339402137323425192153288478717479424831281665958475340528683384625634235301417362929891059289399551747028235069537067891783735858639805962545774078429301087766922018823718709678559343699209678614762751721824172315351912646979848898068058243160637220811411363187715041609628902844757491776432694032488602656348444574895585309201861500782446923785147912122616924311009590072859759551820091645866233703082803725866724472286287776330334813406425619776710902249455998001240007131125559210244251366744963337802695282167876845589361631415998464417210572473473717057302975730242892584489696068348298354220661767565559257608503177592374203908537716653607170052000126815172874707694763262533518992377673948258003999045718033394055403158945532626278934288873758490044417789308469108444952658831363476692241058773834897450686706871228264125995795486295683287640010334598733232110877077418113288172839241556235858249899809641725639365220029260396852791957580394647637482579958547377706517992389766825894585220920199480155341271377265914252004178529179531466476608082231016692300894012522873079716019387129951773319930045480308092869545760258201446003465301228193093259527322940920359003484481861651824514847473840293309877263119992234586697074849103365859916114219563317759956657365168137424889534963518595103952362590243558065966456366612535042333361412109061838403819501872869581411088023801285436083619491188002658855448492158148238292338515667656706448622413264589224436248391505909639392927234191854477587996367053635434529788495717866934681141959486073222567400431278619569081081314178826420937765596164221417820927022634642862330549067301492617191521625651953551038874033162505422986788989111437261476237652698213305359193869522237937182281117282657742894048907284196591294076874408864401238888990844835034924656647585584580387775163549703745343876504312607999581860845053428602676771528849776583570773276474810410983767982431331971160590437621994078691963101541102745040384035526634786421769758957479025422961105517480433939225493026520982505721304167181774075415500162972747140242096479896671808373963955249470330394176697916363215619437088277002374481556867374679422413683904236017435890341755494622905463559983872710772261935102871639569404912484559061787434765396147654929012616676273786585405001751622781766251311106530200794192605994812718350315837274376363547907785133735288917423556805567098654500555518235586087135290907912350880666730228146441850844386772776398118056698029458799673958229821473868456762922945020197135114234416062117828962369472509283536597557897334752650477760896643962166317847964120669785939644582491659740323000603234514856513280864711606522160743858946164521639097365419674358498461624341743135772215176539603125719352270201004793698270865265334875179208733165863842578924078477674788777881694816151214860195654367877642156797415759529082286104545486109313790814855161666249464057469277579785222041865485876821262930249747627064155660689666010510165370515637316695267757173993996789570413632831852650927904262299799328954271407863353852121225540491619356471429489495349803052329152275171754376319155036980869885688523748130022765840062071753694584914611877846130580292099226558692195033555949614724947929384221720868272895547785478266651740463787261297200056152657091145807283383436471612393333086953001133040029116180676163002880133677278492711519439928574178983400956853081674264773485789186234485660034049498837606690514399807919976802861803973378094632575384446742624028672686444007967329498174980143163596423519373282999760795019331719182724927795803073561852861206390914704429279664355958696426705304604962325909873260219307547944225675784077776897727418661978342607560759115149261551032900475081403099066601579506634297333710093128510817676120223186226241435378223505625494576845542744725332308959748540724980602331578001263838221519755846095466607875094422988763506295852137857669085706382189815702093652033620454010723880825497114564278248478794868343372248889385805022165354347122314240275573311412729783182380341156332338538636334798463220055226129236538356280666604370465536499973929151772714190041251065068003812089377164554883829430109497941309536537778180929455223567783047152226493026068661838132356053732317589663986865664062110451603081600062435855776892248670862690024235940304044594891617065581464734036193587117300012598295988511521310167181716504916670714827454210997821855564090486507495197530985928346532013573467582726332622442027069252248552445991349568912797350795381321401139291870809243624328787021481058941381647734053119432077254124149091056475622071718811900600436517868665498076393997026933982580177777950791685244409878142234017711508829958235686896895063742586572856280905598411650045252936503909606041565035822515933075025694788924468582180344243015445198318200028697223290641357677503508258221856894973178233693096107303600059340903619313671155144341348975544543837755666488110457140902270730860479951109089566834663768578690007711974758278399841275225171279156302878643636900731084001096348831867734634192322128389767406657171959336811744185196296691147539044756785113636891573274434436043565790863305165513362975598281380323266420172597193010973783413362085305880717138067442673601200088697037628907508500793859122350592868507034896673153997151975728767115790874036495871548737228720587273902516986541917994379774898573921904643964674114132164785235490919906630511010299858636180352649242391658236761460405856227265623155938383740573911691434559703474265718659836438177944343899350911003768629817320549503629931549476506968671813386197376076077120632705789239360401307798714252376796033803878566486651021630526591942091071590152527420248972338297867912994291056869405410552004215503867422699101144661945224820786459591085875826728562082905372932377456968342368583481464300386677022440187653215193074077805326553411228334217802798290324090507375764858807397924942177282713508741967559219673678897578734039115551117919345334908560171163658866471077650882719936268963353530339528048106133037687618692482254795994882826659161984033307870221266828838727187477474077497830215701407199514972342429506117611224737440883117355176802352748391945337986626549982223790879292755710399086091509268237531356475106896714153989725957731022798583097713641637548937935574436602534337091789650449772362301088250962404376161710937122750857959962588240306413526217513025174047530082214404365954869243032194299493103699992702063273994764966352614896300918535629248312836959717563027525707928545925378159186579741454287180736571420852898389480397896563206087420849944637094546521790857126324595840155730240878677436661143508894981130619992056204334682200434387133054684691917358420332618121903431400545682567123388708277413366500417588614696898989185915541866788944242676592312388022691901791730878145639848808455450100925149808485170211652675530375202075362176116959570383976466659971486241564583936117559192381356048841152911488068999983473165479770868758936068754094008963158440614982106032266206507549009858126843495171555271416132371925116663331639657805026868566828369266295817969657417518384317100722290606052234514768312130203559249022609877305526254791698975217747678076073166722743152519610184241420713403995234710662934852470676661853940146775472008530250219723573241821159523591766006816967536678235342652898090785949739948616578108376135306806807826296959514387270859673733080074630401993141036837963746200163357971532163724595952455507991550789436439644200147617358111985530114593084086351409427502851396644150883926047932832925839005009842705656014120109472178408249824509158791616419807542494174709437181195014939156407153700823547799709903216129753689967188594941440268182929463818152374048216247212182953101192114039722415066356055554508036015560455622821996550489579230391707822301621495442765700473768284075593782997257697366842325930902876832649303227848343426125121203565375828872961324565083325539661504272244031961779266109893577720828297048655179954674019297085450263380487562608450447414496516332658643841822807711407911438718252073779938450761685964174965187522396838468579836543490298103479212456695061181981791329675366179082550705166921712650487883780174766991648002966648759378309914283029757670932876243739995896391118281106993840866556612640591635611448507193483246360061524067804757940832530393548056204745832023004422084494772540134798339882728817510316597958969287109642107383684997496648466056530889087342175828047123841246127977366852077455592958676963355139688614312153875924121304736449761831119091091472756412179329018935441152084047323885264279515220059098709465889351782955866410067596492965385123857448324838774631473276651166401859481793615696134726274261814244125609273010977799923460385283691207627042201188177140817499031458023240020506679849115886973775036848923866351346354865389201518287149587829155312513530365270851398811297904600898957549142088510667475146939285181576878461285259478909043273668151273582214207821087854284824379492016341788331379286354208480507528984622056625369353038359364056103045899093073137074684284058611252506641417569400661961494689713362962963210738384983390739584759971292757806846719742597304558672520723120587748948375538043805869161912283732237851039379928675807805511059355006863178829815772016292816727581001838045991509235657122104334602783848215942515495326240156858689270256350484536293043062526226072926665319292765630238835575441297675669085771106862044224936304053028383738232733761906429095309037781145800301142894099214043048478381358168125976287603824003916369205056846795138610515012902100914669115804856875060584874706516701515395486995420044669633482851937220727377261504372992941699908167573847843450307829930056454515591938895051552910675497988036742163196551754346646803388189241831963135630168450106225917040609502555563757594269569655830322234502646059965102884239349223933877618054124411838936450509432896741121666189313659941568639336722360739362343939888664764949661487822691018388499377577481275848059341377367760341187146861292360699156549919154542105980973707856749575906075875930403110557176463255653723113996175583995873142692298755009936316767102396349636137788408712581358492126060814935134129236565220143556207281918200196890705944917176489867611927547385169996019019525576739194882378069942912740476402826579823855195456282545461218223800479040780344953509375776621175667194205298293521980085502791560369521841023354756205942078892381802397116630308098950635042695316122408725997998601662915380428939850214296182103106819135592803300776812016459044943619220669276130424386127108786841693929349218206822264762521181487451697324490398020508291576694078390388399940655877518843682582917217467106807126105254447550702079237951814417238179551249026381377992565889779994176048758902549307649536799139298974034042657725846716515973125759834681076251284751262748853573821763100105949053745479831625494480205094372272605276178259560756003694016428974802001399773948598549211095662659258302075408093505023171168313315464697304934358490276181745780496735699243798251551566755404309194637753456520479275053373515002238118281185115322666868815054997529473717388361311996574182383240752501347483556827383786857444540243694481836673262951376862094570073689394779015206529955241372861930333686781183544952170606664803649031562133135838237521994919535078965847607934290186125968275950301635954792687098737188481752253624609536607127388259348763284753999061319050604015806262709471267646416723538097840934492686498949254675336388331503917618418961177978532466166861192565109814904435622046221809134081301099615789465213353832113593797808964264857127941539707590137386324608591348528330186389545541034039109136719380295550130175484060643564680499294206862864570044000876009005563451183600930188142980558328214305883466897463133860950567209665204811883090947208109665237312321076258674460022853662903464060346940962472848166738630966512137974794781796295250865266406452374876482026443753377943323383883515402875127223198234877992004592241056061627961221219689591150492771483120273369867602252818948901523973701274108670016909468024690988442031263105184484750466800873437864544879378319581194558447742001877485950608724854355761225694697111365606055109731442822015823595648492710111102190686818710247437684601390665229444408399440545204565107302973932958068374754828259066949873726392242305141225684338009860148540995507931043139384943044623634270157979959625061034319911019281234002398155000943084286160512878530173396522096608931033520813925521723010814275128378183903682039370407178680602510963056838012661160636160174275165195228366376014245315623673861122039364094670398633312097317180893802608611217572814047195816685973072337463283718123194614629025386213994962219259283657348351269184331390100927266219412517588760377455262858641353192957518850363222086770732403129781893993002236234625670557831188288014492128668048769838541191458914188197947542586307215826551422618734325016968309481056813285366391922901218835933478157434463718457621010783717472631633133416815325109751126519804040205215775637210801580808411770397911053929222826253745436557331782559503615338570892808105795853414371181381487884101746525795836722168077851363239064462997662110979100028953532286965425772739364761820267367677469242789434463105396414663026678450686951820210210770764942001410884214195320580680511708491921490995454635351066720218928060788215640098139566760437593735775956603483276798051139565722089751745237812211670378634141115618421699768514928365104459409633714270862007430992518552231311674086437604547971079505773135964725956639173905851579416561741454447659449308252515889577755819359179595933097837695353970869295316486033915401838649817089722870273123129305863183060625580163615928789798724201602836367558707056496189226169283483727881836004432140164283342425976397677570000467319963592229224330623596140999322905670225280893437094415202698252789768155375188578409773278004578287409419223970823430117798122669651388697527754245039580885813057243981297798844990893292886648505882447412047320272449061553034594202311542321429926983138810456395352420046357633982783047102084014947174270588666275185405050874226675770961586016000017097307737824046922070998651178829904851656269288234539769772981628445767918769444332312479454680873277664687362964210153438618128315884368373846146536731593687115048506365816412712394632957327974830071257793700866859291146286549040966497102942537480778896209994773432146938103343218110448953272936417331970091958116072013861543227922549831483876676360942968269700079402766196080176390260158573293910928701892672370648904857776421180141492011751209657401030719870282773814560426073013050843929040144289901124380062369896761233913107053946750103015849943915591798409137590628284359055065941383404050708513905625292662047370900124842571792255517020859333951368571704809777979067376176178205649280492073072312883556006743152408268731454226236035999238862003426460688270494765941266707215198352934478838830111617880616607880600365507132618945366999576899667624602325440854503473177709190880251675585445441976494862374118630102150430609035793775899126532660225372430468297704705917943042978304015728146674405921156802686381896557210050545382801004310333977415662458582805149655630803889693540235947552283099492735273364778328153234327994775186381253699917612822048971956516697511651801267795910274872598475909423798208121877888900571954651377512943005161642757600641429041360206529427394931899124090913119704351797332502839768282514094745781748496430687001014872007135154352124047367722637296613252881004933820920308976069415297099911766974081243653941639679393825692758941155850491330371567930013156368799739044163709793601181477818083523731337510304668612964500163283171213045905221397079027354973458706385836309197851507987875225957673455422396381561902783561723525466924812909183884171979854208971173143646351912293296931794157113311901766860743773077495217785988051923704378208075714795306246754833947429527217781223843364652201489176809104797997457945068814020391003203383225380769678576761569258501868232493147700207689608935181847204233320252385502599197713032561504875707827635011666885903890737949021812241742500949857795184709314565437953312257068911175308654709617861226552660915098761331878498461531588629796439175000713013595439217420329178871667916257916789761273265434400956674713195325398009840727796712277662034828128377147187005341202750735540642795349537553643461389700577924657310702679082090529876849055096025833037437652287165683732294889140997941653318046293553294414224959803381828097286940830768713702266419827475472280199082977499664560963659164202440132974358018524806083530297820539650475298466059856868771332030458327756720359540810417378677122266885443487231334718354416313675081114423581222674245341930897522699775543146854910125774393632592179813335749460272180994415329289192537697482265780142810076825104677750907874355631003689994292990086231191463604569862766614533406982446252102338713009821012707056764354983131150642454093192744161121050964847408984338807113852547786142182139349097697928531730261636595447558987257832376490730771571823166289988703465969467474223069660591376029153048675533626452170018245044204186288926616299819975805537348221220928941282585055024695705888166480599977383134422724503588822852084832311249924911045574544199125156265117053538955738308914613529864517858914477532268554366543183161868170198979720350855332764715252958020174985495926563807703248468369918662719825450141495613957097701586130112315654805289310116641734239850338316172256193246517723016242096183979348887838131172966337760696611125912864060880659367720623735257247343865737115934325114533763689993546253360423455590861588501901140664422743778275487402715652892128679511210095172772841452154052669129739421621098852133010301832490159372112466056520801442649020427028523432232516548231258094395335333997635120608073998524620837080725249645102462594497134375764615826111404149392798499643058512702247386593875999447392307025348850797230293345322019769363603485078174104145420375067108604955578557793963418984404468294769177376966558183958632332863759862558245974727200254467782155432118621310133716623764059860611593914172114048850169535118924483130214589066545788016635470984233040783818357042940957145821757486720546389595730604094616745051034991251390285651741799080060383533751618808615083239210100587995753921578968341937238070537709482968744241871404879089736828174115007168900761748831805564923635665345649668227121022116944417457840930779761380570857754327805524666759698373825586941950852142590565579782148933881475052422080658226548984154998214781792821848995117060359000432347672327745554939766636918150874339617189977342718907675436141717499125628930911761794581935302265395800123323720285051178347523154347623268984793336970406112344674730349818633218002595715630664817430054934057469750630199925448861783449811631880037011654560711905411881015011237529560535622405751559783860576779876755442428988953862611392247494972502301735892223806791479480440397561949155829600453593829753090919578387427768592166507382262326984907099773436538839088890783860354526134977935085241270395349639733789072052216970633188828761492494356876137004676768087593202513888506175689785800568330473216138489276965949471198755920969490687825375328887891012046029293991348951214837846686300764715694709156171407767079823874575624927032469214674112283738571906227562746378999631208334734774022486604214075736087994137989610758743969113013019306830721851211480883820476693139843188660331234018260642567393431313702377122336190442252853663641228287342784454731827283196278676054136911240593440375032757731907605431330198847611243485239536142506472623116497349601413328239808604814961209056366316651943151025399991395612756455748967405402097303545407069537310060526752937431962384874874122467284235953566853569115997112454728030942311382412923457776054807698002376894273332662600388046508602537721821908982763124890107698301828404199065062499107463718940971352443565336069284912226091824730347179392677967002962789180888250435881261643356453450073610177096195732262740276231433127255288143350702020004444827882389836670226776829913450267705555058283295673650260486566182879836776131551962067947272056691327796396449235556541586032212909712479994340891356181385592363983646055446734789266674530836610361668549757487751270445113571841650958016965411791169406051795308161996027349370078167398280139721526552145997196794768533044814475020620502369490348069183282198295877521529457011576092271702122058047911692740687203372828249373849680455371046701758667670813205726237065026636906622915033658452471093913024324417996678866172771410318427253695781152471860756409474318022144093122179148201022128133928693206460994581129416393281875602270189355401842130251072563959348547462053907957330391948801876649684854957450927873610161094624270922254703793848555351764402689622596216388642119569464109417370423176159857554735162507207665414309007514426683081830189474229452258325863532755039524067818084124393840974426261183301476216238885017196140125923183092517611213423927687216151307444362821951749850071170694778774146314901609755168186451082318611011764850373933831965623201810449975688779338431574836092701047203024836161564698418695211811527400315081492412300863405809960010785211210240181662881507908060830080308575186305184127225831106810901955853227024914879299023421886592461726794938691645841092034396255298325744434539589554807855386966088317850246883485675566164223379201567331132984074113554956447745853988134451397741245390460074983744665973201251405970575030027764625212519295362771265548629838371557623873035471070526202645751926664422498264066341365932879762715661785897455030441792869099669797756234904306870619128007923715632232284699006827429157582719776275053820118111937160821833837244378576217432271636744142223023495580309700996770210434256242670265532366522140402185246259095728721987594865451471511268621543495738265448442543258533672565680227304060275008048083511796650637960274488819241767615139022093433102347372311118658789922519335649902279970948848352037939916488850027461131874096989186518030626587070368632750551827725486539694800023060564987480664028928606166717350434477712432040748595726071338384230054836265813884835107902050421172537186288908563878860950597879520533214596227101418562651367976142926383769683668555415208339279364041822090693553275999098662513510153031818091710982952015423571647152966098219731210486138540773726047505432885555951903864168080572860488154553716694536427119493943620082216641518871573178492770299540209320753448264375574191786313042515492911134168919658031312183624180164343109499705489528095379682332824976258905059199198929383185550244036939008566222002449693315604323954860487503963815548669823927272654811918594726752600792639062548148847623725836676787187806216530824995143750509744305683814829512352020842036044041436770295575353224729163206019238892944572787308298805912088922066294689766044333998415904370996778420142432476343522897244562763088338920644677235109693093194793257683262252786151354698574074765877342548543454693862645651193375737676468627014192620197448651730259245042617710945659446477767114281255974139918418281909964995165810453583668773472599595572327362352493704380436387074020021492400970334233343859752467318538620144818867119991439852889026298655591168125923650528953180200505460441908635655012025236143325551668460508345948928468647451755569289965636569163831888503815814807546319975723364085352899209572480572113329293050507782285164726659574913260814809308176366529159638733930272091410440712685380396620403972576512501251776217392929431806558667338613379408070717969453820530897007383874028420412199605121224876216764930405398926433119681120002977312967885677705537271561062143503271975097144097842499636613406053539076252302738139581055502219883394991347065820705597882359250619258871925451482445599503725245229157026828462410014376794257176093242171182321760419858244681661654967796144827999828507763321266840506657347152597228740109304117590230277229447916738172310133430412747994302221305666250012424545314838573204744454977863414644000177969732011394348695847785283353601186283949426923393672628684038357498142288938643181918803411447317662202217524913874879377239663537348046682438379066035209116095412142258300616656154707925970463267480147357037397173746532810214319213390801009085291004026620796285585331603226836574571895337659045661209875137465436821047446107386980308060166441003669250284559736208414091379987329903450846864790480047703116996529129987866157961207506953306012286576712337433435362569668475004585451757099317441560104792582271525887550844315391289814012011928814693474031856659438712082017578847234215979519397846669983614887944352599140055704361912432400638099599616138215256893947095812328278303306480937002295840792870651088934850257391786102811586242727567219161402456048183537101559549518595072439762631732429747339954536192034873346836664018809757936485904559366007982417307981873837675384559720663111611541201157563863947529404533479788214954329108028075160191645373963750973729576106420496563842285784323768658742874424005240275776862070147926014519352887558097647356537467131083853846742105961594806972887436013449519457440601655683643649056357388985970196052600778966325123015300654069698655936906860135074732260933402902984374064950056552032468281157647612797032593920172575341561588022405696738174155395830601990719788154174341021960738174429016603851523767038820851081955148126830544318446364539379728226587571535807619383582278747908422206827684463040281639858275606324032036588230730370419083674097995808122925187419785501904142808680057466254441551498200982124558149671096505266565109957843768564607178876813070670612701885579957950795742581732930560660608497336206159962821170338160823029477042099697697888507653807787458970415271430922092359279088884713440242691086839540400946892391584862839091279181634753050990228881628525298308872525691675365045889405332158023346535336355078735784296755774183421753274141377137882717553554287844458810494473783746311840494712688487549642343101528419059034163118800982049678415190434504455581070101354115100066450207989253106819796023892115437187258194531637762731138521055365082988877656155631156192130619517834075223053591326951668261746760044714633697134995425409323219997942552969131444938418349287758616334866217351100802355730372440147193810846772524993573045028723190285202953843135796750974931532779183954706199603661099467114053051806787227385232685875964724928612687974983733138923504286433479571790678415137765830907521131013590907180422110584033775597363333056930918125630562171103525351643767167737838168636276929090873155264823343031630213577975349566199569138224358256062199232977212260567604120994069941869678835868766725047050026541891040782600584400900275449092416469104707186734690719836647333008353807382832808333807989218712706400211484109352610527235258485598722559242998507802000942326759398038038671662259358226429344985109708219852031234569968359130086783493235536100670253251913876994628808488240871837912897670518633425008335938493508255757755574990650553496907463014163440314520288425730073648230991924398151211831396438542869900704041573712725105370924459273844089426861250600697017778097637311173694686181923311722183980262406497442122695578550993970226713886242315086300223796427004248603344791472501988137189473460677758707675979473160072434002370966396617189704056285394910183442602661577429504169219199874434442294871093313033405793022836374830502834306883051382912460566487163555573324738135395501277712717782486697884257451586120585628228315047212416049185808599558190646359902023775229825259721964085785149691096960768938915024340971158463504457523100980175016602093651835174846658391768130329029318242622978233789129592728543658792045153716875713778694619747100403835876562838764038976303687879995667886234423962763073203566147916179213479589712228517740753519564527297711074550935170602409004102739917806664822995734380369294913089221543174045251626158300828970114922296839674862559500655165324356946841335376524602558458301960633034599927537643103616690981947372245785425262302663154646997734562846788508184643611932050335261089809747744994242505728908251069811764169493901732988333626046671566680612607348023918960397484881824170526109240711960093657207798733187461323465486164380252013059334264654190208885366983013188295824501646545333120001881853074919612774677530507996192363731313027439393874190164463150247811950819620350367587542731281943098654640526379283464320325254793748860200089475587774540546324027209028107798407677151599770558339686382678945380481383877225321841719969657052132264645194650739921164092879964986667705426132606584664794960934009900858858327360509949380213402113482997388485627350675621621177028789010213332229339760374326894463438659360247019424761411865248464530120841531697658969871157766932497800375746218395593580662240049667024346309018444903978423322745107294151830825032774555739310675825847250366471750811788652515303236730960762806665023638608372843601229994036318558323187113371503599866368688893761088120279599293009031950244090508432721512058877038766169727736645858893742812025602420839495169571695337895453353268475765800027419933794353138894149832917104441075214893280095388859570819436767503220633807996273348772998129544673354797058681721790133048424669238663397884280371182445901249204916600739064036822564095059867302739267567884511041301843584540916312318193737343947632028385922740847338355867556627689129715826363956093204834455330833435073262543736816596973952872208678580307234660138939898297770403410588012162436752814929493228279457834249390594755327580260053377450754425462827733333136289859875338781459128589538905268476302866935705114479958533117355222778892883292873136051203865457316020014623926379471592821158452124413321477790359872667486563816153025008594565278028028118459316052451582828011117144681464212226127920627857252090098998356778440689453200352073990049257174297607006682277106648535392378399664567921717446511591534994303038838593596605585556855349447971985907455263542497389010887540555004624920359742433617890901443968870211957477098835710987391180075793533222471974625590560944803840271125260348475325636591459706972523026815881310951610429326303587215162747391826563363189219091782567794554262738566923181471776923449255486482654609811217694039668003061711404015408038563536666875879336858481900076939509749264461576482521222126055925371371538385236633861352429670888335950184917288944158050431833684000934163291983039470526672790420720005050794956680573944903078906451407650178414264183300244439571125467405014755153400561141686044106294279611624187433924594590547228540825830698040204472747941456627625364367592433014204975829622149514174145456323951960246521928321926966844399047924297539657810809274397766515615863460696983710694592683921419345087919239712920206238583866814568860472026147061061392845331434927081319784268621600952286382251639776375770160109945843338331113971033045543731638259415788236451288739403155358302495753435571277624646621018581814726551573993787706364047745099232053815261799039490548286955244844400769402233467665076981245996503419118183533210174763519303813136510334504510175759547547700971616130574198041502326221250920473756337698479652792001538093432706275674453153035598331103211177951953830143576900971137902220634973811218270888830095583181724492209615911660694373727160216463833315737742845199646881960296722196578006130708788545087613189683420355489015595578695991715997814542295692627828960861588318007811144120269150034348026515567060104434030750692800605777102611350778620394580538986494442370804718278371479773124664226053211229722276668990685068229535347620971331358724768682563359685479925696191884224110174224703458748030619603624611353270859859089513556881628119542396885645714415157725456399191861623513401032873792190935757616773615170919455235768200737590652202659174249708675087184792057440858908138538320346713219934376924264569602532023790530264464267488853082134855072054836406694746637726177660359163378150489160785948085728344686974073954185461113043263688713819787139789828432171659307937394975057109181480170980919927219628172708228424443822614819004500244681340668107180932570838870414406664697848410546161892938383383946284592182973092501343296905850433367081779794869567763764209046190983006492946940840337940337965309672572672366379963877061547644642175128457214268687703756406521136847806929807875261978069310349717878269711819741558921316391816508113138393412365182783651853224017283029959478430069588561832950675780039389413526826541250937173573060522491827859391301879994760675399830242848809195620545761190014443940382779131354672581643564538040630197428604042134905342802599484637903891053691453796020009544812010835949037145558926035592503044514066279999593860041528796584432777906705235694565550048988631470448585378096858204682015940634647785612862356965953393243094000912439043026744829088601280093817311318076970690324250391057369975767340250532718989879514310988072056101760406213212572019942368397877506474380862737280138228628348673559054990037309516842219988252558671294757464568764730426554772119891155276432380591629904326301722901510073771459529806742276148941064183375282246072420764406754471842783890440957839148271449792482530821266495917769201319149492634040261813434958843979608301066155830450525370943340021715262140161268877726268283849033043136731917844471028215785650292387148514725855482615592667572646635788578781104019897453091572466933875864895897183728065612102040351416832588203081959240842365200212875422634835182106809323358934199182744773639709583826319467608790823372093022972345249003268908341500553744703685613015238846489737207731146957836853687622817157083377756727073410906405911185175415208703028606506976630114560322840926212798790725130906081414555540875102941409700391625407169091344540889372916691658252582996371189177253911717300451244664719762025535160910578533803304836391737730001185228414574454851563690008207050046404825703660170774626615825027675844082033601326474181630393110308503300057118746520443317352395166101207415714131224980358468388833092408513590010846722084275556516191143004771187300035462160889261631267216977705243352773850919061311656949186352250094685756641143014263206910334421409899970960915126286959351027091413235462115768405465428974906870572656630884470122759476870337520478166131953448535189685012263632909638889667757373852674041025710861396995172700892611630018454362856178292377528628407160676144837982059270276167681495813064173887994488666885996517154448041067903711151374939055634954190081072239239615269276439239877415765022723587266425729366050210602875120578085514149859963289940937769784440292876052803181321888409614344464913529355581125002609970982015869900744270346694720733860367995227723673928692957676389728810489419035087451918800894668616264737388445750336734964422618401183639330330717098944192252178380127177610679427736049278167000111638693222101165477690255786843864398051726412435453495233403404341968550515673906340221646599120563477158198413132440737349839419304212609675082736598318377174585303321970726700143210635847993588450502031968445477950905669815415408918243855415579750392777758241771918560295885016942983587542517206592742675551987016593720972768709360135815827252879503308176112138842746628447245441431725545588712096891448926330776613773898799171992311133796196726714139034441940547636755090959121579802121288204257320398737130845675865873764146596450552077434335820545211029866945340846329747884556612548849044513013553132896573618291783665920877582643284671415874280906456273864450202165422549223910255950428176883973941766968858724893139980055658941961563335558745176847589848583294581803091910877906143599107090195614756004676974912701737041897957821730805893223281548294579626005827865928984892377081534242830492928020562984862314674238972768385933954815229135724224271352378192461468017636468325809568668396087639569360416818011503999649779742181679365582731952088480315638901612640058803345026911177211549882999280850395360518128583362573965556458754280699019801135781160286869369400407248131382253851370127906559776869457644489767271552933335764994301757525982304055901629076207458254161041151881175317524880617413912285754958312621583799554224867754406730772677923280256550462318119781647944711464969886729291979425481428226606333318538391861108657823458909678895913416357243623728761298471716063353584053194319121756980488043342502304768262858747757599454728188639210901659790754802602664540396733679355850108048429404237959257796734759805785984113693178366389679568496287463367280146819390338119154837119440059644644871194889940814171204128278963329552212168160243810305574624141934873350695756094920740388421957427381721897459238379393041024141543060740536458574786211613906117352386338484118965715977074553572765763273868114532440224643333921027695099678034461743824616634214047991196657146090542043514620541998792702086431799591480492632815175302283540881766784116314832020949396657308497608058802832670978202441907304231732211057736855305920081781890821804226201962891985558721874456893338676914976269467279732060272164878620381029285768517294363748534618356054026970554616558013156354204124335463006725511135494925555257776107554611967478235360533987113010399011003865048600087082343501106845389621035070676146983895272466822872771420534240907112612649404813033199602426537851833785400877113679765362652281559392783701738878167817068747738133667505065704491888954077470323472320917858416628843954227735782561636853878650004898555946026434087184928849394266660863581861760528228297510296833575089026549487942264719076022107113849274590165205510980150758435894570343214766156739967178544158465233861266378069632059821090109832447844383250338798367846017309349417124168637208083906001379612960604593533260916380788123123084518853217703261463413538037647595245995952536244700565786432621777742954032335669630028749938757557036434442076735864908899469533079632123640113880378833190365338035909296115170991625069119902670981459280039090336420745520507545533240620677613601225412215717908838638100885037878247246840117121996342992307960880733814399843219389618564755085204370988490731195716054509952848756921901523902226288199471275043357334613867111713895060641919813542094660494728995633573226867776460741336256311026742378657293869187081317910304128303783342236681733563049212729800614897322948052373636208391102625664276916598903197647763648014338004018887549828423734565019593021306318646102086159425418737334420367565362767372507418834955060062748657707603502831516423733124858254159796943582185705354448610194147895948222429236393780205881155554962497310424711035630437710491283678836170772915219832936646877440522679636366775999126943607358701994459570969227997192090159828094625302183173818578247792676041364839818543567715796543094382119368419892625380869151104692009339713787243261083093883853180560882631813106094653207582986718558258435917625282454483274821489325301518801185109857075513063649867835414917246352078838229311089653613185197472774990733454271341036533800158365783810911733393238187253339185511889498787294754010188547918800743164203652850626946746793410657440253902006620455536384032747678738824754312870448806989550134882081307753301997767920041127552730143544802678140141576540790708081511576436848162732619351127934656216285817437171644046714489531376958983737290654792606040359339556828132224161023526321530195525523708949332755085824377069236106611209705476199443462773862729836905394789294735082185490958045979822944662256673637166036508518620086431929943626811002173527933006820392348427430384201049998615297364234875207833215326787647806224982158933880305949314309186739922707387948204716759907135875542192549007251579150663600992327474116307000538539711077270794838971360673531515096043711506636610455903687496112727275444491359085942586143496155681053161541216649112489143045694257365286111366903644340634566331266406735768897342575841112335124955014514369121184002711115161732416830504985417191396292676833710115219598533752418319589388602896622685925671557156622055628334540398540157353949996145394971363863601572656104963001229700535136703524466435492818528800954487837144656199759018557139639331858103393866614724318860609110689195525688058109449927735555777671351727602724074485501477634622013989075790743519499315511570269544753467577086052903567212025068269249839092821911439983897955303708450211509499021398059832613735246255540602718527747958397036477488114266472362153309299054346083845844591555209061003672071819097412763497256784161007131997524212661526941226030562085840148927818871101565770013216638115572252039118084745417358890099438182792707156295594051245394500375336700740585454111928297431650890448903070899576454705054540353440421103152371492406141558739730837049067669111650065750227478679705621277994522260431304969939466306874161125227321343167933487983867666647767368392094117050319362406881442505409280420396736950416699955276718822364789487401404319283006797109759646976666742708454787275245057482033813854604951352795673325391147364045035995556509081269094562631684995899675021664195717400146339920454573988569692467105304620033624579856583943005612623316944479204988480396020030052754806606336166003894728083180254107153301066222765736894493624165709010312343439123488249970988301003173647348334432375822306810473764864956389468509734124133155349480204668024372520581358562397691182183360711437393385341509606906563640927700315693064197186862791150740414927123201231877459318881613648524184708596531720673046894997327286164223734038665888317058198574408487759162731479031196652333624616339012743798990866431255874476520831564755684514224785187671958556907119852514524561776375361235143502674668696659374730014214682885207168857847637456771193084789294501776720243330164418213046651189037456734723516989426601496510399481174644498244855274309806632112576081406113937840642520617255232985713901833516791983381975457998317887280566619912469551538038322554602158063994289554731163775262543950515622165196774260714983978081374314427488729235958064926740990309182181743900952822036120015129171991122257570327049343586692284743830380913293321180690246175395809599877137483632112385891985068570893373287066414182032375439754302385032404517096378217101957656107276501805567304656839483851300141590324945975526648296228438693667458494016518455316633229587947282513389953184369938084653140953812576657667584696011348335044460230772919532175647709226019879215648311141584818887784366250209186950603987505239353472479572470743914424996751316364243582572451861697998834577202671864878254052499564534271204899171357079174962103385083427507258277059620145740679275472650038099479574099333126032762875008850747288990534042037474229660400602118083617853598886482509140030450519901944324449811465674354891338882398276718671492435525982070779963258176003378838543533696990350792504174268267850874348244923437648147769338269128130198816198279667220216242478554021126234906308437285993630873902335598942538468846149939799625199410089815997542709756767758955620190278105897844741107569289202845039791269848675570327052529496691814323624796310672462156649168768862646944323573219294286560842876409488860647277790457353523871862418019112495441561886080305237952968971337720577578209722239589179117158485996176310539994290035097971031302164875761261483979973196877602400571235232744203485429692814649455061639877639740583422618566027529965454804607958156325134065841083185701608146451433516440526625133661907794744451513320872992135424504402184432207512709216288476611473325381513928388528005346204141070362851920083745209247685193916802254643161716185144533289576007826945104214678660487589218082516869899511323450065285193038297060205095112821840060839617015613479199478226511477585433496692252168293007872687751027746463121077744196116587753890840543420733352624529285833241839552826132677196499816394194366473349234502908988380638811436809737071931196086513457963448632048968875752598974106883375126558185945852104602991162013728718344265821564699657874742104395351872875512360698018594674279441504195437370883382694940631532292052328384771100417065047182718096591157108919957628258630932479102054381600822310668235499262252071141967157020387584855467044439358925960490864759443407203708084341732808282260371879134018822979050787592428872640722690505297651960747378215653647878566721328893052025028843747790358110890610895858970494211458660381302032245145099921149452652945205561459576815837680220829434022894915161213954004060370943282865210454586219105460805865293004603060757697806528479206227600939840054284247025874851039477647495949414915055284877418928068767448775059638308728963301816262537185377179734797245983545305940752091466634181358073473071578761889001658995088150050785197635307702227842765746960513005496224045864285290199238702973794615138003038842040511155126372793892946423926539600195836131093998968709418585293897280596930737951755173371542481943442175151724054168618737981020823482048364645149750288265698217174220540855388975820321924850473590567628441915695547212708704273435845407892920385493003423744886289295386970995498648029957663099520628318038208096566224480483739388495659167487723331644810074680669069473324281584344841213716702950720300173493695760704498318053476881979510621854261014745408882203349609329907380830641779089411103974376423306848849850792946846307978961581027441405325924208899511138589197473861165213163392630717203132486012507517101015864694776784990824582926250844135840616395679375609804918828642230350998851661146094243054840100442629633335090742244349644303832986916830451033663729596955559212080770022787147890871714653922940637634218171775331356622858223753110050012321002470091051840169862359396412865455957147143158361791343199750071171081154523415485749694826381124221494394193392113151954637985996942282779914264796029690644716071808068727680253848013563989827597906267278154456356899841454921323152143396075419731043138110655213987111117061078277321541883596423651292542786101722926337921433509864732938120385506259436108337888091698614439934903001510629356251631852752277348695156914060166372197373533001209341038935349847859929174727099056940460195332601016532549847208701892364755055587133512060844145045348618730967251616735583442841296636970398084288113545672117427590572145669904148737418519966355842985273693454419995104113255324586926916240688887286264954359705143170122453667649536050303456442822495111856338415760125177283973167832764174956729576407675967441899730760253139152861047774183149573064299520451034373321296976978268052066643422965050015922710366451259732121043645187756783492566024928937332257310793758158964844003417046510398372734126351148765776644646986657518759287524714319254125220107473939742633779737929866356636727505963392623391906739457979392744053875898301077184221862722365983486632141116652906884615888121100886300353457654150408865210981472083072493880359896970233191148910898433663812851523640639430261380517028331941057314042648008699035002135727788346891141480717882854135921631184617826110287616167011690042917833077076309091133553764215991488781564527299314019565367195792108798108485692767581698493812796322231187703449633411627697108811613883664162100590725506330977131897768575394877658208692607199673625127584638482193042795283456557090429822718925709957390739012587243911198673402487559539496595227302684032274724330367293934485341222959171747172128687735961766909117261431428049623010130652284333633343072831016255914178881493889507754421068964559252766935194288656636310320211593643140666830901314399178222831670221841834809452400481766442920931728262502143013167679007523818721177998550123247016228032471506468214305939552476034929560219635280818281816336710340747741875483471255463829349604554160254313456515772828741292698226438823752632914432625524735989519960726117680123051620086126626346637815957172823953907163845935875306814495767620020940072718024989835766076531424238348023152871658726834115366989358614848007760325325862356295495504267216560636780006759702553496562759467372022202492690258888167599894299841263397370014843876841324170040592190756857935318016809856840868977406408332945331311724231379727951379361854488962924339805731393585068799047675255328660508797923499939736952968801800721831946367644830061314743665120131673600370407174281458363375580523115656743089491831574675931760454009627399359996648480321871840107189832539087014313227766272044717507903762025664455985290823556483037242179646554996580413284353228376537086759100496237199906788456219288466294549539259431817356950995287990554144540149526659181029675568354470259008449564868104575397250523869594707322600379176988178551400487833034376110897214999609014665033466734898642500543842409830011056253241761659197943480251757432643295240488708520338519131717805743938348264982174903052857496503005714411419542061531407265052631718532359084767128278464102916323144639045763491655341586223242092767724644104806122845047643611893185653247038151389025135648766844385647175866709158012199594344148434957401971002300527113653148961122127185035881336624626934615681825782903934112767870706236773253673134754353044098336557304912726125386218008039009466733047653081019149455115233577877239643898513067819275801735569093922648237169264160067468565258358410887613741942792544909987547414758968758091704405601448446440187339179375419701439864831030580281720829875578894054500861249196587821071553795063469202210083979282023944755808302154093567653199537983280156739594553103039838268221785082379636631543572019917634130402898416891112499810096148525286481536632745905657065817419844484940617410872209135419267660921227577013986757322184013516553956364102567457048462976039429182338103875568492470920949282332537261122582906151197534775102937640452777608564758415673179042893448569566930469257705246187010940435916173772118612781261191170943736366470346934630908181593516161977756763324782548065625635834613537666528585740762764537119626691970226518953743025442307497481598962208625008116325745121927792448011882631485804376152067081381428232442923521361382485003983433854047758662491139626647862466555989843260877176427385271990542741199856404258877005394921655340030652930246014027454858689659802536295682439924502251932361858697154962119507006812258216825785264492626562303494700033555292644237782526860858397368499998495715565395060796415145227930826709907591005484321488602826736784928318522047550495410790776942006799328299302097089971658698787845413651790255771943550005267542699291991321734518575877940133084780621833717071890353446867054587446757893222716869438199941620475548868323843600001692912892612446471527765246513341403288664638027977118368070937831038583874128122048043234841083675290739043629660253318779220651682837901032647970390068290068053038699302867072325479936548578831370599709556114356654656106797228678646720737798112560344198502440036361264830189377851399940112770181494395455170566181268098282546752736235776152235223485646806873073874671415567250833647220925140530804255096471620717774930247642404642785727073795227994680655289941063949503319977963919584294409166745390685285276150367856417709141983930485874608567769004554266592185795448002214432008474909060135268796799081306775204156584144560529368473105365855031545640590166440212663461992278610699359633079564508144599472729298040859330065650505255400668541207370768672486186872833065265564523315843620656239474349917954785214546707739990253657731869613489031958458481385449256811596504106135794115995010780863417298660806018364083802629554514416250424405247901228006852919993605908056199600666292838618508890499946600832075729612635440381086540561926103303182592100106459351396663364223103302315778483429463261859023561782035801399003723259991998202020935785295891221260232068318458991260639562649684721614560578263114783263290738336339986500266963382404562466143629519706825602042877618764018617915116567983473122892470635700640264267621795287012307605302577577880563134927728359148780372513741713328782105172221707507472703506330704227300404167191668534876045553355212409842097698867138752755212410145379761554940649301449493537790305806772505622317617512984847335505693702060096984269816352143079112245452248071107078078009538578028088648131888837214636947373129812295205896714999669200851446053922525624937133444941011665950493484537964516321900509550165600563106808054654883467721575974598522344369532312785202275449397811007702645444983853468863707050985472905631207487672311992511996478468175999667530452730905498323382038109000196751632715136525053073399317700618210224053655805357998560969223503920488789255021771203651137822609672118715916507999614671444242053403330001288351457246473406704128228220073292833271354422520496705593295552661770416029387240528663121087484860219227214417460746305328015879116815139287935723856148805654993524538805872460212349028569704692688882263793811251339942687702662679461299782987614425285971147451938461247927537203880752788971413782512515643410233665449602018104353188367446420082375478594532276844988406842462712549397297398074439822820157872782139630628374025660042159363082769902871569776242592236078439680078418422115075023614680930791663087749843841389582090081203660064313797867211053160753739882705368504878018682253137208542524331085694427783870737382134027652958674270973952686764373027964160573506785719814606417573509741850367094046387434719993710897046641013746073440954380878292332920007486813431088247039919817951888856488592514262835771559943414745424078964374319138803904791738190224974924725024137402612424104594356529276936216586147675291450044102854695898410841257498138222776780806553420864460986255313742661732845753136462205101864987594722868616124337293291945959222661786955343186962667400975476676836117858896871985789887742329060698924866761910066620087722347078296875806844352423160159378360175642318035383893038541492918387755105649589596864467822072901169702510708094657949330164826408275319887076420350651533736118724938494956344851790474433473969540883669985526926901240499631278440261878595906709612635163710036999054368790179206535865805894248453019070179373904040202491284828965776173690865876541067584326352687111707820504256205871471158540943290705911772739222150900399877309293693230792883342684695211433535975276529857051753535012295765753904553581367677143043982652203287753781800553765834393535419545765029836202696535601177727512023628430230625155229732383889614833410875425586764967690099812783379565783570832492249743199443604762368218821413437944221608233679954653259176308701241456730316822491459556036752599203982856291217993482464900542856294924295168469391296758893992931371686320349216128992867755451202212410329604482311207416835151588775319307297517014717185749432543768859001706681938747441344033173521233035790277407670007199815673442601488999806094634407969412021381563310875244884817802133086063632314824322011305257071879924582223459645165966062284463201046621846349745986302419049111605296659156720577180914598758455878284090594978259998933040479833016035554486261481791219173434584643502562338385664510583092718836959089487424042048819201467174240280033117373036443392467617090593800026748015970627444199378437435790344776547856407749599019715496780290872637681897181624785054015039316005803243984362985287704041363157304499185268244641329139604759955834104543769152812595156454233258966914863009377141391180159672928486199649157849751654999113771608442134576022552269099181485694417066712285212006446197867865620267210540693273611261918221605783835214368042977156008033199287831408402300489716221760622031716886075125179520395606158874991178602760288051265681340627074164672594789136113607603540488856686312406466663323901250608724502461087734923699513371490695199412275572010857923456081195627500762720670481626105213352297236918069536382625652220955100231961318880170509216110480895351750028343788140133323606770577390856697875680117778206187316106644724478482991191410767264990000316171041264012528620013907392696502151122220866535830447274488529389319836930880927740680144885950325824658562323898464045088094016997043544894641544993467769132455408856470887618562470684331440501448693848700470497439495480051727269972784793998655668925836453556998790536568869366794044672921367661654370125478794885091507979188414393673060799641615726238934725219147399980855908915608506353065730798376266636373733015289056874466972450769338805321492950261105932103547505984768446013026443918852993345561594769429886942047025975175319690917719172051250818625265727535412850219277790960157194060966892306996192187893133885632588865246217226920994417805016958171666665426247379267548273148321025517130596272876535257271740063557139916723924701135576216777312088405089487895898154647727729729088316326293405700694580970133343535668917724502509668709980635448104754163230895452823733776487583653755612596766026959185539735706313521204499246712339129518822236837249819459672533335978276245806666419172174421311661452690498535283237103903829355875646034674015804844151950420851353221614719261414748108176722581883631945796854483632307317310408032502039866202793169337208354273205864558494601260921681505792562924092824900752206319870626428740256607148691839378484712051209085342893606192987652478031012814033690748341977907145841142865637793639062578629865070922071114578686521553706573857409030896582097942565470725509575140347401727273109000329952830935482522346275470160260682296231705711990587639877801710034654458479605673531959050759865774716377926009008892651213193148400195722782236563487184415939063153013456700439884990627220142395002468505406637928199340158546792739129170874569480496978467355246855031581451591243191546995395673074931880801565940586777317141602560173825135242974872914646463940866343721866984603786216288826096432755321955912709502935419355770662303543006033219740336099896786040848571809398138658456992517196659209527510323897720312321861756920072376489318485016664835259212976211535896022242446471031923319912633084544672196895224469773405056202741092483441729767725141148742644972568878878737336377357042181019843641128177888410981966623918616464496244164774967218805508131907741160584301668820917195798676305089517570694029193358036224361488841254829953025903604247406542080036992324730180642774508542718393193602463369854350790629289873039548052435483076413098930868994728935118887703832821949529368949679119647794958021892926956294605423836023138833025145373276230704722082919456184690047357673753778410915510427360785497723959531560680144768481891807612117371494797954434586425869215358189928435248808353162656176142058148931906313390302190585988397017242305348888304878699212088909587724997517896558333645049659855675398108962873333085221481680645116164573385661351393082938336863234975903812041539110913499115751600251299081939373016863606262881734725714049433913837706698541166867894075560636729733381185084911305623327014112036795609092235763179278520835569469623220710742829362040734721333282541692922722962019736033867770487051717229737498929583365601276998758439837914722235900923237719771154787295167505853171306934379291322486085270157326221991081011791619647263391099610224256161936056984017825576124258080528573777826038403495223532579964008221523598387582544339017822799789772938573567728279835414185404865755541274209006488004421616183392863096401606996573367227262877343740610931037228925184896499809124460763558127471155495378638055369498352338108207445808692221055436961092264320382724892439019210725185361476851493479630229256462933136488010260721421281463204013438064499162865846962574948757467913893551743130580160136487830807200240359084773807932624865847074552629432504192629868274018547598498260716476563888400355969190960111878341870031891308666256544391161990176208024186940414728321738378500530968785546798511726695022679098826012913670445666608837747294192312926003044981098691770894674144328244772392982327891895848015932505665616087823526833286162583585192266090082621965535152619027852006805301063608773833089577997258969496694046314602578788781378886192345595627911963965921485846710550021700761846141716421962823368271658004476170300836908850128653185027896457178029731431729871489059341941044456528796694795338814047023080366252075878519919100847642783806621990049433805853032676983911981046650615966145166855388691143420959473915270810893050457194191326796321178072027245158106801243669736196830978207309501564787370765009333189374825856887305527312025416695253795033455653168064648393477042137405161069745808764785306828481342225940536743074893327535460337999307637086311326341684934238221054616034905370026876188602411331946790825153884617524959054637751373663401083654196835882919694518987451912576719913399054969222078763491867717263145458203242228470021043681065482468952350839387165625987013046341233242801546515764223542110648623269655347499589968755925057382770295278164272788409173868193872151240484541759608023472656974074576951410480024061516682168811426657559683261988436560201237012984221459838827636630778635150352140013807977307668073170580498326068326445435016692220190578869157609786814341933258696747374844323845039193035320512191383800014342490608109899772247719698438694681365868458785380174649574143267050734915052141351900658173446929706041875664203235943160486317794356318188141583264951659023178427724810916685399188764170457532867005505204608542356971227628497355042631166297050767844349549882743082078461173846840584263194982152181693775888324167048006638033345353310781956903819009991148021355880894861905785817076951262480003111611104429694738586281190386572650343255062677040107867348007784754961097658865117967988042747713447437611588106269932674802932304989334984988152005093145593916794104278727854202752353467630928433839036588256000571485285113754916847743807840733664494389921023865749899646580055191497388673777098907025648266135032096528837794211635390382486203598118051625976200748878681313324822872367804130402619510056566091396776606836163144158262434697045817549157621274541548373024158905004173999551315052937481413576885898259592810104888224088354977305592355552986629539014254494083229203158650496114651607795746902825767861934145227510873170928580556478125850432158728273206789508265210406025500294125898734863135071240417846918856474099650696842428453404946993681011775606340782310577317553486558482882893760980771579756847954235926094980525849146659222348464483163771500213184475358742262090888348177630555925497284388906767778138235678573204593993736457210027475204610995863563142639670706383982234310788881407444795098953067975987720066336452986299231557563625668773895251232275312654167793342980299313283549046888185435142230422934883021138937426949833409112240121615966503429174130205437557185047835295741681041562622928508835742981001416851566347979947266959203344682130292047264689582352047746625417024093906699164949901641377972849951261995271005457494016935143553458795254663137963096930037295383409817971608054139274151562731254623895336637857450131835755287160320531950672206205223216902312026602550676515164194885586450973359154303516547735988829333150266338213031740585880952636602167561997533772421683799201876831181871052932940911302153359390395550932869609292764548373710346103107858106028474867349994496652159074347500153841551571651012710986091500929007103933170791961410046700840724724445187586372510998884578635314058827599336381979923723048920569724634727595533833708009370954934596589188097753869105384912271454616043021577981476423034865336023810059645159696743314499122921259376433953109395525336479184882380093039384427628484989771474296367213894178863854359935842323115794341267719277028233252958352451358514046198908497006324602377431232256835829069079238857972779969046177558866453039874033355881278266361658908787903045252142484850084505179635243663690637668114339556869413562829454528810445039643595871921230039263498403098052900193057501342373723964999607734724628055612616917550996521842864268022250363638303052101769502146485843288882051697091010183533315481760823977463171312253208693435165975165445022632038602424870772497002164930020213306237544490187139062712542980877470767628679305364360313653043888898344993022395625710096056404591611384475059505957996098538804238442723439397708896074013135251392738125191556744916204456399581342261328241765954984330684537756191262505014953751787437527084291345654060802358133249067598025378246239939870441948791581033815736120682066683117012882342003095026122087902894748469298701747103127603606579232246831382318677709488290826006527817033801477054897087613721238570500496505394607501926773851537935181717524577478475870237503158653149944090075084425348533658083294687341907041768214364389642395240819631579244116596731004715228748619388216530796658198273619185460626066218306443749488794883349448151797199851622096114601966233877181332639810291773292230800532787146177691911355294175479446714121008089617977943961614495688287997185481209334997404848144673777666168357879491092763399081231559849163615024385707937614278368498434855539225052540367955478437361408421210693606797251388868369468021685544322182698945513894710310400988290434802178857551678233055017661448989046497090913171718451076013702470646012220757425663492887216700180927160666752396059635830021198183436774382664367586574315477722473077580304096925448561481641632131143896692205071424941802775832263792799044329737074473477015481301751729110822290798484212731225502419275537302955431249991100139513593512249324130074740478253089971429950101649086867728190174124406983595569982933853601259984155143045836782271843341276921268228248169649259525925055262838391524629703378371219787422702012983582499152239367700044110060441963957120907020846271716439932462453057176800266170397525717202835063584642789380654766228635464636331877642094816241510149490437800385954979363533665039045035833303250169501104961792027462833572484405983871916310801070796140729525473274969155692278376686463585294470185122884229732019900284341364461509482742881547674816469948914460761957186967281040620852437508489628479381687637025803192380270259014416462098084421613542008561269187990258453128653021510263813549874795793961008595913387254412569378862059037764350121300714486764381600872022692546025154600652940745809649636222791533660238581172498765291212134497933763711316892346183989899795738441827184308176160499369382012433280612512529501059545519127861765611540989461204613554731985538182137327926102962492075246863006060249936633287230872575171876555927683759865789370145257214275152746707204465082562718715349624221061908157963940346195900371582334268482665182442724305993361350530568761410303825067077642666694462275567063947651833375575454479032585618377113510457748258997086263550011447389875082901451440674353659702265516941993848392193769430148973778585065648843152085161910929275041418042841671487239708103925696229971745695626115816153442253720069678113599016888229346779676532203805911018643373324353425068450073930668451318995531802782352103497793496894986752182019517783962994309662645741572442252652505627804784146140866630639650003152962770581868526091468915168579204751300467889992590621487562460340821798984900163955678145287898115981160503593238181609621807836195381092227712418664589696773439283520891974740964980640959650905813516068223983475923317398814612472210486220679571968285199176218893492485165587899186636304310647104620156726241612063448574426241390183747729304684504923143420518431652427679410974788774925196220376915342160813722144257607222970745229680858409609295542755324696671570712596816964301553573067504526153362312929484580994398967587041160214925324364836912176478202378415249709286671415279628010612658116780057266016803101498685873884856676437937227091329828133405062451390640058621886502842988303501981279169279470713330500617351844837526734839485050071041894796334229816354842311858531329801532093164291007606015639024297312237270743678966176872672142771246652546876409009530982689428254183854494570442586685521603122074406396480368020105709320435833351114012048558515428036201644820680662329973009759666592089469000793877411527971493621322898720335950825228297711229272071958469822959523226362956791604754195767425636079060474964501529755528542269246165391227221694760629295158426866702324572591944105406623439988781658826611893708964540663547417272543973957174857286234139908834860397376220999840261571776857817287496822046540029497604101018117249642679500325821878719046839081171024863045498320869746673601333912826864974183043564283360337792833886562689091939849942990270068030439420825901435856917981701241301280494664347430881176525253053587798613688687431150461595112118761775815645537322476924441462976584517616392055099906122988893251579918296163939735390820035306159908057469528400559951661830728635604971730402943933386513016926732158798388004054395797887854207885015099230490125048320834886863841385446710261520183937803730224447658468320909610361108341844176584743510249581372714261167106340560839145256029689297363832233947295990134061633083198906845292318930853170200896353189726343557051416987048882617107913898221580122708235688814071472143735287853636004961955131264735139236503706825138506234231803036469234052957797604950476197648048720089125435268449904314470403225442139593664834517376642660505667860094486469314608013727204061363479237789273748310446460431060788024404351987301104077419832502192896718701403822983295815482855122900374377431481477467877378593477979599148720137707945360176733816100325148040263228430247012915841122487994170932536991098478436519673650440785489276283236200611096372566434982333398025560804284918390454946089019958767203404441821993701926063605745566180877345502189797104176478973037152824875163220182910608765147331897265952913592266944541644922699588620030148255655418597266420075558955035070818351047255178721418551378421552875703181374609816961925346009440849630546378155736203012932321401615905144401082779905336138390921877424677561289895296786291083920871302102998800454073630987253879828976278416851404772745344189116876880801989130564443056251804751550797662162177833814310064911998411639446290493242684836079797365121084763993787703071915605362641406207094785624793928050401822076346830977173054460345501877994838866278632652785032714194544303900609251022363407283633364478576267451280147566828071708104789230566181077064291644145269471651680909038120006995185677715134212771003911434060114002290356923573219417780118860445550213915899111084193724127850553113095135262024650641328444285448790429788030079177208706393648218533219855832342791077405896225372640553426333661563411817348217896533531484532040920393613304858455577072988841653845446198233965334396752593316063272851908059952360818153674011443410850813187290683632771138383682410746526821398568847974527450943861658343954839969253492169970159494793989370887940368023839758111337583665879976280449999246955180398093065849656709606514740022679101723935552433628550543867007660589295639000726502183467682639346939819656467368149584759968499334736877034911824878654385373608989189026213063102697256784394141376497022340324990935487632718677133760746441723412573609863216171202231483780872107581895987789572690163412144708455942808781411543092232488485537144748631823088582590018411787813804385520597989800575944829932090717321476325173406204039132034404397244515180676505931391025037674562252566174135267160551059092359036539556728186089778322789316346658429978018569683787110666196593637762286122249905834002184827705835800909733012161714671665375216157096899913714813385812368271977026543247499745357879049650377995722196932951156647422052753184325364854821572901491162553387927304154025362366306364241932996358047528337268030694230451243679056662995692514384219689164325883811229607364164590879805573277188521360246858382550627635227255285071824226955886342655166083774342901124773750929567976890544041693340731697357825170145459287732698454567116878818965331882720612713845163573766558656317243506717712763577456089085579831280663295856505429899682812528515866303289802440827693914424106237508715730670566308219138900872094593614767620583006671910816805496709619596696674427747998400987369827223236900704703274510366188889927552282931286599884635093895533373077790482261837628915688288036663353772768066315197946470864030034715082025394932679745576945711902214736359754202451213689351784318342763140421355090110780165138294546855299406118620325694343042188208668246681598287489269813503042616423314447196164562499767373924584470362807953098253906564451197923231130582044919908029011159150685862805744999151009077869178036094189758341331801797739133572744852333792065690396386901058443864598942188069915233980486015682523349690434492412092235061211721260506631379333787724149619311737592113046318553141195829045083616872623385709581672954981671603422418529246769425706120580993803399941608024953107430170880921292716361450485517507686314477772749751507900577069015450830583505362641545546609176934639822980413616527063569167964551615866849068592020970805477942177028007385409728526487255904672146387608327637423288896365027526824270231014166582166283553627419654755392104774710779461736340039209013758650435649810264627857819778581551762798537994950048233060018728113718207919883900338284175292932383892072911250231637115395034503023657658355218358792774551195012024854358860364309808254554100929254088044366991263766111339160473737555626424994646137424597565963746498671145513352850791827735930174754205496740497837863603648114731285943512184606696137472662011554228212689122312578854139666300033934644975151280704095898072748507415148410063924884971029884217733282098301721157446075538704905365074666191270318182534179978505934188890735269454451515282776662366678541028704248945265095095041967130200868914152138091796358506073582639795047958143671180205937357020028583418376727815123690910805614045342752357694385686401686758335921433144644650300418660090742764676417145204599122550684214053138461545956399476398607962449083662276129201217611195337458857231849268304666820723082880046073245903333373555105084963273139221764627588657259872322035790891367876573206318973153295733816525353167861723832204664051705563683553515761220244947061100468400499343720789527608416122265137210320559408592151481746681490181952583213461773123195557466883214218029413733728815824353656492352020473001266462188695533391191861637264704262742400655480987149251549579518136559926108814735387827782446446080355801141348856908053515356593347097641908090256135398360002423499335344195633018526081721641075651990412088855461575718145994697945303838941533064812742212540161738794184391030165824461351355859553774490359904415157837373180407819852786843688604241620090143054457288672501755299570821628798489883539476904893236900595938182560111122983900044400287957690113586249020194375367243035570912990742797744164525968779870560892156254305816007175945483437121091638822973155868663549473879760082995021109090806101933069109932816188092761467123735939720550618962908521327407484537664209198719593253115808842730043132751154730793522959378020387647226849929572253943743869811994089331666911163973486041319055713265220777346364434452818428446788735610668917479200026899402064246103556341936230260532075431285703348786458240813145716756633616261769252079547895269864466962736376175373076005656953414106874924241491368380494228704431894891010714802745013717833272293102550233404820096965419485787195499855138731105778769057948956673224204184825200624717119456001196959177341313857021431751712356560853017683314877437405332300700060547837530066099482030558537264745169258929545063335084531136377242242938062794192496707423309347693382152209695402280655292221199582079373232235740524260776497869232101762928912753000295346027901282582803287752907132836381094440258327602734264276743753542271452284638585160216355931017436589640808711129590537068897092898178156414276222980225977182856698722028826630948540767617399844756247350727239979450786175500693690120162190501832829621104577712240109977603010608771804539419596474825214831731650547331303237538518335492510602105341044696089330288206972760111113381960915748158519674555209363905916502225097367962276435581538331868733311270276125576492208397616822971082319628641013938901613505855399824226553499529609167420153065353439940108545943117402140101659994647378518956729981028411909833318397422948910088047302885113465273499429602775577635762784050457074906237800089375302045569465495172292019374968772652824286872200505059094605860162770788305709445364298629367727926674088517483294955518609607380579999268252708055988155838193711429875989461959257998684548576946684939119716470980108394178134448988264064004835627480845581872775259379276833763696693873281674906973294403780358895328116958731983678269543032218103285575331722514490070076403297820306896485516737290673557735300410715882936547266740151937610762269659429722573451350497894349289722130639083487967022450394193792414760945550190947138290867136887453960998567999318680822680172318860139912233354904459333865250804055106515731277417090583642325909485134531080451935341350994714343935203340612695813873591352925367295725819978358471336700007427535199678949787527098165301210553181049585953219626178891334162000052227516561297544394094768008507185571080177544251828889964562196848591734111722642439384466523723132771931916647267442638054646071180097271714746148712437027068942207705630306236795628454936129678760540522973744717364496351795054088982415205108402219150776780578523811116868767047795865546150201486805883359811051988358780063456815159946859222816505315388717079315529327896747336746646006604603362720119324069105895675987213961149314246948880566580246144283455879923019363430396676809224108082636059763315996299574687182927729643534875027311031155711766001476771295045386547131598629900504193926816599271155563240961651752507369495894877087324909547051234876076341484416915124811155462333913833300536624072877182775933849026674620101230410989014906473458451269784228535720495811029778095856804022537299285773914755220071131415350208680110825394586903277546341785996566831182998315375352428631378973357655288901186083717039891459833280655085855786402605661862259672154989711151097952109481746005276696471731249889383327847399920670395360798021947719953637564700477332301424511841532641240380967418399976416545889334177213858115654790504689142610351126143611295623152762460190456799727653050130994950541571553972471529377533681930107067033690300435310785383715777670690126722758155099172233929592258209490453350936739035090303958890060540230193968229838631192886419062773663046112204997285626142796862288413384998168962757021597793535672367413722900467373024977147913975832852429143525499680598432970797301609643760522247818694708805511738123115076789512213347013467679579548309883090188233879452012561339898378419346409020925570274110679806022285351904371907389873460727825585845180656584190514600554982490627288201792063302450596399887739626841194767448333326884720568591804644225551045302487265295767492199652256360578848161818888209026099095328253426573512451218112582663889760819032538510233615977879929969883842661826836412837916835608993680937411081343725570674466622848466104318001458510787891299737738217329140283431135256108981800292027922489431969308572275899758126438116028728584252845371869537475630316435593327563211528875500304443831615100817298288452656140913580714899771985281697910837467418565772142770886053822901399735372603526228996717215019746635012096228356121875881143694736123037560736696196198843876479544895694085178705591380143399265569690724510636710072773925839777334468879835262458196303690955603654286450493970341595027724910867975205780797120432822623166472643699550716952852120831418894314507503135398401463669182383151100893133694806495286206742684758062774982950138203340498425130984195557497982408477215717422000503509334969641986582847131592107505697468297535830544784470750898942989172003762328736798846457354176515520863578327628030866487386476590211282054212618971781507162282776832038515619377165927369285794041691052729752316117578158231588871409345237040987818525183367033238119050348823556477423349454830931452485599742459366187775965571992524470848614315781046364359810368873586678406236260783620915943359938461491264899070513760712931071381338170420505077740751567545554215759847248266044430563421897801453398554571349515201461198407715764595200200259154138342786509925525361163294681086935389077086441076665872952697489087098047297386590814207905217752313664815473362458011805036015857579025204668402923625262972068825362044087986124442114906798222802729310078676099426208654208486464279513566541137881151309155414692537975287537038341622232716694413992459182727436404507763322485834827129207215403499782980167889808955838044656961412488232575589658497873792896977129596942202347212236409435630736704073796694998829339188041759370548802209621638962129822849681778621015782565668648407911429370256743766670787314446438400468254654279692660544985414549628859481386407612212891641516895941159796918839168007301732973640971675660160671031698330123429737016127539173346110537892670565454072493169168896615375063038307521574439350994481334297230394484660149246586970882290423761609070115521266909249135452754774738637748903507804028104273118605825625131583448819683100993440563635659459123816719679301771789539053052193744807829798891907468485274478665912511938808235176943632352058661479941211728193535013589208874199353215494457924053642574984942097101050016545283693208966797969302473042044208299984167975412500425304569807166432520961715841489290384551007003290497168742865256445923764718280191941577477873943925448281023835589795597970402255887928867727378880650706192988053777799457566444255538748724106088617954540155094741955053843291360223540304121104044683267791696076611306889934297101909420664986679029489271509255889799788112110562440734743853863147869851983847704778683460345838003206040846928667135794002915156247801388521631050958525223825999971078185871209078617563516517578007572444000826854041071121819934573384674657988215869402386626082342754514047169454337518545987622488497143792491878781056110008463160352052004823016377551662314093382321971572268674281278794951877681975745046651891137935491595401847718694743905108129774930828854588045627057135482668353064487437800091012216510485197701935163636492932071892358841521039279244883936189570077708772117241311498311805423890547633640606453622473157447036493795265134963660348381963448698343283815717746200978921694865919561932477152659561077952996355862993803242066400832458915047465685199816395319665811471174095186334942468464414442837340781856731046575738506364816804470673956219364210435913189964110645529039667324397699304779539504078675540951880450332018102091965139253249456706295455049979611235479898651025847840984306122680600069639526728363079390975758743082587231178975426973965049498785494398398997038661689065460898617449696329358021804840660171549762214872834126447634080420066499331826519504914146369178991959751506589192363395210928230185184850329681258936536725749976518220668070199344094493949774405889442840139763846229801124306373118712942656080063602390777035771667520382487874925623565559865067943731615235266894482691884014360843324230518739384775617137187038962265481705853747140971381093575758051645144963371501075293619472656529105116130787045592599582558622033914485747222416499415589976765130719102558118956577713671928343319079574776296970086341303027758350368924652404669445416784129944192617412088225214616113952621577325766260163477938748607219685977822837593793733297592054252908608153606400263810061989126883801937432486813893846015614138918249261515042185176681991422349971658658617395901431999459068283865141491631253768361526453239000489697963653843986768049679013046740068075927624156163094104063082887551994696493167171417224173449862280926800911343313117907308665706974177069426519250271778623344030120402893594128821670610652768537965551519376673853968943426571690968333704741440622677962995101921578760981999243127039155499355086366326403501615064609239433920952936448056523466726928975719737636486823523142086823433629547087480027024123225410884625067938969586973383178951317825362726740117813572972225531311781289758824492502077791926663880318233733023153510027156743551783496443505451959197169998789034058206299903906134490633214430030711710523471472842886555257855397740814374692595598755711251612692507332932697573857124108323030075783915771915857069798776646367145704163451840399544092576216037906217217680359428673984024673687694020123632068793005213996968859260498368951200265558788336786506707651177448759367188770710181834757910540416160766244282549349102697146404323961300225957069798572908000003025746653768157885567472857942869820221780424877293512678417336968271388669200848710492505742515876308632017651518753537799881356709809428038682854601121795942170726431795548175578161652978414828748437046921219420806916276004708605219287928897335132327014513976335931293998798210538317345203010946777269524692047862443200961082699780442616084076542271876549740525426622184512166327063814283789817207709691007878797114946228222252596334626753524757462511644214498289775680785042509766774500549969611634169871859636767059117378496599147621305841306913094953960253688500055974752580558571619241765968863438834774766996434065226075501234009772680926650874479614598752725206908482542728916382989048067618841406156281673133228972819889800503651340114253941972390770363619750798783510311735528497606169445242197789479349649047625626011998916116709080082707639832187065505114975488679775838665265337156075659206827252084664736859818341762713564440941156520688357025634196765578770019802499259785737088390088933333959005735477924682664868544446243243107107244263951394437298240453631012894189250148239261473263466482182321939526980893526503360371093354350474268026033307611927035051098557959756057104779583994409059553648014117549696330461255837627267108886240919426421218391911584285217893171747711843330915404253881076915299423136331360570243194458799236125215237325480131690982537222449652396189601873488016127272351841768977453509558299321225907802300363088688854684013349499469888262448933839266677754324448045808984375779065706347920927066147701249221622063045127507699638898956275052972322900161521078970890159331607096085006567765174850696238933938234172916284893783059090895888148220565908764648647602195510055660729299915130165835788992290826516819874119970783338466064071036935226100931637304038899567632163701706125351145512232239182572210072581030921680990452982559260885595452691035710838850101432478027825064656160700052351528748010523612812383066554266011224802851103406225086803202017168556373723589776198876046050931918390644786814325053114890631241520763447751222915108755603469251104571722529145561989136556132932028819111475925423253219701902300508229515993289373585995018283418771001054026999323378402707554481720173680931246052861078453498054228081295113176900312342665939468969477350614830002050316151716620685830979131109572477814801878849344195331210790391276510490489548545309805837394080844666956626845778739942700502005041104076880476607694066347122349516034188935421273733207204310663979854856129948377599283685664676315472904086352493717541299695002025381759081005488628311355558858176675150098082741395746492840166996659477139296326403836424757155567736331181135795165683654116664185129527779256997620491596555727455537239666204608372421252992631611772381162064304477816553680407564143053529059046207248581340312545600657071861817656789119275792965442163780278496647324062933408966272255639995138672546391713548639043692576378110469769514428877602912738557301954898851000218280795253618639135552047496653229561563321094442212914368865305782329903148226674907545535055491540028452018786432242915126996594470177676625380593582640328135818650273002260069504682532763021158428450300131744650229945374407714844593602494457537226140334993810362206866350762321923513497350604121531374610730598027953121335193899351964124952898272198655273539982518804055490841661455488021122706821330310823234355509224645059158234123952998306251924267598866580800016804505610925655783050124838847783790932184961594088329263375176423263560173363806712551131940772119149380723541260064256238089547704828431161701455685496083528887592072582520009005766138310379190963223788292546807218384438312646920059291097077345263403635675047122396290815105637566770593800768109495829783668199371112184364442061802166850331490538285367675234620910449559920813593710112449599906111674132128328815474118718014378281852241271398476702235213105233910032905061698411474621517085178391261433830065052964939713764645981516130075433609737034615232316973440058050730863009803260376482977705458960928185221753721188320056958697924223736388173730300350571553855766080190164119142471766509726727411365040066304808447460118330390395963118245209595923355693494513230181803154380702295554156108285370560343281600137525076007207397549359021594029358292884013442050117306522617609150663475636496942014831999850447408205756718172173526990312377878632471437474296749738950897857212777648517526233482099706113090871010954971263588911103071019569513762167164194313821281115561596531788254505795282584858741641214913915002500182079594294275181642018118074544405859821533683254310742017789900211925490457099049601093577307051253113916022015744140177350351146221892080664901747764237971322139373363954182771494115393675175772640080093809163862409096569930023558811949328249204040857682965236981733234801597211356563675724840229907261258459950132928853888640035934980471108556945985487838832012465123825441009835523428551105391562915728844503756925091245140399739173024817929942890150753397112134420746249666891227113621704162938934329556627467551713421015131493522619943804551830530424380734477257536223556297309377457281813342397214909006845305850882339917760821781652190456025388019041488024592391536636282114213557422649447761458841320378949156996496801050100264479537848650327899404190050093993235054947909557041448319436546727347550382260897144740234226054273935120466299719978491910959468955914787219951137227214985217792097963537161156272727521726474984976788887112147552246659877198807764031696077077395701103127814245517272305786446421630642999181120175738791928328028637108048331758985039774357862441852023362755406244134408132294800643212487266815157004354318551143866401252680335207544974391065609611266458467209737114317378857353090365721738138625712309634677644477961277095858729290708766106243536460903300448916590058760481755003003803297928930203052789237326845831068581860747116392583993191354667144411436540729673678727046623224276824555238652485100461757023104635569228446872453539152760372867881217266137109017497187573592593519536019632102540425183610286414169401618606659562788270414647062171294654871062000361364760422452427825931643535772345653211716466929096536802386634932602362433483544157870634450755455741840363945900265592630261709494319738232295681745643426230051884995706764406704151414169585508894902302199164051332669407363758187468599998030176133453438410783409928527472089763160769058725766236038857330871796209334805796072029948933803583401826060180875853241298580175680168528545555908092503891044299465435537735201415976303747627734237145638794547771513417620046253038964433370024289314236017388167155106652840332427504886855495869927050216934954194550655095439356120711787961066844258793723322294479034582551213863006772778466748287065919074446599233954121549295968592639913361434189093206285311526701741562942709632054859861528281691720528937236624320223000927386938000311038763943020367334246894732192914223575934661295040232049153611980837935069441074131901980866977984547159020521782420171172093939714385132446712728203982483795814086060481512941585489069305797820787012848666252106761798553482456241150823604473388314597027867032831981473323053355839353042077591236441326718312944936466668016647943622229354149412110406621813125317970904255994918706463910825058745032913352389152237450831513001116593440279571927840080995723396755989984128524899460393532852532812163079666952354813168891249306762874162263219984630855497169929689496917688824867194957831566464821199235845676996902128976255907055953268582570983496453538988804378613546323357227984800841716070434089678782475855806459292099314558374862565200712734452943329278943344018438818529909881319312545531007462672506722341364145212234503987481465770763721770910723243785868834022922051901224710280111448520511649305797649024657580561413258830224853890773887380071934363704955056382360747466406086081725977169245122909448979821209731230936944556103048400906972672729685572515323519909555794015124432173330802922102760792130490825700019182548899348871781611467538582461103078222292184378389631388942721260143018260991138011516559092715025868780579848146493983102761020514672523595527484560909623256791984577406451721741509105552933002749698049514524179291231224922588144830242396191190143489153496861314321075347130810302687344137931495578267119996258954590346192855183539866588228935731256095887490618263322176767298680047583228339934799529058602886863424329220404110855017059754710154495758695547137893945859238543525580624344132902539817068977191255733931886430228082818757994065103489148362793195560280129606665913987478900076548529178998057178711320452834563744145592448523974385725696578880346741128401082169317878188983916068039237721350350355999019466665378051941226322063286781856277825409817429349063736698265124358095420039228549973871031225002661244888346014147722793214619850279934415126424470061980034772455734205022998021689770920528808867443999788558065825130128487756949266062449591221412711499212626327360278152124750333273745995519890181554733566593846293432919746616895805908534416422527611955172210312745949881961654502063918206974521958109402639397717266564408981648625416537501916877659527914757598515783347886964191306364119621072404998966056290042423424880383733383269975142650849216400498935787395744938241152097555036813375337035472432846575420689188661681050730341954230942024726556320543744344632148195521691115998609506934811123582527313453981922538300360039343201482670432806352428735647628607028427390542798918231952848163249149237057510302670786612425005094541809018893500280258061930193571642820573283811865108346253012365601843741331230953541966115749655425078930499763719959216912494706545237070816687988883177712557159147069219931484210831314225875374697271834194958829712923488378530774850570012367899478366020432700057365784065984652164809830530999693084188556267959261224148143266872747000098220083611443286053449739236007858186975161710241490034440645439100970133051252631214066946717060738947629919977027127348806864514749933104764192875510953408878077560688027835023292552126571721022134014083526422150025380153369103376819628067689755302221817688070140340156617509424511538121096565328613249346850444143889623871766482802693203141728375497528191540438203441992402689647086947433817374576467946612765491597000647186323196087375677432246265484464294698951718008931847522196792822379997620312514268170619446380794508549182039389527962368120097721491541519848835623652634503587092630132430957960032398440822205993347248441925496424863905451504357106777997157243827220062346541536266257688341963461680010507553263079187274692998208684821223464654285419539741671310301807155511364943721349894539286270607249802692221526703298893406263709219678319217275071589081080409306838909385659334991954026092444936557717174097702177822783247139939625493510211557588217956975547567847592284315735909962325072351437612122424633657002363163349466399810541281802771905579493244906774744297149612320717088549271711824595173184759847411989252793787311609389037433323414517411815047380963222089338312865824872664386177339960243956164456202409224656652458150526610299060548055002921142606465282557099768020597078045887264939085329125022321375954057264269638601421395807631160269170898111364655593427003737696977454988385844626182834753152232795461698509300778374769768321905889265299065278133568242007460103486766307658954600558782008894015540287326737692611388912238794247824791107803354450925766601523736247960801673531909236494645224168119499476050246517545079091605588826751508768192765164605897722587829946362600121955713553863877492145735230030360036087321853228221084147451573168624486853725073388954790761175828486630823900762065320547467571086398728580872572508447459021900070394135661814315467843783354899798354069413861292416429920874031138155731976997627228003178682211716870282293016062174119374029608168186445233096355970382080140682110766083101792563268593749123727308220634544342323143999737840284299101187617182922996805909459039092733191729644088296430200946416783070822290385281244859419195129190179905439825300038197525529067426674050932081114284529519607504998202088663428647333102559559440283921098174291541168141065262301708416405109355358702161860784565083260584556354994315683640977283499358834910036580328362877015590500332004568858422447265352688954590702916592589641686465959185741371661681164395744539542055071109853569665366974939987910087841408868190578765162328707214141226517837501717935814774991551492280831167170967213463993973652385202230376538364146077280197195880903952626731731284646078190825912213020421850453007403508418728636066536738749895300147268775223450519300300264459572396306562525100313657374947812538754709738429795252321573042361065672007322071019050706439425735064468991197188244477916536562110051927994021693271654046098756338607683992240252744371527753968937196626110101234247467581963944565177920535768336219778727641198208012463030940251395202786456807409640709124165630664730572871059676050295972760064339128251279946353855935088825834164568179083720246466058773028172453639355992649220627771420285059361035053324302844425758834242066151430132774071360021325383528732875182298320962622334289804912837065881792867411450040855031060067805734698184007370422795756780790599874185251690481005424738134278878882907209962494028477320978887818679077190606807883530729977442504503118912900880736842848827429350327093206249844115812127623356623147884056435899201776154542008840274256044820301627603480884352652502878836700469142088742504174620674530371021761961924251853535945631032184907400765234752388069218440657788882095473940464238038822363580382201878869591267724366518716030688472225088944046017222698530287665797700267082584250144055583047295479585285100245740765438414789479883448732962688889587205562646901750348779097944707142727287681886191494686265210014858234276679021328997418704470281060571526122345070017276939863735922968661853967591640308656437643249732190089752852021351989808610218339253260709392090460970458947910893867518460036884950235290500413044780560548607387181814762663977907814880233392181193916760265914479679408481668997298946345173366298696076857590513215414123176316365526249530009899991059181219842735736740247733958332462468583523747831307199039735712368464777601263586229768319251631080747827906698150790501927130222149368375712061897588758858039279664639037913454742072997545660312695639520987505017488111543845278553360288159120651303385990844727187690172675100684222492784948142508785875588613707333839175088071308935607851141754872813952265845017435252800582872411458610747938882452880954656304686133996927753924691059425095653007055347480268620129851551636235922842262970646939187633171989748955641807801560961365631825581185226462781582126672051078235966761084052680552995035337821405163070788602888047981606334985822856565826308443229071733738786774372768347668717371691766554509638093598860309117806828038436128120327811668614114826770447209766868116320869090315967727072367000273215101211536329195045322762777387645214688424973400080462501598616376771851157907304426803357391854979245443631258087630666553972056883124116634780746039428160551572664487400104237787353411352540558945860809513996197848427695129932651331097698523294626688068902738438335460088913692066844821834933013918787262722539564359193372525447024827587618304277864719743661672794826160558461150028911256766632005901363089727966035187758234844747142152477200742825626879359280888766906770446481385250913176919693696002349582569301430753592468120006659015759226805504602119024005212912481905000491308452009413919845670101553408451176428628594073076192986792511910887230894355351423018907820138934537953563326545763138216862868153374432929571255914340603516710324928577564599103099625625819224308309290299507353984228489413790604609155779449281516400033596008071519815322781381212877073075783966525132702219609532158103705782249292170747322873180860815933723071145062329464051729319740183607791168716836880628454412536398422358118398820801387928671079372651276979113547026537519384303406219889458912967813265741658432746696745726688585931702792501911167329023614481586176056603040604150939301236745202117937466622213628774738779215133942494022445551049839592789729038596618954201329657394216198616447953796130185189228063708338185734184341347959191955321003119059613064891034027518978549562978176607818899274531321497081250486766384668394576548368014099111538714296728679646160368093240381255032152243676224123258848896795787191190285314961473779871012086929462824521523462712334368820439362507197167926076826514168421633491291225632400630298355275399212926467248047660216421623569089436866143383561642790507174739388322309313563635709319683857895865400643207786936999064726393292220631704236919653402136920048290102072434398158111244486778866979555266675940114365047241939560573287783211516983206544124037047002843022669724807982937072241368888737100356012396156368980195654962491562452679509179086670638495034994254489643478444034160198764569582843014537612092589661267216728121723503735070144083064005468440406044754730706340093018264144196564359846863367577148716355613326522244625617341640078285956775278476328719613035745892048333505108991350188159307331321405316481043822725288525389941609133534137521931905582143697759829802427994103003607599466072236901125776252091899408601104454092379777173100667199311245550910234210469308487154658566297291602532123413726018461531947642733430010490955528440539140516565244386939662284855209842739625735303850340576441716104625214652307582970183824715229237547164872311859067050737817353001086828020352433377050761907011633058464576390015384795835442879556464480494969333255891635559346163414809246582004503815509325261291307377854529412337534322253830983539477817700526922664692130715126198152670169893054294146668811035455708070643989252659934208790324128008883285942142245529478850474130937895154025079629936141288577250435646694723406341952406592969087518416205743645987354175979552520111707177658999749206667576453062253357448096718515760969538318489551903388970522459012903438186715082329169147181808330128232691761059617589219481090745842552653102343156172877290493716206348571291514622729932981824481305328914996328945086214999623378535926217827849515378841632607846034583394266835639481809391534612476669205122158540358542598798878088677061743736381370189682717016123773746660877743697157409880912322798857899151442326736021025517408089632670777320089159358645050576706686832911336360200035434688339941241397531396289694347535053964136294617562512227523140703303434996557669879174406213672975710955153434374207155888621678303851801268507755962949069824425726654976333565491788615348283246719794344422247571046568783570607123586537283797848356563489913789446438109266171439498785191906890868791919429694481313386214325698275816275635085870724904031736942052231217002981173780859158858298919312173572153642419446011873767514133182360825885162235415967455761579873264203969462560819745755850177003247071265214841416425491589718080457273759273904686966795761841368492348619140098414973057099187102665602245719803607957670420799856831518819028911485075620448431911846902616949177373991541759420208497344941252379925244750074167327602619113292684738567809768196074001564333336677845991273452648953411055010523477403823430998422080906700248247222387414391056671339937346062396124185288278587033189171417990201786103864104998554574218933652502844791574355800073723709468952680555848919226859990386243315201557909268822914601611648233110862543161271286241809396828350130814064242222270603702917000762035431863812589313545116781980412851114038443076343904343576760411967926294666313075881117619945258451518262612624770988316228011439562936049475111543919006484991065648803715349399329662532025898289269512349928909146531728495329320142309911050819634995687291911855358094027817695035489041759258454577773164379226911884370968670954057538283613999223356600347219967356976471378491135651034324166974908977153978525048045897461986779146128876087343028183315243686472798152721850378334889239024544371449565379495250891311746465835486830868370795166556780869768028342078484311660824455089154279286029235875011518348882270645672786298215237885782157399822817078196319933252957100071648238640051133798932436529331802598599055176168539510769970655598849769931481598822367809032454700934372104211608764662769863398245802592720366131293503651164365529790083604019097145418280730984685078359163886165399770192248847362462063639993941812732693640504089112377594775499948353200710269668134917599303713912461632407992290628946008695404211671727987149754285549252028343174139715822106904011710857432921749294857290086506509918379922524154295222184118157880541211117624329243492041022873675901141678677692578033913304156186872871012104758433472990007472278806353313437595686097212688399816937662619856104626564256537986778059007153259103822486259754544933995770622383116627643689479202774732752333087524052630627531845779320442315285713592423450285019932616165587545220931388933981708227486389514061861026967562581906419918272219483017674917373320718236604182595194707211013694801243510551464008794105035550910068743494494596457718951997727971895292910287695305935242778283061363515203786319837310495247326126841209029812200648421320769838877336936074641857751471435200959158718276766230935697975107947840028935526397437392986201151676510530141376940822056200461536540454456819686710754995484854897471689272701708920712941119782800755748236897073636116667886250959316019421623044292706978435270194148533896862445082663171238739667179271400292412244134816703264060685744095314859597916203259525450334958997176544798973538387774376765927562645667347748331043814713365841439186754553658588266520981634635771517825322720827313852172194532021816950684749646402655980760256521615616080543321612175710023575709988712990853027819313079862963258983932507348071859456271749710408361702764564850699982848449862253050572841539377227260547576742786951372957809442388265789183961084846160902772539513565824384339637166309534642974823371494062686913819487712150070125768636231158564668018434215148862153252007305391862040912478700704050182240060721293930741645333942309585316155575035607405740587759841378849545481534292389344339612034137506880982162722727975401583166758910135497892307474584514598358766570496753224168837294829088218568326006190348455139693465530888465191407606427281309385611528748716001949418287568857613952874552466962944597715422630425540014993435236496680102463554479208717750194199695544858655960705742820651732728640571640422363158036192634346696145395966399607961039359528235261480894264999223346953503030097277222785593855688749974734926160145145461110057348220339063394587996684821544480663462003439711193075070577755817933909327961255338949941351757157581423789870142928404175363578218004681437098888671081340844435630002505026595283344796745301856745727548259455747900353574204603666925662214519262547894097600704750330425914351261984060372104390041574666374926669092000308801658597942926231937469148456767205758175563638203642943619209143035734414880870354560500586579934575866141593481400825531734154050959523459735023036401514879718685792705472506309307315039055713075580170230595966920027907970015834931660305920680191375668657154982528728030698967014575022867699094206981544199997559246364492741546215199412480596974369432770910789924171185626335052600899028907292981762230483168338416244047092651623421629118540708001963931227110601510025860925050687270679302900847122517763812947896049258543237910940944351201729060782309302479202285975471680403879671767374046519215235876427542263852142519943186470853116520772709895061589427325752119738567458407443466700931646272210504788624520268095175641734098987076532839491476991622297330127489487266904530921242451058876323454972578927143003569221799528658127058491106470943987167699608392127394282285363655189250178263642601333324094142279577865157651649810635977753561390594567947949564857607234202573471493341196111761240595008940431522315424828835666126260078822769556147271213641043340416457182283997957742830101707519579488318146143951837504666604088095553638894144480549069405148578429243874161675289500548245235024039214307926488544050320891192151276794576713390839388947215295364087209337884599141624089737506718472108821501863556308800600882457950978416512398275341871118301303163024518834656446150581894527473209233564494352752795576645776403866491980697808552595565453635901817905500614667616587214976827351637325767980592128322020224212931413322489953141453118739365989985260715744257233788291070145904288001326571389928372950664725907946027679727644590202791383546266567323551998951385802222312677417354597800152394641978563612793485023151623105809586743927776721379313312444557668882202655793131252025796254988745966536793419405281041369109420480218625840440053688993967733957264697403182232252026569329140714876526242172198212322440572373170071937768461049597091237756185065994728216078662293174157150168072042568231586091833069383312649115517525913314288213609854501968386513658805683355821959483197895086651701184666545366942605560796014313506315831215381187433427179136992355865711668766067854482655691615898932878978023813072991350161384528149153862017439187489089558492461271550135799112761894619807379682224039141673019343862322363004679363996590416982886881651809165559453550025406198949770136419398119656480876125003391852760288830356845817638958083173457605213045741506717444247504702721906121246902470195718759617475596733149249715184256563033250227291868529619480347798141899276901800437857311437163713765776294008114497689605796454071968246845936461992958678232059010888133500038022700194432459023429103487219432371679264313608425827498503166121726612978183390239871586011056106900164264699439741246121807610557602115410767318473327740152794134851689300693151386815701234240599033047735739668312984636093864177865295520849440496877127610550587497288599013057586257230507690715259658140201305857081242229596776859121436489737748846857097997323425140418822476273385518276639167352048632107057003093865604924792788257452639001878682812352666304295267292020174525972981229692844836589528227018852997118154965911586787747045223952481303426360271209937218708899371535038992858099495653248879077634746793815179697709280342491713134595914035321465818468081044355588552899121057632754142130220563135949499147525355246740753674092663504804709047422024470844651033155154887090969124985371748434641951658397966631728789846879166673790930152137572525129728538966517888758436096123423522422359357385625810465598879506371439038375587257082459977922800537728573511607041589089278054684325323215539997065668729558983322584233741829930980160964390036236828960392488317695542097884781663697162491881794011458247086197357569068773035103983890018661992269508362406655811513301183490997531400882066004130848690820373049766844030778261933300422556795818576182660252097633302965290346687943566240329371984177993804368219894542390177927488465871648589374258157519225646472138636924919941912936782466191428802924986686387615244724746552750937582105697799376687392103160560479366414063996065747708022333708393612723935960070650957847512469469339398880209372660409033042123769526962229397194915102961876837168924796801903397130803926488476172716653379459658917635998656161272688781532271834958487569427166605165735193827359025017527763427762224862711881638325945335019595958982634543667677473730446753601073820203808050768121201638959666780911357073927466751801415705204377737601241434347890600356988682894598158016964626409567388931286999959802432541305785865060758404795998070930912952867986668933260136038224280207637367547481512180606560106843349925755107076313970543189144770704092574156929274086574728006435641318226774814294918355022395144803497727040102366214456625681316956770308197327937175996292010377318167695438351871540940890438450461747422490048564441479304577520667721243233913430866099420094305465646490797927546179189035308615022399883829012280298674591292644165437978555311684622272879337592108715423411248082844385298897436624781173964544250618350976608343715904030950333055230839138800285295211034004870476511809075322980521968242918913164070405190427318414185942697683132310128931175085762831503537414071178932672468475433598670325062888125920949468556051925377785481608634260148036873125907376468488245283747834413527635060154597210455349481200498145269485076949009432944816438907261614621165422877136980789108422485153723618971192775501507618581487887015252333870450285836097349674993535909102118380120813573955356154881701077845658626755209275784827959356235804425157071191540627989805377076777828765840313933453342861540722035280266252664756202854867355677426333077609745093549214091808910812233463669003581247481916505518125693887162265787765183110914329356926514936717909074143940951481243615938188865975546701425421501647661555135087347630183836353789427568725817250593115267572424265709148619043454412426050372707541221881747593267714186915219886522414277529858426632370388085712542939377005352071225071847740598053968882171938960990657153920349372848266553340337615364290962315853530673243096410785403980793899369053122590733111470461463066945549065007816880537325903527078394948276933450615351256930589552176262168416777287722426832503374418376318679984203103293238367857202981890484066080791534466485618767870082009728320046402101544260542727022356941254263934263215740228262238998069772797746616015437800641003810110077398577838512266830868733040145706093511102417421825918571083483410147126989307391943375550233864759281175297530487607304783088914620135846113093035448372121804007329966420022627138896312177719486355252670563990840887289695983336712760168486555118342539021529730376397337716200947203630503698699591641436384747581025379084309977622738905213045804751847625145568319263920597899831272482371470644053115203438618039967008841602983391857548741086974485955037527528852913183851401208338096272399219294360727637353201997149484991791432955894065764858641405884769912766766709703572204671979487418285814235354624809886696636049489424519851131961199142034970121688674178229272214491741294579767915535956656024981154746176191187067185065524172839333462832618455076257046454952238131942424068109553097514542687993940797322648062466675995552219291423971741378018140798114354234029023508657805123754242468211106297777560564000292113645686374620902955376927332857270041816018845258054085547610062443813699826855612960378605028272775212687049886588768875237412491440817984736446886231306820051392313895232013687492272421973166432695575386818514116011272080897619914464914116066547771636378443062482977708380098105574664422990073987057284664500740469904596852979768618452063750815773063882283668267554042672271550990913981803226736471148034345439484747535756543933096342258557714938552530809216122378742751123996961878900182305482056582060324151615062444704127718193580107470112928179155632844568302628317765496702873891931929861670029260140341387935588922940389390322201861163514655517582701193468666986822683884707622193099901299318844232214094820637988418740387524497890313116304994319031535687367091729818482258280256987746843504220756712139042389068244147820451765859193363076358146611353208818134808491977301034653769542218082008152096980283591454246275671967942450833846525034560171629312594452699769584996229932385160182541370887390265396667088139880909833238380025011992240290989561206505004824595359140307493730350447193928550573450271117848160164538426052646254610195487807521775811311285545205218955418477660276598090737486212382874009467169197136832921455663768037899208804462145139141669108485748783580063661100425092797299061629577324416002319370331462291501669548756822765024329756759345562718768857980464175270151245989268362324461107512728062424520278472577699670332080278525537682784780659598510204687954655104359820999199290337973675163671838508190014036558949917558235119627866975365168231092397986132114376032592758932916041913871628408258053862125687309855284415360147667698877650846773161986920182554536912547378488207577903774630845963577886967629801034875447070586709169562642529078465174602006785540654842035523255157849338036290974368707439859749605223058704266474130943678760181230441657607013255073433201030106581370384203209355850271815547623819570445495494401816004775598989472834578356935205545743272055465915538852700893685546750077337333673450619764748236940533153523730708870622105425589492688548594405405998442028503770312726756611601548809091818255715235002021357837235903338237834098833500393804639133253825521876234300222230446275028359163508468130769454117138286262751194313890764510342169827408908153908519619001249783210918934488823963792734985226179001611152786925875008357204261732220723302474091858345895283896296000363766969101656790327689417676317269911975549613373109420477343972532188490578607850478736363062489170909870492388092744959488250930465100029147471195130227046069391018379389766293862727788285192311279930778240221659757130937921406366263059590161121392607934200609817167286758245565295306575718224597829867796510120072901743937299460237848733636570800763204653655058543644020936566155356704410553144537474901227065598797490419921039287501707880164290376696826078775657541484373739122539082827870173723653275061613055947920452935261593960768796826903517692269706601273455152346988476960168221739681196806915772756276058600871294437643571480704427273718884077142162495746990251801765517235511775725927613057272027994111121432399832176666108362676918200626124583185365468868629185799465835637575028123834984372820842708004173528515482114850174979727656583559351709393397639635899259631725691842596314392197690886891243953221344879871220462636677264452287355851343738931928624842039519994654210602309112348162209574659361498392833465366002511676415475349227111520212863842386761279968733701684270365775847474804970025031312358734203054379386161568327688058645575556594701418375968754107315064321501386868376308084683988692447389641937046598016308357117692614398294166578022708633633201170058717951038035788392494747528213801788752981610929693898837862915209309654730286592422467591962062530188795219097790941810432904938049802447603403380646447543887557624151644222281604471683970203306865215967271094342654184800771461396875150442051106785733434760826182858323322704090444885965085255487619559552884157727314913465076285837776804200153332464175707762243887003431954107577663631452394463051435960995300977187881823873438301721607653148371323067473379587917025103075983033832014118641676627803388902907024688930230562422747542591893130021700422578932976178458679748931569758604125255220946055094260723530866417583765423215820945959770717320302195190901889727995325188215074046917424591271260335532890180849616258474883439459862641139332904111623958598720531895381071267910078346822176786712630355007277899952546922503361012451511559444141128304989921174952981895027294103710760774637639428440243380537094914627125254748498902498535935600681650467631858605000999843168752205630458049811995673560406035919382099549888545080657367414061632121017732635389150320272175462492647807179639630500686611305542028431327395007382395474508225284237674800759550324150242303671076023353419410898417505367620185523759443844382527861720493074581486803980590804173919037847326961967794385114971236762162916113574596013673267133895027250510518370698901681540983492627029956624829267892195557343119608483686754197606816066434956000967045911659940276371191559343237088994866417631302343152569791561562269994119875180896730119927397433491669044884401837814778130274757503397622630391984601410574242318544912318082978878580867347997825393683452242585048545131069798652188550370382974873988375590434803366919290807693696978844505989669268691644211049917365691787501951786419225716830651697000065169068509807639995880595959895366302878102634164569196556679751520878485104923335506160749349302566145088647584096694904390584599858332844045649400253373195204476286443863253807963745810609761359128258601415899592802133100922178877012254159830030911806617666654054705808229820473202145793037153860103626993689970153309677422854486728544588305625218231422604359360482671827849300647998887182524047340934366945953960069161996238373065796795998450015421918094065742779453503863986749516438574971813216709322097154633836127180934480751846687038847387299601178153116138330566619120922608595019023112005016222865699918921919628793346409155636735007886996782131375295627958378106220137265802973505078703319482449304641186487037531043490126212580593605484088294845342171077058384481445741632285264011951005216056724504814017926543297596273176605477414881779117388867824499349070676217352383721133154484759220798452450011343158665428124039159493150600686307846045740702322318501189621865056468259623089947689343882428798749116066845024547127230266139298234506005770812035943448646533463822063628891167221852649809645820682962925121239667722180912279527464278203814840144400464903224761318411744271132593505834779039172306141231535151607514488037294015868763420257783278782183557795088243197629953337800582854966853071293363442962368425741305596230404291869956004345855772706600503822930872103894081603988555869609406872648956392541337757300709714191248189275143129555464090262469162807832802098894357044065336318690210923997795338734375567930581143985664422102184331162383118817264169636826436785806052054318293790772565840872492112270266702838821069235289393425655317140383175500925303361669400066683269505534003055094257719883986483275833660781824747324806464516226072229843177749405798898523343246027310551357448967565775051234137280354437862202569713610204334975953456223068472778797841592712296728307884033103155696549260344392314677906348387109900346418641505900735746202800681219226235672762002688518135613893346145809951264590743643580620906951692684902662458655050848904666023244380983428900074158979449154355346444220303465336018734056736541744933677518276674724088805935273507440517157794628711291901097655222339310533370265328003891442976236666161394205928724981804519034602365113377884219835775260617008526005380318874803763439532149108927179358489598950701683011476332341998255212889030862879719436169366276172850007849065825774367225120705689619771917696945400693751278775430111960674492612387943738984389845271728183046737222213688195942310446826469742130277697218099607962803657822655752833370886572074130579601474452747549557212456514114043053472483084067477095487993766109293581137778281203768286457764889000289340961977880083636379241694210486763055766836081691636058067342501194091679506684667739794119597828660787746112055870592820657350067840724341867275807055549052013282885797961746604306106889686834307497161195929811021652830632153600614088546234635373824361820979002188869953435150828288142402677080751755776630029797980739972463378922619730593101460277412304423671969176975187395390739000739670686559464580465743017348332566594910101987982176702299335942390621034126852097419467561002934135061204094672407389770701971361873227975511606059951683251397877572296356740947321760798199618505989631732281853969448862523843826738830094252031479067550854760528234805104761640314831368468695297801506978062830331980930396151906441713081298559917282150176285336038690139314444232843557727878020099127343747050421424439027113093170525196313466458023768932055792239885897008838630218798561167694510891157538656098164214734486738479602755798639784380102819717743998504549523573945752706043880584555935740779345754726436663059471478839632057107030950841437643327414747744035988090160574388884307112068436193025254628783434794005606404244747493547971490345045880244714870663324279965651041243684233782834414836088381433105065270863324703707373181638275023762005504571487987920968020968263913641384952949366546359116692537993981917119712476804465614298411813017249005530140069778362674637483978122963081565852455121075894951071285088497278921793409567294333165805515442494291829127130790869089888940441987812009929853176251831892627995759623374167121684959062628701981023938794286163571760106854693256467894177310849703283215424998377491980500564140447199993678875406463729793820128707258928067335201001533776395117969370878514497208936675653460444102808176373996849323548330636877698421240169537669666747808415259048253407817509289803160524888818038338253854959406415511313964348898262541133384154099834909377980219885532361609175523133497376028134514549158626682935477795352729366603177053205876457910630381828185960724927747643639313139692166512892978964325820474741531624020286110357965336592924366966408690544369724835799801845804980740894207742702829045592627132126688275180202048931275018506122023056716333123730851485766392365651711311482168239528843319076106359892521162475871951490658034633043680908439126634239935658467183194851367462809824601913122046285343510250839476051400845070195083456406997788131203684798910897469473453558738699097581386575428293874864905423747451269032639920509841099149840702975114303346010536927225912477180308817308262604791380806691092572552372573213254051184962468254888078208035217952335060673077957391745834242225891289942574912513636380019693756032220153199813563510999539191070611735460903055933619284260785598251132989884015575991511206621739928165636221164335102935698277896700305003357704134997156435380526636894784681432948432730553373789373456492916338238378605830959202190875591426085982821131757259172259493895458501731969109006073485249268139240172974250099416437735830874443459958759336889847893100008039408835324736057382764387886174085156403323997862514573525647194311448051742558410315538648122715309270911621128994997522773081024723810896066642537654801574736246678175223025615315448949574911799690511021620218067736466310574038102342409296770975953306465663660054533043293174250597629290164679392994932502454603768439896367675272286411852107993079196891373840372198830381716545308351806967722454967994891073011616714956474953631649473222038850968557977345341955255236496914144563398302517111825050559737461019174763648216133704681299450646756001401084626002192498136444988412785929931497106638453165714831238135285142921480526647074469103042953555468550271773617050222047277512117255579156514706562317708627147310559721705258766688758051103781061528666646054855276379109759486025016434654741272683026790434166545556869649385759048022038276472766721042001010299424451238121198804214049523647454165397175340324064926781589750877524542391993605837870177398459963240689833194664754573913441601875755543396193389354328467801648513884923115093542575460963108431410736937710314730777043988079811327439395055342255816621556952532563799007918939541284152141532669900608547058239348035144086014535309548859575041336492584104346844801846504760603023983779332178201396377295311278449811683401510380355121556558629368674544834168433460171282289767257092001118150676452165878546957492669169086194126114765895264246955996094955342840849544570291417508817339068559805522429273039636026196824160095322629122192350451686242573555451431447266664064751400968093325213703713583589612044885585927307131092502150123491505346097440346894912511755785423828887281086847929891533593651699146452284527977938385140318075137596905189465938999710531698473661066698181054048517630490948589984440817529499565177475279250685590455574700236086743969409973892455014890154695352308801907673343574930517548113866182374638254636176208419269248199615910622911698085249875921026781669734239580618528966488281117137474899071795295041006550290550394149743274264784414067884462386243255825183602873879089634095338700341755801398228767707724498063348533706563511324731343608321690958671116885558551176960956083948833304869167903881299575730502063272411802159755103942076760552712480676390072403052374280520370229812179314124691193972578381794527390909813639356178360861251946970289218201184991198053081276198215141659185727832596228976689963064850128906244753477984750154548754070954565988301053850272449914419394585801916087335851039735972401810576354063031360730706049859533636803995507123641789341509352322820915845042615197115635466534988573372527821050125635950097099580876049392696816010692400477476929089663304478294439101160613760134685065111578742194406206486375654074891869146149305017625358672299404381652882338237488582201443739251246677056643058158067791310680957513886408482330441161453892182112792612645281097588762282085903143381029141525839066889138724616405419246647428923422575291260769875399347887694911882403149967984316102099714170821153522908419489398144112187969835600227528594628716894608463983564848649732564136061835729063793482840951992847559646516290855644757382618528205775818199751331008258587330310492490414045332487573083981764141378418456908250704287074322887057729681122569420422524101106805878149496405337121357573440049766069667642847008829049666095685458909601972509852348787388360691887884478018894533330820190755369959440217168769639447998659050364221429550456869005508584092027727076977112698425584409297610712364235359548431915134228461436406081453741093649596571671379790422124330644638531359353025649300862605076131934022009235847917830425669566100959685394092170407389290675978093593350940669944951252965150328943143068791219426687753515664624136504682475922689448579397399605721584717936045103024016410538680009764425939969792395508289446342844450696148161966378648141839594329971936856147198872411122779344869126653655877686137082716172875191308088445404320934323825770611508421824690109924686244968992083787606283278862590198127083309833878125854372864472092555316814284974417576846468613164998589372765952091584955679889113375113745479549555540326750209332921196317460651353932582911918928434831705572447449671223349594921915613797394834707237625651851486525845696528115265843533082118025463578257186020659397532011964790917574263383104781793925156303998145981718310455494360689947391371209445361843601673656558365631168391687310863467400127152328608551101454514052270442454479704473289844352390285363177941284133011244736410505055242958331950913082979311251483640581343911028771280670655272878187533218909173325848441914209808196739783875001852065664986897486158661101399556950153091267546172012965699623491338202004085521415559376565055554366630300340375220068427606413748179170757558135263995949005516691002129641814734886274527448663338624022092595814321510613403991619429563501530290195320106207465163123541304027358534495804011624065190899609171824753866433426156532484933274841725146929354897192095368226413048759724103069978197256687628273434443037992981514533772786077330489149645364839029991297560498053647145031838016237553923095260138390621759283301390144917133865191930192810630451642184875041676995448469162170992045004738601173509702940766403575190550655775725121071819456676342783903698997872783267366453929488450253239333041343463287111802948044750080681678513894170414287517707647291958976056332456509566407121103740912378211900554350354890861629234307445048476692502390625172277499456419062484676469167631099362002865006957895284035613931671191957689572335479487609649621760787058240535425258836125800189626463284225481593810816366204358564230629122305392905995624336174046505982297882679658886815393688353164731135238739588005878142406481454237452454782628414402136398980698688265071219188196444481788195437734608878608656982495204900376406327719090234891154484002059343282435708573180646361395942506948175298887815605466774287991959948965992254936672247233973969675596654535162510311536516764070716137826376941332008400708338079581360154619161499126014837243869358497650596391323481259053407392912870429203372961235759625747807874265220037534693990479895666782097484608269907903036874320079210466472343050131288860445485369626446914447178480203237392143129320529414912927448308020600024331043627611243345528935357109229474202962678936539599760038191163697923585294558106154054817183108151778505683406645327365651530624418864786679304352771371715387736698582139619804178281903597321705723383697419282537647137318356605557803099483556794721817075605860119496648023793698325135875221235121794160568619641229096631921739926850255273115653049816355923623961811076734721497970182478555699499600791801200836130791959760510832239035490431231673481124279862377065485931793109915144333647043823582543787253296910642812598279147580455693749556505454735067621558544455069914657175952722840994639734853248445455584973799612727918683491544474423290284601742007969286947330555948654560613334728411459520345653463679936127655787287214725168019363379186948776699056116573531284252098672050278774070802179666906949899706147889118731264769723423148183725553275080674099082968819249508494658721034442506600326785767090538109661816043312172220385621617833921182501803796574814999774799223484052146049570754532592331604119645345092181854361732901221669211501285283797821721665434596082657260199798620931419163616403685426416020066732714680314978835038186316467043231640862775414883880292558851632797005735514675708469700921060886775750809934732896340569025443749922953507914931209825001950483203671804324638868437524688870907656897286067396493473881459025201254344574803228419681063414887384095608193003935515392997145368921127126374009396360406379344832977954416085121951727249502805459854018902110131550125127346078708963442014921431006758364682283474959017184974296434829709097758618408184233444896582196903056215643086293291732650832652064531075630680273443599863579378315748744614097391265981367542667984856508827636074530271771161296557615517837096358171004832748161540076600440708411687042903162027985477168403816331985948573354171037662347530964068454395742656561277141967317476261539224944310961035749642218771087920546999302072459834950685221896144361746990940608023428509822173404124707324631202080428438693060395331637470951828586570470318026328320849902673838433552212786968883819335098673813650863397389551374102692498318211836713045925286108425976450572277888327627861980961625460134666900467727506416733085721766054669833510460535059621779865003345624911411342764999122552031411574236056570267067132002953708905480067803818959815303229122945515013520018178573289530354376768182138436086398016629771310574428238354186815885707220228232507110142090035688400186778349915000979698886327073498469603252288700899762441675739852641882419213758652551345483992618740087712365523737645838940939241657727234894844324894690286353288654986502164988200359952662104196760846440491999976758394150672351598661689407057803278477538322902383828596484893959204360442606400875235482615625680075052086444515563435472758773927521604716137194643554523431749221354208285757979094632898097933922512737248645390102324255729241977962667396939114223875548577533068620635927015410140468567635000674022905728145100052743824895106203723022430670335660725671749199192341097537323330594067129753870064667808934948488479971528693730574101120911462662407428388777408619310832562393225184955366358794276160733633618566010696742201112493416883214134121403965844255002090700188416970032629961910914455474898106945162996075877457156849108671062561786402264320164449735447841416850124785812949472212420569147127833224691732309755961023119308823430977411771775603014437752719623412017759235684990732560749022341883687700117257881741992068125069298225314815143505969114344801448753968285782677151282635768311424925608001535575487895710404569780329438518903565883490482766940338247785772479470941595832360127114391338231104738596444121773990020902369323828939131200766505274824950416923026624226995833001424480616828260653632971532803763970256237065139259723115365767236536025740157749918796898352805724150012511225895497779037560934240831471736431131888397680940956012159226584244075862449227757498441654453604457030779105022622580877677303930888356095530288842371549593479802135005247819866604339247925334008421808834774236873112814038353793680218711718857049504528116430848994451294182954112500536084602121875227667242797562244152004039097121667734655685901351608514914986451154060810320473631693911137130738268453496359379814050838799836574049617278152510914739963939325792777308587754428213994909331061442444351227435843834726995157606160919080670486871292816061942614293483240711938145883248692554258214286842293746541151457645036026746315890612002836722300191216366065809143211196507382223350231220555859276962450853265076085462893044526134924401842613409253548406219555673004559182809433438947819598802796206672713049752483712875774386419647917196545387903110289666879388700830551530383355789346306606530868893030305179805017895616101441907145099658741753448759913535614331491753909130708291222352071077688284675688835361046834232814445018040056489680563035506565823419821774017939113408916599155788754104884526366528224145640504623097114233710273511759885604712439365173318203133023303677766276357105592459515999501630684296548140499227565669953961862722152539717064571549024626553864247619079501270720081571471322613487607733111944895051768150558138211282513166529796920869775189922844815683416180184919965844375957325433243881414302105225842701030929080747780141474734020363370461590071523837673157029350219405323701565839517112844292937273370046467451272232373553974440485510626435819126727407722703410479767631608493825251804068461247531220321878851289766273379563757252963435981222079160302092592143195198790536886554391121122060792190071831353008597297106182210039578618538970485892763217764399558934992668866322047590895365028714971216409294716305670277774422419388662449809915014085709701683757521281590599385462189068055274033719527593888055688664967919628225273543926226336266338085858330303758717584538472334057144707747331795579518806584103218224044684763757781220777719025015447094093222113173629567181073243546962448986001931062263615450545939829158578239460813368743916889205310262371480902995892491079168564055827588267620550385143588980642946660984976953141234761661156417525898434736606619329186966817662460854688294748751834888296569725385932404217195158607144361019390166662568347674688844286599214924199043596042561245920204798464516323339394276696011447295127944197315882595290457292219867485881100845969429155711374546302367195648008836888977475830087679716320893867782847077904182068164263674360571784323581269357429320540278543042134145546882734418822891802335609815732556416103387803566127021403883193444399751789756389327536191848872073961540389170471378901972967440002041011766779365968192094671991643515571067067239347675465634025909568619127406862316492181901326838629043982547610966693970196598082056304611037614774944223811186616775993679845181893393255229035334259620972361305622209319455613986920106474989433821723644608459185795548239430269091414926105879008524303492409497633073429059216483407233662870275066741820503352366492971331786311338029090819622263559487724639551137162743842707299449996643772038296289363607025519821579461770507490291595331375782261363825982155120400844777925537694706708621779036800662587680200242117877697925992820305482948735500656730215589159506309791529860527995761510436126305924904564363891504887535125655216894286828769185843126412203779889527379901607629085049054053329359375282958503361147928539371013826351633507215016252930295025991998627860272138333598985333077578388058242314366869904345022045810269482868189541687344188665978729910755946406741038686524116868737913649965216303704156028979185782741355510312358834694689394412112705520547886461011538036876324759258972264544948473130106252609876312814941199899248895918253860214271752274995298455998388116202626606919134980761267987324613764467738987333292539275003970396936737380539963254771067916503794756270675218225150471916067496271980026273052158483083269618462217724290484042396215141429304937737098083858669978729890971506359583198066402446696625777658792594459248121546245786577572651535303700322808448784371048044323582645864952810090080913572731178217572141705902152161931472557444757355226817359720066202941261452321867111657967032331392427865583454078650622562267932312441640050245589745379010704014804515267299506896707750462648835097977376275623625825787083847090322607871908363937255734640903517489406558997925795794564001981157878385780205555728148948697868195797953250291143464095917908129552702011301026968181732599544707950722855951711900602987278056352025624134892861898157671053005870668135139429782334331931126668001540278024864635296059747979071297388675884260935422792045348385028822768688641871069170740412464685007784468900748952400295534239394344374015582697519136468903099654858761546959916783691478066511081289038828333413054409371005886970408878872494524005589689834922689585194849389104727257544194141776614039455153345491377064336284444028169165063228772435343383574290446324160566947592252652706681470110856760230511396141383643124416658083611794787542055852636957904610105684758972645096454550735089988287540458609637055548532337103632739462567620786331408822073350917796600909679746086610453559095541910318889867863391866470275527349603351489586423605864363462362779194112396647508463576963501067623256236117692006380482972620961501266318555357282345956482415223405197602822950115667887828935176504202156020229748082337817536828870661162364402592866009212543395994913142129733359028507169343315574076200173299056441189526274317424240953567584925777042858757003633126727508544638944065885757254937567563988068443880466503055453140205328357230799307350475557698028538421741280208907500338651065654894108080502811547807717723676041254362398935965083162984363675671689911264157088113761593437659831943240905039134087126895077540083230866474739835208217209349992805945728134182565764857886924723116566775112446271387571105747765003169745927850760004873483703755375886568336363092387298927667661626477541950119490186442127321018153742712054805884789869532169946256988517038490956201391802039197179056344779922221053910048888415069127839987966933815878168570453804135807329976163344223247156784170963994545149235795357242744649698636254093744103905811595828103796718066055577258684124794364352407217668016156129434903494207016438189266083343064721046835058523929156763187285650649217809790664285931755872831117626305686657783900678764596770257529572517593451278218362729636102502652991472402641538595843899599398842791895163504427186540303430536286568496398508973966786617822350434692891114139484251117864755035128306872422958780218275401839323141115042542559605615840269159003242430067718075720356194232670141869646743273936470535101083781578516596124888870519795274156093107574775027447184474262376074909516312746056072155571090476493523923740687421139453295733773898640691447203481623238235511249548812358531707406007107694267097950032604433384772062154181208352055754261761427800092689159346659560449207819586243923021055315271245913247687018809043301148890623953333304025464863265727595814543268758469547274624345943961851102394745484384546687128212576719233605591946277323130245003994181193816538647150925764996266583922139624534530710494486121992281412761351056387038392881092306457001010369412108994080199356572742050083724668463630890072814656398002932558689466908612011180363617274285726724345074112831238836233673223319063649085451332438241229345977279619921037355484378367060024763751886426485770919353623677748690082775144272474385284826655265193390918197159794959616465546790678733300783054753404781664199525343519049139234044034639223153684157397138513211835630163442488046694855682887361830644412707172501127094208493616220765388753447953771529133150253957103536600364859765488002328456432557951211083337785584297525213200009848661028817674291505739746585701755953648354617313310275363576500824026984468861182619397568530561576345951469819445203168822793867555960127178268449941415740251704948382220023196936355576737503944513507580459560567381349934547392103194580958026878228168053444085235796692232082538955745922396835737061582777267930731395919932686047111046342799854944465786478368275980592353844845441457181860021963431962321933317918133928326006997773088101916407865992046769782416934653432753281805153225612149190922600294983384512428179158210199649132474741511132049770913366233320997628115095047303097112532719530629238403378256169406813980453083175476588651130456632317357003381115491820438351896487956108832256391516650999942597754592078196262475620028909837894330077358061550198416684798003646974235886775890570760362056760116941824272212155161378806145921347176840698326366317764337294966649584358532888276413569551875964124235223554020780203744176397133967016428258125335859789399969120431962738986922749503068714596087824790657223589437481568371722618429587922600537238633674683191812052093373512273384601492242831533036036703752971031107393780870917725230000952799831152348663650525972447480651942888211706581126742041776281081501542543823033135968392835213027078527719397166691766335499127017718664161581188961391653162736508647032970508752990923279914620570840539484723659834970854813348046647860165234511453561468332865679676323094591110698749481750940609640213157628857683848307695088280773726215667098581418697448717994946307314354699783060119531875152796856327585233790115075925575895328459421509693900310566919863851522620989053647485773434224210832942150641787032886861595820394649242356434084267583268177234058087426362904617958641869816760090591980059533827906344724858427645478704093434269345528734523390105744590475896471187199130049143876931276793860808920350671432304536165831523350144683870270838411164971555469080067166166969294394119973541410418127921708430549221904281418713877256007914375856637658292124352513537422022287674199109214472680766630117594937486668598193427453001057362316283607547058148008830492732930285638593178566088625303908245166721485328393391120774488547439643682407807993300510749908220275063699721198096629539146157483719380238606672873724770846864680541081894874933371879703289588799297832623994917461251365659801508973300284069479763320393343122733356411937978623917980500042856085924195981437906727057261212143757767406480240826037585164594957728222138296620883562964199387304325759492343386866455787854746167931700896709606490671539734311986799025034388934532375549512991502018682102629026710916411281870129882270136780324082186940371696325188760145186592111749959071863630017794649773433217244568341974483278681122900735479875732604042853727830171669572924174023865848096099397871204714537190350375292166205462801324786763372154948762784467328050376397546396663972955304503706809162088032051640922363125131456447648918772888318550021874929108818967130881085529196896813688446251840168563283105621160085603315173876146209274021587407097475038135790570184518685109635301542297887563886690506983385301381958112467005035456709578157871664955257856069157267434317442328349873306075165779406386617297154743085827482463509069872656737307404552926041648423053703148662800417246946790818616079139486587055946054759609378846721775231181818748854536363865486906704110341976041057132494604069008168956620285840193666015831978255326648238798134592906712763576399217657427221907479581143309849783208161435950598588275117511856510521261831562638339439393284886703940502668259312948012191319447047368092645523412554010878765602039649596799061232868519951613448421381048603472543258824308308263937678231020969186034319478824022586780490004306134283060820661559892002648877861063613766526947755802128906996111303602404937386124314652715584387333536302347143087679077372166800757975409380008962815797191361765148898374453324935378931498685413820580955941045163968432475435206335600061551937687901203052454312532672150274500329653237391340106113773733909999307239743019412785421354249991174617182350067947957476412161739747180671321141220942753157060834785281096172734323752115365603668425664651457862297722103066074049679753886548183131518954476591148165712210943298337831293266788663682615703180178449418917317739378932953628256766157954728918903885067412329979482480803527588216178863597202896999137536461176311833918638004320277405139272371723266523470313738273288092122328631490370743749642710803635628220703511930361966105398715624653541253788018702092022212196238676224966698751441386534538824228714155691558081244172380803163452850820097495126832205062078752256718460753119197059882443063906428654148169678612128587659683381060317510900240899654572801083076501140288608013934411574677311369957572163633352318405234216216816605763496811220725443256863066001645173985603605001522688836030806906499135992299330621731317328911867230782432303093650643145986361381562532254183254655517086471277339761278407506544674659929523522841270684652425773591877051645676977484504631870442995946644755949753085081616938538167518860719710638463230027409437892301272678739381141191726382943324623317296402031816590184344732174655913902291114598947183067790616562535622643363202923153709738655828981906666423116471076294073198196699242963223978025845939743422526671865020034875486253723009791477210345881040243219469147377675121702440860339196065098221714203674479283020153761245505656041975067299662949453853207012406777683224383714443638588236551834301788072431133616812566969385076335575479065348007236129906744492847991901732957631401194802756018142388658161763174989347190679418442711965182516743907872285837638471981733565777399699175195523651920336398933894317159959290614095628954881479683607764638315388764954577717866532823782358018961142386405836703481398060936423931774602124114636521647953342127283356501743164099509623336535294424294770900303629307981743026274251373191548947457820272623730976743049182498079148814848594299290132658518169150414321217204746280914550850715961866461111235394857572671398501608378172586278852363372792976780634856353340638334973353182356490638399294736519839265169440335484312362468664822274315147100918625022134485742020338483034068720240005557566051870142867358267568527241128254825168214875204244454657334437080664074783977239036674179026669800628448945513492007636959145624764168608623643069318471677273492421577468505131264873935805831403366194033753406335257015923281569744705834969469927256678879595814130627398894678801677043185831092852999742024192887726267041273810896724569342519598212632830795582655263796486691265341784578847623291713576185707713631366281754780122138498964711262381200434152283548770164749218359874225297005345440439489530791161514447422229994000644848641738692190474118415413983847972879875783415273945260918088104108532988248649137365552909121542249206497701453301547620675307316194428455192882966414778557359605709996734229554926223440356630109926359071835045106902994584721228513704031407581641101234475909700658829430201646780346901304539561437192173900624765106122710047394040098130503851025494488084399416605840756045250879659607801692960205604474419177082904525542490644185669235239362366166043418621544614786955287459830450917404350975011457330507795456810101523712678230390891649434687809305968484859455270681835935333078805569817641421373143493773643031006051209600203547110719144806316838043320544901616815312392786504902234953209931724685020564135564935143333946337619305569930183688425801950660844986973950318761215189779430945450126187471075468923391956189085675678472809346289927066471934299666969622744209159584722442583776035498694801915175799327632113701930158073287128690985626738664504295310592777845150888052857172363288894946226529341579593670599696139960740993097191586282455713678874024215958599196940680528872685624467363874114487420105559750708185435586940789974087884147474814959547972857553538715887954190598350207025460033043095856013254306242122172010390379937192218998019626433558631731817422025948089005643847960902312454865842129841047976036027407859044898960969828111847366880009503126354822979930246478388138367006480625009308492963328814287530114619718396682644999269860843086020919085793095738362770641322834797274350721192316943889544656263241022420996874169478472281781473009537081315005436187685628700765445667425916043760332491683295068694990510493105510969014770971872150034846155856278742178422404932115147177753833194106047020076462986684119544863644314425206051355453228041860708938815524833369348241126415267020693784887695878982524230724834701102804897984676327864388231999500286921877350188310970339671289067820997149252732985555316337984872150648186485612200060181667355437503232335016060702544045300815509803390649727404515513173932420925584683312798268247706232085701158126057773356150345586628721610820957278140321621181924880146800141239779869536868188893667255588019989547343354078077690204492111261949904876859124832116750011148962623566501195155754987544191571812894835997476007990944370082369214786965937311898723563949905568733062833890291018310717795300777255338375277426971618484950081289318047878546771795680382737948105144321726736136842926547100633706549278012700540836018046949956996021789582531854634586537540623264623485193137133042500001265912959450154819394504941107841459597018511628376742368543746452356987788145164616604112752989571992478061751131409983726262286070725946730755354087994592132986436252551356779912026991689047629409161410968350050894647983242770993103292051763704318997679491959005680117419782869193982925271916227991670147011786947849618350794310270839738718703804210409306917523700933760834906259065200741250035653411562204461239487913399407234011453430784598853935684312416158930467173001593059276831103340922052946532721270769767331389749151763554266220983084840553076187628786885694669735792258312059164609038879224790549910447114985656121958376967652519483323653370527478792818924405415369430472777151738247328358067834801172087819791661955750712009562364144764615997282828551315026247266886717569290163147224528199342173065904035847017405566870733822152815841777696452236728282318124063362705835760741330564134789287978110662069324138289931566476738788645235486739015830438896551379271636544461052795509574707204354004837892763172582880167547437078140352551403087951287429970266191948260705949688083407933342595145655008727827791038492637329625081731097394349254391070523740637520248876023170854441553583760359206168519097742068999502458567401734226690822850225464174259352344815738103147667168743476012892904875592015969003616400963782033586532600291939699513313622882090783668166515231339274556674334008476166452884883492823860157316351669216478314159653214944433190156747593520779764074583424159053300072688343488846277019302585067479020315956250743383951244611065031037946311863113110687296941830392743910016044827863127656306913889253374260309410148409861537353616125882436370427814008309455793381930607745669676814540968942563209277506341641630305591355977781918258357501522601447701034599445133089992308233343653497678737842976072038034594832995480284677423279696820772975287380569680390477625638968069495065141886877229013961611592852191228019819159942318320482714364759810527106501453628411467541150787061245379575919655286321118405119231916273285368298188102313085274366101703024041189755677320256294790459666845599985009131969607485985514772112190032613753038653437993546603756156428990236362940922918587209829877399227191018477317760841123847290981825923088955048126943108680784900142870214569759464894115390608458480790187782708672868808436198684747267037892044991659564853377982593233105525146357653669466397112243786912199579819155368604059693240775312338834540206181502163713130919891998477168542985524060651980201005860583846283221005383497787435968787265546572561791944552747745250030009514836921355125697712665233878943475174241882447836155251246499606958107520605035678750953007313010582307040739675560324220199982715553754990178613826937658843994102837210112817261285980622310893828788756665153470272060729607481978741050943249972296103504677218768396666031338030855231401445537935088722546932878883464760295996972364318862037218257062355244019221942412441648860995098160490535868833046406232487499075648269013329485972028903582786826278667595904045404535220907175937578751853765667734230193690117030864374120236584996208628969884004123863770694164130307134032687127719346909161399420818503013257827624419109879211777753102991585463645988187951221862745850691937167695599108783503401206807968418967042126881675414676427113124839165884779258289665889436420863896079989179763673613216916265105070515616039496073201680044484884796002115943765136703642823372044258659819829643745224716002366358093293445048030763390864270265612405197473840121346012972926124810851968484284763791931688430259095752397114704211455339632188474704403743975054543606116782106757408152132321376759767884144113663999346196467334230289513381320077216906870661338559079071492942773142621030172616140777896063934472656062596239004220791234926362261335905483326217553506460254149855572079284642459396202387233714240562544414846950546079380747304413303183352759000333387945589557125013200903193472246719265953106739419717465440666772155236530602199980774069870822472454100168377986482417688909805947945332812401837969126167234919941159677353873078234735809694482217143473636901846015264825734418660381367292407501723534747751172745282024461735902328480396344659546531619608908513215095377412471032946979720825327176217266020095256321657345719250510818853573098907598821502915636675461959249917943777699021939594881506566167502823457877613979155530680958258684416162445527459514982678958706167596165985225411536967998611831454514817669572925525203404773953977515878255418833657359152684559583563845719585178936395418228831340356150026504460301799206802867567896540353430207486245342405162407361173963855837799651279393945746489512197991837841170774997153780743281049981535892311726874474103169944958953547808484669424432818701162707550666279985593018084439646813243241826773399687931930160702864697555783520794612874092232290535484615964255426923624646847452655903449377685092227674999967354691353447067280814869701881157184691196838563185009680727489421517866881417763635209289619294328657089429280365872033769770594167753976442992359649930670409511113845535397927058521054531822028186713739503653879765697211857508532291863388175380921695755416330932715079016132323469531032665596228969195596641827782799430396091475182887351854471138337961223618250466230057327793356170323594578849913748937367784013016051850767084952445441983412973097812341252093140906540204922416786875291475272628725963434337394174966168723111912818787828710525945004106268916892281276093104348828179690453343619032465648031981984271764998309154963231919498103268563419156213353816967709175973951951297718945339332839941783365499158270655803633341760246948302821262455221859539582139833086125775669827336140097769360508771203330464074374537364205942032322598405811361478704705651283551027495941286958940688277516793734327234730602396898431245613535817331030503835311276992146326040906027850211906146438045713610784767947761454839496039480340237524665700069382772732421565456762026359095214155899229174474719698052789320217560201041645699125867022370067364209325479787775354279128480456051654587357126455090443540788798382679585326820403323105948907589844540013460617697543274356403876154134950538067981166328931170048080773440378585315334295817363616478882969268645690069420413518871552341987102990493646384664037815475596180404085112336479450212053862097691620795722144064281772179110996829608089865583306734570062637110177711009942796734848867256365006493581354372526729552017735585065527496833937618620319003679070772070510697739059379690432325254954932702935768318301735833263242621190767790743173480155025163396573983366593839283117695205183522633875200555797448059404039163331844716371308348855837437137514770925513835810375533755479707067628846283414032062053128868986112872768769960175077644082706940079534825234808455963706522754298892917740835900652727366082429161247358429056066969397328871949799987287645179109304006639039922568545117616000300802934231684239179909779742925596300666434332278731719798041413500355087638412768224544953844268532486847521343233876454394529783186856242051449139844836296207169290309764648345069783763488084648868471471758187580177341431245237809601798561148880271940477896562578407441743683216233847908585769522632121060423763915169852859716791880694779586071845856434356829846226176316070509291357573571088868194540346343678236080241735251648236452402637634081554767553961352534628601562578596536449948206703701279694234840973883654655596632494477989222785783342945616549530082808759808190714600504668261775610647073701976944354270375389805840410340794847017654075195381361491824073570992010648108383538762235558809820907413246616010160409835541398222138012928774003545959297908708531253320907492401829030623798888188418224366256099971170673767940496046615716116027886810643276515158374957448194360156087261116558342331952971460623486484766330424001677228545717611416572936484723929249795622626056732502106136945741981772924888780578843139415231367553000510226520839732926566733899493316065193844765887900500711502273604970982115458247239251979802702721558730563855898948917432659110422501341601887034677371794335945390451482464944071207739969526568076370870225291682070916289177497676006431498557135250261094470912726190911624409037362351543763834426205375479742946655564226266015882355811471863890805521541649183167734220061746661288808232859217149739956868581845308308322524634366427181507501720698283726022962038974773779789243950536680842793006203817027215892063857885064855855074345437191537524908742700513117164154468043049460975314767295890339176590302890578672187524347802768639395929217204438477998172304373930840061653568668366564682620524950189772874748010658026607071660390126402621980928523823238412716050557914971531899114671128926406279936287012335410079781195423696362842667611729404523045755213379268789691523128351061744153035933913378631759350608030603908807799005332696447986892193950097729870073885426614773074504669622363363645077856182225236466053899342281476286648452144393371136111508007454434967663012178584055036202838802002800795202301874556593118147780145407943779363552271720680972117312559725535264295025501091351996566320572486954730775053262089769851229076872032665235286680805514047551730164711479665382870409993587667562899263188828825805867634346901595720952259293028853770068111929712293778052737017582897431516789065839233233037823367329274129107558933022207857779123310535180672966774855662398167007172006299360889181203224545115713602286937345313694407507697902253146068443945757064428224314112808399549589997948088759275319280784432573274970577439696936407663303862240410057472175032349437918252157384846464129786313900232007186626787942672697882915283594694601820996253982451235818094992523375916955341242935162682047035781464178575605787417103066916989066853552208145583125504356932849507846623913963570901288954472534699257733307365124634718071858962797632796250601072990408019819824428679889507092114587819255087783418256533853790319959425283317925780153638875585203602740632449398255204914918592516703153496476486105236775443793556382314586761282146555760198275389718076071644331895661472694380832655767741406768984038498494343620132410128139790928653727210322377264221527715209871673756192559695159876793748670681345410435210212554481776344297383055237952228479483490180736901787879292006022162365020923232739288452705281322439141589176963860761203053141701223456631050745739810963735305667556920599941460772043815012067264309370336668624863167705198411249663628079266380176811992673957340032695793478832953924585176835619107585499365300602365416088694532169186604832167843893559013797023464643995374962694857478198587877091366939420637811114784860114344216909117223132645633153293172531149933814643978279312973596517825936209275757168770331959665946200106462469221359490178204393297778365172594687663895989608666853315023711735888777067518669428192335359804535380812196458413461223512183555020292080172290450808758159997547752796439416699143547126714445052288930523814410133606766733576241882318576879912012070783702431927973895839941493972422980831721932153274561061826312354982826696299869322533777203882338686006290054913879204206007213613413465313609260213499408467640959218025167844714331202226826978020836248210638173772685714810471972140728144359778633226633991362076272589351445232776699218000181279390349838073795108457159388435408559761671148646538669764984772915366432920448595477036474502031480559703811252605996082281969517803300055724130524206578363803630495390252992555398470328320654678540139922922817827088223450880943378879193090341764433953946977147551246410355292830625141431835264317444176386937377642941516687416424540490625391209546368593793482733001864844846610287069628506089907268564481966280031347942164995815737224112478330251385913975893871094686837371207663023643027642234696696258096428832651253384192436437970686192404939889387678086535720221775442909453874434161019913425355420252038511633795572421930748174139006512474840589410891809537506816844426414490446142257661385400122870887747024010879332899355110310097978502464378805244856987957675637628580020413953142948419115192216270975928593194317145121222883238504680293033800646970853783444082336457657565125103846679822666826910223932775731933595719035075274377853856273778477375873612948395534756656488269752455850289525337976535866257194854696459066518037748122445129850878686028645876260839807433185272999078543948259317661019027005815919804724639850545811033844924576449682457825500220355199203249208686509024410318047608298287204200072540257777165149509070986700471123261833604013383297482314127528147653573757095310075375368968606650713924670764799136721100488641132570256830497227358920874599830693268938356538048090535557903827599870091491513865703226365467059152601309100313028530813753293420024235509516344252519977958822595759302938602468391284250611759482034681576443548763056285289148859589139629347049096785411267708537847292255787187709982849115651194018452923540583826952571378583978648615542428120017820087771391529581813151205055913868418851434866931426346883877303598256466107239786940606220664692750653103553763445198633732320828687325567846221062538797399889792185532422545166287791026701735173393448793186968919342815245843433826469040043468602914397521025933526765919800836304260937775311554158859521857914033380360691397271638664704868328657776221397290635520224009767021710000257422035444274996836286765588330739764616755523740466684611989933539394663843987814719475887424921657343562672598820303507746709048914557207323668631739594609855966533261105100866073759694033489456716018210643509039081792015986456470199819125344209080940149768205721519839370836069510403742656909615971948461252218337073645569646098293857771737764465190730343487402974268611691307632122143640674428647412809037363699899372256588940874483068404489770625217125554492090557145847704983093629126032709800260222126726848383506679106090505175060621291327613612893092644542628764639995511229284677331901978961223165620194302588989931876050107257787975239947950606439410351969063105561539415503881869658845666323151859332167984166434584837526637936853396310426346577838134903694156724382156666930389776590306697469950620528261900156284936089591273055390834515848431319245507049867906797297870531781786583381582854185165245423245926965348864288028689211003774677394626774459931297576379176470987182764611808344138213912612178959355529701814749356621136491145890278998258424377325459242114229389082234409364898496420705958607416957406911736153133627886531419031545255764609947172475891907163749365991695763478133734367471427472642370465204279957082861424601011470031708446847841481099044226806851807881639048026611094105137506199754172729984930361788819592279019321464388543990758555103484567503808736537140831763057359579261015231844218269556115619765587299135697244882155852932563836119122306039651814773830638708863865246372949407335314497652781063860140263383470925174885448793207886732723447105672483619794494297183931593311010507799394339559534676130882837432644435830477969395306143691028042979294536565917868449386487093501183075637154140481994090722301117598723534641972286717709657641515216330237497810668858292087890287443325520832859955957303327124222800726599007028846683185977240392793886888931261739484539543613196301754111681634432524505141689273666559105546406144455739032882782149674651462831300753319977042672194146031495381228502161105592323631427414259779655057606829172382326105063652701572057107809775167230027461121894432322861081188251266085674190567738095007729923844875053705500337493879792681113673345806623786287029239345998706179583942134655695133066784360181896538103102249367313553513993030869192982545393065219593219533874523520043603956346105973290160629141148031394320460533030835660014499925628750751478568949072344499925621364534202724689872127167173878375571484399576292951779482920932730099372451153358717112818327061025365053896400249423820920070963678988776651847746174647068552051326193710050845559701326335929485046033317985900278386517447987191572710110780822657244081796527435198218405218720306004530069369647471109728976992796603408204091368795615122431298516268492143643126924731295201465891587813038955209889503178633375817848858890108926323002754561606026291054481032234557260015520292532311572380844438455715852484484417852411096932482006057597357475559847062150202174285656609840584261139843015388840916130566968222271666108344253438547187968561540329037541544803157539049686807200712121600725132648292089336069689811453947551156335785776270067758233528304694862966938535392004277353073812959994680658167337668844897792934135028476248969598158086247882458780986290362971568232575367471978826699469129858977603322660386065053125593948463787877582623360045021979182791510696639013332549573545128445088882497957796227081052843752507306841554372618481307993524769585053668765181855682255833134655585696883958154748013199259461025650432123151120884387559923081977094389841608603681607021697986681401286645063696732547641549098806992501429763722880728854447778211953117700190972358956495900520524202386582484408847823779940010331251135054388973485999520471090824488872541816706779777877154884045459678881193621164879418763699116414749118855273953101640809840177274379874142551376486900925207548194828688567315876116176049940569395263721763965855609168629002625985283150508018629591009266721279926857085888265470827712408008800787758981593576413023218784152645938840615719066704053196417509906280564273725322977670641108738012860777668653275813631336028546866795914896490838042208917930898512634985663683972545623689144892279237100302111640672694345662370149683431315129742471323990218128490437270235829343180753896334505586724593202309675343214471776142864017170417186608460072520126857398774310933144973215713289945488866722925196064732520211875907090244836338158222130530925959715953496170537600003110625346303444745283707945923240787456985586573575388186518337233191718846428018344565683110412150352004845389205036774208938653221223524070399358385873779708315131883755787207251266426835179334024038933414121120558848715522019331400643341159624336797986187777293490419350330887252631662113710676149876713049305800550055019146702520621723915086846053937254376357605224572412919583983715347606754776225099788960269850305177353840273745690236239772104036209985359380420300991442066149205920396712017633975432236914921918869423228440444565900665904180779282059985839926625284849384521503876249027232015785193508697929125263930793761430074556400586624315544494689662018860493104800543005256732719962407172414707834354719470350438129237305780262007914847746379420050601602865479008057691064808360311800433803617136024511151608000978104687995175489406880622733711055768208087739372110634642549433133041282716165166187847431046812545514753886660809015250620019228643544398975313713513590636121752773336925306654826268538450495886268579229992428062409585233136391590600755762928182868862873194429405590572253590872387543699220794822849703304822698503143408634322162297811138541764070939510156161338120916402396813913690002621000200485088283362286066501842196430164595695125037251295619699624872986340724944551791669941333322404803556395087151160658233830706640787954619930889024860483220917502874400192316941399180920096002769863568647147904766488282710174875903141174742668386444928244824600683468483420914951251146295845065258380658739571734017753289114380480657901623160869566784252754189528760794006288984270811171328153409659424193191521842941849374979354403227326141694142014495264301231466027909103965423754325699453213255702531064961353524299349874832765617513364917976001629867866697942529680720854815541798700175116045166700601215154663963487907496698962292483498365463217871519272621840830117051819580555853169524087024312533569862163626347617786939702556684868671320753465862668000392628883852197347365612698991036273139222553224197102530554868526378093455484577394055596276548656508804499898064489139756117591877676007185332853454074551176394681155890464731443601417725920310457708688023269962850770902674556227069846153669742405955632617643462737308343254808485512499305238591083617555737382830207306939841881403290913491641667800046335548344321439296509433865728705213541380329500916530606334210180234813360671173466916507834932674655737385341506741603258222472910521475607064505782404238500273162344888696248711604291271362584658272842687452066205722222797314610141186349810035300147916252363944357300773050244878515842451371460673307042104342472353652767410652345930071851504706522795146389247740572907003331503897771870722541299538338510954934889735809559243997167972607402513162310279999585574420361316920146876694290520470067653273846960108082977003700983376208685036453611992380009363597763531459962999251969764621755860714248593443713546421069554526747808955852686390369192004179621158785559801221622115712034303772208819323215383644926916591096737152273690564210765273236656619526624017187094221144355236314467316701460042133314114347541012030532881588391124477007043675002732451888884348321627774366594266326989196650102914672235169767388381329904737449596055296268712090363091248814451383366515354317763609602051385690015891722352883771586564799842180258091083411629664941447530534473003181226679050911109964098363837828698034691031699396640509431766759435674375068986203894062066853418650270017018962044413792459573938499771805890794322700757645676317912832650337791628944680126593680987950305650210928241608278032913956925960145189446110401850093765726341995259259941645750752452182625823599295886392679350090924413451480327879690902049474265815129924317395389687413890354629129369733461306247963198922175380033558988494936240088968729444963695204588771427232179131942770859117987957011991728487405561030679511761907642389662330756169910073455218003143751684118944289679506542341383254471185455968650437643922801342931343325899190529328977994075477975291689280758719750393726039216097618546948773572925142646287079472784253986829993433455756617921528870894006139244811948823526811751780819031519044624156969188380267029416645536435110236853463077971013673503498650353712418110635643128907180717755165375342119901581824768110393548985857756943188298749007621550589140147046988596467596870895611315789912216028975387323954056989090133313524960732999402563231990566611564997898119939829654311209392947618427127474865205816761110031394938269391010791018905707764488592602574663292088413839397351654128563166638438897583747516545012168009043065148741757364869987975214252692775559698078597027265731515621021606672369233877803211293494946374257600068644506958320369469423981752368551306503056695169390210512875611483175930539571537066031770755528882834625063511618633833122457881189480058487826180634361839445130126107058165787101379177731221302937159408627279037149371465621681085007027457625365377806772888526955833710134236095877735270365360916874872136337257875952279460702155384800367994964802510922674763861051870448466564596042569243495554539156678140992798067001322975210675374651903520824551759507581705285462257700510395652608425294777414438546755631363399733982890837482768434478457284689981014522365698553215575061226140667992377348371849136396714374057733297393626113569991781482808607843152942696412938301903468842607481620984681651703254037501147946693160894377222367690777258497191433057790397926360810980984585668298944302696782759852237229052224638556112042076094061106724285053409867871259186486465526125877233715640782135322806365477055180627230769525967702411909068930378417139413826643993044479641358269147503497760320182718496112317005173537367683684683226207141365707332606453008072289654841028642932233737729288159642813136867502314754655845841673174586275563998943288835009350229009148500472134287506096966133641219651289876178317473831076976108871975205868174176988875681753161156478982569503552198866022301334333070485909830979572021723877223738452402265927233134078401792525200270050250855196252450323020428320422705408901297426889112182473350597027060288870041932005334917992977195509183210428349858859925596716987346919978490467553651931911694218727575967724358510777029292076171184446260257326903652660470226250933362533073554141562477458854213573573083274289369305662110435195414591010317763236060603255744968118290880130578141459094848120991807586035052820772652822052761908337673933324717912855729667782284596142821225274456130563086876943879706254011763060793460281015290813379673666097831894855290910293981472908538887347902382022512221867164716350443563247259045622311742033648452348431849029722093298620748743238751233688426895842609041986429188182137023139065475095796646390678985219013073835002521286997224611989542535242218049261693916355984776212592130541802765857151469161092045897614565228935217155802585682800750249576983899233936730069981785678753457059633988343847940828387057809528413363881335633629663489320844577445220914898051642831867612551067357454622015463702120395771125843126488086270998214221615963370031774394208065899213728852285105247497325688382453195235539220931667366371752971530932510032570355780529749904139216060770622837425666511390760448142078061684425693052146600387587800202166037297689404197194589562922054764518173773936420851218276954374303488917464874875770183627580391751658425837098743964044661293925455931047405497367155074724786208885652702448620089007036374480646689106242135546259842676882478147111226196641505752414262327463362995191965913986002027247120849551094524578732660635123448353519225092619156558842081392601682588505545876099669837942066775056832744900907007419269455665322696389925450135269534298413133732551878581807399479289779757574619419255219696149004576197763219462731731617119637055415917114521991220777871692732619546933076955435653677237066776493168263042722362999432086415160202648559464176162988750056494772853593361626465409879715447685222447480703798676322954110718236578328608969099199656227041246567323330826258537428461192711601990350963170800165372837712005780272030962212428770233995635963149748940215904044905766554152890584861865065933683433511641548268740108755137628082353040056891819402900412128449002082218579376817474808076792273889017438975855849095170936679774961036226885698669174443768681403128142610667189639158669890357361473132530605802213094783589854092605260815232363650107852397430472012406533780143783461052103453056266467786980781133795830559599010880875254632246058741207972915075216466014082777637739588159530582293490659248815379381192003856963758518640632519744968591673643425866560620211015763380407727448244854400967199739731932711534962958283484365573622869698773588945787498291321737838959709830116331301326832859653939215504045470715915293835036486183722336134512641987151739618748752017836364411159389337181618285385871748091479535924865161336174333232200788429291087609538645451403571515795719480165192535678797595473618067241358401006394454073868728787623328526217829982938546053863810312292014119546981207690039449357554060436847459878585171725849999239128029229399387290095505384594436956548650320303531151949282351438744513133577629454052459375938420212446457311855525045440976093422859147060981205726768616798990888999981471485115262371565473565615636922275456519126023038165011875089876521223522869442229041400922865518837346506750267587404025123376660157462115401333298768490664521971985749669991886472136888617862927130185288476850276473590581351243878901871658427703748148275592597329711029087902869237295477577571455266132444307364188598565528694841241364499695910831376555723250302890458669061425128555913688406327721543436622945263384227447893218556358789567398162166192348082567068790735252813826239390456683692584384812675194014911630707372225285578166036351997999306875394095455244756709054396847839839596492733647878981960315313458844340577581842494239406853894587776945169858501223228703026414091088027019535468815444082171067278513584499029532481755889421015342219464747431009452015850289471610889040844284306576123803264540612867102849849689130021388607559741134387959020498632918214219663155440509040410950035936221687287232292637469888766674979175752262961494027352174507721860278481409840061125321935810687355394624145064442455776297673074000817848331894958724536045911644936974355709283799153463721883807850221943164533942153997856208024864370859226135260802459133446551888667843039301581537422999817313763314869316910657471790693966370812182936376583756809397175228465231309074344068288064780819615376280747893650049848756168665277492601229919235612229217243063896620868955143616829096830891149488357837758466205428961998113556548399644564791024014718280477584478394555775688928740893418057042256212579164431642594481803043002777173346009351830257151013377167364869149407431137943513043420219104559958670517338228956552807579818398754059409678087469790884793332154289282897872071771892699682272980065073767001161887841954051477100529237311794798137058476178927983055637528223167687623358178216188541510183422805058974030140845275824890345658810906907898949069763798118814751982167480332159798876205669505827889706384318261029092926764765685363946323080460754747394747634323756687769883550984736983010911550979165806476038171130797188364307366664326852395707062605007314143745931425075834810361524468153202358155042870007501220061218274126057871720463437168274026265327906940131614701100612892390746844337024265987522549499181951106708984579591642750802264059829116375760377344129115704370503662869724384793782813039585633734950773541162673560928590439715819479671794196167962892962888197223573703802143145681414712470863955154475951935763993032908141669350656223812852398938037622585277480075045644363556253557680063317805636156472724402914009383418332946889303362159413267225131272474641660045888324312066191923272128288594007155191107888619165234463100666464019223494320813685850148992276933138068169737024257225181894306527416399647953041316188407559894726541113205661003429437601803860479521080256684358745247610757454323892047889344813414422043567652358351647767972190855405383978888650829407192662079895442593005110595527945988488343340542582692962219725562205398916212040329732803331650190816732762215326800902237278232509512323872475907667058518364421355129942783955929501019508641691524937609370398660159459712248922641869358004459933982886664000396401832851043349571915230194434271301890045523065736121688433731051666750512546508985407975275665720182662972867036640498841687322311212183418942403364647540542096199631190322823284764486942988509800312663813867037631306091883282037624065321173328755845139434912081973380385377058255456686697853776264899716880887391916634425295791656096098279579521165494472231657929202976136954917435618009662557045179392768626345763740990009880557155605188148198503892365073280468525052781015375804975968142046738868166980062547848955056785422153345781668602163835514085842023704407500274540383219960530222130952002944130582435906752485462712010478981385536352897358749624986994381215897011202297808728387407497160770298943296860502883734392545562798642772298299138595584008997080270049293440181234763927158802689408934747850307364622086996839764621329100121633834753597703710354853801023485810362434193933113949175178360090695800529401914959418161073962452298677508098730776814976314399280004304215935444706655938011337112085230741691749035800110735638282893273066047884361610991687997888285198931828469460878148676845927139439938874831462958082930182420872193156938736784042358939892505622927384856091422698736750623276071426343313609064755321112887354342009982835142446367860057686335549518380641946500727552382328227091083919823935778308149331353317095948735916809325256081443067780598301409286646813708851627164419035905409461047416733446512886028831250784298749387101662632949658100659747614548650575758724982239783170277436993654396179758167824824334116218166386729661303542736524830368699994284521659167500907586611720197908784019745307973334284463303183094477334632330015827604681956226427300562208979722899090079240092635394342854814334794948581946618838741853367464454988515813057734244710181894508259292431598469044420307259466243399633152560651540271930272469826044962405012754988956200579138809962077925134157764721137456056882319052268962739710509020201063266924396905027092471733465981033202102302760370038406898156419531003110673448594386000256709328517095425109376602469239558436292100729805468926533218622368007784231204057300043620128881666670673750752165059495875786293488028951579491682249575349659343371260553094942817011538087113965873586234448264565750573017486747063761125301923078348278990202833710352051544679213661971630230000386726556774691760560124782263243812311323042328742688420586178012965053275538173314956721245495371409009336682819831165666952085563891426312033241969126646595828308115420790441829838221532346078359822553240401422793217038476204701069313454062082961956777880739346461128435339740639346740192338827870128020627236969855928331722934306294637917715479228200475472042837137677456346057539887300603886129253267592941748969153799002887759839818765219307140042139623090677118284298483188116260674901339722066106014196298502233715875321323906474881021077632694588332165954775616238180697102147781970674301797902783358619012127561040169383654684101978221099837676988954286368388173854223846360976825808429643351895894448134390252769371977731386263540705610700826028456039169300630537954526475726021153389710814481887460974687727466603127973782359911854791397255040966880975862336807111694075730898023177844362275167377048432899688455002819375819554689536984283993538099618473870766221013317290256169394382432528601658603246327869878970177135120732036768422121166497454197154400968691858891675725713543483291222199183084998906714284327738621961261438472173889729713456717927445298216829673584393204483523246817322067963039225719931976423894830382062137740987158086661639661470638179268895575533972493343075533590877960805579645460372003045774867715942052578396282631768203488794018315365452688914124154449637231440361256661813136277888458647639531757430717806645908880937959791709208127675366344352747345399457843073564366564552369121449311253570472699009907581197916375784818041462911044897714217303531420988564588497434731912169278338075532197535896982908688237788816774142632843991624054830418032149790109985291175695153154482155549994210797084844219347631782671055316847950453094938570592193955229058002963126648762437421054103705034575899657789330803033078640801942495684233490880078560349083815158286878934366340234190171709814988922889736613414956265061089091792102283205875148461273135893290682428007250944772145244571043391707342898699250173707266937790065348872325873495520074287224386983177287788731805493739827927566646568955155230868703899344779084656685577714040010270960057128243742433740146557904665874632119696480450544409710347899223110256294624741047293103485201754772422592175520053701802782356628838173305165287726803814340601644625045739064029043727477226314760579932747885463017725540107837884075833816844377403343847988939451952842007085855332195517839645927216645813688979094434019193932404604900143429385691919064326263558129399118558305893205243278269471704271741536693902525489922062831037645924243172307919115544347767552771936662702001056518298196259924932980563654910328285686649866722600183350213424193803558775474834047915379859902370330549174194845157857677123602704643662956242961248077593701846609192169222789863868769915979054652925720179533255651049821477164276265346649438055015738047272308686698412830629806880340535494941761406081986865391519309012664192110796514117604106326835909186283679944518195595277544553315984767424394390200437834912400376214855429840281693937570646365536962360628430251506864381610240838169558492268717806757628793914958105289625754797152262906482035192999229836242767613208770033149521317281079367235392515676199922313103737309127402368618431864474106843923465243507406263154380853741305056794499870695301448586454479076084417963255266408711030559130973041001119036096245932196577716835624141427067436916623230896215547549151393786978699709588734975587850105752450652716004869305504140049120077929089625393557251983727318107732409094350654243352767517023985117674455301322767182979544490927084119042714504278411303812132180294382581448964035432244646770530448141653047142621027821740961689357243697667071727639567458433504460919440966460101093650704585607610265763012460293289381116258029039277652839680703807281537131366632683134407921629947147476032882534659566497873260592737998645794633924795569712906462177156906691121186657053366835965639504209919375564319656771015593855036411363998779555628441088600570891072730461370875755845617094408739269249958205002087362242046821471591293527621783326834925264823144149242710763139971173789962902549426818042226813977090047932473358813379978466764754810281917519455174404504168475521420150336255215678333227395152753801613081840708522192047218967212035789954251404036823051263477561784620895740711498251542157077936691562407757078629611155880071961852384415202034563976839803312408058928571647242096204820620431415405588623972286519232107714884821755629794131935229293705166996485635755591172968538211435706824624613861070856323999863829255678868971657657856593762857896676366111370019647697472967183165617936409661641951351816953992090561121028073089269599289583751027937917094867870791277293120833738523368750827533338974489133576202276055212660162951243061320765474343853118385224093103105884458829156137727511525641856906048172629725905196628555893837323351093478657672786455168346416613267540406713312105654415580055466938211257666353224792634421151493902447409017768742908911009328267703991310907233155267796606527179380329240407611182555346020310203581445835058831017538464437503465393556554638430250398135345248227863367475995961709052595315951111988713573486559893195087951095473125741847584014340021846076510740514571849049650797937070370698183000176352300238498819646410376721320691973062390435704374957118897426592185554543555610574861091034235256975508330152482003184469449133045287038921458483609191285370547073346205314057455856137340412215253105006683018710527756216150198868143762479343971541237394039280619995071903315781308702034580986086378173739394163652427502618481556841182767263645581430004913333581088467007035624910999243764760978055383914360974608780423198590381161576988336940194437391430318474824324937438239561808747691393873227031902429966085976474601518179195682102169877749381892845239231100705871934931803089076266671155715033304155203079804228179505659449112342435741245577976380744022275877464112068594907589937632650165372283841384152525658946503400773341301220001571960349418072887848719342696109517439665479303596123310800148189753666971620277977419304143034193172200680940939089307540310497024356137536471407277488661985954200085138456477780243014616230949309811279967345272302646634478878598410004196883388279021070476898132006716519474799972574336416249438211714106442906721162440563925207414697617808817693431013517019995257365122998182955806806111110588748823619419149804396161922414406039751773444051057881537943565596031594625799874351969099551528901173211021698370495616768726277725749964428048487187387043438675629580988360761532791523971448939494795398254334826478244152619246165210997384819382382727340059753811967881044425416519227967817621207480594947406456859511395707074019485107915470620140079206052456424754529415042695220018159337673332742223999482241296555396398367306948817328885814202530927434253729607488349149251496028302591484520505809056810700632169016663547245713686305812054212178053488002077432119662427061492598560637289859643720100899546819577402780636151783772055646249601899154793243662034767873427320294138968312698143823143665052114696025607525913671086667421222000606706784238445420331467616920520740841579382484160022224545778962716492673188388347962388698482621383197512206146570879892485498255443287470340815515923867570243616471502354339287778618764751492400950405443240869694680448534562657241748045032187848227929607749787108410903622300439792542616232158078496602071835855895281838996275418189027151339314754521896653123201709209516911467918954729845921812921556241204212848636620685497185706008737481659958072633677817531642365089235784863175860996377214277057664731974610250404032668193387375832605427426903701285214487353707838587793260301105945154833199663213584185332055288800348289771041937205674257225045711583237710186591338370259131989827347385131605424933681463084655831318881068753609969697131363185183640584161671423213825152033150151523622807363281431118493488772907125895230355742703187669022570688389162782634834629089193180170394937498442551389124289641220573267567151646055164974727979077443048673528472862716466162040997053878615792042234130351519808351997206586199599911342884959152193175606457216495778787118150687798184972806565530726009844695911612736229814702249352076469371328659356557805384374080249996331930295915657902293367613988118240140381465597275371859982047112119160496433984708513389398266700858300064509027588942520313301968488508638238709144469127724159282123202396269021259274359261798205558846868839217692542058528818263304325000310349246339205247638512472505410522207941593751918209325808388727313328591909622420767138424865126833362257808116352140365678083445496553941368780283270330793781677865604549556169435797451626656282902076009361720125459273533693861629094398856480031207850836066333567960011964124522761543242320861122414035517954766429787761890476140484854795955760783003252807225858839962802056191985069222534041177955232039547984322604404268798932369756332083014007874201477813432506724730383327357357574082722868378968944984071500874938307891511823831210282267493462665178026601268243942239417983287541418480933040049569130479105010663928252080016060726885438988844180489983148456134956730829997525448111890612312521644878291560638862394160713541696511117904169042951410158125459847191094930552375790039942663021201461684291811436790906989908905430675298958344360034034593125479290398163413152687458661568493730885913453072137490163654189543115314617090932405496268150217873373443695807282183472605891500750762347359880644055121903939739612306844340424124671783571221999192080205122006949280543574182552399300071022452478699757581079816868299178561471486729841134968080894245392460246123253151147461431350929930407137170298524027545224366015425359081232112902964028772156309876650458863615406957003468396179289528767935030240256308294748219241306412212771755850502971164499969681518840007732717524188146580140953738043444988913479639059023072338323950200999936685316688371963248771492513909265557786880872479409709230617055810150234069781232781173496793256947064595582741502550031318946771969461376504362994194530078502730743367670008679466523506311715079338985404307847327346685809831628662913488142285912271878637249569285785600040708505427450968622772892895596688367254916951674578164486681893776669966207042278609547801441699077950379871986919624435741358700532760182746737464514280083086926587322394194416566697356688739605390906239371913427819677822380155105427696181271688161246673375803892970360518745896060496382767681539987013954118454239818861096679665157107402818221417947734521374132597430288341380820307323977098586703492000759588133369491755662402076204580238024045028671244407150358296645690643055936945346612433156589185598759163111953767388790220835290987363977969709718590223676010287666634747073386247560269618153782435228492834148621299760162466045926969856949512821032721492726642716977435267787390953297221973045514790082456020706321710655931579192440592000933408778848311030895582194201564785362297495161773473839918116775504065717040978374739982191422206795766391766238828623175158280226337756757435250780012576570496176058870997928131364487038843673766255914144651829601231406143484312351627147312678197150567753575780422757219465046529536151636488929345239257835329214523146768697995262705661727866545233997813567049843579446401254624095970308452800221740057159124098663918637955654183312103091278950408439313722640982627361628922938062478816184478729635117875240651794354944357063516015560510747107153007373629163479297043960893224279981448491071490729592421052435893990719684091308130894618593345012966904093884509191045554562348067183800743988459718255037877888665562551695446197550323295043770438242837982011472201765698279670807191493024533366714827425306806518893586642692835497828125347588783518435690249996672585129702364319566434200039333044248135659223484157593187253799527776930074187426905556420967627261092693590057155922905044344943118447842030813240104075776797908769854338340278450360119188219236910092077357913921909997468736298155572622023301427047527258138192250657549031679763436905182440614082539148479274397135422448216286444647987088907366813410500860441140760835121920646678804329012597990809889203084821117392767217988725771455103833993095446502912164046807352931363460697427111848140009216543586268981176335604371551553833851310520031092051080622927895403634157502319238278113326641911006511028061608449442430222949916855460196459086588349530519240688834189061180342259888160846749673806471230078001433904362267159404795302064234820178449401585272691469307805639380397189054175972959204628421597176801236897594426987403009861424615832996296154439465257047274324916435055439357893672202394944485223094270201536242459965327068035612925780813348106448252559473398912936522290988671440023246432686995645860654034652523255607579543374971951694390842266694751521979256229302278277102113545349671154982949454028625385977372253018954275561494976029287419976987123002021075389607552792968386028857840122473499804799543729955252359009949133947052148446617884958703454537156063510973870424535307782475878447321480332450027500793211119077557470107469496348285634668595329787685332375438007254310669428713878567546871914764399609597387945815815137798153198961988650301182628695273974875567209755732876473723926174586585344653357875264593139579421088662029603189234864904928191883751639721990454255360151731573410806495960520460041709300534549585306892236171900560861086476181010874252239478503053387486136080367192436928485995140359282772163357569751602953294417556122918534239810441463693278026668980330762028972792404510699275941199629504187957803073855681219132057867035559497713063986523753575224308525505623152541360008372740245578537954296639990876014193810777035183909294707323272567246644010457847724122256785884395902341704593308715464808651155990400247783986511591854553663390875297073585220116487970857337284778749510647443595549153253038394629811306870823352593577457612039068274664327203790710459132934071477924594573003952485574475040435726307004779711590132247244430713812932263528870059493471845282575684407065877886577572845815332018263331885182746254615981362836943724128333894793756816727320973494895069368827652670164943758504342717165649615661466559660211250666143944926567842270268747241715742605084798982539049512819826954916408489247636260798353364737383035587455496043739069788149660957028998185813045416225250396337016349585810023615960357309771819074070869905450147743506502475167985653063227136947925714823713865320418603904978108632794825320390404330778794493213075311171567450950774149580179224414693091617904924173515068358784671503301529392643283784173941482889803659071637748282479641992981001080246177303324611735899935546243365464276574970204524063626980367668790987698258243409373645006090161158193210711816760867519865616472483435932312691994297470941853806686767219936339019713771179195672913643480008852265919627944718127254160168147729626145672724024074102086417962971923068121508026753378960529901218680185753152322872123114773329462746709036314189501417529668866991033725651936639938541263977705908468739807891555097553492590262039045247539429994483957152909632206943831742506901709472544892975052630880087481719207005239395734935470669998459747665847016482295323872435868754090702984063293336540421323983923237151807704666498322600325863594543810938253070534322145756517654366877630222727998612031658756075176047754576928632369038825977988126434635768332668831607769188362145310798151352886968809998054249653972153036086864991522169257828391310316510860199324431048895019920842427345630280379938827363998170981343990408410411611164084703886992020501897915116184936804747845396771172795877452002801603010654261191063575565398530660411275888819481561612950604589140595074393509309779662289500738198861975297286820867132753229586375369820345102395723902184325175546400741925267750244127715146918210383084441536624791022837910927205023848861789440931844935704221717914163704390683802017207317872832953984775610610371653498280556497510829991711536326393473877102743493624394856085926457966467284991133391106815756514841534363586420313173028577731698956514561966204282354239523092917655254638419401867635645599994421207647225716771631236836399575846625077030129434922006039309731061965538222165795654113804694507603989985981671994015380529133279900743186320683760770085651177857838673583031550498378433806127738662777380289508095809059045742279630283802835195365126643691047463553324474154463843657239074470216229591061757038292198348610867851811251017160856211798359586988356636720852974974738503214601413974996644576930104836954305318901015988731618493787481321439464431965037007028529162321579503979381098190181648135276468477392693073650494662141621575040421808473015481687139503227931842442575106506259204399295988959939542698319851354444527603300722744088993743245989267450767743751735964907081823890656555756016845718775229228310407848516861399477723230935880560652891385195592949506432815179764323613349376433460433813518710662229606943982595343349551021386876203113227078352924043007935968749099726335799800042386389872115045341211309722301881969987685943736356348119982958418467819864520175930381950570099227469067436362432851871679939042514362762270341161548461779672319726782395785297413542245589402013280700677264384368792624878586322036944216862079261511698145095508089602735895533784754073817521850020520341073797635418131013013098738693689435608107710672428443842258795348486520326200246320117193417504790022475260212298143553777392949217670427071601038382328312725448639480564672501596543643458318156225450421949626283804743140266226546568507770373027268861117246448895259945551010071888140622977921353718744214880475252578476633041746819947378303712705622163489670678456429483299559297151711789690486316715798544928802016968738926359132982239807617473064190124237021562086516410820018644568066397720503355940242799071084224078431039968813437004265148141088351280925666154708706768398975209094367110141672981538154970868700767513958338992040698444636261713855542528051137466639950081583471946292002724395863465270332201503027082383391931105323528673837611639038746476628379493774016164088199743370145618584775391322249678147264580536624747648194023748596815600523590291218787210802099040334055139827702434095071191029814133835829497940562017126089418940992617036383969460682402535816523130035662257280543554898221228023781479480307005837108675160999068980272928861149481875393783459607840635389442260816643449399889470530072137121119508352950853342464424697567391127844496879666563967437041318363927575007709882424767924171404215560156657835735807833695831169939811257482452093322873562444377844458128601347383382401866792012087636896666383736829396374487692969667069733730584717097275628612787813543052795948269129747950034326717442427051099685480676542180810295443642458017603891220937078133657898946997375175629787794501644798263904449669579619347114861440380571427436941091899022246002727111275705097346088966616527377821184326623704986329019812410508865470586215531424437478225919831275186658468455342776973849139805612827215689378348540089582458718524688751075126161477295806089161153762986944866880001471581397747369358789864968048121364395957595086569074288426400125830258620511410417318525825527459340106314837806174672768179699886040389772602759472860409970625578271534770840642886871978902975431283322796655001306972040961082873821046709333955015685153666584460365304428653751748109214235606465097792041779374757298988158201313529432133570670536284014335444507762699243689759482486691887495490459405003772347135121831611222906722873028191643032271548991299913606531125166715935666277456547664931517620200595889038345343987170154704106352477710272217951712424608167477518462559187582923819511654642283801281051802779834132417542816737330909618843670602087635491320712238858817282875301813401270844117789591730078155935425566288025465301043011018077391589204987256816187819067575466813185563550103157170518931528939255893809209916843311413326196700501539715491963270804012462089542639647455112621942225450823898290244952562592858226133526033313039353664193419160140620843915644106471067651274738402845190113872140530341644735599384789343081830824604111875334338412292142583825289455149619111646168275880427162075254925760379806586519264022537345426910030070199862577044041698119863716516624621872648991824963261431348519787445823238784878468493271123556551347011831424520630166608689233454961040872324754280667234772646993682542860564857762841632570005743641856258424107930330428029655151620069143385995226287775542857043263488260930885786525598031829765285780976078377585405362608030552200323598155864559902127876381775741202959591959666877514626683511723376283268074456384422079289121689045918430502560726765298854009482967039673429409318835288798137598669055480977491449805016549437543157595718557266980470232634800358588382930165468654155645742835567515876004063691275330041952630820938092013772433429237293349953674501378435740271081428747823736926100705756612419180630643359841977024347026307168195017819385479687337539583718314322365033080537495163981415074600254204493865537941626605003192435511177536829300671742086764593478138029902517170363861657521925422185688649279325616764220737960699350426072501562000647701820292145692991294471490343101645233161021872036195351767540433093070664437457364575375478783384970684091324523107258456846293290028212147469796224711030590496784238304058949632127128135940087197538395700595145881940646360587148896666647198642586163974709008811647586301334882837744344338051947827709756642137626732630344729017827705073145457579528317797324915995818555206848683344398197488678337169542410424754279517163006985274598918296738600213182675924343099102451611086065889436716762268885373539640875962559216325345729466558796037522413749536014350826486392611155982338224242327127531444664350303136464338056546035451349999779038490495580143508021628076691342277688017340848593130188370344969344849128841166138791496825949404175975544264366174616771764683720073744923115771506847524971548035409630369749396926733637769654756305921396524748801542339818103205501022778407769034233789124669187243310875109995579723585643240209787851417309891231564658651550918833153545858726981733563647579808543735053444907773931085949115533516818604274162714351297164951580666298804684283108935976527410026367902300814199756846113885430387671056785206039382899786944042601862908599630744400169871065485183824664046187285935643980777734077461555709255974464056354077648164966006370011486079119504641837747697615915746150043097314215340163030868737066126678697080321025091649045523969375532786391635525192764504369691981031856776839982866310069524383282330572403543009897753616715428162399868328856042043283967897259402051438090062947640584111442142221391230561186098550207150549168738733806807725231761923822836427900862204199152044740262991300289051832575117596872794619871619349005990887121070851608059946314372617127990721274913658778528536255655980478773636261456634908335368042897671575687111691432609241463145266591152693829780641516864369459694113202342587838790785552790235617072934321002651028311230934964986950909105495449593208942434895057179774706537844784902827440038204301760227658322128855633525260341943450273236090218719164672246448397825231138867857501872565326440020212577688202678172771386592707408369608994097711700990287159925371651166383686731771780915618997023587427461506189056693531324165824411617655268953088831699190162049363562646490046225732372695661142009573532641219131263517393838399900449661811062908058350807657834920291406951601680924878641764682903067110948766244050542805841948991730256189291929982586668859055679529218027589495860749387506253949780068310047448149312094942157051967028055277961866431301126183215718360796602569422223932663497201139061846771432773667050037745498523550061486084378985531418174198928696069577204182701426298366831448399679149692156431072215010577486119503705325202854461174109500361944936658824708691525728718259520672276513511016529934311691769915400299117692423802242748481681616495358341861716141178210585872009315546342086103745383531744579198822465545408430737463961882066378641004838631053088135508677508738368049259893562284000565617094251314883986097478383999026677139960449967731986338720357472980074424026228075326852943337337462955811454311134155910641768427550705303282863726414046923201354884091331494849391449240410874584756453602956688065660875914833144361127530953104996401632471447436778701456345297787082563122842286457637866578995123797091204478805349930458703141043111916842784365509616464550209330505908953730502267924756345783448223752429860329639200877298830236042369565353072630019507986039003437453171526905937814736494670514483186114736278552403826852524750233756364205204870639890506480580022455488101951210087404680479751508313490209003701780257674358247496739917187312053609281188078386947544031923547862936143882499137782605506590164103046157983540561619742338696108444118428505009385886288871145084228125867522949608419973955118956444857993221503831866530316659524857702185820674263038888721297696441553458207942448936209094437826033197433691008727625067793435384630583175332808592508134884015210011859685807661373639084010740751664213739819668756388402270540822195325760270910674357858201469325298086842974640883424130583899280932666185713859893157492636924070380876622211152362797255388149757230743324104449757502995608565782638664927303035070988915913496934258359869177018377898878295369441015346683985067529731010396247021827881949396759804753296328782724670039771330962939506579731778317838470000938413102481571985263410438494056578741697187111273890691894653996732353755012330282175547608143279146324177582843321426691667487767562920826908714529720123204119661407543049847341835856705562636888438681077672922259148454611885278436711795302450437247796242461822195791002703951033885828625096570789667978212684438062565830360263238777782278476328512373424502932244097483189554582712241145454883148648534322850355791186567364775977694116726737722870544477194965060349276563993522021895511127542218783845050878410572308929063892792927516316187200140713622757195469133387261694966070765234130579072270380408362194132271810588516803088163479797312704786162337741609093171113952899573117996056440270174495784268596142702906092975874650117516762512049800642883472365606564389741153669762854242797593801857587261751636773816263932220959838324893968018699885612662913812063019997440926255702481578458087720614483972679900084864656425523965064847129897673442747293445368984318420101921519739720394324068915100695125013536747550474633750608594998359375456892373179587454279838176464764076954825748595663349059678257829522214459245214257970358770353523641871078976130744983760554678866623849472572502790085496486367330757538160836634207323168101019594229239267472949003182485849731864779407494539821858991517374697106493188852144622372256336534317041828955866456459670570549448554334259486510780378630123580254548290413043917882997531449977304242368775421642123977837141041365046655274801298168158825997187985711782784500421177911640788576784151270474386710675335753731699663015021681426613657900784012980627398582281150575963748137352197815246727577430357579336348908271880236524466320369008483100723324542259259544406153815041524833745637741193890973132211936190036655324470853895548139804757294968935918728311698124208542594757398499672348733020155824055617496189909727458079085630651734077471618149228236592102516176863265175290031249344302554550033201802992009752943077584237062156487269237416028815835405682387289264939692521900285939439996514025851031541369216576484829210252705236190670202156636537380667409297272066195466020389659684563607427684239645221029896493902348819098079132019595859934617146637106758053550068049477503885733467195901534387209774691899484358386445010599202351546221883953564823580034114271241861028707780214001720854565909538303548773317708311010340591304889171802950973492834646448018576423816728089119109069004123660905599875776674580598427661999776103898671669925613590991946929562556906722443526601749415714691076746988263969561232307217973045029169071149692045433589738987802605944664657661528248940221811583465424973310711738511861507357803674113130018187823099436578077218504349802408751857852499214135413387600414781158495046188078098269678193786605053826588077104698458282067880152011834345808522201709144872530125942717663479887361200702383759926046195849570122157401313764767405123543641761241725737941307465805620975962915489531241791518882577655482746283556630426798637620292386869952278622989735629762630240771688943220587407199346064948923993130536164132712544754916813460512176345608707599011900329836807895864211607448154133225778496931615109246921772401384664042211618226948555972971794649536305805698310879695198686196451589820166838485286920558910643161899090595976211717618520685255194267776543388748552845652523139036664370761768703011983833507415263609127314972750652198774801434070534032343322483747786410314018176715384091516381612267881675619015302565723212701708804461095362024753610650157376219147680600676677681015859744095402326203244123836977777649753356263850160031799699061874649587906993251719195926479140516302753556677900548825170502589616235206317347769703250780824925213119511813429195807072438889070490781240458340789708391265996139734387075287337160045321065916374225622173065380790415840941277590282818360112534727264331790971911441863065570343481094908379877809728677899443264603078388809182243410324231677709066406973861361583764403931053570482188690752108754274951613624811877580790681477818133487097652805259635825004865606960982290613825598329933631279246609596667412056714302733865683478047040513745748416345026703463282664760749848928799780193508790135526792462593832809748244360526380059031299232790598297435235643436301000909323633669778445390339444698866974380065002811591185736618381007065611218912839452242796237159344517846960820116740559271317606034803927856597483705984218693425542662513849698432421599955083849191014982222482204132773179748684677769392110920394471341195272524863353476079032608541489371059238666788891815935973466529928704429254278758338534503521005843139639575486068002950963964342424816951449577277500583158680022841796055992929780243804922254227055736287817165293121888474109644566051866542221046902550598632360468591292650377728575234264075679883196818097215153240222111094472705463271466010404358430960330998086623246718756111396780931130860050616339766257826933097040733005603760338461339951390050103633865325271210737955248854106512386516030296979542503497314477604390389198535072700352955293266087255828143031787753668167366558263280481419450777487213378971346143138347557222002929353633983750645249520848426278508657430217943422309230624786297924216562212794460148472363802428894900212346071199313136924500972191639497962278881274126598125668359397761805119352995183049038519099774102546717213889581562437133967877717276035214935842667360201731828061377740990946884571611291821520422881271431012465540144133434134611025069925643116145624714585693331440213756468316151396078704284026674995443646588213071577760833697991502833693812961487201692295601937656015402560558234577518538344935015182661460153314717455507379316678201408871655899734200886925782296717470953475757265889680343959706183892998313192616197492922836265660172637222992291242468189867047456862554333000293685684497034087734169955276691588546446087547051017464612362174996804917914590754540646319424108575969005806755696443428191884059340006583050613257170347964239611754777507339629217731677557869430698549041698504397746765387107675509388542046973821700020449873101968718312589707570063313414029148412515334224901809773434844119952555350633120669075975101716166506194257167227116857320108582864695752849373588464341161633831765934780772044575662273817050006229155318585368880638537677397623361961961171346015622962707335135771342385631177065519226593869920321335492381903306267858443516146282413750404330657220748274699701005080355751694704888406137944729531356924142640806508569831399751728454799295074587169397744167778740784517543752857805931582349023432384864151241767334682738831191268325260469097068919137897940519860617246375603645056303946198341970076702081141887868888428098377352258297740628316475465193015625330212194158663176790647179213353951924834911796682784708176682748618209244660518914199796970190491828398057024141195917429687165641856996601454019765607630735140402343761316942328643346514902281762958626565490193612421705677112259930377117888021042639649222460840505912600134184766917627242044070405001066178398451531039449928069499700277978293159313750054069666840891431979078801747377125406112864675838976859608628531417598284690742576012848854507025874263424181990949314265449780704000511422367206450699500624835647920698460043907953541057478043165912122695410481703415880091312346135408086153404966352447800258392602453449718096827525265545584216483175640062924863347440043581703299825865104511864307796608587107880779046067008073236282433300529771873921913344369205716739866284786165645796031444405960856822576755684678879159122642840875604816226869163227680809552703754917352580291742642714734553178564064605543018503190087370951575701098998508901583315159349028187015748917567779252088502026402025896263194243485480775099690867032487243839173994668680501630472448808216611050939653376050450505968273110227889877348911020913620516093370744993737615589071459603174178291073255236695528041642497264375873472560050048774280438757908054154695362519927499452815071347637908832114661163231716947550371121697794187412418375405262244301541550315043363313737933187694465326512989364998503859357250182981454325032098626575195662687152243043595677671887329549151208987976896211297011835799659345546289651805012526606825571724106679257204074131021018998250067487572036640149017582107100470969370283148924675508358725293085752900162991658205385619551826004738256808061967032701720621430076040902719883651911015710219073470973228696725698242056638985144508715570725181047840093912983971937384748589826617986152083745627014964730658118892265508277793055095755691996814021171400429901130243405551904340939591333575433592237182914652521445771930574818482197991250882262242958935587650735156091563145727487881017979806850083241781888895621950756557457879515833900534435017375538207484115923044113409850612642070116141822717752591910193730372035558341455736274982841948519092693553774013676308773810644482742638428857448790859545803876951995627069289730204425495792170743707450580314954164601919171769852106647719930751904732214684733712314852685352642097385904420846749519521727594069496651784232223365134537271590145460622952423480466077106300655646683645249739481808279004365306227249516027308760874576055363974019432858122877592111323752970946195036951497442829113693869195552565131833984529946540344059623071806391963753724345851427785986167962535808172661982292084187122040818232527330863339802403479481279890987444442565339958264372563474732567612052189749053428989301354287563183345400664637310073387770318626441311321496122133696233619540269428806975139384757108920755458750581881838817191559406699136745712017831328993559882045360032680266182676698459157160352292286742940022871681982843650451299589981950127073506301315470533596352058835159155466277919542040183044735062665467240109899758796676344049477805816662988361029161529373513424132043074094836359740534402583052342623136575811565473209838656729025278712876901308885988316925386108675610064677474563447604095559522835532873307630209236218008665785524245334853513620298942893412496742497470080718358202423417042976705212235743069098150415527936359928061716132787813939530201826620190789638951526000290088317095093719056493479174632086485698018396489321471024267977941535519977739461634632286121874911268456462169506475965226137992409905170272051707166912666852771113482371812246475897336504698833070803038867293866454259453475583276671114587556994588354299417922686003245452187163742388318707343978136029354750568878742666242498771694029332779122668913462305932790579588087120439377118214654805212636895972891129477416539603545381833537035490314503669221789775437389478510778062365256395186533711394930484164757662805233179487959900847677825286151701851746032504047207848758346959639952520509378782309089457155144279618664896163559868763743330491791459646841252218868855729905873763903429615442380675037872904526267804166161476596197021653729978172713158370717951736795825901458824640943386173134702982484700094110220360711485460160975245898984462637867568451634534445169537488945457005060061395747940372439789470143489366500398687673021070116856965721107913733071448221718871659142964226427540823952379314026838946586674226878183542397184536467105124891756390442713265727846946730931226382543555357117182807953260698212914137299924918820602948053398570618460262711644407819099879225529999338866736287736883938455377003237561896524489552634672824058747505784892092565133207462699708324477394685201756511633051168468635749819355656493667144548365306982589747874618843270274045279127068514093929146784556812948803877147846051992964145557898809941041699135381682047677725371365812835423176415868606257259840510010713949556169497263250197229304821963956752691812503276584165824904563788622430039377403245079005165547950505480670442069807156503429870498793478417826129080540336614380103982431784756247730571586462116187128254365141447752607468129544394303635157113780723512047905638109528809766300607617714274638153147792483377711394178344358088992336726633139547112555137315370038584693195653605701979025512412817338235561562548815067612799439578497170767924781698317761743359895172233069104219584264345999411108060538035400171088098927991159640183041661359861647593646803719791276903770740176202846273177747584036074295158286382364712112052671361050397835745120206485532634340525485954539851949905140898001411455361392576823010103048828700865644911923463422911706057722142800670862223214006525840798203163737720741598831296065043628156652844717546051787253723471885043798819988053587811607320085582402751739195638631435604001299865029545108392678948815975906810198930318336775248189575656842499222825232391026477973138200487545248019866283639229596751751426110777514288745675481693389943234523952632052513285605815631238572025135308286751048734638236560319200623729393858156106398619574214847949775011061815950428714358720936537194354165640477750673783564656961733549042652853492146715488638189513711499956657725063519468050083003862796045051160329497977291193548454910172609533850925930900993217127640462246187274191224381076830035473496328533352996697729756225738822184924087857439743607383152398580303205619549888701982550623768852830789591221497674459583899823326289197916001281209885997910247881362260204431388328111825531558051839373600718869662206305347055382656132674747083633696181991207071290144510755025267873911047773239451150558896676098062366844084565607044173463853887392605546983619149688288033067041824555754857735237440527423185198655397819646907731822324062776381264289036050518996722574748048947041792844635897991150730687020589266007835079764904084028243370418898535411460020257170058721291571179712380003960968255204703682233092202178438829133991117363362079366889916585403238342699140796998456303057486476470962934145985187059645062016072169459684938130385591482346104999632706943579334067506339022135451510888848084809850562816476294688101624639168071960339537046113524028938873285277453210449242372184258952969950339919335706853765952471462636107606155045814989208578848805024691530237473997629124451126888204442615715924087766187304748993668166287329135835067668715200903290151607023553241258171853712871637843505816763114468125802206660397784664810722346581941808247396886530127635526265367922006432809738251303887669099927207712711254843415973349285779806944917663282178647640128709830380491745230466411246927738314859113931382466163955800121482317204812991798255406763868194650302710781715078479459797577180670344013955772139163414867764912576902687313626392247037576499480917373523323407592635460447428266007910874405525292799914783265790792757075287719662166757376124968537883447390173614403155180755225726955604724642325571244951462970159998638269707774678906050662777283083123706592722822072513546551799392909596770980520932754821085909510176011005588614790238277439197037062837861745887925921749955002186319950459467775233085714438455417227404663763593152620256145986781897519663376869785948205474849431149424944049016832857085798989035928148337335241886201746349094220150559882729484810975333926418451741723685732024142477632810533266738783934305329737130456348251402160846343460345338849973889937152030497168717351551525331734326466667779813175370244858758066757513901810591807039859720713576750632783828147622136985790166913395322449670067730906458711949327052341911701833570992470996656410613583118589939994545268894777715481899669125073054419339345778549575233250051820626858056449816673087780776024970938975987732412978590561264408209985058765999773002449547215425871331332173765182623280279048296672014965259637651635217789884294224744620941208996420341133120361552810010745940314025581892278504793814024949524156329160595894387059985796663959218119438175057491225221704901818177509514295684160320399732271502884088240435944195824447511523821971797570792406211495224061341872085067157556491067721064456048475459945574890214508081446091477899737791249639890640199851665542997107584757389478666659806945200125560564175966319373857363563244521770501443158369346490383404396662246477219501974156736473777994329957505027907827866544717833565712696496733633362126923276171620512858007581303692631481622723563827226236648436137976362328613789458708091589572996349983825048685501971471053928587334650095478007212778136677902548596902201477472505817488080150669841277477094279406087421415357667868753124353481423225298111107186180906436429184941325445862679957050553591332978728677096671534516334196721335889100261953991475789652677706230166329913839615802706659022693823036883901104975903172521974910946691125062538247061799224973342053149146240362369718520945097500930703172947553161452086095355247517692155693319068498158309769241939416017062371222959932793982645030940511088123804487359931589954653528758771244952216495868697455761227062838566998344995481879648155090772438590250722023051992950291908708743579428353195721117537842116081067391977628623405320867671379041716074931534160722844210884922737489006284954198957235437830430135717345101339552562281675094389212883702165073297866758520141484264272093263118812147313941065158621661973743652276796402385695331990682588076166423372201489238954585647124231375736336230099627603250051995195357825908277464788332474894160597708608816109892885288970129607935167782708314375570702971506734850756696348428048485627796188737053623353297763512577392999088274250257977305486687270023507915844531511412502772732945492353580985745394393455901304022338676885634946529009416879621863626487213932480209535143010836266301005025116353427980726791476270274268077678216446178470124351114732819171919531400268267211951723219373607464660138884348837889366027572271161257857643932084443541737370037932378634978760062202751531393086847699603966760641368931088661686325013882760883374623103736579504967072708764753145264840392375386007753154808452394839108373305017996592299197839571460601422296986688876574492439070233214256181118455804632397784450176199449981342558269048129929890553807115764258004186277820831094094412197963631530819213918860655305522824818802886367840484023934305101783868845712698805247918129735982557300280537453244158963971590204213721212046677604625096977273526270769333420356126058823527869420647796957165229296618049785935143234871988789295941185604546236856789427965514463435473352790772185884969845465667559309381638929664148471389682731470354078958475074555935680234718692918118735704252256409837300388896692703579220667963606540457220141013807401606148030569717512609331817795792596970364666607258067517839759590735233346114536544411459111202448334271520318873511664031973080064007821597248463277702138615447588352445407705784461911636582224367383038594250502525131165645250440667337328928988813551768716054487275735246878839288648998683294285697178945913188943230988182150030273387468083843872713634624902887094078708076917701390444143414170791598658944895655656739000541618131283922534361850068747148274783973956362263812773656895370603234505955786441316640818830442300908898229711253893188758221207707700886883166497737140838601765231735735657978819597753679166593200696554868664420006269075683687087287115742566218591803644013134252989910016875819883941704665999159362253986598343231674482836820532133553002561084957201491022683854862189290927786022268385603273733350933595908476115308231650377287360796723944575742189708750984978586259939048257949797787891292787810637715249771168137605152906511809034536634887675192855187803193256621294046474899745308690979336291763227106139326117582248877541115527290565341116779679138764519936681795382064570740004024670101031268531690889723103706849239527574396840608104195483060848640037027604146695119149404763568523916410717136972339927660697997013646737607151238413521081755268253633011104870006800714583743987210805458756489460178178458229174300034945452840546687929982386851677774054151131049834621955130342132728200515025445735505260044304431338004581152532982243464123873790325070339849035948844381967705481300849490473999199115507260569677539722576114504567785133985431858030357351758925909752151375855962147577618115792921391522094787511459595156111953757713485462880381237017464055355848136204997315098376871171061558187045425352781559163903427440696905925067362620617851819895381012345418904455769080038169138572157810157031029434193797541637998552032935813858112763741761041417506213138779113393484156194046196665980657868414698311841095790520955980903820370621204926434365817653614279517112710937809677084366772120767836935463466590980734281743576887766435999643087761502245867195063668950304649264023080887973456411596708134590291746668877189138633897763852969298633463239650335266932577344253129914052708589551848615549216017464052003725982770498308653754630294243584471627565054906182993096545389517607809274448254763375063893544525815268130549711330943610394198569957942876251968223597114119846875833720765742353555184321292322376742879625328269497453650257778919066315501422671484075131789936323137817248084036946897505276871435090523769657528583895400956830341585825100595155649628040974719618700362783279749337854660659802287609463442024214837472490252923394909291456454778323597994895505777554545670673295069260607388253981673138708068731138684237599464116561011065437948591770380857491476985518325887034713511981501913063478910511359444562281006198726597438665295569714724562392394159464236749647858836848988100830582639183126474955412182690218490686990143547722595483924805163555996282217823288420319107425385076641365838555147489089979948357161184202711471685746902086592536713936173912434518770555421117492049047030216728742342827968406411670230571574741284938465688297532037016552707295531816346543488272401078082057553599848642006309515372349740639445829336685443195893096130669254927609927527391532942780493993126227082293329376476298973107340842567191379875775715294487921434320608368337975560919618824109867859062387659166288631622405695406614801996194254541103420318153372923220274997309300307477626819591982219499032370818579315008995119163068495867870722518490383498912800601222456195689534490186986717986549866060598429916713214357826783432980033091664559612020542635019031509100059080468372493004885599758095923227562239032955261748024644713301688081062170487322950711573529472361873735024975866482830873024376554644621256632647826672856713153641428238762499280613948556397476142167323446474389202408323837805920584069834718820049906715956991800597190403951253695528450956817400269218246172235264453371280115001625457113084860597280996767815749106000534322661941471163969339478186811391793258770294964085451664664258226811322310060286384667938501022277114679612923638017387521054691865372909490560451797101662265135215188525494306540018316311957368391638248016973716971185034037586407057956946090886410808493825652261052223992627275533758482658847354415218968040249415135372069677087452938676933475347993383659439341115171295032844045892750397279709057393362923688861781753569415610179230424631662499824929329717416914020848470122281840455353064016321527434361761597937864819210079660040784505104868673862217560504200215959971101352763457435581000169310862908710999831891065754881532571564068210809262685273355412891500327178824236932048254778624347229630844527304137363765722235074692484667643782661787836775666636677184763581370105368322520152049828566443940581228079257791412728098444542023709975505551273048680123566388220163220976270378282193989867931854594284771769135397619346549419103207976035661428084906789646165729429038466905502750429920557193081466806180115699185151198035996333490245385127699022871096230874446929827493546021458274020084473053529897849367398924907402880610544419332462091915331901407597854679633666783992527702449830756327871770420850307829885623993800291478832190290089288214848204842693204532854548358213462278931752481428879090868761058223945862816473326713839746486297919614630236146045969937644450450541497150526731862205031427612488595695103289897934245707762830219020836488864873532897307368261013341701858961145091832552777558832173643613465938628243295121365079978221451307006823630213954629372404644117759677059724179367404279423381156718414527298284964888588602538064701776248931193574928247447927407048293218007184678780372733153570352380247957906893951634764719510505605234415552698237587227709709792590133061426413434814973377424949181337377911986502577065316294704667435717271932879344478536877907724496194564959416889055920463767680453186221044096341825314331216441822207205942156627361983073551890352063181763660486783257782893056042200222297327860093739676044057683634290084753952212326581292246794836579342815224656301242380796018059519070805682854767288718789278454898850096494429454085314300611442105391742467277408092872883558843500930583674914478001829988091379319813699254005951725971085075704863999113792865823298237571434936242233112826533458963467071770946344945454184486442424946088361664720142248113374817705726000165482315542512649605094545689067317873876007451156978759041250682829372933145197266916791288642143667875241412619397984766929246725840610287564511018542449222928938258261913941421677231343629422117998202245719533707111299905275715727982359858616437197415948332627342141245106592883263510942843241326686285625565114150380409145432834262835210876686594477912382564220129717760401322684551669997207713725926629712631346396348565876932715908935379636456755855815034952816208145478411174788394602812484489900070149950065848314886502707840241991745094142602468486716257139806605465971750527884976344913385994063892486915025091420254927781971142984925497914872925280776054724493795879314138305029012900646963418423046890557919881422949434856004132432199553605346850402272769152156766678392492303418323699463802459397987636417821483312006327385053926877517705086401779804627080843985784794090525735286341649256045786928960521007393119850256101828047659611365609445909332032565711265256382836427397486411063099389817685107787646427049543384244750127297732689767153534907010297796472273141290281183872223322934289884016168147545091539462742566904879664004128091575332307728596091514983700714409479255166262306267991035563162121552888415069980394218477616974757484459817631220508119144166378831845925450735388328309751359828014248131524038028472782177901414649706649863341610716128042128463623438439894521935796842705171153059203304338674906166827306841362947835016461081243001002645750715490114124475528613646500455546349795425444253377534406269947802880268828472670939507013582647756108200532536925440241440284911175700292904629718922982049303316045198778943639835276498945011035703715631877331610008559145224040704082841679369744854738855308037830111002131241474200909668120406797144479050508290612453136111103488825616224929646886168248614646926302706853188293868845775935303998002625462970440979122175502235112737568009438841718843813356896689349037652282496469714241923109482458099914366854581627043152517751954277542607970732370023747147259475923687629958711275271784971501723601119612856064919972746447676396494285673755481425773293246318513353392285588787762903715185395380830784501494186991945512964014502822348813375828299567429819012694481086960996956826346684348930897450673249274920964108374590877144689465599801393159062166995823552176810323656492145323949027798560712596639499789166393065191991721155444349467132407190153530553867733108037658555134365847476931374233744108341804956273560800308057102901288193033319561826236447584870813002320023382847875880824611016066246658910279865201312571734391076591606343837517687866833836157501833273617869061994571249451956956261613716367098382138092646738531791907935843336922330872626464307130461695298442626162997592684113811351141431785164098811180857158316240256560253333901431722144411927516136320692075719863905487184721290030027887418665753477567716266472673745079894542320664538046697959958221826549280718907534522715396291114199711807932691953394778417167009600375064625462169879928198790513281094381224033041693780270215586262158434029437807261323282704307948632816008399594891150810678552960680971671528723354743427776481052437884701672099490320262166703420346096764274476544339093003684505645678400003147255474961982754361203690431988051655304885810915919426886478741531713858082957560348600228315358000528794495577224289556399303950178242374860484515362670167743565558595268037547818697390947728495968981354380793052416003099874608386885591565748566129766584311322914195658860462156481950330871434084153256560316302137491194366608791725546662931213965089488145144670379936015655006030769979224014746336855948861613124405836488327415400683502098226403394079225221702745001805822738891232346779619835170153938294330745866059957127525594747929314471694118694123502789785937346628239288172068585610634793926324918376229209206200987934992229614025239236680765181337447251945718817654322557262719337389537832202198476953867189599261092682492603928611097443924417316583584265898534943887479235317666062883394885857823977323757829288710563873066107242449066895545993541494692740923108587639665685414580755104149776203946021072305185666660397780082261350667596890264109645508346091658966118557235115985849421697203817534966338417412456112548753955976862254445034295447626487075092972745069506044330894061010818040873816473736896417616360938248089485666174697667591471681655904373425310388048409507133146253096160515435944043478647930383125001267688879057117688563991607401237505806416869411044195471569283491780444802764594018913167740559661694238378635912859836515582904125207179075567808158666996614006165039829685880696820891048518858751507347736960723219293658281332738523191678823153761301678148405410185754858598116915528682790758218815154745435586803929329565730048655641329764190141182938393018314630547295828952808515638738957038558522490769994924745086544131574154149014799601243885064674618375117689392551459484967058740790547350401935631510382013705204410605572474890147438466208269301373563769231093534824159617712808655533305163663690076667781437030764049651625273533415266118119016579524992670842130327402919779079140998964076953800089374099071863255577404035732187520275783111090060054538373068402872960371821145917308194805139075534627625744443708517138220746140204999439971070644397248891909282381273505854801480946605329500107277001199276565152970138394536609804102704300643300013180485788063286932139544376769817686252904110774430051062416077404096982880685055686848378558197322362915608888679667234497137313792528990741836215707574200021744128533707672162491232264905154126777267864049849951728753528825496650321419155867549813038296690765747722950533478199509959093893440620863614094946047751697829571561852377656728221478660748797565400260692055442205664173050018874663550149441772239010430775975789669954983977813445513719482393147159578680991767373100016236517396788577894717017130168946072548396570710606274875149550559553231352319590613203927799922111565914937550721247370044795733376937547261571587908456593856877653865615288431956197394244138828998736137638019214759125559589154713493691714220152564857343024911444312068385449131338891430277779771859373550093293977425737233244663555944974138904180642895302505164053212689600638922551859269460210075663284890125542539524161318657382295050477914220901008742273593247293007052085780470111555488413277783801957291082580503447829745679473903020980796497103806493982266900655126528504032571829251401982708049642149915674137702292315374159208993172021473226644383426692360798094817145560931203571469048911701193604966078214260450463657734212654896914771547173052568934782089434165327912762387272053808835281244920352258287515196902395243783824867502365858835684019828398298202438287458330215168727763546150380510196300155087130804357125399924301803746219751655697861562273109073393240347624625831100326804943927927646118636851763762240837658041674575899871934663705129659466921764232601813807936294419724760887258961736163077169623792288192528997104298684035815988010612483567033205872271205182739936593517003749330482628281299680493032876397489765204311456313085123290376959251755356599362434114182764487730857638154794662308857050449552797717797235268475067992437287415671724261253364565882544680757664095902532584023601763099220904226225976675435171802694493467204078386515652689352040714280996017485831025932100691768715659412071858879860591795029852313175052316444850552607244012943026165576650150535022419979471678842414432888355862602591083180765345631436435960973651632411754158568880426578256248597910778590446331979330955954988609412991504287100113496218598675083771134365297652753459071360724372177254607547082972967904228145721003150531352404684223645034186391539409179101287854235191433440947524690052934240685635382694267105255918875462478890761420782552795441490213036651851068119408262145432644631416455106411250765880786179522898595968857222721477432807248910043048130951570362019322007403439559681325434167461141185255125111918598356514205215549442305483810374168440634985900171854492951079132312031764531047265318611966506171662487572005442578400859341937583031222409089230726416960549454535336466455642979901520286743961784985102112116362165977645193089425301549864918217531840598091799701795728751123168003859311464514954185478870374372091976004481230723292115389417414330850533591420101748176223619758751543160614189075144360347187111406523624663198404279896275057338491003636162313217620303084785166122804883067359401156194587380998461846532195035897879724691536118138513005215166044879558127210007173712922378959880775192976850567281113859554624163401587798310842974441604217823784558495649381373288810924337372803503935304846530251458023461206432518249015455722361070589594485657643499161452770143029736466365581054643542198003597510188025337116182904626765974449162674130405767021166966113331947946685779673465649726627855327425299504791036615968585022670776061949661999561982601261625325571177613468801718576260929472436265222254606891239593916595700321927306662170782388081689751027674588375564133864530184420180409152744676571331282180329755886817731944459485760406774346747577200258418809280663450636756471668612647438547104115983596005041640007786630669576948657484218627894164239546365160991160539667723170214868977731402944253231849059260779319434577606694990552974546959045684988910196946408931094660129064271223397100919067408592845395978592659769026282009299955540588831234546335336783939415543992650281666905457420828648312918343968526411365449845172005957682083348254224549089087975039052343101097413751397005280377140476247728924970369978147397026581706941936573510709160586548463726384641394322082644948106273425714560775951403266921984838592312603723340046947959264645524328587377930901209182363163165511483391178556685654441828698522231378777999079939877268511001024869682780207604712422254082805211544351778734465575695932828310840815093131333183433410366314094848749592310946659102577734100400057394135646719715924948666776784176534034542080335525689720529816281062477409859497680585659511572791312066854048690707708637974711250569095491066224126610667680722709937962893583144532509701538707177799383102940803231975348496228882575381098536790367935007855314680929904171994677724133626942669879108289867430528390175798180908791810942293494076239512788096779989033098161729494183922499958256570466182420403300910630632671866791001365753269365122097239639686722411552549861113447700473469392845741151029582691411132551840145109333976971874650606337585761876093471892581037863836237081693187084790327834986159396316795042308595337243950925234522688730412522644984332028519776425779900667364154437958154738324311863501905956818575288336052659271988789127583073064669759889016993906606222417190083125804041090826681598731044077188571738345911747510135811547968076039812429225709934890240631968052181410036752421997862707792822733136474690384915939021605661775988472878224824067177683586120874073887775943864933054922059441951579692254311796688902618736814286490741198401099703954099272308370231662742727666599384051731037198369452133463256428244565385915204975599405061465598317667614306127129358546377506641372566495423065580318438316638711448247659319511266392384289967959654688282390851999090105899163767584809078826765787993545378656020502617038385291193176070201608389489187331975807651342701378689092438992940579019644310838397189558812719758707465823825664116445121507458894566599977317633819463816329584881627791251734888676908247908437202120644255691254486078854758984451087591334581474979827466007369026249875357243061692505257195823405654100264357816262421615767930066448628722318810187785892772116669029082640413602114231204840303533173078515307151460706327787752339195004739571908523009652204819751757511969012398936310347389435728242882339446973507733334460373560448575018157311649870587270460378011363331840024403481256071690711310618708117680524790233643628339491354014389193843773940725940401021975887786710419965980916062688321832220106269287223887822366905432179780354146079018209094384057519122437332805427515080928785792063306869770668003930400733968240223029976101143145161668231499531644865268773128508966149163133716250775430208475944770609982069896708705284846273352907006140087774092494217270063603552041925256724978249027654303838558186466815103047843927981519341518354820930654049969580481394645228391200218087391638891220918147122013116882505447640213521103124310061658226020209823626642165841032099877494090981859300782006571230458169503401906922950793088330476738112213342025502263932029512773419638696502856961274541130306156593813228722046618155104481088185917151699751718093255328533775682715586435615504352923971292855203635329229847255929095260935761604658569477697519299009123938226643307750243946436595771646827285656381237480550459790508498024383055993512894637548820605721324806677994822914055364843557189081833489129481382244197192067266625107917331554829063983449418676736226974717625124714678209726880408735508341123186460061124178765623211738234963828212349585643811301690716086052785409486491273380535228120362589528016992856968467436279164582718132974627564593909526503570363997125547108757905452303692304214641700180642317601634098646134322838222145198692137633080155466688862880930693949197881654950978962536525200282994379691480757993757068811914495847824848602613678123969207150401671543554195989339667752744838408772773780780589156883215049001883799149829347776598830116111594729067302822973033076116347024660305048553783522141602408191819049088739662315252903242364409399450061691494884765092210693977018540050599707361998383366348468506248163895514213761145657603769150097566520688926231574142004233495203640284500022954870951089227505125428446829148041237758668810073959118764269837396507826671973491668042953821359518789373121637040056657164816284736217530978312661132035761859676051906742363304210180716443471570618016488402399927626410358005315084716529676142100744938597763156594963558075781460267815169400629826567934387415832858677355891478265384410876358449123530155516171262989304595706474802937971578046584144986606846135636699198399683041484755144159906776258943263806013242975888930354204148634266400582325181372415987391343179969232319201442652238651794253193935202689164592217210563731425576295259084656199462296030272166838205785606253120401172062928901744198362817456469277949742652719893107574275414064232773678720028166663875839436009856218973625544919375490017045880208945395019092842408274160834859277839381801446679031725771621248070971939681786383346603482687281651507210862274867653314336068028707553839522982978720033351453296716919928322462402176027844721123809089446088765475991369623674162716194365684666240964139531932229514137104253229746441307685428853729321534164570222835780358621580890257437321919278965408315016993283610838330087860843320059463655795968140294439215944886465112328475699275980945642092560547106326113786855106003387999650672903367614113529697710058181075227088834270536704877206236406474267587843863503873047298136476666450264355773786782970464209322348082261510675113561080334226319548302274423998273937490529762351394153993645716735959735218438169394001677655053177962089953242590862513736222406355581729763271225752777518059056087857731322789602104987898451630181445719267848213351935156420771765821440325763312788196115219885312444575630289713911779955754328699376035480830301104667334230993558204741158398368662187695106368222693039510269433086422046118752878598128065010015344620203804156910384239757290156567090408574237386621641881746737064844063161748327571706138962438670411196955672106544611046620744260415083039864394743772466263347489923903711480341135930216277688975086866876177107746156948707738284813567581039183203972536261233861499216593655501980156859085633503813770018744786803827655314408393009493731192229697537696159928723781556188010035313105750955909833400018603602857019153650268364503283546466233048321853170159768048663708640860444635698604678070738031743612425976887074399218445434787864478933121976469219153480852030460654882752848882086155464562180717902406930650234282176496513202598384386205569904715579619306344274458146736111867977679093952394884929169807254297149644238421922473392486867273582757031695773474609584021828429193210201378916824328101892823003859430986223003482273525965904317646379377780715957898458271857050269711352850160058393378650910560001087940204139158851131265263784685764949065246543084535784345764806592499020671706704943597374934273551157555791950022085223351733766185520603527308726204299498010574454349949076770221011237062718412578308897378031574524050641574625743980448831161506030369011069789721982952007314670392498343257136120208047128669850966559681404101482876220748889632479676919827148771335303597343269491476918464152333946457241047148615897929306595299650770822743750166553426166063772770872160156792674473264851315902481058048274940477785782824070475244134610665040699016794785197883038482322046846849849867204286692221946734061657419916503123155437604882310779973859558913418015681438336366482845196725044681757035158387658566180429540157416235656453498346890646477287905407604947251385074677909407003060171268646134380945783044322782944508203783438650272440004810748972197764151988445041869577256504058991970331899399586410463645992228530359768997845242080181124575952464100730619497300796628799810762318315703212558914774335284827629111857369436805286489140367496841812370179961795490644270191742328132813682000035865525520174770902783688816085498154936758748455143433775666434665583291260094010651599631387159410174522289953159313402823151066467273194998868438362433158871859062148871584755616938216953365473034655436436062848765070976281040980441948889934209214065018485670621292077272084892359181273805379232799501511671662142254689400190292948455994122120374136602225542331618542163623894928576343705099468725486477575162893613979707522202159377322473310868996508992982339465045779317447405572661235494022993278296279048122990579414136270539463911871348403237825086253430650021914951830368836044295440483183085577255250361144858495872039001243222798944043087707600386384561766755154158423558683345331103729720765209372711349153183025559838035815259040508429437177567222768323285760824285208228930862980949389753084827938348015944633316894602837392126720136825925694734076831397212007052825489875345440097795397361008555886040830778821113952517442487360125719297307085943829907810920674502158563984716721741060153292317846951336111500109935490768792658713826793288241812951752585254695961632070511789357762725612744146527919482004938168772206060556499238521627166035158639340307777916429984024075843333052163330369903199395628952064056658710298355968905903308346265274653450120569644278761395033112265971931622520541266178811871673623891972202963056584635641786195507360635314441910786407300554363192428135969789388384502597396536469400759590183609560814686460654175802230803810336190112086919334395444444913643352210552313698912790439827871048982031971765390115758712406077867723822455266028921344945482005911377613838995793755302871611058745812949325081905111173036751938078246479845518873276856604890478186323229839332487040350698813075650291429628283897813113038631993109403169061175200154745052993029968023294525738571232282048543994906079406229486949606484535065734788154521412122824518114111345982888115799426687795874135173762063969381571006312032613808844557512223373247503498874751710509828167838311615935459737216688252162761985819832472984310331588343735820703062786093355458858053133451360900107697249867146210416363721216766457600488370336106521471185386943597752971785497807385527785813959516547711766564356227636627888927225337311717809954614254242320309878910845995716722763758042594135196207218319888731305080069286517792503358042078863127658167214233901892868202026629145593236048204804054853651088135881929033747661663689637796203671676510312245226376901829015971306330432150628338740751512865116985681734501506074864502382399216645329946084320913925346881568992530457029207382168623579810849335734175375826271989309953548603837405894266563672349452586625676030072725047568430399675691326723873342625474408113413336981697170769863200444008642714602661535407032877737563892001420510598017743016215750156656992907881588178644665989799119367161272201493563217468374437315460639673968297355613478648467413999396589231105239655195785853567667593928981945870008809118302670023536826457619043034666541912711194370036186365647754204649864849813289575160199505610385157304861637728524251237399569708305940037660469229536814407153111254042625702272284155889155956839738445436122923147482810694877811586392909366485966307630153187350753514126959911220841760980462750843727186222472186002684201764804875327397444143640279858047087197757293172658894612904187363745727098222783579513960976783251740650308300464340664354784771293247800568508191095331640309026231449977525311660464443770297115939229708026239823122108567156492834744340463625855374638762103903845212803708940810080041324459697421293723492714939375169455203374020703354975657369282420897423440278579165577477891836651098686905342437798429730921301862614378215228134052577232772064722350923611967297803900688426289998918207474049554381207848748820143488411390494916209649022356721050399488503832563525766191716981855178707865044518315812781222933005464164636329923373095105106121237787156261939244803476767409242682908681107850691162363918635335934265273849321551852432852984137017608400282740497392089825256043533131051493350859314560329079709688957204524815219896813275233103404701725656420231295470057745289444415726902842497735133412871639217975043952208265321128475722362294859561293265735922081167649076945602006304750067103944457005058969873626300451843414533415499327342112872587124091118407071167092858816097502472172173125462365991089110284244346877674215388739058256737491720373873744392951270058568014455259510440572900706531567982519871169165574283321327465174542942190622655678949196189125112824036423225023194352835003193164100620644569120376867417725621809454607221489235678488097516333987772922230987802980830546465755119416505469428856055154247344903809334037755978335955780060423684250665248467164689858652490224219705550017420727738878295257894281167178989725849454358892726394554898289481364630085411596252254811559310456066008577498892453366409663034493659413250644521634300137817710315434374501684253110569588372218282487828930426348714448731536820182919997003078255147242018316933661113274706928285126994163108418493588157209195074264453836816135982100108507663157439086542614292793858366379587591791550681482070577601945907634070130602937931204184029667001164758914724960426787691653296908054354498686052221873394965278376599756888253086854731271065929363557540640195162082286453139221229666548946386009668602380623362898913901776888726201877747593850838912658376784031060511800158852591501144530845135096590957072965761164584553010864610924392103173883108849522123241480629251529831264860057764240196670342351919105684201194380978720456575413910761338243404156989303695276985790321805890421461461476533310783678830513414590724636251966873412903454955239702464537471003242127550547341690387647767542252339011259204076473695940767716465754102317238867327312191054369184198833482270710091463499553806902234590026419392961233596945696626233106653751802987872065299198385735583343616327769694510389456565376044881620649454750290112686613671214735395008265291657406501747242368084675966278370660584193433990895554281732314693343006223330224810661932318103313197388017128331554589710568490921482451804438465217614921034821444699162679978572496961930459772681836233118660816834436667049535855227594103870222481190176490477659793521293478278368131978275234334151621952626971476882450208587119136443569369592081194239341688360843314565072305491693443877117818236668981358468303397207573521028812363287178435986588162605000725548138870416452443155220079646812740673014894658669101858540352140237821480627724983453674687508655313728403909280395259591844547035317667347297997695116428125446920642271404897988525444356617926854038542770290268717494765437021136723776693279852332001521976035364747677689972183332496399500623497895291710618848804708024270206465318790623821172328182742302199141148537005351335797116586178656421353527280351819064173936747490326558667128507488147722631759492516542506313418164727518027207412510412919245502041277229438629238959207949203081486255894635503703575948334215049884290515101401692198788309923514178854380312375054631506736642963868767694399134244079468364829720403058324011238846730593796901451441630416545578385411373679427657103529647892673027349491320604333170131770374794003459463014941430243083296766831842473223307060497985336015206053477663910305024565535745606797166355666595706421142053033861204400725577874490013148448450984886724425414358817382182305531379581198074546507518174155958710908062420869527715516647314245073193133846203764773777647773796097224174946547014971209748526882961220344082533043680462127429307851888909377878041657778700996296919551653668739549682641850890238644022383207906736913323553369014999917416499819172353448982788980708578054606711245526342103577248698700995264282472599997000261939096649964690410287699361256833451185961780739441244165737405703953828486938738639102613968758955126032280235360344951661821471462449206233175690836337289423566295763420424304921744657904032841665083707864128112717886965593292691569864946350197159313240976186244870500059017994868308051777098757234901045890338155998557061689206548038056929527559998295644937746594200314737388280854510132044116832095376332910477131193708175012281614166526894784009780688190360041566088450272985913016597705563197488860996407088633466104514909037161655751160563622406784792835257062297812875817050400000772679828327168835774188485608928226635668287799556297538001896685175222599322088551517980596617843484527949071713414482037623669803862643673639072371031931035824383373493821204616839207811054648857658303800897852766304758714553978513828267362324597225788783311647444637744535387917920002985748872499483855494813102657679159085589570704383654057084175206171574990893682194743341830561349533216217518224899590843908554978022714649434641805837057197824742680049688728483459830094480591596621397250029560717921004880070311953766967887590073038101439626146908056097892348410535013894309607005991081423642084036412949957101324804243648549306482113214506470967249973571823972915667069197302659025534166115821143427854358000770944039722131517338243307273391209098639842851509312039082360184025233041617367158389982440921005362500935892775759512706440524572785703605672398034944962489685424035326838197531634899201992323747122719837030756947144873765957948928341017461281318997447982367357006497316590100951349655342325636415341863536404046549935935529095724195068054807525751827653702971254106743362651770030438694763820784044426861975358768789620521096535483863488027243927417219690340631730558246359950508045687261628524326690281140557180782554910957357331937353514765705728146683542824383079115533067779476858820748418567969200506040906586665058268643610210368975263134415497020478306774036235132965364706263441757538466391007410424935898941439712469331669485671018135659552476436093290953015183349827653172043753571887822223818153247619697375561805925037230664788469152241357960485442242067108640671717817739439096632572012923177101511613278168171434503357799584894592729308469568092619411064474258150842026351652527383334126157861070178381802596887155020517647252209425358183213843946458115417097837797844830489487079531207819100031142287568962825821021273576954463777212406180452262121009279083906741148965917488447476607324571526182678087235204611132848770493445335128196473580270122182327229363183184929491383789780087282009484959216060638654240312537973964387041102000586535554430332054695944976649758114341208252500970027909854323057015400015327101076382607904752876813968629175475731181513890848635600514182103998175477007242786644314040046022281719431135175839498988374698673751530125480352913333329719881488630802622295695556861434492028996254426130755903419064602594080607267481295687587316578047820822302595283888768830165186585944924602650883563185769154629683155973161572244087393408254495555433532454374342430665224792539952641735072672081749188472461518482279049585757158058903487279573340666458502483150354201625208555341506310692771749198061325955088287052827165617871117199875750248105317763809994172657978155749942157743055538165909514741677885838040766006102372728201378806097752593400874799691273549681032500012822508382374922203656605437866889599602349085656537406477650258108195101572295818276998458987072150267923779547643292739764706927898924098619020743057884927762079899968026742880849513958816622148115439494612621894786685378044148230869782455412972083427279364432640460992782380509162156708850199598365637513446471751628026159982163810506423537432546118387780955751804557399250041317553310370483214258406489250286275541436337551534239651144715099684854832473382939807085950226311129542716659648806625909037334258037649274204613462876663310805623609782429160294652281173712939472808897453733825193607786360581163180282123541716422761177130656676673353788926105322227148899943005355276581035016356688444747170738514601014191449368888747455506345548487905184068251040669123630500899481001311008211361799926576554576886570829097493167769781864789580761092330563428457893401001612954116430530746146364701750191831469242412129444158812577665390391350002491963063389962145335199392780366233401863239279501254408148110459440703583345560372638813101914685638041817672210544259689152078076872473504881428506044838823240143637100817832397111583300794310192933675717704449442448695149048612211070717706317951529122622163197430097335292316121802572291520295923464547391441950222100066535243598214050565134288870093378211286254335798304577082930302768570666337323396638627033010519084116823266810585906610754639363268132967829757096137744835444817006903350030868307388875683383584194746270015466368798698311243048404313925673585260191503955267462418827082766079330631765566783129601643241318770596347420831124466359153448770388998069568049289542956159626963326963360412213346807394108539664789468530517287125089353738337715241377495054156845495705657994257316214865310586246831346402423387425550963704832461067190290011635157701332086073837166669125666039655518713169077850513311386999987053195726730046623047514340200323858804215464585307700354606800206864755191800173660897497432967702980200381732093369760862464622528747647070184530124638696375322342548601333286283924025123535117117048305457842595151604803244043860557205487401683209982382299893217467895422330060108197373112467175389479001110477119374455786297063158712916501636958835057183675818618359154356347628000080245480283716107064183399574671924092043269420551172467567839956227406614664471572573375081887695674250753413941993979205447710143952219594652204290331621240013480600924192628803059623387077104683845406046042262268013096548628495939283661613795508762481677626620490393620918144589647730857740219503369242154237878778786958163817857726766852114666448471016212427374018396574489323562838558316494622198616000075968065158857809287511843874899710489626942031782895999374547315511738406223601847172533025082716898478512447844489664640266887856626068002271770938962713572964619403930359853216727746968924486035933521168934668632962307292749277824829666379607153871280125582699233730118277067132108391035450637360112623363395169908472411031014363085320342808132285415132741066092235747622765380982028848648116641399742926976331701406125290955190726955989911946815848939141152230662337863494997098140560451838289936660778939132339085235454052621895309679887727199401360977889043209973576459511388856353957738653087639848401770043236629122927393119369153056696109363082721560637687523240715298131485360266717222091107363486442231146642051862452372267118050608146232784762836259809781436029501933754334785959077297096149096158336649788292487086532265060436755777855095426431199581572432787551884811986520426936339321995245911851646624751423547833074111994883598455344236655484485073447481364862399008525690886525634113846568598031711764802824038093065151675450508533294432080296490194312787765292801810279259798238074905369721419714756710759247856828738647015009771724104989305744600496817928586631076897208204080324650380078763999655208905210158244320115130002898741917306254505027293167602400516287835408400036930053985348953396254252531292925269838912241489166537781500080533279494829730170102268423954785640215836556305414016768916487418862508975643051027289673924345169545124773958442594951383617090705532796267149117652530907570128929195659976540371608652084610785742385857027862252696394253684521296240821780796168489197196060825090958588229604173074449274646823631031131674767003885927075606672222446420175962910152330245602909671129863973197991451040596901288867880676148123455174670138231092202661436605475844031855748694039146671511795907040973691476845375333744576735795844862517294187955335423004502560311694143684117274210901736764258137490839430508516621405983204926809119589975015070853229400833107978687600341433482458661591940671484749160232224183183461369216121683435611898680429777220611593692791405714922801357125430823521326095685350182091555575271092163963508829128434397940437120848030694689621867309308420475126070911869860679834342887274563678424418718338561403938488248379028716131049849210552089893801748037679042909024337831574041086746862607745695780799724934606119508444379909421885735761587425711098793204430461726373322153623267485015451229810954593531003441827027793558919368494919001732502468362133745976144508432093557960307268183272121170522887211183076856051137899550770117587030527977371225326243073327051763239047135380933220839962074072865871080809847789620919579582234621677749321534279007608853557646726076051743825978882406896325021591151543320616775447984960095209868401153791495196133622506253555534699036457928805792614351391708110406220211191694720770397970095484185210140099688243117119688935546642884384683892081426467751606816315580186421726007166175661987552104622447062507885839552218437076718714518224339158398650623551537471308571087713609902396083216486793229487043860053654075772827483575184253884918579603179818448951771773963388984345512194377393793781179874216715598101709495969138944042470246904024968396892573889821921146318256769262749341163141045285615828011337424681249462941182596634429950962800591404067057608322036936896428580594041085551358548256424167842141093535339584995598954068371043419594392503484081766796404476586628659133958455019424267530249380434216804547262195623938883974543699254411391874118778564017809136957233787566082738554269406073786509099307824023331343732461354407466280783575833485415139742838660179021922397894833824280321762250914183864410049171935802439895774878070207780043318808701644613779415023067995012116538193662932616618979885124612651326026991881487328755060454733145448008846657083608736149922690677205776432958898279800373039392367420085376779790170943291920834802075473201743839175206967538992074005205959326064572772371897447931386238166691305679848854090117596981232074870588809169039143561142286913824017771267175151400536654473669601833984937087051741454563434560207272745534771193289550710103894397453488584378721908201145164567769114670999619915879335839128275295781926630357003300021499660713689018664895909100127216796515920290301892456034650912409680211196837867433847558905550529084748430810627810350263862900001925669604741746001152060772585000443887131004753956786632599332533067456616635329390718543664301542531970179327160695379701209609000563822883892750342812479953901541241909437642969404243164528826235410939594459837976235874849608758933922859753726061995205556157214649406262653524464266724927762426182149489301391400798758069357468623136215402080525100261630288175633947183125215891550645212446795124159498479973256248807048788297594891553276183658091903539371669454718691731181165666830326752450081635183463192933920458392746627071291536379975117731022918351440409104804260359183321503347129139889782381578525118796631986351287727575535038702248368020703262747594392410966341392743579097487716249576199973112658274714519950102880868289709802422522210636445315628744781318202648460298886369869320798309932695036756447874971965712436454668265348123426604695383668095228316902973708054629617657007832740116894214663236994790222332628228534570222410734733581567415602360274643794025864433424956928467780897278929700475575777333444501635360667383598387484824545771472262867058406020419869174753660530160302737132881112583670747034122283833496403967199110555371068725739632464792916670479865358218062355976854082572646208053793835298683991158051369031764484802000911530519034970673155327372066129774555145418552006353707681110195865219011331689684209615659990587168190199976962837651576807917630433176114456823902675474339514573518523614346484647558068879488387128943345213739708730894991856699816515370950860225533232016558112968494148835267648857261916523726581747955114665906293811588129982658452105557037812712878789419818683936633403086676933451028572300459692155940499947706602535619380422147893443612087794199164255229101903139539098905730910340965020727716240566133919457339662791704320176964935614623988628393410316183365138663338562571298865179847729445969626035060488601960308456709396947252900640827341207707584023344143269348441520437385633222079799013376877862819236258023844632887152825671302780226151944324774398160360701925794124380620108887923534872940150008714654292480300780465249754859509544463784051676334821890095463827148548323115826746797340840711116533396898262684793758769952380976823314325406782607655646260831363903937299127738820492746834780921898333532375857881299848322856457151715895734381849281142262034095181543780633096170832018027412831316799314159175001381030935123859913896542545356918615263163564567760543908683605946791414208777801852687891517162022340446781105085712294722103589735192592699701642850960710170726064798745917423012747945571911686564690364557207596931325478211368725225708005257439489573109479712047201902261299652102871311908587807486956082208112510747892819795549157337340358276153739391530044085829912642771464803947302048985086411097608938363104000703565518484361896080595005361543948482943108431498023274059427750555762428059591685681754494115762078866628945731002766516365572776090147754422003076745714237711367621865523798955665287238530434762325253763821958546513935477095112479024308713611573536617232649539832919804001270521790537411231748517232921249341318887761698789508646232646031410087846401426927159464761975877200974672085092762866224559632751636982361884791799505126446589659793609523690216095065770889226085548483447227066430414486535016011929492696077343756565489139084600706121318536830841905982345704113652274418566049496162594977267770957901621186359839818127180731406766375991099478117881313067208633264999534602634743378478468783523221156391781750636757229352029835496686843875582223798000536449317044996478710677077132834543084473375465283930127062219074452891924773614388820669301890801319327706468067970484663512167423810834532614421930005823276972517206542776102435848999846963843969629720201128015745116837404810363244612663287209122038680302591007967981774631688300298846239202156383107984771276874156276804919011044853341880503371113735223902130028210330881173462882017497236479248726139259190894802600780603749366599962698231456790970031168596680936101215109316304926964382085569288646059785420694430290079511366849351095345395333823973016928279271401919547254005830925853773323924503958164833189471019477480752009311963948335970509164302087356078336503445278741477859423331542222517013550718795389444482811429451664102725092266270884563594046708557236044303260499628695682836282838045254630878864341548856287449980444349722358458204298583100850182027823455990589922346568276387657094779232851534269440361190570373041953799835304871823732900834959142839619707149636281478814030303413385496117996253943430158836953612418159846322275539061837502579728348247977309417337927794019931599186151447646387949584177463213240843903906053878944197257116258844367392209092623499792145851523057719147918419084059125946362431759126306460077141002808192814730003457560191121786592543547904812878083590173018445708973602399511374523119270715948653057022529530195722859596662484947890563029658467235158473552477005693276022269171141641484974838485949209791504540876594733421506680169453021583629583849494709628188415737684191411297791041082533942184724970285048409993581330893279648797153347883904421584592943122127318909014834803952198291247478714710863518523872634796649990418392576428343918991309544216830463046548336287779330852618434888160222190603414898142304340393036999417599751528468738750919396173162817991163479735964509846540384521260706189295342665910241905262463354006570353353508257751149497129011986347728569060130299329024299206160580185015665103323322584162645778587377168343923452419427146744005859520504841183156147746092811886964312425770128061329750684943959902829766679367452252723819791868463642926408920029900822058255559562827573227391133312620140281818104163937811770672711790412784463846320975179532688185744763209147921419084740772315372279657447365228133033367741080100113917438266742272829306231339957791611393114928978428717640818913218094298662820052483080482213849300981371143419954539206188095039266851565687666268776038076846766088139302094307428280885538787000238664412380536306077166308591152340222203246099625692691716043661085675960337554685310717056049853785022701967264419163274810859637116700647619615158232244558389235994206733819218336632738938886476395783964087308077709747853574208919736519267838822966033039602944460636605675390828509277831010915885311088205024261269373351864145488352349447385536060293052991617293694751806135006723935130137813547621241190125815950496073185753195026683668992114423395605709602783319575529067059701563441347447989761764590792149162590013791935190433836825081192025600055371779300415539041691100676299662675832979108727855251342115508312682571190129744052362251942429418209211228200385206987773378756098057507170484187047542286645289507717811839429511634671540294058925949022066777209479769493623486210283667414565432835591649328716064694415460117160093678980909053227384993996334197115943195746007350546389267354248404618066955481002590628849309723403503924684838051392140236153771271355844920418153033054474720526026361426564553392489496133803821608563022464285951137637381764261822256397182864015863614153177418385725480347952318412674217060893443976782475148915852701689441109626707289170571529300807820240165222394675258047583355704713644933740776576113892713081636158149191114779406699597779690279559861711974883896099749881812917320430894359473931226128806057331286555089492473084616367957321514708740355338039738784157051504871425723691617709633961039225401846693421602588995295944126690160801195866794471119970857660748644592841593151279615810531424414338884141414029271470398880916279563038994631758229049656268081003869133491835856788907379433767838784767612664507688600001034475217364597399254748949063306458914619485049070812476568927091547604545700796532654943905218882111893035533749327265838363630971326236703032043539502678884285589711719096904800534305762090236267896983655118734439146607289032238276422914936830908891914688198882020502383220310350083851105377682479008008384346321917420320706168009505307107570476865218676845338259875752442481677309937997391480127361511680510804642469924574656502478270028914533996670640373612369420788870930466941143572202754594263291502701769496344410943030254951710047768865446793951456510180271169073266409608725668962131547370508062327761612850239235739474956211222173077913990206285970247354579993031951237187572511222695734781520558793981388574304802302496087483415719433782796500331568065832618039242343911871663008634575600265824616601529032674455876073125650677047673184911007408882065897401494687439844534678902369284622768806747604980100874755619117435009754660848816396129219669646218154389259716447831923557776531613602791565064769275430453377215827696044646565124248740783974035144408972879277428290442040809417570345709901180692543574306280307163181473088299658879393600066208967272468594914973009887923012199155138390445657124559225763575485871872271826807829808543448722127761928878530722414138199645431513699037494696952534599313602780890117896192737288406709626350290221095168959478047559897927491658850678534966177985116928068950219228122675370040279509953372957610952068002702369065281925014321511157057570623852896934513188969651933224620777820086211868596684445895838478079614766220982814091026968038172554509995368814093559343879131631705023070238442621244767172314304952826338413002434963760667332045826139700576647491393050306622920766231458419432147427808589020571560502823014530099353631804670315787550307691866544865222605276289015812717355339560063970389022729723308775691977820351958396472386355004336640281381357243587342232059052997873322554324793516287799086227165648170687453817005903531319254287683884364831698025256544680308533347342500343645828890438043033716641863499606143289581393978332676634566307936582368287988508195031428731323820432424442079354149000285506764504867056301053241332900942817140812087096972733863773774482923342696842185958411579175515411694289237678076593512383689267711122162300766148059305502388095961000403525330519802625607248573964298247101955665803670584346038863137298802313131640702850703402213048313119788596821811715948973323704948088140321234542104892558002086553154087508474848017218657816241232091484157562288522019058450802281638531441051484145322944784441974364692842744322977562562357518102160021732596161476724354777401251340593389640565806573751857589764260359963950711395429321021930695608514093281824629876409971940245165364893706571812899232357633024318697397900669383935423825722147869656116409361901108393855644821899205010313625100450118213554613887915025927152215373440730985617780440558169910302089354843923374134821413078644477092412120905071038504908624458578297260515186162895702353057006493608083125841637469815202837013692858198274858513425112731500762394117049925421978019427172079753817070114590421096859071327222149111962796166590471943655681215076202963066216716787196446696297750314494622221895755893001071076841580276308915907906384521298415937217824175518527489490125561043468357534530356512850248197536011421622325367774277977277575007185397482249065849367514945161662977237783677875718478383406076543749132012028960052209297027847900889932316031162313353446011094121158503968070044760228634306992286707422790198825350990158289984016412515282480649268565154488900133045183204143620937250539988405316518838775576350369563368528701714687292920815255073722534265357994733830542478388868345253675516042040493385288334046253438062198568498065624893854998349004491609016605734166978364580429722617473619641785512549307402212793839402912553153103113696265096646410558019779149984725631826162619901886098599058133960973295531869018360719353221458768854527064960858635307227487416770449166310391671717203250696962279243813706982431581892042438520848814596445518859421213873430804264264014005512362243931514223101838802111539670179043817232715816368198311340624320055006617734038080588799215991653884451448380205417236995632677344857388236450434334081994661554617390820698613570438161224246427190214955044693320137198095694707101178873984101690943550531025880770645879488241355760080781637953830763533456533770234524725589397113113029713880665309065967268222606819876753934023792772598190349293210797100836049003058022717090110309820178132583077018740952369627152440608370442427888400019579766657124212589062469095423976968237620559990237987650115446570007025044885123486840939299607645534777358031755336964506149776755131383951365938694127317089818399328194253718636537516143820240892681606377151016802106028194336655793856791473983717654230085542536506085809527096340912723763507796306484935201306750446905491984591129703252646368898606314913078352988462775814939188800028348174455289656527549515902705147639420492168355289549258735021920534690173127055965765694850287391333783774456022118964536659792313105686900237726332277110999218509350493655025657507533960209131895950897264415172297687757994438183126929789062400537865548861782168327521378566589716225063085205015325769843910176716453633793530967472215398557707676787496592548480473946245232118336486915949602202320217323635093660316443814067891643917546434871303533228744947848469071725876172676504229183562727348065352082762588653519481449014030707499514760827745079421325727117179998267329497011274782825769356995467330165734599902037766870574068810245821888202868333134437772275443160627499862956435785149777724455917739400351422878920509313498349617805364293110506846852815471052059143972515054310870143546650219890861630327545004066475758743265296494011058929326507846439619815821320965727189394630482811871359274621208296319977834172527974026063418432089254582102055941496213730875842860769435192584014039671792259312809708538194411395711220324088677456814335287412789451985360241305229200789395224852230937003613758494724586395279807322223570230040130355090037692483725626273703303953711984222530091001393092488489890319416912517735304944517496304866809684776476721316281673469711901379317720023922723346527712018869366428427233811494377106610896408036905081908494378698052875908194382078244105890427247277502106568205400081251567504710091561905165364628584656936872503943832741065977207446538470469045275689351376133552508097346841032271800089108098567582632593848861012512092710433512355649088416381340504542201958795242090702008471375618798203691913101236385943810044335117503230829243450776987271428182675757329808337033548733370069512577493785417665998454599025513535471766493290347266492867741725616951917250818539300304964075015357542400486624134703104372548444605873941181284789031292581599653182405820534103245532550905168674482322496931245414500647492384345810836112714066626039108087239966469872549668743643829156255248299417402489881825388143301134633392941084303402775639840109565726981737666277814572340595464638579723166960133323769151905205658156276632331797362751429501577899065123181420728031309283317010229377050922441036444094639735391419717915036415602809861791952312491858976594454337855650243153802863465224849082218727181363683694503949761491152266963234905967165811913023446870629487793228968608383704158317621744919395381731035486450344789967867865117146866036179390396173799724033694958458845285808303192118111629400756180681103070695284974125316703451609614758228587494070144455724955878500206916811341984457550856888532934371129948327267142549292527493627303895442307682485018847995924177667921105024666108047281230588170918009112066042884867024943573033923929684907535332326196354955161400138184548772556848047145001853517242123838811556989581519102324199643567255192890191870826829651783035850994793375433589372375370206036656020414631205748208094903009942391165657088836084927707342904067646186991448063881064668007459071808914270575694158563610093968922683239994221331370941900800902438477040119606265376698661371524569161685428651093737939260759548814518515362837733229609922018473856015780719313466424653453761753277864687143572544734081418219447071057570960660634198162907770302798416552473086099266420065016303887523839012939029858395562367071682189967825728505967329018255721596463967822886353908331411403776224452805665818141214692054791684221568382897123876916483492986662168898512624568752352271910953181693572828962568552101055837642901892628531464675996481448928483253996798009550777758048730047173931064021771618904186759368005399391252886012573174574599699220197823377211450710509633925540988144351823724539819394767504830078776463453659868594728279133147785641648329642220897922349189471601404822357056832987353021470973165698352270115447305649960165093252821921164732990285376550292409952227999403895573480076488933555764142459328364320657102121939446478642891079552012086626392797769458845744445915930806082872099627213755935066541607589600713024967654875789314387996057658829529600949912272085342888370326196010901359636791755018202172229954508061071960092266239762927585761431883514689187556859333371020188561182998611689068752834808970771795728278158588743158717969919471261368311313061376200496625321277447003732653202865389518077808377114844905183702777854360657414023212452831077056516726270807636294066698880362105393144936719126518735516566699950248265618182872601112420029996419634826951470416590934038368117090190459407525068505066221200881658061116681221502057700203037476408771822897562643724332158099565635088480854555167822892154335282740036094148463973138947728122472055687548116101822905702586162835332351993566701444294073485918259798037982945556786656105442655622189131128395208915436070677753477180438610514419841692846340716382223693889961945602066278113333876551522255700566227701316964391499713696795780430750423736449780608084353972531058126940619237154094222773744123865275640963275925483839751201677467922491301882511542424441740420960577131301018485570480028978262589452444017735213341358658016274108649403770448582967454967118812185663778810914802725261248281459904770548868574947403535573697054425690432481769374058961277872519078355977326371392556549153939994741982126446395338598936091072809091497844755219269321780137224031859220918973279602698166144086153503967757607619129745903786474851038033952437981607230588990233596801662075984408799588698713495040681018039974529955804447769854347398541364650880779869251461313968769258614391021444702091879409107000269462678253606506811933664781242890346188592382521707388713394729402109532006191691216877718710748723315570132189426478607618680059357806809126363280600361505503562992360999696956404295051885609445381856181334279601911144914369738556685299785921904506110471318914236364972403224562327195300810324631494917578268500119950243633441022606550240332544509532989764003229992010530585756569319831468980342859191038822500565101548027324672798352508077239912908362333144074033696732330353560886443544731816439677755253336112341365420553131139651299391916040065422754819190082267902532509428012049412398435270951928562063807858819949002700519268422618580680426563916659047764733973590448355272017065490762914537718709115429306098404647570599666224818485837203226137828242314246486122292993133047876250150179223365236931410201309684053686997789544223931450909799010732058444971811536043251693242541737632356850142028235309621007590571308448323327557333370083124521938185840081222756658801657841059805254084586860767064524763685254115182849727571637914162466355131252385498623157129511086876337650260906262857908269427189613941893135340612337295476321510036601070877070455379356837135654220297917013406093617914164548618787585080194182342572803255735513505822806947462751632921662770204415532967426058057686624920597442652460662607640286873097108394390236974488147395429038223484918049549235434343418250735317985142534294687340551196655846796396718056365038174596324095230641814974336074656280486311647607988241051019767424982478060681548759685458142383568824108880651783974678367895288656541924988162801617131000680671456749095743420231405011851284685828498753839237959714970736273053434368481250425675744623028526083106898986013303993113716348948536416792002911886492409086974465367858491225152896937531327601083574384674784017936907488251422706262228360771715418542689984592331644243998754425735184047323023071224548177619661389457395055540858465107872178273027208800534692963724007464175979929281026317348956041276702820662687722653036923311427741466339341452308105745953595783935201428532937575624726310886330929244706294501194907051741291498400330337484177176193373519609088287749200925053908540539808016311196950045950896789083613176098542544911074632953692281645276929860161058188754465021480287982442099751993160822969053217891035818513985112311673920624554679235948863098371502051751458476322478505820899366323801907413253355231926752829588854996558326097594623064310362666088577040059053025897615126670844272026357186678958370039559419689697137599712249330688644626093246005428700734462342677551764450004764913431726760610850328341796395053998744617484914706828664861304075416455384422264192965376213850115979182321201020666453483542405394407494269976097789478293900952206109196185911384398731970600110884394648007092780163793312284271707365247082102035931730658021160125967495978648713561549012966716992552304329271429297962861725192261171046322253593674000749167767708632679999467714941386110400747319067494360613125680105038665228949390923147092279465948891931319566161992371947709544319213707076412684488881767648790069239714617483040759296946170427770014186794842905197084518039884479110080447366349344910011228540521011815092501518850042339774047086682472460662976858921772441098369591100593736844723009387592056202633881774882339556590949023721375034191113241339198731167802884317984134825818704727606187151263644423990756450616717063468144145653334826322262096746059032148980724056162596974094025557541871825126327928613082630374350922874930388135780411791781480072478302694799415719377789762477276441568825605421176291076239100118896240448033271633753732584512857704740477603522427611994256209738003837225046083735456329746016144446479050650018096692143364413332715360725181907835742965760575636755635510231418862583596303301906912676585352268997051833613181440983457013737880847940286452211828037136339548591627939501809893475143080802199621588855146018701947927201969273240737659304921969716325716488020695277891228574617981044266838543393689813168438948329265509694865447892727204312835907020311521831225172100819723298384078825937388958907685973159001612326676062137382403801305467615001385326268673141538581170665520420058077043578424457206581843375392182001136548735818765961579428663826730369489319136928610329427848923822315150524915328592442539115737115181989659658680921165091181308310967886075052731233169704445999434309674466325034368735317959046904880783910976382349535871412951934893837652626345410720665716628163293666043422380876543530170176983291424724424651924867548381720341249519753319465888661543032640781752788054745797599697814264526097933050717759734445237978741248540622563844981097890718855412108335463092461061537184768488549628345427666161400698227746015881155024760381554277321739175328120341795976749168312542783333774074581209302006000513068454049563424591897405628756015484936224045236506447860361179574243878096905329402852017094004981045189008971357515344420814197609970609219891558955567707340400242349555389200045463665940630196508851133774410008666381602851645969407560824064004596564697620245505012388644244288315507001269663374605980695081352601131315672198630536291554377064855884846689122478662882123236510844475919838549376071060587419691552306718817497167792474890771110482460780078573755996644969233917944234305565658289712983612639259876492502063359191880412228703436279875157984297778734989509999632432009722208445087061016042816637472420459371663124728354121158941371286573203510993450872998961110679295613558647994040205361159289086599587539326031891430985758358200565912135724483028999052890179266804794717526082723761483197605206590758733137090081869653713967640850848503269145351279301028696984912159861548636120349041229663062715423065233142089955325016749721201903681140284173695356479058567389063805222424324864083535846371489452990760392548346260432018800561709016483863228339933981751020866524386540454800374588943896698331885071266959809405665989942325853439187108668431437851176842812388615215142783425842751900176581346794497867116200594463035022823419706990519348669813086545351697875981146443882252052996260775246647654398694720227423141246025301883085836958712972643345078462348846565228016394847527341802191444866695229516870838141312573925651966292145442020991892907958001917306541674755874396768194648747106644799720212409408552345588421925417180158565789157112288600773139378697245452518419965915407958740985472768736300211261638234863784176631690194618383070691587492185963802919785814520551506898149401365216526155075897011875011814011533742708358225192821919296321787675027343202781429472111430660482219155080338157766337566198692195894922092893067896247716182617577683305143933307540687931788513983292681379470027623633379554311472048700359066936085328547047550058162684478616865436749777163172250017990962286259852448544701880182936404163968938193219143466562058014985570104256055584627550996172066214757462395560301807838220494268307651289415515176997352385870817656859109330187820478557986205216068289949917847816847115591112592726962338167956583363699592739136715654518016622964562188775729014013452210244398646578038349083770611154825756483501635683090057227197111443215660175488228175699994350471987542518440882907503455953558582380784831276303678390712366145948439421839190559768624487173769326854177056180227033027273736978660699945565461060240812549865550972883609994801476571020505866206794313265451732802076983396929109783269720471211739011588999842967734868725258212177911545618271271348517341604934546432837409393469975416787632925385479114687095887308195952852772115632662201838540524178723728414581421766892541345162057536928612987501090773580239087196633703209879053725198253927731832072345836667887678316724336545612536638195682223966948453240940673236216048656248286265761599473312423684488305390412803183406659043332787832262718366524679658054662923542271317166459979148050243670393405173290044320234069127003277188066158058771632712642165166615721745829126943659701251892883716560686874780162751275663055097825824586337594861049652489837332218497072204997555077445644887250766940320155813608700522424546888336834759861407512691684741749307107051019177107995010605359855854551607101141763218450147083410663121523306571592298350896511212124328566104032197604016217932477226523490578225030191367699840170843024460910455783951174042150514822792224892541075052721494177167746175499938766272435031742610859717878673987498549758821794297066438895965086315378759224681887049893255064478698503648425829256590489950593234271201943914318477579877654088466108323646460982859486936044166012503373881719787141146077865240487033732825832695972570547320662504513762881322150902460075521521661083669981222184285887423006770789388932403040315286726664037775384960219083575476504952275857749965738011103678774103691458671676676713198187768315399735630720873034938658216635865677717751657167071332609951780082631919546502057737474375210048910524927407888351431066824854794257750584934647652705886354155279570247377245984951541998931177646381726832121564890914226024789529016689193627951402981965589399595870666504778567606233543591221730599313496930366409361170305941413910399249358624320215273694603293680154241904482088562667096270432798660770871319920633085371579628680972530218832088170699014266679430428217716853101826390658936980207824372402372575820172627800895950556208484575163311259996472142251828646900231350856001992675473127297635042496784161536220037119378495374173829725998300034171950091038893426957484414848375408162390579065850304404254175872543110413795521164136406909652201822684875554562572808168200460647114004765017330150771720365133023345547076876152221382729160691578923249340359401514311031909058601891832596378854940346768554836513457458833579055132696541251469784507088895552211778852681791787110227917520869993748491666343462367913939741608179969539283621440667409635853034936857642218860279008580428911285408858884411961357335702671727362278857394089136122403535821684806248246491975903523130177408639623464703058730501336560579988405980854611437237943111867602196209315300490288054749648666865831144627613364982065897706833210104786021762353524695066772720712413660097007532406129765899531536226792160871135744598735035694940475572236343615631018397582446757263034866445619752533240288493060764705057212652971049107671929583808097977807830165656241281166015733906114634826578513161274380310687059258467343228520892106744091973551738284933369370004217401470855834409966766282060244179390281938258244383664529727765305266916398443194632682396901497553303886548686342952167763303171119607792847563850829893598548933142893159657235312847385361326048874717180148293859585636164028780357529293989703909234262887749214035083474117715562079301425412191726673499526381341334645759815037290125279979898294249586723178443580571988185731116012286989183003482625638759194791932207877038208719354811028294382708195198566135973570502971566859583179019982310083711311474359597658896623744986646768960826406511642947330875462807813863290823997463601460745982544564776512084825839085181514666047413249760736353129453632081862749641721040730198918318683056745959232468521116125910316012837479739064192258390932696683810230042706080455961091298773497086469551060514019785817416149971067505820809427934097375426984398079813077864967290184726942437655748419400368647290298256034819116932480085021564825895304695481898187485080900592772223098615849108282132866089656241313476174228946833447019637791083029746830924275216079491293374506411481746040070541954688324330712823487463891118281687591846718060234679055037694982313794994817535936617843488680732907295713573866188488021702940087191036662318707358219928330645178961776317849245087978856695938396266108887878116062537507624833536481248028647630160214608752906263705074377606126511385484923299989333825290737227360290589257267110470143189106884874489580017298203920054016108896263660245602018151736643716069108794344838522701901674992345870047595992324064193327099239081194267379229888850544492658724834368375529207751062877945712550159237451679439791870560060698026670027599476578681094672443015168701753927874231870039830614086493958972410461586626755687578431024468812589612745382210976558421156256897735246846351507454783941441479914446317594686095220845599579711925903456195640523949586755031312243264079034598295345082137587533161162833987340543255400519055834204933937931561143933262275460009841774072684698891887176260134384865678399519859355372964595529196154109751013744253363763429107493197635865295818091410742826816802349781456360467448129009019240843151191489697885863251395263069183224654448090713108238822106202810878646448882483922421916893753069432012705341412047108308259335164567653262077141084457271912382350358869297204374222751342377495467613434894135293457564829109059207549601438819631334867574907627780256301743181719049785493243894885725149427217669812100111768500378394397362737645305800701924426975794989115946473242196566172426240729859329754477851584240536849241455591158119023030130298303749543373810331119591128842511342716268348360905575421492207786603763044587905780426136778173770546043131554265372544858328743764102947341025307041472508864502012908829498758160954198737942154525600492988580358039198752562508729847661795328875426370828329825500925315461244282247489320291371781565356611810105751644828213556340249140746638912213612454967395746190036002371074196727605794113870640029249694481557631229967376361514632737064760816429730957409389610916335041121300955757647413680986328854046006519720486372575467206091960115416016192203436549612406582738819950300206772125198500473311772834150741663117615088577882609547174574857311869625382776289072192769019134342322180810742873813153991830791943490194981594534894786314880060504567068933422064703048418557619388314536973226513442923502814573613772685825337509573316573568671211488650355543928703087044367674979719764107735179911614387930502635971587370292066601624805697112554259870324969898928984016144352317831573064547500380743522812966382141803738759941035108964671015595446795764133020749009033447622259417187206715704464354261522962428394842779798952970470112394915577427733761221228729296791995041172793613605516090229361433513676132931513587041833971808668543749357539306468718136364639235950745515956882122626905611611957812408160708205866530249033575165039242338043621031895462099062892353209431730160592642981244859904332378263452085181506015836097593399378337628535792437598884781490228908305861822069632625141781947695145677266097970069003791689038538384124290850767733815808199455685351580482313100462648841440920589539676342532593291715021404758217680161503940091848233299951799423331892413313270807565512109348491556407890314636444091122370397295078791759925232154390448094758329258567021238626578660012037270298925373817128462672514920091959926996110022147841667336687895779554450078885291475589047396378288860965484131583527801530044518956705210255069091812179641060626035356336622795778491578765439492998887452865038800356117997944542043112322664668966546227930580728120862642960056189930169222039055478891074755838329070782608234090279466523339116010263469884787569826763317987298977026853566851668590926954643691558694419880194834168227749189953632720624761223065295949869188711423034763784156726795736080672183312498988862494598995540727794256819157176443678322839478270114030057414546482402309750556877873197548403350509454140807081684313787613035955491476119909439133413523865611544026322304630517549998684523938140314803003595175071900908494077063812318177082639896783082295637194817409329851834942572956373817549506115106772404583199568572153645712650245999031592423139208097023999706754616622773746600565916596303312769023197046920829797216781697757182238730750438782686228555960273887043722987470102093822992513648103399512230935867949677164552385201785604464220499099485491346627547642610742200956670610198777870230860645069472135178758918022903769826856346986650588596953608231504505677779542246120037702339094342252064087552517177317062129422652200544149107555222607469277819994479011599737018721731161487923133554683596483529540170300730744857752495512987769397129860781866674279834516598110647646633283057477343704151046079416199998519701135604670352401827148147542508373321122631367127125918556208615102211434397410733835399759910971699307610720634396272921401542480684296192769779507093354756542544221743658495143223522621296382757440408383258269034944711464451864833221329522369057171517820683123008770650579695620428252460869098648612658726566602361769488975424013922578365925409599115504591168995146639541947218494428180920734072474221284548692427237938375822245752747463872899704031395620932376000512912704384460312045849616111224334172536405330837619886247591672800042791034642178675616896668437008558510197326892454711823280707189318942373098767084602149193580291327108896668118553577378748491405296704804189815533205503259810724144137394331063313610345005924316863293578185947136457783494557634638004385587073367288703587487313225414923737626553291523836114025975211457922799777524359615872377879717502266446975895650532552416348538143747909194778785725438307774739509958700033199641124192015981744978162726340782375634307616657011456500694124866608722687078731879919838546019176318624091284615217643103053737746011089329535614669544722647118341435585598833305092282940672192883516784160158745936266978257121307402724483379759768546051784267712033736527416172185822871559905068832090209304990910852777978264251964323171832557107058325544101245967235481255138397181237424939706852161625876697268537247838696446841403259283544958723432951926201925785158791647114719780106808846837103794178952698176491392425489718260073650752239127305151316941184854628602823112448629363704692918703348842152903825567131471846197836288462907918163851508251284535764232680964737300889698114317342490503590342533586178861737524566436649411035264581483950339760267890163537632779843964005133792296298282323144694500314762757619480910670166719991825739299752343653694142547256296332848093132240700445879831542360939456584202932147163418650293713715801878002138877477448222521050076905088335282971597178971291549352697450649434742141840359390784368637725172301483638892774984919493907857724546323879967868548400180620599293435664579544866385007545387822100577883030892794398248883549116573957760424541681234023148385043589399387027006224113591364855766052589941567202217336121939171331471297881416939821577922410084311330626674300892867116620461029397421285672418167772549393793064981542064716812382014867319880741276756631645234078944047328416919509250481374739271156971670175790948692828649658883734680255446525296015287467638749819796580613063870808077726984331071778646426699396094467079351295299405986570338315439517112146297288333369932520752999244157644007975361348533957012361822599370509275966962478804588202299078279002160824809909503800817101039815800605037985728548781856703644704938959536819623551809789731529720314681085658455276288654407739668855126289498857827737826912528740383315422702438072982968774240003432597946179496100869542144057037377706207931837032285752177735524500889569869485302303763551908786225695222467953737749757991741440935422548793987964466823003849567624072591916878024450522452468464015761527006423669138424758921101267859056477764352996637345185085072819832868057341926591696436605527171025639192667927145643723058999795029186221278221585438151222597923531262688487154955796995585156573122416288252750162674801348955542845376279312187507651190174254208802974944672797219961732397276717151688973961418116104654577807896332566759109080941944076092196624417917110315947163646339063392781352370252777540761624378274325548932835733551796810137858608432497218591243108675025168255320292277429922996826646148588323166114705256491166278383428289031077481713879424766222117592576719888294840543076778157851138876366176387759737867407590923775553801348715614864470244725356266561626802455282379214881738934651579040400234507113285218650028733006731096269013394002789596049295482501845087018240054761458669561657175926717046499265115615064583347873125745990735605079020117917723090216632474715856445041616245327252319919240233138692515648911678924114436013730227688302152786444672717580109584913464981661569754699054940160009919426106127516357272584242281847796793240137168741515379587275154602356209235273748927740413932653576793182882724708117959542744147337197001624126262667935718598055235965050619248290696969953824647561566076114770292542224497987041033150035720412107427859725409782456136399955851709948195172952148771656215247811753757361575278069049986036053331526866104302891957257188446595939248960558824466246570807528585850510634278092656794492468233186051192922104839528344538186380824959744052918404650240977468351232979349835193473518371496386200621418287673267515847303634766210182674210339753563699054208116897030271544406879807002889164802881534788142536754722770820858312556105614428426905174746106492952656484096210639969967092299539573710614935613287356316000735893068279486520863440165707142850598205345466424024064223814919117009016086929011532057967861753484830104273100904741859116905317166637528170204779271748939763987190084095845169446051239154199789187358288713918007635217426399387219885969744610638411046170161121438854667131460131894720972288737219167891654848238675074361856665750278093186995328374904188658435052066122958944466346510511589074469687914152311332492024836841013180867822858694622268839376405287333079219909187480533823762021876896994074475657034155364555429183575065338033733978744726546390220264614373262125946260889998594023778328944972917711994630904902596632835440380111350972323820484153962863524238753752157959155484913419726981107332468360894709350432452281761107985487826501446856912966060255851617569119636690611247920784875416071576450538344217996496573290331793019533839528489247126301470521292267654275675950582697629236212359276000638640743195166960243336908964242564137561829690596267899561184692950407386957959299055852456363169927950726610872752841260215276532013915709028218954048099075964320934933730951263865258221004697660562509323591965783763684172855345675582283687045885607106764143817652845764342403774966316804280242679053632940774861187075831163818467824371800619153189015773429508426357298046838475298843098330770643717099015579293645296908001096483799052403315785960098582854988915752835078118928411723202380201741422284598558596290659418379274919134500569064782894916730312797307945750234398866146854558943448391636324588800472333343503255274442784080423062395793072354313244694952377956346940658909861502085618457045249517053375406240402523149747166259665200019307853743594746412350718983581828720396254437844111537750244500147195504608625541830165609928302179859738875531812556962840793498852535030247561846002520031788353309409699975320210383288542867971079610331143410289031738021973970309160315718979441986181988742032813472229843369054983608433196112790584379700997021553640966356895237429913277001549187511818655937770119355554905458075079364636540887298011551021453827482532839054627070009666287227460220615384341732347423088198669091079472673826981872758682008853518591700330762963681896016590517473687202116493036587928329520662987899622171304712742377561311018527426753879460929892308016371502992996245043115228609053159867041464937132016759736476066512113377430602690913822500413921194179327518929198513965205090562276084151607129575151411000933259169336106918022902627085540143810808117256557745427995834320461352205953909581648179416465129281607585214044248695240462920264155318691465546778562358342322678338601237405719707514058087259726887641136109814315913754571458148803061951464859661132808170728609805953953951195207977649444187253581422417144190348468343975198598746750775256746089062987841368084263220906851668669761916194456540805185643006244959942133329206666579998499804003348240261710129497270066793614295276197741918699290058282754134151759576525537697279612740335085577658327521235039651269807212001388948734523205724112885968847263682085668852584178598538708779514618262019133079879073686838269077094372075452140146110761127054692922904330781399682053960800129561075692774711123199837870551419977728350550577124162767577939708731704031344077816879736105650630778504482979302896319460480794966343347079432947410017256099472245731467122189593870373484399675962217940838509130833561163835663288929079397622918886793971830937048394912661217995025181270237601966724954270707594044920232277965192025438306038859418694354824037722394895600807557806434818577545051681526731044490054929221361432758019328164005724307706687800103966808973943451061993745263379029966875194747528959680105207844136444090195993972373445174644662890804435921313579437272202857837631396350873909526662336261143511923482475652770771572239189001905903258859633720303808286074855561261064726447065324029385227428678239302181859090978460093888795559490456294671222719578178022567960476773526616860807391803627347838403092318155382454425576931947329701014147407124946198257074571357808770091083649591783265137912545052407485192539554589836932191041914889426901401203331290874502049243083794533594542619417787284712407097063244854107040104487329048737467225214701485369097384047514135433827181070346837450357640961988298940588178678779172435282343739794254769057178896021184615916404845208764258428173841812777237404797789749615906861801382540803772607895770116712327006656310816533203396803782355364538883669671113552221046349357953966350517959602971011334501246358150985905725532459453652271649764612171253136886009467644501550646993412071709232422361950602040079824588263001038908899282675546954406582501842612158027547829396431588933543045852767729188602289746467729777075735314643310847683814034501770344815781543856280068438069277070421172804343798606963419970653060821039892319930753862236012919844601782969178137680069435478988855842934184412650591001091571283755013023398160695773461003063509239637734314064058492613904444846686059371962063594659986165254011594800917870475937189208994667194923333244140904295664196992060053530325064687028064410263085283420190041809257925918813132112101841404960410891431525760319759808157595080347522404722223926415703766536149784235773495717141825121357361394462676848050411731392879330109659404281038779255685096117468473755718621824744104123309311496728572813503610733773107861843845265226060631596284863339895183888474073802075407509684433688587228012526894976012462934994117398338877965348013064465776571965299047536529785126392801714987481445667318061996774199005553698776093981013789686118207382332420361950173302929709463454282434194698824060916025033912350126156055917145638780981020679153073184277750039087386962124006209660637011092202146988418090888316287777978812953013986414584206960812088633257735315103226685044758565978781685288271889451708417405852488538947127608659213284384336071340973820942000106149960544799281157663038779182572833938119671601196341600280983973842265978435899420560334594658776127561959821512252294641016041106636361572255307942062197597791918857735927918667838551558233830969915639481203823753489555864518988984430247747203968152206510796020142724128750754700376299731603410069798718327758160066783453402915738519846779096265084617035657481989161685660146254004637592648542041163515967535099221462886475338543434262628400063105087460559077727631104133569062249147864483346999029264579023767112216067604142162459667224123244623876472928409008001540501930159352128649214911559537068688448172564077521496833722850718510139331103790020764691495852943201901357774486857909283673537059978527395779656060073125442086194098141401361408276700449635720085818946018568884873590897115749513517614523285898628884285585837179872312794440128274188942174017412856356257954540051500195709882676073500193982594346666364461018493503855577267283730317351247716642235317703515224715446593576631114605642233994134180351460126736676774767151254316363126590788025962426764812464813988992393155545345161566148533621613673747566346930930015630339324297267873973958912835921478208646624491810839623508282747993285853195323667540428411683319500303412146245083880519169153919564724974954013044426357035005431793253273095986789697504111286107968863477043095900408528288045719089217100514450016624706640044766074798146717632991788712282493863369838080308250728652914837287279128983116891909696980265666396824589758569824486368610131549803327071577238319022188227922967649457700126415156658182634775048377923190085163603609936023835682290397402435850653901089032321668215743232907405374666838726486120548577046559621367380704851681240561016721691254983805203113749778474367267104401984571365787285394824876633696984097231684483176666977670296355395880848988414858858656707149347260685544814749339663228763610635761497255675921986154978188719151836025080748405648286972336611124554885806719687699685662910694649594569857740304150290782849152634328412136078918189230511993128580302981234329073274214195124925241141667116219444351898433766071957935513226009900278274198917716388578075078123586482252756299982016150280033290144252350317061867569805687569931059257492272102188696294551255343934593041992130728082258625995238731854218864889276997888578611953762496638250004008953186428463662347917577401673676521574668194533753501770948326630789070411669067016846981949852957502008650413854081807289130857521385082077051775126652494781238615549720599820484896095003730883403279419869286443759110549813635740268849864042167354888359792671709353073886669931911765402584349761917157646465938704612381793561326512891945049219728526395615327825401382814704779036307164991196580054395208959833637736799372171185210449418781580450955358965549056619648863757976034309832857353346732561475634881588514284275245111751934319171952820307695117201424138940260097407609157102614097066489124842430720260156014802423711178268199927368196116344446164023464108916548051915101471940524693719387873526156471881844148201970298096119171085842289806479352286924509929363326896702093458830766144890666758856915950384985114519745349769457391617269471893372662053898783372981847362619874440990162545143413815402020951801742489339444730552831050228616996689320514884240360853737534456417676165189676033718189817703416094358429956988034277428307715010697285314911756248375416253791465792676016891731725138351246087759717933598439591694943942072416367712751067659477630770718271283702009981625605254662364802213452279236930885780524160071412517446149769562988039892159150340200295533625272679260129096683402432884179871404091619454984884727960566436798709183437091554014867799955566947006391043804770731425951806818045084886824340215747192555139888116699813303279876831492904418752319128426149115129539807645632028160787479828297113986150078320950685679414575263289154279727171390192421637451464724924345317999736020050142780364577142061152277427955841530829481967151898750580216861567504789666592039461917086091550046446859414025868862129084178769261954457689468784111637079979512396918601018073760306479665948303440820332190285492137665058855291697198498006105139569622537622894182062042175509589656165627958567581509873206449678994590352590818447697384669279795097913484551322007549584484140995767720222866242852076555218006267461474111046782889914069640234071103296921907299542045272470474883886255516100869243046430060487052661116028662125121792988637884903738741801019381679798871401821934215208999981935569268023958774934047493842485771856723123652143647123173182056770719818653626778901564223572192202083140502736738922741559662631240400336532994165918022677406673925396190197699011049319436496753771418813190758119784223195860458898359658837157560161946254579899187145285602451625117904407882311951217358261964541396866518498816809220361515203328527707082159990553906965538607549077991446070411500911453418378220690957691993354938421933730211344943219903657771596864024459373163412394656457958098140841239485304388583756768098255543875409290980759156977357582894375507671511350391151207303711838298208034869296307428955148536563753205750037100036353028299364594060032068305629623775934903245692751809739152820127954516149181065298222356593280453838762813592916748693254136325598157222893142185341116446498085005594124636381381257442850242874850734948327637612827146132271819965024052481611818834543834542203967500759620755316706378777940756264400076861548456920645476025823891145116516897616504440765824614739458383720950300076013413233957949154165220444661588581105491126335650695488671135664855055291573353136788006656397788678511221268531140919137032325096210621786840324146926221613250848974793953987879604446149591165960456174724082214257953108500271100639768987977845269561681696941615780193438047630003055029973268107502414940085426151664180187261044439716740995365653617860125309747989663804253940186535388067604022173750523965922938675614136680142181944789433230658732173550696751202689379618856617069772211599250719881420776743016692421521379849081413133612959821288360802375176694224383800775088323932847981936821927086569253121731393849569223888287700749113599947486608765445191096081085544407282256506365423993053595942240580990733977444669172529117074690069333770971638206614699521825293084711879822686877490982279936852036791813778271373400498284513792709990340055990661133831317602087444143192590631557519619224274322070559632621463256598732213488195240560612026850741409622717163863675665863656003233242267313050500511686435103104864518849898273974151897920821487982304475681286687915587016703195099915226859875195759928601674987246981177470114333129457622343886748868045079017773339670089571399486906002066793517682098447632834687177208462529645928345521668426446336143171125200032746823298253914058368052645118169691061672398936929331630061440077876338493036984791037876541165803096546492043984413839926326359617006501762404806083583768543130072578551878585945615928887314106518398427322529490387877914972872986395623586428261714796422400120364015809427327978352288004776906828939424936510114439246972310918478882704091806106592992135908895943773084730704381188021070733064261555985225887592290493942536777150721376593325725040998244886791187207467259855346999225110690670072482838364934532052367733702967944268514859784933743929886772055828522226751418144215276242975885026628119883690809240653606445982181470871999874098967822251176494972577909920524390989741357957463644579159712164552506659692995730771061057815412924371446804942558738270015728921627890413138399948094820703341252929314630207817142489698499060474555347508888235249982182684586618929184503761632411422674066780982330043026527002709125143117236181564734865423656749873305708337451614430353326181603546467705632311923939362992447938146523266420364436814744787348099655151396819958472073193305315170791504820370556437626233900730277830561903793572783196595688314950188474232497368488623558606578454283629758929843721403661369266186154392364750849363184976524425442500637096109435195065352521457920938132413935020368863712055247345249065274882963009690971291051656814156370273882485098647606845587199207186080563742356115317284407335140423713104558072430471143350326813412872551994090381351943870127842847410240984392942118492653417151124007617916330943156653666305094410130451840063515562806708224472303954043119006114389062607486232673213442146188839608640517014620151250732238049754476643290042337034032464573698078392498946372406353214033376324940487687758305832954762711091348111617904886082031045810594598071987707393827590479525341838770580448821794126825537656453530571259584565033763249606489828619444180325583895370806474102663791671462009481109177008851539021664775433206835417456271270935002614526866287742844377292517427571682563018319183566873714953221245241563690453844709238952620402157761873749944169260185528036597873043836434025249786558136951163870476084051703873006349448904709048680495602746812178607163684084136204865912654182030046459408591045576234200650281655772470138144001842292086914560790369104844377680008414908351042838869325709776062118451261856963538065247799278879345867255785346703184630549268420482269170644207163651780477587416660475731527106137293175285806931257059151777598658609222342397882241494974531371259984612892610678745775816655485055366356712111977163646070409117747077291450257864177395575823027062333635342855800205439408368370767775181991157790196950460876178126803763408123930561901438083942497776034135138945833095419110717980886780200765209874825056002962990491746414298234343744552149467219397072383733689492885906197334500876290818407864773827726842490809735908913233110620497207784321426190597524021832368465824987489277176494253595633323420330299113465367950101042027298236286147043105378029457093893866458437975618101597688746278888461936518283153507908870666152900122240208607312357498398188620321317785778226839548781053485086096328939565603848373012624513093485584034233127943497426185276429715982760461898382075310974173211133348685589856669526961935301342038962971967923802182559619193443138079058000901178646037942890911941294615545565832973080288279465776663301484201387088264090222105986715604164081578551057957931120863961954862560659066725913599218181977316850281704446811055466720102930186711744396306895831852597488436671354271163216389913945359484150228782446725965435871388425428385285218214282869969466183257846114603711243118232983902435780690120992121334193757521975462698597750669996321727075987452633711423242782636431430123066850918159345811959042606205445064670159726555126231602074593488818991665761650348732359701669796427923729484148423451370946798482936137299777623376329285921827166611840194177331187255939834597384169637057166419779318759570417157426439595581694433231168922651424680427326350355967046778866840841176338068655210833001218025328601670790621530584022557662063961020965786539057173835789142283928086033563722221793758670100467726829157789748640595295738639612908982633477872773539737466856446837643202846836802853919701534784534337891416288486822481594951503404300275367571225346531706620446755461500334256313207916447221578995740811521557085944072283855557177279175629943247845302753392745509000195286269736108501250345309677228721031175471518517492842299345822958226136644715158072346083996871062328715365645966551514133563271522366337316983140777020914632098850552725515075544118897135876374574038497916226317897840567240888205534276019952976875092815841326827980632184196500050208166204644982601074833431906696137508283361647284584560481086449256202547161816989684546883578174312354375432673071952100719125521049744158721294215102152645230607404409736592746102930153965811401542312085696559511320306441816613342500781547782833251574431285686117215566245828560753688372560554568706922470670640381502764706482349636021679450231431645650877232749628445239040282214803863969887135197605575804889269731429126122442035022900039900226638431679429674873809786903863911580525935202147620092559448372533020110455678146671322098514178795992909727242243218862495484879047753176413688113306839365659098946512069392521230215084608697710631186036780912266584927204988575780839852868133943427314780409829202440120753611247365862131581147394610474412050708759031318252285950771678823177730500843763499301006707511592563272669686384373425279320975157159163183138092671570460079243371937825245995274844054824687710472772598791193083003373306347247032890534433554608014598421635561055140222422201253902588716524148444196162752880284871763634281143084921079568888990940345813189701966177915228085228120411664084994143322197552407697719259932898462717734152422232622452414913345096467410486010458372829142920749357046124594660155094545760061873912596802090845579773160173781567471867898306385023196070180767539158023314856963147125529445675274695462879044676901507701687506661849629280506432887324306509182606347557678647383311783446446937137025516681339650863529116201624831153708029888727679755292920178743914180954921719269811337688667745553098857165886829472328990244504814280597722835482819225025646169311304457786594283935680704713350614971024612689504140145431957874935495342021305991166624408434618669103501579555852691853884206009188596644762862537317957728547668826967509797624478459647998451677540262942855345965571398526125757437166130623525337992089725602596641692043461175323151298748419847209894056762589019827233753642669458485833834873339345597716004572482011277218879722882241116487492279177430964966331619666481423453900876278785484566388072479221600229744540905064979557047081968874953782766378070565854514117402696405267498109600657912666030498721140383305394302322587699755569443518097923242651906321815318122535429019927057426778535589834281794049695456356919830868374512310996212433900524446243816773863343961776853428400342298381742426007203755251237160048879272056442082658611722390810209109045248741979876348637392970038236286035375213155174098690720773534100785853976980911173061529818803639456186393950207274269984862327903310935952909971385696693259212221074785309688325384227048530047632269563469551584235082309314017431633126331049801175293083725138520635254082538539557284231091388373962220914692275861107415942488337678348388865783669398360043009348384483246064582501077203194573484612944633671231779696512420923197094941153679304581014750944216348978247616458680292630319346944586373410844332149500101281562674115757000648269602514257753168850217843696429027801541195997444686297276052218352412405702562081379366164170318481602308544656680499892740231132479096957069847864571872893003312962461346102532916103676742803936483713756843162083196426467811209480414026056339703470714125117045884073183775540543545459883519197286328548399423551098170040150721974704481007618011523372549002214907024371126419261836616044849827736644227182089243674314136063240569058948627399856970604793491308477777256422796813765919259575095064932923265285533011344397398861811608305439613868950892462076812135266955520971682849551681884565843578330727899546531181687474964132746720723274464654126320753668205336886881801066883441377762860643455421304782693238964585793256380369984234328083249752343062471645834422625822522758537018744377818342889047349443825951158531014463665215713539597270620194403986611959786171239258063411830894848191934823118213114791329326823114668983145232302057591342741288362468946115349127047017952277069659061440314001313561794515810435188288705123450118938479330292380106435482845963819122039174937893245269804351016632938999555784233517412404943396916734357440621064641282683433312540370042959925529680987107944466720447056363493142999571251486533914052858843439984831878099186970373713338364507559787185414846490885158902253474392853777237599625428060122983462778355387108403057302338518614449515196804117634908997623406512312792113090026877993110356281689102738404479615531664787305177546796505979313696878934928023547825742129868642604273220987232456524639176445919922107445581434231769753344112953056423264470346592791762050128049981115790802986482219932613341566891106051317403318717496357897183684670660464031741645572755703469722689553527396567984054641239730105169886132271955000972925226846596567707918110531862545264253368246232914941298588897567941621444281024146044562114271710994576179693737867148028760277891738508765862500352806679182873302633158432999974749091372083183391042607455462646253173227217585874670828069162243860897328819951765476176236196030261779017092140821144671388313198652443723999386929469020280948251521846607349998290331017637783352086382267314893387577853532943582898953400459065003969215767727641670809644077834193920356809096432308250105123784298830390644301571062455948075133693841805169738959616591451737886136486223081193689490692806130092393475366498242176691156459536871712646777285189796948941499665709071204679363576481613225831414162472556493389712344243744922981002981906445972942422012139254491447733570275708423099594522268470827268776061545820272342110472589054342361714953775630595908472662070769284192923516218125346336164721698590836998963267694050040385290774047436075100763372963591692883529137129584976839224961199037411017773684682218076494435417741396776084346858517369976709587814414623528289310724463568734275324786932492253084078094438922744876621211542605368880613507523720568025528955882668431288256882589420572937807318960770326465208422155509779745412573260829142262191335142038330889653223854600549692164652498573728220496502001936486969013470312759197060995118973552429652476803117548914882928866699140300010405529504085432926180977981235388136084003678925473585886142212353986280903887622999475177539935355424649522829864034784275907678160932296897274588629853719604413241858343006170126645430692012966682945703518941533001069428227091724603024516206359118519232224355040843046064386051491662576878064707031725218746843525117484704884416792298702558233185223235682987221398151896385314876466686982680614188378160590218301614576945664430730054781454582525216339680294838565278771320096440954144564920769471003492682219769657549007104201542847749547920463234261605608906715182333316394385910508258886012320155380012137477289745750160127149548317208117365039985979059917654928489229480311868133819757328332761368188526612538300232706588423612309308411865210489613637194782224357117858362734968962666748428260329158770097842497945608853904988746294377125063121829012704481221611224963581510229649448995096081816780579271083821565492040182758836114992971107547770719510972237553952943017588023721425680669761091611154274017685720321320303620161930736177714473405094188764542013953607612539969680374983511300510992142337372749512045577925395518068372328755168456679589081111705586598859348102733923093111371332728994206058669878668484064778458820267672271761325463547721801979600404951703296446698795351343813895280607581967353425715197513134950347428144930442696771432464628219509227911879185649652596553310828833779221118049769617965084934664371465142679411182045892422169296687791927892198912693601508724501973034880130649201670546135294746423112463420592612103844539830265737142872403657214942866280630562502886119158937274881041290950801446708657187159889110753422814010881499461683275242346177233482497876008448175963664911780761447840247880873203985441030824999345388377324632887289575344045931337871287770189538888331406138224920703562005168746669285359283727907777547696029647461987411588026668053639086338437090111786189735013338484260820250997341987662129683763180265431951268045970770334938052781867094996421922182357689782485728135128069713164937580179655537275817290582737172390132141503984304590955518369846958748980192360770534225452222339678452632134838353148682181851106275863130727476303399578804072412585990527604316059918344952086261848210950112659738599417874285474887261423467984634111405250395826058017497433286863062050625149987643509038268926198096747987782908353576172718150590985315484612769562903647634256461534731504658909954455470744878360076143074620787783516347218452607552338430588748163457848560928475967100157366114715307384689249721926029452755244322490904694827666274883879730909275068225565479354138257978835573632535078920557286343755996184213714775599468781857418173474631193589745095458162644926530680630952441564686074057387795191114897883644544676938701515455728985655823358416061476263118823660698726556065064086478636646881307872148536726532659884793743850012644055367238919724750989422385740675544605653008705101146107626588648786183685889355125715545793912470407054196911208071355332103867443191330864797592879087167536229788329439457873651368726349987915668655882156998376545813368063219649218145430096321310557031699500809200197380552059896089511734146516909606737511358872371438013897344599369774935912674131862521264599918437540967696004640436390885529763103904435033264562952751055527283968469482901590765601643068921974591845165442512603937679341561423447665125730787178112709140961154892261283671992838827655141566056242700180622670270494566199547906854007651678556128122665115378112256532932310332477176207130970107966889653746814642285618281946722381753984428218612551390164732777766086204263111364966402058946544420148873326856656697895665352214818128139864823666374873944277353508642388899442115849751595675944009256967772327204437848044647566643778716825062570146511605599365871850515247307770680393980299871111335211225289335387262773591308996630565422058273063184081044377033737562451705812252187090672203186124366965907392444191432925359137620472630384115087118789668823365871309817054493135884770924842716704683063705164388329170233941677600048237854481724435566541495989874466077377170187863998211266040150473617738660749156232025723466863583655255726241220485463386988620894047258176789751089900956973033453907095920896968708741054321666667295933209610251484512885487206268691235474264673886888775817237419198786073903538767898420878124640123704032845288339526737278035674383374307689420014678235652656961138343831925969173633157897883884026935415477249190813111869772218062105556109590150343309671983373650555865873124331410097389493683273358424921252596753436827057946030275226846633960374107822896551702613748716949770610619668572309228295193008605546352030224405653603275609384852950376707249725014905676357660205424604947157298685919230957713241002940014611657913433885110386874235612104087758389623406406347254318025568140939911278969923762461347372586211201567598033882778022874835230240754030657888375172577551667803181865269568471983868609946253989121432834713646342593958748261979577675764268218291605101154847597377579010971378894672135950142106038453348850438021463978003235520981079716858582684460914481972882488535647335636448163718108080151863937351049961999006225072474487793749886597862624643396877859951931978269009047811918932476555544091941153198533764471577828094819176472861766113835219322385802473075604210568935897564747206851719905921699220152567593667572883089486152609789033697398796987725996115357583311329241276939844388580217365022942485539953491439373352794215477782864115662979747186405640309558972819501922533302993233006799008181654949349149694317738023358394275133688939122220544599725677708982171591204322046419051985100889889592854728032743659520062816538793442336981435711879382555276238478014668941142187262353094032534559613866090510863294879810229809136243496261660047739797709561001398689456366957916456049720522803145632126458028915288044725230864986687815279170916490080009300136176135118958460181906421532736169711733221995541077032237633563793607450489816480427707377601498283842540235094977314344191228539859488248456416197287027219617381277468717282178126083060100153769467241169418964564324727686459466921134371927266406045778682353244772351647278899459544385976117638986408483829164673060560448621337536044814128013918780006698051412921681851037279149474886525139488140855795443492105862218677728460480029695516580250427936451763357791709739295978834148957982453195721597279057586439512072353995029600579417651085935771543889733147382314693539339170836947925062069602952569212419263255461074070180897706913894178204919180431210536725862454754403635927483696541636963460020097114466031545276537780447918405633124953023003142227827679035363305768438123374089967076313446285963463465920800446372103597478142154286055542868841530391449474038968636717603734883809192711379164323709437486655398063512993321358478644493189986012083469849662715757015664683701805164848348222899519493907679846791866360310559807507846404307006756546447824994091175069962494810629383847009582846578076092980607855285108996311746883007643821939699742477444770043557025171991021747436486250456177442953470900674093221504511031074261993325046052494241612805974943336502980509272175670511376875452838452606952091276681000097682761998474101959281257222704085294902517984370175306987460687514291494068825892057396622029946669247014787833319223907102127076374612212648382326023007004872102804461176929235781516163402054814276615030367880399223934237626976890178155088739319040798321906689444940272025743653631728509967764968813613091488595650887810116000023918123948666460169956196785455165760773651440415890747345812821239463213455636728648669831855127898856963524028124618572321282729697126824388275872724272893676298152075629294720449347470317144813232168847837266680075663114045470084382039621929137829896099279296033977089070920477875974553791944126822610638256091420947150708670743699842247039744093831686900751693491352399393877969746311470437541515995279164178192086909587129693352779591470093576646916302245211845521432247531730396897302421624207021148321053986972596302122880275719107080922616802659222303032134437610521978867291631815473623141360857999339170914934672533690611776873630391960346570550042737485810224138350754296871460793135185500261698137225563891629817036899344891324882623261878462249706238911769909322709269088396508376623926762617989402258215335473268487295025112875011187367742659405120708989908393177478117609494231302249323180006340969125048533878357736462153120598424984245697858161920731945267765114144132692019940983107944634061145472824992625278471673621487623929474555648136010476452697857143426818203763237190086511318279339230814579990937377896706575261298496751781334094779136691542392741883564722437935058033311055019402771620101481285901981159421643115528620635488797948397983611213342114682829820874517460254333076653813863340681075804042997388828686210077273878982486946913641029404342561390248594295190538778520277970732954849056627773701368519359011281884850422308598670490159655263513115760819131654194794757469859628628350964757883313192316509262557693153581684334560780488338995539285911911624380660444594748488781486057220904772385702374979623174019137715342359102534485993802127432572833832242228402501636510881548680584715345147727966449242316289798187332129442525476153355546710443431573762387636317197253995081889491825823767052863900464141991560275278155622592830190405934276587313651908356697073396916724954388591117895338748654939775649178003522887373327412775384304272706924313004230686595054058414267499731416261905326342704603262187171313928255202036777484384380903692600990085887231191461557506729558589095492507343583362798031610179866850818448169197400797087819527554499373316225537319973518104679445129097866658617142982183374196694379293833014423730551921431530576318874587835785252014588066397035688782826504468253391657141003062470708844164375144525972522972371917547224134161355078668158214827332758798867268333620082084721627804557945488609837453469328990956684594262765555773332336815744294362081855306371958954916896696685907830012959956140885154518855827149418039956079771358643482858743353753684644237893827830194964737886248049799919779056554663304034182981026930244815358366384423978940078725401620811377551739074274672735984063007311231272999381138763995230426340887151813985274293789322249872289908488068347959069919777635286879897761644079417194518799689197883146997803307721430003953283328030844098563377201083831306624424763064532154397487296763304109264929066248773496055166228529577315337635656120627487820206075380408921579680962999940850507027500628468408896598932349812559360329345274226112874192826735156911724866650387332578446877897751197934497025698824427568222232974484299823708898937768122655523884209326229990395157455018914887038839483546759865707255699950922962161619838837072515022241752373650373707053160565249393540994346809444280181913527787284943611491949741458072379277010722491235506015244551026145573976794472496649040407458608262407315259001413425541391659766739577137454478671168088262994945392377629302564331862743717511385984199432706836531696611544900344464469065337389860701022962266737306857452953793075255168600590261281564841210544137652878318522893281297476139075975499286083656352649153491653077241453164687312778130663172292745100883225415463553419742896970512379959998178089262520273284397993936228801430447411587478470264751515555354073965885787099060855817606012114973372651096806834483482893396591221975200008128915771082877016735143972073927192264575467240842387671036958622650210297814204445089971787614542994529977029590696555714651778610142543357431675866805768626050786423719127847599429796079295030101518162614930238549614030782155252580858833704365085420219248838810032451765319473538928587584646791674680223414003819732095572580795460306018491873843277666525777420963331127439131939687694342942889951208930934472138046305204424200861075934586816018682985871662784852142447697539554448942104605542161151447781826311450522129431912939776305925280280777247598042040322382754525662252787301284549071252371282399280737002968039057698214358580745938907440085070822059208882338341950249590688488472997328321848517855182107361941338091638078568672058432474671564409551474931912648323990119420163396601821598466661200175452799528994030102533924374242453691312815628062641254520369521707569249511328299436036661440624123087455057791379688239386127847245009288798954466324802764327401340313539965572752495161183121278018521890344832988582129338149849732641210900567974601025631314182913779534791694453963766372095290784884328649377115642398817619682490178908992821421930265300120936672605025385908345026523735377678265966210087034412298663706541191482345818194225506366198832829173193861367255153400757877245775923681676980928068264148549555935199927267826511415925674784611759401503090191812406424952665579766640621457052917914695365440238318537034356567579186313074441299262177932135858454144047309129756385298845821684927746444637131093500292426265723458012083750677771403434536424727836973247883457467143835682274533683817712162641575771806102614334289279176770341297843887409041202323580252052733644933499783705872752789149514225976873014489538402213672084847959546294186616112333091084051661819136996891360404818467911071751161553697116247576185648590654920067518677788859418764909188638217716453319790273592057124412464882603680461266433522347657351764104199061772796094112990532892097279015748651794152852680176727208135152679644028865315204761367760265703434754119961733090559416159181831843734000144648324153759015731887925375525078561643264667499163982502160351066300400341156271948946876698637560557400332183609631164524538580007531508758420744786916517377503234594288884864024071512988586812669398346303366039517633049877321234583019448783282274082851076863836910038512147349032278237324124848463052866903418701257943022292051916235619405322334524932918058892591922064576826342531305322426256220010130267527014960333912172988867183333461200383561409167590258411479440518723626200855487331255549749878871854412645423388038467199084966473666173912968400684316512028718816774735326111688701353354794528481417967770284771787532400350173613320932588930456098349641998827005355078787604682010176752019415953271212706968221197496199425029913545265878759351275752576883726652461806032217119683297348387508511424124563912496571831842592699649028104889861918727402426257956902240320374393876041262798676620385479790518749375216106121676071114833274204387487905233987022858007510180093868937028219527614990013629275927550643649151247289852256143284824152849392612548073851633101876918786570423096983375730757951188303178034566025269870498426795168260340153717058962087396907994215041662860405812806857014267346694365839942380085628468148596440766174658162537390508649471309882674574397962326646329293845413516063987901382488061628206339936665287531014062684141083608759691430597584689041365530197789489017945717447508855782678693386557819301687165085161715576772085591643361328367211094953780166407611781521070194247723168756202494228884253593433729275694521319438569931751165421287950265337215972203414070515501620085630385310740637758589831476026675864299827903750997937597951500614496354579404618430422609618705423495755560389728133014829430496962231321408847471618329665601514837456665630712207397083388082289777696505259003642241216892329030573925957997464801708052208608002296220890978604520766678935021911030448808695473302731081264180939978044245190958283210378064111468634619618277254784585447011557287726820511359226639005712512508405888814936317522066941499504655234457570942013971431900926515777777481128122771869375289617663680355463996755554381179754311568907738493818443222899770113907450209324284260618624045437817143803216308884226309854450828751079199783427957478582629638920264844922483961091110652887608101276714204580187018111874090978468002792318440130409203240361564816511743320495279898417061488710957157200030950263577666626566695984322745113353817149788189629219883666452791184579623055486759756570066277353929804846867498970835529355366344166785118196241082243704707398529789155228316754815943913265438684493615182790130357018046877000419090014936951622665056714203199554327733191596413937280982000562492445316053035379477672920969243584661723467050773653172528853995434386208362212056325280129057725801675149660372159982849601671273048902438219349343307440758738418095286997795470518614078703503180557890560740224601537937983462130150100619439014877242343573944637808532599515854672611196640316613058187138135483219163699120546675481769263036771821295962541194340534931993074073424654812447534963906112442165039542100947607940230103603365042553288160839762943339689154330369292597244583568231627880006304130761558360066918507777053468680913355344669671763121631813516524814327656409873830995276155067951982749507638851392535577344327185813133098087050443735219919847612076987459483025466378183674693152570222282031103026336679286551842158375725957403057371976673365262924106794575400709656003203126970652286850018368334654664758946157857818559416640296116986507246412414155660798266385174938802345065151834102868668945598776670589781928987608543543604083161378588924524813556932200879927413203668997425049132827628035130397873913081705193174563567017712035150125352358870153949435481970953408718456907721826389259450369474948136436529743551173390694454660201739008769290476365492365576292239652314219711180644550372339202403111309517872044879769366093210592172279771417910726928961327086668907928094247496835542974284053821779942408324735322930703706694674553904279674986527302503343287234642384340547279480690149896096365365852801502119629059012342825755765120022980935619936766964003589121556272150799422798742444030764311365742937293726707506032837352889386356047578097889778047203072041318644532126282402765125277557400196478685277929009564855051306829047831036943858323884861711507692140073755919546630356087582767507002101877408248245568104183943028219241511405387764896432750603458258715349395736213464084736776189801354872317566012611065299919693787930018967931756766257363252440089436171213963048514634409380969100490539576422398453100486595587396236570262003635526757177181699594845387719726690436312583719092328127770798156531556598976518889751708184593203698300141515669749133818950626737063072474461901994457722737914667434212953233513414128137228884666875810471974255701096376355840236792332553035934389187681776725393265280986507579397373266100230805050197066073707794748567507505910062863512785622672205598319119614120672693751263265166435094055840584843672304631876679089335918230479187468162018751289068624954391105660618154621124762302140631559107194088758123045550828723793834390567650134451012770999335077316774773251868605810943618034045299266083835068268264529020010198820708017848120424289486536363983111065130272649977346164249158593588885825388293760814563447655443461117629817274478239580010293244461953665866596101473606978432146737201680494091616576645997821742061589438077169262356421968211356477225013834874667186534081882059856082284545888016519592337376988663519607634037969151085457434711750373943220629822410900715557346744331395543194674003006842703467461745291788573228932674242675439555504822866619989084577497031138033313279386985292310310565030759288498177342028996728073908996409143230257910791868010425280542028442541056139173616427293078024637458499798856760813371860265414347833373252076652878924460622827327366825747743757764431987846843874961839112029034249565692398459089709505756246227239956084048568614547638295102880179178571788928024606656329804691241467241004146717854577643455298573641908807887801166295421994440781256709725285086979901638714984651543557674494982535213708498770131481564077072431332659719871320326018112094529334171207937126566728199358538954439644846240765092818304135747334939919696152005572550318675038402704084715940384615614813128267660054481705225835872040042510108079111599366571669381559224780915447844001487216332134671075500643621732199574583318585037115183470576427678995704146101841093431398945374586270573642355784222355440829696999375095331754614853136310063051239396475966380953826584286414132533613121291564897666288837467240460386478039082977771906604212300700651648385876064273792153981171734066598456554831012963156575421838695275473209600849423765899204671202184627797784928878516440141659493422560341143998401833521602685232980978878957501056757591474845414101814926027419900236976336826734671925109449033438770435618871477314375389484063430307516030905359259984498971059505782710394617250229682505385666320353449529594684464658997574911437949024458365428672568424252279475292666495592989178470475706378062568180602244465669121632726543011326857028066240653168531264383772117354305572736317050129380858203175808295501090311634145962373428049106038336067012462949432450042594487916608345724668376431882063330145603152714550133493585981971858394819833078450133537155248527773130830864033968625277595890101948482255690381514291786535297745975881284866650020510544088324339487315200812223252843356020707369957241847738070840189213861486927011588307465112377348580354656977969662152839952359807256484100145518722174645676858863345970934909374118301161341973847964705646256411156274222035234179380490553931428455838768375921954514114605006791531562650570474501853932502062276823098896911886218751981277511741440947995554351604371790480007050710682719042553451745349878533101063283431370501610924416043824172104437074237664616794420402989209635351819924253102963962323400492641124961797875983339463314031041090540171621261168520015854100291898365786025070119324571841459852603578195652186857505846933732285281614096135501392587795791586365216645546558054227438386451302684500259342984089323709105513154140920618542691573662876330802560230825702671370666719353859119283561712091188235638475683033899420792314014450975479583859242487490003267942030666371741813611644852735306402211015603894577406989256630215331368596017124155356195081704076017141712145684151788200038442581773560687628432666942303859516705933121608426377504707397520669538569910393163269217064165120784580983065800902300225069882586394215129428821124440917129809290365444641485442714364359928537354167876476206881853328574966245893846737186126045992148915185567819147531643657215425669359154159656327034887404897563772216024188446525787330024767353278445942360853733773218488572821487962443986630229997448306268851246539789290229990370149814259341762645695917502680886502284288436074873129490994266870729282033010198686898921836902915105081372480284485311804520192165513306305214240010082602276853829485296104098713835724344982904113202463089988575629976960888108546369071509554136246289231433191950463301624617939083811750674678268055326925327081402586249269904239087589534511798716928890702882517458645893974873628456996692083793572142458823765630125615290155993266796091866336377457145647716402728048714523951656090589800228791977373537667573448368498903296736778088397322349414322369837688912812991440929324014201226598922547096022894487415407106859345643709773744075566426038945569300422404401048831556539543630652162510607525241977107160140862839757428866046671889635774529022454888868807415393032309491300356325780691617417843529486300948641496502483569569821166025964163377836596654880374901578290259305909760178462376823664920822264692768563577070223447291846613889704717488733086880325249024365223418720661650608480847263977600849700166291139836063102334012006627449423345656046518456135454796642022108509883555799286865758641749511908833519248649578973442638441398496930004657716456977182663643403274722534955438692966239723838427986815471817598059561704264866775365456060724509912881517289069174015682823270802981534039864120955735856431742665476909447517581201976497633145968247076352519939142525182174499164864996452990327516569736423201694013603540544989841534313679830279582464907665608462861092267618948871842808933971058753552115392671067528939106571812846410206474077455931155818510910300686656147380871572285725532645697565710375557423685342001298515068256875792139091083812002673440890940657798420232299299689552260950612438072842900531580571780147446330567520332917360263128434376895984915074801620585599179034445216401041743250025482264515052382889473210740222542055346782383983208548500330998941117263879413080711752559654406472220717519469339793436328457867940687107901459654512789280939960060159759383071834157297134439279774179873527147584827203866816003486850455254397157022207621438606405314012683935285162127186436571992935734989765998282892530592438939360647034212172304915474843745530934784224616568319315991414969418599065295135599868969357521049683274584143286345969904870932177010338069188794633316940396356494878009407074448747671914313516972295237636031598554514136769508085067251961342475148800040990537753501264046489580108090686070390075307862448387944273588444660121955550364515456350838317604897732417381903396166189367385454462833930627777259444077937215456255076729217521965360576546307556472373451032111165913070345756216699810504321114276932888608425754074766388350633421329585773331980556093939095084081813763821328483393942596406947757212558937672907798750513171190342532814574129397907978488930138608585413767143639823299179080309714427357842289479976013692185071993157485724739432293827776466685877825492280968662521745439362152001166902757958184289594382091606759215849983047834158468709368086712926757254583063314187040734728761446308201961769351287067578626539255820307656547873098908906459059328102358137970999859617387328009545512389134791618755629171909605940559767054027313509703916862197638748688853983780739126141863558186434157414043795664896208237490414986406024324512494743339824355813798318881972802627254262322278492289940215928192101868384605335461148422131031633111977457179485169243181298229013180649220991541183099920316551175458992497967074909788779098295776769716203490979743092261756642967256338287508852868313798909560237053491981780221580204106826330272690249082445427949565396768471020317093693168945503563633686005512164278586495148820405147429530606259498291455468546314547108645189452716000588775247505804010430759092550010160542583397488288786279973529662372609578044290701874664648153905832246489882174931081295625267639004852557333733884279119217636661894356983949755933975528020944349126743928621259152115376716299240758674185429372355593525665757541404290603057773071093424370688537168461677669603882786112136385431767220354854773595341309578914347900234496775898541613682295210872074012242843103352267364901846993391192047998113617703670514446758442841029356733894564170836436624227586756990579157072038815807455143147607181806926852633611255467033800059427336794410595364654002179657851307759524130625610350136737244302734344506609194119753149082210142655993323960717958636485674406078026395109907127764450139609960635379688699324266744058198856227868715354233795011369269456097895184813635834112837971798944606334505043380201514574373338196954155455610925422066157511683042686824078113703860664642272338671752542314105767119017559629593737586409219750837222470463673551258317050243203710212884486849197341532086790611604073493176773723953981355645482219417786830888872234620652603016826812679356949007130909202683332960128936229836180365888540993948199095875942051506224887000721060493040554554701870565867650293033077373371897311155430854932878298798953005814967601008102888227345686202235353121094749124222139951497717224659347967195469360402619562429127917449371027659611810940896582002405796830598274878195818470286335016521104307483794854643408286572161695772264755635498142876964594512468280838878265349043070351476080077982944262671086390483600890188182579358129729193677559720295627086286088481198513108236862810058160843141125490221086541139275072977123050727443711300873154863396369194458860569118710959092051725494680009511589404611616960160154810798428119593803881078830427604596798859438156775833108442934215965012080804471207830829798339409242750061864036819727212652301705735980402437134230200776584222906720147045952059835484548802030128716002541285516346095203104860702423989948467416521330540522978022018224294834521065016280021126517479578096696593033492387040499028143685890943533582915339159862576592429682168084545091742647167663021203869510776097060061578342857138479646760475076033979750607265795232115261367884851771934616084207236816287119732479212391752659691676828521896649772324470510077644059867291789023318760589494050998774436914394437613859808543782270826759743113033042605044376532604026525643956889828865793477530121283172297721247885615332180630384191279207564537164503422159427445358703077504727703907222323984148985514170029370107154267867004148232589926246810729135108519605187955891434860928207227257352603226827855148221592220935250080434729022254568713640509087608178912082061043701620987491175731280475481488493386085979238555280165299011468731816549567542660237378934223537555140773265808882235653499114107257320035692416662461763935969015214862904171397861198348839416548777253708832517838685139269394183241086318628280026016489174463633823621788191527069870896834992221391189592653117949530308795577156205572556443464123663562462610474618254974299700773518579091981492305067298522748167049142504361063050530334171802145282715376272680098547782326060760239412743653862465380171370718260370807744520869962129882897487592784253524782236256632108929808374537161958531499401708168002317937794922582844404221885428598069315293323219484355559095963422574335701976156573811575418841765825691077736217984258726974873233907676898293898474397218407964328022900496493724638368588045072952201484208012816350713967250488549969421215241651268810422466124060766327528573614573883220996026438561947455494446720248147710669386365863176173024261396963004515105903757717099702335548824648799935932946343013182784754220429449838536389689332086757833139430124218862024704001401862447561603361487704401244898746529389338340397704654087388927166336385493611750121816022295397472746704445938931928461869911593913745889522586856239161749017856351367104549194156336549418685836058980821981485324208921711295078438632868896203450154581171384481427903975916012867536712599626203946608812443818845820939922857794505921235172121332660966166223343204567853543743547124615646331507537985777340859837363107863032062376343456272697829501840826241110850176811510887022706991477718284340468074838715631435934730352996857949620521899535032891772373958156294243922246337357403198745660606081996693723362364766414630355923035337399146872107100212961531048922884561294848167614646783591676194185831589390714529830432294015968968821587635212136857873213769086249126977390928369374101909526338771712742883637673458017046170352820314625906759504323652535389779497331868008959828664665879309165466568671889990779124656531565298202319692639436426729458119087491950629139402089920942998725848244420687302366645250220623843110682842801641097525267004301094242847016697577239759638450490036046824024659634920900420982593400471797930699842016244705868627193925527638715155197282776058457045669226091943634866968874368188724488796210592611801065992599641465695556189655645743195668645422556530785177418936579560859045778039839111242081660586674674383800835787118614865330223198483865119609285554340440450962180721902613495061078274664164371623455162967018053601490722485061139241745268011182885132429656943254714195411865095911279853874147029673546610170903854085730769119032900891056721804888309635835828404275615176188149488857571832048648987764908734764757678826452638183642779697379547189234757872033352359715222848709767897784421240086661093435196838309683566006135327697080207764991103453774336375359885227062106257849478734339481693510103243595783943386625202344576561171869034016951917872233819040250483828415034687217314829176285193108253660630416464568290275863433310375894613949586946190166149611348759351118426489147846718573597229715429103139972919701693998619610964060843306528365309168122748745889971616760732219702001051553068046229077977506793005732189616877055844291386615731828475967590866824042338756405006271754026211672852396650618392148028082027558413805223678773028095916691880598374300422022351971551085114193996351161380859917754224222741607364048246259150804568910256680370795626311855916762949189016764289989324058799241482365882338248969002162394066193771103718991808875952425995416450773398995916148275730224354788120073216421766084955438219891152793450069161430071600055886528877020588720790653042949547062005072641604970699462955940296527221343964550982575682066117483061295097617314412989780551879772450405123874907640819865335423762300277985209761174811351102673761132011123552582229780271581700587374118510959356551229666184034191085831913416840190625037317634383224796432068442333901155816418127620273690023705058333616778600814140393374844335989139296633472518734557120540148887452774849678236743529462739583061927624959484030218789798432019392361909895106571239743621205272632241187903446045030291014504215340180983229747199984889733587925233762763931271644946576204165598681267803916358078811083036303618424701100776936602721692322841683337987026351580584035786106526010788889121256332158005267051398417477328998986257891696216261923114605582595015104284587414192571084147210996657491688281969904972319135291683851804959925587182108391663421395431097614260913563766866065182247104751648586758082678136514249539920896019895966546077761952300620338360942591237277674920828734271296265341017657652962830883278871932640507134259881911053973908092812789164787426905085250898824348632964337970148528544313430532138595757365132742198202848191756322768490146237889902145178557589491853843526653212432535909656005842911776287063799478626231539796102649954768948498069822205566007143870092111888824320276393652334946448611903573008599653571109854802561933481072432949465649152864361252780479689035586806585760516413787517652441955643708307632560270750121985082270812147439643930247672677096359184855674523767548399279062399710017352312769508308030779972591259855701800225427080639395459870501429687476244026796126277727617632433558647646373686850130689554520369960294786627635877591268452235395035275878145851865812994920758338407245757506123070200103084889285444863144446533049293135209914506417809743568641925000529086942978339473445790946606488630313284746926877078236236846606326826208160883537181204585971160014560489661426593269035505878446713913715355194905173512966681117406358472663381317024497303399575390605471363159748273331797520356601318909777451075418854243226414163626388977716647053246832409047927878642622271912670257957105210228569118232073517971895682035217235008077479911306411364752906263949448259173903159553676701664929417926289205468945864202401278675892124854971581318544485787266419320639365231895263603982721527097744156819483867286501994641876016293397786545443585391808342505818398771163011885696505191038753140195199057915637327831903726367911627426159130195456749483093052472788362155755840097882438570263041572935778915103316669011474380882514034775889084651229608187909598928045577183499599686964646966546695463810185719830204271358763289693414091824789741676000524719817370929595111940459142048386516908061423982606241408988218063153169141033374041403342747963862937493830592346914035710365235656239780779075501401171939992859291617467754229616688506267210100512646321997223545655338528565851942786359138939716055092233664860857645324294259385774324441576625957514573962032689566462954597835957205653846767888208650906497169834344784793264598560253795419813729471440368169807233441901705647385739861772169607244104600680605395068152139444657720890564583245983874193338295263300814876407363431068743687582262999163589074960086191197934607391883084544464951478001898667043562535435111190358914878099865992266176422471780457000549257254012580924073004205647508064896227165629998868320823734220717756511774685354760608428259867088209467029216524983096185049821852716212125130930508728939136956496095277876190668886409153937901207318018605574742983790240204271743832255543282407391336958801693976901430441099777375636807094027123922818036411481110631111315252666210429676084085696358589887902929341378733654783749072367271457278638542933443051257660765860356681260379223484426927138317483586304837521343205467332869229715078767097230654901124098811085716316570638476530947743028197040652764258506056559666975660747784322970536260268672675923263860867233657128125410529954178052959384434133591337185923421185254914361607851888424713549974291896793433754359770459131021777439700610219321403768923827498533898251942928143986308936389406746303547245932710963221752768480197999411826970742635446467952963087752829493862192642077273584723353002566503508840601178291806110026855159721674316036214255031277567870933731463756417713906638527943841933470257818790081488225742647500522459161514006342487396538189176259150058518914622073249109709194002902208191816078906887421199761008482491887592455647208811670506035468910853727018565969792207711107499407508296780574691682404768769366539354950283103081823184267870426957688010779494718955820962029437684284231221877966149155408749820779731370138974274092060208607487541722464402924246362554936678889843723079639209226489480325833191847560661883105378035909662793277524817411005993084960861771738052825464616779899927977290091690966572089215936113866933764339030858528100905189259617652129289010469852101754438404904990151467880145211625174366086780085520175289059809826123259229592270386185695571188273476720554963151249664184347397672483445016395045916656176932556395911289468574496874785729526454901759771514099694676068925473287017495046344064930852690656731670138265237307650674883092314977994510473773989088663585176976506674074647201583883894679172126376760198738020868135793067164455050508690865335564916912480645568848120269822787431736357114537533172720070454149625311258831494496972129930151603234730810204399572320975549517506588502928161309144365645389132466738576553809100088227133316113618643389000346457695860558013641881377018424150687018020656347379189098497783536008178402976860606773996600391048779556676835475058009271092602319841017150318206294771703472067632254082698540716191645344745681254644691149876815885940999552855640689463809687779756896938802595822624209938561390078746815100467380047386046998436777269493511922605353884294554184876327793173325592079755432824478839572893996079395669920014970701826420454972201929148127349642489319572282969914830471981357991162361404495281116631227796796380760720371346959765663273735270337421948463692584846169106682816123297791703678179361728277384140239877870104204473126133004463728759731465443263874572484920890176308801913043184586746928757979854532972450271678223002706353359306456903358896452260140868917743040209468751827310666372041224840077622990480456418340987001165101992973301919539297951410904023507102461849030021167096146676724241216640948088601213362732048907068754752583010659471086453345477992760328678008229489547486720282447974227376256391693633316221454026812388726826643531176059243707033770668697360122923458864124800649193582994932507895978108846752738757937467271524075826060837253102004059434335786466721959787436553761455113468369463207845290358067311810434014819002773393384839761806680486462204549522567536496524805515977371878022844000540716965925820106834261942174468566348649016105625733345671968113307304449468093452994500199193119883065828615427323957560974985499992903999068074628344000989850801816415626749310464883900729070859124575370222747864721352607118582479054455885061026452816497547713476054818983987792449765469594964034045375323685280360561338647475131648110522893735917120134475784431272443655114339864849436504548118644716851381321120012674383815112433534429988020303809242414187436784036230204589424050556586956678022701349301656650278026556301399551144991555517903457270164270172825381177440869234504443396416656723514227824883571361968395568159018972627575098142044903191381266015843987010637115275407049186755912367653260993796470832078596507446279485254490655139624015746149264635014549422080733987114952252199788205603774822533244367138254461051658425448035088945043157323017406002062379946394918913364361138138021000036795265853258230926909640585236676838902457658255679102033418161961792695560024691615872353015752327866001499707357670683176267130205865813929555648518203504449347553538227735076901194029749772783531634667317239430664745387406109414921290064339537244218516139167570868167212770483760123390856053749571984680015745275000170982414274638968250518325544472104395528937845268184375139708772754621147108407763808045696577104144701337597644260834213816198591201667065279683503694908383793477702522225478769066506298331801494770765821183427327447484911431084624580581076690358757589328789485808422878976837068980457380152936980151733728421921510994941267342518598209237077605395820033558875964512281955109322968272897718224614336612592079214395426040992031505237986858807649833524868286949813166833480714448199518374026856692262700958250132138088822162840769114640104030048545225181687216783506685213344760610830477689133158414256213518583203002480873518365624850276654190297830400606572974834653167076359600409033720112983630076234511972701336030062632275408899741291252211772246053046387159401183587015719469623162348010790208813060950737226351365001769804472290036926672382885867385157936452172585005901884501075623294510057113902670326438697033622496739300630981739716740955491910932692610103087697226983027883224594625112205326393684467144305896775964876366281519771399451547474420782703299070777492216678425873471347533408669879542075595416150511806125256806888111606562114338829712958246583640761551274470561280194457234407416083180260164830219335413688542653241721892859017638623554264250139928346308283379240314930378361259232218000733023683266702189877374955381356667444150861099699554050091460023352475158792799594821448778649353414321208512120836656374867437445592097771790889137639985609599965732601861919002361729438864476262873968309609322924746035316352395275714731936080803967293797874772719103833339099327641360917215472657427871762720826947181878175810921541147286767264196878211540246276017269457992423283377989692645129634285986916736480592615915737945591558694743816281622437488375884236421288117607351290306870343898819606359267368240679085051036902247624675924783498177985421749986001421327399519037904562303239755289834776496504309642523906749213380495649192750535967391018367867623459564343104765612374858759782141839366158040763657789712676095360523545618425353642148715554502120873915484140304131583870540745072119456257807186925051597710368266015646055433928374978565318804296892406338734570862694207535466303069816124656129883776881171062872164703699807796324834637616493631750799453877285093623334350922565925673341578132665309462670712942668227200693694809759206005533904584512262753242708788426215138047043997038034307552344205095522085043568125879612223280913159717008800859852044560788616962029378419950629912758969875815571017277583187363971750770668644940420042572339787082760409656245538218430112882358515805398812249697282764823252499986474195448841915135880486087898573905758319656998070303192461385508925391062655723782445918840785633189471912580733025527822582485568026277392193271295023301355892094577496720920088644703553952760126754271162661141799245007483971782024396345808059442202038250037227054164087345771900189252756642503572004776708684688073279418111189858955935882875208023153469058891683746383490619139203479425674997269780795191137122698423003798149206466586148264691539277140473873744472036494195354510096680258545650541163776237628893497395926595308221847759510822721206647395185492708376911466234149096972299876386566590192427535261626561257959587024032786363914911521799597215928567851928708579622480610017069779870056671925000179794025996628975415001166326360260982665343679264262721754033160164566410143923741472531032872821144308133661409311554213954212738781850488255030728045690969472715642763588198005586009790736195014477257173590936258110685315501849903384179477584578159381120402995394343072789702577281895928038606886054282335595819741583324605421087618744264123299275386869257560217968969230475484791035937432610534601188038723022208552055495851068492618643316119408021709642149800268280057474487784037285745435788795738526344265668000223893585297195350989924061677176804229103845201384862417673014659273292384074090041382682844035715188081511319604791275262337447540955429702134021323125928868266256405322672052631431378186450604724841830755380039925975003308838785621445084461931879829171559534971024704810862663974385098541459567697681606098482750512265715882455630852249177413600682780699098193928782462454669152146263452697227832451114069504650752611193223510712875568099737566409916842568750148022460616067981594541151650399578932599700178580811942450630738936147307290392956279810837523786798636323318446140964394291652430049464185913602895778329951698474581022731515330932989377772874234265913415368661240331353119856085943953489875671386803299141650460984891851700231772026383703119087385140736211456249826826064413894352669097760227980923146859245624703220559212817966923590797185974659559970403165856539838190708926119960782623062736299171578043544962868628437361673730412602586218035760188746705935123570789182235799623135569988662254585057747300838566609064122320578794166915011913702869019324238180471418475145732141534231565870457197679711496122151634207088810521400158232982497117590700981325771303848398737869456832346964121836218375860408750435316579641989456014073637156964382569817443262039600876999227255822120073574248363172739692303898718500552460946532297000323122146900405260805515165517478669563795533259556749304080165160539113942230505408535859161228458401092674602779841490087744263064481272221706076435011604125287625949214516556751393816247401843295246911514374254189723890710415325380887549692557081927144176899387665291474256264635659305518774069392381610304571767986935296880120525532095507409879559609555629998039558107378609929882736746585003133025044471142938435847900708398687687286957992038074613846839816889014386974581947271762490149810993056533464552083720217413379665095652437300498670180467407412556787033621322559132521964027109935945965086120260164040149379646269731205070549845583210332318862966964718942898398060068171311494460001193359092469945751425334142419730956416719024515209843878083455549658032170286694327912995276115373963987212601969756149415714021461903050085763850414008771686856205792936385427037021483964133193776287635204939241095924765529882825313660109306661148103972852076358227412701955710239439557372494423465348991628387222331698006789992340701574756612070824373514424949155073133717860796655084687961584835971850121606567108054163400997828606140078846389823443897681080821009795057116115735416109991368770385579409934084630438790443194820163816606944688290198152951596559993284614376574525004650874366209225096773413605559194541617540429757843682357414527444181635054821461922039527690306160182068235474831752813905647944339368665369776201772865613404107089411283000419980764223966381270508338611555747618027553097886951388104219856793230839880602589417550338049093381772094188247350958585659883546493167753336507459859880147069074420388165540903095485394993502045192975324386199089501650009856630344440844467878770787349362052737465491015005426161681410017402279212290073479751155076355214769222958997080996842826053359953977451720822009493091987334169038805400792354799545409318400531524808961604432283427878557013007485059533330304599181799943842311336163477095639039823567300623114983404973430562095024056611137299473296901115634024481421397401702957244882255423315702170000082958891210339380152230184997603594577483566067335297448878587988597063374971302139147980806795134391026344067185640132684299075196661764822807860216654876194491356407466457999628443026534153655849428407694499166335601805519104674474312141316626573585382374273850554708668207717694698817805387617669997136047715602801903944781934351697729723717922716070771638142067041563280236543934895561909275949027653262328589769530298861319417522243140593718729567462324287831799170111390260732752743052993621628392613700129215030373182571597836784143549507566071580089640067423547564242667912019483069951323376856958032406644442488991186463504827703164481835169454721406292498157425987044887438372219316147675242739345127037380714846289686148730298688888465859338938374261724596773040045556818549225070023239341594419790017082863570801365131734463275736568675032031773863950096637785330762498828809961056738727697194389718721741805625082158576872551087794675191116639904908099775898591168992008205243034984507102233232190588584023729214622870539911322686532860518042596738955415836669540571624687282413629229824260335847556037581531371994177564305408274649378220653896762419821569453676021090469794893534650647878959870704966280175539294578783956263712510133398776141922363677354755022676054121760502415352501141629139538558116656154597959154648337501841128377909995930258095494234660646165467882774432884290746218788126287823475620988048603202734778041112724077406178733636235600708646966372268487915104181678440451401222360252769457885837694996002122716593573683656961609903368215100412453383644123254219869529671871329288715945379031222051186933805274431974613416660060515718586061308178804999284165314734257309234299581179807443777486246584150300820217473329674088420951960588630710555109057256407785854186779657550167427011641307800148058251255234939209780593226613466095891676494375622500233632067409176389039375976048415492230578666181857782694683110218430677269094075837820558258456063187538253475604277959717971100903937362781570577269533109535488481505353157642166020534168850778379805637948368100978313826572692366477339596647774558959067821911678895387701044154491426456851888643308498455484945366195230272502053188853090993034454822311984202675721440126860935070044172422139202007819325845392081690704864827575605971173183569538714552027339880609372552961929122341843679125091427668050171386451825872590308399507440701394378918891710966763517934304075855469000489418878435194817511192910328601438760047480125288036264590211683435225891702095260091288362011298406941885930561310699998642220414671550512571278594783152122992358298382915324178403035340295810154761621327332437702468151023183079016856199008941902329289701502822824542394354187014605256651367060029514263419745871287805877002097872474095791366756070277643543152447913363573554576252237078949726792364822237427503001078207594309715034781950704101158571083712832072082930071426325301379596818778208966407242736693823942224235835343579214619542856320121625241458527842515119560397040874626859650293623183677127060368868862550993991253252159011696065225938824514900214218588136726765410169341969299476076510165548748473753001918508165442934581640147571615518761705168337094372912877752109580597621722377594298091425766780888158275285582746550107866657771435884214509250222369496538841512896938953727638629455042933983442173995722706808089503125995259836340352615091104784478928883251878103143708619338608016247633101640957921162394048871555728751038892905994044047925793153845174101885490279818960417617740985083702874773670356032789069364900698098493970048562769299630354129865426331589126455051897709462694802558965611588687652458073829332281435534083955420794312465399422428196926553808035127221715984660601193800202211623239068559597081156361156874467939617458990845742788625796629549865287608055229025003167497991349457223668688427486068537893396178133879961580633721712065080457355507386766640451663839333323861193157631497459850803426730985799107617825802173972576132694772368573526383287881620849463596057230922176132029882859052464515052355754287515080102273641293780072837946327280510011892160877946968803641533672213004215540488520370733026912585558706864903765687452183846800519421443198491422653129251433598264877523893233791506776171731024649252179265343580326667040333026121026232781023102536863610716473941973483718963432995893008869194310593828273746543769947591777221586389160509534134712048248362403342804854347060725433618767496821659866937553205268812526008289362334595990163142280079980355525127103621014487631992626161667548336963421319687905675961264056188026408430428985570752002446127447234817777127800457766431018930794661787150122265779534305639360056666564803303987245732067217347163365114496535666339462044735002029484340654988346351624719614049473454906419402552717150761041906703047381826439965956059812155578023668479220276819121037876818904603167320348899416289628078742109574193462901196597301499110990934378304724549307627361681393047988783488970005456566732248431143519046765541422005943041292321455549511885666348614649161178469935608167332820224780420135766681236095855823389302550246396539908447954690125471356783177520302260303453568305867678709992171972322780409368809727370455266081990317997901909786912999478284996991757842697134181300859451284147480463024143776677307853179046349864391942733562847817692291653225210692591784318304213646970891877279404132214408732996419847150245316499043833611419465475129010617130528242302086703195835210563104998936238024580145038694347221211090208845248921195509389867604311252876350997097207518715027311940494881065987256146640676163515824743352518439046512145017430614668878167901175215488470683541284431643879166835823847748714290913689245300874041716712044588597723679890233566705173348351883147539412841384718440990816498854942016097767740041382968901650440884481467109750311681931174192701702888546495672232841715345339689197215354669620622848029464739492949664390738830821337681997147425101491938241481436272087921841625564708770379270222778432481363467123270163220072592155150846661538666168833341076583906053855953027755341034146560159430452177213849607549573375918172121269754045509447097426338879908385833650284642216165277133260552910391613677182908802107035835165592498639287073212229466291158032796191079437172256424765983452977321515869571331579310561633296154900306482074420830872346743393353559839453434000626888649302452043879730625010719300115166770083211310548168686689889536007964630872189982573828596259663127150727905081903114924779055578293288448866028077928128129743849081755297157616918141820987228606561605599532184877139547077407196148187849616631316470433043352466662088079463891124645529175970126612351189748887152471089956316204668641454226831236934477262228772777607035935583500643334665518899040156522909239465785891248532134006070657297022837355730135425718014196769781328821781840639105844533992313806506588167163244126969666485289441591522932100053044723357531380982046458896948036309888077132947745198528455840265284028739932945597476332351516087158834023041040074270668862124570365610503104582314338309680438976393212241106720557644658653806234380087864498792577966171767587426452279957936225937458675984967682139957349209315207328301812504702364814708572261891134733620183907419702955800736103122453794747764820402332137396883492133417025960050859762560863953976279535422075372575110776924727171867102088313183504358578891758003798214767513571580336742762561598303020599057643350646402851731360177050531778159247627593767274756793124714792873080550769695748257637781578341663910251103130489144136671923764382891394848681949832219683044013532806235491104535251693048611061633906493507896553963283422499724216059292096865963327333846719571758082569945504182405223727950019979790068462827224592760076100528193999920715421094588406662623724094458620560119463571639304260815510179463374801701824927538863449603928727539379925100889345307287758102927554070406641182735900859159198445803113388963926231326065060904013873127984270505161478160871801952731957645073972734609262362051182392095608418413784216380325335045412500357411657707783676524757479258867553951250072899122096986837157804088587036726604917306860617808448607566361289675453362210372241684607035859878734143583534466410107495026783349938133428359323619375747213884912297683400454390112161501053390519959617751038410125775898284092136958284499802176776524581945289213322646067614749701310243654375330377117041737847524033741661633812002510117963995263067780002802900443073524512858005930122235100863898472267762912163316388117948785851924724826307067816196842600014955326732417734635897432106840609724851160510339365819331680191551996644721807444463900653754495114512489824415207775903281678307450313666953926306252355567816575580191604018701612486242595665284180446516338901559138659637632960044671710706535649310055427158252280577315769573260147551576074957489071857593133236561915580384600965984804928795356651789387318309923760437272625883207671391068036903586313623040418446327602201424221736783092491311695632550193683341797710271085815009080048846083647843957038274071710293916087436725804417753061460211755500983324531421290575796814723208568934725302408029706162663137727912542387208031125443073290758123052313593952657082128398384324507669095761753547035543610780758137865638736721380068338533058029594786520492828722477881736771605533715201111565954454798933307911767514161054150065346704725844217939335245220840601523168270438928291219157015184651220386390956433796462765874013145381495762746411813624418138356843574984070905739164800366013482670520354048710257336146121808957450367059025649009692346926660645096198917416632453994947932250464762090034451650053290982630730453143801697846509027511408005154538295199988546033688951112844591044414441899851845377953173459614650363368073239390606936306459245377349052293092710285696414603784579032739591672368431565182300913700958011553337670003362313387331157020864184139130249317714985417257686571087287422891412076799236059375393868851844283545958336921798410656706795760952708539194026420961357382273730775823446142776788479091131778430670070132260757699050755796003552845134769335825882125086501760363559607264435022214602678315308550270636620452500313693175334586782212909632373522548358144112370962148580786241907658196231819450812990461067844968518771038636742247921855960200187531257362094067724807452059814631041851718922683156021030271104547755426659158154760383221732642221194387119166092574184513920380085754300271097382772390483546229893459492601170191107754587704388231431708706574387595215023486159084181503398109285482059263195524091787344075679497903942119369757884710399806593169024217239467447065344911141325907861600319304491863615212300363071643413940521551802864989937079931213270658222941362990151421618215490709993021949798984159139692634775411505352335979249640205864427806294480357538465608456387969755148633454857699637854684569163879508102960694313863658196218470650658812201957262070798524424480265330732026656716272404576228978862934571668368618224680946675222384970201687797938362243780817647451044653096779548107139094855840944639321164111383824112974128517413221688497738848787889002669437361420732215081157753166453920733991954534436303278939048383167404140388000853023041721576032093816029014523266794660166106651892430819055003204933847135680249510664190212839414495306063738299199665895810863112401132569524883046551870081751433071512664575805139930501159038767758753893102706454050931643557775250532575253903316969557052656094111958354656508289139746288963972433271691416374474205700737170418189063858484805992270599048733299618810117702818344966249417677664074269955325641288330363564132833813080509771434431335461969317605568047950467651623905125889071064264041784708724872453656012136520267148231236755819719099465852145544883521557898191396757128107941408207829369226947128470780973798274653792530859511690740119717720140380500369611906249311067467292624470220953065343240632004727796631937198315282072379082108336567369888022941105872734107045934462641203898426025428610556568376078596691455957147181310479485031162370068392440245990517893067308855879679001304904534500320865175035528645118425187508446018523183198974206530695739047616586660685636314541056320614465710795784624441195229826530446212855807482843408725722591778004127897812716289562949313543139502809219547258808243801403608392220116996803238637750638314699191317669291417000947164814122908482467296246049620896643928702154611213850948375965389599057562986978903222813835940930509873126124661706427355243058096011431207571159464654561188709258284893409409785625925815840874950147476538522356069505655165389927587176154120104743126321232174919804418593236528501132385559146515368057626237458156227689283797834740640171568065001050583434884530428184546508822955209584330371421551066474725580184542773089170071140034338681153000472685858841643507756437438820007388707033719624919742180549096886923566570488160422621389037565617529190315486321875414262561985176494146660830008531866675116852361280408451498189809686004992131557318018111263251461114029320390371263621174151401034527083427013521924998292370788262440604877921705350389692080700876607627884539735346576400406282124013402185938127822792570855996983559752387482391742518192901409544913423512476995357072901913810950897521181626034736429372703265019419736283810689355310062343277125959315108260708279155349240487770573635982554922183827913213743086395741383950020953238892600363972176901163475764042375568424004750335544241200875978623962226567988948452461979371202051044772345364409429079887468425769126426317954241690505008069672802147782992246000406228082966693675987184212391400869252621251501865770160999092319291769441872697071868214418329247393041217588833804027505357829135070370765467507102568553628815714570028672407117836549120181378098578930823280372007465135193680160967957352586331602410792362143894886896522649808604565981355650400900878384627810767093331956493640685185194378242403197551041734563553475777971922862028725060755357263936333393904501210624697914202123527392988372140816464292788866005624161227271466146444149732284322726652921269513197039583792948925134836893772470605308944472908578450470020513714671376683196087833384987932742403693806507045419896960739953471186135950028319235135041568017815144729651165079620607582478040328802358024784035586256529714843795479775585774977733343092065328728413003476118102339466815670780873863533445149061473426134342755521772884101674797625173067874048193843205671401399455044210361129461807757629462602265828545650301915177677096183375093295358809310489594900665836939327035885947846940863944359077657787192201786226856058601753914991849781077517213835669990092318620215441720520897394963491031378990491891705733911515472557305379626697613439965587735014390379282002383836919902034044007890753511264274146569936735181379629339495645600308232194693624683609463746768470246778466770751808935360301605860438289345548176559531332774620587719837411616252558446348277220931905881275388469621767372416540352307587164006199770873926431046952988489647087475604904206131077616955008225258370530855740678064611799944308989949730981968281721264193293625887357542052775609097414070825226163028755699787198731896886578105325107849174847502421231902998625662745016835412463989011517778546026265708882161014484048387559420342909874991792201496428801136302329124327655085324537381175851706399281702594696128404291871593519270116564581891955163824395695205452605201489465206140889829701617282741402309058807213722697482613672290038992185843955738717727009756046324730268420666222645292069492147876571567949310224993132148439436097409135635101488924100587376152121276927491927875146950716043412891230624051278387325867215562870455384374281340090172666974854435934927808354160990748085488677155475245889368231147536484931185106675638344313447470197822965540555162096082691889294189962057132610323033397748808559320702088081307858285017501318772869035591779591498187737351128699651902400957360483785306868948030366489973224008143159024325710489974797827002349994735629092816472050514126708447757108499657386922193473705459083966478730894115542857461636541682612276692709130109024632122905659753801163154875077446007258180271204854178078545436276038383731320651711692820433910724545957451664790236371929013102909429285115289200943777738398862380051629025703092174850012115366778697135895044561053750426355180141232129460255823043975381118005159888745780009577303847891415352362001432384230323261404938369601953724093720885258392783886863753123679897846398030441182294637609786455171781146533979648598444385776368665440133513394345865961932316732342533758491229743267836146342716907349137920474090825072509029367944049934772627589283292223926396936616596574749647511340924900248492980114146758699145493845024887521993716363898360083331558422167208564147137181853075553252666524027966141378725457707717761266737261316849438081995648449419771086665773711043603558166420535462080529335492326803493074901507593381769626519151568377168614250019195260232750607632687796637599972188820745383169482751599884936503548615698769952392406444466017477389931168285848207471547356173788629094695454025875105815365554493653420540316923535344066883129039811513526517660999472465616896543808910921593250714438349990298555825845417836975227943195429266733713988551264285024986013980542304875679238432495363893046181695022043615093639498938400996554946389031843206163066086355453896949656021493205903373721509177764260371729809471297357576477909008763926563349015768003751643286433886081102353577776860521528946285729725727228662493241709072752568948109222110129414460101469296684948366618784269356869651646240385245292935401800234470830582378288539200741591866381433052650999358023545991492939355553379411631099918984870647260812006399816773897906496074981072175435713726782067227460238456868928439540126734881104106309995891745014613603433659900703492119965827624028729461574272784636960282277529871633407822416518449999231597434208625033262467456567608581779427488362884219173467358525785969097788496681776996540160420913804367559286530773453209942548478270876809156145533148352700949396896660965614141519927957237030538231351633987801529363226989050720796846175649536962346717338243979549159914480491227195443842374988294422711089376351706910055607605539150365601367633281143365444620357613100554520767721837288999356511208349058240223227205120246399946681564498713846347157960228327087674641022735551569222457586255133879395689225863955338741989861903493667975730748014156620693252958325448579522184153355356966652167096757254791860690629116958198576330162528829863074760752990125694385077611627676107810222352500851493657132760180757237476632711890881550802465921759756583860555853158445329320973551685918691164709161774147054154513721955935859025488532633890377784688890415842993585228032391024680751656205989933022491633943478841830149639029730456386444132262853520035158134690144862444594355663299353777743822951030371297582675838552146544168223667045152980561460005456697773797218854234073292223039100492503114363957659909923403376845095814272770623876203030072088643067887752346839268980480150106921840971988352092275539914948380122273230547399975213047818543771128843778149364756575161060449241055864245751670022790399916494031024376498542074007954463754948011328221526829783800304796010672312342031507110793142127935778329067037798628977277864855195842789196443241762993214043785594701151876552456627489469923729852394823986623286922648350802593799070880531825791215878969530606639568350941877774624444409998850026334081998459091289014628628051361782160047930136959918769154826310363963557294606510985059321128180973770501841475687187577536486528695944990544088968065600382464866627024921656115425055646487379163422883933021607829661807270399841167513835896292954124473123937300405118721016357533895803191734709037798598089574238869291509026546063284581269314308298243365849351936632005148920425424424327834661404576802563609938355115906747137691704515538402441645333446221001257646126094387133180638494570721255372952659147762811187093551433476812300553243006905052383001749741515172800130752922034201245978832353849973271195895084519261104430355244292644216587054657971097087622927207212719871681934950152756702113848963639658417207014619879920793720607299828304231552786798765475131780081618777511855895215965762606097717543898344131201387662161864778133763458907403369815896328654724535473998235891079299329832642606638948506564516516518392627846755398024457847828766321314623025860798076632138219310944049907357897370905979664455132699125106223314003814888763494173139384083818932226267754901599983665825518167187218304470855454192486751220317305034509875278421003115750354282524033549931548725056884788210180459222806461984254095912928111267306567839257001359217295830274421240469400031323965174878102991149611145832689684798194916224142535687883688636779009601211572563556055613916140779851981302651061283838631471533011120002843415459161793435348598700179071249642574269714588868409753568874322972449095878527673321385836972270504885416536901435932449417349821463012375439926359331684319516089390209741090818769701599477752063827354006196606700168800018878511702036901459353803829829017094509256990366033477240878125437311464377934500498907629559303882359961738304897174095472917818446918140000695345142755154519199142512552266993840402495706639037676784266954477216011364935363659859878358419935092535074357994869300534585846321458822384044089680675677391174255670603288520541910692570385892020578525336810639628451268105427040882083923907579011026677593030840225071430658833357040866761644023636817581300097633857703070507810343421227321986545093166376134453314549969824915503847664805086673245117868582822377313466534332056594702043408814179485334828042081933360072913703644598633898742363792087798243776533627927594290082938222091360916741256102352142716189944929258152313586683008267157287923225795710213689124450702948900223669829342422357289172442956934753510953354569823518508926638915022808947452748196563615362597412136214020470459665211677634536528991183154385617511463074685119285935846430343813427625913827385685648333095835182852192054237533201350701481351707956957293446050910659862908416366973127589069381388906647883981426128892631760287967353181131832184320439771087274374146306106314280132982242605179794792569387556092242818335084820754632194353805889733122022542373653312900353092649817472533590785435198111198021459119061998019970431030433061114601335116575933859364431588781380095551119916145295469843195477213588988240933824827657630085233105206511009559337751350894428091686694722152448658586511542468189722873335035053766958126568279693241536731068411554858087682422450795391643983773275172716963751670100736143678518405074794760020311860939092923626087307329170873951469735144286841394542966835083678481752559781346225508937972873200883284302174835313935837757817130667342951775259614212887575066220344885427586707933708105133429391464145114871772325859883475013612623252934690199561960525944989205872567859739692093159566887510723070117124366916101753180051174012353380098563929019908511093648983814275439132262178626048739702258090860224139738269528222335744761879629399868130207992549320624750445471505714908473634935629585116553306814345118612172192309274003851900061253700612413881374388498234214541532737807935219050650566713169878434897216333291392636640066979418565861973541317895183490393360190789641867076154665343785024256723679709013055867899517404347557696811583251976271233291071987311610217428464086497498821958747768328718454756311291963871204297636901187247671163765656893311061177743795590690131744513515299637124145994113925198188241296928802935038724570818832935863481673451179097232146633581670643143806940737033192698156600524393772186450552994062138467348539223430011277994405025296919606411598510345581604803408284173183570520427086773722106041298522759103754511510350151289606978445484028107084086852504522242713995918906784884003051887051380458005961882261543476613172633498759306083715513032279367718578772510212317621693149016617776631464281106450755232067449210631598033620503984005092866449646196015854252601355274443975808325106493616203253342789357430951790711003546802182197281377844876483151689858635473389017465979174814536408303442562632056630075843432351694933513274542800790098175586257477142784625178889794558018498403208626204880004512587656425797701964185260956188625696138193100309669047137696767196948829960522047486712089535103612304116368817584362906222872690217377176668778564242223051683716107543719460691155866455093284307307884758018205941154104877649620940001341168254836236683360889745962152730154036698305380881821658268404416188446192296145363959804233507277463562662752297364315203426462655326946093646247032596729085207576684520586175732393017319614303171867631419454266456967749810412029661196871701760286768307326473316612494312357624967344914289527248690954374333529073366581659223759967209655541263928577408178608011338945982554041692435389038631081352393832859238030820611095342925528712676078805776809171094099125902491284512927647218037064227201661686351626675577956182794808011148407586731590853621982055552702560487192450989486830562914447550818097350009259784336156202954178538523524746089082524984212358409358675803841091221100578633196906963387100126117061360839879463333280530274067733139278774147995464025579417177755056880510694031006925972793779880418642668440922222521521807453720522446379105209540113482325932258484463421541382529189616042492379543975967259321085166834961473682635362418659459652827921949390367195931442471398959944537305863114128211920995383405713636236477140179823606497614049440824003106298648131163938369380895325657141641321901872601533318267845180160346724656012761764387323953620894462887856606675214074082513122558040590212467307578620054126892014227698559188861827600025871569181368942531203819181491276612257430505173714740551148195807897208830604220034095935161635359518050620993109826070169678256290608458739843997614667542879574021213572565376730687769192155803716987721372579067799293058283755182071337422795773030273510894865822688222887880454937103962437301227749429213188303102693508481490161945960422700076165084859124636151738276801702454008274896354954638300599746024826257296980230972597595499069970204679944924985919825106331015170958557154124612313333905484455360117504092966965697090648674498394920918969959325696372837585698354827911205615833352469793654957859343871150378786763525162870367032181062171838314988040527784359896537170481345669116741249190704535264124742481052511526883867410225474780075784371227642202590117835482337234447975316077562312854784058494729514541942937450235139737090972838876278782804748942401877071791934826638575784633051891224243919455991899718920982930217776476877768282314121876638241517519878823512495180485992885597945381246001873349485714455272304745718853937012487961074411566953212532417185362833931019982696841898476315517813883879715545064160005339992757710617102804146661899795671017592749317454284373604356507071221374959813254120415087010930088104888139435135038179315703647634492377383928420554512041023571593158228119581619742420856626021009413691858700507989370700925784873710469868244113081251143425344137181649194738507547342334246263977519724830539781434379058701914530729102231903323559820285724374394585431409591008294370940184818976920676338596995740930743748244156821324801248545481848068292722458388343490905091043847193739333551313310063969351863697960966977663087548813679877334793970380186477357230973859927891247826351517605979424702040151921736035240172563732660758399133075136905387025538756217002053197616045150440042290035282815785752638276642229813018291825851187194134024520028817309994420275459678022207548944858889589953576888033884542063843815222654583160320092223177759385510361219657897847364733523404277018449841594018561292936568260142029961416889165446773878638485991403925392126543936925081915136125084273964424602106193965973854717790104000301382690054567237067173646915631533025643664137674719389837527767694703862684186101653831982211809351528240563748949413668130197427327631728210708253347834736268584277805930692841278291689444766819352226457978227273407922982256956721022525800300454541278847857489320073200619763801607314318495377544046863435568526462562333340228494709426098231352952207744243016562048016523596008140225915633339076869245390202828206303116552733567914978673667439085184186299419914275050190244914131203979170171547581486613698726110594266991964545976630838451564200913931838844574810440447959811975608258166079978459324872488510981819857166311184981136675419679738390873599052051680258180126852119226432677088330685759241563651613318254439106169794121960477294590503065949926174417064552135316089385706600426888227417521466221317502499178020416424889729781115549338866504082600170317178182797969325386395445340395708458349300472988292784981358964781643061115600222965649717282375732729019329097011422508935269323689176865017540474261194337574667272433950752501114659324382793498465526643160005865464450370169438836769120560537367200208800108630040792343983178317274496149621334443925454380729430843646182363090502186924332203477621291372956576390441911308121102233725304902560025706070121729442782283735704045250875619058271847972582069165843548178806548160927418118107090926154391938414929181153680144728087493623863768102344105093888354601184741953512624678083907946041930604001747411156248370082879227043120428610169457424833894926176384660610646286592217820009225707900922662610095924481171719202030266475783144163851266550781635729885772081538688315022272504916441318700140491030199189149057601012051180712906488544343349358455316455541932812082586726642108753039274942744178829652929580413283160117930846208120217701751725946781327022209031369582799310867161149432476610192398904501891987867881037758331684769770948782145493973333652150537226950090321882324593364005208510859268155544489993798990546390372991428373992041347134945868351109388668325578846226028213887529093597954862661781362493681508201466797995291463681146052878441596529637407192102628021270965087765404879552740433229356616353575996038990352544210704400417392463319162548451851930262893646076821035233891329745360813575262067242466850293520353222779017740099091684486482651811171226193800034762538838222947132867857209695188437939366909823035515409329368580857079967648580407933242644074129319917420925896389158241046237222685198184928912837635725434446165944974019441423056730976672818705603781786779486090391923632236308889303059755448766864483786552105471203949175391849136051109120530511271538330617992563678153732802350213170846648576907344063741907649087843160023523077259217876119062717581264169367978074523150588099389602451455985245080156275393804832329336662492319344958605066033516409244613791521876817836028509859604829917397771629700703613488935312825547332012749038818776452499391275053331970071694704284021084755677120779022554618772935062367493909987868903503922743894508653963212683476770479188348649158971333196869671379116536006481505741432453789392434781829663170541212060678320091476385646166852211575037348217071073286990689513330713611910058443361616266258834502203795457128401462946306777418189448281050421091472487897140373384825564997618184294841812449870506813396159106544649416134606023752027331985110052955904451496825208030878176061215582097168940488329694415819831053234393506137648179812680634398846663611304860079388638171341401605067138147139872026264513136268571455345194350907509181712864591183776885345338291132960207061977251598476575974674978595600613544049187101230926098494369823926634578987828565819879276007697013482383889268555425622219840753253993016487881169806124885342306055943362639478481079294280452347399546225408713646904939150767146144531944745873178381065560158212379403723040883403827815662611421768943928435071206880951563053303086798473588787454706759578491520459298197711274396631431149053115313748758170266900378719855282246212128916567481738679087628886581733009014818663430147343812975349257374178047242079168774169851104825552358679138523954976026648489644795643475861966149427351733882820743942342097805568069065927795977695719332534031321252268352637099389055047149324827486814099446577984148935050361212243355393764639036777246985772562167210213375186531346838956721197981509482497148968936309045070774461171333237579250373181528307562897969181081045477773694059218393522783286462172597146279318209245558204460915429937006443145262383119568919990379732158944344479721702542197813073033772800626539404287602251792829611506878877843990500979150876291769688638157433371901171864940334804212108816079466725681103447045080748540503598604859016234879673010245535441979534903460810965680648939991541462692390603410679401429552666820976698452034426568641347967389868567507094558709592008959795859924921724990354214183393797796388441472409436787314355894541393761595155540338256767535767237248385319786319952188574560473108600001052102291198473643023039362949804887319265687348004381614784101100974838340134461249831398851837448110073509599477360057300102053071948061928917258268220262514925606787009061445332261947165802075153010748484497394161660328656717781035459469860472196736794598952989056073370037290514587698338361545766131886789057472856983792566008623663053448433015430079359032702932723474014270341191198660727574533681262164869101927877974464139496490052899093827558781388103931345070151645712903267025965205064238580087927176352379010490670706555164540912351631324519761491372547686609479360942642352846139177180992315303077394812364629686275214937789744144855062984362290537676147529893861682688371572645635087577984302520641753380746182373373250796216282009479593266087174055859663255482754944121592698960473395048761907024772257925455795941682970468984964721527309291824394190664907625688365428968884464812286636593780424517847979299867207513051509870265115263321797158099512004121597476162948865448773255289430263493765157510092028111913071976110986689571753585826688194506550004473739145298286490640505565906372057999758392508608704030950062179481854928848819230268340456511562948921326090252531916371391911079392245290817564848096023219048389115575008049511587649778171870610464299820766666887850969297952412059094954871646773114214380910187074392411162886968725251953684870224605461625549799961889354923017153733914063649134478062409519000371212185203440690360269726246540001876478165820443213882045104323539659817929771987455712030473235262654112111894434527492980526247020376059286987328179071504455165198961767284803236226057041484067333569845987258209287324359602993043817514036915636149217006767310698594322877517254051320430227728249131862954571242522086167361973535788850502185035705079428211865298293848460520732069292152697277462847252180937479645903739393595218102166040508680975891078899933577274198690319438498212579037524037641198497701710466080734043090584838421361843737531920413019408116258021745611297550652741637272696936357962233703007521159464865125952457133501488350279545018880383914051445378622292272145962040071280387300108086482633984015085132120797848003886357177846806681312945206310625756399744061427282126908300966566356865340877577713761275767921041725916410801694122732785105784673004914925766273743078900042746441574782989294457005472843658439813606411767120316690527856377103735958359549590856919310064461677803583068774359407616277508110559749020962451615206227976810729348969810436784854863909593878025851898239667531498857534270982099972167056886603818963336522815841012720284910448627119025549455553155053238546850589585853930222241940193311852517013184908066394001180032629801802045662185532242198288427200176690802109180447229287524681071708155740678444341986676324341284898767992511207446048276402736045636511307695393854510927990653245924053518248409845434883336847526436218058173562432980552921371721407185674904186143123829363985935900216841721342281219666993766367359920665912349767726614046758684944691541831808806027988559460696109461189045493274284182199326934283563439045907707239050429553272116719880908538114127569693631460721906030155212670511599352528788001103941828018221810230656706243784195907534214578169616194373628395314100098565694378156670786833162825856786052371872627802841084800619760058400546441734418117385228690260829550170013386558753954557040841850560034270116275646540412780210534070052570618391205512543338074154558219155509018625297826319302643779801695631303508240221677126539630529667263133783497846847378306019765837860500484875881050716897829311963520731190022947926339257912554567513381321264051478353948084462911939194196668842465402963351563478052837887262431263098667732610676283580568089175305134953270350085141690242763823425782145070635548604053696858023553437374639530829513827699060619608283739360687289911794874212441435666961073214463892722044663782334495101621212143973310611696585470692898744560074479406499134388646063551848957508501519419574852314566244146626936774161796086523588402734989216038363117066795985075027782835594000547420119021187679265598702418897423277035850205201466729901748681240846417589991803129272968203412452359087647854800435434884593439976003841906179316929479381966598896074494840222209927371206611712192387495588726800677843697919894851156440169457142200236132738143267389905411675420407767649516208232273489206169761373373839261961908455715691924024382232355372035901980847157525042706729046643231659930014081325198913704100469519955627731568311959865124191158251333760641871315628508973631499664845697031727014668146106388034501736812459134778636539483734054045591890524499765070803919975293438821105337072047422856131697708561168349594166608293330722903419590069781947378181347766236931044623807422114732925871555096764136013882649403518676156750618893778859263431002998908821209111469419500029265079021142913201353705225347772456717485458081443692860292075525243330128610044262573533418446566673077777838017664730664117428810558183215508625719085342078223791073712086012144139342838653924034093090556834768700808083150041896907568079855397668633268691475351682138285093876914653697964499805795153610083467671364770695301642796614576355688298277899617421322137565534823558488359347168952208417495762723876623638687813669553649665344633920618332491122129553170621674457273953748592240713197178275479589536411991582815471417450477135764954295842710085535478467385218437936381357217637443350059218628363977123247960279445965301342845253120186693585841525127405140691983722082748403886995392397442015603332832746628153890360355030833048972539899224265081164706272016187360259348930346002550646947067200042001237665697488440350073015862567937696982409615026981013173556178300894548038555889507874500937120516443146969107200291518996492413318348422492423201314847605272134924132919190113945125441907320023246974545588800972169591217762400552091567690347107322351904195990771918027988311160534631180776255984146909894993050344665047677589132537587414075972132674914484065996527225830725001264848987978825335692078573377929484045036615235534953152575264319661676444277214532325366612575887105453504802296909287624894777148263858595146300733846400280540976403951230486150713428771751440709609968192610720099731470021135877479270089713036460322300539167320951965030349453266767908701929055099824094833096359503729174227298692437199109614028159258188445994639652138893762835626358099470881973569561877896831114508530044814281557101052016457106293014602965680295874720861162448671756582096823318035237282890530579574559952549348760389499068904042594231999458472093805982900271055488802950553256824780610181432071268443396700728932196703047674771149044513242617004253567367524695230161660480268818937972441271092362606833269487757025746747456201128350470658154748829478332343387647691944007250284882172260855907538283270109376499853159073115523558020649351050388368026079263375831936963409727488929430933536045565128620056068329798607971235320054168981068853790568369670577515723546227835558404905292601314300921741921675283047438882302154129019308834580954584972516082422487301767516117792444934838276785033186200682147069024223773906405864204854980753177899781709392167699557826411466090448513590717562481849721316952057722188258707723782849019501345102280063670258168437876128429529146386517430842963200882765269895542514458882337410389595257249801213828948390952202702333749494841572786004435229210608733647025968714184613661017420445418793092925627365206577520629737151921313181821565338454016306456836490800569622933784507990423160496445436057380798035813780332191975229196913782018483274887030956588971578370758322070441475960675703367047241035039801297438463337837926183961273436951828882881013500048753684893008500243202634695705981976005994991996183127919803628441025731738181119050987637316654459952084958946897138311340114269563567094488202283595905348703415274461946610075095750416153715363212228332320856663503144652493148562173035035185925217699004702419300254488204139596894749357225799056936473093183869629935668812329846424041832692187559707261591565683859051439483109204392334877428234255173102158799702334308195735176710683848541666912552610223619954387381944945822878435372817981259110151633791383421054607422298080839262287587813514132939688613580952503743284464716920238329307614654317956315237180572273595058467652009536143562188475830284312521263854406501685854467760052762249039511370429983713896192196166466424645225513649201775166769673314911037055323749142530491876192012464558275769337209343966275203685428430307549938839771228328915616005508725676788745669795287056690467938071960616599103328440566220887772106125406095282140536270653846156230370261909316777591227991173109353537595740942445383030644458280812773663044799193961698975125761273568183803599913992904777919906300028943733400648786327740821888373703076771920735307711798665698384828091305930236572622287403370906311026351664522750905301643155486733527413085092239491294968470081893942733041793669423534040260535315287214782608400458675126013297604128926442020664048214958341235696936538880429804871257002789008243741452800753165914132164116002234040057842965255111431623861734186660770907231320374908053287204324833933669639510474564364620514507768520827354714759507127655617135047908910747611597471594018169150798330434367053796029835412382307436747324316890652833510638913082741516272048452718876966960701536710896591758326217740988339372494803307035860572916217059120277469557452184043752033081158538950651632859918433171944056236177123120013805140484816090890067386116761625786780536073112711059792158585188003230490485368975432521742740584846353347936017629596898155716631745162588042838099168814072020775523893172564593737205749165951267881449092286125585967662729739305906868111571014947712213099448778631142355252991451234773921251659879698006532425836240273611686745476080446239950112257092146626635856770913366784774840023479763229243110402299435897551901237522687541392755956412073326562358386808552109047965455683567901159006190995393718210983288415468559933998645101423362527682223635621874163263491382333891322658872647313975744073579270492305341228511815216950808594195935146616815257846625909202407626477225978857909446658102178910198220976119770276682281260097774966741080235374259711530988795036715591391350871172772886699050534152939263829682575445343960306339386524650180572685917030911387012543971750160418785223455180571566486159613888136158636904761418033220247055970239180950513133149802701355945444069323767198241269546441467174799220931096169703247037681454381413036737646694838183097619822606946417091742323206791464800208907352272095682216404703698955013320792441139407538769479632970740909567904674060958271128910418007269939589694004082689346990667850661884762420956886872333932437469878214488459760680841417513245932891407399566346815742445429668654244303359224815864773502187521155472759400373806026865852440337031869367980743850374376980444174244621152559956803810081815399517751714835170860884401245711470414376783836536901943022250598660647499869335968974387884082580638821176695304601652946086297768764968995235233364521685596531280764175978146597289713772783425882747553962354051194810935562990568424614251347636549112730755152724839082962768902729936122533386501910352917329242639710174424514975809072411855051260973003445513355637691011989450265394427102794891422547159062717823020465899309050122386171195638118468995613942770773742314071383220489826098035006918955488244062421574953589486152761924352627090813321484759330609925414981490282602407117780688078799469201508704545043638409250470154244804855348606294449330719599071856040525797411692413717098183294889554774820277222836742118183995556480821268657440193074750084409946729841015639122640788616943841237642549089845243989199614257048826518007316111007836482656398340299815000264720228973419429891231014316392561947752979934670688050620543210299176244724037289635783244321716621246479565756662585848489156548453030315938301395456254083152014249385326996371685244162991180564072410600413027494602073631250943477929447031970486664479870188078354301372238919688517573501127156819566687071834432056839658618286667871425316154392589702129193950651543426568901883758692639227292542023658818675126838975798875628362465712158531277395431862370581529252481163682267912640559051601478851248783251857513116972765891315248694542119608120383057118545041650098936357856095720369439620508279145065639215917601637942769776137821901847760675986306658444724357219917003068021878804244836367693500668465481352663847188547453481382203244895648615636945956390220901158202069344076497755667286246594130998419585857949495324483748858530634043281207542577629062470105845329138380608599731699801908208439369901259552861793819809948262409165622765847273446502337409483123548127067567277228501474041675193414113504015832872570025175299381691518600102351439492214961260536189083552217102131598457291865833142130039111273373069428313857836508789857773921400225640897525661880588856718520664908906316172587634597213510684889952206860667335294423806475450646299521052210643071949167552512568057446494563823053686873732439782483436574436281547545718386780379024479481089779212313915035270564321153515199217991317663340963886965455628511960953165044937910168884742780166525291432162996936766285329068741710111602758354595905518171561564993457833369083754188317004224446112175912768729271598340571982616945874691272874981426102851175998931477063078344245345581187900258700527786556611287631333579723855857903293499962716447641421003589463326388853893539802926349750876708459610713481582319022625485351376538408609088703959115797980189107880906598288507567088971474840699765202717803899926954294621608425902362119269511717026545897004055206836027246314341028580312968993161911167858863367910888172293197420777730817826872814820100563969187058164289802484850749971093359628790894640439374259361886705775213633035133579264772896643810157521459206701116459204354470221573345115056115504648241442248703276661190349305582116366830378676715493289887980756655327357691532125824166674013618845971842692905754677667174672140513759824249267183503040799048512211941302146600112083810466012357633555138334344333647809587726597641528784145187361432874378460087423157756236788491735378846835656641623522297934717837183490813606106450237792368131320496733158089258293703149597917948652155501314267631148314449528451337476787462495531385134547596131938131386913031779457285948208157925999602347791645450451214412255194964077658312233543068194363382215514602556272410261679968765054750171801841687713004053078038929639655239556287004926138121252641769160458049240729517230617679204887075064741143656578470780631029202950797812475344001519447116086122008031415776778595726104978289222625730094430651404552353393255247171547461357290712977601984297221585573486121097228109135796712317745558510373498592134235049596725862197128172493777525007741154379264044729301832823729863270099565961197513669831812995714958511946963253962541261858973931920447430578933562647986518858504776200163541901778991281592435266881321674971349217652391014042167644450710451424643659229442486957121726659284663089325579576553384234152833676208062625919889397646962148399305453825212821378891870620308465536182720816698063211477026051229275483747606288741013204012654714041648194298178665716638132354044119840615512735189127690951436372728246789581281353669089000428236016891868474723479640473429014357309066936798150198995836764857364665906482910065921897507795564048357129725970825408599250506456599264977580745136171788785416825020156589607126041647166572611002705233874732979892993943112207803799467526709730556477234542418276323773122743537323200941509687035484461110947152121304593579620431106629910277759669256283486113433040623111080641888357592455964712471991203368929517997296629960656726326231713085017098186541142621051547334842411420559025228078072537478870216747081683890688221028112040877225193270879093616647734148024987737047913297321818632471697022293515953926735431336497179347365233794040106232354185325079573190461191320151043523577245071097188050663096889405006794067129323805455256807299555742555972511312814635146084733673997143230785470920262689910993018618602441530127213400092252780700668536031229519982507979858236975696968875688957277556765332435799801258352288571862586864818375023934387183512491697438986603685812884283222174508410965262439608709215618774006275372390091923908985492662030119637227833475926846735404929715066926679454645432990067366376741397564082451884738605881011486069254656357502451060632201275641853332446290732701980207777390541332295129238989867870938348122116204777948160303971186860712731986229640041764006372514548233643171547570775406090708974973656007486841809489444627253659119549036418011845817257211535202163011588337180974062163753069140999557404324209787407134460268175772147111113297034121374904811730313685910158627931520294823304398930700940572616393935068358243225518775063345045920783668453495049335843401668831075727231319597868453489649179553946965608229254604418036998599601057110194686062097058124638294662785219352862076604011676382996969039348914949314559526757172956964454580792811078040847117368513543946187463272321395035356267974236098706969151082627254145471172068078288311130674058982485354117288794501000258766216381818682407662597808949259059183224859739670041873267148110193940043067118262583974220088609368608582158735236883309614405549297025439044125700471309434260427232165190561903825321977667024435558977765526715142013620850460535488101788192845592892412370290346173716925279194516801445291606622564543458576872361889839412402556646672780903737224455078327817491608465021455581730126658153904598041174811039069148183202438095772169327885133942661233700163232384688104586910517759108760340122152107570973390776171173335836593248522946915951754243902778094347001088108065520534127290088157563246510275675355449986470189353539746460631009980309778103702035347698421363896436405219814414930890737270365465253770114198585016828084327309278787884129773677371508747128409841824390035532132613429722587548298743869920433198765683540431746078839363101304557967410840642759417679801920182275604120130977863609070210570310516158021361832672191503215497182190411905514409854010772020094575351294404908662221381826852521436229477636555332670280551096458982500460667530004426539222004080395034353176150706199539881026289559168339180454505849733780687830126060706143590028966613328234084488371209783366258174770954616429274554259338233393754631999663415766395908012086571703688983660411971485874683625802523559252563977711596765533391187288559452607146231163997385910710540635979265621101452886351315376944500612497706550757183879087873379343324528344084037545124022808381834775370687731614926976190817697734986483165893079918618898707810664652261902508679440832862954910843208291293008990817900756758341508527525108431442317541701105097661038452614270715702803678866178186316187721590504231523713378009878538260005128271901443917915815566674472774528981545671454754399010478797463630906421233159639375549359223492173626457821371327176991932832785021748299089226773008384016826060909600691153816634221418928202369697551707385264322428809874101202396537401269702879735001977822677621240717244798380946537496271145272973803843756713065728822472810681895516204450694039882488975752566666435910027973128479155132901346093284056371645264344343146938803811163190412814572146818104341399948652887989704297888723463430805123630762759714636767485607377373076730815098877300254579867711349201012162083765665983061781282004574683027361648671601979305270530512223283517101531423890856518742147075860844908236769120825890990411799528666219234613275593951257972695984829955107393711244756388288055272134462748891723900000414651927399748911136285888140050534697124353352765299954354344361316871813771586930796543891418282117366289093963176355945941792433993733741315654510230146941320963085832041793958057713583010945703211033745115273522376094961697301600062453210538026645648256384196912814934016521162365493398685309531832845141428456644163133785934161458006405470694005193077979713050547943617218733058972804191300412887060739085543215141612194735514379710810040347778700874200256480314928004796175312577120147988086704624818396615232130387812034062750425981893216657395541511457426194521019431662276908181907063747005014833271206659109623839309704523058818961126460802176963680014174842624237340819371359648963917621345086935305819707868494577951677167809279620993165210497195382009328741851004207465116629301460261459083338311132228569557144141669009485444890012254721053722701792214999495710910936748793796880538687826203789064803449738106654546042489717276636292218896593073626281748581721352209172941743475997813199242507548389278615411542605802793173524311076476895211240277969340670390243465995310886271548457071977193877547091404307659447114246633231709078550076174075763997889746377266131369326340350677456937338747999812954351931272908100856787516686954536407226365006344004003999784484400646312591436733232209067957292317655752471229905235235789822685761072318828934982645669232417594785874734133781780529336451825519136760829726676906642639939043496677196708863403817001980829992285052476527267461280189372620903642943511026216836173813263125277417212414207828901081961638345426225347674390553706059472404705277844469172642028088280137701187804495318695571300863051536822602975428297238055698172103335050277932614827290034421706454089099943374331400514251232264479464728283448409586830521078352013469566299045820950030349328412745282275127066289259833290662288257313853909270574442893573232190939614115924914161508955858654250651658123495053042222178061798283815370631372060955711565623096939832564529100385351396587700295943039168991181076228734282328577811756923451169342814967001912770957901386060629545463287217044070518921465625745084354061273186158095255504384486936149487124939960309513597035554549850061148120327488572081155769135152142728442849009206639805240926618559999155264014752100410517067199366032864616416209986098575076100334468610409725314075462032617650351160167123842779487943477737908926315023344791893241774180250525192460871382670168237439787711327213218009651302610436203699671622369648480178344401267130104864334007705694582920260766152741066723024659675344770192339827763565302881260630268370783853803158050863502696595514836041708166226742703150953803480100572002421326068223387493863161707395792809680483291524234867067067945470243465705007110742053108917133179377434821840569999532082032305768825103439546901088988728759613839134568825696586760797647670189717254718195789117388338404133088877876471678539936416061766039283239368591969112261806641721253578617695198259153792249488638132835662599133747607538186526464593531553998743589360996554858632150557166106819868111629693182991310259701768012297930275512185294417229470184635567294398468688950550745531856783526459694773547112334162068731549171922413780293094043659061900870497913520218442377893157927377763823145288729297482748976702913760689527274138250291986008929962108762130613971037183406098412378588749369268422305928951076861049767930389173090409942568007530761149893119819170476136168268103347080904069171866118680091984153804357926771587010296771475229361926800591027239556504242217096863238732900508908530331491294855909667030267001598016525485177931779874209397559886477570879869405175977122025290383665272713509082930263987686983891019299470940963308092172605682637171367901545110460747983192450737731463154685800295576777492978085314344021346320208903719806852725731435703456492515732157483035258882152390710492187918662570052805101030464204483421324309957365849912911535724151000859036186557475868044370840136276325841212044678001118500521272021872246022025408053814768254661888421584654546060290962210680129768376017850352872170484168392051719920834039807238545686509501388986906353287988450104404024397062650020699909543899367574309268813615835048007052367171328511816937165010650269289990948450657649651832420591994513728576473983209685909359639647752726903549035133824319703680286579406480235403903922792424192806335772468645340581175548659834685374927890519408902774516945565607219920988643241706664074517422907641413222946717181332880161034305411386623170446639163375243350832493639840192269764248729549025118102451929337615240011919325852908411564414664130273945739695667501607271514529483529544219658900393997956145592758424686181720679930283793745026453119865207158202727370640112508705657490431692250061795996631338991171395079350586116238748288896762229138380755796265377489052389099971726991817841841821389963340847810393375043012366302397636833316652606454828417496322334203730328658127801735478456645497064110544567443864059626590556157655306907678672368277238183880504306189567562395450718420581108936722609072126722073620322726726909305508555544157781713842236859696152940552133424617918089520327539446376473915048616450413159768848477448993682983421579198287688438648600542260940264823261730634899411996296720362074547651777079271631861947310557252035146002557119182135084272682958725556213918299552025159090462095877218100848591375860200238548429832681542540487615676606019886846011547545859691598711846832367382094248114015587822270970362715126190594720430252756867457713244462794347237375540880196999339966990278175439940126928235061270529191276382223369326823246605033649358452785939654910319986118131484605772056211138443298873186880380162784140698883300068589625388868987679636769912252534585165325536584208496880298209901241522625288865346547805758226408528303605771996018625817076583038117479000977445060937026858939453449501677544362344235645856786735534978709216564812449698938615768650273320688208421194538973517613707744522295494130553900284812107705275090316207736580108426512923690990091010473333810491832270703632847571745410128100103709427725866718555575745956496269516362455631834818393766005645666586901409334988478437995139406207646399941558942760229901460787450681250017572805393941044807205665844296391932134531361566916593923372677583263979848846789750621931487819595218274395223724728512887356359339768476767809780571471021645767429807016249540448411850595374743497784765871206089348695653256693934315150869259739648630257279879688020827708262256491186753468658658452496598181109531998812199749184699531839279437566971733142048982107127313407355419391494290215535678977495600324376432694157634201186911896393916103076050081463840566904273659359843012572961844051484607081267395458973866923280420198925309602351948895244549254167623446438333480884828570186931845710640752016310461532282404619653791432777140367387812571687459004505422981797505467178825541747438618852733496730891387072952585415606703204205610977403308288788842332655549889904567879896147268945790319179699635995337379642158718186198453935554595402120405775351468077125954657571426818052789979479388070125023954027689473129166025893379268447699213038174758674431992433574922936697397895601415961410251212195164519596546811947301227985191409750251548013925942641854134602799406435485952309442760405935469696044538418304800998078558206796122271713098512735765278407720867096057525434811003709275375306594234691725389666745016046688520210531371443438924073791399822226702407726258688138616908967606376148044692226771204594779569606812931169215931590176765280262438714586458972378353468376764717390693949038917773111810159240368768391320973791982960000727144628105760717227900247182822298307669542546421202376551244170399244954053451362143565453026406136046772630781457772170862968050660058689136072149127577086049440471790462666345815002411130188788993164438431574186074194636870762928920600128408476669046049149900744943518093185217136862588680217393514131487501099306615504560867936308835852860668356633722367226716805342387667417710415662563426800984290915881192477348492863861176203062584080169037792738817971181108749613401962845646534537712675975205251192109463492187528519386387424710901942015572555269817251985211267345377258329571021860618357876143208140620983416329599125208512993333724786809644861096690409956299592428575334888454173570581861086003899949047204077992314313211298071222073380926619931602288674556525736245940867581714069627952821775807009206844582657295446244756000291790083636551211305706627549318768532710695893720768965469729133277178791523479988093269428426951453753336402239102224985666865765548155387571206799009647096399452597744891148545199347690266092849523611420865333855778160675512371034507856677407041336670440724471279158020851659707922425036595288113186086765210164200560862462926200458353886559109260281484184345739476125013810439685794718053309502101327560330787921350006038391048900890836256100336066927163766309167416388874832172682127271830659009284653336366787732921310895844899796295527600984559710483992861380778856165791959399074714467882879537462334654992308269215836661721598812248635619982512688700704351296988988464288550512355528860725976061647643451067278979319891124230802299777346308345646569313402274677495140017134506676983417593330334232551826986881725311899970759873702354419389843928551081735082483133367635754050721825477169673781077214642687741761163371029043683594286205595374735852651899617198036380919480383993376860886353324360988727504099497680925033062310856895282207732064664490055364932321647504104197919389077076860960853931474964133951529065889653926398641965470739758834511785863704071310783761965626604680833834575934115334932208067737798680174344840019208387550338651537873787677218390027446722605339163577832836295939525499551226869785336548421425223328261996416698302812214287924856131246576349437845142831814316804030719738849464267733040158208468235006161042429775513994212624479970440211504509142853403444084583194414279743089020176761055224750062525016310519408543791848411314679574245229114968242015518473143307848912388708974659586985361518436706284129080807977507680496734660752983962601063636171945473164825269163698386360190628467850987239091321303351189349820195552523288832459036202911150929558605646185909927475142816570620040802522155645410244445401662207658641166861264109850705939542987865559365734252881236686808069757937544082322936636427599200876195882513441601778546049941829971024959117824755631661400960789617723505261025294887643680393386689848501308999177787495157104661961991351494341416600620188367452000445684325997674833441490787739776220110826022961691839934735290137995205803931939868673981468078787562595879047102258660944140860488575848627794020483479226965264854561385498881270584750281893759126909380304207389576926193700487607107839578599184747631300859331041782435043278284112162414142149380553839715701755879507231817337343224388856579185327140993171906354693351404222240177028107579318913019217193789383668160909176340240590828806855331799956533326995943709309598913810880159008909967665365962201633227561760664932923401498410566901941347313375141939130933509554165760455054847531385406878296824067015388793585595867298319707501986250457648869136695562931711713094734405759657413610057232119035479914154568152186222473303377081406170327765766078176194154165775341263553518394336784180100025109816607603433201441652612532923976454670823763127119454376371450328416979414153112855221042334075231674831247403706065999264608578282436245837044701098493455815162860803006521155293832197871174938897449033688106412019237960731491845929071879269609703539232469725650824320642477414906921880802703857616379420088992328128418212524075123063496056852400433595590532827660387489274944809899944396997686818641265427979598567882720114693527006729472697440368356240291013113815673489038362968634055520246072161654968800222267375062931742083668742210743916522351386572534774825831947099389542134952577553780852101812027894763363124835789218469916447870178786610949004557420811949637859172570651804078245960710318572390134747309825301818602552820037193924301342317531890686430541895756216373938446566534581500070245358991499861953455881529383253584358201463744189924831590033839215353277367944163986356236303977420910161739654000879939805860349463508019289281139463666632781415414452454794159518862340398784840989669955836673675104743523006024165656892205019570736001600358196365521311021663267524572065316476814892594329950322098822886215562276689981061345237276785171943908059656381303025173586324197215092951157863302426300485521924128739320304170360652883975592123683175252089967573591753145787798157633519655045176881913400177446189322916796502258144216512328514495505573195401679400258073260123777423130439739720727481332012037794304988488091659284587997209064928175628783780636956232361455821429327555255754850716200708098089732845170905594451666832393179170862936126122446062045262733422746378430798451015934925203794858174293790405243000712694885297781142672515723809040030879727737985806265397238566824099415498577984224485620406369247852230937588223523245166589355087181843583721750186975115231127656650313071739742687170863939125799747806980742641303820534320279574873091063306969755622736902661265054489780620818525857770396318510241647739343242555534504011170557489529164345219296056300516494493580745550050221560423319573412405612386591634954956003174125122347565509883459212665193294185310259894457588506162384182212145838921037905070805762109801511659630965204589565809646286776787340919458682334332752917672164582808971334305358093914775002483121078194142167472329063731928738297672623825811330878683892103406578706785922714332274643523513079819146233552805766411541931857775865374219346090858691197046318578884261772817990085745744755009776999876539472269755366516938055010083224441323074466792145832942971775832629131879994569066876305872604113999149838982430367904490553110259229182596347491813174078386285830854966772795959268996929688773244153923326856398135426352688939266281794378886859194530350360408616651612294253418314435811149130811223482060712693609392162966519221297367039035717483054500782638217009906162105561319675884707823512730596575428460985335278329033670124121991942455676245096692778240384835501882717050103973093804960600782380096654461985049800354401371460488266648097772370109009108742088357414094855225730431883520228423974941423207740678240358908685854575880724362141106082454376681854925777423606881461904785903431871816224429977567575358620895252066440212460613838077721697615082486905006492408406807827244821212471430498652217230388661720825260749637029988503587917591999733179703500474758016591568220189390885389442914377853701286736730689425535186382208134007064240230855649606962929357582340997190689886788828731764767225042982020944871239794072106431748092922178878572764151947968596029630690243826351898703125312903891882098551723894651291748388820209676754660087653701187036756559142792200105676016921947948021069111397176189359379624306420203873178292007037455121033145500046679802057026692702402589418375726395014649169043583130433500593579362662382708427375551263599577401289240196455338108524406489580591254576192091247916456878278416274582500166289803713594647578345955486301384399787762292116683064546340042726938109766890063305393968951381802723826607579594255292345594933641900570735039143827614636539134575635439734473182895266982042608390959893590951352489066081749902311458400373315032473254371135150408052219596520691084784646092990462433979467788867663684482970815300270016478027030379015426579636444251755182365348431500092629198802694300398445103844088414013436742724065165108594404574337702699372528581528079724586721603836872194260297430084915777395132903915738788027895455809450640835374358640623093714953362221915268537602841304806634700467916611156692557279016896814524860328111509061269739700781354618093935851187642811187838294034872438959253709197600900488244311582127788884896543220315982366651765553952569277004011588392855717323698077463992125428737335604844237739170471099730325131945021313648703301289723066810872516796512657593040823198741996001854531781886445752610140279264448666571589961560156095334189219732015243981232036560223063141638103576614099866357080142358750340761834598522316040628464468112990047119607361393428462903527044165792247588071873212880413505823553013105505193668914449265247614008925010264901839384431969776870356487434174333135397336261287361273045817404962563896885928669660044184033710710868875129778844425238972653927557071736646218831512258091545633724391230463470890199740360506762074102318084300671790968346752376788761872786000561377820185117340712333599640569753060701453973722043383459662727038683767554044704547144629532435261723722519847573589640175450771841156225022605903467766845292613511356919082150089064493416257229780824837522019740231344498438812102725421419758113285336294154577931750990258819483856560695013198241148514347298411374474377394587732682143212541290671544753205039056425235485071550491418611732886490308297195562666148708242151641040482508532099008158900962404094549513110016501697839920787181879905900630012161570237163653571301039479932756366265565883415602883259305804027260976701339470065204165857903185097552369575342604267879796128140157359815406990945027501527895662617672831831881780191785705240801912738506976894260426944140919346135031741763653749022226724326582936913127006442449100756871927069706598323481830580843143560751558850469092265541663247066546015228689614143511204359895758116044207035288333211931768960780726042678254761730318720231832374037297714154204367729728113369851856342703801517129259661957148597235328366963481851844172430508478245182099864122304888308247289688898983470869860977331524303932533145533245538573115085677584455914506140155465320699737805182798536200324735827407147146962239649169333168123843813235562154096789965614296584683329957127463118913952776286721099184003960096977622221289069054795145003575484844378576636881292600681106766567255900834993960050782069013733302609466016416324624412646681817604155422743439870406312545418304954138927299240514555108915682866159986625576594289313267164150712817201636118014961861118968644577861714992499184511925693893615443375876357806201108050628166292441441329746818233277753191867388231053975560318936985761364676920483655968466067378664294365513393507031111294726699990039955582318113342358220847574834300727693340543099897837697040519751719662427122637071142578335691528145117743581005946093813228343959818577125516126979135451686479646839081452167719685179675541061305889072118863892023057362796662129950663879414087247173496332696578568965545954131663197145305794763939638880473206924308541766297985929412732216772248020627821861332596943458353708208858092013371244661585489880066957054010345117627262416950667838571270013827958260137971767210710943746953376859512493991919529377245667211994498854680243295999518862268681873696414938182671617946355227303048499557835389882324535317228261670326306771791408001040416300640505548282435236837476881735561072551778473519480183699298174081545765958486738877136913275580628738898989676910918188760623295374337822589442329612369991069133939436052578393611390311132503023548282971434824531490817024907830367720167193614038518581004690063957774210235309429067189896052505354008917920356406850466341208789846153108638979840566466113062932364745081471014623361489275374339300053257282692656712489067296347344611766616935300516181095948777657057910920788272296934698762418159014325942773657481654769999351943112471269894400942496743009552743817443303910334771386005564149872190498432571758040357897835944345113934868676125828299786334244387761688996369160473590954729083682624790818659962880752062363818071432007941937900525446719584403181593942343163701959055983011778410444361843518817715710534318682573398818619145158760801831956941559151331800752919234320492193911820487859775402284461157578702344575855211930759776834647931269950847849003847013895828926527104286605694606237996641891034746445056324039524432538111993454427044643981748356211011741654543166398865199747903880208023680540837863125883222484023774914466693000526901904544587356590809017352201518619169083885500948277774812401378761114401519959910782660072159833087321015256699778907303990790343561477617246510804997029395894623381151316361199205930694680105092706254853671438824424708239472461436251801154257584228871612771448279582886200880773614408130443895473222311806817078754210905525277770973659795399965794650060655949995658913603685735019900686731578619633525945276861713616702724392905313297974722980706493263350488721728754952562228115212780611018729426325167868745856422474683570436722385059195758234078910751336090357128154306645961086453269130102785272868777632997680854450148222457348756643465021499989606756586795749427468497709407787248760495464461716257178219933451443039313293657170648020990998241388695567331013546888224028611336086052965025966393916238543659845668184115769891013022639238693867239146305140690635826008553776943677627945684952011667681583432707635620209607538472988272535222931744415232856510433896305578646281794679267873439792303809499244093033148806478853426205237049663919206933851914945554219879468572514037052656625297563293346843739696066010076164952527052991919579428779655097145159576794665140880862053088781491822640328416101098771216839618042960409291197798590555815860301842109001293562449745590905894904593906498592891843570117836151852031489611829244570648659582771508953727042915321088928139431682932034292945219292450008271948481296012155146727369363941259692386647693852958656624555085694520153278150615939760526070697341450401554645718019258279723589678426670156779891156887306726580930657936330562265918344776514808707941312399097811154471133165330358600268602999223784692219198868681209237930271283971990209035462764782373780878754914808549239059246200379482556166603686037454974195759566321932905802772330027198489450007218857231946104897350608105159907182449943819167396341311947431382265150878101409024695041085118209163036298733559714996835434872266713654442969991594473199507813903765548674199815362623141135814350775509312661542923685463647298730927581490268980702903950072203188961019562018677275633804725435368865540200253194249208016844878169934215945203309278548010577300401315057773441708197004562381172362097502054001736884489481874848787907659887135070400497047107982918854532820708563279250250391613105880597447877715607511104346428087499682761519780811798256911496050721653243441569256288421674434910321250872389232688607291732269390338446683603501349976297991672874269333377499579496248817486085842491738703940093320483970131429187882463903760891712408193414472983856185886378021603638613446689558549660547142207188096812479157516719953628185825302558621852500997409016223132801556807459215153503630423563980221735939555969478672042879841304100537889749971028323477274026442146559587962984988907705377328732172131676407431161005135264847821752268069793392230431034269796070552905055735696826981837751128205996142457725602415862796348391113823874182081964329259502894671634343642586820778487210651017670531224383979724318881427279086341936803902171495385084731086801099362857788744145608468492746240290979505364298581500768024908828393023258058249919486267683873722126827857938588029770503468954807065510001668128013504502379880496763384793403176511354127674737385217932763118203019551233857947642772982608718772468546702363943108969365035004932305323776420598477534632905061422817447255777362898587804898708136257269922791296861420623381635582332159443311790815208207422187060099378180480727959058388682251903232875060123141932432965937601031946037765333757276962765690509358380450449749929817267554946300711883376415678093839232351221985248418385020372659230664171719674519201562501746907906012041345093053809609865104962979193538012745158229541966973025039905038138888072479129214922035603985298054623896091222386772724493705020664610629998255134497769715987479483225855020850415968275108082676473316764002811190556678427467463864859198960702995267422829934353841379991321207672852770234605221199135026242863072932574716879910652564415884771034172386899036454349573227859923867718486449886575595127330721263503326660828759493424872686577266374874578726939740398490839945282866059148978086479668600313008054245050979994308652588292667644984896940064103832903877299056889525858331277132108040655836262050942302888902413536779700171168722942061932197751034046118029114923338703179102318994622182152321179877653886780314478783785703257482678203950865547818283275232784112417094533543423733927588330445754353870785186145445265122979517563610321507936366395088893546564612014939394295323108396137826128110009732135831937447407733465133573747352665531364298093442359990595724015266522401070109499636800885879267699052345973290021042621144051732469843495953125084211604045837344826639443875733493353113856466825307489859004757612839337855677829116373897580797029086196178358232095293817885145076198462940728136884441458308011223383432250366714981054232631467351733600782402489895843499087666733779212970006953066187541469268043285724949627724055440370754809362282085998542509507776295852691901851062932846618803110503027733541143641830347503828055593671178838710937439605670058757016417160071186138294439158699141638053061873637146758005783921823415032221439056702043488521998120224207756314625793403309653195696278221036477424882270734182268300965384549994541638107953307099820194591738693427228791522658853829647082251145998493434983103226676885904466278622520944056330170432792082892087087029680257930728828271802088741298792809753370294379609739268295349219622978560047302953154133434960258479276883054899963308146444278812852340623071664867990868326169010197773073102764419990115924934618499755688102028489565137301663215917134707797808140084924073942488887407334263241285217468506930806512658677604324597255712447924925602876282306386156286434680503165287302290098599462763547320242451768321776060665163014780559141182655394989261901154414986980235702432801073765132777884104900681001305267883777436311366974858739936026096413269005998597724017696167498221402160182450406032285062952748343605913941223149198615559136337037246953726186657334028722276988672281038898696755642994535375264152734238958446934909637125880354849107583176660053855917839273804658923184551533767432382575213065650017550911192752000823067088861638590859290837191486979377639331299279880671649175871872123137364040507042848080275117842593382043628298546826092053964364711562592824421826474375995630275517520191266053737525310216809269592040030437217743535366888922658673543740026192089079739616085018754986169751976553253921386853033774708387893673191022928833760361856566426985365330268071074511509944542485782167304561371301268775356188117998998800784154971052021125270114315103024784064155057690787577986946641445632277431966475604849603468503674570322499930558465181023034899367463458664555382789187879584769770586951331742283758249759930761091850408630086339267745229459211619756306142754426355168072686634635078093910517960948260760332745651007674247493830962634329961353804649720335078929557126949130097793718393293617913422137250635714536151829892619117921607443638286217973164932137956635428068790083085689787868422338256264111928765992688971860077226709527336119855275239831240670174789502140860784513613110849382971485928875689467891792964121918787078663554118694510790728087268527818388087084959404209617312018429819379145230979594918765744761196115913263824950115631667646059092027596214906834720097966801530229584298866755951230436988573364137560948809232221552279600610840521942094302158823946263458147558108911430003108947958676880692803614518617902412835744874157259035581201560744138579271148909651254378347680890062744696783067870001703386101985861907224611614635767553027969558488457396408700326326332066394399429015546694489029892732787116509595573636933554321484908804940301527035268191194680002096722017314273623940563856882498082514219764958153032222197540840003749952284065349571112707126965549456054944728308649429670655351194114524771435321262251134085130575850272203510058540743099141742775770289632212902918088325408922016877482107998175860473986798111579286614645618489356700853417611355014592535299837829801491156252309302918785382019472837865587535045201387649873494628378057788395363356248586573729217846930915514749386180528378754564761476045868564575836046226075848890485251995448610280451855757863444155792413085990376638367909590770942817951084683002304617397769655195697151987225547570095540093191397852122794845790786624228315631535231699032898233068035949600744177507115505989421973775846983444122312869068925433885257544115428266323468264279876680180999215837154401663155913308971893429941646680201478018819533771007530342415874609763055014840353742229779377578203928919848473457547366978445400197707168474270508522395333964122581839084380137108389737445743328690795343595918431744829179663658629213689736076004997554152626108390033880131417278415654775160525291065641906733997149101754419107755232428902915620873692846795741792984444033068327844382214488426159276965121495952097939421819155080616399651336191486126963121580083274615038320547113580737409290509793330395632524508725246299205458154274998452817374792107628854907248308776545330191390672880277345986753239760198863029054117305692131728350174487939786454473414905991830006970010592574591506619980428883178468909419771404233238598542824165010356973090754437444426052846421216612690328937740156855265773691168560819480163106227011124851250153219823924886071797266694531126564494503022045680225418989972634218120533407279116260091602490010352366416243055413251641060239043189953223578405192846083469273298291940586263648456371610381415199609447731128331993316086105446790205408519716749056452562580411818142547130254065498163267917078203563283195713370602995480685593347439289181135641068648239685418960833942597451189932281938555888404756004797883626004780307420803910099103783741563439965915713518296005109732872666174257838483609353455709544379918892570249079219525653002623656469769503218483880907205033977253830949267074402837925293620643934220221478372667088844201625217770559838222773346135658636097013730866570616514348716077619528493304928219284569158609309892471307877255414787627818834053731888435046036022236973731455264056051947938721644211488802902643799861384856980383363998359682154448332418418521513688133407540931214248403206309398272905283674153103639775581837407313122375453033918681833679094612427684243686605600226692008717010673161941873418702407434598060345238742389807310014536417917246873605869378197800263720397034439761876574471851353178942047427340021009935099427474488091090377643483330517115020452146958780864969217406855364732446231397436666738526031613641704189516583675844986902854104354265161022722048835446137404014463018972208216057583715601837616582701178957966367566586000070104302460164264499563251159384910789989374730389364514903901325033345942007265124527418679381129019814949779540965042054533901434240411210259421766986776488961514060217265289826488190653278264158301451058046561443077886093273214046972342123839859811755232256244021351022243244368374823375604795171296179139379862948391174713283400186344393442202462495825849760216827960088072506282212591973180971820355054437455367447364441200163483540148720341783247825952390394018448346860745270869359157583226082578978886469211352240617211884374247070983094564797483640113526111120945638186567614080054204033966228181051379479184615885652989907608326713986795919441402889099177469979691879583170117434579522266657547576246495419853884439145675511696358275296437334984197009200033992014884955237125074316478571394572420422893369235909631216153584632156564511073678346572242402914155111399376045349589858820481605858107162685942692112940193636080550908735003892379730440565086657922853706379712681659912225574112868770478238367269045078092064502811934223243810309846829875819136573012884949302744500381676361443939234063528397520487304251615740205207403509279779935208161594258193879484023596951161065748693905272314582248329716431601848545385935018586242051798147814756944176400213285469584120931565088736141514397617077814643732335652208765628784367371365749535278521567057343509013451973907062636407774650258485096002992415774016273486527540880963586642466548571138041231716166900991585908170600530940106388921292890643341210167621153589686299076835936306432247172727755493577051637776772574952501559429394850513675802080974077214796514310593589911970636296555266257346300494101874545844922060286287851982780353653527060653896455857332931308412386445945658577615287417303029352459711212898754948778723552332700116168271984020610195567506670941025644527713852844800931331329842057763334774525029678700993408082620656986151668408361615680876193934602365582334808663540818429037441137627408165953848956196602509030781595261628245862260823437777635665413238595958538030173951091931884650801968725315910063497066774754879837710932438439429967222718661519120362861405393902794274668249405922666948047838474146376158141515718685404432872660647666826064119752242802770582930243917160562125367910479307386679099411392264175060594892329999694625208568443557135049511232778634976809759062426733854634843637811087845744935928464195500316626965760105141265401130160875140182446923560948262030234125128133231652416159971659860524548489032475430969578690770006494461475559250912291359860777635289107209205687832206782959828795769434006252107607581030256021077056829480659163474928391136039171733820326351191931677037047075238889477699443654556657086929524876357340446316682812351241036722516434957172526138935457151564735782746522028618688101463089450495848212663131475526167862172624371343788023802746622944810641311671579419683835786199879149088959520595736536208335958626143684738266874223993265108188651454402423924728913918169991874631400288717315709096379469344861754796468407109205659576244549916548782954710863943076806403733399785661441293443272319228029327968399200798324333084208827369298647354782066428871462836767572771965332375649331652390304730428657535944522383635408413046885753441850699713316183765911063866391253134919628940394438700857459149080944711255197592640899568451879942947180299001856774066245687989735566286371572790845918841859976505484707827911287276935319145030153711534794053819887939447970312068960502431959740604853712530352405466020631758350541092986657743543741264297265881018137534929148893304010874939524829929645595739419132936806878162617497709298254302934657623860402057248773013954807407558277615613260347114502714112780957016464156957781023221731594856845641922468175611361333062483700188698929188324344564341708874185925241044186799311232614099240694572139335666947010631264170332415468508299267336340552683753717392968797788261563273853241719504855306480265501308654762884681743408229050091505454551910286641721867170172191876211311702634237105961800972823577134616041781431102687273157113113685460594355317185597421719225354092848227323864886885124515376757560886240390847570096753273128200868969531861716194921806841193464934189700066284580858303247418337713969326864041774371441210366781281606380550381615264950765800119249966928133885153274035340477708082523726648535865507916150319021513622304363389071197850113588172380999407286831270715248111356276215363784915657540891665168016159764393951911681267748193908773623778764856896178732844664932986001017949313025470371496631556221385825155776872931839664726472959891495966642963360050342746987941195750696476549727860656497091233236690507288407661436722206877308585693145422267770702777736473218496127637783491020300366827728305965334781014664890000752109613687813159346658205223778032777345252058593246598681380038251005734583813143120724307928239042150760540366269569389293605225044956439015213208990138670351139491923546262729788688771751065457722760318658648702212022225843958902462914296697607879336621119058585750364273200624479698088440869376817982571172302853252404418929239248010370786431644638702290637846748445617602008557685869293417283327465372603478034179893336735953598904206198069633518108185475099401412541878483480590840137035458504699747390542460191879682186427395508740143806965642316728901501943404263441097585099208033119526613031638325469725918924556589926169378378657810850190695757725704296550918056689646111301273499298869844407210203588331347969755278728242691871899435765943069648202210806984041671602561796873385416734711352748861010866203826488566760190859654957396552907777698564585639992072700288852529272260355781535338512425139420156779820540407613827679156920930035340862252938615303322331372737939166589456583865795208805443792382014134272859706595168978112481489127775783801117187644104835766476176681340071076008442204320726321137349935964944576532748279307479136218714327384310180404762674274085082061865648995372053120656913794338070876542669482663317091625254180409746269647242472272722779790828048630353309917050168451421275920224395747712195835451105498958345068483502770738986715715794007551736349478347009759744206965047226585960116615464415136389640970637491269326740419491113501475922427921865202135114685711062004647334165171572603712496939130994381416403338232763447065151272011554770528921555821899952809866056949966272357961010986774140606892073316831750912791086350518247941275380117268644019438738666162700454507688177458750631946890341260713244148695972081990525066127186597731758176203718508160335985429254803120199551768529611783812319061971905192452163286612700190375383395492454191904002605032758699266419054516671017502464651764332123560377310625337014559011215659555762219959951851085717106608055134138359010859100506011353225075091635724834657516120977549254549558370410744844765707354076308951792814896111343316471873696201129886206452930047912659703302517041386623598358110222911601444848366353823780440957889060946580207630714106851809838607926353122011911683702147759184763579143847826476060348491469801674452034644166830648424116860529519363912132349363532206266221763703425099920920508121552777756187342203470817029671265221506147517950287398820884965580921737877072615625422176948525868417020583598748843207469251576089576627978502896835169350233996929981262036432789453758171477789200693615413788190359495234852318688044792481664980262683796989801679544498428278214147506588143674267285556666591627783855716796690280071699396159794593718877964512367204744333788064314222958710578559675337699895571154246927451031840572698289884372679455458466951064244516279929085301403217093452299367169731783108565670480070365839395506748870173168996646328198967032812087048945203972210755968464534940865671085730222511413511838802248018935317097346651274415175884668978911030986217125622653572290576085078582658662000664972307679172156993859518452368055400717478028313024432877861293631893596695520367599779841480679660377823709797246454560362962389936561308297487854866964113103406051508493375025685452444324915068050798464054455505404926890044783583234482057846184528454350781326201350514766172125497890395253309038590178719275034406302309025381996477989560955972681306523182516659391989244940524870821550192331233730852486114710026537450896977840347349466125987216291325341904497588937536968918992618829331045320626669528145468267766477425624580366407663205307726339390761582718738767947317737205666341008979040021845468469736915504472608897467993508844904878264749944803580186566346224935474134800030653223742936562797589624436223485732861462695316869255255401156771366916463446419412478428278575088666728968403462618869670640621731695324856196286819996036527274453278091239941918703395183151711588582356480884885701984239661473514735409970563896029619142700211687383883787283834262885623564293499636944173575624602411940235492031252467852619602574610255788983449470710677144559269776581630897871272172671407883441868187872606762273912528870335534562782417117477960777919592845501253021593352366969628957103110607205927531889286952987793547762796922885037103317652995143677682074951165135982796054822729221524265253771074071110074697464551749378116122522790547659073858913105734929032806807380821535994058356174987451133569812225334385892876310899881587013310008139877952193900500484420907947246414028915609011422424316837710050103572545765899304648938682909170773472582726862133168757529977112814325111050885776485396778658351880810667585637505188656512951127059020078513499936190347548493786437209856401794439557083877171706416001331597557958647826532935074434385678645638294100207852605228614267054963256841874639892694111402068853909100528119023642380530089093448208009934573873886267295808646902093451670091195262872144300485528113653934771953551094421934080952464382237412709171197333759611762921940004156032063898450003149643871609984402595996005013829304401025661732867509357151818367694120365335439249642747053544693444159474525539617541798129924533333545482933147566968089914883142148687235050863872009742362685979052798703155363786995586936446390690960950379334491938170197591823749650188379205160000793281200488573985212513566823629935052926272783311391740268885653660083089423817227654639478400123907825827853523439133195575112247946131893810333052115390100748076578627416957002902824301409020444705680262162185930093858526354361139956730860218644831955971214980325803432763270288178332352855954488289705397432517765307469854760664373927509010348471243804023802078915780833080339033362795972252248997304853707156161369001095798268042088460939529440376748730379274340057240219163846913694086000231551918009685084078842993145619521411829246693821615085156180796373982156232096112486536109870041933999300160609530879564479776802060403882464030798740076710083272043295401336737730975633235169442904786097446158359393964156764120233091133447927433513764671421343989756395507030061272499337011896007807097089191319339039721959849880811976971449177206642919300157904092410013103127765139894746560797550040508571451123595181508912282486042405644689916502948218729622665079806137682598106074557297552436050706704105318690661343486833039986957941177558272853300130249165977305613668780559661729397569615596127127678638680766221840623162338925370291687746771400409136936628171007906072683565174327253469576421061809299483055786626244255104418071543319673094725439315226995397092487288638705479056722458864187564989167537900825682641785821791408531869054969626100261065528082614724961038543724725797391764634596741604529265660384683643273417327193068250242139932998804191290034333071753256037070697987207354901374760438289753599770597210901948672073490779404177038652012191883211274473073731589670846641036216354603203814821947051961793160666342971569831061206466579507187215147980322866465949682622360506460914670154100784976640346395874165539022903968251861326516320784121396615091101088123764043382913667826465894985693847522985580327229337705253680829499891024344701839987078932563503387554991104697702060690357130377776810233787799620740328408801710184465782158363600805920701872732342906655471805116347978212813094047034896770694763139921757653914128498305288295171670956373070671780116860761655985465661646717404985082655064208346783639560656851911122153870412561919273381943655421316453440054724672350926077888790844509461619480221247328664157310143959333514464190191995221342397281475425417111935764101563807539794005985860222043997229638590613607165328832080254052326226927120335273103376936621860360072713713397338804571954170029065244726322142350503214070710729333157917132320773074466317348328241568496314134643493127545828458154368019059641905714341764926112928480718850959670502348789851439572712713876082403621988901151603122042495923405557457111891883416503630179994001890207642875235006504715595603670774317650219400619930004021061513307864586501063242964972032168435105349320666763019378877231722763021775033568282299570313682344427211838957563067502020902384002032928412611534254994237292602612522461827204596555755301961103885962794541052899257435888311888831271926891044942545603625434163195150623166314702277869189390817318034878000211862470975994091249737968836054825328075116931067017480224227283982820801536117863030271058009564250399219976892597510668358672822671017037338445905064413440067746876591749904088331382096066753943570871376677160706509788137028707885155102136977977419831396977836965367620691606497627784317645425613105864598775451893567693166710148178676677446348391195370958647336476620305075138902050305233182995802895988260912957091263807616687553831149477620624777777114040109551661790902966232858561529210991353317581948979472413598316546297813384156597728705224045189091671134776178906023233202903314934544565708188363728485913964002186443686773460828728934434462394119956715015405148432946533140921406512531508567330141600179071146927094337695607822514433262072294585193476500615470235742912636066003641884258097967613994274392591472794513293546977607992399014581718530847268349677214771524784379124341440479589000316202566789091290697558726174359207058801428798883044050185040401697728968978569474818340063582265948722978223831750987161615598625326694051300435177647329378399874272528580360685045263812428468436733634620788345957410984466201964679019760560376441713277778907942786672766754768241152579996848650065978503547374546257415241094723588548278237781672921718272459424962605835847953154397464107790893162599863447440712223029936890581940625842794606673254651817768131354761252863986925230778587785736408662869681768186383774703508750824261682965153388395534450513616972108826682440856076654258768327176433915805934069964784426151286433285981265736139194558568107732466808803879561266282675373061487339629346391351808856391505588245710118591434755970034363251219621475106192722591237459474330806548084630397673163741134669301688945045801978490305050937798642726483696963035575809392690060750449810945482847094603166101290952974571256694852663162575291372409510060174774713285800232348411733112303914179366719664713567357680869283079920951239926848073660631646152935220672080175351187194866275822530921410587510808578892576050206711870477328966529540018075479377933434441136787599115120917223955245166275674258257106562866031268087277000250956445222890572714823366029068071539867108294768382034277173780582515219491969411602915736862319262791612970382066794037965775859931659816146889378975161213927953709057582905701367651547493044070952484330292155145017639463284977215025634630572108264073520258530599486807040936666367924741000792220000409343321695183718283069048319849464712798486056581040788114299129245924634310318083736348019678913842609645497142804043941667709848428392659858807893022016630194400171761200416282326200348605858057876521183588006652548757927995083462137601099880037211799081732292952660856762096483096960994872131806908893807064662627390210046306737579856478539678415745361644176721187325111707193476871271469137990447165564216900791167925891305142238376189703103866832449059879079361527432795744968143336139883420569733377852805611925758641182424752822239496368151142656276400967142852315807115111294115435942886029585713026681716833111885463752482692233201698545469116572121797724296334787397119713408884643583825118368062966362251195887009047662465462517011796530750242254175952945828684905280759324123911157603575291447313477268296100488819600489164049255802897269457751049100029542242175157927128062929022817920246496924348050843118538126866203797670000086575705019206464703630996034148014779714462159669665136512746127473532567796035740566838764721543220719866579668870512842852852677447863774226020467259054385007554512657270856339876006374881475844376029389357367661374317361992844913602146844912565384114065721289248631793497523653914048790051243441283449099090906542548371104765029825732202355005014012210352570038349609895605230890380575999851029962267342970519991328726333129104680950660590906503080850050714076267078946695297694864965771923176150047538953723342677949441414943975458767539412125549336978495951107609104167739121003452654620355516910680271730397808977836322132502281211738439052121036625865007146758756974199077574353514096902459674367958681065003806573325509243004929383911539436766529835380704153195452436865159462539540439532187624065008201140597259283880967706804470388943489073203846941957103029893833741945327014551719790847047350597601183740565075150451118124625017363112486436472655438225686963521829287020207010674648231798873792086003908832324691997486592783833508853699994065955662865618731944384615221297863043407339636827037031758800358187062566633342329458468035503905432598992179023761531036836001830532232426848719674045069109957284351351387181515031338102118235317875444397113289338002919899174277529682711784420397154475408001620892619297985389369795902702361161121110651200846446338785984580434145587561699140326011242427040558586990151638351594208090644764257015167934738510150011773551235248448412785674283595113290667757969530127727205286525875209517721365896196067995938306013936141318532758982822945891375742532044549591330309102534323611202387705293854114789524294099104930727871154624764314769611027224498890193007311883827415895090539360032935325045622125289428009650798563791794616632003433449669405957029336735865609370796634092115267129416387505320641931052850048378226632025099066898160683424639158785783207527014876399860199783718909126531331160488893065664412688230092322857458623464611794348095066357095468174281839095602766244322251478481921246893945576827319234849246627436694849620486006688538500866494918034968603697031318184180736701896921178248997991415700329711095839407566739448653695901637329754026056052117833581674059534700951087591088032674829707361875241900386628315544150166066299320724847150452350436831877787753869403060167777762352614188638029907650235298884869832758341426010823704720430231794562636989868377387740351043851682806967993404848038703183347439059192344856495323796096726146118328206794607949244568776342842981745217131936185061712743942369502801509539714381911628324064554725191971868487083100826751775216976225580220397131539054868354529744621779019858223486037896071716007547738877663012501879784067668772422705063890082075054997347620964497123216533574584967700385011417438718277847515119820694245504429904999024951369792088873514654424429675786353629734622141758104198902725374328984326985404584513978307028792747395068265648706704136981682945077375541603658962499731988071108557023663089115643005437211769502585916585372405102833704323025976334025994437090802750576567330480040619498137895346744098422118602893256125508237255172641841410837495688991627590998093515722369676430440111110866021579117817868690386907022070124203842149705958505170639468549804769143445345730612000499740781772371579476475492775260359740182748402014525980516810267877989009631670962250966144140673444100437848096590002880257564743772817545250198592223158762430358799431705831091565468724304390985295362852832581907482632868016846155396037032592309486159614956045255506448858594037237400949433077596464078864745328574901793336460202826215061684456041405590460176771303833423631009793841538368571531752564894518813240942577815615425413524274442758230276973473032169018659403893739993826527031004385429190645890025502309100194638135461313063195191751157472110383229774959514780211332645474600301622269249538804526273899084880131681201718462831283147891776711082784028187937015065788603498638155523384348029019390156729653570903868725586939667040943794731037306287923031175434247682528941490930304433762414055390107803336798135335867843157958028874081866029864386256100223172921484450613568130111191148446355591087509899893921835373155629226698305428925083114957644083532886626313205681454787446492270686119209911249165695619743135558036049079614255010938069194936930807558004219699555974514661637203531668428781761906594283833349052725302926526599783901873956018676292076274947353591298283223278873965001987953362249406606998997749177493981143428970946416627302712246728065302708407415107252852126395242331963362269599281652383273566832098781953828082833998018111166282594458392003195304101404105197129206003955227003933642463481150621389428542084773827645645906319266324853914717663803164271070988922359585527548219463373899128273058165626496406596431000923041578647625264355850662682901107207427148028582729155372919742612610386358991673958544593250568799334535527854585582314875339809918131707405771573724867262246748565505796444408029369341819980976219661767075644919236923804637631726339656985646056381260068405463794521547202566954862926594638221694390587911822990975093413057521310100174603562716406304499399749739350457565344328698788854996047177523656223165937292338256142461279668077511736342104043171470900376788607472728964311659787346676301670661174765377310943597116344622857823230263714050363360152562305932356510624613763487044027366433530153690141508719641875066018067090226285167965494702190675557244373007767230408914223192853678221716665628770565444157399426732889742290312119194089124805160711390903629737450028022543952116276254721622345523834606648529970771838649012711029061493234798028052510919024026083004400333335138916932651871569525242484216185350420186291401172899799569200658594791296014501827440628597267139791201185387370071326728699436887973954319342948985619147716636743534856615836836953437587242773122569286096674957070391900639299544092159038642665646739605887076667134554025644880927864077555982997388307989975627928751438329682390477777496187534282050546365567318619585668701716511447909090929332762487515674532002936971059878188104008862517311544682392285427579366493475003826545876538494767225774237435012359136781318774432431317378958679026085248645032753129760360513465682712858369382835436572793962329188367833842784637242251168860487888588880092100828883647690679196043623701015145229757988904987408402204619808282410950334909297477128338355180466688799908313499981005035934349408810143113975697340855710909072462230202841828019606579012569598307490697621131415102148837426813513417004557206882849106697044666333229481453325371327420843068131170051638046795815798174384191797107855612831309124526088597663545019467629185654683196542968829665214319005969823633315836625723295172088075760766117432943537568475581701666983178721428620827666005980569356425423501040456982083418604658018822560752676536925305280655475908723304881347915958316146949662141418333947807303229189782077151202030041865548471989614669635282286882158938482194069323664729795864419519701674235909964286030374182754215571957905919710302754855522273800442550128048538229101408855845120451214827549567143971196535734582323613557931365546210272213203570255535978713939453853554918410725326515553558440088692088186601391069086888243069859224843278593021577930191822378712428673989597189145696568273766177303251436422062782871755298898152694852385549490883476278987511647190147476117594610051226284284387281784840600021334775548328963347107357758383571263592279478282450825208695830309305063467024038169203507480347504632218009822007712722368199303298713382383924081707424364167649924437521576109351086249902050320658628325540487307780466115348059281490431718990554614688040720632235726740592295081512434438426689979764045668852722123736024014666238718149342967586453475222221906126665683986711880371663981066801479762878830596334833530945015473471791192965676616478023724963342316548051446934566027676298744476988231976849252380911072402414487793517555253111342348114753956619661528062973120875005475149176028094709819812178833071662082599404668559041728196941217516405894006311494368383326443210471564292679286060688507266313192759836450233915908299381132910418074642087998055553588967527431088096419266331087774049768055145103136064562860352557336787716755947493366524936299142881646401049661222838146753721951813013745656703132746856991624257884193497727621412763071582653682480079219957046597671523989418866253108779835061298484140447665759003480240269402906045286492070996744527326574692940730330831556449252708261001328852495222410873482396774604796029272524223073781974158236207534678925200757771041713043716678045237941522218737574078257925061650030064490251940051658276710738405644643654155887979992615820999029233350491716564330499824768908588337124479313112254679757900419503701430343784430608463983020516579120788875965858746831412346006888685348036083273903912080673813680515542196042244613111375143188594409326531030597659812322520386928823445592450067616179605075173229859312398757663001952711347400877326796125503889926796435055823557334857419635479581466193238022224435639949644367664680873764814378645803425662569639787512454919213710820667223330415717213040657904117897839849218931322401400571250936579582003484141786201692722122370328598707113997873122528575449970115765169016080731509319321933199316507723080701430013393292233907114734904416038593221316685587325424547967250647370135214661665805384898283838326125184566386930487133983629087880291550690889819517871657049142686926306234903054539054731171833220666920261792865253853489184709136999101418929105829754873200441760600695383110579789639704961324672899453874310999245231683009076520117324044806944974481166883913197844866568723623695069732588801118788414743545400713688912768967716203482705470746020985810975095417354716959275839064578521176399663862188457468803829727323423272113948049423899538235356793835797762833995969132462862768452086934183326951684851911094539954087468908920793989406192711720028526599585155389213804392509303740848951629336006951969715801418780167318820743631904407334385878295424220181682542772501413238744864761438234517962222832156901303421936771620212813312504621817464135493031417063710780022572985177043508821890224501050468722029213171372931776635036477981252806088099642462626051295445155636693527276895904193346869830841095473799174987225532340580049855202018060546225032061717398281189793272845282867457637729619625167469406174579614251918645062691153943742147631260852823586212866163524416864929795256053562949002457069795013973975417242940430404595483313809915111585514537185140584995853697752020775519055078503686423501841249949514804399375576662797780364596385581767876060630187844511281109852876740204865627731386719594126581964764235419000259833085349657729074898585397409946056906678575401252101108423747829563697527194311391951690502961185132139264654678261667689446175974080085960743886336854216196718797427122692541516207236793996774574000149587544285489554738296560843703230995349450236477426216021152824354832900073614582884894109010695050403522873278193546263121585288548228615461632745421852054592702454269414135443865331702529670056642008037199581277205727518020889471244588263318761707339355469942481631494485731821834624431460701461604752853331472439383486796829662651452619510799263389027460408640916618392383432370016042855320729542607954420104581552136291191073742404665848920889103149048066320075518226536701818168325966531296299685180912714527822862062958305448566008560778628118763271722258192209181997682232332609973123556042530173061912340070827474036055738724743759636499705175319962849493716665998080535461072097175592246434246233260073869051862962187745653055050441479965579229072475491156840964355033441773971323712571749191715815684259696400476006113844780191416464976330714638745754235816057249966772557262604668978929900103054816083392974887879970658945211735417432712669883643573382656946966745239578993772447235548283648516704391456908511914848165378755205539001959717180148728594295799719942954768578854079130021319238150354935920779076017161602285655467342548839726354032035446764378193675035005432389895979346847706727593220642111703397969185610918150873901793372886088997136742155237990494398692543580599728794837783899072629487433554516138292818825087541039775631569040787198514648024740361289521328650281116779808129887115922907768421112415310672485635700971635177963259067698792439917150707975240874632445556654728279319116004618188211819935025581063532538500074287972008783392593237345748671864127549244773646430284699068175356268097255742987205144253462221006522213906391305391809810466570579940241981068142855317706320526366259462498862294381464879674876647047435298180962185514453278307345572335936557976201828192713114776026020064712529997365667190119971941935580930946468337103964063704193115628625994904023914388111478799790609198656165879686526828829126946234103400866885948034652833930149506564355097822420267353535622914917120319825937799738795357783482613963717123024364603989315472460123264257384862950159594489774674776817153610535679729155869648527300233803950031816637252509071800600691862138639600321074516689986996836825481913287917776995953211721889315914980425354676812208009474174020024334088272371438450268185918164982861465019419252649796202975796204925548516442598347416080205417379217102630661437643843160148672668741199720805165184949019049191891676267930710893628856090969593600094158288755790713927793654683382694346757874730227246305516190157617351136016747757332331302192170490730309040304520435745479241395082113028622471592320206370855376030413329959491995781700191539642017188520515186785896566518198078967849573343471834992897031201785005524445440750531966356744151005923796508427154323029777921662543886992168598452042262868100105035029913852233400502089262114681510727833312437196278794122077870206571335143493982632823759182375592572015813194413065618264761966458507292316793354541492952381220510852076358605132502844310919174614879772636583036336616289274218589348311161418551674074337939230113020412271540600438916600397904418816078699228851768731614944272810372883940857787703960047010127319676089078578999019122092991498867874288534147375682541665276945569882646762852104466255229034338142224954232393028632047963871052991467037464565019183131468837688475235101254082054015001851087363088342846138973345055896416018122743964542360279854070167198029462471917965040048875188044338803366855046754998262185944228953636671271924803064483411517603878454425254958673517783600137979143466699566510763045316452415335080882193053904168901965378307638549229709917156674037105634704504128397045761678590231062460605095510053156009899643835448749875904344374017215734368433003779484189878093304170834441155161785353564562159869355042533253658110816356033084074700428230619205361734480746891397902633781502954326992644628260586754309651135988164867757772235735429144628696273674553094182384201945085781392371113379279369196397604600565851214172985630234038014495060148231826447754615787459280824012139569802407842045558221707156553298090285243477787745869095029972387282458620606762832868628293371021022493081040298703883426102579636471415554765971737703560994069708379137076432446478883004171983234810055266610715269026528054840942107021878855466255963361877853942818867146728462653035074174640731083971300550324879915014849089487374689243095731467688065770405360733018327562568769743112959989258800764713666238358943080756040506599008063289857725810725733099277754175401669954622049133429037171546145576511805796188959689002608354919373913563389021485050566804404031300247398876796321625163077781447604512119311327689662227281475237790286853576330826839000907972769160740246361448793878221518256074966389222412353674638271387252053930394280352921147542352508873488808707561201466839681394436087571260295342150145755602874995136343759540321213468621384184803708272395034574136108113006748730632081798566278955963486135806089636303818038087835651112998755665559108059874096559128609726110530970438681857120253200774822513714462254149828763424186817245467888668875639561321426431359476662427189083451228710557493322169596938350815054949768722025745473345003860018344387399188702414458453663408556147946367450977178209576383418225526258896405476844068392494939728550881188452245734271113443820178324277322318881809234090263440676839394247027857335608522475594723049416335139404353211818478666600907999253956443383117859246641946723521027898345154524353082094792704889957194125540378947355071194409306530214236391516155456245080490050963502460108406805245152722148250635074048446716863204598626822025448513010713988424768824052489979579192401495868405638175949986178717527968130890008038643332355308681306890228222087592461312137053142060303557369631655966939296340543336609510068736498733021013811638411486185833658903541224282194068029875832169808361998412695280216142673576811477025160735443510375127344643425325260695689993131729655839887778672146057931268921265369666909491033821786296564412959622188207052463258722106749595973727874446274634064215782396847147080370467953946704720218404996373485155779352022536420369655845057881553766886065126019633711185195482530566751987232288821374528286386108998950766945311666453072711034116484901545742256279011157682332948258474991423700049688790281699352791147528468078916329591868226981885818233391161866144956036943693644868453181651229291660187326075419340348389927086684672904111305438090153894990663421745924814666251609384825712860850312947457731386516339534390138230895811138923486339160805001631065506251125176410489164340644801977011854201153693240543347515564446124111017800415734184444557188743067199781882309365784887143404495338973062473942464760250224400045093183350503291745913736527125177057597370920634882282744317823491872734929024811739721609075518870020458568792780017999504822670815665732311458377699124179306966800829982707471936238310561476144197600160523985660208537090153397925901234360077741709438470542207307565612969335362132164245900739321242231485272290688667444244204081496775361531557922287207059783866384260961387422829279059293612476370195102140968595012152603651341512896405996575827934753989802626350154164198883823971671234785829328911730249254307066238400602655491192714217490961376867486814455696779607310641641349823901547167283882980442470554174876439457689617532025365210640189647533186563755265567271181254770482942268536814814593289805999590224856296386744476757669796209138666621410436465658934613647255494401654858418901941713958024991690958774462426820522205657876799300416426128644608899936927339038103484749879569927725558121633591539316177902433694584514961557025307287246099001110421341062767919363749024253496748519332510396850187932994708395510826977128053722507835607110857259090038926878879046590663169076134138517833612361038068561063623487564546164031277217570436178576130930866606206303359768502300724131229000076550072614666154668352137691940945140863144841528074911038267082751765143667264866469698877569710590192411232292130585443329593667847060854986658627842670352762172166440358776327905137636581486354326479819312714266054203074065449249718589929956941187003520900533111959774083895971877788093941855607518854296321428371554130469479419004561521531117175426957629535192421103313697214600730386589279534451321479929603751065278323179686347090493650662248195671521753035357222471042621985466486716308895094182133511372674174384016382533033867842924803670125025271866327703267914961944505399776565941359122920359384841751536407255158236214014327702866698049235251435569595478426319396300322749503828616357123098754802244530591859982939630600445649675751466605075739150406712940506048741441051416129822238324169583987176265111229581141497614003407020112362759725678791525216178065843079696425851589583393498825360503896743116076376148613911642793286598753616582315470528388123115204328936320826741173079264234974201959564280180558231501886609424051651448240037594799859002131732252028244083524101138354724505442389390898482959509371845032938982811575168750509752617983681800208027900771774314955966737394269280697650563349124511733835376846510298211187699356397586346327005505270997087691480059425011363270693133946376947301448585791516703325548089604705759817331993339387048520216557432904985669517860490654269342280290263813326962439972441535578736594816560664901525792839448437460775796805469446506281315499806600326877124607757626673778840281433360807226045780156561313234221248325987297677415891758306181921856367702373525618854228221663415405040341991958500052868839254282468374277778234062173576169731835459927936932035968250843389876869841515449564342339801763375687187347823599899099146395518717411018997500669869150949846852929667208525567426119921278786970604014993699093375712370743198097288870673082875137071309584596768330392689732503769312622432878075394016589141274830996968332930689731268544679719518846529049740806708900121693907806325725580490016227576224119982650475816469693965275983092850292932954079382474399493160434641018209818620970175838866854400330280659104099639464476250162276702813424275937561410158752644463949539355050810388224313100131976498819267253067748274214006710842784943112234776035484864523058554825946718455616835052071346688593619221277920550746780032158581390149605478972197440998601484767880389789216348388338392923055084109580242440608628705546045329280909641437590043349558388055295705101227585344044207126444041292093027739516631695823694559725254833997432659797004772552159626052027293271637026159116729552202656718857913363394644835053946705132236382221853543815563070771516332975948955039106396887969290893045755506714869011941968366428268204410094661097717659666942949146373220403461895773231728207558675026087660383673453034100064286211404944941095851529755834774603281385597206625083770270457573023395138776772404902165887775253830231911225425259083905006378657108081329595118222453666714755971127987990154338736038305506723473542297147789575333054811857325585993579303818578364798109019081428985144346988820451063879554051039098296477693124529074072238123794804163518919082528277403403995527878462154522802468546515977125644947937773768220609243067713242318666612410517102493484112997880706301056156364216153090133822235156052975902058627310149190210267687717786197240851139506915204756793563822228934780338682332015049864466393551939939351072493942588075524891194793730193842958121350611522707767929631130076951030908585178479241896397872146671480609100154066603901458808664757528364527388055700944292887319598950829916861883823296310669199624482631406810650748194679202796819068907386229724428103094695553960221926421302197297048628552053596628205148357999328583217499767019375381650941272688683949801293546074198696880376657066278464678267518669367338018588010595093333903411242588758915112050734584446549899772399217085011476046060201988310562638503297669603752386508536270550000306377425358846002721858773366098176062603736615055598349866316784967301427712076604715044101344847404481195404104251332649760320161338201995151070394245452173869158565600608479457951357455613060527214743041915730908621405345665347163719780922166846131053019217422172357343137819094780210382350209817986495912920168228397493039322482479563636728976097393827611867128895612189884560955123914216370545639887969433825374091212389790464160823013173000393810792735453558216752727466634717222270797495691789747914668678745709671509760104463970741771723045078023407517567200641480913198249965513346831163076815972858260404670383688876862055567600038588105708667058569255003425332229415144683267493347910191291351025707272249636473114698354601627135120769669923330841193757490479293959050169531928250084643225702294849756268705496152599642903779893665118900587613995173348697366967768546379728406211698417019395390476800388704633449995464128576157316009306525300593861264831815685875364463700636101605740554887169814980789102243286508011088995930075873805233050636763567273234330254934020552683994029428965421828727802176080912470812456106356590717228474632818593392659219352393232721084623142800620577304263341326757447742618648556547667963951881142967692226152347814380219264021932531372788662752327663060581260649164100092863890047025640064077076733828544830043084368252042820342312574104819754548691284911403131868694559341515575978089802907409561422964868368325750277379542587575615089096471970758661795222364964464486296231334254593885608772769518278539596099410673869642413126239717431918362526543494885281864954617166239164934070169127825811003029204224441638675326220945124773623590920507554008459429847984459889688439586290781262286454823858165360240014278443206540841188654610477186823551151820952562404142048902988837836123662219400001544767519394644681701050556682988719882901388158456590614480925071468632239563131668118876652335673777180052221929059389727798543769278638328930426160742474349948270571905029656398899983889025482204490925776472819771406956605214663502370712142980410984139112667136848452607233927604373874527916489845412192783775043322613188262373679893448179994389968655481593219108846019655940154500245234756629824798848678352779973434358757617227080568520018209975223406385743799638949067494579609014379512415947972903117104004361951760962355122888418524372325176158631892524949301551066627827309253366383766878750241318536971885086418834028555669188052626291770318468360451861365269838653528900328277066698348410047718129614196354933362838985883337705320608332572196828999483420283262434510223738395166413309341411606614964128507767749508424483676566728281129848338675547284178877215247341489091620638104622850212822673862045107543640149532992863060823140963982807933030155323770282205035469206328023610469668499103546315885658937701578048603602365031540821667528351328079017044001609376061292395179768894245358524686115492954029847530815503448348166962964902608556700500412453271279943376131219772748841691035495891703547141043369863648954380852125804796511002022742124616322244165008463066744383570151958220710901889059885783340661166916312023244522405442260462824726524421330856139845684845852244229695476423028977917782139871544117395344915330839487197039145088545290784216680136518120535971579823932587635201498190444848575005036711754661298914312819248837855785900821654130202762313150658990975343246100573868549991007335932301173041523151088748689426784617861021883526349355451698553370792338844611973520947739018043723886695490796530907766988345587800652769697379285456388863575145288990102618228090392039038816931925240553006116280515020974411828913744644801401536833510230083731764089614544121646989736641002262203867668629350663897213319900083808449079801228073672956023179221048909420151462041979040507479480301022719831133319029779582517413546100423947798796541088728712710882669058533042353443620766860239784463221272280968385256956228630732899934260282365175705217457696726330485737986123768369085548771601273084680239215471454125234649050682578897622975752660097424102694650056034739592406857030259185312678602797749121096541367188477709891766893358872906596153542860728878385284758079172583512893892634749084657782933753260815830302919671693897502900347765981270687937664530320962592153360626861059822676765814928363333128409601495574059744322374760086204246655812079300884434506047323051666041919323137840776143853205906165536363071300542848473281862896936427097499668659865486593067686954131301822690871812548453380060360220278313213256173249682091507757952108878167650892778168500870493748598985912656712019684661181297366676400974203856513137385933563770659429606842939507118740527093867161775897766630460646025519087888771448639227078159404751964345495726601565048942419290207537277261064428810053248376360443692821985176142173596103089981574403083156258475314874605819670536022565689491471333967639351101852557019487869847759873404706237976462673530954327897241959991294814965283771386807230575240511758337253770547779963374927384739770313696413756813563988082428987870617008158152373341513980536167904539796523657487122496856999871276926046779536802272891632935494908960831214146816519668561981997997694244250239551771232964141358025622545230327987771237191130027840568939975779378869337008971759495385294235071051457202296173551577175920021650348377813360272257810596286576953104129044912110872565833360772887405519883328252009043108340195801335064863774715788624554721172753311416641876302247414695805557433063043487636150276437042922042577231659061240819585176068588372917094144796747319641323244209707216466114639087802527668135237827297551420593007632733054041069876762122448687486047890741717320024316425287388148308480055982020878989885683593581269756191466885069464202904163050315033496203710549966895000365003324675702736439869000083794248820377935768816369564571308833025515992750594897602804115035360819565209566835431085243073308735320989520424697158925667185381880701837297072320431436726734441885987904059873639994662310944501946989894360571536918705582711363777619319579129819949524513862120244904845930298944706279085803972956221866842446270895232087354248189551757202920571373407470827267102521067548102600589890647774190836761959830157569212891323169055329990647958455945439821226582745700655399963341590973160114204884513701866308333846291466974062714606148837652904737065427774871978958588021892324752269475121178844085795984141354362306694419240159074616068873080242058755880870836576471742660467665855391572956055020516547417593314139204360275684732461315445622971867268244984829482647313688242327095278835252276402279397179198701998871048830174723023211210786853956891348004157247074108038721737956602253252223671836425950011165671341679168839845987656290120129952162313280999049877977140330975559454454445349163086451641734009680382019074094597150322998408327638902234122997624405778355446773420242154160693810336235582227682428528239817384924446441871572701934466484683903826587114169577073117673512306587326210911482258162582190830486785739742240783528897034835389109751116785129208833538828096581193426097869241362383111053823951090876173533527459603883984020445067352676452001935391134518338880805777215900816783078746437571592454714225473439561591420195381448981391900878523246910733347486749249819624391522103866312921128385472394677051047478542890165116172333852792245635273420245181277875837187754588195491432230718762387766898183262964184064981053239819246173393361177001774197942160702884027226710986733600528245612131652699076845115020634525246078675640747754656254834188501518078754416886130639462398883045677286838572062627916434682064183867524645966876354151878125295714877306885847619293039998681893503972405712219350752661527488382795358016262386213784612389078673489765065192820495088853549619754859133837560492440536961449595119997410767043164213088235562054497453886954776513958408643709345585662349036368255326238297860950625850704139394652394790410032217533213338332468442469404681503261751331094818186744574162136479355699467567001224028588247183897707697494926404293665924895189063611860065926739907984231024568128000112878509666114108627869968148408853533520222571058618576328711459496413579977877153204346277205480936452747814721334133864164494480306654805245126656398695797873585086171151893411942740943358222933906166746058041716325191561330283950024228001146388657429899180813150313663019900746991538824284383135369924260170765205135723920619681997506019175062117781086213763476323826769933475527694974488328605593420297326542180490749415673777740054069871807194991940158895349506382410499172867037374606701155864294532275181302463318035085627007536377044620946269750070764780222964825200525351323180800409104971812240749224013844083708077473657674413341611207841970321796462899648724396388277119200439618743262214480496265840409109748856150688829861042269077596404338403220279961916747079563140682022284999281870495873810625544306400690283799360116644964235523667123481981921326816817585561007577109565294518712446434420132551370733398083555207439777535776202902105329566435285930561267046252091866395565861554615659396301525894149677758807640866370168475028307366017626173636393340016248071924913650995153303310064482819293232703550525375014135371450397291415626024630092318126438256554156844871276683527867007442036596838308214804521432396369506829111536420621769699632233655183051557054899905660432376120713027796248462948432716697515982755871488609116500583715223389159386080108635230159621321727081286325470155459564220604558479934025784500835531680112630786605603405721094516807098639477462918768539420694837845129035390594162812510078975295472839414484936263188698736048965168342538620658445250992465281131819436521003067511379650868578550940907244901913224071526594127043236357646988483155076457976412242448007991880810842008989095798033317984609739199572201546192610349254585058991410242898084054399393493201567914728508578636302903085257347685077336251503841443772549154238240074031748519362923615177188659354925932014549304055899137639485742874993503095910667060603929177093173700686153826212650506525376807873131166751217452296396694021317467408999934700690730143499252135491813774163905128453284666322389364640795065938566179342377071322061375684889329909976986686805369348657698834035179895367280860019018914553583056428513257991902261211272432273631488017528304067997510517398317132516370875947860468935877398810429932799230184890407858092523643902583778038779702183391190699903346907251359694421886372454083257813855243962201912620518825007355932483610253459873523474765679968879243259273523185967696412226977943195052702550842909711236865645325986805062474775030807629084971069816889604188012141831791092525086640007555274210864186221060002489759738290600872400216397533273377621786401415233147992127485850048922962058547452113509698600627113267805833075448450486334478266625377531679657617612185073641348700484899152687960403652242699927285878164126613970086652206402725295397218239002537809939731118541610805624209690889112506951004255089782620274355428923758077545093303810969748055920952476802690587441011638556387701017991011718828873469058446341380852740898006328819500296219882437930659002327711099260654104521330509835322807609309115549247113060926080331584297532922264906468250255273970208427982224715920172188593229546410046984070384031625350265450395824443338772382031479778130566980176633563403142369600909370925676014550623050374782384602448788595949832469006617375490891055010122408575328286973140529856438186731998788027238023535535029757106234907126054492514626865756011759525628282054767399075789600413067639062353317953420135466105583186604464879252161965969421435127476381984461679499074191785151620706146810437697558370108423206529399695327701093712418529074229331659930439096278676022904889399579407840068268816594829028222979820121661238637251192042062305884932710885575472083102162451189877857845559190235002138372924669850072130311106798976936037780315432351888204332637482828891741033940132368363848477654547528640939774641271645837261952633080627283476123456795821468719865054876713763905509119478376833824830292639592916132981634853711766755311770703219391985276633684018461110140396269612736423942036908706481746013461431119933697328529437573778401079908180420532150391878470232871529860999829393520153047953643388497499339388042365864463569273645004215224933498940492466392083020752865266352807629814945299223268040424836638015463608077323237551568319811404180486973812767805958959338447672156210555397088507891872374926741341807451946979284599806367692578718204189322243601112964579408735965330841981242937224233217310896894887451170930502689360682376405464639325554428760669288002946031447379078145094378144167975593984486754444889252243680862328184227060659843170686260721497477164076250136476577067399401245995815088230642054932171229182378383196697522238433248342998203086488491161705572670150381972408211810788380102890096699090107252285389879713062194604262580427531661385985942751787608517315702806195066201805936044951113727608278340531751771357611498280717258951975427889978897035996915325671803014665709497159378434031025823859495704050264228206399587555069999996499601058931005843043805274319309593718840671406094513805675211953370489350713465295671976102534565578987011970078687317771444833154280128404919758546523784742307726650839918797823289168261682609305951921070752593076878723603355222026137828989829786145707485631300627163309136573857390623526992058189204534533351297480003021841066178937290657462002108345465385682483356107348979595709972042549216772821424244476650964771124095654716920511125012961497636737824104993519400478248948467938475388956114624265389647904050014682279652887475720361245051867490767413232886848254375944046756779920982267562087064243869272480176885748351534083580455602114051937858080946492389127613698323811386246094781897333738024275834339877950247421514819992726707362194772582708398156730116671961240643737575954059020027414708767667478727139537359156454661535885756930372304445208657890241513955790386562401876390733711859679895696192379033680269801198947711795356426482215115945882443740503409581576527108842319490509418626281823699599667433174948631397583437757320919393824237446246746837355290496442260061916332167010307999368549357727697266216273221938411339878443494865764137084704366621073680286158465603015706804040677512829960185831589539086453193341550495571828182371279622736496973621993629711462073142118676331677171931480583204483085138240965795958296099481829329787620193375877008117656918447292477857768585504597605598145106357543496635823635828056218023889837262919303016231087327779464370675915183230240641644006540538454938830144031887862872415584088414689947454715631576845768350782316109709588356336818616749576867279763113773691906275086491828675040749951067114558233920344374379731399487023065779718967429531727198288181891624236265901398276357258973311170497017921296231986866767368015049411564727503703397303222321499581237433871286659761379260151691977707649502435287580756249421190442423827025812434698712254553187858086040741074024105582980975558256309237542590237662268651474769227223589285276605489053684336318307079925754590401108145624407544337703891602327510439014402703349956601354413383921333197581773916514307000165205156889178150532734198821454317639722339124897203748832914158559456671899805096775500625442874887242294318370369190680325444190447003258154645775902686072117016176714122111200460304871782980703525293616654417206473536889297271072018359337952593710852478658979225717714074154685665606861240266679674126098043611200252763634606265422564006298252612776563348384678882007069490056964399679768107739751131277669353995492848557216554318162042319550108083255779969654076433617227364327240982909681788405571188245108882928043087056114134558461253319395014855129821990415568644416550100351980016420574725317749261373650775996702977037852449514133759965959308959855941103322273075014001106428748241781774522879421402921971048009269664945454122448084442085485196286798154774926002122850142811039525596685487430010424087910793473411453155350768340117114252960032717593608385673067343188110106892403466674523573308927541686570421295683903169862088933939930497960812948278913468076948949051293593413291540326514158223166823805713339396241213419880061734988270378967621963587153879941861592899306725266936958758341448226486581741031337809953292738911126596667919020281426847826094358183456864346140355958762271905486176858142843961431124265296158957525003119090316729130022153605752811443991937186428762531627106381220399069960636474262326382986365248593353122603118013283288928218524835745656364048344066016038102610581008566992527188314150836500071994838255227016482385763452284883092487845897020096829491967579106704916163193921076338041006969481984871469310522310643957577015406987287816597192039983699296347816629073835976291874599921382770977559664961074814067429271694186715697193652729525974583669792921748164133192596785490966892932535484022584591909390928305313337538099666026132277197989892952525762812572042422283616162926848422494696949350878921090128723443353256877325999058673962501967220914383935423117634005127133035982186436513055092221984275402381925772271802170323599412256906172158359346217397016761264782398089642159779043457054451714301678857376487646574514935401914801139030180488833944041034281374460651279045756234883461950587268297059856478517794882162639746233118128894061523347025892637214013950326059529010614750783101519799263142481500608471158798896057016423322356271699082547666124535911572914088346952021306515463783339345220964090589482722949589617338384741336163307073810809233660562401337702058328431461055973717101723489720376792855373334493162494167976969558514736457886681762628198036522020907331891880673691989258098270188253298276303469859005349438271679374595558855811153450196762719088554873319558489266228529256661963382553415108208733381077642493865177700675801425087511296351299585484021962809381719816356393663899711946607305531182055699417645273778965333994570312188707689130246065551568385539645867549932472077526943819645926403258441662952840768279138134254832792040227056620510414310512738958436455497490823475440169029431117697749365682035562818556430862577295811087278033997774860358660023190484548530890236559817836704003422867471855221178925084224642299757914584640634332777033585579041645516847444982575211944683884426145708669518913980594083379232920143184501961110145104662278246217622388219549547798110909867082943905613319418216156919000211403068388184686206845312805757511915826799600061442714076479342289321890370360008039779758649068953227128671143308803657319759330608998780109264131201740194037465589384493274771119767789963479830942025447130068236115825361076269954446244939216459339498200369278033896522413174046647176042888647429608965501814179507092861043516523367477397055288836566627323462967722538896289404513321777940866735482997671271103662665697251594065464025278082331160869753066368466830794085854934593030461751531441639652782265150897773127354936833779060049252076436364226170071033547724318335645454295596890352216419194175024524472192777542182939138882725541602994865756864079312286108392811272159384516225522800722282726325142144566235277430608744394266198579996726391520638142394868315354209948311481876930765269252889406409338981493499162120885966123231171208730316562403175944948054134854697151881803201130609780060852864297505982175956456576255480613074719956503206287407201121892157458962220210532561203687020483687775211905101163915297025038665210211019085875495634104776989694009311478192785863413605204044667416213724044496078558004514669154281354795271439027341683226884234313467393033604910035431911198938234750048577053554771665513458737223572492416797233768446017353907850576819461098842873757071827993638949718961733178229523626549426908146803946593807800626123095586942873532436842631385832260721559105644717699473551266517765151694233114084597112902693544907625746394994455170804736826951273425663204397505936385122283630069869118601837354347387873733712683364362179797649805953071047036382135980682116228076163772480029918506656146617331581117401505018351403950683477178418055170942201052189121080087240999949696538300488592386057098090175637400307739278375465733564408980332857579433556344226729632416659717410735174686561685733265094862130679677530886536140005268371208424882031624137392756664189698187599965040449182397072376920099639023393250590012556385775659963833378798320159948458957217545598613188825813655270142032868037711822827799394115132525199341021281000258724458339723218322965959970521289426081239844474912752810749581766479464206752452401465465902028363646137743170594885191074811332344179797987079590644810875255021221550794203351840096240258174282611778403153552556467681857769714889290763994016964645321193412722891538491188757615630442943771842479449871227881319779007841893830407673091944805506499684962194314095070454811799605808177441448073575963221681564440495840449750146977815898298697033229726501804727755882715416775382642279997890755786358975161635670656908272978305617959061253413889469602718723415628306211937512686553932665674382769676080982638830375255121861354035782109817662943155807012818570777451609742246377587909106685931218306696858183444270122192810628099207727089536914514329625459351724623232934522933006166118741438953117575625507438591403225322222755490403673180449082015464255215544380965541107150263523172860184661887299153568349213472844605973600346133259972462970205968854648347276219440035123476202081332294125684098184324653024369262882464170872730788325166974113713074724439269540285086413221883659277255619821519178849972367418380945385475882149027298194249939697988611719222487297896116441992128493505377374487548962744242612449571560784612856999718590145387046744039639224627884607020628971981637693202270731098717580424760280748574080786363356846580189357202043438140333528761568884175184404753138751249970577361695121600487889167257236312606302117982386913782257877708426212648476695431502047861880253270423757108263599360060349481095700507626990650622847529709376570233833159922700980636990224622064134397990242913784067322866066403505792954493969242016656126132357302603894334486835678985030852639201580408624956795513439565703721228149290570539484962615874501546905924416106466199552572100401408877038340893396027437938334721427112589962405457581900017463830534297103055329314387271518070651891231147434030943123778532823469464973726448478375638782185796756195346766672939920067138503776312508479222783613064179245319173533961407526723179749184774771573885153113094524453503526685123989597972024554483440706037959649745307258590601112932153530635715988661941271161507947467572945614877223705132778838754685491551176956821319036972911998291192320125988484612147269045689325638067961905984645424680433325909630322301265557726163948867955371385070527471041961913095298388293300465750604617269072607015582313203923921485580325743401898313721057544324591700852339394593815519016904596906431112193015542124289190120583939813759901704054732178661548977374745002312532590096108099866155757489617279628258966696243754900695650158694872125619765007432226118439089215472078807654209784697121720199518646605799063782472996150227505690844779214297757192352964736505632585176918956254143384987444489008721947765981233673966818191524261097380461391044799516122585471114760135577198822846133687577719273631140727469180187987858703859771610887109270913207934152357805610783056593540482329532050024120184456337019514515360560005756099254338765032719151842485701602108352557258005636822119003783334025777219993621352517865733397832017250196377256018478521106542875516011155967429442323580934362564543835140745613610469853771787386199606851480377576124502463867096471445567493620293265698802288328042429915202889308443618154817107554443764828662842594815597323720622198981487282096994070580957692528821935450949614377253089166079151071227542213552259433138808775814774571150910823875084633682375616961059162161117989407892122435473670263329015816477305614432752195831038049589879822855614835740602597621409429589434606094567759862292212297543686031087633356895028081802287027497821351964397901477211623767665576105982173647933020093821647635801646244121390089404096085289624235355223726435081512014295966880201251329499135363784864998584196990973884103957502886643673365562290538004342375987832871956785453838991149802094292981143149450878010412400307983677646742430562429635856495330299254485120210982116140178268203822264754220640087057700086764149055824449920335403821951734142373959946701971255403284655927565605972171014870723661948392907367256546024642994247637937108831638786180775333079274586083074049314790305719935791233040599336705646649404958488730479881413177886401010029717356327393231074926776794085007274142993915443040790396382663923999796244174514692461176475971039307137823362198522432057917815328317643931206198798902526227250284761738112131088043370737628299067341085752184493060965794054630216941250104949606321749437839957724398514132443470262890710998220242389489659287270947611235073461540543124741178432761341102514628805881209255457630636838621982386796641381873907585553258375835417416399438443982551136292958410484628884549682189585008097179195087244460399540877533988664969559335189518279600812977200057759653868123712795193995288863544882215553895498223284235407660503868628996834457052711548544574263597055822084357608734239848007235898223710378681485961869239623436834688250910744736535889810301605552349681567379009767711063764330876716577085454217833677920396532364662081653463617313591248490410976813289189964390922455201367580080233011328545276357840534914601854054008051430131979589454248270701071758816257700483752180971319976283963351765315678511739896060680594099064630006720270947803676231264683249591090756242775480962613112402781724499724091867319271068628802787168828486113810955445484001307477546565146850518855336524365591421776935894395794822657421155043681980729486973462306646938638109189546395804261254905115484840094228814733531636831547362286489226265636172373472289721693463390070027559217487493671465643556602842176365781998807882718322601530059575139456186988249184050417499063124855288017049837479334252879430392882749675923316972777451132598885802073747910764939499464953841606201561784242767241875860202002940182446474391317266971178168887283413617346635479611761924896259506733991982407164254727443826032449765412321283918681637053995355378660441656040715046367340072044331075725349869679900368718629831218626873316611247406357545660300645670038377282624733756666122016011132623958131535926977203468884251636296057958345029984802973908244439332532369790514030927556579233722745365962241049408468312695056855090010158118678656294053522342183630488077310020635048883189832091319961340197882575113324088627893538645625778581326399141895293054436620272004566957079369936173660859139926393379345197602833327369531410713327370996785167077508115244791318862933760378528245598323762097640943503790411733762337951645038386414489877333491492511674852412550505244030911570020128845356501760354789199331877721831604603110591280507373366825055568272207903065943048566180223346292419997462463650171826443435848905704273258191590375130343613056665080977322098497081373943685593695138966945247705889085931536003026992079904058770792560661185923068942830972746477556121463620368766994751636144276345314221931858009874061145743237107890162406657531718091563172885243161816042340312901708379355036090788370798612103043453103150174128765583967772253908826335563276449193694252552408137565206332354388570893238287409709489224893374581055610749658424794595629873524728265766062641455383831879546357230123430753253075182015469926162443224446687755356588898889918970895389888189182632619614457928201906414505259902281282055645262977423865000826619003421667149019174735035590631405823771764763951802902185560459842006343576961759515811122615358575208078114301030858082243464797580411582439552073170793939583908830475440143973047599280145052152470994234282939259667591951561544272557267852074621281341503663114006734028747281161689072863363434785295000688438079312996733134742360944657526490112098363056618736877929613602033722089544547077116480332854353248814097206754656805075549534431237719709317524684374375759361559851076315540394262379478234753748132400126072532798119342021213383356138760988155924893386583531165861731297706517581167591945368952696640815796484092344217924257591516956279633345889496183557209616498931390138264921523157583128553410333868410903520474164179203836001072838496211987771581185341380592465855679925959871537461437360546223741975731822536447879350420337189820338184442614167756156774161178198767204987758791556243848467308065648063697633906922737052895702752704021605823067474469345538747767731138658217647322490706977864545972414760977921697478774093510088796031300586820291666047431475486148786533396973653841142625577770118496718183257270733884230122101921418287159778817479774930130560764431383526102771898712308015797958817278366041703659638763791639202047267667702816709479323127728527383252874168126111769171054326508607775545696452793379361886736214223570138664397785772876404439508079917657009765914868744171784458251660557639516741102033189212440410113347561844575456445686914024782742573810148189942195552931701206897062113831031526227847380975256510860443966699583498755813295049552642706747943882832997700519782702960843451326310631138698207712140315119184152719611398113377222650084546216789357286245457274293650128251230624869299795715154471587756319601410944906109877870453722135271109970327850943978575279412002802867266393047495494010157696428354106115004205081445094472669017639705329848842269731903396877457531025371462147603711354588743417948077816683664663284055331948294933987465656794614450104136412078269623865285192374569303812847522698408436419712604348569154322589247523618140151846709857168388208847974509373778003252943163195120820078435332883053131194624809192404173579420612709049399018498526061586445854713013707277811435345683505364476494526374054387271204850663439470697847335996867174501283755816713527067684211251986125022038011727848890357745338132590237413507722233844543232257080360523111453351143841963481892461151400222976291616611236089410168917907223151127272008604501231795165925629543928132823095388044913200095354049173128187085711676243882091971157047923658736209277158818121733876467040819182848914637691566835982391297438188510464470748254159294537779916127160089603369011866221164326663936922208236447844642728496410331410216341729786539128605077746586011681708012167355580861900793831470573120430263222689830889097267823392484624625701707374069544163676989492287209363043098508929979851803334355018820134908337662708495907898471810797252140638022361375085929609923039209495289950907362334923172890674462628055512647273016423736540516307278477156178868922342454138229785998667599181613319384828591305658615019813475477847374591366929797661342893190605563179873347776682333918179867752697234695281724819462070808016540709021584148255547628050939899599791312498560801433646382942482460998017805168079603705788429738288772679722630043881736724446764066075857977058762267280987048955496961633403511404491999195084023110490594283141466288067997305420936746026038814177871081108416612546586738305692259891937494977943286327780341710791901399597248489611004819796485778904660973453073243273921615699237905684746852976020189985139533629043040672217534053933778555302737353098981373538412304056257710692406711086719621107047760207176651364934648367692704137365295022616721612653057904434808839882404124558665793693443863715056164679067432031095609307968743803330325862933754688848900602965203672487241497494985397050089946489079295971304011298832195292865959065016610994377731218286590374819027661408030195570258418475027218871033119813001456496518363821877810813808253266686013149920747985407028229754471355539749885635181341220190563860336497720096560785978686093601497982125349792475477485145457892814905189571108239676585055736933387241735287418764257058089553806364935394021864913843651592584915849812769271466813315172780344032637252181990405951873246731457094107964383288257209809423004499276551294274929624672272528297986278674699650457459392084899039665217926241375054134516360596878203859423010983868912099596901786530597893014837956274331431231466623124249927806749295029069439782742148793490174813574632863386456506439750871141447973833016956952098332505161749803192758250463813156564806515902905533001514190653350906075433932770295396061969809878382426685152191757101818799547682526189981160106680747824281980367597948614737895628184413001798913523430840752268514427410450667645492380804670853039681953351273123292842702310885504783586651819920344259706328610815998221065080009251717883197489755311527602197081369770625537040933643332676857415927790278229937833563371798348588848429498889751042768916879106432905949555274471551745789511803671611564662909797053689468463687536410562067040891035790845733031373611165216948646966783331239661967998173896541601305310350834971260574350717434760107694081768151590386646074715243416452180363628245631881265996660756848532217798410793078603077216809918816154260309589689979353912567767013034787163656341736563985153954245953901067287121675782254818355616345345114640109423827947655264513148524858092078075679093722787420702408351141034347031757497615082449320310070485090541816209868548534196536008717318995383257300670423478948799625237490153947859667504375925863608039545413969222301998035481545996324039054587305755877985388331134553691784820822842516118586072417283238402371925327804482998757143108611776607543546873164672072666266451730064971846741224752577116473732167053486865805123691929936317100770820316110320921772180341197061411139935514441865244435092959718632373786806862493853618930762534202851138443304389056378937936338646795632653391718359866453539302031395876663952959590704241786932683099744973194056640399832716697050464046302293825427377959437331526436789864492605224176001092299043257166084571936178799543537960154944306426643974538098279088437465726977408335308000705742616400126533218987014161692863980272155348426770970387412237160329093096922787023834219216650629912941107606428303317729067809118420882506916630304687180177754767723592015546683070407826610204111811236213652916826738619464942360590393228287931437537625605755733525478835142577120817295980756450496959778807919251576021020010983643896880336277684050923016025089235202404089901476086370358691919915252414620619115681031271582730017301677964482181980877125255359080759782788739816087269254553605469198494783932614892317393707100271805347890552482052500313118446688137653155280536935826282399793449275551523980641703257531611187892904974955424687159665069576061114471078999661930470194776328236830167325179179225120317512228063986460420085414443361699142562935775589131611660704954959838936090433321681317803665312911758302257722105057711261640181000508157111467078699398443988922226002178879174162671512716976723305968545474870769554568543798588947281033917257004671671528982622642611406792885179688775905362514278325087428169961262751707067911265889954472562886146663482521545016990089890257978001823495147355381732687165902214651427184350749030605314569646685007522356497119725443154141158189773234641288548143235555533235311861937593261432926783264305555543638429776689124329809915554250388889766287107482711660902958380044352202120741643929853746623455941592993396771643742148433457451535724200812710679092928854232517727734675685299497765218979083517583072766077589104020633810662581594506078570465126109254634941169199174363730920686913605107160277403955321302837308073738156520987934298179312962145132721082998807747046286694258557952251798771522317990003214901164433211321607837421237391251366407794221327964204419270287678866307451702013354592186005560569743286201046337987789974125190353025719641092800442903294982610148794524835905263463728069398083218989057558377510485375582684928029951782156246744772529276508957230789827770882179783066627767197142476894211153390384020961796862145786576842046648597998688820518853627014175758339389187002768129465772439662565987807669216195065309683027945644128353104137671230305656264031099706739666475037922497541483127613021068782108920131741052752630920267300631289986434964689229102943746707380066417455958994958185844100976180938214998902232865397186772155095332097052368466850914139959524259356191719904019195160251236457663831582831029455568619961575005730646294721115190846816493240308521914595332249882194887207355073511317719197047295428759234654457382241126013750190127497157318996397161536891629643282234909740742739582531541094776066882540027358673020020753694999707389402945855685773718909530782315566630132041446720230733215119258332208875870154182625447360191938335474633382723032653240145431427241276909597558421884040539194755644608056786695861354509042333220623665079062117569273005300398732679289144541730103489207900324092341916668855172969517467126123772343693811190387702669832207708695789295369825251006057641113703135151519334400936255435770257252559286451371117656462820458893141646045823047193704082051991059277365366746819389950341747428129696193549889536232631080888183760447090229486641063299452162105626077830792557032385208735613445219261074016140904066719988320520562888510662217701557908089616686570491967936277316816801532036135226515801737352917162091152936555349913732087242386484203753796966450211796399329523655573123170627443907942040503006094304326943131169457152243902741907535431956571673169352566163257893251726635862755506967349374070813560414626705788767382334708770755624186912889689027687057868866082667078886066592427121920634873750129608773636121778452466182162533069979616065991452246412145227689033551492844971716285434937143274730391705504108626914220393393453939655020578544373292441507302795804135136494233588547738650039969669507151877098814085692119932829927700753403838699241974502858098172765979964632534512602294968853596471539453588033472309721535780629875133222398215123782161036982818278921630758392063520533768177292094975058121289536075188569542433843443481742099517894041332876953180364840209116274189227759635549895856559830514354280410034872394499932333459389331380766327079170961249013858100077841412468727183903611679355668286608030109816976675354070754595416634086908122421737133086566366250975039427255274276846272593862288304449322731980077189708775704670900838184982428289586519688162077672536070094472986273384257207749177677405180828239602917252314096862302569327676440520613465629290240397638215082558339729878290081384901094251527793479083912399595785228084174238819265799720418359601815628846405015647686961440489647409893602071997253600494070668358123045332741751348973253288350327060595003696386264719637595145877070256668677229543952938251543456360587616608123777330629951753157242815866015050379085588811336466972413245267483574277955799942875082035576412978522814202807262121002233349774026111290347137757115278695369662602477131684642565111447075497611403521422545054704758511920947766908147351994715996483516853570663475759611776446655954049718272037044734584028549821302962846155263088216821546122639917079562983816570565196096532312749294376473127071261546220743705928954490203532774393131869367689650891842846079303457540996716768040480860137972400741473925642166969601679370041192104238610506568515546990214626631401862417983640314646803948742956088306009663917255642170960161081552415407961469909824775167929558953285686520423794382618476585126385560416789279993592053883237922156687206019963781060327920382758107220546334674590447645342917895297121123546471842998872124627340860463296654759887973455129011898625278777139826388965566601399316350916134028116590533990478351017315087798921584074955427233190238495423543013262546798811532635167359459294651058025805640103268191085342207828479654337415655760239227398584601423578509140985139484124145633276702090272964747023681670706731619551690215337115190204370764650853097458930354271048020408904606819238631849999192815568717357042660555844988203500584461761091776833568343852150330902926152402379546294082863191070889176100212991555008647104353024836943535071774397695427779831862931265122896247941621182987690733929323373300074553818091416320547248284605157281509917316255836478156284647114759445543349872428327668955655570246733860850616905860495643148577779748303268363382939125810570023756805284951529316366038651850132099994238872688886541125366738823673584873677724086609199429402576578995744851263056417629746811909553121942435179171427689693280525580287833751816778175801332687321299891070588289420290896888695836482761561006728525162937586536108935302612223234875451288885273233484186224361832666097237531618572125216825950984869158531825126284459631265643016964874679848004203339233577028956238939098742213967351350404826757654759370996995053444247539675952204217913471953027319770628923934322714717420644272134344815183317063042337534677526241338158664461653508084708512751505446733059327501088664286228860983861143546910787931422329640416028145909321988583868279566200445870728951407112715099470563240596827062844969897875992934535595766852069131261165927902897652790430307678692037251355912052860112637796567772391312847755451932134638372037944823003200215141237667945313046829964140761733730737745356584685845276494569388261798862144281525152784915364430565329410084991314240100805238630041691228588901053431435614217788914532058254396363790187839265321896562603350371328368505135704629953280291874918097014801510063910531944396926751880147039975326965986450296003593372769224868939129054953830393054636249124894055505310257336850024458447709186565339418762400426762192296530406552465317632953866217014523102085029793702010772840405846748607821675764293165402153940652630736777271339930528895234793897397333065955782790259327776016367236156819111423357880036268895268236555329478156819276179840786529878849019008406583340363330986902750311818030477373272165964131510804747796737464216335279147104749287691809814029920815684298781084466468919805223696760330481301729178694594090504695602783666248203275519824851436984666599020511520427497808536767655142793834531312966305738240943803185124340524125982767959876718626503991612497677275262572257611552795969892745597347032627523166659069221860018003542134574402592640642454362818733510724355523811675158466661291525759009121508944920255391994302051227732066950599045496114488411328204724483302855613312799322868770338443367142248304747329891147245485072400328026967183142652315850994590994459452620832443029444225511449941343718569339792507082029786501991614806789909531505753883728507577937055587882361468287305153607515929515130216939562853491810425247124517866068958067776124701789773715682663644182828461182731105097216217588746686824842028539525720870442369312560974160335384715451231304079080089234784750649948933911038262849856521506032558203407206442975663490485604854271506281422635033838682826167228912949370282362359929496984676762800686973064498213253162681466548681201065679945641432888139570726547448601895342150719566661770973783961052462132652127734304943799044024438338396023337405069679831339416936629890007832576012710875197622576541474744315811137875924502235071751233762510150882400099131520526238756618400171917718840075013386039038474757290583957966262220459974145111302333658089105380077304074523087132788362206535554914138749953803120599172246373852655950663955366580571702394327343394724356383604638285524518422026736971138713714562000869397784908871623032824223517029731855819481060085773052873310296950335472717420309071616374934337796539969365961650868706057210959308889664457107927479815712084127396278513898468107721830356333360539009512265697774982803669415780162496836176781993178431278292765677845480935333790626986821748515379980220382163171888520722054314872519492867428470340188113557808550637366886325380753314056944666623968530015987098593243395514767164441544392225978348384914429644980107464610116767610664332480503754729757940924860547467800401482821851914962618151787670459350602942191374327341401970512504807340063387347284394685354561014414369381894700898524131540443199291783837815177008513286725136411480106640065173078813479067351663464114736892633978278425247596594951805536334027908574068572304359456792847458457578160405347764374974769463687528345613787525146282852297708293860329476021125247174509812036492823767804514572082666783351432938045700342579952803385712778830408478196141755865976876365099134674342349986992854619706779315953620052830990117096863742169611762774894137233939020829707914491843672903770124760511223283061219628732643498413047828795509829222101788587637385841227417982482159913438972248667860919832742746547156178467437017168420606546717929637965511214851235128083096877162812248302587242895968603804343403854955332808253107756310939927309633324576208103852385469223519292679738341629031285876970474882785947690770283986785064526397040835242533622417598373774898373052159476100370118968762482183255385145771309179062456875006512016684689326987562575125719739128301358756205085724115624063825494403632233325175131113137159977254708096870101892592418693500628914155274288987716469131864270839468328501816274513016201474442227322585551319646413158902943608932279743868086637807285344524060932120648610134854236353902698509230200522511507175304298475708155327789187758214591462209277606179108720150864292383500095485967937748260166232031952699549823525409019894413851534580488427666539715527558779525080309931060945875639970284871921401048128491737675069696647616932020827869387069626855446121916317053732798756345046145075765171353320396430091746094426906720774072420437304981687181184775017734254373444748813410819493269525235294819510566905546900189219575015794848990246454560042561092141318394688731044598870022406550430616371219884929211346395339790966828984139261860604837919434790020350793814329162578540237964517856864257866864249481172430057888145526576427571568871434963793847999228389131048986358957292145293392461116751578196956101006631036754128734585159932042473803246412386965002536625356793906290354105482881120951857052280251499785290821913147210921621978699747318658392644546674417384429230272686007191753593327471075323451880505521506471123419524114108964498513022448950729195289328645307340259175098371033336597456477071924180868760609725771996242644656282385487455078221120944931209849589304354731918815811246553571941713554095446937411598585109850103723598956923305906251650086813815355826114291512632193088645282249737068756055624009557931940097780454449602740736530629870967625307188694550877935216302256916154897309627312934188894056129094160766854939731305460775513790760461872660694917776109773842504084159030328631268723498322542804293722614228609493795388214237697318847278354324692522316079076723115499722272050803720024767912957958114155959088046389463227649622252740156206968821469422306251291982742801999137015921995081076055405820262839554022656595101258960792002037612017057285977911491143170893932259790572797136143043853665151026165685811529563809730666613525034170751088033334048059383687470039552995512140926579532984035533718128615413284270620334654988596443718449773791523620112646283455125243286028421090310560447787429898510904783263039869294363722799759861365248782427365872996118358521881988171459119803241134050351445521130061901720227838599134599077779379918241534985262574278057617456607860242994580280639259958710188601198991880808517705695428727664475288158220189456964652889220925562637477019555240413199739621670917347449630281872231984976767999777253698849654130114845601263447936472522656130546542550610296983013376959791371480851133801623534458440090659913740325888469899632637864454413036990697800832817308134520964744056230843289467615122833764350505004814994448412297219832988187289178241396844621851950685538710949141905491303981781568132398781255323831972001638643612383197930312896555979936494322621169984965504663751233650604734551752539881780688266715861537804959707417856808016738195786734540861657623007866727386703168502484255321386724973911134757455172858706380021519605580202151435069053695583993609271734969524543200132946168044494038038212140215118702274720656695361772889037155935504320438784095137307975632155075710558785323559374604051927750971030340455809537388903622818905387373780112395832855022628871244013271980266227201518918290490351846622491412444726656471655217020584403237512390581861307702648242181769873316083502761327949128408237994189473024882320312059322467193192112922621098140003366583239749268373115455648317899726863668688623434327606953119092571868778493293020229381146145401633337263839735789349260294405906173482559478755399165476349660994511690318023989320828581832579655598106548291916790294207989110798758272321665424490451706160934826950377478190334316908671421844216013591951350482529336936571437434972241793831490886258501684472204259864564032735946663839180477956609828930846155051574390863439055170524331485152419885729170730326100890666521644195340301591362112011580837595499538440051782833770393173096970627979621582176716630962804151159724968224505996547510549533932914500399423862508292486695048832038620281226708043546446997200947337500060227431683278993582563854917977306173888429558470675131077767084160293662429305193407233296961053751078447327854096243653009970702748122909561966750802961111003003544558199799924017445554108231788391844317699256186929456665495628886379313154873554331946845622797276099550881794579772796207402605153643430487691874130677473330849470290069187979318215394681830553278614024440338452636792590778904642248562591148456706423928843607580380203386403519393426081580172992551805710705111640845294202065874267154886926843489327962010726541988457626723433937288402117326372836211416855953338023552039193420528998503624620211210758707656584350687412340590881765457964631896416829276946219185933631756306030806088472539734141839992714424713144196975737647908096566715157645437576188195861876345888913006785725441375313789558932816230175735174361487058568075813846708434371556087119858056802133939927335384852098226815277322016898925991342192361628123870927795058832783517236510758747804888279525951102520756992829418266698855462624802224427241576252414744106639454057737098550297422002273777113430984544499177555207503052908180691096995601440443561530679600365582110806525728536290148387005985612442135790374120242886018565010354728856328536699459878273973018368343193747942579563478655640117638891055162185694512773952304105769103982028240985392069475795787021692648589057097184545148573628545286316708550386177952928991305660241057332547979220041914106374810617850574273709966924525179906053316067723588639996519502348732133584381191693253742726209507093949460207687215929118343315861972574816288893773799510884417960787986324697935574382632538597148382474285629662781390614575384293955829442182469540426698659693918222977828090317268507137488486861102609661079559823279611422599305284232008213294235924215471994695247482930682283976705870916480889185626956017922769084958149094166114297409553766007896589327994485979563375541992915995551277816292515331482012836597836016643136194824307407633295567135934418604572647900995312647856387456714264308209830798621838006805092100282104483414156151323993839069933093498957273202675204491966612542338247538959262809847133870002338878074080409745884192225803493993872943042615698108757599253911158378073726957933143177178881094810901264515356205986013006323794005337140037140124559196831739527971770887721561755794865295833124960194063206838788996424333179546408845728696924663876113258015665610148480394352152090017783638801014164340968775068594021805828080901748099574284957388376047810684445127237940963574369258898362608687733807961848832912733796568662065977675129776255293974005321942258226723046180695801441022414593471626335463731039748389659723097134314664337476947201423971377834434505557425604243363815264143794310252495856081740750941024799574973945828845893832732428327115577664533854622636382473935476090835855876563640488173418508849165030456273348267987806238195748517022574145087289821322958362504028152771037857816671368979096150559660856087300960348968662960759168772617607516785519706954780973633202578671633660035672640162020076819863979527113853041200641876486695366525311422911424921725843314637531273409310209358360812655588346958905379873011828513108761939918461108403828307367946057456139439889850093148611209788394388701313865249228996903166271891092801335140238621745022023211301455273949944866135783418405917952994829414515034644598460917649633255357145604200877575837089172227540006016954257050075182885119651071941148097541827636616463942295966102299347568923274171266629146505525103247454796675355115085438802052312565246364796152688426239883880567386393550293825953774480027386931034493904264561499749959255356569685655660240166739918718202929189325507693375200955973750614395947626132529917562807817204434460548125924490735942789316488248627939756425963689391812253097718370562254250752725406896616085299074449339602246521495446713973908116121109184631276652704648264152954970878088923261885444839109726128548688251941934915632544487094451962576327792458144016215279100571544532928790754532118578545370499713054770461308011619312815532993473544397594932259157869269352314729696308883366106800383516729899769460499279099270335231368287215068937055022693170200373043250280469677189881121392253137217950423532523912123029106508274062425624882993462754879079288496974658638497211042236518883066386768825779866801129516829592230638924354496235226860669117309928059389961039183410668142089857844105039280625961293568921232203109174456269405381272844916640910098590963064949869616886197986801603977888873101207416676772175159644383032615012258338479807994229983397394674055632358153044271071781544630269114355983855745769515177092587969395212339411874642140568453163984767222874149692311914755551219261092069376244941787544486167316315155681786784067826898106956670173185079380192387121624199234642069335823351369037133861595055838654532614314425490764989452756311079049312127718020605111843028100531502798458526522838587249160776494020857611989502603210710874234828335516648511395691541284286534143619481800712395994237668960024268824655613268989905024036533176395366020573947715851953525931669127580964154095103253560034714072007129981120017015280786496235675583780461901847738803421448727746979785332112242009570116939990006245070894484792406657328906725905484521094402255206929884503743085282398667539155271349573876949004930411839807384477309280554690438857393771248158359644370280233406601465426764719952706144860716596916124434541073615244300595873247292880020462815995559003083402659954910041168009059969903142477355311810917907493952713680070938354004152256501615595657356176311340936192346732850183457403285979877089373016222713081032045416523539328960194212448511358182522196501009921264610094320445801005541568521223606282972530590557943240152923889217092553561328471607189313729069979598762654998716513974797141104785919319236655429980266316700321058249833583315427752260837146684618058499546720069987456617260266187570580089628085892966558079033496897262043691042916320389813571064275871396162413208751582989457618938753478335400325792708191813493665512494500629035850876902550927469950270157624481970837261504648553449381859019096738484019914560228056274509640673258500489815260578082073261269591930167467473966325797992411746820951594770914904503616707283505930002164979578757152337754495713765283576320512490609258288132134057105023329420840377641513664113017450999928416064037106491196872340599234203098507997524736011894104703741758619125027308957514449428296966726223560114793135159262915708791124311498007211965957668616697735728139506532575510297791694822622897771465174070708035802708054241443480905651414902895813111334236683692295682353813461403587805452589608390689537140168415720709060085923273200235712789623648171024487741299820750814488099947514469993124333432509602468392441243042941736190446976318316642093252590798576265783463503419318128602189798673042274465304281876075658763083346430161329046875647311646478192191074674823329461414539930094372654884792409032653656615042481153725553928114756943573398075066781416034063727715681905035084812605241439393901325182089522278129980015972557956581232576721902379992903683780268416200893254004373895643850320983026425545597824667765557071429746279869902212304129155895581530936560919384272092261329063467029955926329839873226196647416522174513722535575621840661412084115457694725970651105007220669787070589483027232061807028972445843417385865684933027523675674220082793268767163040874044971825855392619909389401034954233669218911719897244626265614057840810810513616987271445791729681420016612730078993424902018877196351717495757258376728508581270623871768303760755899601220793307943126587100323365747033081493684708373549475925514779730754727468430559811449016050290002879324970497742561407887620884089622163086752375567552589284324481269661249796350718420009387218058941800488099386972547577078215449069713416302257318595501065839324862523796347074698092399594122560451840075376226284627733008321414379202483345700895244643449017051434530055790515886146978213311900715105727385465831145607671546802211434724848702618756458198876456874327861444773047300660233480251395156115626671078138023842532435632609581830353494889306166879678576307895149103325512916368116914398632424522726671890989163913136149548215859037892296274209310587170309882944326152865672295305604583521402078305503016251495133569066595635967880094174368564698619190200919720791956705810836839971401187373997898457799620486059205732183679600962638763609632273382081746150483369002002484994254327749354108899967412897809913062776797007066253741157089688908806667438662075954856867874074394194925899757810206250438041641334784901167405629205689177573713776842452463887186489095419522821495045931455441690289905341569131834007131004453255323118970581907592646386068585089120810700543500794964173254470544040831245277664871840430296899324031837143637203871496307111762356671149634853277732424043490977024607219735450479179472473546652892947864152996775700174944978905342427650172159832793744530489358029159548023663432948646275376962846701927771706231654752723141769248560447435254623537772054028251500196939923061546781527285095980049698631989406798453898483947729484508423966237216410327667156032428920071605968811240085149344006649819781463229136547058483387655772911469416571739226074030683567385453833245082053804392469525361503648040075938105214973350774285773918433331251966654764241924755198238706789873207916969230848476539692786926141176224318208406107025031503127695290266078526378115293843293300844898081864285473336527205530828195057446208269171392218703449164697801486916035579007903684128490958013313609214495010763481709888749977883073772585659576092625452900730503907292610804510200559033034462303452040977765947616161446256570937255920738159411200020961639479367910190423685081447234654958698167780724469443596438072962209924203742253209700811027284513741471986980854415053036986273410067468733446445074136983848046442325202325928017973573584902541894117772888102368043922553944428139839686886509645963333812396529947805598816301918915975511690045367324560864136452744392977822879245505242024172389332796096553477560430647303383931149038407754340209867973769068716689220193952254292267111451953764619922073882915293954987752519601700629206299064955482547893366825845177225372054163224755067152495371500918291555106933059989780576391005522571718731664028224984592368629182678180506728840548746090163070439900969725513105155378890814814332301965382094477348787858152960929927833563924966308302286458150267714713039375866426284877678434203408486729063411657904891801668062714638820464881495720193240164703635830893747485580899222246703989196028132708411843819575296767582293512488422139355354277376898001220448856042863429300550454340942158173444355798082636542487557299755624709004163278947063330609316945849790438938709489934541584115443876170795160591363077101648441937771017894834825972077270731653746124410923047141860963682704134103633171368484551195733046210435655216901284051049041213216043298703780826742688859092320322994339982643014850262944097205269394356537144319900625297345354189105725029105565089386261279443200232218814702748527379362171974850331450784743626850478798145741386629315494796019807467080767458301330796493091882702707310546161851206479668752271450988904840913650910690044661910504206770963163080094647180475585241559440900362237514642209582678352396086639620268457925866853114694451578560998505124500464229512320871779104689336778770774080789153225733012016806163218062180884338724558870799896406115046326622336367471573472509407129053613224097082339012750291264503708844752101518640880536830002319176330977408765868982061088542083646581535090196905589519661839695474869916123586358113236602332641181894534625504421504056885215077213016622048473497930134783261810728887662132896913651184753032922019963428705108488381015930870605131675761194835015956973354509137439233491137279517335619662701917123221138176999207570772027083478747913003559612779576373796877791600423621027671066466990097933940718269372740752581412183108751989725436332216960699429556821286720189523767294807368043357483392959679195736757644717376199955154253141282326585005148683979129501348515649733192910320404639823437330329598936438967509781282682855268131864096475233793505360289520315960533387575221727778721334844353243189735200975640572815185432856948080982239633114248409062451861781486588814078837506506647415082525537109924656638184706483009711784174945881480692269047221678615737895544985976544544109602525988833577670193696628432884993783700087012805168522283380601069400185414374081708653342183094418670777810952418068254186332942634496036125408764729718721303661786498189505255129456518459773466713884184806729598626553543554775667489431141575000309549593045292101868793422247414931844711152000477181055191807211004562107161020395851724942477002561314956427406189995772160571021984229062997904218957097462376183437199743042488108908526319573762137596093896918689217113233498637854817443498371785517037623540448927885146403734457779803253200386744688449242612402572502419821641717800099463954024334960244888034896995609398172587600203750999895388619428712600527033040031245976098426940700880415855095327607964055022962020128460234694826798379021971560569031208594066415967926273119032930503887513953833693180147110805889778781703546657485105644869225077053883775926498754117486276790299592076685722594817443209627029312831199709648483086428774690742192076604749262546197328593192728161124717596560107139003531627864158733204139655266575760188812137265236083050607066367907294911587913995215411262146686601940071584222890798402705411044032145762284379660764895453927781851704930798860889468507192259343320479169519196647156886732660896101666481917759489418011191972692116817803067587202585520589638603987982931478309576183640777485962189890042347217841402994309364075267209342317077681400944902794109622264608580489785945751865467286884931277226579768495609192313455078325295018470260223547165155193679760517085929761576854034582090180546858794610673694584872241290999807634778635862559802893502074065368340992360042587773327878494988578641261246722310389238098803988453258258523899495213536134217059708243153590421937963079810114842825497091715449595309299648857137040759048419855024904959908703292473674974399901886278226392032520025383568401334692400563798686687200377181062665272463388685629485237780511930846762692413277947542840378764279481973952107644686943166631820835564277742027853783170287890714137215607987680942596549924658131925674927418728214797532073644076041392066648200386024205349823544830328498855449986870046063352001558489153225698004318481900284476332046446866228181300485644597101259100271000891919615761035303352631846370330728152223630221847043550552517116128594424807589395067974060578371189667240425118653538128023040544168499057187821729962907235272610886631363305469177395077194815250996572925283052232296907317201111697831179815518509927652801136851384798145293723716627291138757112989988480562299461117177705315786852270980902109489907518693499007295922279997266330491422501236754212731601794340870534005894090829039259332217150145824734145430451988465089201602696740086197685664793974208558430559828683665359404013136645846331398028568065861431340237494350353507497834136374394326500867206379153460580255658941161780831048410433743663072939150228791466133961788091138411580957044637268673296270755815762182443121442706594694810386350684025053774928750018396775026844059628012297488417978462551415561236325723058630064166196491342887628748513307752225241332705761892494293933202914374457152876573955684475416059853324690316192215501389016044341304190630577045634791906590168237167819289612602544193459289959332703213831925814867469169770028205968780561414602096241501832578115155125549991916786932474827261704777380028540706528089777740886040450558184297300123878988381069659948608878395947632480462449854588977454737685886198159577310512044064028330219626795370893946772817671074139628001638405134234960555111999133276819604775419628135287834086504286402192576356278117364971341219324863370713012357711603966454923961903773187616882907735297603929031022548129331103988866991369929208307212688968634724783140282970438727526002167857901974735522459665228454345001602939302427065118999147797622492166642922826210342159633371573199403510099846879092313650617462395060149791551893872611590004573042387236017154421769587401043858786775690785082620607709229674466258393961448486245680163374003493179052081677026247239336482846273007009798052146095769542195061329340589021539418525851727576738959683616861000015945457705388210773474323538103515352015271004051710280378686175835926752647024499371667512391219971195111779044420757765077767085180990917109741822956578049250126057708025987024081978039796750807495976302416046752225075811019218018986406453565645482628248765885741149746752375410875772187256118442739114448399086363795005109500160924021910231542295648164595999031701611387682810891599856206022331188744100107748764843325864681402382205271199685956337251912299048963248650468625451730176365095999114675504615437310743109648633883373004058397896593688730933738043509048035625455426446400136697481674573043090155470819013276993353875804558727909877761736134728415670258612435396633795464884651798784653373440692294615135284535335071567579389509633290482772105443465222267725388755035360824370189899881155763855824119873656139810620416144044780580148923402253306010789751960865559216045529503042416766653421867868897556907901713450708713095848739703398991526693514549703791609046910987697673623217473452950927529481642559558326431081724595350173442704499073163078877368597567975727750845819984291613166912647910042128962926143688725635104830023018903116255887653744417765064563009272991187953249052777227650140817409591083239797055652135694803831164019809032595695951585631912283619435120675077348223202734874418378902826759772755062201685145574574174805141849158264019076017383184845393034394679335243749598245061463441452265603339356232073598504679994271107026830633897276009726410426720752327913643127040508615384553837542555576079256481771359167519197714793204352137605422975603974861643027199209752152716073731219781452914897940120618075345796702051067593007621499393512874808056616128684933222324929830841147912588322282791931892325505970578212113475367060241570751252683387930272430873191902480205790705873219149071348207803102075723064842490632236436639136665558728901442009295874817400204188741225039319216904608343820936098759159094878519658990204475520097060759082538159670007229874012423976031682767235402351679022332335819920321624819100048078053619644043481710363244969947130233714895662780967181284803275529638191141991488763353503036901901393465124357924215952828720806755776573677246789478264626576222808551306136276380645673352423829213834875348478033320310002131053620549665546053979902803557141891826230667458834129397646529169789978654747279301264719156523319281058295964422919863271708673293275935523646350663295842312277595734171052160108668781792571554603296866574196826918032421836248162402454345068285969550232837357659661489097374560960953500194475382304677798964365020335594445803980399536504456540303664836645145692028278257702649275043879299365751611006645113539685415061269004874121725748979874081450164285072470773497080004175617082248200096906154180626412366525130147277724398108029337425926147135196416474869650724677222713650360822648604743293957048361270578231636293306128283620861948351705714677984994659458428682857173931746534907047960190076052108842647058573433867687189330309962636237578194268350839511821250954015212492438469697551497318475129086907079836244981047330144658448903815094411416273376553543417595921036187198002204873855861410105454717198901515600205495757068066349312039683513926384757081692428796204292752175018883178449532571917676542595974682351351791510125452300567597920428768862045269236178660928647885254322258270724943507356358475031185946885879175520924546837664495590749388793976786588352165907477923438987555072842136032265408817787257305711075645095219777169174710804427598625872765073734826695995017654047181984603194722915223079462242794100591982789136485166555032523952576917476350147834386112402751620738963837502967340620172808157207644016596070751376471325686631663519404158827199308587183887359317885697949797136909259003966523245312823021099665425241041859391694367562078173866044529255482724923605835004228751685185093822905710121254062346258909751595487866498495738912152645518349691760387863237571305192956361470858395646804888115127541890542446997951690420608448389133749044901413976885149066115281288736781403324687813688009023490483458957709191925457945805250317452713565312916883882938963120265217406063959456382230069125225598131482053829568405892136258229455762723139429134771281893479654155345904748016371119992364581557819159543817345020366151307130796490495263455828944929515241253937218728161048426538745160710124953714137486157817090394862238017028890311897224553048884943422219258567802288337365546627123452091385105125714758518012928771319850883080593745761768217456182499470251772158481085927840956260788978895056963188537111868775513805797139020136076340429501187284038674809524180880514371649340758615054838571525138154358367292441812489653739603897867896508352024265725714219615118545326672650520328304037146544455568996168549860504418037053753552187486581108626098794459271035152334706553012063450947309022157237693746424603058600451664965773595261646905334872828300799021946999377580792940710256999825640711385305852283098271990726475064902580338312933658940097405816358222054850413788839766396004512508677551000995817421012659580429553536498432111887732991200886225413332325314075142580046081734781398159571725482752516068048214356263938647574836165629774314357514160307577760135787218618420430953443506563644123300893031532735500248205111375498589148184524514600984602366005106823323130781625370623370685899468275375682830906163269958621044705728076413291110129720997798454721448850167720133491740546292490243280465199215715377442736266102392733423186816327538715245532250211225753835429469509420001430644754599711717675027049785083956517710638918149032605312899774515957856086334350656038788750349336364941864254068094414666430657083205721055928443245715871222190704230218820868231310958864257277356084779219005913980420201257349749047994311272986245157200327353903161466213974988910746341791468651066328609154460846217229278931040348518114239742274637396471378670523701496845564990652201020720807764886395060048090164880252711740806309754471931095115777294755253137974861474878667937638899712535870481105947974513273309910423847120309945530503666967956692318873890819655766200475442288535519266820731736242553683313586297795338005115961590744731517922252350615199669754441547644194747200858791075814276991104709268036019876919148580312184526789846739552238769202070950604172163186702110424698693920764184941392145624331601246296359973248459235696565757950828831470384180125711724398927506364277998601324946794082014762465481536861029462369562847366021622358530011931616036573625727408431950583842705315425323318628529617898701598779904089618319687174192165304872219305105000073593726306852737233131138608245714282594715407771995687248674657067617135481064838149684788420653817539061578868326279026019504884842322007965905003268477252386485202929979188012533152382620296033836801133385854389418501254921114696814741919277163516237680390632640888993763516101940013226027723131563391231652369089383895695629096051651006512270342022689835716099863363795638737896163625907033318866702849325772403921495335844770908006158772380458981864092999043904127371270722286755397003814526827888187248441918493015809499391672514007830753622182292780796692947364744768003610630504190914984104657162230765476574303131224014867768663384675724718635337618206499935518660757734251600925151225848160907119873410273740911087540053706685617220949018362050927997947276972799184094548129666142864067994969582819083913211997788917711781239539227212885164617632632245494173346778215926876219176043725462987707256723077672698788918534844520990619823344506926957832365496966646049469249067661398264040459565711502537833253944026313168047011006980299057072705248590732559019877879082627767011626949548489389518848993546104060832192664410804602743491306837068091948392748856841940471828569071722785683215761369395225483470249148241943156617859613006340417428849345321352462070603867995041542013382286765697976477552358748853326630450040297725119231424479742839896040692703774623763107607327273459291894558374063023182165646868895176163231759968986947558139677515048538712003463558491169970152994444289443153873337054519728601799751106197049693610332500622224891289710683938071437734915385923378538585629213950785636872789225939164636091636058029898189464528564418208991977743777811261409628799941119477687933143571410465049699262197953420191216661266682914613054640239435643695709446190457217091951397372449583523459874976883347522170012662155313805155517768361634622696847063064175294911901813196290513782661089257324959065311640363660198468217258878379489234024807917703029572175180263771101603843773413141687282611868957026493224959376391336601052773413351665483807726318374217095316586845115960249818416429455582784500520917988536953487708356707037040826089356539284481358982623727053591858618109134541770502056454049240581415653748249618299251140931001726071393630887743679663601556753239949144699515971077519814280662353162448825373329822412564753541655992328175724975366154591426578372933945008326729869353893444412175490890451223444305268375642841678645377820094541598578249144900516487581532622486198848695985534170592365093460762255936206492489748974799106350881400483105785234207139910821811529161428236274923146828741342381667449173497115149036177645082516225004116156130054981649417706391053495576346195495550350105136169355532015174224458922771977719502789666194044029608282688373754634031933466733020083249182706496852542049638266544146742878387630662740030937356170125579506450286930875856604424014349928990762334776492013237412936473031231817849539414386963170606900790948861607072444401920156975207635884888927899176404641839803861876129092279467910366236400216301915095098780708953777251957414655480157211200769899692752116338063015668546007708980965729458633747787913102581476913516290129339563558540748205803113259151114514834040603476784244801791788598874004730577264639387500047684045900550253148344519903667056964889012377619981219386818445450208503174700047582365161239696526609233260903077250081129512550723892935106319187399763340957764923289067098444593174321671568286076165822065490584718668019502045273910090882099772309440055338354972858440993739074904551013803488172764560284544326426767347454249387899102080728008759582718144799248212416673725839716311061819347541631838392095339441563068494429653007152745049447405138828303796977739080504819065143421197415499298827272151803870471027054502185097394056933647016618804450129591350657488765797407730586503489849467673797548373118667633267137734592889215694119119181631644352633360503475261857927720197507039419726148830174097585521635711823085588246676936806230906420467703121143760311711335279771513159809680851797350629471064243386750054361449907009776279662216359275440695817970352444828607229585495446615854754498397846531325504442490788260401910267965919628018849410094672201744160907457700776439555115977347579090771375511601087560682469441067132946023986138718126688315675608886600381666681223925768648775127031333221894615107262971801461500690894596850137553260413674700562240424337271472488823757740242371825973960284171375763299622839232718968411644815337689869339933017537024733454303773682322764869432215890404574977798474838238603089753239864035103242392052299350242629115155184466478019838941095720866240768689920886674659992044963694518355951698616193353529303516894889040677635444277756207417397421659143391022309845377433299674422826174715760241645482507432317946659111671296029972976508674959743305699408571669802650450049323834473161380191171026452852562857497722114545780635862653100259224464479423520159612765295961449771855636473472792094880054995262888666502176888013559553575811616462184998775949540860967207137811483299348256770512524092386960448877754203104292387711542881026551514745427680830448038251579810417664404321324601301300098732794637273376832879791457102811436490906250283920611033383067683268819699190450146479213212899907231411350128066829176816069632702099576319266610917263933988785255931485971741957866849278523238214326941137074146228182101998955441610660347674278908120799390827821678991713823408228358004344864609662155790425922762963216417522334272228268396266542698724213218569144415904684692896985687262537460339149444558495913896557672828087374880640013941270613794544904201341053601705093973779916646725495947732505843851504760363757246364229258658889799591113939751326586092608883617359958537230606694051152192283966643528120074907054256353488235397003082917031335994287549968288104913877160691381144355278814536791237481354714939905422615116653122770147524895347099530839830433116704642549623904696623613332263738686593280618438538591859597415860072192526955599706285203493747985630045203516871375336748281032905887264011295887505188290451595509704226377027455604087058956261172164815821715658873815006803896321012375842413752533364949908177801364853627393187127550991368240531335358269861420446425286021211790202603559924802573992641113213953043919078329327048036910783309083878026207049140222787629264317093750718755367344467014156521688694257870100267148144384734804196757841681295851057294946223862144799750014058602363577455932469936625300283223782915164481967582284614622871455772164355315192134156612538554824584700931819191168036395853373946544920903748471674374614091072235416634523003781471979000915667557935791278629992784244482240754263806021466791423048630131055682494498690138293958095208322973959041416581102017739297332102256019141753642246873197453943552818705262693851776324161022822352287598256909212071466042565521842164612833770562099563911275176501185447843671025448289942375811618124045288302465927747982541606428709644485018141627180542251245038052994116896152097870428469544489799946861497296110756204549575521463739279595964608462955471778246178977066962126977137924960364688613823136691934133926158411769717562946797926146939839646231366879641574205827594834236798475007522861691028163798263519562243638261841323114097240449634112110554851588431595641077404170309752140382053899925941190166055846483454335560863444001112934409529044919527727922893159849662701520203785072271353988234398599293440246661284631343214273593761381713416609224250840333233447976685259271959821090914147202614107540068453416798265222150494561215932370362801736119354806110971932594039571463041184430911880592341283189181191821350677836867535894280743123360011689011317104204240456242070761818107477238706068496388076854054808026809298682199593277599912386834630518579018978055068072787851352988231791977862310320160115877327709052248644800153996546881640333964061244405141174183238885783229251963266248303901524330571974127935064105013548658902489843483771023131136119632886522201165931898263995511072032353698949620473429279956405061870496699047604574136485723494624299273162642779362351190502192602367885317713502109668891637564133016855232753132066169915864413672219980123770860322577671687787927852087033188551336939616690430342460839110896767137348747301095629208357300844199092254214308996501889795224519135422348660670199310367579395017010614915928796656010711912199765717673946359597457385495147805600895088503887628308268045806298504965710004748982971180929065791785776195367539047694209040078650051545874002036217305144625193124441472543119493707443908066518160507809856332762667440687703266537720529085842148976501441322375319306464570284871396138968810221239807723325653687958805859913655960732990793508036004446585858098002993142253896847276722571415630710682920583251193357409985518591312800628248525278036414686241223345903682398592670016399782571710353245131446076030838261498523601009923530796494133714842415627379387453637828833243531625578181827866956528441627819894669833282835944294239099138916163849527338437422181798823968415040832658271779543082375195807000981638226110913178304230774753257703606856714580366900485509861768395567808333991712629403614807888490303898691603246182501400770411196867096935624514149831335327033567892833894717073421670558453109724630582513501051523772776204049567881376829786283872152640702915076752106543834364342615670167990735601394789736623402789532576302997964698320631389126819059747090070261538375095608984232174937218402965416540646101642882411123953443765916017554260129507572374360487456442555157718709539757118282531146093860309636141777852186586541277480643122348654063012299588774526870312078273643460781326620832644283356339391961122111317473976929571467313177836613321901687378918661762954903004956325303759857303311803953096381037310859009030111586184583425985543202343954064023527825932791906000769012186829333129865061040767755824797771786089472981770449866584638747175859627390921506978813039281881598463036435386634935873394892365100326908132547738750860286735782042722883796100095547384495015843598367739049845572327959363504551983808446179440965550354945579917930791279067003784054043412040816299760040858136415682324845106693637050306073736013304329754378283049616952507560849010971261222516779984320924845093838143451605614062060781921000269557384689053000228290147043952262253628769694631505944541747528093967083097574243222426486605753368655163408703402030381490603118852422176205202867079533236988352065528448909538433977900028041459145541500094410962061980112498794963871448669083060581410755704510000158288037035857213344711042819337436826661697303478881609367586261083269392715484646176190572634270449152344989841643716699423370090324715426228293925242787646898676566739320212629010268267488526580307652155289643068974924986343420522109584282578705400381350074739874497351937422967516108242735628116858493222050833397884959951815850180736642064784922282962295636481379485842485561562054741770922297627602262575534042017638928396441208944805617156783804108997862447680669651560301320629274506707025547670829498837762248266907137062040315516182311445274576464468096401210774098144451955211774556326902133541748448275323586477934029142777504949458298395647648743238144265721688833122669280337241680843394211733499830212952743280032108981308370835159773701636011400579564993306232768156627177338133534122590309853726665386521553003701426877472409957994065631379959628431709568489879591006370801720007867082996997320446475564787014853961412402322786900151481238309102543505883381587421580134987162500893041962505860692586467963272455631379206269438213957278800882424230225044251528819603352622807014029254186202236098432377966904698395342673225657596655569899886434088865505429302420307313175692149292791950067127016775396708958280878787836926972741092908027158457188742418477591050824946966803238963569825257043556323884026464285927053141580937734548359231464341076528388962815238720626579307100156147548282165040493907382863870667017216549780471718877914592305776569089715679194455909483863356217137972235214488464616079699301296464889113481154013927133705232534395007706138849924967150237985786491146073508423036809179804745514472242906024269832755589434390185596998323683643678618766992570468142031802957877369345892622251914899846477293517694597260449727980362352718395716921262752244611697052446542186066755573987255274073799318705679216198019963847125696019863760274482300452447315871254685867447042355685312842591064369943607876952091031701306846797971508431590076607652502753981295828305535938925988942823133362474323336058686570473915202239600236484681287261434545451263766826635711327033196166667349294055820217060019376533227192330381115009871764282251413730447339249080643545663175284497439584127902948054580273392978949155974577828910367253300016153816650101992294024639041192903746879407570587779890021057388507599149527482386495790897205136619445346133536757080033418019601455763540253892280702006101018572204830486412081241268840877546235343453172492343679704343235577692037001536364763139277272999794919571603076749051642990738115219002005501269227154911617246153084689971738951413974985742568273728107975305650771809672640468443459186911581439275223136050334965666523237501262299712559828131702081609092904160983254961602859926867132274394893615613176004699777381899098086682718964717065461715805195241190185572847509085982255857653066931608254244777899603318509688788224409978732422254670064655429987204865575975679467754793695025876126062594115702335218345812438635353118796935188379911465031386631763674895238726992331661858900255413995002618996145028104599218580277098560890333529939508521441325589318070471335912166001879869154331733708154280193774268635914752834514615725343366840524947271800243723180570204464010559121663374924849549256579933058556932600276121188651113574419613705859922442476437924827528324437102839087891304051531407532763641481585059072174782728798545146348638494026025308536834067662728044101807404319615268854740670470286446374401306933220327342252381808453853957564934977763324287033008587412478287982671052320748415520165227120902263815357291541816073586514936003640237020516786253248412646351698578391434315928168818770391451199130348877676134672904652549046147885104555096995267171499386419619804722721924982587874700674575355457795602276780172698378522076458932694189209775539918209312757363914038136338269528851506616129254961215097740349257665622939026112616279881393120515725661531427283048027350267279589111188648738305516063377402707977722697816128108344899673521088407059747910012475530900420016716683835307896921814235332461610370551678786889393992257716422257204060057048480334017519967134110245888881127308343130819477549942979060378234434753294093756367044907006206069027639258584247081362414731559242254884978869459466342921054688049442293910598826816639210218659368538534774795417214402867070391771916687924574494416551710089365511975751628458498184078011234714889050308692972731441714521840817601068927734842782550340740310797624413220648808680342201433257586449812791973639731562431303318932263648727504938850710104566352751653072578111682797098248084868769476781691766088608945948123835622362917485299281207599398764149089852716315766183663973833732311474316150165739882058099640010670309255871276430952144910042312450347995688638916300164959807176659270883809704389004555037923695400319744513026891984111752982577841036882817043659908749302738284876596494605540121886257859141833389857642883103567927137617709712323393660534196120202847072333959955131560168390605508019625001028794913802615351569328232848029943621271163201479387616904758039139626039832879043749754824279224960894616253385850114991774156748036257018751382696500733422727873839392953190685840224035982293556978148061261006665641672875524729418644656686421920400483543712202459034954543478115455101599240215308488819484168597158299207776618447006766397552394473522017218586024361129329863212228428574588475168967436926413634483960562693399611902498642305322149384775142609656878334750230484218737758045511031579654387917387887085924302957803969562184485193057247215504792358646401572390845232714275023643787744437828536611511288539962853188383635686926048064604241650952194632099885665902792753630727469854195039520032047542984750828610531664718414853137674156670384064262104904833655065896991631855812662027529089519644076157765525743027913970074777603577644193054394895886458391457535057720318467990674632407772238231601378256034458214947070714004725840307542198641679678565869700888107368683235627926780974098951927682363809551222371844827051056652528014081183655964910246794365935430918566917668888149980475890691681070788841677197229256499089259722827912120366033633705876986071443934351981539260040623121585215258974199785708717212821176928516650187208150393541073428464834478568583613444693687015068690034007192105823920339480067932477006780206372763518011871287102080345518506327627104913745421782229590922743841288907513413673964460229130496239815583458811885442183951523751203878013052911254881996845291498856604594988900523671936392578693561660396029348601274572566632326188644496483926798481669816584116730126965522962072057036343250363106646439547665419177530143877069084438950251132747935529945302367967623712272067134632307121593257194109059164983915222487904567442149586218121219412896248323632693512623957664507821351355786068049151666714616064910938113700083369883241136728259694359159880109662775340510848359770974601625440819640031445497290764229724857836027397459128510103987613724205707853501710147654477586441855614478010471767152709191689801229488562843617813825823245653253744321017461881897504620645277477029321340824187089528969519915073276704639652033828807560264973633895226855543359143018737249779515322054063227200629183076072369091470645852008879541561915591600483545534390686530245339742022655075064385409851588934382422866883491048695906456302005448247712984186344929551189432981504387576940708953042390481185649774100994474226710307832142836766742601481799055000490437480339319357510173876299666086045475469788420501826129016122772128445726474803773449805157156967898587987449416015879090482516323465500572831381003158690579335706360199602245856633902706852871325976791728288220518084793166647330422146041777689467326761511055184157279376276124884537607027650881161074990165019284776701230730643349183926134998239722817365302752228638298758355057634519772630137823805662957715644901512964614475552042413655015224975557673840473873971004965346335819617753451897332622111963986774300439925030394498353131372963133268837827356360990727633180141984755666653551295321429392250337815575789243985818948326761789949309223175355193727232073244434562966121035836264245269462671550692077188735782912952065107785282073445750322708331389571942985187736826435134186368916317642835179775943483332838094670974694479315597740815697320456646164189570465356941975982550608325235220458502683069331895543193304782653794656288626562790120784898580845821120477661975770390534370099583995240605165760935194664952988122480637118322158093160021330533869144097971018540582360806894368970245155678761379237041103602054214960477495074288737901426684175923912823610309831893731141890605577912644904996133017043422703981361456110294691253323210474096050335294836728887060305619063836765376083290263751547922764060895695691682681498831352843848406847407266660783282715035536794721802331507190215587178081917643583984362317317386802066822489681402104568040940960398561255481398555074317216926679241465367281346179882060111481638555521137528749963113726364335556903880111268310569344530273110227636326357884579744393485369551802063514278466422011230330343883319895816201797561607077739814699843336032350537246729100956493284897718024614360761589253471738619210913370416700217241655494296493163633223176885834455913502540730583486591484250554686548780216947105116869796910685966850849739380100907921856717745632800745929086572150097752047249354138031201424316750553138828159627810367205297630535057222146371116795178852289000500972955198870293861275240653252214511876985783599729586651733042002722695025414622068724070780005365613718278520166225111806695616393960234812375204480095628342216277290560154494655279053834572173973186678617199274650906500349899533120286708743184694055214072154370841893276894054099779140369014546938014565112365100712308051664597010850341263489296244471032731006039008818286885884481998408242107592120445601456813970462038984881606591244461200498602665251502494637580237188725566923391316779413543574816458264924242011808941702479415590078145267875704372965819835235767035342419655282916195914977971213713407435297103514960587874474058474083632296290676045609477771201955322315409853673681666538754342819206778113615058655564857037205870009821743065009456595785671402580699282533694968832263450276684809062233339308577910753736226421875004999264913485876181050940354755604879491679459069427202707139106012120302339130732183143102948265305235465423125234412277299633434438665040353527557802907994037914358861734739284422750374639683006114890205563194463835328293572878622609504035598569355773549255232895019003637490366937279487651015128870152534482584687845938627820301197863566755398354054133851912317059932064765688832407883123899151794694468849168594149061854160760603209111957715918658988643394967977679180563683247284445421301052503999052505985234868292678532196580834234831448040502914169404995027664693688730306637031670925594928598702551007401680194106211528290102842227906499517288377567129080199422864682227342315657477045200087018665196347230033850452177456527992209342359357510047416491138095598062338200921820672251920048949374723157729221523419621384218883434858631424383180345538249360281246059619535578884758101411699752595746361605710075998051839505325410572695996546317855722652796113769795139815167693482877489474493321883875163303369501977147118680452570288847823472900016711339105162424490598912328606391858833369149666496363659986358768575252299224490071159456161817460681940125090871249887707744620701210364665927909115824673883649193466803951839087425364383699772981217133582973552374477038698530160083964643188172246150474329643753189193122324160730938088114822786444934688358850565428997932696794394331710132903589722922520581247005111490927736519820768551653656084937243268877492404780612524800256227053558622440589379224615390715338054698584665686417837601858344274243738555806145823163187801262062001220964813144874800123290235329640469501204077138409010974579328728096449279003188507004759055700455382919885160851464545050922490288982530543509299116752631092848170015065664250209892656683416442411984617050568828835030010153562321146011886548685793154349193718821145665254852900791013178544060399273280377325154589183935043937196028084645259811195048980139386150723156747705822790870831254642440516561390040802113559803215803449876269135188306322992967868781086498986410314221470552054191214210332391755484497110990186606331365558357505731561712981364285484134109430881685209331067351168423271892449909751229523011414783627477653100031622732567537379431304562916395036233999370158848689682061522815743421699098924657026106465073660290024299734715086106681529080043604287911891797650612524473898092742140527258599955025820753843744407257449376506280697461793957241718715286376952584451836626813943929686355753551688297930937865969593759818930198063875686085106908021167412578335858602709217518484002005902589867848665825415748133246130314729890548829580820296844603997645295194342443817689361291653671017066130543297495920093002712285081901262490591143270684346350924408032327742768874129131365247728808049831810432000339878544451740171794663290744175272962749355101799429433090229535895778045752295934342703753909339523725029569228345527994263304964667954620263175238142109844853339624849595390654591112842961503305008891802722970199646119364610236260036940774849060417798749927596996218555685880612360073446439080279100922609644566727549488692069273658563547826073789289346462304432311285647006748354410591564148507391094468165624129948665770581035529868538535509564309782057720419927419716999357707826318829794025957940393862826770129556694475005533846300785802672387764192214908240781461819261584909042600585383116323888735770966958940702439672425499746156508854810155564557802020011956748940293651757075219597536665882850058089030436444167749165697240400793447588113421445917806577717552123737157909238266645537805640099941984226447117557649866189701754524689790610376628555106230494174433962515350957823078603661183982127899992896712869778324972808704230117884498380588505592885470718137796059338921627556390981536921833890189144021353450510911787710129399338647647457013396407374300648473266047318845438272188856687803462711239179845765155922784816847986660552547435071686723881512827369871397217572006720029758200395313868068270253927416416651485144940344165890602787814516429267613638393262028173607672729051918232083685585969715108260075039485647223016744274980020533166594209121994187507882146402375379743550999750308408703766549234270762563064418959324826966917191100023926179755977986820475450678993460860676575788054799618979270590232901553801340051558989334974393916711463903614925450591062860851031279237302139358941395983233683501134575019216343973191141520999386408326662764242700115277456072007956120700652021249707058699960820242807203887962870477448886525551789777368497180173420067011184425855256975182487069903878294856422735583549278672942060366871139566608123467711541244794738885106661725469836452305397685672393307433769090648730898731607378509750998372731674903398814719791577930209786342367822625052791995522475791163585079745795606418171697570421074047424429554840268465615225280771115439043553745814914019866557432855645472002070953358034523888360638094521027113166704055332646128230125271929133447089103664268289194780596426850106104307567391573026987521594070130459791488833011692963919355223874207377698811231800998103328502192063342738639271297890827318631317127197283966847634242173205136049467748965094867974605843009837553689113412083761761605737270874484436256421549689997869341530165361755599449898523820436595468518106029071023396242987004132395935320749110690780534942296260234052951543187572650569805398880648686585475726628548038017655863225183202892010844532012505076306083653553227272784973624252722872558601133300412160295149574514088498933559959136336063250317024764725411759008864461367855501601998502191340053401940981109708192459009846958967007907940076289631569548919697459874537173768464719044640136842651674308762818427915282464119234759968362925460358950493498204230864225347018941504591395751666385799898079799706916705081973457986500577379789794865817618169321140763360703847337419437140977874296295240853506433412030117732452188814902424872294337297478496663741263827796319777513511630383602948129196937802447876830919424847366214644353461423546135394767304351676957613209187615581099237692508934718944241557790498555016865976001900487005429764580756637956500874674658583782260831253345568559830422458353152365255035955026928535032612001460266787115079537227400306668385612632308730153720587677885952081820270184694181982745212102810540780566728421728794043558253654399178838527399787596372289447908084441911211186750587610620968138456815004603453361967860186319038065327471927673845092427162939614481649941205831393006035158308756867040056951741606064027200334963499409078019589011074201421502765429601171673347536285471577705141054449957516582393155368820620968347828794320838394833298412019754796809804836014632618723375749666628739040649956810095500109291403068247945766154349972245861497458766550073575246527704452636563804627800253399361381219862903883340382082786762310907495159761114776157880033684225555585480675185767270566723561835393335210267007777394444916093279922140060131100248311114945174137671858340310694414492220179090742463211732547119600594728526155027375676872996518674658229434467830388786774112958869484472010502691921635713243370845460826038571544471280609959667177321171820089407780399671366245784172263205119086258003021757233030444839901661990765830954835066648649913592712270698978948628089822550029579568479353598851749230254200009608453808957858340884785487185185011616469703764785736232368313006387583843305885871979760182317000281946797024089414433065056931442166103177650526230708687708124705688035562634359900269453815552648574832369159616202864493614320950354374433875322878949747224855517520859629083404885999727782180259412914783242475499094215721420872429952974351314673254500299477191973678978105744632261794953642914603763044959957216937743236400987591004273239104539091625331175451716445005862504312667294113723012777078062615674398124013903674672109892335921447313371063990451756800649774734123091425568080610526043005766000223690228079515817291274827693288661484939491956456406493486219020247117240190420662681673219885581698276219245194066670874261890661913245391819909530218273525145658944936999132767528039590463605529649212334862160399146452329699229583392676747728526967393992785703872510207343734396237019275838121453050287954961617925955654214461373611678990639216820021252623964688003705580131829494224398243384662261164561493943579735771672466309200113628561579446670043314255108164741457926669614330621503565842369954679375567497756500141225034580726165055169894580864784847276528210268696195591775897213140419150767486030066261674541521550705877684426241747791313250993605675685835510683366910266325139909600812572844816177165157967249288660033419559518598828827150611832235142720429090960272227544912689736731348561533725990243218991774263784363345936956566640631144155865484953315540790485739527246266937381428682938774628240048019205059712209791175356148839241093489212134746827011782834917543357096455096489597132849888239823362975328660596059314378718268129303665072748166625712428981182185858224267861868040231621452722282994228529596867284874685395019822085640468101439721783051531020586501361313314255527014693701302528942454624233434848356685497334065145742182103509388190420885519024256469318274250713740244713332018813268364345661654936932496383308975146213102770302683343058449473717772994432716409807992572357176035212399299632441030400210021748339024037357072463113649673239659700509432609014462780231099788296444274745298291025002481153589329237063485085571363968690392432729989782742657716494182622772719175800171256582090481841114771463205045452002794835882449390544277711665910468730213539695159534518273107109108154024429192907079087376725226878258484194336552214835455104454187271072719501134115036081528841324810893195557024935962845510673194953141537558987773271576243556283283903675758722745515663216982439264447461949510634153284502945230174132710609648672021056669317356630570142562517355471203554966833734638859393717949271214213807168737729346501705209981600247108583182719567059409257705924708525572080994624958124145442743829344726578492848486406159213385665761743992727347028841113135180161406560113838556405760186333422329286733076745369161120232593877066233353818020382104127271201936397524931777065933910742410481809675887924721313319731796784493747682126740783705049278546452105753269581253456399126644742136892281956689374395692097405011371526220360319392751308389128172579865033324119230242162725151391821648593161375173261583825301175372535750866886490460678951508038954404294577622779493304477037869983041218799887047152896633252080751317595091145901194176328011078402847747425603589712199358044269982428076776166957475418306911295681336435170152134936145754153463754007984033177466100180505191888829180839759281445240913487694284087040195515856315701239376887114819245620625268490537475482373420117722487374235030406207500748118885999482599052410312408317845841991595754487996062344571042628607860063609604562625302064003281478204016786509191738960157407613646163298683329400050790700247203209981634430010783556736284207208571097586144399331082953521191283177474574379632407831782269225695599737265043704165223436093580173277535949567800104076542160577065337994677930238757162087955911450177826782689413175514486706379774378583976965065403367627194980137108424355560809030391663022694193277571966800390057633242004436581500376273862536940940121978250197195037898879377288709141582129711811402295621827665133620585774063599799824151368426595147897654671764238531511583866061213273035752941959492497927507491377451197301291705209370118192218074612762235953457017506241376666074962313937560858109159673604284727165833092860665237397244852647436456500788278761881376181847263758933787599344319985637629424125429648580703254872735546043775151928223580329962443826039038370401197700988294916558156772021914763504402422255472492775316744440720090867447459949248300129865010736017879466195183915318909658692013027686892293760506653900652668676233500247571348111218837685674287029618822510183870922058412128348432438462361510793202581010440675036415136305257579099486261349899026458899149366155105006853944844332133690469014037633272632163714096815921845340263301062366553725894750617998212437126932270704775030726599734083380344989102798398681885756369984314309392658025889581998806778805628954894120813708687144156729376424688375960299846815033997667876901382562504830926706720901778800461365808415264505192044099374584367609449256222664842353346155729812361902104857838022129909891173277527510618656389420444041307389642274350415614700994512832732569696638139386667018169595728861213138840920895677355748674137274201332068600393382274248049295776198642245529868432157680713485377026479603783802412116449551748413601083847633906039802142549982000891907766878391130503470668721008310650049651169065541361868937107926498228052861738021521367856319402058513819577259372360167641410733554714434220092439248808373077278813937856645140713490623145436148619797489697641428036924325345320085960313497705712235067299305820781388888793960091801796691732429171764123829133787909936810208875441475184806509373043886913996175472598482467603276053755160571017068757035678223998482741922801415441815105647367623351159851488710324163872388052303352493241923845451284733650346005822266274312720884484658844627123256191793036802273297113748284328606925816589758575484995262055870917107839908070883267410518342118766137247871547196129794321385076681753705980680241343607626345402085766638414125309317506088137082725278619370880443394526574145368746808340275236435499160418104472549120048565450173702573009515488059303120155115517340645422232286426011619450756172079477897124644601722280294402866571514444912884126439577725008676400198880971609163334989957550801814053771402585893607231621076019821085095227430363703327648978474663203654422985357165441583913650308182015535968959503390678397135325071515664705914873187525856104040987672593029591999220099601549521645212503446264348924223359289890105321207637149892983518251861122385405242064433723541201695156605886615136237897131687998978675622761502831935070219181985180924499439391183731592030972805963165181567991411472924286348120421956876363015782505358682092967935678068264498234278756839083751152239895921984257128638416226224083880729175581785601352958308390443982774946154024645025655836110027455812175070280011919873737922807324391543556547903391053059436791484422994170955832490914291908437673725382711635530832447167177923136377991843482740884921726110516966496324966033074802091674102494467768058877532573657439593008190902383395444517786100809276122239123968118734550874197023367552247296333777008201456971277646703686268314327338572225547522050693075080378761425078655288083774640118306531117727008882192321338127296993825456143282371353027272866791348676243755389259960218771643254290711639051948783418428734949745076863195711545642526739649606538181527794064085058582972683571861966889714111547634082065854884659638566722362641419862076762238583541006197322533204686894192088351013289233402763896016310148575271698408070233524033753528847177892727642911989570140968062227257766780728112849653217226706728698207893642417649144646607288807913010308610891166812900070266204244818211315377491527195412395977720265313612457280884743121716870068450006909903962317754573404988853262354175639618595613629178408347758616694142145061577272583084379949397601935568915948935711044497398894455532040192431867960415276349787891478868986653852230882165941790772248502838223325376966345221411324991512701049738352607898434920924016908699609442777385139192669433501839697138743188464786789018600415995488133170685532403093032594124183340966521589445842573874057483057392626863557526978927419218975692901265019963980528345452201469370664907583099960941644546266927212163234418706804915018057008623907421537572674175128136018455612998659846964815584450472444546658845463088470217521213401086561831364755520932271855362391630809279043269382651750253661890342964385662847014637796446656342058121454054916585778509517969932280785959163664338591850620625433743683785401656844030899713759763411008087638470094969726772123821111201957846911276902946353545601108045460086745282236310370440647590554743921157656637233371955436098372176896810874728777473401110536367166639313048489515693654342303343346786761177411076884909180727123594872156171837091664262573687692168414348413195081243782304024840061404038991976228302930600454298864699130692953337047087025446363675516244290891269582265742089648251197640589979235489021922457559281468676308718496692956994081041615833944232232795647488431766495699786005480889758309413346214896055098348500479235720874790121769029900170268165557749266948187601970959634617872759509437195543213249688932315017546597633174978813580491223980450637404200061887234976793829485415503733997143328170376371941746532509275886994148773895680838935777573181197945076823276158824536126567254677087419457230680900389200581208349800158999459314036543074914893742550213278607776008650320826874432712414499205654477937985830015074369934043953728509134577473675213497696520382278542255042176531817044720674329219475010981557653352383337999577580505215003057024380653071637361015245420530422843043642440584855513068205699742085607614352755906613578479774362194452494125923351422039073801426605564645580033087027295454701240761837989520323301086449864281537373414632340066293824188016802917473400906264479282521735771192775324441520780213069659779822529076415561166450255787270839658866194479621787369060130587255528182577040731840888191085061442065021708634255503545011341789559889727763617587793393514541584933439766195695470557499916722894381129613003350812988235939151955588762014139318136795360740617538787642728144150819579779997122441192348845167650021927388208283396070874883839169912204476919789887296778030071005803529386150647638928886502713550607680019239471530969157497931569059319161803762078344084113095579685223833477931862450040769653468884144102746167333647890927142771807732102800545459873351870553651795092629770247674857601374850825703971143028990240866432410755808886328863880780884868431386929313896991411920109289273838788995611478835399022076939052229141927264137641028362078811890715553586794308807815979973150028340315028837751475195054664998754729811472854197363814772986537068926767465504958887464824664513631332122578821455291718941196413450513575193255412441947090061885617393707156265215255494103704215281078638189623262973044680412754240845495755535341157620843727668337662091227976404521510701359621989358935975314427745736672499055052063112493473277925973667639477598591301950077660866251942850403840031475934211966679111496403775106089623839210590543559452688701605885721103489690987636581825667863238395313007536201955450325320434077162949665264735732722887318382200956861025868271017917631083755220435657288064337307138762514935181960622205077629916796302321984732766144818415446556219522148345883668186700512578642438873416873613404613963512450827381258533033608465458470569105654603633449395234362178106728722188172887101508222896474711843832833158018067071511187350159531708163896474787786238406120100568361858684348800760098774897171999400017983124793062439755676275249198571600574215659443854469410068331999124958828925853702932165057959836512437172140151601725217588772036119931418516607928774427039822362622209235700428305780128179306804237447845818477932345059563375812042965038399307706930772450766288562777070518883393324579973150142222655411541811201969657688931565315653072622611159508521613298062755038430375616661329533883815171373256566197384016097342315307869390911881995053325540276583424323301065740489630974589747195007707003160345930387754125292505579657810020635216153258325455655353112923566954306280847975106618787705068589987031744713512010514546490351086739413028351804775626557863846616635818483238327815763548941547170142498662219213256013673255853577065118880313765817078857021202526194688153427792750675374849351100606714130593948828593566302582023177181488564596707109945500622951846061467328041496897689773029794884287261122935374267955888995404646067549310239492721789561152009505571480218822777454763742940765001038713316031910411284248627302459199421522910115931438556212445307983420511692057656966729683340555939183803965221917133923205423600127506252637546734677962563421779501453963118767111553337894670033178323445832136045513438502545848132009633006004436487773689721515293649983207484630497861795790200984638767968506433791759927332547545030305379916683878168139231143609595992474390749251079733857617725378301635515077623718584257459340928206239340959320395761043815531594799590342446785890477073138547758393374976715973846799162575734357667401743510886941351783540509973696060000382982597753431612770002030860745946209997164084794958639570555679661602024181584257530459030260318425078827683161533181580119343008382001432828239871977924080676608422792687036554477409027127069125580871171759430454857392229108892777825243719658806838656223242238531213987698475276668213682462404333793879084072058282776902236589739938128588616517245644548072426334391721030586117392912664538178008966335114179112728401612633451145474436681728689746644067173909770986794939549599416613590518502437880290462943845902242403555862599259599782607506779082702952266585271265190032690729715805344087167373199740038653715147191819940539885617741758754580968939726578707384932992434584884137086760189137515358974945234176566788723886283386329891085048383747718912997843951754670279255790115229001293564424184097717310060049256525494592017740588694865862296680663243909964003564376444228180528889784693790955790614697426407101143135999510205066473006196577594213290816237253896311254329128765514207660752161465731771509312778078867512684233594165237435023499054471447452371198164666632544821487088236041479999073791243623969887748903335242967087473585839308905408634980311928611737455392420307585243203150054494937858692891743929096782080001601167932669768258607206161543506388551966321830114213193584014289361544303464466759799978966210157238174567601497134250880532393870889149531340716054252794409728307551223751345920892111259224977650094001830349262178710880166321829329431658495152178709674691278144348409899450649444070416081202618272576423519417660676958469535259361219731616061373030062893751621775467925646832471947460062777513621725735769518926069993338747346888021857857678618967716511079731536333712130683500971751033010498408063641435567995848655697076750704171752080385633947545593212663791250557276979606891065033598733108653598669683653401754061682279338840209411935575959676744328921498108289213850123340748212978584549989100558257725567429861564198643365531486476435077632340149794034829047140488200784239311442377956199555143925649493264732475609576996552363884236510668736324375771133292741268163434146340448876735378586034954794684594555987902433943806612129626322399853056173826263235861457622724751817683923961599478685627038918330516608060215365370186711923063347927848938784826784967290791355969517126381973315268933870143992134589176150999135011860941718029938303671846120180482963185417570663066736200202101322829583520092909168119517486535012579841840353885830523538027618614387896552347944450928213410329969581957145896780565255810402136881928047955762004465526327599356232276681216631339751133061784137763431875950636000562985375555580557934033048166517570528910655733100054338232478018001462582538016316683960116362306699005716199339011863438629985228701970587929875423045837896373367214445016119685021973386746250277535640189674860290153677639042006887218428595235405706592614478596405824552356231424320417381888693498598715284473167688307821430137771892222084510013373511880868856766644659652751162814863721185859453811804522128192267022721461295586902948954556789296771243950063185624511813377056477601169694255674682326096692271439056437596029755462062028852050240703241613350026273955909392724093780737500251929279472238343345310744528840675970461363027599659852521671002112339051169714179341225586810566089940056312629507500102020870344175532529755142037206248022700181679139727399225647299448334623215705577483402761012670322077591373155903264539578874464291721839101120891564007565003782371903658671028241239707554337716240681598221692012408422303849145738399530006416801443453792949676281022441601323316329477026415525098813473649787184409665653385807145879344724788038278391167845952309995567294238605878099728652855593573539142659409427244704154625203508623372621195602019358163001232481862159094778797100889130373407936748907981226091544717646221094031218984439843134953363841735698939559830529318081987558706254805395351193950418059840705089141443625618181179281510883289443494851362421834748430404503895849021533520407709118667562854949206330470360859237687848543401055080393988395320693693768425024554246288152910143557982662018875611690272573102509547086976993994650734892520661089262201282340033716054854017406045647434426906317567620878383774578798135153445231621058022226068043961476947437743054978351633128066489036134977423226863754983499648933604429826050917000816121764482495035891351990437511611236190722601628265711207696061315520132130260649123700648289505378175855726659151691346704380079057107607219869171110834069225565267153321610925595746435177666786254654048439647206940946345387450174703562843773109612787122248091344288183333661532777091732722260768513869303779217385093205725862194575359480838935327892135211400817066079313799903819061281347768599426373652066684642458440304873269607968643312220848247470528528221234798232686064606272579020625208204498549892285554957198349347438977904800681935899679128855186735755021564205152137526792142248085911116760484747837476018924654124151162050321018867170091649372110405793231163032921161242019876604354720524115042820731725686218874621378164184299182345005721498888444464818949189193286261046654432626871038545607736075542994965471780894860121876001076470100502301818051939845893751974795950889932081647619233896609292093006144537394166279457780044218311005161430802160752789077707969374336212836757801476588026019777675023735779777346404079963091566155947455156072493550771803779352794357713305638280538349049338444297425203305541729633077028608410481174611615734510398498981631228952822050435927507423400300678055162625323309254811808785162596603014399225125225283150982926540903670302269585840207096897007449428259951402188554513572265604085406807043164935332822603248717162403775322185410621836162349203550369617366282867521505902552664185487614029069579341943101222386611457124840021173113025080653699037208697392870749658257128099694904076576741072436839687157330348966970038003301987807050502759149505949801333332074129497891333261890639190466769712307589841617658340114238675003892352039620270579834547428756318582159604112991249056404252849692678402011163318447897224702014532519727982556157681772608292571796247344640851290836386305688489148283840668891624745623033612032817858641678524994831235453491767538185418646185191082708712587328482920591159710838987184375280342144880544607072812701159383086664099802545792249966734820661440369142206887139454273220074335809227523528799988197732436915134455321125931867152633253516221997485492333136228227016516547061749269608871568088268975130522445209817131607133452345104539915831867725314706685887109255754324575503210308353558583935970110862416376860339623652361958382267615123634299584077053782791491126900184098447701528127714759617187798680066478501087370459597264955654588385333416238497277946391642215517976045563284046856344358689445693938255949097980977329979891884658273841546958106020444672797342757260506403465492055195394940633253523408711907757140012988890989244416937200528156901212420192862677869835261486334041341722533642857890967870669872826597574262110048311292147753662665306203948027442669397717902031190611386136922001765662302349718354062666862975140589945374214314813248474466271779137788828798464648219797500164817357211265099043465373661719123538735156925290123088086679227668235686503199947720332023397172626956953498490533084809800929773606664305786530914785679184702197737659034403494888993528456319853578888882519227206872532687294555006792048112774567679966730649574256367504033999853846040828081578881281498076712951636942712642138616440417472892496529650491076547583512940786659846544902475742596276340782824898919748488836733255156367456378979099557849024295086164141419451303881312051197498651144470240089378943007126107495743411251407084016788398267674812566387299553655167853756997000036008104074720337357588104671992770305569822166228577820863689576686842647243337050331186685299853377022249971830755088921758943670053351197933244586389576832801257712342026409963678498992202910267521244181911140551313341404635238020879832693267737173978249303247964699461278280580584413317411570634567035500797401667555517613523862933502964630622838743306342631346705709247049535909696250923237689130143996699360316047748068197769127282043021362352002291356803665510225621990117083088664034902302104151085252677031310058163905777609322364568034521412286205043859563247614364039390405285251780540908024735969197629512722055730693402350508009422661113967684457798755139242990728265802479141993456081657857959411321935364615663490827877789268486415572163510244999802658527221946069008482912231185573646517311719759652600606423259218279697757360074540684298319369498657507317751296560821170325699195258903128170139401677827696494530143888154310954716344501342755528280119977218253811557194284420043109696887811917191235767422292225461441649049102451476188851374785926070727262014431377918788847203477174116821524174534886193176104756666045705918448912812817158001840933898787543687259122751962812495688131495590108328807227643202357786679309591145540227868668060980675741859089935166475761484953821967066792821438310982974100156245027534551396950563047502630642859247218802414625993726504987543075687345714330735511051557104444795319689210929485356198782317092998296269844347748363756316758082063691185821070002280756718899058620227862156722717906039542879445644440917645574455197399643682577576344029090083183381229832305081358922878320297133859883357400726859460016797440816349993450531458473735989705358266663517525871845011453732045389606828536179008385938584099365307472236737532805789751236568953228339849527302515483284764709567117750283745376826983834108710768619936909584176088024203851030803939815699294018337377810918485171210247468333180552245897877775717274893618246968694644290595189207171638570818516010100858340668389082774166984585075934861299293800211434192810736938972389800876635570000958650138360751205941543243911562028771099821035764486594577682050889726798432258041915982236634143284947041542272333005428966797373837260880103121963131991584013759951516484354597567307668802026966216069022412821415350464011346948731804912514221687742697806514727703383929849388404944790052621475950837653877480808700449061941795193776735598515166270524689889162379825906842620297443767085897830453296670744689991895270996071262232982622687180672316893870774358661868425656070118298820404841269368490934436028948887850347062187597637697451152552640815202731871161073858752843179606734433006398071567449389840035854104353878712504101743707431530517443369256050102953545049110303701640043414707559984650012339971711709015418496752035592386194179665992376095227199169080890121918758378604373846953313528854484782376567056777820445779179318261540044432628521140580346568109598891106398964360033028002584351227840977291414577433454157524727556701163728884710658523517161401960448764506490520416113209669570511836934686309291208186628232047078693586788571902310480684610271282470934978345724178505187799824159606535012883732221450791402837666407103282503123095861856516969364926421344708514991306084574685508451893794356049499535141344941764066287553809306953888875515365408029087688550552797544413649787319076298763459865666984931580664368449846600232790148434046390888711455286657901924933628593867584337919604346429177982706612496469837590629523595471640560117249798601417168540195893371379642425555730056811268441931942359017118090506762111284059932260624112316651925935949851107768205858265279225409554243618644833044486790946655230422415118745531072763690239111836254394825265596957842401178727122700192825836493936321731426492217204956239751236498961123314180656355612549732916366973811297080959666900034525152921143776617679835657977382992347292184300165165240746552415689737985436583738096207899377146380236605514498723492171945199330325387834783126446551703673237823540138042699438019370991391319554651302884619053159318495926795175382844783999894584119528334313479735153800757098783903859980246766841041489898516786641116739522305252485397975288850044703362091593039881004829694251041287251493276534598417693349752036713929121187710631116225345062156921932165339208818532885514818572784828176564779080819257169041296213069723102651821670111674247270673635572981968217618506533703168384155968088968286135214156639160276666093954848765362506553165913634386719109446483126609560786166897805896925888529591301134808593211907741890699330438325255546646543151552007585404076929413547888044832952906355111030207901747447594803355970563548338287948441118697137475102672402923707286078146419924281176647792736253725711682778504423889599801367895761834366035278429961842823746768638104112584341749267456955797688859046552083718969178100164310544049605838584422223049306537914475948505833169388687100036005471733286379835479701464715755570710707604462624766974213087564492645336108529766290894999164423093332419830176270625460351770803759225653893481375111494699741878087259228618877279701575428200234396978766020509409605745334048405689408829950743518772519896353596975069392231610233291388316445565143440487440380858433658275392055859958586184038049037749864430182724538113356831197141018663902711819663508513838344959267348322798658870004261142959082459371597090531504477660934021704567996967965775109353646943227311727972450699048513207088236133138544038144475518532149657760659850270348028086443923804702173896420279922868593499895958249298430660642475588870854104321563814334400392496910996966931009444938925704700818261321582401106222517918425782675085832098586481655809440195523933982901297723776231729958219295258830108506420193006170292414881345474097816235646127296449165720288249694238194568126518278566166615328030572665779271100067541396006701868666918874565927803556764387715730900749809922853296946944568595620566539535181281547159861023879837081724441755591625649950994298525178511811821570831224468977307499179739889342403138329340236936054016135458251752433934692739450895531408881336577669742412947735730756460653254979744656230893379909404212744405137484213764840883772941434043538016990919575493040786631468141739953801114858147371950762430542708562046001307800892514312399910048637330784419926886101087297569503353058163038817690834340027313203199060828245867910373043844316406849097152465391378644445875691701368921598663044955351200067147852763960146405658979599905837143298957111945652680702064326010356674694083815312851549501125465388428937515202499227504787154422650652666117607551133640768363839121839326182421935051258629011753464838456151246883437514160729199470812187951995572103996765017798077485085429542470863209276469376557842965339253768054325196685233882145321206380409558194843483398310534001835370491804854030676708587017396868471208393859101094902703500229508773883609597868102878825481742753274564364362622357844873219420022930386253520546594868741666299887548862288120149041691831732711241740074599442833397791195734554910069548849070950563892867552375878147735144089923817099708933937597744846715788172098553411234045293210002746740784857196807283033797686514088160721123687861095396002448513677418607801300344893028304670177428140788407750056976373871522674044932060000971698620718659157233347852546979668180971911953378342174333143303530728916295880738693773123305027594058267345118922916911296661630475616729479854062164795778084103076953015533344252224736010766025346823281043399881251342203184016873327691839645398578584660347338693134839677678566772582554384003664942701070658806946693742631560530332056964556330600497619423374580632789441942254444933462957152145530278541155761935400783763564990899355016979119056785276923748797095386438406362802038572630048253566896862726697173267972548310236609415164855947535192599954191573564831031520568937719560357503999096059116699298872391856126930562186640628110391714159991193245378740791517905573051446280943512998474853677832543833856084047565102102766302611896282084669426975148281330125217696644394212046725203956109906508340866919357647826977576028317267440518855332586462483543353782286534013620844873827954305508056653480442750283388388767225581577960763715934160109450810060438854068788190695723855890684179172230531441461896310488193564629383997061979682890181589923531022045689142276822678431966317704876345946594060250876898536437533576096441267704783028134796999780921441532644932837745658825518127282225910918378034400447328864236805568703132631918060470992036323741253719315952956694203256263916262898665408287630740960724536764946032135300377125752935873831258235518120871953687430010241063317752253948383812139122943672043904990295202193228111921973239544588294924383157563404935830924503151470531238357749169369612414875796777442402712376638009628235593681872438823646432458570550603289164201452711324812482539957368403048380390152499572188141160032756245600849747519850008831578224665001360451582906195024318859332030309308352719917779949896701318660417543704291260053756764509704675435894206473511369321736450913873908436677163247415389339325931493736919850756908441727166928811881336888043710542946048552675937103179939550410944425285464637534373672399770830024283340952201119215291891760001005082463039783396258750829581260878220691595242920842778991109127199493646608182986460929803395200603439861637918447320712586536276839460949810028179429155889600844840979251916210983949808800446214819551437076161500244348917717491896050359549554171251490570594159442980621318701739976457539235104512303689595585806557651958067303837751340809211202913192223905491496406593045897598116097297926231246816357473914915872224982415683429501624288661978538179184471331940189783059661688855149279194767775019717029337428747061719805412740066536147035736682638630627089528257524251271967493579806699777854144671146737277479259254252297179867594768436388748673852593024668457269930585339168791016257673690464955667706791701781644679286036175120570858730522050067419179147928822707355022873919800669027853414078795043509020369961871714813290091973112370416832528674560651692729375635814638336305826652747516958866060548469686140227033188783741020028093775279692016835624077725521028978203724481101377489521955344916918315432639410384178511795497204123854624366863546652478158627409862242089524874593756560614518189876178061441534128011694115359146082139002339590547808288513022542848129793457616889380440251584443543564946752212713814147790640333075111273040591059026188590748667999756921264445390106622694765034002584167395655675352450111479472690231806711856028072506571508565660508304518256371208620076286899136337741808717297964247796242185963715005240259999066766857020358372346041025932816596368814823578150462967239923735879995007254073422821081296347513752274219296988133797072578651015397932514420996516625138344179218154281229915256519687548092380457906282939715719567744428823454870211729186711098450249753179420289674972105215957766227671295944220095632558109725869895212537005195597699642851919639400234103873320281065385889705961155004308622074228602917956876948907502462704467320235422996218852779020801008623069707902481928979060166033588526733910789417758404856398179392175643658867593790233587811297140519395502436768217868510162131463917383010568049289895383377505185917619278438156242606653595884491405911946508403295105761769572082344875274854292329468902486174176310118015364557884068242943313244510383843853278304367079637928228498805136538634087171154442143631744851869523124155360267820629179297108468191609298427446843154335912568996881874212998027094842762202593842341853241523542432845524229336780463599305943273946113783197445326712337643587596675481222674485149156261944586738602866782967810952971856067310756171375365057033156295066082926738059700472464153139926562815181702037152937303769334026183494814081889144484149199083560122860891855862853867884794268813145825123891102727944065611695357039109714040964535995992659817066337127888756185327798129383898578276806897126602689195912098118654333194200395881619117212775205281032704020428912992507285949101932048936351638791995028298105925071230072895205268656929201102948310129382083731446098798876553577457296903844063177193600104671974304005853375091399212397724100348905502721025946421652458067734616327063668912903211830404877226548241414767076331246274409070784178385004628899684681242272346238557689311640370301152877346663710788235824214154054508555547742454685211534169518461495718845736138533147781620698446422260216251281262433069970451500747600003071069179343650843798476772426636921178956797913006654738447448097635441079835574369106321895956567514077781197756156030636913853023062197701145569880165329332261576262487835226398064241618615592040178292089144689658411165258992115419925953828049391697297432690249116721339520624227732507654858584464585745948538492929615686790823649291552551308321847629199783355589005206136268792622901402887385453922954827117356567796893345663355419612332718859849466759502960903179583957056558266531329740329067845637461997733868790291936626388735434562169294103838358178899036014211594733314262454893557038713024653694305486967443841857486504546486557782414789082565049750145262984124963194576206973564098814932425137286244037581195036696491727604891245009461126230675039052230594125961088654010021720712933926902466176367557503545153041893617741812661779246283322471120902222924465524300699488622473463843329857871986646589892649800042891205313729287841563802204638131940689944039952429343813660472280292861779334701126089600295586877997863971278449758899354891578295748771063522824838559813598658296374814326887001947194232955267188235635252737567300883906776834460922129334545660333160170041485352112820369074213893125978184960286621641509779675709345339575203372961523926632428080831473383544387198599246196953224323373239712093617431967713972580251809605264709243447788153959610244610998675225193722093613604022791045977082532736756590505082865348828520199577328943378486632093009898862831309884775345964556248052203920257185735088536873951883479332296010657707159498613885492257794910799381981013789476017499125147483248421805235652237566439341647914806660581644732183671090076000260213999952963005015229675867401923226783347848025363219791083935554242827727255394858175384119428313960937245521085434079570456651827909910149823540238530401120221661536359194202465629854794066045692937591008196647699652798421730155659993007288415014814448463407270095011848741994608174169702594051600546695697578518868278841114885061777585309960145935207474843959044745324630473950713981785210944604013686289757881958257622729077886348301473970421533322965563082271719006499344663812303968909775428491358667339681136648138092084609977089762856411179106385732339569209030404485249266829280360598313834451469173740142388257825804529979733827059241696837913841956131158046215632533703228311692538406445942186146398587004368179552992399194585083780813880377776629916189455846928515095931948843452335283503294027936237867720676268744441384399501518588582016599146746638212080956127932174731717784236240398416162765304413756024369277384191672037763143936768051248197776246526744990932080229725466424041231749357659460092607712723754827999268881981374135358118450801666668244914529386032221077573850481175163694091346376575710247258903983701092730426776363613745310448523334831828206989714202461117918016834746757421817865061437905690316743789967305073050767701338386447544976834863119211770508167156524751192996091680005929378933243737793338846981926229170793974657499049473621250354087663143556212936708575358592545341295193081473747207593135605510226107069206436625305391730473145816782451089916513532848150430146639246699889310614040425469406908222960443134365044968767419689180397174704602861435849798430875965423313454400040751610900782673268069080879518069540891225470383582270734451214830746180627890140601581691949350496313897973191275126041700667263662260386695570898237208148436146819347227779836653805941984465867628630829270348001567146282971101109613772285818013144892461642916197381601030903546328857339497966135077496261215026168771082253740460329023802664531723433072797696471334294538570778651515117285086142355128603125343539400839241321927215536643225801140100678377850851534665324123434241228243635763949322852211271656572905655198952785787368950507802759716275541025336360297207213119751821719498120171807385349803182589367433030839523435873752214064627775696817365876775042222066243826264893039045216703750516814890713464916351265009636421563341995210666578460047915069715575012976397836491541448277166865673921157894884312385549078758801096432324071062481699912449212954116765485278773162167106234288832433541965489624065100017695328628313671300892846988054791548368161617803400500003374264989006028296011467605975655508125441194232555902114902764259463319069814793468387953423667730569985308504964011978337794175505943639697350977465172128639218670410156417811968540237642196684459260214623992338147945425818738910333083213085696532632237598311561010072421692493103820159208555285850448751063097976666750243431272705173097895980770522483661824799363500935804854160130178721598223472944240299860431584169432741148360805037769041009412200888934600276845561462228938061902056003443922302725064522995735584651220849732461628080872300068663361683437741160184649114935737822146735334770615461702177307592452820604789028767305358600376576179281672373194464348549542737899005962566458736222777256679340814153402216685991358500049484778583360831167148260909345605103293445393540231967106770213095428099422262258024823273570914275037387501183423652661886893055225731954236178939022202215702534005661064286559771548217755230203633334993217273578900986422935801386083289108615349330388031960850732193295363691294427202968132682248568257258959042976787335188742216931754689903684065218010507492614872457794474549958242094825748246277385966617644795997068931253937163539108649047791832836625096511117981130984943335408524605288166360455696512139415885090522490452063513008477525834945025626535285727427322910370672809495532424162704917655651684415985798292720292600870177069697671963903232944230984584521625147344652858547605500873700449592583667924511494094707046539405471275812033730268465103637222858258637198324008839859456304303926200154315191275649175389920706480717639675890907461423807107586430464485774565689360049603115727097231601619150790611571492628879884413603129719069202403693037492745318762840140451600950027071384132622338272472965607806733100390989864502806662839040573686869240645663373915763281958824908780829604349429269885928623370317954700188656507523138377671717634526316940242957578070573363977023544596415943607935999193963834614820149448291258216850906398154300679844619471198671272642532635718163073611886400316681476919540508986871873054496036205195373493731358732632039023281597598012138241156045488795382823815633641237185944894479713866531328306437096928459054081771099028688500478429698868090867983837141516642002121104185913218020876294758132811708009996136185393338690100947774399849799095740142530068773575324477330947509371087010822608445425631239223617876117188901789501043165569350537842930019902557118191428526552852069786129483056660484665427777285136351159057115437541175801735200345233239603541319266481893086631172690652364955877239668538328101509030513102052737218309642457687987451766631691364446551921611797357488051058281596987608795753985552582243810718820661487424438493652907206969977597374078101663736110273708722467341316024551397415519822433469929487795567908017811123576555968915818888564663432084641399910486846814222581546297246265294247950955204527837806504200435487254249121280226325125441267153645257566224942748722877422926825259012111275119425914366724684854911338882347313742872890797684898397121013256154129530494335840534182903017788482526981816966644559155780296849602430037782884603467944175169427097884868153295055227366439564438107145585290532809086446356925639064528354541240361771579784364877704478158208645871252569250944990277090381832383155752054321964962022137570957066596881107174986032603891464257710043681369939371057074312677724825372015755733621651790411602032146412757918388297290530712837254976089099275582593192610935619196022555549838791937781011337023349339951624428007489603270685908511825574207215898448304869809780381727365424312401139798984643456657645936602610255570241879734599786484819771609005706203893478143715989786518259823156497064487998456366101543650419304620524448283287884945967552431933201312456975816068048748283994822248271463617450955069395350984608859621391655115437502041154526759191497055875500831859997448827336712041726444487988895540343565344486807246233335041106823186423714097571698210457709662830531311692864192682439177912388810373843472604166635985005977053657683386473275126081146741946578451997203763301271143232133483348102369428542626035478336440701783819053932903561073250336568215881993916274823881011574107550254060468151730475229152417537279150392967785862696621838437971109809279135637844819136957926080729111564693696285422117922811654025390467649056748592198553927909588077440104719676869988880284674447271443124326315103566460006141305198859462740464574075010214845244452881706618732956337224680437925720665510422225097107574971625111849438959809390475361643653318932693080019773110195520657573036060681757145460954430718985836371591891878509368443995052750519453770862991931916356539817596771407623349232747394187763342325321751586170787479405020511764697392343632626973152433460638286782488119356605929166541113748510691189517368430978032273577303346026642607075974252115332993365117385987249803080881630418229393042258622073928128093707247041164918561249581867123689093834820742488280784954592923444111465494251308776164357788030025322212816982391835273353470934830564161741492702951685944387211351327099383355592935135346443151358412049720686354750480756090395759702858255092256010304995827894057193822300263229350355311597534182626816698198604601929935718087980927938406450241509951709508259385183735952205445452299378976438383763639850677333945477551387994178685563565615847783556896638570918203832813072670243396541763814021853713621773222618930204398146769754309436873886781872327724494179583955679460036188709193982573391195899245108481303120372595823232135779061190184020718668453975924208457261814857002853403916485813311498333598979979618031059715049574525394885451431388058261541971182904654711051050004225884571742175505535931691038231384062946662684774556206990917538216530603429806123231510579896338749500662547461368989678068270761348084368617972050411013502551035595169909814375779130171032800587180417433664640973529854436250213316680909651503906419195055960560155908395150778205041042260223004084773634548643295100820421200788466811669584287395240040033886196773346863623891720940676648402929323317468317804729409510529924384717633062696056939611884056727175413442573150526794956479173860047809074064789084484264207219302889131086366342919277795429149664996754085068927309837842087830117577325964498489155493973555800169184603692641086843463170265194589208556095662652748979180381680339856675000751895451504754083300372032536811457040583049868713378738885144644703003850340292066745273857365036705007055358712827920611537464362125554952052063218541355997891729379578688403029002238536957946354464447165649248408907885783958514066400050710242631974898199386041481552699476883510869908088275913240321597896547074074456491166655644295216313235840757535251423271061617843886918745534768708247299865167198176232534187876073533160351095416994519103975160895646368695565918783452861374524020045370528783266968306118309384396737191563131188255464609993681012759604416607284395730982726552229414455205891953433612108767302513531857648215541117335054282042238509526874251639458138801376173124989216594123749676124074655444461039580138525823496748548972384031037444001983132197330952365371155998015422479297347373043836936848835739246480591603488645698041869815393217112680326465825657680924771765058884938474428126785430293457608841970480511684065927808368606840651457015168252830612747852052111875205256053853893565101705699354193488456790020065723630739144360389518760465078530742604072755495060567201063233859469675954692850285153146717701347527390302888946008380752774872928719310758786422203833885753121416049712042476096202671736585072859558896911046070633907702537254904068601928376481251319101476648550610705368622888716650270020335594369207144273218402978282558197249098904344823616939474184178628588318609924823751769633348481815734429021528619759361518504590205046353121758278997633807326258911817575381955097683234008888886197064358599392849617715762252633908604058539829550277240167352371383098945587830435079692857327989167792358438025900476103234738211045520354032393099352273368412209823908047526891107338216346513627524119291549054166767034840010342920982018346158420407399603406142461387794624848949806326491302397540879074854259739065314353740006831372481606539176818739048016705681789178400789257706186007572788064513479248438513882441104894215191813871506575757184416178793531526100707312770789757034961171362038008121621584590117721826655736973755966918906860105504529408343594512263596875614813020366168347405261418750260926775343638674014534013960676560951853560688690125662713117588920400949266624412501036590888474527565921758671062504755065975147503713985518996451525573161001640212039945316570708680225729958425577506814542058840567776516781961385175112741374233212681804193520168847029207061311622258862088469286818363707386297188934976449271795816361611423788419140892723169658718685728469534548468388277909970559117485989582089012725435722460458368936489950321767477970870601473896293982273466685959255407799578257483147772906828737006183393071008936675682622257148633937101859693277160558258230641590856436074861109000162443713658313779337784969717534287178947498711845746800580124779834042925239161339163710322829338760598084856083075077824732522356159734952334222672684924875645102226018034445578303291836310326066541254935340829695224850270161933071033010882241316423188084720076684991758349727048415008647203325498267746264459982151306888532419805292737754691324348052594392862557040353349370311294134106220506363528145270437813475306895996881363785539400271067299844983276593266787634919532692819516892092769751286610206670442882354021307004904283006217656496203278403930333195968316944561607917466350576254637967744344240643931716254144646046950555925237882705120927251664158572709032666905613359234054132625487327016468748008618488859298415585704227404125118886344194291568016694752358904403434684942137495230369240943621204041588431334456479374245293115285137423016088010509731232598419780613676145346304190651975877654811874804324772365098193967234728076108153326864739924899094177477404822778157470771095284191273841462755644291334112121243905257799918021219523361810729219878824465672335902287062953309024374673394107421545547666073459079204841609404080497192605017850517983570725103088528724203402424097966266744942964439804439244831368541148856755707060238111141049166714427224975890044703493310362920350512900489658346659516896520164877045466493161474741184381443604099340460820017989387108511238799232334955820893324405240305677164479198554074538398463172534911202582536686259529308268016012388216630401473701351980414152731735082250958619636589890836376250167741643706450364295502938810844173170489992209701733454205987281176241167878774675879545924102745043075390638806725235765391723724415542025911771971199868071151194869552202219881355168079002268468425003418357383854425256855178811555048337455446292935319528829419788986375273370587521512965374222588776685402143927924291706861487001356870612053042581837606599255706378364974732472045818070899225588647204946182127677140713865667494585085022209228954712801857563343235543273359344049599635908328908445847905548884490525892683075489476214524759795763863418985919615876612911119996861809233387948365607061516184513520446444619109308105250734346322560226101079081886285914548529142568192877019328383232980047304509174804996342435984459468264404700785701069972779845101051796387236582552101586951754547073019113393425194216813083101190271439635383967615167221724332714472769854990122170524660317658913796133840598710563389691585744514726393772962430182874859348891784370404556276183988679429749971235573141762722124701677189600609322188850642212470636673542857673726681388246960527049482242286296381501233765784351377855323269742026926807436711468416743226251330279371499432440797371640724101786370803716326619308230309360085846288827021447406816127459202129643467901037494913656430978442978507523000671068350594067734454269426799211631687641827655382049571577246682630116419904446403275341279101242643495173024297416754274658763757705172309628534321516125428386454332213726515028444762730408083046814535683171916500514772768581351596550288635618710402551108814698322115488659009702524817701654799438888131161595325824461957046035390709577158541102287682307654660718684945680862115777155153467193412761105065775018804399292113149707222989262913286984752429702776284761680554015517742120050777273568578818622192477490956823714046797185347754820946979054825524620377008970275711650122584821105267026091984578088108299648596617941457467616139815462151514045078980632478170677442361709233359812048043797159138308243521468298761610713919500768277216939837300777402155433973893166759104740023145432802662667572428428565236873132951760242118820691644841774914849491973563961900440656430980941404654002091137277744252497819296128958959078265219229028818703846802805688006205763932217996135360000437345849599291405964570804063253678490603103040508701172300936821920030392951311670759245209828949743747678179670509529029385441224233183661506449660982778296788051500217728285574452488511637239716367581723175768189633301654432788925183149391843010548484368642060594604687425398206574567497304340219484737468170956833863726292642946423953294453450289786837078338426198278145444277809799167487344605508234643966844786652049113861124359971441311640713391839207476308883368615324550614302194461940802871290304037110569765662320941986353464278299468452370586185196363944306993638828232166740646282964230297477421144335743339597279989860899809567918483265159832459966215900399693096130642335647881788121482224373540100022352493914533405644866074797195364950919604570393798028340714857514994082815946829752560612416684345473965854050271994555186623764530828439676103714879973142787985888573414354317295367763150987514934371649805481691425384183727194947886184402689639130950833608008644933268177031731544512867860163923582950239296314782598694119311173650459913462009381503410365889151516169274246852505878173196908313834393916451652052969567795188534899578487087761462133173362835940827109511763639087455326573702053977074648713445741229186775000646346569984200803968869031951684281736012968260834103767852050631672367419848960962381628482866796980542864493819523012941552086793724798103432596045179984549982763732095538259522909005982511294730287263609065502222422762056372182661751447779929175662148671282804215210912858195893241056455390432693863071729074986632490495371585582791588178505822939320331133994471521948307267093423341240804349315273360783851346619158310148076037601986658107111938994940995051800689513753506366673712852447308711673439654927108623309504822705977265171620918024793718535233356402395473083608064187399782992374094972880184740415328155564382170182991383519214123845775791350599580172899838550463596347528760715296133832118188634340925964746956046007558260377429636431141433957513197033387898751002961005708287529965665939703660908850683888407498375877122719439382719289892147747416466392727912207535650122310838734933965545542912732097555173800199672069349217086732435043457052546837772346766689155367475461393808467857107267867734189763351774065474560151279201032963268586118232983473626857831827328838679466021838140496917041835112282627188042524485331131363927237861651507729531022341210991356918065388485417979661716245940189644132346085621058898193325177437551812831475343381025355864997283772762858392992233850285418637975496520475478686197399685619645525323104103434326794758394027963964898865007747322358324011487645392590784999084276244209741250661806687922404304501327509135271576091434523708876137352619730432651236779757938951685093629037965549517589978282724064068796842810037531975851682184872242895897279994976487463714656032331228442157983742761140828043532932780394060114073145777872729869320257642522916558118277696483135801855981946452097646450974542105460844013884062118237570427900510726515814080693732453742024393515754577481732717950285277046654799469326586062218642892898466811711630079600382705878946244692333783021935745510765877415894154464031544428984983847464646237288382073253978898477591020254723078717027291057870755971876891652729929272724958628488040574843828325559247045927754540719873762901132845678145355141570599154891628624006357636450192100002917579567019786953855939052098100648456628695797225172399956378870617603147193532329064974548347113280526875727036647690915650078591058166844605940050359955150336902904366577648074715148829448530475350280880681557577413611075811648169736251578027334877623218418251489893279653460613096940259975247580258113256396410216593764600605597049621633344438575837864648617757137037725810025763405411185130815739464548140668873187146071387471919915558576634956606601054482527830280036643242632693687112650803463505415217627093780828432136502122482019846265982875918674777833226456354042997215077539195764045289730005607545984072832726998273304307126927201111124448604911726381994786834895259430649545975865894258210569522797075199233142259513955116296358632299226733909970636291567052807462882563692675741680128869801657484541413213183328541332899549066221604925567938563711188956653467714372693968382679627622688696894337712208596331234540783562820851567272553259777529468099136976138300295582450797597061359063778406829370881720757607154981159504537679236409971522425386311610042119825464403976090484417716044647139281136930304398472457225907458684051030808901311622776501776203890292401770587763534655380099949967210176686856204480114284073713927458073242886791932139086603708113956845763385978926826089748999626684182135930459831138377997597401188100982102985375636880524983103537790083729321086818936408104688242354726494375988828498851567715088096579466088861603550072278604637287675470407327520499971005493913045787663255664637240891579422510755746121355368182009274140057555447471353163751249295023307702361654331391202981632562496197357609703524400259104817685764456031474856144410015182597879574728667957343176817005706628675539840143170142019223417281603327920017907171490715882689789673049883355599464050322880603972590587517519200161624191273741464329090955587253460283834493668626469849728579321277374410940401634532355040699553858581177150864306126144043735318306087376819110950201694249305506733098928630198220742354439531966444175255506485935799673017925025000649277942615591716741397619779114207419759041873219578521779788327666816524403396288350736197680910825999849138366250131784817950166358132497759863792568061844849903763479221571262040863660802320912169818665550793105589369549569317146971904843397471061770090550641250974366537569048123029017417760297259055774565766081772595451186664836776897282545099354705842455149924271949942206067181645031789203749474226532956310388407830564290603848236666476786004719505524927083580462997118923773187294081480968237321946628963672742039530716203705241561086211952285227336631425429988191327860184213743598876349772889006359000014957156941607901551043996175451120169302601933399436023589285739627370034734319301670501344710573454736340865090161228852129655456477217759907447074380443961744968175105389126269029606493825150699769672393536509308390468358430994358930638219642898991032533883489644568946205218478800737107518086427485832004647331719112997970208746156117084183969865297698638273419529923095080566779196536917220709446893805180098209159294947716429545561399768023142304612892898450744819845563789383028809764236434556306607697065864853646952964456954569806169923915495040326719647339483801098465173221606270626791890456051766126874781771105426149406862025935964461556087052965538546960388990707442438703314275533439299333620978286648777469794452633457965893396587322742404691009628281054282486723975498102767947292177019485199474211512526149310735581378829940799724809782937788681076797385307149603623016653239313982279106714198747003880690177754483040803393598604200290645920761839696054453257766726506108461957165665949476374363739799451426289511444232277122415201165488576354304628953650335730693277667520591701903080481142638957130430038635446050395875096490960387956200673741285421047249223853724238198372733306038631456638852327839211526269789745784992059795354444943803448299893365773593758416735157170974822356595163788122534369574413463121360349768015077435333985688589198663385386655205395502628041407707498720681201065713394945782568230469118976444117121472183355700132508560863394133218756332142806450268468917849135016661665542811214359987627192511763430062600162822133908671673272389745276632647351077737169606552224017588577842879133356099471194216489918693235666022806041605927778213573252855081029048159959141147467946908792131696797983815372619068087287174777584667450566721192225006013376538654478655508224553010366523515539235415311876485162585897302613119098465635875017546551129440473452853701827705311399426169595595490411993686776595424171218280586329894017823185896282708269179797804759627660667759065585123125721067748942407671032897385897235666883844700601482935617839217398993093314965515335294177204345228257999315958073644321187727725635236831868752753417582413921396602598246189973395040693391296681179193364488303399311132528829832143765598430889866523692876184646971916241351770673039941096320577290537488506243924902446713539446032765530731658917785850045584528685449782055490670203332605977946776113461713562369759548342206016519558445140256504489335381560200727591210347117232532773523025759263895674775903976193946837728487532591900059987059907133684481656889581317419491746206131340439561699472257019467633419489600161080895662323022689728464820609008199161587698367522175540533612362708482400098990665492747611068134981176446412825280069352130950099224524422905830489674753519855638074263238635412719429612089484738235239572079898425762383527906669532190330212996467038186608107045946399598107385416992829544558501923021347316752831042613961344832340740390154926244799106710568724490450212094597167980828386538635151504074108011820377606408656391023031687177749800794933112749218906150835625231627093896435281046785383125890572988287207884743886133692927068852026732158784328589332628439793235474502876193094131311963038441666302231909112536971440932748430433738901124282190082040976332973456198778961636825392755217414092263685372799528662775304068399687332831956324890925985954691745110894566037884803586450835361432675963952718193836181888133288988686294891346101520733873725043445723268399364019156460103152383747787849341805363723259675169570722929957524885871281486278701465018536583488300498589039645708098860976898199668777693339505325066709683849203687029073720838490007065179738325996057488126486667736314115650237656925658289360479967589856871814640018148005781011858283588485913926305815180189043187584971522819133546341235484345196140119881121951401164116420831343687041060771635914106483030310430916913149292810737548245027295803571639644031398579929051586993045241909029057784026145766014902718308408251956729720279175959494455365199252651125044125353636308367652480243675322484070570823937316783119006957788115593705845978713437472299624885547329222755304771135233732788568834256120802647701098216408970737088311159633919054364180113376916921601590653054256223038784186859432115062663782608305454232826999580167440338373050835473682918749325988045858976916414231593730346715576049288341168489541111207420326760212247911238171478074444846161581560688145257430944722332043852641143989398976110965432211578663070008885097798350327692071842673721838261996498477990301837632799432006369285142953748686547512837837614934686044584657471260148651308839119560636775053159352997005744753284980456784054942021134754095233313236709625231506107867292348610916224941349776456947506961415774340732929679148455002816762438141193731103474639750540957895894828842927904042300068900459941947595182197557973122826231409942352038808819484261568209114514992539650706365509329556644310656513648082355317635750508862502105628608720806905518996293574886998450351221645292615749741300172831904782326797628370713836844604352291431527947497016472430049698465604566534323832485938660451926435108755361628537241375580116945997178031308468275571416341772462315652250402829240765695900769617108895172289754106417952369484332847404055137267150524642866713644154488050286875223194514976165962869770193714975252171396534110636785781785831529342933328316794846784622694787695291023816988711850986824135439740984438078224588180121311899521693543500834298519712723518936357498638364917050379573842182826913226273477923437018232740854424002045263903808590982644744913671544349677127243703578074433133362487330316912938460520916316983257345533756933327087713285470944811400968564502176874919368689344162628372747843127627214369002704678540483928846116514626191582092895774613082908247290454181607672430404847355935557799671252099926135472367759851646529942316136658143392545886389152931777638140539482601723219426848658679884462324628026103403218202617152390522714379793769472199652166157446412937130985049387507770286915491009093148809062170537894096243260440125410542524854091028267523705117869771962119481796400517077470012838605636246909150044652256796863176699909601909592438625536981162300666035977486414029483611834596455714189954539199854568122299188836176453311461728994513286503895648360895783111061877942727662129403883846777471777382555729697642402476659140585140979374920089005163409859706304095202295774670537499054327611170650570712376242512192350533421078863460458749403515346062661907568441502718675422027061187715418446329089391567226594380194125020444151304869601925277079339459551020893847994840445735847854476109309702356770307133824585962264304654297393790650335679084406087897340066024140826199406603929969367424032815468254374923734755750544570824179480754357165226307210150720495991798673280833638356208079969380818919860089700317780331888957589985959116449916084378077476012781789607162324395940679229506118303770821090836268169131171053218121584459137481616926699647910408542436371911915624006478663725766273449021227909386789593682594756319950099706343859621839776545865492524566024041395228532230199837797278684870487956011934157783410467271065098022012015100494346002513316624044592720176361805552437198640179924227384130435009706565377181310465347627414763286424918501621806040936171001467608120282395526264791637782229162748110296759981982522626995071700245877365599549174066046699843543821820962005050828963655492676439009215057133107104136408536009572356208997159031745068011538415803585254321442294477455613085624279247916480412737545553336916656868474114245265831586306828790973320943168110990943881013633344071923868521017756921503752744484603844750614378724856706797406370853856599136567554900676104058832578701668540062991857835671336068332282346251723770369877737036718290362832046503513744106824913924979324970736042439464403867395557695949160048942598659677677118872085153972830485352720693530210528104187141279016594782677671583266086497906323301061716337313307916959789199446669736358042010609769407638800168238937149575295853671824599730983567739843134375933906826104047682737949835982462751722456030032495070127517307539545664430798043217538405699022844951093268611997608811816336857302192826142700309183950375517893735233907611082216694876585293145331452630238110034047843028286093273067652738280993207383149632416465755820601739926422843535859893629464444526841687087401969889976808268171351025551673297522335846020240005110763381253395259982327859450267305798294350529992520695081044178889508339332222338540747485094948997033295035553149370151804302228304614970638491624644275138138876483021873686091420728268592983469554977874798637292899718215978851770570477396981291168295201943433437616237903623791371653061382711517309710803871194770425622621619572309925768870975810509050547799739039620080110035175551753381604875152411810044937988175851028060362952328324826433964025017468441567512658838760592422382995665019911787996337457174334776990008980608830237190740530298823840683915852009734832000992132530828282570813606023327402928219268410997307307639796981676757047427597201814400838748853708272118053601325663132397006710328682250200899246197013552374842075285099501981613125262498405140889842858454443987673445006438705741652145590900247620483751269979411559871529854865835504641237080651880297541605841256386786797591915333180359910769652289193748861035755246877174494295375675770755047913779514081619959195706405079577475544162470743571069041865656322167426895168749207812515832749513375892092227031066124235334647040072273963902714430443558989108058840082751544734950298905509365070688021115348757019423889805290713782248296792039703243392669955168023640179983366001434726267240199805574616493931996884511549192706158315253858420881267275146470085673816578820196047813115408537851901962567992569205103415696591967409765146364688032994308258724352014916907669459400300477024379997338079628637402071473499975845763889977236068837431167690374912934097679660308830696195231993305636056113414207092889392534367523206012725625020303575253116643705039817810684019658079793129508036226697572903327034316126380224528763708616041089690425481204033543112131703080938826450440285018868106581950613810650625461585529909767902581935659528109994582254897655904132582189314868912647377170113428514452156207672746338647754980796995599985284731559796896093365708170563268103513418607988736748463566412047469442392111886194457206687428420683266574975871505828753596531331079930307146811219206244566829688835281842521641724630690294667848732581663228719744951840294888346482902392000113181285890767268947021626852541245024921677071700905622774975370144786571348106159234898823548222285319934269486489198686848235927779027894667786523025434086602236638005146002087407996599991881279975849437201432719687749457976420552823221534306861309169086233964545247650390459549103698690191845671201580843694729290118852560329199270917328821560256465379579796153201057987313824065697378789897147423490094221677363275770347449719937982871704936785984692128351325801551303204526586392959053949263451095974407386948483049940991766908695685372486323622789335146070456953954309513531350685994757649216734665145758014584400096248480346310892245240457497101592464853164524203486310278846707107697619093074213282842858999050300851490676830858412346243300197776844404366283680098647184415240860158629778299556033213071275409875428488166986225255839223287000038606531324092538302776532051389467606254422095670912232659890512847986491818572692561673918323871746800997868503249323482737209693631980961050748819773683942823349170753972526342730896268842561870455930785554271691288881937503161944073340288087969726050583618915081754678402813621508504424327789422598223518925015355729278296071203229399207473759346427284512625945748840892560035573834994887745498860432686025289686885980018897795470583635606589186143370160042247592965711410789900913408304849043341731742090847931040559251341415227342590754887141625036127067867819555082169193914341801045386822980287439966379891871604497566735290186756325678724740879605460922766769447612763572293537212815664926405125488107556176324265310054444663292539616068914749787902697114428039133797122771309315728048560795330696304715213855646910372274365909230048243117119145863922666801995238967219326459791739458855228830582490210473701248907752647458464819075225805684409317185674474062081535259124741032429974310993886949742605269988531794351305261318231252482882068863341571919932198280569802054541309342696215860290253505145323681192041599459793871134830154467952353373225005627277521115786945114177266303780902276725956273146296605420546685986422680127521599298901828278802708718898485959609622380360923369711063618401030932585072637469227916425651185071687560980025617426725827689496123387354386280333150299873318800379770120750258023257332682997692594024635403438831170138102765968968724504670351037747520191092009265395474428243087059259740267797389763260241439070376347957363585090820772387867081571782995495984403121789643616175718630463834560553746867547557163409943371031706701999249120658414847678184224232530223089947368161236097817720767681774193937841429862666236148125665197641490347191197936800627031430581458726764549576403410645391017732314784790716386974358160221140273490730801096856062778337532323713953641850785626281813162670370299395227405034758572963564961644236102043747205115529675148022278163022741843570173545989904833023974291393980109205468556914736858813370165012668262981561807997528167574029557824522940497259407169600295040479863851939633256451694822877349780859322619923495076511991523434109421475920395438193406198177514204485898281691489924867434199692022629062378822728432142406473275460288445753967540189915849912281348167098904674291906202156382324839401239936247085662947015018565078990354219620237795442741191895320653138583044176372635167837355456608659224162344469895619519402009085680121858172745955922387062251580011447559385846808606920344993545556408680343971667005912633299315524794234960174886948741123395194657092236477113776974355064287837138824298474617638774795036697956308316274809278954196349093969473372661659856783184443324079474884827880502547038609488373860189534119084271747912291071531198883054640897331395810701391610044746959879149753589725319920479919851432134673363780799609349915701000264513574818246384556339198733798698819083575671368382010221200526329492065241652962881001476782889851223097282349187295018245180879805600388459567151064699094261383332292048759297972448088650402943434286400238321819164110250807604078557350743930695040311895113036166808773291134778936587903854974944023844114942160447741022632367501235578283851867230378410655995886192003744178743647378391829678206544328231798803643080639496766386507701135881793982486170995115111004558805968523000982372070903603165133712083077151789387554587990395758855189222009381112722236875879035914630297366140162859558513568060493686031231251366829905640657575044248807139031160060806417963448004388614836918001252385354302468504273199293403332406122991296723085897393605468077844632553125197682713276693258836406374121588823098115975817331367655783405198451077055116814018990953792335760311876233642113805815314560207299456513111145366922849756612839486928550426944267081023586071610246532144216991799146639008076262136495519979364721272114322901290704219161455046624452991391706433412597625973771082780697555119090532634020021061508628605994139121621796246091735180697141760304524935776723674561945634012356662707320694458267864886192329226697338001238008082716502697335586680644536410577542281469008723545440097010366814962260002014718179820267190842703333376342475320112327316129492326333031236153021361730489754113704874375345013992825337161358240007772127937689299490437269552702906473063592835230133681601134095875873241418377068031413331918238904173466087058247888463799633903162352044542552898678850850305575930029664927463294534642248431639558328873958304610796373569020740114374542857559126481360629219212921112386260553328379183308698923215930290368823562127975832766481194829732058151122266422989309664451935867991590965672657950616860932327114913146552095016161014224673182475717187198665656195831122436823328704121419866531877631703560466774522277789126565413985819005635131432033542446521401546599687270044273169516137173377122068809276461902558694137243795226699610916050358632514613163805202272803557428728714756280560410736992183068857132222156155200186121816633969297306441374856141289639967562744789415067293060045679600657663297780702109327269445071689962034414714891649052503368836564240663896394448975503008455989797142682431004900136143724614934745208801491290580080280745307884634184096407005219381518523211323149165608804517605775549686107636985491946285750532361305133760196529104421367531638929169544806209506262633378850439192579182877690352595515975693631322439205962931706661793161753741353064982193389127543488191900675417902808919023184731262485721718769632042164618621352282827298623460851857152705422791304686686380960803960466553190094502394176059208737775980152496208346586004309382903357442062036579553606533099883501551904085363292816395318940000637568497264251413973399268082969779470672120601830470220390714455926415045088311667460343535682041806607091026551088728310078821478499258576295493896481313243365329262616704206596952744586220763882325145753625225267067070036173706228306040585592597842431044231012197917691270835905630702142896813373135098133318063473977329249151017326422753842253243740749777810801172747276891402111761121148584316391710533637847807449992011518251195622366030768738286039446454077399768754615899351861534420520626056847377862756972316908635895515262726076057217352873059549467841991408573005605622998088070778204645960445857521589273224586048753898483265359396913473185864059529034131052800740501903391310837214091337838572143574972309083989125841127562683088864187750215438496074855198319151567414232248523925679519784528711022248837251075701397347371477913775946228601539321949377487544215170187553609443899736096894319608705930495236066839391647792411283257452018507747962699691901825479183443782073970566273666120958580781820953808392718185421559895157979905842943610560455873019719700793008310321657906818242827121924787122323897987337423239755885386148744351092902094715400390553521846239707030428077221472893947800766168494750585662017202426012413692604498025293366858400537028162714822903607128527648829368783397963428113806799926749696424908260610385665854738460555740787146246777399376675417109643824242818815259601139906186742297027349211045922891668371968183398484662034828754864885452700645762520203889979048446277566274583904129442279130067426261401916911098237909342403295306499577222938837083872840518276306820740628194905642710980029237951369017371275190990898615691316809914645429708699413899879639424796899339616687315957663793480671188001910719035048089955781198220502242983492559966363556272027644343960147131033070909813085378228504236297373623146794089552166632456662845050661849597364677585729370864435816379649313117454538907016457872261623307219823683665569232150280286999753801175644212248940057125690199287763138741642394361361932881436162918226471833313105982010441397226345921378371133370176673247684702978181533688809692208720294670543816237678191064688438524205824747242636123557833673615998644975113467467059833997367587319551336773820815281630194689293226789678824402377586114089394579321091058674583592001052145400946855143498307551745226269109424032374614151074771347480929814936693996056797817886705876007460377177745395968289519603863666131793621080679696391573439451105789344366418731964560981656052500126801932833701901612352073760026442299850281152464991949369809626369087831715615758793175945230264035049627436624857374448631466003132291077010631330437586599901309342040694101981997844091999408470804678735081953445358814530373524068077777580652318026691047422064555821842326894193489790570247514914037672764882111567822825975130450355874583217942279450515389132591213292799698698359428765212517113066121788423763888810715375966460923856370076099858588918621200726807855127415806855136074028705482526539899656956099548119761021260822174790601540112574671260979324266422767183066765466151218965946453911525695833684249262173901985808327061021568957398414167111129877494133666395250673117512280564554737786904977945030792284752753623554270763131471785717593339445474593765845757425621699827710219090371675104692084427697732371016916272105976632580731063082293985168214888386275097057911959269738774186391203490089491110462021509191149910141132347817585014330159391276345892238555475074473786288641051483614525665198009896843958459357130811502070698283850623535250835141851221077894378313194277382979937589760980896867819920382196378386168139847169259702438447493970390418671187922407637717373017822249502865269686712911361132402421601821815279771024878786109290327810450651297834956112419028801573291721693890543003296005406210351654832363892715357973013059037275349908379081567730969792873857806083118186696781811220160591440340519850544006328023904424579167068427215298183011733680508222519455774875176772548549827919769564041043647940230952187077418281535559047620095794641921244840180656007037865865866475012592600887428237141268980718342662025962666893427164867783412769348315676540106077520353002534473238001873080811038879421693606511091058462110318344957446286731921021889171107936004806240737071471997849793243585699749958756201509735097897977156621955968499532704287229233057661586542615975000387106648545109275202517691236818903846350565799919669139771326167215813568523819919224283363149916564308125315740994354938513207232796095460371732733186210922787233836844238951617175742476953613142664842220043931946598834678215159251956870886762224511637422436613802639892552235701847611511067766207036474170556238343374299098796225488839997674844068644466038381554177643088208058704981546635829460387413496306941110445537295917749955394145245601438018952187907999371838728321412203003561746280724236130779836799038260085771307758944952139684790290537919891278005370073534393709333804886174574147162197907154158430803142935208659460036314087840073682076840252210392221084655715986318122021234245914064955226032203959614488154820821864569396234552128721971544469793763407523996093032904596298086501679613458782500350245063178809898405284668395957069547324785484580589064492831119615734334952809460779047320559089230467557468318731912652922562457904123012986776370453277926326983498481464299641429661196771926352266404028323043631372723819850198825366816795586501953255267685315898974673464070131127768382742041165534414736428585058753727582148292513892887665582443840079919625339878937826547275681696017351548867250404335999526631527413837812585079596792735221306350930656356126655252849692388391966105376767343855256887142624398781114042017304589581690473430922353663268699443938479962438296340360786988377769108299959820402167236649728650514716114297820806501303236336864773192187150543856317749574645389605904042177064499540713916074486022448646950215284007566123735313724733203813835808506635163919560632055711694497716907081538819546594982948797539913352422775554973964753942905058154269127558635046703096685316394684149537343967635435448092732490757017702294155840974566539861203617797161614135274441178447154468233146078199492712594956063139119876294303735079009816529071940608476227900685075379462929635126150352996352815497703621095908930491991384189179230298951283764228899859723150733977863235626804792124063903110311282125397560954927427995427996502733531374209060428453888517639258835559307866033029722228474709506209137962676734441521703258379689531220981775432724444665919809890205790728490959053517279136822763585169655657531597887537319360344006893140545138026646032112705583014586875711567033861710603452359049838168202805700554078199751762105968322074598883087671053313561943136433455337152895465126059602987083065063729551205923044116281917701831341760029226682580540877005710141315073257010225109800816741302343878201062411731526625961892725390610131424661720708494175102476937087786606935938512023650425843782017696065851104972834825979092013876772635726804528982230386804502956085785992004366484175210590086881058233578598349540601123951262192954116074017072864920231406923252797188268130371022049905062013828986298755087589315208039504152955257802996727796169039173219783475817968701203737604921721171879808940426672880437959542065572313483100237120267623635882373853032503966214733386779062330565923354656683033645656836816479199568976444901632750086041273092064981775911871883752277563086891440018767282418864267309017039631054676561558413313098471602668829736526626844818974451851459143732930818384043214765765024476953451009211585977187744168749022619394876115861087743909210227758180491934756418893022478735084582229026874965445733448691050394621280127111173005411820641283291087278860507197276779798206050909367310813641381234915628146798434692738892697375232418414978228749097699506958890429591272845783516349500852870235768411735300415318990744262361026566206687545805495453800136719959780813579970430916703260713245537040354085749641031263497727742946023557814397638185722375386499552358186720037427377554496049319680020737292287702969229167600243823820666937403240070970140927239084690235300848692818868855665512255791172609083900268641050789389953547263935260971037188590346633549827955863673911034526167730440707785590575305668350612936828859301004404642469849976995904850660465784846024715098415614987718952959498738541033784720769896329254425292111191256076151894760113245219367788725715088675689614904125480330307687811233457453282908676853963885301655915939353713690831881793783120161061851167374346991328323332576892907311477073277626743221170165043515930392591121543017599940419572367000964531377637027154807491438551737555121151068652808432466313892771687084746121727556514033507570294274594980542091217850277048643125007923996002176775378018809718262592669535611420312909907501846179768357445095128209468123191394800240879713283689504294024429834947701921131454707740823341560476267529148848627597173394816916484106505127121406831479573556325005715626123618450694050475152665996914962707184107897493120681311559410785298217218660719601322522318369791204724450909860855794327861154493937888418573500317099757777948437853822528547660218845042301024442545310527696868539196643219548291418855600952844486871977004349203488498695265192246520198155745801786994919766891267559350572868451277594847400018243532592703384158850555501934471719743006784404383796399459370037682246943149871551631299326748477042346299427029300179345052274794651758097928858954410569613721091756092973470100593548753788164461048013333628372139580867930849478192823858464980738302921324722727019679823093265127849692961742145143476609232318308370484187109159174988830481459923978658968091122981707709115764673118552398293074384770659135579551456484058940486273641172585186152633301229254343409469162102639986918742329280555380144120650977835943148570902611032587072357113797682653242495937081164987326181375192460496894984145331802388586562342818537500353752605443058944169695975460199404178735581655708165864978863536261595253295810631612914534216801053928137140709811017856290707097218840045407164083975905514285816029415616728899450291422144277853489300065844199607845715610319793733627665227405646350156620682204620484014881178039256149677014172852741906532905410264080361557059300710641170642613831394334709338137219308849268417213042487994726336692208113222823920067179576425114459198124287988466577295069566317856869848090319312214637604054338958582159496788594385064425079578920184866793530879439858624640780584340627257772666452095448213591907853998327505339464814381766670497068324010196032277632740924020970524968300779510419455435759788309188876338674092799894611436775911911320606026662133662887433258216513728466620514595739216396243563215693260761310626390111074536568006895012872349388669702747327573997469457112194297054766033913032714543254768051823935391751462325313744045779501783783709541192219935552513628633856301824920629864716411316905034655318398795573160421238952516007367898879224912102478962906029418792753051212437633709978447161228606708526710105754649597059992421987710914601268292551765052265007914504902492158811564165120280080545232509470932515764697953506194292615976777354574067096048581882536132937779297179892648242306633627434713490692358651730611453219508042391810158911496534754526997819212315393587523620192604811758507966919961718781242818405081293077122539511737714478324386154611142103755103394100671977734072714622165352530543892107232251660909016137852195819919088188826847998337728888666597153352606296511433089199320564993358141153581130825455847090482771055997796158080897105282779917169928114529339456615556429134464583840157444302473710153853602001732658072036281569254763283651772122765134380708957984937679589579455488623341621181263003488612256336559377663094747847688190604911928621058880364178002580082278255522235175070833331160614466874844764900995098889445862315506616063252765760971652687868282772665940100710222036870315101564098460880130879099791033039094546662834082008326233040387092780314867598506957291966441438405782688233951001085510907031842280404280877528775358663954442643179019068428468807085742807954829640278865280156258488118029920652040571607374948914957877927619099416657909459517483203965005121669517302237704454529623151541538178876053228301814938163026478576270082199398751670016040167192800550022568107167710514926903964137589131450245096327259353843106386232925133770695274070728524704155482562294676811385361128713433333829103010202344791124094609372788768792583919670338319550269500636178015734758742117878361133679033276028043467025432723949427971024237682301843219441034614171746454830983136976998784367226533105369971637923503981397164073807240883611847479842460679235846965302662796532638603833303603460814637704639210960710356873057560410226309607069670995264501762410700506470241132863162865216671412191810852115029917296363800111175393132198792273100253709182532122397096138001462896492772431010224061290597949159446077867844603164022539892598926989354655675091630673966031953537143263913635846528646493998378099399386417236300801825732825316051772174845497361699339057569060286435814483262928684265826153393810745356229510387956850261288062193603727006978218202687150916259490328117599982718012915321491789204480200744965966161974283918078700417052380701276959696511151362546568563371813099707164003332594912359654219109880858169461782224953866831537326293348039627512016226272709270907444669919990056724538725645092776214820298193962849785789276364723137749211439459255083141008357474154591790423730413765192234789591067962164713507940948544299028389424295861019952721052368021317499418829517209147347648660858052021802572579857321549976182782178322180584158145064824072949789322168019798541990024755545618853355796696057456080627149825450851847123838372143086593137751281084672302354385689039115207008917143996573391255951629166538613174849277258226701451187896599635889697495773132466355120368775665073006724142622397456207517691262075071885787561200193948731440499102410241704419061097528891626761345841464156265761022710002122900739916966827351001295281995326482619479435746797199631166606501648251266361147064845807192245066625858001775008530959197815315693865276259610230338039310338804108839352380333064650909100232143113904159610873438949606649474887189216125243764578266403579735901827915566554893951100373977893102271023746897962443018805854438083128252730960201415407140046948445939105721711161283590888059128243572957336339121313098272098762927466911655467003518957108483508411121415583219997418423817217316068553623730740100365949320633318931959966465093515570942695011971698576552222904528686022443197891119499118899005715928196427204651395874736776735569933744136085475393297977974698254580287862933384966078475073147954650702591784580538875766967010533214577383425981205514990481110802940738312285539999371113802068467738726398217654986966025809630925369917014310058136748829295453886706081577493338571386262178991383294284115529150847609090921147994230330937682156687197068160356356982235952802631616857190439530487548411396686254027425007214899760571573764385373560354216618907320241457510359909261306091967423201044866893263573406712862365348429531717204868451135976159099933580248125584464483107815237653895381127481373162606535341418235458631303851951955906272973329727651030155461476327288504199469452692025630818777345128439073663042073351485840122059663327472624496483728089051798515429840856784200113986280804622864544417186393370937354709149338950012292623281749930442319300123837263592222931084051544239877680114681387473198509075294197506147439494748825776735858432428286292745965939588374581833562978800511152585003471541288267975276914488246160309039325250461260470903216920061489169813193033040905080600887854618410294489984596189384721188089074461561502728497725735020184307403082918103557209441678247129091422885752621492634788662302625128152346782217301091959433797181084533212118346629361016580434099518908914135208920017602654432060767668437145939016578529566643073863913212044226933902576763104732950007546616217546647981134322397528295420867390715339419674506430677853062511298773632368464680709866811258982752094690002436432698796588493481889343624956350756213199171902494822246995195535680537624937087098449415552962181024071477120580816952567296536419265012132745916429842026732963853192629466390769535947623596634628002586031875545026299018834441245551356883553497414375883341806377929812899521628286626817743927801261243932608476877486284166434259620829174974241729278964142811490896745816686256375826002709570353129070084725485922410462377481293485795251749208591572675979240055539786983717667713112772874482497577987548934304736969947897852205802638219742389067340713809838343381728752073024338934453462380070525943559448214942987782454247538256227580356460019585396556913522335369190950223988511311786065830488561548930385229938401665806608555784329692497103373148452794529011655169233269758909974204056341566539235790695812126390366925936580167689958967199642296407628498231655071563084347206061373779129394992184611984170679721958930867956226066206803970154223954945901322138536719628444817937899418762710083110248439808362878597550738348250934685161864069446070654097235779220718253622925453240579136695512085727847260514290767357880067059498011542051471151690885420551582451702622477652966066435286465857776776273323106975011223646101536175987681115619351209669243312925377895616237472849583743818885195716215679013336289887236161245820615427422961402911079760147105040849309559786662465576670339163017071560463960129491582950460724956949868048218644200439438509452644192020355429688637937353819536075359571168650081421433352709260741893474351444787406473868350822375747628561904047783707877437791919463868489883148592142200069869251344322012269278561902770702134064805476837959565707566428173329785760729055591491064164134867296616381261351347404982195631153387758652932567282247732218608237629474077297975037535452414599719356732720591658524720560268493206594275777228336575699103987182041187826053825210478944677275908061353155982006614524363210659898836503883248892755676928186695637663888149963095029717426436689761716261752973035589531421257238793535538640343205794416901935208860888787987475636673309144968886918366295384273717001244934198843764764964522186493811163382810576256672317878021197706241194998112698429907195887581110303505864156975917763727560184944373488670879295999628308741176875178448117835437534338474754445412094149928556337417776931491121036599494004312489500361240759751150585640860282182653320370417677159347879353284684420184693266880233917718216283878700821111293542576962676964843357270784028383911138753526765788016011484044440970260282119259194356311762173112311782046559566296485149917125127169590314093067727853560800947649957124783814263355888450448755039661091859798967157236247053584033469028909419365070886642422373812329924282488086334963429503534506854385730099878642375104632379415554010958823461139948199470720945161697976155071282648872360914632916749990028771804233289639762906117738155470884570942719536978851042689051371049514428793668266965784076119293808932785935060751771643058415335897341372177990682492869992907074769873992109034987592353699103148213694392440421940948595928043469818621547679143515944907317650254656623978465965509757197460273524997536635798454695546763760953800816149457411688300501198298687601743155762424922472637977039151264024575441272279036312240214266295767593000199585694262037605750253709458596384606978784964810905007032667433753489353766437687362942334569709087320208139117498283160028562797887123593633321984397640571964018491560382408833580625888796182190442278301691968534287039235586484913096978741627465452325421205393700844727079492113256727121266790424297080715762175548431240089000876623715037749061621230754959369783731027297618411955941463523594940338715841694513442546222984828835735786008886931910244464598289758686806250637552975136114695500477857247003027056760631469482328314318214253385615496861276195772006112508489197234416692847589678450702817075799967974000555053868058315807308423800428337812295945904259077507282758537011525630348456294559982703292030670745978469302861511416821882828958417595659324224664969790189595370924149422962913232819498187567191812203092839051713481474501943102450045542778654722257133595176191305603884820787390178651183596512095530427746853104848864926244243846517837948883950969594226869397049481863563503533167932029641263168115345408953985779098803738760683281408377447090239497881716268746500836414419260642839486003726732234871157105322326529583410600269914995420852667488113681062782927502127067080564950904087961084605275629991681158558222741120098409683835957955158578095773135870712776937262178295266081822662972066832449777120030610447523410162189175351999954628919845822656976839942597838549566301311469132068713897438339934644948137881399946000652887778613061932146383082641506651015292330432025005192646188552879355848378571617643483290391698321679315292811829672392921272264835062166075507350733900885494324308477461071630657909177135204745480847709668167718393039700095413771485083117295077547023987287179564090957678440346983686273649037019794486660189734894634034744033163304929748859502330248679887484782197695969840876479575258434252607769797759635168900665950235272281054254406870693048030437095422306745613432792964180886461255064017242222734890174753435557839436775121381584992875128448646767341338970610716393506110781063109788491041426365586345217625823621385200089333382150695153261244430497432359819285646606410667860268273973208248407389522573163811275385323720297409627870528020878171014483010986232089236473376623908727377961424233523043878438458359681932867094893614409566158850230574309530959223000762147763318291004370081578608433461095102069962262448797146590350841835509669163760169503985067140519419011154834241243401954158380505064604529840691706314546505150835227903255952398194231817615078495362561416524484279368901870257855748684901056777314798077465793152415891907340707787280676955328044620900959515371198522941368314470159024899476365077957697512138737159533985581501561276279450283558197949983595488893585621259812175917994997371478819511265825310792770007349104827424092752091270504604964483943939000254091543799180830695650480698680534202767579109125543717368695938810874638609527036824060777435619519406440554555301850241374787982080986198771239981685358759419143289992091638015969488697451901757143821608031053360589602800788044126107157879192765059030747483677808115754231872773985513425786820288518797593809254436985635095296933452007502959941188157112516773891792848809996150642294301148768840466067029685273472055906610011868154229431465767983755429931541756179450871278056752010524205998504806780875680426455040045316006001020603827474395353017468087271151243509051659866450110905561961967807388146244399244828754911955424229823498322454650334422336659249919898617861175561055973012715507113028082469249398760805852591366747958412494669695983026559542904148148481145873088854746331706256139608479536755729727133279330399938744252975141516135827527989168472437071898271154263445394047696986954995693481520990454831338054606921300401041270427332787783288374333420379584905281210555232584835246785571731872763781410002136534847734687181946128194042478865570777831359466182476377892566322859202510893908998755336576570017943771447581709622744466023099070249684125162505280787687808097579507171325178421929171312627843932347689296648374313105173976642964608309593890376544046921582682524608458323065737493962999364669682368195972822929124537998830838352704431945423548490179554423795924612778096536231122699383709564452484114311830134680358896529958966972929684861087411690875149823314927667557235639314138263904524365481522561322908190701861347282036304774328522693095169034856716219025077977856265755903057694865262706900564377999663032340819280181423369218179012255188279642016858575179074020790838489239926128558882681189765970563517606702634083304299624196322947378337990599646351917499355718053925330116532122319832006015667414774755308405172025697689821559769453863908923292327076698111218406625856152317732438424771047802915324129913916383778261367914375129286350039983097132351207891274126612999351316625861127598287647507459714171710318333657129922677041061499826940228736727653968533584039586764841868425004387465465753606385694135639382607634913938785774364025040996234322349059242357116613234610134963373114574138365572198450579274438639957466214064878266076958076894568615614483692946275722898896592767653367127663104755662408216764947360609967459777008544500706581670402911421808401316200742687202916416621966455562770517099621974752940777101197827377847848445586942859058266381873305894812177961410341885615991977711148963650002161263490654309886219631299892061767525746333947506702146569866771413145912452319326812565357149833933262382676997187885831477861503699499260565488713681242780235493716970382560910794142498800210212586327982871276736345781793186402941393840151985742323787073089238656303713021032858039921263992039072191255994845022353620766460602625997601522891564793453846808606019294491475963212501563554072467747902331080899005149655367041645813044715324477760222354787645363966588934149489164021259421489569535273394901385313101691400902430236241314943532656536701564403023689245525018837170012977448485284471772985975831299030479260326378914478334680234499759421011145263952058461304482651090945685441401741224184499827769392442063093847229434841520717218207642823667226029788381951479373040369796057105385247738890490106871570905574715715845080282156622698897396205083641818366342270808297550661204210682030026352888722962614550239865855584186878111439163965207579138858884648452714338533806311928415350756059750994143733031680307962077621933242353199716263525753259437791445735239436936333151980783190275845869664958694961521316786715907567025350087500084122540268945423034322332813032921493218969757422355651118809665766834920110218016044848030947671926961369027057285516086320174053180342150340059906062991757143925110406704691909372366472477136956769389269664559575844732598693047705701438428811337088963999288541576453991977877872258974840096237240096376704705123864102596173154145663567445071802766831040023494914878379132482621294002808601155160624154416535452486191537304161315541207388644995002354025377740800451916377358249833811526981399779308893587570124442227360068509317039738768801597480358111518408211183710599901091894903652549386919929300250276627058833337799169894910039574085828281863975839465415684572755900878789033592853660399053442356544307240327264514034638102840754331421693660620306443213092048614669817823935581885770683016126337558034070236183085062707623816138556831159501031982691243754415494218177571419996540394086411216428591984045240917787296784226666159009074791062516894227387731299083826347052885908206356235099931280243367548214121030479746742277233669429021527510038136760856037352785097701349254438570114640315962528816478360545421306589364569525990095454402023700383839255662890292927763727473881352057861294296673421112755534565786549349094715984520359530370730826522194596368457903814365093453246316518870837594098159967642756511633566967639743306379740683283070545214611218671836008491974870899828332242040097663736776682484704344197308655834358496680866937702494674672085140768899671173616146828022813906163286586097385620389989824970681118748652340696416728202656307108822657485335474167626337538391231547300778661655585268612814324750929424924864052819634557611489791587226795731227511617409158848448518312581590456929716384472419345879082529391750221095026188099612448232585424582596774260519801889163633432946401924099177783583364054670784736188596201147428331878418053693637441405218855887948838599090877611582724505537665399245768127442274733231299372961401539987678496688848175602481000536278453581687080865306697184300544224423057870849643832457762380296920041338227277690704651267051212844854233343986517554253255231556679418203903689473863372817090994549785508125856629021997735511002580955424063597732620109397012701004865066436096970562362927558163873991920791091729053250119927863172508556234606891367777018252062442324916904444427823958946863400287756943668492216252025471563059336502104141634111404146068603934548558323518440846899394816543438245301054254534682292151049679019248450421899026206587752908463891592873290335137082842457245059988686773249128602863885761650557922703561222816372290556443950302865207011198797445196059924350740630919877937796873729910315243941278978151760443655818201222590026959198454801268989268631743122108650900970523598738123823002568999366314836638138050964111051590932043473087481057623341703803804655711040173144740880970748134348209793994756059075250902576631334322431669769080344145805309790266462941335353520915823833284307487773595417484671194384122419058299867958847554509953814412052621986469328472425740175151826797912762634941864010571568396476117981905714780146795697220384556657356286560154116836745912913393393743383186002677201519679807957824777298833028443786254581544765056828506195224317555433495159135360305984617586870955556730123026434177898088137261516066976113298225044843085327732803428743720885676973991493863183347231331943994474620304389940227981568202507391242950173746666633888747955120769438878268221145453983077835144780687343819347101621944377809464406185366971725327703359984267518378855060012081821555562839338626157186318116326422820790387485115339712229239920273194190876638768777149088771024031290433752077615238112090982126163031329952716754925050054070961738954394041430078646638322513949224917055943550261170162781210777136839656036441504923909768760988919389444807881163365877242598718224031267656648964096744527842988861894282766127710556918645774186657322589863511268412935880080588009140369462359622414766412478851918280987095967076981358145355900806337895483836027455428842400348013948361702687307185509316844886941627125709345220943201002884454265282918712858661618493764707321122056585614577775625034301810531259035340922681282675150194715355274305744705562199433527918675708875682550343765571134726894142843598017185341791032986245037020660754642615972650197261033295356432818595673894498804239963247596753925920393558910876186442957335323540913234020512313390720688969266629196508932178687459778802327431887503804754489433431300587554137730219888003097348965082363605700663414827974042881681539644917367418326793648968989827152686540410974148751674302697067396607605991557495490974452025378623511118624456807453566547600625475633794834988445561158111137443060038212819119276621507259888490468129790078265339155642869773862777103630520308375347095753842783146403015629965281924440394249415532499065315587402912430434681942291905553791258948064493594694236222444524138679216272559035616948882193379700172003025960726247146147399633415503614801226541560832018293688256052322001237116417479262358859197542575930552803846877012788498936868742763272092064315441550831491904218331140787593934037956503816525509175883606639285745012528488789511619644133412501514048921302115090628284181481672466161174875730794129214949795904379133615543770137769869683899732809758518333230186116537784739359657303993391011020447685020369892280131300003901259167214375651307610120045563813502659955915128462712221018767048570823064897267264989252272837261632300906199660581616878726046454163767330569100393202283144044420838983470019774338235216576933967914792242671461950949049022154887504420103188432957051723495219539634335798021604396299851995880643983025118240482116285607541581024066037894005902601194888069899279500210466861511544942635846118223325562873069436625019455349807922689014790030521693564550031610784430314259886339732797792063501469401997108929707469077368963808712495246280033005392659690435688962332737964666164792307842883799516726867169822734131631642151110815466436980665125156052163247359778119964942854215134843223897608471734481902923634555407099533285976419406369499244896751118775152633692443586155514560769655154008529057983768002764415537013231490062302407773809421202652995380603588660187822869979209911249496901068751427773025784707767827371977314790242141964343377166812233448006583226760662109612717394549283083717483183565416881677917272687189477455106962813983806353521834337114565016182781777701172567306148351727548538654569838869459566110641873715559704801329046664485154458524217605711044894873726290701751590615362377589245647933719864742271539722146723781162791929925762789085988484853901690083263531414285449052941172352734798808053446388089585271973515196222411354413376727746932045704323618692858522811813689371995885168132510698209311694575722876238256010360459737952433495248326533201182263631680114428275386939592598607337331307607506145360286247292784442914050606087817225455536562444092246210788072844271280722608187795346912142642138308505606601200984409604944245941928503242854773993087313862727650766383784552080858562291928361120194980594725429689048935443264660056799111185829950024613783922026552229588551887198259511951306783474923007535591563948112855298227398458036576097247290202490460127100565032296760059351915426894923406939600257564449295979919080590136736753731657025014132899693339890776065284564831342170402581893851405543251490283960005761399294483791771180767112977185287531587396655000142777024233221545875925842448062268415914871744321798421758240021170603048875840786910036823409899149111554608922977960030451471473823742765471641445663413283836298762269335404811258096865454278208259541232371752310049754369076721410436911266684621334590724538075804288225201031651378549567014345911550312444253806856725051776821040265704314878102556326180836564149505438829787441287251582551882504681116904958071387597969377197212741068458829465193924864733186792605482545384745529750308581508314971614680124586070630484386742901292378789487632102396303030806659223356309188468098470983041268374431660365567895122995831373374996386824539096280133499046117828885789424279526237670113442754130760793004125725192572872707082192498405243860545187394164118581933021384569252126328563852574199128881084467133621952858254091422881430128252604536251744690352705658172414009123438314721056609368941587749357353036904673081079553634928592958177371879257049793678264738193233109609324941890875792475342792129522541714115557134665608989251922289552952692624591264394047352754278838044456383252352155493430079566277149074217089401236721289145364949004600387144270131170351483321840622834694787390903942320751360366559062615304730665420785185660105726819204713105520503683785100797349311231371785638209224054735445147178933427023861340973803076419188284538156254171519568210113603406870638109142694150169590451421351795458565766621654859039722661846289993563739219193734607461137286616184605055503686578461239334933730427845169273513541869322391711261179447133487924237967688533678711280601611977696813938592410053114277684985211321021391324090387084185443760897317393166105141100300194936842862242774107272537036134309828310584450821964411762646192714060145633194264087680249200734229001469982156605144743593297588245621859997465589457740789028217042514633145762385181398972254964590281790941199296975269963399193099691310964264611251180962007417878144415999387727745800245867501405000929824855108169930104730208289742819113326008235859793962771171670097418408404835110950839354880252554839452384841229650020156678200837553316883747788695473498996809704888585574777151426856089276744373377179419779729469496278561593619736211037519881509984234607662298466993600559146442666873558111311393980913038201297523572810772778671126247276154007870064047640517486100762982348911452006084289725415023608445674701442071136997724261152691784665475657504158230059701973800994968828817774836991097909016857115676808731523312059854748561384731121443426075806379116007184365440172186229045060945152871644789146518176241073206819847944673319993911450989915742538581359997997247996697477431954966583999778608564418830395581708622978082092578129051081364604810342989406870572786534613653101278071430049377217469118690969479667057761083572846537510490798750660032465492492939208476758583920212127373056688966131483521947111485548340443161035711583828250806742085774711170136631563956761982744000197413542986145962373322927521247646111510685859426526607575494867920175700402026052395994417591339934026564324857298808475510717953401038029619922941118815670872479182084617862631487893792113625803607209507801808802951323318177596585134726269254174449685646138296111228209091236411802919432543082827790963004285519726235740991682657766865131959175738918110226597487362906385062439596493016920708380512731201204553290254098940981448499857083696308655858777632244491798613177859144091533366869613858327879886818075348004734565330783345024764166680528216798456403421417217039865623578581261743265080438949013170837248002300574381179019678572421769560294790000365444900690813015544085012817314056803560221491728131493952329067017572046808122427971177643749913998757364090763042113199254963157479551057179406644371267868501782936750828119959971243157312332028512717928594608181307014834027384549095692099523325094221101074088744876488828357707211539701189056244368194555817674767529978301946621782210731053498984613803780230188545035065395122575573569946336055198796793225826094508416360614549057017360475456446027182163627655236973764916871469509394044317562435364157229114139094125270809132220313567166010988802049317709610540630859089183829665070707687199211648766913576353396169588892513331877783800810789447052823632125161884644527614413355429811444750515360710684747159815466249420333776465896923247448142741851444223190162201430845480179776978929354833070104907376589468239501107056315309109764041475436462274470470447675238697819823371255198678551577749398083001328274707164975607310972837418465997633878507461338901434495886601264857196618559655552548093694660873928090174989814061067300365838666380261855975898414521366345674778327355974695044193219746805854130287384587779498782457637248907537046583966321531143055910217118378097834361986289587282283457022211970160885882993981746230741918756485121479224913412666613169640916994208746839957091830505031967070693381609889342032866975391184095399096191184940436265562812534237436955260146925466836252330616567613045883906952285139601457078824826634235435090386113622847968547025163119182269607339731090340610039097790325152342129942909392574138774218646622729017495193346665996619409283697555046164513759184433836499728754724210667655215688702885150610652499881170576781580383227168366083396625189326149679840473529983851446571674216429142746750721767418726968626922311542376718844434476734190827405855858344551412941614756999755130936557816719728284088495788427248720728479891651951978673372269804395404309338329429355975962623701235017028627042190119779886310005778540497891776978019716580295971821782401119311434915853127112900242839562288784441782306801874185952008851250686771629786335075887906857528392735754673119314053564915324475749348329901406905558034936827458792595216578782051886025305574027081024810702514571088411420255059749242112211755979315723617038259723956607286037118367936844473183971567609728106948898346758700495165858711913643518823858367831616101009523399800267821552113017289443357508741323552403836543360003598331125151859797358658224114111464617337297779336003309900684687528466849050818825524123538758627760763216144801776357878075477177106092112312008773697547096299993169700514771685853562386723263391111390162021307772993575604142345624934423027814516278060699290817736693726813810763963727928589456723032190473725678618421863717349544240895207479070774668246627950309117755535360175100494794823793878937423253085742915344587919862844680879261283314808493982964861419648103792594534246431666877879665743615156112036078863370717751505380354443895277252831726381385073767222397057097211205187805571046587411774827365915046092765703838284424292984589502588431805392861746652095828837365684820787958414375244545264083450869717855842583502841433129204055837592813095282908398777725486501223846872945389876728035398490249553600803077198428448857833462672309073255803704970909055289752643995683020024265590345921129650600759816299880858461448293051324912488985817978583365864022540975768618707433856637821572578484872230145673043094072990054772784142036628077262617536827564236402298731243679472212635574020009454119729099732931791103445778327933937992035731953786149972779399338933481499279516340823852261661263019527417075575749452843605401957069314592046808671336557754740421550818590297744371477434058296314069979788180096411564171774939546571072682343347446380859767849213901096334327348325451743331669983119657744365700262077932404575172775980565798300392326811800229092599300181014536799064305183206077172645257989088930733183173315422099094516002979564687060640520217918227709219074236005647345851868863876278372201819406699642773618179050634748068897993904428247241317774748411564932243320545153384115370261075390149956626926239732762600351828360858656765193451795989121470225983542503529666219313110173502303060369334393373997324747942425457715690970700403682524023375825360008860124097232345077456595647856872108932607434131858567792460387999859510886268747682133013631647595266726693109642712060807141055126049290841282722541352821629028018191324307106228917504348883005197080171222101361536695410257037886904632164120373991676923461309821376797091337841915037304026484660366385749046339961577796066002324121272892402541368383919552792972882218465123147341281464834361159592065489976132885807312277670798990598619360707188196150903373667652945655913954985336971930201178690830766495387611581037259638655298395115594442015222649320917339317297077060319547907242641974121092710677080812575190304711634919184722543201759774980721112469177584025834998402556986320334225190091365545685647985314584041805797202260829595167941412406260444883925944702909123119261945164713257809496819094550376525215188806817251174061200575437940745328025218121458228806920983664991811487986536575066662218376309071941698337695894622168195619911799211827288786280553814191753546539443650648165014566607208050122385711651387706581815860274832275124067090982132518732757921033076679626483996880251551772923508994635203324140920085511275591642022073021349165248810144958396265237545169984067713394966172969004069042165948641985964064952587387433479016309094574248440704669866855984377648451568681176516386354194848284100981109212695514582372246510785484580091255981316146861179340149495627375691802066750723141747158482358937777598732938687079016274675451125367278855953020440478655104537933107087155092531596663151563793333186008086069318035878060331853333582825036844036666508079497372449287112115746683169837296036200365584226012000928707495554010729549126921314915933907522900583208378733631564627134346006909493697105345108153598211312139314129016827751651986180823987532911621543047515019212469383874860936319223879114733121924418188632750449002343848372483435035375915777080314425128490910601374374474345914856873764023365793935262064061226090388747336488522884721959752276604912859700664294896055096294517996152001715755829115328523932241007442123276169337661374775697360791973334619626189635536306195936831126350478289718464682128781306061376673014645139476044559395480862933773424807591253794965896896697486522844055400263782034110287815329289802923612036694976590226539230947711965772860948810331257384954415654435941619199564467239500430895132874172249498254276169698312948483692837498316557449108918609194936859094953106777773096584368981150639205597866159594640140821077138137243554053944677571246822972922759775104195315795724753072633243291870753781419121988677229704561638371748021748283651198394942525572547288893375369742929107919273844333195474453297234102822657315672484083163643301586172655635492121519881814321018197190910413126538125129942814315089697942440618255829121038305850765104793303125786028174799489029579107105732635372147830699082782673912658211653185158397991187447598468246141404979132117381233722323631415017256566187095721728508797747987896372124507710220597216063421611706559342213022674897415923914748809272459930881158856297797316527006509775064193484115391202932996485891883987140855596295215088921266895672078178280675300874745133031965043624854863914141725667811143626336292170693138673260017584271332199396869026013499306816815584765151571129926047051770561216365978463489300124860998994656872515850015685622772119780194146785873069001413545116871335031541580937742853596631990169107569986659401655819896603636310057366273991796476517520577414258858750019966760668936702574629669982346666265663631238379392246422743970374618683338170479817683243863525105133619514045396519304906262216272622946578415682513754803622846647224574689732162972899647830126284877558549759984689021517363936508148818848281817871498365350163977424043327904703597492684097196355395811481432611603968861204603510448617507236436587426146892590286729371168422288991830823741387959527667592838472702335385176089490147811809884013957720305841075768675854784675148745055427194365787627492736932864527352178970739506666090104975599508066457378127993497863773682733392577863991888936343938722018254030762455423873239995329653421341419500958844388991952918013600565345052901209032814486065701786194671043785652857877629721368156589445564514358622589012355786619186333383793167504421287175794249636685094058359659372300973788401263316489092932283962419631371974363725021659248588209199226846019649371131461330057957339661401467402075340256608378157647728006599159180333793472905435366536833248147841759218152735183888847309652740232039609981361237683825683543085298778392023759050315465367625935535586751471370221607429704214375269438443729675475446757954952463265950684874925525008391494602546603323392258288530417112570002879975583661863687065981711404452767690405531940176472875208360778743926770391248935082056800688529770507258117510582127090712373460504723119003214641769148948714106850152429314223426090459767272351591620009294955204746897206347135623129375747311959889848610135153192791473922250709954620027075485887336076134607652659234697591182908691474662444412923073241039066703015768761096506977819494639699107212363309060766092975820265993802760084950322470336637773735479275820066197475784627412097711996280499240795893808768872289443264529868543073718814657891312515201789847553142121999130857863992942616971803198484714761747268477701461565434807075799161432560656666786192024508702472461032258157993619866232700875286179310651173572673950686893787855380553264565644606477138102683605831775166887823439758076395965206424959202304310955654820931331051673036762178780200155922055013230082843958312407375298416173683785583469062852447804124410836235156332735665056350696429189665695618007931591165652412889589422700166436359190162768278506381937498875761588754035145960121935101961919929559204279614796485407711281296586684568587952822294769847564311667041150321837513418716736936489832442352140209563926977321079585423548122022673919153697244839534813454360943312253386890173372544560491833122241652576400736539158739867928596902061662031443329977666704311269177673299760509786117685042554424546485771655016205329803105402219682233115741310657695312809659336885597208203901364889164487346795752896143438463984934806701295127810948598957788077221366990477247216472204083224261307136876478030650555743836921288247427780106435009064823381640139042490215201325386065184207713384405653232136242405653763738106473805862933463264105678549948669393957770560878592868516903051861150921259694771765548635477680778382822173584841175964371191136990264461294464447751158095293276938567309096318357533395140765570556405770713443571663949680434616082234847442182420123563192730138596940202807907271056280440772746456631840806788412699432041991899645237353030975092390072350307390574275162688542548284157905073931810198609805896871018233597007305392533001585473075983542983830573439314259249651593847476882183727458107622007156948273110657847172656613091825811147322942345166707080080135910410467542811164666847474028367722053851400627391762751901582314286384685405796184249909500026525945977848716556083306413562054151035785211792156345660449311775155103704124313901703312282231611477090879925975947031465248166443229887799412025857501550497883313984202049076810650895526913880221468848368008144431507554990908261240953270093783907320314685272426577914401914237487826385041364962033652514621489939544327491778070335465238175775151771299334588666408537803325218143676410264240226090782271150940653833716320491359506513707978231995823219190566626290714168774916450818676309568220314815139776575486718364706173258708560439453403706745054447142744784981262177395408693402658831182403537717501534423654385831179107448540618031265272230013968778464099396640368364215096641287923331563098277232682606531602125480883052990857466887204807373060680129580121548944793804391102058548168397462776752062760405667546170084420510877647306304309421914895347786806721709644803880698894657041958079309757183930471546734888995971573035366237309874652293136072720040212252507062722218431204641715993107015668579811800619561487597957055593375806372275111129311539132616019947374918255443226000772721291847010180104824243495102716665225105059543908872231153638291485214856761458426905580588461377206953718463701502104640741363016721939142506347570794558520696180586245426171380711388379572646338729974753609487137102856630476968682033591304622368521007264076846601665481023790910783477938860783480750537400259686262249463278996693864120528640915814618619705641187263076601390673866142198941142803420072348256505949732596427415175661793589222741172576432018757081725098905083035255936856425459627690805556764146500727721547644599096205446905374234333241782878644440566759294805364566145540131648730050488794861612882883711891001743227374986660377518947407193811862882180621794905495373845557891774924307220146996662582498172009640572803493341759059424749056451946818315734550655644233437634700632051092422822800043256737599484418944213511685598999115437704568292986498175632877997412288851355842383055591834552490740307409277679329350189968027073049816890213454245317244670513751188040979920967966534713221936853865183600861899046335733600864746692183350913108849577231305836891527851886238107706992062306226358603989374394740202013858450884315461256020881158333559231483978907932897142901392641756561446745151074130010869083547532494763994289325699784740155559154418879503211576587148218515832609881261623874945074149206845078418135511953695768186671007630522068436615528136889052120251046575197266732373370401427908472562927305699715823016726762758421580114809659831159891573833571202663172944547603091864958408924188663533802648513145324905200918861791465338570031422923871476148520689553429726206234786070672089935251810352770533638076254800473762600838502704681324011857965223588682243009204456083324884780272016970848047892970581376991508637104797613453264866957218951406555815690065519847844478054804121356180001450418687017986588630979299043840750903863171087026169051133575549713506058932777189194665144408002876005666744853377872104886379024859228969206923921812848960356945049974926686861821154262401476391215056582653695469372437243486472571528571712598424303125125558638373988135366221916939458108762920011721384844274986072800443225567027384582831124751920160806891358892618125206365915503132911689513646852682807211372074719083313083388232474560495354950886762342372205428149887207626410486180281662294108178322894377154894431388755362058897641852386703571224966516969817901979215048737911187120736586874348460404334186695541912198206206605811218135826046249358936873643916489789439515247731842628562138291383054098340069577716462876039418561634078194837500468356032185283887530656172246803302954338287132121750502313855579731939376898176730370549068312791830305298278236896334761140604093750390187701950492201510676058977561479330550382143524125202020510735913241245944340500273440521868847211516410468942289040751269287728603166934792706685905471000520945399606766787917206794572786490633638542833094871318763000790783743906056781955747736967484827310338663200679974299527311923279521175577016862090567583399998243311863981424148452502259753893987495852995695667391608932891645528956818604724789588537693297283928481173966434849694917215744005443035362416658329690354003125256900150978918605617822956196665401436358860286733752966997793506814726236884578133615483500262133261716062094466809492089789093329193106083078273595625223990393884269561635574204067023540101141202536854098896330047221199423162581804014589059468826193314859663430747725843044294578948392478950148146289294295996128119795607663879728126215988872448823857233225440281440514106743846673248217373078647396806456969300704184676342363299019220703362980562246664181876338129831779795881192658734535711656939876077791336043943584062481014846332365015208070205974812084793492648378478487920149733551505732337891911525015368396014885034052267401584542643586564705901478836184967975398365331516355022625471615424360319680822379272625630138673458496754242027116219134119584229288019823351319692688102582376118873601862617533062266973962733783797618991855864575328263651525634998937483802390299560523497005598877704724757170083780022317040582545857423870048668115762974225448297431195389943559499520707531412972579158052200081470350518576619873570066762463223423242734217764742526829862351594307217628846419410436501245481924314242330642336811162619529003269031636659993866261212324008466468475233683687447062833738444478559696743978926329884729918372087739348051847540195174955471517840344927039025872028791059731448931180164622226213464485662014606907485975230951406693249406620356381157427146408020658907392274201863640320818983276696420531682613770812939598367083988543836688527287451383417465646266235526194087856916230824583670833242632018919859625917884153815890181871159938165509600740901285617988478898837473339309185906840531889600309121741818852960704214848385563269575526136885161057466688294812303585110856619659279044361088224203106479739902669743572398417915796496246690981179226027908517004992447706762719722663783190456247875704983965012134719449378522075625118392357143840962183993869194746196675206676272459397751324479110182638392000091883478443453195061450249243015704163589497470020055074513876769749155079736609442114566256970760780125226056441926307026582840177964057533209240575319894496171635064285369760286141542344847005266477343651270024641955169541621754194257408421032531273775745799631837632096910365311402506595827985442859399114644861925449407208950154553236774289546848615288881172944788443824674320841656127910930058628440438791262533053314859036734136528529541693038138871675765428461142504875810219065817761784390851404577706139536973452554992806337224308911687205545362820084461434896149465354737291000388902037220257882731637031498282963870556326266862754419373944757396221417195521980053397651221387436141999590876784172705976525751327512253791467549706020007462361996888144741339066528328063188591235041786917419283337387202592081602637969875726892889268590838644415931694943101709549992876579557388185089612993518820602480356043056448601672921316117436647347766516934110162652052768282087541279528631194046510484063402326735174567785466309681924655528401925597582468721063045885140664540161255860411326109765824153303814833588654907197502666993038145733997673784155466711680943574174276317299186486987909914452121967743206372349855161462290167676259624042798441559987714723973076698947839018353344009404208499033478646906558623104769379880943865877905437658700520030503271686943809780784614564754953933587702344516771374817780240071144097066428491148586169475348043528318073219145103505609100813568770596929464437624615667329589747006873269491628137688811075047024687954151216476338090780096446758040679433371441189864070338245157184215219641307185673534195560369889920222258045489582214713896900301519282065754864348230597505418300932874086751107510793907609094072059364481047942608289385620923235196435294649972300815569105953837624936094634069508678734130508074671957410530765726186408319883964228000952439822490336962120697240940633516772847430406542645067905037051693049680730949857477272224833322659577065979818213718837995508345972369324498078402029890130777489464521055199422604317001859889716219223141189773997421424364464311816719203117684108098951117104013613548516482907692833869110941115047399455913682065545302753955152573822916337418828009639328637482833088921939662515525009904717162258131440132625026394086913815481840707240007721295384709521539086335657821363265881669477506513743363779990271544873707194731561518000758923935512237212267352786707330721484011821364541851360428033304441543648688405222934868653630304237257072531789848106354840483646080984310172594528514268173580344908848423726917467652603990250758408409123900445457505863713518817303633126232891161725683538447843137364180814343287156791191759465160763942725561632689655243265667206951477542531151690246798213375678302222014654990038359571787455604683219056974912542857868530685145009924153100045493954264107983466938113135930551213093021167970440640712662991183772240100643915030469540376680787699634444647220767068548010961147105576173739893040506032403469361861563388398091543351790260686906516443748309639626669750457051348528828501066609990794158263096778982226827185581066292173697232136314535070371134505004157923360674968942926013579603462918514717100815942473882652050940942148154165907157644854410591593102441813389326905359094821677597016467333066375826610484245886397055211454385531054458746896058218768203821574270273898895385145336948639249081486153224353460283317243866189280008623483292977160737904236721787667246125603560156323491864202283627791027049839777708655790176146981569735000014699051503706020762190607299281954311504572082837498634037785993754573095517682790205370186435702776725903079875918465826437970702172517205992436735448150887694018933120858048831485603999322474384766991546127141460324258712000210411477022510735268953108792246401678456337418826238365014030853725395122821835056118477140463950417432460810590870767356199081545325281308322986068399487343799459280338219671606002244901385300083899963351982800530393303947056729162807180827881211049109205970238393521518422691709549088285064067627303395646383198835740169674033828807042745760388555930470002722264772894218227055047559083401014712658995225158048767743799147724512081382514777375487409622804579502840057353337713416442928043314965284479703581113597889705464735104153237285219896824545099765402232923498406034936947059331581853351560333119243045457762279301882045310209787493042861653284924622989531229218847027388420049556545243066727629312913746836861555422192456001895340422928199405693751669525681519441488218847851919758557004133203558753316839135970003992495864592026948844186482780226366349424548255918427271099692360546791382446071004183480655784560044473484361300916595572437123555645623838560658779125357867100711387402019463668540704059542352862439499581932977969599282870038934574824076540590841340982614218327130954332864443690339247654508543145122602827316438867135088435212496682584352682084871075417494339721260435841050827045479558440579171954257616001531911964903871886687955194953691582224380235459570875210220416631481335211260473451512010260867702507923415650946786138616770653733837182587610984684007285520671658964089476711600596271798456262278885375193869842843860264988615259223126834887388247532013081048044847816107608715449836048066629136062619798814951415636708419003082236166763817378122463134926803321785472032593169566557498268896106251261762040126526835043115876893334798501447502814117051972355292395021524706079729434121145744855093725630529039045217673339942635031991729579217880485197424123642963095824297445246076523795001132919893397152106299015427942319081602767252607280515767930856114013845068184672639767171707913389602738783594001305507508762547765540786691279955391526113537126340000700748328070974324737825507884645789918214328775351219008312786296526917755609092656646357836988448086345662719308351522535702024252721276391492281973394594042414785625466885583180636295208144972517257664386428273457366784093374789537031885906123757742482306751256308779098368894476859657150221760204924660148542943061352588124910051787648004510010996053121818782634344954385888583740158626477125569979417265099244644871463197911271780188869953034225555384458375936171223109622763042501145048962943258902361075007397610461181600858667479228049987945040646293922561262438828641487989707227752666742220684977499525134101809467645656618751450360802032635402975502807606738601818897215934600292429952425210300785354188298720034013196032903496202220333596048484455231442439173255993453789776718862508407054908091097115678019114260610780025923175618822478372336543419309527711179593262469878023433638890889452623438312602521124172534924459337691285185046960503448357769056141806311203682705595388430818511905763606309039538367856816434021278926977564190942184762902377783681272706602509095074739568422067536282934694021869760741273877879231927611051054790587510948327205603631269331522566598988926217213253637319036017663947830930368517431698643708779392273115127075827397804229377004212448642570918355088543113225799398636032140755399082728538948251208780201421433678904732490111893603158181305452612217063052067709305352092194583335443679703943438564678180440894618039625231838328410723114761300932959163567167720864667911851332074825146686557168710742215878482456411531407623259690211998320468624526848904252625363415239397160872373015830237257162996846194001690821130572692041093209542999164544070208735811614164762088944032544311643055221882262783028343946504834249829615151596237892598043632041056905479713935021075043986907199094113333399629014474461158163586735110195148104076434694460030655743210525468299739846391030508402643676798011896581144071794982245386239112930420095453455363369891567172032159741044801872152692385606859463358726397357259965249359924386350312720366002015329954031659948223382157734278048696899960602289455579647758128542745813678831746011644964562977627738738174692191243392581578909119579825856600449058620490225260180932993784090713000602320981312556442564689520775677301382867249700539676842403094190768049835411391863381736740824188869587399258478478109860855238568786413458199511808260010432472901009869322642768646479563385992729193809764054572814270611267926484002357915088679197078001366033763740570578733369199064782378731821851903210165019730206764621352390921808481822300811666206350848229804624443031491187756706478390746903084422101025529538161831254419330519262678540249613930079337196500158894869803274985623063649914395711153797100109019219766250364529372592138489834992899810156836027705145633333925408832013600117117697716441052806309714220726430182511546933368508577789356942826356725677981511097568977201978408557490649422541596574451544147787361875821947199739066128509210283613364529454817158989207586632433733334801458106907744429829319224292032557970689210805087375307024897332507562299045685138794488390840299762831604932149577061507200338692026660492915413423969107301374339722283622082551150791364864732161854657570357896652720343485994248029400227464183381840375061779121097378983806514464678398266066104963002574618218563964732300115815383621715714747453875138856222581320373361990815920188725976615259902392139609804206565958130960727060942633403252270153469363393022903134173143143391248902573393642870252271197074565323545397879351598302681177383462855951739180613975137077379219183703371228226043444778923408876060951526538584590920708852456753436942904456741307872416552624736802068116414905592530724082979148629520631984365457111993641136617465957676654109574523385077074600714001088415717520895087514038504894068818600494369508184275219030817020551249621397955147620451700161517747987252650105627855752000887693099573263261488920760084813548594536306860593880058554613117243244566721858292969819834281696983860630129693389585536390274369082098853342564330021445653026015865492513946415674265730187211037465725366601346015084761573558728636649078857523751590271012438745092571504758080941025598048815955605163581645603115967556332649720136417739895911800755434743940102028623167639609863131945318688729065567459951216147617065757293643988450333431647259677934829393472052301522614772492619047979791527376037473113609935908432296829273074365151088686454743747947579213062948037187250005920811005321572415829322604605738817183126955261486600924609024202731618187601096904944247939623576157380268749090076432648311878358404295996164280246091117333921058044063171941641252254882594961993866846409238424896064718853288905311806216151872217173593497812829478864746209688751469570907380500114213382491288080036421991537021917286116240408373401131155711686231885921123972921743720917990605601027336497664319436773672448453772659578939575379256458666472539419360102700177222385390442990802699277978054035951569591140320697439194021970773584932894471476807095565940217773165097942780543182524733165272583037566316349923921965713162412796648344080192403776532725142454795315540751324799292183148105665574122782071749505242331435243833872294639675296251655272186716940165718778643849608373559941433894252597076062732261879825129107656517145105397307927016649186649326287979064282084964211853590099322918058989222389333721413591881091162305685269312476883275542523846147250108307226629967300605873145357119744666592382611162243224630510696993900497746493420269309600641069923115636577259210278069976503666094363295542975371122233378952054986041310196452763040920541914522789823225476433795301269689722455227905564081212212452891999477903106667868334584910397728966778842048500596579050887866409805582304979404711045889013520453468851877792969235658586624655577584746473156468247311027136775945160533966576312984128267193076113736837684430659466452456986748522152253842329519834162935381587915002876992643023780483447030443727598795961008535073030015793388233873541112449340907608733940240723304230665569871280214039081661585615353235119243791836983955184544533715812138949778633555147023159158071348563517471323519560577670705072761534541854398773944040133073778328619167912151647036315335160669768629172785517324416993776593315883711818896095345354121101808339896472220767222679670472551721863120457461382655381867519567115384908118600694682899149108863853703781807664159946918944616455362650647680994817957820449706592180117968983632892314641339722879227681576533889517606625485057724045484749814208106035771241000311407979731664244097459863072815468752442977622643948728368712844766074748287616776102132785124599656030072476195412450911153143203736049165361614124189230249711404156027729449086209404351476178101560911146522098624705611384240990164738611854452225415863760234112202985969548979807530824541604261566783703483410616681852227830584708742711574839938909961362911034409943246287775992132220499347313438062707168986792798466799611118694344893740105062619638455682616826052357376664003981009087121042451720143953046330262768436194294115478277154905621897124069061123207266307330802536856890721933752524385782588077641986193513042488538054036914752780508183579981352683565006309049047556359142484653179329691275199705970789662451845160219051979200172802008455614047171261033229170503597490915766707172081240500878631371718579183000148074399307483629456285864650337702371392361431312137154745388581209781433445016398445561432536092087896007026725641982059489578607622143989367976949449015823753708829284089198663667262308659444289208141540917271339752251748196467834219194336930416386971726125004132644171258711047189399097879829370866648919218175269958386108794237495615203014683940491873248602980506300489214950308598974012574889840016774524042441933773310732937136955113921973599007440178617821178979775174018378298334091107989490316414625646211027701314869408559479063453803699650041490025004044626757039499814303929705675063688973171159013048141645761792245649915074930310610650608019395275814096007869650113641785981982529493509843093349695271275072270671472416530524352359399472749699776771534656336541276291904741016222401853736773558566095295556945898066082756552893112626716606447930156277979603608760926738989162569971111624790579458798990389267966864978010189968750479838622167478827365632604410737173548490180600989660932687865502248524738140946139350142833172443718837952135423354055034310514337370197741867912808315713178415894188522608787461543595039213048455956221770647890121755802054536049663998866591109421465819250466461817250194372686129134309868120519035123227715628649006149463757002542275744293687621279657708242597715483933794421939746214582755364425023406720141106409316018203744777196797974676071939393926865959785679297135635813768173373727644308946183548108259052802878798921173619657021426258754305911924614268522086783484947144167741178903797180962140983569690563866832740727075401370745906482813511087875617804118868148767204988346243885302079123878964331572169042660311568197000637734398601640162176671916806684065122806383672638166724484844493759800027912076032158262050883087794982131458556050650012912727036955206295854277060570648446663383829911424367946383241568865010878873813141679973672380056704989353171480307091390663834912569047550657162967922359291273654993661356764877482520193682702244994236843590850229616422443328243657001715486831491476104880563445770909600920934767629024370916486257021630221902885492594518928237654416267225437020495896097613163141102937157359868285117251597777385385039661739346277206058221129905731870510988633907419507665315752754108549635108367478042547802925504129418704994051266885251862183778322263119815327678763922492092280084319888259758065070315217223815587843100540398970569472408651714324348057641059521241315484744615725708606224533289434689207750050964054179898276145378277543000550168693023294679533595371026882326236579075653569891151097004702000132425591022826577921075264262940744983521354866926887168905313830927430139494471984218805792599056638633509134446966461339244362866212862970679952189991895752482746205935967806661517623462466279596792131377480351284422119241068139990398907640185900075849871658521433473039864324532598950092760154675032434269650083283045963332340977162578896162220083069831181049707780548823396035940933772622475833058198595313931202918553111469699838159504299311964308773286260503458935778408365179843296657486808458077790783377388827310066357202051915800368741376644669693498316928558231908351823553406120100949721408569150223504062090422069888327584611228915269934845575032659659607927820360909128634393189983904747187012770002510684310314457331246956076429338565118067534290698646701089134957408979317593962699151100879307749579408080446238285507480180120743892187774779796225256338303192087429899659113759443575496818286377157785796509812984454670022399868088926730770406037960705981929406679188313358871205390050780204885451246608899564064162045079040969959480119774231329748363763743587535806523365296554752965715614822813108606336609455894816534237816891311993372953046143387400093010864303966409233280474437759340253781053158290676167807210227237278556506420739322880418190623730544102599004229500504666191504210858358577766932320940081387728476347129166768395492955404661385832881709966544516820254614788507654462141423680778840454846596209507351997976878301166701773758419833075241679733154578741794015510817188360125364613312639413930287649316845069907114611712759914414592929576196377381143840209815164953162753120976844270488252626001630915568808969108569893546657920183469239113482642427735186630503251471302160965208329905577837968191572059510221307211465286272935449692126910195071670231413955419286437148497407242114919491804342545123356371693995754894480579400842994130898969131599358126784796981804173998498810018694908114882198313826373723117924543366545401239100801360187363586641378280628189250613849384898478183285948189035634206428098500844874252434405466605961200580882044781490289097670547605703629766737900819783608915868498357727435595498402197003490588067094800265003934286973752510673278340873175474716606146680625178095947624130889753788749543419805143079817660200027882631833459148842206392429007401372974016319911518589231079259117239284032334314955966272435876959075252539126390540298862230831721544950061380721777861117983678843556074100539960323134212475957228050434696113526974620296497640918345336333952803321763118290883854017721425721643799122526168735890533288025229522508663864647178988109736883162618673591597510431570135581913129153586436428543957291218839871081873683213870296595211865007652347483234000996644517225516367217401165999520859684269848906193345033625918404232386146043239267863472857384500289380236840857367083474696793558712666738649285662802954543982711366806486547113687400040282449676521894858705091937531761813012928065940291149625349444650563085430244669837184588374991189166343629754343356717743420940190752472977125686675114944480311915530577262222899704637460697855319906697343229532206368897328836518390762067106630564372942660241348589238827580925399730027427811562335055934507226544893363096705017797114304277093903004800040324358384660029187599816153637386019298352653803904623553568692867700873261807124553390291941158378278423952614815946642893891231407299039017032444700406898823239814386459374927553009374377025438923757794997712381661617277838869290555183183893402510892144797918640037961350311820444428332092325890477454659393963841604427979607157776790735057024183449958911753123538044571414257151601785505280320450944546479632336180514150868718842474052262144666571762337236390197832286190283238885178614686780634438693673669303640676310615289435264760724080326813044388620973810641495137882645125666776069603356174694351496864769051271085986353399471846842672666172364335937890553657653708111333342059932013196432165016163088693110538406851104450188537847259848410117812557949191814486764208823390308698960969674841335351895655262515313806083858595222935579655976929786450013787292185642343026837255576833149690862974084568141947989245694323116709864637236957350390578065617634849009251713693105133362993660918985641256835703464256544656376562140086788607881015290518544432519917394609173411511989230736055526671057261790401551176248680887006617851894604550615204280938999277718348430932624810635138879945237857031634974591420152336995287522641813708311210629003306533233849399834210911333869282356301798953804595350088677781235682998768985254050455159994667013277826794995094836154242506160094699336688924115956552969894724732508945855529118578009181877222667415551121732059648019616859649912613319592794782488177236728081612512970713323228332341354873195962700216700307177523426497793500009393373655171938457712059887023202886029693973186130041664014159981728264550671102639700354888692206150233991148808848208734927814708716151873116578724468444026898030693470824372418109429212549290886910587758835782140781888946429551651147267255897796349628311637568414736223327787485761925744899589908477003417014936376178193374794289405811699138850534812061684938164216929832990871016162600265567676197191134437097075762079921608303554626856725506199384602993350938607958385882784295643970879485986033153068810071027075341222082652547761754611895861960908308340360103686391430968564292249375494704574321671716296650910557188738151905418380820680684196744333088050055893772283527391301684133968250148173043276272381100730525625779073075243479992185176554575090611180358508931410056785465123474919224925868957052064238582003890959294427519732367991412011828865170312027691158978087704146928302824872975645141500867952214434772053803467871382024440473477386169544293896870386021523221262409429274508055853366306797786113506129527836856904023934291222048647864226573018601948263155345346986794776175519012733550738922325529702351908860509870867187858232647502306721400671250437822269216372558151954091639726534607371975008147402095924704463746471485120012306125132778762348937551824163572885297103511982264975346125791472562560012506475016652998356686866457125219463678316363441471556207270905643828898738783632297513572805681066015313479454334522553316929633092338103691790748707110320585216660277343214822831827309320516116007220054470669595323019929394059876735375444766673167597191364726593960789603337465829211169956754719411312823618298450418694986211532599547924634811081097064866870250921627357291490507555928136973563874463280531116057549603591692644345743611088549071224327724921549252168734758975805429514661350644229245488776339327702356395830559128796636721443407054633820572816017661509962606180720977807364894732587919756743032411927913888369236225701325771598105487384385088667607701034995856078925318167624168142213856361280262686627546181857061085721762296527550473318353448213731978068903763298127195404076442188772069131935029322598214705233448890088596544226792543981956738964146185733648999175215032676819973231666314595299498052033194216518854512640731471941162632736126783022841433556418706163893124795256166891355926469602473940617795500873653658506876056563426489711802851005381201341552249898630878232492130347759913951071040422584282630953071266398952481431848075708547431204313063869594356381245799959260712019969209976688528535344826086489146662117165170237636687319029068922823705338628509000059110152258087510595645400840783347169598588610658510322929605825547277267916460186840027272893403600305504723717111327353848418514238808078881327450257140804149553005869036950394741665866349800540300857834395841249450858591419599145094851817957625097081404862454019691226417937460647691239558466450159574510057141045736555392183693346843460891839354306454686235508104104493021151180838392186665534973581619464188089897975068588920861891742467529989977825860568066151316973779883006183937204550805360535447282794938974476060929519712631683186417912497285069521828943455195716755902237674445370706129605990040604333395659064390713659038426751150729567943779672754820534034066980877284102424158720072429331892531334647656790235069351271271733292552125648518798879163757914839187348025238608559968342896518211156899484624510005400571773367870653796364825191202025467414032586175839346466898467014846597429871402740645813855179695079718252949957419523928755864964391994176182131532776287554512106833046962633783392865908126865497607309255860003694643619553870932171649027175862566355699538716112912655607312511570378207239512144642547778560239155751105315727846888392195814497771988346772675394008839932189850160336547937395441701298105272438131864580107757405203894550263202154063023291144757828154226038489764016451561094916720650468844498697361177498383194650696362161475843468741324520580266603235021184066376077494619731512285525074733353718856134768058451502789034614948750588660706465018815324278321697393639912635709507831502178367495236362150089014808401783963868460160810022632789058579819802170993289867648898016007582092492468419032435337953733838304982508911593014537263339980240498655564431975405828616115714449090680696481299483687642286457028979664959116884988351755887255218216238208521997053036295284106421664465759157882691318706805636133015676231472740245232873899733446495255863422902560846085639029392337453454998275837548306102237586179060639847485051452247668835826438061635161299932031024938558910220904455435038638461705156272210960956264495930209409253216972532601430042596120544416372876241664011065078731787467122422476021533479564158512007778822272133637510323207635828357133795697827556993348635959689474285883845326013292954222967559621952085365546463485090096087020726843686828264431689991277376137471466248861121272448816295972050829395257426512586179974942125723684247500783786873296423717111581721789799662435197740431835011516484802391883793135530549563458582393061800137248599249689650382695887171818834998686217647620180700648627110535957836144749259508080875639964361260928862785571916064732637862244624470493009438147805410469059420641303333008061645804980716054553587535487645266068595900285258589938000876419612301325438930377897253451022729559619375303229484067027583256034536867166399329375344503246490244614629500797698318833648520904815308001068610069601556284104733269898957176210191823361201684854035025351998214899016685993858654519165657830608325797127069996497140757314121179929013663135148985266769262932852229898739447732399494623556304814865018537041037093472395372869679140260275909106665478412075870861509878386959002137750581833920594953703655139349848467609679395008791732562244145653848279166349921748847466276668299431016945760215364872265287800637395508284678001850421269701629433566104679845738001767265956216044560849071873596346457478304424604739824305863576315585144927747343802227025420161424487047472205843146886501407113420767828265676974350893079451862331481905165903056160301179076051581101776010385181999447593924470184021442839340821361423452133385007674102972115670144017359526986069612671990484898438943021268783437510526377648547815701110404989821170653958957658497534229159916788484686449524464985068956002831457920262710509580020113010987914017225727480603042898122758348865236419314436700915851949734165208211638263059201218773676917529821256601642205584803877789940051424680364749143535330306063372338307116611490644135152639751459890420210509900474979922039042471930277622299320350137074968239876038602502820361453309656216936503644981275297614429179814404963487676798871061636295343775804753367552303435522851732037066069236088840268384707883278305080726606139912599907004558416930188751543085577698841745543197390137355344707440831433002657020361413963599058544870418355328021864556296015560150217984661651764762085252394703007427838957170175414398612926669372099912765907918712885118203301959570245734527701685131713331082617488134102850566627908472143621135478071653877460634190280027816951636969330621138290897882754681815152793274695091037982078160504525960217552953560896198521084082745283525894007627764840966667602685495286240544085751531822642225413860859411778775077549922565777237995871759918424801476844755738497675581329845974234180847021451360297462603396683830292614371358232113417655258634546314229939159956245623077192103231728256091270388900667482879026095472461115141815930923816686440120552390868785908110412660685522964602414519234190270613334002074891069994603447970721987013285682856894609252992107721388504445884123031322686229385909441072695427147624924264079465153568344543230313886270002475029663206205479219896994909600494057625109876031652064726609418539264442482762286235885238414013702787057575498498172322966547499163874825626921583655812133538522705325887809353149375875982536857639434288212585440789023823792530805198463102543139284558348112499045778921901802661084458555466724591740424217133511405654659513287592672808256447316156809434457769527871107350588829484694377663421207161955339287887952388088144604580047731810848411927761838404170268870134582896296588980325254701632953183313986241062318796107049753439490057490203578932949472702787587286638335318236222521364031340278360767424302194253873311742946366403774223957875878080081356016257305256111776771408178221425788902540665634370004449031050464801476558933635802167298024640920675956044430364989974541091153308315958585795059378821909051218679152716015716191398719408356333227084089982801658530392096585248185248330789897953770440475980832068960646840671018968626800800509039964560528594805237722822398384278907717203306209677568343248536055422061517862868811887709395607550286717713429803726362197545561897316599966677262316750359160571255399540701108118927129273315039860615881946496405487133645767070917927215318359341911263258990450014390335773207238109818627552640404450206558448655282546174017133558240504357985649059073807637807492177339436636946450958191756458175188940004086618879415528980556500937125473977738632385127970755777193364489471014871949284546069780279909814856498532931900316994400377139487512194436873103454094900933047687055237568822891386345682285986633660898153646118009563068899035811760447436024286299518891848928663965239876950164395579692895140248442138062368116209460061906145668973715877641173190450603602355912478418832520459828387272487357352475492203708062657461334376239616439718664515733014583946022369683078987177469657929043452890987294328590436885084261683810426406297976685345044073529571579990346397908671068892248834157180193442112505161519319239242714687697754572342465822628538630033634717834295434253358839872651227986832570229475810654927167295940935975619069829141648855342263975359153701840937800036974338431523799710358113574589014835300780805643402237943527186810711506361652156203680832781940031069207024741723873514359316937062179518065030355367612933532928179283501905578914982761871653018688657669112936492469308429082521735516529926246042534402411180405165014132725771880954497302860370917937691349364705487383519723675140916267764834563815114709083112171675996731821853681455048138307034551851800000380374792523173619876430523663585409398292682285474880986998543483190664815300555942305206501843396968718602106051691659692180331987047239322809111723487309672650232918935133089655870994004914871139596832034387912715715245255784279679813505862337288474200493288422582790292430448283049788068583449887022132544349818127346782675410518541772501604454203529168038348792131856309106027122052578214537428764936683332261439161514055839726500162071039311822749794356388300820277618266820389110190727592388814221408541228165734011759001215042382853311815740850752943192760002189176619883589015181646351174158410641583386169437189708598773346178402524710009135412305322950612980787728610033592371461694885338275922118642135094868671426619229224211521957120279858389462882429750329846430285667778346308184794118179668519848813785153914619630793974743699105606713139213694512173982938907603523393930313057083418649169899739010971646776672645530192143014155627550539835547447803723051932639936964170814552723160931496458608546442983281395168343171677836335428467612348135845703914741994742076266839015567134260443599525530942436874595357262327807910491974315629117996954579846512450113342916130886318708266993225362029291994693800295923820674896788659431546155085231782561659724958238395296653907965470064649684523372904727596360149358319901982927614699564933517278396012203774909208411232206745806495545112272367328348544094860824505298648219114246657454200657753458618959145434234572798657542936449775727421497128433835631758897864798987429039190241240478084941680920872015835414314554643004573734998940561172006482521579449662578542555017195334359926316264296162536583100003703883706000024738108940704613385691709654312908072392738707526401524238094168460883357505142257834056036319722124248914668028422759281386115316957623147385907063761299801523167628742804461788057937974067645388307695025830631157050549522283641487950462784347908851811965623252104514791910094892435245022593000917025062351825868921407728917124261360633247969797613554920611511178479327951773138623463015615693080241298491964850658119101872274035981249146360178739970481990732605988738345025045614771211046880869737076202793255080424983658771115411736403561973703218868079336794111668869326939574041966527930930519597078884116760489251378541881399384472197087775203472864815443314180332452086812272473871125581796063405127767071040328397331270279086990473898561692958386453751173539887987431373484208841325652881472656447341807609129314405190821770090403382002207417328710244617448486121915772798305238012352395385335201913102815560299989450309024286757228518590006866970464508321247353764161216413260170417347391573306424432581094585273442893317764461485949853301260671664998467188624584592761079515477994893377361684240228062333468252246561423515216220956797037216044588373354290271116779698772023753611047115221299343252106439499194003471701800703303835971296511067425276692108447281605098162372909329855557275952858269216693224773841360562664466559833171627964079856069238624876294883071273271277836566353474524926172609622825520673012528389220765605257307222470229937429838990135016527431622156959024547615189442762718369469618426940394621696007469882655545187015501144405586921654557471157852764277838323124963195044111659033938408548493821187922098021526300796684297170893359728905561488106260215040101282163815253131711025944357185774171297987259690204288896532466522117717076800104503549630223465545278627245489544342392944148222318123293767407059843411276694794033728170770382988349352481117423309936107187645232715381782751271041496274745626078922496348859957580615778253565550318079253743467409262229153430030287831014018145390209491927303782499753838723252946582583670334995145833471442964236089169050108915676235043285573989951133395943936223599280987466540557577439168588365430963622272405630013291149052523747035512622674031596737330310627610435642767250405946914908900152311062026537109159991034317699701899307707180779516221660847952882569265902659321315810233553882161795353177602427962203687462749357418384877646560240516703740931903624441271580351003881287835321996145094101006684751248014235412067078663469349461650164084530149720924322877843878404088191894186018040549026636231959298020415460002895139919923487959762420534679963579634673735740948630025533776323714826890159014337267006148340460551614296747392455346747943874327272642085111970734729717753782190828905040374939809679984863248433827881413062624412574755593164098215302090817816112217148605507283628259362675951932134020475233023020711699517739263868752315325386691897517198525304919234802010954011563037798965562810522251259852978598602193951704413501183112455800396170466567386614387217714697990006210315367799631619217821231997315509133608307529585192243659642717549026460271177649151065230240967626342330832863635410806845359202408099248008921618274360045645015255906822509772976924969169760684980368856030959595747231448336170469678289712638321235978523421093067053324017858584335102259306499654355503635134459199559076595271837684436868007366816315203899905094879246355850291127525270408746158800466067028833352409009149469880700080035870066520870768029747947489425604999011775660533792048417491192932007027181311304795787190315500194731104973726553148844722503760310517327977116426654983790009053824883762136095466669740318412364488220724714281361724315900559956219144050396438009241038522031107307557355268325740498139605239112693665649376983802833213600787927059692619941436394960893127974746686318457825996341487277214418906625262701692011083687946348662925463901703698830729681625503077283420017566853988019876824230619532574537985426014131608819357694632489071976420381070782133795655841981976159248399796378681004428769028194507729475596066867455757966334335914972196907863578628842786817399364084273866183594382655317931589866858109658053810285790762350454327558907830664002943814245650620893735867557611858904994055434329840475062262057916006712481239735403699506352602208485618757825733453531122886105432725430046650718994782341919527471971067243139087110165060929520553832033905120501796014628770673820788013036829818799032085309895636497305271087805787123115431696486859219594994065293959670519519452155174764033313415012268846745767717270002750925933771757470703829245889173108833904276844894276587207794902963532970249076025564611163488449257217775547403775314413744333380868258323647881766795163655588127503406359333917122321914979419762468044508777067332854381438701330555501405872148997560818984871647731889661648052417205393064215755189693315316184903058230569215269822359181676543290328852278783155140358447360775784632170336501317816011395307515065559208268505716019404908704456206449327146691096305019852312184230979736946497631825452661442861023104314923917590568081983149151748279295470170401456157811982632698619374970102385985775447621614413136340106255648420659244229849701188679769364210422703912737952278716883657729638504846700084900815377457163541187557641891109322815820274530192584395791317651909947732739944820520528173504043131709993253089372810293580599786284412424450750996190476616705861074443312463586280171718298798770305869133994771269250628693816008728478584190700616672795478646736334665504182374532915991974538353056035210021829268138660003764303716480795238485762747226574826496241793277276019574654979195986838019754786379479894144469002614523267331503527702711273049607772781801266476269824113775175544978329018075443675021380382364282139904356716574417012872094715106079923273256779212085575799542843862500115408963263961474062575540388754058592233269528033764332694020693677384185776656425948003151396002743944712509640353004177410355719684579334392771088085696161304743906224323036524169048422806745795518930832797481990895862574749550293413382772837891899369158936928473037223230902093386796216227820225214404030918430363681085757606510274610812672377061515793948474928138957058164803034356258287565690003163445938110409010267059990827223986957581585338968285365010994840372006193510884653920465032104487518715897537808099278930613600384732008465985721154676600124874713730346170106282120799642667486007439911547403789773134385612265412846362978303083542871110065575458006303576540861471508425839706947981725903695117421216672267991660014579383054561901931334140533499115877623595323761462021401371983898246477533694956947841341066793525711047585453992109782257780134136740232650387888803436102738736606520271804777791319272365842046537911031420059996436467507320843879124873785735671682422405085172075977045806782247177688507912002656639316234283124937446072582653979270734001614148451167778308580457181314459500300812443635047266568599387748631327177128009646059636343387766164502578629943663589420106217738118702634327815387219402659321761411510539741836526992904531323189027901546817375215084475974503316906351002656236105018104972063939840942555525786849225625084341952776729717919888064585016850721309522538292875754215287507774225207861683229158603414409005661907841261260066608335535128951951620609930981578195104309677309892197773226147035338180151733773398326594143083124820162790557910132868018380412641527724450204374106729420992898706729653875126477989597470925748274913487134291366552335425243373848453619533994408580380555855273157330503675898071085749627041612789787817871472075624818579925258468861986489321230197560506033897323919744699626924677037222398240090471287053460737799813334521885472332228357216299363820722584421458002423581806160152002250953863760364229914593843898438658489552318672833489907021630388015161157816031831670724250283651164047865637346912587280905015349624325019449631737751186006871820557985677331014192410881454612261243409269666394330785727555142690649833790201872790014745864652819027919127689207507999852508585112483083240380480002714095017334511881318649883014094179403067619749390110850953779697368515454366916992908685172465375370464313057263702509056911336104012863306816239023056241532768047250184658311164631949360944262981615435658496599600157141213264011242726092264684834516179982789981450659984046271838712631592797752006612840483099402229522513126816887704605175437386215673250813119012202464833567887114645137925664815618577246438155847450811195377821424900778462838358558271768595808631340847409547382406809090774773299840388547615721890001912933885277554254034019968137972296003127472058672352285039365606836284800822833036091043754686127759370169870192156282030057776013694560774027751317264103706753917128942658509864878250727975126380109475096526109312221136849529841013136579978903164862218417068491573129808375963379122643885933074035517209337831719331480547430092486334214606358193707711421826408678971946632539265126127656708705174687696549634798351365489233028636601905213455816511439072342708909057212105092075959849316579054449076351032634684454025605426841223621473863956042508745164175567076557391440253641773291191479867813225007761655136654788229479643463410794889863273259505726830792976349625017462743950468195238675845002870331289217114232587655634745528233241288962456775691715825920096323721880757522193531558982109516254889056833118528862254551764146579171848975748407256670144391314822626983871108621018882741841261576408959430482819553571509753143362491142688508269637924833451516987699162432757571076929651114829797842743914482008707564367119035847401370876368082848570254006760462648434522992894492207326737561784170398582851388805574883054264069829042053105212824174084579602221384458270283346380524275303510277373441590206611436246948599204705168944599682190895400991448587798460708220012975322798396216845672381393760321701450875590230494744013234048378146128771649129994381480125068306486892996656242369185158087679096430047406685998536439732608666965685427118601084034203928478718359351266923374819216919202912205409727801939431789378510109797597308298640225717249323326599458970885670340547856845278638627293437994282975316089736437052405485404410716577695598305956326165697365040505171013346826235163529176459931584123955943781909640732828314240878554922215972021949515020623222610553115634981996501940544559343568954375228418601163702933393446416420237200596805654870112530432242703757174826006953161040188259148459064447014017818199094155562339696647061528509971568929779156102203922566053667149734420346091437389450379300908745252699556629168148035960549296954892521388147204521120509551771216808958817452441185562148797515447754510349148991880537797707844833422056187855077415828945239734759579205062101217338437356856701993773001390297987878234474872549597878684574293636503684819178973971026285641402290056258182675858200688611882193154195366928105605987616272432880752352183199174619362903115897056454344492059052884702889798901599518754628235075881414048983889462873322663187184343103657403271214221209190855809982920833944082023987695234380516442713556767443208491393311865431186980823561855081148055399089892357325845411469707425673517804157903611401785491237818193624758761818420214724757239600236148854428158493906740021957849163202569989963632604245991487295407312549677981928215629353613112057123427519500889691409230579057868253046028995208382232787173022232425128669407825367749838371180159484176707275837665093728509923099778001448437981042256319404090036713371796767174834992312735908143372178775399221195184819450366835201926408736536132557732009458887612199864234520242101636088699050568353055367382037635540430515498379335872991536011528652245381255779418108119468289898740896509185726748948229409182374360996570755957891774329911000765092734494245379635819493750664051470951201925108788987464428646646032094875116760744030295204748315745965933645311395643513946075410594878838529188894248317726156724301844105889327124135211073787810978237964223373838369201211990973187529831413394936091535225107952712281058765442235956821473773913614160046552733459797329239606165537111906358013959349071327705253367813654862268331934594904591159958950621859296041814676880686770950420752065938308405436102413239363392768017960467574567780485486225834616592547200126635055384664891471477885514320231037342952455524654305197556330486528037928700008325770322691820218688155722919257929565442083743933300703384569075799780993804668617952029203209493374538745872406990846854889350121325953954303525027559899094302122784949064390208326460088633669302272707420016990319267190864799850928172515741375861808600011271517211022231344145542518997324293496136483363415608989833607740573051885466505077161485306516878179995582858571828263325478724305591164432211125764445740630077419282387000069421854415928841733544242527293107031936488588567767781420400400052807680061435337697740551657945830928172249037124599617667291180200327262402442627425028094967807329570713844630255309456701401944823909031080660260197665126413851528712065436728961575859538754668009648012548268704823336597963954768260620098891492536458731487288566076992936394147908852283492329237190886753327188531335290958084265276791787988624972797630638528738283251066173867705834208194859794032750936082237461783291875186427026697609219130858396527274142194250173963007262204997851887262508076915615911508871502987512010993525277008790729355419007633872966638132654318479700464951148742629561360093016103360497200893960242057922999747580492380909132959774769003643677211234351732819166571073598692265948947881907577697448092468980393430989312807025817466418388334745174467063922042057519661645820630298274567494498490733426927670136435541318954556951225906345990063865650211994170073880812249590458021643761108119352570463342359868408586029977977081715760195772948341915361739933032969913774883127493192964296391167753024939501805811791264496857939554244837627815358706536983075949303593454108114989255209577425994412151197566980003653060141522354632950706922828734006371213419854971477752990756233888838223746427329803130974992988204295861266086351757909784474848712050307792068929334031069278176911506127779177262954913854957427272818854073695911731643591612243763663275723519488067484332101056904688031404631385548045149412557594242196116441402502780910997601786375614278290287271426743938679735979101721008242084515795074961604413312113992124692690449815092003074861528083200377456943270407345162182256560355881195532933320641331774323658028752615316727599020070554392307770777232748503864209803528781336002592397708322507049241027268781100561797926104131271173106358177424479675108431966642434047766430479215505709339206543667951266125116332805656846280711911776138113741058331512961330742004578698741297096195838317662829309835210177180587172745243078235257591532321493070640840384640975401099532746046713342199671789238857190117616856694694365602119367757278264116427975613650807275713883900439941711824057784289808623071893576295710541085366675641530504965593238366319258549078322228667219670280022507411015786295849344349831536526977661714670108950613239554804673181239281032033064272298624330212536974207285907128905022490083100173307548535104674748444257183193415947204243204785056439261693397349031839369093323772229206076680249525340964136652894353994713985259492553331765036386482518630778692304902931673191952075479788487383393169808263287890661799970069841456430544057151735370398837218971056530205480454045424389789568170346108108774630224100397117794617462735963527489997442348216094977926510152457368674272127349926497174627954584600096241598963840968928656751268656456349659087086320771830871385372929914329265189258720274878505954778885713028642224392795204214271747740492776429303829492777948950244861608476056454095851612093686628068917011043070647485368344378372596650300925598252056586989951335018091106981414215497769769565980349696317175002510013051103414404706503430142388833393180304100306245234175252395605874126863130037625945260687161907944895377853257528826235371875293669769299958950515163826305085691476251776832888080692555955888349822722649423980529049506906436758562082346288675019948750726686674397801056126340316881342249970936649636594368342539453257048243992088063197177801264739803072763721929910383690812322121149759360933577470653017095001573562046339065262740936519701588464754504202159365556861703804438806647416590398103658158749762385758341975740926802928859205513022048366909464549573137590052977801002625909611506448769966012095237010874662786298423575537070507752998222346118259826127385643539441368912202684092101888517075818597905171019124860327198101002738470307525832986303721444489049015186183078243587499889919491605852924401017489437557732694400702387710570157556114808337329654133062251460902055607358216934593135889501547538110263460818658618327030286905726022385773707240166494530594050352859855033493182036933264096276360429339379448789305719195617486257035067496803794504625634156171628671679604585846266626825786167349160837858410001702916085288206827841765951866406741119577956229576890549805727616339940287724234405037849212910860278435744876918014022051428037053863980414440549861711490468189490294857210328291296882899349875655262827691386060090363308194177737449553965060892962540463583884908229349758007513834704435529445850500852834341154252468772378814558343193392208868258158576188148504935459059868215041954080457754429134004938560771825931526245679830479969808220834443596353028937737245047017680914635128637438882845552244534823316314511888555705993741820067872318823485513296067023629054494132721221322689140018169372960018455334940458606983832672438302322928107535816796091945014225674905780749388695217362356983545368868519482940253373657439194377662256881717890585908442162648216199086508953691254094473420538264398449784278514124913337136578745146090162812536520458327539980050331928642085969032936100867770357102575278007302112232135151225134597820042080363569857457050481952348998795715162087443914529988881810182553645615643782358396373973607315213799482884050413688142111780170481043661058506547105839134324485949787228107237042037546666839803895465236109018327241887383400073003419473931343046906724185765534993767206276263161622335499863275181274891453130755582598641299206393063697788680559320157815123881255371247423168458835003784492195937850500512370292422357843736410797103647738324987944794146653549837566204733832899740605296673935070188454915993487491315780635999299536217709067417962246841801597026337341689541093395338659407433262611678953285329520400959925699800765758543278540467410554097267693710362759184888981974508514065591779981039698700075282614483521290938890790910204737946344031027663375847824945115949717897702119101448538275428273531882846417312389014554688559882331201800938677179288711507581238133463107393308605155826233327749999400841361512229918153976544212494792846421900456829570595591833880869986757430466632935820404777824550429122483618668782656061135246439245524670250050475115207087908796301157280442939603073094731514975735484437024379824223225536324789458058214316387770714701164397267981903655915061577189064410236731413765188191674960185177922507843607308139422163717510677581052813298805543255301511455686620472014581826439001853790815515064467565251796749091560822820755525182774676971123277675275468546856445475202814759631356090598176181905928137798164673977206613868427428598257083711735115550073493061415509315874958837131264701359563564674210884734693417085233465628890855032985297880372313131217819632502367695940646048175669127007813582334693474284468454119141495953478438567783785174436897317877447828896079308485291910349790266995075654347684734631985405543645909408037526112426861728309230808892316286976768134725871197000095648289286393722288589454569509173096410254612225473934610403960128938462000934240758692047241241308502065992264062714405751843492107714243139617613882211445812256188461044963273551009719874065240144748714969345809084433013615118972485882781409105543711306164473057637058372266283784674444466344521574855047237149127660425467154618710469575453463297749061520673937222400153270911826431724465600078990811171953997109407719245933610107812835502324022401496311351485640227907179250452079017534333550014814861681339123127148816780298216364435806246524420641075236444461633827087140936765818815763087722746372508222268250097233615988545951944099836123806429500074275078983966135277591103217917545572848138998134838702469740139985428312646567802539595963758221161438405875106060543776351746614107536815545153431397823789700934907553408079258144205405778827331542533939952857179511355696321763876464160695478796168526619813345255392302791329235479512378835145393184548198088603424003062496013117696828354699810600538308632585636858519107166633586869628627257886335469853237439549223837257935708675122929941320622341893437452278222574544966823121924673319308645009503710387558868861270938860218748647489903320065449569264066855540044647662789358197419034288689821670877571200378349349745453827022177658551484672423506336431647903326142528047566234683499942742523294517164711470614934751415354382983932359182187578374542349139518340082523519689621341608564397714396312709371146475760270705591481913636126320889956787337576923578231916359951224810307264387288608992095246476230641278297211193780639385976157809140351840732891276465623748240936479147009083784783317740475117361753582431150329707535499584972117017580226697981391823035941230974648941052277319655617792663564962494277555571227009063501730078552864006685732021711113048966255917638555661203423105580064685237656885070284136554241338712361188396579858218296663583787659003944655616340378316846178595696700325637170009348836451039462714793699954873601697167780833135807058102907641999814524951464965638857419825423558792382506918301453032543678792552312298573269148479540877539133750035668707998362941836032438268290970190453939716027560003204091776295195591257664359242674684752702447368249462652823135835524181539346923763550838148114884830333328064632953344013829795778981234299332188524725326306091607787297033336908366342664755650790745717029659931575756036844875046813199953096353209844263232632680303141463618350800221236810747935416799420918915072770473063592728123530088269754674378992414943282694919721337430522742390507775186814246748554019860899977748041850722518689657076208440833676764384753803276558036044819118448959396610547586399413147980483086101098627673168649202441080516443160683666398269897640399059068867405796533441439873243990512334019324924710567679704717263953383290445161019905226847215788699672102212632541570942953625999646104056467599216203481229203261522902952964030885730019584572074433371744331504041087761785181348426557046011299371131095662902935907966249525714568806798706063360263670553795310138330355532328436136558668506302945449618644460579281934462506819306126114084282492139446303519781016801460710948026933177490465015519566837854602044152648059235229268103132437712955959440924959094831088379786132563141302010813853072973095540670424034006682385020895053771189097065786328736764349062768322710518343891875482320610083770972098289240092942311342504838119276036880188355200153397110385358680453745078127487081276396791558766025630471795965915285159347486541997167580675344649286041038104542621759490112861659940970163454756464887306853620350531035370077105377142603631814266068863033274546858929702012964391441356803457857703229134556576337352150555616700054841104821358292496931161755423315409275120062834491417098100491190390287924710819988275947098956966620610059409464722177795050282413682278770500567583190860148443210267496474843158776726031021710132433321875143003517154659382606045984145015209754143746384803478714038584546336366675943907892926682702884672969238377286324059751583131607512327607447032967526318934851866376612117564616110980337895047975196082230501442851140888038051116148960410411193427114327490639409566890792701891781001002531617091012147267613550580294688719713950598078087725570278087212049855972325740796380551459664764555989301696946400846675241201867720069627894853800223623396126737694475194176676277278547868541962070209629262314012540434416433585007711220670401824819555870553968371495296603082463487462620738819556506467000328703859461457623974279641578391919882647917687838096836050757408791382968052995839929321696399801170350250196496954309251657268912241131102000883531272619346924305020577635029005858467340435384217502659160900133048750136478863912042256568193928435788230050074748199747043534258897526373791337473606265424530909956062149489364815369397433477098422965819641229116676889135420255803745539007226337844769284277280731073413384716246987352305431011737821901168960532013144641384107125991047884031988488235719001514760726254157227319628494412787235896784970662804334043255542033989316512343701307165608129144575858711793081660776127910123248405992842114019863003650677748701565481560706854532230886106311574125359118675497948690382449076663899510672110555273209102047208370054377470908319239719866696570889554391767329933105600547114155096821990335871131227079093821887692278398101575288377770785354914765827044478390630369637682700469791636064837143438904875920780466572284097683046266633705632086289680688965470687822993138615137719551680369740157931809250182270408599339508186392449697862779627046644503463769616245578147725908131657290194149049068377239312567386696974215639523867228998503550013555497570156579154361437102449695074916862329364308826626349305513100646442363540249432621060267565863590813401829907650581969022853388256603072252745226775368419357488271752857168666524168983893013294525573078704158793769444175789028046094435282114031599605550312038544275388970938854902606783550999617602411621396838537469587822654639938702418798207552281345099234831561815164985323976056391881522936807354716414925183166902164510059091337932830421045699663813580524571441355269007698966703944102369394994457767510744572226845091615638652001781325372982191853181276928871440499782711814725501707180376522624891950096822191180172209952017381422440468285881154827404042463389835552241140968925451950754562759899479513795917257870437174633046828186043564992667601548507332358882311919708351535474243535128583471604813514676904732121082380032059525166006752797545140127754992244905515942464539014744121691321243703869010954309944593544222708775869563781804541105300656811425014912206627993252335995055839755378746568670646579245267353338959249799225919407225120874765262302638132804739472651394995357985493976667953336939489285954244046168261195535838077993904168167182569381464961629565239589074769486515791994215397853965860510014739254372261446671794007417548208735446358028282780001249344976471567805932770037805456456853370841491402866989494192515855742830696409832989640029358020933086130577977966637728796569165386247968607927551207555814007781805495277415625428307428411316588034431650283697982171516206216874534939065254780457500381293971245637344248953805346250370437736907166297383884670233653928433401995252710573669319597088527849032761564110357485511126372069098137851138013662624945144298708218739935395350002219923249663989086074613299825213662275467582635793346533041162045716311632732013227959693194055303128250163289006730354452403341872708622972605065989072576336050432292511773936529716644563233672452507315007414697292746117814876534980376052534069453183173523314263752539858634668491146604484213112196955607987501968940504491029011076334696052463311934720009763058118289070438418509533463146784390456448116318187088775449349637496621711568957683642903975318018892811861125070731969673362993502393919592670327967702469301107665844965891483833123586324483188673166160329192546266319328585056407936613582380500002990788053191857137866127229085669037032841815490829085603637406601201901287305393140637687790664592734539882233339793852394730055843387797370481443955480036476689260559554327620586581072702791511858568097102053515449309300686768829631808191043964765366746328867193299240315389326752524099296979202194904796911295928052184306487940934475654713996260973172901394143197796587727819136920451603417604683613562502343584031647803874998948868436802554702243635833973785507682042727252563979365236768904902862674295407985848286424891781197133768495234417622252833306659965143767783062689460987661244361727458165826189922152427887606460380972200909960367799014914867707537259218879415723571426049727409294339240995563384556813293598048107688671208446038777152393030528113323171631613176041330044143422156943042364628727877261974554071439714650956542596453959624104080405598928314383346058785475289949547771686032364643993679391823460318929277968604466064174877872376295236125020209506153301665114378284233659208073485557362879844035640514552728021830342306972726077017607244388705643338170603886044423923742276777461960802667526392668404958514712148079586333932639924718696485128557172990112020152496312966119322971111703419873265570031945067531568355986260760883918744102209619598802481315742863539236533299261565904388964973021994835147647190315682980358082689262427932584485629112318242849749973836987772013560184400639309542796512657423495481009720325840749421559880002320419925627366878253557597961945588836255491853613892412707511112080114057321772975918550932517181964133907321918730973368084078198328284228244444894442009872203481174410155359247528951289628841476398706927237942463045821277724237026044303363106977997797959731767506433115089462586304056826880214630740094593479198966866698639271894213991485182618575487865247412671877041920852389332011940576353005534763926674360736526067636002557008825103650975152191573989640004820424908777132533956670918301667254589833064143573179177216290220248841285977337309502052519112824598745907106544699210541414294686920742985303359706363541615204081947093788609827943544537332995752774497783995639189215598182139881395092579438354667865154527993014123940408147984122168162917633405570098984940053249867697901981743111800497788124687549748705879633999724984003505943599577829155864695947595200992563916731380813966333174262140648719701940078059590532338064348980342541880782576655153746864894920899905687948257981005665651669038779493676001287265808029283378979031511353176157047173245742943759882790807085456811574114688269786929725991190414474652046892542788453887715646249230692748821773016864977299368090627407651217483735951270488696402015164208306727186363577773034156230885388273949833466507339194256330525095392471963289158992885814842544178590297840823373319772567653770658954793553506844110786907678211653887723693375898632877246500650725556408778147603037450918990271272927342625766191405581570906620380336828257445553678657501166721583930479139540454283714940155131829270845013941201674638695872882682440875983749762198739996386016531976575983463280860013851758746122597140224162294740438659424399043539451827729612557543651247128378384329133702405614261357740531626966989634170593808253044073901052219377341584181585183486905889428893628200348104038677749875310955686492841121878771071297022284920637280974731832835601743635719807487766390543750734589731916051400219565656779669440033733157298677899494200069616175645830072003774226825209947019639628051053297125835598083452041158512451406326816037567476353964996866716680695753565344406640193262822007246120231935301090948941847071322485553974639593368565887158956499096744614265578191551936181470837683024370094119370905884447409624541815111662048715507723422848667418008090449324845583436291546854350524744498012911999884293407398699567524617999068866920985935206859834106918789544628861116036524142021873369133296957849799368853644272699413445819492143435740478647748965690845970943194545386360654765982456989623741955157898033910189470960020206535533812288810170636551410097010503942107015101932461543763014044791776835981745964625483894652246630037389750894593720497569244185248906012909709648357349047047821425749733672006862897917631628247975478142094357964254666852564296289998785155213150827039591907103769574105728341274784484961819325492449568083122673136027783782549757144855699848501660736932773964190289615509123897378260675816647043078274993318974387608733663950456522059833150808732005251226341564001184063233466552231182018372851623848027852976115968613014272552215187384302370864846679833459271278983042998613417237891744224299303922762641127221692211009159166902166252051861967561479560040584649611318313884586904978270147588750470809469344036902191879319353005220637971764090341229622345556565523935242094153596927972077778126497054966096023794864543957312126088895815940190425512789641408619578511659064590617720851735721759102018188920082447622118976367985009456126563152456969324835625127317008922640633446661797780927672742120984462348650374932243765609527339812388329605500940844673034083006585983131765027435096486948688232015801087007605353666950508922369701942385302677549196784477081365810716356995544957694919232305497720700009850339750367428351171329155537234313511310053194775661719115376871989282183428708575204426556156138863881900308466146181179651064726045265610630660721927267137878144439372503611236800673830338799693873545423309046608950867742041228719096735510211612618184576568111941075862337219874382835851866083192575240267667218789280403015278593258618261030132975394716109927812584816816341761285519155827367089395138742817714630738337352185083775891310425377065676775416260930869055553878467319001506553623837704120050388252257199628776665164031206428614522789099341492047366280841955897432160879229893160250545234443233116987842158131172868843823779304676989509225854074642270259996448235901684018149660948490534929289099904340184126547508454860885132812871658410039650094087682315576699275510053982766297581332126613638372110256920243078470827873503890136082121310818903904170505793600032474382467415783136346452972738416894076355139563940505595058514606294221122576570698510811200756145684826330105404762935517287256884362499776349651772131938614872505323497580312149172155114189684455130544105320565206566354315053709872026984312600031049891466100627840156388789287887316161168601399225688847615334723608530103756930554144266196735530395959000099764817945529603284177385264711435513721646068844970992641804663306034369599419165838483907080478752542326103707506822043673046094974017692454716888038142004317298150621492874116817172422310517335195443668501447299152751402245960850070290312810551903919000026009656546893878196757911159307022568222543816723817786895281546616456565655341497646936243327310299609991804821111278447260959434412367153547626097923709449302056776050134990745344258665296961804194648254389842229568047788328165022076718169878347691614989524730875461843903112444324760616909710293547263804514463400702874816445448840503860488523292325141332248296542188684034230603908454561529298107505210526898702001798258185013887342164603566031125972773613572895398867842577536325850228513396095253738701824326552823042257716313079788089745921695070968909603882828386243099644523647193152473821860852945539106094248486924877789862113232718593496386760218657612649043151426400396272041839679793901871391999195798770294453777019282717203745351638463244102389920034993477920933520753513507826513595651258518892063758059248335578035789222965095601902846590249547032210389268950837670229141923641649166123605182132176761731462124742638355276758611847107627453394547112594654176914981086768138999474332860071123565277677578637908066496511156884136542784454480519329510423458801304187427710661283132390711540396471713337295860563438749284347318874502165269316023224560790596268593367337749167059421413995881809522140349033148136593102172578855259142579979748825715214329948228232156058209967395051920329142925965795760562913210879859216923581801048390166740490209686601349401379258561027674121935042787052732236412143251006266237861240370687843343770064594860427740219822286762393547420587731852549076686208111497382965758153818822821494537152343682352505268888475646949778218341379255517140303028434228296535676903185548961270588494431815980633436693323531103430654603727697623384053183790168771228909774572363827153804335250924656357910498862958093978615600867328032770268437081726279309189244437288077478143159189574563343503880201909831555277282625149577934906421750401621483441482452968042751955469455748264120819815823451250283731349160030910927463235153026154117415854777232666836740652850942414283032107240341284589300336362079961229493319499510191319415236344497920766830715980042150140750541488861682332932852893615069935544674381914746871144670167906808015781844534171786395871414172906115952979061820366011324402117551522908075561552774521899658143485388925676635885123104001485631015828811019171570785230722269796614983249708616605331918391356107829306898997092164585156110743640029531135241255562348995552465621924040486522234035448661369791509369827439998884966496306864024958752923950009164094986559527387976969463532787680894483242055829292058198725013856025084701483830997470184137650213428345684571099272999753807269784263429720955913142049123732367353795060797956358598576649050323180089607832098588060658086989729295809999144544232050581323217198579715277734410653942969216581084622889935030149008465799558900333582251063824872816869718064206824239989395274303587603670265760750196365001036276664045441052014321582220220758772910624750248492392705908903204385237070602391002488608287533672115818747255539427632269228875926377985170303444418822008939142625891789247222215835232777582598818970369070965411865389801290205172527235636297949702419900091686428109557893541271498347053943017014794753076025984048757356003419586301329666016229306697382432114946709083393281037510614186032366988408920637061566619645547544352096963061438722312628176749997774182091383312958059131825983963811635018692923103327893126165215544598855101910666034146852927649011519525467789325616776198318383403168726700656776111151731556308468281595244947279027527681802214658597467126808869438177593938209018050081908023804635216696495613692615589775054382658616993963351092434699167343805770672969996372669106563102352862222153406541729067215899896162153101844782457782570182594110805774897683767347479784469252226654821495014945092800076128935562482269906242553279333499240286459588478482616256839814875556352305023493565353768434494389485968405579892362363275766477954302927641056061885865942875634136173234752035637840687230336248475064572330307999291045568074882095383088760569542882799889809558896943651843699601419070475698501609320685567964101264037293100697893231120308723133220214688136379780396448517969536167848957990491591866430142347156353879497473983827140653788312998589346044197629981625165032629558101922810470037904052460898445980079572414525779597015800674176343546266861023089494219770278879248804419015095383610930556860173313320198043950076320020540585058310716591270542090775299097320557306724733448434187821597159947145971904614746411403967129398367002828132971920879382274580432445450602353453620594941469598402958845709464807699935376130902109093614213515759053883863705760407346933111782111510139084585743091725192962246582937203099282902279019887779784181177227923945013110157808061491091267474487387592415739242638130336468588702611306301303461001861925857357626534054484424132802739976063005769925228521923730466278521691049747463572714630009251338290093791804732042536075202038219826154616224284981346163460307936414287478640016336915682407846360301855926521791550921850307372297787724444002910759886699197420903285956077745071849366190518036150923792959650917479340838467525627987450333269951515054570124614005142287834533261377209303530691532857893333209658194541247795201725110229887083413851474940263831232735109765051233573115066164004547281643954561073093192880358773542171188588045855331259313061603886251878439043120420912044371875712402688806675680461622913118371687038434633637106889106451586143039933394966546646487182878211458488853341546090294423735996509873973843048288564880823910346733233775822133453081493299595000981491184703938336897175292261773581645541530155893699321024620070408979948861897187657574668971076185828808220232283592158229282905149876356489605368865358180775025569139833747259820721357604011594124599219433072767660345956032112787341155978386949142166788131434835249492608646028772646514760993196530040277468378689361945728791016094808127975278802799643743590741787093895212901397566932087036912959195217606947712164979201834669511556788507352169845219523777641257975832872090243090594125173338920487470932716642088996869397358194873633586526852970797840665204587325440596871760061996193266841082305261227694495691755580822086973156327422293596025277888721726135576560161496694383824822133737717064359869344278541357408813730082341802203084738441969912001563243144090630955456637399514626885470319013000087266993561644618027893129097714523472418534957798219213337456587133177298927447255179543868964733379027963603020745610334460290153290319285554221189818437458753180861804550711846058658873248731511494878915022923520303400443929483106729721484157653227076106520988487185675976403526957812600755604768177750906797990762015087558231449779755062678251459453202725503060366711886153879974362775200129238897002582334354184726713382760278289491775024101378114443416349241482728133983077731652918600011328608496874295345020014238699435977468628085116160442269114019511015179131205970201907459755497518447138263733599948711130917176341717525818544448746374453032687906303696684236115260724031039320624689488853753043715172779654582996945600550407380561822646882361981639102515611447239911107947014188311098152418479908460722623055881054181382111856354829495210080602553972993977881407034247709568667105763774168244424974473934515099003603736851394334122680238704197975574566270931228089920237272883495548106734787169109586115348281912938058925972666821167076148924933964066022739723547477582948957892555040901759874840808018035842558555733108358752006380540176472399856162548385701643669289420528647089252045812465026868309849700949054404749925016684830254436413180664789022716046381595718350575249905493075928469006434416666193009305287076143155704346804443146476985769826605181694525705617791741895396366491821150843693948739145295408836208653218976694619103961292190189887372128826190152246063087582173564949928801246549095754054517157811787211057698899885694220573980012203673046961154733657422904612866554461559091917254366405678855282964607070103582825246694441203499292598330757673479253519385016256695564679223489803160101156350473630491063667959995464245972193487851386086231158963990385572563197803833373724796596157379616401843331448719829357264189017055303525702878660252823553440308756300050284653945755773980353688988870884805729498206669220250482432256115796224057418224305850862087720647497117909537047437555143229752964781278898120562631709172648384857134818968943383525156586876015665357673039856016491494531662622354323997382920034560760966427420709135963835140395772765323182753531106779537405078420992696789925601795164742625270173979785663926377420488744180355979924308417843778388535853610849325429120015962786796017637300375970702517829899627781614117714307555679303772416754156242444325194298056449936887821429371001565301321067157023157749571464427191626669501040391893858752972039759177635878501641355212724746828170027089352016204198286577095653824128338485771945865494632767644959635262910947523017382499893753940414138208154795894589226562764208166379991603192674735028466245451957879109320106262131651807686458279066849924033280266912485877914815167028633589425900875055187692283071894452251241022490386385370195671609071342207973423690352098505661107073748857001506258808649581796976607347867308594183858284881822416677622857846449450366043926607548003867042739831699376999091583080679106605705217873672134629829687173274752431299668905356781022894841430076113263063240901640808477945923801352892869715311293378936071707007203171300012995636750510147237732594246979463644338086877951088178067168163126322439217787110344758280265010837132850879861977948951542024398807747693588121315118543697992564777769809431113142387726970704080687373130014039071524329052808159901765991708583034709304430213586069708447809956982495670457596665823624942314616081532296428822408054305791017129001616335921501012037806380793393003978957342494016793307405922743120827670338010383679456156338465325977746863083109689593181229809391185597961743161176193636129917436984565708406957899401691421521921282936747995039286215325744645678653203163358422408345818109327082378038807940920165463760858035833848259451477550198932372679497856716492375906498201660165930092760829715299289846961843331349344169022356598662293267553738812160549917308474784061886263798175141680692183572900283053919422214556194203223722601897075131519193216387370731603864368927755740221779572913075015208821211090625230568437468599162004345095561840748115659589795361598873879508288709530669649152170656925170564092291229851270036177586625359687506944266173623556814924254286703796923778832643367007242156849479095575258702229211428685852073974963519919160426327429427701469297473587357851022022024322165593541213358639165127363342381247290937105302942424569218824008880964468725544303873218391540285834420240082938528170268372608888246364514099817811658033176358888008861990365095790998277926015706965804020410314232163468580637306999711886020791965571355763084850560955234754382104422986253594699680044489959740437248889654520489759608391613935327528937882281650127856132246845779867380657113693744356026920420614645508789912641651326015108020676204663873065180391254498663844674338146335459154134998391188254038215551505583746288027110282817383586876924832078439860883084027840537956820411824815202221919606790985034123682742238515672260190037942894790582150156419823036349532141344315260266891201758728346519104655267780571752354281642596079648841597630902381091848124583280706702632264795692010159529699553068734877813821395394727987885817060943085806968823549555152384843465235631013918854089767517431075365965000631250903312423258742966586174600540711276623800991780623639204181702982620215015411019858164567367883847204099110869078001248570978157867759168192477880100887363511368069596635895492631566948767831619810963886955983529169001854758227255257683036957561994751187682302737821056923911533272298425195887108272398681298646285281989496565014475112022689127915644005247689990727646595812884868685666983695001404482214724695810984611512249495263225726800311498820215068690788895199276315562864050642723548980736690827190712911988236858417228914328628721939626908640806177922909196806943838774865788815598652190137036081310800721617516446975550495767341784452537411397006832546325173082405441234097099603690039021495177269126654923591470887772801435695861296718402725870860028798643784295904210894645433451181637282068719049062585514880998053879400234840878744609204768432837883122935577089272547872931512437674193819558990323102701507961980095898316402507407574174433228205841955444256246151148720595525314633450490711448254087020133886188503456836469762324407970140824052461891052196845665256340951873360446297174315732659193710529347849760917176362115277599007490691425465832324610549951095154501494147847557352008486506822167951875536438431366082989623459962830628914526424853917832176307104359775516224044111032080628279427628267117157013572747030657029505884383753342137681224991877310065245034640556989724168370296989275149667352394064629619544003490397029882088985072521795277689641289019075954528504607674789207311912494839064411629936735541279304461649196428975802265122014415421358532875014408667315654509755917994180444665530915811538913118969061800865111280876889273512198318266082443662161469080988606914247175442747210926374376875129709882355348904000114092137943820266315554675805668439493661447217908364784461258795616941364858160111841463167562666285012432360977583306003291573739347755281191775479622235823154355232342446130296068100989344733753070335026297906371569350027060355510890978009449978608632101981125027104422663062618291487736317315069580045312896015170731364372987701189065810055689469498709779419312687930973954246527947200080685708011306538787926034635574318222049097392670088596840008074197987033372967318329026924001566676104088010605462071715635909709452017981690558739706844681282065615341813923593200313147047402225433724899732950813477438173475432756005629167772052676612486337224783231521846870324167454668989823902325459887268429189031594744924613710139330210750073482989312941271086893621444960411936675568327976202783690098570819845138965795852630298762740475712096541060594180202715876903045344704845126924924866476383500346990443591461474851952997248466697657039063748417772537173706260613956712861271930095040673466627789827254910883175865017162464848325433378968599521624042970916860391823464559198376107130076726953052197829560068157055517864900669885339430898648633054353289375873538490168608649764889546813814611517844113261842044000086532090639513584427107993940910010784841323649222318430726263892081356541782616535491156386173662454176332486352780849403255229827426203073469918677999975530178047588009664708029820950976745198774823235378628513011526724156807344050307309591411095777747555832069664168322131470267459357282685646215590455215123621627558015477841796756436700473643293330507116309828133608950989621924593382055398504927049916142614954553621559447983646851089759764980641803665726506967180432308804330863494129954803034258005038852651271377458192973781025858346288704016932409415282392119090291551154561784283293779554236682730823225496428769394691826676531150328155322030923054141736298043718249759534242762440255093178257762641241187174522542217275268766351632365993225560418240327298257702544283280188207702111466085933601196132918897266716891261326760125866483575174965150329360876097363880707293935117451585184332864959498293730115825979330224114498184892256388541426943310636112104427396956948375194534441935572534352835717786224741694078549056643244536161547612167825725940690924128776273294911953350671232001255881908877556427275659625707539849600161838260159909723938145670510500640264774536363782449222045997839142739226921359765885605563473808270161781046828153427810430873063090040925558915215528615471057520384838216236989529834168189937402742806220928934772929287208707108401205225249296619407075120287655499667731292177977368377203579335235059927446798533880068296382920886358718433322368686279318161341688674792610320670761031419300705416364325734594617050770126291919495800260679706429606778437271425718674740021899205617001232266633768395510826450213186362525470512676137543715642863616209993878419927310841761017245109226289799341743357085157164699867037263693179680439419112574036476066134182117108531152642602197324867998381793621951034399330359843350633001465275704635922525786027516777413498911475603486634182304806669045326712256966394205836100815926421041969885363716512045671799601148156701856595537593829968180737257543964929919252354292334575723069246505252647286937682934301816892313815048086536288745160517260409570941241968038306002404175115048146368493285751922926272313140795444532812677173169858233908921567316329499223949717975282026203299891241848726816202215831129111980075768168361808217248672015887123679099089046294149601465899278805050464694861662847433653385932982340716755452229776549416022286390668010611772632339199286549409509795553963020639914806480873548521763216882144154777402549616161818730973381014820514663782711847165371283683259594037845558826055867778120060545708177209257937040602835977454245750233662682375926457679601285326518632466148286730980552370331620134960396776413518191407386386900983102395140734236022560413162394177294196808959297816415529094375168599062134206734233763284466752844761993843156883214319317000772717405806868913305228711902167277726700508788355727854939657551908720868200667151846784872793497061831970263657752071417596083634154238242937865288904705691003501769910523840820466522307012603947681363556537734473638460715497078368213577376201391156105968618803824348132354892838945724266057810374307032541935824058109916205809234533435486749464837647227083394576922976177221099659851948264676962106556584150510394004114898258671418760917658757568908110882373443708244487496843818182449259489098041004129086291455055991275845276475789781477619090072431730052176885651082953671469626255412686554086793364270623699435693539805850981659827937378884921855935429387374068972922320075955550078918315582932851810039597596174574408744957032294412955558481470013891504671037199237395922886960109351409218914212886384516362710479077778440686850311082596092546487657229328543993685435663127007832148740760794359155976658428705654113149141751454498543267234245105285878849275802369270276718352360493616634996057070229406500727957998499760071589809055957665376332731645638378402342833215279498874741809707015680850061921843833845504812479417047743043052338161379090011379179797956539657028820701292450879086867515967542310526963531057898735307930155747152116842351237823005570874136723846336897235222318955902101389056004932429305828532386782823923698968639791186144331558636701125806353211702367122061642368709028905155958915732506977514098797668489027872752962408921431157112897839096609327712480260818436519267423055849138994991122732896465143073463088054827337241876225792268765447345126791747202589565075959572025721119853356694900319368807413919349905913531111301055808435625804779424282651162098988415231213712730516284734203694801130066632104812305882029503781446923237787659916555026466419646063501547700546897952080309943847586673332266663908026847544121885165562494258446507565768250617956603553177167590243855812169148407031341584017940878528709370276886950343312296649738793199960455160502138753598912724051135112832737755989521193832142773086037638350294461550653200553690456428628299679658002434277588257033317307763194286378838698698794354545715329516384389170345379878466466831640608963752154023530768740881907500620954446924518214991804242853387484116922286432486141217246039009879877807927988382662789722198254256540840793510756094087097926382465098184217876514224956060121902054775220119076220129970560209557646404193919129400287276787896451926037323678406702326344216840798626722975368623344432951710044020616477202188162842500958631212352733700161925569095524258120870867968526128707373125527269651076568531163946229690756378192479334424911188003382362642914630431284928854898217668060597610103776159797226680903287770123844482938787594754233661830969966197303047147685852871112775857366297071565978682847659749610185756463430916280463786870406947143527406757934369299428562778675761081502092519275252158764314136137268113802674149072395905696259926818313715552835208052032836765153537649631414673323170207508306664104785614703889911978210875267025314293862241171798728473841524472696289832800940063900131441493450829149627445366889714889070689506148307851591771440927774664350579036765983465665167563179090771253499515250272876375986250590855816294135783695340558618661326839475063478654019995915317494161700768573327704563936159814913468894771838154758192061844888075221366629661154024456206941350203410067490509997581228591086742883015780135699900154576090114040721200605491075018846527751286434917617787342271350152690972909326347928151407930099457309179706437957153221655288665425560024264487801118346907569919122478717136077854693904579017097451841252911098047201043248440812105206360252447643720730409382712914541459055672869876888037282562925200468124399128141255254152945636255773593385939780037523993035642673887525997445204089906163160494263384009238518550432712155799074948244460760798967696181347558697092161151128043620315801753341343580197046490934679673843152092848893918491257094766929534421158837261320689749740953750213274729787785679897565251370329156529033644380410913395214451777297104569189614054933490569970564890429016163356669536746428498112285149134570293125948239524649090935446911765154050289123315770334066688273301001616114629773874697267852418935824200487041716526519398759680084759019663751447127485398817310535872558729706410867006361479040319080029820185360400272609307342592025322455492343326264837089795424204256588820481643637784571733935031396139343713964678720586764871020108321059591220912318127086154894483903488289848387939701107387240508961503401619524646563870630808102558953572451245630287451054819496814622627553254349097321680802712002323496975553266105146504978111534385620690759733800793584204513424599177040328775862518464476668348605770271631006034408631637645432048481729651796994010279654007828928812254812261409807757898026675302724116027258863410460377668717105688931132342723056547933734576499683472340504032602435250965605732937104315074979267096707851046889287669456581765875068336578731494687756485318601818152050829605654045281541864513093909823645217518470590436818389173133399926112906311669135819388532778667286848086594482813253407600651675923990153005367777060313941885395619869764535059434190639527238730963113405524837951174256476630341848483699199614205942494237678099970889568171608915975758101600778177896146377706090531198548866651974969020503122435368115556401659314576659627231135367579790908615900039456523479633642035161730723682969063451756385767869180979427119545455454720749611913875165281145081825533966947287694037705227120523009610065579586280340103968645551901255360226532126608721771113977777866662351712603955759346139693005966455998111550311126079667755909606413002578421170686119570781040057289775911442883646084759036436045658430448422572651254123605517159671933502631132292946793989147308261563999758166294622814254560352840846265926581959420684513331243018398605511359230734125076229275807235803712304800491630883575101603091997228941341069067189663240033333277553494719363035554598020558251755326477097083872579918899537181832306569847284066466689149843328117285210197905275228778095353425002962164156503079117526600726038943619692902727407302728013190540482016765027140371605735608608757084937282454278851400296680079922916534109259717990484716314685802330465928466113409574150638885565093917954184471359373608849673227817334115869581067807302967868918989367320520049467505887831218054755368345887333550489133477760419632727786558916038523043264835281242249485145560809330215001705971056696812311748269576418032675203049188003402428714308102911752436954409529367359583348896443424997680605590800960889766685902276915513410905791137271236807080033861880826473835679101521235902967177979700293291686730005345791422124602416045939066306000690416602382135617021851970030354486163833711232590325913974991168575665079336049531811526890711076577226565112761688141057960692483784956092334164954795048909805096527608326709715036715711314920138661830029081876840391354077080814605534996010319755959403580575275394428786158203617904308902551576500783207482130451312436710634619672041968812720209608311028147109172524705155913048361383716852675461185744360877365836467908677224307253494299847780620656801703479881817848824507434838240849019939488507761226615653750696540428556022506149649331598784553400623869683218354243891819038246636315652543889965024369869255744158166155415235746269284436354724400410911525772647156243339757646233665364347063839220044621753267839932598843541808230258884464920801784819134557592431733803117303963765722567809005685171709494177294990655681767690708454981361688753026704097709892040110633149720887363505391189090861160493394331910751725371269251768628331967654541421450171036928597118346792749694945699193249656329700180514201406842444521609659593856543378601494620374475006896702978911948925952917818322426547297903910241640816267587755433495838022212166315506601136308987513460257307724636328920269767812061304043028113232548441501910338785166366442826186098257307926967144324988679672128749011025106791939539545867331506622112811225985090346240496159183761146342386066106777562823882358652230728999799524928647968111196656205830094930199196252428731941744973466546200923641801150298691363583999339101889385724681843143704734589549088168555146554498890117079840299169477705204517117791668698298159568851521496004477901551428025686909305649356445976356840384905574549045986564444220718598742337541784716488584193048436997844868620692139327909038599065093574837537324594178030262470338770924863352516167194448087915597997804292161027612014624133741871214542929172721688952875042386725582627522444939216932074409892745925648409214484950490467175058560594326055226213262036061361509607515254314144703660468236218231396124010165439849754329946448474582482838654189721429097011367130008736032137794208298331333139914530624798396695967499942562916064191868258272575872281309462615911765322323230103562191206387422446418508621997039844128225966111579898058165253914443037686056036483895343220618491845308446015762240136681368195363641689493614737079034982054029000232639064937625392078614483361574222447378297243485499607094922853353596905938126381976453254109240430679328547351199645832025323304988727387899932442392018026682821669287980933588431258826197047737489882823309410948630066336474122459934343139783512187152739565884916013126371206756934811330941539826626244646579782056585757409583456000812079128829509060418099075769497882613406228297005027188506200713031662817149975376498414425463803700228543469428045018904166084268369170138438205305176894845313354149149436123555882894242629834253998404056971202057469815108023253354978848102050569519262541501593758238458276819117729186147332646466018056694835588171359796530312325373616962046281661839445360577361804283792394524531168183794638764682829928497553081662392293960380776485302858060515311759414804052758299190464517801942125104848826507115438838971239733351008908416842650972458223982775378320131611795741305491949558849253300834039522586891682808318502796840826495199070798006011825039404165771034071667885944457877372594900482928578464573858888071720455416142928077482636883413765808821649985130524368614045416349295071979442425716498943764016690779889811557130191591217125966891515054855387454015493715545304008890605740067553857169204725291711976857599088868789126536332750619789266809384877613921541228722809242956546319944408844719504747558011577197460110766187504496845360662438822453051647009465240160364500225490112855050702580027219218779284835105644031308644970749701930297726774165109674335758439642052094107790277053966006133110683612013963355988049559715747020001002998987668078946829494366024243127672212000061604160073004390322214809592843134114110458338120984636727037433917748845531113346280554142987517045354344299230390214973946438637606284854494772434958299181449694160312412159222091531967015375655959522282261171651762408960872285525457997609702147650428861144619665539428129656648478467306843768146740930716509915760289561131719185084318821680973356457491122491053719480152907027630729492043357779553889411903415893928423973030949487538618043737668016772806838990646461039317585697731213030554123197840192073945690728419721987335405968024472475738273150724149785496104968721970493922917646706842157727028343621874578424797825749050550741240499968226044794014980107982353457333780136129980506986731898141832968338703103891201811175045292051973833105818846714103444058850783682199243087556929602127362227112470460392880139562342878562175353928728747735040594667814479628316875402796154068583223261121405372027349664441805404989365527764905873530954769458216546920147098986727819976582193894580662135035415167392521559255351914088426413371282042465157311410981145911366278566673822028922087970927412951853560473856138526845707759565515274107589839150716983874013629349258880604739912691222191426691075073990836419190237913050119416827295319516929480759606138294648990785681955855052678998721478697806424852242493828235253127191012523594898710274750749705155341109520708675508761258548921286937095227986575773925709893351677590266663436967030506345712776854001578852007086211762498972302908298585451111501825284496926438275669539076959353401723161174489620990913342479850650010589193710189610524398420202220155529717351663868683285841894422834321761237927502316176772460882224617894629273452258952121156972138172679082268630539690223196284334432184724757365820205202975446107126604830045607000307621744386130325507334282532166817211741356691767536178065487256281627043154963159953412190360144549295227673101453854414892019550520427647637898016980498788705185920701154214038184917044848547645246749124080549432176142359276233584374027839617180163760470475110769733194681176016684769438616328641173504837177364370640402800811670556730425930019100874619483932056263867206361464816408216421988025144221630408894081805492251377232243119878868793446731019634248475962895347455375353920309489055363591514205126960478797468657771511803843053201636781268206780815149269361288287340337923497198035228353203816216028971261694892594434436119846715061419361112689164831655265040982885017165321523150691329396628046991140439185110828731670356029549636123307276776774096225451848722282811464865578816818778984122682918877301316906931634941469698268332056616811460103830852937576646667490262574519141368951142660684528498912651448441003058676038938564859053157246821948806995702121083824487857410549249178015576765063977160597754913803072890135013234151063723545382400762437617502376394421920194980605228140450836849061638707337754695885579845767365506900602867954872506137051633920633344720118059580905112948608159455121833044688310397006085879521798701051168279625545195753596398128807377370124658157919115443414833794170640607727669489750793636460451412311438226125992131988713308318426345128766614690171838482941386362903908311200634575243369031285945236428725845665884779290699632779657271344019647118320083151562933716618440662204308660464840525840743144568951587106855522038376496242975301498799752385906890106769100924087888446691889037112136504146011636358582750203665700972586696937417137526990719781999545507623875604640074115969829114724920341662707702273605248292992740661335982822952111019445241697319985221440022844424351631883374226837989082978085829057456509842083172381985302852209896426908627977793104154229271672470429847440687057826709439050475895119614792959973252881411982571048439836648815699421313088151489271985658007263171381528778711183211352399528588351531662729508273077630352917281991045440112156727829128097429504827848493360166801769546659999339276905602417475847222252034732928264964606015602896964855833331999932940939040209750270079297906879774709058434553900225793096631429304348627184623058002844464488888331662458309552439470882611346209762104448941545767687237809078131430545638399531524190552241642084099087816031492339684336495403559512514814028848510234311274295561227970167542783051884142349323281895408966516328614915955050073260275479009217849998924071955047007971175912688457986770654002281853734797612343400570620074816208934919570646709657643562750831156556778118522895043788033921863941933059452031256774584374596551672467526003287139739802005432942277810908325028621133145551792689782879334358924278262271643687599840121212538335566959475305462081715664655711121817891710015178481957468725492267080846624268388850269730666412639194966741329026489748195939862874453837991682607786037236013848712570815539006597430818831022463533030302743461922715455132106992145559562512470747698903282106044648837012552730218575526829304053447671909295626107695675077310529149973009016968409123465217565527141778684083878270713397780708664689200931303857449626095372170276484660390963430982134307930226044357308124681263690229003710041874950949624908651151212652364012146686543826768129977621951251143183353762489221625433055112901048604318886995041363641766085498582316858637247283678201360002808230763584759294586093989864591509727959990573583463542579028233159404270546675364536419629676567336231862360661162968124988391058721190978793411305296033556091301475154635873037172169618964427471212042823385713835361586491338459111616325685810195253325218126259763810065226332408194192360326387626641133642153569828190950360589406878115172854859712423339906263817868754633394298244727254184890935513584219235178720181299106315614133156083484294391650382930600550897147607990083657649910532852733081185864068999411400953751748741356512674329926720164854997877101914075758376490153842946055527777807371606545996038932366583400825597854000195965610791437815136396572519483323814468239248434455870764885813994879819627977273848723513216395471548188475091630436719511773355366271990225789077944509218740221622030195131445218633689268971283134743157599285098489884166801811418426005475349374918278434721509927952970237116058832025650807022572182060913803532241405540652630491398775680978396022316313271810961952168819653290872278564008244600379984874803619236089655664113444175069639160173117261481449069720829216926452589342999477458732648955398286816020034087371170137836583661524663583198193624353028797076644875039253683227859187284901492321672524208073620791772906154236711862180894423549813869134059267734815412280967140456135503964209475193563419027539395530930782611337022220966665497866967299006419750951383025647361337758327757671655117982169417388763052305616138498334214453889740149767879344716821101526758003175954174737529755555750501567686928415815588948067516522673204639820593390229222890494300134252784630072688963778059854126924274876981277350996057252786287286238197102144920440235653122935817539786692806234295606434098118091826319063947779504978569832717059035158879158905691246257010760030896564552625190879348578345834597029747523196744239937089682435068536128949409925251299594703362249713659039727649940162099013650583981615995446787111284027888929872104009059420569542167389912762755253825465613608493115161468078430174608080260189433704580484839430862362546500317018499911477664184256478881443844605529132865384936409707446626259942880124267251140645225458533695874633982556713114037870514289585975712799178631767128027492191460438644016157482610399915084922838601573409201295410077901703468631083748206780392018474244432624313967223456434001195511888140485547048763142423592738338657236337261318300310916106421346326100113775921461102827043576017265751370858476438804264352606924626464612056441492691405119834306681132248323291402159038327261670204230938690142192155366850052539414562324827081163205731785903214087780257360643223793659237867900555439936531993666964407982122421482803157909628618884543152582010263020165499526001131812991284007560671099179583737810065260754838801647298008909943526655302869068263601632672014315348897595046680741486280903346223279431032112775243871091485255235370804486898661533751085379696331841897185521553859786520443733153810622042864541437041823558902621763367111814483775457251794738408391537018282150981695593359679177407539052563025857171712212001457265333241869621828816899198125461495320798721764833630931218434971416613865248689911978295347320595512324005743153164008536260455138898233076036879816071208921270482504102385253683250893023254290800967160073737976695328959254918398142354691180823108577128668412992343446720723426370144378417039702483093260339589208465766565723341942566779916955082421646274936977636288450402329005555505346338882696162751496348356157874073700678500679999698632950244348336265960805032245990218630891058319157785692682896442794683358608930384092248563819182892469090016832676932237802721736448498527687614709752460992540622101035928331634969464074316894170771939216651417545790978910960171078100452306350184424308259102853046776490262989019753668782123936445743565585305302731043387518912475151833302042946237793596301025939535187471700171292784164756533994963139135601427139767010416469034052763843228962687816429921972288880894398977501179196531070671330589339601124494432695295845651735360897273246706792427126455686926657378469762014105232806988287731864014609020003331636252802974906922583768914803171257395935130722922885095235566320795218351134783046765576471505311683069237381543316605566559047194042447168960739029682701793665364227848026998646777454077357096921138908540849088334940624589713720055363000316806531791609408235197778152209340427848614619396392823682654559548824726866112743598861823468022011117320823928887629819112435722509357275085182209942324418428154490006971524707445896376239817249525804272009045635768465624789589119143520701913000544444539604592191161475269892044857797232620280370345175329589747473581789916463748648404983790493570237940133008098916314865489612977455271876592343504850413183196252176943852596589434246658537248323710510978007909860117371592623380549362683005607576579615537216167977185671091052096076009286160720492595754338040909965643671246347152860234698473325428772319651091075610188580152965354850947749301680401295239228982874993398832466555157787901078178476910433625897196906781783217512933297468781646761005282850543683097855734315568481475435182128890960304519408646587769854990285445346029205081433668060692220282713538220811264997656755977377849158692966019933021811826441884558643969760408025240100238991935130621580940353939145396542075464642403883581281200478290298352840967735285027787461688658715666718862334751649790947722241858387689662027804682486039486593390533137847336092978112267337450493027854812592674139174237467058226457404878010224505850841674666300013409912140552897846644151245044341296528632369007344450689058385072286564281330857473297474752513307539465530646229311955639418870813158090162230862152675083860026184381914702772557771246742854736645434164969745811942469346202966996091147724689584992554451138902444113914853717704170711625578229689966927802363022328408501975786838561976554164603916678448356440327061942173414684648881841668485319205724252878964302554929729903123387190512266552595010489076584418760987344326803860871760708468711966993313433457101991546075516592079404645604735010302381336775224233418237765090939971719611398389458860058977513811004613696123159205383724146854087465411917903759481009744987195189611762327089305107935695338415796562073770912776356710456257079193848350663652782063898287017269806212319047671596941266645281574997153084408896099214076332982814999779951228023290439390638187742065962099623020545700130624925627076237670643847845802746179715048509660949698955498917436906066112425489254917856537753725196598343361298531156463867797209529486336466406796433990024152164239595273473917338493948427372995342208230774972715409595418717181007743936284921072088405976457855252279928669999093296771163929919443823880758457114634065091524978022831904453887781238694130076422367032447990393873723634604608272569986902554128062133148435935344685953964471246774085962526495361147915455602255276829118374494282059727428472117833802638872874920824117502818214648123324743983212530887891705836339161132145018768189045281478350427026009427431447860442213735927621666320969270655145140616630834614774485974459470446755352743938451110503026810027157332496237759225404505047879751095231017496920556347472204085651078485063317247432691721823013863478825495314794558036238535232741729391199978749453161536435312144764124311777898595718237202109933937372932029328308687146134320424848612172794396156357427246517828956098723729262036033260230830692859858715441673918309125316646858005565788407712954724300783654083534021222730096577918202013012860463404913261569130254684554973981098197095953990675728689126860667580839039270899295641596363808409013756959828470189098470455389058471214499330992510579592144225305698561886799214357417887760425591830726862376179995621059302177954091592261033986870332851758423215238296220477998891868327125889047060661155152905424790241537227829151295850040639795662786874826265093055861299080651486508940812413358486403551322291064751111661759346505019554578682597498091634056812283544743594748923740273608571106241433133554326075122189397742529234891556141266110207562750262138520100347959103196074996917412287047686050706000083805728109302446650443479434365151331687371241567125138474023556625483570996636556786745123495184217315023010421875083461301323755749749545112371689177523589149362221735156154665370305248239227460350202927813522956525709103725431735172630853467965220846676571070003396953592353100671340349539113494711411321815176142665526431645692298720529223031839315853650487485283394569796513258517418972734915257474270289332094605847924333815752047882625404004018613427018740100157460896473381443521011817023604226387545122005804338463331203322114336516323403888335911370934054000275935448133547001968309454952558147993800783875067878537512834337547819954231511088373372290560346613716764392057777780581121772357978253074882958626028526152912853614992538562490077847438762476774595466925989786998049754892986596784319323480080858680210598062795258856054486952357269780941528305956764955591192875357400879994039146564128194569188781051613878493145494755518577159495583283710907533514280756811104668849124326150846137099321904350234710532588320305945751690959226416324006883840929058477388121094867866793785148860865103078568201731725521763580494709535151546998550352466047705752859750469959710851267151499255745248706512944048247922698677624124402853026789833326687157801993801619733889560523787796823371039024916793088938677162330393126878909793128068972124049137328499191393928379911691700928545197359592603745811073564244277004896832356456498587204749483524976694112981844725194273610829518795457420397495363136691942798474038438479742427596334505662340602710977838898777015941821312369721632812459721881060543109896079625682913699273956471217897144803343453269020388352409227593189384300941908272229984367262544272726447854397556076717195723726654315497689591583507356613732306296219468933681699187717199955042198377873864158467101625376407702520507480933891661505282887800135125140252198134658970022421544165982744206425462501725046096756804854176505455476317375692836925979961840748979296600453881855134567697817052362574022972660690016823364612503744013807136363764537107651275192092606535442290885825970070808876165739838318225462854246216927089735467551409219899584486445564609192547225893095035513827613443585212525228658697349310272315138492101114996958098708017116071715858194647519201811683931369369810333084692610422282017695725921436123867713616341193674213141778869204886269016658412397696156869553815778191760434806024058309577919697039649162294661252631564757531078587177865309514569257921430770574498694163197149668483829375352515260747607463394821357919040182428451948204748988937109093509530734437839635226879307275649249449428453946409820179941529022028187006071670970234311453526617156766763496870354508750665918042775159303295604536623774802611220732493062990813681552956403137823941680183367238764426607735495459325847008212848842059732814871203922829102032751968336215966827373555353194709278515182772952189291387943124317274759632771501380060373219939450790796481918633225906399078773578039061995203959731320507801482057308921577102830968917574532032369897271339826931120026432667690407192795689420938139333606142109875645660645299963501780557018572380577195170412418605469353320461060428446968905456685419032593822326736854861066629161094048449828050487920861264555818604477791131513121252311856172921773729953153972115063690628129983193935532194652138867604034482301239375278357834536414370810058257020583836836468059819726292557020019197758688826774889767753942198623442865001387263131775216525744736548839650888190952557558777232056387513655242579493197696903695640166430370397605749385119427127911368369503164516378936018612015322502106022546003140237769546205375531785956243766884544823158183571299244904764076646978498738957970228313333141938404934595192842376712785865313724056512906211672122010993033494756583853714138069910784852252846518891869703921830901697538516355037118975801720560989764879723800018668178533907926291079584466011770994453736422318843921492328461113863941230892210467919337811592705324441880279735096053356443431480944593996849948898873680828722825249882955068202223996733153111983020534256732839012212245031246620928777796379008976653416018868493314105541136827800012657416750213738775799054384930069931832005492839592193035695137081766995064945778146243038540683792054074533506521409238586338703487221946231936925542029366473597492732945101776174445644397176199231717835988013344042012185818473465050757574999844528249347824740815231119568282149198674329702694521686209408030523936437255075455671585184973573581475515663848601707905665809478531076897077308136301400678774992285464605145940329895461639602202686806868770407664242537555901398716729305277090610653851962972826969691604868612638999794950528435076779209623721858502191831103168604813783736018144453217902623122799614055093798546353474935993628489760871160674526015549212570068047629795993706950944623167172333294401098679640939421872311976452429925416033840489658934261525324886516686907356718982176453630910089782749308640795692740002247689873243099871923898728531759452082635040336087973980059824836249509658512180139124804963713825672022717238083099044808986775409676967408110616878352984723951350203575954343404499084537659983171883773875314876738645148796785808131742400137024304000527913147771422358532800030579733317010247940573299763364951940966475359174489433310882905196065422375625221508769622557210609559689534272944397698802231914149440413434274188872382622009953808914734920987394565247465007457657873502149195030498199955560771929362177210387930213479379085198623221091854714781991893673315062518317935076791110205130748318354339735981094310245481876542614395922375529384576883629552096044910552721135017964219714852617387893731557724521608429489657581319002561201131673155276742932148569240188553221286433729937086065996281073380026811938090617026078420357730429904481104402678075441001223612420709566839040868226006346517611817245357861875362869524819592159991691210815197773822447853798667526171814694139593443267985886725435282323865372370333036466659174262330301177844017118450104050294250604649997268997106408734791339338062282426816083325936042928579485099009188768077808697234101864982204243795613872167406733439182174642035851670430496497705782960609461733659875198909715633986612768213139566351914093626780474662253035081921400173094195867843775208444664498573256688612581813904770390387150470495137924041005388257327023913586892719741125545573150582452685274974359188613928619782008503250493833017667917657678074075181894175255470953311546272795372523938505294151613588618363866337498828717025725989298269919556192025841237658702713486538853642150793468260689927323309429010621366628909351350110704794991627954663284110062641298865831362284387258795731318535164865180954018459810072753338159623373522809329441312375292814054658491191553070445208083148143049849109719861201605132821777528019456637130866128284108416951347469026474285174562195931480854290060565617396954203199255943583425305055171249334366529029698905028386448825013080728349608045880795972691621845071239279307519102232102481545651736973406078583097008156529961782221048216953021384949737046476755585109816326154626407815920931846905883854084935215204597363335223787747333712755013328997834239974607703055167718357149263624317603834652972764205807316967360016259691721338183219056988777857708195849834206164445954386605211479573221612418379382860333858074754673202027961744290587166914669885736463955936102803473685109994085761559328822258412913583924483295704305934971850227072984580369297844116886985232188457083025296435667865804301993806566052597370983674189389659511511497244920377355892387435760711578596521759009661577378589543462449532553583143779375626617202382173223845478464451372356805231226819398713066715391040554673332074775541356427510793584289593825543869648566594268112315854886354910163724418911635284213510774696266528707127581758214722365632809647083256952795937493047541699489484011762367161541250920767730608423928990963627960153154903985271339426436508006739957318950653474830423903077975860342962475356945513703053525608869158788143480738314598927713981885271309224625298474519618121786927253756720071734409709326084024107812496170390217011868569136822789986162684330815119078425593785683384680797607822012413884410093160128264040957349350204336126251484466487282253119820350405633766075785889039385925558291422330299548214593379757007623690020728379151990206769988911323179318694508088639648553111487009739032073992763904206602399397158580172430770678444372973703666283489626827465002201577832307648353316329283226876672997403136637674609286366446882888151323882690983074721541456977520827710256055591902652211311218551716608016488454275453286680338207630707926596110311979693496059657767301148993207405440684454662415963658051788766201375929718182783627620799577349011703548174046594832815110870490516841001126304118017535718224422389939200826992358597561476149178021954278100214583440860280064640697290148724749728698271499422235435238640635725437165563312699942102800280264175439838183007769474647680871771488729564547533316472019564221487804439352097417041811079366872976200689199820779418947046226115886299867142780064865754145912192527641032232032099755536906121182791558944417203860095681230550412447147589929547280048990710405347886351759111054792561833929923234073987048320587149880583340010965924488477567833141292633722908345103757271897843281885807734901184239189940177798997450193003322831764378568406070922933735699000817314054732584544566645811998111046571648905920649356795351967743268228049278412592663936541370731144283938661006145273829320978049295015560699667109483731495362719902500967716539937958025698956111422038815055218128659147255446448888505095875731296024651891230124697525380545495326315078942167805868084368764160290014295514138297967224166466783667415793146976403444627877168041903786088767521218116847678146781368125935361385934035955534430158698004028626914861620076092532864208826872120989146781066704883601874158760768289344380745148581590513513629912796838259835772905553731956966715078985894433614591115471541846532719415820490964863052702562085199858132249663823531496354931474633078537102605258998304275020529309335762546849946633955975677994722511618483737982663521909617494060484811335065756584709948655761211395282268493457904707314047208552995760019090263635218142244097809001787359472938547212715964062537023108687484083274203127779257053750070086525715776233903942154886327599653135015012877657655207958286019382074423604893930344095970552590239633747214351957160451946129672936243015694414890978749811685841837212364725606512520914184817215425056292110251244864421200783495807455690580324651063419672646526087771760534003035648864017709802045225584076245329172671484192847714274467323192627338435693309382352325435045683856529266447855530351170261261212656232615797660763339945976119567616642464093227954791008041168518675792783906947422998309985595097695216105611326534643629486509714556989065166421201626542261390220611950517181628716705345510672124464127626957763096746767218260218383544868321003994728264345150367691694530180637939191229929371095969954307571226942805872320858135968279572696271005276001689076426684620196264002119806180704337683708464539379229391849781823959727334837763320790555423440650040272277040912026002541189971768674580269495912627881215011414560211321159968573139905441690155414805484090031780986910340882852619507740695816930703027346431730276277074540244461125912103628818005117029430343112365915819105178292678630560308304745693119664341097800377761334984684195591775646885285595179455041312667628627634827485319411416492796170842266336895181997632626297711649311562958169793520829391861570539217813882117634898066464606165657101277180627020680676584939178333229326212871292717840298477715902296842631952552982956264562254206061341747454238918933944585790646586645499104135221480076164264034923431298128984629117629442382719647161245052495693745679115263076311516554944953819803147022515691828062693908341170103738093496363113709220707478270940230051461524694411811461556745577171917724482609584073277968420283976913201506903770753107549730682457113652866109138553908203250574804918381662974282886944911190166746770828897877411726588726575094587245363017827447962269893109081154121228502127275667752804520281280838945938358510095940302123051039209237103107627218351117297874839726042988166151017858942755751360001348134247190814400773610631730916865815935008791455636632910070383303579128451918975123744611339668008174411950854164922449792266187265348962806008240568073642259894420719696559049895340645998644148124663518673806464178225448090660289090962259679068187595454247784902635852167150483315641846088576578943016903037992755357988685566844725624728087073604376305496725933855161768788967344752002695182446976978238151812433067771124175463627460862990236708705171587972143468814029762084963191941796006082052305482890700528550358839480070478450368357032068242042401854311535382210841863676302661800574554379400382832502453105715700619157294305702089470326909263959191591186080253612860130869482564011808674375633781786528759641338089789927342770358687857261317694652138501154481627978595392725037016871676113676075319449038003378457065365898511169544753068826519324300504503611638886359699391906573063773612803174228988254678122284052973975006887867065817735691068775172410585484750922783970265693878122346522031144293991337817285135889238075751182853879497975264462300666217728197530969344133079947858676078000256912177201341408798501546328821406412485171820141802951196117867484756517782168475343930731716845573263195419901001953965918250125162472540519742329682070010539219150989742679674149441786013283060260757862227183593990666499194536884621382058684433680735250791383119046221460872950750419512907539799739098401416353274237119851030394955054689985704134849405537632378289456207522216723933637001392165110705262215367817692521429216272164064707546670369351758121010739370300455544388956614494449694429816273377027516194971821193731635992958697673758303671535066545860342415529444267023741888500292148550741404500916625559240032924568119473469704675325986951208173524644142514244738842991823252991322232692875662247756186468919812768020714392906833955270533145367259460779787971147757579401321952221977075143729759870081614689455816156471353558120331864324651398265147869192997197841366721050732179469026396430611170709426732316021565794507755236915093128759533430549741148820618168066210467207430220616324860589678605727242438236947575426574031387246131158133696188024863698523842032173615801987075122451630498506975838762770191757675883375455988351451875144731085261633975673732105840260623095130196564352758591043955340071751304438105404476831748363792748177283584931717316759515406968137752657673605197296760199150068141216076660649737571659287094007708768931699062732451995633315574233857757216614257112903388113509014295755937790556305031753354300511427590823493070260816762527840946340097809125192973095305922856245140475752820468342358240792863666205413971963401204670289633845074477257035818732095427114117999214867088759327000178853114590210767947289160986174905249511012342326212516179807038750819465337575352306611558427472997019423367657713270708062193753998078361513049796375037904044855648892450478935215468991822052365829273558191216581573612527983713769108041618508534286211143326303039429099707049336683032010341741921281840095705589376887720736897941751183614517811199617573939865475505244880648523797648449293225588817831939477410770906384595875747586895724562796418864394051541890975601594574106701125453311317955806160385665073970943414274257524919172049466000431829853748531405789695097449490835630890141385593705495266091254999659762528762564682993570551343295702208319652674735723154448737113757704074155971071962802229230785696491740095456015326808537496841784366110931917285831567863856489584921008167172359465713366759540738579213276007732295027057029297243168803816961013681611392523972005406190628916744188538233148331951217733188292701357415024214616551078568520140513557274181029763279467940613862023154937647719810524988942798237743618691824949737734355383924254994290915692143166876025391677140444211119830641694330794985852092139799280301223566635761783947572240646886029293991140992969869722595160762698211445177236670648434987594106549250399993390430098931782394953391746892067201169061903102577358806507777592889349118783445144224439172548308726411650930050876916752702521363992903776345587029067365952327670209047771182871746621953118483238460863771838659667937894230624667564985430519686834144569034610087078226641643675590863123218154110600440591410722245873968248664200704716276380943799375901389037105037373378486961109344544498820913960872120599101583376659780682953075732257945120341028065586005259333678925570919026105969221479200027353007047162831376584689722107698638975190819429874712946073229098927644099514807572565831336658110996390575668847928028414800266345198208336376768955403204657145751557161882708618324098624637437995466429327919114899824963587128431143952234321340416931855891222000395873082721789034710808071421328345644125788135615820760948989171552232373691731869018042770526663022260799248494051557593881881292698453544409143366061777069048591844552516009037733485617163183639931257576318419404661279496261291215228083270840978018560277045805331152290184770563412374401314417112980570958439429593988550128120044316278634559715170924371281527711735661844445781113798484292915609123079970282710647257773301550409687481304908595386581998885845094577981091028376354068202856025872971591333854998878158258443911299072822804269095282588724052312007424260621643261208132413378607288978302420543355244300320165291318891661166870486237480950208376852870246573288971030931634322077958248519501446114946687019116303499210668117059101787400605234830818281235745222222441689136622955153269545028996678699394781714111562664499465604958456972314945068133539523953088424974489849210726010448322854288093827691169731355779498324901372904371966279522051469794711467196025115430757568842040550496724714099325503004916025289796544910314899367054821074556546744060942321180455494248112909061285628944573118953277938921261439432676501604349260565537137087805216550000336363512084160455593470358852941716477097867719586918587622921146897294767677689241734006769682927852008558455220327425898107791455641463099101916403965139987218709886436251291566832129567786714093744093638529014134682546574949014416789965625701511815023725987381612165620989316142424630456177883106092366322186134369994802332508004106563470277625358308834254109303861580918740373195596818826618017569450984222162245673281055811408546912222058295831127298313245921514564141719917318297055874473202321985018441155394235746715832535482047710988888420524097253558897776480125633794088936138019994648850075176524492725594594304359022738267491551936644093496376239968695627157844824341001128405417376662605683780406533722266734801683491496959102668307739304686040482999506216503215607523792545257553470300643170558095425856956163305402775385359280866074906322585393233063268586790661235101052012448411800731352529988949374770219390301932254418613637342189943035053234073144234516085814588912438053692507337814180073749744567497188497837150903860091612981914865615532541605430058948326250859342617258191713556367962697150436489978353199648224945964317703096728520934278277158830364898120477537964012285907267077797234446635335593169345482304336404415650423929854888674172725817676725702340736783119800955680024579442730457340289536221152323601857449146650482266186004068505444001048048933423081674779923749558173219503472097632940975301748317644798238689675326887123719657668986559432926023906434186261117216794145483329957131560811584933346025965086317714902111139485419205020770524191578443681679281739619196874242739741794653160986362497318443460722056423267311098712994845030489788971989521193476825848518859918975074484206698199866913835351250712403106457313354961243447582756432939664150842047829154511580469381123889066773180307106594309913109689016767043721992105224931913381401197863534146351231693200395880255713089532149834086557761433755819117270966196078295064376394632907533756536477749684598329512270723183477619892844755972776604318716624619817204558169014610230996920573696389346494484461577728788053724967431884373576123051469048244796937524208565082254928034093624278835376816519157601724676056844252388078011679890061584302094020940057424613767025404286943553527087097412431433865826116610089060242242545863058094369748646333192532366523846488014947884901768554079074143030117588247792900891819906557252434883555388066799482108521528698952645139111010616631034347982062660264101566897741307126029621907882729917219056026000909317257638323101482380584437881572526474530704475678543651893263596094155235412391588114304237195111047752933245520351322588966519545380809690925366110828099263608069234184122593205534673319852711362746542186456124748472191663638347588424390079829316121430125222494865267115560624366138844231631663405759445333541031512511215809769188686348204439049977836711081821940070742334695297385113752532566597955496914678745984134454846698932199928907442160054190483507128604112762751537160399152224543372819195355172809179435091079320680960504842838475540999014980670151139859529341124830991963402320534052160931604465419960674199679555096295499228840391653496376598563915845875470199275353972355644033491639258560013942208638192792585594486075174869500211038833403835209241691533014529237127331448117860749034158253882446974470059838154869934114332212467149757662689327280951492476269198667497351181053092421698456551547146177804072781562442063789267916405072090471794573195890444302825057951676601843369150202576440620687646299506155020509964603144078433190940360804568421722667669782140904198938524682590935315422867989705606328814514456531929419013897740438832052000664214810582129103414925353386242430990057420839129973290920257536692692617833388529700039735567873093702517021398349189902115432963879141027610483308511118118282607535435171723703910446842402783361542574332984378929117594999011849736565450992737878354238063504804093626142271277564492914439480071033887833140739698054164525748326709350421643770759088981149574548186676446581575285828046391164445632521544216426513794208101529623076424233588167675965677593265619624485037839360644715383351562318842282559431535542396423811159509326340709131550733129304861591058922610243227498624206072623908468422555222509192567887360901014899551732636685809523101119528436282178339327218566894048164107471262606345636164133691347966225454271988990802832169166050739803702214412728037983995510282708479133319147836887088749150970453807164052177066661630987450256491264870197198282105753790897743101564617268854964116217331685995549653860820615081642634305751797122345305690552201525533435851280485043317176441227378935623051514250841909286096057714243730309674572869701290233470974338498827241134050877917927938731513346591709687737266310042033681015108424577973178984658673855732909304886018572496491973374478606042849488582804524982003732235732333823789133651639353935360867523276006650915877945434858329820691603351110229364854917397905538125257064694324448757646133370149469962965871127327421803509628594892418575728677281274516689601906306330676630964545915095581700828432260146727727910232108555765226940722246842576812835654262534809423823595666153396137940412923605492910656445205571460604002896503448897090029488699356719076770737275695038787820749771182173851412903887941748605206946573829514054575919299799209825985332086599357771127092940827230857716646549082543229897086481726975533125889931757378791149649843602498703099107676088489013175386563615728059937500397554864180314300252349674245808014856556414920620784815536244891732880343841887518063646572740997766542620039926430839960159715041737460852691249897537515823412081721967924756307994522816565718729171418827068207139575735554378435351583442181740409961181949255461569185627813258588113726318107561294172275473364202276790894458596705691217534193045929060127178749101211195405355992327348691168860046696039927181510680755723425927158300268621456872791613247344296003292923811296178661391600328261907917150580225503322280398236329211915451530743855775417781042584886241399007731229714303685461278272002165053961337767250024479537080833836061094143520290150532660263283338728387635611493581450005589913262953982085070085267472495890152642384633261625525141523779429932386639927054576202271716261326565690038291357508398808004900159748246072700200455829006997170607874195777000542114521649560224512811354417143889789274654415614862583201134058570160045610624909309835750150004203932281341370813699170028250526685686731848006122643753318734151797877319013322148954063272040060949090475427580169042453936878921423919583541870064542862953461765537045805355953599131986192952012451922853698108296314260476974235812949562943604008469421393345835895801357464005781261029658400664111644903676942294625177951882580489714580343738496965199449742396993918892077281920044404235120303418709360843016838020680767975855495843673196452347083055202737392248522332715172506039028534366690009946631439419871442517775076846342009700645570916937567384180209836446503685623810477796995917538742189256887428087586350104270587308414471462008065968050438359280313123650581139260461130517435201065692457435040247484071580372602468106244469554871852916960102826110394338060809359145319746998064787694320941559272299727413092956058626367297951771358987738969781727876884094508219227430701847042277642883094918612482772826617577392506662109532131555962105517747554960179169423946800849749661510129475276688693567937970334549759753871612177706439349154337953137289197747758950097733273936458890786260316501083833378425320878565751594635009607368208661524876092192806159324556874877703997656736290868499387607701793819185664633841023135604155736293955421695537333000704541711298413862315875536018259309607691559865985040800248485215938975645321898232082245681321954158112861422287039231300552308120904540612155792229982422948949878531187512366080804641716046831821405571158316812749044794825474023584057801773775583950443904903957812770495484802507382108460326969240366265601205950370143258224934782089477776736902928586816066070755215688561630315148289348194794151388736385117241409308020241091432949712308016391912269350786817781485023197526076111762743409625233222265103015779292572115365111159437318348120909302546282740673810847819734629841281990091574205875044800833106646695078536843449315926314261620272614169408339893833131898780335971863236079470692819580674478302973813475353988626279883858243487681026111650909205127344120614172167104737309010913536839346666872190283644124750779960008124149463730108020259827750409525609404226682518870291627003071279215510659712712900671828009604003377580143640314041152383412917441931181940152038072379354934056343028833588250351381120411533825114267062888709110922635051677660163964227900542423666312692669726565228758088048913524327780966005103825689766225076281491296988863545127704951573733255850293997428784733294238722748025390933644804248429592024145239358665319305501513510249370349597927482725041448965969444990101497983165476376751878350159221787274316426115338126944824735997576549027967900443651326359509750047842316478649652872802998397951596214807540821033490153470228456069934105184515569236931946579028497883062440456681665183593697918142008713383562707368751599657667570502161109947883540718300756828636458169325722884772676340161297211079886797487272191208179172403621006832355448758841093919716589173291744654359549951634239246594801300235871935022645655952105916114428915741969608528256605208743931126139073317443326712775281531875210003030414751466239384663608734433930214359034652883782875821269778801226442564070520061247448206499249925125940955080415814871592402576168439672952087453739563342701319954020851313396189918245790446282696153893380611994520467023087851566905831205691997192071561095253140167869640269920993497378275027554635354472427824360249502078440438529508196705139886616706240317595167572351984101617642648908777265471715166120987966099233368105387507709879769450695289189857498715110252629688939918684940770659261372626082583501964881432732518936533566968463331469607906447491372370928642027594711918785403775645974759442683931634992808074396550720072095273597203943473610484517749817219141997289272323391554991790599442634562487292341199110960844564017910558652289400368660987657432284431297083521427091978545734009769018640002698334619401733692845133798978325216159154843314758245084586846278097996371271835642732057242670146472349429745414323096996963682138353278409806468878038636019158730562180274311862343749083177276315384677687305662620031088209610552980950118246188636057892248618608677602113505028456361993445448331128101551024812256112773467729844708337039663612675096385065800047168237847320809683982545913534159551817562720236182115984708223274010021393729591799567102993845156507219497189669205350883463673799523670950945178063397942446485446189652269380709019622678602272974836681107607252622389348243640519880630537963009127542541761215876172023356715850444543820230595523235727319695354809115579273178858361623413109920826260508521933504347370833201701348018191639457561797311761999525399611552216961020804608120289818709221804755397585607916361467728111961838249802071714311074624718548033707730425318637727484631342409977830030303057832580708903418959591917659448756852345595264277014255797381974747925498305661070313232384748288469231062898304533556802029752508611295820052167057553249686569896094026488901758064056815811818694226125429571741661650361049638432982360490415236885630421037891826037557629803318625586774974034762889619022806486801222060333498394989658334034424168556810427832073076085851113831873665944817342723916647658064666080690146262828473424320197505248436393641379049059904615281531188408396247219430005193270567108510392958272449807335188771306017678306482942935032172701213449557540247740828552587681736648897829167751192351267680546316941487154817191717576672887182682236770232897554801066248528380472742102811313463541682707219706518112098605097738233924301489007976266674277145400018925880835820512885335619245945041631900275234059707143640134645913695111400097628674945403969013568388988668433336589937597203015136101778329672560482158996881285628153117641329213241674203183225407104546108166516276667050840002262176875855165760277262674168161054234623505673965482368824909784929241520130936153840432878285355378929142409527241762732255557637931707719001390283196966322794800414702427742748943854785998080981061146902058884573664110508819586681170483326593831748370148452186647703457536966656722408825503100736222418356231568405311015378491198702375260131736617392051476696888834019804084296345499327129606906869954307354957138274831145282599850164829486490478155853155779134348257436089888600806092532156167699520745944558541232404487309019558179887002619900786398595482355530846761396605865673650672545728103707769937649779807682625284692129157138332152117608199041713457108604397302914806816278167907452092273957330207612637654306787434360633906422882750741442568951510473046614331906377392721833631389203295525468606837641326026441700795576592305747234779665742950033730553020438568340059687196964714957815312418096855735419115398295583378070857001397779709524505043046817928064990426800754576624340321307964365639129439222114289451012390280809276685544655625238777355239230047692231709889769518265438849719527391139942330396411603702366661613386997809352143983354669252391464603987971528095536544110625303304060717062840858777567457847575820323842262787097006963831464143641792357159983250526084114549479722246027787127091457505357627623030177259431633038383929361401015787199982625715636568213424205308878142941045766259509621679429423743267755097276121342974115397328188935686136545411593981933775322113181256593135672928605165930921830564208665952697678680964650137929612618143441900028907657482249168485973010614720876379880291632245780450252627401739290308263204274566948080385297912146771130942307669936883254310530485524667389136671216713002777348040218948291008496649796174208174436398921606638670740163660319213733372503732302910443792843203745203178772718803250169886282252984655546316518498857503302394666473339290131127543653915587693510466475755766408241453002974617767098013598612447380265543523671121161356536746954520913157090085363174055573606422741115903053085266026876613551000629884509137678731646084869744868219986812558596218661013739801017063557783111544359446147451010278829172641562983926372726668086493801428580897952395509861348952318365764342865673399880315334592518486573977366279559986312851849058516165026966656994891914645024253708389556497429182994633400426025369869000568800240648329378323850441091734765219434996810595157087868036817235104101214328690640435509720909806369664561487976526017262028924017327042130101064627109167219018507244895208119020718901338082634066902252593476168473413084058011965312553116471692716484713876523878685281557933120079373107433236835258542796278007638370077580527718664030664006104536314607468067181466798747577633201805311932765148276748317248249799965654264839246707987042152323515579769635137333817060710738178994598591903240213660580630665533994974657945806677259532877037905145464893692330482374589171030998576766443311812841414751389713250600341646226730635066850146019493237458260268968613488522172508789493238927470787809791832801342944509373797589970953540384585229030469770739229370228418821672939493767848674431568680191774041892927680062404654641386564409223291156703667402305169585970631419883031362579970133272724617272315169871722263191868291819433163081640273394646718695099281709748718768388673531656504263315030975346846288234998024923356199614367926338081515136571208796667673472248908666408556142798227096416698246595282761019968064054412142311846624565155721585402988765259218442941370819145604680407664990363860093611556009297417622595985845870013254107057142651840312982046968084518357613766166072953339283427813631798486468304717701524743093042469242561130758595822214625783958170942492866302913727572919114186441659636229826035799616955154182104466005337142150742396209539228575802439756270670025895134800675221706500986588295850796147819727092497494928885165238212453389329316997095137197033446437005001393138582161245507585109690821887442926395648685253734818851242438835654735621660305745181760322845348178322427987570900090844864257183889357162752161594911331338301320997822491114691125396967594432472115737367788733405193705327372371076265174635331444213882597914722928466169113067848183171542450210820810771527349711043968546824496451366919311365465887932640821510880037033869199691558608534297056230100350244070694727413420130363946402879318999737863001672881627163466266092524508513939764811438643829090640539268429624383438957505309169261533360318103964362243529864535501181601414299389484024064864952930599817349404679804998345573840838869397001650234599993928421928578530749729882251520124985995484454495388962452402071288210273155248385090956710274546975487509289011622724884163464191096537807783368811280039079882284741716447459159434396629625029333676536830733909284780485471266065157062431389838763980809979453305982930514789223219790392705705931895867879814017514222848291597875407697440402996780846173918833182544691696831620864670561449253198659790250132006842692586543053261134842898292525460189569821148965188964483945047177067687450691990240902308396645235104214587063542330839919362365477211529268766486270180464993776053227283364304021030840787509619997005041841476811072726452588216527435763784738830026282516162781042686203542135458907838663250645209858048228670947240632715835415072378350285396792557576576796218115913600956074862815033170081837458475458286339173057464047269662403363258275408043086240796382106635602904808996432048141812465241436728329414339266628131390615836360155844643944558346430596518673235087118297847462771727271170808658723373322079579991370566947059916293155985801344834810365993566023370638497512137315908411509680185798712229678884057669622624904911444337260280450570861715625930286166837866556770509714201479127658399456982505977273422581717952628205327252484229743557033119582587484426270964126227033041326494205076015897392919620154619343899965758434495997105212799718958122520994206359363056878315042783851179650267435984337266909424449984346779901913688310957180262482411729024465160653181783533248581666864105921484013548342702282800619757053416437812038055786306546080381319902989857733631529310385744717919951790137237881509507989131288629467633512953819227114432460542490759354225494660242869808655139601253060121415390546188424682214410366391360470099573174005407960882341922344578238175937851318085101768591264329866565366316466637780867064364561367593753788251122660638953420682709125293506406835900744554276426063692662756371499300221418039406445685257260497809005244488241752169653463989794658863438115186120379888145352545823215094387437503375751318569023269374199342221592425575526944648199486231631778580405118737963472346134002690789609416148044519067635079536634965079111430839264886084168879562398043536722299275609701720864911943817389001307426437263542421177859953525256188322428021826836080942766951938544329353208310579212208608378830148256081915982967644055525267567672978340411547225317178563326564536435545742143290265198868868798895148832437646651841992899218659248474188114277735524444016468469373925207873233737760185295749900037791294291552455383046808149834079311019190043281242244799061327688399675525055285428927611692379122845462518935357882317522198822525235951674706218502712618972610638283898513079039832205557426779442610537943421124884065131555208443052578963673662245492975090741949730704079177545429844802303952466851263664201023728933875079790437851456520949651460309615086289673558047737161701006703939510610296911118158516868675592027559277773704144791375868383457700549706016971985487101336583680524869185980281775318795300613818930821700495107576563542314075399952787477814080820401959225310588066318610785234463733933944704660488956300544711724647216102268060415544992693702382702954285230497013853416381954286958930147104061570425392966137337391396762874575245278490129012489874312272935727492471379053383808061081293457281566195773258484327511308797244065010998524687553590911773470893916188238274219916999663978371295008835366412027112997477287751218087199515994347688192638366096468166830222314193308518674303793647979784962866544085452356208986046335278411615165256347245964086202975097453687369501166520738942444013825287187962243823314650199820527668472350729428335548271483187501855672407221105417414556668587059691468638369050003623902698398045011507890648791045584211879802536485716764415175358415951067330382054725123173176933898800905800798194581839319233233418906593879437588553290116731159697135657954257135363158392597728392168313437489472148234705240434324643670486677159815447213584988954328497904180638736015867850728945387094740579066087264843675234838128695425879823228212245163371867977492216436857994149592957924018393812177557801107844177953231211601038368222433523055633660686990016933413991607075204443033522171402100508360168902560554436857479692959937916440369603767656670826682549148712001268286322392428227899525325776447152219785880705584962267245803011629019673299485222522855824096243514386099812706973998086363037064431042680164649567607519903640812293874005829979077708027528320594964492009406151372096975147531838404812203239210802380144687292216506097328724421329032621420506977950033484425448669996213442036476000891102460807307065638920398957080325628461682301477175302903095143673356041183498476172627922703616028738578627549517794595820366550531521421231594556590295073724348421711542194184972323205723660776143695360986061526586438394607419584059125431222276787855837735082030439665439107127937356869306310079283541807991696594389959642203788684957708873613712672539918976245885959302491610764538633549004967122436626238910604845756702448378719094082311409270188410263881533154336755032442929153436066541448091517741542078580387747055307318867886456531732575671180228239745804008086870639313637383878520738523846010011273058318443343677211745299297339164941274974570827468542707721001106028905567015530547277371277783302564177584132663660782741239576168870445328060406670599824965420609137115363506417264326436396546223289480055108159586478835232136126748515807585013651398715485348731494422283981267689978456021008508249773936736409175351835625870283746045281593535900838458415627388252300226437033356830374156290164754075468229635899956481556855447499953766818379802309478626954730302531544193887671952969934809349778806318588540975938438484780398351915392836888530637269844329819833921690268360780358812586975169347510490320443553948445380949505303433928055977067199819587545477508420600889835152576234653048316280449554425290196524323865853604899371363969835708846921906613519053449576691344965114508803586709743530812686955853933425305751812127925704096764501702636263890224836241353693584574568380427812841360080250903155478069887706801685194088606580373754934748278609937882384465415722754821164624550511993641665616826848068038917521270298148009798184676231247604158373054732471447941143938010309222611854924648248935313007839494198371435807168322930441329383623144297962586788116191962666017514593138672037183801219217891398082238202600307986425656836670420499519733682592029466740251729796809208061813154122783728736121939909436033965313180096506725515512960690647473628232997519331836250620957735036360733614720145390387610961907724439787969546014567766604712115796977763253075091509754960187811393433935275174823500256204508572517837177728875276960440929876626446696634703139318866610674742718404850833324492367134272014964753542121569556494655353072951495742648636477271233850151071795988096053693884234000504639204159607905056938338495745843685138399273188120711279914587878576036037390177988646524733702142701794629550702010421853304682745323648366753958733936967384035558668575574186910973949701159695687240267722765811429798498016091614261695347537209257267435000233115307068726391676305036326119753884142162996514089102025342694752075592279372652161861164327433419954517969281639528079509537902843001610406475085916151709397707413002124429180015669821319030387158431949551614230709079062324849242354397347440292946283904336150152488457093016037565360727025913797259425855394974696208889795989218044632197704989082543975789797729423494019737894730495395133033937015928705099457499683711416588895286870114818956291437428360047518788628316576906757771851597260572805828709888422684786141372029063876317345571509303389600283587895509283547789418259808886041562293599631780332976931066640926198337738105553891292459877001523766017176542510214970825461241427273996847148846982217774728516452830046380582400519391067894040310967767399346515371792918536502690509219078212076549085022233248224724762430938742719800987144496184231372450816915962948096226936437182706367526543790523365124884123849895952472354302281032209417615090858281037160694027176651295324901730505382060140685197022330500415292570438453495374327742641168477507217954837731045905206620008278377137981877768768480959735475388950799462211645470354594430682745143463286696805529706282200798306068317966780027647770200797560308578526749420552061679572459012024724592949054269283537486146459996747031219923414188143843038944853476781690160097719689955743018477350988197808929658080375160491899254006288452919768634032888587532892673224070270012877024360651945183626108056137326212397542824576716015302745858748201991201424382091935490698468120852641018251188556819415479220010780647414496162969302502174887930992497664363892962430700079173975539938737648132835393488362385298292148873863016113393167197866741540005372200100299710897093513201176553845050796479780502972761987610532718825458563577889340493781766043135936329179673448833280284812803722305118320672713446094307979589922340570459805555172492329505788476610066311348968764573343144220610496870599776929738296293427504886819472039400115458315379941660206707642037523178476678180509300853569508232732713723708216130330335655799559871613096092289170739072499137846315705292523391591944582545239676535618966299966421141077350279489812251563630569497457230532960165715149760854488233007780807463177985908320208409190060552404511549782407612469158623809943509340960074202610998783554830818433202146623144336712496143267133553322297189363572907291657658211800892367250703956794233571501614505604554694947740239469844313440790764512914012844773432591948517301708137179527361572501632390100504876115193883787031733511623994881730435451478190584379528565913754130612008346886106825018701086612053896717239082087872256423425550911467428590255746105225459292217350724431953114429278326894613479059169410458288893743897701009484595999735553497425186689082403123284958556409032867465820861548526255351171644228681245229188713189648414645255570257008448424488860970687750259300017757899657863737420683468585811830930865107076706008868162721844816580698440798522027051810013821271796280486731724847635040476935918941040345939770522398750698350678817580847981366394897185533280006582568121094836776126191194385788422980991433666138463615813127705228787459461432379844079457135710772011093742748363755070981055891133413923474999443654993494530026626506683587868511841880687649738958483244493503829941282658482362840079937763012510124915463626032775695935085557365333142341940038488063207405414296729719669602110214916923354845634533082991359488467290791588446819417668424766146739595958068817364044613224591771097052712747961320090741705077512924125399182301903958962707681459037102942577585387150499856990619583499273301137094187544151363356111140259193445960928498395865746768256976807471379597645840830813418894510584886250665855904961219634835144281120890786542262928715972957172715524597642822513835128311410951845494831763703602320659524253824414827206209913059252463262371508650822846341407316272866750479933702886996222565819804894257819221284775599996781808766536905961378449939588811117837647700704885403130931596486699566862769917570510446737710415155782940111552026062692224961301270913480850073072223718326749963567481062647019614995250785988938189510721175765176796237662351166641346192522312075530900045143720956949726219750957840267110369003437498389543853809477295172929783221577051806339848860816233079779085121282743632482812711347849700725985270525666797856151909548275212525126502415866367797018267489602106067832293160876050162404020957519731319525264155911034218877054624135157885711730050735074219366134759967127430544425954595076540058807048845922835143117673238686512677510663481302534556905541047679279618153728482401234706705309234644796934003430618565565534381644310627752491094884656578673649018351479399691556820504083341163845974908623681099347570388722004020856859747216163743709607156542815072953771222601985683756452535807096660606149043357572217808956193214514325445450744296840880085442170659001280487220802915322220065546175271860542922613005805728348570986827864144847541309190044642733014262389325822886564003934752850211366173193736776362107443829761805228752159231690246474529813613503209667696812145390796540984989066167722549919149426980422066044962846751781786575280835607172158132324187993929330799896541296217369066313224195400144390197025000416270437701136277419526398662355866907417061650385055639007272371664223926169319715145216042875343461983189873237562998506697514471791810130517277033961321825957227902626657112767880045374732022944612264103933631998534375620008971154873098533297704867041143373567707145811627742892031982800297297241398434160712978936348586871079148430644081165964432031186236027109508426751721397304700777446397072786028801855881505465537833065512262426218886812891220755029018831655612476250723873288754074613178623401802719870590498773757631336369846765827044555585643347532208096379267660801281725743602852052819209266399207918129693111056622799206917207981666512385937897685835445255368357362990389141881971486629551923096630252454424556733334386754925687477702316201753830054141873081677546092072757363433945856234504371883355447292578400772063424892872430420054181189777623462288646799557489268726132994908323105950876028548333744080054688380385587341423750926675519608966060902175444550449646491556290749443503954794629416916900783265960779351294837985491846535943425500702864273334083542926186234040025372525279213766202773107467100325234766114192330130926635125851044721348271479411288144795394518115472567221306817894749049490279901382285003569309604532559420472274031167197927336751188061830124900033216057023322399234021488933101102425631778861801960998169330040044136825902389656989465407171908612778199981787357900182159294697394740879241947969890581887326549430151005244875919332768014224964368978133308497413066973275856527931648596481134345345649012352171999442127299304072826106679012946585961338197196931396703209051605364364524587272335285320148334569898730021925897802245864236930619918488372817938819310179847685553635764502791518023998026959255396758003123562097653278860124916323361253063978780822957100801655651855899571030397454903960921105397224977172423652108130773827001576674816713084819367639921698338163503767836408259620382746655354597391267507018458233803938274750208124298001994176645177344467313948595553081441836468623653108178552116482719603600413949195996343804773753241905181634703616009264320631531687722007020056738196834388678127463918851095743636767594308370825252639393372371701931388161861512585962296368702814760094608763818059037471502841183761544814753920889472137279221775239018983473145295632651126242194596323043544406230030986159724698978483087461859651462321258498849706310294573657156961896385720782899047691821209720990918580929880284594920699169031349780857129215328111744249642595587885500073098646447965060220247710105514162118170832987301705176077514918903237229710247610408021883905383347526273829352912355021109812808854830650302572184321990446053901782954517008355290967089474756646640493170103702933925766936057382985267644596353564506872389760577173341409617721827908330734180066313142173297482261062034137688351731826269533132513361903437971639935313324801077104226285962129328771180374946219462521351882941131838684910703746924161509073768678645855738827053084236309851079728504792901836288861381762863786482372725860311912559128943307222432826455825782182595660741845759152683653524746307163371742808777661878151534533472204267366791335642050993385699577568503965709824454576220817147673776036083779987755013486732081776197216330949217939590609522923209832571958269882225382649042798969273965858888572327786263208677833128958792652018758785841813761263378384406097724696922198471947849028855218530279555619709917847017765940547719440964095114906855563193175505177022253389470730689891746898755465779931941144446834576297862804883081935739859025904182129185552230430909941812732663859960048867732093850324469808990238775303257322444195983300560367381533234763350208824752656165963769691605984969582488908881086307078562497851106137631954693195953896906320471108340532639846153251124274484012438663977565728810267621081467039522910329365824701480704779816219077663396143657059285643705955769845001423231074664878520299720272270693043425653680513740557230519983948624430320417077151564378901288107995805146658648634998526840397850471444901363038410372193001814147107422942721941097950079255582875914926735706762482255624004354653369781915423817357662513310223757478495479994312364896924605426553466346050861216462691439938813410745186047596017797875311658906028996765144111764313857217982667921278248034505438594141471868516858905267191377517725374598952290575262522544273546200137944811805258137358231158018198539395466677819226015898627644178651366664610550266695714043977842699774097989344016466867713826538038004716645131591864989868355299180149983791302678596425979806577637964121192982564401618874569905046642034115981612070116596903786432731785498695054999793591388292720111707917244790339415000752434896499206887812164427285655105613433057964104265612659923279145767970716135429302547415394592067591464499153162434897676646119455627479883678960906615987568124704645417650947005353845286111618078650867415934620910340681933052776849732741838643262698306069126146673838024355587918485859935473149977120015684286034028814997884426276600037329828996372811015086435152029259941765425485460372453501717073673825291667999764766841691886117391603178846380274114989155216814666303794248326329305018083550595202725082781201657813913420367647707708275433377236902073666551475646446253862024374428384937414769429378898203538152923140282409083799183920266733452716402143468664567768534232526751847181090573272000654796289644423298272354611247748778275808797564508892644143834999544944338890229110840696697461480627359656883561881953424539981543070449933500125491683150384879791664323755770026143069681755026416277656581079513682197556643500876519446233044026305163634773464753099418171775953129858651609249304703799850883509727574468969267866107004305848182253725269213253145222846713621075126820635662441190057231497962744937539189773312041521424350993213772985446187849509650107373614122790203508226012801644880985369961342958937891135994370856177211452791088893408454365806840263988210529615528694687824538466591129599496011584989176158775458762381519644683038805123407621132543378031639056817622610753782874356654286393118947354965622023488093050641261782729880071207945528776747025131060256707645522655419876291667021394229390217887913117900482880656174920275091654353070250159473575369510533114774553088969448686472803422465961593049133729839843354142967681588553532163484362280632410577924205760120325845583480502095486909425988291484310330657644595230869405518131218369475527005607096588638580679836474906541877791373331782946806290225261149497778289708907487333985185490650383854038348533449802823707308926067114390694091720312201476893675653931274664675152064553862649273124824489740975101105411563357279809240563246471758690855900757788211113998360544734245728178275165444989190616546768140510525172327866643500564967657432905404771234691061930421748765915413848665386631177320032896347095367462844867618709386369002826672344287917502409938000832749352638587590676036741785129334124799027300482919678604251675554618837497996378625731036965311609755811643556411656546192315714687109639712763450512671448625054324305203793270312243083740102400429513160417850769036259970147019352788539093247190002206753584473138384576586321160486251490633774794340407095354687771027297377600433263553000096874682322074959905097820739930303983424038641474630141101199538424919387045785692246264846894745666935285638506038249224299080887207590403283861511620393934036055653005084554964446228303980226654281806763652865561815933108625125163433610388368148259278003522156850133575613349566663279456083230440284462882769246028752781935312143739808003136317265992736284767600987064989618700967991766546648003672150202751872710862866770247507641819095188365994894638621368877370372591028322742661525593000486929975278026504143596675489006027212035016598087071304352439205466234897903762192275652552079137366600785090294669782708982158945996155447067505589822862562847672401221700889387333607672824449867053732912305455049572682635863072856941355653039240544697166019818266696938293821627884914291070730781760794568529908504757060111576523725840125874911596184388755594203974327648969628110296322041683970465886439956127534994045445134893928938369981873980752801787041222731681960324839165285491976725156547605324888485014625782554232620781083008113005773897357321813184110166227249222892122975224713164686946544048702691179333725661008444681679120133980117930517026793311601460879761072539570380000297652028982881452673139502866564764726944410367817417444420003786547245164503380130072079542680596338692603622490815522048920951866738879666216824343278705506125878733718984649210290339137313936916275557311971072294709236073243252266557472199670862337860936903159298454746465181845060388215158760623531007014422887026734337557230608449794553609851673318442835459934752465886120611861728574341565782249196972583960593569248466759124138140796673299579401816305663978649858411696414185452028402901443777909942975034487293266068413098161973548790993319404347370797920982662487366042759535810386786415293983899935617740726233336086482415365352406938273602972024966511521376370321561643464696641991324549298233973521736155491149469636706460379707156312062296814450826005602439234701005343205937891786803749295262655139457977665515840178847766933782012184641682852916966931556827105869556065835393298564075877976449032842504399912763119893224590003844063233731329036652200448898991464579641073394375291805456662574953733161232624186481741750030188388906010857965802270045863194039716845811156247869490387482377732320000722713284554939801534045319554407958413783567730221379346352746511835381307750980059025473945997152835353156971730203552577793931611293372900635846006867259213990861062085423258636223648098562330795421054053469944007813822795941569681857830666149594013093023688335341962085919307798438249048807925516544859126712567442817233584935442562663619284333102548188015189107636524215809585504559907267847125446506762928747850663247514483712078363975154860301548176248972610420388646241042838393784880944859863540403174740783639160308107563805022033390775568455634530357927341738229948035623066826306115786894225505658882877742769069191233728154322602091133672559297007556515471780652373071533941759760121703505323453041776200813842028067937218017588019501478489286542737241881247161852967890264744212396993218398840935869198514092201585160284741412004887682375212813699487944382187679496215646645208172966575192917479557303283986830309041414622710960573253310787757334345962063357790354310244026318627320117801171935356388524476192715512053907370125930208951423512093734452412611921297873630521575072633883145832487080416482672819260962889859513037871820659637750163071374340959185896234538566411776112775707163113645699568420417222096872311968526827372751293711837642738183022113552309869657405300378813266698838075680509950859078828053730194820815272194438665998935865778760293211514440797220671390467394845799138134442168983792897643990800953159064759142689302986908733188104838612473547039904237434942273569221659712526521381759361043947226080602726710995091961769825367168899251661115812390131395005831700547758852445736000904188745950355540066908420470362106446905088467229646598770449838110652360917933956481069144912633055536503809197335169304019833889714233042472745803090178841097715528315039968233735495247513056511407056309207667938157103688521409436910201529448068784610748060310389391274908333463069490664172735753907434761402013751424743855617770456313732141675981276912988568371599563212846467990173145699972417492717685999224727813610213449955598305611157014387977087416676472570305036103928629634161786340878660024280850507003155666675349814994921119353523311143753832069293207609522328823167757282768928198696165124440555490296307586724496030053929680825994282145773070350541590502431293521995529266583731529862514898118503615226200403999293699811889993632431624807905547429978175467570668869988666619368361724013303636089940900298888595948422124421595587806536972593386177093907306344396517429324083932280126738439393235578074164537287847352478107331153261726435213709026837332454958769629521302840099758241967788435650652696746770368690283500406296853961784269075383210443582448802390035826109115624577789232229831540736905429587650722193586265892591212562422703993675447441285464323223805330333650927402520101144060986909867839327882069335856153580886886638455001790454005936777689100923830719182386487447058594748025423673325993951707830188026881303117931802790719072237491486101943698671749996393497764772986769043592610874007614059118864107108796644702086799278462269168948756719218862772127361235816649834557759405634428617176133843303767785430990201965229497725116367559244481194978793364330770440264042446556808347264261777985085784696086817972572788714829034370451829800427689138445193700533926766241628514972114927882385836861903039213083728723572447113361996889813710132450932713552298180182402036349013015346168506353342000581642302592927732483510345824245055394126689199135703572527831528907579392294596589711329572445488111310538849276815274579017558371583751286358820445136975539563473614934847060246185811836446365800785291719253492357649602253795524296540646752673014444126136408856729959252414259629821981483597749720498172656005595669652677387750449338451507525090521676863605669029208934204752891679005589845042005690128118209453471665603324793680873194542923231207442802419757434651241688449101656240239236947477931258870643958078829665073198801604196099272848722603432553423135636297302170560286873803728297702447393410809566916013634869715895723752605403518448216196939502065868188192794892191584461318416767526984283070322505456531884354622718064536493565660737965691783784815498264171033869767133449233328856051418549855938253793667088019843392493536856995606523199452512471747726769886819932495332456664577956294983226346173569180416409017864270131304469755668812394616047267949624587026689088812726762410370092971889229380253201453645063723685214347087792650647323815010821192479399882922335213888695393062347323149300066371206996357992225571192400531923251460429719385985573541537724918198374419558702370654846563596106500769719830914627017908752940624538232766802786385631645973446134222502352212414099542627013877850636209230456623854893828940461047520970294054882723834503308796720720178912691394508190487114695709205516639597025441434289780118506630116359070454945132492045219863891771946840545678232956889712656369999733880140888356462571093988445570097878972257138676751434785219119745326789506528146869774030766873577114460813816452590341422987046370462545419834232889773079008315853021239370397855164412580991070967748411451952168757738499809066247283121316097539511489346234335280072414076537044381238876397791400321864044793239918972944855151313562139620649445364116552898854527079191939048338231332854255654062363614371939156026525010552129344247127566578678869280547539734989141677125930921265697737157429819325145428806738662244357692246463621268067348509411001513499583167789710016624065484013146909553407886227920112300566183269148989467221507176426737426815465276466923335180443677787534715309806419281520761983581776083095680977045363719681213831477564197466366463610345910169784232024250631897171309715681921079549160876889279401276203241014863211516085408081328586470632854049096755909017204435967336390643483363988409848418914513447131376664302302917497614461309724389832518700234163261370677644544876365913317176998143955783994850382619431365135108843744147515957583570744364165220204879613056549984219909598054541946968066233499052665096726448086038419966162830105255392649239124255784835364365501152749174850748920665902779425376736563308940026349527801769467391445193656658846925734415005278269801214745205676183019007875935747990301160294290209287133552863114267331839680387162102827624965064351266447816492411969674685543020955453655480933798664831769968322860051902903025364245577392698617583298404958808072264818793596480319558141939613252803634585097063712588814328190805068450316820686401368520087261749162104171390724686852057543862580399821809870685216995898290435876908382175393135358490157026194814293172386682207467850633721029381109878063166503076765791141540880123698349969318559573945634709058762590865389723321809380591178229731304549396440017303464493783588902829464837248283082781486915518982301868796452137490152401952434850653337025655461905055154920033017296802840215291292868893102696758777661814586860221174892825849652841871578730281911834167437465865811647370046768916705517377666385160903784900639714718960110990832352803656270311606408320488344953924708387672273660741423753844530009302499910550061500297248738972098777447174275962168777213494440613530491530128055889274190669240397871049878511745985675435324400336650547507365529490173044445503256336327721193193510999792442115333397645837080332148992443513421082990665216809295121640903084293800137393839922111056634208722216727038902858531466983013694112773261731479879264160348664039148301710183053364647097153630274302143299066708630143172513870700527853667536619836365535356421855456188134122160160816754336537078701220599820373514845240949915071424143306291261336508597805042015127882247792837106226051426196586790208908428177865450061641231993743602018579486616093713911077972408540611584528443414407812407647001812503370324733804269886871061088862830066498400340261803864418919551494258291088350527983321924998634815799153476000268392994529292209975363798714156669365087565125373226678569666362354966314142151188547857260877909462641677232238762771237082022851082948353720507669670887238472987550567585272642454733796031531005311594858316961286273079292147233364730611810126680857741237918578509659748065925614590191344801617808183191859494555027143187403680845741568951359204509813823456247524628987831813832742624048845239146123209171633636594534431793133681998187550540424883466998079787318742777592118858721489012518954327827131691189929514681394643856073424942478453186112868251578112157091190256730813756487668330314622638133117056657633084142075831323410673419969787164234030773840430896585873262682877682908453104810158370198021976168319000652744066560049394671428173734257232668373572327110874804447928459281721619890382985504706722202192929094824675605610065480306720946346515071397563813997126501867970541024855650728376102488294027568831970846086528257677885422810665878142737304293684686468222335819696112667876474905323627188694460149575934924411502078835978532897529436568530021547294616372743740671102941733885662517604081385541575804302801869231647658206717800259968733598562771665879005357008132087914794156169385406145602524872504731145949577949037782106174525789736086503051631896331336755319133746567525837736711288332048437216088930874434496192229743600286805101127506814620239604763246821216833132312708835399477798312995569887644360631367781055108419916237703581657444958793981997439692540949885427497024410678371854532166607544636658775241987989312698809149775696110445780363835114169722919552534490899005641316722176446474643569183864470705486607421125861493113902608860287137334779843009205869248832297369431997398389170977217482154838278942962275494203483183679371893694063901485124389720517936617972284396253641093049442129663869316616064158096700349750175209042430324433455372151941519352157777209265714371124238737979397663304991601905452869595635494418210483226709373896274238119084501680535940686335595825708096323999122251087767038861575468537239433461005600245301841145763990861316636444886417084731030167120666463011320041852132231604130362472131334274226478359196377567827299562306681969811472007267614455305142749694988763832422732667230923042275451905518070563517125572705804838910658417497720366923855346384309621525640504794572831696608058967452352134714623753187637340171062280334183438740918244861418126535170108263723926164139614460286635367575711045420290433649291712877227940151290297072278826974297569661206842175769912137481527972971991629441728073376928777651701278562252632301667250761204036227906187107519895710656943819961304996372544136354700064477345929353534436931224193718457102777434635068296150636587550242484700838096159852611955157959685653660418123953317067638770437851553361819398775019034060101707940810459886606997460737145960923953110963125071852274328259079581747353835803228188214307214975785634736217212875981869119291351753135493380239290286269972549593939547341113996983367259162468898074340410895310066030872550320424177380820254494589865488884140393816936385442618286289057142668300532887502004181892195610859057187047862767595726152152829720892352825555278720184644863555325859089989565563625032428970267660586294499814141221699855670989125241449750645424053859246952036130151559489587247352836177277639336998341531722461684792454655793890480119274814744416791319268006892477164609271246623046959220689834252571129078281025960276470629404540722711814898527902512459766897299419300570284107871391842843950767268780523524669541843540548776671000134570786419607024985115581058038999271391302757437429126805339463957574290409577770323972892380257773545875066722583004146228068816556976235425763713970899525258523744195111716330279907913599875336846383394556931962662218386702453086942188962330345562644259796942757404002806531803441376966990032091001552176396002112710099255700381573131348855243979981623743996992121147503820137314967429065541348179526894131460407441677860142871582802304841783528051469349901415167291910234914610584009728809550499140444782539179891273611901864859752916532408393492093174392622945507099498536107093780109104438403598279362031580544134576378769427192999402985456279811206242742157952508327411276199259926217579228472724662860726915060908345612138309418178035800501212111259501333903315071625226833984332038487356312123304183556299379716601778761412598814877223922839736114055583615816432717234293504891616596468288582809727054999852059104413668122555118912139688280430791602857598302513736405972130031355057582785734018593817806143559638511698491155340156995157147093947210831730670786648983437198163493516386266081796879923292928776671699504724379699992925821916910987042984114319350485041487887429049468204817601734612715827062339483671859588742623780925925371097667544801408419511963933805782634854853446010103109222834774867458368269409608021733079209326446777119090677132544736538092684633489220397567002049648484447074570128631166237911867022648834445036037853823263712232354505172916913806118912443190296994413599890287260751179996829653175456926692749472129348370785225278545921644421528352096875500039700331257915184236521219527373003191669134463058639937809510882241642666642887381587297301603778523370669295394688836007497462464258965122120135020081274362049001722835452474731780591549015904606741945255072516009529918552496682588791533039159279496111469596525545768878621022695545305582050918890361555935563555960993263179822055244361554569258304691175977503536637555332466036040396469038131964908136317983375637604653101969471900117761316377164343576780252492063045009671701946383984804667804791642990512951671277012508557556381293022980041819399645545245625955588205110681564835826739203517082115476148870522194294822367014625867928808751108123676494881132217728002011690210023862935555103355304926966722283304600051908641948034539750770960561756283933361207758186619233005982716655912036441079957217719550507504597050783519978578030468385268273225538424289152464991927435031031071073231799394558396353043080776534700741206084753077918849053810507434273103516338865041319722523816217210639805267659809668468103603628251731391051395268273738581406642032759408366913610361510716099269230712537608057013332747015600263703726581984868319716018220873585823072434042160502180412428234908170571639028759447704545255876775167572001918798489537807744302221072941209723904495248773023167474064640661158681772131340544260763765760147820346880899828879766725653771902275703767053724330037670638779739660487935894946992660148997277650139656305237612930928087335462691530967585900038672933310640323313244297528588576096327227098078633383500296595326239213093847986222889393533601814475336788840029681869220594339726020485531273032419553588625660803343185514606177130224415149367468302425454142777947519170904285121598022385846592155818870656674963469151809100618797259999076785618818945105483063287564122223954702849657192206012148831871417062277072984230632356321977589371899267776267111114619895145411237747033589746990548958821679547343451946172897853767648350418718980893262584582931030485512242449605249417544093902749805863896116517494345916552229140919981595452290697959976625905794382248593007559186715595908951578987007083401701284216754543734404076982294293777728870568632655259979026730369744147880014032688083585285367183657698068473086960608150511932686665408970680726984271879367831239927179639041132916018388023152809061805525670942400633128241474490694784005469388155598797594197892804907959056956818423292371319437558604162609577197247827029311983989163676894898430440229067871980007627966443739971385774048334189208624686084209326960024870706708891267570982013187624497300336192269455496432364222061649865421668018008123875952819867496471221834209098108165811262368228856202678166665102401248711223760916009458855995527701170246512794760660139820272657016461532397505983407666507127426606819208871779891807845421941986124905459718767612924941771937836552644609265484229825698365006988320946218841203961332138745803165090576002676228185406417875550616422259995279193141143139575753570131192539487275751646337636267504426802775554271420399875493454153597580059436495933693763287423280828948435272328657146065509685038080114192756739153456077955054780908987291139149797176981369460060069553482586155968412444309906519125732063106236149031479486170744569230144431035885571140123882857300638626783346971693748925485314626672445248879295060542631334987353653058740326890231399156627709596687839376132826345388391229741187010473138416934107636881380892488530601341811682952787266089607274951601659310833972594533284032706677796976693606874197098157030822086796458314331351542435156508388025062715071699947184600219830461579977241265984138007258144462742396543622246880171966803430312846272616549215661897420187955788633209985756341358149662262549197128510565920000108015545956323451934130978078597187588236383359648149667111369681095341134759729186702312652563118450940905385846728395498820256157375025941870330826461376592794350481096964998712752793493874052813867507680034204175166802825876740111852893275783489386476713383219386767837250050211308522970979791049921519512928172113277703984520743013708180662293320338160498461577776297955808334586146943799017884508760243710035790249176273740547415115062452658522537770213421248283282221688769513463424162854916640527088142649696485187583754126775350760777192449080309628711417249184724134306862608499068652678227803513185288075951041641184423077804238201168005865670570227054742777708750540881500831480389401319876530341924997182687305814138450147290653872681197935071978024326736674597228966893515284043928595643489772885951530483490545762852471851558683755505533907736255191553586693556557274803795982331287382647440275481126121893342646508457603294403679843032907369386300819209624302131700457738105506785299839865738261285074780689048940876098551322963655519589680750269263859427075059563690479788019583992563043855706773911435064783064904607299072725886016205214927371537426487057921872257352680112278027299241590018066612769753855065236476474125218578113766298846089230071255048804988820446697058185756191630716175881226411503273715369982787347594488003199998611218648380207494108631862686189738050139283305888016628219100524588320272978327756107853135634415155261891172667984836552362051036134570779241156751629542113504658373517813804900231786647782411991800644569728603274500449798329055112807444286650446599668801327139651717998005413222073917736469489116600783739578450020345961135236521029973625506405610699227208033302592120383069764910120975743408034143651490917252182043196657089021085249141975353136607465402259756146222790782046766824713163631634501957624672982241436901161703012506099258928739269995378098178434468559843535697118410026200551701338392379186798073621559097430348838841352535891323167568944732619470910154168551152140776049076743571953473223684113921698953290109140901382532520134476149563055546397571978842179427057938987917556145603730605261834482040534100240987218419277858211857265352700237685666141814523990862587714123097731044890185807468927347944867140398507824374377154992704994092689631541580152287563204892544426095284547696874669257310868031693039719276607550371130779681937514920985652926374337763333048487179866611540306954965727231210712376393715717267244420962911454769226731789301972946680675690377586754601166380270950841407920305662343186740031504380806032581840448136735111773082403393264746723904089530864152615334437732363105622957492275427383310033250197593077978973368838318968399172394579050341423926906971503160145987716448336154452560654356674994726388293412668400960771488503230316593990167733392871937314040302277499110383399015533341745560740170760393000767920281406979691007341016534670703674576613529783777415624666744710153262474735915738892968037827024117703067835392976453571547237539720450867945139777227808019714774703267347888571062609783953894553024800695474512503438438399440044637777536796735495329753795784878596551777922067688352165064871842200637816358040603468176507523100250157416041953397258467435306868404466815340755625742733243314730965424264473000251822276045615742368301882699781109453661126314199934813660432587409446486299204301794960924006611222477566306944033792234520847620572652636400407873528770659226245121277126029463544903695353215733880557849418803183195308818048051421676628268657856617966133455881839122994446054969936625844056005643317646186267082273303082987897934515314874055186606737361899601538199341554689595946745165809423741249486563619921602906980215700249252050677152839107433750352660584918232693571708049015264967655100759633662474835834159877898794922934717802677552885423943440838863581225392788997404754829087825820569264299348340040541916224530750873893094982928539239697151006688296113532442282335823398827363554267751892583566629366115471119283159568465710289510473422912768269647705487381575567411043092341779883598132179518519131726813542988528947771568222366290939309884798620376284860397041865767389665210874000007589849585896502761044324310012549439627771412303356329024335356265579059748336045337230483225174781347494498141453193389451163705270510693999061712806703549402740232142752987068637981334694138644794061131455956933405808040589204986774897689410847271369902190999534565319111139710901146746847494773183227096641944198991160949593102101774421005495856775581227780483058835730617024188965490401792578355923861513567684899857639827942782931880733770107484869321484891888599185639266900311194382065308530973586580253476051614377543859753092484393952885673212858231943767574428218533530947116439721099462265251079323361951755207892754897889863879495170725563405302059366994499682731867686604845539475301380680055578592005818315279248387154777883128053835811482573314651747083161701130024383962592862309894934648559905060011854332637221578841574865079123543829132363981430014397159936020470039816880722999129142595093964420575766545962882675910186222540567648792488498664001169916279854337980808413953840978078430981072939785313169685489628801492008698438956197347614593222161902741502913238884128097252662325143353288358991199469530433121744304472962526496957212520607391054348847848055797430514851747848632852194696820967878404717230665811262060428590952290818782363180207191941227310253308019723523591207395168951958872902041998969174688424360237016179900702870226255797407276450253880189790028945713794089250788309609780424242870386455489825923877291361296500288383811995396503636090439742970886334661046091090345890983678940099405474941662025230101097690743041522100560176052611440374486991657534101533081770798738063519897140658752579458741683787964198594716120752701997665693145821130811266109491024015400296972651521673083089100010258716418361241447823907141814690732980086363647397349221214251837601579017807107968656974547869260247008786438116163570884444000503476707687511544651729994673746234002687341835531716147689701428307984674933393211411607061240197159460146086893142442154248740934877374613715532049470394770812072460211936076337969042859759242317248694093605035025194614983504201427484135430268658821960999534076442244775572485331752249670086070634162342039470633870402098184931057145222087296292494261548563636333144658227858601886831173193062508059169437671378715482246722751288465868028596556457140132833845247363267310499192681447230969320276060708329884685404006851678748548302861501421953142022567578430089889619717209807894483182713252799863366894784408749371627476797369257974818207998661589810618482115840571429762529256965879775482054057253260433706826985735382118022065559876337472783164063946378743668605910527123540518235767030665531825309291061209945699874909860914953362679737372759336324034731488733704754102764649762733159598528436500265468400345134920893211169054840106420203308137840813789622418404217887485449008611193543526827681775942726646638213502442039206297893155655426240619231235464234475959736784302574629462597145105463961468847771454437012284042775720738378282516475050389301235069262067413688998415241530210767818782659054665286298205442865915815311857639899251383114538584647548222710768191200425109075500452426204975664668125919464153694191395220897437933859174803703601566703956495681704056951238681972640169543482415967928917643644633621322351732477437678648440780595419970380748474256725164803056254474898145869045085707235798118577110200800471719365675860708759965327178684227499874989284616617783274723589911065925289268348234145727292775390214808183085521060877584753343436677778454126182751207024301974086870606146223808935324634582827151615980089146423926479801590113817717405235399927867317780970872714314456384683972356241582544324853114900485296314779915364209929114884689973435444198578802748768922229639139736775999623906501168024586543839413560226353557727256754651244805889704178241006706140284947996654019141727907745281573846879110812964529241988137914770771357145378896310809787334158636329117773135282378740300793921556053041878385966691927743332941296893289040597545661796337771222366778881608613699574710032421432928903207278436647837463586247305204487918408960496922363472268227802576152071178129653492615293074966540927310212273225966714106552234088131985747414697243133704806569030456087388836648729479850342913555443832724818454900319710569228536729956988565906029824297082311641983909888889288220127697338877513664743086505379126546616224381031282257263871746168209417130515902541466493191742522089120784041438912029484499010778617002538032363059107684167037000273559763962215565660791932705311410824164253203305799340878808633755500733526606627624102858822305053609439494030032086458975755371842590416023281497164873055262321566250064407586331727311022209265505777387610936695381462133442629427518216965234196164359396668737228740581519575640338557808979576218692657495194095384494777602711491576957768504065228589622263774473796727663953050541905834105297157823904137655434648265914998426031361463803556791589840357420024704951126417116252353734400585145601649204638876334446745165272921780763432027447703461918902369037453024939110876090914485748902376177594727760991013385022791851146224275409463952380659739989111813583257184900338718639362451591911800546083897829323317162090953234723179877308139049758335200580155331286657734982143767700825182253449677871342680679861056132471567375150424327282782895012546626109063223775937445004681765235330513631737839885328478421454294651873834695583801038211241955982251534722719487642148298176464302484351435407868308266273242736653451534543724175827731174307859268151077157615587390313859964555237801040171596080727238943566109000730311104873402421714363210699003518908072724778209036341653257722067677351928624395935897098011834743337991113782544888200034016347739251468093254749014627054865287277370046325450662055703824336336856221262796404042448622029368147176575285802712348551968237507310680892271991298715945762978321814771288633000263829214431178557046168463642551803426644774858283141401286496962074157869602230882229023263928122536222579452070731609720257410616212644325681684712082706267870327160815171830941490643188384400615301985056065708634330868822702602891984739952146558388780743149162135252405449228028981900825157618341869833234309853736750252585915309355687267652582068671232641934853189366837550248758147977890575937435966626547960028217636075299060237236968883987701433247064818013367146668961501943407431723891600553671616724068639252356859951977769347872532967105368532685141531838055561332292401599943258893316094059095887261973880633394164153402387032445650936357495996926022365932543458223856608212448945488021024876465322828061898346814924144733744071591150701151907045533281688454738780159275197655317078757814091999814084946549716104002697094614795707451714178160180419082955737612578206949680815135398378562037361341196519904372150254021121451102243286104239362947756476871785761072516846920398773653505833567998316434546558533457571049693590560027192941436262029500177122983902358603887979955968167926620299618302434617057651034856454607879446773716505293525375892172150197959106504082045751849681643495332471609434227027877084489459263031727181352964002460542803672673138335150926785872449063534871996667154009633721803624825356623314937986665810145927675159098753448603688859870841101963807669073137380757598328850066550630643816856226315400944598987248007917451027238972612389953220177153881199929164718753989027011526695780251313366878138780198228702083558160853197095518959718398745371180405168657362467858720066819295538018139583369460741158005518159961998118018116705517825884464247201964787694025622804340921670729184181202791213624378413275798219148986978108801971912434879752017824248266529142828784588195903995669329404131067254775350904998507383915872649528799971594157144539826556255969529888715993969872518628713325655295053338947549094463552594924794064924544608232325239554798076510414868552738083533261747488848139575938148190819977098316839276069143168991328206731211703991981469592686293531988133560118482717685854358236962740981298955332289584990850884946393312821304898577561956177773337803830006527780748195673948269294848793547249111397732986324709400111044465544806399729818535308974163027245656808994204331863209263568383312127815504803361370434242261276979124587540822161655109221944341697361371567678569086328881309890332275396515724747162767256497789040773974724963994680075690708227693729910065891343485617137090437048186918137701660931843706831723237490114872908113188645941659394940389018247090069461038566471269842094701727178335759785668085897780225643774201726697995405072437425920572787266047028143361770625111524513525209082167083117156818677382395563427238809102478909149153656524469233405973357141529241621256716943249638073234822675749657542104521995809899667309933268832883956677896611272995951825891041092152655866707676028159535204190052700172660711469309933090777072096255768222890607149292160053238141059347747913321130176501929158657606586519523796189675524049593379121134822677617977151861629647112545807984406392621611457222262428261091808435028223965911122892993769146898092414029313489182166578818651321212338519986700210483121854422354303407569365623692486393282042073942547079945143405963428369973041255835611592214858011454393148842267036270646005134398470634864987775789992184015306636522572710206744491712069408203216452526502956057216096550182541389914037748123820041188110134026908701937841686317665299634670300758640693652086155469591620533562976927472195428440518000204951507675499701691683651833531725230555225831004297976423112706995097920337105933116629760719874804981925595786242119963835408483710799409061438215886515619165576826716048627026949498424867238718944381986775049892440844908141232461659943337340128913695472449545323632830681643618080824256369653330246619902511105596705476392427484899467003877908473198206451142690007175360984180127105534403474384789919645907391313227311236035131073773361268396500547105101143521087695826069268494378020893847234087278129913047177099961988474068355106081875987616092246900499650926279352912914513188149958925070797554618906482779938881079101510733113456127976158677629917371923476653713231182415620760883775195303733716134146469675650981904450024932814535732221937618015179658693999802274360870465437486604277294854666155144579852528177631285825222915707806435698988075534711281489392600186151013011804752924808638441119642580125278073287789800762161103785210405383429349677192219511413686749140371386258864788569525829136255470220833922363290169519982756340968137612862632489305753122559765786581940386317608078395719705273948218355098946050302188062060142047413512963766478386517562760404744010240435195715961515362654922125847330045266550007347889508802933044077782672901191838632249749051963292908143334895187945894888869983599684665416624633079983161059338607947067464871356952062396815241942526866494205255134177589828596378203503702816929705169561798941991214772433898188699431889600124348260728119692447362851598570565006786075756876128692244303851223286922391997878169725787100765069112184434132472341226075457955622430797864836241814309303101067972218111843238362914328959275474203484411856834766739831234363335892655298403264877623750763874265710462987817192363749959533718499588756246533368387982560538122564256213330379821105648554931275609043509057126605660143981932120134880730485348408507400182814016860364445271173200378361119622510065329266189239321106260290375847069020193351859168116864227350092967262081373666791683936340037797903181619901664257507982892238233304947799813233961965126183534100096809420265989629439719904438550011245492526673731627165048303533484867062731165500357229161198077202811463680979795553831176811135411230797868500402460060089315765025035833329517710657252952239518409847060264557117955866760231413874583341246776965570545330574726725483893817909696358049883569586044690001828519989230299140164835702066164390464571474473219651215143029552831924074673213593527077938350179944595005044850877005538080330627016549748455698793112042662785005303234658454940214553404837536672298217696586414907635667644514479732669948370992859466045965888143092010137883023461849058295750031069428911167186969194176460600831156757028325351130715066958714822792210139746650971651385005896718273874501210970600258457608934371454549164196060140552739079942890968864400024847925479861131660482438465184855756146650292742544972164334008033916742576155893335975473950973586129529548944320949175771378185143088601794623872198090751962644754300707469136057526812336316825276472965864903201639270038965449223595676898090656457957950767807621472519097863511136110164558950439719456253093272797052130870134687972625232076062580357470290242965827032104579808184012343031136854806780520695535698861340313541088653745953859310653606976357664696345848611189537530597064195299903850370699665099832750467405141616898943210742287924528065609987624052261859214009713721304757306867648111115123019856884063892153761810876525284230360003842073024925610890017394866744887249480350482865226150192252765960143543501963093127450846720423283582595622376584497093132635833523388876846300575921435344929040709532574536722985382303203783362011951272787237597422681292185642585730982146334996455819823306058264773488644165566344961916227040465945891848638146208514702993200382706086495726537143136163220428481337579917631876667261060076265589047365857520353378050741858834815533391613258337905215971990984834151996532848667695960572391662468916053845347631433094493386816085655139559508622430533532103679876664991387082685556813800182634510441561501425314852196977242856328331479496922120601897963740516066723941336133890675884927384241393983970924543230873610085426364537848204888095323732204760361346217235064498229825552120952743294191498521728584379162295787736081854781738004953565547936984162580946200385418975499104673872564514703611033172637614899464947543310721018988636433323594957835526844397961960062996389680467397476169891419063352487323842148581906665054575606324729194063342585023494128597873302459157079844124487476389646826344890319018758136939848955304047546214736901634817895961971280532069046343892183703374013679466549566781329600532420128461454100472486276214500403933684116180974515357421667961382144567169478516784338053070978226650706272218960943767605166564890990692305810238306446008880005095923824705241108033909998897114901017250473625093407241769993194461199828575287159310225012906647260430561234738268216631713760163236459739210038354670638573568728726768059477162699848313807276166027804250043448373035640877476743552757257792378019592773628118640708554074733712967188707187515388956921272362653492019669907192151082409085698756282807053089956330999253790991494369935377048970737460275217490604501885678068857491015752948340698598203653545295626564225550480243376349563833814949915951684281122605249250541094584872646063397978580028968114246214676061447810513930786947035330084420065845761795329569025247483948647689652535732991323747808590185456946786606007845404921732873201319134996249726245356530974085395354506171208605879998971311651754615658840926056947223651511212411318101989176611209027736199481631244297857232203324233010152137371211445039081273249106777971410861835241740552586401922207914581105532412244406639135422401553887149349898811749917151178037850523629038087804988366212462818585972096134206031467500840409362569142382113821056490680251379951972699644915704253772128909460459989022029694372357738085062199027260087104765847585904113792138009804763185011849472873350947041937514902442209989967961041201152464640252433688335346281847628421601874333871624212911634105851061561026124980537873615896252530522152537922410267719300652120978068622413803655286480813875650622906166022350449748481626477207640949610870831806273068414201237628090577011454702282563633414641882890907148107291155517378967845113547727014766428132058780172999400087045396548078193122190946942052652554806697657609920014544504741250585832742156256586796637067824100614105078043150868915639685891600087454723747644523941298787340258654379222670292859565454758474039469376342282799656507672910113143443216820071287475600688852157165645161046030327978688465811579770690754350139695554487027570451977231570658659832604194543558101793766728920572069370655878338478237921557698406577313526916341038913091758932389160351626246512308537366864575452493781392912544297374515702951474357642494387914782352365712278854270584302399222081441071968342829307652000602259558792497329403118036521309016365381615876439527085587438891313496794395505441689003997570025261983894934980566351584876631929948139537608829020630547663261232272757797600485655716314352755270339933281434082953791671530264341407487873678056349790630448679454478498517742346566309101114058836652594508963827380471506288774087854309202717002442044264132827878775779219143089072162431067968153032723170406214940588594568297888915279224255300326284104532071135602240786764441779326146407771995067914295379618366374315664712200013272417404590853975795958725201628526555155227750235254258292066312542522054336947043182720141987722656009792854106650774451586133651986935803158727004065409533329800240024114384452086745243785730393085357259185975314300216331784658025892949688907499912075211646013168013617902403140628337332510944089679691380569982533906145805013376979524075042548062302184565971271712588696821053319584042930680081785640815364550768070205291243419065304011858681147604390660467543985469533799309501893733494045205793371150635892548162203920981848034678702388332811434712867584094830630788510508583630612009629784039503797359073148914421497621425903024534202023221837408123606242408875345353035830004303002348983511943254796353941457619968536634417898352803094206219448452617453630936294050180892408577276669690699439526387451442261939330091466443819676914994757572882362529286767831895889511587671537555875045022531950436254199837537581237551309704460898143128164167327775121320943287999421487915222938888589637040713738640411464318354803282709199292097729657314719358314550376559010592388912327940274151422130328903801039302253990588797602858636480231746857195957477049641924910457060165664419372469507345828434126882297607899275791030059062348245855783674447256540875944866738598241858844090047867625726899215641330763833373305055116842726027738787610653483060835498327451221769219574193227732284789686814213772058358971372993331280110493402239003250292465069777123423567792997062268532655769021215194495204147456147204200880089616669595575008547502181158948691546513730922564063280014827992550906893560453550054022889462545851904649905159482387837108261389895625275862608850259310209625605762707904967644886255272070906085064206306908100531362363144763674843922495593384846105357214795767525059683894401915584316458731109242381249522058735528784885128551511530967774368567658261509205415901767997648942442973060608397463610141762554955524167136750514457453419233243806462726120458914344306296509523727227645782607685128393845558036371741106303153618695583121418213684495089507191935524740146460712531406423648705923752495225916134164688433034358714692930751730521887082763410704194024917211650813208599339015390592448493211393843095486044708935937494894238415376578194077789872784068375946279105912054423896784961640878873687675052906357052291757724756728792958116123598765054238569059157719578737482441343492814549428271312558197015026415753550856760684004052121941983900860765055981839358560216619903481899573593930227044074150953352858866819960848736174882154939513735375550153372561530012922280500380953162328913170529493896536093169923840959937494291195352647658511897695614081238951150996175656728095460625482202365754544479401491244717145591294346130948715249259881184946048460330053971033336113051156232213239049722410651790023905955915760070623527241595563769197804755320953233815263933981179453679519504614534005101544004778962602934711052601371605565511703151051697307236476400607361627118015875742696493601400785060849746674389559788568182158606333371431005274458446910991936516578955623710873249407704507465117381892656846554761714260612734789000817351529488945708090004083615086205374851597618778550648881656173006781119453828927964443206898085561430723014897410316957542227543668599940582508872683472192913576995835402688450519120213198675131181911026415641285077670822979920896627451069448948902881563781830859803611959592785813704263762767951628305012505578462650249742483628992952566338857706246090139963917062176323527092693206428399737766720721313365149427400421587690647994177739809747449012793057875240230295558687678854237589962514104587321355855999151991742647447257286398339534629558698270634407238459309311903810319246634193763987403358618355747498074760031255229206506264494675982731356045205170145492305831474871532006166955591657187326772253036089925738912626478438936436783206690465510529380503502585001001593644360002951677982926678762506018469012374961184725790757261070502797030314101576423844208078783115944221595693426077770959682939184240689287513028556646755588864627599260203077069560406562161363010476601697820936208404482106163216354471292959806514696635262555823621267491498059225739936484597878655203131866851298288919386793410126506291368447404315764134208306430940570178916953408541120560497790925380578214808763174343051554972432820099581477413153083804871314442024118388938307713136855850442264748423657302479579390841021169245137148025754742187100849522646810450973325710056817740619816282018258496695719690665218206093262550001500235293787301513602217447627596796068880189437363214665901125604795096310464810777801198043927671414924151464059503944117114260681608486434617199683384656871462870867846708029483001039515685497839375909792316815576356305050209357806838179705677193892512775093424531714700956809667974245159690349075579529350107557636167313802481506843000688222944058789366830007978023451835651357631639825450276402875820839798568819719294735174374070822455890814487876591174302850182212800524048372934997068480879762848699260455491509066299938122169936381481238261322223070195021890654017629212804079778138781355659882174498942304612162062836268189199586038248779529136783203133393807717942728335940149215122942460579631790252782501359007788177069581832543955335329887335561340354660846293137999874993602003379514752233802610154780075767643661915397127746245584263207723163770301628646931501904446024008763738990601283196675978295915315142257886842000269748576109888044124025109833035841440921672238307913979999208915208223622221279044263052416740664744419394544743112592112600032788270012209534931487154486829564270136075201752823556332932658159929913188971415615552125919623398845774020776202233757948434800770268140891955346365623930767020942431462138849406744109458945795948645339275755520849412134934588903963436504748008875519006599878320469159675696942174612945893912416104088450062928614878083595760794486492903292955451012038592910574474597197890263418319687015546341893729897961896195653670728542209255396512617033121581760731935932416293416246854415613754077423000586188806117831504183759597920769072833750224675619648128065318533227050369468507192656344931144492074796030628342762904139631273901029590889627630526879167851527619438919098207951588424379095957942337127834540753785143869656308878729430706670053326952008640107316855740627407707436269249034184619308350244260713934426527550406636291804471539873763508338398097524271215880623205407381302654492068508671016150897434127885310369236624145135350708746516240242653309175257614299997820728561226317908704178011890477594782188336836462381180399223119898957491032953898307014352117518944104519092571853664096565768217556972081370810499619624427558024922298530390251191308589527437718641576274249583829988986919762831023433622266437167984347390377929586990657833934946656882803514287299612930707200606250063795248521153355305972840036225972252243510507421987468343336367641666779027003019715111616246874449036216282040467594113196008014641210894465731517134350359576637730703923370443458409948386535820528003129625016362180388868785915469033847977996650778464032348823704615807161972185346756298325775676334699593458456077345224906699349130040464043729252118981277025944121960465737597458184396760064585553290181465619760300932513873911870726251268356224697884329420349278538533626983685694932671346585155540935687874229025425029540738047914164635269178017886625054744463466730246418395457154737896908035861115663717957890578893777473442372004401936180413375681952756115002899362173333537697164680739728748184714565372525243528223755683828199760201695923292206396761185839791499090599381492293491228104222138109861798008508749387862825356356351125889792087889409379524408263366998480642424403727151335523328497775383952381762695632967602326017178363209208469906617687520726906133879723342869734816998245308952633887553072136488914579984451861970421446531599521564111089320615113714959003385673025699170636523492111929897749148225622704187763199288420027603389098097022048336135583444773910591128599388378686884073620996256004568513422275403581672185745308578192283902263110047090696431263010941650109790818198941396253639719231688979366165733134662825685411172849145963111296096429770875125064276137818984940511700072345820452787158793858344152507840044269750546717690775241213539694196658683182480498734950591844915297914504687930755776424498069369333277064652907807823976516479616349430854604091623674609677415363703646704435026384534658355766418680446698614218960339258503255975995972377201127697804784660396967243910288109423818926420578466684057619646345864483323803275273849704376262283484515095059775734015634240042698418936094405347883745342731464386916362405818667506954043309404740295293548370005585856560422962467624671400556689320614307541125818564080915845152148102977421582203576430819144047721777070837605282275084965694088365568239200117243927899896317457640005671126723305993269062417132588282386036262700608776147126603238325254278092868488881585387372995424406596514228704943095405882120033338549404267012174950392760289480491422362638147449592481116796848725226109785065751713408963840899752839874698218716077455302427189210006016307632132202078661371477549663356965894294539466200661159597144886875723872714866163122938148183491520247868657775193945004178855783184979077487302730950142978582109544230893578453666828170332525250547188159817066983651020170024247333470906136362980062112641330712547562544985428312597032276073211064805800537683955910626685313881349250598725556838996354312354703096180160327271737089476510968754558099970014473834290894440931864455116420216950202986423646386197542268880941526464480993979290647821987813460754959250677837360349234116499931124160896586012938031444799986839304147526503644750028166176662455864058019484189546630274748422182297469330907776787173152395528290413877506746692402728111510762730473022798324479841736370012942879696781832498830462674765820121805782274846975295152011514895733998319314652513087235608930112114570627476868701238681618459537305094334698358399064036057100036224102643107698915308057080591433118190119784827157232950116579695042936007652506624795134638048823547182108319222865387730724092453887208847974126821615216989081807139725149938404926743598972209454837155093489637257808775829092554742019081774234717037711071237266071257097252698860082831900906552854637910585568558446630493349636953852600870725921931293435889023335592586600526158133132784578873932106300112588746663018005117134923585702257850274719674779541383985242375785832311289928169541988994496808612763195637725082933537875973094528148329063928155364033234482727868538097833403460994828352186647605838474340335385645264760368134358237228736140433153666055601826176239177566514471241543031554557791148323530964623859271215731279095232922596729191581607500837395914175216637602204368366887472129464949471440064850530056583220165546147943051090239316510419089494574364886850600883123621832942783657350034414484920699414885980703622212936837667666582455992849037899444332496139593303268564224550279966091381140736046281304686083029933804359687236974201590515149664472101504095946186468822511173161958988959868294119558315411067652421206206963548157476858770880877013518105225372112230893265361947457391298667574994849068997668872288473361769024138708973784159675690471288950832388685070217720157324123748558686106036030557728315318309840027189393080605591339737257864830091383086143204434284298868435738247446272742894545446023094001727805165016209429202066185239258345290998222258209377905993109453895917488945932504900930186589180688455113088519211222026187027804518579169264736247430800281420094792104294974981590873150604961037355879427177780462146340053355055307369267794019884442508023652437321136846287974701528424581129652221818202579692028359291042918228159978063353959151309789039982294943179675357080823692285264612673981425730859883810364230075511936412125945677200985121945996082029599092365300080621522986709763948146987610296300232512178879586528660439362153496459457444744408458678408552036844013755148782669459043432634259489145953014693428902151662087257906402722509189033250137708753819141363826239275763745095109300254702125840665199886902547735282713696160575253280202989014825272923050503060311106075090867811995636613422767912795758328994854545913725059677167127227656313608332851895084630634378055696840105374082381440485080343268853200101420382568667591723613050165702586830230497532091330887824697088904587710854105775330690990360587228366081890380355011022441991900481300623719019428202498606758279949751044405299186620367303690714974246365471463152278180114410134256592421183461935888458877174716749472904688592530574423171109393507121832243240445926391666448212505277258397960496959840500705514599165472791356230354055511291103364749422969008254202227710485645102262638862790795179470251044592139937816471007175370732440282411334390330853108003055590265256557034790806802845738677860967709621278185448604245445640546111651612098606961963793105225956391436298097653695241278375588535103589753801855892077416533438144756958672725519707991352120624999984574772300114270322086561908809578503340521977318952156127691806073047186106842797145337474160465288249142760597590126474674132095354133450190582696490463732281765572663658452585295265799733285263555783908824234358990687078315421744461694578961913071203706324385862244730780144964114239525368995218639056018173349895684412340809320744141462998459952887972639263804575606899964947881178719845514125155347637989174136030804608030514700638150775504267033711226197425165694699233475919198075531897992678966013538773244915933469910298373215075821664669952685148611240809693173250685219558889803435815255798006760080257312206814658316326322706931227179108830573128406634347744373903387237572705529933082906334310115338713425590589388754877879260161874304104952651714552383149179234371056218991830131193753209036911634013929367875133590379161465197423500025450588043163928343459485765408159716134559773115985590663240886998751019016175857694364874064135238309988073585673501186182132108688775146541077657010998488410526135629286624491880728665074328679540561373700502797856189354857399442583173975833336389096216265889775164265251892213373203169697040686782327869285615906975035776382362076534171858498504400769624488551170137775341719232731277862805279803674574442559065602411625021682440194749251648400326302366755265512264175233509435043747040358605013481781370744017785743443143669471484830365954641379157417429628855527538962131045269466818212615199729165694785113551759663129202991663961206628054958799419264551528062024970839359351243512322110331120488279115845606363479468063854773209789716897042586730516222355474333401591459465847445968596934153656237861332959865084543049939996506257831980070332458075208547758139073059099748229229966135128134872508593619213148187167760036407990440707178007396443435229661079820361562347010342007195892408207133088486339575681626825915583088556273407372224213870157900784496711467387324536704407205482543115584275395043800721849045369557167819897371009456657476305413408939286234048948311337145517982729824613469074821551484618035844120506316344230051664342541943809806934938155357485228824476581403849022069676845510922914654050466316241101686768148059509682991603938417679142812533261034700960571114525198877812771232524329755797884994665652130024387970750455557585743570651354363493398647380201108292894759689037669099723049522617075373910488970262710008610795536785943114517448591250859838566097947851465771522707445749853632768769739705201147190975607524803154004765075453542084727608841323418200804376251050252456016123333873240365150476203887868317755527720585292382980626408213345036424127323134214633493215772279767058698500029720949924270285373254508229237163264165647175940435444805370697347798582818204929416823392524487826188865143445684986295191227798238152434137582594021324032339211778780113355785357279528902883845612110514069551702338393908563621507284128273134075324699631175890624759944284413399074857953625078048179118742348274208554533297106195998464001188913790906951180561039491162860019122184657112178738491848006019141980637025065678705265048786397908045607565964451371201964660919076597680752133738064618631069755648370117515490418633149883258142029480113635175751560784918650349996753620052776511469479159584709259856314038242675076210576384746188547811749618159722945821975073772148052583396949430877680142129979294320785542656796717852845690994009992490714182788615567764033112835689150933655791353084915030662184885319772119918548427018665276504247387096411720662476750079815702165750593467889763972958222406404300051839965702113630778227104395393139925554780812368276820875595367352014014092150243470824677527054534210352234915288340828626720807130093680395654906043541411787642195522576443182819290744957884245621987980401537711271630128222871145120020468929759908995575041120473371373585032602438961188537670673854820514069533523132189581732251108148709690716165576999018123402465598458409875624249339156383449800727825312122928397871537494403339915506669664911068440720711542376578114411529825235169217123006640035526332066344198957167987047552580908058244480636085839265261249548910404543603367402779555285301755540454689559987249137130948487927117190370102417544937478151068710971286734863067316988156857110508262376824827266480446281117550466992634803367394090454822467842632666602123347896231712715446005722925472504768278337729391922664309997513629648326443726949996545533505568373641853886703712076489728685390581527524877579121638237989372627290814086947100163445964558019090045089241905741839047963579774857221317285219158963742134565188258170764131803686352664567534168240195049376211086641442732513473531955710558652079801437783765226457372555901857194838492115216633158452612044530225093598608192802291613278750216019067711389941281918817967697881572817942234576101662144442572680147011459951401111433102327489241454883622557923503476740636948897517280705617872756639304394123018405158598379295246754974190965061236843862067618666578609492592445535123162082073068228155732341129874089569886178516893573259318727605473704562739204970424699174767188237968186984619667462559881779002972167439319974687798194185471977862265551220288125077327239805707952707024434998744728168498463229204833288141293216904045432572596773577029661332864113804793615110859711545252840577652171451567032581846215601497006746948844444317359579959386073224732482471604855856426116094879417160265370518126368833322358242839006923829660695482622169578446044816990513376107095662563805603156928575674378325896312744005933604219163850795329539972156834579511840856712109795349867095140691602633402626806254103003713063127320519531524537809671980370082982185843503822408740158308120199560918060464574802330567126601903373345828439650032371195067381170182968215513195375520527571868808188899055200482161022830318148084291044952952631274940469292944069175931501282891952208775766285263759444272657510366492720934830698125778093131889991471271502262583262001103895150751307460905033790307167366912523536951668186451626461819004457781103008700973692082302329080416504871770448578538156756918576725295570526982121728650242578841012052650384592649393225776244029678646047452793387271372184218047049335825186891208595731231056411788048966020012923380022317861094512887950738700817488655408090613640400070121023345664112917482777047154511563855895330319837975480003248712945767355998821770726472022834784696301741794360052527095504893192280661941267610176489428347393614870387517748817279600016501771834215232053137050975198453588370559421955166019265633675563365621043834393289587910613554535804450083151984207891226182699030409379885100939428052252642170274042005344367787429375734359035954756286546470497740017498047782898367179289924062669752533324703713498159192233061055249347637690786380134766687985602616292898497285859938343684159929203780213577950360258486449422891526176412981768753434614557041515817985625320103733524338345507927878178404933513993919804760897593592687502283883008376477391046057428078409405641484620032874678704450434941286015347034112063341886267931904315714357302625781138061312226085171298055647618537885866790080641970440239339479018379097121396099038810516606702980617553636440491899379793962527643745963255635070968745450653292068945093221201859312813147130652185713910639082487419349302133338740592106000966585549794371442870973973610535566166995741679273009645256167343268810947206948196883685898725549196215354677011755073171899963387179556075657815599106978178594038810693759646094753572304182266992328894935413065164215236479913967880414070929483186240664136448517538422278500285256666195894539280305324762068802167873863812172420995818725671298057952585020409464705231989136031928614142557128489336112299649417158689104400304728374666474313957031818689232709879093337895562289897430729615805112343041793050201723146723784236826681028345132480809495853497982313667757272372958852196304751605803532133429046482567868933690755094412705790669548878512972685300761006271446222630197690826689058000519991348054599969218651552589993192659149008988902015364876356056008416693814063689812648205015045117322267614335745639904507714076066834730506344603779508774746193662964319878106514110165077738710176314209802547116710415035687507553314213044878617344052441136685070048086877660912963169414995562608627649341573036539001156207839248986115030572723620626894213867907334352373813968768100442616985846252151092911871615816590728068988919157461415146945184987194206996018026360441808648533281835339475126391704897056140087949945589172853844042040673731227241197358680728895338465211860268366911828625610365135494521457387098726912311631460572882289057663135824649891173403473265171411817517427223872831612763189309868498140680687633806683174232030639932097649027752239649893800576663904826911541395893362646796357624034272125411444862420739324708061723856890901478469876054682121622894761021331578492657118525529143780661440030814971261038519661769004636347091031033009794433368644127254232173340852329892867753011272179709897194255052152931476793137611000872871087558560405196180614163691068857365234075060374862275348752266083387382406818557183966409010567890882036426616859513573623818651987107077119791829415706157752742045085671786561482365561842272656607705114019436762442300212931139538185853304179481656723308691194403399223238064219917177161758391267758035677997536760800356571222757080718329388413227554472550660652492557285941702754168863158063970817911491934937626915332278347307079118036716494219851599179248270881354066075442142778218914513153024915354105746530514208685283251697867433929974034961719334126874183740135248538174978903642835294921268283050357800610856154560892973003404950953654736238725021289745033777609863019348652374756474846892979600227368943477652551209460775629378447000596383886162690219575494025738245176911629180705309882729543412525033416561734653928164556658123598331467285049558439863048076614726369424096859330146981866917314628546244145593907172295004065581876995550508130804798600538792742001633749867673493808956305539556852469575366548360785925910320689203284523664850492845512113132636833768095244344436448925751824412015192340113882552569622574368030442706511835209318421081559301236731842802116814064490763167635460718256238011662079541970760489159308172043699740246920852365845733903737105106194435524284904122534904478919789978244474235931261529442182597121009397687090314901768534531473440809796603468740689244936658173444649666463965287829157533791507974043682698407917793619645452100476891339629153558851731892357896848522238211221077853057472888116143096458730138707818231441676507750926179611110924125363789309911762030851760113421369323358055376150331355120703967086745367223634948875718727898468576627355327904428954064915120359480748216217293389340811672774011719899834280187671065424548859243586641632022082792814410375614707191760765852050623633050829141868455890745648268638197468963795213852607452379956960569089674545033285926239778781501017471017915482001246866826657759700350967666000907428312909538699429008592062131225011893526079491904764942671426519526848336944631801326344905576241865193185951764445784136227989045407808352963629066544860878963214799741089012595998546965540987653156979829538731100607996282917966875626324198372254866548352549003433952168608474887951818486014032956237403512505738365278141112905037289180720317863131725080872027603111478494200344088723728932048768076554348823530715407388837667378848402350812866287082855129187930510349273658827516351289173013721832506685754696023815927190576529227269036167069409926726780428440418358867914708314326737014310988464607903775237954889497374263297964600218184854635647170328050936705586019981627662606663589962310202385558398869557854971392573169153326413863939965529447658488284113270866932293024705395931476774421245087692910151497815027304634228550503707102546641794506059256260045094671469669219677321478517926654295676764653673391768631949528968179674090830336578524816118011833910786306420178942501467678812193708636146983648720416719596493411942839285693860255341784251478747494768027286894084247382989641514324630505072743420980223330906496120112095336076533205174898251218992603909263883024180095809639145724877556137532233623642250201854222871718883963785519253452923711786623988997603632687825320497417778360898189177475974412740393430465599159550406816303798196698447697341112851744226190687735935781403445440756552817210468975688731257854969133994512965447664084650702094091579327692799013683417064338763571232981126952652343164874392284310019745961120776394382990889518475806301415682457244065859797419368094699338966161834767963807536612108356350115809307067903964876384385542034073120468932876979410137598341051117871242670614113070578497885792458859130225495511234041814035167600814024149511656985712290888218387179648534187059967665711384096835270787560459284391565846829331626570002922651283523501774412581847139106455408835530713948757696242207914862148419312772863281640463822875450577753117333289404721407602233826985773846949650709141881713580748769716633842773605071218108725496003900597585333428824241970328806086242034853942188811653643622668209997232180155868391903327636347018424893049578744599680090374401474866461804692710603394248674111556426044067519445010335001124576512121493966793449561134801147056951703096549772729492540793506980494151951849270510426774502604614629635893883669716240485744038954114101314554581391440545580333974146225251434150917008105216161955026614550518306162977827608676096270606247754725094018143261484550659072741915050058149788190227682861127832041958849922938883892733630740063839820945344249557284947488579903121858132596737046221312691319965615336883437674714729563119080225289999853220677240664362263413583643188980006545059964143011052540249456481344031923652557044585823260187525730029364619830099525387803451341808777829387969922189006876104969867214949388535591970348867709626458051899228199846520938208385517385455987689017741584033006033163204775678913225998768391690897512285013242415113464231228428840681603936321486163868692658820410575796385249641070006159087268985065601430728495186798789687217017466572376272650918889594535413523094960762406982816636531092973556397993051477570891036933313424612150922890269103315571234371947196413679639199046725359985551128412497215985058159321975216889670224518360311095670602744221483841600438437814325617176608581140023009159217371242095849251451732652887845571451755529613763945046908494869796963978751418206791394499846579008203492635889417599342572199026375467002930780309041388738012487916135422353965682619500188567342780268817483385810144540552010824496223098141494057046148740112715622403228538755579034116332191208877474555699702454312882156454692831504569048186782521814374320470860368675529287227806896530704202288221703529230128716772674360274902077194667505237538434548507409771233935823704921273588962791532926275973726280799273340552179553163787481258701646718070105660140789449729948624914943496578681433196835433665118755554719077144070578658893433669864502405555486898982023199845866520656909103415666182455159325420714708406598385894719335852653195233203501938300094751754313559239281261236903223798955993467789898048801518797285834659647788442972557269926106734116100284249057475620438581473507640628257282767536546912743182809833353463286944493618556327567820879271177518614738082317698012921762649206396495294238971001987577897748139806111512796134772614248836397365949493658203948350933269614922423065874680912544290296668502627608498000063588052142343279445143598109326104519639399246750908276591874240939609713250187528509849811091996961748445360522745011629495596728748531867053699173014491078061858777698303117853829635106308982203595003853670031398448153757959176029096623701032524626190118361736242732349265665892188303502054162505648136409660496050283348656370975629268432736334370258833075873195173047483562115022472411941076554711015789857520604750335075172565801659613299628501713529541305435902860034991992335022395076242267909032312950655942648039200411602675135387199867487515249089098746640136656254589933834942939788373460024787642152560159535170697155939915312220115323618440023594344031908296167740886024876432963826860186697894653009186518629053321470290956003959125953441445332788345076352967524611549751566884203073162605928418587432984845734402546422925156535997065135102363857483318283512934548563130033425759933759135778001469378995790052868504260986934614738627250281958300441981920729346690222454053728211415653149863158707187519283545239028629323083495880566134382327775597925719884884940259159089897981917173712579518389919126740172313506158288370955154236477312013680556823493652766314727686976592929437875976772308169029180809361492806141322398226376779374428415132606470256472784408054184359817335656464005095695244175385721285007658395619954101646759060710839335573688108133160589959604683712989354275888926755769974448313665826092244302274899325447613355773470196949212819924496737181010973445865925451018822238782422650204030177273772418534059000649276373085855804183713264437839587580476686351978491011069797001135960659591278595259503527653812307150123513010109742826758327456132207521767065016103930900671625309746150483375619047427455692173242216187646431883375778414542885690659181238544257476921795449230164408454514700562679781756194819099937566269246667336677930315908181026263608867762530909319917355685689812496312189642700386265848373350493212540482203695947954952886495977633203707668320851834488101189373445525703029842381213551233593325782023100357694532349831909208952245996801905001591798020494809816093655748444034287879132867525159252728857376936924123593072751250834583891139525872561140952451631748219437088182539342545811112450377173025049106181660954069089447053134541607651442994152165855454880368110900248918762134653699120790697583131239688650914137887561954509034966074735185752791326305123233769202603176872011314527568765116517013743751827414415745759561927258272942940669207188652809883699582460604076778760357742128644735778520061284684921330050920621581605452900860045250211251510291929033156932791025843743373176049077885110904631224494437777718444725159987266914185011164123675921263407722562965242742490683777844900726804390666494937106458126724607490827416002306564295760876462148929747361820862042819174149973455498591065580140137095536830270685220181282825022936520072766106039099707022819951203406928847281870713205798009399104002308825969285245848861375247115952542212309190630906498374754137410177832556153258549098024466564299314701918765064854399870010761900494105765975785618787316769677074959497571069229009100335852180389733581051067090084598693409027982194410382840833633590578602236111241230425800537465179613508224341724535918321405247594640346728680317445947681294272317214823174152022285450594940925369528446757831972623371707557873072191492345628237250380052525469738473988917711217272066685396529801107286893261518842160788946567584039672603109854000534171167980737176642294009866641840525777460306087251712471406372890231132005271731879821429642525618649511503472549950005532002194168167766787798161036933985948651330867285674611233118273480591011337726584450481482100222077464687336435070907628837208299719259401847603300022813422054254937471937083972626448520226519685985472142036441144939462905382531347128299376918138817729929670582756486557332895876998884217153253308020954312224568244741408587376104666352914072122634048443356517168073350914697654196232476530843902333241606433430788593362874023694679358004252725724712422301847737560934069792001068926635581107276313057732378556314526271200761530108340911719497026151375296990312506828450543749825243837160952682495052127092754882275278695649819281892642734708463301669736530018965437351671220030935214317438618935981460177745350734517529263309204810140275145474858779076231203723207630534179098785483639217673094019259476781086672101018599092570401704205365693618846303038586696819926310481542474741554099512320067041599830403425556412847008758567625337508227906625385130688686268703704106397679371861072749935292793571991664101980632731962899510406252544720476013821691438043565880781089412511951535390347051448978727351461380271863593126682927713459348600455545011544505049861765905635585575828174474289870081016786075400861922770291700068311498933358013515010691955919404261114713127158740370034469016081051240400903423568956252890825810938983108872412497778552072797091959219342378961943180938389880934022383153202002615521146279025292055866867301653455997693123856894932459523243603892993171980264460383306969690127259954144304453703570657793923396638783460984918818453650573866450743547618795526973041041883067212292192194949802461717996712400707840410995627801628208814111317740464685366367450156861451504388349619244487222746625768490876570573044251464451446302782769966822599004809222015824863470822012363951233598581917598711184324858778553232065698533866300225348492104331413352516429129978950319345995026416075936969105710695972151234683880119996927819255226788551279362065024176671479442623958679377339947516257077326342074426003703051239781449069463335513312834619332655830403821247409218734915792325137210197745378280488964082698439330373969600969637448653946266126025788411474394586317445061251803852407148486716123684741325362284920932313242446794463033698292148777773324065016160663126049457366134780488889959149478225692726381399031898604414424816798690183816488651734414993055619652259559752343360410050991903215826218170881134577209758406814259923331643555913903297747899352173029416629672413477983411485463042585211967384395042996886008756649152348557726495748432017732472821103887135745915558890517924996030660851058185539001770927053517791508514526506020214752736398333837172928659051373682187350810308058854774544215023716300034677078688105212954488037235536562949115175689396356789598887444708913774217710046210899192362322200587609209689553314188911298844741169449486399896919606557848031019186575933183608583754403433290423932624201898470558001023314446646702055532378238211274653719569057774609766611861088443931714564333272301555989418475239075041577329724181218318281520970297523500138672519144882343862554782795282398979055035093202805056204338351125200691741197075531512449435202814643364248321115471829168696649843461520739723769559765383981780151475028912072287908145139842688785837244113714168837032782617721873877878819165868671894362056522314693172131891763171280503903540391089154427730325561936634206763609590311113988118275711191088199764485508929943866657357503021223625004763616692063990030872543297792148776700661925237058494371393212038200286263083834769980415015297639327991351128521517811381498500814065181860064858869948640839332367871239402515460084025879629322108493248402597819779040338867477146377919737408430453877943680687075688426907351301239539258836517669729034227847502213406960546402628694071311417971447342874893076268542665152247648415872163441417953324060919291227732165445350856706360225786662342845301846923380146211986508666953576158714765084335726759307168702811289948196232279542824222294511872115212565920030111242111692983946896675820992709361411375626546940461322711072373622320488527036563751600423095040184435051301745628827242596455777075321169814659273728666479491868159668081558469829945811669230938252845879783475459330790691346164614253457529042421062636313298712116142029572222747488664434014557341771880752858674553566342313864009332753692672352852042022747466140969011745023863304611384014935806189383565082824647555243074093833354441604718052038848149142071620940180235827752934155948485271563271643729821489949288247286801277174017223431524840618530185077154424734609891506351945620441370492612738970678360948707647317221382039478289546325737953197039271399798330733265793137938932975961773501516722241492712036806543652852156018744184784654296678377626332367610618850263150494536837056753939623771787285524304876727524033931749703209864342125257860825504853904856264417339779544596572662879369620936182166962055732385156287170329738463316767207977684715690341110541224235389585765087693968348392613907600714871808749005318944120902037849089568647811024363801331619554628857714209720904160472172555777106385774612029988544275843748415323873470604980267411987147004124895442549366518443608746933225218989606894129798900464242893896785775369026895772420449092946957255355179329181815679778558910362819783197789900252654591757445934353002602310787197372997021188957836077757411137019386793036666701658660533693162220723146509278117167229809096086065306894890361097556615600440549640494278126498436899832334289806956454109308182322224310648313464835499116910127040333324222484521207213332948178464221652180301455391286221646452947386191124938268477520525218050541126449469357526243939587196888104031059535808775811033513268504058084502966912657073718810725053782510746124048278682856225137533283361366443013198211346464815062892008580564118002176633856877318565269672609467371578294099338294765038988428561887711509253166396034450024157279503223512893210290206192723496185991560775421040096933939530950708893140872012266213679264577027185610760701482624883203398293291227545193784563112903472408617038083140796535219234707351040449668912793172717394172594576675151079378980574364726264310999752466668964570666187100741488604998236825445652721264631029651506737175424943834228622148873742785941044124090558533526200926095421505464670481859297205733303201607580088465413821041998622736620964801834565007891120456733250632996108217567322946544007522575660766069554439702917090514423280883916428782720612493518729892255819378296715546134913331559531602213932459165117380160588179703939720692216526292008830401122491145201521111002755485694065301250878192426561463997769701765109778960855107013551222507970639029235507467709289670408331162321296921176824214286678265721410692441014662990166394220831219124573767708838129231486811793353735186564909188272738323695698603400576372981758999351295962580131860068079261219377464510307721079102779287257071105867295529520576185065618897186866174433284407180477201436028132219877699227225973293558751907112582180054289870810319098817400571908947167238605121524440890192823170926168873865847659307713452704122095004004964384685765822408889431667275701699006906658908024461679356613685018929680849523152737975396207507478487368258947435324814442400818753405697812768443592282163776163902906024763097028525646911874651237099164313235258863020144704428056376616032458388727734460102887487153352121817257213451284150061770867310713848776998973288232712249764196016197065944991341029703782432457014133436646259989649868625144381468079417353378805111711660468040846973337510518795622497097569618724924121667320533962440008304572568361209069691685005365226869143701186223499782393915818844558094974769905939596247264306930252311861316432433676339520840091936918678331320969114426262500950057899155020000920444186654721377301530855173306421999410348199676755274635469925240379053634450690318419418991213895864246401822899611420600249415144829209453980158055035984885533861344349695769846072927823594207057844911377203126247689587929332852157369465871080092359983279837066073676051085192349577799647714302000208763278461815412336305638742987464809790037505488509242742863928786825395428856318601708861771345582667971412761016030985494426757985585958393512363724725573830299429030039286673438121389329129061001209845069373434825813125417093912679622394307052203011301383261261713706638571830869500689928408377706773437714720956686825870528853753910540449213223237275996940642973101012817320571001884754889263766602419175042307941788896011768014772624182165168566491296748361839234723624310532045320020497254184750146984114487794753656977780464720535214749185013112084298232180360496090782772377668636465081014180708185621386160073790291145138988878082423689120114027442023824990109370872087760942918926935704043546487912818148751038648920237082648147605863592572507773763314994369821004773716642082212142979464303754987615591045992924205589484125201730137570824735405720636491527370587053068770170371632687114543716030048026254453299862506804345248264507669949471087558156992053498857688427201511062409141483666185864876803897354951162823531423580374730602167974160674267600968010765815932790031967543042586025805702896177609238422555959300669136928832629595975838886116658833488192066790714338284984302593459267461122961582241129976595714974798313614005325825005349671362468217061938576508715985714099657488244495858820531323516974364756529958730709681494662737080487867842069301220068918254386145177341494261871475247411903822212846103485284861216827016131181843431110053573359398195674732668771537309106989439670765975863204978392692322071287974062147607190001861361232699560478728680026333905676262741356280233393099898282032199849863586391774112571699957406429042191410368437670923846186526131469606699873190731203799075887653763131523289824155940570720351635233654672909334101416594419695468627907665215228862929949080339656548542767459515351375586413903428210181578764938799118997319353605994790376228666298641441269567536882865096774130052369122149946845080404287992040712707972795766219804449479028406487294978529716982677734910172647386603905386373036454504574390153953054198034005233147758115606508415285264862810009933173588815751591555312304420005418388982385017974662338792757839965619845398927197698860940922800227670716032604003549619591504738766201623461402530009472873135773182531462911940490982685241214039009972201054229079020526075812324762785155480434835304778802577511285063501252713968969880724063531657414123468526507704305592748701071739240645345911896694346828745893488996972355393559203360591147785630801068628306215660455081858957987654093881234583865382078106312034001116654645608197701011250495348993476837367180686511219888763537734407975819611635545875728833197281257591681413889988562298281706179479625921128137512133113030523905844604980305271818728821837469124242791302343514528710168273790092470363107078236310431001061369503179899137579395077385860739325526359586340108025822381535588092722615272118109443488240008927817106777415378028983058853384081234530159631071574238034295668575268777334174987068076957124736072848329773779372759181339355894904968295985516257406827511325658041031698927286367408126308934152349830699597838158861854146029923695783391359128836097109274717223547027095627398398242545673549208870379412216999109905081541102513563603209297305593081277622890941443879403395700313763115972657910283818826889932479345959254121667665426363647042362590727625382674746423636815775320732448503391698405250496165037635742348638261851958699670749728470228748345409344009867054974097309984486721224358266575497218828958770355246706648293372703843315095604159887154231333925953536076885672327770702453558393792221940915224215803392920836867323215584433156722778424910297129322868145012854251614162653790573079476251404836553452328445755619843857903185958856136629896286510048993286454407207915012176859800747220652475133198479586923699127706807255624889712110510496329225026366992728441761333685857831553932690529352769595394501753744617463695144291564161292721276187028265609377657514701820318996264091525743711021183318568055850407324791406462573138793844036565244856327066706623554161179249775703442821101513830713120656242073040546625613358387971332914967524697437415872378876344409580028154531757002670915732489463467533906170686737674880956386070182769496678494473399390133516972888272459919844225018046500716013695340696651600693454021187189182121418542363824031124309785155839108450631568148707676360902950504465190594629929266862225455318205450971954718197762117289556307371684661119857563506161834684004376620283507999154383832194279449958298276005883597084930876207270460009647169184883638800408464234369950806756321022574962411727332539242596223697233609241795755792611264538779972351351032987491935585886383515778566756185722045415187582480157822374198468545647274918965074065826575120472806071642028485039833873442560055355916241795749693624834916440519871755405183018817372295601646890722097708262711318763414895464504542076524618053430289463695252122075651592728669748981549031337174983966235583440999213382356391286036411555564245666322112693876488825276387544933250861433314022688981132916957010962312333251637035905947891385698956201053634075691590266198719882552196465594635267261450821002472936891424587900701027463289896963538457418831362525830359985577095197890912394192733687072237817144055044120439623790386765008416111924679302981647482052257569471634982355648156431437561256167393926581755595013654649697496186940532808760245139294465372139145351924800008989492732355481419445535225486208030608051947957357353201047399424869034348832415595455077936581255343809739463021711144034244455996621817509533937787533582956105544267607166558548228603779629522611881925327433673838223002785598704671191684589058378358000830803587253390549872342881532573097272467011562964343905246394442077973814191607575391204919212695534947772210161299470924876203834238965538845028099155689777802324484504739429168526598236915922200535428120001664674294269378489749901644060283436562196150498610849215158110465947901179539059595059802008213598735378299504452306951157352098457527361475223420178722344710258883556840872647642290441669248517175703604451321612776073048775612944395793836401030099271279377490003556297377377987770975635907322206166994890213980043437761325907502977212269710921538114811661507363510087402736624535081835011916092073288690782524198836852670547195015803432963339666252406251021797530012296437458270926695866965642172421988077368675403125193015319335535607922108958376403753679432454012473753236303428265787127918207919710417559908091370219099271560849363476301371152767800051288259586144276323265501344908404708008484708050328036372179132485499833596410495262642393432566950294809859691737448036921658463949686492225869086095401534159736165681939070009412447360432173367811520171529419535194059486549651061374194224428814442541377760887439522671812228402375362403387200065656237626155053490316092501664974077545406780787917997139088559021491018996220058543264026849857507735162376595733854278585652147362651665517741646275511278023127077653757527854157369895410683293680573728879625145547665435950444309352490305367085794635570539634105206188464772952798761915340403100161621044833528793840983136359993460301195622933559308528353640048125340430331215229605960726843764411566847304918179196651386622584750768889255866561243973167057280202293590288208328806814259365175197816627345516024404519648033410347089959710117476741818931434991284099317026851104328668851557022557718517096050123698743046153335012227402068228496595856766692290312265416263822945653652232541167567000754341924777660358788637190976005726962858241137370345837000839332114290116329290709421166955119305486976590508733551715117538152545142882613378457219552625139761093836881968734852838508726133581549963326651973645924719571149149530452933438848987378284667226992283620952187090254746890098658149928829520303697095673990910811426740372421718406288243812789305091504254399841855648234693512853410691459974943481456345637075780871708902378073043623620411902631967572819868478183032716393200881633633887181111592004115202010956545539539843367266449101265700274354392513354916334665844740416760435782321322836812450563745365237294296052826392082711364441270031181434636599038069269995677820966492675087983318828713392526763361789636192481760696418463727491855007058677453445784905107155949612243210340732383723490708623590111485201122931965225596650667430568362819031810101218707988011251694819180128457922519673737574039600127038966632837463945906077205840502002685676004515476565193895157714607468537721652093548648846528889685068891700181651221132583379054588748425299869947512508349280660004692194203101409024093057545944624633280238318439502177409207282373508326598378786063356528975586466381721292057027732555235146323684357946525699564383010028203443054234087119620753292032952617140785364425481919715177597291086478021666050819774385730088789751259909924517279177745493166599148891508767545791064061384078249836216111071273129198502112215511726069683473554314355694182406008539484952706527819660549566686224574679452073509966131135137890060090823601836963095721036330867155850014560235217812376931689040459585696461771863735633859700953681598685705626690770093214207660386042943053365062140873728357843718488383983017655149057718928056540816719303277529827735041202686089270417116451785751453739598342754539953807851463594147656143039540737469754207651257251089871705003985791408108015564709990792753931868471790906763260378149508806115659398051013007404498527784237468164308310198925903111727686488394574342101986310666413672670151287168890257974930315876883148754787056813983528850033653177374578455728679786839840828765634258379299085673853839018938875833054175694696301858717487734098186764157122763630065075909440082991519707579183487862949144295595371586341555660167165337650420307835684309626724562733574137693464579270914281779524128408448120943881612375941449464160803120717088530763143059343231182628087864202968362180609056238623812960786256429857198001383904726597290935465600458567335430350376532543247429451102427476062488952832294216629813538840439022850218674578502324370183722397273673019763266610890208306219357372666455419381937952690516819589614808662937277114831919011705492652367387369311004673622097144589154072770985299378519941728851722342001723180873779468769522199979962090537726378554116775706135323138287629550567396653596026534603139053377215550521299851111533174961350817222389464538353355458971430271769593294506258406269756991895367358162836466705070332312022048898003134580646317658458890564571660178740414796537573677293389837274613306747103510457113871383290719978519419339262032288737747498581444177860949742991877570442569597182808952884682740091092103141810410144216629383360760077409048204284236057022116166742404519177886360916383476804485139765827925135302492289444005495765571218988159399635351902099448362818949607635439938148259605442925040224148769846977583073748086056543817434467183531814664159639869719834573035358492353240783675186512799215442570654946157746608011198343243917806820485900079572086506155812207477064123975463313904099554092856005692452459825647324333942610259479021567791647902781804948927793284096881825835446396569096975035091583021953098874673017709962399122660917439492497925075318387602780467385065904579969140414151245977194357525479644186842035712518528669586364236651632755480154623037575259801621370819765503154904959948344650633280014894641930773995703063833479633008756686003971363562684254075523333555468282611758296074536866580133978745155610774654733750254598350127947430487567201701322622876158664743579132399210129776531040278729717450127049053617465188386998203439503050380821404700644823635914642965759554578044019886785979510678207746082525948366915628710017981646470745156979736860116663375604497421789692283831114630024812002053602104990605171633506907173440740931697466306858418469782224200208458672824140749637794869154633153720993269856353411218495533866126128586393908609075185353607609344928687602710910452595992620285675769282867188712872560016290105851940003891513645710431318209369496702062881624090441132629630408968175674774430371322474098118523518393212381544900260187034674904341017874035141994231429452705168031409589196672295554239054924907159981838767151055569412269741733641399726636541904305874201098040665182438753399829154414643507993544053077875713907747923443196460269690339720512462602730499474592319684732860033716810487728444646858325008066433669113646870828513818860861384990622256754540876805317082199794614446855911551379663745914059285550421744943493673897127103821399142770120077131523619561597617642405448665919382545363585541120805881509981112968864371463162697599297492964672555287773954281828697203045499164302873753627064402711085594548302268106388099907821763148979167513314141045812100809179515433323316643773216193807111649237547379903081322881312498715107567698254056042057442924116659410894871550510066764528789559101816898717472658694084072876618733432959406201077898248306873101490469587455012285778008046689316728977559648115304570054415470627737257929626848086489115874648599604495259639853990564823033392471601757746815813908273008109878055414188120718219351981477453845131891316168761394854656105184015970656655925257349809307132006280415422483968630748228725948502196913680698908315233088192463832749951766269596463173931741182654618181732977500307947174594150956141030717355133585499252692145609984833316942322498882478213963238034911254943019604126185764774625446288329201570202151854074459525588020032540369795033652404997467273449635539687375599138307872080577997694920960936654940252671062620541884456355216674493867033974110912863844438165431116795929958037782968599769449920623195074962341695850609523059468048830182713189524811776838090330545861968014151087483747109449152701730384567773492583982576706972969218981897741930987973966532456995372544256356926722838668828655403089670276937798919414115695769027852829637266115001529439481018543065231192762962103592810311885657580291975467635689304026295084192320095017066318779217293198976259332920782201422556952430798588052914892307101127658745228980073447494466385377392135158798070413131809811350049275719770682304597573841638571318603662302899086718243449663559318007820779595432815641148299093588289700203443341334639446857441044852828252242181000638275834097100320288047029845474626926134892184517929691327866189144120293464112299191535809029659525392483827400611730277478831190743624695659074360610837884874277400614816718393319306220401678554681502853626821172968803029977094758832533554234653838564369467897693974071069253549452076260604337346188925249658641730471761556236312083500903244208845131325614005744499265969004086353280603262662355787037994552832362408604079071207203698891100402478759824649507627035492835371611493186301278234752293632265853344975168085615421706860022016383083757055796451837287197916059631286309438547978431467145294414480704560067887490743943956726312042265394146040434503731272606342547794021563477705259331663722311648418053995402435459580291882146171162483254225883885834609290658233807367933827230723557002309911556862144335461540044667501778325475460875854689782676988782554463615934662194148120853088892568810402746092557696266747641870606389969329038918474504331056389369974873782949697832223776386314459069933008551454674144619346357161910162288962634794842486671179375273169153365880789087822652534401426193984575685888361269492585977113339251808373913071152076164294274017197580885030634490101632218204106959651022620607356224254142036359911068018281531409474558223954477482405345887546957597666327581447168228812993942204400069929197996646645437650678353459144177031507242172131958331936156223047741669975481389109099743080112158218873940065066059339236137687939423845805430941985092076446436577853904206210367538882857309844600768531965330957694259905210083537294841056532204317154762114330296282716623663125681870482967552561014706064422455215442546118864759553295901474881896548179951855404061533712598943823429561842129096416254829266679881284462413617281011015208625579662860330990433097769013678515109444687285268385398679143239976873219140037936909433448811323784573182778507351542667182360459013759257343800446558753018742313172930367475138742268362735904989954125249208539652193973480572423994377693694029906713832774979173184470646128265053683340926691704485906232965064631713372026686940764818151979161924522037763243361322778021239662836798248278445823049488958104044419138951889721806956341595235346680284601276551453659189069528120077014162226439425674133071695287044189101174098226471831726576299780347877060254312586702138552346274439667637277803605691259867919876033497384317849599869106277750711999487318560942741984566949156813928173599110565516579453276289996853484472150753806011001450653479869995432879126505546956078960921780241390836526737203573891918463350610388685654614282495683729994486455635653211084460458277487959529233597437617630759444061298918219788107574393386961946399010968695458410466498289172795376382946508181023543788898723169436248926486061040782712319068636512485423773816923732288735499890762003647360812391527265704809622609847862461996785671988859782189606349326328041701950112229225755123120423804796686677985215509377010123961336050661302269066247683071193645179792541121219762411843063227714520137185450264926037485908254986680161918376965718973647299114000964664709853610333927561108636395563465554415760468753028943133246188420231924702423196062708844127819302245336850655617643128060797838987753531755641378746520057412309463732678904440302889927163258644789420807397634924613906973207286080630607457270164521268321707954724727008632548428020580328081317051921808211061335679498618724657406832214147085945364541140126420402393045631352452776676351861305075284396705789729399463823320208027331811368887805123211583058637395436625659080302305586950754418428895729491294187144314973855755021454201478321804115538069969419155771543033692156053062740304252406093306870103747592163765578449865892942765722535261770053664174022680961411979497656647545001082400775953686076282867408496777051707096206211225176437225641045579287662016850513581384804610613487437104972461967640712425173203175392315811327603187187981842005718774907956735921833190700441218411324524338342767886583626000255499676246171348940820532657260136202172690099680723858853569038208497083670869009546042098181625258378801107665361819163368025527882161985202601897811642425114536646556715678019060125839510730504188655449939263058032942736430483524083156091122318240316483305179065527007111756472178487917749279966613806368297206653647573734948054784972467123901078229648743703046617421694462911510143696495885123138141253744649462937523651508672653950203649245479635413985779794994268275754307171548227407039299525347824133550030413389301110300091528838700248223414839555145015884681434192742402738966514654190220618701812087979768057661069939705218012242232723898274720722940028051891794199781444312746704648712428773908651762795622355895275619317426590045618229057990995700400185718057501833988276007993918990513222584696816953853277275325795519068906805301770641420547620467732956202609238428875562969855662335897001214726078414980134407577310284518329391955563515169534727021532704746444455777189617205717475560323981695854650282660155339427437021833343983969420408039653797196482957306703949237253528130485969821207017139699147554730203648281349191856292139330051172516474216883929056716931109471872133769149876980856201607842803294959423639818511572725103585870105694651807081956797622948633328712287338764656819613444070270301382032483949145450020503382498494311532364130160462578131170908130937549251486336778723541530182736395341886023196739229244976627511201965381284641852744880373767587378388757199789778653315133966071201668865582998700978288620997303946215717652543547665807593491139951274152164660769160191206121669618249097962531213137002203174835282017747097744863754467557760151476939921711973227726768841207876293990843318537687888255218368429432886603862810507797818304328900743605862847527208927392074638724125569190767247602767411573306500298300357003965785765024236953970018414186814520681885869357648174964859656729425283851139876746865486090087436839496863324032563098171855569220676423881592663156660345677528690546547820467383583179075512995039742988836786961671348007417297483654820785657135086050999987177694346609309636882206498533193818949735319938912239530619999829753821407295061115934402105718858188435935537372832294381557823110269121541182315160233154057055252611846221643664747631488211987525263544159425158406749936092802117398225369224658410617379777107977542806261544594043196312230441551124503494118613652352468478103848915569526776505128473885094244520010912747193251006393997358594631343588502639717489098410571280088004309620844626798635001298146696122802903167247996292482397464025687773527518252965129003880070125604469059048770374634232304247125553741739063465713164384210269326855636300083990670135693897534794466885689653565940943059849816937566320700279109177069209558964622139016076945751520249800734207966924297157131067394577395914650725344127763633284272038059399218544988986074988455842193233539922427227067075882709431247214340843655373386988955746668521434058537495100907478314234948368108549552957089280547617857309786360762355621415884939903588408126266657660857432333742131529075910702070736019548304220413528286740440552695863286884490627208562126123935783162506939944731172391288107303733050164561525544334683699277141886159683182898878779412796747006149599286643932529575145698494703981682851904003986038506539270024170970570065843452724128249491000435104620616815594386413160494005964304916157386599087909155020590382774251891837078415369178225688638903598877637738233957386851543118390303484526021865618476839524529237382831871692111368031065214336610440531687702044805427204778188107110056367167362640081469514588787429765675635202669200086991518464449995641996494271696901588586040965098246683895144651786247140694802614253798162517791503788841385724277067277220920906575290254397758980097979164532421133643598450698394553446965863711083392631476095736681099586074533565778695790861633858145634885616534306802498736083011749484837587956766036256920672293080145712610430145454132254385648923438744634118035716581823898874180297367817315795489463435374542287733398637385349047742344531023376614262527012180360217393798201317675568598938934918105733617050016045992482450545717618379679284048826060559150359439564866232046292693162828499891184507127860630843993796582473002060863144580704455799424364745867844535883450067407651150933206757041308365811381809318833374518524958762110583035369905368038460859557169371270618106299228725195051351685241332137230523168149374479883939007816161122031044719999347006121856412660968222717231821057784898512423828481036280606800944515635157439545375475211893122882819083793047589714192831758918022089107880856071042365770382576331265389036827626700359268207331333993375222539485084117814466626889538060865131042562112050041778936222204036182164415710356088760311844159043762298893683530845630694801551488227122777487769898491520969649690663368645768218035119237151450641928411481244142626132245513771024427759526875009896990755604747778615907102128824466415434503811205090911031672130492826763044506154835516643234374103274412632014772535433234806074721132007233320019346070769678138230473292457490157694315968271642779118797912163138294551608084437629363784576822051535187690571418528834842989595995642115092790778123577880470721623094223378498987491486616268268558503979836803275439693644636270283508854916476348000073188498720688500634727952899369460637185328113653031062906566093824984841237373352525942101231269937586375595265559178367094312624335782005557403694564735259095082989208041825755909521428637458172088841341536040708097845149694945710861080904355194522410909990836806139015668661788092751604415147502804630713873657448534906377159084989683424756047908564663267535163917501047163743919221266071763300675119204690708951847494746682205883592912070741874649003346177248404641643303077326445412301867901674704441381710215881382723583659359809074759953958369121708916648460440806859869393372620192166694259636118062188319781629205171811010557387110031776084917379698695979601840250908416579907308020232285928327912468732433172890214009026434607054057410338273386034756216174607814231233766538016763993303934046215703322948478665838300939677494351864273997359648731415909611770677569691886845553692480226932803391423865786257294248638373021521150140624478694403862078203427988675093646829434557883242867464977724520572640907034805380353359403716589417721675194567362388576582810390917866305794202733025924699723149913759147542872133289080391507493497302104971810228594464531222893074944028074965459465126104179323981031344873564660543175918722611274550448052507822568506632953589262703567774825219303025989678263570364697460269394172942634311999589646887051371674006465917494258269170289439463562491108085650259229114870918013810804454911282201777994892609031715916547990093790097405582376165071187292659965358428244767370187572075150961501662300468712585228711146488079080221126901843848650937125999335109144126966924780036117484174352196055000189271260290581248890949366669245885146448547978060711983904612267108171545332772492754742387433354581420722524309175775718882152716116034742326358627025166682505619249517912146075646141928716602773680115565832440022623097560031424662255715878941851890992582580467251887663331663888216126974665020636143784397248591515979601695574839127789120659690541272828615832772047583757174280523624689080643265061931332429216367422904334495338424995101692798713434180902285247447087702664097658950570373361607550333580583632059750741680289060639862282851773425048059008594275021862431835744723445796846006477548002893021481854478986177531315028558706664918361337128622291945430301764963626571577739487863461361369761850854001263541177769206902610263503687597038557207659503552147328058584108994199011810484991208211193154794403713279654705000936908387730628432654271330673945485210392638684600236703387443016670015439035706151109581894112728557725815433825360894964250090056304808256044565431984214661237897357807962280788747674973344372603358877184986534697385305473843274171821890615232683058136028146035982623608536592074744839716437147617737839072306439339589871647656671853633854806083644587172557252136252782572447941640290442542309259099888900623589440579190357793353878982828412608956473037312412825626809878753869068149549840622718685014325266603712607432665825083385262440720304168333059460981398062710040022767076607912555258562644877590948812686324631700097995832949119466535445484867674573653255455876543867813527173506427681335575367315414226440289692695842262708746729721244815746793868818248046814467801097033308783458082878796875419667161475093780541562616889705039865986182827322051231913872006836309544357139188246258744609323766203161803304115753245457520492650912997212952590052828541329254167802010547810510994251973054404619726860638876869884682410990000499183554747712780169524011690677412095348295780192224861893281596530179404077507503976514331276735416649073775869851480996803182711421446258420475654894425786630622946144607630814550695868058278451439090731016310396627616452171754425969988222626035501851306213253997937120810938170163916763584797631634097062504995274094270196536706399295345129858532992908790122426644811711166905834258986630774921350479799241816967170492759077017385057679057352802165631548567096429107400062410585100993639798966601780864537064795499018828054379204307200516435871707588152233965824112962048877487109199450739804950834971264232780984512376440490676215925269545534313267250958638715745058770302369112574362575337933258090229286252295851032176478410261794782736796895534858164643906709406876102157104249180744827523979590218679259195781885792767647894668023248411534954419676720315873952324234905636689953426457091646133584326375417961809689061320652668182243626172625135041809662774456490990461175703105278296864654310054592299886105646047685194789395229360182137042269163232244836671225398690554577380784214059172582577041106226743389995659497635858308935021150745512423757252938775634731152949739509447621634545979796898275193241630063550763730503454670351764215719429546776287196914126980093251715509059062822213866144862295851121680300595325482377249460611280078515870875879698948078703042342445003954493739134127100723240192423078575306825239610955525725406735511575655963032034043286948772223168661107136289497998788057990506378446809483249927641000141897184479739805648347228440315345503434282144264595705524735201844680582419490674477058934280175236183655251759473636828138646270100509193067322532222126012723479387320889526023748939418698049078497399435563285259655217863549723675327716502566032863784324536829246479948583359216118594223584108298471479730043354153877106740840987308223392087884755425863169283453772626972699981751357515525035789567249349092472703740695569571531034668713820956823807551484581645994454529467994100696271688259657855536143195358756136418180063432883722718986891817729445394012835959313518866934430489035171788283129575356158661661236457845132977485602629378416277799926137934098991945562851601187788723139025516049836302203362343323670240833404664231949738707351018606249239082850630523983796877223530547562428997566125898767309274894704701690696826404872784585119152239810358306262825722043147954260395991060144273915494497218263054310606613103130234945650709466829730756091393153949148916687513914740785205089142258539994428806154437460937187249488342853160993893234440285982061171711198518592912984332372904280064395010862322774748246129156914693232281534579520594123535936071012894747108534274096476527475071449285318492955029646402780933853372308723529337870909307876039522235150839752568931347298914264073533957909104494853273897006032216693881982924750072662959866711132043650451818951555657178167481734315576430610025571486462441584198743237785337001899190210850941860589830537264505472172589784038666615316641880759522804869390492416172942856309106179093297061204698966123234261565655282067884822660876048536443189561179745504801990762105821326252383137644278110504121305340705965376702220702962186256574963958722649538445934032814140082788004682956264748029195376917249470768754082731001861635280975469824957099638276400453816249713458431055640166144004797382907202684305852749312552342940168071790949877632580174603645082729805428283109739601155433072655051702676192887232519423446418599604792982034439947941550463846330576719313301728968614088585614607486068277052934538742577969768261311295797673616366696072201340371044800071677809479558452338594555555321651724043383935799882865804789705967829546459994009538460339510202239825635881949833010331961310150094440063186475857527029429384887294671725734035271576154578982701595372164462978955623111068618564629631331177469905889444755742366356590944555439613817781189424391854964889212569731076693346083301775146949426876792523285366806416274263711824436072041654398869094676947972771508211355379581215444570823730958322304487884572297190367633141402101337109724883479798650335927838549656602721760547734445171904037910102552494461086091096196110419347923743586015418478959967984002817558446887517305731195302758928141822606300499221721003774800875856575555285164314236827741665748176832242987132521901147846140879844224063993070347530685129481765431747179182362506506176430397168250613605878613256526121256761707214587499170599297986520478088388816753685600557658744711077324377960239759662503783973530384136939931273982372041314192042337544481541932621427515405902719154580606959742525188360116887686966071405993019460634995474620542088021308941290800049745912451933750466602317709644561432869278705482467528193119470716119071893680786012968189715132978344622781140414344638973497388543250019423479150652769906472334979316629231903863242885698283060358041428217855166056229736093181851694133217076472353477563145085287694244273121262945366305095854835452787662433871416989066227604455227255955526130674128116941012969604729306061877384541562392242572121537776876467835334278873976977002091331445916940671037093122345531917122631471690106743865706674899807336733968634960631508693684988575072829562010013183629311430555876654015878913063963761377840296818632819428886044366483892185967358660661982662649633294269953858607445461396067507368451526711341185337951892492054735853649770278289338515253295732477878227694464158347559536362840487405519846638511414227267317863903488436269304163034721511715135201436917226245429029295834468532595203603417669823165840117299383301376717959909813366333273762608931716434338809190493636128345062926856193347628925179994588211723089838074636908453760468004044787983258207295626160004458631727837209830356279080359266651063784296898038774916826468287922767032216599846438274261882277508332388211745219142623225433039532530816448874288485736011086633835107288477121745475263198227348602682958755582688320592071318628153051327666865417992427828566915624971728450523499983238114504315479394984387305327783131155546068976831805960770614139412902748399403429185148416075336709182676916351662751079878164562706808276203718496416007491525015483018435131654578777959237870196021735547540735727816222662580792762903549275137288157316125410877600008948397338825131772506398001771505249627206169286516557024373432673461288666764515846497909663651789638706965022683527032384391901550339468463242451847987815628372013013329120492556669897767833240653265500793003448068540896145884295560080628282139679553180941518499582888403880888814613101754672056477668207253985169720712943946599952249449110705697206381316882468433253171589160234314179295638007553386110068084043136502127701878321008020751938154116943407279160673235072331452802989595979926885138937357248508147849973444568996953131083703275781757367469805195451994438513448330900288334802862574316981093406809923909537190830859830299596187068250105010410178826712810057062883688070554123194863599543701445340521888459165847371567769918918506292225062965642368836367038508755689246915699705498405756328816343001663177136822962374224073928738568433490966708925057298827295151618240313589511011781510598558636953162371022526157413023074760674781136261056868561790046716590720416795724930548184945730200489557480989370543014504913785100582766447771949539664081821763549861932050437177717660748167715463290163238508835179213792257460463301926702091786108049223293370232269638191908369016306691853476517134534792918032044797291135583614882183737369370314890988804892203739331814748962962704939953764811814646681962944962505825465800488053618088503473147050023902998572412704017568401910120538779940204354874356351755435549642612030758397067737274125623625542825874237616033499980189152324500851489509841594107369831227018423099747122847916603164635828035731531650838350920394949420142793547716243625903347384492855515821060468653376115448809837296072548506208935078818695622865072669162175481365794388733079934755808504706743298657495042573368862769378518253980861585901454592530302028832467405559506092441618506309045457172267457419219483053927039219820150456123463399396215227726283294132139447350102783795296858305887267644211445297345851720087654221121052929088159589428580844765742765897205090805266008258324667777697743331726785834242051350735698596112100011421432282628596021352673846652443277363904402771977602422958178972528814405681172605581095797103055283133207877744574972854186570754645221481512388336099775570760306888585213382062139368647658126537271738984038863954156990878513828630721324281087920357334160252701119890360924020963556962279815245693744184897186254556089218283522265888314564878020249843762424003350399734883416300358522591363171695639856107328106526056256066107448940943650355361404094989530540152607169323740327133169521817819125605312858347164130635350761278485968569476519927701190676587114501159736625546215873208350216893806010332258883302259916215237968499730104261356123529955529555612033105759256061219954479406992287398742607155964278902179473287737239907447629086884543935805108403534831889515205541660616434754208065381318742444011373816037851485742594632048588046460613475639496133133776331550751783568102088285955707565603308316591523720478137515990351570483577080602446348696217518021396046942368697978671238008976942562290431123097241430508047731907068096536935962862676148117066480357668275552134812048507087804499965355842253090553558456868888098501204475855496558612146061024046088539008579169029537110011764375255117646586400629696539376241603164462462400215891720800300986986105182856927837109796757846721147619887981810753264487427017822091627045106769238400338294235226808528070472925897929951846141088850696320381505092520597998289236940554994961893313805952604021282836011037531243891144472044896503281504722338544021755360328817152779871300583820306295174580029904925497463372480716079909341112228959870249859876274546927464673703344017387440577134190729290890675132538742681191684384353832426323376957407960864623284151306194849092570585868396598718406902870284306533533475834783102379094953545545681093569512822400947761568860931827187596748023578443800617932986422436748424025881147648494294823538136705028682683487945683901691936242687646194116217120803640318193265969082277209403264058998250939612457461775930379733585743397343219051601649808065517788056511579110151052703171857762459778709810304981107695657184771912413189326641174828787459929502621870389910108859501790840767782572114848215145749151735181264991259857699246723719058645496409770452888176717766961946497881396495021814115115974499896677833527123731178315443141331021532178605789839912959841855254286477994659244370626570537469897880168174182512823239054859114953710474434742654951956513826575526623980986785557305660577814632183719928267086435433509848386823293216102429158689261668661906816858806655741847807262816856163690340218104578251470230658839233462459757306839457750975438279995598759448534788505477951427482732473825956924018962231980629562621324638465991648156093696842472032567390129201739957906632423966511952420397757307347340225958660366895929307161072687009854954405518967661786620341055331846338396914960731233444833045312652896718564492798596172795426229888697716705965918231788070280336071722365822809202337929692332686463744804680439964245266162554982706052863725839270683521301133150300071916904293276383863314809597526462417937558441357810160376974274855230432329862913522920346994197117840316478590509056407806849472722128868855995536180950923121863442350353012069373275293542879131605770334844961702122089867090771885945640661032320657463240355933308819450399529287782670421223781022508549363923761950917367133361125827416359457962609339390512958304229594659573052203984565647681608718262670080575746921501880354924981104445374048312690695719358726037702808169930735966012923957445437938928927228676471876704247927931425984048560499270327366382205300324184893346151477526368359387786624143270258693196711935723390423531771790660916401211027006730122295535124193681349599230769632175949025149005986139028483440720349090608469081011493711834722260808225830166947468682059011452680751416938742348088678091619688239004503700526722550733351479546188292556320106170825640669893674861436217384614229618342778856099180419325315889041317023136732102336638153653210415120617692866743555251162083192231652939595690855710903925969905829143499486056739440309795291686281502688884109840556408812830042519762407334027997772661132616443103519900404200419943901113802187684081488184672044148398267367063485705540115041430047852221663759806570391807359430249496858328538208504027458753631147041825706066207139460932659028879303711502743288114658771685627334883882537010309326605091955734761618925951060043558823979805972007724252096772665632308170353845670327544063461796065887743777522356377745058651563934965638308188028366792397243609201622088326972713494274405042619167599385429711052280993659244951044539373680338188812945409928631166467889879251235906201733609195384170676019862054919829782109709728498106713914142666970737933286839111960040514800911865115198791345404981651676769516646426583534394830110593641627016796110955104308880972841887120459160234130878719110211546851805771284023613872982072156651956470766085585615252596850966012542025763384459344406481461309823009522977246189972803608957755519355397716638631990131362499260637625504352205641432615127007301529451450960270350746930221025861336353687983448627073006406822120637245402240573792143239606995021726076354435957276641946382386767289371104359610564581767283517243867064954118180217097271630463735041493376742399600785399512107695700708129921094833732539696244779656153120382072418395960799673502884599936749113833127749278312999806244421090432882493505513163927358509632450267966726994905669192546156535992317840544271612597042164413676687802481293213175544109156116213502212337618829999868181590479819085577604358117949588030685055600867722877091451731018048547008316556259435644906168423226225911552783483498230892195610062874094344512132099331172965880703951133415441686571605851738414883408897833810091740522751125158952020924342353041403602103129817364395221643503424279037643433272576762894049816585327386600485819485066033976848921424696592553802346594558258375532855650030344210415307264419841130047646443504005925747424565698052410195483231056075834253993514747654027808535198730350600266048783629040409384260380659992880792349467706132604298733758865253004769670479889182300855568364424881424484402930543653342287875182161047946740024729742451760920535721383898919754583494862617927350591155259698601473115028132562343216750259897074345669027502474377939415421842559355832834856206210704089438364329740605367852682689694779161774718752486653495772937544014582890587704643491619284150738608906644965425051019630421836022314508155542747455202425024904149404930190942861581992815507108001022374620493350884326260099889133221107953556449774032898482623486373186611818745272017777032317653663289774640305779755283223247707962724867342011545612674493644548581392160954871492040275636857073986878709604826313345683499481902931723661716668107576729270572043961395211381471525943532747293463775378597687472207646649125343492869098512694053512618445473144370305562070190666541920102728734271066596151369901140940847498831421916086417213839363428499828382571266124573121966132602941820193521269608452297000738510497583136979615788212084341889949015903187694650730639422893594535144222426018200276417445304599690365359488115266099313118055269554060369963630973668796367760223951845301772564104214678063000800996675055783315149490288390724626537009729658905993000704234330914993339038431221405750529831254914640579863564732690280975841493005063841377477616392854289052018076804551244576033067731143822851414210734993409670115795757021780527974776382742003326153212291687346140959264208481546759702984622808462613864752464605931021533677765626161126998478224141751815944428794186632220172215838192497785709671736156334943344813752727612699045952571961519323709718708532638828740278863155917679625038507076811232560689898348966800354110964705654727833378352901513177883553131112588833970868965963961733176818504491017173329931394539615410426625191787111895136964371147611111954587164863717450789636164477474735437459923452394154072930204201780852014705711605851277099407828442628252262598391332117451892203957990802787659438858859984275163012726370967000413253901031363533045435585678310635053520270606987275378858977712085159593325007871890805763740292421677065889207854978903246042608618082107063416487124821888239882843797284916747874131542773445611713453034715862714571828044426427656894515116496560576529873890489605936257309897239145197200398481596735095292774366810389586594805279060831201237019966768065683155537401706157263834097821940611222814054781710477057598861139532946793058046300927927219745540505801767140717838052569404224287977202698155489693131016971379784709514205872949734804874577516014721879750516681080544564548111043002421217106394490599989335293318418090152900172882608656930401734273395827182841627941123456815813403792469037245736802170283911314122613398064580722393825933539590683939639472056738087204628976513502660280349882128652399398504119268212126510959965666943154773941606671632305937070114620698856204984526466440656644510688677736074041869383056954656094713649281047143818918744463130601338046317764108805637121706481678706066219664421393006635332634767296216509832923724065480417363681005955547265456938782723682406735492089044365844331756432053076553181023368391525596992698036799729578516762020590071044518859399869217663934375639547355321638989276790334210342243726198369933361948943182347153124965582204049005953485679852916864839094253756708244019694969403992102989609201930028059494373833693944418562371243292662732410601829975421831407491539908423268279391416743250437921724717261281468624349685985255634718733132112181062959654094977435348335533412182711662510310090907891396906552564156616016096721029291051816746146752718512186321601987810467330446315327428607530383043571006983484500773959485082285854814213964602858962054022841084245049408102775816213455833899615715975238649471131756372913249570551330194853020199785918477739615660640649058091961999166965405635887081539918502760072774504488149279393516892606473701255554704402104553751609307314181312475182521813840398813956437794414191013251043155827605381098108333930358271322526561719323551475922201607396148540287427298747965186651008718439267994276890358291390973282445278740412433041952879644395423085539620539616251617329082312906391699256350679572114974053449542365915099782122637473641173153752346500196538168467283281959555163616181298788251240591427149168370137098868896034832200016296132408038403605447522589085923335068166485106383617612226777567428936675485102898801855180718437086102062979014456021686440534216202098730578521543714232658786451722579224406800297093377664652564434639300693967048621986755785690171778829801758871320791301098948456134885162699913358962821260544037074697380639466355545143222994375140556882463002759455217603826312688466994061837282484899747410434423879443505562253892664255095646721917547071622217953758178619701955544119064107445844446501103595411051794011421449461230455853849596581192890614660246379406066343592690325886470163567876575537153842233122303725495295890376357178258651595739272846591753119705029458167194143460404375451391895566648423397647751057059959180088442069936388376933687828432530981874342510081331343313311241347833127249675781234885139006965939666624242977208457542553072322772778508727823538990195999692918426868044595141487525684782694747853246594387742896944577957660447920896884703993012699621778596352614973617952871911656910292263912932112167809586381265624963801243507716829160488617373456360703273974172719169113334856017195386070634406702922322352795332222025572583987672674633052882725638866753713918714416094691640807744144189254733343763995844647320848491521988801342557139782716732537322495106589680237770313265209948602957899274455047277893981517226058891853519706903839550945604371441859054582888839272542428774071271032042993072651356434409784904410556514617651811922809889804234446881725816514191975115786534009296737718561792137535518550566719267746232342744222947730931627508654508134043424529454085952823009479112649854708802231100533168000293028671469336435420232548038340012512675373648045904831239500728560090736155952729978420546560021854928045017092551870223614445810162355761917591754306373305177878140460712219210811933941214253001230770369516616359058595269778396305755959285492058874439760726246580781523733524345549850754152672765729230360916435721431944752713547974003410128171498127943507661110293969971900839911815423577147014321522117115104302764791639160812913602495879804637241071380588014233297599891159000518234743536505502058745907776529696850048370297649164925826135627856233870601815156892466726466600089210523908699027709923259385497259946439214809992270678744372178087662751589782679042821275437353242532774779874203191453117097180906073014575609400805792879160708212271082796128608185250186794671814118011737788234765441636405490081040107599946391795294749784725294595469267588300971972692617615906778846342284167850232144250976752870803567268126019293094459725329727197870287331904894894612590486143775191265203423729859452092488429476473601607539962493824449536297256903173643777668122290849894975647519489022351224896674198368065699362211571119594099628134452507493661477960431737028861948393931734190425087094045998074215004705644463156079920213235537681648792598388479870591898081489776193116453949514759769416821145475186562025483699771606654730238033302151842583316191575144160846116537697308745711045239115920283011648671687740602590496683855761374172207709407960639879794637239050423457765845587678549511642030776855049420991747165412764468438875269061601594838789222107203401781584621567416545452255847572689993580003301026784207594497825588480935459558431616536186406543285233540126595004755344873166638592905113255174911649494743278333523119498126214975245289500554630453850893604307933884221674177281840170813458085159182227655937005005967528937904221096258252188634371523456223350452022651050091363294114220151273320883875535900891512345878017256195619883552941403888219956642788522801290381542530976606155174703582651011411901264067945923226096197228316631872761911812846035249320753534640043682376089089363915386746878250499934430697665496204160620818737988651679814343348321696192485545280696901986732073251458773594679574894348793705252900715409986483074554106866446917508387627316170788828835011516187655414886681321373278735802312213263730048427318899995071608862229150572159129729871940200354326596587391004104675209027470062478704992975231237326995483668217701844538380232214654741196734284034575610212396516727245179483544834215142060729795649056067161834065373395516372667495010721327841885427500583290199983541339898239907034464196192063566570319568684655404036745217724767418871333574443182524770826237465334658064125398354590937663787380853943726429697901083772632503237315558715270284611378222646333139892520912507620164521198212267275653859903142028631096408594210989952932952171763748680670890631347222444556736753720012503809037232411366076868390266498409220965354108520869097251359016666843669728671994085380694065007612113767865155859211875261208613747013516318094215357223846334075016776552296020153745553344067213065260584540438908886239055532645948885655220939556427570331985030339127531745930481503320880804177615221061373022527437645841328815148686806022909032104025458052623455467482156724262066436291788153937269080447414032603915673061725231012042259088581224648796647459698164611238903022998001612545247198696465814953832743101512924418126952302598349794822447805079705959675176780973264942001249004319858210825381557304871097781329651065135504510928553825677854351615415795612125003298294011148350363090028050668432065505367169563730883338380263283515219262302065648083078532078387289465141732566319958959807285806010450830117863592657660142059365140793922756170255849009929139974488086801054443571583611051421452630087044544651957437745827255751914258884355076151757132619467380984832562307362371488352356182888408362313281283846404377611833926833033231513308487899848488951887709075222426432271902913515101087192324206721594335876844592472568767805272893438050316530941118910605264941874085558540634717105406966178463876993060122052658871830228903854614201546435131492078254820662956012196695167355064300969007596858761324390358466289136795103793235897924846915078491138909287835490550694488281990777663721584241946598983832711609171838948802538405681711674921222856424614515331587751179214043968677621203603007633048192062346300108315291653280700789533587060652264254778305449408462729440664380304636707142768776807202489747221847171451438022257437928230455479164629871816578558519788604750177973728548975778858433396510160102976600873341667991167815540840292034939496985872047239462497411392863974374231881110886577442914673199487770988216551957895687533325755436813878995413940808530080059430663816946516984755949157694014342405245421025266300471437591600426995850831978677079961590476619355422632698422319385688421780547087278245137500187774708257676044158142171472858229179860434299447754167940477630504954010410807823313597109392736978292333049560952873334662031655052087824142082882932478304110973307676509548223743629686981956933395941138210379821526514588836873911276414036139679630910094877566889772461037158888684928716731756922037775556214085711469533564022350266668996352806325009788878510244269226956605918840888081122115166390872611421206557020833953624831591116193165763445913764617730216935185165019033831387345480564334241048014417141841462945840588570069615022670328874592307196986364504334303285246058119523229743908554753839297634596770591162971889877574748448602604216598421854069716916231208427981040649758409303611384236056875987090234731349073903938735721979811785371500151866707867732239413048281064709720204125223614035932814144238463790380495175294343051130033047627940781362316404699411391580723633499180894689825648012576147552306341513034160687093454242542294540753467151870358038412380110187591632008620689713580027519573321728387717585019855942903949187117457421353278635864862030534678872937534422644074334577944225027844223519629583631694545041217368581139152035073285491792683033952567663467056181713931275385361703280817166845256658238604507311903208508627438339371172473691469227574709774859791676470280409908102737505842386475817367505328119725106756278210407398885272101926140141257325862067832834442409132767349975694963019206812060081502998826096157557054601651992315683971879043318756304815115310734297974857702074971852558772130034258787006041463466627026484676832062012486311488117694007378789587105665752720454815229995230159057229678262144791146782496224940880972380801429516827557793715897571583771083053914853006305892491005758668329504043766863522883946935864159042356087462722041974044009053188371913892478550224870579048629792930484883147605618535701502517447301325976649046927142258664673147544802068256785919011572584673156511871304397259697118198578266244976878835517675843192858956269329993536869104339683138681130276870045231394838328066359227905586112327961503552376024747611484444442261638483211930144011094583683503453934679504964604440067170803886335460776651135120318774872990228409706897062373050534951879022024575435320764756096566404456888083642754827123875223301025375837919233763180275674637863608551327375472529382094459571537543704400558856511848710899278408819425154079313194606833530572625929123277248989061116024657817023385627610204298969270605861028064233837252716915308694623316025972547846553875021331997070452857255817260496120176110143020011142761098131824248197636907182251465045955989440447476448449739676885458852571909961594972886800810393002846514172277805266157305425599374626769070118134205560990623618462870299186644167103477670648288871850486226849723574192476964661526674181585722040600484960744266891378102514086861785845660888991328854265940409577952421273826771193049678735142787040163097365638140252254263539178947875970783011828371500564985736217681184105976072931754912257689676957644307427862008527863926395127691106217842746838391321809024999519115380226112983621188820847659610354749213195023196355723478518325370391443033085121585911219633530552244588378783353661479818701967998571432042878990643494835701458572051296621626988288964850958834727279289347228384509048087733191728673569647465201715093083113626188313123042033995377725585650051834403286311481801812365277174861434070690086774845666395173552705319371558289871232381440346890770940031591072659396866782344687733593330686066840925001214033541472425415630176530502876927698247895940351074807659472655123434177483825082676040535412071435723775182206891766544457045917433678495904329359873761632542443400655996308856442082384914217279005510227594551038890257040821746042475620754450974675968005425995443237820246682696847891085650417607295974594877206355349465933649334647229322543128529407044703310086489786005578082883558868714975886720472058721216848694528873879895339184696370912980962576709840232007642580087532627737660552007954671802545906437912571555325924479408919712834322127245206844297109286667186104035779680096091135518234828929858332885380625209253254044189543626814500830624136423132955217497591926847394969815301521511729949081573498111515383750390725327701778543693678428644878078301260048701511648076513276738935982572325385384323779582723145784616910295039595843762007003226840497240596711542914427424541025534121922483908459438342741821472747687155275910999444594761997245674060007248684496114660938847051959524307181964491969164562526063925804839659182235879568255101626986704902353113339640178381374669403626640459310134215873267876909067559391636580891658973697910599294310383188454532659760511697612410243755099479799989772960842321439978264852069883271418290807463545737306491057574167490475792470594798333992193061183805199932420811136331999668572435190744945267895677519940836041722096685974722018939536034637423896892689386146512123426885504637878098435449593876494973740180842515299264549830039996265650800387434723005862654154941182260775758304611938150927078407078643084877079682772156317487326814984329353769757494928141793967583905440778132619002796818895643392553366856814628459782463803568320320064269824938343872253809800771693995379849267025364624131598009002611766487325396602363317398779348891324308200070225495078230980501747702895400143186998685277030682724521851815233227020432611270244022917632581706968380917207099916483321276230600889020621934637760987799264119193125632771201930792485852831646191570004104058859454717761748727358213724963780417716894896953462107036613577242739708338645099784360412001228172271300600791285679862910399109055119080075492943996953997629133325604014065814703474354112949845193642518298095193470943061321124124052099901681015560865172851303371202436584316883234194136122272816690901297740252894432010521925546671712945347501534991387629932839830252990682024431889880332394688905321191873448092670893606886984732440258882823379461566343973958043658070103989383544772151050079490157534317144381181602849772511163669701237815049918875938471595623757574311964921700880173393239872526212553503463244628779764083719095161996851232904364745810392781437933639920296991072077953283192299250906052956933836004298999338166786870241681593711179866376889133976594108943553351789316308386059790341250742398237750993166271777374936873954367039079524737362742229833215339365718103558746923860504581616550363915604756523853178112425221089180313888464326844291883489672140489836697915143507622239463904970354568692226142069997676680380126556064941477864631545397569485762139996548220074397956370225018123089779624738287449102163729863306003462213587129466962300248083209045684206557875483477381871932574781148215235350717583936425053808661592364135087626613288567035347820864456707104101323815450058216327854128308660266605854357280628854064808548171347720561025431267376494837666216797336951005792717958476595941459996496154765964479282660185921958013281747121972457844870385805459458194003857771529191709295393172756403942263369970440091278270079063684171305641492125649808955617924077324656976078979533658502232114392262362260707110628136962134128570959987711238457557599003484875039951794297400428414350353547756865147527198605399479673089531924938779886042112189213555072498835534088943552570387546460789194134543681197410302845202739318550283359450627124954964665619863269001734629661490013771851670802986138497194945514054138133372626423877474131278079789321978758286006891036617297072574897224352880996584234425386124483943730133797819606057860627715921499902488901359442587839511934227749467244717026304035054479862722967918447714810848272643156992511509522326186021568054466770789640359077557198671748267385184843739288458504679138157443651522262167994929255507072172339682291029569488377876391899437445457560294312894989954894436539261704831825494016875336787945255461165833622874188578027140521066763984873637999820814655952171079242392232273658393623315265113612946067366994054074536550575792103137444905218304568263955529412324165311097543863566776894097891989232663113604466384370705576935403497335146977302069560242088422517812159104074965355772594058235899223200729476736080755411699234249613190999605345562181272279089618157834055729080542177048654662452392912480972216694143492319004379601651254146623768682729680429108241689068113045462366137305077639400907695544668818868855835537282981951374778425373207995628463644040030048718280651766903464802019990677487657784058190420212760541071392061875811797644169539997108711947068376768357524677303772450271266066793778103397257146786181130801741283756779953225780738249862974000260670470361878869861554490326703749551160508256377519904741757518513176292579885901277699967728512335165654426520815430211738791898074719796974017593361711058626771185144135950646405390701136406327338223034128542082475366590760551541615551793786495454323158138241862838263644106918075618175547965305407352645061532297301796707328752878609016683065674490099692373710243418111659407600826402435929773436189829984918052187171862652752866864439366874947419617925798555886767327034395367141480563117516076282154025856949189907070733212726077747932336685490334025363545191350240825194404125880551078410857627958898442951889405394311950955296149381389234197142117977718398802104419587712883113016173949299528523812946530416161136424306312442122446524810285772491437602742855540055280261883575562633154575560386884752880881734227817939444830097963155437846480716313669881104460964403257461591639848561473943603747602232405757174912920799305816487599649159416014251932751713266393804284757754164437572785741393075260811911234060799952222469756574040023854894598602856960010981918100616991855712896585812089473261606748278119508051605185123718296120659249729759238370257754190197758610503001978530053360561965102171828384139404460741518696451934952392693109475057001154009702686958227084987852009416266072863096868369857669380671298738771364640321041992950837708167418145684931788936616585393762483458233046963808707535371666445573101007011536979846209357527604176841358298884546901775284527771347649095208217002325524387976215530429602122467933377342142021808220180989343842354067687128281575385492394222365761875240193961051801199935561044165087272048020615328145217881549285877661833854951674454950539513958156814870858980329909827145188140790339480557465121761410268553381310336171418795965923073142214979821202255024740227769379346635058966631315181652928639031106499492667785366894641341043209008731970646678293347111001298199764138497287924960531781520684838563595454988529598772815348780512182329893828215098951853996733832366299802944391665696108684189493800424556731146979166523084572804447491416031521466238975099156125575554245739521765298557501496539024264204483619195637709252116558671693008162754915855346269723847775138653880451207551916021528019602358285789443525214942820913674141558435132625381752986745635782739392736831190868447657287298664217614056241032475401332574719443478838143664305064005291450580494277236920990273410684822962679657253615738432940656352386561558469788725753649780273579283118455786646452460868254268413073386801465333070402371422989121153695138231489727163053846959717982791853827919090582572141687285010503630450768585898667149769878546588344622590796358058069620111962626086238537829841860643601207217102986705654057377092723849309016389880874086167590929811009930513536440653921250484488828411153391019484787888931578519442260483358296684399174400712638706281231012395463980767269809543889471230727136678275759622373574629095270435385944627758477417774823318853843990701475101981737075959846262850860682051807568256650340199266604237203112074142169603750098051892621907973277409319753529895891717886297823343942416459428670704587706799552237384696210862073418231977111507004602218546219380248735936211965820245396441412948055821565962264651873237889501236218157504065998805145963929835292591777315178390563060417679272071389819964462898993886523655744284361105676953518403668275351738705264365118804685443974085862477444130033014333468476477808452606561304075716305314280567424738407698721792564872175009264612365694939373167055568004932110182813882350042273241364637640112894025046990800019988712998328153564832647515254599685445193954865875034660486010581145005804679490704034372320095746605045593951958474147794104437004339606940002941807257528930877100038206328794261034867355246191769221472265269848923717980827809133225371686745192897243861806436981477397466178809208287103732222621558559198288726258835510658440004914497592687378226428191059175518107279041558165794321186016599183170591863818016752694603129943698988590385839607189950068073185603219917077361984726247776549428108018689634432278247475233864874926155952026648721910994847487407569192665185624555862048872094526527002617401060227675195506504490000993545304773164567663329849239955456505590888873679040563798089115850572761818325414209888304604928609146323730354476652971373358179130672543181860719408871972062563161022743731111002858798766775218485305583834116692503663069980173536415232418575415492952657037523615869655043546226510644594143960608672949598018972833236905591191871247103479721907335784593606030181695526220633109049280056615229521419788016880853700468423452241616303339336181378920308554682976228036667449351891234952667609070282087049194885916341137277941713634356927619265305432677834489845605329980695487564770238399514212798461346253526628587084913920980521825047850137205871898997594424522582472912926933141695929810225882837919056445747405966755667189805123897372704622100216949261167871140225784605908676002444136808621734265733385827243897937741208503540965520019613890643167554563158522327283917462660913482046894700201547061828569798940533658120459157377563933328632073930208322264696610643234159581094956348462753326255026983667358574700142751041272546064004918370770468799577260933429733886035969561017448704446072156411352521441599601381343206433939349599713477652406675884716172281987236400074726754144185829224754786198601933248585591955599325423419599148504534589506606799148951815397688966277190980141791561174996987410564321051270946234463770422364322234464023891124611053461190532452415693710551613714560513566573308977886498376730217916115676016975106043204416089912909827505094388681305150147822429559798650608024295753228812048508208071810474941334642453139108105607696308237137209540217141174941196243342881053776612449494426680040460034092837122256381813123481771516250152000992788051594358872353110002675068606855676717788376844053873837449597862484012191378588816596023140321236124236208783557333199812132957398276377862020207584989388941746105103252234835633272167230891602637135769502885266904369075910802668704774473407680017392504101350941786245439979420641217577002519972046215836758353244976868479498068918885688268698265153264020532954645997074211146424097774673642858254140597748828871790175813635618431356669740067408794092417468304186696790234268722647340158246596005153644629762133454840399100321082625481026433970566934177299338929849515848699460254151383405984725167506056022661840697274104606332283668576286280489272636739346604026463591271593695504972518704946014967509625940636609523376794587370369573913102745716375864878821197915452021276328510778225655619536080530535274285328605616287095712249902729724748616284281312621146372100558306246985313824421654604183692479473604332048354257262920221774198718150629389776277714519275846122162966191870184972372520914591713486191313827730549806772496206712703320268431239723524869504524710931409577444106281492298699186743319497032861229233914108029867581259320411756343710636972769450086804979528138906411751939744478232346022639227074810151466764378355279424956384634765228696138067802391415737623229363432335711802052285977066877667591597235365750701684384808226677106044021992234343769754699146188739429969020918631866880221336111389911936129817581069877349657794824056607337940763697488009609079619018508023732218972101757076643311869159570792711507802487205425132011026328000413738425922463238431167960413624067422483971987841664869141593284908078365149401415988279037794124951221520907606457184734801545925390346969717718488166342050831866538088063346573198095035595447460193690886295120931308911554313448161046019430114060379124041831250827971621095407252719303785887812136834483751559633213410645614109821279089781057875889968857288611298801672654899477548594727829276623469888249371258772681618638219733713798535849172841805908453080924721284665587738527333742927219867388033131525748747885547193796833347180164710711469975311483508512756982685854555212843561900575160287389669954662698185981306067659743775056484830014122552111739971217785179021464742301273387492703607114532808581074111041028800010602103848075142645527470259229958294396946131113299426855421056397192649076791623758105793672100296949104400239971646872180215002462034374169023119581158161270490993477099644677926967346360431309955389602496898492419721170991294537549888285102526080368805063063358676704976136957875699411784870330466015828236117120923763033060828110384233458914356507310875614898293159970636332545207146879131822806119363693769990853018789674113820614586963495594507515804254766303832088520464558333475865981890191364503457777761650750519755794784500327662895162492020914212873982761985777167113303750458477024638670625322251107628582741270281685382899186003439609272746420456681682076640018706370524354070411267510791351883900890907194484530627484562202108027490744581548273933520865653250384325763862560736495774751594106947260251389358452424758567688980429759532563762381438938721004096835253644546644366992825247747945902634057552384779359151146568393481276658854671592670725584718287031564460958278718650647035087718170586154927197233501928004946583341634178726408932684617535394278036088422329099096132567857252246367268193098392985154735859262849420762061219219245200294215623560894974468086699497276810566722702751102750563583944875107476815557856473272963701212441455083369023532855443114170444555122828687626476770975373991756161761296588455659636681276399101395272678892354624691104862694406417560724585059175541045058030388942692609331449839315883735170227640551699668568292074887607825069084060993645299088942949466326416941721492170402762970841244033340366132246397305454914370720772869024036091951315401888212211657343370211082709754937131871519065733496862864913500922797665313055729206260975112606591588308998790509406411228939844702323355885446578828549654590946587393305011524491306432347883378730618504430732118422616579040187071510963157163693336468788662451052620571442495062454538262345318988783261963179522429342122052586910136375386930426798919072730130891001295799829745388718010673916497247595517045434038114364698060559781031321286267934507850152117632450756476459444242213405794580932740758504626067551039480696717293910944686231084254605158875670131681747545904197996152164729571153199845399233342191873943936591648055831781927553219289234976766715425250574941433917114983110784411511503925388652347695567990625606714048678517939273124392020531379404048541747838934509955543049790266405266186943601830056346225502779404132787199443889236968652410472279453582752687011645711454428009158197036120571481087289976639759608460713460637447306123985347719036030210887031568004149540075882617393812633503882514772363924229457229323037377232340482022470323754075022251234428994510432997933242525512561015344854084491936512238831031009419915970816835219180054163837744429908740382595109547175689986975872907587764731970645342360751356314447324400372798452716300005143988435091210158339987128088347585572156978996398367197012907441794660159100201026591188744600010679612045337670330849706814898454812308017139836212826240267627100828807601173811221196851843078209559185530803838230515845471819773400993176983746747215024276127696590569908120630577153435027567392328201785445738737888833740235426734052374573204975172630481194357753793017931375364257307650419811705811111169208722951258532518112106574182892283737049358876360359292489897538333541609354433428469248285627856365321242095612921473298054900913047755680992611619896817808515246077723130426561060984913093126944238712190527586021275375104383618677823070043577684248940198126969418847021126792457941406353511836598018398877789378287955335295485102255399950252159949875800490651055520187130278725137541967940907183083675167077678762872604646771716152692471095958745748148147949739350108092667985992621358861734364594709709505505016883772543750985784866396382699301832774920679509545710937067702414101935430676389996258832498621294234916703859832003716285843729325348818702560853850901496977032557518918903535573379892027044094245125468356263566131424058286691191882217596217158659778271267717505197837696433528042944627557884861392599888213148467102902661397585901330516877563693577963529019121665365393821060076570825207178876790359246795467335767314292647115046486240961204402644940028766131049974058722239885185145336108918802826644231571082800578967484109860939696887378170490124045367426270845083818661067684372430432511974264281223571909412296503989374709101514028841819986581525965068934246220260411782929665079876828072113807756563260278671515805290871224229038093513304757099312626106279204579152198750905884824538993671400109740244636781886206582634335053018978390806497101704354645666247132858237618999058725445121292067717624060487039554125963257696745972900875611308381504249392689065064221812370662996632212234740891816743164576479388482844613265328885827813648771628717698816791090007247332619946101580003061546699411859589157818803614129161487881103219183514643557170030939715600869405846776005863077779851205185759287025955680674643997826618867238027887564228099175688049566224916947211161267794597367471286940437673113301885248047464768075312496847446334581671386503448253228248677518593511529459654064714118838510856448097255638239881095783645049076017161266841422563946013872908886680746998981659051813644686113352529989537497979368667895084089636075183787568027535056602827112442317071096159237572898760032831641478585633167799095864159358277264152696064617900906349008762968497882855473107847404269131655009316241822718359731650107141709643139539468386152653695224624909776615097744986047674533712366649239997008257648244949779096364864723811876208933854077619004574358868574954550965225178819500528065644250834629721167652676967852949993202313301329406038557463461478669159328343298195250832327297225286558037524892142799172959176258972243722342575253671900874361273164970066010186050366523052828436809198076657146196480857186412129449572371860031948405446027994530588703091787614743190387975280459914193659579919258990408480949790302000624827859217726602948191400340933358294463055116196300457843448230510682937570997518269337117310611305101447210066234191959450028582557981196686104710762549279923782853443204513866907571983767659106981463599643160999405730029219056097487461792957039943131590820331976976867555040971161589319342461210213438734386070585618923580618393272436634840876941300520936767395179369702447635052138025578006943321325884606935137682954686981038459246249853295107116051131001301718266066454535128162561780327488442607464651292551803191969837950219260218086438960736076445134085066200802061746119434185558678215801072593332932323244522081460750816359341887528758977909583169103002764726104069767315073245640506721203828004168865539521528565791868518145012607071539003452077039268696081878620077869393540029757861719668676629551768754156211825864448650514315736045723476683035518436667970319100750645969982186172249231099999864594777246470388639159488387395472642081615382769821740170611140220717831318354728084362033113367240116773092294101912865045527181045258655698813324871750196648537358109537699060161998319142388774170322164813795182399490303614558378371040538309028711540153419365343089665714488242643530651883823793179056482706594804284650998886574837728746769709352231185028585750412581081083183275655531427414839726192035541022885761455531254601869306366895697395308788836728464795718245120822496427638474859845001387325342102208006717420545609152228391465256326709542457073415053420147516778781766089768580368673344481942643726460640070854462157884404330826765772140488900470234482930487148134655703910255766656130805130962928764225220583303880370729432401871896165085007277049681536400510698021211282284356266166697535992751274102536339440091532487319915597837653260632735622822650209139503545667496284406241987819289367819616886763579138585664362992158122021373795583656525229397223781893812240986022968317763618944391537449611824034977989048247529399044368841063004137527928075843363986644756119086822312116223159731427760796797396586206075381944705221053031194470902905501946372556002094748496097239784252799715059036544460586103514590283084972204079747160507568952347510181030915508703725345732411585027062549851727026382334694048390974127859896151498711359141085876178973608355294228644822369150094885252760522748747776171734699653243491450061978116650789748708374298394733788878923709907435707536258026934054633536515645089082480364389410529178715776521233026131669081144951197597714696597316356710641102216115177784522443850816556219144043968366124950057585561852371174569230200025235936398527657479514095337480385339571470302755597471982347398656155232642172896908186678850340566383494076605763675249019792144472690901545819051691623749187913841668418467916472412926621414828200495216642785984149132069907713251730013743720198469428606675771762914032871746913770674709560525879205122484015144526888432483211763543302313328233101331301643306539079657144849076668571347050378097805168384740320009450305682962315067069711279422328291078586784686802999670191240439098873101531022749688863825626973455743794143674512258899657125672593177430532503538233143599696207442880359157513274986306507033672346647944046438887808981767699349210938553406423473177364338290280378552572824934821446140711541966547048817356962451549481253934266994150247594610286712491258136628770460985345848969277958857006789331657900563824670798371872499889155999889970259329554622318817521676324147186990645584527744602593670577628770667066798799373746460478884053119052069484100705305335656493438763118367441359061135965973888113646332966986221513234301637776023008755229564945291170293508211978440759363551453918484077320617830464831089280962380319713313334424056691042868795758726530566336988063484263541238630926385388242929737465458600115713188478879593760262543098485611654719646732212032993675113727196391571245885528142441655439453531711323581612962792904224866932540793758877162066061718747898528412302989765839825759274852858847348483156666584226774193207149961552239462531348564447696537629211142334258893633053976445805256703446081290705978101392818663062692458894482552867056442956660244651913940015286711475392822409575128753968794555694467852102317892287993122631488304508180625853521365752533853837873228854458198003828625421429812019332583561640119954313169594249015198457057903725223429623943206769478304283630719375582817942864176670010324737337516653955498614708555082554542781458736660564311957095370942594533298462236019533496808460204165645158895407953144802775971547777860284838584430071234875958190093694092636579843424793736529906118369437375791508850578148136536569342816544560130771099165452460685889090534405551940194595255713236119309994585106763511053352675842901288645212872656687905764333658112584470723587742157064219649011868316963701960521388903171313379481295305986188646784548383059202209265233372463393412085351580190414383898705994746604180040541618244626632583433852908810588341922779709775744677901805449249250134365426150976835257894072102566123673670066835028185615237769889472777487649945862286865646288733523965791022993003790444321656603704573382081912127095725428793313045979489239972278388696917910022175846952263049209207498252765884507318038468377859941883625520445274464335402256255019330615381032513862380066742211997712439576153364522754850853951117057884417714263672001908603384936199345492939338360672308790422429369153813368760049264523524433862158930430558970368044366172537296126445740180322245985319543799791662398265014173212650398636174961603442086396643768002345493379284002186906183906005928359705051474201728497351607753067531691560009877826597704414398899424413114860742312466160242354177748253805651290251579005308953411310130981144437883051475276993481648853876824740212744109416133438460765057866373563062790959804405697343639185427968787426792499634579356217400041293497959064385538510831380491997033323792828570487131369336839012516657153542984737955872603295955468544230314580621001913144283186755511543154511580416087070414654535033209665941625764653740415517736948719383466186133027541085119840023315279831857421485375903297715612193976498948849766609127656717245159749105248272634866677680547870516805386669058901640833941234985126957617988070131746319033314290609374608828913194493768390810835057521485814286834257955600756391164175080305655711541196727197143700758365838810768522799216890058686582221998594592977277178883449806929176413341658784976994611328849072381820257525057984608804464512773164553662266744825974729612486997908877257446100621615212217652472463275462406576626193872603902522866228645569090665155543322797961802777103028438562960334181175119545009539444930033701247242547260894617186480113493384841714598264656565378414313932823509820256330169304797514924868312078641174800404952114900133004683975006016230990476317743788366397616323082385935242831661471642226463031366204850116490022712066684710369350724015545515416751866207032896993147046178301834368279125950131484646326334336991719569487379076644647610494211718819674311733287324378739867881559140778073248056621955293416728202565613134399133096664184385379747612359641337326484421616696599168571087320755183615905239689041236836411260454402604136119685140446494706466420384812874288777542838032407075418676292036054589121435210658369306420197341382040005203105398342971791085849767025181190778688996735646326018139395467525769358582507906625474879942623196185218618886331727209050348487628263127481263725765168129978045609825902912193199504487181259265710317610727800373021129698140783612373925578107078554606040825255469178249637330527192943551101331000065059292101116084788068318655190038970661695562656700135573661401646754468632466462717002484633384164063324640975161767780955201718008330492613431085469153099561570707714694545936930141120004826262818830061900673277023637841005091832966841568742999340271148255672468170573844490289099055313691902191807574895785862088865193122227192784824858698155056341247708099866929269820911336651361131562509871746008125942695474752055794962547869431964396643664392689788143562402583479698413673028975177538287884354051258485624860519456600429039758888790225216504423163935741475920817458822185201268323103881699092439450860088363352205352704661399330240054208125606906524534822627301115801412347378203902544125074651952890029006947067756601540430619667859346943873639971341025953119567890978154321801161512259248684993577032860523522309034144636280291978630212349389596316142398976305171703478205152374973073810264131818680733809029422128628334515218713201767718260705501499529049984273415397948394315265091044510094834830776932380921119771878310173782496057946079841917439326897399309397449174881651214404965955989766204321611850883120508975742635633132154276429237625831978131148860080445445395667534357117824357493072868605042594080551505784673479186200696307124294116190878689577420806634853909135385837696814353861380203477650442737151012106959709109094659053182508938950742637870186948206762547220866723711657623750613743371844293366072681588877115586121671650001860673808108249418322660868175339815757597936538754312582472952604441369054535006220552106563721297346232285469004796287204834080036385906867669589036634104167372194459789634752851721859641863059878154015167746755624693814472181736111094744938481241115392964325702864813547582191184333896077083365264195434556604132840391117344116325517687699791992203420034268677955364665429223338877057986221408820915905135573014232797554941655635498025623323366664045502227770447368942273855738155873261689530194391842177520916809544007886207378849764132890859072911678144407004934288966325368655213987849527480973842096273287306085352733660402721705137269657563528243943113917624018364807218678199552175941588286406710183307799836312964517955857525530718051480100128576540540672516780709941634779188364271447509183747269578130512193135713102071579994985396850496593982125636641836688188169577706287219700421440907282297001616269262911660395712031483242386800929434318107179695031867939526173226058207582733132680275484660266437766111948833525834800106708412750201022605552015518020102383410394765346874208629052075685648375326351612659043773221461545033527440940456183670877221191001893242764986359708496724259053702484023499165632067410345506382057933484486174673637565623466348295033142847888315904842122845345873201366383211472056528862692951674135131445305748806678241361289647927707201652375356618763896863568238410725843717885311703593777122868285722264107280546265130661679122280836541772184211647763541298356420448508741619774969156129491435705253974003131293057331386733058011013480794934513866398102779534464937113395487493481866956891382988746978761085301674557288812508721658561057775738050957678125902119212511741615778809092063937564806634194629686685594619267757410361618971284870692691872986531860280768303985241202455326038515626260654546858086602778174498288981126997506324763921500613717497947055253760843759955605780868349202145808704244062217330835968483628172712997578251070982703338501292623145171744171797632012759222530535576033438898175949506863999382106787838336935255210507534732403664243921018662150804728222855920760108563668611888101904439173099517895607859130819570025469556217807616138941570179379741667724377581465522629176676440976738013077921378629766984930838104746285751322089508425490107722607182912692677896111734399617555444788938854934935064847049015955791597160063601711613781326529135235325109410419132799930323570671413937669979031037285791135131001566436102679353752428714865216403826445370971107280342699197191827360901448316669799038386215504659593356872983329965752207697035543843687511464934406893604077231593699790948062883374800350813810520981201322152468896721221473265762650108320043943050790020929872691947633196219430026765351751265202726481895689685412921743379098978980455933166363662164425216120720717927833822228771811035110499198662848948316448927889259647893959113150316562287909278917902242573243020344642114191167341898316277103857545923718818549022740628945344747968856819569837643474056022871188496625216267118167331774097416062609093912849463299324261618830012036896636398368103656921446211855673401862498230089389013834280662155047765305991746519204323343662560232343598970892293873505911784819945532293365622816208247659193216958621087081725717535612178959693797082995391432344972896737637865249406518089676114147217570067805794458101389429933927846253319791117316776170841692887793444759389680099075365580646236878223705012259427261466498871333340014730831875028378304791273416226357465424545051672737193789938282022981178248278245213176515877955783595202575292763315934604016614533709126051078666205040095993809850802985624591984090396170000792591018413214004627139424629581395322583611309330671898495823485734767896996799736168692100588166126461423914524323564494658729328990124874179262048793921620633396549507205762274654134145902641199358923123772059796699911135458546971316636142778225051474878673067032622271945695309097734695443055169069543536548760785042392920332773090973992005260659634091697336798091962506390306063900051874247527995000279749009458274699171868750912393199094218040317170123301842072758534600616145896728925781047447176989407885719722254042550047996906346582707516968753210015385401913431708847262356124089728262063686171617868921457970208809544825390521355295913436223417161609374029313379302932987766737124767924965433439302425043848573773998677423480979931331939733317414101867548030416486639329797291385924587713648070000556783592490591802183603895818150227190549512960352102093752354213633309247670878492200507273639850170187675397266779851278611213112284487785753058366800662199489329519422375730121026213815029708154762943553541498778965937604263249036608550757454660570123781652362779765645856976914999082993564115682671845421328876645735978600408492778610897893190417907694285274887487364618888145106536743956798072665393059795235024326943825685944376050406746191149098403092862141645659193368669065460135425359379622547377808912646192731849267902913763066264372155767958338765252346637305239513517120744644789628686408777803407534561783904831315455913635872803774346435843244746467571030617047775437998778730644284362291812196338310389658723672524750426442128182610368703302910189914396450514002506192210989850548920553690715775474187735409391348720613650921254506410119183812907372279853371251342767061478447464893176773792935577349200351188423973785642774852930541908379379150053691111421938042606016828020008579112277306785248546421488683090655734995016482388534193719858411091559219186630449190442104906108823329978312023778059508502533853004749001307364116086527942100564397818474575092697378134298615051293581199053848830472781201670011318286789814994048215398581070887385847097071200950893963688308345029186948567400521508689287866616428143456682062381934197632110720678821381720020411041259692728872542286888021173191612853305670838509031145980472969721259219601664678901331606472393208790021909921329895993789561027861441216075629843418922481116617011828112961670687530295243914207463092204372120019745869111480064120698108207805614001791430790564715707413471960241423878388671971941953137289683840344457204489546988822644486230451270581344571841401330129495714124469030208030308747177116085854808958391025725517208823143079016533613452782763952074438753849799662692709312220144345139440533026073642002194495931646370166454087683658399623587833128109250511090975968143903829903582649481089513774853598063536194749257181770616695434076523028400889797254330659883084293499906727572147374910228585646869698051190218132808944098854932078944774903738644280412323987561997569902207701607133819508235342154068371984046811208131154423453605124099924396562322138809907363144049310476736583492620746048515881643515594224219377207091147610145029869995797854488637173154647212857879741432635956946640392999908443547959546978781086065131864383073190270076536264771126434485427735512687809297180437860254770870561538142359904609757669222184177966474455751315189112275363468983517143874624715888850337462885397994536818148508734474303410205696211327525999125112534888863118205511459454323460710824089739401701723768153422267391781224419960661604249625371954870803194907136039054951470929238035394781366786657670923509545959976031735455153512586293796453083097845123026971466317147847276100903292571087822667310217846640905696923529283679504377672810198106804540281516849336458704306696759497313493984137628252234434561893838875197922083417778551550405010872382002073512226868915631586051102909208754155334680989204624311878377111383639587506873427800056276897751227322094072474599034746286203636646040615196992773087072496643921438644076350635439170716500353767227905579336758218490685722073139455625051034054908387470230821439209429575976606866928178484668200276289470878551113699467831791222323994318830537565515937299226228750028019076552707455300442471805557643999566792168359733729391224235901041135700690000919456427710064670080801909677370090327407849777498712754325432157432113064860871883705975838677861488728696164277951249598867077224422467892960469306109750244741920012413767525926760298539367609949788915065815652046607875172302643388949067363278923795173654795618780718331453504921520339121343062722595020358408897363498576346707469313779957589914145044402694971226604440353487540499382165884495074773459773535474243665909825933259003511783487456752168023551557909835718343398292076949314829324118032183989079466095132466631131516161791692138462965635503072756003147798954879814702034697635359516467548127672794971850890257058176161280786339369873121400771319470249487524494693457568771075697918041666476535370604549310827758944286790262964897805318714667314804517068931161515699770296452312313329345093031382901481998551789710988122825683933767576143278768810653487667426941165528980085628932855273529347049120917687225980290200302551009482935449987416335838934671037174173503959298420457738052330861308335699013614479354025236559234273926248245479159934124938600715997760226515964097470582432880737859236830557425583616904398128863519371615704257194463867275873758843421454749274269197870645034512467552456112003642289972747313686655355590625116897947025388549664314572286219153695641446111272346673068608095001125314831597369006189759513604865503665198328551342049494429707177474658988180583779954344275148921952332110343365531165698974525107793295740444903195556459269633486321503599837498458448174205656847963332939338538814195856108722325624576396889858511410047393609347299789110318492062674532599858217906574324629585621427958377482255594908753005283808774076755292783431239164276215635144533978983744724446515823820124094929539747844699100124157117910348584134449932474718956434516521048614590113917398074053316480218640244146047048793006393724904867459751414380379816910633519840322289094234430984615418723464493568884095825649647300361634233492888293108619847520573197298018677635353341057452452745943820441628559639009276128633519473803301137715976821772092249029055705582179335992702319468487039722278561654766772953335008709596375729286829587268015410767898414309960967456060486633975073300358852212528963410278901095652221774696729931937472545307713606919281513194636068271047883316061977903140460785942654828486302255111646843188706260688897026733743473800650137038029008491628815332201551651694602179248382232213228034728021718397146568081119736788516243945571176891933173998088678284105482837959227681942061704757714330819624348808703037677809978907458184584186017723744643830109420484928242727486743799629704204170190614043169535365629094124930553719885331098494971622987859935846769424411952324786234107571268474322376729211281417749306328843074513880820232090600505326490500087062078680183740662102523815271537596282736801095360114927295844194213111298968354404753934075626308361891927241727227250444749350849603902810377884466615597387311648973582944955121611717990811842247173146300691218846476983868980998880680046791586397326687474046206276551880489461130875241736688756278941031840832714889320377018164306144464512563671036100856484653507799213461888020638448164812922134474669546212022662574438310856163856240021014916390265584312641681331251908425281930348281448696289771097552191229688519384144963856714510858452061802950369537949438299972014741103338557947278772962799057456034901779819802070812148063666111336681139145983542778755006161067587174103397127431712467304537030059784436239124040108024298291248565724626826077681167195183463066161248789789658112415163758800113596054213967478483318865208518621390495928719128705708478018948231812983245568222023561923989868441996670030096708319621571103343945021001744546928043710965055210315140384997471520980472969421057712534663075628219143763876268353742295030654238702532448350458852840707946887370487639221290928679041732870230339147481098474183513695275104384524441448548621697895182522809189144837574722635108475526480932595937524808008788224110288961253158181738161159199457137626030148081806493644775565694935905266203051417058309052450588157240235002475583635263699480364673076971914939324363054331466298914337495359147313758727159460527538180412786325180003790777944835051023119983186333949274407426708488401557141165178011155658464648154783393426231750018990619629954996336624231964295715433379085896785526302851791323438193445888914531737478484217538105667334913128298065879421961412120194778991295106125026243415408180994128166907115771036501221258097987106915784961180539970129925889479766735379457096971923067285400105532721857226190839315477228259614455768589295043647111268780990963802723887191682575961787562246725748650335367024124889051781880057878456073527550617433598224862148725790378625115383641067047841618665895914222406523591078256314277042442107529331396993278174692326568547716074278849022267413852945806178769732991697043172588640109914704346276921287754605367050169630783533747837297232198324075732005290259295997426690705596745228434536372141238611010646529151508369005908454565081599883919276726143646405091210623566629836063205014593566154604117208490728698448898672865014871052583100929018468038161008103644613990241248228764174150570815916114326311481317610277634251875690941419001326222202308641954311032409458250842742484999612417019830635982989475793681194456314684107826142420456453914803976672111903621702525725229671490879532708029190959700250109138284546028760015495727553328166351559511338057182476333263990672483364973400736393062032123941027272895538019438211890092006780718154320502473519072007434516710824674687350419944545005553704771956929203933026332836052489354947123963876181977460109665625660356562445880901334767229420182746602308518335565013825554209737143859977112356149864875673389294475263029134989449256266737794215431874605897633140826301709338230933340115771827698725160350510443479767739784641907171048056733132254374713704065087730311755831612248021061994599624487423433724199064321451947041928871529969406158434301311542244173754936039735588257800925992379406032536776105364101665650916811112814139297235576308972835008305421337533268485123995034276215274687142449770157173587657661617058761516666730941215011233492934845609878219883289489222578441773155932336474696701737141720437725163319127526179616908927001342581090586153464397982432962837068158576836554371952701312940036739120985965780858197095021409786516356614679785158798300029663981513051292242809597971487234425817592505132591027094506023116187181463338991726441469338956970302475006328137041625534925852281118867191449450228414113721357340627174620383986203729981844155594975672154178508085934733416628446658542230438366478902441018198155547628213537634208542272771069361336902034826711247087255895706144197638264476630681664213041910303470855488102674420437799448625269829821868729384136357776672442547975886497723118334926800238083934076228442439547290135968678989231194811000429406005480254560186752881238840763069695805540089511652661864822700501852562188155836626256227705058098952453711983031453295889069427444447629408794630862772737523025956292623631731398224223949136239845177461180223208982627654925799652418462384065936672791006313371007028285310047214399692682343989489337832908060054547428754295450979885103278642911367893508873721255941456176656284618452198079885945994250176599279544204724795343900319190467592803487484820568428764969167490807887546007179417493449878708813402428669243610016492950258246040618457912145461767920049384168963940971847226836912308595369171835610116323092832303122800106511631618807514550802186141767452830122342780517507908633064160829006810236620010191414290554101324824179881038102553323110027805622870315699387817675003682144262008619106667675955708555035840543662207236589295782968844200781022030455751045899459811050325426954996220396063598057148432556625601232052843066365778487789174529905989318998626875058737914143150898749344419316027085615227450042571293498362037904670853953957987929935150463535827580539970848278179909897162740183661694998110670295615986481360259115342635415753884967459311318097756273322735029800923095608440529430991754484904063233244822681372020054602839394616843608069135334456518727329229413671599175715427684480416612879034219268198980063235645743540459146071772900012827904315152706451545330262405893895933902588511788633659628607533877523260780058360390861451681566497560011628404855603223931824362352614542395791584680398972715001242493004942759314769832872211209164715078620279585163029804990800364513420117309725476640152718052429011617567111600260667057223522755143240800264728141229443288638665221177628835360075224462634489384477393344318061545685687506012241099628463628407366118742731929343970236364829769713144438475327953630761269370397102706656566415270994586113078318026112750704997562578170091138346730696808723795565796122984927652731250251150172026543941943068309505636270438267244336879636858688278072975505883148972854888641378261131200917389287354415481482058429498505764386153826094896700514960823701141157304501233462496529755886441120058992996347826996658089952785211490161193575246646908520928102779364451149275916438079331610482068716406541202947498677451310392334289766583735435276775099959335136204653520843170969037558910536823583698661586225411502746326121666696627711889821826583142513063302925386056908642159930883139865436659105569726740569771283280340057081246258267376415266332836332118924099232144642232241260669774835841645526711481608194692100706884821996643730905414164551715644988379946116214623709511864373407091926685040940119600636288764364062814426774186831056255090856539560535651408576007706461449330169852201293408117711916607802088730356449074401317797472103193719659815094483391708518974205231530632618053001536937759088718895431814880222747428697127737342516576336245874020994971106232019852171303718860159487127932560986576065482873028718571943767029143603496856629421146199670504997482333843711713285832249924797909718023228000851444102527954193546211609439473637127296538434737862540410685321808641498792895848292549329089190625401364309906313065648030467358272257780652223004682870928600448741357542186377694724413392732723941857189927029371806908629136392245720054907888158796505366257531095717277881173922883989605951092681224510390569351093780473427379448713558902139481805839944294191712330368402534088978333958722405853943363231011122784329544581225931936783881932463248735813532798958223094892911538447832006452607017543750849787803660005266017302460446058327570813046550321305705267154147084844621309406099139073275549407709376442715681133482636028473653326447940348890530670285017112791192165533640671162378050050882183833399683414992366807345951006291324376082407087880847784690022582227057953809879193580916374647083869342165324254871081039618746118429383133286309289209588972785608867444822214659618603776384705170494561276616487600254660538534512276961489608494932678263801191575001034332990490939529588481431215936399801640708472629452962120751473936140867104423680982444379894601427952685718313519548399580386010133424383146748607203723752802077473759779446916174951258665381766060712915952855926222310382811645741989566245045187012975145573376613986360802256874329606970309568279749494248788906182999066771819458335213035047038639475062861305152546107315217345333103690669959487430743341755053588111413553282605089416929213754428435495505140644241518999922660041450781335003007980936626394124797971162636833023866325004943002483711721626395740311081213002862447816812469916793191250204604738867788241783498610358492783887515151621473259222414805929855411392022870072269684981287297270898436009739733374790927052737490842232013999150222160185227714491878049540624627695987867561770311340174371224084883348839489338170704566627781530454723275085654970520866243386580860634740705210509515684191129379061092635724367584299431144384553879027288473718948008985211001766995379325675530956188738159374557309361202351854783120319861224103640016711367664215729968311390157748225127338980743623585644662653530558998295742432605281865252862444632578633830450680932159258316846864778104414930788020112282547249002490548620427453138293842328816805746092809029467224486366376127947297488556185411992851049695808361713991697669778057360277385462593848938923042458644902720558960790894055222129811962025281673755598717201796127365969923185236136367467747851631097474611687033283958866650613554383844143498913281099349183308205664983845321640473863204935638854848043364445770882283601351692698550292266216123563316293774931337323540108248129796246363805225686855192217639832055909036881760996464306487290966793919452649208713698726637125992084459149820316333189213626824248947798929381561333698658165974759593582010983828724725523943858711191318826123407662738820196322512313735612201906784886033397813431178005920309792744679195455421031945808385574570581977024100187259460893759757469077128896924297264876537305886819930585802546764868712773184221961310185881822505796882476213786500898244480948758160916191342462525764311755328521932796851336729369093918598173082345169815626849919649121589004600676342709747853276113376578898635485541800958138151144599780512450218961551730377213197250623477085944121198318730970266425936633999559371258378178922818129641297218548494335518202953568968408054826289386484228511007847890059080032917059404934518284125497375058721881690563978444790731684461222481988643669282542530380913067309688295821255449988378783620928196021839517603052872080275409533218772619871881134338430675699035397638484420183908120330706993044757042146075707105382569475369715739451788540451842301908778998854181939332181419191363731338318917922462126392423913462567172853224785712257861947779022826306910511525373553622202636508874727490800166759100219438729917054091487025701769661827902213499162230095513490645304904869332380121237642104647594953070432842113836500743432089788919668882709785212769087320867571792077960499137504167490633485910463204119198581041723219874215691567999634894601196903102050960782163193236114507319074624416717689770907617590027341105823987129261948914622484978347564313469208521463203300655852727653020971239589210216000713901390720808905090923696227963012552420450603332425337827937488508037692729295694168956131622310296468208791749673913043702372781783530948716534335094752000331407886978379249251814896706337715891572879357916187720465508312230982420132696294894211282414838892020030964617517010759857591751131555528767030653095925536424521562973912680247265701152036314149941712712290167023142555658429724518855735115001892899503389210114157443521521958525819510085086287964805168291496188191693402128101678207271071041953808026578692797931935135264571640949067166708612457670216583685126505144991711979636535125313079167107354303260194981277366581169247020812564268367942686219533258728268545084552305548315752313255152367739830059899402530857438507754119267876625490022216909797353565954563559690395216690818660662745600560520837306845503405095043166521261942944525963116025106720084826553079206094405174530584017821557815254130601925276526938871463253439058518069162415274946678912115893740383822070177451319222760667109187401750979258448994272514084022539684354041528286640152443445165262677598030460022827968575894516266823134761798598781501087747418377430032282236337683783726272927530065001655839551312995715878077533893824909910678735381630318089889511979087943423075167569114863230923512283205373658334375654114238632597699778376159046139033359285253926217525538719824405496736728866629531065854071358912106735362165809069264549306471747184263068062079350409811307463164315741036721007823328798472531994622347249155533463164848283269715499979089520610740198734324946716038182662903598326769500393245165175679546813392315170621752181688460706568603865811662215783364528102450744871967208152703916964396268427245212302274003500466190169772911461376017312057748037346252567922954901668976344819883344701079236745463728893549737689641438655850972537811625815929244736076424013118630515737846188764961990992030022881899265857814069876553903379551304701941826417164206281136774161611246083247596470668815058651006426238532539325142813430452380865172937710735624236436668146742728143481558823883086386530415601082482088134549678953011198558021577844724363752183129308349849750879548761778370776997687422422112265548689689595267566700262575621001949469150158285424476387664900815367474827166911143279605213155706814662168113019887785437718556327997488532966632420032889718526844553218428931587729457490754406874704800390640282775471046259592977524543991121682876132637128809474214160984762765192241643180013196144774510841967310301184150356831389250246570217436303103271348493336056626382515548090661281073725971020712884276367803486306388858994238106219401604147477989874998002867027031882465093766412871780018407494761398311580185578430105346514049668693426330415962900706699785344067607176657480751029757791643619894609094095395874019220746944131951568721282764922194576520452375917286617943394303471857618379417623917269997816043652503237134022981379997973306175343447045988402551528184347820100585382522486288149221357461548410717159087713781486116329305169145548888849675318787341392276766552307489493466533188410357864497576698883682375660142165967485697400756433216642796037005603894254818048762020206215970095533849869819839146521395007397127143444988088687455581519602148991945975625526814780943261814307956058437220622400348316633336348292712518503331274477661136619562356738397248337993189404734292947597637991985612418093356245973365892468750241903102872352084061206354174307799352402926458379901124566732503345510716879800144332336815397118587259778781654521173647614426100924563159206132636829181441727930411036825678780425278446461617327857877490514133069119131585401949198395551584694040567033239271944714145038736316353704855838576856338910592029891393347931220486230156956747499522117643126540130431181661427286398355365307893025159768655254643635420121295771584754485821689357738400346113083472168025111235694180514292512811701647288840691412593152521462220920075155226899310315549167264943818926614141103965134368068258186678194700402114343789133639303943106458606695270207880076992245565175913779992553254177452472473976049251631687915923783257617117311763184499109817951116799978747034922796449354264319909157638906618546601694666748914415048835226626166930832913508232925830801725843772669358355359179389952286424363289926630510606123275200230294837627040267199092907405893713500087679016671810245074505262113937620245767915969820326421838798388849901596381233278143057326652549548376153870481068795571332486884402809139459985175927129526659050112170425716217244877967343538852791645557229873716289936698899531721603157177273452742041349613009797327523849396690757321143871876063626964970829120389170191150230585468723294544478757132505387424990418647295287706706246299426143114169052764032768033364077532822406250537557691735140949170456125734047312186432725394314853216272444471895582949172472981943695582844653420858667272044479381894400945521680580166385527098117964688826903856952678607342818028275339968145294025040221416863431108747496511064259944571678405907666363192592716776817965209304911878742591688202264370122845536566301573866006547184231796745823768444944256084362928668105311404118265480810792621334528311335055410724110252045147109209038783502388935231251624216150856044798996860297309330141718853115367554213524308887819079302431548800795728765284842488990147643526915439069236773531138875126245626297603929556835373793865389796643176458160883272074445417738133429331540070797546687294544934229274143223281709097106480261001034226481624597382019583399915693260523764410852341056567935935073062783011915298177878534292843188557792899855503942870889042044169543013724793700825801978104094098377554629519515821896669694128163142340961406064649525499422238306671604504169905474838407570654461089163510968710498891455249897656725089462706475462898656459827881720557977353503641457695940609606563878330368576033554542049442299075091715642406537387578413872182310027937692525086662481370943461621959541720721896713382009071709410341116528916680533376496677676501804945630911320631134204149251067715734476536836268175336424307911737400591673057392625324812010330300899929763789078327421061096051904048746190293734192559086939619851977509949295704396889758593923111572325305405362746279624217370395526650129379634139786819643503053145778668815381153007404626673630464937666704574320361672870786507489816993959768917615998434666050795662314755888671570292612098512430075147739164069477298629639020266071096232121342209769612120010177564781309470400294776935154307706109293465964911329229170496235311451651040022387590847408487922388568913212724108757107581660099829247071076341979557396399061309662315459328405152806262860752637000171978707736572251880681848636865673608440836330038272142255336118337636494848529573327752802157538137115703511961692518994644625005002287057413916471154886105398954978275076092034603668064216279448724872692982109311146117912098629552734301915029652674593930961165432666434753284374256738848073710787915405794973776135642112700558922674680239145333351472869076625261486361746563142918120136994409554720975817492279456871621816921710981633504038708627377898664292826739960879815050982787853491840218498303507184261509487917714888949236702329046540671556507641439315106093200837875524016638228351940520342186623856163262520780356914768888379810243423698612317504058618892516952134712961566242169604103723546187693147096266785782047348361480422878867225516590291473025034112808535602192423399527470282244161885020743913472690355279912803327276488887917666854199927139415710962503723421699911032197873372257979619104446906869891033052911973706833417946936297672942477588869806018925844179985404307308030579786893483354565105695428768868804697513831475243247364101996816516631036868075013853327241044831484219153267752292546151168444659100936470368865872311362432234281666589876462554410840991116741691891486783611228404180618040189852886924426568604301936272146617490499565647184261225790261223033609165710819709406425285849342053466022950420566980497793552428670700893532639747216472044719197171177784072535564974222073540963993160798852159675957637707593206047057387625277220282037046990540215399767482870361180466080811149619563046296965385564141149809422489171047391700759617141727713836331718182666834949418669385398567215245221277126176566291915554911474348209347180919608076860362454798000041015896326850177323922822925845307246315368724182790773607048610824965589045615713086434265271074387989074482082717480642580966456399678607358701602304330478547498788520690137316703440531536051456872735388902966498870010647147793068846885724503776053925189347893940895629359022521207801012834669694907117436924658428050795006309635303414590867891771251547858933899197198342271077515904580690812656063721183700732229869655277510182225467052605608197928067814230953162382811529228531472380576893786548529079433398693425727309641633282801388152529755745894473319499825807270553823466844039154127572969547449139033437182455922013158189164389178395251344905459295529816313487324429830853891332278486387058266449400553973246715696621130553636427495774054789208861704595624182171935086810931198842662244067694207198559336100179733114533749865790568796958112729943090779692851499579876388405344377080400920487115446928437063121488117600324947457912130722040780032118775846628688082943870330923144176671554699454765416794670140023346583545141732867780630114256342093147431216797273709909842554040693574953774169883475975694838176541566174494463734882433700261484624592579119609606144393530433069344349941932172579703436697119392792822819399439335534594843552229843435127172777392946272821722326373356553147758809081729489255274412251074682929432740204832519614960212081914462685345494637760954742736676597876181940526780721996618020170750344374219197730609831276335413001357089755387195456563275548035347841029791704830638598076273562250498584431471802706515663847753906486700247163693003192559213873296015902644859510128895964161833286378162200311808461707354822255108612591080974655076100891097325846834846908135205653322992900072802885005301221183279980622106871322248170539178114936752984381948613092610076142711570198175803280141969264323525801658865143907683985633753528244195848792386137383025839090178209974751343834714387347849640712384473021542440743598010343165518335690248356791271679913085044475411811607343654045513126013151190540006781897685827754809505318365450394528872044860177278341678565863242410888411504353069170694657697024192513785730670750933321175794014403690713384481780538754822989055066820054626682500249996427115467136235750775374670036687481460613299552029810476756936176039661299732183345879171958117856337541907443094936254579938322840903519352750872862586355518177963051668064109383189192713873074534954608229014171983208039108949977041064766696518909556067482985581618354770288262659920972235319784531439938395062640713396005500788021387869855243239984633148520675361205560098854145563015827842631575357414526245189501599104282661138702211122174212035161030407475560277814731160856674880038871185550710562243881272030469041910702899349755269534766178984363079298264899102157482789785244415169884320379994691407239939618434944666335709279559454740736384515697296112270423311250435727209341791095997947579201777503486919785366342300998212926769537747030207093055759770170084706444878395808193707596976064845961792377530155165807729466523180912082952492007224691028577646425166692033974720240983465172887589944131432735355039416911902785736989387418318681589803109792770466146789067329937713697521495492502719706796047706094241226062427142808937060166846284455518808692663687776630331535307208205579974517094609344882170462671311737506799438363316168413485672040697135373280493083788515213545062863295981049128310728559352254554401249966994484719294266559201732908637514475816566472124230893594774496679104139706893403563357582628935294926393439858975607986500553405279652504806117744349488279446859048843221663863576713302003608704026570633162106705413675189239641337471906488789829597491771313136697542346739286208187704964242255268867079621557563928326162082902532530742664020106727004662791562989379488340168658365211772001832615671077601628300314091092966071613709974258077048276058698881152028560517328913966421775339217422670081470476496161248553274167265277037343910740714773530504540266373095839369842911660796000410690978336192996838165815297367628042537825649008032702904783373324115894580620397883327811326680319911577439468623689144009755296765231966834738386251150354640953967502176383034130375655856598261212197695464316123908421161317433244040634575603059354280756684953763977769384236175356886344012471767479632591957581949968691876314876796545714658620818700473017656325616050886085025190762228497190426138499636363210526353346462995511270398588342541411777036902652147519052479946015754032409221085759949766644310779481132007965396692746731302414734032280523848025586457240263267611900547588791518499695596040295273276977635244732935827213947574204673132588528954869042939497694609396343374935155583611151065340697528427650757550925980801512666772570462499006061974817320242491114426125467212183857177810197174607243170543958407349678662580565913205425267791637959702353337227112467362383116920862238710069020957761225705958541528761425465311419086701137331667299022172299737929044951731502243774629694605227434913872728451505235931192316152094229405348676338463936557156737513704544898169333070626464009285607969344468906060275030794532218120103323299737325218765886950783078945587156003197196987453940470544338234580314680589813980830206015610087273464381323746712968891876439675529459804025872626423298971159913677988052701066410455198596093771539281471565948579448189534775528796245487582995974532145198974768488137105357893877245977899241444027027014007794194622612464185340159192610378162707828950704072874528377259713477310609079012323318925406999612669201796485082112826157549674092265656024526590226477883386916207933200962546618505675209565641574389585588968159037085447443322863776682230103531419319198278813144888147981079555106394686327921059141762771644540518373826668608937004013482533377639596519445307282655617715608173016406660838444930531274495745331521015382896881869230350735047468896274367691608237634736571428985343132343647031079106587065921291058742720980697176776489145970519295360248905416946989747601387942391446096242854929747415705446728246869003569537536123033647561823679778523313947068927695184410136931692927455338734668161840861444576529234016564869064132919617873325338345426131154938329054778666268517013965150871904463431811516825969574703759652774104631076456889157371749905409082906551541949032736629782764946121580128237219194132123329694399581470490351596458880599372376325810877261125749976910044265057312701585078651322000550388212455544167802619314549070663858337161808819677677159107649142101535165682715384145868732461025423118235569829395956386958422869028275172967107341668567853282805490003869803637321853846609286116808336885279327369616369181825595091294675446372240705169533023262262339370763586356175908922817379313833343903573826588532377308771073108435412879767294919332105825734197507129337588134962019176871133236275989582298849234588401968303890643485115052134348872310271183065677081873406233892083621074360771480633482462832508385262279739330784366540408963319403221353117617212489165914770002749223833044595302305660157314138136888146176938465014793452032795189390570805713288807335715659263513809186173004018486684402948087841569139826115776140698354977273881144047549957598345766454539434085749818929997729082696148714784437710228077789394971229354512190330342867702300303278804818634625408654186009785413135674201949944084185426059260108777963632141843275286062244750305059339536300539558337559989812340663479091316380125661202499213937358050120917733192236820838917179300439230563643575383766042943691652305183036889756990459165442358478123430836052111378323094995960556263747748914151359772318380206730812949155217831066624896956037553213074020549929283099132295863380429911376953777421209507135355274446783247969877689978769175892878257399864510101870849297710928276113600031591070518760718635388231613891256669876068894673706148132132725918624682069439588759298356098445339948499867458298812325335022987673598798222940215851344130005576703841869287720472330411489933583991904724238092487488464722499216117062857738532172325893190347452457839734898925846398211315836893595342548568434795654744930493906037626863527646523399065723658221693820943662486271970803825477408668926361532144443578754367902179747337807492418105089164299255645753792078476716541582648194105213827771312099573866163155518930786456631436759234521276389891930923411736369636122013983458163913520776657254987584224932607657717050177291895816961635535480693961230794483012703342030934680174467746791355131906524537022015984394323708112285253568114004625209426554050946290656684348601603239940089280776167636813400161435203965685523348389913889983790451482631971367581871052989585436156870322159115418471518223958811354537067189139598114773568801659565894765717492575403605543019897670408236621374738807616610218759610953913678404219728996805498421569989960915951388008384713180656738993068138203488924466308753739992292428404408215292863738845048250067227864337104764859433991944792955388317379824399241079377694912003957039672269701626015932338709137104174708103991857714127147555595847569324119138881422532403208050758332219752596728062238778708754177066500668445533195525615544258259035630146909322161554221572511502597713733462802830102496553609914637036014087770674015643772510668576402698640294014558030854239860869318476112109505946965305622505947609080020511468406374187993044283784516675917136634582127992162574914464943775687479654070649004008364159413891719377939094454342958944258196007699501163397273549615014657160442943845195779975097035559166152562480431897561189944911551188326703266906177074975392422445195480863016263361267447978873892536811029076567505338410479906352668862012958096365086758826964492988623491650445311134850060045479964044388728342927586227123411410216459263354124859435572740296880333724214020727758562314240346593096441482782929631556214759551876267617158615479932932469180075101769821302707461318869466652520097628865609481510992373752198952376809084824041464180571477667227950018411511579869484780219726447081506896750959755509191172961891427418911809555877044286059395812844319071806691449594100107191206450820329339014375531845552314054991153215803668267533058026796212222632965012802319334402804444512546133676385681060416616024717807493878119092961028610212525268353089515722047503497798982744974204547512738360875471629402905253816893141915218154422889410372181072238842708627020920963679622244951521867639121905151776465608130401720315194999697116185217336271638816493668181242216218095346461693252840324254966301609951875264596402069125963321335146959116677931561867518538529247564839133714170511210392681624957491368051897733348901419443556245651524203605235939812542783307504861890449168051993939437760896346241925197470564795614088468328626083744324605764337318697298211325950977331954070797050222468040921298955545890961906929609928666203994428306406548322795380074715281223327519755369950802073980142863330533388420269433413389447786450311084685068969498211674379354397897767913657043310056598623706745644205340579285097370282434473058176161549615527245009093585744197464812009487196777688979748379387598870354188240216392394732172174547884888043494825443822638975785871139924615047766924944278682226373937792849103530363217900416608509511759360939013007561962680353129494085704861447105066008731703035302690773226703559432325089469094658766276264868612723778308910860171223193132213399777554712648844330628050610085131226111308644343118178143573290088600146003248810796605232936321951039968724688749598315685136449020009489298763361913748559277645495840493212543660588903064514847518630770332381668719755432671279953518780494072941669044128783152427368576285873905977501773878167885754993649939519720959910951405878623412218233940445986953342897546889026006913157098603198537505648111685436873160864703756756133633678479014715059508013867321557143077158742911080654226730032056330900153407174371792750999958635720980215950113828367259305433180221074391768680509833052009613651440501000782809339647461646057714590941958809037340608202805504178678342872459763108524163389967843619110817920977577562792512965027108652648828331881020240474329539120274616709510398302344486460945405488925391075441975942946015129628782616643696210660996825759783439892423718155745216489007552094184074875249638931571297976463776637636285432738880229794575637286689199973858708962991156473388646062890452596359728377692207813202404685454207804960687087320849681554030727562228263929036753342178500441083202077410999098824222181596895527928705343802662741458164441382919301736158602637825566880815088508204400433484437442027520211561190631931388544053574186756919952389648906759376067508997610412880628278344873704880324929723904956768053983260969416536248587752013055544802814188089354002127185684888066643468452155566495318311262244474715895805331049973498079344401669082793617454709181442417469541079291427143802213005084556550041656704085833933965069450137945480123683759676420753407298045160485605283588223967110411333760499067606351906480770287837923905327433001629242086138300267831258402239987633045673416549900064677723031077016687662412510517183822434310663132674067563079090747166421811820777553743364478279319975935881217852410165519857416405247847550269526279333271677560909609238511055280961912152903402365516373781547438616067940916288041996617687407190010324011376550659268240843990475694016163776067131207820498673982543466775218174342416454830381479100919860722009817324521533366071916904658166463025871065535161073419686900203137782143675826881575343665027849261914728159864831288057533667619341844157046313017006556136692706829484745630197328627393398643124624570400180844232849794310689524296111908092791312052463452352030502495609748657465223342410298052188213347920279943741745512690185358308668938992976700895698484291969951303092069924139543896982013822273279259169828865275581695347849534370818310893719161896629535445394583196371174975398355070184196197727344565604466407293424145066807954446513960544278268611423323686034640340641280297126276862078289607903245330359900883404462709811163300596991870514384637149677123780826054903501171444567004330300099245117488940413607581634255061944794191679579486718579050500602318817021392738314180329785034746615458963243395406982892777033676072317708560478988332823008916127467776167187916748801772939687434606998585566578029034778494626429514395656762533437490488632429887402406728253394000487404384857215753668472018508692593720947150099388909195116455598513828766101148154362391782357626402984513222755321522391462990941632385325023195151940757498825634497738815249875061933707620374430352603449042045662825906313337536882114118567601672785400363903844736993330711541775033482893333630339157852544907970111398014931966682820377660216010104404397545610962530339586640334683882689580451113338400759851513446087315151076430576002803636197652359453827432991252820872477084465074616864509362269626222794258415043065694402862342001287012726196953647750385089706617957190544522781702753042023900787934863613727031139467293691380017746057943894954238520190697028892036655845478688382746886280618313984383267421726393908191639699587180135342857974023791077413681532341842656217491868146588803356023482386971663684475870749903269666354781336791996894681915604400218765312958939923767362141268430201372622510889149521154242724148475109988944481036510267030565563130468496015177840515219460441761564874286333567222886851219049756364986546450210851612761020676918546883599235512158697271690506707907739840889864721860003856249357960064292685812008800099627746260200587545788121887148048004945183653445495134633288962302967651108835045445876051219535414341616721285360742682156310107920578695374425966897728523152501215548178703833690772271083174513385924656981102559943439703030411520957028060494686864137703952427195553134201928701735411751036949798316172448222702011212205758467055585174192454178932474641679120852132164867560735076214127058647949797194586806264434281112378428192043575491744170698356318803794065683774157034449524253632598901040300526078045097080626666498003336503035223224253514019051304695003832256159246636074135066970474144433664248943007474856251786411579478299467691607097701491059696705079417687875998201715139877259291032951051918307854651026405897390167735412149862010267611498826535926416355309565821265973118517518393881954629314226120013649357740996654040829686635313622981721076148982467912014022644996361717911671091927652814281537504942604291224301951701268895984154499899257198800185031301570033524084620032042282723144262713404213536060642636827544244969184435116994962238584151954930702228854913613939279718495775099794368543518097915457614403452750143796370945693671766145214917299304753448397134558613402592987376190368243710052442625191215216474773720365777872617592060272219525750296898946759490243681468322354379708787566651520993104536042524170785475594897245865739978248059444639738636317464090995411318002170924064767403603330214614035629658824790317500622992835084153513518429224765082231562979335302017134942279810910926438718851538956469891425535467196974356546178371675582130234854742026012320669785349467331134156517816380309554477896074260700245202292913253400371459705927539504079496146187266049374430250628475613994377231439768852307868432467682470378003792111213027664553370024095983728396266528709140146909820298940284286298697455290930672493464891881421652247710258934616880654058920603444466990628441963632823366817205070445413924977807922144128184455869317549509214941629346052074745850271397575192856616909341863121545629774918515321837144024098001033071081435765929428619115069809857721310998277329112528444011126909700405136896473546294091881648581232180980574667695249186333518924606928677986298403209515696910666098502505562658206381789084640793757869426263593216105017568534864926714061462536863570273224044593039970575921539857436249183700796239901877081798579000921327306521695403560114595692418011941617919356006167167294773927098497013980600361010757335640850647489839989971480733146101883946412258231137882899399970812279489832666992620443728004790341533715246140082873574033215306422067943412044304464998414516824106702456970808187840200301880518055578959179383036430601748555676826618242935839776172093706145046550588879678730373115243981979148111992158256776490445646823136055594582282480716639862617032542844324441625033915965923543526866309073798162021485654639358203347732819234299740134219604297576467183624675050151801773287231832489326579211418340676310637026206770235069417182223542804520696747041965204729135881529067390269167528183321438958912878435551653069192448123951320875149973926312338074492198259588327355550764473991475240831265965718285319580429491927100847138885422164701298655106201674233898717586058775899125903948741724243414954046967116619785682851825223536066373144178121673123961707091260583468028041948788358943819869903133132541929987195169554920206008989824052518905055353202500960775647945260522520542555000802593585507278774494580141266226465008985966086371729923212906750856491393267436221557178544895973536558528891496920271469409258407398226475862446386544401560892742534078216809947217445546187602393595095498213718362417675594375577079497829175472824548003134500480253488613959059692589432817361405456397614305974837784259010184725451811771664882378676164532591968819790751849273404261132902227948817713200269861288078924830220540304603337492034303869167092569684762839840178536349498580441531077653070649464413949044467892068414628046883500228069389683550303976510667569637500567074713564747282634891072211514701520463775572674945569103604548202279358317094535095985065132332614078616148367182190901778626542632930422572687373963701248523317108365130631515033744521440628339697633766844972391748308181585268378019235867929949499489969005160301342413057445069491636627181677612031317117337272817241822958813569029476498124108092450788097103682158146618283748298331069616027924611177280549560940833865592245892919078627479548191486446064863332826837691494739302246050553365359629291064393120253068589073344924725284233893508854149474226508965615734756448470453118664303266981514056111016708415348113451301562418215940741965652138644108015331623444134225725954921314680548313980633886647688019227503039323649503664120374637431616707582994622949744424233349435295422433687906402929727484281762706747378957147320887170136425787327033986226832166362252457581046085682509700508918751183270419572173288804326985936259580754285560939280692889888191756995339384315217546102667648683968563490216632642346997558174797888091659281104301319533004040972665771839239769008429836419269954514811371007035562567954388506518635251851032595201064912045444343930654222172620385281875766973836305054762589354290964977011778714234831986367192908647099510421203764261374581968699179837018227457755683866955755585363162110264933041178912963079733522547114980618357565160863091426390792942191412189144367061466489325795728636547942687748700232263396080583581782514871537946099073758278809939934164335738913475570582581480518880260935300133014307542120765594528483770230845346505348586029017608334023257346734933373237342785020735078804697335928392581890378571288184248263258879527811503510916831216223418730230821199928247784292566203315479569359857374345037448186513769561982064276903408165569606628241801548784731046479305893646516732161502689791934336851695812100626066704435277218942188722296340152410215120733559832293474261327982627022274986409591217539720588921494842308693724532811805652443001652791502772598227912788262975088261324092522409127043099596094728419033420951839670850487271717780308512093607762253492235576040638356120024206776441896131097890003062116991298154440523489953976142940377527321050432903419055165646231746231856557563390336579877958782733215892818398979450230186276332591177925491955483713671739352048039904382801152431469022953436602936795069619257313960029779906975919437118121381812936489066799820460845963283843237124338761365860998049295980735918935161240546233471444646121774593990409363077273661643472317820922693532457200986026725313815876652535326502306693147437709154438143205912617316403223158804713470550357013512932994996887253642437157123380290760640508629921481709557207875423724751802773015060875907394750603885712156050346700383357161528052203749372651162508698301324749789443584627049423170019026936276655576041103335254278621170221348027543934495382873302993898762372737454968531150562307562981030854177219577741676976290439374591776182782075623654734885769485072713298240297367517200786547148405764432314547791337839846282083146090801517098972018834075533616211982359844245320218082071220483649087755534337100345741047900433208233139411297017790710129818407814798756530176315108339506573900937974726505334170422307545385007692544208812598104641395280564196470191779332742060837568204432952939118978412805735240700960014562203349198823034868287055976099582929997685357982619179412661728057295072541638334066964411545385077651535778022076441920250482461354743912631407506481793061108949164006101896122747941871692203541113133814152966247571514029553818113016109459031083910422002939165521036045692549359206322023830802678090171161951307038696374371777081733645171847685808446869036292538168533041910857950447594609955651632691463511322294582901438720172763027073990192631603446203967476808464033242075992693347041390498451856600215144632636491613366658831851745842771814460941529537944219875106166718902723563308343927900172398686953037390148018253940786317929305164483128237853267573734906039709866682031409530663590561635725786420509498430654771288650462331189288785105322127894015971830920952041696503331217320275033753247013776293553140206334958782563662490905109508787601854638984258361508225718723727787866740562474347428529198057014069191199435985112066345478182376566712589539831880419095532477399907970162366224095513795119660155911961429741500431311889983219064419645682775014742712964769982581218640644606401967024518045143610949391978234253982841913186105624209059767540300863219068818529803270023257096998205177141000762184400337855734597023204214574973369232910366912065873081977070267441505111851730288273010731428530690850284091649460559512943923707784167779639354079759352030600883027324052815104868952920312761756322771012230281353479990814242143066301111245160612830301420677395369514636811446284260429127261035579494199211060617271896792554590429996250688428893240667517601261465778323283739738723777783043449834414276944704950275872027339454538453564069724181709803822149903421872330591493759505626208830104633391031530563775308153149278316701083741712817220202331541047010975655756848339704064804753316764562919647301222665113087909655590273509118876371793865986518964301624772684018503096325726346162909306862305679955432796611645649899640474217135928222269553432394075783393970960029059191101683411007696217365892459456640391623971110811645918181852366764200604048024367566520389268369061156865778096757740260202977262579317430787494281340192051368975616612491161136180391758779056670352536654984681608850513908503529551381040740761115668705687556358488886133783485251653273867522084850572501324478449650283384326263904313929381647744873229549824261563606953513749839300399371005845749659465082005536190446623067035924044998980689399334322238150183556686414987538651849674535813448605045151332150776547388984581672808329749598004129694809732104150294151740882398722032831827165619828731364538303307754690937738316268384336289422028746221782949100121773966620853212545124796818997545272244611361197490672759711699369068971504984260710047093374208699319457712285357715440731396610908504787669051966971350351630371785476634359259953491686147086748145402454016297968398858881405988303709140670129217078817513336071692359515652807988467788829125234924418383693191715981550391074655021458742829999596822683427014899575479522323365065278091646795515353759094638836253495245772458585230390575367831556430929322032469631303326537860922675448415135309659950704604787878803041687798710048567063808132644907852145112036847355921887246215500265132764357559908986338312286499137746676812391495103862179270775034995394939344465328523747030571448546407207410775700184868484948689386124771114972805470423650097458459737938670357338559322448838631885216676472092508315460605040008480974284343597341174333485663365348979929200595915995721042367493835080344355475160529492585743014216877918044606528168406362813236157514874107017572066388306110123282312553054510419982321924119168623939781780407309500053774998680051974321801888832267697943162760685451610370842846923137903838918029643112515731538591033906417207972837207186263973575859538845389963416735516954861332376008438584869621244155746576333045384673948640052507772085231507178599813053180729182748774329145794772239292909097871548910908819344648553306774208904140372202070716647896445343202797349117253149453785373240166149795513157898989606182951068925399448068427821256910567455679830447018693963771438691217057819705015063487410857489827901967971332644922112395359892617222501471936983679801420044901546190200716896259056392994553639873531189610963254836016266038586849933378494959308523820102808189771212402521563296164947985730111655920822574022596224958613810890551680019184967647143640054350518982248610856295460023852276348798355836074188203883029088983997065323170618449609293650313306601067288302883394297716107351581963931295395885479146160305750743812762597670606281894230183113835479174503933623137165815187764114799498991378105656050841636623977510386379597945102971825374006812320489445649429500465141064514326036048868673174252247944442019669278652074095862758038095227760887386896230319248510141453989643809266229068557319176347183078150831914478656397992345314142439788173276177969225462992537797169325053836018973918960914523531102209513221908679016215212019417614333367013498242844973784857091688105819261687115192316974832936695651041506717830443164552752180057996697206282884328571255785149389269797153689153791331801116792268181372801948545021900533866275037475435733593361464634415145674702971732269881362527877937076608224351562216049085145187829507300915294820456439819361565678567252396087943848740616480198845475292095798928062427376012949850737095784124347506388749310766993941475533688996007179837800756190421687535217633161176399920986474927041936070755448156885016733891455066945036875440265019609995562092190913905271585986669564799305933845539444396140204215620109035082068378692693829839450792426994558313128146906363916195373830610140297489575665099665056819948836356049257291686697482620995505563305821929398250391594226355827421546581105362951399824735960641178160541961925897762839456314648175371956281678271023890699099790138261578035067882683344988284684920061094986876146703072919722093489690459645400152142255023624061058879402003839038750822332987959591310493701036076873686203281554212135789172929527036404336562903006827384976979917474462600102511993165707171255917589996004766326175221243120684904548711413231791916902700920423873319489940310691016594776701138779412965784419740329771676647239801263003434053939449768315434752271432506861891461925144659004185774956717360447401007060035813020862281732941596296353556394071543304885203138632605424934477924236774358775379191175677874488311704043247004169320923769251648844722243262583116943924687431160603534285252576545537472502159697881514819011819760696256421690916772280946836368964491272688695415581736421298065235959168754791171787489143004744260626705459479137620908227024596652654361859728548095978311148247870598038967814064734141459331780352362632087318938593604484554181403980629496571725705238542201011251776058263380876917414792673553165970695137123074212267768111873921155776503494508063324427335190293576356594091469528366880756972379040552984348526320678710216906924600246972345743494000598969316396030819289179119852695689717751036377589615493837304236078277870096248500222397174057650552804242026865746294505574013202578135138718358470821488586855247654206614952780101847354412633171857541097040695217641839339681224344256041509615529227480580721008794713778978386474877798860331606660680248109185696455819786379390194458293420459851261267218052812682501945540860353583592081445828080889654888018496614517970575107675454521104221581672178269713438461929168805020182342556318138868534216409164122093173733474393913798666362114409371660107643859465801172481145582429689921517680854655707078414566444776932729851464227928350824105773683781566266395381613345131073298733410674146732476537427916392667858777817094926754238326267291427086647559391847461137245873885780275411768373542443978428748376083259420355077440576985624663685787072319898483740027932378538008167032406623756331109050474387900608219444582660383899479059037113888677588685972434363887000897649212646381642000672416387262021074657624686959758195493982662663199322327485961602212988471120749115409795027280094911081823429767031338036008843935288443966179452859230691798785941748961030721560287050462671523592267135419916740683077017845943242565399152083754869834061826127508862749543636926770954733709233188821305991704427027061698335833589529376766894298957618546312368174024888937559800170587069927037624711780899135644512860211447666709528587589194998485962756048776582147340153438894927253259540841641257233548424833460720571171647567741677654335549784800575370787914780687396385240925822617730204107025688550649194436383272960546975450332046467227382580218728606629971053821244238897140314725886984462882363231269150276978233650752985837834057345906758538030664463617861360588452410743867751897052573153573710477991310867431137373514442712630666364066544620470070314161254103750042015426105445818502161858342313816653190780133657741461010242637001658457403251440489600567955329457892031729913041734195776574023843032144904201483818138057913315260173123072475303138925616283979986900510491961371501399602788623652825553149277415793165598323584151933807835723194477978642777875994744420259197540976935270626759472325534450091101459004907641467588868325889641453010367155309178373808118553046704098555874182907028596206621747215323810951012496851357741673297324697061055126897058239345461297194620364831593741255458525449212835087851043558571519976880686779278144250295446792499453334882424300116390802478651422103063207489162930413550271501917651509964191334501642032708553423077039224475822160557682797787386143428031074900611948396192848321733063583896557452930853334938089586463928991744807166310636627844264101938030053512865253989979494972617608976844512287927845813739358516674622880354424126754776198286893998975029922749298198477646063900155536939595127367406439786055272206394374464186553364141877765169047143565813916887869323043727419509017378230642227900065619061353808742496419998784062127012775017508623531766028604680262101096192762194173663460234418489713023183434252924887756048916790030470028328659240231743031622672073078531358719678784016312930949431908838524687828156207148118007666246634462064252788400569767127024928915064963370840887873267926956832487918261619014542264138495755113548567559680523546395960117735507714082771539968036959551515364959089267215661443757559644851144173266592324386249848884940102169486063046050270130886811326165900030964090417669667219471350924271945246622116921619638007553251012680271538453820148916802366943280900954804707315303020559596255403585148662113567503181378712840370813714011771052438517507095430910545570009591616010152678870927184714459001311525216197937141525529447786669224889102865649850782059762916867751266014370343207102787769138705348617036290239169383693435495221612869423344326980414667998904300661543486583912016904597764327748757199493198576990283341116942505215043275052063317207994793805642778703475258515250277791972640406095922873043488711620295051540217625555133615498898567444266634155613269960249694065382880551539198967469242902215835297638772720475197667306845045835750428075474993290505099163374203087212542131831835992409460478690628680396704965963114359572153334598588271451725459696416764561073675398751453030677344732726364353088816180974429363948051335594723236139821014052423310480270822822196432951146136856127910876284346636326559864584187636252075561161294074547251430572756867436248988980667846570438244968784868564472350320318236395137255348635193435519301742638535365244615730012179776590208566388115367095973320633274751990107090142275461034791372560372155057123782720994266710089691144192123004251044448056030535047579191737091873859875307216703907159997076780494224174555978598843599543879414612531262879354779459209715031932134942297151572472945981762370916076085005372012573774340436811670359099486734519548346195615642366966558113953802716522546161327382241986009726366657816779324722139260209666089794705053967168603735401020828481125304317316104607374137510979636023685009561604229545079880255579142809021077211254188011698718128300952699661662308933595028675004376465462958653536766955654682347918856753972911124449813951796587569031036274236082186640612632134566613770239209225894817283878564396576331267496571343625586517378443897231483954368471691511105290351737853320042740344863559168945853912246222933348561708905979716499952872870466349103045814480973983664473967777745491868134516168797069913619434077413838661834108806439018537082173010807213195345185113151307491082037920373936195163019616009608362150691008752640751923858735688056140101417032527827398906681393604326933247820831442153426523572388388732348643225386076472514778940056089626418429715297372552774643936050838865403936805270309441652293010971004048157259072776062969795275705660663692834616297445951479515503645270867190958157783398109767086674388406203482963464389286511323409498104695433700184512234992796434699753018775973625692461366149977782159867472593710281136410540496366462658591315362690066014825220545194631874401495176979874905872658027533141456367483908639005651343449696943888189114554658796236247580853796202650564556520474674009767356448358900626426072479018868803606027523533571053687345270651459640691855048962764773565212892240455089142282914894186869863082981109702636704387817548227309538714606665225558149864763902158347542068733464306923883075427686729493705546670465096511969516285956031925750259338761835940496634505783678968168985548146770161912304519705299167575988274201864931286016227807951459436601676869720806668455064537635966439558190347510010528831959540759492345806957542647499835726314881955787622798648455062376107223159834397560469717275284593706634026467238177738851626013242385014682530136782890304296661404654629904906760008402066396607522425749359694328936482267687473559915304611713212623945251741033678653163783814740121630153249143989829402938789327778623769651476522384453267980904411201893556912128286495241335482007654939990597109630170021018373881649991050453282565808050814930764497181244951659613148846825454872552827494247245198376678774713285136489303309157883914659870970115489920004709698123859593870716401906116476053281015648738594670830615484121662005972712215796104508350499150984616664273408188783184160714717551874719443927741826700572816079504721944932718184384779719820986318136094831442874535849087193652801181060771096843124175075586941748920615866419428612201549542342287346293311986850734716527225243601792770270539767391297507733608462656640956617562637485069903689883135730418026529461442086204843083856264651191150168555209647659926654408786546327438840602733771997880766154400140978223786199091716033061355811843702517832512682235726620220465111863474179273405149210411285013948161473299996267326222909367906115578770993166901082677136340442968543665614753188097785341499733141788625290372386867271229578533935881684532569206523412544493568535338292389849567986588853553294096034726455469651699544272274827857811944769963904366520255349921138253056523481241983514622341866972580311053491111111277614513018832624841177987746297970280881432757151493657491627386109596748104502461944095983649083884530679311852350303550123965777574050110852860773660426855993413528771077928355640660208131218540314190553464817190326112287100251404931587515633777097587169157696430223151931199670591246469202498956414857987609672519364140615844965544497002795070197647379372216851038446509669575692764547560114051193542393818341123220557067139744774223879669479322945954119896431362518170208902957653872131493980680456714207091701681828083361164902927785950998071208217822786360441551923916220816376635712999764234745702772658227056016173513187543467776820198504895526639992257942148772732352109833082790708237548726810722005280968740129829175044771741736537717579701194366906315126536615068729937468966414555728019698186731200840603113165386009364429768670467450695802727862827435340032050772520213940699553206106537057515790249536282135039756000958980615645516096860411853735191871470657139844384443511209576173021196580750582272574378463994072453621124878238091483556520682287575009495889055501832321024882401422364419747277367352421136322725252646807684548965439260215974947252207061650372106540099989519538078352651741738584512256565886907379960343494928941954249272697001472794806035798180502327601491135049522269884027310245258807516245448108071723396043494470439301956787301607278268442084599130827823790355122797828679211251358540813035108423628759300069649768661208353772129479643047315546335820780208465259029686051610577965045870810675195408833158965585517126343919491378824872640512964472900450340667146177468078136835574606933468906075242752054418254622540563812290249491855784455986734646837197634798605973091292488301211992809241049129592043485672823296865389068736241792719620686010819814120018393785227699940397296049260049343035363073708334600543460943710467445008841434528458437571392647136538543560380386817895900564452623537763192508475908198928509735957797381945117908071514433337603284787888550325446266429399836666520997612117515074178483445253617406881637860009022834220238760000332248539999377300625031815651978117064639556955775134486588566301104175420815554680580761688408993312905050198552704841899596635027210756392470110555172763177739784240801973983645713287605178483516037175072936544030948246549602909709132964185684273743228160902404420907502772358068517395915903177823138701996281550072047664688225314416111195400820146978314249549232498804728923498202376805670886824028900684573749202407972224504132924697266620823749835249622076043251793362428199411766404655548595604896588792026411408301803171590249021941723801384700012302165139123096798200338984312236733300836250855846579639332449119622404053068246793235896019485497198575217070418543890768294260025088050167596018300894404220580807870105589030639815600710010417794316474309383488999199057307152895306941294845506865694515665483447472696902223382400158643785070467601971172776700344056269440487335009018973730416592284390173503738522015967546113453958082886464312683881683013149016333404348935941254737246741471591428206765439529976372215147087438365080576750317073192452195595478880107407016716408177446982153958857468975839935869800756330103276809637027517528250752680449097874799209233712333381879142392715128191208976552380899018102782440506742861572935886728735420939488744061759400352721576966697899109193965873524691507721945228317708914244473737349193984111993677922177674941374255711729969159608611186230329629309192100245920605810362077586137942440387505242445503336594175115522785049212196238553037690235886940802014684831393254457406954239321319390096931858033112489413896370923528347059283382576721716681954023734065870020315325589676678879490967486900090628106795743562581935674907167128043031735710549541278359894333849631784892070521719362898936080062875656869841810938079676727702086688778846836666169977844657362278276194656790834075868038709020171613756215978630760257488740696999660058616428747377717119274965305789060358090787543344172671742254862431317798549190981986496381984459567360417599349940448519167739559217479106744618761242156987198758686869100438833884033349515378248350954505089615224551385674079836668247593192201382119555667922465904574334655018506763254459635995449320333766914190503581246739063269651539090985200532666967487485677689775830266554669321868341449008004131978985051869919637026962445110038091236222988665444706045163427001294390692262552769692304726882823834332046850709399756344775600145412799790405126347536094262737485194047663604626092000757918880608599458340860317036864364873582230721913761918225756073241669362331689651202561676418841670428311987425847036236763580451922203316204135029929364169621787977285014137237431049404744938018106683461543879472488674791784038217100718654501470208794327468832598172271853652222295343455671187748967268669073597210722767339461968306822668819905071197158823659394837383917486334936894671609591088908088710482785286139109801407265113269191322373943945220725388719438609389959677882233009612440813435756373068897077806163291817486242851363436932629582656473578364250659276680903781576575816642186304393348016742034932439821765783643448910625535584817585077607558830966617905283251721443851614803799036683480880226299982403853715860129005339922121845269271575850745957014427316677705373091254220962611419713175518787046108842072616278887400733572249950069648752722194816177205779870168666158705661919895310566262926339317533717198781832477204712836693264515531777732115059680062232918828584520432425437429642535285325620736929494573187421805517030103550072164332825205845648694227770450284096268005960355951453851807116688690005144701143420546911089077012106580121372628343595688369082496827333257263663811838311539730950971214037490994399347109495234833733701560318386875213317195123860508862675175672087384684040726624566015071972702241147922106780448770651493160343462482619388637718876029581952508518444698093783003224530133617108914182720051657373942450822987970123810068362365758020923028790678099742512422148433185212316115186994239055190010611939351655160540255010800601072469002390353991862258855858680527835053760148643933904417797496274324100115499516713220155321556146965601813159434111086660722566492556632237056301808963623591075636728906587765527033040130980582774951859825087616644713044126858492524049154740839027471362224582366322500074519153661757578529293447944057389702896262057522804488405073597480080565544213029315717167270620447154032837968304768615720791218431812272487460547221588824577519317799217144368537231350446441321784898028723309195454857884455356777739595197777054710623794771883283531307321818704488445157711862356579796213947842488975915343379914397047097563594645312602181048205657574819357241812310997264465324464195974376966524647299011619052687741772394225128319469123971368434397370689939595469272342446469277061226737789157321183486654034596489920086496864237562525299021832596141256032965804336692857339981745430314862631422353949875342355067447175590351321340145593849641731337534757628107066367909253560798513158270437906507345338855264603277418132370345887207912072756852141591378101110408089550770546203797776280593526097041192604101736037720779542828694084560097488103391045900547927037611483055715906804452913810055728993226053132996077384580673129571194572234712267686216593548192086257497111289467111966751081323355254252960274020384618559100055793134552761185502139675763155568770458705662092071967314197718252974683976041453855295286625534513375167215978778984418782283641359105214644999611287736479598752802059869339161736581364587037542331298876332610470843727000471408367227621628480714385650408448374789364404143560537115919981598123053204439449278518943716437481898603769031999274552291279077165408113960622234766179491091256833063021389767771466035118258389966354857513622559135537042068899623763683434996355581316389136621238756105668089551759412620408382554212638447282350161303512906045293157650826304066253658529224841133817741699075962034734780641765761377051399187766907826725392080695142946643027140791203139752057051509790151148918958481935926220957052608433469123648119680696450950401451725015288552574800908129252283923867925310772610909417988070827483029664150713684359639193320531811533593410809023605659522768441884230901566384893501482972029192317770916216377831633383662168298482631968735923484148686732519182476896814117166727814816004291132990878274130095498005684301589558769672092654914131840913286068292815097482785757892406727459400088144478641523039385132225520854160294106379445873762807553555026116765891435780803935891659588824105513972970825767799507454462381806509969035097376472509221311316891945940549362551050647731145067230963035962136965016380079041671533908943620478252257067435016881974502955263138408226146607596817844069796831736926418052279431923498423748021293908137243560444708122849566964821512611826484351127174910464705497587096488046413974289894381186135422933110293303315128592958632202583993086415430324456655439971501167528096816815784267684610129891899654551160503720320609191919973029667641476862775581964612087738486107627451817791772107153296026292902893534225183401252327777149058656616319000250349937273825257591385286024811968643316752982798967438231346306009695765037296070894061791135136949924001072184577272527408901861128826519728696755594256232399363973749482632548560225341018126866679542140041605427009087361461022336006854318793365241179007698013987269105109441408438829988930323439449017768109909845150781508808741303878841440891717219130086353562913683472802754642676505571537168341216209804901363943417243862823902549931036479696413295146442434289063620797119341397423266740491060130528676572844891225728811552125097272713349207562632172142586739624781079857128479227380556438479378704504408569199725561691040547589401512580167512399120293653432336212209015510158196481762974464646295471716670237636171159650358411468919952089710619510717562111431736926537580909440974728437758271429495797755192802227946516344490891371552421218174685263334224408134098404109043744751023775442210545551589807980366772766020121063182092165210410415207942103658978903432384171745256274697362838533566310050111815318616975013470449480448753955013532208869076867800215902171095292455960094106260553492735001981918712672366275210844288233813627448060279467959311848360974214155814325892226231416214409906761128418960023175662075998846851020173517805395712384873596880549017441412394021586521163699114478240507961040159840076561105485329767468516108806492166356270927284828925550851633584175409108986750307147608885360589079486561593435563447460189274596832537945683485049759543245803875049297999040185608650270401083925949253868445773797450664720127757335917351464062001973681293022411303904983359414097363469501107931829858016380260011165347909636249375839610993044602832996399691008939932422957893276562469487920693833848952675936441634646431487027442071340489109186074065591914252430956764781675282659519892747411534309298384521744671605554619638338129473800072890028466773836900459857525093629743414115271186271861014221545564431777678099576916485505415612510852490394254696719559102245959068827787137837817314665602436713477987651148650858267864541055875913801198682768188028639718030707129595071661440701803291900786142752288897220054922052284839626012150747471803833068449499078489888756781886809188961462777245284744373459521812001296259348220970025195246716180929792650127984242148875717948883813754964092768510205632939652918660021854658834176535932551586652159663359673398943904616472288700673352657105455530676153541165703070489234726394511693656843453318378140672960215889512903664506843272254771813756026977090711205921875719715277773028971224324505125151619313156422312124374137997249837951769661945294173686816522821709181446779664529918455749344773444928238496042662019163090187659408624278125247674236174329761563605922778191204444268936222301254695155916458331103702348898275255654798646741959782801133353822947947819362301702482489005935170588700418887663082219305164165552042992928996569795476163536776125464681987231671270267985114612151856074937486225929044616210945915517197560971508254342339673051829810301032306934106549003743497004917280000552394060979618419981099416754826758648574092657772073083178484962956974985249604268912226352036187648529920329633533091412261992410934439038225448602206165141194983595788233461755963307455874890251177451028346929785565926330638028185134152534450664723897028209108485576430706383449742559446932548319530984163690303506370483341107258764594481111813336846285614434655479754584065036701629689110177085723542929912306874751280720121573921192235382740633644952056747836693372877197682680909134396313485282719518287537188230686016322781935830216044005498137622151261971899173647213401276509118543146107583473096841661581698619799968588643465963374193977036565624462241134920017637210319995588302138816288264645742312792450912352392983557901904680630409315583115757690576309862097003085671958118761048986543322038751836057656372166539858225150777880963078425415351954836523135958139958345081698391138875790294390494945669678779925273712294352139168058043823305790438332181455757169654813837960553601522152862389172802775757432951115026950671003581084783564098916963019262226397316906932733108771791619978460798659121459959749559796071273697890571511509855650829692540687824474993556101631743463591165436346706344562881815023620330671656219409601983017590309749525373090206980711468669810890668457428229934519308755984769212480599961071428244027621675460047236266560519728134358291586707857693437219357002952759632363292073724149507704943983082215230773413766116378823521180383505930427113665680302168557906784225945591938464159408476466884147456407594368887139393245089449092091849791714667554179595896641893982524713216092072726428035337054009430398691121328827853303647606468179299280991969640843148257896972283196358199300590087032787284824767257938591841861886171749788699919531479140446231959141252693679827298115196040672189762673068981146205599838089792246741020496061271980455007328958116226896856402768671038737068829235582424428353388526643661222017517497560549651983351474829634171186259981242109909098465150299639635113599212348724544844221385513779176017490832999948070991011694270170809285934740499456577634582395398861197943844140934591769792384294330116497687537201000397576448749257668511800688329516251796300887843554681600437274053114992081194692937061910843091376973996382383236593802502785422567015826588382045003434482779378471083758665660676470709544542724090279467589329064811272588460140565182021786975913295650119617328241178727525090710392232946065784024354083700981587174394874251936042177183246962850323441533822718361950824178633746954878963662906142243578838882018684601937869193867037294900880569363825081369086386892826013381530159520924704332768915037771955085974893403681141236671263293939534504427352444076604897421558254594572594346430296026203098630691756832180105675043707592507871839308817299544033293927456794229027534586900298771210948956715193418099059120735717460991949198548294871813358543466754684391023396770191004902284929673987071745022837839685187216415485884135587493219162919694085775511547017905404152480804742288169187681867085696361379812125920812104046887356720955206204398682602130588200546650036827930589365529790738222897874680147077906544415477191792121129554632385584202018866445486085888106359632829398168123010890055295732447037857841107167611277127126472498734294590099586272189646282850181685516228282355655761977582702421696176440651480629091976744375953941448863609490088890509940020032588429434077163389687595204751488501041342933781590391459131252152223199839127596447464515084621020689553942709224216475687480227948743316870866976782113285694883742344757622758677636597065944452308038933917864580811581932838005724300728444963609033595795062532738342233488658319168754628336547676158920573707953865326999658293526199249490483321119398859557960846378067011817869760411243951326573338518955433201878493894224937990485350094422655694804210813076014521455848564657495894973529202306352692612202457570845863450216212427536805718985377831717668364723204779249780060826821448792729139450923851320121710253476424084302314950440382073446764072380301213004567306305947564008097490867430857498847785340516372787263547865351002002615161217583983539980644786016001273872873736950564891694260232224939948042523589216836747957167496581665835491163030714748993946178798306507970475930804441438018729036222110852440026081306955480301241659968024120311415320353814916018957024060110376652989252512176290060377885719137855934703887233036963192028438780590875051835057607147869703610284103644518145518177461509640821418056551151476506048760047971385061852592800093423921664412521209280859390953069445333551934488557371763827736959957499482253143820227139793913930885128410986583799220920202395236185817505904876317206824481668341800645299288445373543232271805161661538820655407452630687809616230617409336685835655048040477567097731757584159063696704091243798385679912653268818855443303811350557737204641203681367591996712608932687225092407460995261335618635990426881199163791736581458429715912296596331267691894482510122859617721851668287372670744818728280871081528283709558955826876968048239860867047790854968114495041320564642687871991500012170951112265533480029576886749508918197231683416531605075363539671937075737643564346481328482865564342965040007143763239447674856402248183074083145777777707853857767614179032357511528680435911342770464344793554930669008782654403130768638289976519696512700041528395058688857715268451164294983310740799199451587738665504646612876073186381975900381265305183464688250608413757649936436924127775863462060055081713090750302746076159171836565552299669021294813896206455670366571920848505545548828375298028784018847512903251819329573850271238692142083495961288950099561991938147031972347160928344401488301433335765946679533851508125199516539808728721115041328528209380593072951869086203715559433970492366126065271710507402109295411975287502559312293772472828926814655542990495458748761235104180034007177600658626255382429512644945100702038761568922442891443640490468113017180132093966601256001193793003234735942366443040532883674266994064072679280995498428516883951806612014864334869200075940994787484699692404883685300369507154625815450400879106167757404296222307634580851124252741627752847147267692073430573070809940090333671218968689177103460457678138952490748103456050128514811622590561715072448222808450060920767572340797166459583606504846845600728615350133847212364945922271314249492226534466979748538788594195584003882205450692362809764954352193222867921662585888663053839187906847752373172310926791247771528082416960675695283397666925332868118005913799224621170453026027436608998598731646492335960389373799835300335307082914459106611155506436986857731072498486977550683179661470924555420268039929420562600610981728653112922512499549418320726594310734619143710175476370256725005483070259740950090027767955033086020392623541315912904972870504733311880401061933553729708103585302172809408309790139280485473861038046629366299521782435162347579901449429645128564787516180551179361904043002905078287642308815808832224598821511364215164837937227554479673733819866820529260362350908181245348390042897592339543366854605509772588194080428590506017825028780469682604315653088224358470809840814012931831299750428511015271281432013899780779153209176825458042235416138682020941703649226873917092983493438768819668308202411730916552154436064884702237937125229841889509567719085396727532993545970775641925740465726400756240545438375936224075387763189727924132818647211876160573254389817718241562063975415669637886827139404772120619737301082055081515974026853039529219259288059578738664102398480189127597381438303123450738790923861921358703217388911204070782281255481618407107855808325864602354700903213127628384493671000313053075406787955567250187335114508915033553986423008124776363691109136024380986560484167124494311162039354759505182331587269913809672030838162038583119834463950491931882509721196743337611545513799090183673052796606088735201581298846545583278973510232714609549187849279169130218182420585382931479796139254556810590491917965065521514489948591146342977361913699568636987021962773981556569143755688040245018778497517398479718772088849377004451343292081494619914070637459380509689041002404485771818142891638095121766191198876192239432689273614771996103265070364989032032097847037811291624246444798084194423179610910004773941788674939969281939400124276982811178895396210168254888347391423177523799257411748643649821871325558408465598657197947165068943844792897681076133219153322643275361504989944990876780086867174998510146533629233361162765064159243044768958679877697839221568734503194149093809960818655285573994146633509472548946936401977558274793716668104389578983441575091524492850385681437579941593132248325057493056593986183118531421302921360760882081529982952247560990812671632429050326014371423455452895008587915815574367961983414499363140008760273572298822489389559253926648890772888826177062339470311388537043281338433847979931327371130761138034837889376458290433928112437564026762904014463155446769219585125814166403234237452851409595490085560414575230338169266405693112056713356056006163943747845784098473748684438870189052901810869716648330321472976054550273320915051324148043472609229805662168827136773385868093089222492766724626613009726302433353096547591157683280485283874127069075143915715369160276233421775788671611006281427484550546872682698611949868130809358657067153381313582490595042331646818840465025095892001758878819642420301804808001057256598353981282857654635713589325495156454591828824855261918498220972494610186306629284611499703891185271063496769617305417444491951611662126376297247239124314048572729382475467040805484129005400043050832087717043829381230494824778663529476437483121761250479224401137942019737563460065593768133556016024890199259074829647583055707685442503951224007651793256120508860928380210744067829553805617182400188171449482896240383355943222125434060916990030829654740489553344821313039547768111707360779874658918205442355043773779742703257333562984282273242067530399179352414504008840969319107540146797584054128496451112803661892571920776498427927313125045465995054669768261070018832728914621506917587894593504536579160119540368342416256055086994144463739865922852506954564000722147862999204973064436236011500594945843498984802321036060048659599769339175014727207287690741617885266891754966958479613732748345004257430082958826573784022362555490514225031018484791965376455538341735732904257665628401140776860555850733655983807920199684602552340028040852582552379836148756868819484944362552135268488661474825445575424290948135722751878671939526332146071921732220941903517841332614130705868124240562805874532636195427757007047479500357143793318881234845465152689841268152657848916656968903301601959394563253115362282157113369851833561016553386138926413400436112918749840481852741433291897935992027675268745379707408404447439787941550454339832137842068763150650376039636258871843400433102298318994338789472243445074345376511530686034397987619967358964558387296051239050110276743492348123516750626331092915411535537611593571673609559891893286976054007192483150706870719486430012610638308402352514309066021175318411764767890208173454763244345830322857822545483821999580319219406061242977286917721008984720034757902297951322025506780371058869716771964761611215787484998046387540988888303204607943046833599149213058335033611251487945842372370320345286841069691772378830777778539573406525340318181729699149490043344218323462282585902033588183735459568944074272617874420017271638814096037907622460367910809549723136200060543910163066383955430940601747188419222376597374605165152198222461364552068257502273666256235754287921698095202460014946518165204046850414056220332009811724803261489294723935081229688937503750245417381456029526875298862129454175828495773522983605479854570189162115621228256765943076487757625367284112090702674891843047299224828352600295600471504002555018095290232378269374396450083184177144358676457624256204568731484928545405250484960894087387125877617355626858184801063802414112391083251144847307744896674524943316998460489944470561918542383351496242001724301435302320546451554903541973290396242587915846194389946021723619153944940215137430749845321982043363565019803229013990798187394216949049394048079937834546108799939633085948669075748428059672977755558655012633718521937498447105933668349372604538149337874486708428835972946100049494636060370274562104441713514452672823306232695113912693571965033167314265423173958981052301742621539915989041312197991612219186319488480061553716415868277256470507633087466401954450278241177076089712367413331213802882156693300234081651620113938450545687414434661808878316779401270853097821310876804040315343051268850215989059550841204885679920608132785940593166875323137674031280573188502703944903220967060056974127026837034697126035050158948320919043135589459633426981416100654082424081456371561424903660646062513494191758211558869669227742919538107491642413673044561636724928443128147152501060977431198395686632539479745231677676167807895649667779153351857641707205755813829732030205494887525155887341755097015321556558585437144182613405557791549093085297248676169859528163439587477265121279589667054252471252571847117206866288843629275839221901556068317678463007947115674197779361874928614781711722794718954575970010663544343255942661310815328497343960330808287312748461773208681017004778363595478516629279332794393954238947855409272333494616099013718108389265295895341086315109686204440713228048150781880321314874666765675372216234139889904154814075736067606858958441403553155685342322746297567383665600780624798565275336289486812666474092776302185801532593899362918122882504927130640690479923469227479519401916993919515643457855446470080704922168667449414192226213826740130494696414284763815062815853360024774766459976843769406363423749470083006631892174532341695979946789182491138777768565811185472818471696576128654995612010934690872799818198321052191924082974580269564222232534377554956251455073692226118364430520725223443245246680122271047720654367452351751482085635181545278272297849106259270124889288628113781273107905813873274895797436854761351207501968158098946690924750988889486557819386502035666424061500112471181568382305038024023433591273448523615468142349023805064669526240966940058728894392527313194489934296043115349198933376783948365839670496485270543231659455792157861801153887343759731477465594852552895358561413887767383320174992966020015867841649384653961452931209360855709477130169370858469177609864909728110798800246966428014243854193439616532126907334679675128498324413282877967476324486297180583431584870971817358430685347263604605722287482731354144334730115194762381423281149266646500284804751874383742217894220795186330811590562427161558516415679323133370512324563746740629916998815383517976920402391934539660264486513502965761798615808861928229991401550978116907069078828862295378234856640340708079637224139656600815526616367649733357006132377853234919443003987118312337812529170097206716113717130528537061859935386036827093483541043047949251732526182998491087802513267770490998032537574373967260882003386255880266584685170105713485787907801876187273182056678813119098011734025105945470773348082152041527450110020687267545432403158017419459288628312735012791797592550965358157275580847780545465863483711809362942317956884310296065509839310312093636664882965488283360947424956613734625990863652503545589878824089866451836752980941378728622692603256239101768000410430417598944067970706552378701030583323784866215421886579070081749967249658908687870642339772798076441339146859861475043525398443839486861064625297553640215487982992674740845541929314527082169913174602746163403813052887234075970330599380966273355178176984944485908681248850577802693763770644228159309173398028768700542439386994736214241570239362410368002232916693584431036710863984325127625373910861953557217500497959492546305770779529443986594308633858067408496421068022131048347065414008876754896845433430009750681832616371231685466039681989929800143644338037827665330718876660140162768934872292689988472110201989598699205583076543153245493505619090445799145423523790072119446467642913459618289877531326140032708766417261287406475060209820163846066729391576976725773244651037508885551815409212106909915698423646763416460844087854986968691321253215548153905267641496305378724763225307794115576967307193870878675435090748905079718130776560453546498027475422003509137649402203894941408764720014983208293966522496784002707335816592854555958911069543245870721180422537832966123928355764037671350857478440489415601100201718589125314076395675105315543682474870190134042655898242466833480010686756458853609551474020984396725751475612057406320469260834865096989840398691908070838404741332277212127421358940301298608061592161541886216262203918428946939333908756077841191984339698867137009474050702217826266626889442690680074884488300388685293041395519307906030363818610749816421120054788427159968746895900416566707898360097784592069278849234160620310667662948896756342935040007047633610505921894499385171517169544572453624201924321756399320722253619956814727144906258574288075384365752569301013014060821995668222846763312204053021693712894917813647914793046198216605703455534334694975429347479357270052273996148836101433082120317876159736037725195655188310823829956538862600319558230760084237009514951231408753172463724490309151272818838367967431746143401174870641123980890926997512636193043493781966346253348219082419995144056899583059376829370770139089539153339423336649198455477993976571849361455777989885062501133154809020456497964395597310246978407725720030268337628437017331725210692425102131342211463585339922289653144567332574602594152863105943356885654803631932206838622034886820749490609218572428168153308860580471170551380169439376804467615841458576659541736876598186214354395638042720844617284802520185226735694411931647430452879272892044148004202852886590870783207504719832629080981712488109796717523448998264090883556180343257271542736014185551071017081648129322197210772373083911232432578216408756622850174315978555433222426713962174166176702674940969137709104242980467064257307385754462616654132180564604115101897147024352693458979070559310213222180487662520531210228024339318552712293416619667409287734086712926379457196098793286774154008565355369517141254069586931045646908834723550152543224414464179218444643506373577283824692381016398900243120306948626395964232062192949397580237681722666658550962970656104384899796253557275238778606576665870125487403417943928038262275014582439281387856018814356327317905123709809901093796912274933952946853902807184960209379213210387108997417963553590398323276240888229630947041676974527385207141158943633830966304176086122170270188301385069018128580761012237139066733822049952304468030754484880851423905685092918555382641854125656192705312544104071781310649535269855624013363553047094273773168260709582154355387051118765308220040844569501468817797029610053949147982618912632100172706354016801488597345652622940093919565394809118591269952117143494319063998116427960539833973355435648215751342080378288791031474404241252115359853006939517321178786742781886284316791998049635547167115838967089970921735616954015222666098790639042887787166113947641831591777753345071520785691911182904771670834017409806444083863000630014132046707518578972606687992267833587766542264520267967588392275027009127941210246951256725463658998317579018389481723207634428417039367573740002697055219927211420226243135657168237415156781821457207280118034757434276305132638492562534005570904035163402421722912117318862079497373105783182798834480465904162393131435346049359929290343827448726534136688310296195916681808637284907622939948188900716036964910885033512570845994493829031175626326500953183312356740601345596792796266870975713811345855475747194250461364779487741340810131193170474393908058526275975781329337734567157362970440715461667646356010960841927060837948137320142173021935336698455206122186591887300734126849362416237089763276095112766175719427433421713261748253126575980834775895021112646222314391070871676914561984863143464271367048951795785554127398042399794149697565403769103068791743704198650427708595067948479076166040964611737891553727718455817627265979943082457182710075077896048087137950634905258457508850783743901571271408540186265271246977907464807241173564768748926089820598458211545092714327023546511538381888288744782284910153728617932652104634679328098777904507290907878181459877132379145754174364610235435614575925408775053838674972830294071917074098348482048583917220084575709191598935803122956174157274909763158190187728441444371250579553821321378267065879910054700151658613860412268380283943164902344383139689287688264052373867796429709183850157274283863808732511959937352056567683329913802306389748005896057661399335305055868777136139444707550165878110982705012723842577813259347878100253554946954346189816854516370149341732716424222017942673578342076030123592792172423367649665660460777215477330721732137053790500998199566766032251027782309872906002070701491083021640938838877570257831821462254523448203275963691670763059573455948644488319756341686658802021668028465315289347385801498635244484339432667517042624398918060574524090256055079301786381253861580585676962470183506501770878367076994386626923585018218657017307348248166418628148320527006043223982194085542796192320480060067527995711432756370158664072889949098614684967128217021075476544650155114285076185134236062330275751075988039354312156544080546063669841439341102279473791401288511975491694348694316375543910375442732662879129401816529880224834758263883307065230856565050854067803104180484643757297403367771812382443381227558921627056182884734006104261381902747584545272318395384396395372497754078623922952653693963147231391960903837181664306962312576724869973264857740130511000009028382340127543172527516379008532297571051451767054196988824461154059136319113539897378732542603286041183738588524956803232446149655969338018446637922851727122106289971236212982737370774041102082201832629416615219831190703264493458449268219117676790387958231411765311494498295987621465889076606031900147088513277724330504664506021332136037805814700609870978750787821921194840497321004381990177935607048550797918265531744257364263691733321007894646457404851037242950491875688591415410971738758872319480749746145702223421511423725660380360707029935063375912381096959306852049407599702349865110033700290996032258672001724105884825353148370654839546523962223625220897222455543463838314291351013840723602931291702819460805340445387898683796085895890158018536518762508054585954882400223134383986381778480660470045609380364469906148018695658506996225968473880197540542973281856420247964142480629156146687448472535454764373810773279474087802298834310169369938872153096320221703059193289718507572939119824107621750858147218298064384190588627815903470961013920364186140987321330324675555917361668769425336238831521874660768784535751579240757662514104805642245827511123825467579448199840369754364693928501396673995922394622257337613156605249804056195452768274695543041842066218062028263339887114791929432498425651048768220306152391126610032319994885100264840870462473015368102922832510473867843402525819301535756670437663809731474437411405937223182611269586632037326697097948514319437426289141041340829831089566506888388409836314896963125798632457547907333111427633946952957842762299574077843583265571608098066358435834937831010645685687394598479179426407637937692971252885917425038241448143719942680254282502781632901042700611148870067715331548451003828350086327758831628578946233053396686343643700173906075683129688556117357980888124705529394990647716233854210689041626711091566692037295858750593482122751541404456404624248671879809502714233213153353837006396036902455761437052631729663883342093712131954920881259394748983814066503391486990489927927486620847006049885841424616378366628815876559756265462084796026825074866658361886005020651779614296562251278944393905997779945341868469821825544704283640783801674439601267651712023177687738369714507968550497716897075566130926720448678487719354251108630530752863536421771307699373506577082388769119210581806340746611238216679898803290639062312015454018166782800347341160310759956629501672867924565188789859952740304136523119522620088464161711505624816716240887778994578994170898842528249606525899261708484319949778141028618918676430616311230726758445815980872764422789707912723316832648986229693631539168739068217811536177710508128141982975032228511860065732535587829047053426170581710589423212846598728862848193455435014890007420974889787550929074934392217309699343654761974957492189264479613307630374115832421409597938341561700567543166010291666231641091971806912497249083797841613577292877091473049392717363350701448155562521970227785857345452613353273032452416621660527220035098302667564240806651203281501163151060048286813433933013623917838880844651101211028595064761018034162246930309119440076815304681985464779370086799973102142512219381174641138939140170606995520604528916439164621893240273094412291215203785699079194176996454193555590625549251970097517825065027037968673792718783384048685259493477875923463224340724041463010216849201059404235876896699881404239474633777497949427444034359027231706059082463095514260909232313882964533721738162332861125838734665544136268909404073839180849583751523163812094686062637365022671795999422265943712027276886902676209724343020889191103896960831373808969441874881009048388054364044492574367668745302014922606068763655297020559622576220733274489161130699390974391432361986427072603218228730533328896233083027623246810110837736078238816696695267327318691844370914573054701566703027538757098801756417874059368761049445832754133321742963483491663120416884892570525575536532360496608848749955484492229786021344058734402101832687958443646232822829919338430692422470463536129984849464375241253346676774959761735436350607861533633681310577106904150421691356936938301300803705894460645618452396052928260551073053789588070719292620529844777046297184271990523245899036872156545394647556477599563810893155771747787531576555475256626387145398616868123139270728509532149254364481789684192259169936532266456304714882122663378787607974158723196610163104741061664459291538994111413857589171949435707838883626312839273845007003068262984019670068611598071652185867455340208709478261430268252394799796018846188312008239454430437017218878340088038535684321459277079160522803421179981025983657164391198676816272983687576141899697072833006531045305255466419774639647906421978238963524151929434039808103857987498523108591651082635367094994408648760519446526730204723197299298133997470022463100481815207553218756664140583125668364027652535765253450527148169042768106078049811014689064029424482209223226548879982718749495546494591253801455515146205485020251498044135090497894081979590018046751255184105683889701627108283994538471992023169526893527867222659420627546757917010978739681693054400215095743938237281570815915206507638341736196235621583611707293174899984795074588242588275827188602127711573534196504889352355736569917429274868966009866561414619689610310619814159195514657512322017353644060764935942910143887847269454822526202989607045952185586366319881960928397270327559504963866295773251246534952367310670824702804291124292664105965146915858747783054208566242472937361661182040748109890295210530679029991431810209452628356932903205899860096663075057067795982937109407014531524389763021845859376490048796785657278682561470562985562987888311636138900452700139370859456752743294366877180969124017282420538956558482380443607139941004349656930112648282683420111549617672196462034130014791102286790084991635247275839371346611055861906086544475618510904859155846861459710360191659167753650459116090057001969818065423424922667167180474054008823870889361424081287341241236491088504109695341695725554289934792163072284025249382009068706761005691687139374628588201743598777122066672237387391745270321886109772011825447425771080596573890728252765732323881611302839279349915692069265901778707568439034271160746625340774599021928383939132777223589845234252158444268243571699710523453433496027971262917927116873398200513634586452888975814046143125926360376978862955645427411109808944235653649371122586409190099361478747272587244104438790337628466201264333359544680454296866508240118107756491059578469919462981081455435026940156038967069079805190176549770939732845374887920089575848393201672412559892117100746710985559683125082556126068444260849345742648810798676808542089697631165369025371698603948695640027528766259228189501249638923385338512249344217327881323059313062475613678495096799972134959007891467978202009009877237410645778908944807925954873122152407193804387837446974728995107266469193234645979497042419711321415718583317438110395810195344543314894779530308390465842554207546186845440283993351349228975342015387923667206515176300143983943812397584637487728396225347146370845910213933341964051559906838728046319636537063115022175942632788023069083869650540519562616521911244009070547360342058418516638144775827744751859112859719555129693131798386424747308486453559019042287686574026411145488135997687085563591767302175125885399516933125148012733295043273118715163485991148731200590901452944184514933732284786963575063189653098432218715711519620644955143031993181182627511505678325448068635896149716796569057839347638448931421520503844538246973330882803015930272794371664256652635664267066049303993828932312984395498969741327778578537136125031339206715496074410947696918139663695100641839079472953427207920040288621798607935451818080774386712112840253292915702162277775157711941159001323473274959466147285427977566343871661106475888475903841385885749153029904266501691881177040129366533238820628395456522386089841812927245868287268261717149938609551471108386739125546098231150406179379219941594807039395547981569642716510966712822139593312733593687650158643743109155866825904219574083797314705680118005012535950276610285538999320329536154812305283428155340958617634639920086172703935726958433301382583266056263896756959032008766494068034932166544760764734716751995799507935282485575529473603228215926009543480020982746470322148335790602746525276511499200551821187762551339958281718563209024345167184200674691000127979647747970798880110965275746126004189737774066682920801496803392436317057780225199234947411863250075785156898861965457642553440487984481418663425323463950576006086950862272893336952059405683354235544564270345114733924343120889923845712457395132048187576620084672346052447120301009245488590604010740098846523945057866365542292121393762978408504660955064882915074836850820309169458470698115005223432617567584871333094279181921115235689154636948584705439644834043873818635698490588053958823013658255508631397968962982007597057185928425831436001458949359877086334820180200640208684919117757761745923058459882884143660441391830387095461048042535775545045763509637978071235825142740263187432751158113203390122275688438163876945015930569942395347066986077186266533823321559412473616604778156416240267022293208497348428459923900944928944239732306317946045691435161880235928839388331478567223785080827865824979557393234158703039328128038425338452295005591598689595978955872589173506495530144049035119191667470841529279198625805293390138021909939389849218025721832868215724449960962427932895527836083580092498001680442746077117254258654803308422666248859808530128757440504323773437214435388957989454401089584645666578759592576037646607031984265048568886318399293591174217032271436200534815741235181218558129191352715321375226348595748102806802389526231408848438355544816866656675470369746920618795062112670223810550540852926249907110648396635680879861484326632765105836977335389630563256702646415795675745491446345580073974177803045784664863784491707533215427038944432178892086111567341102844745361200089882062730966834622383096637336122131986130307493978970208017860554921181865437921314557075635820199910497354661545224397660064423707682055094388421771754043013179052306970289967766307713262438794104453094787535159412947561516999737560369740646860959261294688784031249626070424877105422492187717502272049960372407218548661301346541753874137111504617967819559195829202873074364861167357656765465687079988633472404170557756695638427728438753102592985884089886676477334305592802744178088533297370619336581185131031531707427059269413449374973626954184426336555899882480516263889514799647647492096107002176499525759680870097871926132237739755852859103077163447177698135954104760908911724374581488953979120067993988868418771384703480859600711786502380441973712195916871504303005743948780266988139941919952492820289944515865078796146969450130614208162538076293817296555476510755498186562111773261988489227265107985975666835807194904091539223512666925702937989960988903804484277733837646684382419099516708431139772817011366340866271818652185004521466017533065380720799710056850257600791528272517221550230230932352135753752867675758181152907571202598061604708509946933605636141454438180246123327330240389174573507749526084461326253989356581131974796080488487112114036274346470391101260715277318112181903457417799780255789199627676219727871230999704359960278564188964807449400588856074948435941170020682795761816333747530327915750328301334515815877235942864619225969337566156336585736147220371464806040198041423134353439286320539540434323358751511563943976264838237687884493025961458329019822540300217583835014276740525306698632130417366325946048752032530717465291884026174744699002361628389417156856807668135970718727467712004704390045972703415037170567330564283001360889955196256873801090378484077196895887141870206808230417486757506748125225240170285615405541944590883472012078898324256595972072259193064762413634464197348323842783701691111507657615703771655631333547752657483555921469092014249960327959053305414693699894588165732619337343529623195909341405956726659341428528300237033760021922966316982352719390344765750106092405471568520987485248781836980553059311591020738737787694285790499675018915403217441566832918388856664942871915090783614646323430966882667275663402289395216885198216675471996938912977065420517670970338006083456838542526830089015448322860795456201243401099349627340532841484270999802147722491971436433997247498645759724401228074764026326213777198566214804520898791899506585832744398390408413505485970966268836563730948698657383670542740557581008764678023100286859753422216254303367768507978767234663702403475096121139886520300772590567418941872267959006982012456963952205193945377765410053809593697195416882851020592830839528989791118852989596784863674459135651207099329080473225460878755525788895268437362127885549141096459184873561051790402291261326628247637100529217875403830343318528244790494997758977331101353540630488100221095942188704527733129392214413964513258981947406139266071116544639180375837986758447165041847615775695212443132968357937573297722665078218903147081395381983202704357787272773713087841275423517729184793110404411584387356543796837151945000818829679115214658093837912965134334763053787213531775151901447064155774611486262338542844646011129100528673982117662634016099903274920028724791850120793803407881934528836563963118920337967306451611501552544214302874741011284896548717169729670242093354812342178440646727552470446478710427094711733159963523293316490886956017895469539876941990113701767292083861585034776464809040050535966460125971349584991930499892204403781925792079319833616951452672698564955340822481291338723698691723701378882606364127463659949272434462389708385144522718199872817850016793660856766625828493950047952016270541852131011701776028604617113058353729179874255067635517038496676808120381388528353035269669835048148671253640932241064025852236121571907944599531911200912989542507707456404242879262753600737115733882165429899823665101761107998234154255641184878304243497006508055470233142334392613446169906406752906722990431018754168884642833866888873007520800070916119547233137276761710322600143211534899952522587010855350453342363011009213453338760675415044714741753242944148543885240057419944712598246175823744229377125196616576206145714245855801228501319685900012628865740137444766507840800706756667447759973451190530862527610063124519451903265165881483370718447443218557241282566840197965196578606406718338232033577361267007000373829688989879223100757684251815224735780340584279311016587874878525777947308972111065897620238160593541902205742597943500294922221196566857569329904971026365237239463472322769770633208647838892089443301981534684753792059979421010734783578998523956321461837897288645193051882368217476534215935110354108641798395533973657694389209173597089919901503266830933121486108876174082268054369858875211257912456983748746050026458687183360796926130116021089437628545951175647037281338554496507870127054038388575708941433681593846422815981974801785666641261417556392608796163327588651886196573411965230197569389127332663480276588881981135131172142270948752261090395141836373549038887577816976628480313858860836081867185759561363643837704754795643669138779692247523933704332170379609520499081179694561524444161917911800792689104490798190938077168553825472875829212911145356155835594779307548046273907965762868928399517724166341881269393576286165381948145229316753159349581191237231539959938474836363365013783984575912924126835254406632558357747270729942331003791246093063699441058465406951281710686353626656330454386768966000853737749162938962189539470096536139473244249884819290335067893360816658094112700799383202867424091007790753729906945472108197707106191818345107323532215504376777434325941595603933773546180197324179002126571901136746652303254725920930964384210905263197934707419276209369411741605319115879384845199602887878772182824845755562502020630750089494344676009318749485057833592538463482514348618209027927674483802167699306866218578244353593991186464156255500985078799417351102156596010433803133635687504854298571831871192534303943612521178075649101419007135234742770185751689770377858721315784711728874075517070671325887314994683403201593516711208812140099814490039721238362005038077597142589128809163036017714958733098398683534180727306392938940998378435956981979637404104884742343772351378664528226790106312115617599926978086198121790908760569285802799395202034579862413400572387965267467359124092368503034236943395511288916755927704937973192226321354545045699429911961185208300342134743897539561010756947998242408314203341374881212455230627774490973384273459006685087724037264505697229947288866275714977027218327192626098162100128931740824623543529679459231831206623071458925300007662761909751613079257080005327549833722155249720624475578638846036453770832491473866958744250087493167541713416973524363031480329659137156595664121839537744711496179411596110893503810629817643616829688070586664978431312618107364012831662189407139742995015172947824877167948713790568045602506107709498204371448093773476584005331790654503123737799524160239964312913249841683355558030515313362845753469591730842087658039988147871498445695822733054058129331636145474039583705698803661960254049367806503417316066165457601250364142694757234607202249594190770383653761183301224842776630839994852424084637373024369783281198791774547327756627813055398076213539003138532470823368379993770588212319989339152023193266057109757893170518727077345977574129767045739403963648997534048598044033911740784976217993140525931029309459182865341404069806619009951550889239100882939532327265122026895427576741315884740828415915924397400378486455839990909625614631913143018275025040383312922725415930151873783351970727585920783051252077462391706105693950716515635845965531623968923245152352294527129802894138143038884354005423955522606745533679117478710734648173907540260813094640967863743141908158555730233445692177890655307322812379917928554623916676112303060734018678865395569502853882236650244966937016149320490443625989053849781691612716725279274389609471936015057564386328511253685755500942510265695407435140130134975175805702649282531683244859504604813256157912499861598260519798957765777611051958767147320892454806611536319874588869840306052963169505876312633743209802948795226984282444264873520752069397785724825054007596198423229510125822335356133881909027448825275816609748007936845158946963964459367594031591133292288517691235298094514672240160770678676823445496144707944071383823921003455686759141803899644629533822462206536753373549565731835958929132753688054843039667101089197353737521764170181225932837868802767328088031637982538037490241498872384160969210490076557355816627274266831946313423157882820362939724220665027714918604254916419331565206520462097821266968937286441436738721906055707217293154718829669675256695279959972356338624657735495389095852494209639191466816738580187086450521023995345331811197925627502363823200093323073510510891124711826455760575126373211709397050763976917719058529527005506607117509512285870123549744999909670616615090826601184019470948886951114131814979753249119860003554793139785817347698882975381398670433859783686386400765118578040814262182809029922371867275568324694557255493385105782540716575023496002718844475073563415113751558802564086727293207317390624297518446877040142921909151725617937809700604405772136277228208244914602339304997080540592582368416189553521366261912467993656593953942517141485955916554039791868376884484800305268702216035742089738591596857804407054817183903525997721224992870992404487186229685015876158698627366656494201093400255379949772853104418778853393550691455191371972422626610556179451097265796524463036963281067440492418331104954384488013738437517545188909770235678442108945826421656273669628193387437779665094055875784160112788137412149667646960037609330459194683192324546846840135471224608006916976966052864861248489638489482655734493565749686532256108538595920191803750727646761016544180143228191795346008792081959425642500330032683811385949506481984656060162617207429993328280549330155138973016691824633459699907100375026854909712130770006209240110447640906709033528894608092170415994607116822717353158269996138500603216298677878982869921965337160597788328538358411780680790080861688081638397741543441055109658989264943726192420483693151728809642472812763313547458957758871908706001382463409034432590844824044243635699066832873913983828478716972376414729033073250044947069755874955472224406935915940204469052881567096259957677230888956997149198928202591626007191077857975779248437856825741030100529224829980678976018613998783959557348655836287396343823335687117912025554255802524259154483045126304316394523135753506972656671991909516197174602976418371586301691343103927499564738782387338631753989923301690212915910698030234994540268260544486625397521057945546098263914121191711685056659986921925009498624393321200689697175228797654757633509245254645311486434684574584210423045306356272861762981815999749302779991158517055358159734415418741714525895260934767514045981596143798579203129082639748132854852488485638593004649439683851426532215549727293800654189786561160546553362123878946848026010565084795510069551058870463038082022890506503046248856898233098419651035184412654230101345935152230539145627711931517539130478879323181451634770097677902417332085124945859707547063728353205126401951795232401711775107832905503281201463201202413349303762267501375932089552442418974919160059792078337318551121067134936840425213040511459766501921659642730210039850060502674320063896924848089454128984271854686329074677571443347417889036301457221037964680801649691843451880209367398689220897207257543433835328398093077487379900070768044941923835398280879729640722979179417521540279909077407304345592473884055957688865277715503295058851859374102836651143236748683914452072888411734240496923841336020331418768100267041514039191400430584657825716905993363181099444651981432361548271675654634131088568646269492294611609322758230745324146183143407513310596360912364223335687145539925016222031131036289874661642054803623766153859048040759226162088016635273439533316977800879875252214135158602923534006394475697483789487852221173174303314719825724400954944012098658876751275532901202951668014327167976401409266271251850783933035957127061526012340347316634311166800986399553621932405774197198986917408270627673581750262694187360033200241294929084302181886273064524492319548087553568588893617343528405160747563715355010526447385259690689449846489394274477978346118107057311251985805067470585882986212983043735143850549771830033674549709936283630780213942706170759615599166923599994572888643678353206706477078020758484557283254512664566657491320669907657277659664247876826664517821192814299242439350716853844808392101646550521509690751370877213301280184364842210095132596888855803640558794598410449790134800921979191853803737311890727328472318158522581571776317203340486290162136311950739399110217348845293553925022604908871725133416045618571073624826950095166808714582269778022988007442642423502080388449128976192493286330686119673775471005682993529689286451164882997517671042411108249517154524101688786940164927872764693806035527890842134835761505640089789648186328080539031458472965155020338007410067621614470944097221576185750083517533903667669169385287541576702042687247168106157196437057554370094360258574912382302455569316446094195015377966367735669481083654220045881232529776904649176702758432822403697505180527072600328046024813098967832984689696399503002891524254324996171583534467182027009549624701286811729059715410012411807189169787456003450415880227040034166519959122652132639776994142393727833296462907826199210099973781244151913095436016277735402640805112762768350216625473490973567471952565437865795042783525174832799074362483589872842226010823702951991087796296599590619624704621809239572885789882176923074386644581771216311952742516729966925170411742843793557285771637270410256011779790130849294186168492225064929100247125085407546108350051317613471612817007099980430286684943164597553866826462335214450433412375162139890080482856226345957116939126998992692882724410901089647533244274135060900548216341257697659990505612066977342336011543774431393228608161372711640083435161786797833061459918972452167379466771808106809491649159928217892626125916945809575458328511011432212885728720988222529695399103053006138222846098338430117950975936236835213007947081875798035754747215787732678353229698394013383196623475144299002105688832025495139166616742890250347626978953608935447184855370576150238927225801739372655597881384583981728484811838490977528217798805000643134260985614868390956741314935841077031374917920011402932762302278546073546346582735967756827640400187920260915765888076233457023348989709347399234242315688351659940655440555200752943516228860348429913793758886113942529133651196032283687674737847659124781817085755236654234155663160987003616087565744536851789478272713859594123775404648199327478116534546309350246808689796981928408557798102803069078424835071604457235738368718259785994484396241441768030233144427894619668532739038165021185720499037410728073339695674986673041523242823125586405671236256958299415771228893642541432806065410386221754969623617020268861063577835552179911956302997120676610324229083873134939970375056708361697750203981553694785084803408222259296434938545140214018966423049880491700984742575407240219046835890580174774163527952014613370001492253761237855291004209584534383740094459597209807187753498070498301580897378351609036326187695278987231508049471856126545916832803373144454885591164696183054725995453447454726969854951857297464261955748073097097708265368352493699563927630677729836627985942999001109274611483580358621997042860785277758217056840767839155564534411840470249333896068295542616454539242304832742647002531769593380641241884266562240285502298789775803320298366685184077903365712000646829125155181906906262293425046963048294340841350406934207359653516241244888048709899045572148257408251284157857013518325933165734006150390700553751159347467462492455756896760553743720286782077408542881510388163389120618817594145014140818106802033243021116265440314094948049243764676477242006083087198041017629007266558159772394719846112379318242652058242676717860742620015326451793174071143595201288250888137476535235414432416100870908928641619506731620692431699371774685709147021614924346578552930095909973272055212902621832980497152067134474816172769919904090702892138054284910796843653818116958466544663637337781969002004795435025168567993551344707844122187902324720601194956051121460231429814011152735717590972387063672607970267711781885095941954967620766403118951984331273346058880839891697863340070869360718505778168899214309872792813751597112090968688386352115349080792658775078768358319987408674615873259263249314208890110410467976840241068679637646850041204559186352165681397371690598846604071290932758071792151378821764514746401798199237707498575173207741543483040336907638689695708787176540849325280013280109802650869122697827767254092004582494057895046456015772311311546573907079184004084209880303583681472102277071024282051478779107279989904546826940093336914499243243044337450957186174379226441132490728147020453605629365523699674005415239069493992124591686125418060598473165089937258815468856224613924929769919091087260461401467091331051273486713483761898194299840018909755319985035050693427028838315810568026330754620956688354457648900196096697752671970987695702320207289352238222095111648915527445688060069899737147001465051956333685601816709290011561340322214102922726930368740039060656984671462751102125073068514571069721801250611106257587834596735220026307536316153190976538060170404391419630978011131186276140121236585494857612224094889339439653466596364624308975053501176247847936426767973748373032394136687077431054466797428505333552400391062974565799457337927141808040908599980448648312515937489148234692693753354196396223111258019211013383582153379644805273990182152377257538334802230866578672059495446718799063674993824068828060950228451758740056316472958375268621037063919415516046079484485483567473834189572675017207266657687752977709761233351194892495383120692978832358941035918848453905584811076411357494119726892353524232872830098714135456974051869577207504236628149852389321015142109478185378561406034808993809293492412848262720992818280982503907382073827749105832964966537828219195994835762770816511527061324629621514308554408785713009179490917672398143155933314036629686541474112287889334597034033970226496840872986642246063826437933588995992680940965663144422998009664250227504491188996756784341336551569928810312723304461553084319927946461222857458894624092464713039968024385212437959888823619905347959944566996408917127658097692179527544744509871062137890972978299432291276417132885637384159236871402317036877231647675513461590204787120572634878360082212388530323221243531085070543529771100512483498496083999140253910750274676136695598432434376947735540093646983958609524433099084773933080818269955825759796201923857326330088067220227251765023373028283411382397682532490063894421269397526836284761724971208761870016090271864787311278946952189210795613435560044002402951915143438023048562729412217790398227318786777118785150614459222475651860784023568416292149058392903987244968102740078291687961511458006066410008214235049541740105709828256523941656462415807309570338027511317438874325029084819877075620182589055021105696983030862035781855841685672003395541115088105646625359324962431079221994272132571842099382525013286938398057626919153205359900277020966414411667558691236823222647246817970110871962058395447306089518122912305134107754610866510555800089320249549889111903474168298436427811614450778196496763508069988991191504921908483144561347729237163871203236554401123969048092726535870116607025507608673456914626675686299903660866309732856213911898200402777000263261298031347453588855476444953873905968645007574168538067773730679447673587608278173525077876055804325589472139173772590457969343904960376626844157629620594526136297248234735580156582715818066551986301148350102612021278950986948652544817480559248118480218059870632172445167919972288268077318210303273125225367520913204422535293429651159994579262477377753404170813576557275739271326379776805759632220375645330963520578443000435753192668862115143146046667633654368795249299284009233489569762217606414905699746890686509438974699127971087129253101497300913550824624612880459699788593126248767509643493242746980778256834431568101355365194834049575053090087005405444183826920258396043651852492158556891647020378744317198361936161770093537580500744377990943612673204266270499098371860596251171491311064973766627813683049366254491682304781095757550691114893751625451808955428132858970095495060171396538267223592094606506983040443168444876461945301407827078792166887451413048679627315412836313863887036074487143906449012524299185046169118068249608506102427475916431158000594007601496654023463537079379787845730135775660796967947138397006525462759350457336133433585597079155868738150525308245068810686670347459976509277658482989293614950912939881376604081813739138656229763529697928570113360357368017969477297577791917158836803797138231900266449758136081017157360241046417477343483932134017250339968300115793255092374600115437083091197646699707393214925943314666634707307035536284733182814068300496264826076525206295577245242916459031411663332041105980544175819619538869117431949394949990651360694603929034041922676227572746617943872320881409467699322236574707033345290290138713596702603681804373921314776204126882686216388600703045018593544387745534799032583569899818343777455147872423562555154180003784441920949769852770721287209765395939362076831522861064922284055302070878964647663543077832204323888646721672289760730200953865945400425350899980367472119861312697507462557929486317565443736249234536154309382691001206917982721017735233443573480003782219748377130310744072460679972013742309504540783683566245262802261496242166585179070801594799808234256276189010817858229254570589385842965521879327233368256378415818356612600468183785185632897591479489882646727119240965654181941699245641724396747303753193909134556114312477691338164393217842034480628365479446383702233378318757080999754526495391235972559112245734918900189524863932191467103954988941723202891301972504901485773929282428641446417792651131767885735641010890418867488204174250848271445134368876332319159583916730267095826761481088421203754880118873389725973771276734935063121428097974846316352495237235443512430048577540806497017536634474126041378209123634685337235993975025524974875506420687912706120744604479266843268686089287071587771587929281665821647252765140659604776539508885752111333515681445745852341756169362005073859389359001944849039001466521766435593569637375284338092949684983157783092245322931579204656604801905980359367331606331527852493062875598301253814683753837898405822959202110620289189144798183030438600353310969445224107284639568629151973470697733236911124314084216300824222736336707514617235113101688473267308288800500714105055207194242684491037170210000998283130865598061727798944105514007630353126552530925271440635052596063903944466077773231191649415903095620627189045531458452682190861522175684598284384018605063043817538349252357628061848410450355513201823227518479761695136610761901804813788610760458942189202965491002638151651517226570353815613193462030912537107239678048022052026883651882453630237609640893518796807684257270073696840131926072497662296657753357435668624383387339336426309698409749981724465543592168690349407468830404297377820804994528218218232513383884394248516076478214244567148797332529386871014536918041763534311540247145071268615115557939753462805244740907427675887649412619695695816863461490043561124800302357772119520562163509850359681521409623066134433612481251056232911498704693824688943504351921464661430108454849394977591041959172707608921226739834334480885534148417943630879265230648999128755427952135105762321178315838034943711898560766287345623119634447760368953225501854597233070911877558714855547973683392497000549922294102155683860147536905530723173529700343443588146514871235142408629640430494832832030221419829747034855127514012225657105790905561824351240083202378633741161787158965052868152802004160020166708381898348227136788337325755206148028794225259679583067154081247922987571234264095493432341037680611285130462377279510835110935558804055717277090045757413156034877466394415819721892114528860695277773335304601139804768417756844421555588522204321703130437715249313439140701631973729436962193151957807284050230232087555580568984890275930876653901792679051155559074072176338045814488586186790386611800343365905559831666329577173365515539180923510364712068911386852702898042988247054420877558158017927093712452249809564652788784880105955856422021730213288583540041344220198223890129642752668629182651022599195920409185946899845864419430990984381715212346080988853664015551871461918427687381302983059134847597675531495562298952974992650116995164549078246085108824093331437935906279374727612512126097021882276372246832782492311437781352168326519743955553592834915975129414839385757265590233098011741332571586532897791510542688883615106714630348314102964836051269804700991639673571541669848510599976158833027889548056711196701365727290904315358326703559444244273636698295773624473040072811757665899732307998782377890918084267704562583458919239597567724811173405879447781622478773427578505804217560215878091740238728053377011499415676941692533807141788997349994927521233158381109943561339825961155090547456487306319365020370290502182405955502831985729134266035523420306673163881838372582845525231376455336933677649898780337551482902461243780897332793332396931629636280544077496917460550569179189262805810210341278664414418180104535627212534512320990790617259840302242299549146443109175432705666224591934345700349506781519997474256756950891095600480402749262702427509941614620043231694252238713400213674100272791057429866491878369800614106190751297984302857551807750562908153148983574865915326967695840351998248597393896807612077683120143836401184826051699248147936300169611493011888743796894873321572018265511077018819926382277566296478804061135755979075019070205554035481569457293163397949097904335868220597426394215346185492225945783581946182266268469883184163958641602310192071710834734872148683732088439061920505173986460942711613630434609849301521318130753110661155587214667067982145071353310845143058545486746740499198952735014386763643566509497829770371167251567328132736110648398667089201952601883202843099530043756007667817538930179358804816138957063592617761205099701516114963521972705598058758554219733614564202215920429572585808808740008675275194121651860085556216906553816947302041955701436343520477212480981456813038977550418815186035515906749448444229734473875312548038197343343182378961361668981111536226008116157934081636351050902512946046391074618405660936953913883526556269826577577373940237482450687486770843053924877335340457830358314368543283552430895029826904762015399423680276002014859727057384827697892073498541520237348579494704172049397883395983126122971636333517247475718711931315783231936383240635254568515067834727534653089956065953922737746835929416862119458893594104367993945337419736204671476439120938440078620731420642008173184799646728184449881547123257466934184310267658488602417997482478812036302589644300983652127162447795482488361772643775122200187492563470188815425529077988395018950425390534769183526223576287950066250428465701694780844600774276082468562578579107733801467335839740806179566994235890031975818212091604084904913176372954644420509650628707562753048586466154122055952733765877800326465107062375276513111863194204368972278618359584471877251722550510775518278293287751421540725881672884310643517527183130832950717828713832608724869408746226639798140069973688580126140981065539472843401762812926225396232610542052900276365426817332491008674355842038913492063760287117337920886018583167779152824675973056967918981667553943418659443126315850682466765269651963038941521611921502524622807326159070321633623650800732835096098211326216662292275182024125067447410511391654606920128291586300577355081482072239788840635894189151104666139719193112154922101640903153554753434983583633765124174914100789489644966286032981595663123737132510878278927926399145287924233112226554463692264555886334172733436422784095510007228337282455759952317444031697232807271898794283019031803806994531471990025860049576741394468387299221573158352186386173364047277110847410849606183687296225581807172407610682203445641793577177660250718169654974696621143319193697213196202641535399723444785970055608062333687307681930455442224744270704645167081705934963654270811243682214213877338515814748602184745625533041177903176069655749777092284900680810333714711328453998406726957428978396323031960298884715359178994479603078703533352581664968234726315827769295131457627701269480200153375049733214353194880703035374825134703163166706681946118435629194182363855336224619826764933677911754650541375323295729449770144519735227838607403867282429067889518544266064986020190791413625148088194692643900839800794473312962221646973982596293456159390835724367210350925728683970271309798874583825748479720527212732762930676283760292341865988722304887879973859319249940364768638973138669034530658659252471747549923445332634041727363343476173794108522276314600195521511019749330153826088655171852138999062763605810179093997699720863030739274051722637425247932593180248319813867458173220338995464977683288130832841425647718066637589631591839920277942668796046609493960663757702257403075157316106487345984795219969778722442101604025259438581608340112101581401949541060509932209323342970165246966761328956260589627503837856668379575294294899205118657060296308295864743078984014182107258769245539803301406180865527181269034040641311251908313778062564781531198685460761586060073977668774031948567279174044634933676228704418403616879168486738897196179013754353082498122557553284902040800229261026710911004292132433619023963444305535117998607478607867834528142880210145298095299030824209752888222730099419199375413194367941835701307369427229158322096102676658591002089557456874820798601380087764996131188227048794473185250386103667181168403366359006786559192184216764992774985224426859361604385699956995139886464106716926005222190632336799083124210833311358979640602750892995649071228944565864989970346900160377802941381875478520272569714530584001302493795058285132381521188320824716342776344476858070282492869401398075448236787801560658834245023102598930739683560936752648386628107662849343888219127313326401550658517274144854381302395199029037796865183498168838413513004992883553544337717335477159432856024339537766234608427442342609796716652509260917160604797574892613176136315587774593627827630694167258090787814751673915489820709447266771613478911500947374289279167393431098512570761192492639983564372890781211835088580105037832949216771371827444315748402278342663042773474956784258811943254568614781353594314045362922825695547292480889496321739400456713481089772905730696444857278599449624483956996575664809021434114760960732144194282281698946737345964493159778415360833130358009870511115819100393836260035614391474777747262985576678084656461713557961861205566575739348559243896706959755542925129286053504784743253745683925843767070707874093304535632988823293878713142018595559074100729479850129929249915704787795874275592311543779242484723786527484282886404471262565289393191328972026285629794469702632349033636836092800684086091312734232342967376752034280801455574329268237101103769561521444768975943900183878890597098877216144425532536863606625432631388540397518860384584157214115312571696972261561791132764515840800930268778869032617142440817746656056255429673521801467759823896565868728221205501929698377061261513779759414806575514659900933565156114229142290505852153355285999187384347656415446374428909884270524264722107095068655705701558709482054307799989891392066167217490764885822447475443014399943862716089602394611100704386570812752430504615768533237895097598345213385227659518826745186774516574611769518256460034514260099700864692182342359917253214173522813078107736756242289288847101255450739794187028097333778017009645827050703400261150812193969854852152477949274228546129721034443605074734523947745557943813739583393487238578469946001783323247280870694894626239574456104687643598795712210167291487828303818343928819404031734894646516461763648246081074421801367541650110367951870200844640237263232625126502982794005901779745297990972874259211696148007917415449194515524136616407262916891731582272668865766192139290238402829764928623458577693048634672125907754647343952096804745376501295391190737955351842679264858033430833379242167386693848327021091108799779362221464406819840881383862428271860431183594160883959177987310702471751928539173931477233162392812777128126692603819681740739321820530763286357952617700638313647614631681982436643424228591486555133509110719581665047057525304661700565629858385219119094536108785369679212945473081279069724494244408250205958531145914542799261059135914413166565157233097651139982678670201645701836215717555587927766627028528062959798753101815015198376560333351849572616259596855149723900810756629033744212760134578797906060779309592075192033826541778380888262125823334889447363053312928992720854269681004031272931549522812937771296115894609690001756760308630628421454551527263684755473481159813940381238983039792173872963734973537970476547451174889790295556865337777218505784106320652860520447385109034856648131290131829758438576633136120862148325706245274570246674040305683376252321877033529929100941931185969586046480455521861517009534306268921841601048379843211115997066573082698467251114935409153933050451390247676961652185517422948934703135523199645295039852601489769335011172185915439959777658825091482384648471842915041119502105138774088321810312256395268204513587743385575530072979977187244853965050992843144741658674983082745281988632148299629187884425170584659985385473384214377702694704467270026842878610241745608924437791897257868211619265034270434623480162166509972774534719699854398900536729905976703358671437784721124432921369252072313152327831952654273354641330323818563285936734053924203627476227509841022986279949244374650261550970531304771295348498502658450322693423683494298172524053113401802981540598822634218149359188309014373772395849908124253728190965336549429045447598737265814891571957636312864026454081321318442938763508785491415951454916062526970866218721234311290948166572310563618238486357431215576490054230784378441489051802416681424552683570394933172504458530364372523296734106056143831428517003622686762545657177905268087116010204609579198114663781717674819349916004481182434954964806280320787831822433748654265262382114276352209389507460155778719586518464605320049590186232643292302448031995700654601385869241984948190153535705432529080250711558653755275131884084934824904015843093138734658064974292280464307435762164584996126912756735868001765361491927845826877308131054261961110421341994544967170894045696379105437070878058691844963314612533774867633283318842334268717768628001792988575921783544942990251718347198017050700455132650786968080829182235163717617581554316963267440039301507131938935370646986218839947934061805262659057026798308502060376809484104144713754300337294413414873643459938038915854235071368484400512303397329133267016992930625515286931077148469067288805596372908171925010863910216816468653932130589151720801274670215319767468058003602427425122374167659709557644298947954263674892369987853204088086651854378894908918726528433592339896209577609952698876776580214372959939497509412180529025580574539546621730980612111444918306385074758909832609287638480636148028746044189894983186638711855946033456458921759082289552272323037521299602111409320436169406291077211982379618716799851519957512607772260920389579635770925441376025579669890000373402829032589705894223449847352657804737514665180035616927368973244887216172870740249936310203446789891575563715289765826196604586180980135154448469026196122338208866154159381102880241594307689249691771538658345003710349359327498666723407977063995668040104028621580604792464536896667606454804774183409786746353085501870457766803593975961202164051288238701977771716715265551372196948259140700434209340278197345735553793136302154174895661576465634607150210028991845591627348429117822107941829815263291418870051362728343705437399510256658794260477633816234302016595790458476506541927621572758688074050230879602325281911093010805741960389463141043839212372173589248901337699726517603440785531297830232400931845099555254134455463883068566005963793240974525255349017286058518868618660239111554315867857642690419791449760254475626955905843630200642767285073187617796898638900113427779018482966992725195278388996743778139119391267815699086134460958230564372968518076492456707247185870239355175690487043891095553518050719712153639205649200214630973686253712670449305034823035388524277367259585183690781961622854047032132518143358713051630824828390154542764151602661956432552569068125901552889535092800959567043329014869364359507870816604394301864957120979408530096254557471024847516732475068553744173520636315373436735546879088396065370769034589364727761201498315671261691455840258836502821505936573052158769889345453818667576798504295116129580077019531545498660092218850433846285664342862816702905352858942486621952443878963145949386322605086887742724117289743933655132343829989843296874635753199124590708868137057462044963364721681090313341719599150238887238243870881887974156022430160982839888590965614305285721215744288346045024244196380221567706817486843443853169784152611026329982926831056084305449296804468850389569220433151677580352236150955121087631858365061011480936466339679694788274495177711459258708615963854227276589785570293803265468352091251701688557233809965124181141756630905364460768481232080075445242993271859774574421652105444914890728458450925984882517334541630124409856803206555093000155265563869732579313554082330969190348432614780545686525951354913338614669097116074684890015939482462566618940950589824401650984776370810004646689031570142494002154354687693000288793187738933563146651961946005934132864234956441008277004010246503695631137785734348875140536868678214520286131775915231896951605872739564720615343271230652866888615723660090434904468988513926185983212909343937734704832397546195751980404930846507704222721157460591107545548311090996651705997153923040270290280823048054796830642499445930430768865261372562941230410227786201530620699785055473160023095729351873423960951347398397519110472688945593161851394366847094865665775698934800386246374337831800646884932991145457415419897611926639991496640737003051781363700650419661935587256720552574736654341738831810753865247798368413182655373902778414217845747083709514391316352562601286600934188439058741631010388146801918677148212337218154333753894692551648617149056687248942717258977424632647648475999556592103577784245139347161183094480839361852449580727380904245690285048135935787794462983110459846243708076924201477779767760416407485230640574202468195832589080917449247801609747313818854591379290945504867586025305159839464688320097564254323111398858483394891975522315741117342694535247261557612539570154632013824540529466569806116500489222229601510577575284474487245611799539826337335673641066189964202359238229309539603771392888604367914098467081088591132172518878826797467001595220156887138069085958593947719679446548306104870019076204528458781460931842495759217522098353772843622686402374148480820149119664612496850498100006456850669748121736474639000492915333149461213922219339165298134882437718214220837602885503064529011481707857671595326101480274037222245579407515194801151360837258984292289790715472973954897769606721012321060318136398928772505211186662579137418710222271080001139451633433713109741690699105317390491118959665233960862200558806695504004120711709375436498707972851201315841341098717447844375425901796439131977142538485926682082649066303298600131924494208395579029637575087854897109675156145868666805756870165054828603642381691122959003517278473911619900205590959785900056661936716074639785382552770924103119637656991222568473467780250433224106879623507896955297294526772905362758615734223139895517825532895701821770035556252625448371618081806911257628539471611824705121108782285550490118850807671963343262631183025743517819547348071070839932883294407358214260948216682919000977783459587385579800156110799266614270060081071578614889958106979884006828310795075570112867486704839405807499311280847396405804364735977089645735114888707127771333806267081051925366052342310070664336816803198190118016643201547516566719362865346029910937617641550886067474597204656503341196583862999833989788207382539633759221334958634957296373339985119358201150353023974474078196370378833341166472055050959395893762549416925756312389492558058078547540518353578335493387281486435163791821800597174920507498455259900087827747692566240040059971359676218246704152190888842542243833004256381774728603780883342477746341222300093450490163221345582134129965308431801351993759952721198645383180228219610003200535706231119944820986686285531835176062948206279601229301810084506482362229072400208143909390048903715991274778609810366287729087098908361795037785615647090602799447845505990451975493975816074821361496714781043417847947781955511399566812836283494689402456247190612263851007726483460153750292364582851286717494635585310048195851616374104034527152072085125875999286579610079186526175453589034341636899349914968309601991956157383625462275611318868917151631924731667476670935064018624442464987043804436103969090229273573418947411058289273227319895360076933931845663208061313616344254052823212142874164222077306899841200462252831245092748153293171574934017018429721058855760124151963777244127229551985042059896390375518840631849724946746084188653222415289107321207784736539548936583944094490985191131793329379865669302336452389749673235173344536185155116998826166682381249723266077507731346171251982735981356447855900481153909088104247317404977306152452787032379030110466619854991160334554311485688300787107322176344653668151379089776595823781402218475625246455324492100904351469127128438696937219561678914280887442116149771212745080761529901066639471286851939771693811098506390542208764350428173081956580658160223380201359684757339475560263961823127003192134071734396903761457847279723382331216955969487899933664666226035067967797694444897949117763524857192481336077847200646436168545851578001278855229607620904259544826565824293050146273284344830799760669666619227854625991141810764985941818938200756763965196910023227961561286202425390177950721714621529238397244203764024591940835986530413618708835592481878080898100847979026508444219519025035175879112273810676593615820761360814001521695842221675168391203981728844386209259038483011208391736587382126065466009528906387242821167495657493617796890627001611246253988075792186990617966003327678018260605414185974502856300202619177388049665997477679649747488538012443516105537903781327862704677203477923980887381823767976174167925156163305657260045787489698720197352062611949668905605396245070912175596300036169555033643549061824242084217279342969816245090296349522418609614491194463708615077281541470498018756716272459199936345407124210015995247603064256217960932482689344083316300328258935509515951151049331889851497542411743068993902117389691233615995650505990527256516041095227410949225883578577742186390956755796085555429231524161155868785048042313372640444191860769773734230811454386683044367610267542215366928107483683481483180405719963109406825626258301488543332265227017128437043974144930976177076079111894877381141627860678712909019068103514798380059381297858579970150896258317011242166287650558337373425907551534916945730758341940181936410514258160652712645030577764836802242161081966014770423480737010995836288311894766726345009422350513485477068067995180794417691788784667867690382719421883278613085927667144167453696906920498645485598177931609082536203665027469021111168554501735882176060802506892040790091967125575833155380565247485150971812930359169812780275724088872200504035254896755923614808904206190886868413252083158094440604208289929472333515168735127946385514509678015298429404836932140552889184328168630105095280264835765547442789574464645795375824404777432044495135366744081776041643417204981574816833123994632629055182338385620210627325661548758422873174550095814052431536562674941086599033730025757426245275252207851625686665394440373073913883712360393669306265142279532510988065911948018894573320687656552640560397585488677619192165984556268482975746450454835336047464652900955471687995857879636240864554714260234800264086866020668911544803831305047582908148926417129847113619606587063352892142389771512771968270713552844673724649182085824819033203537095256243600740891285401312045395352862713363108238057319760773123488725404658047249273217982871005790484668553360972748940176022216980408961116887435425770566975044285339589707846223835913667740331198620680039016528219864484644357080359229811219658646365198595634653126832787099227186081134671908364779872596013282594444684741881177021661581317247988530391209894740889290301792301479190228127215263143307149603839126839356232578442166082613509862242506682623800343812292583601158701476263340290568048106583462631345204362359393816267889799370821842198880206764561960947500027755909633291852449146603474494011402974443163129442724720407091301527795857613114586973290577963626102910731349218951829141028772364571297968962702148486626835455443297586054708513038616730153132919845006295080458132305500940449773568831089875820788630316297015048915337261307967733561673755263753022057508401477236108223835784856129976093832316860421172396865193073787260736636902432464248118120442065402902346305107622630850553450767484716995318887074105409955492252546756093421848259706896589140224054981324677929123992036031827145955834282404406154042604489620892451683996987211358095345663302335444504620863783121592441106501994943114712896273510523533406432862168590381760079149518186845395909230205709217947448687793478658354839572763863484920571657629961375663883552833827676763441318972713239167141731304926861157186696601527496102004891388169124303535363965657549255602425330045077092161758954752607237257921527099462108619359826212115976853261676606000008018090204911037511613693930271332823406255566947843713364013690902759965583255271038390320056401051799337818451185612235204206558523690302203998208176912678718246621517627481660013109500931997776541089627830351090221076590083895141670458043081870908161265237435293020155709500747671170650173458309355086899578223345537911701986633053924831467897640139659894696838022778012705979406793852202439266430720951632735213245008337430323051948682788471757118281059632704838552843735881159739275638038684572234406524861153898524826634336292560024660909729821281122530890863003499992831020872950540896842388921461961275188830030251826385914500893210851503580862187221320501223541535563168599960269505637022150208263897068134024412589476819262302564876752661810356166860637167574934437305969559069790665402925678513020005803769317067893298286189151411398319379166503975624828936733861690214124047641709685061529737328077026725751427422394241509086613605121606630163513321877938348521395215021057009018951783281365182815446223479969632406982301377534438918107517576608024638593985381099747869878712786344269847879462734650343822273538652924679778455649879399257414044320575349009037119649705753241336649812426016975021970277283830305540440414825471218854592495224558949069126355730296513470845571999046046572145573930446534417196644141559546083821827114980601392237569860330375389106901695571401852144431514083333577453664093255472304090433332028590494922235976538497359041522741330026013143721144287319089271902351731996503110486015794171838281226354639644513247499227083539157013678698335232934265683224868058332104520656030939144733796118101555394315010993748052840104486518870533230274732199000733071824889355266299345117829308168264730596836374958726423990026461171594309986349788913932675470752779267569883091245412428101533288310187609311398199682417406493674689550543769938635126406733320681510725672725757347901293685367311198629131545991712219860063933314431275565706304736156346429617054231897236055749768929961680415685197059869160258030254148999125156806468387380956164120315067642771941614474185911989351097285108294594419835351619521327001140396477084315459439106210874267085257548289629943476730481836489302284053335134080375120080057105474434873067816244335322653151986508126261008180964505298349782396260872635475463205468369831798859267462620925187966727939367464996075127558050038614513420709587551567862610497675663956860816852050591089466447819024596611472937744838809668443743463559811418330380731160262998165967911338860846090689651512480779712485956573252797216891477797264684986069953625057849372999639588016568347533554779046966351077307780439795092193552688058816872034458355614544563612232553776384406993941429168722036533323742607965343167820372830307227010806994901326080172739587755305347488975778500497950439959705150826107521962893573990440750138946916395858106266998361759772039143158359092743381892213957295262124928856110813651734808596899943714888977960928693373031200582623634446770848808163708362732511663878005004837400643260624649333849502696738671736256792743164789368266618381664209706252043392867175924095362889521524654090242480491540282040886099270622790079801553277496170873727202623596423744941232598197984702918191923449366995631100027081762263666815919086159497969967481727734766497805274121814440731066486735082547983071044688974022139388171176225677640881063936429412646197050552998496417949285963004584593348343929805316386323880948775537592252564556699343093664606961328537808178559050604128921360983047684512107902163916129028841911773979272045695643764425919259095878370184542645553996552599001953789444570576369931343953309448930828887039424664975496245614150934666422353745924994100923143705732123707397038920359614320111129791520161132630207007656804415711237001191209561072329775453671422357394251321377663720869739823651551099915629568788898852268929710944469757260980139293635660268152530092896953393270341330863915859257744146911828336053764793460374863941919686261080147623933366632952803908816143508016059808046237854726675301015649487332104163407061686043189204177322461937456304424713860800788818702459852190432425332644310182834082093012766914926922358225899712374065116919263305749708454142316248003796720080441452273452026130849311471708918010906035212504569753952380299491092121211726730125490804237121851606700821797112070065936986389364193776939658999156192638084383688309256694621576080986386418806125749704630155632000604044732424302294345977001709952722335300392128288379043993770010877657267966463652055356813854513121482808480801086536890968062733018955780130615046964045902087121612140621885988519175100019356407765403607068864529206642861613239555940635753203075649154133647159663211461466977682395806571074383192789831366059034473400639831545671286420362664745964467885664526273487836723181027060083519677909075052119782273414559934096431103880406132802800049055337831506354067059957154045217525336934406130614879621130833287461841570682573379485174834176913511679496946795376913638665365730188611667343665319712776283174520682132722272003113103770582725240940198702895051666404198173620888663134146474306201609711414838622219212074583241443500335593891100272431490435781586484232812677292942699790478061610419782562934539793054753483022387972006338162576473989060546239013497032823373841406401105025070156627843289547835653968363908285890169109616931480908044413893174365865948415545626061711982662730578325536432505025414930966154810118301508297519732393518023632144253014498264972790661341602379849020136710863388143376083494421727070888444318128046556777454462662911691902576226975306659123132522901927983992765750305881731790559999711911947591579648675246591307760274720591059396869356116972521427301968653393698173196320415384474111674614120034744171948070610901167718577792303232872333758610636722664305345971998581720122999675073578751127105891776674166740397210564435949096079599177449547291551077486495659378562906844061143162100551347922048839626236645824084091737145332413629474749704786066959233937779779954652143052681906797701856606088223205155121632232747849441047750478385786958620000249594992357723983244898600784583053747096372477445568906350773631465528663690070329681499913994556287613226559496256381710361825760592415217166938256022259962156049494928213034880051419740932773835566597903099638084937756424003033780043565594089277499531020885099390893239520934549323398623508000079439703018767666295496184669504609931258873867449985567871788278149344811537991385382304818951482222214980192595642394723209546160676481843081371729262423722400254457343851791815147949695661283265720415722293923112713065758892340901335978935073112043108854188827164342992831082978231121744066174829200718626922869815641109533792715901452524342134163460108775816290880540722276230220558595277786840575422836366306824991174352991440375593421981121792829968130280965443636781304192428185770225678022855373807402412435583720857190724077916794018705807484880809731884530065950208712748122749180908396215551198567687275122562195837534403323052745342355604184785490575457200210976537330006890045133523406247864271603080867445375356657665549403170830682992242161472666263195179424630353727177913498138074732815884105746880878762707172597608931734719901472257168292361306242703154017054293199594260172469874354229980038466945230909212327709159606222450586769798694580638603648501789013839636477062260904387953162489957661985284035268980842632760880126019744905736750660372935973388348626638506407752118010050032635838724132955934862209553481113389510893961080437530590203619783721994139670333328260124862145697397474221150267984162562369488358726184840109436083193163398789291734848632493575642964022090355972541217596360235987979898296185341636379780023761731866836007873935508426221031158400585048544886716885735690860328401828459835719799102339414143932593152816156020803110457182711126826290203740380831162028218009894617351633042060804297466803206869363751757421172593036467543537174164108156370971276251164215727548968664792126390559488137722271006609977776320804197407551241803365264951254051968745981137604940969055278885061516305006653225317252449487776332938220699731220254890311776396682189169962767799740877525578597062887335308370673660276014020222489267994278996589811998085494369531664943601328617401904748300787429715058364423169004462578987286156627673329055743528731108521357660152512999961109037141173597442566027189084841164178606404377846857120096571834824029706902427793768372198194650374831876579742799858825240179889459070949927816046060387314627349434419983047437588909372398950957067043507422349053668102180779974359330221471244323100281968300913870673511863219783199995005431072178274991933027498382346714059307561672429309170321265930610979548603945384144891826266890121274747684476330470508915582267203431250479612379412726239172654828619223169304665715869961226892575853141558760474258820640311307745005088372550530147169806208211245972522741792866481544043724511945980741329220327495240713120591181863046006530535627848674984865380501571864414043712265231317259279763109048863586339243205137510334029370418147341958672001233813399019690456846555660907529315561122321576573646130855822072895721836631554260302988925795849163805091806231612245165267316531860466218938846225495878329807236737819006468806602406401902627248535750838286584558334898310675409270271028579359631228108303818918525045261591812671401138004048054497640805171902189414333775766817470741438857741137107178872164559417968047867480260794907695315302885020590311122911084447250565340966933524014463419685878472174667930968155966038889628288920268185354366059494109136979103434055363354286134788834661113964619551677702197320754220785493026709349198608112275915351240122616679321775545740165117724689845201705294883911955334754489872145323756065702068430416747395739192431422767694973758138491382500580536530790050624195636614119373556287297978795837101587304806566242151334135507027090931302829335576221231192102783476825737735188103577169351947950282488164498480035382207074284874054625828477427063658936548275697409836199090407080592988695019124080109953929668198630249540954861710736697937039752935524026838616959579178150662628835605365097414355702181267546982295079523859486460927468933594918780830295195863879583228977502727142627743764288686790226921348409459422937252558884979010026556387679397731326765248305062495389581774256864783720492810115502034251707663787299892311484304707783536268102328914099804529789587888248076225273526921768567239512092396627620233966804074925002803090610069522073115793382684020844331275722136547894505364195978483274420765847110919956087508414762745373681133318461924534236092050518555808129473727557449106447904470951038324842861511937907286343003544353679426766580417486413014956259630780482386736574922004851094275587576359646360778802401418267755313262533733776088134583424499929388430040194135236498326969472053799863138475922206988128633375429160442571124569979832435618456794219726618704876209132502020805624654538064334738504391290202090313698826284274593367976597176786905926859075807143004117979896867985270782493136570965880721976046380175540985131854543381244464295396102537697936578919391351159143570771706477775526065474585773944694869883035182249937719014423778789305787743888772853254144117349755862481197964831056766309302529520279364007429174016417930446228217854430711279470037252579786154700898394409123966125602533752566287485955188275869253547979418299894612737214801051207166666188462496458509214791568477771070242500665171917734888927110644510087474882722688903374052271365442787847504107449803677167879628723820351333771518833785651387412228511513637604109905228340221580859970466818969306555215950862563176947806719594460089282873170063782593737956481283107450445875685324161219693075414377043683378568054384637236760001862534889852763142617531650930873148801932606010199526033764117940221984631046314684111801140538126451108620177248584047850022364008642528230584233311414997467201885641642656733280530941865021398730177220497100687322568990585714894012332204207180607409048836675598844363558709046687090976602098202126864053001550378220360442368247349686609367558518284899447288808551206442451233435224709606534938786189803245744708054004623593660596889881393786900407948079076558373359813053046362642384920111117846220442984487982801752293979627877895005698868263398716011143083951145057466410977430429909569610555667673147826967107666597139381054736638889552610937004256497841068339970155198574168633017508723849231839543025200361932040118259217838249368271228431371453575059458899733194414655600871082596670110142291903075601652734251495909440391874376091948537251647705800467670539784830571788427368752860630710700904036939275396480913440053719377882402163931206621672110983223747984484184388567622162818973123071615532530487590812851448027738488345186409871990579027006261708973745234912961293426809407962228752760002787065016849443454852827800144902044532145772905602307630275747007258030025951906001543051979973782119147649755478916232941234079926881050972841384578683497385635392863124591238965043004609215836499169758801666590838340940448267384453948576731016207224506172386348105024295765600194491294605045207466252061723740931403552801733153318612603091233353137951402154182209375834031177741086294048651491310884871973838449863449091800569298694880469831355662894141292229636381833868606233107839009937236017873091211687103401681140081151902474786683819132408983237344409564263625378035399644694175738872152157650416557438041609243533305796971808444240551588592346515974253345575106242985589290018442427896259593679678399401424252780791209028889511546341452317549415511495178431540615946117067156669719403178463023287029800807749694208103069374903836833678303094588767745791102614655203031936874449497155944711108518712529901427867613966337438933444861600767796177381423151458206051078486001256853458377208124922979858851545735637038875830735876640936151258314387905168376880236938500768514006202166854446950255210609548297700630116412006460173125610889236208781947961185165313611343936519954757722472144255820433604894177845519693892686156783043728967359623773141854038821967539132223634289053944812101211039586596693770162991919262007712649644849230997928955775056614030999697181042377517059080998367870300263157976517588416528858621146795494430435091135439105717071603505308980131225913512670560423348863237718103752768514238145355621374353714136402859935288872158215335946407502312657861649642331566548411716428495902136391687561694877897626921362571541723335001314656821740308660770015829778882765131643257724001021758523384160683863697051184837232354472583646079073591408523985679525778284384431693863612641275508738133768873690142675690748828958383097248601188081079630799186425194205425079308132015803139725345714891457305466698355440957680559955680244540596979181180311852594581555218400559498413256225432605828486866277646796856958808338482410235697138838000641779278265285818749197973001072090760626151645090254996819130070802651537806845777251431387265043203467979368478352893176009486966123351017744203864901202945293678828782617052824081314005424961751914849194368457756159665784957579399036203862065468293591809182723608504387188628776706729855943258330398974410635112215045108311999552792954771001047211973359568675714540386777029564531312090184306235966150510353327603649012379813055865831644541207516721090016818128209218512791076134378426940661705284233160102785729160938004934699075545962375022634126353835656045233644227221449388692183616754307734240432500272612882437857035742115936353152816589479038417000464059172975567973251954839959088216833278241859556639189613939113801689748036689993425542815435556014657390007058848354316028183190910629261895279704587427856112331331410450849730813200200429928660460764738609137643745856904147192399534340846240768507356849306303184830179591089591502179803320143364471152434030320783857481283733341775228254417210254322236977646721151936797780123814296259571140112455641660836936195383679365533431678067514365449180953226464091784389200207525544586189332079838289738576411508106227728256759792017004079044163494326701265192726028000709597695345743852118601134294057547181255514903443828617303042541883857565467115920423884908458388377966517090536253266741683045837336828420102931299901862623917758572947076195230120548528164064834897771733070639077623871730147693058012006893262713379579371890092600814079910736292239481563542014716249624336238702658655159353724828566053920607007502688514719223519103526396283003871358765418060249220787751432279540869666526244798844752930232961665716215965395009440129567518193563835463003095455874439649939662008507010274667752875991554792785654948699910956324449009722809315146683913090554337317324202257357037739619264932563333240469804228594499728094863492733370320143907962026687519727796492534588566514159075697069048515990001928473557298788043079183594852281812047827568092440863167199963283263025226449608421524144527387145557691993205886438281924278919209153759107850587151749439524790768242921318927484134350472029132218864508558861260871094952304286397562923658821452167021580388219334396464237382958407316988247560525785878452194664962445510837541089741112659346543605257482538811854857209934733762907283675368366157065179195507262686955029856606892523937773558919236914440813983940146733731590905340641549575293908898009860499972170251084157652860896631271819996373262980348054861370506107850756024097233076736668565819547637344113325859270050283553198862376085592496654270821501510803207023074023976465502470318550547197445287996025052231933485197728350784067413800476405398228757863651887996965856452177109826324661121964214390312098303178734101752022094007385629189130740406406353817916829041161941199588112031802035612060078444743129620178836451690691032449391413452416688743953381270652261552004126380650246884577538408915660759174049063717221116769387032270700112883442825520059706614443750802369322604968767973173291769322733996152602653197949184831502840220877587933133179494934324165017414907355075252913933204518685113398467397974184377724702937837691294228986030170898467849188919569705317655449334054431891532411097332699589729906568279141056909144881789487476939893907641772093754991389040893080193931342612248306240330379799868099337517252291006742168052792035906737931206871089501034056003322182880385309880610606531742158837773978969759385698872027720205311468611852155126041460224104090020812415413807232058827498322528271806244465059258296307009626431046381657554863669653593106734661516370312695478918719019809367239118200930488759959778544433942417941047099229263437941733952441367429722307656648301783174778020109890687499876284219420326001228717490969291304646444382097677095038999533357506232235800867015500812719222128725506933783978000759477264224617465333131320375514446872768010207352074514531541912925057886681884918817504448004155281797689591905077112474176257534961423408677094038106735775027965944884786131577496550971703829772339966529390114130268692001407677557665619742863019180861810703766118869159910796193163562029321518086679442580823208928195427646972177770037425134367167868003439064085152279894462093611662755918906851125892225551827228704826670166720546354536341888951401770401368266365498560735571456209269639768376992855842590358715940439300774257990180331044519573436784116411142205454026033954278985701725970398786382083141907214459120524695664632465658200433130044371178634001140705265070110066566164629106092636795554795568411449163693272949571863236225725251401207307622769474482206974289013244152607555999963644625706648926848602037183157731550796077531974045410925585262325818864883280949772195535767311380457881349648360338379872159843404474718712634567491454258349107245212601495223940804742931195353360624560022471008831869074247642212911449276209608921067835669128106596775421900452942364000663061995476160800660646926238875505135439232931071697215788048011706849931145811277089712524889503351025311269681117496237972750398810380089187733156867769100963569137363006177779708104985417956796697763310387912445220308988324841531510632648369291645144562490166864635145481316638879566005273733521384495641039260720544342525666131867649656653064131171261239383694597392841199947130307439716141767968370033208629799454991925472501730336237017608337828418236478180306675557914309187618958035641870670880025383532630323583394279905273860061934312130395722142904076583348028460295748002470614930575777899633081230604325301081732465846769960170411494858297343200596984315902537681669330803422813897980876617912862496329394555430533848285224249259271173892561912829280101344436532871231206438767247227907193448450919182713819278341878517235026600557633958800087597236970944322110783289953892692721242415963104356808679454300445816067134322674423902109533623291625479789934069722738195971544368173310905836236327305146425970123196421953693262337822965000307217459898208855275453625635631356433490565703117961644383127555059134689815899783248097574002373311339197250326234863486878966509944016645626846877155161467958646450776368139453806678733968901388383942361535675126189870395215104371670527363361953678890413104531025644985513433493748686554385746415403217315192172882256315843623303358977473915596692069145894284413701892232455129697710910744029795649670570457082110400928237082639344074088767461167098934045230700668568437274927692731113650590217244396629556444271915959110423182975787916500620127110136992535548062743886028598029956760332811023574245495587290254267261248958766146613736604483826672365892511491295625576489028323602427528850278996069332906670907695294121676909342461913523965780787380946108805861026071585804740810309270585294267639951036136767845315305190646433704301109502881241494101786734333665112688788402743426499117316906511800904428285459659241921711279605624369322818659304886248087093309911098083073071570371489522350360252115355787115863915120799873088102567703416965133258622663477266353650646829259515673005308141450693943992884375964891597240695349022581372373056463856282085865233820828610480416294532938665402485483579820294342815665578386430974328497566086428633331679037239574900082402018335472508214441333591432496414841257516487639383944209399429347102415903860340067024210896082805142368330511669039437102176710409952926077046618739107643743847468623452669455088960401426043845719212541669333165389794863436821330441791331369658438636149690058713018462934051245533833424198592954123305218016232279832923053827160421264394104683732932736673015710201632216470059075056058960288669557133319852521053440762182237889128524573948452116665238662173035737973201580553434554747374333742952657837316991404814109366058451835262157672600120499583547916338909431466410926610712668578332852815772248275880003430025942391670848533658522657551114077504830539085593431855706545757474851933742845401635689108225821321224523298529759741773938063172426080670139734105295075765340837884049950772429494456452802919947692519702911874062297341421786053447304834673242067699748596543516217632439148707071907339716737163898683651682640134318622630496378698745300965626814360654061277736288961940708858741473570297039400876361171441492113158072537852291089554316286417935434195478359095652561982719648799045034976460069524728773785347540067426999624109704076058097341059062539777270797783537304588641893483886166018724395735243498074629409937965625393338379843831226730580523392883933046624237468311203764185664147587981544677899578611271092065308512969446035636730869740986844984269961053136094884409332103518806201629479695023778703194221039042617865199141590871150162128908158712836313001140125053164936343541235624403616000960798769887934866088467081184859298713699306150268108689321256923255090705272852603862159981549028802666942735048294156259072985217775593658348224409269586689018422100592764011076365118753101712540100556523183613110012297777148749928662428382363621018327541949353084564171745608431296206462329986855688019490757798779504018131216877664625031946492135556237461113044232266663037979576869000678233442043104527783414710162877981727315735708058372694408235685454379848434731205293171396722527475509083097867678775130459706474908581897830563087504615546491919920452152317766684355355415875807534567418850534685666304210193889911736312016931055562179254086751117964796856094781715085786472650883082753512261468127573938744725969724527824405887993854249162490931848230714864161006688103171203685604472037126882914749014557562638619928252039735805878451181944526386500130464758616180253199849404170280305216022605725317563336271073091400717598699943042292695182352141703002595583581500092557738139740178770595886882295874086682623125093457752519755272857567124431703583469525559156540429636191420675462478853537623880928941185750421640008941828334615768440681213449761339683747217202654825981294909193736130865927875154501898330053176482580677561286249193837882019475797446582962431438706173863719332087969518317494763816605989327078475741210272236838172681994656661317154589494880101495018835141684177801655094022919487487714106716799560745297976773062895077582555710275589898305906498090068040366023944621719011805342304562315871017743896156482388048809490909587723173725467507016515274112545678972949333516823871780909071426780885843465078979890382287695280563575485243617885708346894286318442667019667046744708574865664066239706634104635536333983466728698982289601995747550478606204203747765770077184960454871075828180888673569935072645631750908223461156693379044374327879351309789773015446473771382731359646375333537632001418618995085675079340296511576906062738746936443879714697976097513835415281905907036440230790697761198017221339349570853777844219253967558149675739549230295207177298589036921705196707005588718859845512143491384958398985534834718390124174255752328073810901253191251477331207062598013002448160214055176925871999737008897919085881323017424077228622297936387994100857837506486613167817360966302765831554607887175233019325374757774939260129210897419427386177025900517354764678808631783442629184565938009941908109509957514239706046538003962000346037258010832607558898844622100283278416300785013996005072849236749796089152153586662259192262329305968674422397657436343656329468087490603097198214002930212280454363359304258907159728597504898598535452807637955991548262921088500583817801912294087895854801606582733507432869559438058075566192827541046568163209039957841366021223257003603393075641034143448285226438056734026345729532191751551587392932064043743991073750696381948707839849760623304805536233127100910354958028049046875735046285907325179402639642481289425003953534987649332792350661517122545804160359220216391003145102910219121952345723876331475485461930927352549539921002549101852888436992948662624918216128587050819097084409377171743578451228722004053947842933423381567907345595610101870370683609378142947457719150563952628505328096143440732029909554734772925524781717449746453201608754676073093943145567727896725862068610302583827304704436232275094581453212790865226593063151904173057633619005075582738054170280180502773683092750795868966880623736203964013562677118037954308048986870612588007734107804171522246055054065468712108900955595264110921829182290009291042525282063336862066911534466521816352671474205620825529098669951514404547997977679961419156039333266734928562061154652729639054360302121813836583305056838936848446989753278447328682975232730835822257800338386442275470671630494508409430525539454761326152012226438492919794242693241156008484043604536409723367261148900816748207871807724365793054712006138297494448684242087850585117488063832426047329029578570267100369257886724581728464435003980827099712200697533896748547868207944806860909782469669987294164146681204252586531376832211285159255599657124049035726624367796789613321999118216504227532522782699061554113797273833580161631152730919568064540224491467851338871562834486274288746206324802081168209474513765213962307541129734997473348161681274468028634477376091278743027304679226362511099772078328256566046224281949674023418766361718310132461438701132252555914123304151585667812429920482453325475082125064586570925607837805814798646740528393388122508872529156806161812752595077444353719206054796899962342515781144372580141867165672010246063707576578949165110152560741891074109174305001624787458765694197137574107198671555421307326332178895945738802814274251924523089657248522553395489180740276091794571930128038648069499247345071505458604936507836384798015736266543502005510447902502149133486668654908059344719719799185879920862452109769330213610616594991788435556960018026104193022647734083668636532638873563037236854398365963790407284872937048083234746794798619663796926725248775518010303581934282997837946865870705853301142234733695021425661916753296480122475872889599466762461701612810349649014487274808064981028055669595963388995079996850795077036280835800643183602369772901664332739768126064750564491870680472405541225881685080207648318355763880768822545703949744937485159983778927157299143988150523238627529594121364251584431030881834324268223345962873321194159511039245389764886861978958204983450163266674864611536536102242979136466867630723680719688803915389300101879838044410014932336634205490516114147704724692832420795901501171880375500102486711464156759389732133746975967263454558813844434790485730539752035327226956815210281231896782658934326810054042686287130603173680963079617332872692990819445842339176340054975245249635360383292489311088942116379990062739266887793961070855274656707150604178909041424225431244108680617571467625194128086875850857970392679889102526355779834557762717016395146466437356746149726154189123554640638332285836384072924937967557960655238448565982285600976265704081576472624736718412602724089902595364431937573423947431981740219407575762649156344856215119691020793160969887597361627722227741754436606693392852389789994492969397705239703105965064379751710657444209778054015932776568638755096771685595655276162707535961250162175453125404733613720455515150083054365724057956877701192133680822820013462474808543780832046769945836947537626275906538333057414840402264497778727522055829162424502169955634634248679250776594385512087519448856528195461254699526662585257389911659408990159508442232074395108605438068245936716424121116531476168605884976695550944120310373859179970474709124866958946662620599457624667285050478652948109939399494560338780365404532370631203035111451406523200458168924874342526569618128855892374836531069150565583099768210035252350449054587091023900185394396416639460485792688410347753133448692153083990226975029832247029962409918223266197552854789790828398571569912353235590119271345736648767918795159781302084821299561306760215619045678213423526940015350877284591798329792209289586217521666016314179015183722758693541507430197365862379364032394069538168766765820775882011340424089222813128405970859373209598214006106332755862773326819842092563372447355011290224574905730317941690583832918806269038366957071241333119646943209161042854039018755072541839380321501958574606148090694007707666460472834858458589708713817374260160941195156578455106714405870905006998223086403806973713126855303637774197878434527478774298809621271259570888923571696496438792125436120537390460024969418008588450310824288214572789404661806180633099167580627630273767279316850697617039764773682473708220490071161539403713349958206224924355196258593034533312639131779363428927313265805050666108105177638778939478214056382710963153806240723413146116843327426325683145739117849341530743293976579893356260696444483302020085542736995852174951271777199158087373114856495681108884119638621417989794585048515750148126110439415717329330294072139991986326569845414221849256750992884858234104448150769753569894739843895000286944822513949708069653528185056820966093947575829475795316285409979585258660876046588575373474995035944978724136801199406686276840289687190378858815656650878385805326359518017218494734702458162542875502502157985604633017055266991058394304620533677184882663368751141682597436117866865193755586055658339857220505043373533465547891688089205596129925064837105498437324217193940155284627097629582741119186013253770111728832502567853335453609046122965582931838267704375388780168659359622652524521463660755774579620833601881535739690648819197044052541099466319404805276850643000338616182394900027150005231937890313268351022287215700241495728413039898654252069232760190277811539578579244251185078660513336862180658073282106380135630967697405721328235763422740195072776119859284275070627172564964271166642754197961899642223166413469163126405731973996828793472001045774591656348091737761495567844095636456881691616433446430234006148470337892616168445589889691797055062884389677331302346772763335194684225909532100017535101954058361648420368624715031694500300022915943936166790171528013224388132054976321391872677175822657839758096582747699658604280233191902156065064009908447745233386791868448972944420083408927450006166866965299185829516281960168558144712009255665262850369338138158648939714325403294509683252576417582145583030173624981661494164993023940516930732679198703334324925717458331063995887323466623541613816979240005334209926969214464921037110369404213432068532955684737782648817334969774969283058467653827673178904713455217570505323811021366972761088627736090480417430475202395851205327830040816342614038514063422268590845588941216267852090220559647005348175329628086537674186934069275392376736306814152787587265809759448206460788446169026359143291444804288102969371167992028539870086983062660954435294534588326112123903454004267208402978724017442984575520419546657597259466443834109043645729583718872176993369159759965217958228700359351524964166137759164179914881779524803552436042437229600226849314924363219396074292234969965978239661601046554717487037862308986871032771624329292823439106701985951085617806334616244006031968202023196840300176087402797838199619216167025921749192447968548493273445687054109327920360154893131226752030448877397601948023484105216272123849939106557117424645310687767505828220145317555877148539024200054989059353638463690456736509629193233409489894469756969727451871748392214994162316973621287506968203485526736208377156645376291069047849996683320743409013223930282091203541435490363722288851613755935056730021924279807457674631742752967465436342113484605101306507929974195266310636461110365976086846664200303063875789403021606433932743063529637811610454949701254041633196043887861787839855020133538980398688636614407016511756001780189396820486341087039778323936429194301234728152563511915041447700788582585054042662461719114857533368526347256966098859333504498101820733902107845395527520833827997513269317825874257837716277567802445417867411396405293436486413372750647135008163469403905463772494841211475344181145855335400470888005552536782521827021705526850127128615724973217942353733844374107896405832874098542326448569647521269059734516496296259964251378477282738472559258779285686508264494550211566569806247730782822458010614531265951155121086463046959187529526339812590322456646151518422406898307131129893114361612135289156750692539126716556503179170086553602410843835046343410562122257240591252816830170862991638332873220039217503284041563012988778772437520700159855065731343356264755669474631931971744476723775994012816080141392819332115240822227951818452783301671846430527925162472933502205490456792277857457092945737363465351266757583220007782167092823463331091415097809746057259076427112652483565930388332164643736679454356733506797825195110250391157031247035781364899015774146907105227283206134534920435684588128889054614879621457868451457494914486502191670962039788186616051037881666064212647616421160860667098865543607679180892732924389719350550220228622883739860767876919883052120242986868151787316296000767175697910494732591293240781803705536623643357330542479580840735414044548469410035596581856165560724846657042899802300825101239949800251698658744317797451797707052145026835074404165479207499890362178265039861214131213378548651903613842311372568138615069590607838933294485576700135602731252366518432100833740375803248745543494428838423933251180739949953771496966506544550015410716243734886663440763667255849451548143899986412681626903558624302979612158055523089392717042658940193103664417692747565096484931281879635764732345657629010956725211906637874426863394773498021190563107266993269684016441692643852087399238946382173243989653859763537724008960889796794540780564749062516835743157219741855265992182827275113561827278277382723661191390066124980848661620704595989093372186985806074477137058749148338566239527751428561950452905891215816415308045925760116594928607733467115217391637496265384891377306186368893933320203802875633266103089701995998402259158389131089695842701586377076626880234155257347154262671444196301257862882096038082494622660918801446512158934283484807680639512591832746343309569749872836955013522181985696280828585486278722275367896300686497927545458356785435187029014879792065291200577414123291511056303912590581034932064820007214071062743922972977721205857096333378007518874962912842539338139804283650946495158974969174793727743845450701750719122018367221370940706119284755524191748437772096168303195149665570950307175137097886124186952682047746715757527282723794869794207142183791285333833364853667735115223247272538790898574948810151238500390276665884631657293019339184384645646328955131722416629305898569833774697688853571643473431908205059338603721022460094729264614310068597393814194243830258855615972942795447664968099981452471050610018665117355855512667843388963285394217093326517501893443903821160117059355587824456614537185966063999509415394135514147819378513248123110666732644940228134854916285825290601705828300702917932884899488296526609095460647249696119124689098637825932645901103437228733515623787899009388004160905715294092061994673846480976717990086619161018961940434649895076639668345912111423331924060412468282474512053706358508837837429043890006462071082312711683856454089096839112458098661851549406497186324690390840482245354895118763861967618767389543956330294400457159449272997803518423323176668004827505424511704743272698504492819279740818465754806288748848134683701268219099712980286131615395459471509660501011615420073525080633796044655363916257708779202621561180034679378645084724077821534858897659102044986408626424714109335342611057571802798644059122347578108781291494861477052852160748553698118651741362238491230653540513694068236902339560548662345252342403107721215319551453155700278701711686632507774597589241714786809189520021848587766101574077174905279518527022956431959016892599750563115290482772346141969821760251851659783260723047322711502765412175478517970850612497762748699027131265236334005186994306258760048709005995808481375600933442097513996682664644978643758773711932145359561046213162220021226577512850314245322240664840292966959390061359504200303787232612016299673651289088512275128350743321713391179451387593720840101422668646579117994510799344382164830699172998837492644792405516211579610120657048110180281570374304552773199141889879004696279214035329768670924719222976643806485673758552608600080296119251062780179946417118094416355649276611165041202807916573886408251728760428973218999593077199383691490706041119219611975852354444125145465795067044260078212099639313502685740467829944643658416182164790013637762393265440402281112990926033437285418517209546705545206992573489144072775348926735612273242103963209295939647452661039144467279193242879375377016063121030250755510116935123008521308571258200368463085670739245128019188590782037538080847491392556937078892446078864651496117044093660048658806382031919633274909009851253057324110927474386936517217306474768759287256036586479314475233357630242672690755743689226577497687748668558435617016411676908502808533761523010899528833460805060477974036671020468576346598837581802263888342343303106580954087043336808723224508731421993711428934163708740893305121570827657026233132917510637331562059002540632688622045299806827836732372055026631846898752637435075327939601416997383648948667616110107202833744965659714166144215091427754677345049681234051490706261688574628855162613153572729759699021357655441858371216940436638004003491618523161324509648843451217534139320540000680949848541806038790052629718346205648266862853263908429410211973470392517555065643043273756346746708510377463844240266090693493060288076764511226034436125713643390598423750981897418311197741965033101517506303831361163226519176833053407291029909564146301308277718238569096729423726040320278609497273715561298343079302008737561673541019909625253884492409523640225427536141977895835151792547754673851352931970237067779920884701952913524128197325050134955352545440543132828139368824688903897170032483461984412456009951119298167897405734799571328481527285869086213065066565708036334729078422307458181320172587138381412473006748895898722425146018275328400491003814782087159925602745985641238934218895293729453833917768249028371125652259249942990678521232089354954270490390054124683791075337754467121603305288851415028352898213591393758715423777079663828618460321745567564498563931600290567925040348588374590448324230472813062083452258148939035523946845223406874786631662102248901530150209704390111765178071661561109310793444965976582185958612707780620523439399386804543457164827948796074332024399801867939448554237293313141723750513441144943178514795608309360812133835730718385512042113903965491778017488664049429421505642454804903380040761194863197435652151011718162219920231418806009868362076946274091807292978900023807322691982249727179145066523801464779708755793107464252837376205291371245822897897523842134016987889463372557738424054038315091691768180549416213130782919353574873512734186936292059064869966998702131901401622102368847067459892592629601317911819949245722397410413986564587271893096443649942051305330820524020985362773506486918092358438785878263091939560240058699997349096312701648881330242118920253125897609483281768691695820978079295524989860080765273482010389528716069113946974530339344243681073349462516102205866500903298535476543817910827690723286915908141390301267179290245012011447455150636738464241768467524499535862516663723858653116572053749950519926797940694420442364848422976020704494638913778336414706933910562867092468717874486057905254288714449048941014205237195330183136679641419767630150873633542878351731656002529596788500793409555755039943996710824964242323799846855102620304008970518966493608071394606368703240475724901583804222020634007068130668169717852865579562720398204056835384132003808012728230839885003959038147220560037653205750044952959203995746915809458380741276104571138012519209491942180504470388425678303531112834493409972961731155373301726889634989038220428191562714398552497600779307800057468079808226593251037626783711797894962096748273760437071329782660224328899222857778400572739596466504407091802464408377123524248725973219445876693496723569872322245839094812572852115530350407921809815083665576235628360862617459041763660765937222481754374586526688851223431694422695792108181606689921168575798281949445459495091928526066329821212843331486359920661741735474037106771681486077191317344529782017581664690332983874469270183841786294120670250647687972195644596048487780539198509408315115879100443012628732266686042639539568094045138584661456177282945363809158219236808269292600332335168669988248299685807667802488326847164387650458023950697070874877353562788405261146944526782385573127596688377151349842217297104419870174152315573181415445780702254880553769152096352064896350896629896216995008910890686158076030868932764275953066404360894638572390021999327348718071966656148397466929341936405410423087808731435167660138004396485500139404047868252519831355881355094340703619072777094567303557040578313456324088840677621149390995359584494482572510874504562101011161243682986392459609279484728495966713418721732709575213787793250652622131843703910873832597078931658146019451247590639807884293424762860504366033897268895701946550419909762873234191452069853324833505351594335131316994719021886183844378187605204845255264112880472841146673088514036988069616378779619027964945747257091563947217885276099418620675751907139158169543255384625650361140189767865992682440017518797602778670924766923185186887775125301897540703383040665073407147546983250197865576507870334128804391660912561278580908687854397770955139850114810539752016400148912730656601173069531662895473410622201508193827809333793646637454609439961002456086392963536630634062027552019931155187206995724378096503434059961259042969277343033244851749820564795949547500983281292986854295520744116723666511108505486166249653688678983234067294974368037026622033734922817345955418554724832699535105691208788295616461043938631281141283647238274411776770490775209512921804601933426157136469561765996580186565487357389135844061230005108111938749090457945660251663120634891353679138927393113551368741821639890927224366857224395392151793949428219922231274180945868462150082041550426036806983382693181878304900224122622956185916949694456206814905944406169871441553226806475935388070800398576287263936888440810272156991360679095808043367276575418654960477985493133735109793620826128277238767810756020723216229174248561695942832030325719802082471991859880184220496285489468524374008864588622601136397619337246023276820164145831777362197171332137816995851945085756104461111188049827915849568433956876752703446881772098604856855677785806532872833738570814800942872744775170759648678961595817748446734423848247685992678134043833355333791058108885578297714103187906258262092285474445206379221449080736984235056770628614967915858388650417801882533954857663724219765896559084714214312906716340505099108691733440813903333480931273080789706797742515959038640560349312410913866057651619912267288101917035183527488295535475984456033663488846140307654015268591834030305936807893674481786614771744349458892563925087919738908799250438756362766059387656172341871651419102095008749177735534050559710567126038978145770376413062546585064362095523612819074933085493644460682614979027404537936362128770543865229745610514457977097955325355747332328879854691003429970946673969711281488059318727636757423177269461793054965728733539379309469420755885980034397192194097081044279964275980777118812553950669699814897239213154480252352737773501217489982743790566766975880214394152732820572911850911939954133005507889335777544303559375610324319660320110564506764711301568247081109422446898279101695067753144670501386298999770128751192542220322923860369326862944742314036668114477518554995507906256185249130772640447059114827845692877362116159404267573834986233945940132204672526173063464803671716441587050700186141094755501610841641927124514809703554726556247717771914139254640124118223032260040622967046777829052323420674336371388683162993580000033715379136822352344042766460034467365122937015074899399602355110937014256306925205465303567785481428768042144169922642333441396328263990829657866263126860911385862795177014061399443196175332260057441970355925257643044990379878521671630999320341090188339175020650591251081121837577338046037481476577218951956772814341430380067317748661877383176682908190693490659176055221064607634718044548798603976726906721378751512837858346962074740415777779876905251137234136991029796666865024390221103720796474380585874501377119287041048582969063273278657612758999577432811473175564660618901948136137372591611768712494208927549840743422447849012607833594015539266640637100396652893179979011688160081084427925706789284436767785563266721345249924632838535762222961211042037665690785996950479421150263297259011871914357819261058052357687226264670441114117914513009858168951409116351196752654121462030664315174119821791734066400935484589692026906665162872285019241611882525060237743086504554380269902975934596118775457702158896932647343164953550136636887391934554716070744309890985520452348443397772719045334010547186561983494314288651158823341455359883393027566518791454211875794380296695424383081120529551102057516606133885834717506447426976793075179082032818761671063230225457189090793535315818275105358854478442813616820910457676024250994736061211535887012395421455357101160578148378166433430887000778288956134342832500760941072880454940238074616536388171063531704520685531729781633612553533458643827152531784012444921662440305370507218116735922922995519863475724484764871165852442027039280873101975754832621853692288515837178661700782546825777643448338914551421873629285846466647928551111402149292689781839557150440839436431848998709742644565358756109958388719600727255093800352997894652493493494528309938007158277549816569764219692234914693790779919159069105660559132154845975771092802307285753246982511546184321993318393671833919704680229332573878487662317391292904148506406144510957412824848923273526323617083970035442537022037346139072833169046406521051312290368319854523346213018782742966389270570548461229907154309545900499912343866087093655566562520332019406792912424076905497681384734290749979559233645159602438443084943992810933755840485990806087801167240792991360610789855239144369644724710951858383634397549541368189816323719731176385380178664470400477588176728254495692991898412074767624004819864023451245726761502211038237820967167727213795409670933117381046104342410237067122428376901138234052212059809183157110432481659725038238696674090800397095296987472721083520650428098025010653007641926285276717343147520134014422027432607237702288151284432899914556151806826476786560301874102553250869955662092461864903005011263614829330994349364985021898389627051462870958062599446734165612730829488894686404663258948238094728302277218634796785835505322233845352216745396991943853209398008316875122274557902822874784572298633398261719632086739102516195113007156291481346363532363109666516208431045111279256871557093516653584201549745373288459025127257597709339616665504298251110323033349825785730315905601390573168056991832508573058937714307353548987544751991719892660670173675328987104761413202843502021986036546908740053084170786077273301627818398338982174022263258951725245054886084088371075842903917981878619521665609776046251665126526525972865854853274887730077233165071342385616151632007699587567346374745933620821418044541346974918537366638076180803599304761629290098692242944009558157126032441114910118059865923560493786244571829790113349605023861605746232818609393359963065666895225699576755066407084916413133420872072887450222991136491471875935947233131985166378903352311542163625002896506256364306542032879095048976852942309210033942633080623978171828871036277239252001317309199206886278867834281853733121157862134867357990890756964477920481711874127652613796099901353570423012540195928213818973219248281913140906818258124343600136580704006251427373639115190215207346784854010828043010647831953229743909363497961109869070905507452619862580597948174242378961413357766494577904431315225194451034049455286346521595904513179077071044207414974380823934877853991442683696715781640571835343982149604120727930418782130060566820147593242565593003149567412821731346024547388980693253121128944441657269865612138531675456694803481330253408296550195860451175364950428990547325350413208372351085447081408219986428498380343610661821449425137250813911289361169595036113674252090523849553270179620628889683296823693058488217968716964795588741240299600490976233246059051551826608485872911817886208928399113538451451149287340465783214058757620734220365098959928139666111583430904610209035295492777045570478347508242849352267411558048861693073602385288688726835535764675068923310554540260275288775908082159388251791651935834846628206197725799406172008404016970103924384231853090959276389290739174054818405475241864223456856131528511515762681616173141807565995105014844007650263656486678086403771492786469841605962217482151000400290963033143461054875375251171061820334052890637020485868649168467157553032779283468099392913162830718618495768352825879089046582937511441292133835016641858361810454967166187821770853545120408409967846104276790437611639033638974810245757418259344936479050667833745974376133411396977972702083878987321130258221442140060560828551790570399902717819359599472432828525742399323807132496239921864608924756482728735567054313716302126983131251954511430057624404311577460736850498766536471852655214812288370813413246456616109417682513114432625531924706718836794480855085825176368109035508425995307230298302682134363896246877752412876935161451522262460020995911792470364474878763154096187836693450890770197367361004693471333005558622174852545775682274936621633475190237983179618801917569055845090624085244608634695755410824023747028931274000866742296974186168717545061167551904395390717685384365598888270116780841651399843346400720450463816355344398490398728104835466452468543644282578301920067203989439990688516649342204159129939490268789633269301305796835148284432012929794205444418319857357619100903640441433684211462982086142976691834987207080826543967026856978390570463747241596580189945695050502492349104612701867019224496968906859495344836745439268930636946828144352729176897872535781626801951560799930217956453231739650067725652649254897377946113423182612953421007561087645630105290354501179169688060603626983977512031382562952034043576786145936966438745434793438937528295598861014854428417637446825524257976382382129115466735770098107217151945249044336751846236442741780477942090270412187308791865651831560830032822618166494411924746157891912631507741420474678972201107511685649221525870509722673331209056205726093907891314550327170938267354431629968591035306883210075866537150419398220543350178708076824930447485054765969237072984519861495845217424714626896245021183400084611171702583568908861513417849980904520386236200033187381128567332705513878370212916693784359779741894561563426617889379009706252834894467439257302082661566650492370559308125959831438716002080851341475173881534493444803626047256468079392650174248500841320775554055287885940312876673799054384568076715821921770210793811754480995771798860201857534751756496749107490149459449290989347121619618875537548634037720295093211308425863946299773967944970473223674864201821195902258679346508695082589169569205335549208819327198052798022736226415167165890207373977408684593134054900493317253652354037054928659067423010554928840869695528256503501776169262291841029733985032929869968030191845258718233681038042842462759383286537234142785169477854237710325608906217396308239168669375909232556622566326986680367718351413454217685467478101675529717793885396188543600305314858296327035454567207610375973730825111998019658922974704152136023106844487943868119778071316601562129299694293308542297624915657037190388632603676419432076835680351559703325300322087402497020482767919513506431958547344171025477111330587600991361642722509837281040123358394927174487395705337142897256951416560132588643348122350609393426892868514547525745723628951985055616198296214292795299388638081963463762214617877452315317750904675704764923935199733788501908634898123305912659939161250809068308669979029979330770249376972706035669465970822027338741304691626080327083445783425593264144413246731579270345259685678473186426452089846045734847239762459072948559997859820461736282682386271876302603344665292705939993222651351193043258969810974221943465243064699294589225616240026375059754200621901608423504016018971062060494690846611221567243789866495332969145676648500668688284265833710600937432885496208398834888324774585272121994449900027292972540063799998063918005777422198783965138226443876271774098024929354885552090714917219341215708001770720820273222684009928376841406104781542658704357074949788004861215877531405728175985044624078986145683563436615109258008262921456999630564588526772956610310125544292972812750772346679525139171393649956568254028583973279194059303523536408148915619416092915845888389244445390661791156072274468341037470573463033690925645485486975558524107159291337668618274824145649003656820947627026694332309224947415718034197207967064780346536374309228000565568194824906605292084184728814138859730438082875384017698551033436843766341351768376267156992939054285920353086172788224564464839990742788903959975648519031257695506529450678930298421646689518814964768726925125245233094980786206540828911753011512707145072500249218257158563701669382019897681863816742437731556812126412385898626353010131398356614104015993193515015080253009336947495864958060116544898639440829470636337580809171798816209895011577526142841680647349322443552605644923430008061136081782474824548729834538965615818200389300265799912578870722748507457948198685599749335525730801717387388787770483678649716125890912399994747651879549962889951103976613204536733297867367926641030878159745258311215133248987972176894346899391685569896530754282909509368753622406347587731561932768344253968354778344403963758902033997395211464150435570620229158327329371185157180940119044542853212671666716002824766122057786725588224229606188270587457795164147713371213934444750642344516095678198943800258425817832485961912211104547778717770495995120012233606526813164720908905420727065209456697256360345673641282986141093615848238167362923417350277595292262445334524839499136002931708857981768910862170544638611805596206106110084511396061685446417081938440235021111003710649227117309399232596364611469856195880121836711139089220371386173200978858385479077955579609330178642088322876873273683831227823864180022981685595177927271520636442051619431665359858523722209742184133808603647317066066365050317940553010658549455509112067526330901402118337633040735280778037096325836306218867704550480027054132434114938359949237547053719808100322716778851952535101334278737805436336164095539930015951609355228689271826833590597138230326054792700526022048318334709917586625958133574671299564773329506759944223329588012793091262936742369491612664198567375182576092887861188056425370840683146827386330393882637435806484517821420385898232053270569445231434954486681581324576569919077079036997372541694417789172606603526172123494041705969450544340863167700042282600835198628533832282212586477018226791241231523190312893523650360523049275403307345108798085390647047656577708327551641359160959131219973125012582729636719173582985133686343985588058022494194763274978770030921464524158702679155311403111633285358582192240677848721646418366258859098419337240391165821733888570848612909150865093020934612268260212824033494229739454458159846245769065013900171281510096423644356971781557916168149588919654673684058404012004440620080383131259067784449987054060640713106937590914492065212465260958250114531165341339799027135072754947163010706293402397889772660158308453362732558979186223862561739460006891372040120572080709828721957505549876345558546653216061839959475114329658497513011528896262589246504223648642779950065034092722871606891149151990994475545264471030266612041428471580639081845700753075580044172716938893254695742397775142101793844221222770945133597229708923861655475830509647375381139203726631436302845053821018552652942029845635294524978968834762936362873594079562861300547512086404367375191843783047159896916774537176859741788940033314686598997278783621690962768509462823682120816035299563280545386514735974688225719684159205983549376106198132332655628998060568854053590012306855779044951159878895611197548781086450478324301065314016900714880472312272992105451948140878091996217794171417053174512986383428428103624819947502835870672723873666756637429184184148079526003233864312463338470056313790971792302395837994529560490924753218505279311084779940943150726999066642409095653231885789943678193170982635038510458116990227172961387528958487462392423438011960954698662574413197167436565989597015958656420234686473321271151515282129798905388523933567255742949210123289371836696597613059384561857386452607102887030484122618331513315393981161672392141018342694756982755039806290368775419157947748413678023481725889290741596484705822456906183946179900212893365809787292534853574976760302197340454300054377939238724192739774992094018684847684576217334282280713616168314440530938405986072377795567782155332102864821025091537073169834417639367232513731049131090966145535448313913513717723503878873003835360865034457584411959498420436066351694034583206116350414443702295199171876064230578881904354576797985823034763599266613829551948456602738935893176094510841294340706162677121398959943849063983300643790853319481553633206634336579145058354096751990762190890414039240919652231885807681741810910526418814338398567829060707568810954710628392207158709103657278455520621371488573149449207974730953271507874630335410665031299052421629578598571306951004620807496611687901474545554187717719608469678134745738408244691307251224972356815310798543314091076023109868747522979361863450143336656854526293152757313974232257054846029409563769881867681516761217509529203776718832264086298015175262484717698020158571003181645229156286500284310086296191754078941932958959121258263023673981915861274875156511910329426264289581056461275828474215077629040196571530734645535836140657964899717542464324990793249508622513112158332737189819127275422273157535737027684145737914598853702426975665087770856075643485615299961709232638628730584955762472391941968808379991187368458918289956097122789395459477919185847224884854835162074549111790774971496561643003549927206478356866080222534700154141243295302642347728439577487977419228826490032255766613789675515668131524166265879825506764131633721983558137798729009613942700729718536473981963989335695149088032824714081274354236238981525048623121836361394826517148938745475266219709877369555138381286813148671966675796081869345820998047382173737525683070674799146310429716332403071381930453618752160116122145301697599760134065093152047378268857719774989720100494568391679597776104426033459405204717606202126261494207043065762555950556141315618882365766461953200649032571580404620372505631743374366156138387859797299172230589023739065266855661962024859519627483278368541798055135946874472484545044497113751521704193291304774318949503497511073109676772277662252270074979542510973010995018925002451116841650196712766129533570611720788926297955320838800399101920659945740476226553060822791919534802485126160822434482932035752193402223778512726874691323351231140223380740360284835225137046298230690841949692012562514687221947391772019881462788013208891622102021701893241280793686862353393848169960170946274548870740296174235138462263578073869913078242572725935452135329593376863734843434809210379238873302441105108630948040959716530727368333370382469567427839372763081176858442178629631719830234311607405239356779547065978465956791581407026004096545537625663190098174494863325758577777186029666725825142487473762910862522209719776698408124228247496606920065656547738935586925975142795867637165959541602559661731865116223938348215361070032666502916826395784200418861904774389134718406405475253890520107443841843441743315980824471787400771127439408785199295523008097121555125614057165155759754949006470628253386857192933552540491516991440983145637390540448836424444759836775043516070575327155797374801567930939355990860349237444761074436100100991612864069301967248876664824342361088600853163825924729662344304158192268263862793504425769453958934279220613180592678998108289495599534578369197519207258805838684006541994512943478862009839311296526741210629021253705200221535558981838566575284102824270493187006120590762833145178676805127139673908040907783673947014110708175508293409548256959988038975868912068092089776770330517788850560792219163892285920591740862507529327009658712304558558714524297639656324576032420642040837586829597759165090303427708900014570765831746369227600923585147438449536323175922000767526759937190225417775765729320244167378856239844521795808653859376563802714932009903781865705841219069754046238956617469452513359156984221546394949127021045161898689604048632411259868590076089001560988519477706254001834818755008014369638618256640233125610167588305021686229781823864586189931851742298945776978635148189470562654825865996514972555835542513800894721413892650985125928143051803457316255746359796264949873598810811291949156327419150307369967127094922701672696312041713136663962458540356052674976305553086863717465275430036345096313027927156944476291306159321046093090072105018374458976189428698567257466947447629632323374742523216629608854003821253569798350347911957005371366139523872800941938753051619485912337268826380058542102608650586749872951332482382501564607639338735871533064402496638437943500037262863217477707839903089278513089308695866728843891373708141247866533264818735893832426853173377120966328477255514707330950026215690459698720804248057706346542594307857431866737831989874883275001194758853471895166886559820243277754604029860063114080675453023837394980844226215988555885784385417489007718904155260792163151861554831460917526411140502270850610432867731152916522898377094369736886555250897233649482797809630332992353362675100682801507664686806345550324211775465827746347346499477648218401265050686024454968550398980109504661101084524420979414682838136025537843782356573677526631790426237346752047453015047630554275154116445797228259573062078178459811027600926092816481346023618557683945594216642418819737346813910245734802072405187593374854429274569892216927200361373202563316181346692678752547629272575362407193643564981698631694786649830919045058235636377320061097074107066202231130275515448877159414045839815955754521750476652011303414550450926568650752683038802636916121765427944367217985683193434490286187745068788526442700004475996354416008625134320578582402512393254229298980192880779035158645786564987967013524420697850296875808079437536582875192916056516381904870428671437220993553249402792948408996070818370069069360459626443856695733321268033042937017762251032375389181499243338114725064313237775235603657892355684559338758510660332439313193383442189608485557530256267871157215640580365506414431553221996556100945489542804090822925002489444772198935903820964289542943908104410100167796522999603916746248479003078590593925808728640287345432527796040489556992008522773071557741363493747600119870421878115534892950576489279819619871220600242524340219019142015751093174162710079454565281040734670256635530571076665725046885613021114349339339509079496796768912659904737936616975801839549009530231750497951606705242137558814762521557770094898555689621052790005355082793171180751856841040325379232209871013033802301546485828704401961374374843907648702204316833045136299343056379258515281731520339990325770027194764344688249822527029903883682291820265826488729314174766175500980023841847884313573331450692707961721855247195182551576089226601559793991819701167402386189493164304125829300452637842083800290382138952818817703403952267006029679083932095005988493220304838006642476594280175979862117811098492296407703629252804014085296725058639228831586937856535928594121855874849789270253947858367859750204308388546377483736027788873788484796518779147163377295536404507440395008185494998879776051317166836543046239251573690800543318863688654955147356301426366120080065171850893784784403221235320228552576409786043205625275262521512336734869673162213672494940318558995752733554139890674315400289594051540616528499874972041386031062376060995030349626479285659306402779717659253320477175889768402360103252713459165089707297128317154299295207643436471152606022645871080314191098084396912160196870696812866076132845801225743127678876339037690982296163250583422100819510393994499772342594263019052377070983775626222294291572946180345688608684040677868013531448900255447436074968002782760703389054582418419543305235307278045307666324876715914021115933949871285751570699931950492883758190480902209847276671555986825322755957817202854358264674887004583736316212938815754737943190552732384097389734435697659003863597336115362513896150681270424457974182810327786416321404974471786873574051704420600029962095410837624021846003520005895460564336425925902236795815721655609078875828914973596093323689019515087816265294808463645207452233185764185169298831153151740328350224192948438998177455817439156988857421501474896643692327648475878770802756044126527576243237831499003412499978402938732139882355839020732603374776624127325733437520502823070134019077199767064770921221199113530031781908195146413100090521715159753481316052825632372168916166404327897151709547528377831767566818067491824468452715472278832650223268648608742699156572993264903830290657749661786394566588174185294510271183158748854539669657097980225044637500488389723503337546903008793637827253059519771718943581277610298406452124000916333403569230144073203154552126859607397859162541105148875374461346567023635803667830125134860552094117093123206482585177676382942625951650332592385453089884176479572644915817425882746933647894404182825515021656464425639826648593763982572703381900109196011212353759881132230913038815003427822943134562136253489339903776200787046181965992050860467554431693428934061175148626869464979301226773239188699853733680712137969569741840437478450641194653754104260273437625533111929584365579039544544722363159996348318476737686231031713409151899942092169059666982202937112784909257601226596168423753463252244607035997884202193793382212815125147002275895390626697137782049032959105859049222984243995969308111666793246935337565712818024418348993160935655203388865379495660603976656629040188807508557255640811477233963217888033092104689692570890345734751195241234503686602093185625566203857930958616715623634736422578569061664937115022473308474350967735091041212728439509850548651461379476861705200303888981178009863655610392857445457315819803000168465084684023703759123531373785430271845086706603068075744618172028425984562318607023620093656496422601791453001039426041530206647161033864642096014906676480460359341711788320805276204769118919837983746321972151945481205157390946881536395965604381223527711351659155851713525325410567840779047988459659708101912190649341043222266405933858366338217568384919500055449155860193517857161686296758028306590774308405299645115701461531910340825369753091778355821240524671811224417277740261313163650776876583952321418879793016718548896060435375967035596057201232863302740655250059356543124715740868013722332031565359823668985415220192877319631569464878284435302851806309529293803982578665859303090969008047450649244692445827340806481142764415554377647764428383486213348110047173237491167406019423741784073890996404039756459333691572351651333876788006454727794590796892501204059921590880371432870057313670638849865369562822124180395364297827122719794043019095630175312197091841477269305164742385817335825189595987190422827537751958690922807861833577740479369649315757223196307141615616331750953567829448666957591441376681364367741094350556142054571546696176885659260863599047161360496265519504592220171329783729436309777381923998830250602665309902261402384378895249923897811068532218678532433575447897185805592026403195869800474631146301100600535854078798806026153572942686383368609892063192637767243784338144537077046962727972640797134732612237730588823323388601407496244354111155883136314193535590553131700033972237943787377966494267586209316902464839216543794322639546411609808907482139961502877246327603242539201198379523701264636019100915290040432608560647803275440622858557386238619350305702868123759739496484222523882761040677056380544035249981946440512907092019347293255816456238035746900739065745125290651788268276661026587806927794418798838084450236503232829688347574020972451333503225716000497067980641817184222496628564675267214882674352588506732612815622277609485295747620842240837397618659013032343906070200953472345010874385735882704392683459959504709931389379781588191794054726899071246959408131041619170366237603252501146187188311752882729849031463263735564891061434656515222371522989768155831955985071077970338916104090655892318481659921325614261427400882432765769763454596771378230320807325949375213303175280782584577919566405478648455505716762485407559088982050007511886988034251063011330668384050210479118797141181895676374939487596539924735488575617894781461876828992323955051904969322479818797103610009643012535926980424084609746941845350971709729926992353316370627806072753011842472155867386691010179293040261474393652683076837353292570500163050950816323397639010208917329684482882060720433160375937822124436102628532329103233107396417869479685114185364144306906595595679611151200667789977780854167472178744073326864712117863204723372455327323959707989520581251463187661937403046531828504446392956006963135701779525047693868527843545798187263874075531827941188997267824805383168996419515886271279434091787956788898715541021090499714305791586638740061128658497611346005559323983147016920909252727713750343600478402844070994002813341626979663722617886822332409340218055599905122993216842617743295837285779877945269307677434659193760970287677878153274030760420196582769110224780336044381296733451362956080342524044974370232660644295416502528502472749354452929934843875405170441446040711196957450615644337014053478549732857127217818102340467516761898993536893418546623144152123559326023208986996311941899302765467267538491925947384013618362225179296414703817311535718029437138448397780987288043461552861461391446682987054497903730131877158273690869029770468704344553877814315384003932049268254596426862804827105115185628714871055938416220437780836073720854000011939901734594621890989858312024386533967692559329070180859145365983314033216904238594842006640743072962438364125085584470998264896131733110716671123814288398662902661328744579818884818712491191850961981987545405862731474869518939789504519011280245387987363960321207358030237890935690853791823939314217832632112451479525160224401453004734817850234949138421452354115837959448940388599355595868472349773221945707239255146911420595269878488295512031470747593292013164563441891520954912457769743741860007755242334032181047043238499381493506854746202377595954045088168642074138805240658937790098990847396539573481225972419296120910691865683044170315719383226146824229601262773188347777609219550429803867873439293029723068555150561991439193732442103058772047709304474739563302862032792705023454465949864893338907873338364029040638936674675159668619188435451974813325275104183137207298300932583372427461080188155739973325447344885876299807252341333073470618182949359455176392830021946536520939981302664914977861267198378495603915658314016036050093051287079731762663423188508277675146920299634588793309099494257347991225966904204050129834916460504837756783204157803649669241647449800638780882271947640617765347589084592330216894509990791952417314956942665232983247888460817952440482878796933368618506525826033450425931080214468649547654020697650599706656012741629290316702273151901947184419560958465118757393433980290103817301372376056650249158130445889667643686007104972374637785114794197082305133712282022351685767679960927235657572721053138446361386481226907089378747204785246342316552390836320170886000500372740652864142222499419458649318583201158439332764547446098210928941818911140984966776204479162407569147289936752012536470643896770877205434380119305606353470905449498864893785095572837428113791357632514684142914098379712034514350329833699546867519710372417938688661752489479218249796793399625783520089194142619839151508951049225649690652224159705588591269901684481429861895595416238719656658626509370554479714353114948854533136020251708962839086871441994408613215711517427602280253505057035706242704151543194114896528603606395934293534802622627531064331000049699979577029824383517843098441359313144538865853364311099214061353814335271008708016962096493332803250422658420986226192367065752008806505964882520873745519170077860905827790476157710936942693783260351954712795168116412403135153012167587598271722338774739833735365358651687516403780248768815692878700785038983005495305856249660312555809912636237756825937567172405337527632150797586662656526207631193262237983672364482932657272357504716327899988302815777148324950418188438384127463222967700702765083202463338077431683796661330775439885021997838894420607440632265004403834848912390861748603750636819200692798036390919204434719931749707207602003284672764160175562006816099400756063458843391415878251030942495870100892213600965280206840758536698192702784784536401189730660032620924736312329868576256588961942756515236301116171145626599250463594581808050645078869184718182317165839420294411178243226724406726565568881415924626623106126808205151009484147848123306092386731778452480368053118223758611514041793491380634487407714934851187628346726166595591309964197771838938779266158637618688849610525600255908325134784375707723401604897397423673097757052789836722925771394146250186628634202875861138798518617269474930059641622752148150461870126666786248974660948360021687318253967622613758558952367382551955699237455921376119828389491098534901694628422616872991735580131216192423752115000586848476736300329200613226619766323892537819966696292936458781358768621041403881198922688383189904310039807928317645456022644461812706545946447157488963523103741269879079857251101954823855300256858914058208090861004302641761391685007886469927206828395792357528315716869550637086397073733723125855480769435098955506465801711600156540476838296380672523335558495082728016223258758994268427193689866165212045190685322230861719913690177649211004717161928707956923070602621525140461007146483441095909424775961742776764610488171654548627395006610074613176373927897961170539438962625225001995556852721084432961812249819979008860660376820893036839981223621103987363927037125285691571325217446336291264389645248000375197117196522878567088462454810986867581615567414875562397385063485963541607597779801890917715872343965257605016186073881027840355592481670034688903758238350910479165290279016873056018819851207699687494469204727498086332230860931420121273603541664204757330592560676982161538833926326458177464288948676311336134499264104700411302720851004937946576051481998969848972406910189842915939688508154502402869273227371282037615751174005562377427510289244577878285704105115532939009159333400468116541014976957940796248585598455625478933762201490964145605264252204788603383258781977054048658874982160894841952722922198538537016399641053405082581824652232753539900835923838588128506410324734600469983923706268678360524284338525340825096788651972750989923031289685712539421311447239183406020435291214110844143233109148584806632050658371749177113922944149238950044184161209395504685804585616492226285515844800261401055076900972235316108367746630298252432833526750920919445953109468526879668561652402397857311528525345395176927437544701819122978934860973142806213347215077049136104429092430135337659799158845647031564199808883383907193456590282827849041063383703507665424812995531532735740159335250691066779915539451328316407950060199090596117377499253290344378620546651044297838019214719214830612492925120667955738151499259977834460389324177901178702417942248201191894979386699286292382275485795616607309502173767000547902708125440449615969449779827308147086917641241598473550386126714688721762535928293030254832070467045746323606904956535873797961440579712790189296617884325544616085222969098589674232027291555602474662093462430891923761961557087842569706097481260214694283971688471889610883735953029615045825988807451765780588654621267722070286465302514172309109246471411011987963498837672497546545187678250357483817514259784209052189728722241232975159386695429740277034058203864934078518862914743080646694590476541417214560626250677783890567892303904883976049742040174700659177205392085496050491743959982223639549071322806915028271258785629862992191919712007729022592204568872981103384220654243038101739829130590232809738337305825745500615855093961009357295418588555639188979018265790296520805596303501458458573773886963603613456177840856520415617535284221472611741157178524960210368269143318906930255807498051316040854290403364395496619420935201921494943551778897785848213914940364213684639932270194200709469652096224923229280999956022884145739228489742441487216331237289525703238519933050517439559722272745649746028223460566507713936680088146743835413323839721949492097179411859286484380250913867540480302117729216823432742588392204202072085850448483170647257273177883736903834303397310240608393521803368867819680361835510039749286583176898498623537801292602210855926505928073575026800039895628555668241595910767825512119158597993749681564846142610358291827341167849272010812416500230285780316487553937508340545061829111622121649569059537478938955203822754058417350427983441436895254342275486903838818790524809000046588649028690910063541462639745254423937099813296546186882998260521052557974754313912349698039641072213525554474341835925912807419628069760533208151003928542003969679013129531914675765521298928017000329864163092929742961709037511519930393863268883116122136390784085806858753144986050918516350263143864177541668560691767425849537430281149643589580349514026841162948918460251297353687541049297147876035658212639337624434800045018823382507056837208944221753083780781136184621774799222622092899990089855462298762999920436958170829218522343875467208086915171183743319683839085902560140338137639680458638392999703176590082941620861036785051628855588332936780881091206659721167993817071951722030189969107985266864053161687534423292719263750303146992857802634408399397303345085278920031953034718557285261320906985445861442198613478338025100236726870320285459506877692276099915024620268918048777352374196305008802179134736391954146631948798184957534756318095062128046038513054919223964392995080577649344036151885945728258052820501419277412038442483566491168040359202589888154250763644797620151337668101975709617247360796414366935959712467778414050840260919895006452351467521526326719458232694028678444420088965250761259372735366407935925119339853456634886166576638174163883499148962572482106835916315715112092324635394472726616988806238685721483334613263508072567483354093776673522585218786787272743414394436839698960569768075982026682272668713564915543054432815104012805712727728943614716507060336711903613936680990863117860429174422314673628249984396553625311145931272535284752686375276458730529929262442434780466845954569733841098224846969863073852788213962709274110912815126527469414632365972387290436223473364115668687973101632281365489473407553568097559604803336249209263684351044933631971322519685818643017391166625764182037785749503861212153170191780060175703107534753633908951884585879382577351122278112718296321088453429197150762406788664725297873476518352505301945990197528603081277222597537786344385237804884465724336403867114684683581307608047725426209678970202335723204134281692400094110267300804594545317442104252194012002232116284138228313452848987227376844918018865366522374574440577202111510842980833249955686860957562223551970222869028904637966657438147711334510719313293664734633580564099664356213123193011699338861514794958140008613740879042175307976794453313625809434667949497524823061219555159611520648772107359869831862695015354628716080206304601659885909147681213486975788503258005103333089861676939094748031354567323357553936610275978582304374937508551535781954119381661100621550152440983528758465474493008770287467427781011049265788592479914895151598775233013437460143486095120485033630371834814963936246771942151440653328437759245300990613984978568286546732544813804371873337990906570648686015633719430416944688060665430557140623978873909844170205997502400142627329448510842898721566878361817133504632658228806870742129232531779510992943538553495386727018374657068866555810439420665454442327425866215341195265800569882438264513009664876774617303340499645140612094579896524264263344429389962838168777937748025388644371691189380332549277865304127255743777615560620934180969710874914627620152160470465169084279782561662356205236919815755888925222876896594269826259935737141730058271842323606692221093734009372460406765755877440060413929841840034864077026571176452240431894798553994807145209702685876670726966718635699541458427128393932079616462868554621514264555784885934797297618325991818446465544468549470786739902068077411816224932113478299040114828806082930825245320678829553192536515132144940267107235358967386329345557232882734450639598248255645697216527907267294405785318369752397648341840370251356608990365544316641765221932896941163793016843139223219680826846659465966793600303799945248787238477159242510610255709618495626652549714854834825984729600888579955990936179939153190133502611835484961262012666379921872548604523563193230047112919038716326003144210147169234295990783417392867904588154292838645027970539039269683181856978960314098601745704621670532868295363637440401077153861046409157131433052369178315178617491450102786875037513507878179740961473797200280454918263983254489888257963188021996776004384044718005677710744337440795396422701441202468481290387857947607264342662770284373471260072605464102893925609020206959350994206594094525672929342769411819472552102709405452728004408162233554829491180931060791845234852703535218278957804737947445322525476841950633070525971360636682030652842567782406721120851701588842534434324474804464325805673794916854645825554790144837368081406911795688433699841616802373869803033624323271580175870554946660447092199688789083846921622874624134664929251682737150619503059714323499103746019142270344723392939876550261370148255036943016190510101064595289483455565954159688218756788630455900731522122898076242304083709566931294252339753784633464596280690212811665513014339459197951728217145989172034749011605079847440790854543174968598151493469080195089608148094880564688043285578158356734394637876144345690935783143754281817066873775697193406171253834656962530944453694286130536525949315119937709786390209891574613063404943756894255346122992311386172070368950970968525456128967889334356404576860407728870543652627056142785027753683417932944786999009682327598799872527507759520018302889105530535373716123128842987439917889076092675945439437195074495345380770842888719920490551242168768993927964515112705129491118050316923679863951081011840209208373426765846438236998727045290824132421822048592888563580592549774301843154061464610619806437137246610611896753607670168260640996745197673059125696981859458928202216317479248137639883726240613348134570874633080163371754313923614566849225547284989947735909032156144337123494307441216169327787735309494061800421809789148042625817199295708227041997693337650344531123669358100542617897504815311493995604378635714269357719962078950771885072938327421531005532975004825845041670917131326484821998035675121277659595498642384595655438008149404557966790219143118838588551901060954961007412694753981422422660335267247365419211208391043875285573266433348058344441535184770473608165439807985496120931996801915519781943319980923680970085506040335215888271346323935680960732486664885486430419925767779156415827010199729674001861589854381763910303705954561209136059373698759266010701997918501599279688136563727150912480019928250201812911084522216949743203931457262160695566926467632486824285542854510384817521932953514730842212354795419837529183545865693968511275325667255978761007204173599170111135987284989834423875836797693688852670888252962921057258836378333821853261258181773637320163478497822502445157124851410781975994019551622800438852790457024938111939356896310874837107747606019344087798800742671067020664535761955340560029841864686407746396505600897553741910389304946733046476131062187926924641868877698594529835040575437639728877663124111870141346063747856789007650574629854958902195075484587715996917868771334313831522945481603920773611479186786129618816255006789734345748457162076126400463228687162839651012816191795593790551296999156579020015098872040627637640742537717634739142747129486137794213506850236460971108662930061098311501794083637253020272874865506809703842095395143925186617603607332790692702695757318671236730839309191995407649329157658036193785592993644632775224177121179480803883856856779734331300700451619894624577284291100663531414191322023326518839661094629613589017162816399796814816626770381645813801163157128356989883591266968336302940011971921328487021269023151811947554209990646211592774495427158083766286677626045543225691424751017454698882635872360785983119486937279384451720892817473425269919890459235734494631378862210336283364563360565526685646366589554279083379055844446383809027193228790277288725107008149656208825407832652256678455495930575218539400865539136593689942929646778592663132408900612615856384925704642074009464914496163268947361326628295941787330330562862439138204388655561970177453742584890605561921824271365872010937165087892327705738723014733859573975016786034948177901033357705563197263861881358212114781589212880543557601611844465408803019223971852643291464724726944764500817395731675758261043255684008331367734017296158373349314965563381950342564866171969518345406209213507436527529555478860468232831398804725262831625146743618383996292577007758255681036080732141783095263297484066138897850306060220257365110213378701413733748079235868843383954746883224440455041242491051891956720231734831923379802741426445520873871426473405738140517789897925650466629922838685416467940542473294025157113489583069990558016914988246729261434048321725124503681706832104143600793245627274866413508789208825504842074205192825008303931822315425887114540835027669496214794709777441085858800302032736143021206818784400294426908873379387598578318064395363082619340844060756006082684145884357072480688805401553362119460924603711210261403948093153233320858229960180103201871412290332447041175585143021382212155685529873764374981657461747700994099857563594771454417120513243293293386239178190449710588487738991307042251982247758551140058603230364252691488557790935678098984215984458760977335093176296339676643415719214254896780286608054856780063967751936824897880062359509320708896554611970145748423545718876844648052540303789225556330896138381440807197897570312493494556014340835604533328567946804770096583668035983656598408473563192588351551305599177926554340912870138289510410009877277202375589266181483254698239679959051536692417539621727228331852531501199335764662434729409049135578361372798306930679767638746730079948714559256564064879011549115066865612557578528960624162684384509707166308762981502341586853518322028548869611219100461974461390521433563806432553819888072246844943407510629849591147404736946622062101273859593133276504323316263581428870890206144678237393912290579858778956660898872964935177079895979583468930779341490890451225801427355163413368294124654396560005842387476142365456579716352999758279020166568604218491950611940810587400457030683437489503227345239183587935990596661107631416301688051440998763456720378434674732581747037114335720083395814108576427753761719584671628534787158632116634529671350196347690411609823265894462855713169427294034379632413440232772012731119362688936601705937334750813066689747599717626441727384568238980523406586892860673664764983441466933695460298571144465546399330029022855706086166341875785109162127304553205530199892087760690201171221504887573575376963565397753843236418493118326781028685617787789304622158509894318930501097879333592060561968283852816079341637236845363041193801611122834187258393562247645167657528356237592060131865044751190707189318108492437445521097455391913490604069773540664725484088025397246471277811074747237432567780921865653420123716870929240024193003067610327153370918944581340542856357545426519996248466346853317810222488024191482493933083291347421711251750167994627668884235093855271133351520037146719089727532223657453061228051321564722050385113908826325412484868217911003467238154748308001394827666519993037304771496388112625313228294697099002008380986784546273533011743078463247004571676069527318430252684283170078921768804110677993999499783590585188424351092201096492058093287555841627098794286036068405732018556110456293472422517275867282446066937264781985383234481339156381407186110228516136750368461561240241209846859861406697136842608835648773342573084708204876575014823145182211855094395205121704505348196465823532580205674555526725152331009740587555564402214874505214495362363638383158567756846290554649165439653755360263236489045946412311113311095857599302236479116935551013789627460439963073360075456582420905217144984275831998592715920033350850084699120140016268105233811984362425882085092440669005880014614236331555129891991046903197053754118749521224343118049850949705517183131999505267936652752225796578004457239103931942476505246988612277612985875025164613627365234811972321367554672229164613405646439758121436380607145904622908450368234957343213135865768719754485924371269967891408837492792569485384928736253288361361811053664496640863745513396125471876097066023776571570813442390867667537793307991004148879708913104373461767100934663850262326670463746000810834758307299593093776933405639807234220986045772513756226637418437233242236266483499573084170681868090122887628285326873689021798231079676455406642813595333123459927665869790277159005313371309552959386858665277485817799571595406911802594273856971327956115420732074302080437899357614091801931199664429822298116523767658910667789965013820042382776523944614478564110008164174133807180750521444114923501388211353775764321726945613995707375955570439590101396384463120547599397933872440647752773573340713432112284977714440652253480823944988043808818286765387967653494021197998444125597432611606927383667031729047241358421063393578710755759216251178164333749386288248604242640980856570990405718271821193016825679960918340635309087774430057214400270986740798053305008600032792706531483648432046780414720873820592529979684899468029925974898200022122104607145401639927662545279582730898011829249861490457364879315278799230845750442039451745497988652926357216631000070124376270103057058304014972847168342730821181721142838416953157467742140830017958474974329108851295868409962741357495390534170863373565274999013275861238330021684605077896297492835275262150056172519651914025382229171427052530752874290466968104013155272856011582737760135818306239785951440356464518626140568212259351810790943463422136342219033586085664419410641898759008090873505045570725091152194113737323728322344445530521710508996767512398765546184234003948678766987421408522371546512396867130238396518890052755084906101790226584502613431370725484858573433159400793954468963881519459348903916571140962168359341152151942461284448253233525074734803552428960558594299262954805140303056097831616260958858603377447682855698665021815582833887780571749393336893971250993303102019314867159111162187666916592301706991507975527465750942865875513533504638846491089550668240436418162617143991776658266334458126202709992751458766864900905307414381188640537232484200716947630981825507019873104582715925180882966082101545356515081061430189425407747667558632834920699377960981704136738933025210812900126418057998773978021889507511426813273783136694206446661908457343019688267850027194131428016480129364577543466193223102842713257641794545015010948060550863597656982016192813781396484719032694646897930432468002281545969810630307401376094543440826921006075840432006265692711910881132393520134085701977750015953423942484495976843487328464250873929136844924110216887073910900274422317480939362245410434539838205205557281754321893277187392012407714360449754431870721658584538106084973615388801548099657737817858472372330571249507300631980116032052978967026655162862157719359611691935357936339820352124529441661812289317400805530847420638657496060004294347971929871250618092960113423701263700029126893364639448299423650010471635951764699969762290234125625960098438300248653817789047105980173916565725019438475015786228400644684001030709699895811601823001188238682885297061723703247118248885142456216322550749865358233481080771272551572509139430222114346545812989102018825278564061250745271946484159339063019732203867185857220805066194546641679847571448637396072700401934679981265054110001865180052039499308039377936792321226212255605286342263291079837052922131202608326251508946401390206486964662750690715403902320927217781326140618164221185311482607860133717901917309302094984837998839734540604102243332603082618353463383360698112752324813732163784792926721502473436822472435171899517410466933507905816669501159114092832111377142097633554479434177246332575868749651393892041188091506949480797174400485833622535125688686958568482028287482117547076388349073650214631119585648070310625115256815016854235174436496602885573919402725578830189374097001686782485129952550681975473439005928889946050602617795548137019860001897353550847919776094433820148636574657055847641002084360267603609017588727582064715495552326906409186044735103449741077458692973650701209547249570800143312007912455625132410496128054677894448021443700060092550371791123474432211839720793504674376223121969991387366800217781785364858001858926690911039886413900504843184701971385502260428935320677042536888237433367218845634474023381639206960964393040276520506755048377159258848546350110516892154990802110939380038573018025874028229751201244558764867725499650922210415678827344522384597134265387766148362323358648461236058771252499273272786332827802737299990063686597412253376086138848312072831444532354175469115527696338670625857125177093270855911673669959407424031007792419860643227603004364098312706450379301933067311144384077328274485796705373279854162179175124835661094142828531896789687182313303914560913602895058807044596425697967919994591887124970613724916427506300230242285238935111504530736432387640510726929670101250703770007307041025322379631290443810609979230086232101527312411630736882497244164705832226350744238690671834515262752143429996550481014376687069110771989372400251739907339946616395424600971332396393366337271801563174174625303863526447176237750498851400424852788045273843271134035826752565117947720000247479428961038842134300719838274377064639087387687860695485805935759562570892774517338379434576491445340233446740862210881196788199890472207099258852084191588933825748511623903049861357619936949107073405447226867170554669465708783054598560711614126159096353731988630524784312951119324787638928874013106063107065699772908601499714419901010352677533770569158109333755443926334805249857869219660170133360636633893056214889005807703089991742414467485775842071424819677889513287838047634723423094762893070306695268835360364701000920061854018805668067818294581354201005925542505307222101659142288401365215830883924595841972661064199379534480109537804063915693707845723525355264444014080581931816697886716277743564500557235701193007501024359437968633640394143169744589203979499041046200119986087978512810685283221479046168229718752957055443019312289566189388477137331027498921868172917323724523141614472090204409645586152693500960488985764455772554876080527512268179861044453480159250421859563861224725388929665214255200169128211502076423405099618667599948526960698897545543741324245980264162271376969245017316629760730529141686054594700684620383762908931819978464684589697585310824606236503467298816726924178024865186722263905842828009354822637481251685613782446143407406983812974157788679035117560689975233394228429372653120693373482174210296134511356679361892342255982563830603486409586100531085461488153774774977132928236272155619524772503724082393188089095809066691156677843486007790979178375274450126744308633370111472878497152844604499078208503957792856392011890350249152118409344207869801380472846366004982169389121505184014829976304950824370247658586589574499602208738807094211247805579128278197697941416995943840152102604791895695991764189608446820416575266483953309376100798605076417946465618818470009335427004420764536973792448167268818728729285142196971215872320778382207465835250734578558865307162487418800481778726349083712847682668613978174535711720742947997930372841985297877971950104891459141784110704717919983418622213449044446430587888991446212433909589579054144537347379428441658695600222202474811938670981729873110324647286256154762964143149002468790775677895804426641358534850452520578792507836940841955533481359290361506555842996182833190032341925235821158737028387830580517812581410758812525265862947491878473899825736315782410460415787079564701912897387525156037780995161210852970385968527604084572987197691012250415698688681161823929075394834060610484798777342889128513148935256518561596643713602456511506101404909937973244334668295025178428709185594620742243881518886289434848366796106494405050642110516721076652184313328389562880987277112189413769936100042109664085601056811578219667308782716658230624618185571923563858145860014346337959428040846823457332393228145285459820889130430844660663135935306193133758925370788607397312002057481416642931807720889471686573100846807433953182222902582739528487111877573352025632696330823609442717647610044700823643105817226270722155180765953096973390858630593995626337570191805094291218971550076739364627730839978093925735825156104880900101547811040011623715980180425909314767304091685224752116515649838652461448808271693424917711968286219976776942619743945805913928322116054849678796613197530050608578961567020364132520207508143561743309541969194004264426483217805863694331498201439507045670433269165136379213850119296583285089345916669706802873676737378075651482010244280926244484862924481945304994140021518616505830024235828767577752496870604662937358767815257941681651979813826631318971987091080959686390806980929916378163510754243473812302374532121327353505421184924289326166579366354169908399333605126776354388755609074783597799942738699545406651802539241874697802753764008093605038822279453944164020649218006678675642093063496153796625385280005821227620830493771756094495514303823557142232128905762090013051501341566197117316642043187552805216154389816803829944008301884373075609197920143266258178104083478052687789381589571888802255311470613968113301702600537119265944437713358558325301997275733175025027994834693066579639936451511068089854780939965212372197281325383384046619564576537823388347079739355791334256054222974499698840160740196318932156820060121011374399890848648471594873018641292417234707698873859104098656742637104218830276583973165383910255821033434594662466226819528704547353096011612333176435935983410016275423384711800021037773685792640690211890429494377149924591689394113673658633645331892645727260977961428696100807330950288286376728963352877913997349596210903679685085075055413963567978365848035041371523941308919518725455332733280248229129866325936514994384412599007852438204313910667730776783971794948606339504608150535310441026355019442738092940421073389421841291255089259873523157915068827607897268307513789856077828081575959995060874753014838744699163046613895827043922148307682780654701861406386713583553416967171834817861049702996487215614613678996569467481002135028319134946357592777065303167220771639379598182349580020352652231643883916411598172389076443140793089467501222762276193433580724643076531024317666478979194593378877239731869927735818559564601644443479786709882238789627307604209471753425469198643929211337280040741610595192334292129859412837240737263802903788803248904761060986241699411078861239259624128421620573931546835101700552823337740690016284517600151003866859138450163184569619894552596598269788019605162364338412475602070221565371095939622573442258825202941770033324979462977444659145133281185309207055475559716065311694138137123430200754857801595914246957923506001580554423100109017296839245414650978243976030497677799042565054758501942175532089627323534893306449299401931315385573034776225238067932993274434881888295428165077829782655014962968054120373161540301117076268762207416706893711337072800192700527919686576747805339678831210261952277015264557436933736823857882481365034802897589263707641166236275700053174480796381867518301138117838012437383241901837400589101679448600055085627486169671043187242624818518543305257800062907392275179379109211989468351621650110171978640870717566181326432355720245878943872270698978076989635385694594721333398566361021660209543557952129954864547712033781285517332860184144178617614638080478452976298754914047886496204612895846854637350533650703392555808676388862728879676548810669235889232492701548890542356238261668723145647002174391349414334017787120078123902032075691494774160133342981570389191659010008512302306638210783577508243010629860259102816261208831927309343151035631876092039957272239402837049134183118560804100712884897266556995168497150852693475837619731945050655321300110518984136289467109799421731079229547125765150165170109560084040339734678425384004566275202095968367943486129745287825086974255246572189222337116192816379715531715586011110183425097049248393728545618457435309642819353964114617713623565033198164820285855245756242172169814276261460255336719623121968994662030022763380291078596942212607058058045309118071896902258883210436276469715689334281262999305683952486918744018395793215766850134785916813551771149237860041042565795805553851743066409292200435453687611929129341651517603375535901861848786136590921633335658412448762802431244575366837667049373963485086841939948633059472016808656661253852128256154671973909431478030076696042003457087952295644730766672980338926875280607734639201880303071844826812757718818034483961395250136719712393314512961405253143110793099743140400030866896577882766155513610804564145524484063943044492500451444574035700554286167306177951453701416845288726759119937221462304021372912351297773585091684103509424950751278056794372343808750926496201457231602050428397216536543806552350559830605694971066238719826503469377366867737564883948270591501088250679789673933904950582792158107242487438568558967783929884918551460239049906596781409757235278023473023026860463764705571878236629144701176990198909969477974947442568605774833529122833107723311731737087118832881683857404106995645357664307888562373479918703986892106151738313028578866312233639583901979216370258468003183051781188303757360100585374518889294966738129838720012333257684277967813788647862376640772609639483514818902688157493772835302785765859602787763610045201765344665667475532511059376754479819928734780541097843246789891615852996740307073265379233549067589496046804381546767727589049808113863400490648617409048226304466688761290894631292911219342723200364946732380510904709263766218587470013212898280646242528371939588064437069738115516878203251844980086881297226340106811392302259570853642179496151449692726974164843637445033900057806038454856783418352698392306189226100559308054306286988134715584018708104449778802678439837893916749133678606967823664990567758470559098342791012404517522012365055784721081344229950372146411733826313542077322747028520545863290475635453884218904889398231741622345776562395502181988768104938282429478129525279523064885981543349555552853863740994335312922456142804407173678904544298139668246394626726594507841004807210226535242359855480556561323509308415938718562199533477926877526643183861579902376693349815673421403148870945568165225878213605140281307358824676469256019533951536116604923508120924789788695127130695476291504913674329295934608147829028208443178877716491086899842933954897972069979758149300906817815988375313651024781912729830678238540230389614125777357396588659852778133288046220497813525374813757479046147579385885908879448178480085640000179674389369078314200203050981991591389494814843809877819490866798961919404143499099564602926593924719337757312218137307087225226238690993537748171661820363574355622829792630421597436569717104678544779713224081280597199404472059523093040297349717421223649260980067433710109542128087823809415272859843825465661749656091065317546229881365538356128665401576299712271635913239258331941648849911565656510038746831033534045997950362022142459951511470777835895919804050303546827766380434426305939355453890758900889181126167640511592574654956754801859148487373522839974121113446144325858119016978940153065523061940616105543872580633456875566826011021475610522689587118201128387731247616632256010374348476048329462027430543447321397005052382994327081434066591502471632863540049059769883763284588682456644970169922040045797556011538365545444197338808918861885349829960172675570267842663485457796388665236496524175978319757514475030523608097061880346289143556446674004647938760756711219102508760400915648198412030998614726985922289017287430536272318608494331901716855082491223078476924632132264113864361208142520764423697262785212058755007770203101666587897131162011219612209064857243211524200235030389738166242190470110796968720879539350202565121287288203785442092705518620177000370033588197740542021250679890655814700561800994138595072715738117048103645976319618005449438132150121604564373917281833398859049827141666662083984465370137850116650036895310349784714365562888237564671651537092726248639811606537045726385510875524363317907029546672615221374417273882271862468590819163527830276288466809797093250234375284127934286949506792363592948664400028787138397694540341591406073232992099154076847302415980919664168382230513654950891803188403967714735584652904918452297251645579409172938034576976787658839209226289917559497698610717697291007906855925957559148426575823293080530127978157355491741454677602882652557618373187958465187744701067165116080936992697119321668867058418015964940058604132910222492993188266646345709261957243023289142877914551953584896695523337998313721131038816898140694334651630245198234613504442398392377096793955543353656185678542148028043573497309507545619063997072248260577284187090856556748804202902290270850456023791532989738626760612935964433970265866388770792633363065372580240770599572288478714297101241954962972638188599161657884319233551589574148599339802272246405739402683682498010135891109406802416190190616484050401522563883604700021957329043230900064594071433929169423185120070671538450838463329814539065182997414020442935382500023566850932787901107237342085214567802397922056542589118381082396628916685015213420757760284080580277989741389431747161821080677486768139639612246942917752035687906358412844946818042954915570298012390605120772153548169157455185608557821927476823867258172654157783940556800809588327782246885901183111856084661871442179394270977453445609958689002154426196828416538034690865526642169746109162440495471988470216760297400392962198975013567726904726196148445069302456241751213482170149568094829720609423508423719428239371359856319452803169896207558488520679080890241958861608316363370740856298854190704341531491346570998206786589026512245510649125359893874866377019203572755753872138149014680202492014356584025647466418270809146819484361061379934860461484197605997667914815627029346183901292206318146907742468376608020406583357197725771796865603845521296673671576384457319556364591549013444488186660611500994028342028248895776821959923054429259889566994568096011363127532649682478296998419134567944383213275960876118512171013304613724362989608711341788878185302482639128477228090978365584148587358659251657573469716869104728509805411946314028577160346960740851821594288754845756512295254194284499887302009582930453401831814026789265034194636248223193895592247539487618818495848805536683716512139733593904085975979891358548565197106594667832207899002991273875180525209829144997884176870382191500887505615985903947545157920372251530879614915792256106486306736095126549523656149247896773585106728771983751097149425216411182836330186390367861743676845943924833259558222382542711540551185606392607138178144696537522190483058299222879932442067627971702035967697559751414587538109788414980360845345072807061082965538020309994360855189110011710812297221522515268902575218647972273469172013845549722268703288724669331671306779629620593391684990766848416272353286157259341626054829198149365070519251860557832166456332697138712769702425005030097617213887735927516234939530534692078809808202889130383906373827306451603748296618888614222398635379549709198854924740451413209688554605527613762336493450243043744781016801534000066898628186625855953338521793858875328310913493818763226139204073265712772436396885451694044466612794227094089814279923030276924539831520658471189638586635553587806820965928815043875946022778379443378241527045444911039888503231103955793962851783770633803143004581008048215531822893824621141104700058266589119190870802451694151500696442720127624724891413341518342874318722377607013161851476995423602845971201806441813032194251331360171250109789820609136557784032321467528051960230057547582047119848038550755014194822769549512642541595068752170746005855327211719797771626861866589738362795342804260306302301817677970350361067014003473486900817035444792465145578944212913045076446310891689182962782684075537796916808527538764408009676232314912983753311842939603110879613800813296679421025575623411113152023223337639615563103188529652883494599586807487014122478657398156590171601817062338406693559986788927617742642339644370625287153405628843852554073447075464384019294976616365976072704211619403155979561272712905199463565674979793056685773001571771670762293951486381562853186567659865229570809964238408396615857035470068994027802521204165658039469352723072181016631182249983825408485529270939510439488925865682375753897240465971949960735569692444536558179484707648296712025692421903198898779908425912642886320393209053136567531256986805980333950439424395556617169596387522437359029670433985640171371434090463037301902462892743628881590725656713684932543836204523096862052491250647180226574391358315245932701493151686413602553439428603854569304909633567849529710208211045110975772582823171503038139091190335910036032847012028078375521317104818717721116666914894219721515733173363761433368701690116349139068267307726481592981983787918744263932564255005384131174048119206635320620494829033118155023166893688828855720565351598656761127462206768317577561463072485099290199983259625348153329352377188589631451516321506092071569284547948787109493130957069916726667429235574601135663814715215329209066984904024336843881066776311856728671310813499370018647503123960905530828785030878616074349792466842827313883595601026922106953745806277947739113084344378954036275914192621552603943291420598821646244181064129627267092048391836889523543539492823085745622785998826219981242360294689005618243761684745566571966231936530462845487252532194158010379395717647126596088930945051641217840991424351085136192797500043708781220671080896353969459675078573656264765521631645109675810638382135406937339850617188049372755334149871236571895492988840994753679812560440188170067016356149467492394221297389698401213280694988052055884785108129925293927415570495060176999498690952120514350317916624005008816094486525551824763887960208876312440737121121797255833332658801797784096530107471125478214985639507806190020698032611906203358735972772061015832873321492979202388125816383250146115533046721156476363534113480989479791854486518799240937069972265299530075102220817903393972033857257481904499336007546487829124326427385381296341142860492657878675323702128517656726996531972871642615539695891633104819785050637224105456358917470365785565934955444173665570084692300962998592939972705828356584251188713944413068451367499417312539351943398566716612507349190334972695214632053042961592333582587749193281069416722918392637995119657001117823667354996133461915121004421669406224058102406841254815258423016674369230654312906028159401625580932152926953397853528404701604868591538789384325415804356008992812447084982797773061370899176976990573743981862626145601671721458697799296234651692690148021789535668302476385935683149873277254455367152947475179986135392453237969652811265411012704162357557201456608023918024929729586517408453276823810749814570479184714507352746546720064204122142218234615030919816817507607081705577994115653975469867640035131945819365780335991125704057732830583473248931504241693737235630986979258574699694826626516408527100783656602990408939589928035707701890498529944904123027780001275000021439302480087199934484253234959194636149649555309521284902011220536512388719197066099560545391568130087082293766786380841518123751669934834571560415674518769824743988230918177053142152054554007168528795382218016995859604554975616609394761734114637334461127605074744884753930117520805397436099387280309076464865977415654006912408684553697539276744014934268884772970036636753118760026843452489208102529542395634067278137647249317247730956185046351123446287650497405985808197314495997188955504261514994482912868552396013711089810467200904638493190708352816134862381694990233605375067857325497157852220609733167767807746290170985340636300094840292979340054967946514402719506947794781126182432927804467360494417201311393267897697837567921240687588785726323020977406423117688851722682117154463681320105210176465229468250527996169304022568552083278491166502458697151116817929050832016728170527229075276526110158439472992271213546805069866609705112225472375429066994500169502409207997858049367213424386116505685011286769860013977998269766814029887049014767420568405956263772643756724346682840916303405073250399471212263665684681140652441768673965735901025874998298223830167393055281656837394389373283990150877434548885960062230855187592421810705952534073331808451699828372813766697924520603992702237939508592260934818783972188510291101608105643914998941360368131639127360993624852228885756571666790794975429456881226686191041130680382927534357644679734286052797649490148333815862175699399455917258296163365506213732705353752394293412103328892571489369378886712074996093965928941672862952727348627856709204678224306272851735512140678354047504237519071866665290781190590756487676358748309882651999665804370736740808774913667570780536268110406332087307942613453914114224716636440621652206118222497224191962962063573902045721355014883058035918589226700584540354772927366101260643234830943023430879675992654515228733711772373465881596089147090377632007472372301546920301053631078607570819357305736888920847730440306577387106244084264323669135102093561226615000010764089707463372861722930316911379807147608272650103340559458699512261264007588726289895793137057032785818641106385190955097698946079441074160699945710405294193858935880298964200351261758443139351777653227371089648497543817526531919959565233170743287200910174921598761487932165327904551494921915213274486592811691520473683414462943379538517805132385807319547564965140167113669670692231928408530303993771668493722716542342522364457292812670841739955671782769940860026013240573528384395211010659909424767323554238603828322466919566351258296481989792623293870378009768482140077969779852319440601288172741725743522762800390560207259676395589730268114305819107270660735584520414569558531557606135148530760325669626897188323300120547378591640960269226801123817822266252144918469257131097011866796046138054524030745311190117685581711677404789853912469607521148464612513796814130445950095976490895693094491052517671817799041524405291743787810439992212338585045991623362449977386126735100552473845935581996054003611028587844025897818684869774136754411015279715106315448210886965675068908901090120951502656809840367123317339122801311977640758579243972140906752363666798493725452763461237520665538683209599833310441753626999655537536473451330440778973486296118372242495831727907457477244935225090260989258490431240892013913145410372359463984963900983533006615495786798198928482354612064589876263624056994127576888972097270318604053277116388983745104305791461627014361786072114092924942795327404710709480415951055571670297546060958685736766994366902243624177547733346978098347063531746634075682628086079364386838198970731815240412847280308508629780492877646333715827288997030051760230024911181293431823531703671662498441602279739850567092431598630039247973286468157849250643026688274234332958393330507425655509472899380945892412823489517934740602808569336628645165986044797498377433853038773078610478155460290597722787803982960313121988243753478414791773498394665586978884080402165218140172795237177582569298906979411124792534051693579230485177405562310162461708092076018771925420321359992935192661721320033050174666182507294196135588287123576321732058335698935792793285685980884888279602272394512616018867373511587538617159287515332733465511054187135530195276692282857728752363964850136253999280545486287776973930021011735567746342230926065507571441149658875221582206959834751321509307761943234850779074686196555804085000025640650771155841152443444626587010542293706605899675264442254147618367725924566871659507392751639451924933294653499772574765200526404600493657752621918751472944284970817666426195409100062252478943161205520197460733999981747524503644550882726303259586734924482013699856317978288972076580462269469255583845739034478873288123181514712240591511187879360678028400323744160460433695718142032356979078707497510382596616073361393331455568098384404407497758614355816943303682642947602033196449623994052977674864265596514607333313024127685973661167950293496212184835765199912918719053488826135265371152350369507594008589271791306479393484191456459191413370215294716578098525867742599269946220244882991635426756191919695988206769930567289981796352004414687741142008320031913825181688537252101632439388385959561194420817075709657595764660623412342172210698798336289390599317020869859058632856526493843411079009346790002976261743309767463899912714130137823736975614053725692924555705336874170113701893433121296272932917707635437708097898957371610684041706803573218974796880830800978517871357112396902799036191921423386400125042111597826901039090171787112987959269015174312717051977498215891501069253539918244362900212181649096204816839533267100752499905996875917194915275254227821859834676498773281357719274298347089985878166441191696444827349096213992402357716972830823038152435812249226289746610592091710143297559052714852321823366612803610070704022239058283816727495863313492587193115567853947686896028192443247111992737372993308310835957102100155390030304101233193714390583543053451732564396627723534469129670897042542085598264800594767228459188045020038643372240992015500449548227949976546489784713951233334707263989798314502618060986883902763533455336695425438479498399851794831274576934500192241252520686777367845991385290758617589345165513868981566913513671635412773223150270836177373781637375262799395826119825682365329555739650183556277229708324039040483284459470846478698212991121007358468233499621728399242642334138656404297266386549503512518693959647778854501325886399357563996183654339962265997011188425812356630875993936238828883258128079701198144136966422640291409057232294090224032796269048540468435407493084919173883341886225884362609305768930259196812017224164237755931939004855658996064379505382424811792345306838081782947456847393165127381673787851814201471257040287701799408023548818803234264236958880709580153279991160160677786873762188244518360167378437198022067945935540363235526460455766366873661847569782232070235519928436665237420165671205048357316150164214292836876886872549029801429066890637385268866474763099797442804879280650481682865396619710529080414652283271168907474513490867012484561057092489885324069517716434195458470411847945968243081066445848611596898135161984082454085843112970951878819831855719190612285427354739190260112795295280738694673691178916806399539177297741681364989182618061902976987764298135594364204184923809902843806801704311962581673444310002818212909428045735733223727359798696452175889566786473094121593096910216316244704288454417882472569565779166603164573179135136754781648191764843106888052497795541760000887789191358094969494642312017906773295492923392956958264293155142937299971640449477148315833371498373293492472814345014459564704423587042003997810772129993255627819754152490654151214569061228568729001418523530568678990071857194179209518855072008953058670025932519084358270319719216796867408858064645218544361128127885863904461647114175514112291439249907109629773053918736535543611822942675761865016848997689800836125439956204343900194112941442046287573747545100967410009397914192148156896029373337725598786882787632594847432306623753840079188446582311128277424577900371895033648554673311994135475071327613075638716218191177539144189426855013183934612772167593509131968581749852136260644887950716756360195062647670757062845467399161485255363852396387352673677917368655477665464407699394622003997702660166547684219458730831174746142816256491763107162258153597559191049173083183848949486468971246162735269019126547840029403873337938201289828591395931053765464011201899482886351993195106280644718434005099040616109559887523016905056775779370843051440367797699574929689450897772390338709895001191762420853621738854377095695055545489706947424537056875204115179579481381516376551541488892895865832165930432263128922837173928491031931367923365471705633530751853601720222522319489111050315530185830398448174225890292856617619160068010725911252293276061057818969556700109163578735384320462262704040917688469630824592829433083321785323412112312675510214047094290751975368901934444831320531176305107173424700969741558045761237648903989641163663315620910007183147338837354600271826744022241510310746383380254346596324180738494931079348203449035753865283655662451720974377811785687436556278363138198321072809473740565200564189537238754282152205105945319830874158905753763424986747188209192713664456374168966170305503514054559711302838406351435875070148697147010608920136056032400759100249755390134781968512529297658811478845764113673103081366627799443231951137348564298955711604760701444240479763244209985212895573475469962751754382259120353282481476666485315432436183286333517888473828888483779036286077735552864975713747159100179725112292829351748315122553459961181515473281268410307910928102186914313552030214049739175837082938429076705556196337456795869004176846021494844217475187126686584371262682106955941003799662840139976563982871454457474444286313678074059462478624634653262520204992034866043527328362147290233405432685420326369305323049124713996990126731665691108085848406644261290991646606058360901664436462600510781088132870822221047938675876374491827881404924511024584473617481313909822692841932246052726727487874488225865497766625748128910531017281844119412277009843869751857876399172692310203779599227884479899340584750874409667852079846141090421063470143405095386146978935716101811812449476955888839092035294613074757898646854886033281886978142224235549162883271088158740491757295524554320009030085174083389217888999922363348542573934420088361517274038143569405784218475791830984519977953864840555499829558991976527992340221931246924475223703272733779320907775351011776080009316667825846967674691925550859729976511669771010569947804087863005464072542408540550287777323514968355604264034753418167645393796057679057149838641153086648525669491195107728349320326657491355836642148717314576223934322317621272253033583750276210325365144016821520796225776575669587118486352879468314270202748868498507250722656300944729253428376070037283510498470235799469761073160816929517656191559391706451242514759293603319350975425645170180386428978712201302833232222406660971083041849789681802436599961046576385222001661283402168851746633952457726299772483391691739624511143743664012401701733816710672612106182090923867193138822903499772031562314818591238167924891148289834959141480247189169803807026741148384646484308796298922492801065360319657434060065022139805168083848504051126621954127190671693432036005509032232256245569345443608400981595975646897830143673638727860548016654420681152812203550315169113307458418819248960715903585153817357584436750869546340363252331385676681151956163751846710850410135375831760078514213177558227963855250052747459269590935939028520406880058025584402237307508330843140070593774276421756285925266147564534318095662374107672336264736186915860948536843716265548742465855002214966761481165673052578111876340921884998856787760125119334681851675312040610249912608331784899522292238810975611599319902727759227254517100833458250925606279516921461328479841200101496553452893754651061383315576812653403373584067893260056408589072621431699640593021264634231747267145364259909343932739729830659742923576407994163139031094865062355320572934679381854107440875069805014920170316265171882411051496621053726305197593685994592525435630638915034537044264131816264424338833993514243668305622995335431102257862903046287314673536525655206790359449333584314685558583879282279258966469818821237862373388277265776316644565027642792462195721645342532775161904868799319023304324020929342612913270907248211526013230463598410600293611513430275353187551788022482264829813842266715922736730759065865938263029810202655769068252393746645138263727533660846502778171557714436738858999247511552012676429588680720958497773189883036775340552980215712475757282610254170927111362552112239728606206415590119985516769075097185506958629850683885215481608240530823538431392808746874556693711511202836588262873055626858723080306680779430877842595134033787061619095988092910443477179374389158277126693101599947118360842396906454983031831975529794804422241303855538670196610148047348860544684317905686197283328247437120754334677010376201362404077380891808050984605844218039384303332530949892753017123176143238021105486786869674363584334732306867729283525574989900139485621270799700817802899457732142927389417866610324499187031104190112417050883732702670739833948625464434163064442018949048011910726978103534269844454659047474959855195072834162061986089942678723572952172779173791974099642905193594597807942519030399398182725567340896835640567749677305380153278898482856095383833952224866237201181632541644011259835193879566077447373711546543548728610500608875472984697870510327912309135859416847363935882036718369028560928072218585227766381543071464711740205915521395242264687344527028367167174224907762114499302316020710710860166163972525547978918962884364029286499031843091337479088050070088050904122165488043446094881229098181337709733152723698305865677115712560297994203891360267069433868279987943560045464097617352637678298961188727073360766312744706753388103534124493808853805766395467762270134585619239736644383421512452682303499461287188495878193998342908587490709850058063176049652412772246970453202866433492058106633394025275966068859834485268000223065828513980779231587915149792265290609626038418905121012147282041372088314320820799386719554992411130315452485728816398790525532593152525616062315377045991519432625030775450598359183390527384117300765098677443096357422112576028609370615257454966566583139641491599741999311528864449678074636640021404897707257576722541791321054321095937437675469071080544966448153881604877126039633652158130344619585102708578454372218071927989114904341398511981037440624624696153310981273664541569427906351022100417826324741783143211303984308084070282225238425577927251472448605166094440520373769362855575516669339065725684487270712750891155473415105911782674758970011093041049868625321567500347874746659470839225457373209431344793728573275419417075515577237532329398930209614840823948066163069432969078642667997791951856716398636014460101795390294213501296794831441596373259053624554189945748737072435417594757414355202359765398922587054232683172797268586351083999212474421133521044960975917801985166639351064353214731730720267374046068445824035060479072240221328895814363912572161763861789911523472429718485617898653667006818446942194078898120754615925411422839203836471925505034535302046883997754799591288222872050412358802946468722990257598951137305722527814823060958676383394352366678371246447149070036664326398816912060107032414526744092594072321269820327413472034734229356768455793957691824329754378304695221292876686298626498713769214260315032327295835143184200245188255535316841032949806102375278454852121820205702075511997711751677426391198177491264641533330826059266381084740675764901343302314919128291781881610035465077015501774448823812730997377592348308508247345341444421215685837780673208653797969943163701886023511813050485545944255933674093755704376519498653414837354129409199295925711850351896153281742386541905193164947647332135425288700570720730965517524008849237761553945485195032606183863206255301639940908644972668545142213682513385986788044716222929564726990343388622127916472198661647104578943504604559108476317817778272142609150706459649191003439339631578209461693697017320690104442755958863207751235434221634073187630374696023695179849906064603612493332160223162419957993966496675697779045366423317125110682744240756224292211813658585562342195869937248090114236229882179931528069874158559209271443878760903484546233728010766028020749261643248784468479109786164965744450906158534815693702284661490774589824965954864315332399386166157326108794286467554977571782256020154836179422668293068358277677897049399541651083660981639941269654550042556716748603344267621707125057935861560536081401186736627546743730160048632444832831458668446196794192424027292376163280206376444278762348358709036981939320328761428618066821557388173629465544981103881189117841453621112103512242608807210154874744085509832734527412823509608377293374066257995178430257311028808494273761260624241165034153887450985562135574711722683085271485436723013717902140478978667646591098665698298523177584294720882608728651354198094902088965541511476278231410293292866015692526927464271581677536108697312396230424298183478141404154557520696260087236874328054676996107055949350051234243176569324725212979607025463301912360072159016386629823760786968440281501324176084246576749107114057870563026147295140716743723907543928107030008013319943284865702320716933492577439783597382408902734616774071084210369380141394161325954628052459149576717301050614572474347520049183987336786266558096786147335622743618788199532408423895544812868542834508178179009493009079359266944306967836139316784884737075167353322252253540412253079372030501942381765899159680730074545752584552863377780577634098152510499740149743775870238897165449501429331528866435943026131832207071827170971497893630544435686573892923130889942683172543943773044287031541344740354789951306851011999153111982593702221434632716984744800707283340999302511730645459653614088651267157769589408933464514098316741008654552224519102592475317516220368347847675720969389535192522248568636303471805411093514087605871734335715387964895548119367104521973221711133648585089000897522080016005078441023152764195307415665073051756707795538314402973270363626332774303915957052554668656697860792235192976227935691757479500928702089050365579264912209628695835696349811300893087333960744483988301384495811240005742819757675685091332765212837575095199559383033075409927033892219119116659921577474368975030680150917580051137172427534256530945759987831555983933602414198056612065863949894271747868828457092058993759733580241307454897103226284525985778609253903209429113294911491527419803984837557327228033112643150500989282243914826659483332555621552556611889451484364365625486532044768541812407433620537126934103341298105278581282622395380740315149236814445910862336357337236599103409471217253147037320044968447012234120066865822340204341415670699469299623819789639092300176976210408401303695113756711173176716278769084994886264110037172677411579083328679383305096733475245918610987695300687367616633093465369896871470916531564860906961953955952411805323272736038746170728852685514855530695018963542096053756821513140701783327661227777192202848085777385691832041065085635847707424049415551464835584615713168884482193629888710780675099991342139663952143182329753549655058276418014001366606605386750450941262953725552686310136984043979919066081189046315369365699947451826540848461311898860808015036906917839600342475704570469699366920109618489869881376129441767310832666096327931841630939351986257668757465806406686993370705915459611232376806173527840232540406622816208220865890664147559469350519024855864869725640972272803531863981864517808142991438064821239803524928688753467998756745904440910425559857020902701064094220126635281982545279216796461181775432627483196581198117272000032253918774485539060645018604073824899090636218801661355143719793558407901123583671793920233870245846155272108058575197119814722511332775530588518344601861193036608365947389361476580711361788603722325139995372705174986947011182171495081450143322766559121554722163168368228297952194159206615799248108350282963658285930496664604013238254600829093622395609165036881200098645266235516193434693120093958523785726222387103403457562520068841454413313126778215582816634516032784372103713119181831727847338019493745708146065604160555830964464856971008956785185498856290193879233810802158985711433264206502628045792526506591240889905882415323978638848924596401681780083650346900120018828957126449499613034310821859345986135194233181303058014214887734449798862197998373268975985200020971203750068063781335254603355875941288176800382788050614142389995638431919369764278087586340053969318489832879820974476348683104710034830966122713833360564084594104517809659725204776495912735204158741225357288424256689556591613572531386317175270652208479430144787389708652815829798292628833694604349040446018893775316938188613083670578727606642202152121265456417094974550285599306292518531123953878066629616033465277286687646656221823985560243084492447004080872526138558808890958615160742813983318980944927420739188815559762182038891213079802267612913629727174073273339358999429475384100389130830164332802319196805012370628322309570863056867918667753726980012965464366665590298976189462988534491167739461131344316783189599460018819541057430657292568528772007496416313447498117880219186643370386094739668214587913396014134186961609856557346887993068041883726630481782700007560676361316297404984068278836055142025711083645179830399007041769134209095820135324371470947806350609056502754348198996666229887336180487038165097448713977140744130335241505332092389743834757027745991253046771210330381114493270807616398475781825645978766930518864952486068833042681810227557801546879049029046983169154280783531269946042699738481049216957701519699895805594796592797220140046058897230142766908809757385455803465208624086126883581645141544827939725237017605224358298835154100312221921585095331307604584181086969832195914726385397247967186574762648511234312822922628624148055359700722381087070313355095431393127172942735986806470647130861966282659702061329598696473916636817589125128174293784662381780431930572416884829568016992283146397041777762063647682440502642923508733092995236009207438800408184586972089767302030613590518567965262965049466722951427111596544194430343254768386799097045545024529824745900911278676095364169754169057889423308921653405940891552772582372073045153588879502416185327856921459181009015979395273933419990437520615735250736284909899212123664452510836268939689842811710427387288827102788275265503011867444022644409694240805047942667029653956160163994082128138399793644096871313492631200873964310013051744068883273613325960211602943121432919679333763247072203785961556739255858354357750315484302677833331781392707051285992750449500634473683578479103516218482327465873251044425559659594310660524474774184996271036270863080473626584084920265045964050887100835750131897417305734604505995278491620782931091811130182910722087039827190616135807694756450254612055437107397493715538428515153094597399107718092395590181696395970460574196153037459227261325149835688980893429749609034543774442245579595167734121137138762452651143346211603948324517673933175090160824004431939692836890082884860553540020299248373788186959379755909049486035392843943074009452343358403583554579801127619315883260601148814562731040790703328704895299018169707792600334909459670059809818723678114218956145828892251088521028138780558704914990606609298132970752643541353906067042237580308424996572647838441339525002906519138566207389302345725825527961838347514858414013278029322296093207940368593261301806072470052626439021694488352433668635280486089182589558365200319734080946893103394649338059471748027507421474083844586712125762684740224028932039114834078261504143983123062876737106279932072596480744785578792561792777693574729646964767266779649524234076192319863072039588134892662227993795238459428089481323915714241132006470526074656039615579590546765918249050125860811841988122564373492847357428987138629091068859291357935228350668460486040499412304225541071983217995532865708139258341435581709627120082866798839760379547319086720380861149383612954874774629716258499427552667293887129772689206080748790647080681271996305662291538830625455746431618055111398264481501622705437499250603644711685861006760038792564598270020789600387253622983734361594609753441288153700181145397503283708076957065813607444063857438044584359071184314390657337708360388676042411810238203112481771291144516282666154669756873192780243588608026820717275851065702041581812970180516422020039816940459236008770154821845844166929409980233075281460193632100503013532812530817196115203471606973936614145746839123896754980885812364519008470545418628781527033085400485131435166011801468085601618145317948054276167979964973702797799718920300034025299535375111505230659301952304432767698808496872151762141841697603648398785323515105512192647922079947936402789636153457709693952956785274918338161441744891590016377859406625983693255913036961805832588625656753417970393863150609876174504268314431475158280770363822582889764300230375525783177035867355301259335759033137834654753020530876920834581086341176365388626768219018415138827106014398612070640175128601852126653682803783219670732538219113126459758565639606434422590906376794903489681725527214887258395362404924159201203145728895939571591355515444533551607717683977389934481652899304607277971193042420930153870406273480265431212887183241908285722644759309165286205533553802008334086290633755860066635460955776613957896371931047710403088484410776661109183680105471864655345461195620848873689665096800730304040534156866984245261506304540692450424185688941401901105728177599004853962622074358536878986229061351350894533904206273735053870227168043287883360620444178083339578420624566078811550737529937611200599297887830974098427036952246307035591911721801221156203933973487250858870680052428088236359394650535921024255306586437952439481895307282365625077846900053912223947405747754059466999817999678968810238983927311540267184472298073423763058448733020104916692909099681985317926555823636505791090720317493724468275453206786653955528761086454496325542338060077627282043975896024746354047264147618403042859200313848569741575236692064783024410418958881102960962133941212643547836201068850323840203146970581616442557560986167641464811852918512999055234467679435282317367867109102150746244925005643958115931916044859106521117228524954378352914108591341248412336935499876430712250755216769957474682224150000234476805310874833399522385351174648798581256885481522773086219548857944492915969098512551790040404817239813527806698134031268320234567488454926360072673760310494830532506484184089035754882632945776449689052765187708835700106907055274814741795313553051618204650740008212718087059115654078228775820449941747347830324410247880276577032831677024759597563910130083149722958806589189134843611375319229724374887373016428947089698048165488335958325316170573061248147448726893607523109945714896987945278225116086744207152643089499068202789331985838928545596180382319441438799300010934870885724717029667797417319975249641010891511912503820842696852342966551817562956428824255353822087715343653974489236602714311997211291934723107912139336614787621056995599918376936663875062534027409259295478111712772223218769049003623378667200532904849883036068699049095216190477625877124167658208466784155782657947044089653616647350047606785489910621262957020352000977549836667985656156493189939272265882834984552355997704823955100613900591969585792939273851246954586764336336650804946166877802428313998458037885510677846997523447837079755679761541400048261246693196937022857234209940253805954954238538373874937165225226062676025012666708433833305190884835226423828078906958778052235646907235962650392716795721048074914396170329379408482230621377702118554335813821682666699531846555090987163096293341996204230365102390987289564262173624525180980890588464183824630228408907722456045069171137927955944133717447310162018443117926673852272287753336976172390678358296326286957974753837808355078762680083871809832374275140397175639851817740507775070975361174776303825212735833722399734135261088612926113497746472781886536695619127747730436551828739994166094114186337033814696803100305797901875951599208117662367075595197608187373033918525496736840932605613619411316181890579255263107556310430987577769413274981187491225140437229662249546402809074910302677753700098642140151936067140128140504035306690157119258956323691572238245704873357960184633597721678457866875087977179289567293622925401204327905170731103193554635631562254669440354013594634358978617367763819725128856405090432834961455067897761435025181725344712413791173315097926515032587626144184246534701152590136337927797351886376034067095960285269316706170734585822936866481973547091932522513752587507932765257129325943441849267539178811068271948332947678749281330945081048928318268915077594547769153208705847272342996874346267226665993305422299008225125675760227152446810566643031146317563636372397588189125130677134970177593629645949413534602385722684421987109486257373211197187459377432048246683512600229317191372439713663721112729605301104840284283028329709512178584605693183609552989292178787468812348223129357949843408961097806973867381580193156127400012568058597554812378841102731760072004066264002229952819843866646027710187585990177514418719760353470692792133281671965969210446149665031562883972114587140349568065280512760901240007739052844169644357115997521130228128852856336225697666050692823724350088777444751670163495502212713685645446459045864080548285434942049537426006233062496225724200198848995301549786043581046183571378458545149305314790764472138073904014541426936684295761812605510077423631178848592029898437840795250740935292563866109488305751185426619794837588761071741601614463750863271569622881560858684899362017938362319964834673073984622360828131602163923564344609500755601726294215201742075626505959786542972509710089750466911876115046554580559192290489785312110699725220682402049388857535087948951224428612677651999975560109263850246925689228330994697969495710915719616931800070627995637494343123548912726610849029625789413819535354792361859610025179984631367497866969357289867922083605926020782340648701656828216676155429597275780678366338670292182319045019675888780275105233469342082421792178190093796375621453815684441935699323762698917995322092459389352997717270794797626201697095925195377180349133538609750231537081660306286627024388823270368714865955882830682505230299154292100467666416599339818769680367287827904733401214965995323902847380773373189378979946632279297472595118260772314239377681427314742735954585532172424736906621575387769413179866859818093024179741183678769053146392903912384675331612016615959472575001764533991293815493369294201157782658435277045981438099431000467053975162897555352268749021098302889322051086811959921503064516961815493463154859672769121696468178527194364262061841301304859748685317088700601645246494535911836939109721867748524443486164782134973282726898793648154811505978544354550899893612332090362707684751152453071240399077663389654790709669834320515213452785886951726202241168760410335840336498533705952830250954672469528161712775710090649824657777704907607034665720213909846103858331829928573368441329150997929738662787598188386514048323301417224413339750488801917666007766815537866009577022306877390640881642329140039074313231553603080289234739437390208558400374361192280991930889565586213010795954044564818003357993970677010846744360482414199910210251820950294897433254929798515266762071471691234095232891885095466781410720082513014720924391178401293838439415453588492168494352922653301078874050178598449598834593432906812667212301676754932108091751949851030166746110240967698502151362903899072172188875944364602462674687666107510754418142180651953695794685656444519871101354854563152086869045135878687247104211639369369693765693549743624212158521493137302120918632842295194406122249244736575536127663385256405892946126232788060317948053657120790870762391300129732904570926034818099110878077554463722445355938102920038766021886653006640670659529100862868892516712001914976601452599698573510540036126589349328562213971391636395520112606744575667480688910754351312545850646951383452602983739770185950819334982756327850006752475662553358085694555742321417918831751992008838704095289167518297307849895678783001025587600357671306301881990071564079416959472264785732118763018670858073879037931522015168988986068936187628934312156967506400277774149762731304648791231914299346137741671014930398793765042192142671706029391659105853229390530375147083190706191220709547282106263244021985518724695299456401096322490941842421455341309901264631667023491110321558703382835773489658764006632136318799391257314951541116956806000997796161279463388754958002446682193537968851443604065632726016150584962667903923699173369756661522639050199377528486709784349216446615833339511526983593137019214337311274225496112305980046277910475030886628409045896731291988853330572901981949074121713538251088229566948413845193687614134732214881673956988160539133198475560047904758235003303552795928642664023124584879931107777218547824505182475265256492150960709366336550013553015012245018020818557525860772113517873965533597676757294014649167877475609459154466470103061969175015084755047015296980422929475998227211668131859511309456975793981082270144155651072773622455825824777753293497887543420322966166183651056668191619600697788941147864442830944770823185966066454414460520476916642902014146821324360996747498313888609970422604561083898389692406341277333917266423540318448520493234300311804418154822957223826119859716093468504668457503382016522960536432811987411949009815152573938363341390967726734963200176259307469567412735698789726418899526758579911572611351356334096506293442627965111447402179276570609242360144512846930908764530285746582932200518665941679336225395700412563426923657414562455917251241026805736527204510317736119955758747066967054493512665854282423816204773442508072930927267650235297119031949217138322178915167851945096153157166758913269929137213538439682418615848491931166150040470474750899730718533878801199278645428473544012104949706231415839507819293197939978824913349802152132932527833913305711044105463827926594384486807341908873893661540301157156888820527431395540174542988108823626596954104785136078773968955993771501221178623426431410187584707391360326352206858478390936218380335429323061144987504164597036069666534195732459333141885952602517345659706510403126953364198665747278639108787584935781799630214427278317473037050587153677811467268924747821262964552977911967888146217761495344755173209297849463498503270502052954947973025093120000129091464275952477193824588190170190437014429737165515880279677314028561637935710013621721870999750253483634866764149625158998768716431088539773090987145863903752819416902773992123648776586929345715887654366839055288223747753881275925586145517480151916603958481257088504279317221516224987649162145820932347453812980179803311202088624849490626249708384798396323044233040748550924075773851836114805829325895392748111785590268436767279147168630120259208707604736074434156326063342682323452015810888905535876045733920763590112033680201901895671402686760655152451627005701930157725155412127012542894723450603112292934296650325889826631620368877558959731704819401473727375130933967734142813151927185309451242745855752658189408329373467072880644043472817299966289238393950925882028875907935812432357099610118245137260741717630073458164979181251464480137317956537024332304690394968046373779767527706540726969488282605956855294273830618158912498981407730357216057719361114217396016313909388689953449289982372861734671543765258431343936992300446410460068304583144729509445774459839816186853612285882062427176048377125921463603854421284607783871849621521082355497100999443829041206899239117195884281829768668901672804332123488198832437092027931879421823744353570014617810903807059282621423171800066578581513537304645963453112763810211740913554417544006135500111817140325789884901535680189739535098321339949002168999280608278885441169795190162488767391056558249468084518627562058405021703477282951238878697644326995085404612485383114939496030734978935270945135848790337163371458119782480038659929987290898182176058559924168463832499833432832279167829230709949456783417776862983611615892248642748287552347814404195863954726671562573046103909941012229311327547464673677606193618915954797377223730200502295543651504182369693012616478366683995044289069339003347189239814043309437266949598252711950380120557513731166804958036564987759426271296139014835978183357816700155276091570753798669243837467487880971065561045746142298846352245431702647888844351335352342228797335979804029825610978812496830424463032357150757224460363963932761935803454958841930625987106718713504550632000003500737467201539372177613251099428311672817077723586562084559275303380636474361804676202798185538032117106269749752520197211536758868124255377287906676417030505788350678380750393270398022120202088596955570860659594807042056267043815969786874598868329543397107175815884598515044673895725677898534676098126439606052033551632423640283712131974228943767116577187665926765289120229334436615954969113677956246646739606685821009106673714436188210306670331954449215714100669798551523930271284848629980223409798940474108927378579283758621017731812744814625015843335775549981539820877881610889702173914296857213517142773795227656786254671858334349040581033355050930246371253402469450815519878933437927824409017164304478814704769816050606299991834815748907013357896983021025303382867353886363912022950225312552394699932063812018858693348880746084574647089864290188810567836824108757359512530439540984344409263143148026151612947974649966702852052118367260206808708906009438909404493115842531276375176810752283622240348866574106669884036051218479238346495273715030729703558190378784317691032294180861515337978193264437400888687102727427778276086704663915500707556453130989832456258541012223397086041359031633072997107022545379911784058414268345004316800915568300339341444454659789643939810194801192374497962781201733372180633590221159530198428473959441918498246684179464157927000439708386040444466712457615135015584833993706324591315426947825334128825069508713975200128456692896137061927166816555629172530958097457915198602697779352868665849733529958289694046457182190285032129191567335154212764683033424991688330784473898058878312327375780753641768337711386661149402451199825316205889751639313316158094430915387562054842159638188817712767775712678376119492045552216035736448230776604276031625197776782376654666256664701338214054218303683268209010866614635539119112947120103910545545965943100886040331586294073379175019077913917670355101011346595287091933208403039792626491029461897026941530271523192315586425868000263342697271849738162589451944934938098132535737463691545346300348116068162104869694791708324745804341500756154859150196276687990065328862901531170154574424723379629376737243390631106143224950796453423808036191797368727244650118324607741749286039998374175832059453464653419826375092733391260638070220765446051046704150369494471293684139225962494771754439595156055277201398786546552828345169567340396104138025198921016741550454444499128521388705777228371946937703684169735617061115530989931483865380983107694923786307512262300815729447620499580840378698846588625488847459544219453842973687949246297360874929646245905370579534093639061170538202808964456887851172636485586910591191149867741155885283150172228579178606184652610296973780366283483168614751194968962028583507708630143262448942983404227702900440290160858076278670643909923633722093286625243645293399254947289556558009163335819863696185983060463908763770074162029610608391880132997785437978816192331063356966127879825833686849395414022244429310150324034604411549369996683847914938725859570804374559024265953491740847934753889961547124827759630187032741406000565691800968510706809992281335474954930734589383064426895427073556482651232606610580448034787394731678844711393367392032719494801908054912214670475473541344101268711408882030038648221500576974768985736615758615644359108093066764823175887206984589541251375792672237338863994985830949071535545167216515660347348555755586693675129355754296793468884615415629640129946485262617622165221258159221443757495807863855490640847187147619471263525051849192152426784315418451375859322766085255997998659411768272902820213135265544434842199013461121739321416183278416961174058021990393122704124361761153383933870761734290250816788459448191177153501463034651224523772882771049539882806271801750733509582125031592920259427572015714985038806778470940249703596459846490550784607150476269138446009259758451387133812768351896850272549549582799381086128830468739995843014546661288954337332422482686028269431830381734526321735980271444370233115372779863872368889201566255759605027282665254363874919838377548851280267180306074651417462148849445482522434314301117811733957146971365077354777104258837391182226865244339909816667822955274621711312691900731878979134762678897912629043953837798644514191195989350605829018478033272805233386997197090409688911701333346116865680235251889776777053921955635775782968196941504662657240754858504774336998532590188533288388924942786651267130944562298623278013075668870768891274478809556727068125167288776995307659897748960792763314696515575205455174283933267529656722934603384959405244416234477021817540242393404794047082680860843087485004606114456966728583345763410545687670585148657104260994948064859433741972278040481761705307598082671760160955345961836760524069780518294843060957953120754018158129640441502087431180394073093533681867273915040316527531317875945847587595259499122397401720986686296776876661337306828505254950339098974293449621693998806636064333101399757941133240978895207484844172993788023614227610601110626959919708481076485297916548976427566627600822454223948107392268433989955718628804084874061643608113123686790826076584746679877605580928940165736419807793532167733778067109983870879963648650967831446950972566495145813386289532056849319144411916917147597883773463100167553575236962490590925380866446142055831610649821968789567362726136336120795199329049583746128731491555653952539319788446112720811834097060142667826970557203197153984122811207061736766288294288015494320863942610585394984204548721561415731583552741117448836933860628635196525810338607246766795564263954517801009020322801173167455531071965413787590970487543619017485439152879430442924264539030605020167261304828313489249127954452228379298342827588228811510727519468494396945274204390451437451227488645694281507141164610439323402824333874813381999482165121263106640587155419351014340491037365375536973692224766655745054377984799376558099057352472487709752099317793492500391022314898103752634346779016300866913092102496944068060353885663904270190645562785947797759206525278332914809958109280779010857594649662918733116135036610881737169606274348941984136774424549270635721427165069091009013407519508310089024974459297819980772367694569987413115602681252143221475669778302416198536133187966341179267642193342993794360682117083381810440729662033348943998739179058348956305196146143713655278419360505783498270807075560361630498130524181727357263494531925823036003216061156970608382523459858839752295279288211538751417499093116714454432846010502585232673764671433178662274794762251998728329445685177828229097664200129790964461407576827005439167134549419444116521728626210444287734014077220237102760645530055647133522752018044256850208128713826404541959656508635740353899529740454037513342483355460499705818340876122448620983845976204752328921597140408357594027292264332501814658072724195819952797984765833232082180392043577471504016545046761662823796764680424333833025517696929125537829736113074615794930293838360448048603989133652274479039316614082782650516164796619455518048290802403377328497146434069474497626626784523547238593323545544281847201538389299592546884582583457251545839228959298850839595641776233448380021565088592613784223767196283403664658283211050342614457200736027548017989194378899710232571126319767593178804182522571009268860359714624313735308894218785174849349450044142939460752516553130456727361460272950042113238092313405213504363814522414138909241656578699053379408507758990510690116809978562485913089445780098209547969433738512608837553094947134088897143376986837211565537657907809101704706621929943365618085888613189928595771775632205112523367804967119269831117940800907008946639177088769625658262489294205817220112802014842336371280093757736740841831529745309831638272706842211815144281686712749243584152943382771745800550492954083478972033505501240723523272932618680226852774159583274165085007922830113480639294500883593704635318028705824818492298933780280993230984021652775769697761252991164336303196538082584747358591220468229355954334425129525073632932672444985702968083807297685732972804951573258117703996631817169045746244508230569135166805825682779943301521685699451042966304843683697287492061768215314041357797136552533056874804109004063250005302325666326423194844852426538467467427342883413358523733558378900427732936058701249988775606814391105270771154234138086930134456964932326535109467909403585820728229199695066926693372684249672558664565397903408424601405438517320680880135600751045232993182210702803299503737679783499215396961110546609083263871495730637646600455877885416064080769918974571896004560284414658627759139393736053278989879866077511762273155662284778238521484095274782965047308429184789367718307730689701039771233744751999616515224373373257746819043404364391946540599103389124193169304575780087426487109828812242697229471631109306035098074786495195978934074512524227331738773294680938779016322137976758708711483053178363507212712666936519025348085621374175838741835910409964223629081386944739990844668194686844031244445654300219196213265149254749310722804880224988917015128494540585179426711459479934464845320750259452999265493492446498633320852957174415460898301709822029268755003040443563542069231698655979196136763419732637956170440829275243226793652205764558805213500172176446230428736525534931514936891988132166457312571758307292196383448465120097328981605452195227828101070646899863005314263106853752748531885995430200786170537621639956826850410568458951353038936147877869328407876416763039572805646486606572186993379096961708601494872239172763187770677216324740468472323775606575954811579094477158336363004680509350203532647939727194249051580125286707329698084488652683610352095627255834089204189088318806243687213663969234640631940385977313570976193290037673164837735283137526522041320440707602811316433329874562988692976884791711300440126370616198910379534231116107079904870208122022936848849656068860313021965765067711374717916073105110962534525494422503887172633594221093167030525425323250299742747895404709239190877506377570269503858721044670535835624825498492528540605087491441751405578061052224344885741383088576837910022954460144865875215288314287230895570291831482847776906809560575245630752575254216523697316349682647419602708706652268461810844867854087183950826009091994640873087516368745248214069694122676600470847441597688957321645537906660620296855888264809063594011270928179922232951792936780978642600056424485634286042775721129539826802306611620964024341237081038799509808184808072803654262050474236775815926280716752289528601874864305358540648476872233343258905151617482030040968805879793773826148626844321915082045509753914172783334856124663459136866192778876296703686877442495792253560408736611018671371927893438875498734689721924291333673671336855443593043561562148078836162845032294329240078337685641992333577509358627397927491288807557706500931080252375145520427982704513615258054792454428521469247766785971889757973690178309454380663369987815820886730242554365900109346302715458956461490416037960025562407164616421822478751198640067978366685427559209674380144193249629598092784938058519139298575149663029171095492350844621550525991320983596136991318185166299965676364819608862368593231503175891511823706694146475850233549785358270479580216884258768010820074729802466653859280432937903753001710384404892933907200864165077719146534426428853941971676610430267882411399193326515040631736327096848866009137755730978822685629479717297990667420135745996604612943022350795245777159829132649085949847071182278134007810024958446893423444631916221749972710003528831410407113628940346843603394309411569468268042492106960056605012207639136547816020275192600539073859183177707873103809306462980363189014729037126399974676678581798141875879964822826398438635249032701764237189825000995937321705780612074128340760203458350393434760700464582821505106922116320775127752257783995363433911545165393979305510182793183928440284628725759711827530750458611515844364696465367119018237338807287640930171087020395232144062369780011468656449646050413000319130181063484480743772976310908034381290342752000453338140964485785293744115303678635893276516295274742915912274421616583090979418168880998543941922055616998812787386764832640974822456370550206239038400902399205668393111759407017626005626364516721170969067557583845817415235214374936743876142850838123331193257914003325433132344459220920628576616947521274688866930571872978589944304724015865199860877981507748669598241824580452361445255450740660092357145250712221222081028768588393844611433308736479728991548512033251174791625339056600851510189982772608942556652587400794518736961375646011962921887103792971902986538708951939682009111065066183144750776673300944186152937910646705797459227365640624519144832100866342391805324316934523097107563409136635662832202729377073130949233380987955687143001116843472353077123972913047627794280900079853444497257252940631921585240940272909560885332696485038856677217791857648286446924016158635315392976555971431747086784467584361366274868842553474055295590390049594675291226118254716602158502180249369972018474877651550943405563171715047722884281501419061804616461957688143968684246039995929052157964479939578427410533213511326449082908856289367164101845906200107366402633405237139748705948062098804467477963445405038251740808830938805715851457508613405363680717051897659417402393776576505196145877531465537398916885786958035273310123218867965436056899383346844485004462148354262283387906306613830938921721506440129233284663257721163245399299218127985865947371633737113338411249908514699267425897845975600439559083714297149297447212368749509389202428318229214945094689979081331083469747639853410402213333153090683735160671616176119296774352239004909976499818740657707710935356666581861007534362815327520376361216561675570577855509846558385458473172899724675087011753455561640931814821789720621752191497346720310283373210263582595639325591334186276479348120885522778348257433923974934957275322526642728255432072406814075863303725733540694375606869906869198377165467261298022754822120268508389787561156279781025639642696854085213264079587182105691214138018674451932089185059654576506256503394123824126889477848317748647897113963378245055685190746972951155734587828461328496150833381750787241209974970344803134345860339911474968839134997424850925751127677971891086500092292307725551222686735777728851385581627306116776900241620556879563337420935933813445349973648211868602914297837929010002184233058913132395352275230120254163338846207898726979833438158499626512521598129889732199941512008497899249901933458815440731840562220005172366291831476807936966261900340056766977148306422667706913442614316403855511026350295860910274123349570243560761516012233411439100798361226837964277969325859761635867047662025327187404599523099099600903496325886113546601309330933658940720615925672415812820828403553503387199761396304704786406887853332585729791615041185713483175797202367379693786162459584265642961818776911446214639888130213042397486678374285874299422140545205596485898726809525951705693550472722819790221952143368934477879464613469183316354830236046177904633077080616308255323846227443277027189582911309971531440112781824962923763321160906111631625921988442880567161522607107071073406631468526937988834159817553190397373890802687025135389036405899822534646450048510797149890750592840799947431460674530313683040354263636013682716849133889207270154218961896083455585889614921831106516004842511179704638297332558686524500787253748982487847359233187688182603477093204249151121012570947032312567582937202557974994633884842342798507043409272939315376320434689458227351137431606166242815984585239824681656675442082771505124698558089933352692659269279398814942424524488309903306432877757875055354407387911088781905730871563713310627234541988439179043972406631362973837028408396609577900983443256909074819341782785424908047808916177117432365495171465088250304952073721521803815967706544480718203424118361579801931041557417233197984308975240540417404538936325591718328954076696716176408389634403932276732478014039763553639763814867599095771317655085616063328659942857857716637220321177640705296258420752999708668417927551310807797102889372070052772452236625653991748076264985510803486157062716686508720551237126223081447319221660880093373364767101988598851591985167775084599415388177660707828620468741987774194631961797785071763586897332581407703517509545627458398934605830139097601181700722262160358164966241594749349975751306777925514831171419096186134107140435877994969317588550618394643750304483341980783199094646014401673734464848966248841478267394300462476041440512572074572228600256561100159702201311336717365792156606735709299210683625875879458693412003380997991856881184146042845954700015592633536549838841340525001648984234422704294924135060499585359927197323529125807002294326022901059091488933835990815848962212454646953749324115345842475616782694304123102549043403251588969996911506423116065951587224332701862715982868138627378851262504921866498570139203350814612041817562497789655496223866531801968579410169195660126805612794393922489856419629542040738597807378674473211096242693090920262659555608945036509434902214649707013967902676065664030221549176609838166084130987410025218476909997759516896741871388303134658083318448067054151828334900061435419041351963929523456990242245623278107332844598539745546455639188388722494897161264461076563079657054683130797983893118799953235507398348242944220202534244879462203044456086871759001498632223728806543579914877916805068654539804211918220000299695741599683069251682389743732965744605340664278619980297708592136651739764453404048268329359551869171150804137363152306204006222271698069894746521764037624149279475427891068176851169334791975122333554654611790829870610852668251618976106148049172850904077692308943118152634068547391795689290529279423516903238161746269613793683060289101665351955474266787471052584213276274287894499476722019657744590569279969034514168525521256570607106744396793217029534793303481332016749806202385475760964036002741762267793088637319892545783241231196571702002815053922942947220834806732113250954383478416241188140801328801969431402824333752108252229987616498828803742745478222750307990478748887130971772738303120524335492380516307480636000085636098824626697981457620385517984114622090966526690205463063137864832429999631737848225532797446683580214443988354521409810784417175050228828082689370164648233653235944780391174942572584489659669293453229080095852463718920894500310719500437362736019771120057021433050910117963019099611436458517843085241534398206433164138415150195535932148569537920539161246657172589209838648284129668899740673376160319467836711548765552774304833066452295103005804051868321592579857925306961880741221580234183986636164294812016264192791903422302116191172541375104306522169767870123699758397696161762314669084980856751551541630482164568793381069853311015078505720869638731124975522804920294096840370915106577769240300134107317469459067445055976869512495698419756804309701602952209534194492848101602820290995677668798961108869364906563760195891696835181573098955830138700956712025825433887287438720315427825902317541030826553769234277579497531972692913502179239528820280927200685712811259792599494162725548344418714418996475706864195571560373837153631065746399711524708744245462421105129398678245715519059604046018422054660451246889282815641216309381020352125623757638037691620710411628264104748434919972350070185948892835713469164982459158519101419074983081571516301674884970406780943239630180945778986254405151618668219595777851061664374151224537450143341984534775158620649555953019020233334203871006822758213267363808339632295130895400350024663638528829048710698834130494172040710694898791929963037253366571013003243212833445688232815903863783209390549305215667223794838995575689928214969351280640856070144118548093405704207850876365807794656894502705541958852588663902541779748025101671773272642860418206256187393735347178617332081294261461520488923980857037374838364924238352863274857869877889365662205140997219325597250772820262611727224569150327070078417956512021309552260315407152227221465418577540657464377950811284098263360022046106943513987774426649084825514710398576800172261484176270599234811941892733174948450900113500065631669322142150041940492986405490185415791627203314043846407476373261239647253745529447474863924848514230111996683783053848924704990806889919743251265795339009777617705157421569203629117809351330395450495838653957783322958270403494601087644403045990190379405140299967404835512155986113449690229280791683032065006638706309106207068740619070687995486803776188199917717844240147061475000221422827230986297324339359493473654533606903138664648498495620388626882132214099460167573488246298029409023360239650126967820983410322634497820776047062837559464135396207154300142011852789657674467625303439911554731210638736302154722901259163269346520434594021580575218918846295032058083124502043257014885781591753190255257400651653352644404805999051363614460238343001455688688825246750474315256248338163687088426339765456541170333373440292007065588894642797315116830614906421219326752043391460387609326092429007151610670583365605384529861233402300604041785181879402077784110039969038165286919410448022536649306338068670863405309503999391353440662548718824216988871376661142632053749342937614359735038038392361988279708371507656571562184057583543680529857927785541613092417136170702970943908163598051247250689145163835346388337193810403603822648099831566705480263117644004826173501211826281510078819637203574096512032610630788670086575047451053004842684393658778876888329034029588397215117847674890265840693694555932283338353152692711320483072680471552502859463224594024395499599619455521498958999814308210315294683485700775510758616005713032961850834615906177138282170296473485879497553881264926365111969673684394389671752027299577736587293873329026616507871153144436969631502348699324416063066545846078333578027146217550146797582754281595003394308441809475901535423924614797408330993444104560228314165333529508962355714386957351973633291660386569395580681509574347451272524147106186180131159974738673504325391546606568968885527064056729521173658795426605601853376221820915783572091126154731243177732208337027021462946277370086270848162893148255206639646645703074259181061137249350895312751824238567870142597161605953100452163020851750458007244744808032530456500417137785109276259931336172071419792791725808338851173386231826656451254145484130781113740454883807118157957282563121707239249457654515280553946623806852283937166401142376048355106107416385947979032522779814540427285033973564786951595107877332988766175544315937333365199916423189208715423439577348358289483367120379735537508617234919155824901404837892961969513724197781677802267019214325700013902118394712576769771910924337031716112825029915197106325432362045287367815953191404929340456553092366928326252237006147928984852287413945286217269321474468573334166856602931040376761828331478804226533635161689358383838035163701481939830684607351879962551185728848310390637654311376796451246712303676188447559965164552354613903458126501143833862800420403821372209437423202248340648836296275084965255791553561084026619185086638332865000735485476274517397698337327248490237649950488120212809639760500423317736009228139093495495470404132428179009321709440587763709869637027186370834315840146519824689517263872421556829647919369951942688607015599361803568779331840263583447618899359196397921345510992527258584133713818007829334914931743747591483088611838230907483411767916944305900958670567270118555400184061169293147182000297583978669900932522491631803491685040165893512665357698129776520745201510737746947510988544942671783339118916519972899885656994715080983915534247949799667136734350209343001258192468611928029496098107752508508097094678843746060655051303147514606975685650123278636738922965616910458372424439540442578071667666037661993275564009832983897116004210717349391260881468418614937720661802699668963126330962623356345691712667731049774860039332318545802385285663999170312076821294587299372187581969777415152902515097446775119528449090247937804388628334214532812370575346757271589874188858796866285532758656065683890254617605972053619675594864289458172892387796803955626887978330377166237841091015166394077795271993542740899576195851852699232453585190095191853782364832276188546709247094391643505151881142459139459507762826986466293644571088666421857032492211348518687825841089550121991911371419673303889985245146008688728983025378833014239065509053823683649941154921099458613930513202135112985701851768741536144025771466651626187954750291962571358520123414738416945149592603893337093378670862362352953029741673492230742177826621958764100890901899590907483367660591053453700613516459005875459052146279859928265358890318018629076125460239335336478204847157351564218776858261956707270487273110778141285253148751011937304745214312010478180051375418509627344512290503862661601167465042669174069141435975683059365747825597638617192698444994866992508775470089603607289231703205033586277290324617179365621423229118544105150502226338398526035600560078441986223597059686383977291684822221327855214723231471870843726231910311769057196896527425020707338637231385457519216208071625362679432754412114184701974086646593960107632028454611271583251843969587305683270951557144923695717289290607994947014172384036698068459183116393601315476143714361976394387949655238301345882073367893857202972223475795779338312985190646416922129111583445993924239301788789110268286673315370288627349951183350633958226447614573409086521875001795719376830652989637402735063752569251284988207253272678885408845926715473427545830130993044441474406596282045299592939448004356490502032675242916364057526742255107103531525892007061067105959884977390318301728584184016444057788421882457730636545091775493678943111653177707746748923758646382843072711031856948947261600141774487010020835094094306435639445947864830571822890419186030985976300440174127932138062095842999368235144118965653144351945336601420799761129348165694670519314870165667396998156407043891783666194838629020716507555592389811476739934091830941682308943164568189934985064560911204122209103925362868938332949874380053289240524587408031206517282445095953508908629775774886640980753527498580030687090228899544794218492033802340543122382543330714401483916106670327705142858975682542183815424351617421367112720909286038169259141847695461412261981376987746892640250141625966961476273495360335890410909509230749381677687651546402961129563091471750429453128292656821065935650094764273724562819454414329202565217320618657634876102569477900593683832277867215578648619566821348832258482742144249081670520061499585507513246293451954109056824217304384353937563506478961669909036868011060487553519065967602225901148543698372477403371637242854945106153171229063863213799401656502791509945892769904518573188154626218187407199006595774577978167804315780275229565400523370484958233395207151382848472496081215566033266717792667167486309995513915283486677162136543239019985916275556083033692149947566694746417757619754605280969551597312680721409020154273595172928136438945471799962460239162719086770378848899624341249945854233432524368374916670384661279993989015519672089144022531686708647100392531874291185608678581441814965300475444295605446466588089027272844931066615097737335037185413206885037882257744642944966572282526220570447260986640945480076672838483698318070508446939844643362700501462137195160947023936991793771198797489765183940312911594123852431607848102670967368992360463986417706160146710021880213829017292005889876035886080696924283686377352103158114435022609812066463570592937303347845047741739500232719137690901605190054760479048426757168085487490778451359975613265657490435970076179730292619826344528865243444359567146297515986653314857851253148546919358689957003500792305593365541697801526514569252096919142410547253170802876919485327515636829969318118962426256887553564688594821635211158645689308019920589663979721788846615294769824528635799277055240037534649754586938063099356969480472530814279140012477148631216150292038981514051889987868276407956650319734103062523609736379227164157258056597540978289797593554248919905751793944784763664045626444277924354819017045019095641403413945603145340559321442472811869668389037225999230129034591689584392379718468505087750539943714724937555103042424298517308996303983349937957460384819472797914668447967192391815786050873939658437356481412968599246062563251674177000631527111512712257065820973349834997852469665554599051414679546359219667234963334074046328176278486750907411626277689892135456907114606982347912474835613591386738777156195647661611371631802990169062223090021661039353818786711291625238862980389285733286438701439632830003892852362745739092794553451808964465668407703537257410441162205684498290643811059850546769687990288595196611007685957632786021044929253986923201470055495168556490050045474622735107386272088361953218418338138987259875295221657229954688065862592828181953866563984854803292635819028767381540376381004757273057534717316109915347428478058899905714785570244451170208194876204359529957790016558194156923084365978639831230245111316656767368230681930809235341989113010501911551338558903785638983995674303830505710425414640805508374070609297051977181634945380626157560413513892474049047222769261673155835105229627826328186947779765005559173509961960736280165037322811115789732481136585815217263318036443647666013511203720343106256222133060560048674454961450887034527545735079583932004055196632756886656663871882265191150480593477612849530533799603655053105069788595488584346881258317544028244277976847547130796129633373307469361946910698174630371310578897995057574102821202256874807031732960481783467291128554392255542779802529139369132810661558751870856162400173723831151999467734501487617817087630019562672426237691725709435712637329414454375538886704914434221869435129466255995475701076492693034909848928881180990503970833462120663063932687801781036758145814838938138923546909668734810254956606507824686413231490266341719114791017193294338560382513609731675055575213758356548389629309836238781548089604608988551180524148398473212153211129216032968775715257234803946375774469185083863582163636894133291241277827557526625918604461409054593748746455690311648802832726548446063015585146942083010753510492672664606219984353609085750588136982974397475212999567039066618032367209552025020318231116886000571121061808675588604885096928735516767078511762648112647991737997912465776663509515556510094726315237516009389403650349583681168857851523888647391517363921358255017357067235201747827467988416617553907922290190007003168754284759001754418684594500789031024028295338125131003760402663459774998028668610836523501654267681482647333791380648000444991668836992822916762589666478200246627978900858240962006242003873740807454048698635053940293506936140864190333209579502545177897878099672950277326436833667749789281811940896328672349032435419239207266292666919979831486246744776620501109100597510052049669395231594285248316669581844182108767624147251779954794463741241479707017532498099020951002657249352155185175890660773682067400596322838349501788397278760657990054273549225201845521591129043917800964469894553723739518284615161447934555638188356578232207424205828434574274422965159834890167661350475958400473279440029509287717277442620120748411315580537349806670120130223989083478449487805430045065419099827633733451840305600865325697602541315367338560193243210815535307565496858128125975986691216344699795779676887394164686331505896552586498406653815577120955795677202582589228430226071569301679956716955694274750478990878596117753368938040040824400419783248322487754788995145814729212766101507047414330818235454176327463226606061836944342940931851255539230390645256873111190342748775179296677515425605439884466286634626223634419218633913602404761652588385031104723894374583553532148785945010896030196841848231942086578726681351423396502534154557177048872364043298388248078999155019650424913446757234341940519609976893723789123594715734640151879180280286948962010432395644018695442338814702728525010895505145465225984786743260241034308307092246395108654335612743760661205812905657935463635733797118332910696004599341010968254985269518741600155365994003019833309677507190961693664434394408034874547030507712024050809907383082178651913089232238734185401572674400000983811193738920395320694995615982918330692231658531533352227821548154275212658208503416906225542766646444554518303730873713894372988891302037012112395222522420137976984803140678700371711774797355678959777819557033747660621403026445810615882253232119449638310505622561651941932786276942144581087257020108572536658805390803262842164462455990276802631237665943586226276474057201969730823778443261838918804586931092626721118651356719810812031644937185432546404410439945165782200198171012717483700058604971147503902571556055255497950862035426344258496919222660320737214272842264712383668374439612234334898461400916892447844029084833480229648576634605658617515345669599988514768653787796390475433661534748123372208023773212038888550804345581605215071666579891433394260874966376578713096724853540852613326753063232614086906066785586190632044275261904852663153815173355221215911685361446311528591342011443718093784047592556061400099705554681662908644616130892053063281508923997098641277478807138151181510666992514639325393407333118321104520468936351353860814002306835131147221164758212691182093939419903903335114883472884234560682720894625951181651426592423848820279159184394900136276231181058994910442365795932749654137874158750775063581811884955164565600731293978148128807903939972653119269357881056850007227597228906265562737055599631573593051821513858419654155246405447417482835323950715627251094493822562384796832816721267630288116254555968549227292757171243534465933462905361238476058292326880804251987621521677543016307406791979879849275170428116132321740246407416609798629358653552875160677392795767773208787885192745659357550252831136210915940188676243984491646658792450839416851132146384728772676223019220666826749297702119614613605654505262897842029462766525186856548817946071681375058533579037630064377398154049331115274697727502259302007447762741116728289719665300501356381433221145874652924058933852137116675639070406017190788831985895158922589577867224635536783133352864588741933287788181541432640144238473512548523054606686319295529662229662256110425007478974189678316118535429970178404662215954799956905693793929075782016048657815302597145966497854795403594442630988133998144948529192061833455179034948494047880393284483578670883813824615336356897297234490106773598954730312587079016774267556820387589878847315703483951144062073802898022046806179890694265187356640087458455680805276697874588872650451847272634224330612835438699313198619082408517354817708224826543509074085566651538764584666803994566828139486546904875667474654188052776445621652450696228029732526375537785788910112532888411220025832806481780717893938315647662990023302570782693123057314392813196426611059267692015655187876871794473374447809996435344080860134399091028421021589023636516512210880030926215050468068533123658107169103553133431704695566358558153197146509623960823958330597750936826308440211838025327597350056179018431622979348996967541214340001608346551180037168232811730037800068934266925320208522177018096703173366633217485103421283717672595522121178294899013715510748032174168483828867210989200785551498040532137450913972824071084506722071954210354644264119291671675516211499219336733294423622562183772543230591771035828919462563712961507728416337559889951546480135501209974108227644334105705139518912779369102212737865708147252410503431434395952528797006972925177862359997027050025725603485599196564673628850592815826549881920997420303226419176642975966827432384562617693145965415542309095281179928082166289038841253022225713131914106669379816295389822377681277056526934629141220501297663438819402291595958208739282475655233236242218258931240470154119511116832877417908938738039517971039839558351628062986142368723152645183142231757472338103689223119948901406398811873641414995017189678270767491559110348178217331554613206531057758578841332519579925215602168048512839311092677610030397898821803520778940269658914205748895167086055067186533063700682047424133694402425180780616533677097715666878409455996568227625315159014008958987608927733340731311769813673851521027616372660374544257676130261093838947751084571161161712897751813174191222712085573462248491757917835548038431270681497166688895618176519281613321599549381753688516954663150978435983573404879891719017004569240426535184460236111756619020643905436250386160752244657490207119975370829280122674833874056041343071985037405862582407115887901557497522479020587599458823216354906582968759987190280484946821534908957072918532621842802840967958280657032788678914672081360548094512948946082084496217382566482454080349331523423766236731137523006205813280355437790040062075614670976188333436094350213638732057212094107851365858628205774409457151027696149415962087217083774166934603748480251669053125662557016047185408366716524576869482911400834171540494309065612913095518927212854213856534770231696794846305951463450014614200818813415244341852869656226489076408946667134333487892458095806200136901389640376398259446327563535996140381823945341467423734749811997490529943938824242346992386388779484815031140792660530298209507538114735887595666149858328468138450584502241385393835639177693842114556998792749733101962244969813887763245688732764422560740547114174172599437692218352854646414285874887430983234972572698603605084385241518846291572728372225991330529624267253067926116134485349093705361771061309950124174925121428019699097385093031847190989781593650194439469511620198998234446823238338659225005683432482119974952092613263276466763443326412302926834115058202399806029796361033124364004117565264097988810242105140912594981892598263072771803734052583001670847006012138563134839950543733620978845034621378287146280034939880065278670337601456095223573025070936908525892603662829691670404409109638634267049393014226152666460699632062562591278069195763335025983227776677816272544955295599029898876663203965495103807840313398271972336343723906993578013385953877929869978030357884342088597813674953841203029719488763995786199046651876051811804303692419842094276546118791553411274347548889615015950083248425660786296761778413022789104947399217992359748179679462844664238128667168620420054108399785628436654483526460063900998606220016591810487674547577778081007166028420952598509627367571104118332829854516521825351742998926795186062728930752520154189616729700678608999579470974536745806743456712138830194463194939447616244421909849846976737525251745518178774315290035481335495282733083428551356959517694449036647329488189420537185439341545196971691661210709895436254899304216981110224845282255566573143293596144386130967365170192734309635343407058254964309751413032774043742670786455446064288005898553761868056076611178638939336557748043136768688482502412788791496387982349821152265845377074377147369321988101412680822398979302578854075853219980690461128677918086197479375793972286996203440924564596477353898329497367084637084209442637288251645559848333901619387660749050326465111203740132798221829821552361043204519522451436791414068545723005130853851721774603240805536671655431284574155514266524216407912449980022293498801604592068210654833160940399474518836322734066299545327088465243768221654913168867986694977052439484723193767736058755654236734517918576435301551893850792839264551967530370326969808845909558625668984145551911721361347526696683924401341340859183468234559674179025424657693765823927412554321383883988677018075107697990610109511783701586922879643706197307883246708158168739723640889081345624909396195492612646051420677647460086492237422268971187678537820208938068567847263204175550022934046657036164211936154563520580651593382646332030764382421048513005593357504065461896828328087512812383958116386855924861075147860623288628977778745584110634793047058024508768925394671857991688402986983856583674251781493682533968451550162942911218560254435740373382104282268498228373534307134307700067074801929406342758445115831132059224724165869802810927881445915816246027045723317941147794020996080778762469811154381805892032638792536355183407988787863050657113050291558687911945700206244115658903572653606311460574682827579956044510307163195707317617885893573517508979400430130728224157860546291746930238744504805188175029402138110471321972129902677490275810830078358658837478365279063852200389506590035086045442939964928153701022074792102205180348841391491090984910960900363272149236142736666544852624668167662391547029573849932471913987772681460209639879558326477814332239626586892591885501117155043033336297034197427187590890190416055418285601316851479001595678629050289016911367151354091862340903585777969146012325156596068946808217986704528940002656806554459032208741464421404437901586029548335503844551923356775001161392066583034173021020315198050341677963914026759613396336964850014134776173112791773168107274062389744088131862711215450008522116883427389623265815719200558469480716765269382402358498127652378616339394390935663311107382628728026701296315497460397015528640216801363485473764592017330122427564055219891547512143721730770856945798291097779655385085403243874155334278942119121415722868107760878369501642472706349126430326668272731637200421147050401326368806011709172698901296851342137889906894561321662891792952150977545629285367181818032726772692748842883031384928156249235611007493890018476815968533340566844605460802093779398623267589511721977882472105998747293494732964670340386446621483009744726465512867021372673566896121133045400808730652576525833537225923846938122255779513559794436602106871904134213917445376100825169203626673253277541021242140251718593934408912147510944237525677830105724674739418913909369374857669256655885268634788253581206444990741841771926432829578851084273595855812670846122735040326463645486823657302980510497121357920517085891776446389772486616275023465318127445802824718790647591403950415214815480140743889019953995025818273161195067110165241039732158787961406024076744970044809191787178933372369220057997868228798874970273817937925935401328945193312277781540165781419443357318139718469239357299047251447610999692120271245868418435436480108253350667930384826388337682811405990755142639363858779001793459009931355422278570327132812302028789769103192454769946147008308114279858284617023371381176265641996324705950682832093274721356402402899724909987505788630287371044501869846657351347862270883935923456310394591698055805376668420490974800996326218505352174406846842952071504083620920649678441979823924654240316643723711282250240107859318552806698606319070749438218394899745953389607114307890450078620815142637523160011660687183000496124273231114660317392508585568806375400476947309859495809537729647910691539787566246005634337728086714213752595348844003043196640836415034615861821507162000869581144376320380792894910675987359402429340970657366185914256063132303582758784738343565095414267736051371085857062562911557212134094563581287359464045676612760608120076298523904358105802589277252069906539756527202242400632319880260213703847932281811520941227245805617006507607886654916330426920564560167911790736989782840971115191060522947234557221912589752508293167078723515357608399887122052486380123501868546140606631885080274475538979608468261484228670464740318831912020058934399947994558211221472451473961231998903760400778750153103865266863798765993320817477528336612119168372135893747301819646962158300292318779249199011327927663119780767403864141361233337573343886232180743737498915972244939881107406300691494564180681452665646177789061658159246650228215977262473227644705471105794723199776028970286450586387227491661251889199257248300981684855905719575069301334417827015589522530131153136741289299387012577027946862654610792625386463212434282553381111106442623881410768440415665304317698366274354878709883926965732889693820832369800152605062510025902203727249097245736079483343486772273862734899587589991730657035791242617917398417358634224085425751265326132969866089477578273491704141462902450429359515246709478287073914345434055492459401031451920273963257784887040773453045934114675759037177977938569067482228167900945247543321699060304930671849312479080222808847921230140023575511990880132187256863598325042441581626939133409782421253111873743404022862783976875751297940321649921557186946439262266587983567083566442620401676691376212423742415857711747456110399366514228428590515736797437594838379889916582394152839516716364328582075256234189542343051306784106010996530616933353264815170996462600760567351944913866264844126501133391807002517829097275184344221894677541694597458204487360283491238475356525985202648754089775121272987889258251570389313287987770201539587199577706748926778009695715400596517565042983438351188913458338461695604357381388046027316986165607212698499407503048519632415925190693657101189400829259765842779010592458002201720986348941134749690798266899702670156433035860469256017673479353926561854188917388087066349392261954553149934860521846899276798668024811615587441841809702940512961481483774933211701495116514245469814642221822915148798372487655236756282683006649399028413338346304234419234235913831839803326610875288145992845167631048878379377463808225224981073179155437274516906074516072926907958943038244636904914554126656324711949926826185159607758087903522305172271593512580516599217648923393613917096208799693967509655879015756248499299843248714188940274012339978839997838813750977717336739821149690048060020204373054683906507572612807004585308736566195285094290020495554986813874257722743155850736804161041725469140928892725893299934318634908029349710234031867909553508067493275627328797777827788452648981145441795783212108798599261163415642495913451586266196951836120558180574194824875261603047678547642469220901016986824062173737686681644688040548324264706297186415255618043777931958287318282732976287552192749940788484830739579101000398109420124114920544333363078790930627257820380520465316492572010091299697019117897071372851771002358188007326642432299018503746792589427659607176947372965745658409649152444318609336401563624001645954755060412236816274128142443974949931078230772074203921930562316806213239934721431530632572982405140444210908769466955355676237527544228382000026307468029159785856122138071512081989583300736158917334308270678296506777035802877479032222475224520944269801162765880121142879049422909876606818052129373489221839716155903501242658977906899781019915603607074744886753747877457661302965618627045227939817794056818784510678261020815556326824996348638648457498301755345669173860699548739493254312214013196561231085171520859273936897260172154888716937107727634900065440003797838678599295395626941001542721319893240494357076567187377510485374466306756774993208170758936168250254528513984437584312721397131020967746475553803829685791550740563601102632255726860500681461259442201641660861875444047846926126558976190708707950638005195481078817766496166133655683352419538661642289065442325804421255728633674300633508586913771133779689881150312142746425182465093405815651176716907740931896698105111294350413002066278509282845443420003689282353395847458973011418315062791361116129759829601720760900958730146082906449045749990425142700588363388793219357711612521864040432665611469740849811811283247920315767278282753116145082101537950275536213717837852623878277668020788028893167090631534179132435264703168929886007306646155447895448121877453651577282491211206383805224818672402278004187077981431186166811579802041618740600266688042120105743358248575295728419280661010161354103568524430514965459165366472497326445584619810531527075258000004260268177215687538221138979276459545982467548037000423575473735705358966499067875798978153854395623846580111195412459927200354933891454625615694002794979383431976655664174275539982424301088642271455557758975580833423536917065023500081736347049920487805165559968738938021926351407750717283823847196495822505428241850915667857074176645088012041759014504792048111615332857833524324154795215121051989303589080761587235246235104117244564183676950232281712647903016435844933557493528303889003194347883298450963861821698343175174608990778380445887992341457956337825750890873825594672044062576395352060956591711917788705944872486139215824546640111968588967601947121838173433376072361587410710633612523437710824589629198460540017935704720502250707258380799343073396970089465972033101206564834366051950129769944144768974332489085583958307656198778349426659851179125243186805009374314720719311158192605155713613118334375581029621610191644700833888063794486988988529295036929879987664734603527511112923637508402156637781422025447307418195266335077390875564347976977010201882133127255924460300857059412413784354224586563428809356748025247808904251729044640158080953324719489029028619314499820049205687016923270811203478920193739397521346388303011869072740043302945625019500367432172988125283581936439974999098618154617862662487232087874070699996924833421015954068448608483849239161952807344926012669721588935773756461761276504140287994129028336193682077433477503207100253281116619099474697110432391495587575648421165278081059942463994538144802623345175969287757611403778644179089364912058252347119402409855729345492701112582779443663490217469482206867961261974858165696352059002638735778271699430494021856971390056931888618630016142965972664216694710237171970504506163862840605289356172492556792569980582610114190449798742344803895087264710303382435584787809215396345825819441841254906354300558884720545391812587615869370882673806788172467478543841678276949370767044068334309377081869177724577222027687022281224197520112645698305610105892894978512683081148212361150184206468749529969594243841740818231645028454732095779676049469941918336571930019435089433216472653528684006616713320868986799275875452165217115972075393171578456806845931915471270202028631931257538666975498320749554633474490822545199408507620769572147993647815293660771893691543183577612053739439847439552140786129513436535666552625139111156357470328538252172841062819348318993389601546404792200310293708939413924436361179681352377696687134464218277293056866583520604924448042431009102480331813291727642664760112278550204117993137410138758362721562913024609282849335859655821911588827927687353866189014783187479526844211850815893428606370650632530211792132344074600588972323190078165179149838413040567620233001202894173738419905684168124627654196745184262842102011105179504132554073712136174579051116280633818729041466106757625560800171458531184390206810571002352522949948577595429059634315558307970004468873441453124084162311272855505288475814448478973043218977935976376184829418239587696723326026082522118549363411686561917105074288728259127610992032174807378881046436316760034880050150229821814833547272858677474748892397860920516074872626319632898378822612257359701336165759836715730105622535134425233526164169098557476973419519709800921998889223390944538318956308131652398129438091400902815984501759186648416885541350295358266319565399126900847904459682957199957437528891912562234222863372786474557636434871382834579738242092965229137891283745779905884173506794412192534991450802600331792485959994794347049755331906755165086734498975850417879164467953529280852018561490269404871329522044100345145556551512081793062283263109470584984027642822347090039561919305057017434476126013049908565873444439257226837054946156136061512635013503832341460942227708228160788905474775239358340589655026133223763107050577711181011663019590304904312097735160326248659283354083041789692633221625423027042858138571947082015454746810753589094654160007456182371729653306371667048928795896894151722696711324645522703479032607767794823009963310151025019664575984007913047649189274223118651224500213456690884573850727959664293966155425509560084853892555455254735039035444325879957318157669826139188317065973250189242544410522250397604273442490947627349948598945629564453140086068111435381587027581472347993624785667100587400153271848414724408013966336489902940891015251881351699577317852538796123131327639012547749429236229555762012032509393893062869420822232751652337033379565119854379722405596351691613685312393120605686618443356255566606707509305187213949576040073139716065439896047493428090401552342872773708054974068143749716117050468075339743783813797048381374709259957236000686325791794491913505068740132395503873968298476170725846300458789385471452545138046838812352466347210216668334043467868142262538165403365802232587232882609370383018442695478290026223243391495593920559992548701907746298172808315536563516721390088758031376271340245241870711194900408575516592798230003830354542682950258076105323663391284728927402562484518449755340356000727237510030284334902846050607124353167416495334894454404550278044467911766135284571738844418279563877137625739953645400209661867175208340291900994066042052527417939310235559179848346837275675589069633289964415500849557056345785209883539693563887056426024724579464942142246750877206393803928349393093994626144192254913128309035612663153288828736389811211142582906382050078918131514873147975578856130028675989524131625630596902653236630732554888546687552246173554115893463114753451556496239173365014712966832092183494360381187240487765920171897378797649023357094634996967308950426596567101228801403431455398415703079126974812030643642475825838290583052037196226946107916898699924217985347954288942714736239263213197720415572088975774333751265051876264465816859964348066527408476808967533528679643534429262151810329316083679870164960495478554489249458380745375195070324585224074839184184612077225913494399444669098073105610546812654386856045317920484880403445359912053018436998413539695602189394730837188060536267333040610518982371465542605688585235896748932733946081905326863912370890570821754504769373688554179487396249502139540229649139783445825569909260047186784498978985587789604874123398973857384844817765700329759726288135280916934407828529852692266049046911675201714684085790458933928979818897031717393521322822869726142272577793843543742165911657147598674384591435242366732800331359364678617989695091641534289176674311559858171150549146430154889827620965399159739259037045419390943676332176118760428404613612090626082024915182635281506453721981533544435607347696797277007496039859184562100608338909837220220321625255724288274126510580897790956828674688918056567542417373966933762696881157499261835623796864655589036230709747444466372679655469761366502058970778406630059577854731181796631495630151218517944757856244198332483940659629231344035335538068182719390794041543225461842219064822257101926094759421995981380671487243777549923899175931356039133676584780295887727049990544013770142711600572090645631108177284285268417974533906305130752517115742339173971637536291177389267496779234410626179976165913052873682018743354231098574869664519534556836399409209808440981778400128253313031099514901692917719567685374968892943384423310539910363314012545473908476257877306241365935570967114539665209980013780115037575601314230122119374425333470280447666048128101429666708411520815204398609417774098438174458983625392811615255775998190231882065463308666708099281612004894097962536776510131193962644839109955257292693428737888409209679964022370355776631322313055750196177672426427327436764707931739915223766092931388998226471043759497357199691924156306532193033255208776456961348634359187424201124984330955522552586693415341212030739243948020598655089298374736509583441454389340010861881161389380061704689963154592278331787050882237010856638666215396374603831200600592106538578757194415449266491321419867990696385626711291415475737467817104586800833986464999280571759979157532022307311572202648879075000594186410976363366662386226215912949151587965071170132887606766954236703665763831260593359948547811046185392296121952072015085761900407561725366010997477700694098322688219445639981435345539204757033465960011404363285913348688712067568427130628622544330397234537436107330745718425274704014568454712102720721100932838636413824737868439228375842495422625113090698830280227190034033446250241141353603384126476582883876333150431249037771124180375227675894854294468845459823755100311787279623341738301171279517492131333101288758533511032793026748142383994354422087673747545321099511299024272698012159782737841235650509749212365772196618770353732050289018446411180418472815748757117275221581747082439796651478139175154085836011395298300296491965383259415986792469153587955811474526342945429244349581434570614162846403548315499459702917387196701706923809550137575256181134620606465182082860395302895270869659468480425997207848014137097938692399015485846080329713305927285983993923231034291566445439080017651089656314407876210454114091166635376967017819530639635962271246611163802547145819598397122737721618191137197397042897734255415325450432930085360732862708541000396088141651359060674662669050496064407073714783275171743469407123119455271105276080220927676304699488273796971979200888759728877336491558725550956378128753950616066922781777110169684390108011821985810197529605571047497122815704712207493381939968370817727118443754525910141981826170179482340677735120819125692910610822827486711497041629580713353337447152214880509619018201364636797882776808478187069094853605509815896031370528230478112844319704784053964101290423981713453178593980611860753801897724124235169489402481423078085757966419441458136993249051373884003113428808937493590464636385420633366473656470861813251289228936230065817441220474463535458704039910877673202138428963963530479493919765756811810912403876292173400175088505339432915805335401420032710637092115613070705832072664051325802472584975297167341975052063598552283986881528543720638001753127748039517996647929775526181436183447932708107854108394897439364752296187281355545571448344318204638864508531318040231652969846973561414419978778484002715312856188051476754693884099054922152382215888606501710670837627647734384350576577254052195267262359055207428476382093272129203420047481106390296854983083254318605525395851534290563456064087416924837782522837563507009732208932824792896613971888104241861909450748172747404919172909117630373523636383564067277047736229932359232021774602818719781237696069316315759829111228981718400202899373428019104214214838072871408057216202693970051763990366335265116518359476713970711595783899630224153990107039378822401957050578134320474233385109899823696096980348180340938150339423451255025305896447907262484734920081821748463557022869689722535920730166960633769466917702822782706880610487858773675671480357079917042736195336745695007005657713825936954154117538549242026190946173148556723800398473400322392315629069621538577202727833353290556376909427420358308484935822669019592063836645662841423120308237526964882977886200426853475410636835753460889311900838090248152459425903573627934160452135765583388252474700591593796623079196782590051853669968826788128013850901504634762338836329121179589430947111792850878666608242115182101550055625056686200912169712358453118718916741433246144559640636238910557750584194053952490879430002246689312104533318892913972796962403692752638113246029214996426326628399455515528757447877796054155431975206600707903876687960587460686941039575995731163879009344613362821093793607026335686249614826112751890050757107857701293945182153431686982665741082607666090919078500712012929026679536426234755787574969224767032727531659477804537814388091364802446193636033802502907420094243929526753135618798656499190957163224690689643988093218421307038650486053643195604085464200402649050814423077684731250567722138312130672574754875235802961131802916203296071473344434575020513417399214259412473621107431427837898048909466868369534910638507071886122278295406357514257445968911157696012996556361785577848177422285486233149755915676310920018070597288079972290201320240190608129626178743248646857432180957437465252083246777579886991998803043440955661969146594385185645023085972525064704568774841642148866509417791559145438572050760025859306162781119100869167563397159228004450372397790895852204571582539239142429759486708580079611785162905428316924070823242089618262402145658203132359783742492184099485886990327131116692389202714306625097903675462369784786916623646893717582994307799924578728529247788215817575238646461250651624373427065293725880293305952227609892152282455140603448214055039808133899844431399876084926329863438693693603280596024721255391957644467569416168130707350237127897533838035294823609162740928460210146525157540095191628160008589343041596287000552234699494172401138834344416013066184158557191645676452333271036011022487623750832741511518983094018767609881946391677398040117574849374822106242413348236646954785689986530571680504420649213064795206280584607544540700880970674363798368473339295948755330637939289131139037164165566826770429776941303448036127904187526787287276206858876997453071665679107939317771173312274283075748260207640746091142948618973668002625413479785142393581364438483539094517339323979953245589844185209761960187643964628932580933562527737576292643972787331910695811560224568843506431938925138212571636098467036547328369964935924016897211872958355856838661214808596065114771220687047953756352988358829860825573768064538041461700780286564574349435728708555582076336818933352017833313861546232653679490940483009890872560852553953153331902045664457149461497556622419120772998811955164337564560479940650935942578775670588181974816870895597145376294140967420423323470582206073861753029936929945458081204511279691128994895472954681088602078220759039253254786793853989938972572801172259561290952424230167468984804967580397519005843502169077175617506739729236731917347244858435572764562149816885236284030115308720900253486098431100880236341038330097046155308972666664262019585637569852372485773079249976996306553072117585665213293825720691390727976071588894395086163820602356374828614904272695648739378133233282705677822120461020669579072631675371391304338198640911017797604367935553554606147801074704976002314819238116119215149242691988458099650763919787501757762329907776222589604493953411005179239626488855009099946889600128809875474399175929490073237985733195638518995093242350443361769885177447476042342385099793005678194387804559913398917990153805112029549998285767694452404184437327325042771006689008548389216418359375518380015799594164373990304437113083802617011816445705257032717658787120041203321965334126565446348160189628061855767094126023134560536107095564530803438767385027572077294530992341075568892231307508679279151839968948692764318786716274696961298490986441212350805141645591296194999746480046310255271388120912756116349699775168009635628229464484319518962775113470611433801625137968096837509267986506927968007257327471624993957055176800084638725517680677546870663208314818020836878901123632314941211122659455886333518957312228889975765832385188714040343843310461175159825545394725700526356472113720988410962219745075935261759080307895039175299127107148463560718212512165289698812527818340052439570146103325803525035111485458789470519293534955523202032442603133015552212921946916418922063455149471015181206205968818938726531456788152155461029324660766116449920010283144426597317941159250578870226992309140047999862786284830257689796112949361299446988054541030379665187894866010205863136249362058309819670363675694804321453794447420707166191774469764402370878270326572843867392663155601172033002809969274556304773145189937829502084164300640427132677526573390789443096146850866010293566387935216240932588461941213854185457908284746374761985844860907463940151571779811376815965695795740140555423312523406646264540307596903591864237494277469151400405728837090462581087853439115194459648595078677669271699129295934312460430107716566615226612784888433300365987743579360324453060992544266060400961233485040627612696196017639482655888791520105286530565690754952598333596089467308784905141649478521468242078937002488473375643334352366384887048123550148251095602423077304581030374412150504972775952096623479767619186927783770609809219951265596202872850928826026712729585034705994864429623845368343246713239480294660657151036526763538871587386061831301810521499055353924409110035103730533972017440731002938336954869110908317545539789014011329724471477301001363075506876121095369975489310117096610919308198871173085015576068152908148327790980937416860430751608589410577194811547762121184641974676608309421033276186396980861829883150679660051476795213060400874249132810943129466511474913135520301514479297751977318411927572480909332229098757243355451127829505587325075040779728725628554805328779720291800837200522186027078964718762384038283787902663364488905039933592245534219811298199571675394334712303196905512226148867482061728665215933569106469843469931957106821251022656633524903377803675575312782033255907786695397505335045674535072469123883702287875010471063544920455250516808718048224445370288376662291418822081732737218889898027593110816447917646893957543314684176039238231699490587069358043972362161423767903174861387073832720580925411336948027643762402220782310028796350655209234985993458046949520170038729364718035273547264084551734060033719258306715057370216324151943143751198933577744606545023459159957824287377005515597683297981297586097533806304935596003830950372973683710546673684087614370957761846464149839951475271292383564461005369520078850778296808553417705321071033581281344623488349522374463613118968356671673414188198679511384843236057944073062739072772629698606047437722604879417220130531330310595887815845002879714945666189490977967315088594537262241775828101620186179185220255176046369627542877815004484713150653281359820914158860550146273855348072533237865901480727805473677098184859287485288803290975051100969930268190612429949516582767186959024167209676204731703464872628612584212177049537519764807599484227411514073669889811390626013480812712645326596360117030496468458639962961000639160519520119054845452672725850598719304163229878269843850520299867088986904015230269832898604928230369484252992269549522837113149872535654533474811954629554257827470851496262878520734246710977116145334819169993210126744991563634659375255103495686272807468219966934206313442185577918206513963293575806633613613864866435982660419911539256127184595615007668755000972796643497700073295697874276472905339630181809580247186610650070259065422221457760530088891902483962964429949335027279742839431116149836433934451645365177721204438068911639520753588694194968094674148091657940442080710954636464935288251509313442303089938271121419896458334555540358752221430962474800235558364228523816048287979271805181198544189278864014481486667352130847456006519879228921253305327927425666351693507463153914996908013549629939532570677763963835064633504860220961304179309564857605250675243115232089537482860401364566296957020524814869877692240639479768575462997972242488665877945307870903547898559294013031057215998015139267439571400570941921481581570016127929202526632305024190165691142042249344423020159503449586958693748465796057311630018877684995697057184502874187682412751007235050723532150252342416287503270199050416141465589747688137940772017100931681073349137954591849392206595010877905520679904280949838630811333151858910225671416224793619996965263693814939683682840512458031796249252190690307328807235294607839996846556751664203598791407310261563546682155205596633716457586191797549755365490788064965541973947226098283225338818782510076252873059273117760370298475258219241857395796932060107379741480269726980661401079690213924719180427822778844745367052877951432019567515439947524597064961636931493667091282801840082958372539506927597333967606610741984381126356367721969295241026680383209269376011182125093748862087856210276088577787295927632710349652059803335118462373672943824234788990889693212758991283087393299937173062961711262011206973696507989269578657776230555466150502783835041387218940874982428306549253304143264371896179801194314311218687767056142459816742340422574300568767289188777508068184120793462306860284356628539516516450919489827246670916721367883889014116404967180762688580797561298785472324811711574288336896884450791016294454701886284945587068521050522864120942099840868451725521808755265532846812692292576483560684681440999872111770505334739628279604600740405151186654608066760260677670872599263566896131474147421388170162727263500716232158763591916024929659642444419602902069571457588278210250453703584193909181527451565972582217991016248062193355839041360272630550644878097987681235144842591889334078721679457089285830829028033836836446749142558303459093631174061036736010953267371232010540996210828067385246126479567206834116407404978207064504522479781580218754775907424359705937697245445021212955056974880698011713419247063201523484065060556427372216512012238899341739172166362963718434533186290046334018128674834444088422561558547165291759079502758037591223838133145007648438219618877436843916563310063921896418706846638648004446904692295186897580781760707678615921846208206128649913706443873938159003149776882657902230221784093860385056546293619529589633717434208369975606604323015375148592400051986563969885168401953180421712790843703835852803022729145623728728828872736929907478085441953197732979085574317700774224622889975153767099615852898839395865271780325838537677650241433661177768001157898653258600186109131994329103405473473469942102765939212369742696952694557104603777210049999107456041677030135128007071033470148074492784538477907090647800973016994541959067102783153413015934426981256530190529722558508572182913804517918942909715161928571965820081848687766997967524087570613915427273397405989364675303788921523546226489321349454185797855971483331291601698909336071821598771797720799722972124528040123450139862517425684448906727930992946430869134016640001666584452238423633008998129631685235484276162274084008095554217646785844676555151367734594182349997588234993515306082845861212999713787014524298273784477403760083502365507760263838653371524313858520573158328943070688876835893472254478591976196896992069955549948350264080758770547694949532838686581645332449408403471740301061254111637482119179021565357549724527316537178861044061034391502387244516921642573247809218352079199452680019192820217336534606462043417901027438349880495473204306134758989114574618395809385674970974217583577835421911908392625271350706271642326655197254824490469594533201565145168433618419182622650192819412876226007265609897818098098065865514806251592594214310193365813351618036131666584517234846833647644249840499758715249560184720924257190372392722913697173279096687004500716439797686238369523104474558997575166233922647786634998261316015708283214431845960797511786040311383887195777723788923610236374919546348871280086325897569656643881410081736171559822210117935047800576264588396868611614113614131179413742129252080613283414954963153316206664922566859720670376513078412101875682530838259238446555884477160914024511069224971192572801805347474260195346688041916070954267138216075253818701414694269447648240852694563649399990498635420264950910161334236931301521267667635029367573270537302153803337019770065903619410721524962222656589362930794953446341650140319773205403958252456032044662319531536364706898973997780605589214227758957201041105308909713026064697533479938810805502763957480905757450106996340830765857200694378780085202946513733099548604757506023316734220532440466554285841133026284229817291531319298063928233504161282974115626007568831539965658558641036718440256376386662749511972217630927458874998206276985978623809234907014341520256120744086622350124942812018810586880292542340228930618062022188343927754179570278777949342479691391250775690109984469672210771485692370385442525524978736583715824632046753437613059452479316876487989849077923660098740166290579650863166271458051033346416136616423587208068954528262078411354584140509930018795084068998825365667572252548308904993965637744279878339418063759726917833303314205491019449196735317089156072853244019591847226520307551630575956947775177911047305500081380396342809586372685955421324931862334176598805572148705521122832109131789036047854431724454362353710998069458250185671688946375048766270348346737608835934077716527030131380385761741082974487297416072810432465428851301806303669610153114340383155923660410854854421040552813654394053797135038241573246363114822497738034263329961933237808900706122725993679899637934498540476213291928749956869706599696194156184257203582800595080305480244770986108890196909212709549630135512134431656894192049914543490542939075439128256753167302875738168811125186146667931161066513771132563370190025337384657640090862237056114848407091266027271485042587422650185093199379620585730923255020915341865305697631399690948134963793525508048088403104337435372796418542722181173953936338668691760417961012278493751332473275213788091227228216475609683525669115527109700176889604523176482394526481379068869421444369299016360923160316291174666099028997704435245295132053170456189632972242503837383562905092717727644130701545286450894242139810217052453903907908422251934747644326584053477382621175511505245328831133335281140870362458156965424877311269566115371509840082923055378652324132772834116600406682100567573122474369903458874071059083952492737769334625114055069794470777113614439924246236017378599405078853062546172316517290519626823921670568078602541204073249458792481137650087019703419331389945186772581377900566848803741397222251991508901529476891546344924165903866834025078247372904623716853901599250830570413820601061691550798215604116444789075338108879209346724402883099945853461598538337299010130557422210246542167313376303433833336972969577658773229323972031081146914854194178340328764138746851419078887590929238774103464279438431766684960537992073460473365403417039872821138653175591073691049018435735965534558956342983384657331323232276235916425079964166330903409377416624611790679385739342622524886693188845622650850989428792809214696558286621874420895498876704978727105746558834703947228504087718517476041989594664801741208501458035323059801096204124834483710063216369030381007522166474306134860612863010177965625876552088895703326326379449386388261420367407342361538094208419419415345342925217069173439121067354272717173516404858138093524119184575426623631194985135019533075119949284191701551208960117378909425684192186218628164812245472172375102483018181871461380217883323917162515427845807666320192565547391227257815746097803249070370871509919243853436216185088355652433993825163000449174173862445782623899405888401914290694770966683242176644161461361622329561951421450881954283257484213807059322626885528687358328071800008925922499786083578222032213668001075034758702144710382682509301929306001382846968121792648791504083877311586712387815145340790009293997157110837050688168932422826756727413569562391807908174046128773590874469729533527260573032160607612831872209911271748965203476269020942891171437728193977617397500133555992380655378099383792129203636799225926208887390231648197745694070075630413182744309531037412048349877435373730126513039356474950857388970090873866209843237694238738230331314064227733206289694311893659713460320503750568059035934577391098983448998771664224805433220351659481688835067034616445710185058113037528395874977496339020386631181220503218610508563335245116803344254933006066485752971837994485175234180976915092650146039426313023884016831121708193703809755464126773571047842954420172534358553275275519409978144687471965785768694852550630695996527209798027389487840636615819285219793666563936758480562236678997026063539058310496093997009189800184591296603576410158173407649321347866424425648715763987780179948638362776707927127524565078843791229635236746560537794389970334892645835232390400440557273091331248129036946918265732065766802499723561285172176499509853073961485839866860341575040302321567339416390627405419421417630826577599524182833909737450022496231918227031466354691576434744812282284273286065952978078776259865659344987977485676627399695167905318820391005380930980698011054540460296118602378131833027607559066964155104809586727636044947698811903903137533223766791909666243332271622112806268693892527571516434551822929625329605160183200879892150663164438198668754910829306272370126410681394326192232291994181609551991239298393536112079352790383545592168003532483590120755104463310014671557514585866504089475086630849287102967695840908855350803455967055511776692125780380307880028760293805896973129768069286653070968938638715776150761793724694890289384019291270018616021895587305663390553858340988313599361564530918096848159496212261844370791975928161730741156899626700066519105060906597393659156555363840628037004601704344503528345421558228537448973360295390755610488933511674843009260788329603456177703633548490972961167262904767273397545359442562244483574729911295778599053181498884903296722028751869595505609080102862568725550770318418094370983903281838214579808711722212220066037076955579372423001619500889198559183352222875273255303737063871925847357110182363522912283781413165497730697005527014875406522535775415056389382262070452116317504290943637051412786291807950688445244480374743567058814905869539585828196734286883811345574619516684091146191983162564162350687808150164336450660509454090277030569667069108670065607817304820814180437417205755605827192773876833623536985665301827923291457085181477089686292313838903930914746342163874027059656366928852449947269060756026079727889968050256073377111920324195746784373648950597080505087399214907813806284346026222106085265398338044517693752907252716670307584185270501640148696947402758835704704909530071810928681721700245216320950766650990894242617161048411000362006778848497067494297128216129652475064379162849297739244729324821053102039945347580116695148322879296521054411944107795765678045314189155988703617776018571814602569689977360435554016376818092538174298794917094243883634800579133577082867686753707710585469091134528277020169002090115406792363347727471889366838064579269532333093515864549146815424247011491286861913628833315334260397156852767381373811313009436078294447078601416760756401634031508263863825445571452314863082942790408318019578999012005195564988213370854958871569633149075792397538539921928199026018465217969413314859090919330999967333830252493466204512341515098544298494734692300672702150896403651545006317459051354073211959388935263119535511249990755977654285100141477964384318598766254429677941920521937175664753574841903650693153206761463820128930788162402643894346210560510242723524536440827778242781551827294148620123670654853108553145687967372110448836423576690071455174637593596354215028428133838861574686805959196959527056375957492987796055005444743788667405974846351331590949613508158566920652408861416879891292099100276397152916104397146220383135767523306588209617111437510823506938498295321015890499159403667752229740449091378319528175291012804873788692163831584976849452574707998753632503933266346798093595619736588820422195987257241122399652099801563103525608548239092341773972736348522113532150155776484453423824369568205269061301456574948196409170367070326123494450772948237334694641620019008030643533888692599008534855834674734831733296220978259165857856999968599365053057728941121719566282939331935931655732090226112588954105042629717236266390703281884353419400840321233244063374234340553268844929186986470982482393285664856487844707866035097326711265729440572997458159089596328746746807795261106652846371717526735991643630854760784774840769547466543680118926992971526607593674612736870511938028210699213237271961493670035651635551849193328300946163033198330081181142812319728412583812663223852589488822613567754705094521323932147920828743429277358456101104265103024086070835375633277456946410827657795052074484007303964536511124495358908887624337598226765864828871031016259303462350132304884758214368349206115327132210276641241452846197926852596939568958702055980123010412151104150014756618465980352692298600668640206510196838704596733237864046825175861035979960723321855167454219409252726868750369328544238227956359159204063294723118918184049387212114668013857910412978874128239706849744823390219438650457470695557019889373730547374866102268132524019985310406632041677436176426839077644794824021251382467853672446623577474360282675889390490332435499671587668115211632878137893084540524493859056288368146092341806613745342004028458168603266546678864489023648503742251999503236223591600117051528216002324976895324875581356821562695069654617550126513280419053713046756102778600666613137653945431164145406644746547949253835335840219029471187208436875710802148964108427002546670268796165926381976849652020088087142320820931763350775565337762780390730003835752198205856216818430991045014065284290246706768723978126081744342507097867865959968303289706164944289408343153149860470738580602628952724860069250585785141904492985962943058225824159883740246239721609850875885381533949173402546544711836222770746716959367778217942544415762443833217280198018025633600655038758396929694916308928361103336614803065357528361149374392771506936075414897251753353886684666639345685775338071090973918756029824248025174553289744742899243132171534242593558847383439276471815879433431524721320671833048053644405555402353974793678977836885329812844527809852285526760241620917233513547233684357679989892907504001609966057814586454927189922501031677070404762426549970708160237787372125393292647169556979492491701270897684948008623437282846533534842459248491982923671615783921398713585945081251473769463924464131909265289538701487364363678887847211088671294612910114417928468934018084185639157630478253306770989496318209379993921513584631940946284102545972495904210578391213572382887687416783340399429941431904956642978756115766485478772942930573336644949618776780926716037658956936090764407300109897755516144816785169614963945671020109021382846895715649764252439837904821180483402929048095631933699050740107968782199027150263106958130900988059457899930592443529786146797455400739940595226605906610410310263642219564803685710749302397723852903738991147730455480454124591459422218863296006425704372905008679297683867311693696796391533471986297338416958302609567552073439737740124239702667542236969552527138157961097573625716472953823323258676906938465017166035237182538059028874585644033853862260397785926971346217853732260449584585135442946311606737675027952067015534131358810686378273464221557060870060547317094052659782391509803211576353076276673975794743886289029047354430821388108037608146039015260731265958162903852809291649628574693544835500239906396089004276137251501893308629059219621493657057916262318092097519219705877360123043278763761464139288131470368265765811553181065369730036013980468425691398461438306359841111136192929577123974214994427689696237847302530024200949255644110512925306484712823467373473030791485442430945022346717950690239502558754040634085327822583850984822300395769232258412463491243958241578429930669428854958022825814159847454502573449962000129160672349450986331237217291460328236151473265449017771081538454593413198231539832153468591914630018142051503564382252774508903685054633894372095633481184469528453846821608526811712711853576076440558621019090992504652805444667520969949631446338750227063744384667248588289810216612109254103311828096897637674101276825481194308393060043062063738853481651612630532759702877565791432451563046078602646172096809876231509804946407376312674913614968166840551954416575358086676419217809971017868487026789928586141996425260451672323952987856996775729142171871688662644414948906308323734067233721712226322108798566211422581049417275485282678586861748563196908973146390848528900589949580955263666426502813530547448010447099684410769588668440621884371897274195950418510627927466162352843599442114830102976408004980462772317385965545656951037911648042446237891240382047998234740175247775333874636169874518812692263792197221930582437674136228681271992728070831474915675002173195897598046988641775614260436889234490402889002902728592482279152828832663336631282455967454811238212254602707495498340351945455828038558954280392950955050929470827975182560980164839662756519782950310337676620000435540480562584396061840391672749804357017019442943959656668694713254209685314610072580594842345022613927012003468999343797166111245706450419134190189385013642293891719110212646122699783605603127503528978585137528839518090122778883540036413581883659473703705444352641094684975411827430152911361115135927884985692131978782498132046550476981833585373039757702888615600224019416339064317371870959671084080566782974768464762069052273086262833586815160982634162528256712541284084726251373801158591539183756093977645751526727082706669730776264246718850614923478087150445679078650070956713647700133293706108132728205337174310940043734356469486073864186215102366033291343407162545347432797700806996746769334859904974786054097073242111409186630468796598913130772361424846073810531756832916807434572584123188862409964416316081904223466084807767377659967777621429647758779535427651389248881386678287605252826839663963398503961994985226845577715909003964630148109523532542623152450371062878144940211321877353674534845665182554431176808113595297138758942421545158463452180320156080791060172305477882773501634481424634225805390644889583822564751202276052234385000847047055581563915491948403683431699688672465839151970444027673825202615160334074797550938510456874241366266402194804199320847557482972876585612950702832106494781215922663600876942160178417366018336730950374934516453881630255708481606585080668760827870214791505786889447588191054687357894830453953634240290609636040638760645077804066043010126042716633962823063448213431460582897357562828402472470371740416735908143964566719432318087681762688914607870776940016332209065591210986055845789840978668962144647585495342970350110905244045871501649757489548527215665236522399593041439678709387275728569942459486256083204662293795322982762354540333300186805232094334388282128804886720705729179257971515631016039881953837648093113770626079113520066885141111173022754425139067713182885144513209603524798088030553193026041284843672170054569019637630627339462252788755674411626056303140477972265088408577037550596721203420073890745252359359059965435311260277487573496564829915998302926667034506966794039534896387547875181050395959888087831187053193000100921953315654353193426011618431685286297731081506965246333162676480457632223560498976335843835252520285108073939582802641105529696920043513630092563388860397479757131210527727769777074912978005045871590541416572733018177020525414129966691407690653749925693084347291536395797078634608261224998167428564848169524491119859756533203727324945720645273542219632447218911500106202859435543802351259137968212036322854945580226455544655058995919231495494321976365879239849294299463365738497247382757793035489200385203698945971618939947261698900985666336101073236660380893994126005799350072930570542330025732776774242213855130470104005928733423483501326265569848167044312965740840346833408898530178039918742802070074444048730131030087720969188516956620905565800658913571574974693486783754666953328147221878486142555898164631755664242198920861291562202841137284732962956115341225197862803802517685038183648107553327661357642257953195513411554068688213866080540688479497790099357951847836226848375722762616455900522770147333743778336142425511896203917938252436971908775523331879331617530487629434327883775159695249252456161448164681146612495773586223146960199765341547162773429795768149989046566427705548879921894606357534323354104708188696345189373239494869808747280725527037884846380235740425798318656313881455374383137673194231332412677182662777010139566579275954261491888576685990446174449835920182913838823868546470671364776172862711685876250517448835353540969671988072453020583424278950182339483896440302254904718408195048476339515204632326599464589389011248404971755205576348771717809432798172317483859082802063314921925908026980140688242617786694520762205871780468093496666421102436081858985447227408173601163852421905169833789036949054035532382328214266068969412938997644791908426045739647522959862693110172904316244610259898357498837415532309681839876542784026904385765601438306418942510990093378157181772673802867003848823275729558328615377389332568321030609528932095621268714402391522369195409148844867982157948570952661657561250873926155074032121359044200452708061334653023618057242976097118743347727729824783274034622463689874022133220141877657337684111181346918128659926842573029368064340125825883736680605207552622698782399447342790375260049982008755910830056611217627184576558863843220325010250705596274882237082080176825833608973071479765572203650133463507987877300288522530289364629573692664284534457884989007636018211608625214263332448461338646964156001016748903938861045779594231564493193387872085036973641609755698221398756957232822721083251069639109390244332672281569297946509351662663997286936935378804889672727265959910578791897313608439228696645346338503254079461727275644844728082764689406103132298879148518155907354209895320513667706393009333138700675636416482970885301864440960069186661651870903807588722598712515416674039107248368653608684434715829199964304116111603362194409056370826518859268140959187284130281744027227035726158319595681827317267452351789937658357028910180366277441947608933507884115902174734801434182978704243353392817113789956965820623832586677008343003185333584808915211286948432287174360252844378449823123337496062152172876361208998256033980514542856252753694637159794626215454636008400385562311745027970363855930379968559662054592927580370136007790018177332689779395784937579037610502293949504578840544374920469356757337585888325276620847356633943788463311402540333656789399935569376362538899235092775272208619324120045355584001578600046660956454954771737357545220769554607927717590102482881094576875051760430898772040394306300737064230364754474181141273338370800837192459215587689820848021351449780452585234703454181142015320364502818552069543033581726486070238763978097603329901152219861346090305645488263414953867762013891712853061152120241738418517438464888570457714010950525001998529125220223586570578461012269814315039046297784026391874816010216735793283288950163839163878071331986990643101566621241697159337522965756826743308270189488310466601434069382284759035094997970364362585364165524986334197873683244955975245140943718196307684691043090639047053182784041074164319984949586289704928375708368763245282562982904829717319418263309374056783195752576282022637847778611681890716065358730969082647114772961119439100626015602683717325901460228934050740953225987703589903985751505025537269922214759033175747370600125573312204763973827920383901883497307465939445601977723189444590088717378293842873799812563048717115318928611481538416208106381435226025325870339555610183584243941529904408202426990648367575495272326738060110157736258858045591196654085574222099991553447054161024824661884036444127979028766059736117811924024142899103730220594581139449817670240731663335693606381336577738876198036037673092612705469312343314250671821741072682228148469984348658949128971896588722849560844471748922183065852766124498726533730543125383589217654038276611193432022672562262436474332834625815448172524271180037482301696896713846707288572882423472599520423560853601240958032726478735008005042492592045834992680446258251783955112086364908723167424559270105329426299037423180174375179626360695036625946771524150079975975791845209166618586306879749401186137259915526221271736943015572961006139216696351022458243207732375261912586348823447972936865662755103163329941269490454635941872703363889275669367024574824431371529075456571582318035431343413748571511201592127271479644634659739363452628577958210645870603970560292491006985563081843816998094156701774753825205377149776871754090530124523395833917334155717786908288722698356184105005251690254078932639700342355229322172602587255357508569228686434173249939176474489806972699199534873820669156389213095567109970831146502538845563372842539668197920975957440008120862330326163971732145609276486931469975055095018787503031567791059294673519402658557197908641496035424165345730511251237240535961518099053063534267416850390838169796002959714064438013325651980277443889458196381864871820207392551011498580785615758242081296811421751970491887427511751091218295009754594265895048732169972968749814448651813727624924232288003175527444295211968822910807688578117389610656942504565733981041277306541069757037575678449023900591870305798770855789335805420918799216016401482837523651008584494223086093736838326981145948528497436842265461262372959092455813621672964236018248577362585989900552804594844557660386504753564298072229511193011196747200746423294000024054306792457895216484387200529144278727778615113687601647168754894387491556357129812516825131148137292535187359701662158286564526695130976497085189009689184433620848710510196340133155500002636073599153989727019483408999583747139692503728708554343078212034623019803797047712408707845290426222814942425012712794214381840873495299479800966410594658516854472277533297745918106170271863030629669432787420343978113845675704326421885595343594242438351579788065212762108735079427771725974576038666403481710444155656873125019578136185728991240376654045875296587013732834326072943320076451408485705608396260802855267756328154044757677936970396719293848986970273563258695330745561582850848008171194874790531361740343818311552974077764870092892627836806971886944184393210642865216280417246525868428282360878430055233771928704660707859110379952209458573905441500571610990544966230103630982130435593540594573287087521979036873704999626416232048177582244064289550909731339265235404501334769211724434691170666974289174418010654501248401590952284111886468225268628952813369376939018300760893000870777444776956852389968371282882193975886262163938304116291951566163693178176728986682254817586780941321938338764823139247385704459314403746514997680090411120110334859444759257599509330765701620461304802009220728426848992128142261800199810226421694003632975437776606147997025102613382428452335686702364817630770996723319303382283482966233982756364319817753239153806363874891941708288080242512072566201141156848591106844120754535340669891354045452804491579774764261536287503662740276609136080145637193811860360697101898789037462488007221547685793529934008201416794238504133848503589220116884462201553440467599536154863655220389849518160433835574160368500650199965536788194042904655637729624942682970701800137458958254442500282524677986284467645930270292070204186865557399756350133248732214069201714271537454523874813180326464943433606722218156449229885585981901920759787847638765428237051526673430641805765040777403795999287184992387050249244975250035919866350632866757238417625017490026650210000830395193804875033563057272455692243421145734995293390865337504630847107946782709028487331141581712246185594504387153136853530514834980411205893877180151719916462557077793996750515288587545605872078694660223895026280312526146730006915496828614782345870737890001334481748694858025749480845070903018684295899668592981625188144767704921259623841935604069347350533284705309813126769610155330509648326245712145808560196354563448092832398398728121197873724607931599511525895011012332115241626137772597522811093673830595708004254476125801980924440188222269517358386530810394376312801260696644869414455707262896769565750879544779422806284732270662080232431862212692143025479883506096032541619375556375015322191078002220634788971799245004979681165910142274116284778563481965199198798923375233429894214932659951535988620861830235836028669386556777130543111007606611694650289320114186463073083275082354412698256431315500107188835596055397694577200015142031077217735893817785783989114141035056355562109264800510728212246350107399680619883392617829484208476378314317102609868008726997600555483869405779875503190490148952826022187232900025979225114744497044351979327852884624481137283592566115055073880725507266259264416117180786925494884129866744110223284295410945630045717311688039651262324025137834870072147280933194054793452048359963664490386192930290184260789259437524799122437926867213750046850208930199538200409010700480413104097677395298790498070046899952886667183822290332307432037678075767219449727141030155999756506885163325142458532957959140704663137554657064691415091155417117117655163221236925080229582130458069808469753461852325314713959314111099744085112158272583660201613846987016449939091443696152538171929889351997347602857580411991522423920753212207808647269370427310257819500707265527061536216167274230409868182627832664925468061808200802311734102816667246616316928468188181137529776102313316045980659305171140269365893456964011322241740854678054413457213538314028276609122948814462411455339926541324776584392173787697596952417788010860287506799801738677053327307603451976087270979041606643622506256651204064000094887107562197144708584582282684241352607647855165967164793591859047827250007804868954653824624961686962583017412237001669753053294117201279624349032898681271594220461628918715163611206924697110012161894564128441451492381370833868187092931490088359651679590259159346068337334295677841035644948294650902490151061733757615986771829037311359900382255120194148024146892784732976034413668885312642341733107675653578900211729067073168832275925563718788358679131494591024814960135548758989107462933269115219106661036662783340084983812934127466507998327167554679050294072703899461648744868179193176070400893168296749099868807565534096642006864926657137924177160653335012617050332803178880170065395584734300608975565187881937335955503427238089961716021446509010801792406566059038980044036372786250320850908975983106696804651042194256823330503625508228716160391893453628898743836728789045873444439695985909721522624944712418594169988268907759385195948019914842645877564062719351452075668703107057320229729809900994000409383380790082370319114250322104312680441116279729200144320456599722321687995175952139057568321974384648113491846204559444801089239470671980663286994545169742676916632845912804509809607044397744860710674828910010020874713108834237061548281523393902218978782764906446919324985530491450919887767343489259149650448694725587054956576677623226926196125660664810682875445261035525045190631761250622831827179767058186534542257208262201117252195208861661833122684448905512687572317520659319290808310463854890938470254136723401231854438023707882161349440332267799445955567068805177882518842251443875641936458590050092416145890991996957027659394840354078149176944177640094691323634118619975125052273485572128198728259537466835762488821393798141280293740912685114913244705106358128169444111523898200905935868532803594018203054439362299068984610693111883015711670081250223914553922662199788241218567998867398842208948124872612718643013999926994374254909854710675656523864057893501717222553003841798724763351707863554075205032690239948202049215792511420370147186313352418425153570237801141943642912791135871178943739651093921456404369215849488756041182494448740664892200837447587650770486115813427935385828705872727117398572387386310456091968358778792423709248907750849007008260675829062060038790800010924080450266731182713059929764557752653856912900928540631196929648613469191786170424543191482388912282582467755393782709238536396778032556667950857169898462137495773850226015711597299322031725766462686164216300536031039387469226857939123520244765785518773522288299511490680011101424506569750679826831975756867492657890103600018099745260827521998045526350739533312008816829850855604367850799717801127281178989674307962469963622462629003696993980092029977907913510958221745228509102503512723129151273751613188296502401102349864124422841075917745592119414238170344359327144732777454859971227391760816414581300935672805402638210705020942979719150036221904489046363706741069870424855704983647579245835626230853458169707055097615799732697767058439628878310110946194436131740208383727634284895700582435960107860451017784253721211822023901726876707215896765847019488132151246713053052640105274306697048310268864870044031472034025425355884565276512664948261682550561614798829436775296514183894439019881007418611400340792002158986632163312297172387600518454746717430410874433786037718115818133393065916168702070784112626992298397350552749890523369917264338562466131201687298902079163345989331370053695928414211489685278148808938692952008841196645149468084434789297074410674613116012646323106309770368291951784477783255786281647075611481101611693597782882447599923340694875208211518454001800410401292303480810532113092855667917354159459125278948765886319771366244709085330653916500691150902189603908388603801073908564388593248856639780581098730391948991810858233366369161181256914591537169076291672961751630697721245981950914976007751778945427836966080632406117007735183378475030056383228496582365332852214578460685153155506057265673266360767186372137131005893144446393519286262427919786010594511736434203595632977592552547092567576666404697086547506164991952508671583605132225871822861604945883228286073302822464478986293667434425104148833462602839578235404469848380568650288335640138643602281381984226611469291435113201093298007354904406603044394704232968809660893809361104251338039103588740467170887965362867083487452741687047204148976050850025033636145944775684437438942802215065060647397308905920735373081109956154789351105956358097585816100993145093349925757242717399613224931447642359929373612729637355647975744198183549538807497003983521524665947511829411045319432855416923625102221015914474170066940882732422481893204151540722804481203992962358469719433428064041369904721724958700026911119849761680813009837440304835757934197231504900824772851595251917031893497864051560240774281422091096384497638386111712144758858142684465098177979924373260593626265485423802474493450222899428282064841327237128459561834458874628006396691852122349594915572384088089505084127124567675339734348975071320643688995717112971144870189976499823363036938018409695328907874584870539980428113354068544879567912131635004441760199343298316172887772347247182455060362097248528817904401510253017239316559085303874447640951032260622861961648520598158252966931127686661846400425382274081437102328550143478392143639972924550207654759816173876618328106095610102874492854108187444499968045851905239574816493413905483538005649217729545144110794255710655992208932624584760976153498705989498769440356132750043119632717798723384604441770362013953839085049678050698430005387427665724696277913551541521442708846695217356549288175050082453115263170194595107247151768893807612654309293220671494435870694973876139780902479367054771902561024031484813829751676292182919019213245974806172936791981557872424907817920253181622273352376285049051708701352846356710272460948927836147257848299872996025568273905882904673425203967054737322790264093144812088199616865106531888706657288445777773946464281743474818722882216905656945471049242743129546779618448760618475744592075126560528619594903084109326137245798567835737180033823312775983821525055363061638881710269179193425579486295812182472651444974586844418905982068595883991083576739911954930891512985155165122051316607235502137991113081120180210153204189937758319768064936545497983489295086011901331606764486032524117580697222254982846312813662281294320038763646533483233359459933395059525131766402158355781773122112905517736686973478759286961363646175989278294361862103931408690003070993743651014608166716956758191110241142762646704610820688947536149892258382293997604040081880836606274111765654192044729384395834201163624686604062449530250671088655384892092535345400438632916421241016384689677462981840673182121076140243082881900297646602915724241960189325575559403671459591098728940386009882330321366386088656937169854060488802146691369349948031116068646750048662498971691640134740758747324062469747563127146932273789516881332028930743537319822009051645454592286201805840403289098440678584197464388261647313900917494126909836484201932512559002894821631167029656905955043151312350926352710739623036887390254381714615321695468245687117245978639755063340680169747442228157205610901422314899232655252560605169134152868420759731178678985652642166802789767767310160251591734735719191605473778825405596855064304607929454489033883909107943535573654365558811301283292345280256900662601999813730099084696873690871481485100202436835295151213047411242822915699321028961117566287805701629487013510671033115175072251265407374649289314240631967821866256757587091199747175498193865306814489479857892372434481643306571039628638422791165850446343549321693366190977018169332112519189320543718144984576343562867267111587410436811837196560850037213935917644596429272183605500965985957255094516433803651500287101092565357393971661803825553198074298283916370204712564947407056943778865209005854551216730395250468346755388983001423247658353475372178302232959010900081661295837827973471622096345516139236851557074361134048888522184983963158830300198842301748664132625118189644764923059469238876260067477576258745753447779423670216054974202115527823991021763438458423159540053576263933739816186390067071341324266119962379635153065210161287799574022127613576104433979977026582216042663650777173203082756932553929442816682716569764262492419608235351286067977910773187968022031916721016603157564094876330390584017804851728990291335364655800364140570119452632145916491729616225475251523523620414431955096566887641523857049429231352467543917233837474675713136926744298291272135926525705991387843075102923861072434129409313111942446815462704127151684752149447600223853587831902460201888909946296441239727900323068199677578856910422562154340809476229005163523758361956711572232567768361225003056174792089790869185171843216676771739941144502233994929152062606781726722036644409269922137248966240265421873332095815278301228758259903670790525137261811105149028357370499218194362757716612343079241540060625578906707162711983454057188158936048070282889744676870092207175489725978422049591861273877293036964104366149909704290618778516504034854931801775202492592805331641325779702433005965653724601666024992369334259293683024497173861437079264862914457209272989887335737898387019420515893427601725889361486721534866075340332774611146751856739273565329534452278161970173459786366185075950289770656779502553405559821605084507101713533107613400028758962492044938404639486600690510410410002689669055792430851497714726348667401924548920673424396116153941828272581556600481957878964908638533171307373487386197571575511127194105823086354256751408420056469595984192900502186125480267842280725359787635954998292751178319799014916917124622087516533926949571381180118730114951312915357270961271977924735885746912898897604725744586352406006988575026670993534459944223429291592083780880315742991785290423381856280261703589824834469595504106505671491567647174601834735436473929581658830177221341313717861504807345792727026396135035320943527750268982189492036549510484782851536404019580945758248386320881783123622072085304842414126840420087828685338359093970807092967450569193008363479967713004888809660793902707216925060971200964091843694612324780463610785056982462437038663432457857323651357354304519272466725871205970086935059071379675282663443971158995863222990361699710319644696621759505561642456056000494943833967469952469675237293735352196686970506956766380292526011156891976791040052765495064312706749112275338678983398919113788662434768689752468672201511967733078823908220981880588344162587688144029411011815138445298083580852427071909523756315183028405929004733466612107952657976095418328744087204578651570673067821220496521689841035208753456327489752323678906855984003384757415403914356986788332026636082261928244636985544383207927780365079150655015215355840008501445373757725581640878995562653248717834709114232871070916345721103532287640006032769981148718553747467757790233081433788738156218047481061316136461983052890647332388413845046535292314859651952288436885191236445438111331760012479785202145234989928044426756136047486332211641505683271202218651441822759712723727582982561057896541777119537213161588111810322523773497051281734736024979469450434416386990420142232923815965203307810733134077688701333977208518030615577141945384029219624010735592957711485761723710452934723014093689340341097958571250228322122781975342412704041166204774253082111740472650060090341259668419031127749812068991170455841782337433663346859755546509917038344488739434980137268240412033544679085609245218783033504942582131378501814523530385477215061425741858633828009413667586313180826596516107413066149267516802406747509189839450769576722648813846787200186991840801325222368169750910610118451804379947047661505670831552049872087064093493064686449171366393327318862564589793352011185242143595322219631369104468339801643885865550280478453109048890861415941854803505126281955539366501443673991490470851919396916906222493738042002200302628299917819198033969499690788842931324791022917777097533386567103181363442318450316214516123082661652850994630919819907742449866669790832146373139876195894186561491043316645223273848069525795986285101093968596274936697342294480383360940053962365107529428764905852500495009646549267626927913764044114857677972430022336763108355880978017031597355330494564342329945239569147949863278556052880094302710718043436683201937977133128535195859174777186705528724710825813080713722960960868998565327950208732097500318562114054120718001190907559777762657434404894690808796693020716941854200245152868889214930592155843336897239162395256906520941829150257617640601163114218439070264294705188929152324724722363656443542244453503427081399014403904025993036948629025048734793003770370559635562467910182236327277240366060333432395607762736755273764707564024886506774885144736818372742396967344517539527370975715744033529923812768786889012755896292276658983082011309929948221519403146267794977075168261963252952089718261613898672629174334577913458446860995859409126497899945416224829637033126564785623989957982623237844646140299676786934167000757216513447462461242541695495478655292105538598739369029314567323119145661133433402387384222223927170132041045568090721295813879205396099743678545336031489778291105871938113259962922497810378665481540174394529454324586599717952722392852520984278585735728381656197124535066272003089635431341129621286368080121357628187152344795500185716981147054595953009508707358760077899604052265111025309106994552342493445495106323511838071704072050426783839323837544304659887176301882746214565958241079737460618454264563608293259180811597890842382526600166318458303786475859186078541624906151599837604482110343888908244000495097547883987613086267325341803381464762911431720305484287411781934034216005986964641820483325633249752689613855666420952315208909253146194297965308992462717412282423576627781549656971286428949253687650975380557672875148175000367252764149179582467786599583709431283109869294562523646272538492038367732346526743860742823503207359052229680048267362131354228524627756234162198622480372876998598866144131961903579821853378764408257676236409546359676290898440377021599588434536044092449689044244871596856351007313515112559627365387400484514449191990774863687036706858629697657589755195738145496135595611292819609631260842596651673655091715877611178661552154756673494796487596269000301581777179386157898577059032855938891987317569139527263500708593452693811562718194955051557914212551083969000857019778386696583500220470742699364877733457810510425103432537944305763450756411344068123518899131634720731404754936397869738324429739061418327601677934775688109748188987828657299273633854136039235691992481730717532270908694159501304356050452030431987513632753555191762334547181849041282519843980109228582928361519987149503492898063572488086907709002184806760204974767488531655920783905169225867668370032651262869632718184730746800405103912878936616652140754701600651458171855734518488910429881788658970829558741135734402212051964137471245009549505764810667873068917859590894533621145600330952756325135664411852963696203564807603066648760864888844730588854966348600779813391911234132322769274401178365137317533681597075628814840422365871586389997636511735569323729267734343843576636233626383991208037703564211108002168710140878007296537112217783261823762202902978130851774302036162411192089066858179797453468173399468793325063826005308425040450559044282951488202453675218451061932076318956692304731244867439993102783090995708343486081122230411093385989352174477892308136253601007445157261896963987271729546297671737300954155546967556139936342575604501924052778062822742596006903130948809511514502902812388028411076405569009306564450213729734549071942237774322737645070403918703610951022355363830790441674654518466253227396010029667619205764704244517285357739993890769023606964866922979138015350000882025116279759209794227659936417392962525946555269998172467322345201389091087615603730799300415329777645875905102997000415834786771009562032670443939640132931790569754357828488513519795897117696225419993313101654752301490930048110996661179308899544835011784007555333252430794714344928613480616817688406188326267271330714008707148069434746058532788414664482479578611082484525163016415872317794508076009021902846138472315658850412149464257927428902154226838855469549570112395994970558256196027566001096290586009334811857261681309363050938828396533082043662977170515076466024346084944440012257119768796383883097741233974281690099352841800206879204596213629382741523808987139533680592727207736713561432055399683690058824510089469286727959093922640674462509747187340934308408096441997920247573225068754196045217316982098481760556102283395318927351073712396954842236126056015300238759940985301577924150433680094873908877077228878884664103663629391193509132151695159946114821279819081403946895340277264773535611404770699953883585198020788240290645822760130159407953210602123542869123472992818848819585183353049183097911314323017677753548609781792097983517398944315416482862401760652174985397210138289480370283364588651838416752522881195985627218099668079832865327815196447086333342745584950596179297621599725579044542580166691530949270498230518377091149548876235017730895327993461206533863696723287390110913546361902720637091835635679253063093783822773160946517788106485629975435495880849590853428928660530410332022644311956580451494680190534570614614237075443218738261027433299693737125632001241494848018454195121410174368330603502687799894229748268059701985542530697567891931720161997943689750490459566863611570086333281708412469413636020363389585859501036528285256982222698616457017541491669871041351973110760785241935825413021271561625936108115330458962120425123994626868340147978335340393366850492467960696726426647366620865734255188752151963495071231068799526545268772984033431876906200464711428385577259444458532148261040580867196199596351685833841462626400631457066439278955628385572457828805343465371227022844169170930212274373102342643887747236003276168741861764013166517543389982137362783546104666396709138300949008007695098020466466692776831750068498258036796372570444280099005422143356167116565714791966363522507189136716379309057496567296769004168856894983866621580862287824254135327821087766539497883235665775329189977950470112047927327183923662824086094815529082898054107127720528994983778834213475875987055597924410338390538076480853168550236440129549138677700227493140864361606201609626747086819072428499873474590103349323476214861333973693155603457634445541119822037894701290484527646593891783203302744846145016282319807007457157838787736262016920902469554732770646234365799881174018755958950887507009615378343889503712311642503358232565478026025042393255824721215588693832554899325421036224843667157662929867597105817455432624394812037519904623494248931669538959031788739655135049592428319396595348866565994014409978157798687222109504028592409612694295274547295208611641009145102127419880898471174519106553681831239992452272458462752482236452016198284023020552821622710824340551873164974575091982199966880068130458283121845759530599336138234272093842311906951677900962972062828389242443080115916269479611636350915384543348753635168528848469069285885067364412249994023503843506968390538710390867493092216447028680758690552714499609944912271488545361115183673912591037078927429907780734416744886889313219527590768967327973224252819029406499902068034579327454319542078114141731657310417956425301025777611638067712582259739120198641261491998203143161619965486225148387783949872949009662348953461947203408087289146483733256985117955913852452810438912189637818076381954943178604399488574884353972392966005466589570157693271068393580408016941883801010316011864427309772590173986832076805836078396418005400516636954649483706573522758014016147465559519721228052738144135297150346851227302068613222483087016927760140391555058367653339637089510895800295611141824589335540585678498155520391133327504714652192341387030750583460929170161079147183325773941271962223465426516815416653466329181124619296761241011942891193205879297069443400665725342546766242997883646001193654861997552075523066984155545728419141513142850412912866961024142966347096391739784605024802401749400478688152511177100763212830095731931317779072356076553966097491334628499557081576668084645896798421718405541374709584982178222657280864565780254173067958735154790676092391051909071856436429850735601572172989783873425316613828374546260162447454315562086329032474924864628716666701214219655137640283622589984622708919036574963852073674196761441671329120209312500341450696915654351125036261984865307142491706850377991792289214382310680010671919855416774488398659470483667591148721388197924014659437019290389571165740091137349048278911632457955873885726830045444695248009980728566864042839883220606482099347501208177500833434284465352030219902660754669594196296298476034783593258272229434319153126262219263529601234880995551207741141675621775157714384026880013139531359208033381216397041254305476708425175143991425228096348273327915483258492875972506731251824111969573812525897500611322026720938220298570139036202449567212585660684313759556308802371863786132435517669514559261255403013496859028861276649385879044760095556446147873936490169627672449602859967624074317135101054038245667497653417596299724516102570847863584936115985188399928441096124438947178215992206722832111215508800673267313642821943214256741917820975220113337769562888521151038016154714316052694660724515429273525530846832096209547512204959031988726734987798032432782671164934394326342178369561008317105977019650035054992830281829529165971258569303010457749428297591566568186597146451658825656560956758073303861391159033048052024286952075584887536586122175997374962980135890688814421789795830013214095433915528440766206044203056978432594924039109894168774147053450585898897341280726347538020817573692564249522460489970517038615163520259101952314717713755624323026080997788145626980361622965755137887671492147365591239438776539754456637227343406520297519171631131251952089266505337930683920232632925327733622541169953992298022543988999440308835548714404644903552669918321642647506330300686645945762974839736713007905912511701978206744649574662690754634325645202422475634686458467518138706295469310424200664810500969535990200077798714257963747884053622250490500632931684616751684792995937982288322628548516718101279307267131570131017925289323209349619993230600162317494077822879473711102719848690712186819487722245516369662917472286883000527551795885944341243795075481209729027710167482220311067952864273060274373647420266614861718487230089517028649269954869023113153509101794759653197111626186332842006984312247185511234224312818622000414061737049097649545763351441252529138305921525874191154888033083404556454523608041776292130485293080310800086109899045316360077621148408960207725349026752483921780465738904806022416572157337144648554846277189256310253321128641218862188837283498729880297034592672275858533936638324001305071800518981060421076872448018005298042976423976913826206005495195930264375821538066227135291482439909530811399088837409029815061278277730866097655034293487041409879206001577397916635454453376638833673098222465198439882569514091994014498895827917914813962977916321142167813531010305432618940071603517472441389733684172255050098708919072818317481158761902955279076210892244902006169715477394349853063104958552883207068004558987276508051704951253993814367469017466430902439941461426534980909985568005113580653721488592004164733459595243344985667936665991557664923225542630100205821172481438306554927024419552741359598251400209250280064301746959122506186097725891749626617820856969807466399525889647183518394685308479684437342251264865066041345717623149573697200670607791832067644006482755483787380864262931572769022293704604827638353943795687087148048402860352996047210941919661055258363328308408116871150636121429126677459436818309108244881407493681455059085007685404446518017141091914740142671514580324322954721453910571553265690039513297312943620196637380384187908288704630972344982986303634934265051306812519139664939957320520231087239276116120415926176395945499121286008198862810052863662769656207390208953609442601601960305975055814008988074588127924932576427062529520266978827867608369019108186609625903289614978598584723810816561641407857529650299843153802097080092681918908334124116893462409778108632916670099857217224524412580275813003089158308086252821970260353005481764784779218636166422270650299253948474646608489462522460871344971468106176616663583158598808987108015833624088541067328501026729185956138935921532897680116182157791762157631526305401902366362916182380582096364836375688684022401435567118847103635496208636310502156140559767734950420160282570706766858586482128808885657176965914703544596067734971632783437069985896947101795842873956358364846890311888316603574873859364004486131805956526837395150869881523257520225354459576277970920751024474387645688835801799139642739334067154753908743341374542149091720035209349015853256530783645795160794019920480927806137702816893353621868804972198876986602154965522251408344614718565160749858021493831082254598743269520778594158185500198943833608917699592141755584993943146563588522382280128704391698122730037776300804190534554086081523258644030604214229677293978235771429902836303145457446922615265356030066618062563273009996241359507482479090719662746814165288465238413032268014013378008755700983039600840219308534746000712434184028682874619723861660668221329180313664984350787450738174276847321915330830165771897662449888952398674573670565722892184125391142282449510836314994953890665954570576647548965865232337696200024420890620523755678609435326253214358540937435874939157945429300953736152565760510813112443556401383796399321785862626431787459643334987481313846587259044999778766038378312431294124101282640337398907772080544471156409676010790474093613899105681485015136920232879565430054905725353820053229330050444563232851194446006324047891739729802379065359402830188936922542030423203465236656001968650062334154255660772309394720351135049274733232585331237041109023738644802466463953658375238757512221679329057782193422064885932688289154466681754763697873719032913977172432798699602891512200116802471196960159100732153780408596256659552842031266070550104986396980494786723122968262676985415263779723664569002512863743306489491821092260287777103299939425768931243129424195656561717258575716955309620798825521115180286821921529200227053258761354551194109819782714892655731281387843783272530691895346676589732617866184720982735287881927999876963657675769110675567530671317246201078593523577298970084143701421084561860289022333078745915665466525970905147154869668281755838756093552097031797956765111822094137415050952213767408903700421192049295381527494561994141482674432031471440989981697800473333084567241307972541097345355485393692016461545273362640932442566339579499107716519303850945781937406598810693216357260058492009970182381260094378122539922434800384093078756576745246283889544702419103619672971025866658189325845111179200029681626861629742868468114812701341281362658462792143311917258078539567641242657449809083954911119268490145355370659178988997005795678634477226854678080198847839350435076487545518562710961108795909517388949025638642016649490204748803465130294790583551521403237794118865946908728618637192756903106798343443245102635843269284960495758247541786470048296266959720279490674361200568040784857237487374026379540126089049149034668409285504245321942770239415724225917210764101566900803199473801935139905553306349549001411548130752975019243565172083080548318849324282717743025785982109103015247615934538917292724471924125272969829324246991286034110513006738821252509260809968946668596367375811507944564140592098691150088624040486257680715548067286206327090073001432471567819287248398415129300946135636139664957865293640573896589755983708179141070432016719921280199398032828496976929108843033881358029727844121005793387189874528837561512450418360414905811418429431503218763783675432982181775821778003574989555915157589317916351820311984764327609139142060135468111390012760553202971266571101041884105815277400010962515822495461593549450609392633003219454360072332161413252689072592173588158715475201543272548787437895561728872601220526062641442997522175128819383830873790532137094088367810048776119490349592589329712920323429676795129954818451973445544227504642482942853741682784088417824313565284367653125493696853802464896919596803863432554061372890258541154295750386386209808451310576165113069998953516754359383427790079222038404501658540924460397103025577114785603496482024324584568821897655104767427669816505521512144067471463801743485922965119672562759549144890169130801999458235876445821253989563859899263174932177013359342127456595286976852482190972107758350418298836174093315372502295866707251484768604256190982616310929125915333205465450258820438644249063899104550285586421974966402879993842293653892180554533717279866361399273029672620776549482829808643199380383844083561228721144847961158527666764348704782636511498069610503739059524029982977213289386575997345724263561030356703049531481293442878114372022149472454613587394690713241578592684697506765196284013329953144714978685003583584555487000612880182269634470594789006791685240934315216829925139555531252343276280859174173379024655959097345135291777664469491248493081629179269206079248559164027554572978237872732170886606840062322926119756155136107633986484342233561849439419164763709300909544564902993959922169372108591547308124906926129645484472652232666332923818418020718409471706871579327782474617735196181938602036195207220421261473128022047103621842911401291263813674501066197087395627180429883298059811569387699530887935199709091861548688328119032278621047698763352281650850768654292562571836174527109282686607174413588404684836238991650685169056376133059927153230298668515999936366472236997035881594931267607012884241909103315245435624486087417647205653366971474893960557740804292634898418019079926519204679676542453585702502746616768045742261901971748851582932278535207281087066173068802633047385337192627220689320721790592190986281850632424075745753047578983314575232906263638663821325539621947824229224278856063176050130129852620237103062126311074554791263657775745313441844921396457971901911452130382235079571381577233609781012667621024850965720676469221312389989368406558387561846273261955132945873819161052203321115798582255790799113739285207266574549162262788402657578486639116476513864412365382211023187036199946249530243552550808810367782776202331087363584151021937115755814573014187660966647970686224880095119510423962447792192477122914123753511587358467798304597722214274522960114764538688579250879332236978525885505212011848081156668162076134881947882930546238585217443802156458893568198616294590339552516399031258879923832825266022889816939691354416926250416847513847202460788694860633427295651577886652674600871117358834386612570288520342416815301475534477353951716206355826644625558080607802732601006089462551714255562927825803591336370203168364970436033012514951972484219282940226920186958439471230430505448470463759051608908470822748402689453741158074566395547874102218619105218687970102058422687059315733273325036092255810656927223592324598665431934724245638480449321928945379656745469844807991076226084104922649585368334372840372508474574758283969779617591875780848413974414512724463710437117307881852073207545669004752452351160044050494483742008915001570983894574716599835580641641928755817299461766907197849712073534472507499914789711131001656455918239805316113032543722939163448553755352696415043222675178287470121975093990591592332027629999923287609042499734381182445728640374850132681868036440102981714805164670755085605006717544163913464730453297774996605585244286911873504847662198508801862940480762067961960698976118581242625245389087522882861272304517274329049336398037626191555818935865589320877698107964575991277926370269426147198595904427982808448382773197953409688044862040784188038491198613000374794229106748263172543637003086562243368012446853660321507160921199523274430525254138926725014654462170961955036688240968873712250433836717039256764931529571428262482700087694185244819656968280117723281825076241925763066408616794690138264467801713349699474174391563669722678437617833976251296513863205463271572238330807874346087683204967327503720833163291328786972643959597996857243965140148779148290986026546345872553036694694983094561692113780245350538960653514032346902818600498399802448898770727290196857127262258924876149499284645132472671907734235271556065775209575047912460486410153662180243996110162347790444287351643700774682395350182578122465383070591398571723134528842316397157787832116588872476067210562132866707024290614546474220809536598052500144904381957301309214484681050675709962435854212086050565899984448845269752779068410769150834275767791752674202970710867861578249721406403176576307213372449055206576693094131164820984911862041324913037930135482168012069139040629341843218716065649914774132409152309634239957909487680194983943147413186390167479695489499029775791895930594066891662247680583377411804086538291754729171819911550647120463786241390618215674428458720803749781262776949996455306797302638787074408807040828230514118333930221546600027464731011435578986363307174425031636574803789612674089862704889243970703489016317588216380574223335932930103568652230683902148841142045518808950347260856788230242766213906363843829230217331697415985414988977476553126726788211299198449362784768898427543085791908755974310562125175474313870263419517043175068223006197438502577031705323536417688935725694999581878319067707776525224834060851068811614360014487019147786550779385119723154721292190459431562961031115311145690740669607049926157364573952177775295060127258783573215311248524309512035371461674929619844807394261364749172925660258378102095054653694134621160207498451380207032254235109506253416304942159077566571157074469383641269524930482743335448914936778514703528617343084702870790603972595205159564910394781181798995532358224542676603910880763650393945768175756921822049894039170488745409501525897350393557116792262092056422002557504811905594657609860242474436332643168573223930621831460030554283786809207593181711050437538177734748464634685284173609449619087805504892411869248171686819707277775187367858294869509069117865459689888589771904646813756888315533399113049653320032416965424113520398862386900936628328554978697167232875675986213056821081718910479623142407297114822353871346582282399292543690952919384296948116605621688774910419487962129724036600655778680967364363711125066537995093427445117927503397551472048516903081908643847464961739394648156947411332872321282363591354684040249066077558470661272515732015440112882902111264933065451320553903990563112644941984886057155629174205904664042765291953480201064313127738357487359377228348766722428534289036187634372036003302960336245009742637812229264021931669144427588200669749244530049505994596188654356910955286759835642202886199683889985528238973900627452999913980680554600161969337842647480946138492132781567460588465782927296084981981201910090160452945142594075442984054731543342707538374147024948642745018776486749662934370411804045828475314460530695941710685240816207082228701244122907179250915488504354004718238728545362301372335219093951367741291402379220445776167442384020975803355160172383807008699214736351045572076377268327211711840456510949191456135914378212416963229154349145814488463808023108352512363797635945915587894200193932066118887686823855282985259663530871770030934553427187715857050991563464295900114815764780757014787404061765823258746014292387210211556650600939979268663818154214614474705371410789462093250681992199870579189054394990823195142454783637346817340405887511200199279220246786402207597801202938558173972561205383007372238728823216954602697290014345854607129856978786789195494012581101650721746962419929426608587857948306905809981846739930070950973927010381350257770005246310428963722596569704274538920438447755666953011320682750010149431925455128820969052214674988844062761024935091989480516790842965626244831747045245658026119881564321467126972399770423881840640096537814673661434077015564023890175110469633899982111664875761438051140270089119448880058750815247014715257977268660529221656944048867901236401421894364968025951878038106012097215466219251146952237258093214790618127772328555131923666422894517295937391674753305102121190571362511891649963598012956735263419701646120553004030190323207855264287909044449845901309790900692911110752610431298073660677160829588203955970866138428552991110338859933020334081542558226560432598733410969330264879153506687688575375822597847633806105842071082785343660207991401114756248959543079372575624865126790162379682919862298641517466815282595604693726444956755783363226209098642538721578876987033151072993295029516687074146627639300070888162253379388825411827179983061128722487133160761202917312310665059850329150203790290183513651809871075900926403369094999724967511314603842454337915211945346678895797368047843461813086658543434445178528612354637891124046033804922265612519581494901191483060276160392987262242340754738889477220724123474552529983151563678654111070853147944883177390498573875775511412062702837070485968563655570739004462654691343236160682336780550875627258458294586355189573120986196007091460867144345332826444962858262941385895738506391357580116034469114114981693637941679920066099074846799525425965387332906299697511112306006293038114738320515096882896343818291837140943179714679782198823655730902401114423729116767923092631686552246172133002932845099308357813417265719114004897493422140335718140500271841545118175433388506534194134657393851882622281400039111477261874837044660872385939418228026610029332250540054304955574535535675374171323806822013378431036875463607086205817827988836209784147158834150857134726151084343458696150514119416425595175322878660170644387740169064088681843925818047421169640556287529893740679039297399286816447255670913638910906960179159325143105123274495289375314634730784046870638965359717638215004207752058339768025209712227839518265390418814302919963579972826168469212424226731614928554412656152907269919045507978453437902048675019697802057219322786528403371482740883843039792886165623428481058077303220030240997018236421588950057370198670660239726254505657085258769762636983650185656250610241340661400829320910000312732962468139416329652887012731464968041574474719009468558701087650273876235012401385295273343362474652505375677730655824606698583332946288150188030674237098562188715126035933982929616505140198013495763531626040941635620205104001881374719501290362994001168007679822319627675595054073577526592541707718220073790720011342356899298582308645746128167462202361406669916760340315160415809296008118994682971262787093415325966199635022663004878725766925465637160163666533383931987322641317831342526364348177116576164687749184962183850059414014879326595990325568459951039774285555930876209955695037822076805852945259342508264911104230226361820025227523370594474905902529053785260950467028997938905380026420237550612746941502494959340977077343936060610437110031687782112173377920244917518271498341383613522722166397886138197047070521632417495452159099469308402553306914089345391443910052510107618823532867966965699220291110867318159825637621636302872050729029786380913273362194860682982270888915014669108060853204459999652194698737187390377521206348129162453120656588144588927972385181774642491487751020003600997277168200314436270638837927995186677014023617907061155416028240959603851885389944795989223129442003845817177409510614087034957641842517305076284158082947349748571454326787124288641599571028797655585137813738228863015041023396026981480727761026733437089109926834717596679884043009382275260857245857586279837928407069338352327679846823783398287231789898555491446018099826184984000943629510094149549266627402746652652310636241966011792337141307514701855491734300099243945430219002621843106278315044891153499997260941017712102759194503999964218262447089692923324625543708819310844454635894220069760951407332228078767518045901070597196250540336643509984695228310889883594436344101928775853097387968465362279009949969157268864452561501169484279917118613075591558149135561152318409076052780874790565509906139275849603331064269497030427634823271210148669477457837084003091679973627036245645118416867335025485898656736021601729006679843432079349786879719759578936283954502885481108424821346721827271074409138732244008413661838192736498904841360675061310197246296573695338993887864348527142347450177264845806040061053247271176287375184270100991770265311528295956615191612639855154709712914959761824936242283308810495657924521165271003713929186910297797766766054979060071909270413881621898919327253566937935385652708663888184742123817249979990744075234657907648913485901192542430423663867929203035536327149111836705816055574256170607902097751579432773136576026264673742562557335595036183390665756763938095704728420592860538089597714415473102893865528332726410496402772509770559020776735707640115604751837489738003959648471127941900026498885968811877038005722501321334399637752816055628522105688873523714825117189497930807866492043355678663029795250180454007215575626462884671856746982915711708502935097764511175849428849425546738696893699150402530449531863783756171460486719513039446971620404626074600976520077223921789960050414098085451322196520157248129537879131803652447042220084587290146330873830810079500251579958950823137000794962650102733365116138490333171904373461203710126309272058615341273964625708207019142178628203702027475649652645822419413065392033164710452180506594435151464689746269665315878706933900692361745724445830900400732704506134747639976327707899126717383269124727488473334138209807217012844963255485896520616967298874817092819741767579896856106894339502967431441933183693664360287183490775464633773213548025475842129288958495456808227638428981288522784372676289051120899356310276342741122019598990763492609081213934653548372926804456259533417910576312702785366718811231690318698707803030134271490759899849194610363202728560227584610317396077157943488309846143070408384684645729000893186451991293961988171041767679227449255458891384696248227200455686159062307403726463949071593798591139792198951627517132535856193317362456696061639892412050831632754525492375142882713370565739450980649788386866607596373311894627004737151842242450857354953307131106127903133602872052909107180580915194232674262684228211456627247475527717243025067286837411819975935350555056235942001292546013644291209849955735820031790879211349568688133732729611590606110944464005067160243460430914059004373987192955666437475305163033680955325678172910073588186887233039475094530068398038155653029755475975318571934722178374271151368128197637071419362911266355286663860389800492295302558850780759695405051762184274392699324049593123782656039363548600882941333379785654205219741522764544011411172995524574521940793597655201387677131870228601243980993643913198552641743029982539857844268612608435532936236724477392221868790750992117137207977986839094921539253440030249186159336772834507041650637930209978926072753783515118214929306170093888357197538039253610248705054637822284624709691739066584096335711318074151976073325940739486471565607657839325247826153625851695097921369775688151326155821991621026915400221487728727541509668640403345021231931228649473524067649267586038758411291093078552857256337354611592464383774015437943458678010601089772100333666856164296344437844493732378118976044438196390993332152887363420411097964859902147601881123443450590607565700259799747394441483340411669649773209711544705787537138161384622330710199529144498732135374914306436859008739971528819300952078650919182701404751167648892396850284923885470631841008987509754570918999504562882266271925531053646543423177877705737489055022830715172848506139477377758956873444850009165850555245853006055320026567698170143290374006835794197330901213284984060454165115478663113118286417943794465598337448365853117902238320909164474604581679476631888132258537363721396824130214423769626295116573235242849395109175165745763251229146319082481334462092638460374907308465294244781524526505180373308702276156627856560708932917990200119950869059082556544409805610896472929600357166195802561392228912183798634898768915087583153425951635345592144474285755284532364443413667876821845239903862851457184103712915059330542754859577891389514648877204950387736718460088502223545159557763639136314484746389434897947568802410248834280706110785646233661811282791122389498854308698574854738714464852627066884842637940560466125482382353044891279663139593531535458761348500550872124331374251888458205534095037576651554653182359878865509952905408905849073500237980896687057494547451610215088029455824760586769042537711626206930488983341862920387254606880940264855555357674731449697491039030819842054243209558905782677690107625661962321551726164398406682111177298670783944136882335813310253049096114607481342177953180637144094019144879324244459569501030532297164015355973068210777508957502338015094412344793166386777626310167111575825224824371737290592460759077137390859971512087294445347331444360817303832058382224777113144435157222163464796223265563613235987423112179198279916799574046143748637786228451627320044355441843054795057212561506646964951160923896584845107741035210638985459074812210613395448188227242474646892821175124138031545084170805918548252742982757127203091741779744028903907437774778470533520972112868274461108707279842881062274382728774709658532490311549294375724374161308774473862553112734402697223864525882680149777136657188962704071817483155043267799511845098770857835777107853306601142803991426979754847766653275237560546858963854809713667590773727883070720263372390775080062003857868905233992915310094989231665590240277431332738192580733977139128827586262888132434761852897274875529086065067529116380345945862660182127755797256714072216312998526599792092533566724971853124854317553086107101043246135604175622025536976554957036507948413941477978621904220065916849520807380931901439743037823194000921993542583329641163262740626854761880832541354992003653491315627270181058066897805436951804611416083354520063898585159039668575713745886901271985018008343627514143315939291071011769753704253997958377978486183367529247143871201296248912238951463644804887558830538183086146026001740499671137050886238242066783045300799252476204419234811441486193498506386809349596986585057538296186832766136261561331760079521664807259646058135222598918959271984595344547734407297924400656880371327821539028300238470071605473564701753434330269148712158970901727255026316628898999671719538166311426494598461023623823865655791324705284312564154410202886488282466691627641403102184937047397271780432409835028263142127118835976662796493003951893224660212472654551710708936602203091021567331090405384702403259938704293429965613668656247639470003321225517411721694797346947021600480201096439005885020904126311551102943799662234417165120021493892318818661405643359680458762221731279962106918373907726777274096821865430073355536078005940136954297430348268415897597592054787439051544786949138257207037490900244159247072459290324802805938742060161595073267694780186523426553566802684890565508486015242083538740633027020366014484185008834798570530350803972581566239206888085479041443185145859000455035879232510292967626891999775954420888015844821974963302817226428192342665593606707455461354665653896552940879115887298686504478113599546104259002094804422448602994492932597249271005829242847507031773438051597037337772268548884435487772946741389182685200870949669322101719133187666267112720444074195738948116403464362981606850421096605859239434520180247627144102129113616740851442849472268095292847017846444840423931672855477509989001257418593046859411386074221434782961458251610874335463886553415453090075190077462391091462390289792534534181820658228494618664844884470919914580614721483756435332723701452642099393295822631737416954474944264602316950021203100738502796020969102599695287672589790879022427648557631261153701373631184887130873334176595803250400642557543019691374811762589321137061147212845329883356197913092003785825128614136620753970900581746000406183112082170980297397726162148979505991253890921309678950837553974147649197116232874697534336033713159309648282458116115424786243856641469646251781907278079774883269206777868832351805801017079940702249617823173054515358654078131630326158863221835634251874752345948679447247327536035559267405137699617268268895541212796982219148530254475495025970906446330849372148927690925980448953674545704839495449240113080012746995019431431571741573739736149286003329274993011766051957762403698183465534333075493697970911971720466602073375411612817679943773796734111313823985480865156718788534610167927981414739977320637515040893322209755913640442445490950228827579533105013456289861987193772731432064163470641757992099023285590105825605872546341988897702752659046448303853741313877895410185641116187957592016765437119900167930522259870620638668718283468365713800246661238129883076678691063391246737391786974373173177181593234366312891440371227769687812009646804444893358603557626944471200689561396047326428486663837538801396395005690152369590836937754141190079882331958988223688027217435283475245767708683805999321391610351427414042863371249607362109162314186180751369996528348106886406931982588215875219860315025010394705824313808814597789365179707109063883333048395904839365193013212587457140980388560822859782282388011125496752501056633394179283333502830908773579903643381887375303946152335682969912550106584830126083934207334099098117673170148106610218848721588970497115675970122389970064653563477352650938522493132195726234801331060818649673868213823580605175541487149451047666497518256167870246460297984317922144630102678750575307712606908275125337643309449722246785121238822052148635564323206657972807344114609055705436857194371269184480198353362829938141211325447330792860636843455756327689742272563509460934171740088099589625927248885248739091954920747428810522859342894178868149413390774537097850073939163729329684985049164500417154313834751831252723960201367863946309933283098096267050943949092410883037311428270915375299809613144496518428208637985542984580981393343237684113660206509294292990577942197917425102393041610140307856082127056285558570375445862751852267039968205443029992657706358827458418084862727170951682468246031628140945691915897645113737814486273235289268717025582017817679362192698925086256120165438567959118753615578980663875067992751836856588002903405243264278202405965909732204948187519699943120161620569554420018300520610258049767545345037909713049225307938031479517385881455367253895815179939474338921886289243922160406237977289532688749661929724075163700868525784331040734971951470064411101348240993355752732422996710053900864179977370278398569023355439610158705983824676649138409277719218053462307079930845135370718296124125439992515463542836739931784900204041733106517160139903818870466924637421373274137069721911613581380947559310000274203361968143610596946928699864543326270356299682481274088745148452473062586961730917265307609203194710477929474905847224494583708686299013519481305440312671868220978165678883532721963861514065853688372535868588809981711283849832646002406566905265682609660192406928786909890203236295618692749743302635111016662762045034413491351656709785993944577356724589697088348373771247886737867372622890552825535574431723878792735074840787875860786771950431611625403142533743314556031461151477905863194840028959620043737928996588468162513382932917841285558680259943291927660326883175513373062861473320120486941281542476252285571636672448143581980832749620245018094458860957688726390705780558622856446765479476782641201602829675670353935726205364010182783281197397996791446933924322283544962800203143966906285110479589996370766642093078312747656302531907244070972077266099090226231704695940992415488273739543638158609755255544678086440520714504116851361032670120714322835566980864616676616561226162300606012837339599513471137365995648342351357076922209013762189145020163378787821519029604856379382185283504419416013234028524729826829347977948787016665124635685613659590635150385633355718770811939779034658045393305070321256248642105690711691421560888724335541385494346878939502257479879944820033383176318087729475272663204426837791334003518795367404711648177504818272919995206568738613357840505807274682936840016316883228280721929972144509378647164271111480955289660340993875236760555644885606200117577145885771425259855446184057099151992420474522019707621446448892746438680731413495245915788989769615081110753040976401119168220458213718599575517026919795430096085868214176874944564292165338335814698581440920635957265463502465651214097502188529407917739333829737859846515384605090484065754839531285770148519008067555576057569467247106706427964131451349472269434293620014690530517388898865656263372774268993707221337850335908805088075161569993919596013972067828314348340281882356321893833204126521433257992438204550725903371862470704248345198972427704397343478310146619686903430981590719040161340274806530856396262805693919390105719989082987463927966751452313855569030068020939701564030196495053752597473488447928362677884307408476247794496952287013450009249114543630195919421372163836807567884309386498044668804683353813520270897675260723595702783096154296533966118114806268196735075227217007010894355006345282312700497169797197653592359955965817749626221055087351310022923622094941499627773533648351591508558339525011546018672951685396902873251028050158785337544682058142531864265669664113110700033330043811160221043826278968297277289093434056734935918444848410055344752122905841700765656337275335175868445341506121722561211998916164734422940337618570650700974564394410776856348562578126597486056912198513012181021149221451948570688843773988615058258855889026804810137285287883475418662208904009415581360605832406367876284377276150727989060985905368398116435883939604724995032032846035035902478398571936909698032538200173648484584769634809988099603749476171790702909965124403709168738894334380348331236619457096006621400836552963722290850158163834768546145886495002285172684544880992979281297006439610080387738280439677893297741214112326441099473184625935099628760820441755871854629499560682162736316073976530549247235609216483937575244252496251016505159553083072786002647111294030866134951228272777086968344056448259421972795747325200609866957165340356853355332642476377371689088791253441838145766393241966473076831643503122792728137829493293097429517911071364737118839471342683120458004967201138559088254327335090348275902718283918858163592140332723717674279303479156320767192731145596899966580137813346259962369760573032816722338121987864773957165041200336650968588017255337006444075900041041872370518050331866491321507888678237625692542803030098137968589061244307009579827618244900763340391341575123041454485706701712291034385032455103223769567042788508429356857067354519593911446318949795877128819006759979993096760357273649995015585872007020816214785320845797065894636123181064392925127683531715077073318611545403831912634392648928240662892420783151804325338741968640496684460960160545435542857498033547053080116029682445955819598317665818165060130613315731783204247168932395828667622005588983532685391146745689636580524947997045563396006942318290559657446360049993366570798485699784804747423833249354806133174330568109518663324756797256573105037500126746226385373509525897455236220948952566325986411103119876939241448989635825656965690595323629647458252403404857654980142629737731826010195254821950856260270040897101228368718794657016678597138955719611266917653745232842327361530732961922330260077304723095701404629904867267574851262199929433249500892071955028982294227896474208558943216598127078205591751727285887962189942747902515183068458421831874972296341438385511417027322627593820293493604592093939230233859152323197736770455528333609374352538762757420321856052448462496187233304079311992249005370591593653613355643707732626417587589655965672710964815231485387689404820810728750371686082308140774778460840790402830221393907371774501741404026684337959645106199764237586094198451197980206135602697265841716310968193534386253922994136922766615601706987317359039110882038995658470241084324614324854644353449247848887180584702863342966743706636913970500732733656664683615661632193121218268008939038341312088420301296352721055295456923119084339770186876906589204217964870509334477158775458156486901066911490382954201606105144443564253529656996374406442538762689040393861102819289044968347528804588174926430667147958038146522917714862254683331710987349301975853986968873332257539904050390668652598011833740261149219292272641754870956675892641622818131526407524869981681271027600853490691545086010884739757559276035071737141843849915289290154930982330457540172576323708730803896116248188565216568925947553879836681993371641088916043903720977778710522401343886562410006583940387972567580524948365649323319806842506958798618926620756582817582932602996883184083491397084772601426761495783962222349769237250587300543266106802304503906518891561924010259513363234938712953355780305951305708813331914762379990271371520719887742929650185682327553228874611321849452188075861223920753303448206706919056725525206728263153746677708747006673729242538924698785287892817309609884444430651950480732101804366863448584280478933146587940111548096992927657923925855233133002986738396081263878513410643961142585642003625476745864487267566776720731656443469165370763531548559543130670216375282509045527698791728194296205086247457646445957877113505002815319209751073967255689867867741651390838075306629976656883269111596189040473287018719636851186380950506946742670831901087447610822759192504623541548985984416043243578078275827543234873738146256150016508419652073559064330654137493246670225736072948629126829708936544691890916489457363912810354021553062701125513432348096563225063184863622097976126991867581441502088123190567015117467613061544471825971133426356072794208192352563879556966111823260759172632132275253005214284623390267165583143972289107457280736259998201201136051752866749401361967211721061744798809055681123890448167200085603131550704038236737465792529270777882921410424880036380495762473996807247123081314115221705162781585425637428605582344678024388787001576122659919463496642320548684600350467081314056677902572898901016582147241577098114600430920519196739674403252306845552574765803198659054771697342257043018724575159941163036564638480740866316736574382049186606958613319170917238399095249870070250753125308696211704321295666735016075558002323825805824852650461132073357705850196661934006866020847586766720025727131387435341946714077696076063046417525795324276952034674190575221158730243337329241768849633408845523743938034128196756945778744334121495832902874512180058623491724880609104186234996567132768187354478209150713698078020563864741222856566510977240124445407367711527311077921907510424690589044957938887038605120329849884406734208267959743028735757600751235710698906745520484958519468987839963590645786205860290288889242556320348949418394848089922256025610301019983766773784533069330374717712506961061570539363582603925591060878963264693575029124482226355236738308050898232731254067779840567119771074715971199246763398673458485049873817986105989197758896607103075206927477362140476309545404874305742923695972853576756447172184026765379765227192776306940332419603494520886581361603618667299611302672693548856671375945416834023327369249421767181470327061557481576098677567780339151745746787719581680240182384940113005467320001775685239789926391126495753990129753128551230908410619582289599881822112317142214366219884002121256737041024794110461879309169024291449758179617480789253776047532693218459231898897314237458032232843631654156378831535200917176608612382949366725395379868416501223417187370866850625234575011762545470498435181013447410932604462832258179893360525072737137725973408359893664775671164128194208989628092720091035132997246016975338225627719686767845528709163602902557130850001864575482814997805374872543250864342659646110095262304514200692894710959718151231231654650682182305589190192919632191864189074107822130994508468024119680263125288634293464526967279920902995536714285185305207226552273315327375403532644787016731064315468070387411256656601672905144170272437804514152638740223288510403652680028161473122786351486490769698403634239253540985715197025697305521300659782232340302425999887653393110421965306160593359730529454381451788524318379066812653276467961242588611929974483960411417289846851001191120965922596524536938946303832926158978795600603251793806375221408499772604933613976876354642831725364591080983160704558737986798937310606112678539173008869970188314629627601016861189633685396354537261530989763824307577817250893514879405466702199487316098841998151570184813064342867362839324213168823165905218968882505939666920349503691694788045213681135077735318559267452563124343157212823514082839099890931919614332291998216285909296765193691343748122901097861924613737670914209106685572605409022243269264299525473407973318073512992001408361493644702906490010057954780103679766572930891531014131299422774885736390609405058278110902766375407454830784455476334927106438324086241054907746784316311690132140004090075699114660708526522023127237892673143341833857306578094638287789355287944117871143945942278338062546154407652407721547024831888234804979784564760945648306870724082665151316672364223412771700956443641821527377484622639806519580274541736375996282961733044880271034863502039217924389453474398638143387859377401651125440419273842916490415260682552717920573076648793016590645370898318029434959675143641973612878618391055651997150872096932144553201168314200174056620443698706765737798926646846415945590446375214684539936164530540386310804356147122257496856812543070173460785564543995470808509548718988916559126002842907373377632245427835336472254588307151704754967468499329124170608442892471188787984713339231151033430323038331539356384314790596008802442256597341863121428562480436713298389008287610445975717762553993518424102822295631554239795445562652178847399115412253499712737165519821045936804278592972647942032227051080643846119379229141402844622048861369718321360433660489512352322042868806248028672726907898233094051408413661405722002602769859590815733322207280673154873063722606921455578836946905053428937525581106457801034803518453348330645208329444521507958565408204309775856234091633667740242410926485426832116159618594772888374500665480868264415847556898205772577236778672769701706795109712288617156153845973209505302205870315282975603639249661426695016838320342641830233536275999581387332464475994342662088310630494222249074847670885553194312753277917035500435944508725949384384557192212258991109041876886620591597923731732469485771207370058774837407694199042853918860294718572729238322092170735796159744376597421734739110714481912841947018552997174682896330417439612970616600552573174344300243245051127424198936334396756495288676528215603645862385332708339905087995930211876953323313077031936745196433449077902647086288254407666660726075998637412721706752691531662387918667983278829210728120693609017055249494749994467963093208115253174504707979352993196107657000633239216886055843028568839555182522040995941663968522399652822788919802842659441860736319563230477165013276807968149172191909577671888746497889099141531947108957022225009902164853256579354688832345031355302119239590700666914581715520389904513360471262160133573970683974626258516746884714760628180521916202059478973918777481496719871413451622252338412712763807103668062798464005532164731727257332695870191218559119592094278588211282145857372043514790574157006436033183893316588263821538715308107579996223774794072451585896679254430575581027118870121065591912960889390463781722739309861558937703368794049311991769051262092496306768527887582612563593635498302634281640541256667627279311702768936182398711840956944165539393842534392704587136072904697780166492139661200613979239764700076049259160668626458272614211062649987338723789846350351742749183459658454365565863823877248636715150230115762197901594372707537280645994893666527725715605317322931540455798935933804654876235633727413185898507971871456581282351663909223022758215368396254629273558529876944343612333230175425866121782673096223688437819167920978788012204147120717388428968219486160391616242666494319617879557234326919643722129289023868173961375980157300378391694568583010642057093385317846850985655023865315760213989211734043110478620844113053419138319680259116630577665518995098926617894832895668086648249030894342175897534289113465832576678142441377691160763127175971536978558600438230239699241446709269866942051672915082749136536226037084090131643182307284017377481150024680151952304981369498553417311581892177145574638251162264777795048763265692921802591063140380378256857992803915328670089315403107338224194913239852192706158725241103673754816233237699806564793459010789858770675952111998816428114326167601631430852547240793214549694625210683915265890523556121539730075439484997962362934294959114996062440140402318085198550485646983278103851391510459804825353371218083966466625691254965857211644074387507031570320744589956025941082147016979168817034931875120954721085496625043475939939379983530244809166818349622824110425228952745618395448209941703612758585563970486702804703072191074017270329587337746799968856915333861363780900481619099072044812289544651084100099234044498952678791705864825064724935410995208156232376698949269331476169334042386055872526720165135254706757468819149969951937036511942102342365098593294490498458422874740382419591972023547331579188973046870761498599125059359820994866041242769352482949705814726379840476696088686123588319257446899984815736081027065679916461033891285229088166753875132674003340198696413862834232799961296869679309235264229794615233760259787497758295688435350915240211882330022564467961676611272266955678315217311418847413520182296459273500568335537837244133283110710079599843194833200102257564038636373765086985254086858518224455898636281615244602136884209539870548177142987879918040403019711147227722566955322580819668373450422351241249044088062754769274581018478372329689358752566830661526915689261425987206756820527433107072979010913847081010302992975275746813492578235413518600960507099102180668706702835973176400713073685558383577234786178003831128851084921027372537471350168658324215898816056694606582581331889533732243500387046711907423375674663893367790436371497260271893130339210479411643413030900614103895918781543284902089341614349780903139032702666479725589962737478183678715938046963434441309528611836978990293460114753643998241863049390270396719912651370326766899247929650832314059771108617726284058711298018603992337831021986009926226257862956381898722759054209397610016406550075932305532809727409867256640402209118982402482703344427576900336376944156002250497026820785457985499330233737368656988094292367349585360463998473412131146976759744844010057215142616945682033277987455571352388125552761157562222543750264348795628639543165471553484869409467887579562627289457444949963789583429665087154898501567105996191618308851154743136321828870706625793452720007642486619045688146668209438091186537973593103415305367674576756788473326896462469464335048839107149596160421705387087157078317035816496716330514273865023074728189612414740992381719276590626860720920711772972588565446767010260670728329104859670059157358473479982725928569070663989478170009620726177977132833457451964342433818581933104168713956869847110073747998072101230845011036948870569381782904064419560361895814644046870694997040495348190475172456410545640825189160656030001480721715625579427142916988061720496979684672315898156075941052238573411521298238715779644109310753698338128520415095678895247163308140763808615144850552446300060323176673583350744536972764796807538147021354610794560164782894537075065660322940800857721408231079421114221287848890290631463436812167563513508796645482722174009153449593567682274676571051919219923302535122901930724896246310551551980887529118230206937373388836826076427937019360518686186048449144370458044307406297112570168581565879843890484029398394544495996262855781217605176659816304586371573758889411532722851142524755556770292700827030683027982121772930922786743934554945466445163445854607142122874110290884658905568949866995833863099288449498804848255941119097820902557114473412520506692375164946826607051645265443117590785632141776333077035516996864234368434635612783129414903276085757855332651243684823100622691009297664316512359116467349156803743803994436477149686588680620895383110459944446449863238062518132802292378537699735570737815214044850498333521400046347817430006863470769200673547549380077730693561802279993261336697552556442536876463471783318944606516859908597394822442237945693830618638077650442928996562083471135846880573642168009098878535601012268898359796771953667922191159733081990628747296379939549016943718378859934963939371664206404358174018563390340057867714669869273191566880625608872983783423083460067262068942825882602752661348483347673376018890338438412167918791332018638214571120473171208464846094974484246036359198441641645704702800045257338174896565436415387703100933758862174528802741127982233765116621415219708394964066292371272542331185193182812269563559864547527014412362714006544237052378337183313878809018879705747209156539719958196993340699261576962084021661795123128992774448833297081840470974277643665618552182758340881420217656522548729216391988499210603056584565172505279272843372124458146863747990374817476039777507837892390674419226784781422744213935067258076441840285681163624340880003299910937945694424931813054054676229258369078623942218808616382224849938549153923785172443700893209061512336099728774858267271319201318053200167636266951173937144872875801784222549765974622100937425057710623710387252863400814992727750648016478053600555635018766699588940762971646708565613622244305276633998464369234346716672134743732690082377783711448865009837460804895407767959908957196111826289894172969067367046817466784374454718472738946785985274230093159480760033000894564516087669730322522423835780813896524432351740125173921257231199537908898064511164506114268316149785413931221059877194882306573632572824964100925382615333789680654622126404236262525724347451970954830529178114620706320399848360236308136837739596314128985205268948598005673324177302677144011682011498853471715802109062648535067997111610049641333704870361174542056558676667444242712677717697553976886802769662233105162817440352488043837412189729808550036644343728904288806514387434360047993427897306692551287853201510930233280094419662074913698885829073786611651015153276146659569686778810688112785662408612051182622358987279566907102244238324851019358733029267931039194135611999948922156030174504401334615245101729560969497879861869819275783170801269409239423595620040737005201835838737837796878028494301800506442601282628254248420524296602277738187012788790113150624414874500191068950709885144373364436318010142691955567082139872897680608884080215495736334156052081747466426954155493615571948394446097346777699004260130165153452326534939197823755363489552487747488882278707910270491854967613516850132258321655158343859005214683511431614672480224896771122163437335225435506739334416502053549146480038714741048982233354640220771889025860161162453824972817905257074008858309089387720285139618883903562667156250918736929196151246726633520121002328258091057963069932719716504512008909585584110328682458597825471321701396128181567929170056846395179874986918264234040931310141164734353009235853291535876533654714738567312813544712568205004204989591140684313721527096853039697798619228937916987853076631218379842511990370675317117786624233105239262035498899780495740877236248058905512547615310665145870943111308801393098105856620175961835276061862269772863141216287993283239609459752295555466247585987625186034297844138185440435833171321602803650617700105847463832679785663201138643695648430439879750924880228864250253645158886463131300097370838078461760812578010785655874066307842819829423907787405304757694783012980512743717186741705079980562022212843184120101934302379788011257031152178931774545555907894111198673822876602285692120002679935995706463398733788626885364623265504558329264689097066025779512129918694856606311980212132471686279767575089427294461462293755699939747907906816996620335633561158927326555818426404127304706555364799069385882630709722806490600294121623139535362437568839292155444232508168253344244796849321725042111727347354016648859867149325205057938368677259229682843906995651138483338507046824126780942974881353626531594440299433286132014119764791578839409470324635167409776510686224419714825730935703876452429719382303362646939984412389371061850632765561296492614501461549111595651724548406392993049278047157855682024014745914688051724665761463995829258799346441391503858556928757077150528345059152718603330430928632867578882958083806802641162441445468203096924264799419008098310139923815116355944948709952745354131747231886236166836247039383364780896023131845109224809615057176778562476565886895963429410239718049444690545259727365490199372614887523994875545827054382071631564796754750463920418902090394211874566459149789886126307597876058939373300622065331375505467584309978211529167573316970110846417098871999229023193965397316002809428632891637248429369338302969948494934861318411882761300362014870565850476637370766380874439831884514029032950974598624742544417405593279734578648215347773365535177068734367627012523700513848927926685237764752008552756016124237779901353186949320117011199367192800506409091910584027563269252950200098812594000854902185767252668010410499280354210236104813265863810186363494421709015495869971915074239726659036372198881155452473466875733135088985573737729433522744808355740520671534155399301215583877059029890969397529145883440760456764063314308171144234823646472684985604985572418194506769428197449420653587975143912924435428712509769594428192322164163429831970405996390332800914986456400177901889440931930627780408533016131079565528086403997969647597533678506799715305522492261564515091084991587834200244863656541896060134914747602437154661639840281321776552488232845792321061886928765361151116787493096569603137177902458896096151005179039842858470791378148905920892309775417958075297161050736184025879099698029888914740918495915631576276783273945152284557905706433365450446687050861616702532700340632200111179173617144940462252373919820371793430464578215615825907878749187522667886536742006094485378763721869260979887595898505152471340439728495982906115461726997912091926477037387775305746975131658403969792754591779631902795422480252829067291288964878288648212261409001713636276586274692485364193729594018555174460882629244469194148202119031477804654918877926670287861163275780836425508253948042395212943560065293145850763665804529781525968328032575520936800714253255253021448747771578500300264432464688331656191042768960374089680104867527089091147250233815406639876911297583378622677622169105290196663352547785917975946367037101450633297952963880297555489351820343402031429605169076129938454865134350056653398184017744586532737722456369310530024279582845577497814807807628710643770475777693004725450412367697028795225717808820187820685613151075676003208012137133777247320590776227937868427091253769773829349910905011715094853994444503968707926940956960497105327168121889553677601092301547238888779555820140550395569072085407228673394266204114738982331148558150846636308070907150174606629309028416512284046361712621425070297630120684370464287751670686217049346583973872620022132771333100349198622948424254158762046258297696115642985989507448739004970564016089119041873848866838355150628538416609205601056315842512621857467198553715914529095674796008866522532167852339828909624527802852370655505428007959252223947123912205086462933277357396795151295232528092083415520925768402271529057667821429809113851923995327712352119633912532008499170356744195240871023562907447701607685073666596646940432290731064141800015300715758166818338189066141982617606488984756624691728172513583709983658940878216366376864617399953743001975568452675647225666445438041600294109534326345446295615248534239623389674915277101820728625912726073686823956776312816390047069428516250829215373142234256828984570824965754542627847117429451745032235576862397856230726042844331313105500072245916713203124215479502473467420529794707289698819271555199983114119764518145761772839045841666490571206530323924360463821782833249455416257153283987930507484460824741600811027727368212084547223215161459494882682073336804552412434721299883972536519301697859032300596283504343394355830246759405864064972937702552629140239215900650462148898311198598456093999563957065202511971554554397466827902792478959968882316717425871398620305820748009855448632444015159553472999005430996175063077722777870113239917147231336447632489796793851245120377296084717102498143303274847937803283008873267808416849368330489405559993242585311140641544385671676244155364258985152289997421701641792736478933597982630210065126220470360091086318021881565624464025383656750039775673551188450350602975803948114533932341260067666181841075224566254104950560630642833852582876064913219474228976938513318644785475718787130001603289121073991577618934485385028394711403265759632534647911440243976921289642801032674156008112208683873632869446375594602870381654512783712638498248057808600958353666296038188780658453468874094446666871404168059688094023957425374226849368056172341752397611448836399852833839471170079977778472309024757312747445297352262333950036962466481214744700970495649785408645698664320261573442978552733556674660721658443954249293704221687904436835574647058742840665065343053182350675284792903115702768703738460355699094244938937573099233563668024913338588909807982134644273433768033401536735437982352617383378613843158379718301204562762003219865849935481289031500445675180687202611488174531318402212693095968955452080046809446223861678146655535161016248657088919882608304335854857489160904105803698181656184492927472316937221464748350917561526684583359058090477748244654328656518516777994763881346653882001867717285536791502424967372714410161147251492712517902306908718295642754128038796221833239843189353331806214095710497456307192569118563721637307103098102447639598680317456878281896908355311611429372129174844372201513628025996541411037654238268352015814551103092792227972226938911036977165312785076804258758805169882015750241985285596696058861235437166970592844914473122349741188833403484492432440461087386080389875166708314996983128369458566486264052851989941893702017742052270954815103033974507335292848048393265505991714059786587558606473301723680125437503990020399874880529315055264504012137939993919017885068706884554992698690281865117760480693975791135681294430770457752699992704469668330637572506485941043235014095385146624843481092064418085997784301196339285829899437109302054463480577166907455410271931224576317735742616123602103126732991474486121023515515190259669537060499896625302611393182232863246027560091033864921764736416116438062951325074642875722379971999100274043394124137343073393167391129436654579831652662531415282712525692601164603978568087573926333937248194016978440848391813996441210613151701487664346892704830435439928256287265520090558460069434263746410737555979104865474788275940459964252319477915348608786631950884193173937335030764573938648048350745948281924812448056443982554191561532481483930548431855584507453673065621795392981703271178813858838547646544160301468691622965537165367839291088029883787611967397346419376795004039941857888431243751853730497592970231844557920414889055607409662750977358687333457695607518494835467969039918375630346082149366593819425581700519141320507141701899221280386537955967101918001315307858053488819238514738187648896939358780823737563773044761589411722054188349800977910603697740467871991914816631644799218127518432801347257041593471738154773338076204202012704696544884444474021663444911801151577636544473655781540386939137666351408169187644292138635620947843296398727609251549823444700046506101331854324005067766102147672106526595839454157241921309837285867345866835083103586893721245840558032255913617130792132357523540355292458367352554140169652741391703439643506867954847569211503527107432776412243815954647375291245316642540042991078017972058443764861336303204288930526143721604025511623444129398994707783930132769247681879126965706623457145924288156612792167245739454972267315822082529172215223507220084610456549436979679928382788399564320137040642569491216032958026031739392374954149088637077887369302342539386987805943500563784456613865901085784667542987546716891147609610225687733634123918020194651781292940036020701016481827607801008603240714717067429199220094196817540141558681916745212809450000304704711762007929048527023099118412116357170979416710829950913486640687956065178887391320292732302359771173641144459987468001321830306559656498720047371713534073490020252755277692864749382841718822267047117106790707481681690567315095582214573597322146046537157182110739768583432097331645899921968469946628877187095913388177301354196087419247824932282873179798306723485164630738299118851626326248108345781285307212403716209978566605164311687078340843043126063634756069531410884088355906474172204037351726980077249222595019376483160795464237975541391287678052012553745013697280172445504705373730106919329950228931093663279155994362714668418771146849753615605412613258970121735394184216729396357968221877410309582720576269705387118356654651997755951107114361400897405299214336792606943526827032205650635638669900381139224873351016493018262485020762919894847468759128770853945268629919765838561327024341736590910001573850921935999380386202486484207106813636972956351527638432222668141632378564919783798974071701264276822295487600168380638141740228301654521242784655086254372437480095170969235943976116224053375495949503272261604892651104747033009135667487172311606773299403307737534188357632667108786674835171703133112224970771606623199830060609092746083709027638113948224898080297281176611051765840996471192009954373190726385294312074841479392918619594367780871873629564106851708968554495846066796063946225960692056376154790739874677982955390169787282750278206826842791252312538976153512398991149296363577180475006250562864809433258091299686093415620888718233186763786874683539478419140057498907224324651994462548171194594621149926159055730429628961944892035305739417614823546709873155809870448750827182356552124792275703065513579448891478476231257346571899926304676908742768456029074727620414662746166657086921345989031735200747460811440551132119805215706812801860306880154727113849737356221065292269820545436455990971595023869270119293521370413554173393911857216086698015768796603398662838868818657681268793136349810828307185409744746304970222696801123404885814400004496274578811315526473815078437527933718023633585070933815979554043863164254458777653247719972983277967713533320229884085767409195801189153063365780764469469477296079469529389205785673899993971594649081881757459990362335705079218873452423379998808645784047742548695640202252090054410102600467242371053644688423253545441908179448100500684440065662451393099689242993844904869799789000036480572509551896400751491300145258479262054879759402050816243956494445714564816026886585171598536564832249052000102746952878244733140814997115127496918747759735676891520389500641519916240887188585706869991574962192667000234911919456086134072971156021859009294837909731417824742342446552360051026783275624094987608091350150009768933909277092776678220669224073103192369667522678273089057363732435913030261183092722927807866346697627353237606033080866534387506889260901040457555483416690224133985287252614618135374835444291003317545434902542996235712466441689922359916962792997158652433445491362689425978269449124914276166982525163211134560961854704056985969970069289749192875529655318410060054785393721910263537987299752737869827986079513187143212304812056025245857541949973653821911136166037771301479774319843141605843556921996478092376051800480616354678505890381689585063420499600739703444932474906302296878921718337035694850608822018830443012434319355073158366553328629312859210292956753705825696476844484977806891279860836929275088525490611732596432892152261536677165312410405165358617862101553658978775999344041795103399642059219227697847821017815553042431070597931486007252049037562471438557131826054697962425928349416919726982309503451194627537033325754286046550428512522767078302619771845751122460398750285774073771925524559987478360109079741174252336330264857875590370870896965197925594566625776500338140234466208329610814688002237308534452665551412258307195753422042032600582699072475541575276745721225577242680825373126653479623440353999138952509413845687262002534727639944100892839849014199917571768190976701588183125005830251037355338889666169079663300346764483917853754022106977325285857798051179116753358679500120757808658693459997985350823351883728997074654527982063711170359188332998920581541869841371535799482325968647714136025393598665530444903024001652015740271700051928172631722105778960932131029281755819362669956979489955827378159181065937729488333100811231318975350396521557092036453200691330038783445730603610039338595192356384807240289373237598460915872152503302974854121750380531269966798254713346934004081109363566612415684216712469602574732210192599453465908289952176183947476696348720906278295721287880029791501679196579178011853648159290522940928610698682398839935426612449682802248606070691678333576100522371960041662018527727399954189209649762689467104985589950551489162993583138675262562285812773812187232099491891709656521359504296811329304858853410971795088620608207708953022798540771429164303419378413692220072077660015667899344948812241795969760832450107576530853303472708187846055299891190687778310897508696923279314524995030713743913631602692728886512381464619912120953098493521961524224720137089714580040532251365276485554150272977504753451900610550881070479986012498447023292436036872754536174672877480771338073574596345217720703596297213693842191810166027031876348553184379076787215376152482607684459797499077924058316525487543647728918981022017357988546762512833885167425246277699497843530733358106281883632158734905579566235306418598339603754062510036050350637632804621926932700738807869199863338411119393612632282855159718126795113857500374684691833882661606614027820145039903601755141220729640097793230156132489367169371515435592115378206170228832689579178002550091030077064772487256484077539950290815841736322224187473023437739074834828558060479591729212738749106313449486278691959550805402607983806049964002353661228867190279226984370344477041563869208653079124050628687936362672601127492475934034263072530002059666576856903382599010245911652760689401090982862761768026011083898927100259809110902510000994102549330774203520239770143718692740750477590800040314254772996068681137102703697415364094333531829906658887728629114782290909006041525304729568492852756089813739693407662279924341622655500453674243069967325481313273634375721910495073802469489799357817604265119699299074234277067084273151528529068361065985389642366754717445639327283243215775443476006266489062069057785226062944115628354111080999040665629253888356956113674461998482053139604882006072187921516512945982048613537666767678247607903098497452308735023629504651704491297760692847314949706081195151300008278847575607639334160101483466875370858514450353168808491981461102022248635221981703442310470456141878571013854810285342257515979857992639624844460592605061186965123634388404353902422594941110048493304780682791518744365769587982865948607537974163829104920504858202819101999946246591003159116124403392440232718226165238562569033298331906303447716500052558656692308851774422482237560145655011922918205142063136126711572125444282464000373738200987585033085223521394017834523038098686243699671417933325371875540691626241421688227034910497967295960480311646002852837174763786850480671030910917958641978099534610649950083637400782275256561178297392186204252570542490682079979226331568893401330387370366029295764383443110294987493588930118200523113459672043607581443994885011747308641097875316315504193145970783159405319729232261943416266027236916201570306171370245534607060925952420476908955416973107902020550785732800907813764047962001611893478679266192455764243757226908578649809914128285354281359625300559412989736718112115136738676846866594084578423868425069935289612346858983012694604157425541957354210158771208465485883980652453509668655579717974512008612255868685723108817762235098218146219747821139163419920040441201634961782778128713908778498449378031152682275575400554877503199652023733281822456668599633704867751391061674813233806299619638600874279293460202318654387085547071962823621058239747952196022107787370599206900626771387246796171375518053154041594761555571256815324455634929069453919063888265124790007071149729598476141593238709951199242882659487689049175515336276723971662858745034981201698553528247097469821267652019729187722481512139373995240748083870003584666356562666278306196116670863940707406869500801599184711252215446304994473062836652497787443359892049620597477184156231813718840226477441103979866347365753853422612118268253821873021786469325098645026777767285892800453588028864596922613467972363131187016574752103652863119877503407194677970882084223868143541518730190057767496459895359394295685404955189764372891156306123976753348103136476015163840231288410638862151615289245375366989831845313339746296918514751313073986147941574608086245636612639432322140385629719125292315841941807237539085620555639963613525856887493542978763901701719420163740897191110845731976131292955701641814794626087529370875273291025706191814623171486488276196703736616634940321205229474496519108282599371301577148412822866641973413153816125413150416373433523033889237461504326355536028261898398121774406389048338664244806248576987504095060605245955675975039024695346490428517843025331594973958771714773801973563193584463306867669740023960829559889159574239195930667313513719639414402280556341323898570333919312785172967625509453560464362048848416817332643722263221183439337358637544295873320341209329361398867970902270895230156354027042308495942967517765573823734273165674385066117074460565868751643034610499462383350452361700641367376065783094043203019331173845718503687704647616734095264244403285990608852532837465618938971890794865843750912772565017290807670694514738088589936729387315283020405204133745996846122096255515909034333434013284968466779405366025088556452103726779556546326690723348465484823626265993144177771206786077228527043415754921350640391114518779797612375348494870729873013308365707562438910968122391639060757278433027879202031631565706184192050864703609874724206470357644721627432445240362252371005142196621451335439952704375508764839765234094878474640265009235818910181746176771820599352275490748009439112109670095582373908441220266768504598103767846933526375600824490934283282412036088689728158761712692068436314135039414657803430194168066397048669730612236914576684910813897825510782231787607834555772292082290897282063923799894239881807926292586404638571851793685201762383767925201357057667332061420571375468999368757296889819804914764097831233579200152309115915130192282228528511418530448992771239606583982506645492216235242693668801697928113482606290220409670843477239593458348541299624258560062078768778531887951858016343736625100231116440069540010118832328687725976701402751066289325560489621291865625800643362961018630300333145074361528012584571334631580308784841859232374430836937666286116192779725678234961473877736583164174033951731745145746775789882721540405019824340785622687523029587927841549817765011516938079815062835090775233108909558384628773961569263887039847196441015605469828878553025030379275234553549765490883153092672329753355005637120400039430068390964600342342842374394316325012868377205336030670908061737797888107662461196621378935269229773433222293493086898478481438833748308835622493877753281308864785974462103678701689842983501797357790415478944938233629774040202722878516587858742052670532906039478070267121571570835774774053072625977980747253707802090262795916407769914822290577743972000159926567733139139638728646241698230390719973815199763679529476672275855361806835902889788250848859152181577151510187364527411171123960160261854844866141756571550543848744402174525384793719113346149977059990571995242543218985323616070982222081211789067376349711144868841409181609389808470286871146443652439130822968632784973048948026279360860284219666873895815135123062825865596108569991640017747472455473880782375596851357910172036851116602770756476671267495011478487019150338796525635264257891319763127911876742772211582011577586249742878255960412434319672225676429763430634579767051906963664076963945182460694751147840796995871654753486626974444483881893359866148586902906618899054207981196232304131315871767908976785806226917162773243628285303377836108475253243854222833476063280413409091155439735290723206939170478532597378986503319581653525352072483548162366627612569479082294657612427511265902610578410937529471017257291986460295680762449397927537138574680013893509412565809275938896320643438254647054547655760749248674294716870869474556692430741954823836172448652136626580610629671062605628441351282869380838939290256319459393435775860316943082517827759134160753395349076829903459919992508042168085041621093739437265982460144941915002284691694173462878444999451368882201375840114690879812501474808489389074745893862146367961735714736137899397680088511657777217672008622404023457477940775861550691503540785750123058766409324137796850157124694051422624513365881991719462309562881616374468589206135360111369706923459357486939088357027167382120329805268799877863739613052868809766802163070683164568090041892404293701316129532382199632816526870756898576089573251723329661420456493560428203811323045779263006021430182679396236478597563471930862229044756090703252281040128170145486425563001826176842321882903090266308049289668651729975061033380039539791334796454334502765141296723698409624324710169738986153837663199382882133011326957788869998484583658619856162427277834049621494202217064916242432483672486856110287864338830805085694159899459954724532148307226560306279931038201326084136591617869243223193877004794534423414539274981202936017253408586646607196227311163535931511451143941836943063996372377568730115428680565151801536656340606391712000782858180771380996654037970394598395271038158133272366562828588019764217095675317773947581661040766617216182434881524597764874482841216276772109962506632212881452017859737603903000703799083282833987281039381598857538475107114365604847309521251291256879595267093778886249259801300823166171592576529443903373504567677677641275323716912528340347724619978698985329063757213074287322763252886907335207824424034204947833240995954359422087423452648845504895672347132135677478362115232570200776839903436446050064851742840587321859827950499520038726870090795027789258675243438298834497751921272097575855113285521233582154538592758670870788229951378734316492880452308987761110623234091460370694336578500416596698552180021799049400589144156572081089472838021903793934328248789767558131314700271076770358013334151829969692136202020027540651792967144934910595639293212586361560072017567148135447929397880503167311980102306366754704513226114371736603721998979164104921870858963685844344405069698491969617302181131103422770612916831168246077678895102434559561237254204728430495059646267702446258519987806278079441419152159497280432230473806141713186617375271041200300836068182304440721924945622927248992682403266673726385724610815736633052692582656791552138031989736754003237330076771010037782861586133110371412539834189441940546642335232696068930963347844385286995127315016027459084770126544773926120373625126777546539691460717404826268488202946241332317277598393854587655048428806335170658515086027380381522550866894429200682203121903511239061868806829174819289837460259069766034973502398553694696775793865157063259189722675230230220250193871998583480149479948321521826812587691357988964704878139392898550100139600813225976006256869842013566604448570745075500713134854757913358461090073147979918351182396358244366124437993358958431779998031968529145900522451711984522200263586214610482316182992719405527267030080764544987554949988771372183468336426637460022649451828976812801994494175396309686784793322979934485751454596082637761657934715142470956910680575772701963453917122978656856724102240482209821954920742113099442283433225197435475266822522806671729801854395104587325182507816195886634882424045888664904274180038769979592678626377473914197617204063817914873297372260385359409347935691721710655255294685586537394519444782792049654959814732828134481573917888197960603999204347450979550654298918325782093295013286378874372865190740847653127867047042339048078397440828386932834985052529519471337950060155214985118399962888594094604790501667092916716215514595482961472084526733224559682954717378116928855749057555314422338806121715008646915446686047420893599888243205429034919132211886818832465376982255450185035779964258848807211338132231117298850739142255237251829667975691170240846315917430043256724210989233223480448226899780195055672925569354275690964534694141407321199533760040313855949360624838578990252292741830841791009827095745310457026866416439258754231347627155623737770732946239076378222153111428084099806749926490833155167339419959756196071011482424712464108473700508225569254358779022493521382522111812191113741430527556308569039070968689263925974070498531702679754577123297922180966250964960223974628400677220111984727476507030593541361302764671309046261522171532676472174502849363597892105929670223820811014961716132891670830564566055458563260883512494760748366264215258609446255176809971645738691626665012750795442372920885661022433205441524332573913434514745121351032433358161625538473011715484202696413552873835224940685862042610077924093026567556981162855363279592198460237882994761315962886213333754726344901445262894110446761457348362277118232809422623301640841348247507488608035258302519437971678871132812777591404039676391028252319355850097877640118960479760779779288649243433081079950003583649827191953758013462397808558636083961378004552674191864042838782872557542324992135713413432600577561933764999023546741407300391786661384829706858180843177514825776947953345793000440867464584751996220946517597615007104216371758443053839125863577390135476004944689557193170581636562406722021134770016460232020590921918575331238371153214661308830424381523616144184936030718775228906487220497648570929831624088290298682189138155469477631200295056395855882575985216537655370148155094776734695716980783659266514274032196307434816555920351712113513674508577555221245132872287865678609880680630490864390972838730979758982056980620539433708013610397378305692560472127149202392375106942307786553766580307733591374412310177421507524913890993167044615940671198717937350045027278861635689039400235481353476854406369865787323982982037131878515096523018088863016031748007889417693542615628865743387314736672496738334426807855387198771327834280324331361319856082307812955074567105600947657646069033191787419362820467358006867726994892578827449856139798395802593921725430946317524358903273159452303389561873635480847958948905683421390385765440180082890563481955928639251053583351951427970129257576811823939289473515631891606276364952080561511124901695664220505672444562564740633157139142454472855797170627878508540854054879350862273340842938678952316146185681268090382352563803711054012553798792087612617200196170729004583610599463758855857492588642934723628713255460910430005920812176201219230986392752171217214427880348663691337175150666980251570542033401256115709186199790442778635292356396381523268803886122508101807211202023156453944960691256797766201570757453757967867903570157185316698829158200992189425465783523513797852962004651807696643868532133486630467805254083989204992417222788873954762691458346198753955270571166802898206709088171118275988204322981026562305406366018992730621192369949478659074808421422856412889050701755857441153287288333086299834644387991495865724941232310429539717650851085576845871066911846621637131001775686431872268340042387426367339492316516636623500168258028814716568790175721846236808135297194624745697771430347149115822092467665621625605437651242134283199329724723990136828789666773519302129714735677265367464857749460019387514819827696897119696108075773448897309650941603180306414175092316510396533152342337523781268548034167146746484562877447393813090424863836887955146425948651148121878399522662319449797244506347015864643533777349631744022773763326259382186530894863681093996874709040590208585077800610191879013044469914282287594264016041932883320005237668072436549183533861482922749442279884106867007190078265857793153980229556479196103956306733628383065970990662654763894797575399762568300780655035543141055588651038186159868131210404844907268701300939518029545238667695358078857920918224449745309355479611778756267588451597922441228661776832961386789773929067928845856443093722393627368639182171775841290516396032189892132378843516933160976777526814298044409361638086490416929336945068173058235625896563586163434109760877731250632468028685128400665737694539888115313203888643713093641852608036655899752533100171836011528169921008525489986608723073278711515807439756164417543953855086154822013837279334757513327950925950034387400698785417725468423076768932585843510491364209194278402953359562621305867476494405500875264774681816006489971601489824126342152335369268961270181501925674948291378204172082576560010023921894502980740798269539395055737305145765401927096235142494764613849335174777832660053483849195469014156026413266132887872928221202351820579302005555086950775702768941633132296401408687694138679252106544130767527222495228479017423833755148879860093335507693679920199437856826651580064072234758371720689248066028284297094734639732908649853867557291921991887410731856309810943168913721174112350600149953799772449608726326566143889360109139977340469068544433708187582105115508237063374071110979516628599701513016887948348983315044382624248512431545757493428567268599957613539343427063399476864052145130883727369901412095052528444079763523974810907836443956548384124319410368141997584216080882282944985223110932038887496688891132626156925699626395567682336992547164811028138781402420983220714203593032943798406986133676124107244041639417812421807299802677154804514691595101375678713494058981348274024570695277071907399170001043607844667411753591684581430633737794509356730118780396160903393305373115142605481741177011246707132612288462188517180627471229960912972969325151295677680329863612726843993948857297946805176153997792639895097853097706854638361734743847903560759615719274593070155980052507770170491662853110946801102775539863717790647203738062065962505197242707598238231536886454038341386084375082454236168762459947158533631582367239630444826167467535059395417063031481531383340524400937222982413551483678555148877397870580483871515557171128692363625735774985386491403483100339069276503324898943191389988178582983226799717923579154330204639305318750838440513866925851799155891107667129400855679826344317909626675749712629259369958084263746811796402338234614893372074802729849473647700117757790604520792758481632911911245103647534960021991041906007099671723643341717359268655745765370687435039326055017640798224353969788491374929408343237244044146921608365905210865631343480490200543628633684803046866638491253124381255404568977684711874817280281938027318364790890905179045693665263354505410627539555411780284709966661488291192076399838733326308448368264868140823545631898067791457105716710772095737311180814809230308789228448366544321520595698660127325505825826789666688847317989678341230223356479623835831613664772127391876000681359083413022879203573282579424535537211324811756824968178694425295536568588158063155031436224090588457789415621978803310506717014936317578640274266827526767870077738651423444897307074936026615836520251758194731828424937633086371436672034768048173234794560320841826928768834506502084982199888957058987790546936385375400253590080447773088991302124449488632633428013608163563102066731586403668464147774861051812583496843115988939167927532845071114065502092751799307208026602801079657000223697319085774698934046169890049590720196881166773718752231793142734483768164149595692750300673559131252465057406443892659653096366592501400364331115082844342482671413684813823270707930405161182643755635598388748963606303987562845946104201630597486917985370202254187469844352775518018682487079883695493301243982505508309497664225420474295406181275166042778863517688066191572888850732172464006577024510911072794583391234412998673047165874089462602148529288974283528609532712914261622075467224612877992146632276777859722497024396760425771508552386658749301682008410072859193992031252531697901268360968908623297606493619411520225152938117141363687178007513728272772393440896328294331707286035878756659385197493348217725097523058976909222474410540091113742907308995224537888971377707913084945210378527211907007784226482614138825708557971051939254704709769584233473208254374896350171113559159877902756109072485168205475026866524777402417126827019275714662619153336908605958563156388267240657621128784942117690942199556313970341054941252350186180106864133246581478144378152394849484557322664723067158723567519356943638102879116802868893365072736170989452224850315335903997436769258817527506704902762504208458432169049564121031409000216430689188401017021340701883033426496013554320320181291524801937149618735133273683873680708954231385952568098749094327472427219334955167397111667793910819665017887046066425797004790123514731089929267289418734824029489855541802168895043681161822990931066119015696951523588707400492816373277986496179607473646274894430972652805005814905890293553133905801563744764375232236641001584388386780683084294500156406503522865843512808211244337576564011221811541617552016642950456151466718604937601677253234181661761447855735128617862622236833870770656996118316176511631017238747135415118286751452906547464508409594482433761013957364848099841532177090230259341511255589476005148732519870824637877270508787571668998410778902684383618620244883245521742998085776926220697320008351364158370411393883226268379402331164753663928479142974223508936565611807492549013944390271262495823355306917636563637252805026322676874137281482962289541960890292015410195145535791326838861773410248437052969529257358776027087402379859717620085046204288301854767387403703059798380837585638523073313955902697217616160794865186917536340444015718344335216415346786680901814348519818954113161433407127467312736280628556206751351240853379042738162287853870936263361966914877407871016440025007062994927277907844602942104686325405001157398971105102230136849093802678488437415467813680012961029879474761549289443516085755941805121516781369169923536937390221278136439894437731755370550640154342094818493648760779994069252200503633543738196326844417182807709926457179631941248284007230699970740604325957095883879288248393402596761693039471453357692600477255233402037054019986497827608970812079206677682527338535381904049561276612150196917319814731188522582940409893265118503301859283049844269375426009631805434591185551133446752803308593985766378416940479572820333876850811700642356167856593947430179007532601438063904135569913399954497355295838305848070200301322233350171844608842633166041111936997162158821803972026810914493712233546971559195876741267772613794678465439464664044016844756360752022158657276771320224556751270034920624933711709727974155917164400150363359794736964424119642095808979227502897282429407740570123604475792422913896851876893532138269280229692206594428312757661385096134729881665196183573746279056708550472766458613447776206420346637160177021299420985393374545220146211367929877836688549106187046488951088384420557637413549796793535457548161861081045466895120423148927385334743261008505753823627688148328189249953654983884613100146219881795526457905437812462922738342115727116626079167750198089349120835114310518714412153453438694993010070516413799939398793776253989539259141256485083181465923501669060892206953261890715439517920363396906355571192517610269547172566070778381501828068347925174618483734051222081268079950577054417414841891917532984381462885397226276082022796701503778788194434413760395145819393246277948351310881640850655436987195783052437923291275152557223149657265816012718113390986221556674431886817772662221097952232184666092746511217739120310373865897698786397838523627426394496001816933733635036702076382019934748185327323096462610695997490031882961153950311330701913239079462107954798746507424541524717527476301925697339940858643857843500662292849817503527323440191122695399796304515786896064299537864253765504840363981660132308553086080325533747044812902729758865142808819664176908739767276463636241807361514862556370705005716833599852967905379193117782631067260994779207319456159927835786416583843611244992726748217039690034127383298521515658562259850205471868597404677315968099666868793322478268468922482283876486990934456899745631955497265273446558655448839824041759100869768194752142168598426438105927706989894837723500282479594466833072560675947303715067080592754052329478901049309982703948816988078577838512216808392963149302579215626689972447108107670357535673650639493547697259880498434351157968851528016361002963121112649945143503181656966592202899276349359229008805186792530938766552387039097987106028756941654154318670073343186728355108475748383513347873797753296457943363277560055847087821842781742471180787107685364628752493632839823568103076830626201187188930850003373592494132146594746295946166725524981897176693647792695854016477312289512398069243182588449169840131149117943518177456639652605304275425762660217732560927535834623538822269529453574241354565019715375373809388153078070901667839676013017385882806384571260537495301678293137945558969878001339137594637005879641795190619855748610083701561097727873722927809291597692256788533877924795792784785713524364786458705122869202676168752456591778689241932328295185808890141506976148692394625988811052481802836787518288100543698346040574860308617340015209187790720713377656792719478526080538442846524266400829293429680797426508598226676228939884136862610402811734429042712195396621246040941145340998164205523698408797500111361273568956232650812709738523808083497165512211961794042447531966503731350843632603889443283402915862893610724883366811687658743372043782310090876607851902407404792805868099414977492183349210060328551769961288292998584528127244440769939885079342139466369627180179575698729340425918598917920940038739844371305026538159672054211268940968116600173124099937075223050752770665740450582510263243862064870128774200702331986870508005796556864078938168551086580002854419047364790786403322929265643568289295403857667817725197521023860698340842046519402728536274947878493187968859190818507644453963403701296948093989166349663011058283612861603442797556192946285037451869245738475762104136391093033038082232234609005672731691472860880233356891749231658868172739593537201080699747731666597254078025027997857012690585770567621227185518176811956915761618126734160496347809190851373371260970173509755617551632017261526450785643242019721944914868731287544855024383097961575917278106924944250789983502808958260995795746189370992201226823125852425908522084097003624687580510731732309002037888353597911284265552123026956445573303420889872642576559492827317413927932728107432823160873167048852644340303705376587240013712075825683246592141991759298816677226293354040681993426804603959774720541098791944727316689002592802570381238787612003335448756573584178941859571279622150255912156084104528159008012831226933079958074506062621184112399939493779969076931463892378110037877279636535608349698784248250678326139118638710900595161693626502082001765098552936105250799866951766581935240016050960822399171120222790914469134071718034994817374599160405780763429499208096667871523260778329253894246946917628789614088141284450888291823868934973327638497966261770190897094064829602260138271319858116479634272896477872942087088715121787300765366140717417478180123340253898750074590730200873557872230179400365446748986626918666721387622601663422042428725401542793537083947056453092498092510595399353511589779487101905433999539103235457544955605492720838600074473777478545104403394736789425220284546158691319206458801564528317080185911743620774830620050961624735049781885125340005632333907205090041255753322449080159555366680206845805115188572349373554951058686793393721791789837859083513132636308550875216108557553243201965445138133645903507557498737109945203690747677580688346799583951507130162530444707955323487663740575170078667333505170520567900253155982463945084151256287947438050986238500253955319724174395752806657244123924286457711004848783021098089707451575928131319664552770584314596876427630524933677284076844046253549180179866196743557027062620069409754304632560547651090245793881012918485805788391012902748199788056929774716631207486900626558497067793020084581019220806813625442710442947198395576010330979855064908635639035042636951941272212143152971496194916866807411642514858752791428342767099912126880455455419652229237754871740637969045174695701298856430298951348053424618981295820676841619515735465440684690271361730443593273547624486671402434425360094667815992450926458126939191238983935322145498345270996276854548809202303848093684076303047038817134009105528896380311363593910706394472912900493284210978540470278081619051604817567222845534272606885251002643963672775090657423420994290558748747353084517695885565352222826646435731556091571651418355969604784988303477194595734311230683545631602357761462441912654373314249412446813336715792386248986316230126651741262119612743171207199899707261279992699766648733227989242563576718166128927332479373028631365675166994220568222619452813982993239814459614998170769654152875644057905355052850669375137685307313498728581310582935174592193701075598274188900122221492729301883364508574828432203041140344277255298482213150686195731961218074948678347016655951546612988338198290093274523551236941404343044936348537081464696331213745684367715538982206235177260603684868445962930928940722354474508473174842464877679036756806978432961392658287175834055807888868955260627893194216797682680421340589770133142799851963883527075019614191928909561380470321197558102107296615470196980854587425676621877201699234889442451399341931993175284401405893988187175687761617277762759213771681670308909449351036512874839022483396183738877292373221849201945930082842429156795283360253475630117380152225718489874512652920602392517718950232378090690691752639821706519834987549790969071224340352195903409277581925536027840817783304875022022513967250773976971858886913142484882433528359010448703813900579755623975369180771980350080182203862467937845413606126629969655251237857284441037438874028979974131427222437660071242964369896535167062939666166336710335268557226596080224948379777467747376316910425347512406128291101104740847488744125523391099690417466993768216936214358914944187205630842581650061891564876520564478542149509154609148271830482486523946957739205817354951185910608703785468112513228600446314501442873906073334289484708935890274860465383804274777023172059591171383410988145465363752858882984892016530018676013847566770466753994034971571842083092698292213297488333585139364969611448970477211328722446594898269291928853176481931515805761550012941597114906569611341858430730385621586638980188382432910356067620617072129832007512707169742211490867813768225592513090988582587317471618488370316066554777476593574631047531518821285587331714512377709371499908349047736903037718645843609024692393375545145137647431553423324135631767607200941577267533437555958284690325022151927277111845735753299052934119493441790234185112413423799868941556145106611553304896274898200314219734955495829851082627752089398694118429518772901791310287899857879297011456241495728397959384845007789436508935849913968933250203030804180909745258781400150845967338645546998599886949046001891400306745855032121031031447761800164023848091150810669611505408180814554057668888983857849353248426505900464813180536938774277664367148874058547032928368541697027025707182622108717201079770349808600093086143521097268297097405205415476502525432036774347161472431796999477761172076224324037379098074012094436351058548154035944503878374117335397479370380208125801405687507888469305874298140258299956858087631146736295760392605027442880774376747204763825867828244672690632653827416514164976424514437177612730789743686598418973634609987737916540200420635800881120066516061043869221439557020904458754956809421909424912899770600812661622421732351559494106480784033947332143170775253870076572705215427976721451583330053265800572895258007053052879595760963963632012901138614836074755671148010887737718597743225715382756698636155351811968740608480038188052985340997034929357462419923795913468683201449454734646990882548735158119769121761036656764626204669768125711496749877596503370152437179335641872395560804676778255095767249569609745977738453186397755375673845687657276010275124423391158416318690113690448216763993668015346744783036014996091990859144350264490203014513793614495513605584817030681565910013686055249831841470993741364544389461358346710229261981345554048848175443350548695014093913178490686581274709809829527425403441376236125500437972377276492081726508014643934249608856148307186312890758832807099279857876879265519300456237896040924803510039659684409871732903319340528059507147136095983837820018006177777611313673924552813615942503528442175095624824556860991047356118939461846931779767109037484293652568314401882601647872765644461450166544353206126290747254956489388964430151502743417144752623149557504912320629610543823225478194022948793113902478480548910600115816849554685228411723628464271169375783373376789248686203150690415973832443657602113537026391698376043659358317393395286051290813993167235784238735313432272814814574110715255546785159373500580114699832513771479404761858125871485457899223219102905724918108532984432998401806150291968151882269258279673184435076283671734459110496241646547743302413503373988895819161181797385706590158871426668215840494989696686926441670887302313242841192736447911271297881637806796385173393137061645589606325267735744743530341721751369243657555298690926030656314290415116332152526284363450448839002056368902028231049302389279222644319783861040744147064486127009050141724851356491319201973507451182575670495935847375155991098702004532895837492422586317827740476889966039717757505047585716104821225978240020114677134099165531711847394686816884675219788860311695204782822224606461992434981748229973915444755578748716662880910664194392665631828962883204150129184599399703194538622636108230814568891896346836880373080657668749271551687253804222409247068154997415555669505647246392596645206079086613180815004839531376648253242223676602482775772185071661319633680725110977709374856958713760546204829108774982341794999348382115441450669506538754942134947554790784269489985908176104289374271486104190892959327570867124914049087167520567408943732350660543226359694256886365350867604980317888039522562351304547668743847851676265371122616977660012501143793973439206654812904359660722701406759180108993489725517770613928100621166935781040679860121307785204110220268028465087085254115115961069834768978068974506142722730400462755569287950600336780109417455420045267931859251993322051541303661690520329630614319274443347233861161081299468818326011691681328830986395332077250487866659214295509810857176835163393404554223997409157955367737906155119356871674362818587661054649917506147604121223996039446869839134194750950407123853062202140287345046740417635090708082797390725405834166955448062224511914132925417463575978226119062478164689481942499777487822788228955476463457899196451971434319841843900326102438025457317611328432451080659034637107343849175531629970217505912004894820640999054978867842333000766794371543010472374275756137853238027463232816160668709821212342207675344595679616221628849655110499894797786249049971135294246268048559068052212947006516035019304451916835613535672601659463888188592196015472322279835318448493645280752355067372141273080734373922149983633313383127901572059302384222270860381062608600699984692180645068368169856153035660704519605217027827308476698336985454126890088560909215729858086765699571606458926768336590126606529728348590968022250086323351378405013151256926138534610653606903122554072677042690766756531939245282951645494719913541768116291519791547780536366461694686897872199831373506748890352937795718668629363040897417304825830976319498151554799207542647858969161412273059821687346359235134948674893433364015961060640061207768887550163575456315164607797876386583725183763231898769630550109491247352130233303059636797764470558208307578125322797487544821704947511129105694553344836137046540605865930459250444733934733561006160885833682758988346787069813962165406023206623857656601981863056975033184918791320737009284595541446753101210980072687780865965358189305152285244054469075048040731669594836255040320668586004370092057583412791177256581728912144293739977694034140573597243032985720159265139912675930928906847592815849125283604506348950307533788796219978764243855483841917950889360526466454549139411410997540964572227266971582984851770544768370698624901349636060051788231311216120846530143478085243476553911000326879045551416258251608321169955823368768342506735787577429626406213099214685626594874557486088540945835651865551074397174102628334766464572531180651782121550055504567130376517645708591626919036159894486657150943496682826076397147862683212478180017906969825396143294313762057106061566503593001008625656682784405134718894552458910086266334792210075045075279640105644279529113754431640604193162506136588760479716270142744341313719679057144792027766107703640585605237912837335998211488901662178887199684299267891365464654727115967906517612078446082529327737131664749757099549563648418795712415862128820534022916131651206343718076762881914086278812250295532534765661901426851730699904964659948394412028677499649012974501927846797970655112181667791006825172659188493547814293932543219377182950711451427414017655788203704856107908044887847924360241000861888486346546292470681388860174668281713303291788901202943213393943327960197460063584910992697137918013455797942489251289671758492261987935138245934218176027719282778288150777277001501849491635317341834383685880038066021982167600598337351027328813196338439524630131366293096670881771730396616276192496083641996390574994766528016960918028538857492873241158691557798542431630327729558507025573682221169725093861907039379858672717497289388849811541183977955052626824508838531508765744328706802682314550911414879362054330042878603869141283243955257558843955043656923854407879768398293574055912355185348792038223093857519799178497237656367736277894104107519437386154355457334449060922195928247664167812017259412126566273154964351809507014253304821728390904728700075930523239936302398182349590055108685921096295525359694996628251505439786058959551860109815890567990398468041824398358628498912221093234452772336457575332402033446455819172059097506832364842377550677226756180071670675090958505853183005641667506291363567928907598857195501995718714153497693472081815431346601232080268413985864033508277927252929392556364179773573350135498414186456699378011917899864692707300326018265528536402525275257539017203170070435523631278667914885864751349749722530462089389272112341081896899194552256716361583322638841860401320534238869245781469665346398280728550793010888678153653162528929029913477950239450089758904307592102497623516309433830197818000625220105087563672518499941864811467012513898250345283150820313235924269388224646155009943189393923744340126925302975726955491907771613404568177658711207490398834901787779214521496708448229904848303569713832019846817214738801235622782047086910628271817946021887518754364666367771212927159211877162668313382897725658827137473446691328395611656776030974743550109742772305040144989724775858809987036899853643320125231864313550629333539778142338477973099757968235410598834523906800065317443019474595732647087628364398302711909187054725209551297061646571329840306440222035990869757727615413212917739735657177614228755825095302203281178907603972269507281057920702876677187822132300026276723631457915565826309149619163595809613993625194874179014765713948473319697339153402351498765610832383026028729974482065866025144858992957111464287589251985805231620939498684495719519861512702793004262215788419905638347931158089278676289784439128664361090600804542195824957052446058562063578771175755609373096306431719786919585909774621911622280277756886155675524131643014270329287003912395958569747063306143329535806025698489085100797262260863724355373512173888783297920090950642089491540111316077273481421288515383066490369761924305326423994188236441802642625473227575078152358305840117116258422833206821244686911151785794927512615842282169426368238436153369961023114751520771857806829745415306380890233742312456231601378615060907158685861882203197394123480733009502172146476662835908061743277344086767893010743723711480647391119908309026843091669904236172419351052113097419969327409241839575171341890061271524558272271046957384227061462445701412369049312408576080822061570677999120989453419319410044188766227649967577283118131395956216853288477704777357849859750243418651971839658076719224882606973786163312850032999151576360376568907549345764859838230518290691975931384183743972717135426476797936369074049400994078859413804392876039237326743938173571740093341668438426088170882236278375870515821107964177062074325956592673668114307011911250879910285848523573099483944273084455085462511652871557447824502710282613356441748552449243150993874728585944194191781603180194656586709800381581371060600068525606847647711711960773122090789652535311959482830040851308401298971108934397345667445266618547321416607704376458438862608800231883961371703890822669995703702789844662504678277007926830224773268539189608004868481716927661542659599733966482582940889286411361259268565937348760029467180127783904643036629590173779708676020674765172871626336770381018120532081668733883671697646473136861396451810432756236067847771553722098440077709799834832237669666474127307885907937817038476421680225640575308962496940064369214890039981480622286463130645286339035526099359299094465282136225257677608853764825085814929367837907487916454646283918891743620320626646028941611416141063394573914891720219027020303179513935408490158651618574228330905111667190961312879520344059690381443914341264145441018251720156757435473387869186823820328295433245435101494055389779099780719207871502776622564627968638462160013089529325171792414635719328636869278529064456104516736032667826146514641894517143742061044619077975492408508108147610600563064971002195339077578268299575228742667360021765893366252777313572694971026564084121718927111802034779687797219534272673068982064440892418029033973613671809869645553760862894752364847618722981334169693494356295560506654263608769540843494495380950275260936436935886424151478786362005204650756351567128627466439264633424696576687828308050179718297448741206911392019635985326855668058596419436577389289791482145823503461410966552159742689546622591065932959842910488379633354539203726672140787710790053045564717124380629085618253517465985963183718618504721865274939472533640656392114198024489220983017127136073751358794840949727644817807614512080542583296082142934400119252045158078682911600614733614228667341633466453618399165200814408818760509859359048842456380573254302391836405332773116646182185629266482721497400542787541090284006234795517287124564342700272189722342721821383362979479223458228849526933945073261813856517192185576895927871501182754593159013486875310954590049776842696924157080919039812351750429505514139505321678294736398967250982567797793810310512576205725966340311083351046869170485624265942652211597665875275672159179648554467630606087398064806264666980492279193889559555349229608947225286693395080971051929796766892525815360372638941072789893686009371161125023385346961611299438602784416265216057923149301823023156276405882167077388302287390303230662555345825873597954805794902587710840865324710486247622420314806614189192468851034716640701561970929891143411180797808425619009077572511506875402418370190294922208713906627897013953509950650132175144917026853855126564994133164848905546961334906901886494370566591922426103172764363360402518499179895293762268192612289436555743862695377116590489827959842319062645262747747182993164892170378428939548363980219032452950240138378242937459092073889026119239138334115575677985329521473067337442473330280909693630935383420897004942750743340825411055240190196964400955222120332528637108659896757152289023385733754126748425448353611437558024083157117527500109642795340166661176665465767239068375107341741242033357331598414307838093113330925975557337517716683095728315918548048428749126578890396274270354998019099332312414326706879677386397978455068575005936699145191215905523011068980699051210883078178330864997982470808638781223427979375774218007438401236006148607673470997847831890671840764389792610379681552835676586131081995834298008837070211661685070433789073459060747425567019664458506155187403267007906254276058574776274906191469785316076894184385358091702320481434438090420502065301918591635320117225511267372205213766793463156994907684231241557511651108373416673724020089273489377028595866169472384146439578628889017130304304631416639257551628488474786309115068307513590497554608759219873674875550463684987084802126523722148150926845293148666894764821515681909501321602263679213295589474862092169302251015027714046606883318209145294560840468058015165435735452350604194179752317117686343539222596389093518590273877300796786372041300088810992818065087255542759163450708939228669418728540287301053604001359869631707532730882609016920254085965072289301901844937199009897951257549597485343935908211201334583937146737116143461705774840464870270930506045497812123355921802908187959147862432104227815203779840833469090870234626182569253602569653253347224172035433179024575367806471090938624304543713662336194124965922681290918581092979825568777580631035903268440859386492065408139620217266536916239145924071032716511431868993473932273067401317049369043195854086474176064114148320116501003444132809817342943990449125420962420017300644190311896146232343831122719453911724327408108122252082350472889651278764513138793348827228309493737035528669029227884365834850393501595557063482877244896284044082581379437409346204104485774206079817784943962081399949934429384080105454556025958900181727002046123213195480168001160032986141531677967890053365684583845684135948987413930512612033706244165560349308523453385586848896592568938283900569597067633097096111431036004088819014527982209794840627036848666191108343736768732216272661356141808994450521116108742884826750208569399063532199126821753538594717476646308929177765202047033173155152289602765061969725986391531288503358082234093543717761550042622077504948037675527841125718777020069188962860529947524616791528198771909251228527582978899854560938003415072686716999632666121098029812288077695070568413015213812642133822227396785255096655380989608407325929145551171718973086250148395613665044611298156523904795193809513989409150138264547393705882412618196005377310494065786032712335011630552530937993744972437570507482722923449405369218401037534681070140638642654106655014152999267670415655539328114445713668631161993383973283105951192326062274491277166422664658754407281126506459080903718731646062187164380561585284425733875488253516011721868985323373724134085457475717235295463624753526991904359666608981927281023079496722172051331841929243737601501082241725561678076067015383732418345206386097372281549276478217916154227655258885011126637654711207390847535653239438224775010727197273127345641735884158125603284519402843636966003405604201073003085699037469237410544540163164467926757618354095117898210827207999229988891781691457411894862353597833204055922619849043305396234929680910131806005289961317352713180801688422104229473978657670893978510783759476516407279012049498945502790816635605876511563292122094887001086978981992503553392164737799585451796459585267302808995477632194327510526894882578836195180099390379660763761636915236156139118883813143950684181980037051661609620862197499660198489712556090852412383162779794517608176372688298320518904166127766183837736391231572634320501339083808063217184344455989301434399994774416601607690118998273832852044886605176017916146729904313208783032951250929870586492337853353587352344980520840281653178482774741470264557292389819733967036467883763166313487571460680286229938831023378187107286866015089969124024248837515432528053053205321210432104355146544078147274200672880003616738975593083454154602269229666613978655698530300373320066431022945143870795996351763594459417701677571037818394980715265196750336402989188609513179778160975433285544800185396535622906944914202526887913713118711113875418398147526381418809206582876637756898608098432266573287585086229101864727825477112174051784974000555389809902848386568047001427370661823540548053852589036868532576373012068075321316965008536467302679440629012503313095338151485760416786837212564641221477296240901602423994132474052985358003370632124844175156751659528578078419663138524310694824783445560849575436717926378209765540985561018848316311131234378838623003797829470831087262598188361223407786013865126206409437659841557405304968258887344600575563477368027714090978783966639777634246119347393261068113072987003375049212598583246734902185497053075365928749137313218707545771061761207175630561381002121981894361859432142927343551501347404948905728018629548347162882106768042988168469514645056466070166865726788733807563070879530019184935572385220244004487724342178821476479078704455061057538834754890778398842721436387999080186223085337606450854405488962877701580803471690917636285058766681263841110740407819634906886498785778628704364507758762944180560489633246424557293867755252447302514655987930171179611565005567377798812888805100036610081768894768658496436521525516224417546000883216297981786914565612261903183675389046149699376593846893004831252543028242616504030320974684975215319637824722392216457232622172351663690917898751129410644047237441564080745303809054625564650019720507232052913451393514945173178490428412387054799431085396442728737402395209979030085469906035795676948132146142711685403793200586329095171132952262072815162438726629103648818710459693576689872468271870355371700508847841110051283218191500728112864535025867776831582512340877306625599823125589650432559817200129875405224420252894699212766063596308080577496858272830043299910618643135043713519936807466561240429103935779197799437282642761783043707784990805156282979413981506570649684493475007230486674586438874866295363322843546552001841176804626560117884494061918680744908670662629890394911968379712525552707748306542373097103576294021493975900324521705272194645184037710297452205961539463839152145740411134108606718599782750069308053067941181446409464477945408960698892794924480384649093905375123051461456507146708174418247897667574081451709776628029618492861526384781245037159292710711065309914828154034030921226276725534710846566514068023533537620533575629842235529306537783744892920700852350458393705790570199466567291248620280831053828417623161361724471471643140811967020391443224140950428276249476380021024800669457063392117005375312349290663534257561358691774918658213204755107699182022073413104480775935664365227305442865502141230832752350487368679129280872068225011898807335979346090125628601101876113490585234519170494787689955796335950044726111881140783284542083348398106220154011764011935890648230301196233926117978792910831185477700585225039273994893932783997415382524734978446973103886276132790743800417308241306649603203901652225933793613956843617958074507373304435125823600112900691830461494000155893866141174336574763041744994974656084838680758386465869003824578908644905373932641347730369829655896986168858157809816718996092360064866557815319631805020744233668813872228082851077634472401015245974662856320637565741506857034297889871451276224103683613207685720229264223325403549512513564484938046348491495516461691290650527889392894676916283469224306539207176791684361077639539748393253027008619192474766050577818346504930633731174360181853248725849609426816269010855849334415552924219822581093979297159401990050665789954868812483133218135388517960475718309991890487689654599415764382120202597311118487630231135491974143487539400928812440937371875100758795686884263747672938604840343658841605048779195884247870010134571413550943001005636437190651349481514217413579805865164911933376902108458096148489279599015331003275723458738971121719340702833010356382161995375900154302977438179738496989310031768981257557541147555411099129023960362569021852868121563894635579028038677388252828239322206000283364484095339375576221870020398827314116626522413648458305409961698088222599484916188358626470100919211552453737614139180019305222465693655093344525303882528605727959793048331543745595724743587493036055663453482910944766543066665547837627313838892241975969305421221013381894494547353583747745179884148740127333109219709195906800570687408631126264718982903002538797898911607593851044058487292709791767947155104917583805215376754983351411916503856392617865702411095247196129473775185177539471208305678768429948298656579079966158305189917436802020786485651987025841958774822570090515043181208412400961921581280821353743394307103451391983531714491762882614316539268198200513425236619031005324705066076566228044697326290898986482313758188300606668595057500472607566642555604326882342190013645395416602991580416152907596230266789053230735869801096339460296608926463736329140432353800077781316918123332281223047898740326703294016470292342786780957274121689462690030408786043089162418634200849308310988948560301917264957828364445452263772347707127411859263305289182718371928042015895187789832088237036138954491302213514579413404475801119872797334574443584639168803806176790673697678089731418844969842034628426504847782503355886271544408291378264860756385207289523092331885550653925478902648627536999496293193923046420798329341483138790909498245383261851180793732411296385182377049871668124657622429784929211132234608915037085597453911545169385980722306700526568078113828689923326237673296872753536265839804069379057027184551608648317558618355341955993217986578814481399691905944779659681052669954532251660342169640169484249406258163517403712472392610727920423910804843661904532454165014378099005463645320190818424580931773514505559464062954022743545635214103125470905389062105624621124393424095203217450286619856808306655901392461469667250544033124553175387381624271639978883756256659067188220999755320645742834911663751968318402977611171547067899358907121209510705332041868462043410549094729275286378014134153464606595705803237518274608802438541249318766837147377278605071571426556289893081150160260966932212214329236675760734653529070598625722563075405835306924978874160165309159453142336854962442712210910252995042974058375379484943518025181636637845119594453944731312631862098942639602873675980449484969684544702569484035280565611263702260793513990109024588454934577164174714679608529304690359762572018864731412699900513760602146302808252366360093746235327791968686552906750093363359883392154327347419635975490811898096591234814510010034682375800816964696547380092372597623816495523504858338970409200263614560774147728059262059879168069123318821919028072088356927035094915552026399529349107185561188298067652930076291393769245998129074972052023237651273722747939656870709779691828884754931267924700736378711462771580985199656408583722222084809940727718795045770389247898269738026638387587296239394912124352412717668967562793659747521512808376967118796496058350755791779619695240763179353587873871449881378118895561027477844541320595840788214089417497577988301630350357330836740321346785054402383565219198198913421114236156848937518209011941043891292544508125349768780339738464626227748123430459000631446766994986105540426429583923920669527508740307889375823859986869384490338539774932616619824950936817564442905267004823859349760431154121036560687986420899848291083948841464417972910858582037716372694289776430167532059726319325081151828612066225196032132169796874249511491876369003216056937110863290201850815309012306660280513866061831599779486192979665596287426716389174864305657083515341637622286580040222141599473585320380607880909601210297924305600387654429003177563086813772771033181168570668416341810326105433858447946977039499975804281021389416432299458056720243420461122226316959025266612882144929402935356573209549738364854910608781714498918366769439280225144022395998021654568767256874728136559911013927924862314928335986709573774473125662320279314956755879659311926302493316206866444003415771001891220076290956677310895302682811116791597181234810526982396935382685257712718257224329845528455481011842963935455288994224944296108485595636013720057317220526834396166664189987103671296454642477893389614513972394554983506207103609834672909152934703572591127995237064453017404333460229859775392926361654372443077388546829459685274447140380808358905322901451693880563395769090510293968411868798563762192172487074454716968516056767361623997347435946210745618108909607599911653658033091395086378548266313524840818048659979620155621329626733914104061838655922481523455952308060933517128433703434698068342857981962324427767908970086464226050468515192452732454866947654686291612256425991379162555911907608237805459173068504442185880327327428394096809657485257838145500853867776460912130887769046414097191258500070858373249211168193919078039272760547613084086831239175704327193041493140843272166952166452045219060087148278772162280317752011774666909237447858516339218467934517208716918567575890941228794773275873316151708878404212302662108811011693355794351308808098363834498200515955481494593449568385961590361064636982494871602308699725356816384743553528621423751279839542426969533770099172445585961812424334347877351380886792475776490181501963173751793087303795185076230361642725255601466819551406405312215072107615198811438161049974262533510225463646210062488012118515873914625136818175039635972766905307523287055962762921041622103976826196581700567892569730792070635075561560904019372996497295665957292547321206193664782311782292339034537516524658771624931585336190357482093260873652586994820027859594376835026783152784942512999496073033384573304186749919178033571324026927509863223272811230550800390263514466005649404931727790626508219121196042927213007419719633760615824212169221756917216687846725168217330355273935404577588894628959790843833008788528097206618211425616419084475991897378341779530616031411462461891038810648510230184803792959394152785122864732329545267694396335526969837994619667453784628832555003496090916063107812802476186405719581212561188159756496949073869454089116513773598110580236416445033658144203561704570000433490600927225672013882866993190907418074382263331586958959976290138631778018181472780770964037699137712853748368240705291458815513346871054465091114244682198403660650266869038517233231949221628057843561452990205225658106954661208078697630734930439621988745466942696111854593881809530995834985627670576569231744408534618059890534456255736676428317662692868591070660073900214481033899902752087884433750998965124204223209870914384103034633316282312854519979861060954092974363539683865386307790032427811398935168414467983467629466195115749005397310297184385612607795590863371944070912189310548432673137460049402353377201120403858231248763452295036773176993380815303640177873833306902327959114693802071061108147246197576741031145676873817240750407597514401204970335839764160152879053316541102270179242044063324162433009830983724477876420537338026228530024379127649149852604223565969481217713008719848046909924032746735805414645707666958309026962429381831556722199082850984177282343300992942986691243275426226501103670302989967199182527179620543732737135837574140395634097240482486969963482356094098654280787570388667103496536633302068703371976510504065920599538424533759975203602566299508390393656749844355599539170022204420941702325601253837381604051930707026849330601737753083173058404043622347996040985880765620816646663662719693281191907903250920842059850282543456086514612879672598787084826492618952546667356474219005933435685822868031913676861361317122343861450376536258684433217785200713578596253284527394850027259033921261864268786845362964802048983789577464360510664476500223694044963759231178894299223699205410677282387213200501201177365384003087224097754854358598752925341294731939889767934406826546007020829739930860234403508955169623781850749110957493715783723727596653083409807352250313965993888205170328563689769648560282614443020577813096003510530684301288588873360852875551358100903584526572984242764371415524102437196785851819684701419404499391762453138503509834940740574763239722356298047586001731680677648285476143403030545557271910185697117244391503528897242338330434364000430737661423832715960152805112889793200468887463191998114233191531855432789105472725453070182832910160820133914311021737014247434059911145625626246981912285949949183805274947162719187145437009356514262408362590184824173803053931518384038120269623782475075858422524833543723308476604892496368654184043791285693493020795487684903742391889140898609495577912431660813945069479926141056019347751990300205277035782795763415852138931187814011377264774052531034747856747722783873041318016246024687556006061587267801500756054146211286946967327971838368441953457779174194885821396607847734537717151033420116392487144627354519729756512767128495976943675159023786388561297179837892392532554616638989102120791149837408258654776827529995395964125852473574730030255568807645309737014113011692216400256710333307067799733616732771115497563256905515118828608304655798437793619601389812654036765731103302895993772041075043301622505766409933044449325178558336044734445098535515696652568934176170554947033489913020640936685718647227441349807499716440933008324016698426305469939682652237193160461056545821958203424577185058288412661816726732569223810977873701174647264391692093468279874622626337006985292098767172460706248940395092481066467868895904619521862626209677034637607957371905211476903597266720329049158956880362077922315118278119004873017015090974534778025589624568757701604247366243038233478462086823516634529097852753482607700477905928444931136739818420186569674328264793975305454899490566597290654201261027755532254701214771315667408989628568868949010131741485730766593015262401065439319513962773809023697641906793564586402416724423667866215015702474262213683357775955217204968362815822264247841634559340667903959230124125787943256143396097936021661113777563960756353783575711576351644006896790454999431358967304886344804057088361222744007763777933987341531385187096595010272036792175500662406372527674285921929845613552562824041411520260279723017003774689644520045761716780633959981432386973406309889459223261160304372378103844032454847544824938504815408112983575204467182208808337302667885929414760068080841534847297893578222406807183134189056216114870736454044642437204048833959607247243430356454642140333741004223762298355298068922638060144372503832060526250369410477066684518546751403860336290292651182219470223819473768715645107849031758491255849878271117365731021313346903757300992484773535171884046727852268986021481147780635828834666175479613194885522656885005748880077333311410580253756066937430895661563769580809265645359157140898715299129407932260402330759122804946181344369190496123400893417640203449692572663784935829947210869401826950435100986490356698877570295867922876997968660858496610697246222440900147940664032746259685163342848295588709788222641629279739857217010796716131636626342875898802432997673624035465450958433362500397471974376504765915777477659076193719663721527326984361857884696099051531441599217048955022499367429106812550188860580151250933277572463579553527219736372948276140444950395809672390257535999664682670962901831897624148448544443930165577942525055690903249029293915799528064094576246730522139372731629199702736113490791275035490653568036285481743577658921789668327645311315175800556272963358217147502514511644980529836833566310828649234998821056400209232661316091542636631769336090890073220692089801558009767924998217424945638877875283919861812448941615088378499145928454310270610254392971672571957650021895778312735016125929493749781136971662067426673764019542616382378112418905826898460469527999919907231387444109226357060669463710097620830237945839168279065126521501701985560551107213539378149672842189657088127079641199459766249781992069368700971765401179542089698560217977071743982645202722389621840787180102158503841064767166145189133497295190484427228035657508314058773503042183937967682196156301214877079411496273260331197034917066541759438450138551054325699176537503389893342970791500781837771615704842853114307623966354090682478745603033189704632565289633651413481665551287312107813804787724913627552871644439812297843615046693331083654701532952082900114688477755229033656490172315125213963645712033370579997927729312968466012896144007740858426025518616814720926623147962047025120207921165653718523618168072421565826645330594506812358872361780263400673021580576226282721176995243485656204666425212545885785930691264884630081574895317071713075273064061688468831142158851302023467000277332757966583343222991220921167858114499795877821416489719884577819932475610137633716440384355398451462074321317597717042612767737538262392913960123354313842012003079031263309612915554575821845184788193397154064470562323199705195536150235449997299635798189431052318708810543868326800271000757023282013442580109425875742376700912214812026660979705449274181419198222716247031591838447078261094561620547726635876112062655360067238986748222661523399230930764306478309193252769086535012037512665896321725447961257272166032475816928238701494391637950661194743413352797315076830834713054410094788885613648314057612708912245217286709972088292374546162281815659280504280752359947517902830169042430016942932514719782834661174461470042993554845748652931607925776091727861773554400962200666392535741695688298491230829474395934282396615348737646285655504811788434448352232515660494436578557759478595803280396427080716895970080982250592482992167533675610519426892953701025834620067438314690809755599892816629750658804893593074437536173725479786437672305970775185982877785038319948791233245567727050233313783879324091495594324336563032858280465939365795060647695605956901943202938455534655726102800921832104820741703004287884380679616963689303382977595252280603796693325593541912126164158309992748305383746396976754510956195926960679589556273786098278637394161774301794325824147795176104621972789115648642356169711328463229400110856670123263435605298838872489224726043910586368840084294470303719241369791005357766731951345975433076353114256180244873882488352590616945364630109563814583976822587177414328484578585430210876565167979447815767535113647224010025829406421977797266156070541425843031122348327951474369779460090514982107958444021965989072628811446690912465682801279766577913201195955898621930334205936357973400445229630033393820216366758155077184750335880221340553864301930791298118969368357943473716578016288344575598683860699191500868519582567173593823435459303687114511285474981428011782850221705184782154380012750542379671870277202279438049278234712108032746570520773415334078628691555219348028897072680869253546081541971828054714686888497081392341059325002707496105037120430308525233408668753329027775706815078130839256541235174783048510454619843543945575858597852327773862867643451017632858645488896774429674501816878251892029495453363140653193002469013776001405718177135529655138014438591595123269517485915717351379360467923849721485479202583645157270078820261980252499164585018954353940204386786764863798283933137352600728181351584070741290854439250754182284514634429232827999048884653732550185751643081478248277938506359363358165711145086460547102952127776731666104406413716754363643622077610249569670462143065151439006778299912110811756205086714721981453249498118627530713946612434799204826879885659788956459254837854601299651283081618297371585150075812002776372407846956653096092939412326911536496687146619342732061950796689019685975892998885056482078574663777653102467736651897576498045615766086878662360793358056121930983677021649697999540793839540870560764036485364518177914545943337578767477565701689895212908022894668719813393615434642628436647496821555618760452292106192291062705441146006073322094266094648733096050196125051108812819292510763105947191554696805469125318545486215033473991736723040742876609650415926123420174775541075819768256438684994343482580683432822493227529569330172681081803377591625908841445449528045402487952913994705674790644522800909381246362822823288675506822720296965475857596697294568495469734642056337274306953027965685805551763443743270822037721453250573402529142766678442377333836557136983912842786866643486515673922926137312130780968410058992164097080539585591558508881027400640019408968877006411133202219528226065427917850790924569651912328227183368704252135531456283995920408595495698127743221900949098630445023930579542947176048743300314957264712031139427976350795181110719724959205254114585284017558720618090990999172762423088996856910907944420811622260609255013451826009480877629733223322601839347331013761181087082682333925654731861179014172741712453871228486205712001934606591566862153096975535712584367616016498456872915509304861775492173330255883848359424681027199052920916029782975518817287244137642024702208724726031481338873667715363836035802510227621321488592452475112003138372377583039114697576809776576433546688548068405349801272683782027145877175620348131060030182542958732718443377892084826631077012494894206014533893247818290731417594571175603046126574289260597015327589344395736340206481476994993461110371170335329764591383646914668427538697336286269235912249875007992980438168395347317007110168118518868535964174389705668944131047927335654210537650564493335336466791442154920926111239492945491308811252266898651014531240785162214808232998729023874048755595004039510921291145507455078458612438999357239291790453409325332645315662700521121559854236266052835720608885535828221176685226386735657558914686619443916007611716649516478530034953128400884651184419877610912113877098419948977120483877500732790663384128385293109995035158956195678708734558831335751560016434606727597615106034928510891069531383677285287281074961841554411668267575445234908492822706554901685058560635810989822667298217605318374519760487260979719343398726907377213767424339325438108296387932766720900617672590470178130749438849660579210746551971512053090060261821779340538531102328110259210178901996812061066743523985452826433564967183873508178469836500064589222535855552020677869806339167880501707165661528784915522902456181468950571621453539232152442410900049935015252480536274164185202272357436595306012748878222989018154412695065151516847537648642381688778626044038509925892346387155318725053819507528733146381287404266029486468911335426700169633204222952650940519038090434904407707819501627765696171569669462046111813255845081608529256689438161465667016966749643093263774051164299062043189893874677592872158150890356704993826213192587141290018410942371592318535721170292479543330580449961086612862647231982320545986721914574445648439966783464937664182128552395553889219742958302901388062028607958284203738762250455280284672601896061390586899877623192328498585213927956054018817910184046085245406799853914673165620580290989743808977077562945725121783906811715454575893786152774631689728834356686179247070679302015877790623796493345607757190650174362894072089508909589720483343120112622797443751702569766514833479202836508791777015651360381122036629841669285605731023699112470606168985941102147329378122292987681605678805367133422364834794764870605024584594896344653393981512269583332994100280639071606587836863400722807815740394956855085416315868088884664000644573748018238562663239011709232093601609275267427378033918905857292191625448591290914688265947043846157972485302692075200168814381873022127326963241945752836247050647481670244288274253817256971494021087054490560080555094501355223184643231802425259549388529100955904061765185995729566974252451759656172414554730045198899225053687065777851355304368082700422055655491700457760342884460032165199851358679309411575559319611828967640120513714891340960484091135739700432155305496063729034382923149706232833523869470828096919007527661243714876063198654016458797462271662014444668975528066955664585689170679654329596637024934380324589537806541317313440925298026468712384129801980017257534464191654092460030463870539104945080497510569726296947428458553041445517182604921598255966065611502689163976352297904029532554650175585961894758995273349963638933557368966187950840476146813567717885607825989083835530089535023866259594650449951127694043694769558941666213841496697028447935038284285939048355615324805939999222715884847440716447645676192845801633455915145100655172251190505133351901653602137648494341659198408592600510613123761831470088647045604310082022138131998185989764871011011392585597895853063392627533632123056051964600345604765584636645007089858603236379200518421418877971483982435722719716504656741649931220030318601576815790388187996327309943677956461062517276614935050318408239051765564162420527882718603823432834427891485032711900795138487262101467054789954767176189799569592274343249697704796751630915120671647691790537712257206101520138846277299043714408255694947351050258610300996816828703264388491361992885794718166944916915080701346565031097742726317015581106575907069629676482162094828037219697539435224206080313527910541954158928804449939104902586923550416507900190856361473434690382961771750581720334474977952060033695128610979295872936830829817026008101499734538077852033597687266091254366644935860811736084462043264340196129347632547751817699636340094208182144058168501417323443247873456587987621133966490564648335626495692426966461200132444832422483298246686189493110061091589725159322512213708719486080471944422393451792533516866933032485019165703663084224802669463163962694908446115567486968460405551052679948763143526639795692111147942514982557287996395561665243609381082059694325206965755026196901987332148300172811112553429730860839862930243275276315055243641093516971817473491411564003333816557347223338210174005859856326433986129264191264405733174606888391652514413584500262870007157094959668074705917643593594761101391720951721043867676804749123979681686912367916743743505916703783321960071524287910064640983410513457271419002588042515630431736097837332305635851052008009075193101903613226894316789765648479327256638340936902998988287618896256909514628546887592649060185730135612695442564122177388376334422827558591784366859613027478319154939121135389390590056564304991426166431743031346935416126930305934299188374669234943723694763224167876371382865758776588274867015641055794298957487392969792872010833473997959018642764651145248349923473580730092764626448425762316358758482282704478756227773871442823227869604132667041662782579609351913060815019616983553134178913583358576218821977429402545508936774646769187677909736508968449091132383545824364667930290797305828669619732523150604213802218155754688778403159253728352773135352658295070261507790673363070724590983614769959718088919161466689520636810764127744859804765931087861171922012005713554293614109016055227567768559094199709643025926781426170206793040694688035535963292806507796470795123664893893129634383653423162016343383156873945479869383275313278290310840484730827960392227665499186392146255808639970373420481578404475324037121477828199663624021056581144009306049146551725528359333077582260276244627376246267119036458258412946830796051765179579961589154477754749732027697052315166776176997608929762639260861277047394289855557605910264924190293657289253143400946398675894680918937552975384643184287842751922723009911637389935583345930536949186702638004630938285833350735501870734385824015347550905627985580679528169967980999024084543978841117084768458833940988379062419987795459749350942353059296884442151609022127638962445276616245122886452598664989737784451054237189618466790574586306907207785425710447657375297741822583824868119252392915468105539592676048150786185708155167432872866868833467698012704674052297440261314830761948485088813512786436291969768019836880090763538656281155896065552316601764637444834630026107723603067244628763678451074747661870737784949979455883319236313534055274773643355492848900172179014950101280693488330061206225036472968699141791356875548794942925205935902023069142989649864175354399244551667603076735062075572048391890222302159604107457275329509435385553583339278031898935002568454122677150874842811930389318618110989436901028501744323777672664190280387225494556868051097029954690686798996222867679792146754560555104591382671944350212419298810867786958843864459095308270758333368598912611012669720939129895367159103780395021455033696621430968193929004495836546324439267680420152805258347686514387955905934229464423344047607736173496166566495133128142756941053378100585372837010173610909637816830337380293173987446302038363114222688369556946009170760577674315152271301190800411248441687201761958234599984413303475478804110408763724395265103625412012766659122051219240629596529791277371756727001173138058709606982275172656363081782915193414833672497362647644802650388929713276855659565480433362664400707514797387098118775568431952897881311378368043945478351395408356013804973320135227825119711574330645310081919461717062153574875526163790522822520606356183176761725090884220253028396749855767782959858859442541967203462109583366810778992416081970226823238530351536889219385681448384695646208685089780411067734516932410312546828971468379040215072993205588315844480672226542333652117057003665547945855792440745102985223283269917090207961862842419058829878209835606565392260369811337741227984964556101820675576962946999424245717652193705003509977179955936260982172673227557482567780855962757274646615833508323558112894196868488515150083378100513068668609976113203394510647420480021718144938065711489321338639768994664545400615749585063757034390525274290644550730977030296683914635907006674270878173019834405709844426757963069924264940817465828644980132758647584146593085190337054322969273320819052307544058511360417204698177643504397624725348969199028749722036561435057493220530544273749418155184499417087832669295473445989240933163247242613971539158958634988756047306553506798863697222740621255093660164276352459779546216594844820560192312105979664546278397130992811907015330121425094609035733352066552089168852429523740440352520794491869545183390709353492742296588521864711138584755026505754376438320556255492475012700123724421138339024644124570268801334147105343588246356308609452540142207849812152479736760417716234777274187615597568831913195664343280330878982051157163967179954203643927105723999583221918157325501390217850117648993403028013500128375222605418651817787359315440089742326018413305216575757847605909423313122754130238703056836291640934777038373310164951775629652142159279181541390697954145757739913192215507998126497804770941428793401330627214412211408271187086801301298704680615014888013148217172559269130618548765770307331177798993949694503679228930474717078594678717471969882943959437168459631459503182859092782170297598554812115560853027012633200375419014558122070510309997210737643195884331801323604299578397458195901473646716088904288847909602960372473913711192035259094077296001541353944541188917957439978579134703980729591936149698871708340342132053425025184506325790949124421132961478001700753505923940117865348826174083870654496720308521686375246261759406888075845085797525376740701469012299849779302141825890210240857893110770969679712825382330704473693920884386120328364760595298963342482761566112218366038637403373478116667320381956924864398575621342328583819792355183891668356252954770572833529461696874769974671321034625638215053083932804292332022279634998141598084332412352975718208483749696076828475283703307682330762572375500126063771037950430974580973411339192735589354326843274925814194718636557725332021239328616086066364628247513030890105572648233288284541668181843973292610857042725868916583819074157285296217085390109444077431029857754907211887046027850934713014558789852136730771773935888109196970742097240667787865616233510390382728073764155793772685745455943093494941745608785451266766375473273655234650401452028678025664236114386743600147910113124512965387413574268890681670985590915649026168478728760225072633620079419913272994398581670141212452106931954143817168694966729276965978221470708483911161416114820046083616232415168225821523785607100223085320556785892960864265939398188866699086026289680202236843532900769236025063011139041901811038721007443720862900728734199596452594380353977429891452239869015900147096154356965047923310575035609422785221129213415164012688645385974770965225949077759263737579092381617408163996134134180111572294120462803468365633202851887007224280858880411130018868766844626317239905988666749939339515122431475323374713292905099061416605737087388379044974759724758835658625610818527441354446925056290249025194709231760405901854102675564699068930818887847595781607172439839014524412226238544623273670176312743775137542692063159161301603477344521104414169108777803100504380990805902038559298699575601898690458264521628897788897595673979767390303787259917525497872383603745008557203744598072223813873863852313009267760665061131814919929044675044912181591824708267121423547086332212675822267897513310363338776492269424340163220920854707334847970873660776228906885853566599266568491224258713309227912225725029856085511560406631537074815189931885494748203502459040769068589952453322991059501685375117341983999047269456171636128364792274851405850445812382934592296162014870806729113452227459319268086722739422781313140900286914687018108083364910401067470681363834051861016939890112420618273289442740595061561675403443413998898310318115718890905459001049259609179176470802077681505757882009149725136059658038881675069082782545664866265060776605055792757088475144696728145700005106168372829407809408631345101044418683858613638920453420161790074701493940262658250042883826214398046884085736420995014118141987678609377914313804825280476663577512347954108549902548503048366247471904425040511354142579700576605000009982549899632764173610084734741328441626704672202913824623321442937857881180008826027623277855907901996833056541157873549870550794592615721167032277073932518707452180092825565574602232509010842974418935773439828726930868452210919009323118674426604990722381928040435789653354142448647493142342868912689324101395467638827357603794980125476152859882472343668904833524530751090258204513535251557133305743881911245021975777800434833738733012603614990394950249786279079678790266189075494268192671500720962258757349629361905680922124505637857259847992031594162465328651373156268829938379207185783630833860950381789678193345738399178701809625146593070107124228156947066016706846917426990119563661258703929386577006741650789541219779209526825869223146681897393094412428397600180175994205185951069900470710671026241234576740138761722737056654705361737789341776622518870088802791762920182745812127266325403893976633527119311045093442476927625286717652062458931399891980124251438910906803299917348610496107472859847927153482115042739586895286935512506961040716685603844085978701572408894760063029689067875978743335301929579280969699493496217373109344227562042663446691400720316588742207877225082309684765082382005477791855987531037827818666068909287279796130934496856123605232203688151052119571021252287870331047770503902379814786910934258426901118221963547885339399635156926045606999042824537085835671102005919968212153268166101464166223939121512088815322295836025254889726423169336850208666625192882531446185396616143318086902243022675351631073366981037972053594427777531994483733191758065776793960035067817226493544486488330191388687451202664247030956916577485576751190574320524832763978090310861010237300557602410123100269272581751152319949242843812651190791361738200865998499642856669150350592558716633305503510783760125047619280438656372629855801643043318048021546384435773171395554461674411448181107934127674235021211557569167985212298761019695034864008600507967579841188291450376139382608641755784218186698514597234142640425869069603356346382198530128335700051596181140069345424913707178698798073884158106666456620186434645827383780850458462728794178709675821363174917468372375178344573989978927276038763256837752177894459738307883818654014114638240816623857556374904351022028643953638695798384806404936514067647598493844853465065614566029175130799887820621217344560778325274099414533603549004094739228525226043894173519176599378545873157960000032321022721788482662536258062449920377950848693274217253420281764275780249985328359743503378702462265095729059137823816690049804458236030118612191075080766503854038000562540832129828532703279150307146415615595435342609008178976070788920761781766010910110465184461757945215530644344137192619774827393606391330236434341797217975552991372794457064006434240331376102030928789357429282071895609304272581870502287307329913360321851654249679329563270360015389220230998524772355600862689895808366132012785681439846494886630468098594213399035301224383158048995283640106454319557377965906102384190136584177234949391355676582684191980642110471431988126436862250663334577050621857810299861719117453450092260658098205780346407785944298860003402113757519897492046750364992123573952510964422576663909633527914615972875789424161625041689509577772396930592793966367472166652315907631704633304635189585237740747610263549809548483874874359230037419720575924898912305019228232505853310155077293769504469911256282098719553066537947643087616905121437839993981422083408978642940245234728733905244635456142048005165291965910001426741729307395036239651023796702547281783360823773618673736588528179535004208393454831083623125541778904288132042404418940310327765158163046448296155174433657778239773823401379520393396923420297382379693804485903104803823564492217418310099556944608547736311875922941791505228787456795559213868693606908620369393011387804741361935767394654407575293791638388180041257611949317974745883094075772325234784926510051296057954106054086638389899266770242859890147137217546202996742974871479816712588088664025265520091776594766945439160777289034703933629191656465755848331202715707418266935027980144283953025083689573543926467228654371705385436898852386313383300599666604492577903224113562813779004781853463087587921908137259892545334196159204514059019711110904034669461701149088293522053761462144848331134889520565254326557176390213257996157779983033938687577098831695421681572674615611813076834804001330942131965184552552258058450968115114104897590911258780296069620045158295921257370599007650389030035541469091315396304991036685607040248843229458554090546067737695468484026050695838897197231974433399275657312768309935276474134642512536904550467540578083196806327906472959426386469996534969448623467420491784835237785491154435663302447300702238357316381521689144903284918681873928215054291339298776249620836445378604796352248198590683894403001189880182991618649748006456278617610299800614206584950482325736662404090615723635095667190704222280733951827111507016929800786506638605723641811122950266149422285777798272546997332800626884557274341647938691505688906368154609747294286110931382336896858752053895689685207163728264398833469947035466921646337933008012225716751545857683969532885545892158319847950027088155427745955086984003774395237414866014348438700477268848748458638035910246143280527278904855567518434365260505594563420778235933892074083985525763526945476478847436972834532241605929052724949153957397913706600078296204893095526362894192182825558781766214757764944645764447405102072142299181713907609272505972008365114094866501566626451770414886405521318029769182306877325734095117824457071210891945599042828907625704465170636214913000552996792375333931828346483100223572020523496825751733819510553585673707191766675004831355509566853536563874167291555355013325633932230276770007836899206639988147765388935559680980420353038390587867569185427430286971517624945314634641360829686538029527117149575858460347277359673834737848910936317648868992981803655409426198703435604386283883671125137657375845322423010909931196648728702927506249300989778529318787167338438236835702467801522698031503545018541526797233864567856189874506472507076801783438387953214681821396557941896036525868458718218855191029425567019580063519151271469308824450077362150114402004483726997679820081008251332593833413848470657860875037792325866565004902164827097760653502232043531519757962003497795971347730171627624440704155905275935675956926950963809858023994415728723628660932606272638953000151591091237519918527052813894948133194114811835630252743744005369252551987745384289914849869566046365742250238751480799832827589482667222335213196638246808746000109783078829088809853605732480350542870169378053841450045679824019597476875061563549262066674035630097283101326216979499573228304876132740658053287396629487128976864271334285492840131325319506476093304884763029596307588197621937620246535485488004622880223940358358140225055635881039064434812127752225193421842980674649718951608041367336444492149870166343122580461261503885545551919729097782125758618512241998514388724470186268188417471995633903810393778448723015144865513131814518012225327198018855365232013339187606380784105214226113216169309556268837347465606678652527768344182695292235350698266860692688996164874133425279632459998499475908279587196399750514297773036937766808216448640339425906479523852367063676619092062230986930509602332170784363373706994439590883357075168321783481214267155185488105130548576940099226677345914899726611631624696697617091274609062569985863258504175661148236238213200929938792740873558095146887361491362782595051110076441247463548235695700983154613166067632736218502275805877361263117027783027558826681685594047882063358311898908338554489350087285195831162627496470621434920244556285144733548108900835729070686867738353614924318930278012150408578654821237414749942908627573889446148023193983896105782904239001752201094203617822099092546405264852196009078287951250688682644246031606676560594111200179925791338799464524123084791177249026161575138262923328544370755728837741529251797083998081839385578701756198707450191189852260156133566010152478615222570836201339649660382438419554707263962182661421783953299570340012705780291106995423732206391897095027922003644864836031119917968128803464057742065125278003547272884751344111540079119344471805655000589785252380136769045223542864724455858995646167097806878853337091718010641213014717899632816581564591386267299045347578012416707864691203501309464547251884488461262353294209078401285602395873910360353631583777130086972228277702299235884205367247665815267706271916165018161359382204900407684266888868833192407904415724083497735836162425447292982433176359757033162131076419723204783129997579825890428646916751052668965464011203677191918198846830935588946372661949808464765463844138728365259159203173711900727232792087869957200645701460730899737608352474206906941336498176057375148185398341821001248020623390729437089806312303478567568803559025965553144048902643771937221623712853729713012023820141492094849578223952358483060491394238892543760830210377995549190540463918302637917552770196739401425622060358396054778809742941045112859451820407841093020736407708215160864922923317334939405710096110020483559859878325802555203657145513501851930474740759092543519700203809047425821744491882939627151746784474678493282968060703740276782520385401240051836770627907729036572070124289890244601265417132625506138623371974582454454359746664096732715759052825458814029656717198277188803609837826416661811426649430851325761149610835637181386581739606857765525460591832043161303155902322600706137457229686177083186363834808414990713885619545060754827800690292771116539828065383088833868650948304019631151814417629128988548382638141047258192548753728052213279814941382844080289329716128058617829282429991968054057640687521615451291226349591851039049851629679385160213469512453946891630479495319422910210942771377940590833127941753742385999572839830926033334791825467517231603849747935944649457963384204141154278931038423959106874228657969258649123588291132209976176638290815827223993882535458879889276002574716831973034295824290730793510071177103362655953340275357689107922692525216708790154488181116746125708002324140088606239256593777040909045156146388663535785248385078093164214366508163132854361423511947094332177584724678437380054785386108144035589987125611442169765527451816955940359611930480093550159486503380130804008562622777203961789721031866644509527411523976204460682254474721938700525051972497083664712476356493013636270156941514843107209823197246292642220590854857241348856387851955572459994978825829992155107155946396571980004790553138629523579217162788528646332886475134909504599679274647059701604728967334790806901577203859722639847299322449520931045896658978302423008490403087214573951679115695049219624162665636460602956649841411399426538894799840916248995335388050943986684065929685289277786448230015894460575970202488250041540425841859621841798521616699289052391961466624475784896463169704477807125795672948639092500008583772763757002089738129132800445573796250323425119138780882083467288229002506210293671653469161142813343012577917631145851016094096912182837642219764938980958964236779401485626160942266831976980768301254097329664989567576278772806881115355291689073551154332076756911166579338736028998123298699677401982510100838287353173143560207705309208358640413514653754264804487978001244692691663817796047017177726651948575599680872300289608326966107708315708893982760043070451015410974549102629510888407650781711135573851506172325601945183460889591903962863691892463759967940602332270723355879333208141003430406721281747462268862460779766934302927416710623137246389977592944774254446022275107196250406050848298932503663079619910102400663833219119925512719743608377948806835865470101647673628122015994067157127834766097816905761924523169439372502971206425984538521309933552483378610703751739237052818475629125078860289193232081856700628335577572811934970404560313298879810311869369564344242722638818676548916218186468049442357572686546784828022995710802738772422858039581090028156506222073516592980451391799473845541921418927195273746205492603128185719792831185697264442788579830494868051447462765384669102489307955360751462218359484244049180263120420842661955722136786454587146168030693942495202285162991060043098568235268280580248092745377461611513429751533450102299485107259779506385006179893954620333411711781782711777697634941956384931185616848590933764299193523950449325338787840089797128845042450172865414555877298976999189117953217295903225743540888837292826408679816715371225391049739043460600815585393849187268455755606165384813562456082128874843184442998109327215540524467336394441973979388169508409863896189993982330379946889500153848368064703332282876047254009794435325129983466792864781524573498498232245420408689849373451533356313912479932195884108093086085482379069347708015976409736367399348286952013934134608400403351836595848311637731373453017974927688182805112211979918067441701571577536064337321056908999494667184536760936331978766181349963462204276492674311824710716245228165103798692808872842005262600147907605826687136771937527177263802623466718640077777050835908269389173469677095795376591025383702216404301877045348882809164274854259238921510641921110723443472125750556017816874189109323237411704276277768537470428292425732499683260370856847834223629468967281579120848554337097879982040385576618020654436909498482514598512827823513925007338713497765884286225004027572461448378026645840349701264876418935309022094798064977336479243595810081973950865875863635865197321636612742390995876900206726460252329817409923869559565014331093279863024201795965055419409452111510155942636447405093366980548233662049769114445133298256894091182898552971560735683106049142438454359720486394287957237069440713667734319687949391556105380580643965954633199501298394182552236514824999768441738664701027127945526075297080354182072464407449692733608156700261899082185882344473125818636456249044124085926007144467834558714264879283004745788484337220599218370303467826550420504488794808547513910337117494149765352291690269375648840350875724652568075975268477151970863662234989697503786773018723060326786379183915599685049277692883836599175386323123287655269610007542610585890573771030796264297132237756523575455262422268389561102266928217087851718227465167512315766405662751883594954409482665894430467054058902298560254171580057240500692930266040954583452235916334916041345577176541373517832277042386111198302683895739168163852854909151261209792927721301053678265830688052801669479500355868494600751530380172128458145722154774024444027135555723982040726465693972642382438769572727982438647704338863879636533393156677179985554684635082155728126876212020703100925564349017369219794613544849983267282803192135810071175481737457395361848569807327332633971974523346722522122226597110918358410485569583436463663388677054924755373269103507607081809045005044229366473708119711244585911787576659941800708402292416941114060841212718516282321530499233327084127559644335871339245683300382014586205274838579229278204942440448032697740524378742416930125300828355672688351125425173236603143978270095172654647120428758217079032976393894132616955394455694870789810320516810133148840052316968122248949430926283837943344789247476203898493571657757604489928069286946514709750245475054680670254798019930357055922174835392803092880948881042560860155752664028638231606361208782847413693354046599527034004644981071762181157851570349724121359558352565306695360642511900483082211970981573557886722629418373368315401346463407196723077875815617372628707321631715284969214804060841187502837530380809870676764917913790230490098568925665780744889078258809584802787601353413969067760829149215190076049473455194854472708031864093469475598445364396621604613885705578202203271463104476555752220998712522860074297487449962537080527736920952919906016766480311393676608273255540712001098178514211094282548868250444993336502911895693516390978629062142810713113829041798874546877523751603305429392655882140574012370293142726889829517546548113656991388913328301133765026404349168713689622073790330381297047148993631721641291591098270585505217624913603690841512573630650307316758759006202179575123687191674258044556709220056567776108641218511902253649605698423249007615038756363509057522462881497068491806288535931786319475968260715524782680679690970306505365667429706620133347670530313419802191410400251520344026417923223134862852748637857683377383070435836632040436969360019772457623935083362311558362828923902307224637561907369059800867953839990709508834190391819228037023166287968238351119517091537935880601381908511679542315671085794780926250104213615994691949904485045947565011502485626196945492376042646847433070296498100143584037664644347631814585731611993748840896654717936357787495371868229492861564228564728315801149092141935846014381111893629815698850517513997755470482973813297115999385118075468298865574619456237728889905581491150607868405379463785101560965545116363350513640618549307167589038506713474239006549091999736315192666398682892322516507153947018979569872989672484685591713443630178186890091523504223192591651514288889496011211331597719489046075687214285336486007944810480900256294172395320417353983509695942357825298257886946932477435489471720215205689410208265669131249488111087492977868172779682956977573299323598947639015212378093395455070610568616264638227110014429031058524880312727551407950288775574215349473186426419129186074502538597578303697566249516124084782575053568351919329065363128595555716228248994126844945001996684532063691294798270992131200239910553237516639901029092274937140014880625930813831589389829705743204028977004133506045150833761292219961685540528118739266018551605873977258874697333804325714175385320769205528770356469320524910139852580204755489759902588695223852505392054577669166801413630209938980463769776577190230935018070586137940816470226877302534771038879794007549902539367038388455586831132494634146992074107533729433360306362402004066009095688664842902994223559370138553935179624563884721630073845699428690747669732127134204971063563609215356661567032491777845585896574807363777963394932669586889445215959357074382968849555881407875188797927409300844264118664241681795522904246880262567688186041817734698666445283507734065419558388683046983306985111471587675298169589405061851129496406244255099754700696336441887538706779037868098593078507278953129960640493454665043098848436483302907958353430555100680862185764434906501558699698794639742361633431175917202692206396870562709805364524466142245724210731096655152847047714484607686151024041788070929880920835071215089751628010353734315382347650570417549554375764027582240988182012630357590940197594921409943957506625267275881112599840287112434124093451622440541534127191865669203948844294284934666334973781562472136299867939377378237436761378447960933490505079080710050804285211111115763917695062444526089545507309658206650601281319958683431306176117260142282073098153044140938937131282850800715131242055563070374511184918111858216695188761204440065158818893166990818367976783708973181856633119890318788117662460573425697035651252963225176480472247386985585253733982703375222451459597367821922376996582915928373473677106098584631448009091766413998533192463238579137140949032008951787155410667950850386122159088347458886327234111308396647811178856503087221283743431679716323584048814478558127774858237912622295755700871759996814231674320205978026583121840259266228783088937229379267931153982078999264278715535579880367001666097938310602440201283116125224786786094530849874671613711964071891402815390677512405878837416613323358610880700503926338072498810516730853829939228150063059652910533350749053797191913627542100348080503537088444413467136987630706011006597649213189085357804439202811024731781930193684987308162367052864124848813407912348928823161369854545676202128799243838430249889667537039034656608134218561597618081890789367173009762530043311338592748168172251110619489305817169634516698347596558839533521713867719483456097061502414395018434702443577009927188955690408619739606192397771185456587172993686172431009487603219670786816636371129384987333504334357707718730938551754714269380457540648821835258697970124104030687031826606787803395448400564886472102318171809220081715175723163083916230402058125513041264561679595571589582437727895355441179612487179094931741087141477635945708850728801833838111993452695780018290872555569155655911259694605166415126730581024178164210710727375788372913992900351290302337557164531027788769685658653446498795370019113651546282621587701012958270311843677137982423205828832843462058945004347224747367942697911523595032700354072533702362410691336252387771555739806512741390694790863642680503815045423143207224332970386661587291248072087348239153077000731066860064622197921604916568073643159124567317650928993433333252505695511924821956814318102689043420189923815222867292210178459974486012962911938758792611293028090737616684575704573306273446247527356690519563811667765562141613723261079421586659007510712640264646641729982066222547368780979272520099189833623988591638936857960891301565360998494073398976314233712180994844873345201063481333216948531799159047106646934180555204442696659649124819980426952316893001468360167518126481518230237084995383251880188057491209676924199382572542139767056222004689158264050745595785610360694813119376628084435107252581347716538454316834752018557181028669571551916077138993514558494130692628630062171308108229779566932464399702171478301504170701740952440072924914840175010990370719393931120077059259036627207367988254547838108854884653028934931317566284253309665606945825305704677146204937819125913705360655708539858297236783248855721188423663517593408119094802988340077545670708915514086308395089009656011770498042160274292144029148159432384076392573978673044366091293391467818820083469336035210449102862895120339101236123063375771282107153446544538075269899358768561595178955084949553104761354650554964531716022935525974503248189764685565577919746152971928411890174227290104948498732288692086417756143370075275069024931886257768218466709096404392907941988734246314517241156468470135701068927740304918785709686664788131719491423300497148205404622849048311229975839084797181588561852290934358001906029508106826317844696996173314762387442518450264564748279933262012338801239820649121758494998747394624112533341606781170174906454102408472347334616421238794258438400225942245350377748119665446598586230981575791691744029170482626526597589837710926701735910692450918741357545428897715874020564158410378909244812270891858759190691878656232352533810090710708529411086548098907760599912444673360574488357359277965326293857629883811814985921789400985111428659647176885902305177419087813459840946439985873288090410278301952760977552623398624613934549919450617223078809118672001394309588015804113157369115246797170018813491664685981797020716117334329442982072671532079454543398267686377416204013795023816029442967348773505318406605807568466278906911956768414985994714018770360132462823837676520316240493064770813086294636319566940723341001076703551387146365028070017551678354582296267566952519769434093428173172669007122747126736233283766768889208639098646206147578503780817237488868926481709370294981792450071200543964692167012565404387130054571905228961053530745535989190449089397553061549454331382432289190195819721696426146371941799579424704013227068246206645204258887078287052836136180589530199827617109451451453374998026541141782228686673400983148722673790777362842529385951654462934600581111510624413174755176671702137326315839262816627524130517236726441518348450649435296248582718429394995224790621463416287679073519369675557245190171524862072027930960656154206723954885475881779165901561244970473793422696368128260660352200446983485982404628304888575368660892140103316287451975624723408687303191490062653071816304345043228424328206706889642977372274803078185348518692408291065936529272318554596181338816734372461644748718879438260743908801326253548794940542661708961722778925082730403694175438484605442491455641734061923213442554370632418026117420548796480938667971912059462124784773591024771131030792854255660845182468693694225973277919832697706066067981883752025015130630081805292251141464525213299489918198805237039338093543322427913970933820813111405995037105137569095160202059809235830501486003578579527626238324753108584174353062032738821568201861675400590129869370811478985390139493988693981001035008486043366094942373369949044847037528653058544994086107443187031556376940092328636714408183808196036718842319874615434658060384007474460391834425818531151014410235717047224831258571025860156737449049539447023921847869018017045024402824895839279263021456560339011069097189533471294334339256143529815520746567621725525726371341137589608962539038205204464133648610109883118088304431877754293743470896751454297082192345683333216615481361433691696897179042738939383293456215753283550042755133307375697900112101479443624661088011266174579792198522554481346053743603312617837272018217551665218558730033001616896658946439937449215880976347770126016976003847114911495461483186922735300529045058223875564836025762985140340580711124652116247723187770967026345635706085682993181520436108929249646961930994309378087975225437988783535319757731976720100385997408118046444009667516715352492990790184977081582607809873054341037429864198909253539598344619593060180155335703786220268721636423170210532141901678772153060820613551617682413293290837546773778393531528807441903781807880580876233535355416418777198018099225312765976884757263938928363996166958140164388231930645527655487944383114361900575538178377346443332322906351733231745749492754019116976746776572428489560298951135844819948723932096191154297518125516184544944987230472091001311356853080954055844174248101473822642042998971622908095413097833718972021347249359321667144298687939357931676825977073450176328150939862096529724424474035286852833964166889608540502510262794230951052738238609414470057777993780183856371061737295140887727386066221113235755751817551824695764348253893187541964868006951654756524097058969801544581919208043886299710669963715137751399770916505158333001337022455752032095751480183411583058630614196200088731857467716025533928782008444906540427126347631938304851946697160518298427093504800585225627596892234506152475456157182288831682508192342481721973979847009866191761090355237510118222257607277889487639380412865337694965479311959674058535351740083800245711595669112740306030039739646881323703367295431081344154155893492490452134733674167228899146323044426253464826869436567473187601246515091896129287004056307579496232138882671007902290918808182854740126069913888755781856155157285238644381292474614840541606842039265624731429054473321888464402272366909300976572041255284471533906955372606805220050048328982068349745450138379967821461186228194883171059615772388407295764072237192762568240081272757096130627416990369049887894650495910589990150919278569448408764641548699413007995761353206436029058773606374079075452893017590866031490615286613698579538756814308471811953449048649315516607557079252860672606563426647192712977599920715476795930401793540499379340521876776055145428542197015598352912357407941351774624779079818855750966754372877661532895639857490034365133205615122569238644563261851107745724752152861878419743619675207543386572501944669260295239044321324915489581120978929149711383410582581518437389639061167756113104534791081870412445318558781686220219026456064648841892422250242534859759859348277965927137469099033879054915428216218563794654975509858859276802801414834813261888059417517155272691300922980193377032144710464644606085371786214413519645483418334540668070805985183225892960565765468733500819808749715929896835013974508394829534474790166534478632343190289506777951663121143658932339501016222268760217376939526661757452890653949734021085886830991445497622548733095945325925276327738021646839782263880033091919293228969990454851396154080435747809094867557962622917950502032837841585171932773367831221458739383397351933233442744864522842073037645441071688383236040063116322540393304577289775481419219808742314590795818528734659758260203833819916587768418439883834268211122880515897268168521538916269607855899686997545780617775737416859765363563853988803630690583058954314914320691775599059641569013720701317445741265903376236611175341888706505077394667865159377606832484535787026320914314282788074198069976149898638364074302609655260059585835445812078279914306017539370088668429585721545223696702179514193462898249493425366896246829373424525583111119638580822236419234627311562023758635453770587861721488296758717988091524027654064026523463324096355572578142932545518524760963546417173156516913991622046558856180981391250035728207490936583636871100305675445407909564110127821576742004537065827757418331456301712716412830957273140027608102895976555623314762504946346267040834561693247880482273538453025435210054486924613558565533678522024551783195314483878169147912179801947446186054889221063278678644072359829990294023728304101163958796607443056286129546293198709545726124025261196293247556442373351888329694809065578562647660596049369685721715031748044249864650557628528251834712072785600526393061489682981129112113906265188713841943637968160942795848111165514502192864693076451027026615133304946680751116636706642750533206633476217274145672482467347937503666968219913227492650459830564116315584993617598524655728495867343481896501595941542232486404703006315397332819906482603487782588025859976041222136020780843905040403999673876652447377757190059503019980578520650869528151094632950148705443767993024580197973949711780948338394731692929753125483057118224390284788828924795969059075380091128172754537863935598895570313053544550244098594140708464865948093810219157228839720170418099885692034320937571802761213368203947172771017195378268142059023851761611189694348471590516752046635227400560396792945632232029350121338095393413310534666526984474528868859908311965137439878823649371276784097739603262875762178917169923417865104939084469664205081528540544715510870498124055041268432521955079669678123753526030418218356735977414026191141018459805801165901953126680117656841977481379248417582251441640642484936640064117521810976799699647700926949248801192994288334148398251193730320257368903442837645728669561759880911703615525341847274768076472030279766616529939483402048017038917292847762251313703524968945912462780040996961099420806432954619077008046045340973465200410919274129090967525391651103689531718377361610562946578558146797661660138442759331831862717716809846221617604015013131781959360652942927734285293813774667630740920628102258909011154107381387094785072465660409206093619344202706053425507130287868433023888958882004618374704787138103269521333992467723165653316309736060131567243953112345440601862870254940597956133262111471582623623289971520705490690289986861073584336225870837071238023044797079540613088089025483647924176443528721681478818530057686868123523565250695144739362513996226306634274111325264372200399741080105854051978229872910059789345713552392013218308548409786964666332084972427694972260109989640787466664625204207670242478130603489639990641791949188084525189236643873907826097371828778723737610099679195519379613841002469244358280847924838116895076780117287787433691273215938739918271266795943549382350719035246503057427701448767169230095325361389393924972703160278081418914092178586503572632679667450402370002419955122239107477574403653612478455408913758386651474189950182540532149550011985794656434257369980193357432725400031657944538826972126651014049619628297672548388449847063402775366233614786913948377929524510560346645076656795039434199286670578983078581764772442327016942393569301616784759261332233531218970051594074313515862995450498369984548597707487432596526095037875422627294890452539622821057577585442157100679496165877684468678588999223796966004359047679317259540862180739602711030649330556677815667198312436339698286101732217275422182555310552506939357831165060833322632178126429971011228990244469248820759955603813003208450696511938625512993099832062111375966605805365592506587515596772829361347069751793471578774171520701165176323558214705130901319143766010205349461407388724672002764718172767051081149931765999601333473233953642362423168692050405558998750648089834900527029222029595265286385351892434989477721825764874540947618691241558390816254061087984494863087723430690391383164950705525451308480330146595357704670848716019663164983759059892297741739026240719099273965913908582285514774549257748217592386541859145446864039258942570219699076663212840330300970809897490531962828818023054819778599923633410743659848970538174156792354543350242238691717256907864082716636691370610234416200757798198689935810445604509237147269837958276110451520928702562749585772120053440940576807071837304263265776387310174607803778938724784718896634417568824293395514077590014235430399572169218747361965831239299529193208994674116233617427939757406871822558020584355227472814514902358446482542768276211839588668047248981979901976794811403040696886388832402000986999316615523078441188273720371730392658243001815426537735565951263927404959378268193349660856050422532745476339924596022296634861857265280808290945947786473085094107573549266970240308648712508835857100689697811720672508492647529247713119902157480026219507057029947256568528885424403378322984883960494073538861633718357761754700804092779669335148931324063608403635397171877003696784258332167877737448281967781244879223508729364378944713314015032920968923501766013925523374941489760306856821124504612444607598514589671747796390076144041990448196033478719270241915600475537614159796747415593230871991501285507865493534707796809048881522757963892120959069535632312779202915032092570050828548699587003183791057020645763444409004540829289258134264191036235403531163245019581521876819231532230328395614335069068382660966066477822703578351162653277129234932662284814344706428720325375489687849882512017033800598581599653040481446421505611454721673396243725027987745421870931020345828281660252048236013996663304567241044422965597353312593964205455032607887913405672306199485722766916917162322789523973074668651700633026648161440361973705590632710376373633508844079160961154081406936702944868260639775571026304558098284149236000665753630249365543072224098962625502839833863419024546901613151156359713802854979925890549938665835053990405959289517135030456288342550935465108666095344405943365366916595660846024625480526413913564307609280393231906880990780556003081546075029667512361612004584213261475977069802096499052316222928176423671609271245050120977105319493017529465239335871900239542686608729530334340877676593916655306367782676534440613874892721851390359912176102100411643022829381996153478196912772470420898207460496221784619550655841749813978664036944445190575588424162118017405425688326363943002951543084714815172943353400070933335356706365082907848965001213440042877227999931236585018733952452902943188556212431638096684653745646896842028443589297061164140318888002062652541115065869781931674869749055603093495850580476083893721426096954855819060669665348150064689347653540305336074687041254646076281154672754688318547826437590217364533013730439221662800289998694822407239918357413830466399496725486243865726281383924478951875812676329419601738286202121200534347189430676581319238930927843730489871384638447213060607422526181762963199766690246969031720423585040167371626077475375715727579089298401265003807659200326263497334002779827151908691147032340699140621245479772960729261603585382980957340277540179894781579541516381431125244453647301751827985158071922081075780373966504974382211434692038623045565033628469169393965279992390034409107486169988476329394883082551073154560167032092996142747852567557569356983529383939688566546921040781948080152677278166539387985009850155511476199866914308497730997829419284606441851268027232645024166153915878587533000098147729264188354909683293309773995721477397465553575480456153374628437719546016075495600600323121669658782031933968077408055705962635160455615984738711705102474133565060337264258666481353196510063462055773075514557038601074606381387262429759529855775171812780730859186986349346259981215457242805264087593245595555570686780157612386806458175978314613122521990654128444551205722214574162955802229473249409506345612807410574615091050421366167312117802469600001668770850126141105632984443702588849824777651716859890378286706530888577508970031306872046590522207141886727193299448721270956820367925832938686679934791353996623815506052786248207770912241383391829190844837922846732856748499486078638875392571084080279948690384246539824227914435408749217912884109930069509578473037714988406336809371937493528128974108268745059868063651699742278941204233209488063071554925032628493282154774956374012055754248795634162433137398909099063670819887607366472650468797103779983123930067693168770275867905529725489947459776143486485159660425559118730811402479554805848200801826208645236675489665094589651781557523127596740018309926836199702166547551144030943053811669487435396675110336041637082034021250231928731042159143183984905021367001824216353548796864559727942492521863691256016585188906031851490495679986971897992997832028468177376119760685161741316872116437849806793532505356446778262930736293044293621225401072870583637904196786883060876070788715470453823415566088326113401451707735549574458729593861708662013762937229797467445305422015758202402969391313389959750816191491154161807799659499500031902947832597810354178702070498229021604897560741125312515998376981700102052432799548490425894278443224094209835551884996901470386653795042320968640968150037898792233686356724604442493156254925139966141034873472626136389597847014567030090935856201813684463456597113825256203357798950351022070893054702651318213491588880492911044589476018978668603606807699626228824779721892310542710424922625305336263607440280862448495373858956180617052205361932364105304318744718157503237344277937904185689068612758887794144688893729815285415744571336124019219037219564080399842653449229486832862444197881870731477077729401763231430842904698687625176470671842447794391075680808469073404497282732081759203783327391963613788378429855413438402226235716645893913277437776157776000481887486482110435372779733748566409366906506230561262440446703169631018990989230884112705042718226452683442995775290654880437227572358335295212750618304880876709512605852282447921828172793227051436395832634458994670814639187534212220253314354371605010575236138102346466422229906221205730417442949561448266822740717859550349196156440598640340447407478811945438996759383074082323856015523827306011576712907571080059420994300123572136831437063504466691102811127468692028900268047278154728226984241445321113174082327245741347549510375573452056772673583191263106296448105883475067536664718626589309070174161670317957521936914048315293382204354621797316372546384233462827430271377267222748925606409367288309624549566426736258714317183557918679738874522565821094879625766635506092108221071465247406026252235783389577049046774965824707753298440058285670988916238385421362779861595315282641800902017914147206370875524692353296840135720784840222194255170638625332802051149332174411828375202934519931082100978950849325482775465209436794503727415739953749733439927502163858510248086354931667709899658409247325205583366517983682546921520955154255786566590653368714507392286595641001082105824335330924228961024131910388618957896410504387617193868051845121102403971572064080896838005221672391955386941788054635509847181106427972627755298830760968257432533614863840861730390119935824901385601288903540811583792142647523080660685684459382443445011101215147176750564756584561322686610748858376394878457476567931924541376894304214279135643270696038501595998269766962140668100187561388184909555440520946781016636220650182355982204404781134002053611822201621293770212497371132630420584584936825585027955515497246030062864807450697556048734240599204212463850635253321982363420737763477250935397009200008678884622950246921578785911612698848823593555945436734472602523048582230829367122295052850115631820116193877640737486442184341888157702258780283106582624321367568988223057202824772121272392755565653812875222594612019656064401148506132826744738507181990071287010008658971695083386801888822569196393849520215946755551992980914310369063634834102247318046193153324213108224789125919118125516549908859590218068446176425063936660306105739406062012884710253230620041602742558328073470101296839793315615006554668708145821062108662693765389823480161383797551481522528179682146257027385478183872065824452515083068579003522503061079302640995497882288824353429518165832992826991344801762849845166694742596625291240582948914000594158978238509536645005294717975539125050451439524239146059051361825835344905689262455780286129903254894437019118529027699318533306083573066611358470808450772667983385915011892825433691215739813924037596255527228821690771801240023727875749469466849544610705292183834272895935730119037240716083980034403641046654664904080844940006805337967830429768459647118520266539713395509204083795519625010641145605740843061551012779853254572046555649255115311766313100974632981520878883610008183491625604240844180337050368404440367456262208076601283015082272888618468058730618258833829867141042033514854663587046923383797097654554719369955745035040921542927218241192065805588608344155392121560190467470682624234002788745127756142630835241414978931103995609840034548360231923315191471361428312731242638690067054985239681452351314095356272438408305048902918673416897617084518129169418926896808372087004117939130468516248689606569894698675045580931722303742870494247379486425032071085942935217202185274756844224456267680956357469745865737709358116552924154431316355992342340763846466387505635500890649622434012745422618286998499287505201368227962832211858408079040942320251400330365868718720200183347087897721214795846509909618114147458049622997806099415447467857839219254041196196258353969231300713971816640209574723264080501102640871651952451833689089252052341128486215917351104051739344855461743847065681761275721552285283038770344363468141652588173912348825295319126310120932134129466221069551152094239820588808860908212357603053700681790333717056846348585207781005510284996708191711140514327439728246474381276352749468660381696004205684672400640642458933440412140016642974116842810005427761630266436442735992790436994006393332844414279052266987016877889461880067462022580404735041230825746790000372157668237341514111333840339114346560826133021489649302199509805687789197692426747629149704837731582952468003576534540784776040437418475970431672280186139312268284889009436871874423654877177206604044932954386184142673223129826372641693507659322729476276875430632585840803407298354942390568556846359946805102042998077801275683580255044617657608549731775777460224101492514832119550363821197597271368509203808304081771019980746185298141700011070897989244723527134058150306248469230988380682811401257817895051472873122737580529833515613726819324673734342518569039230447451654270144441407124782633267582986224976952737290758652232029362050642830728829296611527081962177419400914109133899969095894034961723562505957821677544771708748142639769850283817695797245936949007789614933215521404407159812885661519202847445166579029495320828196441659706384066364091596263232399213118116972361328769644191701566593545010797160550076265328047563714991821199639109393021293632991619077658721811339795947257140491401613553628806605719615953337535726536060316230140004091216184457401342645633756401592335848707285677048484360699444797142980334267226014516783975982435940498603915914272864512752867359780084279776448407572444805721115338192319518054391693724523532988155175137060267397621385526657289828426435281946306305318276637840254162457164575492108908358402878821174882190914419813963314478336890813083679292548551930144402046655912657554179398872194756150614773222547686609593829033449323612782233675081183451098104088845896158210727668421812807055525675893503372920226228748404034384184343561412542063504476124449426914665115941923078856547251917371914986867654426583042943525004927522334908262902204583188391871245754675736359591015585807560097154312376918812142603875713131713389395600065979028386084977312739553020132974906299969260866963309273118040703368970085167533017343470404900425938586842490308683149259712693984796707636496888448307387629165538217914034604001645155380787737758662415456046763901252586186151875185129015595701688052801931682582636219398550749542029204098273488358003874389695012267405145524633083253496095765281232780098700872065483374936801978656175422608346404750178268691797590688355693047179190631357392802633035830295026640235974090733387127365905307956904767580634376326955944052842948207670808149877288532561202073577196573595447661240936369474422228334606556343916805509934266191132884572219947182173816873015226018367402339508649937031385083584857653400355823488191079115151142959823648232135954050752719730274535720591668242887052356701184918984814966063451728937974458809532335465692824775544816809836595518346596136945327636198929876271029876183794612550863246562755983763232223657170538460249734054670786513491202690708556180921133119976075024313031241979471439232923956797467937890673541315657181370403392395836114112005802162727655969751047265313077209608577150652895873609184108797249522266028808827294903067405718953712467689695948230723494918985659044589971386331929308851158700003002989148773626281084552903468177223245674740248719551973344214695404400183151430080223345472869825098741493700196625363298782004917500620699278058093727529449569424661126095448353770422494260225106403509094968355790407998008251024839668716837470851231505865441414422919788985463036744624435614940435897100668389428072355180818876889732296210351283377541680270638001558201021178706176228801735610582969818954988962641929733858812171531380379397231558137293326320944641920302562238489014164102477684856329523513979321378897044556868778536835975208990617738333183289139510373816151789902742501340270617506048286430571584458175444591687497728322902369788542146655583702476735970560463502662295539678865446484471514316383715163452859513980201203323737913893011902273557223531519445886144259796594013937273720394524278847029335453631917425925164495810358054423426407227743600681595514364393581571960639883780140555702957109100452333795012074669228644805310391364911145974416436573471831267264893685792854372289980624532564316149076933526551656034987452356062581904543866902490348566895122029877260992401710344934303503413577700439178894246997181808067339468722280884747942089632589298702719992005679235953345464727435660797209010674498451586458961867817681210937460656862076898401724515526861954876265988359806470005691318057503744511728145755080444225185257262709271283658019643342286608062373959615945814298734246172263242385441361295897767101860337019929408963763772305221886248798387313275228160728081835806585788930994735573613895137678974514371375342476559222074746252548857260730516799495873399467804245125577790468525156609641407582663725894074420773022379328126303435738057613692228571490948430430686421431892291023024667926544111745845912012718093955995588039162149425726930154645527214277479130543488801814605610030452235853520830993630518796206510953769000592830338049986659533709012418782238380085834670970994375136148140954836692577226761708736088309972866555336638170544918412003389936022008729338822831424513894525803052551221788726528826949507862286150898078819171652329632231888159879180686347017464867188556647104670647795510997260218693727214268116207347465189112978059771148013367023253400555787006129114128278728674428607238019222975134358749825281895773317703550846520898412736464495954713445609653635719514448399024498732371678325947192514580744993824171128782471125648335598703890173195966785180858151196741685107433006920335011959064904421606440351449372689227590498851452849619314635846536023684431259514121133780193865467333499275890538154552100508986822369213164141985700185737134874333909625879360579434020080042417144051911295060475341365446894926012325135872602622865946702744844352832618807047814637017066221023984043941293905890020255042450677005021535153988983565766048449488012204127760752725950886962965981146738513890014810750611330722516718147997378318359826741387385732818802050284058784750267704895186974447435070709698719041122165506392322741567092956684659855066322891549301659718055290150967213001394467945810267931393698832491862363560592171575912766151656573566086987169737139044607594978239122377250740080841279543809883215937897667520456174361843505724777114359388038612832958593247887430740229169437215207950754278689262057769918658662897064481042103969321262890189509542496474840750335796910728800548033899012569570641331794971208928217231952448144586118203036766135947464545538931067412817174507262158648353369745294965843794304148381047402618919426267348576535186469651879026860883910147376705181120863783682149402922038674369297045778738512894487570768563008765096455088812526058248370069193340085579919089408399640296721105603866425276941386602054790886941197149744763081278187162855927501699911264606559617272896838956580094320514676218315796237851178223767152703840252512818596709943806115198504059975871671176330485493327775592817537229183993747443162236968476779136747955028752742762602363202801545638143609180488785757786589885402893524500072083221914226191931482197431924011663435602812489377463163218672293685911511551619185978502577682814504079343981043203516398547301628755456800326027679438553676302452162648660470047876661329373129205422883382120283462068826230074292178465862304333468397622104071361461524511517278713358200150152400286682287997492876270742043456823923459870561086113208880704528100267569634794515240788955006495336997266836024322385324856752015318653322707413815776333825548323390681500458528623563966051778721884100915598273613034762939588273336751406029419235683084356198559975889377520311977464412834218699361571159172140222180300864216800630798248571201317308181448022309100095242649947295632440814095462450604267663692924095690099835054736134282448778503104677394642117725426844341992921223002746589616091399658382240109279067284580135363320099306091810138199491741361983769157449274750108641363405640219207170719302398475418920545815058602009609255699273027271966703832837760304949307727960859198858837536608961525687461244032577144729681899159427392417900358265660273777535137042087251822096816185804286034259654289681828881987549751786670333764051877703550372935542993740523547426124480039105977767235799400800983439866408054704652885519795815613480879159128098167725476063655831825773521255331048387382051436235706055508450469065787698662057079608835150028169569713088525983547476898197409550848266533981444325678986770660163643956630013479071907803639697452798786776911220550776377986244365584419087763640736993268988764168993809513546865184439664581501254881108518699033652939537922534418457787866116147732960435189563967893465583155980443266391471493249729226623869234414985949145289288805274471525605088447104753861761072598652211236836469996267694517316294450927434487301710855576755634075659575366753482656675861264583096042987743391130885865742622242826344251653242159808095124359112767003125128223571478197582361944345057523833814609464059269556457371050131667118550311809283732890361711429879712702127561387016923221684401404236140763083839576333351644328465478590081795840968015282230712862721173721969701846385830208439138320459975883140629384919076233425765561962098576518903897752688624711408563832028224679079673843396370343691126780903636033813920251275382407412520419013924548195549649398750158330171708383922547098289879332381949022627723699968144770422279013486768789891952182054296999677569327987432335927719966650451451217695347302865956279289941932792028835903576413570989630706042287175369566042916379495635843867254186712329798011869538743252716983112956802913448953282037138141847656402470825444348890769082883164963243852042054734155956262660284714514575196010046826509385048261069178025119984745851220699392967553524904264359077839460416071147616783604124466519246848759167162884033554168049583829547856962842302723302415788753808541082006888192727429850868555987580883507324148673559023964479886373017153094989313690092024386403640396739777522183389605249177815616099299681091461722179789118475747325859344030787875904300088637372057497269863851764683240265414095363333835987079519278670734500767765574416846562275034689465779922005676366187208725642544215296476568386291305052051082424286930319379867151255549902498474939090724005332739960409838226505811137698194036732086371506218813388517434728775416422399496936350312352017059877618960964402271765658331285485241600238403607249050396020918640415453195303735234322390713633746584568745496182970450511477631086042010935519241228284796169083459698987346000695833459115168547630920990000916685080861412367128019997826195408535699997206573245148009271852526869973645048327400948996979484159352038231684444363904248895049799277303753106259567762326594789959511438463187670100350317495262938280823549232659152130812053582604441296129714713500897152966255389716409061705613454441895369010490223610840119978981615472604355217193401401277992827001988249757648021150628578721895036755714321329949462788764191460852691396634458813383459196681262658802473026243314164645424328636741990238129749069774968551720833002693127624099319608061740431176931839086024488416056197231203465869424024984845203394925747015801393757167371445401845786844777493475929170233010820826263043828449429287318476953996444779293702283753284104832234051651006946075098054479767180018280290613402528035537709251135376479216739917751585669895365073742644410145159551788804399748583927798709325135924367398887306373660797960298877829014444577939228322764002802514611890367857465249120829954017079594964544809136060477010872740852536279057849424980706340468793729495561502270512675210394477966086981391887857305523947344422403667633322385722494738712980128723158287204044525667931316205021384687913555374868180911580425781757704900760878531834837408753168812668842518333046407189399221977544801502027110869453118719022448239596164062124865140342989950178015507808074382032352544389956285255336851089034292405706536922602903284456241811996269628693007790553571669206885349031921430712040937761501618447485662368937489660102843362783143298148799333492417172423524018407884701470150788164474680429945448410264455764507761324464378031151745861593653838035135055465020150417227915796959987262433762017114362680298019673536237481106638477942283800781266124748898650513642714060743359889058604401548080623314977932619072245140330765960570136543127254030519501615579052786691367249103237612454034295632790595656776511344814128395032349268405273568630998580830909660143039678537322401208506230513317694999407568112223012658539105526853123253857928986629359014930769729728806805033386189429812202672118049567220369786140551413460106526630343392205769777760118062824150674645661108553818093748507729643311094794185619690274360782726985293690715887879366579163835083138678849617186056576230634298794202741539870239278838549263075099660801756896472955554757888471203659662386636952393486692255551923383789022136861765597300980286160261861925165708565434055445301248389959859824581710841373240831614595369114955947190282782042513444733109760448153210297516263798661064785212318535609770368467573402101986048103772865923823562179879826944300278540280949540665045189271691185015997683029155490543658829012697619543772897833419471997964474137178190124850595977677447537187421899507998957476300090227951393031904247305084423976114301735397295397886897615332987227490930715985248244533378550982012862934111525470425263922185476601397959685567747643811888268305801126337251353463863734314181455459176223918039529101994087023743679801353011463704239999760342548372261700425135605194239861554771900706412317383531748747816743490730914799418980510691642653069152023616714988022807142957346176855125418631235744703109872123043212612485801779229620805647424455847601866709589179767405056440695499799330368049617672047209586058460601504657264920460123788855777964548876101181326191933802487346308314339115294933270947145238082869813146566821015042872312861117838349621575119643734516747249812896338679060589036435455044954776101860608755683733806970899356102285435572162568760910199341928457886193168498261649277328836398065090950696892052313497953150693967043427613743789583383965506067799595183275987277690434917241306528439761171137764370092198508535240743427912209254561735193369437335846708890411597447727538165794431371968163502342221390592170524302175939280458280611101459969762336515958216387811001092596316016282466491512675242513799055686153112904104962219185113218371257620362910309918481133858970309748531425960142170117761905740170314087753801794858667361086294744738584300378866568691222342117290311834509818779684703383021849900780658593642622147064250549801655436547827124398487829590614013155038607464335584927993713129021673093196053048130968172882441374269844760523688584040612441757863101608442383448350384266272032745089022175168008396871702135919138278588721931638191018048601589155922104922783399217378008028769862141892343626841415192003124987698231885485129924767568275373975284324860184777551878987729854605067545676498410264689787752435264899437124526458228030816965262058362773161886954101083325427859146844965763584632826655899591776454976520556783756851796970362003465706435211940453983937601235518846257385823806293464225846767260242129179319849085952256504773252096092277006759350852359816807692627227417433479358365035490423629450849068615722163881992265055900272728717969685698272473698462787833418939285449742450576861947342024598784126307573992622442923863630824691296210159082726441492786206090105925910512656459878182254176787066609603147443389765379139497682794546485791289477840656695831222399841347344145958081542027079458047581049096016467537051177727496919549482251181776442860603906980300120219410776425842081194542180724841780384248782530425092153867323714828870491816227490710007429054433617459560650383218542131343211624608910585309641115258089074664075476429643248377244933799711375990124526364726122474588618068719699092340999748849583269521768161921316920511214802359355738331248482652046538922749258348010195477779644427596070439703000064805582189415047368552997772275388420626300856550013014704661173570832495754514958925123917238772689411207140948080964351593126698875385859791060237103814211003322446331392250768305166307487258250712100095048918630651464886817586618760604984292917016007539703020437336098017775415985620877001188042469281816601666706444652696090520240019342982585417377721531093697109309405249609134190869955714580568291103146626596917664472195790001410642708856264123228461600752026517430746988499094759742796668499894806923873351384392383575887513265781722228192947805816717180253068722135801200304706860327997379504597691323626714972917793779116044267055294853470154261774189463741823194148929499776501892129718689182472803190480984163729940047609500167453148847627066801079032873421179353602506638968403911043238222689142909242896013243969027959491524963702100825441538152919983797125513882031502554978350094646515612437998144299230867634525675526380744401713348109283467464055174496849933379676533701957036843877780355918551264202565942174186736664309241637181676227895311618270360069008745012682841001693610368081988105045678270226180699712046362573835080609897156385730074183648600687352678913967182514885211558189909207284201163141944903272433174240134117574608715594398083457776358721992058942719187443002755514008583571758423944944542473288641016014164301290384147625861632626423245940478913981501035334794417264373407479982697729991313478570568513874187823066862823456645650809720359632634394008305027964675420783970118955165789328649222020422202695966748965890657133765610027186538861686885439067604143800328685562586151603446237801703005501560861293393162836039823284259259858835309786921208978524953653542285213104443694978790979426394430912873734061386723822299718562632986902058020192946866997740591752505640878422500106258476043816956455440372342565509760953361624331190611050146100377664889738884071052195973934756621685835971854348598468326045403440402474392040800078781937575705819870621647193617706690066071420406997357080803279096012197929524485956993068816297621658921921063931803582847214743557488145682527251438049071844416946823423674568669297161702996408573965321026277341394330727760074959648334207154668401356167074680778050834163698636902538729621835896872833144628780193814546279910953497612212998086285496330169748609814688904965692880012185490844238412955440125106238769922659091900356618310286246318977164235203705018611084612791481890137703888102092583112623656104383257383127464947825447169350981937534102083317635222043056365937013509420411243027966840701445596051495915649151233934147454837392239242568402174619349426720413559992374935951833103360261608419083325404665875907061606490196253817408176089123762413140680621311849546902693194828995701030420857305499585960725398128405955347247577774577319579831112307278865108137809163377682670436598614178017791500023364802923956504184002215002148545326836785697195914160810546803205488117454009609946764365448008678118031949832610772919344750857419743629547208382585871394582898901804184652602838070339315959650531022791069887289929929376042603335476917147056614331906851610428170524810522956503244503114383015219745677836342741603421682853429790447242385878560098703068997734263495862801502920047319166240618378612416897797308511390454677429492705511646459560506657711820509001368605443465029223275182381053733030358102415864091467641680103837622527115710164648745179494070924619392349700533316533673463935946120537262560874230907431581224379795433382898649630188192809035752302683436520706106204940855185878276166208895430378494964564720318062975465994623859528226810560687664630899615309545061514226466710391651130624560013464844851055012575421233981339727190065988890651059274936578831967161116520202221429124161458168221833351386958378622418857310717012541949767660959857316077297235768721852306335898388272228316203163404320694894183090266831735265305147600357934250654707875688039618643197649827505631838217498308691489756215961904656144325843753842573012931459123813091487053504591306851882071579825037752311898621266201852226962064221614207834646333903243573900332093517190005016467390041893441836424213837681126745695204733765830879781649109580421135029592171790478189596827958692175002110491556320262773499603801828843679098921617897324463416625963899674354357270208834430723735078647232053555585818739323277039999393120462727550910027105883271640147223856034788700028944951655001401755777130547817221643961019474572100952921026287719521458958911109057146006397066926278985027265623920854166908875511104585440315455456584791960907780345010397727612419371148363283550042626277863736530209625617692743226808496718580224044865927582296096044481744950106794631617228992642107112559492905013299944822208002184177193061926783959461561155463971603789141118087214779491943509158876070239852698800745248303957585069954458522316891178668201094691947881395612631854484901606930671946196369852420514381150274061533072025523418186567175984152326306288153058189642088167903515209656223535726662385491853388935426738229611255613656462010447162517834553752789244984627247554543915372291342505649290588837837868534332035363978855615915116626649481492641053390152749532314306943329411343585757240886608677176489553443219004828602145224697703853950727865696336885642127321673539033743350956027500808290093534715007612143471530897036165645752889077210240831067338943108846848932604925104225079082183018015254323636086228166032648932637364037995852811105840175924800578480122452498820436549074496296411847653838463007966141134562382164717124634087391592514081935617055829160581969203948076125045539553904756190560747467425950987072366990290021385513664061683503645984451553631436249907671436786002153402709781346765534107822042113761280975875484768305512643436258988133645950449211665182940386247922774417339587088162811537951735230227115507308102181617226917340808958081521696764470142329959292189705461962852259435978339575555545013064028595324586911928910091177553189516701869218016065021951710307431554355025513193358378012575237467636130530162810856881897447652455785932372211698639327074049698616761808801966496705935799706852168210482565908121939453064512772036963790448400807018993746926387268225426920475808521420769978273703975623067516442239017341141908016515648321957188483087001380064890143044623028194718411170467754727641396688386544864784429724779733644118016468114996170685741800152463246288844985284830412491719953514719340683622419846467317359213882539522477437977436943103652036211014509545357020896862964683582598693435321848073675563934639369602305374438350066773899377513604489654650469664678572787172908945438696310922800327124109302344991912173820862981832623741226198791704910025748675536805448741907087143597191648192443870470297562923206382619489904197506028919460865018610439388859048745215516747060216131807928412176143772577524403555245468946849329270293942828793601808821157602699971490700709387160324209154664712979266179005209340022128814755226219743138116244228662118233825086076820804828480893724888298893953490593621607162750547966156224865144302097634549927755225469586289016544400233669149634298922767609170897457352980011458615795492956270785988044484284900986760860452624743916194850797261897958061342024964362415739441788037156776360293354525339363757413919002343319354869456969031589860258882232421487187636883866054568485321964498616867141084142305152388885981970876653228337384672322059202478926021235835768337660668575069468528134160166745829124289301939147077366711857289136176853509643271277906488940438108218467221635735767147444999424791830226942308856614679773520535837321013890615815334453203752528402225464538760836759941993897175847919564807211200938494982946879860640831877571440786937275492485713908421367139384050288814380717505319019054437161793195434928574693219905886095149917894177343372913096583812847852005335941519581545508341982950055743747557814979083762595200137721889355650576043050867946840509555992156274736828984545111792208682408588583353211949644656431008692279582522919801795596995179553080623657066729936568494654024971902801472739700356653716438198205851089008438101174338356699962668465993408429616988314227758506613305653206710112736981692751333589576936888204645389381984237284545518572341046832395257574750763807678038423755787121162932598901885369076903594027182317474606456461418225011813207739830335448096062591452326913310104257261388047240802306304383434210594104931419289385055366715117514205090661764844313698049842256251807972992989589240544274355548902397055139760122715565674450685163481816352461591754547660559083765534692093005173994904767225119894621165851438037192465997496245593081674132270141849506304517554408667260078424028285208623456046774050312436379262724109855615012432276719270739647487946687645653984385116476484136905704010273216891101076350807568640679600711376692246417795562729605530010514261976133152508706233361289112299653939729546955362092425012294337594443245781336038246575386488597732065991640878424266322259368374469596596474561988845512741579655837401001497965621222705424315808277846830598137635234710741733088238532118557299752846682408650885411380712874931671736823220725265540731120874933384065176963648207248030318021415695403337020296540107313153494045223369304109948110581185032773273142124789615252642512358916901618452669258375343354556278535272914626448497644144530970141040251573550895631708931192825544058826728275401087685114050495108203603139494470458856956829207979187084340183517099243070157120943549382209037201131094179191644136025466971473775252042288381799091228859318724027522414334272924265834953482085602922905983672817963488813816247465092831761062862552335268349122262765575739102905096082267599332263483624718978806354525555031808530379399254958249961518894700261754816162756884781287106405408200958869848585147034380426527960849082703898364258930766531878447885425547578595691587494257556296197027571646315879831325959603933085317823116276134213438194098809709620079308268348104741264969580214958538041287144800862482822458507222672552796292847468985414486419003305226588879942134974041138188651045224722332980916388708493781395990861564630350036433197176884165852742131505179227362574519978482056298162075798684499734486725395654451962062022254801503578791918836785064116917351075525350947464341029557361308441434967995885326532910783758966859756898218803672147508172762521860572306709196039552474544316486851910038480601682238026029649274838747088326464995947290516580498681989130646011130301947000200358068246036252797211883617163695125110803481536655597185195327914382758169766071981259604032751861373826890638384823731064756139679463589273120924347830379059356929406788243907424489088620124746950377198668462160198561264520474819974788396595012066040061302826363363495658544165465698136361229380138540277358748059745874171303682549847460303540457586829041250873375180299924213954941452342308031978368914336247495854979316252679511938852208108620813765792550904518769031164453453997221045162127188339049856949154174014551098276033286351793828787382492237404711944791865855957793015997004869621595832329325726152479328520482936089595703093485073150853271491589323039850068164843070614964696401846067311815844583490760442385735347873128500016398509534836577809657325824875097383899427156384353301806942821266448779702399763903205717230640812309389889772345963830155877927688928142762392165092301038413124851243889170721107514988073001730238174415680993457640796367099366015116925589593796693919526828860943673017631868655631857872490908667799805831422750706393962961418528194308419957143845575985860398433118614184587525444252132174433853763402836598544324002694508088175265585007729433972249972123665974184785663690336007790211939003114369597036153513146223015093167595466453926333842147383185091830224036210441601769372654399011125124148505439096736367107865898246756453301195823035205942494074235386243748429080197784009159098868351610063888452679325150946980511683998180890452256796877982631386023574459062139591298885264754774099302059693428334547833480138938005875028570060472290936575956912313406852801932314696306221918234447732397752623107281492163868619087115388756583787592395141816429509179306147397051289097481021274142716215675435306167964107663264555764901420219059737002452303506798440407758675973861362468885841084962295728859539187292973224598384193350566825761566603405459401901029469465036678908776814946484619248800925701038667977916470409382783065810700329086177035198108442556400649173451115530562984862538892523713707911377752578807038945510020740786207953980070928964408786166361562849721015561550265630175962632410906449174114194612547062291904713224321763867730593306347055759903797783613221171555445717591551820432924054816027253797256914293658694708338688741535470465930997862455314189388784561531117056049871255061104312874923522020952115706486373330359395895229757046898353701717560868548817324036876121022831119248004115376638961425861413156304312913442977100186471387207260851585806876263346220193273383598869473142220056921915034769838683274833276898317121448537322022109997973711435478389048898552915222216610965157358022089899832311720783132887310092191883810815859999748218898061232768607748093865876567471047458923180696301326130735123224371071033949348618212182498693417426101330942120703278848820633736145054927132694475063455328702818966186031432954017393612080615744754144843312591857239870053961222834550640489420171340871692792319554285968408467825876129116806241740569666349845241749065922733529335231959438051014054105503517619442553714091769019691612105070245174053921903260520913600902762080283529012864533444491814995397148696889759351442630605178298926514968866112556536529253357770675753916821965310422595270761530156476819952935143264453067133208551769506734965824259006687929299234305320262690236974193866283252588134613353509204989955574124531379964579014323888233584690938796579333907815785361062296691660659780100334097143026544433168654565264440983092614455461211986919090723713819636421153563384011329540303368161681089009682549195462605051399217723925580218941387832689243475509778397844337433391051576225369088078175958109648381106892384616197805827228510249459442158007501772559539431502907670074883770552966288724011324098933163761211326406296345569791389975786873119924678250670546261776161207385466573522912986942666735625592313145811293583015096052080385903361966645629784668386755849750446068317418832815292558832413120411704976838827775122319033087664582852167924074709184858770462940275324463292895677904876516113973747599410487403312751775076333093665553777173857120053861385491001422026369259286718464508599518657765066707030280867039969867760604437560139154130142322202580970549088365251472545608149488692600772796458347833021260322007694657098288246775463650493495015652968940951475747679586527635281726696514673396596900933163433387344567730386484829649447679547033891163288080360211327199727165992226874855366088621627820983028407724907824398886585204007429166613563045863938770348999750160338942093936948802347667993913647666851316385830485216731471460031564687425757197443997935568528571618228085253222651166928473476597958572136262842451066188691559418309689484371387901278215050268274044725197800819578436934810194564191253411846647453299835802058261930976371763756319332941376753097909067130182162968463288511494932377795806972038988445495641649252605765441045805999223519935233460630567711164578640260833555837204813764483833525563056656157052031906718347343477180602727440834797212005578271254214353185149914158708317502096962324879695083971351947301134763098049834673966341380986567923049450199941271765243800176310675190933751880003879851312864769853801481177020693802282668680961734351084684679629588196087162589905026230196935575230401483409008981406614520564181748418493913151012340482469319983602144469058753731416587984022386119994328490238928576788054696937815696185888199402713449922167814379349729151313831465625894628976469774671507907835623192154700147416077656656587453454217459782301606574704789885309156538897888233669793593482541370872880509720717773430065348273676193230507605407027777569653843815041822511839923557140383240916790316354810908345884805831273751494697164120808860927197651700099871219109747020644312172393782292876818065893189426866637175791439317620375021900915848365321463354364525417112298938724789666994360391054898338644140807074338404463738693740592173014309636305844036457929554456931959795324109807778324828719592907899870198210526171936618180910513320067169182758801321066015593539361098794590934279403453563008256995196615666530875441919847232197010824581631033678510713775520308938180953206600759997587463506536420236975735008417280603878622849386056828045357782118232221543383582808796263508655583325007281451048998149019196503739120646500930037724008707651601452133269988825133881346010478281431232508308704621445681327330274537947226101495331262308805681975639611950759862760956985209053673794409415568037940927380797944582492904397334763502403620757040546743874931650126476371470975335029666122117376874644677796417937643578418339049874385708724084954801262481753875080389674481628157754797289850268453473567140689301674422720600025985363495165494281943444379828732359942442399365815722930048472747448618607486486026098205161348728346812735289557395413916097075722981930270700704829151144667761466469849740886081007719390334568084184181187751637373332833370533410634480179794590575462302776975295611875601989017895027372860515371381230206380471396427192063583821479944043611561601179487087961749601696540365034759570187076318172940242553359540422402010416004806277294842544216493926372519877194214069045948909470395872322586629914722581699359831955402078815075532800673063870891322303736882802072749779161932617705338583116252016943563299053827284302032038711781655727586883429110957933857345697732423591687523836454136190295981209270463929352837632838453300666170896714234163866471413503249640005909747399644522776681946002809224312729865045530452202916909401711234088273689935736636983198380197284881260992572892527850359868417322039640438210071006492443059274373185920583276928272785700305136621070604297003822210318174638090037642443185884219654401879013399614879288290825596315221205382682791827996874041892065925692605211658001838795968302962448003444524958557223684400017649647008137490786932218414038857391491685957065638149135880230289982690017335779753854005226002620692554900855435987782508520109611649319360410722386220105394741954888684149127558160434101295683761093607366793193387038624125794144427227315103972147677939483293912537879183993342361752645031342904118078762658738513693127165875331636246720616562704165084005755330533291693473006095101272714034940875801320440698781569159881663963462311046515872515055700570414040681766425612376267943034961052249677714266700793487768162543019928607516416516289515628294402508288244379442841152493932036841352652364802595033948661961325240814025906157315527911512540091215491578859675068499006441131998929165334474790037974423501801586691509253846106775890172315776031502235867973902061812599522168645412699128368137294460160540221831730282642658231201831682708808091171770461793590534920011585802306629948781145858612476639576930093838425201461080536097052109648940642984030263538222576621548264081314325074354504428736204059903173138706365289415837551656713189902581052299948621966306944010350624303815267958116231951780374236158904243404681571648156239239138764810539372701250165173035052371140554017097237526762203590102985862257824312262767585939074180184031233494993765212790719380730809595934289517337365234204929589450850635904873503572792593569527205616527256116775735607826045552210142809588534547188489791381354216275751924596900392487289313075100636362310461684526222852213039446668925019683457095882058026030010755685228077264863800475281396274289368259185453438812421188445048548092579096735379373659579216299583879956648092752159344412901920808714200868675543357262090057836314975644058855086931710110726896337906307718912424117079734233844080858871455917582241531725186453779143430947148232432786335243052269239476137252310391258824226682853431280676686014512861751320980434321678298139965721940962819399827226142893360403568212568523661143593681214085257754865419802560805195619141986570917369315826351460629883473718650998555649579849870701599425317093299187002802646415248134846692186370428060359654508776299137144560622979880258608168039678660350411235774275401608524560921979803848617978372776255395628447800191617668209436968643306541827416810872512475723360945823705822941568757690985192643377891415186718018179769677512218449420661322460671988225914130966426424984552119670220419694457104388692720088121737565147878662438032524615666455030211814679881954290410397409104460910670572518800763432002068980791680482800729060581907779278268729193138658488596891439979485225889097952506166181744457058826109639194036775773154692445248166347346408750747940028236905972874048093129003770466333981526722104277451548566147754940639519134049978446124057813183889736726569777505717888011682055968415870972539522752041280597052440763461527068344006955990867630371403577592409916046340498368571345449716951525278382469699649821255106521211161120024460633103260039125411054853963584648381284765975234229929792285476850232688851380144011156667958280231588012418247658811077140321980417455018461605972942078624443828168775065283556832152414568877541493796514977625478722364011958248257212321977939392921922719353740404727602132020041628029676283060435963976481486580436173783075193187780843030600391356306880559022279911340740559196539707208594225394052485296470035932390350250984138339929587080693209030646251500863558136893293272359434438101785615455595945856100566038461944039431220590556257617356834517128749943657841868323706816862362358559297144803135128747733699754271578490658260630461712281773274447712889919358356845621853775379158257204927035707555216163482864258400785096353781566513364777235075994311470316106122031633140349268381874983127430909655248357486780893021090006883267528390852616899494257468573486987603623280844706346451397776239108526713018819610492042222067791175357936750825729057654889501416772727968522354703205610880214988102711425136049904083520209915201382689005147820416600197586488162282870084619177701458767692303105954233596771960063633018776354760588969520913729881279542968546054965455237932509996975502914333086863494095218788293451215795061445241190537248792875987878068772418622444714019584121349549099581488925994550832681661296999099540292493311059282123185018946511493741868708466329499084113465560620841659231049028446844898999332748754085011038364394280378432235600346595068111312329840156788128393994733531083703217788846766159825630358048342518487487117978818683193265796848637818792840961919090684743894855132713127090867708422286886810419899112172291337340052214712314978906877733273506552403882281559657589359985176877157195530121559309064107035765616919842870316457792247352222436076034114181492694298707611642737266490558418858826492339273464384373939804773474434598380652101529956677869682726421154012810522059414126010382494289207664635490665592028138972676684180001811069664764070365087942947806584130082032201951448497198413668442641820885858950625904252380931897805318025664104538018768009797920994431041351704694345885337758527641688516054894847654867657577955374880623000176715105135646765722123263757048183553015355939179973881367515931015870090235127786624822287061568422397617828095032861941658990044596569959406424072394960440893950774502176613701575480565607313266994107253632499968782513746126735656653444127827870004437142250257017969507507097541729738682871548350939351219312708539444328128517909870348574109054806211192285588611194147271597894449818010699824774617963001544976260596938470766681854311483974014045806796720117191736325993342857877158006182378021536640222031669402460216287390101040644036268265057339727860206288328698709542151414183640761621170600345747769769573903873846075977935386842138605654580506569019484019920065259367315570334781206497274883734043158571262577694412892289348600470552662163333480773171270039988197811883256092759329596883563183304890655740472578417737494163164070728844193680298073542025088853165155415780598336943962877773192477156297841523703996603076021656824557627757652171001612169892971031215773442702185263885413085103032802057362548786325520620065059360530765201391681819263232979565977022611821948420547589392866381618227541387364877278328636611642468359376976397094934196455545513923989297407055358190408506905239281608752971921203202500512185532744224300173731052453805034408699636495108385715312751335201043742227266323481682286487551839424208959099112216158297505485785608307966480189978722880315037774387446817354776401988023483393800074630026466876541381663456790471556561464953676467711809491861972485497575391263180640200697031910825937106039230618933526309113899978042999292561780139896616328934744117321102391294646878717332036375355847925616433050624186694456913775733638864044313920503829824307301904649315947238439336970569514265125852008907641746166048766884575902020403622091827207613864334358436176403533134257661349663692993172021197368333396465749981685196171855868308640168106739388873508174860546153134327657241360169121105935025570913137486869401763080842652787126135401084247158417839717735659203720419390418439978905930118375071724926985570722321582194772222235421034157924967993642391737938748509079417812058126706925377623394856388757124611369760762631432490390741528640176851403016477897481443432450554903772957656563272951314141029465639887910635059900810263851048471399778986329254309943414418596155181978673851252755544139537367864568734532394665242211161398017383785256979907631580276136281550949067344469101370326791385165152874961415591830798432683803176354474758274128888511722397193830750718902658493029153802080583540414117339037042222084741335820669108238353734535863171276898174686385661263963904775442944310694536392274754121972399603008358751099634606967047275873148950405608433780044360433659228608636869160986841458435410945837116653928745270269769857931765573521566225980750077412605898629726245002043177714252582622167027867226005266356161292293453844824046509965006996917933197918160904393085761966800178259621142862855140415390685563621413819385186198561406591981554055189986130302420856802054222500901639509792300614017093639258409125769629032318854906878143616606531237777314053907905151203997938760956191618068314347082778719714602732820543909773703460187012638019022286902728578244290497589285062555107716840347959333683078312251007025770528640592891928000768589366273300827481671748451909531078092814813381027633597964214794965189417387855757085779645619443375258593391084756074985674035918396282173315389112482739771761155511175556166485375817312299025595292851596828890090857315346051243025331932070537954263169539492755996638829306455714723079022013501057772531128307376698819784277578634478376793077732786080044643305291704451888930251538008416428295723077271546641493288709258636027567857594672104531478134792955749749196070353895791853054697899967847512492516076335053587588298940827104798006009312446296938085338637514635763503731335329320048658487552534941307095976986363319089422509389636253189407919414855959531918053424578616856280001511647738401412117001632122028199140477760353212080845834750266392621811958126090196141782363170882086595534170632491548393889201306564175947452751389013810149617464106442074201954439152193628116684192828267192390634888614800675968066153364499457823747379196281999310702751458300183932216729756269206030880627312246900932058363001376841532598036235306970784453031511510022387257368197730198536300258828203537990625352746054693776851681527528748178011943241098734064392300933237520460450157166251214638621757211539727622056812167960018509191364897678831134018599009756256921607135243894403043552881300079125955505260477219212784295027628909187322363385980744028326178410993063647663081062455567630230335630106856788051328713324866434540958259547532978068620229365025184938504494430029634950390640408861386705108706622006108115485020347148113141106012575783182528938745436573700117460465620580472937001330003280839809237703900852067195438781422689870565438024662415799752057488895996389242371460796872302506547515294096439144119332097558088614479985843921931788927320052297995143795677732831058911923175765077267751779293408635935750765045250630354667119781649746267516798136066596958521996798385495726651907324911658949289890812100298041087498049886803652899332817253537058406495194076647928029081752959216681147391089356173324088592693572928330171186950946376282289198468042553866531963717615344416152160615240140619157756345940207143108056398258657216163724820288793070512307318743416787164751232569190758729875944852830147877772741660187579963271210209540972870656833468499236247907178430539972081269148825475210883184892331259237474147939625782966820651675925406451795180547694373431661051022250504371464595049751800743202689974479608513996628771855955611145566657986625069772960559518392668955864121428624014552963596738906546008284482843741341550698878107401622223757094693049873035291265903365923414029314922744358555690236574193310935137646535015717816648591183975452709592213082859162645159488211838577067515570586566554173153404795505098658126956967831172763143175887718488122211822373654116976715209655266837786606934114079614763573375808648678053554084526723546730420660704662008628419913862025801970723587915809426493366175367806017080039344771426251036984718149066519421662679835766558861269315862887908100709461095987263359290885063127024370062079384133458575820738343544566579331522049819565215781590161764325084188214441018952496955527704198494503950079824069470905558553893524523107769596837867985405861324225213374113525609094649713365067990470776638259708157295520790085780389660786574140989587979585443177627110514117772145874753564952417625922137388619138373474120004896998686828164517789532062857344254951416792311257892502213037821503305486987727801823992395754757873471928210699892736835393504318738621654119981974869016628213506412211588523893442347632311101070764271828243358121968691977038629859154243133374902786216773686469608041546947059835394049320912029344529514497663322739467309280663247958542892136627836570793443637138436619877589658554498045332598655630004321912545870544705514062700142704262468770610217964563608383916705640056857397944239243198133964683548638798830206881357881120107070813835176549715573189352154258269211789938074682704776896625772813795692379618473083729124193645491370721426576275863308324002654120450286543800842123339262035881813135426523454089449837484825198990801696473264198632687142132173992422655678596481838649079243009192930768341372032396882746527076707024882606604885082532513593539518122421774988762518724714374416506562150049601077207644262150905596530487578813755859197625772596523529771069639614746062821647977306620904000336291491690852626145884933651510039550173556491105079663519616399067520629778688018294205359067785163575619541108562319573564248199766781008860875593709133794341843718322868166730847504520346942284833373522844601479073119903696936249377292809134958213531470355340295385344279032857148047153354053800094206858310093072587257819277750155914508500350874200304269185404589336237427550085013432811025805039589138567854938737986650961666061341695708206185928191296022055876265197118711173068083783618998411710590076959761300508606445227092463011261979849070284844347806757144121150273076402346464977152394408787445000799180576589239153382430702042142036578972131578723294917489270139287969992084583092227776601876468160695925949186448099713956735351616834035615305444535278127646275635104866085697118153111437655671362739433576566680696725296003765856487721070948679171069973238009891655364943701506957265601780361457440407214128491209039111202125092562402509606167444846323992091078023082129174879350081286466414991890513734640205851939081803793171045430441216152756672341194767343698519626372570230748215263872618304806222400731237948947130022644048985965571185290756819610814304993824596927104553815139613124996016760353080686443766259788512465320178115742308228987486737656840944575560327647317256779316492058822560908264695031200807472244140857458663147042976594361489507832020613605162207770287305233386912970248682845097277548497849752210507204496050216780085599924442430527433022008900316219974210281780266317425258196364981657131193580826707866391526602495735279180943304600503627769798176033854819552101825184819396289168629715750701767474639184875763631759156214193110228118482680414757525478434418945698138522955857863820065065070718277202321456257549395167822770572793822680948588728869822327852791599784842221469399632953053162362188862971862521482259079704366735869484324821938071347643322316247964388842358003890779549929819152528902259250902047762747638313689650360533700150816669297729236328185590044477702905760629255877550940003460989189851348872302483465472728585886568354759660284715799021600248322616270102558660528304552578649101213460511952860910014053539368802670728175415637178891339530504073740451018292800724672727681714729413285034856842050489795789891942335943705500603960967040035566918130044724588022646076097380542772111375485235923876767285324739524197663310970311821867305600620321771332530729781941587761294247040388951115331810934414998786957521275471873830341367933118544873790269432282533798290968295985497400987003805045099800045637110020458583979985891318951852271864432676926094894545985637598986471150356912025613038940097283900144109934383580527168743513242840906549276563618121739747329554721828204470788551866372048237695794854984239271178292029341429076415215578402704944428549310037231054312868938172938276729046560632856397792286352122290413481623147849060615852423015592807612508746018254334167089228004663023840759949078941960637409949485906938718922845679758852194316834194126697012794077494442905477951116984276584248790771888183644161932252044592969822468374845252430716655698118813783958076499821436250549683052765418652191893411630763888115499841823922958527990306927833610926959316387861300010596986283720279849152910359559720948211124636494569094307953030252352152213851128605371820569198637205179385255891532745508801854829159889934781890339988199708105476383797692447007131078135834578605283425343706521181717444470851219425729166833871040932003729613234249675398641321668375183674190251333062403426055316295943425918370203923298643956814668473612791648746670067448256696500479163678125798215646855754931477480524398222713081057855976199182366674960140217776686312224270942377381615874957623706757897537547171340038708785016931345172069908147094335333889647901612949603843779680024596981061895255748477819181532527206244848552879598051810266330221884723344387990998993642023566849799395974372252214963908036736901968454815013038976102827116520506417330964582791848797860982203589437443595467472926682075717267710457290052620639917974972245095157952692815709079414479416046973818023571588279569090240825465286714527213542072586586444241194358621299446419903695230323332201605521721739964753621569439192202912738767403567962870589778193167424524587073462736999632484133399987591452965755816474680801117788829508993658763018710188281681764471835055465540250352416946841743355804956069756897616837183417020619631451408676691644106693000948762492273488944324713094943858856008860784955711472100369317732681835708389559134310987000055541196316364164258369250189355381024456060121807421816630877168434705436788620345808383463309800870789783459888356551241269448321425430795849580154137051096287533936871104881655512560879583248866332193808870909921847469170864716452020267617845027555638145464232300062277201472141094650972714321887267718000979564916167624445885918109079439055086415111412250627494660238078579980280209210772078911400547134311181957610970544201240480539722135375472562212558783630701662520518421029006764145972822689027174345664651239868098727335759566692268419517056779959655167312229506744169015452690127576952286447150029298949090821020842960060941234811546020255473704836601541695650880909291223948434101435709088837521087758241908505694959827712643015097263562444122440802937330338786707158695871777233965277843767840718139123761294068131650942651835598558472746423296638428570238558803383750551812304016964568592917279583234234509476442256268603867171807329889931541154724796818233799709614038252875325448185106991036161367180328397002593422071831287861135802019841890503880105382958169194708952816634219097396456876463654026142301969900506992116080015925070661872096218240439525991065477565992278422873059579913033110762144621948439116657388830330874754997094938499367872106899649860042621558784021431414642082084752125094414069996589454047267217440532090684419800335903190622929999438289178131088183195631212394961166102424542715273081336604951063552394317798519519047645780969788408718682839205998299116055108935663561181495809509140133421643828816652166048305379819261609126680942614531392425063762705006316489034930950426132234411340102871201215980791197964989403627871361987355832868441486903439020853815896059663495903861940965372350161727911220051922777381912416632370234413983191629296015830322965305668485878016648663116475429319383045308296565268575000959860322157850173699838721864852999147107392363749042219903201160175017118909909795846429675061051902440187394437325937297483762183662153690605707599641904419980672334239891657732974019949167164841028113261137189891404602841369008269159406048338009825672078535524093481918101624093874916116158206420988446851496691543784312168239749268160548928127092853905396760635908287067656748880110395113611987493457827149955207436724352824494517892560851100461574004696273106505738694136058163772910934333058501287797195842720502008985829420474202824082097330321812629152518767246055759955703014532802132820634189837012257930202604844052440427097184765997361640170833841445164069180472339628869797499401931038472056322493628109728281274321536656635822141211561063750793814713470131723478807698963629479437954868985195917005905715952279973247160968765820599207483338361985923016760667683457561995211780877383961374666101173647945210332895496267725559155568588613420874031617220874634551935835322587485780685079252601006132204980417485014660176789173665758823775286801133778097790096578513509943032314239711891492577603550191866570320923066009530456846009395053561746067928160442956460536565750757529559609272149311449128104876063758294813254238181880985584786237609209700080631887182363888369501060196526945166592802951968147524239223382005149249709065588174006559888775965503782058616584725719658118792150036508501871649632896870812075769032203694313670644819664316335901518459084414340897009901495309595385367336292538353545861995877760440889559828187769518919813291108857093940490948496534203038208989778067010257866285656707187003378677204210887470103531464843288273222636521943622351303570003455703328549439425320786244645619160453918500283927761271595074397550281592349183658779890437354587766715500409179461286059169814982066802678291239122343823289053256611196221002522405257076682858901222084942600807574465516934532559707089434660318531137924749254538605806846940582495572308566092841153174711107932247750391035790727720439207708847535750068732354755414975091513003048729980753830704562449696055587964885459393194887868099930661868190804392061667620279732154881003126319112095641907206571730801331145460942401428082357084065300317488448524683900126160498510290361277589960731449373888615922580507213965585071195481292618704024112306697116248011375841525097855954355014218116262048522228411208445571021694035984141032399336319322937210955859228408790146305836070984029207777134330973165104536849516473276327931021490622053137680793295253123835017737467302643817054123130096842790740706655201433506068246573213444108210474191516353840080951965974626846120270586236644589540992334709023631354132785539936925981227402925992108550351651546796047784057660210823329181685197665647575695905362919702566501274404294315998733886670872673024232818041705615478290597018868540612768695206354870268040214743565754892620033365118705743533707423376723148385163098255920557783856786020801354145322910276470425904791079092573618079317447791799474866978080946307933930874964302214068362834182478571095054865809519459886269761120226906187770043803225999427214167037652746895712219410940558810509539870509585390030764672101506171248593195425031821363343664256893793120275278672122970040862976175911299194805302507959341230370810901656796155106718100771710832596709842434735742260203981293165650531417928111044157248138854603663328379315432515481556718784430512593768996868794475221047081008566185866689362095808674187146374609367151422775134237976801592592982743777972646710745611604592697630169251974915694961795426523728936105483764707047125225021225756910569587509411829572982344706451684121187960144559097239669547183385460575154217785668818269929617416891799069925306067034049867202895945196630861929099055647334882998699684882610604952111830573463135184132400301343250286057143090641681146303572263716502400384494119374812001383472196189967342319170694917394744162849796345616384545807498768316223015137260229620213478948482214160216021415976949018269645541710996093308599520403922812100198058657078392994988728220107101728231909937731927179363286467068923283417970169043875137773778311526415430242227515617593590283076341069065147617002953381602896014982587059393214587442624479012450838554777014888032203285787292185271501547341422766556143306774624872312380172843839933823830519006612831955903355275819306334568643330405346212687983091519608452919386166817322499855607156065995276904358980388092895127922834547890843770947261079548805167277097027221543874041791784349951069781525928449560788960437573469778060080686491180012919363120369950733977188976062594542738448469709935429426628072193426275082225699362472325636450600691584108630313094442397968471688999849105636970517545093240036571124229564478853178808054174079131996539414753572874336183877312262046430110366715711797693775023072474578910682208892690782427853604802807629403613454407231916475563657713836868467906281424269068715118101371638321086157140351703989704036552294506247446325217722899990413584733499491961152608244468520748458901928049712936235278400581267536395123119250845830490399516356607682956584943113915104519541570323860105509764291846677566842646401143211468228162165686534050899472386313539936256324093273735160015302537570534573271469296967438125467936937327203921709353648651446713611347490578968874116706197133902844737546632853813363015234150241724208261491655009735326648940405807048174721229600142147500325160334894639697941779677712757912585822377864092093822557574012183118036423870359444223588592176540508293144457995460294922772322819679259233865146364091164105034987409325359141278012021366592726958206191515206832691059736134238761600382204505296727410662571791006814523793553121747597651978525142606018553003295810819148774342878527244656677197665312041559285677625466471873563530156788266615107146673230108401347564163875398680603852930086389156727923481031757664261642986216959793170642843564088285795521762574610494721710091392538884263732251623201092130204991187809268577824042098575603883694120241647459980371805752145915686965479010782686035356062951986562074894387607166438570364330125083399580687698075800651963396655376173874708774290932697807635132308393680145335291424513805625657701816658856039850534490854377558132746786730995652641290934667980575189906032479089388146916784096480009647824380452832121046810328689628251707606871751069771177471837216098655982814004146947321056221474142079291508417122137425459753055784440711561014469650329958657924322669528930321905377331795046901830269328087368166136915767449732608077623685393071334923074616701019310499373808988607340023043413213717398269890552245974071281625630000397066488019188352515381142157131768519864513885645867708394024383862020061648838953130177284277813809078900671810160965680742377224375470699583142863205671144732912831025942159769978185712251672487111909006005092420924379962490252312823285301879874633281753569571437790856039093937946271786175240875757442986183922935729005598235684705093604044468049854395336333364636605310710140464420558566256235993067852492122452198422109494652889305686725974639717530113433416585604063940938396686196137151435639605825389897947958771997875520916092071248819818761369370933983570486396210650289433311603708804764042076383733726231867390416132787123742032360914238587452661684073061567462517612638855266993374175667869744731526589891578597580249751403705618713940787519478973677169708120682586797624930657090633456800648173545670623015400077815952517217403272341989761726276952330448755426700312271683792333547590874496621268088413971596057051013405533673765636514995745854742517328323763208930172038285612065098827690542733688128346126893465200082460237871210650986425348508145904287765761402744028877592132233519316881630825249434061254206384032256872579227787966260051917172542810823759040547353764402445786150400994382652628576408420599167746998549101935698695982933312418836121603509015311921681122190840033462665145110000552750346793648930303870114090733837186570858109430264532559792471451650983930262069048395284237298695797705261677554699735911130906893242778267984706810853997017021517635821661760272991664471784522235602334647977775326654678595536428859213561318467657123392788591297686539248258594803936809328912095504584497463129767860483964540663639541305340124932862889479857677492232261483187158282835375533421636931707762999021125195223023824441729177045141980046711522444894236060937209314744942128500813094328813437824447663504584676819804038521616401927559843494869696618714670102901438976513671100087350677785068360499407013544478799537304428946312906799348281520837676590010164165220217705711668736078693121545802990440598587780780034943879660217429153917073772598760180365423406500494308815761933043764222864957820631575208520135929522722764933685673592819847861071096611856028118689811224354444748882577620998946553318888766427687735732140547715713980019271973478359778889424550676002370218133450897869427249162225019826995135818942968641698223394724855259406283605062425180005708819992852825417438084821771654970531185832422960699864664123191926786835253166948568611575589216888896810705838343385366866725758115182132769418005848204875257828441903630665367515373866678709092604285979765000093092327034845683089628030986939832220335476950846634671283685419588789011000766062628543200245755398820732114495425343556114834824184131537427815697919151072644301748038460297382414698497378990264911230292145920115079206814266268657867161024711664222364118675641091459010404226590236931033126798066790166488652273109562219738025885933554622502424393148655545808600884900760097750225203972678071040534867837834381134432794758738438989576133723927314056009959789050386048876904860385138283979864215746087517420419750649150452692014561419766925503205485952593331135390285480949641686540628721192043086426874567200915802786467797638750737966347163773066484540134106492189016228461536168248941251602084582028718460194485968555907996583622288377347523659963775301662240035137460877154327646607967614055254891064436927867922844064265720001990076445202375099136123128473718742619106311709441926751793447569449338361836012813123752594719960696891638003890791789755572309512835396964143343640308171981408792960007532403655556767743248414529605882854589843970564345663942713291587126861678223677953478698987450497073585371707932077826363170120606992736167560965576565682425946337147072339860717288731608832072486286758129838686990608161503623781272902907077528172468480158217632754108255355335179181450373716350142257829371971393884011310143255186863163400398614092998294426869364396895013671047386577506204092745298368914981109572976236568157569279977193479486277078358027990656855768057601000337134144582008855242692844473274656439713363912694746805934407031796170756029266100286276001595019731310216662825066359434306398761485244955216717895422801516077587390613771580255564111352837935019222748944595332158415531712170385551424846837373385069972323371004957839590821581530731244392177089917096796041513403445737273039433158361866238061801716453925730293222464523441747741868638977083285998204478869764452826064801014994419415540892631752490285461594029431895030540611347835565119946076612163544440394179925279884317453841187182480789229379912501999273917292705609481218608074122091689828161872465496628790884690900965869585268467321362398122446089126903714928589497268473833585695002984760898189988937698193715905030078688139862982136103846953569644492867571956059466098275160327762957561161490258926894366146397275043211700716648852269868074276089281964253890144066807093449069786752473568851094151485185520193342539866799967133685097068824880803568650473744005577876061376822118957137831526147024365669772295025923045657643303058769841255943592490448438424052058150326315773726057160472978045185571088468593025562752265650451654770849704616090078492500245337861625788636606198589876841526580652477201526239301660886700571207266531564851172578577000612550050331493862858265665446726059997305596712787605954834685720605677406567323384732683384081804189383176120114021771891759214890238083262353534488970949741526192871044525619595518328051789561647220068952570638571551241487417978971690847212914217322641899079215625879531251009506883785838927154529044534691153543500245384438089181318132535936297283860164186272958128006822484889979889684853294246370011208074691200554225626380673889653596377792726444778697597565034635738447017907867956137108618421206611941670546416820173221488221121050619196284047745393163723819116104239831735685034730314295935282727976103051913208119657747165921605672882053436263375487981556816612645623351753488981204834466133214819379545137066690769494307670892131789145816938871912424741081668544426947438605245087650318999246256140639226461719497435590144935867840727082229892885563903281851480753238299458867134972589527595781707953895340581767896780709148661716250179463201188782969439377922411302797260951354983463402473381158666985253526470998791972049973758044266122285383681722500728031038503842332915393729020704026695789599439465404925300002173492726272440335598587178183739957993221198684080007662357850197760137672388931437334816004564169379496359475545558937552551580943329207078479628140390945984006267136793754929014366004960679117356456289039645210024741335802504953349760610413454884106938638654977353866148003292920038954138949870245841506941192997086307567712576490223862160587590609983095060936149989494189537084089328897819736780933375391807952309831042367234226733037475208323748815338417782139186150225271418102739539918058595820520326955650648264456602291562192522506134618248505974661918683654308964216323549841595960218255461456831922001982482086243876591273585917718965158318524404507542192332527623372887685534355253004530949593143117610601059990695000080703554903017296722212408135769794811754630880703094569796183626965178197071375067903676864143049605632802530927610084017929101718736321819957125979586367831579273479831288208510487426745239227594850368438445406900471007097118414893096478027981777975132441788040787042412651575554960136599260155637546084291936002788481482024642006353836431249320035531776496784903632514151083932641971535732170718273124132995915091277415173131439699046287616576107604044485273531564114752335221846299164495310846348546255531164346824971407324654816564311398997452774909648609235866299756286734110864179025773399366660034174617692550600010311408760231586646207531053694958803188605440189824386876461353841472159444455847621655380985104245313200661483246507004441751413225484607135040821660649816750704068093809624449663531489026714629296979247389259129702887754315894046707428528472154200239596656292805402270756295585016755510333741337040799714966662791624203715013727448768214680254918785699268353553663388495059003379500659635607414775757118404802524665971437165100884277223538753542533317587537401072566921261548405541021012971822691383102768184850706913516408496124957866152565859517749916952306704052497229723101426513257273971610196711171810456592683083682220622905380822536356410434575816563211590954426476914271852725091566572824655552716212316914628974558629804794925022952504706037711971594644415105566509514005235319864207978581293374164229938759554685115134283417659659024836535518171468592969149504142917922100810696405533896623812994406647964782672973239695615289808015604522841045184009672764839759098560168972823674232116073023569727037502403253222395957531512958513651187661686579061803054146471076218921642269038582426220558735810453369941629396008496591261418192967843227789013531375587354702651114411695465545130705118737771137525247287273351413893272690503411467297324552655388546885650241748156555216005191870884407930013314389135698374023842283348866057975196376863010265019107891492776914986021660026180994821161465100293850564487289280782294753878704779995187485176550433468050570523373199438567141884258878207086676423344457213875699424164635761178343032022748927449239389403226413967257135072724405121177095849531604532742390658162906326121278816122689860120039320671706945788259500083305455098629464714890687711113886884695409913591962103188666001808627741748526555624387912956783359047394252256871313885249619813759421619261293805658083284041561646145627652026754770973836557288756661078460862386325054221583587107983240056092373106963653109345041469117494585430668943785858022964081237177374841597786682872729027743900775242774584932985544636337429153939740642155347851003916441942182975549191926330289636674895583184532530883783126901246519417092072986570545449166517900922567583395298622445089448956906722788829178759224549183228488202569524831260622844340573861883857546793929833400856423657532789218598658158657344521189325923772644138199544328747290873238677384513855645792681901002431822427657587996400640859625937056962094850115982126597988624202573867326354910603559273494008761124717781808698124632392988323948073599159907621819918289018225893172712464766207400122498851547292171485171021421427366982165808890126928729109708949178111730053199819856048395071580607240867218204571929381452228697258902338090349927215642626444562885673448564252654456690938845719924332000189328928812244995223123944704193147109852436360392541748523571941303929945921805284581549424439506472618653689771408058820247154025203955303844378139597385909940385921902949510060837754792628755879868850607038866257902424816663902198553526611869561061492452604066280914268810312605726429464121494466614412281780803913662767035203311203427015417573004810485970328583959726109753255987380522486331963364960377030143897743971433773087105051147718496509818714545700616662796119993792991624194682415709092861530018487375468580178596505847744712887883655806005476367429063399503146848982709665266686663653891959662654287575130652958356556907336991805559132241090995377006579367623998679567448907873913107990133556431344553374064246156658066303493942983526286781286279408125777040487571850459654249150493218935821149540380789090043120703421098225425036740214140361806899825335104336242446986711175226845159402579413856173500598895736487568955291433245462214889093935971128919378775550590566232231406348228252669568674532647124448063860660905884565042958169485478147071434150063498230604261475956126129166094523403668407696000799269115702341060630574425539901323701234951868199440071071638395085115122958946486970016614147256804369405651503580261428110226723836279093350727278171768155818876680612658050999447333344470945299419060362070356714074412095373581528282370769260365655905476809906182025054562084003200813772595756556466219225047630747843384004051340851056742013686343789125934621537418769188067986089278493004538607150805869604897321201665689326431311336348918478938680935912182897134496654822660022578020934087897465262448494064538742132363876513602703686743101728477077855293986975873794880100883802474841707850435952230509925557294302081760531125326852583392970175736665280464042312928765165461320064278441456550803118721354034525699248398349703590939472662613397547790129310244452021757290931535817890738691111388014678478774553094136917904302578763854147836121606910691516352502344156727028106275367674969270725026752076944749409526852495880602462074676430690509235223722260088032784241514664260982799763405040007882569466304803442075273237923372343110075575155038749203710991469493625930450186744712719358759440459825476384368318099075317448477149695345963580719609534999575441351000514390505585124945727375383465450033868288105786035573428211561513664038123693884729823158342094258344177780136509240169491280757883432117145196671019385849917202757318732076541197976531176447572231576985500438761130440206510209642068894690390944149275518056080785506324547867463885938935987125812156682510027896580920249238425076334658673872390406134633334052693736957974872494861898089646037996597579525300044795510408508831469113603427517246938724287849664129132962777105950703415544195924127140238900537903629417083263984228406406545082097524262828985702905560591994767861651711326740318637559751433453789298932307961935798117110290431208986384038128828735714624324794798113508562108740016765848002423083238382641039796487061826820055392754000429049410134087324085925543185430478598348442758063981582664238902630176661474446555811866585317341726810584997711456254651847161479111563516544380056952525079849280260059797657818422051396908622799635649610013137941426895992637178016371062841172335049441256272578773810768828999463870217464425665272261965616503475432733420812031950540358290673585722790051709695271982396584378720394711352694819993422416495939046861219044518016530809392191695895540666386482438559261716519103798480372250744434702728373474491914726190659061711711441181238029310379245060584121335962276563254261260535195094438097266353719959599924936354036884966112609496492323412780987142436039540404992599952873355272303110974075944960012467464284681836815448166808770961318682751629807706461024298810313521732932170557386522118656859816793587637395583902648939573092969009199868696559713367797281052542953344470331284205134054040843589704935552216302106938398441862827422346609422175848212884826577342479698756421116535571661307968669966089490483156782553145245635232573944797468101065635134500266570492970822871737213905409559966222292253307952544824849850276808049372439796866519782126181583726043529085102625202447817385495692471198536347780730115710189285111607457084128168526500687978139519985418699720060940508524269034766708070262010281210756629721453924497177751076780558482790772699407983470178334946131019340233375609617986757669514361508375395930085513269100228421015735533973961511910322546857498518551871511933463866817341267436392542176685073678329101576439870169711010784669148265438739191469861017960868544260785396466551907932984898056976448307512167359364575782619526535170637495469283887705596777075301166864504791666639326486399325125893970896047027032454334581412637003240755930428083807391628985003590677420114485876551054556420989609541849553428474440108544331866565311029369083134539088856779184349598372302387108109706096548006775194177241425676540512009999233143022076386874596761326193715792949014493280560524409661088868411542783370720417331536239810625374957659178496159353783226083600095367120373059576335171941060160313331739225798891751506350541925206951806196757599446433099103284885767717078643364878457093726404527849723821126052780133490209591386458993776705729483443382951159252436716229202545631003610143184985495045741964705357398310578381122907263905073868135093792339916350382449518859012913398064243541383823947706015245704290867502257768756077931814481037786079768894200745763164824702090021258050782418724051581029822218513086636888930933782963209346601386193421754439001078097754097394187328556123016300517950741577933168149109360150421363368771809728882201951159410820656657461284278906022732992783797200338198938722323007325027091804389515023316397413883129791254770164305810844489739702824315957319834483154527415602472403785743886136599579777760296024603452169131322107492609711317199771589775836060929681995390955466280157426637800836122141716861825770459863712731159717143659738774200152977366918271419779207052779337770839373522433198911199761598861762959834667494917862549775168932827685279493255436545044246171358985331559410731493762235347759013058639322407755615445250797225342714109658174735497799376535865516014289750665843905863693445930505934340271519912753501511546868296398782397753757025395139474485268716535961823270652097576463268646421644215995985925449151221226353890852818831445597643787466718656397192778790234421960840285738584747536811944655597222205712004247682453233588716694591884515760495509901325345844091196101968993817497491587086148314729730733736587679979287714938851335828542892271972357075491617319323651257704273038679271988463925814039903129521124745807776474297095623846181865919443586599316212639233906550100377423370871276427700667342325014186311305887275590065002302762887499760370400976692351471318763324941132820202413494458531958347384201695607285777603929658544084995344267115729003496489538280943105806942355943865767418711591065544429972350587068172080440409041784966875411041052073208432253225160981106666268103414855073588108153915193806107579809926411470968476240704047560272182316199871851125285334229843122384500117680759231829909763460239273020817032269451044189099508218352322387297455289459565149898858180455486138867850835838976232104217746943518401759617011830097587390101599610846745559166839229595744182518137386158216802599120733667823468834747482110473070085324026664303667960735615369477435205785409571384216293828979656815883194802771006488188932516327319178596575503869382585039304277991892640617326322093906195906795594987502290896329417094270842091404428157300117223306787235589822895606628222386423125218655320469007319827984439927722136698321362674474100978646894530904171482600824150356058775055100660627643810907782975208656248008643831862792156708340028904939909928071522969247848603877040860980476618705640491647016857729766109908453539239733903275671021525341203556649950877197084967196018912679483248935931977981881152968262614320966255183785818711922570286403906702132212607708872554690812574956712701813035199919762016289696492083252887214510675906240754308881041815486310391740036531906980149207105268464779748175251966228630923118173383603788710266582112172873298043913463538311396312674065643518935180881076347841187798972340593426527508177351437210253390878016575717111432816088587613614823669618837664125271250838184818057811140992933213528275778366711096985447690086847097607307250664647385089262195382569601077224621283754224887494913313751297738154466898510024601535151772676200369674596150161819702844388257470002451046328030917631259028904346986282942438509766410764581243157254747259235599148311294103128691277460302593000369520237152537887867801962661370207523266000947537637527194963397140787698249812530418756584312352357387353735416084437622907941114889047199287508609576914125897955938203772301499140960008424086224495493417630064089841020238211735754833445751852723738746665297449813770549651523844795687517118246785973435262751145800072106688758678282163889291470883057636127904714027687362928628201330949951104679501995647406580574463576767186511502855333425553118992836061703885736318478771490875004316535961266484037543253498388983987491557935657845694102317969601822977735215911530438607864602193281309400509530638344083892438343815920174031431614048432301864550697046084677226247528359009897729100176808353815426907989361479252749367415961490635922073373393764974675108937091439710145055597574514976675773030036200860225439715631672795323254237853760319462169371793602700541876601796907870362370014653024851085491726006081897520183838057956610640328878036785631517497922652077110894005452762381473137641176476963683676182761188228930733337550024979373653583816153384917987117865068975903451301268098576990618584526256302856419624673863685310311325053291176894470653304906162775894621489342923860560518146206516569870153118406508488995453510538722490177067315612473405572160785758719211801881915103602871616111351874100876783047703502864982067099614055842914015272236622719367169235153624429700497618786387357856491136926088603195278536874735233163962917667242984898807371961776358614758525403743316243345813202240274484981568785944998349627910463399708058887205782835378412827019236723989337316369334076178811781451398243785838341617017363225041783619227075757867809481178995074316315666231499571600344218983975821851970529511544775265590016350099110486044545891299512016932878818719558963142033582154599885761878914874606066952171527068906760113003170439459835580735235545385133106196399188697803790201971504353924769372831707349224458275698017424847121147961426681365637509833329433322673666143103608424661864578115764877112244985635941198277694825364880803835769004751692728933588519840512441118081222055309655677140372139064482655470595141452793345015970227894241208017535838442476280455231859561317921886252482006482291180251465057778039023038955807954964726921680719991282107016332531531599037805762674097263196959982092016337261179492046807129078748186574845486123152581183176802134149862504615337862024419412851877992231774615066228404735620327581720763736121714261416631093711382022235275119488062838067613622197870427334428271225653615340644194604901757883158408719464924798156943256826118558240460776018578805346248119794130784419833657608288630259139817875413810861763963714258173014248522507444676876117561761964408575994159577828707852188599057523722328920827497519575669036345398608441140468029504837320050888961042739102803450439510531037255720461632589222340554151051544328703570232148678747247437453559793675488101151182661943674120587205033067571280652249915766550862336477024539205459623658820381505697233770427651865958124585665700785709793983558516645084812171689224882585950443742543712752038103681778826424944170633031410215067323296126662246281244587854889859849761786599863557393068005707044263416376493532653759784807674786099459276427201053739579415352841612253897967164649415461589242874885288777755606887278543608344282161870471891399939267271304436529538036019654571181729556818270571170803209355967481826439441126704024640181306411096742657604614779613151160671985450226993079775612635142431455067201027812327678940611067741207553744732013107461676801309278650471719540231895556784698374931471097459299966079832173361927387322409766765936957888981944146071506384004708045464998396576093666328745293343021755728909700974246202403624965837783193505831046187340314017550827085087063518839161770821600719826287803447206438051708377083770652992944512984858471099503755614441379357769276340423871413043994016367687064422284096736614269300938456623046898607663266521348580883196148060431537521589606098013225837110117124026338358376336438785402992257660721125486315472120692051883769119696057900845868375590784550618292512408298778155099296388403689487936826674010124562989835903288480689792794753562275575426627367417724366765564822256199655657271270956477757358787214528651386731284633704571284341201412728959392433546528535022771108055708147944155608759205031994371278315480134933647774439370602888151178641078546604706349850060693090268942895990358090990333295187339655317316976996989214218523567235749808431729964898624413288061989368355504009933757354051958611498801276475873673983442548491532690521654037486970529655106700097133442431194857875879928893587471602411279172389396190119400075160580856547068291450065754607081675098892116446052871318748839818516828083245622702926242411059863209123873146103496792946480747786906926760174407461175636675503446387757034754320649828742807693531964915809842188011535355489963750946648837804458073973492672309938559369962815828557335058010273214570025938684223552966240252628203767007743946657760580304978537152328695089915062187522594031373992644155310610094629728249990535469513501013390509686021536571894273257111127228290283434109056171806802684781467230523122596103216037106546012036910775908168575992629408904201832952531267784369763869746639752111290488866932075231600694775459003045600391879174207602244986752401379189475563388558355250664686741771417235093740946564309863732063631114813798997758614887897944135308110632029090748323579398889155817952983865864541585092993597487347346476326226508779770478069106656886621689180403479970964162083254384123567951198700323056968769106473448770333965480330056081623319062018409338854720804696850373265058534660354456348211958330577961269052787938299794489134881672560639078365726079011812667302668780391630879793645644941036745546028941109264479161770606084683011204946164141063421425175605017561569265712686264141875901110152936033466800769915476404852132980800683439748619367271874469561315142600001117509044308466347825492274739765669363559852718566488235071507246513181648895461706159683136077327932041446178458889926157509686163889182739955592478755442457182616520877522012479846892202116243111745704037880391164714167242955279176421304780826835843879145365284908668586200068816689459934561448857811500216846820957281936825503130906439765167242010685327046249066543763302205424497791760409559817868807269261752679209526314489703678402594031726891591250213115391030146391492046200353555234570710871566096389015256095628307178957298612070919049559862545845871332972729560204424292519867835065372318929141069532590539615949156615287569836919620371083979311658685105098710002387767835529387911427650433043793386318528345225213705529914884492600156927459771938288172121037745839269580046556363218562299945348417195582789209002282216294665227125733273723681536718102033996832108237174949523808720258265769607339112217611194707933035862546390807382813714961656570603633168174776818334862901759048085826892607716464358496090880076463381653103340860235344669525243410980752082419936159246560116726832923955066469509797272784914717000741777241071281536479382978152872242471032826367456187703333554879628673951633668967107315716482418126575029691202714336222867915416539206549439981236922233857573156255937677234717697168428008121304771776022840974223563368736736833668448197394255442946865826832548026815733309485736823498024546016270353880161104279931177774418508936559564794836216510593493210723942219318908534137923384169328860580579396570205576061451099621839473476775866168996921649406991416049846337629715460412982649135260508961216610719467424195807977862517620126752108493312978443999785909819353189106509213363206786488949432974723117248795001583819035957036217201001968589116519318510130372483314234252935636933258663404654298270326511098604291558449448713144410417425397343706319240061220460359549569048964170914865426245718583033268503240299343170721034283500081246472788311943859961155323591543354675445917314600988747121135714002539164837926039234328103824837319405566534702667232548004931809654621846053296108843415442347055064406439438641970081364253914822102357347737211595901637126486866395105059820623411725525861484192191369719402990828361543961113689811971411501380635273998751793238574173768864329631843768703941215108595689693957577502967383540408977761032537474232266998458005148880640949161099790657406381463409428378191124621807196184791773498049363958414744719640352552415743321388149009342237897271458946750498309816375297092658858840644761752248979167037501425990741500725939455940070683276645105448630629416752838612277131846867355302879507325985809366283060560780763963573260679766079978320388867824113830051260550200905696632425569616690458171484662309599629596773393165595807013698409383160429507067107504883655676315606849259507082714267428197704194988708421257927948629388442484226380658615994766634131421429044014766058476532853824842705719302675220429139887765150766267334261730155743694672541188044302524234614102135961730949415611430256593581740199615953883352078159779476117578572124597000964154184218491128058100949368665357798002766675626903611851144537902762858464675674278070494075658858137917415929265903142820474004514987148050751742308077807503551018724909803993987628109478255201391563250326697784609213889745420615750886171094876237617634578213715781879921183810728322925589800702547497100405125743292319714240558316760344220820085184337168775780231493034984347903466202591668429499531152637891947107970058219833293885396275323699409995806574235469008065001108977103170252376871122938034872403339624368658681996371556505961493486941184994409586598106337558160904694249915532018053268533280683753199446355218177025302861299447217594463828921045303550723547800159566692138805559187143165319997557756638280149522983711583780666417568564446990643788018221645866646139640258024946057976090846971730065987755632232890596486376913057708101085629824212755462880445875202130507687633724428608921284681358373734143337605038988590138176584443147126086732724425277748771982512930391545841262601879799949009213037054807059905515498408354000810074805215173207039234924178489811708362429381919215824599187408305505493801196743489391021305964909723880992684704153798244577842534479740564284710375370235851359370771578623659141798294912694494483645028110041329780854184671821058687024987448864385386154823943985215710588133589411260525856258174476718949873947839829175770777582266578279144204943363407710661286363683393438676171896178882783627257904588544492538314304186727452126501417564299623735920825361006998909761502560278381326928909023263213344185678746036627705046364992991326789115688921614002456028033335990862965057257717912529734486326229495123588299004526176531975744129959270784618267388588518017669170109754626366943126959910637050209316055840490426585047309329974140649548061626563033938446805608654498342607744406733238711925297704555829086631787163497585662595647024836462569011865653954658055939297209065662274482944500736930869661562717278397207089575846270017850036018215182415205869070734140279982448575458075048263092843991029736192149686810897264618882307259069011097748226419663584548637202337023940150980651734508487676961411057314133071148941765805665376291578032117677248505205600244560082144119038402908892630089165223294767033567428564145587786022515545168950067932227365836637502541561791310273205847487500036238993007259720854438513258092121494462137638670807723120131698376895824601739240846906803057576826744365982031375975031802303983884588277585600383034205986623708894352524871596402282412137983879640056503495308066444679973126403736364342887383742303015326980054021788970515492825341962337068916137549162306280489194819780955123085937494603063063875327589253475820188662035446735019184586772260871751484884427510559930180049933001967794820305143236778371573401475707245070231127184309171401182264919574087916237653974354851695673389566941515497229011387294610413788830960030242008783286273654530038277656887565620991589703613054519213621411468958530048015016213845485521465102273867518540444052911869818105790035286306690361139924326177409073636335330837648938405191254461689632246599201114750329911388054664184419942939762143866648532324192693769227863804864267869405696722928094187940872880575702882279448004455456389186834913768231800924623431515520366135085772036034829752200301582271692547475279170386055288180486444008545195166952726765439604176185950220729295268257842398703784062552350160079629375889700454820261065881711226325680157426274325747604602053174868111681562123459674727825789423413574344125247808449395592093218056807877373802628021224734591933012901823386687226942404213699163004981472255995995903576940471532010845807120411355657614167924228874590321780653730709851404625292211144018413299477263262401063722985160648856975959966071837587158780196485686545494826009685053626315256350733637280585902116499743819124788151277410098525094304670238911742569250722356867008719443839775507519004462613733897993003101749855174559603108016062959822859429356169513173930950680747393227309942462290771319178592160118340468718872994890310365564025855853949757622591476857112351860280072508132883797676201716131219605057234007482656389090799273238563418929814646446013151096385067623591608693379150048477949314636761723408007852080536629861998650391750515530751881648606535933037916024744796873912406535995605170981420819739263542527760134760460336699787574720355285478666206048155206047520648440229148852999835867503578015896080259919973175626965162395598224298149186145236570558347003743665771326619179825339535055077184006806256874182348637206467249447442420216718084115010403424739315463700462626308153456700291271278222507510606103605863662910901021323536128979555578319673572578099265713942115544190221780157430687711352188394338477847796986157634143744025009315542560569056982455924897556635857391396204390953957126389467282163439516866237625867752388854060573706512462806922802970032437821037591873793444427314693602595339635468490486584919428262289327468190604905273781185893286483220782551291751896499732738462956320642480077436990647441064212918779190037884468882430068139365031879672897054435412241578851897948279335733824629597486537825636269180813920949771064712995918888409261772977946188077742887154009103716841803687496967701464616893127894994502670601531779406245408411277817872604275357242716007554992456174382841708180186196029339849663289388204421997905835659627532019275216730809819363905662047912382057244347261932692396001638595567746972584730992920135455738621650569752731543785518015033695057590016717270970993309459668142186299920589671524131146260786243712342701275468431050888099882272023504517238850405545362579222777609831232692279914760888595096305277878646290684635114962615673109958546979091264371092294402345238196982199984049462076455820788296535374446145501556816848563713911057225833500585828919576044099696711254516744874695396421332169097333231899840693827877514939283761679219537165905247963290009112078063031544829045340309370111245222783663500852259712465007096943675203574815253643213910756958209412162024854027509500680053246802728358217060885952357219365603739952888590460526195830001217575734635897488595278704076312037843604297418773160331281137410796343256479936170612116377399810126763576321987854746742962268248759512497290341507862040868787870324186129381479748262668617814076562249116468036856935558174656884850550443953831390046870810148672605159907857402759723345679309060335707612478275804560486998033393640291797544700427705271327601391733289983679977718287134194833995307956438455242204754593321808255511107263362933589887278101559850817385040957252443177088382603140607985420619450238456284809883670224384724148349044320403920828812674519574639744883971970368238933200114519251146002273739904099262486936163612958091099170463610313191099924022896865153073137337938110501980223625900985056780730035055737250074148922102225410612516331070588918515000297382621105848978724257614734497195227122023271253139255313759803590454714472138107448454037093538956783478703263998093377490765347804192008121917523590162089652541321702461577516041168701240110268184881450680277863014968996326513256886998165285789393399904368269403927267826449982308430566030113126389232489411247310124296059991224941350839852187530395816830580688896401441805248930802904475765142947723317541205011321004960594502109311756496641597240999484464854208031637154927859444327540826519193847025383759201081829025797878575975142408369356958078993605518965133455763708163979296692873216443587466113198774523476199882608711231516102813923811606275056959614198524062120390371726734873733032850427296706509213245316751654277068946711672013393807873132002573834066936438733788995449551844343037917478418253267023086194961193452708211492883433691332040619808528106704717118970059957986442201829693205571276564424637292576154795436866390018809139733177407935606197232437881389926620345545016590041711198397878499878593652548553901388042488908863785636220673284499854657647840677681092445642994401860083441885807244385761426726243536218122306139540653462282083767247913941821988143838254381714788076092101850275841144151461931131642509508692983847679264583195729844304588962751197776986342902876061295982877137242295456533203954547382143418888457207316822327958002950410094399727018263933705218188638656333445865707790088176453079287942776501932068145331810310731644251211103655225256687860492831736507451594878092701417869932881584519513187887577560064640084728884722124109035351760290732295687550582865134689932325554764299128336131840582291120232656981809656400241118929529517889352915411389980321180700024243907421586374323312408430814821114303389101905750642794320509992711908343882800246745690324507201468199176764429537533818706853477814900266005237965677013614912340213693518006920193699353947297378280720883860575318524488959878639154073219053147514649911422050908057924976844266831410362084672801396672814551624728854329981270194896451416740530515241391528505367683187859730360601783914221543901669748554598283802891807056995494326150069095612842980672273946992064501120960578856742958993031503499626372821179673859812813628250279630120314490905625658943330950064277306549612673976478132565374779116910264871269700630016674859836562928836812055173608004385563334868575184728266557930282050079915105504128298356040564589413928273725832462644536087996032210042625068009123052314958013428888664484319488133822161256507903230814180576640509489745376344039366916633319796151081635607822629810648823355869965931854282104186375929923876860502088170136847732647348629657759311688412377495365265464166778132626647680273935079853432493306379813110155692880680927535255425326656712808673858972688326841723338052362281086202607365450580750551891599041123182769389712519040013264885162270991612222114775336391589132775841921542075693969082285532061708798790117115054126190284075758307274808937587664047357052255736613907030534341307883501570664214734274326021159114740255584639182298025651611701420803836700420524446041437279981106214788671785731648106749419726735320699500534106250624897701830853164374960168942460016414428533476191538362747584438408729288058860589151854409540384965382613440123186316500687614901712232159844380399731207621414656447433421563372426451250726193532272114872013824402243475372543501510884203800628981985209385781033657185082747209255805026567110055884384313035579069189308029660656252929206513766385781513976193407524102680624502580672751826795829872616196038652737644963699836684059809692464784618438999649793330582126272353454238023227673925486202858053236860069860850172645783510851284454685601769983765259582726529894688974685435910552980868471268185342528839512053079049422262946864433902312853277755571980147164083857223350208637073008225576492301991495594290561322212524247179628715555164978299722003369159573614946293119287083312409425779466662516661527018267129753745475831206815948910373033501717971015885377549219261105993020158018659596045256282363053513914369875161652541534155745788969514567858488564501578685489913357001868119301625288940488804310207406984240467338981578755489171743222631165553865875965479367022535660516609037899871528400513060103147017447588585679840179694940715243166339770081131006996126892723017848438585822686708999873558585313316277733843237733128020993237283872418743918032929431300920751752430405208612722341751611258151752557463330145198442518239840480510093469805795139711550680235539311587602510374636629608242847263300050300488381697948551414493077853795332086792748525376380824822627883224233032869751944178928471674188749522317143662106894099870388194078297611910661697772842751640796366416356808010876972739507302738525571295471774942854618450413020302994642544298696025149884848465881750514793322197996421911450958175886119878699140068505627967812298897830943434637953080939515245299034589063105596018913526907450458562043004879576334438954419992773974317408077480948975344671348303003369083357843343915615613121105550933334754990025988838563530036701002843859029225490521269687261718271759476788612585996893608478536892060282846100800275922404418713676576357100356218249941277473002658949386661724430851947190172154749016684136780451558818363049537003283534031591585051463917454962890538475169767178554734688192770672812429588031237701351266346853091415286214110410453196296176828858633218428630121162731321636804594388596527955102881000950976674501180923727495190814031078086438362908927957030016906639141996352697326538448925749260185470490590961447054241947579204135498969254332116697895205764802618740043045508996103428057352142759286781916359268278885945610195449450644343173527777166828097340568805605475422878495370590437325809130236167102109354407434982257639624445277245901567405751219174747120377901816160836814878236347508373850932197207950694184504638670172005591863683368009908874271452812225125656780153522069454691852387048427543537336124683977557328573818329396746876027848670844131530526220877314347748347351388353110434887729744021592910168095405609977202499797082065944766976397494738335827492616589554841502347996686366052065961462043247238809069308708279531421285476778295779837189976196775501487724815730029071479031998879958790136198707952520569867507787281087046261364155772666004589350634569579300872502887881429604292736350398447881267332906700886656796752567409264981644943044922276943377776867348227186159418016998132466343532933167880764958457060945406448215112384566101112419145268652494994068069231190481585499045125529750510412225696056925620062951535290461628130441988080050775313004616351727115231490029822683237974704549596135409898174020160525598828499409134795893375088393063246274796379937613958257514508968488752682039439740893392409815236846205744711303675246022846592155010128115836764065853304121657070803870560103200574087836670561345932394153648452454877531638106931349275012675094436602786540820625787472602075120909058702202999385840392917005209194489290028821424607049885606179277882269757462167111640097507555925458581878174860642965348791182471253541764497657694766780177441389434575260132594802629549804756444031712968809800831136185177934027955314188524632657657948395128537404666358493335485451917653586025863423725638708035668470769292524087001893634841226416526915307453651247995222170670293298500996806175918862829187928946715802760514228610863601015765383520853135374518182312260345360511251411215630553371203449398775656911817435057504338406977599420769787343621623676442683161901359261402296705918245463641239270637372225534106549859918309390574310238153127371864649618467759083444676784023269211445288120381305794143737197407463799765023197978444374662765951593596676827401643242906237933362292932004224627540313693677526486092587834684708991453890080687754943330179644205782587566612002107811763856481125569467895694232174516483124941539698539366085265189921858796214421885973959202587957397290836963143831634953059110772533694489505385273078908954620892123640489892369093664104971224058286501101771831804509091456438710379162426957698939474093825770255731741287597275224959329038607168993480339312175524032484939249806144338431538946016781956403717317263070706421185730546388369667493820202716375024975061181161580145236206844070077948803168769099468197148563129510561939375258265982630663644041156916251567140252489211170106143154233546581098260178769770237786235675965216987046361700535201883489032828523342501446008466939089985354319744016799914693302232491521840127122377605048688657725387615718376061465738785677013698160405961470512267257454732729508119762137792132132850533983818501118936380070970520639768907965143220694579961471372166550395521297447191782525070463292692639404984502295624212012782577105206707474048360122761678738740778948874543079306812113565713615931265377336908618347924810418012240447144492695476391499774384900568105401663498596130648263357156371809323348589430000037822896552982802411627350419384956939418631283193895555370016965188271226813025806250138034163025966889328380715377501752435746381295788879662177865564859445718732112773820194877600821046107661500336955294876589003602079586182082049887997375794832404424163185610320132317630232101735868026498269909719018263880465750347313315898034224799055641406791456985605349723184550224582203229496309924699987508876959930064635374020299864686705133962042100436254614761116879594226796848523980608223050456749561985480068078450134084199445103879219229526467275374596451391869127591078097156686060274186078033103004196589108364855533610383561414592198621362344954377100762495313378080090014812933296219187732319777379786669754696940603822924304525287526233047071327434684923882799539214901353682458570178076798380830615577789541085848617715002357917878116335284795114101650575447055936346340519701807618181673698707280720976763343021022969334831449000547582463451414540107022366778962866353763537488418274382832845902102643832661968680859989262316566091670795798477664439624192256165822901565541440395858470079785539177084103859613079203596806091923055795858807649393515518337405721355134386798450572713047676843588828769545271671685933916649446019099466661015647180113193607295680073056560404161111452665467834551335579427362812693620071593052384667355291123750726523008122912935707269205820848140538974350215134866444448459074906867191216604428811596940424413205617800741602377783934649856919340659810269769298194914136297592478620073452025439890769100814741033161291238469642177062110346126470899521337433512499602551179946749745019659088620303849097974382861399077019782289749410099387552854050275357137465931003781843957343239073285739591085341935564606655541691967463438129921919770550358994817500190572746467878400556709082204687054245497327642275801573708798411082120384053752694685497544885116998938911790919893885794368195365581171625226502649198520808192566421447960310233495295618793076578707476675451281302785362656131303812781433238542566983553496722757634680569406460225521182889301992317426048810143052375591670545044588465726743771093180928064066074109562278229389925871637459652734219177960691627903956365672674685606085481359720289351232406929222638447806261135541226921918731072565974382123659135668765788989564200331075670346790726127658741914158227023063926239063971703853115261583362416550485256955557211516329855502615521745141138433947446969467085637009325763822964931675915800876132108721300404216089524379732488353132833246736828306574212160702031480155695787836030838437569018587499828601330268412166483531233529916633077439441582889253491689699545687984094598321465249475060592117973188035030204416180060947997607076464139183244686191126755346466120353118840825240247734469140375271826149266960277858362852884869774373294260027434528524646929732437985014756655519846929692902799591647823856693696621333216339987247428851642159396443550347264350237866628229957620183850616980895032581930592136717904770105244535772252419818348272659125661075378517734917636822224711886093785565674796760099756262977980411864656687521896321968091271048002587841554274018059251517790598305930372878434384397338183368054114788740736305311452847824578474921619658082873386932239404292450084554661710441648582770396970659348236356801792988595391315736684754629399687857688364131614487871619418104711486997784781977693714078744315831781123468895949426683104259568422434519678508506595185329719670008680969788698380112970746799044245481955252106278100703822100249314197813864795158407837969019625785515180025590237663757349063209554980670609613118383609683335105739736337832920026831077723844508781266794469527099186153394081328358181119718109627132930402404921947370307386242975953849858019977786775423120573646068859222125802403336687559922115148257811217693942340206818811366241404117957123772477913139118021722674612320733950135766991590230023979645460726640048321441778053553823797606700021925317986300310714847980083161880259150578882687513240413276978083693664144080579688948204788475471697377070175452569769698587579143969693806940834311737492930202708915844513110886685132348166085352565471995282230336160638096212680939206408237887668535571066820654134994557635020038972563250042334787320386499196288848251162894430524308334390608974326537140804636742201314976352558347164136614444619039427164326318226966656259992694022573213071385489006965135816312262590043471304339230383897590709762346116696497883307928089366426528213559128434476748208770189197567724968250381938337112074626277483973684721097878771608386250818755454342837336634360888916906933314133229387675375903196847733948544806834814930280333631153818515047608824431410597693833471044695743256167640890280191632703443482130129442237284262074785466469407636281620601525015817483079073256456211637890396996503859169773208405362848311479002893455987715724586128341450437479543954875044915125292400009560133903717815906994550017584743190742326130182062188996357493168823538796133099194692263003746578003410659759698278521677363205789878361028359771314523189347654383506975724186617116511504726651457038802754194973100060701593670159337075100923059135710190554007043599021948614443662724909808393716556385915238510089963484335746225180441604294063729612770801155033209497426163549264874202422794847551202015598572864294766942671396562595866817186598529926596025647660566625035814222545699898652156577308806656818205784423152156446817022167592341769280301530980336340356417244543336661303574277047914165138445592129988289349027431687966447209945031754893519750580589500467856918286302842879374096785822346094290478586770075637592081444840055860723641012513499982957098810358635742224992571485810881091251271036466727708945235750852831038680101617771086025125839138135879650495896312711533306408897838831534927334949862748541968497954983298069227937293671985159668578575095019990726304813583804960571893355740384936951912193689538322219962801752457294050020667124240037880488755254757366873202017849015655772842329452074912037859516130055418011939032647427663875660990518842539849931432618387732312177659058019119211892637506622098540166331361894656102324169801225600927415426170410302209228995316055870443038414553092287870677848000949745336679795384041306223752430088435699521356231516907402261058555187380967412913341742484593073298209087936590457384066069492952396962979620568979230862280804015868059098041833195561861943628822282122692885437696763808445256273864593657999262683649830370144223822071076277658687670816915874248388174732215148328906714172111801463556500754081925299376373826109690782661072214632732476323068217007680668225307487564300044855264746474928678232114671891050192104706634422137155031800421015308171164556900617517819170666911057591780551247368252992066406147127616530692809989270556858466765159396346655063971639544488186698805479902274051884624454224914209103316224081995857250041808864709981544014858577563609755694400983873480461873329736593233246179945193549938498063969369340564801878860738055132034624632714646893836263931898692004914020103428228549353679660158917559227543324914663889954441540583320394726140977602247854783892023527177896856571784928799624834731248115481986615105484253105166290930614366749570530553797514671255695816709495954431509908907227473348709260804692782636807959737691216703345190929557788393819534775112788109533240213177279020563932548936838823664918732961308223859877386293643406496262029961150634270364703703712239313345439636818950669734545187149874709268761651939045842057661059032364524274141881569634323045646317854606176784657714200180485261026684861695688201769339952173314250421612232273192868138395951017342267072338454832288745405950220886830595891413905312540564941415543130337099864743956822723944749130229669763033743436666793283597928895768130085136861867082734306909898398000448786478122489109602160998185815271698842110105834328341991963427201729544589552168530715485101787295727011605246773707355813754355170533769435951321940343405598507461390938134005251525909000875605828944135018313438951990414544285486992396558753457379335056829981446881666626028378149807940406791486402891519641092896993704373950973830687312438814838703668351299890827105781968912057272414230006044299977725262057564352028269756543025391815620930071762332630911122567415444403263481979802224758633502356628430486392553935506370002060734748087106124140968862234826165942815225744936894458885847038823581731258620981822531227317552399450030474986234909284720506453447429781034047152326861896037676223793761252169134943173604771866658435395692044379373594396867322165445078001220471932414696197717357493210796765374783483473403960661900718002510749176798751367301270404863619599078051216464205946930636703966535229574820748537559152583784334469717256143199407464092990301719788726423663610227376000122046991334239087332944037145380232083223825841481675748769875430402500486189416245873289590104742397464048307753971789719008805871098267386187563813686100137782494220188981289317463345483999475366707073128785086307179033265652362452874518600900073915392930664298040376888457858510022336790160248464458193646583574615495909956383733990861759526056883518263552998949819825202142199432732647933002171271648949246955088827900147854800522611303127884155552241623664227914799544234931619584896704948858654064518709539082828278902645803722877725608217481517708525911425043522876508759155623752654959834025018731842730437071267722277238911548001132722973875746361514314619465356959843948429457093699694304231959827816545585388336292486403573039433914107765564960518689176959814752425219258552078991113123016640110343454023137111442503237022574166011575494783172648947723519307310454483589483048177790742305051049347771161056945352517513817565248908510452642529482475643402183675083558556680785133339206747584116380878102228088298265164610224740461056154074896801505934620990209189666285790857997170844244813952074556636286231710560034156125149465755148219867396996939277760137937564311146962673418917929960941825624265405546688324780115863420014008076977373299145702448090524429344218518919699173690107477836290830749563759749749047322379982191964960939220816076425511697336124341591180219687283947612902030606361129873005943512412405314496756228515385369107236150236636873028646798553135502360785643677333961213527302628040801830375729204836413317819218651616173944197727863031432965318666253343916324154796154029127836970121567416270019056054377074465916592711740742590135795218966495856744458567202062252882323530401999582662063851304385471093098226447062097403653572645527020136513476651074597967748251569777535877148917402574884893175837723608453146848502879843269122982102358870331373504209213126822243334218329955909644732222872319003418622949727931324657377128356411072463494437694985349459515802711161667384192722756884792248271062857005781217186068099358818252516589043102395738191990135439283282511983942869064680475400428944862609908820071970963352419740282281226189361729582846183887185715650041486263618059948089259474876398001682356385931999177383065232519366223805193982390839041007190817370539716701701588019220277694293966796124583257987977209976257102249459984106076261762388535282419365801455502740296209521516150442598402879897504236821428636747918112019560851431474521596707500005019311526039531148482117263027854480814162163303124810274350401123198433920771425479419335049121234220691684537387788336362983279373074675664929219375552419786373717748493041045341145910838816045063308308920683143891380201713911570055789297730704510436063084983641540731731681733147075939365025600977621455961520586707873645999590108022288629334207840754965365350622627637496554053918766286779082469422024488571183412919078775026235568411309154985699530094570540886840600000515692916029073817384902668989228304982567888435683031033081512380583776992758698655672818648280693038062359280254792323498800115619978275851024359362979071460542939582792692733752776001140250897764218614821824288084380640148410866162416911210865848034183170059932920033405481508248862871649721073319783201070881742562391000136477879329489374988363020594059825940824261260131099407947893484500084874698211719471186983764911490149117228489133707477409644708856622481181340179170898368450967234293250492818771878046814797870724054551656136139828949472288266668627577162488993943746647435612463591102722097974085613684724156045936859595616909449610915402323707241523374492555837235328048445041716946048030045970273120395845906355041228021480216063731437499344987541835596987742474666051592372592194844956902395033380307972659122952087714733255447227837673547504751478018758016571490706803097800359351253873130068906070595001395457854021028229135719320470574499148551028810482817216159940206419085196935584627676638382102061729938552287275663323685146101156294097249537221687503556433095438789514593826973224295324657975399783620699475481262518827534699652025648979602186598528294242369017826428721588004867230554965632862280882322343391620202617556973498366600403981065602607659350187457511231194833110015105962323522198898149800679564281226296267625212432426770123931629711631484719292637227183258101883397958489240653816584734774106481274777665571789577351618832080943119988944699843728397166438272875964102065851534991670934090642013561244200594613436454694301866775320851827243892599361940150299247373269111305528396131262851493772303135358190604064620766848550288318023453614352297335438504280589002239749942388022178754128085530591367235643675474996189075312347519176414496501470087703281386711133273313163877064025883178558853460208053670372360275292993009588446987481824426092441233680710896989719630631975314943770443048679506053544904868589798158300241614308181929837974667104081826783558959569540362420444029990549514126564932543860528471946970509021577016369361762800575675718862212301536704305879393072854656323756149780290507247743632768354670131901183460951044774947717744262692641629957669879446815423857688245170811019593979265018447025608485822499223435226004576087959418059460965057059258676447973297904115552215186711102253075712634636201106169565994679236666888102163997718085947684231438884970799946491592785778185312433600375289863089352272904084346003736388538983085530346119659415903032403236795052176029198692379342442585127984840834849676148751664406444647833538318736329052546741820473808947821491258646290179187586578524033794922483869079805983178350106915300557600780145448179000609555078571345809098692019269083125873684961277444368414061033128340862843009407366652220748004983558145231302163235265467816899591957134486661591207645534384691503823457221428047129664686644746949452126793099595925070664041279864006343283370747958410839458005534220592944981197253965215826302753572699998669170874995148610187013836930308832058516866541690550670297660747180531220909341994169647364255491440222538690303656657535023708529632925293478904793281818307619660227612499159376444445431448002411046028483611687184610510820236731937440024518774872342235272848711092579334702227568418395175226655852688584598980796256421399002017397830858485214089656430446216397960897253033295168710575695600282077003017524624660885140137704288478966814623709045773677233775029584564399496452433421179361450253440768023811187122246917349512443772282030365597593999470635425175871572221451561184990134014240349443626284373531570998342079563659962593194375838098488382651777208207474078973700492146559372265566150341243681947478531907623028381221522314553236312375039088577050917356001923090489643604291331620748233660302049267362453461266108668280489765503932490347994748205021502172408379688756565723073735964880181860518975471005006148891047474033390283451052920007839162369763567685250140099135168578741819023486949313190245083900439358571763908592719404782259860201934746465543515620025508366017465779890393853828521258318764107007512104442505598544787586716284189528108911266299540897276405887831629045057106836460995787969018105407898719901416581355754606864078862726074410323049891493311568709883600341271943456694552950962144393411388231804368068164629627227275137060105137548470703658806689225058706757302747822442900853030674502104682989162488336446631168081988989344160796185165884610181922600074105463434149769967635563438686849671542105171676007666890480735819601769942719459039083910081421695262246612332443180203811473190637725894399898195028358078848236872305355173886307468062075295097341240828987389395400643678918172864100354227394738380725515996799486217137054373501340542986857492501994486470894426818125306832193709476241639356884655933461226575990520981923999835225923371528424991378842117971891114874743898160472245427841520532067907540268583002691616078927092389442071742668827694310166842196749564014545175679188725657936032833924373494243980053493905176331979597965246704586438405697666119828716529389485923013979274845539753102165548379040448508136452723816722416794817656808043713717891796476327895537818946988002130410864140624539807312347425411570169779658222182428437089355313152943940444175237444182506132215323066762995104552423126217747423912862476864521522224321497971821667254519257243603322499987580952476073355292946408813454201934657899237705673860591121454213860944505954736756448471930921673143378456270942654411857919027111137103689858868980663344944065716424948365911678223869809748865673640821170209736093053849113203274317075165701418069065937125841093749095000489099014461030006714915769934123919276520633843713598955849722322374019153488157612378122921002269343344791066614923991707765973447465001961263970297277084930258618269056920424589547359413690621085257972611474204823747443976607025415005085962780580783872519700690702710454560658937862613101222635225800915228514135184600302909745929138148654807447366180555658315760131776526567253268522195579840889759137346333931144791051808539408506311131897100437365587697850477883344536550967528658899432961412766262300330333233633375663454136608593672310006327542487317801036677168509952197838468638344727299322668837342617907392812142330965181852177347045178043053781975181699000759617710950434285269045399470725949559844667345718943007365951931602989918475222047812536257366775085388725842682901931173082889009013199503128084864995318548829060142447681085714418715360598237419392967014793637378542457058987028068096616506866370553186375949856689280851429317245832307165243766370854761622761451299858856663627874406157395408330270105713173420928918602632280354258694166412456141202386947014518043419667182970076376846196664554139025298252605085581128120438722305223775778377209816490926905609243899759222280289999743584425879289295956105993407568066272278034719787578081759266935350741123963405743216438685934431291769258692894852390954508635440406123731555679667615081643409909697269591285358055905564820495025344688260418600399222781873645838133524027177869979793026605744581868550583055488400306010666010236878034958397690680378391473682378427053669310329059093760602407543302253462355434581091813209747579658913137307885072854430618552310318751463731415512453549846880849638002071495320876809448422499740972531921921029554097321337232709405109082482485435367220528816995904126338711482011731936980630343638508362005898894200731434740437133197378123120240801287704599739048147119655628625737250776294074938474818080692370150197947538051163893185096129169409418098686039575176197018079819773398229258245131143535393928835993280693810634815423142449017022735151322953754011809754823868585279537833959704995841854774621011614828510309096744918708397342552055331645020591974463802439448007442406187887898739984669431310900714371568146224587547353522107948225874385001021393381489666637657283590050343873192175104382162111680406935068652126339015865932795981976123137999988135178839247067799248331077847259240561695916325129742376710948823413375664695542515589920094227798681834748553465190152868044193183837648028622352290375607895446067872755085820064314329270039920525504496373305746279279208343388969510601879531886205144113196807992399665746736974856994494141776722567950353092822358479488137577893574156800549692402333139101776855077508353025289220012400092848819453902739559259010418770485323960760255658252641424669738704209837591020096570919211530942211186620540129091459979029522496672310803625127131331798281306029855083498731941491970957483266427238546564237712483659924852136630755743028528242773101070717066683395658971035947631202486935235135851166344921970628678023860840935889119493232673046437279442790182089173713726278174486775090808978083989789363389909553096098787721186286389359069445275952598916084075626803363870966108825489776049845923484936301946440522809406928505836997085262977228004839978457038446779347337051903541482280963824048372299329121736956308228555608942180742397004575148701614860971480187257479993043001486045117085199863712499597626660010936287072895446943726954607606754212241780252477772978855489756397763218823125994497525865125878692618201569036846228434444351622341395862888177015185433168910997908792198741193795478923574406261220203946984685611099079275698711200924297555938214442251034411686340235310861543426618511569630049539622925085954689844191962066807312576026827180685963898328855560141389529938275300683429290091283002112712601298184535738580592635313112851458035147071491487369883448515482744616978200248531169709038097065503495294131623283976409317439768980056439582868666199271480210997025845230849453846882089123469897361471367918380744155837379161304777840336577072665616409578518621407249725808356221116250749278463329658044242222773704725678515774334732409867235615581447255167489119760366115757131965289030196664725933760144732552409042102029992100124316137855030318772103194717865267399178634867170967688562219639246957652667151507645259818902150279195939975481295358552784690416669693420805359044324077349297426897214777454546834531420792288566739363760879085268910883511535890686964499430679692678440431535773559837032522334268526393222793505665454110135218434412362945337852380182663666618758568199068102664523861782841976815959168734944815818341671313918585063574127671207945032133375736002037324163170947248411710600499156811862001802348888842570222018872573681345499883267022847413244712969358881350210557806540810982704152539627232127363660607951826021205204451109306984519096999245095375759186917061168161350370049638983568673332041674324390754025944161712718496723912953813282482612246346607906806580871758553109693909680736761512238978262590601606959804154137238214322334851657072603107646281261643816808396987470612610279866242606326488216477159305364286360287173886368559348035956724153389747474163448116046470122410141532120410797501234234688489408357729238159774283768698133882930608663109639110375559919170399672483628925437977165397765132193633530573939397958210611457559712119889408463569938068717450846016086012540444354353559792697949093651490207358157150216511766542200612272024763527433190344347713253123767171182654715060190276557453224403332077295662507146257703633868757613437156576282086882827005141107298512900053242064321545939776913596161777723482183903254793008703962507066948053110687549605405133341648923350138341822959033213901147160825767267042969704309049356453503380422112686167957266432197508700132833091028941665254832801311958783648726054009497535336514326191647117764421433383152805575789630901536288766969791170567726302861054196861918040102159812183478264404612917448756384499905653736890699570055182303046509931462984918157072637741351987241149852986315703352910710574394268759538068239530743821812205405964714431229334355524319232419540025066185162405716362079880273551670814873752056281809153081643204296898800148727810404457041406676358983054672319247222027526192794775664615716234838416886253440454675439802678941311300403090871154796427520643494143375028516232230556558633750985761797810588744593121606067783588121514680027443304459395933813158692404331075462753810791057325617348956710653118226202621369536462517168873410112087698166446927584323978332293120796552669890215097758448114717889364194534717917844863644682591134655525850544143131027057745407191963387089262368779622459760684561458654671885399116932763166858726599259623564547739675396056179696151080611621826871987298677711177994396789545049342289275365592873771557501599928684876913371998702992064247038905736579991089923100618125346306906983496174724212184176866153452642619252663932933164787738020550933294938384542611298055537975296814141929730124647913268469070723416368965844800757936827798254196225323330000581388114925315281800633186660704278022017645507995038773115587502310192829236478537161324211451665248491444496656189590911805388244064477213975700542867776053956959627089820636498740296501302205647970847500697833434249374089812886693959531779039841831516012399184677597433608307264649879824416780158555618997139968051515433005800813056900972671228633900000185453517155051640289632028401785980744533400052161006289885587258882088028900583406162724714916034427605117061047296591348542120350499488517909067389024071465091166838493604521768773449238212370613270071649835237679161917378923102302359718167509629307071136855451750921711952845366084346970701307795700663197251743936681051296236155153857955096458785292654724465661516970562427678065757516280293025129350261432861679437020427093614337172691093703376078105415694738357806092928449445023664896774745932547188053443412961295054081977883708889390246282207396647272732571928183408645898450805116641269437250406722631019359212818118677691994309532556210171908395865122661927689501114614894238896483951998540012172558252193778386604150818239657996751450241164933574397973586192434600491705324603146520750116087647971840707003765535224807737326587333446767573194242112108030463080460993255706076532890902790235063069457490041186986767049151739156029355879516436104072675196183405416660382289350969316086340425809675821998041070878543875132502127510753919856282331715506282160537583835900330147349522790778283090563959667636610658848134808235119184165401761141853256685295886730190522961650458756000763961396590294301761797038518901283885499361363783001766843008021545204799251235543250220867464131714068815535204818032673707347373473041379593837747646990596490778505593399771062239214134815649084369306747526532386220098567877764610652299792475943068137410574019758848805909108146250533578357178216817266538874902515110654325289917880391222648668058551837866196285593120332642734100129520350628764280234284263575167460516100400169603936520060477789523360656393759486902453253248119974918601770701082330065099169269252066766745039232299855594307378056856101308506061433156444760164985765086782408769325430399626136115578026217827284160033781767308091651460477493022929029248735474156071984157005363858284123920858594626707614769546986271807078858910474080561688075694566161800014459727113758003856894735659232054321512577617922155659553007414110485832388159533130962963528288213703429273797336891532406761085107475001565582939766915213672401631713693360363930911719184366445806107737144697619483002506188171616229286152617613474776450091295452502040896625430920939045428805260957974295279833292328148219863711122744525119078180295002227801901777854330394195258318582064706260238687211695686053183079291815939600791949561925444511836289151659840928676883493961623067599720300688595974488173414370209750047759096613904092853156547866829817365188716899875475375417796339097203487268924618268593598039682038124198582582556843064769595681624428779222441470508026208674214560530730744424304103596298859935412830498065175908417360842158717668284298047589847792291518471027292836377052504023533932983881575961752207705057686438134006516988450836888643192652765557316743026108495509198294629036072202031224709909336196838322070477901166772929094800310388335384897405109767621000926375674955601357066910633116142039037720993747733260277733333407662381354077720793426368803134269540291682001754538138829478748144288315475772710026199426524452030588203272278509391150228256578965561325983176972783587421021543666158378091030348519638637238674551416710401716151493726497083307901680816415760120105319346995578222806806082759604909527926829543558807801385672673466269801893264525658546616307085893556751453947352644648426715022460928099038885250835495382488701246071070835080275347712911529720722876137177368759894235904305016985896229103448281040886481023940104280119281671082643147733147459919407227456402651023530353676191401689999053369683386715383218968363694021885844741723542642515715179963337157935383991478712245176522049395267202423309082820341765306899948210411182536272534618212267056970523929452978151248557723785555439793918807606306509544806640440392419075953022106618809863385734368596786684244283184450789945117009886159911917171028915785899114507554794448540767950444064914911990474019601799050658132360085893260857769890126861805738088623781633130121338037755829442526001636566837112156686247498621190436784474783876198025999782766999771407854889391081486260653477609608491670858388651134888904400692693318544055893833496231395078645024159041952093217718091483113235354142954086444927836590675888685242256371593047807585868308409764053247176425068262763093478446177375608810121605332727722978972611154090954054103305880758682067930867640532149423069857008351328810685989598659405569113236793162368961032949498977668075318462669726280488791295489681056004841531447918779014137436464388696876519763773976508628069246063986603622328627455132952674259419492268813193831091398098218893985579635887008511977649414552636161195047173590284396993958718303441578467460677293490768241583990551223973796334801271987797622619649290626346553951118126864047707341893477212400870103829598715448134886127498952612275971191859644093953680440571347178874459132327880211964019334067142517555055161423274180806077878993043547183703615800900742235574521127715504349769616624805663191387215000760888576897336468300936304139489900522680300931767893057430917570275513380715396814349194532110556667001810892735112626898947251448146049641884784135246658997817155537911790425707827688475161346753522597918196516334648649979034599160235709789438031322371996913511006534330801430747142987691480628344995891470729454357209350498285786231825850778679762658792110289792226765168065010108826131312766598606484897694417834807270125373701336644122524635313126738280376348655805968956088107055594047131139858631796376825904337580755307612779135087500751166196366596322952378919024902521134226057305537101157231467125914054224693619528852980360974550654038306428224397153141951702588557652198419473814160305664700963476271694491473123133372126983466560679429234974301899689800099068611523849034949501831674394980821503218069551999123656777845327499349052264666870995301790627581250531410186881248205678049028649475906102915693331255224805907567875364775235001071718335391964725578933163631151989454538727728687777654717751439977765124029653121741523620772090271237997806299618374813589469325383260144056531077579587682505039047116278190336848582816157381290201785659178962645014596240087959896564897130742790824487142551788741342601362121240345927580612101645547475874981224246357365060503050135070385975888844050813520324246109759545382234383773392344549208656338702393199135569234533841884957377412718506394976870869508011801990741312176005546114392178022062401105433444802754070922726747544601477736345391503363682419585664288502237277584748620080140950721979855706383425702205044851250853354306092417896565900398377190664416030997081437131177070364177820704796133421270886424223032229156066983579835044227613978084850781524804493540765149460887144302569211474616024495477821628635702585494333608294488952239095486539429141535182543632862029499747501500040643265922356077020949841528715386895840514954441853307882923761475803648881719441695166183915703440222773973726883126696129275008315326713834248094875705124866603452260421892543927058275609827138419113030322314359079937057524778089416205076328334737788588602843032609964599929345218102206935085468393916826789270391929801147427686679162281974783841723251221173955358377912156510950570142864000074852516545913083929678504993985921041578530082324337120297954693441301028405899000323343491507905041887741078093629174892734018839792157592342489549448590936670332713001291903434245384812153077457054081093805594965416629883249115633482202233892133728369914327861340545895184325143198252718574974331466777577698110852050613788517265351690223935496406705434804345746644965435245478678553315672328407666948349282645270855482025443921554467296556430178865913239324861187023382595147161240901728439788626832597228317146281341734021597629729286270085153519422506374966670292530930748907039212665651109701766903607133351138733472219200135628946818388581575654090229405908125065979519058817369857245749208185150422568765467944318253816094723277452854603897724092146142919430704637487028588094773636186598063766935037820302125158875006239219846329067228568320066530128839496128039349583829825356710663480779865079807296374755199457344772201670664401379131181522181709118704309234828683224283927990641906031205255473780933542245484966158186905002097629728092956184807220095922004178509781164888076321759059572400123780538440452415115802782141511644990368733079811279908739053153601663870228687349909346229754389190604101572358521255683286998197812851669057059945618995477507340586990330163572263743145465715228283807499418962229372370467754567398308641339112330608784240890831978067213511063967781878013200351437792693614414735007370787871802440788164444584455513460380592809255909944176800947361086576825182061053692702479039428809127103339227742291719001984774305698622660958947355218465048578003682947494200117697347768285904461584320041946953886112687700204447930156712628693713808222528284407688039942237350724079183834068980533375100041385148746471452824467937065287872038299667323132527779608987394031511416513903052488663360794482898946788352062543186222084673696038379842211756058774184092564312125313578121991361705909936268452416605367983899305623308223654782031594283213323889837652480385210812724019564372527413745688154989804687828401921386699109132288330749780134490341521602744633202249320902998528290517779813177150456342238893110659526013347663505827733537547952803694784219864088949549284428083259538888502797285382821728645523127192162050182863573864820082786180882050945218067394301036597967828381675606325891300913406692295044594099434940417437277588687157228457465265726871010348479404264723809532750936106052123026998696049796500530892337100553183535631001598384966498777329713851751169596673117288608572809074344097323414803802744391918653497653065421258468756373584762891539806764577401244176891299939698771037400727302417170270695616753740019246304536800326350138410851265234024566556397258683544100830413515557068739659661310847674557115092714110145680896347623348118384391133549267262773823845768322784205393809332913874164758907236346636676051287539608360044130963074078400378538162854997855188960184446639689821759255973230175361257314047202872895414785808651624260330054890855995974616078219464743834384316092365235190796575376109113756495573839901933572005671464735609996931435230940123330293918122427055361479586475598546765208901016475749968746520232267038165107887291111683330233582321280567834723869392257689935007887728296442477573788884188584769662169312864729899693845550271063009674130419585816676862221227488649569451243057880367490287880728005753134827572648834021335658683140666024467236299723465478396400680562805449299356684624035861198311751371728338465535625027202283409816559768681249430539452554108982291374943514814171530623199271518503958891601744940155429169756796393642111744915443774471538368763204585167333873280730361845151010672635538755824318100788971493794468119458442172025931861011258492115488943728128234010575397605096580668570171162065611314568536002910840549762287291063028970009038566856205236024275648991475064622160165340537649401323868076865223367865834846364514755076632280469927287994330080767231247441096062159248012401689002814803320084166877368905698831491858361729961061367187091938025987563672283500721423515480090693810080410188909546236414648769607906628577973631834049267655708019590116749599552730008874789950287849074951762004898674338290708216228289572373957353687208692336878273208206345354506134232049899233880178928152465203062931884182139972262982125394297109544137904159932630934302703989090379647702969481688547037933468078810686038429012702210769705478247770099580420827934007760427622801983479040650399562617457090746296153644519745521650313651835633368324059971544485283521401851092903696439225457116836951781271880811421921185928979882129447923443360243359012614680193194900070989275949385883888384034904979891397905342443763560926287843296606551964755630982310694336012736591980878140636529591091196113850100034577649703831895161279657860354888820778896859078450391783404394583205019093005292829990825089427121307485321406951797595367873974219942133386044415268546104050960448920112073174658876444202332035039678370872930616097830946392435992539535394698498341015456244510424011668774106182300914143929208064624029963884138689049129710640679979630825383767468468429885874376487454393498824149042679490900086551437475023083514857012712910746186179883724612326265173745360958705434859390000964500001731625978833538918022729881549085686857230574961876491707576554782270950306733883164408744891190737663677051893219652110376718156394358896579663154629914906164624199915025019419889430049684365956095310077429236422336624932390597975958774946503832535821240182716753556844501924867919440507327825620469744270915750481346853489379246405426072486437831948608929054396864938988663746562091499940998513374585691195124623153674584106941943372428973614110593113353362973021438182594636384235311900776325820657526778731358747254403520010030238607054136404583727523009680050384822291960580155092990836252539172546118895437023975823124634853883961805305966278024586933771574881242701119128110936185054425793116049751635655252620611001175909712302000404313982674915559056217159435081962158057876005237819260801602429936458447610965200108452239096933551432568621622597611387146193386852152769444593769719652229053566917309351925453040691272654756965304015296553758688479428652812190754896849279261041801394622777430307439318900445287267429317439706565501186128591458960542898877475690398031773225109451137070400220043333892968134343004754123827529049317693838477213482914379847157792473212766619003063059179257461393477560237947447542500134460586797670136759935465563208433728882080343972454295520637346642548502315487706090166992900020268469909495931966424900100734364982132625661894649042531938573015446794314680711681428414676173270994299168138347494235067711147496980152041030340090999720200399918057267614487243010693131525231591045338751189890324708072147912306028199305461856861718285634100209031013725446861897231849312183917809313464265350208801906406260070694281933543997328993124307431119734771432202940118183339454957977181194057489956721635806085291205281438855650749167385317853377927909137599041547554542742499471165492957354785828623364912637382162664882213768823899387361102693126679743819738124686904634910779282962691542535604156986778468415911370772988283500540062664404711722229683084420149509523287549693914744870686268655971363729682136284798350742903691189222681882516322494765177854830426835620246649623064641096430413245806342219485235898791064260771020275906721097451761488118524562543646927738425470598927425647680402271659062054744289324018360040686920876375588795578319916818320935410653099888535293903558740058026208229354497383868019628513320362835219553480278040701985287589377643658484479589162888442372304755747598754541592058304759741450398885074508252531130866410245757134034438684971021941296241143332114033213712809494195378816438094805184738153062883915979530913554249613265759305231064140810219411606825845317506913567937086900093701258720829853986759777452276916184633517764002505111243767272844909216114663916352431320410938169537520048037761564850380528588809490030526589976663418888765664057879277728208922179246860893875252788780015704376121595762625407997501965889952014667034703417209660530225607323415596091941778690855389169074491769424339230336646812826294834823528322263074298401293448625532544575103592403313820832277921871310378874472957120924945274283230244935841375086081910143159072725516369815562511684724770729630153959919369990069688069026904190631901704765151875289751913842356188360702698533977039824423526851151447367613046782352526003085815555143813499007003570636676131285740690217562057257718717785978652913128370119859828983557354055974274677571056561762348846514304199362164247014955260038528852973044472487777468409268422285307677210490538359967892820719274566988347795368733737681298791975708370540276540434531196777005920882650243828329899147005184195248914439566196485080275730577408817966552849194324715699359848905655717163803458857177706073159915735202212539634614291626374050672100240079483719934698062350664760341832296289497703429065195858402202460022485124658947970598578263208898352233252667597854624501014807757672520445663233267458773247863096989294091889577097993299446486145302388509064338807722197694456494564458721389957646667481333618248686544222981350782637241681049606092628478867801804808949014248066631341884754200694774214222491599012881667827061383064937734450434551725436619114196665931579247127320857987309205436871079834442237364851166111320298677923257630507706964927268246950636161344868095511048466884553463455944093309872455022496926429625425361218865328363938020439191800096095518953540361485283960206672834203433326280741747757471085145969578513738468232412386543625478079381589916950570300695812992306600183500112340969154943006188823585382446221327354371138110937824760269229821813151586141483734200762544425002501771167618138825454363957835329874512288671842058158948681826074636072381858285425005433618924013196516815499280091769942078226377894655366598628448954249377128250539909786752730201721429813011968001109478620871592302662376123315368361560142687825528041009015292651535352046799185268920616839938275613937694699249683768041397345697525892324089277602337337620459441479035420160356340399750354834237175173945439125555858377171488921978715927383937868283959655962480989906340977140698210900116581834700051527954073679190061954301660216827710165241937926145422646150078915533587588446713956183218272814457128165940877920111309197358369886485692424548359071711575561753009060627710220408200156145233095163474212565771230265154953598119718827453709727910750126975883806061636929506457188360559695097483009754771324474230506325954814717754746595869600880643201540925081664678590942472239840114462358418550935072680498455022831299692119247402634255990174768794923741251516418751395289544243516113891575032665392779189231806718710687690150599923849425868066973421773312433292931813596182001534557987692258313624412120829104815496152946253795151863094106824839778225408989381296804752867072617913196051540149866782228454882273982642862678339157482233292246335188233362482211859590902568810366745437261042667139583227804076203208057315907592052806193778969499103487608697090890072976287265421577706145459211213096133588378124613854971012264956886748624952914618645787443483546127600177058857004532854970904021646126641685582469125553537440489204283214077146173078438556023896014046128207485850411294977903351399315761704719099305711965669678965192433188786994259649245699931821080957474371058440032537700044431482792159171478420129117946296013619626738971771934850491125041797587811028242088707947160606552136486043310912545300507338485856212083700149991897897758967035595901875341310547946235476368745857501765158638293783058349443141931984464279655301619632339310646910400654822098443178654865901516253031038440396633095460580084991518033283997998085616654152518821423832386052719172687039794962791312533178388733206852703585902613518084219076400166971363577088592332359061699047623091482210989001344257749951189628382912344246846630538829459473743441500190429028489026923525476518216390175994919442161014173741723966559405091051404006441308334546552053636789281631401026890424492239208886087486695666539123277073008157375740380526651907187688264770536471691201041427669383747782745049847003544643425571630982642288953450849517640591940168073321712044775892825491323113015448321147043367549502706312734415778502106961632397023034486180244569261279895481789359634173390064512124740400779190545521590776317130341354641969245884668822575846970221767812093406023009599751883070616813283426709165421392968306744328203148773780007797578493904701956994710728852523805129465476643427549593324617592853379198336383626330287096723464271833477436666269329677605901143081830294948173086240373254636602621889069531188802617249946164530071440161678424464033618824841800595150028511350135671983330061187712196659068982376733932608622080001037674701366701218816197186686880007849824885558195982525425972933689590611473345568992585329730772828104706237376480776883074539350634179615764171608045369132434957113988779412249974211289762399815854746622795033084804252466637361040629238897419829633534733064785434637171589695966750317810431898845275904149702845099023930198763357688560916433824061469399749877351606294225527083720263633799658375777451681009211293805740553667516065381483428627022104391516225683486231225410458088935807222217258886523278505343642142197457999154732764386817010742832917642164987260416578121657503126145554844603604808577048396494472630356818231244290857907171112173740363851423964278595756177100418226674182678078769817112976471153212641615165062271521389882363622853418001170899477907263034084647029575795651353921362740426540944839851174999141889683624421915338947500259431855500549636903051796095898361932833263604738133378566806947778895942404008115612817415831214819713320382036095447191725831410617897820593547877510553370207692479982641209686506793365049297633113645585240333792331246533919811915674548504475355299776534564635265453682005542400710489147330557710766662590988026192298880772740363821753820341527816537477827552241986420340912834842208803385352934573918376601247123635923401556355803062347181917198512352996474176781205198097913308897295100325543623269253057987856511752959274722572801669498065797407871432850906365344789459040532929005814055734449466605755892832369076276123879400790307924645610717636492203188138859837708327070133103932126020851134824153948077131497888497454702167467174493147777642552092890282020387459998011155310156351495940625227282727517417790176592320019811509335859832797836284775972037243310975134038849265958533940402772053092693229136344793681214843260331380532324249535875415818212156422088657212309811636448838877866811227336338702267859509440317104908389261723122416800753767073282520553321809359666180089801991752450457785668170662962615223486469790006652304801357800755705980890128158036677675114591205343120217545263326455734367445538004902893680530438065200930864914617946071217789742384357002888342798867494456194792972426314397077790708657436492996586484271173579503506477120973950048450823705308025214340028783004000511129436257706624769353573454822066702577598569801078641282786122148965347810416782963391118751438704733210733842388040688072101960400167661574450106043813305958733767842491452427000840505298817651240065437476532774538210818408699271312952369785232933647542825064812986793979075474111791177473386761936274414284826631510079710487902787954375022374956527851568339119125253845583963583477880625379883890906053602303520703288377968313987268845794944571790402270107504302499705867323535001734504908138664636848798302353655820512945401475096066538446887775129450404151454260433240907875654576266012899874869076717720239413806485694100851035817208169997212790066961930573476522885732662902590827225050028889669639481731823628360786013732967482499524654433765282709514115443010009463585370008731471459866745537736551034179038113686232679434094498499470949496543231642766715698351032134348094306070354496359241005923444779267387641993650068985304871835957098615316364040430924484270807555620733272462804212624016223051141407855088532116780521213818915697322158483994884240405819271829448601820419403286384577300223082488886388855424268000063860627338835687550616967896649885605129192006524927360436782940897793238144762726126899863898609367218473331386582327925239757695739890640590219758582124297772418311283035509409911386306425929422272860292212199479054522876447356839917605240116813152587839320139971464461581971342992802137443271379898515565544797861955118053212883912967580058855148104646466864267292442972610761055426555971468058466744010856342567475179980815019255591567076633084010716647220587858177757395607620270557858089938001594281934187092453257842904530887226408756308259809287544251208244289115686325304115760807665738291445604445238695504380962021261215369789707535384440722603462987937516236675265121680194586701069124678122603163427512076335008013612230574271708915406521828316451117690296941610271249078797924106047801893089904181090890314180049102071499737080165453366533932855996534661986744125366919641926817291559050096446940748339860302480879073289882434768874840738383335751273186035135765632474296854072094077396638061474621059482570362608561477165950577345764016436633127872368863156161561342640221564041721407108865120469956591206837771607951573686352516485456086405859280276738862219260645035093749689054984747102777085087096456768011248682741755708106909286837385850731867992492070735083957092371791149037786334440816950902873093882512448056092033728267059290327616147122523473377504247278397699115910791560888463505365604541579888775393090841320883256152093715055000306285170347860916574637668186760579270838982055076997671823459998394861921072681528574764585824439525294361904951385161193835261575526549868713328059094761520634873480727183777412445157800213162504448046186398535236272115553819140113632911615043807022081347246805216699706931641627847439381315040803627246089033586712745965058863534523765115999063589240829102041371819489196381663770792151156172679147028768234445501135326908361183917740687515093985754215207827190373689146430668798647420384307914839031488103010760146368877252598866085879106339199934503412280503972618615295926498333245070811977023015721793418466425146936067811102344609978628459280141518552166748015944549932865574751116129086380031859300313789524989622726333747855569928845561089624806634237536760465548914754692070238074456582510646911281594148562290570558417721594897910146156367685838363370503422424277254008940432267868147067944682986857378734104218848956020615242000353795963119377036211032716078321662693077388046217054369140105819919931378520859407144504248399245604906130262474908409490432756041297156685708939835447665830759686820972604423914541733645544161761547468809378702058799348734677521383832268244973642119224086368811888021790221656116016595947667177581669573581725159148026435406807817432556409632805057785352291013403630970597409367828806382386430128920567417634041352117686721985706310164941598882130415822740087224895810379701281039660775833240540996127175704721188135606336839400140917187476077874909079108409525147828211410138855177329837600316539349112467953125709114195038761742742196548305941345607440783667538733494415345776003794052463634573156684788355749687364495569297500930585535756454139455962949585150801626972305122732702972043595950188767952365387017269903657535452743431254464235089081161319498487297835778918279825676671122730749837230632295957655191030539599477717545815460858403092340595577727477454060543014019784492785569810249733426086318792406918067806615810554700908547700777518714632207941598524455229483030221830709489662862627912020007952368764200433209947632386106533767059209127332945837341041769517211768193371028688250782334367002608220014502516805239835990159985159622433157039561988164747842932449411919727576715844853074270956472535617041946350412273355087379988627950294119792389577626241828310469946854276885743303852130718287475624634622091564874322120513766055319885019887795796646466919454872057231525559996900682055048921515898771440969251365170632902341578399198877803514556589557688227640780034643084916006939391011139698922865470359370209880325005925329814778368023116405562379730626801036875373501899299033093963923145020024637759075156636286727864109231905096274327644340909696651333392757185914454023094193149828585944115304221059430354203144523672502696314550576864206241171344770151035990431305410278541297190591954477249674279689107417320764945173831956240847054310173474190019330914193845660200173258033706370912972592238841146635132615817369419666176887814476049882995238124552879198423437320653196102048295044963702397892773348346275604775432469527561179205923342532377817340621458795040122490900975869696570227182173890311054311506553500415388658725935641321385964411182374280948171353702342167315076882087357474212979625119251560093219574492469445467787754188921633096161350026817524641283513336884272076316253836911866902298700605125274245906222841833674648257791950403476142894383213703974664398267528268788428582380039704320723478404750495458120282645159682745287871214564058824995773366231319773944416570696225806930300271282627914488125882650900445983458025995031568445065330222652755570223153467409933457852378602152857175164460561323432754547307366959774547822947637501203211222697096669131743301171887522492006327860462844987648404579355072441075048036306975164569920070782156646925515465441075759671092783262078927160701257717547400493115577112263528808314815458299117226789316126443753120042969611270175956394975786852416265577323705213778695844437088353849712203566456741174991767106371141356532472237903393380655228339870591978023868855559197370777578352973117648779918035820744313837238934974298694985698809252134677236080816044311911488232365471514375717229814742468436563425976288210263674073213470761692447201843867004499897007026193669900059542503975069753191804761098991205146070528791699169730841348525767463829095508940559823443771999242910816970772172500123406520156871807718735516082187148750667059624255100876161247507088359652598813094745291617505079470493078796215269159704448014288546771224215433100165205620038273400035243548576562175474936742624978852077442039420994928916715987099318808082478579538925593396411509639868158974188582987849074738785265345706903359826798897489827470855713069940309065963533795700776880447719651117596022832992420005318798851661949116287584400794208961648275479367450992909016298632784789956259977594953005977693364576358916038889373830541943110401576184734851112809260382729329586655681577364045033023165974404141787197648064333433081916611546777056057629319787074853183642088258892312459655334029908711057452958882143301109350386101002043197808550799313967112463548453012551263048365095760454663345688495204486063947695655128757853844804592933847257198205828642205324539055355573812918801929250649332347417633076429439588544923147389526441564612509268802613320765778715000108661209762923498391883121573693353085825126612481746199867248594480206722673139358948890913148104165222910712687072454346422579383451831749235253800024062540017014853941760855918644494071621452988608939399251688136151530177507371910847610983369276028937166222806318213238497078156380842080514178099016924219674606618425626153922362078747826931239749112561779302843004704782636819216482298625915030155433271273371682542810282803247934132272031101380443098420081707920675876498986170356919352003404770102753680932457041745958260197203346387778084878589341829305946368649646249970025275131528388352740370676022489974336834561562456776504061247845467618202349473371399099152279173677749424772643401034173729752923818896324419681181910520459311406589454988533853264734782167696742180714375657247894259649588592914904343041555818230428940965121172299848860254406374812815795339452733110233180297144669741567214568282177353889042482026111483832890208876879745290951501488859815307424759903330166453369362347167255768046689360693555057450992865317934699333536835510535805769139433904304818395903550196213184494628969812748855735970429509162655517993175212056987066610258080129508533757156044707172751228509144294463321101373842120552720023824426571581629680380688866257094454212591725482744895767305350540767027436277496567534196073659852846207255708198099826560530860799349297175596410710116459654249841531370615624913389324142074959135283928059120763563634223060556964844156373830644219734310526398883882952353904727675032374720880942361514337310684367374111418263747407022629208040111185183051883437094856494348853175802818344877942967745573433626904339588335208011815493601076247920307734270153097916656755962635949022026342316054401646077386265687549294905738865885263447258330852635918234950619155672821940130453462154282181775557457472466905952780676182773058709655138340324366501249455982176582818198785925192991776109804370721170356164978422835514752701338067842323008250675031757767017383391713621235673630387930303547954227717935971189652092136371822166179287719468248674754100561898014056104071656269106193565608298799585808276641205547241872137994486431581132871085327699871134951636339185476304851674812076195734338469737829470159656509572559725692545222138586299190986027330046020050278304455398194130336582911120216956579241074087217331301941777330051970819344707765183208398153296701833418028064225734823010325394882807912389542961261558404249769288583932943558279798746140166252682359008618264298891649810727176713467260623493690288199306355951865875232398305983548032497949362508674697958917719288512620342626044348948907952300457901432803447675588724347341546980212866612194580573856778156622054829776653247288958483489900219141381593940184533653939904517659840052295236067294243124823933093829414444663215740811409014634238782825700745333742750563090643007957770671954099288847360099545759901708816565149999470107594796049744056112491801223902747291754741521289859401651278747208486385834664939983144455407602191756933269747746460945680644749765745718985493484270612186571196350953773989023281086351427007909954801012364394162330937851195881811067619347404223318426953130453665176883234583182733336319923031697445912646976942892625869228806963394422680738873488007097172648991391275851564557821719281038898885859526631669335758281953048956431087106599971040299106362190691546887724807050464845600885099958422334389022365571556369634296398126697394135758032241053349375700989559427677493055608608610939421042336662665305906556673187811633030915935076521981929614665211769854710332574877857319622860333818352038147005610095474043443904193264531556830496225464942277326449733252418517238012223612944821165233780069760445952401176198569835707240520765425984825125496501605750962622713871202514669484935070985502735220093763267490961440102989070548618980254084127687948419180225631721163158090868649007656383417865447796230454098749309488433839923975475113347063745792244328998415666474635457021498527900334889088023497368367256057342741883041686393701320082972494048324820360187540917570801148235239846564693177634241469699930612207001951599297406302160327628143903612571228479780383668116751564860556033280940848520645576118357896594334298151112517449143624334230042971437266681153663642785536824190993743467844722185724559569363036787045682384358547682249704506982524078736309366442906982815346434954482800279584710954822794410762297002566919307715391859159717506391335551322576408552961278427227013490977183647398771232519081691524922718186747271439144720832919147894060065630620530379833401013444509579161771840446979424154850197958174020380356237057273803137586622296419908975618114704413039582302067601954669602212696848486287758468563744510616277612689907248781301618341377082691670357141430484940747759538952702819721323263683640562065330087372123101535896024528757744997748948847942151197730759746815015124458205685552823271132261217479934777550565937381049211813465327543856447430953256423546646206964245082212397939353284161971972214291865716789866075618954444408969701320075188424519880280166171307648691517658868938059197256944368472766780036357535576134497176102380239054253981899089865705417433719214923432367537093816865647905443128053277897095874937297427119933547175462439180343633351470278309619653141375422567699245745784980652545123784776903010128454995492580714667974710994876307512468158680198550487256551736718359259835345076206725757271724215202868005177080364261468156111765371440948828672570561837089823688979518308678291234969361973817926852083508666903962225233977789251938850298209396780127177838292939681518851408175671233425050229620038936242809078214762461398919352816917650263261645486509619224936976235062384479890468431885581483784719650422548459913656136239158625646579076777350615454960634503510042982978791090388965950539323162458055148570121827685121832905885893105067601020296063077874309957818167399747410955037696422250118734881678495092474986190807359175354911711848816366980438591173811560154098583656511202980102608050048116577627896252617873291943291836187517063842403080109307472456323465506085617369064355002200503061256103957368043544327739841320928919665256994400202108239900204168782324657975447598198328816403044784269486187576407584540893468286295927817514720252482213628339634278588567663616047776691946301387812811093339032382628187885409492668112558266163715515647505099336180505114203215256112453570319921065756290248217848193343117750802942225200054977035795585766842817269317270256742400090831765991419936038130933417334151222432277377741574103737560681189157278708407996994182276017345481525388230747511517092918727774482361507705502990158786763208274106919062575643615688582716310037599495772967141405358599984987275708418497955018190324816638568404060242330315697261862788351444156408679042521455508029763970128512435825950159113158965257663525684130137323167642955694339033731259432621962657943464718922750873456095606409153624500326692824145807731541209915854916158445554371248745971465917137055577380659666544699166790652797096415980797357952013890203477836420155540317080519044361812698326960874566935111150310761496565654902387822252568752370542185960653651697946513661783462555810706873402576617419805515784375529806763036998243751087768550157615973454409074438312998032283845755612290291474678847517718011877904002687326714099425161320384846998244725765607687586398583400347758989446478035460507654471985092251137433423181890035812569514889987782515038363190061555683535199257831500255729297179341664894447332123070921475817444471852691069511068886365267242886235451004710219657553536262409779133728624978691434606549316576033342635193950078290863647197438766851153519842600425123827992213482227152008858489869251010865182748493725034442403167798073578160813685146490157367400964525158438247341076883776136384405135259837580542393200422037842826841484208702025612294703082799870522112981269122191315063228412010774202963548097779208403447450721042775090786688141415745310332387216482763963153448915263099887070444017014110653470198679932613543779575147179222593017966622350762629845389296574553981318421730322577087506557185821398855239682927858121740016568096448637949908182907987321333190567866330721994942759795077042546039652991757735749324494626162215741286059125391067043627123994742915423799804533827528646401550039513262860307132364037763671015388890556968907235477799053544961479237285388199348494445140279673620108015323118898333679271732364291069839239027591379766499336484369061268528452848063073344264639439331069781929081829620064040398815825728416382156433883139838659492588447574698216863262137110103203352349456030522538144242552258912067800364525888952619850203813112697585301403632417570099129551497301484744983774990341097556860295974375465002453301930742893442386193303142958596412981154346817967271476649177144476439817080324246172076162453667050769653796891069069915321537045920464655082376971175502458619308062968453554648031490971255501774931966649403841392300795641539491991972320703645581212052424395984031550183841088232661990206230911445442030729575575757585633163072838147890422311545265844111160944915223716197102976920796984194429408110387557324988750340363303889546143784057880868621858359901081163761076873478943949330787614577445003518134632868893576635482999569700446368580491170518856939103160326267391445033011377971896061460098467557868191434433850158453624097651990105584896732870888017327973614910274936950431282657722167519742838723508845977177766958291539672416989220089877772325953582082061627258386061059211594032292152508660845734936933195492669031477654698007624017405485439684541934028050310423525548829742865138002118657933431865235092764038311263831829549772849580810910703630948791206059702731761930462395960163227615977780987898263250090677088413392720753544036895364422175484640758309609011792622507393399968349294507729692259932106636052956351405585273453959338536098890198318997846664078779018914388530646253885653335227730833588286816005168902684157012772151016762038611503539574613442007437695113362685228021583263954113167436919234535971886489856578612811284303705458515909868623524861122977804062506582715108014108878077714448276930701665366260232902685845143064874914488593012054169903187853501099151882659380804417697895400655352039432584112248879053881312567754682981206019303997560839269432253440574173903807405977381994192847646818667046517430602144365686865808451678733022157046274962297118374670006110375349313092132321586965640853216877542123017754746735724493282696264591560091224293040150740417742951184725793519386535284053525199510772956347665973576978999291158032143195070465934439027494776266641266280024096002892460275718932626157775160506400488758068008428631731024501269132676086545473439829674518920922045237294312280957902999073268837102730181193900269838141954971640912247309145165025265202837607898613921907960473692557239029229134628888512082913617735698655289385942602454024806228002494634897917628697503481625719540543257479838222890712465082609558900155910296171649318306011860265094669881342011827770966327852969433436545005872915462541275068115270751272275244903975638595804174474444081873279410562288161160452877150220663457801029567782976348635560181485966983736509616040924740249819005089918876431794198179558466950348385971884134737431102735499052489530783102050553063191844012027671450205741363919595046027713689444343521458050736793769039697315141246023952181171734799673336717984454836164393765118506829418522944381666448896738794355580490803210999937497475138136679555183413104812782546729570101449744619547072432673592765319651354906080161139595728131097855407313818195070702677576747358167163134345105675270415258274614452256988986323558134337462886701208565518611644728515204660284075695972594493386117836993510572437859270374234365886186838534604881732229320981864349493178049106424679192155557545832442635843501156699834506953729908369660523636478879355181090946889359545378939738319679111585391871352276620369908677692893665073637088581460181027874145397591196983925775515389808354774367100542293655491750020876299414843922014566216439167547975899428084018555911027073797311193865006599698147418375287308757292699884216446398147044918330331225107593419678464236881900077700565445820721423837888632152015246199068773573870617606680162813546123137205129855475802895336126174175927940181381757312569901784473650169075265165334937931158360667531574010201666237295196265807768727068964239701858250592876682402670652273946006581348920313910779597551125461054259588226785595562676350842030971632855639729845248199004096971883215328390952708226903162843234820686536376925394177943416831876755236834800417240456042635211233857649351221704612019659910398392077445127413991872434034340048572872845648030863894450781843137410421188559493651412152914604431270517292820283011025171574990812086210899917064571167389538674287724897585781635055989811492990261854015050363691704895946421044755236325830733581360281462388744722811959878833639764738221583245696084735142549164819783761240831036493314229447237924923455544875628612763867158627173393877055639315637830810635270550147865767277843557153981871904130899670274370780914216548544940471841076259809050563449408553592045787920432925391154588437007913225714187804723757680917227356338410992055841032150272058899423526972238439780446489285177688226736141907372767535992002504360152037067855794937151805907467142845138887145843056541580340324622780080478601710076417618425979018062417073736633006151050157360456913552278482656542991083289221708242025774027578929309977487372325051568531397980468385396498973013313145044396026137581854897716581888748605805671570061602053602736517284258533058207637532853955671320005460400270662167182663372100196138497502984084954679037811661804832589119219965040475969311678541670539220833739737600204531345588347269549540769172202010714471161257687643924910541531359984957860337463349293206220455502537080737519140980359832551201143585622265311112485766017114027407173969363092910308974546002315999326452956649957344504911906328837456519729545529144648371117486237242500979989617966986445595003154632583884994631655982711591069826694714991904585588324083181617645241290435022042208547456394397593603813900349184340815577532218169055476598052579268600893670377472103938188987104721837144696506597015060526733713531751346043798693059303462227159460172344720054373985277905023480301347983583508263958098668007766140447889297174552873904458283572487909556628214526978791677968721689023962722923088533928710094872778511149951775185454492465402264084755920932812978544526960569011509588938836955855567770867168215901710074736674174383908854877270262899539578704955841733011766765675336370296433552375088697615466577203998767750549174461561510792695356464862534531689005122762823622312853770480714789053051252008874996288081850370757841029337780805857622665113348031613217366603219375361038366587845385675299317840959053302199193333363577123376713024315189539808912143477027218219656896247085560938513501692392446642974313557366357235068673613464010969108911298801517454467169644825004888269080128066141681106867002881033857570863832768362900643892053497692497015991002977945818387139517056501207534181581965073669985577672688935268372472409748809066910072207182928989779311198495696257513161080009433113017245205886658126028967252053183173916100469674123362062840164239977451495174749684164760695472243773715248528562899675088062734294171314393474557248835191936326734495662260838603071407856986679485092953033308684110336759400982269297453065765086209083652294742807840601831811421329276592574424536820672481537083453413749142916658022920500088126321566619360354785196797233871309254456532681350330579059195497219340669927947031432218305302445795997995188870638908468655651721773220343409097259062596316430480971716389458627183090108020022608978433958908790601551031650698540650243161480485895710000609111680781059934639228400878531211960477351162869633146244099028797330262527588094319035394982437421603431329124981163956707053331039553001908693206393525876579558629712140614288471092406974757121924584871822183947134960413327960411014959309320001772912476419302734674146449122102634557195215908704921518592934631113381829737441384038557319808193082237505905810300171697521146563029875529447962471273090027951394562233641922980388379143033810523725485763678227836914256416867102112332100959872013974850910354757375382982368078611291768903460305790231181162621412413035893043502974555759385487579977178616282832259153291977583481301346621737875819737183414941155987185267771210424444099136566651021763411321557684983560724912616162804496233211680904761487499293550317150553650712697685286662791982231253511462841026844454697217711245613694802236359452216522094877884944205371788974731444382497257721218954600460083584310847644136289088754477722997449935290242421458500560016364253731740566251583269404260644204481466011694935737955601383246296699688921804319079994000315817775434009314554219347436110256209518769166845949857310095015164404040875660080431217875597730818688784171117446012633074034489491536717090526090592211610684148330596495928193450044097002727466996052261748391317502985559443914206841985163803324227178872643393592101568213119976504919891708278228653173309156740274606005658685574733229372613643437614473643293858812132191890488040680769931424258177090554324341043517338574662131073585300074203421657583142870688390383377323594323448995353149685490809488638804795193543076654112978934095213695864049017717737008533370324537626893682117308439794735571675385483321641889354408639175145893730803758424224673131282268087590442535706234463965047559197872794161430925958446122575620477007042116722908003083790440801400088565503827299180748010682970386494312273025894873934478614889401444591769694623544268038583142990664122294376113412356780271656043946525642325927689476513199267399541100919003469906175570534450300392695891709886022563047732449434328384386744633072393714462424032777651003864965785088603743878473480634501912041083231321496213248923965734848781025639442732320336407325764357599936880415702663912052520518790681549673921522904942569074429766698981441365867668473391953687465273250531739616231037965748201575847143734260536591159922178030910523273107533628408631177571464120493941336240594278550993917342188794863031408441551819767385594959906343728619489354856659113389144831040011222281117533678436591938994978313360511745108215591974516730340805301295833603753403527715409175391417887127747769714171094182663885728726865639630733911286533307989949040455970553468235633767100372440967574011272424928760860453117284472107929040279157845742156438736077891249152402902432150726178650219146010204675597305348800461878614980317625833862469584727480875187982784573089753450029807076932558911169931157874168515157023425089795556642907335236943606380378639970217375331549173473220350658060103383105863146279698517748712207893403625598455903902811311794805775406809432344277647933456666150475981975715226020223888227481030540941092971775807452807289095951262902837208264240940532209685643862286279724284257785038430508986604434870453475987878793729661567382258704421455184662375242586210941983833005706556415770612931461819535485129618751198965868771727457299516857927152818388001025567208887979799147526355012399538736590318330365880785136798841518664971151990675105822126265569586679351580524007619944548928131476493871979941096425321231277735466090930257111650675026667935367224857381085531342763686206620871972020075991919379004807070496712881361880271314412912931679601837313581168827976445517800291900535989577345847663209025398915718116556417158980403286454707288951253229107782903365972095970019600048020456048003675156091317307170425002106273001995700018950272915437040038458594617866028424540252370550471614239594737873308569647777950637730977484209148657776882625389400206102538898363244893068073976274273078832814111544537075643606275655071834398609168051875411120758910026345336011343996175999440551681153538652450417975000070072698123370294786645880754420893930990960359468157814542755315971666177568313718228536629871540536953803748719948072151018883842071467756676773985703920746508946918996571843820707846424077491656584861852707945769469810980759765243495501479985572814855372549689879561119225832556981567581146115566726097920189177387651824304995903132187673509206627103475074801667149022105738173649979811617484844145907612196919034580349373469792075417490921083530124835270740836937570173549694188336669194516704065742132972485891362146770882617431352795206142855468834199834332582706173483096136643336277518124708397610061428032934605909972736835879243881577865495047988093292017415653685245173004376559884600982326193071111948745156401554631786505098373077976612824732151389654305913678792432637763940216307508731627892970586208982320523378083394349187869127265240402185436638583940656332572461644238716003309760175589240410090676477478931071554788895554728073324231885904107478067079076495729707214910763912417456870380338348029903717873829162421712331003140754042089335713335647019662166152421887979863051482767460212850821452716563520241618778308254025515862143335907248483561571979071609062665234161483237404600074436106884071062294981981837084801766721398899823904714267231100468420744297097969542681247385736824840802356902527532363928301302148777523227805522817647688613172178280256128605796399290828410884763927072782436583806699553697565542457028128267758792055548807125237900602983753669539789995649078422347502216530947201312050718000940584239197757614739269567309817071026645910811245648903044076517625277253783231775080361268662897566359673448509931152491371421593392677005704654461584477059934714618234207115623038594922699919220827872317216896805857580600745031501577456791784601417306902770480427752484422702536983373003810254202363498775807189456314267113952288782854364525173648136262952823709688335965599941862710416359175937884939458854962252385773040426890898762050798101389638680040649398905060960680632208812967329592313531805276086333053159016941631895191508698993366753101144806422306611713465775099249379395407169086755300758141123850382475023299260758708584166887717452200707545050856753920246352404011704001712803676226462375414761290622006166757636502870815927279364569388673568342832389947819316134532354014674269373046305173980121119633070648476723288486060219618306486285853632100105613010317188485861129088226378000774246906036543621647058712537191161338776384562797094236023507225695433019494643428212256826580345992189855320068876035831338999680053454562971046181699498064829669631835883541370718878651347108767651467446578294125632631788330858027446942262782462135653548111682992625826558831819237507840052714039132549391648082062120059122936177076364664298346627902547529059401818384309702667613541270652079483710779322082698568720157229765079846806852546235775578463381619595287727026589300683117173687304093784033408613057124615131921703459319457529994037842537479315601633291461744170510792238067593509899948601228065783184829802558078166403831579757859708302267472195988980366416202721565162467373746178677343871512744507665812594002756078476921741219249572442803008967127365725345272773838628371397674671869368141035030084338920704077211895416824290304503240500033665388433770282854972484141142411190579674088492678859775195565862412931548854063928552228260498120588481491656002530982124476555161095570619112029511654953793582255079291584537774383429291488756220750084115994779580697228711480733567526598619735560542523404036542475215634878400337269192324487006675685213538230690838203881176989032727441910948719693377457306672722177352779334093067690380729671086176166337121228066980587371947219977243238205799973766980278729751465846547154005485077949266910411759687119569833477731925044447320994596347844714434175621389322371834514379904542224058745022217624296482536873374197694047870514629986773807087387021832774524533497157108688489451652361782547535241876243440280558429519224963358728777984225561140407890687315007973390755146300893260725344956935410359724119540778788335551704430113105297155978298499953227916227621408693206501097944163927861211313432326024440651815949460529613034830462961698705198535982646444341683984606701550662714784780669886510992018055625206222719585535763950968638110692857404132759204425345867343441615358420070198928674493099272803764101349749033285802590848346577656669127086473751433406184549492693866069841495401889626607081414826077641631920142429660767437339177549804232435893736631261067923739296520369353789190188642458113778773481605721765154423330363865617676764319476828320877765710705354699144135061350245819130403721452895490235778130409055220830708128527945611459070513924567950184406022823383754666690787371166026845374954535876099920644266620990378110933942268397932168711834437660468849901139040853764202251776471836984880788272625841387161714856648705139765865362942323155012343524150141007730225996572723233324292337222539227236125355306674597407108366194287982908187662529034520192411727108804137852004552074218507495717043965403691257745257107229075616704079914168713207400902248666700871703947181754936190531375073846872594628979472846496269614725763836660445521375656540966501499703398594523546565501837859366366776956721188337979719011181148909959985177793697634217026851050436002443723813225593654354461354035551291873610162825527967828436715879626799806407567638925295136236411607437901509541360170150191501557808065994779692841990039189603915596491270380184794736494229282057380415205166327160587694141998968916733513379188449481774569619749727428858317664123907605691317705231778680122402637878582540939445890526759093696737128763988564557380827989101766157129323651556053838927438091956036298306442986603876198473731560640869707925908805271856441186107974905910410381201098770613010096774215261785802582365193089659772188378501645247458366194156954347711640796282826379046389059906436866085327553292772289213184494401662445893001034791970583993320696374542266987844451101766260404762902387387289410839830880996355860478266072716682232248873639359361231412817196875572497476575916608339655187115188781792318789685627919973280959096282378477780797708524652380694379114957464964826502086519869808907321464420679419948713019264965400588926468875212092020793223325979663572216806680393965690037263961119025741001840846226456266830453142371457648208421809459829056279159706871819591937958337849622539189217836540844680552805612961475267465472360225052771768616078952027016031568058860134253032739637140154341138099053407805039799462325173808873003963587266249660290910285785935466538472923682079309162081013529162079621881134400395157566476630105740792938284864862954132307538488832284201060007094280218214552413417386155816695223127658280233182937491999885997199947207004839366779756872749389124152461225630549376366613781166453122080577691078772551685725412355438522209953150530890789726961157136842453531867337265177641895784270703182986448069780195643464748496766315819059417810585843356517360280471139324632255742561732755963219853113819416036437995270728497417096090609430139601497623529094666191380960907258142320581303075752988805863165338045005167058126561886988361063131466053327964224252623502118515853655419567389643565644581000181333244391482779062897573412221507775975081787112482710516703968508933872061856532986478864477606503364627545474022411637942982936396179614324347117015887132595343784391901331840604367784188504282935758126587404078210081885326813148675640036956288076031520406238012305735851829565043520765078867511696989124200501374104129526209223079155753159791247595283158640745128241544713650882501923114292906224434409234430672929688957713763816838278387824629738724301421419880943130508973641816798969629688748885210870822510039837334030590986444992525174060159777112197930801003802324669180245019480748933456951053843414233987024297001927586874090587557488360460749536051530021311198985051770874873503652755658047161785855673609915948172723504151965559482392836756411012412775388075897995850248074054958121445837533141204834503146401094594292174552402341066280493672162568898861086003337052797085017048521184859177513350720686189380029298746528923838902545711776595031195972965818682313311243690615571264861165424368327838323064122627738015645032666998277010230056867573226714887021667229013828025872785899927242772785094344637987327016755663650973024874552982742997160865298938281517664944060615401524951420552612915400126538852481049045524371935215837416606457145780207346464523253029682395207452149991257514212419032333171962219481728987725992524425520867865972775123771143430660086278237499475257774764397298485716554348914877555929696397547264841907543253103876874933634160789572830417847753952462480342608044334895315003177861487369115468509971655521056577169221863571128638041940707838558365945661618765029948053812274204520874305726271944092960785547517984958919860529089627203573333101341707113705563269416307937439861505734144521085119474462392957532203979039816973610145318140093334176306736578088554029323607454748441344303766953018601142600235874372480205088097709028323539681274297664830476899570419659774690748985859088799394595783158358676610934359635030739675635169367096752157298800577350705969815220954106377110214413591358578745914547633020898386165106818475162537435309869823562933993008863845741552241248976883960959717372468026105610928314158993669322288119730911643061074004340762599064688996353443942061699937707835357344853856361841244617038439058489340338076431291930924848882185166721628249306341633282118471465815115492290099598969936794724203382412727705164634136580029303649116492868300942075546801236696578496178663937385257793732283465787906191564963903269381500889260837120154292463003163349755021913035404825317856080110937573115218572480597154183610578783920225076423103093152958235375044401373730606984568470971206679446473969340708531697339883630266265503449651733469596123702159632966235694552163834811640246419039081786465796408521954673219279243871219263019279621804102616819773649315932115120134116672209792535674393865322917170389768550944456091359639707988844758729998319588880766669204814827974546852411120326483460429110038753893257316811896705269885405610811264424668387653357601579791654431421828618929838431794147500411249488859532806596047521074932609267859317043940012188609081548403234638888739488664631625388840357727585940860872976626166306230771730247724790123472236204133634355150877236729484139189503342267284347468970863875513680274691194176050703325293964033818802952744218719977857093198957448886592487047175914653778246439192071984063341510765082504051586514465062647799517575984988260778443152432607527797004540694994080717483981613266388573003790588774530790018095325764363381457160118781683748811743939083891178538040631860449260632488494102750027513376054764646661510462060677752112753850009096652931849133006132823443730455812932246705581565126717625025611078636547816972636901325388597371217613264256895676719465994121885554294169392168646305720113426079726113349748673765207522241865063362982552411587890040814373989156732684940152803523167460032502454566496787491491861539932763415420465462995369903730660698677528275835576236699878618376496498270697181793946664456712332555085225530296233868404755735637847569434070814584072580854423927154453615241783193930262407844397152800001028182477211462863865766116935331095593905843556711465767331550120188545931557906045251753743699242505518136010248661815695944455423368510292229174902514078731461833790842566211458914419637066635592190405616960820549162573868765467740033330479886833397747316274458353811570469836603390539900316349656000784846766994605582441021748053318063460181502163601875591041875233660225352446940313803253473093526184845128969727895759172690142866128266086180998752708384765325410754952648104085921895835686244998552375794107098666258477958200968454997916293812863968631034225494578095239989242710125325005980618466784101963384309532058512451980368058831022860381952753036568222223947827503419712538773246925011017927844952775648615509411486107023501380986815755652764377283804066378868574699138324020207758032241096737992809583969285689500197342854341380882407903423996130035359205173285339234799271604595354815314985746333499579534155405624777458418917009418671862692934576273791970367798627501097971907243178621219644953659332923026863011300237171368866237347704697428428753593672167865955045791376938153436390675471847484498467788829149158554353795911389019548608156641703087676896353632877642052487056909466064627586413022317996953794821572270961822398503167968891925085084733092491258511076698240097562266160911101578546004867165954891330811291548756711421289769596698403302480579842084164503174488801880120572542865177438360258559352210717295572218568795889892318667603854767223691320710059068143250394385491690868808713166440493985151694417028912454848122911739130425948648816122571578936376935215321475602407393034446851851365393264382175179997845040371939895269917188671131958607144170004456310956596730919345142133502318239373937853050744028838304821266415060664931427397650364760467581767247452994088364178065942123619102815495501975875732871011275434886360946044405628070730772439027962822789953547351986073439792026546457207023460682188090501337340930523439191776478664671112469564658650349390927338360145569247367514569914806124356599425003313282214031093762699193178685393373198209218288503150685244480521501309392392416286269020305772575521739943195420230379201333550973798773339116573429191846563923771981173114789515822982986940690482278915671946196164053296959454472141665346911774420060993915376164811507939702554869357064098964547655511070818730236337499690072962783071857938525905441279384045950865235613292579364581913152450033771633813852242887254616304469709957380615499102489684886286328955417108021139927575184485374851282821448410412402211555836193120951498240378389212484766243051380053902167706740671147398939996491469125243733635514292263947665091563787175215052047847516930881317306728612470373377942758394127487527569951826905299854861596710540012345626867128536304922574037777885105002286851707787958399993579427398246987376771637742411349783176924049384388389772409071221912808057129587242791343909329111066318113600253334519298133588330389475969147797977826493552855751989862173170831282328241998306961737849252353467428653535324454135000729687436568033989221005950908055887371586017341392725683556167968791609386563662901026533033794976304404236928310637327884536445721980438156455304582711418498418927497372869753320864517637695156622943937560850354268258778545994711352338225317749686499364471984318605616257911272926829442429338232525082247730642493568652529647236277808181040883256765290507488965397835519739183868182504757380843278073096623713718324605532948879618268239794972090882638085761094338654503997535904925812182165930079735464172022657738723084804682177561897251745285031561369948634151694736688001244443716172239558945114461223552645921299091515887231279480841146342847630761977896627310216837764393623937913620067552740638281374742587135473527084202480772350121933851788016364535845740193924499135124341379917889696743679832413783733244480138811709195562538841557258473720979452604163773791449650844940094096264553353364386411211814396267509431090452757852378958354947094909155638484946658811545230946483113996099714148630976080802577271162381293519641502222760962786053019098213022883846797156498405102952273662345504774587218645803784919346951373297736197698045210721860224634595054988440663719081035262612516376236863915136465271610630787113549553789097864495381235523003849146469752705118202564561102586514470629391518374459258474201389200704136049202728351572875157495080671036130582377981135834934380990852749724045049836293110171169325087633496587513040847024916217908061465836390250397376142111835302923722173454705479505812050306938299536359358023363445241212960520737540851688353575102619265450077454705415765948042522672877818506506452845868095446973282642534116062116894008658316222728041756931761157318527740087966958706660378058662400568211112906766608392619361601336563041295017418679498510964323944205604118633550179549152377662469269920306822971086227260255878420033476043392833043128875113673882557821872197880958818927370639973514634665433926337610275241254327190542547810568953132655685981706690791642966754328373714343258427841339768786008510112709722600910756063535071437310258878251671321240742038289144217347292820155817457334749037906431487321685399365179331396363219994590915544393575682196107326231875067767493617186896091183856602437854742593145722978138643745101591741759877943623286737351657698506980196755637173377985697949194792005639055145920457539162176675874992163640254328854726947409205618482443026372586186125775499259776710783750882025016443545477868982144049965935248897356254890122166920730691003713398371040842368781596659700772284860073628331607698113070517535244003240664779665977643775329196320998751580925484975833256274181853405479171746855631443800548521475570501090731498376553915080921678247943557155188753529216568727146581285312556144582076469839619560836460676482782471904460177044930038763443289543935702374992298146570794170223107402061228143440150744191526392168955254831307505202375358685233809484848252697325238393567031215908103229224363029726146827592163504981519628021948945353531816374527934456959231743471354531012675226970158206876179521172680079808013621906637989876705038607430884031618074644269537921411112724364043039657110555264886029912842584555106775996290910854581923481420085361569594361013242997972792924940678118154592504605964632288707553183527081207823497334712382764474570745331834924037296037941725692154010364260129494689995844584640550112667634083476963451607640899380797406389851973341999239025295438413292970149802455076102749830102562621652941108026861382463240322385830418751086933980222034265124787375777892911815906764006672757095564343868641216098296307870113162892548229381163359939107712737589451578077902107773928660732588989057529581112358695957797868337322079729874433002669393310176432615718754459810884749964849490160411914506630781242832514657589873501264387707455006481946987359196815930335824164551539590989299550798543082205609964790310085359036714477822822444819930238078996103213409536996364396943999800126992338492528168267271919451876911999323641491954974153236474284127964077853289352153281486007035501265696266458851223013932134876172231143468356817020150856046295885044825976589408782906077229649919269000491788864650670292620203533910021639654927685161774258127520643482355803246475058717499391806257439132091928201805950715832526087550446871662337042346672206042420856140369833871389727702745319579199311010868020039282252106157543183997807136291580901612356698179510183739264526320436312677305406370490809571613023854426896883236748495847651462634919101922558811042782544657548559292034342105727591574949641317106874363830396377111293457744948848194817416215048693638959550555280004707640744228764662010950234608435213074475279872835181575746616311371432701402819328585585387289115131423938913154469646454160207095114753565596068951694589899838177729518490129341091667061542166265133522160638845528836288564941118102630825594282368944394020534087591406386663804850142241571247721382920953752668007332151135205126099999800807476689301311333509390822697040488476891623757427082174695420637051337409251831644804532103916212893040595731252961626636436554622140798269068080402883350639171158250329896834245242110878254479187158319677485495146007184897923181506319506720517527528418937116560216990600488565434509921536645387006092598944436798098956255733733292162802667409332386767022237301156626870526348545815565012798706479790614378323725559213722648224222354650930237220365409319315778180209445275199652042979710310974417513208002352812689548964358017226076889673314971040713620398810538419201416495135456884440351412908153480168378622452871262972306344966295726256180771804280174800560229495643908526171673539474223175988753477340076622362508832970164511434711811122308689149236196434443063503980130184649713881686837119756745928115554564799496034570390604596476386841495326058943789446993547838616687750470192331721429938097239400624753872593054429653055603968038442348380914456396817212681466811020487173060722870404850685121570940010331747474388662760916433153790610450540346369360906909352774773182342567386276977535360524486152851520756210611225388920234413952808018026440792681600699211491651974466587480839672792039006626118636377762278056598035559433151548437154437022275218686084620894609382987856447963513257818400402169669841312675782123119144964259603022524712576514202686014198135530194643491653049550918954389416010092491229773980734763045565333177477833397662327723858228854441444045974201594056204647957013762806996415858695208351531579151088291581499389665753682746668855395667784444473368163180646290291183362678131078717867433441688840474595304235599625333261117671464050546799110694715544648268898817062708029077968015819467194897199308231269106211186008044153638304198293463398589771564539792821685799859239636676879410586770725040049066731367570556359180510145419189033115750521903283158136540583640041579296986393524280457409520151173525404638367636219481643987989183041197172312023114468187498089797413278059882238965007169156563407815217568186194177423433605144158028941086609863275891886116153574513125160714450526358094765547523944128277699149222794660759385248624770855303430764761956732358635306606845220436996566530275178395775200873959615118271494617659208845399261559889899846323486359056758289946233119508865946638603497402996627197522054507544312488626277474248629700367000174822209705994468964214879997659408063547408385784318322274934369132702552806533705979920815810768067195355421427507947503115619255588855107294673277377062401768699575225145197311938347791416569270186028038605849265772832809095322390714007553193241291101432959973333009286156616521042623755976457985533618905259341623929014775351070398403246394831399480420513946264433026382853408569631756815669170468196227765788202654021044316068104788992824498768401577553590272622481696232151049501482081030088714767712946138559144874489284760314211428191368502792834693899670357913620198847736971671383542294494150349060728068894984332247847709647847778079283315837936348210291885786798326727002859368118293430806657431750149699127894671443269193318270136073815465557656122733002232085678288712771758208787995736515989491074987855582989873666410263490598066349494798503138284449269466297538318210474940214856906148679900777387383892127912360247348936139567293227798625048732254463485029783562372760436833869501442414455431461780905922291847273584002060713097601076351937781036979362844503507625015645471753475422285448443504386332603754945984028007207117371442840912670803764993443673619588691405415649333899862210230591395738354159346211822910779862157587883348115600922704891396398384676898926314108075351509490456723702409064969339051235005329378785931894201547545245420770006934593763421748267397920617898650655282794069334830258488036352333268415436250901445302894857279890354418005091149317890863468100435890083045710227966194766299570654982368871739687068626240767030262796521153979968325840434043688412384661281404985311181206179800751861238768911916565662448876471847201861015395836297846369831387130847566918026024152562535815125468622216202463151784420508211047530878289886260931367694396124386408755579833859707517922761377491718357844003102068983745544335300508211018408553798162012943997743441298073860323241507798111602039205536191594012549540506963269953449468680873259844966591648298262732500201714411796764358277573490178533662373773434961916867425372192633123088488581718959948328723307934601983722939013981537288636292935911243992738737263515521649132121509303176386237494604793948312948839086030860267281223629015620967382367995101882800787383957586717660347853288944405474580472442529260301072551863972314294057638596138033995162505432210750610665061194701711342376148158935344640653001407950641686949331878644213288332087004114335440038107109763243724998245955434150570769523158209416903827793823203096513001089257702140525942660040418278645160184578700690158900298375926964561554182959217667388740523045565926424953199213335735612575002644991291009250323491514615068330412482568182286156551928775890978747490923769107162324393815022492497409734934277333086968036638020943104124887395291576014329669333503372965133754300503288641266140394009393428648303992979196128914453623338916859493241498160778194400139879065967392572583117978020302428436171981257434332419784018188354826939870823592800103614676081305421439852137390693065771752710274646282479303990261234989783959407947277327038520983784245010502402127538934528975348079268305770407295729702537672602158692849202735098214544034036871553431338335140834613781936606874095284956552835995738684232590078656928526538771967172952382270366441377406340531912565368428374458071724704385544931239729266430425206362921851626435946048386158399467030732248424584025869433340264402278232992993210164487345175264871717293567788744947776658689195801320057602773162847833961772249629830120065719836126998188363210739348913648659469557267457346156690428229819647555843001067551865520374237419083656709285954863091040430917801269650732017182799944558190695311625411172267500037938705088960919694192789091068780497563515000164081211964071431741857787103119270385348934710471243232768066867594313158050523991592963435620792297331629127284461050489946202842722085884165873298485836446268146737081848411303950057741733071882933198509593449767835631991484121964725073813439684155925073370293962084029744249508796579362466069416959115264412633674311548673591769147405501961642896591318652763249941167421913738978033065539960214159472177844233817013201153138951196450921200345439707911341348204244817212212985261880318794766165835592817520138516863188405736911620819622816637498632643612364880584081788813637649056880623733935194725877930234484077419538005635343128641781097498514367315840547287019605935499862406715657139728881288026529252416393567141814177526431680670217727714704885017317439027902959235867252127115572975570968874803186442306863112220141089871341235994458084191610498236057852888473389986254476021147264565900580316401309994407950258447207710971304224887582360218840473071283983182759095515414490984067827347268860440924046830950054309978216793353389687843664516991971145356439334502246923252051344972394033165692793325064410883098877308208346964928709962406983320264985844168804033102109313504029558517970056437480284749712399927491109963199104057095871528620491734274689605182840375103896225041844534750588412265807220453406463665211051134537885832393398979384240360051301388176617892919961760801305339148164518293517328066748006889001773879373388185207030604007928302524244006620812699312959133550258765801472848421567511710591282367311910475228170153660331669715565489206656126383212503285444986830804297558282955357611524158227318462337176351077272086233781898773849640258471021740454037477107667675090016212894746630736649824846756949183321920339786470808763961662423649468186189107185243721266670960519198528592225988353315157569468985580872340886576430187369894785220669414456026511793213677040882450530685428534652196898242737724943791097713165371594641965071017157808659584456228256196454249837528644902122431877114977564191526845628747894041806427666599921938629483771579507784135643310584007781241115774838596959135729129623401975145623172248556294692763955359484415747410642138040944224859759688865952651450944795002584318046829985293756935112800884839732501044352493943624388399356939494363181228894616110857963142201257861202482963364814320215837122962367251517047748641188011874620781836067540296564937588584717016655743809750854707901012544433345525715035771940488961537023340702482243820162258426459731082647880465003287143372514110407287562877564468826390379738420733094056224937145534744179512229205279680497807923947552812088396097035608549776215969350647956727377228967664749759666766346810477018031233003194822569469528843704520365621780266281127268520789663188984030026187467145652712894440185982862398767838369260064854341536170808701272977410877950006621353338527000309248384306854145995293240965339365113868972019721968920512847241304671968145962166302193445761659697498850188257014789394994134068240289734864414477678946719484897934691668414041431792666512976361317499945559005035968986379125122180166130397371846711801836538313954726931668214414375782999415060585388553880408925777146192908050650884986657005517979191280261484007803333267171015862311863396384658524288096929642163132579578820239709632771017759681705356992970738281296080374668118996174191021108364495321898717866911030898323899561152288628990821057001758007282843707680855244828068484976139950204665562443771218623977460230219900789135616888975022285309416795067307516945596063276145457097054971870941659254952278533053142569642737006260090462052153789669546029636973862961061077997351248978175395891986897409796139921975886991820191974153262703830167973182047273211583867043090903025815768062636297356632870681535866237866625576520993105928170039170847453675455365350218642281268305675031854596721572947236999081810675927149088577996432857655643602092993883332736105118938621823906288803245291691716599953886536338222380573251295581183826677403529330981569007813125376930470261196808401905177824783993117832560475643522741512116308838601517451443093166405587511461050904220603482818096678531137126970205279834997331759368391432525316015129967417676856820589161045457462783640239557875648817360411095212524951988739262009003117077642135549228837985950856435007057733571815224247349060496371278938908333567776063063472181340134081521181153980044724036514413513378156700274061870518584959114567282525083932379313824451611077767815349490979179326019376425864107569532278774850026856013005816627611028742570861744334699991985104365336003469781208441883247258049483680406737522021479071012701686760111693368701881902843800129829534342662402064746026861107483973606401573333473452077639882419473178483056519687557335593104873434414648357518235518154171779775438007289864081853360135639239273894363269090450612804997320121495569083404137817890746319235071168682516421822123582848053443596916023991442994036538353264853546569493208045858086114423990798472724582021369671348778978533379628527803835888966728076798606336540654318649369461124489661763628047665468789914771018925364506560786130250859183654135761084041332008006766212065522998773997541745762597559926727507538938988708540003594293136038023074078500591104889444205654285642860447858841053138235550475371962074436845456820876466047419381298825246061528204700206951513713740951871827245258745046498315843269817258046232366435392672959408794421997812417570615756129156449769294122271056382324488553997595844836500817849615314305222869346051640240591468820966023392005188893626071747731929287189909504184593910395554538113513780788003875275903458792148315201498620180437394543172757393120332268080635700958782967063282434261066626707453677224618672647723890966116593124138410580415960315170477773024347305026774833503164233484488527204162209461065703750852652968097583957365088503404082070447448260036411941965648508725121790280257827912450826526758575288126121740957330229482581631294532858919298185977336838515417924595936036917178017152146743241249377767251558712131571044494814831919111028871003676727661196730575338567057146272864217512498831058558951733983923991650345156951168225077455288556749792115152546546331780524965845589736540991104530448559490913624271080972005802841096875271842700319598081176393547591120779461421214285652591083278233191782231706726996151003355735254203180060909849968375419218800001801711658655839011525014272867035064953273027021116609334650268720108777906470150838408882212506034212424655321964722922106642023184810166532648048578490945699129797894505308736913836300529415034538727884915474771253360589105919744164453771174579842132715504547940988190676555822095911447715686887908487325544328961769572158872980171187382298729968030274255287742362236537174229128933366298685138741487358490021526889026263212688746270888570076057028221309468337162489746185571015637799136330386684544835141965029963777235916798989658718714305339742954714029992043610277463198128835603435583146700574155848574012326270341578939321749829726340222648296169994250660195552532666868957610050192688917547964031071838278181045444825387817592222537835418251721486572778845768242000028253840617677777564137208689220571662589704009492867623399406723060662404847585713065656037209440500769120217188368720710763089054946348765156671172549437904225804786778175545071385951166115144787508706113238444249128820975191127096161565284153244497755394742339671161449076628494671271028051996525911083721137577814366359456436846240664972491120345149440238159033882887321153918989090821920743404316744056949091857929716308566049887230750177290649243074943164724757391307125090765409864659304769040865182497369492109430046099320183434605504483115785550665837533915036719106337734191444394262350722242036927452010014178304394612665304477595765723991215313860354900371641291410147313464921433701484054231014591459921615271795429779230102546012573389737229917890224584420642946390177312999631123256742590263940258460116549914821044648810756040406625565306195532746092168091510742453105787910969151504698817940341344721550255942058088196079996050822184367440726606629684241327825303911075281091774954106578121450472372590543793130093413636412383309199451619382726690072541068898086496435224247253521467790801390080537165572732182349318778886794166306994611931322450669005176576248389544682675456010000609339183305020121212990882168762676428533089394345177885130404028402733343109573844001026027773927332303288750288449390632050538821620677172736040264931326640693216134297254011933013611875940471778141504316683308627569078363682776577722299491087870046886532529433824228688976100158984634943817774190420127226055574133996957742456511015872541707328015977533212509723528505998140830616453562210604730381901219249189228848708433606423124677637034191913918061433277579241799947002063420820653894280377217047012772544376608186423275302221459231489673873021217930000752644528181634586856029036411258607356616099391349565942987863953377976098868108114165844931610538320862972120943348196818457275319294947682668106372992110090979839510702432253766712932383818012427984981154400948090155540685888688051460924502922424506753598683596062610227629808059537316635463305409770865000416317631814912197935023273672707088003738111386678966256944102966133991125588330684416014007213526201528378334034143071313119121657517950559390025895878802917789682086261874378732244184813967944006948074775023555774082820362366107722383323028630498560274304411257821774572788109325251435730275306557881302141637767983680360045433452083637292939252164380889170801068000441717406974651633384061677147602990852287754160608832947959246626552679146839944718321667903803460096367430903240126377698640409787552214825919067507513468604197584774843936105609711672234965539403919352963282398169765597924446289877841686626345278522708997935591700714101924141996644810103600614980725475661784930017701580208820123590727285221342024267978230261593661456672427499146281357868668659898066277730675715403135377514871416775537130356007348916823105517486837944510715102899514416243973172737713001904573899440801678312305322447033258858492039950675545739730206582850023084430692354211726603883910211504993200789380338927723197309959977836667236424459442866602999649418955514432740512078375514770045201727291705214273462360135125167326542081200316210822256485139557253054629160259002535055055214199554049270828552985636300076306505348438714635990512472673348298799807847184274506668120389819618829287273315654349953915901435558703018461788447775580225280318279721454475545840832812797820521764705210416813746875799984672066052405127692676988348451385062636776353966325276066970261802064413085891155242553092231082256562346937825728477047448431084835626540923340936860318569471120507181028673070222907568172040131498466109209177415797557986652952536751748453968161626354565371708926029369336395992737840246249296998319832536464176726974382295507419435440547873326134601965145139093023083521332568755866926457818906992095602901364068144248544641942847315751509259903028211646968581995756315409098042674534096891079073357145756428776178937953424308422492143928013989161207841144165253840088357821671646438006846591588543506673422385825522785923089177465736228294184139412414942951246051675283257605570245016982081966083640913715733507552495942314248450127378512483867982844098954136779938041098520379270747869221481916200343273116468922011807195412821171758909217665721897720744679684358692592918103977555893311077425028593245540600851370686197508403242286125277673432740679969768896612070455986692465921361133188472112110066569656518036102789315509522820704798723246756934262648410160522619148689096692259651053376285025256062075649409035630696628505729754783547877831641956521982672502051024432393768634852617083079687122947405871191308004684630743197341345331403828846418903627992031376327478026288767284267790046908956830631814438180003606951105215402634208273050099848057961524835810001833211202332653682138524638603565259558968634671771297213463218115276351869732442704612745764179285592938695931886816210828723332968542245037438805393090548124542963221286944786546371713236041218598314544657136641666679360324609735798697489377581981728982343211955090727596326075187441564454259283703166408662758325532827501641610842712080418038820881778085896998330604216797374359727113385849475386155195956580119795514018224867432195883769964052846177412376612610878006159972800458930037453195238350624134928829201013084765871559902319640179115610925004633948907503782143487707535825696722496292612078885941508473977756590885393264282694174569032855394141865536157807366762638603347872717400516991894833218440460579682821942758453602768529008425251777406549049488943622055704178688183621425644194466936449874954110525722921822465016207480085045556457302580717524261676591044156367936665506852963566568124394334035458327271126851208022544929361641220428710291103730396589471394670583418795022893042701310141254238023204720183682910563334199518140918749804171626636117027715343767508396484766044009750333744188538901796151385353145295798245299155032668204001271212978681014375085592616123002582999978117755923952680504725020435778128067185126294752689527043098924515697442052451211087656092055208150608489877799682627325089860681879741401779827114459112100944502103822913816142165090552503879667829060293313025781950057079141360590505990032747760237769899203737563735263853839431316349138421264895653550133747349464894262730665603683896822826676910889877596728701457332588620946553723646462216630195824221323232946731840273376643312650007759769435338205044697952067485113771857534139809718504924412564048774743675864189648805827646403183471390909508431285807369588398474398713126610511011091020694838126106776678137496242274550992160480486807759298039621776578218536935608781438064680995055974663552436404347995497531197370689461922014981801022531019227608360114343748443454981314497717466729282946177945445567121922568194402912906073263305585571217399540016182350505864799538444213719811437068760675954261066294269578206749636722345943738514538903602154519741099011932660534896368959498459078213970448094919233057276306652481948421182731034056270636559322051417831522391830234061353790993919898344877856960494885234256171042426990087819758248040073769734129133776231395581148918134684726158760322871912700860558798173751328707182391042542354694036610106241104845172993016071646946339289925631975154277643681900217570187161621900347756689187875213763060884513811271666322152862281569189999252742662940770869947181975094176907755302806993338754884178403650689497219392119642193353420209187092090025432397321801512418510490386839631778419075165755316860787452477406254956348930605134410293318991308246853303100748397329280635987078611622040550881627435442097032288350258801940645047389914185825298812959862232207700370972763381249695484385283531270192019129804464920542726815452393793503587211798783784995048966438976170793892606400865663733309699617385006759470709211750213688699870703751198262223865852043365398800726581085912637474041218830959262666707494902549623118453691832894347109143111636072647758051660343176987761403268321432027483561461459887869888553910842848585821304179208544658726347937278365070886138190106861936055606991409564484559517168820644698891473235794990745999808117740335148973250439882919991584868940694062018568513922527614864533657903949806216290066307732405051516726019986945866970481087315500926032429392000373875105788235623820798925224508315986268128527326685285674326410570301725655306653669441845651516734230104128670303312839483441314903473499440036600623057953231515615073135542949819022868386707329508459837334637402296408599892107713341440762267550505180451473781564863360985258724939127540449596399888199611409452166904193161866110466909948185098949134651753814334741020642885173976147736366383142586445532427964554683013070753524369433270782324453302075339759232136190600156553140766004215674613358225428464980324349757351729485634294665731707427398554228350294312591675557209775009477141735033219056951225614703091159060234418083424352553200089012371863372927465983324349525323758461465676711587062042056179239126221811985556949759601948717003260385841339998546667414341479185340382849613533799005841551732649916544716902137900662607880452983954279259340976471740044859867992757338325218910507846031186105521139543792255814618263878781216209058478715952676612762797618184469661489352225895275331569580689725257104098848031598596772194383273327751413716382456532442197027487195664290644310038062062094532167726011465868593038196221814567588765187941330419872342214198684735326904251552243011666401931982584740399444627840070322609655999008244486986131273812405627595752251320557633132511216077821082909086756147991286453146199477334047776100062949138214110158278902566767920144932049444417138108828583834804745679975467522290155860679580694170869298504625567812960200155346081845632815235139783770396648376977539852138417824786759648986414538882081783532790993972511422730563341962579810386948934574284172355650795623226818557718144918139838390510013586983335828846486960704000930055744517253048629368079701354495503617368616750767927619460169262614760062943755851525455512547279531855166166249800323509044794880345623831756862793728756718291221355052451651163538270678431632072967643925558941649619606495476542272813565835467257560698783894010590474305649365062747547050787888931470380863458582681056729713174608886055253439107193232772939590645922245725209162769519795813336718309639001104372105521600797479722002119082421709416901545804170991038332104918282508231141370378789435363229033853438506357756949821771191618406032120276108895682700783866550060567633782207546961840790397693702422219897025899517350351227913728152451442170361795132042125563782203899176632407365900462567799172397675417572422011300445126619531248406145557879813367479574827717581267057818155615367352482319987379556719278700262326354434220764209250798425342174969957355761879481861785712101423887373512460615028234313537536329142135339839339149769020139311213200224080702864396902309695599728364360287652032404902917738129650158924971250221099425156244298627713325081459881732473339096277300377995207447574933059442833771467230879892263289184637439964187933140439149490052170044669700557253720006617442879407452756219525691431843099673383464390200620850534800428919672551546851642840494626874064395908788903961511952709803926701394050396337036303936886336914420357149109407455156457800099785360940846359301686674701831330683449428442005265662450680490004520342746503432256040687711026551437610805078569296360643620415441337407372292387375880076599803086712934343737206930258243287701475035554323595728001805467215354978823719776535844535474051488350395327614090679152445604912001799721544488180984683645312464157160562766352102210352759429255529903943174952034765240791316325242815052118522914123453269739423034576601629966435231182943831371584910244708802367946342772004189042742758363577113475596692414136873211028302852383635374702475730146503754140000958153872001570443433879170908260133718953131832137884695421562938209687969238908149756723624090525952747799930157606491929683452730000914196368952721600887324588283886213091576630975061798061288317298168433128491553858649201907755920220903481044460627991070860750637894170219271663379718004582662251380091147075332848503502560236376080371849766786432119191562077554754251005472270625481957694031813685331623884630923545115152882404129196873772239608967800267778107788572232638778470245162465206169173528617831050943931636253148329770641261794758705810180307680236285020114364388048010688643052396266151599999007999114191376890667163499020781695376695315122035467391873231288903537968701707762770500582959922893929806828017614271501347015852615077258188587055495811877668858305860335686693408400969070412715446683217310441210107831156547504696825543928889405954691571919025693279778277648479254912984862965275437669407075747929332476493385346185607493795664125363635652429118731910984649686791943197963954090984526093967844101893301670707425631988725813839795671894423822031640465418734555713464293857392988936973771271538167939850362667341921224974194841559653548331078321526434284791952656740757613611142757577937068708687074579174053707146426183258331106761551212884761849379493651183751898402907774235615396380986069836781654083584929795954025184441149740178105714188139162110509501301377301007885827499921652477964317338656802368097478273980913823005964566357563345061867347502703093007746129824507312213230923419472654510716296205047415381208491547153010710543810708335364272398353358976590580047905421844356639080223323901187234158377490810618568696013071566615130459720423833471072653880432299138583403731986026445090654361796959988661347420598261724482651911855383105531072134214048814697532264976046628916861973296290536055088421241651097183729599507505794790539191923700945584734767001239830482587488840525332900499033249129430037507343750272447921778580120892536942469830662692923238247604925704313659945705933080593511703171881492489116400769608600235994153333584089977416939049590979046315191761560347524959471551737511289018121271518188460235390191216536271497719503120753412617201504442160253471605713631126046178949275691731254599965620602512702297636529425595974628702028146373278692105492101056248788198865822057033435152497998347871172514951995913158844652170974359775957826995217828684980015237592932982257923794664070416546213473287728112983395746812001098287355864110149423731312910237261098759136025859484425435822934251302851747489737226979246739330791885200254485378852313574519763913657477889086952722349213380948257997270285843621207974696722849249219418883072770647697338022981362107750791109169743888607289577164581766134925637287903526991075865125902014675789762621644128428449846521128469759720087269470115676526506780528670737296010035337573556819553404636732979103546357669937957013087141190477056810342307212394846461051151269412098814018394717256959733521344457587846360673527510930675199121049689981205520809760018841820067779922198452931037727920960058687851882084370128649895714685483502564795007065034414309806926635012832503297862440632492531683371148577171157839533629565601910619800340551685062113835274546709417886680714660297169360584993045489291669216833489242653780972998109959243077782777215438451798648185625297499139516055826726138060776534025257032947093052245573659599104475018335525177912870970589668728681116735561004814712955328936442450980985296262165283004381635344451022132868080821113383247152448639070390290937651333632124319630466698979991054657156784418769039096561891517822154378556871126992587657963923478774610929318620707767938888272607012409969316382378857302368353577136569039289431669055959777544100790334489127669035200281313232740015593718865802144009079679322077667378187896092418620231832329076254071892692551100443128533745623120286664202090556545510820718296887858233561723089725998862411990878452977846784458863537328153144635702999049274832877724472797585744819854222222847466624943287332838331648220936207433816369182586878086907158349528844172987440621275598827197457359868609022401744179971765638548986202456232809447960781059474939291141608469039054816106232780128682567503073954657885081732523873057708271924434567695841031033538783310811577856442084046535910434014419632156647418085711629221259618904395296196986416438355066794171074204815512232723611833917085181019585571600423184373347034936446661865794813791283621640907358395787303810860443259784339165795835408450916082117819270359403687808257735596578205515052189856165558818958093483173161074072798224168768315290808293377848632770321704167238829999785547274705851572295444062554626239872981933832432217174478065725626216307563874043479414409200211194594906798623087390321083144574852095706479131693712769170975644948955648784975788224953759754386211098708224084503007281084525091411283183076434135185219354818216251722905008450836656427344078609279012706379631505985669507019141509793112909947496620460286360449913752617266293436353093768297245380566858460075475001953447431571069431902613314706668911452667712372027508347870789299793461649860665116416928799425287322459129113668573306066126442543643895381215895695011339765633318260777596225267261466189918748115517275578106430940636282939888025349811091125787913224753080808136048006115352568659378923365147805751671770661496826427545546140161562945706351287132511021891167218944496160521016644414704143166572582638506625703894024033974124271000790863401440862239967623937198636372286903119517318843089073335862160249890953416407705675104206670235759371570178244679892269190876112977072113648054689330208894329363246513772150054883438925742526276182812994554915481279945508367024500467318282419449655206570637152292422151996640125266218604614011944806564677673280348695108445062372482412451371707271824326017093190548079862049734420851836262377269785962514589733792266624799877905845062712048769943563833778609196869514624646073546424336706024168476444820849691906768547672338330421626051778932026986457627624325053517156348880477318145127689707233467956328709430540520878451232136341117966917511349755995805419703660991862893242000148578981514315231906869500176998535931505049743915504318029526522568157085800857292648472173014996441149706537419029529439293935025131313423807920863438209437385820421059383751679596552327513192384508510433442143649545841234577320057895833026379309960707812283885311727590265662356297254776605089466435752276951866338330963556377904909166713957777100876631497018910490582376609645311211127120614554322166247258532604950837846742935806337178066775990712033171745602026952233754030594617000212035203850564646663566630751382662526084511551994510439535868283201555591687468451806917455652163211067235150402949360373717762122088274751779507723121948051475987118486583469391720083139771996201578509198570074918259663753122574581216274823214701836762782358677956055970944801056845867691973966448941401291751034176883230070859118114212570269754729085759026225282016633300481785702150124923201113350940019666590984505059493987815249316316555015232671391798000429934023744164237048719395584215352449864904296561468530391180488554057767427168622429062022527610387924740486058362711500128220065269836260473285631604844760870539727580104522807749788216544043392330322549513619898930998091562786677402994739738118973733098339889681209820006954640485992610063148028785278683988626063878087189928796000512395407680196213825825153466321108022407870592608800446386075548766067647703266883768031345117713679418154144218326569250775775752225475368071879033866514403100290163793990027926773544570158568111433416392964586691704110427544052246571420868473726379482697093116585097931277612721199431401811151894291104367157537523334911297875363632110212750198537870086541741432430239781877858345176406145752668118836872317682481886189275126090250867182578741742091633134864601239706661643754090210262836567866383261342270801665680495121240168914534594864846186882203639781443560573347224711751599927135080304563428045171323078948823316331523956855152435376546773816175102365438745708272521810200739199811435580507678530352465105932281281416991236180292228110389438225444865012873323091108620854415035082869513702096333038787839969312116390782417773052199255229942695893343614076449445207633411610559500270091220755104080858039310798827153419971235555176895907127576589776413495997136795013177255190768558808360242901731437065734185846256889891401335422233288886861626898162046220131411159497420199510812124226736017725462485335679417692773576296296539663702210580778052742331276389565569953912090461071843963656662397603710828205708566986998845794374869035835840212057134998044753383918540051026796423716852971989641456835702020122758258561465023724314043704999350190618807685206079565882032755232223228108855696172305941116808114894011779407136644990926931113610173912659738998580424753168541108290228488951930799760898709939653284515123219183717635317787669146773924551919474997927658706912901056153704599712690433948517372113274555343342149149969865671151021072626011320190318067020506003697114364913534152710299585881375480122261498308945717097461118048712832784683613495680987428342632535569429260669273959144995531077914312296618385255743819068175439845504526222292287435954231970017918542931206994890153361262081645349383526126800403709057520435754887751964549935539030940218905408351587687262568983194725026132714164329370424811201166198393339504174502773878220187299988353357317338967217076053564767186431724151397937036265676800390343726714193537207761483167153566192039441556613852880106187358057339842808974731129056635571892065698111853718626856136583298271761387055298336971003279257099266378888385425658094246182351237836771924442553251594045026406476309503280482266979480417138227793038338314717319464744993115478285786218048193450713965708525905906961510254189439696111715858412818652783318820145360397853910292505641261346904408906377665513191291597151687120435968207903088116333726009562640746997947573167500173373276973888454137702022672864656296176346904259554139855226443967060355645675826169706652519782022549178602289884583994181904257464294252732246495488782061757622616215521612591620704798106878178482727882982912344478030982780290075582669458694805292717628370939975854182007831839044986914378065068534085267359476428307289544527929842117315617833577043151500194617598309562395861459185252720870736411783447801776257259907770110383079862857587605019803493393274000740348732671903311505515560152507095498921393203896145718111260762125664733066985071849682259648562613098338618341383097028464351181640211641729103722504032863199466890697421560106035227904990448582407349197779557593970361396395979225482535730544766916340389130806523439610813253034909709859854480483877526391471268572104070015915584011507325281602158123584112957364928581764783998620104981326589660286715419586140594001390475384071623089811527797092446961032489137036843434764625232297509965424197099775005582584543206014404344225457306497292918479952887716016618298818324097069579187865890677215684897364814865376289345459408138730459343679595036716960804766164131621380860263315402604978742492892278303023624475829478004530489733578826189268359433882163325387881181196966619202245226053465256067061057616444806585212953406716767140604514562274051449083765078221033371098207803225513651160562303776892270984594617292631650774032364682948444373702200423997009659250847118046074352103047155686346329201134251350940634272403965729419829204291352524709969455479030059657829571845831061761896337527016117615465111996822276651506751032103232166811418860678089381793413846744598235690170124009684612213886700616532069778061943357841107628984043540811000229659712649354334757510920082678442191375189389094161513711260830076462754923576091355583323766668359005894270526058181443094494332810487372266070345107489288721856871321387531494965451788520498540710654791057425138043555969757400855576824215053444696348899948344322895008048651900748712072916546025190472980464296086847128475316819467696014046151529367475502991463959589961474855590333093829905282982140379871071800216597423509978863408959917835108109722147604580559214955901101353936839757473350751469593416660386913421434099436041231277832148037784975369814374798559294859510424115979821997584264450512572564817639685925719585095727417401833640671952910103644720552686471855190500253444283647891262822655622663146600153966948986039036972938416246352094521210252599699449382040987419937991335131287262489724921956733949023187458433244929851091383587358604644814871718042611426876976998358068094782243549252640474798253323761450649288395609696273584754112847577279260393867807704314099873984114655155497924995178869728987443916168412506227531061833773404460140590778533713507371896644823442699021995059925775119604378927085388688325068570050740489989200671391362353888234529641420753728477693155106313693704559938452103717286812779688753962759803749289239939760320736909352432847813689507449807887004902603102693363834175798659395476961306218223681676664713375895633510141510791699675201933042237913185904744933861578295518623950734911041637278855241531973701944757269646935370307919231842202947371420740558300116222441260397809131469679867265729016667925349419337276259848206288203032814553907380100041372991646806119951217842088985388707365526435372641219451160680168757276451660675904412076785835049045427747659728267618834039143509919552122975324692362531521602063467533238799143639511304127017364973176603927347023013155770306616995871272957961297136671854476089519434566296469609561609918620329937878983052291001174919960487286095188115813339516911658873528667277306960578568802982688811300155675316878037765600357665613969627089060688974389119533203880313461047412393143517936669477531117800514167665210260851252638491534250758289131694340002784408904482751949263551750934962110902747238713489134342268645892799059277653514873086705496934840486826698757425039045051286930522466521358626512733578531395332835364109094256165994235106744470668173365282946345741683359129909781523704888802898536586834295631843856585052767839904977635594129896357126856769769641010754798630679983696558322026880786711371432696985284598388859320766786661069940801304214239500741621353496822643609142445744907097202468877438715150174101191321540982507462431537979841865895579581858531296807938334761945386521985270542725789108043205358172431854988185998504475541070765613389507779001042508418990835813332686082630904290481015187515686651866808784967413778855791272961130606512405391645393861639317698793318977052414590246652149677764879296937868886016914161916679836946212451288837341227538941823527996319559893352122449246392374367424377579901914599085588866677707659259928022311147843786836298605063803191461191953667165623542245834721046355658289679942577989937847878589792948987308195981568905351899218460733455575333067499904807785808581906508883983730311986107681740988967812706770001690352630479872795761804178368243304269196032885462974397012730436685845090387414151658069602612486928951091065683523910613148137850337804459778393099884165725004137367114887378667787105110550296296251156177044532083642201753251613731991539304159869970311738325239369641826802599488613205045700037562302182571582721583195709562542986961867459845778346193083466015997162127062987993238817614331618996971933138195799875620007626667955992994376052123589931324895304787888526583570899083575918408589977130142385317424664404638179593611491911781333909670952453852393656270436401600540488937619080476108103658198756121614371365977900191482913007303873458422666446651785923291471048080610045712463947066458457787150712819280037615720273907475325942994262654612363327828194001291381328519639105954255792273378787649240860399810721797300502085348241864092365030550759137833306057559597270161892704551790619625058089449171953047597566852900835376829617210701850950585076195347560189270029298010794969089462847715361727523414115665550222335667236368285093814969924035878222708684226496219660433837793161857733832266626641184721512351235780931305377027395807267773007911251426318044368301658705243076399923541803852414524158164200004741171745954665029762863670616759103908147226810250309749759636906157578751891304395509281533408749368789891772379662899425811809338428745078055473213922481049924551123300383406770778731670119031078841375495505056570622061891827758859729202211558186698028501814952089338151999296398313721736153271435080829525331071574201532939080759055166430734038099091032247856216469226514309483262508778538225480131313727539507399690993398696451096228757675722581382409167339400918062597714994098019428035706708847121181234259284387711827707627704636166064187940402884557791716298519597943732420913104311500000923941064592118992735143011569788229101045345229769610063289213838659083786282920134984262554055559600230556502949955473736208654191598491266645202045771566148903299778671412489242608030391294986360518181993742582060804788150712742760486800460413915708310031553015143368318812086176635647444215060800576776874417309043347527749739534414362648917238075361353085015681496353013681738902348245088303382270454864406521332172026353404700607921947558297030983153837899666529970686293439675092654642844624598050134507480920111731571876206217185539397989559517663577088302705492559531301644473118708175271074566212752194735175842469537918842227840564625460063804899383083447464047484775233950976479994626593703662779478902214468417586827197361549388539623753704504144020869334663489418424621008859290338294468180331003027619515337138718294057801425171447894850630819733500364271256846610733500482965850987151619357276868631316054496637381143642840454999241205395691603957604288581438513613528478529911663282791772226824759413397529874349897731427940403152707903371962014994492773388182733146636246005886501057253722404838065070303942765960608748627834013515658482289197888165394947593800755498590034155416483837173044920593948390393919355146072357940756902555655520903848288411854207018184391554170784003536429323299305882035841185222948081458696801512006967682578497919398099153595279185780774729917194203849819785903891997802912624398019473533423877825877657441255001366884367375592870958071415054910537223287838832705026848303085411803447447307280079763657426765567209895715752511334492432887384690160541245863481026861184547090629561784056057074709815395233722572028025358172241529504788889862074194693922834440689353656988708148903068682609798401636504062765964661079952968821651401764491166684306573635485256983364337258423878792236245012278457733852601720643735655761841458172967190585817313319900454966969569179125601619463309716183212697313566649615413580317202750501566315415303951084641923932615649864546520877450495594617783750139386127665539448906279575744611517642834564190428141823824096574493134010408147497950104936617181805045251920533639093053514078218469035558251272843625484071335918568998019511428078655363785748423242059691685674365377836641771938512799628678515702318338398885978469900262109858919878375685046388609302426597840613838546392265074549584172476688150292839446106246845521054326530278387791569647136136351271327685197175118799875655660098904132375464687199093174040071760190008310845796332539587679299309566038184517744282977774973615977324899817875853339005351092161850966973911646134887429414517981955291517450542479784567414054670670725535013721458283978932687484450296627843739675300141547650358275383419032924926697620079674872777396793892888518227496472002093924183601103516599812377100039803323008242947659876093490101896807521093907595781910505395355381109708285641092492153373281389332225320871574468987897741006403323991185368012181459434474513319093288182580824922086970462290625151741954514206061673136573789222873114246589310081748077555248250161499239853779397169356550096796124274117411162763519108933981821176899490715918359524435168650466231426705445106853201744259989237388086427283034792487104422071966359040439048478120573053264270409360876805520398090452676535607492960393304376246408776004826962485477134311574733862546654072512892279957658875555408815806350859806067694522649668732745768544773725968319307865110906283448374684808895085730377286983889239090271567544435618629350693635057131786834455131203502229866135732262412734654484162452473248878502689377226619910627312882513556714560006306330372259184441782429219142739428643670069462410875957816313136932453239847216480284966909603559392304840416627686762905973759661886870321589790479306641825072625173533223567940569615955181862882744680783334811565787537423069746912725340329268329915653511844118268997685831854717148841722363338093096790000368693086677805134049705077838016307380692459372264261109587823577216198272801835713046099006266799698572498241688839406727112434614859706687000117404668373570890325946518420790728469907277805265198956666105851627175232669414471842041014613844846218910731310162395443334182215551874792983426365833805717544245985565952076395275952518596990303378065033083310497460679673994816695623544536990160622336154198720336194315984086745605102367761559817306157905467903672289498057968112745157004183726317276111718361708870261805901370447034066559156335455993137005544174719843380486362309290901625593588150461473585014355505942695568145643739150302679065901330885583809137146344520510876736439567364086361905675974702106906281330756978724984801292635981767231995118606138048785851782239932781375776091028815518649698883550364262454690168332988850852799093080152166359580794782972944388197878883613720135587063395049270182100389830784965204843988344255720948158696922568593150390526455906146893116725505534090628424648633517760617850572892539747857750148695934317156165855775009064529120146781788799347698974395210495437905619238785343782770895297081438113082625153546984596410557670369304567429099993769450438730898947058129131901898283097251373817877936417294339097613093229426105905016528212039193818372477197594456154002052366897617940515583714745625403525530986217701972776142107698635789530870977813961017397128423514001021099549762592720513984941949104357911564019215878835295309180407656644903234962970777328915840551893183074304033665671509261209957170823756027580360783549730029467573767867994418231026107586330375970856636817351641040115750419257036982116558923512658258329412563795196100506148194544089795235192695686604875915423997732627781085013518780788070418762621808969276669539120889795921172853960241871388039234726799189731145492714757365016365253771012768947934783892796190514944246869108722690840905466671039075129074427996278828542965276073596582954526879472027059625341558150785097642306821363289371871384881606752781703812848412780413292247582182862926182112026661846136165484816342930799437749584602000070847253217149497170375016147818495585625267112816117428236167856610363666744937263674335137178516837834279364225693787078158710339150330446311728096118417244438254547185556303460230174304190054070501960025143525696670520448121727921260459037875242098341457006570659532084433418975165353282680663659471530827697604312254398821980769462789863921301016169483867673956088753814212300037890959006308561868796549052318469549044806501656014124481734886893428867179331159949753435290904112201837069281980499886995567570169662646432506641146753444777256388157982270584749238875288331177943157644033245584497918201861129764935760343072806188156535102802151855409327695955462922759779713919934294621112586651508908186839482044228118833536907766126257448622318168739783702702503018889592921479038038891707329377914652465806343586110639073520754319013001876039797863266453812844010461284490430099522508687474694393808200070592192932128833370229171542467552973132111588645280254342352640749328315766666504695739199783406282288597310997261174858135483223454357578445363687116115709638846857201821630804857929151828085313071791442852268191291615407362280381599033607438038826230171073026455976571511055760458127972225507416544986605298621078678264886162304931848949003243844213359558136690569526878109147825022456372469556205080714224763842464987319625847078481936252059081634940599186862249374965812939284307021595455557946346280879830318298501963431614441947247608718789111142715139721568889850720600033633358166399845061577465821885230356071003784990628606933783384458892165554106615896700974215186464398864583932186915370589700210838679190255910637839425023826884056100808407663254331905355671372772191422537703455630131711519697566069846677369373575377664442104850872894102731488641220324567835906883980367352971980476432902929228583436111946811769812097540703626427844136323688397386686015159615512589124028635669189155451267245825372672959682722950420650799455409293592562251822517563111333972260499889332021516656445155693104084060409488224340351870269877305499428425468322258849739449955244165578373828065229719383997812221969358085646087733569125708972036683091122870434339981407176168042630498268735721203285216221488298908545961108516790995886010193772905629161461128769857273267558669972344218325592233534062337980671366063871819518033271410015008830913714785576694179263525526984332638788674197991287060940402636164794561533797409546455716622580207696470794559451774934713098275214632457608668975179737140876050069547135436592198986436663650212684655940306212071207533567615722047835820766897307711832833041487413028551357466321265267334728063155246337876636142501692428473050691494747490295972609663311164199067466248824797278016272306251144285424677728017677238901229321320976066625573955210269174750686036386737468252220184410198926927611435065997841526357090594913813498628929247724484756770112265331954230309624850885511307281908002990039567352072344550141226160451333346468532440090551627460395025595114062972979569612857853146259807300371730197431297007758628679352745740503381390934240038833783081963828089789037072447720376669806082719637920602505588668426694295871097131846822082042646686550431177580979368445403023391261610207745861229273846668620218747877295871469003560029316951116998966412358086269625242902282280330116471096630858511238448509431662278560887988057135643707560183147409653297009529467668872995316402585557924790124497765462026054611695614291801411425947448064627857219212185917408512959161330766028232956851193855521231675905218381566392066638999580089065689541467491384098747600354526064950886575852027019629025504162397039424391422689909216106648804493259103367987950403695174483841113901518925402457422835023085988657230772153710878847462987504304171684987043693158455547627119440669650765495933232550930241809227851032342271296248388880065875048674617965561403947175333085022578493201090110191889697142046762408674037627525346202128703987465951080161453881314650427673054560629564507980412714596307301757902397794281170269297099594129008488254261364708300118015885150759054906863862426206974509682428597940435881748955174147850960390142863786982023644453463598916227006612469653790309436165164267100283847775021351793231898019026407824442880866004065517038204199706242811841621979509876437983205372027302229898532012833575183143365199583922401155104173206127404521422476430360200734036152362957401402306045408444740103725132683426505146793146745129659195594414885796660902958566276929067459657716523578296151909342500187631418091764750755667915550847728715097183486309194333721351808816480986520439237890747767590411267130671816511024997305935367815048324429612521297232854455006858594286600865134393058353731977278354694888878702637142263065379725862723421505756980142138873580521141123481811615956254516363406891024238803481141678401935478242454639687518380494565119756176045346211194327710192011509928245379312431650184742745885243708173768959903203941522028134508482671247933959795088736144618336317183571592654818971683914384325124468431141621217360037117690838282595447781698651010307402205062646865206545588480197218525697828723828799291255757805178492447998674259171640165173171021066606119693517730089132161869983948020423367861395826973095173622595534074857707971222529498897506344819019883243880723829178664746444629048763492199644437309160464180683811010579231683266809918759400274747624276227279072407256369825420420671824614762526572879284985153946494567308532820556108000130918601101640576877096058554283722214280967714760909378411392678523067589020049996819022806225859981928863706188904008193652439714769639163451484359909284149226634448790998047897475560289856234399617773254473532461203684717394464052651620572625127132072899569124163712769895073278543907338501949729428052416294128642254768392283432509519840619069875254366690943750497477728839813097759301129612032352182576873182314450681374629684219862668247896752063357081413751934181634282714646742664287045361933608487927187679467766891398869945797907431692411846996313700552090376610647385077294394373635088362108657077555238545458479519823447015937906213233391983680368408847690740986312310965920793004017080622543887224937461215846054505801430029514444565974432655432965792135861746403878647950472486251935731220840846080974315251847591621512755985154401099041531384415102263993507339151398763514629635212820860420820891310612565737553199418954230074223927692594974045307838892602009728725747549428353959032285397244667881911994431525231295888231635285093572407915384496106473541700726241900089565631748822062189472876998958333747631992664408167691548686225455236558075074863360374774038172465600229686871558362304005824921065368643089598181158410810446965692577876930024285163616066074020387191124945737452891333529056389498624532257245696974365097824483816100660589476388062952507792821303435376827953469529798023808079694620564709759845386818261824401361130896635658037604177843026162451565743402844334701763917979780502449880038295461112959282632979146946998277939567905292282615057310755189142754697370723403909495969813883883288629564016121458071160970560210017022063829371438069468061788911464276028129845633151541100157953786043460142306191632934200286525567845091996908132195747274380618417856782597465226463736118675682837648659120605980642041285005908456788623338963023103869397105290221003018509210291447130607636004222540464692886773438768364002596760911799062995906822695241746363092822745647797555389088799597263135361080389723009090297666289526520990635714769446217491481127511247518539882957444552566032527758170980093554103497489264248490154642583076355738293847883801622138303586932780355477470019796219237056561695209467587421449415136373115741206375974229764698688875663726785054274762199754606013015026157880779201098512716721254611850502745741716631362155081462971277647291500336491090024093384046338809082396985559155584767463841416595572266342420117189565348977527012546961477926327781114209323786251910713384451476427960055443738289734126103121354357999477764609217599501877304880906098051072075073053626606820319045973334596043576108905912696635609969843678082511263440404241534637929109929481822429737604089200004934889398839974463523823567071185580783385175570621484907180614210801777628194258291266196048966007217334067104265839953607390748481835526006949602468679908126909275597052581851354229826348862526016462811461152571323862874401222971121517596501681011643430710279494024443748503850090483692824070810056844741012977970791864886699679589250156961806451628593400094256133754979250983336684024223644259887162865165161275057645877590648010422342389589580112726894077494188863750556351632210691185971888043292753220177577648313809367572876304538104980274983548976144829387249790476930769756603133935378766279719246805676558799236995847413216645950367392390022586841048673255521351087717336255950458966769161563343683087109272777076853814085271818986593561583436971271581964116540844943248552760209970240451447217166525491129593342818866037225546250536439248675592054505309866454861846841210728457510935870269765801434240851449149428645227097931359625614603344998570251337910371754459548554789067456101328252303744454695621783157863162781099285235248143264807811093750486095741315087675921405162461124325091491770835693790286913116822475753269155320178316717647509715172774961505812138786041640483746569463783521286869306300236240665005761815011330513327747591160113583309130785973923649892800626428231181056151932214095121586671942135523989378491294636948500869707153351218583235350496207528903435189897078183701166224527186558034762854686336867272507912163941762915153448635505678355053360150090447475877686346983036424192787646964966357842484116356973601247082446007954651539191234589108707523345265166463875080650602131429887565150439554070045535259261061590070018825323583703461076016459885683529332166396481823276203865271401204030202095425607025661070241243946714972033126234058825053608156372953862624324941247794704687539822011888326050924261908152567712320753874560624320955346758646203226747280167570758950935409091871714926223403099560330359489386477456163554613309939702872896844081121977858549668220112484545074277566599284126097738953854036386131443074233759338432852652625848969677503899897265609319487747571169291941882201928293054187787781294238284775451262352022745499293077341411444772011129772802179899904133698588389712937228560929728991436370623813901223866382677295082242588670314133549554137868996280801812998760470337085530845597636765352595308238491263557387028874022117019713050941308752265105544933926490843400035961263645094705635441531710616854297251160220283784002656038528442310876810356387563429362259719324427304945788612372634163152290611363101168891275311639044983426313843758625575323516923749880434925522945673497709857052567904615166749147025709939787484915146037063609883685772632229276184082053964512962513340309382839119752784930330368884250554128241202408146227014727364005695546284123258715649320990562901794738695611297072118961759331272526990265391753527050057197326282099153398573058916951958869142150086474604687682970157668065504378023161899571454526320499032680229496416962924221710361527208940888505230633533127368487130352295586996763520968306382417721657764192544028536502082894346698578823271536390424998939657744091790937518183369046038464586200875011710701243474479183850297040827148248238119765487315866421514059254850146255073464631036264628763896103646601961808122489693697684869766384308788502928160415477319334640440808486610861872552881664474185160722311683623970047043707524182669575741128908815705827137179061314800626916859123252003363754831061612977163107283193027895606819285051264751650781876354142953746617568375763101578725548194192303591312736912954559252862640370644698296536919919783414869215568827843332542423739838357905656182328100136305503148608966266608647046995396950072143969797658766314157753604975359610008685852484899916592309527250530431108595999205880237814840826106861992570902238219095082412599665275602358624263351660802958051065548888921176388730596176433792543425915860119867077292610859142505491808920963588665880028236634661116161791985263964832472466615346857420567818032017663091742639363537896951681948340317456123925579224308278379713764501840611338891843063334504611699973535891821335352062617512746565298199123201357752941357221508274447251928628426894201808011135856077569202808048521179761802328302121888666667460908151940383644375953898480422037496608637599184412695665360844843213230949315308279418180447475147076807805916022246444071307915334463014464839007066752929894834074652082556155162408228422050829567247245844764877230773552284588772019792528403873479360684581017171755016938934466724585382718020355278630426585152894588665397422725219988544679888717271818692092559820274772694970876314603289367109510444951672748313388737295264578249979822406975302239025517057810558786137178907330054609939718113380590127933676195283435149600597984066209463198863894393575084973369885913441068954771985429580492371849691947564451320779974255061438818133245984232052212454849983626812537912413015859552220050037324870871572430742076089897449132210093999538895051283557571166520078971431664074001060890179015415192145240209361284088668542159991295731041957284291106308792288344008575562560046435661624857569197208662648340043615960249090246080102884085110188212738826161711225452862631453619960419622721172493202291475015083458155833551942808144107921205140140502339554460443669056192257864477676339400581328888116486100952760917534684762802712659923402612663088116532837890871212332911779299636143058769462303240163609843614105882770798641058237381363451760967227852065145413134247187925110004375654310271226400070293118829463480662572631129594312867357951970110306698731262882037457651601701287667702583770448561964711966861990750600038143718774530086679194081519595013911379931069642279756169445557000106900579711735186204299362015842865354074016976650494220836589541111879970011821419306067446015253137584508379599124951923261778505238301717476683498538167594053664286232581347465395499862352902770257410255895962131979633266136540971543768000672422394286792255316446157657903654156459502989933810418923883226323031712727449455728547795612831038215833040574002616619500597136844014677697573841856037123283583599309540133695308914156275892542974959093730242307363363931401457540485419266771149155981550925862188405960556573027111522132770379695366186040018543249702870010537180226076853053789371599565776499419979694743444488406339689390240645965491116067874659982167852566529909126677163182467805363520210030211198839928488082667915265457668620411266204562211362933942455424842425223524924000427829432715213511292126892857105978717602207548771752269243738067136525611319808076284290145486671112652354954378388453386024532705073566544392588502733213439583634456909305575531764825339745266683729598813329422150590438942986574762548095838931617850976882010482305755198417308764300539846801759257853140227153655471977088306709064193930515910444866501950424748677701746426530447441126366288213648034105736022944219516744355656072737209645212806034411174183354985474718831766277967127380607581122032207272540217540515488150313909967512733824827243774383636407374692000993823902685247096345806610137564772864721549995010466687067385061374406482698754195302246130931103927296424797262310251097522334462766168231579997887967459137210317703251902057883385428438981140707020960082738047052593792868790327328244929289306854135132556909920000019108461131584880836025651003249724176602912443034483497319412847002173004652899915774938129877379189377259198285994673016299105432710471894505630398310975094229829380420403302206682489645176465319788619588313764628494734015919943580617722122568109563439392773193723746894922177086287975181324654703556141585042944786822997379391437205783958793941617119762742233930372482120685864078603073036846548086309536987956471598882956357420891652170259077996127445493343106438873928897431665050810820980851249647249892178182008113017466161163751756601532474081896269175222217075890010782334198868538141222941438669269755328497367397003191981654348253127579087036258467010331041324704227211509341510475664293461632926705955874778932409810689583740255236289790279553308561608366302069858086400617132475483478549273566181509701416509591355465268577829882608246571720783641954102766348334650151604023336378055703889733079854281157740963324348409527992146514522629320490072735107767857402211965041082335010460936686409235714809446931934544059394861788894263329901415039468032736131488646001407877772849546369267874103242410133319856224701888807323289714085766313768353670444300474574861931869733194519028935425266742895592453169116242380518939302712993694640371182558241577674628825332673750463426788170514908610581638267361434497514580713096296047644264565396215360497513062215960531939200940100387391653084435678464581166900141690183700434776176207439136687580940710451400343593391863921256230830496217063267970683398844188273909750416188879715553703049864471666893252452386840126881456878463184425762370020964078696828452996935744217511206570606644809497534534576535420609996562450071164003354684043159217010235939584086506577459029662987111824212183505895435488071850932598607928884691192386018350792653750840642711404417046502317222764515272239956120586058662097475591620428239539157370911922143830861245475349033839645042949668365204596687178271304163074069018232354331598660846388607814859318965660535361666091065919984945188962177888754691415183181032326601980980589553844622625100177657818425132309185147389551092488360208201370138460921614113875635881061167204481709794432494477572171964844861043599997860805532099079742289877063448354796759518514222157351667898538299772325184229839895123492588244159861715049700852884435493406343468813258916082475824667822680932611305157359508467965043567418219634820476150708232791544369964775943949019294454821300348802655492006251585059937301557592685494829897113270724913842938694941865933651686994533914876519247992201866578130111522562354758943190892006431616342248595449190522149951759184385418330568091661777523137239494425062309549471790860512828839215279918961866975467970824743195171264091271892993884660362129970612131093515624453267951815589133757377528681008178507420677369782643836119816573438619785622954652351489312257765601387589441247793004112147463492355654758213007459050324051956388728398156120447455016532748044101839301221507757276366568358165782610811634928634416412934530217168255629879863227057446360116311427701793053323122347101411454003686814119127831575712318505944239486653800584516263421354577699895410938021415409901228761901457434082027044539041714345157757969901412846895936224906085295796758649124186087664451182828720189488287984648599600463729677486935101243991287715308201926039774438277043033381486213850222246013622893429848467368955291963404883252685607661457335426666535765514553896630293501070584604297872511368160706795481718615729294694213823484686676649760149121876007988471520676222229698782890734622521635564415366290198221173902692582429500569272913160272995276336022069820489889065184939736651832760710263249667864212277458503230973968607105781896575308318124084512196636353550368882035358180224789665577817602229982363898643701108625746847902714273703817758495728224220202203876009347904563356912374531427054599463278730903912455143756963660892212448702165925723723769478466255893615770264948367376250376961403436749680806911099847693703890322470266057447646638456701524135845343926264941271184666792784693612805815195031749001787477076041752011581361705752597617378167472544559268811130833927618520388784603156069836511987447420716348805853334748676164467114823056908063153554347287187619494487093607042594321086924365774082578755344527597956351696901689410901711925102533968896487099681511424948357721762054027519986985504571621965107321873354839100596280726367753163687451434453291128223617383350347208588004309599679521603108936179699693189291781218993883831382623682857105722921851456236432109242865909315159358696417181572582708508932207247243356255342952305603697647209241119632946442644447366165579103333107580977768417357521777520241520854364873675889915902389944761720626304940437106645413590979658595805898972675437955656407180741307726602227369638756416301336929007106078798555742408111486693202336048679904731973999003937808022938630528534551141338876202602112947167638974124536069441539041450774056363091323492043902127889136600887950463403335049667660655360681146920430289921421727154526739807785111603526957586207613519651859478650608125495835966368258796512672284621645302662573556067541561224394373389368370974694357663762566298049516626377166759856465091276619899263080825047903048893731946639700683526614188764146341786535251150796286387258499356785259177077255135967278578351921574508501861370820071008472597332627201568108554578749877798267283178448902557961000262515261998704930115826370724626610442146689447199661950266662731357102985979369470090138533067580467336684528913323985005881808403810864724537136125344156089593447314311395868155461784500528667900679597532374963864599793951177998195144194265541066194536900044371848996999996467962634026134855323589436265021844516263707384006539203426530938639365381146935815888591586294832293653944858712012525693970081145516874536347518382367321699102413167114135542082439309277938190613709060548707001647828673592407960696957097576801807662840885537312980851843528858887638522533013207473965995594561613546774255526609738732320580427822911715441060439433081456928445045205680232410323829835855941384732951381543533680257380134933785165932633735512901990630288947090745590731489266765872762998335781572315493589637040551490484001506272308868554801534913899175502500229709626933934598822098101264091285725769900802354535371536575254500108552456589352685242338921851034867360977567939908713931913093674698796563150203994326031169454038749382311399825590022142268050488433938688599163088154415482830987917569136470979632720697098982008226171376418272175169230101168141573281909271524151716618132684074863847004335708311736608744108854319119916417731464313765380783721591392697995188676276443984850803478039897736633037585010735338024098710995809690157761861775932623669353126410106124017826914512875039844607611522064188168273409036646701536250918479159678454794697237837640348780265289476220825344867416862685003262343262685909119281826574288443832109405422585680227078538034258899071249061877695742179620715845439978263080466042021109021794167386017684536970212861773538319314737937229857660329580823309569379786783293187275869204654129338071456877341234282961164342198243596382546744831946991544672511851423626250358616068505415736614073842124650436048297651868156003317763035245989250793411806577355590402256940163377241695241678144356611655765392916641937570057849164264565014008794909549315579767818653697545955201475571356378700521978265897073153537275498705845141140236001686398031664577216783222219578883715344761956522732043380602047968441319366955635914136657902273749869789788068817298874956430146385778925211717151266182350726102318139116409867778973846021494062206884159796381636420278204748957324228889773392863163720716890143971253151734640095739306695721179093000227026483558386672575537331320283999420969768056569210635948392831116774396460285586497459353961194187076677842468229267923675100057088636932132960317411493688400065806477287330447683011702562615070465166522514218729544428905390159695121135452126116617940790334914447281350863065339644383457141424242040471085450415605759369862770175271114202152500066670701211400621995806201745690356761662905902138788871514329761214211376185597380495882888892953320874606469896644637832573753546278201777658116942070595614306428932328811542010031489725190458324064983453458160627652010042387415890465385872761901167485423602100384777448546661423327590899715409539691340398304785022882598308036118714418402226795143277141973129134785141730233466364507709620917274354468185119137804690486867042722798101549620557240540687410992981915825547127977118212950813517810878556607666362837053052988219668384842403112258359041761185876033798941354128191309549062167330772836892415382253874460583975791644284475402699022966343647789359206401822874723049073086073850841725504582561286897534757926986268169187093229331332730065406116270150840300879193139791145421950096561487394027577850093211014305960664654909264595608147912692099825100867653441239781773069037485999073771254095495207625734423655029101821405593702041656203689556696530581180009177774880209146752690647178578007268384734599598318577745915166594829781938273823149435489694006935315597958677146958669751019035696255250493362103698365321699238112588921242820976353502776131035051198676230679397076627740300091603364207556342947228297331541015029921023539296320140918313703112193476882855960913184583217971782902353706864133974162609098376780267594691221075921402021147428998315746947808781417727993862999527066241465449077183145324878094927772652080431575257979654607116467038545868932601105001984258318112010245085040657413437001283335686789364400339630651754151114622236052619490971652774323920803979912501821856214936455262866439014102229289499917889802123294851774685963524305855069433251847300797705177518338153772919162594258601969888027105779604490173361354167076041717529045758385234411720149066919317505873519723784583106623528742907604057925559874297259532689885308587840939724857538905791435273315708526506560413039161790221268430555286569713247448662293979188758954712091317196801306920111505313964297683002185457854502903189681363376877769253644415934816061035936173521446037406616012397288079370511447793153388316397715790543802484075902678513284026579930071681193091259744188884631023384340362931879498687683755771078508301503323018968638168496322176477772421345838415170405026732121176801277127864846028031774135144050878389827803591067633655584127171348074875835467554573538292972833419966290563498443112261260925036540977306503001175456716242186233844714094002722892855896647746934864089701906565758902870090554420922566106763319163117280865379794358166901165560516178611228401881270127830194626249026270713784260061937898661952453219545185243633143748613435981779938044504151399635915267101087756003710774303734771027530209466789684701939706568037889203520158342296480139489450705939517512914791852333156174241328538276893013394451072209372304358584079314989016223870691506495458953891206196303106781654372647789240438294364581822795271722347285260705543202635436552597376303261240348728017731339198177729329524635486845301542997846567183220431051274636867367605447862796479721230058542440075849012154352437024620796529161541953376652800747246127270120280630693813363211705279318989605371477249059684138634463712441139156837005754969739798750173408643694465168803390355972087100196203259181604800023775069654669962139322154203363356444777672515124663932490290078461010010900446882596517936276542042124783108725642891976421743618362303632286421254242840146483819729018565832025411540856655163365046314574641531852321733005880415761647642757917539756753736677315016689661073900032055749845120950277613415067573635430703945144456721119659305203649699473558531128314591237597608474524053907156767385004814834765871252237744038057641338049241770040632992228700773716723338243786571664345880663783841471480140955620941308121401260230630280550935879183679303305057396123332739326774719981864176744467361818608652819525608591806134998184064353039357799682678668887929053657862776884159725691250331000367600860741296099179047155507064880209144217043987622320554721239205769315456304260844277185944510610721403576631042766010205168879588288287723109228846192200738129665756652507356291075628445093133199242505573733081230426549748566541634198004681651753557394276376324464914920979465877431400072645413984814114035748788320445216815579152315414304403223504969849188941082584817274997956066572570204247440190680414303560821437754113305993709780624972392874910571239615746924141896093391313369858513206970162355589736474108238498603461093963951090224472190764442177027491758244671310638953751334173781762808680921461022700084368022020559442951732110803772888184051299669899266278627624864800174878010659836364848982925671643668558999328768955634613268681330996187178780591869113010136371706091558409765813510457602564966387817378135060333750949051447104336636644579442989446345215260816462464787683288017998458999678588139293440302470566927641717146588450694611272855514554404290007439721898737498435712211554639176018009716563894172741267715603115200973637580244219471216269820286481764402996905060971908194497988310980665175541439943300297530354547274488401621770296933343131024338456959635622043846916535469000557627605617218803209274808690023115998795529522093024906050489278872998527639455453669423946451562146289852974747266889948885922653061159625820166562072343757843978268780702288925293865073666708136394352916166967107638501869782443530263300341643216564305344198495408672192492808229537653392299794904022174186294838665741593269605091154738338006558226507336844018930971005517516141639553933348238868869130219530936235559510292098340763058176420473914989130938597351094378923631398696852502459032846105782958371885427115215411761363797956329885175045950894546510859731483697659998575354078029960680147911488284408188033106481353447545514184943343806885444693947918828022662481673117401217076815876071942297053399401639079981900754867196886903059322766567770392067103432606393156203087227662594404654576100299678346868205270414167796698993931726074535309264442031256443874909869523154034538173371716943390434189298298781694720471189114583409768322603506750988689774653383343162354499093737665599813357758809221364944446950182089122128266282339781174499375422746132103631755680816232240740551619379547792745245313585494971628873286350820317116356217342333784507315899968924200786714678352241598724968028900779231868629386707323988215182253040887255935821530197587567805552488985326923424655747113730678645525358949138196174310412133889843768051949525003706836448377859545199894333486829547833287301639953971058191646083116238748133002271039492258433712312761043778495892648436329923427265264022230545948455406026459881096087009455405220675820901166687063324762601159197392231699765753902862929792724137069940536618472744276745259987124880679296063691158709122595917598752602260760872826097612395451023554260529142290615528343951076457766085559365536860701939957449396262484252284419036209999663929756065281961598077723555970649108370279254863059033738899030406214390779706951289303477957018914521879339170778530733277406633028218906382283954125065418777614954534868192989784914910434885925426409164488407939145917087600657246527377003329355683221598353303184188194478375984003858443982631629296067784926963483106695887394830736763514454031451601601909245624107399893579275765780101486559487122412316755787780351666460319432639548996097876124752470155035147895259482466621934679447865932651785374254484055487104120757785639630153913118264464345696921002478627701103041611924545648415695329653743168637170023572595312095048272335108226883513177108846016947538202893469906813596102199897804294225240009811107608456995921650400263871921376223620580225679711196515066967198100233617208895271610306204995828926744883835895821438321424390700013040449343351682077917035727225792070788088684412743546079713672653653401090180936639135175059120213786898667679044133290869147317235062134939652807576404686825093084552636039205402105023312489889724550723699582111203985232929819376450313787820689913096488686023605428686577941478058200368476621513761590461927311119464195975837436355223616369354034064415916238779643868803292096998100048454204757483314929035093120706122475575849778610363307707841509902523110322860413460099545240027759836098432663443243310018278829262230962938418058366323695790360551355920874225032693733035135885922842158703402612409000646341916479539737805384617834042128211601006649565820797013463456326274318466180525642451438081003377736458710729377224677517614294371970262257885920309724790795627365588191487434645169462650002765316613395780964850032251566548346600961583994653560773329809766833910087682835063191711266967732090809953947574678845845727986670086491356102478238747819903458437623076540995482141382201935643645776301520678532123742915340139869597499174727873358804392210005638547690760635708904067711637700596847793058458179974457795319235680279260204690533314852145207713735799440877966668481693929262732001497265604158840278656304093868412578665812392831225183336750691336050141349722869254824973466271204969706405653415193783418938509724786905188094881840113633172185572795975471624231072179421379624115436386758375080821379207692066966739502159406038376428304117483609277559866165840897922141683585475998915926285004511896364132007406565141101953018503977559980040094687916777367030277780226384296511109674837068412200451005125089658756712401754258602190579163289348602919361182831495999099005275954926418004389957409267956759416654182898426236708543331705074994717087474960637728166531247127476395066287988438351355415779374962464689560053089560522556794139268725670074917833247169914131194352598462036888005120957355501511716507677409232958598679091201832059786997326329935334862653180126918296888992209442845512317983883254256886579670778029705689244381663643369922892820698910246222912589886618310208668885963948215808169057477911663411292632336701199791319243572445984053946416347492630755149759054567486838700015355286422092242647289891465586907032814781361516796037012934158287567429204423299812221040795383188205652372819907861398953067228266668356527036306362610621800220403195335755842120350554770934172351655291714774066996872293923247175958134134223881114947273337576375980022484763221341572788205601509927397414154904810815241107373325460743090140676762018919752729644933404737002929705177560327622929245641922435217278001871240156298955282768896595028065131946788007382417660333855794651537560145917150438849921374505103679435223265642823541332884315374880417606769533202824498714031100544868196634890020653523581227285458425920891337302748533372055098039847216097131476682992817260390884124759140039488839631559001476178081266363777745988314218540511381679949718602513090085351514055654794225520123135886923914908959267007031540514093200198932937097768498146925831818499254254310759030378081327259005205721516727259360319980111661662249682746016068392011018705488405386085231624416016773301260263474691853858261026952164892612129945500890334581105033329162222267558043735330570406787727639383660185056668528636857873718707242266985727234343021708220858364697899955129964814929070818444881415762084547151856117257542873173643689071588727905233760988358187947066167787562809604341057599807073777775123779612998061519761547542053614575851167433657503304415099220897143073926906224672819133771900263888809924145481410441512397920274173925068294724593511830807362599958870132643519650689543439721080186827051806806634435340045581433573254530884991162894754120187373452421979523566692830388896548812550616722006882508863297788045019101898356721204311220324744027767511410853589140812430778038309645366707904414424006549029349562996238688993715740426232526004391648929547329662589108348703691595054197841997051957832141272547044593816710351066481692848313063454053350242475832421816441573569713473999364018190529267765483351212863025688291046628670151341966930853025130906012457186298988967664884412820075424396360694272830744310630078182120929132627608507350257740074810879722056964021883038011255625413342880577594427105487089652395098010837425710888363668881937829162975911036748346719700554732681770781665511906626168629968909066088041875329276353715424817073691712882587094830165378515113344128812859600829931787373010055632941175512139753433007294316333162182964604569292840473504085548836891045752593089361320816548125861756528219436745067233912936321119029282863956758102408811920340498913342807312101759494557182658083444102765171479438710029637477663358538798957715788965846923062326324596590562231790190735522447664973321854909053088896480891374770799798870613669446625607753296364034705567555691683848233061143721852151571809471229254332063156215741108005927023172657256941368533875581259638111330436177059212509617770911932900458625029568139981771651279414831594211065126647116433858980971723374691010939100549887782677997144876324571439170664989823843945282686057505704295458104465532545367992681048439647711864950417464999935702002548121827637052456606762642922831134273572161349929672640051454975986715511794924268647997885519538881374916519410327720511972010071543273437276504649162939644890748071431247345739828569813104414163358969209243650198766877899321832459830435435795357872464603707257163916206022025191049085953165021098927964994314118101701275754176556914107064129738263333691082245986845796042382028588688605485973460229259588929097908321140867263732669804363553225640082371752907544031568610961452293212198925591107996424497284678232686289114630323918247183792846143644937574190591704762169061799894958031815418865561978864102804759388205322327708200990508965765152639213043153904837211133708801320205631366530229659211326437418575600327490604748630063661439759567872621925917503645477651453528009095381012239174348457491640658478633714124309942297563670554744519011545702309613109242812984362985405456813955684036994880558329579898359508798330536595313782023576146040191212305647978225620692469120064145036383137471424084018763591287813096810183141112703327685393486299126441967416449143297114535310594555905062352219596992634433578743292758090993854384049881503580246997547452768299909351897192127790318051951576348073112395104255373777682301320548189976002107582910398820850804531867853646867631648418048357515520431970849266929866050667047305370449380101109287388302906534938737104976838568422810593316621501174956619841380072146813098572003795888864356966953772080084697945656855177143079960515152947075552024748984696922327962686435981883132114898562801894875488397961088066139739932353259878787333796264866320544179113977262921126059961106544906911390841212932714673265337091075809492144736488401436922742412087031484456874121073855959315726736992254615374392572181804869042325130263671176299104913903254851184085219805294896203999960231974997558340225787986530902341165580379870886213336061891217600611761436287394272025886711084325574832323578032733476315604325301250328627163824121502158107447933482861614870893613165587557035587688765810542718326582318114025414720953180096450180302997441536327813610350953209471672592761737054457758689202420683210319786590520706093928526782996271422979650217871175039938553751850666446065784986656551726407753427613279568432729089949601418762765199135205930014095309636683229180701149166398360042959717142795536023322526928416898013718322553081244372026135211981711573541770267384859861181723085010789954357515419513137657800802207300812044873045777461529865122038963598886959958811348709168665026781243929124719827443575177659532044059727463119844817883443458881765468398003628285349050783476044603849990647740531923928924117067650502019596014848053792434898116653409164047186551384634955319808546817785783373234344197701813501881057493915664419443173510971473388614392794980493966813195636297497066896423019352414608280695479066054436081087194048892199962037810779707344227627261596306508430252365947178038362868395161757203735386244436057093906557561218054184227169360911130889129614372655367588230867798730204706370855505522998541699759890670391268474735009296646666529784019199258742974953370702583978792164754840812170731598445328689077564281230887457763211745957451166869624905726331088671635373773049733227939247532438453596579316499605142564010042242872337746632320139421691260207157091301941965516610174557085276056854977587970438975264245405551547938357834298105256732488540168194520805715324291201423567463787367760178524366834262963185115702940156133352544308537864801785070349162775075814973437540161344092043046609758184135090569678181955418089291351972138003645127756785572514129360537092148857613839477140652463839403476301850970556677416049589512794501332890256751483916304662879577164339152592677653920538380675215297106910708081134062301717089471572480358870275010323394628577250816863915972722214698488337182047099392658628799774145702021852637616615677724088828468342393519690206171386592685062599734097295500966751010421924917149836674226862693387707351742678589787926935481286057564435285877203773775968753557353352301688692354718911046350787999036562411114467955689923279120078854719693736406725226020409126386944896863563100529970544347816413312238557059356696616154271391735721111613328878985664934485900091955986774113256037448795920212248162497016993470397625099316607243520338865049908517756283702318360295661595645314832007694186611671066618792797637645370619454384008323860292116064945307006395018085893027354044674685495183309741618357033636871224574532600701702269345030392785539414979712423804398933586084692885754936146963297971924751773043534474872923324798047748566626476623943807880843380942161279300595937751573262105121567806235869716239285983002570399259183537250628531110101179766831330911537776511247890807681011081080532643109997829778585356272771792472760143665910839747588931988088983914621631518271783087517504741894117055545272451635752807861734447848377720496012923151718523618091810441946274609831799504043428688104555494286669865661420473537665558098103526772752480651389542054630433202690524614179976854476196704794720772350887306890228666894200020664749277257151422001527652192289886559943317325810482927734947952617660446823611132651927761952724368299821401814353026319833066995262779282512837603464145122863019725886696807888087855544079305923217213277233202855231602896124035146416605482347613966152553387128165086554091583012210919946475123882760183425212887660259838750747913331939367060643494908901817709311539954853744897101900031601411507652690093319820950710737745966600655567334732926171935394381750297562028192131790334726735585047467550211420527612159547172881188895461170249557028130193389726873468572537627635142058273356723878191331996837684439499030064486107389097422087078859749343072010760451149162826203357016965556671230840864668136634586612915326182533693904001030779039783162983666413359803430017900672348053385436341154972031326514406006449330950530126750735631189978039502761383307095391986719240708370007886528456998959540479558010947460680154649594569495268522936028534582436252163344004069205549548747472771845240657126276524035791805306972713618771631086667329682938918357063725195290245550075081557650236611202759033915795218138286677345910478764022200994793317762376576530608909325975122052859707327786873986079219432442872207123724546448812936586916724125467966048895924560000284008942421776043570260967831517306158085514511215301076271473313095942407261814159943358945174655489859191985113827187626161900649672937746428243634700034375259408737820784404869059371855848558250190528080593269354820328250431488640657538047178159862383684285684693617589538168032521223829035967290788111514952689327880459492447788724978812741142704561394029036708524647917615014176399387078294729234329948062023325530955830216186881502859480400046270283364929757220920080691139954251001211084954515129340014389544445585308253389702807914138633760951284761378805266260720316032269880563327488343221935830330172442072991569508402751354530790531132240758001645639558345245890929904679060054801180232255935944322401822794330931999142986788741179401278650060765823552926255982615539001777874388156188309359722717234062263643675870718934083065258155212294306445562339417526802267046200777381200783737807331995515523666132409585039020947523189304393358579352304325172026368315695560709926543388777614188085404124269325084112854686207324102536539148643702970060031368044277444230335824128759561135226552619754976952694091399526766228378288939393973736985500220617768289247812833583486534616452834763436216713770745115848742552788479896874237947054378765838212334858611551088944899075190693355841169084337098498511087061416068177447406941988258240196070249492686291344025702630887281696278275379183651512016389905831664775472875327571702646512012323591721348909847159856660770949945146991306042316136506046424898299883697676497569006706534622639600706045707628119557014057762431140678059665934349040901861999065401325361945993204063670452421953840677820165803751257445107027029209284767624099740635403638155496408044871649084313537174496199969010242669403090118622542670532762452032329269925605256962462347897211697977706637687534566475039230731474583063993057277723168273782436286386430542899560833166305340084094445761138467511226361040694135559609315843034211406190209704070758377402535066560433445316714002062426212271254030188086344617562899098423498898343098487089218999419977944543939369275637366206775721126944530682474193431010516919967194853447703657267056606283141037528126113980635359740877999793192778307673815032349534756067723095073444027287033314171867681722327946138823420655466644171993009780046124963520106383806407098040379261925514384693907537010698812316836045015594665840409337100896802916487458872682652154943685776029679822928113714001292061152671067981914495500608645930893677506688241180641907413916030683795860061821127995228562913218972950696753377442117692287906098794073806949938440397663599495129941363727299509442143914393572151036895107185005744322620257403061349511815521701321664505946258374706693161994559893881090840401842372469442984991757845264782673198374241529832386062691258120553502711776857260266657029085072120867445451855777614160437824294534896708021701586320738000472668837767027222996387154822456531396761336495921451229135103808557085008128202463670896435012682205292334254196143572989420677792918157681861481066273255177534358743204192484239336347163188312056004391685665549528958711742595166879775704407327600228766026374821476340456446874909729555196353185433993075468688691639505384146178386852160357627683307556336445581543996792176088341826333259161104873259310749579473120008897248965674121767530154560414843389582784573556531203504162918649395306093549071303155142218165632306463440108582667660220031101412466936246513693660925101259841206173573707737549224089511371915513875484818133156988787255656470643853263842664250354347932821105548377180041777307310518884169774177012708786320241013278061104692724823379119724805175615309669739606467198076171711730638909708506551004100038870030075133820465151501038074539896817655049965263226157458825342874565654909131617802093098221314340008828705071279099464414026449756269954290580767309764643430969247779339013728522913417979340067123269939275715918195340001238678662509974892008366842105835752590481324384440896185511593991727884747688456584381088334185309701343320521792244178298318153399234302994031498070622487078099153735942650770496652414734544359481666157657362868846854326816460984831213763631005933487912391151832829358602117611679777197332446829415891717338899491477490481582578239128492103750052690912346290722268035712319786180042059242136250540981292492714139158931463371827863568304964471860647832309809272089451774308461210283714946644696738909336863046631437673613791726157326058723289136010164620983547915092154049850897866167537153960547052107173685011781883669089710439831738495668616947888626324798819846719807686428169319782137599757931403210366138343254025691622321432402497751217037157552231048300925791297981906802220966474427150326740518905865867667262926033855825085333827831323498755963808912395600572097111155056881945042419392257146944853369725989548676951301887916281137882501095054923439668009933344814465454666757629140314342899604455557541193410653180736904270291982985385388652262152686258936428563184082449086939133847129808578610880171717652006957925694668954192402212110940627343917748898903404453232160586264045399691375618840818393628483718018254732574988894595949598950194491272704228550344181244087122839750500015008684407996141081235139891985500994371258846201543337199112586877809202585105949331079258873539429208217685202557917849496951147098317160115466128776102923647600773178974843952063896763057454070180543035300972472883431083382459780718404849436417433759035093976546111209280048882649355259952949746472663837987541727938016119140096251710309355332003324761696220481161985679016592554188110828660387777349974891420586295402638925159259230809790337896176313041247652287899630402587276645057808563170077401515578131442889401630113418256758126068875955422883267333347923997782108282833427786437358161956398537180428224030350189024696183150669894943426034247819042238190305520686798751546696423511942876104561637973578041598836683920023887840712260092248746603373925388305324671901428866717701650828991939508129664705328090650456861615635989875496038676089895541822395530186584681452619457133093938003979964479679021316732189540394336498378814081428731692811058329353640157443647676931468143048289387230458622339411003700041499404649119277073610865047912338881883272492210868135858461479899318587521562989461585218246646853366369373415082927155948335840514539608208484521561682454766497298494366933732113207283312055034727199037766453288061713410721999570883866648516380229477191209413023838676443765718070079417713754378718798063075667952449398391439103108491557896962491066675571188910622771297488510828313885132323085675007568454712852862894474598658443058291940332121902527948698090150668104294773444888537703210977286975470407297350283464713511034826430632528650162571556009154692821359203402817123010558411295273016736717708764465083868094502791935877619368234205917193610748956032249808339732291231818121948626356317059034102033062762505866532149150775197094467754545182733490337133227573205250547082423086763529850778374359684277635528038936872430717938622346488294996417581369812185381185383865365998064035087059717051327223823478366465004073379528963067525007193351229866598105795177810554041952208244698182846514821876492754720677179192810625717449480361891142382610200728338472984368042193211485845322814375072418392822820592616763109085230788930151249496188854676648556800314953084434256777551600819167131034962838868925244370341728819952354689311970603297186792243202065088968343900793690035047873516743614141469036930799165027625837031545125622935994037970899470611202184808490453820474461057080669408194771821915016874081042668314181047119704615570489871844160623332059069582247981342492824806841905328097751474500948909685880290797546908544876476446642519811291395101901044423601424860525883502033913249686751739835297824909817864195304226919147418913753337633237263708135212797744073989295436840355603547142519738890119362194657757312498343818217409347357343416959077079489764613706193123873949863685343583271875778350699048036204897926436686128740861663062122700600821596209384940432238671694508655987596329896807509994825974428654003376062615844366455648362239277952784614506268974681432636222547436844734169530461626544208252446535267479234263825984734933125233285660196233063802724144036947321403574774266459765307463723470134319849200372668976143207577294047986086444128158806680718548004931769525584893529576999614676461007174569469606244050794436216271254138090717650612144587667751122075866868880607252221775193521839562700781549729301610887201366893945653336251367886902371869113579860353934448075058410892762480282245350471438036023290569551338983791661924142084886396206672546830629172120652321403968966567922069781173179849817364282732991262529381605019835063215975082675108338678892311874203652951006597029325057740353411346499134312976269499227091183093862242351316339065466939057751829847776842235640992424992042107721699345287776722670572924792463115966423097873128574176077774710231585965099627683198080346664864918316734372664685514772952810020609188186529716270796773661063040527726951639250731242397031341734710756176609791804927807776234211777718383676468804035564992817374901469578257562772639637325086616977274748449018890686350062450316493238593115167219302708809453720143310593062793284178427527816012160971408950845638299885429020261944738549319663904105146123100257922986040550174978209427678605502126416230019960208855001190721194932561828995459108408857013785528866688235052719421807175973193206541209827111068994337438612343949239497573777342504357661571653868106498594948736774908816550448184368997666465884185186370152322231917237692794904797546112576043892244741159523908562571284374765247895855642853920324461145557500711323892373794522351541466525942553661389831126950708266848709045131848166076447715464776393010030798685220419374521933341622238462964961181780215426738705752767611661117047282623762699758347739913073632544467490861661636612065477695139315091351039986626702158160278125247675400962673430740252742272154138566502820011544213301997699116192276146629022369241552464724051445155842692650187239988187416599237971910021195523191898838396701122613486893777877741783306995685905660979681338261210957123438807916449400072575566805567761508932759067001166830785759847068973347174987181652099854427322242781890908418499887811563406074885510548823404075683949722823050537539868501720614679673377900739719906525519399470922104119118834558002921116668284891542665571703819344393408482501303392469901593998387669456621648794587126688004544092517215703820049896604129444591761956991527281787985087992723949645985499697677556414571549945844785267634108549023935788279657808466452946602483514940061299877633019860297754913330734182547215057565926217276276323237724770210834040878947143292991852804313218113975000241630974480892656446098153986906707834072203822598098132867849343033191962380152658763195113611670852685012653578562651653393296819148224233040683058036460325813351325218096334527160691198110455124234604444912454681503427653193524213801371466299238184837135456278907240673020875019150758518874352800408161188871414084181941077809521995674626337538594197674320429749767186247424229517425618859516499588713123076257699352050420268262549424482704173296801973967049483286686449857396234429472671005549206871807399878344062296709192706358690606163537474824334540509998586034940123967037503637817072121881969638136736105678229637102736841874293305187160710890793889011001345973914395598205853858088457021767023818333274724958967073119549482532857505091441449679351350113121437086442094710935630150493369386837863883783447289419308127778360364483864097976375645565364744170897585758961009041151247602140674640856613703781239446685123469901150438095235505280591836003653171146413733166432894197825708757936601945676070921703677540234731546789872307145384468322296846448293755533495612255735851421322210600317802101150187209657790199788295966191022615352417211448811680452434252785545443467795094646887602758974556246033515943047718648518022873764011380694194759280868790293443264161038894928673558776847175857840443886607816271647552270165578897432227582940736620685260994796579996832269818527847210850356395222700951534225425195677454770865304059847849868307134970521600724431289570143194430001313752547221398333336603529775165922806886962660430472380068054508083346994677825133940650037480098021537547449800149794228610220994246597650060063095779864445459396433422274243685034122780899057361493423949450402567616929039948421614996375271812126749700444409277150253487408939634581432897220361460988976095359895244334398798643064505735838892742525500545630072139035671717524357081677362460015747517524983786320324000737993679481821041943645200758385785567911790741557920230286923641957583952924932667448652494628641266658560341160995058027084934870710245191930011012901365792266392158586240071498303036517968622533364311462132230712206050602772665276167494867118678846902283718600076300110503496216013878704903654958709781507180783611781746313234949907477156123738091988141194564361991947175811872392566634512641339938432101525454191216808864566791184354081254449254438724870380772010825752228180702743711323583858450579267609080803939879496363475817329920035739357840335047972352517464301179382258392485662837298705454903624102256378242536870756298178199479831352065417999225407026370424924401490364172145420879029495241021354586827650741395502468335516043450929722842982691320282275329986750291025442775510331998662814230716078212077628434838562306940567009978872492533971311361503079241353739488830205357654130534254889750571845497154571022421164658562940362800490212100916150452174157828043051518681755265414756702170877360951902385994008651351939995939947463650703353347085252744732649315823229263018722416364476738645813060176588781497448938964629797919252860430125273242967453575943647785433042266261440591139428773419312193639094037686449727752511261849815864757099381295368483038049389992464010946425872420685104082937483044358953480821990724351662413945077359737959075187816082761398861230043011112486112318918930153489326755849412987213682605021620554625510429708462107718337740219587095982243074089640689956152870442812154714844649684847431621599634452613462965190841570118856388351474258412233170654956762611817079436297825438930984271730190974613686133801224528133901645865012701538056766746821557528527957000221525306893701217486336125273082721133086416657444732634323743459345370040180622601590048569304851810790278192101916045099104671682994366213583750806895224029918460287337892085654909673849494639236250322941061716548499669955235192252893012960339835178733304560091936295044615083694122667645237083937652256553080915740726539199436497229907627099410278921785210147579370312833152081008290132978865266431995317184340807219084023639128864398460113054152490835652818579709100925384904461258233942129751430956543110830661149907519951452913729483227212765896111042345072272479750334284314792082365685536832143446041975782696795094836826711666677985440173450525261006822122427102441610423044941919007472892301013908784496010482595660626990598003224304452903799445728298472726809174948305301495371075258780357300675817009528918183899785378744452978734316200445070597436649430161980507717054309721566848965394737392277288827831744427847300451159085484665426494645755206062340789597492553666293845349532939019764465818782294120372818990469268032633824340177129806409286246692013834978102316547604858636116140416583751272321243973476158600706665533137068224461657580508526424517267125852939009110062525154352125884739216400571155038621900477427596657342403189410198585171438746742286677340972238800319851099973493713749789830099885299970339869378549515012697990889635744971401350770616044917477410381603035718585368897180614266602659733420407414900709669593184182469103065282311693494318416788138870918186740607687066896753880646913349404323091030583591284463177221306582412132448481875191700512209134124505007639794373157343015006847575810194334845322439179897612676732612634756039353631041114890522016871099325858982170861734775450986579091536048742230938055198308232013220835692373892909250977557437618693165722336578429834791366610587268107265767773816078421988270675790482193345834790550380705277596060289154385982888045015559109622173825578992740384318512526073365285774105631516038691722109792705302387899449542744374499563229449473126848252175741415865923039443099298470217158145632107885953159905511627998433385894631408191612255364732734216775293062904568954053718857104874564144296438869088513592658230493508655670605595310223245727398871323469565283959186792942698955525229394468777585590184063984862305879005935128903059113079554611463618675006036170418045202795797748199954150714749701619040086709202930868364973599481439158553565367386648723365283013923459331430151371878990483658654086108663097650140982156870549527766966425220273939220145273342679644884179065906033895268521893535434149190507345044790242480344517419647724056013544223687252576369592106801114618423039280702445554474822605354730533902069963567996130765360619364572865430678130324144267089307931787028278087337771862485727180852909652821041378936792724889131770511833864015448148037765346131214541435158504412796741275961811213016743760645718660566692366497732972156871074459221976561876995408348962083871690844471218743105120119708598136576703769113298288219763645602097281072607797432655352639130026920440703423374363956354593736582696834246523359670471032154959804577104659717197498624401022926560718406470128797535129982127029840393193845197160271758769614964864528569161252350351980792026943163168087788451219411846261613483545694909592443242068404969087023225172538935638557784062198289013412998398728974859670265881006381797929013740064529278881035891596941247607576807267547177094183911277916887197439775022443937458369822634888431514024584627674602761068764811678858747896512134349573465514330909627668518091687394318116297996518871994338199354720400805166623550451986740255626265481657480492790963663579217388160860501029502281796257354323046061187499965640678737860468742528022131672868738380877667125248795155036516898080633647199986401801372193273127650011310592796226379372108638498124628175158443194466152122307078806356016793131160086498928119628558459261691562516064477754107613708240808106027095752601086931548993405069631254928827336193247667153902417595225848387515276577408751185721169830101821178664118811166913586564570224366141168784739394972280291994450241371835556526787813333986360364095040522028535463539358936236262061374292867219681229432922048328404129904050491455402103825245824013930821099414518456226142011231859412508756239356551196001377083842967650447496308560541532049901108579948196132757095707557496947363731461363430786282042227961490806972502626212081318538695728701272369609946989332264228614657373433535581074586632400400392486406743648045398259856248349101530075883755142942794417848244445190306330537541124735686742741580147907084119323160082742652561418412724436486609864493401759273830298708106215787538986875057439158240149521464800102872273622174325938860347473138315321741768092544812019974531200271804404011275768972781742157879805404026486717470165861644661891340826131521015131815249986690906828746790387914853866878321837313648215206238731119950935047874456682478922699114574640649228267894735619730374143382725151484623399239344784600218956210324451540661151080586687915471561205139704495696394107635559810444272565641024945460648099332339149473298677723341911441301129688137972187330749914385874088321669463213240901549871340466706314909252660852892391197846605927481803155696064424049921768532219029323726904405824432213999113569696898464725131726674933168139108870762395186921072544905681109158962888871989299025800430190902297770632702758017197180071724436934628608924303853009359969101259661532619759531041888694409693045930934661537523468927193570895153522622147231582304432166398726288965121246384837146528887864676077291400907292222165123975510527169730339226466761613585537715100897518783370488366698397079426366152249683584524759911029965722587751596177392071024327915121012562895952285395080101145987338344161739468611612185191205022808329202206309658605418329461309118417229470612967440156691834419429244358172152898713332777477170142205027023544941776759219195065747629608012046392503432523557230006216778718697863709278527672290535022856404793681693458655512530845141410120351859109029609691295145924221877856359937025091278337778815594435645805406687903282209691578932763786810110612711067894257854935894919045058657325322982598869333332780005523873022220306060068360239969044633788665137550179754623031845043229860082533118140942340847686399972744189215894831238556215082064562822034045134446611224447978818360779707081786030745002896096434008624615156948000050638143396040999306691942792474360458741888914427512222710383032293643057753659048592277509756063406801560125097663840472429944462859686656324156517330691514589415190547026970916355263854092657114320725925371429895498867937554829375344086416904008894821220697923394056821086101093717175052705210708113908907919386248320394687926747675522337656416267361152277759619729117027996332474590807453492342156708314302504120110386463784877978280182568184062560637113238041893595670269693809246811956661290343307592170411503986344141501835967700617469965495887771583507715583823480910257305395026175787699058107275652878708836489219801440840969610233198428043723094825135620942256209677926064774429953698175671101963219965347401857039469633937215929664965370364187484130124329309513564902904454069991713734381249118146887373900712098710847061221097671917023894745355667491795335869514290219976694535823293733032928492584688955230039727468269989966234833132195940116917843162810919976545574131712944707427241913758041536496818904412968481907949547589071062681021564097560008256255820682977140524938173879516222123871692179895451513807213799870134322507017348484740192547206554312273649281240909702655007526779354012024157929237062279048906375081513592586586947825240015642324757400728438423068000998307265215257590784704507512625590968747156398121111035699895346573562463048559156405565477819427134670822194074141369327988900967400508738120469212274620803590553791466145378030471118611691625812557457824029620057454944419742174210878854561161135883515689231829379747179863113520742581757041787250173189945960554278987193489844802776084411266273315728423882967830947480915802864649200217840675759794658423267359938997311997944893280012253136052119652840619862434490091463657468293950999297052933421093694059552143022895344127687898030349582543831726142264639131438265969065169386349787954025829961184353665955781406846025851548073291091455673957190492731200529181516063924134663578105435336775276224922030925021599405896912162767348205599469626129495961551099591961253318029087063443196710607006841848778276374966821348805721489952542956528495310705715286286840446458081274805467337616514536761812255439076601974325491610233864805844009912327479395767923268210487205282066511300814594967009808828300228956604205518000389632750251649413072559213363431218852221359214924285796359084370125113687069127606848101865019072517375091658704119270527377568244988784250740470276058091944727061840492944899026590369726385765085173914024163917657182735286275643815877334889162448504500743426559852519177417159073660385248270209954039647959550565948475749697211046803196551328828267278075870468206666502765612547464711102608002544862266260050466781417888161057762378297514898678267388238349492680416630162753215896470870594747747549443466671769588289691716956828909665234819211709478807385117348325658734045630817303133491092515051740390686228142265016321377220285821053140775832805471927794637139295604009978354282745780125018457101374493935341660138069870491505701253965617138447033201870347233905956119911932272309266340892475458387249382341867061517766975303953555705973996962732379511319931009914091260694689648315096633246405791284573548610280177867879337700075095615325296162057297837509799462584445940560407181693231884542280016850269080169111715344279501288722001777343633419049901928135167491304065632968930101347124484889666685433287604884967831498017444141733061941328726894014961673603253439830750087079944242275394478252297088104931188975385510069167715304227000531157593466714285619141823029860054940131571775021043090171941043727521206997288906699311786442223888586294593827876168722466114362543322256507735261560427171135038529229416672420658572790633139799477922779574642346567010451012277168158151141384220250098362794559191323232806005882040605805984763458952611991948257375003894349117677841416905198441660953483546749938444957104142124275615645745632938537610936793453778062034140306396960496043036809115861330088348415230856098250999542490953122432826129065739373186068157835317866230298992413265692804811986996837335112497773590412785585587064631906543481799373323741408693784017965762364545573317744377972429309885712230652606850035422778280806513519220002720233064687741360101117119934113422635683455852857950799378732364270400328667200330386179636432321823068642346023340133531542695357584057871423180104201051359191246751975964870463174320481569232959701199765757409758994068581284762685285023971147725315465705390309157319108349289670300499758163879370151481694778366130909697751356767769919237752465918788062491661094477936775729816470570854431446001049344384834698602167572007117832449690004832782346500559302677284110453817155066556903332338075604012516150575605833188186564909833970498270678331311877548091951965140951135623665434949344715191493969987179674389755819524580835879642601441151499501042758932403287355816911081247548786835074169328316515634019871467684375246744666376441671867415741664312609234898803642835237913897282108511171446684123593299523303351014403268363785946603085333421273167606477160654475791737565975661825380226619703276219347561668973736426697100779403048566700998020960718282658783702644069468242895927095887333020320890945005352794149211120716651068138459734461089547322857211405215099791933853126128231037210659065426179845387556773330694445637143610781068400074678696731592050427938859150729030826937099035159103124544862742789683628958345595862672676266558579986491934588027614050449934990499720660751272840499955821531070823516374083723903870232450733665804915895987648333352592154698005741989849914818079496201806122353562507570739946168105612176160305206506920009918738892680659671785611848738858844177523792449749529504503363441674169149411892334519785746756332100149001615160802494634514584109236665953417950785178469306666981412018798481525969212208931139189954491100885771674866436231240387091994206999757176767283774007059995993356229192657256722214474576367351589179884936757821814550484373740547928695891629766344157510386440161494967882279128827740433814355322504686913444721913256388507381513038869162809801176804329537685773703333071941414892922772363221563661017503951460459623673704835819452760951480546014958468110821374388432490415672897452648282389278342444981853855149718862240173047292982333733329115038666835553932001338007456446580098137156005032664712570817728036344688104007679773420022007963082914448819209332079150672066153922371554372041836878686726380211459534571547719871712586443525290177288753669048627192678940686619327823795336238708981731300123047411330789027756024454046720199845887103739579383560565498344486776789756976511587297904080225804817669809005524134433413778369565303992416200097618864870387046619161335657329544107470141192059336287622835503572039851096508878531130763406500517844605364223167325283787651793660193201350899491576626660847763929419289420889035152372123576078414962281502839572336439723740874665811489588092407454202141323479026549817774737189673086304498859857353076089573694215497923853597930041277970102845165574316609035804512629006076524611988473477307078659165606890593013746940572560886380309567417927501498928904620846913463651038604449949780885378691191914423472536945169940495751193969042015264913399426662097601611348926633829450196811653369233815892630985252456150422835981306313100932899983038838643909085737315560955490544035014802217695754152806667109350215081048517515892067326221336265179647445971741525522213027626059648056429464040371089262144556767993560520480004722128274048092374696961290087010665903276799254048837143412716270507317647319127190392278949983071094902059284128135899750638141933355833616081296380387215836505596200859805237236750365409557783033055418290154523823769518802995353073909759536917125957030899847018508861563493722063010685726855600987657308407059147324174509047075537073930933107362918465755421763025262269541224632197415742275023424555767026826620900061687066883897459897732452585565570394926863165517082616532822729808255521973504468523629869556679190524671856162388903088977614855168410602728626506717786627521973257353061197562994716627530567248138409631265327125228207261717191568477972257303919203828149232954598058362424862384132463956722306110083969490859267175747262843775613996241409774960909727993146276313008204063178486465196258153670151697391704593144599905346361603037593032576163978168362873881774686089056725592664907728920506385590648019179905206389229124256921266391009245808317377036346763224761906171115030504223359504558457740212744853281999569728218264588642146150766212435287335184433652616553105309730768528994672667224567614073133338329965582943624899676534620824639135726827650879250002580729229065152022425978504226232404598613784474767061436940531871568961461811951782047663858720595495495073374590568481506705549189060831368401203492999985962763611214047790982828547031939204219951932900696170122988644713252690549672008995843781589843208777101419695046247750740086706418939867663415950304863301353822115094045041618523229717082556249298337954808343446024392269098892563348191143963942184556395965488810583499968620875561835696880943352849628547361715443935644015754415714565695592723826428386157967697393864530952691371093007102317376703458655822918191428015743306470067095077059834931171590513642207765907226571588123805938999886914946085482436146704771310470568810171330364686883950151637176359300443162324785171462141069124600127774632168702810448440726061625657937202037762168556782536865634884699659932414836226879152792063212953802728487353498791041400973998231903430954801067956093642449117091520898910598286115841070503328091958306540198367277791257002310859851644300744056108622862775244665203680272137724765001953606796938637970963044229854071671863917057303183044927826427752994064615057391720254427684790574095025141965570671479541423470726555977847120448238198892485103397828084665506021093948804590271974872521457628322474463633322254402788233486568254586076996163891038299378891183030764575860583579117558281592056713678992728196667367999066038383412449302067563675963247204606409262586013847993243063427356028826022760572579929894877288102270846820715275620692993732039711006839141962508011557684352018703791311999642689742626449318508656902423907023644662119028150102955546023633689006213698888909121565284700995670831439645142641298614330816139859979340637984755475391709812419751267932935028873066079309552305933516414529190573849168760586546217196809632708782718577437502178701706911726734236268575975473933235205909911122087390146919142859810037593122861385464881287483637243232974048029059585428371457940321645440973294788722825439300347871148098343368159295890632868477604570904971771008829771312956151962846263633951741758817224193503172085080348261886067692198504081691976162222276505847110591135414435763968122539533321603787887153481108302354556572942420255718223983093005164155263974613008412597833320765877455029575894131965233495898480278111675742794963447458388487430512499890223518229026622469982067489635691676700100439476465064903167465517003049862930565179501925288418011662935575197561157604575014875179932900619417802211772357975976364723481343128385862928530602020213260016084364857772341337276382302085321412534691467798768825929345899274993673175302308074014717631530115718704694892688473005069843066660135180284850432539448008312404862949375584578742918516057394497568005536859349473234740314840174863974853260505263936303752410912770997746498109344234680787346560204869906742544344488861845766517825867294152141882365412660142900006075526902193963017797276717091414401282622908745589891067117343782759902462160293500359705359284538880485339442784313517128176225964634594142449718088322586064580402568667248164386248775900991618007366513865643971326508384019110504390005578990908121068853226407097709255494792329115969421440348516941650929502934536594973082927532947949311383479364307478539657474265451308431737281235191121362848281363497751783384064236784126145897305304333088805680975435207695262523058295827328880608632194291512621063622071818345964126033009458975847068216681392390358230136351540145924329171104733188586038869191947016525526727270103131547928481294608516650093390127173457726884745013061783733246416273647856261441057338839986531977906047958938522821494958492091451764177278889784537863002612142518109226989030089439995116832324752132226600433082326721367773850894320614513368745676792875019579637937652971413853360456903147509798651964505641838835570702685597488521032183870426031941943370197660445480505846480775585699460054628632681828839819706115272710100630013353553416946999245270107840840427872576237343215512060145260971854064898658510343429735363338615606952863649984376372639750550315422888598736869210684617022931133948273653114508531770150978373524061318834812437433934394511686654978684985579525617865245823882495800835634893001549943369869249451436204805767796226522850745148480113158172390111460280881518686005331272766177999327555676395861996251131373309341340006478097936033869625831308666390386088242719337400749938422123141981757177531803014763596484884914153250620041802623928953224118884914780567804182987035866989151602194944553953661796368806402803019690193148459510197734199929771985303291628166300225475786059713206091749899454988560950021889581721821239039428236223042538709721088802547533531798286967727291661043975710020607239169853076852941343035297768571793508618218799519419110218969115817020513605462991156741846563218212045702808788567520147039454731260575116853637637034328199142135146687054606999858513363427782103823592986382364835794210673519487357770329085986458655207582138721084288712390141883536950795309431807136413860737449893233073740701339514132548510478707956024251768987844275761854256818276329058720700859267126183147220794027171873069612010753235266940585517657506685393453981136661882239912864206726389535635364521029138748222826680684848577396542609272614889058779102943778555277985479532730182511742553777048224781878198374035872697029483491588149062153483931192969011531930552322216922375506343918773919181171325199937904841200917260298712309134701054724921552549151644202494221837363627746001744660624600113118337991256502509880189222254986999303023383864104767833041868613462891112679254773047941828072024216961423551197625411863599830610382900980680889134623784524276033206886727676671578892360751654524900833064255975737202387811493022641262596425359178722115727696481449111947463508380718135034805631878899097371512884133329954247847283791841059005069809196772221661734676295896989928418288224476955916885374654905787953418009734593195403617280001840346478296006936618930554465099292539275056402116239547672991736183574022284923759761693486499775255519902101145899839800736121488379437914818804856123847264735752279280199042990526378085263513430414988354766753287747547028203370824187905448468215645855311163040150252529963014264979219198443091750489514889354875400079347668509305284335612204306636821365855879743734601173549941736792461024877901685373018032745898073002903136609796748574470118331423127863022909597012599640916539495449331618461284813215405336327980138364465902009106663954214330292028573992898221653986000569616354826417582638391534562934998167538366218595817680669507018837903350457449457101622286758388904498804076838993509557460312760689938543702468222263188526553043902565195170038416280190248480959306108309838064976681471524209234269003108904759623422928384625963705906828696462943391824590044685570157674305318401119389808326404287138575681150356822727041504127596669085929017093368389622733250228449541647455678279118487395175488998835934672150685206112148420906155640174944834550550541827291437695513225312500985001908844676325225347227219698859268472661396788860680240525719657222142788702030264118320385892912472538255456981760863402750587082636582859698019910485286444578818182968437866918786222160862319907125738359290107693805094045983108427002502986080349859966647408322591787201195959388734673431152907285722418737411175579021437350300978485135841935765862693256389447493745839019033652666679587115644994829549747192218333199417159818647245578163049021722109802239971564595173494400616271010064330660793157956482490109469055686035367862209209547131408502613286997663079534262272399837772431274786278330170042101150185695593657620554447292931118593862838368301260156159242971320440893990391787435056403991908437672973212685883695943262242855152411131131468737894765007989827552615422697770355755225224243361311753998199183228902150046017482980392338368184620158999287865666535472028912825976643329195827820465511842548335834709626902478276871637935824756371546397743150955789011336638772276774780049139351973170888584511523609947728145602065296776138711026981335815968079426374146705207109284321807389133106389140657061249548364793571962318659720630210428136315905545711091164560994081296285366474862809073266070306047514037022199250787314498030217512757884855576126179290435393897391089095533440351323560141650657336190898532319558588484026699451194012351679001284576726787077671567618769391285564538309530968747829958041251667381342689657058318844596637442193719329247107490335691307526491702430172142361375434689570959810120389384163435100061424532298867298739922646939135660586487013271262927953911407279816751414207904430270712613649772290054708737565908694710089000331205080868259745101189399807436757796462191614856369415265564578298743844537190270461766190167510351411417114940736306129316163718215334976214047306807134009878581313378732972311673385109634285671330357424948420476539272170852487397899039857148978098744367851361622730992049006951887446977194848285605076362227652560324485775454054604910171918452397237143532822717481680724804546521539515173852857639995968828838539207569887918039591200799609882498703164726432581585590377028261234474327653496889187389724991258814141980926990461493546396652255336832492289678934712235218825086156254997616991520112859756482139759870526410548620155033749544065976648005257735938176628340883464723248459360107806722357419710119193715447416535677839508051170591807387885645619697260778457143220472594885364099512358665532877556576932552143088264328850480580915432053785988693511994387045389622040151585882439305756767179716151314482268991664839164486871659527249210232336444444435918418773991203911854909647635884038633911752299491177677166519329342995943519438636606342360679920694429482367093593450029381403556475630232354265990003143464697691304929167034642413317521481511584946158614810208236811019251299835211564292989075085620206738875861060164906361502458039100303416361370233789169353364414490729708471386364481909481947062986303890623456854178914697128031479958031788478509819312707105651606426801010504973420784371843677612327063524965767568731239555881377325036002005812984041754294790683127139986699406300725682664236930835704363017304100745354805202952506821590795439367017217844861024278431987438041878087917562288022585379398319759260682474660485342431449614314496113424325333413286351037993986471521132665828296865836516443253621008298509457509435332365260223268068784042977402861108548648163163709752641519687058301897687356830900262138070411873781467423275275406285263991447890029269932260453535639076843955528893441901081352057359022700033540761011159064178077570601866116916560424817057868357468419957201954804268971023777372912969739511787610421180516901816388577916508053678945450185361357784317011676081342936341924242120184011295922605153196054521404629330668990040630080614462500704076705572771701912026296417450176546140716562405743133408190816938319914379686326204679447205578648288307668584389129914386553737785562486975884893048953399642762285417326161036713196083356758876676969897399755304289057597025507465338610793108999085667875351864773620828835880334393919330117396848827470172109023269982204098808497353849357791915212291520851148406051282354339243262717301472515510225372054639679469828464347701192460331486592143087289431074303450700670318650355877538757371033337663807561321213484420729404387040187265565121489083051625607721410140764555713014919754577818478864856532614260079196830872866180624480448833423204826181832272850313837267705975369212500163153314692263458916637784674436465562956717224088916457779684242273291519551077731556725833750024054511403657876618866345556716005398898522702985655137103952874148531168975882784613899516400457040053249528110789866551052356227274933462388346527081254619743850207352790847356369795544315002010187452137168016724138837762898462297613894122095348194230970505873256897436850967009283968677794327602566510074836097518576543015548337284697784219973388523474656838778862997015131512315842478752360036494872182483977675248343489853672973299513330170102973391613321481671261683589863799454552334670525427554750266345069660175280220830910574294653946951395091060972847863373523246733536013312368057482090657735268002486218340767221557103171157735808192990583877390996010093149687778934265469166065546351089140639709667388644858939627082222796737801594955630500438251179656956630399435880405180138321322574056315969146695478775515418028733787567448520231485003325797225371576931384523200585741047458810013113743608817326612489515054036454818489632451315977791170252286434776571319618303619048651273875955753111250048679440339626664702106677154006861017268467445310396322859091203734342789505455043233426033016831461615448072101859091905885117675270354129594577745550514407987815520190782597169630998533204033878334515876783089147163730508327776380366545103714037568814529080718258974759945591990293051385883872838233795215810652101721789925584712443020965188064222287821303251784942471398575008222777053525885114497297813861858577569817136144992292814324760320609077848470031826852058734077506725499212195244669590023770651516494393941935357714663926802814706071844230243768056520223666497023111940819835907592576887499277682404109332946624304491663407384184446566292292629805567075077194747380737099151654493346456585663229826012242492371669587954798117934278373430092317106099370131566458064650026308428849978418030867453422497000281057199943199448161137945201565092956679099303437897850879168508346884533840624776768028291225100167255288365819210333230768810344456490683318207549820376017404348076922466987486666518959881007032211729839582155419289126844977751402461623486452332056540503770660640403163977577780727130253409360281225109778493448335228619722650345559969165754144828880354689962280694236766732284539794830792756597824019328453182822060903340420443522777789660579883698043746568529951868344841672786249001308591913344287046499935490929853396057861696103299288907728148820391291944503011072844983088315273815983138965451561692428970301264008560024162973748852481517149875935470012625087612068886840634057258078443369922157517573254559548751302321856486851349117880411062011721077352024881661392631268381923558159984644686011662628750549955841125297250213906150270824171950740567952924150626441598654386586005140504863337949089217695483893198818085577452398573021678730471074088678662648103014153858104241456523951801697915189173821545115688009382489552049440544293155295985506690671997610883865368317985497448880004146800148428914862045835269746061387660854156325700736687699361046979533683602980258969649884329412346361305392962924502412467795694377393566008906351947368840931493132866506146803505851049725964504760813837059533666614161616240347519974919775383472795866197244800138886122719995867991235234320107833769214724586878789247077403104852497637144793587708968593705426982664114004014033365551168775413342333311835659986899686295946160603159142020987465617390269772038033352747602094252213412549999231364975682525492479842304500970254904489116662616848859152794507338069131554662248793027552248337748154278206390721926456734111384327164407993582024453630356298318966360069251250228066937092518196710978243535758888413756574586951853404905584394493682649226866507102204978389620598131097816648521431333485200239984168041505380811571494559183213006650320204561874254694994084146078764002268015581428813682071660651566681872111641908378208160663606681735650946183083395173051301104471606943643613673666978193098585210235084874804637089845614242752273534910267437871485199196866082849295083260189554434268326411023934677718150490311510622990535446645290620006067534049532892004591267227960960943633589252147677307500103683202698663209418997184051000034262154512223238017456592468139951678796038586858669561126270489254514653157251751730722598967267574146590523849707909040605249837799703631051899900419362706575209658607307176851218366638041444049486594642235209987232106156742084609124897989388131222648522728588743371825410451035823142173670070118029523618928055948725238392249057900268670934673050846993529056808912789255382472505763574964283107327811580944972355091451249455433122282222288389716445038863860218170652702064860988594092891942176116162925680109174522226395547723072858091777272313602848674512639932704254487528917666087218869538916639640543102921121873750518504429555612948319847148650484418749948608342343405451635898412135773871479214016646735907508696459011654367988026311514891258155315873125977930776067040806833973730979976158665086883542940832284873356415028261533154247067033722669516130202991214783421463934109371380582730730853383355292427729531048567313155233025760741873928851387387810504120100262325778779939552727293185757392900141736361437953493781686578644059425325681881451879248250278965609934932792854583472927231024153451995815366563069325303470349182254496716982549233552486958557316417524310570000960015897568589024880924831875053356539600053344888397560911149351637209724690326779791067917592782673731512023015492681770723260364681295324240245715021913962737767355819478692072199918732833028929113562299580265312106850833386212531065049259043896171152298032618514916105617429157116680376382150752125771221424283906275429644883820667215848288012116660527472697078231701539159231482314809329182310104019244457233208575359487835124871360105467593130332186249656465008636487321959857574032027081876317111999123447570318017679095944811698767329825976486914464138672088463708622034524403381040227605609783798715750630280511504770659364006228093712865967101717689912091987756574498598372397735004374101142652405594706763884397657864210448328496294649992049335367220539010904647210353848986744578243543258151412692403561276112868787694704513290194424525417456958486563009503667178096071622356061097798130529304993044710218366302299251648976397738167217864342052314194126245227122358035576054860330677643378944754704016405986551293116964446394983459478657812487972377827093259612050691651512135354634087865590510933049124415793425407398536292879794361386603978881914600713182999232258400021281450697509752660890504134484015340188785310262836804449258536923512790109057742593185862256672624500897634528405180062091345524580996913873605069158684608980274620028295850086314698131533099465119532779555794062312899854561755718350922144822397334632373911212705001561885069442249400277539833019336215862218488390538437242738821529517293447728624752754825124563061512981483213291247248521676845649321506901628342964799392781947980852011399139842356114961573805844877544377924913944459975207834416629799531949068855625704330617245524628293581366481080110952400162061836980315105290007012459569343722713152082843582139524269947090444837920967025498148067680034711401358194354847701754846808694439301972764532862713788827403609413371766536269581646290159130838720455742901874915638056366294729003877281502233096731586409566281436128720248387717970231933072774170369205702021056440053490996782906244301113759581848739798640542197759095968029664249319370267221872571997464552763927161230587473935222741785723207426524781403273423013599830522276445842371860528901708538110020908893666617501396222524682256383929825881190332975254241418749111391303486766318996951014769523581336876438272997584771489742196758125038844747917905576827219188689587859823927943026818345340975512421058350629818645957491165127789230200572177187506655219714330551696164253160714836102209982525733393450017373105866594650993603440157737409997468543105364459888905398143248975490291320852378059558972256959932544578934055654309819652097431303854307905932949196677496040621872691730487072979604394129931131258865581415462241867370141205480699546315043196546833059163551394436564012537845863911956738489175453018695747783723652488365953855838818006968449887309755294203389305546091927686525372050379236566873658219361205193683555155626917879896738817801639442910463100910135042881439722579029797831213896438139402947712291610713206009479062952884880418734676833880740596002914220437660709165051356711445316476384546436444106752822559848331575403677328236470448620972524305070820890921005328238736667561741267060827790287336991367026602350993089372452781538041595642771194307204408331188864913178845753989500574759132843457366949370683983026857850825693587234753910414000520417599294005439840355930964134580019458471578800051782643961469857694559109984488564488278795181590007959445272102399189574215906128348576280926553669138338872260718944390114194430113825607832971246855071171864148185284924812988319258962318958063255963703200533754661458182190602245164429658489331871336676226442968319846154043444610887378819944855057130646152216182268150120360102485230848632866525222125973393726651586986589594807605947841701058848944913698480511581639166863087071613909032129655255719751227353565246581146222468638455855756784087568295343772977263413621705053307542260560469952419509380719243569304649369985352734045968646037467647593511027702214466579519030812903079913024270017174529294750358477746832247035777735644617148432430213271290791790455550395015679153436155901870411815092025710669132400800151377639763328253518436136517476450959165725165944956951300669999040166530258953109858544212682813051409589309755633144853755665417253740856022309432812988651678242418345412755993028771959364533630662978694342092114082923015882789503347741197848644208364942211504147127425562694119852792000367292397196499758814107226962770772632262029387892158269843346952866064185440058103358706307916587674366491445725164827221276927501116541525249801106816605988065026244037982213705410897816413874997092841724729404215214898149988275486359567331092766108585392012092052644629477546201948111075434323729756245882936977231856597767116257654811781852092424075458008088547899734141496382436742830708940416136559897700103488844558570618439622318941165496690227067485247010769649269951917343572185251685727370028220523515699029927697277258966005935448130608832073570158906263548655332713760900099451716159562710969697163486327754549530009342203535665083268220920820614500342134728332263940407476324490736313500076270188050214835338122749358327026280856032037148390545421047981672062723180205328003784877205806660272164234767516963177862775776343425798256718440726256744451575652790533817688145918281517676160765212369911318861453127207347400781792100916723230138697428728664843821709247569404001866848585994275980032185687739867377731002746194229560424609045640095807869145884575578945384405237955637387698485914227477411431602505658174819212154253971089904756482989074781475820492561003095627982219787208762325918060873866290926483406078498573970219103364009158925569981358572509063941445747091034636699588829431811236277346303600600192451293990116479312916047970189697927694406133348340553112674592525285965719180437922767922710172312412123293997488071011685296251403352495780775625832553296569170744828150860123791657580359116940763339725750336529898198624584932270171247465271430227629565847008164935680270154256770697410652227330973237656080912740803486341023629535723432918950161684274700095845004278381030382241328312549199878601329274684892353287465762003699754270383073685612223085400441511631796414378016739685721000969554315356500124104351224750089821233538703583648932335545350403484340485369792794759390711061437163084132153496910545208016636496192699496811330266188080019919735803926154505174720708833563489259082748270334469512158003151904539081581729031238452549118289119993858288138956183568113756389561842536417252064177195005147421264637876819384641958531316588487642195542140464110767439813469053944191793460367391195223980849857534301821451340694167487971761303501467911121226564009335676707943876998223952240646776835637262384319798577304510013097561242717103069993750910264570298498965651745769076389063570039593664873571933809608229795939197254816499377369042451563134191923840932879413775870172564460429227062143777983734654823397902459580661562760577810662656082405831876790908289518112137845775272763186043006901479511434908675134574130696467235060212119511047090260410216877603410112980617091209234538062926519832174415788175909311127686420878607464398253312166434105429131385703445355247261991329864428688279216278335690760333738476461464027104330299406896710785539350928495817270342363773307232198374236356333528283548392250046726005397132900014187119285855647315934907744476816826475777463917802181593391927359902198607517795982360794673827401565348413116635359965765534233947090127460533582565556418859451478529433335708106945965316163646041614191619705010777004335114491719672944581291353288400061355542194828217853386300365787997300979411795425217043097876506481208541143752499073291471557305039887922301905457334017345687045749082546211415644556945793414846718296168423214392420442973428180428269371297831841713779087540392716368619382495967330440836531666529254817792606671132275485840133909400700015687754085679642585207269887461682212838355742165344084724900606116387061665230462793779854368337843424749866603597936548671242617602409657032898264076506840117659102174302461825514791356375627518723775769548645725521155597201998533317676602836697193878460137265512827527025365977035675761566717653095728298901376146273257233662212614904983929504905555553640954765192777344616708607199832641279993437623137329912283664835146603542093075444287522534801715493569798420824506768025465566693901468965945504888566098968505233752899857611790077296198125878418970857239521330358788993743323966068180953905504815996374568312883924950541151993249537535642761306725714869321077252166526232973192778402438069711892759579781721268462937692694932647616427617002091046524790218274397724593745318761022746066946059161966312474836929224897731989728521054321443765413321295069259628381491744785076159788566743484505932627165093542378622392204919973364225229461654798440119048111547332788449672336313003887805599229941851934503272680919611747419179175741655717741314628867062581528730021490059549279299172746739027131024000253879921941520367312071961646922616354798709512516041719900695186256957358976848661264491551152855054136309976863653563520528018563427582832240164673688748777589163619675527441344739709157398751928735943282944774420143201137214384777240780080004933462367477232326353281232644475299310238099076247954706759066542460349047673048874845874078993898180144230786189760164436516380939966499824129652907596486161426453493083205445365441587519229635419268620959595451236102415028134429808694339143537026892816636625435460715128208812968868355176801097568434680831632284308884211807541496684690372289338519588273260852351968225126340926169615330221484349588060462573561563380562820834907356360136926015795681152826247971624263832961197125036325549505537206311323172174857656707999969827066240249704504428534592407454901734286808818418005754395175784452326539313157841371489904826709500094975423226630084484739095212298102609164907419683370419891360465457062307320223350827593074745490215157284856821280358181519151590610869918991522024320873139454735410310898340393590491145219614713575240650835076075667637212706331017647264350138685868359371557809528615552368849365411034268776962953709209018240132140459073982425859504916985433582990799388952349134231107226523068652891021303706117174927062098306975057787857849382933846294972941587623419766080489275801908701141942978046006526466194537074172466070238760576298228879203422933345808716913433443745750764432596923607832745412459021440332535962379763324740415925613426023998337032675123272945287035689236670542492757565290060007859868993279903173363996280977627519637668677137712502068434600413414833017508759797573999814076128281144597375011151131521190272345409202614782764582644845582887287321071265805969224045431497452338736190642372611012565592812451053341649688124165727246947398703277803896738276715719774151532434081744289893548358451108009769552980877024773424090596791038495367764991163746400503306301358448646474407147787258311027292604560971675695211679234760606398201670317154979978147669956998326403193548963390102219745655546674646109794207874687282215074642806972101960921207102367566222537867886409298468661613337767168573972585598342463604721868528278014703878480878592149862130125422853454031079144220995384035133890191763465195437501087884023172232213319155611669861398440658737640694673809935638400653817940207914087791857278991787994596927137545073892907033452675433905748568632676608352826141941597542124298732682064922021052739304277638984453350355019903170723910091240957029345277777605664381428318680996187212029278650066729782994784124341850886532326271645821320120861120914726274177421569004289790919004278959008448794573883883401264440121080249629725988474076225866069285928919113134920488339335957775122833585768918438820419228537439462032704035491234985730896968608986820434338126906818368114325600224889628288884771608347726654007989837195292000250081983942007127028054237315621839077788282629543405251500289744592625097811499793650985497044115533505985517711488454933611661018215067036107666116913025658563102314523906496440466715526760048667458355283563734738848259699041853483071099344383386692748884115998955793999541931487377522877061944805317619361647034954194765907167165586133282431190364709144076613733300330661847171741451553883215557022599389659458384148374527804522233153138301477993412413695159752753208663216337590003966493012211716455956547708715174363511129279076035117168006962853729197319076416489439998991426286881101255649903208064471655471940810723215602814168248497121751067594827240521565371742746783712042836523262584628115434252350561791764703129926469488644983194678306420162748003478244658684662471177619838203486687198300107668952748463527861865350061901432817278201891410633618631292990840115573232562784891480351875796984585190338391646135243976005211903133599808188838210729866306332436948673724491369897866249512469205032511598220372845714433633511497424781529269187320460205661714497281633349533597167998171995180889624018668048090361192943097386215892341100836370686590852755780470067747290535945164231540501031749777251799561866574267732524080480932451463139792056273540395702166726115235342902769881174997548967967941037545207692575396499141547555422668738216590438331193006866725343267931297792614220579541087003436397623838581165499866897123075608339132717541123047856994253922611895922453944227306413153485652259923325037498278925139148501789737996274022053454210471847330082666311326510564161511296555636285747283129797178044544101982990034632709334223977020797191859240494080173052932926248861980338675826072247966369084918435478823829200096095067105741476433395538282967202145686514763690648056254625990785686779212454609022087577436074365257757612551514473155643931137356325683450942960794378523639131079830959697992514914571677436005929521784441290208122606378183369270104839520664854779673177294682363400500204577377139498444613238386910338833307361368279607200460842727494190154622876137017151542592294049228351168276650320883817572941273592718237983576884054750618278712002472126147454085227329964247334905105930599347208322174614295835455601329986888130909492292690511797550360898835063844663584538752856510986171483519457110352545500466107195055002635353774849665740639191186086409567222859226380048339609333845440357508842865599314389935671207593746664810633855282014668959183430295674275834344062000379782052521135344225161228950184543330802562316038495068749801630761135752613210344798616706238165816396464604887121226381454995993412929983588587860005569370025481438567293162172594261862608965918948191577888533161696550508539360910839717219690533795804397209142558542823085060231675500051894717232944397869116200379012649472702844778332696063404281092286511560933695112131418658582936583551217694901306294513071183776345719373551301125327720613462004387138884502454927708590578593872253914552934663796138780419366612347036987132315114496897383262345015320663407582022200410118926291023458023603078490666500046671524545921815391249899175504626104923135214140458352364669492818576858483969205589871644224366327651723845341485424934124117357490535417934434014739923606690193512701817962941498499475000699818777342052226417759951033227701119853599825540462851743454203623721828220322959725838478078185154978244721495959742773206310869344505338421188938442110698660081069746944320767446921870606941707952149616353359826240173142475914191505061994255520765196952412556626531903476725083202961402597887208340342814662747727789244251262565009063842123658006050149839059870503607337189726828228429631320200528715099983525645559538741716896659206596739793705618915522161190528161837859338781084868797706810411409213791385903612373058526940619066403183863198729722761336596074775281271139990234750730256405878700937202683113989383828307269051942434452154195318545758504818809521502561152101009426334124974965524822833099650415916120405746984270330717157165127233359546959054279969520499220363991869612116318825039067557068582573723045326791489159586641902884767262473094277165946112994406055929289772415866229455263218615101317601512719539611612947658910163132910091593675416900034884620341142665172557369191949611567255173892376068433483901000133341332860954935989412690542650578802029224128257663749712690375457239867203421726428572665592646670222528546106127497777659280483923596600914683540224130603578813194143142856687077744616765614579035252903735360971255163598221968065646439579800210943923519108137139537195994339643484595813410571781550777341089534653038499342011647407593631153208763367095044563435588647971242073011684999435676255858709411270222590485587128796790689901279037356748547178071081880063716472258376302111023264883733881049362564678648306000673327813787932163889898787398317351726284786003877173654507602251996600771005700323427595338094900695033053869420425071298900812556093512539273041265144359812964341738062891894390702945805163326810328664693533513737757822933378788342288096994591655709165904046856118819779794111918542466038148820052863922786942627029269647243002456666237923865738799882971841187345923948336324801921271750921359883045924298643362354613717149520917423332703027081086167160275538218344800192996230324338082329413515294656424795086981863913615266193116689299369801954672694101485419354961252515556793437733450532501087633438271407500683283167343052163775615971083838247407058635304537507202598803448081006213009429024945257702797502820537500206740620525583680393954622436013659281152674666106319754439766876949205143564426754192176664833240351513742327668343339671846372675858662187524938845411795649473821997870782406835382757669421055771987651534586328069407336371393101684498913682674869399087896955124850517160982252128523445317885336689582495286454824468347509809720646066691014240921669445034034674626133885235176188249308714991232698786479151865971438905426678373618510685047366982114604014139131476060254155150487958054670909519692562414901524026578995981876415873268387358560782077950261269963868074874021130932036504726273504191154967556958164419319897439077866249096006182830057691207300152171421899946305929838124597895980670876158348174154104700262544837585882811290419226369884425027236567128992616583969424868827550159110489382311732011599212543845380475202480096523216141250620156880876521895711645401003386971502282091033926358589257174880483004691068860290260095328990942632298392300668271251291484140854842206202758431108846018550380945420936731991118101819682368449110515232996208300635877084068316477210592787638022425454466678084775204628215853367433690033829602671828247185647747997280964689912986984559476642588617216758995299280289599087529318714385318913599434610149184930094512096399925010221347724887819059545419995178376118330226287324255074237216177520919330375783751893766909424863259709764255709005729812901097314021315469133456128123267387460258489502708014165888030851514374567783926652535082353879856850063726421488016568914054435581447088662611522040106291450385490143299345149623188989782430115808305514272206728174940035076471228301381449831405582487586116827328512294385704934551342716954090744541202580020866650309754894064930281385106197068405395973596825331217697870329823401722263975919863406687200873603466392939642845194819546543475932114584409057297561795764127609244915416588560329556580516428784336804349367822236386834463488526940277257966336106434999695335649069472150470599908562050107208249867406755038068443161176121098240883105363963423534288722135339421615190300778369342623926682010007889124427388896847482081539733153483912367955801401217212728365720755820683439494959157914877293609849149607227547636481228274754925729793203889327651742414885070443654214207632734535316442986080969331503559347357289183734687754843964687167076038310578974377407234323782852086850662402410940741359604885319677661115705224490711546818063302608990948604883548920038785510224944814668948811665806237260429927886180951885981961204225068203117987610152898359067183749147237600428766973585954697432320697873475254484888630350449292701142869700735603118125650202362163183980588447197978866765576661896804174804019792572253275504302438216316469104883007883281658105619085952212214258317714548425666520291833911532985416725275025900993379291236493290612044567122338398244803301120429834275112612452319876682805645562930934470250865913780839081977296994955649437304880485065054006118436120458183839411953837136814372074469513480822847539536754900181496275857520726472077902128115329259433233050970608582131799337376389965227196546024759531609257608037563749461442057778977798940085503509535887826566659328020521503573927879546987250446057047530037456346872592230091399563487876703397879298029594001658780320436036137772125077155824281023653016466717325474352363340186604237427475273655809198759685004560532912467163606146952163490493837520270691212921171773327439919108008661525434757679180042316377683560266625011588657539158797236016103721925347596038086658686120232039789327268409125400060654626193718500484153322998641112959990111474135898541901414959576676559335965298956569612667879825421109265297144697916716604149728034493930848003243739105781086654094890493703418539320987802545777997312903059013030651836706485708067582329921708183505218484102622215560939719363735943844877372759594981515218539791978525111581226216290769790745290186247140867848533739434520802900687262417515796018507212217500319405930142267814605832688881888800668977977257231849532359084304131909265770803361631002988975204143312370819587497228964716370906396861841654995056541761793735814059339347050475266284769162668385696156076304574308980021254074906347478535711771128458262397412190033148371773032535317263676709298579754924154705632196603515479835717699482526428501247924452829493795264605658646558133666634344883267822997661604878171118533155171876906743110755806297321711364059946716802022956291610705772042845597937286935699121796711635289915280133917164753002100890062754293648732933943284237499495324244508508407234160239642192098640199310383348857043834657449947056303340697148584272500801615272609179415495737423634913783816085147068603001826820327345832920944195458544411220046098203071065732909028671679245342827300355202129452070005930202290405294994367583629470903207097790349064349376355936342126501551962190588923359908818174627659786834374547436809158179958399800213549147413175594102591155477679712426961833504378083513731845115445140343555129964139715128798674098891992541490612335819098099296855718690770719525866898821693572045567347070494288084361817720126518411658556238760560196085910061605412925382900754866490681218593222956671613633393122699596168912257836103288804729437978162203446520517583713072077646049935639245815112322940589751442904565655832806159544393254982631424621524817846854354051672510172033590990739163999373494351082803916674812734575475766898648118294745053604280321594524317981435590500557428032391184667996652993336898572200329114308713073971428690826649628087563602693919457075975495631390752647555770206660478787410681755230763909925362770601512932224514423867871414101971920252154031355641617651683536797619216046545811553794122848534571614325073567604680629515669546526573549130931152726581454561688342799427869438031323022230639066739434981651095535758154671787786360220721980326492605409478650809924178403561741051980014925351664546608158663818940252526693907584033358936412543792939210980991426092333741454071161044424851412987533559793452428378449122712013449481721409491453179793813724865896305852870286178243901405232641124286595348814714048492877338870435684891922689954479754659307234071243627882033509113632430423706081453426373817816345751358905949865194657640975435198312403300003616059969396195362652782028001163667181878875423898627910407427599081363634263657110119571154429175814363423598220796534078220208244889401427696025933086756146648067223088349549112891738252863985042579505566858755892204726502437057969073324201007263484746890833341339441263233593584204865448777424154448495074376672264421115711004873284578415153557359121302640234490368700000803447134296497654845875667501458897838977808919581748962500227347444545826480348549885743232552635182086602874932045461822344663311488383443038129391706840546694493027490409121788071299728342896116843101150816233792601747838865212976088597351644035999697449718100400922952911701568043878390240629770236829404166211014449921615386038770299519915201384046019210255318096687086108728013213096985097183265364774254389736163050847431107388789674874064836355871371540168127195284631377581004404001707399990296656213224952250798464888068570176809912788691329113023059527720093570794612832639849015058452339428028319376068832999499791096368283089650117072435428418435148028663800782439703732466745516847961356646072316175845907758699659285447228695532899113231816735463933334568832664007074651808486191925952829902651953540613660172027037676454257648467713042234711090864374135657639650901424490156011323117802733525271148099327516426491594931860177483921146000747780671647174085288248437563934316462962155465718873126654240821801291657685345203240015964931257117984241579164789579350669590144453041937611643246007925228582184398476007628507169759429826888291537592421521959203939743750691764279301104237557336795773969501951958442131732402029033693079409637234646572157567194480450605947778064269161735212307317385237373190812110513999291775687764340665521207314096960342538841371127156937677139751476415864794245772436188710791332055291367239682213981947030234105282490775712723247437597326949390806709535959256923939481245364167958466900706411164502301078824555671213136444174039494273430145155711556599748661131992823372172589882288716695668996402416357531162865754219085168529833778123690279165143957318849199467279272134802509194849488354596822236396577066194821659752149349512393133088762005178201797360013172997531932645539998653119530395432672212467730063038278897400790941743141916240554757043991505429303634132021470545156131469372056936180297444126111529058617736158496266282068998768170045236194827226224029513349299732082570982240541561141890903633435528293092221791887131401053887913559941120663492058102228610090860862657726414189866020205037693997396220684337531707298774369359274363306552828478339485448901358445505857746528980908949817736543404842702613026082750436120170153715966745725382342677697091010982556160720273040621757195309132727120621672256712944219726649467300860099602251441470154611999406941108620737963475383670826473069353589944062286638827819138862994579151641848095264125889828547845739029795022812658423650568657051050993110096354656026925226528958708202903005494274831157606604831303010204116903579574295388981716380242717653334064160380685161216097871817788449291586951327702264572343932521111572597308792683996711651284191596981783866169922216725543157447396439594827266995466848818293327476618127732643241535453340200199782430309662468341676088751441082214905756758773271077533121204081179627396033962716190006879786391393640460457312187937146369945918489726025125250576947082626483594295893741259697685060135156347939163695494706284167866495591199113723368037836463478596658424042091303459285043384047134419339086954472220040425583891136021861663569481342408655930035770712578424253806499040497274311116743743484504373359950381306807953030374892789686945186390397627157133042433548929382035699741005296043839335266873919633397216221925329633555405169199767106144084006676384076968951667119000979077097451997270803679375059760587657308454534467038552124370330746818202090696455057315063436436450298160534512041601004955962944439590551879903818780264067625828973513107372914753770660422303477857735202943775479250660565754901208494758144733407932724582611468581736375575719398965299102338040401947007433893328523863324456269273203300849148619909831026342963509940351899573825576733354597595390966203251019823039689016091336834230010531516130973604809397764357215880786702911575411038000390578982204178631413434042707478620516647106306944526638957680115123029742971491516345603308362055459398345196537022547653925566221663766192961759382496113079896805877994745698596453292420242167754463921198555455880467615394690548957035117262910412391873117284097167696932123702579637154945469723546531023750746265844403221089367347398457810448483969467648980189247469636815623554263010637492731753127712412928483109442529605256332480373862019286425016269439118018874242927076052181282399056082056714746585407463439098408276282258360763541514953367482315264819992080309616069140437572614356958024199055270879290928743095656822328190739570952012873002889433985476769011122860627440417428646609509899493317465999391568513593943929843360808936840173628910006853427496493548856140420377751079285432426671935997665596021499864054162122923053803986441333736858784683748737312809658604610212029520712586140820350105672830416399139781688006227238378648391160595366687347258394275806442427791999137652394075873791595865581572304227514263313081569668292801306961242406319838213000354653877403610645159953248919995035330645176191444529116927146770859921964448965952811865410689389139969382809059179967741725450085869850754089794179879594758463638626907644448822915390417362752103265999715902412257515218986753213731439857778824224069916111881616651825378825783899296095281401993222172659599121609538201548522762333152306931469153449737742126316922122963496521892435250843832543085451297745313514287211614664034667812079184231634631181344882389274454699602492489899876556291432860077204538992733459461726191630112349905086532512015169012164494121789982634001549934262522628552712574820949397692779271246452602741094920816221500542921593605074437313562501933401322033249710176109102702701204115287373768589841626764853600337088706127295016819006722611251984315781283505309868458258597212507102638072635414819484152246776409182292599439162165389446237400894656490303517565683892475165961018841859464266326803787636304623559275026999613560648558874177024740699809693355055758498152141199195001057077320669600705548875927556777425203436188991595156153478921747567069019766446609806889059179710183643583250839344309328140372138406050674045040242059888690322197898121942959678049453370206601483366768256602618788351271393882177712546337723031712425710440887682457397296000306190900242016854501822544182632844761874914471001695222603115032516936545607905803235284398081656890989576981343930234692746030728721803365428812852900584272544475656905623975414551251448044650868085401185870167841813276313105774933714018316949793628607077279524316625312066803685382792704224990654983343264653670863862784203235355459894484798417568305454513097302756538844474189047439298274605152861963613207864560054830773380634534010278874469218645704608854767962978531931528955745777644734957151803494951467429936625188610092550098210413299956036763983050859256338300018522708150374332014033714322163241018341281061333755815204312461755881229219391103353664197179206236208494318401283198497447616047990997902824754054051616934356716215640823992429141021460565736397687926398760036648240999082263481772365896535952183578143444908687698402362613417548394507112981309735810973368898105617153759350315949764979343608829943148369592809412621450977925048104666665936271609933603363508266380044218125792213945794000124445708848776691295952805091198939694225073082760024663016327661998451663502017224195390423343165270333638218719204908238961377623043327475739876185310054134319780706195336583598291671588332767649834419582432495745679889799231664513008776424336204199184465600491128272999864289021139156153129673695065845520810648902019631971208833086215462489885834761230079590859241919600064749288069901289133073229502645164934453679864528462246959876321252876626589869975293875046834857988129139384322405843033393773997225377219093065081898822556983600561291586109593096671516774423487072789193115156078186029880648546372011613517988768226197312388223037630840258104574172338405239109612648930891019471696801981855724997599480365213494268810563759003741421659676048307197979503286442184288384239953102549551361283002609389642815603427995087857479972857727333923289217656895391802552176157748908064877474068884436410537274372917369092565476319442797657191619642470877420058739022972585146156453644124841782011892336075093546051155975009128401941914624329375143723620713289525842253024858112040024434741806218489092700165440185152127441301683159462783676150312163080299478807837996956546391560223120034345449524084927455994595884902008648342672563578195793664361991666374185508774935301268623368914944864930962808064454398113971543224619778365817410104932593044142266802081677474466689525840609220450752065340651216547178800937958590917186794351510805139005494764689738078728220287703249910879386349497033080836776766458599471359748788348811982923127709482532395215646314036600382610123852108584458993564171414548452121858992236855763955078085174913642218809455755829888387595693042653347705542911472101084058910233293823452891406364425030661771670573093555249852088589550273302426896162428017604333274757210841812781771862891220017912360032946214845554950503920362079808414787785802887257187523953140358838098824784844440735858854082654187371021277374663636618984008656419744655397288978054371244743066156188611295865095297507344340438473180137384582096371976551297365987347776054058614731565652102983485960026185265435058332401106814581252879330008337814337505465835100839835523417582714138088773617365300363972270473621807054155569995462918602040889833852064015012201385123379696725127538085806159810821942824120637121812994214495749925769491086910272620544024743037737591229566877825918776301561775419637153124154420634636424331751003084025539461900096928043854657188230175762992933979807271470798928813889053344000508597201466908321024021535381954013525282351497574792580863383422613335879375346056044750993180598283989293963585991948271301702538997048892879268078281374638968622776217411007616207995570287280765569551057855233791671675124486782744939858463124574807727932985618763322992929988550324499641377686871188553306125368683992711430427701116444596873976094120715258672850791231725939439184801113529438270806962849689891750456203586846191965188722468657066444697467623794655836539899861333285747153825594559324868946673182098679718851036627734497991702302733259026034581217427659823580142456458057573845384757477576908010466032819377771469211401745704977147677231759042394144141206799624164052476563342379868990895046014535511591466923554860404670314486997295231051854084527918952267732644753839011675388494725931850194808161353084076752866281446021488731885162716225359896858698234353119843646376715337879995343340993520449168112645619225525629225928623466605827047460323448928604191121572065808760169218761592190764034814083079644446380616449701318283790193269531598266817916771012430405473762855101302842522028441799422115639299874925656016067140397474548922095349111834774457797599578306384030772779910022617974346092727893826729897179987936932833427043872696915134120239226524607882397469903811014758456320884913201986377664929982466456486893748690699417426606639662324373599658411752655357395050992757486271551786158385275990539232824771923584051459308151549771258583680449588277613912269913537388471415917275741885976674175163990297156361191937725071870761205083824766643656906053233844351388288116185926896940680142759946700944112763629445439137988603816534464490817456400827471517571815353576002568846392116088649938657087065631985246469620691360661937738553938405740586652110608110410755302847304709960639405390879159223123350274269836654848495390826914249218052066692242214746021979380018650360593773905225241432595467909078654337081442697075496535493307142511703806480979044316306352124173486549401812185488969902544890751010312321161174747945118369812028325271786379762852277454003254575620796697493002016879806205185545212521161676324687125020512683567503427920989996534694859643090630776466168033771700961781974451340147475401955548268525969709983987401927179840525090785720079732530225759930054899064596378651139142261833111491263508068796114696250902814005393479933434241539105188511572377217184828565123045223893464388686970041054398446271900755087408892455581199249954165730990317956861566948012136767447162081865410553094982288512067851356744975129425858084696030330265901664375687425478030676438745856568649508043474486045962615097882345188995406566935853289452661514354775391856571883941648968579039398904793385288756536460057221432415176650750856028316497679248118001557865337412587957459393927830114603052469300870326800801499788869800025419908545277522318723825770290387504229286783587860088874035322875147782388277156582337226492624378864931666212025669164871873183304582815776689586663511078453627505740513054990126485381962616282083587564738119635547766308411106119636069818264162775841629076426340108505305163029621975701179253781749959850289155993654176733910338981938632582979899342472659637151545085165715806752898840157093612737146010212530007268817482173334914667854991745606049737529109169140190119093777104254810137119222330094919111711619247856328470067329180811510919180788713943310796405342498374766762644277331199096984114182634710573334684876707678549216177899711099974894419846772457290223326431873456638822094667495682083469164654922203157174415085151247120009963416891244692752043850574145666041945623159834060069688802365607552541439351381884842903213549682276410369175890366426565547534789972216327270952627129045775607637621963538457264902522149888845665293969511046572807710641686357088757945185106243162916668397281977216253524984712281975939909960236915139945802980210044236155237197751731681272311753205972629677315198537561661986782746602417189077256302371849209170778108058447271677981234321777211669027475569938608703066746058475726269416268768294747923954088887803038273671950373176917832457055546132508461267031573014637260800644507977460686987151860643161425533134400430000955271445738012364908096749468673909819457416047467140006998948490456897923728975255537188960488552872059969470348114288660083756223741516618768265072973562152326554026442985467428796853100455470688248683098009661888000463673593239164960511291128288767070083798728890301167589281890746660732048437394260265110625470044597601328135099789560230731846959929776293007001197176929969462600453311115831565128947232924928031386446410935871958337741232205111152602480931149001200575351719954522771689176987570226935408508240867503483176772078674626334214272738214721229391288139244689618860530958357070939529635092862198766677095020043223885302168764382681994211145264982496459819781902324703551912317226874582718871119950296068479935070041736821343590305517180005496089925039923681942894173054780784216503797284608692632422911528154588773662174816742698306454390898827874941430622686620799249915781678619619060605332134097944029886238511595094906117519389114140485973422246838988747241210189736822209671256875773594139575037676990422018462745118252758242715110841360897177656868611465508660079218786522077356748618488602423689703453442303860811325253569782564289053316378868398170727356920343199833249901374269127601218631081875329053454344650739085961801039025872407951328332360664786537755209618107704136731057522311628302720746613187381319163691505236494040430278840071908500446947052177103038744484259239682610839519127957250596803173225925065810279674411935052947932081587191596969731311472194898483033123212239120841149800577854632149826786241273089974727609172985760020387726097651830757823069331144470912542831775393127253819891421022223344682561077233974502149458941816913463337607757137123371433308935300725852344054713844014820043240266922838601700510392849573336659801182211265687519117862326875593081334957137318058573660205664381510963836498806267288390077155344999890495942513522429392910092530585368861586877246973255251119780601300015348216310882314581349824590365782436775876370129750535435743215130011070913963388849806550957280763037339264616820739373273659093220147424807270188974882563490162091511504766639173043008718117203891719889302059169710956201394335082516527869132120996722899078541684572659316034910571760645624143720299785682616191430032963134717504949846699360466810058435028092586057933437441805047186985511426088027736072010339257180533239063745853862944821350110194600045142337380944133876605420597721154216882709440454564156442730232092556385747156204854625928137625490771361971608776793322939211626581787980988272291638587286162241029077901227987392955266376706338073081755045073763249588545129000536112290432952380086895679222284917197425933187058879432349060042771126606541526437465020630433294530538333499188815343636345612495714529890678396184115271913772495819620562983192809177137033356967440107464940753048450096253084507283841024527943435721525774464630196119754548022647114521834768867707349294782113202576970584263885969505328835482752568521631074493317529881342870175085303938061102424794473065166196026274373859352619494731800630179465714319035940847961038016002493863641218553584303581002352623600412776827348936885522561931631431691826698049695907684819741316967795960792311238304321330640668945059882308752892899992608629365425128121272987916734110076810280329173369227547624977550808322707991250112772136559705767551511253002516636289335694283986516153847855357045661072242911669841208200761361236122281339852463723468963592227967387601156515911345694297787375461720345387156925107615884218989158286751996555837605590941380743250680538073245002218459210381452946955362658110454803970357362918092210121233784125309921603300818650129317454336483358472744296169062569597133070715835340314927180514500511662210508840870889328432856327586487054337820557901709929505337192606292969086657681767090286133198038219374822059859730469910792056504404605468389036892789737595872453377669853891245407892167647231091778220844129798526240461930177970675295643359289684277068419550389105816935067092216395175369423062981740216612331843795669544017330162033644265943591752345062463911044114436309539701252135348457193652163412087554945885806023981322911674851627009787465533566768048522610925927008129362946568882689347861380562167564710407455522366702473556945484130153143132907300877722047136657094895089949086683207986657990540798986574297466532361104889798719226758170034336569927742705569298491003812663123907932416305396706115976583976338946947273179173961170151341174659999772134294535737474744571122515221921155110955839658289485799581183631535701324238909939227405649557225596839694684757561465835822545806576704148364351656801734843227906525319161358765142673979135300610251065768296010277203457434047843525691927153967615333383603646365737560857292778096798872240387675350845914357487204221213538613012530101977616573989593856991836792088222507230629268102492397384147135827604151825181667744827793813055459394467050604404093406145163728131766659407952999762399570362153315985562231371267328008310528074673545134605070232497992301117086349679087386780111082682089693324852948068040674774143716055802711836793215373282005516306275173048935554741595332970829580910456750562042759073644386480759981677911334201494489116400050046821896707007471131524325747458535170899284934631994609536789872267053688466536437149306395758335840282847323474652337633058837411730988267121782351930250126053517323115782035543052856180892568506202073696798771393512754145151415281355785075547881260234035046949012975960998026244435639220720349547418279965902126363030453400919095102696316297036827006888918614252787683902044705056552277196201225607706611143091574613134588472326894975963677352991616371132773287748725425073933539029057568741714809314835397034932443514897618911480238776973219891168027107571157861815264147753710297283840259943426805522697652507509270714483326342801378247498650889440877783162198956112961611369261332043419221400876018860104850542088643522964222270923345820073125420485376671756882943584739173950570316871245662395985403368202627617545293417318032543471162441427411455632927068766138339215994088131441730567466978821029325982968045622629020932961342566816460442037267212042007732712759278851877732972029130996956692929678820478445296511047554198932454227698602841894084110888237983466022141804960228054275898902276441528723673250817035272861260624399914890999109960662478621655562112612533042108765643142231021668516821316781451601236762694835829165077845310025949657796228355609197148877637849493371480266844861556331495437619785964608716204938200722430397555869942344786620842956973486565569771482933945778871832968278819736229835949273683213921841259147820955546323767553085606576028518584940918708513380833764297799340262181826507994582933995912125601812286319254049875863528155102912379714031048920995170969735921776732334649985909571916962976550125160955892230383433178734886447759717961350271483569369399416767273284390037429543745171398988862070272078867739832465367730700801599483822913722213521386699375638116904567923175691244771653784622823732537876524783813661964004683712306025620568141914771611752026304738252180235980588245108568393660156846605790096454079329384182519507942425520707321281505072853240285362727693729582751769570521855179238820810310228576161971951150200296207387409791612164527487734575368838403734870226883202172537370871918698428878724556560519195007106891407132511451674396041439335963646483925588466057637437670930275500881147430792566918075321457188548872166410698924874780722878868724050567399925831688957857554667966989258864851983286329274628356680467613731205111073836214326119320974772869337224163983109672863418509406021745429764440446279519623126224968386060239310228627645574547542353153772445227196850084339509065587874605250763785844217741482334317435119722222051927542390154120178898535912282256666334326114080681477715557146757275613000842361451822080972219522071852542245640937342245638983596877311012817325756991275837810074987247660351879137350255742800625425697268073435495082469990258442121424892029360912035677682863144385198019567209063083694178672631523231517345505040378338771497399370935388315625271289578852310904907114448330331855413552863739637113524800704823633844447970451967966210563768497045481351122842785514294732584933489170969871234260451476386628428305854878919843465069072163135996669627879478333718032402543265946062322329849266599157567297608339389395122147489491228746926262773747332951468182938030545240199899449893926414086243312077343771807835778899772402819146828526016954015657294961175847880241369135456986260089254193036975122406811098538338345341962459073029778471167334098368086756974156332252007892222786796359693396372943222999799621821079008348462360013266353201015300758035991653705201568942568090991571250784705330038405485979469028151242392555805234830360450008795291079508088313473605313421229245729484093144590641579290576863789834540846981009889741166244194927469043579524603732205771435446073859073717593249839885428316876620983918932462734871307523505350226805095508430697743118111940368001372662809777950646547634478437956709672272828660776931312588286327509879683788488509943222795756761335616716467526384209273518304410474075258297893418943491907263047559543405611506781830117752151618277233562906032854232766475799461510187829237003135558263503614495189620268267371318662198370144460424309880846369007862564019349883601098911454534352968752241132881754798913920450759508533951736600440198535231276611232109792277786987620896569549980993894784618156727755962593980172714561659100730896707908571352235902197364949230756753470907865331873498253616168156362412338509479670148644115234657498415465881866138353904888463087265229129481745855213114272968229176712923432647765260589465302258624948010848616445131418662498836534936451036405977889744123014746609950984409070153586049645828594097056915437005181432045900897802186372578008665539612559257069757258641969692743895908921210953925134970777005988168499566814988037826655338806380662404322511340166197737065151387719802038854132284129000783865130805479445972580199674682514363874886006442253018818857681887174730674404492935892950816782024121488366410797921821557023611160339092844194901413426342985113114888221221670734464122788560876858519731522983886235088237767073168135153012871965661631642136797020451833690385708689510529410564124692796801145507682542961449267611821161322601546378164822320529953093283441815648560651663919173835459379114704688546149077355011899476365084001024367569909866304239055900647339356619851470432431189572382197601692770133668310816665269036049630868821328596771080798183980997987388372984840610724644729105751334079715254711351805688678079717687968992997138019470219211292933642276333014531844567585854082806259025695487032359138891166977473518477298963136675937456526236512998783097864447070857524176280583937969988385051706859746553230678566621888656205316205742538506538776874938770983860552428113233181474968683032881204264139180422364453033114371911095648454113582844555755728095448769898088816003261002159871684761188510131659172956715085419201895962333103961175424968872612094632468605148869129981889823852266084806110440020405857680283320327317717000844784045115706605966439385370149657412916620901142494808112653051618535791528367069845478320869281535046864271772628625937364505142722300451876485212655944741135814002784629750971265568503548984678530491228077683068420948228978678423511013449925698010592351773113230357709518128531741824597455427836364053284126824577083145688975959160995425448264575063846738590348581993349214201487640936584895317629749794311882852534534649380326385240038416566233505988989268571442552297392847004679798235631612681950942078429646965423430616117200874052249251305183066783229484683249906996048910740205080641347481365686502214614315594438509825779475626667899942252669989528357821590241685112871158228833859958294443572029665197131246611796661669603069892063345849134532076268643785656947734681356066271015216504812792111030687144005243836086523305545519075839288765933129412135697225582165448482297803982637660434265534227662979601978539317473984313959006791693696820445401309491053644474727950314346851680853096732903048748293402207912051619487650185452906458312246619168254675140428581958367910578031219344041432528164733564524925650656902964603910997666315915306522748819586771288848738484123929400302584883396836531178132613035940691565348161820500055131307676215462809548282104627048185642608556680413826038949346510102550506840739734485785130487749634163418341530425763079256218275104150347821215155482507163635914392288583402491430664118267694770101833301546011974917287900841164376187633919871200124486704978517925781829107558431457095731396048028846744196497737131386126739495222379172575998855350299321509240029240191369655660154326135019471331417509920885525100404362003867148042516623741963460872968939529539008536818879482607152144883891482933233062126824684736261196637284395490001018592744432407491647158742920946423650868113262734123765075177694544697777266939580386360132494189509358063412743580171254578383967043493222849905500276805723216415803741261404957193487029373244694114845901147315544451874569060414647518086580772903924968668910613249161441159247497932120830925279825325819657305542445841340347859027709890935841997010316734974511027131157689983373675943213630953888728865527576385265624299189907212017891522873310434644472964246769357283276810318890122181390889274087000851412488399987238300737259641176131661174483075358631858754231162418842608178280581584589609105962668560553401798311473481430660312666086405923638922308395097215052105067474769070301288803952219215712561946797027147754888071128443637970006795986593012048127658989419409273301390635941597649096979765944625858517667412713976183662494965144554008866311699047346876458798811910906307847236323905089770870360381770897999874405263652400299292059717106088221946648192970288518673982166244221418587224209977983726165852068085801115268471146754447145537704219918472101515526795142825397563608318969869093669754903231841314198860926341686359816489537280523707494102700200342576623969844891264392048877572243682684921782110011574984834672733458547270643973856616402173934500747503951661671946370305922490592217552717426229854383307663692565823885863420495405413675822134216147083493523316033054532075327875854268156038888510120476829950978344361482150839319020441200126322187872886393856289443966902781997581552308050193726169667019702903379964175407419822554209682233431462670146833069019226768447435555294095543997031877858216490390014958405185652580860572247192624586816249074879352059189480361800274837155945624239095514211498784543963428292520235307928021785003265135205997020842648502372284305995061718329219179776766691306844208860784366428129080508008752071697332494204203768456255542213646472131971786134109294406511997888703152929577687474647218024754340787217390467019308097795994457676524627189776848328752282344952244478100213910529030267385051191208258301591267830004967095211625155492689327910987165023895628320326473819698637410537757663750845101928133168006801747252358726150317166413173506694171957025126640550104617485895679670311283423161527516594456061509163621297622505652925474269141494790642701234907604152422461023573813882059923675452468786460135611797539528671853052140001688827072372722697186263910554354177924924891581513187273536825018598736505262113721105494742256374757394248813942104605969064364282507070641567537833645197904596228849899151566017283140525267650014367685447099074646703487182492333274823708081575850129697251977046311851044573085940882743103792159780500910510275827125431746720005132934224547044145090744923161497575157720765482632163176731319486471084567111202240764578131720112625062673791482565747879918650055381453606358156732764800700264367581176919005745924986551496443905777839561945941274874465375329591506760922466935615976181179241274023007650357794583561369046177908449009387366697028004250239411817871047678026654782565998008645339444583416419516922362338502696533862428756178312452993494181919493489080132628323051716933752685176929781274973946300474164833073412583474687854610184003146307385518059665885835403635306784847027205407717561551513188028610446411701796940143366526511492495309186768548788920391830859686095861546873775044388173335971792531125344689318672522997755729435369166482027025514607923248939725920896466976336026090980548829527470329639291832283466516555622396944286767920106997748748510598901529908407180526529457772228831600410638470317793031141878830307234479757082580630628071931317471977866252327221953517862792877869455158163277555410512462518489155741375858459361411710814313719760694175256807396844528199278423478137747328005555709034029757090623666319459207224204797253251075560199772127509429701604838051225644995542999975407776892488494218661070616048922202309534407427665193486768294777859739080806887254627262545617479913864383899662144455090489513861486086738717294334210517134203708855828577726126895082718705828224521247961937852732843460479526536804068312738203682709891470357857714272403986493175589495589541177223866729103777442073615502677316137590986532574692125887005836089115702833938046187585083277450448866908696268015205492550484882779671967277378853924331631813085768568072290984085158684225630518665411592772278446012224540962393155914024129126604406307731510533699971214684353127351432450711242695198789309841747880331856329699220200559247771393117874258121193626089702996481371612494150317230403960030415195923990121969289596903440092804640144707391475587309635361563627243374473788210888867196014000669221524604505786514331720973207321968817603459582509474928016207668417337030349470950774362611674448347837347607792921878013397159708254217991725733986775837611265819642163283838721034914591682391301504074070542102162748697775664776454950964034848549224837640991994028182843358607996878057381107559569769353678024281271381244355424609280391751426709201609345689919449623377897368154252965949182870710140150195135054647594378573089777867770056619420579614456667087575780580272523616668698374403346760493476370202619797320524854594556523057632331946002920209526400719414862990681690492964867873235107283213141765591964170925937879594619381101388615324461428184794558449740576834629987492530180654034790645191355559634340690327721332607254992867878908234065105683135345848631615722953641856524587408665326346870113214864772239266850550748365431298683805734854869461553244502887594147972144489591675751256869178980835966788513744623983481664343264738656146293987923014273880795016426951346024074655169909120521703800232862396514112065412049554915839136521109852437041102821571121922136311984962246784491021574420176999016847797481522014304408805454534895301255538968229884057186424772701150479643494608564293260616382248231841509552077859909693175563952745557004411534080721121665454137017457799629615469426016346961174994215988046706884997167863663480061919538379577302756376000818266296963518112034937437185003399132809331948000570801277089119759140639856976902873013374196195802105953123624368716173222816320658321844233176422892531654084543910538126584548075511871259963365741188947234773373850613469665536054991432770190012088589685010268674389296990891698625593483620523944874233488837374460897320010961087235259406752526663633097172474008622035001665399661413009999408346320337935663243272192684385365401728470066479212890560562929569968906991000543629284365979685056156357850719478624384462239580140276599157859380263565254693712417386729317983828718710041690858579880632531684054301777871614197360399530476655290145720992304002431141672090214948201321547340242949485713472657455663792831873159208628100871220982825886389391455817032458303501837764920487399928647509315328776467971810525285971330424036651297382281278562281512684576827349720196774058132445078136767096444190344421416806687036061416187506056509580233438239194681212984001684158897586733756348857672048404873503356346480024179534891010179148798114800734514271269719945667721706292967942746018063556493733838074457769417098862958773548749938259280903644789238554497953218991081476759117162403299533457171126592468516220505689213276009904004768643406685590623173788499818020027491832200392178806056071854644420449731074977214652684670180162968203685324137164298609658667999397295739302272281297197101796225283708974479787655072536570576736330285126314747684619326607061581599795231308386410357838175982410893729798434109019231975249430479955486650235534731581122008980741123174625171398302794922673477679606936641393115549824837234916587920343822320370695973781671478245090619496323170035068221197546351027994811699604521626606282405595454596089217649723710130688788055418274204841375944922556439161814450147864051096155414924061840596382457224884764298008030031077704256547440894610664309701212664891895618693336133133671455647661569770424412237271370705481661307455625638320591859543604228171570755092686163752504160135808640225339108505248069107491872019807454172993280301189343205165648245792105498700585611722726433369726890743303207207404010379293783309769042825458025250704200796872032631467754840988872181819137469791769158127794472305346407246766755432501579423398348434590441184613121898299586790582838666328584334369819118528052840086734526406829385346611358887351638782447081616713630063285855592491135501816018449028579688832106229095247306348234164339917260988708549396101146369613896430506636061482520808885331168080526710465394088402799847349284954008316898060316541891193822956329698123360632467786719003325215530365436179442214078852542879005681802241344970204314182797891214153308124349811969670406338203486055942361269378424300252248107155796405018228626556501281399624536415149807931170718851321973980692048306556988745561237396918117167060562129271519570112664478699241861183988952553786307531554735879681913612665701561056661399794516474694076695287999898059316042868802980236826097249875763078844419803210014461320477734981119711606468567256507600697506628705914675895178018169047520772843101024398900430661117113709161663448736119868353781176425610328286891563977949816187845731303331819255185481649176451196028991359682236445796409026096226715375516547561516129379688366145174998819014869321294061335813841355362466481123244950271912417535696867415610298314342889800553208892655350638325587064237056992498961299284400549064977614868879275942161929370167158269868734319629175076483630891287092692004706607058049250464071707218080958942528541012233957253685937580708897575556536422213352700061109411726136136690318002298525329780874699378172736250092558820118665543340305818230546456729463393129537385571078321905883825538976503083778633668707154893959273414397943797976936486066548711180510887308418247992081484405846405681814516567218301149976872595013015627809294549459885551635476161792662455257479528961610060784868750618280037982847910248319755649997229263397473922450647554708707649166404721219491162299383796126950091187717791426818855175529090557895173308266696158409642251997543367280920523509400548653010729638914323924800868419316052659713974897126693970072844632146059725421899623860602132307181356433810209009332825972701413140975794581649169826273204959378990517761727431812543797508942728504933030116523157998100534504188129892122246836618701693813046035311652449115861322777388356546282653856113491605422524652755476162217109839584681733410117632770150168497684285883400120212829531312531072111417342797043536669058411515670813117606424274146643131403248792297475019901273754034022588676740175440062356734749850587814615599790417815744923806651089183212931857511609787143300115089892673716898669874750978985722297998867259387680569839517602641083314026776465302410300066504261526325306439292096926117440709454882684992101421260720825909913332768548101572354699522311205344967143010288982477740624864372351980956945935988828964922840489004024803962847971865197577853965691631750533681593474379334869187463054866439068843836508340345107838438827238179953983272790165743448196653407150224886429357277813558874911542371574682865683092923003862143134620636935555520111948169644802430181599068808146324388353549169341383780912326678730550161444091691365325381515751424222161851455577185061676419270146782541624272911127598142399523772372942060704513107232722382512536417232369959165603437340303762408671316129795281215619170691287189408988843490122835179883762308353703104023501171017978994889805844722634007100557083005125357506860785844463496685189496402350718507108695932624272638300692385480693915276188682836239502733084667355305148751830468324067135621419058121561538158532562192430008822341748385282465458058339766935768854829387440323079951120535684588776002049520235381819395547137849172520176583107595089594735181242375139855793132196989437849499158604607380790007043303521709654561990145532583527197308207918027792164316393104815778258905376224690017257349409236645512032087754078228660565775925340904611716044799538695654605548563962317886338993471689098721929259724120346910289026632977493842505820826866658012578096723937247208342539066204262246792994058125875281103569718695487632736502075091160623548962924184917793411012939816658655697070380533580541365819632438167922723658185428302391023243866135077322711254085360931592815192100771408770129854948144791428795518221961777341409595379408912794624561742407900683096545884404806531564833311992377963488887101113542471046635888024241531531238843293867319210686115184102306508268379566271839302568873072612269264585766310557622685634528383873749697904701396652556932410617795894672781445072128421660598517219474797537406005549413729199286906576610054836708191063720131355430877255320118256815196303840840947172696538992272367630237435258191147251369749691544140868213548858450134510051146538087987132271581066028002289203992114361618617617781567977956751615357114418742948923790289541200309238963697449592820701425436465177773171488918643479398462484701746238923612151221986300577552569505483869336572873388871909759897587251793413061848199257228375025094350031628303083252003695479533052346737115839247179637223069055518127118862219416268494818894185481277363009512595528315145505461296544105105237917302184025852980256068770556978322618656087419076465995026437172535902318331982329162923792693333622740778413255167598210562355661487914916390062878654387030500244598884662173255369535929336172619416304350500569235992456124796845854863045319889835910341218517937538510224009496644358153944648009314647962360641662890148827902923600705880789074126878331043770755995828974652657397362288564132652082575371492451249626493879194765632654499669375227882766955825810863174695732314853189731560379729711174713196531038048771307960435705415554576718734433446706020251077326097323344133079283463252665809020943772953415231076056442650495552180744271408543633705751471956195247343907670371912673048229630543976136267028179457631408286571917850311365073032345356621174954893581361403338608158840967397654029330003827851623736904562356847817883829291767976242647683789286426760206836136688224702128050659008520201167655215126617356390061757850238203520033817049552975661020407674653608668890462445828341003952004000077730386625323840770538802973152032517052565690654643862436046452381393518215874081705705655092054706347678762952741266602454011132751732445673618981395196159066094095879525618727082174727881083665928924888847448474819183225670095427741058443509873486866355781089993540203157918433789649824482251922988959775817821600903195738345553553166270973237417899348557293893924100119829801383025200213746407717368295308824860822792262757284463816453604573237941427042243652620378005769357381202997682624186308690562345658537104303402328847479263572581873932314510648030250172972709724447298912285032009186347476474373808403300610449002727149237495454293614034808880614080895986440336009291969209772353420502145349627565090923736093518899276610088554869305639222595348497688629929590831062637376733893103178395441400779142235892969694870231013112222996399331043028582501492354590595070548308694635466540804212701856034897970884323843029595432319247073367074062613362193805013076370691059787498708545785790910876470395131621394547899290560877823431257001179471489451496556194852109873179778658722991981059471155629952761084292143026944994799313797782797518061860823808974438468001044655808329474774811225239567330748215355834647681219280975411156303733168803662420845373975820911938034822468435588175604459941520079964013207041219549332946264306814839513069907957388132903465134573526249441291569758545895956020830952092491208036015178743004785299970216323214118051112315649995122225522556171758327845529248021972300625263823999006760439569830187571090263484232650632998115565686028206579115542757102939248060317441742178815719012597723283573480471221347256077545159395906769916247054095099330776139812441557421482952405042421103212629840862826011386664615529504077641366148603563932742602989458896289083494598552645341683588681320765867838476355044756485426094703284348665706275796190277447936958008097675586880343473529736421229526419298418643517654891233900835498499908360095483670200270002042278923305571705761095941245710695085400623153937127436787295379724703715232626889130384234122540496069857989157076056359514497692500138083214977367280472416893029505848882678185525607891719434651049476065687841259630320641764033429308459935873046681505748111369464324224377371041789915336533539696435806308580754763204108477840960703485677943450923236747580105846171645698995472624166384213263460545452998169928378099187147870584716903939098495411417628624222452489596589315961319494515850401362930769399305697124526581890988327595668610256554973833230066761305541374609109645874365757051437934843817685061975294739333875288667530784215592663475466065155259034577660239280070634606579413944039445967845343020842367275429160954998267415282559967613938389535423079052764502826433931638292080835829456197167519543693502760445999340426013649144031618456230159155384281076729554306573335522865131410935959745938054852010066807513047872605521523261277748698767419190891655131973415501955557637079352145144884638952937406868273625180146439432040664011132105130748855692644534320268111967246708009941625181792915466712224284431119617690786769032860846227881291352932997980454230077920296765591259745477753586208461914165115701110787500187441132571148333147845482416779561241020782830764578620000682933306784830786985858159089456774902823565164839802128095686846012631060243436781311247337507520963527804299542186584304247075429914983360553523909426781437432191591715006992454433126600944088146455451569632005168782670161020413065746153602497295882813113585827220934091177109333490685450401440302224880028623342768025107418962147472876507904771857684428397987059989541040059069829946943159924719498040790554232927712302728437690261558601233602598307059266970046875699566915285274010182908021968948304612144945979667245350108958787909624112855573384852423907968807469073479386390227421074458051104761005344197830887551318579488363972759755231562564647438308920008652391323685190825143795326991282889287444859727662297613087022423673141506074809007467957019345170827558621458890949497689451189373020772843775429783483956366579439835590012398207711414603519394995017895767966993931247310200850867296970510058623635881550752953138265660291191555961194114230165699833972148390948318227953253841714619719412938652529334070333549448737891705455423174819430721919890562229864790847940049454934954812499403422389257374685602876382853702547448553267697468567597443430811629843040222848345180691735528677384264938519327868023125150907552955601480804773436024873825480750341725645069322147554305809922514375468670809108960810383520159167070025636721928057375381528056870129970460159822720253640632489703527970570216189700339928073457544137826255022703513755272279775424655398345529738890108536486794521786569794327206625875488960196977750662920114580212909549034866511273569144641818129807274149683089165873206879931796581366526377798770470393466071248566421411422634400338032669898639954485249740013301915933884617606592345602364719000621417374605868364434469467789486220047114439703747635386284988259761086349984011319148123574163107711480322637481140595657803008467758806287251068439097525813988135705852433751096671802632350895089112854152666908908436865410289756262457222474789025737560780807410178778140102505891854901599145628077622171630511327239862326198827662724424148396541590790208630896970818615864053693425715190224370971498752822234307698273797258328826659376798617973094742061249490219638698537986661198063658882767578567933888316263669766231206307952239910705439510599412105475148276699814486795967369702351466980515692051579760880841323574943135195827170409142298829114213340251353480847390618757368032775924434425335262428898832431530724713343623455821542260595678295841360145865923281926509114883785701800111306303217681487644431207196375402993372323542291427969931841453406864871594071146215453743571035728674486283987189039998669475003604608349092243429258602986880921661527283891733747343136558042684669049994526377012069577562890684152777531507024889769935330033610832642852093302013902297821145260122847550473238809668785140557631000424332844520274883759214843915640042312071390177817746921880519058864807722985428157287375596745174870973127002949354510231299803463526548505493800554905728721359433970024714278958411688597864164059471583802441737731792949059467826058242941275338314758352097007739555737761313038069925562052767813247779455823536402625380806319590691223119816907306158052572818252034280957526309573191791536044055529780055831461106637778431675832785118989174230732696726644383069907588887303865010081220396668633114984531192275574707314225271629074744199571896976344608979770579853261937675086792489756933730793615455934503011276603709854357184267829179601788341083118841068426922881626522656823718589367381336768269208203032745062183232488968041056338460017393212846136837207497675349428885661514303625396958848693184495525838523517012884957867976370238791777730778904481293638679728397409601812329114616902502751578294163065892274771131358069554215714997488849969072341219365421155651172302077585213183940679337081160647478770241224601523503261008469162247828784114429554279857478549761441660236832294188574559619479107449659324374013463085250009344049711710320008952254032013430341698805836245344758072914922128664126514368564663334906670538770849466999233260909709213173183402847330074406951278979094469154490510549850507365957099410609455162601160707482545227356466316976702067931871480902776100199118884601129961466296945423243434221932298143716996369760463458488443393978295453886394890047800044828250336355319678365105930384077335584199648158832266389176349949099544550955470332703874660543962982479072675966175802995200966992580821037837444580861103537684077448471478684494260728538691583629306880629776206520411578789678588014064121333775365158688907764520123356891794075290980039435122533230001606749439618023166404035986703350052742759542537222928116133884884130360767483625774014037680526398770266706866188599343082410404549994986298197877714249149796700820685823081142773551347113185929000878896026571986928367904995431122378179385039787456904984940825051971314396131055263342089624394172144597556842862133749429840017885095344075725688465577156447772724486230352717108834688912003355113205127352683733992142420707497879457979338540619727571826669066602406676706531770718132026208948971666852934815605321878464069317416533881662750136347444372136246285101666198175665162311741602248873245813504394135906973721482762882431185469132060364256284448533947471579158421214934663119170637153469011138038656234763461798194235884224111721433757113136107092736995048520789607036928508749684650302952370256000599694141143004814494442401080819319467499580642656822385204517446555893834540118296004515581092742663464458409614150286517617102039824769835965870814274569885818486321650916649126614597831538562401126552055722110752442372340621777022317400872169428001833500945823890336309608261531567403426035458110519127777285588021461216097528728696566334875165500452924052945743955114801784833662105945108987635271143960621928994183637402928877445565747957138104395809316493390035863254691779440446137793594974307495537948154549102416839023831947152253721657615853457864461316847955352045511226260795358553147225512846557428599392751583962372403807432946210169205793638688711432362475845478717752839144504311831830601218361865076374089023124105364779529580864607935340286814198046191951449008576416495070925699741861812241596926390374676811925746146098144385079963224670420272262679083681834974324477270168303744456547049420987139313325545311633566874411074721007042670562330491409109731724247892073822030543367512913934317296187889414995783404091793225564137534875440218672024821054741656717979506205232754344034354961625600326811481903660032812082813895861210522414948970128066461825556699085249618724530897468630789470053576813116796158535807501044620938966611748635134578879483958949183227755823284300266991585575800354691376546184636205581119765019365440310864049207503941889290783778489544321318879597058919479750593303369780033631647407709706976445434731389683975622669513693995100565116234455935109432123757622790499852546010764355523944089826024966859584728387122342410841846093704931715398744888463229386577231753914067960399704081833482143136380287228413639417831633865621245005460468214104263436727483822834494722559237106649418318782093774710903397546109230369152216263548864041501509821212454882554475205660187538852136348402278722739418181446660090290880387459610508870473637415593443575742291001035892010300044439218009928807337991710007168170436967929815383924654574372734972846589675238662235363335028281986266528679026110148936416522126356319935767464948399419525452237840860137800308385974171200515715096117700428910169746635993874604171811412185750285720554915383917748401432197142356099795367637860223461764289484665395709430712509132092818532800279319198563908880725901333796698402410516071471072994985847473243876707137490157669307586149273500876100802790392452211166636989851680719655589554328806781896677524347409734552370738470607797709185898657507026944147809465115550178993786525750810874006057136653459777436211830759933437421108445626287483724023700415264780904633665134603565166041120707377244837851770413120014819717619592783528588093645860263436637515240458374991418089485448144803462696481663416964283614893114703018842217247262779191325755864538947575300576607960021013637344552054335038094713827209297329293677672824317147374157588050303601654342327780907931392069423017324774140089880871423197278609549559565846931821503172935800556850305929665677762808244730565465271706087095693797599820496426959207226791441846256695058585779129711293068600964229338171230428200553084880423664154035861646313526141870844545499028077263473937174988061814612774593824557542859203250257077905658848710932562160783913419433674075881579711482484145012750690641466763195983456835139170831674508048447808531622589615908041973522139973724187068563061028121987831411650113508472916384991038472163223073471791395175423957811031510848427467616637280317559151135455390723361594237558972370510911811529820676414241379652158451244808305852924515034068188903274417848416919478479059844803589863237911527231960233085089947829678712080580883810417241288279835863452784288411611717341440154830062080580105857165389602489624873434645639357913430184985927268903623296957944985617472120945834366880744063778368083440791579847545647989782216952270515568198202412778435526779121261595057035873044689933505776478532777451126710081178208118080707824172149267512557477985991803571365549010539856688244207034324049161009175346038673618151402471803347266681781057167343457094023442733603934650883523354466369207727081540518914654349411672334189606385999028843138546488571934010962314385259936623357110989386715788787276666735425050864913698469858903792918223113592300627760739735404807175753845641754657873543927907672133015575454048133792952115961099103119434303190037642032617023320597247993115894653493524847830895340658633984254093655242566759091252228981421106906394012835492467082093490713280023559386581982944917400401849895799404848211936688069895890625329850218581729182684954799832138551206588554982540805568785535266700605903119799097265152833892806378753338262530405580752261879735025055027480437959335352783499350727986694457538171094917433196976657533881920574629738822398457017359851466204014993496624696841684538326341888331825683045916731826533462430672200949799338747023299526115793429610714103850536721067696311239583526909174525438858949768159765701356405534020606556126541152019749543377146639626751336166668570434766599189240340690899555438897271058265476099245487227832823167890229381286723313487367419551673552110182364105336745742621284333225693427870539894277183434995161397498142301797674194480151084169855412456900999900256659097368982671207402002693235867949840211319244474548342245385584275281632309388794379315825059711280016948835587733822700677951009848383281424933482867944823030748582297429705742300836801919173798761280918888959379289011550723475275656453129301816847352544264320733206626447972236496750828247119159099297646476075821878884932230115149573119475565830342142569678073594368538128691882085517181908830107317153078057903172047337950477327286260056229710733823196497946159248169068910850564257786978717561484025974965165526981894613043353282543350143318191343193917232130444676230360189232743242973420411924277969611238910756105705698116433317995718207610597103901297376354013486124969420944249573934316777075831918400402835612531799127985809850320723105725674943933510169372587984516142326827491687118000095136980729226361957954336222088743109186576470385359656805428384632721501175411252021002193372620244329730675374203223301883242025266490926781351574079062726930172766804260859204266475334465625525618944979390820950431208200789301659900228508833342551744921154712607694828711870395896599512028875505444175272939945354622038043549395010486234819367480371354616757801501405833202498915295761644985887827057470304908174444772949124702845919075074511318460166046411064146352686686349488381124375728915086236386767835922040589213127263601806845386370104030082270334686092356566907549430595375686293716883543046209471982934721539910445223150984166978112057840555824627347689161961619683118243684006757943384046314274042062073886946176249922655765781288695856053517250823233717801109910989764403802879166156606623013913217944591225800460035463637662468536920469605471406301687003397820151557018638798174057215460887596885264008623530155885250914236928385687703563537253031274023955203221582859833578455506912192193347449578192862667349442959457338887323918583574371076327338201949523408824337537745096323900898967756547047215785740071109074775117448045708985636455379337413920884894448404024588214077125288193673991929661310694323396679586889425937834723179763697483810822131697291058129097381636697749149074725338042622245507856448281881577022364878180060449723393900177484978548797758452255124501976588020986525423482231464740806306823410087120507459114443659558099539364932712787495977430624049189510943631025460920073192872244864620017531364083944146154900474709322988129763820672237826127938621038775396322488632783390151039874600698026785950931611462880255603622536756812022597317614454582799306934261848408247616278393151401865903463190682813152873502290238921471738012457603027474431488366525091950997713361969510914627014632256289213958595879963150827412373897912356502265237465197031913501665641981116593904305832984267199970563230735964005733287367680368240942790784402023373887672587555173287823185594481571199066571039205559895676608111395310301714700809126363728043342865902892127956983148883954501348171985081553258447185902774273672291194943587330657591996901245513539659681197879641454911459412339570486414189246429219116306219108762060448409424902398045021324670040609287078936392689251734236072767006997363182456198703502155617146360930325056157059930105168625701694913194348086540035181393768513740903708601130981025886962688873728952049456019275246572938784526573592341683708834252513406818939298758970992130733081710302279854331015478420333379581619585983859445089299417688044131296085281089307086375606650782763280845532660921579313681207855140723170711440487647814785500012116774760544878862927385021554551603998914334128526372857078360443510923183717724440932773352124172405639196230273478696570682644841916270847597963508241726370505329224429830822879637979199988502518058181079953671966441064187325157911968626314759436778021601989864739201673359986627278682482429329571449014880049176611812823266899428700072399024265548806780156068080798156734592646872186013684101906866123314001004980810666294794412060604234410322287145598772902257498501099362254784025982118044657188449559131501657049356286486478548749087404518503223101330470706920639287797818085687405460046331507350474187983802277565071458188331653748631002886342257167571037272653613855054565722379494356002306128641304138452259176296876756154925710474242082991623039183787585438521212972897182987379727366377737268308775808412193878836953089798535776079426611646278382990691161429169763913315622738410530692648114486571093138709364627468674910225824286643067764244141920745528411671019428022745396629438492015995727221020925254176206887317181951487288097513234987768670216100760387377433484669995909035775158113063390607466360701340794000621166539532730389850873102366549557577591866630841619122170338019714550610474846560039788535093298097616917762585340156001991549603173362802175120542735049031097501699858124534459076129200029417771852611170705201696590578694854418396583214465873121400041488512788609593128427101440722630806159081484525038698744985026093726955678804254489936006017027929545287633406158771946409485852892050325653235053950238175816734032172870886993150850080294307823422666438859535203034670900794868699439323975608161080045749640870736255916106618873574596220979462079468100481182679041467148995777940569350306257546257991288406535856994339116468171294542554154613532101968710375796556675928694987626179549155154853768160310587414057105169756495133298240939953667146972943746342208004487506224904539543328755934880597174992351427132505756771400728071021318850283170919204155913795106764719380866874835208590417113981995588231204461193406252977046802893492191037925493168410211603960319621763797171059308258517957127622521550544998312638416389585000347490595518104413404535815386709970893694965930782455683142114298441412267061812823488987621932417730363262047369085674135921319060810945345624483374382164717641118773107446043874556138845429088689654376880480534854815340790108290736033943854674379016619882397719419518862194565242677728577941002780789046322604110115155302607402577972562386371265116719996141998584291515476287373335716758041401605439033156590696986642630488801105691217488296357062930232964620251503859451077582174249457922987029275912151738132104098702273894100009508521282644949988040641658090734528334118711584354805890634110018333052440173358377490888664042107399380321290273085128846825054032327297601515515416084164121290394958057168650733903454370975987276053521893140927340818626852510519720057569458429966981963891170291767733623689680742184538649515635873085989818350977706526384141025015428781455687562519064468735192913705518349899606501202361262111048493544917488089179585675723322349072835666295966043804931799485149132216723812136328772561646277157175908850890202511751432954576101509811701025445138708766789424612618790304903584558053222450716038506562655316068528452109929642499070479704210722972559084180536318571381440181899519550081493115201282903126095412182108596998401258553115409432082758819143487154771869560042362484631203256990343328367926334632887943515980750220829493506469687990898169499943831152251036756632621169944229379031381053732094817096923192715834978672105659119564753663552978163049471510115162240451908311130483623541557529842778911174103135643742164697064024207044190225191567198457013423875885092569408766145688949275793640873030674682239248314008364921418067707826894160669368018561156131409640977901166646152961010873240577379585557333797289212893240402340513462147973657898517032768237539382482188238803658276552741916188341068465861093859654429538913929704901376984579541761787608384748787268365093362696940161228477320956888525351925336644004642965491322009793444973987630331601748813847033146608158010243546125292323308154900115172568889143140993643259798669771248745673246792429772038360945373541308974196245383259751274742787168688576352688165212879682360303866066380996272105245367439816792243139323400319455822162551293477496399802149781934330637898420304192659399201516268664961539697068033373205860585789916529723803500466790834184234640233049463372077409827647358181396315323036052834822003665756951344735601247476020206734754773669355790399609822725318075544040392262297008453231306985577290968193292042813686405658917087089798677917935242681662830545886812236458985348570783306170302182661634195448476855555356589307034179972386805161718456888954779386561583563997127940699658078377972031565952209030858903299077039391985653529623069046123123832548556537443957650253869243457238946804950835564416263093092928293145124531581589313951165817608403454037188689286818352610117019039571041565647937653143812364694678021352307256743475102182064283018809841449291583922762926849218746568278784871798884569813171437929338619725664235113230134380968891790703574325596604312264957120920198129535689985855103550469487904701060428932935085896347589116166401113530609092164012696729907569089581448005427669162077543613757146690837382979030395632826074869305398374728247914236480080713461255542424071752298914810346137706820159500462937522984379807730531900091795690436541098168198003972888522148262912552150991324677415847809912864556289237369852215563184192728504305615162001451031183205838963387967221210599999331631969411869048664808768016377551293958600301173780535571996955919087614508430505834598367810513184222770795786389191056993107815813234097978577935291420735487957133025314932949970142811594799789060293524178974723900167289726393575677020565422950081860766830977389572747568399041125567053960582579938793963924581924821368635292546630662022034966399941677374066328290220658204971916666664012409201114335809637140509742034459117649599889042360755683599541036951838687280279297440073813190178976804640465013250434786061259143856576724643822180446138590642294485816198082143400360518071323651852355113247572397534416056156175599886933328535103589874049308281510895798493264102242049612223676097750194272122838667499351304579226895339811835444057735570896545247922219398679207199848923657289415604089772979519048087224735525809381418474118903750006344363579596894866677285647198667666803578541101796472979708854808542883249484517589968618216133725085274840199193065593725740807293348273780247542822207243796356077153484484914802092710871946321847375692704943816948504280488427389398091679438187695753513116578278559796578047158941319300083372845062527745797467438291954714628051844726716176580046491639739309330530104905267720186099610610048669140608460218410292456741343259209627035731677265096109827798802707146488461783756947646419162157186396909229528796666423507782672266697086187542334213934374277822021019696005283111588935317399010092017811237888196165150911310944614569658373104724891380735421844223930378195685584544412987935487214328189844697808958969325557850015244463864917913168206366108047802989894914056966705725977347258211497294744888207205673885693076969079079965341076802928467290368607640741691953099770225523738983098511748398343828889084346061334614717541018842086952380461894444933290462615421011814873375837570733405883977586620297686092980193552591165222735549845230754537571524099467187176022462050335886569905409848222510281851999674160434021568580931032840657698704437192071017266829666950467535641342926089012339753234171723829624091259053145256891579729210266975874461565593061442770143873843411546207849800283262628652407132395833424269138038206142464401700325781407867538534128092097098067509266437921023461917252109944727818625291800815554652408243685591548413309868810455377692187963925037241890002341327778823150031661531007619918580256188978522245092847743627076251061525555888782938288901982241139029222948839894041170098243200831372363805616085839595755666933972721812890610890435899146834403148906049805185972636197128073801378357338626774777712994796915382091895822097597355874832223771742702958946538533336392388805306784672781605048984500835482737751014832545291536403553010294878826490192313648236899496786828898243273149783295336360488629526165783609765608351340609925966879510108759396586869254161322666815604509500852539400737599118744733063062558181333114678226762250145939192923697883493462723631194399135564989780583261640785134082645726171755253157824227002886977849042921568181648010331193233508197496806868333470062734384765371299045626529737267516344029844195593070630143660418003556323577198945449123186159115669086396438337563264443743535338024209231175629730415982169524335310947901380270147458227035668551716457224821570870664590493657890038358981115621733019221834445552722028476460412542330341632686982478180493629295092289736934638466579489026989043168949099145510850757871197784446907762537281264924267490540097227750175775880393974587811939370197871220756883647244880213607889903790840782201082024326776427396707343661415942882769782724781754645633905125201639299353555636550668990452052038165356425216505903695232258490289563598604328093526151772048674456787247427608893261996730924116158450305090506542090290465590954489745488621611446029798089244536075499175892124528805355553977356993176814263180797093985516924041901052972559281337223694655079396238389527537015860199522547013359960950896775571847174261587415923546047041988902706006010905033024461525582404654039543972749369104218577242398890525713610952931994893421693787558889140252298481969024080548533279590048477113743094266368623268658621757172722110969666999804909588606343114546042198607457716265287633452068650872125790408137806073468261984581023612324030138542749662252611461992147067118984481439788578414601327970381512579229612616674763010379939451337505825433631947535160346405254974314188848795003292137478778848691429668143000372164546147078378285289694096178435883351548959333201227084542492606963019770609486598748827533632433570369593293019319772776328359831554669769998427901976148705475083977750749792527016356481867594440644978759849812828208317902499464953468352044481142154934975371771822741623824495490044405764969124067843055425682021195561328402924303843142208910182281735755263519444634600097229954560053414217408192205878469279744306213896670529722637675402808539083466029438498140383221013970074826099195907904912425109966928058943850575338806900996504227554780181627555905760410398135109761001844173750233849944297376114055030597731169997159510695215288183503659568883679048405335837943173200265042999987265505602854211046112705827879614968348657851321856395199445193149358718794174537063406826168618251369609207911473811554802949792391273747923691490451122864533736044723358994191547274154821193135777275027240908998049194578365139797042658721752462179115637443555661154693148452411593214599470328207813979593628600402146882945052872639684514640472844876124220019732329135106572241467848538257057567299154055266538358697273315589710884379518774207973246553358120023997911470137579715967230777180022248906020901393516933320476520453482264464771201149160067253844658508806975951198489027456251468537887580030650104329623600537984919576268992471158533798291197442974027948315378816511069202493070596491721207690805654769515541498832846746668221901552771561773899461728853195549872401078403341734761561664184774948015024469931465121981250366580809577784349769333663894292593427080512845498503170076763641640961716113380730566966865440030628642533333451778742057253173955989982935143178443927323628460285268945855783816215702498217606948666931637794607618395193876172690806272027566299873244878449860587050476084708496784577549723973583393863767157297001084404463582738747629266032061412864366852796392759407632358304685882628221239219554019765443151663450082117649795363310456720801849569380541502344206661753335945763399689427996251608679016069407973700344430112294844820005378136611790106316328518182885734904467141420556998877977195304739159420426035869420674059825350208861124557502260802961932848659045693548474087384443547722078205889937773000275824083315319459882775368946444512149851428265971191030843377508205783482560168387888320296840520413478657768894443610793296832088454815927443886753325583418341869841982746431083225757036490002846205908401815173578546618639668652870646399845817899300567656704377882991365932907733068971914566022507003556739386736961934516736480843246135323907658011928640193452442619835863393976448295131270762316924497164733489594033573196518882346439129269527931267436388377180196080961362867201923671454390401649381668380170422809073805071324946678962517880598940317382270339590354054359857463200401986445201125417792597099908677817805778514916056427526112368968645937694120979891282889040417491158219540677554954200812587927066095589071069935500484650735449054910460243259044423518149646573899162152726503406224779135788883410923527897189841598191528722522398196842051274806861834173722097161261981788052293654045953930402568151995066137935213493998176268517169198183423564921269048638651031168413207953035033514910804103490201306451060856445628465924607885485819721648739676743376364106140069017882918849433571063361495264486487413010530810661490535603068480850422760851524398539176930150307280995108195239917760782278654865683807978941208807790202424877653889151828308843389311260033446472139665221228522360941498212626251661747527603873622875319611810254781694374315114402014243534592328509482857340297748232981302854406664921724209098970528858271049559178822304588962256915369296000569226079987937351734819500887760013567091960308836598637002794069899958226983656604549701201119531786718533169549923824054172080491691651336135258769905858577660784710078453505521437612197936134505894313227284158272979891465964665203744187668547233012402507121145338665613019297146234605981015020617130878643439339954182490350775022568946156923142482644070406898385861629095837879145265166204683322791619718527786313791951428596166286426020328293364194326038475643292149169535072549722296888854752471525393939544682715283659959484892695248156183514523723395911633434861024279872585283224231064975025698087774133493816504264923717394506927634036560966080154869823122191298555992416233793223522523112304256029513324771698809578868367888977268888215821816747843940978832047340487097127039926870603466651997049274536973548431466789915825759909738563820451862541818448045052999679602897214153472996845669868914538040955962341602333388982919197700436087002451515124115961774258988056099080231421223093264888257703007330650766281129374250938164518130926750157599858681065264409976317009018684965140511136213196375916234561131359808879785541802806014258226704280096958800201736084213197183756658196658214455137852408426988116050798620381552358967355896415541275325315412376280566502279820474992740728492771594770762224078507478301426002434800260977966714304812786524135455378960950835644717649826819878791485965317822805855262642169687796546471431730209033223891583098983811147446376173429748767490121434583223959532556338743535888569721948775422485304354704865394637386955530520119619045251184626432110407942355910827867184400365880041678267068491016420541970668052825754699838027686386006976914019731222114955522271778611371672915392856561445110868320722879599948329027186216488482775447408188778719301072332491074325757046708949611450267317420043876059098344240880869840748229202915197846315601551346246079352142191522838795655805939980180566040149620800323134631312004596956333893462168583023423340171317064255525563423979859760599197024827566718258167299970541742187893764966252039403113532890984720817214960104886142954041012667259920309789035529069668686898076904894897432265422636348364034660775644596016802830246197090293276240056907725387262362287743196561065930842537952961921674767522768896143312774409284962019156935784701332919930646340474591107681212903398095378375159184613834128677723673137333990788358580459586552931067353461656053148554155464479362824374773568916983741247326885368854769324499040568626462735806351073588687054749284262337327338955937882357347902873956179819307587870762732480958308443685791421930961210539796050075933389668836369630967846703962720486247690499626143303755173628589263416539609694216834617138463675234569530105605396638554012165054143556202938251121148641004435340773836084778962209676542061668379856579474704069172629607045911862713556555580954138059647346586456746215152591395914022804392155357650466291029444787943334941635288314676262228427471554103388014342551807356730522925840285655757108356072382003386624441325851301713659394400565111252441449491804085915457819831779040673768634546714774637022792480028892151077397625218109328124766680317413893600815991660251560840010616214323187457925107407459592730378912959075326471804743625605268828133130872036741702122990777520878297080426913095912399939088069841050179397435802447944575185895989862193031964688543338225237369377037434179125018711395521222810573152041661295416579949436402751731439769617668276648152635998306347473037204466295547434190954569214561598597737605749307218308225083188447260386254050127117670013326553014976670842997873947457841644401406104483342334239524453028677308102434087578045201483403483100321913652586707347400473228981249010853720321520174667785052474784385693750929462329679605817366546903553443919125144061928463794767531264964454520769483760563582100470655277232426546384219881008130809004528297687184615902635999241324735724095911157401125436246358394942211345919740846878709405713779016023171869346972343039440540481659402638660518424843826034392863121715105378353141075350106535638842931024136283421137548523216754867090125428616508722222440250495773767328396328626929261177201343563700492198081256057998787277292759860870124969485751195064294898538079887882408350174835444081810566231507871116876167983376785621184388216334843774574570232985019810273358680770488827563579718693998080414624237018340986565043055620471981239110822661455333971529770585703777494201148708811757895180605305785631255045141672665654056856464807429670908807758901218140157259270556149550235172694852508881963959576133917333696113004044657605327339902558502019282399757154826232583295825904109222209142416300938827821357279178342716449558741216900670719401263027640822210773999620623125690525910823967109233300561770415402387913008814468128009923919567657833559035999714187342805022782633705358091781821706487233696870570650135985660947632904264166562521937247702189286247669601335703501901393755856817563861902982596298015414576191276533011037684743829654273848837521503346157265309031550990162120782628858848210589545209667948646889248469617857621134353752389993456775256796442706786366834667177303631902058768755326185226348106889504238520362858340390150544732209268375440366654627322174607366986296690877388426741474308432824374849849745245111676739072385283107236502198562149285119604781514436532980238093294806461867036563843356123649756997792843377283433439590667865780222477361542554575010728971246819406659449286720743587658927042271112952564117205168625295410042474646640696141463188237906378552072150622632004984957048217186563640407640545339025958529951411293586112209325085506041935823307496010671639892777864344760847799575167431773452656375882252846015512717646308431852492506537426606097501370108193887336953897087891274361786777427275381555223833401946137985060306777548155838227352430672917702659990756810238700575574715108178172428614351569239415203788522133629364131925969824603983647658233020757209095116999527624295425768910817597429790701749676871630991304701476311654489902000105442316761776059567740588604674349687276391462425753460321675093304862483298509616446577848864698515350892916512392630002361185145103602249354266172286424654347468895270795312173929423019082170834644371240825490120872834278595749522676797121522447857918172397951264224584119302567719066585798493163659964711123568130748480148064503986083984472578134472362671132108237512038671554724369438556502182556968999023910435721640705698756712450612246057831698890691003465221133477878392338948233940990569407635076362553687311475124110573375778052517106773138815844187280315799564922333482811029091399261869184205976680150218661489722710930769872395725486627196316377772365358090402759230837978869034450636002728148016603315759057227837931234793114684408433008884045636677196132809276054299315548962462009797359359389022633082736707299960057526379730185659260384526390255554139947135797696123630821848907322234113138276094865057972721210200070605888337998459306231852570471896985073466711638521740640085373617113243668946014471147016125736532190246689287535264183705517686378305999196096683211652441602139726924010404145242791787411633262457317762264428421976598610969502388617697604451541295069397260873497354999599982602744713002664762572067057023745212952643255792582395632744424014246625624566711081381343205241978258573493349563946839222650851418398728930499692658958805962434124934506636761630960197256418525077076236529858609228308488345536303417849563042932548706601930005335248380578227212530322698663528196641357546521751697503811765841811107447761997347655630468629913291465264432745003327719156213466195602071194276141707916023065188779302238606726190094920651658119472180434888585859026321453630398321078807651781401428787660424974282911489586789223890391501251879311702385972994971418828132975261258782414622054875018022712084951310366024263487631156233668006946795857114161807901423749346730751003681779125429551684222527554454853505741621913246285567542412207859695071500951131010526934435511400553780149444071154141873056676137948772494339173613826612259160975670687502997415547140082966728271369824820422411446088417878165880016858370971879127664816830246780979091130624667754516482584391892918921602776081480334709567122307719340890792827078894112211418021352485336205338368580076358739401629747442204900277299273494576153869055074209480418355123517421635745391899530093798062722954753728904573212905295167919296276491536856995893850391322794861937799258788855955639200504018311767088517204759146663576696850001894432126678958969735037585802837534358139462832944283362426741250734659497121118168011283682061594603562485533818077847583892802997373317018152133304766883877486603739435514053946648960036255648255985817861098068790487942596144786393674223613634602409841628704476501336022660313320049114275424136662830504964611971807009218164518643531972920139135962699260375112014258133061670688850670876373559523138207899582411931254610203934192302473570679811918696377628925366752616605731111062580063079207000958115447487411515326808946891295752653604960308012240983227172420216678872763669686830960814528167084375857040704266961096345720348290345458159868594574081639301980067076393310625974515617592545751509820289328917528299263583768641956813372808238563842401689178559868654732202980240215887428726791478560602030242516644117878258828210694076568584361061725935011600363740512372017525329304459316053886685212049248237489003545323344951933010359476179151284963517267196657997825227192583923266923638023150196058886179375128127033535512447369077667754514055576763186732990073177511989929713975938109899643193715255645755357887445346818585008301790165621475278386099700946776478942165856465770267457375968722447929865536720211792453219170503850120934117702402475837903587379469211981509216947942994309374075211069524385000008872997891337309775346091612914547656453639359406704162750946548479278664666456541627521526514850056132435419234637566755693211787705093159864207076401934910689117726764578532761600459686978569763831240438498333932360253986038133951793672032134437949621891125968636342753269974532684236571085329493799488189357989989550154246878787982280220614452948331027027890059472168048932605816969343753821923458624922947029997008926019625458889134940460881960245424823768483785953514527965449641766625751626918168228646014798372132811200843298338720748599096628645746631309709168997161411175547661869317759717039170964556118708466872940175184951084882342355371877738610186625037751710115073563283231525186988554312137193280316416844188498127412402847003192417159920103772877178238216127752957089042928609079450301398088223397813676984856923642644758271229891646408999421684467500006844981877114106368366543124314541498458643454547312818257619704509346347145179304627774781251966823463819634023191588723747043672068090864092754819965488491259220753080086832140506929385856299339346159137962098883107909560891782437327759683779382049066075904921174984949667206611764005957529927304557415241325055912935975139163572923854608461697369442573155822101475521446525478644931129284537187393094696818808158942086266904193911462897905470207861598253450786115761703961326798117806945033396498124184980509780915359602281388414954766161381099307926913692251404205133866743106797271310935980415026305104088894556645519299809503776645018986516288247628788642221304501831330066715013980254782677497950916355420602379811681189822427781195863261964800386128827323949641121443944503509364869525308866899471535186919469707271518805908893249341643241113251766192912819800069236515202265243679515534818675709201683010928073721368048670137471385489915223960098571822764329274137039730260670921551692541566056802752118364099850253335379595537836402697398163703678205320819452444083263894414652495780961715849522513032681784734998860753371608578828399438145456492667346244701217381092843483024318255118819539351373231478858894820310315680135611508691252684971729463305849540098582950756593473506285807933557471892644004509247021605199184877529598513300662805187943864675515653118494343653273558879278798065311685526053740992409317205661544893000479843576039016939463472219226569799197125897792654906889129723355607683148313477478325258693552826182765388116076909839465662161958705386030735925095102722338778366742567657901063209602211272924888138534287680557920954710992532226088962927139793695730070609467079729144785948902558888481405184773208254526558836037701285078952440815808628573820968838746867687586898716023269681905637044616819866473245864421566066666470766659046248275211911481726051358729494526609424343716479217632814415410385106956703792328116924173057570687199405768321232391869114342628713611716443407118624390850070700083234728963470261217270706476310250825637859924871516459133884891663556484115352156180704230860014434852008765704476082618794589907003334080601380645443677293216838474173629011737012424992736507774214441632278265136925827330118850358467145125692507084976284817708715808306762882560828723273668708793068803320101329230415663335787888584193416865896805319418692520039520955502035077132909025754880280736666332830011678656154587427898066794513680096832396365904241377605721008116737363626030285958654730352294290709509858110800646581957897481744199229664551405531277891624461066684970032332509316527753618678905480663728254364728225482055505814082715436201791990822309429844070433451251583783386092255099251469368230393638630778237041988971749305722385957424509010102442078370211982583996245187649532709048686347371589892028572017414155325316413914063009101761812799388598859808000289570668709112068498379236952421039190680371970807746035723736616772277310488137378225535237101922371198112750501879691783892453705696609782445328320738202185074453660237716844670520793904224031575193437297856014655676169563028811975540036387244184995426880967046299968969352874916334605150643715807233812852666617475622816902542623028480067682066282402459823765404998132503173176529980070288635717129990480849576004163641555412310190994470504349377234834430875359718154634837586574101995862580843487907047086526751020267256201709406659018021020505294122828579096562154034687138415457904518685926720757372210224878912385170701336791527550500586598405423563834639806153843982649966844984866781878617443182287921061291629825127104088990110831808140002280968393854256510193005198955251674492546922693968139149706667801975266587893229628620279937107216040694929713386074469874702556902823129510405324425107708168730612281295728098270284151972537935947851561184651697231894428180411579747343284090794304130633826939400323029427584409877766046747399422162897378564220679295331534592318499252900628600305948850284663666077531205231675059624634468649289363202331752148021100906310517140046677679837816959037786650950702852492219024404767701911807597920382801747449556278288860629207493062549685753399398846118211347500074182663123883927040555239026462338637256932258934560935855656737633138409779792424856787138475279283722703584765952767713326999919123396882109164907633827302763105385136796838072652309754368560211625752194617179805326046080347596215761435223796008486130106831779496756542040895881120720056813483766764471037818395576178358489815437605165399465382831124569928380680512552461520575007313444361596488346434845778415832795921388585140534271752178600880035202462821303617082243219134628941462726839158065741130038174570080938418816543123856957842863227342910972142867441606688652646578592924399485382248042162656053532220341011050784470666652045572907902960923475185640421700313933599293360623134689413964725028059704599379804161382102617049766984819119758775543757189674057275612991248747712615554735906824611243130815157328930039715090296807385412011496403896897092723945424426669731573234910038789995860734107751671662372057516500755250097075459232869548274408370798482362930108527014626800109733025959528856936709076752743017089646501183281061347483265707021495597513031395325032270228258229421798573150065112272494670666004085993193459469738761383515099680755030354066776898961254141595079454927376354802780591867424696537442650534830194508678347273223502842280364278648480804247867769681019939784096985904443105996222902878402740640496580851783621422993634738125853887284610363943815907891818075680631643827431087637362813331847065227936918437706645569858107595623777436324952054846795458955185408586168018263484497647074599350264845362036773630458968507405723293565891486716687299784049164852102425011461168069771226512989301545166769348219433178175318733519814641083893914828908958375071865531897121611409201589967021915777642409208556878713522452305995830471767448422665880657267914471621650380615991738136382579347593300813019793801747529236755299439335132005937646886103108453820683660539366077454239840702889437692477799250195707673397020933996395194236621506905111181979895106932170892054719942260697576620312225233403417960532880322108186991470484481832650437115912193934295847368078028960955834114536135379829215809697008349501054679399415100749186970482906211260391223634891914523351553604737305033318556057253582858480359390636575722600392228116689350656794996223248939875540185053658505780863871739943764345679283439725011187295766854800756742474192049503783518651176376537721987110533843431539330380970848291472606203700840853430510554500738309142384586930806633948086498104360984037386680125717723334738925292377658873027376228641635889664798422481163195642449056006135478585661408727562396674529532215625436195871545717877136913818185928075307887488949972716904848302116154617443526229932822532330601539157176718451460623779408437962030094651653692903846073817674613306584055731719089315716070310487684721849011865821939008479985987431779728375624587544938904452766090585642531268907079593643330925399225467251588652697577325212121843047593465332021056755009590650169558472097092124874308915545635826911318758724739456795430736532334912697992392348610689905442548711919926115317373240053475859433669324209657817029096480105326220072268900031227510745841321281282265985575978699425553904488598464499409946950332708402024800452940909518962385747198061227743114638249024768641649017235309042800482144737249870066290883528690816126871393935068045732319230733910889818439815876460597365537373882027080094942013456643492821940893069485966908764207308109838850615970758304067772823317240164278704868481810253404780838382665163919065886603946299012381137848122516436311386533585653491637748214957275080784051087508229209684575159668206388664084395348027592393164410410588033956108174321750148255456333125953366938857863114355415779052944370200804605440055514749379603475230043052604834346831090059583062968662280832716362425507296674925078801138655033614882566617838775785522269674987839460287857259519381953714579998424982346522683957058783595699456200365624546989298683311684963988839103863727972738501317025822439297648129597633544319171154339384463874705583485018294255322776390225867872229617565120387932599231640854179550135585404488188585496002675649240201534622232448428409290857209256399242619268216880097290457497762340581535072199927045355686441274630435749451252249198977841979504356308534314734404145739158853385421263947348226059413452818068826186661588351844509261213897826869433895320252309835540810103162381907974207511936900929184030380316784631853839192813851038891352470025949924835287316839377484168869244714985415423647632887032870436395500732638222833551775323966429793385008669667167229623744181132432576130081287013820390024878966551784452971676248269375000614097181429034315632402258718941026686380082803541763575843595913367736662591866014126542782748655711239545386121274498034006546605268102034030930865331486943921561445959255148599209960951663680396167277423475814482963834262608872142501881794033679913238501986395364901830993929063001471020615803591800555793044287252936469321382278005669649825870211440998675758067084535883213992981332945977096303674175808671092062068396471456289396627531837357337081921815888181809536520110326037334368630191596148565598657829277902544183298570214774789803683482012514067839097623315617618016574075066323156831491137094132065346845091046555512980204106099391953923769095783993051811823556371076002901927166760358756838975383464735170758862396707474976582245723871244980890366847992455762453420610891910167172108130219310819299789613321214602639612565751275866670968096007151668424497820214547895228098891655045753891802410247561100681096454568858983202952023179257168692448808509202593900951105339798381860833078727648774998063589242206938867581308334631977336107324838044866356355719146477487147831307723237681743551703504137554986315034791153856906026326270064721502809313261393508799904952894948859553617912230718794929687917599377902278248175792015033349501258150374583575716191926527758839917132466662188558425552148649134283525586475584030883337820493098965698954354094710107710030482116946713941849829626141446658227852434415018755903139826414318199600377273216422284663061209164053200471273216637552354603141148805264266826703763978208316483812543641867473074109495260702806640958823882426498332018313504627862724333722769120782543062677757278803089263958773658255492390280559975938869917952660575488269394223811368714647138855278367105091790346593825790373071495336101832698000412509226704283734711232564846378617052589485250984246750252042275549670538627594615826614116638154509717339668828216964009354394328025382961207587114365471351471919915656110965524102440172431853214507668950590683330876741010463452111971310650430799816002110203459173322570836787480493735398705859338942091837305390992775380275092628542552354066515122879221009023093233453937085046370486071394929929522630086660529686883012261204139022278576763045783347100278812018561442186073437268279365855076702454261011883311008546157465903583678310034943252090041900685642753925020980744178973512897673247130585051826646418029440986581628347574312150804853758319529661037310010941995835058772094157375523109182178377059800406689527177060052042389037555327143419696330503536830192646594062463298797816511777630438159240950045721607348421872501210180691623472166559180625733356044825761749260710818311677231801488558222725016045759776921624319802918628880584501642294199734063993278782838399079211797137865144838326497990490069650334078752912275803567728531986561945605717594218176334442073037964881372226224723377190301385344426273291082406349145600230965170178411809568990540285684694276555375811663685829090669722603640736279476205431173090373469220250677822496338444077715596896901406851303687244164914875528766377389059912276689478132047263876434089415532957287885064349818610723628761406019469393420828898859400216599195262622939190328365211929005791598256456381315765737785098438229905227832579772486021914159853164034501554623891084019964758626377445389066245532561707479727272803428661412943566038069489854576634707776584937597901329939489478792650241498311295363114528827933202008293170285134102345844483631792177542879538897550438999524969608155564898214437465716493839157017488670218964490008742745151504863006934116269675665358433172905429377619849039951886127293606901279535310494293357580493864872691675541026134591731955859552050836494488609638257769128601615514931525664278373056785390380555330665047807939328336035301335873827560892054341961000415853955228723539125870784720319389661496389316801125306881011099224932611347936457681454418614834093481398048870196494770625233890724456349455311058191695748578232873273594364663150069189142784679649219622069124073578100541787766973116162834841183861310510796655145929802894020472245061257310884865571630756542428911541650648761313555970487740807484047781789712864228305958123033659447281576606578508337782964832414792372002071868764540786667469570306350352411420777372524834300340912790777883267459424869573777182139965005650378137631550452611587011534437858186787186756043337029311829671621771032049714171148696577007971122434216148774463402582937774774906791331020161408584760666182010782467499813624712743489846946880266566103338516688093641449132648026933496962458364795225559451205878812570190798215802378612124952610880055138303450347244933775353185701710712878806575246761155713096833327717335370080212670976178157844983066580931345327724562424263075046661492373807894708346450272836998062362432219617536788243587508069760937336863395400687858985146618875103217732662523139354890261456195173555825047583818770545273149992006913003723569625089520420832118754171053311858858849528828412019601694848679882725837060869085718678607147421960713459184158566342455931956620960737396201787180124102094282436632374114322683481051427915759948311196792523343232444727355817199269758165807543389807012515668766686208104252480597634455185777244376840744038295507383781370429886777291852293917313512975385712460820776985333778336012869453238743140480749371338933895851103689922655699619379119022853677444183092077717188656399226002843753624984921382179867303987097550966329366981569766441912271221519360548429108025481570836867900146312591412822659985173161388797743070425191498643484042856654562281324888934564456006665748561525184179463161800016850548047584690559068544640466518423830315178609833973008469415714367790973106992061792627674914505115791354701787883080945187308755457700886430985990959602793535072120271415623223455167012939538874381179867647361822519279071860010795739575646815364094883761634682303144931036856473224031966954733879813509569710471448981609217799679742917728694271976855512125786318663312282416075951347239922471662908105166296687728710391657280699748576309817990402720303508099523930085492893502979925693725120111365141236463259324797706116075093169343835448771572641760076166795246224910938323109765533661905962262120734339743393435487337387878259281840116481343242932083377551430726910775562280743402665009225876400863101823213205026994369021483046040352097641404230439713093864840655603828798488585407051510809305336075446009368664996923556958986140167512788040896965557067988505744434242754449236052064065688905084940936831413236661032907243865580073227661018453339084985043949389196374579242952398167093252524562213052574361877699511046725937015131295181237691432464338888650918851671753670911411355960025064420799885916886035894714053567407808386123695886188144582988477638872347105114404987019736332351770452006211278041090665211999332034047076250494598395547399057889389444609233557891176604614915299721808353243237274759261775297640486080237574541056215878084336733491985104843061459102715372160667838080879989735435736681635614995386693266945149972059051285792202500511501423780319091134575029058087069969490585461563904746363946241684638484474490487857514268936674172732793465935601400783898028634191058328490883984822038847292090007437337176385925481841645159135940721109598163574880832984193355044406876272301918250952187694616391170794285580745984885645002677563900349742514419662967699673592467612242032593735012815223781768183721309740932260493190985335039838807665928925489512752870140086463019025564832136552460249292530541677012363068711038170914077550737311427131727217268679804502673304146234507000902469018190066238540874341083790357409599205621516764567194996383127831790751458170502153130162205198159153689668936604507012640468024960409531065844373195586774858870024702730817083874068445968104182095749430142812156507061025777118003238763433757676458878986458615437395847298060778935410496442327783748682179728769341750866147092254859996597615267508200012023421013464152316028894059238268801575924428313630493701511124285469072748374487219709827713976766046236854762847656580853717542444193935088937755872665309007756349389090459937590062664928863588315736247674450700707131230394520029601252494143274690462079565903059134838427013669936265775437427674390854731027720778795161774383278507607391265041152483974527714317499658174094784692702169996971575628402777421351467062450969390206793399332462106529380731097973726903272093780011866768307312634032103534653683418977794082696346010052691232055552334338272139119533275927067952230643661610436746345197142353493517069475716583165851844471783800520046673972415862924217788400469416186941824484190840642254390885085584002437810924653488765408792449172304956779248219796036895335801950872699554576651866225812815866305558456530225591287016962594914049883088720189455349824577376670069449318216086760159009199962230603769343176268584304668746410987329812964657701853123627779126608586123747431523070562508936576813635836246839152428510113176127903482947613147021525188500354452929988303677335904055805082075656682644735189739850425419306312450688817777692602978715327346243844554752950329532194499305058325910474077701952153075896678718985497655080777665527342684067535838712265785336366653391881425601781268719696424394312772136549096242371467621798805685131341949632787503963959909175461647471132997499420486158050500600963943778136094192314525655024121172826864326574247553732620920135558524732295278215849625762962246523570516747958272239161592887296103848002590302061420598833241556570351377154934318212656172881502826886790100983480819758863248782748334177511819586933104885939770403411170412941891046115902565153794604052697535496252979264157956032934134024392509166277968917411188878063121766558628605128890901643044011784936922506873072829525224753258765896122261531281825367697069207992187435361869945206171134415979398691938473665616018312605727181026437111773695599131189430793829781351590979053468048233873100434724518655775319126074992125632618819140390275983823357963536741288687839046298074578494662025791093605902096213675195522775710796947269960204752307580730701455522694138080900279156414413044682640574131437384473387463683836415444989331427135438989982883054156570302963583849917441337090833848501615575766589495258720250599977830577241908451379903009127540105627959623943581388420435189336732620838785078197530027170647906267321819558060709926182162350308013193933345327192227350711233557930599716320450043164265086407496284075837267354042989293824441603571083244234571409497866023211518680919970361425045207138959947137797269283165863987758752829618176046054992861063786390510613029601566523553659815318754058952259208008194259339897976773856811907585515046001787281802404685988393123379277592959309222439148176981571736039105802341627385612485792591701418595571902392665001502210229852268220931422509986214631504484661566544980583304297596592029862301692163009588135240668861856566203583212751662243758376473818543457413868803573287795880941478711825696060571859480833079004793548881366196560549524216376159281488838384660150800392577311088063159710575016580802192467601632681588794051860265016360614356354848183973327481424163597909778595857857212002779634545112816801461182879483586654504989604327405783662952688179143258062390988829563342358870830972318809991678846532431088221309840798536757975952352142472708892248222441460544143443461028894423586237070307678793031983934718560525982600938927185778062618285265184933001669127569932975260031730644656279587397697810624450980069192378055520861697212940226615133719680048704764907300691745331570895180739092167632409313052145568333229039807720328409370668584404181782205627995842673247741669735794320189823181661464115310381538702591878664623967340628869301109374855698805303431246051940086464563719471325126324104503574503234839385392553116188055316268083886899793705014251057524007421516776202148387522096784197860349328021272889559637510793132284150975145519134955152974126721785542723162710558479474704278920041307467665668088498579255840248943765036868508910195280764407777630718812681495931250993274183703141820222499819775525029948815120466796769559571329917368787563077163119888282506214032827966356044786745640845434155670666542555914369858365645570988725585378306027442898110421009224349812391731274964726425014436030737026864932957622471181567933411902984882391853362739391317010338567852299856784122563697047772820002621840178034194673099553260166556043857290880053196427952857766603720277684531611475669968152184653080367908677467735997298709800891031945586043573213784420512133619343222623324443541669017693783253627125986704249706164336074538278477526580932838789042112583306753128742322189414289710362307062300665541289765583372362874460679210921718043843313703970233173669069089573952469173594425814552985124900938000887419853373818327582853763812764725545913239296064675321851616744292570176612573390616795291731427798150703924587169134918351922505273703432747309267321716441479450256610536578296026755210192072452864404656098875724679603032196817375331046201762458845181778614513057557951213524612787104378999845539573642966421363050857798049056817966141864228720737103038446817458568674465621335878498488637895092379488047521022098840252069583120696725774334933283567652622140474230158737086702140522729503243927629859604744831026746393889705598160163910163065629740990034602512417199256503907393106302958511028131081265335282215841012148340542724326666652459406537081378289959029648354344984427390409120492111016514702369486426386070804893626765339006166563267753767678423956681364933860297167853784193568560686619886701654919693835142912676590673639152610428373882922942249444267630007064998437809863113249770809747968257110769112859939641626700289767493775833491854377326339595450751773833085127673498364758640564781853042295033951171182681252553278926187324223408502681368839650225715624946734138091094588425815156252861014656564638939357066065385682868332254830549543135314158514065885109321525204393704854791614509037715048666147200803714794064831083611358811076281105899191938655584938564701286234534628600291814168534479492771177975959776554791199176459186675112450708375887430614015677668706535054263521538187174932946949108052970510830967646727754795030017593266102146661199621272441510994520053116602884738091316649842926990398136201033184471713026743936520661222450711166172733185583878268978695342318329887801654721835323553499362985183219960290663836086860793852114350685964005217825662012440216534755875909107053175561099938710539119138262267233266309261561948576411791397382831101720276872046318511895220621318392839485388550488511199763869318229227368372798707137569662332496872278058059189126391760456034654076861618321727257398310922213029666468752322595001348661731950273476183633765716340335391936163044933786816974724958753162739430837052200898906001812909941485241140234862170785094445802640242691728181433039175111214058421358902489936051684498829099218636855101033212853562061369601984149524513810801206949458200374605159824093851237550646049063791601425186288704393361609344379528969126461692430807318846501436433683468428274802159387343604380642151649674252569131692814335569314123907342310353551840377865422433442788233165835259230872187756030571871905064297975113124274154713488379918099049976395508349913828433394902212154038819374048748107736296005301318062106104601675473455865854539264927035447372809094353459885546207192673491429334752064139119683373873167135991305726929774232790831088719143438319836143286201745843871752044216009331458826354598549695299547414567372539667615377239116629250349581911295268327052430471219173884446082520402954690139665221004258345554887306939202362263106598924744144542253180398646756906240016566428587108152439605218396446089927509945123882852580361321852447030303508377217395805534758631733393039058025709592197601736072856651835424894701588615058005071112478787319679904041373815839400001282375037947924339382676323522494328575293794006827559524211446561770818148927774112367407657132373230227507936454186486362094395721301061836535637788029908510592786231633056344069565867206255993200415010027192103521633949674799045646868086767187059142658186558634885814568065574795741702122373477062327953046569916571893075233532124429977915328389401587440879758387291816629301290361546308034036785531090862073166056478826248377554348013053147295453434196939824190797703595581104868966735398592093560490398615369501051017960403505857109737118154452372066571143629028198182644257868539076545728141021231271326175922343020773665804290289343744702083152769113775982827452885447948822604875226513403935494179713207230283593371770705651461558398641411596723094265028117103748039858054671015420540657859375523669420212345795032197271551803207055043342268474886272025095106881144446550130469706603081244027306902474556363175025769249558098747812735769517282233249401786842445864468776630032614420673518458514991345481509449170792908916605230473210215189542261797863580677677222976559223119725923600094182097145777473813599761592024085443762655374495613676116395474267057781970189886297159751079149610645361019341386310148369744515861766185363446237775781169078000450687396127895376008851287294011412759503203205884774978129657250542415618255946636560351137891281056918981618237961150351816256847156274845993055914825762120128985568221807583443867110107936051577416430832818362375164480515873745870157702682997781523755385878710480289574089608786591300028975914785959250503925599363746966509086246482355996999163234218090311394779270195752384653456001278182801615221330470101456530568963843608376561016336127579994601386982239898939671768141310125759527211736082914896270626656772873876623581764914070451047570949502922475939847613790529685413997611488083158165011486699739587961704090924231461458597427567762005725863573815916300946877506198194081909778222295529052360837303254433269925773966997886921000955487327040491534416277874054181887615394253091852320848473387119723178125537346572919252240811085907180952397227781000246715971725520197071026655131205623472172553551751607038892139792407497441870384445260110031095217124803559230868889582083181745764394337020551936908806253295359267528168733509952737605970672648772639209141517193121786584814037981319366499054423791045554743702455743323033958281363545818021095905645150537598915551589211727542741694982165495680460216733176733416940515279842781971318111513478902571606332039405107725058318994561365955123965169029934572386629445372960889955392454045142561020994312554218092632087496758162904349336845953092934534742977770945250781943018035721309509478450493416880199419306339734741363520886963562656289827593766164558107834652466795328175929716061311063248024975448107524548199241748881500742188908665997964249144882152301627165402585082999307860680502763051892424349025891732729889651047012892329348953496866633532724216901485396788869573431851567584720763874733237702080065353802097838233075129237545837241106190533215245961308936122123189638850303314985982333303350355436126979009755273156926451818738137475133893929900165619112901456384930394770678518036342537564197396586941506412189486431277243738930762835794401227237334194490904705364234377194698309444300904331891185566700054222390116630613158000918051888087528630233463368852102008841722172419378799729747428113392411644086257863556773495192285108874962347148175299260552713769129891376793479678705568828412841422352704083167498577615280257389377595090936467944705302678103246253652496514558243382116563715736289687751357708349510601781517299961068363721699994421311826253359927221717321748856378626044470474906162367346603553377823313910102355531054834266272972426667515132842198542083012913210711420583628135899882121733533737396184347515891299080017301534926248034301525323405468050313404644614767613494579065500289542839066248804755113314216859359775735481171605620259117864597352032100844711140543247507755490875000792955775182132485433659123258342091147158069605574412716636577028431365619570461242866864199074418395067039803273989061680482715225481082643851547101338746091337873239070824109564269408887782791799407260646172879073901672151546215948579292853261744367863383633187671455816930565817866472033814650154825755576457276614985090116605298415049859738530895728230846100900105503566891490620392770222555885263303780078726075508016924220398695430231011246658573102569550230923552384418499416878052307154491771677002247282434340002990526568915416529465757976049093464944657357945957991610844090599232407222790490575512225577047132999922749443243045195618394961050957139308896883858339399096055103197763286677776547337801731081192166825515703359159994227517575567554563098950513382348576840143827838782877910659994294248161016788362731713623137846884628077025842476126298893220646823552622524841281777649198086453686391625285760027216057174144345473492856089057074271256173993542103157295066142617281428865087845453492699440751096780165392356003886987344198400124311608765752989610945004641589127898343065674732738742592447872183308805350803768247047645837067317188933087269036991343478136018911112137639492238014685466082477506075646595938980467808108965486830042033953650193137087764378792680130418042430552584877799363632790161390986665887834752176804725826168462828282000128535670066537736450554800518378431684119084883197201229159913080281562071324009039611508719784465086262452208702281180090125412094832131134434018507118205150969150385008497856388073870944865328115916789199506036152354304586986484951003740527978918001253586010128416743030144974249883707934200567665254629492677164774560923441547559060461035750182519800023821951718486149294782153674487812571386676153606623344957511895649234712323083858200978330160052893288575338369770823208327927372997757135235848817627097893680438610454598534565742820261492045774132769834090474316884024678416780475506996905862794334141121357230582594902984049142199756624853656231746518305926051918656306816595470082508589483960485935268524544397733900211286236567761750842252330737595873298113727490556335587044506540370610551366188983568605723507095509373990951203029085332652932145824512586690233816939450550228787724148269469422721517289169004361162248398423670409206717955161910481488691078551475153055037633089624400693592195113212220854303550847352239425478534652260886037165275270720752197918843385319880153437296777015255276138183231408029913942030439764324076116139934726437337557328275111258852151384957662415363414542278817551975695980485770338639059634651083678806423997927205665668828771751704837555946438533227505419802377262194945564990641167409462654168195240122523255620353638464216493864746467271177644486779302021276259149478687634825791784892970415559858534811139279078372770380908310135062672706200861456680680430359818592119293487290121959858413159230603770017368956890148757203617680386949628014747227081120324280528879381782222527666643766953650361850945085089522131684490944812664501574752759241823600043069743245888361023247441589221574713267122317786565993153033086451107264397771413986571476073037132368504851833971332077935615900465208204995126323532385431455213023656658789475674770334596702630056631275561750423089797879581092579895105095281835306894019319585266370002755911152197188836879626198854310488281577178174624286364950639242697831276766823744459960898565074251736276602629095431298833651720905227695720109873302242381543590832995417697276972379045564945241186510737354024841091190554912882714514356240991350160398291659196012312076544571852491252096472425985072717938299571608030314049939603038010171168644918824740918533338322008635344805401475113129138490349731458162473295148843747234933208943647691576453245875408817366373843736778690324309133732828116166772290633827858333221563134105126739896758057097817229756908052405600322177445784718520714699487159252466023167130061867669722155605446817583314413662975465872329983215684194456676260797792282925778372358614498910839884974182771987627886861430383104460097688343171561078086961224348124752523410552613489208369289853888153521575569175595507123105249358997964420832841643014359992219719640016534795406637453966319560868208298806331163251886897936383588364632850254856044015202036773423660861097895037256586314698016181927753411600132899944588067202877569618461833851702299489976971869360523128499733202197215279762761688537234590108145321538015372146868296645404663993633321515272724987121199175582191530439128397117087069215315357771155144569500484512261733426830679978111650584712320325011109671902903383457197200587227315116008651152627835798994705371660877419599574666351984734615732193740326353389826994488736906452470007749600197428230737589154085771939048330918941088158064496661200870769608497908503801429448290460025642762116055893427020944832265105389070643255242117704228185495279155649127039043801211425322043810583504087424648009054861995363057778169563751017336336168790297829106734961371109567761672511654794029628401461947213687065569856882196447815261610645091192864373448554170887723446600378783142587742673526408217724281086876037701720125552656784779791485127529797534778841045600103503834633613486270168580117352597468252487159781227123234139248250810912035456928804459867395862448111062985993067827906195869644222513354675946664564047268329058787973732287655104815324302910160430298689960202710308688029914980317192423687834602376874146764729578307877562832858717494551285765540773593999405665285863312743144214010640878986152572967461456722392302144392581939524648315499829087220603533686242781183807661881654123478311006715580532503185559845544021185194197216423348486983825247250594141911334060443592469804997499890428565209081054483666415405843096256377617772765676193135054101997827798692848433856882834135438405989308362845919262070157772644543969563335216538793843420338299908538004126143805927931048643229360432258875828559924171291860464321632481212731830607257646104817556568293424124860670773750644947068098678036126299769181396563847405020092880014168503631660393481689257900214344858674858436582500833054198023573305212178077503376991090082206053233432409025338037484790658396730809369616459080681589663852989367030225384552249099489518471678895949973377912240702830574080052209467810642924039951281183328091123297773782744195229330740555599722531823251279290556057178358053161719227475848894451728072464868219486813434540282050004268718928463811195694504964112752392873846233129512507341702032376904971335419494665996524198008145387383838926160316721924003508620199612541157075284154096540090504648380999872243400848795191376430201105485352960673003003721074885509952195087197496383976955359347794098469591118496056927935233118902510963295605114190147412883720580452489369396441765620675869158574636321353379376326083683252053408011295121769461452040223290311291383362982707558602072624729624803648733913799313084267208199537319373737677713494580561642040923271480685856132414332011169946437990372044067799154645024212038913681285490963147114716573978029879072589604849906702584114050439431282164278490910626248144500606428197519848352973560857366774024680579424666823706348727403647410187079245851474048162890989996902147909480005109639962907556938247004163552393340482544090607755498131850939972598082100876296474647528833571984188951433011127890371176317013081131419730977704081277460144050891586345372936403122064703956620411493859919097842609101552455281063021878424334947758438425513003263434378486258644579345933786348636558813719186754454098199604673254315259887122921712993210722211462647468798231456763655186964391195950556869129076612255474911746497556770753950540639762714974906335216590880925927043862055301942018640272849277912948642328525292725455648623186759201523449206162306661792149615544290256181715640577789931099395284239941344153131102489567884714720969534502086933525891359485895362587362401430391584236916608931161323130181334936581809014914247145120864742525545612516103947179160313016507298016660246115672140857485480690798539453271028990679685119149976660195194597141098138073403965430099004828347193459792951721234405755354710036565527763800542622032137136222631073192189074167632504116427395638962076029618216592806251838628961006483267695573285830413148337771440836681756986771185293690972872298812063123812738796163354715420785169106821309930874447341371509200240232289899990808912658047076295275195873892258958876537835021179651486435667317605762848603815019887325196347002354826560510398512645816595833142331896647212455990415861946303117966417792898258120647921387821486378107652841105253470935553531677523038950798735791682471215862614813843318131636536238476796397873237203026716713996359681943794893901998095438240567263568895051329380482661167268504887062083849371318388776115372914745156104378885537133066182722279825909374153074155055817048885168770320625401820528133698080396882694468527030377147127002527717476378194712319295860483343448619738968096380328571557522156792571130424346792838056253143908642185249507202234978401590956009862833941758820133877000933497794103674832046458501322029931167636816725961409980494566537310904308876442752096671619804039274692481864412372556728467129706315905116700013203994583140670411705231223118546956414524618292538272160816756842651417190667363610676131881316218901538661364846605143136476258772627650060762374314441508876514500348511985868084077837926623717967499826964746253970418720533559777155457947540636516322220965747501263313568116984775587569468666668594099659025369769017270949132764539471299743841495923679161907767905575306069798338237321716622603423705217550194629845698376163514408339283556108835518015081422860734423295741429752313003981369193901494472784595509832109858747606718040853708223581301140587772055479958316895444975177457829734815336036498769154579778918877544995623006270994368770689004711567347880053907296454860405678806194088193010188939682259207301713213034413017700444399302796861278610171580170096790451323702982937767364481666732880297428543226383705932831091765477212873697182170047716192484965454454328551064270719306239945919516326312776628051204041842689356054634374313490386306936346575223876581629241586033242075420278156539717586729663712494479435590041719211409151717584253029491327021234908738109718736504674498712810763203927739953042750040989884829515400951033388774802279995286153245184552179591608802142601996222931476390252099290403730209353966030846321635792809714189323431798661734714020859828857393795214668396681985932044423907463085031109408525072241993645373146240342429493181775459693953680243050405362254086123936193303044175299795807103488189170492126588084898525642768991873070571807818034680682943179099790900443585099910097591493602758736145492040100745662903126732958716212402159471501363627744785979562892129301385292450801619643567698499711004695119293013131013671265144197437746584190807219712196066314884666775100167056798203254826732828225967397065810898094442542775590680769522269624264892704200307939324391747645811428165917588073736912396474394606567848178779615283529548847178809601393739912827452239697086213569621389803018620920902490703700386577659535542463948298836408659195935076912612458372764399224838511201690988710542652903592040270092249022961719363580208085405146280521414582175119052323415028331444180521973226809439536385981459696632864449359401954332323630177318310790409329966229774165335170080664817486926452248120151761568310541408011143563714804628238487053850946637159058909171891719449479589109777702566340102314750859963610411132060055128822313228717888662193545839527563127573342450700654151042040805367807820712879346839663692370682864900796661920057567638551289612829318640760758004685191629731447729334908987761974341995591406839247032892395417876341996921992399168191646463443679129585992349910219223172856331893974244163907880381698477284248590162604816207481466686953545663931564337664838332123621764686208821823375537645448777710665336291713524896595095475524957273085120358369938552716858667242581527101979395088939635814677148224146071661165696320210036372435457634504514779152641183342254845269553356744016649796079025658166071419257306821934720214232558578005282170010418925503613838177578064155823457240863143920719480882562532145686465116413929967425247167893005545257695494055992878169446769254192904550347879279083758191807664739062573162907128613377713092897570837179658488645170486410796527083371919419435637275339205029236935035951990308434762162680096530526390636774491604338863359744359564769433533559812410892438961958789267189788428586384071983854545087228002622217669729132783971097358854577803197565247469879408436922514973676060126425978618686655524571895659537674150238555587481493883784539650911510842832022416152388895972357261731794130760330428699992474786774471282804478280126236860556381787376096508977258882029513230842062869568247272523013500614730137102024759947971016010722635655103195469729039777553112983818130167627013253167347548088532957471714599939100426155023479194790263897249639444681879762264868582480642599981652613410228157458103162080202420318713902092540316041078101320646617376655739753236091678958128622686016900967620743147059366428800461893086228465315499283021207381178142497519025204973575561893332812529029366996007834675480026690108152100575755850171947444277334839557544263202886020452619850054959450549923402372859253724354614860495890411131268706766452929342777881063775178719862682981194593896693006038392338722514738799715120371145838803904778392495485656606063580814084553475486894773338435203655834683405759487649159497748269845533615706181913339771160351572637584987745756926093407979268115101628492837199717284196761205822470292298313363033584206417614553987647708290857086680232741914267934883753081898121023311507556247377849980852134646328077820963571565424551756366740319361791780089645110525715778155181785315952522151425208280346307444632768170114053189612021561943174513765816129303531498070794665869725959253620410692620016223381595871324989384561996365433978826200883931096525063187751603934361713606237307236457565931295971694895319702493389770825936790187758281092658985363374697052851908770861915341074226352455111931029055140524470542618369188776171310520446403695634302188158209097285358365511191807046477843769354686574691782618697075911711248153911969108644885583998303291520504107341305097258592478305656199917970771094384076243639540692395541794683028864211623626964938442712410238545320055260186268473464183433146302975444470137807107727261086779431702791357971654813173475781460112686316523251690598656029211899453123198652522138326076707559320537463923011572119246953277234332241923402829627963849018077353529645258404707465104317475239006099342896858424875019416065268601174325419580426169884429319573514132140214860298055855821497385728151256544999693465224963639497836660283654421941527470043001356243196016071950302889692225386179605650856809532505335881421398129722626246557341582503595758304344387081757803665609895685229153826075424493727647833059013565840441472967874585818122060025794022159380455607974944583495989423010778795611874294433909875997705529229287585449002413087746246887650979433718733020795535882704735008260346990758447352971078963322298365832403161123929408014513249030954530841174968349415984233382242993736861105565922073155997985923375215055569967956061435872652521096285341465979356676462329836520706917198928602935672505441231754000022189227004714398326677824161107328879714542690089303463589984586704726582581917601251615947333236162940068744945731417008420589301933696931109864038640767759212189949674647396583081589811927900453874403403232560880281023702361367480290460884123118241539076210949570682733722494903616509230740239673686799479466904312891777956773556645476539091677536065834726505781233309687237642150365767763526525569240569593380598019695407410453706428952548174259318882837929705677573688099853571221330058537438050682759660405722993011747065538728167217985669205153849693710821482821942960548108268872763505282530541418573555822620243929794973144794252761604609416780217742165834426556757623470754031780883214488533840199863851456829290147593861759171292508946903956965459716325636165955496281416449339723305720405539440591902219004366833013509718929660300949232121035747092799032935771093404387772262733236514725866163688380816448641543106109393021356185898368372101772406554677323008681543386103923441056245984847045433366233945902907206017156862063722204379846580182132085165035529927798750367488584873289914234052780103123582056266485643093610673289668985999331572617381263809290691067691698925514211209336896799549359661224217608851198643742805055160494608285628362501467685870566968817995404698139512416150040569719022877655057750150409630415042778578992149579371216127662904387187677472750401220296486090623064032243655375782689172569559420896393199773777927946350600421831967456648780823079924294845518880644036459977801746295238720303422712815063938192764128923389653304038397378130998759763159126103422741517411406497367280674011996973911046187602223467050097161228467741396589654983115577877827474313522856586918984831137963846835868025536564246031397434204320863407748133002269186567089851480676296925929296424921672292819792563102325925541812588842965208392839758312053149568383672873950098010364767502750728127021212151611990837660697207819184995376117355872724989884743998978824594576000070200277332083765801824741057411080735850084165512312951673596413115113277831845771747236225879305974846385546770230620272717127867763026987621528509986981357427114700143376697383038794814968063475087634458914012198474787415308145153803000262567501398700209536020794443003866466143286776499117423089908323945123132038611327781733764226273392080080948853963378261591081573010111765246527759078172159322553155996714153122508820701538092854930756965281261993961946828823693704337477453897657774914676316642845023953245285016261219395180854225150277393236968439460381891515108049683874341462753853644205992904040251018912603234600923001211350605124821001474229163378601852559190226727089843901578423267626348739979853800270882529273995612980850020521006479225528425328707483464774601596739531407577301628357969391916672338295637949779870286826826392212561302455911715235140864014556347269191510834045304048334842578305225311446557841793499500143688117425356655935665865152359838855116442240425850208720164940203339652017538214408274781704844347408373418053868079387471952776142607687776516481114884135634739862274700227568100753871799032363446532452116348187761445830794731067139649526308469286170803106284665920523716507320274254331745971423451285806784221199867101727462204944119965674726136194744704905946021532365198666538513513511758384172364900872201761199250287772866864369961808276425900130666952039924227339516450695715560043277249193802235078028275443718745315747435872467442806280008521924371842440064796712491149536754994959452943981183605923274988139749181177937553298062029601622550284468805414250937553706598443012564340596142689429755199712458071388434159640891345033578346601853361585238318024367527318645938565861657129921914774925200443673270522527669874717131607748975796201364082463340639463661351755296283057764514294259800331603043692038716796422728812145827938451731369737398756840305984543549496629557219365148451642942670596005966793518718124235436218971919308015527395822397113986833414707857753468872109827447344307393069007447010825567583324759302988058780076769856619776259780235465268272336342900206093628779523037768546250524328821716395384745688095807632055148783484185911288831711117923532170500022508754903793604064635028094837816115162513893344215057596060477182591472608722347379470047254348324293060025001462351491919464997631943177846257485826343692782078405775699609263674280858911733037963558376962257620395374590338193424858715771062021764240543495516004976105213192637668122306214593635494246581332167563470034011974487937038954739375974434206418244080574764205202683972297578105756827764814854652184095193185072800424471243358788705486366188371114598489989976528199098775418018664542725179335286962615723948515397864058012580807790381881927208689829230041326424391042116969411474179705393412726253723513873439551808178340297307207443035516512258946255702427942670531924721195712158205551161517375369882565242718800498660991318847213047919620878997115013348528014970986954868739014686133790131965346822355572115249710655599067357542165713187812497556545209843937505917374275723887725199349204758861738354708705431584127711843999554150030094874123802362190719990059733480422563796624126993328872544403930378234914965013509715335443734929398277989814825635526280642519255373288213716567983549932954437282581959464715426077151017834860143138800057510129914803279171469818295792870462871290861156771046150426314601395838304955439572432155653167195940018302418538661742739573469525150981777920857323204740346659385568163926385853751122661600269627104491960476768887923561575022260507461069675012057825046136053739120266011251476719730605217889257135095741714982894729869518162932732929936088525087498559766558083949585871361176717187292872410890012920925040688404348479335008224623926701767510928019787497940198370746438051157842765938947730150163058119549106142307040789380579095860113404669403573815454055683405825814658347587847493265908555280373554916743710857239758143193344460146821658380544018289751539088251211415806897296018082596974682814918389537258270508119219331597832677303580839894596737510139359051618059789889347753965994765707260329610963563007005561241391203538816257938468979412814579589845601439728722904601300845185766029842518305670501275106169433346287657344023897703478564746488881563742916088725935065576094525711609598514968425684359624692988046489366852783471026943746166209726748981859567632283550076347567254445709722607297094883321718231951369384101969890169727356021912868746635653043488699191281784229837736931668637564181986413400992346634348562577901191997567716188523175209065549422188219144857450416971206018673693856425978511581860409311855740812729920134264463165599459724824036969354378553526628275000803012621982026716682985415915254505919213531653493021114582782479133442020842453232835729496171343808635408173643084320909090727401339768578786187074831897122720802608910822471527281773131655526169919292483425410345102547398498397142484702874202426231841813461510968135457027124853604987269020938772538408052651137867954598606270439377051438118563576715121193374303923869393244294617373769556984626550690104230161168668758846686606820967594026450372045522303818475085563533776377421296707940135106953138027147786844708212853815786780399472190913341211241281196968252968854824037171208857693915158811419648596861791016917214947400061674831068444355520441935913335022890208249477089083156815423479328184070860225216776264236456899900568886566376269139139178584834503994413224699804775434217303487313284973658362422693648524343853187903797345763728585407889984434832433600814774487322827128467768503341124533264478310309094395229119407803770167007654026666101695644122416818048249576640983942528445169890164100119633888612553802028313182063595807161078935791140405335615603348506395312288151160944860301650141053009341067214042149282656417290398368258338141537387790872685267252513899114741004447400979275904935878827114226725653974071087604102263443952648989563054182320202386527583034858119807769270077290503115291347666793586424790382796998878508724652617573375319914886369294468357392261612659337542331591063285100216635161147760477296623533858195732530856173273683210120731331758839536188521221844022010097534835494709491743385998410691053081872689570897565086779965297665013762165793953398585051336245475832144902991318613020083016499881219969601068542987614895106844398510612711422456104244811186424333218828651875059665682368458826630211933151121958387164623600118519109819357299480105010333876043961693645767337192779831955088879567346126804670163457510064104954818961103062370680299402438419236766910999308709249609610696624023569059930812955173674479292812578826625691496693647980744554745642465594804714354063901607406113872197317448974661529185063592878709873318039068853228408556620713194002860321309637869958437935922756611738820552819131320757196752660526007271867887717714559365597348736404247560164484690234837414323893872607703006944158522330434988891867823412536113511035874861505380508582575169120346693961802001159038564301925781441704285421356603733151158047730064253429647954118581885676210500280915575625874329449108955595678289223754889747350385502549494808872144929036468703038057110375988068657888858855012774501809338521928537923201134924418606000153606773100340032395516083020513772266355757352806813270051088802958124657720851250961035505410701205814892868764929409275592797018788312441526080540316430753564704889370318254012047227941340140874493884030769367766945530038072312782552318445145994226304269752923364827218692402053086083760785874315820752201712259356149860142617546664506326131016885337892319861327291901009619624204808305046005323932790340986765586055557078474928521943738425717623150061772669845594837088446474832911957318172662135238209504130214548914140576918640455261345736024161549857195134621373840286522500605700378089316342489765624661667879017767820078617996450695848816840549563226084016261266319485078634867256343977048080812479534785874407795877394893267831652715490163850349539816505916529522473590675153659246293215442721622113379297718299752604603701443566201978576894488516600678670324484705806638025275557703909639041886008901950468508932957857904050031644287526629256580598347130516449072727026607644853546635556972596455617179294712789347934563962803722590097617870673868125800157937550539417072440274881712874284753720848756280727999620043310779150022139118981649380513471860537674333703198817719523862856013326774565265850286968415846007174040711397378246049694500140636132465819226713664826882749173060830967014569767889420995295790417734717550251168151664763746699498294691828693360206280465706656558815876192937355516084701676384237480026528741779299676961759127144929766231274248905459634720499496939925766049046106672424120439522737332479061914379969453686517723612440719255089617182225876979767782064857868854589703035856850143054418181174138040586630900102423477626648827908860554978217888442191313011718029649632263671966031190739230991491719188793335055925123160949182433191990850013791353684439093490661820035043270428040172342248097012743071802808431421694960866301160511766805881003911358693346445419774064666212095208789576473025038409403454999618739434786181092486142808578946394580865354567942178137116722957404157271424107662660729975955614127009633953970330428698352216700022381269183019970857290889908666255360816431217992005848490791902770320008805702715655691272968437342109240196271068795229793704669622572849144364288030979579662301891368647185115881965289933153326773504108887137647390087585443494443376751702362577480162915999803368019934533024629323066105335800942328209614451728515978044390701278558149041979706549005345611710380058077480379680810203745089670017837379181521058423729058147540816954111192285763395733333053293978547628182152387061259152212636743775164025642800061535112168343725537724529299044150006183226030879613838749879995304492524245824579140737981820836433054592907282410217276825917252022017134654330168814026658600149850388321376393452533696116858916012780714681012283397653401187275800977065642081590118831713345960009190511113347527369285845992558456645163693222827180754118301145357477547041187418368508757157776114961144032640190547568055840978412560038440442535233368682480367704005095859332492083250409549240558650910751018100625959697016917856903005840870262879395083554841871986670686614218236197674845833574827101747291852656729180024134248009452183264091826434297417699850272359736440494511483269597923464278012155745446610715693089886949839731276028645036027951206203745504568547393965545497516595845727564132243167631250957360313800780367226869866176777615164019841630685800987553293393085493160615329847916435368797410704666925934947574914837704584954551182035388972620805951679504224509585151032529677787387653649614792806589663564894797966447545865375717473251992708042832332699136044739535093846659114179051918990641120181777879238518347217372603634249551632875412468881220623677549729552003025047183050866030028022197645839133710079722874103423392676038974625094073715165947469805062385076150197460936824756807067091295886182345449691571919632378056990056017628117037374406296619270526390467540892544366728486576644471956431429085804612469888877397596762181881380102723408706228060919460398767453345381680170009200594003876456544470142996270893884602752488703946552161225493534000310253681831439574094951555310073358845694751693605431831911592456929612145523512255373452925049327103784503080798103142611274615255953573766816995175893214402871804965205839920001145798351212242800836775651417558180977132799548869493181966177632712495356111963270048747305232197139570554385869659111223727953194181369998328414273592885224007309460317440759944006923978302111854950484648761517386622853727926456761012423172721173584473024214089285427852127621219225239561341951529405157987080234913531239598411890696764293810716275477867388091706232530242910596553960711579961594252516152592442367674815906521623716237826998054680277390252851745877784681365461139638517147244390666851767215365512176719156672066436490658037454193161537276801316954420416592894066027552108571725369881560074291175425347003914911147848710448641311291056863089948106071497175322479882231903445448233790218628002723450655427780958126426189594700728294679186257134076787045135102790781800187211015364289960343783184033375222374544175644279693053932247716388766375543120282708707547548774253055422474020051927030944186102513862301373707780152927942353002892634476585393673345054290217331711497594177545817108329875017336932905432947761424348400823982536786353258798155755157199471618378258454647546334290356757542471903621559759386690124585192518875908934211153736320313220670455321432241234592694106296574937853036163078646865804604025538945789218266425389388102400051643394734046050377329695054659052768954429350609335714122821136025404802772288938134763608430341600409883622176010985319342180673047568988228626990171765969316211009190729579959290212455616781220277612834647868731268698827719880912073065927795882559899048920588417239843071659326411348111466281709095607538790864977722765288544659936956676583652111788953156085341546760923624749012584983153385602841711597985479757532308671341110568156701379377873831852555915691193550383942755222683642905565664472258197433122756410632582421607709733132254864867638154292472769152821865661564897368547070336512757867106689466662887930698581674098279829680807979352738633087249710782126452035569485299013813769348839094730278172855941955907191217676499140618660860862352826644126248855103076034084979027582064515315895216819610179306106515603650350183365642103952932656152005644224630410143280327984911639140837345492417541043829873866913517221206351594191439191033931921706128311604847052033768458635403870978386776983533845643161573009206125089187231066698466208892089090737916472998197895179514261100891122628800355389008319302588143356378864610860949424811945418366234648152174126935316851596701695135207289548430859305025059507916431249756871359252164569162499144363334694035773245776936838917989023104546736656746379114439244727111480945290483687341766017060436720437023644605919790635671667159157579360231944129527216900754604332721651238567439672898272434841108490073741118333959853316319065182700859159504130496512577787065107889633185826858443975906932574656422250627773551904984794195973791994439669284493488670012724062825752872598735284643385807993071024752140303188268177607202398826153757832221489858544033375899764337326819968473661272977330329946555834686916604464558707436860779162258984883971099421748412123062778969621843583193566388378851785883777568414760463724684600598527120042796639127672956702755028812456050853715409917335839983444723244860457228495860263614992262819305005795761889851476730767600932349951648806871853713444846867879659782850236397197765552060737134131781476306590545377170077518072643801195437639637541185859573039156719847951133263812193128210880852286823709374462868779894672455249926438887725649823436593175828157536268385855961871266340593333836246873881214258940949264532539143822852144305170394853429802701248571081960239060938222522153412684727049507711164852779797696697167186879559033256243013164194977371251711309321490867225940799825070555995372715220958103684622288439065982180270956142531088705261225522817478940781910047374835926995199181288370461549996644593755001282985849781598286720928641451582594002660010443786182106307327312460252942503749318843127594435146735738546002543577222494926935472190920711457118696135731849896526272027521682742461763051361888457784252454708728168582760374836635073443040322212803670173171006268342973504313390703141980883620694747817379375527050741077442693366142301137713430123305962065839510439871090875354534753917651286474503055410606200811786457447839555135679090954483121133154125740555434264903451369730629394494089059257339024166561382820638243964553345237067887554963262685988169559612493443017584471954165391969622360299379777089007420818567984050227166097477184314179111653575809731187139667361698478769325857553929097813618794950922465864476096623706234449074591294057444745381922268925508269621635020193955134500302592666348591457590010972905661465752869972086632776503014874940034947052228898500657685855154732278396329182751255433750249017201249401381036870861857872285916438134194205780393606003520297635633650935519097221779979094401935546856372148757271131706700413989502160821447123915569571782496422855589243433336372993991381420279555194379318876849503884473653451900371417104214733487490418600716517467048752685161976277309301348251158710575712700834391675091473062308098659751395096769161656118950872349368850333099953443777379527611822831277524518140612637108810508741142015165860608997304116709929987203652341771425920354888358492456614230440346003515338223426143348925602003302098101775906803102693731872348906954824734242557171664840228120553956993642091704684627613539779953468460360810835599103642262365159049445370090253809213414674144053385479468473184852828014875575947324862660250081953994020007589166099702968652039585144379066828383769711451973472023612703077413277086352719616463435006944902120779332767935762656237307242661215397676709516855860132546665449666578928892505222149100754686538082498434467420039803312353581257104504714057536168712238094044010371229296962688639940790111985463538420899038610433273471848368849474161772725369694689204598926219679908012202551231067319202828849653597768108746670204518285726184841750417212543536770136566858328981232946138300977708988822209008791032480849580116718856243416990486489895339359486608506966681650965053723221254514905289492469435500905854425898458912075408112876879371753830036632090833652494838049735196643386319403998630030761512554774556137864351001047254775685787771566659137752363496632683390157728320312441429746430988095697433087932162644848328487619317487422701276481902075947068998257314592207914467854435408198119094295127338213805799214740210360407211771082309699108241503557211521231818681107409400605807131282823845566254590917568232868525605632977801552679178530978083729340720692541060092921889216520712944779271698745083712617753669017363946211768388331179359131303432780984627256331969205389698959966713844907126541581506572275774337231239641543254070410110559941376673457361650710264932408130769384158102037430245185675663973031375252498485311930090133272243628194152716722576999511709402751613475904394132819374683926251198291606904766320020762398803223309198480227135489632720311054330008174963949960605922111407794103528257111185146880902072691473690806493552382037708739756519649135974040001892484473201994406685916314527244461927991376919540437447422379164844023214558811110619897005892389720758827306152873134243757282104241615534428250551651932716266294655647646966629507236273525895405786136805554855212160915377942967573180916434376419096755716734002363248223003681609298265827709135548687766366080851042611475240034134306873978433463305933324652709187167766306113566488214070397250403302463104827956116676925861773488489281431528333146199232001186501299804451364835003501805320724052275143355582056573177662315823420660536771076290177385282493651099182090842279854300279091346698561350543929860593384935660768487305323630462276176302243154472759049484435255580881357967049935299293168039915752216029606458093873627868462827408388632699105010611066003201818664180896188277524729240861819622427159000220950874234219741617326995022244550643358019778890292733875189101451476406930939400461294437722538694053563071730211585737313792805682678973474048880018711973728432561739238855606367018989146536441327041519641779430456024011702301928515384393165779559822334180431982240863402880998108509952769930621122436418713504468134547725735526245242175511739883413657473345145008018767172859308274769625123353567293675256007609686323588023063085252037732705554248094101503947938529758823333154071094575920742489288868589451755995181479288123648855211041131421630120533915654479282499402726066335422506607384072934509710434350280398328789774307418071348648929023672245556048619928909391008188613277500775754780789414161390561325293603655292324358469122552142834223369911372025609427212739735672809774921262653033531247519696690547872991936064997041430973170910647740585616938530333672445984187761560128891992411931574462483551968391235446260584603211148841700117921870995528445549480051577771090688948917134932433627311786466050806547178924386949758456868131463985183252291448178731137499041566901878905588472914589767964011459641083664119301489721734502346133469021767077607696320696921989777590600272699291165680966437269723463188289038905479178303021723863726484447010782866708851702112372285983835283093927644028996743722203979942813735655041207706034459876435589557141939317591364826384957798725272901509139163847715341398797096000234238368025590851368005949843343846008454021964458774967115496557415970992271811195849526485950022722941047834940714765710037625829186209794033328047299859665004032964196711309648029649013994831583097392778485770253362928289211048249320930733419837841370438279676656848887552272269635211199422375557174877472974173288552086195771472890369926673722220653226187400210081765345252010608625278075550435322105840795655806058939893726613788175981847753992773923257210953621682058664124665004979429844453142267892426338715770253580721986543233413936828239251453162310892186114467245925329750858240959031615813348178447291754212423592401864157056699396386003514506699447784787133641849850326128804661816016323936625328330313413898510660497583684913490904294064605662569013822878553324603604833703300308292288812024129851343375758398602010865754484623174818592061480941534933343158084370107351340467687735308682335796267075914757706490617052586355454941730096497379282176453193576845902430602362518683968387037189133461946999065804473452489250836533174269204707796335416890606450432941119719300967908563534568321043468893575119924939248947701471837300431848009587936077974641583453248972654373635605027355367061492522756296090945395728757348955501746673494988804112213801645335752527649673558889693926231994761685941971147184802368214466213783228449499158209366667252839320405469686819652461368812273528967212902339202385741256084250620552825190196212015894961644322151910321819949719695543683440039332843830312999362146839942173735268344598670003294179512361315081302532379379531375648374386370933295921885035249394084624076936119265714441883193571900715649012005423928173235857462473300430392264538713178599490544976443679931344193500858349324764461255938457511405708775710913456781370231452594434156277464579887469270983789591549437478163720063561502619214513150640662816399572219175248187300326690405167159840899360253950528008731556636525779377369844135608262548764346152159189191685362257221949982772344227892173285764677707778651281880058832621903804537299853889421601469344912285321147699866076223677938029769606354455358701368915665832705346210607516699713560968008533584066534957235314252132023463410696838675960133739636173323925141686406637837941294885251559829062793212323678287135054259871356560285289459017256519407498411517856123860747111288920959699587844374750013329210076636373434385913567615419897986678435798100010671338776139629579548898792881504768522401802978891448323869303472638600306000558092480359407343547992362038205291464611765616835016980908071555203293094548242821568655076975351267559173979737861434687580140041319633532094932395294248358072471850951894937085400208895128978260515896549065959810636539888022934282520744364959979318353709577239356073894432766914835621593631759817549500610028721031382081303676534619034466125633161906754212169831757148306774337843280090382204817061911589928458351333747869330083841306836242955833739892885873880333525123146614620136688813876549079036719565980048475716530370105603602045312912583538907716114282133723938947124943302538151347165467076901714753823851495399179913049129214661487733904302804219175415395429004082463871539765818328617201877289792539216052077262629587008644992955420232847613183165852857996151988803115688881436821808848854563734548050104447515515604083258535638762866523056399919182842952009642427136660672286528970790107708897733047735549903502058107449711740433240333552364297103411890953263900797577666687822731203631531247239348549320398446560525947518980853572030984997912048591886802376617791220640716389813136248874773695024243701311148861710602622217643825376299127706486159135002922903486193262966447263771253541982823696677762197532821847969072823976547614076660744770234020977658267858811127631044729052865185831841025289004098656931485877257898872148893431438911102356414961474717819717206801511817123960746178378101155495367636486357257860494212572574336494238363086528983344066339735851946384536607967473048652467353257534574027106721359667147528732382070989142130441021587337728505853531629581252115850141266839714291657098059788632713311680036661240219588597261391020397630670282266149467850450527969284080488762099837099889080446751483683984234010026870008498452636742236753157615848506836934489658908897870200971967860021689765783434124026214375986418391348959332493728290399379368535962830616747672170961287524907459466031759393523833588774144332828556817057080654393642297310149482565440497378981815921653298843365639239602989185859746557102657927452605688240064369759317130366644612752833307501417143135248960182874160091183102018934479285904333625610031251493776182447030778679720689253655252942961611701996555431688104395396298532979586699034154837411183668259373430457675897785954668954728118644506134984028787788338925096463361927713314436683969891264122976120267725618831746519154250294596583829601923074622922556389485150940153322629444858803527035546174998893163283846652020202035209754784491108862996992607859139124003318579890635418690783286152503064539984702163298452389449325981536795956116919292201703555915429187329832415045459246317497410136759000767716586912451547696571466937596444018891650533195340465281663800204418267692093925996574171310177057049972360810816398065957584748822159306412562537918938688499407530588219513220167262034475096061556894381187742227107293646972124281472304850136442392038320907788920990839987018943117752263997819811530146835845010899864946165969857315979351091428186860134754559864420500780402208188607107170265941465671368860404675161108618616097009890683014190534541124416538313184911288552129071107175164662424634688670559852736099973866451583936889228598510407371664401006974678068241451416696502563584339755882755113852877155242196526677414614780679533370731530770449079504062473161548752235081357478668981858464821951011792951562570792275932573671568909782424446328715757633048179012467958354926838353054833891439007406626833682981677720299210752734069965130714669619735989720385994830374681291444851539712895241991792044067528192323840685098501848763955863309556081815533735149504954672663109964099996021374976003030204076093856448643850541255820117455914756780051785373735992310472900145297253769399155983317179752101061320117901402307997845051305177057653045783968795850955649882889989834984562696119542672403892559023558064793215980906946842540974113725243033945611596601857864990291241490806769346901104261473480294629352005330857278843356266965249430377141011114436121478413032774096000248629790764248961847456605775035364503656315464470103777157688687976884302650372631504510719133461844748461607431993365880048668392173358766298226987374919875059538997547114987387020900481472346379057121875831990438538315873129924154328448123279482701290920287104812750617842490692512381950947332996579164692753137682116688520330537753230247065800466330969337252751177787927019281092607151832869789238938224387753981392022680785996690239280268291932070754837466815235352171656181068498323413815139653420760596670398383221487419717346238609038165353811780980473539847943492528314751267611458676178233134443003363459138118074108554073113005300482899628827698123773917385677270032263296488703705225129790724084817624782875805277409198361796570694356059170423760843572074119850805162311279589028645854112973624391590010259805902028420728681848456179225606780144974676930396192467953884014906994952984790520956400491391959173557790554412203139839188302116482089643528380363635005067250445910726542819536465303628551814084134764989802185875176206044306155806304969436565861933398904847111123889705428167043107972431520922027996151188285995948586915674584900928687847981888080825177841720362999739355727845069425526144782802152148326266464900041767936328332496191045763274186922748192488098106407756148892600177238031252853331842777512588781563088824433958685338570130163613892901078108033884208170693770402445068320721338565526997719829970876649669842387279629898358493935480370803303721403933881888227777655697370959209374587499607236145086971488444737972529290145950743925168222225986266680214793003645754801705191583252650296032755791397991847433505276615076029022286799322658996159399243979794409438876134241008246164574963810519838564211273267906922306331863251244872903608752634961250502681684091354163872338604273119054117034244432037533143056919693893272472847225016244530936860561170027388558719305248373572991264806896867659486755073043992777607211516260940586398189196421274275975204284697902493121278210226248989535900491854373434414270040555181022073819045504206624253981219947306144636073359819738473719853463857130743328281661413144747848282212755240028819968581319689252597610628519470062801369751669061305234747981825724685515946635689505555217622149001801168375338354851606811243609003434359722621150659532199530074092588144254670360195891340505804654102765942814461508528775302685899765848873998634869862048811482318118178410387363830579152446869695428700522508183816772047858886948115846720381578932593722650343977071497906505907453103748490001554659970837573206651947104230927594043482948761364055491573299910376730674698161327035229263345172774546797187456026221647978864153763453214958525096179835968954539378938786392306417149876794263568648538395801758452174520932972865120931797772862385758195643974899026279964212839171003564278388075794840486946252056550674038906366719574433499210933605737002149977292306513606928169045683400103604304881430521671474858539536666055746491002975695211413867439751998476793448942752011420421871820091194085023413637183011865868028902512692992413352630724233014229525873787466162678962679545833437617451793000869902730399593097853467847871179336721192377651831766479495951316089591349077812774099384142812388580305065407170965079489311735576609217274361995291787710346922168259731536572369372174492475746588421997761247186803968745205677126899588312806195787150173500364014273402348610881892706435727058260825902834687125821169173644652526769691660537615022670646808944285201786911500289451360882978220512066109183344390154306810018572156213777054154816880691425863170182286828549880261036945854266537851434638705870366185833743160901637544912274405182102720031455710605721417108881916605116886543497615882335960189099476763553307561770567782565236691516293553263155947925248893692398935816413024799392906158192774679711021865727287890245290279531227684922927107352050372300222569877885924394988249153440323338848195734958669588713106690061363713162623172577996788313189124905636376235077409230018800916292430732230928020947794218695682644516324040038619330225171258936286756436126957869907842609233879317241721416058730558882688419277593563643646719628331333148047750002846654523932509074113240806260469006950799463803746920655176456488708940211967564333825633739860858844653014383181088767649521487858314676330521449909861559388880558369114582555995137807436584589189188061172788611473338022241555354677749342344546507688284410272179878841136676523595160710573737423698008238024561532213961067654414075790493305842047953930297337605901401055155641437503448373420880093007777488165972928414060354887966288711759127156545536807883908557682668002300629066822937048566994051840479159240401835360535600393320496779150627122338938403911510749922334745901710614912123554121710406420039005848975924471932193015241065957032351025141143510199322741274096049142657656119563834747291492514843330393831711046907634814820328736962779775921438951893789568563786785394279228874150069672088548898717198517984251220449750511989263790596959104889724658482037355035139320868424977812047374327829177395218046669055971043598763636339531661924329567474439432592087775896052098711814426342768774955322865974439891528529356957496121966353806877857512263392234756726231077436496007311163105600789843990266031385877404503578976679564110838682998669688697381998321128321803860662387095168293383077504709900623046515991075854099734438136418314454628200754702203760470781333408626073388817480400318216672061927653667900620215253562634194490197241575090363302401221424268135386834722213885179132231625599473729263107594480882531358046162779874701374474624619393444389710673239624282606013927292549039595234162943766956100161276980517952934885657731894356386395833370093596223374759194375436998277780405074444353827174931253725893811279779877364155134331529155092205093687244636250999327245701750166922865822020882965379123066952026592973467980534835267055719633183977694317458156887441095227798199130902409208885531070054345488159693465855997350717908779911219018470383390882868223113186923217824390017673174888595505518193090982228036717931616134194496494991781715885127340774499853483126563547959529345244724278625910445141003808797139985888309763902981603141041598142683218470156437817290865686181290547270247454829689829092208810312644681476251425471776380621326781919179631115348991821185404507036567706759391848581746475123756471548888045492492805190834061920179242143903905461861520191532453246721066173623763341450839649262822158929403272523286154462911482829139553755253188135277015035266564693362865004357090992380132881629235538341431601426822117988026806256133077275700841305091231206725085995671950675383148624015265856610999108977292729030343775969751463919685564526296886501034203743443089325356693445892089356967933180819000370751156256102546303726202601992686527037144489143517723529471180234856511170561510924725970340119751551889344468430767856230846485524064020847485054466837002047390351734477053056727231340537345343220728257046885393051639915615301884103208412853765280700318299672128681837843281369582741130556507508819638815425698076253737925776459375210875705429302144487780404839863860635595131044316111295673201018243550923326555750070210112182938834650838590219942953405912406667193786380079331699151047067144709860791890376099524027330468486674659051929118957402232143577747305404546961924771476069396927029961127302145295348793504391310766894308181734818786940972945483189348981583070194489449597816725220514815140318480438225753647106156609992457198871871518670718775193821911099805377279535749391687754520525562776876495429764197596124884078696716947162678267310583640787026075467444207873886902810235305290250958031599823909569758088128825298072256176050676112746166912207126076346730973034162212470457334748335059351283503826037168157766181907871433643615682717299837512260591507720016272853465339251371001712008005065985243078736416093517116183872908348559280577892341521457402527946232394048348720727948155930783206653676132760213571972303523084449525565924911312903678299054659137125022497965681989627168719013203370442671811087562319473020631880606348630660887978559813275695920176789172539499160063234588292408978538852115872315578054657438455208468099964062873791437686257112780053828494565068308528267917843351289828540161939592822504401722211677644326366958206069754353889074721593116151869031744271275882618142625756268221576515552010677784174892981598732913676180554385256665214791873209878770493807660525378319654590496206470435569158040224097095528943620956863599537313990737183549554933242447052681650153813939579533018560262314298573960343626272923327678043490878038112588853194446895963915480399885083345309816022437927260733422862766273488423249390481567744940983362760688558196258547251789248618329881633400968491417393887691786458913497466089459195555065265320548541063625864721757851216840109192887767000671394527110002095894094363637881708260606325437837520493774913054921000405102771206318966107788065306697617327936334858251551280071414535237119506062150060373014131078236248471971370444773672609464254247808700925801842524603498191041075765847081640674820989001234921706625840726057054478477399535418160469829620718893542881358685815057185702938182790986626212994937753534046945022959728784169502569377025138622356746434061077235311784761732649443224724585995903212582980308728670413444998307944830006846735899038896019986840587897440026160967361932060682041155348054501838260836645530531903355949550249928220231056484329485612335510120534604519096566475690464485847025126791649784782758537667300396602614047195131705474827670988284063891014312698744132494627496362833697251295788156286976214458502894155818496189602356476972379266746258263153178156841739182011133883168262411555537734611230902595707635943645612668031553701521735420359578474574093608828055696658367114674548285820703773701483726731680120125993359943337864833590214755850586935340926466321858117226394076179972796628301046569145698605710648594237558816846013463074227763980739985653115191841519544772811101071515524030291297810825221065358032298313555801125751545181563825750198952781186802351359714815528003341235833139842623936746286203810426186430245883604098758842327128481014164212368138494389784307374713482599163935300325277220923127283284149792562845329975789824990025780849629390326832828191986162609910337350866029407979294500082971684883374836737948143558550708453147018603642334917341603812378924583587480581811466610939315959036806804996414999542992881208965124172422763518413552246226525055880684970143224419255434022692150183128431678459756148238688018806884780658979585854506366453876201192253756447141324549812765882807956343902617548472854938760354468796841890427107094913862602045066467522290119908704074359838792431614457110182368649232980275804245089829693420925271355562755747049728223086240596110056957618938200742354229789360531484742483653338749279385157713729342635232271404750500943567968903389070255927828740581338694103377088924779549734303420151803483708818258447896973099704696086645816151541111709075889933940488578361455764451235190515814750528607908972384782323456572321888391253496466437108097693121820529602975383243083806988926331939451518780229397942857397622372865764606695976736666802193402499158048330040451871985575108939897894424979509491311413099320622667037477937927187315213783236267428982523642921699924110134231465714469655262898010267530090828223078064656582786806794671686789877483289021138819924130849261292938866844650046700069409449687892470395232223080124949515504904117495216586675873043141709320801898826854645786127257354911260384207050185645051513017320303908229714050072644123643183572544769197382299125213717339175630429363192746831411910935917306471387963608808071639859834507465881053391113786002493256401600193231570372376193502193433920215706322965708984973125646269416783579672439003394024386643382905397857862103803145015372584394920243742153971772996747248180393966895496521117542292616929946025862984682883081801357998419089863406688753752822659607765749169665012762158022473225139551494226739212299491005691715939830885989587450148623750546942225181959940015009483697087122739605310200170091410433145352788771315446478607231714829294683188119427364869826865387092624379031706252651589423561926331960464034154014904569631034493636595299303095224794153147252232616532955044897256219248339938396661440049073580222539562872157332935494331331849829168275311726879825768427629170654123317983122707118070381603101782807484732943995031178909383888176798565589693422309495873077858547668334776379653651442558165541917454408668482746036171626600831880922141734591079386020539289500684780239977759875608273172419043207773724996992624645140679985066365577274236079843217753445501844477215777732736078640104486369985384213846611129550948826564802817865211994582729240038916982558822744341065348119529670033369920967167758056500344168449847538981603705795678792876169162526506264974866094064915601763993836799920321378060743726283885146664854845932530805266641227375208051938646607634705766073294690699886486753559188603371019432470096570904371514632480840354509195873033054281796400067307707900043291953271671924438661199855008084446720831950204127465579868937057455865977688064978097814690245309138232713025311671350244307583477907148236904359650389667109667085430515534885535464218727502619859718074061889762308722680405531316729347980902921485513511171048639198647484981676841538579062904299856853752496972057319715833951705625865171612097057031799434846570573028286981467355502494626728392211817697992840394222924960842145469796730518823396139795585749688567725596862928647343611163461730008306539845485364701933692619461568105672185610622549176932855172710043566615428257090121133928769939015354786496009680923186788789006571430483138737196611965634270494525688795092479923310429506018241179790123127508702910164862913290744525478398786139149525453679009385795612782844844201639197169353621830254586989148401443023599317665548337912381699212176473107190445925794944021892403824419399468528342876384378331541095387472352447356116371056148726947443838948577788791495457136323223888667471067248020864137853154302403473809277834429400693134332946485769098251059590779045880746887110289974823777272956674400306310491438367577835258427691403331041759712343899193796664225905359266871944051813995478204479866633489710972905076943972844240627782951260514983519923341409418222482694332759500402502273624306431487267912974317798923712015531583652001138904272629458227215606931246021929784272385688433475803515030995111015992976601720026697558228358009240163081894062683788266836436707387732096290810256763787461506726290934245667516993156993575122732365149056340148454170698184305548525109574207043677493999664810446492354511320565414231422842799636245116238330568645647938892774493701710799543024068167390119344904363233459877289714135305660602998402747897564212737284326046593599020028710131972468755337677360664413119828114017033621245495106743303545538052275786658219415413174237541583716282854669550104386863207416028974279598518892351240661494925168496257527181480752794826781716370856460160943826520502742199675282849397798611997334644845702186436833046838213498278872380780578975121575495191635542428117610585478531799180321341137898067836267689497202087058279191014058975881284014160666578030351826215694026715844957011305658663757012527300852143535028823983426044340777229328436992688713550296009234908329901647299518096667453222524089201135226448808969903371035664101330310140458122361001731128659619020033013720583823599541173041779022360474832265689387777295843451218218083123679579107211204598037065510677916975032433073798029078614342759195197129700241012180486356348196369853429488966343266335610305003617455796062556428519174505128362771989072506730111041393127929744006923287938473815996134393273230956422721521504041784607134151540357443862425882605587590108882720830240593714504825632763503872208351667134356137445094089928984001396915685082974715654583845646742145525484802113550919534515429123600933276055963024573852205814882616850565578322196100768254526805485201803650766332923516115336170899750105498101723623309889363803709973677755710127209453122821071488681907858946859640117091716824801292562006872619120010432483872272218355283059488387261387078437051945526354811719928054314352414824404680312443306760726258412766573868378070659665567045834857003581693223909652790138338981476965830979789056678678554782363841123477110497157869811758116677610946607078304068895910234500374192050980590538281635771986764290485968381916546688088910335614513798677375218260233816936911909699016846623802875393626241766040961178448331894869468850453055817942995772290726909739154851361880353812308370015121394188566736471706252419944315688836260817470467155763920193985749314561466848145133336790489718288851684330061568243159388450654618200526313104796364164945063983836901887266106452948354778628793609018410520003134144552085321333694405309260357438863539928548810796934576886808604039585922951150370859996962804125599911214643304289090764105986428382091650322556464444345201039471509337615609915442900747677190431019802060334377003784302933045426344499270315171383628350484814769378439265478571106795732639402342201455358858435997084846650010202982765079544085620399673484177612870112075017842265013806056477182746580650682527557955255523414753462096789883362444724638406235453930176906919391341960374736810731592928117596319200558622051297513431529728489015479861057617075220628751057448626405967496415438034100424504585541258568442134337765506464829936492089060682724352223931191344695376599751682357545231976739388745133415010956794035811503827001331345973356364433512902812679248856542175336988350959102056744075213328896484843936834450672753259488820107377383012732547604945385403113290993455134495559895464145717342824748777413856264594831787841956901130451724943136470848946513179307389728604181459891442471976295281034691763114303124577092889663468951883924276815557301846468848656761953082166480195329375297076474945847519100770677100753872280712074537547897506072011862722742909258072818417919979100414605392265384030555600573075083711425979469083851283182460687374837520053423183027808922404748583370504235713523907597553387545781224999055378045413745251823659598244804478305865712098916375813309759521207253446865829869767407350906904555408547249663204080207628404065254641013993069006462036207947671335659422442541215613891950370433254185843412588177910536619514567455641694722980944318560416899595403700604202186636374880317295475900549332782557741709648516989148485211174199856285430982458529417514064863737880160006667347793460773016933221943094683319432727180801039409950222658175586288231325467133758201406191808051977977331738263354939730596627167726882623394597596907161233552190639753040174501037604486517601277654664473428599360380783110664114694907360242391673653287911750142035363556539526639751539859532394871504281391942997673152021057715213432278578655961669556924143555437101932031710279425085553195483888625278413871128674611820014284375814183532841817485989690914965229360873096084504632020690122094936059938116314416402280388383852611493890098467632146583613078870228672358064293208222156179446936702361403763748495123471289359544129290052695002301417423008714908403202051663925059966403418437552881644005631018567505532008968920913556974922741301688927296038079119820052992928482732371839796414920439669196821873273302627230490763959982342147475968809368750053051898490366023177913189770515177716613462436074993703430771597994504696463941028347064956888498048780266175646498570037175361305135824894332011523628804015054398748696187978773154127383669055977328741800963580401303227857418910176222667791336908169044267551751612896373960265121084037404708829935013878391022657901858838573079381417360150618192985044754012676556998848265734840070527659445880033990597771345697332644009418775791578291115657217493689681120328002879564048801976460213725350968768614484424275603710088892991760224924428283249115583233403316148307155226020704364492130899845634317815236175393108375790891550517903902057825969831347244269149736055839407482269501686746303599327991799467709243155817584855703167362012871056221274626800119478138289503461619494360508015908351950767648772314823669516916313185269195345215187111376290804156076392139547620925734058505685107571995908399190795438231505063452092302100017303431133903201425282916966993035953424796157010390862047875874498845466798121733377511399213594628431049521833051538076692306434361112560923098852821753016891712657298361171626855495603297223555249751596310926168711650651128070310841795199879331816924290971300469656097025692812875965805851234963284075493866611552926632251586490082870907743100496195963245758006942229125454819186455787970924458169813681258380992236214727056527179330123376670430172673037908123287132989099319979026829612062089135795479314276317322724272439982345990629992033892138281584207717602417629945397828110648081626661060886771881216704874285827484560734472431825034719766324555388593805619619331908546933264771802642653509271645132642658629310331842616187705794085080969866877538382462418342453632743907399037292940825120587892954238679457753064589118775398332344350080354967827786721935471823556494138092888603930340458830797884349977544051838662359872852393843610174684670361952224007849409427141832421862937444665304818758148647169865946444946479855335350685464585112034461774116339217846647066749122466018946743546549430639120556115252965304643498640244383345777241153767210471822712679442677251308417721297474542003767400765428404783950192480470391961049299573237006594270706342997742526742757633475793985451666211059590252971940950047566782279963004565707839921610864787211229029204044866252167714696683907403505456992175701224698484649677741406111193648530662748219647089765536083156685161265811417055331258109809687257837497624238541835749209206800462571161123767409969987511925652117565527751492797891561212412862785468577811191435391635548786324550639624318059729583718985814644481129574784707988275018364907451898868909740440562590170845067303506285608873826047663379893522559486303923493550107718408082487818828653619590908746727279410166789422669577407484679404731080636375755382050782098421707628075367687327117707391553837338326557613866048311077884372205754984821097965496920555678325624575539410650166756214437078364783598314771917584824164888901386521370453570623104432455145115486583734772819651326808501262911595793389768451580224444222391104216277821612180026436225394069038865725290913654457882527439162718776198101891884034802804634826044086519276168785626905674143504399331798727262767279355299543837943096438014031937749428814161900636393385595147249884315632060151110959632098048636916256855816805024717498230152709063655238164088802865502321675368253847988736253110357974356878727877414315905118323258712403791705359077610433176482798055937354491116414926479434620733973220996998176182367579426045597039275540004243247603164656847631599141628403929688762146004972106885055255271083316646923815967808957324481515219777579295601968041242625031342791021740623199102794819591991224981781436237446449717631949397790373751371608536577018125048594699427877717351776752143888371552365969674483112999062033026472226853420591412987046349127722534552999629257517173848532083530431777746398098941852595970006118248818628071919535619430404401727688356543828334340302333933728136987862341645660223930222758471087579815333729454689702597265307710594178208404316305441821494830869565974200126103844210362343203585704865676656572608835993130113415543482389632586635170397573776688633668069348828617557827937416233658289253786510444391289292431345324053650197202321210515498536049933254408991936073896339092288188243359249593582792042680464250129251596792541875973926644351876860641406442411171485628360838412594207382049113135768997500849182505529191994663038513132253002580320989463570983859301621830399967517054776814809816099718455070007366312262670031113537088630497117878714849744607765119232796980501242448778698437042486610020218597545222297976434241750946716820784722585811640370050519119651164988108394754841483355519217498914344199301785981922197487141974844246483413141607441844021313701901020566525444672001656414000765548074563954253241695047305841828083981079602844413519895445418214787050791755504305335322074025280072024472129693200167583417731574568746955214617850438588688984928979884527327600167039875157588940408468054552136899184348740638376998323553394409240768273145832182344919431274854639802208873123207639958134239063838201984591539043331413619380321579035047169647260094244754441007712700909112964059965720501644223095540929932917401788174354065355380923143168743151883829622013185796220172514330498142503896118673670657921661012825451576649914388189520956951532020215415167900289346477965878347130425622189060483483091237013759526961215287898640888702184033405925798224332576851435756569555836855793988589553025355565801098010736175538644557032029765924580892896543323383870558786003202514606792546564220056664934518218039593155998869800477137694019119686979648840095869041986100650529815968046092629604490332998215157589740269477329681079747859600252274546118156264935134445114289433348753643478227558373879980146714393429513888190247421280340230095922459109008605434381577468447579161290026486157549268241530246492961680530031456944496693998744777109700772062624893190920072619275962653622894294100572534600346472004764084861580524388595365106467399385534478427919104100422129558190108154019067175367523117855808994876098530304385070051011861393833860958281819543012436253068008266300527218435188490008479075825951591012903592319263945516656915748251332610212602043775821534272371156450834655737961997235916770693838672161072877030570264973858434851702003022191200430522885774656813056878660640333612917330932532284818191807691771932571975071334678185057613786696238074957501112775166463270094831752555692186693421847978889194605011930025796852087306382396798985715346229162561739836263391151807817731220339932067640254515071572619715098179565758688290568888574258927251858828486562808294749905840137387469902328150680957917143755190148166141437193185529332911988241234664758287456976385000295964844852755056731657196242828676831309855079646703591583274792752127564620624547901022478849722677592771361975193547021565950201070109476638911289158928132657805462491538687049183401251487630853076537163733809107757733527025023127217579005667859835885002137034632184398451857374009336990775762623103902932470844202953282553538524443744833761705885851515331397095381228389332201864858246599001302377864188272684194114234324276915952810424776563772540046876210076775626246663143835027735962671420313256394161459645796518144610966753861501432450554131536923929280241386818429225724180878612156776501274204564482841112553300002245904015572669386050828407568553021215934997490360918220236589888037888765733019701030655705236229435789203302509183577623868498528357227916759817121945342203772160003686769978264014095187361193054025835218986896455209253360382799133026161832442077027112658327656101312492185192767492717458353378950628807482947780500693103995887407650771112189226278766373677125566023327819803001956266117660097398455521616976248777586849190079336563536373720869101288739894790518755396906470321413428974451565400522389886612667805743968257084526182340487919410676935902587811771524935207169465330947394771513000018624051234223041468204651846738249955582990981145346190175700864056269737216738908761269014578997787444487877308007364720394181954371410758319593314461808082390712030735489176897503366489849968571611572545261626337531993774860996581546671800217039780566357219486045405952816933896366946205922174711681636115786154417516835451856869602349420810944725109393711539883699400134437958450414164165126733832958938582957263514329138146363520422943366297767149402034601464170811717295236994212387601836806020242757516360838726631779423947700210010096255770162117787561758513073148161323358997404083327715356181205877691822603803186471290250473366789276643459651900878083440435036129018712774358786455711717273729656650364625715013574474072429915899772486310752134126340230819117543126993591486988838354553735037348522229414453022076979838463074802313172530751267283733456031587148023874526605412551688369064677122709719639626032938481335825983297219633716856218136931966010936412577228425330420516950546868788849469759397304357674781275113384754510164234799718408281811445322491545319770799684491539226077704811007294726834341042505349366444783651090018206188953599625324398075970397949676573812389338721567989553745994816935358046595222208382416924985683334328762100425029694894938077089052557689515341351554753570123558965056515357681530423533187605513238805395232938835188707502183632379539331720752586658045460324335854355384658024498335869474165757470583163133166286017530139309392466031230059377822710958378374568143191598020434475988596698335166225335221739402630363823912133661388946204293064675384399490848051054907809128524675894434357893353151333285021449159372067879996746318569372341653635927004575427690965459524234510167898917274947774381413225008609721411421185057039389323070971218882815717150164563487365524842489253063516517190337216908333768806109201449077814903231968387302659859226171349541446253516103379354016009087476181625081680316698972820380241634587304899669389478968142909102315419911551425825356255122092340461401265465669112013688122176761698783079585669887346333001023496826396883741169517269353067315477874179151307369403192387712933695609422452977889399122152851882588150585922014057393142599204780303437963102634588942044970453770729104749127574504880072405625896583037574959548896633196574980582345913554087735721507262344559439686926980500428285294396046864843232968592487316630031257093926767635661092529617319421287787794075410548819211796351741544646114258201146724611876853953880082351040048082010909039590400283379497193016125367150840159372710020187710984229888076368826203292374526182513937429358453831715069787299142266472055946878111838621117439985883114004181595786513078916422472918323419419515788190120429052589579147076355745139925867856073060433380556339295644102556165873519939077335658401583213932216569389040824743274579034446913705037701547675995001028182922487555684168325135897877260186692687075740059096514294576108970634274223916484458371937611608751454817525771457774964668277920037623354218650621981886145029053708752436712149272364051776268053881519553187560722933853027786282759675992524174060927546876004288734417773493028430015991509595146279041742075261682516713532521240404533806881297681337405983700936909097087259459484280745003631326325659132620950590612119667729134164877403414656292966637878516659777687717813661657917143556463678949244996895095722741667283571421198338409175599169051415158361651411789600739111975831451854309963701883479569714579941534558179287143967872670990983450310898537258191684252473593461751517931095208292379665374495507326006736757387007322090107468299388960651131661983260758779496114142334259553761855932970790593788112635593445758109904664695870419811880465667077800248110258197861942666437495954469723707194459514264739768111794505331017227627288822085623086071517410235701842830649858263904469621282080856921085162616411226062781466257524044298056066186355338561695249941012782635459872480095424244316897804332218251146089156508462209820336498463587495156839386843037799236956104632674258248501179537623741324536595483401103709848901255565627189769946900276678799567049961638530015986068964165789247022565635000842894583898705004918104472370317911393682430711411697909857077034930562438580327599333337903683344769483145773909603819834907461444563677841231064875638934234096465592819043150912812447138907645968549501938403101635981759195801772672427570517536905299943964350594944950934264977308883278533817290688455401212595902566973109364768149744583800402959256868517187315807285191730508863372183261293247346077621122952821612448482920199566982529714357133218835243820465434870261577840173702593783092295509364634049060929507408850790657599237305182709811700968201225146851704006581566198209234399938338959315433127384971103759589185381597413652231245158599492427747809606287867932944848770864043474376719226080572424085114594768497792747491949834426601326220062556575823270290095337968266547676537157774402611678249482559248067011060101903964642543653856676264459153664214341906846523985211246518525674817623825125709947714152812022810821729520933103508650629662567634026855105576255645958896966580077768759370530416938290267015652428119085115382090784206490424843485122541823919059648846304802928771373082759254801057843446443977513800004512392953200707992200937660714049545461027551628161625368379352520909006676351497818699676422421846716418907920018246528173845912418244846455109744609111967330286852616720577705699407419068140358392710400766911196561292382764000667338451019681733306025934449056947078815641302515249009562659803583690676865202071922324159526202861880375295820904126406735945748771842230098812693180731596699066563813210894699183252443840809228162412547282161002855671102860664825394459451531945086784483760685103681226611009592797717154683164881503145530396571812298128616943287175944097335245835927976374423579625727413204624158221944419880427961343526689467863321491944273900892747535473300789041457529506819835367149233571011988007312287912142934108424701345668381773828148915109395381783341604437698223897448251035963212579361898831029059500454051927647344460836911679381932520594284935228126574494628943748815767096462211766866091929915040802034945384181287661083884696510204503495016714358938533994295094189365411989881110800345929542317547304532002892350365509358068353968811055016171676272767931311383032275677154463173986419951396073014646088917096704720717618656722666706518866545174711306396853852325911932546835332699379703653540764260672234832733194569758395397999858525256887140731780052093856997507190682304515063055238169197670009952029183192460398904605873524674381515308461666454926496828014482051580532076900377560079398756902763262048647382441047752423637360232268509710591254890670633896214520240739074578928590346449852069475740090648008676335323128622470747583278059023944246573319152507032770957083097965461638675049661273890869021559621268807921849757936346979024452425827854268169928278989202395654918236445590202516097130219784208903497665132502262144522400568331956054949797386082568732436685662951409347911982968435282562175828698816704596018316510390731713977410220386554081926962262643695636629988456473916325668749060391874306420324070055677621459495483770970485817420973156885192909289253776312826926833312301249543755215640963948423109652385692271930772951774534695762691909466926375851221705871816879965351494620925822595756960247717418334317762718120834277020883282299453233867466822037016115975300898763039661936980877168743091958563394572305981739803721036606661226859715073131161959321848837295096580576481524963189706715410513862469969802380279187545835326076909900703435819439861737546016523806526939098833230762198206455288056714289318803793554929447086948306163397772219113040278671962677124184046088006607128301392937093844617423765963977475504218830303659523668804190960609904955356578861222986750022257584825726584826006989854297619117186882832456393994339919528105827025266687108449772742907651119562046285095440963429308809653160424073682393709079017226359019641373766328207875496719657228522830819013214187715880051793867745224815372558983257172958502145041729456005094051052035740381206898578404775544484494593503442216793741350958445225594315986075873823783397669996019526621355747864227785480669861859720804751670557111375768031446369605569842495286670142049844766256495355161340053711468127457308128352428955302498173939507642905288825486192503219816357392057159014948099964428649963678457071048475393754805165629238209341024265911072714846002234046623727965614657227677749346197977214455710937918467032962142639092460437846828507162672805690126370934140390380281419775424160429502546927020590162888508711798970789341715709893023528210685701953687219115751513761350577554614129114176710812755090165673834935403803670198652194824630772727121610293527994790551711860087720885403563829750467628126946604075160813117044613132983769588918019847648796520564885795027858678089460783057286057536805721897561217746004972872677229186644783621712070562635190749665543371255961829910715564530673927169097597274197224926996232045118730250544388483164785887804838059297250809856457966368101160268789385493247096917958614795308879994471294348229681993681875057892148372908777915860381189308425508953055838808654608928005334182662128121497631778053220407488670750978733264969019178306338551087715385439584297205347733394162796186481727596487791683228828823768789648410911116195858678391748068505802984562677096988490844368675654358801592917746735599019359043561135141364869301188647260636114025793234826142462838485208796418494341325764692175199534842301151393433684830549891249669075878108250499098242909772640385935702160806987843268306005453841029669374385621200950782474082317369519275644217535498888629373351418940839381846003781327004102801942384870013244573780871861515586273290289536396077770628746357569443647317717837450183141797246892471426681169058343666270650230097168211523729958912560645060572134908545495663118596282152781421400016895996386148991535204650166305538178326478840084263818800399396996243234764361022540125089059083194703205326214555553748182016056725658265101906349592733458179488905253346935567278818404911011541508715649850076013772277174767138684431528238254331464429399636888103615267683761911808703083150823612766374221987187649795238037782079347233843056846913388615524695435184591820405754644521041056771456093565994974445565182103671293426889457141482792220187771211650128286805398185143326676281718291072304733339038517924096324427054663988201074694157317488244653283652457334271376709684059616969839059853206099174280884516561701550394724765788788306333068365755327837388173385648154313177504907563740765597797456804372685032010653112552928503988452945593191471825409857858793358197255604080040874738080958027137818917066034441839175908657193067868030303496381233876232396697974038562264266773274427197885916450567601724026796919587293869590024242653944756214136106613096614531288252319037364051927212911959561076787048336710745091025298487310991674691484972029320510320267775237380558534914187095289084304412913925817300604960859567566413851673442954552881314048259691761777567616508334231537087993891350393573650594263729927608997400319176834962133017666247711868549158683712637530113492793613224387588056026112772294009567793385729746482468033906529912127091893064186999218915844805575631372410661591935475863800046760694877636251951128341994253588353812499966635122161707308260060646191757715272236813223239276300420827899201368457750114066520502886453675640627131981516193529866862228485887890214320414644899408620950117353453898519021240329154869956922431154633707315308194267885431855073076811092357596579240734065172530383530946022088820040735026034890038871785263012094191894952640240928596267471992709705639230448006088683832886654223448694741019186830329367681948852852305377751435072168058469999419389241703621109611026732052810116151591504073535468675212774681933769082317247958711527000158506963343582120443365531307602463386474164339586865671911206622292340967443112389436405079327057548772791856044086948526366079105938773726743104613199817345219952461256272859185383700605438585873589646724633628805725375492897268964284915579150734743866647916876650089069218469759959644206437482883849435059370809553664330375058303154895985723703279168483652173252102817378073857066965031431583040661827521952441738673310945495153642124344596411953532994561763454175983238259594739567934108459629838977142572078261055354772798086617137621021129076912674965212772369173601634308588141366316843845328674329214274209027363464672152311154890694226831753411318806143769214350298089930627482972994991124495549317185128853507343064104670892462304284460777407944691829066890900811807654820252582017684046950844074557202153970416129974325024403346127360366343107880979450534076833481098293237888399285317017068502023265257342951350015921217772085685542659693313848081868226780142823720165882137755487914012666053041167965151470889874822266695162255382461747256190447971088332102631723297445858462475375374479803739998060757023343184595929005255086210828556505842924431186284926433353245779142516137368212068639477491652583626176497652937731551375974554605620929932725014822601962281842064155275017214520193787900301037924769367249206575923376903842882278059071401995893806847900220394679187808360139537398983532174559824461471932900646641199340139238649602210292956329294537921448148993148843542273709566548576879049371762942111834486927855784058453198251241143474770097168009659257499872999901293029002964078095415277575300674296956034747718798241026448535758478447754207602363534439611814728544343978252904336084190207355806217225312416295450786044227017584867663789790944515345256005444473809862827025349279288147680671585727474975457004454947895501025777336570301664200959425638437567951234051329869541389174259238538740555700231278619504615105147881323142187515017250784735158498155881535499019400266164361865227716745247739657717195385267224323753292592111595400646062311161753640138257709774008343398909241063675540196146824159781499430634486172120149898283852733551704347286105276937877305505687557662358027974257531947352570138179191398226133069671047589740423613091807735162770858393617717911731572189327702588023454044984783249480921137487311651714081061055902367195858830017231902623118272082454376259571305007877607445357225285931116614554884046265375663825662753510857195904789132032781133641175122679262085622071270227488662555262172440272972129154389480624674983100239283116062659125826462727610262186613808428022996589305790503012934520928485550108363851216913748293763596050573494659024642530032006360275597258549338636578218752376496182645376119598365725891504769070621498205134433819125052547362002579304829391434433351081970900225438173728536352751229849474284294353253425515262439160059728369861528472712346410137304336654701165827584136019546779981342873391786711005024159929199432201840344816522958803744040613268305669911004767187206091447864856336967743912880625718551487795892103718914199057999891488991556346403168246871568771506766739497074213412928920784638953458574496732479394601088899890981893543707023919781210206559967297715368390824257544263672522949832547363357924133364737749361712373932110394889127514526834657182966993254194212118812253651187225292738185773623131055941924385144997180002732134947630148419298640228815944605399792029381337677150189907149154679058777974547615461545579236162021578823259660899351469266341645314434825112167485145692924581014583214064776253580527237140533747607779669152597228418487826493643466489547314897240235324461431685369462424411484044564567094270781167145052703145432499115476048930301619202414337115590471245782716270241682655332387236648109429085136194056683117900605160098898551064908972661395186565673725917597548612002566430558456832006804711175569534761217696362830616347436543399543611578366166301523724495694372723999444421430326751720619459383216967218958109004310957185091752912662739788507588017054584766403270694342463992442447832488908887462965590746208832970366773375444782242110635000152856666516100922672881556356556296873927499141813665256961613090923891669371956545139333479465618046093037440427548325831469954250833272645137681410609614457340992140676651456285742525208157870004829242396684569691061562442322297321928961076034121850743122966005778001568638317858196840369181085172959239349549234849797442710778363204033649601902934263372223213459790131439882378093820578492667225894733337447233173904602606012683716817031965071505475156167203726381566506017580530746444826049714101036049690899234671176614811081048071268945456462073850153927816837359697641087662035099023442741773735584597852088318315123155079794436097969307453768126016973414339328985221835771830376720835745247892085415467680825226600289244592358241437779377170014985711223281682956507007231188292055074049500197129086929614117913757935213962852786985569210204965731243316938060757397464469621448929776791645771021272697586581950413204008464717534013600807686079520943721458510461769202047642144731920081097916067137633558022615342643178133877073418133680884059535997592772904975481964737928881605825977627516852279834250733073907984158380771375059451473978553754893350816321805120231785917183969749360356287539515154632119500863870207586165766496867902415898571033467329929204577973094036539994540985329886516742194676946756772743997323988976974727348046057120508870863483694191937475788378172927228349602672360098939485948680938520278989255282115743543468602121850264065649894755341615038540836371568014412239958812594848738557716293327654158714661734486864395965706677664800153044657685383271951879759467201860527089215561616927414783869361308958831207997870713344019118042636707611498208531287885714304304661074897735812436927783317013122247605104927840194205648574560011029734841555178640714891120300998849620785416850101796087513489634546832981898644002562404069832687290428607024989540949433164774038408310082389980937868129733241006730523566218316770661430883639997242003186618336280949504883678394966249592617638900996081839603716267121173107407268000180357550522609616526851764025787423711814188615994916176040375728812852417192470630813205984113080274841502257004688478920011888918365514734347492876544117875693018110975379964187818727254667195300461819917987430340280080073129213208689987703692025955991035762060866705296930146748755315933974784170241842002528700965998354155245259919391968103546176729502854698476831741592260614417166196871673682671758869517961761536073373656593435588600117530834224203902578851547991766992984782016298750313859337666474305685237265284528832108244434969108549773247244829474119157286449735684960508155108058265781969643282694328529875618659191721552143076259282525947378134944409534280988179749673691225207180422192739775732571905253301660871793995220265749025908491932625422622132184002418541343753708057906047647140661089563989171708578361041512790536738467155579347883430684177661126317322369437317161317207954394912883780496616438513638424994261204774143540875476312356165677027631107928446018401185368220824856238353586073584476695022807489942092345642244813508492300126483809363982273479030702234557275127555500829389563844441069876162451672441422465241525794647121529270157269300690555281065218045573986300629025003017367225343944510266563588494984920168660541412352412254166314370096732725928339896114079034604266373620183584303788724098602694427529914395834614656005341578150244169804878972545920935104080159510096932877956826109181372504207524634378241057689823362581220816858193635335153418086254325817852920746165285669365754312927984989033587298323836227406332818728939130102614882323380662513614829842972972894315012642235768832515119825981690944658988610554427941729975698911149340984638624465041290427853729351236739716726918897696852235373387641644231049360640954170625903071596441772449370961977754110052278311621243069128448484186581242934917570400086006397361741256522359285937428062132877504005692055542603100315580205986654909446842192148360083848907504164696265736281186845255427839273853485305742996676444939002720462021456522158828256446420717862263149349131423489387068825588872676565962027639341058977227686384429988057100352829428802380507094015870896507303770273372918861774600239215675486446751373097468167022761294889774363392812276910654620352429759804710269152453983074546032495514747722375585792963411032318433459180089712151050127208635449740898786258892757788692228979157011835221511696661356362900070790681491608363228979634378209561210572820432359752761634374206652431819445836705044626216348821707848081069077824771557986886262732655653478702780939696676462450060772851751629957590133573080532060632322961364371327321624525741083998005067705077249592025412107183426807925738689984179826933480287611500555694871881460586602778704795829730574979732694795345633958803322866141617443233965539955437975695143969443174346615143325215326936597228704391003516495204661565112490912459541128907555359372597158376299466590491614620616346119038261721962214654694862611329501163155981612015464060810079597893517470558036626988851128618092574335231572161416349501621660262443908011599850954739426273331951564671860546632354719612244631023977690068652291472113092134067439887318578717802892917331694871634042058428130906373250286330062325188519107240756821230768935965508796582819886222928507154237742333899037110251752940737970085316289421330278529440807226262191254823225084370262258620183818951122061509509983802862971345148574276604840172207681620896787797278793356041503513060718353262169164621809255522379363429503762347448285447785906215747263334535822864778350635821369188567253385151939019404313251663642075573934168918392767859283840687333666995076184650859954444652170198554837040656061613042549780316513642356076796561946159730001897496125987474693579617439100715938079193668805030322748352423537158995965914155856844685173185741181828080186194069177228180483294419251635903719078589157817447652770623955702553273319133457053532067272731913250291931659837652470482248550007054374224896071353886579446450582262094050145988539588263430489626074659519814014914752103716304637763920084172637229999488416760323059119139786961360850520308800690923965599178052348911118407780813320170053897597235173966298968568145394247063324232397199855592269198245820478908047555137955617956273388902013509782366017838411812024872148688811845270618826011126457204300044658649576711708354275359632599457421134349283407216195482952702012559040906195739323952613649338811514339483573180821526573661845288115895881909899765706364413424589040394533626365553687935224146151897728258749223995391546937531932681277535198398761178839880927014056453230641581608406668146398856660247568478775485555358990228669266068184331813779924451139239708962744508343792650365146760147552419197555337275330554797861025054448522939795073982005654503157703520208400627431122784078669286622982485894063052066108403833657667585414278845069798246918080269282889246181413705533843702960103993123746712511305076378362306531549592306222048628981173742997949501363800368338639366301245147471391566852465654816163051604530777433675597132141468215330116270967432335666945138396282317380177926116019346184260032950904149776366669765294399801863779652723065436272172216869641686493739917010625537060758954425706683798309095517004711869630571113656369005298675105479046863868870576081517691959866706725599058904548868904825369468649938257176587836670431656451995973076537286536652104570922791201191920342760461463659228981658552214322475409312130254164893681512542626384068173677268659306660574512646403179339390261372575186488320081243453541206613997321191103585952257934728004822861006198437850385201584542604725574025615604940310135872966805426054386982299994218400688295404928845864738979310762736695320078827130057223442229973025823780365381747679623407902467509541875015840236462223655734518897158907220864063525692225137840523681057534185280923810978565403267032146113513375531902049859023455718024422096626859072936421751785060918798388802516783632029836690715236110631264027441309317717522762018200934947123712855567411067423590374607738595209562600427268179407324957199380358507415158489827404593771192140823395836591307449700373111339068599867100656903949918485835974285600456888635519174755493729128645307854430801803962355378926718460014315152063733809508171348400470451010281570080589100250336945637708532103966073475226523632629653613575932297766614363021703445698257918400023123061517879581581932577732035017316565226040754428159734047018007768400728856659515155819227397960110609805674281658502627020602101149023369745799332979495044797554706895391407783521190670979648238638247514603965912544213974096481277558724432480424843837479033532681704612200885710971540633113140079040353847814657720625063983173563625823074532277930568060123177004397282167182985307484783920319672139132705671852844615701619238558978829512652869741938883152187857175818025736618257437813375490605505705384989373779711068777978707142716301652044712851677388122858368560500271041645578118241401960850405464832223920355249636594948674103903789473570947367469781655835995504871345661015544455847989949901256811372459275979535261144167832822468749137789325441773010904081505119825215763936235825111977514293448294313811798572701022902484011014513184486527630242064573126787979673196282924296083700119451033671956056210335852371841884815999339902922824718572558932663788635589566386305088899313584653319986664358061049001856701513334518983375057199340986548830497367024875077336009277324633662227600071573153423302869213357854690820503083540302935531289722677713669926406138218372465957082211708507163225254728951298612096748973145421947721150842584135268930688476423142173492170059465182707588653178365640661336951901597983912963835497622237618758969810170032485588601822565558623039097495844437259626227101012818285372376057396120744491192361487917537013918633837563565448134018708811648318830600685757286618259327720660468768773064882312454091278410433443027450344289579610516125171376005303398252212913422489555006399314488844279804789302220899022813500614611292361241630463790493319631913624178975705878539170803344750388105459107049733854492911194461416999322686590391891861342090512449614489051988992500546356834515218453843036055816193152864985928626216859237065200893111125482962613225198165359895876432899126351472827940125522554508841282551743396580419589643824317673989976640952541314558789483730170208572828089792785300065049781998848856672023077108913458879574444097136928977427853922524497744587758873884118514169647645441881923057493072144280741717357255127910359216273758022590975129897670140990971232982187650441544309984636435142335763330929842101486594619891387692884234893661730013268943498481222246155098979179689789063810419155771684060702745516868657796491044788810364475229058504788688074638804885150588848858036750310611455812681547030415833471983995555949554383115332778492426960372460703777472113773855552180562209269939511652476404035760813101117079262288574728768370446353850375668808666260979663001106039034662974833158703445362820525945744963827663278901847862216346258750621545702161958455962304488555026962269005870165492160520235490735904114219271287897225601991879256973748898644026369338674887694100948812097458037645701333328942953464188253821617495428735848515098894844674233481212858288026764398400412202490723928222621084238146479871440834516707584743683914572594054388986734935066077902757181197103706133823200972137407044101548885347753756004838010091742072679143845744562640255848478635016985377160404012249592648506345607866718576708015805039361744258301614404905384036604154737381305879517954589260363957359084247352237676451715725426237591229590144388549457191385156000814491791969921318679779775294714862174946516483558519168413952639490694207133533623066946032232903505995429587546813669694329081284463370721323804732643170935883495129001512475068823197986312469134793575184951879245480594533066005848664610109639347603767349206764346187388511438877716834486223177001692984476882851836761379566581377216829911120562351713864093096355007173860412751971991531179419580833098293436747146978608835880530696719594662317306744147238375709892242302099771083894235906406873287246794709339431223491449511769599017984538197510687433333396322282769521916047213149472986591391543946978432814737088843724570318142611599756227211326911564695679316152286388012387646041061900505372130568716330785018360229425661127037808345036954750289368646937072494883961708075804747151155932384702994667209271684139193544482450974779419293713281367913441431757605995315577473207077888120949540369177864137973623521883251320433987183011778441153660345119177485664751320953900057535097223197020973614964482587950603443336238537911198301089912330363610238697143143909025884745021178943969443504883069222725755705346806448423076299034612851513762232477820507525955846563016173990576516160639220581458465548531055398458438542912609281123253511009573555618768426614346358802009692952541519961615928320154166092104688165468891059919126054683349460892754562429841080133640999768946686254167704234938614226648195340945641520290504568744293596553066283130802793585231724854239263092663942478659518357193272970028560587758957000938350902368937001714518097103560715312873152400918772826448061874458919486567886925746704804200284178762794599700775625790376849868971775054016586481328210412317925817993214542648739485274016209703863459235780948866142970906914051852546652872699819625096884369911382463534248214475665723586226588576673137654379635048521461309065649149238833865957946272228592332353976733422716050847857367931132881125269617692255588875407844284369174740444963371512553352129201444063016162881108157419506892833229801648403207585162447309133606507568143570450477937185207802381400225584149355989915694268877752462808269462371548397947809717942595146569733904339586720570310470080309628172388812054972292689755131124633030793292231618960111444550666110026811696882134928756800029967149950594647797842957905137476001775096291246817035175375560163611226727562521449972795569121839585621773462881167784605071433302126333077420257614029823797855061777476721151971307922432803381010952712021541799469894546169172437462220595816084043414190226078167850872677523588272472090279063976445679755254913296999211554682304324488962656864160446368973447362905305101289955889410329183348837760417636432346692267919163490076933671015418990991084411015435044881367969006263356943161023471343364422881487399411620157581457721940313493125065870879635948088117561066038424181637509225614986259850730776964177617904020822364802777009450786647934595250436602353714266871211605909296504251267444432651371994144862402171136933773038112430310571122777351297486776836393217675382156036439400752811932706627945842519820292330970549398401345051666268067433619391240112160753230850414415292172336474302928892415912413621604604716494145870563765539260546866675620619761127088569120139552917584356982016362942387613386358493397331351594434587387331496614734933918235751841681451908866549618472708316169633468793782834162249961388984579083980011974335771702903486389919745871089481394465078094462419239892246746113749314503135399241969931042692109900713599348832766186223332940815005561710695065970251901141207953056403928766307786568718186591058862816727159014386236554872673863648810749321840150172040268406110092268299858198219536299746015661370410209081288979687063825719183067347037428024041673493631331531820642500306009070351009934147593499158430873458856337884258802229885603716838774101332397928615840590241678091924177208209996004076325192560951496834168471981345615480147981144339655496071219339375284848717322036506894533526374608063189945147553796234794354121226853212452158454873571277172831744129515355343922801224865523149830388912768619059709267279144701048376448792038861932511822135978239774855435486759232536468178346973458961508917324485256189372682333787713309385229131005821023461335917295755542304066173899262950207004872693126878709425439096127770705801572165393354953557308484596749966005294826165856192960235111716470516693269578495392060799776726868829887554280863020434284941619598646563692228908456416722720293173334524514691199513815538345157395014039350986454239490903906987734656768819897564641499763725054548192254477176269801459313111477144615420269094958217710418094242441303430172441734907957916956371232784149336861463170853261171214131843873462938262132729878989075076661099305614351939819107391495820664930268786978481885806436209546954330372998274195542773067330608281662209709788391529570983032052966770857167299258411112047285769720510204030913945186428119841030602275788407061834328287161515754899719426461425386163085504861705375818232148743349107972323115145978709123714703149824782562372981243124164088832203437423547778530901880040128955594682303354765261603036995044701434240760570793075689853080923073950117547151925809130834309250543791699735112307170341262426434035929880529775828666885743888307962631864605700602318447614901587661788305845096628908321917089449795771257591173578161405919398581267847361684585206677033383560888311405248641693901598204135837353385884949300861949569616707994676524540080559615597111145594460932757310565401724196330011329846896337335339210037754740913718039370571894070535244966827912821026744748578854377891737360051087566082517188344324078058928924109436777282642067930505969394960843109069201006321406066487423864453795328173489000695364592163143108461038570901291263868838147564849453032124507079768155772270526223443269901074507499206064093750769342859654282913421596384167950924483556417186441510137785151052822418864657482776153736214941288205020503191045604646566695255642538159811615333709746443098806395031398013081772133567228965065532835195897049119457107841316295142455062762283169717766942500310917902272911998417853232728995043437979861294841534817149053788753433061897877758305915059305108004793478663198259622827380143863048604390610116897806599518958565043262133763419420753564232780143220877820649541768424712146771959385359560383554127366126798963597798854990814298531189020878059049387817999618092016489001271588155661748621166056038438057180512476718459249647989897677609206625241176581263363057231776710877573092505066593065293125989723054612763029862732931778377586650397836081400121127620224197730620714352190865277981685321876239647354865403082721373050430239695423107402094383687347019554975504973692706855793626985694485948944558127062881925082130596199792767613907305722742655385184201668299175910036678915912725387350183720369317007065135856265211595286659215078070569898931980047852544302338746501231679648296766121758502082528313309159449177306179445833464419807526929110312728167776096762157982323815476227039899093501764114324425982818697584523742561837692821899776073319886899474895228380262153840587557180377056606752511237873588588455287285751665557685363816941629578474750009187582472398083697351883842929356008408257556037667184024671958536846581093974546992923023014280944396855938377572373864890648762676048877310031443641501144763774612192883814080754472685902623456226231095894174910109480901798634913871182260552311591451973489900689600275026446871173825383994311649711327525684250645211484492514996331669547091785139236079523003443392273389222277571477166150976718873440093416861082676816504485118215367177915456810917497267991191841501600181287054982428457060427735954412088367372549908513073572150688894774983229214464616811438721912469970387601446056472147046746591992172008151564743893482156760589473325026030047807661991626598032617933340926850486362419912013631582905721027868509308049463192630446851742496192313273083965468528329070223932078651562336194502356381412966321734475642650060479169046161773982852751078995646760793824974183681447634115420012146720875581784794714687447571017052812516094343454526606606472536652959580132506770618406012272292142747951162368811419505689617001346305208801627902715007953315829191918497610989329804652070889490265512855032504920058637406297777198464117019406728897647646397455833631284173527227793877749688389609487114604705618022201067619136168351785888485055347286124729646032336438825269657068110043849471816754751352975722406376934381901589760998943466706462026738539516360013219963294262579642669250131573735070181083636201328699788151231854777508564555255716192270714568104160323948198079269786713765150502876943516324945739288916854459166761597196080368834089144609796267331019586712594120739725404861066663112511086773694508943424948637102580571508112332203772895770241740026000584150444696210423563721043557206657259520411994357242091015145909285711257420797623416607042918129788869244529928354366044390275779463889153686029398028727361161895789979038998711267716261324037240121831824660776792209753683118736465156799862693861526540565121944115127434253507798121557544960037878392116937280353512546389943306472063277614257557715607736164153471104485566875261026919281115417168741384749440683722137074915762925292428353936505447514100860985743855030500965208265790528731944072741607312505242798812598116511424209892889284145052737227249011971108466433195604493467470690095035555454801821039680483409777120982341684421054682125114751175888259559200805989466471320914663409069578706989781934106836582331827284291285265135544174167586778298588720389990737477563853620811982907735576062578775204937960618020553202329639504156581812685804594444558368238416202103806026534540447370696029193172929430053401972227345365664078917857955619197371377835725477569061009259961686504613056633862033387793518977196816587479777628777364203381402159524459080406780179917547640902352090025969461447609544430871318361836571980518407060958089952117922378137207511021024282338227077242075849803277433102282742192238872293590462676793082506205817354550588785792261213813391646463690580549862120248538193280114656559226097790387764458309299577986854969985373905612370262958608769272572137373356290320330079013163355671037114689136044225085452620068710640498479573005146258186116937787164755758393146455132591997712699685611365900368935298833677020178431201095366481742414404285958686561190093191739249621932482605034557689908525265137454129743626223265890909777151252214305270157754220892161543566555254095843544580624288425501139797168557528765078212153911909922858427041942441916143317604653872955782230157461998491130119849705897563783173948189727546347464928543082011957170863464624943017094989148068788785924865523786945694705814198780832832083372137212985030487346736128629886717596091355736368389555224359117921679536060015992427006839936526570462883038548141294829053180368562576031931549299360998223680044496364598282700958319442607490849322003744581770787905405131461776114560332010585652840766860655590572327579591638291010145372884932509590897130125647341855221460594544146249789176787506343736275245886763848991439885691236091193796214080508180357905688246001462755053744328748646778243274434165900846497696500909700266655058430355689858897863192520428824607877398797721094454019770703322880821200617468473917237122283022286447649269074813540237670979317315972471897711487850249292991584637421687763740259854225809670943253236729106521746939078356110730884013594544035633590953766851616398260082161606517531165456112442034993777058156886041478675135781324879973280785311974074216471793342074815739386103604384897807608544619159117102643264245987081954569954754934066567721457655252916052735347791349958450893829010207994291039673030616508133419120657636019684652034230067133863757450453763944689314878081529427269679923727258454715655099260881797163053035837133646468087781565801124623465961316962833403399430654543545964064038046150178893278635367696974437243317455840275034017677812845586139128963866662312958011397158565240799561405323642915167577034763172291360231625194158935666229800516414337216558857009660768042843950769150157700739139892204525429783184142851651321750459406561252344105536451519178928690576491915851510589942466305658318224457914857677797734243720510527628254016226232101916474950094947092521951321701213146481086511088401572093577062266615718719918601586298425334403849949787094548776681511834351735426117323673590879016972074992585516871834781967820656110528856442128296051529638738713019124667305143451375439779778351583176380127993697154337774864920364918286740867032123925598191129749267473653524548981186901031263156185936959331928066081972421606211306371980745639364525183782644910086000336783756352315865254908366038735832322998918629065090794369266773789249503848988981639111022648971364582610399844095541095466403232141951142094746451691584988653959765234570575967187076090686545458006299634552839700124859420649859747881682452052361200680407038470619153661245267862398610844339027017299406560436206160204149678810530955365467429339476797312875724248594183141545879315728929261747447898100390154060166426113379932503748595078606857580632764649621864192907080415749512874372794312427275774208051763267439898382987351007861895406144724205006446531553595815700608664608308366369628600460808347386689715964810595143336811837672906582415563839429830626784884200198756390225755224078200232636034713593982192621413968728455198645145830733087095077120920812781379973215357055390322944208868122024388982566604928038365283996874423442209705309660611760901894319121386537164778510878640034701456079555506145400954827428694678127124640514963154898235673195506285949017053088667938614528657394646772962974117776998234621304024379003234709970259205522347060202232706595875301719389328310172539568771619010217331139987289923845868331981892313055335375069652836705866032214668517459786980343877063191782585097168640882908958261301848755127690285290348272935553235844922046216307253565257749967114408556025006498373006692491009473821925434332429814339751101630541628587638605448445728534430195075461466251767243291975337854401209584741321944053316620642867185563864173542060044426276504460627422737264684594387587844690569056887469193484249680191819823525204188549648962767452332913581877956261016170902509727663769425453618008422195639702766805923341401477114386392459220701711337268455011215970975137103353862258289659551288277406740429121641417574319615314891820584439986086799183615668508011469510952637064704869208025266664271347609017588492280199133640850149176141120338632305599802748760707826670625997064568217271278370678931584006688972847717423017212069988419982906737777334252945513222397686044173874787428709005296545135566325645125696664243980085304587705513656724363186630773150424417538145046127116804521633528428335467123825005782904916501865815292145329575124892739743497477952291087002907999766300521842828505458980620852342672730984772300930103396024167262454274762327024944489346251271848610347681887908727934564414932652147858749877711966207472328724300312649229224512274395167065871942406676591272215270551257300336022882706359341316328026275705369342854187774158532326885350939548082967998950247562515258630752983813065014339931336136554461941096878219322121249655289614746857561238042239863275803614426004329214133817132455114545182606132106558549980938916081795247994962232770220575724039641312014255831791817483772580341374568804276624482332931218227533689782255255481626588365827713033776253124622546135354069946203069000034396627856361940467281644650196001246259715546083860738888933155772444016642795691536222600342659731920552674516601854358063550375319563975968285683451360793138212066978983651618320046808708291082291769395473645754381357271702725735135388585713009684869245815364433517597640044045164794249412915737136423546031615279833172855191543289690673159747951873375865155828180752032779567304598252352747633197688629883554239740449982516973437110523343822081117336309905368906938053045903394919693609544337021701107474028527696588106010224607810731158421181920722591846240799233682011221754979290687463995962736846230237030474853337272376448205163932063239711298168652134025491624555222650646343872445521855539800535647353379481036323084982765535338313269743132272154098031643501618529711282650846634846071527229601939263527829079255238196733750875055837319710453226936226077869011262715046435826153169427487749213972599236994994201901450626316190667390175303314629536126761735772116195689851049698986294920094502874482816320514096096527719372143455896399419457303354511504303684013522780391067479136228052322969610046753584682948722187921398545973060385916709684446824773213607020519025095113470525773426777378552037305305547213495275145294853848469642891607207527938179854080331685461842899173866991048520221582509622493942748966634684997640769243765082057607420077742258489240900111688046372451676897440897146785562032275522611618233590682857700846656809830839669830698363916728999665138218015949780694656744704648047551209403188246586550957533209620076853909029844483613054105752399621456070447906583238650586124304621937874243257558556130657271932376093988838324776971067585695565554539706474293742628099407444370021526789525855302160303534903369427507619740701834157719945008028525950002678794151168264815199319983181447401381873400632934082724654463484950903075993973314849548236869277622592069088357364137918179833966904932220256162293510240202727896735011285319723224616276763208987714077488110353086280931079025779992419429253247830977274992448647282189483146598442560931294197682188080679028556668766327017255698953231594783407930912574464376501825635796271814448492977703859030065990680056677559783009078797775057049238722138919218071676482983956148194872098660917912900494101878423379220116571373145292767544704523348201184467571697954967792763929481980908381181786837369484283945438770096575745540621754172082295746297634748920510748729749979306732956736317832198946400034499272063209274870548182709772332800276860033924986544349972561374508137178595445133519938443458552923414337586786054669984405276102665273396334436725855347422661545297126506162497366983883529005443011507417746563387082003317736514683249067406060705309929924856317444218251978974508644809498491632804709742862434730800205213664944407630659836153825671482501814545694565038911970499387329944562161778019652627750432997721018637671912112829420378343721921621880730363705501589281565444055138969532610769768634636509774519993802424958687225769091610692792004006012579925081282613733878891122205088400206497375348542145938421193602109954633651534122227280811100916433304355976764560864413033174636107932827946844270614536754568900944223927366573916497716736032252290065343669730194606229415534276975143400575609261095864306621861597834169258854039857753382945865311314072339853625648103181266133252313404820783055250750316723249380674607080173379022066746272164400681120989284682039386457360276401409827894669662447764251694210004357208814976049612082988326514336517518350466680567170930779244203697035149683463690652774528081757458036848576000852363731646987798382686297276037678558747691551043680287701271555128537113167071688528378396019510877922231995541134583687853242669509618516415888564190502464558747567842201302229897489277925033568052285835139005079958018270508930177864701751793318832011508422404816460783715044723795822713099011808293623114296321364215184132434388468493263341403815551225609722091425452111115816815653313167617748855651139927103087088195359574787838163149199060771556192122408410169152315484419041863666900419642530023174615387527685154784326776542309613284255521780860424447642681598041171754343052646480962169715886061000037027675614208728169847681566552936270445523675420904586722948627265100647092140660264343566301533127022949383705289378135918892720657725323580500698516138496157463248718969914787819762466314354831781607473366710840214604865885605259664344371167813342404969077656326945061369096489379202646296915967925293067833378422387202543014245924673782558095936391422334240434529973041167366946051669600649825011254209243815011445691757329475792886002126530267174739929618162743784428248642241533433656732618741591324861935454119308137749355303797503861818153791906723306513266593971386764488202616782299322681205378220254188302631639146324203812567078364620519306557207799611841935196053516916544861667119605314080559238389604434117201373672196760903655161643087357318713320854152315285535358364945393954373138779703743576656245953512829005150401661490151951435476975326252812604659169201415890693810439795390733182188508361376930626784033402296529141852154878397873330306834241635404906908684649922188694969417872000554200837164969730651178075341623994503077227518087831950951684249382053076591114260753917221479666007745885839390902201856246643753438657622706603214105736818568924730648150370156170034791980928866074980442540417646723109130673938374365184239135331806665001290328593652057027071416611678001398493564277779753835934280278651048619284063572716236090212385813435901328990532976410495536102100714755754690578654904037368789128030881799945187281104898736652351819357538800593346102415006775693204604051299857434783631221018865365173710293248261908734076186141684992665557168205893363138802073122285234937575308609051891225411726556533657672628716685758759943684079185538833415629478213778794996558952948115064129344592093244636837880576339432372390462490950368563589030439411640456086038943831382318210352374606516613486368190655003465426389809438079267257282280360151028384725174503966696576646209084759164618968510021628740457563849283500358380623305770424059009916708926176173687986295613217967909587072516583643474093404310741026538215181699945830943135760165620860440362265916818566916945440174774129894165638620026925818510244427725240805428463874458648196459846437629882154733294673720192722030992650026874022377391490724921252334690511611009745293317568847094536963531387811256327126733427005207401397335704189716232732166605513213900971187843800303738483288584922547434583268920195402753955268575631814869997501030320303841588661886775340618515705651449901848177973359505413862068425922371563298679370374439562463015564948799021465065179945720538232797400125963181127260289455434924352612626725113466617955499192318675347419143413135053800593476006714342469143558540916449190147720057364583877145272346278463552494316112260005118182652333910192368006716297838327327412330964935475796154326028414494120908099439471243412684978534252960787001796887564283264287196984275624555152093495894719694500368931987358816424454422236647026359348776747874087173883417583847770511909902656827821872135977214424057534003892330072460932910773635039713902081313106780003263987354011290680348110689619145084869242715170295143907288756705374568193693429952070941056838754295805798549443162788385702553232196626196757931058404918154139942347748740983053671664922703801503328484152137885774439071923315536033800795080681478529455139764949754443022567563741250129401134203982343152132384725021181885150357440862060394235568876450508495670656376900624134962710030893912710021837014109797323757354124497126797360475490310479867788130409117631524058926535360952266450745467241683404957563516436056782598150059309430051194755070331349244773811852414143443401441737006669977016016406164654419698820608270223211161471006177118884859606677539183819531492613178313990419450071395564883840721826472748651510389195812767683891404179695013564664104182944314591899147095365751905377192945178958428478834270402821223653472044595541840803511188286364269566295331769497566441346744956191127713656062803964187683446131021801602710434950117328661250479794831203465383406608582560872361858865920693903024223814075238804678726557925106915021348366328206584707455004295495446345771276718711541941197952353351817660392261974615608675209153872464235148252592453548016368320896737919352316824615017276716872739737358098081480175807857350152899051333326997636850553720609803703083103516125510748211044210857262168072810661764038017886102850499948992638880092361660821674629654447081903861400203010817610341587240780889715719965322909830877595484960562638989571369052272187423313824375926465866056515464048888391117439768841647830467152360122543339438051114871283528165616214848953273435553073307587604290173036032548587279131321324635135178708971521367242334075478526592542857802724231350236638835290993951681393268525295304857805326198860548880912045528970218689701870496480242633704933526057841186080994162186652380691423023844982366191680962764829410076837680543811587138561545040414061584987124143987881631525996674161494715363885507722483363954505353648822159051942527306915673830710904669112296511535107712832978792006585361633749747141146246775097878322969887597971586398580379800295876904367001764211785630475288781654582694548061786822436257474513047979837649297790811827087240559243111421566354149765798062471811068215475502687142985325579915742795918265067457370435215879281352540245655034205934906200243680990207367530417540788911067121979287986575727861268293532333783074629512999347360931524611454015764822524646038540305770627592533494968596742174350889787195682688424446923279615034462051182485262147367683459865983823473727086639097977639467649678145805582517755644078974520040017886976470225682514010010476071500328823760821142052079908950655952724758446379939410991883906401734246076284245165591060693208932253390548180247127455092645960558863166734981842243195257988306808149115060929638490641668420247397111788089013820807671928212676787633406738685932776341534769854691291713164764314446625327391718474889219438180990949343622424070034389035468835904167365351946238447803048216929648231389851017061936038679362424266761208025564948630060908411786986088536001320490653220388164374775580622817348913707299138476029252489272673904883342219440330654835567220984535290604384881630981972207449453915245060797337798558515233176479889371834844153290661812051637666737011037587854830803878207384633420835703484739605017662616191187481963147955692321176282031088958809413622452233367129629014569956727335412709617934820839475430180365982720334220802309476296152451054113300001880467929120326985964203356360670557216198760978594693018761524580429640947188458922499036191510959803156281577706362306986890088363590961343589157574422654736220873333484158316427730638512657420654209678965360935574421523240893924234224203040854561201244739394245977925518975650302758809483165107899777122603357423093405335419317726938960153612799889716819740622559033676328695114033888720737206679585997924116810512242026421489660966708741747122959568080627428367723918244746967295557233833597358409912153010214858820918932213131488377686046709132855571986908125788819173460586190920027505199493701977573464242294297490995419957980458508883604324099876281329487030405091964514629964950381274097930910088610843916146565452600145304297824258699412153307449548440789672486536815417082491285858270227280812331767456838961986220175802306473189363740444065053588477902672320906809405575467603144208601520484330394943889124804806468905834429189465080544384541864213668735156634221563995110007254068694509043072547356950946910948956152699090974801523690730018325240968683446484027700310638866892198808319463399102521211768329419839083279901236621530628437136240092787977451903083106795309372869806420088151662220473872700529426128633326193472802688312485450840988593811752164737540415843027319748177735023498637706992220107370500205601429830908764837279603317931501566238681421742130136641531630651814877136950952357290135539923660784160170688305503130976535752940162653223374320077106504161146038134841778250126714871421185251414486377458010599173942806984527862652916224987654649848644064598451268352205765482453976615977199267035310301188781508307983682513947949043188609606002552609182256181009734571598695686730912039298272005888833492180879811092897029560817084436276917546362225822563358393154871817065009779218218880561450678657357229088692012426001597992374169983338373997512971248475308367364348150986603904245082497732578412770477849447387559233102061844841848377779021203443664781516989906419706121756875098989610182011223271032454994222045675545307023536633205719263937562579563173584471428326361394652979412157209782709995219964428239854417013276053370207223712344110464216017059959304416956089624356334702363955488999198006206899340816245566648309143477431899859463581030164157604479634160017174841974698997834373093804803747412535023294934882440030353224090095099911926214969066742622024332363049195099014599670873617622417760762172678623229400730211037017132844661426698225007545474654365108169512154812276763083458583587655421542674601025952934690374517134653084850572791711963466835163412249428208224744425006062849939252278570934031254509935724846958908723761184263669565224419577717472992981225885087422964487657778607915734314757035479068779702821981475902188593673377345901836230657133301095231537454577434427030890582531409535387035384116284617893532840139629991667150660058057228637617555489972199064481734101689504943544417548224781433212754582147903864264346874209463152029500229900725285255064242937980444366296565054313602651906571948686989231181032822519108833920733770808808224927909529571373943351001917234180914740210048514707697897698506768178119939119061166593740151299557257551615213258490572985399644031343542835237969318673062192351139963479657003236977940664209378537124411112023561441653107007341549986409243830356301420281863010044013779041964883910609771604253867116766643952200321212354137960273377601813246187402573470980710021838137350217417351210076559662595709434605149757336045729597356092342849438529856657516330133151024632864273202383134194311767490148371546489467552060093773294856086665091326677274508947016867279301998656527180468257225035183837072789161086287147920220603637696279137851820307486401767375156406954876761418163181627827359543101023948063861737393750426969497167699365837123254155474112933808550512887426897129578899087717710481311833790777374060296315061915981235784746647372511286607172929937973500368044289711124897190211027688562378264087884311849907989357665456875017017091029062430349461760969123969941658614148724347118092213428967611546973104307226764309276636243216536521780390104369228098546700980667018914347451500061098120033967849810060250626994425628852124331723528398066303218126357934033635732782603595705892587522461629752474741073714035665903610325473821793549991906118178994171501255945917097403391565978311173207316916062885118765421384032006924022606897150482830962850422312399735689881667600905204756856859511397298328526504229412787332410840483805005252386300301156950740808430372201594297940288074084035609156417365169247442465265959999058178072318593479117989033415041037162526680462700118310108979845854758143120867005439516763503503412593123854529465121939682843677373058917269246817006555237957051850482259301267968732219399712519509735901406531649196406164986211670738588366700236926042831125313458803562883058681125030227700374771760731493745427290720198404596574165160984866541090136886992456191088159121974868869216771939120508740254757812645914219341492811632853914122668134688856226803135522575085277122284184434598573480415608732063988196922863233823592630165426448778410003932787332906910269120274444600423816792775447401365088164160071777197194543101411605795358845220925666747653891082682792965107602425502431476103885781973342707855812832089349852273150479548847511492737940616085871188251479259606450405274336087907838022189925103366135393198106613616225007457698060052751676921569478720175211926234388166146727807615286311684445112366642617424599814097676350419937777361815861665682945388122607334295889356557521464140008324382191205942439551921327908116186193879831208467963158850236471424050056316587765428004241752541182735683044393160125371505994078738091023766557943855255358144304390525581724553182530966294637095962086029785939747623101235789492667816465418513030132279507654911318091660069362176956541160668224856727348248156976753912191909052784164208598238011100756591378844976230637919518465739140224854297392757901235428703261495747519604089376188669363434544341270957297391398670070224601988420101097505717264857422562155750390751287437308473817506259570304908357185009485264111163215106755607707273411361331449621925630885600303222364857180938708157702832053900004380913514479541846462016706272448269629070320529273247283381304180320179722123598075479152306551872200458921047451579880009943790756403706714925700581231809656029172887194361875240720436845534965188855004915452498033033898293393229797062512544069838440538485722994454895589266151975242990645716356780768937822906148496809704900013276804790441265135659083066183931305062999973927817403868240969080663681387500899786278846981498768837384679769707242108244834503641095048290864360066129023915042938010151145867228697025754275912338880829249250527504821342001881981474663829554580130782124540919502808977859574804554479873284857403289886094669760761019189648047946585475907135404125245636877880867606067642219596503898690628236057555862537156880525663599390797774412584083589718317635598311236920736742325914875617276177423629727714181716467494523021794254673396395875968752317818202769229302711120424683394703799539115681756182108829098806110247264771174720134727286885523832404948069528302403942817033221637644596409900611574570515746155835144699984768721541873069397861818937851786446197351903865163175069711320208411030339776806811359734176947715547322972936750121600737210581541781331745968998169152309781353396182343588424306737967045434447723027967066037405480061587329587188897690467918653097048836115342941081089209214626264335490449119676137353085672859241911884025973894415459590254588400420420200089591677412536398244567398813465789212281390156636615469259371004870889005719317267693321725921981169443498584859781733855334855223883088274381492898344052188809476579831005575523989665031585924610995486030400429106870763191280749688375956039248851925472969466606019923469725474131013058804836166950538888460344276322583629646634082698339933101778061057290906680597866998194119303664734432178705998779466361279249217470154064135260489371649480286879348574045056320519016859523930304485777003875334867104567196337899677073035711511094315366082342584019597340369461008359274204570131570124778196261335272171139566008033049656878458037403041482500784840538724552470483270131162494109319352703821820765444360248789693579849706751938187177174509521773817694968371824469042066124459708883383077958375195358780268710710942443075073966033436359427895263706765174647338572728173683895813786376677269664899431432805607621843244742975258650721030168874543030000005899291913449344310771655059060154271389156606226412265873335420945977018745271434844694064705349108840286710928754180335183829162168366020971932326633483847469234860823462351669105119990137205447979123643168820473038465589280702831962097253362003831524321721637400427478090525310726948016695138864216622851065718735691628332985720489223983486598584271848185492034405312163304398443666276841850187094294865590929557665878421285118183079777507259891004271945247514425225910955532637259804647715432480645807157122309065184005757996376900326057041760739370927003186998706142583107691293707230401531192106368981521023024960951301206473542523313689850526981395913452997720095843182659925116386063020736906600234496224546615538705761270167650682172411553387194254836226171140776842228738606702407304845777464391866555551320072400355451853773822203652705392023454288572828497599325670297242344314520410446338269967412337456124664386612090992344102681386572107381799659523949174320754702181031718662104776835950805136336626723973915196901724869230146937744010205467372087681561227257940533715100288581964371985819753601883243688347252210608325405745166314134138265616474650742609173974968967961034703464754599519976924802194454378570241537437016736106720238168354626445919975179463900872765502548513253789430551616871705135153994800615329912894900841276453124718686068337719673040931519298822932463399759649291167776092305200258406848961145646507011529941399193133258631187036640677401681500803874017605647790338721922147992790794934935272499434885525799719732498947527984580881090098353764365549499829227776133716929208565434393888493696659019668797029164321271095162444078544874615662678644358202743500907557378417692021770004034178541210099519086124507957812764171824115033446025147642518981234874282871823812544599287796895541409867419640336570605442694324483457943641303038073024052142972414704400989396711772418056322353057743622203263069939926919881534402438412151429723497847075316123574211885377338868611948195299544648360543054268060743018901236444858248368539835868670856743588440246078080503951187919650196854933425579535388851460798038971579656187723839317620648151836133616657030593793904388370863157205805753869709912920119997025868861135526927702457519248355034134199026329563629108115867159195831138643972456817187284215607417791942323143604449068585591705302393583157080726012951696971282388066427298949120701145331980435588430544823532268761117289294805402811395072231061069498485054816777537027443261167835137588090920699965567452575792238244463076795548328750818974766287685668505300051532918048654909824021652956850277162773186249277093112398911917491049108281536247187914392936465946384950561446207762816245123762301606504485527617960377919595600067487419568116263831568013939302858077449219153243312718618413196965195337752044837506996999174218815773281311155708414392162952777034919176877046791183472483901934587138274889487503655683114082678679401918556836398951668098992837750671368139699983295772774093172546634671866261055117343305719869448906124442322470377241017522420372156793141197671742642777221766978655216168139317766096007957365127799772321166451903930496474792350739243132046673933523753275402994496643972254286109892286501575132078481437220457638075717193776420448332811362843564265487160889803915818265102042233376290115034180677227592760003313562035118398714028371023590051326627967433939903460750690300644873041108686011758392576977151762849917299768099138040095974235373378724724300139898480227822731027939756263895513014332894310415563072230311994114953053357130870636588684002602134705246466297805193866911322142997145681123415291540021047273670068198416693812058103854142626647662228503435211514542723184162687093000223450145465424444891445824962179073919524912720317609797199303650788401713772167824025527427793617640014072628705005384111149852064603292010971557487400583242661284055766595072804190955812520433456033754270194411379385212403459779923392742069184994658854041686209099815201910110955821056266448933886839407807702192448872499674230062268980965892517190137743989154700541306002482491191249978491310692277775162498959009375600390118719798703272884507902504193241770530383875231673824727848343798510411750086213213596648598498755258036993701272135904134194877469012224874708296909580441913651293364896471820459391326107475469978679952902366714472216944523219534326722814231307698422830859026925125121628969003436767129510126553504137384882348446768222721479030004944648081335873762577108320271985293711966420390555385304273124748891249780734458299363988276419871155133036861639860097738664009920903521359445363737813615161552899040001051507248703918657424753575948299984451802927463068578622374550791617604081395948325758550068244708305490724052220775408638539619978003762074573634064780886643819520721644593549074065997995464451857073694031230828832227518915092103981350243862106463673934105290184328888968199264475632779939198269436503399408694725235627713168770700863700885605073526529829784080678420778142479610822793260299131695818972666426810478215602436786136220653785366720855592912932373271928120192041169266052453329029326114624202114691862578637776559792426010685638071979168776316790516755375718453635852494469521883313848299434079363537603076708829556656728772997104149227857461036219908481302295722872507628225132118733664628660770483080663782719549404949533452066545024676565965990534055841567422348302400528139838190615489115465771538171077992589980848683121767946867131728057719330263446990975712474260712667631179615759045694722099963740807471290497078015006828752816195841679760755751322125036607633814763520114275527945219142742537167925190675124300183616636190750817756596194322962979021088797881308674708849784289766397453626774029742514339829780565207790888156408645966138263212578693782108370628918192119281165255708177812334410451635527387772118689826418385999225080761022441515089261742431249672698534574994993416105504879302921855313993142378075037864709974617964274066466418275446245830885307112564606535309606235519581272439772732765240860243196126678372319439612534571155498330531350632916435089822906622287246948686113822624954500516194960736440262619351370305204957138803740147850279192361806124046944694200100539841144983515496210020330791227585085622251051698150592244279884917969136375169661733774334576729815312870408449172092176552716833987284670334858140609491639963254692461122211274713865918752535931866960783387816980507825234418962186779421987446311232461486165023618341486222208249962280728061736445546562397143606655893696497340039063052429452386262055175132373858007956320027497069315092903624874698699699697936509190620522381816047413493512060921052457200741626689029446180872342016080153657267803327482062874181096912121789600674572547297777002656956776639913482688595016226641334089716721573845001165527726510454996283709496640172337115959396232766567362690046595472938700556466731274288077502111267017389991647347476136612580858843545743807519828835253624816818619418400567770981630726364548073495014042611539829829459125113937788337435225977937693960988199959677803688618335095096914027266692560939414203264955790981486331253330553136019462730398039819184314011874967202519160336702627003243677264686085469522359236209792757119299675397484928083350360970245556330006162210037293909707071640634384744442810501411126112393320263679216754209641445248182157876118777501524538333396950267869467305393600523559705924267343807992946185043646622346829171717014703692704715876285211673024935722974624794056279491570685108355574008496928477077847699251017336775438095578058432730833058999289425604892703303766663232563726938655921151482852257349513370830400112222251024456244116799881132530394514354282566678059668453296885119360976152545083201092033283094411799285078954016901787897496113246918349019875672676343665892115383908492099667214838650932452032100375020369913566014130589237686381188762525350345586761342745638533518597209110658339387619205865863067630675817246454030741933969089993512094086664370173967134308576906189844756548380409108289328708768765181885356950206668676187849031525866644698407809097890917106496572539777409343143859786472832103474207202660703567448872678975443934788742977499291355140170211789530217011711261701714476397509165678643063790866337248265892471538580277485554791446775886199934169096195955854497832934817393270308590491690204196730047923766737404007998397238158911774835458441103607201026047703761175448558804627948354665228707395287631992052311791833884909216547987560119419948492105267630095269571427615871237576961025725241094215083080259968753091724578017349829497184702472059573658379442068716426458277440089769459001809110385000355328503941840488319343038709970910523596737534123866031692216544441567591252225025048530089584497205780280211134794913630080726773115789023046218338551852768979666208206734661202152157382970768709751248357749997872490282908470463568900712118484332755144589816417096841861761490261481851863144989085628183059282767570369820275548310759212017336815603453289081702102321037299064778263658988044257488502047450636938217585437067443203231158153037724448302012941170204133177009327091742888948199988354444270307008439932477035694346412988903545005768981961282374212334412635669994883374705501194124824797902255809813396304854302547430806453130578336659931862311211565059789921702294450614129408337128966191221806678530612856775071616616410356376055447736325812417823793108440629783859806662469579143276685380622252526382915938478225548983287655758817431046323696373042181685936803915771440956252133940892539353389534761025645994834301811997634599074170757090870309341706821790960737029674464588895041720355678497755413189985021577615139694383669217956630644757931284146358854501550904002156718388523309291737396556352049055559857916040216511650426056890529170095701831831047349707943408717729911686677578973383178600082372973179931795110878809193103960573743660396425258981147311906273526425135702736705263226811636596959697926456425726570108377388624289178731326058667880315602252333840320843302541621901123030632419286825085728992931641685052928347390453317423775691909053103712534059263596488632124014887865142769529455762512592284071306111817139818102607072650251198975181685922886553628304166499775723597275455728258468173928451061664898181615919380539093499322707622382592724582099136007078317084571679635308827573430872980327146019167303869215207918399932264974955291478819677926042836413800057198389086813136105787747553362719572682379275856214441561188359967448411152179984119153764904644955085790770173621895304725548499211493623655741273705498332283096583137645527002267361730783423740771019748128086934027846107611791142765547688105458871485003894030954287580665233519482147914592685207381023710478729032851351017628342055153996361752044450835736375669358830561558417664393654079038623403799988963771578437826728403477630215420946484881045668331970159823072075290198158903989688027700627402872598113955950514510745591480262406901616692604560535758724656515167718470226234368396846645283160029966034115815814063795352218968215406671658329853846775906316173136578393019588284222600425914061387884609379829125601893331841390216522877188398754359834181752072176658035188951694154327134048531222098501505929561015400779460370710672205436497167738790769510844342220911262213814264509562302991820297055603723834933812813433347837986109985325025665896413731404883643752790904652409329495763102721106126141557264362470485391705038612049686976458919839511726407811318784891158439557130924725524095477214763504686046028366386144137445024003017830650963293480101978432388037355961034427830520685209135067631855382300497460153529935897784485517850255158863878670847466534515539319348817513396687401807530578075083575108581338881590900790130917431590295484370838273353601942115389999345489135244554599687356286100394008116071031990955806725663752698245743665114849892827578082512060210330741195246009959280293701506710109228039210027983131877632237382053150974307802361058506471443193132740536760926487785451882121348628914268698913016455024254293559301811502738011254920018786619059757411025876392112612676496704191920746897785872109884685415604127400059605415313388613649106412190430686693150598266378688486810733858863687840079537135308744222582562747893884481674971389094208904317978771065147971809627879933134794581694853054089941973444190851791542792324150138325982365379396287947281885121211651113557687161394424247123493738066894578376151361827724119847373074438545595350107321179681006866234646523447411013688532684963763216504294872316513667800064916374428157245846124219811822940506533126192323873752073613749623788510139439558833791188391790911479831991903387174240375842144995292995756550726229940773740471709194104648779955309299287138129867397889092804594995546683280265137906261975999057998447800230785132308589087242618741915920973161432180775533738630090935543097352861409147577700298312064535828841814816327738120680682879533436454737798651159340558271161836255299887813211251100456223326064034586862250661411807857013522827779689159690847935843540728517990184251289792481772270084407300509728155960310940623867547975158734122326963194383361987599636196961601530108599234021281440307344935738120611245664389114174081452226979599004690329605864744556595951078581328236068201236111677052325323980921170719986777882369863603962737901350092749438208200636580870975251340703671063749250089085450471749720479815553870125740285192665369122471429906535561928762640620737801771637086329742645454447264522547338311512660624966546370306878269073869486011048776395990512586250275422154909097300280084547007261481140866906337177984416101724399732155542527985418774383917134667756144643780874749215637877479743359097170654544022839642613253652107232167212696566248871127402789372446541879955647236835201655357089248821661190016648084269191875296651296124717897707337816601845957895828556628206303279446345224843813044857206056310805480540683157534394561447104106506781520629065928337549869054690858281746279344043552156885695176139404444213685123927543603875476587224175438087160672592423248898482328178823757452240195907464554088242267795540578770191755559767941313271244222205416804459715420723254391703313528833149187878179546439670232810957460434964560894893337325895597372660219313760282264166361414869610199380274045439900573842029882323765210491786195922206409831225176809171275421217116308426242148219972024428621000959320133775904834660751616498682226567342576437910458125207130796447071012850580988033020328817917108990994215405852997460864767110772192726891438026898773637584763242882237181902650989426558299723799187070696692251074560321446217492193821084341234029327367550190504024263367742690967908700907673886314698801563773620429308306626168073501335333535186177094345992332230365505673825549799899450352304091240011572731612735895164220634644180049007964093076748994889186715280914037773883839126816663877428967572071039081528127467853120316964840586187637100807374075494846194878767072509803992735233497096397433769095146660715317191308716945944940935103537475048978297388450633519635030832651606944360684050493980457620730202232903202830594680374745977649090615890853461581143860708411225017286494765449639812509205611822585628844603281490999211383990742676009331852907239477920832983699701803165134481112288330633017487161923854273541133183730376802163591318633144233867094012292775128411473843193811185636857422992365618244435590389202924871265659710345527985847621289016000816860722418096327210568568827365131790482446425254766380815528048525367323067449998751038851220348430597041499256996129763283249343552483023021915636378075442113802347950185323223832147526381365339141860124846171675028296349385875021499848929714757485972300917433879048458865038512224767760498122422927269192765840825907023526669392066002242649053146832387587559053440569679012452888505972806480510917146217551017245299104094667132340754895633389100601246003153744659626087263864636631654319431883613032489589033825145623799352481964334011401026308363303770632225149420221741108473236431972290485563796550759319121088691732902681273449870085799898770178355800654906921594910750441842281838972806076760065066868961195967758844945793578642157383165541517293635163656754211487546346084805137951919735032333343857798874788752509130620554823026462890117254905753104229563168685146235713219506881359814880486658785526963753029470059910797846383339351564128073452832238351596978350659100264982526443517792415518121134377516071588541954162967360515610606085376277076373984902138097818440375418946544055432486314928679533195827599537997491016935211131636286918856339544114771377247094613681194283061032287474955370309154864752414181452628536241720381561430579335679931005362472078827033501095871994934901157102121326106795043385728079842006350434773486703673847923897217693721908771795450427194562957495421300708501548331108480820381181552453049581432116976137090592192958346328319212332068780558970380866312470032184336459342962089792451171625978087544602959068453309256403579722953111969315861395568178179260817119610261659215889959459546870665328991349222407495054738032225475753384707359207327416669921642743872797825883418768863289275951666136962387704533969405631525940132987120895269561937308253862109083054128697750969990629633162339744558331066258347837887582555960566557946277584651931317811199162060727128655993951680800381533195112446725564457429581145486398529856973466412308708883511661273999348704311949536665442263415484242948941419823512958294496906462567020882855943191913867835507962257549593455607945058163017158797318731337354382837784797997737747922896779827166403617363782118982373172227485937167124564806446613024655849165133402774343576444740788537127139905074718349914859190610058887053286281852325455810903825367436696612634973861049095371364418605027494982083748457326311030321115190450443397233465047657777018913660200265956255639650731345172468394794603577146036632071678914914832913248040051144345802987177953421944532939774662972399620567356637005507488299699178927454417467716478235209396829660084340485461793736847190176906626198693981945011540996389358539036351937728642944919844343221498036672573175953435625474398813118088491609624816842033513440149120121046870081671449735899968260554453532543064399906641010941085300955644477798808318358946993953827844489184324619286927410323137555999879016529306430574650096368275205666201642526904596385319125590993685497480660437082736567343695908061143964039650694018344381016122470044033101657584891757574202865572997927976495650077476615624283856838960810014691708508161158072813325025863463735123672645218481546087666527916296252145098997722718082657423013707073135782143083979115499798398685100768078224176455547434471416284496074125267443148767389817890501281426070397947827394268943894307336244818310600428824363899679975658672194777008841875039605843298453288082408180291740533393574977337931445907463335863302757319846507548270098854178317751974249721392168341028494724386098980073609808811947065196635949878103845299776831220126524225355585589718610864952140182194674701285639269796877247573906445830239596792136790818431522151504976554558570198501810951718637357552863721512718673422496330243108664274405750892312519789431584160168925219782937451314215420650613918117497787724656014406736810295155139533623281125736448210572448500797489210832903846805945498099625883992987091949464483437055553701849988179782571224207106640836772993273568562518795164371932137374571402261201727093976741285241201946147963994069809904370769753588466484249993323770936319508541884241586945527919842661753665654210710251116327291475350933134052752691561689533403238447180910127057037786149838796926047006317521841128412121047625819589593777617296318935222518202100737443642881754776876872933880738191479942886921841616425771095970606875057072111205389940333552294910677539195791506473767263926073468806503518248509422781002121620153196981717171639652623899925156244457694402378592460948843592622851166679013609815064469962882139587069373796264807760710760449723668281500237052659271364063858033269403920591134481066454865899779195339619384078723416118018718960009436252588630704215970215967859826191580530847294317820502654125848233963411532772468295448261829841159184972651676461647956096666407023545347089849738648773061045758466349377878612624004500620111218813687480890884756727477608724241246643502652824788062971930394041715089848088672011784502678674672932259048282800384212273172403502143438446805916803151836164317007619753598238349197077667475111422270930487075603443901970635457683648755655069107918371957592042692889208417044057214241139500344811076671302425639967918042783706303835071194092069603908956559302961366103031954380269177621885259343936257130069879883373937215062958158560369541496314738671350702899734157583508199317168365702474113057775164778692137745361177815398636645989527723942322956990099511481293506513067613023611308641367432353736622818956401805541449651232674897013135976847530097517341018685884553551579473800343347891996148672519974990311840489632543122635101020069087502016924876908459729831270833361609680400483221442359065665412611928770664633309115482504323506607163066467152010318636645128237754983197748059710729835368322228764144741940253779754960041220345948957586499631166329623699034854250942917609253598551542860596218056617318487894225416067845770665977313356538030867140827850001347730028231658564219554510046607902133148783807547861149987789924484393129272788590768354356582256687498545023182778003495583104913557417828828129293903093291396792850456456977488650256192621265307376469979336464078860632395923847073358258085827385748011323714709701881987987351099643087124029654820582549495624512199430067207500741493316191985206180797017297307199378935016812649595683986056596737919855290528801047069203194795632613304839946956357232642196606666899578562399727636251843234330751993443807187705582785075972168935909958589153756864078934819309160845616781935762457704925271252527207659290489085303136963809477869536426315631153968794476893099859746578385101722444004301808981210252868404450272085193244525731805429943587240452938962836124885535502580107122068335578724910815751918622386996614477063653996735302913673210030055749649119100603249068554457840905310987899322099157813541305430078384998018226751184053470941843678028179676464823794834292577132511617963580298627265682962908747434406500317051264098280421597885129915639104856225203699560382417973468391691602026489590601139002524616747066562572618447588112949280465846975074886766009973462414435582715164643470824249526057966183601258571952160507537600246663760587131108977282425782865547354233541792352712897027147121483549479287269453849378912339198970515365777881630438281705482684048138450270940441331690290220158603415471072764310830850236275330735014221546570726573580237711582851463355445790833476531196779165567667176124853247597339049541329441671707240829838448086643470455870242077784187786670527213210016825853500088661367498223694321771167100279772476609239745535413259001785840370944752367500483813953539224378624608382110774801949231387416093986238002428199749713514548466661371809726568206310680539386070005882748763952861079818311344215900327151588602200654338590318020430812718778161412608630784168289892906784685385107216819999705461602547963709475888203661540270161441442634454790139974178429904025199854925656946180440927393920488235986215807386321316145850352239394179997325231178586518309714811200938556028283323115805446853320048558311964742525875544253539997995878748181382312271561123828169665657386684030757119324304241562833915915178752072794592879535118139410027878506167111872072283028371739922071260955633374528710039455565020415778803388125582198128750095439284681460530000191595978638646638860534741571805162065399406262814908832964991758626462095559006783905053662620992591605025734439163150534930798718633395636747279390422671959630337074896213320074229028449334930452916481574345695991774045807345676470790349969105438961313452169732352224452979554781213811331080594160324909369470420681256425145056145097405928281351243139867255686871391477578902514950557081587402478358488039854289016326488458688453135303597002665274408163725223376421651839403749549635954897765459755533628562813295390376662731403275676907106156286641436091492028183913480542963355760750059150583877145173717230171141443581639655265999231541450297657488043158953250978296191236312254297961009478684509488622094566231057482196970985531983869707543219987113669470435833184728141357540885592782928010562890612975148477488932311845113666912702703736504035919850767093018818399880970319924122839251536028798652203710543523402593628426194203398981602219895013864238042082933659640065686899626472966554904642351606265031842985137731496024266564750278388724180356350864124458613011323382682217457329079234534095770512253330429753779600450477142591560320031265463353699446472446094730004624445087325187159305283382332549074405019751586258551872579592449856860215402069225686048307959169038987509474316602916276295781591132112942929027662771137826551335548155237767395592930277022957577354080608073184422458838923633392797643658480439473089125704012978202744578006128097581816698524823962838199863966670296252851692769238549774823407326772872445216608073093366523811326581648793590206190547510273914277825105589773882596105448163055746924080244267746728727762351973412446175737531439098332939754725839367274600547369797277986832319536975416412663666099938762024502965696014283668212083306975059460054516180456678954828075162484818558441663563903035216771249057589358671789632509614044538926338240141921406069069723124650186189366731948877542673763365060016346914251338042002612774170004556139594143317631345137726135837895119714329311808983175722317368507434956557181709390670983599041759715804264892233110395738898937565145172225169908381511714284505315961953300922371162256870367688358312212793850866854762511107158107973862519093516742426166020413041027665096064356794799299499183007792962903760411743116381098756471893996009212905648682005699357930737499759507853155539367615617521588530027971274008257504315406547204925642431184088400024313456507040808799068862378651956594461079657339564961916856296847609755373382878568294165539941153813287376191625061337871559309073654211663348074865737894184739398872312796243923514394944875012248789214512397765634625936872717265520489088889534359618695078290624645363829606652437173761693205552198164281940466904882795600016399814254138181945225836923490956736855650873471442777616144012330330692691211617713377195929459076170611895170028932703039962741500517635930886730745295719293676201508726636200976239173613116430140009387441190585274795411999407709027598234450460486344312618569456982218307744695560362809528193931688958679427359126172776121055794459111796425777271112725624377238075639732596930441512724306761304222060887068563730493004209498577920934293636647259988590519351120104923737796134275609932059502148790464077843465436122762569571392347294103830470537902448957830641187010453478830097707529406047767368110855637161601738412688092549548683467380890229235984316712751741747004891295486128653525635508612592512150775619864153841632398543423291001033021218911576712583085219319648276881192680675625732455888961315443784486754931998134974302925698169917935360323211609341305579471686196298183328854966528488445854559452282391269350500618915757126608614676112853997927651226613348542325602396451344817444391393451932683990096269434918553526321547990016473355594143681198322237427149912718153047221904629949593244841993382086589942644829210080557952658390407812090161188090297810975681947276330797791573763760059784458602736377630443056022598231293447920506452790896479301963337674864002072235822060416891540568370252012261098505205020705499886625414144071353730111652584350429837193375987435640296834368567729638405371643903659759502435784662950428091795263699257223914393855245497561333920569517631112972305921780622343212696356248137289501465370261575784038115344460738983947985485387200852442186831109202068606069601483412308761492261432431902749194822152670927915562463635669316968511341743352324967345735874276024923736587080655143703550292934264546728328409240325487427300663961758429093313131602367673694019358585034039974931312823578431413126125078606081724503754661589052209200122448150264391404769901854202260225328846655622693650058675856176549287837976769773825954279567912645087556867169315531849209710931944360037480032667224466859050462870449937985989417178343421807467808838321027942325202818330187440481217335991467306366055490266920402697579046572487810100424372754034535194033208732309035244737908639529429905196397786847909780454236647903438133409576835954982869780864208332895529532995875255304143747755027329426384078815411143647317138962900118890437724657704899169255434061205404712235610329273808036142335337223399966003166931639981763948608733790538277163898475060229422268890776875058617674524715019707997914079086589319951451805400466775652677522073583498288765911222987465379685990191647434139804978813320096082253864598464175846623445818476302477584505627348634933131541241011468298448558963374918498484546580279179931104480883654278991698958922915216072252040110823602026694441655008091860971498041699300327317778181169199180082812072521317626930945911936129672166810521257436720980157906054355405324787413370833677015094653910879379978751630984380616097351900177776185282986125470257035217291381283469119296900941598733217146203016549631040260165757743402539561982036664921261283925359615299050712019187636327980205568331162478065769866936178744207406757348165666945766380621485181308850452288322193304518163462525078294020392658827681078312649350072398351096453979695079715589653389362404550976486826526504274454403612876281304047869102563191845864628999660366888506943681203703730758589404524318798587748979512122244157588404900325032085115269284836424377468417114069054021962942374100069138887752971775624716174639661068073218944732110809855872743342297012589861204996780973151982604837460913027557067004581311610504873506529523050622739323840976363015087668174219127586076427833011646130065905678928981521341578482375210793372143034376582073992686630710779854217083564204719795701789808398679216748068504494273391728080192770552963264360326887993900842026098283665348177920591634438990537963655427320026403255275197333103515975378478997718345368453439577754882353015386176516375566574172806812964857468849071192849421089413782408435148307344690723256581388507733310642832787339870497304674695398688282798901906426576938590090054812753918665677552524602539371883594556068722216263265787406210415866723127689902395818526928711100740209480863701802270901575514272276884013580259174654205943098747436791456491471448190773186824759793291364745046647987944766345513274752705051687106107082235076972769579656567720976694994386606858196773401263585108295409934024083944011348293132965323682150717493346819750109058254441941181098550456065423463723266352409654868668473096945333252780354175963453994251677193558490439878439585896576845755688552437272433834694659359573397522274594915886909645353208508773786528358654235181126799089553009708225828476129246769691799213237894513068534814949926577833070026678768172085839949413278464407450225888808935531869114995682913366763376190640034707248907381928657698591164841290906791342833896579189796892972834932046154088112502968114047880823565358130310765051593993288245643494931181959790117566256138994988487761163795939196687732647786307148222407013507113909739430386614908744535495864147600010191186210973799381424877551357950342771192861314967430531733357541860868393683294472415670745747869420782928392112053548768577024946643903715477526913803250641643471957387925378369811851464412817682521368761329071032709330512360651167661862468172622767344074377952178873513972252378934144887619225049968045129757364451836126994951657067342290204900119468297628639878069160990594055991115680371763077257623669324188408269881623463420980950284892403211460228051951460597556962990071637743989608486019592251687328463320662302333043587219626918637200892491707546970965970888654139905451035003422571506042765768750887291667119251858584849852331811072757103490743737287717946191017896811209903947868780995082958330569878023710094407709942073102485441811610108480742141850491179982837431850003954309233291732223529810286375826234228835876242198554011064956421695292603440087232637146852745009542542528568836302364797041296620390299172886730955137751051081634049852010554945929012808600005746608454385919854895500066198182353331186272673669279130951930934211846923232725769721453110656553908191790758933000561065548445977924391200382776063934598328014964701488281830568425725671700331447100705364116367712183127454285696122601272693987396415640977618272461042104575863461030593489740653942482710219572959108554668180056381781008929056715219683160042620921503000923055718403373586299336761719646193335640985549228540376148815719213917625347000887653302077256988007689779488018205144351714136533731762418990066385905746588087640402160566223441130798257882170055958183375824409619823292240031111191877416478798926474122225071036880319081509732170110757486446123670012350791209419353886456783156489614183186671169144689600946594817550786432263058403661246774882305072157879213073044895359126600376817286067678247850500804865370979785404269937963042876210892938161443404307076135154047077630765374654923358784262019975939170554988074895948760404223707441304434895099947530588659321835639999920073641564805665450435741002688223659784579669543279074653131694816444546803451526837295296750418640087226252102474673196439211667190580360765725416383727665114590532807390135258539277324845061622497137265660173882145049029159370698541667906706880393970837480530112203707701217422640821248600887439392711082970214469783002994459936546403194943919829478621349875511184634255913867770999647361190434498052398419389085746707509998393799815362199951516453176980108903406828659030782037195607448705901167858753587423820421764273088395682406150086317700138077203381234408890443028960074871053523947669986494777503242128542391400253900511961053267855434847445742216442921685527857533679122279125010223175066516320150300174279853229644463792282286779470748298604054954487471332736657505852044501497641574706657721215733524047615195536531424038687095195250774531744847839177522029556320731679183013443187925536395065584966711717558724643509593252594471308669312052617304170621394934087984222282532372807800614161093631477959264635120996807800971906611249788681578952863606644276170537510279245296862540829200229958209380288906724977055188315895235837120221535487420279525380815333847633620525274148307822259353004547692201765604592613203254258198640990333024468615963835011716969589382095951033029906102191530900014301875502522631703502400399364442714550302043783438295182313857916791670568743186729387842500155558212084237162067732064970900082815974382215891882209187055588323835960717868849503817599229142656267551795670941671300686370769982593464180017125553795135572019726218740597034937397341759314926117672302244823975986775964330780954027630432862651660769186076625914264505937563899171846580247079050104496259474922855228169907019067553358540070356132079679402554898616004807087782405515106615636519497326432107126628933621021744228542880428387013617792952251336035783669948882256391944637433203073524179783334366851452218917987198325321224926453584102994834109101413132426386554994237787759720531515127998828548456395538779248735253119058228837365398091746610902355136263459240217355515701562840198705233392393116476251802854764005871346751099461872448849515116451496116846425078816536502465800822654342929096793051076628442928217224857248304327109677119556854201746953283561951368939882934884682374872302546866410684128481621512800672819137343585779914986361224927057519952174608095685911391095976986535932177328225770242308592078573160977897481686075455495537546809628147483872885327410003659943106878996840205892304421282646682470744394027241160455763612643155345836250397422572799631623226465637148646129208538855732954685332711340523376082206184332188763954224944420341347322592286571570447709110415161633501258288901714365985901249495245913141965457404575528901431249653773829506925678079257843568372470154743618870031006942038434630580105628909365325714120721154061992212646414172821317488741664375346986172036998582525687806208482971787375600433964120380314088453467949525414634111796342654059622714370319633188754403378095971886575223323025526849033243905628322132013979968753044546551801630330352427735485159468851275936560182063561048607062819428285282783455802655545300405403561647568182862226468313450621829033623926577751887566688308960011083544010816085034231597669589248185938455431863850955295529239363867711892854086123248100430187063997500482664533743796512479074563759705013639863321788967932595562271396019408944527731475437198273906272989242701970818087399621849572526990065785032795334258697874101152128695237564226428371579720689826077934744510812230139018817916492696622150478053512504512742136064590502311874007046935110356380630467525773256675591589912982557754752615230419381255407116445805921109101779123544106068431291358399231635778904820634455379286974785170366556299538616666856847364977021254898782869642966045704701852504456136062544036061408985485582590709608376214973706432267886274886728230513266052361923571554084851517986878384803653068760540060910263658180629472596249867402434305672424480652219680639827090522892742164090815583389020992808283247157966669487364973838142945479042668554254236962363930434895967168877823824401316994102253750520668351486892511299289251904406474688179972651259758457958111745402176539718175202442398271014963292988033631730169708817077869532172613717688494486834936845006490302813215687980646904776842436456852069453879064390438590084347071458134724928714815289466136315000170540354739686941173842101208396674756004935382007276121684145226882345007431534312252198788872651186524987482937579277000573826397192128272181860314584866771802913304745708915947194184229117043224555867396757660266440382553316635950912868497538352515515320652804671446873438234466536023742730391929971872911704141014881735623014088481083755184945933517117698293252421087317285818030759335208520745804676418760051839275873043717942203155438488643822534634345014509751990547057829728789483770806050134287541647776065266176616097590575975483154835730505394571243627957162011054652582541561039996490553084461089200487667754056062966182202563087926478016090445302772538883341973828291423942493628572119968687135998187457365864037271441334746466413473705487651307683888534972524346804213751567335149615809118136817248043650166108332600689829036724882557868321955617213951964959380697310049838543799959607455796017686957123669113006433722533944476897176690728365598868672630364299519335117018109154464863987932982989429912433145887782050405762844513997628652942516508847356219566581591016393027257661557033511684077446049631854779121894955023396544200673563258189373940294600882513828302375593198748834948974482729125726365961531960913705027921419997938574430013828108630257624386200856454010488077004833334285163048925073635332808957685618922335850375653616836181058840828969592988782124271624231461121156737732974461741462854473159476224465194596229543740368526194345790849469315664679293043761425414794145693067778629989053827054334552897609654716058818438740907313431521926838301463460767452709576826668596975799716692875499806481022662185782108544179185143691197034981975994237708345525055783346209772061175125980593426655867578437373401723102691346196135147633222989686138140926715642282588450617482613675570602259040768170196286456041104751418514910012732666007560136840497805986336627492023008638940578355048839298737090117133577935116764340181944484927013286607990530400363720615493945901945853835874460788137784023948667114170699971143503041921537076691120803758034165975384824945170085292330161566378041299046622945286065205366285041652049796311736582479102623793227383642884060386852627724255626198905830638680327405368675764491097546430193623259453631193609938193912584406460962763083544799659126076453337903937493757447625853344523804382686501959783023953007358144008949883674030827569492655096905213193547830938181148924742655854102935089519371390163009159721772737966750873152233245742409729282644665827769166074888542623195314700070887186018634741800823169073741759086317090725740813003222247961569778460956439464961734532281814788046769838019898050972129426859163299742647175868305136841045668117639669076194579469988900048875107135333501053075196366844506364843631880807977310671743156388530940455597672440176026068183595273456597580142700802686154973030309854026028498522859606619232693811562175488618307885103019818418551393240061590329332815420266406009041870819071985496795422832790037897001155097199178912762209596728361739594643694854314563736788948306200362429763947989945228093333526758741236737812386024539285474000274461052725089153758775848515682817104714591704360927135007868540286189365666981713625835097788837794012939498137043491634007652911822431930094526307737297797714238488151352072215159833770786628571096315095902657699114722318111551837112182196730029462593145492873840320907473665595820560201494517233068292012781211286184793321959318155817105599625621124538673906114244614856351726202616106351212884991283298022697905251816645515968506218875163590882864348776214605984779563998264647607316692405092120010772325919380180876011488646465350639802756766491698205393378369474637817796780449801513413184112577916051783559149627912605006975978655141966775458264434876476165001136458064121446009621942658730593405213307486833938722269118718403068785289045710665670001471413136352210533560842303933500934959925799597276899997162707416292761488517295669840611715252199985990516496935734391743850026882319502020143771584026462904858297648530855692099087607842276524761169930522105553789767028477008384168004307023623235143402040460294699991628368546001899953536055428507845530176989358742302469871465239159808466901565701253405600879530732370940752999157569846721372782911212019346299998595088103756121293349353346441632553118335840204090872776203619292702796150222360678159588603751642294669016414091512006246801041844345430220371543574170177190938343572753900418957372465101298446998126906293929167458634812812041801948688448666896779281071786879110464652510897899707132275900109035912795879822912300014418025872390367643607594105459872946506728014680860010434317636561069362776214052375619189797636492336353520477025733332851154723024917489472444120161363947116659133099756668794236510687541023373637983081817601732154309054348239503795952912909937618768025399149737604981621351736908961355189904309735970091706006190898313677570758054845043868282639494338115755636973013631584148185198597612520550061522324988355044229535624419767473860353862906379052847979683548481996606695208853983011305391238075284462808239515305871024878770472693863331506731867516790896441472757711562290180157178088061629891010310929443873723294149669571699184752170753494523737943525092188580252584146724650126443230251684062861745850859315964751316166578187292746720193165960539872475258086003071564734238996006390121295256881878832701669695243371829116733224395516932872791518732103687370817727329467499347989473039159880476472253708170374218151484062998138640009117118260927009540124241649288542652865512435987103953014293853386565491998847899317260468759042148411119715367260815587595472563106187991803123095792042084929386374901701875936522068572258158502015418417782902015502080061914022138879586154660649341933481207741828814487938555603034836449736060896019387889108896669014613109480828939078317783006480902102021218654021751563862205804056367912728717149616763379179990782117794476927719704475715507405881997829343594550462317463233042855707896265752088584163138702745661207639425942951848607843219957086817139372416764287607603461159389097052801468734346790863296529944490625918122766668905854135593310610467335185278652626175466245964512956421097434398237693901240601917882662035355263185774327649717649360182785937962406388327431744182643112340754338688223935104882361220361382044760128190883237561041781949267986479494079415852126437082371760521161271293272248704015853314480068400371348922065566232155989464661982773993747067386778244119383440489648790579323058745976629076760123559305265861194029962789949027646476631611215271775801370486449000037614841033579726406779690066767620484517217622201789447222338559272494477258984443732437605796430198365506897974381528725252326579770624988490502136333618886275778328626976621190060901244577472179475211939651980889529309208647819194504098400306029459750424477844862199578459236540554746525526249241095094503942841096690708393143467889734606571795297000433838341854864859940708004511073164267796879016772890457411860367283545332068909555771851424724731478149516598688773000331485090500799475999026759113142155720252243470503148188555554572922203343382161697843997360978987623390910673344129333620497126115856800309406707900942956612306404322815614173281526689373950114092284692170202317987885143568639906516510082336413697511596212856773518756221593535601161048237514277726505032569436436265817401701383294566816318816516997240444785843806108034398372334777712829975478163146771268592178559141604698171634383490241550524587809656357699487225869643916972643144542094611554211619121037789438044495593814013660211862443056680344246026613423910258338492379679166971038545127007345903362714725735119136380978280287884885030809578459673174363015849373408339681553152129624710266759410462148207382598870243016939419651046841257365492860633225951233200378956232525571540815561516257985827703741790468309336597198008582497385415335719532188287432566267938246611695560680713502711374198115010423387721933577317622140913805720976681288004142336094779480127557662841340819719495483045306401638077393863898539814687806691110252276290848683636120426887340228375097739356895866355255511062600603901806099813414141748537589257364382699174424087673047844296453125709534205647160863133026642085692207356972297131346281632137693792764394265569287935010949583869104957598942919578471718374132527017071126417658584360294329306460404750862251952013140902859052907022854765803401427705664959185449087392246442266719640140484976140488089767667901415212215422018537658727645036124753646136577975216453433604207796514017454066146062277061668981407821146694420334939715808935540143052175954772639071843606240086217808051466194493823238536865419791946559568113022907364076159737168759588069744351214277459835368602713264471686456526180262706347602102846801427361393199881165095903777466720124169323796551505276321344173841356137678542206692769480587175983587479120324835165539588579812286859934512254897017423698143861167486043519835395615219096702713532392557014270444366138463454142829574721216534625991814065658738442622959012263760350907282319889781364713899972599332271126634060959175748983526052106530940140477962581216169974122513314175726973323748799609047356133647698740411671621393678241635602591340533658781865970039219028945210954506624522039522970462462551913493604894074359476396250401682261869754354683102476099808136462012494978746814323804428974833256960946585343174331801481149522902079715175130526908409354841562231049930924178836832298712402202803663330531035273049943834152247057306096987114098141694081915293377944853269647026711000231898133503324546801127164355329609980250278930830754406519745430414204285391673747747755364407269872394547391666064715513993655364932690143277558188776371139106032086209495768216595454222725136438761370913879012306833358879707717980257644166619453888259176623351863398206802961955138386451550504864955508859416326197044208799462537584684160693751913399135000167726938945809936535242569662712922710798394344502234297277462216901105624458381659167689146353109521620585778047711934283106820036598760296881242189512541052534655743299563058604716062784870358541460686316577806755479089698160289017379919698301228606045737866169461908001135803683406237958428737705565390026665246332963537624264637108835105973409779776897904670965053552429099325645036502464562384387336711024668369340758323320307712281780023599756088409077991198196768829916218477696475764306446004517044978976513411345252699618434889176599640236236605048564050363876764156578718614845044737900131563085898048790919670528821587526959141944039311707323093371119478924517771882862683166594289507757307370882789012021982742356408837543430659355641676694876622085869450299788078317125284932723253598316801696677053879892525812579002592548934685337898459998375780120525983423305199445653831548668291288710448265507752196969367855216285203050535442213028360065437117378989871316796338918825381747412880071054462478783759523452825056711308582231556535542402013341423041483199244080082932996758886909875429805597710112052315834551929586178119863794273577278351072990593819991599278720404804576526395581172010639950464017139860568615387836566671099328258129995752782138563535695317988929494818532515008494727268544931247874282093875039917280734079032490651576316000993154341833744288146071107010082087500344698315961452755608867833765652036327384144281968989250808854151309276892676507650174779202078218972396654357326972378950401717327528177150408616209526089367630139336588490843586780146517532330997087780598251596520115282322349186515564417598980104708418630837312422479682870090367669999209814073620357433111203927008227314811759302936811152613271177149454636542571350934652452956087778124621667234032502369976753686942007234511511030429609021258476042573088765055066393820826278419003443026896826662181376097991329332570284700262773326029046835516841833876509567706376468872662379337477319300764435306763017697485920606184173906505890795841257366593976951021848835427913941205033285695997946643948558986318782101432488929530466818812837603020726592935101658411805836395098217587965665187674350356053653386967693536230102742704941525274441590225569965570499286375077058215625389335682129040274298697893560176591378119202483534479167083792551817074575901637539486036186913659619405586713732155523087609110232015759334318063893222805599505164196780225863551526598845426269061608772665444396049800392727637000516306951654967836569733790094885140298804541231806771024477258221861930642518531077067918492853063618457456183804234193480853777642037282010404216515148182824470527838866898111362912054935796928072493570023950053627044252837653850792686121413019541163115357302589318914416030835933995693402825077460502397882826200774014315256054192345710657023471951048641391164133362403176669589238472346783078727353337151024138110845962439798616014406788049355517006650689476379208811573495932573564966889312461592462089654524851754841125272974801585261132384465193859457385407850206436732433316157815297560173485663011561025596219403008329800551258315661926970225636260364372088819538910406561829693034953374138991496497896559058696168876421564145772175124314666777725259687406038637819703115673320985786258827650551927846265666921015660661237313007876801015303344340058188697087090049017725314660878657775287488027050206402131414165309622486270515211253540338398567593836839811722429764643919069752993988536488459222626507573528809756533938592864006403740677993076074801821095478413605077652733299360767860639273751494652996089422786621418318868330071106335655162634775504594585812447554007606041814211811362326152020375853287328006612118896129674927702411740559083872669942409233914163662264780058811633357692665594886998606322852704706279161071954961485549048722503547879184548167717439741368966991538634863261559682788616985321964912127443063138782414725084544711876836192777771183047120008368014941657245347176152005270967952943678524512713464042099782384087977010815978645349259880790919230563432432263101704175581886781750103010855899240629656754798023616068109507882570762636580196970067712708177743104269448363123190836069635721512763253644320323753956396405801138070165912010077985131663286491895816029523202000236482110158709616368842483230590940595321862458551861505978416813429390128154082574098321401340510754052875748473038366100430012574568722884743288532592243908791117228639067202816899497064443322253915793134488521773019237337736528737750881112824460361601254413264379270376385378490409935744842799302117769842079687545605741614707202925920600969825955375450741659428940873504994545390885526447000203347107905084392766432986397765699674305431321520079604414559273152131662049473965989216536298295061197870681269913269004340332323349051524017174122796034780324216294212798801650400373346314893445749982604870287522728311854267976847039699897497063607100093813920278380021287814666387860933293934290830406764643636169560233934682800968955951065370425567677386384845530276631976561169091121618430304797621214466730306369856424357022163217767407996221098660822823623077512421436170851765209388564588014094626924149319081805999598180032772612427334548541768099552252237260660074728029133069471871954449150221493988320560995017661966839691851173542556107848922316646998001688066641616369264056597326749512665255772768597300256973430491114788609086830465548960950245750056184864925615510542330923071329525202580846011607267822522544284678383837021634288675984935875063026806369054166871927924013141733708309226393109075600345803157701063448108188327818066520770018688137949164682231840219235344659538941339473301853878077189746249908639366092868048160107230205949614015206243494514617725942737873802412131101034637782566153181010295119112175132684468490746790201943981437339786015612416688872764977711835408375377833291689299599268227953210623041027856278564015796318198952958869592810668519127888377570410282442136589178677409966648282955693190865508018169342905340229783834798340265435025343837102885925934374568138373922929488840795137199931776097250349134396437842607634527063692068509669183447137813178382850727228982301943730763972714793367598482748040569838791406979923798818496668220085108329345803426062624452551105620266029576696716115007290909297819653448031124758184008609523086964168087393440392439225779362486412629659797420163289730510200987368575935854937309042856709902684570968784851554130866342415131952817037376926077100306783535360273225925195940234541382749846618743328780406069686475956701121895992926369674234367959237480174074639177890926245511258823054734872893246648437912656709372108879503015911946093951744186748905271796747644455769751249587592642746660452321809302065289110771802612929096061414575900076296882179291967367682919468569386251045276774195448361068134292292046134757364311380318132483611983192944149189787278692842129310597574064412865984417468358435088518788417468787632480070616572457194069796705318942421628759003954229441922264579166483924039084380341974780852602822544196271959754881923766283026727578787134092899667631490073714101831138670863926505724116543003547003448016099386638316668914292040152586737184949700228020246944193788804751313666339840487262481165079550574932145953840301152481078025388761555811819635723480645453178830430946557705324123321992655239755925326302709011874513507450834133266790624724504563329721210653190011560334930613738819929755398361120087276699466716967733817295186356477345161010332551032894841645926178314029759739064004007398820331402285567749161535023649325591517240968057002661723775015837696297408919691831678953444066326020735123828496859245207152475836311351807356192848689150235251567125417874637634746910676507680140187115878038147506991020056732402504563809936445964092006819781409620746984498280145512734605312647689954708791301919446483649510020629722425331663650816181166400599334850197186482547498033926525676743882787554295897949741395766530987823115449153903865406270146126309406027182087495510712241573485329464290380099017871271038583979157818249507528167403092045976967978447024543419843571164323415594480796651488928088470527983490762841548499640855826955248767808559179780503545399967515203513847113011306439281592071803209025515257765425248592797783158092155156904137684596159972189490342971183160935048436741416933061030175003189576168601213256406467451760449618669369830060086146876910825385688252047752834955699313174713209847770335671775383704688477507102882318337495322914202830703439850170467966920481919824588129363895083757509397839489918168275321410961358145484759282078449009151080526422651129771890804830914848535044204696183951725463911007275567166031202464739615023426857410950171953860599164222941431658659921866532532813947672501659258950592940314078644036224898894624597858943267815264894625469710872510629130915006661665518449780666113394656039869134151986159219194788398458974455754696219339211911238313597391083734897137371042566242002812244782210019169671796472243820389847265373580434551557965080461830156342859163511132765685920705220513180257685314911806717269110278414790620501178365695271371469717982146347117649719035004308402713867005661305203288969902693534970211366931550892545825463906699645096576584741627975125090505795993818770066750409679216133557635438013354695658975706629399453203753226473503050007151220226838671777192347496628853773292423187068837941375175203514803107473749734151896201850879393083519133862892268245513814164896113690597033088110312908109556430497698896604747539206139055048876441137679994369289749254420160078402191687170048988666277996378300290515156488652274342696009076753310776349687683783554203983309119880490079435216567906652960606614197450858019330719681163352015032508045607273460459590748779576399262233355249841475631076374872991941204195184276354920152745746233950378300659333069880012297111538584950683988223025535610511126818646255433707356635352604525315286075776124218925154713776835512853704265649800112187426271507503380748173400604184377653567860698429527879839787703696197654584793207769946262224141379142483423715674563376370439509691950095418553062406529328682995088927115035107845159619539725041252918762586247281453327748880889369052193686212552369901761726939195670194584947150979144797486725969026323566368340521987670987691070242342603516759915869076504882114135140486667778250725240934494898394244960833020666226523725593201550190138714939293583185135837642634770830299917123484125295359429030869186568550101774571599747095133784508394902227556515257244151510144614034522690507820455275950899562162442502096995455544217177865126216959615734587242501082089827217558916399945825935707469326137710255159436994669435520293254619505601014310789207795392461885730056054204550828251251664477241875262669590677098246185921840202451345947574808901545805720859932623763605609839845207556974978754066921536634074042206022426590331915596107161561226681919517083253730041282162978769577441091412420831724918536697288074196461467899058592515638669774650005027571676701681735141997531906800248532673572854140052028211906911355696395137278350099685564971547703578381584413948563653220438213733861146105704031580911006900332151485425099295870749463948984202673271092502610196344602596559187363337436492826674968161356242304112740963974186927935889459777962332577597090321416740202621475501636458378534778495164375866827518598500737159265807270676567576984535058445229642257689396955230858929765355250962827594053601970919808001762959576959451480940927791756921648187017393016106591872213612918033544833881918267393988801064532005520097925142732261070584882595840782161325448789322167922415440746471939233253041816393301948372845921879329407590433200725760036591144742815507696278729552114036488221438396025072454436209817906365081627737662423235496745372273745207591202328209593540691987627158410427432747196343765138343554479787390102388823750119248225698757245375569765771583418603763917059474476949136417461342875120540664665863000175928381812609220324644373072316718733354283853599492326762815047467562386118377193834965004110235763555936375560863286815801573015780019402296475100392217504532666774556621143682068170172864066114833959847953323227903100104826950810139746851949077780805423838249783164952271742736303590772940319357368294834447357361345772146926965641223358481030857998301245215395349434445473670966246723114649610182047041988361972349783628594768419671559700189411485212543161994932909511873775201469706328275350759216357507985598037174268500637470307955641659056738971642811926456751683423052005415305340068477043756788161408431702478579615740094508568947687492632874163735295301558496310376656934264321308959188907025446187648096444538339436928957161467212561868391718560815047162732607203675029623918880169488787878462452828160416135794985541921890987617133371687138336555710152994219888566518793465570293559785479157159944885786288692084993847540894548004249602961368338251897009505253447252019737826672577262438739619675222008853966369881575020183792745617119652729815685907397636563135751818888158290751105448252399389232492893014861588526311366285150975351216212200849382056212325866473931905430692547232578261323607657775128427494637847104400251837349228417656164711929732173971666634370235566405249534353388934397640279719659880597960974126864027836779292598902900968224080546996219371403091238275695513497447172210890007437889811013498450840376940308872344674349093345504866807817252988299517711290220926986487134419894520588689847379525253654817430083013450706268662411600737510868516002460577921416267371841769257298007992207877917039128818413428112024748605513416254046757782692879726121723874813186029099637483192303155945485281196870801034751719552273973855752230078933278079217062881065252888806936311692568750169303022443289103682902029582187804871637011502863800007199173586506802412195142643114962526795696400310427845765624788324409819095972725505891144457508218708597633947738953668802886473169424144362775180192912695858025610925960173532966214629489507931881579200298180282804632731641696408566267938576570047482800784059340383723060277331054928739508076236482313250037907472459282264336581223489643834144965721622435552091904377802136646988389679089971605402136400450021746660835738721229839194073899724579463110598906806822700708359832647982073863294208186037768354207877880731024805425864854193436959701161516131605511416200238375657145443228057442185096040027269962958431214061834501470557729393636427471748043412589435793320699598593059327462744734005919467025537260731805584855611554835971450448174176726961266834365480028158332618489478919221233048152246065128282941879844668263196781457339772221138409562240959124894770075728843490807809429924972789506931587913149345777224434784207751066572362129310033564936783904976563119258632775587566829976664966638117107631376952945446485084104904740795073707502460160380997562700209500901963893611175722081342156737994353159331986650034713433851501229227473311611524657656774209246721299692599374739073437335955603740697280456006825306373854722394496764341149089079698220430945060964666552787048636134997514825780888179995444254577489640199100505774951099318123209532222957306222226154213672990615404675221666963430612311885769801524923856631297079818613131352906538760254906988648755784286372794844098572484421462083158225590774438425860963146399299299027336768816248508376795769807275145361425007663775561835256972804306935719962116297285601644098713029846508438706592471777554674546874770776715019948373919352536485105220481974684776294449439700566789758058387937307667411837936205099646016086307492162727259030309217223807915693637094813430045881053928853773562087739202084094243537375473345178842977851309965404277027042909677222682872448979228209458251408503711156974608096326787474057922076814300081907633875551931727211587101393453728716375665032082344941040825860180475268550373254602165922851373619798632286311512762942230505346417729854241620320150828173290110625946531493620216818212070905823365020157691232007196381460184076362353535733078482270131265947087025624285701543963547136821741967935362604018069325594539539831003515238050190160459499018896572323634299552796485405770868768717267276028322353871035083322056547660678580374339239048223790798723281066684460555585145847967037893166302723697817059710937543855715276328785909315728728119123740305028240162357161798955814914579372200043413710539976911514915349876075834425759767615760439440611402535556142369573865142408734665301726842600889880782393293385596455523234741402344196247893164870182091607462040749596659389997471152433432970299206552720855154429562733636776665183498459126804765047382074687885085746948965653871572525513967384205917155503935651216568272896664011635750025168316697181437000416354938483371764008666028172723947645515155735122788972661829133524675303996871310336163052103490307128345940734091614885855996766070530909214717858835055443842786074107754078130108559573618306181363966033857940235551996252758484184960322802378108015271784562943351080224394862189039969062504341896895441246170752210281492100144616499961634600382722950519703756589785765652357643294954938886852397027427007354911752959889039411333851863500630344714761816590559168231364792799102787413212390693370375669694775543699685198746141406183750907842804809260424340658253468427990844859596922957423774213373787773088103083212981082611176486248758015950855526845895397126715024681078769761949514978379039181514960342945875481766707666904429789547756481894867643135447148008150520662021750090459671797707520717282205789124482059263038063684664147564367646834474672826686936873122664702823789092861072483266951172359166281118890600509523048848383892571355591323064304024501629702470362518640088260504077998704509335368306791055893267766036650582698150264418481352753508565757340757883270279789078002549772588378676374421984297395884103005728361191110190041747228938263069924792547585068117471873430120877433831200590567233869344791678002216908031866487599294089112479884486865665349860452661530363146037413691422232662294919799480752012299045861300306014037442890745733835902174231920978103068558342091603998497025398049854793862560750292876341999444499058782750573409713789330577558857718445179233756544372996448153899095075539250801361466499423995834116900934046849131284508389181258600282139137894098061476750083507499893002938602694954905221231837958982689809762152242706417182656396271045857437852062213686119564113309315148742371160028300250048996598668677923078574090512963388184279312934628656908436510118130694076032789998694952090441207858101079929449182237002149948206378635393872542362253290733944640051125176482331209341153426578815327645886254294429407387436599770161166809709231817965073630087591252990065824136473023283067050817079015981225708396938494303916229800740827221804276621598930411355102247873707629929562343365674570265344262480345954068742094001171595495706957847416559298909880149499166729709039949079982164717662551284509258813800220869187231167070601663869665970110137469204490299020900159917371995755299249479819696821250286111991877507650807458738262171834936410635428185369874523435684535407234519720784377966126591101556002703096538331574224378529653673965599150397107351822776881920625981506302423792447022048154573908060068220323985425987949539529789377157395194622382986278198683496940764643990927232102572386214016805310621347686100440009619239987258091754718449091874668401957082528078546623459386825095429483028217280971736438302510357273186174483762629885392515919016296738725291558012759481260225983514589873841830185284357019817187515656137359897725995514185889797718734886502149034700785766443330028523160372843825979887496190197254945071219437052104280091369055592198150207566106671568940048362778877030816679539267087531614624017987144955976407752805815291900147294889375915985994268860249577470613290339568437019743920011228593131715528217275214919683099369343059030782038364250171858332767612530220619280542716850509703124194260363613483930044515451721000663969605604869598645404228537247410964919626552710029912055051008346776745547829006867893130172143298101216850829759448232489461135165124867840511797062095020166821030986555657977731418897166242476452437105594224862600378930967661107951029945583910524760649830036542692832970685937863229747916922714832325617146797715741198049158416733306467875374580518238326843435430196916248328065798487780531334326496194355115711332949500104590556218410253192563319424000149534715986157665217322616056020871680888570531928336002987293564562800027383530460019259484090210447806891595683422894534132254474650332348288120399516570087220492553798660955624296097485104372810767153845723866377956840944982424065037082516368414313522524809497285362355160282166949609832813358721773375563274988669419342412511968913171911529394626647899907496363636388150341726006026209557208960115244528390923527633897041690850304484105869303953389676773126102013611529164424982239938772024557388641538932042182972699434548385874994827627518808833652562989481091095325825430394251939654614660666144796868388759282991925206873722481832710886428579599999162501833053880026813406301965742827470687732207112354432169596265462973382694063070831693589709678106060784890724001193759379438249766664553796309419758569452168479144436415866945853323040731597882610907365736200528628349099970117575670787161884734472281307954823526275648341501814631627941127632760706508683288899840802392241389448791754350110270061990074828967177984832194761808837601164677046001886904989015727497194667051296343776698856931665241638319760997796951944354639145230575054995274745266633500950622874776538373374894707558843289739077087430114799921745830398568206938390896749809986911002715192308217991985692158830742097251400014994614185405087414206730078081194245204568613500095127570447446658279930830426957857432907916649741999127623522020120782962502317997465338408730061814058952977730849641726666203061294241822408526280462640264456832167501625324406060302619241523131000037993507572559182648063269756482720063438946624623868420817940864889421811895720372523947500594512938622813288456272231978165024827032541450952465755897166296438894126642527330386669342242961605040864748676421644618535424723783137329626244139247472121149145086973117353273890443013570036546103916455059774306280327961298463403914114959625905406231577448661239933771779690278242288455225429342398565844236617109760643762127585196451693316710195804175373771793385226871613266201453250132873165529484764527389901044163714822698676232688700762629724837904254511943913762065344528884487692356891942256516592566666572174820761423233499988308603117051608358248084480956776688015794420271471458449649901124542569256972499213529769793891899342408777433537426868598287707904083029501779554237307918848676484059090063389261873907761216094952534949814883086913100485800113690450172596002607681368489418060780431014957283761101361295216498124390836545788720890624681903703700498777105775440251227941845775772171343166968301956060366087256590575236042656512186430680775566190118399336782711913923937769246977630385018280865987733342848110615056235055719423698644223801093272304050381721777165406764084002118251991059961733585145701261274431240987743150527193587486867828722200820624054873256653447583303938548956648426515498120457748218501225361287583406325551264685337774132823036664900668412211646257207842702381977726638211658207985274836001280806800184057110700702927656282557527848345527771846174189883041053506018859784957158477192628895139178651917007628920328196343744147467070718782952986510065438915735890636595639364855396723171124213781395690982654585599627543157518502486769982324465138049448981899396516096484941781467918356330066414532444082974268758887141004040234547498817916042984136145969074900352160415225613703134574677739812201750671637391346804305043013580303493397728180142190606874760495482848745440389537744067526514031927944157820341665150785342960245000721938875008886927193778722101941801558044775313943267285357904723161861225089892120865190324483462588726090136937620362667679337421162097134233750052402767998334215332310895898643932319923787223030430100881144322887417112243826063750247156822667757666788076435669113953599265423103956851479126158701322529471993266902463565270399679855948546873634175209875119756717149875470348719999805871707476006315285844875313056829372722469872024023056604077767050865782527553030914410859515933303446405391514021919586267892602003165932770463127382968423796284821068120640811480653119546458551725384795487571015259766591757727840863296915525472512841729803933191684161365444687453465519832150605654677611904853623024823620408730179958930142969057145001361719355306238076089094526006701449007037244566353981827088837020109752242448904030005865851610060192204391856284827108289587797871311768395326698214777510473655805354162230789759054350664857980481172540965978169063901689091001080010260149725975669177806755513681411547505405496234081626787990457688855170601330890787686273634445717472782641248650789537401690718665672535968436437539079334864259908922807675380080802310116721349227245266780932591278935693011829870472427768645876381787485222298174540496469239374625809148345154404385833487596405412041600245545068402491274139071328628537739753373113669157591092006928588625091866449376380321706442204010283044417542214945931397941217074534307203391651188708553723166923049932548302457052235165249908711312386606276849152939412982797346561826532549200759844223118337125850355113833625428325664314577193433170737607173225931153340554315825565252808827643180830461350243728373089765001341201867717094869990067918583225809448013097281829749974568611088053767061915850769583729185053371424162475467696920579478203303732572071561346224514177077241214837482267630688487635919048742189734135236345642986752123074907097337905475066704596638478253803490668573248396538032248814741920958273942684190507675351856607338841684999227053858290760695702751586868752420095280523650874523356603652631506386327556150267991180669939466537608875158773137335725994720734416778129672691766912291585227296236924800477966067964523946750590290518382283011263752567509145154958685985675699367333086281646904102851650435687733134836477310837930175935604916289050195118864968254729807894656271545865816545784700806472062142367085864359674063022543738663954724430253711389533163544757571644887845634741053211520545618693507268843235054110611471311055420949772622092576650810056994213242864206983463245982194596196427070025412640302653788343012746665434596962025871868605540392746046467900639747521407952418930111572944897691611075553791101709169554902314549585675535073079546454194161687595686676804073457722604905270611605404729297084536598690266496105905681829929889838623361079264078136286113057927388209841403417865502658692749421327695834980734587452789100227898004511440150084245639322209982857829299150869771809893242888093035425576658735046929436009556661043224428174212614715234379441371817979291344984587955417780937441797403871202222535975199619609974010139562472385358642054622391720933989237182183487721543368187873449701386614563757820536152603974606135887024599693777394997290905381399775641909278000816633884685965071646428976268651563800229316033746648143725929934060298945303704658088792379308670319377622548704289182140700781905555388274302167547777026365217474300820576617268382393489562544767123728240215914867247020977120926925225204211329045780830028156241354495449725104801450461118545255040382541673223917080291048443736169162189997833642467112000881242870192123310613946403241937238592247235621034859415540174785990959615231236957336989604351228329074704303495697011578329848671439556717508599297015233488614425648103554997763020938902239609129270307540665624076519679208518157701215141472364358745259602852975892500096596447321528265393952473009275180927043546900768257352352265937315508365596981950341917300774590348264207911659361792246442078386478906433576347244428420826963800375440280871501614643568925037105600302540434400500100943365328337887446070991834071585735282847830043080765929452586043312540789103735888549585839704348923137978556509435479033448752009820698281767052212276732572516187935938137066022886688045142613591700957787751601810779120893248831388357532033335041994445914152596025069893047324363992701336890409315102094320198942722956477522055058094014748075394578202271069080552737745850936492739946495458310116215042965680030055376216904641702925063296478279082680256616670207697867092820998991392633283666255444657457441148234896810926322485102189274924138320924283353210293769801982753772882569740923383858611173213008545980896983140725343071783414568199195340609649553533293942542408904352174486645399376455593247272230334465265076090669385067533451934699416823820427773943169374434881114653627342744538994437077339089223776283659008822162117067858321632446018997090119440705890241566449149329368788397982993048707313868790764598617216725879247021960981599411550428949114094903658390013352523727215535226097526554135208731993043766198570556916374414271632488151652453643487899765920370660182952919410427196236867298460945883935087254949559403092132810342070302872431525665339220914810688559700143330261415594769821264502707171604071696540131354251110801442310359733220395998581926791715046984174476181143049623927135759800977790559222456918115158515277859840547636152068605625311387240020858060603243187755582718198631340940134633340913627354978650527444537358794581847156307286524315516806276886093457392406770026692938785492574143446650881664836500224031575984992392873110365849872960603606136794035939915348399690313946914473787537182907722349470038384180472532459227925678026450820996569728706759672032221517776573164063123209862069769767363256589404221100152803713479516972474265401195295738272569196485725435624157608589200366076870909314294672554611138784209209776655688050862774772509645037078115229095548918904307919018973002386470747256709054522816654291463749919824801297285043120210490461968905781110503496494171886623695910919809127632025756081285242438561284088048694577818805087887826036051838324229826578232168901708675797155945715932411297287740205474477897792477311463885781339944389216498503212140019572080672013845133744893754653320048726810669536087015199197637884361884982275841099693701803154647453545402609708092285346584560362397534166627095561366883213899349783117849923529530363635903221999029425135577961098357781436320735547779723877144585808513000898356410117109038403724648719598889066187546776782673157605783792445813618207878021050891015930326281950832027159776695043583921388683330799200273433912087687235939416559368749838556236649369701050744493989383605119388751401828271214649806503155080106324643608773348622214197781827527467775299857911467368766925634575009623721133766219620958268995271248385464202151396064565071886554282714221542242073627457173089364389746794401491652693507735547314598722116703049640286561793719401266933432565480807321003729270160293209498971492982287101332674276340934971501626745876279467841340454339842996605648511922603402455621095488295306230025835049946839277918308068398930121142622969981133804522663720541304917930610063708620474462669989682541182821031950665881293643034750792490872590261010180734476531752979473238897256146083270501921609679869232046498926184976614893582106059859166532018592727181092919880972070970624085377266033900434255187734960233516659374790797646054659637498438903664204688937226739253871104743243497437049108978857717173310643342039338725981340676365343552105409578889755984558349745468969840424754238082716899902987317492634254071787243703964535075274814117254461783207005534218944023345682229680491117547136140905524779484594372379262527599664778504501083220794185443028597541457655303812453132197608387091286269116161343263817604529851985904039549319148856706627047765292337386722328366393726638021891441777012300820658608885827065694658747023460799922532149511854233270049831660462467274503451661978038073797498542534901365670895279657578258962183254003555454864458608368872757709309468027158283241243229455860740213072897325770257454310494458055088010130756954313470178286516617263350697629917925394301813351794072053018032834217213793214028746090121997699509752745720729128144384264523801760119147675218926330460232220332754165375534166039741742858727202813539086780781499325824593748146112951011948111926247631238019997065699857704703542187425210993616826863837611287105925446681290903265315013273036168422859409451404341088900913974933604832668183106370880084461315178479317258186422984736731440913529619996035181525858703124528284577273348792109662786883106664705355073226921378485163092438115599216642883114871637943293828631988980273700015644783403265853898472449155400367541277164840938136451990565539905959110949080514639455486762917535155017628022644834127579917731593993496765443810459702475915135413705372447863543182504625042467153048216807656775057165544809738962600679879929562306366059153041421399941617601542962924825926921499339415622838948147416041030008598343295104353131781455098343661065197039539964226778824290872313493340587366882369360366648818007170621851663476820228390590482038484444625520474384249080912081154186579853666594105078202296348663658105628044067511109694014337684161102886436721477110049304222713850373953599591061144759152015865795708905978131289243056214446116343915752213808815437364998297131654533889756885732035105221824597200126033207414152373918475700158687963061991423652233258702876034843752151412772971511682713475666564667938457617690696022433211224612469463496045603655975770743489577721015424080557968643812031456497456683167017082587905654222780155566689971080301273033043117811430636510701666486455808310655570493036209476792283253263373546036846054021334508279103886938437016379269760043349913278619533816739914157298559834420061543088407384515082916848803806864224101827207092733052479892890543889333821527794656873229784649627039042438906085444192866851877761460446946269068586334319755005445878093073780839409726140546246081198691859230255763886340332641048417163450654919099398259410853739494089399474284968939870638539517755233071354154607226312551626609521806760295864051154710592147362088985527431372129920990188203937549498397295414642755975305563894563319693623989648821275173602510937703965416366642188967086332480997782073691585311209195297781809772364379786585165128878437390031694894249373099792172327649063416107872541014818881014300516211225826534068994417188165579428514375808840822453331839992307843307273808807380643980372743257320564138576182587391177993733572898141773766735178372841741565037938463782158994605932404784095433214935458179507892384808415610466325830747641691911047119817129240070305737500788687098746784518386817967345960945958069151667891184146073531109542323487238543086798082396138916973388970643694906094628463950152882449822819405072610075806029614694628303254078371289955867160817933670979459222957681705509545399535338543768593681142374503866626578530367845677259594381811641429030803797454203372226874087361610946646728000289096762480192659899958573937783037732677947609319597522401155805528970312218744978169976626740285257960528328511718257980844454538447246015638720808127083039188845595623353001856838027112684369456366424678405910161476496612138575129570478556495097479120175665753620562945043879558897070668386408818562762757525431463448617343009365750443311613768930226012037638354174060681510504266093664843015444958710741141860863781089988717691613294983170551849947291461792878854552257191284173231334978205691339936496423017092307083306889516090257777304852368275868992101354203473776250375245766091036277820023993995896578911506470453977908749464390668295779836012516804990063332149728480190085320520882222218044952589117637930179423067104823715689842948980245851884074167747190049339659962353245679097058503681541238090124350068108813700126017070147891267367293456734955539843313798208050296434142046579619664277126314715614262376173821148942213911239388586267516956809990633071663603382355626431832409057414776910709259530204920277391023461017793889926037314554095512598594643780754930429166629330654841494460319581306274330902624300295731191855742500892121917283079389272176612426718147481832401993808433411587358795507849977232321499304055849405742480843225868820516758385631256018466767315098899319087406228744955742713345016299438541887013266693057850525068910432300670826356800062939300384495881652560043945881232959073570583020001460274172486078177071594001266146907510279957203746364720530944677493848092059160752135636790629213729394528408430077434970207248046053847149970497363384329485498450235822414976914270788291561646625921596236056403689148456460909885794768035729861311478687524401730734016102779376026520830925795183844344473615658387215087936558551711215101791831751251790960092317273887465908427282243020754777492986856060757689022502391748635495153380534580293527106900955655500575872908965800448680463260691547768755167650142803778649210738333696746810712692505248964170330602916625552363601130771933533489628667456000846283998578646359216805181775036350171551016524666133935038167507848159613953194081255641344162565763467350675104650071317501786499109076797586143367518229808824304819305116837461180132977793887117758760334746852334283853639971730242329224771145894396436239330222757977840083477077611474723426210009746907992321001906736373230886024907029465281258611692545928291459614321866844420099273881865096454201905029494412408797705785846317158386146406118797640487010936082007551150856230974224262634984400978005483559158359993410631939340676733338646781205215477494041418239898779056266329425817348311880388568373258933025316724320120918160642653336114729700317127229662264785777154148963509612304592068244898093531313707444259492979149989029383157960998153900455493167988761746504833216835779167803033536156291273650141519648248048090300981534837007586165859353012256427228336083063066065039907392236571646811400741977873865019333461220410229720471288948521328579981665345688311083646818720783564837025092762578678958577617797745698531465866321293563840626101065596462892988002833377739842114736381118039471052399173565275801083936214760752567383479774868496968674168758012404243345176434361246392256466992479454681560773017743591485599471716622288943192551358994429300843086531062060972288557522330765168772702767187127588773828982524370623642674934870172117050670245803179289441405959368256465515612709853664352082281831342084678504695916593633085623274409987890048934035583088081667227275247297801827256354482030316240422618044327830921524235552660385439023625896611559619111089286785366855242755871301880766273507601834087706078427221313537452405034839139813287426136014536297540300682429118839041608176031792696874577752919708391047773860746710364679715732178130414427838860309651148769928664427655780798328925139891871728474110024218849631463753486165178881022005902505817893027189351153942746227131396968197915966752747324950789195754081971095239065411401953931733802614510984611075196293529252181045432749101164890494092761405827197328905232339181091004350640079251539078790952291272409942146683679814485274628808975277788497450815689956332290482708817333033895178392863435954050163151306205922714881256462235494404086585494258971598559532017021388384401201939657302641998770418692044579861159536593923003520485228546203680523420801314823607687129556137221640961922103340854934255411346364657246749508824701155694653506421135067483684939593513409798116958998440700424217835277054580178916402541204699894229430634635083746382434149242383690849252345640756558482286216342263018828970756181717970873486931201744269004736972431406770824976985953267704659601229370315556072959999316356270112029331635457280835198893055615862823099159958320705230048946747579679247424749204467512044689915973356370216133582352039487279298380777126931708093313032475369912024892842342613741415046582596946247714555107881865749712109511416825613628428330337972244896821303428737563687778136989300376736148903148519218464617519558834194401892895268221234598946266592400168625981026996376160742438041230218200131809585140609830168558770571825910578403651738903404827200349577637613149597723994901351912957266279462338101532612554701070458809978961782568358765793692266791934076940484340385892399747218505318186993292432796616135222826092669132070828859541569884477556973379926782502253427803707868365902401293300727440986173739471920280543299343969028309021245405128517112846231688298202737326039282105721239008551970536559998017297502539138553694964130814525271609291899241694986729961417190575102680734938899279246745035533613999388077707284693762327984277646561907204085182718888550783652989541686114439109090885511067169604866663709209192286599792905312164709448344444543250214438109150252634466207149268991003951730719040868455308978124265512681373033718840621908338692191984071869125984666111266945987705180360355898829127935218380069590549759265561272068204238642997280667661876979440051299836004629928158072983019859947776233602466030432566914341690568459170870568374279216310133247327776446658114043834874013389535411640924487314413723974397616399844091061980400850572506111396637088423676116550747160373263896298037214039366819839261533459591757494681921969486557179983051555494356916561642261418954351235943150407181166105458886498750157317884901128724008123769096638088050957344917080408384179858930593812208730811843481198590271090263160174953093519252734537422974065162727109229545403666516007423482290336269547823144719968872723568206472310269858095774226121952047663553917701379986684190576971020327895186667591975293197422149221192932662044222709479809435739416118799601594986952190109757491734781707802885976175876285242083560729657082725815510376081682201875003626035438069276615479122064085813810419881031755777722668855861412136025410295600893541952340555303829143522933005763113758227817767000793601406917241591113138708281885117533599744615814927844935757978328890233163781810015475421096992482559296646007461668943780954047687816979608173008209569590277950790275863316573615755486061052821833969948489534128286149736367877700415193096098541976839734517246471457056573970594689985707973743030868068141095580267462614448495883369449446916451482697164336165008193247463213218366510602642184720149224653560354196907266428517870476185988930163208836034963587167907752879311095873024140034882553407342004015475820850506932306486012780241169519103105903586974211645360047370063575658740729945639161594792573196740188034757466376353742854775395937459011111432304216326378219773996967992578511201406252166534731959924876612914434989294648109157875609188567491745745914115799868970139074156994472289669391042304281524267873296034868893915069546654785435643188488594318606696169738627290594407617231981693756398967507199529891730194524700800047204389939312812112823243262982026393862486441227330105606923823624393102333072451753453157565758439483761510344822639506957244435554640962654416551074494066156943752878713022385321758448624538399464454729382475285539317693028704926904870257662179237334911959072706257169171296150536128495034246977873114132130906777330825560789555196995746632088897366493249440953124882140858456165189983557082840390064638447566561560412742198230629269046635713430132043665372607969451432980593843518991265788812540712828678674644105021713681572068900515478699909031240958041863183971883328722785644536319780087366130121182258953865603719595672230497275816863282239288654594096954120071643890486131035717011293894150978175415772159984648881787572707139103884850103741037766229034844210015896534024601712009424246374392669489499105700159599476186749395879698091645846748797262594842663132948173193142337415962859103128431882915774171712738508824407779056717742466387930488347984498922867750053475820607642560657049349514238478633369670498912274925668817032762225472029948395244445141599457550350627303650064226325830018178796516302090915386556440644634235231496935271616891909369152276653087112122711963271565917054461418298512936763597478482691945766881242275136221960838077301181198118824055102246765701689204702890505588272930117620775373855649411642083867901157419817415974341887335434097378646204344598280435051375460898876178561084651121446109014167558636402555203661237771403870443223875036490282404849303551816176986429222165374452608087765310387385903343441494254363607192606055142388767352186775150421418053531997935179954152289441748631463523837546665685772442098204507313767704104821618873567410728045838599504014002845271148972341562270800901834691926702599340538397278996888001284087404981428954039497627632676746497599022431861245409891787178637895125019803596444219193113879013822459777809720230263438001805122506049758846817605898641722247547547569983432337651197344606782928129177959337850110696752870962340820451914698333534606059876875405702445348918497879763976781576549414209176594156731696353140609566389178477754704027514413576227756916243464692402963342615933259880836889507025604585742549249112413154860387553823014050415032730066599047251006415682894513366445858564553113420427003028312748194772586489362643148011824364045041001730312476072609445248036156649864970574496713416425058798538709817879888400485783390671981954417065958170773352866047432163985879350393301433214613015950725992337854292362645679341378874930436060324937636572776117239702219031247297085583983814729885601857010246195801801909391011236378094484690779177279357945941846734645594473259345873644496900636580449243757250325855563477739853713114993576732733183641385434641569327436191709855438445921474419759791975995494343788104405466905479440898845484622509315547715444290645838195624790060715060995011014484419031012787036172766749897446874640230380559003555415489018516840476866569115056222646138966370144428246544114080908364824171246685965863096744381388636968725020913519758129900134989874930451680070337247439154512200307076401313670069207155221002247821557515667388092384786287328660385730654248235222407270122458725240082879702652918420176664208154937226254850750786206828568036457310572592764792528932406393698203244414875436424197523251138492365282610548851350630259672828659779583852496200597407036242976353538977197073938520719749836327990357688095696305620376381020429103435260954939105366058022202673392650118176744909711154005263818578093677765841398560447434058271753045880421155589687698945956256153482248333174863510118415235898255746919984189496853548865514223015122341262940041741093185509732347426328746567350804066337665684249837880515021428029618360912474553614093875794891778978389784766660151779173957740623569794201925134097369953319100472881578705369017545974056657682068859104997966938805584387481811291308112347300742046655201627717154309932488147263682663909818428636306273248710617317109868119916009896975503220861506503907922755235553995262827763706931352287728897017939136773554669106126188809628925171626476429059690445740020327063082762179155654007811754181248803807001444621239904819815487257594234581772612229229137833215563779823998704794743360911924422457530802394023899009544673609892650859073192471979864206100760697448871650135595062170531960619472050162842515576658441871201237174491407572293176091189768051354725929535772108106642100453060877563425396116423456713347511844130414369149502184489666482514551436478569840590835564599308432171820389549479870758072145044925843324404671408929439199498344484557668584726417601229942951033554119713535416921374477139321457226641654741242661515071816627229403231848574906909883757913752907548292709436116633332369380517071833873725508164958583817008278547225872864275400360945922448081882139651892044219413884782990605434688199810788183063747415257935068952324492639988297985225518247660954219986387627121626110317492074494405288163980543752915194273736829838643444991866593424231041033092065593502423366359312915408175539950411363177123128525734199892623361092926987152046274899832486240801375428665248678845043912869421966261418786962345482779892916918781016765347910301091450345292549182746081211373855703961892778634941998855076773173824943275972028603733254432634263741240547674302417345873838175752233369873433095073495245451263061248415001864684188484806007891592839527609158615288490118653836818071801420825884883211187369200205286129615928044574507029871429586745466308121629471120566561877607499440529472101294868330763724683889709451353503654758301345801615449433414806578551276950498677274689961910938215569946748606895988169846167109304764784084632918814365657407050243567204147669864282739636452987319872965497467130959151960383488014591070237583282996881243004284742108208570376645842775130907729932525448755714580572630414754027228610093151120602853007251636261274234934884309731861295442559987904678326688128382794460604870691482253577432268008089117856547888266821783348174046397335301181714381007026064934520692753002342686555307374773798243117750668834772765110937838834275049872011871972857179308257694151522914613608469690243374439942365398107854477572281699324397502557648387906672739068923900322840586603378144704572577928870284648827926775309559775514534692280050594592626315817849894563145564136394943027702328067603396137225226620988993483498006497589897482978718609325732884998630155223505308208482543202691718891409390424544285338527620841924886770670025166278240104539927969469032350744454167141273536976652560040010590830132118573760090314751808562594860493627419223851216229033470567848070436934615901305941357096753237410488359568082878967366145072722567715930621209658711508624504130454652961317589748934331217165372127179106156979003652911603026299586413632438809678622172244616487847955260585031325890124008126489597682666916384232767499041024991000479110393814692389193783521695716672740626745971487126439004379143129701508697464505305899434690675311823225536920634391399099796344509979664313254645737195283958234678472249111424245752659188017467400408432248167335346881086496351948313713667204875551358053517347406633070392497254820666323272052457256508704075607604418509795916230710076596379919770604203573422669312829613598965841339676129644773866821182040720600449003914870941854913608832020651184088264410434585908221293711032968079240688889073445816013504725631009150724829270065193355657824848456414233254893865603995199299358217183478352354934480337816584659885774999617662031012289625703972495287838584776959184217213596421468065606592016511241017328004242079962119985501214733394688986358622907633528100408006694515439813306227617966002605708313854084031569608577167080897580989481844508956558786703906023874355057436677520182012522058521750377528261116152317397486028774528155614888102358106220671001694434370468968357392679631613950725175429228597156372543651260014210724334555510329852988844753140484219457685984481022612746818491806935954417046656937599711180561104045668578459181948579261993802957809807752424057852587013615658097406012895288456786384203204251019416605531988603140718608245038039059985624742529063123067718311239972456200682931815631507379907031451197103811802722745047848542297240576446910909307127597911077349137108895356358905496125238177126729583648587677363981406423089748885835988934746194084846378802854162079580895820629198665622010692108286564166263539340827549969571395134572902967332876739354584872924930805505872902750104170979892823765409600226450395448440249031684521064771366879236021628721069341266195780581234427974409970403767744000478307298260827476471419038121945822456043741227989741086343595839228885824082561372729551446606325041647185559610885221507866502525775377518479378824366162525186012953658508374795602581082937603313398431105188374292668908334022778143275115747803563344279464320040874857076620920475527765536706772125774181839491973706128899782310542562851744927134806122167315256592444755775309607148171149153356751475749417853666641126352216692349662194213100138349354758588926139889306095342052927268106177188501642183158230835138226099037921425830802974996769753447882492184861807380592835230750556765909069950928762227575244991169885386125687899638886190736160425085364436725156625485744641034229201611063009627278510926115783446881617943045270186194399195476132319941424460046042342693522726501079777770304659761651168265890284285159924398117852244003097488627353669471390502789022142675122901116775675929615268371888630858437671185173853029278010611116849210805172813228237642268197112749425948643635329080154684715152714620373260041561625602315795861942021161967471897919158596775691335386251276092588977691167754353480267771003211238038808194605447788080016032193886641983120470141154981909036212328302899886072836772128295919712141664236486644466706694996460422576029626772253541084674193937511062514750305171115834050893112360734039131651020172312820051440629171121078886101914103545629060670963274725907879387661705538077329545104968810334698953153453695465643304347436254129714928532810813369055453946987160913660240417070949300097617933135839956223707317388150821376710941716025879341438668931240816746274916545665131235898189602339923000949376210427156083433074728336105236199948043045309113275320548542127639776106068288178334870588920780469827754958196131651960194684840630908018617690344165720775672077153267660516066132390385002359503231796839810672759005068299859408955167464092316367319017142841411514877752388744164423136980232012318483302829951749048686542349316697371239308630965892578689646460329945620525026765808767624772650590986077176430442613460359365329652328716607580166619638459288946454389790911178631762795278538141950501885742908930441264516413167656566971095057770863946079425718864874350557416113871571297168401062872851148515827771915378383240970378629983212781268234354315815172207691187123393419638321565839868159439855615766926410535474882221090393457329136565656357531765436328851981018363721880535316433995859034264695194217083082568148160123193324515684714710269340561089249315676203406398491517002361791901879393965044830189136437922422574006531546957227443807738841139548998628629579766170081377867036281580508645301809341065914222208964915631386615886342852781022462880649727245911416660319549957595154867847421255325017446799800785231358363878525214374057860527381976891905967475799472381529181180703980686008614421784726816506576000681375724613782931779995817206280248647152598227753837050349703648950256867115383085466256645390285865380391452347510348246312317569354415346981912502898562721131621734778349345087295988532357904572135290350280373590711166786820579002139527558203023891666305759568906877945580738931829203079700044047241270890007568139764941552190150456060341097630241549920661159448178982457735739563920830694169424855550028807878623649603407773343131873291638711091688583395973228160285518967706364650841645784206028628348877670203169401102935918733038998105952209291601391039966417780906021481602485891468688171042303631745927781093294435611265932623991538591361386926461440436252907093691395859066167295016983118958661510778666107220061766209616332804258947014026106860676750001347640563021473651832217888806559918693896407828767246355261518503835061753505860319655051615655156522888399327021877015070321281604349736545668241235408666447844000257324156124081801665096785371028394681169612961752104620125743510879617758158086799988623337584593015791075945394286246556582477814107414479819640384974200423038953499189903845753109520523249468363129776118967201778320582857466894683839492544657584247127300454336554715142963147977822183420138038363790811172047478730202181753690093078853056316426181243499279164950495300718793124713630910915298036186908307697977324213182699340433060977534928476883516767633516231118545507086702255108275222562274868432897367248837058956603248999102991140543872367236621753950157695563811363866043960502206665539189933953423329457285659523896549633736593269118579004843880164177350489164109322727775770671754771776980717292480858180287795374194673775039481869620424058729155910099140350806113209788767668037116487076723305203096823542799586956082446764420956816871285045725548542107600376330299074376133116866901061658193141438660987647137603316904632376867558366981352203435617285958444470479230302182363713473700538750454832735199228740851127815911308863818865537040408481253345915381179589356718961449010847261548645452541624458600734052453146839995240252837932622073365445318034619721775708892507108434524682247064223449951353848000499196059002224621712572727512382529245689643988177127921982730332011423873065949843456486557392654147507013223622692618863695529577906999814879959699182776053144429598155760899535668184223981872564760901842397432163662601344174233754913334580524720329682735276118293613995538723161757302784382646125650961342434410803904871437758638895025930034699901668492730256403086757405770588941791345680057574537525607356875326019683537907818465446636828505923667929077687167893096369911069872668062073162327091312909189664550373368030847862094699961149140276636783172146723954242442251638263543844251118500129693511623901930687467303676634331628603569867142033932443278059765751430412948353344417510319524985898964080275572787616366814365143023657397761269720468808465944752645186454301177523741303171148336493826327557223487285631198773046077486585043043174744167553994204960944618243786471213531005357890942142077820552273718110517382913754784747932299354667507424103259471519852744291730906188216898471037179840063802714609688918280320049812319192551629876998405325211794034798031722400881099682706217390473346248873662346340223074492916539731936648671779826429343171220006308637664634226477007468416721281173562710572704729444331439469922363638440707392331135262438240758854000001848480475008373286458764225777116199879676484285809236099769409147045449772305713479613357634412351234210628279497633488654047274399645526425246436176395382908654662295371884942070550927533587846559707693058796355065672881246155211013560247489984302847903869268830312024830804076351820352054341067965735093421452927478350270691581097233308536042756113514191886304170605602765124178187866173411598741233702064513622796557755249491050506331614062289847055562086609688608032507315495908729700503369854174613844694124866503148286201179195589516415596358027539226846714666309351769904102032429478233086226268066306940329263515608365137647069538398759072599970651664697002691787586924265437735097088039801086905812524798352116837341925171155084797394358307013150900958168323724477152982521190631417900722186537971386962306700596232516793351091641793557284451285815816085642024852705660289722191552085100993596626639959738462625161248062549468323075237050713287743204814804004224297979078279896208957352376269513539040601321265768703635252130574072822852858778801310927798727952594797955706791974586365922540478289486074598858812028391757898892390977147437212685138866315090026703069368937790444204406046611811338025467037680148062818425165120460858802568760821760957611827613082867671360099279001079428817440371136339828901582364475007876029650813260779118728545064991049922084683701188669146612722741050755523142661780192193767088598059346712010913333171462786919694133386689359859355457470419581810367752707057784171549879659929456822270878999929426478298658310990683240191040811308861755572144898314290068332467520790466524759845163547821735841761188669503598980208283559261161786505808752200740745720782130578096726424474061595378027478493825610709514870688610706174100854778010564131606842318049320110981776351598765795129788989056432990142676266684026054361806389735108371004022720229337369569031669691959322465339405303826726073462401250973784587870278853382257996380190680121321757340442160195103549088669111915834081574170882182793905387008332199080205150282549043502874555560237394530635812841292260890684106321060069626065025422202148347136696384245781722198939225724133056527351533702284163564396019430684852918255436211709069370589216006900185402192786006866453708063342857455267545076988847566524606856443140887427508506915233751760179271629231478278933330032807809440826476997220780958617973014345220208823961367680690707181653089562970317405812410985523666032927050326795635666200476973260598119207498753175868185849896949603510903915661476297197883944114395161198805677878490989291297038474810209830238939450257344456303595686265856805924463927044901868703650558620389297872093482410356592393685277926299647054557576783732281535386651066157293475085679412672218266153759986631892758336522498987114709281694798696226031987624658218256576473157823068826113138297464634187656152486810002202735950654953667114149309614601377969184463601122530188426793891303377923457228818185452078668874952375165681709204525363587490900595167621244564744855157533244561683493006996093090485650857804237143346298421741553063522452287378824263187791434881426383619556023792782355899695115035757270373681541100866680672235473270928236167807685496428353281889052102651949983203134209785170751314171182726444267028727165347253692475793919584002955220809199126226768062390698939678788288205544370395478090394484044918956561440558303134022614275197982376976013511260989861604240992400505173051638289501885419848005878298415026065211828127640185546263811999473862381651216823131298597291513459478906324301953078807806498902552377962283262583954344947099920888947172689125995814793179435852106959094525029340824934469736515575203021955483459001643119675788336720418986815378718752012199715434840943516578292055659547013156837875548147129508549897449788027699718235177453459260517208479014518840541535769386936442373994310205186031976614074431592133473258748376780332091359474419582620198771611303416536538742910921059454904048084585114106217908389682989478725076909378570511526310342959769588710620732222412749293013537734719021161030608902780636143722214820496043312477341373420345339379548630655001020275327558227957589000473776642807125603161313637528973472357161039242790076122942565341850268955816019600101203155194844951185933871746929005300820003533880473175997423216240480533558931371981249728850989083130607001734040388266009797105438765323269469453328604040868839612103451931090777816493648759387162693487463724277901208860130909978740966732890090812242770981409181480792720405166444575278815881803247947889661807191794794097438424881467848240810283369402975897290249176138170183884413566799469589202367078324834491680348231017962445690730002837882788492441588731321142221460034199530779353967817334395390001171167541278433221951762592500747840311741118239376247212315559426597600479158668231511323980453926794693402144370377671819476121794876975627746363173553848089339004899306864966687537243627596179339000708857656295322517351552206452714140358253680111955133340593096474300965519424789576933944000482913253813198664298235216138185463755969399646059786727318885246096048932806668723238967778065734334196803148053162466039473687235546878414415570419749508258701004985532172963151783239582179252463960459347007017812020026159788280212818633445920583217760582995978355211427309357843018181915347385541716970343218990899638821323115920275784161614724163613733413147659243272888625800815039304580172833948587158302464504896133708573741867053416159830214380359243393478695105325865652854135416387923229483284329560593764488343924009232530772403279636114695010927719241354534305105205684531872918845051995977944111207896659398975393741355369125268985641536046932852218232007717366978353410368643328797418114484207114941252227323282751792484622258738126658893354803646350770753209597702315262986529313203888371018874260030960769211154355086682389857727111751351349275404474318398477358648978751427565660735222247485334864952463924774375224578471945634983220980271595112994404418514643501885974800798457563071209148087023305699395013872174149859091860678392749947917409250775712732737863014813706005713026753729373778915611980676960118621793786248219382532818517380304969349581719328783486360562298626526746793632667084433530721839642907520733475905834991889496561676936998908507402793958389751652033171672652955052769012807132561082180726497123508498180402067647587534444081534602725226270990223035402128648278827077689512196660492268273130617054363264650152795682245970954865805938422627948812172306449888962527838625896373647794555162658107893281215073769301714769003047218680602832701883030413772126409880677834040177885572010952331232995856691813529362305098359420259556041076900215020651240598779382897588482778545926315655819182964177956486876405879524216855865755242114899597314790608662329358314252354369917839253589924110134504024203810016852593210188867675669514553533464528703879422206205877278319979904916540528262977451576331933915837206739935740931416467704063662652588411214525429290151547695152023006032910378333555510136537182460423355145818195373743450793079352269208870067119072222356867691513925109974201442653813214980314710558532507094475458631474921621311169900516412181731532244195641097818185161448526211099929001730624412871101772534251593101338522295618778480157047539164868312381638641022082445383889958558937633901338154075328800174490263219620056514138583052855365841373427084263403825231623494945152084803541537850176768971593064843748917987110556831924009285499627838244083602333647071897401628194260457371259639467706097433965478569601378625879451049256043551303871229116260275314535187552466575271361598421001391966381945777992649828139950496754806622521832348829858991889586824881347806470606547435195535863800409358417968480564470134871514216555484204626547191236906687616649180865730378874690418099220089598938177665911631840378077076269582797651536814510114743231991398474930609453097785796086773212749293076320792240084760755459308790023785412445547618202166651728073678107113977561737516506718691159377367443672946669803787148762269305205931214129365660283435758921737040647193184182105456964229683448195689022575209730704417058480887863180788322058570756811114604375456440936807505627509283628948479497139391150604245336511391862171928703579112785354224418895681067641477687121500570317678576203476087875351394805117192620515784053269795133444473066025540064658503799747682656343286774738354878397820834735157585394466344465128996277693995973821526608822641336892212220521585581844223448480432394414736058499578128458637285248997855515493365797009794571364142335394829081091949806848925253313876245387636100560630444106731117062767798851948249672347227147880098141683513119366270122416472648381116191812645527288420827370857230807253196635434549320362345821061327256003341213207488447916305904644061712055906811641683998439358767292005915534833461588021248456024974932621162242931745592151485946070028862055088506716218065794081087604867868402915442829559285345999736520240830328600465970864092537154919836435216767076419758877892476018568976686852625666719310986247559641080973794829167019976866996637888436353096440597797734744315539791514078447807538768840918809435691463347196794542182465375300713855145145555432333381334741936716945801199756510234038030472389620695371551074924308391708389808818339290662302262005718350573186299901875653058335789142438659780526823862939886596537238945868622354591527936925856727286460358805656138615224894675624485677604992694003533572446403941249211935867492186940521539958043661379227279686278226704452309864382715454580900131134377922094014951511724516890803205299542391055753275998128431952248306207257009346387678806643458210467135066234429921867575973585969957001122575617850897727420211861299662160795877704684806267568889336681792008834024461819077458689096076873152216698491815882355837349220941906520827841180454107006085017884328257969071614608154629380555030002827983688198991298953284730891171454108535078172125972139882092650414863081102480939647724534473201729478667923424620376569590391783275654276011733198400692452302426085792703359739482860872210935626011799045997909996650810578940410355710251221206934141345543481408533778699934181080356018493678582650548799367705615727977586027157504702659599753233220017402708535079225277027684542082944982069381738586921038675497169948264202972057162267699397164187320814174315826692874808678696270986584112728102118156218290029893189032748770211703795317075992243580512012475785170473682787141712078542938216202296370218863976736779383399610901157657090498247129199537913116504129787461707953937007885275428822657275417787411628641410311060811426701713929063049476024896141147848097510883310070477593024828166233372518925645742578372375312114683810781590688192524368244322913162674222216088331221060267866648980337158139107462310539676055834410977402476042121223307292844579678122285638448472759544529129269775844840366946805465612263102208381118598988220285782934283275391590396300021818893044228950349651637341312632912857414753148629805629126015581689978983047666094032677202549394577700174671847929535762118724586110724039719579567910889620704736221853747829461003719153013235091413414075870599302277568254655948334251039124110374199318275672656396314142626850691672789523812708406477131087984276235353851617960425943304251145152265133130734880697535571549511578784925249900394295461019433305931499169547552510436818098887973625753305932748322488883615386039248702678014059284339422779134951621961583928607462252825710739096652987403973203704808259864851345522059741508472830424558075045945099403832609118877223591283168485765974831215434836126371398757658963933076126902483389195453501192722072270506237516699150976045296878874802979966512776825892577956491039219356936470123174830773243705107393112069964876637577375453553220035553451289807064511675069855582475615694381617467092589766460973430152881386844118029724814163945293045966188640157903297262051162573178018575442286354778672948100627286808936989680749705955482144034847828678899861374414027596661364503730409933711881894952761151048894616640646278802453435192971385617772130403125074578716523149384752845028358477954273575051216242455051529454780880133559837127883671532464027253072865146178453209452992136760918109186357021367550651577559829323566786199507355193232613236902262076209264891714355278276579650475688361362813001587152748759579799998584566244219513790125396031224701334568449281371708472065394252919519572742263030485923817465352177892164896235934934177580627164992529659223399408743173516456147441519189529441504046529468019420858944179166429626039104429807096174537402124397877412109853561433937867769620477839560816157275433830342190255758965677485993730918283468766250165656653536361432860667553728291247464532819458804898994581441526550877802605405573160957774023341010555483541146014827409157387101116202081350791439192065226706753380581865867455643600694734004266915441041715183088743664823382848063046900343702434057504805266620666486450520169826269820240672540272820584411746125768146793971360188226613534407653173380717075396723273808543326569528811022415134645518722262148211007975049833601819848623297186959807922069119650506724782849373604951934231182502640017455415090729359172235907795105674178348661369037146854799021972075803716115359257581777973154300151141859759142342139437083943180707376045346492800102203706395349558805981586676847139759853766349231899562253646176032227226017976947691375979003958954775026863418944752666485014906539039329667851807154823596372647772806849135646610781372168673135883544337090144280541515003541931840221575154018707352418331638739645144983833726930452643340061789198998492816575176185830280296792325648251305438019561093195697849494935086273431428708146782192968163775925807241821206542610464655260798073474614410661658150263834526882004894170243873903509906235718833064963029962932598317224540268101885152303711015357333043539143291004433758999493058069836037701733747454736774040398472394542877947606733736088170788535002680221790014849509108971490896009675946371081311148602502127836046195606479941361539208475216864908044077769446644195499386201150728827083107420112814947134685375617120432805950958316964716218418171272567704474932201409521165114797312546016269334964304627542969157726439320651966142505165203556053746153261878077252170057610899845354231852205333593301516946727725592810305214940959850372585054003752406402995936905716946105097208584411635192425831533690189393752491622374254549285793241462110112823308294629458329350577367236923768890901876204581165792709018252393637663911890577453902382946205041360640700078035999509763010455020181491587860594541658915503764596105382230015076860743421581768409389918284484926558815503405737467887736668882354475217837065209946672307512587306274685994687567156061134426229285518336180461013260602159080842360019384722439245106881915950623294043819770640711885022580772918925897985642205545002267145816411366146213992825995719034605402640442581236329339160311730652411552113352493295035127615840362645351947868820272074465037633107711258295454728732398607584206809712850832423671742856444136166962349164826318328468705369687152771534036696772091065597699523915114915184736930403171084366006187469137546748050624234533096818261017995722058607554177877527128621601966344865898836635803082522938858316579646235147996300839796276506581131612086529436901848794609610012089622435743128172085333470109957299746438538300980264899844782188959437226933695567713390960915227110964743447360272693852033769830175504427410203399768826685475432736516578608136408289789490835719017444750822242732451422996756978163002461016309287635966234027914404011397377882887066892044209467357910257441569510725941221582565432003718568122843183817054361697833373644117171325804394034322001735076836545645489844228857636390526465207715303891590295703346139296654621025238266446767249842419867071167112079671407891058024243255139876406824576845464482258385152457997548536057945531976450460856637827487318739617175841057048229616784144472036114373036650928206605888450567460324813926102654091700774354402211037454270844859551643038172433951013232105276529545053780807604047522860973990740413625988336893523736154050908566510854794964889071719772581496633775845442825442666895458674099782452768208077323576545858017096666595216367556823464010171525287798670069988349364220069966423491773218041919117379418896336705140803160287959178600917488103348487620549311287711985566797524500383694384382575023188900364716804146159402580309331374465727708383352990254462068628957110304940122085485888532245961865586101727261240385610126033981976236817670601141251806790322668951503553565506998556976016076795623742518501646473704001584330413552226847242494393292089302563749834482264551219182783606425262801044980920352229485725604776052350192051862231980123633610834379485533105124129895967537220827501468690383028388094238855927077644023735958745679047085656563942681849359340357297828439806971923431950075366528821436248058741292800295308577291278873078679451248043450398944577064695302529803960391119944794995391275661155549329849420590012982788689731171476867829662735762059653999681773113176941141498299628192143497983505104122421661992828449878000239169894125497794463834420282119908731874918896840098314426213969790879466309083280905823343297062681835977749223868936278362914679276323101722035636649176359837869939941640196352650757164225482083349022762793797407906967990425877987078187655925167514524239951924358280057362994689721540100230429364238818581338883006696571937715333044907253113336831189775013004913248762515725913226604296849478220589237582025002780837386107115403601104549738275513286344798297867386542441829848187913061364562973605924901058580076989364855830736583665476592806725359368370572859253002794737260712500421621660829596939700944696642177336396266415826337096430531273170026937491696743640524794233224701919264242153161184323507262789116420954055492147460627466282363915817562822384628504591246054938831698010815244028558511138751617148709812748292296715031382249674415426666266981550079834347673811857988751076894056461283686621661766439725030415672212517140949912706901061025837194787507195776058231125362801676109711941099137507003886030912386767124938615563788931910140652598942229834996013298596113259343077250585038264700565336642296145096121246700339583123477613687070723293951851118890029454424242913275164450346532450588436120682774539541984685554200924856280071057051782813441906729001765380869092411575394102343136021869084335998742203519692083178156545162950760101652365460226391053752912593068316899630666130325331123904886586230047415086705867294074029597091114150634360249881007800300456583664162256990397595445231687482738331753917507464957779864797864769331319126763870338554473927527800414539873316813474814316395540869864404537732247381115352827534589777988225402569831568784439755199777675232061948898905882408426932257103552084014447007636018423960834661855540759272271027736070600553746749773238906688881869276210666256470264217508364618074826861013498715571247125679197128715460628901173820197455074310935643082942851770007721317530220230948690416691872272373269210548871894493228155157647030981838939731393334797587789165504162258673157053642090814302075098017580206937804002461513518560815661117580015079471505287531224209690727907730184059503588564114789260712439917996467548914773374203219141492449563187154700858699943423803087724481994225339096353557495109248322605996060721644317079221345386235788842237204993626019126741801925435217923390597221015081890864647200749844289173178436248956424113656917319448527033979379295982223319698010837209116144815797011252945535760789580984767133493984654108232664211426312697325248424368512513343339743472513874623262934523554262469573192232058309215049238553166882562993743352341330928384015714386559403263900414190663488297371714743576910094099029381882056962715696285048720364504108890537488494508635250959157612463477368605877649859564855212731904833173477634495263069154336832380571031540192058678880601530164286720556510025984711036448246463213355225450137343098859981775525371380150839684422652923033525369189558686038467623895689071166028415950262758398318773607208874485224226709036873601768463365749369468488191710055157134372394644814975292769756229804309568162805795919050099567563391900435757428159333398560620888200454730207125352787591261298622713384658979100856103332366974862071479600043909582989657008234138087877539395958776288772820660386440347745805312687474293273042115731079881245818252669762825185593086478282852959734541730324729933855552072070331900596184371359937491651954390743065156558569997840704103634133510064247627651606422180108611629181248300026961390658770090266355268900591066381403192935760154176081328337006284636969712236017757686515296056304042351630817003678845252723823658079451009531811849764309977550112717055704739924586069344318999977179452607049302943813090000243761160873455774748258251190265456736566115566693197358002153216768346084355537030027667488625426192382121881544375002756769571724772637175976943374658618884296781847657303529515486569493352499695667070767727934745711499108229003597036344339672799130205044505692270752987041152187400251005299490332647473069766574081721905494548979103441591977218596048215970452739963734081654587614218136865061522597170125991879494408324817278115397857927236827267361371481485130441425287261889374586723378935563194517093830252444925680422391862639916386031727972752721364208745979419893646861459200954334500273020921791927249916468385242838161503581604903567288790328719949733906277813742739223139424750081751581258286119780355363050739810460560407977973350936979388109837045279629956136607074825520448382402749853782607125499156694481475363896232926594784866536293437874219571675891513308618450259329908009889721312477325881722774147136247652620152681687593071559870320000365884708105684522022774531020950877572732815299548491152376190560093385796696798192610083994238902352861133309407774933037206311430590328997937218188675935986396983915849129432350871231595162691561874122426686306368965719940484083514591071152373534689576907626809037571235449837968043305310012386152111491246603123421893687131942427471505193974523828663123529610275323575511279741246496305094999697278483773251711355999872792000120843598510878813672261008621078825634544153862270926067982064200504696483092204977797181287053480277255647742098229616528179243834828806401955459767632758089132847371864658909677820444741396349479751944569741159566026689872389522429754468530566278062708940800172331531468168698126638875038478825850523602090383461959340967070350432599505526645628586665768167405231636358739607383331331653344559435205657989111149747604801709290730504720337871315908667825996220643596883735534116962903447897737577608426298333997809089366205743869640586265071264822342427213851469329115496487782155817736810713886074375790875694203477800489887478182426233545702168622450170775502049357286196069479712832859095927130228414260724165972939648405398437328456261205697743473468985731069205718775479023361646218557581969575845419721983738795020139272872618101947188775628764288382030580258602297911770715631410342724065583978559680828460117776211978350076417706410911809752241570164026598106348369347285191306592501048376369963078317068826269029150454895023109264746372512177069712622789661017064704244218829478049353846873751795255290651394078580111114265331895811804191158170187275800681998195680124938872113782472847478107726782945368778732379977254295295685299448317120543712101974209546008560268490882051380970738913087799087667627601535690416401348161419987220882426605053162011883888974130677273418492040833784965366546142243415725599740743715162413204735788520275654741952981065070262366475204888736295291920360567531957994229052393283992625875090555811305812775523970269751514311470239109625024040219114180700716244087250346417420501243533846921346495758048282337682807863193932112862066996546516777369403219072055930309471665601862426289142284714060628259405831422470672337377730288953719049191440309275353803821276894783845078443582143021949432287153705125635665396744898321564159093470582500323103677662096773469350677294240054643079178438526860318012032635319239677350878821226420877723779014003998471831472350207007443319964079416365346877642262934377410495084439768059148480947333589356730976262836366785350178878318770094772344583842668084406936596463830124065367753032217460689935279667175676993010026170716411310403972673141555869279235003720985780037461357901210835382188983531503783330586224295493392295643690570616905419142538680048889323328061839803294013542879097096130307123188769204809242695381767419302484239989113047355401623680223268399640802595770519228376130314138497212434284533160031927253893155880835082652609665914933392046147060987363786492236233960698519964028899251491054921113820572546690102708521065437782864984922606202058804707009802255618281872606110230458251224038872490857992283525895699344375662053124346942887339039393513117108202980415057261151524152757247953478993335322313443767926718019417139909339344746689269739885003685807578172249460912623852573052748482852631612646775803574417769787874298471120060926390928387547904503790040376918188264527238488856845213067700602918058314616048521326599435479591450807672493035130642832714825409727200312317357966979848616893787915931874260265479929971321212123184361553876287752648954963305247247119314908634919484508007774700731670927096095711148671626339071883912005114067217259778393223537455536389080840177237886556988535323500719621399835265601439359172635629411841550504449895566145823938654839720376973540513548644418063803290105780696839398494597441859592305153221701036868766815351378821734959323255142699661049079140282480456216423086283181025126738380107145865716966225050275195798868865477011009262274830433387286801029111525837815282343090298857310034164144140362434758730398884887031607362042865210515930973654720340532570623205271987330277662337307066256915662568470991977264171166543392484233025462836898720219718347047560621917679723268345082385970841407000231542042810003855943205609826622669270183151215258684258495995506192326463767462133219575618821170029672627526834952767051648873522843354558337109378371281854223833056706108490212239578168386680628317325032999527713187747394890963717639974368872535488597942164779140343244458637891990414365466442751759395358955781806846865379113208802919702513660648407441938809628717688381428177570393173576803330613730788093465295788985167374791010827028808734209024691651168618357955598643084482126430992805675885916272953749664558454217826675004389906465151802943899807241257415838387348986092327629772956812074891984366164924402858393152707654713672226723570780897731570800839201439292007269499791328033365101802123289755966305255179200194695376536245135860313618230450176605076308300788345516679351748647854678892134732934042676395368781214530280538999818587180704974978475273297776828306152650173133204591351515411642359994213890205031733301453412026577378916848981661436250552834625257108713716110083618235559509812494913493998838656570671474753125582302292925713072599577535388228269606379651717182771630485358820592303898544013940080184320027337734329338829499157523139622924375317988916960568401916186922232376813128536627607353036652764622681836180296102564384974322428964441849636855539392877729437966268729665811252481516997289668273736184921806803375476023427429328398332318707920888761134061050255684002695198752828287063547775424792331119959273929973801340997443377576388065733719574728061950372792988425875592127350764241090106287079338924802247618511417355998776984066662793259424867150918642380311972338850620793615156560637800065675976441695324098417875951824916502831698434488359159486111749413807708833095408541022246847877228779645248002763861440876319408758909126293651755424661391490236386849297604987907136558332596693800424379516887644362231303077164273922553030569588994769793712931979091313459087952111893460182972090164981881038611871855231674146660400432337561487107396802767510175865116132244459849562463256164383652620929181113777844226763369505844232659584509459648456719753545468576656259221622029915178095504831442484765590983108655833839817162673039081547787604189896711455297709985390494617703533924925636073374466416636451620247076736778047280179462779270510932918454832453161989161490004033589571097983680464025605174457445526808798926890408586370973470053569783815217661711712761116657574526340755901604559593202914305575334535072052871495753912685286154794022263738180407313605412973309287580885490768363923324707484518659720684614600079255682343346844850985103605535028287976220497712625817328888579790848988301513171889265825822261109862931410946521324625104496998696579356148609833515165173585088673179828988021188771359458476722716627675185045311348961184575945862503283770267558321629787499005127785400972037306881213615360232743547935433702961181223108204173497211381868798250419891485960316594628435476801486432430540238803240452819845968669931700882456679976441692719345617909524227537905638420880817751106784985259926976844293348579271712619694169052921177258290224876700369999455368236883108006419837009449970682213222166427127398771860158711109518117074099495142962602499417253139264729727235788107404620370375583846005144307971360407277061255061925816690189715607849781439382736918797481118427332356535353524697713803221583472516686369436249419617213610170424602854569847827259151909946010286131598811926575325407814863708505419131020089478757301930631705221834576268234959745697680753511122242003776980172459221014155991176591162813849619226844771804872059722121404222101166039114629738756108957760519568751542580643823684666659562932132769683263459496007551851172756090124937431884554042758852434169636087812289294454212686588165841349211851398639075622780162896411546280180530591022834176700589461984298203284750470702991185474655930265323860467011668656508242913142762768856217210396534156636312963718326603720692174311310792854338105408734056755074208766406915795519403112739550600047761571499824054410964328578947741551040553065594256009624154737315127290451208332601258633871602889235433885657517093438921170541107889826274873723534025405574712139786380580724696306473568280358959919114348443844240077666367187016986577286697192907333690780683986707609062709821161930993658024308084925472929713270145294265783047249025416558417577355591264604808673232213100964135999828914937813001183810149767350834505213706243279188451550527212825810984964233700488412366140404917834103507163523076426205288479338835551471454712851033640891397427775914920772207462508882822525165618846528658098281478881473547365885423389567197999207767428364997642586305510947300259965270994965776467069388433796026205166524531645693984370533018167289827477362205273396700101080561683711758195031740838189455724165808856299685530651457370808093966505717294547201885055331724492718976168957733316772609624846421834247388330276580937173142540004717856915898625478144048908896069629679609909639274686548432283293669322885518519672665522509198044526930581632119548469168461274308259660360971759630402605330998108549052884009562339431858640573551380885623714343239136969578762494980125043969404631148130492927644569995630168150219380482527889417708299911723227569809908446374577164647986952745678278472405919118612185560171841204463749357678535809068550493569627900576866112458289901795476116165421979994851108850886882776881717508540122432015907257512064117525089623890700693607447482940295722487351837067076573897211399309166238623168492236480784464463585174774910606562063914829760245732689382179738609123829026951338664766437188491650884401385477061265495376959879488453130307213002833040114653894703070958124066337511515160985746674043174969382443385100431574500056800208998750061413459911576727703933851779622326038294603230781604690215967154935576239549472359902633849402807247051355493786987628780546270733387712960326489102572413880606350210674444615774571229671341215194019569587418255413541332809591508480284936109301472111042867758523093474811305748670331387250757964154063561761913716100850183465719320962750022893066285991871551164293213799258450000683907718047801999991514417306803416353115833046500294772622137434874942692031874335837455904576663440827809323479511816893477548800700229477616157362839336437923347968818918163549284257339283835586665732625329292075041817523541104034088065113690933414678936481603803955521496234460119306092465210800875133945875137024696097246717638166074448069019637547426980546736059558537968444203980637580838094857483748470652630055458335150995652375245588108265064744396050976404850574586886212299381157168345011443070531492527548692753773766796385343024552692732091151685756354631105072429164120993389421156208753086269905278980383701011664263842481755404057928507203774535206450651530399032098695710153360102109825260585012709726143199918082787270050295945660641985493943446170882140440313904820535024427298483133738424741450955303423285249589499773027681035992977305816036728344124830644309728257987630985972082906707097288623636448086066337221692607857647021175689756995550769995431217075186196730971245129880270258851083534415786307162440489968589126490333862863785775803737455863043289106721453803954022961504130827155863616626861998090773273309231472859385327074430323563860172467676558141452234694680728932967780427805872784476590283386708013513894825978489164473860455396796918627953464442329516068040023099872719581336051820644159338063597338635521831545837395069996360660586651209588386949952151777861954176437052068581891002539913415854176224255588720480017757137832909955413758698935986192013160284498256883796148404415741877017873172225057338142906919789905182649892366580970709945301974100911989085769434602882493277090246873830432153610172488606182019536419388470319078240449725785519148523729668513355249519301428566462850642669612535984432308516105463484761579374866342647631363889801386751811775124128871828595879071601913299950066764489583944274073359127273836443194538342393227780946036142526138149971165191366710384836375197045000175252644262909366529550132875148573956875953909693380377406109680365827479826246852134448654513057172416411099828179523465729167745182485782180233125116184374389729549251796141515522727470280894317443541756516206158040791823045670862746968586897855875296394271435036597553750069097345884429907163720424636078584922928016430353439406863809732136066049972714779097697799633756261513063695199958400033262909678900329231542161822647320316719072392791554213209362511956600052535638639177781325473589078207555572853738668045886387416765778842212347580619574851525054666098939046569754646533639350794893674972251586547129733042174034285278577779363730910368750505940298190851357370064916067770698994206665074340806288199551253531136182061190781930672752901510865623346683258028876018906468411783612095789116453009513980968176041854377136738335166693407746636520883585555149750798350389308471689862756868239566163240760827656220587920625702710724172798028678113785973168563512961452226476898871571266328412584590294785650677435256519183461898612867978945939549450159792373162802531490423790585367621114908888462986298304425674677590694689360169222134335591916028462016002615194969113941025436069364728463466630606448549709920446040241362020855810622604532492577833874908044233170483478754370094148405007717245664629777682784696438388264108930753761336912135500607200462760390655981218644683606151492023192584542895128130505513814424111421441924846763353547285913410747700265949956891084334913280121905324963681788248388312621588604382136565351680623099633334191147236389326318279492353529536208916113409667902089564475066573557569373846361153576401610704848083496866145364538698302000956640938206665633883729373476934713832382257778789359801947641527376491873259293370811093525359532032317247286809154333047440282072267692855169850007585731481815138341227986798396827287318169479833150973993720526190772030429853156121424697901943062600712683594498876485405662000562365351575244442573574840414336698515238974727683179340215192962897221021182220485840884011047899273338476898715120299907810829804295326027471686023902757170283529441041137257286182979291393420025254759413197699810833612318391696894697175492160360096487317987621373583546835698947998376906552858404681790831962440033076060290762731301087034589427976545580769397924369002630685586998673303809645167946501653163303273177554776845234135291579768569675174977902174665910134067596753182668330790867156114460179235988204069863324175026034535170165611897641033378704951435335206099529845700014267711289596171744314641919811947220939733964773070011949307082869414189457036498338062590336813354980998435992471592936491468477283203398570848639408667707826465821552573830599616463661987681026491881004818694700074620427432999103854703288302915339157083616352274461843191407577471629416335341239139118408076037067990297654901234775075901251099066726157187329617581211566506291382758961947847064087650600714803877730547327791568100852570431330648583061317887280609164926585271339248183577451526894252295360963176328329378669649125419816428742117984067716839723257943320322019919211896400682929254993013298330627992330358102719853432350972756469519358946210152459797680506352787900588939477481495026668405830257529961407928748887009511872962573069807599874790612021761118720375978248697746750249547321526830812268133611732296654345088523299438622467458954863654919203027294312525750589083190501780758955254543387930097017745386538923165514700623568283677162432568207473765119714557124826699444767727974631263147578287345205662510632869909459871498042330494724329894530796147418014219439384703607765734495506393560891034788214182144871807153246171963723903382984611231176685115909267470820952956582784914224538775987436495938098081779545905835801532263085033181796146864865561722054151140031097916939469620614999977085682322153277221358453894989269168533064704498065984377972371125513531164744432837908871100300399762485130059731881530654480792929216764252960079062179230370060296083860961574035795695538195824015021351055045777294988018686339927915192232745213487542095921116552609442810237177595054349944947810610887368354355988153063146432720662874612573791512192078862151995069309922334213337457203909736611964329880288733036541360375521054261158679148206323765572699593904839037543625250283157206146582585474167959532539763416967837824817883291530289393690185058271309404397859793284706061669933763305991882285378734402633778248391131062048551611592913736221682682883878358822402589912386626892936025091492614372149476739247281951750596357606716978187253323459451518990520909554761368213268198899246263650442557550944670200090376800106255923133303839163755374823841208754168535103813970580455945976850458495246629953617248777419581278606208349055677555540824286037884843867575594491002236186851179786428465540852862126419557269819883098384279468910998256664560140109098903005742641615432066188966276873423648382893295779757805209585554835778860319238154602589582114166710399322705552038096220660878594699855214510744562727772219459652093535236154518382821528573269954029167924617110712271241669947565485088618970022690733705271926565545802351222169259473850209996685834997033490256413053368502576974564587360296632550798646662318244866577671016666884867568239314485177215451759260315242520061758915634370520907035435359264653351784408312566373790437306836905927946580553635960350862750624079282360267451345051993685255345559391694038616820491007410368128065059533642120052245473918960616470021436500283742556784822610719614630893607783115146501303330879888492458006684781901861601537530460185440642595456310471489650246359500558757827437522076645341171194433567705669319773675265135151657156812115634761142191778500882249263898403844655460823027740215516409959357363210280567834323443164365511299265553748281814370646501553773728127399375063564362639215250506291864993786653694000470314225827900228075289692920297987890857269070658731591100017757051517364930924940848299296961542138473681500372118168273527885233998742249340149512209583335982681630701939666288140912301123700853656575184613741732595336866254938926078681268661377830910307304602998451084652158867776459482049322240213273987904963457665735518621810021929318907975072060436496815722458390627306933728977271930509461322865188240870697541550284247186605198631476366618552641085713048070367977497705559111197822804416259805355221881001731318221740724882940624899796573747044306596760007871620058971478096755716000312821822089196332267023577965475114039888869755628738307537697563133335122740159673782297065437365681445836664557749101659794927045712855460778189075351828101772116641366328606363406332706748739780751380354673336700763852170646776575356020851231877470123079814137406903317244446825923708003694698011800015904795544289363044774084693458704228664756004594212976505991289401800324977229895686968092827648916476338838894804535020057214994858518755494005165734715513707588037650672504714681020000002088653006320718621354512669953383944884850909872951263135950644627890840584526058883013745724472520907528940145130513849587886326574524395573887461317151316052711279187277059027810385768095945162848193950538541991146559711925979239605252189045047031827107699659119998013547678368528349209653797077526868269364261582939434559148661931351666740003801089623152062701787570523796427569366594037671115966249926919757155190104131776453664524759604940840298376452542967557383355597752453320412847776273478659295220307565024421894132684962580810132121048374020410170704883050282681132342652831564181416642293285925139235083046594793680489600062780138714864341163028203678036883498525670646740001327945842496828658159177546364003488278246113168144483687282897357284581025812410194489912371252514257936803647920326446071631143695042987547566859146289788669529179255693724569257749693291280275556670992180774972101453308255298669086245687232992154044117879412585433652872017429925341029847976131564453019116373040878962016526391404180583855740808870180924075451508178472932704571546963614202358148672358789708697690586459789485375165941712140825155283872795336207600153621183460352469175618448857810506946360664240250618804410093406035841444620349837514060517059211958089329945143945194055374746602711738160230166339212905633789246303472662845193551787866228419958280182572237648841008769593701005671801839643016002356011419547900449958029474459632425650319838952186361265688123857093963328282698411570132417948060926361239633828647945986092649206878489804569415621599279694206330268711684856106139422005320054186357799262444576961495275691471138328190208735002526692817536778862937838973020835579804370444285137523008553645199332051377183901954857312457348094679618384795047032278142506947242469785444691659155368311916189109058589676841269611674366305949426016906297553680143991253186708570935626926966827970174269108386470050579904695963745029574411013960321567017027582553451812856359684951842752545109422079458727412985115899500385071187819508038956698443877690749911957798601190458020475204405809339635421860594537330011133343080587878450021881128593096699173674169416827309038654077433426207484044526068381960835805458382344661133442145229518829413261851191777411138384883503623085758735611606627468713015628873295077945745093278028975456728828546827536913093833522362288132145190591812564575333748393643918249310348217572551351908158953131453244172750312610556104787704723403793486735428785609846990263683568247326778014292903550852654627965687477754809651830748757356183577400760078660677164093034487806782450418100318065129160262070188859957057461526006390664050320045102982727184653322892466575466525643854235166246331950260360496935755444460291406820915299066543952581598051361255538847128971360120127668029532297306862352726431012980349062570954013658249153153511411648572736526582961721807405918369491854739713540308330023149848622444404193974250494146860552750717107336323009931130745502023528954148608007805503102814493028799637473420630089421730812623234086511560444879055101474173762849594721838375752547659894343732701901674969460567670006455075953302954169756039415177502914378952386112964165146057614448404244552438664671208721138543913074301932589836949143332355801002685958869471816089156667401064258226714087246690496269983496307181103402857370478768184125688260618038823341058950498233312959425541136059193501943670083306601513550062591263286114177947509173225170534902223802985909762316811229650048364069510644352403697095476525471203996335663001130905531326470096640293308703595722081164817563136964851160280160179015356321444035735993151246949732239955488335534544595989395462861469418485729041035057295522620824658743527237286155074064829682050108818785228232076736510302070872484813732769715424759672952976254078693988055124617723195108618515532618478929438241377804601766152929977041534072860686630756597359239157081828994780332350824052505988531793686064869256514695394325241559160133956585777524908972611279682622479861863860035821121815772233891836039609880792502509403373025914965142854137497842152902710301407021631316995185402056756538142616754217038562913495020975564831778248845766335617632231739134588207097845177623438906977248865972608663566562508381967366747404023635189093612329112126737192512749166151248000017398672969693526842350335204978591581963490143041164046864752227828494280472516815289765576913214092835211708822718518768426989756433566524204269019340115444303589883548699070000739829239201419095262832840042723211760285751474258359646374835166716075975357192249014856385760235735509572309255204233981089228562596848900856008781403871443305614121611264755352744171236045080049670330673922635026948441826243292463895775898159293433281986775541998667425526121018007091160031969836922371384016904106755218899292378336927005874514907358111748346232733097454323393461667351842407981080408913741910262484922443378728343563087734096318560275966121103574793378022143119819303109644492006949684818607924097672503990594584755245882308083137938212143201482805166991927436082098147516977097608220670502892037823464331658557927825287803989608329702413861359037781798982376145093550059146147067134279660034623350114597899533064786950088698941539507280595196243436730472580585501426129636312365161639864492547623088794512024354608091868100948899511960473604395020108206110207020750266281872514093252667231306113785936478264187132579729115117350899907738626187694505151336363571855536306358312664381233947813662771452660180278760052962523746314389613649164109130744841203732056103755221000271263375611291782708111668709318107152427398071843527385838266907030250846897767302692848430120892394407441933011558478876092309923449943595056620722962953068361978890860951129007496269843664295933529276526097861740754608251882860966503560348824910775815621122711256028007483972715814422303492380232995533443018720196097106475818038526889506912061213700520525931421369973561192165399066799133424580926066574931500790315758121154234886279296288084986051563331599536338803726657136781938237531778835588219469813533280691214409014055020219411714102444264066111342388696835018367088605675592473310001023194594679994060901706866058083001052099022169574239632191685369362321910447529672815046836566676735876899343429466645894093216106753047437137815434313378319004610906680692949859556367714286857910639070773720181165012211269744315427315950655262703621134753765540630774628798585692732942541100637607265795829464635551618979178011001522635457474484158921696829090142892777074805036968298775027467134063755783395236455981590780415081180284397296227435701297666091985794176353234709694686233707668212982308127388583017238104566594521472857324954476322645226077966354188345316488653429846822332290942212265290160753319606075949629502311712527415600713246692115284857016067962733286855174206089048404352344271699215020455445736174574444361577857074964735794012574585615809325881423640068764918576075093519893925991742622006110507389877143942546686107253461646823073493058002541256740438696080561487057212646045175235924526119442318242562543194914215348934207734162801608667118748658042953912387323599398224041475871753322110939580825689488861580180105579299559502758994397029046908207816353814661291272084114399064767238877674489520897883646849065280064423329361022460536244752315428905572587331491460929938270561157645382996105704561384168546943711038099684090760357539146886425150943409037112691935902934805925895200230839132837321936954041375135598686265430403817179930769306228421902262457373916090982245770591498812659225409955500754217838456754917209916633491448203128089570013517571231816654101182973839217238180894607116116253141793936540440213260146188053266489744121016555088091143907437509456642009481112197493787186496720963861948914475926908415987786749270734496573517560066324128403181199281633328652982636976890123799399242548311066532093554943553645413770018712697523106551734380541381812726579693292188362352729958358943458482062046320956544315874103256580930422243085937815365015606715283094160890113113221451298035049242896353782799384170105871759505526896662570583090871922284776839415698944186426661380024797900882121288639500454476717709483502079447232233617338177266204409509759372326545981627374235222692720827252468729979541495266111518628893343393585417810428912495463083283562283635652802537038429682407525254374909486679761233241479021753609880513398223229322088663920042250859153639881179457589170641521721351609306185183952979957688955803553005528204143166420356043754533090207767268105577707005603266208353762111013246710794091041695270536246423099987880601834042447519874395887372573621362217760075806796921527350199187826656870427280375648186651301447128592283545521495895711853408894714334384322385410292375546359603245499084691809777074444706084365387645603562944136557192881286254569235826454208597867934400560365383991784354197384480779456902397929596166981406443110337240916276013573286572387543105430938990539613415214737831224705868518231134183262722832599107036691071657587764348802692101529463134388254779982752283210371353989373870831649368222054698722432876937399923623223912345487564414573923822452299467409682451968195112394847131399495843834694379502019944084214962349978300147986640988288181399081019601231033704334387372688371550730868249704812316633022554135018110739298638525071689757062730773035466514085556861532682730122134961976161960016733769941167085760048022556486685468360340975085312027948694790651621629878399668794285829895630081847533043727427341017384069069321783432409583111160955315078076080538728590186028794321653053540740165616289195688142740143455511816554231691713702857039122118586495385409835549418782640981630065326275853217053713024931336126908528004978843383020346660536542760591486415303803003103065696070216854925811048341195698327152591462404604275203383960050811941848664286038550127152916589824567864212194656977799062854463782926417197712010815092982668205259823101457836536963648102179808513916574410610403013238961739194717989196614302474401668232147180439078272083595576572590033270552168632642979631142991341418096781724736773829491610602625364776724810022748906960174361527814065593513083490268513191219081778484417530381423578060573447359369731998888737446557939952196906741790240092663947129877935129943538954520379037791591206663239651753762270340091819631238080210826840221646523911678001858098033072886965396736001931796887262809540814594309031610773435984109254192781594707285122781948209051945873655940052422372004138839430790162555164132958097254952993297254011629957912274484410364618771105870481646420837965200864859288718173718172935715826519817471575843754637644385620322370981507428341076705833122028219482520619792612106304023357207162264012324238838459510239794608810111718157327339098505121583506709835813928753690608324242925579207672490440816567875169041273295889644075036757146205977472070758462319289959692753338641287149312078898487364416300197142392934578878524210878185687395791058793743321904527709613335627580380010205797958909575152448444921687351030600702051683893836800238672015836363107082397530322924717875467864053091890947589233642485111251570615799494734484473957434343905592653798403885376840459104438752757572402591740649543724905459342411760531185181980185762987182729848881306552272036873031005098125279457492794774249145207564320893470575198031144860234704544661380105617714329070583720004645514246536910680628293879209842285930096548902458162573084137881705318424860227864197993838219872676732478377012482033649786821965947882953161982824475318794890476621499298217807448522265669009006909360547848898970990612589850501287612729396387117682018197956123083319038335523931660689256377456433712674877009307671541398165013678912565003984960921381875929003933295129462049055298277499648948613360551711158631083238577847368866130190915753785814796673761188162575943628185433572174059549790509784556330851671846810526106729728813087754063992925760765131623698161134565654759552540986209030593483306479287338021902585841171053094981994566903813864372993268234091148651856137518235461062452955095885184136595544595841448841427504849798186947281261102608386641380059743964890802542341942017024631702947343496306840066798555851140543008667162494817420385244556080178731264096672290916945820137965718093280269915540132641065409923510722357644870692817419373385722906575155030266391348358107167831575377582842712681587444481119981262949188980468835143614448011706511024350344291675800265854019960932225070257849284677941604087209125491726296471207834292379629626040485207425417171177764740870218926828393032867512288057151009075225394228473256146236802932573713083771695107103300790423115901300673516312674235872897871666856921569655493682179439218794279472198202316139876238316034165151017236722644182646460199932278059367708782962086041107509300281477943477407535852036031334817748461073552844343573342730144716125946751491031009507242244770398811742395401199340032326429532247878530546960209369791381443049876345354432281103104552090409266333503475691902339528686572758265874505285895620112132876533034448765634159852966943971925946875617098178416076041608878522325979391258545206902607574897095108804007958583770230377489639238300156865094896459883066419173297417336945073121046624989265508938123376845301122158704550574725141514018543537206770382114669604553747354259314433376336033536494225072447354332284803259233042346907426818643629829088242363944979935911510764085048523764030552681008981348484083979315899870517116282219687389053654894023145674605070996980551968302878397916505897694755112019188912122667123160331016231587856247160231800083553358993984583423001184572557760090641484986125311528824683559884057571461630454469036634341445286572201512907610930668356848347119101133629785657473290674902839680728207202981077289918345888393837799944303194305808731734032848173347548295934244279119069241827473855142908174489785965629149044582840296050936491865347825956332874390280390274049581343152460053110964857882847544262416604503117058770019551866987802065767470725125908308680851650693821205744185529746126317696405705933060417275748923062337379940754378944231527550433118162869432498078551766276112240566052563463377580889647165723808214516202533156408439486038794353589670381085485101575624518291482931546858991486771460431341979007941581406773446838538028580891919010386324235439575703237212014814812173199473914927921625385588457048077612937540456731470262916218045152700583450216651787286143491497285035620725642502554426730082137304829171423889893738890718661977667281925656085968812425666079105092528441582055809451387100190318031382856296507295809230904490012332095392795830143692557581535691671232198463200084492183038923905722187192857734705486081493863651702270816069201133841222149608560772765474418509491204537230801113096688894262572805068125719650510278080951875882567146355516124100194929141790639726441137491313208934732801869839313368378663462250037751059582074912275910539201621338392745581294869986089285004956643962233707463315013822889305943325372383287726074127482917309170946881400107688927882697081888286776753115385214978335357715032937182477318540858060482775287727159656001673857543339379183009420429321538656592274109868397941434861174020020556662253892390999966260094994687672274326616395016098411511785586458911401049172827795855748350138117085506406450988199737548112169156721290330257742747431046333886416249835725739023012065134038107139736720452832627627200523758088089930276303178143461294888994409908963868837891305249007341003868693294887393856004549000584296348878641354336884016726741001115692223726199894068608555919739342141471533737752050849697082110522737018335572547992222262837067448340411497476743040439232807450038178847155334645367536504151107434770384870566704874122725310825412865744901719116062939769152948392333521753105909159011895408996804371242182830151790870782377479733836126511740024911461117265618570727447913417131908856003432181920698138828989557532104392711325521149530027362971500850556689452264939609099761798783373834647932800127117820621344960320526010917126865721213873611855845702307552949367678644479638905535118584363325573047939081733598322424016337157612853113546921488322541055421363622448531407014328023544551248285051713999373480182983534723288079065484521679051408793785883550239499383899466162542060678448015172185649217563469052096873033234491656648873866076658815002839977095494094874106487880519615010465568497058545227246602774832179387817827131595491779638727566314648773032019591079954361095685897038739896881928306927431333685771708839995733408657164585999340902726233471066662284094591993002635350333955012924938931472749253695748807680735723945300205835945290527550221561364267837666344524270272658211825106348437620351192813785405824174747281711704492546726221842854018145343025489489195396730142740326049628561714097436559812492626626709823531406742153330336764696374429510097670368846369277985260994528587645326153370018652315335688157505791022652016037609323335628020410377103883693653795358799308248380050434483821933942969511508606535469387196703665616817070178093184344499242497739341843399916594436939381739203409423607660824253106846421989970064450901271369328422753921588022378065443606567773429554755750783332282508579218808521613131612262068751837745876966171581035750935452473359627125895396561481466681736931333067052955527964093719657360951607469378409369299647412684413852304637788382443350196249644496762836748891129733077771588131021918612807156321289884434177444239933789776771879783770776161784806738984079397344620885503812374358595382863609651682005270061499811323891291385356398262119636457368936203099532983698151000421001076538615473873563635713425544041343219566445690401649634214717897684012868034693693197196246852474495557406638878470509625971261017708354638068194804890355902459177065775023815872570884675652888721581076466285319031515176722317333057442733676649023894792723863792208122285081027628280674590210876746849332645242498757276049715798531849381405489662235724056778335297258899707197268698329732326246234134209883210530425687305260841045733851736748729805680898435647972408486691088858927762070048050909037538974911983961650272489317389341009746120050800053069512871423277032060243747721053266241214221017912785025931627442814566100002226265181811727939835586244585512209569484783833395173029493302222543352442948900254159759059306678333610071754310477949909427464403059801651459127528534945213620112010086761472644580637164995724459080057358955482728866260607941512118448692665316491334454082124350842661834272312408842032189495263735121879895931949344768985541363882716999271938868921435598669589555010282403879361150248734773384451580722337644687435360375647014743284741243924092004522562084309929997543481830371981261165144623242616841157842415747577253812575088217720496064284480207062329547297281755175886671383864731370838176598253759932921542176391303495346967474373998017816717400308671598138890636077741726791595881513212332683451890829376023823393404646569750472859373185436305939723824647385040265812856164379741905988543645073647480121268046056425547399583518319243257642480937521981052326779527438606703700913098799142068319467579820098323648617744330108649517999016167628720930822750978355204570929437004421709631777565306121299953460447185800846477755740277809212239112948895388286141831936116912190250215398236248704166654363721053475160063277017587552038997727543202174350327059300997072151433758459010290840243688562329839872753751650450779501874521680102856527754310912375194909071272852431127676465999715257705567389806141077212662345774848120422824231938524397339199801975007427681790466844573890773993789899675018088805463428027640261239388335635285074365489144299774762561006142320160819124420511147418403621672951210869830297460586104988771125264828990570913559472909278448820108539734745682371681583473646651589584997233254555495026142822179690645505739973264607238848744488489858874516648138499972988550413991338236500018098989786993427785427945057363918580400380465420656765697411613482623581666418616720718042893558748434634929317455726837372806175867193662635279661040383620147515045006701010964559880485700349568671781855861539913546890544878005395441976079993908865809811499714440215632974035450167440312128958552893697791221565749319067228991609507130846851512266680155942398243857590379816290349803468428939866792588404161783909901788576671182264068357432081192431645353754748496221960598222993747480904194568747310139545806471254764325212035082717507834620438045476184896851211267420350031708337064021266218227032515332593506403752902363535942911615134080788507228287158771984574819017790369091159645041484795045580126862376244942359685221344349770221611774033082053195512850655713534081856704188669379199774575962938297127368654351289368280363940281908898672445134776733481008863200535940076679842510520492004879928084576232698317495507137570495256140993443188545842583448737046759848077672162468499936152286908029866611618506860152428574109931419462154873125584133503795924959884905035315895991120306821127461224267294838503709393355086737460495484112893729710761462685568061009199114776831190431625050890830755852175122480915617642958731200830581847635708930297025633904710891726317249014399218462740220086085963396499130428788602686377780940361984811650728270960364234953807617972824607152810091055629526018655867128425701308074728176274897330374722756048923698422569051745348077242576929581589403637391023491557799789617049202831048038312160638942548737939672032721288644220261243348036610218938155489239322831215148889806812690050921096463495646418929883369845216985942102213082333910655310689791603175728889603640214985285164733935998385412222797890451922047373752193065179134920665432967388165953604626228960306729936235292961438699623490807983016910815049609426774542012637153880114683561323455307757701153366287317669891193357721090036174666101309293486713859046680986979940563130195405619294215307451048451869267638899287278112909468174394192377654174029158907608895201798980483088799094468921317217239507506065121438964194167378806104167773876721740745409593732564787185494863474419330822815571944532771478718964628149274453559365969161901108028955436344596616198008343431278878212170721352469542802126197347965858145793101467300942438322961108305779671238385427697526350267257931021393950501963777698080219874163192953017507557013145117569262852358067055606008820385389317199965010817568568422402504722696951938920147753316221058363282928783194449101231595574315744208368599752379019298326533481983467458728760921126915806351129193827366929901019556695054475380476756882266341165476471456197311522220264172387959858191340157382812412777122779006259381025378187124477765745629363399345896163587733528515346046096484501423282491864064444189872745548711045632528646268184153786488978802262000195951188983329421987209611867667615040847550843020010027610768536622766350503575992266349858397341522868296168673403575928462600652620605774323941473017023661117254128878060212294384648189724888661373173614085847085577284479015170846497518333143632524533294256184133901432480280026523982771205479074605875438872583870760658117527610675770277341798523378595092691988667186134880567063600938340508430287817391248055066502534172313213191504038727495124306410672546511716019184255527430534492187243372852548083011004763704436804297948669641721463588601315252893171413514512889297182311096709987063133539524762327905114756467609651084873549241313489985559120865477268627444030508445132733797675745057626691578333807838013484455963186844340994113768991319891485506256181210126680099094613607967004070756682751047307559096915639355675079545946906186709605711104145417753277826200575523199756074861021677067698540303721256790613052640525924284688725943280999605070203459967656972107881852392692288063019229621025220296137146158041502864102696899602811361016251564695441369005322219255359280836880683428521908410003276634639315627386619028958934879071414924883805339106379677843671758210989987040517719660620318475522801476198173410031604933082273837048088184406593962347868843821961608994378412406314380911508502816751715176703820176281900058073864993479078006654855667019007474024587017571745017160989864590174648139125135352739746018412677882196059938454375332432181239950408505387912647124820573893525870096532264641972695593892743849944404238627448083010618111375631418944481569561925043668804152948408150900315668561398619704913440857683816272188053923697295010899360864372922915311736798927031851327475878750458236317356439398596250544628236596692934942940885342517192530236094470216876574134321547380877149258341927633550725232446798487539753362010624874076225753290720062521432169643323946899414893418701057274097673981447782406386288849307523481313589546956541443675484624102894186679016517188513866020879266774779217304346110826568436482498829646939957154664154063685422669292035176696540007475820618521070257640572839419608398669974001445508390876067514853865553978774040175015954158141978219808486438944484401984253768794799832449419179500467287673799721616612918256727026537655204783770299477571220587683566535667152830419228111378955398895363950423746908308836165233747311137739058220283039721522996066820375458799026477995404538145930610484174921144660843410198135398137649068590468767611735253574563535887426823405005545017150871340145151034847459230656273593546837048096649536896089917942366181465632969603223730942133431305944774845189973635145679132030907011837676774506819770282973163599728879350212374753420618374694150332704899808835794917863799212566108245491613971521394483041286313461477101675974816798425550731984427652804837204279291263399363116028480074589849333310806707066871020240414980058555969440195004739491305087521551273493700874886448239674128454576400739108191327266637273061222778625405650241631335524568139259023069523172677887242828843570453758814586208989496202495655350752764013182698680752238862767331438152457886627408863333206245573325567612333868130199615013535222188638583872819185599025490943680477269991944396251302179992187367818831976798714992000389645794111968857524551409763481680549538893306627082093250835453760669925306127935020363410815552531446698558857793505467177308587902554863391473353823897313385254293511210812984805766976243784649387677681121034297472430298542817371417489540274467845743600877547340738916621458526178995469937565294643675559602693414853349740776766381834289098925130927306372928675780179409957813180778921636023789942020047311235094718198323547116214318521882299958811079722428054607402886588937843585303380228893791127967530266330107317650948140111907779199679738921083315394331185531555443682194747579536025240826735817147700426737842207080199024557631340756399636788176898654359780763297795939647033127570021283006840202720469654922074195897658252842587894712861211829312316247932158960557918342773977730461081383083108278340044840108440869239975725609721246077438314036942036621396916913466257503588450528909635020423288041358724149610900224004210845325636293360975363993575000967677116258206048909669830935814267097723892823021654537537504276492296038576031027330200025211416390791042840347255411058157339585493410068788949351476099407245599419596022219983083842409063281792048417137439076822680955177518002368456421801799929497520039400082675890603635599308290135188914733302475327043366400478765208203699787891187931393187402554295656234313637008982516514005241668107800962947056515515960070801201787300485879749770732575984215388370890071775586839872834248435541332440698600858465828679462615395917269092699192492881144461464710674768669207081345237273442737483988668056274873780386781852089346992357108428437221113894144667216593423196331135315373962987372559547382191835177319771206523585545632027727309575201268164129907354375921638122424510879277138605044004651273500074938441585944111536240946731685416198407832283755450232396997944531618741466865984068944140256560209518285622751008705811748949986664164581940912557145310212371908084395847575999951183999146561127644463707895718645092198953836748158883149318584087936549540490601884399758686140960561335903373458700997124493878437791029096583551359779669706222942403937090244858859923667079865671778486918947127351522452788453107363871112463797705972301823495272335419367912145540389871005308660800542730117705745358842092220403805246473589950586165817399904286314128740968311747052125417360046591064445393648850713338531009223804545653800367203949906776481570628465509704857925502889742003712856889678546790453044367750780459379629530639676873968868014868197731423185681028870352748516302326164586418309896139908138735997592013807499738584571106911510196972630191191356754395618971389645869053059607109369222603458660330520122239794970475139005552524020420004320194864617090590132877882279642752244304468627656765589566107859291231495872112217992283556510866240821972961687811560373371361011158462338650100394786701817447863504344673727098647471061600614430186161819828212942575434690938683146304001318518778330422860054490766847722248549140402692939464760612179467867150970764605924839488166964544702812319327662682464983323923331248058043317887927056924918440632464031910914282999064228867655465104176482524061254317269585565604531493527729494611405593949390578437800284429076163344370978380949153405575754116577240384938461921107263623287018739463925019512237295334174430321815090233786516255652082969588412045933904385175573051958716673347593877485677159811523746188456000521908398868695527931428782743717564240050189898839595034362359943722854444183400142456928921683052321301836568479652262788456579633163186592915866543934413884308845347441700049220242498348602378371708530543099568376741877875525150645118771768929315086293510241638837865642549496226797880310918612233351413172492523565484735767597075875778347195733893343385780986770406214064599811818259605005140450540284257176062801748798567162009805890725021011557229648809087989595487323948308773206569884233804059200881287307852280519167620839733603155030793174097108129066435614515577943456772573310534352501477407001731564894083606469122834224311291250449895917982122969747326782992724523913403937638654585035375158014615093100444623375703078002110686546839868673140480958996308904578130449776946277870501188406322653724710685571321275543344209416549865886324309888543141831682595295160992339270895829523206570922132766720910922240046841639859929580131462736595162524262987043411032722664829433295715398883926896473609308923148977837471554674658670174439438070754568829171204384617817628510762904135696935466634635199577033869720571411128449409492901889782828858731066847605425693785089287667534237614750452173733248186311734140329562881132770213279191693854139720906209971444779160988942163408111876665568926610757795963403439793437040581494426650550476688578489126295053729775036728495836320270116872424608990350911692936893924313721786400614087804751282024874101052883942869914519938790482201065194862044782863758349132089313168231804516240624586110224183087474837484722962867015779960169626575746342926655227419365324161718535099796258531093944809436906995067648080447654226521583655001160374309776492907980913582587490601255058446922747612034980391463864390707305641003793725663775644852927503144861090913301208857839872120848427880043157111253400575353595755455972904457371199008240217225852472717246806985885484552006161921864450218955086719607758675100209938600445074686109411824584264753991775920436182248653979176790053395699863552482575130353623872727756721377111949851151864049801351436392880852972637094106545940134815745826721565323446354493798805144820839812204697018246450416645859844086848826708110763198440636141418205060555996725276076130219449744319293322319945166650321124989016974446484914822135984690740106997793470863466592846659376151654696573889113348173220234986085115773129568291471254019734052864041351375411495133866955050634566982611160370170718152846881507375184919166995435874794970694326914878255422916668941504908647465131396088752128203704467762867846142349640982838291139325764946809402190530289399771288565782084092457105871739875321287801609525274183338571953173908161679815216716003685589903879927984335911345999989213526017298566592001755484522682219781575667436139334371211729767481884804738757792358821594141003746041449200517869802668605699487543464399144471940719038963269266322272652403085683100461069366806229060670062909396680269699892223522300237400714842637441370497169836564850788013324259560705221339073838385449796634344482446732680139842670474050917656485768803051052301479768860415647496516961472504509882436394023848612486431533382473490750437761978585086534297510463259489208949851715396430139844466032551091107520994114859347734070176895298847176628395245083189211859831470925361710002936593225102852924167855204983937932270894288532629409968665637161285511687403532829205319555977795782053042480758775714282822604569769873068965522753855643656927306451828307704988338697872202443631138173388496204600694697713591067643375012550586194053958295908972888876403429095232288661478761552015143164030145592949908445948085249008004508390726185396433852370243486877843785734069083173326056108735345181654919415383941961307483809356412255451213662843705009020747158259228034967786899750383203829667285827623560522603400412446362284493848602920587996949247685470219673055889471545701672530015547048480719936939399728937788925490773877023249272438477607579061509963931173323418916229582655124410869895315086520270038219256935988379288519153942477518552369252800635252137152437233714017527471529868632247706772386782732928325681455201698585419917646285444672205531050293461471059140934474373501642311346690301706484224325275565180288962633058976637954465171829030486219540914247919204806585300744642843682662827900630822083009150460897815409972500855503205830716447753977075821765094197706148435215203234442945653209781685517493587845726937730446668586272813817865798503777762208270006040325827685887309301897339754637005668918249136876329450068503999393485382301609266132213073981298788631225680465438723384139735643217776016856430517297500466616242873528207784416574383298728476582772667073064415581838291941993067797563908247705151493614765231847117860560556052038355508196878250684107956203457094538552720747952627780029073871703678565313472718912083925733081959056495635890682600907052790804024428021933742099696008938924921492972754727678123381097480116913230916128221004319446099304860719450339645509629184726981499420520328963589655759052510109954074718270574748794505320797470496899281858623301267105008316300535620682753458493230950846646417261385303926027364325518663211070217585798423283085653184666288894424154039906323894312987343425592975032095182860599034824923002385893281640376496085280876679079164710483823871782482858659189603352907468105072230461448880557186164643472128411962190656899718709870464145680778166704360342821661944620802883933043329702850366686368603034183663311097218826405017819295834996905188639604672511166818847144692668545062572711253703458137745143256383405561370125463940799358621815175971787419025983875151228966813421910634411875563004004627892000408092443326262805678392115871061778417892028808642518663768689547802466627326712381288662333958916718751311030145967796397805639212198557069214268342588131485640936470424678100233563981196385261868516667299073933982372845215257147219503096702894354537356236431215344751761559381810440009780270996540713345995225049105064870674851383726507436778302939364130327262694892222532213838103195750781958960053106348100715240198439187600845494544954673703261770217273323508145861962800381020373902104365182627155395735877075304439195552876120930722221777998742654102780007761822873723097912287967647148478641866309958861847754572716057544133375096000051981127419175469843096969093143658576285604806086529785481031914438287596958808263729320601578176882746134876295027579410527612719228159863400275737191209850743645459669781805417302990303186671338267908848232813286735602610448289046743987412616305880547528556224043690523724508164029098815237563399446687852873684127015183771281565515768629929309480196313465446426460099558721903250266480235811088934066328161495459684597647414211293782499199793938317284852092883724251307137425251813384120255271923954399711687423602966133484787157118776848507935558902511220616016193460114565894380683807598106144068298192848855821562588363402513679121069699050840010540381680010399035304383886037421464988371875145308367454519430472931179445663615184812360126056212584182130854069344560693332593713359123301973298517051035232964667105903024201301942412635884560404926783835246877322652877722148003320779410224816445893215341434782015788746821242114713556196564979827962090945869408018895623605382938800766646066747378889386186342693868482393396748819608299525214705150140739280679116957604095283848090225751442870666370943416374187373148385061535531280535308031029268297625655609659427284273159577959846669556186052314714165734209105500988005291891885919831463158131656630110642500520318674883216766302518470695364245681564824162108486456423435895641284695205392291429442608912626352602247349261183769942869386978961757279587165886013436960581896852469228412502217158325017578744280171334337587177985905465875395775852832173667854134369810046259856576793997941156128303026232920777620286980362869508221149789955120503631946724506348852196931204377554508368714849675995423504879634267997064364093065024495923737611691599783382978984010351833686721832050376311304165904551347235119515669769261239520078390884451531139540681630060998022053516894254802165724537297824432526967345816262969942069890558844164255397639497269789700125029042548900368030264698550413227129194395781166292519113308411740589724436220895683843373799268978654269064617717593914719436260447526049042575236644550857999814950450921547174909866197153498686395135845425828248822671745345496850873434493048003292542827112832886781857834480425991706495476823684792273130435574826914707547498842101836869388727160803533994639926192304627960396966746262506825272322664707934490351723294653758659910096486376579952068497245332776413660613090197637194998181222643936694084510249941554419064554222631491177131743590858642369833561438659904213782029491633728193858423205279906293375342515545612728942350741027881359504727272421544681916087012740520489102633957098297980084043668594281365597605688706518363164860739480855198786764317505108850450163056981750217658667534921556200278218609978088935887343137729358404966483965584628853805697054281428874125299255604501177277846991457914344819030725765567804890014693734891297340779518307957309830557993451523194842838278599190791174646553867055369774547389248039418719379665642994173283032508138438431615494938523098456573199628208647141065384192977857301364685719638463558409164532775976197256793758184784799557370670986029068654319156249421631592867304641495808046731349174350115202894801032292782284748928835710897254085580769291070584221106205957313228738165887977960766942309839953527210876325025581967277541089616443191541995127110091339639474891434775463648064989808481627641786030635062680498875136350235435665973692811453763020228525196104087142640669000318616804820369378089765799718945372920721318316511748904138225470475456238261286959032533346471918407556626994347868834351708944400210774932397129061930780014834386880419802849550511602805027381515505090653402270777043128898518417084745952377342860130366993564602568174271242257503156437100832028742303754481487190709718036638939818561126523867786295295846481405860978629805766313447380330597755638310218781677304469941592825642154881776936058151813612962548632903263359630849924521480933129634699347747263562140659244991867494250141796636425942957067934876250276793196540933699483345275238221490640035850129693468988274088506984303104739118385066944911164291272718814011019861191595314829053123251247493986376229404588787594537256589528056086929978207019444868491376116915217866204344566144032770864892451218279126161110567862115819108374515387518923338341706349186284449065417659002688553911436191748880767114315062449281884544997928340337068111058986622034169111377785095181615298516796866636518916660970471241844987748572030131570135932273403676293711679064684643912349994912636926042490205179752279285453927906408448680183976219372217090373359410009745022997734729185055780525074479218590592598880637931825012060066396178267165348029474983036923024116516780937823711923660941795082822374270493938476963536901734707522342479668704383973683766112151642103343386050703391016797737680277391378687116196984876056283472081007187675631466139131541091024102999503837860402924983301062377968606802209620267768444138111576764426605288959794082048142631154743719931623003514138964823485743742742868458193751474333843727168351661017003220099115396082478096011220839246842218790383073505907384307889139077813081912417220777364450483704438043183712806061748845121610347899354512541176077595546644908712510298668626516092142255234007870752199069987189894332734932320847052945229466347496372717036908726922053867295571708963158666337825139202218401723833639855003566734259885804053799438169344286312326757822432495707029419398347450749696857704089854695667548700142317979932253082685031332904050104346668750366337497176308990168587618143273728049391379982766477583102732844284517280073648686442974165576307916576162681578723321659074350359129773069772432540364321428836597743982144632898614749458969537593351115434993524598600234141436310678265587701544609260749991202227437551577615071877927603328767150113635573297262842642715743649743896291173877638815193649977323928128882792990506348358867221052538966696045727507301208599135806854490223751324839859985548991110846658782643010465597763419633367400626941452171533067234940253389507047088951370161593444824124671659009838720526264929850606291405322510255706364099695517103219085281281913069040191093654641525808240188151655668791714094871421973555513315604390654237834001782581733102929137751486081004744365256623366002690398938483360226475414341149058157185524024618156174765802078380450006364260188609299478998768224798044124193865014801281653463384660187280892568945571732067494477579768767999616062012496171151071187121567358817180134071619128282819321735728748540063917862466084541719584283177998134274261133284741378529476404623907010388737984127626580472432237172618794424933497251971156446069038908576776558481269253861050915106831547115163539863357213437980858433971449725455388145064767670862669575610811403535393522346936843215022452538963793331305803534119473615867813229322842862389532293319302698303133494401008455379777250015534759681930510697388223152984004518294974579907088702122669873478205244416191194905430825871808587189896050644534797231709571858904672622444335919623544216690439928436997811489943680250657751918768568690708634268034702133301964895388038195114673875622528578644281983761712200466837218889256767522840712000700350805988355112571256012647175151007944845913300683786603994343790227467704346304908976302322905995039113148893042736634254379146520744059044657011657829607391484159122952783813581806837503365501003455886290666236822028142395965069920345260862993363995238595691611677065004855387140702039308230543506548263063800526233465679413326184852013528677094646705594538387117935800317614624103261456536954278090216881700862970766890542685870034651424294292936671954278187170062782963878136655748295451857076630805127288715874750393040844062746786757085797168295912304276465662218470253449074599079977516480034104394711376250699234148077318890699289053605348196771076265487169792279058887684143034108418486784879840560904322776135535909893828746468988483150640793262313688440482571589325594534640256978427480848308385918034404107353410049808845233453617473423601970241849897691665270773097187446340019962284664422545064335171376281470763247178913264053650169637286609961461011472336719888139801891034306151710331036691293269349917799752572785464226551926153525818507821363442539612411238308846571577329687177257473904993525908437463060345439195289341514432851794394592315122794973143345584937263055996286818047908176370504627013577960006001913185880010859978554929685200319136005855161128264543248771546158061130963086280885596983602436672331369157539669012521495238263967477979354920121800417020458957079178285180420774131557992965100863525593449735496968256411974980216278952992767322636735851023488302529360799547869421945804643579541603308343026182626819692740370266262742161872390569802910393966093578084172976145521114481539117340595377910042393260530852696772142321309413058769657432975639534173415668327019315811910658988434623132412380206356547325619267949709640580592527784639069308246547854429941534354336291095690600773450911853002410006656740429735335627502873590133501698639530006808156753524175343986848883529136226041168815659206920846569516399240093620659042222510823388722293385405320539256423802741493861610862734704088428237240991081282389373163525144904385513459787691663634874090828799686195518978097668196352264163178626423510337412222989688677734134253690313731300368359057881225839494318674142888605638942853019740211403187347087170306324334278109704241237377541664153157770121163993559334312064691632872238899931844740133827258174268565391435632684117907335452202570552666560035730749197133287398375288392020296077012658288413291786041923479757535770322359822308557735685274424640551907512143454603806077023559237317845092181574351094644747477598743936563652807421727945528954035968894161308538796880125502912633827136996725607709855759640270280357732623865891108135153573337978230711085722774742636957568997469536069880550181985388306246032917552778330951232755007052416878529419373504626238006335200511097027108293561942495064677286744341622378501546909220516402109517176084581119103933516165101780618707732246796016958470169417283014265120114447247752366934820102081478573066594529627956805652579189417816287867294965744979770637300911598102581225209444173953614341283608365052960329316642465096686100700595135349504842542581205832435635622043715480920723639069253332672246762640730998760756486028218367959482506347289003797808007777378511928508075457626530439366700068777247546949077994173009777386017751425935009108363266697746845135933015454578626532733743109290471794686364187615765888933045935556701546277396778634190626804016378253651426253949224996106813212250706434650523298617267444813066174649076232026115995058024551678989103108130246421095201221592156107073281564787089407283778426281162239221245570128672306237313515840553051826625788225511114173732762356721992023718379313777093143211785814805050795653546453423655464696416465669555287501614806334362401699639341227139998896605004115060488791155679046779297010785783339417155457124287707646232898280039683519192089412850268716982301239290341317066889584396428570184781178587515583608289507727811714113545596381509587168610996213124330714265463428594200355885565420475569666493977181798892079461403440760797240298267237964364245558409632108497563275604494419043847205657979126808626074837942930553203230696228358467125667757460487478679540020952123820074845984398877273683737767269590306504418566226259625385160677067651884296615873870278472342185562935142698663456680242048830943758008732102295216702394953763065610683817956853348369950880627297211483499195359343295050409587388615640897625614167228410570583749342461890315462458458102482817507081373889648465409010318373302700610186348719294505231529426358112273168025173698502887437480882447052346718945512857547970634486549607518119577428635463087706151402929315749823753923930666478570673965535486009082308046066278676388540882313183241003407742635219940985393308234821293522301882717406681279068991342466328578147226011897718099330193185169888784704789694147184137581835736181761707228257543088170730113277728448156814536055083394082036117774816220614631051403931549673149840154230244588835867962021476720473107360211026912383526960263854150625684121950018189826941943084724638861648359082270819350229652573367430840758268407564123427472048353961950006077450893432093863089932785825849909036136182097631394934099078349930225961460737508012357746283571092693315925125532366972673692727642553200361725965700618389895142060054522262872908596523804266851400373945781169933069323372833575565984183065431278815796525311498043778006776286281850951142394911777556681060365615514893000494189982946082831837009910007421733693835747589136748999681931842233006883805298280403415265483359181421297305619766496240846826405943061526737873771751893225763287537388149163942900973140841754299769492305738660695842422692327620136468190727895190098689827103317455626706850778871921836876254877984025704729537102907204163757987691865029787879831602734069493826321900236023108756319112857594836949933079234349289019590042243576426581948111619385875442374390835504577168071016897058570719955998952574054087925555078563054507675458147685750047749420043097490456821025320210507963364790033597940732803453228978849501163874104547026894809044674160151363079972391274388897557421353822865118354189240679494905667419627831099921611834036043287183647517632374053375536255300061386039251834037911455871350081160951156128847505903747950151705290119860267488287212341773154400053988524458422011716118928517390379881207911588026776249645431181259398008788301720481384518148876941271738348174451224001436130866585935068693057083377693305519677367466809291318635963879887639741895307506236735336124106425162075523108212474188971994238793617552679907521630773833843894853820606855928127758968876988475543623078644652383057538459015122036868822684539160692430113735866381899674006328910343952900007521264422191981944544162245657821893181803301949179427364286030883158928539165467211438303697846413739960544734827861186040753227869430303438230337938566654056916618157962754721075132716925593134874097500694699321856902224107677483465343760601181370046765469422876231934585746327185563543443881280682305637765053858702114322615678582066072469130640801745896449602565906631817351261236896838886808792104186337076751825794325062561208480559597437300412657860818603553854963289373978540537515190138517088453306393451480107284356319588664692187868003074066062268643803527461725098186426506994411278179288982657260363192408117476181492397789303047411209641236369258801343239865394380110541493539119478524149564274251065459936750797074558784106533641783118269277411449683615767769931052994344497381161053489654975971696006314872067140991701573913695985556285929273578661427061721529007272313823432460366969303880055587330095903845613523914402116569554144107360816711135060302906901682913745221013694540213672752708168730274712249862240895811099125890599713494277293208620123143441042847208546506524992495827743255205794529038605884368682304277871368641535574001032598923129343685432900362840831163575428441196219843093206503085128318772383615765926954998517562037123507675440158202186321566190748344989072748473471223601410418942265493023267819362031198647602100140306740244572924752919937571030587500189250357619286441760523055990455448312197675026647556362161580121585951739929852443612676622386341385352815366027775820538499872236605139069743564591515154564987921742761605890180781813686381512304806765652866402604850615425913031215420287028197550366432436623072718864180739349583389420549330704469483508283203731814348987528071150577432443931735492249061177958064664629589749694607361547234622474281012312869068053287621873426847882662554187249484178942325879655635454644053236921042916045870135654919061302646100468212918109106557376863824222268745511973556391098925877863991665752899919715452737554160586908020512037271525809594412710754187129366877131446856754123965343963877833120227529493319842170948718330544233229590604023721916414226345004926101164881184198100727734205077179709111113458987704849847906617832208699483507421294365827431617012265029385217864496990581089330935106444774852435105196031564454634933394331665211609764950697887974527823389943456166567733148880207217657374855568051531474368085915712953832655753664405145578231118946148152006393189614356922772029321279538032685449859763416392108207359891872916193872812380528674772747007122195882761051936542628134328821467726685057975695611177883639722242715574089293665835871001199685240929491506532587732438749414819419076669189281000019809294307768026808470587297953544576610542584328998588711907021544228448235933754664826958798439219766354399921367690518094965490238723416576263924602018040225198277963520001090912410658050064381805410433144468634328741849551590591533970080244716734385650626719117450479005299712045358573509615513563251869319193758673038558509304006923531794660834436739412865569335774754404564618026323870282738905156050037760713219984768930857265555869805694558081876913373594232072661057315290493144148424064766882660568790572939756410837418653598010674743859976503129786406162035329266365614384292262066378926286687962394389085306281238065211072753185959616298620433521306933577423842104172130742937755634735503612992684531782192139163957226646133882522573422024907438737245244395196002972625663980493791637127306378656197166120894747209443528619693238408492026909298050120172653740187965730188633050416669160089996327200776427601871861473749159585297391902095270361006065848028582507145316043926182474143668003539252232993289674598348994259177787619689657739473557864614847603947140488333694736205087069049548519060663205957018943894030397062747472032976642238842524433935405145455203388046149292535824254138441555116616247637225081160119435148588598377707753359295442636192794790169961859421406356365983635679390989055137497802911728668470865895960709718466011466556563390208458519646811893022669006778274879311876052663327889960084130904534817681465765638185823811523329718450061295378626985421270971396917075939922972252277727507965433712735189872902951111906287311538828940746511717074971250177196923823993101272370670513377259037480867684568370255974462952486639173940351948566135447822020449173312850573822352817117208694663964165546829437390182376849535453373653007343655394877010386930585171977135563321769440341550655362815395193263479232616677050561523883971965692517709981789264144002643467864335067757349705525923641971626729016770313341682311233760428483498365568355102487926207689824902698078143750272882988894691137996814360257974107242009290546850457261336329344004389715342711476711504132097517479865058685873872139904110616866609200555806970371264120850759603899429712682439190905797437195586910306657238343137412805804091076291278666383943796215872265336713745329034930720088610649540839426014668342857461526674389230026642531399161485520165536130686928344554530866239888505295985437745358673345747948056827416361737435309643445847148595146690405492750574364528527518206411855524379716011504912303099641019801888537350998136630545680537137010284492887548573060244936153375312226318268919748974933293802238163791977398347268343356949537629856843997797663895298001568754386995106871234074987363911950904899844639160066852976980386687940881475262503194094499146114299289678274334564076269391873888002022235624211396185796363084260556400319704522056979564744248442442085773983940954840844960586994487563707220707468530344013940493178580912919872423473762052250900351692287213973174101716735459222983620084048568101091596091175095491316273687552106413176606863243926827685280057126519947217259023554370418078659925504047758685843867850426133314169685864575788535390553979286229116864412579066697576992839307906282041311832680695560939015666322844354576449985958547985235329465933851181325425688497924752637851876321499105965187855285176005503905200836274017189311107053191849098517745364143987520908105241850023696738538401407908982972702143954150428562445025999392853544846192932169270593024485846574184827766059290408687897194887508778142722710843664222497785366086978610624189367748281317564711742751975783983213205339107716945770373616979059618465627830605030968546206857007714968739619556324147696899651004844382930418570455845691186255456790150129000267793414015229193951202638733099428588209048919668292846876147798154042005653305655253253911951829495797315653518123469272830243955501424430294285932712240432788395605596975844982759266011125903627957531786764040702371166383286000465579431701787637356161858007271003463339497416946839824321715038905078289389557806491024089404090009090089210866035700908981873103770457818759153381834945446218538020994744581424712201548138542168901122242352709207357474053096126767837111214224453039336770711178185016317521711130786369092647300238481998966856370457147093604598023925776335268395919021574037411167820196756784312125119662456623588756196969240575686232074106937440714602062834393667538871071456982742852625729506264735764621958476286160762802816678845513519879880405346546600706391093110377593862483474075225074878869350604915107543047332598615698035966748731280246817787168386625995764434713655989341524586484450636622715019708498814164228079447764719247463810923000337077209744522603432479566952534943869604440013660453180163365182796964076760950305896241174304635302406775593981660720491971462584603564885820308152812032297069450315673720342704586270784402501325723055065096981137237015784001527337337340801517229594072054253664176888002072989391945318627613399026523850589445897752567291846864462184867579424074827304434129216276806270023827685980836907268570157369389588998951231028234744952448639967002984659340079164823260459555706604563249208557558618580428679973153968222989650138146618336261002715817519333221108760260842954613755941444918734576086580572492120400067684585690220095952063921144543178735545152180139698868761695931449481598856451579598479444150704781030568745105946398325644152721035212603133742838276792206003166717929047898428246794356268350639728173159873106400922430509938942848694784434343411011897526342641304556790179309897464654791321277270820527949671864300753997385861021328609093385657371672943079282254804895952762286004664533997955940715853390561108783382044025916637055979118425410600413553005951425869122399207240952640410096246768737367695195632355267746049212720728587271501755248370998120304520309097271737939855856221704121160485360173884027888089912629672164776058337833086849089901444687728519241786681986523058963187655584589206570975915953136449059746318695986568487912264498846735885496278830040884088797667952719467394842406933906529343008707060858902195030383082592199813972357707429916569915939116458236348428182744442686614919782180863404043118913097937729449258267462410848238970708259708727549869875786228318859897461922134676279614854923263754001808016837652400221522340487674585378618754909600322023698307583684305371813458201293914299945691266877667639419069172149784743952867714713277322877431069032776873952875454142666343746583343610069067142195429268005795636331741111378000477375063695042044861288627013591683568918848115636207549322929133850418354929452560578970544706530917021916766798930424055904673555433279089591001092073952289648233529863976441150534092305897314327126787713802405471190048811374467354723696919882601950736485747433922497066531902893973055187126316250325026229489711665670235105235326484299611160821206507134097216630273968234410719894208474551730930979983620735288958999671792184452480003025299003599195371435051521499018068449493204064984822662272816278255609850226836417772669081070645028637650472516346260038196269316211387581500837899202816614497475756202927381915879937071731278762449617198868379583022833697102195357491291370839966968608139853813128198279212661669320075376262738484366028579338289809164819423309860118262713856527729732725558390351921939787823695058550273523788721128730852624122711319862095095193138564184911925777372722590062801071208428402402127862146529255440552365032669856155931278797806040483613099687798592245415426055365510848423711406599407237444736903174801045020351533597127439645980322801909655547154097642492709461382436184382608644668983722478713240945632391482292181096949028641071067918576104334753946632174731653557933117473972706597907827527929798459174679013220470181103712178120286255958890538599812672298404749522521707455958263854871044544950521445617333082544481413321328968095850377362718185329584869988487491811165265053232161367736375911705345960918308232075942877659215547035248587466183356297006026025950781215998179828729525408315156198414801868160462803407602173298802383947744355703404218268159007485801886602695167961258880543949647315126278083468290831763684810950361266106430403717584081608627108194574965200991798140951799382061270938812136634977738582416643955427065974300100674832148509863404102244352711806496574244958753900723896847150696824036213318009608705682440048882575520066301049044476216460830628205232142235471984798775311246387900638014382610758217014154052062506317984636145877424075747262501408195748386993972093457392004870790194450321660211590361158140236991528842431635296998969633693667569251828723259558893344461883857523835377632124240586653633631269007418576151666223521385372504004190304449855297162984984765433213877109858929974521232374186368247535591670214659545747559690640533942198253013322841116505799355885666381694566295557481187950894782336975786618783690592253698643821187897990960602171289701283889066434478624639194675809602589936794818740562738635309381067384117824026160796280410986619738737202756398787367425996255346939720978872167083621477205323420376038931863919862748963344288893581446476366849832568851277433519293132392618465668101018359505303822256692078610915078739863631830885145005175448452603051386150937333873988297699451375460499743098269173127037727207819234647206911054266352235831642894280628666051959787708474176166591044428059174218200122448351785501335684657455148938544870743954910089561909967126314564304981374288006718974751985705517854084818615818058442501069633924251032342388272741323755627767348639974987306023109028696647698972712436186399562358445785400841316647788315752235803777204989313274939116299943495866668071106850371997703040929083610849533275739294499385604752197080206591703016800958435813728901803575869927106740630363643988168902182189835523348944655511236052074111542014203914313017422073714168692849330160245873534366449324462681498924037429953415441145605242967545143906875221526289051001932150340789736284998849915734196652386181991637228240018901826790987181598655725411429777346142362290354722491850907151877489347761639716477820144662963265082717474137739454220481929135579009737579361939520446285172366342846280330117654164942184190921224350236909473602768611393391699362616998970225956397596338443769401166335802957640164788269927480066215023279059444387098774707437312100191685856371882586459221101594332176106496229672912535817323239183873837056708594057830655741493402381086918311486653965189828263907217317583544717843142473039174713991466875442987411053737086544292766691812682779920559995447835722921114342939357293242630128023243490641119818725992558232406617692009352564620429689077336079621575997478572210750068970607276942584571671153543027804863582600291849603665156509660772781885830642216054793587346044627162185725541601245238430653520300783457912166848600464087036934293568365914148613414217142277493849193680385388565158372507632117464502929708777625539946601745233913690246540887450968107106594911390571543328899242447711610347447628158309813920987642354154520429453133946161809232961874891733628770169960394798353271749121985832139159171042066041868220250942051808333629836920127234556240662679540556258726931217098206313254984784949537441171250955864596562550005434038752430854227772017591204589522386960747971574627028240305326467628969450006913321695270025175140291076793200312467433252793094964603717285838911282666523835415200830212874103324839718424532530797391973024901326789668336732856070563891999215331575251207323147831291871826045497011875160949597263842131527818650488597159803562332110178743204020455057426393899443087364247569322302184420276120683191253422002916403225548573489592899569181394206392557652833078027324450460061759069372169556275770665705237264091366273979391504956689982649142372714737347326988590851347640506494260690650709951687137164604661197031523364475248330434594408387890541522141953217006247270577521222796313487425794220348690011597037633955457456267352712348770507551876903288958364739477448852662309617578343279067635008714459886794934845052925974415524533915601980390903508455956887987532709700576829732950053984298431044751129370131081201818343795423325530755338774995268274894644339859331448868562823581618342662463981196244977922014219807979720396865539788901930364248415612715674119893640487684510388193627215191210540393411837418741882274909095023972336584539928504148110001332328888859767213706410850158264488225753905751025474165137146463977188760269739372960610351485383267359878554792967226708854888648253283749655080850838091952138981389371299929640319515153351896846769829732497050841557273949555124843767256650953661104030225833825831101468584761886361117241528457632477267737721359146432726818468669474649221740888864790096849965040175561398270598196732971394350345167248443636153434720002094168101550060498861727075699572901342422207488014738651400964506511464932326798379072890232570809880336507561345472701478067646783597948158775125451240131426416083194760793539701582360844384572248637045316231656709428636886581466382116078165245009902953744316611799188443365667310255917851453904920101900873055211637619157225805834986730811867512065162703722315735406404273773551689635543938692415193689375258687249141124971288694638511385091307513786226557840910178484263170892512791779459061453964243898248144134961328192981120189836846414836178737693699644263530868452180333935731239941892856427654075796259193933819309235872102576107750688890398594398917569363049031037105786725189666144445803287905048408798466128257803731288757831987707202951027490176037318064818553906005915664064343454205964776093386757190359076661402225562178229188809777669750312372439571238965244280880773916924315785411392502345237796837578672423373181399594821059739053946552379402698103841735712836576640379850884568614908383314573105461964404937242879737496947793909757539250746403636065258980270555319132545204739877442904041426208061344902352770167307982180368072117600790500956751189245268120095267942031485973858474393824973413397249183344942210186080504361412747948620707746262275818032296555461418947319837302699976271435273894955883796142625935881100595296278640010768398782601509194443806650180991744316556147727462734073279324830925182085936769172572410283277467059512372499767157934742494609848868946738782961274974721631983146047773819006550964336488058773283260657774364213865424153221428454279161344114482544847840631514037985525025827264797385341423137245330239855741657885120158400609600406497789534312405434973342422263616381721278320192282827861024327358973556937653356857973209497936111377134298370412707635030590665201612582383588931926960636756682498898942259953994124089974233642760506908894687055764816388162005777246164708084819516938806501268604676038864941928047845347128217384868281768622731952682347494515078541480081521061861780434206077856950957174335744184941202008778153226240471811997411834536431921733210685363919557767094000391161846947348437206481502657509294438562250196711455273726656890501758815115732387069541301871085255229725061226322930872341279725291127456071325208433169411613759656130211676298803910105041745799963646133194888548149889183255350445874078308794205227589214751413718951192677930479986710057181115401595611481019568970162755509914819191655068127397465426248303842342319410182954496570305769742648998788906692224209700441858128724817832541062950739082101873536136695043713243522204527833812190223583127541144164666648632955485578422293935945675148983697806439174152885415144624850954868015873736586041337851735498766917499140109166686194904789936078470103642587209738864013474315068228358812861359060221725252766405504140309046331124274595775308195081454303619245557668999941128839571071129044976093004666411290986550524440187237563461003341370196803259555232117418149167820850490238837218449426247919644945425001121618807171759173857994764563449376048188044350758602519211881514999738024123316372959030953695053290823401771266781705500429021024712158575973734850674848527087234199114026812907729497185613366087332424356497989880303915000751991540058996323351510089370891503951597049135646613339357041653954294866662387922290456345498157303581144877603740543747801785299419235870584103060643330322342634731118360598718241183790485248245535787268011065591793228657314398900533284594943506752039330869063629556919900187468464485523114747581642053937740711240651579641705754736907036919630582559133897250760625110973703821524605572761045518580605372387225776155708013203101406703601915439513363245093745264607093564042055369694825994719679775847688987947605520986249848638848448948126466741163717375478039807787784275422311398752783610569897485694033886828811511635953699901751243122107554439472348283183724468667923542876998591293030887804440536119666494259992038893589437605894969310303630460608002760144358354893329944614346008843352451190067212410203345328105590108373822967160928452203936644664809762917849584838676726080480493102001582210763233083744147141436166331540094008949068668295233833658488488178815601170583282353235475942595307249054034728183116642412485519803815044774874651202449526492007114682365175612802081212610654635949954273999770099203278834037099955226894517291607659260446017328468554497212024413105765260990829287811383894297695279666207720394090600804187588290542542452167468081460479395832489703074427430434585893094385367418295011482995536016309058251303495539741391691940718368016450193695622982316121234945692922234343785432106191237095882890261086624263944492718387568926676265472479551499633328832544567221482071562605586583709358134771206360851482929653368417121001435603826729201839197358114345869250515697964623262569224364537164325112503596502621669025761665565923294571631321693949467072637496782752263992757012566922943802905289808272612096869015520241188489970399896485172297097484557366701895653062687598303081288466575666686520090125770276357646354609073623435825784310670006172766090076904771460968981944692465279769995388643315231146476318584825965375886559986453846187195009411439422794524859633190301729734305106719927158391390059146596131933897401030696843711919778227752710445192287355479759345198408607718315571325231867562705430560619184337675816493494377740683907676413049653227304608511387326873962139641891943157930021898209655711275140877305184605621127985514859630171813282196034778504437761292699142731077110977829060717815879007540769385748583047562836968790966152305924777316546641251499655029502210055500136972060346382139535233070692596568682871382347138696752757595245386166826254244349477855762353011619903852692163393943379353262538198976145217571530417198318786462783908332628533170460055908311995866644674066822594389246830344734530862805499913595000429680157285185632049336820917299018355808196345432277831298513492445816575923779490267713177851189413255144884729824500132139649258645560460655375136020835838030639634509960423268653931878604757071191375861048347014167090908670121031306842885018158782224096151953691492897849187487905113682701417637435297725622638792107622728122490496564238209092422485210460511718406529580528972984975951220854627340178166316326086852400696619487700545347545341400540787817873971866559602124285390676904108138831419572505366425685758706622938797477651198087485542347419633113671431922034691361587946954661601809261403358967150789566892000044548370595595234362896691998574928442006531004641517266888700790050386558825537273092254807898447816943663567910645042049136403470355086411934579951450873143712815369514371084799730230289903779329605161077030112973833117227480835302454725575818355024347012799225207724914232902937483898269809370773028629396450564650672178091655231200870165318540382094354114134837895053493875028489225693037157351004038918631355967888580393131435960039667823870776515119687020310383381381733577810580302392085417520100530463122734687360523675262112927411106081920880008903674986476555912361414103851916335849473901707594360734680116468161324829679639543831278140408479695371586204045139899711520701909093098837700231071461248347910074975978890145439686285336376651583113808968666219849189009040740109391004929731779431768161269276211767250267555644732360597978244841370716626916460512907224311714246890553365635580754752781152813599900185859479378785217055323289576312638952763494150723673146357001790614276867642419037732417009656135256928057035568819804241389217884693005171645723611881177376840652317434438578475262290304814604868730297911134489137939991206648439211944149300357945365107218029917132619215211778910426459575345876444671227519348660083797062017535342681329392694186739722374594956093053773459517025343399197419718788988788815993623921520639712476523855680576219676767597867558585039114653185490526054643352841689643076651820054379238127632261378800347566549917121300084509906370718902762199022035246349316677508184770451103918882864630605620952339999503089038467677481505298636259982341702445908589386916033438854182357927570574451839081845776440046060099744987550161400921981683542191099653241407036328075544097506166027587433210484859949567165892187888105935415518858473570118962274260999967063627336684774145280316943805590882763106192281078155437149754807742852288195072154023185238167734655028066885132083469793428330406032266811266790232927713588146776673610060116515738687933004086225341333982349463548653034314437731669306843291031776560379049182459987362352354704584037316743320577792002901342235377674771574238857083883789185201141568126823508729931334597284987496858205954086649533884471714956720625148149692382344122544794547152167726545447815714834471126393733287983292402110392691895379003388264322024693030544130882813992628852013894009891771112241374708111593087315415453932818585490408694219669828541484349615689255849165043107203766588932190806401660412687380608540094528191206051258665809899472712769699930181838950824358263084500059896112654458970108228085082935940376331110025881516989466602129090941360680694361965133441633456025411199715029196963467731926563993822332045214027300717678031356881993393658856437034957898651352685060589155793050906092098031060794509229336894897174865554298239257822232756826063667224112281134084359832758408212303317995074471454424314466235887917668583464242928425778623609410968984836327412815431285841029241735433938430863988169642785722284770867623312631919336912777953443784547471079211227039718209815755056884759357432990980930193458474708628082690253632373717862972730316117606932631457898622966297036729871515517063915544171377508213917131507510392262272631758920494703116744063304340914546490151627441456514869259908181613238588925457439104610550572205752709238342740037434543642662435761289591059425624639192816895055366101605167419843464226622725188035576561161311266326402987419985514611632387288781917560129481360924209895639643160936688046101312611542732615955354556791164714795238295057059196655742700934513103205910018540123916452722897140931454155141876747481072275881349647821564825733393220277706442474580007076259375430414401058257570855239728503663947204427275020945210069312863816583667910692926127212450043745992365032860258275787943719641173113925967490712461664625324200127090620848240823532514980631811788242942964332024606770267065760035207243271863904480386397513371976691591341946987531846051905241489450934205119656825503763837328950339824468534399447978942275298697662799904025556364812176702985835787514036219994478738558359149369049056685696976456868122308959253148798213512069735553465537020249574171789437670921737385553643410351844390988291010379186571211964915826134029366098209101113113407913991727144926932246013745050997006865987293621381192932843790734643220018501855472961144186595217594373692472999054701190474616311147508828755252336042765543157015485622867670110968145092188507932440941071274844798229220584420321390917760502640094593666077843195518415420000129519133623525601824004876514837166986076645887384099726668615435334601958198191221041306023693748756446819294813955193897505181107875463511860119529174732141899746208610750927832781388273840918998223750788327783132842432393609099437981003917488398357698489910295704976280905848340243037717425651074709733007413713797418039092429472976220029229076372065426352315580543202948771992052198251224514125336649861442945053540441454878268676888330315833271645081550664753586679105600753772339215224491207874071242065853787714710747500094363188124359731623193048576272965659046703873958099909266307496351772853804893851059545737244720198714113671907548107604815633772951511760523976153005133786958857945888326922060278375288736726457812314814413671697483315958217514894453037581729237269785893991565687823329644669471844248692554421429195567763883869899084373961551876856407783744774312681914592074822345939238249481419533303599228712062502604180291445349776326719286156188354299383088860814254715711409174142991522950081590608173912699571329771338343806122745231630255356744365072834011722552817845817630606949792331322448935950237558730191555225410903744980178263716184840247523009107864216747617927762525636732494636787419272797924135989162930603677928711227118612859976160269999040859180519847790491500553575024063549391957253280712719657745824452156143877865809134503032163300102043355125342300105423703922278414467166483512337001983620203477499606431559861779372412848781528743059893379975410928019972497389233980974172622033966585382363911828083841997957438862189837338503283567089748199085779146796632235558680265217054558908217360358772805287985959131542893449813742584397168866268005229499484630784199686770452095010457191724555794060623139513798583952934534613050698461268810966489623592990599050635019591069840839219907083516563515774868542582354137643457134272889122809184612135484100924121388466489251939871568095618809327921553119790360333671645888745203517522142349548402898255725553097643158670767754920302689535503714431038899217382342017504007892198679246028378439127198879857870876195138378771768369743060432147654008770814039220570677467132065538824781862483894693857708707846432036862582346980587621492652714718659632989132947769290076513115940496346893153227390024550736535946305767661719310120158353389770562791854243582374489313850787774547282343074208441948858083819865678964488480607946343841699382946685386832659270941803143272235892890810048516548839290408700173333626602522708502899954035776594336173111120379481711591247457076408430783868284929875959094107308595491486435649549984339896360465915736412058914571153800426262337315541156294596365514210150089283744511097681479973998039420262586562623998801670591476832196929426720084325014588599943857337049978158192498196309495528311578406827919439680532595627471837472795620106708420359237031505650390531631485037862811071050926482236754202256542834326717390239476568214330281788708058770908319483689079011416429968993817149470635433283840887036654547496951231863060481132498899601808050068140378115857449546343155638868193474848454115313282107455806473556657009683051471106061266815860465889245589112698500043831410508343748141557307494777628592761683330228022846977317373757189135182331116502002963905802051385798915739554311182992898770234903135133353001594841655797651439601269997792177729407304715454173696630763737207227444805726966705024232337404546419343294728961686991809295389595293187365645885348818798916499945793749871740040020268430927065118931896029748402324427436237727511921675539190014001358696039589549517653752298371138644789818922437107649417516302717217215044505484036795384614152300551324394028480820365671109206060353739520487519080835291734037412289926100233503572051989757310909566923735007641529496846091609330649693350340349589387101476402951833991975631272326104147494988186078671613588513556562163639704844613881964646648847719981042972577664791944131851768691920172732403503836980361649062275380034651899058301769638327409776495954164914662179818830802899719674974933401589794137187152153974911628724950576722211863492932618742858871844149018731935326223918376265617146515327576958144587614705253515250064472443202391643388926749128214883085448601744287843091463868217894262265752014206512929449199812923814663711471055813757421865356259665965436795503393213909416361672928608705772663714212852053830447533829149760800894973461777903428359186256071472597391156653524628613174152515503251385383904128464464268879977775828739208146362705714072362357870108401160282064823697276594692189319708940892751188244689497381636204129476251574481307293208246500132867451017064034501765070235103279717839773769357406398941856496960518373789515242443283843533694184889727869284740530673101061171667945113087064472180602521598403215002798936230684850008688345915165555911957005701599238896310342770621997232558529027243667809648102086620721282796247834593451835767953433499327136018966418740901397420480157186943462327234007022449673792466350335387326768061428074863066050487412266918327391010425995810133144174681084769165411605892419805147337719795115457819402813571636305755339635950881517109265242352856072502666603411533496652437850123587068056925778538460712331569322159576382632037731166058405030487648640329868902862135291070056100568608079473735368962269230414273939461929469890123111984865366377521318123792921186556661087532801810791253307379338499099798819265499337746673522902313946862581372830402491143767051758516133623740582052925222286398980303909714655797836077835472932684975756955404158550554968376112941783452743074168309188352513122685461349698545291249088329569145896599619031839400942953494425476693994535964238721552955044485150214732474083173230308684816380811334068490441905042150805489409062593329030354845776160383477299738858791268605874388034806384017595597755707365906379719361756097939432679287401049713375919773130180925572045405692310143939546909680177311816788383773807737452056092718788955072794863404487271049326979406116803752060514803858963482882410481682866625239229860173352135314846732530566258634105266041957516009220725353678437270879487417709793122488649876600680121036151420480525594722238023787654426422306093521208799139760852486044401078838979876519434531900854158649619865987947045187210151163131822580227151795151641911878396408701302327497174222850791150877724644120811733755223959966904830363318813536922672046119585523383086909331009380974035934168980916896597478131484959514655962983390741611014781356693120025971016498462737768804950100734127025243946437538014811635181925123479963952834346880358364380458585313853223400681710828812647787937008365292505555065065861545228534000070091573762959877257551972340072043405855141330707216661714294935502565636393710601473779889251426792569307409461736209047137142730687882411652288866998404254848748122350352137496359055714928483459915991238927382814771785282915343592516259291274980572598183003695580318858394572719454920668797892521194601030630869446558755396231583137330839441117814286353368570439748988820687272017753230447567319332331379101258674929517484185341557480621045770956945443715748105568202220863981566469990970392738700575731693601138762812561735517099599374030433928667697776511377283494243012359897320971022589909697099192075771424860413351392239826192518962712511028521201779872562383038981562760035639015203955427626362374178492560644388318931098712602744714883656064632297364691641522802806843237832333383370672085246943172605298771294894406580485173105546447742079568624738189677766207799442783883196787456232046755998448726516203268325685836072179616953456682871151709161719939662797033683020524640965225456892789499313011472370907978468488595320256484103417763820022396413513719715527642690952303215683367386305544440761945808028318046285106903105838019629506922278636263751931711855329620678058416171469829022318994185614919864781084619752688142652513980753653644370247269460967712501825756114335500201463643659316031755325950967018444267747716491679806372583758696762768835031764055005194726344956610105044048952458158260944486010995173220947999128711490665299602443523661711760058160784075427645037673380931003883932328337699200347544568927312536152962127469374453370091343915937467223433455514177297967661406373556012084086430214569421493845768284295932250148055268687360971140815326630258971303320628119629848422452305292342586419583295038907282057978015227251133914131878575521197356275292266531138269625623536466844820790350005119506794916238475742411366086282741359858798499560102190214843957822634884453657175007005668816151122292310476119310393338232349739840635033620690740240299481708936716312111385749165571438316208846087828515446400050115839273435149151704672940943725421249739237941608965100293284291496986864545093257473564977248394095272362071261709747360459711031086786949279198382761793485276087845512854685528952393761786308377573492970782806432203993404197880367299200599835093517421782405959355861412051051935015500590087000149264230504060692190621061417341145662807937527651902770704657036308469899356783640552732935273587569522639878101799428497579448896160071446777770572978320251305352708182326576193531303930455267698465707841449241666748531258192320491952428991143103685257163322836407609549555571967987429346692254075624424990736698624532767683154742688447496288124482266453895751401713403571865740619002508097051949753746378009601967091398388534024149250098576445167263705434504589081449051181929335259742660510912787742514888361656745886628040038305046410381664154910442544150366499703227030257570894201727481343141021648833886187043267688234822508526355059972930891128424050243198394973950576509037256658150694892900690092812219230261008438501827908988608396178646663035205287824115320044779501961473194162537625503450388432128844398652512853581581488830175560455137712651562439711633518692731748239899117687802541736109775156943537248110455856295430525519574381137765185096726707992590075801692874292951168560169041366921949108768401244743188960716474733551516207573727058050733510564133155126915287835824497664098792375425722985751701327341735828062828792425161054725779940938153205986359807533579113599621858027410889583372090605920201665649240904588627763000214731584844304451711874316499668600691575908172660559454806155195687663436496780784474179050971314408850031812046214820539590219862835943554021401480972102903220568407544467234726052387727403256375740682288441387839707451995218041809676419818220361694760090282395507563911333372590938603145408880072401594304647397528246313476905431275310588202163813856685375285685191246032345022441502520326289393116048609232560293622987035573747800203895632270380653499493452294913639526278834949210753459459800292653231581463551859682522752101894555302704144195959304877544386312351328000593597765766514984984678915182610815301610014390644119606590232767930377122392341165744168904186146073902450169104090170606551752173090234559267733544021142134590967539177974118471709785625348096822617842860087485133619004976452717516046160498309503398091760958282840928244118416397759663407266942841195524646028602433848544277969112330298675772984825918251934881358113551659751813286353769967155483466955030521689251196607390227111845303010641860219924700647908000118188859864396132700025619990605317719278856552286237554182261145071642836520259643323989246397681158713145477591920792467744226274536599060733713551495841462941578768537100481678683968016634123782631787446304976403154686596296209827216081984011982573618568733794283113753771347688334511072964933140291144622273919991946569436651343994107882161351789207320641119280528003387372015786566205743792576143194256459191811485646165049885814722137878805756920572169929329025271392440574043644962114310567632017821040110750032043240071905382963668986067872215909521250483768122461757169802857413449904297839828849494903140115511393454915077684713491521368440734032800684408018293927770960971220097568728630939616022210409465139534052168227329316516473993660253160602137147063123476325321069524705814772723070424998293371664036208309324569269398728919410447830827768483439457504599482749312802435999558613783885600130558582139261727098422263214995598923963155513390236985511298338049671372795023083961575603662765693150204731590955580092300109229606394864011368683058649613905186858959623689369169170258238491437288441654958068938554497001132867328063191961503465878703106380922535402755927630013775038942543785187118373160892982683535097422238790817704223764878181650282303062054026049410690881606841034563714526123375917139029741286768848371057967632365471694647904196009961454543414264559604336131562607584743275638606239271918799554964926866929445112865740797751396705032778175047163167058384622223660941148899625976610810693111950419865899633970852919001940477777028682739910600761218573602705748910234091272940833210629003267114671734515600595197914867984852920214519509631955570349232867518882325481196934836230536053934955749894877596136593528207372118673945108923291683483587058231389384058933695390281773760225574094685047882812230529046294585921372079028780461570490280185350892550686652622875611051564337696625582045611838827290184512930711096437239326524262458471984222508893588778243687763684546500836745769014709804562318624682170132594599054574388972781165548995818883843838351998951298239139357620857723864521856826798825825230017603592230357507107185908336909449619419078392611409277549368598557143004830674794289107473080779413203639485415839741865899025922747175240196253513514905534503359758074574701136871962280463164911378201634807940207353789169519983588342646211492384817445484901518087786622142205072785237432777750225240291803575554184627606762345403117762670373978551553399343570399776510686572616221217181979397640668665154801649375052282802629324503075558752921797495468706070258110991170407532881601734716077655469281320110493599651242455526684635388784282438798777626964112564214877941551732251175963945656897105255089684605326562964102728999291465694511426447775150455130134421982139669501212528015849523920053226332600756678599323816561268921614243702653004001980091469928899776884280692703703372587982005825973382692934078624879623786117222064816186546199809592073035443391698056423527045114604395331581741013778634915331557214667658264611478289472422703238437556848473661601103424587561242238469748086538672903325351396238472340863496505803959519617674442647965827719992637678391890164031049448925687579484516122880427483688356456336940485077982874189892700292260932533313549422990102404753555305562454241453699039000474508764683207187164304738162343623982313794782495733207529943266590602277475717672237739807515934058554104701011449917392145918428897155882360660432049864710011505231048854431036614198730181806342500852592530815368566334122262542382412478448024331663329515820127458135707246316348242828532792111886706151952521617570239618259872552367116481774952063525044238441295613481845534033628649506431888746138224244904449169585604229237991216555133514208704286126228921367968431614433199914946714421742459655775689734439607271475455959632873239876767633942383506534624332449817038303993122439592016825258950788355385905033177480571233816261107860372434034937544255507448425211167412080084905236935172323800462004838202838882466136328878621769767194616719385244109526865385069051490793381916802103371254390651502561677124322239398559727729895562283537907496984129011835092840010469118483057224980416171946835971548701923031788035401998718270075450525785486491340459603282493798893073650671670014545367706226733072529965875871514065536508017321226431629465524576789439199284876144370385896948657154330002767412105145245592132083944086327147179056392885414048840529984875564621577901972055973984791341356650756412019346403312329328767258856231259999677715896667359327498508625275165851249103043861229418284721356342293807720345001743135081846059482390296761126475538958929231520276072888169617327095962600900064773111608581464015870655849042753952744698146549787819363838337134601429643666791204283800873543069779738559467596112436605561627427677938388273677684617855607823525859589468779976638796240106647456828312608955845956603652222765010092985683863406870629181919750045610752658906569313188161315591541755246462845993409790253139411315164527044576047353909081398345009394604207059850101415439277837969595946411341234852983269565334049931405944298990634993013074618808693479750692190948214031559563941184766316913269572819854475072705992170194225734663297768172468238110086776486130752742286832018507301589288644281266211876982008718822883575980374261409126969225435775803340800285532268193622846279314649035933483404775571046148052597586912690348627345706025608452881457911377598431932253773963377658896989430932610059074847981641955037974279740027663930721299850519503019869732051859891067855802581992682040837411131246291866674325393007772493576415432761981271771010342069898123002820305424379244015430973405610931018008061487237766089616666481427967576393694251450729382961149396450775744451614321891418278411362183960163722303467119438113308622614200630317891283128141435995086267429534539428830272983054875881339872795019172029666146049439145228564361998646990104431320272719704459282194931538791397373093059199796172946073669921824346230166211858547107087317569553531988751736627899926938306957841278837459505064760140587380462314393949587616569950450280770506370863328718694314750115223580102269462372781330769662223411611784572225012592891158246729965052855492324748997567543150973603741005489626295167004545424894839747068560406771953399096882194470794321445196003206928448576348923962465131805101253161371683505937305962927564282165287490634986932940958118462153614512313075347273382879922135071957057192922918745249219711536810136789388464047440365935096214199434808701979842991837552422678201496549616192566392518837955565704514950216247047159120617375583711405137069331832936201703860486770058080787095899570465579739991694980404884674089204187911265454531183858948159890692906500915124674645640763201816346441870874923995763800346754847655210988772484370531675275456113862999871010140900141730457503776095407812841035329913383874022103002519034078530146563910282803477133260680774246626192511532682167312020352032529265272640611684109314370151380116336235211954325817444145733316812630116331928216986296103123830858369844774136733396348381860707820792709868481573973145336545195715746927921244041618861234016220537638050537928713255971955364299459841670594161357650817780283494021669936654193383452753186716152235860017421156050411378862415305221386263145617731832864437714543888958392255354961074415618446472905530821071520689566286425897402486982078366139044339328751292364302376830069337296569458604151814924154115519054162772189992907057203646109983893404287407102512114667928597398052751108045232759361177795523936560012652360560311615721462764720503622749116316585596947608680186111891316346957373986658203574375397922967262550503335601279823971289424020159809298460162606149422153803676922355478116262915466198718435732556506868358878434095285804377798110179353211475289584930666046192830029763822331677196744233214805450036476523011915015702487490720970778551781832905498697869504643862579443246092588312309091273117392353146602572851089750314860940905485280535832409455679985912958974159287442781238112934949797835404550044162863574957918865890484718034055347596684392603336798914153350154856773976841199733955372923936450855365692846595980258401514817206022238833730266653897949603884399940895605095989774032423234338646516086603496126075711781950769718458982967288796002993161594092423044747404283655329267197272784092154531357652675027497576119207720580202406944124180479022461000303400372528302595789706036946380707744513637286939878874792938565755694695970142302492374397201884995150735602898155617647450591821028193426798643833616764374131280783266764752164535486109482348494644053275226397566791737426766147350024946964573032387638972666533759326024535465514248258874041295990303875953628477558193403971920643402798418422001882019522576233790064626473056275041470662729550315209875418689513941082511641561463926375446481539021432096975819302955921376647235689369807525824868250806501153751030439183218134239392785714276782942593155798859006167823707715538987772301210054256724539445401806167234197994867548154027278907522797980275615782820680639824815812470126124595884595954030581347452567618103954025644135966685083515054309340011712697946082401017506870006750329686290248099129161309741304768130611352301839723638730120082054434545783825072929422717509935467896724269182826267764682387256719299020698804698145611867453055858277651497149531537588960043344871438504483866652860597805614049771494155754946864455830371782252991621442958367793394838961151459026899773692020333444659433682889277760908339655841987681476699831021606756286260155696601864617258904059973105260778480398070770179766127266889642242520018674075007452306005358916894317813073622936442314271868137826279361567620289357447231780227149234464257761903497440560273844994865750938741254131362762131915441991342558809856348587293100697818248808886010457366272692598827809629819392686722876059577772999730007149489676990145045508601129313963029041896521626368953390511791908640024410215648018923377250651096324389135443402767330634198218286557314879950966253495743310200239027087774969023884417561888315234546725429733109057817289182408160801975071655251018448490270775659760578197557595729755879179963695767978471937622698330187797053921118592821215813275111023945482076773249925815313860100040269977529181330716925368331629546654646288802917298121574424595186102967849895372567267213575698799627939061844528019369619221184164798113736737676885069017359671115468515999805071992966467708889024450590540717112799937203800671536429325244290913800702757882065276614868947466442056700805030501365908446444188131398024879369329041511244560120955218111950423421293137594104294786535426615971922553730015242386255366471110811045233022730242543607725465753001027337476257508480518442334669861320085684726869769170126028681771427407614942258491308126266902253714994570097859265994793782269987702085321373362404907485522342232972191033035887207394295344973619683803101195720138009853677884126920231990967779883017489942773531997360430523772981322546888840992764594653126474428490694602175413271951412325834611579792843683812389777642966011546690400580449313731624923326857580512555800667788490161214054539961622012390098452584758385643808931596395383269446489041250404244407392213539085495616361272699591615290075764902189129259422064918656639777348022993970133085184369977012440960094337706306038946512068966717901752983707547535628590812858332869759206039523640211727602843599934002967690430973868626007569778253300853202635354023072992810522923244110999369787192283860207287370856298056841183930010007354711832553063073750017665565213477632594112872730591506437636288447816572930020763717367563520424496690979661673655116026828843612616345094698363095251432464780440443770878081513659709426121084615742562765139278588876718131293135045257563343753672850273830556771936887588518686934069667363560443579664574201443411425155034498205853402531899143181076343840861659027748101123199860930514386835349193207209741940840642183431112051787281847206549579902699526469566641208331459847346996810169727772577402452571368617641757581750241301614040157353312923784500582570470167083572295086699961356545607137434189466810755464801568082288946473179621392324811412690441257376468800628881878584753820077247354148388583414496741202485776432119474210582212394522438378864577120125424716126322672175603296184515783744134650078454014976126379936369815058588742703222066250656661409891103831847690344987588164154487585030837332340339344123382128625773179260932160859745431486367129729822328757537441082203832541852391506799752447430198059647415961960968789792204795969278434876768829391942178581522605203190897468247479907467822984670983731106419302519505548671089011047182869233335656970368115233551887692208079225858426407150229141512480046391931365129242537332290571111791640622432291028940766235601113009810417281204795183730456465203760641218826176613107869042951222269215906733835462112582897834724240933819166943666130896467336208933429862247465691145161729645998388403087157105225836719289002692002370989112964440467226277389390208094650088506238292569135641876730293398865478783675392991719333034007811865049148805904971426520717377740435185944745035251067204373124350273773881543689709598240205424483761800727263518991197159062495272984490967517865566774475617851003637800591522938466734888032109448290044015186764649220345618165604186417138406193612430013635258826673300628806476505332446347483275811528607696064763899714164427585385641920559083894156341060365430825476696544865343720841169639428213842334349743994325131867999546713833487936725630747024776054531821168277431883606488041144514972169269543728180574070562876373978743569792536551512968715566723520165902587932556838062160992292215221857878413852990933567532543852343655936563995512747537682130391417762839605051602267959397791645564500203434465728708734301790154245711261327906275308144984637494805965604001718368058741931912566426609978007036771911582102979741448696683550012992054241228129285171834604080483272310744639599213532851832794223138331840610288538230807893185420700156224762445139151385592738770656520448903724974148141412057340366880384285117496102644370133177968758845844640763944377921208939076098454260997086769917037852643275838080538171626951649342788129119861451688121986953824753916998122103515635328112473508934195900828087085176120583607153904234403134698732207622422560923919753011079894045021815580820990276317016167412548890426667176416557269114340524475555137697075364791958802140355191348837253332236519026577986594451263330964381135956441011032385972782842144190404670744726452769752680759131567632137022192867610899379161807961794047309963877687835532284180920023882454239292115690339452520270368785378892765808352017917328697421881568765529929301488698997815432712838676273145964398648905989629653839819858588376030658361764259879464689926967811081478980783011529554523721030017493316863148305845969342361916319136799749439562482078833117351610003560568852099632522461391774555861046141169546789990501913829396848823671181004916731562882478217163427514964824978917871334136512320780856791323514232013840924551123356780959283107882701199820195387088344993251573937659646088045174008196519064987271774295249699751522468344428282306168373370366850892918770453895228130160271243992128703818571954391812743967248946638710586432399313718767729019076377746740938613936397714461825402448946258289353475827153649080581190597844921279630661941567250056953885968794747870092204961396673519983312731215072525604441349808390974969288951869868100597998172591624356768334112124575440203543986022010679402523069801308044728386129659012621191251030401476339935416098123247543004594028004468110861620710717420252985734138121648696684351477142528868609533689922668567493629026416831472241011112001883992576934515279478929803802875482238820452015873930517751904114187333160292168001316687188074552128098072312582233578676936657404741805212311378834599981571892255022757690731052263660516614189750402713763714854833148513937696438579845706337130634334295940658767674984548652994302870695648355648050733438206474465177118639257628396721907344882570087988025237081385095008646158677657813422935801597736364011139194668299616772257211445975784094714353698357764441161316086785432017235958257343042540593507769383695191518355679094506512279338527182126230918242712836976624280600124939863754678342762208656827099480709469946095320654666176717457893951920619207105974238633136214272034701802773669968958238204099915065454040861386297861353557590092627937917188229773965400893317905281986049929518237736605918925651685780682308715394269817334957391473869714138636257243727670962818823145702803562637140341399750284595031260058561047700088724246226628017689118188767059556598359075191308652922403506246865725582769793720826616330494372918094394260354740863401007242505003565731325460083408368761188297175753723836133634609500400889813611158561576336026972572901866840914003952870882580237191872628803395729946337498621773529244962717866427754234463290616161433360002072715685862302268234900424124500412523298384171686973107449756225680120512208552594986358864881401865325301413990072833932415461647854404179919448492575621543358827510877838188687140559902994509179619992849393363600383004060402363459016607406781599634376042498522658277016707770670519718728624407032677586368038488858549630093977012008448316330098615528838669463029619440105268659594810760958821181335618092713117383353086972394293521945630853168450024027848430956806194936434847671621501964949683765820093432981052823452041823894742772927216658876038386561037491835800282113231017674935047549146583696537422903043667027373331633568465660200084555232134501211530715150291328318405256581567324939548110150887285320677194829380222014958983707317668428659935534928821393721176065888952444583548788326760590402894060515027347706825155097405475574987840554395563867238122256675174578846008473041863431146825862225502729793176288742879751458336925620731312874558519519795600369845329075314799892624718630810831604376418732945539191870130290905676979229473773162431185933219003455104563730787504769340209512505602392137485233736829433752917828928179977916412473318894097973942189247206802719982279858082704952893890370592949561388797710053294132751255178882693202628835346207192918327236918720773301030479126782057595269430747074690424661677354886977230086257668415148556043609233054995671236705723833363238308084019313056984870355156979249352371003306266978067876473756925720106001563072900165970139120288970114779873433050976423131192273647171286486119792449067163821112323400328523734551686560841179700318782639608912406110246824652797257520391897792525540572554998731639995209373121358072396583286675142667633773646618122040007616148165112054330394421423895864491258708812757661303282155281265075754331871394651178190996842689004195255790796684860976646406871286971808929587718537707993327640013629360915986542357658423512038932275778794303081220648722892533474502229590018045789416120857720174931787051947527595480018997112070229309140686011387950104130187336603139328738149994587244310867436036796957449055195625615084319311332942458889108553215055290231640286069811330599954996036620478882564980480206128261965712532904559633119837154768135471211583507140958998283065081420351803784483073384518826490242374048460424728454665449520903825362477750518066162243266607718437782525889370948573633193651766392583271355988275496294733783412737251696302092595835824225796551252502448853295803846022209848134338902023529441310041333312446272905551249864477521857053470104847693960126189565923074881925806520920812556421027705393741030002801511372043240686012009576923104774587606437830545624687036365719759364243518414556332015036412058952888726199455660001050467780886477015749417126151882592065838133788538135770369248497178613422150359780677875262427586094378903697740840876828079748115975883656393292344660689930782280997841942653781969189900475638501402981879039357687217135452330338063428969798879932624981956244460807441205044097351418845213648348710179821388818866386490861619539014277141172016744146915478668636294442472047307217200351860627928573376897141022359653183430019351451527035651049984337436765744659762183379939437739956280591186484456426552089725928724057956849462989327715510344800508750770857346867324265240097863095255904939787436540708998957796783635787240069009687191155622180538728665774374517539681062087849166450685300222017591011094062194664170235734524856137156229219077748642259899100512189508431734928477430562823166544184816575095282586900102379414073131121232027299960128702406276018954627942693163688437010463209841414713426814676117989851238578283558858727780291128415413340545011644115583171164566235326078235499821185586599703021706358178076946840966576954668516684297795598994120465376363743256553165693286445003674704067565854434269929540218763781281839962207080236465401016528749602390339897514895890864211148234570390308952609872083018900197261207159651641420993038563521772297883734949604155336603077746615630168059359267630801364042127959762749197091080715058184313126661810930550637784983011300134137983447336896965281388802551559276456629268295920100360894396273493964712172476076775516980460449851951529514867918477737720264795692342039666678564837724238165855938096063245032949584981923610485932173077582942843743636468756083082992042032640405326315081749377144479332224839318878498434666935297781646144205682734789721379216433255103197656002090456544622095144379981403143353009925886232917854778599550723077826876967880830427740759462060700651111559478315316956892782550111881194010538452731483352837364635324731203097050742921223438047526607916543772889604910815454078655624835008788298974534945099733905065102190576389965999801830211749679426473792405688773575422286421913187680780195703217327650578645236531045849887468918128038836662516241199033345257925820222018186162340287897063707407826627769733635976279862527670554046172660268220874848462220235427019247368716296701639546461473681299155691564360741953331570801264695368144466455526384855451688422637744660327486231963244890814744337481930236789422336078358524023185691348066656928252057475243315766035230367769050251947887558764573449784996056646569578347291308035342368926287057780559740472089989876286448724820092762270345906658190134262256485365032571205232750625526793561656605335930302100045950979391134808189074969813927528169568960812047414911240894204165130672717064117173478145560878924506144998376872430139193473732593972466365741679071738263595511531776075084791416103763568133431434424888570098748082912247090427808027832378255675652007175886095249011634372788226555875670405251388178202725784298339068949974991254211871051979555300699707342111131848000206388330547853120651140516879240340546169429182315230313701211667575482285040815384484035936530095433327159669188308192934128525067538962572152175473734689974645195757078651974631065317081584740193168212260181386214071539765385748307718720337598498708148215160848494209644922439850607660908781653958251293327845572245738825642226070633862254352161532529073096739557364186825016966112993543527266866760051064251559071038222074516753361196683100420728754889217517514267659626892173839056898502373113931376975383534877704202270726370671742752897434195773818296235905359900456543317790676703900930167957796039748073773954901571031400633772926543733431398753780166253126805886538526103564735886493545107909317632126151780102358323189412924176102162284588164378890269148599448242068386109861519101677467710808256482088521160251299279732486252785187503727933649354542074360335767995102165154378018330438241217893322306192532208437204254952181055366068744053587043280324017635274080661413490185644092745677182909463388695687265518355939639545492434478153654177447924107562677848561921507607074536841076593410509365941505637906532483571421403179864744543736410886525057982003906610805787549756654884206379760209803732225044086877363186407135883940405609514294868823560912347032523991453232658556797880359639390824706160459530981090469769121034817833499019648452408696976253026884587079941811633806372347309155796250073680792742812918875741170519079206218305316509952508694928467649017986748054561698812745281302226356888976384062506925936767371258795122505869200536890394305539373469841362837567107232097759171101878927347739071518087244621486709699858685889227617694659630714813167690260023214486703097921833531556999473643848445460521530512574587315059837564650197055723189503673327885368735870085621502952757504710416512279820211108412814402754545548873489775179906758960880431936882982264751996717966680644912168933740538363299492736020071960428827389335282398919848675214446628440899786548197241306632853240849028230932598489638958089729788115547449074397869894840717000347558314243087838371008979397290726118769671997245980029984600151194850598170203963148862138084168787796998164259433451315252741787051165641747500977640382121952051900607286103202574591164826174561510905927594706076743974562424692884469064039264322455045743389133533642897227689032338851045524695611636683998844049544095767138363570567655955419306481532195300987245216575915987589122737438342758715558703582875693836296547715184053369470603496404053747466198759191723377214090324365174817973183808923884548113520701904089831056910861879909804342085993588030036094481252825510086965453920416689717945250934167433707405172280009213046272446257208028161260473856322124104599051009273380391740364303409257011476517539291822533516198982736010035967117481881424803046926520526485214500302480100529953845347715456673593932617381317193595359567108960814921214060427806870758794199267055362421673745741715829383718473408338033507495169401739729278548263172968052879503907211152321090270288130484640699406500185749249313322243134153155836332202006956996834270048820906996911953998967012636387443066697211287690646632420575411641339592982031645902099099356279033278846234412320463986602269863461904322737089715103823664595328583751144840875894882441849795851270702920532950927676214001173040486209119103221420223573266958601436355970500105580971965201423318890804230449130229064014675259083002042240358830372488005340666715180687936670973709355220042131096581024057788020333928292573889652437703304054122508596128794478659991358232600167328362009769793385749134605122849427537777469429549366067778769233488132078640271509034233927086562385571723954052025273035623460756557793277305430059034404495612517802694232522986652315121130900380103871697619296564627618084182323992160120665614231855161192848301338035680232313582619539247908948507794587156168325272649918568609040134928189132293903689398716392942969537899675108856593699337433639258410872205290539915262502239711763508999654306647045392113961427361751510712077006593275947297951109781405996253381915217535302231591527635116675028953214522974710341778983653118823126322300199736400854445779518346364680269020259492344062516134888342009413968752601131435560151137458888030965517944960571324905342384342710197982311859228129788689499927962398806342265071217079076115928568715045945906066579223503694090053337143481192035013378787828107625224949507711404830360783166244222218010007047421342328050499150835280905065752625880846200065003124776286919155374283376534839529883371750997978591322876265216502284652973818387314694000498854914042169834093618960783893120295968212643912068641837251914577278739212596275628707093893449705554947527411459669339365996303463241960217105768255339355485083842106552434331977589290161777249694940468034807638201992929180408229861817553439766042223723631868928085207026645160962198206360376000132085269507214711292465867551279533111034192640398738698530585470286299466552862142340834718460362632292651085753566312342659914091635592020356529040444726658638518676750329232778308016801003801495711453420106531423730287053131884418712935430266975727155732734163723427951480281874261057975487707636399476873340773012886862225707899926623056764793697381289635809785121114740074039810101056606976162819021801960541809508389475592063748309202603728780375440530770208403750399688241236463611224565677534232379641178714594213743718418561861727280663020693466214247323400668123989954931247479942280591884976148499957306491016969237799694587610351303936404443212483032981223433578069539816923302035626119903730771898333683575413911777334758644867349029875355528577264154739602447151696726109948774140272894408139104518577435836760871584036841471349925288815884189770632438087487578017615656901896387295307902212156776617840059214971567726979281029881980387971566832896636505732175481661785993593109314227774279712985381946707449172304202799810872854435454906467186679165925728313258744901810657739816796035788937374858310392038846196140057663484853547995724116690835003003121584662500348557309263751777930739566694712129004975092344594381253960435829440845464088797110902615203202783427472511647294304481024727888328050612583515529116643797519370966111934512288315182386433968054112631269942310828216442707253273399795201278340444765775167826031745801737925071990822096794779897400881564930042007452336825023663843855194413692416165520991733563418716708147418648071481170301244991947525643561172313276152700833769999108705447629538282593165712329756141564062518402981000940334306206022043825636847922265359983330521076444038961641666702771535389435060551097670943211289763736613471598040169936113203699138759245009481843692073521605822187329844357750296307194485280380553560837918848185688204398911851908317492853498440608370930330452746758640484878470866780776006806276269178732569782480072514726911451137259779251701239669016690637196038967883152024297594880584348415118480843305012564400459130306058660192236269839405992154802764077035975970042916821916068417395076121390148575252263168780341722574937781754924674427840798042092583349581348004973931203376089115141328772500119846097750637933614058153963447351081185633525102578312892216205106979848282138232425170981923947828958007041463570591698072056618773426029465293211061126655677572280550915380785872255610293330376560358738795229452027301230462346445179868295553524153984194535851562731045286731933380330261059751453489804623057231172999726861395530428156122127334110389061611217078579613584757286371625774451146322886157872763329730088574540693755402245253279054991252776839510058492664382916192705207912913340428104949093857623162502924278428530088416480759372726955550163670474221973288053192167955978979299406744241065835777596927199122718377453294901056116603298421936246176122792375290157753419919365898763857450756917405037647414287726540995476796882054689161161045549340600104764211005625511721668685980631360379753237989566067050912777576905183459229991531328467242169550379964038730327699549737408430426882142534701127238515149220921853817649907506988744879256634292227400150093524783020462338213497108792846506820408886007672386926454691709384315111815371154919816779618107200667232258510249371550319028709786403309865670350446725928468535856904792981934058197367548692099022819941801249187833915682453359551619601213349445983769558753222746166148982589382104003649213589841612508692234971492682316080792330550149518260086602695301103275678609654462234149562629373806889735104866127186975999482861989281983042797580477356666009866015958943226612220291936604136194394374511879011787777609025840847482205668796882368614920321757484197978992143217316168489229512120974227483928355903445572749149490449321569493931942759443893505542741548010701222948745047139600938982003720797841809594574184174361165579056788081531915511640069075075262600763657612691281272884776870473738895176467578050098229410778230431672708414719888550180191125207471313540121049338969749269949120920903621632577905276259117397142028417412513906053244856926567815505004608477904936037886787812503064978998010552472315602647602154369697454791033162566830873190766538743699535897004867990957589054417887117195372213218401206607718031030006864695764444248200644226432072428289285638842808837388826328018579213251384101405674403586245693078627284609475570918776197681756840980409513629595076762099459227572791481434299314025130352034807477370510448106565375286894060175466676338351977964680945571582076192559978371464064019284555503452287985822363283712110963708778286316424574288415757363140152492996695457636482909248986988693961994777696648443893664530558851257484684940304034047116055629573159219541624706031814733280566451683178314352428324934822236043994768836382512500589704060806498429525222709559685615160613524587664762964261092090215673515607904751741649997636316833418822240271602875175276251691610160522679030215884339478482121468716270639631003385164671797805954636450921153227065017823062226449882970400676055440409302202985612135225596861043378297529076956259909288361637306040398076831900979306795194578430032875977680964898478139913698980095032945185169801378007503451688660044841443468827191793629040924426612488756938196093314397548537499306767680053595229171512516702515840182349015749668401873571653448943413701764846974486233642364495497341386124103493881469232459059420076237494619175963057016341928169416886798247197136819289688231894626320825943718661292212722142846020392835756227686777039499782014345731340353562765938120713953765092975772135832094565023311763066142830117377603100613945763569151686403148915401134199357647394941823632234649899220835982986676212799852166821384598163430384988138486457337347852172887007426918207930125540701952566353441722735532084256153734630346561879952356404351958108745345780948590581332324341920339844267055826311608226077345669063480080597556031017050894631612460944458970764188970265983930106042083377648687068366022929330164921172454615930655947153718424764318569661201953580344115020621018918542174251537175191094226355220256404761538457909231408458942352445073673140629162111503182194002426405624956182486765954383240955898300917639621858355963762220374486201772191902510002796652250091537575146771307418032051878763749757668543084842190806433217042525858329298186243109196205195864639480894982266671522076565250984230229527967612971243702089038193988723963588091788651527142275581326550586210904559100236148630446293799184959673859619201278201084618588352538053753507331235457679861678347831905494970063037246294977011290936770491801912517403435249379019583129970288989531623820592050026208984571409761327927629639279036661280037863168602059157892355381715188651222130128665075119164300008533210129244871407068799706607257535561563963087493693115847273793414592203061105457396547263704606332635546821579736083797702458141240304057920586864336110076425755961982866335056247981880949263133436847189877275579080101351609052188858636044259143474921239831952472949911283452039094431708008943302333167198113479993391655502154418845462602946252980265115321106128208159228231178993263053578423606253886165087676211607907661354889326127870717870211105807771854970927811322345915226724466146801837063368912681899877588771766799066865886270015833491231594888706403523389979620333562305996099513292220892213853877196394559912261445277566268027197005024157375567843769994566695784618346068507838210803587818322402616964124855388165512659977574017464527067877794008958564202034783744917933867179124425283041917658393734485940482546477641322205026441731406062615304697868169350724262546606570117375172555138305888594883019003373329681109405972524792839437475987945641640216339779272387342004943489374242759583356347631323370754991141658742916679247013893732990396629474789539173965799406424775595547455406382612714804189636289344352524698295410413863884317505168919056792432344857463348960579628486643162819160315198811466101671860023410058459915822125577366292511428074035908926507653386071810691029894824433845910690807901888867324380067324619977619639183229424511082945996404412885691897196970474550014059699100435612910900544279038146314051016823897176649985765445224366389503335775472224382411615923040219729981353170835170259960021388677710765513836521955083791714120416284390516557481888006079248131980285865624426346663489524863449057148996873351287519873580150763826886496449941545109898306865369066653807385725487589495747028225121742217679874922357405149750678607036172933032456166279676569299524432518669179372189965392910017328777779573090847204398647471098043850873616823543766705269494836142535319280650106941907686414806598060680963911321255416425734057396505112456528999055681246682494547482373496706915588379674454633831800139259801864574519331954698005577498336843463189551357993554638374613171752250383288052736715173111310576015444351625625984360425041864857642446182934584497174788780132788999501804081435853115062089637279347838686391326408186452490593818900232627225170525891118268049596207431129799060219462111849582319159000673777450769341927466889523157320413706288193385294981485472319144897623316975063527626990868147862723430615585978786901426311802685291044462646003521800351692862100405961125746688337309690259296101056372499248332802633779281357294365685162103159881321577116221667805365244480642834035817843517493159842145347758182124182475379311366100757260197421925770172399573940241901329821773383025998998925152200799827186811042746111196182747492134641111317533319141711065298641256608172570741998870405030534612988716431737215418060314963228218052273952743597378366933427455933728652613315965340076080445012336653295316617908045970084824789289248894473062165326989663523850161980853583850050314895386625954055128123820868637613090223309051158470050593578176374816280164544362867824736592928045956515462183769288740684547610330331818647288301221030561639850690812860267478494579837072931038551311430218674853812929852837637491402514801826938903723389567336406366896384776749375923357973774607036985543970518908537217310805703102702034437886580443425391478314299651189694017866443274989400539389691516759684473194454787649593756500335604484110041728552571799879433763256489462466619049535299456577388321022954532455684675550421408188513248905257682988578103974816125294063847874944657705147135845311261734375201011749936037093299007413795720024793751431882640915796105610202455529511198371917273319837242443525816530104463164356745529487148400180485279707865772927140951294679379001295543745015314561805147446177876142344317916163635046580302193969992997658833392043954691728287553440310313910843131266088279827804285773743076519525832362544327243642367787747720810082117660706692063973320724536839680999348807718379581074593650356373850845466345829905888824910817960589497468287642772326358268961234011204237352355743786270513137318366378607714788905228758111592365153474181500038782307484145539887737744606751201787431201894993143343526206596697144479448614822637328847004927127636509904278958365225082745465611392560377188149757330709772382384532150869673112641010270529323030644999887470274215674849501594475858610855956321014440252118191504864610719061255411757250371615190853397889831974003449741641594674815859724485435773933569937400378248215427592289955177704797184156733276694722722719166235816953150594439236350067957994526701415131868743118257402752596306221798962800944253553562044758028131217799410196813629135911135861841591607296146410943917075121310186902566616720449048116189788801275798499770845032822052723017708256104487567531829100294746826173130343537952154702647471515824900933101666687752476573302548219851896847807997686069934743712388840741219056352591123113863763518028782642622506925173692019617651829045462377254011677151326085306995946978952993011894447428362123311448983885153313934903855582438459901900378406647152136074445985427053000850241356256009203847058237297525514582982072403429371390470392152627047816492879735141893784960029858326470306522975345978004336199180129803134352709920024502429553885393245834737818923344289835139670415763873475002955181912659233707948473414520348543428665992057841083774032181931015975900683762201234726376844273668614088431733900391850069816764532497387589130348737161242611235923505270294095641418619678315680535506520041433771402769845159491625298531690059201791668581399205192713909890319757964084765161783782725871310829903141173393513642297279795909625950302371119426271287022526109163166038012973066823636552723847085788967412576847734913964936964878010696323246652937259085919652679313694612507827045500638001218405414688420752691795011000969315124917685926992584082746253015643063891360131065146311484111573345847745513147560765772476410623611960526244797219312100390675983783231754629547114225619556710796285525353874510885571503452353487057974752189690466210724170565881325796137097315390135146419021676991064030594628757203940199899030944535765756324035782169239146242631492370078076231479619469491379345618897597065112863218335137932415286475885241014789290128168230602041324115599186249474428140804570941019217123570663750632686244890044988309887586569818461392659450254256425073882562203180165594824543058403213587409281355819090858702421418681792792504410562963626072240907256414369759304613326848905695501930840708603663344119323683843050634710534210993303823020003532824531887685558620525250320001693750033842711903829719627813334373355476482973857544849229890963165163775627674986519756819344714529448122039958405579024745768400056642497290087280215303281908515416227521421329834928293367227001732765154453263611528691866495297706381337661236861739122319582357877284460834362642619402584064679062287326455550001417826600653506767558599889067398236218113298611997486425795852894432071411092853510650592397839117349327859873000956835704721173397836184499550164997452643374683308764267600813717192240898938953047547925304464048716737963777099419612974966959621839610525153950672638099587816166052580371678855488322580346575842682180101553487225989120501897344592603977312250227586567988018127527559736013511727501608987418323987690683503840783562076354686046609717095313932835044596885143092535298669199118609649550426850093418098747772434552385768393681698425674706065817475385160015974789245803290140711454073925971339237551441421642450180061362802539459551461591166254632765562973418817848545496041466998952499172663178742969966860417728290258193086337689089013092823916552538702396343546923098618144013875861790893908837525116126172697693521026715264484499315860204074365717982257488215792926145330648974780947012001272384564294156654350463559354176281780200642740277457661938504444223406278506777967233880445372056988970910618178126116516623371857942668338128472515499924816296895920387494159527798951057894379570927052465252370143492739097197583854465084023366370243486867958669206216646611195026334618849069781541726949898057426892812867204192062080371502562472067961589040944449829039267322115220864999231604327083909524571493733861689350970583092500916602004920822676151902750364099343014139444824991693704704592000228924259987698628958578702247764780561112241164397923025881920773328681539817286459593267042057010500277714940406425990083791506510278360708952548736302999617942488332124687669711861482515063265451061559333039585562023716955661936855892532334603512145268437874111787669571783204213336540192767664913344659264919923766817702507972423555708275633108657615452547192326030051996353782535152134319838292585932739623203138260259983865439833519286601776707194721694473915536278095842830636958261835344055579577328152704885844578892691865541072685938476580385442651983128070731347198334515573684827404332856207345435253553327789460718695669988071471499315491279172711430288370941966068360948425710894817313865869215212382518831210317380338878196886750299100566115031846070924447302802592971296894567951055123405159911822302951316815240576294770751373327527953635439721806099456068767548926771951015430370893639673734586706119533447247528926021207486289330187163680923987283196061510288492166400963445378254633685941578919662288806420184270591659151102884678855952271357146461715808166968555114042006739824007614886823447295697160828267428621707383165667866622500374502568556641191168053080743354034658329737367995966742883703689853497428054768948957019321144876533777460606288362010300887940990320564298789222783401188559209179852706386487299130723231697372893119519008171849287453757155627726136770604833733553023367883700280330152260883539516285422107413846371666706938029857546392778681054815255031658173690211155939714849444164818378389377632215596142933826488294151106718537154438043037011806864813949102897633523962448132220605679024816339772653568790536700755124334024628399181102901156749335398729318493519878431500235077044184016617139237033138561430756185048201695391875513082137953031833070044154734553070756819266900484151288725146032313512525444748546101416843008135503461238251782397319834796394341905191932234302555362828169168325072522951458720858508450781073898198181297665464873866204409155821376646078454671117124516434077226680168494012865553039231242882446961307865390578177452079984125581673554082439083002643265531846013105156215000986247880529709931559555238561753879096218562358651571636279774780915234622138961654872382549207187103175547994321865797489237932684436980992530201656116632418030015320767933008102049731071539155768382964783447023983883490924599245390347152795709204098374250725487690776619053364850966609543924048401240887967445979352151640172284746596401705280606207591986821086813224320159457233025407759648425634126646031815686620257960300695368997264013330073026235020604666004994395516055892050367830711222309836190470106283749104893890211726428490037883847111925964336811463042533967143448214405447797563872473724137564452993890139546527726283896021968354175561310107853883607955024894430756401992138802431972808832526453512198892299742470781309248762896890719452765085673063621044283054318595670313308861374809547322708662401269406929441975328866614586355698777001125407508225735859774964228319688022362599830710941834448920960078265431209019190367209592890143554777153331490603017209287091210806759426009438760661645612473161594856663675866010828710697607867537062228846106684581891888257857758585877045024307441217345531550144506403928952283719428086786491217148927395720469201711473749562357874892762031814320953374581994610725485272040073662979089869853824385639799327320198493304763805563181857742546023428253632140885827740427208301409721006036372661703525234993044970074102673651339647936890428601673920481426250333385840188833654631338224224687995563268449131801653649663668086294074965442307191702596580233943612305145720645511850054889754429261104024039837783380812628823321099143082094089902704534454710946226415542038717250017979581586865277142584020364875111987105806367210047560335462574764894606044706494420920629336309612100622173184234234409257473181185196745163788998005122494191337219843056367150577826101951387810445559009024448968994616177866358250073060338081674625551731728907563862016736046147472804364051055716260261655030601272247590290963351702773880781000731095962027069755064545146878954327637929071133937284568498473781905883703493918845324931398736397882843614966125285107349248921909125371480193225463274696126895564286141761442584541192655525667638857102985197672646475609795214971911445176996440787670183936056048871093123725861706844998763891314329990049544344200502037121694981578478549094761739736795933185167439884077020791120514376031582024724931421151953095815170605577023327688189622243295001983031852067153442714274226853878659702412757086248163551470265086278974344914262578138777531315630423390037621455841874720095904790624231774548870876018643808798879497544966340666929990409106037125088904152908078128484276448539813553901055276051832795978007055712289511708647159853274226987759577320183314179654028877484266084806529434929576410187739889991992991343093889774796153404294762395900533357712133921574466721888995407932139427389961727429252089644418298502015505897683173035632043562232130572992437335921562912038280054505442847671977250198908621040763559124014229850033963750142897602704709490371919767835225899707325851372880070569284576670691651199812664744644980314406061111692561377413311496421999148020284552356065647923243439011500081707427052323069552906985492189186394798477159233605166231119108065685165082700624180824233493618960570468556852880534198972106297022354210542016929796042570686350402157411050152766287817868900767518300028369071020884563052326249566429920186044586757079626368685854219647831607309984018748514472920454733918701172498819968458896077351838694477099557762872930431471486480363678526020304712018577668200341052163902278143236743329762263220835217890516581134449830094983208056800300750263313128856641459488631604294131569710457807893474702915399573764841709641366553346175174555160730442820397215632490944647694397484543602722309570552878882819882069976324247017153175898201461181575894349352670183820742118431246300804623522424614404711820479538363415984951124146956654790033453749855592198090845413426424471521736131644154859001707185696811927130484645316689305262262681531939490576953791812450571323453528793005318965645035430758887654577803913966244159437777164359232929565908442991183304899539019914948427399892322591213819191293635005830176396475880434752716255044854560846593541790330904514950555712394867032081774372599043093262275409870506467694422090640884002496930929086671270113261803390424623315797847036992501245768850519277387686379506322020666544299219631241694511302441001836050753366753098553856647939708596491043302929374600584904455026436859767248287267118984787770165895881844724893627809401109652409683290934947322325808348079051577869703394277978588187548069191909810270630387952349355821633188337891280225052632015138712901066497690170076301820119883933750404607926662997053555915389170379786926992367766165227268075237356106451170824817566147927853140836778218629922169259724475929775255551906571842660307881951482834637811597193941621367853264643579092496757194586298655107598554855878403219840240302824136047047667236934665067595524154466507812727098558490701565663805427271355385469530117504549685782547332219080307163776280458125706098107041949024154481705090191466652649757015371074414563553283480331950772177606727982206480373741861002586558039827576247851660823712174158876224110763984245825438078479846738495618818501363470219911343334287809295704445728031327585991439682591592079260552934526765817059822000706657556980487473390402460066557911693779085935902944052568827824113978604363627360120869758224435609189717196354367713261606751082655724325417474835440802392217691407952291698182183985824713782637675730860425435291465976909455431549905330726355731310009485354232730404374772974022950065261106438509299506007875372562146988015931098461002645443009759011755954609952182539171389726405349456015773547249637437095145952478432364175068949850334597594490216497606428106943512131842979406190653341647666419109937467279152235195202305997694697637072774905896870397228667616346187992150858683874464045172146424753223404015526215398475622150057286592973682714673029400912054525301218799633919205296031295481771288811611550055153476611223776664962521205296031575536217338374367829513515030577705402991838038351916102296823822949481289826238181150316853918343373782258749249080928719255154118851592979941279741388908320970727331841517461865556092451375806979045217166707629756246019584969827882202294736688127577066779303471881528917505841642461966858948673038792372689978735862207682147165709949569456368540187197682013335826432112561038050819079031302222796079978063169966148712718216644978798348994725074748255774855963026760105181677552102538880212105944525902412212551381048594051420093482524459475706639345316577754477445509487839414641586155750815095221134990965417157789216692678944338778111632333704594748137711576419835021177009169202784364316560741456102683287041711115899060370478142622995858573471556990899119455976595636470693155653348419133649024064036825493147042206343298337753901152273841609308600616456140312765583810440823014780688015862532987750700920117478178431566202416523291498076697708212242878250128844480880986411146253635037614344208223901510183436655047288689199739343218688592179956290390143827385013081237414503256266840443537239704530765509772291523532340837909694741042800918431406528820832323347432559286027825427276639401489241809028854197409683241960079390592046319068953220776077096050493186171371634051630892916422054253183634768889633438079766440436769427602962039114704476855390855708836306153399931996406010650128402091606139588238758038392967659894117710641180496312743296337607438358854323588761233889187834991521544407086544429370096995610391011220315776738777470736320487332137004334150690667500459745942600761465357862399923731375469821577468728662934834122721127222082323888161105802089016535663814567509798262795591683986321558009321060122061967701020188149829805662399758118718943491532007531789770180476793784097160493668379607593914858483483361422190924928455361100278010025621207265090372452703607065686745819934902618959780202426217699736457973309440931250210516143747426043510583538076812258394166444935293391744835656146730964056564959670921302472658864901237063321125135310068254482628769614808337158935796693316876487232655841142114105250752865060580483416458572666308460636342387256244337233072561950546116870914381736365595699149635330630779346671342814165833276294836144159067509854790444568822669190800766549233747333916783213015186255865606569000658885247097957017729479489303040883825126696034441019357069280391721853697342323918071061781439231922832777100707637016370282294490705921956046246063675986818650173066595285401308022916094014936918046640090022111739243732323266497303683493851270025097452991755620848053407044880545009938439309492302560011902191748671678877732322311368277069407739885728383559192730023604754600103981500797894004278809173203779328990446465985000813273275121146423811143361477063073535692126525274592450086996991364313363329954380571380711163096626343229546342066833446874044361313213359365934096360380409463517874473337226119717576031549479420701260037928051144896736581627703048353494885300082232067314536682208419283807114726185801106682544270831629145447665688494391649457627528628166162141692359318717271994191041537492776622232048233186240334692418168285647766410197258016985842456694234724345453395502471416247826925222036890319638380633954151405163278723146397452501543166285447515225324474216301713227573475520789712238170877014163893128754076574273796102381076456230118713112777607475340241209451269424906515333344344133041444960010634328712822454786100948284506165481786643850383823811130903310472545589242860108926271697051737516524112188715543204139222734820923495232453056577623191634665898274489963094878830545101048266304271576525417846940875559778562093996624668579111770818831619987540973052387271744127771313172093439363343886393596112047172043192749774467305432134995846705498473758280352589529335234836636640575484077578753956790960450721980402161615880926099184666939426905925021816625830980829965178544680042847342491394750863907947605807491286240880811729032897545415513006364216967749697213514329227334149568043792833670040814079357605799062527855891299918056266920055726799288282777493029906213873056423795078235593844113993427677954666515672189396790679869128949309062570587596804360952140177564325050285303797830994158924014065437162681540642267311454464132582481461030873092552944564571810091404128536156042649047110614167468732721220147389919294009675687195335452391290026208970972644298674947594587184556706902425205524034449095572987042468287356859952093874184043713154078188080387545097637784449931190571843764659691689500637129745180141155305947583616960104662480288033885994433796943271215359875009171467134178089885995258188067242859969401985622201738611524083959501000810115371738251496846870587735104433587675623737938090459229093189727668216520229928292846878492048084058308183621522408095723729992506499125293304152662766061017148743869834844198148021688486960660627545774991295523405360092667310175327852444893267111148815186163665341458673607453042456444367122568686089571436482324096510113552945339805829426198012299112573430986040747101197710932837880066807980578700140343640745878175343728280349735828900935684219832300866722697692542061989210147647258179661185204554490504964678292311740417741631232708975540105567915697049210285275041715915943434258228346329048926727254880280337769344537490867624569732193839105316151462373390970857696391584746571245123859761227363812683909629202251479205401680076953668247146411499055093961179793453945502527725436115295932044467822122794408987050917103085173057373010650035078024577846313744397247190631039753378390404407986428307096376290719550061954988851305529272034893800421612595059387730191875336119547090077211394297550258883318598702490398055852031513177610116198088166407490234373386202840434977235185882421517102414531545572974334283337525588186178803288047072285616666638480322514077845483733711533234553401868321503209702959649403456847301505233116170010272690015336549592115112129057882978569010844008447201756940533255374472172376398302481996728047640104345227965034634829602662078018113719532221279437712500397140480441821268280237619066875286033454222404223076479348911312384269819592618250827215451053463457158229132332948123962113553970013441880442556414350540260426273284611821868960539344429834044809886550145146364114716335903608638984149589415976701256322765116555051849660126373676278586140773526132548163391206200904118796550420860468487905537466238409445172329880618957189337205737519883813116031939485942555816983944249441775971686023966587557165313982767518602722575738297975851318978409935161310115062363616620117427294974455053703721300137743549528636463351271778441513457780781888132390115026752123843678903735829202166601014342336276755854740986850652992879566034659206777097092840507728980143204708417131737518537073602322990001577170691411011819750531900394241624642580580084792659251579960528054087658142984951852740181784064367940939316572347398714045535625118169938436645093092611352251946360653961604581144219123028645581122528114564061399872622626232383575737592242514159552448892210556568534189436622420434812770499194643778102120305322895880644035708706900464996362877748572794618605031844576153306721249569111983607826566723297503488607427918130469247788877220221683283560221825705020306270222375996849368423706461107398962578990139309966280559024983620537294197224241086429929728430230645212767089931930476169195123671193594643463610184482328545498064971592279111785784436482129664940494765637527963458656746152729840256475135349403601042347739764452410113241133562028330009838698285234097300735026680286336686294622564399689014362505258971260357730132291947122005273598360223323516681586349183501908675175700506254046032479033128516430677941117706648339933287304775450155742292907666372652793935232969619011009590755261056480635470858790373572503316561347399878089786386369433437850346392739750069925388495239574720082240531773299162251000790608180411744941799498823619199541997619937215077353791618652626115771840061492635603190079666111591330490886896464153453101892820797368170353046626127729578692364175582246562270468744228080440293372028715910094626952299926392612337250541475399454033788044177057114084844172060651292521835059346355290739984093722919156108730091324054279328834133535520482332618439462303279999607062331073811058495669571727664818923008515705777789609448626634930381289492607431708271339338336367108458045677495388305254411010686067741759937693955406264029696223760237486424665240684253335921866731171327638931618316010541201074940513412812477808613045870357911257441249214323873153388931952685833081922101870608800498596326750815262652478055629100158696455126026234519517518264393519585015805381302050329955629336220441698431953979885522952766781403136405121457886667592651292669027785328643232469030954336967756266245742014122026140641948794145385990829334361884398874809363433046284056724612138333704205226177911374685228376796232045486881921223581393130101709934028433429923397515464499863493127698759254116441040997696302379131066911464644582865984684944227844399361507072254756139983832228760249792387226674635696764950354297406181222417638579452684018611541531104895395831552095584481988539029078217249136108351399707839104026052484142833309247458171168981606352566984767505250312953348408841646282132457073320876255882166575217039971931997074226863054412864368629640075561156990873174795822882763532082011822354486014252699853827209457154035416627200095038543981712952390571003865985780573616287378115099976440410251924413883194330296912591071613981354299739394776615702627638901219599845385959473971798571336384280953336539360626916609593033243507277402145503083857191294569708856083978761635520015657999117089573100686911775236075543459176955869591552001718529057817277132237321171870135439433605544158684842707994947783836222313472173715367420492100389873778680415151996660102142180153269124152189391655735892135979611298361784798936414809700520840532149597024898523454457900033896271539747887427243377911579042946842504425623037348531654635399327179776026112570186136937306842613456823640443836980750790141954879821894666044385619862958340206162735902026002558348186266545894020690574069740184073520832032804456860438970743209546463405821587363720207416924931604520823371465423825007096349547617284672869946262213862972705959694634488832300446497183373480086461743321753213755819084771586382682151740316870835465131953285738191467475339880030633829899783262477502309700268335481496782676992682993475986183569600600663066613207660311969279097751635264140371487593186305269577359799788101346018440011327514623198185149007562817381415298849084566306661256941860878824793757773400504089632677751331199456585528829438167325235141630603343920099798305018227855624868383578695940201133860417042018117205953657874290176039711093747946080403329154074830181623202032433368389572373902933873778811406928155688489007846714682137165617597960715794924891837562798004261440495886304803037634435133749336099350689677380734485015659233401025703565107907983530172808322982183543208981380210275227263205148313336048858024039855064167372196773796527491350539099553019858127658421681375547453690595358143644607901410100709661137977223549889766144164561440231854436733050098359276793361300235939733861465438875191255810064529684875966996617170453084256184516163066504276013527517392887121809522578398926294994048893407590236899509351680740733075169516732937524786429677495254725798909579315672615130321752273536169853910279698642874928824649556377955659996341916376877229438499932203121713369139520302407816669871788787497447764496500211846062161628730305983658229635431727398977606546330474926420369468021959057145119474770402021342266418849708360818206370653741337593056943720499067924973490821564823035542198080664798779888280131774748426793766634708403146142924263374416765660763224675525763890985473187541043998272836551682529366267854498109310237096123202120524973445320645343242359148920248419980992308915766617775031802155573274320385847504668438132995816326172410673544117136024628777445013323243593640394740397678458930450808212908565219405855516381439429951257825066773535598390091959343950129838174931736720375339315771933111538127477164929348368928904084473480431699124694727867039832568955764434799829754414268558471720423745115805905987505858952440162847980283305279591538598867269284836152346107457696375814308971958405321959261502572192999444214839806809061859452778224440348720838451864723517381515069242552010241599527841653521947505995799499763645496202912306526286684133668771267134585155257540726554643075948611060875035097347584767542259999096428337036032568935768817951543035708383213478215466508807976472646292280229401632948905106098129196077115304824800014606980972673185423399325123053418967329581388205700747364922743337228965225650140166561887410073965524389115854984476657714831179235707781579856946151168328789308947473273422154830495702209307868971517168210949149242825867388785269340475671991012964402808566671733086383657370534860842939453542983085802800609682452813221057179620961419928620999276022229804440819543584102076406888108299584758203939866705479697510664542745776453712267644843500338084443935204341325840472172147441042405695203208824160483124361316286043000257309721785897598242003778160817834915838634547109229487782221716302859364952794903755419278191843487237569881161685120915929534798633148903808341206141701898416538787109847572103149704644212750646624074565108938326565638563701942501717215840795972015174195157251827664512644348957189106645958703763360016707425701101624856977278885502384244832851812117247571642479250033171626856538144517053531923666564977046442940261232818087724487930346991739397536581479459579591400120636126156275015721069597515350567815076852159237388283725294781838580200037360836527268168689426063834118431102077363978966353499000622416388893137941698000226761637515140787270132078967803969013223944317635259150834533220247308430683432876898863104413990387547093676403788067361092803792998341951101621209309057327927643899720525531278301697676680908377590766956794108382784631848155322595107254266002879335350230270902657828585329170189334396912082406184435284981397233658969401799334907423973248601648674968427672138348300343625764140446906252692382319855939491817436905786070291011776720450529363528799526024565889137497664843509699197278959330580522250829333273937676355815399454163005817118036394143097753506740317318799798997579792962453730992827555946289597419348310879831256373540670707856903719128627916887688617218618475523572129296862844976095865811748507780638658886274012325347990494033121310339655727024107059718595963356215191174979702266568277259344215069989238046298520280690707929970831591226080131815613386384770549199102698193053467510857420446619256896408007205268529408294326615867548976646378892137891527915885571989379784139790176958040964873140670387058645104182113965099314082314321401202162538454833824593626409818259484596229031868837496300205462345789022210158972106956896070291147679241099540113457030797056874876925679389276522075935908143721033851523256334120517854614239771195233369817397894808887054146725050536476600874747824433336740015349587137283316479607169524192406168097528825422358923691929933209678220684460775953824917559733346318630159363031624832857451916619975561540906195889973873841156425694751779187367666039953567294518137366463774676892669212741715804133973068490167789099035534753903340357516405111432466410755522940034149586683166300958326397122642378107899998917247671270663039668297325989454602467506470891711360015869684802032232529154182669011633893476211312664865793492676097773158061615532624989090246169050632988067324303247791368312206864112597489151145726688887157283773050365400608941421062467931867907298049992466837281083172738151055171594130163925487781815293262448025442807614940655585951007581315167525098166139939312242223899025515601026540277642958498963332550556026387743006381161019454939825020648502712177806925423648876737558325239762236146416900632273635917509710191186417303101205279453248425072506647866303811116906397577590701606384352161892416328527557466275193349906232471632679170743675182659796162696038641835022437665688585261515361547602150187586623465297762999458460114265112754632998852927620069611242441524432231624112848559624414470457836159313757558685091571351817512342780010935814843645097664587069436350957864437499587141053481743506074947266400338188060107130830520372729711375167367200442958890377598280111537288578440855517086011925008789786781493387798950837741462918461669870499420634732924086112910499929404741140235282060863424569457635743148182471421984903551672387821881230553562303725470478579753983121727316487417866941544766638974733225744372462603516202697966835724763104761246962182068016287149121655070649454048753698831981516416141918314665269373254974566011652134748900382999748916319079818334599501083699314289435074454585146938256490177321428965947317281368209375851412824847182122960057002761653289165987679032093537764585652363018024081353480002891002100881836123635356102585145614610785681658217040335431517375279034302843186284773047473762005396942027683966183542886556823772772709376799882938049959653955083280669578935736100893876658008571761741332895168604710494974936047818477389743283202191486541916105634162344697334177044291949906887398375139865976066742109288781463964033195900678976448116665899201351447619416309131938233417974987461724019185988029172896288748969756160340613859853216779227181255478513915870380692938134797209884140625566259898552284147229730914928897259418791008327111205387327822952977069700155889379905890316806173586908316920984220606047306477852534960866108861998724075196852157330629111418564243671006008610818999287126912047658453577078368767174185059994968562515420280163943256640451355062808713022187771911905366336946355075483161909372407767050687834011854381409176426888993277720326871545467625875405469605887130667529115095486475894476391607578387037765038790100020471408446062929396952557390382263128641340807944576204327032796129233267764963861652115378012232306783978397727706482893375467946392119356932373255246105325187283586315817787251538240281962487658973606499473845143963840791652985350755196953577978959656551710903641693900090274857123387540354927836210560729599760568211203626319538369688854229457576178095694307072254872747652500463036119515114890411494849549492141653418119772142852154657595234903825558889055104639984445175756707724775200564131142627050155769427240891204708912120215743826074061157873239085718288524528792632899971097300305598660904528390602659804776226116147366778363066363214487875887232255086326416200740441614895170484836481409150035304456402706884783044967807679032914104838376480176303213925738125048361175961154903115579013522177768842146093418292029716967338485248558526887784769836093572317470140892310853674092629063916659369333004735694822335978952093558496856460842990667208713630049276117262678823813338940438859853461482630718179772582224182435410245123558789117736776531048647717088999111687705924519671625301015239440844492999896143803453429034814611285591722637132345243869217246468734151488621198340637969012242231425853506537787553126478967078360251666593222261334633735261979043562211081757588685467132351744494049572324509456443723481179948163901271181528666972495261713687292929710828127640527412058236688662597427646824215074342100956645003347166632186651082211134793046344935308496716543423314340451757756681237048607477121855921614877878771368734657777481517672916310889174980384147952664489036391977827345766513473535658130184588014505761095610113980255786688086831920371651452717383870654036653841553797811450217410984573467837617930897661463539684799391688116005672942597734546408265866270962190716024470897515654331882553024213848628268286102943111196622429475848802280678986324461865414164672972986877064208269420596261305365722452808246728891735115977062343111467544326365645030936160076436431145469278310870093182032169900870407623459570051104929900243181673538403489171889007053643517541831671828981524460445700377304390694996958427213998721540512547875949386541108538523252342798664976878389764368292894708214524617301197811786836822937281855142044017747766470540758522740216478757723803209774391531151730754745873159287354961618390541145373850620204642784053497505947012838467673475191601389867205427021190042805951946325646722421537938905594305797376497696472937483419513323395441218203048848573824772463087982425713557915821391381627671325783182204316238457354807410409433152255178421044661147493014810220075841241963945539659281700853854428449552841817113531163938563177283575731595176691252952608124708348506623781984532402278754949179677902184606235232278411496436636534118839125827683534336790118970652241570642990948119212494091320714647698744354007515748787302825414558461874171472533588330698258729599263447613303433146990720835640445441705725863351811686683158304715871725533695469574097653378931779537189209613825501404338844588700475337198596129427653435046137573045739932938267720914085269692558991025671002755409976258907967610262188318780737314304730702453241935408813953891245999131969764903904086169773994190149754517824039767998076436001080363584391673615435840835761478907285130566470250620777016022696711919929352636335838266295758770898751942202060700667873806368220961300902349569353385032634820247551110046534025147489863704309529676315998381273660830932519468333049914581125572438507959758399098516273010714666147447109662429964472499203231536846453082259712438232172357834762473586163124700693598666958739122169654404107459949114692803766633668122387352596167940377300916482999168121053184716611249479481864130479834444296140095519597156609315783521855544681915277646073659236830242672899260078037072134587977799511785629317136426365213991750858134517918464974250316629565403104248957164351299393882423459562275933108991678679032394671901088939814041744751216291998875721767259295749992299355250542259825243365258529314237754320969146119934144202900966831759700982221783959877059332585722705888038833899979263834229789152781196426667077726362880968029810783133273880699597033017878587516806248562261901716361613879562291290222311976519552248871153897856598547300823147741526979559065822414461779544023982038405119295808452573644773302525945490693427763098255872829808386251048423177497201641507955627200059850869718159970658556755650700039783842327002461396464236953737567345837017197600188520275810174221293277989241809392912234731611223564981058268755783178311024669419157912209714527187624705529749836066237738547025427947825774725126856479912467874924551635273496023098473667980236465411894012657520445325222744510115877174695840200338397767650622194090657668995594085371941849767134089685570257122605144585734160699606594443592642985372644701371105069491280057787485412665010019355115377351955281225844252282242010352769761216781764827235776985848597954825846108777904644155622678881084314370133557545005239451962196520182085194765800415265186913290449323093760883602123512615300906377837120247122350435015668367985397667449699005210667099927603488625236293792316871550811559278975127161295727650218974967648070990486144717693173545927892127270683158155459148771646651753899037585727813407346644769409808507871056600580903057351342352634152161473429739736827181116319479845044528646483484745616236704937728298292121308967089919703963016020173053345734037480126424252774566153572672273653980985099169510456016354044408150336761884748359978708483905116324994798777393742484675323402080293904806134585000528569492240096769397915386512085367121915400206716784717780633132609047444699793752679764234692893935104856625550900321905483440629233634758606809577700844690403536682484060227625803618842667764169276045774003300169847680908498922922195578181761371059748027752618953367905208368082738311214237012508590546427753529232448452597711498928021854074793910686052418742347937161598260748106228300704340802248173525324638051605450807011690445458600947993241944506663392645965467604744608113617879396312417534682302743174919160897978793739546085659218747426350324168050261353760390009292818355150035441558799260360325455867781809288134675468110716169913751453596280694721154631054831288062352062223808980990085500849854961762508064041830868880828896187403574012884158063506330959472350001801523526100753265348893763610377475020481845869913609931094788016685369745894044849928814842193136185747757527031152761246982957797004025011319922562803888042447973981492290393352502903674213660957002657759836497992927203795715468805434157791719796560077528996904969605955018942582031890400992712714939837440871421762451635144573876360469900074105814054905947646318570453974274284758864982829780218449177851507061529412725542897921954946169074390500988314564830731462075947693546287141920613976726095073417185175712732450623585130246261214174102193867970071678252587162629155669272059012885791571072589464940119915151250964527195408114664633883979492279511494427429819706392715876175041410384008518407860553809871471113857430302470470790778509119508023774085619959878095846375364453048558018513288967086475525909247977665660891948976478459987154464318521018949858155496552528007258628162889697787326855539120615293027415856325889482942761912631352994473316947612792497816095827111099267142532440736900229062454577699793634712972110904461829928022785201187389110247268893370021210400808176786850621145767148140526035052750904598852194210551689276128459191046397258497801347804830233735438727055950889047057143763386662747583607394896592548308447445991416736296022999910679999535706773853203107183673541082176996648561753286188506792251289971312027772568210391179978195286635062017065313407196259843582272789827779594897891812730768659455879150175413910400124954098028521330912026453161458262960261428208455213686232326790048896537821143286017805510124212925458066215369061038985066610951523010280106536172439841058818442037509690760343326101221613523916129278080644273156872955442302854756001552681004615345751815114342794144810466767126736662130448264595658657987077493957685562894689544746822855525265969618411452827873645603906565636724809772584532919437392865811305185755476897019959669672967157187192966096629411101912948637024296046217822728853794122584200866236604816376210766559432982678560254935176583642047779097321727652523359901461745379200311500047903138921918203279900387050847551756693602198195174512698862949998014400849339831290696366211696751656037390633199918163355197866984820385689322976339008270303461785780179936325679295428495212577167998247773238634548962918098217798392184381076182821856890427596396606510694079891960676966346342231563156209409973776508271883546704950053457885884807752539033600988761609945232274434060041239161395220968858077315867070382007227880821453455741871513667430035614545565623268448357241854354504062880741555074978461174760216194742472072412829567204159681489989655278944469672879811553119307805233507922975531481174332947051674026521139138362167345146963256700982492225089974462672930533724342053576185168762667148879876000199743661048034226170958382621019738043877359452817830066673348316147060751321159143096056699100149289394859294666576789257078038864507006642892377806918553229095746662538719662831285970224250117099011127315902217816694311091584789152982408282631066353579017768612028572630477907689124331853779340616342679048773357853709331123519430235858180423806057808916331950551754475294595046549411093173076380041879450099813585817475122972477361569697014367626079508704608735229558796031124385212825436873534126344529532824844430335500468078767005150166304066779888522589127731007825771612265901243333703911871209472560585957127632350518793226191486263944927880309034283143580700738626436447961437373478768610826139811890405001232651175232971748140341774914905616272197031331596810192070579816555266904489582286458367517376129980691491044423011001177251759917038250336449602423826828739832347179724090833109002356369324910860605764300887078644028478474002818655376795306451074090265193460212660270170532030131261928182039189450857382938145508169104530331641316752980886082967859687699483068985892437509544519911763798983655782211250364533760538053062220300658828366032372900807494331458077589594968703308995409310197575630801006102394689815417514775621400175128045916436588809383365682801183212450675804134459297143176449317971118366582199851377628535386981951201678247240551553970659671091839462939683773961606372111022314406271049690982902382340195741083025760819962067938538812150393043584349345132954246753650189368972801530818788872129927359201518876781991733383738542569501126933712742111407930657864717087722472762093410127751808696514880394679352644680028118812706232663273652997961778519357312769678537418786641314129504542245264913173553794985158339182281122938708904600573224015459486711561511458752194415852596177918207347946967539975297024669296338028746569951975140885606643689247354232957117654693727465116212687143671714785847855999011655214629787605403674594577337245673597164057294358635418941888909025005299813266095534972107348621102901960219616688898638050998359213240460526553786758323267865076162141293770099226615663258625226002197244232782917197609781747235628574971679873378598926877695919043421896422460723934427147750800469363543349805563161511047942213892789650385897050026857130933991287855507721558139918225625315637743751830439417410242760693373820350991677573808340426511806762648848879399949336145949796186854961368006825223804393228501589604587599835371007131583694384446696779010763802806336935541385680441062894364148082443227658275479446480875523787888804955004962259765079963501112693334938658711203506658538703989515286004655564488800314874435604547314144458969427778701273267017242407362753262741259736421389126325294268334669503929411167588955736951862705131214888321743953370347555791956777299288570114644583261740685200878773218944235906735582165563491314672590685417088562026052202174985780623409803784888616932505431954708097598546290997735167577800460839597279420261030884867039214173128825204682121624566335182351334225084072615180317246355811849878737724922488056687669492958921632785895261747889366278360166118341927941722173380516804166460438807766398596329121522294257037879270963578182337237273976401644235858527906971328581925152698751009502983123243669641720916420830878785177063521050211889427146056214453248518270648720524411667159481810183046524241886257847980449791450839591882923647700227937348241672260818162428006882484954791779019622846865600904297653531892971119190439178241486671962669357255695624910310718114375384056317209698582768754243294728128104048981267788700074743718911633861455120113685831067152530567542453982401426110961440128203363011759791630510081824269717282477399218252867850963728036591072974926024339579610374181003267333847893151473760551135253746980871436011051602174520476512537313809146727332339508404155879381989938701652056067883266599454377032581102454698708353155353286207438505421344074058372086954141294803511933886313269541469157257484225950284562855951503424065152736590417722694566859347335055942154626219797203612896364437317609068530604845817076435106282245035550490788174845796347517677265349581900821664297358307637980394198978520490511578300690896824913195155445844610976051150848994767171259575078696408432248416672773092179758914536704725096819226177937859044107028860125083375852328094600126473544718326199590173180978358722571879548673944230437423762427599121678210393450752267140881851069326076858184315339397260771615811837512299020046800199216421897943991141133503770967639158716956068594039869405855269285183214245526091628358811965544987772178018790106010002098821939746992583567254665268641505113123901828553085661362326282895135426657898547051787874636843036251385678145642546723195250394371500749574126985972790992469486924766155961170642211291718384358532603974400661310839126430686941035234929332557691655404872366404354496779223878532235786430578902268040732823055590941114380093526242547651845902656431949690409219656743597378894250492945429668428178818639791317976564710288043409950811917661885821472081988946046659561108982243530635506895046497788189548960318099533847116276108992210163120607981018876346400238007920523918506457374454102657265362630562808467585108539046679664665193626938123558854178277667137205076916087984466619750986443820823461217713256141833216119183310464066493625583994354061294835251341774873682265618070772652844726833218538159670372575720299106022237773370807069588411694787392717675419044205802030474101807477976915453344931205943246971990076910071841011826061179869763949678643637144679401151995239648722405562736727677106086370955302632463057556800161430371685482327141833815979688685635606939563667341141605657749712435243683896089947717252074837169774660508550413636524229300305178585853558224214263892756930899107695718962642365364176034370383789186856912103339940362583427979679241683149652135607337895295775437219364334822069178101871736589006876716227535042496475448660214483680574349233877678238283598617749417637423161888355390094618856393086407654567317776907469975044147650703955913819096132093370625592825858232360728238287945402795109655187601108873546792404306814763758062690768330341205691783585946719723047569149357549310074727885655156987851492655876214130151822093027955244915652914192388153169648752889376799453900829885273588161691485741155907032147955063139237296174984567021156705020171427059693748804833601946700440257260124330899034578244357394913129114387738791111268994678594507202211382688105010804307765353886884217117631041732876381136934037358446821595890161133766647088907279487694788445542164106779513332469449242221808077530334697507007206624912295664574940251993266346776472892581969579494616217016162132863339187230612294461485540606533697470407971138540893878068471648777712218829930052033481640676626104095154349153267247579810512920596302919300851023884634086378567106628832947187308555495401564109465985366568045577296882231898171836453230473502272088577177755818194917393968486793767179368352827917299524618200147678785506025955081473513392040882625522826823330275535896405383232623296375823222173229829803452360702979818133845269613185892964251431600436921070506873433009656523908582682371498588319366900825608687801983768618536960361234888251461546699724289749141889654978864768659891360860329453645961526344249947424534519300054432427434651083000853396908193369081122787587572130517715061943743126278751136994731342166812406902211999319873019332139018637221576054979851958220908685113785063539127847516170396015853616208804637360281217132902741100318626384520210579424942824673818905018945404730211495073267365366710050408406940416518688979085611969673706405341279366539839321728415395622676059576502164233168336347901505850768634063141128979777612823579368556249344240831550263445162437515262715797195301135038416420163223319911916288739536001982640751868472135920953253949388292245539028115155908299403026401699061775713642107249808356753153920292501547896307733431252664879774873555288102036385885438467200199344000269583400555911080199062309523863981536633452045328808624399508772344279609432103450447055322117917397838319502756549453135203579559381207157453005254604480542914776401089798760165588790098162818603261862129479419937390223615290823608982263694903560084413783238550340342291692091809114522776370493378394437698214487012463023121491769906257159496687779613126902192357947207560703208203227303934703009211634810030698921133972783837947295409680226805654399238007166339569919650598199308384073350821043626981823254144098643246855109785170709391775412278643515638170550919437082632149913158673290439362480009695358097858788030158448711310737451676866632889505430901161881275242346085618657049549235335124646362984037831431507356152915477180773470073643695092271844685760572018828324199148510572573299779021412559339537009517478271512209161179716475757380827789265909423997719324871862026191358468400808464115435041870943784455757639603433149045851556934938071880832619295772610679466854714050288904305499614269981236745676322420898752502456898052907072011294411382978241963602609037936116112729242990926400159180791811967612743873137659932104781066397891367769586226127689735928464244813716541371643103607109738534862691834083312704899440331848894696614766862279329803319495383137482281335992422692019121685321639806525656889944114914862036262579767678232271493967944232489445338914440696326322668224290311931788439940584160712833471247648766954181422399742429512770872965720750024965932077093499466377297560450295560094410768891803237231405728062489689232159726064677726612816078612089008945465574386198811210774283915267711264483163587271894247667908535821531867578258277942090259000152425585057440981707336807347149632199107535999875878669623494367227572265967894632393724398019902356158078022862239141197721254169541576176951259125635918024910727732002136208828825651577981539035334611371904684820802627829787004847498915640019491613859372659623507812490167404820679354097403283428030829440095692478079370755809685610295741468560699609251157781601100892447673758724499257512726948838360413619384179545259199895589957134541819794254262425948389536102000689307989922179282100118044478141749421352284474634750110855151386910014101223948373231381810927571267554766878012195299621611976348508183413766386662351900601798641251381956074321366129986040530280858668244546945840915635744935108109430645162908950218820338101531502953331886141650546129796485490395542125877674724627481213952072969710230771702228937746192400380604828241703805621925046837901778559774046417206474655235950423794486873909326384786297908457074256215132480250686507129850446322484520157871809111633067589903464472636456800925836065717602108354906165656027699357663925419093284163842658377984372832421132993534101053033229101853788156917922655445208663468241011763201703878046121912073383832356173643744824406992661851564794515457855923125228837208114692838563025960463895722115849324830413251329400290318169375498943943457017922533914400426045304825686790103306235105278631914359650256376229054184888259555647341251592217421794936670737550209204896458588871996016356078539303484847463508985351461961139979244483768985720452500914866140956179948474539315452128947601493931707804438786151085597450526827824185342253898992565029136230526296963648407463453384786108360777888743710056442667417011332385467531893386440065886188658491343452593548655871431770118645598848495470291350916356124238932554211770268142407268022764515223965457854302846964035796705988734875942390218853027978832634256607447945084727303364205547449964048059848085675569105660309996668997214553296118000942369930975818489476109067040704721912566210840839248027428374411868536567586580560912347485428024898925271792909465498960570434933245903579760993946266537413867411786872909875082673121099676173055351656277193647223736373618051517465607830611816685615644252457397929838843583934190299538960919775028717950912253979881847830884114954875985859175920034493424154903896783368456906151562687788172657300305940382457663273500282966107045181037944353696542920386031228865939315687746185809977459769074197586734873653523870477322209185205915851539690391310880578692477991920535783631226182779983116533273060505314406485788011786825583247967692468763742598643622933646161056146845997286554268848911050509100184956445297468287123146600484479359089015019398729169503914388259442800939043507625753380359907321226017916616506122679897764214805400835940120725023690396736670781254176873007937412980801469257720814106184231163067269014764587603106693315990799041068316038186858245496500581094350152999734912096186797444112094511509557073677273011179461853736351117965115050046966307323110892351547523659726651904447672506610665310021731958398038504276652606204806269000432521820837083661565382099585687301674932305494296004539459881899284806630721763109149267619673048303816813002048041548460999273458687263010774207379824913945874247981435406686448395586312836563564351474284512693754022408059740397492926071186660869577634527217908119184649621806805137595390640499400185812518633228602652435907680455612974377779769248287236598075440031503342970647141751692551005573493172287835414792544711260841254947576094443423286981706673918639473580252120105006171569398381721423197184084030277636622419898009698816796759802712025201239610569280417592629821970888362238105113949027200374837927859382319637088979984403225761590437382639318134337711848229369441569969429699465934425766075709345156757061652041515551665076282406076957769717778525551428059105895986435274239981423129547949491781362822524791506374017155697561397986051162186032928540092855657668794347029404632505211221881165272236117439204835582281691247054999839824583143676846702107017805310774313209151124488374782894329574555136105095108322924529222934495799344302139379219503514810516054059117195764815013377256425411643778906718967302388516474091407355171788462524398069325585671093225200711466028834085554460168690548938555767996927854011798663913385753504685736890999628378191848790459309957878852071663793833145531663168653492307523824601144886167277814571892520330026716957340956211181060378715033978214041410609840503307544177073247938507231215697038301477935736240099582227602835909804955735951066098917557958845367086121856890565944241694438559059308272992781751330540867111540515666232215367986409768566929338207977170154404112391208456172261310889298644094786104419075556820880890075590061959167726181653813884516333012756756861065224297299070649044732405927872672765947563831821182554252258054072987107108344749514091249643029861353972352270133584429808574393492736469948648089649611527493161934599775537113107032661885140377685313167686947332228719866263726883434051118967514619359456766129847879883923060295947940418879262100968225061229686800750492761740472067832777458961010686021365608447381341075058585551088650440612355555251025626139244747188329865971588270193112027258020009152901172685836050937881925042683503099167881681181222916168580737866398263099581447333393567564003074038915410306953154921076114586890099499431268115947108380448733682573144614947793379548249239191322162665407510737888204488594579969162512833276616256685513072788042118020426487768683705265594710381308236806845444156274130697595728468119494413906370897948694118938578113997817424440251678538590739331252676426337308021619876257055129699986266275615159057215080307326124141138610443155196391912410398508223330963184166551061936077374544886198545828506098509673469814534673515428944721939686060140158167664758943275039646534457923641779257619903051697871917264811310804316832233698298094929932353161082430840527705406967309703328564223660793864201552265754182841416943603149640555185223714570663002024079305984724168046385664605753074191468858585440351202929750877249319772808143019854617095532808580012727908544374350618940204555367548653982258331712606444572894375853111484966101202540511692292611157906256161878771767197040334954776203654664879417461832965759465660731383526289698462374722479867014937143205332790743381653328111318000569651633978858963649573539622290202368979010970416313635407705201132013297214775986587975905329746196345777429115640842453119152721122711767958568452490848999987627636570893427152048722683075218989243829851661029975645959060696701400954338434763030027635267505186350241185900833571971852867118859740230088770986691146869393776987565332698806908996601766810776971167115371438071204784036717943432877897190799838268757648921747367515187741836755955605968320767385542697127483459660692814125289636741559533932458228552559003442514591969740795036994557095121468391762911004901907193596369573258386569831635757381131629117798120828679923154100757613677683911152009180440747312543518768521296707187647683199837003555097328884101980657205340545106589613686273493202738037191630209129179653915430675339531519429408389319817133754978594304608831401486244974701532639778327925697012495597100228517482047181877767252015045478601907851891911690628185442146199883521084555698106080181731224088800618885624727891690914804150027299597029323787395899419139880209945737439111509517365464320106730328321799310103917435735325991349540816292052417823403241598292842224801273586407078275960874300911909472528635658201538564735045993668366260025800051311295042353205329410519102770406707267879753208675189593287266373172095698492312790228416553940015924283726065551480609689221762025006409930224103277909959526072573673869595493895634257699696237674726873087955916920414821807499148908265728180153338662693788450541300015789766964109970491949580119001757427036703129721825700392105717017194643858034494331470993682453730619014572263419081357217966163407786650757891779068530466124842903880129322727816868916360841418237273282137209687784503357048265216935148421142943548858810880839806904131501147994779679411320705984830969883438984768321727021692345431106093703333647236459743366383524487044743927549864262769846480471071422728327854932735162450133474365821001760342478202838474059348965818816044495109059446012093410970221810991873205960697724335350002792144886706699573385990993451840412940491947712483582105061757036362550435548642037010481345512010024681813655466002586817478666397571255423771101776913467457624779010852633305358629838410390501330309495203367680101837260493653680457984387887884482013515210002824893201827392392930056027298254707401951410435820682151406481509922485588918288229536320775730621328651415278956782109291915694562163848968498705623515323821897503647166966754383164660103163534761789077340011722785756424096864270609724188065059566450961869760459090721974917828882325401692101410306638473673895353401727366831175330268106914159925778870150984410488284824810882304732403859541101354577122932802433661735355413930282497202512264122099367214590998793407611386757811781944779822988984080777271949103338333927106066674727603773658261329439844445467599333405749614992771622867190794422953396627966489308478997622727934374932712548406010655592434127745495383190111968190799943269042072852443100437484726536343216071452516119222104293179448084494036749869192083738638937334692880706167469480638787831629397422589515236911671025538448088905211021464464271839952617099780016888365874045919155029510901861483649726233875665686539922530224535991837917275826153404264432525626859627418346614986073029372154771927405075134045284649264900337543039839173361251680894132262727045796682987495759816700540467805773787702519033242194381253488784368861150490510960707709431057371695581278059206527697254452593908420526541250605878976209876925804419340845766494853649833600730831179787210957220637285877357297556199358689861623731569381088352645222510607201050809462671052577373346954672453732278405363249473525300213399247399421005251419164871765662401760605146052787278480831981560777226665505401540086922034441089663586027303123019001904766690885279606415172031318614729142846318397925169587397170215490144382055937296117721290690687546528687383372294052811478089261716538533974623335879844989285766986033828994169360848934156965987512350981458343742496919207748055008426372299952774029012832502151669841723578880509991119748005139968147548070516757267729948343668443210550954371743686537856706815473823621304531676512140451860774504269662993537219623350651187247674480884781629139881972564771251379424010269503873445297796865894926314679681949731352690204970100373951774013283163341863630010752936748923663829360217426903142842231103472113046846524949286856631428356836827476408648845425110577972285760026789889546268312259513683793877080711426924779301190683966063708861718927442543599374268177967948357495850252279185574052881908993184354438128451390949341997055514765464427026227804565268847772303264827620079698979126344489561981462642847647748879889415910247586753060721761200081589161458472767834149583060821007257249361246127100496062391063112365463593477129591952036215447894177298214376177067176191537602784159532505009511361134054045294393136589042285519115826008748572347759935102635317562617543564029779815482198133919696434431174239428608328330160943726489350713588463534541204319383121519407959829002366904418938310436316971152207591545330462486984370790711984722264529192422821139010454467896031510224654985519748281764345144426151455481110697218346134915689696325870263935636593356759103244598117909089087726895153816189674238007707797526759845194293850808700751444976241688359185105709921272127883512399962391099356820037725719757546457074660888599441738375760548312728980252473788524484430181588329047940236112846686883999234038778468948552635338887541409350234283806308579040243204985371630240073401602409457491892289828222608169297211085284548218507362682859594884802309013662216898742955441602062551675756981581355185802470084743174243603073635392466302043410013743623593144538207045752308373461683231336121211757556737256702984690964170668762640859752657212116413579578992732232633463183054323255170055829519422739748076863304300193878633453562649490014975318377634017778544373375250358091005276165546011227742487233450341042755111389961632210956274447145141700700329209464975282506197506245113816203637475821888975353571080411767848388133885699205840594260498054013936907233110047929379721222009760347755589616408791750066562439183337646947521110893704914842400582606996842588230906110218272745238872046638110204171864554318821982915275185731814135095357994793303979489147374493402001584780973766635411310260286860134028734552968185197324469386657751501324063684943633034988528417479184215321236506718940137521529462832507037141032385838391630686431457511831277270701121401140592396553403439047963486542317980196990679009105358766861037563509530311698037519669695253762454989258533537723235636749009300777601587713714168837078372227489164413732944263001715215466388715294074263844212247682712203978074512910204396489516232867441408905705678693860952620958008938919189163817082621796776379913593474833310780256965114457844366716585307311526034429882169817159517781312518247376084721902955173585296709963664016773764498413367074972978978663978063821832913381175785834846486120561527379029663869640954542534971440234211718327755756858077295189184469693499060082277348328502702086235200064779183327403663171190960050633458977501206145729605722972237204659401646123635916197403926829647270964631169663336538524327181865526215185875820385473357842098446572467557995895277741471537002695753694560031586872949476915523781915030780500548774088546317126219395449361183914097604680422450782316198119539425350670063980200044937304755695729393859731434146164507601879227141278016427062299391084605854075336069959255734612372172705196593466135598261032206873830010900633887598321479929362007580020028478354160361727043538226371533920514454107660925883689668521586646674199388685463432359253985036466741767905618808640110372939401735707315673322598908548027432849911182978427731509274379174375371405675253639964048694121751173109136577872231579028194035056374903558422494668058570521385222855014301069457104632762388746551820304588001464930860859582837021842255029712867552376985274973151203565571219114009528462995674192869939141910354189473694507553260287665510600511950002363653425615145798282795966024452401028918827516173336134891441124256774591869739585127227318337525672970824850481500442357273156000514204196681648405612326764624721053119673753069477145329896040804051090316809774080782272388844734934818442985236211636243640851366858798789352609852089165196639728027582799138426499745817398188855153438079955827356339203454833197715687262936021961370119873644192191080477354261876188044464871422414736015862039895546391081524781519875921617930282115824068539130988391371145482422197599672914737746278408182056625037978329608199237569753745175357964511285919762894839192425950821599103130453719981525164878788830854414763522853346998582426347776056198085602335776284942587082466267869022379892036733957218117410072543307315588387733714228843176331206923825900618384029159477366646441106354678447336826620600190966360708684434430957467101717167738930146754086239796672749239843094750388889229643781693717256977031066475211979341860638669172468579098412232572791728417755478724588419835057606786723855571036048333995213857369083083791889815681728466136327186301147117043240399325111686600921238947483702288007441226757173662214876860257293643948882887139857072684626151214655529301439864098815672417440137729359074010909106510171729938743467674570810112918952596307567356789314050326743905115004265310521891095871720896365986482360847516528393336050740874977066790886375806933424653745282356836156215825111531395050233288676703252114282421360676163941337004954502993696934958880979104209577317864681362312503438895300294654689924460721825684661371270861850645670706068817829809523957495648846652826227231754801189303005278528368989012842627914016648640403540704398845671217053996549254312703253886174124876217258665984584562516607487283760501600562951252082713879502615796313077554866113670924397282055507924091882570076056030629599755921943467283095276610464235015442081620246715359411738317569606377951601833329973341322473266934707563196150814713341139850789620915482898837629439626160025285157701833232413952234105598944729090951533187622588489545506955113388826337630886929513506443149318222680379082812877148381699403981608686956077694351114533681553133225815550969847423934661405189343923566571199888446599282791853324174116727168048517975124191027875568240995259394707471732970281762691592924522973991565512352735832016214567075827019755361947064251200917514314993796890513624256729255170629157064940175474418717436331706055720016579678477766384973473685148188379526937798371597070560515296454309359018676981226726084025686809926576267783575502805434796040906579993668004043081160484177664322490256623034654575172542548584652769764438109840541138892341657255291286317172147016426044590555986831839628872134626159980783896210647176513962218993043424421943295177598177636981493189975926999955883492363570578094952743570886556876196886484695619880921166713255543965511726027007504780486595774088740494426613211343541991298054797432963899337536238611473788419304219637726299228685734017165995687589301087661188333433578215168971966614714372468185499376965269677004212355942326271418398612679924821885743016855346760587426682543390320434105876636870323405860248605031086222578288351081219589345626827633032593290613381226528283926564594142772939083032600633620550463913014498599452006672065472326704472236313742674503631110084110071624142447473921865975890737125357691138361678103535745430346853603502825355599558962753294924375361755868051101783371786444943155773588389837286310718694528200923580382445866651005492536814755486006796444652328983453653334340549305907061614990992676856569644243195596650007526325133879354287190816189917244004622994481871696465346755622857002366087970114968570189649250018911407110184312966653273828711817038147188710640648601711937762614806437275764132366671189589185877160408563377907555101715451711968741647008002912403327520047288165593126609275936532106172396129249105533462339547831453646352098398739878528824925575897324148093213508229497712705851010834497874039590808306099684144210084263823300268812957676021366501669309983249618931514810741320135724191325994030992110688284547408992779799524387195160580775347805004735560233396621702266386642036474060857585809607804915191512958948947620262498006878992304522375664863134573069538742558129903848732427630937625198619546170665722810391901909214248348872334994938156424285452962991466556288980635516289880169194284443856970409736462488442653106477775817517263248341621592387722007118320229632301652578264241216327365267738371802062876225636991986946488275613481157484712544310639442114621835393450621906439378377942768432612132287819973741543258310995362136744768313786024378176172042119504305375459185125938813782981861385675603951457636994034570355755701683604198880270658981486867570301736560195054101780107041870848740134569455422733226210524192624527340550214030289506126588110727633888595649556934815344636358408284858238244103953246146164418315950612712722162338738026782192074013798085740301653272535227832900539836420806728253098879638685051447745291179814278324402370912971544990657723309603163746183937085920221851401786585787875777762021407256789844962511675012750534168758451514627527950205400039325468832277531445306473342218253848817741966164383732407438868987625742548004343663103713525302082867909707767313030653850069482666015962967789111063599091373616427030841025106060435516209055594109954673858138052421184342690688737211333935283660560481014583759736750338627627480646189801280822671776814003240104150692745495614318453882868686839992319075283164587364752902608773078925140586073270483042891640235577592707269952007255671370995110973796136765680805682949045251712722392680294969422838103013312440820692422122029080402477727554017965101669795917052961701566763630668192241973219579994790237592871643993410697736499516587325303634612081557661178498817557699409932576723786158312762136863733290237563100579055490964363766905493882793957571171238160386312394300005371989212435257165096405778459206067407903854658831622804056457178524489391269291148401430988861048333393088928643951839674210842523932767017669702732607346295019124274887447315311419997129162210461817736033621762365391237516125909555482608640818621509669642013073339977640809320699459280918532322569144819482977270783138058024578509582310814314844198387431064937972494784783292094291482564135497729236972933365911460702424953098488946564752436915372698356442439508673460384449806814190630284997195250965307936804011659340739565084707370325181872556626736232341010227832535542016499434322150519886944709276563257045096002119523010571590602599586606723311866338132745160979912597982654586276991766025311841894628917258838472812462854194531471850226626689947822624467970830540911423638079458002962769294947267302500918137583781452587371076284501651882723019200677646098723802159958497057199175051087746685815141675302221975327260680682353501347596172883996439323919766507641424194442257330381295780917620642299375105634796060775766896334628460211002591440000475885290894343938246933986553138301866945735990097218658309617221279327745533977463649847697518760304842501665523521223800734811860956956385711605402649217850529373210658091940308521563573161586563402219457332322259044491658709044148476371595463609378771519540953653875230114827041465998230766926118649770370783662529801903064301680274791791834402884349673126953592872475544899901702991879629822770609676626771564704994970144859933058612464273131671842203702270368023091309920809790873947154555267701125435630079946238041848702110329689964756503624979748400674855703364595857067849173266148268696167825222110323693199883508089705042355260618853790446524466391595829107808524319877081379133640132599352631042162313026383043960018874821406601757422194099249994629154611310515351465536312419498335358007509990068362233082436425811493815264741511334278396806427026516126509479706523902719361243351532919134458963345547647893509399229992740054358473834191286529336847214898436758362536885912306283314237090704422442361439543407157232946098028804977507983962130764665992545735579015944203940657453958277686552199593935666222844704722906044283326454227913829793671066709057614377964420624769135212745215528078944060984224843997756141164419025703229989133728120588726726514932181238909549902113259474530871500527505058357337894332769183546982572775055241107352707003718758531522704419317332835059124561814223848956784345840905531269333990286521915357640012202673360470031539198028300769862083904804545835893289036386897970694267997802989435444400123193523943850242236212736570895994495044286142356908705147104854947565480714458214445243268408642091753043977715569902279490603944702397337364586697323751770553289007988741888534275412327538527162038380909407247012562861038725996988276019505967239252134613303472065381992675765927608769706995464635930533423455680252397194679806877491554387243147999705595863729820793463503633542463087059484357884397918175264178127713015884219045362673993529762726578311888179116332103232496377772229971060632902531381236005963005991410245356952853166888038363784718470921522138474067344337394749337859596392747728258691573434935573400101663784137413298262297764639618296814518421854904947918439375949642312856974785890047172080392810146412494888751381650820203926002628243657079037708975839949232346379684807761922918957451371535950753082402010292003461718080125173674722803258650953788239515590710562539041734483967887820481347597627398742151197901447960995341708521063582745358830347649842088191989079597626731090528372375394116078267981356863703601506765054986717552817214135036081608702137510223952493377103755557133830002866918530173376237985203934585279677034189753766887835798845111323559442671290584151820820015990310575094339443034684993384571829215854079410595107100510465336836539609792688539566284267886900710416815482061485401246537115420584800269439446787834227796337907261195145703393006358639706247679849410734028405205656605168277814582357724662130744224889271162307136469484165758183150071481627891216947402625408188990193128973399445695352059500477358365357275385485050313994993058423166665113631444320609982413218737972861820111963736005073371726024148632925135842545831637114453259580641834002384784897271468565773137836209742140912804022360672277720029627465786996138305447905198435132397480623920163734186863949904364342298896853833373379478118231774944437270016518911276529409979333442692025110733105063070653708965014066635792223293451580983310529339570416597841941173388342122257904868656166734913369025509126801666535232362341394607430455789430708954065302385956797321091838905824597858002912704956930142761522804032819503925531549817930750261439265179325844354555321776904839734178170843685620176376765489904641058024521847916177408637553804582602730362656721176706219482490699477237733544196884034409148329537477739943752065141252407540345169198908493290049683568263816587774305706640568479200252064533485630953407204133341409065490270623882859095246176056705000267199189327834874580715479104867662708874579913200376798855076064751162709518331656396147191149168239670508888773133574762493634221510839799676476299179511993962538455196461906805217209550098262877137990460939392678622596217286686463717113724063625948717920107986532698932139035477837685302590890782506966057162686958714277624885305601754983282935665067650165869449972912751924207371485533080265109722403593486472400850430313418580320630007868511854124642948149616445673468353058680208131104943641300161680171097017257758514155076367481808156145910752757471339909641065947006658944807324079058017550221879901910398243088451725310707334444388880634530708861274327854825955587674401217190864459076860434739078823225684595508849499547490772470005822243324649328038429975193338589658202236033896871214683819928641939749763359369622700635631471437608689235631672165001579029080906177486592803146751829821657050741948125848653503746066901119407997048829504617106004599866318181302975836740414672896289885842663728541506446733951040688330356847469622630928087064314118184549339229264720220067426804754845704142602770193076078063539978105116285517806296128734396662977975326164363073773635933856407436143348946811073709679937779693942705859659679898949976209891093400459250874293461423004365542629092136369324944649059147366090608310506826470372984024141227928518991096306932442228621288742152071873666508644556668127479598845904713835856870955547382877760695087951416098019922510317691487681723185682182571405382532685408771383911976351161456566943563876589928763627694942099874851762097178700948761223371062251817923523625912206250450726559834013040753995965742030267277457341754012288154491884987429435685697740819811578676993540580339516706468136382023199645017427108401813345473255821389590893063929906432148944487498707620307531127095026318814454215536504375801502817913943729678334187912752006395161932715561163750810251406103539636812381458162779047833359148758455521950486246530460486877952774259581659143773602110199446340545733286990738226472360531985681383411389497161227919141328325173773097373783893777803265587294664066208626884821049244415037594900420726218223864127729203582845818358052509129502107449504155322060430700751403344655307800494680252242704024190556442072246200298160294579672646601669895050391850928422725782155730718499134920909469338316953460733826375196449601012060989668330577388583341144700112283792348308114317374802106665692186344985223658575475023133579081024538937098144926150026662696647417638295653488789703330055044736797884603032965215882274269619450030449718129190622360450303078640602916426412630970340638704782290770692917327215981634134656802400876364541052401454698993256655846082705189147786385331281810251701604493979017203054024716566664338132887066759634167949078969600798743490250591095196041827670219093706396066151317002466423324231450127032301630389456403039134693816070193343570113619910194632931529565032299488231392742225917816696121274558045865907534049185223402308825669143005904658839908320703258987600929006363454154178307481330453247673623359411479951958931897578469996062306962242737817406441522435870427870143599726456295776668804094743446685846822514029259137905055521550505897882203867867588081126971069246572549053182035190449669923934023767529235653748722849502798371626330321808012251924228708470554399208086808938518278541656986697033152299141304062595315776095911451802026237530021811727824522973580927230346449240136543422620127454021611664408026649138951955955411038236601712155060309818702593321051215089434605415675631487552219337612795073904260372972262125152001211619306980945144513883585136763977921815440258848438185672632031241025914183816631798010428839959274039464756597484394716608554868361212956830744546214044037103171911927746941671515828395109203873399702713400369386433375421836476150806806784672648772688573923464153924746411124371828016300453151352749567293117120190799620348433644555233385803823932172603956703356580922890599827837472982518065085980952653822075542522203888052783805467502599839429168365967161076318700665660430106820213039010213107465052495043858724474742229852702619670440621359078962800237947971546879717709400171742732262794552609824562915601208525145272279815191963817388209691320980745588740431674376456536187630625279576209517396511120596410645006591474293694704678705296039044355770632340204482577036103764916600943554029294257785273525701639915592273316172092640598406115883301802179265022960892132330766870744722357936021534965808717844443036870338678858837423039533916840591729605976419613821681433321304870577346324091471088083801159474753339734398054961160062901513001849380871050377079163961828877657890290885578589969409971598252185330316370240828705887780069884769477838708033143817004313834683985348920768701243853692442789340547352047717054856282978923183728987981404119028293373866713943528627486589140957392893047573715745923444179584775559228704856321910036849698101400544160523414597160463640912842671776458687707627767033407149623077299432018821006241557820127664629181359609355222244910374024129587826847860759493250189922636555795288893889870057327546064259470043539243191736609493777332779260524246520269218797367710245900682958774354615158086216693765705829165298664326990793172874238437507576270319292256923733070743339333919259777183382713898314209202535047429243267094713697658747812388852004839132497001255249391486746396174968110045381591380491691205951687089140862193164399655121340953879984731765872455107773843802664123685586891837758211110202027806765167888251507154640945266334200549932598880692399040488359181996148220170406594316939335533360318879980212596660314303517862321099645437654625449987526574230956457383054644669470007440336168557855633129179456889611565401867447928608066080761452951862815299127710769227855437265019948760293602246551008035152745465916422289545979573893704026758468016689221184413029627828603705511204271899386644181434870517699804819318762314583746146446629338813057011219257105411360992333934880208448848058434945741366943363620670959781544775300730227117115338671103593755095762978213302571694506367824381117368486475941209012402626981680031324880408777759892212513743264920430986668315589333527768269574393868021252443456412126070065358216586715384127807982175959780160977666436842128555173131589810515108667951883094967515845432191475468576394142515475881159868648310841404257477881056198158005382988624285616721409770250672733872327751452830518746824317986485922996533380610652309918286043217909667540914049483928574440297900262262386489591255714152763853732494511860885707389470651299070271573265135908367939952749110187958333968496484375873486950288840746183726632002762801520554810224470790908286725329140149751109337350157673257910976770703023932876418903372027993832908607559937665916418851491487745750495898341470071939424942321505463582780175139097072957260832773085907936729558157899911274554194516675965650036192448098718680551601777340054164909257065136232718540253610824300501143817287014206003039984429919577548662330809393172344454616983717286872745109536944637118378984400304114929038170204627985095436700868592129383008432808464991473102357462106553272982591346534480760070564179169329163447171079940589065542922745100336164728043319608544833875427418174691837432637489480653396103150259716427972758856497857793690582993311480171307026733735317979899392069799826861624205761691691814880217584468054986500877298588401278776909814906677976260672254361862307841227271220414773993360919660413659214329525374094348031729271495725380519350486977814764839427993960393079418889359885583975956644216314299611824237230076999433029470049237697458795840214284002450997471576124322222720429023710561996310158636845526603610998275282285612443849369122623795417390275956573306287094830110178453108874124872445511379622547115854392066262980353498763907440165637632801786508727697147471489875339163892058997278588772003265622049036605365331387604863031120824160253456978205846347286228743383779387123448355573832616805658374699854778018205768468412792392240875547216995896281339455727537590443038982026301835714454288932804235269450807743696089137584699079922602340467881211437347827791020413827178446355682219606596861781297962898453191061613249986537208470604198350218533185335452340975199401063027950545244567963030820781094746193066357283214483626964360656787527128061644265302248451219794984922568422000589539865406445105454383393131501495059572529859663761690071983046081561646991843295027637641348019726311777826468349956194508862003969588861570317437526399081573863110770610944555481516644643298326133095198692291071563953501320277730976034998481182334764519044265519276527499550475309270205314536306986960797477529764653820235473160253754659738414670719332056624245661408601572351755198679629498885843189352994063996888638740707647378584224133218755524498200049050012280237209990103516584782891305078182263531524058043307168448177423350938929833403308464647197881384936038170281399470394725703024508942267017344136691101890289307428467399446201133439436952741909156567971613608749291353841382391702400965851321003723888871372271684923066110612072544843458089844253138782685090196238441630477416173332848940776491458773492482311572205905364325623047580255191438410274448392450169289282189721031513036499863796567596484944172262108947729282135095603133845841177677140204187256848988638468878921328171686581909029082019868221960743057792307089992963621430851538707637225568782472988651846496451235669976270205458158159671971194229629418947233155992836012587171355490372680561733264209322031382228653623366705356333681857698389238342172855273181293394817686444559010167293027995489699783552086264558316179405419274441739686147776124306098105121725715102687831531055430594164120381579564997014135178770617864704446328280235056648952076464932030971462301800077516562059453145400484668402871165285646339795220084069941878842749927276666894001554054439892666442210176438367715782356498450111780499381235606262860712882519506275637682378485010212203854694957055485674838514458190170441478933927764706893919745188434017652686895373776252511303946133217222943109504099709242082193759186174794957730543851363802658348846165106974095023035417922048824971220579382845918736406410082523238903607992253650927506690840064717056086792920325233972050656901529352600297732932471159329076969965253803888427073021338695081228130642133984046422297607275727020694692229821220096475751573516767284030266379071555995204728541922852701270764504611181258810358916358667077279224602336395922584181101527290331352222230652264651694956195776966954857397530252407881890812117187602597566208661919563799618670915998138081818190773195936514963465300744098613535978113010704996744101171946392650462301666802991398829670529655505578731973969787083241842990712654654246413483725151103538066576972258184157444538225833931154123796605770318323097088652899721165456723996239349800032579807229290477019715163934902925171395964986778332030736033588838740811056593385022954942155729319505603338848157383765820259406187208627863617909391841810469797838683410958199182228350736191442635054630278575536621304334498673042573369371365844903894568597531440295373147084722815710098178648621634985276224956003017432146802387285893315466071799400601506135940045379866328031492693491312874747597019386532472743183215123568913506290160211455322144823772999433424577435499731801494829481196597040882626666672993418359527362372698425629708890436766848593427895261451520756211696682424846225914013691533021057530428194651918873538505643442714401020251273732030680046871300711709044677951837202468826058229908820733830707166863682043023248818658245805996901068059380812150765882407417761748779167378387343001235148440978155261272259207312117788010667421220920822013929709093450404432947219882101608768631165059961395949681106314508213767828565718557088626463290314624284109168231035248202062331816047971956901843188112609489695433935964664093868000457271364183131735765574995437044371495800263360044866847395108843141120636636976486662858758052911956762253177784492284992946563013509781068587426617301273950407224210457633815208190881807686311544517209653844893052871239714972798572263679676244617056716886193436265211636104841301294727859992130613492779190314018628007089932996872732746889570144440765198646144775480397485638240361561728585010928330617509760515345897960323972154987443823227744522397675036391161165639942277704658293176287208648534610511075399004372550316975608983607670799002981744515346825143083173871621612150315045571520435046052036497595139821220917177253715078195195390328005241643860015971584934833753298776500518069388789760700833846890341796026282492021306246450157310575361383163336693864725557745300186673167809104030777747242592327355644920291604265045951444392231483562501951367432862477832945018766450288385722691958100200352592964863171880422225046809249669363166158634156865863253341019172640639282827510528449851705294495821524224513592390730180084769143473721621937535322486291562362384883921020453842039199278368770481081838693955387833923630844643255200800439815431260212383704113766875060458325121359501150483557012116939288211680038441829499828028667730782938405793042249041712614132534498709409865547606310413132533128182730094657204463635775583963222272022965973362648122545093796495072508921698734916510657158267476592591917972319143022512684575253243158691523996509095625045847371501972627100696373584999542996700700310691024946962367745918276390945412890725256878077513394813351859009858587127207151863500427838730796177728186690606777465489445985474313389898898498591480097812942714922841190581209293989762014385604434828045347410473881610835368197255183147042781879557889516033434182892490129478170863290408535150512474082020104793129151995262380697466081325254365880177558959724441220510563644565148873466429316923596953708004878320954082328607931730477855444051466105159744945958733010137423940995661482902553818379460499647928407140578766930807567469172425124777631255498328852800343752190692553346853762717465260712998433476342443031526332796008955507320546776534646263215257557507429699401337775372388835472467163138239805427302850741522279263553198962481702098330182025355650431871038087343169403795875778316297093192734498759791859381170738234188185680853607244524357637747977313608470788244421009988368189580755787908362095513596360637129107754814019182437100222310308822014881007328795488319057818793637601129600637415924593231498268601544925879084227538030023140000187860164025576467211458510640049629525615596299087029088322547793033924985169126664812597801894873869468607151705998782124593145011167405434875310649780780906882650758622221010708375751579923272843724629132510709595397321587342333172776173046150037597494499975458317618835896873503592365944387482292016060815031877465258083451708856666276540752317153121714136830524242165848412939601423170448602522518336421256194006138694411444107579636405115276745232928501876656266261831209542228207177548160807576330847167276917032426336439438279164735812844844460253236336633275617241137852675078795927005480864138655225144695991204554622034312399843037097200133876893863981044268008575188954414690090951113028788922331560059779118382451373233407858669849244080942553758574725303796184223717816455336010095597766770811520024544204327387428277915693008712662591833270640739746936942498288473984498380244188540736332295070219655835140472562470780284385012200694429213696242998927701255661088736203169628494628360976548034607725100041056334646382839210153805868171326447309537843488817072855485021218559993679089246495012308423474246751793625415687079542026042516071556910415316972964637239951528539548922680972269488506320253318512621241183413685400188190404568384185054322489903905367888630119043617848334234324030750986838401283360397761808307128126455400600485729218518006347182782619110602509556625510952452111047432459598656971373603345929330922921762954909101190030917642463284985397989214375857854454294085895541796566821929210797768399346747427115779719326471365668963762970075695272877335985151363332026972111971287984327541034596813114947494656432112331664673875828928116779588627857076744930539346719322908712241555868005235303376171705271384939224868750545582862592580475102447741658163965035794319407503417607262351666234060135780185495903810265281635483235661324477089204682657173987016065389120857153843500587315728614511346202413112611603907591251726387699553336006531875909456306444768351707213946644180843070252161086646077262410448357468650826240703842557731741429904598552061244834922545627465263171682560269263457607176673816897816941695240266386187648635324961168462905010946686919128347498053473105381768486859032571471263309074845673754246805253296734367798960330041714036776636234133808061814873069977262799277690036141023371169511938849387115397084153969956682321039662849725735321195044616457976044702722886078009254059203709731663104935423799624350116533541268271076678041823027595385732777767651382912958668626452489640974204887712768273377256176660775672303645111257841333526859452839338359115590965094626686172755208840639868645588793632869345547874301859885573039416427030569903357669920465110113431698847737950987269302528757332117040501578757017123256226994025203846556827004707773431245448781652799999134333204821300138221390690908578591713332478799145661944446794104184232819548526150628512184517614369097439074831219483957699041289193618025060780534017355010417001065567840669703926619502097553563034301320810249640029046072766030199536062897248000050675830830348215073859970603569363151458994418489134171714784163471004219465821893510111055418158108731990393580525970225366705096158726806404932668415656578288019359456627024024854295460990556318337317866281005356943368798746407019340736223368996385451509912436265523588982082492371297026952748427342009376687234047994278505119808327152751175140283875101331477652339328989054644996853983241123564007179241669181561072334430232766563889429435866114310890111121316020146146185005179243326078369009027706337665976082600423908401118832627700156415882421207624221199548421360382135683248044697732958061357509143071353408465915457470223912775826109979747050323837071336240060364332616067705653385750596042644188911151415793565254494455859831372383202761191446253022841070109682258158832571613798478350552417205703252250840988663057715578708102364148598614250015908435993016200918676082317391435636797907468840724863498969644608737146126254110470842211581335854320320566326081353890565110077202704784446103583005112225623678669823984000126275672073034282212807969415503138314192153774758432388384316679542284372580186045730724026258207692322132363222303057818321421486847783794527481015042138448562540082345347786696637867747983101664261373033006847321878253595110620501945518959004965541689661219060758150468550398015742186692391676565342263996679288866608153281360210566127210109373223612281592074427049300838629491127579043904909277922364181356338159092964043255188185400814898577377775808787946620505218619288157726510122376940568296146503019433360605522705863279998874971866121032973681535924837872168576250737415568019164796944211051585722445839086728739192622758887947623850705978783360200854239199128383978445125683871560978115018536777641367343470371408502934806112603952465536359631078286701735407361613663970097987739258503279392163525876056555245820982492223101088034271237644443739427186834798046681805952341820510677395356615421393201423478512992539224092652966375277583936449764624417393061962674297905373030470284550089009738726381363542065711937410305663893671768906148489047114569270065821524504851064487158522553168876235915991863488800999338007664039980300036280279912058597013398129807433237726862236259468826302484103413788719435137250803751615879348090863194414774934627557298498372489457346408738196152358270308327489682972907596015827602568613091658100523410277673187710176935115319528641571956701448228167181624576968275302983013672567784476407033056068426619555085324158552990958306287797345497173227067923059519937994261986029676797399568013993673481491661214303391021943667873717776662768474062015368413671990469002319956494146530392282460557004115587464405981683185652463994041406780225462524692445480331757180629599114134350741231542180998846383866483677531043191688372296304876184044139519746153186413101012442526139706749350733033406972490122994517226501415508801314673344310517214708812429664420147895039951761525481929773581778058735245422762987183213114365529049571267792995965210513267193351711369246649513113738531775547141822882139071881167479785215979095740285295388694573507611569382268211703050060404096285036264691624463341213302387393568477732632974703795765110912111193328727686203606343413024910396967756410594707142155253155796493775642614077059384035648413795391385650297806347242834960299809932024852675483931619186982487795703116378500988115728801306266078754632024359586974632727155501492090915338235019854472354904334055246625692039361340159199324976037344928677329447015515217069347682877784403151385197774730267064573005677657357860678803263355708836758030325818334701202020822200612996844796936663451180919437738073213509263410989669099450237582053141491809587433330957202821865453821367122558086161915326945119305516157610614708833645405334349804306638722585884103855665339340206418395900424447336665315135054633994182542787108514191317536068224713222335381464259190379156318280099283660080175795949468469476052418247055275295414204438284716910759968049937167336534820014137324441962450732219383820579202567559477411648427703020548636141874469325059321721979647892607283433509040603997870069533967241692183923234310403478691430466106263266765942605982976966287323304337035924386589505323047728080492422388244536335570109288454518369760561130511921690347776802420320050748237531403834358879686912609186596109919647223010837495088763590771413612287571560306727468635992884373425128915108939118616321866266662060232300315855861368986923482667314204959277904875876098089074068240608229427831728134653285660232670354706655533320098724682117155874208786252016141004842901046208166380549234163208904848567019954078927218341274161979221710644958854049896939251729405478564063926436955112375093008930518431538702680585566735765523591534262094188946994679353844706898499156270819159302195367723257684618502159899509313669380782263982457704428592728553869731107957218553261123280359460525170385717551889741894180662975508764189152637369587409687022349063139049159768939309644964835677268761613180533597461930650911611829887576358751731179172444765025577939351722596463961084006701430449292032596249032256665599405957134154787582960701398019191367593774434703435270151144598324546761550033195496678169610210831452398129867842188957398542028657081992151772484559806536882208423094245398743126214675132833791808227201433004345107232490337602400458479545738189483100803007167111945957450619015898574241088376355843816100689641173490224722209364518933122013524250305026355441532448340759920041215837077189655997018491117708396685957973237861779661250752872552282152480813523652053749727505175057681816304279913696368860114099184402863734745071511436439142531391020716048036884463544207106843263179690478877432286120375420782738799764033441911261755539586127047940592854641563801629784934816938134677198564979027404403217300102063206461889748212149062765947541089673868395472114281062665443583052597272289314645660794838923162101848043988304132153299132840920152271469347240703537656172899348193381165105111250643515235885684973660600828380009881192722794220894545082764751488129167385526381088171722812746183687588456543568645623090880388422104495973661545951309668479570199617830774746920527603797955550788054427414757007137010259171559434634506036738189657560207211715894482310945961318196393467138656888632177336366599614558216586816554213123520689412381171850611266032717196518478057834222246090486905238275370133539748962382487677827605661070392796846766170434260006014609009814847238964084404521046953262816857142262724007039927024191490661577583758689390345713151722806957015253193350872002089719725039595667744453510289241724979271788163657493995277636808444914078712462310346469900875986042487962898624408585544950966248163009541980357847719589522891981522091814859294950228080500431496701085621930377297825278047334227867859252023610347370701853555621789972727072762013401087661323353685983026290758815799098563348611204317935001033461658795298780097294021915909860073401070568031667623692827503128739267923647550492084068159689819752595527948806357441201495790508644390030451115522739511379845762132933606113676014796378290156626909842015029148870599265251773254769390477048350034071908012486175087609151629382179420051458058364346768872204892624119080689093931710632748367674590617815883459285526896216680077434428129506316353482615646456556239685010917054627079093664941919248724034772659853964671216159466940308463958004343974112631768474279600721236195463288252789682580086883326399364423430336222491196317426260864011421434190904928784460831995192704008468343896773362906984328990421757149808444443985326660002872487073483514283989918581673529103910716583627643801354552136852627602721077845398139156143747423159700827943078220435809705982637963392918380338216881703493642513050957309944593536305097479976461058387019083924208910497117872787745345288672812235059061698103616823466521413767207061036805038810549953003904650281003961533786858460858747067503801497716251755074143363007427875628482346209133637526439495764248325400641704264416489095207866755330916374599922593112597140101403396632940146551212253415393602537654357129503597165811450916679863347645412937637923022816840649576036301112901875541274733843646342533329033000400838841030606514047747808355857996543533853393321929655321420344449917485742852790708560044608371465939896108891608900923026961874423348839816278572703362737105241450701240713723118552064865042521640620016665905814005845425176203118987627015317288126607654505400741024507583380583640619479318179470341851194471896988519098941808620451700605841523212458197361092268004534220423464358395746710735341951331574034317036430287092272443613597055698167455185814498873150321696190715315807313461266980503990856683873993322765103550241979053286628125827870526830292986827531876279153444723581624586906556347321288434302201199980410366400581938687994330346105464941525457749809039558311402517245190536081929077938451208197808194204752652497121888626489917768627974465640727885012951541385420842539147294314962267834424432210628976434553437384454853088285251240988635307504243060853172496554892836619060979291238361192615071987199944825372014037624524350468874088229283518125281958304192399519106881237651300081368986610691012671916749795869854785904713136874235639710543420285277891676924567030540246806545757380285916132255950654487392245873885497244644030029750838714172480444762639251125982833188423492025387649100164193345360540022134695590460443939357399640466205082520379582910953994947187880267075787374017786796377436375689420883722062424842658856664636668964152880693529374061205852543759661497583465867121539003144801278926676120918187090973913883985221861651936003785040007953500918802321527617932169460247053816602590289598027973236424058292488388768705096345852716455975579811607566612031375774306517938101062555954685861741549284262177048987297857002098934506494013899065499345896635400636637235708987884713339717988671571510186821300159318524447536650711110274284648076959288036254435809198202545104388159617161624756314537529001225129424060581014582154498168179503104561053181660955291082816063758945288676937717389111573364453481491426310973415996365867720197745767321277075784774303348466989722748560717204087327494666768064207302087688475461096643676477392798580853352055391240545638294585597973267782551717195828615581927485637961045838702189239223305947563131471018898079870990067955410714850863646359630734004983898107808673173710490318099444625392000095297962772420916181881142652288150036871465028682536099581639565733022633983121271015596761836936359537369181098584490469698977917642746199894269675202980921727511068805790037256970034742071587285370075025977745650006661327022911911196699593629614370800661268447624808635005581206090939769353397183553863396162314932214066665130693913689349062532381881626034950397193287637459164751663276598863411494108776265294315610413575257132160640150473371761811653566257572027107932520880295272009414730720769207194651213388003955302261720001879446823868431121988867388703447659439074402662002489200925313601675150408146292071123459069265900176304708871991112058635878706090028997866545291869321961888708196078285772916558531684042686559694706247436732544669493943393820042478042355406639019974854269625248169120624357067827343058997600590531556616242327353116657158660448835618144245599510271929515910205214358625738652439576420651375273469562703142842246489855709512003804769987858332376890660918368607538568578074387347405138044033972964882958401551814333305178704957150807622000633896314590754581955120379255742196079610696455077188447212750146220737287345517043177092150040942424724695384802679877858197927828559831544683629741920006942867094512776740741625331633184403890093541191244187178745579189169198942503368874834660275889765652989737051520387066078604561826341433777274115699154319983607732389780267763270459366668318313476909386190966972307534493582338761581134751852484766435908195541456290694066834246236869107363702548680157295881213654998463815448532020535103170776748987558904870692110997763336649034087844386495593056925235945656962536339685939955649324615946526100511596083149158420171472307627103909468752878226855347267810355339942927614920849916330287542567412689243582471538444489475504339925587801217864218580628254906620656995215769573104427532209811763058484222868805369482946363999269745711793881163744190752288701290060745451357620130195572959118596414714724326286818889096294062407196031404157868256686498280823088789801045276130597702733237564554411372212688563226022147779144762587637201928298369755865066597214372938798927426928441645972890808069447019029926129877605798824865998906221672816330378766906778424389841907830327329162886545188148660469071077346438092114669622493190055896485954629808471008192351226791658388582106932870274235183557365063378710636718144152402886898568255717827615929658816655438386666888230813732740482566734914625611834958776299731995925376829381326277657972693909378020504438936298244507687841171803870700545646309353640184154967003936582991587126434967377963826444673092755039740406904216864433300720780313738578942578027547932026859697160314246049564407497103799447285335453603385336843262675232871884219170320865067132828498825108039396843412249636235594345158310995921518249975757097796647829969334921878691612399008052429577731436022384825473641584972751522074004708775531799603139956863263669444204927293938480102780275826939940595689467968078101837184331837153738777122858271167776925878387632976913574778449436813252569142341953256126000522029921096595963371484194078709117323190610591606062881468079254247591300522964917063630684706957334892382782553298893327749987230934528058104972777792138867397366336916852828013462519310046278914134885565979894609673251210656118081223306348796541066803324453817455702821930480032887413557134893949836970956024221607752208455588645562866624494857773144738845001663045766617297723637118253014791927246263094409487596929074282936159712413761889207040803486032907918864477122898786622080405471285014379738361583013621570026353810764478950346541306717246353748700826210098834688224159512393623188644236033755170289621586873977978987617073983462659178717797325428044119165093056661256275891894598709946781911049096667269114245392752527436804406580614726967017961462965865840725521998754779894877387796789621233030305159668758695547615974335120490060230684307188630150139955323612129282668896605924922529184974901609252494771532720495066783146556765300463710472469487032347595199517319242781150549636478369198536699263922724698254904283514026318199426344346238176954571991909549217527965712603986387107675359160962548994404551346767528843159085595506986404527595289464988273845343010258746434997023857953494529499906557067474840012575255190527298689923027413677165517107181738554649613395959935672053779706625716048964778398762728774892755297335517902715601832471620939076925520009171283104190768231133412648874285932805421024380575270923699710445403107201698828839058971650314023585881932631412756620063647906266951576699809202173693392663578765672402418601718648864756406399443814126000900979999142313338486149671468516302537528246304244930590058365078070434556210128178372277892352947728153662783967995915492864777894607410366841270698224881185419835683248168175093033479909544223466872030954821675819211613299421340658741085006528855474851803630345455382293021041673168141975780053547424401910304554682117524030926321326354030803746674414242327543665919286303390651320228356906615263193440987596982418848123348630651430519088588636423327889580281482853543008520905908200271921273920480061573898141453278005600417444075487549200505887549226762971123289846691480014302336435255001743504621802679787230463657751616332593161009439251930711541308036431661882020542612572165720481796947877226081883099856122717923093749506870814487019399047394373910590910761332261810171526993591144650024860298120718385035434808488884989913886692944631222904325192976581551465842115184424020021819578390395524617331920190018406743030256299088456175529480303277827559846527016916565840951078419388527105017809498514925282018450053444568253035343886503358907040703412211488951492763114917605966031919670373132795812165357186751286228474870146346134914164716568912916518367145474502374263695626702286166966490578144142595948010585258441129567522003327064678720203001898579487975791042169169648002703815075152924044788353701731819942693067653780224810718396772962550834388516316791182397867781291089961249590927650798196724861380126256010416601789468900136745513382737859418610108796749919451442085575677556934857420430354214405196502519583810442253853591114815878877432758894821273788079992113129685013391406967058202479533590935840752621739430822896657729790300973100833349281258518945587205693269999211406784160746776069999369498167506181292503939922885995066192788876656677744379183805382940193479267206066285996411622675171203351676684400869664853079131928014186120665098721081495228524596326012610296423403255920013435731830999637373959429322553614556696198875995186073573863141793031753895520529227744910151627773704319324215724170212156756600511600373268678617072119213742952566623801961590728545702658215146287305450238386510089695909814938173720300826374789072646290002638567959785673723008354934737273317805003282748419599313475581129506060862055865586074849344234009477140616154624961034130297899031970957606859426122153063816484187625031574593899292223437061631532968720070529737174581394135977249214360029186672700938382810648959551980425803078601026655959540166622811705002378328736893512691611930623175652813632568483027602833122039577414176262912865093736568124617766486137120930526532526196946972893207179350749998782151129129531809051088020329488575792022150715443716650516450347743795723129634552928332570874684087681786324872232969392378547180625508307882336551369747892550346059641718437457876063306369384685550529697321628057326884649862640773699164080030606178642590112500708849201724336941661037128537887137871295587550555961089372224707679178639770743617148881940345606858592842919233809581496626652019804094808639132008607016271023293419218181774176777155670000570404034503901049181943218903704582062964496918178976540228877712308912129497745869219555838225871358329475400540330670729234274491959758666906443700634090838648726544741916382996291857489683037479781014254496540016104573652051697110548181335976145288727600630575646428682926470867888641949745982636650492073669879800931850507672122805288960323902962511794982143903760208801293237071280875070684272599775827510371756219243100410058684589999563577277625857802047031720473395894245143649111941912622768761569385216946585151470360970789015271864305965262564667288421663165449892885145667439927912016170069769763108712646766919643786127123106020420506214181030201848940687847379369612601271837546031548104822204072611521286502790307657142574807595785554861884708951370169213915910792310344402612119604999226497203713783785917048647301996441988300307301208476199567949297319225346364232482342810458404341289790042232909725152473026474949136027437950219565976608456119208757752496085011490382285036099051162797451999857092208284513265158156138853411128500067469183208563555752064804067599443254073396015232470633448407471670999514498676789384991442890883252257818876833933031844710916443805968848973206671619105905695946071727991790502881267902151256376148696936343414298172208442727534253183975700577406511313970060946540689408998197230185269448435362811765667616322242716708137366761081601898075769971193673132516270785149347999203597272687248225556283172686139590382681397545793479577681924033727296315217106440862558641798883057073124244348752128394067854337414193049237492155000078873113682133645698131702741959690151792512546120197517531100781600195312826549431121700320020042836293109472861307640490245676080098646035999611402619337282551208608191838846505521433113960632827248455843264915958128688724949962893272593441374777984017540191812158284367866762148294398054307868312625638977990236825250835594880399375724608713150370198941133796426679570203283585627320615678021639532922373444596420679510194786426827629402426354774406065275399424682014487119207528757290643370306799365011014798155875604786333128134291403465446138847222813595082543993629133346338564924724889522393961229969832468120455701515021214696656407021193520906309334373979547851736940481449130356189291306284629313468641018873056566995635096126575919655265153773995229602054762088900848077903621268430739595318477474684219704059865430235826950849621145628131038043424333672675853061868071112074059000899087179875851572159429162538110574180690170122761732270876936681280956878857380487881487693232363673534399222267147708309014060875356265604578156894428182351313986975945654379279905050438139330822259478416774632054523353936216397705378934040001564388623982282008217133088751643823178880726659667559721330933318777040425326735843986344417338217439772633285971020730068412690597793043950794187715332091113804901807216704520596981549946498695591755472475218169446647599066259987640667485797861066314236399949482242894682995760672096359360945448930205009325129687650041816604244666202050536415857343932476752693546972356812127768553713205722595043549443689850648689790484374078337868436958833894691079078915940260706414221613035020095601157984862418379543942538094913367956469834055219457689395409903628237994790846070460451828209150390306399084419862480884407414521896780360558981779397549832120393584929006243681869735307956162821598691445354665843421113392448060178764403391006440567834697938814515231056287751303957918920716179691004681023893711801060556050915199943329412279813332484366267994212210889825293707997473109308847355223441726840297502376390706757886822240929302676370713925482765777596057910563353219873111937280775750280631898537724821668315038432984265570037605007618586268506350114652035951721085643627931523398838865806137656224414681840291789947687498651867482640615155051011874002161183470755900956390736505089316712250416735444072497260496361246124974657920373760813723533458767598271764502310358100833649055522152382465661026772638995227659133909879648462213877598534637944756408159906148975346763440205879911239802142192113478518387563423168634404391445350595374725415278991816434283571837124207901914014168324785978460201739381538854744091419958444352664738924045879652373083202567667953502723638883055530023816651213363960143629260962391700555730551781192549155505505509934879301871965616456567704789472691064557018209567561386151692198815697380197388726820213121174482338060483422911050293417814381117180623972199760585217185363906290201038700334938201634462334515123298891332617839230692770141080205531485436074579349353831352838741063468232102543622499560090675863885585936587214943030054430928852103938482195054788474581000711724407500797306467463105686223502715301925228076305274218297160992512781476908895931942785747131908468930662329897862595720379345945940031913040527749594663304471358238529157533416342770203342915834172308462714175470661632111899324649102026126034193821994901615604287663813199124330079016372259283028715212685623108937573952321423755212698419840631347050895414609538681967528165811069614810943417709180476423927697966528809061149137616778908907087410425002318198192199375726924949663841863779454704718464427945561616635335332688221188168979498327491716285704362719932643768799531847999170866416515821134418389426627391599086644498352326576590180895208671760252346569615717281581873402887585705758815770108965542881015629942590067802128425979402836010937931931057851315407585994366381349828212948371666823503127454642379843878158087110153094222996952999292315295733153816246555936147615517933638802026318886327879183732134581560528321990347991919964649538006415180643677235826268945015472704522006195740207169626048656890833804672217838389916896307139742705671695249543663462333733075494166131903058682250762075175978328047529515921405981121066728225141941446210914985791550275511067322004480447040365195317908850001886702144378523016830607216759504177687998877116403346121687319890454632726449374200560553787402361437313262568480059714046811822901557580187277485345955131651485530017986921546281211745749530800906059383852302697554166393550499269005401099516312890594659854041005537890563539076660719297664618343788521325447413085341506231553964355286659778796149723609374741180679192981146575630406602447045498027488437507767856547272864566418815962279134604062997167624002757056919748891593458671537855816802794716524095620899305773779831504828144927853421159225592441167758238200039617279480974733263048219351417826327907348963977921815381994342127068913585598565298149211327605549220397900048525755926652937041542960097091752221678909725222153630611980756918081180279770697659794249563415855254068169422269074181028700849166789111152715972177261304887572892250364381677512138661435932404289477433249077921197413431941883646445785909092179563165539758365293681528725442680825889171126950510089739742443925261143363513776811742105054670667546451852647131237548166831254570538056264049524454380398428210453037578728929123591264647265378496867141862759557724834674848954132041701877480426498377949087976485692832668012717736730216527816935733018990283610161852330556370059839229986682406927240444863248112433973623392185361249437454995735931103806298063729875561843930782963707994296785587373017342171384446480296713579963521772587617407920019708474986408424607361120070266277301446530214856503502219844014483354662947711357299281190135046134717602813987840272357105898921491877419671090069314059776414994046321087750801801441104321940176187759810320629996607395672733727831585148984643870657704994212672584373969289883491202704831974544710400874336193793307902527857537370091950028926349453113549536033177702016294744014226050805039717319186707445818053556952413509373545579274451960294646201353192040276814388931131564305575202077092142941313412215538285603851850704484593664881637057101540785803510797702569945455958615204511598313570482351867769256274612778468751344645094596481079508573954140059697127343147545643823931721066500115232658981911834037489199786011505559370781457151551985459789770381251488550254720910589412598327474611457276435422853979633299145048400906019548043555494882918550544899288705367066853350470276441956997464337397978972082772066070567756832107788407012814174581675419016441248350794363811011661189515902113991767004653181970644633776806053852245766224157685514302416745244706129180369426520559189523008332203950319968073299044449817427270580123506655707007134415784631996105782188103042524912085905551001549260904993481518389103041745848978223915873158902788106020474076644489450963791518745723710992330533354840608701899419157786186366905697115675299512936741653294015392781296985209243579976988393109929863204510156506649783471570617510168920893220221961771637358328926690013651257246555281216335176052838519655413319662318879096752929506148237416073606282996615175932633552332815038530184655249620808956967160030816344104680396893535298671403650858674622434931175582482747232385078819385548021993899692747111571682808414238612080892026494479376317870467418712074837125545580801626231625184388829314379753649386317610415189217955796707114428465724937593019598133102273930776034851880639497520323396297409136968723609305526839241929957443714297299298234790117373293970189281792860691682480595874341306159329533789465249619669638896098918762816335044690649883656162106575146687835936446413669444147018711104297194749079355914330242964835435243146578813614496339189967773152066693871091617721566115774503424538351245720425646928265337535331563201657788964821024988873687687433470713225710050618618021996479547168051349049916202523503069005679830692451360259734304243501493332063455483182657284023680924367446692059343832342122920772461520630616832933101025325484887358463938303323708650097110031142019619804932443353575931743366647187461519992639127883849002682812249891913237814094602691760213360147100553624726904777407760262944501738463068882579493531132432770993684632575587475241632467199664382841663355433610706471007660970307590815128002058757486904577594670559061186595266938101540647581196175254840292474668925841573781301996935591608541240453293095982222544550461114928952415241547313700822469080387803020834435239995412539028910146616475298864085371095653292454238823674592465903422070590473687200247372159608883758695814100303285142097489930282839338229167547818397226607770678945611173608967727621791377962371231875637651034429170825161405124234024163577246758739392340376917287728283895938941847826178696288120874735426980480656835452929707724084748433446777041030064736915488429799155147303432150244575258081493466822153865650418969796803948847582870368655620112537774074220234851696950014523426207940636143888999489366153359233037925464704595427751713544947866149361200487267012232257302700823081635462280757080292505514561988124263495212799210221958404294549911978754909474283231833101572332011591855712775515282728211419598458214257101228815090720669780447423591502462528935760784023815155142313573221281981393466474280850908374341379304738805293768746051271357122735180030104411140196441724179328100923139550983168676597454645538790436853604936530708054875738976236356093631363248544072138724428404266722690979446311445509313785297764480512036033408754662730901096998936181888295401760161258690714675026695852629852513161923052696659126935491577367341395938158103748543493611320750587945030947173092475846879516524859325463515817334220701497975451078968952758539668144696845802821786477066208185541311643811235367528974272674346215618836811288484569781488945717243795581288201384462546045560316957534424255510330497658803039834232119022465178588412970039148133247649253601916154780473058815251238743867947930181845645922173149663274530436516514616323603507165485106574965733847020735995485631780772275518985690289936299289395063481482422691707868538043416017809132763612946547658365469200480133075160147679115329740023140049189226814731266158266567911893187383826720706976633610238332552870747472368626760856640474885033660679471254505476535826960678783409323303643957793587626577712328790328462486252920512319481043093025963101781032933072216591929438371988163227938136298851773577823076518035858890387809431937182561934039753922802469405324876724266954991313107965836471601105810865890122259889734793022632547567463542766986378725207325484397406091681103775529454439605466179016375612228422386206349760072437674957607811107768874784098477825967975002518465694606728303882674136748417964023175342317522974508327892955796082769128343103986921800940651895940658237328573069738858297134736736554401026234893439642893058242219589295375950261441053221135753448900960997079286958637928738142178006051333423164479774294651371758567303926796303689101882274878529500620367177245900626564976474047728575230520077688632748063836864846281007712360723832562565799236549485567894990143494063486397871194866742736567750518164609186975591545436741167590639204836896534422322570040452303597322395765082367781244748933216634264880193156211750156234490988738543615274954224204941382231965552034645605890372767904496417568342299876646739021343317377246076362048255888154048414213456328727794389928612070170133600648854523004120432021459808306545279180695423036425827876757650403031309924103808990922958627743660597956484086559160202728230443708849605994738047986641521778723668865438989534732174978200602429308445103064031902261208072921657331644003897038445767319578537831625047650422996067194954298760093722792653792502066486997269565577373590533851635087582694412042514719510356601556432025911527498900985392664324652766966010279560578043232439829060234894322783934812164386884477586653331635999075229767644324084459737283032540029823381174883597557872518232352116552644568379239598042014258582463003928639601693563565526982587707357534461973113323825584349864713112336433913979629022630565819038130413491731140998579142551219266094184006180921877260572245816650839327586925859577786277658805232589100931121947723357794386915795075535500343728816709309518607202318140458948962334659323417285321292694228884083666996915732722672869874368658755112885807363829796913312921178120920617000637912067588011121107427603560128839924431180577270507011381612039683854134471889051154257432179851441077568949237271041063576292912420769146600065081088539914647201973552974519772643255135638591453144538092770167091234205209995849886345155742078537276227034720109988781722018116410516600789476096200379176906239319776185842104737288488700283888460106552674642402981206776034841947029012161285959685553846209651646050794455854187805828163725712840251629783007874847373891962897165477415141909251103957888164514355841844629284491700138924309643630871446485430770753601286404150950127299734326740000304463072781722686275141728224060691518719355860901860467798446320241636185212640420908118427975033795391725337671295949862109177948080351782495258908257707813661824818050497074937142730292010444541423143444834309695031225882669312232899773494924531113711085005870759040040185650883018449073562984658589659866954100130914632047606100003890723301615637782640043252060630513118892809440292926779122312545693357100571674962818001207638418832973364848902345281695711518793824176693823643365082385293943524805597528415557556866191452070493125218430034379100152093678266214915699636754262404973548800805720499590192772679424377588134457744868455115179627846956575701197428167470378003946925756360408338472730811833051577478794338198403601879431521197355018421363555197210145340837532477934917409571454155571319185104174422649784241834402268548050699950094220204827888538323835832354746533099720671411334038294245328709022676444026332400286771413229616007198611621539691871802650617169511471870950777945068141214726623166041195276511429187103980060499634921713510686480595165364791121002373385735923511700501626008507523566283592246401047988497109290033943173734193053913323731688811900663871946448085633823981505524085482296576690364131440721261062288673081653386041273745314059851572452935242158614821533434409033770871348853544705360942305866285906095708490251990827004089636817701372361390982521023250184600304565767848659995309806320274460906711394404181261328717631936568109446383871926422871835744216030330922558764326877579368096931023323166613480101476183207872681264707774697343868072713357064948765618178867137628202283812658109631883276926393647830856219603556419034185137394286553477581718099641025553693794636707438615424288572100081496643259067118078828477244691929263177756239108073037239901050654826330247218514954536508549862573709533292740432718916915393352417615332665628314404705474346086776979932267630732002506061768852194817291896373789933740028168221787387094748606284753210824158661161044683253664893432457671672519710570853436844873056804017336987536765801952452480093297540471312753173249097608021689374581720852173977581043791675975295167764661658687329695311090998883222113954446017119213572074595791601946163281197101586392302350258904242176940129619091891175165519760473274890034170416882122902409547800942542926327968439587351267290840653558729471415591916193544928976634461595035213393689109633506170481951365204062887157857625966255767665526048690563569983589095790677688007392592586574442629499994711846469027026326068806725140218101708407667936001447516638433313835283426145249087013823662141257245681239394985228075881688910595206725264441829993210122407497149448588110602064970255542415255345717667383350820125981460961141974324689501818094791657552648833435038184629087355039707433580662816408719693564178836034164631167172653626270242273790742501785125658537430207895324362647718756608687774179337560030933825253853271489153839652675938697194715202860211315004615531467108320143292202632338111752488832389248907158138408642063133853276987834108276526917612061078598956861888594845472274739437752741584095136162892504498295916174722012947639826856182241300099119872280244154307947097878040531913198990368391530212803709180335289575889680254486399343523330489656238894808847148634110470081826377675662510744192516865162128614937559185761583453195823522519725660373966106057521901331864956528138035611120473614121831635184782457616677972523865762516492830956771106553742932904453586659582876483207760276360372519055958953812119706908881984899403575326984765220053735019172432259215874680952170606645678518442778241453229347225359217751785630039754498753315747713319427767126968558014522844915555363559136776351084229322357093063002842201128877264054982609600785130499086595151336612042441443201406644910419485074717685862940562196170479887103195809211603462821601135273526480658660296911539339008126786395425947231760271568559608226557339323340312068374851110829963147015461624026586220070097898514747668970295989078115365572083663767486393241295909041164770229157248662175555838166541710490713831436995942487563208716784538685088967688832045912352193048560851429651529390843135427569913469710177353440619809046570579535307805522105270381262062783554022973456559398036500209418986685269250907169232235574476292624187219444036626122183456555678374565727753647346155209064648263725490242400567532277800734446900395264801497220021129713272360220619511501639866094813560035555901271405012324260512632491224390119245625298707831813487091548501495242020260943553657395508347539723066373463417016509100076707155240320133880909969581852703740490007487499542081282452798931067135296924702527984184809578474308222876096756364119285053855876434866917558287648272195805113052148223164387950069292557681432455924129893915999279813504895794263760526019645766237734484628479166184188413587873441634541795771597123536840063340630354067303175319123819896513383098637195198680596685130069737080437224398136809003989570903791902849498999121825153001188191546778932676557407536600192059749623712198669530505483619145819252247637977772804941903590030112435107797565906101403913011682966936666952194696872308340516539817572991143231051004343574863477171299908330910306500071499189128722427995813537231427771279395281871176433801469244824976134050010499181478230551217735692540642332357331366955082651606123385447062798343589796850684179922058928538401468762450229924192782211565789803025531092630981242250005177979536527272426092779452269253081234093589787272757113920136806865964689105377243976814270057185859537044274891503335789931095824367747555060344325724772779135861266814077095969724212472155732959043521348075146389154805895302387319369267694292050936237391791272101504938026170783050992254642631419085441073406263947787832415826841153792348955883838343302126744621879426445332563466614946078938240574982294914321502313388086871828156599330520522583964463677615540141671310068538504597097295906254483017942857437972337720083834097795015801745780068225124431975424118371865861096383011488281755938215174148722338043710796211185145208216199169200226277271868897369255151363713127463487972365118223513811352070064968002678804230908160853735536842635590207365237259873527626399767473241389945022641076406358281570112506529286724358649669748335107242636422607902411014765124447704636818329719357074701380684933065348941921342323180889978406589761735487472331633909788723035567039464573412368379027359176631525517061462629638236280971175964262709914764250839572862068451625659804533904854264163317812194091761369150419250359303544870216242624032035136684548148160602586761618050208029149663850138786074656618784837397589510769482046632357448365272251331656647022164464991204704059110301682522756395664551738219780609376981251106640882608988267790028271356473122466657337026177776115575409909667280186567180072538470658626815212123095861693251319934923997354051791890287288875254157791198509317620903653137781633791423696011529679858813532187506908180216372742377884419789087848934605855492233266629379491404441099830523766408720519310565214502786928383316847462370214126550196140327068904720479998844904434846388684217687650060007364843383647471739658651958855350963935008120757432881267456095402112547898713073351281204376733466877470530138701507985414006024559721857820637267123925077255031492395044093158734234605494195319755712317618298124162486352390580283191973785527045796268197701819730801606795275609466924582838685930985199473379282068531879741789672081233797991566244747617469543312938739168479133402597290737248721657227350081985740293851900536211956719706129714447622465638982805101545273830335246256488371930997119541451725597915824369881487527279951741209738158315624255165756998258032003966186649636937746321869288121142914454881771246078451371697189116169501904369117524248425916769920032817346903478929599810723276714304515967050603253957231138136920738667361154340094055726348056595179098307047845005797048792811395100651573285624694600162069482317591869818895551291204672348487598075265859452551888646518996235490623719747494531403566623420216798867482987125815712956939481451606807207672283541900748508176200080619790046881887435895737292108214329389096972857540685664926350899759760850332722676643890775438747630284973235139557501353127312455138029972689392402609978563932391878633698563129609548982834035026254279502503782105772608412200993944720052355749256823432154785776815952517477094864905956151030140997890045398184431124234728499230470799950456537670866894073551701906058704564424955843710527792613512578888926361544777791103847351111826587706846185433628089926077041334522567704080722172788042678599823374549965760086587567410214888421035779133907245508160975162172792843897876739445444829445806586322757642971967313591368182286128389881788472735267857784442593677660871533171703993057712195427717390289855619041492217121812121624281639295873271483883689025973461304845528719465351422505382986694896719105286137206490592044996119749108951053336304168399584359609214669566729991285051903209503970355216729894333082996016246849050704321306457311415882954376856984979500850980945362003874528392651079961642710102653564997217225094068290926107122225450058745557631659449453558815429126267314359573837179709035861845185941645642457492069204064813836914966968168432172240197526300783982692548849396479377608292654357620764839906071657202474320680994721983814655124924852643239887297771522555780569511870463276861023581361992420166826696122668166429106459868355255475176122894921537113766281142755547534055139712310621061593050620975049030525530450863290976312217762328056710807881019462643043512625906015202037121449944777021477137413499242032161684036799741966916294446424397382181980149448466845119412207836361766550960203103700166594240756029630069939826441033594173843343750079580212529756157131850798287286749389521774957788342541130528968083295282285749549001552093143280735248139328024927414498119482744987106706433441045237934527490944189267153672799418735232084882258293267542891599041730503392160765167011739487466884607306169190387032948938623479431998276590109559478797657508180195125430217529824874383992248334380065951661717570466311539237674944498436916040871996665926160727934872348677701944723531992968220710653303738169963470185175203589413226657028990017906343082321777136991200175907861103081879446259190555419805015860781831196702674155345215658492614561102459465089347529339125845550127684151683322282522140432995827924730582266740129446167298619921363614487289807575175747205620764778804899180416699458341025991827047193719620038275698546161682732901209237812174876556439933370265332106994539989290097789258032403839374181006004890078779525970097583633555187115016325171239297888289633119857097723200515143043181852347818577814604914128390466566541598125435950879995431767029809966969495616152376459130198831793690287924728954454591363667380201201887463354180975944384368213210032125316202714689289888749669288341169184606818338740236909504002984952951943270383376858194928187331022196963404296034166519099981416742228848703196810131882629679618970422313021482398733969457644882599772978154430838546145623903539481544911675424627240281777253850687525696115574208740894059469316505036971148375954769712196576449695760024481098190180644987118621746891751075166733725657478339974467957461834759518700018121005107220278750380778197880104899947006130177195046541406232749021010175382165930722652284249630941064092667940448677731411973955596465638494501081840557530227161221585870082407730062350220245703834296694705679752467270343506881314451701094146127211796008951249203656814958902536351612054193123472223758188645401541005232271598734551525497644911522157577687487842152890814416391740518342592178313758383365754499064955250107981614439980659668632865350453308673295772007061350740018235682210115698431503297001616686313829144007761357200922055742821718089907860098985534711603823620997277946238566038830979110277053349182354407335636993743996305437337155520652116132969586203546746008820682365438340786921795869730747321656972756319501935184826597107176941143244134559933014276040705767874046696609661961155633354498319018747613767764251283350786050273925081044064939803936251893653057989348692075515426398074069922207487988514943417639498520251351605629997533104599496754778567766894797760641372752530775478875587134092095429886010441426429776241430029088235690799980171265138404084407208438732374150727795135476332221959368571911495074555269517403508296657140637154998161486443497235802988717806737638660823755688565262906887371050246463530312498737326011514684397098742920315146915411979450076637343788899854118021779860419732647214407135882429949733185786050601305042496227563235715730226824680312346662594562418803274657332810906302632084125927008769194059011293979192628367687855633919495614404365764380545889338363329863199756265029324187339026213176383612611878570555091192259151358512875904596450262404315673601671036920546967304193179197298230217262181497160662471827826504157307867473575985697755900564047770217871039939901722511780306781641032824922150482386804312255058195081588820963933410945468171655745762391669118066313790482721585883779610454691993413241283385988902858035550836348847868849039207367794758410114434913989786163107171927078410662339996402597004848745595457970725422329538003522246777443445832660490826811003916939981260839834852514529269470013203838970504538138848775452667127039765914485081609454197373412329571405048867656466038645972708220541976959504246465740677430033705464434799871573732309129905919666168982023700346184673476874422805063826099270408262470094183238516891860380848652691544398966204649542543793154284348880857996813487777710299932778292454009891492015937393337171346681963637517216588179489653657700155265793370986311412707773620926335196678324772539280443665169050672898212723234787490875260586305469017655938883225918480182311140491290077817999970905601803004748759937299254619944609767762306478872558539022142042130644880874289427620013983908916351250764907028146046508064086707286797926023012744778757058201248562512430607501356303083736265581374599956714958818944813728754182373942224501112607809808468393262160767912126504108287523304933640912209450539893539135212397566745723262590436032981244053007182115945777938682105025608449677570538805385402177645793771825241970687404880992564012976480907643164061586087948747193691759938754274754871230302332351339485551947940207748262706387623485854802732402484734918121566672090295799719321929082426914780095265932428712926791342480619057493780136594697045531158498705139993116105992041506373953301551245848589715980357842374112273127197908777751680963243514452309291859176338154157971350811984504009438040939613417117411807169280103637435511838297219542154669366034606300600683535274068693228687769508540705589528089422044683701810470584744909886143420443924337055913671676092207473015961258866676218829666337393741010515729139015444235297502404706676323527639821385191643535740234733835577793753961463810184241666735930903314636688188533354885055704865402089176890546823558685648584972791848393810447987437857690140770713390705047627160609703606365291837881598341162573237612072532697348079120442246118598804245561381407544770912399198264386118161469092593930628243719101886007855343411540324016473098682480741297447670355517599040795095873274449523599234582078133618307781442236592524057438256747161188382006182636083997796860266526701252570877431968171479255740948522639931794349734176439503167093228909338016407563388036324479082576059525233680069581249211930477822321340777562912751317359179388619537013240373112500027448873128384004637268528899296036954422522476194021690168451018902189582957452046005070578661093783311607737467468702055670430512484967076822825649424116956831336296455900891913269689383819586884359232513421343600970802886399738457750122411852122167588998706430124367827789304136503263054548938556219279201086518262309729200153043862410675609250452346048279703410266090650823480663365718330032628765064308790995781012185932140928369096565677635836208299458858126708509475048849606935669149274773398736167812969036506935869656559962495861611697559100192941422588705081724694804669790505855677467688045663171057775885535983492503380504911727075553390165433082627094513256851873940460871726192356162876585650895377424655523297850657055772778437805718774412002789627410608346591454291409707754620361607672542660601482366109798812813575219805186172173160234232541279500794776730062247138181767439785817552498596154239875716509468747994344783407719526054304663100274376784780980899882274235525235671360319505322423812007296681375534666025623920659417558322091976847886434736273070210802738617938204572145508269557853073055679108375984044659252593804577167215009498210694758236265376565895418310303819242928305431746414175989248071064349054659729733492934099378708913202749093781400509797893649099875237592456215421264442100224233646922953000537281339955393250153912417689608464154879376277482531581514607099819002660684503982314462592971088064795121281785242145486758234353237444165742196158842651196772657467169507000616257362282171318615385301325739052251654153859794311606257177204064625165662216120647124388990217487319296450746043238985025410048380253995373571597962402516301151014200028645767967100334450220243938372475830156493964413120413838057086085542500481416518935300828550177529314832348853940872421990022386731584106133314155471168155431260165292671329512734334540007136555719241249338823675366153893275750290693687044247795303534388009004780061755408043831393227334144773694502823549457852572754126116565905867725123152542496996883436279172692597834454345972708747084745586302065810686713033842680508942177712583716058858370027162784706343171415464785384240913571324537406051976530694830118110412427684778861908104109200405041306698986065876762541040256849687647642274534695177744381157311553883904813558353870479274525761442052789081263945065298582857355338886465813161340803590923845200592323217298618232599033664553795468351461884207532837332495418424842133442868019026929417905495781415192921948187493430034832277398637680639200802784652682850452040019678352491478582975084455023948096222115707278180314329497123950223750223278518603231317916993830786920626405243266711581387958987540005903003829221759250812967812749934467149626332857064661919864597069036507576108216145564160877720207829344790720373984255977812229010207252239411624133308987256791513892875171868617245476208210245363336538174448656442841081318656968252314259364991214306392701098427975391641825913743596651781991318578987751856303328352473283569145157258866854085987678407494360308102199314383983544895232102071067974916931412623230191473829069235125394230952041567723759339589741352990391739687511960807797404326429051069429373520472443781049414487432681919425554595144133881003184080000866775340922211072598992910771595647206007472085104910196157801242168835221870459403608338458180393896835932124666144679644514883685995410566433887661818482491183614300436476993937483703074087110878785322999664265804669240377847610950234472808731976829203612941450849564603891013093238596288507272077114206684333144927901463821788934241413766703836290863429782189124743692494866519995543190076483237135630979863428642913305577653778375901428596038908089196728805643111626459407087714918406035525462356218265188946559716314008902925517290645129658475132899553308501418291536150633603102444759371114161886086946231849967022272868809581792034433547050343645259725350734838676135087927549412536444519753378970144489379151048445745156887163678082486154756903374217289164955834393915611057401319880719968075640075838334371109551006121404593696722293348767327176911713059531456326662558871198364451399108142904130787737479784541935129278500751497621402957673434991310641676320237389452486646373169387291251080770732973000214344033391112691354169206915133831080234876347769930035196876453839785834972609504200507931042415717535885889068328533304465230212339567474389366963167509492070725977793007416919189975847150859712112452836707084278351461241251084370796641301423327647278642123400256970552728292123985326921299870657843820758745944855294334537453741067923839027490034983731576892443616191075178771986487820223158000571254355894278099292461967801394507557204969670742878329021145579594702205323725523142193208934206679930629629263032456571635632322757066088091506945711030216667436966253624885159003700651538177012613859564180683985773145892909100786573960600170789670456825313290230313539521430345939342637148055997449651368693183763530324682944642997577338713789888537919839020110621191823265660790806596293596704083673417805835842057399174879073676640398556159790400872883948323875250692123656783039389736695678328339063266952330105356917365666588532225171819115652906979033644127661861403189006268842326432897835216149987150178971331797767726821006811936621022196054118613926093535050904369301727424632822790483834986343083172850825665655241190793391537760563545124235456713178886626136909533395588880186743329724357789235911180572044821978141996816108677650673604203876703254510759130979254539545776961560238915557332660715090168701783708037528719482280612661801879472652944106704003636619066100602414183255564773155215639369238012233982660710240140043247374325622576902865404390648072695273251494190524207437251189708168978217060214632540704944725320342738640456893821037604422345033722937209417020339605733790587734439061186878904381511146422285865966176381471317383897436805660021957079620088887519027363501981213118713271006485439115308447511129513882441699177163775289471882897190225946901103134552814189613736564998570099700897207099971594245029972035354827958707027666400240839009820037442238468455554852566946776977567650432997901778854252400660813539533263493914518232675366800327582957792478448456624213252579070288657559449922340940308533840638327055009272931661498679091217364936392827384133496562590729421526792100206317783700714696531864551577590220252162787889721369829120845967979291099317101936483761063073882059855181184324213611887914666500908265912463722623948868187218518988825095968581233730263310687170844931957742150992702733479213032543172063913120483368591057035738580845664454190139325408741000203946325354225068908096773363612748906037130633749494009209313427865570695967369111038059743576174926775814961248256323936221640986653176426237743584621908922427737791783228952126757367791258431361545021573692336829211044199368130190365874877714814398687538914408417744208067236323467652964676288638370332082299890603322769543008812632562970150448781447376618630622161754646148317676118454848738050572350861055378278628433963275702528628668707444902080912374082693177683947162942512310544899926060301399566303726069220931123354743243604883124999446621530803367788636708485834586794039672622079423130231285675744943431461335542463753732064924598045513719565462717364138363370778973122307177179141999253604109199405305778408522450915681209755891197088792474413341878957852860742989836301778487258962397270837744759519514661536035710081206082991356922654120261405220282967056936375728627855904490599373931357107505961160399376834830188407092170083271014174181022418637276759889790327382933285290768618160316631674845666266654703178224824068155780733173536374426568473535510641705198052955043402472422505314392475504207729072005655432884230756165942580551921298920190789914421779303662065796440279908816279908495262757919688690408591335957838204489948003839144350341852287622546020937244682311600770265673179530151132046538670208852914217415210566639687311000036977219742445833104190474407266158581020796829186997104970099367974354738705856376755799319072538815095604985379265852499212004555765631583359120086904792864249650101809902352653777401410764478071490809806342063711246334157373049362535665349730621821885439782638458744938045139555085302807307850162667403103045411799220745164106836981588603453681830428658196657790677139996476034426871484368565983008722855334474576581638841636986774756755978738711785644986722281412023222802575727115083975988619413965229774301610216771127124625163338124012723331468274580396410412071894600956741684397095381531804468719280158288354274711908479248585116951019411949889159209366255886629274175722216291617439675307051063861722834616427932995121566062384743369482111425739616788779622661045231705803479312798901662921132639427242817579923595485180604512841104461065365831378433206700710376938546364969832036342133278813403152636648718672156921633347289880688717662184402765806044622270246385324952988098036554896134739264831272246174719132374695276971415105117057778242603726168191483653556169762462468267565222156987568663317498904400875892654508054390488648180664993673778479889135832740134951307782985653614788477752645750253878943290760780506963749214952026997299120129076275646045319139119786945532294114216369592832805826287936612128883015538252464003251111216666280635790770729194564944551906393601474629771161276541869878331552580494817022507432860944808093352032922114989735692728324080859882937927211637397748493640564851861707370371614445660770515426287314078196975360645735746767125509075396375158031975678788609880450381039870306802566070937491986701114858154747271914679548201839355552224741599260303654631695999176091722631492853406937923972503559670942382891415365851304125107504814983775363620890283375433148621685785960962214487525288666101801179218180743793565408342076035407248137495760518489088299592341779961732431721599278439154124719540313011066536188543550398167989674473119404615288432561515967132754881426632765822339976701477568282147127860379746720243447373250359870872260042981207013224936135355220803454758013307093416019156511504093097013723167745102927649156515240775297434245278570291706282206942771212964014406457448766779588038153680740021119257513455213217132268213005874501717403358152400916385906356724177084393650008759234926437125719167199608498930288576905683233599072367232577272874926988781499858845275721614439745579511978931643412846224896237243294145262331902812066269787394234886688356029684153182971297468587105289473318081680894583262025931991232859016543013502947395759759601429245927297285753253726821314122345951087966213305005949510693745965871188613725028736750073695387277414253168153134530636233465650754869630318047588049918460669929131355893381310466294605965446496657848143743933894782811837744382236343484899565612016998390121158592932648821815011950043913429329415674335360060853417133776094713118899556664121983090375054832177125763203975279637866629176868536473953444498322733300468117138589818010433076796730822420893867819117814853083683050259668769644009252010609206055078344947643425861982241722387215893396457452398369857536920083847695762446881775164209193499030813122311461483277099702629594441230196639237609834514953710382598365044872693346269720644849943639268085399498597901661481951190132941347214432482278112828014205487617217669819456096297414293101382285323472156035493532496240016074995755726512537131449998108752507492159390591760387902544876574888917047535662086609276078716265883861697107864744037535621665656571910790991391022403889535482664761607367261724065403027595492099537498768313812267476068492065790856670106508462326957487428268965416317809847350147340992220004131747308611980031540341753766249146613867139021399995672740067680114427695589436231677741041096523353707516602522836355671941452332859980349453143520243843793339119188206714634622101918381093839187884316825317302777331349035086675676061363886873860292199188508374063742157113283779217318301792914289058863080895351198741627744545702304570048053169363298748064035881009413013188307587706489438938783229602718542783252380395948023160365082779773826706938976031225401597984634503970595304941653732951712010523654054735516309534977049856881988273754924080990441246877279601273342551612430123311716941027028272235532140068783926719813487661517289177005130012389572993119313194544306140649405618800037425167377250806463193660056197696776724662328304887736853736133089606283575016199773403082820695865883187135276655013747963748214765793816394277882905697117435359523805899339167632361486826379746679652339408526741965575799828257134469606936458600072889081547061695388760662771598023783683328518955874320554075904917595342826807941687491454502033103329094111952351921168517950774517152094127394299576631903962491005506253644552548020434562962337410875166870004515591352468692578886883115417866181004394966176673471160508189900629641341525966082223320197385119176416733634667707914676736109155280925114372069389281622788918814278987892982227513716562863473317685013169834099536253160909896877720197410616620438508813024591676024419962059687563194125816527268292958051071313410523699098730526215473263226298254830321179458536317152154558412685843788374469150093417780059238116435546874507070642372069660146232794965233501391252794664712483488129669585693070406843540092383276823973755350069401959462686593077759300791131597844051419716165537177473750881767952585476324869320643057725027612233956688546461457805106658623459746026213219095264386136433604921969450235782868348022770156236291433044436551395142785087312657532454600185807289112983682507112185765056171070408645276670543902399626206931217365279191420693559230391918610769644648875749556301099330505316801911437788969936511814197952322170863794322378864843935698398779826638745750691065550235970446266464469763352106547422511059089774790818127240926375837804103154796387104720848901693337292935219813742356983477851711362194148133708898168991759066323285478231810894716226996521634059998694809423469520235056999935849994624509753205104377982057152978785521619136350562248536025768338331019461541762342548697237563114479265579095905799895803150908142490554593860339691631067812254210406547477419468820983594062535557129992034514307191093835617410569840826262844937141629218258971385233981127795337909125801025069680901804281726069373217944660055396865522622195707189110377771083668495499997366811997850166077037177232484002261198963035026415468159875274059669420386281543644879902389162754113314657593531086778949855259819616353506556237964295428998690597206715115332128346631919555872516424593786695437375830739713360821373480727800224086554603674212058852784253906196933715861273821031200246777014908140283509840583501854024910287164814067700958241748213257569756664992250979901887238365148992119266124524989178591911683787121751816893568490044924840773476843253630941478360968793644145284232082066976619371633077131794018961491453653795486226009003745527583217433608812635203984151638186231796258924956699741005836191874055185569041228576837639237753463123210045289623982680608551662605550517815798409737745638871003481855987404144373439748015141708815259328916855339542562926301721050548753168890748449654756219263700101441974400838967107096933326679281254331009339937058098883384166287394833440946088045811107321134573855932892794868094114929609379253706481134685920976673188113652470782328296188367579778734362044559182038674557059279592275153594910557419343709802067516735169019244832058849884734836216804451166279080974647273275208416724976237391786569434763914126420019339779069938614161853683737313729299464769830432861399381238951711105661290113780517116573883445555145234667327822352755961763137481741494519194378986065829384334642813162473855509984162827254413312115720337432702436428716014875214579502264933651092125987706337845518232977014149044117253358624649419430103702929677692916216964180560848125642211806390906878395640486850161536393233525325962682301057493095728291944572769528995703537521452900448141126623154499461293546193817387483226880139307605033846336091365078494448685878769839843787342495202263435387353746132576126062848018289677458580810816919727349330773583744226190376548627751704645717154033186639256844685694401694312829621378526201371331492140457207821442520409349572924614801785414232858454917099856119462278145538060386195597250943708396814842876228155411547413818536898823308509426534003647006503397147682512027474510218511460117262891942761001346376698553095311732907559203452766434563022779564973419195367294736975272187596417523696789983385919542208824261365258344476862362677678630008256405478026877474474860549697677913279556676164398174532872255241722567128226006628422455475106625034017557094743149640377759591260682132529387025529597693796846678543003379192795707939534608810436193464736375540256101018419375073223334156429399831696181077040897252299478796108282067079652118646045850324775139720461266995281137184231967333939578750528553574886542519374003727330027620845808376509976852641931562989658408142466639802294777051167649069119337802675760769977629196553812515315621622693053988066040710392167319032543999777619689870472665932430585981791632055612598231245495968797432417697989410121698283355168866276447530607501264636994239782869884021964724812591801090057863294048173773276130825400882955974261922250588712306727274642238560822191173414972981719264514983468664803202991156375806985475232959569176738368465760795654346687323249006271133431170531692020974400246492253795756157065917972826279773556353627469659425493784437721311869407158176648109953176089732504485016780436782937532715964897859986914040474844963416936369310662915281126809710819899600133018596261091958712809146193006600794523733422460393310644052740483588222632232100242937017966876305374804251520555749528270019308752257241550125687702843865457546272653579343126475293588267114610768383249535736309833464926151078254360431610255111779601109662221333343778040464685902615122669320566117199279486703208753709515579764620071883057988936439459418948112404587740225823886226861747200776268311293840566730439409229994305020402114349435939872749974912006094335533328973375605956030818506758571525028165141532626035227256616280162266980856178088659725365856463752966547285644156149070725262137390032402865865801198113285971265104878615112322437652667552410084780946353490404843973809963141389278422926265536917432708698518143609145325555665120697847401036922734331694881979108702770744902723294591485003965504775499655853104351749651649647534892764933376130031973953174719676709461135257813659559295591787904480852609197738305927702768231425856812857100621502900846398289783347109259266132460116072650674499860855655993209549659152900555387977841128915889391097750736116269371745938227564754400853382320474730530935321464540037096943784335400751946277350111555151970516100714883898218754403999070211399909008438165111437530451003594068715785493706664695158299637431244673617587314601466945027484896640889116707158320016751679834947342781163191329357615996126189795329035748385679375016251056581430356172750145203593588048074552192132064329411630690869915085345856570127322590659853676564455920595200161924389454882177423457221460479334552016211906437975875770802624918542285236132958030243208387711564002641280484950155906215999602364270889225442744064266472058414982488412150070403724406761905870363151316429197711062478813801436101444295203743116754331564906148830255453158469140172036433589123492871087681731104497116908883753879892145148340639314074050237094333261508540882419371194236220652895032682252044577098186052834540609849585265955416038878107323627679438866510273824866066952534702913338666186740189615705747877372534205396762420063104509081667801179852659323309071155147457052422456494270967210783472823582810253192105772130904460078815858381381710120994834338186955827960945519361512345411484136896036111284477166833739256690090098580796542025740270161615164370898047511310570308367284644321403039153232090765222471966491586523696490303730119434999549430658569213429572491214898562268969030976075862355459244434599756516077341081452186410405489122187054960580498897920123142990043260242364938439650076334903573885395591508174794618322203052827471408883458366916571083835421652383731037082768943513583410532032218669682894471971177442696102811580612652170045014529096604505107151087962710122271926431676854526169009962178835107291950296582015267162499900373983722589571044289271449404738929150750944330382782300391719457977876317429509782630530596294612682484862528907961325943951851000396557988774927617526973659726827062872762985973390220299595588148471755074469051531655688179303894146685536370984487250466019724224514571927018857905175433958318390992670022737519386491699944102817051301196768462270376626031518126772635255576999876698139628160854785771912358173747687481912979004468643897295739280980687844005346316157906112786102794235974171201189731645020987187705196917189870472807980836605905136679367995278943460849201059030795924322633482087698195081149019695842766036840742221399048479651342886185651462773345022447968071857425799772974053093051733061566132835258002723342264201508176111718641929645440194352838364744483390661861612111427177467593644031381876369138361041014870736093583522735719798952539154084671940821861363774999257601692464328580895662363850859273512004759154635976072088985164878953539367766064783066344169168578354135863287879201893258788249837309716532121748828038569913575445860286110401842305509233388086797650801688540713682133044725402646183881289060216712088697918722598648372471739539961265827879431803812815503800295234258708540289599065701899037587165402910021712471812110309901264959444789357366411659569646450064244538821095164606321229387509461945823239750611231029130606252126636366125111391847172379910946186823465958867632643673286324317124406111330879617766036765093721302816437100094578647247113783027175968818362443222032649595675981583329705569140064122402925644619679368847994623672006510611907531615002469347317905228159641210899214818740144921187124126250186597784476885819728829234568610579249724944083734358266467474524393276418990459839935096515942086749242636479296818925031440447232645061963287800387178098163771770137218481858810231032741295460997758373398666555202369522091670072157558878547675677211264088888183267627323024298700776615953216253848311617359633565637479993871508789000036409218383215531157733057627287854089681780018011761727405488423292738433320270840539219103626034527814732598483546490244757298656790146717855387482118012011287214456942320855733703444915405744394384350738008182347813146231739283834362384042441425036412487280670869057021323412099079715357555804632876219595287283947289169174636930900343036480925520640599960361667252499149686254741175101411834939488774480345706955476534829403312341502275812927711207370307479928143957966744055228467177398750085009466019075194600784634367705903907908547087580053292241888396839254570386073468310663162609181507169051205900494701939407628886345727128095554333035833584073118265703663862577421175022391241133167256111268420533631442536758460211597732018118239060932687805243950891794712143544754105411131244047093154207891779862646865023531698016249638088844335531486413270707899196867699387929346190227570254050703714667740603086164753454097414659241354027438251544258557067412229416578368883249026973630472688589307200695695367842121467124480874756830135663916088550093345679735417106009406755985685237581701242468813720010740633360092317169033022176329723340258251312402410158399928556783486561299204763839332754330396101398915085720721139617611549138186383284253979476787212404166358167041589177272826045084557402919188526723026858423993181710457299307397351369205241275233034836157733919578506817924210144891062059144638987720420814738293818665992916585134735747452695952692709931217061406469191688199727449735431778198671104045704319824485023107725679217038280204088817227465277526211173550555474501357825239335323235256789263945065858302911696844706228269642144379661367859528589170299160796309430576339269964148228770351579145613644064690204595538755849739163810302118745682099614246022751909975979887030324154526111571188581656269848926890999231445378123425042060886927457474700212078803640479944724808196476051816512955842355205210138773559169761596761598510560897406426590309203107721620254158612351384244854895816926835617060844309598891805720567223896849243219813070350295203164809708443121205575715045162354753062079508730464701222895039718089750659340225051687793533317637898011331191414398774410189908472501234513010340622353224749309932651964229289378661282961593488041760627181750753378471665051198147611273295025589816024973068475576955195030893799478711359837988942933871867571645664126945574636654824178877543182311317416916186887039336796977335888679740053553682575338874457321491442683536909303133838218604148653918039505373055249391711107170193007749916301527152187293820777075513377508946259169598553887019089050313295028567539766745613150460595677277514939177726099312700411107323956412879790001591281958049766799934818336466347449024985743339891151058327307797037159631028085443851791536575496582344844511801227542778135096271280149569110755849818650381585960705179208888998032924850750794573040074404717134996081021428354849897890854271070219156202895556754275584419385865393024459075296546083755033446256463053839491474561885867876866812051934248166024429029480319460508817088123199885764145594944119234573445691668357536306586825956856873134968708989755591195156616867369465446728468513171676149908478711967667139624349514414633289842028877441809740434377884950500471260557779199763043554995226258517244192269964703936824681261544844252377588864994787055713946254982181948792653658090704942139611560772542181523534250047745852184189363888993657130261376709578484610248758296914162589845791849289906232363095847576715261324609149807695902939447421832493931411322162924023029797714162341154051700702782773098055923317928609951845929486901118874142816513753266089989261131187017644763906617674362375075395275420128541966950217871220113415619749878099034047891090339662767698606063838524499858758337126685679465731518832729121791653342351463839995954807955393865496026779599647928756917760784086591991841619076498764733811836327987827514624113300508555628384802471066770208090891023794430360901116155874605989637842095791415735501734044116639989340326322083105845816033410687439526453438900113214264643363888088168347931457471261021318826020181354495593982014110173637836928679498265348246920420647486455339819983271566168367597895719425925067880685275633815176780656077207682206655991958162488828320233955217031681862186141447161704802365652168502927648202704522818419170427454565209327018085873824558641473593666799043293192302972132098826929389148184188890122170802392699958693716170255039424206269029484393532094454527954292123109053613622201890192588968085360149813260870110954684826957783890108066012569443691691167328664488667197113844187685119883246207495417958161453796320601036353775561633963729715642014907865676581163439352652700688427125839325921962717418813274899817797121863044122449185199816874207690775061938703897831196580378533893425177037648944865664307695790892758325755714906864589499464256489334547911908165013931735026006394730742725686884465762684905225434787290498854138030754573840985488333060117106741502756723810335775313349491378016406527745577742894369206489697149460239343009147793076178591174342806252643237585512150467440490888048135380722342651030624959499879257202796583471042933418723646918181797224724589019748038567732142580660826591878469532068920919464975211809055233543254217168138737587337280676264052699635103331415044668383840184378025197692363645943679155647579439240365970894086617801858515779267109949046198979951241109622392799825595793392739107713623938977507755495173990056441850062140340983756081744240901212141231986782186205608346023755274207555010050651232610226120151051550309856156876706510399350138503397762687930034043254807657630893876710633955502224218374587929380587755159003681819471132442257798262928954644396121735497892243344932557155093088977107263773015458010637026039626595344755224590363305143483016841864815072727032259906434715503276520033628184784267797880659157498457347934767388375140537851196158547568192145543308516622426266575629479130822857809538214832183705965934607519682617962418790885310570579385608141474958489780314112208741700670153434536686932467222646684443506085530069252156236492249245671165192350621519752210807077454450466367581573494894452545515648315991594092226724808611937770290722300581402187435305074990167689287948475157418681230687180297371563860369722210984116274974605186689747498073169435721045664686849398187517782540642828016866069928018951604710034581991399993249886119515545835976822920683519721580225169663842828893054779649498862242231471896083547552508894284942089319842471841407586694966011436203749124573257458282219175124409202384186352696021648518506764003139086091941711478628140770713028525147658165881354341579058746889229507722131885640797317769661246219422735142456821833025535719713526252595454544715245455504280421548345049240367267809265294594773844786377949887891055569262467450224701408314166218171332255218204483552977559723725738582327030867313477225742268488290750712803929203754105974876388766249302590169575149187051218507262221840177002736087428523740706285986516779981727968850304691712849337000362875639999957126305789525310702118940551506310859735599016450141545336669800757899288243065668064716680331866804058000142295451972959592360015564961268501430986712696947052818583263684683718340086982622355668816278846456269402906462050290237814351320735851125647619238562343724924155430832974720217865459058490137117217094065613368775148990651934925134722723364579513690192493244673557133631174500259083946532288348663325210637602755657452819029842470432889999666078919301747489978577220265423888847951943665859289472286224774061924966368844454803169813427191815488337547603170062814180830824920426722172903774919206752097422622683608068723735624130248669940947370769787172991417270373030620020126063383406675008805789141308387762235679854770658169011601349344340493168443327363965961006621848145100808895873448908965592817926070195400968878508826838092900679382871552982193681454902653381824816768007301458665860473155462323568684141057304923475953388793781967632374889011837695003237881097465450583057840658069051745900806539188412343569325149310447007605339545265674171453650266541975631272647181739289866398070267551683970024664372353104603821170688905246806329388710288348870514765882008728154462399920427591619690645657281785508450022680063253276306491485128457054932420711203704449073526506697334264763028627939001091308766005504181554131474333916781780467144658472426788878349814979908591945967634899492218032662702822169675030144069582215753479521503214520849955180189787288904740948816446293696467510377169884320202131119207003933717185302601224832664216088141650215837917642080062786902276164996109865051296157890899854537063838013490117614061640152956941828461061121122526435076799168985095512047262656856318226878362319394658636103253584038475365307898317210919450189082843228314408232715896570799604227357446792138726757159223357395082709484420559695419357190306158524712339540013836618733785421987321383171836010463380527810547477177937769859660712080067650066060885218857093301236648351604983033221370340338975618357683630390645820529476707064709477946465791465241618499933460259842631277932098702053791411446718730774952919664011797938134933191423220226528676823940569653580143691778939895125756379978484345318727036699943323346705725392694668632793164035555825831534539762263249047487280238340431855017447597795440149892538529701310862643632135039328912310586878939331419562062218688058817187124100232888933967679074918772641839513109682391789867009720888653339218300484057496130427290609823950489123165032233770376357632403425040736828982382411132173186686006734383980623567235401615978938795879290523113033888856686957778272322996654831693435564474138359781605388998997285545953846280774483950717116411649315048170871018238316519686285069964608583580873593691589709068704458660069103886412655788559828851501861839636630737799138864494994428166419144015957579395880612094548804044828460644419691315345725535865891447810195671721849212203089361471449995308860746091752198701361630140410567093859060058848762666461056294790672538704490160798408182998010653688547063879937472273375971463478542501803746196872225060519030833222449428413686252827188649769078343892594942720562979755373188197587688168500484542653343355469232549894231758226973748792939768251732128142324220075362570648966755391138535672897810091666544476700863888733369301630185907606915033854382266015559911372455912423479836414085805035503078700623233398868449605693258194303725123193086101483071918905251349307836621032935208170785956369589667945609163235871338129661461396519600990289968099325468776184471964567572285977743497805870658955951518947658929225447680865707460097060732280309809096157472161363836769171325325538470170327674134310207750901068455581172138722780842998682657854067035198745230454388002981385974299928991417511136398232773505787552394085139102227335247156241096259660674770804352086030807783301325372533200414362939091122497772617301146296209927448654938718020852330749225462544748034287025897082613249587330555132062099566395380265650056454619556987337303349207396652729731947588532327210602224960462579544309970667670804669546101793580149815760763470632300539669897670455139191306895040243188765414432760378618018336416816371493576293394633973048857764617147116641482368310364662703287694346724414365349789301435616352156120710175572047715998334756671695031806754258632977333434172447484341557643314523505569978597142946307252458376492658886456594729347126601263861566936461849030852894764468619468419811122823132475528315121567502461539516482666868440274007595597613161931093833659688010463584898487178637718224047145115480974820053434849418265429200778726642910469681483003615632048370779103659543072819338287576874569924450252958860056771295256805316686892313529204192637017541192157963365791720413319982277016646353261858141837082761785226097411768261026163640726496124316609373974706605898050426847465021636036880352020631846799857366726427315402594002284465465002336884127640936683573734124456189463860846662295055756874704254255197575189891770508026524485860292556009546593231669382952660003248093110327737240422562114791643726780082331642268351507994607303236497299684686890470327910041548659708087706852852034527753887917841283412720795629326601168595190215773904316041455881314946986105842794390964151194140359443477035134332479915666182372975202486624926717411719928666159445247411977300207329146946775755572595342419036647644593983219856513211302675237100585895945297524070088178548469573570757479212615763216919782342164345548427821099034480995674540978870362358211611934417872521136149517172702261363886666252039348077539237817122848617772818457381122433293020305257493809285935100641632985095312841845376069130955362629574873520952665991702078588895340662502615959174002647972567700927584941605266741461325284522125284215190012795068683726383830509991479402594328866642084727515976876150725800156999636496814135810173051817528375778039334150468475871029418854397000623926919231549331642164797526006604211703902607631008733181244245674880824099644271412623027527322935328970168524964608384906537036163001460480772311607762062644737415866592829733751875348842382222541349901383295786233823708986455568472222743181731009887712789746898388279057967375660555267208966285264775648624228911041466647903837123190785635856073403212844246594024421882225120100583428991621802206081530851110198382691170413088061352201334835535285104753146611660649074949958857421928643444012690383203625427813781308277219698118925395607596934195214172342398964819282165606996574464210222462552394101347030500859730531189220024115774145589129148743616526581090704494217958921034574103023327986982454698133260211673353999256999279869260687846858348405777379415553987675974767299891314502021352396870722985038108594630982728051082784567110925964305433824217909096856317140149843885865005944593662063259522539635423615021122108402239282131444034121569984710775092697177944151408322952256596742769467768057698640932484954467973722259594132673012304526868371785510199304656652586200759612607808855195565449051826647116874204534925530204644050727176268496321653514779858867902853151591815737156537925264104379634264129754715189847891468795031693583073746350277881263848889451867109991359972006642811348143975579928103474119883045905773849259049815159987006558888324086352949880381778122282184043189861824725712150229043111023114528428647800724376702258570382252044691400076555728793450165956826946863682326115228770790632184286933447136109050489960232344599275507639346262100400747180573828013653765908156772902299932530012113348890248408075945218608321734937816857881241141824332516980482308309823965918066201910656121806069123707235803146670803594804932566720241919651720471937298424504878808320086937322418529638725939573078668543142672424528666856148745014595228547508474053157673605489059229531259711274478539175954628177544954363187481222752787546445468128387041478304487237388349364898687690395918581840236537368860878864707667828557283188821771115088777736880664540660863630321781342537351678457005896100769345479462549612748081970872168383420934913502739645152766412026865782874982583208344550805839119258047394709495977630828122979449658807223471891169028227675114598000720922222530041846197959968507847368644034970492880641105795766271331232582028901412300408558118058625250728444272598275529445687896382710034089691116337803331011025482486778476565887868685255990498514565799050405565116375728958984110916094838645979721803417160911544628122384529657342853723651072566146321364878961448455127485579767040218956253432312862443983202623294627284892879011794273146976061807912790631297921847336340205381247675308695890293696061634882493676225699232270624270207030020092470072124986213808066182360769845637561825831568434277018604996600773380472268281984536937944981108996484636239557730140040313025441685490309520493582823109572732356972388229273821701467450680353208986906592981587137091208335969033339581128244397621179776279289884629074993475972511078597518934032604568475906966383465332587775700980145571001322630151324734561507463295059317067844189777475173738712284971075000384906116380212375269396610356266040360240267850372142127264288650376350024725679286618829056997847139700694729086625863206748524612554726812125076931218457645480518042567920189362801932889964053255424245934958360164777860432261463825405448090244179954809984902827404557722186811326019073074008649064344643711750999156302732570099305728829584973767828721917044185218025964945491166405660754651480854353054894450010063334687179670654296717234548493720544619082043934489631310127147044075885123880384656649918805873713434943327776063962114759835005249660232188247418834587616939774418875557409183051158042886801781243071707778327238330176660938314769811579720296288093215999872592558218251500697444097501522946655054275508781294741600245714933059786045180418920713521771838142469745240310956993948326127254307576138688929529360742967963248212468849535841770159847062074943844670138050476575553489616521897170166909856981761295407293512643424882219509526845868435226069836421728991996567199300058991209406575847325826397969364210271907323325824076297696311333688445173134823306387495913578784079636258527481963606261674585469651084149808221706818952299828755637439529610397214971449298980315793896885804678665158830917687619564876804615123300985492944601464379516305762311300082893599277875221891611241967905301654419883331325940423028185590585080869304353850509501958941728846247830774986254261807430503551827941686638522657172033299783001854982596635213677467025879935956527756036785035580384076725142839039208843450767358616843686858452498273975098803616700324103584607213452950574661664704665289391319503582605941712921557892761733007530151742742799400353201874572196526974306925557551554929448361283186514307129701597756471227761938099424211756718441797983373986267293204163576688473128231260937636701735507520695396607125385540803292917870682218429887980441711229985949351395159236895142457018848739566895803849831768632546009158201415263293665580901466784719532258756960177156546175674148591740816383155173656397241346013732845337083045430463368826865284706063768776495172483978449570134448104060608856919765610992234214657864994661209605048119296623777854319160124445627966916972179705588446421211529858181446358463369061906156072602199214793517652051698296112639875761437621706368139272759733344658266399153314533415629501925918141736800899282643765930948733142789617732897088850859184703915227747072032846706732549311296436155148549752357075458071399020439007532289171114653084218165983870591829915004183033951545886938382085965822949458927762801305503976478252119012967304237407565792125478987949882226847165177932761596334534409142262274436688749920101155398063756217457932705669431976090077497192425585156248123668280576753275492687004249485120769161561057977889848701148006341742063571077029411323697821429129938822759025527524735107044569068584409157911793646912118068345819433811599135936226299072899384950616669102419697199245952252707156391103020217899660381239140743937303951176185284040630766044979519305815958647269098575712980060656369061546876939021761045378867795138011435425538042111694602269703574501405211886829070201542475946689243834497767038663271954235388280050529674924322867164984130334876336998540045962612064349044595018676818740137549766608047657809939173845105208330327035823342933197190141264399393742089162924248818928244854672774522779888526304654122030977734613004350193631180716324815547386044563920728796443944305622250079571703002975594919359596653987551297033676258667410366636524986636354326508207509114526445385807321256499795025188845444701804946017157614230512172291183305809175050095118352379788725017645510239513991698994908714006734408225610061446374142820063433249044244759328338592637881328011271542226957926941164656441035553897943176535150047110551322998772583379970777546121118220168003093378981285873292951145991980373840917442033596010281868081943074906675138207606155497771903597277437040587980451328659107964011463967675573653808853208068176897735183924634909417869903661490413207921227502439394751940886895073397233382307039757992711666713202892146482797135132425374803490636459515773720181969310475725368055193333032053038259503737106621159843522019455744966844284243137072188871975396774542227691316224341704459402656025753834590778432304346499625921335096720178304728813591026877730224102845636982564968567259707616456197298981221384511972079231665345387678342245610042556963371501181966248368093070277261647664435103997430572079756631786291942718048734600967562055815820066280795428319464909737241484921249353005767687233177622089781659107919260147584809003377047131451382811937997157123042636954169063830487546177797561049694296647699814754541406813349512494178572117807920596843102860742244086273885174533858714318295169802065252797091688700115973756406431730813487345737948339203394181484274901345167692241707690218529735470292407946395273595292265590705543191632621382937267746507659080808318515523874249996847025410847463343751478471478630336977871236272118259465935202881606647199580278113178624275664923189557731898279794229710788321962614830544241855083487957747883908618214647788297319182640900404935414159503571968641216508180862634418808176500106226387020889582640817688514699353416989313245987790144295782786929633054969891934274247172503805474284356395732864952873805531263515440960735104330973902670014238456684586764686324741106118327625950067383017738606622695111695135904459718282252727663750349642018536246880586619371325311781683105430777808920521190423237390646389684730367476828804344257337876731573233622965284131816365852246838812941481136689417485973516175950426233551514960614558102586445758120990570442783820501721306613829070127825163314709977896158612228436289412467338738640531641101432222221234853784232000984206689754725138258931726005811831767532568594271176517448514215443758818365270123062022854889726331473847733041578411466361093052578455243792205725075157314538921540973109407288774906527050828792947722507834738007905064185622853173007033213599298361305283105507927891014586808425421851386463458912529874935101893900993177271468396161472674521181275853636322328104732796307894162696666448873068456035454782690633547655104942999255463893011463723673025642899159858589217359426302194173707800177477182633092541935143767270436438767895082041991759765456401643278652955558277363459100697914325540777692473023047691403312157046446576112726736129790962347630058910201322890486119999063899869692831895542019043270483875376603869653880139796100108238644803176922239575337892556658655835852184874151233236304570231270735717067011260971780455473926058481826026919907177686411585540618491096269836667151848160321186639853791913033654555660221825856381991099452912521175368407210673470275086060926007812529608745203979078280808879006773311336638625335720457700487808194065063851232396940674723454976582715388179249407451341101808062236438867734015178283370093830333285511079714579482487325836151143857374906848591514371703000951049450812166250005142306019259107588083353319401315191644986905094341858172901904375157387393442295096055303811986428723387112815608032648218073241849005622289766680730193224603393151114290957589044951162916215771631366734500644247357480847176290200319880866250837663685517643632622372112606115811773616452790596145585189522674873207076055737666489666201184335411471943255093846781355621821556383171350462267707722023213200797423241844526361392096038130467965458472695131033758430985321641546880054476706247947912830419855936294959769986740590485735192685449297359045900451499655602292703122162431384929830425874686844109428865384730131898995123163625732993595665539659116962944693613354376093092094746348323014479459966530836679723800021146149356247709687997648233893717536273232130115375123660495025238282111356905536665498887401268925571003473973931763669890591215119320136379325097856285169043109606092312942186423702378133074897641397299130440435826737458160311956903911462807899702368640394582829254495840102746672180432705345538579992108856952395004883564049104255082768485197628304006310735647942497958986821943706963042545684300239391419611909167793476953056021665755622854325945924703123010213570280115101147667579001147985098948546058176504228902706282301722975724960212939827597199246129057463909544221087103914411272422431719438872212483882197099429782491569706323636730115282472703302202846011122871044713605665581174598459285546301215653499943725444134091826112532106643310135294182910208492444840980904255206903072243604514774216422026684865379022319974955782581934434687183093982071520684289792380788578434343013275375686441502397847462614930223389796902971124319888351858161091461697486130358856532131030960473502596950254032873236503411157932180877118177740282188553739295614761215240467419078272760076406998002519899178855333503991662065834587389095350281843362201617483812121254359942911925107609795476400664894017710426266371001411561014794675819422810984364459053143688492120855913763977318620440104352707685779568517263464179853578796908731853437292606377068121798034096628147956523381499251825719089880334973206800174272435664467736573890901695259738839828164756752143929236155183042863450574043264942562291731507726907323818625360198231194710146293422931235779821184532566718212425753278885061679798475343573909510705877625886643650073265170148858147554157913356343497930018400479865099742152328771496624625790471281771375652235310783229033452072039653163806769976090815912242160637113456603610625762666961197988551536794387833441233899397913024871087937990511744307264328145020533492596487343375731898059923509551920308909738973456991533929657443596007763394438254763805258070083105275854771836553495784415519876170576850618875685401550380821511172895221091784006975720282058648725035190462822011611639045951235555847318261507477339947202487479046638480543515335478849307881483346353965352244925772329886649079826334820807277085686746955552200225928151774314132896496836344471353384882682264261284194320581092697901264527695246283010459928764621205667647691536525250779064009841116822702864926141343054025601449060154265443722941345613605820530561256822316399432754684277792504149041405153542271406832139935987151282717890895863157391910428473145918995052815844593913633272890072954486144816547246080431000757174137762573517561169485905565340968050860289014859763730839770416002434957146800007845509902804227181650774182972813191102191503405205367918315899776609542372349866536269236452851055504000586973608542623059153612716519935413261673481517836414026849862300221180633101468360609073503431957315179024638638945922351867281844974850384462740925160253849567153207002021087119740957760622627609716363948188045390079738745333641477027662355508074702202323534670474532545089664425463857580356712721853918209219887172894771780826123120288810376056125294862611827798115935119178683639006688924075184318764255566189080328631253275626290412615518404782443346528807320148009336888230117950873170574384494494924373290232986631771938031094347607668632623339207207989964122497631643762949696645745082023613675366270034761186069333173257253803356713360622007520669835999192140947213358732875148619476362628961705361222516664031746543920952349758169044688831000750814391711866842966480220920616166249447977784447179764544644467313728820916062749259858628772928330661378181561771612922261872072096767097689235851362024057101852580172276397779608294430826994442821793132361756964334147021394528362793589491327794752303848102333932829258539437447807296967008381711335830540354246498086437638298609207737099118745378849715340281286281113513948058322718220706927934964692293207631572633074333695086403159261569589598035485645487119701566741053292939456159397598771835526890288258146900532086399241020752799357229788556544975562218294778128368575764389030780496856402932923835907391762708350876076164669446634080081146337266794842723918651045248720688432540642951708112389833672679992042308006607714924127445859830787725600696023577343822481805931183386737335997082776572639238430433523661463874715059572988656943505267145425888766016361472355238214603013674982720062531375562200861184407617509516187406056087390553726297341753763258219528822687057098089909644920770358815597314478431044288795291616049313592412119569105501340297466115364310444950416980846212547113849802624833759345948707953504274796992892579774074397676124528232986605075032665369494670638248520703181547691328430133173976111352655390728251933929322614056784320224990354505813491484117700091973374739724286391442220710992198582579638538138794298770882290808605671793453947487414930046657147328664365823508330372009635028362590329417541943728587389197220578328077058131076594428350124165282801398399964194967465299490558580199552171753237635958788037716176335179566031172310687492814726622169299847974570456906306786503617288025736901105715758663841280897756143298028456950343531584852330185917159905546498615884588056337984770731938714027728197809516928734782704022971375012596591469432285128946537116496588598716089875562025018393200857309288825047046019688070647826609692392464384923109949333130426886979200930966054019378381334853133423948471996028345293511489397069549644541789759464057617626552787945892394202122009971504615845250846803185580176152630435648420772464861916499987276714755419624990980562392825476484043850848829759532104780761808232582655643896167631430035534029014287620427226864319058878028577061690299253063913465949931356054684309144768519140939943834428365627513633339589181882218472855825602039453398646239806875549581572404056371093660136065591081257259822595808526071816491656924453762734106646444291935724579550640759645816972049303953195164304820930098321650811909610448956332583998518797096271191824106285954539771618381456387307108167934674753207456427507780612467860017468214691221988234318227685804823370408297607834185238426575877781443862045779906049984480985006589396352043302955516379798036757121042042024871306938368666768541318199404352494584412233588949038820191053263668503312543808269184022529363831871710094146803641434119251137263502463821582108034232025150389382425529074366228668217067211263606893031798003535984356663270193209370385070165064058916741438399664380003021048404097151078875567745545741972027260908878743194310037036999058087548378645437095821305952821012942252589798415578501754469102663381716048845440229603049553871817502505673281838421602512728601820186479848628837664976608844836496734728373396475332118481853957662251060377448187018474731673843850063400355617153147211843702152853701188822623976587028852917816129151132938211444979856877974865635132242463345092901817554069864346442375881015120968204872985725010144106376546303210059758999968432977082674327832945399236428233660598040721916928768552977426201342211212867948550532075587458423233594411382640679542422598710535082812637793782864002068882624248675397216937802286115493893616406266683937894443411195308869706588824832618745795909615902890729112127341373895360547290880731745150909875483504041091971771472649307379937181587123839403597838054112936399962898024494568809688564847044461309147814016644559955339425325542203373093667405502733501223555178520806235503964830832380810583038504932020333211798338076181479382459116680725977256564778008739238596740904738570862771588627657106836094222150970930388631176081387694518228393573266245865968522099086389267220243852624341189770295001924181224780182373914304454878077927522667276371580772591576878599180645600740555102548510062800209942420764555703836081607897715762597518004005589807334391293505940581356415592336517874286421472287981058630061899931384735277732362809629722940777072067329484848610812061093227941544281710763284715806693593965481631999210266233100985636187070411624144319274438686921357882531486545944477466844854987398043303222722083423315162165161263573309256464687951287223172096199000474907965689873784740535635843422239983815446139202234920616036020453946122815895900135903089166722497666412021586478557576438167892952836853178856518786019983606910757223500142084721632839253301745252633262964602551216240121171209945782100817708888530896592210252704716846142869903740957749812729744610986008728504971950275013949148337942181618572931764040268306906336162543207550556993798242907453143372020913795567224492594814791418622523668603654355889630791232323466158664121223404005227861029003758973009622986284061432359253332088989928533363473108513583384117585628449774343906859541057630204786046465209296815011194115585006123714662891802875004365667182974669786742547343287804742616914349825053322451985041493439962630476001429654080583129855396017383127179832571753496612954029023450717167007326386804649844149602910923004252233583164467381798644431095839718423250167465172405441774032679827789540825023817215513837601897877485505243491167789443721184809395784600247003652594372311545165082046808465041100698391268955077738262417111189444146735584210177466467687775777748573658788436200420379477424696257810846591437484020148832098537470854691169938218625307269023724826347720447854398886886157354991914974814757856570811387283505778839883699139958563388379556534189653733676915940338755817963861878770805417277679513133403937634961148375817258659070025160685230321304120511430740925024922815256999210901541025685339251231954914315499296325493510393906731061300509518645787062010592407432624399084916805681950493005757926275473439542553001760158320375965543244599163082740554640171558078525259242588112944113415790063725275831037676073458125218298506721644458825858802004384835311901312489538807823877405508564480369619969703169828196280890045217275465360325410005475940366571682141320433510771552379183431193327918945067195648325215672794338987263460639965991289033832650831335248615984860144059146825396095688580837357672104407402725111419738458540613804540590991661029826983458923814133185301336506387535857252037715364548156179575646827210718665624497974389490631372434940498144758828917920269526016606841793044953744188772794585313853634369240100978252354338643409842093816177167041151454890693953954193492151656683011949958303729858069695777049672419822703611274351971275054457991628522095279908790192797753986413752975648901267742405371123526806067692229253119477865846006758110542899046332759469340596317787590819597636029460555030216882748418682981430981904473709732607704415633543108414894763348051099718174857241707263958744042650263046878751314692278546901096995318770371961110331953342127225023405362848874284536154332258136135365337951723065004412440370606225478578275271323913863938786546488742060279791770141639871695935775616357811584500355278833767206500944595292644445391591859186443438936521713799084645951647964904614966437607256763010807904706968736181212681580391843815369574486417252292624109652134395816511272353652032850111486527231284357451904703119512774698411520806016082420870119347788578659061520416641386683381787202727729964319159273584708108609086710889769450676800146829811861010928672230395690277228283253209498067088245846519937648088852657048307963867506514975343619479442511799546726999275176171953580157031775329745334936859142058159700299557124979677586403032747838150014776763547979597932295471379467730791115447721000215867916847894251958879562226246396128180730642799668906844186003200894795974865834112318101737157569891242197020637390035651158906563797188807541646613521179311640962926284289509556669261429552222592145575434103698537097157580590756734581569470142614809673184601336843420385736627868742081935564949567239678596714931407476747457069951549979807445195692145531645980454556132589180927564306681942943241288289745176941561681905223522089988589050794955889215871192228859509731487494826887769529722670713556313651706982937050169610832045203277697695648197326249872202235279921594716652747661424868968382712988136441260123438679045652496873143904648348623810769851488450986933790399458439615682425310717818052061836007169332143355235830889332905807770000752355558671095196510874406443142386156831049017750118770116315056587362111964716136865399417242232577021571011030165123557562850627668469328152574482110974112480995533521802787097710097329700727965320202631807220264864830997012138536993149108098349169522785082591544194182769588980177551302376988736404018431238520083133691691536474820754301298577840728981995098091081314737391037978630160442557681166353105921997673269146750557126593558321360873506746884739351972433075983844170770294108525923302272040628291287609208575229161130789489721226114932388713293617429869406757025105938974305679875696157972395348002080776211355364518702607001897854853106939927169734400243240421700457429688680054423187450930501380490893356157118044185211246277689063949130816147256184632796324277879322021385472903903658916222960730531618061234420065188792380839641397995157600315916416959183455893114029338557291919094183867217850893641856408686672422277885045203483709529902765473653958162530692572257311461084491779112647784592276525401649462791616471874968199537741666472232307801153370329355833837016596934607386674426936169268954546861980555097050138553759382998715425089298040918878249983681571939047021405689852284592505722196394440110170624964423611196318207000592101726652339824053152834741624958852642283365502897337355597025469069711723002901793930296910997277012994474378316968315756606324970327539007411467153105848985460108704614648553005339594041723963241559996960585759346234289884713679923448422829842625372567033134208100735055826124134724265188799308036254441412064593893956689575420835149570282133860095853935110224254740909280578300726701073616506662721926632163565637145628249269548453420336471818199045746111982192191188237837768511864913495790187259669597616620176953833955804062899045759353259079447528564142535964469543942881157367103807373519199319772969011408081279277236045768552189227984722251508293854630436810718489666135619177339122567321961219964344929333456288477742595100228856442686671735380846436694110899299083843774528436388024974045793679059220687676934902394219751252269735095344696990340722713755768356380089639611518806898885941640726971339492119821229516353199754443787339899347709124764425625595159742494776037169502270060367087070836049616399366739052343917969855723712258991684045769411887320462715127617017652160086137650687484968052269439614121122119145732418530022987885586808314886773996704517581275975038202634887280108429655904838440503779862542266751449513502562287689397312982822331793586423823599915847250567227337090500725184775321958427782790325281441170361999625839037130724451885982782583566754425258811098453763776761922128592959649542029080720800183446531323177103728477786668882211165747448495976498277280216198267833125586802302462618490981516338401432716086979653677269648275785276159643052205162237361549652872773823366608600221243800101142996331060349004530316854832320765425077698337582303685775710769410137088007595811861486546794652666724716466318985253749583887387018189936603871378367573284969738109733082803992806621734549324362757160767083475295829129121218614861206969789085437125631254360223090114018212983285503297827765490822774167494987875870461751951350282879476151397495662448248737242545843336360222020881550516033244603227210585792991590935875572125759392623877994642900024841207075689435954503742077347390185777350318999384622490078980209723233478648232397559667483251625537314639835534881093569544937972944377670407895233269613837839433513946508359717669165295231154966974200780975465442032636480703704204177164482565080635177435197888750645345304914572636575763839787710146510817705625652244796166499160779929017130106306311643458900682793497076024038455921048317025995185680472728507529171114585312597881652107829068732228320547992278294129217076213718072906266413573228395902463945415668809374213724940873611384082907597931271630529777308010903178954502622899768956044535982824392451501227419167504994219669844651563069608790121895811349552312102478580153686944571908902301855877747585466784896346001953737424976492221477486112851725421969368196292464620663116861151548964646983404440425400908324980381112600485719668691159877871412965051545146104584791965231347236165982924292882407716508787053507647616294491341965681186959021039691949059436823841636501987948729198802129460048701122101615410891184508756264542822342292639905310564590777112860279361228587421759759875854279004366020052215638988980532367095740858619657256501219623804420575658291198622175817169254222936014330968726946422103035431853189026355800468147810301728181685940112466876212451731422542402671607751595897211614422613655132640476265688104916169278686163045965042830978960165320988032963366173906383450941719248365251846880279041151780015515018653492141949184940130976856844679844520507332412701957911505947212772824156109378714248763838190540129155812573446251716473622892826161600324246627131151193854987556610203074460852513223623797594195395599357580080017271878295948220499675095105543529601765040306479356363750626184618107282730250320524165349503686959312530070406433805139593503485201514615186917725249079536998805515641656928987799405612007844017575641619123234025167908830343522433023165873289591507262508162689675824128716438362392361436198097083728364744564796923797654341453470440864969844082555340178536399832633741947995615206392563045121126709642005782028544846092342639921266745041755003188911805651341849159240683492079552894933467374058343992966975798121095973684719167209715838090474174343361213045085443251886619544552517882337637343527141487835138352886753290166250372638859905695686635305909278152974612598207890390258991320109101470768287470972333410918241194860826602646964336765145553268260046247452121895950308712270814613682696402688521346267250628515418189878786335206164085972281450701898786540470358164164761985371624216982194059424597392728145270996605147371621836955216422788483642176725533576699775850602842112346425512999039197202214335766078730964695820882165177184681126656264129240809368052497227786788796527588084897288123226943049863981685633525247001531385232826884206103192401155038229844142852470534210478334726612402596657810185700002511956953926609754969443133503449021594082640067019423817749529242473482160912829139274916338184600166615669464513605517318459654040029406249567420745382957551198856412942815985840073011429594767920283515512051424055231746160707428242733265254832343186427020417302436093951727387629100592268578846968451698013814734271972396583045653678221001691435647330918749207976993756680489827903231862576639296398474484793019289949303380519010628418775704715401173965293849849765768755021829546841816029057598621046954203663852900755188588103895950033169958025807140347650756179479024678229384210590225367357054134304563688699552370846094503539336314604063050856421814058890859115107397431628064373254917057112293042398814917262523932031810050297243384133958271913073185056155634967234824657782064040651692821008543427497125527220057367494917367674911229310192603016342237687466791690363809262194813142875423425127386387492856010458306042364607644946180125265909107590942081374023811845089189510991142320812238921807333000285694895905940953035925556932193408374831407013532115689975155228512110331032169729407769783227626612460540446397440443959902137392438131686550284651233735935956604265111218001997869233000226594095837486271273859656805777808805149831862607615129459529147866038750541634483632842608709685647069342117561565701334632900707981632036391388526249818495868921287194308694381016022664117966369637851624202628921674090938441609367078229922891731281707695803479831228892236251246203406538368256905655756639251210049006901852788889449916914261367813112493500779889166125148471833659978470127583599265983197590364267870661954507495343804360559692468688236104807646886152583610821508601912953283462248118668361350438505083237743814841116828763797218415683624248790395296428121723742354731222379450810050397415322399265391539131881630746672899513742245807308769135435848994215703214108144138043687449676209050795764823767844390708981346858371741197398694865362824286096718711152837208129223148093752740623309949228247745225422381329231102458779717162213435831657847974814567267719031602080424680344449218099023473426389023796017176248988845152582251052969560352403088451051430487204483091757932907634193483919475083202910712336916484365496584680817222560282552999872098284751070229158759893762464394610896718981737122818462686625584159555134140684317574779614151880024905700589475355908285535653885044404245133537717106557354524471699745316525579322421609022656528064865566621538905947953631727743163277360456031715504767143362598508793790311439917362229680497224008364178869577508632232562451686949402625565536133185045979246135115013496491817299113660901958354962836304209979629702426276603805223120824205048717578422438617929921059725457843875043547922737741272275670220305180057619369758120532542149479066371907710921351800622004900750756839584924356807536335413713510465348151096195811797549739673057707630923822618980568245535448651936858439337288858947357598674757320663707183957295384397111858968086024574981483171027217689110716787934696717443271255736145098305961469163016895314565796825354711294819414749076225307743485566468263055360651288178182974151180952115179399851713911706272056109601228727742478155521090356076286437892001998476972589199728244680534667548673347361226051247369170582433826228208697316037771352452709528971456927577960246346825247196882781721062452169119533528548248695590514222137875606253915932025720578797886740071787788131054007460474245714117213698070122359707730243270892144503346395384453749795988931173053390156953856667390821688439895304646838928703945508478213031270042574921102490443218912371976222659775236882935136790958800039923030884869977115493675773210804725040042974998719611289049555690176268733382662549939022635608536446874098772812114562385820588223759978001619110251284947649571834041393162447862344784061934954284690884240221515692251126014780008888046350549064676138892150005396062376864981626308328457977393374575970100170757669506128594780292282048343627784604136729110331462330445997405968346171979764609471573976541380144837910612880546616667497089041648990602504766033703062553007590571469420768461801811251021571770407389048119941643260551896169577915987055563338663148930333532196325063647844834349902618371841900675664035790634302816459169854403618974128592657724594712487534991380245171804419418357510588585287494060916507285176858009713501867111610151229277913366237856614691081278956262945815700798516738901402145646981328028629964326696459018837109481822889445094145887039531107932590681877226609785290649597094049944856267351368707876926777162402760991701770074474296820488023330918122588970977307509378703827728101669986147255664291702735132422836688545493723837887268806408715192522718471789934917647587442173544976681618231129094615327565427577454487679238804004676407401488498532042099323280375011176857271973183646978647212329150359453176112639947049537508644591748026714285826119631297948500788924558543860734885976150267281192836469160359542181318621957696705151234662165297168285091380731785867084231401253508540433680927463195188365153784792040938419685477587088425270095779689503446975149915734215202399716912261232770957649429880821029026068700748138128153635495106371563446207047912344651825704136019527411087725331341794147011332451506548130851970438081454174585859733091421827534360126933535980183796654966022592244320636842757250044354594598343510074181659068998061609275178126681619010658525658893013021841892978273605851536358420605288568030908117265394990262857291200155647990281093603881611527220349761403714996194048096301126958325292079064486108559528972112128342555369002198394823187766005285972827040673537366607425178854605257880281778424945978138674691115490415670520288423924193647281783565609061557488976227702006560926248019599782868850665852939045773084691679077800605133444018125193106222374055802702394914178446280488913360084722701501145673916461739634935596576320925973470375521145111598253346107975577863662307633731186618761880136297344564753802631058678211372555025583897779188149295935515302216675786942488852286874431638560617549492827124627155277945264060984950614382462580346226648969517930051440774050731662656471164044626032673691680354631384327982127327931931395108537209622384851808084501745922365849155388019488411610206840648934201861521358304239858655251598021852771056889550805627267795928093137922197649816894774939119578956653697752152644654443783012299819555438720380667724006964619365197228511198105715229511968127007962106140281545480924519076933173597136108548779404352827559621337893142420162149482964523734005449018826490720985370318649366995593503348240896942172587053111829632382133391849607199333012445512034214313501079462301346461051296626818257486247019183289507199303343920422918697664701042049342438272579264913637110556092279409173035977619848719783052005847774568584081248155841921217151340874132509354128566573716915167243211093304182344369371873180156991435310911692336291423418758008228999613315740887261625146930708551084839588818754401946713815529746427629167911812090796894703739167588684327990887503145325308333437850701823623310307529902237443627477785895545468858891401131046426768828361805212883570071007705108219578654873332506348248353302324034686657364315235023130833781728768389265434646899497026487394991910600348503844677857342116379626530473078005575130653064096895378933749672539048300504628632451898263986948871880297108578141605588183588025958218429225650720672252062822861969326359753917829624362122931762354931324663729416876221777954344373527114120686516720672699581866790606655543773790401842285217158766308427355360046372570682127487528622933623042847129543606688267204143067901411389427742657259290394828764146715195483049816179955041161255738075007357224415607866594434629163875253706566812882675624444032022515875873668557358049706495873637391248306010183123472685252120548060960987327010120116110292026889818629460595864402865813662372182656640382699294794482454764726909929800232260417099503741424089508695458044001575255096157353829447022785878651025346093885491970172550131217254042705495611219303951737142307700969862963103954739431606276337115108164218605370491092943507211443032320727090639295598223564606489851056968077177415117476109527482845522668326761741391855569251127030626548318860613899993155640901312642605933305443933612260453877145602625042414499108575296679079236848016451509194385368474035374724154579946413617052298806150008440553464361313031902998928992392777198944297819970495406137835659739352235632855727522570989563575110369544037279812196980735651205995037810780334819304010030933164921594732034771461115723964769814550284382927524549639566114583077011900830976808777380905267569132653178897116429084842305866421790342580862657126776626849036599520263271771895428972752995103188800456335967801541740617151153804326615451592642676600122389503106795609750209455946427125129968852148897610891355651341315929386829451311380160879322835671669298496842660953476941127511109756542004325096567679735035537853617264768339021640515271461352121480731004530441894854934142407988346734831047452061299614244918685018699320927792156918159372432895587428794579905531368647096427623107074375099319756895227706544517781958168904189480059059631197342381440451662832993023541023599061308483684904035340916704167320267225422159727339936410670340675186898378458859342441709573325668008083443538790393826923047425044604659149692732169273067060396836684999289538318814538148311740704639707341368071214410912986881149633373247544472532323921704743678344013448174704400632156687551588908714038045869540081696008181075812176890996834347708650566722373677224795085887745391663839591503457748839446985952758180279756866494439223276209836823055820852761019819513468957067845037553864792899840698469323448646317361874146833709122242458510527475674494069399055681966161252124459267288358553996286748991973440071491314425659292988536513157640839910714547313490007715107517206776491626482220204341108145882980122096896198746436898227817181283048593542492916653885670427993208848000083750768359766173041106550904833689098633783610246953738246512440522876227529761057514056297188740003951925226341178409742135878862216243933487450090646080719883903104172861061969546641821134153650009576855330816858178280619903138994694126593045952316767455900751031656969710189568077077443780699835907757539086249911423784205554358342846048706191731288269812276286733719392367529366707811214680481358724620215424396826921029303931600645136037986060682037737072717539715065593953361180080779880390921703357856163168828709936535814069153886568753654957748129422527089661946796682767190257934013520624520712150069793454814023635615280870467119697092062764654734369756554508646730543652573245807298737676416908249405610303358405631708615009319589170502914054336973407667994510499257976367616855231604457762411132651916433653875895817682791043290664960790648049637052076685195584126347879137746253557976377917142664296268340397869066620082333805250831581071238372188414499084075824624949408645262890755748292998295956642441628701152155255700079480301814681855248809584745382560786275091915212371010286774065360376064812757079490058719924395292998148800914832715799772569124030535486452727892341445007061734913980529019935181829227515422574186605155867023200129903622599644016981605530396949306285151916666338846114832368432071664681086341918698910810568176341878035181687158530262571792424025805412810329529076831759625497073092031327727866522996525364398720572999436750658800936181015527840375854835839588075504066263667856238910586704069634767482554274387693534619487841984676799457081612525542088389328606820203335455387449768058570313558816182071948482539386053829278379608831921165889766235403122838355338693130697657276136834033325354866831999003869132820645343772415581474318713702968237396792099709983507702089270819886278969778621382139595787423311260273111544647943846468067212085587780946942582063428832688698676876135125068986257253669209395598724122037184723347815265698071908819811583763406429772616919955686734071558107493359560017014606930303985839067260535943745208095161053854545426574294503351349987043875391063786558842644231528810505201818123713037184097812991384775613009418906169072534769620860028622762044423596653216365771284431881335554339663891531612047575717593830677498203889690026819284293726998830224940979229218522926341050339875036039989781418089169161716423187247980288909747257714773441533386155675686946481642478444866950463131580966622247796126934113178023463635787635858197794039248368215063622516668068816757928621718885266314132261137516725976512634786432651101299668551652361072623259597141475138020299272376239783527521304225616583943653976922080834365397765763391849800413431857699257085605335500532919012807303002216715225119405701218725815308739146840283013564573966949979854870370046355525712534051086470986045962920206296843317814776435227954870569127194799600526017582564105591817691065160046521918043514500200502676215846251419359176205932167730193695456286198625943197278835205038602987177389026862372327211714793318597428027089042716174055466695160852115723255556234682746659860931245157567828438136029170688004721863548777430280921690221651195010509458689874713030762896675289813830297143919662956766658690433832427308391941164483676735892226374938740194119728191708270130162707658250719467573555535692783882952826967767673950272075194024147031500719313571309392922104880865801281141075823745596388509013445444385305090321949487034635447646085995347236620654564848497502947971030284810478935203228403211876086370243106358153072809534548446119115468961255827523192760415807957751017609133291565569920044954014894349817537156669856534976427640360066094684338652903001324427670470954944577271225001017866586126583875453753035311328226266241332006036832118765416726330059439960485900822186167291214142100426810935646812458977261016406781636164115139829614765213885052706066586626314433069061360165777189243434026447090856326119197414553996777305051050797203519459537874561194834408408112778743249520071855006448337659022570753770375294749892831203909522067368365039060169645096201794053900042106537479008840749614772640303473571054892431451499494353892975277640329159688625373853255323024374546987964849644610519685151714841443827712448566576429061369609923017542498814086261124571512487793798383966905357721598123779340017374311316355973706238836348805900553914653081186158497899451584243083788545008801510644865913163481058289679191804498338312193615778715431606440022032961432626117458938280857444963246852414174364198347745681775339136245057099170587260680105210449381141712873356793138276340758163679144203879288819325782194191809994166638820118494990741766865673451774817473783777809451328316301466705726228287586111265528742568335343460361699269531544311364832490258584534443948049916769183992589553209408558928744977755862811617000310055101649544412317668226899394326895674926162088496376357611693557317567731952920809235828051858935118591291103462771187225446224573886491891939079250257323052531727232419262461352235283190477196682616778083354795206666696501745788026546605749906638731146772035230451122124136676659296124280384658255653265005402650601402132428673875067400332920927131618739559303701834003437981727882766719634033087978023450537745792229038181562610801383202115480289727747686566771978034842804860744298231607762198060350702625732228735695309101846061435958599324654189225753781452525447439985193167916227757589907634387407016513229627185059466655371529780838187166018039250697434557788388579518266164120877183725057500477170017106080783947182695459679199182676426325329505739960777677819594080184332351946890771412532770722245955980401275165509479409714632165691587335124100546011019977571244363633535878985038021980156796293813354166312086686328372427772780265428195648530245665124366103965326811279669877177293561598331321263764950231439176687246097271279647383819512349195691481987474673424524360686742158817889583745722763367005777461708538879060240508147803370223998207668990403580453741169915168642215231750869920181912772151974333404775288707522781658916053803147973419068008190164887674266584117453600855034917151405928698591072352791161697784248094894545655656637998260104002648988623726215792209477600166493369472200766725238004749513914879566797756891750685740923961378921228147161861714250730288778136853646792659940969808710854990923633290475376771589420698759032039718394390322577193811277582103816013486489025220355507724904255910230553686193155851332300283578584690709682734494949122607337589518966454126049768344321695904616226801747489093328165005075604255147193126066633075536006233277890038158025494297589133958706224839353055885303127019067788834370239946070400531022391468354971913644340250534464656624707287632650044864313880457119536418198500251279235477411669265813095639947178568401083583242626648840030395545389521905874607822056183406456304424185096840153520671257316969245100844889755455100919160744665819037257331810995343596287576733629196639566070940108995151908279759197922654985131909743468029994049724679930266959018691243637073077498187521429372648058723719812767620840237326942451361407370770163776080540192311702352521796319389033893619196051240001171123887879910687666680001572279445391390898545242963009130038593076848559573023462942568909430052594064536085594630605481093757697260552384136456993874460305417392374921701065760453570393644375370207705017937517214159588715418779561616026336808158115957380640365153548775895857452907983816925468479477779149921197237261940229667661266356311012397426802531927659976250292954269539133818686297835203390213059915655232047322788912309885562219162488001728974375680062263742339811277339679613033471027936597546428278432987253109377217317662942078762266782886795250574563698545230633762162369805755948629752661877316787744886665134541664580934042657690523938396937800569432172105950822469927700382418490399603558452596537768625918354145725876148810434458842765901895535998018785607216208623988058272119916166593884447061369270502506511371742491255473722721819432610609324584859939954734250419913705270786199928697400039260181095496281334243820106387394116512289125031151491845336405175938434947889794740816810742135168415289931464667221991922161051670460947136237804518564489428461145122900580315365072971180524899798864908189727430030379525832863747402854085388598550443015922709384660962748614983069806044103474097339662066223907008008517444177081193170856254243467005501104198454552715438844802193020254036542546604940025166218654092236464648334222249634268527801030834976663487747553734017844574935310968981120760323635084949302639224312844651642705105245538897284421491882832420702743652685470011602010522506456859961380471567473744531586512505886477463515364833261288799416689787878185483105530170093590302313241338729174399454671517736615593263502149882116984014132755622451399503666932015408627038314411887407810709617155087783101092035597137170326229927565040836820469437552200109362500603341891667519543060675409822062295106501447938684667812197279819391317403431704709975585181692464823817899998273813081256315915545631603908243381424787709133297177938967017284332012576573702780049516371370006310549417181668371816673412457440758702007733910647964555411628902045496266958362077738036025139583621948779659702403788838031358742214826439399486057303793353514845437528610460089172807056548090508319447100863098360981901981492408363257020383197594415727361048847560227722093697337660063698808665107026481745008982584193638356160337649515701181023432980419643430963075575588529577373110054628036455455752997744219201377114332080524862263728552947410213010672046916765157740507688511608366219138684001843136128038398197471277939995140392799682456013834774784307065325116150294873353249472855654178724551412318221095680078599091745103845561086098193526838838565478310679165548294661863815811901933729472047866829717738425596719788259247634797641460569889650217254593366735534448230899591101545991133089657601517436810430812061618563290393033473266228742191795919447065623285830549564892024558162197880605064764643335777133089575015573156734590441127535982556081782462609249098357734030926111096990203097904042323357095761172915463424918642515075535873001911069455092553666706467523701827919530310434444681383453723440868823800799087414521404055543659446677055094715177421720014949635331247336467198121018431970045210145743731191706786373140313581311616519611774765531596243055213445559154343957986729602730362536177898858918593029858363058953193828287334398718369511797105669108964101803779702087334400243093525678280854499584647489058287974691550699575131850854605427338243223095880065086911136895602450426539978916041328167826103230184399158292152279603715095963574790274170837539623396109425104619761588704563507017309235705154754823426113417856569632574311938852117169645101663973213030956448884015524878580473340557196019805152480335039048210435900255090566446592607658560030879194227981677081003221500216105623827268427994876105153617735877741096176641528677082578292428461988211006898913704882260271920597853723480689110644692709134147968471672536409269676800364069047228991095646386275401052990455618134362278128288249137966502516923162009477451498662703861868715247748391776011993641205950496510584056363745179928955138082223264717889173785751283333483657793630708314771584180819993994646859127352413059761647189200366262550767339397063923340427538470412354228811809045162486778185473747867280902984424459569317695359381542765745290366705666274972414136908572960567361231858166032448924347218848318402576923332850344100411273392278787699772595457241262275506564933975396724863011258460388765309337390520269083867068829556276888708542237093976018459810039462877658002749606250548147342068985174651632267334018872566777011847879354223896022891969736794495126356132344425565675904577071670039783457956124404415770762506212183175117709741119986910018463020174040410287272624567244822160732076054729486143151401834775502324259189953338471526406924150372575557484003674759059261807839928304919448798044128754575523570310030241158954378520741049477315344611320655084655549611868280238289200700518429689895492262542762970822565719364842964322653415882723802718530882385955902766466149069835715848564939461983818686689902748895623908213006005455226448364750932851215255932356396302509352806734855683074398001146602648172058984677773106548920457035817518113717636528295621743233117205536050477521021197925296856432139505546040966821352702204798800799303283788653736461518073736661418145377276199752229595075151019319456806202216438843128918594571393464397697435127050564011619242327183101527100762624124806432587795127680996689315186409070320170931173807741876783255810875535720028354433849952156185533243952414108190091201588784152575032192050766141501485028388371313792244268509224604613106695871312355026377457998441951099813944897349789308272780588172643339550032132770837925065464589284248424763275604173849058993411801568260207902543899384443672656846205288624872465040402173174220875085690574119771936890325210701794295785994609003887962647891154586404161485236551947479604112652611222451668546133651326211227143445675863128668250962695435961713032224549083438514049514761917044628057712502594554915714613024580297555615543403477589350714478614290511278956425192862844228839899056074383007387940910238563074353795297989949039137742063207387940122327565062574351176556634049076108000243399694235141217086311193003554432604761547934147146154447209991805236305829200117195930390485680224530810444296395474581009703711258093631481365635273347737682832636133529819480728285551625658695384712303332964554664960533033055020463739117520649082770999426437581115009153051590569705921518824681798220451587861084300518074929917115369659197861165933612771285037459082173786968655801562586090169999695554817814277785269346576184968202220425908605742601210973607926333970425783319706016814600156428666149566369213675402530730493538811842487658149548547286746468227317405247342976962237549285476603434254088381080962903564555530807036501886212848522833773434468204351090585485516515149684097998413571553745792047099586412417662716470263307176001213678033903824167384646195233076760651127655221965634733232259765709643294849977173243241176180999513673102773085787279697742462913972296495202124513783058264984107050286478198413697708981816751230521662524927121759671985584697542979186445312388538922632481011572182000645984268803081559097929195947058662297650642118141036566824022120213139299282920032243337586612976813187381853014593085672375868475238748925663941479355483254170454983568805795364991555234690661095618081941605814931528722871542971647783633063952888677323959743184511382838686224176086792696062396324283805096048446375203907773523990309681934238114265852394148865105238113465415516572883161126917220564783012738730510863961341981620511017757455528082070752165833699843841033277561150985695195847737096110261642823285215718579235006299660238798908149544636737611575781973808718883647248969437026221834963044327261415541863651335817885867036632031769539028343962261282054968725488692337181968565467287188718897608841668744612466606044422252093767236001122911598360452275295006695675859190699578238671416009484556485850893949947856329247571208431898599702153031488479737213881824090245116989341718955186680608348415275006384858972018077572433711629592158609613216871041322931116165746868382614481629899371345373602670133369717234211544889046747394931365333180149358916106639581691822976262269338648260770658794540670654201127999867066451871163880146966285648648654262211445943408932013491162513941579718117225236987875391726290441860222689273284977368845377295127398558023469781008514253707743454511977123350449185025409451151407709254791724299100041932402731622295671478818712236499626556918263228335659459968968480283130120494348246884743478632223568558023436874555517871936784128810307136602916165052295837292800111665042220632605276032283149816099491905789018574238854158320118319691714552441168812438852304905946392899777137414497037186573606798953209790132971835990206265775859030901469625694861651266721470615535390416189025548673648328726805860985813231898827725955090736405540330977037767937287845142690510952004204763134036593734013680802141389889042468850635460815553737194488500444276900928630452594430012286754020886415599765742848867417256663285963549890333513119184057336595058498778110093780842870994490869346954737349767332398379623517074907985124409784157181253931283784884131646710211342948984408670204525713061607845778321758250987699816695548820072137951316421805097788645300267030634641199599976422502117638073537072248983848988612790719495584380649540032733718658092062617612723522378211569124910893719966328570868257855822913041145858101092962309100347317659700043737339635603815138878296458816461247221125175421783166792779744765956965288187819815527225698531322970019521723392920295073142863732588515208032741624656081922287988283479529861660872731739528960778850196941648320407823413095239560378765178276915480532111063941966080906515889882707957532338109147959654690177603122923661371357678393119506245271548307357383257824499878883630494558437898282717134074970309920070412647283530046673614504730048801433674832813853412902159200310357858308874971707950516548812641978929841940652696604348992358990072338967116124405713112226193951651699049398712081612579271592128191668133120870816694722798101310940662806262732519586877413599337300217033199246357435951865442847118678048306964827053766968949017055077737481751283845408057813488921194954011120197990704649175908611538499639247577276144028838181997819165189660445351392831298845392497892231846374537337918742232448430975672965392820358234289485742389344074879485084763326424095893935228294385564568453134695427880939318656501862083025059004412455756872668770670394519842756804455412960187648849503818932420501856848633524102155971312086156296947015459770456632020602821132861694854062582355020941684880874828102341913558696601840952427020720406165116181854740079849129267258570534886266715111028377334746611774841445144689789062024910682574990272015821743588354282034502931197109290630240413471016752619649654172823335059379585109625798322910211063250871882336217280048805409252486865756751715686554472303785343877690427432710551639875491489146911438928631452217240185887990801545398744709081263901730127764737477471216346025456147055769386416443680450244721729719099604652841861601827166857580046032092283786337514188665241585349385188047784757141947148672770138796094449989207389826000828284498957729266382744926609288938551678023262609768304157170542064319550805522949551435132239671793130054022986822924045880109651101736414808777429318368529928734124347728751285223519441392975697685192953481802312399729497237300353614555906955198158576681391613974931381632481929193675025740270431341096276885550972826840809262844758036775442924209851880511773532426648395232913869609031349025434548448605727660040098059722833840009569233587644264303728774099060700561115374637793672126612802090789420490959210636283243455266793392777436276435839653152871821708923288202566571459035114256193917189425601335702749925269736049841391807022266275241765239505492789513806571970886000711490867152219293704967416813941411886751419654790740806461565858332497528163372577440705231832892315416225558314028537847572695346745135416756193803426407936336558158521314604028516007243344074610904437244936014973556327134008185870870855642250641854046249283518417510037033212835350063790756981781286573965909676600655590306450823016915028777758234111594017475347790907125406813000200984900997951913196747047436947049336979145620085075456590090491341306884901491420383484994329983916454949695595000326806435676016180929018051612350520920533293482560313672206809797155794864925441578531212843569085064184308295354661408473412019733789238632622399737216356221131949833392166432096812540813944160817999105012740124970192652640562171785042443518636607926532418347151665545107991645027752632445652724681122499510977055474258028760820725631652667960978871631071723335089635228775501192238127045484653626092729852934231495180252975748568243571932076783449055794537818087222768343137284018819261489728961953460191189449173639847046387027002999331322592247294037535662892083204194168492827455526181582034859186868219919806014827918292465842850801199922577005273953442995872705978191849191873456016067532568888480152492390389172678305423796014531643171962515530474623743501310768347476388360663879768788901366734087032657815597455748794043567505181443420574867492561286888943309412758971250281026545513241199370917779246489860472500957867681579315348521572324678629053393377440613129413702125298250317834399127535336111996021112266416615960020609812510285611597964738137687667410070218798191863519557973275030336430559894511682184558602355049449559847467412166051054825651774820729279930045030818938436077659941025758295194075392060906166853035237734598785366943380641063123956349107553054034301686099649836853312839617958806155692065722909150406265721338545556289363369490475864965291801929854085916277618500258969613187957161327226675120173151470457160894009815198252564015155908758591588840375597468038220784761010138808535884763326341038857708703165386533649926144921334720751073121928698746947186998278663477646024438820514719270793508581342342685036668506034576873723075485220302549560740782080575553739642052231506773194656876450521519924802115721931335313727454856259901202877983612490450171688913032692734354262110287396382708354232259071191964585999499998440611321859820037074343162552201782579782389577683715864187361235262290752018095036663216566866634890831460218048792828629380313037735660468020393824945832549680116771715109274320657254539795789580144055690909662001326510741083603978301356377537205966045914513768728926971396051552825680698129398356266468031612415470404263257860622451064364079970134517101890877245278698629594281523969931645523582362652762839104121770400018739740250148759233357890317879729742878171329644944055507521239781451770505959286446615927854229459325982933539761080666749452670537160002280370619354726195421253780540853288808995551340085910271362505205038606373489492040989558507577930353444058544089860311605969529618919316463422689560924237750481841955171939926096565234173992302383737676638713422433238429755899292550890079181991118877923797713205774861670880214293161673427702116751350867291940163526210118200606726917759520523772167516705695744118580870014385497045096122896433166901201599980709757691502840725249622041673320930929659390807163081229670103856090825731354659057777930729433220314640617273108405625634676521813864747792202676141239224590334587420478333643056617781262716616565084259039867693521017690717658227899955705565059290645484907984830814550735068681804950696318527318351537246259052515363056087437130743118774313585332807371514957745425132269102349884908240958549208059626180137529837424462519817463935804279807731332453023264687738056017382899343104630892372187382922108375308885763222772051459147273191488293669760378734297944743670722109645300693041537242715236667637276321196033674230757651981391461490730418248061720022668978069735873593147648120576996939116740273845929859927024806347887690075749856772294632301917825884458399732549407216048746210916989201997150488398895538383448265302700721205616621136555671639996678637966155562705193304140125539621749276029469029112356603386077295301548588492138857162735621737970490562274684802965462790624677949529144570345539584036342281778979975599803078586119809997959342427982983749302047509807708896878804690120527181504399166307615943564975408314928139673275245593875561013898147948181311807995522717269809699568041850999879491192881503100688604036847179246944724305906689982954876551755511407960915279801874698243824557362734125899066527402011715808871690869489973196531197841075298832074920225503418427700281647118998297387565776191328913926509026529752116033954640495304387539516576450089184137661100758131902246715969036954213978894060208460516237369294589886462524528189578439589633176469330798923071798044704789137465492159556955433215650981507294151252616912668410814387434175957858673342506112732164695336148742519933257097387641349718245410002575492411102387504043882569930880382085069222884716809963209921206893325211269084451918298237536702241052607881533196273799651850930489335003761323002716933867148984266224329057409174004459420014100644266864948372953460094318097157644819015239478307684875707769727124188593813997812709776654019202664422639666551402190984493518273215277467987252315785978064731528600984756083694148938892349634327513824640038527851962749289732891079579318510961958455304794114030510519200102218456945562499663308221485924890587554234629590631361809978627315330287119211070138899312730178885903806807942899510005420463301964865450374878017139032303401226859410391568383736884515279911833190159540818540160235997400984814785491620510665338791350318911081423743776272206062120460292628470055347595069974890662368943740233273487533682023779350042043222616069951411400837952199270941861690154807682937522615655413414722450178779939513019410456946880272513747140494533654332357853757841299673644768896971846591962574705221629138499930270229653474806658680926340000670352551047950099947303688955177554703735065283736383021112779431959162968752499568444193588509541498649101116472581182826312347792671442507987253115575334300857804524746613685352949776416915097566426288047336354477825944953674953833442779004608325207009799921267372996789665828776128316044733757620439947711226011819728527236421038933397386842769671938118414917649867084319764848854622006881077868414595199851867400606086721673822347868107579453669158858816010091960882558037171107352762591328992438719589994179843354392904122936015240151659948667000530861822371327497598573851544331792711936160339655136541124005266958040371473977752366020222274767856824972581372255029784616836440471954008167236624152538843787618289916877113536525187318993443510063731984700713932271555242057187626656877690110981710844213351931816731175420445361135617174658591318086552456904234207547753926116221319192922194911804027112238807980639139448001481773087944869907169157813133835272881719232614356319415869549015861374850687469398456668622424185052941544673065781357653226919860399721414957189865494131523894878537252019342555077699596632176299130985762177119582056450536618564379717304517613343377645119765624882722628123760624978973468688665846157059269380641858003750919093223690050354002418740976476760902687730218281600448499081250097419966177973136971181625268978226805830619434476930294607992468931794215499493446845915096910468548063271239905589395732487695126852875058491853242576141732924457357711445786132810781591391885366884905170309713856724641258210972291286420416919071196359458138501470613967632273303733093668585585992615141367466563001569418564000217286676702724670065977668788777182663025186057703852149716709769575386847961800112552788928865226533977476317366981737250689792427822561517056584148907043428854476541737957984918577463322093743365323495532856377620259445088496513649146919037349285039365309566613842157037277702188128192999892056879521933199494001929743280007114189718298099261113014126849031012491278026279705210364559565328060967341301443745670502899586951752790420182874972616562161301126334648678262359986166292488554246501037524670377473849661889194025426394454363191496175961578731174640481663236508054206911599758560929341063474825206837463293562915632252431058580559204423471888807396708913011990698756010661566653966570374008433854973323308151476043758031670390304570375281885247970428573414894208187898768403414892203094425218285938634907496583557823960362397521280146108958194442535764220024947945435222443883823870119233348678476464321403901346781189446592150377355355956610985791634432285583822809150358749141151873138005035138546481138445422113301302481455438359652649203963039017889028173528213682857285641340493474494350668468126127971808524180089315390331140556336923108721561163100100804111246880595637277863747949606514898680823544827123692818241128187590277184606587919790571523258905299860548087186065259739032464058399477291002649619397966672844441963621872657913463675248237440721988376364989802629608568702676144578321508257998810912481272700372299180831178941520935916120721958028623874514625082909638565182451852411426540859790138722677107953520855544462862254253857247537967226101479533848937917081794960627579084091028665915072479007840605284820309632716915963961439130516241522432935094516207386021538318490967220083395805806524562073593580669424434624107250671025505048667316184859009472887823326470747802061762742827096002026465359677172698747517533057619436887275365667574742206390759550577720182385200990027960985114808373087027851850123402643088835285197568518493960261203914343614509594434994680193100235380391998664090840259157218386208348319497846296881685034821295463090308547732687785212415462180107773609735441248429656464880474432401969165768050109369520821734606749371766090260969668555978870839819547904950937008427001745590765604752256942594940368964708750106280736218473267793371778931451214260261372123659433773500151604665652819696916646852754822035004263451707372400114448875706380039632834092276273809314509940094605034350041317911664656573120317146847890790853360722533095658519665165731567158459735030485321181564754566714268416642280221252905341185126924894586403301551735309623449084919071847473187099404098894493293053276576800676068122848910401336737817325330576363960231675126054162734861425358255495962158907981928041710582440877715900650084596811526972858553439349565133001438233641455147546687917681819177879669646269967958057331364104250840038433892882153319045085631469471759652935912831938610188223879157760023522657917933722346355223592376569303227865104863385534580350477464141049482630224354345062707476509394069383593986918849806408144800700312412326908760937789388312645863731243025879756456928512677195588218096104824501563227704248536292667633051205953693657695540719634180883693131260455079948892400440641993232175856510916092367666470811694215411706697296192461351589746680732626901467711588119542046461701076304301270221955384634647191069105615504633240056290890816931632186323347159719305534829096704768747424559986199649578819796156946097342986781718396452202688810297039073862910271062174604596376296440822071461253964300615276030053848256928781837412797369790623457116890438004326202631231031934000360014886811915346581238441860020976295182632446664007476257951020850507177856893519614010504478078193441825961068171728236831788861604344115717382945503348500370965005989770917555285500374875291175028883266110499964668952334182816830123346921112017191348381900416089881170986188640734289231742444711553126630083283363240629816163481109654336843714984503720219615318771638805921210396883614027584158786074993811976207989733470161198396988559044980472472016577819766915928158531142566814484920137189123071748482006484114387044257039475771682572932790426712764907466447688410341818143836137752813449339296040886950024661341463369884179261460197013711286639951603672067773629587678978237009251032746703508130427931399661192567273519311784787936664247645996904105956159186337307023423318646946421031885034046429713553675930732838433663937126105529015375987097849596488852762741623725575379772895232450474689292151097070389360043286776962430551255751702810625442992721433149591000334749693594547437438627458195869825079042553447056870307466606592306053727252365706967595718336260072641885314221639421902952237377714240686663738182292640864984598923014268483794473781148100591216245567260833726416233486459819870866391606704738570546060871737895224444547024264053679767446573398687484968210504892008397528326581496618653603171847262330689973775225155793072523778849776041712016716811585594473292702662353864807614556598388061020297326289558542605729456471881405577663860325626790061436685750359814231163882653200064833624895011405812797200230403591235355456248787778538244436400191462728040165395962150778028035042832980593459935859012714076524475890067903094041305264642843897168076872150435367892476848273204563475322331883022637033368629012779805568561782301855279761607673124707527059570759466899032179395095554180677723550894143856626918287868430653836285770131486607998596073563849904848998105037969648251506488298638144580527616995683618146007033470118671719718122528973528984189691402047149367675361308551564049753007139161593230627136180664297451866231088358099805412252693126577704503643068245118036408107468404314684482982491588586317893864363040468151652216865983739858282006288158653802356876404498991322266853045369777992788155118891939171148192694165854925347655610402285605403520086140591598850123502064046487016052444481809362725516355178283195739656363401382034235958597094961073143080366702448098831875741714224092464838456159664473919062722122422590391393214467965917023727367104022833732620198080596606988037171180914931327788145190065585245305201211064824867860919583322821333972041045278711865422899920274038258836661394194227443858556431694005175818298527934134884072298115210073269705837862679570923832192603619556816607395564277100068207004095786168335410889430455492047399768790181276919869536867646833544072217547894791305670989282337682945799657925101180961172621994426391179301515704891701206722868635764801391542596803499302687148915006349031382874732980463615761250525197981000433255768870300616195681807374685113224220939579100544211101369695869278706058280801500327426880043679468936865933355039766610133407570052635690865579047140611897580943323622842252799310021322936133963635130484048191672727997610220996714702748860521582596731758706881038664068514018990113943941372124387851619544818498103888477345828829076685139381641022345667134545607590072063658504462808609768942032558870779797169385947034934554220661893197058680026112961778489820940293053970030259010810794726355275286036534298478235665845300593698918253832888144435224341529574087230295067607614126140140930152814377889380840530068523226162577328452488680000172445427865704559267983774752063695193339655190439400588072202249492785135944517383695299153341386657754946543654197720955390008381204990269286332129651019274971579374079688680182199518150956616036531036497880126045891464221463383341958008577509484419313282066820910052816852084144563209273619743211828878227914960402161143426467179968981082612721854060216092251362324273605826298409543284098467221207534691668771507419441873196328086523720880456463372851225188083197404799193170798394985475368128572320182657531627808469279912485638870385471326608453837458010962978968251188179915767359252719620052538090657467805531601015148106947997481786337319862387184719913064657266730905127117795556240944095300802175595461981716506928702300603399690779230612458262079430572007526544800609412258387064885862476348562614236943820117344058228198429259863885413521356963895810018746599328310842146034664891911717757859709464015022548103242372336452119708424009494503445330726020789014493231527127813922131602238179722738042763044001956227254317473901366796675579003493148608148867672620435055496997509532682983559751332951065196817056278707702759241724406827826328819694170567330007747278371939302538789465796558604935108013670575765314005543808408722220431769891216397118680562609947469966603275033587269834274316612687991030208398259861425771146032228748402032608626760063922842253915087173743305991083161833162107789223542500994816484259254808367758605386782772300011842436864546666067594020167893408198561680988016079340024713677167562043979706372690485624375383538403228672663954107362325507330321930697003393987756647636873730989551396544227940483395456551219192613326053416071356653661793116699924076045081970371427512041106676528948715333697711021336574365837803524914983069855879444546743747307642144315329056224168978394097842295181208848831613232948543195881417632594322189980471086440583918918987914753075059235670519802852072316225048916240266461066393335963202849565598237162065513803747522640043987150112997217659349583657802703416421379856198925234254603174053359789638987086091551124775979838045801991914919292520676025477851368672074125694239730172601308528277306973759169157601167408770164074071841080727293691767596344722474845274408404579680441332472210319183551208350238742864972061754964259336200970606516770494627077450813562743787462899091086027210516408743022461569878454817575082932696231230680506734370842704327541956621354454458285895720310407227758574156215026322949084653788481993626352663521959275968092296951705679982793816459217635063754242409268682192133157709308492950487322860768399267709883224304983989390914121036545996819539970484116899574084864967851378238048413880704802754245479057013455548748929216137470492721580672917657254613507122058293085119608399212327018068874662492696568396520687754886342174098633581804088338750385308533166914139431828941217373626780403374788122616574672538506121797430885608113914283052364129329168390744157740078042775881731662113457706218265097175654308727389545698494287870757851695716784044634901477465357634511173721749300513000155470310847529825505460399429784053064747171971168337798258198182573228006904827664872838088030166238841864694223357840900765994094454040165994268402832627089907405578237209136641161173164532324382742055555389629366882773615240050112882572485901434166003932143887416028083078276147121033155736480256377142207709396884505373140997469449206710201681726537700651605287328820750190134268050783827057310112910289043785158860987480168743702842158868214775680341992333097426237684960798184455556378984909916266416808900377662009435766469049256250963417535113239084304255703957643818400917684671656754850619112623028068226966503093363399958188634596530176467839176872448441946056023524710225199141238877980034034107210067776209676036330394382911127791817361424577371429566503453607430443844100164383654515847479620238309649006323456104301155560587072147466035273062852224507767821331408475934837306549907305146664277365461896828198614964909790075342550293335460167548080149095994245635977938804868988024751528368082861012785539508201811204240173773293749725489874728335868274135011689472718163408225441865013054725434217309819844756654937724153807691288337756629138567909622168558871972818061043792861134064657051387692718069414660917119950510490231908384036595955312064881559455492085178388848000033888420455310393114871506538348520630944461701782380007502628384632584401003695051915713550388555282522915657916987596845575722418605995762574316735145018821314567764324914277492467987838011135828349270469979489792079226836963116103620370120623033631808736027337659389572081546838995007597450973055864820120077022144460199480243763650414718085979137957329179672943312365892947292771490067602032856364454090275137778034314201674865664841348768482499158466636516840691913052827881766587799440981129417934209462077696696189194360432631082326060720183669227292729019839592731338002116646873294439521064754340227091222545036477536565717477450163647064404712594086062256539807513734156456038752317727623717874135263919207214112351224760774296945013462898465583013146757608366900296202622830822178996892625325319139482778596750893900696200171427140567010138742066365956520674046884035724797207607212680344601986326542921070182442056151320634552854510606649109794830768229797803130283669226584784425005760366582185826020693943367803338270436417901586792195138315003645471789804445828669509026308037580734753324050663661833537922182458353128791269732637090737768300360054479663996428484762198630988643965132969176985430227887788493706285741816756337431555584766621244997136394977731890947921144807682099564881476434631256645441398204445509394535748450578353698350095575794553588512117988178390536063267567824272621366685032343642752060159028849100844905798819468119795686625971549950535042656270777742825184591222278719255839547724627834353934027746263893076764907880523769355643399883647902910205155807114601461191926282433334808594053682882903511102026337390882017898543844084536657832809816590321732828423751573345173672736181019569986748787083007877236705366836075971313843313592618018703948777883760922968081622814982186255860337397234787319772797234988702328276154517695316867122883744549691088828281665983852939577260917794498954448755639209207168641633079119632090280519086300022409945999720693206375348297729266500164061028327937408946550661744729532448347532437173427311534488221835658475686220406107242441893050284647427035770500344062126752940987416128048115249336546575979090815511623774521114043338002679240596812173280380291194218010018713720472718996624631047043180683410005762915540448580592461580691941180665357693548951062173526000407608773724080677222191881417663794389711287198174600399294352110924060562042448872583637653759437035870579099390268860552856295469549342081062409725764668317651269145966961427954497264840308229644248232055028299236006738788047358769027773329299427028994421249195323238665799732344591100397168658777733921917669446059695126037857061738510277840639723718997821783570112282862618264416418741689239896653638898403353815988673768959227759955789958360180788458700225689114284948554315639998146188390973843872987866921477740728778502939871864331275155996962800145000947824298460793456954449410663121660632614154660031791048436295801299950759223069804985175950107666395421400603115248987661656556439882625513901279628638525734189951333454775087395938132567959975989060869615303735634038760220005529511554503253688265843532767343411775905131978927235126924181734275015448607898766410750981976046777290368972532320222746407893893882114229606790238802263180547470787119586479133511854461687473868394209015068926352031397529018688643754445502794855120517618838800606266427523039456149527069169718588632200570626442608965933636609914565773168824674725978512907593596567533085309198721051197620503110129389353708450147693615589502906909318467886656165160268131867793024168298796005721960422894430444269066829513631531436729126107813012347925161896648236190997536926100542357797503639234568370473802540089411100799737339462982975810227868640257475448769366460303602295005655876776056556212016646509506008871837113246175366459209213440069179072520583005419148478519430297619092884747074826496708559236560007429678401498469990196005761649674264649661750838886479256712157111719624890927343039145183322275642342910102783537948223964120495795141348377811830510122203981667922767707587848709809820611556488442909342943265996191241904584254594383819155992481661747035595297152508186971140701950331427989962320384696819029822715678399399302644737290624931200113749782933397791718332716456907578154380597776195263577794194001071805581438809670589457296207371498759124039853493038823492280565343810619457618090906804510518361967777878258671293917354548498120333715442635994118974240599372492040709035474775787317066183438267276635812956245167065481291805956411317609400460383676532406393508232416409522816545141312909020420654288323109092990181973336256928439893470304442236789389549820309721187396370328824323297068387690365910358648719584314383547953833731402844179035249045039561998446215988609172922507641487725665766880516353536608466890684062019850735197667296770967884292352244358832005020727364672631589782134689782140292056415795143166391506789472400157040881792755707109636225004403274132992407834770208045972241812810394384246371465849479466791060886619767264673627504713677169378911394551241931347502310919747700689357821413862354526525951464481658806536583426610122123375901511211516295579925157471021851863744757593955115589347580805951160671634792962589736154400514661572101493662964293675838705980555923341864566599919459384728972936337835864834967519723120839991365679202346254967205931355780103837408017963361046016561206200371512043677475359548249609049823594943661631190738508340714576474744232140142836388419778749652853825859900706961148827537376041268489260421289389425060659692271894518522675938860469608955593801138477294515427811298522057587986949934381512371561085828819242766044356428470492316351817024962025126260487172052005508548238798749791204294900895039781457788320460829644742524461312404928356991562745468724742913145529566643222016186803482826592087098915426743747570530842291541584120060906264674158849538666099804275362154835758940989907685438207061400288460325736088990032052023298949798215761484722698448897040006681428531313627010843424412836965661954603309054798786913837938332683849814396125036961155085592573574715565375434438276773934931711999436864122379039641001955030093886785145225085050084696083591319683389343546742118767025330156802863520524833087906937136151873057126908888089189923998316916634627992022435508208388535355402264113123000036270758918973032136115853458578598618921205935275772070148141623495447370999672219685810945602377910395155765148539909034439135352343692498936554777469233799736352996675164407590469775829132686331004216207586554846074556096881421080565741141127130876578108366035092945789783954077373594980577351138281558871964053597211132924764718539216111895712406118030796727713120374557922869636848010445307548880196107870333154564873865591772041288973121033733809068444678744106061974569576774912022702330814855515089021065990240807295047600135790578762591180420204828475995138211204426631286597318161685285734356917831393695962690409325522790506806075423303368045003440911580785467424099920519232891144393309349529649173067385775385032743568408348368691558417269469644960553572033263593213311000484714132729044407244478243110681484910888239262300204282327437309521021284928635495568880518455382943738828679723805689737760265439440384653261315409287753787311280035987360266044968204694789546417283533798087353751908709513571537423384860271892492421587164763650765655378762496301631738445794176999142320392859683007492097996563988928596626400283744243387240255994576865540628611827201030479034530053438856999728387733572896573218888534626426718460571841213650209854731164898144978034473046493930990104933402246035624434559674694184422044948680679566155514751971084468592861967054642349517587235987356960742684306278525159564691517191795445190303887208714275757397239012953509086637834553999012922392326207854263231346069731312945571695158746114947524013031307120560323463901928088327343257856097879274468566620917217680160869756819851050569519234573779487786928890565910710050756107268344594138892700357363625646751451691546859140278086923787440632108009862677665191070861257024951311286990765456644338919210565465400336482409448218612688308568993368826800151260624551561267884059410486970899724518401604914519402264976163712514839533196495461217521480122649566568150839540059574432938312985408438397672989710750088483918476185609966424515720225513569811832671357088120597496418069001393383161902891653322028221149432816775581247497631490468764071171686810098513404911317882183076145977022940311998490802751115071264058542949028684833536900381535999039943620065157424439044786485444030099628471530825291714720615585994305265015193346199358764359154298833490995945362353718246275973580365062795729649988365898993145452265693956556849369193309744062202659281030261335546296697836673465668896673757196559331500933237843577978917013649679822613857451621776259435026947812012520904825337339565536934103709357658508301487974159209211415848173296068122291201698233947940003560884753267158429506724848941991205136993380406983290681080932850505439860219656315024917342691032459131993318236271736373966941706808858045765887648588498805304511968213480118712185734921590993893549788432595759152093918011123060449918156441107802764991127583415208870310217166068499969849832191267909000478713900640347530964171971778101610221434943491530172481722981998613829151489768617206876922164580190456994156007260045221021104373031632249734650455051865900445855376331588554678306786470191293550788508643621887500100931862076475415895223047998776617499953473374838242612170523476294503443459159918998523070904983494801940038806946953103266030947345731685391034671249206085745817504386590938098452725730411206726275256992481380626986738604766269091697178860170970732187179882915519000503620312568129916395536814261704922202179961186337511386198663213048748951333058929124965454598006602502405596342969986127486910833633796063603595463391743095580434371626391167904967126577884293053661330578105538039472992934539958620057390535972422100538196230399219615429692845410177796511084893837568007178225592645061848051585528299171065468212917914621532218593994103385556366830192297289198817150590735046692739104198085695202178048769724181809926572846930836516088102243350221544016219442900276144555162173688217349281267502649903756321742988043098312354296311706578165413748581758637158176488784297239635317044656122270341008254805546495705545460173024467656801103221988573986934279914748717805951221911124583374485662778059476917762114800587428958430058444463568973303886380166922808696261486895039249840967553367316137253192658712103515122013496070565668871640601558576449697836340193913106788491079678803410605785163426540142286659746044709303599031009380752844158454294290996166386597270158224834834871473957999448953339566704031065923013843735147080686085594256166926476048709458230555417795467634228250637051649386051506199041950696643425678844714154360876660121697186805245486088201949712649308813254420843190960550444116079126602420527819283994820132867355943941778303378425185838349767940954744962012799383904193478549354577594280477459860224681851263514384109491374190629574276615156231584062371829505652577798841852102950144233986786905731849755416690700438990608372596846781197686993295288261894699525358237421798236752234014392341897337881291165502455449204552911027122691968739805695804965863205419452872255182790520385504127648342112219046466262509209913130949485664455616201986267991504712671212941638707938132134696721798159405558706224480085259880729038138227167677627308979480608821445086749813140096884028789359940233397501872968738421506285352547246305607235684922645846484809672276417979061419048758158036517088766549491152150094309398314109182762543232946698992837431171112744378400874893077437370341826736405771468217422039745698039309264736276925755285001238370595525566948524602432016769517826535639575981398383549094336295341539730352776672378484162961784651516879403405386992871765780038070791443745857372543501480465040968407771073656996357596334788746168651520529274853303593116964637991374818604420809421151250160101510315235904958454586034606808179910146773798320008493155166173177221988366994107502457426184013410468401127640579654647655867684112430355892529571652957042197969783772000602266738464248250574872319261619573588497651808252301813867507821335327883074207889275881783038623636249451063362403344529151922132113107674693088906895804149371691362169455985640549643314489503953124187006609894222358709444057007181185159958090477413122087396621722399335754147121850146176118253256488186520905002407985204538581157997359154857639818053677676614313598852951857393200858984838874772145489134938890030767703114336798798254526876257823657637526240622542186385342230787268309896179916273090805402175928100267503440347517329560242578754796660671439658133952063028168572211928501852997015666679500879566556733292023840972126077586292726123042290913321057292502893934986891291203493368754464741512300803011713216256869298979627337977634134110533582310670605427903880263976086137698335831660732816028557444063280345621585709067240451866377398061796264484217037824843633050472061552842585904955849164340143953500464119306522417958421541257147041991074062349224304754247702703414060713364511707765632078476016634001692257256899478069749213210819234529541438058543895276811420894428238814789956582746345234885855517485018536136205285032406908819695110398851011829894080241714182226584107612916409963405237045282460039382999979531356881071538264518350344058695749154059901934580299345773570957465213419406904419701435955595198423003829822526618627289892954250043489124213629441068770058395556526652351691268490731830182534793253490843200736300594926411929224576566628468157560828347240376483713214485427947548349863236713254881279114968828149093765125511146556100805729237782207355498349715619124145833725388098680394401826994107200813121638273290672514499261099945847305895462930192443256333728932629268533908679035503552943166388413679461387788085408969523301086158422090463810834181342826732961591896632771250782169839104988787809931623438431616899184256691018708104068051997338351694990621617875864427655237525072055351980215105357248149796844213117980048440875388740063173907708408351414750841583072844434141691600511673404315835792628817948999865121792331477878328899354619830584673194439136392782006447945993004970601380662424131597695714896676630890229208555830006746774526613792653638066613643924248554367196079070816020306886662804168599102380004156912033151982218969483178558638173859870942889320934533698321024945608748646768930702569437530539492322211400961428946748763070177622832781091017996208680506025127660421205695728578489121100569361240555965511480636451793309691719996213801943299312779396037074329367398355818166731058074705680601073545382427066976391016340556985644967240870720646865185303161288225372685209362094139181295476918270401993975703755618104023522061123379488662736704763172156607160714954300483449703979242776333877714960847214945621748608027547291303271741668271998970120781132364090822588614221834638837240230373948943008897535280712385177635881160010180255867213862707605885588773710089357053565343995349520676688482064849179406901519224104870181414176401872659882403205061088720541335704510073512632939209109188919420391064814498732144908075060520914299133321588538924833470575730876043704262489850698152821469798485673409338377241215169868988269441828433369055791119487970791267178289810617721254428782144820731772319090359723605332890016629806670760634147200881759797961613434453853014253641246835894120459921076394089397313443954669874926735658373512540465589652122585537937936099591000391625437319655955862745649603262033299080694282411622655822198229262946882352880374423233293547873033023638688695213236714474257983172904395888244411791412030527464017744600439801975571171626966054743156052677683268154319173799300485947485242392532599077403352764372415848409962041893842966291521240565752580763055512226294598867387203416488589309408155800519602991342670987425890132554119027253185592540692439885423569905289932418661704732113254433296791406484540093752289151644515675009399291493619366825321579307814793795666450683314804689152141277914348198892918780008657757110267354816821326160069534035828330443730216229693628459191752857879650106699060951510428535835336214795670715545643655720052319115428465902227859307749614483235513208393314243381422350170942166404950101438718195691173763807089863516820869257392550540081086142248287274200677440073815058153952574422435835918940816625907489618037703921302075857494391196966777493130403295756879982580738672891453015021674707161643733171977956905221272100637946920840297684993938704201902682918190593466381022062135933817092375914702317202763092837802729288263533278633460938405016544694727478336554261647654148504678772452349913593142567804765254506403418007826661981205143489860176992107928166159651363844897920622158554223596938154525623803842214377636692280633717253261792605656183743102909268674083682317421110233812787076666511530679701259866998927159169367070503900869279290295044755166040407077998617491365634653713812583968011391304418201042213029796608709532544224370395135177279033319082748800325531918191718325989111815083671959600051354311391501140033387013880471396016637381551551929255530241081279134232944340418318318784794185682873754343299876228475977140518805298814908213725838977725380073892402725554185841090627091906291364488273107707762321151942538297980356774923622726193911823839447258325860577636923512310088570748823203688664113391488945027021550170277700154429031429874759135003422465894590949670968351706659315632759499431577181012746517835923636684553465842664850204377416766164662651043474362801516960794597710090421862444005043559450524158005156881178081679066358790125800123707258098131145898657458901720256537873330030596260337629688452040429273547862582222058196149445642784781752453053705216263731613678496858422745264368111466822298695533178081360417746833504817429323481353953742916484810717208048237044418436241685391237598983033706854541110087801465869557692296295116849437742518678939829005246724218310368297436367423726388731882006110356869789275557501082979992075010595406497601898451531069836130925660559522390694914628011577955747226002818501126550157744464819333534629494412575601768094627299179539230948698761076772602908076922112840025551000868355396399519946816901835001596287574282636308071874954923039532262455174580081576379538670095377471961487303496036742778181949937650067549626236101266536400739019749838084102779535336827251804860042725436248020909181190221282769406073790615444271486024534585713546625441709010932502810408087605624871414594036807885252918029021175340107865596534776582094540647811550191282772401195384067841981256996624176798867806166834667358755130811319498023947859334098605597051917249659449920384058706787099443858992176316850287795010062066538819764116667338395203048872275733839368322666877629883007783084436267913391670446243656238424420831767730497648404146291206203854757039629434255315283855116059548161936057303117494744324915091680865085037383148607196169335136329677491120599122662571016512645478635132856393497952348705484143196704571974608655408003057112605810974953124259767190734416474888442668080078636387846622410965493701494389393514432697062254837235511072165447397000016811585618292001827236779270292439547265256996102429293972101159192880419512069625365503861501751832718459655809179763009472793859323404180178956433669331316030968911246531364974592084934561722195862365669559462425321904296451336117132755571274283378689155338357014748867579144750659051751448735149135382764674864522752469171900441553192712078454328273947647438705345784472314173013468984430069406149936137839237432750946018115351957760814324436392423017743075396506810275875496935726262302488804668224077024149770691331100748134756724475109262917764399165448580817869635825447044430477434457915098440166971652797186837487694280827832927925385770524606347975833283484985358976704114775623571893327523933721685079138320816963286620138885332478791282281848503600487290842084142831254154215499905775946981226389486521672161168805498396825034303607317085173546387696627227650323990124935156218864777950938253742145604721125024906917673350204546966436139445572909664759236553665281761779044843546526822586871817677635456864811568313327332267993313223664163407929710061138282741817032710235448438704480077529695385487233251472422657166822807703307290652580131975890974986816345656274353873264147842149352396580138129926703617213832513654500232654051372593438144407136688547170000008998340242205449665817188041688831907026282135047374646115020368219162748571196551478485811972811727083450476864252704812127687257029944863263528405992821236280496642690628690020785426041372714385894693309008040260488490032903409312990466471523641049469599154059661048978339103847389341558615667322933268117030302040610371208584477625474024273584975660314370553908841082000660903175382128535264285217378849410374013775712212554261576345341346620242048517080719711474568653469645684170332707153277231268801488281992691979301425504822028671719233999149738837630830015240990671512910012774868357685226510514341538189610066402298897865882981447192773310641380106331476417575665216123544348762099510357939085131569794744300413338070705104527460831717661335598071866186694229348348758728558119376526993967505199336064606319530660464973645058937255938627911921751002380634453473203755402503607661083558172679251813835178287642832837546776032500646611722818473291699934709543777138394434896550276451074096345253051587545890968150263305980558799553782813360638893811723441874362547706393926563307391433483784917259187764520601223368352490902961644664131836668976329037715730397923769552527692806026178675945154415524370614189424987352302186852561385385038190373388005452596802396808422559589211263586773436980708304076922574256788700416679093070865719434783198448649885540765390007048155261570146407727270622384031616245515120459518227170908485812820316036002051477256797804775037442883856198420821382740322869328116931662154640233295473480585777227957563142250706580602948160904516655019626651573924842964219479242666648401739855739252439216586634040998670295413412146777562855372788617333832907780702369504025208586839293013763306337145315615252328652006908060262206083783986085524953717723525996181488733832912156734704513833108030051788586961987416991569478200827818620381620474967555074333034505639975699878061473261437729870623624358415510440255295622052574074163895521825692390487024373941481419824229254302476756462296690917523236614899896179193282514710624203766250769114282738442263320088170843089768090628177177862088466519755144102606859326966156817147053539111066646199463793047811412325018359939961239229579588955688198113600252805708501773900678293987348600954879806024184713350481193360053322337982319050372733107193023000379310864959284517381302276792775222116103105512470608245952253885742765646324096697089782196727074991060326176328809460438163317926637604819864008679987860539817570349974373382925474488529049145862055427911218952252139455758323938351130869353545495506151504980967493474661149005095413712967978388782743834695256460676177179685001352419127851584671686593698482877579321473719819465264206739297735309522480801783667155844093074107022323548151657229341800271159282260236813646293614759647593023750992650869811315346425033836246784640462541711544644582995224264820400692848286050407775827628665091916664153201208947178863214931820415119503332878439089784622215398843824135887161804548039883297131771899720556271718912891063876185901357382664394917915889677810522856249657200722059051952206377677256372214565886291228633881773529377186202656829775703436578260342606145934638962897511323560075505226222590748878164930741529893369202747066246026650735498661115768328642130505922214435487908105712632337495627534927023654962693327894334836401723499071366176980823908106779309168886874312129679401188760803137259122839087741463016080865481356528802871972609049434842869639882746838381966846882631652877954369854749981489347542442288578071096314827015820467875890349768029598897472002616137336709667760917658868906866165933129208686400255739126080176803859847540681413677211520139362561836303391883073441848194334030572592807413845632081055443643653718724374431663102706272319558862808531869434719050626597312212480585398780917755211025243551724452103722420323681923207014103811183345928240171553779046126886098949898361446377218262456468481330464633964125659832605066426488337861912876019289225262131786478567570208447206750289619816609898138523035872479790217461106952062530762256240566658164263554788067407402900670000997591486205583232882537061358177597691982934452356983559366069012043103121404115915483847027490948483913947491334633476426061171186164646292693536047406808901611075687839786887499860436637055180752283458961761647175185078642605309090456535703301255724775561655670420706447420924457136776322970944606955393516818006865328544005943700886374781765819013765089265636694581512451301148711115733085973558496021292568548183923313628957219588903854731836478086618003018282305145528236102783276174849659388399402651030832046263275340037244690258688754677046808829438664817202363645533265386780975282993722735635291179206845548661847993465708218944947975474285736262602011288127963972923325941590385224963238214373848900152689091229936174627888602133631097088234879565877171272951621734060595800402556439975656670158889409701212301226450664286247149955742667584367254046654571163706955994491527051703263168214928996772299099065194200962135708363556539107561027207731675380779293593320795531496257074841888234596562076177924642246354716489519670711234822040234174888865308132443217171739999205898519890020537588499860951347452281981739456909149263627693639665409363393281031856614101523525533970166468181818923594828499685241814625494440914172553807010811266895308119860217434907500805179796680764826978098248258189278391911105223392276026704333534874356746239908115184747070129240731390117830884015826112336230026102983204157591634919259314009362478933983732088721271405317067386052081121357404418641537275833021248457112078298866725540661686066166369585320765547851428009338148109844009948617116342037113254704746595854877207272180511247654978058054239042242958098014344552167092691375915129820139963047410857928416829930121040238058261798494930460771245685722148524496473564486872336174238641147745386518617063763306234291105620214508791234855861577488672177557772688410315936555376831779936819488584371157666066269217354283981796995245412081604515689697373158566660921039706214159205780072326388270646571229241414533391373172022391623038770041819478521274482409903477079928923926021053407926830803034426593789354085692346506164596048911644560033496555631879675057890673380294376126880356070344829608523210571694477513739526268412833645194446139819138008088535947980496322194799562004127262354114292127965935004988725830002284209393296515367052499182702574039003424838683477765705949359128806320274869873455921446220619515605896018597992041073102412785159635060223935220098224570403981405570317170018615348265239884477798332613801529002549870035523565391445680936709197230052697365768567226943095872552640830113232604850444463290630131762542953929281453159971961723446654869276286563999893987452525735063385351850308599716982289067837750203576147271516396681708509478220558337320565418094081659172132376754675419301446629051407794403308931705552548520923545757429461113707225469106814976888070548216391331259242269331676557427790931794416996452111429707046976892702287213636497092148111032849152004419886180185957725360401367380434110164492646918435511765993816384395511710539911570561681190955680696390610835445648570613626244282739123867616099038631585150632448081193175781260193536639072564688443336267258554248723881999315121831072967768967640922125542122215178260559939419645884983642745426342335947624003846609505829274659707175683626049878050374535772749003825602282458492812035849066093567197376596354281260908021618093956096582218703849032297158429246998665479147154925624893989912935584954717227577802438939297102507520132623000892198715508493043934128311781436540372987012545526774630374602974640116832620398999855027060158480715592009202530827601644385275390422695759693109694519788828347928597183484266492093561119089678129425482340498700159245174717184178737388232646702327853050212713436519306081735029791201436997969762978849118675127977834550593439439548072888198273928443140240075778943950950580958259519530898884745509302317224723943926968454793257574182227013193989706813123750364211671944519390189280922241294348062175610127010033978983095336431030574265815564744414285181979706268987455604575462677097076127384916112301529861597079660153144880375555548172543648288627732341654758934218222533498931463928337785629300731892371106751654177913272658193766684517131803250950584983624454329507674942644855466820154996939648854614470527827251541927397615633189775522563600018710583488709175144360488885121686532412890972033281847323761492909161824172429705065613395887091402092533441283719626263120973404826992764628534872844353900602747774396758648924842716006590509896767868026228283420049490773713949226581669748001944647427270905796757050879499044032920178948788281901806664892223806781483722100343856942405684481806196920476284130688715943889963205498891897284019098067961638387923844818213676471666205463327485079736350204402446066061307847599832675588613759895666234981269078142528546302870694777248537839303948899720944381206757599350548116172654961624203312102326602602542362678172590100667906282529381026561172222510713235687890527815073051976934432055206143252503073239036974920672802403139775585174876207262800645663979519198843739376277792050069792139088982031821386485183071233216853857962131519086837546221566609355910675112297832597836435524399387399912780146888418452344106609881087326860599348538329034792430229978321222906080406747353480585870451449260055911917301349600612792124475838243222818719746309988744952087914213008135669508826506219131577969364758553942690339614711265188358113199326107904388942594369294741150962260011362520258069638200970190046740991341167930507901472591577781239563700775865232809389000118807088384537368532812871680071839486016754665470933306586787844545179075856400599671253845756785124268336932802446756237313449283806351254901150915302053334357196039397598109747590947594110527074361758304976805171350999426439636292185398278276705031161892041844630293222372029676993209961835295724073767259020005753957242748629927841060085143073046101873037605425474976336072720636014913781946032321793470764723964285953549546927668753152360648473076411334981672069126563088558728808824233423774011793800860560124947446057854371880071051721311067031784933849693160011194828214213779126811907604683014914995601085604135739502844306385579643957764446536147846252571160763493751729525691593473427702186665300385005386221485946744587607035671636731723952755104796299232768873699547833981718689080179256556634048309569078823290515777803884829463682101671962655450325239168648799343769483462161466965095487203745628366701190392303551114602619764126218727262624677744108151427478339693098499351489066334476955966438258095228811615132887908260663687904306288035678399879159916642931705261737601086066221862573848687455195281856487340876541560953734314428292303818651318931078773020978624031050131154128116790317767503445252642773400098945004521935687843015182187592200328696315535282407488714661585398030523609512337459223688039878979719641069631008824637638905535313048045743850306901530083616634063583518476125600623067166472635420409977407185889184813727072364435927662945394908475138560583141797140115786710255786582943383033884646693489564841143850958692123481982897474045518588714971876030774371412076586045772952057576048461868741531691130245624502257640295323531755243585166750933137819888658823344641387769789333282451343077740810284583034581490562967338729499409399795675760603063849141183715837009075911827327880963285218016416033596762006645458429869765809212135987332533040443667592339650505243730510476451312784496110406868277255013150144986939147063182291795261036427321477379411039406896247478346738817172369145961341488692201628743836662675933231433626421725397261466379506821043379679141900022993587491610156864584834267595635673992781622067634397540426086879020193841968258754038083241058084677757553001500278764622164111720160697982908536655890249788608559839014904607516822237574454648267047637867153095942288666911694032590818386538506603881458756919576809340576084058289007148758370741911894383279746898701740170082625324920180940318099652508877323001802942663390792462481382095516046614117583131892888262712072905209202544313265808679458920790780358234987763665015536206368234822864838426556851791250653566747783563941017431135725255437122366399581756268389749682221686501932383053050941902575931860671430802757681901784313504712224276067212376873340611963882339714396999121092757583114524751143788950530155114095916203278971693213438036882158825780524670053326305224612333540436098266530376489094088984568474014919798236635651788791075749285207530195747683797956098353538344423784627732598776674514193781011808469440316529568312038905547483540597545255348932538537284217256066714098545488129427770223386426220356439935357675793260398542410899746710844688575329449760881125598284220014667650846228702466804082760051505880855223531168881960809607478527889037198177200421382712438394348381435126909047461147080338108928360480846953470587197299560738027625292355155553043125034064296698641424403008290583168457324507229558500829591622484343482330237486383542643156194258683477381327818704755552996299799751178489765604498004968200577422115260594556007119128456891045498483823352631102150694532872854503030924278390457650440708294083582317430708413311571975651209661612702421980822325645605412833509873179711426540377455180673612832636832390042763611356672901259524703559044816284700428567180310993243822372702478808194269571779478026451182645236127813910724315816564871198597597330229133384584899718294065613705008420128466908056231526456356609035446105224830871550388186634420021602725601744896655073503324329001719993016531111132553505965054462345377022723461571441659726791171011507776566573943254080787398390368153090337528330025085076842753513170004475379153923168884858590331869007374630840828235849577880567987321684113757995440471346330835533703648331134169643171098477974146051256474328756695213875115677262981932748173724874713520021648736220754663197324153940036536598051987134621478477856571947506646589056012161584166518897220144920089084529232626367875781634308075782783783695342130522286708079712313341700591387428531245794180400197488304417491283644058775039113352197119759921794126656491761814038449312859765368723803040179725014815008497866996750631875242970156633036637980112116083098097661216959177114504941119982260579006457009814956677028831613026850594680399908685438425060967610965632730458809693810266617010921519046274055522657977776579052927700709608853705668372794600259893261728205593849812728553403096577075408326665203242238696010067290406870991693141443085400799417597723330119677066590146083105514862346679557532556693553740227452195418993471601969172282687731019689711368704804126042398177244329718651652507277626466216105924652760767887321843765837067065429418506793059814916333890963609865641179532605388238013893243376022909764604899188322306202322100990408840158792571142949929660236269482221840329671739099049474961079305265985097930131967579631535304298675186798017438875202313566760642832373149985141409381313461230979964690230785719503692759285589460911989686377750457928579327921060491419439953954055957520359365310306116513654029547262607544028157119908615988825770983977311610249872213759506106959686831626779020578659270118221302725111719441062104644595085185867243242454878328139922340421438765168160836519457015661756667905938531496343630217089539921409192957769021260852812937684618838677690853610878442945038229784324539178858380502504523668609325218184989857752568556202842676007077995863249947455485276575535183956793007410204478689755418281101366559645116919679689295700408412781025681067137332413315924183237471693021656942250832954849312904337838684489826567932226843978395101315274625160414679076687871958577985222362724481105633259982253891890469485142186910698642859242797937497347427442616094541599858296253218728475799070864571340719883525055010076202161685435785456141587799139119529731600722978038854703727393758921082598585924750624951001689103872981006739289427605299775401853246529616719458005075016440255526863964005303242897495298150051079996779936038380821768236232654648449037491918979857391057378415275317188435465030273383387429744220850487633182261244441041401796930617141332683816481318363499045080083550607796513228589821339388774289042764654105430427393756618515420725834093499506212378327480881432273522148772043502493065655793813038075986541149006730708680615092960722485039841104229147460146071302107025045146769253472024387730119889860839324007569004767908927814879715726104522518597749939502835857679676611364579030874746115230498580789731506051042112500898363069861694128168168463314106843112600523416472954607288357242867458547903228216717222203177357748143670115724072876556943190139016676673944768638513523449191832484663555620058370164996942291869394330214758991336175111407439885886530004801766665471845489479831244488753019573232552623924914566415829676818091732981444723310470080858045413535525551779719633117683032917780660969278846249634161062640813878077663655322750058745310424182723850744395897280974712553053365643370133876835903226243651271528171626394885812538467724275171047973590203785829437344766698543404992340399625725842071028757493648367073156219798064646334776603351750189661593937200486195608617658206160861889068971691149108925746170137068891075788664887101985399644198866637273171782876378589905345915462099331295154961965768871029817398788884756832437658298905547494763240240749129855296350834268635414207574138235511874466675188685647268071382334550097354518781916807841254742185376737317870539627511079246036578007909091384971018507204976877123103397005154233982780723839780603012562986941718830919784287854686890998349147966603810624843848638860302690847737910489231230745474780818181486226118939313567894915248334502871061142524439848814333477720031129125611247281692128697237387350117030733760485073574658350267469777844281454521990064559818669362406484267446557101101028532050826556554572683905062191626622034438085975418365299006736462367476155655197640537049368689558158742258697171607397832894703310579710060709386174716968611012694365864860812284817314923042184479495961755548285044454831010834078814575497878536435434138366711236264739130626692456626163701543180345211200051393397092635369848317742335557990391884425505652676561900643589594228137889295131147755601096710155046537184928384083107229159658139476277994044697711246400590437363444427533217100068723600780481820137660436332233900510343544185344377969408018246924746682363877888891492109258151293561953955620759541701404315083635994414499822324604578968212833520178209972253806400009934260215827429868166966634155594148487573792102557368005461692479636080467920036902847362123408772308305052620271873466810258499875722425693917515126927317990579694381807806707415487024912794521144542551453749941914379750455165917798635542646171734022098057757225290181365150317048740853262967189554367363269570368461030741049580311645101910924708963692888112066659309650919937887324202093454522693380580715449164448785222685932313931196228899869521130403235160112052064001035882201099845653626736411951784207210546954566850332209552824832869189083035259295473353432198828087125908724478592856646218343855093581112601486743497734538385215195719720571028703818283625133057274270893006065841571008624368338401484122980703856678113858125535983183142746477105159602622561382799318852977081786903643950836662526241476036547619841060978554650372442205728488283881312789984523970796705570034702257830273055242220829205558501692663452171819507129226464022535978342181004422254489666855881052518904035983835398039364788596931385654860675653670095902502373052252923466672795050210586484776595007228264555324152651934559772855933699237025137775823231692414829613331152398444234351924505071363977914167712864109645143857142694992911089683024088852193741817380711884200022568341037973259223847623902365770177032372303635941345172601038923435538085093219964572403650404179541051242017868837209476662719237420421057007182212823964450819706791707351912766036282567581682905034641721301093250425613035911164062762392793014763383128539642314386280206335850201317386070680283609909117170973070629931921438025050108620405580645605822874956591760119055824900607573545142031174475468255780699606647332029501480571828112793860520625767901477763752044169358682701887939832707346439338431941179435761440536525064728872552765880903496194716244820148418387576791755112639423873312766320672596057447538021830406029479228621960324981888903082066097554036315270396255326401158701593815426282501928591069636154220505259539137398989024704983378886251182713833829417845904182088184940063065303158297812235170023902183073153840232044938778974127461975318129917238614888554842936475893876278737858358287292069035247880348689880822065713382043473873017109391134327469867068478173692088203455273967816065883170963245056537557743708803602387123000793624160969626138707814102439963220609635936194003304050120285410169744518687425513465325563426346091182846042887976186729440535056702701028944960542772921309489323957519250830092184768125518954662879471458603891535926954833078977860182979953724378067459348508794923060133689620292326606363406789977906504704162192082299510264837913672286343992393160783769157177268232763522692577244330765028620804639931347713802285141732435354972512761059818632528017301002362154917934516781114781793358719074665490526651760987749263291930903481793583036784987003058119477437870118140815731400608127782263364908938221347636652947453724513183942562917400649587497325389195120450618267928897493958028429424552827623171991703434933418160122251839172208118325202195724117205640847835264380901330669906197247400185218113873093698438160160742033055204080004048546411064583205687264291249717925904401014411089119088762498650257831282110450258660585322382665574721835497045254587190928120691233855775263477160745097880732735140763416438895844178542387481625450315697631873206690793683721129593426530411434176504449748454150029089695973082022131204794759115958936938414209095494176774974711186951982588366448137167235726123539315684254601445532757857637710278488613850024777638544610779407027546386766390538259895515274676622000124066845770502716604310257277229324881341576404872249297817947538490289844564245723678913760111855966315252632871605688921483926669635574568722243600065355168951628939503295956217892685758249997409631593794400549968372433779599056714169560803996407437037925583658641681238880932846707417721318598643264378918497715754023603523212750847940479107574572740329099895947323277111582345497590455550065757970175968687561592081362094801413484913877823983630966723046141112803743503658113147961007082813472187279977867667206852302953844418288108691498041909046522041806525413339008043350896206259392816997826712119308522597952524235422699363323340254806405555792643498687385290154744001153378597804168077746162555075943878058299995645914609650952758127797733637770513000830445969079303202798634086048170576684920253015407772786535612923084330751406288438360424782849164728004057767181655679226520555141641038567175014083402057326143268670965693523120188448089066737867544378434210914475696327591140805277914906917588528174321570992038854251755696726724649379528325475928507986613257105271053004018785298271974484232439289461331729187843227995364159148617105834500283101205321757990432925818337463824745519232157015501336538186583900392882503545750430441655888207022530593740974593541907875256624618069623508758582663755793431755373895777308142401600025203685715703075327490452898777112341677096749363682623275341627008982444875504939138599619769623164665476125772846318737139777817662651227161978435394308372930065625869347972812405695297127572050306157190417064157889024674669390954306360540819291029782040621680701163570343369332731810534747956653973293593224903636712431323399528762505428150962028569344723315879393885043650775812616848240602996372346957084674737442970039567793028999391852218864319826016036671154181365745191901569121488068735016939357962622272273414029455934438703233528671739548426851263530525929873913160923799150298735769974870396478693219710061455753593864375916905562367946115383024731441988745738324192606373999817753901559308146393628456525083757008270743666292741155883809993193613221376819976639099494049692487959612366030716510895160601081773124727506285524718460395407654536253206959605137034136206080588895186265124742774468628839928971683900957534445576078766950591695362037360300278527990795792950111152085532015992618019422702620320313424396055385013456577058092534114818250353904404743281860798733297296433094537281071176902305307179462071933081200444021438302104116810808287109637586625714704991559996058843908723041508884619506773360424439443635741954749993001729330816789084462074124093412387620590334410927223024304414139966088268591994332976241135292451711261630932047851717735742128500791427096616258743715302609600632202087868477333457029046882809361379784264210402733190911552301550856993978362209388045505556531862337318917882155255560270303102461644029355655589025830584545860619304151809986782841458854021437966613991253188563677065274541778978772105805031689878066177417593205368030482934905173079051151782537475876803157733347911722410950265835839381970218156279087819300041539832496682216413480106762857271226742879511002015467988789544031630608339811842099760842478318211940606677234820192602280349923757473581191974123862712856541458177435042199805047067747013822764161735621125847161668393583180631585602447893623898715719751023469832583195725260821269876547895596749252388448828830188647035184774418623617431903490303741023129319326071473695442823572666610639587730952884262827075831015840215790174267792650215675803253221190506718203150721852656526004083198250938039853319456981674212533092013653971279602812712836402217554750672904621241254266491645587527255978438480896368188840070229236855725730913783909645985413149339977209242611948848254620575574127610375526628156279214412419880905822396630275403737439117027689525892264736103107381187228158063462424163555305161952621095783202512472760156622579341193136300777835800319965653590609052193777916216836463978667150436391650482150214743277818591464093803327002611264138170151177187526726194339226909573850112232013565120626270123304921647283454148478900311141417474048429937099891711932081292370209206722258592491792130984733028829075843376735042028529711405322281918413804276696970531087028633984435762208174180583935554074752952299094663083971314978747153306406462302742282644660350389112290883881129030730329848028081317197474513882136901675591760880378890998959363213193863250307576880777768389439087498052061872780076882717623408205695582583992754601200291370994086548941257705475858512601006389542735246267128415659534378365153438176222522508623165561017855495555995913506847969109897579382574193096639321294976926626761957295878852772027169796554540078944702091664804923080885688074538352893853610365004588058012914963100850617526231659793582958570940683327160236259831144031164708181216460358486622743073942461745477307190335812188680610769458292055893224676375184734529826643674216668945752595183057862954987239861059907355201714162121900022305707361805749026810682459326557347408736710847243757256424254595599155271126026375726281324972181534539271027823523024421035082570542450633034703957404273451697250752262153129923876460027092837055655950997807124789926609311531848842788169091615247936441575906761948153830261313332316477318279894144217063048655138350930608380391924284449781152398226029571289491884241863832229590049823702305344601053264063281961167951257873023896183267716524599784634311143916530254503227968903034466177211028363746001095214861460004416063195396857196899143821335666169020463976098295612138023749308139275712036650066295170431629177761067581757263992593409385045766230296382549698107628325740379697187119276353845247777840576265755728702227360098716162989296307864584308477357825236790860357649596688282958699003093358608089745644674773652331374094809982105120573284806329038958089481745954946655884813587280473031107451803694587576661849175020040639264239731306845210191671971027641944325499747019431442555991797449705244780113188760769458601620743249116237006197714999248160564905167609395430848006234163783921497786228269343568674963449445455814984767422040095953992340922438204834168350826117494122449376905764247687740443959304781722726409283245087448853334782515194207353342615521254313348882675141488523446137427717798285681058242136359099649024430010703321404171091450987842014668580651852929336668017111311871328344400742627310366458109437346057513591133220927812440921148781738250439448743698135289637807151260330810588408349178180302189826697670168295169229119144271383297402944102204648010819141609060194117851852633253254393636145210033529868571151460905954914125513827816739419810309213260261087597961657214575490727063896408723108958961678480593253602131602767151268390735653407403986680033150907329649558275469351494500774577053802097219164319056230891792936402644445126371373053715429085416015531695745072992292305609694120378347132608717498403750916906134942578556718029408232447384349090417545753579885637399490192081710613321688278836214385742635774043092486660826453262878702191714088648245944553465523644114843678968174097745010111152949541633081473864314450650459993445281473937415320010291133196245033933855594352493195216159811204644110804340539112821537952178530436088452856529637620458810197813359277665329563390937279593313542222880021096542744557508101290447788340864512842975702847813367540579485365580351030639218565807450893362946224351835327740477017186941187473429312782064325577077226180087285996768120076650228362818674596345523544765134975885117032087784993309016044622403544696255481866543748945352556793120561887345994832747454453516367732326921206677916737799305649570733473195519824920070506584251300237979539213249484954373102049554516034989657931746354717295760724790409688421169028683145740550607877578322912430818157054544568797398123655590128505881379411286756040559173077560709703662939296623047639901915679503766176593366327185587243219671164355071477630369818666566285823000263194388714390157711020786329471820737238173183956812955553193578676584951671286557729563508235160850623781721625531068552637640249118250815779465395516780116652610126561905745104807324880940249443332665117423979840399211350814912284306008302173339350755389386560295375858273945411113604047996137691240251481765289617023787078905283248334794613605533010941615921593929837135719910548588325791800826845151542883180179565233063728153358270700155842606367760909327362391005078878050598322156013924304127563419647869866516865966413234252835753876368731835210447613697705392421744990485427568845772646905548368842496079843728594471282768876606288600924949098318994671082207633034185536772823688812980509366593322351234438567099808085795018611277460011213529723632755040437357706546837693982642746448051934443395772932098558761244640006673881226454034195166169146457381749251792925698593038703671780031980988044339573849703115957467922788946623694736665419319135795390389802280753568440424326825378016077831469984559746057708101100809272682391233746463417301815169886894950441442372424985346723161887839815902751370435244868146014561525186290089340531226158648183031900807729700539676573952394760605548808363336917396550658282720943521018778626405023816609921003695847797699317825481821225803054692046751517882625648815741591622484712082162676205396290668220424287902019081127402040967296316055626671715445756114301261150611120725483990912376485912500900193083500476374829083605972145573531607204743339015584568886938819803193225739765652752784481351452308948480385059349325455342857042276460640542096891479052976069206896709427421224871653529627177127858311119152228802238055714999646079569310509605613259711038984396497110571348169537839894738650135796513025745758346745434209329197412089008831988414414466970482604493876637398009739593459158138751651587227996341584897385755919719637176436759637748193269878564330796694798217022014286661996896978687916481835260899791465274258186303546902087886940502073038029572959879426002456463740542711671312706960405856895110912059044436049078512693803307065784299531150643537434648940182418199489516329873445776633140584821746611441516487709220954417822747091701476012745509623736539364079222466273448631613946945446904273868084261917907789954366954116600061409820709334999213593669701011259200147310579541510127310971924822544611159097537604676527770312519898284327020462143961983411676920088982020413122170237088870089251028838073105271969583723557242977997709770568380659636322983018479421087256822608592764943813184937928806431420059222306092700937363365990151903967521608890979166639564597034826237194713455654032408389195693687209583262320123267068764690890036861377754720486833205150086672225037969497619388132577316291956663418787982884401274920372207937833214624986573321224610816353918366596451220261055595469085299399826448658700295823545837046779381818206027282427573557232645840188977339052637101196080898033890466034704136147987120914050589561472976633880229113916320968780172550110141177760513802643552392598964643923380956396113640512846382107012755097192784698641450536975175915416120815959830965308097789501202058091214911304958986178754857571877088566061468050804192794253300586938225177531901764620525127337807151141246655092307642125968568999955923523582886234650490062736927372171970579609692324202783169885781327859525947565709496210016479171163721085677009286777757749477220778572907712294452374183957226047634195336934546046439954005939513765132402081343353385263853992155981556424313781604687286935852414871570515421430026036207340299903753709098609741311599965135403351018424745919057413017092124005628138545049787314409904343517692568890634926941409643109531870286238142296399518792573032936066448124958920022631426337139780999401328494035171008338823402174802270955627897384231686299807910268649065951224432937356613910235791221239094457256024669609091773424982434075465819672422509893097984590472142695673162144759097960559140581421259895602110631738831527663623334266682796928511266888088860073144696760914984197665574659821286365706763877599231850837290610743779639884645920531849936331087848259903586698237048522797336975405830022539544829078837768510298389725509468071035581905254889380076871462105130786202171267475261937395357304321626755817049024609934041022869146328926121218074494206197760402933787871841122021513934352872324296685906078150762686118090919281214349116639526327855034105238606459144521829233117252559246241516570393721276499138106648493199956662415393696646930890292519593214336077730518290036772791133346578107467439909475795279774027956202233112021382588070510401028891680499659854205768426015760306778107195635548226618098164514259191628273410538141740427229204841069564718491156806878415780170071589742301923725308952831550133966420269740875498669085480916851694385522137108444512774802514973753866905616893581327767605816849030107207161425908023104955369320200287177426390170128297257441033665083791174264316059715933553397607592122860172059368780914145941974529830955644597002793426623640788272874078987474126544158442371960673022917195254569825320584675723662392134004353900695169199239415084567351280085271303064793788302212828069101986111242539274782642531863824257413503669322610840348524873625981526804778225593619784601604479783533300508958068333248797418924753671156369822798631534251274533567650674859326298225400625928582362631348511683941405591050077936721157031266961228475910853970021532396376175161302986735043647910869156848004571632098763023315112008974697183102317189027280916168313886105661794559727435027789586019228081538860637786738495560812610212686778686410292729938579765663677933784705838378093121299033168825458196798354754384580481473262175167380242351314257864656240374317222658418867130581530004178141085048252683884174292203725659828979773855646574855151404785326563511226899765925333783129871741263508591807694820744022763706104772868463879843910905951436681880885776723128079758848186576221046805593829858186655802430349662440330501842939038921236727364831127878674469802325648382645421226315870302522793445234229248680585695303959306548122290414175273881693101851290265383761916769262114353271001105505094844813772854055787892295906425461177269584378829319006262148873862285792118908336903288578216046428826107086216771292878398217871854131884204456603478435024145105575798555819337668454488320714039436110277977853079506397027729414721703229008807411293569376687989666703738963355045447397348395440383109631360673396800772996019271615483186624810309926117707812877522309912994113122384137772184628551697934025746352245330438023480172788749069247401979099652330085479306068828487213051797625034485478908846509180065535696864468873567278403575575419092186918371606168244237771880516994303783517580579887938996805550229383931014045120296304086679938242307352136954088496960614956908362719007835977209629223713302634254973922438476753314872006523838025510072465446745656640918823205227131202835533377099874718715190466072901595693223407956926009889855314421852159180243630902025525381170515539487070516670135128811996377099853509785659455910776733427073731523934574772512942651392227102986013600991544383963156780349385727826781922632591827389250116314340756379906565692791425291267612761834448155236662752102195740400681179232961753974997592764145485258647198793927245909695711692772570178276563474456992792842301815130736878971512607361986717767400677128507088247192653876394719137087211328881106678742447637032290487929107659265136974326373947050375495631097185550857528571646710721848060900268700622522169454627117200714463021608623497022852796113245618699666683959367805531008005238254217750040110638701724925577230671767146610976283614003620584575294938584519397947840114522525020058437271331595337615901926072916363575849276696597635304153477442296212621706548888477233639302125796450476786928527310337410673712413946418717264690648683154249771618026919556917932459949808465050870145371418907715101689370737536074750429686388839525481126680578236395049104859791754379361394617276844875135393696998955603209949112331452589056880557376128501393721157261588218539673313512328022585674561751537402121466476821581056722988186107499597863481476242327255179489212270724434029124695323441510708219815931182735267559569034309406445457821785921478506083310340516903751382695751514362448520241078845435569651551038312859188568803639689870336682158474402027734973025326955248160687979159324804090300817225261556848830013552851106453864487022528801792888240945686897611203485593057299311789658417060278187653046853778054631474529974543497551798825728653049542072699009860763165629148653040313891813334209665371676783780735972767855027608034290546563309240122560103378789987030700358075773692832854285781617164583285915635618040836268078458863596901991523771154383842201630150316487347220561965270823694190600910907607596719521919365417717419266526022814005945012999090956630529446331427791499311192507985603474016356276764150573259741818384152384479936545616359299585452023307374819998441714278754082457973921376876755925415391381600303251122221590544888622218198486879642477161586475671814359684225859163562118462179351583198292321860504663663124474123825557307822728385529981191127657208827940713156423040555739664298131763658289906631724540656314176306588167737866244139455049943510849853713112367115990009600329918575096636421375933619946775323921004995581078346774763805047484748982442262279586230463372244057158302736082188164702323873873307756003763804502206901784708038918774391834098249191745899550992542927840101300893723317666375496729485917405368184000927741558663475405553642523465488757137113544588909846755947775245421677332449830717585887163427017348416763157904390415376861296872460549718827119272266762703830075862740967225294931874705055434323788788107895713791036199642722675265595342512891622047751860879834705980559539392513586715586274001752734444477160847105169883686207259871984620466800074046163176535320527721713079734087867604105728060460733098813376232965088343060948375510856819295670692300064181294609193601264437712781084727061294811325472530915016107707083644363085111474097766489888813049893295639485013788897397717045021974693119647807270543292498677874742823560422557630525586650740372738572951207071636439424257233267537433461185788649512735465556832493813441406193893728900424416005572616275651738405226394600017870082273798735641740453080893344034411296764655246653628342177249148563817360510937875755397673790662895482421737233079202304461681638720983578876847062319688343757768573097969200590079717832522692811310124726418884129712243137994414552623186523522394423948998341308762153631360367075995737194011643272915879042842168768837369971605067056638968832457376294355018157010647317044504901456762987800317201343239250982663604927615705733192435973098128198486762403565861121720895051100129827184147145423328127062642757850618412054683545381567609510948736207007760658557902007003763085031235653335465337994889310255324028448899217830324234014210990706684204727954184754090269718338927034900459256540076292110751216597789801662198586200972962653377921196245475676955810717256771470553304220670241956662814417257432152350409126179760629629077916601944983400825816029211915164719493157053043646427041902471948516022726556659545835540658635114163273268630997148978358540375073362588541114877580987966543722925359805444677351900706833940272212970008131797176547831209959861366839941308182495488295229731093785692835178150592234261401299634276214663837704771904966442598502467185545295096126336303685138046517513635551789655333135528831613277167579473773640457270906387003490189487099986305891043369114871294903433167877703252123407414120493188200019931746750306286579987758844705317079941017018089931009024883612115865040811655288975987261620492802339016187841498537273473698260169225597037408158990711094173337949660111351944168833930631389229868877444762186148294489862219267934118148058491471157005402282296807903006828550759070386650174196634901283009634555814158056411133608341745421503818019536267766114491631668205882959539400063380345995100319186310097717304604990202732649503753872383543206243317009238037141172253815616985041306354047705187648149440953478561460788855248357712422898949847356389525991926792471705670891650107057695796744330870447104711061804793132341619958999847499618842548829798505949664866222181093338439235220439264390782447816262276543935719661425231626183264385900788362781242383753485755374972860344670093246334332992099564331136926867244178543946823248049362699334440348018412618713832100624103212264491124133420347228538916273193790634171342742915886270198964645718345271264361850892628991271705749166024241921293039419095208055779106631239192544422779528574619299677342667862809939023952943617533164019108168909349901329366681975582274437140395464508508558963539064331933454580110648161412796401857584939126838356796066783182013993515005035144630739633980685177307910153824901217779625542824169592898454240642094255434169147108611028657254177830140314286023752934825203145339770614738517793613635493954679207598481753693098632108291064038936336407137051375734365241105430694975372508794144569135501304795856499225797796634244253021500867087673803670147538770301956038951037812399079619167878231542470595960049038983943286939398948560563344787342246784664599060603160154671627485871437532523833367411698081108584822796949161695473731533958054629100472828046752332482108548240499907928038675068281824669153685332794797947100968990796843314255640120011239588553357719340763157456448137373196459606490483416206093211724573752515368838708421563137795925836358304288805665265788957164770887297882909129550845343218956521050612369056438521649998221447776471254133237466922319396307277691754338333001700574810238408513351450268296750165346801490769827405997985124703840207026784513589701688553089255366915450888961308390050605149002459183714877012882264773509784914131942258430862069410536705464106647960860623912423532399231862145772103380693532679975527289019308133307364796258421092436098288844240536136527028347406162189908678392260740779469810745690430108013401401279110741200586876121649170453353926371097294329288807845922662342343653612677377406092473217235188340239633559437882928350174702513486099367438912863500893241745464342437269121573631364586716443023188982925423110428460729402963234402102248827354629516455210182613637583522458677241684329531225553274503005057269630655286434657192630752275764158216126291433472829118399310749179961733211406054087909931962254012772172771409339468062392701543966343739240376101543366604416717303032327783956223147896226958679023858904754661123126124898919506740147227719023139612495308848912084831930376024825249703871946574549388591585214376570147913023050983767851344160487432227131321363767819898896181876647198596820273673207011208929806886010171575534982416170756580458358656211797222469439811797731885753734615379925414603828462739849595447549386915343327272153226987500966345568269865654967692014239351393428636989502677685877538340744838733364438372817396530007419776044615635811051693914980981945680616488696174034598471146438890337851866562541374342680638654648253029620876164088252082573773070178918904142659999699830738565196042755161156103928367708771504723044684060692950335404795034488860759813459603985851911505644915630243805063265528658478703938183373993444672037320196145726052240303349668167271155801184797979305705060129765000069842929526564813133485292373472094045651060754928629645115622893603182539983280845830780778318876936565279965346063790192916117912040391424663824456242080850948035310127973284373336104678918869916166636637758282332171458213504841324511045721572687110798325325709003832108140970637617213489498790474075213102353974789620177823091740347493169098917585008395249287828643337301767940138990147742367005660152587202122837686576811362195385624971335442759039697615051803436331915393264052074677110961305757089814637167152338045807899300421969808230326164319575935520248932802273481911392716694204999746095554426551109194518156754863665503446734085307861272311847461369763247902754930367035680251348533634063107099352966901936828360030589574439259973777503893604535670906258432933879640191678966825922536526656398935479735344152935954097609438102323162554465499236912092363860303175390446090430488381227563209065150388650511077778270936196003639278186002274466307380410286338054388717676321965719397074484215819255127865649296740368407803177926961130767658133652214784222581587408638647642848479033458368119163916023933463144504240994925214009654160641869235091279777230377637489471238409778974749000394406465973604176311780538620546761169419609015496421055041185881850689036466079988702742626882109487651682293926015638693087405467216001975314856870045573067716975631861473823010429811744153460377703691853526020004886239993205874705367544945203959952271915071132661405502528302311926481712156561433915059939788443730695791408439468699215565165827356888677039445254699761790939685968207828030105313197547876180654905936481687180479259010088407630218241324556426964258162273608038404691951475678046335602132189452880567948579671779838469114822777213117391748593358899469280561237358325510724375421213220672681438226757856780697708401196347537827356012155563098731190440999885193127631289773581993794319449065540680012331625180044424338608931149742635341686241101378426954123213791770256064347613370708226703583200230153831059111255952213141541193329708896205769947416600129591845156645392398111161668334215154356355979620889045947480889399483429472760894605148706111284136750587579673742867123526673888043448606091773835990271077721887587594826717847606055453158179853289988276134173015207539099836843107400017461381935845850013809509319208666635918159546786561233729600140545602040197545503362194732528086090972527767217240545688443424849549203704597016107451142003521073825896392350179041957187679876051957992572532461170669254047615788910798534017390186476077134927466274420793595690198778026821873767134867812213924092191294855242144868856102309283162101557807508005731935537564205766503833756952491426186461023723066773391160169982536808423672747069418250177103512698969827432817036600220346486776799886651130389987347074173136228127713201693728162248442810581519404424322954330500577096382288577909129339135812872898380257154295293027541507003044620590452103629828805419287537531594007388670657805324651306863478620184895038248766947390080433960428997181001258352551620524576220648631847376486152685474762373053700139857279652658814170913033636157819008724822417282665747567500730177878903645790081670321850952054645223592504020865400570556221703432346303214548347053370875910293673497857844911401770253111747879821025871869134899814227181739194629058921139522792437671766668877833476636281048850271200014045695386938864858255729415281991107321124700256764268875157180363931523228531504337852924842038712388219810963796923225427830823545054499500353208786514675940578175859525414661051310188789156393210202455191828060615522193645236366874130303031585954304138706021822321595437743777921997974661113673342163766561194053893073240518925723292837245104439614115336627082591984905981936858750943901251875059283700639450106285415669840350703007701802277126220642722620259264598654856319410799515941771362617756719365412954521654334175505539586769271292398009203296839023322777704670054785382212267599699708797526212219247199921063732820140837546041078561840453580733696098225969978560026618432542414713386536476856900041670827253272630643578799758048370857829938039350477652072600174596863325761743282420882634665828279644965702676304705452375070218892853496618235427798254960213281571565339393028449775390777768294265875942251437890285797421314989396075643153615487016275493710410913856739792110995852844927139939033745474224949447647607710036227044972547612156494914380460816322338828915652587034006516978305454359375847066895630321054090989957681220036385639405115306505226100713744159636703571864263958035409425026091048764074192906151907929381317412415784941047443666731620219676355138491716395991819233523605539475965279624323010337175821609543124041053263067581837765048148821081247721474786403115701585846552610450825295451243812778658073606955675883616098416457434544813321132191964253588235625450452286802749827671500350266400130092469257882647377029595647550743740518130704545867428418362059712782966729662056898073640968678761910455878419398492485577049719888509805826962367962414914601622823482954677026967155757325964361076975961277607341141048594120445603049656702866355824796476063185740412069174823631632149446523832175407579221076359411976358256409199532276813801360749863880222494843704086102322175673207759210510003153605973432047740866699592927088640468149629918451946218230355526407991574249993829810934495905232124171694775100799162701883241432871354535965930535501999659034192654735788226449592523991698029898133361801305201623588845417773114914206646773156446433990565221260098275094016607423148952025002607614570096880504320278558195582710039597297414151799062874447639035516220944571946145169830597976078661258078267633287753664509945793699698424303661174081659611128297900549572836252708671413783176546525351539330757101885278030536543195219180588899318109383448274063274173659714679898686401405828751654936886137841976479995909327225907196209244440147218001236609377845720493610817387983720418581414080499665639159713527465935639902653642836993511980900503840021551457071352819261980725752826740859746362640268172052021071346664209105275910218547034067313998542644171409414954551466956154517822024908790740343999227623375673981907117371252998596211298601090438289623475263471446483482965461605084887493454240281600102781820679888368763059275848075931614666367683625378387868576390195332165507692648476815690331602500954429982569107093335175419960571268073644431663135501529225765126981568891788527436358463389397449304898353967900811218402923988366405785614445953130095814911406678412378921621039202892602081184243650960568637028450000130745805655371602600515976015787742174946426395377390258774342382807163256480385227848167810329169603006722924299937901029982476686734712496512575308512753710271248658072194305525048653395564462334168365398472068925759649862055724577384812189715858363358555922304954052533684911100628718093250272561183469371262673480346487379371025564697528508169034278394740745227106757385757672176650900208677773309481562184062372838952799367739009403224870584123931271541333826471075750188320993220743815071867345408880479983348269207269130899666826233354413214478292901363001515185514953249464574505920578966756948363442683252539753476502275440149622954749531338848188925082543191153192732426379377209349026423991028766946175275779563511445048513318600751830328810691347959583051497493043221000804231460559964476120542068942730506177662500366235832366759599752679220029588416602498329083564730669909880548646788115188127701082044035283584581410193799794391844293224170017989228070903592182704973045580049423223243366019723569658095339510722818098885206847834755349227100050497523847337811612255962395241472311778033752990166582352048109762339228790543432458495445094460545118758665047458889434450457375336327489461071344826611720712771115967728516149648976961136207230909266476761059525700574541986905204450661376602552664515793452651648514301628089649167728180430098030113879212146988304913526721730156017227084582226358226514831858254157231502292823845842988137011689424149139797643224674378869462071043068458611126470952220022238954409775505965414170642873111854380308169443266066342664705623693272581779630650523896840327151276563423010183495849530976428118093220755777567711378480655947123616541886296813389094426235032095357741939602759667235938964401623623096863302836295412250215708313164417496874491790804637601410183839724845425878510492393303365516128940545251035521430550759014487654200897618786463493049541802947424144863925026015369614788961562566124966522637567285228546105370958644618570820329592170122011451947168182772632320233043305217779303254992686662815671758967262850616995365698871084562662928768166276366591703816890363416523953197070906370888933771536210752467208414789618145576370132820454914720330648367740921151681403125185775698642615115379199884707471459756115665316464340470911241706256607739153308531869079355165703004531421421486505896933903956203484692359061128189965365815241278336712036660468933799931460467736009622414623397250737161586173720725645614279558190346303160692660562823277970491626353457956654814279133051501497712748014139182445482044251152917326953022431935830729106368719752349405941556589663527134323409025891017308685274678820035655391824867462380038110924111266908165144975156647608452963053637223056356213746723036847126924595216456727794806226760950716304514128431593508816879072066160081140665929802273837055940469659790452509533959503460363776702352671970206459532541172025770622712862085229974358181367896982983030193624824388278719676901448848670354252276834466814874220886444157199644056122863326846960094327778280795898015471333990147181212004699630791284988749823077157853274142762119594836401349427729795410644572881362363219849453701457885398789238604790402723085334236312316484530141610445814864449661884921418642143022644705778995698496641439907277197383523619489079206565484899727408937088256475605452397519156978893812528123613645836188872115263201783532096352134627858052854715280998966041975520333031736908469353638007676315189571543796581790559358396212519046138774692369760855236453375124168580050791888259462079192183570844829349214704216425022205139277764046538253044576512631747780738717564409063677303259708060820423011000360053602643501002540259201612121475296225047007835454367829738983218823892494689273859630144192471376343107150795825522620660039220748436030882317683639416368158867551070862352181218621012761837903745819445958260803764495594180475626007981930558785607614359606502292835787426355834999858062155348707824657477239047996079074618627672889361015643731906028492792676196798310667873261088340823920151272027158360464602183634769705824248798978700289829315461726869515481102243107322187946372113885285667917517513713404096597851659147207194955105708108908239626801911565625262094322734485277441592659563883362219176839475674385356189906757565543378044973515841461773478431174244433623264241055738385366641082193573250004077420293870643550199290748064305400620144980357851142590380234704248350508423486995401658201508869633575325719430406079780896106869379502087560661107939000180422360646297653786405345058628154991238596535048409354204126876141448102632970658982250639436505919748807160413068387127684796563017154271606221150328707328020109943606508806983041377785968398504633553381093266106130782349280102671943770496322108877444444282540925583344359384594567744616509924005128610331548294691790898674967678578288910637233299710898682663897873600618177024496373161326691792702574523745627427349295737456872793577856187395697878078013835612319445143440878088756386702718250696069463965669336868428112032525783241359884821635887121235743172993905853531393164653673262474226960268972872418564994675069976573702622825047115695287713717942228413616315470687203576565677970055938135559031007952693607836149587924511183386433944268454761248317259279108156381984042942659359409411370272620349150508087009911834008400747541655642610106506994507100327691456969299548400129741707932930077048237449165096818282185564114533259741194676641026242343577962212075366135685536646313288269942312174844891337503396967257521805096661905161948824295280143105682303125661109292864556804014428351813228271673524592758569930324284693742022973801284717072121961481645222289191302543394501686887232094214262288615823564454986095806994486934421362907963713530286685845594016606803025334376901591541553612712074377482516413097445563644168743461913933319461121225549912508498313030766342345715698074114185849437945406038564995536221606655471064985049847427591922128343919615456816907045703629204087039930720616739030847279101763826180469477028880590431476814750920176750302242293457406503695548040254393491363135184289697434944774172124319684443043120355154149574197378522329604743823835482613518940118916568392826448201821307876034964678001678343301195957810487645240304939375555165052969872275307830049294726962349967375933678894497421026217931016602481840710004902725111487465580100680417268435868170974588863381287631479383862217914990919637089809893548075871449563772714732830691021187997639981153728018822019990687958879051940082076477198420828305081195194801853005513015227827418112676624841090867769843640630970330799164580948586987749503637057374308085719448726624299832485915295278135484381303586690767574922790521496222062387760101485290346917884002411742975280886986945114769024937667555185789503068949243820092311459295610504534548722881372778296222588131281370112981824832438472799225868073434905129465367541039206283863648108702668404037356055238004413592442486006392811861467650948198042379395082294914894085273231605586384225808541878312330154971749958539876034875756540148261455805380668977283356335559872360746910105235654050838294685789105731038708956142951880765069388454377752242267051060985521629546769472889856127255860524105397603184164364204853389809806928383068416149026271673868601574678280685090462919923063861832193998921324934302275837122354167595447853932226147762961857363105717348153371975064111098892014511197797188904656610235371205846457729761759875169345060636663578800629797504612483359775831158405856234639013823485841003255068793814566298331610205459390011787138591163377507463045606953034410881504215711773598067046311727869810710254871857489654530001817506919115513791929695059544337717327730985179486247943354190392310060152437397772580226655056207924780235085477113358940780802243658184582956244130114376970109920430518357972383535057370832493719339766857862630677593994934121949946413815060774162573247061061038272159631591249441202864381475618988526975609993525658166189786189930489946904838423410076476306180015228924056838062399695521601841648847102747461086708977325975210753617953418453503829958131826417546004102983106146723713681536517452846460626060283100943921542256914779496220419130077218007158646268314998062864850109638662125515603666638382463748745650473436451368825893165346763806038414390454301944956053787547487350236809209032693496951626558544260151712278430737462734329520246572705594616309410993312257526722411533616855882331159694762138595148319712145084931380989489329801402019868029012788188574496685779361565560345821192841726473211081261338574972528088270448102166291451981931731288911948926789541419538555965726572900711419667049834225555568999295878604675157239101360683515771163592190251506126328313086540865245878055096094333425172204935845564276104636470367308002216147014854684591567071565198358854988132993593741441480731127904547313888843300642571264664939416151215956692186178757171456066566740282012765912376335610448848799148510765911482842903792031231376098299270034057731508306885315997720196764304466723254091613142007608420565911128773026575243572986972306173834342517646353755347820613583695443520870003344560393228426511700283119231382316747916111747872092454443203107922072876617154062732478384461088511693901078503961548530341902832757539391520034510266072545646910829601482626050036354128203365908537554020905721637647268808609860593214866503604760277893556401218828482127434388774123414203100451808004113560341660409707168193341108060362866038706244208897562355826952817755152100058699662655976996633014616856773168297480043108380065304397946516745451938899084075360367919886711425723497667495914979141790146769293289917678895117777922879600167490846021152894189287471635668467126637548760008462984755197489990304350989263787030895619868007631505129854583128703172380331202278500545762209514367386473575712625923397834335350484600651385619735751974094510756904318266800711792479749593370353723850585145404756331259276195561932455029541230381544800513657321239891957222408080789098729096353090843097990244264238770896334566003988120820842617203250853551349574509539058674265465119477251534527887614488764057566238820597926565373311042654052509693565147509537899003696544169846878303745954325168122401369325926514768680783310270026077639723353740759955877399700341889656054386024655481783171992320258620027906315966932973265831452491855671048156554173837903674413410005855550360352432456342376926915365079977570151450179939744616872995137417853622565667665583689302670243228607837925118285964686912304817739335558047525478104380376575912060682161282748710673766184156154620161715944998021124765404912533329219345979087639150066041704498549990450087068055729305082416431934884309617273017408460281429804865815394264074252296841094657217758937996928681086566477914881090156130184170792533877697048357146596683643278484812611772347796648645743927733382647514470113455203615039581997382279319348296791069695992325861841444110906509917024699977091314160541829671470469378604109320747764660585405920932252611048606253806671573792655790932582369955889141539684305465562197476988073400352166040165419994102486772518614226308820300714800828261426823952826762932279512060458294609955501656701358951534601373304929241077575531927881216006598607916865329695887819870354579709874804259741283941705347897320468281050311154391356825353861151892425390695536225441462872547264107424756418953748140808308148342208270722421510938104510839340728712809542108684586072123281740987818924757150432337388367913780405058983485583525580239013391364716655371618463724997436749850496914122648597593179754601021044273255424629859645740251823471851435957577415534786657735858930928385324181255585001832518110853324187954712253965045015452147676471232710108297267994494475580661438943838029995137105146968206755047199142416652305414052110062294882165263237542799622126683820939364637780012392053348306298128258598887704296109702976221787274078040395859236263076841600274349896460595245202737776878125777454033563732840251871933825835887874547000780592862366681980870928037656225280177657053120322828844895993551738853763176604139626754890901233634898145548627768373567861164402593215979285654420310130134710684732142607774648855444959818981548939247813340037829925886030994375419825977163905423730742214614392954279533995162555034571874089726402414702510924464735386077898430218477601699293209096841854523787789644668441007315444238070137479859932609618561157340433904573490107513663176780803258327837587103915642377373707507746741737022316255853714901131013448528198381360235205993392282190790336499761776236952208573777614960756090577786090287466378001604067890863125122922292454866120508598770869238745744484160489008622227931085029914897981889309406204034437881951677844189893421524806813264139900413472283785164653615540066214863313509927988248708353317963650455254962420812914230041820441661135022422304456221535543334765867361738664716317399120133534547542336584223386739073232904666386567791588071245445633532734405544444169628502685774318748055043019950072037259324725569456577039450217268587975362159407099414527557754908984569942489537680100347171865472809786564388516220537213500832684212570578640874108270754725770594095775603634004882281565420625792032060647426366064576434692600178269541659699955709594655528844657460393370322642598657508661452146014678750914625050293541810073457245779006214696780715007515046022620600979880374308415450905856606110867505259525253031366339751781672178927268402459447924645092766946617051113014147633252176311258603209571541754151510359622811983821288454524391369657634934171931554132016311782169377752452253066002468865207270111029001826364358916644276793839966249625426935688283573585433368802560396956491788528661046256020891295832382524566245472799015152635016480668058653585939432523117903471052596257974772548541697200057362185643390336181763564055106380530223922179193362481091834987115185732486445571581177344738674263908366446689029082762046255464076989009050161796843029394482662839993031834669586233583395823838256354693117098398218435382568615872932672379198591490966853441876406346502588574177502332279209052775021393187889094674819075437870125445634210844700381582647405097674843295711994974674178974159681373811938124519383598750690175749268550689944552667544023459840505548651850694950704537259277233209207076587107156220329671393775726251941133080375783879303248521840066641971509594285628091555835947101600483549350249699709456300418683335317029481300759905350109239472611245623732763917853787908776276700989584900122379536492700024085384193165811672246953201336658755668739870079006939310160286330508038771010910942341138168375733328273334390234665580087895252094871768290679662726607453102298356678826096967925401358498613181378642665028719864623515035836811494578363182000705694995977924560106676657280498229270109810695535430776946309727297686533737344911050834271933498469683901072356586572257507297065811272386322743472478847927655796708878531384881127458514284501151750194884543546930880257538837076193218576124906690001910094460360858720543267358808735417759383129497929149931661479855214309066904739677830223618768844237292708445291419635286647498616566949035200304121239612647019005786614175916450514131606113254841644240651293684480785345738805924433030497111699182077069150125766029405740363407582637775962326605111528808787445857187126042027257594415093823033649828846997617542098792259826355937311549535375527857911738306358250550367423175912661411295973518954802061669101470630762635862765687125512116235512775891831973541393327527956508640993415247537022082342805509216572193288544843720092944537622705203918633126016248132045128466900592241905952095256265765878280558985225203109133925861712281415861541368195686781117105539026981339080896771360006781979395606798031145919851288832275545772963302094715759389848797779682171259994812693211889225553595962637712966247777954289056896736380063094506180135502647662317426665042292544755828155237011910044372310479172880555064942091386675209712052717044605764575767334713743593388053572229386501140431895852589453056126035619926887164238769179036407187002955325870215456203741377098346226415784462098080656127758071979627603095964554003430968352732357196773297248859964238192172315090286587156194029735703710887102712314484785752571991557619759292278978143112352857857470991232541241841703875510858069898481728230799454690183702576956762572581168743659775250995549329109747844735032863026846420372842402647967561341204875866215211968598133130791056984597635505879301990343856574749260971411248586131805099052095461490069724905308428724795608592755762885186400920735688972317702151019183125834281877166864653505096003555869079775808186259272997486222143977288556036456146677799077149088716395484873486323684529928051367722194286465988596521685226983660955121802070254811206738597919201296941718917644264613616890340910101443562093729905753821856291458679501492775067342196478752369463728578111685845654777241295050418496188120448138093488071103754310080038999457213786997243405127088254980774197800430171813958460479521003717803346555262754573993103670906722141902922199148833948409267804191141288408592994833591830771558572289383363732108451514090591115715998949669546319842526583470607003354031200594768183598879195836859502749382171469129712502400096569696772376766799290809525216154007342572731750551549077588831533041666911605103958747865858293322340985238755359210217252005293842261519052643530061302729585231751154723223931957873865721988258141974362569256060805036576109742296553220726042655171573860176350300749725017770715159368576995681732741199992596566437845006387094399742780204525217134800928904450402378134441369736903388730390223615299830335106556714817096336091787708331505880571435057747716792441077420703986242403693602720771320792300147620498952406256206587795337911585053409595112863141342053841525582859332863703809117847621776886429555766382116314964808980086399624375172551146963472270033934827502691094412440856488450633694285977420334852142406238099124647342820412085420650554925241501330928082001233831829056937904027479244888759765099605612276180218600905281343570592549130743108812411373360131480255550851116454303665113405985007153409436385287144635162715556801253559008873025906850428413726014711905506474796288762853562281134840591975434385683051250402766283769935175014808993270785689219360690355039929379816881475561453297220117921309060483299775333423168034815340462596664349364071532793855188060017869522057949062703095486257173304053929842076493823969781082173216818213770529523862282623128094675061860402692584138238993395264310922127745734791630698835017808662231351900854959715855676619654717690909096531889599966867181463192495007639712909055162775119728616183785464427445491999752106675992070352954011214441068292081124171189379011882350376048652761199463036230459051524907044424095641971649347656762355163256280022387283206471918033436572075822088079538596646596717773557501643618729385628052866744032492685727884838663844470046141529987140254362269495118214587422735067080194346596916285197701931587302395847569071882460650434733803362271866094468360962540254184851319291942102275727456253429971997419021827300415845504216556810417357057010132416111820599510195737939721218131802934301066217995952644125538121397119733367184190285459402981276841728584136955831811203051477555344142415610432487919273723065469349161824884949456911802465582380691798131892272461267450716381643245311649998340476608979103002187927629710886752157952169995518503303127926351874921906169530407965874380443317816794539667416971706411002681241890276935536854095931136502544914851574132323688960057971188607107778258048547880074784837895530408465617315609583000329658966081792345799867238143241526567579181181197615470952187137850548709570117941914253407998927850784924695017686001031095987955880608658884178246302715391419361406858372959514933515573307734180221090734563333542093352514412050895141043891285944196318359338065109274317056149094484430637386490039817847301128428282373321964899891250009270715409723775725584873317045043226529354405900587205745584963848258389419993059991326683075271429989930894553848200720027757593243127768177848989586820345856537313193581369202410225980633047249198965028764951493632037529815776230243739463353665491972191098641693268249755390350263885646073965149802541305377502702780054736478903981910736782727248887031578651368668272052899897880503895439199293694078128103242571775398643344739035298802447488442105331170088260485260131158408647351499127584780668628958190542493439095247026984681384304531406253100828637911265103409220867691371317237863189096137942404148548390875020660924188547255736845089598969772715067537525376471993458974731527943636645704525571178438095433633916166032823539664528805142077653747113085506572091180247741661235325833951132173540258349326429721311360097564853082140845342269926532567106622792812998508564017609772702566698327757416544231595382576779341527492860651109397758176465878261121801309036631542867773946529700844183714248428393141637494110280794959771015797337407575072127705080247139780662000098500971508954858597977795111307459172755742329650781202257396860430026008566356482350557195633969748419522614584345308066657758992149020955595258915525270727959952816871799369827020212189479734139110328280702088170937521253364747025900277553171532568446940483427089321504894415690960959375335926711752330894023411923981681191933801150859478135945061969651587646190068275294591159512380194244493505202918070494895227643410851370764062675192787383277509192637536020927111344787273679899043688099760612247120146876181335287203225742549842344700042148615286546022352267828131674701133754637988173689490383130960577803439172776204973378871238385876977125394805681597239597825032617549275893642570441898560280408978320734207582119254822638904352610032696383675213376643867013694113458716908405783815253775491653680080914351719692490382324073595869851002867129191573363380040112035960769127502809507282670758634583442013114098285494647529654541367251350098338397228921905781294667793857343515592400087223462494402343006842987000759996133056494556259470664865093620336970675386575850267922750129541459066714012209174609832726510159695625756864976515368835632431900366366534558986147760968034013201311720400130741802628785812730850805704052228001144883475642312001141977487149793426392754643352876868558365049291482231280735607879355751893710468536430807745046398460566225036057064829496347547694150309273835306888991537420280432829005035510889418052661067656116043750794276083200023258087827509678908940166798931288602392473465536353373914455559748737746325673167650857165952860204461247605988898686875463420667504832291982373268489626840531834664556745471466898561402032354931416582787873847214282911521435857582809310138981514768952948221721008015145926427514490629123146184391612874850666786120496022821345827116710785546021510752528529934144381386293651825950111840700836821833805345557632499633614255116497057339485177993417865326192801362396741493646722151526081411283143316025043313411568668095010477503481542440619354938777370744291312330799235856788032852275630333394878084289276240769142781024762866672006709618853624764786266465785232409816614441865914952478437595147385900627534763774007328170983654299030433509266741567402770901683846360206341775602234884755165761407682680655902585847519554448380897602511637425358930963558088448511165894685041093725018569705983090377688707722533929340774318181801883681568952944521934309804739945103086569229418760318843046450644595759004342255338184656538526844429595767602406735215949182231242920694143527701001268777031553078842806096390957496267572533695642291987493790939171325292677147296235290033396329015823403378496266895383808887845266150169087439900494437901711632414309335826698070625622444329089147273092507241810679506192296522315479432237548947145851084099955523380904268339326253176961910042418558095288449314029361730896053367682098664273997603971728759680574235544561294279112023132286331190090143462223092449037817340725167699741497707278913837908174997713187437462061193027146373386263032479163659793517807684663220853782751139926626982483331390906660640145984515413569994040831259196257889034699385648281115337064961189167300627554436061162812744702047170300461024547852508764226182299791992355114526812892417915457027996534603997056375081404863708448751801807565432566759501860767114443599611769576958079358107493322733172911835305018486395467232585875419801090847406304556595935062214003890893308789842398980137766964135173801000575141387519794104154127269833370132567270922171005837541437426509673431964844200514291189208151649153589410495177337963993801098000282877243131020349345854926203620099229350842802228850087040775708635728705494990850720590092772188093322637826054842426976535559430241840781358583561638205495909121968603119736107250790453353998990831722458337892742035120127241948338337262416006555438028610632610937182228476269206325853694604440067393962439776134329549691628759685444290785263267445460020973701543818648385628615002626147942933399381123094642370317318155120818163285756610954933039809964149978315406562506470958985835183221321859114625051913900654449846133515925704752742752492111860776941472800980812111236832850779623937794646921441849731008096367626574386285237506902286765125418008565518261042042041491902771378755003125350079982935830757920946980222152064179487083031719526992874416697191303156036940265933368577816498867773589751663564479605038406047169586653891197893139505490427171203457078766802691472280077728064608497701308408725701721794722684469425972301121645862258432482225022687000234515170048358582041252726250371268082671609838270178649760507848790368849330926037195029000546360851345310196971551548034375672700168740758221228428556119499686820138216256549996461090077077249245824542967005014303337120862764630858675471266947386320907703751633490146396969728819785989201705898591764619160957429735060418868781147314516524381251817269243925056257618956422014074424616081175348661326470046372243318986863068872091016874570162694109053206836205898432869768717966478881543852228661347428486868389081464296641858575041397991189916028332985725918318158529068788082963412542372911094764672485151158782385275859362730792119679850595983626718304175324995044362285720983713212511978152666301878526166840841590015401257308809224153925185748047576590353099890853520130755701188815900573299322171445580780826977265705420756836552957204967130620712802928325194644984029675576192732512706723256485631335332593419961459447744124992161070003786908148700484105699856744529926299332931303572489659872314393538005545543987475176420964000384879431063111258353443702310282275942538923749915207013745311055975646480048580934582187663696894170745589385025070871142649819763303689728989656029236033095726841807976649110891280138348055833304359841672650960233387864855607221715394939502416281154901909309177942565021971759462010039063284959216676256227810215280230597367723497684763512825648122122450969559822464555172961116443490331054900834979776493714309201625481604884707289093180936499729047458822828095225465528825637930621437381286308295146250366767409105914364829389973262522013670623757506691767455950451511020125665823205347505358055396392330475241645778634793524849694320810724222046189335963658445527656050749196450533042048751971206055217382238628449238707457062275208980151931196924887509770070366631971337901438611400627238212010681913808528790097194910430766579804067926213148513170950340326186747751254931006430460787149202707448510199482567121708843538453174668641937235786255302694021288283450456498893712640598984136798699500664512458981092947940160891685620581788636391407243075114540986827587012043746705060650568168277633677309240421246561818191307065511919247370961965418988229960312691124884943851551827859302440546210946077426042723455635913345832136811381293216131641891490417199278065689062780941901207153127693722632281303547117958548676490008476435215818698438059683903968443853688796785242012052282795292914373144640989711585292217564047752426655549550835306923870405538300712173561311863854512229589796694470781946041074111566203999776661986257042377324601229368236226289107470488955446592509140368701547847142302450667733145144950728091670735523461099309455755735357665024536220397593935370974049907664098681358382647257510769992429824537192730935330625814882426478628075177685439019163473139068348876928068381841927505800169756281275376393708361457866851528337600647283588141184118013045044512058930017222939133188017885326095115622439157577868969759600480903502405311742622939687922238686943092571798593683937457013875798854343538224891484768369807756382025533817299717444289997532061409231504857211072439132651647170255199499454627964899049731817079612649522322063467836250741985394659759535505828297025164814117181735362155854466807519956787620563631216940659839119881979371324543434035789081840027072163383370811356216860311682448670467633376332256735863056059963306714482520402754460306607104350329699987727752236105903607667528941988289743848973979543966554774852680259123390009012389572682127473363890193997242499538236934174544370438482480272845224973401741112446494640072746922142922224216349376837150039603285375686703505880173243477840786391028861139258351538444957421118821468298395589154428457902909578369800163810472904553907642334151836952699762636135244231556258867318072189792689399487605859171970881973973765686217244700352896112171446032900828024111402730243766657866711132386660946897431056684167896162410581728037599048510366217392800331983780897493929956667510184564630361845169374461945966147011092410053588941901738204946294688501500875523784673741919121928947391175715046266930463999581962288548830539828158805016934706802382711970799326415446961235052695968910763218991822375502735503824269693282592681113073670735551766140210952351316294611375488005227587920910349939879435656360458337319500804408822458923357532172098435354349604608927330847038981713229286855907389205729668021244647223725902163545121176382637617323460873643140599914886248626393666393772349690831485122625849800494340034147195291689769488602231863650747326884258563382178887642090305082577677203709665973548994198025554691540894119928152218971469675322489144104200862197616043284517701953120436101496953197356820955287658636095027664464259141647871301262160476240428750513116249702621746177769409692831482625543089458258713279938205604556800669625219039691248135125246492840774106731013748300501112571361228245906794801894971405080928317344539469456222678651705843753402436403045487886505664123462310454785712164749928258720810781775416986113842321302030235423451715763242064684652699321242969790212054298752408850911189308614021688892084760372074913756045794749127688655690870193408766651218259172702619450163778619536399509780884454764097317312026559266681585196535946239542915760694069061179505842712065588146252663303006918940352278125381439993806854727203951714659815158602193955250758317465627768117497332746487646256979120166730916611597756105174175327115426008146657830675447908373506227654744721158377078985264656665686364124066848921591580696648282771819503352431651710643479555662357068107478811690448087524025886513685035114957218022961726283463504685501412522071672374501662804472507379818914008229100791915067877325126312542740445894857174079248100712132954159855652049036771453976727512766172507194573203005921390514533805444057426840152122328009649755583389563699316829470476454027480417317455565368798192658202083002289875918638262872252426216181144522023889861030840111736483364980301666169016236898576179764227803865550359697610621386757945057317428972065496183386858759566879961706895426915598022828231041601388058917535749904908699137902696992514890911838022061541650783363113687497579900327694375747427048065632073980041467636362345718588121349451801228517562971610645708371575268932153412999285358725314211158150865563423677908473739869695852228102620380962485296686014744045157413983092604025257467808137166320604911386329704096340600138855457810286096295955191522064102579339262643789855662853455636685025205977626974893739533218501825049431036372465689077958339749958346448022490921281523445410960675448312352448715257851310585406835262244803935911430057984650808532115049788726912688993166366598053509115443172231759184275134664159127111162202013519827987559634308194280260664472748388512095479213703518241840917553951727578013102423675754629098865798570870244922721538435238157498666859676281579351408485519569135667107962016247821706289171175077922367757402520951353011636852955017144127339493814643588668868767034421722604271130184972852655395890714986234889190488966441403514031928531386151212799055494988840624305689840944310070084350357096771272469395747476085944813448161199712370650237067595258726376998372463140822442975507392491734385004540688211001840230016159408145781163607982626983805963597802972397353481627694692406464663952866290053320666392036054516049448950311261538980829561102646251254334906812940660998579172561812928867362179278613470179736826133673639042680829900407000378773775059778795766848404447379338341136064401768926823818898062118157871242317152559299474025010713677890498704367970707928872102490072977288806164293320557327336455105802725753536117915704103115258638757091564646159509564215689710166150034636151865148810221879071045839020311110744817601806762260109923864334059525561149681319274807678952245904551623346903174994762284731245122451600104468117000658324560322206155306948717446619293570746202991440185898020343270880026623605727521290576245153729377115396412173039219845168297212135862611949531295102582077351103884936386970607279072103711330650463149490827110783941170343732361526905852516538728439934263222421453835610423503325514029775201728297770914247904602991101109793940174691708781677046674590396056843458840670013525801369849032028309445813416710409741513923446851875337778056139097979911913297893050572093563421244459864487202215037125228613805237834491437659148268451376553039418237366797928109260496270574958791278747925639848655975052454671415130028232400741834941434746695715626230986993748708074046030572334724423427023688283882715651916512244910818605621103405843786910889043425943625316662303568433883299338474671341551487095710839583568296888560975147579211584653601079537446412213429553902169010317900301603214755541258271797604840710337304512452311888572320840027728589707641083600961431651313739371706146379125075602787449535254879317345906827743580725838154556226317223342052890563380178141604556367929762421537798146117813782308362933520901650434814967799279666904047205923439205241438185927437051527986996041262458145944529291629661801915764769274987822586864491687038148358623830076030976339594630779963782848753669343505744763896165229373331453648259515863173985379033229593715447540617943464455063600994857722591603222627225027171620510766525497306431789294964712961408465182465174005553897796893207354375355055881999348995928569866049902129680811303429758528502341911007575481730300056763755466670446212433241492873518201653278017444045075067953856160548248087142864480046485379937523656693907199911003422685331703857254435225009978469532925037648430890866974381550065498225355257853488566049319959285431877654262077118656793795841626209582016218486710065107315796775274961726174620058543864429477058946663617533343600495396988302244566848006914931302212053389878937045360104204990678205811911560857165612675901588472639356667909051583325978221782116540976470269029385359336399662190944516761940995707733218111305741741924646405649086223831192336991788930935128772696123389688443810560977317994194469414834835792642924109817531136245711469954603628046405706136881887767414703698487621769050866772011686246869698006912060601726933781442993728972443571473221648448831941181250137101907772666351315602138900297768410331261586096061365904818969150244975650600484550211274719246267731772400317692290648515003909699968291184812936858166689697028252586153838429476696652401859792726327259001431053842914830621215318602383211842478759100512246433468180540289656168166892429018331472332090313273237726890873742638690617016555124965318255779016303061629934530037831223700941709997404683550550133218199303772819461915655612570064511143352679096565439903104772388166093190478194197780750443735347373956127532989697991215392265340781027047836019938071299591337797122093174713212387849905862012907874619797538767947069453680954405279886307054684690441670007347197604996651255564618349510691566082183990882307887861282404339705778110966527394854110780083276048479151176765762352012726377160802218329940446000477702341018634785614503851970848976066180457035166085783091833179029521166590011306885468075495602269684409949733150065456774766021086473400479448845819509426385183508081540482402837399860767627573265413447135426852337502593082095103573918133350927370357072440754265895227471280700634026583401108480652689227965982217287277173570547412349027332992758990729467969559402206243773501460696432354357897798528030389167519484436689744497620939401173365936123612825670096019990461332945155092888255343643374618338979219637417152747267173456704113825801140369929204742569070191576967325702561378891259224021810504282798775996432489746294923917140096959428088122548306003803769967667915005815154622340466219452093635627622629782824625823961057257270587902714283050804224654986395172314504205179375502091252456080447576725741301912689838490601748090266735110140449398389732378128930212414985258470965337363800302775804627792170199729130207724355493609007851383188743893317513875523252335738169334927496858998196565078214964685879425393782454655916470204374941337912725254352913776469497121912566213564407685244049658313219503082133876995695452497397167149684225031347142064526583031879555322595688031236379703430968085892619302000176663984536542924050819384585299301416895652335692046567269013951554039502926052238223435994048445922025009414235797257258420171260787916276036628863179345898105235185056507463227780808984270303226653688403255207106391826673061982426313284632014727847643671067918105002111921980689543587000955501723869535540298789012786453934158216949238929082871965444375873275167693668622490489497249940493091657714812348912760004543050304554875031689013377899630960107100328420975976413987885391675391570165942624280114893294027571842938268632460614163499480997959678559123387996914485843419820742668246889133639290747317737250779909633602544383128115563127563643040957291518790940261218916291941271348352777859492090060173037994478530696065722407221080335903587866391731874311730134244011619416862762213558046810886866584099588764690420951025597586649635170179827480910909463925337999055637336619849304652857607147323294688327553710258082015277310994134934810260378682745888763170781203039266632961649267456530931489346837181135420246793102961168465510486561774943275672589729544065077004474605897491919943636927352681196072864224739973786774579927192433933609952789858162695824269861854760026000655762249722841918316294265856234058443117046335988728566892202454556723932788396105610419842327341530652643411801972805459893532613920559605421524039161011230354279885925119856714061107381877004638642168310954376184724996561155863542242269586521281146569754909975571910649704676291265618007384447377697308561822536548594117691754875406387007101931727067448434885119016561750110790041416034902958582204345890288033941063545437152755461044172552186714203282835032009581209386008339629539824212896473578512654348876336589614701553563279163333555574077187736372478483570332702611448154160014756294171389736739306605898638431643325196245953836144438821926574756780486337755063253253792032599502003034510184296068184540120778503785203796424916693136999220904196637410707338692972115468774658514927693153757594239897326185881121951968579674872859472318671361357293515393337904999732254617778001541578761698094180595336931752932033794359505056950250800406054925011041335450680261900958435598465439934490122893934023866418204928025594308081182714438511329606684250176839704369747503612976589390013664217338963107008887523161809994871981570955902709575371851454882179633205225069914478020195310556661722750875848042105945342785313973864255729021174684155837726410982092075214776184570411194926518576001427797451978568796540448990240520864809428134648683360693915790953045119860170127939204293846117786668642574317142955603541186538190983361655292510018836878378215719564904679848405951957391778898946787639493160981025552730726438670625460091259383112300700672342251293002249058196239809640632489030092359604735075323771328757119230242652738038452875251825489701605770113036676767880699513560167339058196469560806256484315149141690064514138247208817555060138359694979422346997978561055564870232433636081275200345343486740804985521713600824812729631937191623494620206548843773445084695062990898809089119911469256574506606081737848024808621150548732756779845738064687304202937076338804785157317362373541182522179583626268406731964207424159167992908144923542314808059959687955378863724472017519682045415021386749744349721193387892194425442714583571286057277721399960928562041338703248221573484072081474606382001848985691461792856850097544958799421353378407179846025318326276027161599402759220525378789002121749961131842730645126894118243262800282673080349629613982428948809734501983775658578589880971193667354926930332056836763575767504416815281348455154861168229021905516565487767206251133658469418696273523780627036873152678458971869578257038859031914278025400085815124078084273747051219640012499741369859882163322815241094825828888061348193462892652889306976021285714726631838582110431124206108676722490711540399610308057581766531586221986773938660831978611011253384218699119543101501206334486935929979259770742254008812681754258221792914818709698565832853482798700099377227253728366718291507758890904515640760010340655824038342858028395379873755939067995709828218226503079950736983567034098150634114891498430864011230032086606204629092530864743564884229906633567064880512691274558077467116973100717734586754662100311443783189680323352426482986530737710998387183155012259734542064855766895516604986704127056009707311721815057745347712260761688023930323677655692180069303416116735135408913245592690700258200389784571755673924039419655311453226625422673070295381352180917209026305700732313769877178685857636630782686656102332977912005710965786410381588160674962573261714018888722840386803996324676823410173579568302579327061106588327894063225651858028864875797798757674595898458723130941874729361719472456342656590636849294588307721326194893736289853638812063411647677573153110614639359064260865387981908021563914372331875524210244829883502268302226972847278562481706821723784795048699357342329528690442271069395892930378704533772680137580862727884458722111635708112643740331981436950893823902888616899778571880565095526557331779482865409452952678850233676952822408345508601734985196258079299676882395895480362081520159085754187722001015998725073155527412849334260362983308951120199295007263283544615933690869331373096059002416229538626048220204593207138603337075309941606135558078386623716308780112412224258216046430684754453099285277692085002681837295924267679972670676773552101184379164051663681170337579253878916217240616043296322522457732249721937952060313884877698216550189394805327831368628859104700572154581515089472929771877837018428134162268172395671077710077721466479967866442978516773704676085326481238854271717684081418952176776483334239085492650592277697218493649327383499207142301233144052286806368101272130923023323230732196797271443240185357505754072654423609572443573398295656100647722692584116634420624493261135145931610382648970648179973680893085735001959399063388546461952145299911485416458645514389069880014828343985185908863982266625484850026683054391307595674706578084358346798010318567774265044667149537105370855778173185589518842337460116636624627746021234453892630528141048653254934749422234386343512773341009765365246732379851284483814189129571159704887566586260838367450610178837439141051390310826915761229486737336460171368850946475907952727084118411184602242020739380905759963323060269986517641764989159048936110287202546789857306156749381853132144304699644852377830375354148091878934169170583483481716073728171420375315668596545488237736834643875554352574706122737897737731894108538790982697220536971191135382160966235766434651980144278080792780057251134781971792864201738635895370360619474424881570375085583341607126246007826038723901618287820739460312106780373896599276594481633025902544816825716315827126020496039684242561927989022100446353612239738647105248945645441030406608651181119886832328348621434131653818935333012336015060263205656972857179587686386050367250369019782054458243343159635358759931965361770035146159414868988852547082243262366488676868788713065795003376519968443363383478532150715143090334356527440160442101411264536563967063715556717898634031284586401473802583345960961316734229702213640256350221732495832643380494067647626584199309277997891988517033570144636331952943135900670777481457032300254031218782074227246498154878467724089682478187919887771816476086499501219792936259507923869437252248491600538372693843397665103617128834144434981676193931814536423322290958607065931011703258329821590581563291121812366045797038073559607856268171516596527516676827454317440718635876962974466266779850497869950945748363838667243632919323011019540026152805362542148343776316146615325135272731493189027993019141458639445723461906423385964491769553199895635249675091994793160580713174948113871537990820607977563339800473287494447916995943187164435483599142867592082171781955757763662086702613748443521442181904671415855225004239998267251478886394621322493964252705114570130496511230890196709734051170172446622220542603640964360702499530698767096768904339311657349738482691352110385488963528403970805077416411226309759003697820435286336280321123377545507971518930049826422002104900624805579326474311131573841000495642134478280870145587104141602751262965617459805267848804665773486843904336125878205502675942131920613213395426353193377935236754919302733750372810652308444111125975737828302585928283054143589135943853276502982029575990887568126084459804188280132303392816375939859391219942041711410725790813651063020119680897331171353666743415192916959589401219314194774270801397230460104395459013181587870292507850999296128204022913765599957185294908509859420569451731366167716355261613789413623346070235747275930158566880964025458957516684368270686853183947455876446499666039668180850000873700259513663503523815346627586820659484388088467764283066344266365989314963519007447550750078848876371411248871025578141822939148623696762776397594483927215299343845878524463637196312455691722218625909421977086377102608303677957249541901417525744802976440205409352430336013237238452814669689805526832790030019762294512323044606747483525089308952726137116845714614554812179850136887867525080822371282949762370332910326021426196887071590357020935558538193279172563912917390832983479651353657731381390681164749491797717382201759964440910777026209998188813913660475698474297243696499538486205502530657306381295581409754769966172481402746127440188731574652467465012544772293510930168120753604501555724614075119493759160598157033618765646966352511547853200958476388824977541180723341345635007199102962006552179025787347805919404797089438556802238411144838466753439606637097565001485003825424600620593173116041096416765692715038398849174482310454677592776189364498682524788881866962869241691214663340861428436705974725846314569251895132779032028077168285659371103499512177833990175711418266579411165269737621908312860479179169609574345084918206020895731846832974028083233125819283833213284728107166540194996375270885038696532428728554931294778407753941748649158961564092034110236657464175337870980087167262924582903876331843909292349905009956480169881457126157949924529234784119821838679103217054119538359853959708084335428309615658489028096630758406778183807376787812283519882666994298411926189870785610943866403798423102425535037008874016899180305310128282364520802483462642202641943134082125925300660454863091777937104100498444693219418618583135426704874943684353706103481055755286245196217309484895352247946276911840361819324593371613494114249133760795315319191700024479423807024303530413420250345578915206522208810285341546237274275998295133803730536609913263704942526827652564007243817825800228207622132308191932897163716567076632426524912802847559070993731180232649919084749821429210524715699887128693135815351578206718668809342532969553280111863826485213552901797790546766981916444939469992473933636344019563398640328935531353000636676075695611725450240647632374377856697668004340534862684202782170405926566729045645593544656186699233396552936109236069316151719204654174070050191830640541348046290670458321539516853311793921013888220729746706342276213594031776185700750637336676826711643562908590326384184762020189184277790779653680515843677950382892160193130694648378436882491972058622198510714137371058760806502627220495693419949759529557418147827940675963222584800398561053805180708913190614457003234856336427050550227775542055707113935915946780099415900434255563748640956725378847831379358303691567757691207788808573654107988347938585034933166476227720823928071084069122024934313004466792719029386399577136141493609963544200193031570889047771860980927638699556174730449071955262503174607263092061406451427970946064231031060014238784241364056636486201873366406823689689213789713952357861983178168380923355537032775739699881569561905297521434000650194087627550262836896361991400839340452996547945891141303278703406434997097358214621645388435131417838860363054141466234698729865185867439584671047580835835611344860572632150470438527886440769985518042646552063367304829153122730538318623492134138019565612868972309930025379855555754961007562705623033805129302015909742754636200068711060931646411885316745715425073965281237626256627705265150621104997084696631530467789663059876945137584092364274647037223494238330712082465422777330789472043786397150926557645694598230231043117046356796905010612889879683441813932826101598068921069525953577247246862568412237637400024746258443995869930863383651899064771084752578835290419300261820403495105058803847905787965545309188796319196429731880106603602769740349689780596556531160255885701821986626380410615108529304560505362475416025216844057603827310506126022892672810431824734906953402367656801636555154674967275773282627484943809633189839309298376861702626270311721804561272664965799063781014873842514231313858306538218238387372483080841873534168801853481263895053765308010652146832207865985062391771401441643031259075187898658512333715488423632033054548418510335107897333968727082400138221610856145097213226131650154203150754185023735510262030697165119899816086234589585437072879735358799290627597340892635231784908261255401236866988528683721110726044602884222470600016946736969713905169242465380194750034378772311778810361641940130659429203284585200975572671247461409056960357969652785644230959051145357519693212745490811076550702224552812240506455927727138190798284690549032936667143649115994001453931804708543482945553056045826720132978853105398234666449063154301424756486806322962581697790153452939151562436009945924676308085951026946784548070464648696901487885448773339126468400101976232434961628597732857931119239830606340709516540564528836375674915206506347322499287391957628487306285066187152406271690829789959012467191817986983735104250951615374874694371984094946245924370852157340037963971228795541360820828872263926857511550964857250131286707569049210441327485348397205400438941896843964804392181091176831182011477038256356631477168277940458342116805417823936004844711745828992050453877559352659039519569426041071888844763258593685928205642355207959525897635322762574012368276547390835000806478108208787322483538999677004102231083131363472707832141529219536898532344419615916317035016172488719107546366351630641839560121305354874521496547060146049956139879344108314181449762488413774812685957849735765132332878312134711586796194640601648740260168564347994085986810711772667947334029265829470716162087675327104711869121662030518761167043594217844697016036558960510074387402009896402332678031294867001523076792804516988594725826040193568698543455584048220377252028251442593286608783279921054311656188171839754779080040193219446209794328631890021283842372449192824950867142953699214793411661580813788118353698400133198116608944049125149083717643378425953590646572695407349597957185177135999250295769780539758515260106773067041406108801179284472953500710161172259640880545686299185423786518685221917693700952441686690006917833891782668005091678044944206350340852674155567927213826716667947830812988288223541430141074995665620701129677560890895874724663582782384332518069552556282804315264616276693808423965156082977077193268178166232652429975223487194131646753313815437347246046675412142812359425502189743816961244161435972156049977411009789744197344363404277732573867336781033252501400055220334195401335686930853833529325274430858618032403175144218536667409146071351738699248950300752699629211120384317398351272480842975633921101234936934154905290214688878144674988591123588284049407680763939525654968107045083841844884564180027249804974034423718031153946174523395039525932283312730201070953008001779949279922592088930737146463127211037636294358422932459686057994519028298705398065019661196926495112101382316871899507479676597418612932222137163042715250516662988672680635384066653798947894020975202601908013831385151896082037523305101243848665383681289575009829443731645986764593376740185844647875009182096155101147371137521921043964796872540331063220816793962394413123760594673111751585646717870954661043896882722563978270870901530461337600032596960445034719121606247702557550554065737180919454673209932950947356187936694135503085260783169608043951293511499381870193348487533996962104035835286982861686215215266482675805284827755266802899717925641319579107173022111908163768797609692114086693200669751334161085357402068295616034541346149136391722386096711454772580626843212774321223399624447017276804074062074171501948834468308146166043815936889061871035801560846289275454587883931134775019202268597726659858240647019126846835351675752552006954072674772428185532494287230282174008232458209214103403496398185341588444805415144462374561895281540949155288343359006671807795440351379188151218615050471245180979411516858118054384490906221348480890894833547428185315929528354711152621335533712611439667888889862594835939488557796462217343963519495475905360391478572974192078495067504300112672344310883834331011817133674083147589344082441983293987630099168616170983922536116381450559395763068661614347307077051683368908626743343673756373528275015527716107391011192013351260942544329390374802954289284599825245531828068275035923010616056933910755963559489129486829776903327915589990809368060294026690606585717880132521479005892794573174172073407839164863610968109158107927272383599620308037605690836445000749134799362640975508382547231060919167096169964543122363003338161512833484009967334657318307709066826641146101283545680511101343266900638914000513458615974159772121934945049701642863539978277224174048101650038795357530517077789054080729238648514590703465363308913793123679123698475187036005466254594320866263600768661920905589085161366228737437575736233530631941898416218213538134087727292015787303536181978613858661157833990730116135023257436377703014966785546498014016037789315123548772621943210377651838028091393791016993946042011488608179564561032982085915631421547453997805412366179866874523501729443366986955598625624540082536308639916263412321382626796506567214661692939690105247504846032205838566945910551619367582581156095684073070774915811803412075806136367030542422121564106454413486790438129071534399308050481832974109845731215162075989769807655000839755023664477472614234368200562726672890867853658133407402699937202740819790538363005161992056522186066278949031421225195716729676906539058434366054946518503059862853464780008017120742904119858771117124999514688747654233960082145457387785635038313861087425336534285121355727627716896525845879431606464461221163627652253562779500595392800231274690455432464090433824407152979257940577710261095838925041228728988234465074823143570741796953087991079575613043850073791469953307651949490778601535224552391660412843395882792162874894795168868114485069294992650670208525113647809806123065124847494238778464243074422685881227392568017720370910348220408675158178289137658448957129124988007212315320850223883986784166853523575795863612610633194306155098985918332503119120032673460922006149928837925524169406542505214122136202880908368262488703241282047298074380942454720581803989589537770474716700830224717600436687598899556323397543970225303729431827268244679217234741579101903993464489151256415435237687013045323108401968263031137586656264741991894487822527597198465992138795779929373069467874167896255292659436609015851769974159754460358669204804103057294201565304205832326961051955052815962792423943545804481745213895097570782865520723692094355869450281734620817399400680097185011126278541724904080705517523678679341679848539829642449010724456712415614232514746358523032924996134614465379806947289475752877345005623837051877512348708200530880870605181807049948537697650594809109516256345795504897444731542064307654389447109312556239308008380861809215615161538527149727416617733555982808832764107356130607795492500437096083372208378772415665539022959157699794629231594943040537468806948666643618810002279037814222283804303268426850295469788283412001735778921208358003697910904778554679758809240461385766636110799295869699898531439479858489253939389634981525398163132987637262992171720971839461089470064588218098703511126694677041716448463076170310163500553090791344186026028896833454223236692849935858947318306420221756231921812439557855067805273511535201982201912861721829197563135159616657646165879398462179900124050566912825704975863508936857190360979563949438312590653726322196903421884994018294975814787606156777473690323494548195384514453733543455668133670240746967915011136391899236675040544443927830727027553179402733818367366008035463066579139213218924895329305116025505316154447239403338709031527593468153533713850297626078428653103380180170753232240133223341681726635902765783430311641521906272825499108073899116057445204283974119542482465458397579303813213872365487664548124972896602681920722759211523181937493393086532144596652382645644181345499680197484201639940834104493683183997735956076147520647177855190054513685687802902061747482076812056523487216969331984926892852056766470612852157833057240447183562983230539848811253587968471605164183686154600077866435240374109199367219262305568402520120099256928635020084496528485324368889716583973346635019833235253805886601312135310107383528353936143245212756387050379151685380651048257096030492463205523406660525500772953356625864180003172431934305601502739764257397212288602595406764356634137704087345778948880228851352204749664511143492770242653300518855104372504703062962344555167754896485328053256051726609329529250481758659692328992326397078941620893818186759438915473111741524053125081376309723398470725928529969440669166382036906308314449167772452012792747641836204497281677458768965172018028830663574805811767103460727356865622895888832767690022948885032053556785373930444171466976648749627766899523773155885257064145422370043819934050311321711023970897214794152856476876854011247710761923512387061738593500920963558633647847963091845029326424563106115465586255869685449817632452614900297599519583085395268282382683783179541767176531301028313270759602211544756990347400181272372419277628741693743824405481571148585051830941331485778213657360471340829970841597021425732413447877893129433758940155379667964610048534860133515687655923302241541621506772039295858317899182524622491560165219876157413358218094526274501144315033643328864579951412208601503187510479007347199033085792399687634885248205004427223500028351677541414304945453612255932973901217428431411403174367748341192861942804335299936757888594767787941497164024935857811249293749313764754295217281522186698109464318322379561189645941094745348156250976298087121027276724329043974448979876797403283033959954145575227874053787329331745234734123928542308645969785778672920817048488377657945249941412075852369143468291178849972381639495923795069228468225820319616301691571333584587016312671685273917025585128340331574059696687133248146587688978307508694071904566548478319873194370986804381929872575643714429064350892091848118386746879928422214524757096920338760360911943632400287056743226081698774185536425989133787055810022285973832339670455532181167333603067359558731887406400884784308520621948691737972568032795554912521563519598331706727637683774661039594856804110664329256042394419028315613522304676724816663136780032727828466531359094334891682231592591713806830469991957888761373517939103497075886059062382680972769462454952211484912308358731701969245839662474731079695711863271229343124511734964949030700008024545626873232238990992764970131406175110717843875361561654241544422476010481977280987087786408951318262371739025239222213042615183256648482132192870912514577183689831151007317267124712858756801285684887267126600177671249003976892650577432564439403202103791476686415769157463321769733868385578865141031411774743569376255396545536866496183800710528469246815931210549739845479796588468898176242035242432265174973341902453699890125267032851205873608373526428667255314872350757326484555338617113625116734237458405560459449649968723715770187672481575266232635351529505518923987400208230635550044579081880017883061922289363364570969000971203121613933996538133625140103945777982585161045394670224049751478131809058504334762527189632180574067831636097506598092025668521280382232210016763571756163349151225020935724878608137827337234255235064731964625297181165080293565717604955143735817769579673348674387266459099682608297137180908515029303633307645568847679121639030577273991528227255580495662246599682192462678065844361309021648348682488055111331443206515010084374315181887090715353893402315605671879429905880816146855422250682405033202489314830505200367976448545091073249468643646602810649535584919712158563256544166760935093033303117893595970187771912932323280314053063392904400372289359210158210756024123719560033176023068499524752491821582000672682442280734552398883598663589730262990555954930619466602442685719991380273766777161763046769117646974631196380697070147357439853508460118735261203632852590682802424362730102371378897039851815782150443553897662651070137951008178017907039434312179334129708655155630657721330688783087817312740932157227963613300408254408889080886534373996173942402623390946826203687337462588970600720303929890736686646362202532329279100500318342945775143645793386105501652564773785325321801021963248568645746104494535068162392998647980311431623765833919475490590775262936019873280347865282364843399275267684406111381896502137040547089289112279099809539751933480564554123619137715546725840464507799311302577807261964159130703745333511973505738514585014018575406529455931807863091194846665534865834454939094462137873045011736654887110118148708261425106522848848946744780097025076710996826816149636349518570545148249463633849418703383629982496592374985809491516576647433951358514970379840720454881667660263031156606225265667988363133852992447912982812214870799939675259548655126763908154926333744130941064361812887854399280661100443768113035789893177014950389169610435333076237217332316163612129265628840699150221468455443786233915726584324320056265266043005023670583768835449331098532279450626911234014293757077398896799434548197332290384766168255506483772071942625709233290780452695827981203946345596879734767671830239383216239555997581519741166848925274399284973343127872952292441710750207844699764225753949077694719654401351673776282533484728921801055521903594861489371601141140643241333429929799611933600454430862253236488246901040502498456710383854107787637236082645979366370685059586351240297463090504758152129186426094711895118810718187014921210686670149512856166147453741274502760512632840059020937034904594622160854325295614960577050840393322465488977834709249807322522773710583904007967997046102043494319832969121355555195005665348266370289971217464512990427323236319619735183755860231048302323402859102403447603344939603231034790920099831821316501115746691914982128400998345867141404828974387686321232693707892906238452781877903076404790482506317212537638578443446794127720379629928006023135164103082170672377587745874368937783400872898736204614422055836513498077622528577590572712356648717912937916025485617168194202192943344245270150434392473985506153767805897291840397391370709701488455975370958818296356189072473374455682849225252549886658387721539954632034466340256931402999237954798821594154031336427611404423936630288949668018669741980254532669360334017966349647882785755836110381982770520916685695744219754804475562225983375519137947642395545707773403235101295797378433586644949657294340328190466160894193857649052810576215171846022617954063026273462547258107394681631366100944604987334882380674088892606143696146406616084129692074794973048720333860362448711035161490710188441928065917827127707513035111817548047100248385243705706100634084607525100166305343073688918164186282690609874326935047615020729919864412610583231573327430638478710496651889376139928501674886574950216085701362409628184223736810484833373152246804510987397281427562676355173470651253100733714893788449204796040542753646032200535207063514783917704956023132298773522210812875521085149348402704573560497761539265385864819596518027568602630985147588026610747507566972910421536244916108037623169900683413429084720000857074216569020395030881885078524452921549863801300761001463357066189749144432309963728429639670625958469899590026628470111082452491874261339457513485295355433183438274642513862896497256471337426616426145830315579140217686114708056607683006456511979103944457904637028359474616812784965096369010504186976954903025163447361435906748377369243923856202431566357008201894639088475555050704731593434456335526562001174079149716028511007063277942309444732099364969023615475391660162380551807062626484384555281427951019425126976840739772398446426968951381626665035368765531279654391774920005555358611922409988824317188591106966060401516480890467765753257009354126257882554230383333776176224159984508496881019803193029626639835485658993108002758788642069089775764385977003158971759162131119139663192417705977519839907958600710772163893664995763263694619129784500338400331032873109412470937287525424145453819640401840450084992232337844610049114051618167799312073871392918387159613641671785556686255010347448185267191698308902277918206799735612097989275093657462102111538642357031124185645150925809460080621374037777489052157911243580918429084552183957487065672125502004298756214709412755994436475274474359197192321031553293814367786816869270788393104975335136636761622987329984516493248977928835042555165171140884492258090884789619613250127627332740573660177091948657396695144358017716287573848738976087433931639255993261253112015631530599356086362302463722488877218506406742277204456699002926524479157561845897819854921095068984194590585873728978139779730827745248831161391623918342810555026643579066802033413447165210633863141461281696801723179251252620875683703059859930608200507625095897990819640632687919245608426057118571882942409032982560030556228050587739790030270035910215054985225220577768380878641122584815247466159698642599832067582482269233150968035232088572931293636348337589643065610588236783364948924337025055170923314480771978726409413482851800253707170090847065773563239267051557864505150685243957218564021615711521899793050541685857180279615893389361815964006453176041214071746434882075009640256413409454717617699744352283526970184527457125197468067314177461321920275312519588150803762127212309931517362042660553129084358795951545000009832369129982732633918060960402651356753971585813598178350479466585358680046696827473852555745672673289961481049504597289434640531047839718306080072498284400469512371086916104702930263132646621535152295213250320412930013811669856067975456378716066189400585637182333570216955659078381018732405243969176766700078411193807473301687507273905174915423624914789447516497219979837913318748880383749450939474145436849873472859637813190919580230945850438627450957438937087298288302244550252896536235580598520399924143516569106918060561702649731650994058715083296398753393794339609648618952146978793097012230241904131896478272388345514982139836381287344520299125458675316234339715877716210548898935040964073210048871063476589809608466634091699258863967060386086550617598973183311251607154660240990158569224288452124114157141522584484896417730354251154382370323401663153362110863199374758503168980364015361822428122462710444848933788939056096052858684052326366680386594326448455588987211485687580575430565927715937008231258446830573161033544860340473272414258239332847036929999694531555680649314932355988333757968906899173358182908805882766048208737814856610753088192463597968988868838429273357625579384435726088915576552793822686837609134800552947680431882821860987858221689360528245632840964994247243939518937728518185914695238729622548295134475240764090082423389955430052946434207256464461986748777619302199345298417191320852742409107855305098835951506227378567506478367597805703228222715881966720788123252671977105993244612816721192314859279444772619699695052432049916729707174455589045091643309547255734211859347108410726186789403830214848493580193901694549724411481357743622344418753771345349229288571522212501857819279882071204933303233331732093013033353165632666992864251930515964320947461506244086889440808996736957528707053080844753331227992978088812826647697827216240431712498915048972678769938278568291334830804930541066254458285915905667287024893520626123898483553708814036885094179045414454696924154312385032094188903558980882785752852715218117742880648871598852140352947884064564950322890051171381651726535715256013408791206909205392159892655801860369755976253230646800926293475475178184669404520399704167283984807744676297820576404695020619381309519017477580461091026647891577873355932675701745401108542089921814682849508953601400568617061643004354239632324210693078824558660583793984889566444743918179092121577718588019441986002599655278274792176064019993382850246480485998219969080361665957638952046108634072959905696733267801858387961915923545719621256959902603660907874597098385799762091033725026443662639334637560926355474957378600597956200680525259399524213125318839607673856854285617783952688508830771073783773931526246151107487648868777044482500644340540425565321998158653360832559262547174163294956817067144960623106679086381894511120286547344085247562384523530644546131237109875395023287330638273364930266725693126669492282279134403898068263034004234400471096567830689309464940720164492388689073360609921893313195986901062711855853489092589133623255842890429852407727892075643294377901867615991938199019039466126074789717495295982864227763451131893112863073321312596712249667864281848067580283946209193397479549533956037188717967505549655746593315865272551744983595081129519102671184358915378867523484865664707694928419723914079042397063379212500398477163919813424748026257411300820932646223007955933570904137799717092527023481813401492563873833803710948076459924647763097572857420441749846126493781920308798398761546894604223816399480427906338395167970171597596366535122605583648061542464022351667649989532414093523736788086598064935353401247575938638047994155801740604469110704352352692898787082306622846409452391993002180995715270664068575102237522985309156664178264191105393635939237648925017992918412281773526577276575168276926633357108276431686897254812965933617901353472985987251486089190046947643441104895597894545938104475604162881342925814454162298922163328212398769600362414832398611055165441523774780601627695300553587232361662437323637190318361497680569918602113367492503502353347108028784688029630509760026013988437095958909773458385662768148741314597469092010999540639415353104146053024265948215981140723906737148679835202278345627869216605106337494442037117492919529619035268259655398105312561100503547713789946065374239063415343981892842000644239164589173709026271272699089864735714632828620651460107024447795397233992677922520024218331674115914910512296151718442637250811161553961366379420279278095113779682178704144952611452644079926331229223599385020320146418872248394035002142327681472068877611741639557182766802553503765695546149493052347872676753293067070035767866731865057507723746779356226136740525506624452567487295127029087343018590400104234179149470709646054840434437686134700904899521062759444050896714079856900050002898010834724014343787850942499073070247517403717063789652381043609554355083389111256045459539756984974642585517514801033275613533423457590293047221571030664207120399792397836414955402601618031147929775560675733147059820589037578238142520190043321861660899416051461739175399794241868631322026584216125567089587744383638760954817332103922487966415198100945455988530640257819179475792165964007536296880922731633930539120888905968531483371711409682124136948796291646502273953726659295153359234881240357565409251770373129908619022755300141425190140546435631603660599029674289055791941874744860534142635359028046807950521255715561293584982285951911676031601997820199098131006945266854839014030632555468496656255644765751727997816288302574674878820667904645816936786256306805287148484537228265323596659483175137035324525051022856071432041946126908396887509437208978299609860326228647647612130170804899347752499364931331695409414462629794513502954209730382847421072300337023261139689028448339453558596780428678732708620914020096855447259205188342033473098659779304676556731272180782824789098801947545173348968001307693441183214823991572931137932746781171165208648216314430011560778110874701217479437268331254915763816911067890255420144802542777975236827007842449230099975925827737680785069880507079703600525227142362881371503715084120022683332410975846047543932306318439749146839420641920427060588705100670895920409287786706296079337134943120447382782550491151419716151261314106130999644244298347455939790465372435830827687724610869417111738026716963935677026113584184950776944936101582180576776875650288967022185068956657841601116440112508515946765185401332136856756895598506918050861550997188603817496128641046339137173620706113813330266310971184495873137225306348906776224369621510733902751861663546825182678885347706604582697186567593654245112550624660620582796751820653531094383767746856384685083066342042528813791837316226932764774393319804146282520683612700037424527227210450798546320189056689538839548442307443103684577035185572110273726683282156206435246014178733953748656647477791975046798652207569650547371754054842294273552131349295082511231695533371484957105062335817378477587371596902024984760920753293717078960261646531327424454981909650065977052806039379781666452851717184220111553983956265036226765880437475261158837882546527499077777229558673346000677386294362025424756142644125918902377051531469000713194996516774270763598292789716830377226453052079581864287230239073164818268577794789292447322514201521539586017530958011223400968486584994323086762865536037668420788449122779955680689429171636126296888356042082761276115399695342976605536547331692173583624083858324869667670040223106525532830451963672685932899948780736271620178778315383498911054272022962753349574355215102545965643954538156858267199830299334907559103138491713344906091762711157047259009156136817940570173342534792874450991198102279410262735739218794145035291476752958796179610588064249148330661698368577118184624295430087300078445971493537321359233928944498815825523985227106337323085733527694291069341535174933709296866788581360098020355171011184364280364160219495596811320348740354421592371853253588391089021463518212226322707696075499771341769872340035224670921304325256310433726137215001764719273902818941590197330129287383823670031108380089061609872317607931745356434624696482409586040189081358726053858446160597588359600179013380079291645745630913145102033782048533551851996063317511960518934757790142533715388163798511115598199690141012333870461031368628996077548908847515507940785061106506768561238909688075281625883555978895549961439862312625894689038524263437773692560755140540721113420211683602335889053325324354144331946840256009054014000527423643082197109268432974363640320410553058849060247977436086311282002859168605997864027949301354956474362281702556301292424813671594466955095422801656606738561085591503341741264574169900724422417203739001581288679810147736378185993929319975951112398747574791772924279839867454510849019171495258917060435950078309032966647606688356282734060012040293038833726096735347831672546237386408412647301747358258576418811323640202405357562258830469084530812119342484654223864617576338047817945757389246149781693627861763942052519612808550439991949873202934514354052876544738319633938367896823486456615622957329256500897643206332695843017870304832535047532739942562677270713042108114417202707613363196850418730291775400101220016971112011836281279913163770404884724414729918324492512488682697734042245465075173480907679105170458080547133926164221720780017289515982756705802598439238455383085510857828537563257320387285356251700396524696444305409180757903046240570298605903420094645800978507571168290407916048495534787782175475670861714019040614302155477780360052049249187289993914117042088407092038844232426009765996158536502240744669693077243883042847097972089917125690784012853067465660121512994644059126596376050050424336105797639650813341609470426027704185875440588934695761008485415025354902394070146731112800882333917155188114462841191037762775269999616545349626536433879226869207297017556275225479780025214754473494272789367848050688196274116039976230569818912902370450815155907323733584970052255484308160856492268352641687793726797424884136802627487718460072362213192950719850677591549327492404013470537751751800171928534745539487132232538706166423132444321209720271312718503973643873524105393275382205969809835626246112468633029455414591743617805312140263622253872472439436472724218459702776964030755085028236443598871787101669181787366851340551366970319049687674263933189528795816921647483160903995635775599938428485205082672952041520838493018031232059711858244842784937204920365653524291414925365976345969826160855788880421851380133883865447197875218308353614985761316250416461352404334569059098837499658224638401527920886513377522980827046405390293039870126009371568079700263590745182231032881050394558072103005320581445248537296836233214384099540650378420878442004550863525150825166871513545676492155136438368994413539321688451443064743916847168885259734400257329324700843602947370978753970319876458653578594438349097544260585333775635987842592170257111385678147190769918394492925277386876480569568971952582889146195696107528016592219716436158044876236291214606405442821932790510653404474839793669686192673363061111277391634318052590548356012391897060799385767645451286540209045416209725923094883663337061816621623016816193524529087264492636262606835550415866645125736852179002398633266757179684751099203214356797427301383677693982550866057627499890391272780651428698430283009775316197623901492437178465572106860647932623682713551687584253566281531160467484062507837958499043904286029982533533610484219404573011603035683076671919702900356118552238310807626894357691026764196829828325743056863353420050903192648961999443752400011720909557012528660163818010288144646059460445850174521758385646885363202071492326602257664006452475447980296554576349131172089186882799502287845331736514076734821481465279202023615602037584235880885255779083695190266255767086040934452035355170701127104299148362681444128722525390560068952115728851392681334695378022509987333321730634033056894524909599183874615101043336185049981437099877943111502710196824617463071428039765547135318990383790960375327104709680282201289719600649082098494505542724690741121849202542689608911905456721356972247832038061188710624181260933457539283800330007000329357084993283136090158833153453967431211435386615689502765138327717716508309059899375363872808575878428856939520264768936284961228346696962680712371151789067930070380267259594474695458456163449469805348491687242984287089144580370830881425619603621010392078257043820813515917404236621030148251551450343675889928665768017160692112289073254529930150855763705759006898741107614208142600437406652004371709309388689233914322303166860082084000747815648971685291399611213921712098766792081146077800910945125509128236065753032982583102803167516590887756274941468568548779285631616708295167186555984282215793799082055893416952279526767195270694460656852796979990326493288162161992685308059453655980613661618777849267131088508520131148811813542351650445474497418090848208804633677221032082732429696291756536388204632084425809245683612961901977540173168525330713677187422323069587859219047492376681234369911627952076077877900201748685832590023951544081833440347464293365223686310202791854802907030293574781912840819030205441024269352110840817252570764219332984633993850606440490264856066598207218003985597077502407350205522183438368690283985065890306157984948413238388603651760513877900353373402217794457874840137298456269117686365601761553980023216589607095203696374732357225475089343777492467094788702208904096188832136464767357488964287736248979567815656304005036397915653834661193183258712620429536253953858495702634708639606634042582380944126523686789703451473234998429312901621674383991120732425973257567234302548652688741931113150715091258761967229359887061091001790935389597108511360626390773891649698101181102544010450689495036732432300446834609247811965419321269307054233740815982852401122698671587925909965670107426531101872338471133234883024176580454762273913989522058897301188638656585499700462280894701560301835268680662230645967566813994946495663057940705442053075285523576463725999387397719513363529028078683093400707000762565864228618491935476541399938770626868120261462807032254090006039505557900006558118993833878588953498915504839262843385008027476737988756244884583173736053230018604085471179775791537834191934616041200930959988828673402706683357599115039469533860967398253775205938568110260842305024291294805199731299265825236408592259186135690730836752158024381059636488617038041253949800737834178826519919921082758301162142020078990448609989439834328336663366613376720221059354541915598252351585816732331490335688370200103321541179070025000120954202125656444416043302333500494622225796252326724374541419612060626119478806472867559736664701975106951828025587540264739753227997919797067185301291427008948405280550055432951387826225395930994969657662146367737433631339662829328098659159296441333563082979804778527313015481677835049566054669233373225520857922890363078218788042286856344378887514036109420642485964608827191476153770341830844125142042636266896375156557822609743424563591134427302371183972585636987703285803162390436100143833423351899671535879831592372687540607565468455018048706075587326604204639951400817274756121072102853415098219293752375317087320737439721753200926451509107521646039269180929365563177787387771245721224060467456563996873890366325718498934772002238486480972546845717108125970727743505520319913072973084159657356093476717043655328010252633393531161333684777755358526937921856275603720847969422614245129203584774827827757539316174627906913158413521415776940350058632573318130281367101366590212643867087206293832114804317032891099090014725694519215812378800708568570578639018342296795938935966513067726337388947304107854369511977586941623798389499098446633289499822838046804381259248929813377859235839583415225682847371599273977237149226287194559518793534211852927507591325445308439924491167573314034989164530034350651825165727247010823685788286170577842221644612758297998803824411785041829808216463477871781826520992732580489811326246452849970563348957911229731708196145432169368144986519381924785060369500660525689338953617362698591035388025056422909408390440762641476042084256803630212564984078168714328034518447070330651490287516681511213003900004342025544435242828967076361127560582859878645133060058129524008508278709676753013996434086299995657003909550884299533879169074361626543363891394337218701912815073612549138640578260538928952714877689916594783186097309448174330049822018814912933431447107026698637089775800891133662369643034037249714120107024316919919912245931300547264776631436663740570253797526602760540089612934224375439049701783077483325870179503985013764908366041659805516781891865756730603484543909670367740531160067224048197063033904179236383476737229452982096623594381472853575815391031814915504672508338495946376352920176385489556084286209160614470467092054595683757199737146969190368337055781663690189431963180240579358018511393842756288055113535664140170605614596345762417361306074070266461010248759694711729270936650173961838007405348607399411040776142542351567840255671410925720682794179661514686654485744423784858848058137585977895583899215573646259734203285527309515055303535989022134463452394638327123582693723303735904828049621265764622036539683487798441627361115732742618939701800819010707431923654042702748394411630579536413412892748477184921110375149349948478182109817480879484692587369047259183874865797891660938067755091323838191961769874821571124572202513167550506319285174333645609167987729664520869759095956024034899485088883907584100355437010875433962114370197291122848013390385432034989086092074080090540413616645198419321625778016362533231580001275244533170953408754251068371910646830650059481736111094013009968586990887776547109906391180031755998491850617225531376399829734409807250463827770789664114808944704913174632896823602602617243712098401300033967885802318671526622892928075653639796135907858374369752595959408917187589544956647006633508307560707499756124440424024748663912638200611145992071644934363010404459158845604019295545593724328417169931600223408211866020868674765449490932918853278775002142360769540826064991280455677927894911114514368344940042961504557348486077102246950722683088478512360551783672506637982574597740448128179172172671280592725569619045515632616048366276766913284213245540306343446220949874903183732465678314252582154537975385842644203928961534068386140152963994989466553071429968267082904957985041089614176598765313051217927183478393021721778538059561926467177261925601573481640080424790552401335430045042566006255585429820308087850126054204469048902349908348324035488924108411640714383981754885592425400646964287602294132011093808632337952056957632122436644543259567587261496889582898190855671060888955767424622921418670869072059597879617955250640953989380717704585697056629350749281224728588379576746183389667032011553510179140151304138357083910233728250194132527586073645002279095408232443354338554869629590484569039743562677146907504427238113020249151845516354369835964404213002080483302259006910423767092171383986969288638922887588198968833622993033624618174929719492701516519095295917362291407698193056227956083197011607872091496853815977835656309352683933994114940565931274761713054299915048329485176842774320156248368678456319883693501493344425928068312066431527922014948057460292785719143465160883989673946835488017915525904622535562575385508266584478474613738129082923610454394820592202420447925507594240105347777498794539695011260309649506043598378468443296555927892694498890744572509036053037394579088876801740642139955995297600760536618265496890124244665161556185139172740900283110995607979544688836505524457305514162943627031638356738087064934211018496610203666790675585198491308656505176293482221844285387483007148504769076583863559386947353705248708749716320774505768592323240113745208094762613881915569197445286266064927338721773103038448123225172922470335996153109262260228223923248952758304029282622716546276403890563340268961094644994239343332646425216076832891757913216152370203812087889738213960844009381629181772919459717710153847921519218336394649302577604823999010664660654040687525886027974211568222987756893743323736581466723436194243009772801302707571936779963137281649855921681801386245861723605669692513875499689110550501033983424710722434340072813971844103279828994465348883029839740585420806535466953316973072241883624479700626929115294834495331032354940200861032771261202181712038158119275394815539011591736634630682810471108470973551354525604264651915783563256366357010433286780217509441673067312756743602725529417307661475714230944248706562040452080625171862746886577904442871009161409663462681068483396950617967466947427331013265687806580102757201420599573533940192493726963300626233299390472223926132083387417376083248735114460593786943660951292669419741236902862706167953132530600140518567129396322754651256666899512239356869708853814524993284254111368255703635375573103307245957248611015231750458273570278345746561140420672020052168104999130343152374170133016069507570042244039179530272584521165865461721180488173209141456101645625158572273271779478362567008776333429556676288423292320071180360528695678572793124754323331519469519895875579848058320365863927428362524017469678740252064951231403622384625007424567717361799716228176663892746870677651768586749130349566452497362766984261854246153417101463181332472345237580949445570935703016434380296774750471587356703797256848337019002818516643615826593202379271727161391860874041258798039291896376436616522916619339954735051387211583354450606406230164109382964295520649587779423118079218884020473410344894985191698259190771554509001653710088556058058344322796947314295524898156324205229249798355514869839517894456838336154163053337106528540200890358497472575332535464253958416771913837401044356303283821407530849717641678749722846426165191932087485927412552516413575462721220478168937013549796098019492443107596130399560296514215767806404086272566644617949817045294083966394501369289397801030050141143849318378587860324604840915626700249725330765798266863598294573606440842096014011069431042642090588610473665101999206470623754248050366309760516550439136343964904380915827722779368810499449081308305869155537755881108607787295594309763797355976158254054778250988825021411797489072105436610023487892234137093280261551848281518853731274070895478403689638496199313921662830541876303766490363433413247293998279439707636339288307147917208928735791602097838438806712163280344969332054993593025083739689357345873656830167369499591071146546713527322542380461866635423462463713813516378979146260259587945928186575647253423405338888394144774950629075091763050638758495754629565224014970172823611448937603580267225640711754834630494241840820413097134594324580174476128362677310229339294672639665921295336888876168228563499779732787879995250726602357498237690986620461199262041616959094829902493755882393243045298744729577184582800468722628996106208780032440038942256267975623403277121555702449344551622465367592958588049670084249942003706571519661965445937755396507573575399088677545190148979528770843439155934354482050519526207572411234158012859902406070927722208226127044482584770218178790726777620686805675707332377293759646655362693375770864678513038776608858436807771358940557876700279107511908856009341107281462197505638470778775444776956368783839327799540297465092564664394560278653520720398503224153231908455135458954151338417426158465217352900366891411521461626394988512290935967134421445476963174896816038604355619734864753607601230334765630488002131477124165904641916129071164072938496966713206379097999627917686561550493526884479151076134662900124780194759986269723780660537856829337225726122265489437278527463127999411452820676343952764166105179936794629712741421458393408765994627494322770191111888909796223555336296800168072009273506987845841847406420723736337917339228555428118535561887147723383273249040028539885740054379735479520356826428255398923952500873568489381092549487465873708577355071896540229477090679029456587753081905402059660844270426962425615255294363099405542227572105384447336168236738224480291295417073628589776988185299570081677697832013306339252348440254932969955951866710260556751614340223431957739679328386425491857519505545176002924401457642006408370194361297032992018963787114179886876381336554440331360891677803501390460197490455385120132258515210856804503253902839861349153416406204941008050276251595917720740738092201054529280623199340167139682075054267444855840549577652206405501848885550326535488959268051453822071381358522280313555905907153738739702598167713783358773393147084401725449078760452532175626116773856534598381834245726296759176242154787266055551670050073225279238689200696631102626521480583581290528220920503657031395346087174248741468353905380560685093955740690442258722512499465327360673765208285752640546224325126908382316389311588779714549772041608028814254485993063449701727088437353925009386281345016949298874083902370048250015037281306995463218528123287542334219587287421932409199791163015952037151002015602069048695226603940733810528062672762475000640117270744224583472284394268559165440671743153902148969433215586794135020384997494131926275622087090837120932741069213845684667734416797419033036502617878312963014150659572538902350235051597855896756231918878386703242014574499767836029050952139816910418461062684859075897109044104779354926265424313421903364361173884197810007171359149707020832091490265187723469750322504672754245033704861801886224843052123191033004068814413698721061332510195262081899120708719952779759246895505158333911301622197655253266474326293360972238350270291483475480822974385943524703121153978859245455277651064827753055357168938456645309979549139386427452082408318375608089982746253950951096801328336838057564698783892387524879017054894012515381353597474132909950399986143952643498883552728260520802374759602483128379421529987676066925825148113717394480030703589696813027833508727979154201352130108694422855095028833990867191687962955503217420891223996056331763751109037460183784126806444426664056142985519975653237679433211161262977365095086612799180720775069412313967149458961207614228232941228034994436674402517157301790893065886124817903821893114328593050117980389736396893278429700949631401234114260880732675166513000005399881638896377746103833996067177375412989606833714960967555557858236196080990518260239391216238767240313647981286988578825564604595248622058357977892568788813025773099348964806293619979784728431894642125151536207665348864347442629389209504328392235309461581846119947572851774748726884252090624458114318467185033194613308108731286549430563227026777961217465590131762843445517852806923504453368843629761238973346598349784766720445302871715155666511923209475732897615766529976565074259490784598350642377832115380255421546443185679978928429067775434401948371778653269646830025242380659077553900389393954547564486125183503585277144453313785382630394236215896854090631027734729998900697670282256928852611231838814207222736571998978599763256278409956576714411734938802949756467809474786005026633621057133638606826423049318160630911917401624791811931398345288905444000992085583540501544363302335684484215665007551646091404776424806226878722993133915079290818103989486987627716274457728963503465074490803797344426216834315691776072637298394170664140690632612408136099346006005874866792689668145807018783278583214883055598826996059320062996061701034681496488925329670329597481230138956951208127330224437510604199252267466813634106687763547483421675915602512354334253176076520692741647428468275056869773316669841207164412297692100163698734525292681615817107793256558163103432212110919755521118465699697614384454785344423072680804001020069729894479286683369916396915133182658393765567875608546666684776717636260073037791293643598572383500665507204549770644189166866093054039831920718098323474645696379324929067252058254498067408254442612014736940570365857257290096969505538351326886287397471299708350571594094633040046768518586891631323247952776521356786466208597923055593677536913399130471444868462051484865629967674731698436228248904750351831369160278793947793402281166309708008117831831546630961090602392462546571091399435135879443952625634800835350592165989600035902665587338495669924778798016642484674483747819872467193542796740414973323561249191336292462360857954757362567425693458851129826662966326851866791643465015713606760418259053244015338658229398963696492999782375253817854151451822838705136858395179669748325928285389485019847514587510211430208119590947512781850109021225271206584558229213172080020662377556425432830381700486895925893260596454277984323202272402137979348547701139893704555333664963170866670710628665800852667539680556311898701482059402356078722945023026991839357344507385336638071787633444628622986315490066361595662490891994253207234151731661691123921827825492644037464438594643322579984319760771790440454741027424131279844422259889511972879284545869938261065026235502821788382893998128294006578067982915458631062173561400178446074264417332300284384607576677573336040067410619057868038730973486487842268506787892306752801062396431772640978695058246902530940307603042710114048498574951787865790413113203649323418088931394994331824420443468859746573786383438975147025600920991417842477330572778611279097620301799164728300715921667788643154419482796638431165461715648614541742368053270503507997282776179078139318658676726470192693808156430504523518957818549998878110827014206042003340949539532504937612173491526409672064891034992300441168596814611468460579643073540433153425845803446196832367054032618452444497817828414410720569289689634357646008776011168278317494756701643220737794298002207772815121648467212401713076971607389750439552167687735484273971325514245918094007842685039944498955416163055301129860941897085999165709127787994470699165352631439803887890505700132356197992125454133865436540137935429206571878900135603264004074334080285514392335194367866532123756730138566900573553553602857389882751474804310349448652851603961349183024306407679825125244180541089956142282506260547843814546660748818791170470226815690865674697284945835407418277582062516594390315341600273757091957141449747926500740630146991691346237483708118629027981837706002054692424467382314776132233157196459311909893527792239711876317802714546775137072685120264743120960464335182550394974001830170415331275971174123728342034404722354742282790879055430826048998330315487855674124655020609517963827281105813322412966738345348062069568478761305805605837061332871243787753501955169772482349080575320076564509691255825011941026955225659515004587519281537277956369307836709936740094530361750808081361450966012640200368869088114004822191048273101844081699439744841003412138307835261729572319752333201953964079228310982959631518876726715693562715508847088921135491678255028334573023547510799193606076691486020471576326909974841284943943034780074436397942444654032584399440063145241657725849421952414573813163034653940689695972579100441666756127890316739669766644047642834464285699800583060265917718412876349883467679024329556581352588331265248484216167867241990851314713575328208467706860131242326961761831001384477573758704150571104350508532572711755780770211971801373014223530385767583788478789748711974155180055852354492591203843833689453267658681889169697106166031031809573148396580047553923847850017766461663623184090267561078556015635172114306153279747001376628419974600376144251744371220438790634518197648041707633006201942046756955051429518182192230562157702255667767097938220733144077362219491231316902970417490603149178398481775853246346244374069408951621962866254417148395607159177748089983426047725063505615500708794095828424066984099825888172966067166911138918529342938278268079003784008618615238703822268635583740911452480710109563702854673884888844826000500464697790100839161687899918955158269950015798356907187177122825671870580811986907643517998971408097018005301677944252220380819869723561396765012575252412829336386489081733124073458413276218061937341493245779433482692951459148441193295643677738754096804385031991917273617327020146685004982117235033298880929175499567836966722115572414301987598474557490851173214930167465888656184063266569958367856260778133520371546491086430811745587795208413216145218745612633983863356053945831266784150851705214760724784805888664627960016161847428452800667601556075215429242116384131544683507304944091888439810875053045977689588168916469120220877271661759537126856840082731761281169414365562512452639661462610910289906249607784927628024920329505729532957329530288886875821176343806053583461293177899048648816842573569698180594031250172937932717596992532259044404306955234358109476841668180601909287056305062333746983665744219058250050985025901532086106537439006624515901806289300266829011896923005305551439571737227806782043117951791102000633742761136877761551259158574853754538560282849403225043172517923868298180146642597250261809885106956998875805748655953938318515776797586416510069416257763968476630025139487055947868228995040162029344670202370221237353084398156866316757922044770953444210563742821677162329331460253524127906117838238207987018023283362018576988909790749859500781252919825228486836368977085413035104853990422197772448059938472650990725610418764971834410006090300992231628034358057479496094551204769764291066564940837998806267733250394103714798114281398718911450005765053619269995484985249556760522874499924749329122375271062028766452346855443129178203322516521976565002512029297667107353647317239150583270099558506623984143632590703936834574027867050776632592357394392428400997075558929400445323777248515687932046385057723965287959173539456200618308229849053405648424976230873627440682703986397475236368932753440727622050938317212044523533894463509094012903278156517050397072252917965525475919687866721479350454791042150507232006442961375474372142059160365113430950554050729309070111238080173111647075334206603020855118672505494518310488553711145871280697764244457310811588176741854830644186595901769543986246444832727426678021835209340274998181137608282357199823388255946379646911551699572499821191101991855797752988046634445526472689180938616761085684188010203967306102269267246591052591803265627989457008523550095972017089912964447343552060327282670243015538891175474815655084028518627669392151822634809427379596899591225656413706387645783435835444501401529295989046529444276573866522058357689677984722568486644880617593944550113353811514281845820989650265941726496454677512348169845209700861232368483891496269076474716966756723392039448296011891352037385452511862024737742718312174176739215680935694345884030828793112370365742375437940333280072773356032043679248671742805609674067227726393261184635553565320418273027880196426148283359625547893515634146475207106769931584355126037379355076255021797801715086739777578583301319749096404380978408611018288796228791527020802398755221898887306853428672466317441531970331616910872481476908791641381845265169662751880725099539144822717052719448225693163537712586866794180740085620547063132133971010124711445661999598331158450374874972542334394166186460493815130754940478248445134518467453837694224255546069374827544366188696891938990514911028893841183985821205401165411714991281910430475181460610064569165813941301360935977963313078358945435788758893310880468143666387968980091049334190042756741890334789034705844160462222718903878848248710790716971579667988418102655033512595029951738601458600261473435600146594917836319726676604670766607710013882145930559095583298044967777030145192384382685510157101211868881349303031675310942686601607623504305319122268012396837128681808375774327540132215015895976522149842886574660844023261486338147389833553804189017914500677808631736810461197368482702471941236003099871416353454871913073803193357524828702089312353040878894356799154544694921945048500861245040347017287551677299698087280452395450547093114517257348865542956321157755310542696014360558843567596428443845230841621233541099781129299771149748247823388636998552785209477114263023854601438416086950426314962866421057373541868812568681227489457026561516510042280847960163478898965593497319804072430267498735563636487018887924406815550702062362906387289299772535342369241238777030204074436019087698266742412837664567182405620209573760791824660282322854179621569448507894002290687142372227555045222504779391711029815635262998329719668596334244067923270787735564998661753951727852264836212034818255217595355520635261118789493017703692776490348183123960067266155315757974013291635252343470400488357420070385385685444145934590349572514344944507719618225617989640938076565609231223788823115512977809771587734278922404228249624181210879930391929614262629731691583460978313453332184690590054014806888697521989968262022110339703162342469375660249294121608175066409405159690399437601263401045383062836855166741938424143435564162075307696751640146013251510730168924858886723730687935310319713119338291943779982399121097790413825222176304682115499431730872721935828803977955758546219938911199791914432016740832189180389552812248505806334023804116509578270780239618820986269556483506732953834879507436112423978204987051725407695075030911512674650132675629625745937070345141197778919996403393500367432399154106707084856990289066949973668826118523577196575229612299880006117972690751954139942397943736240277395459926283966084129605706041579337555780062699430415076129431317262564525901402269089873552076410708840679351027861700533492683953308126100001691644910164130275617047255342588060074689290233262011777079428279916349829256046783881568190572881451635876853266606718889071652154365489361383447399514440871730821746306862064177248680066787221232078733963182655031909783628559168777106257748886421345963485822342786996552211682226719611068325085023825154751153598816701086850363845672535924207384307490251086620562341583840752613215253056503240000271762248599620296492011333067708001279026830349126992037450395868374626974366187704314306735797901891384398071866067969537058239212378326224895140779355946520709302130872874507606029426859751556509334369567046722944356243229709129779583593891862847929028475064043522519065627852820280646759437449193816161536813434262975845528055365374024288245625022994445509134558425493321915555181125582221273272216379562916403328315193007504460062400431947771331575123306366772267242829666604186852012126055353162344864542190105328923027101131357312987281985682267885773608840988792093952240254056405249929769973748227956510976592224068537294451509939461517527929365399978855825856589420909695079458601829229750881187894568710556925807049601420457345054157935829339599228869105852799496710546207157906717974885159944910637919220752403467881210042872669042945826462003160967258867784305884911827892169283558125021163997750869978035639827135064095188154273810519682640988370307169527396599683464802377114234911458915321509319381841809838464073237256315824321031582470221612772942492801314260750033372293665998334021074815675562520229367641413241243730918293761898073470925717321170435923963171221414128309494987158055648125598628125879779676777536937054940117121724653096635023655751495483071409857579196739924580753670430150531717237233642699974504179910365983930987918374070938892982980683708691615526870095561891022733857894341667565568359084451019908285591283442772925059640600240880977487582232685265778078346680288779321396522784481287107676083822330991595270801906003291282672600565761513463990919288744890500864380318901075792683643711730770388539982219028426431493764934695545148268284858314912180886704297575788559152467762994420055770792040293401519235976556497750271000361546379593307940308871002544547535218807795346925442449227142975870735941073655887150962780119992477348805246293194388062172912099656701964018033014476635959944517483353322686629430211884651608141684094845409312014944446595583266824334981439589595509950221099034517210368942209307759601957314082259530784279888745348971416366367763043857989077796784502390840290583421520485084704798435127994615025530950541642648325010913730094572191633979809759749971013470344958898248052913426733773438330887176485758976719233446072540730261057488226617559854662856048564276707191888709771552250693241857788608448284089134722186695667734814721170984934280090611103868975092921104545090325195728649106824253948692697658968988586484017159239123384596099676479321512938172324802014798097029409992824654885879809481096952960368500205188742623039327170078649056031657331928763301458879621189517686053563922978594985556051743398630860272819562349671377727647596464624084332061020697200190426419740678281243581012471727927615275615578194603248199672573902720380183567367921696745429605500645455202549356489349162797614074779882363850154760396210912298992928816257124558578047585857738331076495942633583679585534975650886202130023223114155646586117247470687501587921589667323801321353319657516876601360321696667445270877142335732198459658288096277851824074751050216601801080654852401850634221993728176835014251612709660484144709981422497435993955877807444481945740092203002596873011301657378106066953132954467177659977847029436090195776816805724083781981230097886663232226806228567030631230476854354291842787459471367460679165668266885789122339155699685489704728877034361336451797756213721836644785502687535719466904798542614400217281667790773559733633146772834753211661399461742334423984017580342364808994568668449452454527195782623687712652746940514831601007427487659491104598561758376945048464539695477822505289433953832167733123874964988420869488650406079095650733377184833064377841477667978297309732565503799780485023254237893259709983538780920725029218228494707518999490921766219948641497303380691884904203946329541867987495354060006060630606375431154228309844581810690366899219716345262337062979548770656892902200870447833444238262041054399525367939182142163941435658127663150205036154501225365385684326909112601999659763999113374873884474233869475824639149679785479900481080383563059408623140993487628125748083751595513237116094315711564817788628035904912213731315951321296332692992420059849492656490973060720821597848108017759242553524476258285926724007971386275511532219003474973988933370824866432512017962205284999562286123620136780534772014438737607037331826456201192662436744265199465466615025754789333870443442715755757783410118070850735619345214162714103515461394898910264244911227691962526022640747287966694749149045063599225225342063825482655724434094939684361885762964258838187646845524323693039537963430678506453761788021311602264201109768527174915116025365695531327101383927427321766877569252513504312110821720690559556048000071760290837363759290917715745578884426104210965605653597399243334765753179383953709828057833089039389122957634510561487315162696515138773937553105217026016006315190708249068758474020897050534211805012334139580699713896542656590958791900175513451837128364230185728121806939387190857194437364196291890715936485239005041826327493799497547506885289448028954587402308794413451783928785351298078567898392921185910116134064718819298261445451538265143589949421985727113970286697962083125088923354120821954002038914109485470412568723503495576112416327996749032581549909063209594476783176156310372545674340656971357255166251780963235049621421795941590534652691070055908779288773953770916836295642099260030633003725111966134103831619604308326141481417831898656183287934785818307681463896520275474916414574599376940109649040471024766725052188038442202475046470112349185876251736674078588956799606872844707009302835761878866752230572179044730242543466568513165171858410392453579918621756659619675487200927682407924550946456425018581861050479640485878556498171527852215866138145786684431423165854111154183298046745125410094230875960909508622034326478691693002949484326496950030066214997411546126389431731851054944372600112285072843179038608762434830375259948705145093578958684644281916192845692111431423792918933968238723502131588627469756695612317115599354729977840686326057261915388825267503837568080197886718757195839149080704460040221661443302193382388091734505962090277611772783454951751400448666442379046944382834875647690032323610421907702096620852231128458701105385139447683258124407102656327902416884886869418982707241534696187839353917726360586576050952225803228350989112738133789541702164570013206828489901529201092323391311999374255815377539205789723316868408460614407050965015585414496040481527428179802362984437210871474263242890028780644625941900942729250024817763404910573924863570231875202725476986425895842132122999790996980874351284707911046997378880488077337895349094510725155206782845591718426948189170419004061293529763895902053294650356604174572712596089265057315746216039082822715426889168120461169268578340827741788432717098733609522803875387571109000568516831392579128482282690148618507011510087096754172802577886328657702269797814187454606922510149103756705041436065411881080941803070471427412448432629978301209141240173694183526105371692628453254325480212904736654099003597631647809440351469078075306043129749090958229706957260809802509872038036264208047322672964172564515555466877911793485028973412315010657305155272462285628640162316765507397957515135613615067103727179538386310035890962145427729346920199979942583292682654893401208233165488409200036312599999447254348920244189525203045489202009216308211411462286345477724486554998778512031517007578865312636043022588179721988926358869520493662426276844961225132339993166252337706063339196767795151826503457519004263815002252182017405748922530196991095554816739992398128152126729963695046563292562846972738395639686574571114274760957197450318562742234769189181518884528840528712250147094178811385802377852050379675974856490268008989719366814854502554735737162892680816784857288986926542271195610250590799303372925817458042338393434183057964114208215127280719066185992773441904183546220547946298630925793829971308654033532345869103546156048878051526697484791071697942055926686200183033236812012216168820785320906524628746614393699729045854606144417948817044770527208771296715848364611189961655784393264849544865100233809246967308283333825895562687152397215076549565799914597888410519745350918844727845383960714909301414914461644589245369264239837401025307146981623087576968604619365612685677633010199421659308110042504809886208452470916176874081235591004033972950224925929043714121403898128716568500906510982210486463539483635380834483430449797235811847361413652936207660617963641893519878934699882774208456720821186974564109519202058125399391591991293777447965066101261611682731949421513676778810293561433686628422254380597062656670667239571991389450350226090192878451972695056030976938508202681463553198864787157596955594770946640841830649221638652564315133310514698292605481808242442594287643914925887186306008349247074053756586956570090953046929835114027411410585935644438218790674849991012403408376745220574741535793300473905819541782303424831322872880867444888112999883368991807911868123103595981322906641790141599892770374649994109448060019084040065444609180956424593726227102185037467474717673963524954725020536678586476645689948269777872595448508584402950105375449376806089303199215434854445578467828974770934768173606595724023559222463242636854549287724313812035040729648205164985129397827241777642893931073887201003149035839370422365999461619771889188588218909366884449120420257368660715280879529902084902734130095326152644383566206429596775624047130856778930548020024970098845884614881769801800849558304143118203894846182999865489512089512733307961696035731972333979451914824697615868346665851400484989783763067174420426409420569849564736993037886929092515875749210503657508046632167938975419385122826492003568104207032596147500577321965320304713883876497633268498065921907750286512734704882119796629860326177207476009460315427223231618647400232133363037446880409257973828343964282150074217464135123479304532090437957717827716856161914421808962869701574539138015258766942792903782262465689165730168733787474638444257393358679864458716265998505073837687015478141629534521442876287055242441866563799429290918484424562289282523257356647010174012839261075141648563927877866079901935298527250246773486369586706265585772606634396035699339212122111997015852395264319788272880459409217100343727388714291388197013933938797109199833368564761576021112004430470442893690982318462262120160498604357957440821521994557197107436482645014952525294829991987834191338865051467864366986410701569673199092697781844074583115124153588920620623159817664899146650674235444330275935480358461664873765030765633219920525238942049080673838271529933348646256395502340309299160347742658316354380538220618887646162064746384534312521496320694090145376494874840371010326761920654150418773565558783414336221462141352512396272322623616915492477723377650932841163481122047946386889631245225775467787469715847752645577636938789611338950976173514819438847599046044433074403095776437837764100839711444211131907327884148414047350556890456159113059376463745343651279381808618052774372947967547589377783900492788607767919231575271092820715247954816255158737784093003770690339430930904392747844826977876631073663625180574498146149383846103814305707944748780218568542615861083575141402082915091307885373349320037163050465403392878354037346338349099289514742224702566269974156932134359301931225843281219125629532729551240803320065942275026849891172647246074914743994488792709465985237976317559387439186616334688114409714281982670093280983390478752516496566312854271077223181740637467275614424280740906292887182162242150803802770253703920152960510272254801573597164480417978717091292058430021943791989356758852811917347404739255614762119090642130004612517596495017421358461127136693725609679885674648213616378485417839610706168782429637918626208840289137767330014596977245150013208394782840373681394449869039796401568309585677047252790266207359230437560487713518928089362240651999596797384328192130690865881327530104158541052754307937707613159963463868110977667404871484977495332821262804650413697241083588899490168795861153069212650683546281030462187926974326759530182708546247175743713559775698235126970855968497677829769877091712008758040248372314263183135697016783640829647761877590652241820895853893352815755838314805410776171340799333130530311312405577917940508777280525387876675742769312694671980205709127053219817578075696959027692949757148558856830888910523060567716450314870474555512607555051180438651050774882472109643551828786732030208569344205014707167994780287389125560700999402864134562982977287149588028807776698889680617751899986988886080647780127949756458467388831319756254293824213788476239847820118577891500074780265304189000553423293497792322006243603877901992475841407306027384422076005821770919297986387645085364174595639671848547570534562375048894589146149345255204406692208570492602275707502222144620607407926871569764899477122151140955616792113654280020322440286028249015159633748106857812333063310851165660476135153528052965500271625454311831326989129286658896477896891455138404528861125938225192272127349448978123115529207803991037865016766613547034098515044055584853867917734409017558746717704314042926758864447116668347651650244876654337969512593933536107643378783691700532438034319348448039125153941572247122086633142404024039741103090680023880550705772779337885431921203016066995657959461394993005033369587745933169052582465268087794874788127559666699748540573096890764796316357059944013900000784275418421109497095237169065336568499952916953939684345269182384969621889655367015820378062359020860150283519700281973082729460229895254333839650764896041466275381773246337468407875144106419015394805072408969511450120254455872971760953348061042977215529765834494241146564144359569094639597300485028848428424191299466852798564108523632223752079448309570183683046538732546388022066591425104687453271178225847724431642977250548498003501865051013718099785025908196015678505353591808577471529996607530071245001879171170318094762614586985925929542547670786228163782177735605305612759932201917969290609005101598751256051201008098520148500602162047644893129544868919938591281972601422130243365556543519553832375765376677738580090843965652658164840730809362962799611874121291978372780789493194735301675418343021956123992924202924899179859059849363464040796206889267215157023580279260774872696725641873557976137139361869214472333717914988407582800121939573587435256681544671544518510136586308996175142500959294157717555478835770044137552214781822977434680334729694538841975015650399697046625793880114992140120479953536064794049459282531770692079852550929411371389358168718261887742189849925965790190537708290746929156014068679249198797290176875591622300174877586747522326033683255584105519811326275508577008250177656861460484733661074662795356350907473696063250979822465258956252208000755176655971759545413355460744969049895662270890297278712902766452405924954887648854458244464031035305048340584437201795648603952426686869291544645957448796804413630349775525520080783189911173057725600071547313693420151412044574416819312972498847837966724533717824389594821377983952294007637615010734831454768658883131285107830445346100302214079423525468516025354371049404987641495705027019340116176741133360101914759715152576076622248993189319208243791905131997195032892719705328290510898149221052738091741744822508388366286064056355993158084077695418588067289032839044362001705924677423091448937752112701885906497100942641649797626980116682219479608345091111811197535890450092073786251738558920830604427854628382298547506710418928168859064645968773750090990228003040590795564747479452244800807135190111757474027771882267404165147198289630663087587316705978218632366318940647766844527690992626231630489493220665750194964851493886594436718568612553096282522817983949821950201852631747182219278416929804968638863557726934815846976707197942882084295405651826095246939837223187001792021936420497726041553123234156359739403755081591281926704348122871542896312046234162195112210091283455263855958167972915379771164377697463233855095828272227538525177770784320069527718041873698863294358851942743640813839187115796037544165279308779947952651293967139476304907418771441655097687743709116599896547917293416247433554504587881896835450625842506587491960467834175377920640234708698645269682131219281720631923342836370408964941833372264188780318427321795575438749086604933334412350185966958651607855177564022870648442292649942106736948049387111775775374963528709469295828469420412559570197033557432091574066232322572615954894617098596790306082753320718902560732423430217026227023968735046178949824109097926139629117440948538016435554059633022173826397172791263240905922344301088914657338845503627563473792641338578319963756545209435896991310625445133006621095624434292445333764600076504355778542059470940285109540126521983659656932676439752742386158165067467198329063368589160648107581599629091953224958318824185974003213097344187051023415597373540860879730512028624965105406059212475412121635776803153346555067990510192211530780102583184313384870574643925088797934719269287386693706303392119633640320658107078114661993190942889941186077908100771371590834645999879676841995716918099718855816595305022758498378555756111991847800135868849193052539728831197728910412078840739508879165563906906327473831577809947134053301856718152454515613793425428671713426936182826060915654810791738550164603807377178258359051343894345802488919476044323481950673577837965572732438337295469322599553623845415010105420280264369774516155819096201828675648034411693659311803801736420462599513497165524615848909362759576141385652274502072257503410038946948354101300336960231693304634880651915198243172068579761665926526504790682495524528206374454226911351200629034443852613601814806721509811939198737247602903569242058538333367772074486611790927738099953675365202327956631625816372935549503829068611955048221547419157295068719074793194151429524132197837974306206631531320899614778029630955072223529137627736252396692518160147005483957847559071434744745146101827811661254329974922898711183003043122460712015955745481405163427587471962311604610236536800068880645981731547100584343039581552540101371095269692930888821422436450646932626388509835180271623054009249153063308318497990060135127478222118506937548998009031986583415988239185913262077041892435429515980342101046172921613696713409268843842501300066461902483327936401533389177339246720694539410875413014471644788706709322134529987450092463683209799158247669900480817763463965770077069393557355265911997475636295343064800271000662136167541728500458183218737398779770711921070947140006549696828288785353377390443209528592743645634659560335085769805686646525251412048945556881540022762954440899922444648058163192936087557105764832908335890203296645647638613466086424358710090389423367139714065918004218304032840294872119465349454425041277869384995909891101661568177457416614967545172383564979162578926186110311157079851365072458312058630028801945812118855170574865243095624562966990237597935563089040542320531315551124015497661452893029034639207156396591584883729686285707851201381354201868907738667031726014769107439238081002802403493008766830804169823918887978659624488211572622508184677724612810806441583599676467159791701641029055002511870641997806566758927457689542453738725191708879793090233007383474522365241347209433718021840636294783886110884100483174268836395817868749079550206335036791968283282034553613765853300514491481406203724161059502211111393282296764244700308944006962976488882872536972487179282405163479887611877621747100923950559770655537660086472752744115238599474984966627081102004270345737624580150087589035564702917363391969898013842076465485292270355477307556065925253594524882057222882382063059250037499566922975903534073434101065555429143077690003710731980613186015788355655794460777891857813784575995258313784249282497491038677359312445184298159982982003425905468823323101428837194811020928925187717157710993515387898092270065628919457990666586452991798538176803548610792578221930937802336174150317961735410161283383120837878333692156809579567669253622445320769943926124567231933005644092354045196824623285942889480296704511714354336014877888147837804389682060395935054582746035839925501447865727652881363503915547553015491971233964972664880772483060365382738159466813524704582395515311763711968993266758587691130764340401310006717179685857635656621104014592314558532116249737551084464148099111809895304683163920881567021238478844864471084024992472798212054183655202097026708493146809358133885835421257911728132360850782085836631312182015987989420005322251517053111609611818913316485733402367928927162732373461287786812512981441928140099952658963642073114968275185729455553709815759214204335766580276694760560274283352452267990802881535349057003917118399202525321942117721845340894169663161488773345590173631688789156384940264265845650038752279036731624440986673223571002360131201617639081795131896481633726270017864836915615089131346144000244463211478838637644150426263670604834359343687785580305003129010535033117549869503341568295828377014200115365063214362593125840813074195737227533621518853476417519758981759666766114495871218503031237681601162814475376720382345960425580861843928034955536226229768057106101024667312321440308487867830437412795868822328953696958269154208760487555049838268180967492008663879181577220655145756623858488094587557810857819008058999577175117996464429054277221817147391210941266370114978937525156865960775634874348215002795902668373256270242407142870610034949136911553606507927993139060212341043197074858038530510584671502773846728866914527273267476908556620704939107801371954363707858454235813098945380152546032078940483952359864911882718482970072180755227994555998304621410425003274293615832156889143680648894565613766124756212103821095009380330985392334643806193844337155302208477223094744169033565330087682675322495068190950551033574615899828558698694688179824252550562494840872593117758484879045665844837511810570186242111053503884377716439996247337083555812805148958134790675986840269643878567926379973176154964769364836198496280246194739510087897552890454525463601804834926393783141160851962323431408205545647096880068111720490248348583778730635854312453735115278693746288896410063917278982796551970965899223970042484455486976363056338523116304421096832920976564023436021075318854573095031506997389319683694314655376784357501053558153532349103493541008146179249505764084699740435329384541430603246842072462910144399249369583833919473957236084813115115190902300956206142454563229026538994933108731499018418347970050014134858519011551419878126032501521646465771579809723644944285542279673899990850782821373613303260936228999847725573619462620739888066958452404378194963562382995859602915471148071706623931895359638747581752123863985752278555295499130820715982524195154585843252492650851707276812497521012536708086522772491493280390516959279915356828667483781657229091201752239763448102478800858239671061786921693951599245883826298450503217615469004702414485220670777765365714060115732663488737485814121078007890240124094948948146893954664218705653813339006068329886124002692908766077762961648089874886566577624317015206115056863725035404983159460970233646498686243433122545743452793921387454123447477580202104215102682967545867971728699080595153829259274228695980889126889288364017305704760987285084947958268581948050042140476907577347762747487977271728287001856622696856681925626554258956790678321820928388269737745506789036188845092284275434729732475746931505717354608324310432488328927036263650130025880694679366729837373179596038782039621486418710567466038535318902737006282480127342066607686727746650402769947714779329123995251062371479410138363772048702352592719068146713317437517600297914100994761960785557933065366875787934842242292455041989246300518146090101795729760178491711566136537438262877268325543134585459237781332568374559700513516945306409751573398072700382727034544565769059335521108768362970522950259262086167004255030725247273023325118900264452779954255206434873842890097862758546787591962790447182471713231753064101641592833128536492564282881628912041733486321068209033424803524814232112507920115362457064862021981315658330323374592843512218974559783134767274576110704476880791758648539631650980377336036052491689046341713747229629298877293847981781205218313371374974897152835745034298710087390166657484281201136368066727472092712433955033227870879939133178600295252496195064930485936485153657931625084229776393727318488124137057563728808763193382413949777678310181827048122733888573487295396249274075012886532189608284061085107596793781019026538437154262665140534146980161310248474042705274486195726188435159043274341873501196840802819036988541627535018209283808659115162808504778045594216245623448355010747268808556727634763006286945270813763735328519624597323156287483643746690998818370724918551210342400347432686077483833169605865392997304756644739973637268176391910730605202956747252770356731192819382908910315346033076537119872037215563658425783013629549384803917435233075610762844046755205449184336775280237482867130069926075074598221314943483684284022199195549439238274472674829971014023880563763400015069442174624717593989848108079356728459442062975674652055234856186189818670993445437655904890450138015125249508519574630236344874423805796805346214141633737622696491516126995092759194237574093721214928473139498407882923065939716788218579286675916757178615951291139347283874480750453961032796822769459809483776344425711994849301988368155308525241429687234247880017484534842643682194419313142631411543441411026776875984570879222446095046690688468108423839948641910091305248428253929095684796883789542136516559777481065269186195433854973932563304225649532044944141879375612872560972801279105095127260043094514416993170235258518423378066356594429555111379926949102935065996194550320651681594784074604592033842735509511108126364877503289104522322292404567400982374400151562033645276296035814402910261188040519130532517584584594267353016649211279603931473931916269326724630388044470800160405125776728710037727394067908166678355540872461664835582275490464308026178362721485853097175389738959462755063220346652674040339447340369973936797550920838168540753125891757378075717594501011551963527475376353607903951515046178931540939448923107816124434067880292091453654621345853986242898415355994837356790720687975081895395849334243836321131429114011722458162201677110754783519849897253208263568951604650164327452223641820649586489376342907590702749328827219168734660097789534409727687972032405125834090567481618634915226362304679038895451520219654824452825470218960325845131707084037003978741748988457508636052547631687700477538522364195524517048733483516721116059090177150101841603398106431921901517805039793169264680931868603359952429399040183681089642949161573080856829422744551171375945655417784813466038041605316445673694119517225268597803114202590105774082406276525918978709619730535030364072699730452095459390267689248252587961498129097412867048684678523721705342277721513245654886749673790373453726123759706342440338104695722526896353184582914358334347513984437132541819056933436474239515550456453925259253570953477802224759391793387643901783231320322389703467141975071906116473376673314988228060314818924716572641433012650581543208121427161549539482945789062889748341762029742704055733568034347032657634871428689667758103768833045384393316110701774249955733338893614915506810130062779901842938441450311995353937563618762344535037814635717673846304075714222656365852746659096947646775784091577858715165450494126427759327859064147622216635165030231033306740761922502650773825495330174598421073166496255421013893114488389092251335351571343770757360452566853022213478862574515442490967659801131165960754669935653874609156561032689624410209203865027963654775919386617499304881745670266458628052101384096937962040431586070608534949643688074753134201321123967799836038447854704109401499038447080425165296024183641443613123522184133375603209416978702084342750526002593548090402592245872745604897303119118394477909982588571912044401572860769204249025374383591632730205756266326324067344712074979731413286184860931520393503224603567563656336537107645827145735799853890018354092967832156479124159008259852704359577604944324690500959269929962211562867342291448618060336719630607085012917141720839532582377091587610275063006519424778688336102468889604795557988724746564584811642278461171143033692974487032763618914963046807659304361285480865800267249756242199689133269497837752173178703958099219125425500495912186947696648874623947686840089467035945369449390105733452925824269847770891980651753286547953265158753963130558145091318445502480619420585486453988896151006577012494516916419123914850049707511216485027290271570449284676338335250694558379221670024255761278538317024347501273594215906525539622932092308295550553810812835119477795050325698614094828198943990443101186604084927323656060290374324761725991842761865075041437848834820937237455927549227815798618761719767751494277046832129606453932370263913277859609069599446974716490168231215872296895908913708317109686774785518283257961302227633402291196793736050495668042822641042301476352534165136260902930562957927772464874354769288492281152854163901728345763296049435291795228946940816787813185430800377172781626733878585321915583674512088715975389636739626701520767182598404081727345834882803152094359732484485469278581944256179068893846573076381303208932720134920348213951516504086550283892642371590818132888769313593989420484308795874504331357135867567502820930936044976774824100398488444579741841547654243097743058538194626979276706365072181912404777909951076247188635861864539504342316786637371874457892449207831992612925819912784886409605343706525200552573304202629042005858401230544802984979947878969981556019189591111080529959014140241901399872101487321678791023505701753612593533064386707583987245618558905384071225089505147319491228501486103661666116977436654552994546900812551447494218540388361340019646012180126756577389645172494897340992895541729595855628321174774121918581917327413174571165101741587106724838887682595368693235143585257865189386112544921939023701529897882808177720116724475518447528328848582276449594866612048739673003560857370872471507744591933212982835384457553019699866246849120498673549713251901543249933176778592986092442331536543761500639719544235295325124364921421881023733729907365701550337736785415688382884021618830620149376889521474933283786912651521073721629265926598271086266428484955311157926837229472235621490036191001982205495875783906964471434388217600745161926140327771492947969993350445113257639112634805982060197815735997106715878219522782502734852917182052964217545530051451103159211124684123785540136876809233647705984398664203263970686906993782809326591022764171046433738155475675091625740773561162312798794832771728177762311176957474918613299516855613393944837365165284016492159514501813458030293145040538260497821305988412656423115017107160298477943408477549561714369125444139178647144269064684656521827471471121459533034664585284913215590663019279528924905983429455744762553673736840378124856444613494641930182891935986362103111927600120888240449769564590241096593921837311589380781913513223069227092036306448134309151726227351415277929855912140144769366565214787549512919030868271329302563219137244821973915869866879680650656004263217355945907327445615096860426318545932753826302557845038587141998330112527301292185292050878862125815298397851891612832816367097372893835819312435766309775095240568820385251676426388720966600741614403845418093303711323475430253694385921039642938240838818267968747354581395453502390935358854589184985278463968310220274569978554385702435698431528473319068222925248284889785341204624804329731549266003264984499783372342142080814968333656650906088176515389499482052471781832270936873198853325737412064886650138840956188469856123911052387931335493881274116285842311508979630801129567370515862481431208926629244973431191102622160540378223186699803214749032605330878724135809731582463519243640513767282513625174985902957642752239269618253225910655821348843362707436880926431368275048280981220434985457164910902434642769682738995184729933716949224607393961719585960508894919741030489946901377394187766280073408921584309499331088133345683340972484743611619481190746923915999295687068391454242155583178156351278323151778199488404702475347519749099106249262814460853065523066787363673143098866195614195507652406021585753452106954371905191198799426924620627243964750913989582795700438417914233445107226046035482485860553777437410401594690250500397346038149659877534873150917296998130140818448789575085584263102898761919064996407114100172503135265077756246919217088514700285866092025824158942861560505292651303270036908735002776624926452824414516841826983072232837182972647530749637480360376043439938003134280451095159050525704925201240457138116832009076916572459464565868601326224002730116097516391955203030844554036752308341120300365804492267548965412304416786705564294811129638612769735141493844373319184562218579690460623776553271483775114234617708862780860621199292781273101832896268620135413937835533311845781322084732871337587655247768083998996590712739595581417531286225718426062174564662259807064229247927006715908146960138630515013620602187011668318136193399577153931730579589798547921254912921746585087886394348550387763423085641598287065487843434146152432334125281554235853322615651522365184939195463438543921400728464553425102764131162251672800583227331491796679167475074169075558874705407748161481206618902563083976593902586256349992635574044895136461409060836887352224992924825579675828305944999494742054271182945426618955306597895312062831118111606773730682574240903539597024410288604838126516712423024244450126043301469702689435860678728581725394275261565636590366220255865663035246887911922675238525353033711704062465253745808993914964038596383811713691963946037793279414186494421140319459307237251960967377708418582083428312581096450573384910425498057773764910308420165669022211633978341249420661232273286429860291460775285115449068818324773693614499158240137685334688932383584694195524748914848256262931449131060064002406220813342230732859829353304948252344838275188193667308344134140010337616841628306815021798266480765559831133567661305424697853896973561861485090542060647427036542120271249558164539854328961937381263659973721552147775208458267708866840151256056907250216993900386332334572921857508153962389173922812327636375223255301970085917290833152161298581698304767793791813786345301241102280045000422895807340357145050574169441368654849231607442238983693961379585212953723052618739055827907911031772322104574696880940137677217011020351468302288283906671192980160145829243125283303046678031561080060548317394884566047644178889208887387972889714862599683711325214749065329055151178543941740775420129571986473817680999021566602063014566262972519373639000913920653586612533820047710574598240376151759500315340369942717348060042238856358201869534745196333975154734926264476043486111525475748446055455528626465197720215999308784756192937643426090523454883497436194962347898494613875765325329515003145395815745676277015863319548116650378546491156359554041778667832315617792539048769941233471597245779552180209468425278489514384986817360894670150655421732779657479466244111793105282587677580680555665405980603298135896414404416995469277232921649717380042314130247233785550324125604777276617257369460919156182563631282935520250431657263870635747666154696651499340209615570313672786364197554305461616039880327506095424947434294045687965003059396268383889147444452227062548168748143589872893368704004404408220403809724935547044922860152144360006520812847428438407514071296780374796927103695278805822692106020687130058312821244035106347877073086621618024303379661099698747361155852659101089867728963589108275685909165779820226498280173334533933182044700185523457682746072758990556323543665537135518615922207878915692277440198197019247078755955142482982474914594267742871338428807735219221716599647005462976647450395195634941111455613158170950051601606279720883878672022852529885891065591455258230224123022196414359496465341882201049012979173412380777951599493848414840079530979991854938394120909916577604707935550568149625127146194987024408001706470914451024578646873732009693037235465353283850418424687318783773651620891769812279223942096795480117132974506479224853879331718972149412233228075936503817901307768446210103600910608398789138509480470764804202202047883874351328830837952683138088552836532602116293122325385682300375358556792733090466642057390455771946807972950223324381446216896833828778242301894516046536738165898765779095392777400746132310177088021580882491712554440039695726259117061280197998198053037940887314963890012303400856635156882848162085780333315595727488898090985878936036611680473496287175202322977868083212499172459469187680416975503624833038171457727937684625141547606026358354934522561113310369759605357237951775381116547465823179879564196791237888591699029475751856219922321645971881909902750337702567449087173670032949012794918127740488962816250913820405950785184828636916823057113681092418411536318175206786386619915649429397220978716521514892045292211677105630987893119238083207769298312508117825447003517447116601575243803749773874697986212361153732227944216533779390733592768792393953285719888551600936496191659398175060783459020925594423160865876252832123136012974953102367630661811539909896509504420365617108293390920541140205975138515478122620827696116579434687814015026252066031275878302126794940705406126540127474254089234501351634307773126490926717692308637542041768253552594125673991179800973336453095012985383009934803167693329411706072175086254973001009736425453815729918564406345919739707099721932023281522444873986315827651481870115550077507654809803237457792346171408838345861778253761392418937839850136761317286942915124897915087585734927258785353979697030516209665449188305693392843432013191302700753604358407343389229007074744560846338771500990863648162871859900396719466888544267525288387571087903258157234875386679210644621559711123228796196240955424236067949184924511985079806411274072681542216803116833709390814813476092315071659660962821138422184655507027344939404977529679170855732771992801049215174941858555738131419725772255910575440702369176778508421322947959376918098007166024174406569324421170291577455557515733732721042803095459389791473754533842789406540556271996497598658816708542808577190416157950675684879421127896484839582991798304633242688094595615506114474755472029494648850875567070674189545087834060147264468727995255035967738340970206165631866504525862643179915480360577100095862842358661270333685919847261750613117457430892474939141683499987869468729796085961196353822460708114067654585084112610738533974497153449701271582196692198151323942166208444038555703888594786808441682910684352710645550375641777821518667626015187396841128414280717450749469713578192661608591144541399674688548323351426538860698857916725668332352968428929486060609746794057798777275782727308715711189500174322028821772285198463732733998979196466809444705580564147349564961416708683497053297825803451272262134364530672508456162567304331234562666758095532943183214402214829693625208022127004633885611949456165072916466107422411067609159052228059440613453567765515164464655242656573945668454208685354873072000577822029571170121473173981717675902743277210911041468955743475152548410512228667377102510011075823813747812103504202177715739990946296292168774328534858702968516016476848642190367838081322597651243229140946771906624809237300577367629055384415112433210823582056993713604125627492127745414609318314493504365491570712350600849183561080503212799146413948001605288479079129364990424941006980724429280947539142832332084068774779899769336638279502213925597426454464253709610464091117268131173651545903402563136149512753525045799494008932571796591562142703171134569724676734550566403571382849364032583886085218582683803788020287096008905415344689946568712430710955192375081248377069240753431192160327666854116411083132476270500256107112405066202770944918974917361241803591617971685089303151394648277473467012123196298713912022169941160570991526012350664506669117580942284608389220471999353825336296725887324047351644715147088913690537215145896472832056579299496601025461074528832672392197219610671420385468058353626369366992798285702679851101450535124143694141413449423556144000079478039708173710104221842044487580080494570230812194391728567533066211292227452283185705366952589940748620571550305061052755442382417470310217777843094707750726080205623449078142006342843441173057487738671851352135387542557932060661789617205214131307845407188970896148683099922004925319175506594677796029491856717919448183235732084508401160537115795331791923741646772535224192335018475273070819346537941123512673765035988890722809939656708954746718819142189528472541296088993131846506120957354280328747917368527159182513070297051939506258351218649472746084571037479923220320554866574689113535148539390332031439656000914323391772840724766358390793120345808250784835344892754317886480604205260536260880454267788404651235041500596843352781284675679810090766016252810278881582753199677305177220035292959260441084838512098849741395703635465227721519314410433361745378988052331924454069123836139105382111434585155975972010448292269452906913053277223908057290417622455842747104140799498601647229403822554380008342316485695898563458167228229063637862135712847295472126483574402662783233238625975421475717693981370155801357330692835532958066244204617512770900063687040960150008954369783762258002517792129189563997194160898372095331010657380567368287623102047645526643791095767701136525057478631324237302249662879035260747597644183916110299044876879675160965714150119240723262768563427687211590537529694723994172507927929090934892128890710418078804522192717136366044796093211172009800267458853202456507839974467710717126787486292521038030664902451728057279264609609574973788555833123333281491282215225285608711380181756722082185904487546936872855817369872183892041954290336320601659170912630174517574021775983514753722459498368789761104770245544731552347104421949813625627735101023282822387265757075142965595466764657848992345254421112850566703410266358888218768564351725479069033872372445961234481585945658104495166501237305870763384028844478405065217924171133049817885876759498187654749127603936690075960177133289455224410836644514129180810287276305601366636821338380061371197328822325432168465548441511106731797845239689443658737655095611529708626122810037164032233883179476581858489352950132974592250864097088280604490549021303522354477030617537068135288143466046211421967060250396001447242845322976425456947535123871371460587729982169665808901983475964864893179217620936615460282283740527371072288931714714018335748485125293550742695223711962467678857925344024237163856854562297860301084926120602609769043609402733952521772076844031264251100903357643769860115747102848652965052966880855196149959129171339370008356254397815086229106755910267785695421914278362201024870857731190828462355528836424045908336828369938884626023667981829516751705151773871183693378160041992877423044230743169631503039256507944150220614789668716287638967412050498170759540131273780661099754814724449934625435905784366584960345751196508474476543714040597780025425128046632485505163542168414724624446777429200644371479250255202716708384751433083484363444482415467217096989823060320845488992339612531746066154714291465649394794908047106029300711237647955673639103254718424868563166460745129506332186499354281339679900980771788770938301212384525435392217715525120351267290647650463834890635421403451503627917209363324379640477514342648188118722350290365405188751584035957791696546651550147258986462368419478107040507484627551245517374940845351581941815393481969570491094344307024816097077809485582199255839662782498804575976981294288481872011319526346960791650250695359934192893986982003459293032515100976431667173837516836531373410422218995550136993715168323976085988304557398071965973824670101674941862742621431712568784130050863088934641969483836027852265711937748979849098599874432182212376859013070691827032634184806872470488270290296070146867892477680975584094114019287670570469055031248819572857623401448105408876359350625618637556783675563196279206888278891044921418036830953833407307716151964563296197829547642791806465238585286428930374755764483595252482442209781424307205056247973995048872782015538000294890179804560010198839338046138429088744762979139219350372434998689352815027474377871117670939010032679899566895034968254938977576010504148931259443842074506117408145437951331888572610342987003620206188134988883243854038405137036138845979876004841179509572677115100510157546677716195527609443470085426922904272022553083358252512150146222604500242768137760486600011335817208660235041823317660268865611956347332290814140465940569264949734004385761882836104759157768649746022367499144479131384712361996707775682028885635810886089797930659852966403136578308177755185483996478132947673294022276589240665574407228455842274048328119979932560893954464732784644803634651044145188415349672409926192592465680167481414235424235472819855805835093336792765934112428748207686816345934090597057863725007523538131660215085187909442695359943266360763041081984236308030949084196202278435304388760105764829523455279665682782962497057856045994335260539659025716091797194466563557866143282054855822926535634058320755133000236734592771850487380436357377522047991087447167631839066541045580879711699357822721998769348252265590245585803077065284351531612959379291828870146333976884405754146618318702745764031913909252389125487669825802498480559821156060685881591893176098633980460034298965840671408325936940093105232847819043516886620757917793403065734056204122815363690575382479147734641493492581605042385659292873576671628484339164849715961030062364613674035031269882890811547086822613828829783422961765475941619759895543649498024392906816530746687681646190426405803554070095731724608324221330930920870575349538526365652727790906618562366588173588980523800854049402065112378178018845147037759517419494152387371418003164907019422477177397918294427973219772731921276385861248809870277696838963522468060750349592890193400829718951059100451592449373927160568642140252358726288319089089176464920576121705934801523623092122598082846940061091337734502135678716174586127213113062874165721002520892514010407761634157829478418384523739408669603493969020742888750966788740033155460320987948662228275742879049022641628348379091455498064473731864213170962397507745205569853818605332290981790642100088979836090107555430455675978737991053675588769260674663676548747188782589515450444404653485123164505999491867159924771133371572439336627225562207594270351505489581147764729581621149687503244597607319856739450450401160139920085615475770413593693404958122143808047596576732113879536859169146097214451465509022649694622967076766869458282640538084840547719042235082191147769025761242653943385626992868094887680585732474049067141460561768778225905485489418860940761889134815800049600752008771506496696230105773653691658452839280037177524394284275638320890550822480156992184825121566433250602486182923982261980650518737736589876516724113215442321462116160037432452925336725946297186922623084252706728154766781896211926878432299480616471737000968331217484023265649241573428436164726591359157028218250894003855898068974111860430349549529769382429702494013440831799076603157604758649039622910938952970803166101920295866960473628555873070095619487569191765477107981684962632494807123467429332302265814009299665268874396121141886062589412038698387027235097997797886278459622373040036043023810971015109213662734316184034575753976596663491851342130595328814664357300922648955773936677787002459994968570521753764532383622393448668047570824448046552630464118145806570713807771974606556107054243860581705786132355664454617834074381248812715964042953842435123327278791036256704160058084748943922673357269863364732915965588793313836737417322381863415478056141376482797167638444176656106172091428525305651095588154188945454563546640067220485286041305811266533247733587232466142342725258719962826461608946355236564100071753050886132649898861750954044327032350644476382575767359844971934669796248697080599925321807695229598199879861889460321255468888546734337959570871865687999765682681723268839407305395691707651370171993282146699851909824750353636160979350257551054780605990419823765345225410751176607639974541522073669696158803345931272067713330004931167158392808541169737865170778239657769106134634027872540873930878844291663296914052566873764915646083686561197808638750210379540036394572049232012440188089371149186758202292311088148588208246918324574172367887552966565529705606099827086481063810742146635301936828379876360805766554387323070992640314221718795167717892275120968162330841278880693134894695250134264601114233248892410908755493332014121239959144682742746615284529400415132235340262565992684823996882089181803931178197521974522017786916314930009574835984780009812305218055322538831722676086959309867372865866483749971454740429827656224506049078011459031887716569937694411735633368509917136564886409208564144951165142949873412794747293743864220087136722854852760013458949928924572942603611375859356340831304381063403789066396295946434782659024388096254120151762145655544345416719550258242241158909678241847310980129275109714108358198549435868283759818251369124211120794842924988072627687192661200012021956304145957829414424580707771615030109047499174681963162606568958178582888255636808091730729689548236021706981661456575139485257415668938236508240222596686305738550199558745217887165970824405224500259538457845701211148248985605307037437299017026487458260055486777578037585346414203845741477399891341501364512837038862332389390262711281731990440987730228818015369402314955253975982607184203410981899591288992962754083336008153616795890252945033172783989604034466872470482798195556661447915090661176572666391662546607772240197288181230087497349641921409776350970036719709845529544544899141412221824445893443635909818754584375683295421366779528813643624928518790098887893839554225562888361954058066830958832342295373759271633168709372165739186160309589797854893072090067908106722501631986075141030180297470718429043091670921536249060793201615671424449084020661274797145837575270265065548419130511443098779748275963852096658184417065816303318019640355153749954129909430909227493283738464284662183104171943528565203267248671442339835595652792920815571162709891619219232980589260575018631777819723574994278088462230053976476133308787271521033574896627735752866184669097720562816949355703273880419001581407355389990386571663060872701250963365552800147131984917527727594040312842825186347503834340895093807591333207677223608494664208183733566293470393470700467755535008066181129800163228965059011729221559916115630718214862251792598408043814483676702076505092091431533891990335097397458934655369568866712719041417422935468442620520627790584166161166279537608589661560593325598008094401214997002218794422524167955926822221151783996097146093772943291991265933648882024000785994788012099830212457794439244979287199491276947610530715292943930238693663947590177726162788256512442867016206730458215295455255172686675474234871202318070860964777067469848191579859915243741299813594643454838278189590255482743608201118361753044526243745064496812089750145608849986006109609132133775728277281149590387762702049924550758355928120578638200245744604084535824040700165777253774213835172265588947736800278523115963844212375652411379800683585137432646125626498594790867856651668874687415895357763941303245183797116236342048887803916033195274395100581927773835149227834997510823348095403198086703216737333446867638560272329245095929200994043735612435124763727447529269352007128832544180651186560668690583672715609300966725691678954418650787195085843507235527631546328170762986867693239602269386460577971001908131028591575072492179885376771317865360549908507948146904286388414959734273863526526865697790345501307200033273308208455374506973172575506434758790012544447233046961944875379031632863773894790172494695520070214676161139336939865763079868346289068848444468684749245929264900493494593107454914786971440172210550117204203558742639808619350046993576406195834221801364809247014684737718945628840519614773666561392438979478332949646114850838679263916552442946304014790329222094682142185572891301236331776598495336040539698247116606074264516540534060966886251016812104680868582726722954986153734134954189710949290218921484517170289536751212811384652408363998103576148332723815308235596285170717855236996392965142844630965796595846928487290952287938700721459222968863379348224850175696632645445877973824789322550598317638350422987108636377526620439937580156681473702391444032452177148675739224474500735394143578031367578326968334112316903775154437258136300861026630667942683160326862647831920248043506641193226769604397837632771604897854390947331427095922620383972192521605786445741371135093030768659738448153098688437323489768724804062745729970431726822679876488080020272205896884804064564887469841133020078650998089856488536853149477452399872678853032473055186216776539804619477787691852741684456842576150409829144331922497016727380933946373744629736280786222658593843741048361750938714756036281843230305739395299797872649298929046331599862511819188130559098203338821055938760125444600736422571280048678860153824689346205523177444049670337243542858734787291498464254556684267245836414176834876267651311628838287433939120226963319957380067423136302981211803022431330456125074287857917011489528234835949513935655630609046766640330044618134218149092827968351385814737180234056577780797648478628829891118211637008322852150867455207092454961168497465138522928176095041856547457378772729681953691533341309078500066101912601650371564460007503073506033761232623982555123513519559414920645075121715616077951543955083934680918899436275241506082929961832838399579986405773114436268331806980238702960075416215345079612615075306736001057120958042992813169006701348577618633635544823300774785242644114546769698852353606726960113083808810102848823762039890564575334292273906877446815940750496015207050339936894531225730783169875936395585920786499921249672687588712931613637930365278682989943037012197973028063911306527406599214769599597705554284446039005004431328683633099930039574123988490295283231194783581066825081297888454775978102650503543894592530562061195981189802521095775689050072729632404801901897538848453882838209850573492544478243100402882596034554097954922154556929598718817234076198223527124523748115705724967164700826394430117753596880439544910448588812522911592004509007110377504245524939501181375500219337600176242036712252154800064724113718684382584047879310225791094885120563575554914064329262925367101649862231145443695923561647520103960744240592757500259511201046249080057454874117766262594245742354381740644929627336826699692484309307868756331366010893682434288085620737578593815820482172948771476623783415192039897839581543336264582702568318625274732079034512799974162599458768086358832697308404194432338648844931812379761012955197908544153224174246596855349196265123129738578352265239155428167708265670682757951770945632218300863024040692579766928505906394855303072218865859045272169291570570352251184665090102753922303788459034279233255513617309208776289330358986398599162927091160535551048729052053027523717105638231208164190823215440386533263802905761458353672076111051873374501487974786899926060581367372238692454432135180694983062765529212084597210413509157133962729539496193339101334487565267612332757390269762113460200887650049471135041461726032827056467950853182074065788781073757314733503892551391687124141616675653006564825333502780746557953572099874171675277728614770230048392873705694580737321938450613294448498345073859687232224192028601699248410530464021788070363915281457451171916958680909906921523181430734486385726903150141838666509762150087236526925892528389612146753638722192831259688551164390165956678651199594429239629310126696277138522002371342103810577115653260115741971731734329174556453793397433226629285497579714934608672599270022985788126627635296482609587276865393871432474927577561586653853057630646169600349480725309586793047185530595260544948411957207648571549725067315943494922322482470598682732264186838347366999325438244847721852659450754894623418818625418518390311216080830961743106169314728490528925462145615997703775778437930182999261846912621160737338102929880509567273157611994835544886675001652353714538348310742626050378036529275955917554903580258996314145291130032982521580723070822324807525096086215542529397609045528176419996795950543400096895222121862742737600787222991276271383800703525929395892282147636376724213911407132381023951379155180790288856680313881982629653913774829735616285977706556033672583496490829750927211540183204671873478775057887750948601342527512729898819341473544448390198089945488488404869027630611196886441058253368881217646512719942156470950743142867505307427931314289710605505192236027141009951029112000579009161197026181385482520390702921947350462273438903588770871798321162369781848253763366703345313138968712318583476973751127658241320866845857417636023832428777338216625882702083034620691373843487987610036655123620925913846680405422100860767196182704061339918766412685920420463469797264391019765910252542619842972574647137681192009727229454444722654170370872957956712822572563452542320224145314836174598472680455018512965912797481574858463232075740966470338169927993648184276267188571416452254350217744024493658989165114320510517529172743588112227086885593491706041278454661231168960848340445105529440319898276660216023735109196864390296339382220211461502229153071208963065318785678126861398507679151657822218604710074903983926760769691868762634861068135844174217120479852914736926983480240569396089001500994514913650272229373270975293133962215308270035563158926414601957259007666016523995752243462509909470970765323369079588179508982603625179634759547687311139883138656603130145345096255920191437913122199216262276156098731567489679656150606816395259913182783325047717814585459837097524974282685875622606956408783149657205104180220693166386900485284756380945721852138604495322908714446435812322136971437875982012622410777387110134185940194101029567053110894536864981600230078875354730928533811928658234295617811364134114985201675571745716639036368877118499618969484241363735354846243896143760185166133598399098105441738856080074868633629264979303041960693873607637011637103460720062157017590337165901179391483333882188772216793435751123592682563242900795550546264870795446591178274451587544138882936643646729199960248831255530564346781386425331311050195410210852976391672600629465331057900130016669687980394894010829027383772281752785688909277258778701652170803808108252800660047203432344290393997337495126334823754166638812879188043395171528580926735539907538946212734700778623264153945257245036429941140651965591748166039014444769962203001215325672121223772768549913692759105332324998228495012493910373548255962260733991659892713184202507593142547573164957594467654987611040227225283318926409008370857867706265270772056176013891430419352777938720090622104445544503972474073139174097127928947723468002840404357911760211605051732283857380905589186064539259092958425430445546806702985726348438501456044922023988016837208016600322503698538757618088828682926123448450991468966048671985911454779459532620569803195259701129308744501758865438340882728306260723828612268996750823239801001368409715844922047548669901372285589473335346656061343885551266987486378174635156835836721119056573165204047486095660853607407586682337806597494990454339217798061610304716803324149617490428893731902673747708678527733375938230390258828573268548870553701771583540363972180753309407623841732709787223881221778608245420789717516086175617945620547716875128320430982204320770588631174706697290095497224108278402519964826542799048707351309186773033487609204124825032645785325406540251359021090654118173717525402453709929029779072788730522369087178749505940181014078674024139907316404885508139219189912816616638350424950403461410063803410534930379844231702315278199107346955691601066929496674428972236586103384895520323047931907008553244507032675112050065288967806049103158213130614326709870116804888294542126429103744067831723673250530723416806996832085665558250357967778507899226946943031794626289792847523373276920985396459599815988592155738466769968415929630429471795061801591837021887437962937471877585788219008775893730873278991845484433060930844007779523835567170599072790246606615411849914899637187993540971999059304094102712459644500739633561481450642352795395641795896763506096248074723092502604192332381220523398873797249869182609133639520042071710730695372145393508545947575610968661205614925752023385915629799255561268173747481724468647998516047451343568961964575716987973029870162055069978198170180394702189724872178083838776050001872310412150041445161237777242367292701971895633095396357770648713341644948814927005599129107098299121873713455510523619083578334676894016551804891517358242165768239025577939720136197349296497630142266425592842101021606298620179311697069316564959858132837841818010231078431569742318254196594884476836735830533689918921606547651924327669719265275444725686257171940371617685493213851651553660922791313678060690970787263900508266581056453132926590128423424133666577139365874326093551591848462093855158129766114086832565524686505447359098157291117920288535856538020479238367717913220927718855365201794038710114608353578282062173418028413922506330076258888066789035262418780234803437581675232272389675317354220166075119443135999459855710873078461078588797504957725857789103451910054983216968715715522251025305462375116773621210485396232618431475905401047556778244496614099588782670669370993214103004009464989404025513450053639940980048865386820008187680922509762889752193156916920767347300593210446580972199314916056895011103250022952097269344318607943799233445790738734758874441797493718469297845246535837027796235725477757967226608484977892468187883977400992851692307819412376081001132072360167673025636338641042856640580843944343529665924319654249065930148410299434788736942913701148005512689846334897289421300272577095769375926506923067865128006454747635037170284249067140059765295793383679786038232154908575456487285009283453493996238503573199332999277596134459189455609834897697808376711154317670241590738012567463572576064125181395974743162497458346666711501853004112375967701403299305543267085571001813375300036105647170772854330338898206802190524792300054072952870114190444201407523301908305593253988122825983498082542354338578901376596374175206276184563295888228083391681478236648705470352482032630706443789802042272949160099832637473981567764902669111009778977372415979373174551086388290266520682700452034181654495980454266412799365025018564626901395558619580349240735592168084748370619143671216739575862891603357082295928898492956252234440848840633492312172680902810770693038934636942439620072587614293003205910952867004536397043095980909606550521057151730660299352714183025153729196711598580042965758323435823886382116381346153588850894016393503820951490052834005555688107583100328530362641472695998999255072796939924555357876530800038632919412931315014095800607192439664781818749705623673744255404860957938855349424898931808530451634150170386184922566685105292098422272069161764072907626881964292937114747469977612895491546856835346678372331929238747376214646630779215078765416470206736647726263528135812128709453139362771261472526643942468390771955899192866839736326436650912690805387407950635332633095347958286982976961877871189785553941016191835144127223307656960129114335737597306502466702836672953399323432935419476711502743391081036095696730700976695431811999303175558862817381686369559371496841952589878657004970285300403878425236883119210773972303316013231154133747705471816974717917749244746132514340384857114009680107150841520024002333330489127183595149040431213832525881776299506670155837602249304208674543867977107417139359948072509836455070294086220663972215076208235563249506695774419757573101235678380299939470611725175359484546851586509722354864921945370753944115899889491599092092841872443253922811283529942084835898879300655733050312911543297437434374663702143140369374273145860755915208683495727002095877798959169873100677143834789016675069386451304769044989894208020016209862373950095720988591804926992125833585113551856339799761241323600055107259662452380837223109118049368698142855761590808929227339173136582914453523340125139082355012037645151414523278376008722290157055629233846620235822100345082734298762907276128025837283694709068530432220977166973683139454789517200692618631550644702565386560107012609672721320342603701209777976654434975007981537700101970608190301781924103839983368072404593157119569944273224527754835613179076854319548074336499591114685904858748206875955455719722370800879951507298044092296124372186083000093544010378239280730224123790451209492879432132881941754027057930537249205374607915218317703526572492906292608893210113919697753750410844972329292927449612439280884421637374837936680601856887883273401179508514301314401001640305473145540148644866346229121665401705912434370973299426334313218886758858839506946973162099845576587574358260471749497823867725229567930103748930807207717370840497550862468008315019734440642608324650300378033558937758433333533525873199018851101793607028927506846906146012167682924532946025307751874271790685267682213184758637170687355460941746457491346815985908910282478208653179234937933963481203538793848705330567907988329457534029502221862895507896030816736546605404121521027487438345674402415938995243541819213990256885348049435852016698773705402060457036166195571240400358512167676581821624871804876552477307576043026699087855036952239670481778247204130963698661764737263250509455440830938661820551049994455596228094839416851253860267445323994961226443142262591544510584586688574724777676476584998010884335606061655428170914453362680079431260072517861182818048051708504325758731292722507390770696633323999381076331426329849812325538815603651075377461740048982437627132728108706808024435861330738151981245323733797504560666834660847185903109425402358444649601002305364375933155764843454891189346711274462598600990615638227982616456830639000783506547337231803708256868631096008847561072039964920145946640493746234517459497640989901767157357268891206325198027438031303345695442164816107424183821511525096330278025151797111187901521900972673765811448187195915252021712587639385635256203126084164236796608790138743849168079669074410021171473947542764186078928617049911215535029708133153396613166334038805229078839321084713970464341196541222333087447278958730571133609999166908289176863583448883791550115492328234568567442801331594222507180228266122321371359766869021332733940418294004555876910988869513603683075447533591789091475288309287848795277675527636450626713989362108355204490443510684043415820284925570582789476900450211493507391649991313450630423112404020858131469685799565403927184550987325171664095558114799181722804312237766842480841153383153551074469819719236361680590331541050812197767868981602790005000246238427368737699814587066318071657553818457154343995603735585541680797731255820824317719646364652482735887715852782950044593255489364470977174513051852263793141999778839445836352342800733225375132356345370233919412962402386201318685949753835917451533181363677571121890767627496814847554390658073373597837523624938165106061973403014718841456027413498527651901724942961467188303377690780021681556639713380676091648987813956053148378164677509113805471422692008267997312893330422257653994398987891556995480348882016786812064043558566124861135624869070984636202061569199597931706017805868714335458293832715304448151770248163765979807565928556355247564881309906326381616346351777826105659949257460544945870843612791475976880278543187026276479803371510028742157943879177941287607111447948725288386225083620143379827716518946778306017425328178441274650214607725403987808139972676211029699710120143142057681227873277855116536671695956028305409770471541510954087795205572174956570656716311036968411622624986491794419709523370735437096927333794616093709681852447090030846065762530280797985209726602095838418594433875592442337605977069485329035130143954082980376560580108161185180768794669585824809159063675143353711228325109645543193199046655358584045564774740467061451938702326744755748300845954249710405621589082699897990574295863841267074666399828364093358953298873891593954742760454990358235856456893558670143320231516970360750080925508188510370519022503866046951179973664992913662516879807532215559473518574460794068369844291708698523005657773426467195360067920670807029312283124574385463682340701484754688311133967577675261219338103862058599605565182520828372638054667570752257136614072795400515625763193317351492261138574891878747833661146118600608718443427632852838614826377461860839895264441733263296687049491478507349015597866320429547486281853307329527984348518079257368946242041909691812472640809711088359663457364245375047479901514100280474537475360187564282051681350566578382454416502529643249245605365818522006846359983758827839163380248076331068844437177643416135404265527084109373306011386094284136259212898564113528292716585647724852184237070239767225626959579671903219209135724445627257269610021835297280795242967570032070101881180374687658977750909735893608874764792314844842945317482633564652440424830521809035598085285950741984003939412269693136911528010804641744397811818835727568656992970376529079151593690557572077773331247059845542292810878204011181945727377955931432326417878227939415085149855695930469449004111612510160891196997768933889424033053565641889461199431182745768962995117038315695715609021196454544103696750068699213829527190074889239474731737608254033389188433691692863846264232255387998288534417273905404689403441250322335613475920208821785418618413251441201448184866709742295478348608381107570422902380678438588876117634574867529554532586964994322957479694057701262810107013294560364452770703164104037755247436506942831529438505678411691853694997441977029216069398167645756216459031326142691017438138872837464660588405213452780461824393434539813375155107807158139280184943243192250690751435336764629459995224766886278933737200258895169690481311088625107138232460745321595199980387364495677402856995885252680689843055420346649671961527289324263083936012524873094510668320256361068535093860199850061173204576353848186347691707894976011371698270601508018936210700301660785394548329534411310311327364142315011011838113205399116049344309452782853535134034113535387648254864635236085024754297571372370437471963009537603536877489010498813965674616414205306729124312807012689420101629891820611874697433335592356462545600719156914760967805506682651872923905945595463561068531215410753575057568814115274333616817368432645496381733164988003360519746706514999069052308858318863881890600700421456968358571311501556744427406130116393679372807742501275898882441862462265315136050957405879503125503047070737671165975734384259148005198108439892552813397363156520842874552866666899121350841362365313500187446340549934628014526233816945201610190221619978926891979514600346186206500393015592250723630011170018470566967018299732117025564602116849833057176294575129380488803780432022648383136513695760546598433934327854897382718001175052260021979873295750589123170241691004236414741904106829811881543370627118015551833679342011332329212176019472243240434834746131680108627414032873402344759629439987661157542666008346015329586962771796132839349602398491873088558677416935747103956209039671796456627525000180557834766721433034112738143981577091684343881726717048412292422702267962750870528175543564713239133182222109468027047275867665523994150720977078055058556570621796291894284814947447190890391460950487082091683066354838901955148369711333256178467275982389520147769490094901136125805744184932981633576462396050091435962244435465118149767005062779221224924044928757047984620284064326143435139745653205028414218830068506340296881121123684594635760053541540912157453859601561067001054919313374869196234067663364356252415464809071211732975831025167845380203826714219083502611177014392042781434850594296454342221750307206196668320192989426884582806734297826336266126441537256494303698013519786228707815760717347989547862891582716660829446330018662100972143361809944365497791556734937023417248704361199004086435115488661995086769396439764188182823778922640111683848008484864610274094443125368945026634378470085820281381752895131959652036984831716771761407964145265619771711070837319456936354220957145536319676363633422858615431081032505919622446509644857693674582811337400527649054053932542987674443040655315907229550963553892681242872626482702562372721102046400381073069343010848608931118607370798320913355008016741904604977427665675741719901240419851903856538831363560959649535089603329988251815732633598765033900866742993498046299031810684359045541798431834835882780685623750026339297200702337838469776254287718717691875216480875431872048179107973935277417947540917773162329105256004854075112442607979056724493963437912968846604165529795373608295498099465495678737476180305210855572017350390089547649823914236415217351566042981836200620086277540455434786795131878422779143519238124765341263391658819241918455895357652739705261611212854487641042876802373240066802836867646011835017819176204333765356815831772649583402011562747780116969639177555089777324199956961253229885342444599987850229306314485617801435563508648543667468385848956534477937242603513005815096977334929699681313881680730643491122792625022662048248447213090966292748831324273014914223211770367115476887122215952630140457063155951369939822268273867199750994879249893620955986055806635069498757909272207556372279459405056226226048726839517251837758713433492283822628436593125669497095427931070792736834249229791493418335602697150842496277879578575536503643076102354406742550849120776454603609778229323064206519839210090623746770634785956991590210601494182728260742724016249318548262197587005136705819697727265203850895399081002392179098593803156512298081555073679396475816161998257540470550632335012685876082716841930532938056357717351731792330281882996541767985299973174399531784776340742681492921454636205245853579560101759778503167587123365931360963004446009682682914004504994869285138278684579710552934314734479508484745810607657238600914387965959186964237730247182842079608476290739009065037266053088806504334969463716282294572240244648108971101349960478728228186134346280654595391191849778015000113965743493287156742056921277564668568764291163672422118557007285171258730784848826266015961191258250977842924664548606753371236610831738205086815195844764239300552519194116708234883525514487999681871685693969077434979488202730232557767550992305828285861209856921788496896952765561005893433881045646359282482410212345830437790362624197045036207784192721593319650028588826923635327867849703696731681257246866707668784349327031140713611125333942544374558265919532420102821622195923350519131047593325266612571529133067907484183484636779007875438775470500339689136003189653136008561277394136318583536443907518373052081691489724035910356426550100238498287958131186007898377968262599228783252971177484113535148312782505878619065328936915753496524113704434287453965100300874741584280919546072879163896205256087724234341998933516802825252481906544198000805975449896465469494649218277341404013664510014464277937632052137168952139871261843401886418336045165539152649509422005499368993551734000323063865077105658571432141947714305447457396971267819286138997340091405294315810530613879193192067618575870958496073932058270947600551277349544813929328176631824136481880749461991555309423183703227069043407298566632832112653957220060191274817562195745270757214103610668148973542113945141578031610068344924808880093121764139135134986463132083705168208219632154299581806158447156943225937467226914477901801845421565227548436068092119436708834183238357013951321795154453642913004705144932040048553838801171729032621114908348565778719097632785450771114605256742505544162077096768443755660087812478135685246670925218461277205691271056486879868767528796267751914354766908987957143753814283524746846167424405304897689748516905991051729561235326309449583927219451566049826754553654554214662335310496334700959565289327282045511032742687463782917649638916212854407370696285932580729174624756537062161078060142462325892386008023155968850974952101535039289361886886965629556567532143595073720806685763014407254958864005837927872766550930315263433265393326100344729852469362757488043321145831431705703512611538367557150213362655651318844559850017613426617540624732269713219881314045994987433167968043667721157074009291462076128803422517132012888913512020762591343153972913173481330257259405917837647422207953312216423457483313635963209658572411991680009983891223932069542841203795598930990984136265434229039524952749259144823926895965393616949399025355650342013130276829463196881181653469724379890743506324627473648011695317761477389652500820420691124544665394467647189694022626901171679249175887139010993518196381837253000178222963640153095337624355233791462096708923822421817132170500757882052440909996456989715856865923854092513415279720971181316717283559127456580567086822233266109747385588770248688691715833617905219768728105810938102366757511958057322734349942279812944509434938012726958816435565988232913430247835804027061182499864177531095851961666319144536215935637176559122358987212134660555275542870775736740459954258636968385089836899720574805526865964538997068315035489402494919884852102564320124486403003610699455531201606285618939980579280593723901810707172914866563986838487586863614399357932909024502064619344598395478566538348779390664606545855357592386222987783493317244279832164512141519517132788141678068736460344988920863372907680744587880838336023539949869545248147179515813459134825108126072449166932009552440744230017708934492215893418088780893589351607481416664651446847025620879847830390396143597438705032532921360704012903249085083813564845646618661537625025911694378270700797773183447220195806847553272927949621920053172767216672823608234286686354931420461861484237390931606528371908322614291891956606995156505252006059251160667436042761832126207192700887811279482077927467149562447965488546809833245395887133495960271554285500956690073937983044343830018166287244456104217092173682331002777526344739220987018726305373537175740070086720629171707292086984628738292529622960988861085819471728795887721309346809514596191145500934397379401347276362245537778880036304665139158352389505387915035423620774982681811838286374176336877590146977435851065358437691996948085201095388538562000184737020755284942409663472317210991707932739477070045963670868175046670253952482151368448562748043245035359044585263648617292767252215683849455944452837423262995516352289670151389701638152280499177160808574961391551798356230769481497992514961718153953875836601906372561376334514681195520312550963972412987525539778902510200231533878720635176945677788041818693791910610371539955606957748037503750149023479442452939434395092497880101655012430880906810803986345850352018735207809712365406793420296201943021420859376859283638617629966624709087777859193237457814029428626633676621473101969998774247729655189791607205037394211721569409999465968586478977545999887353239861851881734768830692341964995770170871352725594158085045392744031961679076324438408267732722422458585006216989085177341886236042582551152205786813933133603941254020713526230899508904874459500798734471938422044815559707751570534038861699351828827716035280557328820334717285579061745790641966547655074741792835194390999333664925864894567467049907129078828695582934572676443478163206910907831927432960261348025593672338456949465768492967377850601919374934135286065519948943168939935114638879226058573232370519733034209912727310055998943429522149047014355796295714853169311774937404087281953985774076779579356051605098172244796492500180254305393535827135824847701198331569996607082158753866767822695651885025088013685093971576739879895809913374022127053807072294465489963893936497907422432621039557741326921840342317993006715349623466240414344197957010185386336439044431069123999371199143088126000651126249721078223540048744746260254769101819154685793110618228972207136922513695686647433036067006036112722091646048593871694095462365278686174697507856051516457156065043545814922119024872046163149246861920222055519183329243542705039647566993664674750844266958510819864827687584564445448498782229455798363198629267646869000470021653927592608317050147371249695807947115818259711192036146834173387922403988100234840429954779510686749109657732461362700883936544463056393534253953963506984135254535261707978545689819011013365284043079352902358312790442747904004481317031085325003483339680115826303893047362650380121281781692735742274079076960594437213884793604955076234847527945899968001609933176337497401859705586994547334749001093447080163910308207396937417115995484059718055303876957815888254926448749340909613273208526984158491125656723939785940818148158371892634546113465362882345264590275589853497668924229825264530532757190959295674349212196668681881264630659049738341544630587254682829769078251290332670162666782754401298291748076771066979900987070951149085954918897321091139139670019265864592832179895224961912407612307652258815077828712304388963277505173337538706019782075097035996729165982450868213553852270975519765601798265401874954137032187718159850636498755699410994771078901975713878685248934932719186512190869771940369735206180997369256684527953129669235109096906090609499352117451754200606544745315843178911415475153755582845586220981951201950552187931871731417185707354544015955098689821018536359611400776367109481084434104366756324702531356230781906449527681628685495649275585753200086854520583005302496025602014856530315729713598609899710235562295603921097502450148492073848014610373358842200567197892684559532796433256651288195413333083602377118668974628681684057171224045170692126168805142362093608793459334252750448342231419773033054878613407561652934478789480624261405141487203768198864268931242444625570110890645821653793358411125690953922100708148757636212151990555096173788640603182973530646079517875048510395570253745542206421799323068829788387043070106472562917511097548683704261900621242470566649914375584754221750213846077161544304843851786127885774180606599974686938384365295925191803989648967314579436032389698021303405706331889238742804168083343083308098375438923309794270927585028936494506714124717858892974807231816335916138073929337119411579856206735491787903592835971436710385640403107584332495884229298720059202955385503614203323759959456820393036682883145108719024425160757012098239301355783782473669649132409892122944211772136670386848934218978608348641735663696073868018706429457087348943876803684286411111288613374467905587441251343189977241765866051433637107261343600147235282672997536029029263022374766728845799160425586014785144101245583022993773308511963803306537272938633334594268350516569073184381616273095971313252953407344230484609643887845522951866052801202642770298529001460813522709786020530275360521604746046998225292558917353886744671421903381122453278067621888066551665286859964111230352189298307888613026846715575550384508217390251547373343469222979398961008596446734465791930748802831105121218064935033467050725875340498877514011134005923514806428837729815962612388287502152599919299631072756673087079443274151474025533376413607254201740389558700061743603010590187444970443793081999403559070198254744302943342033088185447968778879922524226446635896139554814971322078124488560550425546424022434279692125258837487356274500190808091797861931301322329228518887819917141053130664847016917794371102027202306829672105076808348839408397030994709023346409318033715007921453423158103561099687736208624405180380294985258315542956247648808598034344947392679673996083354351952154346492067391414924664036159174888081370914613791320557740745436233622143245548670454405065534500438410870068991894410170288907592374063115099722845565916623167201091858032099112903225313830065013648548477068822859858802827856460790115245357163678348438139819849949525871762378441536437612407632234498097823800625974639915976257534780717790597991098757753548678601796149835584267112489922035695697199142950625722873253310227057542327842848131520864724380001516671155456147708045480630618728641108544632751690024046511654906846671780411415560115565371691618750801505548503052106076345427522184924157965292003499436599454685527014394754947085761158984702902004019753205793166589376589230552094162567741510223066754148684933934058336581642860378540730086122217177562553176508123329396083180077055855557353519103876052923195523353321284292971681380671763347293793460085229551679723474205926381398175934291526131629655106520284898306261211184122601949354616956679741739992957908148134442914158367372077104360982260776064870586483526468874373781602946915196758494441931074043365383265869418480940397170734219680174304063604491606692531106540957166139587981900620204232329691544061214623028370415435739596686074872867872804315709495236610274456832040082393725825915593311065208548593887906909822656325026652094358944560247529808068329037849256582027384715164719105386307624152752418743087418079254990641654030864392908651929433416112346475679825713098254839966865800944410818519542265529542033134215894547837751342053133989790404218055185564352512217696357679361105470336634069064824582158859288443854643239660947372771390043720597505828807960628475551881643250815497732837871090640985859204698950351278159111747750946587017605717835603476660711012288320297948613800886537027012811096165981580434258480687037228040447852320180883780105007496748134264257295106578611238448760677610909198046246958617217994113394181206239335245098529273650390053404090597978166484706464930157567697738950549979967832450447528922716100556441699472390028827638626628206633983301099119719795401997738767546697924389214122796110026664610717839778720014510322953155131450607956335899452499353919421651364464831761139909228203543602215407960463905153169209711172020908358135420391390154879259271836817018070939925356637017381535777512155891839979767545639267237405991397004457293467529882462517743032704492012130661769655946744885613795204927236698888514757375457087875734006314709072653673233564665235614648708727910782075765272199909465427730905870539532740553330965670885101404606054226199149074384535056426849815349760057237644018687734846873489615009784650304795797178742081154695738026899090721325736612349930015219442054173789738661811906680366916047745172836258194549542709941550130200785483249209413704333893835430761409703444825317773562349016702117301526978536070177093113839840553384549426014420803230816791622787606074486681308683667263413872426043274592199873599628054880753926502293184028770067720813893848439248565883540197825962023736130413716489529639104987256466528027061103424345803944804410887689413168913343937172105133700896971603995430220853613666412744383226799969679225700770627921569909339244823839059668959841698887468985977226796067006130087304692369287659474191966823865992432733623859123110202939986099271076004656470186194082224075560410611206369170351348298972257433958643916141975277841037203273223506446926040186091667031244372367230501303769510505977230790039994824128715411555024528915117101621402246541756717869421260567645734795527364417039132504005142432909639306294464321139919933904511558285215328002244016353667500395170956538720156186373029054076294387465193738811007562465866742117241900650482650728772115776726659411830738352119227051879521489165806278392200493647168787049374252674897647593597859802872425998671030548078762574429141234836979245308750200577709207719996973314522559589589337780574044984233979131197096686523607802670070096516410218661643092426399550976447780785372481824430251772525168077193019806469569031527791916549145261590949383038706594262949793661220804533856711775140149788789491658818467216532600599819412051664370704551440859412569913415660260689739410915233448918231834204064541990289833671399149068572735631021106095904946320116063873570920361038731065850806870391631033975723171279887530415985365774595916844968398688103459764542549934241071123167553087473638861288450252732238045617478543673313834481628083085701968121966338527918984624108848556159018589268326443318659311505718670223968346462828012620516273527560178451257447421749123457649757356867896174536869624405556135830393725357135066809698670202539703348605668864514998026066507074045282510265055504139979961660040605408179220710017816387116629410078873330065368477381242585128343386236715477363825662609375960185638786294869281592960855159283718068755597513611610660664724930042314631635804396465614814097459438719173250966368834721121362832693305088823601462462981615569009952928802663889141147138360360372736476083236188718842401874012472937400156269082213432520465592177154406052406209556781324562828167528388880789886888707941627196776615374601783496194283995484435724068543638488132623481539702488532054752819282870160720291124342349797030487790845608472517659602620795312015214462259671708715635730830614434385013434167857589287487107262949140424575308287088012237170341550709478062026072248548143292974475691248307319816675446112211467835575093020173859983937226230925427116141164793834163168923798080950120632607078141699227026453904260294136871797145147288256740217755550962417170444239648366412325466283370670757044138723408044519419808743163226568546079924694367040882616655478815336342988339919281586018022569002594577935890938496823785877022983618434026187191752904048954127274372634756780722241638227751448265885928500485778219928010349634991380306082026265795573956936842483740994705771274252709889538867130195218175677498555109048051741286760538807428729573451727541591215664718684732763885071867110992766167982639722333475941905546797214013925308663932895323577039813089195841429600754278716163691037416940277413362292665287206321529888760924754478871000759924508639166638096673300060547409288131404008709097345355447619256119314293925231141202305178786249029060329518566677335643498086512105639660445397955838230834042608824834387353405222886424408408746111538338357464410261908288536375308416074025564745767724017965791376279176585343553303761201556368066096752744578293754581417961729871908042952784511234611852516771117262315828345702367527335293298640486240479851590764588199993818342051346984603205786320700156898002483846118177821930304779481591355285283641060197497038241117973144467604230377657074122095041161048274647399563739524159684398547566634655990656426098868720171735012180569963308159681361103608200231357163052498072633341936362602712196257085177733027186155877824632860101503893052640778191215948493196191498297713064427502357174669348282540442361355994495517095811723138943689200673756809727421912369315673054388110030875717128127864721092691621344770581992727086112790048901108050878439366649581336751532163747990987474518167983085874611715353292205795222648461033461567424393023787938616357283167591209191255142982316069818687645025420550307321168290143678136144697738514981397423070246626002522177059196088018385393816222607742432325676609746988134712154196575660632163171766728436950747851207296863259563788044249189217172363312656863835240080635611156767352680537792227088792175781070447442852008413621218322256983302505828321929708631729775394936829667871233240854968157413705852136120560474781132588515351283632782770760874138300590480239387185561637493040561186498938276928602741543308094547381022373325950263516915694780880258582036930377081141197815449530317887499816827722045575338366164557545823547009358102342282496214759792992923540373400451975610147289769242999120142853218217266927025071496464740442936024275796567053825604702795482568266228636553846014734877773785383253905830422551099487685856416887899828998401182119987584716325791480241235748632560956343023782818541892194907123477690465681847254727597144263512449079957805226073869989281294250177881212436434511025955841862929388886901500271788780936238407116445858155252453967424713544453389340556733009138304063761361502510673072775101408638461064381989146869661362265363302576784737694932625850910024806816824289675625544183373660669534905607256923508021765575203298985824537327735273525507289535955159474671333074834506675853800292732936064817411905875674106604774926252396607317719095382241010778786452535976420043765539150983459928960041708134607109655960291832711963092165812468763593500672205191213634584832632651413929605377689214821302979689216329816828053484301833195927303023385754914770508127412506819458448993170152357973956518019021467548539787148869176966290537015612385950989173942214712422106019212543619935956015569675226520668909626124864569328660795727547503821746828916147481411125603326403740139793039150254362039727538585423444889015458183135593715302804041862475917435196162690445710866481300059061348298075498872974377201089507800399978854420372082187665438985160948702165254655220581152654634598626248365478770455963616296906364273276142778859705560606722240081254457150075905523548891442676817734230243235551282594806530204423643140410218448878721233796382476827694165041683037103595866735974680098064803027175894474184556324455092110734184625401669135070103319731577309907953958376058614860810014553605516900285863302787297737623940854194954946825515102227429501312374277542889023627037122845129610766923972077103195605522077248835311021355837996784346307069107064923717319559875380413356612450514066643974826542035603071592367075939017619169794921753240986851686301319524954871296030757891729886826369191619157989797282308618895975490232039253199711825400435809249240101862225974961602194741316515017215289188004997897001999417666219023933826366279674762169946147695739815338361804295455564348324390038114907912713693292761295673517494919406484886698296574741405941744695683986298318922000021371961943145156316118067390703294691323126734216575607886256736845344078256235889389575862692982047462469699141014635222206719614515643654036176129000439138606060204312910367422794208560042952157296536145212165330755494215807825822325169142671280446856956768632934088817903513931423003236262562162008920137576202363771012772176945140372531534648129655621216151417364722147158336275487397492230480264159961802205729000397132064333917826707839676046417168523395157733433911673643126154748782176438801138856569459662016921520121222598598715659503204405918915810737124948120720873900844398749231689121968431435117732269695969537039029587790640831429957660819978497697988175491418716589190199226405800743330664946587702513659391479392681250550767961489822859512834248794350153906452441481813682577225960639736224918566149472367254809577502452865680154153614713865695165920983764115100755952900881185205005936077775545441634375069633652672164766323672339039311503662570587751940963964715659802613703775527846502867131638978952830255926329506651801302777704207373257081638005904338782573119581218573025911580139997324127085973772051308690791245790892637238561075958373786727800504413035528693447083098592239581933630999032282644471409814363906803577581214672978954970258727833143243317189106324405603774130554309002927920048007336783135232186594704232520406411642493144883594690909504084271514685305099653881669038735276895509984490450177820326822926857906307960040253434772678928918108774062045850864443200663615949272375170021760111852717664266445122239005955074757402900552836117094184467493139750845806919551813925021476085033850131503425938874599085619977301071380241109031642344310641204291234850372515622095641796696181469847733387751391809854615447869178504416953481092219015311418891862941228458310147138433337020933729591146456816129354754239847191438898844969695126616393303918720688742256624283681096593748506832502164278461340524661556365703063366776738065334852007795980712577361506113533284153698594694867865993686576676706366445959127053974916232512355154561311203914857420553098412206809911867477639898042512593819953553249100964374695737133452620275211602564669636189795031679103772850444675256505035601420350115007742009421096709333168202417138583984087965729436823070686940156939867388685779399301286098447858240603566388645875046679510569679426326259430755650369184102514064435126379089136921255108806831130004754788692641843808557346840412270915955788230999275895880784115480148201708424101639305762676776578650189514554386376118420701680143533239535541080774421973836129839444739533493390964825778353176053476047699976095074514683246413167988318325854108381555988790402900638720659654451195770682783727779364848691694534355776597080041318317857295969464475376262006825168918960074197081909213323479060457486596631346294542790122559243512754250931568406049171116503124957098379076167186047555839226161093111254252483728835941925089935759107645364766803215254037450607687003127439518714709674174702304925470745860606609956125417397239455576902356958922415668711382503108524017175901235141121732577034391244977663259330126604481643029061826830199252186883681840334946507485337107611465253045115623226590897600923442885520247176987673166862389124942516453588238840366931294993861971337087974293508274188090400764475378366227759267298005242593257571954237981393933664981890049800191932446948645266732145633923417043844416313246050185348116897354200685379979344878967743116498151021062914072714817688732104108457096778328206446845318948041131970958180858139257985329053504716655224941896874882004477356820399919075571654306104380415580906037800691921933737275506223857168363871543409127211045908964356777189137453703797510707180473263555304188416151936659144830511827275589199225063967610950478840647111687708454773682790711171644677376337016974551000959646758400923200552626957233080930129070639987033547958752286546536152384277948304005669169637936378756615541394560980639472322257909538626297414443870132389937773236292823781780292592004750049823095726593763169143540276223312266354428989334257008205755336844691263796459550925892045160859787573969406681296835693346382205566109420264290680899007857013309415340284134728011533499695653710412367912806845998128699938553485757871102477856469648913645459722029758384085688468581975161818155323592608510008956701239591360715125183078808601526785449518182629486882234059947191863013984329754118543744136042497040548561429421967362299444262776159052888959072994310595113324106413802907893166670973471577999736639486630797996222308803364423196933880394452681503258219547350048020666581534628151493098414050709171241492156136294196507317654608977427765653115054996187655089040217856346599086414244668242081596591442069938098636753763291566502618113893970009466779980422059897563295525677863318689641929510239904723074037658265436448014050612273547327989949933341876017137560947300958684940586447911745445077365172526924203442056188893908815077293765893506208630486522238759216215458253879351580537021162418003162607760853929550514252668880978731513119129911592634873617978413922694120362483841434955504423270238228983016702105802553513621204521761292921057725156807905278747986379381486298238826067467264236351962998041276930257757086362146347827139335920146771154885642974873348971506939952598251960488033708904090307856222404385468870813846238879638285107745570633727882292961617459055867338155553471618178350254151753928225084521025334491050255112250363652733974549985126849148240899898383966532069704349270628818860707287391080702000603221562371644573492975682569909545778974781532408324968569197623351933353540458064480310477790125340008322388749315523486654532565886908462765917980881170397462296759348642673052097845327888436721087515367108032528769241981717473749829036429366003890129328002104175377827692897272209639929596949102204870090046883669195587840616246137178018448954768402058646838698216235453618988325381277496850655380486528983866661621113759635537791986379013370527035987684558430772701879356981825724936530083952134635282304418675724566122978447569887296979968051001234553689828459080957564918771800917289129657782316341476782520503400152528309009545443780932560119795413987746341833146341656292758250422545642354294449897586028676925880335980392298864002546116867192705524072714741920228315409006070091147307928729739517724161471695819418013450981837408896805395202025122246219660535843225531472086962844970017754327447015750601092889363206953659554440428703521572711197554092813791792930810290505012109863270270383518030893207465650966579337608757234506651086480090794625336531756466786213708357746707963477392195101979975197747397634330685090911537784458214094795154596480243531406704495048958037026675098787418683058670111533947686341049480572052896318348687217313103583891589484218119168942228744939186183823233299993620255591061381623269918418403857318274983035349705324172248951392019720757135021958881443937967308916986862856751182519534304573299807679419265400944308096828843884018478795996252185666247184925088926170805314364311687902779353996341225675263845873199792784170311613985582104735503656227512716430968647450048853426470339651206854290867941989133020388803590469426822776692927176180914287311255810647628513105767605507327583204657032339121674701268378863604681776870084623433225499328571079455448929515495262189217996123366256235335675099260568703011621234110948725378134017949786797075506429346042635307334638421245256586703059801548046779904641016332614786246309152445013687538051307290193221021736340622623514533786796837458691719756023636359864020694218570716612677372861978208345633235854747554726616792676486007645849173326064756606405383705142962353686050151881719778539274553005343317097978225370855287429786775454703289817856769646937362878104036809295554657344047796257086091049694636766649178408746620925519538093950325443245564944378850128210070089551738056176540988993210362205221719038338682222679889865609402943115823073449467611285547949106125562995455874323852881056569925099302357693657960850869980342751782670830889543485253551277243802797401254738073928222383842394011877005218772461252904156451601807424969834322344141813933848553960250435164295699968113460613894875658172750978043027848474356757693904681873983527736283134849734743505071609370835397341576390524789761755675024570886314400865892542951220495203968807163363449138997598629871987689142273258309634784855706019077546596407239312849193690671169002164480446310256878259931718830338556964920382015705652558541578864942674518787853659637603099418940473962807894352183356093741348793992370925844825292549900154551851266143007622170906979509239419385425324446008481853429540244761250770186069380797412700555449202421039682627907794984541802434816753042783926160065459180240966493834391467314252556425795082236244233055862369666892285701158621022839116548457884446784889677737458456798752035002175886479341683329478072062548727414098616654774926779832722422581037773695015385830227913454289664241207185934674150106707968893889925676023099978328684114780815680736354782131151186581175648342468491707660478996836542043675371330404061291934872482016442314403177026157131321888916277772511680811821536928563810739377849414532222452921028434748802311773666211665101637168250818123460801535382984507050894761229894009943565591106798494427904128755637068908213745052896060431578749502258760779825102956102088673917079094872666302049145084932119406866250377618016757739103590683102543622547592604554564072134878810660018773658128195853757823179960467085245659741099755554263946055441553682386759060482022975216951674926920907368439067262439940475589188276713392140681748642598633626532480603347890919467579864874835584068212084084491049473522581070238536422097931518703263585534813378586022408386705691364176310994197067065504865989301928292828958323271019607170477873811625119831241398490822395149363202408802290263370862930932152808482883382012891619865004584167386377315390868670211752439941693381678680281961334520466685684626435809435134660601806427686561473570810955352791052520063466131486040261725631706646728117910897261778956181038810422753281004599555641430542936154110460755605046400812495719594057958990320818229594936205572399576714122217185185330216924532080247844363974577927972026578491967897276282364965473756279976403868021840703010282957244106219326934759615727339150815142700538063149026983590162444320576581873567083001392741914039551894714496577220903307003921060325562553059493670233618470231263858599252391752954607935233222208601581733527109230559181394004433987296280557522159100631040887654252393922895964398408570736018972434738401605844531841560981726477488317484022689390069268174289068894304056477941033320318420092937925406167303241272481512389783107299560029251695640824202607803195551450212214160642395132337825169035826589222524074624886583204104700894016251640536167569375047960402656655467808602449170006184844280596786435656940843425392077974114408838166623041669902115801176085514891256646166910018162451688791566627894634366593429130145404124814910216072194286045291996667208069370269094708864055455460070976628062810637267016857616964590316391271507674101076013152876705938589844996765655321060490498093756105063373652290295712849992434333746033422098689768520754437030529173256191287886980432832304057526169609624736218208878828925627000982247160743736376403605424915381987114654552372240309729572277416825273689520576323430912447280180683514927168539091469414559574995329830677715507643532566379167801539273601569624467722262882332901189318725248492528306487296759079495730020285869450045508210084664480836545974682702728710033545275907107152528419192382566322368141456574854082723502090576170054339570357131481866761965038825865684620602595779325444511181294391158244942304560792179232432667904520729125415103483893938179322393807659159299408382927932911791121530191766003396367681843594251089142719511788333003456097709927284492944149760843538579847324319545115672448554718135975424198946053173491235479759752029102164232159885017186998813289530893443683746852902960580179308300250430290904292569523061234846330525308948886985934786657706840934126783347812138696795991037127798728034232656013295379893141013429606474010640242073163292676791955918163476910788463834198832317782275110172154033145220201345054860569071116998360851846831142240776451781007412392201508332300319448406166231759738816254952117858139594814723770717779996567540939969744357766602991148622353135431453663576992398520043627337521693199279810050616499081806874164982051618583236284768903278742685831691290290294134052882414449839832225197445229174647942731936826643193741787010242539822398213162244379208923075005129985427822737160164686606643146592078382220077686595720147143729267202043860788091281409194913484989171842898668410169713510242982446478807440060904820691129292815858616063017978055092957462679874373988459122922215981250121523044649007272687157103603006679768972642121711378865016616623605246569082469675618178010739289506283640510604086257584874511665267659809513698821722218009978594272851818285748578264715281242351834599696779347606852864797033995270215632159520905932810824748754592425828533660117393050265720853573396542592043436689621770444274100788202251062555654915831791223187395647952752910723037451873907769267376711089693898929590154801910983035552751480367442935406317518319250407482193789628347685766233751223901207976204013864267746912361939074857035780645077191959822018599068282202509073967506742778079480552492273888365397308189223478517866217821329123673957280495404997945985250812802518924567825178336528504613364349504896226786639164986951851013501857707114006125013242437234050057573164545048816390964505341216918864575986034239356138509207805210207286203653106100481364007382677992098761208265827825496658347233574134916599667578383454757658459717806007132744752871711141267162402383671373595189810890885083939993504461078844311075616144989316995982317666945123313800273896769073932007041354726148092111618740643831422009828634916106289508999383411699418654395870930746464029250943509133378088910184448660533721208240558130701915952273795885023018582282160673906334997304089616842427913921204134709141356856010384980246825627625141617253980576665145594451052582059911591822646373651891832595766369863095492998373186601990906692333232310002117771305068060847881737738500709793203225966903952037057769748170535564045803729320395184523287007169152251312100436001350416554914141398216710703851898459727471774333606711501152682670156968077793878422365161743931029286756015732044721340639105791176822185873730892057912214854068058628904603114933614383570899328386192656348858962974215976568551578753383732245844122876354793111581078311748347898708647532663996349547782246282323602572055658554273232688910248248691312409207341730231790453548565538814604172363864294955735543367654420860352335688336294692683191235512512101106945203190143355718238471571896723562439765473656993285595186381768686446644372104188066496234644396022562524354291864298044912174827962204233963003557162593978296066719086351512775175106190568560732752423756904143281436957627012705762147736527670545148036848568881447590800533377877588688824852541739567309684838876912421993982521421325973411111421346578865021565964490579984888082261610626778505313879951345492848558121714395391460179544413637051126264126773126707305029929314240784411978853232687761686582041742557223625569221962704654850278588582436347334908917340021126280375074951550908097915737837202816178307842701188841644443908934829034957819225053062787712580636707274588204367500180639074091030277913867414627663961820880793861254655096530390083915618094421481703202775109346504126493984841047402082102123720019876158077640624659651536773768737839526212725217172457667015525216093519387989114749130224381726265777250409467932353157464338222205182387315312690473746627025541952538678997784900927453046671256103656390295862441780620898552690470203448442787407129131463645523613734703022165876900443670468419225208322644609482896151487800829951179699565497239005026649367091147345504433265334785387350962441646011230680862959672324379251613299771603666554592260496314306407262732312626497205709344121874133704109778821983402360350661872173723116431836736186574309816932025203273182220410534256550452411726052343892008097122786152729000095016658109541339320634671619126553261071374956620750794190772529189107729620262657474870701043035454473995196136285779639866815581967153196484949195861594861190612383076440193079444887771845310921240800918149192813253660913596211205865088042822027841045853011216009099638009488389308561506937469199290361844609454451236364210300569343238910615551843863159599312144797080151377146981442239177154778433087485602150976224297774279845783112181841920018725844892054873554371999819136783276178761053781805209420600955404538624392647391257908351902172735525260406326581419824239054444840290084622046190738594194059525387240193915244654804866900232932711932199365103098697497029786192169301484193141780900906923297716712578225915946278435053117258980233767267321463452988788771951869542722551491420576196823584784764396963048980887752385521621331429141750138129970110809153600128127459683702388893472914324123321221645680613196124908466356394085801318459515779420580027275701798532030834912097428112244269292827559401067875143570701127614720494086852802911942093740333843335026917462591161699803903992470920274487975293212555844453536145273610961779251735466938026942571629252402129574463420778336057232853270247412355897044657452206485770868993258987653441165162073896638785953624724342587453106276274051954061124236791634284259564505115933836761723792817405596805142050211266131539608234138732428565583015694896887738491277656352527868747522348793245812365488379639956421011673239933302244688263686266491190621555683404402873856465751625856781458527299419202594857822042703210045759839512151910674145194973915782102034787983069478139122906608524175298999105377439167448344873414393375091273841509802787872224566890729548513233573020732118035705671628385304993943342374240149365969394482944621155935940513468903119176182198014225874324611646536531028134490277552004135599597110985992420991119323673440200618025072033832176132853992226297261039003293339074456855046919264066111746108808582028880330094016562916248935024815767564898690048905431596935588815478646736571263717473469768395452327944843254023853299742015364490558234495764018093455063482860293102600356265825332753243488927655847612134298046773517745773590227608312549993836101038651405192988890296665715061642830792921836109691582318814753665242456792945148914668735274843860469000760997236615448567494578289535989730685487151216145230637845777356536877471536758319032226519546144420462389319536281422010615864706954779498989617420227405176962969955373232437807950528716245751447823089358642942111697420338646818702449441750586314986148010273961849540998116097921743462159088175311073369159910354696367220163987317053670757428933877119036345835867592363419120897787381889255393592240310455332230872612809015310843459292675506387453194817551918807706541696824543243396381679649864929918905233413715998045583512066677937461372211852826331982216053007323649588083545709560215344615155322016216532432709410354696206831156296698978958304902338643713169217122163687473932593515250031980360091130551722737657954001785414890907948479767068120417654108581932624705998649174428865054771922640248147246963588822611986837945658039903261683786647141383375814319145618494243622007805650283409292895192996675409301013883459576113656093982946446249863446335115626246975132975208012845262160703094139931023332775439852626442086250944158282114625286154794735794663704005425465214967886365377898280798184172128218644128724781958381155187640248128091635244083097868165034185739277450791207433495599531878452494978135250941464204805555365613166639813436018813188658298774978658623831080696429397988736284258827497755040837251984828051663440382260684119987419204793656934214756441758800426868220920553521383577304855925813663491670884111046307665006929825701191359803158680876278066388136890273701692344359620116382576563986430072909463426425678288283482529752593744319860645308297580715778193671733698186079228336583370805031609215453213702948427643601412278478164965460815977266213530068550298442853585988164539822701825879024506648851230494819362860775919099094490070211598797725304606979971526603774918319487304488609842506887286847670482034614495313205640189590337490753306668407834632297611382474550082175468243395148198039084135113477301710520392417487694359198704141781891516625764119394212781901765212990340702334137070267170706061469709158847804012286789666290453784290890942500006081207123271662904818341486871836605672795521173895907344132891718658940234013684758004623741570689271386720179630008585827482055178291840777275029832833509522705202396249978105697733023765556226399233378967286534272508525053202832636947268366450897201607346020341252387559050705389034851597348885253926123736802414662219328703896669997369618551252417745760023369127707668006046863342733499896635306791109053181834321424230540434984776628956647503152092827247614022163678862773802820488726719938565914026036998015436177360368662104330807327348894904786143421483390557371721149980306808671431802073190199882945712150858058436711673622440339301316847271833098123728439508744362741690563907259452967210646366498287711716049478469751410066120369182665625255107562453873486694878339126656552210923963960343718686309858038903540901628120546070807212408137379190795748280622337070382849885731870706040222646075486987850328353497456608990689542600418708202615768688369968670377754762748231280239750978477395177633720020007702624701806123927032916745157863342168865436375678341296842760759742554850459319531400470650837639198798433342457458780249110241158285304595124563149828437952638308693812832607641616059527473455606679694899370184385162658559772836107312663943523650417011067549057817453983365125992642538593637507082440513655720925410465171094661087237830350537829574555871169406052679363065516299682065431402460165572785200866278894636861772057551127752709289802962581368016433189511735393638239459971472265686083097625782266564295627110111372103021890109810775863330235461458212146777877599595701058188206907670955020826132396231536903446678971943344965197290233403043949117643015376800897161329196878088132434583646534848799958084485736547636753520132405973965538853595693942759216639363874205948406034375799277571266404881266017330880361172826615757418698553838812749660084810721761484370926735077914719317455772034412521047639872559234178585249741235439633487058499758990280133466977528562489594386903598450218923362574195366099445276045963572613047066162108313537371622170499730111894999936588139159077457929002603526456076032110644779226206410069733732650296669723683759288316401947503006364777531828919925602065377490142831718444999126033137811122212427517568289810337126814691024234182144250777357936070356544100114113513689297902531530265929424485625513108492836944299171896578848001570499725515470847147339633724538653023204976584276026404143745760161096881553736399894875637106629896218718235186811785060413246901684218946708807370252494262481025721896570475373681071299776341187313591185832041531635158326326111552691372260693064760325207912854128417174616113727392843766773835647874766955622051532651849855453575412807757251772824031332881950949058667958446022193613386333826083297441893295140384979189928608667068550780641875093280098669672868546614723057551177012691540860894316603646165478281105791976502863957299284694376372980107512866785091044604070655714606754861486865611107805468181417959774946089601422036272374803161798032423397883963066563195952701542885832864685404377859886978264338674914727630878254320025820023961923411911136525074240227411076927285624001341839844828995576088064779871338603031015183251494497748921452611118970334497052127429818849678392035457036054758144736118660047391772629523030193873202091479080874954364985923265948781692174589915619829430719610571529990050848188858230010538877959722332519670087123312223285888704933005634876923688975619648597008020079274432335585028501848204223704666485349461858820816267462214885843707537831428277025221744214675278723376013992023839945943746516391895631237562917138802774952183251838784375705410263872071384178884121687482435001499750953022347120005923224248995390813750421223745799075475682165236675000168701937428770887402846167704553746468201351980006122854496880718308625767550075678706489214263719732353478820621040487397758199880269782668484644213082064707918567301430692815940489743418735142835775799819955531282842395064731524419554950335361613448285971459064238678295224832777496693115146081497669371433668161526879068669518131225673533584219245195050656518318778433742220157738098660359297082340025224933940854561323263149031999381233715714009735939500976019910775490615269743439361636996794108579224312751081003783712003926463728752036532795653650835053790643553141571693875885145059494619547201048779091902860151093021521546357095881134526857318569643698389123325053570744726453055573762358387303215338107078963156091349546547099294303901395878450604450559979087870805174632986043008917732485334075097932843193999266959969728417486692220613523434058851411985314908738376764195404978695899326759714471654032317184415585827601487674745292801781209581756643458005433714248062577873445198070902879564103378910755722374499015434144617928211663897069196079223747138073826814885447511330453860059573533654567614204849795109801313492561706103209056193340955718308651224955055152425622485861133908432070849326753710534036634092692129064967578459543181839242000301571188403686770032106124795332444549936159864862962866394262901654786769009547189172190306569836995678084162974627595522635194464718878178958133574828867238960021333996635555413022550109907931363225372229640239015096394505889347428985960113955761442543753310046453450240992723440537698068682966484293428945655588403840531502325767300407638885238738426353417982802389753920678839790801020378879082633351034698588586979133124008881412609449801849852444516400555432896849940270059314342348919375810351638840863503382115320405484009085947026045052763898821978873918695798634896774237832504066575679444989581171121499349277667149914006207174866826412341742704780550589140880268585213467777839068539021682469448039376157892031512987929595566076500442619720176518193847856228565408426285492425443437072429080256780512635666676837476755353290804914417246013218726647672453348701048838132935796556763609829294469398009091513085578266855687949376504020532051338553192195892022521706222088207646267451562390404929268674709529685672955204238142260574112999867527733669727133240166914247430987912295331603414092316568939114959806235710161303312766486935468419478172168240249822645931586395694760845968023730036248240627636768940810335549260967985567255348946726703651545427607764945326315641006148149672526187474662991606932089987882263762415417776528853012836018966702429400738167943621037796770353847483026233949465034010591760132280829062632709967879838050839721233546469755534504356544084379104685610564827427241991816643006202999758926024976036838543403305423425815353728668336373027184359446360581471212892559642964250006746167034619813858145002796333651021923437862433472646300731594717517552570448070108702081955491885931094238479410936966279090840266913681397022906672292089842239678014809342599926761662476146931976026143266216298328550857973533003676566082682867296475642221209460350841599849106184809755890311442326222482095905185357340210215388241049036515744171374709047600097440414672247549671750936059366867510431988580180696198919603321427019356880921410728336452124859457251527310086340881021848599548338630012400276080335980607909425903479151847054353115821721523261069646448042579133427562963013917972215414570179828410840455921819018289313292745444670377738457754373954702048871658093064589802709038894756432254028531540212206955300135815560556243951020368981304344960795374478835728398460697944000988902518835595418689794297385323820887172478087916503920431665386679835837222600936650840532558912565617579569376209081988673528464747483718035538750750293171288864276515282525430289371152248421713406421170921102062030851535684104088725123898792178934132155429765079828432267091377536791715516200686170707213359788855760722870621889194765219226683779010707550530185500366515246628050526512161529091806037000262091575485893780420208229712515941168584638137288508792971245666792994739958921970854167068162399821399226877976201592430768066645730910359395806019825993991049265269522936475412772885540412580080206994210301030965024549293529174681808532668948306278360493315308213345076947935994481744611410085505417297701388050182207429271398821277617763177267944800780821864768592867435996094410827078114278248638448455274496615524678398500314222854789091342723465913013225059149944056433105881814626117003534860487391791709114587493786895198544672778123191279256233518322802591867847642177102292849286661699875261857047985533344381891457581744063215467359519402110298430167159487011211991260284831446263024570173685186030501194455841145845493864754984864067445575759899316783226297634816845954420522109276104920470540259991639610776887523295820522429194743756937987789648534319337032866242200073651568102459789563691864987766335772872187737137162214770832124088751932225156828352955514968447795813895327999132009312462280984438101031730222883217229062897026246371416540452807945669524996166791419877857358513860477127382289392122101708264092255498593456667047376440213238930860785910238888617328736341222675605191807560801535459110227978840583436604440152598117916196711551249171242701129258257756268593929771994731784357976349133926729427351173365137449062512336919481183167181037417707692488143551077234636364550102475522840583419890932106023825491209248746327745936708994840280538333424789277798990104346234393984451589706511903744884739618663113892993315357176647434270927715583523883637930824239510240858179990844104710739195279934482074924561038055536739387607990722534591012273749021151425308076937362478153718563867477543218386096883636408288120768377590550252890786468882929591619055422354740741636823898629937853290589360915415944102079782402711354456574174556991163312751119161233866844983128540104493418097939137273066005241358444264990102894792874418346950613429678484134438542843226858488508023773556372865601799319162998110563642749548345022531623825167122577302124654524970769641063912045958457526330087702461486909615115746458824101979715208922100497630643399722692280661538114864445270063330699285793932056095281492703043755799603049846483354495301994258411764736916841871360651863325389942949899289435759868907872320018093803735135094554648296514137354382619313759095497644389919874475712310087741880365534675138374572375707989286805209838903791752081334618761652131009588841042289832190142668642571500272079969972957439013064435313085858451886675823758500749390032260246605814548175303426235359731795440639322119972875997328566121630607840677036865630003497065991468645540217171497327221330490993881123201498777042336077554172121297732010996122891330449967907630254757785779072193600646610569791079825615894920366481596297617264030844431773959091920473135003472745382543191233956914342940543404077180381707623244407111369937612315068246593885480481754752114802674912659578737431530641382482859102920375372199290755144109138707949937674140398418446005416112834169687812338588581109267493450365738533249674292956644335832260169526576304341981435777219910581179875721930550319598450104460108413201026030962320210702217151000185629507662535370346736701683345269736902812901196386401573753893304447962783844019460182207069003545730850422820485055714895605358817099907676408184758449421311339281005128721897169666753852219047756939353556965131889000826799594225689152406921174166759771720697905308993441280779472761170309070646449770951735100868159591262842198047028601775036468446896708455652659868472235628255788793899324335860712936792452971505906317556094675815209999483937965436017555528169331371525986964919891693925393757633389788037271920794845906170699352172001664866318947771953921885754436794424274266761417288250617866355922945836558914486268372467287110888782876222331171301770675188557090927547020903120919896242396706747728597047735564109943038217886546877090055106341982945070884450536278756406318618719282473665503848435632179874111704119694291213932355317690361601676388509723794421496649935080100323978934304858198529783538371175607291910962104786828614454059771830007984884025727032013684523045962175694271623064189150506889427500345438636132714981224336026091665845577242238453386823500834754392671781880436073630898627541698311142624945410095240146076050762244996421805066952046102391516747394229831184246412259548300027421309414668784869522253507953744434091942133449695934519258432136860196617876056095113219102731871668438287890648685726399761657810687011436240468830357926089373517548654337587282924498863307905468471553099659662519531982552854592913359197443854972860174165814120197563000450953146429925821874847770456429489318034147626460914559268298026845914787044075076057264413825289421078887732495726744842754293821211713906959411879132024742149984925183351443340642203848806144408931886318939833235760516751246852210417969574046965978341634728184337776285326951935931591089274661257294234346726812507274869822811755300619633220365883977863164186680998463762039982439950046163895927051088081079177220608390014476341016947407835079811814225686133239369053501108871606897803486087394199243844339885105270462350604031911696799587505516069237909034634777280315955713718565499790109014019070235273590448233777452262497726153280902925204795691608365249977825387632903406460417496648049470522834234281314911760693294239076947232453545864067207467893987762126531119231128745711983469562160953955314863613663098586191357136031595875763982518558538425236574654375773789430099830368661781581809130896588633113845801854867097319076678555620060181338108470804302128284917343046261281425084708829964196873975823080454107944462399231888740966558799804521050461950424156472560504086790563100925839360839066762125788921375982161911675009225757232179276494493550968040151176363513672202975918087255640020722686389421661613857792606181352768348951985111295914848369178601959397508865190731378795908268965863724252525444296227767741216968798816817511033614201975610373609523391642733451860273491498767241375088413869440469997296830339514854099982731165103996952874250718976728481040128595770919659123108465756179961817610333487445728714615438079896247816940542255675099420447436290533173044872594775168834179688856986842237917660290028149208618280850934764999644655421851453778249730077940260132047638815697434908784089631748131973737688562746574630346948042537607525898013204693748192759759900450938413475738506092221662976266055727515375586381675283294843409521351510141799564158474944338597706543306614319750889875153576934079085775742633036390243651348054572966570347793259872599929591330026806242549306886796107988114784928516219593052819927407836366637686164264892969608751552351222151750330182755794077785915080743240725636444890691254966502863465175813131267758183270511135182827687498577934671905138206476682431291938666779515805070986544601454495052654425265044687187378585916332274555326844736811187784113569638213999791042429432043944189320266557777585422190124151955600636478844373041778140919928046713502079687526872236529956831478421831399196152531267382870788658638656715083780058649822720852855752007514800681962567910300572028642379771920634200548438513489873307230626699761562227140334924347474529196875685407402793881908589937379653792940546814869726937241785717154393531549221405759138269553945540378000574568626953752420684959266012158567425820755536567150297845204529785164990795786442361846652997016606433992599622901882942265473345959520750970163860733082257608614714925726515348428770862920875669857927000454471070724005092188764580433834562729298676680764523565056078816327989108952771079086752317027265318493134599804461651948763871027381194538994279640782203843268495969384083073474262806657383010215174130307812988421629699694513009902555684648019249583217810460078254759324703077699493423921523618648198678703223043613488201416011829329939750280985936181650622781455431921976037566988826228411563729023080312449569361809879821164841321966574546203532466087408660820102397334745463590930737831139291824487142524474690835544467639691679696261223152547499051244933718926227286300285531655015802761087475890902045114414611172621966462496037518425477571479753884373782905898584535569874939974287246958095037217865462875773297033001891994929905428043906273808172647076316251081494808375045009719167190414880525780821333002423355644466977013926371810798473623445730088109506240947707791865794453868248015272048362262901453162873514134686057878291113853827022901031644415733532068953461736225969593320745736958067860897414376090869206888015680688176734410435114199766330061234161378670372628482792615752241771591673036914351280078660043458771214391516846272015006630793346483844303889166139708780383708187184811586679154978683517851651608289795819738900265452581698634035383058127626540484216000157843987619560935523720271632902425205906960830976524557680424104129112403864815819279566384084847361435461229115065378457623379588368597261530266053130993084316650584683171589999411276133402109757917803476987761470847798338024081058513839758570015709557411914016324757445593801452500224012061581431807193721251388844704846550548112091885306149181881822434692666685900677731236411825067878549702628907015521986863884206432576088430949286160872023051503917945001356724055406810396350334387970752107493469966227434564696298460908368148503316485653181966794476210191250499585157185722960429785250942331961194216243601747792326165081719058827647676282333612103728661899214328143343911099034928678658545818539940952723379176114555144305750471637200787969716994977680915254238163795438395759765489226030540161256292036953560597995559619212827886323331677730210046876941100547070780020376484726283980071028765676016550021528394288232649184052934497350109525227762859182378510177354632278946806270715378381612475764293313210782833675320176657431976758485508239352214914560780760189721325017832674420782465962450288413661540393221367467056526833694300899292580110410802017885623383866232103980816614731543101076038238267681103486689355287052209334038876683151501639115122841032271104743840246870122924746960157748980841919633379683005023730028970608497246282575231362956352977459101650080386875173710153010399397249463203608824366981534241750339603484926706557409721980439944387815260185070407525512052927282134478427495729472834636296603426521311026782924501092036569343981206764589689414677510503772395341590039760190420244493974220228566762259298520983103895739990798219269457986820022938553999707965986451491089184030695336777677707987656030219166718411173582225985411511708849414603137205449842972795409072993216810971967385670379666660931378863488614974418936032579754314064833022943181811818580581657259944818513446843037561969725195122658176872973635048401589324077268010843347267286227635246693360208687501387302123007428818325500146851416794741000073226163345789364860690645818965241942200250049792153197498957195994144108378503808709921124995333202703638000761073797798334001332925606426982477670770096915081933641769829789343167581152595663173862274442803148502120597277433774004122639329710704885958354719564037084438156610618026555341755820539458868616025860684455592763103521626778365250119349870930291617936111667342769989133630187050257460546781901310211630924610235303546433275645811615101119659868747192349196151650864497478932586201957448023112270209026860988322519486754343105919326496042144003043935486376921265818353075222380224556271447975562628389053392053853748671745979859004644387188123215009146442251953181217755937718577496054802676755759460975414161563040833863797743998535882102474842685427547086397976230881873855907737698559371330697853840759623423074344223937319716719220742771067697135552860396089214672243641863438799210266827359156727104633485811140818045887332587547285882918263153224321552223744406575764116245593976410843101378399731859993566267376983018713671992311677891122691823220974859805155650789359116538396076798710306314029846709286410866916915665964778479601862121585864933585261003217332441291975680351249037376791757025091810619937988971894761652134754526321021232342998041896038119851233987772115225350486717141839551203156867115544349806706256392884161916326317971094981412542466750619717417482586249663824910381141501935641829715124732497572305883793887839265114497067088633861621666636175498916986231935644231413311477637063995816891317250623303183427886848930136782813132148393752991109924619384238467608191767104949481620455782142817383557635045105813399283746778361066128686809449967597467620828322198095188478583038575639965578728051155860788214905836921777794447026843311885434089614469878295044104052275467153521089256367624938446588119306289750435357529748028848488713613177444113220768172005464484864207610896182037577083472274943156229211364249715371640169791865594119334816608872764782730291748629456348721036649350260453961052035313083498264586986821520610722119247354256603173093679416530204982862722187836340041913590339791173211718048053739644180514123850258946173234385999614112015551047753477902032934144713773747119993304640234453439754685673456256943344629810578296908863679766836155699140278620297553154104935446823931670196963238821180574042552490783673708845127969891467912194372040371545134768334256017360848858259012410076975372337251081427066452120514896547219921821251335579365794578627878591847494533971390618016202531892029866123475956961246096155324811758430891262992727657426996624189372026578828331013902882318561402936028369613877568416351392585363067760744956286187260817546085848254496904636728390357353362615238953584420870375764614111029950072380952435910297448421563311572559498754830527989020812168460262620085695519586991247385694032113197284427374658604872486901483522077259924242738944203496627938757198204295756929543070507332832047607602742057742478312825390306470030662647685113937912190179626780096847150472910937498093226877756518251268086082280109753143086052740280071835515195301466118266137230584796216178408518936352483715708582007541870385137341926359601012827348853945265241858304121578861378942161054248080044565304839312353210545347505053472185814011847050925242751617028108597457848247792315497835535627902543108347553954036429885043701458088000387546189401590312399286237156579056581705529769034704943356293481657184603020284873655725250892966997015080885876433949909632519608146749084250869556930585997916153735229841665039683876677883921077614682145997905148395134652853337403153715388275068787687929957413363904139043278200008513823022835223607858370338648546837812665423734275968999186320520845744633224930185642895240927303349485428371759425727397608023791331429788736310040746663275175685079983633894497205555992693223163106512902141029088665399838171758388808091941224060586626486669745559385400198774694991059083647688152323426275810633140988482334248267087350607560521648616417847170609413634031612014342685802098609292469639788299529920237778588856625205137111120743936367888183581273076847342609464149212906682273527905257916490227485660336655413360911329775749789086161287878292746131592085254293279849290538048536557941423694674321860204323629532739193933347698001817001876189682905686698642127275540629650599351460020370893224073291451571481996644254401843408718635798076901167070141122216001593666522583101576865029393332392118543045569004404833121645495783577820035985248956699291657324456066901285958550899048484735573947280641481498532121676006095350884108609181887762341299408802219868299786294404449954318740634333199191949143302032038564360886372549489309068124838819371074265571092096922358021452532822202655962371096741711284711236526058682041034091509624533458069161563356801597986945830669535058918450663333471571819230737086800120821138559599175980828859976528225373748818971387904276979581538632909147751628566594251296723450259141188802147402121762104128429538161179500579524784345103874795092174189125241677949440008860742574459477972403598304227765519934959874070312641146749485384656342973784480212519982108941049419848225021679462577899903203162639987537422412201175862118045980869415289815449155437477250748955956416916629544053258649257857553130496561623196166534495065501337002314746244550550954399916205987409005422787707899491577631001573410551934107648380780308575174121647354712245588536816538063004036383650471168876906258813276049819318512206580556263869179833894637517976999728645080751443481414075535977349843132679273820285746307706870036738289765337251863525829673187934406420537611045715124403423535395164917240481915270038080528728764319716161136308450894894977251425663376168216587051127458038279987899592231442543470167349143747463344267517264030715478707885456346980303781325561073840971588572913804276095090392023025559678192358887210163056568535507271767404216731371264571095095446025330105026446511065740621571657448864140513559315519531301734229904209386415818468339024056221313156228356624932706554482947355740576292767830749307244471228571418816435581493860961865353369870040515302078298209355208054273685891889284635107226412165314382127242321131301075544240927982485471442388622668320068338388594263115412275486903566704870742522375540534014690771605259509881123501546154958589029800732912572314457673185918809050859569740085315182578401966135738948983481711418211813869850927199948277737283546539233663571558918900745998836049978009858464077757266373896183202079829750022687642063942267143418634293461042139605702325582062756687342852824715055221398592180073912730632066884158242252476957027869382273850627007075357916692198813631256879959056295764707571520359218837793637763559939384662169281775693222326658649578835910122188555873341506184006976631343461342068962003772601194231331284038367444404217171082852630226032353256964733073713145941562355094312839304187669600899910877959437902069776353510462036962101820233610203783245720336146830961717374235271377008267300360205328133817018992675412377269853583673825533802294496716091131237734603386841794712933987007267732729311982664026440264473139947964306187761022326136850329846389618541186026885904283798512234954607918398261353595036935553504170365209011263166748665607127431122757030902110924558336697585344628034094481810151097368236894355324858581240645360695413975515812321236996896813108046511851148236377624614950161191301840169308678572477763083229844897257838192970716455696180882218448160681796158436512648808211230637123688492609521881670894791420548763835574816047294716571521253022230842352708500153056893611221913063566138923535694440447198976912351409066386929535194293329543539747894125861902792555830699562714398568798511779581207190248245286906328143174191305173778353334962928129380642606386820224771078023374603738245638274762598042683678025181347151736420858100726247807832207515985950050403224583080413823835836092028884808602143227459252504413247212773344847924218214597254424189809869897254630126036558360324946444215818677350506754912365956196086625026968142106769119843126480575427550444272143068799281730571582155957784837147165369716498425719584163249997829841821743293287063715989279176914647255983189835784668403007804977336070826835821506435423859249027745527414912523046277500222256612210194201892084946489527146148983586330064514938466374571820759808961017144203273333971509884941805428749000742589865258319749625695869152328262691982703920509916644322739099382684455398106877721600177900499370200587320480033798416456281017160590244928994946195919638272054809113979810839930294755880259257899163807433536071071355196643929400377503477627482288213810678507157828570733630241896431803454367936775020661120697133534836876735725617418654808767569277364002524967939031223850015136759279135454550855634051012212604230116028365319995880875071204167536315363295806951220601816642322382985911873403985782999673430274550761943568849240797978304228052487912206737143512476924617922323039385935110073650441075182262817631542648555608840826983085693698808457704320079126511885755421253189779596733454365960699244091592337746420959036731850206820259816224081131481448513710936747363821089506175176801503956615842548092235162289345360914819786102067301561672940618416241812575824052834291208821182117835331291577235523081391086818950140525163855948460844175495796650523495411616338106426735397237975513031347525366037267388160777982145136246435635313283270851152117525515636653745400497780260100114650964830469352604405305069067828903098606463027181735499533724578571346365003414878166156939192348215103972659840156257095514238469048999730940679234805163420602044689029151187541154964869861520258299805791852120683227347353961960730865803443893495703838273190749866503206129496972102291419631146082854382709725327596425632554879840563751770887145802110536519608331110633350051653522660014752048928770360949479232065278604459486915533342693439846375066618100695325172088268853550635633165187511835094630398590455524269306122402251016959332591351944836325813451302486805432536214929359215631494291704074122162436699335646879211859355945693002854683397957344812750387102525796393548852106308949551479324633548862894717360576159123092963564591704154226440591199630885240669926653474209276623735094228933969374396562075843467793326967398050715746408572217969312341568490009901082328717640220927942618952680402102996581977331623127791777428284191731725553626143255324188084009728275996054344376420627931141278231493952214484037024212779734294272798327420664084602304641385737236624277968837096757575952762542277526769107571617307973051414739184104358595381414534748153464204076825058846427142997385371654448238711827202862728932650354433418638101937605622507427140028928086132888338654947539595529977816146196498170720982363020824709462066406515978726774041192910482344761615673777327756739012333601810232996070682683235855343974477286713160076906237629093878620225441944316696075308689550225999921547165057481082356384447762204499984526995656209237864615328401778879652708113661043482769337076174879497695135866906806365539805787274961373608358871922518642156764015518908802468071092223189424010971385351955803392163469857093825366482852197771174989867383190820027347004717022865022660833025480699239199450837292473961499422257685593019118456760360182624519418213163401862320433573190102308738680328936972591363956204502338313036551428724557199053991867777763277398263011485126217612107234317867768753130840585783187126883740794915748478367844533912099114706460847446973514905565420514943317568032616617754978918384783336956999440776085706993756521881653882577666493489252930129230441319648673242884985011235963142415154902703065317477222049878498335788668365193526686659543632277822639874681560870809047394147850429410305959081189511300720684679668361241102478362216103507952574854936082009972729670630257837241440328156843023612504699242588394335845594929538490089266404771388229993131733151035493345523853747717166958872161290762954084705419942182989261012108837800158701980639897352387551673287129878388963696110103680420872383528515433081146966749006052458607058935906703284795295134094037337781783469425102859305875292288547077972100814709259860639064786056488439773417326663419009596050786137369793471599948969372962530456914777731270346084759990277718156025390295872959194210135925299665754471190199153527739243304441037015685835628561964156938838366919812010979956399851136693055751976949544657834127173190579685901704744093839699831173706370002184235533030160725912257475634164356881159742726097518932517872349449839324029714823370741645853931518801144954150286280640446401319923198859445954017217213970421378054188294603822021822960494672652005510113434848050920475059254045961485242477631534700926408838831081166573981261499386863409585595018595821333355629441449550291929923441248257365539068793733985799182095472148696494052353119624408060668042283349212317750865216120683233223468438446924508164864169828318599171272008962137047938149800434429117379054031930292638556534211628019776592636637422246104986816086219622459292920945751670518464864819348669997964222112262549513571034402525441033669232709862108213602401976359214831242022615902609182483426666873166407517919310409206871642574575721195777275480848491689547918289513709064249274943057750952860633697839663044786374633158994081042252340843012869427293999244081684984708633806933713401683514997256316028373452718399145652079337853192286788732260563461019198308390186853296355785002548846249576842984338939898309804438941153654923850938211083609514418818528230896365796435174984062069481727163508697192074642976539667618770355215624292855495012781552923895437145488555063516283039759964415978185099096322953419785512776125382535954511209613525350831018277556523682114155918479824102336119302988667276065429701731122555995111709560766790571973701094931106335953877286744677906456532384913976793312053831377976609678289208360222023902118032907676523506968083987194392898478078617456311543004588764947547722209209962262382385939734602000581830641624862176593998016474222770171908644706162257904108814451906154442075000900256186167170272820477361548748864581409609820612036275083410254869260285251007910900953348003088440388566887025720666809005857525475811041420260658607757563033020857480564994716817684541588460823422090598877756713403489976731092007301878775095158072878517938658060816075019804966125739483153238116682609180106742607002153682292116261623349235950652355194609166234194015189302208822871687023259019637360722957320142701881186574969902564579962464969417519380551829408502955106514358055646905248851135719082787431523975569445982225351889682706603037416118694884312321297384414881600350510997107361289685378090095817075631866057036035609307492566553815922044711423265485618974955829803770530281911397194598837592898302527171020071097981077842697050084091945158471340453482786410436351478165776521200709635353884379199559517308850714855575834489892972051937431691483272777745291308396046498278435600251568876070244076923338487951449692697862171412178350699887229909334736152871642016060232529655935863535081503127576775733329819222740204623114893497862651501549102143091455585216154092895339007398418639910936106329909096393683896501351057026557516389004826873469131211380661163004113710026178264042578288808209210773569069257784178036808634078043195892063187688303715001415927767661758137313401249627716898287783243786668876257553449601412453727042436195541444203987892192411545922204536378678196815873687198674267134289381667980352109983907587877946277995103996966953111479058808179213702504671061841776134984342814053167928633622178131941454749421255009256583291849675166784651917011126634259919327688580842685598320094057196414497074905534810422194483495062491377115893722661609652905201337983265373585658149945505858945431276357887036859050406706998763417412399323184994220395740173457742922322956936335463433937344655509580867759485180636556695632428113496186704308787059032513732697989381862439031705605614862090610408737777623230417453375768554958998171205871947669985555678009871537164379536691912370719351359671259003112250202526101419499612189774029171886006174958069642914992947309635377169282218150006890093974680725625867215223348445477846699474579232597595068670408439024328334279503225296866106977269320863062881233894591435373320909636622767501585865147553257584018452778151535767326165832162864564259894949874573228474365786004835189274394358906163968179131119343507469607404058234413923204678074245308888944526085953726895479276741744011287034760676116605822733623627070326046536659454576521739996487210321262153538152326264811683093253398161612732128740590541391273388925466802770412182157102986294959741698537391286287086714345669586566818206081963191081208966940774570672211385691569844966702939391635515459771831858096796218605657539666940744861404143897526300639842382506898934551213253695556849934696087984647442372802125288940131680588115780029881043229276114772360556046950603255195172758650852405124044129775292872049798013316011319366580115882743278390520914384359508528927596259832392728229898662062837805281127491318360330749131786343719519501682456567795447566532934963115984571429351317682424679745369919394155816899225165768860207151616815196606058559577217696555073597932487836645411828498439702705549605181912791217131666057809994153058676105710474537223122142577547816997423476811302125389939881787254429265136735273341069196159819407441840279721016834853224415391976084010782316653522878126667273107659373312155669363044176943280077929191747546763444561821161774766857722127119054518398939776130457486556305379595504923794244062692373922753624181696748762979246956086142067230817903928126835419545137552992423549307459938666492739117246168571682412139660505660613372533088282933223213933880852565115616121041231886580379254845544500570655365812369907942352512016758762911566217593502263108459875072281000219917719991954763049230877728093817543830680679206722783652018312967794541556350412695812667076633330310701531965014782918762183565485281053249606491006638257830467044319855323878403732020429133675751513939877996683379745820209253897843600759228828672038968772211810243024297441287898771814774116609301092148046282156176712081991837637443891268454297217213309004500443602249155972920768815383809288242464432496459727071573847475772290512451795303581935507523642026681639673064044691477507070967318726789476145835019621322453767700068907862553367652116151999435958656247942725204063805205237532126666574032798968735775281889377726199905246200648802004497509759815354011315075000025873560041422401345636468629808715441606647281287846945072792992727809485161269038912036696007962182259338218260124513868560676679118912266525302742202033676018783125678201040350162742145270644965503354679187669997345093136414693091009121607095210156334686485208427836503404599748805957162479697897692847252696994188892414667263203756612961988949404400173229688116501068661863189868270096377305107421765218498932030339451290385085824985930034563611527649643033238930237013192877480469587058294552806698368662741433947574019325211380889806671684308845859879171903597717278669220501822860166387517731206765269753714668834961307901903328971787153133811705061793984558882887648097683669301876467118803554397617303069765824567927502765684856265901649673665586329537256625235773150233805672993401600968920140765504324651988524880189913410836482097874407838046001087066273403387184359917874428720511619213375552841417628023966061855062505788596164986922298369125104311132959301720016931108557378715130781259326711465508076313755400458077636169958679188092237865743002866950868452976205414832733054726704990912014233609320053815014322908279053854420941382284855603472366808927055481321862945287096250474266387023270706254423355831538414993870778839278384112136756327226891207865122268170311246593347953625106526361177915566277325006948431078351506574353365541445532671933101204076636657040207405061453240839169198459380016215972634822742906818720549924390719898546882280184606389402136232379281602613995890666808394790544715310719058905621841938247603686085536995716988468594516958951724615766407200823736832600826542590450581609324356273852046784183963724580129845315479040972247797149096583642475399389161710098092758368393941612643376465066776120630461978777380200961381237119823194188315196752866548990689268979829078577481107415328855968676223188898860680008938730346132046658994858346988864207398046807144428608623582325529474940880938389276914431508521760553370875157488847825723413116711877952095776843480527932403921826406444269423616534165902566640430331009529353217298833377723867104824897643831964841397057851139179776766882218195112461286704566983574451826296633063403185540578296146806849888903015971078561114193748924189024674178663075309940199841101672881519385410252986812587432387420694548480544803657181753368544289091780415833390407306228513364812815994135057772782720890025959851092537695713925506562082769401750629500122277819565196956272874262228997733855094300060253404938326402821521201478602800979880743341501344310006174289354894545506538215354154711952720792816874408772741802667213647176601644020960301787766276933551601422517117778805539498622947302750520483709080081243401330598327699124654728368111893075420575991714164919626053708645066219537770230292377589931068129935167256482897883964365682305695422095052841465716750108809797347852557184263747532666498458891744108799781147994477603813757945893157745241864447392643385255893305328805363984531171830908196335705277742839838571161022373049542480607956673593844721981668594092757423873977278578848540508362374187708824150389636880288950791737565973175675061581612882452440129219425866645862718094929580868381393338987074723175834622127488862448496873464758927747626499673127228296612188160682693972713456402566576172933580852054016442599863882046115134194047556861870008881770940711396310605334298296800454227600019685284563577227460448162837654363065605196146115084838846938464917591098239828319552270890040912630018400777114617051044183318896640461584305027636381583360684487199947921469747278677686977677369920196590271694297146466628182545610144156305300319098938368293395972385060472903105570705385505241903231986926577888429430788120915847178646918483915229368244461704811418651899822973483465108709643880172138146680738733556394666446626189334337853802613374789770664446309180385130297017487000634187587606858833223036744342938237072581059113921768097115984941364501647683053629804476223844576380955186856089620226728839871603815718318079018867159511579754916792823219280822737227420776821403531265458714546820815913564419503804947312745970320551741449124306598832287257536997257828773645591473742264673214003334637039301425701624540213553666723962422717964151607891644463619461917585715137657003298366260351395084500349148506239282272727245008362757237246834292354035814794040457626404110489854769698624850442130229217047723739856200830335593830209911625872379353975322119011316467530788422538276877434385906114252366309751630451193408472304444277256877593085926764450663405864218065966823743081207896071211230814985261174502931253362854361743980391311933757461381916143628825934159846091379904685918256419882502716398925779796336899908930297974427386012395784188807440648885519410384496312661201204292690574118399347233832963193134057020722853645173541537966720045304122387409624541659280731394247697733824292465417039996549267993491297498428989069816635541982492605283868084084155654445270737011057543145373187391428569742274326189197005127889979599160898665639061107453336051341846925793659970265545502266568203120269349408995361120205422226875124230630128775838224629894133927229632011912240542383209622043833062514855149576726636239192090385583303386115807631588996782151563710313954383591126737672892728177955528775935184234583766509422958262509510292157603895089130401219055013246903772190140044724393396834137484087766579645500911877482234230438052412140534129795550152517704507782438060427237761110790311365270631126156733063506301065905963699830556203439072892841052196206985326552691590505082005113093806695787334336794405161648258531010406255600319508090947107318807498198482107114334955348446032955965120714056897742674622787122339445728589440194920528864970324035395125430697774192138814057514642251460797068920957802538650556685711147025660382096230030042335876875337971801177287440454702522124289044575391645391136216151705515021544937712920808919508965215598185238818804876512113079558194767463945105966746715447011384180268106257357260369430427196286590353300493150756049205744895930140089078934690057929360523706444645057390484322977054180741243435566808173423532829788548036130652994306136244203380198932934005189538221758247817645321055751816850092944351829383049588479369959841836109836904677237919197932826399473333577256978802701897820335752330192140958252743752871050085256326576234660847033897224403849826959729102464866691896085407827773465724247550916600513996800070038391786973666770881318900285818508711578339337146997791253674751768711939569160978963610258204134425779848878781039794459433765497277603399446594504021997492938822775028194590625450525308628064849257325502230727515168401324070996038472611240051557398449359891571655309052592808685221150868429505675350275568417135653636006331430731773755682907703083152609094517963989670594019617181848519422343369104807185286213883656296262093206582813413449688797962463930417657021100020960800137806576891085564913709107699556571059831252674466314958249891021567826593857549414287101776600770164929118700010123911568814584556659698546374002378704664214599547127341713167503161057242847721391567431609112462191655037586205953266370947008190634321068852984020599186433229453488891357737694709874997632985898584474360677894558786710008333731083234992864731931329423617184398290429239196976995219971872487868261892194458786244532165059353592610702036744830464032844210098844672371026315052391053809769333152218248016037702449607313383089091401390653534620632672720264790077956966160650355304641291918117426348156168744870376401827968701232733398700620441637669804086479394833265724438735092505266611973252051841882910609767360149381248616693210055447150195349777528641923458145359602269555712952389642486166695630667846815938861370345909053966541917734563544321608277230080151818169399590621004160550173593627626019858849799990927246968069400179084657037806990447467637504183280654071360028611806104025219093252225996484243013625962343347133670257932419282835468649622888286967438754812670110279063568903121224544519158619782525777206374431219647828934879465463056344787888542472047843871664428620277624837894556822820955247441665338057089350915213663337605561695027567170559868242061509518731893107496717691506494105570330150299005003890706909072380700783845882565713633870749156102702425854540555143836912897634492747022702744249637426930480633800963572932097104629706238516988403842589754476629026593854038391285087170978467624952433053984004266146539941883586096722503573897565528117999521752257406134754274518507387675069710560467911290698999811765397054012889500745546320148529237314882337365592874743647530705933409027712215339261824157401441957242287927075438852233428400325540943474227126735945318727064779279963379851481884310633087221056978635600195177717435645756931689910999740864528881831967617098501985952459942612324026674257833957881778544837371151094650665012587794223283529240185011171380063610046085585661683521338942256365530504774744417884074292367582560061676363262781934295524902775216532453010418367866238544760993177976451975890213534692381666649350458996745247718071376069520981230022782269906326844645161887126447974554430855537703203143488171604040447732558666593897305676716082383798250758873780338483228048856852111013618944726822471933872690429019045248904111703920000692873795982045661449793136497452714042091872738302564684412808664443397231091510995096897617596405058414166817191959292984081841042023039923408165594890238054378400481390219154003732206167874479786235073007760979883883306008520254089985487873047225919665818369986455348642432669404203736400324834685814847896511287672876067461127762037246565368855615034923186720189590812916479888580687164146365100220896142868487908888539285726571454375384239917151388144577501079748341422475849241031898906664671726238323238578479696915890313200124709000397579399736368480112872679550362158548994248332117288725024644367434444177287535214436950400226363588310185363762751159710000469490976913770747007967062456737234484124162575502231247282370319104567023534513976194470482655512177246489822499328775877036321005731516068864602806557185869081318144596290451379881341282008592329904973601712604605277742280227731115753864083177975164884369930594897979432265542518985225458891042726815631880935795473266341149477836334342530645393239850643764599045288122145235869987049964451885568165896413926525320221982661146257715148702386257795771448027031974218255003087596940041161421042310465970892486910241413416037322137953037855617638882271307815907722771038758504148806221332818823619320792379462339523935417412759005399690725148912426409909806761877767067990031558169743702358133347287474932922598868549844971804260017258204325770757687889067636064527825230383842278470338576579173377782633547479957862980349376466632694916783740864136785155923620761024438900326586978851741755562948233049922135479400513917736163654031486884535158716366392073778427030748131150811970977629827235249660450423859305777697890545164938237194865112524114621549372438188789949385655094309224563608697044355352854893022027200749434434391222288404013005612217685177334018428519498826634204872298044530091447539864657924528040503395480104906448936529063975493696743677235999131637267560878011362988688850724971150465656252688849187405705899755663838319668332614264191163707910899665772056853986631729650969489592542279358163576020455468977688767878893397124854118774790727481953275491188005158676912541523651945793105654879431353845653014365362360229042220319121527810092469413984477153580392784271072286931245939453898272806252061397427300962423796881933740915136327695393068817787525999510660550520025243448086162312901819095054968068035867875990227786994115967552259813610692710061378993804705768105970354196101628725711895949228801889263795999002222515273027535740794165922033107832612310477719619262937264930063274004782573205875228884137028494167213405107628232529692855931520975227678775825140158226485279628096827173337466766873725467844081377345544501231192151977937238375740658397800189051194010161185560895807749314324888627270453851319113279338910986439912957254083403546269470398312199528475453461149858387440281113358552535791327945773684865248774406627652184210751366648871598349364711950318430374033116453237363237638721351977410817012180887843628723922145072685765068714286719704118343089878856750643242933849987597290897391569002168805273118428095535639146369521130905703662656940066565437100945966973108026717207285563490389179639629451578471778357161658958595004683122858007151680711682089954147325650238762088379180882078591318492705737653277615494071901751442185721648443747272694626770333850651824625220588294613455261317139690898892720487697212234517632104194117862263595834309436565204536620984664182942558929332732954144451235590638880470375262048539405671621429546971883667529489318772059236547614041295899541655914902887681000711090831525253142658348449526639373147475855914708738498387083480700943040222494046379379703488404904294292453465054504535835672116995904574700925682048332243284143060568739195689161206231398020258135723651436108399486870768684483885682513308347478137322832448004146947581025188961173857641385581314141120553404059321163270706460295913469396685819754761955391985875342826343662908213349924788085384820990844970366792902353046613976883724256290509190620674111940762705959963633425737388977575498855171639443541139771848578747245148127509557969805259671983044938167189832276500306204539431887977778938424161738353425394170151787529040724271704544890417304887847027719903737440741020291442239905542179547132853091080279312700999858623310618400534829984835303174221594525194461728579674720167250638451612305380977923374208731534520166630054686369379658366436377075163413864925411244362970247826911441755863638587312393829700846772055050447713460347458322913463613314940715886688838039277053834144393560364672503041308880102041924193302267937662640426924925788848837190743526666516895967238629301915392807277557515500161935943122127908386946920212077341933896159197551024970462727499064003649417146124970730119749676272564333671429015658088399191063498183272380894021472459938881477992217969975320250169608294043416686005152531568962471493501553396983064107775258184961460410377597207488626292134312579921436854864955156633907829924138503333281141307549470043148431217443770316253618526533348576211905779618429927998169664092169660288461172377030392645889692357172771028313995579552434113569736899875571036694413676769829504273025623854395914840202520849055726941765133869375428567276035500565597002219134871539086682095980113339406082105738847779747918393954747640380678480792877389780482010377191653879769525694064939520194615342601305832565259657376086525767638210370584173281042820393878189814009493603026895328414520547759910319624107740117127047861936289661911835111470889030002425091173646045119662345699316445547670868371785826764038753220150380518601311453591088892805107472645081370634028479325556554505937459439491399923718264794518452749847602654466023720816225680212784312675565236947792896684447223909249375504314573991576052089509429513971055952910955813444827103181220817831433547557384069138762667148298139011368966255524209234195231080633481537562257988950699227226118776956864049908414049600429817882987993550025721330147274071756513461552264564025576901542108916383651344963789469628864729608008869713176571151270808442969289940713823362288599716150048855960077472887228050781651450156115307638173590362083293364076996212443879000572840412831888367930536227711293380699055708258032516078910996777968376294161855057359974228986685642333909039323798787332303077281625361016166220761823762067670628105926375558856956846914692185113665733868365274116291618568695705663748590747858651437261286448697312098776409843539079337758247018530767710437066653474746203926745087798214775740839237397287175818714403762768645254896285973915988106912512695278487814409386710134395333398907089971866147666887869242650895263467457290023304760473595924115801176654142449121060741393172449669689054743075758950441455183707486323585714025943916574674558024509473988058943451024842759272076243734239026447057112750793050161689280612812201982588863102650199947661789543700802042589347611430529691516052605671796839143081140089554129964487177126696906902579383806766707926114489700306793136654603743945174278486819783299108977169563627494291671888456673774739905243541189580165875753905518270785817002964081215767510055502015460223567204929360778521268033820805340278793720470241340286271061882457560597004863819574751604450732738802993331528873474204696978399517131329140638925616209443203980387890335601192016866676115901241087818685081252993461340146013612287085403938947898840742044745578291461975945352787350228787492575654669456625906474425292425268819971040744811856524845033702350229455803188265136408837479385243144210338910056201903280547750878283631175725316859665516233180352694222060286904579589912979384363922807920266451185199447857810510532495370510989939924558356361655021694971682965312642258314141035221032240015829578336593864024688908825145274829939982819450501812241368330178335579306760203221944482306308308088340490834118157262536567832436882391102651197436468169980894423166461317699306071239543351590076049089690881017120630168417818888143567483845470795164945875983851568573807593589679156731629859322571025907026265940242957086078201436366736876454629732302737732973342392676729661975194417448306360943864291078801456350522547235836009847229490679403417269818565434063793384770707302276362430280772550285245120926541929470035309300851345502526019368263667861646582328555227146298789086388815693841349798185206859032827947643267597815287130105605428154779588387980693334043165634197897272800994397619776754086772089802267142671546283563584896840414502681388993668298312913409491457064038153964740952577188698012133170744567139694230593332778728179819431807498740638703219765978848463609881944955709099764535962676953189208033519418195057629919781776564622649010375970107728085207378090104006521204270773073924774200320589807191333383707142931502653192144644436359024675263132089715361761650034032246622705900682071070799345683047755555601721305231980810443370672665858712687038733939952784104569239836629227830156482107639093264436064415963827991200389363003142252094454016361971097098535809019971982064892140618249419423974068264997810832597439558271081249586311650461565113724226829207798015711179959589201950234779670155903438958073940965287511246881524676136986418644937189733829556459540794668748492396266926139909381208686065784591941797545711506493985026982554505323111567753591182011507043150622532648411268087074270127781375940993848962261574554919678639171634855573780985752571026915021012972875777471215619143235395024105843817253158985444837627321874932553698967057713459302204324049339122715232900042938240857411031520429428549146373085328945678407939706689980271957413515258141483907940818778093596218846984384596818886450941553883258324299138545762065202240482585096545453947565536684098282511284215733630937909170830424564598232412315849012774802227086451020011267719024866865664366776615514256648698505278927143655536799283211392783135228482582752214370015421025309875627796230753346185410081799947651063590834731522151169309644444794859759161389307877127150769216160420073400163170254289787888411943178199263477857591332389552436631804925478033722677640760032090128682526729550133216726222502961509623974714947843181502437032007004832885528199632854759414922391329063275332889590891419889836956164619572076338754781880600163180612617566185767499591487065807945714198370809430976131621032925772601072452115738342806004417318657501603594851074633539496460763019736304888992795924563280509750453277543547518925421408261522285033013889601926245225915087971470411771152198262211659587702009853023709705659232727853481318362821940439551429683390926273812699602224859141564955327258177210434904723075539473175918657528778872883823796349167890972195064315900464524701712634120495594887435263733091455934260993486577753222388087434496357675734486735110288454769373978227201100917227413923108037998344377585728841339807279066827271461502484228007161388053707329079737112633081272989321428352865226590772999579020397936068861216741257411992654194486714988341569050370698721160410332162261673280309850911527256029245794328609215347701484402058211343637584384476951809475389936777449199518320068301742492776633594981560488992864254731575222237477692049602228794610913649214562246539950266261328777542247879146402375442121089665208205165443797247286656325882854389892213824120715791508778703888854477444578715089932078934179405089817397773563036794243894279317299102265138331841927086150404152942940724967650732682548737790199914864943011521317998265466859984491095956406762618634572203697221770189679738042501170817813484712508175194437930394370155481976173582975610113349994217933236286350477929254017143381684336816312640497349802442882791388123374650289737403540919760591536148260155107640456416954142539639230967482636224481421788753524301577281163162103776392802439842017251433281210666745373675389770983439824890680411244368369067006813800708290727172488134140680540411213975748576441389257028212745751238365572050965833937145757283144697678822050886349571456822411902587682744726812661728246223547888312127821115266852657565097471308134544817117587631588595375292295086709112876514096753907496350643295214741450793536479206288661182070292232556560783955191403808130357801492433049921087360972811395582391315451887191052015288393197800004116170261565685388725496550987075823173427866434110996032516429946303315844769674612483628700892148606676916807506685436200117602942939959264453506911671456722410528975606035824980225540102679887856257907316857830465723732681144666752608686485487252154000076315439651888383761488138771452144296815444324752035664369718471683135128464074121217645283535938397877550958808316292427844828179192202930542236780800831217610440026519146196075669447283736345360774222342493183862388644902441233540559265962830029312565160573694794927783518812883592360719157796036965270666602324526593659238152324877670829982638847348695282590196472383408500965202328118227939531605622211339049218959151271428412506163277255941302871724441060640289736684055005908546542741248563534459709613867373038576697823596743053869861256846630904249724674739477232327291440248847236320396540682896335183640799220114816151314177866375235644548080468245687254131252304179575194667723852213691133371625242912262487201463477717609136590087019645730995081515054755400031221431377797518230014371348769853106660612106410873217653016235933759647590476540360600916070601136211520900349431265810578840855503562735644760107491651755889558571646994077550810818953133960022426689658491995274286455087362477529581938919463448826488020770524550917874582503415795389607357786481512349494356791903873838429284206379133328958225109801924913356845071430691936679941225407072877171455719827294776576376175470672946683409215364240850093601536393386294127352021854869219025192167710187862140522863068575484287650038218488910097508514163724540719485646749280322501428691729134809515809856799131111935160071658672664833931132641477350561037506364544344172083002072808796956794126307836426660245574914780230583409629249333367713774566065648765380190773398735511801005651797093144199777013690210125576366771216234240762441849090885086482984145172536214880480660932458403942808557381138620027947155686816381085533543199850977060448496108890375709782838930294211312928021696945043389410300896191754124528725219214691001558239970515778141220164332619192408080241635596110564348323911854987977913347739469697972619200110920777127001510921886533486083441874820773250522627833255733716553547259144875128760597835503913822082771989300279973483451622246259929068250768652700361497951734658900937570486494755490486032474257816352515609268153024858836288981294868726112384995438003738588699927256141172600282510132832255558651753714828537457533797921949682703082468913485581793121162597046444694936236981627824712271192661888175986852589650974624722163116895722352713260907556752638227184379094996651310140424895032798047953862726600109458325121676576727930317144312531197654462760417471513039486407035264588485644899281096896282772809474556414240654843898740447641179871955914409000453214559025298419436540710362514956492507360003525379576144392030170186505043789170538989657521794041842634456382469404201126209255740776963701366743168386641092129135634965705977752433863502303565808568243054486714899320765700651950395698047428798674330850633405349598497118010431101618451858033875196350198293952251755229335611874932000039184648770576451624394751799505798329093725496660467134523382095407230046728867393744292288401865725564699264519425892826530101331514198494229039324972480004533017776246985065721487163641698094806778098441954482337757207932780208812420927294225446012813449164825374966640203809414658265871247229072766114152110255914690935923041155799687987665621300970482253782346442353737216420067648954668616873311760469606345481319107590695559470324601196929177994844202198567627374370512751778008628086772448732277342540810321505039281577136572767059361150788549288660849270007206495006340406930879506359477429054341945117179029445792775442616497172595898533302828358974024656494682095152476043152114016086801289902757506885849601121799307608359273834226734872329611254813525759359596599164628129122165201520738007620753768788616811595489664081197304135109666334799152810845942381715516194058590926596919439650160987967611741791592026158797438400121814366817533160015514881040429173107815767007383056543632243822411488834566769580289200221314857106074954633054129883713705861071209491476929703213851068570400256732986237756766478215486239841400191378818114969275374026847558361968596434806270551689472300741572701273693014687588349753023270954898034078540626155407738144949381091826434872478761987035280461279547407727072945411504766486157110977159098616089380600422009760526206863693269739646009354936624234087948337916651509565928659857150952355659013961835747383250981472200592726400548923247421366638896511997009021064679739627252230545667600695411608010000548914281840710689987552394378994115447814152375811964767762792787938663077742380053221966808383894727793060707972951512447768510374576270310389290351461136969852300734940754199496888517180516041802164874701998926366517503942341956438642540812586225927157646035178756167290012709586621827497569180147366304240606669115248442110289231175188395881183956629740803132575661098031349999210772813701980513291372462629805471849410731151383052517328940520687294275417896681003688141428235261744882905697560355007991204441908973249139882354303991098564153419783602368526596311601789454648207659060101068870330533264209667550793388518286645512691522619327730705997520834599467680636455365910024352479784181041117314009435639237998445994083348564843557659441729957048483999943329733192695212884398424188308749372714263338583800758807606669788311228371973912392655106728732486721748052107731154228423084407905877641902528559894665598867030657769965903534586560132165124504588595479622892373769047854103219235489400433563010416100651788878646044726328893146306721775225715275068143126803393307405836481005717541465049578565278925364196506191619740353561833180041224904460554959609298650294585440661446583351572339626138627877925684861290120900770340470720597018787152152071625212433120754887162583431997064322657891020490129120699244987268798321040075789889242895040696236003335072019813396533546271418622619668862979345981336324842143755498455563656824281651782716201293922370907046274216207914626370941167807063144140514029344572110509359972750609234337527370144179386229868649979920054480844275657476476266680652185646262130945943056652795619523923248049453493691017865484826939078455568819230803210297370238434377985596198881280192653934659818585377938426230780090684003241849530985994864540042390492145220498495823377567594026203251551068989707506656096958867022583515413439694162185604247788767895827351228589599722956699678124831092140535447057349280168980432997165425979693043371330784955459501377537357199589942212000595601807747457420510068200724088784896816502244461695493745007839133540961465579015993757561990607371532920373439386478226988846876969883269801628160721940447208069092251190805326440029514945105159416032231890645301047402294883032356281424741715689537652352821814360396174362546081406421127847787062872649291870513722855331245574388171196791465882540391194653577642125117977434774931158430935118781093817144661060404076079431238669777585332314211793502611068157145205440793105292072340070622199145745313569669772281031510330413613047003185222732596987146291820733318538305764432592908392695102677565697404938525989431284761550298697287757958192900500434256372452968718781984104147377497324325815913423132268116752483170129581650574910064220141342645937294965427106188862924643294723249923860599418657853676945781655843966274904203333386087472353761022512361425600885154157638923737501701971663258619768559496003315111646128476914131561485589844563874433106428532909921955505188854481706298324262942465399919702647515737582628111872815889515109754827286190933611679377751645281546242924587980278287768839416158882090831081112600137624521217102898249990380369096732442102514353949083150799570533778855920907546190813949609209115478923798319896665045583711554918414887963621560830933948435223131133442181202398193716343946059394516274766165576934177931685609125168968532364439052975150259381954572434832989137296760392831988593158727499718556228165404652684308390840811090864701100500639335952144553210030708776895804448591641688531820918261285087924072193816701283730363571310159809546727706331511521957126344000280092892392749339634372572839071511770496357003310980612461781688853246053405016482556833165519374630184626346702972114855228034617533309239759310591072803283247051657025786327536246261025897154000217568003268294078970326852322253111827872811952784621182820714753995910033481138720967764216280973248943461788048957438239090861987147199541239308300147166361729931528943265450835066536048313871387315305241096004250583657788298059014584956693783610059372134522717826345740853110657547420961382576027836723795682544242147734393784342539071928344255824567973728554188134279166991352970754750778344571287083925114615818227142075187003036811985040083745318992271149951174241846301453927938052533215055173650465896636558141245258869402341230335859166962778910503369980563337616410124428248150686930362587442364760840218559998720368739444874904538244240627597953073578345230173561507405973990415885487312516279682798633834271907053859638418105871087649993034709581427316623662957804726122573524689714110096047519790304992864797760294146267961021646040022531240647400042231370432563957197497882923728654739941866163858764445670434150546549592215309556661485674682327741237687653394987433834229610470557813970033973010735123505351725718567758017635575883792084058282046019165582369948101432200235819191167657136566949406178754195249906974504785565915341367262535935390555508655464960127955651207403331274461895391664295745428002654847609195902168459067364892028359018666464319763213857665589302375077874459795748689024170732776916546847751368481399460790080907729112099991471071571602694363605607950119708972767818002705678343878631188783644261089767556763776234886759131195506725528459399912750186005781116911492599439267617827337803856479229194409919849038191335676662467341974738724599906529980296990648327097035917578747595272871831932085239857063549353880885124945963552100220927133314811833377342659744770735030629885893022092554293442602144773294507833448718917481208939863813585284393955943931632150329100138083633298589493774373647028415124524157527268936266410166950621151831093714053431231270615259812473365858587752364275503850893797320917571305371604245452617533196273229089128570940053643142212071940351708415434660299772764630287767136834768578525792807997924233569125863284377797818537870139301035631614798126983383319865946656698376437619819432388606689059128966417612640871568971130161577999329361884453802768540104427794782584375224204190419671259566532875965622262265468420635792715059858474222060263437031493525398534557274117921076001165078558313337763758427123515782515435468965963523370952200619166549131573592486663082788467308315173738802164010096866454441299339927833615966691070611967112202476890324623443932101943035654325281807576933408015442280522895434161123904524201254393466867414735123897457400576314363483745452973940758489950019768520420932218989331196801919694879785696550866968193218511968959134461559426426671797698731776670560962067093265593662651201361621074429947234619404094187803760671682058140438573407025632238271068489757994893392930704173165654021344094419788286359838420596331536683018304107475694270991608923427908791098093919502987711100432074856911429996083994279917259539742073818807699580311738440737038755107766749617633336160611162274280160276168818113722308007654098823172658033863087862599237937389648581014797247649411804792761824179888031489236855264799494640972047753672854966317245335004398841147793727360346377783172056840098767232266135923538629212200224533006172052533027892419641108939343770793459528275742964510715917573505067697184890977608166902248997901267527142520269934607951799696890592900219104082934425383677593325103110072252688948662102487352119327931733274203879378927484734889573502294065605620145677588707065536962689685699163109991133892891355186363263325947376713732957035912438347784624402472947352511500978988938694970226110867512151430619666545889185910011562163054035092746868923592321380524038740888318297723977344488676964252423506151916259826322504997137597081949451949257522887666726012415437614278389110494301904440604895365306690708876560615580510796290435953416487117723013291881692889201072679547145316936405433343307690251411027886356467344896230336609766159276700555082188956338356358094083571253819198010781434606058027003660074877625693438400113391935789565512660100045813465393631859786970041694061456983408501053349480156045527240364407852901172923781954552202957614886616228265654053553213993450065042228761264903426024954895374665859809620095952928262643116028955537476686084123680305436050846977249051134065178096279897564364483660688240231090960533143643245018154913243883844140482792831925635559892031263886595715683727236017271875608159383166387556344487043118618611634792027054428536807454265570324734155671050129460701042182947623465097248958272090801424635629645755262895323101305962548753172979227561666668748913417644373217653475310569877929494453074608145075309062298553000025568364223999757119016948002444582612282574686090593005625222671197899327841867925168642551425327495154722984254230990801498506026311782422341322376537288245380699829632488535550590593541681820527859531638485365337291404315868447905442431748371252825833434923352312449931517142357057676259359174892629540793596375629799140122095253887438087212024301504672902389323027691665381294645927582813445554769349039774196196326900163760769425752606494004908632205632514225405599790882111012816087551942736956807514465107790108296922903058593249687776500845906821802503132717843923309309542868465868974878600907738007032331537760402124873325002865310171668748268883601527401233197260228381897567603992521701440252421466829005644154127186046634847778444877241130663309442545069266884032457016785537914147664876256484393324735805176859337299854813674698710366053347752114409890360239414283826652891067597679556761581319610946116304778719927257392047611812660803368022091772308235448984571621365868286742023893961935797668476792836503737287046021489345541318143806022440171238354874838762035885548679581570827237268277170503477075672479105578278744101122775704840165430788621592039478216953540741049673376254923723188970871891986728791570285681178753380737479204616201646550447280258002102483184675021134845163585701419012149929881728671031175673894100204265184510301879645573970348090217716301438118738200845209709520452297509197429370013075154283693438421537606768979970909723491127176167059852493923915313060536607171407969256771976641866497279936640286257268827114858473290603358851985005270673660776638078245420354656453451207156426824430590746657390381052672736713787406300474816756998276079980921540138420164760742134644459309898057202642699845194301097264612148289653476985233720457956288441995484109013613145587659151920410474800050439082119873697377360824823922461940530281805532730241750611751760032202172403285550581204400275926027303245194000899734666616629605988082210067042001919034793806239730406716960563731714278345429296455349070348413926915195769225508055999628427275100199623016700410264858868974232716352361057081100271299749618163200118296062119027438143623745285295956184425854255758927524718084460844027650129136802383527974571253239828441196227624789896817709157140197412927495026830570666344682389907090870817811044747776301584045002781993070579955162035117154548407970239028987893075401465006008803055819429985920096193773653679940459699606632413357967083604820293631382010287285944808297711126192204999235761237430780240803670376042064143395093394021446266418677881059926287827468409022441259311971610414079888728901696774762655581898856973221717816978457271269718513838679372286702911109799076567335447676283193773647092178707086792398650108066511038649804537964584272698054596827969602332958694066409518431800585695999976939550570205066861887116389532150683149610033830401590651163760508227617887458135527963124309623814235921759288832642444359324386866566940896819299559479170676064347557068043832318962293546699755000743281074338602773941296712378297724164649469329004990306335794023553035550312864272249290311562736992629415801380440934591759827359261154632581852452015193059520084124904351055160951657551004355855437505678513662525328648172893418633952280879980468668262129808946623422092473125788849911711772128896178181906839041106945576417520639983635737326183993883425544562235840156631289654439708922401469094573292631442240769266928983170480986194856286279918232818554088673585820449553625564345969851076119505683776657216516929612797815366987508190116231865700153730825453845160547318630202108045926688040559606319454928288820865046291787870872442938647387832393480846011251007714025847173715825200309176986934294368835772151536386821788094552134529121633006456323070232573879665356600668377809759076168026635934637216669365168356993927012632357002248834500178627225089005506563463804660920395598926458879008427280789690034515158560972595882415320815203704732500866648537024925767277433561240419349416586835405702835100114135010658985349186818202599514794033292974974765084255439109626745080485429318661078279476621601464617163711141685408753178034955368415108897219996111486008187021518440004240537549989566659725795654085215128273205838893990986466279861136652536563563318368550582848821569937940745433000917779104521316584550680495731295056199832595733778873356718475882498174627866917656592137069866107408046709001830752298228645590052386073174788125632856958692888142308445513296238291517948250411330145470712115701521538292861705819611681552998409789710174487131729499519986599947621087072411823590959454126491346680859203757575906453656813561262114579512759968911582553661514923527856245887848997478102680840466797024009089823555538695559308161661826464667507923571038891382854911641554969322176997139130325088238606863919691977166217976966788204247860919900449800702656179494069225458445188664430034026944247143364308428377155227490032569704857377175588096572521292128566907169599368511624456486823525771493483979153620536987067096649040821752612490432420404259552378496066008996712080777852761613299861155101021539453868655427425125123973545480140734299187641880726295510225756662100334061330546764885725212444217242006915299702214914905885627705987089226947134087035063485843748052455676297455434568639036288190951171640387633606551421421303733166661003727380109478242961851244521759673813522629722726930843679538884079113800623230544975830259355351957958645595707192918674168082825171253810255109060797946890367531119668203810321576735670118946342670365088978189029506450693877749667272362405196738834686807736890880789399611494689719562678852959612280244558251707510120979256675421044688074476679560215554622314280598096951758563459607985084065134234697320623203942579458412443456475572948751071027705530183181402465807743917894682213011789029633919316111602243702062758860988995668023507219238862740320638086698763575399787612250182649322833673346262297809174994954377375743502604727320023707237594321544859292063209148485826754054367331853913138397123617351544407023694191289446190214092503081578921753470207728118262215901979261280902418337942492351794719837862494755316101416152076247085256965294657660211275725315936002910625072084944239927131597434619980390246965705648415225248908470021309813247936856224855097497234691288204157693810000180942445162609458003359818700294768302256086750681043166055181432158507113345226286462889922563476997345286212664527296615674403279572400605546994009289364082129315333175182236160059940332199918387178581161716029758498611245457470543831608386261722977115031458731688976764363095291775475506683020709061439725068601364670048414950367638551152364073571749595591758181613236292712040637295529292933036498545267182714502035571999701612763652379118213056928163341070091144965003270926681503872569510788175691578078953670582819686654451456192525074985085559635940737761793585154360067712776705119474878864723796035249265062758105646612655763739549401708631555186454936125965160721261772996314966554458820738495505896469297786053903965772738441847265228454124836592241454661743511870060724806365710853767674063122150704326554661107817820593441685389104485501159777045400233602152810926162964862122328182692416935813801481369714950638368600481839036235375452195890066426323547487728038361429613784238971058334676389985883052250498588065617305845847861162990056552462517687435288352096700505192056868470323231320170794462319382712077281323325724866346393487640046845678499431812059133212185451165267520387572409721677999156534527935326949853243552681825754447808498494551877086411026581567760353227095783010101267648115950646939484755170267091562137009912261465919749659948190357429609400841878052666031563706293058393477068085169118240702887338657312340753604761968728673790404716280608800813921721189945355320010551600202408990968456840325637550052349795169922463663738306168586886713531180331176762589332355828566668525656748369226287618414689258457433851106404765144014332304743466813214619786990604991229588990833026807922074777834064143075760554697710870503785886124513685949618082818113005553670613163380166803315772709955632934176914110107106951474783819016558632396181791367024510225076240593473955621372382607715997386909412469021161666525321041423815293762731565051098919088285656337270441454778066928197190757532843298803499235798989913426116773595869257052772433894954308660385603075632897735706415101115696039765227629859117916550758801582764396041413198387512947487803109319115410210372218003651304609320104152244953157264235827099594714410836788708798392423841388648307853375725736212542646716767342804848062641787218656334114092953609770829738890695059281235473431104553763368204341121684245776781365695706547287029516420347806787546471883779640479836627935181738006377273424962534882387584135324707003042760524657957830302800910947696785341804357144755433824785680371606881327761952324577561465970594495996546123728743358248927170558958602229981357504471052058696936406100910632089954158283122603734669698585399014090062306174085747689448912775698310774177289637414875488516590113385727603027079972634288021926281972548995678068333565919642830281046653403508664234201321419977877854977231324761944552755356276827286676798273889396097012862469132189120302207135911394521707596380470904499232707211532052546285867889964851366540887381133002171834595006086268609073961350633963908763828257042955993501474913308104468136470374149115153321214207592131654058606121882482123832424458673484310922310475198036970978921498255138488655241211833295460666408636932610026980987025147074477700174115044028662553097679141706904095557500336165902106102796609511100755796503368023063805890957016393410908482583108304740063139456484766964913082354829969185456394012348648170236267676872146964572089669280455513024405443223163029747220452337684766767497329410860687180562214085562222672774316801002644668376913477754328492152089942745835553660428056923933283011897785661053974901637553590722097353310007832172487161753447816487912282985097612914107280990093794859616388556726808460163486510028713507162566582114623999133993618273947125529206216632196277601707272523617748940516342232111114766189089393260682130030121324292806841825638384893997628040577375079509418066228521538690120940622337788572054013769286954385254607103928803204057123924719032170797069367077792192640632291294862127316045652450285418495414110865087379571500461634917278633669825387771248097391052601753775070099763519150182784462237070489922317139306657052269321197579924840521756223497297613455952009712681916312160619150541333015115710005170300948113542888586641350529391519904247718738109651368951799695621875580061156277868127054408643435568711387175575556898023716055985045342071772866781639404492153967945575716375413350299554228270130191452155744384161364221077237272031650092201477135075250948257803660655520190274301903282119550886979567115532622497778047500599674283877931122411020320268018067969953833112528257958580919170933543521341406343379462238269525051707631965574336165425041261788867301688799158169310532747644208162638727347611069298217158998137500551100303896946649701965186706523634959705177346563988385154085021118035564691133933426232330213015946190412427208392007904970496735827642950258861101735326385261627365497164698696142778764135041374981444344964287599592839965605206388142647036834518760327764166319665372372166058871247209200198373127868700306897834184558338627351335355337857701147052416313569576592812564649691246261904264216040502749988076007373810389567092975461707459023372243333188101453020294469528124255519640232835789666556996748494286252206702353785548277066983440531198129301078515883718583916611203030120224599035193115707689641483281273605589086777455009236909467128713988057979102091780390314103128396823270868587052646462445847407550850204332585343084867206179464090477442142990235484882328715470279113392063181986352526662339645267455535623033689910355655026480931766610813580428911637246287300049811746763120856134620686052987354511415615007414016515448378770329380566915321397632689220201638640462024654218724865542328350861739517148046450887443745119027896804893683859366186317759141044259107774244352898056215060943346353235707078263937025808891528573362491005090447795835450190322080405733628253789823403730926917717473919576131537396828251470835464386721425927989698196760273624809778658768092885541710920005833969469260020341370508907039234417485459212054659229243190713601378319415703481818355652924064426003390859572411225023438787029500931934563042494630743636768737072738901215026619976119426139609780158708987687101948407254152879012306846855686061612897600803779275198424981544490661116995233000631443292647014301648125520624884377092545604941011824095845882091271140646011544410180507737129473806036440277179417077654256066770214742601576354255574073109968381593832773820012008367198830017332555321825228944555747747805901581098065074539446492590148649651884772753914223655047485216475359023364205929721429137620756470365862427137761293643830301671664741544279435295772599339028910856642966477399191205726180241325638089090419561365822488045774734244093716070233467560925122549751702981504947136050205685646623645636789061470277766208610619248652950075072018143295802953674401645118387492900153988910157697708932261392240497881193935447933865757694840307532095231724393806282901394699559079726390262756140666981739236978152826368629083879746419821711571604980350032187119324586501376261169849978304926937148935624499052099500166375653147729058895430685267144279016726565145018194148151651317010571207807629290877748737563700447669329411375652937222494663754479514737490521793646500631919579355859754363356580837823004781430079574895965146486823046631830074404109774568025516695229013562450873378588979395960741424636277635779637024368749976414189310296596577275674918841045410370806241837864706151389460044727544377390438445164153612963951086601557650286122592143218996926213677276476238632458816669489905106974395941968716597921013713334791237239221519460498391318323352604518972724965535235783201149433416909931821612814451700922021207902265685374305461678678864338728034225286959642750370943294223787413490572170712201178218097819387242493857395005050361823405734571326643470450556254665675046854068448846312722627198782401250190202652189461649880771530944400701345835116900085649580400387618532897504282387057486077563638087636094302890777555300817976987836127715745689171852273030307135942715769048218722250093888648445939429817102492336769963260660626881443998485790616280909694654407990969077424749914758348467393331709030731094394973216502947881631656813941896103172522396286904274693789814969749949322240815918733623490274028765680879527911346184523822694898551006968524748161808709975410799722276998641681247555172310405851339941992024672828407680595359390836060088074534002860217458784503804433782230902236876128797254131157820524394141468579210313917604798523410924221938933581401573387288563906490778463034100056200095737995779724627990737222939733614480152638802616457326908151298481085544014472491717518206614667585094841827343332595277170178662790842184154768259022827091432427122505664563013550615122123448418452579564205991322513217148092540364537801139974540057821870728952490984181369652403615535514379689680359385733100429972082852962538272602367424559278101274735509793372942284158437567054372602251620795343431152538529648531930639792383980962297432452595609564240048980410786453258638129255797982477947393327271837018006435291142343868483579284347785733386234364639588726816338503276388122326502704877471158978820726350090850845718843534024961666877380182357933465061818357928779908416958697521154017359263269335466807065962646251623735799376083726168677921605261866097617777935408406104818537817320919249117005195773232244187261214671869107959248357763485674943834636783814400355201711817065641354618651089114143049360664169250730636068900367706560164847368287478828165574180698232289503496167065201110712631619729228668726629764271850072141999803553284952563981329862292515690908018191221756878553147405297041189789555559992479278725644608625243585287629512525938488688517060966932390100635863480725545451968396311323797909612714072122830732932778361034366640835074801244169163823056654513736330438760978120827892174317140126692009227136105388715145692822731013566721798696889662843216628784341492561085458643510512287242136563123204273980560168928085094937861513551869354720097866078172151159297142160931526004558043361128845136794159545965418646263186682703394944429695672345178485025108179474824158905711111919060761137529022768713381510332931603138620459061794279851036064356295624639954674136199831884884749782379785551299358777989545478709157302288691152132845224146427727378486095020360771306970336812942813350438150579894524192515120960155713007485505558201760809585108610073826267116244750068493265389159823343088790393323125369338310554566750728632902361143701431389491614568136393198575287800603090931758082050495617008094844392906302407733275838602471534154732655895774734436514656150982461544406292538895170517963735911419776656554245130671408918898996445903075108931400337996144313679110777820635334599381053742930908198516560321960072472293353497644774995937710971407405714138527821522476590908292269567504499477712012948091912867144612474145955121178982198738118355868533782378873329199985934138144790434377083143745962938556799641510296234176770072303213104424047442267384462343180848820158472794046345765898179208710059191726928374775082495790419950230601781907588652177303787686483659123734018895059153514663846377506121099603427623039605935765287748811438522724741753234022539326207732897211484387638560622000558447603450146776042231396646861115936380100125290757726409349498037752991026419137258815521552333550597244337732393187570834661432385367686248600369718712199702205572110730696747976685135989669599392621093173211122290996826339687237642053572933422510476288349427549556162863364717431122216255342509826957340764794744063556251553922852219123958594025274510811449265808931645463726775974807837143661916893017786859008291741746361652888849557488536976176581614902017583033148648864083373112835151107014049499881752156050219482409141595580234840099210928409536420378223742447572631712301159323164832544212334177742147695084256395378611048746825450605646852555246164220169206217885354919750180826315622763691646075981112883016141276671077560662246633165982029263069789971516800134398938935072708839839252836928972348272865647592518707556606695514021619246463559045261779342318929272117087560327128423080268144185294637466304796210318080392533767688780695732365900135340812422969843661966030339506344318427771372484812909252256743568932307794241774221924767113171246882631766700166050014599046290952647878604545819872807206670249302502953247660967184163568883319152134475950768765334959027738342719009407611485629692622463725038673986179088117650537895469227777810344419438756685649809108488371640966689046814391346108884809026592203885866995545813490423021910667810706205178687634866079702730818000919253911578519562577465615639507816882241954190776265154021682847135491872889709609159855775394081653057890524707816252223737132240525928657008072044963066362341099683692770318482085545542639983209831972523080044462981860889890174625490296002506632104664040230336245099559494895993263493664225449139205598053107926502151757726234407188729815304021281649456523692106226068298046673799566320608022126465602778234866658535093314637580949215805390915518149746467510798873733422529244661045803680193684704484840280029359288778959057602921568298279796574788674946753136925990041274613274997071573818922565996881516402802088104962931816799920040399772654342333587544661141070813869222253211920592485266545582382524745830913043501688757202817349026957496568022751749538851870462662326576479659838236412310115869801055972927895940676147795107893875833329690626946699605135068227436541119503343473510965998448884746494901321568970276733006033640592956386317734056692643564679120465651297313520730094453222146038048703956493383007185494013107766371435199372198940318905571237381435275784800502686757234134279473162803969774594895114967958516349632076578585277236439397547192984564354949904458309311453718075676587355440438618043179137850398903940463847138680671970521468018196048920996892788048171545114213059910621739788776498989010927895494961477246461657531296954215391924406289131840256777931567848762104596245038304948285370379549945886673753719020323770971552960013113092712415744344630666273886236677194427651638888790767221750742633969512067897337329740587377340436252148082247681478832738980803939406727655759063661862625758128127346754971843950998104575767580944567961793251675312503973601180254262830222509854197481858761052952291011182565224870147553736941275963778764403835423181965847209818867707554099574074274410768661509256291719435506859507996977102851656271923210534424307515834039760243831573439354963549596352165699868379238191334860801528327956675287081637509169567593413526401202505976068548016302619703215481681293353093230522129228849552634867994539473511101144773378656607416312487026310307543016114368446647268324989757185126447870166495779356995207936885992766474313828191354390334559926719352605385186434661630849152274869845217989178707990444192559054386988692479270240734221035333139666183595207333155271209645667116711834495381228726022543447968566678062711749022909674371769046804631243047038507201011740266700509940926172657259492861115646935944140513382990081619814490965481104705041959990255214011252841687626464977719066348867587816117388704642059384296077525251466267922929175322795408011727890870601975166694706625116599713900633376924093112760633628470011611750886386098022984329864720333410988159956971004313294006167958667487237971027441314857167550317040593082689924423849571635783201300527919012905639536065291150923740645632055587639055004843857466521087950188014012796635853180420455909374114070034387785878336142197106833452216693900772546170223201247934489245891168040595710418776193768759405737360286436694999079567344488284239843449330922585118242912199351957085619327686334291099999261571030781780611694957294170145521488854744873194180178372786425058401905299059087569414828673976245187966504754719334729112590946155860013674966767170392547855700841299227220998310476290977488734287383500516672103599587714908052344370110574220628319634097318832365212559412621974914143210555500187586852734062414747602854019530167670419035642130091787259346585043264084068639097500894620109734250288874584655725696042323625418729764945314241388651074416055061538034667436773937007798391293230306550474519245636521402241785855723288047334580192581635985982306621693773161998563656607804192876321151594143861818011864299741742788777310546905052646460090409797155588821455681955093690831818115900902990444789673930134276222644631396992575029635790060451579672732540439378402027033464162215736881043964193398691628791626222994742123972637777485703698496861383291445557110554740230937659983712308998417907657941475184666371823918147141097056422835231395305935740102890227368137176973600053066610342598085312001097737781344619286164313256344080917020032068298244107776719855148105274836344525183876069099001879673090773868162748178989070922175149327880160908796374736406969100452829933245872307564529187713087579793266660238101465095657412893748639021450413683820416285871166741354085277155841041391117269630247649570547111051781127889619554564323595579148272325080680015389621208791613344713375212059990814881761897253989152961470939937186881183271755126527572809988491939731297381727200809857442433577341995009128429196442316491841570304649213799151624724827457062805865438015779817068308877665945393811748675756152920350053347557535366473096379197511308780284004177723310395139573437400779688352184819437751572511050775158466235299647034089017874943234377351219001910524599004154178001623682681354431411093259081626604109716291088193976437815637935413408539774849720351658459261471807560239627762780685403940841890771387199267538357349958426011517310343093292135371177968773120369823248395875315671475575688078298581814663208544523000133955258900264162934154369680547455913416340175760050798195101179113674965645825575012268285746425011842327452949682651358429231912394631692883442341165732645965257262493868856994594682029211667252383408984954220353271139599524668278279669840707635243009485858838406107266201341791293344276459488493451693642499558448138593596283402972135917959611407976617531706816174704266009855204135849540340935132205283737755653391607698209695511716680279628371867479094900755769791866250780122182749926894365493419039641168391143898471027868178181247843540065328255854468714645838608119325319444831771966289816324065937721644514287239857103972016852277447802520849132676299361647329101304809369792192996149570780851028182737609303897148867493274500584015142330996540011490545192000443348093353515763100611155422039387867573393975360668296531593779622042653851488251423108316793592666261338886121780302363898445069950739614807715184865691437278791340614086719500409449066578963597602089343676762508985122095085321173192687975650860602130303067524539696330995389554002931651621034381182603587134014812622986792793401132523399418131476615625688099405438067929884087082845272116813859695768101154639886208657621049789391761697798380538862564408597106043059867849675793789224185152294824008438260558534186235803714561599109511204286509732352796467606912005150150272963631464807751434229523628306541501442959320750718214030942638918003094100531346433680386447999914728538456554356047880135130089783393487649933707726492118098198081102609687356962548827526171367506459820079695997571618486248255894631404248990132807425028094677959466323451248607182869069533392098309804643667608099638699950986263976561247817911816631771319752955069685506004647000337542524814968165574753427203839590687451854629520538419366528149580167642766302440691974623698396069512779427022661720955832231522708542485547884108798230808166321633652626996259539750491398876005048646980348663078586193083194051748139372565579842554704028855566536377952674669751443745542071164552985229647978174453847823617385414374318239965510499572280890084564544525743574670060948285594151421025720099895894761891267713055325930904818205544932090206366322782891315703422097385957628353079924788615929986558682995091808491016694660881580421028269541450635321963401679576170089727619966002493282180035889439858469034573303655501376873075643909221479148471994951117370226265586968776914048158324234302793673143620874271937941033119184799756046740176088007198518654039914930990040740445827708822760416057674821937363296473411586975596447559352742062259504247960869486382488768569768549452109399351168074647277939304684083129496217397731074055116775122455074957079082889168564542261992241610861483686248826208693765401236037677547710612754301541749638057418668069463280452047661685216184485568405141982248740906787251129216499867966440546393501833853118475745026749149524334035688584687397065410116683526353046052332292120429199415052249290938946152831824140483157236847244105238343211415369950089316482954949485043430283917028607192263323709377492175941606122310547102822036320432093181358976426907430147256185625731536639230222732033575441998008875018741231847048713105300003277302972292226572888993146545860904310999383538884943403629431629781004617720662057905871292606469361371947892735316775776203976308722156962804238062082923007719028057604653339226613198327292950307710257020981161792568624986974276083292111573087316689588732171492827245580485423422911908130892768233213549444802181600813698378570349289061224175740298336160154926184860920516254508085047009779039933760565275003755435300977570983020492159104359427511812913494347726885298329732921233860318985564114642655157924431799595809947700454855598701218818622650359399836338331508722207419383800914395215645527688896687330466738356253059802780380456969254682302035913285163661253812714489966380188617769894273712035969701200152608178680125669813944676627237056508794192809849013250565398978477944136665768302358595698597347231485637786871654770059211954295234048433375254266294763296598738265109318267227658614217248342278717199083535449533925473962511639124406138937802958629769903131683719121064634261056685713339647047441085384546775197887950157908001373223789910775926238299591403289442327982438379079763832933567397917873902821568459620625990960537236526997963739204471559784334417266267165046396727430497614642976694857411978913470681790593715604578484819746814953798397169384539789380061742456597834934752286753714991085255466165319431791001909050083719263018324165551773092753655110016278360639023549375321413003390680821034727951738914986226808365259197641453929204668536141472073862070748907916000055037522263798516393321859586204754334383881137817166952405666287064551008612969292990335031896860019563485514629059808883823621124104852233239153720076149789484624326765757306159317758170002804359958880773422908970832826493146481692191943938985851209239698535307735357792575053979681193049159158776037684953291046538564088354997879143230742629810952452203548782303931951474847483995215529335691838541044381777474946174709697401232300714427899453857713899310454796881074172770939828348694235458225443142162806921159312933826234613530456126806488065304819352970714338472566384002467310908395055316292069610339485918683237320314922410621165451546850208858105100487157694104207741811937552323149008714514291838726048479932741601651561079761452699648709685811036227294515999705453924205643450872842158620562140152819909491214752609073794351016248241554375179239754726417664833803994134575020003355680459529293440970886202492371271897356571704042890726379592608033183151281000710414964774772414083210261623871568722631499123539204682409550653976321136926013644545929361398918035503180838260504238178100752457361416276119723488583114059276872361349530802387305614314302205755271098697398325528280215183697776831379595165634877436599256364348091666903128226818639674491422449691779169539967051999074345939308135528229352140118484093834706544068433229260502382437902592764231344818705650173209398559709762315899764251635785923680802625483009914249237366378337034058530496355149221669021811694637941926340267953366009667497400957106108658677882506588272179469229765378183324163055490809649067185221916452157746132584369138582136446557438703461190357230908205784992145713466023919041689485188272926518337021575469834106069619731508706133095295376568124109318552327702278036981697583359474443401755465422660229726753267043912695077460264986943011768787463272651634664407024789756980164407942450045131242364682070851055001995088154471328776782598895809629120548216027071062971782997313329259877351423954344286309435257728773015188933197926320659442422075336853974964536082625206745639022143990369846418097121917356966541428491128509119550631797442456271030080819296281795713539786869761072517317352740255016295903735128800361599307560684193717108672314485087840987645631739053576383319397283448346524902826204719662129600005004858139017690901390678555469204627448644762384365404138265593177553169149540088108819536873539430232087960172506153319456371914831074191975524704032793041100847895480873191926999899032316589713509129744030000849743012126816258540301935684249505572795214437612878228516548619087795066936726381233552167955475086088145120557560081255051198500899416931310397367995037619009769008872246928975912171245111745998325170811793505904945907005433248234916543980509174385419033489965055169395905393071260871469047995036312744726426433444591859183650740882937628855846355776688447052520668217677133162455751154607812709370348662484610401187667704721865312986742083911099371752287903673820553029874844812859240894735453838728264561557062928896543123596886341622099689795786908696807856428539706049260515769423586573283929573317712846067527304633842193800782282774513694712935027664016517276858151171309527917243368761872283639991907612909402492109327255467429926874842240346240128118480577615738141575575568082381280561408505829000375186551634355046814271371678525299910488470200451551032297667877424681498613948932174951471798688907358630834270178174140132957694424108535353035500126223373818570711069599855879041570732318762890436553667440395390876139469797779663011992658032486125216570112271694669290829254482803369561689518817603740915135035105371003704068038026883829843214403954219674569750087980150686624076928857234467719411513259109898569571576233763455360350514996496388417438049695320561696645912034758545281636838712013887008408269325881932372990733148348088731867002222683257679924923148455207279052733330748879640733356971062261394572101038344055610354835271055441545673444162041766367031473804525643905041280026485927493698063106210026346334681978621110128031205787641895582155876554068292363047775210071844902954118810634569510973319678147712739488449261734104560856101572676378767838540892281189558924883580146185281055725146739253081334314229191106770301905529611668439835914702042416696383324352777439020636249527805437380360845829682703636739539886255889896616653084700707083075068930570936775101566148952316788228460459240936414976948834844834848225727073141596795305015999529223804639195134600865654307232256491397245465074283986163200577644877211121655189998933073602105792556380716180913078403653243957025117472180244598585733280697705935332086927591772256693707250035284312037811789541835538927183033811934818730001208458108267583032037590834954451255459771346206041729354051645865036563530971019896494437502969156284459947055849508784654504679384285183302687461199231779328184569319175715046509058609463389580516608634628242515497061388967615249314269978291059570966002574720444016423890825307310485588943963685250732583124593742786578931625014924210299864693479392289118090153442104783799684730849092014682536012508815853221252915090845653440686717877002096855253994304504815845335850938928780619801249722677429084147745961892411504669302577099325934223563159256375748679327573606607456658342351486894969685840072315047247737758077839562033834629592722533904266445890545817019405219246030807123931226890211312802059918373329765166000821209326713525430497199850641136560849902610851620009332386062370187176553298207690663076512552849889143120242268724670695372289694066451719255088143644746728063362295566236673370271526677456083473107630456512589854186401960815015399760002771176827826567458516579753054447161525431018875523441904686696219808086030093714727265264132343596791498161869049977230659081865062247689360084490607001464767167178966305682559935954617062504088614867052981344612106409890196481829169704052840166227847881980357193995265401563691289993163730138023701908236638957046988657609411323011860172654626807229780085952379754857227745654571632381654623894015305291270356827541922552638239253148838287919990731465898204810835654936568620956838368156993721733221952064743855924160236961655175313577138110392600137734300252579398838869755047986571027756147059180542192142819114588903416960656702347152127840849671655954652927431128787423817187268395238725612886024189341233166795722428987242904045264819997960187681721103244348302576900113224553888531756862549472548493945977203433285696945494075335648490770636445725678363983227131006291375886288807782579334822103922834343510819367191721097841871141444894618682644049309918183520165189792698660034006246429820835166208947779855141504187480008308007184798034860732258437853581144209655752867212613720241670641211044175285396508769418075797882215655226267432895012643589379111706245794548001849306296097029155016424099397406173394239274080766662124453057533949059357391454258758128925987952812924686845347709520345349993841839827958720161738079444689521438906230105679314657785706805659976621596628295782294694730236209249637788346605029330236851621784807174323781557586994487695587352667074305962886203204023439127718038516787540471271642664163042405318906421291610438800031478738497933283235904590165076420186419887099205307432796845939409114605099140211439403955837127544582141364810734453824048581978862187272338738973778298415839823413831288033986567990050835629275762889918632901990470446012761646627821079967994662709157585333990713233725903242620725559108907830426319571192134689738394251115879941681850678689212464751284183812333722252845518980556733732020739833460875566626824159104307952632628952209253788865723312665747371203155331293921389703798834508754976689171735431413228388504903688730284896197320539405688788763240794117616430746137610847659282883758120783850004951483172048908102720688714493992232317200514552357964411098700524971340221069211453100657024956707385596138362084898928000985012597731595845025467885266257447060099696071451953353000747241089543108303780593237780057041358199295169541034372000797385728958658657270205364522709810124784951394868104497058845329916022631176346408898442753316189155277323807812194774364788567734216786917163557284857558105350044304068698606293059245313527906392536843928574479987642429898953615332295834001417905058453707592437596992075332059784270321513708092225524752437858103609829263957172685277788986557832520657632971564260045719752743117555098545434849390958906896637390316531782407828986167309861013007642812692314704610347460036420728797103739664027962346013869946027114404055935424621049192092028592278978785286476926459327240421931189916269960035860683151870646236232970727928466294645960689529952102247996824554252294656697100708240573537449442710835784557906550600265120122498146409012857793341886403730168317398252862362323184047065737319410053793295902338927301023855649658813440353786433638766934236891180019315878247944653245639890557353252435465111711581564080849805216757037887729851175772210006693528291653333401056261324948106098758879953896856869538428629445263391476113591864284670176256732030537754092763109513543563549907405331830466373987915459051829463520434362036755609471328370069841602750973058010812280837928933832119660507756792636295754381445319191385321730381450405817836534282234286923259236136120619070646844654647593113299630019785971771186625508596007196191731691001657399843027217303430722547891311550602146101054255937557872045995493717867648331557822052027965260237571380054439892215449134050466708879187311988193024773088501053158644550733172894814626759865717695734583717438518692473101087769351076504109773752165007257471346639546605779566685215484508409501821444653856464070352806334294839826554757761168318661630719836886012342670621695448238340231181617997544598687047209958229690339311637499600691709057166839683005679481519784125370124290498031723977477098672791120216319420901788781525318371024366092408350011178133985619817780398004781606722674422516413821886229309033227749615139250166878527851442831472191905201694936635348455075257470944187158136655250210055316798999948694404751656536910947479820286632785031477496464828288081515176655230724464702620364446012076831354266553829321917507057185422185096623087784966857769888395312268564160590012583486390625881040228984245469915903740122471739824271641987160819127372486030348318423024957412896284094573771298279952026130821302094534166972973322422548940342374920237626711067134446405818535613710720609454111948501884470087118396840053780532845432656649208756528271026124312064227000698056036555555380507926168889461996919151006021449798134910927378442346452458406821311636325057116100741643144476578036609363211462018004112509484247237957247266362724996344331322938697452215625623883781200082019443389627655586740576578588114208418603135862990312966272215186371454784868001156125910892939151719265095426935709416653902971906596181641102849483451132055485040017063794510045248168385781409739899316451697274919918508391825604433575749661384551668578953482669684332643298498209588715671317656378292288500167777711499006859156287381074347779433931243593291822338962354013560003188329897404295294908558981936363277813147773659054567478397248781356262710790379771882468321036077264423960514836313326109857474384661091564125388105781029161919562480999163087343782516035164352995843297224824583292354387232122457868310694063555917902146074405918213627247147403700622098809155519106590932220615968033507118376143324826660376909171334016442115557741893658367143602740909331930315389272589837119039818076514914515179287129486578341093395813515587189412474438358491531946288570932528500675938698058513655864917685605234984849870024606792781770678700234733266031021811118766033880752027268781602285491509215444701727426208152796897321707440749063672726312649282902003702959547341077684316396815143251147848483031197845912640374527107347710838745290307487658174718733843437786281831334265135394967327382968639072951819035264487254960867903399755510216348334078784809475840810224646635892267566831880952117173008050468430945391914288313949023220380761896041128515605377777284671230790603894648523884769991551121148650822354377971998193180319545856506978846389936661291051788449662523074387799950538349635023744455132871829558768852416342136245118538834531066749170023537948900916211162690158657346587064959632632804799478062662068226921117211618174729951934148981283164304698452780145625383102354389728772037495122038645635989165619555690992181047160523398805784738505711665876232626621316018855389294600853188745239313918357897032971911732226845976558269758543321346681353630611178576424457758829836866524654064698135731849703539131204458466141312461089563242973128465968444872517563514288889675491469688203248985892012882992026344435151317579862188427844899550291473023988340069248694086347501370454715262117435548672240693985871707973965661259304291364659167504993649735547320453309091720112825841698010635461831293167559131198299590702813946438212166004142073059479801650423120455201094957605953294792070888448395213000541007682186005281936010795643976231892074334266503347929290602519062702039724121691378732228771668063345408365950462742896082441232558725575413895741486079404099009189505475421929376346942540164724253371431734205056584262115455121433926719227575211591526576797208560409708367136790873928746598505473502171982044323373598929617543556647031185578477999173255503174827415194617172476518795740109464783954170045752908677694089998492805471983734711735650466007285828777249474008445520937435772209476794500009361980262194059573098630221963892539596333479718958860868675173007237593468485054933884133683272800545365696941852111437791737855236281269136922128279635210185767687481421179536049750403831838581863327417581907164965703983858239166535430224191446450325461411603417781533004909686346378873517542499910980176689577497630011616630463834031778888645167521226582482414764578019246601531774872929211146969534692421096163007995614278822678856216782466354441324590016674831412958402320814793922868846483734615998435080777280330650692642612963610725348207561111162239025096959376189828498401242429348380093999648784311671983048047013696331076888960359221727134090947428650158433342210478923979100285663820081555239957050007915372130415606602677978724267984226404199279675637569982500292908708254244040805499905482260859334218664726139948049882092200659560155684357247093198239597126657410436067505301221893766058847019791904162133613882151277500553628274721473504783779388925561332674890014763748965209576855694290151070734959573218540722808665667735467073739276279668269593066690869607818665308696392441762882310635727559910211991295892980781482560439015334042789445836501381568219085915783244696593894639334256764245261953061605581868355080849559504565047803795417569786006201658945023755772544944793573384191209859230048223477491985050598392393299819927568848937770438413686341255900705675712013146411073141065481119747100766463731502525890704752543238651368749597631681653905744363423626973287644857198348290703825680577377687745020915840834167853189943988405813240929779274296623706473175516988624623022840853727825020496315253829378589559990845128342445124028020673602461988715169707021233521867715422485484907766373278876447169144005538730699207984445800930813205252974096298320320842523429118125169318868662909872191768706704698851142485167751672606046736643041482054074102149682553003824261960739514680604257593110468020082269599108183925090051579331132309130778259318617663775023607125900444776243930497964781020959783536585503213306664012153686754835276369668822248578323829181939476482084180347225515237039003023645745660654536471770094854517026813487037499921011842255921762808590336324787881362878633414081417314294293694643936528221293786027410738979101858680886957806275507769783242405518523229498108536529132267533679315713787675907408898512177010949605689048913623755930370873986033943291582084412658965007787728376034233520965560272052255238586843932458160201064376438730758936638581537358767196996204826829006162558853834481420177625319957576393761859401319567014177771383611038658231596373188510203642637300327204725053548695561828353621056784758165737706905463399144423710788124578771166752901058249281461817944390197143617834479341753814431143896218728023863355568446651369959492236250969495479912769980029774262399499296389638257398405052630418436005473045638796603356998074332970852818842592435218402077204026723814748974164494695827760085487166897744929268603861060252526916367202558328163168027238048926193666245149869272664181560227940022300304567939561019413055364850614455851097051759118249309039881745790051998485197466360749148066808584069534754500027142307191823505717838864878800951748502673387383078447113733676868204428528017066280223924991708157282725977169778733370350025257546065793296173491874738538875616658942041271362640527094953930039464972177643011578475335931122121117715016892883322618646838940358383286494067099880827061949147050874942649003358271594402167283279399231290474263539210539243450060286531578843836275690007589174804786554239215796604097743240086943112460166444865657031204690689804846596297995063641805941496893048992721322275172360393153185537134582944184932625027732188888092028946647346075497991182614659051333960594646372556249864343828163268090891416093691205850243399407575914216424502842209008342512794706571004316971834650588937962717388857796785975095244601666116927385076517490523175879577981924341891385100958607995435613636804503893120934707226300044003092380455205758808888986750294955367217503686949088500547580845677806798821640509675414418966532530480363191824932172683297535330574466486273962891579249986524437137287950186779949372344032670090567811777531906409987109246600422293605087593569291157461211688350033221852565918281140273684701647231198124389413424660935119109951371290402349480928659327074485136526804698265227534612395772739322136480412371646643030382556287415483502097169449088095310767897480293778960440398487334411745877203392949980645169697551760677963723978416212586986857460102401377591566034661666636778531607609875749584319010852448045976746167766704356972314662624721085250391162706301229609875511368566770091495048512080566528394968253363389178672778172877833285755513767613480597023476961420714492502499481691293576841507010282734815443777809423117572757696842599875894425573313200739519163589488615718444239574334462065284321251986151530822162700655503892789286197081082580172601804719400113510427176493657730394496543163260544162897762800798165597790731349235941425613362242570685476744260370662867040351312834937630069086204215551391444715654212677281783706589867526156670764887513204931965242554556544463449872064294656374076353399936857322050083659297287865020728124718390571319708745897079474220894448825028696789330048805262212695755472814030171444664694317206371654625553597943061351966301163005712691751399287301992665152030550699654352008898034288364938877898858265615014334783374027929924243819492148412095485167842637960018811577544168337863786094233978633166962676982225931625361815253300517352243567392448242552107938580310906633296560530247563581382884457831367010155005838046275841946603029561340880028668595680698506995777201506236141847410905664713537832864383404893074921546666531064902412083902389568017742566055316346428115300566078512641134366123972991950797192963200118081384601379862790288927351475022204068250745015903897662750958570588813478270562472524152626663025747888578186773795255420677625984610040609695927880319354140537682360781960916514355844151705298738794555000174089807263986471203038462104715109328441324293155301213854264959113159683707007592851167832528260431190865820611683425076708041526913677433410594128489183496640592516807673475089189116582946560925921626265464025664927912293227331666634246330044794888144141470774756797211738361164798221247803986408175356861743793756151911069666521014347585783598398516022352035260373633757377096906463371091654415791709274957583662721861345762385492896700951917871206241124075376929664561905786478600851135955336686490632190319830656863789021415515018210054856681992184579692118179679207328386130879016786630472029464691955883094983112633318908396666225844438969900571877314290103821098379268607307796743875221516568205970978420931071627395917122112833553681694556646097596109042915447334536316142207566291513890966826715962244696499485294090021277527720022601299112641309254283968660463741975685188495664758219360971951786953115517683419678919274705581613012705749314515418881499195788414620939295051944509934200416730337740539140204689979618073188451425293507495305050173633681872719641742499138330343046061281500854702800989020954864755562013683027831129616318952632785548995195185067122079596790047071708225109122020581154618203443810299613835758507100201814472380352685063402371165086828476706402230534424994892149121859087726618985071935611778828852837766983998654213603996491252203804864203348610613179903523276911298070879091626648777447644952876611020875352534838436458186430799019247961384280520240069841378378080931163962702679613616406694436257306462956386074397628497723233735061561917292896104998037711892227909164500693334112919256311048748255269624946297481234343060034666728836774865218297844788427183346279090972004882558349136347552561522222158280725577542389212365962992144736242058392276643138589261083937962800764321006190792263410551969679861541671218127005665812178848260176626357613168809521166354759753808505798798579575198469294814414344566679240497192142534274769931011496269632377227061508001898590639357227609321792893312933972429595328551967009519047266683237877475817215923653343828415933141618964533184972011494032321661879357255800933285169551921242934385441296471392236190995816664112412989760412233289339588931227216804334947178421932651895982606900977364271864445688180414926752727647764755855433978609643626158880926350067516559719115193210799658388691261464773274832555487022847464559684883013926512706437069423019402449577279222237780946626314982991735877445432529591798357348473919935353814666509781358666473373084466611259604815674710249039000071244265905628983019678977215476421959104138442801229515126425621269162027324469569216574680834664532903258428285039594850634908051182067594368685757537326326211880942050407461156700068706019009249447485793257564832943755692026993595044497351561070584698435671817288649394647824781831733022950635679399156750780503405276902333318557202956472651444721431358960576267852787033844411972401308185318793615662685296026476477766505186024529895674525172240634721712225024711843655859277872494779533132836308100831688015187241695974336503124943737686046838984786283776694208133274908885658190890963943769535000259072057902236838704647662843474598094399592926023450753347943812422585870437424472614362454758901226411225597502003917094342079065175302808958145412201807194290336933847015092532279563369203509781568957264457540972601278657796764954566668396995089985978184027294066049337187967407938457967215818214996603760189020316458307009887119815272194643057372021840923437251975228373575103415363865390338063997848235069408016768838282655478278340945732203977892293487617252559839745839113933755846567043080436203809257405577867804394525395695303189289443213139664403185518633239995215950087190565671744375626286552772961311263263664965827166884900514042480063650269414967448682235263124435223153202484452525045419798995913667065511499023829569364262100739101424736565545402133259450579777568188467604720258361875693722497924954013731164953971602856728844284765879817617190711555344669082947001029760679627552384919686144475630613783170850777156566765723949603960025886767232574200142587976486501865240000130319423867434827304607597978162358257459766718178657665680099883468820482537167653447140768417922258470986554965601769942439380607292505224022378925544430723526322468087068543479385867178263237263316538992743961785968664707073635327305704841197047343751048861684595382325012567839050874974432343812900043238662449386144677436200823065979248045488189559087221661102447735835153758592113489736022593752462683441520412514850563942265386335001617364580888159271646315468929499781051489677357516706018945716798946836864088381838898231687183505992746370169978479547592516153938775880593908334532808979793147740849446758069586893009787031672166613352831216353615746646028250371383133944167331216431403765098630541779578918275328412452812306067386202548255792100643416115960356582415709076328894584084596232185428552205152312852273161145307643302496772844860757608738418939881483417942649519323872162882891295776549955073734578431826254693855036641273335370346336962282016769188869064828108331448283710483823743676897741429957849152807824086014781943251609004643531708912144020347441871877771180547954073511416764821438159774436302632433436780623041127787045945618287897556178430992940503722326575908260398909814981906118162934423929753960915631486805574021208970160147958871773646626585537739795194006122377512078721315363438457291132014739577589612829482407685105778376330745061200393424610102141134598620584980336607082374386861057255007143498137554174553584546016209934351935684916607610888539722931212634438440491269629219649196678570421566190111725524135683004561966059231704010674898412400476574483567630466581256500912505210273510490133157117466136542620575112065950737786857276873900855745871751760150352570879293196435381467936691337684069065177893182652134899441293718956811212969294950610003314047430169602719595072020588572599956509980674748994044472554837617099752090332269286669148582825268964319921899765201517095002137329824981487120314977219944621530734854352782916700763494767621839769138231906694160784805488953685802188696769649976000254908677406963137151661514782151548458527354422992301665751636057007488115182643138013916222491145910748293242577479252470540468669349871596266109230997700029889158438421624878995590801244175739473418894480594360573776505128433879021703530330389366322247972279396312297752065558686001876527586444333969542803689384956363950620636720157727114447288779194722520283864385760510450111525435364736117397435207877521047542950636842240949970848349617149306709282907499790243215059113325070828330237725416257488692745493151621567605905008887921831622089245490830273984047440307304395457039844438949270431260041480513951094030471484363798739800475869122492387393566214426804392906000328049524069101868495123399199690171354360473939447150619137331611688097809620006234819529502609486176162838002117099604495083225897171952198089228268154402166400335795351185905823676214297575342186821017950318434845494884509485248952140261323896972566829808859074259837417699361474794592478575599617825569612561381281757862144375036492541009329901418374277246995586910894906246752112715765852870766610902817278851597674305618328477679752226490290413093638759734860904403778152201276863230809890206877929694625512275669312417605864307738318090873399192074692278144439763236406972777434991647542914830543744676840678148610044899959892650113113100332930830163269302638324532272031898568980943078714219504672234106115153411416389194153396367477942197955710669627060324834853300218768885490075837900095522707347576793454401138863188230043530934278176242528025117723311965728048878731383136696547556224631557515614028215457784711930644002297677927815139974897247828785852633434426929902837030053101223552234048351652762068836363159185056522617616199526423883580216728337120700226688969963035973072380424752125530524912893867854816745177366287106817238424068936794144145906017092721499291166382526340548375014328059854431607652875184846615635461611800795342079961836344171780311008986000088642215858029262989841561155610623474775105587310194061714765288328145782133105360233413169590059291259076852152916036381234327873955305978429807659289602512512623383998766673015322447263430372668525083627197697454530643087064156474000378373720131901896033408912520623286048526730962482356900199379345656117992248786047501656549083103727273158773750123604547184388381547822156702511756844548798286416553661815699521904406208383174263921031399233851239798030964637267970781257327178893366909348252711167161557110712875014970886215501701524264725759974401064463799511213654180368649727313133274499633374877888327478488573709160472973866797972196017742905919786824334502327562472998204934699891933614891976881463499134948332858286082518701887605750548527371190068033205876143347220151575108737161952238758962958302637079159100122471555015031531537178430658210785254575072673795299691896277290907534098245752427976048295154188856758473598533275625990947392606264838002604162750933118898916489598340568087675229422532678921532216229684461732368135691011702908043023814345316769045176295623430859670084287393875241276064918140151394785939968983174856223303898618742589551381527360237402917308314545158515370895234112286110059753242403387716033981753185506669845488178750717309613796610389288865342316330907522216678075454007362998464630483122916822165616898923120618228641870007145375113023295500300121279983626435641013897028284098194420806503314280785331757578316338362890103141364934847269846188703145207010461823122335159837583660131365866206038330313276986004699190973804298175147247623106492239648538315814153679903856242177268705430946736164941380108090164682543079211044874193299777398354696529141016461861097267169814895599256467392443338140228964512129365431638219784577510778761120995400871968004414018638421563023195800204043982571764439718260713723897034735996713024744302384398278222751080646533847343046467290478578400205021557761595790072142598671987351568341280326611291462175385793015954709489471801102405940117917360221876379512494514086918008068744137455790740972750381547049082283518798433358464340403911180406133892924946272509022124263699725498132676317205773676161141430122623507872494867035481079835116439660926823388259059607086137294244279476425047705580568534701981007973198577372626043278973145013412890287301907530827153195013804671326274755309009927037546690433576277701222798214666374117396083347107613510073374659551409466445571300335141180478050794340122621790561014251609335786579953244453140167699253789825460831575671128320147863693469346664394363995777309536498964308611601865440898109830982231214785000193896505562626206822103342316850778137282961755649694529962625092245258161099089492178329447611924212907023376687634887056974247605898074939707780163687790428700554309969155092767988665293350884455357421800112714365199130421817260691976702915056604234989960675943527179782073116085680613264979672519380821838894700461152509776781744735786270266535423275582533422588658282772575153430063247046763268135366816388708427656257249223050946684763808002755785674865524591112946332850584607039024259530561451080617790183753383451583029199592443349440151741470123734942676062722363200412205576086421932595644963802105138001001439221648463026159181275779890201454432265734854755394634433935469571878066670421517430480535017183045002449235042831126842655322180596915349561800303468780582225902022353845905037492699292719305018619162903073191479196521574043500849607826374704765204668385504830144723524589293824466897255636077008391757251774207957080275823033794130926683687954907807077215344293952835484462186396717589109376531263274153885649318350241930760902466857453248714545431340218611542638009031219534847467623242759595219426632352267430855799551558915193731371494909031785819934752385624326442484495346477693587441174367345296212060086550435837033866280587943462806120098697148776781248523744777545539213670996547993052571144163069929099857605036466909819784829285861674218873572474809538491516405012296609268458046100226442047125615932808200657291128044391877323794548531397194998710600549856981574732626405326188816797264529340752780614793236505166219957677143775892105239035278163586410691277054179168003895828133005859634211677292775777238830957153928490765145791355404593425438725008973946687512620046100814825206651522780620567097733943341458958667612654496285122925721771548304490126379913740141567831808116466495545653580129059473971076918323828227035220873287244092615839445011976076299811622364961828580378472320049433615187269040667306812370802132988943615208808053532206868070048809734877199596626747950999303720230943610743193701918335127470631945066852884972008901337590877914251375997551443569344895557431856699868097329003341149513663673582792478504458115365598749872994907608821060928384607920865817933395783443312169571490163500934818493168151767710395490794375535194695851906043568771305828863197558942032592482907762339603535594940345770137104956771938347824195378088291309687617695465568947949974730791255702539706451992649879094382760842854049708086523117666888926367027640620238045948849598670820283431047294220462930674741053932057058494274495255294232846290258175328010347120020678301070636891025020785455486329672653069820530729207306171748664805297201134652324071744725777888083007224327797641945723636127506600449598024626118522670892642787586912246611667180812302928667277075110683776705347651433023729114818271906017929759577153645917595649035485764728000324242014299342592987811747526229112034308505911360645636668835723927413722175237133306015724227836946425562533181003438140099937407291930742972642699744177067453022389377987367113852179250901483406096300421711348616360847061978224541009485310403211942011994914597868791485936200140081764022537963468557889827520507256654222808614196858434673761641066121618182115090115165246447664943858227169516072810130819660321307044184058769190815034414270270185980303021328064806277307728232976389546925288967722721369845846204821259385969146875872292801881099311251122797259636776293241429137960459652764283476772990310607454183916567964705491000585439395828093070914997816080118115516447761651062696672180838107033033130583690811053685818760400185212722119473712151475267102923265607468775144750520456568626654108594625751635080231532171022695145762003389283719981212961347770255091087503853705845658648233180935789331888824332361302394644543491593715197934227209551032705823123763645208290816016333398169316776383542720046584603839472686404533628270504232730967861852725091990381510019141706087838991557971508178491220411320742047455907958703137860171656242495446760225709997928265273720623100048008447185789807951366542869080473119411780088940131843624056846781657449080188565634460568718338390409132948828002404944994250597118204642908455831685646513538251180844356593721677419303183507794599179322747833507437458972984000136583967749858166902170931005639746034596620685810457908837805488357413294805975359613217687976629822763449404087977561318081132223179564253427754142236632615498750752570672122466510819735241403983914669453409178207477327034495897638487961881373505296423252815649882322179181529502476935390102578727716224740194728646465557985723330621875846013739479690259264054406779523804387386780099782966588262825873020696339196214321344829818226285355485343792677355497602984906887175499145491104624838913251402716274766985921032776256172691881584147507775835370647390056926449058036757158392309900624861998176204314633133104128100945283756155643971101445514826370986284216719789076065299284866673341048385838298093356892835084997931875156294706119713259180599077158024487954712761119555365288893453940391906424215769903737364861493627296185124344987011075419821595820466573938645533856772900345045357721409634963397351483264911240331900426519468532625807778250670897021767553984083660144680777825469422353440642653686795813297611912739217522573263150646960334223235501504995684514906072621113149738306347267056256232207189119107359867606457213231592028910962080490746179788853855370449707377767067053660157354551477749481438818548776240191301317154086160095312310257071273504542748911888826265380709707330376030315695588920388036442965617122203745194119994560623762024757192628683453474813591191673422537774074200728378476356819817871417181109434009603745157077256471432173628536045453209317997669695995436242721255724010267701259357511894546230782622766212170496109788996510274730441314955899808097073275520032442020054464667661965840372850654813283297397291774174357697130371894089117036253689238641505615743122263995326055528373230593762268355200317351368003289663135346320793224488661085776020481597356613845729089292874854422421725580036170229060222821885243913555167693499296033131052335354725444153328577884959706499164474146908656062970426584549556239273155786550153706831497855573425736591653251903366520212411399925249964980054003541321042414038536230052158610459894227522615629100104252127106068581925269871035782163395047050158363048367128018861287090617772312588189337347061659744700884101250870639483468503008029991917777682419093736176634366998660354768090734105683535634313538033325731479522564961773313332167223487835672319693559714904789110581263504395881217926292203513480687672692909778738931053334975047873996046056767809706183626695004256464548493882562656514741327128638093954434273433272121974559961189112978514784027166232324399885562797901727883406706321108773399356114725302995701550349025162163209397368716924137700635570091370181551041237523447576013138397022007334859100305638810789363825776676596273625070122783564053304864912023238733546942667162126897539195115247738448460964468820267713627427620855094756182735147357663187278048960830108045238483273678482588973582689576045529896802472745243362335514412549594834071533746128381507378201518905932293076934879678847317402984956833787454301491667871341781444674504783000578991794553917684939200113882188120461287134783910881455355230736521290772990730462014904014904433169686362489411514001468787136875716082640628225617093177152724755826638267260482170127797433798778594026467038126181208274300965126629083769039946012768194471682075754172118040470013141881105664411932237093727698546297721112695719003267181392264582994804505009817521891403651807881499725552864700040394491010141012074466172119494394178171917645076807831924606470628574642769615678065301931421610860383249781614361676141592826548958874683049684683148703179100850035058475474239469132717545402267641975720705093076629525287360995938167626723507263076546685076053565967389536993710748765769390174210273556589313387348514302554228345113477935399407117008378379952139130357032753688505130893389471110188441976231466151460193659927784749618464466007515198825533150293544740310814966587224688345695792903683005799743096881575806356010042826840422787619597551039811583433852821964084921688972381500088530332729671830460907170471666896129578713039519661570571438933618759196863418451370290528011923585281943682616340729713354223528830775004110210324307519844950258892270179161634142703443955489290645936084571069568801239633246593108658655909727390709622140432990408098716845021635645500428571420607777834626915516913400183950924531992421547158192856060554449700771627265666641004578632266411114721542845813285147283120317932481542119760364718093580226799836236146067557946603868974129889359707656566255462192911913785461159197646105784091873189557556338643095458783856895864877360963783523173692579412283138177053335481036226635689121436518431866158895478525461462236268516202987638923837788349334129986714598348343631743235994873532703521463860379833482424867254324973162986966576322850704729564300905891078026209887325783494731977476083703823086048003096885828923995260739755282920238583641625333635975943957443242219304364448903748586508829454844903293317329506936024541679817887223517187250668173846684516738414395723168379730598756449047423132549924096131029352805327896473027100923804986362584755424572323333968322285074605257967165956064068348495722069504434502747475289821251141281830502161855286989605108764328577306511853335297589248725346597419120961709582309376950065560979288663964559326434699601187564551886052916940062179253033313360407025402122675479471685051119406803142991794399756462754024589079059668569198734148632715141008430657273624179933640439677760139262410067879310773298181673232118719895156620926342562300209978703855653890018259400583096749440417126210787720927981141093114193544773785256647774832025417591209280300565848573784754074205924832972137411858148585369648019571539909724952778902033321908364742392322039290669232334823915200788884808043427695246464035782527116878793795922236086841508065498208686825971758358804134562339265045675014220823428576820002816572046661736637020853474097974371242503341328196651888127337580328733618070046185751642295978125390109987667152055310012378952680965486994006118011536846773955304291758219288690203993747231854764777251277199069519745047901148533466547678686659587866874157268892053266152331378208570339432155414552630926372604812075248799928244056238355600254575240006864936102267759781416375174999985822730715879045600464769478695902465229681203763809904121131029209735012451686676382083739116044368896794545197096755242697924716270284694654864488319894009457569563542926614122868351086711819900792450969887352417090575028403357265464548196789389906958564562992498571325636547763941079183957527229408428752996026215805980234180935250348061231843554231719568680247924313448119022076594739870937048201314003937947479942823885298401327620711183594790490669343614342895300542960792237452886728042652890951032569609470530724491326396797304748725896430078268035221469022526405296489593085723881621203764477248246359974673273233138926464708990255242891400239517352551684607289365297824120029052761736273160547924064864374971279046902189550951946783038280312711537680669405678043980225690612022091320946115018453805406213478965046838949234217359474129103104710893694903947697602113860928208638261010358059956716741837888645124001043371931315699064270313390179121161443488722482869530025784282250696901048412982136903631900276565872049985929172261648444478317785220465939920962570133403083842472362459142329509030808003353646975369506563404467872112561164165921426811945988964390222537495732887210037900281830363238126968260170109899431679512957790844226289364994392015529294022155915543053336967688537308827030959850086704885967508002540396113131990667612191412158094539475428449727738942540398810123671931392713596915480712305115047908855665955882523413413067587466539947732410365070861135409295539607261793233238126467466130289557728998266889560874488524516452122878621601626750103878735175771951180205885528286838654288984270602240103081702376952370248421368405007171189856975489327696849883012936821601453425574905259316122518241474046394754230922937667204010565771959407971269959155530776873609442539928335793823702925291149774811475636998727698008182179210158491115522848250355098261454784645749220494246835108672550296560449857361185481705447725626201348604221959691970458602835800478348490152046468435435342987380009331147980109213640065369406433708006766309733719757393639048039425194773061136000403367182351604786213310801605333713790478501856957064244822859332629142878868255184637195839613616063935422475927687499460710726331203396744037776265509558678301253082592693179452520378506571437863336823472385936884613244533589775892655287461184004666832599195311465709819182301158105350563055272112896110627976199019327126679648847927574190625469207546748659987086078279625321877356777242295289405365123745175637444992191776799087188951935725147045081627182485916863664325283255666105449823253728806400840378657476531565853720197728901928173615192233599787758809366169959428111097711028488566046464282310033164453872119074126863304928841221236944388858192264474935217601309429588133068138800213502031244087624781436118099957566079720559516645089339150372638835587223383513593050390436434138105477055150329512975520411201339086294741689077354178119930179918500962124367306996635699067878606246342846649277461990516446473140475432687699180862974664349277291658464741921301365383218347508598761670586462304798422303773183480834887935973142776877175067982893392989428799604606145302605664649147205266320871309972904006066359313247053968484943268165524323049821956685060227231956195225839389901194287130402308155898590269028775374626652178697053703382450772607201326595136333173300958941526404329773549529284931405810165554193243177664746950111822417319865596183509909791410317363532053969952728404046697757402601321425626830711570007399762059994647104370619041739576922951319527945613760434944169946955824612042739068471170000459367925259267282672395548557758928370884958355634531581577913378148950217503530080758630040259983372448671929182027406852679546669481327421193939953410990330001461034733152397672602330110522663511540323781155563872444371154259049492564742670653182909986845384416870116695547350740071413814273399196867004207016471766727310568445561926665747440199301857329422262509650206377939912771551460547110581916784478585247968128350165390279502169452299998838523478671714303151550694176181159815309767001733444297074027524877976948618759537685108295755696327118823176991017450972241882933516530643283056983540489484215552887484188915706494428350726991906608158667983334017345033977883480469288179194603822368523920526871797446593166802688164254248909592623177656521181397874720809055876286690695285376770667850740921892385059481243719523206889817551774877216208447507862436588252968844010344910094124739619459168089532909176264993490457339176908301250698869263320015288584088507520519935740953371402235531158223985459022191325520082557221525539245846949275162067616838328077104580289105690745824732504211765498066693239482216309933613011704931389202330322246790196724882511948328485404871592764036630395923117755100265780286393132252325460194177421546249333358883155589660527217862147325138581356884281079121187526073758378056392153857362761657376964987393822842938059630019952301370942884501949378210317297314358536483298004642816564120362039555123448556008679703877228093075539347032327629941884480289129688578651122179792263876078976841193749274499133112914196329221651861913532055640086188074917559151402248190467460468161657759004255075575147970197392853212579832622658828088612805026774729745849001533080670320023058585811505029250096154618723489371495846421610237007124783297971635577816917924843151964137748159036345958402141299632681686297008113276781952976719395875466971590817917504120729646625389740163470241514069229077702071544554732824385063246269636006741339255120503303999539657218009780601330142872022771809319906414133082339076230979129355010365928906864664805119771091698763571692464592405126535778646382772668064431860258544431492095711058757526517095550100373484568047197600350970735227720319190302596328481400429044130575956496483779643215087997375086362762230605425713911612741241081848562283577095268155434993173899067235212579624710632668235755470645329557066975145714628009091511081350839392020153562629169758461102101202881023486712636144496655405525314952942258783978795742476426452285782243349534073652762389725184414549777329133775144729732701165733718432023473454742483160471662995024254257374847521718574710221420893150935654376281924573362810663881539125853911428757362376871512788226740223264148475241493252427609967732734705247804570276289033660398749104275371534492109692053847156527564686053643893546155090636791807112792957595781804530466477481399382055990038796106777891087826297949106826679220666379842332043034785173073292140520763502631437358272402563689922963736480049435293533614056645127452403051539254835157478889573284138926751971003733779951267662581082374844142945252369898494140106801492600359961304311048527132017168679756619706214754340914055891808682640253719740826024698569121530569715781206618293385655805136464177537632347862666911005772404197157710103566751702285192104160346155472512751393496898650192359091122437926051679890180112047890139958273860161523235442458295998649513597005039984003832677396440354800803447476190878833835248692783377263159903672939670333842292697613802066751307326300268995504241010029520735500915722790997507359331253085833212029931382314896076773216156423644085392015214345019800624570949827561491035540791014975717359629075591985013506365710877726022600731995435123652399275532838800697644797140661388135138517042295545385799898571304415982303839808171868054087349289639293263555166135128444196457268268096266927653439832218474955282954890831322010527915429132945686327595144022624502707299785163036741286076373811863170410451316275217251540907259263756113362326454127204344206357351397001829816362164215065535239412432004593483171721139300068899765165520745225813479025761765719229619850192257613775440252393198676959248431199478109409096433044809078411497036180550295502457268556766253660278402118987770567836342866854951899052888929583514021635953065376102426209956515576958469919453454152789050136316572497030440519010417410084611182277108269743181063691448595627926916082697453789066284862780648132068355897256632018606589477472888896512514528026905296847917941453984732965657476355824214209164371877572735789934063905042757437018656842291096775332045015117962732429078713040442364771619095059222121374912152986544118675840094236730802221530019027406598048708847838488080936523020566677858822027579570897652365402944730925580861039529200443101571151598367116947995773225129819537388889616994825685951219962234288834576950556318054997799746403917914924879477060778647235352074578985703095525977555492674011066513857089203761309939269006117749080585479036894908221844164305297534624534478506901405556276075906199802201474307360558778755900302140507626577815031116218902591615890588921013158337267374019371557436871783632988764029797922151312927056889411816087199929127394595905587961478898616812574433835646786608971608235289189149784420313905301768811220933123430416157278332046988938614553221460725457913982229245374083499354215057498372957462674764310263489845493235848829858063829113384379705502192056882710822027722036228658422008203606864827355215822544989862708715370384873916057583955793515504519146871666045024074243022303165300118411889772403521003686031408752036364724292793389346278662596465141866162894124426308458207065580479366899719020309386962334625723215921410502991831032310138138088111172175318300559883835807721513196854900044674371495532761472898130420543973880067800693351527084415954989446460105300686109258593906096551162535212803949667961324549589423683136206795114356866932686573970145017224586735228039349480770717322351665475168651452790720853802601565395632407491314119751031035284088854827127234732976071160638718274829633149388138165655826363322211285076277733734959848322132058892971974398599742133732572489209581132369128081698124891247802689336770719435050915726049796428719690343683832322826477232852603228528542003371739377330178304166622585214043178917701980235343393028581021555982925456449804444747123674583839491958350954996156204057209374829599810840546609572508311442469668695553879613091458422853074292474809829501510512780997905067742060448867804921993689372789735357890792944346452818151171975839455472491717279868607935129706006767151368406028093149645944475666669535438466925629920293860207807800394020246881772516140240358340050284888870144676983613772166201592299660176058899274150892244163840436772008824099818174918347757408015022144843553960059733758066907925967147837110320568797057159772749266918366640941047276372737289264439805889131374611515428128606450899008951839394225303258781801606985635464007387866023068600842506282837446974797877465643383416410970676751157682367482976713744035039889225920828258274045850491902970084043231412509931499663353054253764975156894622667946987248451101534461069285690461225914900459222471440062440352340353647952396782491654987426413085727137607068370984242877025875232056152785189570449401099797812988161751796641678012747223071318149131097959603098293908960474327694902762656834085398213251623146235329628953571992962553384078049147656446429888677378701539507779993815558375912615254076981233531682411661848719389190636274137548568094874052984753500733458348666485514659313429422659064811484438971525584381087797741700455399616039242223199115430702960372247672104582552709943816584844653795423611436319747961876917925646792382893655056966854451916630823849753253266514596663744134508307924094799513563067261619668011848558928214639274151091389767589096045886039686608979183131691278340479383963602367405838917419800539438493192104566158281994622049636672190752085767018937969204763703557340432216155483446475898861407374873088625573727137438444259851927392896630245669114061489767241531002664617353589353085436568103865714639183147772823626882717267970347162565671239306904403299026919954312359478190241411995426596429805470124285955144127407795104426012073610946508511332502951396657068502907076712517245360223822702454120108841701337161046758719068836001304747866336193767765854526161806792145875670353096529989752611513904613346001976443061785241277120177274087535760519633917721939402066962528567045881180548288974432563246207632728081140305441417476560530168395973624835816733906994021807499514322048321860151090048790419200050826259094522024344062621656055612615438408834310519775233215665392570444896443468696300966594557494581454876073872413110748253443068981753102352287552389162131171507691917888462275652566868657157972576332246635183358168105733297900198071846185075236670363003528848281232401308218173459568276994444164503174663433316957537938679711500146196954467732460896663730923781384814251020535766531010594511283143975092201247817879692715118571583944241665593959581663607392907700618510364769689650073461567347368849057087218852145765573199982147540448264994223830191225552005122425256357626786597070383194686468493360964487014753596732892392093759197073028789550329685120204604380273417471175104463485511429455353372920821185306658447239065965597448491439264166024249330846591342038997253390134518753261446285273832780526598043134509450798807347142960545805127045801338885536726109192491915437766190908195994476688698544122260173164012004691563769101918986070181834600702372999691943534623501404433157024588162864006817197414056499949093376971606236844883751880035743255411887524253340033695867426695011141917538251613281797589082882801688679008862320029086790757197118923235290765611560254668283699173077740011180117969660407344218711053082378744052341193255085534466167573282267322365948951520363314450771210230781127807829709402252330437251884999454250963404666539020354051664854030881616542950051337828973529130292032901494738123064736668497834380220262420236186790844944425422524537700578143446966861800340360264072474330894535256251529229126038495836185951129057693336352319114389493838604207719291980122712010407582042053232433165440391856891741063147215582145532399773127867810964509662408962788150123478944718494795169113445864988357374002712600708978199384530663527592428218369485594447135143603876319439139330655292912629869650256293605039222709645710716303278013789405797893981436452998552404288190814512251409526394776205394592891595287868073305190232840125794420978969715711428242666332657621166399721281742344978639905649426694673051909848678144837637983280783800042917038499075390215273780906307339326799556884205656454564739331960654525520611868283636426522424625796583267157141124635725491228995037276319199205287903495438322364135999351565827520772818711697390335650293793714188908962997853361878396477042123625387261680460489780568393297203008321652005767791469058610391285736962471579346278732426128438729388941933227336850110800864660680612712693098568236573843673153336423167972983578737963604272224715908791929941976541922526262772325805440384653815845782257314783216652350662682881505452765237986145777449920039737201673452580863805941832340568587399067064587641018175776441363123117786677541587513615328898720501790983695059531564114206799792974156379857686522026037266613537901006181610009373305221831577873819214532925888710304070385319248410607416583466430975573749303843456744544385542696556046907443152492819501014461742164821264698243683528646354226733246028151527653132510035376603942214385022325795664576961310481565479323882846711338831617388007229770677174501918367620386070893531190066920569233621845958189498059367932053310184597491820293827727344489837643813607357991461597060224844533367634976730065379646599462584114413538806418712289971727037839221071090321788915032797516727652174265687664751832877102670521056825264013757270144899890300484647508507135770959738860761381445437631781767629482541922912047810442152884743464669315142301304271610217272056345658502033947394090766978647279701950120926274070271468988218836238099584921490725317498943309947443295642348762629771809421093549155286669111602130480365598368071209804347309435717690777166022564416066267698008202148294350327894134983938151147382409828005361816347206493775368073331155637740458252476576649020196476326763784345382529364756706383210909487984742746025386360219651542722740247793168712819042852729221973668567183434523766279977892915393325681196946521634741802933144972377877944296074459184865080324648010453132983263503683236113972100142321021859094154960583610013771403557167723747909734843824950640407938606762295612701765452502806981595793332683375365798341190904355148679296155613684943299902366906494358382641797335633483356206494266953902701860784946698604907603139283587123623983081614885132880981878181822122134769094049611272113948481855014587116098639466097114291395071724615743974872641398650931840674861062758451756089236831315307167663472025937230723531584021254196689730986581225791564563238810116814244703914261907165435358118857655652212927686813194286766750578653083201837465828359945092025296628220346431559919041053770196342454315667795922543254893789175827144261521810508044622012419736445099527941064298624879608142346683975920152997509861567835307596185809405817886930014899237786360271181335036452419735311137306291163656167998720171414668657482574226473718136237791209509610216617355216670906347731724528797590103544768292177909752459809520372959999008891174679675545090270142003771625515122059135565313781260548420390914969489708125434820962785287570584473396388978219885531403631438083221804268889915361685693812021898411003923326578978138173747929986729262906920043824437959175058333780039923191737888036132016176762799684016469982802442616942188208196936272588983608336943745030552238960168287388802937049124380657138829335275077667571899394597394414038755267238787449237116428263390005408153596842655999871303218144605091776124339837514612520169503719047531564353989560848406770443466483806493195669710654190912869839952562234734105655349707177889695121202930468064846274023799836230225519506364993601173736328948293844882994919234281310098154830641782751093253280866223286362703717755988562168270723061088410993344652140829055623052406949503800200435334221195993917839690204005582024315343232223012879133080518252883489857007295420511409659228320605691584640538562580149596816421962621337116294061538189251981688714010267755287924003390621466853457936528738546128372981418331468502842523899646843074850925133308427956526371899843002558856177680401036121801456203661480628067053412448237092056225445967849289978563572792228538660555609347707710374510235671183455559978136107064042130856587873288097974647246644729160378846122957691387453065323424449790292604343272789539099615482674390110122763267785760615384098312606943929447926271682234261025264779162802719506091712644202902147192872090365520837825381464623411091525783791725031398774524321561405903020723362838509250050076678955832951095651633232512300373583742578840742257220641106311921427863656572475236571603278143871373654921626043959031178979826945733483073496995984171272433036531164303259854630660709840340967008258396708065836322142291152051970797469650829758625323837620204177353198647647691768815379561608511643049113914585315193159822814940283949163907842774926002288666503646757576689095675721604585343709602333303973253219275219881755597736699754296205849441938991763313577244638135112104324902044635726343943563597564853701684164455639814225860022490335372889646576531669004849909819191638050301572251542650092416931362967279754095049941204949003257173422462089722808051310466316578218533245680504050049778459880660138483918936961458823018746073389711111259781422253052806869301173456073359749893344160605578588608159178965912638171177761264236237620787479858383579427318745098365476604904028126650744239330081600898938053488272707221140278687245859180982052211948416359478309725474216391392232632198719856727735274522512870400069508896468013154876389429128365579219610198841531898255468990260208149349677747684263296714024692430247573268589573574469387064722034356574535272617940679975765837714242101485877659787059304710937084611501389057323416420479174868716154131313341216524518746507147508768986847951985559909479709961207852575387738305420829052141905646119664958367132646171420597132067855015546211519056973852108402717867527950723856031424084308288643748481921601423738449322956286922617512695525639778342053118608956906479579956781337547301600081511765649274813727423832473012648603146058835625114519546728354709384135373054531279001701144637448455811869437592773169233926685012175147383204639150730421344349896677542555044118601993523735220599644271650882468223134255622662781371651975868845220008455094859101192471924588101253600542090903789669295418457801957970113946971898415655574249934602090853676887720166391933132950284472486580110262563499482789933649508817772651156701374004430825639678434447316043126317828033879572311577617180147296950166733674669846742938345143504766903712001844019968395859431540306546975920199335339745282914716457324596918569792905968931911558983801636726597728171302293268894986999911880363355030914998741402149315132472072303949011414080838851879023051795177336477171215019095037883464834153713340992035063263735272455488006336910041956458404246550704802615497854031605675441818929581968189842676167326828964583740615102216609280616500228220612351582273899628788577090679569379032052350893954847993265495365787434680766486649585238752179090611633758007241362676604181272129208478658499258162678802355248247921876251105105436710682662129804738394852525213007474278956285690149661569113686759244398589539159538995133772399799075685980052604026547135567938270398308177697405429757229449331412756546962788718989196940900658649927377344112602870051844372241469309117347575315111304840039650389818077701980269063645539248805508392021331370930396194833801778173029351591069940099084532049002732785728772048959739270924246119655132236416680230290011547499650172258061600008789766169568459994622045080812387425158867654876827604279737579145923712422243788058496705043024049492023089362405687085127090666662498675713261909462641481308616372384471410104497329119176411893104420533447528064519627549669509832090621579249902543903932934164196069541900518239227630242755700037857899147129316873349877963921986253927065602202871399246413264342558918421715495299736266835553655124999111630514664228617267053116858476435211006251647405952719374751977025976345533363810848179462474067647471962272531834289651908425864257019156015618198666295859903875161994543888348173303794466299598002845569265162424766741471909096622150329939763327842717701050087060682098654169081705812697336749098140882432517086286154505263190190952514054225879829742140400262121565508712856902088555175853791435705812138275408400659106060686579376722935236060508944279600461639767822455139113514916299208365200999758866009683677672155704991167178518953200947802106638890264873502966821980707182697456575534033878828149186753372876087220703104162060435599712321141821945445454539633409501917071717568946609461510393874489914631610569965475273228031000781590459575628043353588968113268297253975483213906778776532816245656701146008035414183643233230284603927764655141924534611274150271845031796481582166572630045515827651865380974478861042673855319611318270249289416279725807197688545476659653437011969609679681268868226545288532194358801381679762608160795047252980563576211043513891626466250802154409516209126115680761308378122528119460399904114751505676446340384496493763090642146648029960178358480515133395839541134352119591457905845272265558409940933209660908858624441824373231685901173688258397265118098648570090875372328499574337532144435660711258903769711660429771770955812493094829698419210417186367510224327069994115000821890024769981989869482783429472267210152737176963891436728176950205764092124337439377292695177097661378076110447560729355654342557648237188354590832059738945697889436803033076982634687027533643434666247202645208030496340610304170113887098677562742868821786570354553040083421342297493994750273838339148483676350723953343894693056198856747052849943510225075301105160511175702047500139091576407552824331658914145242955784415683179605055766239389923965184272680696097671423656853439852060028334600884044505138050127683957148786498099761139833419769847993501619760110934301850515900720350435410345119818022290412909222732786274890076937985089863658938406661851810460625785664383991624216883348943877999945542168764309484774923108381474990907899113150056389911838160339764644353649987346167190381192215694498742542781073105165089719290995080124291822882247264110574157194068380117851883321274797881926395933978115523935290240563491672367321538939220257644606092003719488301422673699740327114004213499930987725191752209680614792438953778884391411516955769572018513909931390656295387486678822406492983568412458246587730186372269218398578340801015409505951676362681391722575325283498748147951387768147927265993410085293019315031979433304585852382357270077665494542885730289788886148865475096379872887910083234889549766053087040794864457467727406231439829473828519234048917151065189736335690600836235244177804729424243129387730566165534399896390514488063702061013610438160595580956224286508073305225411028635437607650678747504055312722023087740906840229806726562600062099903848936127279422771719739409316782661796478378572699973521243951667858842450411722777194494728600443977361866276026485993971159292622048985219047301212353025075293880274820682153207722514651791674855476003490616363755545101745528642061111639731552869206604627061984499089291984283957652661959336408849420700209497792955195897944563042327812207891185965427415617502293094408062231939658867083094341108605556004303627261526807590872098709007296394362877991259335491656966945491316772992180349071035159808745709976308892079240799877314688450138461844897971645308783445490942136323325274116045161582839619125751079366119931946756132369374357788435287303947966965485203287822784656793011637151001349492525836638288470657715978907592214527397955886836696123465699687231651453127044582727522138102058053230813632651632375770060845382269398274514760932244454717764482773536666695232031942439456913446605692108118895047735618212585748629042266429763182741879114937075608147895780626145395634980214029654499016069841344748382360378846445625671984371280370050167571047706060571973715115605970598848972963633603458239260596506426633233842488018295799673184502092124235987512007370679794591550611516385644577707403802366203846573719072118807554501314373689593796136638245412946905047872809188724056964209513508828205018033924349001297038185453100873341780267471494003066773078943811302565028549066211351439468762795596971278567980925025227800906864108456233412424036263323923522688196005985248683620040508784899156404111898952730831542930171927307140745948945149417930487533257132484736167482347915129171630186552262427240042278275503253043711665433736448958783712220256004712610064869947931405952410913355867382012012642260028421303533241304162462973189945510855082152184536595974403618238253093952888102343164728033427975649251147296272873031728204294028792400303393202598759788209585859448451091442037002972469620620764152088456289732638317631750103447486207654730979336892574493615279144357422797984974771084295395543071243712542629723385892203155731824244356513969948540990091550753010994885744494300135827386742757642088143847282476281184104144855333966877809895928738806866050333111705276783781648840789179590103015754790662229134881215494614143950819459148123643451018101542443036180732366420713456867647460403813629026328306797336128704691766762018941380844249261811594803844723713677905778921199566258334054323760996271508875844139186883768977325192039122272108927875286208717152063544948599456614092421839996413151045284799072961987750121973315650262139319293427904685369600043653680901087838279212659117139988460458075148191086241436038459293236177299649783116167782306896007926423475032871261661136448335248367591274859873895016558379729552763828783210339337779786175478863289868435223902904748237238370690571978604442109753678155837407556200476848986108118057706903663316687627853505613725564703909089879413286453621257821072717050814134095171513203304679121689552314126128906593258922772695045005759096600799611446897903003881302929522281459798067091676843805868318503676532664275502062805545790254908400014859081178052865560180427825076796792838957965181559534801238527867303448074732510738268649577556417641639611321706399849185420186801246208776665320472457933892296139245250876943125601209174469842529739261344123525189432183774461243440686782901908918303212440937665124202011077618242179912858270689342496247179016269401337891767977551589250202005794867928508252899933674859190250261699097914127926305503252371666041545552682191059167137748014460015584343517359076625507308491026246323602682440508682440017556506824325550556971413351914910377764109194167480097389188003222325379673662429170870803463481285022146934698789301502184090342989472228319609016801334002462608859032095740181700346864023047485483754867055162484082303733523085006571541759505812212318849863175385858699504901495662462762620637141057721947013096112818829977994032179459000592692170732911761888303808542529356202748324938316128917497714077903496183684550942123868372873111699918502140520207334209559503540245414060346369411314162225455396113581432656454844425345872692180304526126340082358273828604309485571661745178471184987419349508460197640429350769233813426606614156131495308004824050959452625985649455867663362047131836703148071576332999676469846005409512430032173213268788155959825664168468958253156817756961828461997670286758741483187131693843931795309310433429904540304448341545622586465697743856780803373747163477593671540742788628514793531895920441332035458945456687613695662022954057925122461117965611560908494789557028278420614026763128533102118520651712604059925940802570780658478867060873195127938069835474244552900228966718766375879543797896668706493363092025368353637934426280756700191398981337409331145905098897166142755004503963026185342989060943595545986236665990525666231189094979892935132240436721472849038605866429646547549145927588234690912261258050756089199905763958631383064666320226161991358806950784553724486916267363970372116448875203936817486960522012267922339697366291859189077946536665130682814516494905042991631135815849086238007743413915192955307403204662924550255346735997487748293152049359775126172585497229756976529753523241449971569609749088615930675019934299869791764532678414616207154333103408829678572397069720726155262606813334436579716817010741547575274235286506796869006043472131058447613543788873266145428577985126698934609316861682067976847985920079097303843491690491955705798513648463329565426340681238500465629623241761392161290980278032993229962241656445631102467830269561735333434556155876368527376013227338399004989851028903835955602631607263457718337854703987449683796774077414417262743928688745915199444698609903794806602291563305552295192235328487491206323617966037935472529425169813232383586057712891680277765044178837777441750138079034318312111174286138215382509464532962193564134824317223251207897605754723542229169811513286532794184010780946091174385275043358915967053882561777330207770516081783785592553497282500561510780661906758690599011850812979626670245853439858513095753608803875122997224366130622232111774236872830783988748510078956260971996288285814908929429003565083053325860705007745353261946477923479082475437446812540282792260363624946357307896528074311646152298516135750998735149496195085209260727974137039624757574512687277443456507733064920701876703413291311967888005226169551542325786685311562482170833519121063065791633732817860133124599120566282829441716358576517497752164550971852703701405302645942498865881497320362256652580128480878133778297978557440898748001284480730062666051306571272721201988381968512826900120461975274995146806759611473437197313931036836790037738343068322287437876263222616872795181049274343407490941508158483835312053683848916569522306726392647292228457373173683222900515612890828978653119552827604422143955494901590839674416269252130211680870163758017530538147731589718937350151661730284976048906782504285466997653526068225446637516831031178112857643043163545955818245686697270461963733732585877597650527841316382444383207644764750142618263819242302513338060469532610394283707293312919606125124971340109859567163758070632594554673746777124383016276392802809183411089341847204637012106668131816875889629038809385955288670146729521590815369765496762582435531006972828804321559125636315130861642039300983156623552804492437111130847278974639940965594967521383582253692491945134032279596627840227980459130855966326717757415344904332846079357606949765315129420645206334537286029724646386497383535930115501402607487041054895751890923457183878451738852050201868718607665773959735677139215253564723873666575601245687909130574764699826381745707046812118827703783835494508526224589746723241682421885390132022141888927480091150835790790423790578922198935627469604755148630964678072317163095529526283196309180023360957346119196903203758424006378790914497437959601009970243605184781084512898486694255325795476344976194161436340726415787849539819927295223709762071774363478965146694481962278031320115491800219315170101250582462219826128996359826688571060299391245814854802458008655080392485312600529710052430432088860792251056873561556661378872869106984099644331399037027199514799283358889764895635484944630060332054170495167542252100579736346405367479320375585305770116463396423931534179375405529270709977572020870983149729558245176697846320920297018231447354104192965968214709494557515346230789142043581763089107254452994169709246724894759102558797876157781973502856003353747599958194230914336819980685958448223300130955141488391037451764386545317215542718810803402530420761930234714889285728308199857514449376593195407512184458380440140016036092807174789938565288602627089169152220402704062014297901864129598974874031999867936251794699904709226694005882725439237031555509707785199162835155968202900472879824845922904071308719428286120087613698409512826339361276342280912797653729854996093630236055878088274647180872881593938532247075423268285568961843949658817536038855272794781403522436671963352043624066591282378814360027777562810887156009272655760152092961334167147579380075460682493065720370267761327569829313884891226075908187814821263025121094288551034484587184251230314478280199274854077498922563006261381455930764189298566083119795646769590004310076178380900463817605458194411105813456527979771766495249340217857619177138953650445070553541296924391462478728415898518021659680810478238214481498208711141473946110345455103001608879012888873456356449645488928601335410617190510959717990361800310741094866698367638674745917175888105702337584908015602085768170784482966437304793904428080758787904692264193862328356414168341068616145411326594322827374815452443128920713064868940490895384842237123245891176995778415648508342342987373595333452567129966748252504964433503382490998065170277807507554418337854313192583836810688164528143173270685549242531316267560998559919111604835701713392342428845595638944436918562911710192229654118996042941954624883531119136127833627284529711737436217793447436706414035218746060390793687712167532279732754403259756966046446729454724498222888451720334409184147605915570955947613997316619154695657327072526957382988086412619574672248224738281619778987836687723513780858118720923266362944326526403657181770216264370883214083318301316729780699516013860308529200322286147707053357959931474572955445134940837958683192499864461467670339185996975366142754067560557385151855869432741267375800425178884787877953449316265221587193548026315887935592085964799390130544094595769563324031423978518409315924352049955170902686929623109636680105818006008595130132785558654534270562758220082697180276181037513517551503980638384703523253254609249186438456287779183124934303089499298546900173265355981098713812741260839165360047246619926383354715977606033741851308487341166776563063633311977161284598352901115710115702413716896355493310220584748957095518629991361112792169520951501193542290302248468149159308766897588132738390691468880648706121963224212027970904296033273617239613867794171834237185842252840163384163808749606600080491047800834863173532829683610704560061832464859748878747967056129794909148524949919556167935812454200469510753772121006987916733986856282202787158292457538369234433070823207246089100884084633462908347340053603362254475211182290247562132588135983335089802500899286628370719205500357829346395029226287805390756437938436640028808175183217399913180018378736034613669173122007666881633528591584777765417130990071168889458392550783638564922280588861364807309226075759789088632886663533765851367899451793071188348100409100606754189530408587294464744274575143056623354611020284368092008955476884995083093959493689845940917475260422711639426539023768449860372860897425364207015906894284140738975405952529483191828820115913774835380977673428776490985902613825379323532357134943593766809104227347621602599699170697410287829531834385151067974950845410517593118151660301999638228510360931048971127523005388313321933019829467193974211461577360077038678740562507574328238807677488789970421904400288923274805697230074109599951118512852574138734646791876092487653163950544167325686192825089737490757822172460166928111457682391696931368928351177994294531421680944173531258343688393259996546844729677608788129604020277627276191466328964691878094486614261714647069823368448935431250735364818391986391661074433923796098191852497162630053659645394551701736990446761879415405251200381340674315207618046311316095152182156890088029594069057089962322612511119806876634564602460605317927265391079921203698301223739537661443213978701119663881652619700065602722334434963487534107750324109360256180178852877373828247666516613501870281922920875818931772045394396019417879126129202483303434483680882990627965561364515787131749579208123662916242117684144561923082869321003254899103624306945514838616537878533251923290461464782360548936888504508000722858548389640550254938345633147934563479267833633319055784133888660375421613492780299506857491218486166838775505071712021564734274358343857052689124034022917190160950800312509513626907132040347349034093663461170479481943464802491526359956975295978519882740642769886836206623093296593736063935149208073852795243150169945714787452278772683487034407164210086310964484217335160997604474458073106204617794873659861842721174926740197812250090235970976353705408358577269471117455052748813260222504828462825686370294176731722262582829613643704219048200978492539249865665906749112762799473650819781419694932450986616164492374955336898258039796404065558284332012945471485366171980786290477130378778500528099607909905580324001701472369927072368574443938370983155938019403969499075046747617453815398152470060830636076008811341945166203662744039937802037464215301795334861440885146436441226978158135854803885126349232636992350664253051736810635453067465132938531014351388190774089795433591321910380508631608833136766655728857256797524892883934752117054109496254482545372141763013440035640446028218588912275569807878472639682977080210263827369321086778190002106887059985976576341541218219594120516703287338777072926591302149018984806765714209556402596545557823519000297890323971619551988889148647996118312403042106972135347029972819665210364219968551657071329927316149181639418357399560983134965079985833398814835854999919756248390518945463771066184821395843547493299167773970436824119309038635168507385022340977426046382344784255151969248344518477236561927146583197449083721100137539460964290492970689966104096651595675002045248180592544852693886379035437076521179800851212799499203920662920398516918118519003787145881945897750504535440749089590394558301755212168774478116409459316933007063767891168026196363125314501726019745877730906290309828207117592290277010990218494464500710657588835992218297079093730039054121795676906602954266139912879374408674063337791932027399225219840789490031665541634145895597230662560708616836050454596544896102681590469536715139559286374737260806313647821289276802708494330249994053676993237661521804685584066529106874224738288069895141065470254823505325545968301224565351907706884073656344564953401665307336463543215593648081083794041718126203880770871758656413227204159025649877928285162307370866620706400569639861276305230912233266521894916705846519381025840164070722150337446123972659130829116446425861321827876964465339779441807706799961263784560063628292719745918817602397279016211612167767745006564210670322297859423298866223070963971713142651787615844208552646794349672250310317629034310342193913811581094650857739491488854488265631009724947749494286943708747865916630433895554494237058969675611600708471450506954799987892055707696611339961003589317230397664363920561875152547616280650223156539453222087408284832417249990670920423566443205104253689810625901203108268408652058385861811001062197551499531799780202097159269406800279296984566585230103730110809399274347434840506104097484001777750931307170024202748312792827803114533134160321827723765503493239181390237622629754400652643698841039164441497006025377164292884498978906311255447146269724948012777179996101443972310851444201352641725818176378962533676995934491281447083282799652332628169005391620245976508131291749231051428074124272323869689639148151453308151288878492482127662198717393407806131890013893583256764233927534496641019204214570689042836668064769871355030212267180456051402040210418263613549051341175345448303169091261752990186159411491941448991284864983062462573929418593884406373734504710554206228743868485111811244031256637994990031597379907332892496576912560754366369453666526786923387708129923882346186854736427487324613556657788875175096011534910441725372698978692153963900731136067940072179936115300098937828204042588424915979638977548447467171125440095515700754681995192104927917612597906034304009329386325961234120905425621156090323161920815019939596939752186991715666136697948077285560274785754110097425853650593741297984569717625416089445577402030896992004622029836724758686154088430096686872641044886023119500523320534641334804626395839241520701358108842439098764186202651310399744922302434513236580890386250478643636625663548811685985473740361458726254347212308551375372283753476113425648482119885786011340744442564684547950761661775213337720461379830898300902452936416730509694154812677856260123674984967792205158444077721921105753420753806882588584960673337564964380441382667214085897989520021751448367316282991846347598980657662469886169471838434273148715015908099472014546812183383557234311114506442504504826969704270556233802774534613000058210470340960011356119295259608048358349693119796784980235578410698524687234733522153953773679107212534180726642436093541034541501491916010608004097095403173056457633295465152175325313447427762028813126887306317165843596389046370405318609308396194675942888409627820709650411253894151948222192238672857683342960836887511330146147144664249857848504916515275149979760368192399927153431177668700779897508007877380317283511197072834610818480812532727475264339864641011189973613243275116559342580481765027294971656729423304528109083917063320445105843348864375703105648449410189637873693519516215455431460838921435850348204025563764297920567862044844957647849952871543912292631323331448076884752552081569933813044369500988547234173662606648859546875494144478448512556947828080255728275594374495460109842154178217215596611025824221814045074834022753742759359021582216871924498166095437780691365497199774445518994651917761844034798756083059643046217913203967182171796405467361260689700427284615685897483697269404201697410264270531026065468468784908562755681342054388599022326654070499809091277960342166245247242627172635263652466100559162788110422795732566059823172017576226446693429123861905142966401367834611347712253577548827724630981703003550662118229025989162969459638076415789950147287577742760215971966821090562447674654201081561555227721670018870736784848559713146893153282196872790600868267959606912144252375717649697738598877580752061163400456172616690102428830621231457055579906525037521109540731773918800352673076523369942409963072820212718816094165983239217510189514489543571478249172624026831140016658220228705921474196019684248766231018130767548866737288958313180538097026920909182427264100395802282781464494567984494134257809966076755532781895909825727281443451732289588071380562237460496618639924290132189636851203960593314840710283670872638630753970354917801720118735606040273967432616291245043641791343728040260018538028024464901798597750152611475166415751767405010195825202197178560559362307562691519978499620903226518946591262411744776288783584642087597909375898742569854885938167824669231913315634864070494016650261701071960551847010577138032282833598092270215752062881235241893141870369442778963311379281471897681710209958721322690158023807530671956805407750901800779145949620142414337970488803536377908439600068208018310959371257754427791076552925162536657709708766088153026429930410590162759701275299201994897048853914242591653636220854428155942389778966133578524689267137089772958712278858326230787850536032156203989355234908820546345431403679340755805086086960052103309884773887060239076147703779786253056003139420386447157882486673673956767485937126370155357524569446392354926972021160277282717815807240901816088495889292560519445430799058713792478621407743580044766772485295300334939462034053492749218095819639804284209982790267325210746165288474929969184867160035732135838548495028516705707213159463970205230975347015825332410838122026607182328941789314767162535919399707821929624436018904027965007522339615486692302244717302951295675233257489403534131459534902332084957950848762968355179007489412240974659550972803786599410793367446610616806315570646150944765209458863400510283411797714381345364779435314268716148827319312267080414587407203213796629914066861957886816914718316729232058624246260147029421093685846496850579971351633991768874621473597986084201244472678163172785726437545307032951056584919741175280695928266332219587082773536832503788101527422996090074111202051472261603039930079370185988159499774791021499844670980247231944745124480495846513054831701681889508908005272103082706811310684548716306875575554346965037715316709452587415165565557543770007730428355307507308932280966072674621183525246296583470779739869704497662195923196944515286193246275486887608743354651538075627433713624321121695198664532600342058014376236409308593862915970401626624509188754693649703116180615656241724833681786015667395430779448993232372972568618479001142168790104577149401567665870686236456800093852069011517837547480770222427306539319471187650319346705953273861189080212614379974051240729312550314800625805165629478726620479046152501913873672847593159166667396879274707837203289376632606463558448390625841378602022790444423623068665137197457132751033252509370838459230603723884292429733823223852649100572933636265405583804332396129672435920266493405815284684137539218166517070041170145688784306465903234219512581749978742081779025745330286963700798448082217748720504200887748385973170435709015120464565532838743342116046746413402947042300579668281023692244706217965584726294267350700625328202868306450450794735853671867391507643241953855526587216319389216904610771221553356461814234901261459529096738910544501734239447663645286425638078512940305582207145939053699099752992429265201161423065943672476056800373308221614702244199818649535076783035271430838458314527685632773718393004761275908420616106608929394478200308243694975421107620904226762907679163302953185985692186554857745471236942324355703804006496622731587286791531248622101597213239473381151956620606598211991272150890769444569445460243830967832137121320143816328081169845897882298210919210438149583226591403931589231883477068709243774918368417351666816608334014009528868798487359392319893227873465255558164020108547752147368599100410720424848055491345272730077603700676795051949131647940317230597378291848614869416885980124767848069492822508326145355493575760967558392143752728160882503364639393641332624830426175978299526820530505389886298317332798692675946449685691890623626753140684004454629777426751332752926255481184606549348707495114511428797870824132699718985124519345849431804835668375702214406964547233371323947054270684247284030861586260027146142743515612002418983244550255882367842533314746552038184924566765479451132774278309507919306770496872068086567802906269145567405576570511772214600840026703076988852954017351422144146982154738232277902396013913912160609438416471532300556106297644335007585037468352326099119550115012456655381259865836010607841023339232307734276916970060968094653036657820747446300192131323471621648559686807007331140361951729428370495588488328548056995541091973777358882796378096023743220824771804236834574488408711879110290828640406019313771566049995051147787516386964921929923725250795156807079720871034196556598385736283081085937992789364654165555458217436955545196164718805728012238805303393965559380437618456129278923679487939516430109154378588082371235484702662540476833135389206105572495378573610945120359115026159133773787255920123245661657781609192796109605858373548917480945897213683906748720020067935449523829759178295693634533906580345833921456728275867458514485642229872743188831839041256417293256914969015969615142586887186222327769794615664359840818070032540023321290283500352471110623658762046970659920282416741456388767290493489588648691769093469521116860002921314304185122155603126174320858050706675516909287758231729201469466283242876384192378166357053053474426102064681989949710362064404026121592653655376616637306532965508911777620826202891566062800681244764396412967914471602552824951558207475786956498184396526320096387957662154707630651636547124621416500416414556795853777080192804328910019050571085557513396410817256860305671465520072170572775901166363097846336432932580940010397966577650954619369601482475557969856515835049466684258825390165326706723207453576107552224824603021056010718267222723828079995443878358344546050118754602133905222051131076180463870013462557534293016914094559450920477094586207569814574416010312998685935888888033590197944881379587705405523574303785017179418807300057783806219375771435352876229692783567148376692256763146783424679607506631020878568270810754557564049273438818143758488251291519987920508044125170705438877984971926596497871841809225141947256846922709967128267000188746302657885604290036979216795417682022427962832897472074683468450975418708645777296469982649411230834418261369629485232733779633435077194438133305510224806153496663231924403780740828611356552327293943096897669645628671147492807629534999651234724536799260673905775452250475968654451498381789877831394050921059653940745794204420048861974716252058029138042751965449772447392094389430204163797278500131833396714885253718341687889266881529367218006516519460501613104403474874046835670091489110115254518862361900742872470021143381999927950959999788150847325374858550271661017787520694789729506803188782289896414944963492830831845469905922532351038193063026628314412783855643796028033900120119427304946742387460565670460620674228961715082932067196683026344733629568185158346359255242030191558984917112301549484058018680975771809741250087789428515676286080278735800031782750650827933337431971705318429428623754268111063582220696351833423668275298667327851166947022599848155701244975600035609891083500895582697781687605493731816805047608334462824528361322639592155193102020691264953515800461028829557431815534235155350720985048048262797638063737991658446597271519534523499644096929953420882938747770536957176077302158183223789718111534958099212315917356696300534856000223256842257595204279169265171833624397613612270777445015718233365864726849901136439129709153409663033134386156498169425956546415658787468667209339141856638073660205990043721166276007827744509776989185956689827592188090327625420194493786551682436503295895408969058314317563930472291547007885322803579055605934333613080939898508165057098930873715032837092912899155938189760487197822168561341308533801927578325031657174879350528831135353430978727823512170589155762154676536644187969014893619967953325951254479468382432829761046352757373309203020740422187437840247573056806705248803125808067840737109122789946385864983202181672221432149933504891137513177096921714558063681510484483232825206698882848817795924529441229519358763801510982495210349513879646973026200697788144556420854295128578252511772854567358141084904849377462923370421002306953733915698991502850287139556885903936174995635053402293218072614000996660954681820912855519671434854353244466367042057504107524554385400949531506482957135002555105494021028773586080822660759810484826739942798825529263239614575502982858753495970361956336765523148684757368836623765741321685296056327688659663385362368303098944022909022738526797068349490974129311644874065880504037081730171394005185092022916950092818023055529779042833779310792679822816847308821767703853173568885514936613015524294422613778345509207614375639733485519861122769009060514134499624893775520789587903570127189916094935925456163829425120489802733056417209075329464330449044421204547270806328918329398148827863865075608190635295072298065905778792236011445090484944217080592929360080088021007897402475582958593504875848780108698692499405700726627172346603062013696413577401628173010134341987021146674901109566994137609847043761676107546742515690414643981454732522455141708102529984796537522363485519731716368188915260567758447940167757983931075745334641490275007292515717490878555326271502008749862826159124645435362440630709166131572119784795788172221403564990616949338428490317489247484569060878549795426042304131600165338556407183849998863213961670728035282992114949488550042769120078672758237954060331038334110775296061239188028389885963005145270779567500314349337105280686488757374651219820167606867520053721635672934742207082133599705964386934066157651942944869134218107218870943219308867637476136520809350330133838942566859684199890318965448866853041113403886980723979536585921042477606133730305776446067450478960034506115693502096676100985552876500151022419188566736013996170699798955108241738607701457510298781150859787944137377299488140432957590125558514162891366907036500495118561231044965246054571772904355241713791155890287784878409177118458433656887462324177265299610194269757065610268206835618241416270470775806601401779128300395504758987377649471416453469701873809453971934736837022196119755444309984568793591197424782852680682463467191815910108614891272280376414989420561465124256051208581198362391477335553467047795716939689410244030779627557728068594132430597265279666733233293459361078468875652584913972024471959757612733552170660937989571344967005185667692703897049413412127954126736764124772922992349527411541157319826810115275444329700441563522392232338264468338482110472711854018982571877631148327568782881716907431537049579703520357302851841668831233168897359568398243295572639075798260931348069142744470746929051033682804537091645470529316416773478605733217758321936114754978074598751893220501890794705960954764753600220893729370114385591084847318379591148922923999311804561085862274098204096987429584924031707340369947000938035436381444516080433053969332088446108178388064291668471593077436918260227098543746775319261024323757641026690466255462180295973050807221066846801389421898334306660938813313502977927347284828238705490842385467904626184437439107533520701647118212154378461943998194889883863887380647084805566649785630989366649456109442185143816613155399587706190020024153509112683204325648802502550799354540951221823416208399663015229385719996179963188280431937560829271225322770391767141912912557576866037321424135367673263955359352901894319743553434658892657445409382584911518338491195214235722961670477823790578771652296474656891085451372311232335266945011391161180461757116563048815433440889912938295142049121474080659101412519275508919092969887678883344055939643220572447711726021029273003056173075648933340669399304467233112086898183307062061963243223921960468803615969932027417511386254630531106723434019090411429787908826993824679706967463203871952718262687212404026975318416007826956429879864086390102443223610329798306177045343308641845243541242134659838013159720471945511635840175228534990083457086728801533444047840225823277612640427186295905371289083364547691246941584660406624307757841253820378364580261765238124558708265054145719937068213989486415102331431149157035087206096823618825933936808326064324840937452522729979615402734758858407360925422208750330041837374084590370114143190652558252919538830365749689908723935494541080717775105798417587865526166723632760129292563297569036456989700820137526670442665438752413014131044522183485648699861060016336868121939754970827301895377455602775894284339070411724170077536401051403478172523751699532845375784967959246612580141538194235051473021402073775517189284715676166743241092424843243362102810870099513836070656495846107857150381361766220795982808584554063108070411198092052618477495062711766664218103360199455116785862573836337506060942411676211391571416222427004264063676355423311204931668951516111313093174423067424802406350224570205978509458890747178628725250872539727288729221816567661202494405820111599104232127668707864542240983415816028323837590021364778709180618718888199082785880614921370963643892839346283637431627695985928938134143471495784300396273686803485797011660250588455255789417505064135861404236188774436607167814395274121245236713766178752542941662612594973781167943898412903454531508052707993891742537651831826405395669706084282137749930965278756541309677072638157614105471708182227555753680092054227240628258042786409041728840079113593426938819331372470433721362910807278928516809269855581855843987409004803655641175790233910583095490252733132040180436196747853571350625440397653780301382796219508208941809694728246804804266714645159974769044965778389723724050018165850039394776914480311562899580630552359670669047857805251711328940915109928562962392516505446855840787744446015836839396056463176639182951098077125239298232045951982731722178301667673818733510942289133298075078357419401027133565991300939213426901561794420458981282079932070301800698529345761667510197743627755377105051510247143082099857812110637211579461085012562508709645033538501581561128077342453783182809603437593011785308470357438051696651887763400367213477939052260345726599358471380653193967102084991744677820318196953735975057197804462029193060635284139702618244873191674836165968260037644002106280988070260741387114347047884591054169261937864875220948708593129976413349471757072269571649219410907095514682219318745997519134405465057531681052007878464671001390514706758930719714789289946988406028334575057362360349754190834944936479594893604800582719920834994440668567976749726381194592928284165509715440279668618552920219913751471330143034266225202485155372826629989212274404886629024907742972042785803044878495276201067667720780843358525686588725083008602542615781713289565210371821645732803190728872458600490969530408791385511641155072117031893321230853529961940901103295916866795922653991985555637249658226049182785268506344401270881365131727964977542137060545635250063242190406019031739829220047401163123973106629176688744531253616554790959055729141850368392506272264601177042364443617093965869594350066203908117892928981270618045642668626018117987565625811951340787351690323248799951892178929006600133632281392676597027019017485753960822176155471889385648609779201008645342727914357177444497407271841007812184094603118865712228128450892690033245343407003121140935803532716644635586807192619458796295592256337649940633945173844511883425797670496657468091141586455144062547450695075467319393952829175732007692292206659476108949242500537765234212919630382011895173599139789776832060008729334891720046086623870619644673862869861750538593622325236758414324874684130579325450196408492090459789526875604091736348534586230241079015884158726344061664520019931891846796692889153651185948650019600597604970057663968657301293927941382001373226927238530897620915298995281923846672903858973343560751800772437375671480833653694838234485382777303894541223325702775895377860294126461488818664970342635750960389632323540659742455167940544068595451168814131229697355203291440943081548243706981862881508814398992437518682919388799681663504195358270349581686434744793489634380379634192692097233698732592909648441375109685399642324770564962423546743161444319237479490098164279969163475460560335278496928484728588559412783660142366275354087473377356289351994812178829663282529545860288377280035614315947223074900584277364886788191972929995467618740471016696211938390537956766732871049073397475678120916148879604737944336494507966666416210054328855073249389827088578337976108901154743055132429666479889588634436800796903547657220731686322700197988832806492517489469098562750917016570029410440111643892362883185418531069960356650240185381774919697139097209243946450082776340163022071058838452938215730141066040749808811112123713896056831925101360456107532731806867374282970221571290801156054968934556428641457216085781323921156246908032376105539311509597222912817472232106822999267257406466323991561537037513632301292901953969056942095650482071183923039389888054146223616717574498858717606406094225530348300032115287406884846074139321570000311307350936504479433464210408284194874351985288544297830689233066594602013749251198400328087942655530235020040539371332169184433388097333643740334412484420061643584378387451046198137989915829989620995624991749596957329493564452049111771415593035631636476112384634077774654996867035994341590972595474191662514238820594824032752101227910937548398388811830315476415069972112558819380185619315331239556653779283091511229673695362047414259440561379585589440225525231517201011338760242785696718858031509888206720095986602922320032970393483486453736155889035444768512155655936764414231087903849948239886983920390606414042093393540539897226082226054930942486450095216960205177564725607451293469296368204490903592678370072146230481010054198512907549492840730979537447593809777681416627809896517058940172469474904491276339823973616674635313378804525508061217108491023463742451809124393318217050848849066176162120642288867674755148841633872937315435854157290250116120906695256251171329009214927688151008054442006033375710128997140936165368488169620813776353629175922983485054792701748468061134920721609040400874925963297009391352830889636380862232649614364466967482073235525038514846295428901015235784543831040986583772935889096745449859165800029759392166236161031730613465979493790411661044561908469820608304649395108784900658609376669675947113146086765611221862633671223807423587906487632937507768502067694189654487780335949246831093281668196371301926910114363980288268650863821986886473318144419119748766956172205655999325402197621492894178562355285890266165764865166083203897093572214519997193496414522485625512259047192135073253455403036653965410587101538847908210140358910725970748304672063438605898144385698331007503237448031795117137772451268045334597089510963006569659723649559031962762318025462614092658177311291702701987118976463599078360937179732372147925673006418057728709097952134050525836924428061687734583384534944930849179924006642919632821005690825720236012034325818488258930626492771094236445908171894937412851630079752862397116462302327241714451305065548357562271273841166079479143104272421576594079415303520924800156470655789130794021041729168165791431404362950962905935712588050987142038604486914650808710037990866492784145244521540219960635536722349402812192925504186201352906788940822496032629104189990425410311612900165138143370469086442919039372617729329383210236093871906326071342256575493727105386487259194249990652534008589863690389794656712519339813717430733461063720986888798532139549703618584426452390806297515089778956673624427438410178076136539147566584146658067100187131232536224872872766674342861416183907041629765343557186865429313306052085991228468779799697526209832694963963969582803193787821900737075705251717712225086339036787698750511190431578017008164340146410102739992345766725556020199932257861681387838442196579264498055013320478438365231729022153503361483930862704963632329732541235433520705422101007858510478021990937806563595452874429477187746551474822581209758021360331895706255766750484760675584986943034166964193225917467609720859378481602172324607295434411203031611314550609081172953646454143877990962638392659543399771094889550502529140534060307560372539535627871710335868722332626491695908068224173011234295437637458673996465400607630009475597661901516971130548095599086410659982996583082593534841122778200787758831336015882332029087709840381337070954495598101368789207168560797771345136175873576150247377062255972488999818294177518053447567442978410412060571976218100338597083531647686299276893461461894197613767866751872303205041025354179017180829020794210783816052263459610091469255062575062884035013531891517734047253865172910198997055533091086629704225261243551372304954901931051510704411337585502992029454987895302396213079116108046696461156669316547850595683580426755070431412835665763122073846761910332005111135214526615505225475083473805247066593650444121219412249675510710951798551829666166095369438570770058984560913666330006543317230036875163753394688615777332908886145379783751698107516995472674201953579217961094601245348467783744515322628995622335507455749130304491374471223538264205534127087072578397241819371854485661453564376115490202201249767994661484945026991989808429444732259452473261042231855785722009121067433377449382100421866173884959323794813520296012371017601231308819891426527640126851562545063016730606177580373153818177037450396275848402751219541852739431456417763143431034666919833817882507190590810676634486034001566597221527541953607399477091324411990620973734131554013125231146870741148956335679165077897257918429614789144613649472439560918368391575453025787215991122052001481232159623944689800511674351721903590266367127356799680634294871174319386013875714195796788568850428037045528044324649469176584221168367071301455728784936839894413794986358552334134771233679910060762901047003150411751351844085875534761547235350333653303520458451667273588266370558887186427782207663092477973572696888919630407721177520386212912652019603147529283020292837158777038625248972143204348448132966266037831769016643998886190023709852912745062424344532758923422469732498006515621200236332860785290442227766787249653217253962829547997297229758023913656604644788671708530462059014168937456911436878310616164040455566630658756304714317912066217217440047655562733311669697349515018922657021504017004762916286654890738167076355185308225334814337757834429217082749940873698291982531678975348521197808045357962466200821823129238387798901536918948984028907552171709444322803864254637053259390184917330456112450262438044268385931912209006973526343013549233818028329536755708157867788768812068120983261121792227050477918062581442309218784862292453774792694327275864507374612983172771201137381193736880427074873070819882249565088296544980662662326125031575862934665459909430220840114272083465746455856900828536191865947608521076350873715902762588369193380144908433466877504971822306310501424514769175968537395814291872583645965549774520220117297538090901745871481775238634521041925615591085759661013777826162480777481887035887245729784913277583626972440984838385640080162032232110202905503785731863663348928742261886215915437406934916781713135522337944001973970897140645296460227813951681077466534555178046639632852673842966628998167754719559035449021589732984151933029247566317219451931306316034384607855427069370649938803430227596805755212547909614476900449222454149301702726881020752380802111428289602572698291509770202642517898657063694437749889339890122440339850665925138091307292567149466410601208935790899227297229129375007696393460593681474844624151645714834431696108808007248452891470732941740729973593731378480665914856409983962832611674333703670288416580684903576330342082701982223074584066093077579025784385437360015295077927610530095890040148747627489352896945291320589715584351954070614566056232177091252829804113922904997624087535557728588233486634270988799672566905171419357869673083842033050275961287523556551347700245703492953110418546201818934218203319690079532016795554139818137728589224098901611148791938187320954252974373501081249215429767325480080570926941946958186812785531401870225338333929918432540685192381024446671234556831883210777878605696257426092834646678187924021797593406040360774154031954881000759358029529166243070149626868421593538710386607921779076112575954081638139253426518479693277626893722425949638831525170462399662287819658402523258161072593812024756589351305654142986650345128768174430527702812203097710900887546761476828483113375016677275374252747577980079828239517480749766593468339603650428424102229416896236157612176776718275527021501979518616850958818956053286002854253254407646150879405621471658209165768776244463249286655393867298955769643250410427741163978539370686949597976373380812332834062242820084205313740534285202606293648724504658389799728962649107878856925703009973972838565204698766045046354015867307629593904924133239522805924499411656661839113323340110041560795536256323151085311005043047359200602596061083935707060355243078615647714959663839083025129491828761322277644402161436096215445850023042472925586142464358772542204757481242902313000493775444722302057037206595402252850638923150722135441530265216760947569856333237527499085652278829108936184858004560762266338096713117435635835676764171936139756328845516509567650068468485319182861038103089560682184887626616435499407666159553683707189138008989339419277033508644304604418437855060073060352294816498530052694252814227793618013553516341744059905103343021170593253939991914426388267810702333604367089683944383643973439785522251136375731055329802640671878531433492243262725759096053050725165229079144695559619918132481527153404236638268274155605952199746441758073636323932042212619815696809533535862828955305345898843873759795771924946990999652974454958944721122086563224748787003999037432756734501165487846548941665923362927963734609856659400163891277604844602726143335942061151469408441996494675145717317085643629899939741646047351294878285714503591337187720363848026319942460050721609026344577413483728617677766942313625528166948199138918045958116974231096880479160560974217169171324488385177658855620756795898296223132386663874728276182979930921934502774866538623675044977678457444623134245158799249546540964211766105359770821374975827326796911769984324182600906803202113590629858245680188425205866101301112252900886779188200697388377833998919485474246985160677427564961967219238830438988911188481387579700919771325666623722440807972338383450700545757470189836675695465258964621282782691205671824075537193543171047234028710337723634196167891398712634587708924737591194695157507017612780715483426767367468547158782755456011405575381268401365034738334085264290318703120145607558861805662133369489383654074322612111192230641116784430060708504304079392847203528854611425209221391226936024291220950500355342786394629664801922786207159561492917865304166343314725967192430277823116789821809508077331762575972473309863860536044771132338950924071697514753211679347798211272414962841571985473576999898432260100002583137857660821003699423986934521729118935724241185978944583499184819367005517220533632061875768176654317440435947439032179272338382369639920192895947308529470912609829234944578705877361085181062754318552561846950150968741283419428999763429857863983328642212117613793483155401864567031169963529296264994298021792571507486956905817185644597581017956480198686121239677307539300896014558987128384515340494677870423892213524888158748964063349975933565300316417548591833373876658751260679822991707435164336064218616636630643942674594608148462846681708283312926395759420154493555174571776346165427251981915588171165189531095503002568120292301544767729566669839360004389019821475710172725293293636039913094068700198506094774119639446011516179647700674016006210373422206171058117650999873971249075720618690278668521001984835206255915743935385824201708969928262435542531439211776589767166992012934572481064854562726101369163184129751486802828223022584723923500722723778943208391826110022757160392967925349263970845780392718989410003359642406771621376736754571966453396501716411649162737575634599620163172498842822613719495018096508553679772293673461907139102716050969683307103434839802538887378868033072871937369170757518540811052920352553806143142425745110106171830537763535692282976826495574347008396264048737817651203576898531994153296921815478475217525512002923330956662369600614963650965144632880597922398569136824338306200531064837439924325439467241430993229878050946579574441843530161201852838236044403169207199274102883551268413694338880033394273166114727800342253491941033297288782976882724249348826447740184364370914046193982640446307787439193322545781736712885535519201031167575154859043540424723157090954999631266038355764920170304838484473421761258593598008293065704567900255037746209470057798010012792826973351937883577666545893086828345323422477567419368844540145583986174406631944083657254783448268831594752445920332264417289178475410547313519880690204474776975559868166334345169207531295154621803163408482597708746082642749249038108583828992919103293729230968301861848911842865058217333945545033097393386027202591189652164483129102358152178500521425475009400275795913767342833829239859603184592070971721673341917675189067669498003727141344280303772191412178840798490398080016202835195598336291761874256572063934419282620713930642785578969006349943380365748205620507820669445376975421405487187163719940983361242947926787127455149204201820000912138474514339675318975133888018226476559417208378846366487911099076283392152130451058917507238313717393430767978401050029797810244859445412478254159055146800068795328931455194825934588766222792172725283060785720154740024331279829139388564308988985911103341623567208621662530194411851415160885560238305230497393647783599792152169517224870718019327416795043895617698553854738959750223423557834097620035309096700558359878744101278640690294765203143646685823243423142555630825585023790963841375336060044267070324642366293454819254181539925172775250559544321304811694145222283258333030124823321486119116028097920424112467959411990657024350721621662599763251639377625431978468619382447237337157579915999558641738278135648843262107110030300551671242700181490400540196281013926413656258713246393674627569104506184229552702197485020873539591837393321429650680913392413535485991213057388698603888779226672945414649901035437837820026298929030484170825473894848264483651658728673726868917840005209154587990049010430640326436146817102630630831727863231347160721667008125412775656271282174347663168298628377026080058717590119824931013182078772517733494214413798600435377056606889866840527639321349050962704146014971759067960401005007225515908848493713144718388786280743973430584406759045327545848889696119125189931740872185563170637544833468844358594305564772673561853536478981651888497369395005633577914370464763092519630051095412668310170242777527790976696380031180143090710451668354153024185970969524457099363186243213459410860064381798606191578433901791772103013471877536113770138756418215591442987854609002959374008215924836604594006195229127838580899253972213277675470720137307690187787118459148825865388797389228431777988925295110255761126414022416567899154013064597142153246414217633134475380297649199593132354648975567131552152892712051998288929102577668883903978940976776963903396317141026194204220733674255987831489491462980792479396816274863912589290859631629881275251936264102990461051359967994723085477145765071736318444801865255551208219022453235284222162112492563554660275682836827945051259391208920693205080536816709611014328728218411738151723509204811256388446528536993444024324542212261454219359460518091460281303404650320065659053577276965348753401479066957881670364914764741073407352730963583780700514702040638604874615606856095814613553864536573417709991151705116242869419554018187626046570205555202173241756439437492333970676912260752298263316697340578361940514898589550141148771142052315948191329710870482001130954380464522609557383009683234768578204659267852507054958841452600051724974300611890834114647641528708985425346178330266943405908329442474071504013069183279059414263337256493374871823771820268394998888035811765240727467377656613362455694828609976237460346392410134526265821883763023971945233828759166359144473024059597074527383599525071592931085722877518943805005248704703123583677536379941391085213234492679285108282880490102587064929553759269742578206694640288451655281149529680086706785249289172238812443676097882701372777686356863166550454970469402591105588718783339865524804584104444337568337406326615755181783405858923460491476580141650752705702864381166649742063709762971452164019006919927148395392246348912241959683007827498672773461315527659394188046576562804287346672739605261247867011169731097976462359968503189730292434709914797105399422517654925388411614588954711146955451828061609443991516098013742439074846557618902552855246120231476003812336419171655895077882693401561654143196141769347808455245695446404634222317898329302424117764544414281097370305427701781454904893926740258587162974951205321207809249128748928333848538031985632493458409978268077112302444651943804080771418954049793666978184253936880829734816646938865560411382959398899211671073093479500481663673930503781366056676976164540545413296088407747481632183698750134482048079880855556074145836098739333780157766956804368724573863778858593715445863460602097562459250956271243592025904477853444968004116056042468639967742863855145433829060312911948583084301096992227290302436543822832308163675612007154927038340829607608371689527858817673662765720708958762808982313632978621030694340508688185382358866983950570768820960332185420820476301809910700343484211046915718985797117422520523243548491192728565464473857328848442277798014906348070869381920812941286432975463437886372485995906512686272430519892089716912039945410392577780867841563997431690856241829932625904098613933275294432761107895606753775377751855033668249796801751198116940465028094911301467015829128051811556366256362231085589689422229215218219589277246356178294852658065558873251802478837941503879874168988811530844738336116558417953644766957836109059428322024290002440000049361156964936628099472764960776936067530125990035250256437508315352897420277778236363061584561287439683594303209439314396209601578544585384879973729887868220031697479147844536719174542730214832378170603402094809762447659318425665159268686463736608443220501396252752250981013236369710133527638741629985266694541290034897987451657350545529511076356444325494290654582619075524106120720329141159605531392899855683614366052973561187857222133912757086370043124037043230924595201268878056490989342684209394598406697334417126527795491740779312851664079992738724640329146395200427711210910755316179653893103867637250752331129542700028701073093918345321249718476803391946442580341113515123872873600249458152408376066542387815310952380529792442948132368326878827342546329936271628974601871852708885554120955750993295485575422133259124798040343206570871361785914158556322163613086400840085200933350195119516585202676130087411188152795024253581494267755316894309985412888498430197973868637973266930382590272200541409927966015719997590038592957921787288829803181119646940881422966710790827103677552652362920760155306577628242467888855624601499654010233411860304835959808029689807753002549735200406873741860599862391468693056968131571935889020583320285107377713753042051763120784590091616877278721178437851723582852188417586510444829537644709668647672385172715042046401681782185151626823345149272343854911960399527183251744689708503412265411947810493726730390704884170084812366969574711249835515559898283002482562516483940555975783647979190605997864078715736070520658750072193978590707981422816375595433002479069613540041995696355757776801879603046071695466942447072379844083746787162434605812745694356732830579491510531379922553412279102367061625247255389330483383056004091386599753054585564605810230743082573684812914957842928970391235646311795099188502035939347002286692487476719013700831005583120007830366385875677917131267670943513925932212211103110564298117878638512120637626012347134976112114175627151050610422853106370850834998512978005321673274691603368979100126690963856655883822436117064731912675983696389948188001766841883160251915243796660540397599066637823075909030305624773957380738599063994335497814317824962147863149675348475555216370501371660491007577557224338821037707874656412570746600882536453297993143764864101954447752481462947623566935724891732824503780204583209246747293583757719700341927902847846478736320652949221953650115071648711175120708665209206175326242083089057055632196793536041302252104442184453833430026322135628927959157472988449557998934567470154708208980637618118946101996093610043821088298031717787138019080910111208324273823888061146185518009629040901072511955787214851134293514341710008045446468477029570113489740184504154260708279313600240394693957593106726554546061950935747879919103121007677874012431012565898192649700591825154167036053143323082140086420000542052917175518841348302062562530294377985817407778338439391773282254805467890229789331628862750577879668975087022829237485254594492155413760527489950412584782548932187379237200765853040044812213502688969301564009017580085321447726933635385525022450127582291451051845590093047278527680839399085276348142477279214298052723193838433678101472267316723639609425668445421952233445258491293497794533713505358967804749417679352456567685125566045913607927367359457651633513564500144933682710703071685887351588779444334186102841644954337139354139301355545625420587117539853627860610561155773463089289868191635094869064255247499931056756311839128290843963859592907845253085056455406917381239171252986707944491434194133339310692965240967075167337731011101086399418856890845069822161770347113156104170151855228257618154762734395375248080934112907089975908486977213542640857963117293470832053902767391658313283348175029367628634259496929284637322403350521285089952095471941125254601197540496951727056024649834736025430110862462280743609067797277143750929040942648003616728080160765519247752292113482986348532479287823746296398435133788447391060692262391401680287909302262940924709532118760271071580209483637607839479491882583566636519369394193702339144835868329672835378824462764791894153240329989570231020183087758482127216508597365085166490422271036406287593387765579797946664166891364079361716745237052574077931478007741221186821002633399253261265719108924128297915438476463484811687329499645717991396306815463374316679704572083569990322295674435383079292067312484677331924629801988445102066361658008906850562414141939197107377017581334908371580645006666639116717909012689555150787800178778752516414015834073042691265788404618031890224529075346083865223042190398347340013248349192264402287040669166980138432137289160903403551957314365463252843930000397093865346673706617163474649182593614778788069856741907847376846273358591687768534973316464640212736951861610459685191603965755725847220209976420087873753451101628520767934347940047287232940745915244235658511073988590706375620753106698314853540742762288691866354673712662190928468635965008976705716149085329545331060112776458162730291760325236833903881133839190484119829044439877241360743566712483794677828065877240278024684265345569749157702102061737987223429121621584805490361115761631805159491481054526757301145143590830713982507162464671105577211307270025655016943063451239267405631892251512210043441105134541954713888468461278042560982142866450039905477827701066889639799004106571263167228762139185145657045691994755298844655203991857032530531840189023976470355853147772791067993599558324104883086863593297680603201088911943582577173168938671675869781925827915321894819244357912955799013625984154342625596454044422968815704687911060988407361636029904909281365759044396917430193511713603401364629392577717038613461296318402091690626624152285141615813779379324330211731756799965190138141379417515063416214696490149212660527981139659349349166098603205449603323031765878586626771889286001139782441816832839638753855312626498884909975992240984236047020318010407158519830814595341609193047463703678443346302961645323941143414655194345311416047998859546438017255732586576996091674038505291917310934889336999560030265534862138056931654587038235384788679903168196839693854972116466882901016716769363061418439205199498158413022447522265172614800770901302860321090597272306299130316955877761593634346287416116953217775701059565569582360797944586706582959960650443496325242368717499147615710100250382486082071668420766890659143525986123728410219705437781482271881074964837321869308075388546853411871363994074834390662924165550143739012722121746928209655129045382925346208013276058888592396069686154346681893590974460793650197681945865134226223309807133543979194766728175859600108031606633351396387022322822583035846805565233935784218855531096676629647874273878959605844137760828711530609874584901778947304050709443649256599530705535074936643587448724574553152004741965514462806230334028850996678480497752206397262711143719968356347564971371613238633271415614341377193708654263058435043829688309867963060598213418921265196735312548768726085577923873689429051642633183484649687534687112896800778350642597443861086966980034140436879920007248652121953957726792824711574648869578428806376132837442920419896796583630939134855466287474681350808615168492110007610290475232315899341108540371943357801575704629851789195321359267900240223154977834999588615687842915250756358347392769244086578902533814568488585037116344349020786582538981753700571136073677278670892224448224354730959460910114022075928724865983551575563633490557603165335820468955386373749673992144829478248989192121728487282102043438986429343566039046589248438057550493421362080706487789781083343576371388669734057104117868863759146687817421126344342670097574764829878307320365794051321728048144457007033032799780998566500314079969711281988947119222681771253847666328131493485337694003282164959963024369102451539664369056216586284533482908248939675220079468238594598098284164178811985742371698633535140259397215464157603145817726410309670527349386185072616060870230239233393446712849090348354834792422004192247997153296082091750427343496707998720616092193238299721684183878601501834415459349935769672491436632453799122796539148402506768507622427045915061783455710744334333415071518742000357133730858187151959222640213863825954094944944844739382389232662448101564385645869675965174192935358394620470437239849232005926416944141573214494037601370242724672896686324454364729506361950776132076137878897748958615893176595428100420723512579556354617038769483664922145858364114964719514841313167116912509788258230044511532536251828061240775800224565257830675145624022881244456102447761301046113617630833916044021330689645641154121368550565599744288162194603499120047651395688299652323296300590255637065654220077334749314978720491583969122152328599834015136299227987312062100106267184165647344014082515325482543411993087610346118620049575025672740986852280640668061239929355016739020753514459962420266064994408476294902339163289651598159815296945464830046343869618735703693538278501688090546238786277022679799442085077478158501570411849449456042244472624653009712726183419573234055027901350068240348264151572504843689492073170136774955510685013535346068654787081078192101107900446498045067401379641957614565576355262417879628738813583418483549188362949557930913082476407256915477906613691369036601553288389991213982399489643181157535632182318594532004788461377968559201228030957085632306773242656902094358907276053946933342350778241940212080711723807413699583909781835403206475209108069355899736311572217381189932622617232984847699226051167833040167817408411771474848777347175228123408091344882923986674606604287917250523180237563969534789327209265373792788769136259640003159083884453733114383076020068959187867862867378407233800872935204896065241458486890530651138764749701988115911090543707792309730164590870063829680839870877532752837903777908942916466362722660477398697050058434316522075870729270099209916881833103161733830756259292644340904294255874364934049095177624790856556949146011725008745469697751893097490206576363807692108806432408153273515755319294852082235083002327509631400538375777790384888145214508096548930202391109304474324526834310623737540084231060692973263482585586462843305194612482461773956299841029134847344597470971253779301784415218734215139138611815878964053974920043926321786318974840391252216723770648690630067893545344304281928454708094523017072272637590676208533051306506649630216242923910410819267212957186660189330690136811001154277324979540567752313111806387740509913642629752272545164544937926958980074722390374761780083131458208559826511756117716794386283452721152284482922743442999008869219639059223109140549672819180067643608118193180880819683607396250452564296015951800596202949716530307905918003385115340834826703027253506853738882829485620809270630816807014426148193901609221678905762168874913434769535215257121316193944216154201255402001145650055675150163905468817110294705325577095782663508052826871424172636896141272043047635656446274019668569158195199598012049661652999540315491953269967874103139806587717846343003532415702043783753635027912029110208966751731052013145121432286557209672121470851673633982898063899742587387895762611663812623081246786892203049113024114456547337941972397434280332613190470192049284452308900806338435025698012959611984404986908401561632809731740468180499187205237295571307072811431392117467745220740349589742003073077232426663665244219291552149182961741195163092864631180909463817876301173293823396924202988466771001156843215070209165021611288554837198501925043483741961086900106349088243087542609455444911074509574612145043697738016642466054420838108421566643387773735450954228303103405485028780491965037625497355220798635898402840002879057383652006904686857901091547181338706550838262909108215039567993291291983940054852422277466499868864783828488461451507525628691196736030117332465325208168271230200568773594798178425287500430858681094649992848241620226315673263000416022565065822302596034840600674410159412832760456703083178368471104690435548575167061745391183294756807317071919206595996363677791300915285856401006543721513341457459805154347672334732411974048095065826640861505880137645100108659450149700089875882641254294970469178669824067604255276030214824449996347594145025483184681807580724552100548995361242313377854996611874400038833014590372966735090854434959932618876962565897113294226359265235207698649973067883575773196225786004092451865365959188264498888440413373633130122902670146222286942143023250675656791594066537385665470328071310244096559410357747093232908016797294132312906969784195587285172399195007068386709761958755477035228192702686436250470070529257760294719126736751056858421606497458639408802569217010179030463668730414732505784969102324881531068005380008528235472620121396810227226876585577331120181686201627403652856921777409283440861207015675203681280698238242860207442751509879052018590024505657578605422708219395753504438990419471067151141103996006850930008118281307028287689533829285311337935606371843643623011656604968988522167788496649930321120401976281918462711399231049887019997101040076330622911657163345010418544976397675621944708605296897145186823242395857774767852076821470847628975458605714682004776674559439649408153829930544731261014005908490919051884208972509846410790973088838676634211290051093955445948502871790752564837046291328826255246353835419703855929184699971901276206852927556832474230016635157785668825120354415438086797696792866135415266023555589428342971342543784878819061399305254866284934629986805771512710155769259862108394351843475812130461101767213893569086490103991394964144292300821158648906925266088224348516222384438147828748174322311224397507484054414519421395482201656994218311715575359295137610800030676878215153553096838494790120068932591035584868858750041697010435850109219877851250178669022900660668404744020151541770923636774610580978201925065977057746629216343935314595788388181094233102184244056251723365101794637205741005240477263613712230911025778790033340351181863887922434400411365584859624306071439920281593063257273057629819487920763601562145210209007525859659487645455276985847143276064536926032115057779236773345446925164835072158964000335776943379995241749487853592778832849401616043004269939586347365108760850515897114715532642749854617709977055561561050939377671917794873069873008754335538656214657750367513051847701906831910720798059708809747887250519640969978712623800752493667639336100551372871334446730995186621439295892168280351485754103651026740915480592865691561801348118063054514540620581972497019905643890327603570244328726435915725913441740366731976822971005458926113179057310357086418900947570443361266225749469064941524009300412403102100648010355253797582442802020143216743407365881582399186106457617835517849580834545759793023053593564227467480718441220435976565776247153424259454192506367974037091130044061235492716368928305444519011247842081412905370557252210019156814939336144728832824362765101653691058922480854642764169394545665124378414200172414393037330884418864455634380657260127927728381739232745025767954895566824455988734049584086786188454195094619619466117980479329068360871541797070603113563163562267901262627271969039328783617595884826781064498973050797791220395577149703288886080122976399133718262870618311533916702087945399257362882258253191618494792889644052167703091725760791338909351061417314753940231283061558966366412748964596846211167870985663021375988337006885403850983390290932397968980399993411823601052838088678063130168859992317497811880955184440170958875333401641957297494449019619819441530031029510158861261075097627934639541465197455468185258998643209102397550773456646041590937497734179440765795773275943875092451198143173062125960041813206382909940512200522433271174424335564233501346332450940142850617951229582598936483666112773445075653314153642907146753036083135657286443382202996407048970069036952249419022243550427802608014576588604845543727472304147849414671860100605919181074801587327288675428761870771222916935985547574317647880434272068226957273153475983398644013923884505781139188076950933087487309465100464583700708621370275130467745248230627488052899259169160635680084337650657500789063443309936916762976243289712049781896561320674931390170242501030827246107050742913169077919319234991576199662690946833613779498461444080237127545464710436426022208550844417910263146759622410258330183326696934039070809015835276074820251669755953209895615592311461768850515672962803836237030619648881617595493885601683601219125464658843700478359157660712115003515354795588128245588062965261113051069505020324495602628910246939858339260287420624149297396380376626630924495328658236629497284240330606381270454109877930208528403155952024017753544349298997381604229928183894151786392991170175964444048996238447596609067336735772074847641832921142447783916922014458751595510830694151663868418686005259766904715744474117336187673957628949060307952526668056234987845868493115656169201604373832781541915566356595638077042413211109177784808003959440384785313521113360014951641214128226006829058804239320080424586871108065796092934555736185434690642401618838525106306518708256959593373619194063385596753411561052981015818175758147799437003400914202536516980734423436984699599436985284195104276380441587788638731600711445869235061688159040491740203637728405280129286977068176069148188483796967413187741409582616271284530656724973961621110656575029810001755094688726143912257036098482045869078405454493503406563517740553107260028901530073031742809968432139460221914675596652422187113567764985123254957204735682689314212004930690081234814415150758435999655186780165207613234986318334066625897547141562986825011433697015805715511457271801972406514649386169332158551580894168670814104189562206089583437409346612814181952983769010275130518902860051050046492653209974202264299954797154741574632860257185590566807080042389539169305637979025616021554271867167730791529264863916219639487206953259581134497751911095080113988721110102977058709869953376520961787426014123828494550543584911341258928803932898083444378929701452239638154307845521996670396943625314514299216229790495393947062129624074605614757604813083300950765678113598946449714132690079409691512482168889056728529994864452080409623876888098092612359216721861474833647113787351110786294542597287649735779097831847382033413338204743207338318123402189576479525137871433181819872727605888109034447398295571317036654128127813266327199958558195395293973553329424609296527544209219925195973392129741501523850079444006508662504141606664634297121941644204969667320911220018577482328665881542914838893832491454289831842534117309269068012594431717117508892219640166978397663617328062818038216673044227060071783827578463380241084093463553949572012984692476771637876379140336267926383266351974858149540358840574892037183293279056881916725865965203456343832860520311528223717253811658939756272753695658400859640859125830127216557455261656658734429544511374970763169747418150587435415783940976073206234645941565904484725931793916418861142359978608002270000884382304339135533736031443909836693866454420008571812192693940189165663417806964309553355403896691904368566585152914855785712822439108365702130160139072984378393654831738040231473470162781685027977252694124679521822674667038016842678288933920022849585663120819413429267497546630170444733314732743160270762317197489706546842035357064524290409771492489091231418748618301984874220754875696807573206267023708994984954124832029208513833648717373463568394931232227058186038779874946239436267362141639468089745219561378856142441048314612488923049691149072610794491110237976277451081264582121367411959298119863888586701176661710007225538265195639769460920614396817592755315744149389253381915461819428382137003041580355545350537246048999282152191173470825280663904026698064288888373675434132891835101771456312672013452726591190947977678924313340074455057930053016150609886683496847111265830636720898277201979688958021552217152716752152127450397438816785432330413734273860578081674261623716033068620229006087303994218163640767638875532338549215266074404312811141676934381644756459583526472937789862980123690851260187807326656216881984958981481811009860659642768207735175534142188636448723030326353915435833159898024076359341626897664378130146844208159131089288441128357615972820256026818485562237712733573151695011807885299116069934682858855040360166563885101946206741523747805111995985757925039557289026297970268872799925676013607493610578043294469907467289140332988472195972408799445604739959513779552270471707129608805541714166446487268175083561448203112097571638499264066783469794280799832916227006017916766643270042868100206196145614021541039087115375213966724991721164789057116224176070932969791299722848100103810335149710817119236822916481581125316698878425998657877522417281544591853363251362622846450195406675387056943792278286752140429332417158692689388696014482006065474330777377242440391097995980453819717090657966461984853144642661908838296549281211081773643177548711426884344928503777641388173176220242738991020511494287991485987175823991879037037441315306128666041938532443890115930829937234257932076957016593137210564651772758779899017840733015588539206807294341734630906680906449044776160314035906042732880417060041300686045722805350551900948220385671095639852050212431506222789392572955324561794868213668402010651857862278667311507444734444143127461680541109916763856418775547380008864893301057981963351292052594522933279394422331762268383709905926452689486750676065447998008810343418681252852725140818833486770499722924944253316101870994028784044771870286577973648644680663171324698329594406982033085656900645836967328380611283261821842877410708184409094605527626540903216590918828647560438750567229460906079994875179405815510817965978180951934929447767775252123173423774281224794093277254627408058871596533831572340566765057032326833447189064371520826848770861659778824651163728129478867512053937245437706336555078802805721582391830103295167491798958001196862407502316603344534972314617149617777763050909479063995401647157847122008063918827023772460211128479566038222988620690418659703094479121981373012099084311148047907905891942469065410405603178187698174968097991613274067422399111311623409681962447875936832623634106623310122097450295407722018919448358210229410624945674234413025324718489074502483283440181402611800221669093351385894007580310268798152424386819460129362997791667943824424544853944672965917770404339925051089125773044309013545900370463989357128831808899916116131767481698691378929018594861403243264524242804388292730100181710792473657452899171320286990167211160306366610618951526106562673233195020297933926593692072960872395436134296280939093408086061886723811334565937215885480151967341692512594432407589685595579218313269773358038285280882706811207323793447410910764993848041887379861906211762585217613475073351725438637756400678144215746392011108045496804192835783679367087751034464035820103757797772584010979423027126530299443503005860827208716754882371220868361925627973750843723155362143944272039759735114228089222788456460060864433462396357827929500675897777432603534628407061765733671519658547822191434816298672748173014857795535327530927210808705927281886565640511399313393221176041562079563656078877070408045595887341100415631146200669481765492180674179986959286721382231395477468784221506792968757994821743326123195306838690274950067589675972328048830023032758848330604274326956945698639331168905842491889052544496707343018132514013341184158711103263141007900569361865449422340963819617039758437000925211931806231806241669572021958357188096055500831674511542823379408780857981178794130323272790215511541927563106488271793519914252742079530196696999042511421003917222684761618051698433456299532708551864410923223288123296306616998726576592512880750314207924419561797905408195070135207150046515134551983900838741541763194085223532630532145827306458233695116484711263513322168393254667535665431872264729081709999861086696402084184678397163561458818200707923208023542638747766946747821032656924018647064640021160984661495970112657583709895488946859715236634266089886703878529338988467302886644002377843969499647700801416804239741314532461441865345905987482906736605026444618839250426617918126179575740812995016848280441715558038301851853448507570969585408978305686130497722319119767235930662756734290426653920465461754815367329858892543838482863685500263499842074587960880425684731255360012539808993183443227476506726228423382492152236373455013847231775056949094720330963191602400545624692068356332675694013231203532447222147217408328783201597216850810159707701260655904257776603832590612014492354895547704135189233712806473789621906629692793156231802717960858108540723753413116707747242064032137622435846833198510188856183983117524295095465398819180908151821733882693203535536915882753835550728597694126324817813814229822924867357386854098478006471320835370870505580660602389249388381179283797609368560834212968023040400659763151890746489039369272862259710575230763450443683074196557398548764241064758356769711503404611399296640519298117056069104588424200133006405265573564728161752770781255246435860455735330221707275526217571246306978824919214880594171514443106353070233245139534801418858855291419596513817897039445649147111011616795500827501913990184329556377898337533903974833900477866962093692321874804602699720727219130989749490782776575481467682463404593112322141103178221843173522047779929497343299308083723689954062966831832586717038800355344708896614727458168060726415056580029374971774093723500852194733915042033381777858872769702418081943093039748837600070700679710309422019897526990536581065610870023418801544818454657274430146988546821309932085369135406196694971216082992035191288088774856804582255876440926004392765181032786605528580995294019258443722209724467414357336233693313445043793765442648899260307239464308347393066188468284243153339038016832348630266828920367626341094335356410596993246886520738241142018338954514005720398100823494060889260652000716130015937311663192717715441128532691875803032730759440982048606294730571530812991965017983969210881310579060405386593281417635161214903668386661516894401984638767295973983274457706469983145388878470195603031304759558233379676148910189540527665270190168986868098340222108248022542129409919470286483040282987446618231560982951460374934827111000786201512803153447558733484581873133794620177377974732645995340309263438400046892544874230151634856232689333097408570822011512817976988204004508679134777462851379117495661222143485015674646576507092237979414795560785024544386366385154388826637326807839359619383455795560167845967452931852611244522211990697109819863162521751896780123736048846049273846915717312216566082285885447927011072115136491542041222862614582224041998407477173655111372274243563881603278298611506251936824879109996344176643480484097729781834987025219887224939024916795297578902048744977103948796639828720450266168820070779614893914702298427798590969442444190589329250561214508273152464809774059916968060745422486402320166131610756424724654096819099994469248367548595990754632202232480738350595800764480460868158490863752746085931898381415086920948951346735743927280478175553739890697262057702337643328037249772025426510462759217846615068421261271682227115653584114874224795651674461282158117597302201531977209335659756211944161867986610335549132139960818084521628118898367892673824344893972572853150681719428697394595248728267107480474842540781391955738770053648239243064441305463932806337663679287533891439287914214985291502775914762684908306177335973592243645580117186213001469603697768756787957256265697291591188515220979825981908241294213846666877773294602121263207029251843928813511035925632945641481309278609653413393616276193310500095523736866253182688324887681095795853728340579207400719092415128135031457735671694231562886711535999722852073369493836600943658736070155747143571746874646079133899643700485061124378303382883706660707266590139063480628256869310881235729048528652558021391764401720524007558276695058205081922922299722634902135437222020402112750320681365678601721658741150054624221498993908164648746841453773195534879994153676620425209723775942672622483872137231880566492834656739951398714332431660241971112170635969844170056648783318632221917509769492014434720550211005638913043116531669135628673177180846724586192679473271827463554146921229676805750550744244827295129964053244472745884628984150436029891606250949883750276889534263054896126109266921075801048213242577368121567651778469710520376199096779709791891186980128436919868277012592897452200642514811585883735917581621381273866345847625076280641384307550593607642779032016725062967948219203763438310266897475494054466712482409676132407107737322749688677970583001557048382348563240975272208168386838728439820257602970488022990797814559463741205290644564541979899625775148327417746899483444931423840815523564286659135280463440671039520826921304436734531339685899178255381892220985813323913361262323543258795012618214538349448795920038857245728986227878850061076589183444922549019358494070402487260014005116656321376025967071455383891004089915467624948827961935363401907029651412017489178531377240182958632784805179690858020546834708271650983337364941165965608720350971104799425189935915326703067667616104683352705194736152349816551698202700724801789450754989899439237359594648262451084199616903775876451915010907140758846137576931631419238700622258096435265811684649401501332939967331925145378698114748361188122088794350564401393634083588144789555637619178040250460694744071602497886771643832850643488277511231285669907676414385989388091615473558575733284961790213304972513696527649928796319812784255208883843131051858508222709804850068612408013016567436774786283799687097180869604067344077092393065164389657371031439119415622567269228823494833677863748723728646905419933895927402362586523203157779347984948448915755182602913357287635204722453443201012041260031458557343908731031695703306087854845222104257645850032445712982993464344817419688672504529664473120480729143088681093897455256405741478689613523911252628295040733329333232362959555475484897651622247206209831394065448522805065875214097339105137317896569862615419146589690081915760140310790348461534648002454005311560033694601016407906415259787138881986555510548820404385408691564693438986784380653673452471082049144323123898250093777036972623080870741629426776041630310593924948401737421016549023975517459733832113625318565444914933673601031848096863729805462969963909058660421498153540145945374069693464725868533593811277793051548543880364271910349630679817221118046523385911034018634487034729080086422916808965828821033240651443741192244332493809689570114480765117852602916480992704030623217230046572419714829834273413192469923779483572959591525413688213628145028609092047285233222800008558810138704573414784578839684035935530402480003387883166538693984156191798663074656259586122457167462356712021374152035882213714695837087508019566313588605886503408715172150685893067254702024726215187270640315983871586562931063774443237875305728025854685838290020762710426752767013551925044025791730005334142283751000941068665875118221610151490699871983034998458487568573282414641773782233189442771138281481804247171706819645270211476977076829861391469169778225042344765281185450424746938003019644198271620001210920769359064606134940053807217742483498118339929492744786737423250989321269269272458363799856689070708935068088118686271797289530926339685384307347302635274703688293455257148031971307089778203504156221244339976884598385473115459832853719032945814879625815100980298688932043744922891455933221866334998206017014281610688424912054123149469594162735751138024724621195911734736603542646610734427478671220999657749367081924608355695696959601823831031267810084563535041472803453853690697771389718114879522727964272631790652733865267548664539476893527165185142638165256289908456530040342227922700247855795556665307997819538391341662046512656325665476503625250555729324346821794377988785977645935566798929072649885627858371238022345434824077463462500287247823191194584905309225702177881816785026736901714254808983981023557307645148247921041368474620378258805806667178042346519432272854792042263174420651576223364218333574770659440033812142747464932472266823669741347998241676481269261348119139329781069357536816237000434457889114281245960096611572604562661058678493911489836901854775153090733348565392771973496360117990064260430189591384105877130319544781805275573918749226720064076815561013502441813915005476659430513111422157161548377424313921060247062037310914061992154198018037787799705194057358766609575344423025630296320585015069535104006016416369319221428863274310866918464260448791489903036055102513039189824217883516846528927934630710327956150239000425082850243997910233212664510014989428529440933232041625438331263891092216289047039917823075865623024230228202051183937953479635786917582673857495892043388652848140199780632787954678287975207112327570719744572996598107484806232363114551000369137182521708447158266404083593337607406834483631349058360833394162892665785223248132632487183695694110553123618618683154690035694991876612587659888212796536525886514249630343425236867915818485287303770678420907823534370542510911573981958082936026669319357243716324594017009680291352107970400023518310253604277154399816691036784550582654996385640037195513610553117844320912171397448003332466233369557542430693912497455719913427177966882893882038315128761283202649906492556806975513525744201235754065806077593957655277761621338048768279677330381167161745718788350334048927786312257827374541751360021861424760858293740014166169343328704244017436188200982794228947887217183849484857221724052805280033179856490215054722672797683929855324112311353148051358641947405385457893617916009818155510675755746035531934067685364436270485094814840849642317859972653772192513939358925563442017490548142714093635043733140601433109107112850359494625439544945933437210523514718174270634963099579515168652116199190665760488516012581097235178935175368554056563914729867555759350883500545924325736947656612457690638473665147046971991924157881675516328804087371284325905117182635947955038683395053125706819724179250413879669243185692957067058988078453112569646885958477039056454749706315870777781883665454932246494940480209225725607432420285407693464287677436689415068010827657853154328645417068482766105364944168642934987001015520360347313981366442938148826097885870458301970006655938442419484597133851371974836302045321548436810331579724913895362603551895094479379050974563751201445707335380872349166276223208337060306950823756103888878475456389699098384147758240835675783947801955100763293212153140685324684030809581381776552566937285111610553195499139434436719389586384490928197383580490654126371978841866775277512313328092292691100501899864536580414659084446898535884814985109722996555757430083645522359946267348125657361499134919098051873245361411488815274007893870472222782933699192692207515183726574908445133996503574333699659914086602802834229698505361912996162921189300909185116777971000124616284233406030226733222701826554618434502491655972446971808425604355968944919602322170994813402672628927203956868621954086585850962501370635256568274305356007356914183921169796292561244774859823707595231981363547365607886156359670290924037903391938016722295401855813739047698517298607589594888601873557087418708966993728505066030015718171156810238342367285466782081983229518191705241735764682116641930576568187764369277467083249899580477611163983063256192492824740275802588563271321547959339107397132166443832798147886167449941415174632884572419790734821125276156184033534395803335098897786833228049654013492826140069659841919998425922011913659184971103100574378825188205281855728479148802810424149984431282621453342116735388909986037354759708966833722284208316496518722986772185877119991551862240487939858288392392288560668569402989881398226352537993421319831463222903038360661757405254357138613994574163038079668430328081916941179550955483384533911171359325368246979081637108257923119775421184757099209616956362287522690296789050195913754766539430424261913441565797351646991386906849137832052802862869913814230950918003410347059171223593361754886071964384835132326564111598057706441429945469531176574371060728642656767278905463653316994128422126136541345144188369020287260257304979620203433959108045900353295545432947485137264872553913273451480246158295568417378682842832406010615182017079711994253539340402217591167989046521048643568029329174058008858983723779445707850267879292984425943856849146494155765039557935796858331397629040539115845995586835272931278670346772034258776687175041431712548617025381423858548211023303022598179989910261426412176958251845263197074125104904103044823434438009986829018096835952848656056187492820569008214484655244195659552602739374137377016812495636958802789966019673397866891820264051182633774227531797187482247710865281271572875414057657803928903419059298230126660633602800350191627658595089872253505495653136295595480692385249445424561327846881456167778321621355899816929585669924477214661919754667214646800289568497822392985478258463159190826497816105879398364587528824887737813327842169048851921855524784101920110845354639317386904255581684267003908534774665576388825487901485029497891753919393989105534024252436957240568602189051376791784718882102936768908877135314748064271871866652042731587843088493700163238639956285116328179128511363020345924527724443017161544194130612226614509221539748436709071998968893494013612764821423590009126420747766228787671634875146851385874431702006925840893576721929838158832577093569662228557416686090741170913825655941582613611833787540779962623134193888062492312230992671703756831057087390528846236257709699669554280314309411901335686859740036457032908533590857670275004656927964552711375521769133239830547754628371591751271233820145972256092192815183480294693484598489364643968448904081995825167239229240515623301336061786939121708103955974899918116124182891788512665252219000206395771187992934491677979499464788639902275474982266539093231698282238671259776019703772500655655904532414407404425060102119550948092236215108311808321019601674894244678290356896649662848166201397360919544919388018913436370141938624442267074137089232986619366682741162023790723201944972078735317084011746976528497348252998381724612248944102410153896556218261663106236975764304381410654599136868828799887551492421577769225909386134908510387034246839912045764813506063739076135157268782904391272518604645615131037654479568385167658343949909767758073605952356176378916849710976407760058252793959923424678166535632961849704370360361032214406300049548594789941324216046821800572322466839699021674358734018768079255952413455240201626549993850848787045811526024230915982126143697253903283010220684346651794161880931352229645241326136232846421548699778211201098947895288144606418724404954203130932597791887139047928864386058981447410815894248977099800790833556216462304556155560948096595146896854289567513403915640453957187324268120921615351858540396802804123208422238822823707803595895824377001312326411873448871552681992529035251599202226168381612435456530444866819036886984390604487928276318585402460979889361952488323514659962848247387555956674211699985413514688520280399437724710794253927424697811579646288660875657295656036149724562685130576967253624894440332696939577514212281155903797266718955694011164969421344945494221075742154548810245713676918070682996921695561860448793218746399331651277540405838111587922434332928605252920234439595290760613208348800114804033273888797722663598503328319275710382209399997507909455559778115018368445034054438446860072078243756731644619349012774382346280467124816110627920995860082634420595946224650753199361288396290308435895915053808325053523564559335596514846455951199425279180586158388296030952537949569545193910016839221841514213501899086468277955887586355162347587730987435138794508927824635545143521816852233952585777407436277765284432717620195530015262498961013225066990129523942673302776088283892779091766995890087971398261451922776316577725401002858524782979113602949396852280670806612030438048984318710391858914155990161147921653927321546692861311258514374319480079549228810388050109447605148803142467408687386093024817571005965792974183105667792944751859779385927735025532772052494417201778993763594341077608635616503080772766174387844717890322808081094534819374748981492220504040251510619288163884031401947358285716420443789200370044200685572227725692543122753024260168543178082533582192221590980667886287797388332571220287774776313711503735661903564135522404208310071227030472064683517865061664020323679742236758896224777570209395251012627956575532005610861604965996163668431010364659713021203271037600549855164961939787679520656725661432511125216766923588150802830201758137628389199646319182827687813030727710628719342812672288128703738142414168804645536628715568345282087537824080601940668030429899363680062786943206300725235020093172660187364115738280943116329185772713230455392866486140511213713628644723591527219406083093527375841441976309781480281952595599673723882505822317304739552351074452249564465823035262034994180387657050734756855675174695681895223137173084468835039171232169212892166259277669850663497404845550213961373279097012120630510322020262114581936004979981865961583163175360741547494055572299620431342486077852084896846328392096194522520773705757404116686889525163746204764346333521163295532919229284909239629355565130348079946628798890476346725645849671479183109783094054313095161188520540707662309578345192524279220598575478395780206556986758085836368251943972202423453384428201236909234077176221862653854895404176139500796112212231537575738541807426254051938146396830400218889167114756230219157128906730510631174459077531325685514553615519748449519312026673742576333748678775639542265581009707975581585869711597995749676466733784465367630114765771869146140379155070776164014603128890572227810406577539616906483269020438923176802679222389317923721191615538096244611056574388035914647922609235328106176397954013326566909796771813678735162404634868006248651039823504096636750933511142507209325374885986339024361607010941044308994770163281376918701500079966349713739524261859856537923611008740349011160366612758785994097095348202928500625305067008012897894744913996364044943181444903863358407812164897065774373026649649693005504335997351848979210500217879622421552563158517556228190543359426519620953489311427637270354422937074669448462591435582430896536722189666247237673940526229130741085423309563488213819344569584745555516370507935722479496587099250725464403953121316667419936763176328637494738156606699459106639273771535584402942929892575129537675002658853036430688853114457320315580643824949626884538161198617497423295259210376993650095608837613172442077742689587419004089760423706691023155390018408636780920651263582350093950409931400528291222365346158099387124580456259363094166747624581942890764993641330276277427075099700017095421759818210285251759376829156228034999804294283572935079793717181026152001423304639947371153051957429524293368164220677890292033528266253869715802045450221343875441069498563404714686736299860883450147204354803524783468887766169830235898575577814786395061532763680079480524939847100157253546315972049918355139633746420320585371705866166075460211956820649890244343279712200636025610638311308839924516702040516991369020006844533386657939227264131803921020290352361847311743156370594443763541776165320901656189591723776827750811567708367047648139720858194788075315903702149719532845818803558531433643243144887633159571780423957869044905876456654713443946570703387601789680983537247466503813402104191402987216449615698681065640740807961283120762603499325428868101576251645769663995254792682457973090646805677721052762207162459402220501436613384920465167188160712382157437149012282260884376816924258787713784004125987928997936712376952750426923488021574077256211158092192106619091139261375686469814259127465284231337020442564199338469945465711276805352538336465637816260832639552954927200528801664879429262536915366796178480304760487769314586472557634416593714771925205520443405602075893051147527899400706228002484710366720303456418479758830756577196390582936519582271367565497875107956690763876012740926293325325336576739211571433908682286453608354326671765979133920256520036696651398162454037402736552868268976743680254304064124182206309281722589589054429191301281540234128954695807045707880328012552157662402714536727950347318779358610692145898364926348348341744843637864424003256653180340859943750481690277854039023916333314652875583571890302733065594959412281240881377834162998600985853379318999496271102034836327492708446489490699205754065438950430947472950615436360296071214164931389464039958269893326964544568708936665205567488783504908431898405902974285459284437852927630017522103978958501064228645564702798252542477947522156488044852212155181901766002345537110863637176711661436763057524308739041771169641240564924787986720495422853121938012393723663763529154555754159664332957520611020224703714164533766539145773418633996396149762984043901000719553456910368376149811689426743172472403583921970615742281756827176405107206213800467059506488657390188906516127710219490327715640167006860346285337171685095563684723981968386556598571987052116656302637125648625179600764378327704861624981914113509707678597343020987060842498101622057173056370302392515721018135600704062110594251479060800682199347862994151626813080308305844015261970956491499836090823685228707047082135711181578257203139714639666222165997130604574646222123572595052228928729903430790812342924561198668727479857089859291711304018585884275283680831619960995490110717416562500152580994229266863960463249066041941773945375312918934372399104182595191835920220993262503942980242937770922267051022153426534082948126616497727627415421927358487196128077172834859170740595776252997336617702658344858732269264564648507526205473979366017285990643124165363573220976009210444859635711829405327555326860251035598543481942394325029022174195220240197418271551341484214553537886336550265403739176762228846093144933863494592025434057490494526197662570328575528675689054144200089159964356386700070323806609565580925370948640548861586850052333369410010504272456220761255522278232487517465256453026207890296833511001362637655616490286124172806698659731004106032500475197335697927318443966234594545523012913829996138684926173939417835679296715429719419838273761078023318974667713585728084485451034825638874261500430502421819649848783308256311232703392155904550481488275162610941210365652813199737706929508740720729824394771772583823549759790568036662234505923803327877315951624284273769471785433284599746726547628115193045195632333352563872421992116019401975159494445543128882325500368571495085104392624862456211365630565623612367281735615552093486475593577801252348956562796908665480788937248806015984300750201092163995508628441387722177429781913173180876802224388760084296221498156126721727524527048060561969010013778025747945384789245867293829204268620760642805757368268361197299148036746321754261668162808951400331343122473129479446205628134915370069073634377197359087007939806076700813259445120873136060686541730714377696879818526469476681552748350581095935498605264998895574407739747691316672899182921467551567580358409554174446121613642836916893665512970378149119335282079420553710640096383005723326964216285262487115917250141018383878200707293008460315800389380969006268218690359016996479541272283414820966260846529186920803895920383707745556641311366491985505194602756115829700049296380344977504502133312477923398907617561482854859515910295513772084534566546105466100386108243356021798102839991544165944754956915522666275681063735894338285841641289996269768022247059423260125832327664525699030483283940160268536545075977074428140201082470876005983350923277398550366190670577112963416503192945212132431835758269133523601444777699250710102695985173714604183540887594803778852553923214063150066591484644829992618240022592013470368945609777838080773075424941383841264663976161741532327900496146126505593635588146070795984366105965501842534564894349427640728752810522232211945873014546349246149626105258432017661616019318771139610173013763061838017121398446814958138957794061141148624904095644824558572642832358479804653686514719872350100555905384743020177362204099712654686565039165175703595325538847650570448269933195185050379233595125518357919681692741402241503562388450707764573456721893846919904879248615607174851171536097650938399774373954398897524816795812278101234635304275477726671721216869272754635293605166417060455500010344682874317932684321644124886684209053248160714967723320356315683143879332795112574522248106054721441473442174092291528274903540711071466170075062388791581836904354873454169713365271209867667012116807608500534164871839774350532186468675265634024939711003011891595033827131292283036886255673803138082729607080099931198971029184301598247148582047116946216494457145658653382219092732916270330977806760524241477327966425332632942251970245252389758330317663043778540547584722787730991775957712654020816657638226616296991112122612624020339797477803044503828254955478853843770689375473536683117877118893052282709290807931594371056496073213532606206898571165204674980038080928962768476755215753165741979433470201803518282889428322703717979041326680610013398602222521679036727955818966584035530539455681891023769465325425084743869089116110365109011764369663392325617584393462782527899125764496969445882601926238096996801090881843029844354396371294690629654743738735342488036328665771517099736004889521478251990148332629432077764965962203230951133989338325469289467975932525989557843636197082239805084529594500305568548141107002226298216299746657763806644534995260577218071682074839548822450071091153618270504012661880587142565287074167250621514801017736359722770968809757401062031731381523070816167861014786991401304297796838125358708305527109637325340444769099236798360633240030487940500941212963114925174713618512860620948132799451516617218265268922039374699722432788427950768541506013671170098604684797396686739772803449249276831482540721562599296538007318659419685468655259577144328046179636245470023253964533434225109759491565701829110178565629519077296246627718380199038924935989410363740862515033181620477757062326970457904827703915796083962098969973263732358592132621985810632631481733055938625281036767366946736852497412380940155751139193451773346332147493269169991325687262685186268816278206599796887457297339440953661410920629166886863474623674420602316913923764807725741969555338557280714976161293973517916661788485608280264140574486103190774323786551769267533710844499607215790289186674459953006489944945906097674514684602172671383761029918904176152047254417998111897287925011287486288310571587676877222986764751239302828428602831304559495455075229463931135326233010261599756465226165772835575688773773907363855044285537952991512320713520645898841570125444737010196348599120861764390332526121082025192154912953277612590280100421146499445202303342331943040495535418287720659947343152590708703340854203316350652348903034635732976613585940585377049533922366584604181936596553686595763681452825373870155097026498506654575609350066825369801656000015641578900006193447112563132998391979590105786054153766875100199323128587502270047900088185565661130781005993977446118238428168632426003511340247387613051099189283278419151190268334988684450421903978528560022180575339574014545797752500253900015069370737320461190532025255963137578085667248194000047981693133835161105227379767272721605743480308252958406482144602063277667083247444037476067214890539423358734881325263820893851139849293139478643728401460211660320587686761514743732353877637722797640040750469834081876682991211943666403483100871520517242440144255585953023436704103800978751664173130165795155518366805267146963408015589056649077393275631578115563170382906258444690622154085762184624642046574941192822787342853628061092725637054107248392239193423964155370433993876897800331533346672594119959997051027654292965167525369223846792056557537209660484623112342256312065678642513813789719123876233777127409689771426056727058100577831227147429975276160115499266971694410343893091577200935655166207912785419864548281998688943551502969819633083908565776238465244943927003955404758595395339536973088970745676258177184905068928625449936310034558592549604983918098462144929752260303756860641690476820962059329210737198326823286324971862122191001670788261885483346671054677100249556896696865849352653371555330811915060610541784215945671228606171786773956531205200349831044883384117918726599529590674829360065011839104894520490739389732241420856124325383169058180397345358548746691752036252206843925408253504426987393127316376925320786280382813257403350277658310112059309273295119546643135863332397791887530571415347522385129543246397218692028249992433239518740180240703193093759860833139032072238653916323788873389007064011678092087901639843464033433564808740188150548752181700819349975295636474161925963760825844179666618393815549093520191803263886626779261065728653176986024533807514409292989854507738824156428740179189972649366176080489209878933362587916470503133914986822088466270049070884449010932721386590357322349395322201471540392737092552515933254910594920395147819247630033926501794708855195573842760113992945888439254781944848318828159148159042306371795011184081748544309589731788141012515596060968200843197725649163557337399053617238921882345951463737945460426581952600060746470088848943003927457966617430173516754740771789680002928842146984423999276851143334789965754844094079414000574289838691164413706496586421443030756784599707245236539121845863625245271845387648280502545201135237077628427125276270508412530808601548826421156019374823320586921960293805006338348076584804924537954017939666889110090257997563065436748260223539508876103078621523109211025351017811622394057912417072144358993452339347082128893001605246672476618712612377774724051462929421897333661160453841935223504018962925239914745384197852346270078279285693722860064628183797006079625359045516782169932206760429713924589145875180751398595979345219986340133777370681793715422303387363569878497397408511046373897113746060913046641831222112566134515132204459606422548441583432543296179594379479528278966826466526860181414487404188245473634482637693996740849093032111322721778263814870903370070203362785223335755915682506598127210584097343803546177933870520558229803169167237650351261688678040114368147797289530463266986840846923410150970151251689695643225954671066876564533924385376850535192622508882992064862553021886545363021627342838273543227116944436010826016443200351984001665410071720705495338653130286990620881010571781740207586697680018180146727959221711507503699206061072999507418253754135436356037465077582313511286986139231554060419845284716360177083011029968604136240442359873055922862665724990907758248962210444851463103854296819759773299959152178058224510003153281132865316621034068014587436351580538021045009456032867038557572903482138306692301738772040386079702367842946624146410762943633485745269552428320029118114716779136388363358138402908560754034583863996525665570334346384883870801762523544517215498266784920025360631847346277563514926725935207664539074041843679061456509180844574553409990796957105693360995025108273028881529244412732376562503143392067710770254117131757196919640670808376226484679649686864922330813864153676367622730666666538568103505833874938792142368412636918124547549979239418780775406746522355372702380120644767235774038725789637328614438457001514546607573683957756934343624553082496074319996163958542020848824506608763657261208600687352627870786530123243662877184320764638935361708476125636736065756234698292689802228448569371983743362124708367786524146443181483087872857438735803116855000978258812068950407243841016600136987421102976553232262277612057688830444631251747804958167692963048604929161988325577792307351926471074002071209785437982264572343446119601461970281916054495195083179337124417421990911238069784721358241961606894788116184072540308705663440758062346915008135882772671963741308439483829689922551133189454164607008390078779134253755762658501372444088071959681955450446952454226521210761328360778374044454224815647349866801100965129426268891747969860156393969282957651167157155603337794321020910171449138685625432287600086744595268788989177695622455169608529808536472118512670138837487990940466837819098067049603649450747574967980729051937609250476765072621219126965179157830096666317326071408801974139038427627160809262686303672538084675687535861458471168293444594832372954486283231874644461468302046783085033247191521423889633804079731559933155505428476291234592085010405948435272656426247673270726889056868869018035271946134102130855414554179509155124427558848780219273853278653388707196382322902653842940567752543297229846323891062374862176831427872115089234877588144711359298777017061708673432212009624372474832433758825774007257256982191388079519803133205982744033416612545350628971440064843868242077311585556744100559197380233064510088206574595357001343370722128060658244175370037466830265283841273738654261990769661510287528475347212203044528335276315488501408610676758652344711524103805007955987616958578200372821020059226390714699436059008213073673217727041477592231409825463197172594740523855702631129596362120414040658452281608262914375863479594892939383388746655785749600318571259712776666412082801944237875666428017222434686894331794899362098825890070591219353632102105068742476218137723899554196979008679654204201690911303702554844389927307717118887601773413821750093795275827703680672050513919619363992380356190116732732705076029573708685225776753826368335786240655131577826465505484837294196538966165801035131730989062068552521364944234872185515401620689770727051507717594943755185454902075035260257174617526000047085221667980721674627707474376719613840811093303203965197547004345744650207326566251246611580301438984082824595977776653702725967340869235914089764299693396305563375991422641035180276570539949384738294735423710605618194495018104055554018109601989282229249920183506964046652532058143103504115792883676135989363410242314809972000190588502433754877763468329547684011231576910526954592476599316213962144646320495383255865735863334135079993726066906578174085359613702682223757297685289409836101531343135752156269957002949835749695218062461829611510183645772422232731825260744999220395354310170008911396882626983273590027700005174995140472661115737205003908058302561584115650364167074829023084671984843754651127370562027229546587701425601982628982476196027820023693861395372873505255359028696928377533595112785728929421567133966979343002529208034225115911949773247334676757808179254521982211432922153996574228774112472052269394459688255618493452706603419894924268552487994575720833556359986043239730351973675491346893423664093817308274345729225658407416454019778400980972514716625373755755968670377640378398608401694938552151721316389348184214172623413343813979030779137296758071917213710969528507079503915256284692075675758023563339635487425730631638131946708821884544537231045807889824936655628715067640376221123178181070259052742855799896404891743962882329492386646459217921149189555002874881175703313144083609666309543910115168678065902337537598023596704580182061332325073700778344580709568647963478140633190368197754480751752870788909724150775229056688790475769067575146089609905255034669951389481560661798755429394042744968887065829856265752594314816924967233004491733507219930410043838121379231854868155341215384804240189400591618824934742598134751306317511890064776968124458432157549974663522397110340303051804270265123122069746867704603581125446625092908270070340373161246081193189006496617541708095833394057331346630080016629112478859203946696090241393358441172250675176543464577275671606599156725943647250359041011301286323488752750366881704203779525125503117919673824536800707155373542275491388444764587343856608806582720371080508106357607948948540660804135573049762218658541674102229240674983608257919239910723628545813348362932398391977483752695606683358255003444241738546646203960712937538283122502937105867244665200147094476857074058565645944288838182856741409550319876136690191813484580289704632752801626980214255156871396537709828687906963942483159810587747217188531305745897069263544772161891660124661923057938615318689667433859546400969847674131755381273890231834011373343576595682536074843844479121041396140284273349725619590637798207523865582233606265209815605694965930687719502165308117889928233092182521600111274146976175285073022322158181197933092911076838914296315316964739568653199384454357255376282395728132938290974953802156364339677107942010175351360918147144268319248434275460145712332563151085252475598115333688777054223064613695803025776408751708276299268518760742968001228909369641384968193228396471422999696895518369189249788966850732040052271873509330359674014205091716193875902831417648250313907492143806026248141554104714052305826495379666981247907625192312312927941406953338177606422063060021342341180256094392661167485776284803477345847303127992410263376046262773078261287363774407538608700378685576035315976750395622147512824977100941184424980707217873279562002080140529349169867009771985659164133712152675480647990996717768037371100752313290437863511628425029832120758291872058832871049954351297387231383470951746813657864435022241962086739537283951743128022781160149905745167219936248665179964900856859615381910839149056003081013331578236597197349413713673532971655353630138632261576722412820180272190463519697462484156623775061998414779350908002422968280390050797690290737318121387461406134128668150480622088672935195992973599685832879990927061782784159896641507850789455557656928279047869317707496522300707160540049700433459692089843521097867596869427558572865870124569237059960876465365598315025055740590846079063499194353152117253550751268047745405489947071774251170843371080075467210878548495086114688524479165007377489061507360235228616246326769621644256811665880880563093278879800830913462924287066078095714347381217087695296156986003474408750972070092998055478373121791187038653455331108798676912241734786760408581843190292921655433973038739141037167910137367945566711001078826936310727538201239683792438147562109435048342679863386442457478889218889579970091656516983462753336447674424413783054481984359573153277084866602202912429436922997972944231801674214408760488340179593378450117600775525242835986573791053108401136761132072877724582971330821078906992472674272019950403308573507289968928575888107746649229707535946066909430898544136406149371780236258487685714014176536163589218219604783999451732530792270160341812723022820450027786060702993311810225194465937777852878653755326364167302519943785513555302540206220112993091962850756124793903517854768749239986364942649861920478705146122738509744818550161291738821149747882499208072956105228966085883241654102466938035133789602220050796813188468374134865287167172643563261408121777179330731194385941551901968889308606232965888065939525049735508406200097711455526223129651610106434473213855037854270836460969708512548264985568805416103454919936559924523930466772328453486883181886899086270913712254713592257507368461204873182626584328250614266759648145130003453971195479099781440111465233867802095544879247909798583269084291969140134560749654123991160657051099938543622527605446585230827639179286347173222194132620226348957695116421485711462112436072067505814692111972494016449707075631797186947206571651604163704197084675020905007460974516688903245957414568928770321585299459717306320966805623163898028645592362081568792798197162725588421353330753064585491795220270057501865024108690797227082248021725627196646408589461556980733903088547156997160148352626071699375877251146908506317788763072313972685917490642203154778628181074012156551082338982531561184254345217969749534457910312734231287213546225989954347140916335749989785158098024186225368257514236297611035538279737052125120144198299046048771750201557631654022942560520188507089506406934952185598953661051759688297922014938304505754810559806097419834367285220137936792143567844906758050648225503601240546706623779265567826080321206995731764353210855535456752069962458628128122640477578624394722025712278115058641389816004539964622077213245176967226000171876396101669380880827033095581285503930765923663749914419025107004802362258192191607310995074084786783451283545878285378463804282448649470146249188113836437558565586246118344839575750478247194161361866055279241774469410737772270376347775945152608854948995545714099857301826190517581568754895210117038381442356854062206098340657764532575215542280206082081263495420701968427450343575921644739345735571375049078168054884898169053840721643219223733185763921874501025471605714368518803344869644998304414599960282344311306628792591700136317304378165545004344492687815063419563676368282907946208949152072841745781968227323841541315294934391247789533233206235521882035464839321694739815257138095348156244757134334401666802594420366379316674982367949629013115155464029972691871835597264539368354829524876203733262155236152425440811833325948201983090974557670800300016310274993869725806375999669612124311073380852554901061789125637251594057546570946739834893224566318949015771994205220225712320635326452603682484293816193753445375759776978282942264216783426414697149948567869815258975329514082635251904879171523093652878121025638862701531222568418113746776067177121453163601057903440653717189721115442120250884766694135706426983207093519815369900976561741535082907579040602076148554276190616865337445241400588733740762070289732741661040113546670648042824890573167872713515818120226318094382174462091560181068141443949054865139226014936236946116966430703822344871733188434044406671307972121187134180877770970416551842152706006534870173394913975470466592028089190609756974893656924225413557743159635440905238773590350637502288855292113142714890199715799917095059838585282300034368856396552992953831160456675390462769298263170210300092899865573143093121809108061580091267824274173040410192867854015340920060986343076493251328566410798363543729678645927882448056885890326317052022526840521909076197356439627446889967055244440610398403556436169119045800841804084182769288911478818555622279807815258471962925321440019202445055871756754881441422034208894629265167021012591637224453117456164261748299767139559424730347371721637449479771914524268108011200430736407059738459921582653940577087227190802784634340441064017304310848834799018224352526970776620077948034076864672103235069442737729310955479100058362150945487104080504811033999187786533490767265324100162385082365259260553331951731579468980552650540353365341878882544480568775195295520131685539631705135916616069925908299696999770901242605941788279702020316545228108537538462989367647771586030564636937039003845926338795548532586892052856253366334444622525202116979904684583744524594425689613049057601197188723711145517755231826316997376353869871806101812022212926088207548146350883180948050704702948154757908778050427738572373552520741819741010510304090200919948973003086977669707114677568121754543153890786982416104970015109610669914908129969748903722195362693112270911176376212014835350364785369637835549130601938852604177779165452090625665474647521729528474353109218612750101382717829337027378002705858243428705924322852589625811574488911324887169950073966586922072239714848927613645161061288262247723712708764493051249842986167689995422286107390905139246302421689011384652808609586979430281929560848190420392633990754960982665089965471152835924674711076304103074076647641815499310725759996419631689616420249064169955256966027900267107427595556769653416649726329678368354330578347213276492045696746111012833788904692242871259372097300679665450708527265365648683168275527216297628394961800832006555563953804602666041924915714805216976678804761255776678496736980636953568064427107031749713740248044215661232021103829710862823406677890130814404318773986589689806853843755487879316650006234653424911032367810897420303417304032129532096357339182271578150557042797160950672128616003865735090624309049697549933307634560708879748929374691966899888132388428065003479697815717088203114257269372051512514192633996087668268394818499483780036887449061474966956091573054488112304565336754249285957054566764134043084554554019191065243894445142978752188234147683504940808856507694118126554357768365416454868318004428557924174443550306981530566140316428429262770145627912636808611159764856371063311616062605191728951237380944958042407740051772208619243658903031016029186173540415377783462506368053683551069273415397837531625137828387139308024237620827820776090960544881803768967557459367463176401644904730770610247273645364237756279412355592673698065255121304275190249154871069137428692588816043717813333274192764241223562021397241745669534992257003542607903251617417196182786744034469281764519213385618166020214594060315850778606247384193860541064281121865671730606956093556625965057283872508046328790881039678460516116827589982219878573633722688269800990359813788350969169124502679772179306294030057867735475382906274635206184751299461458122160107860412700087115564572027806783001298779693808364673446900736112888336249935740870175341650010415824374265787102124547240159566420966140966089427962928207846816990487171550184794334200270161336028382082151921274152016634956535888661228050505950886855176534635234546999719280140616499063562675046259649281663815679665846615845545648015580549074573579215838024071139711698536521246180124694171034812250333998570563571760012672624499132005280108764356623971101649750570944992183550723958262943280006499536481374475458421475895242161017797364524926630745479905122026960200271249828667199647971026668734898526647309184496712107530659747410427085421375415738369001074787921456421024510657248344765615930272549233286333080619360046346539676063945260398469764516470240340232726780919212306721903266270268005117585248112933559907505396552754767680495327987735140404550149158665075047799467359503005341107887569993940848286076988973327549498333460501166749263428384222970813328187355999840048895299235885922884000924695783179837260550575208978864781647136795907316448450354838266303383973440095043577581215969687500204597469022951474635964369285584377281865093194003043158088737173296183299061799625511496726140694127329927835108902567406127811532309569800291447486036646533587320535898777892121632622732842215819136379739178941172582739423852168097740577190399450171929832527631630627303147142223413976334321683944609218255386126220456131297313683015405701746784011620480616354164000917391970848940293856684818841938315135299720899498779315631281349693193033904424769010962240976570962127375602559030596607073988853517303792597689541832616962000958915498963031578513730998409004257631100658219950332826093822665055978043014397086967681062793889944099414908268224212031379211521999977032340177325362698928361849455235785485162584545518548521729877823136084041715901618802068986889703359621810991629789648859576324548672515362786771716386231292234487249012112140746741707330412021146803544879517531507553726455812335606274270589737705015193745153715729427552671901364243558539567460027140161584491058424560571402664056640023890758294327203161791781257456950826967751166210381394341050592767860760170486280561536477098833782278575920061150482408247364094904010363018665358981465956776238378312988147292358459603100733010065604749224651172581242559147287570971090692144361199081411962236255778511995161009731427827508957889190651454776982238345842357922566360585051669583180716647254438038704795660507063796082386370158421593841588755220212223326743730531187534729624992977982097748983090804869415832000380308492584927676486309760509449759284920325474465695930367563997832159404347609171194745459749673917877290161700577050269527324659953876929831995615979056804809172701973985156456616209070746231193751154059744615523875830179412222717984171571153625540011434002677178168526412231122082533338514704096086141544800969555114167660559919789935984701677326602602335855597236984980987870987441699817604566909807239280081254552860648902971623583607789073077809814794769206744556131900231731088999430326392923185929584436778415204105484257598820249164243629307223875066725298018366965134714961255537641007496375927353902455200106102411255910775643377286019906302087194414273076147914890781983658328458883950456326352108134076265352749829145531301166052248613707380151556530071954034271346136049661081207106176291836362905357037801675266292917976669691567822683954303175742039264001948907797829960556504891558882688175388583101101052781595270457553305212149654085275550536530396950045851498531534347318121385893805940580418203193216362290249277788984569700075126654226381651839818370906052869448666497868076362721040451512992449310639301970927826874752902012310656513621357166091825440110217890541525692173415507800946026431828250505517539525482765158712766837374013848396040854416285004891613860776417234840210057444648787784039445718687435964148528867794030305728466910468451353888160686354627375590531452827098453183894578288028152380919698448172833739729166213275378989446347821854721976285180583904234122209660753876777179347566955857508034894745152669241004574395317649283926002553988743368611520059598515097277214423347664115947698378591542396639308080729237838417187288466822381313532208155330476218341884000801915882340877309503604579038191322615739705078989427234408857845322102577466846319373478163628129382538859379446157785092069209504896849601059316665258907776369976042661488966516553571992168832825479548662248807329771499469254229716317039726375676245225413948020557263086117889430819157755397285104165754876893603250701803771580448597712786281840944240881629769463150751139037287337984261302146838219421775023279826635708326550489630286206308901816131447780164762021980165086584443589693009073407905459247399467284758297610850020767526636678815298449836908419280389721245867332862189106968828420687581787538401052822507109266182078191607094976328956584030075597944512122339819697117972998080299642624966856822079231058264082448632476119013125468850392687563954780343983190965946950531528352543533881473523582515452269414441861922055598582439563225369821887248124575886512540633758343306894007130160662425595093769083884535041711008481378669426825513580082112746562915048182229049582655779297765663914956180666380890887039763010880163491005396248640253853238283261915730562385699709209073568239013712053250619774669455816147000617640702599821897248023002244672151107949556689791536012574271097851667805438051469894217163241746068721968467060244678432402719465280558233572426748286290014406658507895139749355462754936913708927688717422371889941175452847757133643650710222511231995702637668723043345211532867779994821660021888333340455711642974164180426784838519082077195476141210972209163696240676134088698097624988620450470857562889954211002754589569799756534665358390929675432198802346641708834472063146733865225709665541945385167561845012044649297197933387063860817364541207886618035330617770237832997243373199279657550743933355612969236198172990141954134346509718224776552561672667951542194767567039259664440291300542028923318934771520293827688182487562340124252704983806824434752962822403206817303929236356732531118628490851482365082627658087477315464309384852193937581940932392684995229800995367745106430299775396711742042986715016559734655900713074251005014007798907684717627649923780078317798015114634641459427235631636526666447642281545236948650654710415507290784706879151642881037128186678603961556264859562791376788467311770795352807707497887915199116186791046874563978857204118376198089576265150993921003571165436864695645536786239449639869269067643277491823640800124700783003611007931371183413373004400305776596783988368508743089708505187772064298844067623296304706133627270777243776029836447855057455974362776878101999684330624604809981019123308791782565709086560772436804889252963293230925165913469395210561828035873139164558575019011539491183556391584288422552989084336352489627888499337520323922274252076001567875190851315836360053953718124337535368074367695559745908697929824234657154451712158031638686196804867869470125855322324518632647200380013289007838482377699323866479134155427177873905894654072196725307945099422026619353444067130669047481343468685506891317380610129915279002648900702205813991255683092090656421182309394418948892578166854976741883477619444872454954509477835920314107837619728188228091257340210170829258924911875121406782198857552343662887418449081765486309228927457372592031424271203694333617673177549825130404558398174580301495733735244877202749132147741030547309932331956338152910271637427675780420327143716261941959066938752909475628743077933447170908336146465615648959993587880826843577873226866770393825866528877621233046079342379400184762706180340049466521183549424723664430095883789737618506523182881745705006321931520374120852294481690857887760167987790124771896649942430316727674146831440278511772947415159326678978330715494609607327759600202320918528631188222303141232850777710658629084079039533139169315245966268807921379914277803985791847121919050024762843289487347301005455144939933955823938677142385449177929647107679505689059502745193336359957973217853658597814678791680492097710240738412207944898049366088751001965668522553403969125861122183052620211759182972033256478332664218712615627204429628113573300848862878523129489335505298184481476626052504675296652705578717425562402541210478510520791580115475544653254427414721318909512601176509918367408933775021423773448058937488876781823354514281985947584642673406298152062142962383987022744677238882898961285564044295330795877124121648243784083330127451921208595334816823720217019132518772239859303965530378931321564475898833940104579898967242920117245121631592116939546116652275653318794265893706892748163931118282302024946019139582678753310989642727549887233014734056281631816803105379903571744397416635310111229932513244830107438570685985568078461150384277363480933983496311457145251282031808173226990414535844201971452739722088229385565643137177126235981372808153391450226081108701572935762949157733923702298380185409082503481363272092142602361531955914683964142997712955389622413550271738496522212194059343092075063034752364551196636713037507397334435674924423196522923259102735435471201012147267585534106671932475915055270664404625208284871004258665813367193499181853905493271959515722036621536371993732999961439448246858155484207612696274466541006731842977704311345790485676381024033909179440045519652594391701807034660860251995244510509904949794128985847012433474752697951333269946364598161511365531320219441378944329829404817409336854496065472536187494897761785729876573147776179081124580331285204948503930733586541071010130280235395627072183010758479168046773888490071152418645701321242006386971192597372051830056675272065887822040350839734081892848252236250034649466641576039443300469978534860251727706938850146368808817613569312480082636805866396902577548999103964688725252366811448378764394112987270890171606530575566581326678569506299484644120248471416221233401082720238984432924968322844311471832160547316504074630560295295666609756297424711832318061413372847907038830908948953962650673110435667404477218088841633089055154512845283335676899622236805406801437968971839568709573249214423389648544059261252346589246361192004892336322807038876271363324236001605340012919573942632994212806539210315338118179166097233333190847451421500146183175613985365344008248576506529501994851992162362488452657617220536285390142368192887538270716464239569282610558013057128711356426509798677744064711911029418551965924151810706077919754405268291737160113578910275850049878664953975366904011973366171132261489286165927112456185801723400599315368842221918984023768458235766389961480798880397437910476709563067656058267911357943288359251222099819260678057619614660444688360249223926283743887617554214011211976629959687277086915257640324778150415929348265421874850124468689589812607016888319626055392211671559626685251055540024309867390417409721304796717310967402098247317733930360633939481782423281260185633515485927546242441013987963842423399928589132994782952955116698710631183287725578159911234258236342241876659889208318623451495287533067672889020933478087338085049429368420643551539128557530118516838802871452867331921263052446307829982500110074004642973497103249060960412248492353096720546699983448192407472388974038630993941731355378487850754906231102609558446696685840126795230224893218554048853272102295748587978780637076644713675836404498113472395394912019195364984781610123356544857756983058423349169170316312538672425751949822320027890632114496460633103871004213396507111433990430551085486664337841968417074166512365237236029560218466725534171720575123124468291430194142931379799258220392403815655878554589757145889379804984388288108907780631409787930713711581445195127805046587790091034686189867206142887837973079772334977428816063674023503854011606686042251014006320801379171844816132175447199892175834586428814365105931154499183898275274276781171769243597131763575124942444061761671050899105322320711183991199154217065888016738321694926562975340973017718800612815366167798565633160028038364063727398927960137849888648389517605841631293418996285817583804314537780991267982709708223470269465209621061451978521099236069948050514549515969253956635851676716882845397050891230936087488700760260664698199710507159412947792018452191946493559905780563854993278436044115570850764116854454395777101136721380167091506973051616693252960892479013035678709502345360250468013614333201858924738711038074731729713007099527472763725594079911326223996944190797282115135643392707910984572706637398311183205260864019130777945906145337343886389452691864377697872386077958888912273225334865733116496357872425394843419293627807104328503647669172791899913682994603007121077395543310702531888051627048369283622647009665958160372301318871825946124832074083372790186899319821445832863820941978232054068003640147905104721002382736308897844379409635617968730164390788186946567166345790520396039635745356406459958069110276487077006512876963552231944763987718309668188573194989958585942691179542825382539726456461832032585023710324086227939460665408010674597782264354213280554942835835676511028860644553662844112411912267645535481853810299193983687360526725534218283752672710439161694023689298704601352239770592630355489435496960830829712227633261881299468090155549175460287989652803920380144541891969401070881947773618756739970202610490302149703216837841428710438497413729976802947821379773636078116745228548069957435686869641835011956561019100987956513928670580089635302235131661009684766721655499163174799805255326337560008380912739747516717851374535851665625538545051250605815062092658416134645929083934781015919669968970355998708836996995453050357169707511813873791185636331296011634023119476179839610175774627831442836930993850799296815297859097853909816278219358639994099801068685867765412489342155031720522018659506040417053045803389238662409168105588758019641887976259132272527054423140639099287793637450238008371133870504768039503609841174557026992465770922508669333799479494433380484440100871871589839776361903482748587183445584037260175076141130459011656920775431597739938079798350976365484514261867228632469143790513114697131881706342481869504776807151181015537223632543112090017560223046152014775443318623566226981371611904806961113145053568513864615469973150367612855734865552625893143734372521152642444898088830904783190544722458796829815012224118590841368059776177602412520110496176009396506962541034633425390769140550649978718335952787607819330341884475755364475836682139088625142405729284322242608237080039688365515065641102188744579422580478115680761676691372722822313331846106058125115423566338985967917769079955922815189809684247397858578397948067843262889837377354586751261185879402419330498425055892228538034007578373931307464824473039317698010244965748974667875216772487519125791708182296230455785837341128106917683871522539518664482429460241025798235974878961826828288797622919769356640901495251381508912719807827402238548294947468873740690836844629467663594072898243000205540842253900880675908588166203949762740746005661895692061397816621237089672899720747227632774676571133800299077411583480122681395396805707723930367265644617862097666414945722474531589680030911692526295620557702139150762896775464983526060697599063013310293359415950163063953619132565628687026433735802175377507104927721994737578187842488233869884893709862840475263613950567825140975941762229103866907529567748908277075139626891408592310118433734824072958880036432670769410908783805120733694041212966934865300001821649991332474089149356674172951588489822327732769501134242977034340400761187878938888309668802938325204670759671835919127150738362171797502958198789609075104855910695216562700570562818442219135334814920144577665117312394065548222342248550975481132476820730706046104309864936273852164668451836894785877627257302173174586252257736638284648544464331779593076231662170929101526860693598492799154019932618957214996157192986531228228399074923317154560845560953084471891658394180985645362419041937162866175369481632938004396482226888445972916270295562374085748116827889223533642614398304112645682448031055002458788220545427655705386193117895159250602492679095596954630004312115842971534643890773706387409220927193183803336506727787407884672723067104793810993243996185437722214294712223347396279964098985088130685346073201313199158190725740146904469432440510854523974540513155920777417753737507433860550505004699058177334744471942633792407895086800043157305995641685291730643537500656130953340105199668107677979940965661346532141921733742655442662069168469246716376919909958812320720870901028454372859746911146798120766484107434320648601577623433855323983682256759542021743321563643771192059302576253730285721877778427328526547429366974869676147071513137473591251632216184743867599234690159308662684705994709656495649642598905512210334942188287410928730715273129533966942133364666964898762203983614019024595742709609225708243785398499336151113454114679682348363709915047267350087992847029450399850249099001367489268213942905659333017103143932980434545959052286971780190530504616388452716851392308871187158183376502275367858171463328090139572543399329080900640509817442138985539987505181611619945747883347746113259798983647472298685865344297230941828061878681849131916890768767632361487520948458480278968491895284989522760267051775494613815982869353260946272705662460838830911930225285542476460811418806345556055858631899916087562678868450808331081503122621467397239261873383453672220467367909506764855032755177599530544026880839375996099634431957414819108119446049966441089588383466367977059897145997497897900828756436483065850991360549393757876408072715538440858863130150451616136386291866957700096491794157933152225551682674160062545761164357324736276245425216467791154840006113486878942021030784694312469413112555566755730015025314459392295587623363149093747000851135027406987517499293845708386245965350691030458373536480565718880051426304429035226343992874317749804475131134020285079920026938857306773839601184733622995545115887174699572532295956296127338518196335067005803046647433488905134397432775088045122385865278816436780974425364319500233829706537889425858234482878558992029915732564280502471329330653658560142213004391296523331308832937892568504510400032422945524993968588430802195099997370686548173521346225639965634494630668690394796543835530851369432108397441335140850207775851270254321537350679643927470834927218219981923716669523227178028095730510791567733724392811221136662897425661169018598610904964898689722631657710778915935477507150141561034986991686259347881597535962609431064264837433618592878529080330168805901271888463312428671580154494117725066567961346196217516606391620083619703562047869300217559977729501608455959952201715055357094019110941772451963612507477529862354205839239442366583953887746542396004494615877232579597810983174431048344082574384051471531954514601875954913807969521271599419972398171151782774616296380482438144548132484135541318850711814016617403297246275881144991869102732577692912970809147867073694474824361908353332709658863496187443548117051891327881017022831255717782944185086681221346809767939327502347175967971181966343182581097168139181039987330826902547196708690136234082715472833136298139603648714453618192624687728289314001444818485825198710010835538526837298068923616234903257640470600502254255906588650196223125186870958978485114911983757985400722810601987961604666463034399586817848203508544713782926543180568933967191116569052529122037815670328939935526551332887575566342411904275516553476990695600576941170612381366082291550560989741041789025659269705983143135594666501999981762052447091234645795549793871650619318356859769517670740253150197222102925510764643856738372681414581184452154804030283236183027917218684967303717442866342265270978193337784975521261811897563038913942170776288633955867143548052070173534716492923153871443492493683137312353895686785003654131748606575533885779950483763207154522720849019147989131683706131248028853564682076157331056873709682595180590057669227495754534465156162913399289362455016265964539287194440674174232563564627687379549077019718013561864424473746567160627613780716966735934247627346817282454035760499445090614401383831075143960802079677482914972643116597535506720914761546565215204580691770360831152813692248726970552761075979585944812950624533137260719520664597021173902890083354666717439821655366252494855468292081724688723960349024376822271842635870486885278096507983601825156326662076983660662259523265711691619682324107048535949618488758317089286792900183930956213411685185286945739215094228149907174627381344453927375366681995254193891579418780291049166859150284028963849248750388904409401065719225806044408960674650907996606641913023194976750555709836518772718438582216053220064299348771554154345365954351211553813559126359180019855540342391783671917282299848160028796997134318696915878304607520023196055763745660156938603273856315640357454918174828063629880875673858680039355472541899548817738764313265787463883980487142387037947051223924974050079091420908732130272893921203810676145720716975037879465826757404337574858641632153820459434398991907148070385080025359343204080949924523047147883821196577513907764269532016616733125571683762681985141881630562831259127101691664924736572158959197780416023532737506476181794302641079875760815897339346080576536444536445313025603950807415853078314925689332507777997411157075274820667580027028562499897860002943769603991928456171820146250923066651697757066505377810044089860826709645270387460386135717912267541824238064740525134267395057876300899213610359499701137328934835087911831874103443233508713266714657711630142426939767813383244782507968777169242208187280243586993180967588088908776294655149396461914566125341737490406661483174482808652971328959105115420039888787889087865874391665590311812077919394256918834929609858398595442515258046940795890993462261673450538164961501130448767563737722073301926114977172084885321107515821809971253847231289256072493830174297217449612067900230440812053218461753780026341550276230500372953291639326578973633187666879720938158098987108831684988573606675843008214185992478224191857458226794546005927663251485013021502982444659354985757773674960787017267218376748287354704025796344602223198291337518291673807064068953339559836257497298873981578347809338280083565685030818558688485988151147776303448346612682506557823624701497999074194457906560028740590817109454388040304062808637424746810731832286725081525625052675546571396776855888343800739768098617298133027973769526277170954651490950516424461465258784447344948682304558939289011150600464419556323195430601689387165258428016287479921188342652956000326103659373419458047544562075761588268531838449683095417599976316045835390503561690052400413195929339475463034467787309010135262206283715065996117785165246052207781868010964273813064289109105191868122783265046655497122157835331981422599263247406634884459944789048299437209376086875170554097408166788954958268606288675886381748985377023096852900796081989614544700172655093507903410334422649390526384476104406261865958133827409320840963290185282208230596767227330170766073246873880012697413185830491026680065802909471942847058362755738162257816777068127292192979350351692120507235871455112467890199089129173389093109678354526502858123471848868271709176444218585479337411284962708145972163148650571230684942863301018699545400574746983104638494755475986706653428047670290494394048606170011026446293306978530667137674853067164585140501144795162253487488168890936858429258572475827004606377549693433217452782801818493947380389563811954662731276827993485234998672351886336512379838743263669981635170464785102773824714655865600979955962249736148504885747603610409808132849014116561106767326189312008864838109472251261553450833290664722877722364708679069516519181581910003160684176607488065545318574237138370333382408230532434351130952616506646972487563026477461865659691484346027685543352028627102091953613330319678700566251488120473997151589868537550885181129759862207070619341169363370851134978187155230932339260184446637958385505456721639708062227020179163776714512364567141983926257030011773300645798643776030265529665085272271995959279879025568457987200920339687958312895269234221673496123757002906010402541156226357643876618056502203791954290584681192318821675123113234177753968961698259278767169396020709379421851550977319247065935798941749362003921491662991413466053332832569604487966749611170934266848404450979946437246639068597937613993200920860489298005500835809770217006657496322935708427935771888518653449866350804032814815724503601882399677188030637026890518245253120212934688715209168016760488939802998432564687318769490619379559505368523727444074238430386195278694029932352320494911314908769322454639371647866794163900730793971891013157141502418270565051365050539307494627444810967181029071970348892625799404097724114108447082904327693953587658501419866724971233289336197239008995517667034246459940211353221670935226830369719219966345014009247345193806341965571970907068631754467930526415721625389966331946471054652116452674409030047459153892609565037254857433578787862703756735517261608198445260967750358219312830193085666350956376150386609126009525580944146719277545988728530627085699386679708976736725299521774502612222987271058066108011764354756519846479046294975008347471084021762729331733065580307964603425951482500950632971512694212776095484016741207496768864492524374769283995985528138356503977801896641705380783004441344105105171650516172922367412779682332564474162585439239381153625954252615631968888176899342815808533105677508694368573818223151147076573086234693565316207765202229798673606836777015501886868183981519200594938621090955026325392060642157899047202646964792035488082166548506452448870718570017480840537534854697797834484973969280015819941284809164910653011623252867207271021052420751668484718395106722103609018066652191505459336735723614978986822185323190897455174908369399727306714873082939360355219949852596666789395006587924012798515228285213098606631222303722083926700778523366513746003018559205204215246034005059562633817831816067511226017502809268769952832080848161983211318332556306975586095319587648417544633941356033288261640142557651423532439837417294222005975069049738983900957562997748643706901132541637756258578551823704904595267892265854571061300937054920815145932929665683055862520252980775366752313715585675783678117681494118020493401767910033260850289912841025937637946145432680015260266057058900687854119508712262500554507244507974238710988715124735724179356661233229858280586094734604663246776112105908636011567794337037390880309313282097197133548587195948843437037808095079681370499704207107276802239482237373521900618178173222386410723321547736354635610992755079500780196060829084055717702767099087686321039636637897677713980306773942638410069063638486562777267224691817485011419338887438298213592931291942493616515418755512759195169124436818914743489472611254806956886984975129545082272862831074013390064184238997678632824631367235795775731797595198144376461273875655119579950998745176527628993337505672095083114507651880149272537586532190482535309854328324420187480409915297778264561263765988000453348580898869548059270958590062685906190555380062671453924548736661473639315501218038689742378307476631725563262620626760876690605561394520526692507010367492544005764810729131992851215039726695765765433083205675632413747463248755654221887270977508761332206210013990142386938321851212873096111945598802956455186447552033467496927191726541415192499005051937860876354485042186165101224380772888039617939651876417482442392466818567079736284437403454164619774850446699380845165957789648818360663476047224055150210278354359581806101890685542359944030211492475306653623091957840061139107498431331965652980530250018275048640252890889208646372185698885858786339203382770010245154403561242940613547134785738515259282208620409455420152308551717346068112469351027975746412079333603247206112184637397443175230988859433168877783305381890241451581800320684071800834174646933994622597245284261250451841062103873613493261507831270047247577145857308833808317961705772315655014656385888126396463491075110547950782813362430016972251521395642400500697129962054564768875568336822539167764257176354899986438958474521497085482249454251162377598362830709281959399388661292870993362534162902320796653274494982568414669556591506577034774265507942689005508886656749778420175421366565586296494022469240155823740736130235406266224071765178611563970355818081704298550592774113662745698797698592261116501137325344942717675103975173468076307693435366680970393423455194610536635730762450463631277838341071461785987284377348244981447575214952753744471450194242733904203222011100764327818926040491326024133900692318385274355704849819231956967103927672156627411238656238095751177981543087879613795329342976440548366961999869095759042915714444910909770494699119537607352345683783592451270223941396891888258194050269403645060216610677261655358992103920413176903758458096356312586012477056304155025443858148874554162461537199562570510674903605987448274309823448019324130314856231778075880434169010480481796266894961927489350049756977529012603280509339445951297797403552079637622767558320253379029683867936834555506175006539725619775640809550799320893228043212824227853669089439513423347160831401334281273840273998505936609388138243841900189397243984589686568491008947998969588389430278305917048672803137415073445037026279938216539268310559684375852596613628650999975048874756857570810270045157475588789066466403690774509866740474413438870717883300199552521242318084949051433104019545037926296434677126036214115257397190173746560548179755224120422010236724020414335276526290312966925460675359407475284954914085898987402382374781524430052307038427126853672483866452572143665908748528375102503031870452759408924685438604503148259468619609532625205003499642561482168692468377397837661193303772985373755436252355296498260071039365093612357557737679694456634589505452158901735815746897482594281891760855635262350539803580304768709218346372262128573544010594461589157845219611187306395477725712054187863289448570506241130855441558807033902381820373024906308282929492952302300886373200159078989209412040415759227674799451739796249372320898566732009339427005563585295598446850229777747895259767268021747427401769607036121272677925098467819915076708867579140014032525470290128320631858631977100665289389195128644646611826694339494469631936414877024390880150868982859469342063016980017910572438244051834591824899938262113942968571142433231152002739905864957402032914476174471585992168883528448752851810935817435555671987327889335657314921409518525322897592420216318444166338650237650852383211346784745396659699687716053147922097432634590485812623536767173095326938842872388693827561971893864074854978675865970168436569895619072942085278999750862646717432664931455437424667656227080547868269940754733832252199700796910116715768993262216374568422852219721681165027270662875647097423834899311471428049441860961907001697311314168415520967348532219990133048566346866742053725495255081799526063554579687424895222887738762095458495227005184814206275617919603564496773696598078469269210271690339481248445006282708358417661276753217239137237682396906610696442550180032252431703213853140546703801227272465583161008553214218039117870073161817037319124684200233151131477203269388411803360895691324354609984307427170364964083409438566376540887395841509497302755211358901996997263682110404279934538716280254147541253042381536425563115813448626981867964921242504276398399762383974295008794435451841863780684198459436530933286711897626534023221163338370767494779913678136986803310553659813634622532015021935426797969219331388071126298230394440447872170287553211378250065889767415025071873130568024434758256918898170799040980235054882147633689038812304545833323372301689851246935473512804835886155265998787649331014338945914835649381679957205140249584680733512076275178614052069349083024737393750572268492797415435133594265242803320533604577232857917389423744712436769920498351884913732104936743125358266195772534066703562107552803610993484379629736440877624212242504823929199484562255651482049389671890924141634604386202634407158373166751557469651189360590613589696185297701317270938041363673390130585466704250688192454485316775408695378141009812898410940596947405662545860860436962114969455958227251984844065201355446114581656621856885955143961430189254780577472841800324476905208377502428745693265826995589199771364131002540058775253318759682414826353122448131581379106724711846914527211339607223829004432066806564467637486717469903459734879079226941612488766860054643115629294245771424540759075099842981430106645464721638998263447696486021280537612258941915299696937160934941153322878087292998097230433107723563956589081725032408580987932175228536153883885415956395110698397252837230607289265817483131364702733471672373047916923516076989675819408205475867275164246759213124281599681612197691326918082057861957547601015200576174540633881980207130476289638456178850049354286137291985184570686143472444439263140836843022882358588227968503451712587774932594229221101541274000934192221917496587890488515614991298504353149269179791139629498147522775176939356902414770357006060864145215616178775301456940292903405767476858732562227537764634118699109050633262283911989350325519424551940809866253395038910266936902232666361965366723254729158522002502170630175497828145924333490776735243024733587808458039139991223871840227614256322405260895840812421067352420106981444662338324248060674654800207326827345133655887870271054930356358909086526190634859484851913245307413628492828758788926934796862322976542956715043530997010948776533247058123047807722994729014592071086705499836038649302312282792794607495784033848612280989358401955033595812565035181307428232898459675296528361365012555974315352120434029488503376111458773870873189453345678884718612927308400441274944843613505229524781757526078211926897290185760746911104150759661051951901680630863673286819276994392615391888685280573710250657806745941816269792876281331847081461109994555351925972642988878959033066322900436909826914768075459370967387770975617573110359084991443765130883657257259833295387030659933519938157192217496883924405308777200346918368083517073770549060727433195108830952541392921213241370720191242888653591433607716009924185083411917571507573369199493694926892991931326072041154683123084225392984228878945511299730652360426580777865326651658843840645213567497755529695675689718370577054966854713075238645033406428724325091806670130718983811000902286493766258495325932360311574069409363589688945194831006027197210128041763943552785418791687098977806933852126274859020503482059595694372206880574686253056434484630126030865545831737975847757786372185155308619005211681222096394081772456299469622372279447422282038836003884420522761324585066762783667258170825284454732607583658103326214803535290249548983138655511341991208091850854034829328939865650269440378603905801788046375447200992934127545965036979803629379882168126060214350602984717565806585903568139318372551422024744634861652805170370054552832270526157459285985070761942729562455698460526277525305341481876604344742421538126203044359450581295652477487449386758242725364708087880096453450894109388119856863031530033610393091962133644558435052945235850585405054280030375886164924712931910833409088992171126445190316900664393308496376978356882049043083648831652621553583450728982753198909792140905324011354588726329874908599701648689345045517312641507844184275372779163616431001701570613300085560883541358295393984739152674131532565653633515886403460750845314347519243754899040214827853433170524470531454089999361652783676594580783438686398712380648771309336940436640980460787397193383930803535064457349910475850267406636989482190906899411966010088589842980291420550701188537457608404040301497320074746857085893766937329038995940448843729015840563702346170501304331177044302172182384384388491782399497879846556293444430228701250802228721973958437096883432471881012150248559768366006441565638645441501657222150646284464997040275291291986451344745259043791089607388393690341908781243370974499715990583525228558065721568778629287483826007462317486342763345230049702838946324805659902961505355737386495202310794655921291174732703910348285552793424040140220011320160137431454006401980593368867232590054339521030638221841154279869168831336672015346560916801829970668738364945123140380218334383963267966762124284599844164956467737185174427239858986426824830404513223143928072679633878546148694073496248340057986376130980163093184114308426167113360191547265418634448467859529295293321571206954299316847517350581551703479807544414694577652892129293801956261771744902127561294379926875924619199612004225946108705863524328807033736635649190160588198393025898090361761780137335516292217429415530557372416634861576648584385662662811619669929414669238800038092312734657974780462038610784084955402811499228432951283920518501231327552829502357823905631509667593759448979179380975304486654375911908642938276004460467403671115329606282047216445565144552693283565027258920238565980397904563881652196755999816609057576539395175018811027565083580250393216037062403659707357509453222510424356682579801383772257982792947858492540638545089761886241850840861341538823580596269181436305143994113557452010371911144103817625518607337939973415053874105910625703571392141709944953987625152008636094354450075613557822670775201058068922702512942793376305969795518231585093767229766898071470577395050810862097204388955688764203952579105405763371247313440632722133987941760312576780652057228165851402282172948094119195537915168191952486649834565040505090709777493931385433233361718321340025825844812033460021307339094120610124914869021118092649746649573005549347484019500659937150321994512986249700909505814517483971488952067673361051369227648122466119017978118969385280289655129528658497064947803033696368488057073019648453705054982052695472705416650554822917305600145109014800074164195228887555440920315116166353747461218969792237518211667672086076218108672002567617306305735757380438133067150840258900593578826848296093129246120554193472437687093660294360043928622947469857449547090556383898255260273238336942061135771472760074809266378302069114420570945967715402856095365168163220194268406993143101538651301182169617248707255270596881777063310614554275649576026042869388622298375224469856363666742307694690221897764701864718925458088703932166886810873743140597659470535918176497017778969164292636233941002091274692659936363445898928887830391558884582854834954908099005253184564097338859303051975330174909909631199498695456431833991128964763164450934494245800447810633908115299663274057270964978626028683851691758961372388361638965091321964816394582176738480693158326772615077391244953049526808177764851381106913373431498177302633151858280808505766830462061207245217488490782460594063246906943436286270224902662736862329786755891139988157567152889654511831906646585451123704946023822445057658239108218726639457376526797339248664287680523078170399736347749768201094554747642789216694508999111624548216716710432832869163506563158762185075950423826417221846724379483706589133402930552862998071191838035591566024728245989491783909572716235875505873880534964182879656137597384281731324996835116506605620896077105333869686777581137494550214011665970618117758944004913700590880231315242583137849762574838379702185679615606374107050452028922321012136944928569547668298954942787714652903244536309590790877291707921055504034451403302805729860499932217952101196374794690710176322857520683204331355585357474355014000587142018419215086714663383747666532276236733025784057206031585057119866345154820594138254207351719306957863224517325348997715780654640142162363231975598622462234400073683819302142069213133672879319335366048560602976432547122967955475986546793981621117850230701327316010361791391494558741847239356515776509222933611143454172535255892102361379563018541225909697082019485606119083810188719328718220097798888619684799030515747780949927729232290704458889933944625161983953847585519214140212868223712209872970246785358149488427359697789007449504693952872782433469108123020887694562499477711126583060615954616377003126826701603243739958879700582083736646728763217175490738246979358438551549516680790007844414247594807414843225662179621738350627686918176506965003028878499046432004306241862149132893479899647801657039983636627009172149669157724395358140870048857374133516091044142102515207332412339367339155031413096787177189560590429834295416391569654214955559184588304810404310530579730498073725959622616291943114022885238184292147248689208768614848931531669778603849373298733593026621071981302878847335329703892153313388705778481232105555157346006241456199526324419141564845437178526739935016668506697097132604241271539071256951538339966325561718302306984898763033116207334772947297616685177428675582307029844701006555680557169140712338116430514825510625393498638696446520033341194496674582888810052956436162307672092822185455063481220703240883734036215229450813524727262663911995073722594848855111519891691212536597203738380044066142693198904979116643286460598032472450408292303772052698109803013575617377894255343927238431768061455367617887591748982456796156457557282166955186930229472416266907658201938191824537449709176888988579338544538179081141128160006914925534071001352423538992903310620570409636362832434842262229841389935860346633257425161173808811032036596541500772336643290993781992490809879523050542688670787483642830065330912367976894494510676497188310524831970225233628124767510511737519847671849816363239182037144087865224905543146270977193612892801275365864788898962312851910753771845941717214246109625881278064352043135999938860011341277638985923726065638196611516860692664282886319690797003666233038553276820910031875219552782761819417157212422141920571967938794989977225345345004765828495860330542939444353900797320105033101479088983289899927803077778757653258983476935228237900556787128682999366018607194399328930584948507527354394799708502342434638157755900186305431520327313753385865647842799768981168793908785065916250578875170266332972529733740166109672214659610049407148025580564851194475473324077034489002654610037602330126096439102278457981519993703786061441845467481923751466185314223421400272642086203298154145794580686060696944446096053446874339095322497197159698216815374544928890276673791484527278395562180497831295566930348494771943447951721424164753977549762375751322299709772702348216748187676853256740479008158619475971390847253766771294592487996208479410312272187115235097896644872358392641543734548055025174561225774710904971039214350654516608262988853022568898818696523210230248659214213492874716263226978376280539051971642050834089937761195155730021464809200827023775759700752991234393721543144185648344111127808835452688584741828312423201094893939310713612529375921311022298772622207559331322633208775433502461986349546410038439860089049581380285276715140444689681191293510172088693565380841010775072483641725926930403404862312520894888241195648774432857042563354788958069427942953425188951496652574138705387537646868284747003574032360394499994612956425898933104836560163637634016770485475325054584645598213644176920343321000623106603745092418309405611545253651499409856759729023248040044577604459927622049645778205361267969917556590358042603799245439939941136968797950925437072307203691779586705184321491082827153983725645271303209757643211302126622056243471584355086584648341916203169013596708282753441790816043394061345462527793195217353865791916267208044668131077976308877502065315009333152918083405056255187927571180497374487379337266643210514030283354347958318016263249157081330212979706463982558315946722477328080950905824279009780156245856903487374610793068253794995380607177370671372403772375391403764770766419790669194172127594326467980231772835341875296147340532454972841034131237693151912479298543173426097809077823014170783546517418864811374253649351212447288715567897009775721322296408035649162277932742533513972461407530687826675504524691817066665468102545699744484976092044304488890229361677487496791954217134415054459761870122757809511946765803468017108074988120077343659436636121770782099643110486029777843780706979294147975205502211891590290700659115537114894594387505814327772021413689424566531695541573119833795014663989961061117507740585052583101982657260366140824311393085215508192563186373898166283331515207770207532338371270044835944416432297434954753931473702715772051425068885072512828476089930233253976002973379894923044347634168368735381012625997841703751716975777852477071760356972280799307193205534236560051714140129469054341040766859330209302067830830962729459349922337776577830656852566863120888825019568813946827253224075503336247319960768300141873610713269603485624615676913857754908537237248685723655367861732764133345738834020678432939553050445289823992118014977797326654161232713860417518911918043624889703408364828165730953741073232778051237897591725210391112374485704102444720844386793425673810675917891116726761747125170241560215056419607108053782363915999040366813043865365551295979698151807383088252241005186805681825448074136086749100307308860532541343823568885082380868939773888797688943818980476043241553890737365539188078519169411702854445417640650486289864953006993014237852468357696091482085957075421474587452654735372864889404069687132128492729398474122111317859471232131759581987467418991261331086820146608230863517328340740688595203179988912411210543260960611094112431960048107601915738289203944347450627164223014830405045022948027145581808121464928787089323377088886685501246406831847173070671462179855233582493805590816038456580697662251300514659761106602140557246212432459605271719517922103139011885485369079911207413205417501000069168530244418985646656276272024385864597252117501950027708180121862560720027532373270289733364821045854445136103512364833576955796279414089652107103815820997496995862417746397276506482536012223132109853310150512403786126934498431835958784724852703073433582812543885470704812661317493378904749249438284465501780699217881752543440022654270259906573054101025512399689189320795156339589515199373788493737823608680528407439119435659846007468368171639072510629797030461849819470672571703243168695143021258297245608461398155461928622224925560606847625422086612089525275918221858905848736449205473944538193342660690727186336336344949746810146374066970868681478397144373525998194534489002768157103147865110595253283511415969465203620122704347874690528289765038716580165407484551572564841951514526745373824653671480292004892585907780603569625375585164630198888433485020944203555171113225393683531930870637815831146140548176287719838796116055077886008514615753847981860701580105538706959145946590841367746275807133635334459644242588248947287751308136701191958986992207120190113960978585588371446285264122543258578815949375788714915206328242820809311239271815959890474123364796157378992793552675437816217519588659406906761803151374879108814809962933581487088151533472661151448385550828012575361777444543381147755010061915936455293851041050344268208581892305493104162294641885937304046787156356126065481323236460126338993975819352281431007520927361526717801878522703404978427686184267962252991521611507984006912876151902102960294471646531213282607400148140427305463103707952837301625162112426291859929626265136408245372932612666210178928817661057560595514917954406523149747868476441040647716872004747111333081912503189381882408590180524273624500911253867472944418134167359133925276178638008918887735422104956067083687710465662585194012615764655762891479639518952763756533357726176181697058650053182862289642735865522554391759351497710609924481097964404107816911415776114837612074147251075475507882470739508792657373430259753246821012433783855782712333084551284169981512007841813181879671555619325106239249450501320014576927346966798463974294803580805272532037298529834518934611243450930870015562103459311146376656621611034691727173408485128675018122117643888112959830408098916313566737076699273512531825465476497891681351190608032733917661472221457596175115945622604751415230581705505848649477252923943765088847080934551236218387561465757219864111237717991576929791418798813250831787124478880496829454276105773615759267253565687288002638419701787819981184712881028881699444098387772524542243096923966481614299491917542067248613107912868047310848579086355133754783411431639494182269497895360775909169295871762883036822173723050727165946531286173222943744490986224965052183958314199783505005400077554186854777963641202443823539200576804309569446548684321572810864198727745013468991285592686586295262027047231930126707828313826150569617128046840503699226783045360806875859340959218806992062400371386098128918528456434429230554846270541112779709334000189735963153151528045598415256101094137404397113973782865238134405029853608620025767129833962938636115211791138218585862815232172449114856668897960644261098568285866150069588467933745706211733878594783194970060505790878441535036645944521554376083078096990633820532925651171945867222648410936831207858104877364229532903468474862981919127147348021217519100365019079591968780245036917056079111091508538507915998605594669077351313784993729326400746128687486408065860439915977725325022061971115670961511305198043082135226048220958965891677084779151202844244445272349968948193693997081912369031670999303563583882535758567711169443315390338486219035369040721213461802077791723515198509947690117160882087181584314508004240434220522867800333508943021875578138840758026739710240995065567911428555125315176071774339453535452894674604155011950746590722162725572643138048200535899907207735202664305630040507156371070971699776080729168640853355907403937244152722826620393689148826247914613088269975763289222167770851554099866386745717068194340525577915598239906594660488116240722830237525519507347622062455859294628194394857054536909457379914288899946906158044694200633039419230271339363502056332136497814111159441931063926067291453646704123061398997914833094716179828772694402845568341140272194686807693882390946994534883501555549541410999455329988779698786786203491544897991191056966014711966245341910202065702131989426451272911395092828864500755028995795486578328211082592127977560683771910472071168123501068327916492603068982793883958845254523133022192782640804864828502638691159707830105070692437526039991735776631810727319179497574806039687660216355474400909832894419333426476532761909178001571374389128800028630526993494485926708180358242939056347192876395242756658531131664524346050631634279818601421398201652538609730183266848580055344206400606598008115379529709508579776962733332648251099867180077347002918293644164033768328075039764302996206178658260133215975507673964757313336105117504805569885367725494231548062468841129986004732028933156641089460140474467974827324106212725118067223471301727131998330909291426117585549304909117544604663680872882200051078790226742268310966948517096800839776254163361386156626052552499028165602151876236876095868212250921662351965873816520233229799936876063351098387289749521985433622004113009966543549454586502360766416126603956381586248151989780501767999814043075540396172130585432289117347789525638079157376894507890439889590325974926777405452178543632480375977952870588694366516883653447282769678880927022042639523961436304867962800619227071450048144734499228182922225804306804273472691458570115857798898378718479250283949076049690439831159141520056239046764187898834124551090124880403515728539428132785009526022371588479922144194464686238203047858377051390088337176652335065912606954913898912405752523176119281943007160184957280449461473621676504195535605732335346405040991912280487012582008539960695423421857533898385029582646744569020217302192698678287141840212160613763830661540488823135638713636052928852467466361953358507939340596195268922978893302082840775602764603121958408230245168878920915472186834796220882164699699181612803163218415800242835212133898400549937893933948070645057711143612127814409450951203288287930945007246832510947258474428010997200959614578003629473232663675963794986972625763774285052644703358765324584790844207228232531024692136922143334582875788005609994327598453025940028193724153391094326979335154751911355482206246649264702433765303140511291053207368802552579337002127568962155942130665899692584724894656192032215319849312595010767348127238126226969736705032277017802253040116263693452006093346934419639096312030677251596301385480084306209678114792506280126565460686015365781126895621630262289478452319424718796315151295810714371763070287138708719756790894150887757293626006693529960481200828572607281311167561095203625562332846728056514302033735750064604296811353987819169466155422642858059579845547807370690511667240007059002910538968979496004036974286360677807747863909017104751380876832097072268044277584278042802565182756235023333112854456126160195462686820063437320630787713079337964367495467177194116302021361585174327498365666254277621973224639325510511339789677079589142605582489796533644894316364454991983964220661673580084000684821799489118925089968165154827872044183951404852022082224765286773297142989375539560039884253599551086527422707312463513635714715858849402098843756666221436212042663050571279563385904097552834178566792092213424593843528640069141515755537883295767085483427217446034182944884636361107888825285266310232491642840886721031202400703736568676827059651782912564797125458537083006005906022622992674406328469520780659294186297527313464030060518826638771184699377084349917342440967538149948643114941555154057437754597955163587599902573367040112123281607938323597633109014176097123038440137959459981365651315434833954142441388067335842927882682816208700153160866970476136294201151131629481444317102719231804049791425657658551838409159610572171536239247253306858915238734196689645803303661702889690116968668501619304119647212736870884642255527945779585974432987902521839065060937937990418638324095189479830176140269088202841608530577918693874691161541223653463582638535408836747832675412698856294752883299502202242814383998986703303268714945466063772926769441916002522635696212250314815345843024458370304720957747780946437541233859315739246160247590613360401624666799116298520520885760279490533571158997380576477936238893021755424536358993352046477889675280555859314423128766072426681878955410827214956000385810416665565303511214278540741300264387554210407796712049787993082562212048557828656108211292837423016138164319346307253639515078428521168571542470459491012874609885789842779850299051754696075327844212246343454806734160355830464457683089061782284878814352597791835021126191971876848028870085792427971499049390524101987910489388389812997276654563724735030786660927376560455197574803136225668954644793769022563830487100493514048222540012319739996257854064027784371473361137341607644118064534135369893855347555035751656332108791969914293339898111288835515953102473700445735035921318701371117184549498543380284619981816963250041178334960875929279683198583213215195767062770267938848465098575060379519412722603637534997096885134742496785043921472900501580958137836589864551556921830307253550167547622315370075315192644249731661088084310775166419394213309197268811435476967883234136755296427550723295983997516486444313119899567373441058144955443524390000446589201860825767046309844834445001781270569365410718872734966064992349425681384081566211928871424708613011234619557021909675693027449003602004382033404103753341128079406475740191767178460683583213650859816413875018728266465630148401300174163040738517663781545120598775154448046881006954179852162916860427567483844488986243805617387228890022574631798424445300226716920455015698799784133802545462797399660484414778490663736254955736257542805321866784516600934533328472364123829902799935372210731386091953561563933314463120603044709045153690927664215686002977937266482655824470412693232570291561609516441133733253297576275731255603682594352344541841827777850057799776518397670006157358771973771785605811265947136755432084742418460328251924814886714849303352809644706671387068967122379276633643167934035986541430617432492494616541012112236082572740374758735358211682408638485373474311532276432140324599519734822627065396471325921355394804690468535684876207051571193979683447334545202934143724761773573491922065342779968137901140013428280337451480536114406717672996611066319167016009216422078339252221825163772572875698068426905535618825608225481051482582625880622063622010745768883040826259767903160029154201473345828767715799834921599891823610877058086101506001829077080598335967761265069998287232492263900089593146059216426463015327059267925081501334974047882656219240483576805705797044391985740436447306812376045200498685447368856804276443032430778017191061737876552166356472474386640260472110093100123243578209073106240040009915015517286529296388236459182440327615652150697325684856628209210933851056645463687331958475670513370397161209099475708747646839147010997173200006008109485849173563817281106900829651014814023238580318073502966643201662856906017712432856141465392920882543751996683858070009626496849387156608800332247906433689047349183937046391958397462766709160035716037931466562303281894940706449997843462518268524586782536174308413678047470982418875025576645491473626293986790798033040106030097819558594979719321635116175834428830881904611359539116952423282853139553871274024800915605751755111506604171796830208633169874590178787088594493961802920245244118991506681719986565044985432030864139620806460401104875278000319191442010625251327889517225631348002250429479662312702350643292191597790070235473158036380720307028967375052088969224192484610458708807167612633436636419823080795484092278055892091970114628313340301776972665528500175616260080699576115574160097191681073088992118259500084240102248904979303169790662814413436981640318826377092471495506275652397390607880355793580660788609715851096767031426068146193634132802347067377373523107252541822696741343240073054012069257939070758490224026499148592166084485320987750855057332021013410182430163334325705266027624914951020092992070174899638003283089057375198564970216671127579865082433297770222499595986633173226885046188854518173874367037558443070831406534043452534947975915591706418799722549362831130430933072587508049228535552071640421383682613563026576732701221127224547754028432551794128601366563103636541845442715853331694644133877686948932160253582620438193285944345655832048363197779215923919125515905701942798772868948519792437774230585010981049756232852478379423584051172020090372958192780396183856477159453964666280103201530830189982790259579408771030944752057124407595134214916177401079626673843633975375259680162922278847259074350916095745224880469320490647152191386295369810818787494114648557667713897507805032143037826543090196694412170058474485195801472499855049555808740580241751524663483426243997010084145167092145264002714129981838608515542924690795348769618471520615521259764044967012134707239070142500129850424167631970658418397286246809920159171735751825133909097514596552631592725659540654008896073889137940368848016877853627536493400953270818359889035829136622499878612493345715861003105358321418428817559374794844238919895533185518365813045476395344185710240854155558913334321435963036920690055554466137905334958651152712468846052450904507240243866121274323241295748826759223106294949497448421644955091153517734777324556956036949908230896241768516160273271714238510048539668896075684741497446668720688811098386757977008935667795788615065519587890600141722038988926948626735385312100179485577881248833948466179908253087889255166834732160283196445688026612526670159550355509337312240672697027308724482723060658123571111838177218043317545594680963740161008619309620157986568728308524221178287056598800144561529589496077998666229947802377341824263602689507846738506593635432028180553113862613497688129792412959797616686170385684058172255844565447619154185885383697875639731118581381093381416892315769196454013200113932970992720303867949232844528472225279827901522268561007125003264456249966042235543384636317168116495671531597303005617589684252400296560604170575515609121199792338218486340939789984987883729723162419565232981762101981657990011328451800798229322916886038030459407154328090914572123986637333216745873771131130992300989779878584515630519797752883365324484374523294394544233581244776846172959041876982247940920242347549398991266648078849967054362437748890378852599265585418237421718242241888305499176373502420850818073262404292354664206177985303921274635820698729426171325273215661460298431878186016329885504457431387456153027071335356860525652287404038919162476116206107184926598583746966188928370451931951251472070715714728888545236132632430050747843197029189242593732627160330865063974054308613685542931467870751940434786172128426898938939136544905855847501357624531675141417051783698199315678278281220213628178036579835096296222061405878892608190199530806280207962577906373596637218244600255548262934143619237054147988886229902828669153339289197871158083854266403269605758292760057989602167426815663869559074787346986952439870264577970481876579674642416985685966029319436240097984082848968394000117414471150907065897435575470227360963441509925303514082256917681736248087191158154957324265167145846016346771598109983952759222239359159103217875744919502025015244647315236873121176345535962379229190204667103899580384704546327372552203885708191643239181431316347556318791051128061916946365659222097336446131222850936679069380562807987520013782960517823357911220259092095394499630910625350916736996183392759509818842918339564152224237355804038842913676276252459925276063901943846765668942355180740781350348881886879062540421480548766651718896392165719199703075812405494839194454440569478870966243013658939723532097572527013409804836433729223033159534334333858722652742259211666364490652174242158611717460961273174281034220141615776042373706651986045190857142043321423289701659049145179649550852009825265142590814615104907701595690515537687723312817068947578789765758914873206651842751663217206028487996574780904957755461346813787773749091555990935678478435518065595092955386727320073667962147146621291573033719407365724818405697758367128181587230356999152571326181637175870788242458667952185272425618539098839635363190528876036533056252611443813681303939822623338134471709276430266351452210000575952060016767235594205211035937992247034158629915257503734952712834395569752265257210097711318917644711766799668904653948986921422841197280077385410824329061646426580137983550586274640469064439347193054305075956323596802304627688946677822164972487856209734727525845474540799147265533924066587685891587212769281753428422871661608923883373569781693934673475393528370936086088572404289923527676624768691981843297251580559658735122628454528380861509834130398658131995749329873671062419931229280068528226859407085745870037908260455200845111817144035112731426994635240139577998511149708577809954536414098984721298225759255645721522376724812138581732806522485263850069515982493595077347866221050280950973617753398332641270714611673890353032244475333679616535230923786654680673336434056645083213023719713563815814762787943494799733557429444054670086619755458725898324560367504617342198384888833412518441157765892603355135584221100086425782111465951430174470059695071675360594437858268741339417666195948215850698740333760762215687755536021722955125020586623848600895339625472420683074444094345105950335414691892025143869993937011669781599013914366256045481961856119573336705494846245695328126900007365633402854095368206570270398919504918744457832432520352167344975188534447726089932040889974006401608768966077919226580042398990265753180426289921224264848060142189756962359660675386765407290489348754158661301626450356763318680803036531524079913928188090769337894333309724347292937370917531661691508073789547424933286205798720397045540045810908295646488800508627604500240516720167368539550930406625126021672439598109880840129447956587765547349612928063128480095773468300258625493747057559851190621956990428724616280525496251151086766361176585809397110019341332105287280426155102466353992270927422717379842934897858233200239122089729062391273052255514883972424666685265377922373022597785863264712327962918875678967117433330208049565723222533271610828888568087414382349096843981219432285873294457489557517454011239433100517377891432639598499629077019370588289609537565179692970562480574825099600886665932531355509045271532611754193729471071666762294150992188471316101783202310309048034858184517357378478971574886203950330017204840873147024394021495542121501982944642309978528553700107795976676740710063551537541053366262539375429899093090951596474378032050981183952678309395265190073108851130491533589435673195301636888765340618879830703872241186846317910617057174412176278994898169802145426635531199151960595020258461323013241977924235451427388067219275774085417218075530692831336378138092008917912525048415967103812570962934594935110165636618692384113542724744952120693283569811007747914768290152023011395225540662984215836113317890892751565102690524026827483663309210093436857703753719180261624250098616324119550038753287325473789457250383170473127943072869641534036268656995282009862795595617470930387762772216293201039592572052479449307991568669218055157952124038195755681806696210012691198305111318301859316729996416484857299839346596564231000607909170572295509898537420987066112340888641266969059894715669400007854142628350640616567300265594880409664491962648857830976986151944514588888122910561785881615978904075766361110704888829827107282114966621048232960145518974725467770495059291030081570247721995305931390891049028285483754523436090601593579337446428912247616976494025125579824576462546206303260857564260761947556720914435440171372319752432143167021327450815338637369629644478567693871570468448546504591568460988972330474023055166705882799144092386473209500289030802461454962179732211315870029995333969270357413868340073699283831646772512894410289483710476391545683230512648777452056362678307740206752964944266865538157446982771047492548090519365643529345202867040330161153543129443049706549859905037115455497429766710490983467042967362060537259731398893202817527028570195799951496211856016896976200653642341762786095501129441470459163440521717285268369392410348802815186571200596278721949512501269725797053261392271361007711941512211843044075587111691727441946531592890996849908155881395311776691695994113221878661493271990540493758794378724303865770904184135458516436647311624121166800159377218329437089049630253104210467938440090510625987415525718140954919126089471308180770092585721633574510546854851034549011381331507985224773663386072059544552259399292647773665719062483311783731950873750778797553430565573171482731696787386397789751140124606865491140821793313327591228306193818804297354470641636420785572939789863806893258733796157305941683105512527675638038517309051093236467914611588185427696908955291183562505508301146469920087966812199213574133988340884886824788521497905862351012081192450526307743949053216800488424238533287104289287755122698028180300798368676210820687037941435628902966379377039041012137526355332276156819368328359131228611624530499472780222738863437454643949401727398854359043147599017506440827142882820953872791338880431042497743310335921442039982170855012865020709371942687895144889799950622511925030449945085608436728423381538859456735357495423997397562261464280814640810805392624817560844026711807118262214226703092168083442845137686060548164912980414078182352864643814548063149991092419052841873997200606197044200897257286696001489189063308589879802604412469211133509583911514893107558570847811238050182510265580366492255012298207266431433681465504565132777424807951448180048990345214835976630331088796827080140119719963034081405672877421412953566612356865200678505237888973599806685027140393446474160063745637792055563443468050192947626814125264985076119778489895198234864324810411462818165863891958806852655588505101731973016769571242208698884869153487758007843206945040395262114606400067218120123136178883551489329446548785334764443063597573971092996445790300238076655951978611822753957259225838588330188917814669234882660331691579197585648930071740326917576239963598212717200390495751820158714858879129162026016188501846905911377628086419547767305826211437748216676495691278064036769941187345072143680787346456807971016968269405774919845958558513958955327315610996003120261794480624385466143017046332384919883976396300394822260379806276277595665262502453522748914855364239286072075027145263202980474683567999563298512006232963532304354682596476618163991578953070364150136993832433625109117693108571035128315093003535950916481779387303548255102755127098340477385860346706039822929342659229550711964633701995615339429045797303830023240853468525943515474928818190197037650320531968300969471095729737768209946255918871996235171348461995600928539962008133713876417624768968476883376861586200567502504807405932641511831927112141440424442351064984070097256256025735805991702594413949243873503956184518863301898014568089730858575137417101510920967463574874319005946915274808782907284293572738341408129641556753543850101048017747756203305640421937026604666285386686795585506287217179024476126996645035831530413829073196679331689181685957646662221090851528518094821849941669076393702754445343889581293881448367966373867534516302421958082373937770417089936240093905641102334970557688424778156918660757204289139504636851792667939605675820487924967372719476069870042662184696612207377909080832438850164148180547589354541519628975257262164738845101332290586770798810923013546719362727884875480538466379050427058483466572312984506426607408785182274264938929820812108658386750806364866948695138286000157075557864744602082588033674422279787940892054065301253170511920851385806070427579754278674836420639060027385184307250028670908101491458137472422215060243632014980704951558766757785382489823141350397112249359695954721162964196274760958895191934547344769601884649211925707448747654499409157959349734667581632085541093150824953120230668874714603573594857243218225043864751712119714088044862385774776468739741729293392477310907760967763904349337345622749372998283426466003583394672925166710874439529128478372781618499665844261721199622439426357033424593433411985411930038094355021482769198183990941639088868117921544631887424292458257728140823236965960991320723222835311423969017716251936798892221172637635456328424371232462475081166073051283220625935882245588165806513934526754383748822477762614570814703927087356410661583503626122498647578586924651932160180958967160694249947041550540372517886807118438798742693660309948339854387412869526587438425565408220139020064414567849077423769822097133266186452244851741021838350151820290921080072797917127195235713762651307512263159885850684534204569490371810681487310653058402000403993563591484448650761778500528870522264223225894886867466743244737426354578405967750129891744515270514471040118493468067013600770387813392240466135712866566300224406364340799025387504268014825696359622898079654795215868661127538146864161658584196694629244554866952662469072634853657289000196657246618946638398331527820033816902809126453495522612102393443706800714811542582634357929154530992272175589615165827136369881337831505341477576106609795749963339571289519033358148293217571265624973241484842583484755432275132487130895528216049910041959049301419210771845209893058123898333159002549638951205473149998220657105145365297859841184689581040110487311860133544314873126538577494406004813405982431511201052046551755750652891583406788813496904829085416056241116919513887574758798584447587698210779510071238067023216296503649285256440709302317307488488800214786565505611296605574669375325723914499118039406788353683258578587728212364654876704468264651468201916866266137922151728411089482768426283414241544021873118772298297864769064056273569001635081313501564798834616793850733940294723640690701393153644887684535254784640004123112865667605731370866151266729523246601017035505530696186630703486908168272503539514034553332610382918296001169457926636438800041156745966164668973029994870565843779008530358540088474240931437596267091958855778635769315917281723164940554093447122805940855460106156743635935804114105549064993148317118859980465995023028088106091039558191127486411074245612955562716711132436017362268293785533956836705702599088691643384121349690376461735993389468508278850772553843175990277621264143501826909362571448677418605758316104800951232607701664134835822061696918072037013776850809705447043871395513827639083837858558892358778348007691681783650782928300018789861215445281909287814230359849661971811976579773008816286639053646423726018255430002258688019200015698740496822087964103762340643578419657716985415524382390397070143565643510553107892314196780344390204245387066350899723619574426381163813220448670794071559505225347416517938509996561836787381489921979869028444636981521856304066658430338681183258836916455849876461942655637972611903026258329165325303367015807626355109938734624365412039940073837409040593493343987330854523258043522170104823725868268949793095394007888640281875542612873287249229557574297161275839857832716846457494167541283566036010212675326806989790873614062718035637969244210410315638307522016319049804885140617092090277025649200844321075221109529259478415813854389695274191775096637627251726382447014402593633576334775096506114941892241635309474589305951026333617658528281335226586931835833037043633325355571155891308836161580908842002321091998297342554328359864979905580468962067162708911303648650650519774882595356794848650112662328072251408234440034164433271552894143388709170620822123889107328351871565790047071697460818213809001924333545880713269014148194359332613020742681381068179168645255766437649463588627665341245626961007751469531115849652841005300837922172886826202957190276937438204445675896863884909156232418934917073645430571227170686277960173072436792849120320048613169006307463244285969433783881944994408094966825671935832567745280896119393981552068937906593039385091988334522108497908191804456143941961670576620527598290741711738188578562446871851481542139121396920298397523685131982733169585756742651977813731721908995742165294322156739504098954311719750444879093760034141109855315006505518888811991100386776061092538695470697977636307517048154513561934282981741274270597688640877242081714221607418723182058018825011580250229277340684722438338822609093561698740604522254183444273859668360337376987441347988392724040355325204755143110973472114704342478063286699333427507355830237759526507817014742090708546822873509458626247948931987173032138687475728740197273150737888783467634139763473216290793485774586042830982890778805968112058207696899607461239770867670678942882562469212625349212081407057383452119492519575047188994271697529489254768670184253576791947458417414234988830480248764005489776410800527569861410588775366900061929976032950115673799785695837289269242833004090956560200662935168386837325669042575746140979761588313203133384654989155185581017316144587578717550486558613796758633021465130012217539133031886887656120529316940009413866006281062380282062692882505382496308921451098335196608966751741252265969139508380019568940354790380746805001501127119782738261223173794559708091179615389557067873507858941755056393265116922555753475934835473085844497715249174282207364526007793256196200529339632236272225170507780874443070809356132953410625118555211050854114607926782218894925965469335877985955644071591321875099463223451208192611327863280550680360448507987557033641931244816164175383573129925873770520171190458855479946720943647326261139001407167395879090386419722109897042431848557092071696670902198387755054734158653494615953449892650939505047854912846012766876565278630931228194728897035645103889626491298581142152614596673686557002854854872960528550044418497886806365739437391054291669221552675382834651467448121897623065493269335479952517575577756634902795810440696821940684052509937269756961914717959267631438569298853567786350342999556568874408640824615130102536602861892512142963901627486484486381794411021386020781720593289684083136324141200567844942031242200884204198463407269499262248976707172526258061867925295011574747829864211187155861797886215326050221148122278801831683140217227451115197003676017998553776503675327314177380478847602914438552041179820291714190055224878372481309663786062885007703420076279053587648677196296938108637881968967010503004100200398823598836943262270904382349985213170526181689713471120733780844776722381562031115363409551267702661375838778685763676749102283555569422263017504406934568750772572914505449998721517414650190995497050340954371036365244347409549378028530749140439502059955102166470794505238009492013864099823810994326076491143056482857815913687156221088761599518067071960004208470095934181738180453233001907299793173231535417995187423990172783967483078352629031336418853991715945218603743303837815054649169897442180103235848200924849582445303088630218245304682749135243755976842492209853877015353444731339450626937589840618856836549795009875078796011448152109241380572375324074881382017822579831035701005853772192235221928245148028134495583256219657184263243898260009284570047120167062062530797848015940577134128796387346443948819537710104257211169038990970024498790245092030946422089927103869976159789942741539916451713232384440621518374956494698085339213569639549955915188861498515371945804227998328581118761162649120283624698908142698808353882314714889861836311825944075747686537844368543686801538510238386470627302964856361683962411816409050652999074195524419203211230582576683094920727153934344639317813292994987575056434795300657049586445527044616900928636783738808066156945097250629194660258406988141216832796648561274438703450155193767832926431661479076453388694179434078691829048358029315823267179097423962328634832287546232422099691502711470769070235185472519783855007228972906036444169005939700554680213643722060233244034495821532670176323759681236146297016368035674595516850739507114059367254795568423449722463921781491407923612650890204024065745545331066503269876714365737018924995708841647799737122328563533284042870570666308831889301216485744888877785167498591399995863018003384292446367015449688410927163666946308937422903680586242092258328162219204550624347731323535713714779560629077656505318421773543220736629916829889345012605291415496965574483269653338453345957826247001633508610610837896264280268292738495145019877423280159040167563846286970925529951251700973507332509726594343487876849951970821344537555184580887793112048806544727436202705918808631921107756349793794381114967575378759748498886274156989829722190710979350839777837870405879688395057169034103165299258112750314754730911389807414868465462535828012202771128853478243738292958201066084986987912841352866246936982984087286710201749720092770985497051696772335840387210029831851864639883818402692743638606042085494976808514025577060130169356216870413852749348841846984315121610641678605753552108695292047319631141782773408743201596615613365741654161766722441787024285146109780665507993577136060480824376982795804578923464954655607132432881584910821657101774445627897168880202284394602334412582969947440077703895749443295274905629127896295947679484912622647466159840214456353159738613255599529749652209092467762394956200351245868705341835968261556367677657804293474424612257331707006109943328972620366162877748158168162807165363843838832957816576698280230615758288600300000684396665966209861753599057529010041073782518510210128198862085125950482669847103086071501916550958738014064321489024641130428788023871598090869599495304441581331153711948828312616359599308111664448915617144468894620524577517337009092974906772353980083372414792921526127391777199602994809214461948386768551015395503173478831494138787537086243521301936654626247412458607815795339431050765399654778938428278415694809416603045666615083828175390362129225495597783552389071378498400132483827883594664709939334877226034414685106696810812825025841631299622127718185403282775392966249484187876508893519296739139315110821158555712116545688691325847688184862647574075159691251095973352199841398203623270516518457330745208989044207377573201377679079217574400639569765874674346178713795761384000435149169256495838136380301214983726244977637846251564208309795022096642882986088751768699741862561439048847516198784553739979021674562611503482986748037791292707933517662603444604959725995034698696156994595238157438898096745066999260534667123777023288199157381688075394857655205466052386980617283024986434457225101855311185547469766372265338202124363529775447416023972006697897102506143704853165544731531079434660563893045313862318919356686974005761534954510440546826440111742550981001450582746621275385982998186066731153385031706255419295713305404656461086008762079986593931637214308961041564962643979029651845890114354147550366649000451992567924137458844500841958261627164950345228516750558872558861028444397369944163794690156077874518009566418834140729896529425786515931156937085587192655087022190243234956304105025408301418572793266953026998165065413629776236047537899509078617976646299459321954675650370188429483895547632318630405169513046511787583232716513538338934349372428423558467633905216209745537226398034689241421975672602585915170809012086579072258422364963091934937932990310128677356959592430383717472532138879962831833701083730455659921218464692045757914790919537097256581167841355528460184542824923403841050012370748997874187312321782978160568186203717786455993092353836035577287870213686138745772410979159093299968545458245060444296642467523176544107322072879239328373993257568997147989607491192329116521281644690339549473355273436813572632375594081715582981833611671850652897011601812676396619761244865121374760581771194340809449902900202536144927300810374600468828216073118113785408849701894288568679273620850386269651747103001585136449670377227109381674499962356332106595018903643187365291467899358825559790255821279993402347705721731259813231868800964891446200446552408156240336361152960906880877656469767061992633113075290851417396951169367681231272970777259478065522756406624570219601056116024765569669902412607857435172161006641070912938308953285610972329408152010268562690611795631707966162439323435279672788836813828957210335677255538554768703112475641586150685535744379836340470989774279886184308396969421317014428607083772998182052969385358597733388653064507558684457774930158294427042583175287025842845016546792450945297923292102030487662606386016745759552823580986574450318662815892202314199385179797538054956528255291401403884531735881669820306212114453188858574555708056375612040038249984084938421066043030793741517937405303782318770707769506592651626372992987544709345718512260240576522714282022765882177849315318928485834570832568056955214718199742933234713623553542298819001015804949941901202772328563088650783246989817796443653210668461784652804738206267227669651749244035408176777163741199253880706255946868487860677293487429386743196485796503359788867721180107058453008659657404515728651454361013157091608259165060863308741017688705522200681921608209396990788551156456206310786945904740774288293144018676776215175967544857566794087758853813531594502865448107383677662953918028122165560894204055352699776460878036665313016916761303489678273163255922675144729311685939644007328212009425773719476644369515480993665219402120098838099010336085943696225828291717851388855816173558628967878107696302176328281110048100994782602261559568274449888032216994300197520088907513685085255143458256539155937827818154178036519419863221866988317033748513297350379681332059465909246594379236838371874253227285631018536381703787490292772261115032644480020461140299251938122484206624084427487824445863503990116735545607994013011271104478962716792629429991542114913736735392443299120512467231477171132736458144023487410519243433459233309232095849294666060988847603410738026259749365864186528178061618991207072122742083837907739219605369744590795083677969267434087338679861551619692308910645163789903477353037321132487165498007504766806713647690334963311301329250579237805056878875825741370974548071101626936334242722600336978602424946677694120931191976839787608625827075030282784711690681399392093522450660339177939153401247005498912565223431077997785018245655472930626589568382612312365649861831725013282210875746940144729977789194942591283617289673013091119886569835043576359335201168165327523600370501216749826963440826796081636468997407205637589029140789401283866395171129318027368627664011482033644523518502405532394313007239019310830042333184587868935785544750052970559423735044441902246946758925497316064496156282034572356003763632395239254475248358765370827847948888619825910998991942830251587116020316923733399174267102535499537912808324211964177111530760993758524607310063449310376458942320442518253341618523411601813790460595746737112426184677885188353042195354428134994376497299383137764161607608925540896106953893661920299302305844593978199684749241442357317791930825849226094116409237663169930828990840833906740345614417435725607762788630805418726444939062704828542517095481066463082781659244340813951448994261074948867728852349486215091722757524594600053826309195459363793598749429022274265252894425317721229454786547127749898858432305790341463316100043320275335183039445413198808317457519149987544800356735124674158719465220044578075739235458586404601074601991392303216623752554753901659786036738001447088527640893329273190741783296382951646938746664550232737066965752849617124892070524088096632011481970491247679821214486113051042626255782300293798142809773299054017200174221993615112999064909088789026295767850402110534195278678612498338611761011841629920118338279900320074479159791971843139441189261826177974974164461148045200350864703718184749722809188531582107828852032071941526410420621098363355193255631430612719367753509315369447673817289368541145764392491835737963545306830615136184912825670640958384346089056360829244010635391145366434073905412456264172504760920886008241461083484747116862788805236092298370315109181131352416742671914239550165162029212812905774974336650773368965038321116026921533004839938333983714245608519567300640969413722540126576306632571563942832236508176678013228442315826439976447079081698121678888068747323790357675503976358192627713227909417486954948855081231055320571372520016782336257174055859796991855267251263566528390097776167169015275712215515399906585354899981896870400058900025855604498508830268916312700768281963553660272747317827214611062410591814063586334431320426311312651719255904980020973256791433943080452064526631653766668149518125650314816868130235307670209621142748920486287885297230693860992549691531748582016507740381580810098868340606301911676600563573329898251971416927175229605020429721440745624305192756175681861818203257694281359179677507759915649163152773081979310689077784693524984208962611127639629734612886347365812624711932785360672048374577276566553996134510694385125157094793772825330990843781060018225683636009459256931776115430853867412763019053341013775227536330963147074265064060794485859897781347755774025869833786219311507050770986840138737048825739054481509644547952240785806281125343668271239524453630502254856640373267282545214904330376273835944741771484314337751535853228297228297059235588806612990606084011603318523321060759157056860702258451225013198685490899570242272138623478744576668982782649647474595869013458847521664605065522896685715836056454415146976734057166656310120250997363213727645763451667349227910819728205388831952846685692552017994679603323808784614354713991446552793913898910371033420790005301199093027060383731258030552168400792592469303396355630452459009432709611456492324980071554837687904174148787269104570782937727892242643737167147113959051908870434241604147204244942348253851405314854400365667161826306045381707806456718094473317709621503431300276458632533768648346870244730678552837482808669030520036849728669252428240639249812738018197666733900697516763108991128695130332593042184525426275715769825186323268742156101371888850219674714316643107347586278721898460454249932278630947110634908188580594889118338461424252138682820874998846801658761492200730188190782516166765935734487137158120910901671169402740693406448424541276354129905005237953943178241776492899682753840234689084108887801335378677427773801545871029908717934394130750236578847859451783188518502910436175625946162829762489546857572854426946483854445159638278246552013115851011273541369786053431491424907862515349492217652756762412014728147181036078644019246054565589000719212003343280782062760187906218249778980878771958571431124937729847689001140231725517476874074984872200413596799550455531457276804011292480255980682734216368476220533460706116788937419417541683391797585373109648659424014045475789940924830589642382570222458124600163216127438711651682243288692170589714709768962649359047794750273385668215568330727501820565729899277075304385200115628518665135772276035014376298025976626235523712836827364468889400795198125744707041360858306596936920541972463981381411179668391966685861978259187471169981926292872363244249452947859970007028450411496518195642439727999430614294870500895512445413460531535441217984964730300829486478324955013760402748455450537798196847950891968820044670990327753954537224996844028810890602440761957132598573928536084478786943518461777446750884023941723238157578022966391465677714290642210442894779781747558006779163689316758016026312145945466001487234152522724744143781400431608042260686877441617112622232958511411106334145098477073819373445024079649327485066962271554006061323691967520296286421210696775868438315741817374747345489359962336705039504443767904410802705223429149568003785192469712853862663801441023955662778005071235764142443822572084623429420623584633354423876655744523972478289915453293400515154672826514643262200830361328031216129543281918267438356281231117663536521968312631026390391649696237408016104470193957863115596383629207880498552957032976043040053994929908881573521470933347238643279957664183884155764683510222876498158691874129172515755329003924756342416979392871170656982654648461411512469074023745859171533036467699309108918044878897219645047049407273640089960864618926702405006781898675064749623600393579124426805548663172678874333363449502481252599433642258178707258846126442560398285090026383170530810666039011367345517591546161003570623883464268762709024004148251134726049711836909777300860132252496589972560987534369487812599703209478206128750881884927281476591706407839785913577765734101789504617271636139053538816210612717988227591697192669829525133233315368649515996542678148907175378022738865827288142884745234731776926272300207730525138167011379353388340142986003787047002501223282697767456515138481611192675549975765568481113706041274591023198969506341228031826783160972017232186318095195862854419653269984825525102620324687103433781950184393554806018302975599785779564614546113413371414338832727758441809746082097371129888198963744428578064001569654006563597783258393251023221437695559806056119685580319997346444432440699477190055020309452682827169425943863161311994364446627494933459421078562432949625644123041454779651613385823214509536763733193301680474174330672671369299511568973865143778753196426450160113920064434861263947639577293235802900970806130392076501306887044272211107422426293157767397273541981894765297262740466840167047386883362659531024098099330146947347130119019754015129764173701464193510541657822119382774619226145308750594340246751349960625738694477819213744197844883864875248038556138489445052743731435146739835063344681559923573739829998053298466679908481804386249733910111999855834675584381870207393050714058011327655387536413475610566340522165615749635137301638592376520723980558820033811364350596726604442924997044493574757401249915299133786192217997743098884207155503614825252770137390590844359637848182900739304005600541030098088175939729112014622418668553501246305215455370140045209578774534049333149847227778848834025385005664265061332180402032475812347549586922579801853627015019104505298013199177942956560442655563047840417519876906215257661104028134970380384865600672701768932764237054608438050020501041346876769523425219288224078777334987105558042430378188669841905332813914653860323764837507472168279374895631871674499412338368168910595910714043140650560435828886402249176356880164609444593292709905952358256854374023085401719108732590604597800982975084486527558144026654109420117845365279479834401936681896332098326464797630128521454563935072680964970276634348442827728061838481848593935247076401572574789767923822407121777458665975720940705837748636994462066090147722196964034905985848513192963403027858878158051292906530243359707404352755006004320348747708761391915523697339770110626526467688562311259179116102622158148358796593933317678423773408904806224352541378609429559038599517525725663690912253508883398088377270553735374701232560416925587173405135591648120041598313529993141856651126080825879233045278460528654625937546511231513740113896789674734983801964939099199030050851065485983222675078526426749400509834038032147018225728014313599086993386484386379038051458850416170478577623016646025604517769797292401776775204507672342862823667609261549373247901358293318063668223975144432267425638748560166478167898601718762561693322724621451282626020757929491352776887281547068634940264472741010233810809307076719225396914769831084924397477535453405565203428850832809972681068213667252470668254174734407511165961879006804248314172537542862306683543229136263623796980867753832333000380324244918800195490662517198888037619224445662687447394259706664767278514837127769808299271634273980769225555979664525058282494522334010899399853942724109253529200416969584810870303778510517140414354233239553031910947767603936482317258460843035759007692644362623398248705817139282854077307657451684079762433319273151020154909327063537400858359208796968914208320195707474266276709596514322555946841203335128645249386657014355227349794226124839407096436407806151468430770817930545040544707038391887046814901770812626375145804926970127972795348563648853520498063423808508999051543676458540941545609039088724633048395862319045238717424135084347214028412547576774099263973592731626947997274765835739599843822949175199248188145384707320789401438183794826993098100035521926279522984243781939590410867858423162015316558301761173001041402505327520026397541957232321587871156748762587202581208029166345474712315385925229764334171535585313950629088632228695612287331009686839051990561554553755581035783125218414235243306850246286794032380787097276913876391842568979278752082864650286986019792463180831907355225664601723353849191016826272022654451165132615667260661600494894658341565035800729755846990578853242471560214511809735223952983909250856587646213923384601499889565617836197441333680663856732071441024886163268562592865957527078190092781949864762267593883712568145510268128675876916054190527472745328799490405287866122096707044043425136805761242564247766905594982524995135974298722615270803047832884853673716090782984853065420346345996710838709818409764147161541923271111128678872785809295435088966314910463713424117165323260039886239444668689884518933003631058043563037967993444969351561956459140840224674716808915430007891360769347980814873527590532221392087793156338074319446167030511769862707396267359238342072018789512669893555870989689359226955389725001460684624340064638359584299204501201847030794113222458819322063549344030619106671215353586350939846997038489555427581674606417138504818266181580209014145497927834489585857789121447368291482546264112316502303354314319601875040032912870109455002359333360711752847726141138065831511188133502272309085977830032930961206787089302466007861898364153044089178330830670142909702612789274417094930551767771330663937857127137107611162689725641352715266488133927874845705038764168656126553332924254448394265027760411936247324592589212469547182154075691346638860793502544428181064516851336809082927660875913482327944539134199788483857864363341367772544542159933925582769137192338004625175979356389649359746488645572368603020202362304192968974116731580733070136830928208058623512287543374998926658126810650227265361541549178781397181173520006104819637238115844076796964962019179778705386163848722070620074150591753081032025556948766408719683363855448242475024628600189595214410939713365761789446412047059588946271060685315906169375011869673682340925567784780686224997418897112954009234483531229655078980997890235299497699326968910843178316943541556899603989357044449642037826611247552223273657603224313045054353087134375696283985532023668562671915534419358491690417877046788642038421308928100100735644254621416010350135355672927711545632088599175649087776566935427088780099186721777473369667418497629919993025651274872885699804820159666572938930785670160839604915922373000310906874184198656921963528884604453728361820066433597353550593398899545275277376043036876713444708999804774191110147438780173324337324683944464418001296960289252914229988427935647475217654834924738147507623819892930317840755668739089807101736484857649463732397837292336030957606966877747374027377532005709599493103075370598046390023531018741315942217706825338580292934250374380029812856599969618401021101618446801938306643440184528537013020324059678067639069210012104776420121386526052418446759277954438175033160642441257779064683926906535605957578302601019933472769542381880363746255109678355635686214708891566394281135894678931416785157237560639042533723029826372164798704318079187801056640507583754023847824299322140646579649877043124492365009104026160723342399342596228879241895418861466944122431645232703497584599370200407503422328778886440474015383247541943204960097986055829277824213912192383951439527138954062100680802634110044159446445072912595037088422470600631567822309940996576043294224690721660361213492883747666062052707490667627751843821910541330966216657767701503595098372043039314111420066136908007379537429745044698413724409313037483834004293210530622679602156921019559382474406582705932320754861535464240066874971526027779531652571084196962138746374675003868412983024501008640402039581114010425667445322483572962680093682064483345147271220840190868770116610290135383452066181201912576435407806543947456655496824682973060120626743623367760492859031660236518877113866963587679080110051309106438852633650989932166281539713563178857366315405361719305938078307847579830109898755214156364756051683727117219096740184003959113627625370964971433501124560766816746587069189784972258564447364390565438218415899517279230615997884532519852029450694002408432027266314182618640478105854347392875449728492664526008939695656719832625409879918801775171557289097081328928522983124445397246022871693160478772788070628311514035190272236574749546985334336553030859377125921755425082356038866330558615821401281799789136307399674913432716464173685686824943327859935796829766835981721916111243751243296760540930776295837310406100897773816014980145461935123281724793468593667364106287009551033705286749603433450811680128130014032992862756298806926212379336393631144675584146081132366938814810775551663624579027622191862322455270477021861402544945642627572504608373620903258242506994774037328235690836339735294471248464500594639445838813815728968328128476843155571438308080430771093818478713521919933108493233237781780856331240293057225908819988361327820626425371307297992437808156521303086421636182198783481096948359385919790534917215390684225815767229023746076501391024360383795175100766014777596025923204683260692753885498763170569139400847851745315354821570727234741361126692191213772941343618501306937051137688397383670034333868998756419915339547144663669494458422071961448857405355683253024526637510880213834138993202079168433590123481254290570297627842725470313636703362170885242831005555237075080955319022244623385953251259410703347331891975135560170733919023451118021313314969858118119466363261028023604771167024690680272384379239363743243276652856804305308220976295603545637610788203453553848695391149982625341201207749906720325185787749440263691153856636856538226357112116698092108178381585680768533551936916612906476562635870781465478792279087976735016325810225265921899108188375634305331857736016821872528015197355358778915577359648435182246890862424869119588691615893253393068493207186405726273889034868365955723382309116894591174452486266520981507726608463803330190453915465614689722565995650556187392328767894955836874212937827207716823090164279342208814188228089466711375472996056797796797783653743119375370448351798938964921338188542848573356667635171757327557912649958762583929832410436058307453380457977835984719220766272392224768055749540618020129010201465748948149152332473209332770605779553329024283226326197624302939996745676391449251671108979376214636354421330009685181033862207240171114845123819016012781418386742968452431361186512699005824396120018140770249562953893514357021106889555723132234155129223563932693033448693596809296165439879486640080851884575579921866761566876807692968943970112898851331999742865579241891105820804794425418626802126871384320779608659819585321091790698183270514452038836550134681831187132577378845665568707873196181671755358985985550276547562406424298673085058664627370195839414972320340568900893439051891465464092272338689582523778170006018812306367763223480172179602185473898806268853514147088504262068938989321230429837483802500765503608566222724555990533179314117705078978666183306957218298322762919385998939419965230181588378306474268105342601069767344581604339053610122019975851438256949182015907070138489002383374586245490506650354138250515355372196607964896876880759019303992682735563046032204320268315712177555999238561788558312293145738370732659261333112005725477573610707941610535037046363737218365917034567378692719010663478983596561613040495106593189075699503998191932231075060766565979938135936772898198434540431708293281033492901977260298087561355088042997881539459410391479005827646949492909721634848165988136565367748008482444458294190217316749344344017505757515532973841237743753294946381053777710573973605366918000112394916789751953617922790943421137336990893662674363408967422055816779695753045100951664339771226833279925152148066866098285482179865255280278631499744843938365028282062638093122976185793755198730726563416736562791777436365329541895801133035350297787940248783537736558778355781595343610619039682782048986308289585641554469257892683582817141774425819641235049262266878839320329767099906010498613489431112275926981524770395311827525518155131318944366949017755564365523618428759366261273667055890651897159355401900337914337645708704940780685600239825169063763756868085862419196842563186077170162178701328543051646715311360340680546044182595875287684047975486638440213466523460701034221406881104075742399228273794645828139975232802600511122773504176017387715647737929574306573292790970884969801056551817213696316347269156214973832387306752629149399589673958855737890564856738563432524716028351245526792787507228152372167177988312696923980185621058458759420677140081279487914210587768668378788464072234209695126800326444221256391337742695265172860127205996552513789529980741918012257192588316787397743457941284092975154840560840476298524974922382607217317462914475394603549132338683374589378338436847858255981727090421051462007690952727510277557800890667244092466229921132582589248016764668143095816214365305499905253042601748327549502497011715619853392023440440246422301469009126208543505494671929060062466292427299593073756718093730623047010837395997744225149312068707580013847513595103551958830292835427456463619344454943045032448061588854123784863751153508868578016927625895156774375664703685256741628983055513500642632563471158787078879137584100622681247700011455789769570054862630208795653565109883845983994316802436760476913272336282265125983467758419988525753344218855255673222943363809926676140411265031990385355587395135230865820987447364740922583192314544169577011956642636339981656627642201323289275812234446390364413999834817361114875697143647162070878019031783323083400879388058709395027894991438157152852842551879374904601352482133395202556052680244109446711500109430108059975910603441653592283066570424005694990014835966743476584909181385537140281673592368446063794616408718805394521478102636880327240142087516863945242439134119079878560905122859146196653627545468897994961700365170807961318555619369987142316671171282796712042409820628853871622414357054836897965090222256173990080969399256651446719114022077072988841496257738196600407955406629755368757443754762419019587585887842885258692947259419826077541822135546055685326387390447688555138907840601792424738095748756971674436724830684514532167862012803782970696960619633380606511368443954760119425025766238269536337776681670862937342485723423324935905095128829712716952528738988976324957469357838829655668506497238672692821458854093822611525572832241750679643810548124694790398054252589931975740363036624550437564802100003724119077166626098049546228345884204766136469438886470780741856450336739687878291925258538947745783714597461046747728041241122291590600810846764677095058652930541580449108738383918211361511619678215358167615262921291670808138313194108428990156303244140541425493863133076418506791491568104012855702105478316116329897192237348170755737921359729855886028735696706066066752959980578155485276161447712444858291692666428120986765816950702804227407339941598635963091787667911463778152504213460300496028002835146783823388336193035018633834863918281543678757420384950614788794224686904602759839501376705436292282357930105256258811327467234222299128551657023562673304035120345872457921821227562683633800089205195473257077570957527664316878948868464539375671024363758168100923453869710964970128608856630923837194341910639465051929954470698953473922227639888013089968954318370169727413881326643232809693628418509558630656524516056028620213690950917728443091768899610662326593309484289864034153931171163087552590786462923674938655560977010159306487021970187198309149883170200002570174286851582321248842740714407149815300060048271794766853672404628501865644523207880820651732011132326683787077110225106763847725107497949479580413279251244013306154584195947417339746988336586278793862859561065585094191632883491122463133361711389564941855811209578048545795720091506973456149918989974635446338643636128564841475971262994462890117410523027906210172683338861496788693574145480364708595020292985201784788609810243561334311268377328574692974659055356904005951429035342568483901377625619759296023151268003768141154009691576928473757222039551502185704676456753309395563323653757293576363439880337319550894229667359709311626677827619943658219890925723360707543146664813932660611965443004319444307434800968877034000015917152434713693991744981257129614586359675022023850055660897945614844583716580695231045585504177546463209826821358986909284874751512597057023153157187102323720710268954127707275433668763682170410778382791841039164530147811970796242804525177992559730238411805486580698219808111716662811575560071210139108507221804299556290441413995226936386425409022615728194460523160182491383950181738850834817423914222407052365639349716818248343476553760400317126315067640153437558054793585553984705742827759343181736501604607843565587952680979019803610125164881821297455160142089828358145053307325434319679355959980986607311371087544462747641883928053401881036368610864235107569234081923586318412963374468000176101583522236573164998248335312226363023846171383361227830780629720617194376567756994428848268279966634280360370688180679330595696103894112388950889268608692949248796469848304679291979801284079063234572769930529640254314306575440904266129095002471283861769503447404748957505062508490656467085980282833720271463692232411912892037905761682204347334563537477982755320544136758470278421086499384054738979903372323831859516495039634418759459173078701752776254132837156661581855504325833105390187908940178541858533974385668224552791321403791744786766708334034242539343136502571375532941165813902780701023579871143416081865557948942511966356778525405808231209240910095126763754599009293788421746865964303971919939114506526324361410378616914184688703357923126980284170913193887527188744955139877225979820363789506574291393011933207531405339996234381826838033266170143683960235963739840909732514459288667356385866756222262438182187340936021982111928705735431396503401719886560276833224378600810347676255136061216719003515272424036142256959030553305908394994407616044088843121996468884015677179317535059012152042569865258415012479177599150749332606939770368917460800719899671381962515361509077737285174639429160186909125163011580411610755565852918758269278034334163347104812307706917836564929796106962531818389105590094840238459806387577112645924290481003745226547652820887964199089471545726913005598243634999168499294598803974337128368562871725768056264488643739421895220891033232938183521081567982217062751001460515294524503784334194958409198395591169652632563665409885605572941446893343226715841078812081258780727897625109773109366732497280087882369553729549949234695855336032117446391117321310741115885103821236676829912222308175576215877575552596064729755169072459979610134726988094434993316339091636433552328171222385136980819112264477593115356653212818407128359232675954334523843537110693073758619756601156623473935750128002523518010560248212932826295729536576979558637500133130361534101730669928907853501118011381595533263711708571929186269036838622940069125367706350440949895051614414011507474130478022184387121576177935793434682530989297291816067841521414084278650561537289233757920559150447815124071124840143376617209362499981999891922476694150546378184267036760093676665920627136918329845527371216657479393343443245084878314151428923108897248283994201946128135893069217496718506323195614974244915951062714774455225940748792451297848345630423429513689527497465452529021425929390919296635944814230217131119098229899178362789541534344458941038273818464153014790394579649865231820208642615803404960540595146376547479619711155202827499828509285806931397492888094175332562826369998567901519556921713668462173671026551596225077396575816143543259502699232206076963017863612868636687744929331552360757949014538508187344214495614488473422378693772435400288855296776953142403734581380830296940335408141971453522455953187810847369452544735886866484363924509324741802726351043514136639161862589760969769631140185631896350686536863123148291274115682394341146999845722862970564721992054823777668062282655630870520740758833162745949719461604297725583971325362006535197285204301839260229472418962050502105025972567053600231434591193368270669692721547960682900421205958340265558869990995262315082089318653251481757292438584489275650415272719349797237439947168775771286063983135116137383521196651121862458069265880126841155868093963828260375389753177189262864117297045790136105728239964681221911263759421848213278102783568109873765120158856809903126544206195699715625156508487187774161297154938133868278895536175106050364693311852797846404780325437780930571667668825026366401333110010554615876458116640288726524337329640019035395375763877234312536154383666988177884394439873568125370893318001010738517372356820660525814742789508029058375070357677902380342454983900293814215449936351325082939983620025770858705752038583940664201224800381262267016515800027125685084987603762297542696550121367487951306700191324601799357642193012805856894613167303368465463759825946881646731874935321551219750246343672183248740422669520838563849573535836683170013096382390790177742712279338734038679735000579833976338374023950261517382678268211184455181381630500014103274748854504048100651567796602771648218406723263752088545064936282561943431855198341045451444983416321741332238665524884586363900662887260317236927994751347677129451308137123029658015150419705467952622195773327936113222848363236846999729080847149260056683384175224248431929605416154518820707519352033818862058746381185995961394768268479747409029037475984972076505547421902844042403240193526134643080078250750788742089550219308843952191860447619335889861338689464990552225439208812945117102232547815593835085975566644007707002643033675202385585948314209386910383034218237699049762072429955507792310268438435685404527420101069012582058487779657298537080951968211143144204070533446115137489482733061087517444417509056659170968841813546375056523278022351528243450191404709279819055928857388459471004207678230477785754136654973502074178387971521638679761083132361494951169859745908600127564061187526050516330825325504369423337808020144532061366781534317284824612433941665081713316306789192333149318678726670663014198676496769527528264271888362408633428503109471262228982007542881411011565596483911274075201903833535416896093011231891683848517615685715658001846327889709118341190844463504904949933062323199145856544482228723679576678462780434724164197707688662190849676191191181204078775025582480961799240828204538071599943327198455447495418334217548674210919697582268674541339661948295313948178394873477114792999043190734677410732703266497068712532640249883789184943278046337881873114416275086221430092276520804419182089977621895744316076803790978450292027269342190323626748225552453757401215102751406535037679476560694614327099803637681751701117287821964490975434120568754573378632365099804450499339864112518406143343267379925331732887658635292050555578724312738357865910545773210555127729043497789487043459829257628117051703461849012807447512000321702061883296128405729199361348515985964864777128268502611502847001297133423637050214193984563874363378401336204292505373477440664137844806669891359987967590615876026377647871234282099501369321871737636518199376551456383674230235081744753179617376827180603043022687646689984666262576598945352999806379643569785529042016368715333565456693754687797571152333913832149140170853775912647119469983621803654300801739339976296627481488059495813948266217065844986814268599821311275229283069694074103315213805374209443860345916890661593829231224882256621847559110752888407846983189893428688671392114686291399044453490231804018418110898886944363968297286673621669187542861119241409837442117806404116615798820614373122563740869945230825595556017714132582223565811628276861544365737310651774077991062326329470120594358597392198258361261594637684322985490533434171349747494950339487313445236224335902222471963973037697736180537464172336783894142311115304753876028133551468292290307762987798143148416165580630418130490390859212240472770439008102560643936564977831125267798959068505444394386170662254404382154416597985914357818128244909286815955451315768841353871554404940123856050636349350277994701721812846838452564058023403345901044124864298629060812475676620585621798278112486110766294521785652629047895722431315389221405151888770857542572411231342325198147026414073732687739649853003814209465079496548345902917143457681399630705875741235604953193952230658784811251500154253519701943318335781999963603514600925310157970905059059016357145029117746531146501870419253028042620467397306097536899422756006649807768062004935720827262109864545022910699449031298744259526715511984408416941664060470556073209583058176792117890125393321570011835453009384888591169105370438866083711065761250352465580211112620196731905770576610588809764671433490782845454397693690687145735501650025051246501303323173357101587182824866269219073616873475890019790587539779823313850103088926029013743451968225184930185344573147840415997802605458334454766997774371874192230920997739596857614669579853739511133047471959355713206410211667897028518268568274891746908803828575719015255252512732290650871069082193598675390570003284504128309077313413945719521130290676466076363751327639019663457295827143865730995069799828524158448714951826401987375526437143912027253855821478705882321242448704241482014829739961036515173412289841496168474064578304862301732009924429773293363652788373774724526359433703202663232394430924390947106415167303241124428205724163189339106946272929526363493101401695114222428623779378652777230484473642059906766172585821383484434025593045734347011463471215308763456550170413626205760493172046325949536301719023420172160923242459482355044083547599826226347741473770779444321256860122942919079560562852629212032166625994432110712083009746203915017260543978026222728162295659348077292569902574426542930073757388739485585503989956013158700943192428081312477741425453950699730896975121329156713786537571529137400042237302591575865532275418144433396807424111469069830339112410772964840975743380451905601787158089537105343174683019421239927634346889433328865114624131545845280572337087003463183678934634795190067401703876742070573736096364398841719689026015619834271143826440497521636496658961822174616763345027978531086020520185619646619679993587647604904502066545000001097389312974499933764828988118132139778724423701046311666290475099826918517203866373271139935150813706251890301924975880856445738178803578761277757347439441150672979689969915742547192140525475157288633752042952676604367527487129611158929662899047224020142984829195910126835996436408115647401381206994633225069690484876903083782942738338917043774522146483921827929570691300110569540219858581396792927684735753606121733442217581612544823110195984935357176619158020866717776808563421138003048158793363255420268816361725796185015516342995762401919586460356402037572255143228566273044636935806504981954431167978500075729592995395509556065970223104756957907148476199776704345362838302820953693187414282387895136761638460194635000892422625806585689126578407594635676925023578519732542533383576398614564065346751625124036952563565450613099093068480053114772627420386819899938539433189696329354637573782446268356138254635025797200908479941355594303849790951494544723234783710936539993597403637675876006628633180054784081634434020234076410797226674281678877649136841455046044394307389027112233915057926197218304964576979331923421552055886523079398722360360808452838029156077023127480697888902611841144070884227570405376614015470623611840348945090406349458137683772969649733747630100695362486708842156243410214834777004178836303776698481339491813472682170188687957262686725552424765745342067150040912153415848468232984258855339017617354286808245951872140859605696063376924362429880167390569588049596789578132601327146625845396107859108191185585266783004819487119263745114157960212405198347281967491818234627326985330778249182234083261812536602636134159419112568468026591134161981504705739673856918829965324851557925063893958218129710410366014996485188292774383147399122650691638077319690522343473403415663621987329234798697877510170560380888655263518514219712769949797161392498810687382952299001372330486538774305604069841982192021635461825645658853623387162149375108940813028562463995042878508508625710089311303435355083921994144334999215692959673960299628257292747569665080433704420304769389389715511308443754730986128243236445149130113297976172364091451681894220024113625652447792443582997479132242427502862394155545758132370458557537951169523899451713687736597523539524147412257218544986293387078763001516195728272174233761882846049899247077761094961928081244639719535522218261311813141244712363235833057476732818356624124636316048523917701289240387307881516927691913173294066209626967015959513979394328570344863475262931631286750987936842543837347470414627274579665806866658969361306901729566621398274424188203850174838379387422983007030521236947607607157431412234778640620252025201336244964648879988839668228725350489110728766506213819480370568708547832162400628505927095652645205747051711428228830253736734044534569743262842483740996207848136075373164744821806099433380852062473377281003447630226772742420877068070322117071275906385551040109456592258118630518015180921872459322900108896970100523592348459648190834565073102439153516976076834793529887680967058533674039256688224528629196821750931846299008321474544417281709107198969460279333819748420791356697352486645137132437407088891918954750187413973189064551745775669050789572121008795594976397310969123882534314807708626453442139407127051884845771391304441520279266008053043937718696174400328142944785870884247514463382151725420147335185507396018622026252130885434286357832934051694504429067836982528080515722473178676420242452043226237211733155241483442616828605505342793790489406812423596414930372972745142570294593507389915781752616720698324277424128004060627298124893592531500004906495153294479298913825322342246922940896240168241374878353522491936126596307996211040576698846637488892039269832271538480604035726983533772557548436433360069561956718330572710438352883940586940871400195211797021618263055291178441151574420230973559099028367313916529672162892134593379477223321693587051770962441189881852163918754629308019928582566744337221106001116753123649527535905183588495259260100746584285653364468231862719269562209441447211696046775261325770035007661769617587896590971719351017404021695308832514068318148134998887864802160553396807793640897932048435723032459674054903852323566423998909445095748869750063383584295881294269453453125266280299841076317814292499671879226849269089926579997701063503887457637898454234402296492110947361107355585793013065936869847660864155136550615409603910700994276426702614427090955132366336370091450282205124082874996329201437768324008491911552543266394171142846824326957865998371017020201759613426915440532188646268588405260595452480846406773301990343538106645810960857148191163913465695883528373123879323412530080089801161149544857370781228309123088056746708721616676637894941537783567214157161932876177944962827589507610899878348101296264656817733679388352562965496326260436134715187838778567164639134255706354665132874835802219744612936945219133808175657131187835408725019787401085979357481634143481140187349639811673905276898319400092435243124599106770298243686905687752646768727271548543168574900015341211196188406705710365256447794484576000801742434370848142859232678767618409013665259913175657555323616829610964467449126794844018993719608921398218945716700249978317773695280464964644683209667684207850382436003426316050685807312810797229485114775499988874431742200276295537309393153550665955657706494121154363465945381070558533395285952456498182512135584954299227385985125219962086854977383838338547531046818149101289371868792514728802453076044925336621019444519285426641808378481159918676554339806380503475383041091526081335935810552006074577078429075394861625959535025909674563460511830243859285256249605096274909120105288821966979278527498789535946423127149218525418625935095843186136547174263973268769943935996737810309671780578401809712759350678147100423220013165155079981251189888108570269470091067369775824569625466246971593174714509071750661022217710124264680531786626180107545116030185863976634510344152002562897677617315033675363070245351900832120062224946550197940886386978951757350227402688855066506899450488282214644762878074450398893596182237323543569569319493968165604744004791770824597597128156705065456826479433213294362256176345538890922694286095832185364795394055721183720228830166340593237325625098073427655109675424055740373100647578581146353056874711706924265714186637568503999145560806001544297500308988698328751142309139789323097516399281826812346238364694041421394007756780412582190253961602966969140988060254940601408545563268176856306008337378552073626370682737838645099001496039977417013763281475465514212989843786195371467445590896107174645509140718476310093250361936764322699857294617144527854791251502173369412446229331271886724705453834795437587075376031172799137413021098960110007680419714573561703523407813478226573934653144462871776276582276066226067609673834354488571077900078583315294073102374984552621656435419140067255500652099825713960916416074912929680664963740232769446776830086406094278272241709592312760155789891620820220559435559746952136190052716650779210225773472386084445840479674620008939486012156893757665652711309669157994979993959084606870240346979244183597736608600356366478298729773453040855495186505607726892641672987959864154511986354156633228421719268844631066365149713703578646956340025774404264288704510380348055340116333819402638957567394377956734412253840809115705590657901346038949039719555683961321058268843087462279825329053401288932515423189866996504820551291400614380279504023404682240495980470594866385818639977770468120357629636195715791914984724858243101159154707306310712840628681186344714109603129542132246044138377658337037723451370153088074632200285044807161777986504533620336615737015041479267649931665407216333324756389585702607328521428979807051087306707174383823979456668692188168841390727058961477672581638850923016566121333912296750690522951005466936988374507424133911611875806558520694972153194908913291115442796288336139705564048714282071459341914125543017578780867377503604522128680205713361760965179526155956465302273351917709110387089326689528723110251991573821415058305023526794861792743248868227488376497036166738512324606231355017019848444535497053270708473080854776969584839826944685656144476937994480141273664135592796080788923828331836788830604591326342817260358846754310079090797291753141457338022240017328331302953698671804710452384326876416167956946376114282724113101983918815450180111013521533759277353668320080444102689850619172361343574063988200364156429886308297855233829257559296174662584547173136542875381270388191350567484927362354642154813248359445150421004745919040708352415878338655669029481250975885340152706953812242904331090708344920937637595957608894968894687065672913481435867720770839142504021620267401528310185455122426050183862808120799752741017977467396402351868058046539425184120145518301041180764651024298823861337633988930267259832729724179975933946438335085935831453910293855873531950346049466492668026903509734230019045074347507144174695522947523565920293131879532120706920255256110475715932092710647213660521590149872773774944564072308659167472428095723813210255925709637247461303726220621438127537585063344563597705386435961867677404003134458123687879401830891299819026619955407848053147144985649458779970019795635271095273803565973430916890068040672644856299621192728937164103644899402484567822674780712155423485037696368095361956599170376888868686510582475659707001185751374894198287033367898093372814051684475708988145799944096594176852528401935613104967247918470727912045366233563657753153119137141322048576495733000024963012679016940582503554690618839188203337951202561541528919130601016670503414481020489145993899110117363299782658947215964889534560848187410603951454472231226612010597159157246593851474991035380528308076337996049303827969986116848804989970671128564022317704110938113158180393586754647885769661137265993248909637889595237106736006249258444586612025229438822912619345377967465220663999246395430353944159091409399381711688590334488009390218916248798290129394450577731191111476379074632447067620645906161911934323516655977228882085676655356030293548090572089665881333922579856998151347712730820296804190481605524891580171666130685499357042691433672729015771887973388242404887176133397515624435345190338740155411333596118103794656456533632220402583953754042707746122064427758012606781968358640906698224361822199767539426527075460648715055669545658295033014746894172833032055372968232056989817709896660411449924842392265993348717272046162646703108554272934181984986008697978931933668228974325647620167635509349129504607191381642448809266017092432292054875280641088055947518661328378208582701009455791207422939140557532590500536648788796521973816265760196319954247557283182916204081042477285264671460020273839825428816946572125261130582431753732362685323641556456144641211900753510014305351150857603878126055044071497921023499490111726255298070153626362235876218655514787402437620005061802324139780396657364975367989583373723572590070296332383387397057362121744673826366247834851488929516564937412489083814303838948149388778185077612715529369190884614957818447840847523436138450816981475189256647313199701711051347463114862870791151750592523875041230065565414362746735858697843868444590624334429104524302262366128673463012355599876855897024681866437048790003236549370485160176728154398956916044924822906219636657053366563985081758373731943928750619977898771286696679515246122158216482301346056380327289080219079703432267102644681296460087364656427794462700070178627106001886379728699191370379803055409162461996398160213041553144242602526765267807822816210581014915949146821313387114513100664136139820246550661328554153594698284933519029646479899484125641513710869853058516268005936163491528322864251838710944443085204735208601283788866123396939571701517698642975525284076151972351834636933183873307210915578244464608480005290673679278257939380596966124174704995007046500473196221629327399847871343445530407905051551836076277253170635324734367193036739889397024949357027543449244217223143513446369702621117679225530745005297669118497750938123916807278451202143526243726908158328421615190426939721784830417407797280980162781509317640843120395226358849711734504271440548785241522085214527893357031480544042716121301630264424319239702213163469202910240140779176619503444572247086832128881918161120016982957424662128844421413646602133416390062369156084566669455285486168423885280105064922595224356721943060447638517148540154208494973281106660101825705148748535222865921070327309138585703372034238321898782078640871885590086153019336819508060807553333105071850499740279309072417505801423210754672133739605399055225260477714646308510513847660592326705209885531869987434051964740079843408221459064646458471786151796036916387763086732935701998150582592027520741055047454842356368209929104584296236332126150122610608836875517691289877952048403386564940216717088050795068264553397815829463552602942263684917174276793495145634070511059715793835045224357693886280077258885088771446605596772711527280580860864814638393500498129522067701550565217990901703903182844225688991568623795240737489042584105685797689734726341939396544011597170608267982441150532963492776508483910425221721392104347261117418577179347379629270918860716372147620125343484727352640362088310089564712838734097826213636050319322502131415112214922203062908072586345938212740330467912080626424131579369683041241474350552509440686664721037933181241187489497474469119864804182874872101375925748075581687107891576594180301539629246577169729940113746572908220921731114585144688820930746882458659613612598306324620660874873295302080547174720376850775346061061718924866615538863759760169226579309873563266884866584431421625388976446296690521727124245724603664365654504392476419095864132785790808608677352031092863898169418007224313056945362811761004448322674121491265406785159380128250245339648601600097758923227286609085611026507328280953514132436873258489664102417506714127135993966541283179446292974810818287797117198124564001232745994502949760074651406323629798727883310372597797128700327522146916026797795591904954798082286649657910738685707877529472550204742458470714759781225040814765495563703540683522824519491098821487404935497773772840901798733073066945879483882156052536864045915969928176597342609905554679405033816767683977780754122386223298176755719912509641440798513573517420580175419667924089779487898072653148870190507227269079037821288010359596944158688977213687795466009866725206262054231728839385519087763664942006964553986549040960934762856982746130713420204007392139109810912374096461364614300613318978045990277238447375438465829999773460838986284428570537487352410679529032034016743394432017127787190000056246363787627189993136577111719139678900639084584788379071426596627937224313591006234462737652692542242845465824366516542413744468894587821362450932689145248735349222254395082178595249536336174259191972275851808781424563566830468801989660373690491294389868626345244456506362871982419433291375212952887181124982577796605578282748954205301494757009995269768661721849874105993415700756469553286135567895377970718210239420601325085063617111108342759546137677567462205333610668921131777048722581814674148398517047880322008582524312708745809509781080036738881550928733144869337909467799446936908667933640803158592250649354420637416241116738848232216228631339634755220716033302409611658892534964039520580682230220300714891078128048107849945661496351858110831083479086072926008246328675674498425837153645857231994455892139062610960020047252686986266130224982326753674003384043183177543645194661940860004255924441575047778656594196407578390117555786452486065428396194195985993121337026774341414346645185125923456599548849352336059648443742218019442630836216882767112435613141435458945060001080081576372032567109708233800285185983417630354169176131029971984114089369790914358788173024244019851092964951631378817398210006783272476072816737693102461875477958583524297963479808509444787691117315056259737914516332082645018140669153895637859818591478534167994653052738986161362749255933606052166006945682798868060740001332180266276967893118843064301465135121393054212221028756512079174579617761452151468860519075892234376833398693865901248138110612741703306002026158141601234536811450032890986821602404484471364751876471236509346577794585036695482901168563422513812703393002303149932604696390817685876586620642368753906127198975605219722273089578933953060693896151942096236210991652203677398738997838108102584652043346333368247849238629115692361762754390380714424315697448272999390502279944140209822248767158479418479761887572236190929069895168897240174278992958983392059233088722901442964573699649315085019938937583770198991303488341022821323661829368413378975116955782574566786194442850821361943210842624696632684848920374185962945928377180786775184052967011952045100706294788521821343870616682534200095172779020373724594186712965199268309687420221328862326914658415058647891903478982770029650233843133522994142773119752929420445034817581376922006142230140083421711790753367831380707791999738312143073495912827032616582266966626406743841257975681104020180636411997452533246913093586461933927277238621485003762576669735977996566261801881989558152637158690250858842737180171742134022337793183592623659892340008363674860600899644602891945402384229183691965271373115824398603254422281872818950223690527469109054429604664877540458960987907988307123911425876053504140206698257273329737139168944256987553351531589221007608499243280874880583043881438361355382787805637941439023810357399286186725255282722519858563667585774208619774301492374675665418888972810857884764840534397304112193585841349100947379541320081242636483592811785048733100070218612777821171698945147039556812993226294466825554187059085234324759509513882540217633918729658042236464128391484711370105197659280815439489418623344303866689397207777668418315662867118272035226168092451174230502236398342405437092715551576378510505585245053981077797380503108407408882157321662036051616515865390445790012906997962410703216932832793514090749885281844885804815896553894590438925241988199880744895695082587053948714639077890011384526386564108279036392004318356725268167304228222697514395237414929307218208226772982215219558012884734593780060037672687643550968841645984755599901103624568457391697070011979437610144911060249384353117191265470533209873653907231680681779710988346379947220925941865347786539158824716056068057824215782991964446415431926296033264636723073525021648968526692281623911794199536035887035180877472667313630362589788511442681403990850918122748423281802868014794648019887561442876342369366536810866456182022746239821492152084684684051883538686158767491103275835691327584246836065137263337157626913297996394347192229415691845893157601298037390115114014762985469834615358125655726524376026922405383765854360875785424353733103636419602898564092055895209144859609089088620159929499555943059482131480395459320162293363819118109425239909563764334719263256607023527767065343513340213190024466133531315141426275744694166163640409965257029953873327815396215468931215419544594188890261704212420854797416022792313673379480301068707582643944852990822235147653951992847092842513441697151248958006692070426990523385774539357179006758514501517686057419182133468033748117121857355034326621201790439703535781420420667270213967304702069157666290526782355120942385323456012547858900041771385661147409782975580593056961076153181844901982760877135185401331507578337248955404909928578035119400707238321371843582091844271479546244126070379002599739535951130804564814790002974784876309157461243032353443343752100016876553485001368262088013540523247931935950511493243917232153209725838430648759216294621154444533353428731771613800470144629675433153140111375600931611799009641362467607310011438570000752493072783959717423821827512971642994673213365392577253925615445556256589546138809337967593177682624637334096460484411241740606853066649400285635985954961709415483913687260033974250762852919355655820603145516653487123651622715908436013457018397271346023001559082095772995891785546139374524257222290903596967806438502312471439252478830615500352206322921896428237911405017041214901173628129321491755323523600937675374875195293006420607910783290753706124760522684195706645199596488141322698120549132604603977847839246097618467973443644143936726455383532021387867471365211855889726430210183310786246226289666363381685116493691449179471937352125993540950840615392213900907569393375370156298244392350678592765459650227051756906909699196697134409643181380163438699572330754492544570317223993116347201639971432192109534577441574732156098028717973719926120881783663268160289535339140266108821648668780010516408732539804423624288974436104179392853996578254926507154140517751198225305889363197234364696165772072459359011669015375263137898739253088862090929779247805467091358873626491867920619974118059457696918952114094805442559972232905325554571988429355617699368551407117859080972287077992131204142430351270727219935618667733227169373834038376775905247132357996634680022692112234025731626821457574896800421245242689821779524351641380683552490939991625432268959771927319981282099643115573212881421737977243469298657905568244847232871269288813578770845111574443700527093959002934852648897581507617633893204719483409025256775555081208730477493841982522040471920553038207595357115240869516664970568039223673435231226011593614773741575358055763927783047692587534632200492800912269245899498427967619173563485007258272222663055078044443762989178988344622045673255755766415782807225502434278150111243828014091737501869034251633365303003879028922559723448706320057704065253109003849822067851708291290390885806429699798057510072171309289777744442407922266250134288914090928152474487983209032193476805348048544413324857901955795592898173781642129341837020947868672335935244509522425592165176754948896708336961256228177034917325403883637344709042052465677596106761353332144202184820166153775606895067367109550814811158420863257548107061450427142657041495301563128501259921770495611118569981997944879619069961430300427217800441650055633178224071175683752018647493196925386940463805583081832274721674826192452428062683876790212829770076820136149710982005254734155422112341132177079629659814992889665656154420800732049805283895454962316346446165722391148268168025603147664951582665730216442425899017808472552496129044752150307571504020275755195499207884308087817089727922063023319717389280027741599785703835611261359762770931517233352638719153162506625875636844048638425828990078629335926726046634582660072328261391364881487145549743752689920961063441362342270286336791090729397236805502441476280979945020990022624542652993513198642605660038448768320112934021433157431749336120048627277423993764262054497597861153923142866517995888515015670160477477516291148410999113741275643525408556468364167550680890302578254729282283259567968682274559376406231892969701432817618130939814390043227610466152427089051011455267428358325568941828407258157786839661936282601593689143331978579383257899825022285573055887763575393908750721464716133969291252759859476333345118815207119389919558459878254113853043733966262916347303556816213842826752254033378268444986615213875431650998902547894857266780609422238567905942699636361367655890833532248161876564115819625429948174729723522945441557542720108686585826039804399470441576792010202998506043639801335310831140799870505859889471106511236264533788441210272165390292807564815060990692318697225317782125010230245391288378981681049013364980438669068491436799592336273348149035096780531671049166617018355913683223186429307157156627783149247170601346718291617505137560089090459136046021181226993680174543386326583376134410906441841336185649735501790306809207523464755124151157990201967751069410915149187914156850655706271039286256435513036127020751265557265270764291744442111769944463590610361666535788547331867213482162944646205683172555091539625257349516073966129828288008387311937302811990442427215882468618176649839246275617466959949486756789262371177860899371607165114766343540880607261007776078104049279414196375781116171391909224418622584495742379931529389555195317373213107266992059053118545780997928205581265375768397066322391088804893854963993563584091957102889115935589890078215526590688340132440649053595305161300812510825961751552702514617502518793857515220396197737670977489081946066770580398410578882550643054808402428781676288252905975416617303414471414594774419804871880371832813699367720791795645228697685059477717592776421969460485985874188277129005871630949933993314652930232582539165987750383442176848965712182494057249530675314067586650986756046115257621361713323328959099640900758570373872425684987038298429600344673984072685636689363309162812836101579067748001160170501911297690186841048173821369331251654494456637911855442506502172156738131308944985914986771252100844512814584111800237764054071681150630178707094930310724850780743022872527220873448457245355437610749423757749289076514631452519598841844389671795972528752870634483267847644934757878987241345213241346362117011889881807034600018173199116305353889920510109624544972698048072741508870623970566483511940397149003053214870846353467372802838560903679765911219850563614637609702701073391150436446326494303129816273867971883589503801731445287679009390088850937905878471184760795620391268938501843447762487057771394375586124011982836540236312207545770286597093957489403947433449667089643842977328796441006783537634788657704376467858961410260095420065857017497378796750793325335105850391670891296505571643636692877726067371815230429351715546968683359154462468559091031697283209792764571673997691476595358327530980727881682096076903488617575611852491411225415991783355705661162307810374067369891320224183055011695600976171127430051476402147869094151296824605022674364688496557001241153683373185725559185616583007775808298177950629545021455859342674655050402177416496289283141471193563008893859187000081970744275952278636762023129475876241941304138976001653892978327198076739637776740847540362105233854019744375422303204633764158895498301218794580066035667202744638643555549069458775329970752997815515206456462964167719045600365637493936596873695616574597565183727178143421624626402092367766273953964623413656612055066538071299921059527581348215068368228834405121802373379348724750427429359088954770021344493317029904558338470789332510317489983095200266003562725053887896015309585593055711284827101336359182279255876329103602805319568632082296521118109936525150966958077118042441536881733332141513796804702053940845705713699380067066700694471619179741936357296854261696218165561367011878592307665738559415063789436630979718134704492513796844486690083772216415739195239600332624122028195425380610472809881623819925418949803528088222733902517764738524334270801666106763575680127849252772689208033886273794150554589797106928005522349004571091629633367007489439254176894209914678083995465616383017662008252936560274047032678140522193795037813409351413074464019838494741050100346005973322812935586138527704570351338099682978984950839746086826258233909124458057940541754747793407465468171788982215520319112329688666164505279825864206250876738660632202670610966174616282125553301161643349535590194378018390898230004800880521275978152525109739440601355324181369124038824873032425229723963912014111565982396281288955859027656272045936409231204997342698156093667523784027662246225017439136148161885353261026820260901639537781519801042530271199068290981346483304799284729076205230764940111812026038872401506024146066434310846353421314674752242231615584427465859672591490797560591885227681625428942802262620905660423414917652035461652426697962287718728031368543644109839555002401205679551740222524686779483520903969907674150165621631836068242589179405540971855690480745560064576685810641632271792627380352551866155426393140568537282184027138365644470547267607996271900238504991006003191540884355633314663843897948790116103026874366681187440213547011978634171301263741670112803445838746988514733577394730167449709460416715697272393592384892570996839081973678737205596476283913903236767506907255698984505874227576785552080201999948945806140618813579334127283568618704279399673067968002769434725679083240641809470885869814059387953791050232074503809090818115846947507790281977565791452376669617849520686123434351353299056485030097657113104482661616977731152350259039565564053109680659117218185467577925682519033416157554930774684315975127541177026980627696296389470454530476542954577985530129730638036124065420833934195365523894393007988721441719886833368303653787744720096877403667577728519900289136657005747701470239687007702685227444874871223657383646340417735990000925626897177476644369199218612470400763483164447379758218498804145105680918677347586794920638605211421452499787208059017576964407174907759460401110594076239051651262862444333687146816424761742547172410015901643913090898601359684602758682864484988046012260564381044047930654252693995894573600303205690157266316359010861766597456058073638187303975351972430786849000204233372958536549109867002736666384718281689011456750885988880367105548249127898458999660223570987580524842035876505968928620147512214483081824964769239839037448267521548087811957022767963366533734208559845768361733111884852849512209137675518451447628257883250778013767812719133857264492051181295942723453487380993686788130285219404281830344779615761690766260146396686989714150847895071341952126117407822707250538554218082626009343382443436845548088154128694785421735397740513289422645354506894473335077336349115953076741228544364419258586335299945323998799339484733095684598194644103430500861510959885543448226398471103848839024641514934944015308987889521889002709156922952053063901791550470679433615085993069955452519370218110041927532253283050188788082000458420440789566185176214793327045672806747311934440404556117388459529124717764452772454920503244055366993073795793434635073188419652483756116186844739933033350288814675929637998170841105288625896898221536486340685556824014102259117354335504465259576919073916424162315041630543135329186733454018121313016598694734989879480780261350822435921212241808381440302814553669115926958099299648260139081327544438678748777699798464741460991026287941609261994619158604790820269378037603421568713066575712254339084709221767045383474509244068523148315657716791329905729155396318453456711698844143550448137491120255076840305101227403455356128906302899864688426810846074695021232437399952593852113510319134720474819247618621141064196857864588467522777385977511862943796250117003026574226281376209694977563675382563384856313897809754197956959162243620631474420380971659107117292338286126922855378131254670226862936756403252878072304729556600806970565707298066851557584765459644970758917210885042175450663550880907840523888379504566777202431077151743228051164692574623514420709180560357904994926330157134663725417642389862907380710278679414780552912949312351546374997212666690445607843977556838824408539647289349686525723138501173011566203730192028188601170465755130639211195791094557543592985488708031326009382494229000486486994380345765853744716596276462370040043219206321358218270942482754595583205874597047156490060782640154519011040996258073387037589157107937695403568332142032021241960919840507913940540430909474138181958680287592882980160213434028643374044028336795894997915618432244147637375852574234273695738243428145368568360170369054973264405043224005244761635664075722052465772165995764763454131450972194050427504690246394336926781505171796681917224241035884222092096402590414578871999343904966688276065499023616191070401032708421822249857959832115399399517429074779649982460374452843343191954885259270206356289785235144333732867947870851160680825381515920548098040730062786095909102164523516360389081767523589866293266699246270912506268486394040032339088248405825787693894158190069176643318486849676532514619380231179184402680441690007243634360807233280984535758777142533595989290850460359872962299314045751426290746761045488587011405596520399302341583942765070697382247393890579202885674938886520827361723593517925756332433533454280454936725563108607875781657021261524999812612862713746283837478651315882809035811576441293066282742265801330219749711300280068010120329156415380685639842981240695720529862945880979369682699223106527123703819067681398086191883890831042498105873877508985075544735859167823494664784251350589356686721207283653666630049685890014317185648416753138147810825173338649165659287250450432464786987716632986168669100894775824908889084813708654065653159083701273143263245647602650492899428925615552337712602862044587181040341813491385657723214114861322900531981541088242712957408227084274565281365399071794831818714721036323409346580159027395273554112235996277289469696219048230786996281567953558389348921887424970879312963444254383672233865539869252965986032091262409612869148568527936834554694643633731013561565628498598081066295561596792482821983505483012081118605770206164219304900869202006469582747158041266394568113246517315248374257401102819945129739454454504221444950719710289826199731621170105797409792219176175834583314520084600394805940456790747058474634027083653055688624449465027881356990461924906118705544588304948549758687035105127079068799746053854839204231383768570842819715174853320034294225226906893442468396341497441314278158186083239315197697956944897115454919362921968203710267736392524164627123774979487391558633848159092020559734362578313520769816849964970757822068631961492428004836274995223074988683559112065863310233171122640592949603768485632625879982804068726644194583599097270340420706595078266343003415371311544325489778183969119968275535346059957483120329044719428972317060433131686315532090536993251590145885696555612006621556854018222122217940385438189160517848809204663430874310425002815023566447162141705611081346495796134506396246865478006766424545047280061673217134864889387698801255365404923045817152307860784697245085053781462493240672460743099149727535462635785732722900134286195026351538676277952198157510792870275365960775285058805548005476922810118191104762341887406905795920027876697348478517753104305811829847795555350361499069334173721320381324622035794322186355639435544724263635347991714464599143359491538573982941976517063315555069753310394199084700236840081905678097768630089062921064370621689037806651791079531305017644646511538185426501925222296232778989171247325814198292905420572829775111499051526915615638006899718848772201214070989343606825310212884178315273685956695859882026366270016509617855188528112999632129716665887221566803388696227438752769772952190945075504752734303983485482030188366073887696833142130060654808590469315464977414892282540070598644418786996585891374211426623761380352308383912517778415853995630013892863609316613444006865969977954362870139089421016028169769284209216070725435486118616857663190907713052949746377305099058648888322851862524960822286732806831666070424503249831846794909292591361217865598983558004082118680609221432339349633292743468655823280315016432073926711604834659841891698063284459239801966843052301431518539007090016298534919241236548438828427168755513951633158651579636007534338442395425080971721203538352790327965911669176854784524546286024834924200339928516471855641539008983591290967240034911900793431299361205573857588876255713247360055106384217602471871313569357807249368108751031160804547447917832451735524779895661985603101592370273774438856974926746334790938403397625728813613574528218001262930325171381132618997952162410055220949615449047691386811020477317771127140796842764472381137588912274137995093520568606796303789766979424813251375494634121073538360575106807193928803783448616474367511094519139845832092462827577600033090939126113915507669587205531063675352216185853354157161595411578343884056240860302066534750328971974521853993920413791701871584531060663160955938609047960707071947405295661504059451196905997628794298719258028555677656770972665864904675954481549147349421291968716634757224382450173481577762014433298770681692835435547891580701397960604550383417586627507899387446897980934594671606981600440201198050022737316157214713093816688941665602689031110536207858580826704402716576361630672717748445476082222543446583979515025062306039806510797144068636847774092529058440610316751591277092696895690588610882009035197596142933530511756763874189598241800004704613746726614356842853117065388408136190178487305741031475367471903343516643972312221062643283987335191731071330929253227787035358470600946583792666487158857217753678802371225476898116153726393914822733263184149655522052839318428206061543630859063524353805134945054114135989682151541397432890456511583922914281227497558416933591813848158819135302788616503870771686923534884903316909552326369458691759096326735804144809956498659572366813694453319313604031496994626046755365081440896046000758119583365570956641412013923183769643208170083538091078923149299096057249962896183339267538062031009464158569900900775016306253616459676424569824096079980611004612809310838149135009475982007780402554933858811947611654305790596174158905705650189056397141633096643588521425242434467572947455212469010027764102530215948523957795828354470744925890488612255846084804011351694157202757008073648390715629649451500876010391748352527449926036844526302084071982533183294851210656418369733621161860477014770744240834500197913330104561827224127631530645284571086932921380157166432084742292599494527602728379525836636892641973771496186123952803238449751096414000244432149822863107898723763058667142955891175993003810546788600962863790023878924643496707086628367234079302085233986432244887887862986921114033908393572795243948915654041002156514263990641900225396602455465365769171251214611073573756358775281479291509343951008915903052779447902658138605098623533354854365376217017068194608057757893733173626074463850254019292077389759970794489050678853127224380010449564639602321262427596079371849312316492189471960292570197275978932132875561924520157994428343655230688791408027305153448816617620454139896795495498160589129043059439960463178643455219310245271719647732165413431264336922550779569271150747025788019340217516683677517833148182208251075535199793879653808701521162713021196602816173713572355481461953183749346796661311887807781021153199822650823548258615248168886552625650437819092233900297749197480072616374250700199873339890365997716847777463250325872305802981558150109368711297035997508354828205671706252119610411996300757158058176892337604322384601975523897950986056583027171804992713203971580238320839176243726327867092928272195192772398691153332059538644287937361794397896193997521281770704089481337840142519451759804348187247578427239329853677629585981818413501431276598520705169101320983635517796297414428963590098745166551331121423266345622527060937835676696905845215616008949512688505237799258500056997416893280449793233623697649332634994942690834069105976849110546952440493503252694088719891959419792173177639106374284776733992387621468814809594958403049345032771047272869664194385974623822183344202995671391851217977156139589894017901630002268519563862160747789000110686250853216054769900957992429859073593251475786796332954216704731240388227202123373848754897331424375983254303311378079957898627292707399018927831663608916283409606800908118254384559677393815094295344096617230835227506475837935165871756680134764541561276733381636690380103772469363803311634147338058457263919801437342669265113168621961964906445289707658464963242237064023828192294370150479680158841689752983639610001117741978781221576230681669495741878411242312120032157632016575088030318344072159065559300444085369106873859175758830658676463301813578455655113908571760556158035506380346685664853987004403022007103113313504476875401032547816910101818377739256540246018102021817224165812734978597717030808925526703865667254889993786311877560686480057226330631557625292305051611967151372571311133419189736348527412172676206700688805774101119340149448362427799429646313683124493543950377990464117409117922275666969824846616562589250620740166694628109177376732622896102440731083391541140579571464807392970749128047987888809592438262445000019958743764630405245812177408808688818547233694915460859483642872686477250003157263484467329411162420194262484004594361725767646607416357888019058658724085733461432359103745157121486679192146655557159513888001663811155698604031076506411081758098877251585664592119081427169651677042142015112772994370346222531480286329832000549131422694798180408481323469583120470438158459482181395072471372365108082022877975473870996641697084984002872534392318897010519969163751151355595549774946518023902871943122861195851363251367707129573345100881541616038688545742442892461519644465310672463382238751370092049369395307323928109816815251893895239591121053785850527732366163485060386637355782701358540372795420206405216250855352556178164054809706764524383868775020644854824836006595120451017065923279850487367137628493254426806729248837818057729104774978066648643080930962919038659426278081674509731044474185801752392112854181171357929070998557452625792146306315893954101304440372010818749889996593075354507248008709350793704138932929064854892714408710150023323969570265274813438281556610985399398258649992015226899195620356044493143653523699593610610024833734850657050924283576012463065821395013526891827923146787115716930569943552099200594536480505775224285231815096848470055603462099408587125595508133239361354890902729553020985662231131607084723241719945322601545607408777265641165396502567332290165815372973613359627173993958163070531791647722345628603434495620166756785738701789010199744524848469033536226268892280567579549671474286887907499770711067497859221949560777206697137238194411552553938887445246723084757469921139044655184481660550254353319884746070663787625536812672195914378294704128324907427644566381286870393000063126345146960664490799478788447614322386755321118973364593580233163668132733476645980274228995832376634575041772289739136644123618281159075430071811261593442300417729740804750172465285632215195127675025505752711789651119600231174272749489167022501962938137416626902743729119735875695667706342397338660179962455177312102592019618758846542247894382934268003228780014326847185223657557496950698944063124084576535971332128617596905788793052190940884339292038951682056108451222791321098753136134600134131151247638943772417784014700241219820402754075986177716253465729664258814707743830590307828553306971439393616934387229401231100098922296138862288513201785561748954408184340941036934032583015769954703568688401191305660405017034181372591021691302681191929637736726676044496763468874369760322021477883500579477787297110958173768781821054010127392469009855762367605047872245265022811320469837831851847104194750351072321611448253951714454579767581889436232090134111418206331288395626234457348515362946691628713854881263702636326870007228165496699279217276140880696946364188096448726610197047467973478612951205601816982556235872259751859158365340257577529078252217266509795073967031814013572958769397744397191903799831070596528000205647260226077700321334217929681759212812647114989649079134609705290066482713986462504023563128895916781823848999929403090710690197866438826015662873388534555557096964447731419295462012623742110752002486884339991464029477310609359489331149275798843283734278549038722235465129320935173845097528251213622271526359086605532611633025606917373806127890754772076400317334905699997788192391144775331267953751142139858488657464356668460898609553465449565018648555483346025654741844276441182851000685095074866093432810702668896933039451451664591311318299759721322695543946074347894114610389382386270611802775522590979382895079228247748929094679281437922858289763725328747329665129195824437945806809592818113041517790119069202324740897303784390345394221028545965892455844300800761478196400854620493629029851852677330819240944205274980038427210109254397250815241665846285026680845463776592986319725716154802758293995066049203060869195053661601678331076803295516256793776758468741730630078254992755017584546926593702355360908130168427732917058437858764198014614802358488107635467275259352116127400868283844732296177254707931709577414888615870846830848104981104864356404204812245807047969058182312352506874202298855144467867211744699758672139131658612875497831721042888534001138101009088755335664136115999715913157158666535603658072051393818028454908234746842272984510999779781220956717066613614372028931616577208385304946560025678980184943556743759498041274145243125989593320190646353159752346688375849474292942872116497502268096328542577751653963849515024885173883207883949803886930924934931133695208234874310333532354706661612724942296546287722270740574783314212259074683042605238829664855445796814929250209622592846723272011803035525856203239385499795983061675951118131390062812900746668793077881707094035366428768571410951168160010706808075640525279447440606852781141043973395496668550260478561368674560422675784526965896221754612376039836751606520561174348943274610939593311932529939027387719937912097722856754121897019811096243435194205615330591083388505943205256988261285493069950913908945729346879250065849210435251578752234754936955853679228148712706994410606089552278313895234929303181239547235082270975853155571434362567083809216201086710740859049196159168666034304356372698554068178210020185645737991027665186731105770482907758586331285140694015231273878294485540578254793937230207140200586452406249557843587124525170962266567387813033629121436007612824230198885557621502132180336231969786584673225027791975028181412173185286476130869567370904229452460065146341006542091869036950202480023387229001853450365923989550280794052283510077256998273919044665566688480148827135098686885448425568373869170962297716995175394471718686237022615962406847542798593493530176070991611076622952792253093987592952877369076295018914516863538742382881542917075721100530045250921289891111432458184008398663125353128394638857097829900525433561625143246095568859406065987614215865582421456294667853339480966140112836483866125449737510628532289556491626446241347648524024198370640184157620627189633577628034342638455643108589539801082688069993263162936612679967487013656435469279949808411613151272246413676770879949105374465100630445816921282271502479636319045592573064888736834756942876470142960690244791068779658853141098042459733201000094392691366329121180409288760848263239019431959551719900294689780084952436586008126566278760314839747298216259817438136849823760498509906501149643642447162934754028041879075564005891877810319187390103350627205076770503972398347842682107007808149107735058505345937946957277244692354681795493245695660551097922965155801541751186435487556970725899742678347912575749229925641710007305447809692886523710615396641781226914143241569973174241197937139018558174144672002648994627261343175148889277637883272605618758488934043578474878468106781640738379479842765119680655380659206885306404470569866708256081262174012778080517175563513496457281071073064279669409939581517551641459409009260063651955738655307643690118604057300937712748553744329177362786389424544813018277180773263884001510477686865922181567391522085247132698037351303554239524826220777199044551189219582535846194178478779021897258035925851651467983120709545176060241137534868137020889853667317457335101164033160431346920304046699323580977300459678679494012907678567521494021269280462487372711282792764824847832739790506936397470738039451774571280071582978916313631920932020719254730164827035524300904588343735180029794397631027480615755259664315772633026053461392293722984554270760325562322064113922571148053988124002124211165699395619438073444298098281515125606586722411911488472067603925256742447756040226477226787593700490362357025173576750674624996496956157856552097000056546708114415423717716801764291896413100668048436023964963957696354592333258568169256336480250506668557888667578259115322200265929289629635298050130614183949652173406959901756183925986359649851882192181237029070483212391497718659832560781516052967431987325199760963051852171930556120496330042752967169661828045757100242925500930713726117181611211024314298254559660523820451883536528767359634897057110817818702188423726740192348486144245239643349461944115566456271700276228172585858279840588219698506775078269389854578017178886263289636406396561296525255725125551512900220652284927836101208927171128278084088873649782265859692139161651621003710829702204190022208105432571416386059664997338701028027733489424801281329039725978999223521623640671695823770477869166363469405861551020115190622079592295909047955798837749735875075906414841396442917259832398066215175981565066363103979560301152692267703434599036736260085961101262403660331712100045022183787436826436523982504504231854900695954805226541810967350587979767441807935230556137035060214520346177513161032660730572645624831029426464884745770876354307468755448059637346236122207138890400442584988143223312470604997018768070819770899560695489159139129533705501028921277406479553317927459807421607102176363083616399932966976892374415330280156138323418641269663885057763923967239879876453358446058471787619553931282508806031111872095058147012905971953941290134376686437856422926471075009371532576635175999660829681735069242957504575595988817634464926729339085873607865596134489084968897964867974266085048960758808330964156334172417959912091752887859715903041659773985378806096612208195875587937443347252440918372777760815125379248679396769366443571927802931361904723347490126124535034924509059138586234035844316182915506545921950894282561011323002778664949215684769438714196913364883305840833558587178052994663484999904149890269642070119059411475381290844904080360216889278191513984612745674914743783435884667131124234149659009567883269876508869693639485006120633000846705010086890107982429251979038317498582987064264085952358794870752526776958893295827094146311201869874824847478629205883161163562698020821660263206876011314657073925413191058691909939656492339989585029401576631937986915003997959535219952101248360100627274166601388260791384716903786012945880028931128475696013508682145126768836613615570486013036835642480486736011762047814077458685110927171743901423509710889095233296464899351726428885472137896426700785501215640067732680748602640221111106987770362363094749713041883985016971383463722382449120093165903492691011693482342720171569731011342283377192514942068018022493720503414254218331489584677162039861823299503668305240457022595608648064409190736348483420708099511250402954316172849837599245784126613359714789802011394288250807762082513087795176703754635958234229716673786945434920814249207676269305071238045504975712128393711509254045527480392392686145550084376863999740973224076862866444032874098112419437513677026130180669904191944194790271667919310060055923572653030891138613579119706862640809328761465632661042948765717928629675461566326927190977063772371433971817115098176000775885446040785591507340454164621466111821097943552731501407045383679630105559292027476655743634326425597107097634541776113830966186895796205514095080064580166050855587819380028215986099162180104972530719921752731753412813791102663410574339755878174524243618622533949139648008567605175544050071913905620415979505515689884544441324504733057662790498532671123988671561748139935504153569644910926069680000511781665309136514627356993720875009457186382092996595871625406064139712579184829466915596619655920321272253023587407388991196990666824559783322292349306443486739444125171231587027970374808100539046559302388342233172015145275451648442341867439306112907641515406848317310436242576386980882992301528977693588560538761192252928802775504935552028781114506664831326481938105144743756485385905774317176950389875149648827678891665416730510944654853008509368581305273879156176598858035529716358495052837148653307694607999186916400836220278410683022488229464315712732989571070597062287041848195946141825867957007352877453900843105957770247804588225399185853889117898872870025150465100814198016718386261281511988803757721211457949975375754829436967467273891609890711596693454443121055747305117880841153073924644328413327074415592431173490498878285034665450687374751222037970778399967184010549834936201796561891907238681716692398461232269261494322725930128277910775202908567516905333234536297737409827270403960415753578807019370419174807287043811380082423496431903864386574152346522158725660579473863471091020863979375074034006141107540645346769610330021122858248396183098290103449306302153098603290455590755419095585290185908245239674766042941403338020665986769342992860286574209565812181744627793830915876424325298910799339591516797242436650543713642442248656548505763471559484132177206758697661352363754983206895748277449164750080491433638408486398740016058931161971970023285999025332749830834378209874611797152229925258121057991968311759884866450470817739764106867567316485940733325046630909466507312640111202086487735651122839031755353243926512764847910541211270099300413566783189688791984600140415875329078898096643382151097222761346042555106415370831670282478765539100468961383728263672939668925171004173291137351250441444902750832071469002568852044590864974092927364264599482357500178959834154614642388704862703921397410155997848264446610665936422853633113187559453030887496515627240348462238405453676080920310443846897229056630481924272425529661281522002100433785850380739359409326697869837426744490267945142003283678330300787588735810994369115773440704444517559158834300898267587907852510213787903310777113964687716914212027665187949516526440651654743851502728997608508024393877606820544021576067074754613699633912530208539401074113135930546282309432655259593930730165848793606378842617147527191697392427904938020254518561463779487253780992322637301089503932008411542848532162015557166323031305584688009169572247332473905320288892096779161176558462163536859031785697668629037540465888905210439604986689845130349398757095618504425771376036388980066902881326862738085799727785209894412575431193814333951338966071935318587993573984491936958164539652937846289995044812652198059546123333280562442467795612696109550580646257380738944725246282597022396134316573059742354590215102391001690264321427024942883642429370138548372747836170707719225273276515832048604633462682156155962000104711705782257659075679394612772771164592866154880636374342585329535166150975750031355555024106676058145200255003410644350513009927911929940129655038570367193617355826105069593095929107347677245074233086214630456056211067424330798180398688014585365327890032973592684373999333619894886839914903916595745783153991630413091883692622644738584578833630635729868699845308461119447650675493358072124769520122176802667112948268910019833527756731700536628612939388099232464942805360268736681746032962027058511339776557724520838011544052105318130878556122680078719693264026649934649673520014128318048092758781723590917445641473764384861676736996967239699682995474405638473208529514185344367444907662366688708281364864155174889163753419776327400577984375274929225102195499717213657600335588570659206962907111753278209581896313772563337085453815456681758006650629995488999496814251880367566264073549427246534677549079646439973821887489482819271554046360659038823624724650609389848429764785599272672147633102034125578080710066603143528872959750068359567145179235620722564530070322616709991505763519418917568790534663980471957005543752865932999696083395988460735261174271087570185743131163692671788831295930859708189036415053403296566136937195916505026932680010311388346530529103790466925202499046561630632536614659343662316821618714072179580079612657065731090823127558538786335932201228364213855227824429401327118920926125597039223963412828123013109541003938094426817214033378109808985823358369112758789041853406814412825302612943377629046092706950113023901599271879538478411986648373992808951802318295093684930035581369365641698757673063955079913531880414389121767624652316757748185853072927316072924967023785461566284118962950175792925594242040875705655234072133726240128085594434463851595816532873606326817298382123556355079681984649384100385212699297534417133405936661300866772107692492437483977208247606732673473764755655967268546220682205058482701313567446632352496040672966152835234092478336735755231276034013796831572796237478638394003023349840980460068907465039417425468406342094046859647113232006578749990875268334111506511063669244582517867458638669423014460086872013427902414925367866462565914291245550441013026573109279838676443451600733027046814055546521321887073592461423343269311560830708466826055708737460291941691628471638595210264251848973204149238088184168071629070979149126479872046864766683227601295873799049285944412882564393180121394742621875883394006229987405699377862357215602175866132500915684979265321128736778819674600480667621385032587210297047145454773851796070879124138059158552408340477591607465172298790637533457541263739826186548439309131303724943530662509628993012081183319516454025084393755238949835335502733488176445020335938310859566767937427051852557020334319499572198050141110573603571268476924277579205075019938369824893003425848935759381356056006524760382369462849427385850944112668605761799856539315324917145918512029112018918699483243486622863888601020747683854758040494124629243868999843928477062372546921327101745068041425463865979509240697010610742752449005948750067091720805791143129678950637562279988930791761901135809967576347230671182725107832826900681622796637914717231860751478218629611626921987102587592168811876680579644957224934495556426973396898360622428897643725353151820120770630989470741994531634487621568046557590000372610602248611334374108342578362101959330620924241990134154942556368382847579866249118428807695423765672998826070719881097931813601222224625299566270258687312131602233566312785185744421926261170102605386510376739140981277705482628875727131243465433614619865997968733882353191593439193984754266230235922816473390190179102782711629400247103591346277346565225715684308798234185187897097591586809129471716467601271466188314166544495499370162796591895081743829129700577978092357186182438017129175003729391881975500240626286979364604881649853263332099177646279299671541982985156606383784768638266791035686700799367850572142791955720359617887465744247706789070463911508859796945390989198308878788866391743286592601026914541931272709576956658514969622314854839598815578131190985805831189444955099736610805245845734440076774818380760430963476634422009665425143849743564540379735874990764689386588150763676471599248909871572749006023226874125034301784571954821836514072589285347716098783278249370306363567542097590980275067198644003466739631469647439480135409507844089961718283449115282293572910422469119756211804835529450592853108794247789390189355587753097891413254350570138007586643105632298468390751940236248609395412191873236759830677309634934486508049818980618413235080580046908882236246751120091457832327664288418052390451370177657718490015018600528236907904203804426664493026852232424624450093588621174151075416844857551962489295829385454591052888093404769016282949668265743372294776264637848310575948565409406056535937348178276323856936217242323967392611943859293219007035508552196793184566752379089812244675486853614834742574306369838027999364704821118778313320462943085122901987531081845208978968003591892096975358959227522329582009106837792202213252447721307796366614712513223354665796596823518911654888618483782606360308197840663416721798767205435249340776769446524374336661794461306803319286414849307757480757290238637106395839180131478797333008862393958392384034947794984575113034676604946472952157122941751213196389057836729373353636837772903990470918985886029097197391920063085914869650943468929174930206282028677028877493753987994611264591543110940891615004270830677661522833881834244939986110159913711630387221050140655401592479418493045103100326322879609096021875892364885319965454239328347440595100332762251631946062555155882159776715646184881272406475633398283147000185180671688240261547681217339621465350639495933842536103051162601068507458673914724900845226719830910609410686639990552413258682765998377374329644431907587400470270770017924513158676197312312473995591926161207392086605472340030792143709755061207997498207229099315520507237966600252011769965243083907131853802644304225279547918643455986186990809789921749456849798360574802992628343741134601311714599791560330363950342289150900656634205824560084496074477578513618495448102900147553828372174439820947410323159685318144146245790055346851873687882427306774255645098121882941895639598757644610716966009490280824766067713616617895552741156222496791012548997083978745626307007827486191086076961741215772462722424288722735336279925748141193347100351778672538796654565062326810505081980662187600767861043092830694130986690360072000315713059376023521441333031787699189284359190724781333329555856845376303708036542183168631729575646312439079558009081194327163355288228301201385967654591870737492216211428636301413355758151109966485745782071880296621602450957780053726278048908796696380692629976347843903065646312170466581197625507904798235610980440780719929430447944551070019804088067558557720221403892280148135323244390546128386871189563364095353639014153324252315922701044848631040606349845490327069518022078848444301650875920996233732630402301823665328219373647731551840144387675944622856542936964434307293287790748878872400793401217141288139484294729778909320694643458070697897857854934926996803138124273843778279434585270717361823628532301017423569912970232719192088508619429078291549088437027758975321893634850536440146075422293890514425547145237162150607106199325364607702358955643285879425019713881461952939423565515658797653687594653053208368566012198750453887545260449658125067345419805854882990044360100628919478407794114925311204687034708364437398013633475396815556241997202851751903778856427428896995215637674009946512637720079732183808876881980794045804906323244442906550904543044503412081776637115940101879317748000274950441671861649541801930357351136813517947172803612406623738895224397038394616350017847092311295438154788925855334116787262844777624778551118181901030496250181278811991257215182843890307725425949234194307163565631962299286293238639879858513364774400295173852726840904326513996421939341334776423750072865757297516078882368353811220143742367211370389988682268198228592656809929812079071544378872897435632097676979584353314878346824458636837778995537242065552773006855107921628076000474962232872466837863279235760021979345388499923150168894444495811088986492472797847526674167725893131140468974353323608139151697310568437458201330944308599836378929956716990603252860994822020895410942664155688210696825636378354543957778375556158165646979642243088997739463531599922988160243319345209353419028495681379793461913466305696176381829856110300199727990029799272077103455203376462346755865762716703602851661338526997604033621616636567077576944212774579226209981344149784866023255299272570012363564506429744105261051688621923351849250054771341816102205966673826226397591146721683747523415096186379686958045284065817287899181805317520558310232465351664554766039579103183981042206544738025464933015116763071706840267024797011876847246090238463998426447025519584816770069674059239954820209984907535861277479520088344137222334876066053050526360522540976208108867855204317359067737374361685059684488988181793589007843480621817543805537817220443902249885592046809992605981672909123457435623264466805067570487288009878532465195670045562079052748339663715213453662212054615231283765657928893547566591701221542055123419581361590166216094207845559584999624497326900898234997155698244732628839325152211888700413688094082027072439219402356922254782165608194473264136517617255129182330468417426147363885966487127670383069424485605627372801537683978385308957702422165404390738342216122490989677714110808701054496851531003526851334879935575559399956116729723722411834358504521628983067178580722340299742797297348306518550592554275656242312432251202462718910146721380947898924740247776797887325980273564878993691450216902477294889345625402014937311473240394721664021475824361206123977605217135616944419134508791769047752059078011262113957182651422649071684197848784741687715729657194214815507838724699783226647338169651854346288602735707301906745553747933005609636565099678562037867805990225440270672918883952243428381708489921569979169826108700529380440887229252363330780101431864989575425675152740093306490828595329660543225950521686852721893325624029315408238321308592031923447634045143754027920004978515334576290606613275952439181000508364795777264718205474755384559446952800926060430839579017029672105410018804060440592735492682556323385977944674631625087841134265958391248886214114092602563439401903663066280964012598026228067288475636305224967192648008397403711850061464200000338436961716930560063643812316692399855942080322932191063807090206970708175389690022576929578941839022103714539914670213858112696078056066648849684013331942375146334161664723374682881746065747104015824203184317344873066359993808725831300601316237569944572843187162986194329685340011913730157978594887196991848196089490784431342442545875653182461519328146479669041407255037695736365440054153638197600429893566862358623039365001971561262314836540885652156471690213814441545554897426630228050694957203229712365803068395412667553293789033540585550565446751054759132756476152813532305585911919446455194597366405046343433489468413333601207674587865362435830700362800282462648360834934565764490265438868539462026052311330955258706204192815260587861092971496899024747659911383807017306129989218906346861575445250828601198174557115061334338261386597169138301795837427502083623890171217601156562068105388656947265910738061350007332781879420080455736845820599593086785948929151754813032801817390950643775599901179532430568013112967078387846436390734524399421493235384613983435193878485006887198354876104806056777342928737295848010892067855579295867652632853984835248231263709305594046108906504373761600111197925798063330550522521822104344475328283349805431433111598933360651714939821830840601430984066979947854474351538342362517452809026955836836696757162941494696612221474133697842919747179586256595569282703476723253502123168265334478877615688317795734362276824821617945408623955424955002735890838474709329597468524064080254111403216616803238017251673007843593319413283925316871283149909685481550344892192755323837606487765235822297764775549209837021164918352345255215152998331937292150189344980092949728008330183409574631252714094014965204924940431760538886365625754575647789243137764194955481172615648749404085650275793735866444766133303715654080524346706425584709857670561182017608798026433767448220048362214224457307968746082416783557842770141608412970473148272708246527228172557396645281599982062631179218866028045311718285055438229803035890513011034227873016619585211045597164893826199836387030436483499670249743495949117121083036746828270463166600593113014509443771283390877137207036498807817388190030486284111720023310934441574338665447327562536185281319720794856040178357726280163897427735419318702463362943516005325638528108174627911747259798044753278103599126323144229313871820825302246034189372266974050397541854911224787681070812823605206760369001202442087061423512165726059376297525067571551643652392436854207987578852818328745630422145457882233404927234104256842778299758726341577173633436442958653322548813141106108700345499008815083001170530391945454039581004017355888903112583005101808597709633263713487667749859129411741501968008861761184565309273809402209367242883719117627473005180003291249740104924566035620956920913443932226538418517896357290511809412503450697774658140332484494387899503912835426832111503346221109907049989716847353442409632671916011053374745620706289517038979600457201585448453619935564466915033923430255688956385265953258978748148315900153672303007835524882819842370788280255284782940106505381134554951890526306011267395848797499086984162179174281440653082489869403512802928792601498754116687412044161248349691737480779962449433544748591920972241587670032931635623001842039504292280934141339790290225849589773597152953877834670308585090303665858545599685621270109924713918716511666802090261431123772847906319227435272362185280888245661258249592431670203726597179056568373255322277635838966575808240824094337702183889955791552547629489486146148590243236084495825816269990947888698352869564096986317708099981327239736008309586697772923167552731933785118143630073193331523453507661763187644370578236548777545717492708848904695104289321311087483234015312578466798055402123249485047904682966832837767363557933402280518209822892462200502580814287707238208820180829586328597555352424396563966978648237259264499784475890252487637931728383941333295678971323045739463330061122734207153717006658510248023892670047779313012467065966895306514415109338140914950102852236488539148148252895003470045690886888546559538047084281419757643611300689506430397045578507185123000665562824576253551424638208805875873419415708936460980031695530475798165297134801036732055470275934906987613393969993900547055539138068207841298508160167240899883614757019291338787083128592520400656986058858507886014151362969915849989268049029055173083200926702458542087868857716327980972833530091678462904782520794173025569218328469741478736429699827338581118044400786273078958509343498720700706656534024935119673780344000440320774205869769366237409014939150840748459000729570786171191968704219820529246442363701924933347916963631590263775290011376027236022225581059390633245236050613580952944254600780405504319413326316535998815951730976993061791714684287500702614235092766183552792041268709856675452466815286200957435479144796119933745554412191768837630328733113313404335431355275190343044036599838166923146437211147529582905244842732200658294862763411825507176931411414154515879869775403108632398534082197975966414563554421302274032231338946807510535463801102638633763906208926478160440031208085103938563070194752503733788306289994249364240224984633877247062098333876349229957903420983597317430323351157111052853234060739796668596289371462545951678927160792023075708855126466299133817747705981328972281753314925858629398884048127408422482548993080755890238584251930906632123667758307897081301464763132660543290057789967848796202360026220985268697454735033161476236825110619533128527186952979501124141156300818290198988982106254572224471650539253929623645147702093741215997590539493197060134129822088484736657293468598990527413492142906947883823180599746945568988896112020483745380197642508128453350274231828843020770964410643766309558857021065687041535939770235014220561698723884513105249750165032295643790408198951802742514634602125599434628316081840529386304461989999479911490813955381762374797072497290951043879940026045122667328359824830756090706438073534827384702505307829794202497137275428253292191705816130856733525652469304335227707925144252990893364847150260782534655311023773423602785613297268323134526522751454592924928473149710444125094565828217857922698641616274364449110655568806228975024981444787756087769816611526662468617446509594354844116881171411343481227596971260202859170507755363082160958566767013690654681782155113352424638851551465493889643734767551864612347129340428546889637898322425093606020279971274371723860721106044430533335577319208990539471166460034184955792655034083718315173204959837155898111052656594463197591147532966697116728886604446667877966889646280398327025811401204881989739704157155505066125229181450768298176527884730679066863763922751894026406324409493564654803685646137702387054641679726245433224953310812928200646767916191607142476533932768356210478513635838347999376731461968848864530389357620534085389764034751059812456853126144811078735551761147509503937770884812440312304230124856475470741157137000947214391600829277146102106328789298776123594523411916659250777520619231382521488022131601631682885089729504770521202115641883357366544561533370490602251195014711142477984380473715002875277085053156345876174839225921519645214745636208942840354793747149998785903584897477356853758282192958235724821457016562870516621100889196618163495520932330464398007705895005954184923270064609034970462784841586070261743967251723339251514099911577129966428426887179619762563720458898596279430163841239321343514986455503875122103214255686566656023369524373293236848336642788373790693484928230135635462288801319798067283250627215915944936088287151899363386095755550920775791577400126290638737018131863504287687037122663204691805023792604777567282792979591499761050550064965853594620693028600589672110737072499514038609222610883207653222610183732940397752917279342142585704182076006973855581872284182086865628570177234584959939396987266735641173845867718623174123112792540709523517612230746012618587709759726801737227439873046590567793511550075834082825254603436730969551631483306725264849977391589940920624372154658055433071386844972272474190608866245827585520823887314342107488890417428243065547946690666862135504433831846257466457869317282629441559529104080981901210537840290749200332198729468374021087967788430526653063310537847164568359322600080882414822497485106602064446437121015883370700934566207166327457029945744632151116705694201578470461106629087783101794385352414463061370618613928428183792318212959976075898383531961553562636764041080273417570248889812462307660373517040710220890949148252200449625140797644207726963075418378564394305366574391217061974146276118510080725377472057066889868414525355141801033966798572124474764721062102849604832124437748022002195298414213589311492553302661363986545073935048897631720814348413745569569877991914509626393736443142374249938717990399129123464356826204950034424106735644884549045276797014275918568134068944834102273318571910955769390876833861148319679074597766903412721044308444396156894143532373096762886057832983190928234559118452981925631588502940492845151626764641758209598127746574821819269181313699001073594286049293019980005128099706434876185186873656745210416561761524218392588425533646276808244206534622009078031877053839347272703174740826401638033962526272706613859003546896525374496209155885520405788551927049637602228854505885605403201578726655855645373529609394914271310365781202434027813883001261192033848342224967113630210719118906124206273686616539428256645726044207480463957337344362515064618503369875316981777227268633012416468441242930627409809337517826736668571248087432564787330799842272459865183651038729616583707607371363366479161999697502985286196503156618235390218583584217482228260903215421559275544511684078402051017210385502690132378404935774352793851538158250771777796763535591356054975643345647168105301206089310050782309230468523470436165159119889755563428909698004576722154245078684858929894205262670266159790619514341081593712478189211730373336468048115141562120701764586923223718000575875505234397856159295203296004479026463872009900177955514343388222083594867053106155139224969251535279431673545194647754945198978849761690182772241113563020348550397728416154000175730782126095153540196065021810758853172533928007341535876889571506109359365141873099256611504905419948763834123046690925275577104130389362602066132611869180747616409801297667643447383307407865682356650910619601632193226465938068155640108206760014141243961580257371130921856742267623104268354320207849948826737323605241853901405096735566126966591834839565681887138279349784560739174366457473994728121606790630701473073487672064568784654020447304343621464518337083196162944493162737706784686327698380205145025719711964233181900818535431584558584190049358015070482873094816782565763188996208700687402720723305893831231681141952702976766372952584218130215216544991521830136983444769307450351991352061643408960744405084850861391940187945704272236706776164745151874125647155298560926759331456175655408859597844338098293624458282181796934412782034746946295723165075554917104856539784485764074368382322717138417861834962431122076119294475985430122097109011617264851383263086706862389494404942650023564389147571436675224602007682750146720993823714374876091938889322721671046792957649963330879238196567383399332583864806402500945276030543756871368804771767110584756395951190839226231379084756832754368776128680445273405789203388643465514818437600471675040604274698237944556464015122940359156940574264839458996532611186333126778698004742239332078979480276777777846744097486744935824353795019402672088187154157369290994368564169552433389964594501669508221905135109537107545837347761398607253326342564948613513234650409799060036972353946164563783644459051380732890808818587221133558028570634805069489269771391520029441880928997516239753905813681347848000863677027992086819176467756008499208359601903365250629232146999252239099358370312759142791763662862800518601696976751587814320317053594034427164106781071590335602208226060812015198478461550485084554323065803308581269059349027736375950952130258931278050091604916434175880254348852643417542173757657655607975924205501800927864797344878328458748207507740388164612657206476377838282147184092204677443866103534765781220487508567216533233001698585649199530899575202155913491711050583730781244801375800240273589389108843361418240923334571349243058087830232520427450084824174326347445155709172016190183066691179133771947589654128467991093937209125802936866442341240960811419697698497156093933598054820649235951716007693202556562526855001226096281549760753459503962189754095666581344534783352984437082049123350120379816058938009723889334551775747053030284110087480585512283443691057987938119574567101877352912976399188773227611117316917323707043356339478609154583064299864255547082682594812280111478853053015012984251960894533772543271901555210159493179606014679956976725520068282242880907748034659518162621971253472128218481732472965956215081277908161770505549099624181214330707636203127084304755953008875131598775796963056331092440320482421871920380854090221857516308759200629653719238306672160198401624939559075742123782116455266614201057379506357381931263308035158030767846304226652538794413518166487242861147306201676969496927136909109479400627423250025741087068638593253846963212661262543817249632848492316200484441173114895111077737567658657213842866779330696931540323023632516216326827201089429170957267116582576123331381027683365544103510751611997256661693428560410705847631114975122148436509139274587483224037202372428380853500186681431454862072615123866835911446593036593424553086683936472013730585494895245233154640892897274569019444931386922856590374632247343271717355773690971307106890985960381546156927725132129781490719716413997755309194700567625889178211114354924266208341132181724167141172933731463793374888417145461593830696606497824411009223111417565554836896166522586252240939844756416571090594040569803062745021310807169320449591673852112346739271731853015686204071268050461578515531376789140218402495239861664690792923164085563069641837963471734789486379223060058952610446393378703559596916718301752691651079319566259004958499142503834258995109159304785526956087351879180061320166764799886328964593907231274147069980501854255529422092998693910892377738417458399723344600020574668257238279762646671057946160607770246531604096945777654265606083854904066233263919455788232331532939430546674612093862770596591496652223727394369618688557457265451231204136834533551385395369441063356318442420887724421319199027661464310660345398904542165738982392792246182449025253525205133219451026702198920287520687801085239737579930253684018901657078881647258361890211171971441418766202711384920555144462571546980249537922829899837813893659802780401276722828041159704159074903375819264315291680216632672027713704817861703011511069641546681988034620872185577957291205478170270566398264737389698082661076502148866340354667300591091851804408481515887171234951608208478755623875873348974916932920815471883591529786953766368218868781749390292809732027022440482710301703085397408813989484338723123784468867801539837537849804955695746203878269993673395108107409209945809769464603686002525626173920837025318721104031425784173736587368278742978821563535303968789818340603044488846226744355532808538657469090462275262995046465816377935757234125511331749071382880508478698411046557409781848678252414325785339073184730683783745638379428190641388336413846233920381635036009110442031145913783627625540485216500385181157773695303720665758648524587121623480795687117907062757376336171653364249800765560582715969687222874490454131248258091862734195632064209451237764940227442577488164001389704145432632512614888456270565933641060286050998151228651581066704953430133253641068150931216737655489725459512811343562213212500683033846717994953578834454842197888774886850301943296077301963765785667797449366241502217563591102572665687296106511067263473857412469592741784918166408624021703140922782891607675866069217043263807306792188664615833262095116153713754269903551821277567081677860979603943192551275044417221870862669353824969379966178868272958156105007625011775572201356932489260362923203506794428827074141171565717832152831252665084543205228037943585661211941814394527996424578256690461570115566677773731068682923908710417878440381741158513646220999927984549462959667852158416396496479604129336484195267767398880401635979813188987833571767019373889540368855439662539986155480679174450316968185131102389029962191550392814316878399363127233719377808409005126208145067325820267019554570384251964124749658686788651669322100067081456077793052559826071770101052810790653430016062949763857552850641052293746477737088892639228492020192143898150395215323739502412910268363626834995084301649732389379822346526055209486969141648551388928209991126643050630950914864314112792963249702859770158863099376320139867199268206942106443743248401527927584167680448333365784462010886502796157032873317908286049641104928185314884624731169549315022329795816575339875738309762079219474486646671010651044898942591188644770551463306328290104895832147876662671489234206790550996182302886371729810811403326783148955654231711700671096156019243588527160254586920198964701159309808431427691431321684324175011695663977960953524699953075047707406044371950285323400804572626065614598193405791247004737900065676683829657602873217387259823527189608340569887908148923524024705938970120358618883632263739519635660249115708701833704474665281621865583125731434262629713713372987668960045580435202305907923600510399506874448177133133342326659964275217113754700178060627729462470786357550790968952940932599649395865075144956950398928265961226452160398402030140066015962561351229933106363345086082825321546772854953076360291335425541898844100895154112288429101005535577863296323743047790137978325441297423542028691345675629397851421162063859661165887199509259257800399960691428613255912643116738769154148682576324096234379449857000750525365654754660410078197524663024030583992094454168749031568463087212114330100732895358064217353009460719015619287316169104792708792532161365752649414868179004191859575121443236042549937738867473003541653928895532476362801042832241415661199311363261992578810419452010958313883094722184082648220862466122740218791516467117430236573079630958174535461886038862358107653553551546786604133371748103594253078661404545218532442734682310445782106812678426304697487626644895160716840977747095280598581555029973671333741411184545522173338151097865165707282694108877808914647158187741310250255458917829806031152952717556332855564784965597979230152301851572236039878902454493811595235558530577068734807967915529172397095566736584514624100708180735822119078837262240501166016915962566151342793943882189994033013498976373588444229075101312556764129050221047287095882808866167539290607925813925574117215033500616606582901427480495624473249770749546357446050923034603383271743688736135925617151517040690778874112947676310362739836310127956264535906496197337815596301470963322559086257598987013431628744485002930294901367044459595479789005905140582541881380518972317569439680344031891159839723785570781838700554817147252853437085213909362796172773248192247299885809803789183067995112420099656122738606536898467763587757741180152389005244946793555104831902483325764825605802592088931889914072546825897098972704738601257534640772617421846438587678818625230545177353895341772028259664335814462269424214589507326440727222993841133382471910986664166302756468977256523035633808191998622257691875869155057494861511238436593297955791966552718865106737101655486456481589351264344862016715467944880524159134761846186189022989094444882577455054470561837715548095895152597622369861831691831666647456292277191618476943541769226278730390823753679542647935098030701414991528314179020598943500194321851973124711323998933743796723318240456623452606549085577943722561482425046449955919232487611013669379082368544652705707693905114374925053359031961601487032377949271252144511404362319274054680378318388089226150083059034270092269139078445641281333324436208328773621305275532511462934868883212474310603085963230576496453780756571130983834979420262658699819993166498980656543989109718681799440945099595178626920812334682648882866483464577741943870831093739628500266366028531363226123049017458106299359157360799182650482298192944749689682138149769082266944513658451195491036789142708976673521229936053458313254755585384416614654637770049023387109496048021348306280453142802056607913504362634355282819332892670966276290879532221547207766318581313214217841553052400030811005163529101154605678629409269867111244664959985697296801982244760681472549862070225660315813054028890589629880389894557708603684055228440437614026879484932110610412479705782427188227392346475088976909151974894357893032482431953603306958046729082411491509368294034565259439365582097907018406673155330999792945811830275445859489913649737032295036434056123156495015503950803004009510390537615901241040023875214226797219508357444218064029600003995885786672050531195087080985296983090258947781583968051892064021727086145566860464630813285247097466596109419075480344329312142324910139896013432394265546486719196088393385845645770760831237287557912620349822260006939094372313074804283814066190801946132075382938814664795597687917268667664643938777391297641587867051677925752225374745802288226389584336385652844984523170014734484936797972758662343479014837942470530942571696040831953901770002696454320906955463343268825148622905427998978860997124966987043525450824088218995157770372574271842009439853851187235263855285140274897284048467576059080629643022059617403341853359085599103743002767514085520822081349005248091931899755660095598651081419107293626069735762303526484585357202388403829699378978704274994723866849666185909824865069027623502120538199366030112923827875534960447489374969280733717762761656922072373915373609419109907751159829987480292156814560745242339057168893718071168459508427639998599701497418763107368838107318960121234086121227690707348536216917092788932236932245576685015347727125316858842591296686170368771889552361032606788003081252763971234348920269317170740957155560477067884891993502720736921961572620914189826523949880928355602118938429211563324359926735818576535263489363822759890531165513385494439688100345340335285918660942433539088281313712536786945214318539885995581802102921536931477976370790781472622798379195498544617938666699633577004871570640227443332246335190583873260966950300663493679328265115953025676983550357066260978121807135082670221896563169263689408459960527380274726399907197503472333199956319479011427329798476940729234608067673921501360550479412695650399760165740430635054822505716381660053742869058196229117878808240292819956266325021906442781294937511660034977396158832526609469278773749739469151600011133091985069039987604360484442785972320397225932386156471537495206151941389650505822887188602244766022905223198717464042292099399747543237466580017866477608416452241395031167293581989482778750916099192955919162692571918081878951904665358354353773970957355408841710190122886559865751566461310883775536526618071918019402381021858108133659957993245701157446756856991797257831983091132173332743769008042602346092593027698746006518501440616007672261668066303106848376007431527120265708454422899753020122819473684427073550092236278867005216131983262499117517023015413847603089983870876554485146568970588142028250976427794572971021188183473108240381611160118021335600468216470828801803592198764222407476088871894285583205160752164572970549687754065700700278312275050236997533672649855271273429961084345727808957926475624041305894603274767184078624461861634550696227915092644099098162066453098436819439835969962078112371922311416969605652791263259310698806064419138158082214835050495403825440145523213813426068943075708264028619648251038618283453146132629326903151305712892798219512283893097618926589654226152404189940054707689733129313436189098581760514803020947775152813322130207753330472319806149140334331591239250961075906098077462239022749876233376677375462053965347598765498208908023904072230974860877521267936898526702175436267990670598772871292241923368563667174839039344722955733173000183132206635027984599140859389807426736623578637206350097137989575940849811535731316161525044116769823726835716866589189331666169604759631904526462945774736098313874623475187877922267989181893751137116135818150427479871753278715702596409257431718603026651458228738859679609943322715082151744242180991439312763461740569740603597444875955238433399745476901112114789268215798513944009066987311379373145525728611274330737576927029632671132006763097550660692095476704315874920423486863934599347090569881241191781793180035607543282003780165698302145091682184825216637326442247097371383632253950741549135289729152171137724338357313550229966613627184170486106439646344064412905067990004898800135847761920448741748930996644354818316421066147025648626578052096521029802095491224498113025643042455777749087700508823471680977764696845986128263725985627308462004190235356964248775903334402316463603920532826860294913026584980944750550230868496202230982209693194428287382131288428351880271178334015876594943371584012945162391922714909754940108629869981826655957392892656443434728388431642382678729558000311748531802527205551987200679949148169977892025421075698123707168195545007078129861197507549927453890514812325784456777095208205061132324978812275636353642436239751583007454198079797143623039298501176447811434054024827508905580113630490787018941541608977877980085630801524673020502840496892515145915558029818082062930881201393433599077265181776378779909744113878231713258984831299860968278282747337486561936463108852440790104207740350410661066542676486673815782068609491230124977672661247808468454559134989202375946708668987269407860530338416206519179514413959248518173962659746789104353309957068032524929492458322169602476633180934544601746413112082931963667161578770739083730202802951643916137783160306856874892545648685753712944749265599775498580981672333087847608347611068533877329445274574747914426061206999781797838922498277705416328379540069518705588539645658633940240683829337707936043736586445080690445068989943399726598895123095814933311587465598858041698850669599330852538234612115544332909900611435294829872998201141296778288003046311955230077439545907241562069853347847353423917719035389888908568125676419808839103103041502706512789691529036388051877125174430930515399603700941684685639768576312171805926290912688576703462839758418844037790267161762341705265446960019337163469111355663968307608932875650042135331586714482215770315025244271635354771354132147172355302081160671209412654411487438147987319595820187619717965175143198404709691126346958206374424047914593758388959599987203976330829678601794514784403551962839654881552772363117518349781314475260007975686581248913504370283461791894362368500557777390002983004611441393976762412490282043091106171869697676726009639788450378226604436171924896753441398175120279746644699084375168170435399715190995327609684712541371965436030591910756669654734971175349357546263088669588124863983125513665426762372612999364118568681409540600916395302162337070931128560628330655935933101683372479965460331107555371162090082318856662907518143773713168943117617255080767604209061057113930325411516793112751130435974541009437034632012937910542059661349285520905369574902865259724033307011847140570038952585809250073035034936202254466356312375057397634131166220555868522637011363082179888266828064149219133850296989876984217271713177497068650608403756685211522129078912939917174325848357991209812900268402373329299339932648982728421231457796869760910702761599321289021212640902815850241828391252187502893575383806917000869237696749578015760517356145406028542315876788875984862939017820117473931505581858870074332714054220900075557089773291330912749279575113724872320054249789766542232853956861977485876248057801774018551167623683561464373487150215963879663342098685756363271680075393736260513407742051697959552233077122988440295859644644361056340999434079517551787591978749021772638068251962116253825737514102542604275463518364724859391503092200585958625372187020324636606091168048382414341467694672284235738068988365013000790177831793431680331344349137567716993502467869563193799910998467049103956075239361033762021673112462942525578247339957603383611833535462970104380992324485786521999455282752927912307764606524162302768585938223642805783241252080549655949267489476809399099540981012148400994408126107492452955768455340659067217688959384990304733754754275972945671814927936489866741422660774034938292609018254942849829297851162808393673470180218733240076460271866282891438907784186518451392199747867611843778612113340943065358068893321132635451953830275226437290872634700808895208442937497995097959454298660223200020839348696688566016327760331521077627772299163275359527995539427614332651765907146390855530970720111942318946742429258512411463567461938017050562068122585348236563812291195398521629395058256087689399933835939820592439831419228057914565837177670066438788458750820535481411252868247213749418521705126079238934328988226670874669352624700941300396037865928998098002332225355970126131245981833751870912569924034987068433981234349248694835307638218375963053153644860474579312720539730981665534414671348302300086025189613410701981332899418573683692054533500600352943974012248749627026215692812107627655145220300239920394540711953979924176925278551372007627621499540682527972449428804314870520464052558854860406350141813503676071784223910383695332801190548932931850916026441199832386312196441805824234293449110007392828415193447838329060002532268272829165412605918669282312028811475007283949671882272861436422349465772983273475179807208676046099394063239764946715815967486954542538166151760953146146727681250526997437338479708292150683509735059879426424595651308429451181792698505860452838471623223283605553619003997139937033217846732270293649729105872100005820697240175969402688819406177083207961381518044263240500550563593100140042826864993852010812701131298773493481826801715371551529685379641153617421467962718269796148303045350770991856275030451292951772062839466830977478497093975806210515252276050017636068000699007155741576015535028384003292172969449037735892071380893528484579134921799604437564151994170414065272181287613739238903339810223156671761428189290747471976315004362176510570423010366202905497752033467144481663226831329069975664189626212172426654362964506775707735271993992768053777115750527232753366790989829448450262415528916889915779662640954357431916562001202446855153036209110508179389708739708825146242113228982420744508336463830767984607305549619293951442752271057175249326762264194485539297000994356657808346538676228166883999655876385094272771367402621529710381964104810833142945946137481531468517246716829445060521684039725054235328860847547018196349571198194314054437132806983526347765468560762394096989264843713842349880564123533125850941907465506551651915677944421156537399521662142463704536869212580140189987297983882881774038718486334638093356916392079097202508593505052098720957429280268285905851269251026950723386201903603643189762973542913347297177369196423927974947962062152773590543959121416663857581460773254988703355295917006225023631830821602501910563741531260078238504176510457936076970740456729588287367261719105180938101717748952882852892577940336964491609303866094896908128202354336318280597519713877419914712054148046711527755495858737777987514182142944383067555273611181922450190586889355263766581801577070564578244994343469993413696811828271407399580649917029190732943611415503688171228187645045203794003272285404911855849064470319171477571120233674224060504964067131860646658518569062694749713434849592934972161698452352398702061170506266693250273040668889167041739703580009261575702007995575122396271733332176400560962802715353343929129140394257123422153265587065221977240064450567532504060509364138173382640153083559848857144702107209093508838314939901762243227784486772126419857686637668037786020846277983056207357011736230096581664614413004226991123071988577861788904978757455275400456328201477130684001922930882075886138183401219936413527736354127407441920069005416039377931872694257932909468418082864389624804149106951353794234365848804975014072622920353106795716206154716321759534846324293557248090623252056487182921734338569783092363962859243288997558058592668863522377996995713513405822655855403968262339473430792700149301987880943359596631313080546308046259940610682732333076994448806831822547751396429216111877171963796189031145885995619778521052245708902918700270015329520613772363751175415924336293903265704043992725034204749802483535756579486702671293244989936781123698474652701469867522087845480084955918947854243449160813421091553363850241895916557786542772449394934221295257619437275759064071157116723686927711595964295912847195949348309910520462543681360301040135660963440961330909051109005065247832310855521262210260630700916137385284721395276286866946324580575895269042666417580556649371146652428509480616935162754005325053040987975806536957491667794198309940716606326067554487811976140678270495757434430932131288461069431027168625142816000283219339910937692417115483846485368747868062488378020063542085430340257660555295208081818020369286691839788607643200409485916554670934204550748969715616772003954455051374126128458643530945741700831026228563011626013681067347762488147038625677302399062937797907078454091373743423018785076630286865666307902842123751465941734928066080845031034035165256292509272164276661795230624482721012664324403622769612219078756401312733262093994106343168516293782914766406319598871801476051332355272230381168451676658850178143824765009099004809954150930076546995573506592941787389365009445438024619916082067747742152776275374680507485092322054697361012179871939858406857527137093140319297854545165518980926355567664630419895779979837260570106946418692262152843501153439303939871516489212881176746306221903523808089010902678994748252549876038682099645529757395368271995450326664201927380279329492096655170435561660236189173413539732041015491584186198585119174087296235116813811253628015399627374007629192726529724445091082030370330045448109376715297155336595740162654372476910594143810145493578171101879531526282827396183054859951844804799178683759147093877547922029696401633967724022577031196506789047785175564380467600752171394294757909983960862308154341232947192513073028669355676379235025289869465669501040854913522378584032564221501723353247493956410717372358129617998580033170749730319260884443752983674028627694788697577514935373720371078570954387086971796006822842524155993071595253461482254243776744490827610031731435691479193128531936310791586449390764513360995539836836978972466978938112861333653338996541955263542209195410029240131789564030917063211775677246329438535107274597435578162437160702798267154431007700900217243202775276239147122177544378566116136375679126446231258770761019858276011613973123612528410921814869310221988305526062781204288016301973652342900489200774042058578718976445288121534552613040375595685575179106242081831293868102496695324992864223489575646272861259979054279305924549866087602924595199219891382909158678858064514151010570629375203243059251231336279268480775625466254646160703905480138806473676652672435851760476376414692405181975728646433597295876745119075545641816598942801510128202524483753000687795651906054675117371709880557019760606869697602952561517871019270942354375569478270771669020170875779365412544852503045102030047317539195742561876192605428297253388059102005267707707982443672274113307332262297431276343666207740732908261816458488756235670886727756639435970739579435375836758195310499353004503208434569982898005315063536619493668669143502462705310645268537897226219233594831456917135302660278834767332640284996207502870854210899001894023441194886897266544625415878516980605046548784802564274916146693493920149368382844198667586024561533588972326967452800376985079286678118295481961561818655283964135242812106615072271959794874426653886844033109616151048696909934525646185517591795655821714633410497191103022370378985218360594621168018895733088284443070935155889962561396471658737823433480931805208780928437965774486314016001633264439953796298251315705577007701475641353892868735428398574859316030651335555416088251331386890375810461681507685553546884866932122452852162542499566127854833804067240381751180892205710241411719337495923473883594461503565395835504535838901983664943292316149833965163777509919645773745567798747268371294552910963319631379122712437579897168395104377033114039322963593868350262826103960065613086027862193877006593513084359113674165828991788739968330792200529491873404496307187061827085736361315453032522620535792612858800077340966794572945465961869724741891649724790906358466765153636879051075273661197395487380057095919676465080874912518936622540419043921335401045008691011683954482355056725319430273550810962219362027241613544099051299958337451258547255632406409808577787214970695627849252857396156459846451744079490757412496901713709983205230409010608438549036366751735771385628599912151574587200026293605679699483376085316636854616347061668318224211210588684856016492580581662816836847494412965172942118566237468486104666560808679742861387888594181564002630567487421454984314285249616358280808270054243850235180445666246938459629628180306313185465728909006258739010160203508382999661941458158490739849032339525393292186289643697872777172381441144535714219478317083903812153526306054864318093864938703467938295707372340304944555146621785435021515728851357554753957689840001918204277045447816603203599657565887859867837991129411418353059096503884169018386450720605779555782210717262142074138106065111961555198512548859662619033861198576214252466394553013752534467408185654806507806572276959979885939123941012773273049633720649482610907646045870013789854690954186208998834741659473599383633482596670724715699566605074975107236961957479513552776318522131858646112394731165316498835059648814694184675945561795827484783943454672232089124971865026161887664585065030416537421541250149390946022386792341327960891901743683506391431929291630649177885865922811897241073947036310929923799155661615658564834058949403236416415008093605349271354955991356668244247802735516968786584848643520689447914760724952193281474354611112335826785620808710596997703200935727195763338793975482667759896594597372618479875865956970733204703172777651206662741116272991975474412557381610145990203166349020499627155035366394753616390214512150759697925748015920820022582403649979046083730385639203399364952541684719776681679696934695041250247999629215816526295971950291163701993468944144163731741324258655320241962319506001887743066858480519655882532372662976625299248464721648811372482894808751501912547878735696102018270273152616218592303140371803546835954374078643446771512859238856062077299776766466971045595377522186004437642265417196926805053670778768784195232060888980180889749143774128780607887735201244643237160200188986359032017923176436069790473222718955181418090828876108843463975362226292593055856188124622040575407247988233868007495345485629718473998323711488983598670628173526328813318139857111944357115254711086533226245354098122913543312997810710140044607732646953027049194734793406319025869053993283809260664085928996953494881440988471008876473446697212218694971866844303951537603623830773562795799410259675659705115157644190473988485680414182789947466980405892022466020305837166710099778575140785771522367136584742419936429746297415284959858037702749795697442683506118211188676061116513069819408128651731602911742119213345410347093617159960411741239129414401659816693859373994781755347774363675071421963567217173169020693040268752185873416145815363221700368927271187132289880412443135881540354487327852186320732020904302444246928676657062507291436544053983920086167238989740879759818879378327424241192592105178843780758342209067069686062340198380130907347030099971132683172832669038657449080464738417310870063951111967851733309094155685206803063366504264073171173524899548913552860715343032603771803621248807583600595308258244940348639491076794423919759169907521147729347429319400487140501009443491098026534706857544781685152078170294016766557351574666235693175447552450267032452963692743433514207800271541450469730177895255693402046528563888155366094936203506197969180021101764661217505868674349314168371409924925717902328619682123011624806147224207539266000302379812473074534646438655610526890008090956427345070275970254330556405221669456204586695670266981991869513140281187454472634665611593184953515571027911153743341581399968855071577013821333144859182670131029798956388856908908901494813736548882300136168006689166034889017094674192854239363351197322508338894167794075618178134246179224011725606375465853385031545430555027620054426190237217497426311445226180467551934126162114661776481891824406201208622115098300982302742644025012360167143342745955477446114631154497399731911479074337624043358001885365620783777974250918176942014686187921244280602293966789038321408888229481777765206410321232717592843153638087710654023892751520617270832821093878827116633674038742609723338714724386748023860411205608225025419887838569856726659879552120151765638866857743395897354361095179830719635487632005946374566060169146761356077401657728345923630229560793705783899817715449022341723954691416804702408677042815762231295966073353221654148828554255616033798371938456723371547051760832504355775766343065677738326022314570447662159883710372413397213587504149575044360443443717112931234209571701885503020291981428898408854323369278953672984359172721246427797227646543824195327921085115536610442031991332022067104330665361850978351227022612039964728766322550643543706442127031029338009735701454076678271889727838232500576440913622039757024713390000521207871722073704373955080198155191263834633370576534967620684894611497797420750668072348091853404675467446438710508356147328987901353901673624118365835910019702289904805626219129417918553650024567286315289387711721996284036603776406173765960220027793915860367003112288763224194316579289174635174628684322501102418560622527627877497674458293298081943581394738911013640157707339655060720543474176842914616796691508782724298160091450792419676272368824727018956024852534509648339310171087566278393793671542775806010479304029772852434792846235875792811723047660833451740737793238971777953443329819972083894729707217105960980361759829202117378603494124482418860136792795848208406814601532926153220696458961533465677972766145454790242420423196709734559288199838332927719074352644538776910698755229528116286475791221414300696646666532996755222297551784382864061308076674956554287570696927833257174115477964666073773829571552170847982465924589320040239083176432492357998554517862878968256647620574587567898889990872266422445750900042605675131771370399436784613358393235901004123545710418174068937878403889554068404068955222809775081822535074849251047277455922998009060902179966044098355384975667150347821985802069918253295203048607051210907988968246589799615175500920310120317700987729575666242631589649774488811915508817966979873419762091587915953809206779018201078690560779556387659206896984152214124987163139137706203468268891317561250126475866885023152982950883596590844136476043058370134873161225419540103747916817714206285417723604837719485824061245985669731348837156276110771911839838434194446671222392700992725221034189354975738018101705134977382043637041502751375296221170505158563074809427636336221509979648914360597778734678895402495015731818963731367095378815513402934661640896703477338493354629097612550361630283127893347270064456780991164068260230036522078348715894151555075438839559331870981563807401564448161435722470175133118067352613559522389925192659309867122482949520033769012151301636871663700226801615329854342129533967907625365094883926336054418432609841137011757011413200881586561940166677870151065519611227845993468655929550159423625453920461787497617376006369868348596016149355753785059707263293727565117980748030043326487499681350139732609902905791850005000191971068624818208384174432267992621070908952369190585982666722781881710569756915106373542302377854509690554919931699318383457957361057400284866606972417954490579178311092957438708870590341384067818962278352906447979299695157896424966713861841260510676106372096112782008402157451241285827308300337402845564992171175711616846450377741145456682177951098105350179510310959851684929338477598650533097732163124380251321499596642628804961766832165708477471380802458324336491777426535047179267853670930030341159136963172563806142634371370674700971049378173764075953139433812207284279130482601508460071600435909311121103484394604960119025023054307814664205823368048151418612962830512364843698266399368066547349836342665573128853401046876745857018859615414567215357359088599148701899270098798340984501163043948196579790362042627115512271062137741995525235784384128793458333972204344077604309621464748602696943909828565289763382177925187788164135083513992724217073131823640093112454126346088315424398047964387534654831504368818562557683805099001184475162877059788132009586475747118721381063182426290783949087625129048808819180824273789407435210636602859069792234702181145807942391059216328827822359528940467192905109038055060141888720720690384263941434255286930128338888789308638485278188685095264672741267508491482760654790184009197301925056919166378853390980323412010731635621248291783384058475843943073958376197246972448991365641116499717561536507570297848593168683268334482991501835023852297917289600185584462753472486997998613799234666417000975233141917221546127744284225452405626197651448843052881530828054202300627168471726569375130034078280102491076620226635922384532723752272186863559058359056160510916412079028862801526981049704105394434524413929125298892377067729179762159625561946876962727446712625776414142176603776086959618876815994326465991544074004852071025653087979539801476397554346113490080928110694525783609453798034297420717630834796440844397245012142444734300388210285249739933536515052027985638871029310410434251906916968245297943829788454876611792395854755659771721254323385721235513461154413287525249678907671858674973768867067457254982141538260569285282551393000245142933081411422179800274911148096619488241156454196044056296173996485640666409439852466092366826844452595437002137639491773211796143048741077601025997935300181958174259576326461631094877991155807528038712454387385922877329913818188784499382880095226198863294038117481699198888700618885554814213477786200386644741396495150918880111271121729782448515133748552271521333163165038257164126770784005088924237284463431564466495928726094806713355454224384321376073451558605030562344707907573615684614744905486695204139136620418554286125085676372263637295298818390332678938143832955561202289123617961211471035166136836974799608277666248948123301907263986838726437740443738778577622233561277833630983605319930866795373098168794827363967774484638482424441511332514590059298888441146985545642660474894915978824257855593288898599781534233391879297869285049502172646761458811713572492880079021643715228574921836638753483834543186745382145906791989580706308380440761256541437732011961272411507613206433357813214726651654436314694192356834405005167163997404628680418527684438760224825873605246456693326480686277704649999499116279185370001114733664087177978918107314340689154693001455286474953830185840216595912187566825501515344082149038465168693603912742305115375552965341752450634286688641962681568774989658877307579534504820734695076444556814760440864276539243742532048651334636396617805077014178859953800178139271864100034243676897318073724410802508013183467159725213622855083543959605432996964117683705592929521707600690589808304648442489725878903356480132236425900251124125642395816484699830086206500994050898552396448399854597340201939303176719117447911735250918487195859749426046573960824793378952452928886793661297363105208706931490203345935264167867137551739696172054979637260014338712831154996576117975077848635255907055265734623284324640367288445646696564400711433688104120302849439378276921595068218378729680650377757937197473199443488873467380147834753585139416023827904426243363600696286822620479548260685169877747271839928265720446607206499141085664115832367248524406120305940581195820006654687645680397596372016582547156146515694031346157629676363144790005292925411509037271518761224273731132324368302251866661145932582659477183414400179055860990938226963978058422459085511686807453590142711143833312127989241720334666475947870206963928116216884132922123987633443820748719405485891662113970777907972419475095579167070791000841131542147487740767064822808500001831290037944255871193519896431123503397654044247529141343275058216391361369551921419747925927348432740054078629060293618232641367888169563816978628426278345235940309059232916200867005473582740256134581835753889166753249272222108663877917561320048730875598794233949506764906061613601046074742009768064300401427042438435797253081006391345364751508816976320374945731941954145754768172117900754289138561739064419883649107375974509906839599815454421234555061219065916524201733654697092730349623059474417696848480558167720096716814455101911003450316942555748463530108697098124272201533364476069814168416611630422025581314327236349361956880906762143023068284732925697045290054908931578574926852209548072855289204091839308276398767062520429459024251682512361286014012567705162749190494448124491328095902106929942808412233826096365073061153384312978203281201195613320478493750998076393893561313408706717312165578181105484812563540445665067035028411067695822030016806440678575878179596868710218660586942434916001545243682497244815141492634234123223984672728912965953921929136385682282454113126433713063389018072506011869515379241299687504840705570874924084901695043652914346236417415936951440359505998688132110756071696847089439832985227416742536506141087254121862754532348102348650096476378601215577020425343352122060135892160698798064312557963589972692953192546583200554895284206344103296458195543220025240533883134401794406411451958538391075725835584552716565883140711896425613981227294563216434433407597798287118580255568995053474904730585998518754090778478816550252152382160967267133124242282247043772348973459549573544712272679032738443601155851252101994365577095060937214300463159687491797405431396948069358632115911893025088072743328726569065984276310412154100068664287233699986298309319026982737382170603310865460246584634604476133860573614292241572523856921449570232254633405418069820932647150037678896932708855175065049035233721471337736134679273900020863200962379721390149001893753698551320791239744070904487510100775447187572603434700569617937019629637350621977973137600996387653670641182584470133004789514277456559809127691051584115707295374986206273112915673183215784694213023476218624723768467842919505347252961971791585221092013106144684938049637399595332347570929600918224529801869948652726088837607471170479935779335151456485724191992538561569782853091410030583314024882836692399519404744413265197224050551295644294389156715969869498724473120923194488236759064350212111181156829491757785535005467955134874590921027487318730647818830156176293100784217117252869757792150866495304965516028310373890704306596514705236430201613571198845940548976984276492069062584193998622735819545238542421000014464883501908476575335438025842911638741157286927910811306928698861851295911713589655638008244418305091679707212073211363434657293347375064347659223369123218656093551273340943787324417231320654929186341826521191874814515426202925760484625744984025662127770323132503467733912150101706660066729006268524459181168155643263068341914274411604151179591818576536414231119146976043156931180421025216077500997079893071215271450139787680201651939156921855037318796402893889703382528671200672906499675354877452907182444763054241942685026827041807689718953052235842248383071498028007144511076799229246222840713980731605785148546903244986478495192074043485455557162931581269645569240585151972987019934307066222912372539537450135351082259814878209975021428611063669087265806409609685087079197223859245345631059397820696499696411391320622657003480659240983973724568182636834661358730611106211477036473728587450357185039697055126062081516447198428064760826617181661398877248394127676306499286695843788988659493003013469406272717132260284424364766469220018374716650705821077079215777838315980522874169277610171044860912623684526253781852448264677525707320936545312549013668411492587928996996725086091875341406642604609946146598518653986156468180404564109172132914281622431182348143949950971404936169854592633575650768555516613831356224211685094855630373108020734961076692616506341515742679329002806290485832323459349478673826547417473811928756893246975385440556507986882074441704999732670434360591703068609467619464593828438242639149344758440112845479765367125611416787975678847885897777614856880857056118128092668909507217268477913923942554565213268402388127692572047404612072562223346087314982599701680295328157174130796760001413265891395573820907170516965025958620056389865030279265797625119606152314185342772483359752443745439214098819480620115362730919970156207321520965363203665800064390558550040907519480591039311527414795330529632138993582503852731808360117441078037074879993196903240830448383206894149179409521447833893893763221393326097937424306829861457625760763901670600179951635332433014964771914246928502590129752899818398669618642939966566668441309585940645509665333269008858233754993231401085550916794270455352651828260646311597606810614959517817461262910267828379833909537880439229174412624643080118701277678568378076541409036182731835250717764564193540146200358390460417348702589483219983406514681711212308900976174868293943567380751897465752558125563380485106053021017075770726711646001407374682823324175960652275227645863186544583388980369831101317106765739015021543849045844696186500826519957782898104541578607682365366694253660789195329255793078402240893071237180245491939594163929943197671753076268894657427369613668317871256555245648132883238324055085612693095833998456469083159242261132076584255049668296425548287304708724120944403131078281011790383863543138765435057872895392022830103407669607250769871124548210897967092961574349997675095049152733632435287233949103084565555689177401303585033075187928053581274365544209686667115511891040123030253747487789918716192448791392628997336080070515193830957595726744306468975210097935070368013919521920246904972145739814219854277259325420107347600492084693287774850691304156871392389679211668307037289702408923470860946246749290361038219849570649571971769779933171597601938655036046039287545495704637696556380815666440033505208692127375630952591622895353486359143741198301784740401997840353392525163783206024995350195758220455473665570437702236875575370154871964363848606338961883004872382485296634966608111534485205533029322947382652778480199110541619817056866029152814931789060208802338105318903257118552411590133061363330915299989515344015000583637841125314875074654555432241195980002970841577414383711612989635643633120548696942004267328976682430402660108595114570053672662955288273575871496217587280412402025885462171248830530655212371656215618629971148769361068705293853501743317577283685951655697030303210212379011001223540687486900113475692568327148735614393079721098515013561325164784845142325883047261659554136039482492940516970403541087713109634316344206540746445204412774920319499442605261533899252024463985726731868948335294725133670044019240851405019999336474689565340401298728808401959202628803396237516234923297705739167063855361795337636518751095512076461763597587278312517964035014054712715825538416825786696339784707379750998081535761597196221896217624145179467726951451288959288960919096030874103198520434459842231020193689934951337578489638861871362440263319546928274943234847044105897398397784404738422804017555979183501733269586926012972030423063332857132420899411765516882019244153211040482438904881362534124554561019328018741045320424809219940765834193852355904802057087365107994060109746352739853181899463311370685231271393478436253574380871434506296135003490181287797113310857350967724996049028766255681994909508261592536872264727699212749858965567521606387939485939932030643214537478094111800754589697702517166687648156995109664855212388279042693778009561524581481887626491640222567609239878469276684344042399904641707163296317102161161364580964377989393134089033417197924737090278764127692198183091393595540879281852018417928406732035357155614680547201927245533740576531127242226792772043936151255694077676414526168217180206089041625208542298521016068631951487919784229891445048922213030658880939960302654470459409163574357556961976496397916987542216865155936128777276502201514048981606151525175980914552188832622311552340853997698727085432102678151343818565875010274200327576259337718643867866933077755546126475252933371428287602878479786260996066824730219492363301979472228246313285525571295531054602452878822056458435300923011043442706491177916779003539839052231737324379440793577297383962246818613632574561754739796498503718020745836437542855737059349726776330704332514845253297505707146762188959045533244858094387632581441477740658223084442996937298199914983974855054180161607664938821473046870923792838437797559157503531318048963262061181626452220786963129601347514487881455396286877210277224183523473257958803326411815815743111364471394664886965213219085066728989337823290691253835798593091768214868467426359081307158306106822176419946276940624325335004543948085407401637920996035123118395228038718386083357700599508091970313570702202057424984206697733037025966054957638048472129369807129042881361393195840939393610840931225910478250481133267371642009002962153196518679618830255814198728512643330931650548458140341015567630435206918800100362062193036324412351838870534818362284720965520999017869907117343050328046536566902908428799138251295527011646318688090009157388284437072287644964289430578682211822461729990563591406908080751131986152214571275367464134569941701800616411409866342657256054697062860568160024690200055242570999153605990084618947055226915522416567468574067063058929943775177593260323917992286402134035116894862857523963098459255916861055757234184661786484169718758812637980205572301308236865491952911445340887557790323268531766099162760538491809157839481345203459613075452660167945720102676597553444695205241583424771058217689219842107029489447993052241376719691765739630004819613780666859706401569351558028882749163601746502703162997148293600484601912396444126005141203433979515417052210125442341171499202605208452422787511438335817889002440481508842913015592654849993124847253633938201429710550860076869921221656368193119640921900637573213683513803021504856524782924301913253843501043359437103060415933401745731558480555330155147438076665508769833951076470893415318806716608726954168901282126853102354366383439977979989231930157213307802170250120834384669284551704990748442992808845479171518365059022219249439830836434206684629939541298277225989111391505229396490042300683418261061200510172189444820375148933854500259670201078293222848240604044764022768335244968185790385421142516287336662919058267456089756939894132915208060615862107908683574154615173528317665125383141385872269462524828993394082420031004619144393645966477923532854887366206074303428069827188696525380225812599009215268888134168380764251497923505111039203710090842405945112391287898943087177614725892759781481591883846521317316158261826408368137148347184152006649311839980251645058090710569393856577890801605486373012787560425299240554236188903892392095571605047404155714221890610453114035937790023779931209243006525365141902743902743818647769002439016034205268072209353953983858155034641854577299621138985702803203364353548934549019547136856192251633019806118762486605333245309709328884833417131541371421958853126655045810166481908248505495420167770919417089181770249200759264606967725766596159959516004613382251669062439521003935174235380713108055653726054181424193913357124387502276670508159703775720669946872182909567973566720576086910813401840513582796702314900646667543861192770246803657455050785452882545049474621796482571534319219501827790757954452357759823738737537315744389801225574206517878354124816842974232436703791742470294456556013447437196341573618493587364961805596562423239053440250344852465843478234831890232990609182484679050968840803909290610508398643761471376712943822185343353364405599065604000631520487553931063912994925995563577381003935902519327793127988658526046875424716004664841140118119503494874245831376303738093038831019549703945014418722275740464579432789043384525359187452213864110213263010580416049888922132072900697430706451315945384339656519374783934972335595045236536939117556683204574740707646978594751890089545411226848341882458889790430576794147180032888637724118364227684556410190129736238315557621102998434624195102032486533402754442525441929716753892971025258036410351057740232074302049089766184540723435292255722766779351808508189518211432741996423193249774315164577435875928817204891019702261214486161873443057433882980209633615969009888193274311704409102417397154128721751514605684186156118366276653124495053691321904214237515880454704600943576329055152828588813927176995524156556028499055524765819438926579319125740167877967851900612786487953978756426975290110853475881165162430171335961231784953916560661988583193491264746145380528942548341858623338147708377804866057995031041552873832430357298627879330617640441327949447784521647789063814077007694371288618841664703909606287900367269495424378314642902184754280500672832786004098951106568330882741339890534924975058221569296902750250084492339802570285548514107663570759979480876091584980757985737868477102871719463783746159734234223569962803298627556993545490883901462875989526577123795226359129899443029908627866968579172200626744612510855957138300927210572331129869649428686665584492003048096857070809238138084807190059459086715507000750650065158746305715623159610847040276803241019623954461583785549847383837061375855110266562323074377175110906554916728772904515083583645127987215380117917378872189548276253688626439890745770029840467925213793277317007587054511134699003826431233264904020950571061050141339557946439132052652508511450642442298925637637694298430496657217139456412758890581774412711471664647952726176736833104310235401774073465199270583096865259416977732105593534791451298960831404349016333463245403617712214738234882858035073496731526011790395694645559700717063500450134633947290150394398629416783335819979457371889440500894468026047993834537923753436780374745705007625256275009117002496895646942958476704134536173137974036752692084174138256422925539710916530025237563911620497592314104683999507557000076849695065650859411711473646379545329583840143338344878405621278973783969106243260049618997142710230027026134860892053494904923130317525733286687306493524721774248345899906682283974252287637585772577674630891027083596102669055711779135452645034395813283222872072837936622441258725999371550498385438274020224175459344731348701139316346079708006758853683908364845957626050831876802090647106091942448301624431929134245675120808653982227606270553696321178234196807743338543169811362132405400299961332650754407885171785251987835273689403143425150131897790263604325099726210556650730647799741980093977663958760056918288381382412540312277651348631833067371090349451721156302180209819636156066791976377925580521144468526770972009403940951160089975378752912077037675751504211844727412122107194640169104398732630079817137682420375232840259944561979939507229170117927030689386612469216043124047402855908155883663280619280881374217532083597692593361399198232385080566834286708373607307514870826448025074170190894445847058879427927364795193118229143323332111742916666932189177507068009146633610858640550948817974029182668184294705951869100546823647240416823097310471120183543952057148709279221735868437841466355210418587002544536397445155069767111866732225848478720695943229728726343558236361152293402428234757875599182411917286710890630760259406513403567254618246884458976340749430123535645743306267975793149958023892290433039738411417024692217794384706431994131201293032006132254527745322072595400647175898501094980594213391133647945578912886897902755040777824918108842696197710696032785961205929934777412017379893605334537768727603801152847863455392015682247818936874576158916426443748783084812021013690873589189542603826946482397331062853145655249153161429748082868976703552253390967687466950755714264566496572561884689302140136329293011078180430518301228905486453571458365250841744422957614476105066429059917451255625132830716850665416271749469588335051640538072951195267277950815289953342089099709794843181330878693387996185767114733117244581805674522897263088427282179955929941891323694071815188178891181570430519356884163842107162813451793257088597097203534524942087717581815338653508622104564780772776157567380254436873305689497129443352592584763757524075713882931453482315095987890579119765460032600089950284701703377991279053351447378028094503662909460545950988056360271756176250771935734214090517526301093616414535626465319680684211329083269111030100051479376719692796109171859873668864609958777997180202543291040366412246108644338380113843263488657756955924093306397744365422520266012665012933384363154815746851770673379635734468365487761315650348159555112858707843322518249030712907555593412964354100511936549295901697250663763814916950140920247468061236603178858400769565860277197800124490022530308908011929854546321007966431113732595296155429731418183927195570214655020203293814949563663548981141951554078511673482449292157379985754386168916376562385990004255268255502671841896605582503381530570345114609944467633813632064385459887743030509061817942955837120066549526990827560138475453753710849285541794254052881048873488032326501674728477103819540951107622431785699760390178322448852687849674976440528597371556600324613776077509714773495892467738568119330891001345509693860894925695942386634919229741155197112965819182294190194141660716783384091886691344699099705229372301227773300891988242220379580918254949787474722592491944536101217085255244066175633466627675119983593166233684490578280613372337352688913251979569398761866333133345218704354035660518583147673306533962488776217008752879716660406160096396055251384305605049205435214976156831522463809386246567068435910483530737459499050871577515636052324019371038802450351786587552305219713484481106662080695074979034068421446235536158692576843657300359556283173516289597863096967229514417568670871953036791986791725998830385957471369601734371262220627593809622961487909657687174107123100536299073152888088803756578909729351494657077692002863682802725414463813744478565513309713730274286041389308367036741226768436285422913623372625662534268788483166302190241757488847913716427229444714629032954342644868188780451644271333051778811784172246221182210615231060164872140893554069616195766200630622545566264813966649891607405352240473620803761035384321407870829825885177247538880938926158711944896147608390010886902654748636023588737337541802567465180999303448770508810545187916595210460080585575449471130423920067827048861018127560096968264873367908079876980063520474959401079805137527282068170703327715975693814998438881981574200909085405186434579679136787154622959984202360574617483482229634078965599956433411540639164665348932712494846411514612053456983383164207213124930511252182647620556484024993263304169920296575164755384127961714720178539997086495968948601563113021791575160443978374698051232314000304847323316629316835862706629431912706242013946129915397283647621636777617157574750539518398261011563351706450548407192397389905629030325171459420433773380105933070101539739212435390054973361048437656541724546639522410991487022255444427550283617836741164680632889501437945250680811628948032584859573720680735681050812749525452334908077235774131511811802807248453010673601942713570464388266167779779039851558258221969209574369599145256596850835568809256603165072532502545602480037575522239754364207827642209181880129020505427299337215160351293825880305986320430206237580796625902386761282600989820581944694107661178610745663119492363588005011465408593301861252570448741271016830908513353959916457599147475642808416803830214314488815255950290093145045502186701204024145971435881206160859346833128407985687902811219624910043865008789815499768957501527502980196766949489565441238706978388618210152193512979965449188891775596230180967984528747026468698319002977195808982846247091713244535327919514812318360764474294577751814030513174324922035389564635426550515761238055004228931429615311278007080036292826479204440578593615050046594838810977699764582032601326674678281360266626779006406695146744211671352930248538110788708197700939452167632114819335681907205838013700711979371779795172642224329104351393608966321879405277363494189779204765904268852856209851190416047578573922187536634897130288106920865664379671918606646029254942303950975820707274804177793762373265132555538981197433358959208719709297639168005472838506947554851003920159529990121339519760935352801936997048555223463670278281574575072364232619558347563697803492033524763975498096066991993717454636176287300675800595450165390166561199715442597223099227433126667156115328858488315974118652831759370751101950945980028777531517059338529170020827302565245845430636815269425252700129944213203796353068691431011982895800947743931783169339287395991936991101644142822714855250276983017717816841550383330315502201388908711669458759221971218402925475169128173082041173322758609887446170289740460424819759282008575561908179894862171098785656065612707296709240786808369758739555099998678690110528091827447872758410967413260725987250194515430932218143911401111931812643531028457039804103043334106979917468206775455731740862647428776273057122439828316683096504718588782847564367247676938269656508216026265207582717778406226771010197371068847379142762973335118729284128184234024411063192015885599874063257535708153305926170821473059286610197209180038980061699013209394808992816896061994304310292524539175275286546974082663775749775773845540434490689391883181088309086882201495235309786451416515285115410910011314563593977703458435076399011905583346816815369704861302014454887369550371701118551608294314251498631870415286047102578014918653380816104440478846022308400927746879981539649745277206263993965156951318846558890849906177027824008772725921734101085008085793925882530959124895120805776825756166120428833786056110643808696225127573895458344419192721625065698846287606386129149480979212729348555452909956726222019183371845007650042134413233694322948068325908366273884912105657491278361056665516209701090996463524856799347231541560890249818664719035027575413180036916209704453419671740362343515375511487826470110593592980466495852630300178431109218044315527478439066985593977862518177679233216202683666814998449853936935502645034229540700998244456133768627497188571836056353019049469214024649696980570298827044183802014113858646647966897082075787664346888814171546163130195338121758121178592796386875952412482361052621373646153577347894426780955980838564004540395109098307051257989363144295341349710736620964721499728069961711987536322619424744070425528866416101377181625095826968871932563781920196676078840423301132318715912727965427076506960049521784457222594387891021532787108956585865835243449008969711659697114933973654064244061942906195386433939482285328993372329751633644377921971543055593584168733962647223878167300802651380021679777992578055885827395109723410304939898408198525398490400155412477428735566930731821380750905332408394069067674806340637385500620694214153714481935986158701378541466857799997142141183965847625969044430557296886888665755624896117879209708456621880223369149461220505636727979592086866517462160552802928695679291442872511345962889472420223804437597084348956458118749994795973130058918271869354400761417239888486758457643013509219534438591618905482609769810997941168284476675521742914284590986062774136103127230791125698058501867471731680907637591310835946806428996168452904183804538123230332534326952996247046551455992968874853751783722164795734024183146805546300586592884847351337333120219198522596554019843829884378554399855198585446677371208661070916562673315478191534078257099928348735850747114462577577556679941337178802049562260601630013241627203275570728955272575462509276726210322391962801600974113857389700329477581058228587110871506366776751307199128494574497740580328273406296229909462402026678716856452618125564402349633962219739052845630612962962335956120830705877679207893320215448930406440204362226297531840557497615088625507473622386461126425831958212539632101844607536884452297013460179318149766255851110432699079762175663795165281081517608008052827509250966751670082886439843606765070540432984808355938358891486492132080879224349075193243790207366976903127391153949113326188497231718112807467907411796421564506189232960749236537630223867511394076594608877147185070938388273730464688328048031536871844065567857843708443103295267146029935045688636106698209533898389720289778637900965550553047733859315812527000771869084526439852797425368310615830856484162789846596546502070104355329608798392726198640125667359687768745260031639964207476321038820376445228018120191358410579258167487933020418841550502392247782451636635134199039877036575461441257656141283059452347101080602625926538794448094426441159912786048525671747594723908217925897013695644139551501340835259897815239496663944782980649945695842967656957590933525562998899996653928780239690817751892981100787076089555056054569361975243642984625082508804755054263098369217292491997968543002289712553785083517046691551790921095246689908995228972522897251989256017483286473634073938636157027809228758131573946988528591226400301730651277712895837192041683499758007560238662084624807450320287387407120327427744851987295660153979056199435556407186328115354028755422173858770826907996473437823866213250124944946747986983430125332304413448699105166157432201253992641067530415259444615524205352377946798181944219336410311713964145235236370244077319133168163746120121371069922283392414029589921011455912091772112789167742975362910092597007943717865619989169694131141242756232829756703916829022917287552127714674189959517449626390231091149290125359098458489590676929983093133467033537619991994946352641384755226972488302974150706171581250718644222044838860900168327380352429554116663640640418640558811360336016407253291907880157578337940944085814312764505466969538497315408843661798447888745328261632324713026822330288516014473634676920067198970303172239429306565881179481823721221084148528085207939463794124363642111640165855502799854708108082992292015259840122324025155327069224505931214755223250726832469164674296189745344642096896951877908392809043996786645827786332514490839789252960164939772152913312548507927912846351387804877107751673350699520890981744376377833517844371320152645091422283440557466515068607151807412310828389994529134826471563533618970076539986101978510090794792764305660487505170261296247300635017676802000963466118764609583009680330160200103538621910603118879408872915790220953183139024466358373133336073265373466069438938174494631353564596059974549968332744887459595911412251642740137150649008183174720393172833957129803502714919192296377921559658637686552277381436107516227466093605346677616547901003296951836799708019501462064216296961912151705411628940545513309373854564903119108661950377010986328407874333855113604408255879191097302582142954241973456372006671806367589326665217329009434548681857396601347487256839921715253377343591103165902757152481652487820331446870785857026376550317830144110401553346924232170367228050171211580608775342224362787250240098859644955332398103535472859628163536951136625969207910962892481679903151919185074818067326473190651958535093581459795262660851225502060192472196429944401664940804148646692584373476431607452458174024962685853836808243892295446783871981594457602291633500243319237786219019346813918697354835017926785112695593826155438124053183322998991811500253509208679494275697084929769726461208029983833337447740444299792226433112422738378700547484504571179695894946038836489114365556376273935044667406004452316325424373946524594927207787252511798095259557551955958595521374258359967735956403466472651055206135273861966024888419849880732876673673010627858321828639568042016719374781328315823376107185683898786792186879961672483044665824479811463548369824389322683480510355730339427260361864279618456464272846880337974858667833948709258918101479867148981598598641883602943889213986886042492161093867678083387244055490186792042774244031854191919792780343681129392028498801890058204512649181247059275844007138236915307150816314270772359756728428539209808239487325979569003126152244250203894644624844857232324246039171903432558960491045405034555459590032553071470712091331069677023205922015838148441800026524360325305435740779633185146833585923196396456559759919035274720069863229091360169058311997215611109266369931996333511660773156532876736605571384005222540337681236839094496985112367638486929750578663553740184716286421334050358322994069350267913287270573716780002023392935907366932934077101833226647288475990646666584057187071913021378833023117436265727027303395866239576014971037416451244127527641060540591992149304386469074118946783122741607436954418687138817724584691359511689427311950709444525513360000293255512293586672838970643721015320610132872398435941516211751058738898413916308208089277043123410504338873987113833367386968724904183177565322640363375448600242266366101534017522072851870147724747008456550682978214507504400994835229883868016172247682003822381506682608797906469942950433708050995387287760829733084055995159527995880655413083504610306437749958370407886011299277033538901397222184678837009297088404497603754223430580260758300551685801814626418600123867234090478910788671926668956013029607952340857652783773335143712780563610226760499874637955913934910343309792253679383423071715754395892419064870703348297372110816246881486170508543025270343208390796769288626026860909384118935196870450788716088421442598414159978347746258539637824550276660345979137723762735522751284875281445537363293957158143105316852698747281306358948546519662870856340131207786786625317046557876859101644439866111713005347634712025098227180964675561036984375961276380566329867526124923038683645281991193117798757211770201987442617369675279450211892325504942245027053470992666477366370927667010759116962637930770508288920453813530205600256759038213838722614955097788324191657797440936624177943750679602626881446850976561423906634816006190948720640628211237163442634240010230365990032915630184163912898580560887856948745853282391730146683686628800616443571849523518660780130698635278465656990004132588343964057378339340519947670597336139607913973172728038306035185446759373064846568199224549260271187598489418528491986584375242476260612803786245832517847592131109467187179796245153247268512068253082779859664767076105982043940307620475200060999883472250825339189220786891161161395236784629182672847819683879165018796776684274888060088521106129100655985267377911382325028704183585581230592769435460953609641422001506666137402407763972147095468374697240010883809696980098560208949288153569658083938367076070197703085035253213531493581435581982804563052936180597398230072296440100091827749304730198972047101687458282370831672661127095186926748086423287331886032778168700245651924056246608095040398572917881216132953212471293975033895510828817351894206150340895073685205784400168771844917132639275031551085121574343526324845162300473235145703046459452787477211999149616943862860229684539084116921508101554750252732255429273012316847350727636377018136890504195836242160219154415961381809726027738950570330163144290429701061094895065373382659109758852022548435406049674922008558313925494875079907645055509934530960259132700562653253884909158734509785830055680510194737571259595420953301575381169518810068074406756588716830637806261609409092129559926359488282743933402762816451225059905943471813994887201478204663998672799730019243016507596706039136608971258560648833605476686569696319870375587184657806815063016249850429707416298342818815965270017798663868947782201735005402109884773446909975474495204551056200928927233696426692461902828902287385652794178807211562803166293073581063146898772191862808435187688523999675607441198614817259589802768436943938972774064493735958885486397880278168930025393141351545134210558841649002440905966479997155034137910437437560063783461250639565606813089454728309540365931636944782684742487409814091125520168693753516172307711944627242786347055138493563226593749156034573097659142933355262480167418033865955444127550005941871908143558103951100939237698359026437824423455122235365266182548262610980787902566547400017221642417724033785605727184630464410233007702446118537942237878946602062371050551712058532341568798640605265842373670087973470508188896868505586071940683794923831088154608569341218409556086597204948703070703196881628299253012553038085532766698187582318704845009638808626163161843611916316731415578760006209019675880671961205659127480568932127012236454321221780834401038833020087545238971163854346695057355873066154981753589240181901839016060010246347780281094276028272065815376299413574174893584176723709581224423457568366193521170462242022575767407863168564216847662685935859767041897062102121907384491681679347519140710843530003786514147475318921084400285546330403693784284315204473309576047887298303526670069456883572763138428132762276506119065925872337012450337498432168227983547089189158527627071281636449654421991503372443609316562527499676112584092494459210382823573371862071216515953519117738770290095424494203339827245299180287208517622773292019948459367809234596686385185984761862477746890785722572881737177814331294476361864197059349776010640341752526976462175680070463037475820758909661834703631436166263207825469439878839856088947243270478873167287614350482027057847736038960423075444772025472608753296562975777501666867078486844127857622921446477579817075503640540347932543190466109359029864638765937480810665423887108234678591698087776342533081905213449040951611156866827294442406628603466792006175162041543540099534122635558665911494722844372087537005248909099112176645507361733294197869489719009416583285340029921511589540334107672792875473645982719070568937342717200614272557391526233077089519580278473646003375605990217789333501535265793043465033044179866271116736033756115623421475330440678092971549906932653816515130641262165974816960068593320396549357486115359248198746851672221720516814145548144665215834420135749770946182451794340028829157147434869941302956870069210367280017121569841011213907619277301355648826670643343932874803568379434762145893651429508056829244922192435714576089845132885079706357176294211095476829254013647121243516546595079260743552021301281829699146840951665039740667396491019082392389750641518416996396826304023127850162775650394515897334821068941687462668199459789874679143268308013246424938491362091883353483729899810893095603943230238687034771153626923176103538864630238915057476394029876149011720186575430181607891473314670146180860365449604635405090369466495530378084758724321807170817433869235332779277723979336543316168411972226099334046589589101631403225453347851416438582086572494639218491215425286402692055393317566749699587590753183750022961633370932449650701175689020878215689275405778700238056190297363423689546083784473033597079930945311699817842446366350604663191002010788161482882751849675410573237811560238693055630980589768763112414840893725622857488266770099715590655048475741251810272687080683749800684726598521662395466261302298254302670946624130231798009104946624121996196460095061481753178507989539609451186337908466883804518051111550010740076251713612552504202999200472842330258745604287353156460485845921654050722672694897904114382730536358356888127864617840607347725927337458954426947149657099816747798219569257055003649201571138677648920282343309619679793887704617870151610728440112718861348545144591786489376484499477958226386125568792963491157423881061243637582086098918603710180909455610886836420822697987730707372213179837660945987340552008085830180575741523948395651003016981818077247123105022116768009947163546903511463870151641970711887118208595987905945119365579297962822806066767252875943883217641329191674549037597557613506987536283520803140357318340602176785779618030237003852976615989514556774412769007104206902802356675720475861145768268291831963171569806544235553461686748261125513304795811534578880425535657462482818107124543611192381331606136335302457185287432322469169027378931907475488727276020465719943770156026875542878749083036812644563681227672509848251159887433772666231365776845275342456195775516094091189912478077515641857401954890753452697846870540180687671402363761274989930067225606792956995065084394509887578930640221290515936007762874120577984873247905918602971706995856406832439473199346379291579864493091274221137911944397324020737602236839685705415531222728626988724918705966917357685800817321074844602759508553161322668731683077167644127733082186497442375129432575742723820609625703074425183060157783498064469232961237276498570407439345146957980338981253819364311689964709777620857201025887625579543391238021016406137769108335511778919774369781695247584533286056498772487071484059884966543381288049135519179625459278588297105104830848827551777401681396433342087282579632370559467620948363554149398412426078760392537197032812570087170800781047873783967667480896615267625955519389261781829606220552473818140538467718163009235270959060701044566506815605746927407175662001388048505703788548399762136053165868968133023963954694854075056471421327782270914354470374776439123439458497468628387021707266330211568677140965013669767055869772063129113939342452198466973807201429777934279446982948408517225279596094601010135397994342923443565829207901459526338511466236820166240506461864990767809015445731962040439664323019909361908972784701370502718429813655364293972619610951686902636737810498040419077711277521284768317951135146797621906297633325361060430345617890375740977149553988038370064183135332029392746586945309633986861493214543006968895313429694762290763526704696254950642038945510996642475359696844493067111702521972006186040824206943650160530991805130630203522268302853723838328465549918375883214132869839525223126790117941458495818559718925249774524408766902549722649400265347037558063022961039822926499052319579358700259660263364981294666090346804517518393180102593694872830218822811896778112982964724419453638090221176834237491040614575107030204860341786679135156219469780900181892984509968342177609794081344865738531352453481775189548917216673517517032701092091564472572733675372965538412915734559258294624243699772359913391579173831978633263840113393312222204703301775249990478791042563968622646132008895852339350995436720237973498382375979873371512474189865352568864847203950809314201442161398100607147229321737546693683385809417924852435102067657946447701379300150267898446779763294139893394224596836732354779738798572025843402885357837516931417141795641525908773918132880020550839421980285660008875087714062426279968329246394062889496960311467755885873374015045039135386931274887676240665386268774881839736976372083855656844913160534123514059235020082795053443664023309978882967524432816782936538584308890002337131568634630351679911252045820524233978571272596513969056585846416753941387035317250038272082227349464690691816374804088904190088006927317775598379755500899607289689356092898765053749963818048483499786876931845410663811283066866496343649612263447605280572548591722675214257686475343889927117861445992993826622219343434459614075231055892027362928975415439664602280884071938216936216398359176113518901849134856749324021187257440758844235515654684656350373050594510770173155849273308049587657500272602039122123497894944598637784616020924805078657802799635656031047896503994642539389983827003192023645486894675416109302399989180136160940560573167764896559144851251377105032327731321790084391715491384191828197210679578651923409297991232542031584419223982133182224548613171545450053932198032356260629242357472103498768714877619638118351887478604153683568467605042318825415182687166686374890309816122929878531625556516791687599475616089921897542208579093188644559618790876716482298873834959563895903014716141387144116978167076828559069707946547255887633205627576379563294163701761498294116432128980391520538027050408252431898714322401638152387798481799797664342417341035017112803945309934776905641046220502467363416094163781873840625978847416694196748492592518400705600301958927823677110754729124687920329869040525544878314419797793847925678230800621578019998558110538952115884693769647695412447743363390499060597553157302365207861664911257244337668116924123985453352036079707600656365304209647504512706726700290494652889943073489310041125066251689030718783099860746423047735185477351177666399851624179390276534913190230612379887455026327038140259252941344092793415448473363656469486616876985597341233086282112998149490415400786617380690742185611332077743979015356466306280525294329592785293583807728700423526429914510481963198762065402488685942338889692679667608878906726951943816492715070044569919396944289417205562714263081236251799763241400628486870623634696643438729533030055681010940688768461147061073655436536441188559891677599435771368507360066552048032049262376257586251096055030753147522592441458708939502967244138125123450409034164617706874847302641588791889381950286519576762389317200722814976052975038645746172018112748225672636308509072147531147889810451748388964919546767193898935904148683134178211864996850500278896481430491282328448229115306373801789737711806232384835230576483492663145031154213121425501956301898874512339937534790161678631435137547538564793217921680299207142017890667482146766048260489084872947774238384756496613869947210974995299227290297032343250368304592912055348611730298728343604859352315326726604176235701293493249326082831383150684902414349699098905236610453125816312891232239859608025133857163591111017071082849579948183596619726681033841315688624501464413690582262994380943185128630167112355638206026339079250035263332293704869164686383849714309382103043987902055246003546047585014975898859755543281067014042486555039358996436631645617729466671087643195510523915064305259473582202493108278237585699218358625980143203269333846230296417429603556135118047781648179475774641154350131300723592694553463328111668789374363290002806500248033988179245876634185629693243322139829344564061485967944212261233995922799610919724452664151121216111531905097491353850073111349316724664993232406544776690830404959936260162881766773587905780825893100161122943204432938607248522764840711910622336013250895058454285088884058916681896397921427761445094090022752955148703643490420094928575517792170712861271884740533962904798326751835718110271481106910142841663619605527997542047813311799299457807235490831267083316557835177921581243062776520578461749309902450022484795751021997138837019348659331893970602130891961709076551757165063124570514758864753177236478876421236700265835710728469029923802017206049708279657885655369107821463553542359977819056827996686287831742882253206250459050821100892999261281454576592482569950221774417776032467504702564421303806332831601865943722997998670755656001730352761540856706411396771816454431592579341017174260814118259768079266697916970795612905734611505388337201489430924205197772473150810879610766998427879533092124633178460607705592848340279667712789640093261604653524650053183426629905633424484518000703986673681195147023230176708777495645463734729076836856195641061321985297286040994813561133825826607771302897381079873662760428517800064957305026296320097507686872841147529379015916415139133551100944501705922775300088697474836052128904285190656047495196420744310201715205222310938629605061501342690339328039058762215399702871696182125538087233742856182957180157702065067297683944333631865150273396518503666547468253792105585689191385503469027884576451274818573428659191148477352014677080301964159848275225091376887780119499838449247350253783436014524127099320784304861390581114396500464031494493854754697167489473394013229530565942584224198692503864680744056755088811281415004074669277979820690550407633569047452195313734392688880057580449491672919492344923456216109142428588745689359902443634137403645780016143226488301481390997507697168801353638528040142956982911412957705333315015777563326342800457322066888897591420289023947726525769749810710709770918332408624594179506713946995193864683711767034401337852934331954052392391695127565373141645264259611905402839235932282297911225762541806005787976492888095623835677933975760564201838739933124097514001294412141648768949205596806246982001810609161336279815443464339246811766079593981569860008445798865495724456591128769028344181856872660434159151383896299225228755913531880203212618822784054051805455472987098818679656572769089065974349286525105189569766769616035426789897277050999889685567459157854774033785860518032747211111782785090046694027237134503350069649028083636335746995940738674108502692312102936441880208464635828737442045394583037726384213823696048781319517605923155681991460051643535727043466019053333840599287163490777869323620497062746775822464876501041417071191630397871316991292787576959487321878385639675962914914845270899520518535047480566005730706894452920541984553466639183546637486947124490809474064952488796060006809418386695872866747246007064177517380667108853040034503266352809361364461003162171803712594312951290341871731472202413783749332443395463587517728100011274635283941946233207147820315267275326930834811184726482572486866425173495609308497391834901586855151608048856053560530190646292447953538762928465124961648611332769288519379394096128826308110704552222865298888621899909531035878937350794352982162908723117698957008579105596130460929734572159591345266791029924345051701373547223028858674561661513720558310207260446048569655138047063031297706557085489312367847074459318318616688312901210539419962452013786328398768565957839365427938878150310612200850952634573561875050624771911468917836042636939686348621333264435465569971228140502360640546641930156427802536428085591833462856547831301289356852555757729228582510746970729763479442719937731063217257976638754921468699721369853326538112610798318354086012477265194559131234299261183811641899427098710282957540431497475787470068411180243488701191354679826641069395262196764700108872999101349419632686856470803517521091133863362438467363688572373062913465432752274831001070762751027646832631562103197897662312801941988677793979023273256469809340925638431232506077059092771681862422844541520136756222548458162023267664779503622327653338678421212917312650044289290027102614296433506684422651847558598859960968070097540138992939589218847896917715310232090971318578054575551727149654167042404643467075788615209768786778432728712427002484972299352303665390871542267101932177081956956899111099889127917191358185423949607552935753442292806087426750418224387193615240956461568358862579472163984469264123100124264634359093252303858542758047638831789404315619570226243849016286169624970102398603471393974559623756687558556335765566678602468850326022993465056592888826334264925286266045774939220339041433574642732566566836705798396186199830258327766363415007840665027035006135452838214901992193198882590595175263036480047053169197497119929943549678952399187281957433781203925576457694931799184787228536084487352226221369436576410421086370539525979153135491470838474659097737239994245446136356764380705985116734913828303000218890211709996591699485183935404736227415520909586712606333713788779364310743990085418084101134973162701475375759696927154271433540867956712449339781672221799794822956782063914028784766786149799368554051738061354328932062450257800487335968274866738477700864678673770061583350990739793600242095085488428508897182293304095345659108608624213950152332186072277759266319384326803694018923692816691936548502605504380701950985922002464118741574612764108564934081619699662550368617141628016580772988649074290642975558188382402618184556580348677172617304531387873217307086229770319349008011802041491837617503503583114884246056757690269949736874639639088312573379103461859936571991929792311894171181716445649269641631742417794061621169184733954327032087828521654880095116605674137249582333396635159194984053128522820128977134214612480248661467655326155714152208628000782898739589050072620008310595996685991589363096014423562050392431031595192329898056043219948432784047913838925397298324304530750581985946868381730271459965820556107720410481493563946012113415061463794218684659059259681608841967585658779323929623809490248479887269773698567568012594026470416857251868057756453307875765406896831453350247584949018759788061381360347936108576660059113622299697068716900862883709807669624884788537649238024842316451528068469825194083314815859052684465935825141181916258569263417506559524405641014698665163122963123322711308557782019944218455314636806783429939139305491138734981508689814773303546049055751101246271089927043626397727666850751710727079754189426957932926299136554900575821628818242648107995074737945691818296632240176713414005984899036110828543927632142176046062697366032152760463735118652845056742910067100413512196307256622309248733076423392438397529501416334303676187733584434102173994530162518691417949762531000918455942335700225875990113384815250492978277589910245847630527336899589983949398706652795554047567212800587464687634407616619676236981163359105144165116656085157061052061382324110736955860336186290233837829281348379581012972625001248680951793812756767347834068930721363734865775682529402571410878105717508515756378850127474335734010180720729754649765938297899060980759100663472899470246251731610605589066698861886512962593994991887525241310518135241870746973346246073908840930973045292522481899692610279363738290825118785365292787970955762636516114760061629293813561253854716466309540718026200780020828158649276946449262925097888533323201635236248616269440150071698041494194652674245605772548727021808753040881827844329627265892512776093880202802437600952650534700324606085563782338671257558719669776166086732919774763371442525042729627674552554182270605245601895134132873610559217833820474510229909937426996925521906254146424302258650697551142299804079328671210136882853793287278870490495029689431287911913687590494334679695448513998330891771180963670594180220938675411730713509625520352067102779807704481757823415547983777684970442193019136760979189295972387722458102253883958378494900772537066162679058473011038713911023748815326613085304533638664085026646642735924957989988557189917845470255841751109299534022699754778627066739206907990677660935272176710765760363862230484618207014489191715129537775447370083545504892748191788286161370858569128699922582838976674876491960275795975564728567290204597876855432421817995584476779371438487996849564706202122289590876489185172468509619052517136580245648827035615206869592599574968859609006448857138236882162491941007289829844934143802072371292207076790239058429639859853966722203599597091158735369067177014843452218278144344121922135156532524552195130814436352482562806294006778468071037728656594714568738810534973099785350594066291268261566917669697109076454104511622644312412595721471622676996329477056407372077940858659990885470118971221457786187892999763872674494660483877916271593940787623053330079458480970499852310396326381620576736244967628654093166834025786152746802684786802502097299997711721427358231402449140135310122274250184646999398890010918890541608851077971910155027146629415418073300829260973211313026966548684548139766248866094198874534308405189531736758321068058638466671345563789229079166506463929595844256764615185229070050311030025587437260511375223231358263195380038121992915074896577245561817218427392174621677885598757010653611743293658314309471299018644870832280035426139679294646504078848351826172282989795081473594040228349013137213835240558747778269989761963483831611388215433007691090876380603764349948153899072446232261930951764975764105744140670812615853879005541128588388098547406564471700828405457993273107310782704746917509276711149254102166289420365480562526674488248071271203316183005356441377017149873673716531749358381824509187808357906180601361203068017192498951437925123176659422331655795194854879933184538685990917727977431134761223207620968607357359895686058570570006729909739950812787402169755536678508015650809187102195104999242597824245306613650107856423340286769132054081690248338238497026925017950354920423289555849233326046663145120018386609371661363605754575995375741321366486292567156660013520347057643870167733335334753953664607031263838413529480382840416253592187315360147492221596590734225571057260265065367245790892164856574725205122027449442652354973415706826034701477964690925604670175038271935182722205551512517803363753373164701799315028782351745249276454679101267415417552720277875519859993192602676668642779760537168913828970933613225118960723177204860228834170810677059544760955114506811513232476719300415220832737320111204257182054753113475451963723251100622247962141326493591028790315723145706975122934191117971112743221901717396405756204261689264612751448691137953575927097131391360938210586659724244465349809496872861470002906468404627196321675816744164283363321089400711273007371571885290142147140250017245836105908847911133977022963852118079180008927377916514226500835861881479361351771431662746231970707967477467023462036581651175048138297308374286302201617517680437460408245413844271619120510847395695198015834198861802583336090212561713781953834467417331872602674453806242971003558454147929721353915217682002104041167477670469979493673179993607073926134883094126387552678615264307004299293014215411068195660875412179660575871837752655669718810621260865319469038301663594332188675179071034435716998767634994078467918281375814798435862794137499830480004507225985832811885784314181254432384092071747212425008855836068605865303988055239919881045781870443697780120843408741347871457235398368368989754612855480244092338419568204737338958234943346569746820155948345451617084943235692050310645146801103072683689002668832090272495231273620878288871352811071009240015516056456965654262726215317481904834220948948767612869961306225875389310502806171359854179276713577724824887135441442957406560450758215015597530592679115553337503732483316092439711618832226413017151006651675563750952543633273957916851816664120352523461499689107187421262036110704104892128194993036993389170251681809524606950467593705142294601082826299295122624555683316914426824791495903203848061592571198281711953664936617316309549546986168051488335149404452332133124815515950651411451348805782471337687198278066166827731785114825493436459897380741578522104106354560975739233137523648602409122252319681251067444569724055671290985853633989826002291641662448929737733329759191204799156598049838713849447167727561923711644190084549581561379043976152259470268916138698292197085017324637044231880383395462805989671226174522044594385441972039929382596193454429730703799858145282341771497014174735001447882359391756525130295360364764903170236321981021879726958698150917984292721639517992744433123130892504063798986675148222784842400920814889357477298921644197875091264439470097793266900153122755476612831401621274708349668642924380171022967486127599088891301626174583211594603145068015739629538263858092108573976101581729529460124200045706835783716116766337043875417920629998388775115063322310800021048383948462656101928558323776104648992728258912562355966617113314800938757331479601990113323570250156713999779892561509608925844817198065379878216157209040560358503447134765336001468756452293930043357118026105312668933800270584989398354067004826233245598559740585994360523213287685328638504464014379659835923253674178522505005039853303251141200201992073398001994898071327297787506809127208302926540351887082064594909102127007222764812367112465394136013194095218053236716577816718939033006585714686969794492917113091123045931268328257869133029623858390289879797196922166203137311150842839723577783220740147587452672435488614250341739367392793194724132161632323928401216595498219396111619320784879042604889333892461214311438897731622189338618398940630441041813258338350032814685214489605041846453463184021417282344889646103746814877545771459255029064817308643363757300573350571980667826219880577775281352180971785236585137799227434633353086770928511028736235512173365396567016460037151083756441227642916685668202352408456786092878037732615846116514117894630435548791276631619151947471067692329396814181047780522706411481353500815177562552576907820426599216712497220239579334209078897760911309555004399121648922227617915337099414941537895381495030971819148973826654693136812407268389659527744928851078848971662020340378737360271918029661666538618764603011046188822866233389300375444428760360686435466961090563061766044033164839022118218711066619823348749087391880180843034880462603338972265940974532404877645542825857488976381149549239803370014903894252926518347936997094673790264888103492319344923368218072523110495571792023010825111035863307338093833551781438436631572928010113970351832348956886399426687953661299428427336481502139580668089611606846146412889587331836666859960126831607079064112769035354403992043363543542220029365692992214047126240073936513393553264688171006493196276879428142117148310972824166116011530681699043454335127264570261287764570927888767369010809779425311637327434877096087597504665276134368589167929001440933107655683437088343809677206704595762133172050001918785904642753624370995720253919763512417287322132631342963470835563115415973798727117452378794869917383958980859304420334572618519612481498052255445368788947333790066738093189603849082977368951203254043260433974810294242553625622721052942838318710161381331990885338716367636193068952843898945659515725429152964111217453992227929522878727422948749641386239901083180871505191902779571805766960553571865079071631514095551515772294478246009104530606987752897732650414522276192162388871246223008727348033052699115358713561659110674207590462041306431282511078989829239269657861089339988011801390081352137723477642163347300277065994659924816957973184967271638063502996020699391602124890968615411894545849310910753412942990537893140419064359077687246670730404853775551963521199048746339147557182256229290494227150901415500187065029684288809264876667652847589888276337492832317539051311938195480911471281712172894189923826143395849281622952779415823765043546742890560001399326282519137691465716064703202722798382147313630708174618414190015607412427900071738218028582236284149897087280616395880542762072078773824181623576370528416555544054530539230845693343303547166716117221957806899905081748736797905699819254174931335801164080607784532653449797606329698142109995088779599007012498495982350986282388744352627917054013847157152690173925986429321084372649282831713361622682613770141992841877712336841507925884166391476413320249286938370424185030369047969017983907457647296267124309410271165316664118939647591848981546554011431902808491233745717803887119228106644084607951113643232782322340517070788534315803371212064458576718878961322689761673484759180201016071679735019367754647119174075213639700633871373201707523553929994065704454527085705888980052174479120646162831783974511378282100106274107938024947900587917258327016145067413882361719570382695306238478186457959860592507916936051088676272585902872373158763619927755052826623092417810111891240400708688960293886451709746709591690527522129941698690515734127508361721149886649919837399442271850343395620135611736870849881308911432525155896640935763674217452370989297872241461235095682422964336173173922808798174718967258393455192674439686870421183870504792589221046474712024020323902545965021781328643261292847033658360942380414697057138939499416416527178495863129525045372959586880556697200031219166197466334475913910090246759270605409851620797010082976822468250851748220265918831027209478041920916823824827628197375504395127215898052308975392949804449733331302468283216741849929886871940526111851788732013982441352513452849672201468341153449713076731017872195957025238044400625360391785032481022933909987996524465874351317978161671160917713186115228788579234091145601897486262762644747215375298935856325666477106875555375350471122081577116513470372055697626901295477351196047424168518263068517527100890786746788929445345296940394773623901732702835709735574567798007351360934716557445424414212999215557049338245911610231267954117806242546507533761822709092518343760034164407511491299837847165532495570430225100302304415672862903266539752950766867305926678929041206317043694035628477782079879328600264742448145724583270150392114574699069630101782358577349830482347434365473591231043905362397665551692140658057362805465648108807892704331685867400903817045270765158711815404532199881850587547843221992505654368565351654854619647476604394824257467470897403005597190590550235990325000917498657899678971265262047052957752713964720264550054866346657981233878485092738297795323632710344131584121180017720026039433712289735167687425866071684917036425806486585644938821973568225778019134968323943864317878823430346968217897042960900185060075440174137267969566617248601853835576520348592834032737639333905897066550032783776030209961808557018109333925415602985277107143387882680880077578591887809794805069430167096353407406211530904248418091766840516203015290760448278942040942495114756615279469344922470084646775035129152309912850721061181857290990384894427778367160588095338279583298584472358838568131183397625924936212861021091421122383280370532984230754967765613165577774201969880207814474216044155545256388193377326813161400112683353100468205347635531387338961725989382326482951328051825565354305700473583408945743218332030575157315726441860868235253322064147751808564557528378575685972004777209530581291879663039873290368615201104160374210668428493899646166525785025645658058601626227048539718325118325719646581294007474479995493788048217330573281852396040467394025478500317389697240224969192438079338301074147728304404810594060745623243242220122636192041200909041406241613344231581500794264090002368342989933151343451930202518606417872425137307020824892239942164528262300675295196897149965145776210857249683427674874709701678893352014947799385797749043061994972711068223349903141470845921706806917144068777482571785886157512535964572447732779239229399084122434922176599904793149594166536659974182233789887532157796354371310010911069401087763760410986186671428252088930244710752886757700787277137349760789350826634366228098821496454138090885157203654503291385990881508787570629877461668380156421793509526007264310930549601221396260607169410117154195156271786267871944531479471427570790533231267346399399361592605720351587519136627567105847644485509288968048082792476117732754348303210838756817337332537065681168472550679072185412845195667826683523167246722854427987987044770752915296279136264574539059967897563544075331248170680091113430016393214738133488586105560900762777355989023573309941398523550692856045418783837972170380563362006473226225183611309324128325621339863513344119914795562703844576462277406912292139440111068888865542595233991485860038551556675664104730904695718169109689077946445198857549001360548390664745466727114020189503861115439447786549523673142646808354428646770977289304710519790017056451117113627851041527373927152810456890274281621982283649590663541186417324757976266060148750897469841075062791651558430835427777164609536030910726931464845347218758399987085025876501596725242833376806252056650410032546123981421853432547356634098867578018841994303122034763013669379672459579627525488959964803162272634052866541075553431479644392576823012008175382426021765436933018269997377094219132282831435494880791961408700930972760274902103791231368603430228631522197810883192076933744853585147375448894785585242055473326414724490282079381344443103014567225332498561531116706535522333091484611760444100631154345204299888013376719367602511801058188494331462601182427974772453407299444562917239130600526677958535370115641187016710817446886411697858480431218186257931854952796549797762492636486024622377367459356168103791226637881141905323258836212131040859211092913009997382459470099590787849452491302197386776932401074502926401067329943684974300307359797003405447328035611894607017532422081353914918088264861874764050531983617781826383172916929088607300760019342954317440104474758349960099927142091089867084569572263000767700673612065591617346708901310691361752297928627543850140545717713089503478496881182915517013696421130900084806881315589032098280500911791730088441189489341499372482475461840997422925138358167427203919669862972169847799197475734756686264388547978857113918430087823735572597535071264047634997786410855267138819525104828208979941675914591729001694185950317092996652640929736102358076701955178862639296459896727626744740807317804142173903576128470810938369950393862607200558447317946027335397953482687167171782739482535010954916313994088437211228094143027743511289297267069347807123853233694196057310893783743566073929879549029638879764476621001383887749115315865967482168226207043147139503378672212562288221129570192375469307841312319274160688625011703433542023238427683458578757406233204875157526849029605389213949836831257574090585692490442756862854128037039701092445288505157019996604947333577382407650580819717173949549092626870515703927118035708857977775581967698597031091154278527442135148344804142816297260370963636447092845197204216771168604359685621217076670075500348333086685971206967178868094066489114777878328768791805815575590138894487899530932802442266834397873706756417491793824890616646097756070756911006376986844202905868947102357957047897179862946780557065584123142974727695746163672148409274094546656358384599719612962776968348749817860923584410645132350232393743553143441016272906883225603148689963471975473958155616893901704243507615871237806462019022531659556140604308226533955518509496076926509290578231679218987859340023650630074087941535176520538115771919848110071792418761892782627365726689569401592899277925779750848961513280917981280741118983469401398670165790008954754506498215907072122288717090986643697278861803950895132451518908952120443990919872668182586250567498334616656158661780759355890574991154252698300698724118583868936719553549244087856984053868323419213221283497289828405301077787267917061386258165752272998679376406782178505994336501597194578645197191256024559752308273132124872465659889243213670062881812459583795048290753690587285349645147525240301406282100559712301598631468990125597510006009272294266546128326011056093788133974081575610674351907419500098033390371511758450846046985910218145088143037442693607658291400208311001991576181409685340374772040300228783573803934611207206483816108152491813508538816622225011412351740983870070774687793631310084840389870169961314475496883636756849774577743020242795920005674155359062869711865959883539421860233609744305562507082116822162940106669999874834687744501867972058069304442832623629956401663917001147002614309275285403157702182793105732101899622457836576083679357043638537296923426138756327437897847400710475830158648924467028599093259633270405732594524616880732022596781774230029210699554584540674677734381974443183046439347304390038448410471507148488719776677836864182473296675441737301975228147897429845396249766087084595049357183440547961610399661821206423637788557191624335017144017224566352425267561719000210774217597814616860417482722978097946672191471073820504895351135741705800094095506855550051740837232906281765377494969522113731211951117572551998201861057152050869881725160866476960299435836179913632086590529837014124699289062727593534707704193264699369209047143992739172095892316245268102148221891072614454842614940453628632452761954039507609084816115297863645571574174253195408918874205456706809291450542494029792677402207005731619914510177717949252652480246514358574453258271879133471214811592650626047750835549714438909873963468607963838856230585935607214525127454450739677463575099274273060865521283309883135215588706986795326430559695812494710748917595560752309608941949195157847722781980798206476801955518100902762646529729332574202867344176021455767124790005625572791969776815679893367808444062974769485272839254807950549257620502422438089633553196502866582150307878295249842147917260483578003129696053714793293447451140422737387105387390012881215229378903003812104501234675279676895214340324553334712015273366920332182521387815543129066764229589352437369577767563079971580503299991683892603322341875576104104527109783674776802954253884190218802506762974620676670961141609660913669715118368809572796036004201449134212784631948337574549796895586199277910805942062943717673880728387034928583817346507027316494723538156684645648849594812682777467202994515884705600161476396113265414389167969288565124655050254073729522711472490141441696959209389606800474683856763856887442380560404150190210218847377306032894485575900424763050667307817515745331819009678231680948401204943878123527129654350006558032677680327499119501305244198067636125785549415963609915588409343736359125418646533212185700821847444270292704952850527236033927056796222619643163214603670268319116391080055574615062212760329229476795790349877557963112972100265416022497620876212004967555684760102834159098957136949207011368545083340350548383407758409668924799382392413407232425599760081133155688942094913058641039015817474307250060246712170010968555594375547781052577696629501991336842633030467062614276082115441647160790740579621360601977655215394901038819093682841371368148292816811545728829540832452191267738718223449725002797860104426744820486652309998031160713841436681031202817600595292647154852541474693683050992995880928023683910250900375086816516683092647745638064269910479759994480067330449173107393693871767683091272889468409335211286779748138524353076479509707001197328131639794966398520858866286296273996855228216450486548524611280827976699285724581305813320127101232766762400923374562957379748877232878783276083257595406978942671217268886517535129284667685570932547843760650453701413003501379890148268549647638021349079483895213626327897403299964562458565447692187319873078670861050415436484448589535414441961677664992751495360711650056779894858466960425084259259628188447472462716632378968315229621623175057369720825404699789290188264202324691619508621837004217240969334178032776347432040391184022168308056673836421343521488149033217194337545517958393308168402007081142405218943684989386687497173250865431716527573885817713559859276945936297335941755161693360759959734668103125880610816300136960766246069622245121159870949128385123997791465683095063365194003108997154524777714412468417781957243718217309520176588087801723370119707069537092604116828488886448627450032916922812700091142705100700726161016096921071823534025372412791524619638151306002979142992301038868556042783208690501122238072342896979555549859656947341826710321030164693581232495027248775787225810087377164555390400939914154752621392488073709519640397209354597468839772222158481820908311112982962018055843895216223924528599894583485272169404507176219496476407532506573300415357026758869317114868772044616370403712676212472463097603342389143745790063189552296733820705402543742297650740770809563782717694210337047707373176560222357831326931898142020375336017202239336062923414517252806666857626127937357033573445957051225587755031338891927654831130952875997137773448560633782977523446234856934658153407298612801228605233977060904070469265114553649784730021063290429845012156269430759227644042701604267112140391390206716674105381739201788540318407449198300699440869557317736331184723963203452998210562596493344811398233299849838444308204260476355182685421245644911133843293042555431336110646691157300796620499047328380395078100477397756678562976820725340226335069369057414130703919212047109539937911988702919825113930832269830604558550678791954370253429634221348688307247053959420909284825365497824908440006847695458271923731557971338012107267446558937681422692020056194180196251752506663360781813282215150883423518580441273558011517876399066975012623737617858758672149515902391498996416432081132687909775014096395312833898829129731472634905926212586930771160417121689383598243762281897871609398094768141701577910919370680089208248230303497542000418043213790970441733267453343411107583835044631606591500836584721411919062736343868523015080404538073174178382719145734610871289775419329713336811707599938127701709781298033922997798816907932646387486510438172701998174559143769932218884623849523355000877377085616552365385764193596465747360023637599169605559998287252754579129990342105714464280012644601776335677227910369111761817110060338197429551485525699953094995071353417971767170699929010346994955453339208480549781282473999191101691368538021284492779874990584121105846043219927136111040929419388473845575358774843304185702445458399541220328873511375043945982423514104072893086403686431547253396847512638125456712808873634759796912499906161742657549670977079796685687610570959897006773742197616855971848495359651721344159525736692934442332738382379808772453016377027298726229293653234046782046842854103855351562419425378172579519131225435655291015227824630113001763104438579292403400419805747277713210892949445711936500998791827566058120993882875962871494357583181242849615808932760478788711802749842463163878405212008323969940618235095946245727002638156691790053330249518508893800453644369002281391512688621636102372914818376637652054435260615089056191458343614577982659792438044090193346256887063176775932611363895933403769990481960217724225294559256082061821475869134403239595175884682412580426655836873150579857631480327348063592416994069440492429734931501859117236991003154595874102080482087806336615623928755188603433675595242601137597521047451664659911951041479494550195838190610598033977711777000966502886800319730203411778029689090681413899431087840438469338486746021706713443368486316354609306091026463507771235642900260677597466061655623163124605487341603635850330983884867326333603134126515721892047577905838079407105266354828089538458365818201883833598493723397571710679682531712005280526689093292805531880694220056435523750318761535761203676375818164312249645841646236043616135352756265895749718252568519928999615528205772806962576070004773472347871188580200013571789811887195309135288073766064576204053514251124834360967116143390445738237848520401446239368902249278793908807930742545237930472814927283796770533917663737364285159363335170592381822623465347332509873380039559874366971668771400138965388886069721990888784295919455299281838298000671038866310442282697084652393211409239505092636500863074625364805778193489979920553344347215096199179998255439960414568917005879750546517296088003334050908000385766781557204110526124745059928762180648417233285560699962131956094879300732527834108722630415937416873648274229277583680983194169469697382282831839974491972728788653091802990937002055951754780472300300922033449280704361736525138511341855049019625794552607274648587338010325718322386662827752413356824355399374015074381435891252235324448218208443865292798573714249165201447789143682051531303541227348784518513717913472739598158791888163268840034719651254783251651190603583414152805624505729767082659497386743541307846356158115945382617224874008394073151208092850435508771455658137795724196861503531006563598836615218867626617489992411022873304474139537691321582448165114598488270559410319047778964833523287572768815045358196932681491638578177616222963489303971381785406263855330357822484733514399698063558132731696382838176238620025699919001878661300914715641680161049205684297419601745068550262255961303825804452171794059045329792718497598083678919373665159510671479680968104100494736456205975360971510366526774619771587220250442479378950307170178907400039191761386650995036994889871420107621624858297483860636372681498489511968927347392734448780150283475822140916883227446162704056982757834771089213263407964533138919639817884784259991643723862968655887606004477204431653660662227989025539920479506419598444191796256848397717729995376192335721756268692960889600805935054188062922460896333414503893875219065973095882564041523773640449056539908176710790932734734339452268034614430845594738899390942634584155134615390458345002059436414712263999321650669087539948436493557151788651888439947688737014666847871491339119214779976056504408210378056532287920322850714364257050811852634937308818873208758400769101643715600618345104633378037234229532885428142308224905258485186750203609983595834373239318857469831732365522362034947815432916162559016753681726184515751939810776824511418855179096207594667095583838715043940821779149232427094369207726517338188370182185115098193156910614104742699177627047012880690780166119262014202377370641017352464057383541089332050437730094999985293367570476685241059156249159375914424816029330350843774417500561867563915669779453625054424154106526637840870891518808549973614454645768028310022300350985647891620697223604098069233900346801529376958397888327526401151291594826268452828567031897997075270553792632199636186883319355104066949448904334103151798085121175263799313055751563180179724094493175135467417677537839451815208577783382629608910317253676172827467458616041316339015084268289985518014807451582022953876920287306036599857924771764911458523858500603881275103754890364837104229098850379280367591547868505938765207125236157339040144045936762721291942966280492030447629911535454388357253455263852630194631626652897057749782839823087016128912649461756550829955792226995973084847384409653737015369701922962528774910082783334858792460887661714255487876919946183526887904086449762206245005338541986328683737914053072052446682975756998526679291933270284925600626382786731819353862133333660793066008943716958929305028176472481613650684871119209691370985196105894224790549889310485791196935395598487425115333498412414760498489431639236272402773414987272407009588188987452113391853928229323178969134426508707211712566047202105153076602263034583436995813382732652264354709568683441917373741151924714771015464693980816536988494995965071424124033500600338624104784952233057667718214808010294080099020230897024747733136618926405899670551628547447516022362746285065344243504387998746316377172215994601777262959816396789208683783698257744262896951213423973352541326001342254975619903349339239998589953259756371067724485657049436846736003325411032102386515310064373758308765219364077819100273916133178029976499521386377706010255978725426287659198183073817705095996624725352039410287880160130473486339224164875136077195564425041578257737380758585950373610343717255676091217143506810245335730299617680256495687158814361846240553370663233451513310716764739138800290440155754869682604467865773379563591488690745152703383466291702344152413250539618866604653501676248039285883900797527383207911078798201916319449282305983236356922643049043988845794455828729006990685725748308691202700143225654708890279082083806530961263452467231378008385543948708030884039669492434685971568838190392338333562612086017236395651240970790195887137330371823798804053441060557892799941978055932774449948796986863019033320128940494414782534148283009301258025373873311685017154124304896987899972462533983769735628782562961189719028130692238014977612294154399093008813329126796793267584317097329075505275253954405245660208241299072309562577342105203834044509505520746774098871666399824204666190811011615451269760179408915419748332600590974413536688041132418386491290023704667536650552049219054192225718545742015545595160442087882022627978069244083806098167670372030035327060414940395848696538873960715732588434299480942442841992399487241875405046778434793941401906319019409771661475813390873681150894676975025883159291160651066447704198594897447306970172633831057758123549545475198848563066061240807774409856310023002999860810941374178517271355471514902083659219764574772980902599818114059317482037409399450320340219173532739435461270045235492300237640960977802450180190269926929320053705097269263742012180372176343588157203572083026673542060838069416825244806751607342871603478197761788316129633010423664696189714293650826168368480579323391300347228649149746207494728743547114341579774585494371797145536185201895800449362466935062874687083003494459846783224359550270429059830298821811146128174748841327953790186864515955323848076503035781066688313660249861825884657638797348677631160508102274008713306563372076896299738493654544673749306710455678926209333513378746471620992701258579372769352275422955407900730212614088193688384004327855246642718816660611682937994136304049616749467511298857712117570499462435363496781884394132346585062855138417114519559027823136973773448647850019275197938993154577260634802822541509921882434158965649710202919051594948561076961045771655933626257127485298805583266467625862648313994139494862012071287633650409909926065006861864734523661202747011651460379040724935918069731849187622639393005104962294387247228264744523725586221084886255280328561330809957801199037106938375506695194451623427780774305584731580214893895441158792698319608308137212544953991753279158376848497818978067339560132551286647550521950172462215142564392223363532479045051750250204807730329843945520492196118545089815237620061143435781173293632735507852571925650425121295554956647772633374545292319152614179299171081175269756465840799556730722924457997391097541998952836562453216210230901337460074731796898512776430139920794573075952502549075733149072041432109326694059222458818093089135615355420365880221440832248180094359171251857927189335780775262178567302962521961899155962570841409334837136012971539547056368191568147028588477934330994954789480114302608346955218565629980590864203535347474556644392828591651939882066110907612484631257116326609210003202581899908331731712463108471913940910164053490939349570793887217525882653111432829812118808206040164320002072954648986487034342323397392070881271720917139915039201524262607122752186567246222454457064030928088847504544753492162359953733125199964741744749901955621424291042358117324593658601357119392316872239967695076459322929743378863646271457684906942488742652979651826660404530704120425184234121098234930629402560150231084271382143434434536255807827461918194359451983878505110421347500403246585818319789888018619304425639442312043695614187560965298381723800058530440684317792613412636782945750505782506645047965289048588452031451027934523222715288329795149601537154641491265076158295496899225001556436771107746170320166774442408923942571721491022636802103170165518094447363914496323532890826101126405218632253394411195366480467974341922716446761830274078888325617499051845327213125701449154500312655029415864033683497550721709765357927229476327264210685314344606079936693688007796305901859273129129608567980431379520981207300505782390112233914688380444925526093888416329748497490901672124137562293451007651832544698084972571155027551265654934955723833081720386235911194928743214489450123897709514647173585744588892560471956522296528287847075733499750482312160091898845924446287839663927852358274097641981871691149768433807032577292869581942928294181394685446367038087834449294020242311126311217984287802589217015033848391460497439383039094252091423466733802732744156807779010106547566056079999267548922434815391479927551770604742815903949926462899337060991546816496439406209417772683350891091309753728234693725057368028936780987963374730655567019192690253464225042856396092306384536723724648070020074367012620576624830025714997975784889819634281548608501743874587621270908212946813602400262720632532109850928765159667131464348467686860260236837202245906474261898725882503618720623601830763968154996686061792896058408113673468106724319635979094858919597594752831271436709395912645856422774268204019822009402479078848352109556533173854028740453653271183055127327618143210516336923886025133114943953242991250539788676959321324494643261823583962010354704933809569051995501647599472598933730356113659511636957387034317034341842795021723861503872197281105635252099112069010658152761186658330477921835570510900135427610451954412269357370369845453027829540686872296932817282609962775560171966463152400866681712696592501360268191733083462041308570167589853448895785157133717833405473218504605432606283508593932143821947008187713563484056105116976107117805991206684938386365279175070828637808368015546816558960038444902275145276991021540166624375065532011142742202111058209843216168958073612874208306644486490173146432446889637253957674139907719492956112299093623624623823271291545113408608974453451556816284146840063159775240886448216902694922745500265938181047237569614624767891534850742775192767503203352524204945881198269889275279685246968315840564956936713807246068287832285382971661476001520087930540507946618117089342743591948204717906534004201440097367638114892374485554426414701026342004418326728578287106354518696195941381775109076178916264593597249593537875768237915641142859240212616326432742799690526128465079654870500469648276368660321731072205250710683136270241275009455018892423778159496438115771538724873508877963151871010158832549620697671448899759319671288175846064642736782031464511699440923253010566258492976485912959532718746536069141717603047225941333399352533592910890575010581888657271605339143432374011141218314193376514746411625347970803390165190846857522865058794902307936943497259792710218275621114305558940254120504998691027841230372977238833543636725615702729625105804132304706422306584707769671693227601847046217110689839319045313642856932089555233004009954976893096044495452133222264795461913397836100865564212474757509000956668671636748474058771860313186028963082521634537785643707310610453333876293536043254494092708325851816942312650173297648994520653383603835308117478110989464123047457859801079255754415065386227573146102387644209980611603852942215917599670025829753762398741611881801175112070774775787030186323382470045221369531749722213354228161916454329089851059479969993789042267515169522144520011276577417628197275563385985130737268226537341974725352053508043296983373777988041984956114971984656650997762605237720399759580456196224218760687450072446977885418408550017519123708753596683156399723256045672042440012880132267105596855435527059413483784462414446781848118460246333791739959245360782922743906327690401317310620592770010246624845555649171251493796035576774265975618504163207282383024085729807545224667132492970671300455940723443506061325742350034929813299623030886374201898752043233061067670844358216792857597531092451897314349462182115706320871132601193197182803494824970224624199038160818648875344091908204211778782365830469583472280834418079439264900413146933248290043250119246785256425379288771513361000536881811745565125501885508295930168697024467531375895281676812128806220271154364094908200587499724020649745325414232060564742546395952451830312868447592428327561219670693154247930439220744055173593210382387649102425205001572687658721268718593638203324729893895593173963706039517109112456896125934762108713037578178955300921149359329652567772981070414792510178421362523594431210131358317310790069887691481315651929554577441123642922816780544132066420922698627015415154253875413790515689770239856669111918650257493359562508123703193355839215080612259229264652997439863875748283233626596378211324096814436413385312544045366626184617363628164411134093770426396872897137135804320463108299570896323139820538627498480491029946079731533852633318192433476528442993286144668052095900549414222808446886196001714192366330822831363493172939563630769932378998953623924795282181861651590818506627305092033024779140787866774237613941524178119828476626922195414320111104979200224996009504295684896426906482879119242421101386703223888765849747034502160287023930077726228415449205112395365206911415043722578481029588596107288791393119090448003876284883581821374296697261849511739787634545733849956087889812893726471906581482242220581535621687262524298448227125650398095397424480229267439441452534890093830165951685593698943685450928440507638490831571920922798188699552807330629524630213249373426799926549205902531233452893743321221178499338196052632036132955828399037409157203812280971653239092475214621528042022751602851997651780452762860667386357246903284322671934045180527051359318832347080902737057686891477428134897760601253099620690902882668928720276343599058642869366199183124570052609752858613638220784476758782403325664266804340370387516529729220894177343387156596024297897263786528507106583213450365002209628481039082654922406890396841006352279645521363727499669745070135720546770443279664854498293048419117344734439138593990758732180535281309043244354207784476145714157251636633719235729667044328675082489799950915823765352760643693778195496172461450127349379604539895303229355974951324019413414836595307265931543699551944755259560591059456457243917369322234065541125409192485185296396756701564169757567088639450915267516848080191522796003387836397719478828827300981858784454740626373984123500605954266723116315826662328995109081575018714991313544741494297489573230499762226511654563750509004318139960124811584939771877623224791127185525348973362277567679351950273433982650971740210601130837259770825970552558822611713499919648981054791654760302251392508653696488560908298841765541433400608060678561793076967304598972227537841944447448756932239901051492034534389092076035393902008242157421907526853434936314490764471755156671209700273556217393916378716522777893012793915605442595348619165413588056000981308450716809873383423376994399221192784793926186179381160192758770897300899128588147287893339331587494510513045851856640087830645530193700697898103546392827878206409821285730186980944840809200756921426694445291347559384433684475076303248706849656178387472235341330612285805356643652177381915502958602164873983172171125420685558703180765582486717214133164330369130309159071590789741934389620460702283384750641258290518823251697178755587386117944075804967471396924871281073412883165127752768325898781081848277951005592273646030795652879715302503324629755055758219152323145188326091235418216441789426055618356631084836402037019468044727679570692323210629596522470389928864840478402680330398396314758928141629957823539091743704668589938216466321151159107988664007447076054345242540474596063430105456207373636951435964497253987108836542701041022811877697628560440010080220506926388977999897254520417740551614911701512468714685778550468849600600182286784816072183125644848342379774265996192656337363481158376071234371854794782145853634661516052383963144885273416443528897892934181342442299739954853022294004757993196763226415550525225202986867188735763910029856394423977501960646672132289487439296020751621873769970770751962518534687610720029618573270183473509061295226227765989400594401691215397748328495772855118468695820056905094292021336182560858231128041823801261407977436749825323716016298415209814309992221618477521753158778588553763892410798371270644721577033502510264425780497854637064717536219882472024171571509094671767700025825719906438655164779123488366768558483246434682376804295758334188707685088773342976930039448878959359451849436920673847256075103255440453589229527790767480049312663013155543437223238436383694822334601299593580112102849647931208955138876960299594702401076610767595837587623759500125085700902710990668976512266599334814496463273902912632104018772658832396867012657555030433294357418477277386439948583029700023819191887350142718789856551086154351567280006901584741536604840827633778447102575330807960768078976370778503680596119299186743688590130406971594319878997170517792037885289933447496130508426978681686129542267190817843840698169750826778843134768379848266407882001777591062878111370206164789312489155427899725354832114011600970769942804057894148896140438465532408236024344770531625046238966401350124729364100520862733033331931872032587711132506800530089625089975010175781568902673996182078153131997240619984620537018847586515656731625349287635761973880363888273059824462405820126945655018816441635218974287000408590597461640744257457635678947660080469770330157367330461720591036289970978169533578264526663428187107531925764596300125382427031841152261538277032775277113086546141820510778767994538856810171944395073898059656793164530561805056752809125382172549136055092642317408616852201551350555442770228469396487110433754285129772462195373061310523095795418975764942124289963434377886450146762617306570413440365082016457952943608677085251704790754385684293723585566234866785109480787077380602222291104102974190368181039481551131912217803844144277494790283143628776450533222919875855686917956498381721746601709220211209268715700376850551711034124933983047249001430070251935478350525533273642889945728583293857973764119588747720603372098683411550061421082930336360780217472388563284416976142344683088230265617670899210206612970748159180275456327565130303644844736283185047993408503411682303761861833610047393079944305927551263823237428467051792991840349561840982892383275053053463197186688004821223502336988144152116335419033413212044135050611087682224805796729856415923562331118810521079544546277848528694671032536853162096811634697139618805426884076879220611970796723217262995403729757973735013691357173379741025794766668352716301570954800990474121610013163666455859970939737765835058560302498826917483093497845011388826935129383048142281096766949519241246257793631096915088085200835990718275896322398951298693325274236938446079185280788681124516704447688176733669095023343561361073013404025219009390066711754305370015975592508100002296613038807305357273373765077768357029299851678113684262291649504878596423444416485930507259467069913850887967497223708318864654468976529505982342836333742479551070553735697092068222704763064788178573647474816025309587497102156873346041565811663676198708498254149190105400000120235321149466439717423525490064983382407917657084929578660534352931658808693774748893876279693871588795164938409785143327779876872821459514152408444336648977737383572441811114965665872609569616707145627213687414712243644585211402492965674810104339538907046503534029670378903566440027897227345074747649273859121344895572845178377382416271431740359308407931938530396110648781960797577844700809259170134119381854229761800694016467303290654132230552603863064621032792061487525779245548245092802646228901084648766129922475849229239735557247585589499696214891362396229825033196859297148035725962451144903593845223455618138238883531828397108495021906748917306846445446989562518308723788607923768172538984048729512969680567850240929115670523599278496067705240763147471665238573534827246936898662144464886144364251163736671758418277423805449692521659513428200926994098630436827867766073622785711697972223268701350051788505596863821462114829421302158893652104926019493630225170371341295390969767579356737730665358497679634678131664296573964654788673191162809450732218274684249232949700451998955873649577241409942233731319018850381428423034315669299895493973401126580513234095806563087456324981291763638958310277710423212334171966280709901078840093373883871465495705153553174871490777870444460288857791402744698145143965000113040297975914169441833744237385722886232120872814740391015488240073269378457387408656976729575276676175538545920076669634994957847993130156448486032171436912646951868528819822199511846963328685446128506407278936116989665210475183153785541674815743087929427162173165130823313858604391556366584385511347642717273259327271504669162864348233830003097804224846567270370098834900109271778214778877482876123831275759491606280681549052219326008291392129430596254077380191042397242053462237418832000445930038230468594873830499816407588286830927804366345887044916940932390837421640041693806657584967856214614009147563915080560024702758640080270733480842735078247413691474335600590140681620972904951150998931156826181300419541673933245445944321616616085609864019890519669189179233693912476360679785632527853481477957870040986419637334306404231355458208657185683741156293208132623824458120173960086990402059791592232196298376424896116570062280060400590126134521936257335350934766758232983487982434345534316091347505334001219043702310844371663553781371731256557023927281958997259863863515906529168778643170114391068673065944975333713465037172796508205292534236836760717276131671267420359035268634499428190299279821147059772654640378461238749596946590318414911105094666430393102877076551934755326181389502128390580430405052604239570443760679030350527643518435617315074634579018815206206091730193629533750760891301497829345670050399150019760216227686379371006763740301594629189864984066543120852318790769506591554959922036760347621887935820078343736508484230354250225660615067696116098727804028879118556469968407967467248665585876467250556372559915382962704488688926013649332902304930783593816845744395390852320858189691618638970698186375795133222616875494382544079383108137774183268339939660738760505820416935541281302701968980945377076745709814311527447066134078926700820041271230805352155348443220186581482586154493318895345587084475596556454013402819764910106221371618995793340052260411253087555445880438605404620433696954193268776269571392866322916649999414971801514341616104988763364611026186163866568801946646651036832661562966446808489214752763347239497632142461010948762678877656210063536080127986415623996819098383564428769065839297656585197034839074243623761541701096693264881838118532283033106114667508580002028650341579144425604087548788784036139861079745163606476148130665237955447125405665360423602845978387783784260755284497538112745869250529407874850234373022560471199286254252458752698571902674692495821100019884737185690515658938592027262257877551694170188829510667201303736026943139104124728788860624291147567865771831325955675064900931233855135379014400422718078771820875387151858321008625830433725917125284188941354998571260727519225005341417052815028909197697543317341787180808004263160891552150236032422231930909872253238497068579843855356043655561647977072458108297574994971039194225457733861572628295678243814786233463125946383914557225957808317507732954272839759760275642346049962211472212045223232663928731749271986835708736883879024050761043798866197873467684219319537424593621879823010779092327692339213249748341892337136472212650212997632577079422246543234269254794982393542444241362316532396403664882778985429972957663084592269196135202418154467686965501541747082568151563652576024469361653150562323417859861033867987072098252840049221577956085897553617428187022676108751374189413899005121787058096640239137312295747991840987058687416321266979552396651756590991221096711442930087183616315808155477015105958327601602392337877474990671304929435033070213094496723964264204943654469769175776183228701038355210305211075826330405983117241205298953372847960139860651644810534308017459629209322942830025997612059206840892026460865961359094658852969056241188728789971535944572748117941840191841090544148961998657936844282193433085937980747012969976409841721833401708162810096158691539209819415727485986868038449140706662054192743463604975006936495596680103811780199361621518284523262128434553870082452703086437616362095840500393221977644578669548508505884767637515501953523786847174083088819162519356136090823404320054909081367948707408992640157473707794502331889942604938491706559658150572491668062843718751308412840260145744655520574538959733848059136405349219560689194671036959591674126204033742902300802171730847383822271940654172992275452753183285953122915351184887254068256794425575987640120329041141745723432185336714506423836940067488830568657497149153312712150435362398771161742543586936135773681763618343707097088621056789663355351766593487328087467846955427318878429422841821189218772674244994193123324379362696580527932168286646664362458634074004186661490767301494764416629500619242127138051500679996812585175371538025809461949797981717014324361149808075577750855089185536625767530843114341826337151544764785559341796701695267512042120363121769044284299842056397379408238529663263064374225857956756806439171124125991112740711256294873777979373021835132525863860851187317447269655841733257054895487947629813468617326395632543825360668023672934403380509982860779399678708741779376331344245870636918488475587420452093412262582842562417192463912609922659109074449193755980661948854422670532754562974456962245143940883918605818108498588347409447597220821129261508608258684638578642571280151976962874599976588551909241898710807846535267263938518249062958220674863302405927255611097615244827259936912084899232653461664502130397839785284587567116555289305834131839102257178375905048819755330085068023469009804740033964883629905158352942203363685327852036624344003080367216009235290154744074351748846243290573369755058715305847353967094160512536747249378388524785528653788231190754227699333590707258612247787323765675483838041335146269050612411003808772843761719716274147513647413384977439826366334549198344795702999543768720196790723119590292490072296312616650535785503148476798931651759765286184537482919047421706658990073716053861942533817664704684018865745745063154505526377874617000919755339318710494863832567565849539416056009029432836576461407840044079821755488503958976465180301019658691931584422083344895803696956077675882009320021770004523428411924765472792419069512685888272957435441539670384929098302055895237513449594728340460375965756703450442549585596067778598573642098432788201118953547754297761523565186402452067190428080425657699157354648440357935546305278361617055095556555075181590716553018485273946479236301109575946827434336240647682876195411418286220783677767100819650361848018308201935244736575428758388956763122739285750039460531540634772633357352344286397452158182991328870811954077619924113666354986068829108539730094406962272330047313977906646909281509341342543737195175288465383409506647367972006520223223628320967669205695995241270932020782590092563223766439208843759401203984039080325071739490594884062988818101594371817912363614057114036596215955651276648121623951850710667357308184109474756232812048388989010523817092244408215854994489997944464889848021335571292883998508651065132643058208231949614574982925590124972130772458964602442860368009020167973686925346850004793057991837106859133995364602848736467327857731319595381878244233260899984433530311718882881152451815139048408595496704310316462230707708134580939947076852123119008988152387084820520752258772384227419539939283408178945870866206467199785054673525998597602022683092398350374098770978602047574968234518452935616626882284141370696216177613850064197900563938076738298660822553444477640910822195212023674139295068357420118905575052255447327323610306813267657176478528919646938427537307460559314850622344974835635994433443831502692989751170956653480614867001337787643126618089353850423456411219831041692969226627478972749766122259549089004384878940255275711355013070033275059316753057849419558421060763446832447551395413159142147239692497823243510251681940935187393487662993266679180993469417385263982775723355811186413290097751691017720706239183276368019264642046213930187561338221483406988876005720637594132045657186526191255390659910442959727544773929673372795482781114540575720955865089819631643733700313543235017346603376292656053168466569399597079210910445738577900794998944214459670388395901816986692186281316749870607637482331367277011297743320864758895289863516373043329453346267141831885762852799597326974448481270097953381405971100564510589109125360369260881852500645071660865460088536199238730560980408530088944105794400669394075584143106092125425813344468789127918708193464820098705963149077481278184945630376749922075703743265251862786693488066997106216378134112306025098873577101687961713212578657885991338319536109806064718965726977257162891485149748382054864379088806091747832941556109284670163760698092385906010027867753987838455269033915077247866613806976920315245133561635422263497863445329513383040232478026891845927969583109292006109041047242338460124920987663136358814992257091827377132259433877735616262487632767637181755870764296449875594471602932248017129668638410933093588741158545236874677993892683822968759313898404980644587973879285042174064929402276821975419703949047286414704754721257697317531021914736115190979792245362934222892322031759885979912277198748557519657128847047159227837259652645793685067247464289263340591661341400418004703781676499886720739446440742742945052881534419228535732229994637975994725268362836507172252009119685504018458602093895317770269417891387995520324404568107713084516755661705864928951080272797766737025467283203782162473760180126041664542942220963288739072585339977326597579010677067827069538417330861748293914475098662914773817013229966424188947073161505335433595563827205919424051513980970624421159798450656571652106421418525104365193080163309120157795907656557545911370417515386674025531928448864512012464254426263389330376257880525388247271046664981449731550006348266944149890431317151985087543034446919624748632830567328146324768520152002321231158947390885536585273956396439164135733725781479366133432538496921434477408367640014998800109496483200025171170554271173630792776498090089817580650224987679583901019863326675171335602425622812317663882880064305218958587959818663956628444491388632213060760021100133324808864433314302530180936114249477695170777033546870452132116608514893253430194435361494797217945233303533579920696112898864763487508778702595857568914926725743417159053715803476241550185118967748143541555064957740778791019076127749773813788606019752435875963375648604988167698099467059366533439682584108275534624093059763658036150489167657233638646297027089235172722203243908456008342909738037645899341605759998106753801092970061479871751843645701883304027397370575976694134529211969491172883306354326085527492877959890106107022760783446204732865999414961460820170335971823464224849886848025760971796449812297142017420785029100948336556432844080456674016302546989873383420439733662969579853519690431745981254029832844891444998439690470554261677272381583441560619300164960058876175766894141945520915939246381241704716772310236250838854327763613853887760034263038477772393665960803061900402949762952277305670512966310079652973357814785873116521120851884181402877697181565495349817586754130057404330259470139919333015501665257941646534822010179350723544172868288930979607672513695944099745054846863244069293240933153260625368026046159211722722188046292253721561036709967631029113427488879385043633060667962259862061015968908897763847591825477846747498179106878030591632699459392988386567175344131905692296931351884608291097178488534333129880002944959821923292506267733356593333300271035726244319706333254614390497471149334145389902849859075325566103272205240999643531637574938273967162321208539160963959727484977135806168780299104484501850008244059513857962615727476356916042639594367556544290167068034504497164830635453890498421517870798393678968530004490280256391208160011257760953108502993048750536867475596219226824081460263928215288045236385594299310695077271938722998609779570835311275550106356731966878612714245146557162257480135926067436995702566686804080732052747716070036136640400582100736698458910431676773247588687909103354784489199718780833479045833720827029561770880482625001648637136415373669203184145395538190818667069065854044439158441384041392056674502323507439659449928428418579805088151588456093430680140249255997156331420972408889608909298911317642349020097400519234507413204747912686796546329522851892691197398012725143047549213896499749508062382207353622539186324627363354750962849942271669367020348418774197299145170327552939897425062276477429261982226209987587406235393664773616975769009409489701302948652291287594856074995375773295882242459120104222039250222743023395979324763588782090360892719706403365711105582082723049593754373975307674980022737918598218652252647445732088064246924720660580877733163422356064358965452260322442009960690982837240259060445310154016945015447136598766343374163498615569041281496463550321397772157860225023657096296849450385770427184094196195376002731310075122676294517345422305190165895510685671007395581549188861757462243831929692308037135706486596541064819999221359940330289573681577123604055991277247554631635330646469215549485070447117632563090473622466006244594179085654723154316770248809344248082194241395616264049323039283832277619406818599137289566742735469148754607947354901029651766692131912172292121594922411404303953229792745828102924281655189252860830493700362038010462266629368378222980756321747876611820399695433840788856208417189653126831089901202040551662613685216823521232061432224698299845937728557643396673417839260022019662021269764768762929854054864632125307253323905927878250021366708923070095194604321024481176750181696508084186034289904135933584282401148354893930431722446554029769647341643012147500238179356573581554164904773852140663912001805705550760005163525669829439303316707879038444894713885074042140611757082319204751421314906464890446501944784421569342932521765815214675916597248108719961222260921002288903693158843065850709846909414033599884367157423618172042461619574466955003842847722222720761068383063935419082116068590395888059191661546141930516061049851698496294984522707424516731361816919750617916131719915446731389177700394336992476300556452721504602256740749740575525794922888376591473062776646480875393883919617216347845068419765816186424789656008884463627904400776649603579662005217031761633913958837789077117228062057063776586611300944900688223589809553181117918358118049011191631244901048423049991069807043848599768872468946603155531305699486660058405343666091536035480980487675383674623815161930608902953142615843266269261644724443538841888404505190846550348496870949008178815560219919080951448060846903217195259164073748077271891847768175083444355707557019180489258509503981968601731358112833130416721215284254932042133345286041841737878323422935571680007615666339735077341240716193525122159111574445304293364124210449933960905573614516927962907202367715285259028112190529667975651847352164759760682984850583408172383388976383236964937329541113188229223660309500739364034827565454105635095727365096230318444382930413473612710349388997546254495281024210406649258711049568390172793091198327704280359169008076188089073542303377955591729643809067871391785468631137350167082588600441214585284280340732214620022471809642550408306918522587621044918833561579811836236746589519180816637365995446413619635502757649509810706004707143468167502929312493347782425607500621455672212406819719707361710945298738050193825347929284820933705290100343041140601914348821663402580228093153459354981488032021184586194632101244708455483239875367871006786576227653102778246411836537917531441249187566275301600519810474661730727378978577593452100847389709065736154427600761968711711183392370428136510185689942327813035413260836676728686059685981520143366678403316386085739872825048004198475389955859089752916921395415731276987003937275208673299827754625614510935113055087435552392013341598303968277035931339770030667590541302393643721384256831198630092391878220105510740572225748028445957128203938558251667670249869111446444687444846460322202801442761045227877014110351614761765694779430999100244174145892060439251977534915331132982916157388004400834476383100995272714785639314825844802785071083599968457757222037007945329373892249565969899513544594527668172966969757740845823892142999817976204255395280558258190969990285641627017874396411704228667990293933629381167985146348694180220299259134301162473192057788211944251196017460642294458643651196370748590505195437505130020354530557452702752338453456207438216520491365887169891622868205780737830358023367633606220994483665116634150603759921149767858983564366511294785080277102332617143451706181587968444985086407483514117973365364324613841275325022112502177801288594988486689285858931549770963181892361307241712464757602952532230311688202532621325523410934822718274698693530835572604353232811228101520291644161027267253415071464709808820097854694107577746903984136251878337665857227765098718593982287046641437069508478428629884988968310751443888184044257598139115458618457287132747395433441044036113360246910413027607505536251219233195742899666435744828563807127454719773260549287022664079454612319377838922286488740939049981230009966118851321590170135489821377385488231404788264157352545854100074651138163876741296330544738810378570369874402385046307623413700862051257638997374857550853623244034605893132088373654330419004754788924603634944383782794729641053011966190866650944723505969318132776602467072521203316064483170313478778589830791406785236800025184165311521544656748973778991425798890139163193815937675877968244541227441067631750727270917938417605688827673806659615406422921946776333763290331375019540440779868633232306057615742963700561814118516571008395205353009131813753707424078829847984883795546163901934787083521285920974887980638430656163909881365263628326601266531780442122187288706984764822490518731628168463643956459852504098735332429948906624947474366401423823442861578678533590935272920671534019578219874804854252815508724578392288500889967214790076677852776847676756378435979960350228031539435817788430868014092376817351673686843716975538452946740451567298299282594657328352667883579032661419146834715708449980406945383773250842603350095921627603572871560044555183364048242167904473971252227525515609446854256174413968139685451869619457129959117887997347598578574038235045850786670704258799605165442910003135899016426922361060480439345463891211982955709968535128344075015183685536734777576770361840805040987393670897826901529127550415234037208244093834958761901462596063519460884389642423454244976309319799585683037074198096772786630897298310770121472303079015062473357692515105738960551320716623570839704137921470617366975210633120817062032188410720125863866432330330831972026116552268445464267248040242847905327667857148549440411866202425335341519214732890095727279858429421660814941046695242352192632240118994800207893525073124115780190195647422865726316841064115785691388905697539747691511470739808580569317683942303547942082595122163632011533068768963728458629255381586016482169600766763676524223872705765550757001776879690740349364829399487286673317485496145358770995368051257727869396708840517492919797275983367600051905174979335412694641273766508341549212933426872287890548329030601005521810421909124016303402644256229928145353751646100058654521531281333890858227924365943490462738146792915866528683960565542795660391036547984382888677118013471658702138771811865463553362395712745078028509159244621046137411317862915275500408549100890873814332365309891799480310805728902258065679329794146332290263051328457000740786977876885186440402233977150394844645376116446191224643625241694387110266611954575149510770305130286612919018691900836888175894944400673917360327973800308758017911053038033211879328557117668146183549513305695540754280373166626247797097555660426739646029345076853008221924023871016324181042181474556072016276756230970525499556870043406030330630611406221386146444031829223216278325526532713149156516608450161134065096457303678248516035917465103799783839546008555605214841103067499959205200130150286442524416240650184795580831396240925292314585777012657944281018126579090419075619041697042725885413499897108197320877758707113244786323893165178607713848841402160925450264149771718435334608254788363592101445507006512250196451575386806499388519358072301058179643457972018506390852959061273699026096446298549377090164312092727098080989634863649754108675443513208173805209072894722150202891507834627773279200971133898204278262623767954626496651093505075706041529249893436188482395550947533004183571316401775132800448417967904554616364728599159886442345610163489553968272409989450489695642223067795645648790049252095867631850395575167792171290365213315161109920398815131991904632372864165900492427416241150906630921776043805871677682511800837956057368698554914068894615194059017070000393179524873544011536438502014567192316473963123067263889003242898806173290196923531461871798035046975736608858974389856396694348504638743619141725457540535664577812981383874032915852279657107758279208776825872061421679233273512760231619079768840311408307750400624676322445998796020409657129569436530482891145527696299718846734384050991422648616189977698001566092661083488319322684512392822852195858566501343711122397575263547180205378003375817220503923193855387169954911853790598207858560130722727843620700384457137053084127116122215146863653456584955166875181896140602212270778422675147744805445524602310943617939742564010748501124996861355768614903174747759870746730080764528574782682898153870831449831433565093814067511080994005955093362837606665959318830852186657164218918304170021054679304898693842301704794950704452411723750741489801211409857601437388287382891820013747023530492011392460654653309822646053368644501554857678716549302532254868517060157047413852573596891830954048576988726637442482538997158325961846534020515517767517860126806973462579992978146234598883234914141530308263810254032119914273418847763921102275506960192307331461617504427590884538507262128169101763412006475583670574931124576828267777580594457713818873065238860616558651228395842901145473170806305479255307378454173194389555846335883776255455822138353440491487029148423770836584952744505466829892120510300889255229984156672209738770669516836932510713932748596086051843900203047075191988958493674685460912413231165735530539547039128332698818778760223413754326485535473753585124023642976765298241939965856324659220773614847359990173811654728189563808532879446831048161734101122643546855758537355629109337436792564523435040477193413765574913792624962882439163857595780911731863468451072813915194870926554721135726490709428394645561122558300774671776939908674208082883707619153953809553208301357935114482298405730548696419816336766129046330105007649779947447460107394255615841734863951672856495739541343152505448922907216597222900636349489850815656523797392732941124485287043502749314068224252789667281053945676798564530813524677059081405707572773608841183086831476096907087046716283656680468289801679496593889394360668855247086642075584733594726915551005268641845519770184606492936945106035502483262278353001500156576661188632468745999663900834511610745580676568534017233778233171025176474871099798703973662778066511473716342211501200206187264895234148788014680554467206787280407762347128819029352617116896996025750902541269282165113942906066491581613911616451347858439973401319950768061700860479741822718232751807597212623215927561218689688421031929884588993415196209733666882129331702030204126377451114311801840133034595159398225490824914129870794671496354725849956742382704325173885603328400251808296775720985813711915464224550676996936775097288241893370785045489000280426246072169927960765302141629522721682229104309514619979067160418994998228230501469192088261098207431771884249321844779584561410300875286299600987189615095518238082994508095876872613750960075690951909474326796766899469194388725452892304650451294840314347334776892845685531149968304623171856683624306873594947307667496448035016035430492459417649765044878093883458310306869253635289781177952113146968189628010112793523397004616863490562437147725477103425356755866232859890983033827644648551983570848697197882621952969577768952496411159068646574551330951469285189505115483829276254420981877988134254900093654576974261141429759178512808517498820983277057700849722146246625308401394769809395341183707341630852119812289996411901455755811529363507855268005163911527362968884777194730076865020476377888563238473478223333339524488350955351788168113953751060733537890017303651678897223535136024735905960026712019253861274058800948538085692802106617746113773367746026036317847289897999566429088891694861808988992501696701774826294642880054390145612445122242278960365524442783606586323048415217524948945830968953668248778411137363378256101797793856943279928027706128798020336754457901593188259505843204841885178916840848237580918017244614852656650827343980749754127690840837138946917583530338037661717703129075467527432833481133832570088087388097485349991939831585384411866582778096724828864102345888296020850003958640092015617778461187976757648980912466032710702216831860510330867772446128240000578434397634303547166426906701557272254349714531875592135237539659952052482096868159294699148767404172066626978810813363159449881997537162444282292509793834362927292613934647786580414419544754213405368440922054308726166040084655519745108777756838809261659596171982591734594702497895405035892718306886266808909373897140588649019212597706285174660492746347174061977668275416552953473952461435791256520272256272416925229493530299203104947407661926271994909636625414892403899633123138031837360345475945724742217894101653498387612395216733223479343317545250206622336035626441560565095072877664186050054112040331918647516289441468269781000023022565667143781701151408323210242521576313862092695216128161413727699774669706200477609178858796824417734464831353486458043413995494016186694337006700981406383750601568080508441207235498358313579513927938332715765244573451096524900452581924560166301826949009262006901347591677790758622363159024609453811599217893060195357590987753409721172770465143597558320139793096563245045550622379128163800084746411528187157699573716975159064207202032009612363362149794180625063579898585040974797137146814115978754794621801647791180365128555396275887730710562768987898128683849834575431274643899704884462107437471066370055521731054300361054816123286483004580595797478674458722125143039189954042360975917529702665655918352949387211810526219441357343597493781936160069533765412881792442694249001120410179719251901298551479920415216367355284440234665361825994583448058228869183574414642470077376649924293726653850129890352667865772723826913991415218607539071906689235582359186758144269841731913532157345569707772845482542320336213035069001012672258673293302188754177930945132405522971216167248082326690769293056724419688635191089287056400297364292896309078791211973241279609229018147800483166955175092213479207348898923509392329608164179727522134567651689951995889421717745718872649893138613548533044522517797200231239163821832356751773569493749314746408290954594667578642938448832730448259255048040235407199522224393191318523782424664936635700195566156987278998043621039243012356491684237133806409464625554105741653265476152688421262870932062828393001130205124423705947688477271875168269168843597900463154853930663558397287564127871783805059182420551966017719449682109992717643145937963399310642862185812216420083660024159096850041776919201345762405945290273925839361812072593662497589662746054314456478521417907419823489634071305565229792383508950599770421326643038789041033326512446875893687167919808106615762978660810192829259917489771446246675040333335619619849093532479867942293969098216162232138293400489857131286558749823093389112736861248579747051121838351819480370548429621662467051405255088233477062404650954122688416484024550233668823169081342680588537872817957903989170306459417404253999948347328947255941607937192107954222192229100336454173715066382062870257318035508629896692136067376847558122104990975158311670936666712126967761789136129466691981859756526289117550691650762916980121457891241699948851229571770758605881324929049937320422644060391481347082326630862208513574712280283922343036714001202089793026810679916091795517153992152783366727343871714944525223562162102962040122044814942120334595358465201856462464621089174378908234176232577089530743607814435477397246049449251429711399246025023623743240472102363299088940020338950436072370677840034001323687985380566938956182146357989307299060724869951185283375731489100208397776075187730553999400424699156688204863902351721770152378906292266116313717439486532654415378816168303643117502699945902359099235073485960228826093279024579579145983190507402431897726639549315438791500598244162478867513542968423133622964365850774287338035514258739316202355437319180375540454473852281587489470893425950872602818702335893666418006847780841486029844777822358562207645021779245477914118820535436401967582655376333529665011313213681166598189925639272100749015722357107501872659301771190373578750751326108316673331120053784200633135660355173034721966995310994574396426017259071918683608960231064779770713956375102683369734479015893813492769046363748754558426367608210922520706519916923274649139020299243771872849224014402315371988744754516146601246659092165706611695112709418576741102435113222742710998214542099621522123856768712312718646866477535921829542317934910264986542447950868469919469082179693920258978219354760753365361318478157813994239638159638364882140853452344111537237964544112544241963287252274818832672448680270092511941070945429330033844556819356084567181888607820671113841246524507034657979131684790343455239413321388722038242647336990719889952748519704858974091562337481750831526030685589262804975382370610899366468968100591921837527267199693591763354799353311058026132343529287551096646513840934700500861902756548351700370654484232538536371843472637461385327992668809705281323821960353963134900347172285957110147576156410418656230029567886656474025393262445118420112103270160484593235080888996055722328826440484983743263966529581097672176598668831844658629924853028466784617625194251023016922806048828122327100062347061348459073448244436126111744462213815248938513059026781855908060450532207112381560568912584990163187828773048570791258093308911143919928319030204914854212383669404411520222133594746348428887273105937538991221353086701407005603930204590151204122921158306709664229937242776977469293296262805947553288436597147944699496804707121900863690165059938608497489859818340212983931544103699028913442906830745131739870195348412959402601636279464331344537116312201110211217652395702640776625912326050289077356430457448735887081925032433743299371934277988159893773180560027297207483030839158811332044378968182487281681879805133275396023847861930098301687942195765776336924188164640055590428645509644300897836868810169242315125615337010542290233731067808223484173176160529884094516555168651524964758290282864031635362096061379368365556113732818556050890229990034041694057579976762940804018695910542462355653167948767156067688621565269348191206690705914864690655309087863832846271896829627405104298633783266001955906616564139908767962989533170288474281194124682195322409299800789173888437982741740321795437630147912225924128020368963292061442810643872833606636579585628423275704135704717818680887967107325417167313329589571523108872602348186555897498362963580142011883886833823994650066017225418353816439385494189023363327328329748152782724995748444657012569471617569622984994103464153831842077682582863174895250890353040782904883865148630136688447627643018904180248854337769749106982484422766732909403083303829338719271349096216312169071374729687067634451151885842639630023190764128862586316422062250566029494951036932133542742638797609287855989227452006017887998881089668363234705878874706803685215966998628291290840861053012804951784125389316448630749089391388206312572179785828257152458743424298762384921683808456974824197744183759816731780642915817556260608393702934563814674386868728277700940152949382665659066769255119985870160548370925934698131272688718973773468305765470205719767724554520924570939141576628279129014870951168866421393933977105897332292104891295420436942879399528883158644614989083186124369213978284330730054937976762280612063019860280446092928369029079322640875555512454655700286122912178892293226548118493291302614479331322458101569450281248335763956740168931744509531469414825547039065907096298743755073014634816968571468041948845680084441292046466644517064403629232060036819484929680023890947381996728228610798925784773803308521042154671035822465656729990931462073898942499528416132957245538929452518569064372776296308883754481464608336130479931123342123938446206800682198125751078702304620367888077848781357564436017583655054944247987262034544788385759274690595631308794784019658693912142153538567954141937312489951452259757097475016377546426256269726358619676218553925722034299051357578741978686995993016442901512319793819195299971103073762611842846163331822244173993420041975221569424522876066386874324347096614254811370480490822730657188995549136149848311493256435636386514915821870328641641604986712416542098040000377393238172927421796809020487787493873588557097460779609430392485441577379006670311912103639519482237293252346514012717109551349657140995047244966105088388604872737554552806907105240282782857056108990119656105207486572045680644023675838624950935501607880713120146449892545392649097086080119026738682347841259706060104519825201288483466253346361951482883392978533772847977403584790922707518512134231549379664609152621536591781321016304386460036853199990969330796473586511338349051928747172013411542834043047495354016699208527882892835815604001453892401062547190053623642983439834742950554637055729300242126701158470214579597621658347620006487956730563296422172335068081714975033324495083866524107384054936755384813645324837722940130045312997070777365259803441918729911773611896287722115368867868360149808978855432881377521764669922471191907304365360160591214812668262348277555279450392176267971315727743988609451959716202574294276270125269475815540097958372645681378138557543931150048715330959942780985586053128665838343006583661583639120516939042892554670549325703263488119811315066506556664559171311082928697085158301372007779217500033525350000324574568123600041590601942695213068964419065451620472325064324037149952803420388127520632043296315945865033322745660236087317919769188070410837516550060832934424163771609902675915435841186417341408833287413620842023807597764923429909748184475366966065968202079910780475478347735691993506855064210566294921409374616073910643296386433938440011918526989076977992628996187538405896916925619255423933663794260016431231463361643273222225754809485414018477029815668729039644165581420898009155153464455506505977524178136215239232523599598682918566229743245606128223160985348040836922260459062002226820494020197167929996241778041732682257713880168160128594977770548544903253082657308568578590384491965336493950332042440151206524655719318609995780759130349855161000661370533674966507322478369236294490503002345150798774124169008219764939968251710604794103951841940060934479616631956567717362634956294210631378489120701163249286015074548689202455872528313339174601098755971444747602786536259363365371971697482036675437956485296012994944294214825642109420060085139055216968353387713831901800369267420226873206474933516670608214160274668905187611071206217190498809208589864077044910984223544157342826675337478965927323583255647076057234232042523001383855842662110618775160364933058251930055567128153435605884855129805078823809733327028584855222258335954225875393573561840986015024237752567022007596561087982342117932285860000096555310640976008059354420638549132970651620563193616873434761526616309290469604193626080300400197110142724928759218780883214546837513704729257466912791754536718226884219910411553651884098985372509537120362874878908390163257525322222695901164275761654980268440474117614390124243705927516277169251503553903968039419583518153965715598788841353946380776682864412810625797905881374592928395720502490331223917828078985229927418007419379334904308795389006192245558869603960846527405261499225521090096770918132688148993094799337975912952640087707061564442744585474854038879674874932229702006354406438497029029007518075206909502753292241942986939355484807185374143986562480979281946065203313771857655213182298020937301544020559914731072621472906088075804125717374962032385241708238505769561175116845470964686666611442153619624126590905928749825052292824302366850348642394427317747655687171547143632296464649852065457755273293517736572500305072417482452754411402079816567423204850185795545612296921064222777112512569540800966484115427536403431207698857798008936166999260160677903503647580702916721276560664286988530583880059442572089124181575496155454898680321814738676715389419792939708625785158821029787807254050082844167047965385959457497172580758395610134258397979448363848392390809646037768097486653451866972898956540223133050175490921024220132863309506867486181644970737554253296527415604934058110151043414886602290451520404649658061712406640254251289978698668137713417212367423799827075027919609487608100793091497253111243422555993215759049894750290807616112553975920998169807392774573157641256637839186910799902784431403644324843138564312589759127664450600549961667342357560275521153142183826394696086303927022312436224030152133954918497903699895899987867973706418099565907152308437926957503817110934561741619956085648814061072607875963984536024416908382742407565724439755971758582085824043801312215981537698765215364350599420332589648904535349872852127359691593515515646868169500598821926991558862877667048936809197590045249921484944901882217404276339724271683287609726944438725532145687590373304684707367778913434880118269840851838157176202053910293151017408775608105834150571073941726652111623055538847699211888558301633128955779018484428326082861859915834773454568780913053136938461482598697180279046679813529574327520903778075122220379936043330851212233471525226622315940035954668924011814351676217382331702211378953935130626867596667193334279460627928094280846453885263575153589223524621398978085551970137221879146433966643977854369225210920263999206045050772737105084779971361555697969878128675396167013670354768814132444022268342282591832739677109178872197339842154074078618781247572999809028698357101339742920825627302673908247232101575971106851971671298670946810581319215303235054155966691621875505847196759113114480073010310469306590414968716513859384224170268488982895612628485829107826541790824817076427707386016275856348284099096194204845022225121563379398556672599379066093804033048192171728138640541405517842914231541869105196874785578420772088206780987575024743582908725879286165355084793080481242119157058926012451663933555609122251510823560224109069000334669914633308457986541704462087142497518634530336069041075564337980752758179287955035975593059379490646256795535883553500108822264225863659720453540242060784677594781529932500561718036682937062264053365963674015068204371360357850650150221389443939569260518578044119862975495778606484878405451391794512236761645095167006587019256363210000226923703729404858568429021235929693406784804224166405830873078191968348599305405568742439875839103705075263143778016165696687715102897306169017996724928145463348518619776529333118980889447954601536127544357934612292503201644245279238520074503030445006046479344453890169813816183083953023944013871984347616208633024876655365399779638042618848978266650526973716750159551945140756261322840593609241951452499479033324695587589818799120413671573177521532595027502811680669785221572345274330660935615907780663851705799854838065287962402822259038244398418424709159327868893266481788884012686032192706655704597303588323701799855653856426860069565675024274854595710490304996636419007704071066431057915016925650424897029645179984755163977011776215495208838858987213160428918992196846554360786969199542532892093775895208964931060355622657951867109701158552105921512196960190948755860592121521432174504923091027743696940755543570346008993340585198203013673400724082997304082266489568315176838327077823261096533545440887397218875501611411025730743769838283987358914652582789421191874283308531987272491158755189180696628240113031970919605897953083272802860091534533093614146328717068038553684350306063390358645609810252920975093741800397340480276696216549730283108014653585729144455325741900750411304843075989644804505548557693191019597095973190392870176501151201089241366101277926757886710488605854765616931439616757150533320096861836335948402380231045299584294520770342450817119015879057376007016752256273768930569313948617489881949548189959955043999628943834548979570167612092929446868774750691575426673721697306623299743920718204090541278755699230097823721817251279862391353257454217317011164566709244870203767646027667668784764087250352786163062057682188568865283386215254160515661577498098509281555532738125850994961450006806360332116085174344517841829508039845499019260253425834141294908010523892846425960104207218424831036772727238446792643218271463605776175739246772754992142236608183068873411869139989256398472614809580425496333842612753913569280158519176076840320142422023958123629814717499162616357979310671189860805385230731585500780673031771260009004281386651515172095752580219186990655781862983420340588740975299743496728561333756177013568126990903730480389690540948455343429014878950598082049741304138345754131926531767758606361223116690159342887676298061356168015181746496458501503471419995591094646019822804491709125252913002501333657097026303768912073512586453606660204848129521719300934808430620025000392119183765634361566206941150869697686621922232004890367398344599311495708872776150842045535639255350973507130259900871048898321514926857917745300275246493902669657766483839751780007590432511788325331804209420297502474106748584519356950251957526194946417666200064340585110572289511101812226931549819847907664745689273761735670247822815464518200884371606687643237815499980728735687068015018883697077404273724633546418503261003413727803464773676605635840646589573410823801891920426151934544782513492632787968185097554844129300384645865478870324059107858814810099264460300666449014036542415271032668785644872971840630281776941180878854063678156777721222903913727371623072593167552203880979041724942286319512695742370963414344630367068766537435377581963377584832338815345971043026947582755096223049392830213496354773101955028469136084975519457670053897770181908691685021975359417619890285606123999296811399107275593242188471604007509164154612176311434009289699939906472511585855578828164248676842243395122671053447873716483006281484342120361824367113706771272456955683952448880469983405660894728102484223650953540537221374222706491455284285892306806275990231974298163337408483722149717804065964004287208128281442006067120075760354619800728287722681904414418477598695630902968644931614085928140474508525602734699529008891775167885514094502018354394095213569540854693754235948374606494753549697787155794699269126071937669671419796125445792433430592008732366404881164178028265746490609887669597477428317646156227185592542475880020327139954287741426589320674964172283099438945044642536808508306294445829368772579095883732091850331163097532329305828055010194779891503109964604408152663034334699908886041350000039117771010231601698841583807438422581854886265159611960661729449859092523878308049608388188053052706285568122804606191302162486164419636095000992481498660782588640549092958486609690017153285558173072173468615856757443430432334346855568976438266749447306996664913732969144685327243552951678762850333865999227835882113241185771682515163882574533420466455248264520703445171186281588111283058079695410955856324607601049823272083619865475849497344904988792936330006111999407742275334403493917198424786010376071625322904436878299793766411065929486380299158382272409394102476659481062198733076248179850655115345191016162187032676861978295330597658437111182892257767925117273424020099037805664355471518140156442925829362832585128223488960696945286947509551444041385048516018757942293461423498152799548397900002090837382343410300349337899625832224272561739710396609928349983920391364268866964523195045439337098075290714599090944848924893431684730075608511972496605822512452923278958394453072525815595844869202628817643988789070336174056482402209733404872235208759916836043180206489757493826582866128880857522509015766318206953485678233510674967098830206570474608268236230883374667657605161282106692657294846259364584501325527120660754123873552650264341980152988116098184278536490316942428782193030144910125959558477747302686962374578385919612572603159268898657699876596814683078149482201444487461491343559859949886653032938371149512566569737141048530972720586065394239209258031565711513079249662613077017817107251731606571613661930058592612282804935016883040344757131326289646497947806902614992987325816515106145398250092939264108699027771851883165592330619106197312855869454131165302570651894204855854075980031764519330195365528185812746683481728907035355799506013561138585301547268419666511900029044619144315571706436498298843734361166848081259762712482288004355032659275027504083227184145710738688543025551875228965759864995616678309382349874453984553071300483529579550913561540298642374295970298391902217291132152238929399630669733552788010435853587464931141778962271790749342337698521427748788581697116595896617745899113698689317632271577411976071827312930309373947213494172510356157280545422921930047753112629075788295654951282111599669385244304134018942282449613399035386004410739102640271968712733155397337425060393294957180529366770881094359057595962101241694735616125532046916541399557323105652402123519400431819235997073076237224507404045045323982121656691839751976107515397422617392525430687064802527355585074854451923880079480815585394567351031814986093473576502049822199786969334250483776390932357109855151484760041930071685441614537173213817436078325860870879488757080007747722761137896765458226505676821175056817619832158015687370426218475021226875812893168237341334645331526850629681484231537958363778989162920151028996494941376078453443642059788728049085196782231429167886885947013962845748933595457990948179420961170205824061519018433478614018497861487472453584438174013224178257458890737753345149242803127498958456051089858000130674901844714156266622294126703421534541675500911129977947180684129738802714241742754770402091424147290540999246681473345978896270973119511170033752336886355141399984628707412091114423075605573787286404384321456651291678301046355080037456987151316903865423611824002753582660053040651746539001109160635024398904687061589413188795956561718305830094639457644463174203255010568103261773844712693785736924024149015364364230750491632841156216161717087585596536202197555929082497889483365573462832638666340040788229901133903501560452968487758058185109469166556568933942522113957095336974248129868956450134759767008403359435520222068623345642352595411796264405413749917076522485505347761671113976958618696172364489949441333140218749305217984545135742767202572308590990883224048022646512578294746045930739982900045532596332997608109699997746176051465871547222024782788662050366630430652063683633270328592041400605481666125441804312464367831491749211776393652169898827451763297362574693216243002009436624897657945370103921311150596830951136876744157521584384248649489039791476323302377006071125719583433205450280270892878448062153849448926815336568767392267407031741263395977680939102751849701500920815134185695534013758666445514437173848169569271890125312396873987848439107064817639640003418292594976647608875210921815227872405788230792072213172861426944773705446006177551472853925770943784596493356170066756144269751617799695141840480039638475482254003044334991181274430341174151179576076931768139380670030968282884792388021422994104985949833174107537521906315009131177000832920326677432161715312787838644349667359334644170859361236674165329221585672297035389042432027445158727905699136039223042416614590509646924211230575005709629107196629553273301904951837441098345081446807743506787951241779832990951681744125764278236772867496205792006154756444512959662242334034362814051142927218679138103065476574237487268981884777046049660124891077418997299149676619288289873670787163520662510855080202515951613352067583162328508796519584447132887818285110284737826526975867877391975221593934851054360429810908569192284509902008826940382792111274056441111503019486733078407334243908649983990799950356535708088454128820036296834853027358273910513193045764871290735346196347230920593578039918354619916443717629350206101980221912771816946504284033704480092898345883476067446261263179183151894493106453793547255611515111914396156429781239503704995135241813767486563085910969059423595395863968436495127166629367663850418760867957305714793472207862800554153295851642612738286940878696860813924851911238902811196838282443574965175263638476734823551130503458310193019343639513174551600336916472381978652307973334970419066000411074830607736397925577843813102856816617428713890866042907888667061724605411875814540693554211222887431695512819357350902185784013281441504485346083545167959191224160162116032060812865201500049182685086789699398047738641650807893125473820930015654494624724248443876356653559048581919435275116980534776468097135451210385386329765660986026690485135580079289716327274191478819525066555864154022358917897661517710361571334272253139075991289758619966519009227188966615222218843816027388949413859053838438716500271707692198481685967461257638761150725940122061331709390520557718245907790406997284405776557823434652268332611828682947918746017733064528108437046746356125342252162235993540389711899213905870129609006247414985394387678254112193845308474459524864705281116776934967999844251436885409232307652511189893983095033724794515171739798507841070673905097542333138889251296813481057962597515155578626753982685611505369862713043565438363681665189607609722986869266423073009797527062035591335673207121530524537763212195305768685871775642887023458912571879760562599470830457270669929101910807498250559556697404056608977837473395108726710595830692337571947697291920979190887526542116746954233326097822438764666581919168012296966458978912731530293278209277934274491120213351615624808107784206383810594345639114058862027898098749667108670717382920509736886660409646681686184029836829927796053503327602286554382935896425638421139676245786834005035082394850508741652819013324523500587992043045708309930819200965558615317504428636798496771974677474266384464593417522927280023875145301777395934296473840114277139967664471144040905153127573548700150644801367655572944070266961551904089478492811127868348267765142778964173306080568059180172785126756661704262501246399639401779100958985139169906529845220955414680618258508511610400945671248862442455941929004910568749769419023450092896852210678987393435886213951800690274198562937740270133757223107211536102962172981534036470239011835100309958612243747334781107453684778378150391924995673024215927187504619495439697486378822606015335301675172114311591021848763620331396213511078726527822863798943970974142262503325318647944252803662911806839188992312332459222948537827940593472369108755908666418058495794383618567056042198840258794951671301279023211021584152942984841817181916002454672253574689818367068169913251102578503848229235317010525064806948615729360585887614873272188331366696428988594468643818371093981071405719625081335974563400720214583489485610828464734575489180095466109193729017598927108267414843149636545393730653667849390975284939461080547863032618971463493591474726662915263338612477152988457332503636853428337066850788786958318958816925069085056414371281373919016112001311078352088318575642445090836596364730246240693212938638935664124928031835774630470927396420231442995606074128838649281820076340480577948695614288633739681964895649748906996106696889920611386057210172197419106394341311506415058054117671383907166548223918640259451763474249693084774275998166541584762752774767435365977298517883131379037232678678042251377413343278755005526325917125074503619440405340592927752059028197598617232220287744047563650889397567452724704860610205689144412630006592104720199479123060974469924344469376025252305230529478731922836339116638227798068738278970256111972707243333174967957700741051665657366147554367614054771754920527897611585504573754854730733505268877205419337606591237840067064188272180714611939556549699156067525597891217155031559843532794756935757853987275283044361005652534672998045100813248540022234532352879277508210835651020581451089498251836011671742922555960240450336667742637484483406705431199040500562451068924782847443499015589517581047015384999415290179786848001201032349072196166564581698707751008846517735032867713218409520426925184320282196984267984060751673926519649971144062215464533535950338348916788155347319286586760345483698636672089110896567150389778609919799754371412002579896106988086147494043133005132505168408215091008859128841021769308132139231914110342528242355823698178919601959121436995187314710281949160646434629187235089510629769115336584020913374271079182793761202809499094851495969763634494078301982748312070250588350765060396039516254897825511693209704219308475078381552242335908434957326340273803020351452296978478857682532757139938562076700799245195118319577337513958826029005351501034048319927334281366630737356783392187358374916942714728480691567917375670457042230709726619366892075298525330028509249049676271658429136208179990986656220412406142041401665090091955063153637524612839330807002599635164878745879889810779894277312861565193560936555143352010556008136698332720017546127697388695232092390556277426849479177189556595747766812530423994982547173256632272545283677173183544082429115541112039611755069104415133361618151910455589893359568644441112084101293263646461131466370500339083201277774988003788851005072668879312992550414246909435614352628546629501687085097139556535985280586371542993827212099466464688039604868262003117093169246323073697310355663014009843404799511795797886478423925350025298169336760636798603308478399365263156966456521980245221981049536191047447986511418461426030207367717310602407433436425107821806599703097318000995578010232278399308521655685505494768677921536497759672455151686994513285287576598846438480005417897160407380021554531612207179844023347455976618437016007393276339328587424052396072635658438333066096711365797296934858414230407953522583900355347900780855966628952102351109840753309408031277377457391803947318364273843550390522519493002965886630323910111777388223530597349078465561672559825865814013196871178860680006326311905735590672564336730589041746966373215441029973189355135153988214319641937083514154279266250863324351688147485210187763115043563589377930739160518666539280009209662876500239808185874288734432280748190099350445674953361883930613216428629849926743736017768214914430955730049221799699998582741500895233350761641573555668541868357877087228340349749112872134360583050956333475691736559213508829086031514973600787797352688919718084575326682809414672161458303802644420580478092219480146776516718014582141435763680651308147203161513986170875690965765870364293725379017900009693707263735808347631499379239416841184212613286577330881494030939438699521935823472433046253957794733239075070675140185163946287097019285790995185384237213723097992493872938299448699829016234389168735286442811588402616344282612092375171132040280221874414267522931752002473135261924826509985132338637241027922005325366000133962963845933986724461604212875530798293403072355426089714089000099680156486774065475598700348922604521995466447852737478763475195838350296313806022810515674159199349304151877455853301487194142912613794046495831534871119068314724773453779912329174712080682405064102464946352024639089959376011255984875824711365841418503253020691837410302043899815329055250678529093169507849670640068322102418979718159318362753577394402844805168880528987347830094322018355375356183694390936830083114186792796925846728960897362745034368627013195678557382224293301082175833858792476764551099786631744566669313976047659651664436825742272956932252112764140665939997339144123049937425402284255540561828855211092051308867220566786416523454876184164929481995943563762660340522088529367995147125552392166199752358135093185710085056875597335371375845425985147643921554915003215859504410191777344121825016860890505311786524026912246244592587988604467146026417397174416407446208181484617033727231525474623220678979484904949025021313330273125958532334320367905079987792869384695018133853722202111338580098254525508785244324542591079238028246425658366211118701725178811652669453021220918812796318392098220766662977044301205194540475683244833820956565761217916797086932174876363534970967558204860079716363400229265815362506517645803895073248740141360400407451627021580443876327379829074576744209043991899745279262595559018112358912718772355976657265187515183795816880144213468418780223078156518427214391136168140667297939466231509591245279545447640574907457193697466422619893417879767493119783591550133895797347343784188166275498050060493957659806392062527563939963362806349876121134335817897489307813784547233815492845358092370110618534844665119123617434832987407295832468761859102700330228198008413251574425601586849324362150559829122745929260511881755882168267184902156987260274069397446200353374792569161450576504822876503851493502382528036472877937822016786376818727369286131425119485827531004321604163290664749822662219508868950993231070149172121472258204009274285956771813748761105956781090564516908688224662075824352293715344755585988915855953783731608233071263232680205945301753473046535113582813106950449055536973017654800827313834977897731687328948189768191718704011905505209121433155782397558321170384542451645024456888385908313305908743710384303643067987743010962236351041705298925293847757974221296469336815680624541720776369595227382228506689042892797409502290808679436514717766574315884592155909445300961713252362622650497534593578570028026048617080802280171021005030042050847456324653571030341058129081037771031817364580228775530303682239329215508955501059823287329979737829336042115663301680738911939674762048760150674624767476317060371288478143476555389581800923732240227709740732999708376209473919647475682984292176108016438586245857041956471645429822387056884023233165239435521990739911106200549448833818971010182603766659042086261787657632614675914422761783019147607016303053353622426071538055627585344491989063940431371663261631718909853620323286897208968960933901091413210767714973026165457947126609446884648420770268879880230693447010835642001909582875911821135699861816643999496659672336689237547597292213093870390010136241669545222807010889967982980015611342598990133323529272184306558424088123169152801523877889409600127553002334101978864065319386905186381145017384667256129480307390225810788911165447803546674109931857277826681010481906071923158707238223941232386849249152800011503243259528215027438956856719263571232527735367311083864773033183928362227767211116390396436563401496012745566130458137384084131426593805659570628814384655114435340214196802520745720912112449038952507352729203608545671447907835289418650579373716340777050536782478708619349255069069358341742934235395391031222958411914280171072947428276737586048833039888205971408528552453194613625141895812580990514037954189584237517511138099969699537709963576821943304774152662578820000946389944420981236899619824878566134309223202672463736571943475037335405908280070149783808462976282858730408319517072660119296350632038180348303022599599899138814677654165609950601437733759825136064011011151102407320022508520187879066777662409789208257804967401866279475639275064775698397587266327711982526018002053122607687020527753882968177365942506060078672459263067696897112074659590092450628494489395435201139533985439377204381703309318234491306011076141426380835023803147813587369567228598790379712319345292235111154234641357514385082233083368060056351029602186157773919525098617057245801320922810946519853690636175454577538516458261812668617058315379934682790888594341546530750674279494649506010963050875734353724075577019257362016424915117202962128264433751752035839911713099840909831983976474317226105406361585286903181850339386104490842325403501356970965487345687254227340770679692287944319444194876898827040477272041229623200891713004626970548749667131155146543366213220268575905074142983628180974882227455758455615428361310738820528371877114566137810992410975297945076261900546938743391281003604813750799080424205004222558689153052874702653434475235104201316271516158360277486167182729967068807153854816373326332469560211505304260185612981893798928889126762129057448924798564907838245276576928268395916419920061389864083394175998092802511065616356527749819834349038629239045869400964327200032905005697923868051375929341953827067414185216114642719484448282659954447501665204862313871974840952517958755141866331033139648593455691545928860887237761309280062370185981846527598291335710552498579529881285237257354878589508275342858588904930868505118791326638374886346583203625007907438063644493889932493516440917417878130685124140918065422733506037475959524910213823561912145567242891365382976036522804991480222228400926895217054197220349692318437091291335719226744943481097475943650181430852466770072866576059187324779900953807319679045497550817341188850636227557545075765097929593046128312384511772203733176233378623231556081314463992532504487761787759417535263768271141878043047550444048699492920481086632324014999790621841825107082520319606952021033127790232682086627686749183124695857240351066332177162967606394315144073773509493525660301622572463347572312180522710873997232838977525625741372107547985524030833360019172964776592781459163493151148492592642703419077371942975442423528537304991930988796120801984283979482367215170813441176505104109944848167081354238608897977956148864233981206371714820135791543851462408652085378601758291494375678911561219731737987620484472797494797063542771729691268914112244671722219974371864160598123203223358140896633239696407391210621997833707431432772220549690667562062633061743504936795291571460106339188871784331557389770640299318480582726693666487688169820867602334134540544389828311327936215520572871222656146161991522796280260279783721861615365374134840246916701500968599301868085394973989507499449242800911697420715147094789396830458649352444340413923045052050842695813611700696019335446047075264748827489396131416914911508043869145198666385282228700028353653213483575495682583650339506383223165301398161533072855348393013462353082849629005146702180041556238392118305537075808888341193921696701991609473053995998086569221311198431706471453135038292885404180092545331521287559060895111409323988053580272396388798178834073607823439694171975078958651539910740674842699472675002724858091159018432696286398926141125978521028218752051205606289496206154765052404811641269090215918668540699198367372503097341592899084723675955162270364333704640226309488616419378974804001551974380599008146095617316292382632479833537649070101794082986727913537607080116971460346851289133381468867182212633265837672771269572984673543144608828173369612342454752155261347802827278703143160901246008908926225610822956750475479072430309006325743969998633472949698431670958854822466955067474389944954415899519827351547931365119032296277055833004126699740011352041649073989678741849254051048994323437872655593859867484494870160294422916271069583691855603870934423632434354872780943892305885511279278500215907807956875853753149834622691850687960061939943613210922997239582747393272040346500683931587757344136667681436569077336515676034626335843698823111071464954192206971815461613213906033656331851478818218255889551366780940354468293554955847316229994161310442699957477092362034360311694474348698389860409579353184471641425200331840601473104739380064839124461225771162753963239374930966060717323681515278342100659510310749528909596021045925401664071407722125685069200260089538415230461839465455396972143090444421728612920621148148213807379520463434610629633003297498247675761030618191195906037931077395707141973781312746397971365504421969111196294420256703224737936665484071759241230639241119111431727381389616877635559662498537623879575831717201605558053089959971198770405285120913804710490235918063782281256248794568842090231622403574532486708209890108681200140807263800609953107347337625040694597611509639416708758087205747256046953420274960634385953040165605792975540748332000421599157851558120692575308132464077656219290140557077053816934174243440681774547195269585738140166984198114901900626625172594031896175562179056486476369105388198743008625445377411279380365311858328561787373390123486110654461878588989221929255270516080052749571330501717171528860465395309916035833386598663796813843556244931398412146156938164300973597642776804608785347842995180041507709650084963208459838878846168798131259547973434546423752293644278425532949203775322557704821384230955157633289261692976652337744592079894440934123692517435870636034119464574952030382891205068452436465508928394215654617062096726493002460489922049906961474357708361587606755133904827126050868877877203345753879454818413510168808731985090203208739133069316018040123697462082613143104989956833342612845305241352331563198422854051757905404462758115170986547043636121500643143490070850663038470515132972921045120628417291610688812002847071594567437956993760644888308791950369472694668093450692507830243488802919502813085336681727206891186585231992353885600255627581727172960368015554220186921162640162090241822912987059621672817182304036018157979908916320728291713341361176588076532316561692232378066251002305140028983881207702381351339051601822341064235996047557123819873929564509615819906994152984652403480901062604816367864934189735418143197283004996378674005172579747827652045665605218447232518321039905008779832646380728753677685718372945769451848687870104045533073772432831900754645393400640151690890010935853052474948579182138989967999448434383663887343920789165145479210587476506253525773358390183662493894497509890362622034080071828463186604842254889718355121215365430789183897991813660013011864254288407909783438984494879832490000712457333781601296708886408729953413198436628697953743615695760735110736699997921670259082431872787717355854423489210625481485815986992576561335774614547608040059405764563378716138898085430853749350526388756075797688892212964816453745637236374101528512066345256447428594250870101472104495957210383462586659246511415732735065074068618599051133476437513077037546335733462391968147086403835305371544691217379312052489221603485823324012805328539370222633028414002660362040120205284237555812526065936766846161324015829205923487589421627223930529365110500587660493830920755581829069685335907614545239114678017459051519183347791634789636391117367834501792665878187478111231549850453575100085331228026994581046902907724445798341954784822960706572263017457963538601789804342118901019778650507245318962045233028897805664892817235394393402695183001584197952286767251272555039884641286106521011961721658325850504384782775122200700554442428261164896664291665833102486294641888010217685204128928247727007259079276560643738980116579521746918211452304151693324845797161872804394200569790462701264018290639834175753220321483276919553433038223505955176281418606295722136504088232884159949870812236541350735426345532031776923612611328549629128808019645897024324577388629619451832082967136003293401559668744525337412829131011337542226270138860808444766393398834306529824770468287680323221721719698529239641151951550832703938906752578642911472320410504042583278216211598032454754835376395201858270446431912097169670084537818636526102323521767281300240996284852935190406531027244640404030400767470693108890973819049949958965530326837732555139258944637385082029091422059298018811292066502422755658226792378507156250474416625048402916194574720371580395138951851422431656900468558046730797757175409141044456139072601211088543478627601937480623728358640860958027110224850175347424309192389069173421074941295104368508858544743378239725269597321164871112625756273604329776223683339694957616842846421995683483984889432228869914981920722654465810773572390901027666444509301828355313871781676366000645632754695146280175098402367419847054069451055592052436193293264812537926684820698068712169359577969708064594648385747047712666362458714319399821324099423381029338972292659858370365644851053341217583541449495384015996252187273972123640820693881171448488043268527668795963250235597793526285665262555817230036016205628599935883620679880248629419697534545606444389192314959544490656030100924462795555859884133886779351461794853622186791383272411390485515668059369487658079204735076615313220850635818651676627853949379845230290193619071602189330930003405639572081610653118915784092068040760547247120846916165989212349359623418931630787751470905457696021136502609119622800311714779845539400859500764968835125084409237788852766027470963849594765669628438633318475012837188362882591173916052800453324589879324850230176549705242032907513745900598650202894698782922436894254859252669656894957146228685834161687152305151290177552404775363893092539619370462599987692588449776944262879217271624781671926649608931057105571171729974276050478577094985213121705616444895222227370835932759838041314900839026259636864391826677860502725906791724712860656937766434512540409790702408148564320725925638807231303387826892365256831838530813477946431738531544559419446865948222504023690354063028444491983523882790115556939908798901601354518935637107132167032132907103298187074026525581568272443383887482832835699358287388472747444079595892797360336266924634814620368193237372167184915106112324390932639958101069494196242377613960004249402390201797331641416687967908127850970274855041776448234723599487879688488603865444916851159180205913534923349152632889357427127808112865428888220605608052908282935758088551824459155489063035054734536820643047216313808444293810291852221041056725896952303190283095695234158596816632142635066922704528938067828344006175221769835129717327734812153629840482177080376757748329698941350399425611740121335728618433402237276108466679198823136514472413042000685870337720928754554797590706729922785841693100198710265343169982526134295119306784164198296106746414662817632770599682700663758112109977568124894754609767186185604223807112024558781959550961211255837194349125974474425356775140150533138137790994252138941123727305971681413943805324133869641920880714321541239689679007597312871374515296658423094684278852236055827253724809417250722770058767268905086430778697413871585430883837367445379655410365202036762266509930656039398359180784066033036509342192720943405013206480855891019234433532238927009881126817611842828395791887841297411504268428259939060269672167644714658718797150186830116987450232375126051288606088419078098417789023221039823429293232926309115016906040113805946555183863679006298800951218522837692239139136257869374161896494654752142762385551502530575387792417404996102617199745222136615004271545424291402097373396243669029715810497773134981362312849648698325815146205381287446247437318537069240490513780943505429710193558690671620866756003552042692637278446275088781462172351015802148237181752785923882355524261882108415844840020298568466450273463714088005482078003289605020253722325672124282663288834879126153195506592352843283996109512708128661446827150425979850246946322763186407789379695100940176638296486651427225156975295294363076416404970855364820344122056962247330869294563680146078635390070180968525363189032017840255495699269929953867223818223438041778055509794915751334143292928866150707416008260047881581778544495922349187076920866409683197832659847623486285273666662125932956154640724965394741752953253313880535159058765445330623046943648906321208547120775754568173879480404019229543870868807905931501198121687158586123729784514019316366989774099329260371247125423000988734814926566940284242514987215726748849434915749188804281419081674221061452086036820601439747302095795480796663203375868943000989771534613779450666268373995781992767454006046661435436225841617173747366756750125541253602051698252387662822619232550685802398991439389503485228328759935496997813943787408140022422827419076580143781498387087253155613152361766936910443599269184789850897644096814039626559469085658772322166144805732626813867235544933027443034616887177996816098600733381749605427366148191414558412459714990288594479385862439093670402302318847229120975062294182456086151168234950661090558651099959723331158040181924505835769273419009334497599602888213007963878639619157633768056093590820167299927798079025914708052100275557910522142800671951706266624737977808390001904086265449796837491822635526425833282623543344645939956560396994923257956029335780522852875221032455928379352595711566379643397771805057000546328190601601305776176212000592744444285833407381037870130268702193223986383207893987860158820275768262813527501151606851966033679822672970161595766683663885091367850012845324677829660073360831534014852066764011740889448158747684431007466017753878581051709915614809542168473925894445273395898948991422720080879919938823164213380716240713260354392883108832400533426856057260219933094021824000032031753449473578639919448853112720351713295002323852743995493305979040487622172405870447354593760075312813799016763927363654960354896409761212961089923876713459122421050900417360216529223140847101937765474454063458382910109489144175631155156224271566511379303317510689475822296106916139408384849606237769339080258620114678259849576652191234001998283096279293133423325526151370787629883604087297178180354299483014630524533945146846593511879164688516564168874996151142389805878751656088602389282130292274541778608131684305630227448645447620350692979309899326263894832956241235961069585166284102413321516488984793528595378416090227386662728939448756906721829949918951959874134556393577002710092549066060833911441145137520209378525289758049865005773512553270084571840707774107304019130307927498545137993855185615113071030574022861021291538878185609702149388729768888872823614384733871848854890331502985546276635111491004543779152299980642669346151845829088411396401508937821044875337506243732005869639128839859655141281085948586576450668727288618605512685388961683593978071953492129624935678805732530812995304835627337231216024050923101007487937093952137422341398191781363061039990104467357909300127255524496328323182611701034544169353445098782216188135152579015542938198848524488451387399318083772478235199355986403617070480096430025852550467077471249306316902787107574430719665227304649150641474912068621388276868151117245170535486299492761474493943588946716036371169965973582561234971673554311680922132624562992261722572631763765428624929301836234912965577848196573706399165224866654840330606233061318865168880370157478728229120607213186777017846001843410044889571515912406126909659766425099555550061337605038624830786557648497129752275536258895755361596467562458195876608263766641047768720201685240478292565011602784275042338019959886531480307389072925323129662545583379199477604463984696940418819910418386919969125611901415354614757343737938129221738296315748158797668534103708535292374264499920812090775982094230118519423524775174095619209864249374042589960709488290841361249057749972554046828380332057695158697300720436258773320454049911432401434580822711232885620892245033412161671624199558703971518901316633813933253145086125182173245535130639139558556296654303290319287545421366046420286768589650716500142530238627668689814002035679842925462100887937367819545116334230750300758167935160117344121814590596700560615578395532038298916353030577101132503501696065154630367602242391246577607370523862279037431750036054613176531650048899933481769391308708422232463168448997380823096574991030998321364662272627726266596245619491744200744717049784971881274054728841896571486382141450238920986063731874018749634206878548576117973421896490419343672157135352598035768585748258037834225608781583994069109854348604026931817991267397006423075785741878096889681466982777054731801403162851111243278805464773775768236612886332666312898325092241587947294232649336848436605137321918279256920433701998883391620023092109604235926192890832136372603161686202253015468243717622504739748102632777565966960991029690251908372579030861181078739589824472087483930730325476606559273543487564299769930882907959616190210336426122137337940317281075316958140462110361652748328805536486665634020852423741908091157018539740612893154626284762373121169082415807406725668402892662033577577303289634296416515633091145942890281208892012336295297036649493541714279812705731501479356496813584619677367442359046296088593489012040801614415324951993151071020226413221498289863912007462778507594427340510457370942936161315494877967659075058972786348682722786063395589311714593542229521590665529333561669879627359844051221680561780241073519414808113680228110167578721408803581739951215291374966779442618825199300780288004637285756603562214547292751528330526455373677008098093883351960920729228084861036527894742858172489044382236199264421315837267892365272327058277001720656489283889562019148022577835950444410900757779430899905723440061675793551307262857113469182404289142490471162566678847981906172593184346073704077372497280465364332420708502373548961872422760926301043128599348303746129885218755945778847681223497028180287916840560783481031160519940102453267280635035802371883144295481706037207065908284316991924748831176320318664539517496020745670471363198106843010037878107612857865534221586108233804357490057291447326903146906327007890322701112233819602418225978556174905555301770660015409561916769404544663202017294298089930291334144364757709735576360755064796842299933294720879308773577481039609716078208415724750694059028857392385897136656898225938562350708749194301173954514407037811795469042474162807439715050245478196388262982492318605738942208691003059342616621370762845994430761870894608379700008998530536206300220536531143356129602918867615737347634252342937462817458831028329376951776213089560028663681241168707361619246768312515739925840986220950747939227997709182416189450629276383483917874363552189102117640416334575829515967514346432069255480463013745352707044000693378620080033317007371979207111818964543868566457056827486765443400391999066393910589547357382274588319412699220146254870587331964520573581922102907813290081743814668558902570497970718870035434375133785200284837434777672078134322190969748786978849752823195239808437945638964694834975379392931224361859149170922461726845025992854215353809393108406652139536845351648171182115348568357537679886109123898869728689388520057259324163359536940804517769698259463001328231857498220495805270388925700211229641210989188256612498107828583528113345676834245642574591068078247826481914273749050963318345552366750083968418049375301975308213672534832390954023391584035387563613657026815198724370826128649036275369187998060177514864626833983963930795763777549339036151177995672497139562555497203343696242188770912475433400504611699253678327114260159157508815933418246675667401897046083058978810700731938563054394459618869433130439984367229379650034567914727797733433390912478958252980335131816408510396039839384651564012117132611983948133747462884845813824694038912036929536277563971240349683777142500812655590010678905188701483467812895090797303504451449609625417016779265074432121565625351755231081312004462327450553760465764968225343890987363929390004426598070899328274974111010432428427716160807803397263220956715434912964695946665257297650825452051603421650882870690990758931968652861829970416695643568224504501515135380885600528877708792797801600706003573153477588479953460718160255841553187322370230835217154303047976548752887088936612401911792611948110000871669663142211146871385330104461546449894976475198511893492996951704603241028994208468147468541247732508444855026656401776622254650317927647956536273142611881125740978335013900353820603569195343936855881811824031737503515391724305937149162108344075466267101335999225874955209093104374751797759175590732791765136245307304027508548536209559604873224213910095356098153038480964228375089083094492430476511752058726517008100459176857431583067609937091378760812134767922907258805379531063774538629736457757356507977287315545144128977604066237207405147167811580185528553202195920106750351985022684553579050961720163068883067752067740844604586205882892240674360812347277870973627352747518235911960942124264148140212318841189686173025851586204851993035960856084132286695490237233238409761877322141716699949193905713423520202288966826323129100627291477193332318358076996081287221851180806551351801160225580575695931083015889661533861006537596897884847100421991520671397363395343911130263890121435473270139959619983046461892168124084123205152624755155689198248834211833601473019296174254798116313443033681897392464858564565209613236147183143150825727572507169501445135742093344179116187882621868936622343022492834612802772047463349979502474345157547183242432044039817132542334501165230219194161134603635638505070614931501070637958513839754596057293071665617373974886445836717394150153696881823018606238722541347826960991757409537507121716217348677348116752828139160542856696056728656446287658133780148134038328781548902681619662524744162743243777146470702731549569523449026883448638003788625710630233972395410183196877044117537659083046134335614781422085835447635977554227907299005551412344245750502421833975399198799173773065970447655195182401570692116383345563346065280152923076721020301091132923371141386602989938397456922028777534435880164741788051278634049857182003402015149868582359222766889042913589185817282180329773505220412910108171273230750879959211480006491335491846469707311409649225631569696757810802881759282246557888668479886622047537432252245718617843350463143528167113279164391497934367739885225019192219535661810027093654908467580744405647790149066881290222317226477602824119146121387923151661844485271317521510944749973805281487929415691543910438326206027066449931687569638524297816158061260764804547192295004470819633567793813481602018334093963324036944220057495852223612863925266847760544749665384817968816968640391705345552978343811139901373502565746963939388775999157959929808719636644513454150017161317927492046165861353879095880738871209734710752587116327757109882204290844355476735873262748505939450648883257422993445626259220018127336926668376009241379344670640713005284553266035554069408938440677982309064764698321473729877135893698524884840646215220460180740850362931605622506307511526197633745093506883298006245981126741048543085623893695903771274161314167544759138636044843373230298992627758551624738139103076347187120018802743790089172105072805756413396353278653959225694935563358013907680754795813093073610391232061440734469759783924368888502266064573567141913542131850529192376853259637267497744597914290097595778617704705347436201843927110157654933535327413635848486545250613268109409500924607130411779659339686603575139967463435394176913327001843152751810373556864820504319862608841789333450572611990435677646805993417712244883700012154055748858037464349741519209574688569784009420732766953663542615469416615452891459618038981036180194112255691170615453968058338676678724852204152182189956947524826550140843279586977385647976855249307876971243823618264972125623289624772914014847482051194371203414502951291091148853763756930102038203649791354606462865501978769191433023826493154237612512186727315300224485942093559592218790328168633302137479625788092488916738387549862780692027050935710918931676131814926215142462925499726298472650378668694810175610792157724877569058600244922748942949321516828841929978955001651322498061179413135918790623410616340310396369115855865824481368995422983655869471472754714164841218964504548266315911294282800588727608017816995112984006434349737936807166604690222968927837069218103589787489667042558736031343567447277671482474336859222771458803679445024685361829287334839855188273406107044564359569788934365087923723173576126779236873455694809545529990032016789711727606104554208347943134672974475751741164155097506470368624702924985354379620127498336801565785502931972746012987417036674270920851948259832664594947165009009688154850484723815633787208482784385616766611271699241669781375444291734526705789883060922426563020420099728681018190221874535627549907179921425007609264786400828540984624304798301833350294018128905295865562607167164308989329447724748986397457216005298792720789361158253631346568447893887412205086522749307676630702288127003503046275121679711703163014769222354750626375910427170399293225962260307309800778047367190737374561189840011467532877552199302121393849251442202466385271228678608687692927694479786272068042618025233416660627815796947882126955282243000824327782799100878412183266853351116831005585361434871516995863555703703027174001900111392810806410429861722657846691602282200538743760189481292224726103788121104516027731277272588621548373255951676410729220901602265083244531296795268457518497956289909676408471456205463915602593845041413444652184899888890055380705125369143930158590169365595480923863257951244133263056045488451980524792786270678845170396705638811438344121809100689103810552586118322175656149648876052809785933261774220116646076760364416936205539866740790011927606519354127211786431175448564221185082871300261716047072183071135427501590611662648399847681291944723795087720466766141004455536131122331406920580995367294265949556442272824029181353683644704950000326102893188822558166999595340682257947739878804664385553652577039989110204451011293171441712115920300458397551726218531072406479373111595666031569408817513009153811864376285175793704067279311871665472753217245963718742597731928298169101547878682677340956258170297492015413749460939307251851627674572485140969201054596763815144855966694945791133562361609826127305429943151928398348502659108748905830650445306687980367328625510886869706855926705968975249241206692963712315840971296630825144757685117089945018708446948028980899068904819507892567978915489107838722831833789864898833197121170153336256568205523144705296540658796500270757179525044126176825670197400011919869308988169321773547322735082138929312169047092347437217976890977542200773698451740687785175102157145094380193066791157535324055589217843481519944600593716943250274719761855568774639302142436980054877649855056316041050233983583805055017134291753207015114428271277981789114613075303256091509445863509647877001291747636406143638403821486997525235540869900770400149155946528399001220154626090692500815742524914024789535625908327186966822291932099655282124917653246307103343113047302139295889271468562132856780218772747868436625236879181254386755895775685224087936430646889143291241889663063719283508687840265786062745285676239299587438639369785329112087290222716711923648844748627901740627123459250960758895847064363550668132783954773671763456017277045479399640201054523213955911596986354712220349031053106255185099839605611335425252858293530090686447909262069616341934282773387291180406983468756124951082358721555259140874469910194440570176355478353740370396500617250409884894071028933403883726387296894853474023551802152749662778820877763707646452891228711616022149044452655576060735426964667925399350031459461735310274211045034714867668336530031589700094486205439044807734918480938141465215809916431101664359246243215854116624503101998243037510822504119739132324596932410538332496824600447875791885083156939363817191872695478345047400915828848392664661903485364364873973278027460246481666650885273920500564816476516935547824765885557399993958752135867479670079302333098859609323548733612073624142148411020784465147115941990046582727507287205387750718191814846502608723719367516022731124932585237145322424653234566562873210904850994962327538809620554134416836762059184515848935460336967793822560439385155663283474748199165963991681928043155359892218100318958469278448707358723011301020664294411694937415283502029137019563865780738090873355141691795681410821221704585644954633040533710416682443974221264517209007236190687789882518969928171593074342558363092965754765767824602407204173222487671171995573413841609174904000376300396220937470977369888852799739098714854568724511900911475086144670892167572502314591704552255130901644045638214464460978941322772054733504683423763386044515132907305214077783210900969104660460394009634725796235006058794381241408321599043925806628941504232604760251589108402832096814874546299473247641916485614918412484394035985021836201275740460378955341736199467841898053792456765669128445488151748590644918427501440610352783466415453119278670058841000986741181772310199660765595803123423691058240626318643108844807844287877615805016425478715984707071951918706362700742387740351671412067864007570682157845151625618446795193526478289444277190709720174361076814881931989229570628182217967189638853839187899107075003711162310169243111827742853544983498338394404887796988860345996786530403186002971884200083699369089838985278363053769198348212493808210832591161078898811996544290820692449917067075496344610678194313625193466041022179051335196230302646210529037533578697622694973426581224543658376172266606330429376278476823064703921938548784359072210928319045445256345182751188077986326096143391212822131847900010890673594465891594041944793782637594111170631733478093915022452125537164830408383740320793973655751795994990521921614847448877836080532552767184720179776317432781991574404570934152945152153093707292677816201286328145666607522866088697092700366468661438645967560184285479573695327835854574912462717392822385063333982456643729358780647414741340758348539414643117325107234126486023774782332586770920291272642893343227182114989345373643222055874442101249903996904373843725865206570245937057377521135061348039019571608500282275912090190351786723280775303487782098387947430175774441047720470910729220763124555894724327737605574340994061400398914776935201987724433484091125272424382702811197234266546155264105769538303387846733557968564689422425389765388478524357793474817303264531988122503859717351915055897389820805756017193657780104316482971406161159720380298540059196526644322365567996487501443574394472383242121502499000703775612956564218436638281034149657183560699302710608328828170652397186924356646925229584052662770994586409465748652560450027231787211027950391455667101951718565791722668618060342132110002269823633029221414610880000038321520448671418440422781439987050157286506968327527275032229860135278588795598249732006793130932352972515593503218741777064932119909539097631504272846502201233768802368707274087794930228147448892930176531671300468390380900190307166215518721104298025476615552061708190596490387187597536376489662174186430480239147625317674813498802977590403323594297906947362385864677236939415692724023863942029655556060788648773395017736322031111275496696948949300047399307236056414245082921586150702061385847522890498226286798860257906594763433445712951444889413439783112162877838377799405336474326793638802027326657697486439046284102182940746461810154132968678364328794152556183057092838217443110681283334479993538923786608400853948832522487836338867304525474298101416812390621451751121227062402505827613590070072184908727121976696567669688064527839140856340595922646305892360053442602575006535833661800412040335035180593952053178713286815265707000880468213714954584664022008399537408326783449128651506305843382581495469387610510091912004779561076176448649560743083544216552633806733466021520650257321780988074455511595338027505594083587933968365359403782756038275515814245197412180745407649630019166645250965291918218816332163403779027993638879676563957639531559728031520062036378613740048239295824981630253439988759571956788875143964678800669732776260157334689969307893559677558641507060080550475735715852044900402526572261934905722593122264007881374495166745731581677937116632283980604048525367496446968678893529328457940456705425766231851457053855249047485641584828200838179069808573872996734095825900348638384700866082079972608893313613827760251651478102841223596240931860609464283926284995686440162804697709725400246102995902052770685751441641497504174217094709344953649680085184782423822379501880011173970187381978620793565981364791351019464314223536390598758879185132180720569562248811301668005777447548336272962017001885300336355451107888260899731642142869069240738490628597722790504524051832013638967426754177336541180688810869585342464448891159770432670509362555689520554999866135010236695209838757610203513707823635626050426380741301002294819968147769221007416407656660527290730039795514742161742203642488477140452880066433261379239141481717532883993798418151234665582550452446034106814219910388713795277511244852287121368429425914566524985132633021332543503675853466554533936294346081948007207040013909297299997850917177616265286807670307752287432775444720408408155298423281392316160885213805093379457142222011434150864717800602261121325571737934441093943425160731702928542825549110089743253057195025210210853445761314275085936378650908822699707781390574558526265352024788423691314866315934096938513441650758574430225671760819039208540505519801846829112270723616695296049846984597851108845831058934908243993254220473208056308202489901504300078368819944588932197989821646015294644193300706032159326706139373708213218025771478796446604961043856316109958759754672991807976108702320676514530515391532256917445627749874539490422633997167039674080848050756967019178136761131092700965189028174021404332309986146957678639237450403750002428622143824433042690249669088874752757971963224760661487303134300101886192727232331409266371601135398357796812958261908295706969362644573346164864950020999950842178760864449917661309303488177753766489603293599266417510968258584666088882313086423369733020908689315121765505966255252812775004506133060016567212211171476047026735219226611231629629728821474253871565598958605835181288314208851036345571838944974653741200755131355390838731117220450869549642716228798789366964926513294753037583615950222635904043456287096199713889459322829856146007308436330877375171913863911875204396177624102805666105609460320009492183119043521260962726520105203069957592187903180397992182540974587945202199221775508687007636292263454136754902882952812993859488861563820523357409655331954212529446418289931165953328863579258688107322761471338236800563933608281045971907730735290281092379583235189627267079249076677493996882442794696129258831318273447699276961630940884658119124277314166788262052984706397417981813002180036996100230842833968640109837822326148989841717823474897536877498128274249670992816929139909214971459386787744719322843228783337551480416778720629021815799221119440895869598450490298766496666054962159930919187216401307525959442878181664880927119758791142607354950958537738393547234009864997624255603082372307653582295429278264952539585731643376642961501940144253205073199874835646744749786189894778517528844195012477063414801479452130290245045989729503071155515564863068876048112837190179460870941323660935256167916853037667865419941545430678099588237850569158072961054643178727949084971028575772292792180911998103022079574947852663232596371752542334805488703122126192783283046657310558505959049751217553837068303954688223711601289221458194805749148182382268521989057697551546773171813893698243893865212247612335480676588915538014645112993790511152318788564350553246103568117514950715156944440294745519527927510855846104610573790910528250925546027704235492576500350808520178371331752898340346607715071512071632917640376441168915039587700767133136913129794222714805278965718202380150499360675600153468454141564078114388674354166743368634936448097412408616124053863695436743219129284090305439061905118271196187980641287482153737201254290429842568999418441144119326992257989109763327865819582819557219898947996288696901230825588887296497327255476110466382013026890144475431264247896648025081363147793210099269784149012950846714682333603126039050430573274306071362167135251275416066388850838414965954458233145450591926149715047639546534300310565878157363584356585611294586565565076113501058377744112035669385898489762073221400123578964878859399946500644393658463638378105463719330700910591821694918005781514810134700644434109531561327582783839259431840152938715207300064543942204285937256527148569683883948926913908864529905159187576092719049780173992619472751991870701639345406750404391060971133453590477686716154031357253409185858571651123778269526538292462369808517271047937657254803358722065166224234792393232006325277786527188845707064218409976190362793062759039297645624145954968692967411446461775596711331638161903568145041106458360064823742040547029077552046198774250861682117685249607230451900880389880760460962661601854596784642149673678515432514816791265292661551409582702912486125915448205271670563196700047921523466292601473341148599775837279478367914267971882909427250225985663731848075651748891509273011999527964656347089713741291025019800012694085592091311805375265103055102009012822425044338900187747322652363435881692832888941490167375863443447015023443435927034170450085403426444304559043091806821352571584315401329853608704179451288323818883130507974640696004648951261226661650848367730750055233750239671597507930741730861517603803575801949673015290895867053661467298481631974529935722484299957520089583442462785754975024712678679784320623016645517939848685342784116597783102950845238607711108675554730017387218966957411380531557077475274208756191335932270610416199247807150142472679000719121480888129524656839830330128481837372057311206641241593728322008297150282006852116235752553234120746715288007757233099108484514459548164001008254289178749977930377506591928753290511911240893764066339102952070632054364874388730011103115728491692676186234763619763361145034015697301501737874204692149735812968647007613731337486634710551523395518803142221234044643281613575594829556892410197920448009392636839782895052437389051438374134056960568411741817891903066800359934011411177157937876566636314286192250725358673207346363162311839322294195331165138791957536125699892194507088274834503465472519273759098769264694018605281172152736626322329901332544038334480996410181120994773284813401975030349780200640261928695612716280097528522327941302490332248937321379237275137441653374831491269405698514560762663774963567737348315820546829268076476486821393386631977473011245456157038809522534923043969375689288528246081444959193287764887771961876493831183350442149955985608805523301613039471059595750767258159312417388321536510994433768934226492045158445716280467572505400185105996062354099861920169457750055854685970259033625631243805651308387245517620835825749618727157056958199041186878880439090113129060052786529264383145736551118962100309957101858940898037428532393937299769998621611687092037972941264657783029127894459390456986471968869308958658660676691608380332824210141059742192247787027229979394221000604970295595722876365012134701383709159632859378736653741095980045278131148435414995743228265530373213442913018498361911579484845490111867066091607321952397217145841386055461617553486041080860175117666825066890339564516481166734364823529390040162673397944322529342902080379290029422686681054844617405059526374614139490759003339436014032976256824926639821172486414810351124397833276657153897982602790745749341357630362288514917266044968001116824929438551669693547888935776806044210292325428812612926087723228846437052302588314186537607831126597006545764875058887090114642153197492899380778505865313658660263634699422238802295535865714025241202543475601402407879061759838578373159701830348898687760756686851403775945586213791897880642128748059389146074853116356506536637438894743053768088278495161658822820069064780782251958362897070142307257707154132727467245423542794926093826599358125071073349208515861458701317819840869113178626416517948413060605497199203698463055641518379791104911759509926128791061294687356424292744933927962828605432143586738699996887497108536784582443443746604571531909601395442918938185656865795944663997455326499147131102621681468791032331461183420799587261787039947760152082121640336349183323559203027117225772646161940872199941224878046151343552002248471719983035012014300909287409235297820425885913709527059077273253348802364691443880179178571875268308325995404883397971518961651689652986065583961762030896705254768389073048532940221505579161275967861769508558688700292571234017070305707797176291881608514304021692393047525506940754653021891648292316171907445992080952249738319160636104950492252173485806403103518057495036998885435174966865682776037824608505717118998987934047481575621701327593930440892739420458824230823227924560948335554461258497297356468747444349286735018515231657139121169576135856565071415261479932985895512775448803293725067083100882376726511138979821566199658934081619871868723542604452770848476430133890990972124878442231059518375271101064907687244454533650035074849482378013571178720393994185430098455629974716465657206039049526581142670605118731432775327180883544664128479769084803717780930816669108633780941254994919380493610691864850434246797247637416861169462074678467936150747643214787384781114521151735999888229685972582200039384328066488309094945409940075517100590335742372938821452940953396638489000152104029985850793597877660137107339166911564107340322238653588914269832592372293328756637787303599638054490078017732941929288858968575221315020530257509829760632773871123059622055145919722758511021053901284234202306537939652036736844779802881714319725826523258907003321977412209622300256425210805496636532955039935815616939937898838518786859693351471608891885853711871168460777294124899627492174994543275080339369897322988271808370783895975579491914003021673253388550172779967517572987478283546603627811296463425819699976002450866947448182253315129558092889868406312970721224365787606119249188617882774895015229688740344237009524979708650865214391537310219400052596096864325739398853535994951927154800897731661770791245523821946217192405191252602342699130841035609301108490728418731526616474930696113773411007559699645316534804017913617927540514618796867827271733968419870339599374857244911343251882206275714961547621820460085411827095945408093087007583197396868190766249118222134809273410752976128544279689880644852021656255364823414775112512535961669068274246331128773831466654759952075210543721483855899606585991072569585934217826121619005485793369145103670248336028471433454801670824638441016116404702113865374278738032541610482669568001554952839804655548060269039313548056534577788166740631689007103375956795802761200858608448307147737023027756942677777050163377417414975877700051319460555009826757200488471582386117306412924138400213265762740551242889377162807565730175070505320872963919394543913915421591145057139366169957434603108143739058490330330489829243689889321867946270173446014218223448400649758546269521313830351857569671324522167679462859952998369215371989651155201093482292446524342865402558330950507832216037795570095257608863410070381662386930240454566025359731371505455481367147237550088824185040174836209598793516573474490399694894347005463451025075420017404463394933329154430002941050636946992852700962344963276589541296146372360280841049913692841188854692516928431831928900218003643526231639078565153800079276633951110044932073991659454808839997877214171778619882243176184492340836385403840749261585986048132781357716500026401458292670017614364475448120677331371894723845599848322888017061814635189209129681534769735521798357109826751168212453897311344060077381192717957926478586377421526864575333039958077666470344452840949694946814960744764080970058735801496641111945232841548500080658751395313753918962153265109971298006380615192101638290935858771486463771269690118500288666045097810023126653791899420711962502402083943118729485408826977826465765168120760376416342659386047595777642681661819021726147504443293462122249391045782106073116901465717460441740241056408017141270638400418869264871651231631059979980930519460975414750466358126372306957525462121047659134983102213253815886076852154096102253709011404704453359974763203379689068766313452754018427496189151928294254039909980643033815288624924339503895413120320666398979609643354316696319957346067968084820048002842634471326861341781826265833581000773161224767476235935645341781568917699769652347223624480950555315788670952386520788119220050485038894123138733308295807546849347708105056405177602056178391826409485425034703418568209665049122325268068708632253849346842476643761069491210159788015337422945255430474964823982777647120360986692802500520536927118041013013254177828905390898695872968559052619667232392563589623030672178516262465246166665125976987180367031981066490275934788743982227482253483865158675916355442244469397335586578968261992237787378888666230308871159482693373497788924895831091110245747715920504037274647653186349669318794555618528195763943931713126415542618322939777656062295087318955345575139512977645384481231509767085185607998332232937493353903987785228334566480505816895271731145606245463027872494273519044717002615657988253875091459930025278228567425913104423755890482863263030636316003956211239453462708413416077681372272762019930009296734007050056935055774928691828897452013351540067075020415924925828452322752856656174581975089796400381195353814333537543181733051433568983599206998218534475937779584424690952613712454723843768560350381221742396347586719159934206469820372080097816797178633757239068192743041886987157988288042639290186582817780242546516069930826804580158960310850053576906352240717875886726906513792282499490145235084717541966231759130140567819065700530651443134982155501506145366675241414385047387330720544635650056880045549953256598909259509384001467483608304981264194320004726767130240590957263859039604914039461206215698817653639816700162000770911965315057126134618190771637886119318148521836210540634264724755583813461706698387199877012058921480397924409504838581255651102313858000235071227602535253692992853094132340924532898011627887816975499917296461932810579603156416516728422605272183919244279506928551767582031258713107477202919436266126697963177608322622600631651425071061743286615621560700170761878802470130019934163434367148157350454007375055977768798200477720941033650589487343182365402984836417453060129564656576740624599737259472738099615582904157979611425114520941165227397826607374718043685177308643187631902585607983192467136402313544064708464802703787993306176252550585909566669620790412647460624438836921685630097538904909040584907932974212968893237026321849514423250836870889053639939667686010132428649691546539272923897290399490182388856108705990040397422183425518686615347328273454945655269541601214462520189323974239251356570044999887622527024012735284222796861637905624957099837947298274586226152470511018087397641027509317815377349531094602842167585895844919737883796594297581370020026694644171898204307986698230962519028577730219931217505677164217933361973276154819516128588008487300024773072238406974846703577709266171295556251143024624636618481894024795751460684390938371091346021735150699649821695463699288402631034282691215649745897718701361665540552921167706139501499809013329301170833331029347711846471420797621039694625964849936098457913532828305799123840283036005666233709314303114203602411417411589836545045985297123019772231702029897114471683060314451996152922469315231346598523126321599181611606929012316628172874708890118639956141224808394254301154325588521057057609773552181335642150768812413183135975776587822364562270276599872834540792624514624396622228549664336751607390732676966676912231761961955302995721836183393758995066642090399599735309327819597395817169523038813418419445423200335627041574785094399260231721710873305920642452394816651755254009785309581051524319276661013093905219988768005522311479095573163739542084197409682682270983024560201640021048325323228404504757859581252370092486420348254505665044624319748807808800285842978856098973623400174582895905038979698473316306601438205772701507341881950585241228867683556825862235178462618644340462486364820320609673699821051458029057437926234378981218086959323316686528613745994334098371858221904740978955480667950562692885759429034766972316553876587222308528402909678208000143680258124085673526509492492034636606466664321066976811758428821237649671408548323316487139118364443472679416097745034486611253865233826093246624365172472302737817626790150149688032299704134225599879769559171960168748218249732614811344537233020474487190028299747431230469540400862741218884947603613665989774417737491675397537167727123762330536009391825921465575925380912482663312992057895413664662195663162248992991119162192836040613133973861041920939929772362105715270925933104998970684932167759810116791949374555891208582589299461869939977096256443956495703907436319041017106136297366682413578635615621273840742407451548678501645813781985532499026487878007198940338897642436035639844210930315581371485705502521477045784345525480390169205244459757680935693473877299647265138687242533307656385533668623018438539103658162025658857862489192581074036575789826208993391417280094819322597597876323006912583753116258283402018100136494899201378458169999470447295957125540132243272630567352419426083867200151252139880787750399134226239538250586970909459013713368562123335281058533334878514273025668768024993437594702413622802299939541758332402579540771236326476521188514320907600254551989234353648755569069150871223546122998419684814122454459808298515745147077735764931429448947532618031700413226831868596120313522911819816019379749557792233134572206068911266727019492780404930628914941755207702683234069849273221802774255620550171861374506887087014454270075703806008230253038925690684036085626628895943723869553294579797510946106694680481373634166685109193783461076566983058018831549915500913002488146497098668138394538862859066966869439994536085454791786207234148902683422997994275358589715201464797961506365500614860232461626570920114394559678682951717863503696213401676690027645313827062999946383641053713559146774766014870030432860409989855707289078540095711651328765126623694721351095898148161616249271475465019700109452254785886931766484569996106919720137366266860877240605531267073842155578416907608760426646141803883716174025157198396961677781566327612401047893191725816476295530723277834972007515088110914767498285806595760113074016314981546270657016086730517661293668605752440563729313722119718046012014210241293122305884183251084536550914059361255157571994589047829976369511794573267981592532404489303894868178849647064579901330199720725588122267634531502318132624414215250394494604188723469134619214312734989160334895814947958803162705195588095294163482443470871604905232319722232255332968600738599950751429129895809220959319936115145172334738459555156543611230978547851792334665243504159421691420373457887008996826202628283818289614166636485660664191525520956393040863295290747567835241569476031667547227753022733613610584740214308856693512079070563349842816491584101510634759212244788700014115833081287747739647196195365556383902660889324311910340525538025057845439398626106059849423511854748635837956437745283164106775143794271296530254590911107303704651242877542563733053585370180794614725083530110143280334246283527967944465203719787224395908696660381444233212580573843621763821866512333322493138386298873107382155774847672407842295719950307989539291039741309220523628787016337624200789438515113934204934164693613128288842061665974844287457119912813584779704773899979567330623429457787356156129646419723484858481868150292857341572333521648627921092637083157035610652763027673349239163409280128478680017976415300652120722493317416653374954447321810744226719561013503292530427794095032752660637063642363244276259575897348441995482794227244178074206236943183833902838737327102976370358324187856193103325624708822595332646979780123728469604723290589569097755357692507955119845064969654759790623470495338326716637931052624091320897136172831707445687329045640825350549579171586696218551255138837311608711172385607563778441049596388604024680636837518387713905647604037025576840644912802520791021148698366107810853466466317320074967690641394344095274812870983948886054363874115094038068301634057231488104967150281273688432025386948840246582825004527590701470982770924081550207436607328596660794696318145936499562383814233787987172165294907843363831800777108836455121902842833769115347613151763348159628695627189105018940245007239359855312298840902109393734575796473693133436699052768486439125939729429975909545917451261371919635014097903813676088954130215262481836326473848173138625565824768067957737697229183178415438629222881225824176897545009694622851016375158088849327006936492547534245952581814162022330232373737149042511966553386365687391426054481539375185603704186385727393944248951780275430893830607674457626441591347179876056414341492127439635424373503018095140746925959371703424212525939111803503091351314827751952952301398724780483182693205368566839430838386762279516859547147533721222366596169600391628511980119072003061894231263985888258163527345404364138218155092591213175781131943339907468533224421562148716270792468079892165691151697726084475160129122527636341166902270768343680273064737279463189885012335217155699409086522419806031226588277093892684918417458492045330265390961559763409972382917761263877918397512239295150031976061767575678521488274366448000895601735217499125921950821909739727522758424057648552928049499094877389942788598768185823618100063393029385533028591333660209554984400488390637734638697874674457356641345391591138959817422102843717884701846462560750843274771547384841088039784234157429252438740976026845879397661826173467930917376771542479857695999389295525242216924961755211529188219001345264904011246300033494443945405984152048987215188110123517640800133206202931852141843914157221619716826814671565714596104460464632638885106484689159695693419195256513964206876932412460573104757957076877384546151858400634744524996725407597052296608250569532055412848122409062269123219779166133531404962185282520174801513275350402765530328491391609752430513441298868688609585352897480578747970118126077580165411177740008803726549988093508378009575637417860158743184296119660289005582405918413183775824060716099560264640663941268536479941579665929492536590995985041624319734989607727518170350947855698833263454060632334785750660619994169737737216922514361635111801191590150528767418161725951905967253377192355833928775601386685016247477467290103640197187220446265703338369798092351149901624031672737335852604687510989462516616179905376559653345531588186525106603584067816327555813797952101723018868444892649551923792852265699804585125505218240306516072798941229473217973214752953422019514627101082901657532354985471651835215200148714579842199825704626509532361868713996001170996107640289590188158543786959155160447280819934088646285678583117569412818223435100492562761429160508333825897787384826823795666349291846057242942622047823504969320212145917139921152949926175367228682014623267303471958309411856134187112210673292510093146935643358890256586038870448662592748011644796022814729637348153809208128688943232102340821405336472169512889032353316466508175120871809733128360966195553728695367394439610361354185153415427916132064881406385383789429279732502004565067743433103748164620243727726733467146103789555452539858493976599581763439779037509301875069351810553290747801548642743829789108451613182741002859248686715813235130268444486566232935798773722963625611371595722647323120093522467417809045846427206989903326851198648453619895513818021711952310319058770686625431724165775387429310113574937779476534244078184272974631329791183263994795594591294163246502737166625496594404589858002999902387257656478839191863933790168171836713405688706371681656530235991965952265678158570031916981302252218658085371472023925073489993348689861686292667450284264796294818540649848310332313288578828716160166831403605311071641100068918562396586584928684171126795928644190363714215942513337504084198377573339837053442786828067252645718915219025834843603396313981920510344610735156741969088076828584232518331585384098773496313795204386378354426764945396270969903898403069592860890860897569194612662644135263412006433348940832522528137212429296047914192759205380023378048919282158692297137842434866290799013904397230621201512908094526766194109357796940352329932471033637752801810030170602973188978852170033165097744754948264055220322246471853919098318381532253416115120811143301958872295910515072068064355890472765145741179662147181915274681755641007822312903521470380296416438636960136232643555442515801781623644808214450022813976079491909963607577380486881744924664288157801113551746590082598424525167593537158913132821068761983439835417725889767244993129030375431511976473587788214679293479066072165732840026168935466230769032751044018650328416601920637989225456154959119036664702174753526246208900063112958963762936234798852395144427252907679061616522420482078945691297189585434406101834796257822482660333769614481240139464764192598709415829652693479637371805105453751819881276574750400943806901179940636719162396333180488477482236389308166279971798120182133311986690986257409123768373420350190133376269899222063054706263951791623440983618243877915215855392687291424224585442522948551168629636027497947385273239305090992458554599943531168678601266256891439696107883390970694363744662061711618203527372072463781608486858539426553692975358089575307846726594435155223247820144370524552198570598265469413276988903569945254549360722170295940450865089131192055886174737208418136857069821764045820955618683445525175015836289088975707256598250951109549653278069125347158230582144724333887131127839434906004459337631935805828158543677187662658125599592537307608435137380299469565019117403513339496593816347614403710401713478447366970647386973223373968552321564574475563217668742115585888040504102911295204260957570451804254496376350111997380025709622521238287552719025899274832397009666075538211535729396963651472201820567756771809721703826458010282371199882761885409207404159816613523635874992462590354058870155063581143165415908133543182337177710022417893199634071450626411330720295044976802146936083713522514774628104138838764970429150983222142195680177066464124057532856777121005601104723841744387815156348166096320082468565983375818487136209071909517557618078482971215492810511350615591493366140558249728968316114338224520194803636279814427023378793521308760977971318624869966893576345747178666242752257004625417220263493996442633451152422892882073726721555071740789341415493972485026970490848963930140488823465884908024161798267199159644968251316906791961151287555210845943922601743763325382883578624260898482754783369514201663520551578367279905192503243122513813183058785546646647550547314165718706882431357794013380124553486698006594213681164332376378923247225163433580325301320184122614618949383430171847416372093735075703424241450887090617779098863506772504796480420940077711418410513511220186043831849166331155214054105209816588569575451009508204779369528553647990015923191955717908427091848257276644689542803699394879460746111153958949971147524646913085083525095620263793969734251538286292241534232001844755463352597076470644749093696545705784837996253473973075990848459687362511829256935840536243173809798088081289095507542801244393784077870641568148551807752050978067437123754469257881665334430555049403102986964925356137233072934919778828619188252533965816876110658692268000280005394170456767582739722606157524092731964010637806108846883228009548328492647406355044888445323376319794494365087012365847979425087303411284157100803449453865282885924811819313195295700365228624598800486640777675947171401521746613504517082353190074569700629091492553028823306934244297896897393879047845901530417179523837341993439310802986598910080552342898752501214707985759591338629950887749297808701478610444569733433464806797056977501147461174887259837137377220570056909151655275813987945396129965015178749727801736675181939114872918285999170911336603394585904930043834999593346625574421869115524619397697590991855000198219333016445595164794193702262574794910707726706871605746278738887983742792814072741266661010614483123699446050681963779228126383119434521380913124522970529077481834129903674111857022296915602517826302315013315228268954117268808875779792798480223209145154583951121319301819236255442285742783855615255033900319766374490695829593294377979245801998726070096282915679669186170420857427377319786728540688780371466461794070099636916293586124240986044579521869722086596334919330169505493459036116905699070574731017970857560720915121754860237376101800317719450122137045339320180309729084993281512400756101347835199543338937640532787558861245838757283980644835420439146987676649123817013586617932041441125973475880591320575370023253683394717093094951046110493786419026615519174429186020936144297588056556978364466349438709764467145140483761274146417640546779951637008347825620456731408390502961409254431470676240817057198825550872683839278630581767859679418055379713868505270205366782225834296970718967488778418084769029410904677594287042228375761372096705495888599050169425987650729373667611587461357897435089674832573840944024341946074116828100479467883548905478450625138549059090097512204075775663727435976307054952860350792522885300555836797212510424824936064505502199931196169956150659031624788970268634881205536261153562662420499989043735340878193322393589538474451458325026155784302650625502640743700187728521013451231597061811909470510122448858702986427461662248223634544679946629251791901380332098985080533338484057552081422488472412169822557847283204412530015485793229800048005884795132697709551595456484377884020586894509264314097172891841274081851918657016887246242174615401504661687565933636599074313579276076602647172059175290207045842430691134014586923592903768241946100487805937512206936843217867113214048882460482317493217616594846549263298632659446463805701061459877024108283964311760307603456455502760382169353918859433003756158365327236933216475373512168576469120573964294462196212378869278711945173119738393287276076186481897754219429413198183203617221685877889318583462600479709337579137187834413868681457715467525632346369816838387669470869746987575628475207688688807456871056359233034790297502316043702964083145470750580823456613453033935303104462709463575740223308711784759792052140404367911965713995885774063818579414734669309842041656828175811282599493908224254627169130468029239520103153452593213150085182024367850476642251849030539420276696501287106941257162916595445933098132491384901113497563138680209034073140557600091579919686395287964192951738281091517464959437036147752768169397649694693107329939391837551085699940114947295834135495426296631976043668178758322117727480626412812599841417622169308812327446716503758277383185001149668483566523504128599810364477529645977583722884099040633383892335922473057725638464796138032163215286874260173973290321524318302059477587560587434489730417105041090315825210965824737341345133535267531856631078756359278817556304056973464024968009869686776634865562241082710015434361926970504677913356717247232669489874072301858260024542068300560743563932972915367690138695745226728063190294113612963202473998152151380736306420553609068525597204094292073139425606386917042014931321120043222423089535117408211948825753027898434862325502933745848230345030746953288270221804006354136432330259895948935777344160729773474414239735461206525059254475294985696106056251495450682288437117569568052316965000257574095777532614197246929449129686261571894293454541315762304017500930867233400980707017114951562776332775771285869212812923570871286948750925580090172926964037489898577308197462854300926678701090728157287538538563072942424313526456437171605931736348325966262488316433649116463514640050978268292804125252983309528656819577599146201145688524764249176425407724257835566837167616461014625875401205679603141175695815841693445934237827611139855368238293279958420841929097367253526473643990251016102889015238190358605748795235833532989525975379424677053431796531718744805616006186282242766326035381852080199183800347800664184350853915649645677780466542902799350490291887731107643876594274142458377020506377967710042806881031622884235110359264520692224571523870506980807074337852603997909838790217676104641264213801740010881046107562984377130466112024537947605799029954998258887493777485593464676229949975218392831577864650771432186760372993075587475279065549237925735455072748563671914986843530973120695389306650811150114183077168470906047924322397950575423001876005976531263333573122902196444975395664657408640274875540234155138241741377693379147514990502295795157542566609417826976916272446276385360241066373179641586185469694180022145429515877123834581140560728454412822153711919245207965216299795467522604979035639476064531156067611528981159166861468625918587067045365776655839390463809931398969363708512490784428084677906573193998596824559894600184154468294039376429700123872676561184428888564848625786766399315272569000779230315650046376127863260226565762035793883507974293759858889369484679049640985840809842880631817892540853268593849427701370152444409338372157510099230332215255602112518709869757228141670932778374003734281177663581784573763336206287508036364090808660320922098929655325269068323406855540961527563928372463695691266075852026454375347206343451445406273018069763771635937842135176494761739737156145373938522863513317950442585164057159754908537504353698307746144381613335963231208396023455346504666118959863004492093142172011195643336373502525340265861723098609351095040224332709188907179861733622095864264442046862406818995974623798436423323806207582837555176643148449071870048490142577007282562397916728907841168106523798435369648539844555180788321440843416658946445245361038223746902823365038825980853874343786665258600632065278072155766181568133162372958851657612671270783188537258859083604567144862865966943360590226441032692288529209211845682256194132276768828052109175554974289793370452090045639817469551706278729538188827947467767055812645062417407748496347059421799534101695500364738569269042877217378319399789725206864698116559669334021907510741077903076499196334720696761982630884861985124586364945183207536655206624904044947609024125530348641864068688390870886562484203664476661344530525468306622589694463728350813689033605627894945708563405725999532313974199251804668475730125412529692109412701978138874597634425711703417346097138443108994577705439246361954620397577146853617221199430664983643517819110142495555967280041081543220778084372599254521169859578730168689189298371241186460914224222483556447752096878541789346712175717784841401640977137277689527916832267433326466716452546694671707789134792799245761713760894381896077816519130040924223003956547978889991749648971157162418821858545096815447952626154213004382302106675686585024418693762067205563907285587525017067963382891311060320694715873761136610476316069397473222242902916320087400615698355301747107463046302219739426422860837909478036458878099712457619701296885696176636444562030557020836522053528188888557279195839744559670523647781568169961491878744498727579275750737864997448398421898504485770186943119617782498804910840419776113816393586271591605280078035723204548688553385840402577899064071462651350787268319563252612743837953484605293605731346701055479011571857780276625173734855108038160554351680068441609499409955290325038356597218306549739682193393516333270882227650453406930586805007166949870925048743514135133439613800367962868896601329341811182194081640624710988001310521855061310889058295539266627204276684740355743506352851580809488280701689507029287012484204323101362101042298823021979300967349799862134470369794967009826695708200517466885015984653009800613778484423340240882078387558375875458819310817343053473789718359008828016425813964272944403128534683384023437109075239434466702811794272319329176043580672594466937282415945362264748665643041904360701375566388883212464117905444479654142594011744544703832237605687277840652592571125914947790793310454620576937601385488605257977062527275608719808494119787468740624904317027527139478851254720157386460040231133369605638415223767409595627637008432936867188845791167474269870979381505862598551890934430886955334162770114422906771217602201198711165130912044674199356400309610479027241305470420265782099922829089017880359369773373504853324442647677037481393379800600006784069017191684258953135397040312465214833668702949913928315666050411270596325241757727454972088441872200739039721793974715109810866163337393922770944617460976535593438426694594410187050542195512046195833966657237625175419413491598982055332004130826316866230119881342962412195557573806870661637583025669541789495724185997087554917651959632266290903748642098632239916262424785452375266196998691218066509131967760119125487157317025324828962827401035781924540107304694438802232688642925557491230382996636543928234975409017340739351238136964001926954447897716909421271928006148707294399986182556410120465216084178866289053183956724255026849465623961312013023329212485220192213708498736847876860788740745891899477129656768852807680366412317013940518594293009749054260194727782000105130328059102625937656925579119233768136817673007104148097976520409682434613454021292604748498343936794963790222616712389933989708253234700539764536462688004221468583553051213797902730981431328649226758783943517281168371688688467691777473708576103008722661379345050933702381715616878735142206408443533424069854765274329553438557004910248920897569335905729733188866540997905583726242963282431829515654273092920742313848366224786936478676808447997567963291532791824233976346593862245970980583824573998875888310570030586975164031088864951065291893710382077054448432788154899895053093000867823482243166202359790753184012406958592961400116617882864824239903491872905097326162632887601891123513271267459192647024215915813679701939021724574490992932173737781907436701392896104595015533998877486272828741671637809696451615829240506093131885790500830668664863153289164440400533779768622827970430310194132684705786495573883797952983532031260489062580334582777450554723623755177067847344370089919538770609437201026324021355204665572527328102261010190776611931665173280338437775291194510888597282729223596723866316902754873017169635217337671997258054777556680735241656614076900683561347340114342212513660526702961960059494056905678349451740684732651174292992767516430751229354596044698034182697498716894904280526702495673564024679277592817960994036868846937317660949623418931037397382610994379087009353861167254117000400437735616973931899331768947134261914185879010016014128547944753705172602300702736375202972381376472099559971095722695260133757245344942762338607755656442298899127458181896285000748344238514385476221449443665860831932421219958499691196655852605883425222321534336687211332619930650725137264840589030917960265384388253483922752509654507817625689665676089687756609312158117162674970310868040135461229413325519836302797503429952925267889849718161959960455200257640096353432934708081520158377948119233652778065174890450281232460591287562762418026079477382929077350012170709221662441056794620590081244219635901385246592898448037491494366377750255094131107352752709032921763412138483572721067225731316787382551182697256261243439725384096521510723999152308904731794161921501553560899009162621296939528249466027095104824120062136242702800959236303797388047050875861102996172220154286057850211535096975552043897766995601217341546798696704041855565161305273542256133778355168043095775845485770550588082730232255452652172674689605393646270946224242386442840963837300904970115048092058942986946101945781963228689996041772235078052711074832888647846913299731978149860471908050670984702933962975279911942509018861821815464133392956026130560315930470944082417829901572709489440688084654876545071935173852153254544397733946090821981435408701340008582217161968466233467418289655162641550939292127953400584881125279557696288840525311516846911741031248167287843028053550475815760057488410551694211516867107667622671670686908747782191007807930522532396030341028978345447668299615649569093225617312796979522000647343729739486570640860750373441573503036408571780273104602230286998242803977845034954439144452675316499717309526959921074090282079041767742805154824393410032799825533817530518342122933627396875389064019709396860554868620685442767466616595954930541724362876703296906460253195644631063893967236661109742109001826066333453726285039898944584887929141751134292111312741439855635656219086771802635086163964601857716489533295854149527754809056912276580614479884030457997520098294052528840269001202363919240193301699231346344592449857993633099445785664851422295926579599178083627858044240394966174293805215476693748060393460443711755974838212737560028924174082212909912041871723723820868699518562439230639764013869643045735533617595102935219881222053154598071682814525439831596434818134144930781962493211654526147606255524176714470352547008570974686243753688428709584055365130686962131432465280889126900758021897483418606804448976541013484612958998456901841531348863569136142916160294695007946640935800112499967843505577139928632325559957292710918335100545516409403837905103503822021423921828056420478689236382272192362570857878200107806339709319591326460490299676641075764384545186099177915897441524589090124653303840801861875249524390813085297137937003425328447847556466495202247222907236504614050029623120634492925560232408006282001724558180503159938858764380939279834680729177913422902282485921831709737848278477153556810352061235515184350364484018593031673559427999141662520469094353419211553865909817773385051194399686048586927494192123470797820089622475452857135610841275621965228984572653688489276064785231678800247557727817452468113671236576459047552336331311863331411662741820124203069126204541162989695117865379232098170657554213028700918595891919861837132746474573851633161414166060505632818823436865509683951420585974612522868356358974304579659826791627768729559150975068049027825105443528222509418284046655433347178814425970839108310940918581343977244689305321658269603978011761118288818773895438948628529809616386627926274604886459371668217173019975695113011035370718214728248235487952425146396902054171357233023361298392067130962648139136778110242301335104410275017389530789520415316021319301921458773788074779685296160188679500930097799658580581998140259242952521508442943709249233298225732731998331664998758658335665482365818031874785127462207622247962197910598282275002659839905869866631707405670178298181173071056260438694340543311468457328599364165240548887493962693918199077182773805977828131607399527115938910731470706210536153685305583054920599943103103676281445150043853748061787458792017170996737523035916771561176643842600049585102281514996171914757200937535918591350969889032829541267645735187633266188433186685270282039110457452840317670286030399550691006836424381076537855133917778573578406509394771645819154959753508538200270470009047007293209301759028022706062060380129519055112835862771486883354322249830765454944268238101426866298469555121278259689039324451817459073476079228182536726517318581107143625594190223189454807296401089707602818013364775015853192363937111772669244794675493893956718952611339371200402165980588746062845623226893300339203608379202065487268852980162987340771968073906145525412260052515180946880544362680540221675308397605935641467074908259489644482825186635524918883528085729954205060389487397313940959452411497841987866839918786903317368058875628315254852416751711294946304589283535580370403983480009924994720547242950595678491571389345572052418921349853235117619288832555297727018882312337876168316663038627533923274279124354418816280647568077552217559214292568510687767086570410465256032815284781138723791934494190973598056471878493287285934660606450261028347288056341813752425339375550806155469320022569629513199516809644396362165016263331687320637342167402091817262531667211283589422218948269672466372784790868270079750184043046897203819928363273412499535314483229246036246265547144368545337368897151693773145179422997421663468838776636002780114403485654754543014347738936511243357670019330744065241800834196448795452301982261617632813587693190693411501176347749729825241654866049974304873056817502947143111374428755438010267793156688987828599384038002302584802230298540171438882432129522416548471854307446265012298367171183569014253159850315011345629091147404943720002533851191331226811747193709681576575972838808673454941952848527933559332692402188592991730157390367188275301078217629175334275602084759670636406152953791021738690800536347788759630191893673460598476398135752441169088221963147726345537961747810756236522385415214353172706228579909727556734546041263762898440402964652270567365692078362418420308602575581702463886766255762367399656057368101831394279777261501016311929214970015319345489774811109332475870204413469983145161344537095234993110326960655451135360772758230807433671300208134565830066830154520828830916327036149867495114502859735597126346803423807314054394362240005801398663781262548767930822662300740044554771318737624618650286721052918274552709472545902143320940490322698513998823123444953930132280117160289356270646319126385092963722631606108571237839893180781183837623043680849845303700139039865062212367712753259273035381056660971381201230647513340974789993770124241043052439258184473181206084921637936256191533389971715045955815183094977732747816038168803668927897868627189536951243674057687176204891537992981215526810636185276157197477816852789571578390051076998931792188980515064749749801829785193000405919049579030219611039774725753162037799141169481436093380978070041583620863449087203375725364062799608006566796527895780738078942937433251061901232613823839117051977216540672131662051734532514900436211993499094783610253534302235549014339064129630526703757769698476774614243075876063717281925912750656716057359997229107958858565450497604459023174325234301590379576582345435872680129918100539078170709441306569313573346908343429451895077391196743833136572227919052571253072939722656278114861290036932146642050464214717621600762642348978347980729430652649521245764341099215270979255714244792715882017185050001449906828018677602854324010125034340626861669563642472787177544673248660889400530655006818193705546147932627841764857370449543385832578788500854374178943151297563281242563477230051270822169560800611350001171954548506094405238848768675285391268888907905021099766040381902350491113219704876963822588009517836050344890010907756521932732801225388977162931497473836847392340569889340775815671772577893499373085078459922962950014604359083843257405525719624266328084524905830182689145624939509236772556840244045273457424519393114949535201437590323202786275452604069555795746303107184294260181660880487770559560380834486777328606460610225843703022919952033935249358074951069398020819052907864572465162612477466202893989240912282792538723299610691820024113847456447794883321082540283124038412742624164213555755666400961323187040467725879865120730106583300989871365190371060570168325576614332836981426783691506579232715436699347115625149634358308803952073961804803499736169670306555988132042291691600248691243721757665116062178715764155906044293645865644773889820888482916871769099892413394322699910232818646621793454660333014417941154355808664295355815282576453002959221644156591313518923092859581758525281014141247437501975964198489190688657973015957515577094356916671084583393399676758622234594442955366179354634009323261876779124248639460452956625673099987246830304433588840234151683188110952741134922073362344888212333269251817077703099208531017248935177596993977528685216546895456095521852622315398320266222659166787474339232485966144982516145107169030004273348769858963879842883091052656326692460054392798078122680859684680331087369867079530819722204252112841275450220268839693560656966870874195073508493538267088764341347470966032791774138956809005665173497767031794566195408311657283414039861954922645031227543245534264596678633130619303950532375993473666693419137229499560055403074417422655803808369311467729182145157018931737641830516339061856719602372730152328462427478382155206802360099645954235162949846399352336581918789262263763165215528052393944260680267557134547043193777599063803686801229602149945613596814995200282502584264192022983721076061617820707695524252312439252077133708509843161408331747759999959942806385428075100807113002455984412737531525349037376144573131279285782861357862175590305446654546521657627889843002385343102641851806287427617281288613286634644153697759366635526121787594548376988760345767954389288409740549084691035015094199696443121359474129214115968706040948382711153716804321997068834601929881112959597089967655231158876737065489411618119730098656370706972083137279840181731260585869175980275221302244231448291941074062130745891435757745411934646245688690915494497577260686148593625204380504901060379602000919836378786407428857746160599052432749982592346694992986084061864243280677418276072216221043288378036683230287501991265691376339700912301732495610371895176980521311035342299029080243251254391540202007369460052377682291663504977641347191533024928196884285572943373875026823851877004653432322148642191133643775855179308179734632519677265961939461065094360643145322501978840285980812373537683092199093630855313069676997575117455161720489835694568970382669845702494497232381111829887526356856226447088466314164283072080297092224293920240784634502310091290791931647687749128559947383017655989780736408539823793132065904186353213309332391212155545437057975493672638537125143951852700976071934864588684329856120225023664468530260379392584301126549696461980255447616049886416321817868952983729960734826846768749224011207732599453733379285848329007809943896638657380729970570031488447598468554140506817598394413784762223913638884179547159063364438633304188371738526026057506866364185024029277440091140804493705809880826957594458554370707412170788530667343717217879826695144930017787379922293392182095513174781654876094755103391230737275832260693587555118305950983809804249729657632873895890497513573077339464180915432400571884187098327861655913339739289754819751672792547265231668381033315425293599374508515608666547630543650268241622025331540586364751232903257450889128965484098230420240058143789743387734853829574317487565823524811281753608955236450028959076337444912344421281390461900725600699088506018562080731675471727170202181522577953248419153788283499377347520548440809771845142291605662659642720125616166315074392427281776978267531923143719245335759706832854368433879476783464240200871049187329242182220141575893301137898007570283582395957901373462889406912518132010931590123354938946205341477089737899207674709678582875247930691296201025911063777405916200379337994405149452805211087148845195607102040291760490657144650427283095381506705636615197701990194802829015179248098129604396875845632958069180584773054415016347328032647808020065867350137464631702538778087558513837430380873998448342964196412789959582965932511189129068634461724275197587080770407308342992455677955735049454816520417026374521247744339457179861141527253892848160895118681588431148657932249149578507248477769562515023234215093432114508106293652815796391523143412483304564797294852883190218263815211786645170608689665188153786896696095385978845491772881240373509006962562030344893933927077323798314608477053585023835688602782134995314083305654283275954147457718936955140498600582271294050641520729090496071490278338419867912940008440661221991432616514770361734250478114949393577172974385089854353394079674134965363161210306188790663429495312468240203201981531328084191901006687577188879512379555159572803354424068847517329895078530564488443568243624109799653697749108808739544244900055719971339143218878506029204646652225402916786576853548087797093959628479182070450632652675109212909661937302330406817476596223725158767048094867873305065771449491814248391603089901902833308978836360094005397928336655226665805897035646175606369439315942835603609893762618752634720735370642528119323894437069131711439233774270086438766663669625562050361891455633450018091128349452160705462980306649150792629897926325934432983826424712145225080028076722709578514706819148518849845249475598373106424364727302283107034293936474606372754559364110137786157681655402344803316433886078045270681911288194852615292888124540493626780989773713936374542086431453051960103322676438839989819580857779228874192997832380215496265546138375170842052531923897013084749218124589713161006732185368270754081180468427498212555146927115296708991132980583226871802955890843186659524895432481129407375076574708876231110164024103390220062280662090342193630854384208373985046808070819791315619514552235635275134549705254560991447880512852878506692875619130087477363073849464804783499329100531763065304015277505885254578007318001219146821921895728130968690462070538009538037373037611118613249312074108286195873409427139158156637329651212125092227139683097147354165124967096630463986806646054082148596084407322243198259894824052567575192989534309851894484646177808604725026977776315097385851788875401692915701408817178852821923681423472623739950485329362692616117087482556872275395478214473494239085995715083130875911167286587651705378356723390085122714624051620027920719336515613635845884660382413121139734011444377527734540495814883659053374943933329568271078358613977432908938097155685323482448313323682737710381265224038548247222015604366277393797014469579465301613580378760833607957057597792196710337086720086875847851138161982445361011592515269675217645765926983156563149060862258615849086053002995127111940747482381266898276294192483037696123380091317101146984473051307840477244805815049798350048584954931739408142913157538539350572088682577677561393858239224582613103994987630240608949758254098220558925774188500065352774025479038809792234705595718149402214734513852061753225249307044810692423932605497679494557930670124062604363669857424347741105628975445459883881882837379277493749597037973371873823906668161717474543938305322848514547056735941999459731701787221430690266679971493664834849130382777330932300338034247167510916755602226761692286530677394918632462483670657826718524872330041284084056355302238983825097875174198617262997773823310674894575770528041782421696237309964264159542145091249690136044911314459676734369275381996570692332129964329978704496103893468395379465777536636346911716523826955829815700639328160988787912031837380512790527373858732558644843183515622989674210364977248348780580855407238774040369756813518696944486402160113901005443700671519647777168971369374251850780084422198258943992916571191114536166919254509225057915507623726175373240540257174060777427950125301825850612350696290234149689976790891718690467448795431577319301525073859019035847821853255687321292347414609780442279915687132199002545633931912283137878046886765188897352229429475737637985741872346192108010981003356097235838566673947756068212534326963468381935872362763436905925341468686638434180328442299223610913339398072042958122773730964783793596659525080113484416671744566454350423757390894209573499539062599552752980662482165677180715278131532231221429198302158023534134603159115593642580117826434096341721571992220230853425091659161390649844736245030242535554375921895216123800211094616841598221914862272410600663839657578965239022486093961321313916550933948128420100740104594418589830096066809012551431324209638192839804412486889749438065318320266683916773908261423355936689015091732761705597133588571017364636410267051148888707454098661670625164666754062460909714216584573521453176321465523666762301992748999059115765843957411636082908906285880816527560089055961597166478085448353086008687051850121139733774719523758833706885335860754299285973424272519595004567434216904809486759892594350467838302930457162554415562628892341344851366738281435097827189046640209299098442195726832249276052925675081016293989444321136508801554158567020838090514507557887810525004261578136597397870933401302244145843489692143774074245116323145255854632653040276811986031793580214167211366290647510120998443606728251284428551534384885673190520827011528019273465965115293285002147211861303985897216767622087733735822209988973334198177243658470798497566606412869272156962678396588690687261915317945644302114838504615311681295193730109435247538616255816926713782302950665917756635600920844825072584343838424093198986818662352034649177592893336095803169571127269787654722933172669304684464220237192412468821748067292567568745680557352839771822874270279376091537930208118471143328927209548213651119711479000826922363790485655634794637990288120616550257770484978510787212287737676259213939380550671005432811210442915081260533352114543964098402351754815143035305869731781686613677354447953772664150673598886317193003790646885978267900509454114036497401681565762127737940290564287647910412969526096847148454470680008512118684876032865152087214757210084632870521766676076627347973430057801905103762858433003187879416206916826102541427003904766710428672327113226336797337382594382288394542325693230517196485682481846974366853320636911082009959753978356522860743140686780515233683676089779625790359417098457747538880763427033618585745278282108146799977531304524573178351285414098384856936325344092985779422093645154902992838141025014447926466145056335127648355608228480810448565154009793457455548414925670526313576685431296993882838295160292540576984369628275100480675989763984595390066917716928254365713095702643618151366670902588980492283958620598455487914557538676259125158295587330858007074611633824363023600284002763538309935837278247918914335613687020502031196440004115564372107642493307612053337967661442909369001633738202091170150104346748794558218234073894241446622387987015306258930572512585261873379939026243509655378880265503394239867656119087565527399259416708876017013751447496153520914143540130339092494404475964062203294681196621559299061818237457001650902503757974767155807379329631280995963190476491170410187164019419992690632820890782616179800315215804041782590614071690466759113381843674336976991953807639745358525373379361801354237677483329108472720410355218988202769911790919297238863989259845459664187672078504401770111457074131193043895878565616596434953609170804907557106846840859949943553282246504546448199615770950311722189497825021413350776683735932999562942125055156501102581984202275484446026011909930259429148671394347900799362558392784455096213668350361409689755398317313093777889616075609251824587419728350230607701213803351296747988783549031988202499626252635838852715816457887676939507807218695552960412776983792039402269591709086981143849355046872085926913658466047414552492034818779909081132417746923727000516521217160920723652137514934080819583594489342229382352471685302130273748164816164048060786528104157174175516711467588866590355347792920219449155534664270954010359723557719484363202572356212218580006499850878425112125986720368835218675658997654506932871713651298598167563550882334960483086028063539908143429124921951076622745863701299806557987586945739446216031091505360558092791622198495188588457573637591067480576271302384248064348018134123416322065659080508244894302448132109030384685343607350472784002750343345347586701325835955885083616341318419643562963298975565085830323957842651690558623237641537097915236487067464861698008678557278284482449653053158297016805297712729664218647292173620008001252300951831124725831520495187366315813140594067499763123834312967606573270912403364243021469159134317682776380760398293548137525999542480255873503035833393412701132221248793479061021480913998311953052182154560637934800167612793219961094195199182792383120933864471876627389630480956899014915435926155543666916656506128828286264719628077224168534237945264168976540905074520671134209594418592521116063553311740794524763036224697846144790637524603095518031842018760074425346697819583247759184258800778919564100668951490454358246153779153283195059856646774650860398612639679437991383390863634884059156773991327130421515544036728786247297225458054933016473449018857461753810239319572860491618716419457463307589445519729831296578906174819849423242017878727709069261606018569805424914359960738853397822225005426716150197087436264848184184675631080329895054491041786216528156595858206951622543850672486145759641365371211951339602894011116715038265754371268768717545190294552067031083921586955242764580887853958564949568163777168435106087026249797239180865491310410990683621670265469111860876185457999632475441204258593610572574252668313693232412467287406871574126717123426430251937667249492266393125158882776032528003813891347461469135214253088777181657758853564218867593928622336622442515395423005118114383842147038208232549199390663053508431467439028457234152302793805310173130619166090654386299126801250277288035487378227367715107485911262336511677688005533799505091995277133303836645741373640792708225897580544073700715113740569535798581159148902015473659405505144224248331221509384266186019454545561735404173132682724069917671925549375582073872678579696543916745095717667270732065215342549354869686310800072458541969691193482707669759626462109199582543278273306612954429280458022939393967322632804729634370386159133190283916588972505644022305426836830157584180553121898448342819400086920162962684178586466376376655020459618227844911929820423224188443626153705729642116000523913162406018728821713491599665271573853555187738137986653970658199993912741003920546742939327878616907841439725105147097552202155781145991987366766742335380818925610395364236029990367285719038451485311228404789731307075017021007655647679024773434713583891122894119762476581407719375398905848817572054825036508136834949313015860304588559925689648316863294211126692698094961374819630249980522599935915489294192187051643955921686035335661278067925641258348656655097873741544665617017409550599184195509579113066243214339038033587449920296041295104617865028637089475959360445427778334653998267787830053808343522007418726164727993028037562009992584929378424553219989763888091664181561732298703159411190563523117376849972700181351274761254258942910607204796331978483695690687740107087159110068913601909967971865283437257013980927929392689351826593456324102674671599233086153513438460235509412577645844965287418574569563382906635417185966417545512235320486995088847067786992070698465147748897094896399012418005579104081718984667356492737548081431871581541175407629415229025159076527221976515943818301688162570627035352698796714540265143637067318069126930929033829174717535542324176794345004430271891229105638462035256911449573322423190650407067988330712016041036874054800977353810113969680558428172587436189553987273302923905075736635652935820580434093286153902890414904941161613553369764765830527410719734807292657571000082010731201994909446327835783929852240425197169680627377567754775147217292593494159656719321900127405871201347915229255949092346120854843155994851991657007047291523085306379479379130792940942218380407700834953022449684483217488025287419206809243385233049261755966894928238708868926757760153902414134842138688270236824335630532248322327814300401522926630729036398949553436369757736456941669283074564213348636547495820439563243329917970584626446344593550778197498739355982836680561348682888479473103145262926742493323429546999870003824396893262815866646894194974310674967985649502167507868994932925817395781959165232514855998448136451444743895308471630714211688234679442011036149632979212380448704781836362705548776661022513534842523387047597579863812691007896086149476456125534600225501680566840622929683985407032881318123414409372527602405417991703133191576026934456939653702913791083272411355220357004148938256143934788179643516262792018339856918114156210907884386843884999458311382147358589797809318602809447283941985610087577723550917287874004588759863152465172027744203705736136664540746879194276925223738297814730443430043171869580194736501675799649591562671806976645170124531689625149949549953506155939080780105868003252311203711556975904535436031953497867795647740792562575619213351051916264339735728250456897047201965571644710369545364271850592953964100024174258981539986106812881066187587276361659737038908746133552832002783402455863958969888633513532334233626302168479939588226351035732358343186375319040514898733323095435258121970907453248998238535866302374438316757658278996396662441290490754249188715161121364995027168026579999458668726687561197355128947382905526336766015599624099560170343442494963826246303994990612219250198921649465365521376572581228840155351436031644808394936388547198492334269670000586713012069011868135257582467815804381197523802219060635856638334996863972244465385765397396115342270610896224356116324783925827635045033852661611141659591093931838522595396867013423139985877118774932273504762570427580041043161692895664295746020077145003231645673845294985755097185490385379127097909053500038826433801260418346800466601619655222458835081117398146957746259258752159212869108436772047517737165412860228982681736235644890943691427149267771952288347193984974134575679239432640807363759082804265497585840199095705107725329764089787276075340499268016361617732844633953652226674856773326327054859399359866566501994334709771137753008251554481090493056840502199549865493429006958794395138298166344854629879707800609222475123474829493767587163870730391584825092621555527396548342706338390574390479017773834757819305923882015871108205884674295901419601443248598911972650783717343639361568194156883111867792028511192065830799984192185712731927099713050663819006328176091357958506861231819831231811183635959093269614997584744318108868907511542794006350616476761223630107499014967657095673608596684412589916161976043476180336845591405714770089379065402284660107107658973234081625135715319567177678875825972209023277099489954774589381512679968282754910480644221765888466545947507330425218430819555614605101362470594683313464103116758528475577447548961190042447910420527589128712675025548858642188775414169386692374818795455131632159625942580932631932430707069027756087365110520394623437726910498732560704968741942778454945883258284927778203878029588196426229691787706640551212826022287642608500590922450941373098694097542946621220097539689561370736269394238329100779041326498018018971884019043383875657376330637116380872637947835317914551112986610581651594941229742989492081802991381870433010758134029416924651838006170094303374567580048073176048207509385433055399942873717310937024315189075237327110750503625995558882815628906669773864562396380400216337772781863677601889672719779730618420257042287919295390400345969723431525675282443703802032814922737333584110372311844712227595050880371964211540242669568373462349841261749445004148715085469612939991599341172829764944155394148242251529742583843460027426671246715879905511582412712922135332507563667559983586170650924569118279256831246548650763231099924218787689602635273170020394388909277028955472025474639184456683757178568662870946144585806682018773780523816064959836821065052080022961346196880334825412028707356806897474795010735367586179334633113516459110776013199060899424517437062161706678340932060131019822285064243316457760878779989003299991133092158803771372464752799885595367392103607519809160220310290616939491147817042931264035911420176003632477955218476686388052830817918981018724692977242317530082697782338172304198484100082397437644045224526222760593376332127110487592628620016878594703598377333757861636953475708200711820715793060542800594483117025589651399919324954284852339215913278072830536802753901893062339304833854903339808822096342723739349056120512437033378716271621705618880639791744908851812563675662266897715257009078066669438968298496137809620145706927143816710463843936503921582431280271237499959798818554172837766204474398944001508921835193868751336773155232936880507435748181176582357150051283291766083006662944098494846061844927761565208080707284385889064206203682062638775716299099244822692590580413837760468581148521541125258054491945891777897721518427163225660035455337727350031181599332789137112229938775422427263082283876824189444178348700370684614667260183636118445476888315495801060064231172223343929308981601162936517836067902670435970936212880007062852268457074901294246138856819688448434886799597134286035491887316133825526496113657484442301799967972587953179841796569518920697465942554858828788023204239707857054195658734683657761820719022603306469947439160031270346906655465091123068543482994413495405187589254708019865584368046446805175724422058212404018294304134989147713691532898047482015154637790770743764509521745768185376361656930358438746716032477423463711490069565105538503073764385820242022926200460513033197252987336996424979420369015103143886285515399064586238433538585844310144303287633465801756080430170130132543882639652127292932098582516274080336532534608331705927289590427779098441406302829317598403169495813147344778690196962837031069806151529165769668787133132347395573948377282779630582050788780942093951106483258032944026502614549484549787681787947084953827881623691245316007449913059197614162385420078441983291098002192068372688263710780889471745317593659468219196527930492237937948104608101831823350007507809548826311181734359856356657782859006748626552790243385579967841910742682547524536448964933232874091904579728707297845176328025706878013242891227287606580163943096188149876848446683211181880191499382947216443031390124000627298546632494541634417772724150805351007019771799922491888215453269521347734659523925192890131346895378315784166872816307831471619748603739555006917653550496207573545236143917881678113497928185115308878636392036497760070252164040396170503727160013348153601158296412020310393640671246225450433413955205537778254140528597004118564726572485296394350996081692368452615418398811123524965646320833521775905636947236285864227991710881048051275556919710797499483265994940083466054209399948378314797521918340946370816242086365211732579273037665165359325510857613173407032992445714191358359658040397629082950465935896823748773802928507204841012772077776481038339855534187956455351939210674757578481635255392588063680945757390532273143316489575116560883959752694300675929051805540468453402779261606061835749584816460183355585054648423775788701108168571337409498203308659196418922123250428708692435005746586285640601008221898464242885404822622473244626729814015252725593560020347579365373992500890266246081566817430013566095422822433815598448986247240225630516276235005845443278485768122885608777278189192322060909434440705840711958024057449463012402496663779081015247956735087352391014910390122515006065677432931049656596466689624472938648256323938105219224278013998424034827658250566120336695261990876711776923491886338287331475785018482657554293711673277788445908398614413508571416788173309016475770877839482935374334862111292757301123590602540141006445130145289732224596321207168957506195396387591709247602573536501471979591986849599302071032629404901583183743772329627355151454419410765156198965345611600004777724990494507140791999003570801368982844627636978950851953471349520317103878381549389652976704685808269908470976954079874666229039717288731521112594708444924739153023757543264916633279128684359466362893602800096603312976761147873435853785200787598004830900172598860523519819550184230152254653213257022604628838631156311480552996420155390179756636420154813024981145889374017887389497366263378785604955170820821355053331180789186108045835591213083809740524975227774432363338347369552881898375806201341887905091066218371966016441803748007520111607427050630654929805996026011380891321464875566688950483424301933491147350911937846751797337613660764797335510994140929455135913067442829346375759745370185235025748478145237167399427605399904488806887198247063012686149971276299757980529013279160764444695506482187657371415854474599404325621076701373560699284593659037758754506101459271215544993985458784973692619354670673177123510204435377131399648019373264760705943684910790021112988430977750750824581076084332592894217532053158619982914469073310681199952648725342629049885179692783916572098024624177271404009697923240333496183652913659982861033810751574450881643140610327710859650173043804778232367324666229825218866706504209130779071379711620844413068358548623207645509430380396624510268564304438146348402431370795124502382750213734424563804256475948843788641217861158553612232208108304588746759686813705889058552303093748286379086925614696935821087281331681140745163843388693439870855048663649617760896498390630310428940576819732468878864798157738416202356010539363435565581722375672534834202781578668047664280284231238831716244169170164000977165161346066873402858641745695540630104220589604834558045603488471127728355516423917008884653943637243965279831930768420144845038878980109188225217173290186648887502298491504439669032704719410726422209065698687407016257697966024995346836487242593459617800843334765084546308810324789523200959298144399761240934139576061413337089318702335120843888622435376659261310582897755888532549297471075630005927030952508136591096525151572713261119318526850387050521218877534116989718400010022900163440677933649821336332416902962674492333042117870082124694573804914121721574839653936103409135430131444048773523343838227607109554911257903890379943992703031958572740510653593321205777610273339774630238771261073781325774660215585684272970381323525688236310189335416225067845095945998246417128356454447944051611587625853039946804599557000642521722879113759639758157932898682454628235252125931335388239961015937989994993231901745960225557835673238079408729549402152723662266132146103999039033542095638237554272006628936255457017671832367425840394016314209966309889661163295962257028810920904825550447457049824618421269211553737188115691801292349391653337473296747169431732288704944242806714931405298663146697062855812590846166123462173892961779155450228350431101626093753198485826486031256861067704270925888966945245249572165613975214363238127105282337471066197283210072093866003152890286089868568425086920600959164048897282285699043728113916544262560306367706063504470784228253442321510490005561680496033628057505037274908747437625491026725538124321847949333175614856465312224237347640601302210610996492257090097999271511617811058524353970399903787766221064009372387766715985893844204460176351511926853439886998265688061254609035984510682825533429928191801826750953059827365369017168668930877479435430763657302509995414111903676802122293552972737135292351306017965722357515555942451724969206079741587723800362575619345736260518464485280739162489395155887463338083682581611008364817626897470984491311797880017501204132879963882340426078718659656930383631454030308381041985790635203137061195174959290314454878604211063159456291281527979191718410789424049561379280858075812212248628529797653471729733603437504174820840017637484299424714051153173723740741398900879839949997229380716447693800632620139591899815188788450947100742480417976276955518723185085235165315048688374252965639756865162984605360439400658414827080473707388410369579934260693466264115042112109537067638544079300968239608496361149313843792375356614798482431936844212814854454981519881666552602083412258644288819074429591138515455288211607226394043531286592698423030750408278937959114543490019467899655722467909514104961817399326831161138868443471867174440617982652625410224229143803784777040792839371078897546289405057559190631164201937431792767711413429721885717797015874225715930681874384900955116110739169988760916363006553909244350943818458375738203308427656847405617712942747224673636204131945225871674144950144593639082251165450766188203588984158291227661306314506368331342075339725026954172354305060694530609219975548615154322305338193379376330391008381179675658951656859912342642865830890629638981488991749154191781340723994911732870192942132001068613388868250629331263872260461332709290567405401388463790670289735219729918679987616894920362664511383083695795251655041506574870803217958893955931230900216518894858426005075388865888609928276633174270744376550163250908403911025038789987292846535200642813270666981284166463904969240377637527196156960335202246050236080812255565079842253356499343425557262396564118591770671957085980367101735981766110639104158242536695066807807898101671490226891458376423291900387345870582328888002646101660834629570347235153955228582801154807837405432686431271064406442829983787850093652802102745046079001516336088852724635829118660184326084618717149710540682772839543924723635536166567527636412778204296852261667760086917691502124839041203759046388293507880307886955796856981323594976762594389513960234696908469417887308620386111661395207419999366203819753880099497152944194953722524264461622847748388604771650033563513850380159030410129583353907335223577110859971521355757764204815334256373649597814277905764942710851993240242604696313993197383970700266303098498652316677445232794038607996277313952786491750970623560501134749246664362823969820789548675595039980534078813265442529117178572867656129028119726167604613600998748615820046010311896486090432070438582080534358290032085155861829091828010216670259667521258636351098531005814962473365165877228135829736371891711555483776123229077653847915566428890148353787254542606926873250564265183738031879090859841404980968798849723682826988729440073006707188143596081537797819834392071310248561192072451414314803509419036959826859145271162670667170632136859279841625452518621351797859675231335487182404819224440270962581209342751620493821041137873896116166759358839558671224485862935381087869246746090383746010712391102826133251721391978459367632015416884449162532380886830933286252134629010396742227696376756301325389687462188469284850812608671028179612535082073328265410919401153716719051429475433303795125495188964894100517929335664587590125998996492893104460426033633681012319472708587451892786038744086549052579393021764374453570296314724493943471022507346629738527095964113565393659610256873758370350574454495181285673871901566671185868236829633728936284648437277213816061209122648799390644195098339000528334305594855334738799143581987640573740084620215661586261666223074366682015603156501929270077677481854661353013949880200562194208516274128436066831436428422659423014932251738280956925405676307385523245667890669355431738956711109620140419559957361642063285053261974992713804918058724447697503570204411464309183662314210234026966275359880524061994559510942738796790242470342505815838061071596933116258527528914346119397481016338108659385471498535122745154921370799883263639460791656880849283499391763808191649317810397301984856091240996534022021247320091283318783573167037049083773485932550094131357306686527112686773399049256101045021844806851112203133629057271062147052586953067583403662900830984146390843097463687726835818076306657817069966441829031053324066678604182536921778103509904573085475320003082982930043477416909343940138405395188734557115484792113827762882029684324204008872658844655829676859808071578178551464739550474645634077072105624441461706576671817025947746042224826258365972393472065655137555114186321171122187628960189539927356896120959294335137776074983527470459899106389778192855485680254002016963584449786560838232735240668692493451236905901346566147856354120075126829868514541908262566988283618198534257413140400990885715928182656828584071876360582292450479603778809361834948478153443444254936140384055849518045474822824456424501944419733387413670185043005240079204347867916751263662346841610566885446957284933411675428773968050583020364876114552489542730041099758378217756142335902130678788123847933355029909250972029543431618421954893051740878600699503280344338997166254523328734084712657770610631324536878483999296314623937619266801980524639847366502498317883394329614345286868926457847508836493198297106040120771005374080501564530821120086757308946047465164438987958837196107339141872387135906632123294071051713980689294000014759004646267743291569791201643024941702747736238762642597119545918238796127171603792969132905586829036102919855130656610141119860858852212281868264202007903918753998674552932926703881824206655791142064571989580402208189691253741682509063544773279672409855726615281912352516512031262650685242077153274118335209619596017613343011310135724475510839166292573920031871460932095930231790808000939290966121061195420604538255459503190490463190602345183702842209664004323169865094985727616044621575049313028477431210999796039599337340980745052521159773482949493921273691070157537928123829505983710931630028022551984636943192006017341505289769068618510471777587171044621660997285119240646684174126659755481120207650960460275593181876501972983379959603314647971231012670608455048161899937385321111827321504995907833784533877494140497645989552608041864118758275538638922423809733051497855487247578198678984611229462340811743648845833701877512912907218605359678349881323416704540799810564190380358856923072393613766946422866013197174804934522975993538786803306144650136232080808851601831317887339745185737767395051794023396607840364569097142695938043393933012390657401376503248141837694847785556429863097635535170406285926982512247014102447834450474044851437091890597970498532790676982741017135163651109282697342134623222183215310675596541944118625023733865589510280594509909805375308555554533425298317104251611711454862477698894741392964455755928312596143120380641521095478414288630343276745442322683086156744602725387763695101631516235639323647769185905896239929654375865761441456143847990785475085867097573379088416784764491223358157579537439552479903532600674357279288810094503617031008959255000129585787860155050882926488879922702375905983494048072675647141033658783438415628849472510619121467954861795291953958831513043915698575650617694900530578352589907391126318693993468944844969498635094682717985333903197501871107471029682198154265626444552170220785871274895420591903597396617112742437631088614663708065115226335487802275655115156458181485617304934014900649322239772246472048186388332794856623736279052895223572741597057549025007742773608393425132993268531493533382627611680781637108551683941142816959437843322162512565017238049436241118017309728497583661440507551629202054964016192900011512223816075362275749816844692397618387543000687892790466877088126950701805113813650990774518853761802868333820416350537826449355724807747174957256579687468389908638916351054676262179027131314081169429073892091332514773312103547786979006284532736299817765657451013478036069942371615194366051859019462558383909591923994640665215426598480886705652854186348566883786535075613928198214067514890668742185764504983316925239066942951272022522758500484122623272226962772746229367436762869122635578486877209455428643279853198756686933105549406749816889697389261470484936524558184488102563321862748331038830925008059815798189686910101407962102192422135846232836524058244764154492365733928022261033882473728946690509317086356239291188973914529021518287597060473465637681519500618613954801029736878350960259798381332847813212651495397857375996520625737072730565838963920415959690868082612271036808893467245028787896663569880228444927288322699826877828821050770196781988119745892956697009676462353973885677568604983640617859010749211860135369356602840541141498568559302066850696246512375273100476752895687431235944924813575271289085582721625202302645973340144191050608154938146906182686413436438453292376994306002622455365948085750422679840360327723938984269526283044989590346766734822996789920944341822742041228737658436175019072821446501917291585760608310200087860953952753238820249555833708806223898445201553244930088375294718163886646207071235134502190972702472905643685559463637531872446399256418923747105143098876512166503805234915468225624048179932680284504803982295442028488840451471743457709320027024555986310512859219678471551501071106172758936236602632609084279587461804208508485356191213583103034401061832949550215860701402744360442408934182732798622751572181880772291338410455423096970624718990890259242745662227438061889692429349497207181803952394574599746156001349912526679075062475853662996384264038645198618579962418940648808434708486682184704783915489928771863623732671582534775835235657772884142931551668934261565727422634053281563681072474424385535333998405937062367506297286433717930475950463779309108658086559956514038533548327340139728865098610968588297349689425696124762294471444706732079891873813812180093630172022562495802578690898677106896995054420178882516335592117174927252218966270224944595558831806616044949925385021258405487298149993231943777087789401034184326696630054588011391033503758384975234368696455169342952711460104314655824526024255105097763070026107394823593774819715822233645013546887227934752739293038264842178602357900515284543000190087196104693949477127518987543765153953676290036698412273176511914656149076586702515794143140699775291632056648249191270651090025545443725404262137316032458494217346050816233468692921982244301868911149126784642839672327515631189598919333392531352576910079446113147981089146848878607780228214702034270606496909390567435295932756720049320442758279060580894956739726606387766366833670119343834122959192965689230646148148989562565698258642675400164347031668515585451945944540238191807252184371789188345106917796976318055520376318114788697352692862185484971945972602390766477730570779651181618712072907871891244938720045216265595780204139560324554441815782328184812710889972502842024734570830413875889535871994335331962566832812977883896238609628133301451226092040716802088880247290489484708231654264748241628799144745254690591693061402901795652488218293439613519112121685290428550385300157989627720567689919522411181736184709913174158744614194321581295448793054029006999133437604259502350134441998186649443689658533537096949271740138610431768916437868083812141242934512210444909920993924793315597494497273859907055066405083536868921482655261888080345696566409893166543296580454150379476412872708997784044973923642919427715663252643231122656781479202174225719864555047618463204664671514333018391223409903070710367119153859028175766940210673374830587830759581623854224969459077065753788969905644859517358620803104515315554339004205873648553047345965781346914913109076352751392181555187574688669604296467842679638551124620165977583999216659772494618749102883832902510625068731057586514576266423859674244577187988115491574248082864001878840291387554979231117418108660005376705941614685374068130670782162245823665067945349945313451180975600653792877821852786193784208956720325605066239245336622675698909368743121381868580124974184673662665015041608840807037069295792645065841399502409915349242629246689087708973831509842483274293534463187662685162601209085026097543922305396435731478597621997091111144249050521830696507849954305817420557443029339958315601609683807682942690142082510238104974451782201450612199937752150074014072919567177627808856417980848010744281990717890623307242172139009538847189885256044993728921521903332917959008134820549510670919665637381360743166413801347800928159840573873913832288163720919939556459071321825710004580281303293885647400349129065613547193549045443257446038465748317196503575371000046237484552381240227792412008034890521649976457615032562433976695270136924739010791091477521009585910016965244632726620984572755469915173672273101481233788107281719096848110798316654445597269978203285277418207959485860630547264961394574998316299674998018047878719705598699955228422530834728061291173453161300209086639361355634714205493637248661437484754644251321383689212057658246329132524044469490264620944590059591751647925669572400911628965274829822721257781096977930071259793904736963122638775492494855824013781195454274976194211958277483422579331212494040223186643638026113708944398022194410335122040539939029826582834502359421856582175034012020608379894692114385938642041702385328009951933881065094505628295243890566671176001378288075898960329093622228678862168233490548342617260182037005903293091195568494116339925961501678069318284110756079952936242041744035044188334209722437304513406534532992137235762554821394943050552066862922316537382814517215444201210963785181135599905527163608746766476989133731273818471475460346353631361035879637237337332569648984241535506402321732936192845104618932493959210270380710789418099816740396252106937693032090112049261213304823572204210130076704848766948845790748840581245920684683362980398722158277519447173951828408269901795185777244089945952952518238182893400432504124727740967950807706160588595189435702547030928966235016409569431045499973930071253253342178096019354287010867981499561900618234940382731003250615570456745723063965186632434222780631403525895401277012278702627946379864583647785651045345922454661014448563213231218387559717931591778783090031669371163840470215374962029706075102653242275065317360945716224171658326631115932851850323758522571251778613495487156368026188228109331072252165855979373424890795554633208412848143974905628031694828441903225002726207810340967314507111179968930703007772276902789756838013436276119211118410591739507906991861043188407655200896482854505869349170466361053619251270990030169573413798638558605620833337864130353528326272453971636902478721717308467587713210900130956620072337271439245250969091306211192523580770545740626371813238082173507341939409633018569252176781301711784479016552724305034347826887512447836097362581845992556236819181811799111077913533919722061657483749858961725059202886847852740251880092723495965638675372461535255044268748620232058913335242887735959521014875243551683345136205057840057217771074891848760530654832261739633170345662039494942942893694988114488981375522407400283551391905379713039574602820799263584260198851221453571473245047193796712158066487877653542967606694724690478372622893782094412350809030768367145304222229343961012729255605676122263724107199343577816104392766547696637645284079859372582084444522433563537559492321532543374386411970146450287724812275220570498331247808014595713702570347566546534048567580232566322567281769709128474235308913463959170797132272352176020321615853364720287727357936962151516023625473933530573515854972992698132575971474623135965411888536275604608403059194250457652417743206524234145248963457175226712707238506542103013686534984229454294401538815251840747865444616052869230151040262353308716888068894798834170445602111760646978184531674605543238725377993396374684178550825871798765522689922243033058809251874507725008000382494546435437885505762359591213799997273773904601302796704832612154344919216379204626642035572520356407494083628019488696040348910742018786002731940124096505823049292002453760506006073650016840246059593174797249221767260364275720927541083784835234762872412502580290034102478966675767270304111940947384871891021280495420271097966886948650590380023913405296281774081635078386786737778321827430558024835557310059405772379168207031966865675339877315143804195037060519126910289524594761589043041442143287073068151016346899255656749416164475405038802942141407061743656431687965841382086833246652524356552793967827539317130415472837070434636988974814891555523933183170057030120590895242573361943699842132465028876011395453119414950971241346517455257044172599954506342775393387670174508456616246301235684236084785156098472510765700711346783936746901961388470210763974808506498675357600429608022469285167075025086751748992012274350759968170703304013011057334817066976515336169678058133044345814270631285592479121115913386466796199400310936634787389456935046764171224100617541161688557695265382793810706590442929109045120288378976424534088797458438564806481355409457619194802616505824821780314042524705605022892027177033715702799532027216147163602200959341224376000949232635154392323983422202932418782311091746513715166963851291356999996892139241340877661383182086094178572010479409114021878969282982429754627978511667040120766489770339973291788204873940913927689101678486660616875506483198502861965637318418403803788174062443289078269562602835612699188295451163975311405017149914626799230308647263690903889363648005437947716082971375877336252119564892046507770613983484588626925390689133130698877722561447646086864852790239169069062018637314957642056704714364773292137654294008619567888227059882100394406055736527441714770926386507399508479353645316893806917863229640861422829326155146385053794354022716437464959237024387022582387588020386588022968771127957700906422620194707010333465981865645856228767997239532693719665029747882471217736261929250998320601196994483222842179999095147949832582776669469539808866715171317839627660312001957953770863591170033032121183237758029202778768146207834980195358288207513556708670069881280360108041020941275750807408052486093399054519129679367055694639299441734629227185870347216937243276783295553016625903843593198941242027424999207468209569893101678141555524737141217246538477958712479087822725005732853556378256721541537855408363083171041570841936443165103819613058357131072411734940306605919653774101711398149712634611099724600336079278723455651139469983145907101305322801605933342549038987602545089132416470074320535318598863543788177823325607182980089160823373128141961838655454631842112764157877591302755595645244326765892790257805302110046402935667863596744593989937973300422028894154075822973324326217773818533127103719704202766840435787606838248751479798899604537469792975351605742642830070311290203466434818392915212537899266370130994324691977017825465528186837479335758787078240495931646911421698954127913591948281254400273223563062868555921213915525735874927277090370760317922257693839270601201553001830679337827833479857190357559274181422391623294749415552458833109612191425607088068333191983380162240270524712762486260096516547818037665592671446634504908469745879199584775811867120503262900037359150541192466541170065844513830318796779176053327810425899312383508577082319237473674276283781837267224746858464662668942729652353137756103976889532745117090395857960587545217265357349163896154181389233482689800853073430276109465668454700942889334945949682459432714275474869556203406615560470893041114603019482513124487193564510032027131063337340950844312854073710391756339610266822081481075586825790738440789325909772699098613042501207159817604195040762465660634798279254722655202770246812924890574320702501629210168645798239554287732494206413053852739848205521274216445338987314955568494533750718840409404799615283845160955228887689898593714332635928554830513251196546029186308116217623325532854444336386160108192812041590782906000612194940696446215365416825479095191409256932831664429614279394150802940221349964610831433901950500200343438144414050825191021149502375199043442322969102332648545778294340248886895821060023296125060092310153415407437982631310343682455861939238821514152229313928178166147247352786780344496847010672181417989342427841967790986302781797501296626657163312628850581612593961972084646635789005723812420713981823812888838622579537263803247631561723640278112340719488056656662371968929171784892618127284421078523693524371877613927393001306800076316276800174091092328069900943726450363367252094057784748179892278001832532888359892326189812348128683128046081221316161268299614279554038913816875966437262097456576396864119225032498633656663771173265404942023232324098113425789458404476166230607879414056450198386329326026946754140280165053728951026261427171194796275652110014608947040711738550140110860635669725770259390470937303493645537156065300943157829723848635818351537265412317395390082050993134830646984954873988325402052489297640187649906763125233351746322960393480192832447158566394046812186677745887472634625455813321245827857376784296950970196164112056087935280912178318303189689828981699266197883901787339785878046618435950146270492711218967046874855125727393491285376009416678553670639655301675581404647566038331632527078464700509610640906105013312640393902382367107934824416773311128184505618489311236013753745170743873447517927294751427211837983611007083881887863384062829531275883041692920633369202517414205146151006767539311959087806329499544294841386975037074743261237356140208010072100396603366028843979800035058413894388677289050540109915874606273470334215240093777912662690181963435676864189611593395546344421786381708565620114784224445032511511618984718935688198729437738805324783552498146761664499519125067248562627877582160166480201801962419886967636123839800525010081389223672304058942221528994933642582560744527960121166964438720763791788532610720781436374510407464458125318237442792720044726254209506599801491708598906395093593967877520337651231987941113670655627999260967437766099842554186390426501864905309567006108443575504411956246384475450908618059431681338964145089932459942319616772436199176114698460959637496365040751707185458438531150855781645350937930653201509052297389351013970982769075349567541870431278029685038338411908589808604777104073080147881594366805226949815043509620310932377939437462439266578027973535644528061788127118525957686006120413997141134699894624671323078390652657373690887611362047862133152101692281495331372522006995452892059657578148091225235864700308190859887834513741007249868932570427013153338731800880711667624795260591789193528575581174536536071592946114524613384514527381212412412773756662333983751207394547999329895194445192296268423772504988831809803157739768345500493022605406010744117011065678356438258061063140668094790940467953160719486166308392420499559091074890118681111914367716184154079607084959972542766560887630094950792533031432355266666671848397104042049753253100044282973653114577451020980885239514990578753479864145264129501844423651695114522576256616594016520263619769376530997685735876519422925628947764020582132834926752434155278466231513419782930332095099740387395002314498346785493261112210319984500739878077025785619527904906764688402798899764681915830272718897484455742634303818234024141202802575416976573352393504571430617845935886278769116241583895057979859392811228451294468840153992811703187702399138869533608368855618449459106891014771495999445236433069691996414968100772273431225998165768012290255513012623601246266987470253216251543584257506107413192577988716808782161941805606946485225343099377752898555887567049134852749259465660408431329284591507562054162013419441017230279533940604717335133745962023054362076001711318103525258816523440884203501579083809652861268208660177317894782297724874200131786705551885957421817336879613235073530627686611386709752219563253148395618072621621768532760342367021392519212327678330208147778042071501159365943144499202310013949896278642947932496221979429913813078182055820667144157010622409330358052498309701679226676611463131284618508647832101058170212510100953714376184319748133588254874776583810945214760007428323167873914154148468197927144037361932678687090942992119919451861714106069934781385139471842718196400574320302107376613498225875420557342124009288799845754904374937249972632285719933674438629988748146679376081208458649101427958392911550274690584949264432601548403718365085331791386434805176387778774744258804363845586306962855839606610507490261460938432123094395356620608746755853030564956013712405915466593389872993776647969210221544321118289930139044725990692852805709151701591117466016816299961406257115791532538468801867170118011484451127988118554569919424534317849486452285795402602154718687838789488967889474172095465383443596683717649873136384566834469453095852057236292558290205803348710107352347466038179441790246931162063144077505200776452952452906294058014225204085415285597061597778691346492166468217236943763191443123076638567422496922631745585651051670917580550698389111068911893512111928755704313999161687357385887412622844746617324883072884070836143538448629033109489066078493025202130202103119522787903817747446857066537755923466672009892833747716049850327816658754381759348262648834256444936613845395628653283718980989992789186688861152044820099893464182890363612801096466287985243147038632022019640620216696641944495979994649710891927209079210487255030926027785492352376021414942638432738103170965384410938823786649571077610804299381331574642718192397870109718728897732013718903462561791269591184475659909429978105819034831516520809995877095348746072181139292751990539735855186846061523357097369127175060297607034135734999996266208167727213734867174067022056426042256257054923427547920821667399588957862291035539426412162790027408712179627019877260834384477985224451315700672025032634942648794683265149461423399632343272467886151100588947083207257944939431877501320973458980939697026399471671125828132366130419173799629914680865776136926543567452020148928211745078983966649295376988312193473064041690813147327631670280560161912855132888798938534685239904924038818719295639181242548057584798465960498889223894441011657152619227248610681283116893123735308727532852477123309722600759080588654499941924157496092387191533406408103644743817197334631952271089943332048143869132932783249471675348721036870273725436139254960842623704876150948201295084512384449932457498392953762340680154037091078227277537718968028234192863174112311143910758858237627697320156762105566656396299149689126913857746715376417095373815346197021043751275518426992458932533613918018940124979393138463976368562413229807352078395395510088496494423759942618319524493584468077497069283517603692192283645610255950234666140004651736680117287686463406631778867874099661685206218166852279491386539280538020342628831176290534104948518623276297409226439846548279507961841362633548137329213621138576556733254948134750935423333957553117877278471986981729794304331238672716196904164949117162616634549050961810004600263522281872620353457415927832617473930467173433866412835273500749623957011393530936067771460204402527278075015839038314732025917869432049935292464420183547996471678651332726704630324933492800223590952091257519096789317931303400663583925983482021135435559255878386110158201064954336718104322905284950331398590640542400685561496260284809533099740465584656863883483152012980998358914517760270134010339953446345271629623878882006198768905536002506489274409499148877734675006813822795745125584631517046493838095445837959536458751735186830752300832464609545363096296999608617909046076078719519786467647525508648396312254346986110655768434818682369320846240953864430395982773636587945281891124270218950817364979184514870144810763267982829203142116543270399060207182690138566506729529779390807976814590526092172368619694070343563734555234702807746684121902904791202732745695508677530793679399675698427159650890515787727213303362391232288987284193397941555709549040120874166086559609435317073142938158336729699968829653525072312108478993270161111449918186124774528934669638597774956265677583074775048472884839530753779063544842862001896119544443370005057089962031431062380407262089494708248916705503464706447837597495442461208908643618586841993611260546214350020503821423976270550206165256469820119047993036186409027069868358789837229129520143637000208049129664919138495013773094053546163397095412369987164518968229785164914168542592855751523566032178262471829658643444100035750702437730894997397364152685208044278197017718729830368518026247925238192663486060286441271722005259828534288978735534375410630112866630459583367586401847860766643256181904392061171037461878488070285877228204509616373701456755372445861663281661454997492829043773718671573283677612511576058508771086871217653302004531867286146385223022188941446620647653223863273725251813089942661329485788586872116829135981172923112975090481301170941566317826483059511766080131187622967132162252229560082217729744904545052367132063977407398930082701652297239250974432542137053693101915850314616203933832459328459327052124373367931796941005718296379749700508803638099458074975677907362005240249123932061169947716155863691798836469397779562723368552364192217065057862392593593742364358682116039747255851622334837837312970836215620823763889730628713753786934811188615172451318999268624579590034931796122915261633307171840123172952886478128284529849086505620619340327374264199127243507544697814742470733637205499003278480658876946085411655774112243466235598174404197605234760892498297317880800589326579309865323460778606673876336308031528752884040101023272631129244106631863589836452501067265403237999384797639105096468994053287852367951301878928614391446525368079633764156017063678573728344150002107818016418818937413960677935222692291708134549749581120569521334616811934991233447738767905253131286126211750000741921355565096750375230953502052259123563550642796517286082487797434199000346970238456041596879359817908293800897444296941147136490970301959886250957452597817904712830066399761736949003802611135228164017638084113799170462791254804673254814133664542399436579592241013419938517400342677919762388499451118402574032345802378230448022739846912530302238308139896951324837366278269995126341312707479182391712482478790864097612012713243242476963367002866393504969386060904672275996756501350334143527602124658162154446295493280870353754154598018137422000461022962124213862240905921843001715808325858484419718247921794860545603880665908252355394474823355905413050225895939392625303677769667372435261798190910647018375216869102586064694853501295856042179395854168216431591228900382070019598130474840459424961659004703954566875206018972229529092530120660874494042341364586356997602388305942226434133922969362313638268775338463464280879187813010259135757710486029182538097102429466625455923154581886697100064561001492545688390179143339328789603932280172942230116801638201245809423647709374418512837471010358576175218283174202527164024147103153870246170660453153273849160003786036187332487055132823655271728759930275492956307706831941680387190249276051045986610942063715910540411208893545367578215181283719285999417579583671749209840301932579883682596569240962757936349001620778175725800152127676180888623619160819065605269852712207911969546528101476013657441535548640552543007212711415298245601322035548686798935900745742104134307994084941405199805177727193333485805435426653035847332304754674793060352400040212159034924881192200488427733516031509842351749062875725062322164225954693879395630415349292244414110097032938308873723872417230594991267786467023088327977521581297416900945653071619661786424508838754048721578198555460881245921856707322788674302030649712700713694166834194346076754612057567267830484318828323604384714774874587917538169360567409440677388399020886552991520827000474405659841472957844586804197748236608583273885130613541013855363354158173981321260287782884235212168146361398272322579100120164619951877972891176364933216213469067340198831238622265671584354370359265558625939504262916617025756731520220251707284946764480236962780287143099254111953667455424589298942062094944010722080000377808631730888597399458567162798914393952416397299252308740486070380445487532739128909807198597008186531049228736271041035960549111956291775810584853708820705708482062534704873140231555609150991952332569160243154804671875074050087011373472743140534002770772051933786634949485939087251182020667560105315592242199229681535222420683250636198134044000810969289599402226219453995238524312532784268842402511433860430243114121422346497105388969590650661130865811593295118698346930180067357341466912340243581882920102939227262175195998828059668301290300491104649035535265176411869262064827283843222646171367679303467357975753591865770226696167307924896843090311834191208165781955313320594234548521405987177431841500924823735479805126558969333085626723757556593091834138636951846395255518713404897744848171701418128343891203591935233462646803861016587644551523991119942188588089389408003916105894404232353278863924828767754390715561982144406807064988324509266550319729887428126985250618291574252694818309484574938498493595256868769043886167253703012239275789771250196187669739358989330474573050665663380526206365858282023547566045861954223143713659896901764124357480797109437196759599957865021202526714926662807467747362237336077087671598236888536422516632987627672676539820446496968374464329382150306145136120501350186133621119295711876322080220078053231410227287580230674186168386829517549416256966311966057320140839379932229184262061515815274931694287080754981619510237917244581309156341745396768127379542107758138039399075168753318620957562952021638138248646486751595201488535129981596879018252236323649290381716997474958157888725822230853428164611360185184498291848687653182895471274014811284673071077988109640164422997050778141410507170033479629204730953322000687078752111576693541582848856928539498750094360281190741471406131010755810670880955123344089006947850771356220863286746088408544834252813983861860958695746271448675936872776646757094152241447354446692614644963528169468839093652574348818644416425902574019174259640749122787758877626038530249309633018799331118640289337052299206894306643261676997945231222423193733068767228508784880040477937331082392694516910490523183045492268906977631345793404103677976966143002326180191659981697351167794777660202594223238628997830167737289066710802365707211069406123016393152068177275884171704337011672991464876343233927839231487468510350231554989509265558133674104238519889712662434593615308710750437809693937017646824386333172826765095133431649595753062739968792412999884125930710321836353768468312406957926407813498059718387676483372259319796512987358214433403290489434388366689459913090778425423955934276259364631022088946150008965777614586130552206695141027642985617331900727014663841491081789736390117466805931361419447588210720850305083611863585495753637318740579281985355922429114677823922245228135528682265614164955925981805200020081419018482808601579765886404936207204823691735043377498750022588051014516988420736886354775073807843770004966179778100637167744684318287852925546995705230302673078440915813121766684990340578920507560879147243506851794339930549529264456084548385314961753352766237053024763744333669231039798231229499464494930317694532997632743044023251772609054794227368874866073788273260144998126644955131883649344147144648824677377897649386117336544843853812351868907537437910484588197738398354381173910254983213125556213111516152146343176377673994738011461335690330410507689292087713460206266563545314495672745989312648776675823510419449213651438375891704113589313113264085185717249540456081241370746114281998406430377283476698484752111043035056825249676246962000981154782723247731968196645454464959808095478939311643497643168898346031609672080752869673897571765945961515830530991076416384158725511672391432116702636720896755775289405564219418421940606480624050847518144888438175094986331561030459244393924359550253257027569234207699451200742098079765468268166589871431867476853558468710969431756893288938269926901503623274016568078005067718402781497776211525789114077225325533900893290760894866286231145945938347119557993300099786922992075456833433458501364977988882227598316147395850041303181791259816866304760454454791629354650640083118384435175679065271015998591956274242775612760478104667404030252268358004622906103332902462168419360159163572603226866414369563520336065063967301015016692865768792546919058912092141269142709895664617998489392608697491492263815583944936516867739569033325564347722051568386749504749875923850934366499677228472731647211552675432308585142401010547658523607028017214308889554924997135033293703950863270406031647241689730713735109362297829587970461447290892699061023109561271546726888680059543147970962133150831461645719747061826422900965363470792682484174838656276779745276434757027543581030593512484757217511476593411957333595172302255658870287823412671168556957586536113458098511548728954440785941783943711773763783393924807220243830765327705000590594425517651338842552697560771615778764299632732442110662925762622647567653907569819527874968905042755650448214997823343095548774765848200855364813741421327759755579785043123106135125456670321775950728622248272646903234863325681612429657650593403622110554520142867514255141285827350048775736542689478662394734697853009984912838291965709715533809835783821085369185570083168216657032312657495800603009292492289570272422790566266021226916936276722216531548837486882203977199960787893252873962749929559504862184773795243270203220840587608352669290215957503470425663961742416610002216173344522578334259523374979195978098766476607493766021196690624386528993539730553317859062703582250935650974322107407288894100400979892981818299678969243384132529513455883296684286940078590471006824208117926700445258984883895052846219791550456136866317505954882493995700740791490106057776755093222988235088774880335648376096822493819754136036747434128997778875611318442507775652123590050024948495771769445555863823882132675246869142989720722653442772213443576513811674956127649653788194248072883532425192354526288292607143445275587807221548584916398607801928514025365135898476479603664906716477509548778032609124875443794302291182540099188839901646850664900561416877791863174845092030717801807812503883801007555504161775114284191662918441528846800131059705977670290893745428191188467662777782069367359231474352154732865332081503938142955859925745263908180772415163664617110955629913386299725450652931050956583204460504081260035250371147554363696416845309986056978469650075587639903740207538206224843387430195995577975204203450059865793730596287697450812898580618265737376628123583499504494534718443194730031617719647898362420513362176619701395821873460472849239803590708534942441813418144792492608313856351062923425364272302849638805704117810016321277178762290702722641521058730736684665597682724293945374927513489930303525353966039040713062487379879628073176571093116712351155240893166945881053150661244087445180282996770922079569966417355999009709882364132964273815437023576244562067381223853354404264465343213060168247112452827427307058912100047946590641098180058262628242625957161112693824780018304921540208553511289130020586794811565904437369308884399623979814649293126251798023442164709854412693339315986246528570043496153034350118772500006561530260999197880280010763442290083135444326466954926181817712067876235661393356633589647553654819198009369307978205004753784175582994882578033989828319983909894955616476842929294820020215173768244503440777240986551480506170915444756561030352993403397978330294099057083614375654606089475037698783745622356650447605881386089727553873885735967443572457682419570934746656867648088828408475988643463876367853577728558396060238593119156312154785575697581929102195446372573763612045364410239289518412492529995347916198705790863799864137435533157802627432858682095366808616961854690554249691548079634956893033929894518340224123812123635057297012188373435104157734686515614245362051388326793121583977047050217005530642661919622480792456855354943989871309346663512501176927648018806771889819157758116626027850203643606236222978943954722443828948171319213195877458230994310095695868437520205256811447705278785217853904921240359516412396146615223199325436366669173204482644036692701888042354692085153849531755273046215080006323653485458872941286873562764593016387951649794590178184337222465090622027335563209189906932513012334030888726967641428688353140111888912531844378976461967034548558809407167316194879992756408743606648556690090074062763909351003839398006845088136757596012132643115828553729131674603840591489334761211914777975818868451852989558796927323974588867445309741652359592296609751807753701645245933847553106059740571782333987114840157421634159191392682923386844101034805669428339622349630328374800185850797877162282491124850520323603726268973534588258415392611946351976790981890708968745103823934521449128958953793116545149350797510631416589141311185885696689648181670656389897283810259601620303568810064205220806471250785383285239453963963808455040201739589621498012463272860771831780422969068163907793403554015942823498248290941510989219525097375246625617533436145600691277853617768084631123423905681907266059331448712849210235484877139947616203957874225840831312530205209465916363225517465637115241159909328396998264045854020434936679311139315645083805428342005712917197180976844728012195860502534122493233185587459237559382034821455342879909385404202937440193080058019068223598779536657696657638844749693835218888032316640309881101631217802613185496269459396636181316211420975599525851893990413347402135769654363332480401429547693324947802570807685132616699177539023436064540125252947662586192801170870596053583329187750752211302007785966351948604991045979796740126564021915181874850548754412531901491189238557921467661746438186962615185055097703859206384028623543704877804243760668572354528389686750809120668979764441884338146379473573150257858055021303073347048458384998509349836787177131403808943366822783776180551056552888242681108648829886167047018271114133847683471826358668961782289112797840825237079501901437112092231437033594803507135718231714372324192185020444205296604285438905706156910719264249685211788408142587391625732802392509269705109254622981314514468574268300855472284032380908821291161220572032451817346531217994121852740609164492101861875266363275668482494100253348638646722691206569015357509367093948647492067520239378577090661477128431778751177300512016409360438418068160363689865005900131454056769169632149244410705211447821571796736438122205920467453507418142901906868511250641677508808238614718086570108109772314719403119154463685468001675938866760301038925011631446641677436501856804452259440854506915900124925469022117127388639325592643322157492492818664097065182529223634266455286286423341671233818069474045698611245733157025554406345582131289227708692189571165646419515550324041329465177616459990041689975086242745161124782709234224886406774501611311914513727302733263551386221140080669041257187882225350424615440207995060352435922653482739769761077759013987679191527153925159534746244454435953138758283593258944434757792835980350112474843618053046517245111707903202442937501156511425946822611821218710458364511268262419146028597375717052878529368516242509891856096022262327609354882240040778992246005894606876447623502190159889174000347256935057127443707083069709871964742410762878899068433577348725155499002730143457022979685130204509980960808549044372066325920736712203322338563429016086987784869562427207664762056806605866321577854099564232765834382851048971068570146144201026968933696412659815871279402442477092702613213485184702006993322509567285204830286942452276475350922037921814861670626653390643081585481784237666965368067638709625441982534710892523309924970241414668232485532296126588544148265097428924942249670459391812299225934726016050368979101882276196384941978514798717503247219618581018468037307125714799946201924175827988877239955646717449198322963929153369519696547581642714005522009308052736767563515512780575771278661762654743934930325426549127662782638551512045507003863650592753517860588000837132905668354095627744316211427308942064121315234083452463944863330857551355519409848813261561833988340028017621875932797144208797588823789830911536675249556010145092629961727987005550815531042237292711805540942233296650386638247767822647910414988890223877937524747727551057811004802001752869400087669369939369127990500166470823705864113562624837821556215345197297766380436017912930265553565411718187999271639761411174158106391167957215837896130734729841761998457854841404170557594635414923925416480320803989034330233945798054714516751060505704766693959283334899580094182905590296345367787305136756611708649186599459948856350936540010181277084806232233189808925772638763783704879212576786161140573200584702866579465694705945729816690081367777859768122521744705404427721769462682348025521411806237109797679053370503890838624571486150025594345896816572656090903795092661847590938971030860759659959317322787724092192813140481827771206318820138397367111636895000909604773990521465715067807423008530802067629467953175502325328631272089281827211239837312183866876922735338252043651939148168175231048946482186770548083030620031658695523863321391285201328761353058035976526595047582556157293130178178205999353073664766695727556917939340680344939670493082666144533292880231648389303226490762016777561574064126858983552776908297544526033177682515039093569316638916325710236999877992901749099244323219535869106155838130585417421773693381561088196079091911275966287500917385629093884799859194620648542866337946666714120917578486499735383656204845631293821703990760378185900547372745225721362564369872720486764723240445492351846682104741397015866150349434201994701888084345929221250137947634936977076592151857943372607995400918393129938046796389725729959542513595664189295913140349740597161393186550253882949527050595478375232313489522472187749570453999784356443282307876190573459881735129490571160954235645183511830952470253871937133238085353896831706619656981464423765159218089272099297213606169089640473634298547746841925160812768465055839163316316821532147770711870950207514072241267503410018179441288490970038024736910479325858914471386004361522889971055958645574615686292581602222097285592171028531789556854393540979752080199784222674208714763218454347359511844646324963000504181565408384874842619787606720485226286321083809364569438007975013061028062513776479594158434375499833146171749082189573333130011214365004011494818517297903645142198251014742890089416314458705541079774181961835993050177853609336199492153491776438779034206714741979128859392311417443407550608286294295074988652492702356282242972340189527205847515182534893350110147961766066327939000691748312874554331266002163563542374887012812145195562978507370839064855867205694921828372583331177951164875612901281061592908179105247573090959279406907741672358787163617042463177624865303156786860348083196452175418147884842079366600570874106148060426852309395442730479390915528951389264924864978028476892488301672773239446661016990005291916308422974082608296192707547928677311901820320261806070022468388647547208596327755416451586936118195948045082735586600149874967472883530391620522852745185565518768995750788265804543539304796462757908331662850356490086512477671199283428664021639010272137831390675963861189240249685357947034554668115995109664343280166026889099926633892567677879204287154588596813396493814159746784676357327390644597782204932930438949633305552264536233610360486659888093609367004302844165400018720350941183535135639461729295462553859611646150984084661533093080573846584479522725110496987497110514916320859573106999579396006954884795915269021026248416407245686567858090327949742417222079246048976038262525196870107769552424762517008375318556427549826097892804421058901600196110879996684236623793600782208273939402202661339747551306884124115689058220408794473179629179634696020070896952811300272017058194095526996052681578322867317540699738380552585020438380421006759366571307714221579147116037085380239136856133132940739206090371231765463878985138284289067981334578578937575043918346602927693676406561639429176013519899303277738344659160167215151026240374856053644545005089895713044875956889162199260927878153540480918574346720189518323246227954159944317570828539544933531232359343030669842287785981735232129978563080420296382509949481325942509992385671058010458064340370673522999308033158631878724196557856493138587428532739226683717189455560893042407370045708967296678258782347147770775879289032855768244885856281650558602830235808131968112315523483904566824225830638388645973457310912855664850793027501034961190156664590334790120393542616624655000402927487351829342741253818702070271010448862910259695923852146240982653586106870579630960894319587332944848982465080675089091486595921911418193961171333101448655888355466599623642593030936172516429332133508291052414815430967531398444852587082866609427372661784530218953185417218574812412870232874177434924823429353020664033751776016436020793731588001380437195950322632191095297635694934394974456343443464811545463620488184672873608192565766380374307375957142903968532228545739753501080255815144058300272750780173164099200253167828121583391934287422950613093183835273827673178966492382122593384472962211241000322445880608645927794283960093934779019791292779293996813088781234662232676691906429450054970616980767455213182135464470853938374894160509779573202311994278850099484655336333130299095343078437398449294886592215752386311243324547049508444161433040778982228912459224586550522270949535218351538003321479213474486062553404688114395795606402596930507014429482584659470645310995964045727336473953173531451964180625838484526582036226582009176758212643545996408453060949323740090116658920362392861581269753902360929875923705555251830238099908578292005452929437574297262575889829692603556375219322813177704696232852688230214141242062819782852536216330212793032526530050694999896050599592897349635198354973304936525565034098323182148887182580860152063841213508370541336606208895291520897452861741505155691137382646119061949440781756748363277990193284635433666573118775864589266933158692250666897298307571556899672728498907555985073813099062812483304613927094645332770747108820993202172560176998049445346068512023899607053255279417177055186807163071850068120432165844622535690391546220959043362242140353166256380700158256050573183893701635634903939246254536511719052407450391541204471734027068481121750885305681079872644761647790507090293445601723269800158644199612717250255217726126998069573919162998671222066355446641371977181025332762296593714030839187038752601904827342810093438235084271803278251824138837699043918640855745670287265649645684405406289822656402808063161393702695120203795375176266433514734759896909497197152578321456700604518377547105767099682300622590422577805938375456891889522817811894224261397667612342984336031050248081562731371933055842002854601026209449900197150596454433491884565419154389915674553551310771630377921082619965726032971945230730157783241557778380874629305158671203949913413134561225759276590772310900400153643884622956806336677185101918288008432564026546722951872161530157344282006934128378177988471384649053587304707108399753627223475500084449574834114813840703098278357342156710696190821639615898387875537533209918432904909601339306576066851415858237318047374949291714340318053796241126122007466314492881324093879870843072749260122682539242680427384602202885619111742873110534664066239476647756539799510119590543744100371315165579844728575934903946690207643057806920355275423105674435953441480203784335682064000776278045078531935346125031763928311991714972512872216964448771178062526251523153865892729293643034213335068362774276295729519578569929700549455414136944771343395647071855062537145225491353997185913855850387118345239967333192903494471864487398192117925468912967924529391848250428380062963955829544761100740015052340547558438049140850085818088563843173352294398333049638130727993341899572395329536841921589836071003134571914045657495118947320633111975853792535780356761909379863542495666916320888587096371770626476340543101094922737493049734204809842640068209473045083212302365012941997777236672375937746680346520924661632903563019532248534544258472076093343285447980283329326919542660460499765622970750002974120971173668398210079222114011678487042883543841427147686251721926104462176580032353302198757584040145448292973483261410563566873377467622088919248740586305562649562356467348184852156013646382509518846069615056783576510068707021436782606657821802378626253104659022450313574744999407105476942433198227196616432758380230552634375629102291174975698421280574868382282426049733238646001035068614384861336636483936687509790853101048274773462317416070813065812414342243765172464575004279088531735453814390151043473305356114342765796277497892392245385511921129024126677456352481315948979910389669968337500809151035006494410387125971699778902327023304296237472606711500436259339774139903973897482576584612047990702827200870797411959499620234154660568601073861557667788733591077360526072169505240967569932505565798787785358758547520163295001782873507927641059682337126204600061405158117639078551336299666140724367723438713887820498887833339420127255697225365179430825994077223424036537640108060264367631485056932530770550010099149443811545617897726303703593907813785261508120968520111830352277881066333574857216134405326382790292068206246033459712766821193390844357165950720996817338265987024005736641895040235165523671984836665839192786024270240270456151267859832000863295606968254732429717546439656563509085766125363704248564492529999105492516893362441519117783281488317795086279553690813334507395651864539379686027728979270807733255506154266760816671162665807845053051803353918585246868586884316944884973657520087483026722911889617012501595962905756804190716912651471483597510504694660692314755141279620188809493322703917853799543559852600091829132162056964530047883338675993162879903379384948666134459549978677727542973320975426862213999286207813049844640322761606252239372568175110918282433278892262112200811430279824709010750664374455264403232538286659729617317866227674710844329306717231448714308702711523696437925852847614892615795624715136919912077187319082580053573101080031320461670463097109955596118344621248656858061100447542778376474649584252011213274904735608114336684011180699471316610425161678920768841252185468085468457376422516146226718038953912494364466024888037104566470954377448314519219267085163552640641569545651542548249830204592789836693261632228243869460107457710115998638011500277240889449445721372226423902036980852402370648751653902357961469500499758225584054062179830754698218981386467465219864366554519129344503056800424121400369832176509459009430620027971874053504927856813234888177343553064355726442840092078165990964674087932856329992514079826992978641250190304306184998853627384977036461393867413820103856692753334871932063452866820110088137284994436451123362011766874837255790339305406606909337671132852666127889221105781731018586729883252439431398501926295579043193969420280875881715312463963920571625254046355470368484522874317051833088476789220934715253967814109304792608482512814897657197544609189820516089291674652921297294564379602800901520728581024597144717188003765862570539607248240353092715787208721620294279909043617953050699110402775498397871001713589803980144078251226904295301397699608252017832959747743816654135674115182163955976537459467375774659035995416269199170891833130207640707886700833081297671423098794849354043714192245618438871914955144241874390507919915082020451357905923260737632005254072586026475362718330517711304199544289559761250004113944951586029427030528868031267080730319160903112345182559744510490855719716368879539675520519384187230443712250625698256137979170186018449165797601096113069241405846161768721159628008387802663463995131467318964499329334871984025338219402754776987316463882522149191962205486611411898843983797171548080605113078589650482946629759513216610253977741354568628327949603871942120558966035872704446394888097427877681398729054705092697250452251131308223038470887537865149860977940632344980722468783048505635175102016921723915514840998353595949450106267617027023870085691781006119336506303171016918044362682432835784789820605714461995858055572604854081461274309208194115786947237409749325341686430869108926206677465769222966317491102549554456678743560504221489801152413128022475070677844000262634112954344014478851668862670875194486464212900144836737096086737387593446801284230186345868270103787795952525869555191746167225990641517081640501286606569338607790522012490912361524700175756978371559125401594509995708882605219274918544205129974869631584773182020234866638050480463321558251220316550321579380754461308111988867314440542989049429528672415207634881105573604545787227817333439244031025278851848116936303833309935182335581867882114320552274025344863017986780530708910403389987826611290971215245344107458762086709908977796504411111914492020763248676491580694279827533885598723888222827188271244918848969909390194523497898163376005051429261152059697945494869520867228559747320924433508810098593172863618148157300621410577328362905597818956409661465243859757528573892616874756992818606120077716340207052784026326408524101857390764879725775756534244862978215025770327030190254087323791887113175332990211268181205706882489052880141580704701228018256612121569335261242383476605551859981416257679415402062709505210650806588567919830057901523404893630297190034169424220292649738832301018151870817784416436950235977888168590796445273999726396294172504186924654901402309311222359414954012763787017689681952955646707720736796597884771509208596816890018605353686350129716208665012720862380738460247241241867230661879519946922888065161791609969540294176267630614942412772761534873400790582167835589631102825431048381428274652902565539732114322266183897894548653377313684397573365738479629422232721846846859380191096762712832151955801717682685128224707003385979273389585131592842115821846810351123948795223051578983831558026175623797997743912301653238174628799439312300408135412733685069021706981192032026253388292803853785763033475041000375887113865103264817629470152148494195314403908235139899498536510703009075186083606851388567373271191287823310414193551859791301971788626832964438014066674939688141200226648334920940119713853980873357131476508306146414610308813934093151489907771167509023188819352719712220725191201822375057678738856855755165601765598742755987433221060313936786444907713022864730074245559871085117236341304369885775561413231793177568825863068636960699206944676758560076257454529359378479835425294543083205200549448180221642943157141339651742698473526087227948452656248183281277465690912493236552463704535626270775652551860329301590590131841296448423474217119065213276319974058840033455000495781396715237918996214428817771132266478252220230475491811325588499310574894711129326716466892289817750870169277563538151091577620017095418665415500939630532844305205371271917066656966816614541942463211775974987652857187692689526558077277795983234242817572861019723599806690575555975499163748637185299913177635349603146085558114173545883436175738786619287883114428776468322242807306591624115932096260633789465318882557460288315168672879247492829954786393970912532530512087347267435035904710892140073493774634356130299819043408560050526454490153228601008644034248297780600721868389858373167261849472575821154572711850045126825789757450007969964727862320128779032766135972250144268425520755472003986905286814647885309729594839872019845839496618633143511129231710820285933275560356106620160593554324557101663254221307728547981436853791271526629495613796244187172423331521977126629537310272105873811151563627110865981476469504980498252824587130582713782112781936317073651332280127133190865201148713779793978382127596481685420796580527849312236763463965681403495492011588269827025619890581498701863988337381513338639313121997871130671833161203995018940207054179179473645752260941392061873630131028295952646485718340857140632617929675827703894356015660524989884791007514638224435495841966911466720334973517443187534819829364616999853415523993698503284713408644716892236056816652952900319236065166211488343166644208932672099110081447642052598786984604487979162471699235237510626066819990072025878029875970783561045891032682379982205235132507441927991464157638586133310716248403043358773541737483308748047568353020027582958484033366430263059685087891277932128640506826936283914615630648497727077900294984327507853948819205676407811640790862119240237364493030961763416886271655857304183124207758613951642351105986657830959158199246906657286878006540322758394436897929527999985086645993411431197564063948806893415472547929555307075949588935096970330929920761566015155863683777371294600120744162598571672531034253633618905973601318104544204065720985587685845231709870968553716755255246306107630286273713067832302861048855230508401230700034752992448716057960865851568373931446690094935354084601895406703190055522865000234826274083929070770617258565791793466581510764152550447151326801222877982698081534770937853782529312678180715472641263279848909426540507848259742986244798347472242590132058486543024457225631042461971343381014276329136916772879918079987329911702508244826839757611021871130908255707321324290188513236465234799089172620974522460444059635394464989047998596777549545524054828996261898300620207490093236357858635703385804795064728533100583891882629168928102216693469296073893516994903556074627929460552934182438483629071293826811677004208120535239512691045886091802351487543863328469393202630465957587385329499779998317938105223247941362929570428897461345245106351595146412221476286492416550472141671514737560611730981077477661693896415411966898059095162944163976240095242615282923455503605761074386326764194161104832330316348861801647943312367150073286987938074859791021485252912091136770099099537076807827798616192791653906069392249668643182285607574398862284648557943180715587672064610220330924892501165564713216015567420350879639845256645561855230479776270476790031528059437713738475127144918970270065024658793880274573329618024242994866584718792612381867041764580923071453597958354676211679256124805525979050185137888174135022748258922760013295112944469643237481131887915501095696047485639727172258430030972846121728779367597692209802277123357340897131833824090699480909138577163786553548204382715394226456652005696556759057482821222303669868233613223606203453164318461395292896055681228644524709177779574948752549331114956099417825859570842510879290188734990083216552065309825338763801729886652294959729477699742039961695567866289698551080581151146550854991199659213428754604858088883230992189595635302065491909669513395347281516463451750434041837100011168028169673220150585951518543352900119420872821476504826746761962553103531738680208757212209721440972300061021371426415035308121705312203419063990492174641582985889850351496268881065236969465035048851902913221219780063275616300168843201778029744337068520698582600223765740089399068631814644124217001682259569402316676275104745233161423636025790918021166747172908959246499111293827091771476393721188618090296185651677748765627470725151804278698512160761646793347420924513196570546028977286621525922340145407290829934644349802851709067549032111235762189563421296876236825113864185059941965755139024177698281114601347566664805515074583582074235782323813657577647573398021206321415588593926486098860348574870512513257225186570068609368283010775679495385976814238300433061294721480572592021197052310571791337902427069193301293703713396648574507954012923231451563900010571968937280038537070633001695459361669109438402016363897912040247874905821992992570075442219267802249082841142266316396579212822020619877581734158515859890609170830224645041801067291151131656220699675026062524180674011287764998816718041257362046718231134184450021704354346552731526954146627774524898808943424811771858796903462309934475886054435128255126946833173139753119135594453605884617524286925437676091579907536831777151963736654627347430381307452963100097288690203183881108684725467004611076751083700104200464050870714212814048532994220711170756300133641244791878977064374511644118592027598477437481443908519390144236436096911962178586189944808042376523962493216162340143838047072559233221755976400131937486720155884020889082147242341310691531831158560515475855656949639596475166921431315841602624649133650748670030125468410596397775861379222953862587396951783394847189727059520180203277907976386646823337407990367780911849851776337751682323977844811250895763211376908253633436612783133450741930236535402997946270903867277521138082880076872193506372132707820561308216645510161759949770989423919651391015567847155221015049406299081244973477526271413728146383112533475601139817172104530897475937691730347550568715728266551122016416012022354030835840154811602329016092177396773276459391663621063243829066004556863860655095338522694341351040259152237827243439866166491600004434607904470252565972713400412817490322974170113470604641521445844953204699731825801380565630635610070935409183963907923128298960998624293387436365480998093054560445031453505471295697246204494788552520018976517162594824991534587756415202057595691274396747098894864194121047297506378672157151960039207646131212710394987481493138282906072263405349872984723310193904064260554891122961276126494761009806252022384699874436298490405404330953174030187758038299852414751927056422424460555744710365032192518559334107005348711855789975204952172022780522742495193990517598884611424791664678574103376926636676906483737051083751767267221234009377743897895387002174877272021585462931512217603564245401724695517071641732377928522247793084725488021930203234812686911617559877437166069839336983232481967288018076137818370430245168497434767558948768553565938119914910625692077555396049481301240569162299155848600151608119870060710199753340657136626275785347546139714395918830311502003759315080704935794200256812890640624556536504913178060139803355084351152831474337258397676400549504529935202905741036453046775671392250482845958024320241622843530908209366210435240140253257173019889934903744471104815911823664595119418283707013667560995047958842186561042068945257898051580948552490036538672008839148122052132861908241320963162227618321493403970028755734835249134933070555804054262019856223171408154392741523905390609841297959286162012667634458714936080029136118320139206041791061390610492281577180520251738386013816838497938399314511775837559844539640379709556981911284729667788609503854126297062068747569508773031565286630494824987366487083438168992955101378878797728472038589218728502006169720389283504863674744426861660897472207960348923306428194717614622630321836367763564387592445318543084916127377056093271271328862015188592321764367068873243177663365768964492769478070254443456583165301673476939480417686651000237012381439859408075339212758474184352364954085382770037720706471437017990652436267642474842530779666933183529359142073371694010071353429142291024966471850386760372959822230906389619138563114474703857249814732536323899095271309943666344077110847774348979166831183987606494926090112943889699612836212820257045342581985968323449292651301266013208095762272160257215682547262616493290156880985449684481399815191690509615698968531225837235297701999376031516630121586501969064525767791065921773580857158831838746099116420481806766514562579702917722300625026529610979907062785480518289656726367446353873201659542475791942420291275449328379264269922914947522472063150023473856390549537663054053732304460645817042804265240107356149877386605562736385111036377962606675615600504901306375942839371752629992889716769418980328562812832670005947745519762688334751022473694169378531202054046453433217131850966000488397430670574953394091193669307867729142701846728181748874892146960760130307555699759149011327854157421696246384148601307035684940265828049539994898648611022135773001470052503770554981625626968102909614782445851454022474472959419691455467235491987566133609980181055798629370656597276280326833137599033699394963916911796433439220660235699212194370191303801876106575558267898549249774164522349915736022677841628885411769399574371031459772437416258332713778990374642551853880614884079086154341049798178170076518942536050704913660619269669197440635884830512340535399802278568376802616149989296133355836149139054845869404949618644935588962422011420679921876827444363577417472133522934463912091604988124697309469674792853329126779081635509297654295370787570849932491882739524204747994147208643819554318534889143865336040056791891368640739717534876827970465756509132218568886638029211200609227681005716541821335436113974213537859716023499393685176362049204227888079040303931825355615193821620969583575326315077856738544492260473528552456016449136461458815627282608584956681003924793928201830873157291640726570649033878098610303689846485020365181342689550972261402202314823393597454155321157109729361217020461302371129341980271036592724677702201306955438210567354579033604923204155466896417375198637741585180976724656870163026934233531448473868586445351165566994338865202134223310611514607307280126746364060780475212985462909344986687938431926161880170169123764265276602054693814079427869786865791866335849529546121388095467943382161615922649815019729948321150099815655304450414322864380600944437062557016336563158167795793540889390933073208032244738917051084779753349016082432808087777015430502828781110629879476954304392552602986232874641556250767499215789006529357450107832652474371362456077783178043338687064306074548804806249496532906822711964869158593932568525124163940148445792915993906511436287184501815494246992448656457240915966528809735987354317601483490270412345172376991159520239430470572626600826808724814959360259788757830907586555725176483952313433283984033804362180724523948418510415453424707856979268053787187410949522635429974456195759514756774579226582875628813314283268723648540025017700662016812464527874905306013980264231512105637490997871536518578510458106175378649438643417004493429161987637009713781633810551150641631212673694913302737500362954750482089842854727264820996364111219200584440776003157855213616957051763780373223270849407658806631205880554779701176877618028092518809565296780997765669540004980947267131137047214572016314627498077680722098191138016061131900568054957145250592897920559618849099180377365441340560182727732195564589509495786615735375055968881743551979041510147199176023066198360256202906378201888535751382541545978390370186465912675803684880400993148390477637633471049403130878670942409662990490060811604902989553621185049699386308328937722717031381358456615667397460705821207054465661525866891971938869581634944274294972437219987091894583049985841869885960999623547216032778295384422095356528757665943930666744882301695492302536275454674882689890190708846984130716353638192747153602597540680393946412012891792600869478371715000863733324235161108011234158754484309323498659288271775429896093425039003908122559811070617404569194705159878840948894790076716366665797056840587667413832674640855926555770812597572195301966724835377509323154694322210098016743136749416169169428568080879144114227788988503035097883736742691466758043775396607430847217622478306859443654960206582410790719635547578031010350299036119169507414537284792109573105245168996690445268559186929211425402291497603220815362090730195196307814941665942709144507879990058733065435344672682343797397235690844498471339962365126759155815514541657198070226050487369009470750519066473941573309767582224691526248216026732764135600761369697742584355237326671660368139197103095801936736209896538951663090827907618226781882029283244685534788204897063930806199333102354075003881311249245286954043037139890324221094245147004151499358505719076094080658234276226319004547163771428568173045663560108444347927950850175507780461504565005280527112924296176265939179126842931534610596214793699861314480885047764649891563848999882469937462642423087844809520661718194588426290853108173444021802013864924466534802936465806301673784200478115184030419983786577457767882583793411651625312299679376763916788913535920812898698207136476519006169038845285634406595762715693372304256366408301411281585253106477294762702200218249135495531867858023302949630394074254709022907047155894313183705382665280244745121735070617805606835564657375814014128646381782695211842501294910499437375034938664711278312318188783058196564392294795609981142684028218137352251850174728638853603880516137595220026910285395145868565252301725405007367444682870935487657478755532986741894488296296517364608832830365199483237580655389497361765578404036946881728202599968164447093961237416068327799293642883620386629643777591260686122140633086745534118683331612828128867508031234842742211835359849347371229479762990490892852543134514664448937306852732701259782768789604063295953447290625579470678668959013758771737648388177778729438291375151523367104798324386392049152225798288957664074971223299078649084410835311314478476141799437068581610540268468766383482175186705841235666503077010415272934110106227777762055507577531087538220123083430405560833769047166814301021674214511307965675579737953329478306879270655280389555694729560435991185061633906206026564423828617527932307453202499376587480782812469395508285493913371483978927852449734544355549542205696078743469865913226574587865627407977287857007913659501346940377347819425449709636095443559978908586703689282974375548356178246643884693990819024453875187513729722935086759081529622623270869247599559687626152460172166167737588004101069368422358462694836655234133199247285297563885775988589812249366759795858874505429999847678088251876831756874491774261060215916530935106304798777516127664563954505102399215231907012999732345543153897707248948701589765128903415275618967868485049681616926724149120408065662756595119151281668423273721162793805925680943323901340208720381130852832263702140256270135990013091603346300599020980067276994307273194563410189652362912243485589357617498207633430594592436897666300111429318539782515995798801516445212508997764487718003610949839342121033000148951999616537653865437308956650030254427390749651927000279698110748338911807149678346651650039596743774398636180862182561122059585462559839123237897019602428313207897161973491170085121458210740527644541017590803813361230935215606199284470791919866118079974565654101673585892577594066168158500884843653428009675809322891722119895755993877252935853890864030618923396411632432544709230883221939734305398456539915429124354884440822146378050269658665779263416336447186563902671330644493650329206068618745268990127515055063232223111578229230671918683648094010033314039629418573268560571503076657320548313439235091104990645786091425837858903504333435659187996883755486062201898222794546805207064148715249248158322437221810276266894309563619603724735829093528374195433029722888259814872102946207390024058190029748803125012536643675170808260599078751270016910676557424238458429702388669085657459615856542510007985079092173977789696066498618735290117365621644068299362320400101353883369989329320148881313363691856949108696421005602224660178684276233551018750995309675248504174043088203134463058302339711454064161293968726569086297217410166885620555794066898401858838808713181995686087224955729646825645873161374305293199811399969063822190811688064913860509387852874574883213511914334489452097955939674626144306530987445199171060562533311536433523657609906332556132998919796637213221168214470269533562088282720839849566699390864106604427175490259388269479247807173479714978103279529686077926450681205140364516568608840545355403935108029974023707515297100861282731508540685695863971624392126214751579151207615107265305013900144268972379398489553587662720978735544743573344350003691759061075090925128435326519678003139919398967443585413564669771584704492861468452804913447851475404987564999109793772330944828960612390366431754154465269795413689989972398043418778199409824631623696746660728075312059869619005319409848847882186859774594559625420330740782354119361471263678890472629205396964906594183985601165192615037919172873578721112317601722974927795849608767096795131575347299195656878841210608973372492616254497884688678273890751578244739617591104479514892536997867175892071549793781724683469486286017955282521638419777848424423527435010152806321158577435865460297483082503474052337496156480328332406150799107617325741041089766359725745914318824070262913863005950553899364988735790549107516061108558729259837562691276799057287338620313331994271317722227130187341339370901686698673826499414151040615480920610910387407547890887983953986822289175882860620281947031913865447685216375019621565935875461979154956306573644817943290378566800776496465530589214216991682868091719705987218413502851452140391771845142464764212648071693952005206014295290060097663002626769472771012100397826116118968413887937203711074697662166224854191990990837034506827117436203597013974057579241054995783962018681706514361937239091927308141002401790664221264265410846239269112335208158257793119231985049255920195719771082369063850314891811881380484954602676002528683195964688766416410881995812232614005630323378532638745639806099545577170598737719558018270936646872802572482373319068682427235988593614544673717774359843867173886855567918537238459985462900476460115475457688993899518588905978646301630794623663346169320866276002636786756207870171393722912868123075805569752388246305227745004111475445404130610209353727774688611995693042414680429692502784813349650090900902764431087631276990551594576567868036453259299598752265925107353798098367603185731247039044641334181994540180147542673200067810680096709662541169372585184611886561444351142970770313076862316249791559596636735527538644739569933127632740811087684050798563373281011203550123910593037983036282907713111455635748475901303007779168969052969717295242340374844605217882848878530032908852562012634910693282586960215634275836624414202625638408060187175175969377603918096388026488676465810578461512942631499446235892116316762558860942096055534120683439665589515055147232314275806626390638890896735230024456876733450114408404644246231588672538235201806794274959034369535147770120539529964755716047909132631769133171077617146433208041247641333783737556887850465867021239966643690515815017527358085046066138689086927283144098276753550597304381163300634718910296947414386209022569359309307329707775721583544215220118206022250299185588803935140336623050688746279824895236998411184324184844344633819957130087428333908727964065794599504853971201270406662651188926467127528009950672778390816574917072644380974299751689766988870381679049506187037037345470225760536171078098878418080498075992502789198416527357796700882317877235010184861981115322899556093015771636387775079874742510267204751496294292398966027173511609540723321649840970682206281805534174381679052032686553517207227374962961888419959954840815998155738955245711342469409125328296466551054057034236036353082178990929000815770137753345026539333698172748609400192377296527428027144228502516728768567083203296220469709256492478604039812141403123271459178521792514877921045069721131650873390667032756245981432385955949268862422991888649460726328320842122403043750830984713005694205432373077308132530145590742778805314060291821586848897473240993165183461804230579272285219634552822286004281211588199000948832265625786573829235750174636536774078672428974479223779736792955424030674550760816872750129173218040452097328014382984685396728925734932769619194006989572334923713012950381106630099271189160390066150343059956590161118691209902041523011210863730828221175926701710764047762928879190924417108840697469650013920940223775324279286906901770183281076245271053974829044217644592809529315255138956124856691921920869151234574893382727410539051750743100288963252181458210445021757108028939989778616603708424344982658870327544128412228702765853968832842315292677142333243193731411609668892790994883514823321818110849160835386724879509517320324536621074537878882600769034315762887743796935887222816630230893031521036011920610450280874724308368829689518127089071224343183174238029341654004167122844329519638586712032170909012581016257128017255900057755540889090455082543114927122009821209335510961043251268486394659800018357256102594432015640767413688049152839614497883275433296041262255740604062665683924254662290967283477205512310584871079410994604589958190832743747008598969382120329841814355589813171747759100475863844219447012699233072814720842108506676370080376833082796180502933521916686845096754741741289647897484353392612222658945038922128745330369262295942949791126489620124156553876954058945127039868462235465851463944381621156695470935975784374443297359345448480887272248543280131218169176724647267881096308973295257930134141416788008030033018715077011614585238275115241633114444133692404678718898680478771460240965171057032963861231178969743787844401284147058088080317064528278562218342136528596050681546096694008237535638016049627832953883948356456380191528318856175554376149945788260226890713691736699992612200749340103205606619545065566240596964980600664134106272851720209067333609943309341087101634847453016158522149811885261699395714570274185385590829532218744114117068558263074293207263683244120167666166261786613221582794972962107892618567080989348128984308915328474415944840965511748165708117436710313822081558661429626730841864556366084861244442316000962128080984363982609973298892389991521429390935076765095542659381110545916805377970526013574015219302503218712552803059878148975646902903485995974426863424986444328464659540232349735908540699667948135045361023758278167720551073531426058556187985309063213197039603615448800118402769813771893584812807500451285605042027776489035824417967361862078910339482326648566839908196019522178724317082178330507944823472219284527522908156768699474783856720040110607711537223508764359823870939184862649236349900685740710836463764417171120659692207483634515053616064529332795165311182068801391573223899228556015536535718185185288646239532509918226484811586728488087662495345818787813223590698846173815693223153028086610529846138286409124983772639292821951397731133295068371257164279028456218640327558950451139280484053070095776135834189343264409921572851339796517455758289924660074100484555445114534173087382523608746226792816634025191949103527388534116995812200561561987575404434747328768043808080305292050927700367798971290852163555074164586547966701148929398947698239613100685590604094402943955907695317333636660007312348594930542984369505412643392596444037575709918985276992541912561396256576096612895520582931503817769760770801015826227579457691839519356815079079569160454012179134030844522899785653871149662053080359944432855765361294148549275369243753646003191544434723963895904837707036730546711119372242234960222931581203595559230950198400648509510838026567057678243330233652218148752252307315093769519773086713369731822120578173558241463649115285020456131025283831722211937756400058974160888811303320914741975868403412810384874625570627639237317036213091623936288834373310567871755558390161692340307160114910212642675076100119542160789981296272438282138348042600694631463156198377896498173196922699152596607183433551964747810626953444092784399934618039648473381581600822598523103025227990554371677361080906488334626739716194973336876489782084442383140741872894662992699408633135946436813272160741511729217589329186399573437509279852463556576361890727863549390927029174066923558573227821869903598966022085100433195771212116964808652441863215079773363515368579567392820672708609069529397803057196705728752391985617038266425803870356295873098878812145984939894550469921613606661068288414974860753031471119871275174367191929093532138986186488701197736178943427371049364129561986889215090468868135949754603224124859077300330202460539105183991991145055326398109774734770891104583740649335462012462410417472126682474165687762699491627818675256460545004858742145983609950358906318890954342631289061488242563039479029427067374121375148595631007833261359297999337733717559260347427611761649074203134455745042883499324379703394774260352160971075489523932998467612995202998591896929013884789620024432843327590524413035888564149094403262770212338871151855899234799938338231863693281968137829468305856719840014387389591019000256864431078810051570303956819903930091085982311917598688427369724004706090577561553761635361938210112671297522476332192981476188648588954767450066481619745046742832432510156560051214852084071098831736898162190663567896555990037858983977343956137349586420234633800770501872607281757913182891173588623400581260449849089520647312240605214748696292077301787908925690411398271331112410249365807767737710702145411217585379331023260231993622963344331972035835096207277134714927550567725056497795710324252221686520206812557123956537151607283948709323837307995735144257844591332124262872550466819547538213343273862647976389338321241420835978809856041101301635036562900288517328425879481691866372115501407836058272545836834902306784598716565983290962145995684418660090465377897586990781810507472648319795641402594919239149181620890241837236166641550721957595492182377327096554875754148052512997942088397590650490426853417187898049278472026146514470941154821126539029974283190198418264231737044809557090231143689007898304252512965685662654140317921496413697915958380494958660329819596736985715857281842345645689732739647416153400907036631226759141381735232471832973235407538358854669864826393149069844317411818027432059890650159241556694461858353997513197630602417441992868946039758313200846708749300711748208539273689504656199214759508497385540320579604962506551975163051835883806312955772496416820223846669662194774643711019132160041115805054153265636672972052282094970563266774922923672036544393073624009105023216091799510667565286185877944649082164415941764947784582512058346878536105726519213052259295475779061574679381299443343607315072379645662738633470258557671722053704886984533394921668050782324909304765186500327979553715535709724023450009938124428512757429945420425464077191914810352725311624748481630078130317633019529694440995138298726973158668923163164784171523911831836609015150529744580254921786061219392420408550566540779662072276571013268654941586066618536916408023058525252027353077801237109767841278483567225303856979609015007154624962138422336072747122353626838896230799034414011085062439908777079189564116950450312738203901553968632442449138973019300545758401427787660714100909035168595245900353449329649027445168928651406049181073294615489095424898746318888344654157896462185240988829819221586054492319649600616717941942629603794119465434201485392827043724749714803270998634894836276130901523095210049627377935763632938746524127464323540963640025331428982137976102796416164388447975563058552400822828373803335206486836571530031848953082351641812754335598763144954164872329117267877393746200802387028373197293914221923347756140307164670172491144174451646621629751559282299990337278620408958694822403985132366248791391884540478128335923267598230118660649659373137763054572108828151266085074087737235774814300684298322069573254178816879808385446963400828828988536454961870361195269994670154038557681661983511646946751279281966486176444438303587687227929619377739743360530737658268302973181993491760357824714636180746855511785414397582281489757201182789305929794866586904597752232039252494986680621703967625653582370994581412728149915555294064797194847843492517868582389945985381987764143569685326765133040766858039780951684352755111751428594398000604285739330905063889181389736736225970916042666371101086097630606018945789879416862574421856341739681288956788870086391976049106041047512441447989408530742341391381582146019966595542485022635326042705593433628770637843484238003310501394365865248580406793880671653614938241340639758833143412896852374433414855196279593185820676181864076714444789866474266756844744273725219226933455166851400270496329307769728748454374880889079930065866138788718973313123509523942900961034964529598836293875259781114714871877353324767887501219884293754067469426946605207412553024968481719544411125376976381064221563403328529953156768447718669909030568504353949246694162220048124552549778761717453076900710779931323968558598665005091413529135689779339966780255960978594817637229892672292330328093885288406943000399422399695818201240820977999811523458219678944747026067970034909816267457988887936995968493285308167268332033160818500392162292395827552419998830836043949334725631695211385578472256892823702931432574508824012771725400765535700876842576725595461084020381334262452356687110941353333974959425985273284194689585652128661622467576222884317490778350432463889855653189809291725549089069251088651597267136152300447955393299468395736186571307414592499767729707575725121725578145649777930991799210697414661263699932148045784016432365732748970591717895152130535800832787844609979667242561897143870992662816583053709210983308697993454634127356543603447728434572043924331997689760140997249975055446964271494248265105382462791066426281297963400434926592645945013379526878037535133111891569198174518909571363576205507364309115060773834258031869340346181006298065955833456857036286557411436263758951516172243660827721480920075264081402396226333279983942040157363679867393227863049614502728857000570178474134803142786457438540577780925031019454387575451952254359143889007570956585038262219829948792403670943209265808703671157176985907706930825645890690518912607867089691892031402891912255490194741017913077624965098406102361267641804698835519056914111123616098529170179450812692095309462944879554604549922264741075588471347821207275801449415882227148762341636832319698940949436869508997377959583505836369306565555196430198170919346747836832416038210426510982962532884560039278388374246950417321946313298571295613856865079391438249890384482119633748521286553873450099613684133898058944282179957007657526639480434834643918310809012872042814656820705449806328048267410192154856417040126736003227272230246952176256698525623004385488441926394425573841777837892753576356540620339593576969399086432371810461385827563555869473132047406346924827925513211005369672116259835750844964946884829113459848446462467157539178280176200523099017241967747410308004085098200840420449971299800502767030525534183646184436630271796242789857819509545888936353029195918955265614595903245792440964328773703695986726674189517178076599785410068833023366890328093067883946181370122995831096421634640397243520128846106470401547515465514916514287361857920735010382773323183770274769599849048676700939077079584694788347648990048715932530367736603381589055771644536414859179751304807099319750060353208753907501286000499845757247410279317639871318059828098931469556131698653243928467778305120418788303457466918445363240108569327323082952281836002611173071942173901670341707047816659199734173647787541753932005175235701572201371114461038049989061988898879883814553761838719245351322487331467267691736832304867480558382626305738193748332232661984851434564275181299189535601612467825291044266158292149021920421205562148840983621173207733480401276138956016694728460069634702624851209748864084278743340236543606673753994221818512630903718087877999084032807597019533679990661604589623487516967138495562838788372440327753116822017890302823915887010631015331244648546852008731281033917444267861105756166261045327120412371800232761885876428917363912377671608587335414552199201828287165552598553498689578761178209331354293582610643420858738637081517824736431139295342377096997518981497145341464924575416637063709664954046956177342485757161910483048470103398717851082244458616200629555093773011478067987102227406426954746082242709079855168612913320224225265103623830940071169619000698845808034485112302379948373521680837026619647713895286775199470218253810291702099416528774287339367559119069714277080254117015227184080199688647962280121344876390826911727747826750387655674583042848974889978500574877590186976391868394804213615403262363485599724220730130687629654031274266153129389317873220207724557640563745167408090846706107355068203216664951248653963234847394150327438495471831799281547061068924665375921058894173240807807835548486486066261290620653446748028810482640188579590328566979839923664592078822129342595595576884844923592304245491172842380257853723544036129694096296972796268159786773707076924883068249187831777709359351478701325436370341164657070864986546656637232362152184844627768364233241594695671227160136957717220253590137978610363822458874255441553222816662473479649342308126283336293083690615030367057819730667748297720504726994519578822373423772387914040835143204683411201059203943405128199779469918216700157152340058148537227000455441055690530093513053418386166244888502058023163508936854533494970838960186376980457187930003247080369101876485724355784040196072249432698196176548269386963158743291080060759755234059214294658025729556579748295217953986050005329156723613510223823934105986125069322747579438016280343657755706312402348785820000856909246512746538887514676996906034687059605531185197968818602077691838667319578713615810393462365560110349444441165190934920746634252374321769319379609855769219055580816394167407661890986847763089574747706862333879396122479265947228770998176412331679412887051255934101576646936135199574483307101714315276965149028699097804032907300070969930631110407286876122428246505091537372850666889273457658175617940133372675889820183298260266195764917594515463515597067766597695933117439373447854613943705774676928737942991020339495583506738309721032406814355650542235255534633103571129830509328765763470061985838319783155486896866545381361685294813929942182801252327365518141418833017378332781268946892387425049152571720325298108414968283996498967451592774380330038563520415836074895326136655662716236697166192594687220584147159990885393166285594035318404297132676683997228011085085527951079044356374532207245336447098815570837161264442620619090034501727655668548877027600288493356933786414475570482301256343637508627555823396089309841556823994691733830672966591646342073036064013208177513414826653148710985894451425364960987884143528402538337515519638651867924050038647701906159846231971161354786367060317652715319104665615941874936173346521873589551482784957510720662347535880569918439315772867414951138091080797752971998489973450349505718359113134789286290192396889525732699859201103842746796790261742541449267292619031017149960674824417938495565618882005051929401233745703365228197227567190859972053979843613299972155649795729072990233224114235454719459657376401052184865740741506714257923155592905610234963716390167382514290205181541493678332571776460009541236378601310109825770233249245025006345625694718941326851797361588032243438680885497131988151205726450143395381290848557992114991956883856017361283007100416854118629171301136502361917813270673436174521715034390332897338746506583218207808663991668845754531752350073698612995068471764761228162879472887458966912697296477061586046332919065722681067743091671881407086446911219468237647407546577740360045929600225907903473719004524608334089554611041788710512907624613964827066013121050113549698391281644481549703244363989035727672119327321932068952078890481227047733139143581143447032262261977050983721426223408888569118407821497278003622780196402218443716002252071166822196337535445487939735113009449460477249643198668325515317597977773011452282301660717312593846493033660343377536932702449502783390713300882621063113144501837238377629150617003891702754349161349377836626330457283557717191952793731728125570704340589033417618873910336106936643451075679395348808323230065059530886887432721953036174794398937364475627107573085939314183771456721166905194211243796417897369053907294441275169608901420597497204626853882908701505198929529351593838736761996380876792895468411653745365624274728712210326293755219596347394233271117277703559443064305808727975990537826226229743532853421425411430690893322575797269579155975099898077771668636833317182501522536769047538330467325383677348082967809495251458891734716737025294699484795531514394412497539015842594759562529401391788962626931471501095201022194867240767708415621721582429937701940646907987363548200320665914562858205402289345261510165958700567774007789298630132836047643861267493874535984944503174379847432521294977171993014641189401456780069416810407892995826396240176566411677671031900777094927705917924857256343423084922100612487030870564072889934917927956680729207502597159472663552790457763069748174581153022918142111777321967955473485453731924164385010545915290648924898555329605970843011085168108116949561597075269950011378413957703148377587717189445273722777189376290872741284465326646698935535672239008088588649862469286638584241511159462876092028694449053151536401299441500351234275837198366219079388413192394520624781942497553315739332609462258686085598566103549879474383649812484398178520236753517081760631623381597161489432763094494355080662106695924306057143417345822824439432923989010568187395729009558715775027944379793990739742411082193409528446427106918936737659322481290628713886351699907174366023265309682780456498304885453023621782099309495136671817310958700810776975034538923479267244726535369829037985670273241087582605739387150402047315032461906364075699630408671893664822093659407110712008797254309721097497824605959792826453589265482960125452163514549556416116533597262869606178349221321765770585126220321938774208247471100005247073945795947504383216668916282795413416621971490023145635983162206639996463884183620701983933718332051854077493679716689441626832120512203934448903618010050811082714314836834695380744710576759921688101917153402143031060946249633347963671466237051700585941668784972037468405688331176386759749086399665946635837871315730611745300639966810414564392060148205817838111768751668026069550906537917164635873894010428497624292351674004867861003693875847828693537777527610601420774441072882929902299682530653140066392435678986848775727706712277832492802712722609898123774304449439752835272328220789080832046750433354205403240670755381352887300287615120193022727773631579468618755078385280023911571998724829337561002842408329804208597289630672086222859351901517013390604854117461408450912882219252119889283996824167614101767952526551505782062610939940627918577675053007989120363264540134106313259143884698986070044796367253081118044402860697401691938135442660578061379823297491967463286617477826698079017356956328451651756688031565168138090863134629739951627672984726672139414580306294189345077293620514784428037175188560640089182415309235482119340846856647668164604659746346617421576712168843817050205992654037120340686642804480062302281048803255140452005728137302184009081716931814526381856335118044127988072333937180890567195902070174539833617132916638529119668931857206467715702795275013207049387216762964456414995350113650197834937463474073198460485888503074581425132938089025633352391500475457584097518337069004473063259505792723507021483210825192413355629673726907983393574676172339482897876704448650367445586641293154308991807018479578594092611768797003384271166456569204397231000483517883978239438309473878876510694639181845502354192458273971920246824967864526371825174461074289168904713735000231073518722807606117420406663287246706652324314897150810241131900458727479249995424588865768744491555180519321709750611522358301658648828433431210127239551846110373591485852089444711976115212275016102635903389367132012837726546631645448092100448964106991753492999677606453341109436097088477096105747362380731186834709210305105787531320953607705765221682630963221380501001916668491617056636386569296890801866468343359902632953612769515545395520028241984787440800226201071942796119315630576524144638139950850453027363371225361743089020960110888641038211947546156961045007270741965335657908997243352250117622509772288060462000761654587695741126328102678728315258235832245133182128149002815643505587475419516055410942421795553289438078142849046217116967889319377974954973066727945464545604388534288047007246676388976655906304955903565103025171059435454038627586579157208585071652956240954778695201787748692189629281109437688367551860733850545338496623064031052710087652493554526740389073746609282802637469302065299319517480201189649512863528683025676304559057741702840646399654848659503570619342968512626349052169467725679131294222467992489926131175817749339311059596845205500784498534993153277043197376872433492409326360117849601173266299153954323146023068355607549960073100675504571184184897714490584714166068570775867183068376967989542531674532933208095012698081900242457352743402164510683252907063927497105002897099911374145262836744508328894692156683639206810502859203810879072660552647470791526848597658421229802960103296405312950777722555156030233123174719441669530822475824111653650818197961036801846241168651692558310391575935396223667198637116517897961321635133617801312081017857589394151541032404849491965772439160088573950001094917385672854640063365735726538469977445048692916293063788655329591468467488264735563755559102896738986778522301706681214929633923378488788413668978483961117727405976291707773549905308993134033390738569199059559476615638494478909993024364325857159704423002811519787475315925396474883721374457494855519301422824948387082259579960496343693109184310159470651995722051973385344036978854047786497406305410743138328843469989983021543719023973300673167458861577586490633952308956033546839585846246365953970562596456458675174806647431451669899659766707403524984428507677818740789621895120578314563402759707045392741919350769329835555257484183429005842408260972885010443580817315157374363989298367134457025817968344821550405969861418933740647222225956230597471105109916964606352694771125879373451851891149219395177166207784550214163841340019706153411277810775275291096420190646171719690579780565084396971680169181413656883304846099415903427018653094262788159599311225906332311561344454199922783088549002610450018937902385400080088631868246811838885591745197026824766094713274013918005444789992154085676722872064803132706389365808572626179397079005294335232345353556483709631431891908778659862510623414541865738871972583856973148128348727294091336982025949988825688530583656421119491267706600875138079412207707503456505161341707548471020688419863168535528280520555122255220953684336978320698390359568225800370879369049177381999563925310841541822154783022848032751547312100237115541281681778118601597708649264629017909112241752566104995577185734833995730538389168558956838208179871314197310734431384539880491114930053225981830747808603631566521849628632658854189829912535278081449752576380222474150668169509638584279143730009253335274228430562338645462993812766061651150093057356416194696074539289577586318397306066997906053525960971972088030882917975025636940414585363420651586179156642719370078499205282998233782263918914792888340374793402369005822691904494385968426574173868772799437240083763710032977463342150159469438681045198840772028598765841804841011803759124604764536665398463758734364062673888792044384922000465155431808428081380444419624152396225927123170129146268949223296669741305470995187048474126571699094261830754299729274459916246711805398944080394463073414919337478041723995704503898450866327182049055044904132546319269283438955317243942226874876478235119298006685535447216067422786869154378170250438562884205055249532404765779009258661645499920149153334707395561909002785611573936983729946926753163330540594061097828656465102171612299451718224605453899940332360477320835052752452371811639881351450906595391351802976379842740701872723470352602619952574111367672819581544280200870259064380872958823966869329971263692121998799322996914700333121436855544150178079632372814850202266399540969644506207012156105128782251189364285589470427805112408562964343081753372873726531354905056444368475444735381938839535102554095816153724835295957110106947992911752366879918540538088984022769503223912544151264927283389476583490842477089094204993112313478502624623474185310563220347068424985548804874305515311384761191457498701924767829031726112401703892441818786621989971313877065956354070600988880271107900010190202656197679256065607050021648480010369263325366293318543966715046318698020053629268939330132948005939787237642109350570457360873006354199617933222133482694895399109305117994296249765927531512529858485657725692563535836612672522074422228166045638307777257364073112486626024792210340731639290093284348915080477805413374213897649175306484767819012562894138628954326044995739818631805024560069230202512177688886549803864778984335935008393575934759316463395373410549457863638454567102999932938508646793001290426369296571946707354828918956095773975089533151737507979143730717794760058129727885456779184604872220869389787316265126956308148528552283179529051353785707460996113355158322988505350544750324522776411214661503637175312017965273718207235111696215503815992970296735747605695882835229214258429912841886263227147278574011081996498118712543658221634881351462899877500980255431424317900987444460608330615907285960724927979028625058998078608413423821053697299198034688191525641370244902099285219532295134436500068902909886817593771518978440588145956662343626377382471200632977270563484716565648784905317025000609123927521255508357955594588875174813427080739501268279893227627044715074308219412892636442998763958554787468405177875337356267810776181143291730261910198518350176569533047854628689958654458543066260565481398905550346082089591170170686137373187462533990749196830330818391310377228869083511881524474025046810983608122462522015971064958323772062626896460570538089963563337340772594386991932838921404705547689461134884975343078508317760346846730952835757320479067305484396552663842531793154279060596354756224900597921621818331923876169757182284386791081091769456552824222986802449476839028984131100008349746524438377043226313635275613302308481615142406363468098422102519699373755441937656685721902936196241594982826356222394899082367135246476573284791993297086819008529156185317984847363078044542554530394131683015777942012868689870876951445930816322037238007342514508302642478459558990653319599896970753159802243677522627341506436487306444636092539055937892136747439584822095567556786430702739195536506963202719087198155950212439938491812639982407731270208756841645085346277357128402175348727037109336821437644673999327221512482032777875039536774364005889026390862798954972572674272403124659469345660341749202471605544776261599558427978156617683238148703147738392968705047966105574526287774689208297611405626566692141431377154376559377452440244307455908279526390300469102031477621111074148989884389434702285135031839083128671233261402599158692506647025966193010761578116625377584273151980997928906964293128461867737639988337534802978929848567434452655266221716190300912858021387347144442847967205218132942583425686501208707533574556410277646414640635160209138410407208068386437902543938869964951865287998872421686271664257469867505770154943896126679109700613413958832283976483875344989091418337292584968457209694366742355596416496327798470180883235218273830706952580022429996394945349577954981193620787428291384312030410143810125737095114208832868627134361673010942925050745089564118919267765560292027930705134835911654771626003852849727037153376362648343181358372607066786248513219623246488424967902922161957561821779712531342407628544524769765718297827414812292116163173117494823350130959380078963758581068200376895025256574567991810138491690133915520379634401092336252535208141886242219939673504351475170381670859493404071298784035810894690918982771835318965113278283707182669123384174408957920482920159162058620227712534746219072167208322319043840728455117195254473731549427797519303306700590076698846064089361865653256451284117636730807626821462615057892725570260469019306403271979319570370727314773513750250477102021627381545812194864298740042978669350678979578900161557747106091586766214216812979459039765444360311310519958668568310577753443474303524683898534993159051112511741380272409619383673412144456985920795051767079176123078560825677549181678442525644169189893931397658385617120189348164166480689646029073087914019964783939330351165122744614876454476786102876578500861811106100342992838942216990301698190321640764596406581517009206346636247494911939239289280929969644522401339368088514241908966231331479891980810832553889635455414508088787154011920823593653034874376897383000649179878702104871957058316147438105342790093000261994149193354441386524725528429857550573816114090070235721454857906040842563382023289057613188691596039809486159723539991736172982194382775424961100048405229680589915666273415364468904997036562941349265251260387367432605258008494475493510845817211307852497784999923521819531071800479762197482682333934508987632660975243027975030551614414174188578972208446987743210722599854225097289004228260694963762492894391839885822443745689204510090724961835114995843649373525071589275827582609423553091515651102801594367855550243404281066458396940837762392927959566109713894526826847082808001095327403711678107951842159214030157533474677209924365315290513685216709300923575130824707493619738837568753771855380603946020442185193071700754263236475402110996847813318400991005070621236806593951868099319583182953333383273870849591769439747479550250320922350589672235390391936693133833116739957090258657156624346809453041335422050348870813967750801220769803229174520128216543530329563901290304631569500313783853989722031184509264388508264377593309081122054626906491867131285588184394283082753551722972647571089231941389536975350294267959450764616799372720487280718805702582136881586481904853486916109694156347852597706039358469853851909661745161510744658148319277761754638241067236175729626763819584515244012318019568710412505175175962627688941855387024953916514929395135454415694692352014127316380948669573572048804711716197232888321412352224583361454799779321765056443321003401523009157458013754458812703602387898670592863812747829910862698232073573600838834474706304625985581372688020019709648901435923767615988239862074934944436541994076973496597806469043925915091519168683075440805895851532405480069257928029502237324399708899448779929988568852111423579179987330799352851777389681863921973698371158739433780601038852590000281371954349486183933675507731356196175552425539042340425843961937219969122614760707473728301031126610748496256045624313450600456785441740857740292952567467617474300409929829669289763946475309894222402436557467769158501783732956017281645041793912760928111044176126071537527415427467749331165605343289224062195802745642776954368541235312378002869744038231081004574677594088434734203592136968361614062110150204205189199877991041032806164154646492113285415794518008277138071421375363789269302555309351593539924669676844776086409240979181784793356534781958359306588781223751207094954704061124868458325417533706494767040751919170492217157790400746632929840987305270535808971123528347855153296906257377303083616219652085708134920650980087252753268217081464052787756876356571690622879737686731942702109559382814613922939808273425344172256190018405459634674838782663950033644874793748224062365017937513714667948341594516764729279273646905004394348895656012859505066776661252375380721442160617892361768057778135336533559208597861640152370827985077398517987248039134027210617561025727444387929019527733327789081776211938824248477522644494334519460080749553385938440525226654086405689595689202331587627008455121653912895665420888758286975060665662254608971642718914063001557790564704676216896154296319592237569644764108359006589136651714081806629584086651878121543901587725838857453245226770297293537000355516667399699838382988997106333437214463926763586001543928450769933928155578397696287876295981917870809526193477602864822844420734695492019859178225372569180209505406927252746666410504379487627758950135525826038843312057755804151992330072340529717903251443726361421946942416144830834166568223339178346730060881128507546578456466094148484047099994577169738888328807892098677088063279758405456124740266823811323505612043974033323000820102917935463435872420885967697096909083670042788242648224588770904636849707650687915576337663471820806069366740668493913914808431439967281114131620364747559710748296741224634650117739061189956822904349753692345340111326776347604257174634140132062304908827266629390183872422152069986005935680791722055522645771352946671177074274560495324963242706024340159814651762549475476433120840385812939787423884842236380700214137435561250953106192292979340205563676539186973807614992889322953270302314362011365764991692409343353062024183305163248333159108137193871106900578831275031745278718062324732379651693945510087315003182099795296892729744714975489262510526599681719083362211676864808043092701644783944860565751033868280510493022652970700046042326716950118578637786063660574045164172321076225533832351940915963831736702179630361041519403103596451427516311600608281143801710871581650064510387672840794291769812927457427309894224607181171887606830442047729011598097179688501209446808790648841452806785369287546049686564630070005852824073675263096970262174536511555451683676994698729862588429134595506310360751396462699996350550114197506269183170805047719276960890416005094241160325567263563610558538702935810166843805880534137794286780626347892293909219402468417436353530574469851775407161833610683779533478055460610111020914304170198434735571219835693971845779001739139838854735616182175247023435704353324913180287662205524301818254022183017793101032462809440840122800599522972718975116266332567256098117574871704409586832791062603975279713539734071727090821510765746185660362726280364012941900478313683801643729439701366455567845546404918224511850086596303082395580748061125606079270320196521993958635676734489098889772379687832237645515464666730915345990529566056250022878521929993285871325712728691881137070460777456638616172401620375187464699963462644275607732922011608501047918950428680791814418962145974088107644574662978999837031154622436497801746943460520504115810819350384856854508590973407736970014011550945148086637574354536726855451570662136739081657652770696898343638216224572857384577507249782264884589767556203961662050797593797586578299569076407695895639607027509109844233973182962352511160758500447181718090938670356121470162299680070153221881538217673895647152782468607399711091481258534069694979906477237067996472375411856983287499626817167313365105511428617642300346350866682596538517066344782899436613152883575961130068675337289817522486641010105921093546960588174715215900757503944419751335136458570928710466595832726635056609584583092646977706385687087601830584568497087301879335746384106081429112694642336398831946510164477598375807636733634215908633774470090224291329121127559913817289885995106103320488220660869991307300282646949026332858970775981213236321705465695274311799089451871792485617827824505486800952603655604531667857717705498349062087477733336242340084306228902233567532506833171395511189089343675669710453334542808597907461955376979618122654201882017887658139666152966725312910055867486962725606549234831514894166515042547926206442865418059117231895484412179487322831241270071019639375460823861224568480085604326702222769148367985233515260615525764845279306978828356794565263922325950294367957767356556088214345700148479067387645518388467924819587401636075357157229726589137224751391979847287149634821926470340123084364145873001506928678246408536166189977442217619249074171910253287012049313610818023838626219033702087595168961240150023408707591356700522051110393904425569234021498253995435841268369124857985596229684411220905194730216050352746373684159252588010138781351136103615957381882964728952240880030665183248311115910106999902870276319888162623967950157647170466234997037920852809170277981227376264943426089836125079605228747945710208971107725122905724770706616415807529100652071767872425360894376165737532988832911357290188071277433423204167518835214684125986286202963851171921875798365842020713223922026932026513976045635098757884897954286624859595947753884464148197203704428197538398584146924240787027406259116329052130801697135618609780900580617547002438330847339914627255758685570820226293210350535527539393391383447858316502305956910168070653840908176848126882715262266740579533122148467659732405285479804161131226249194892919141137605438724382658101764305675289904055277424747429918166751884456847123238091693563896392911961858363375973214636043667357929506345288325790437061853514843525868927310052143919802288106840018068481311581548532338659325665775984527502632725500215114118069830135199351387999652715192956494904811625262582192637028534112037045236231612379582646697500303892586652036942470878066793550179257775609247663417599152938532923398172370562794437783195797720983770783554951505206038548272515243413660479744469432511393765458014867325675201072839252666508207805109075502211619231726688957077416510885332301936377915113348369157211027733908193131524870682716954155500911141407610541633688092431319819580635278404735529476096760333182662452215833777569146565777233714890968486663031301163730007404376021579657273550717323662396137079594277685484991950321137129983717841990771169275216060554593515744313429512179788912498907430431105157741515673226992330767694936350266614879978129730580419529904080122627907286525838040449087240035040017405862561855484266528766874148226098247507565827034671596752375599289314025908440491004779490958599958299785454311018803248799675257782854106473433256766194121684140608390519761023790755139167670810672980824717073566122003418898478951080791739121645860946710327934465102653270126473858134384478950709812202571547221761464645797442738428181226091633448113091342308227991606695232073262771329427101052024275064322704502430491121618384734951939861360007365661565326155403358239149007729256894036067863373697391890821398413504828787396669198343666539909191120652111687364185060755339863244087165363571581274561475603092410583379043711167724345487524586668884701977804180476744699068392821936079089448732168965752909553172800625508074281530052009735557586352681241742254964008812912254491614797464874197871667646022036895377809984264246623463105238576098641877377842582646967210705188477228184441969336605919156439340944592423398721067069042197654911720882729329798408075533244431215619300074779154606493534122165881289875386356641394524533353964427020592361860460097444912027486261555780433528159925124119630373217128720816595741708777408070836547602422099061672854114390629254181675651550483908764377421851379560714634225275240592115361328483542081540748399428478199967548344423549436931555933492013184091302164311623321531659420553918430104411186767787600886474736591661318490089115302545298817516066486551159579178703032816539750895906673402779017372050682872750764746932760867413359381157303801083384506845136285538829004149330444426134415925458584444368312319438451052420929752947269563020653220579372608986547055820494973583128580221740433648011450073261531588590291193720673699541023371913185632536639433290241268426219293961763328526442232559542656261818672138893662504042169380721808009551968652108636153503473369482649620155994618280413655576638316817351499197416519621313384145174997363812154594095921597055995766354258608254954031799915504934939592275792656447436661739648140255868653808232497999823022558029410459358273809851961552186599884482154965389332979013561663949344734634482236194520704369297608097157289873555242965165131130097917816892251193155498196141786702241975644937739477848447506486770308058200447845332847772550522982086415285038827338223313816257124315668536326950097596946747900706758249184027380400133371251125616336689897918885429818386855154664581791045518355362955509439459964365612317748513315157387525116863233211836557364092341376024064902141295959908281036312657738534182018990181807780888067491769002585525176532484514139030978271200533704201842629728872165552027932850804007522941357528175092468749667514186004975572302460085428260334937573355681421374111538168291949610023348001932374390510011096023096937648688311330086619756620684464305046435564553697871835589110976547453345352277033588259288079213632916065869992509873998572246963556070511213503172796189614798732141345858299265608433438109205131530028375746888334355008842438242065626723007710993493120604976541775672503732101252543344602947126533529789460633758957508925504972768872526234840038428455147581140438929484958663272890283643556170028653041731293764924841326515351703732347242258747358247637379658888982083220901714399158015225245587977512068318863922705918749430663380246699309908453914068474727085656616978471847885514045465260683324614027490120233608932287000370122520582759335696564734028901815336367782612388450364744696656211421332566479119139595309559586380894676202054527357111898119112037828042360330743570024291466525434503672605338490930819809090048433042788226130190791057285086390499508072622275755959321941927657902802658147450325071332577183486881721141667114456962795594002378377815359024877242175336940813451756702983087440403630594246311886317292741291776972153007137755896838520052731256489472186219856661594787658201253715914663099132048374862846489641361539221040318719780812809141041825791341847285247866367638605338682522884626095445906705089723158743628467640616359091146632702805227733287700519944426299309084994865665585581963289107792241939831910636762659993768592046175440526426324878325308277912348384048947492832893361957006815398990790125706807952252468269577783168421842770722034205393417140523479328754440986770004253191923008529132387488536285655912838195773917937939475231075504430669174160622368405389619679394672010252966955777610942827878325737711913111244535126056331746817670551561815985935416967241743388770608472111679049957927535234383097698305050431800236628946726214611020349613098251100101339264208883665171292703051563001532052627275559824364838344256889053579800558967586785958985259471316864190867358772020764510405449818660250244056402617513567952430638879336867579699277398952637193189712348101693905731973071989829991741244777715099245780066995362635603582542416905737017973147022385186557612249018840858225745210844023539141852674763229095189552422144132814099829296349431316783882124557710153410234672872317792492889859060981263686969472845161564959012632684578400161864519406460454047164722888826124159240834007484015088846201347902380141416850749247617290804173793985651810469477677714562303014370018948190367349711272198954677423010401080911963419680513019063463340243337786803668780600295262712074036414606145317709354979932771906026989197059659320370103515581414102439886788045682278159450443450104977083041651878035953467174717851531865423003653288964577782794740876375088163100503889906664683812382790811597504485437795214929415769494638892332112763802235691658520333636496500014512318831487770841374355617933273361319597168882326832845484855283175890360196779606814168168928124440776405299668929179010946421656620854513570713148632466196908272810944957931572437579992789250751153463919609868808958029758044876599961413343891616529400218467944701615332657851493222010249995444276345617746077525601352342859174115170895764878503728397990287523482802896732520525688122231588712028469804480139838178523476859759124954451575628393301914663483654053058962958594754849157531881103111553592259347192086847812361555758555685002481279696959554270210197001527516865040430981060342168652549916512881332473840533446359685143559221249038674869593308294696849895812662018030805050401008011920979485540928294835416173367099153226642644039159140018296846901723949451720963279847261517302898134750215265470918739813072621782898082085004566557355557000768127632054024184751308051052911013675638047995185250057011537867684009748784784179269750353014808637459701500982306442774629522202930021797445223493063775349383767271792793232667832072444360697052664791561141831491785459401590652357064166672365448640436727546857733145913122087837179206173956139925666280779769107006731497232052070035364052840380689520072347940505240720500351591086845140387893491777393830857938056583804178495277211282230438881196125575367025004863811078626592112059748571751724258313904738167788228710596729384039904039264903938760991120893349839774991667440158773706603865960624196057844665460083192730466338171096609599861858483711247725058340485603547861416975133194746972609314183870249739275371843880761165569167172763963091940598173258054910574500645152117600134677745201842902789096191618216627705776993430690863642020189428830658476662885505981377169359243234022430795153162265281304306925693510803205917378549253553593988507483362936749452159098593031827878426769036089929543049876550712664776023361884788437076106065334064512926553986667593750401978541193499567394251485982828479146386675314859625890714246718609172326742206243235253235046002460445962028389422916886473197655845863910534709553879933471315047295262313690715627655931951928084463023852601728095809162507910198308055218023376718737650771211133752215708582053641254643576033668941485593464074737288939940098375143188884334979625947866772326679075613949743336725466877869375023869055973378232337221136156247991218399761506152265136513350509589293171851910983762285693646338500489795970463937120091816143983200109813948993081461367294175692293255744435462508113090437463549410539679604867490002140616981632682732849293887067099077649444375769930544241337129462413124309970641766027813453329799319694110871512601519853564368277331515441384106492914908752941301132755009790765419848001415012943116173154894609350912727513701409292603483566224373913507244058355963263858797071226318835427154291722802942009232489132034663190822790838668885053614791469720001160725137882532893043488729590582465241389028050723009478495865860809270028151609925928326822206626889943075495165100577686560910930040668501523726067577716756193614174810767302048379005769490305323660019667084163857774126863285776938427402844684943248866141582415755842278372214901177405275112789798628763655966215643348301875837801417670672154949986306041141129221947078406824644309275349919471632716968024616299391703199984183011669068853806396058984481564582622700593445125087440968563392061595936596115711247144480722512134987213835652568628944121669887065855983161117083641991972203156674067818119030181139621249388934000571776451638044156079061403652420306342121547840694642277607820960763795086614707234792879405833510954300219219000162768405128987298659745987144446196361862589492797272477232555845753130488984110206010236189927551252160749491412717097541337630436135915348957290294716001237487767062272424050205169867271440074288490184768279653406036805716523381931930780493862305796866966363891459964759292748551521640501086094425934135954822009293639390150455983422294711296519996065400596435943641795886513765793426249891806150590863623814616532888767834822736035976222108181388126585543953336087399631157160014360386798115365171840950993791452294480771155312876371713838145326523909948455833083863294887011426274606059297428353999301504786253760418758008921429803893421368764398448870789198657396443114959434040368155602899208938287471056333326138969297979601979514506372821412112719089815538644316252645162333552410887470720512917553144610717997538795526250766448226622139432771935947919542815383455159445469277662218476496011325233780759780748912263263670961990495297438784474766353584956736651109797320207336279934769179804500021218099673412994575606515318366420916359883853949090902661362707560140372072402920383000579417035540421742581731521637054117819963982733528557191202287625636591925674681965482197698444288263816980732181768597643728943764628873265626491287650009900346611271051442648633042103756795862742193089835983594329036038796333758846753615018080710177222406827496711934277360156240393425502903853776892126029180538364414632576489100463460475198619120096982151856994034349439761630704802785334654043066541197699489802122228117439960876346790616062396228071866837882525247027695527153593207243304820584428002927826456029531309391083245116629760330210412161372025147000997227122969390142577504913455509649054640816061023961956828685335462710718192299719643751583182364207408040861189840700371243343531178882438750062051010533119729018226765594496476381523388937233815469079536706025415783727132189989750998560660112223899535271938257592749451219154890873645587502707512767259969859278773394078213725054915169531044935654799057069555788220793828971442754932923035577593468329773682394875054552304680391012429484282258409680846724746566280816963106849512235531270864562469041877803009279118277217050705689175976098965094447515111140252030827922445108814693627890408736676381174195617704907658961909202814411181556659230993258161540675236308952062687504755267437204878516477679710038415337017485342865711398392719490253122520560297577990665192864581398543775406686828764722403799235535901973421588831963618106861971327218414038529541426275810324884577096416777868493388361093169385051972815375238342506410813563941517136024274864502365384562523750999142963929421712475693730196192890801444050212328274632057898787939858042039362831173980261268775121410823784018968636142937768753565131127748685233873842607197693125938602016551032348265165775680533513218745690916811730723394716707255320348374978422413607642372393937750634222313329219639769892875858365549057409657903025653753376225313458096348913360303931569379176814806395242463674555761349592473177194649329560056659600087446515360014251880975644827515509597549001039334633590230258638453494590718073113940146518880833660096579428581034817796124995872100209390274735510616622884770632050265849654611089012923578242390547303404023439415524197285482236764580829295253054740377366596539632557121741534668680356064926454516718471624592306023692537214501543857238628858817958897304392708656976998173982945097425941660179772134231328306482381626391571978545444003210908208195683590124625389013996679195669633620065864445522929411657918915448550803666913632668941282846937579508212498507611489240351890313202996161386461822654312779198992992583339008579899296505503212400400547427439752419896206278222465185940255384013409116364184411098500178454601418870768283900593892743387812568891392167599410416407928038220985282728261186012389409568430857254807309873881263956945789676595252155472906776439165254490767139292745881281833479696349293107508858426083421218308283837253250603967681595164692293770254612776576467814056939731292255903036242932421590298448432668779053238074394215389030145374944915192946449274865858190380475912921055387495950335210285675402408706982488334032971867237760530320497123322995556033237142201576839771551930959907468425743230543117714781306147377175041362579704539016536084277778780599427986835738552167958144656795120587941659172545221972565597209973612466764381436661896557918673551114985548683127939040717056738949410846450447985065297410378091019902554486213903979780257319067504498725050532432416755255102026438884522258250907344546407875774680311049319260667801956281703903596227627883316640411395464135831513497373857918873937773280244049605265840490502848101633790954017202827079208743424908381152143182114855028690017895244287726581981417008384602990124570684704115816256053907430923554206495278420186893765049997175130594067994684681183255481766027754222800287779252210061529807352927707037800152061229964236089549577994465153082682631344478909154014669879550912403829060903322438780489629427271131189200336126816244811161938192225511242079370152121134600608507303035050281234808917997492446033783884346407288433946431370923371680742865054437896286211550579117025409771786968002686575533212714563053696525718079082582604895204935319646905020861968631347734392580921361984041719441032666934003131963546093846518682925984023918931638174023560707117996390051853121115327099794455671290464533399605126347311289797296340169866788683930660365989274845595347291855106720806990006102437769821832521953697885984449146088815307862847625365263801299191300705724595524097149411081588950524855803483235647676470434048307909050549247923305570816827893433817256345321571361420195035384928679829487452829710429920768084843407960181737634433037974183429399471724779458331853777628478466809403669223466992253113853546653494734326542138208190977274382152405979037169892201687690951389404173584716099789298028965817788337250784897773149379942270385842259411574166877736208650867907590611931274299282306827924317915801277589816982111923049045818411701348423096593769731450302133716422734076316572556964824703602601966956246656679159798379664669649160214250242631164229265571518624630866318765782864714322668815615646900067781218868289152864401817563283295149982987093964628339314157079537093991541403320089676155858112366049752766024652286814606857158226647058585433940095596333931817323407926497357588419627824417083802079398237203257883612125099434654883097765510703577718311558060583029236325835373040665830730965541872007594164932533470496648856636787080201297930650779272060863661699106121108517476758882839217699796094259609882014187705746521180988714119458260665838670500843915954383192309958906041205552694215826038793876601367031219638062092645295618481350246517608449585789346316544249319459669460453831442791619508330114746786257365538863852790441868497748126823928495027185034059878336262351923664310668650629114349456193874411520787468042292516969109866243647855454121551721544307337929539099414422793734908035061752807429999000851571438450665192176937003337632163248318945979993815306564271034105410310793146034122351377202794588601696313154800245249476621738039455101389050234938214586478321931139723518205610570862979591152775986264270938372671113346605487492856307849102382640707959500493282012999377383974198735304013850182738140635004467045037199353531497269030135058299468356939232843935729922079870650824774193327179175738788664631858218567633241194331471448239820933057863337090477580164727801231991736770047437914801480200391053652356804233717643523891408840532830258731301236343165278492850124498149010797392363548578338708979500395466916866493026948147755615828064258452457478580938341106844753386762076924763293691304532307309780964411044288445625013606919938300600015165224434972607089720958340667558395379724296670992709748931872090456278826625172685406318815838713193259202736078633026095339627382219522330148875509624366680885584195120990875353730503762057347547888138179029190377264725971467678449107180311573106349147022189021173516297965558138610061249110977205367216544745810902270509222119719649863930165735883299232485522904893861894203551752968114403056736642306567463539218864874699843679432461183370882209516014010925072941297132183228279063370269427798647420210769029915836701535568993968377942111812967216555589705159820920108988848831723583786645704526065782301166176327895754424077189899322395183674631313149863505862405782472069432066026434187814469872997056815136293299619197853067471727524198289566395605079231149662632342385356097998125823668797247931121372882131807553007476584253546597433668920036403950657668103594391298059462496468779712847209534817060402238789584742131949978035469177425395520128517654349466256023277047851857577871402346771374434191580645721224261112708736803850281427952124685652606379100709776992785144040559287938679583569677149942355498973150002969463706728984191672911266451178727277476442713995903234590293306833107944344171573609497444217559888886540891166354278807379584451791268666586037139675111577108897375801354837368335560553013358943799405469520046980485399642336397800318609441509165982475306827123199693858574637549073071790231996019627578989750528485141363630535307303787189578442843996754590194296286836145192702090558181748886406340147856368634900645714154364820291121450228856387291954958148440204413425981379323822718895652199178982950734334258777736584405260342515989435619973941454329335921437148557730898204002015699191011381452828439044701070005263665995590594026935358748356897407344961122942686462910343894722379017284233657437041923233107775196234699702654989628609605785137096711396496698588992416367710760024761538111974308343975920212980919063562641213345743914636367051753361364423176326586658423843800629309396011742433735010443479870674087875070279396082498452515673114862833026418366603776045610913848070490432575591100968579237505728742696027877871124016306403767157291062994363483369626325241813068171569306227991593249603969789214696596410194399537794648971875020223496922460737614809324760103682020161120221382596190942345019147906566123277659059191300702342476197103207155418424616149344085668998325177836132493216786043726590217633935034556827117406087085518621830442960671023463779768267281500804714789545713044497235528244755880171416145068006743791477056114889326842119724058493753612908738779620101670432800707338915325196287316931034509446655520185006328922606410398525700372242922646080910457544019602135905299657659291177997041255716550005119053976813510057779137709650078545880714442782416733281078922213223316476449532117388239211787333562453909789608568428792962859329200028551140697000541458494781825538256715566035783101090105457492171173381814418454356329751190384623135274608845926042057557495781303911836547058925046020487222798361230807237697686274590915470434261901774046618227874464989463776562217976979373926375802366093220119270151736887633149406764719431054948942121343490449254626319518181268422789751697584270088039287638396762608374589531959505881432237674712788607791257994415552705053485496856153919486717147547213319195995183787721296534769093058549858676301409444070715110323673179105913535368252944168377018928809942249462535790555238487284507780126678505291812390400843732275093089120086506322154789674637195329341818921956186375715324179637511981336956841945490657548561622621654614502726599833894968986737190796258490385824503159616172011320994130193373926165699598466780206753434151303296554899751197150776902127839246526732289973961273738437633148792402436155127838685304501351226784696972534491529143154746326020793005912484948726831188828197817722363828188168334360245733983184193380453387910069178641350914321038454299837045969891560017537405923241247071718508797430068366206110407837687687266797955383162752810524109300395742388272570263348872362869597899716830624147820824525516574021241681509983428148167001558679233038234098414196337306846056817871896097711108309976750276648522032071053853620638182543940733110243192260820205380255629272828866370898241951717778401757312548791375217258135575221479064604699877602295279775481474179104277265636854574530603330700924927534099129388923891660254962409409558661356855790750509862820387767039936067818710788925427021798638708638850846834830938994465195630379748376052926860710047779286951069999788875131289352808221046891244854255574353233769494354316947104814515135114096587273373646325606168594582528586691793791547560693261716718459872344470272858464303613823578660727871911307366651400198366406804132555321005064617669079164869626934356814908468414823609700383044868200060128990118042597758498674419627948065540545759732666303823018036268949383092881667521622517927576525396866134442390424898954843805611214208512891778659085317607789848576878689245901664904898524404164478523310318074539236876335534025688221521729380365479505584624648967535646783219998727634712010034557712401918686158743611650485928505334996994911318934647966695456625151992163806949538251628044589731037375145135128900477205257523057569455777156820729604785039665807386132134529730300812965672627236141520689521009436593800938403871262999306377451954989493676383966000852604686122081014659023162809632928899616572083262309894963649328906682310488620302331212031719326701998044190955422220199030365636853179403836575556184731073615024873352214109432058887596417098138623240978348802554223493333010699888366024404871227656682646486060433321828830235538302206802224863186207208125128717950660970016843954555313264166040992513805522671710163701507874905434148385908219628329320102632140171761533964109545456875287907827077232750144406942580107621526184470998730874325967771881587986793960275926540289367969261453630166245956206523585795373989847858680574067636976405204776793373890644035477376741638484012031998393909066408829741404253386677497775712921654185755862690877300250039145019612148307000732193552017069673135109290726354781608456533264999688312885240570657484216447092815677199646476315208316649890369300203069808145911561996827445484505191570985019236924179690704371810060609197067833480225070918920958866473620254423067246320186753395140545054423770398970688216225739934993553955458009511255246168328565811956265384710091312035204703450915356248948197492558174671029956505768411692310250630817364905258268188815184553186243416268864103855104402750209202324613961316964054086259607420481349220928769076738114234753968893489674185441771289494770243315076101006553488115593031043843251740394376577302980575625439306063210592733312561523995794868733834589607749126000068519081281877122597426581212300849305729802834853046410682751200518107893258665575195999638689752054184463299491637287414056433124039392327769486607907214251514852773783072058103046900703852062004811488202471383732737231278088836158305496340809253530866685726213510866702925219216338691955674568806416387492311690278080084617850912687664427860176846779366133081658793424475113932809188590915486815320113160924610039557772368564389320285143715535622200810682890020659424491121803984562280129226264214000374585581224327849133648142225009879274403141843183926392371766357700417461234236324162863385576156502604266132799785512110219260371701254202784380465641122674931955804986424312957878033231166177094030533268223663786961576644304810920192095978321663422302154149213870233047700373318699238389073504075202374143292066880624282793225378901266838035503925760032423025141566067163870705934404483866300644794741425202289081305127520842720551681231881017598415194623699688418079942742018399057410959703767286918671310436987269352352242647461883847233283850897679169197908320732921819553581088199419969233236842876251478233051050310645295315422028102606113688172575887007569842911652171972994061626232190484061732608426535344585346688394530625288657990741445033287852399158279627220044315765888203615221328614394524009535998088777105907234427761399105533997156076573153149966176113084099420297219989620668939121150507251083859238003083622488817402523540138649723748407197148855129569882993255155936465625945534544409122726739845835312784282210176515844114872333533616968078637113947622834525740814321493214558170915106053856632673135372057386346545478334236381246705437886669944400773221680471246549205396722771427793036452574951243125075450544436576276842413506951702510867301719266567333141152835457176660836177650064286426400526842141707924828033751796617866298175188445359692973638295673893550814859566979583343996905509981584288141674308313347463868116916045548824685669350321177907521947122981475072380811716313912343894090327477800038789339291852226673762055496345686346891042082648519755965121818955273858719832450348794481710449057435727888383174173154015838253878895043259201350253688547921962866564487643864647252553348386731558129118108816625845176400795692356534701467840670329596146438592994087353301301076785582373060980272877912465553640542691384237779732367661072138798118116487767564040348254947925383591418671686940197237720556709406774697558756597597649585510051490676148214156403877693481239066358008917754107114837450436486117533033956175413025324111082055332265571541341821021932228724857851804950858907506913504270556700930415329837086028211768375587824834504162142191836159002118272951295294123674877675801360161237853735944730822802028636199750866540168940767918523880636336245838878528419688454666612429366524115796607441057538635671259707204794803641264927144326936260296010432700128776675619192713009114080860643272280536690327916717295281602152878891616462157133188361135026329532330224726112611306142832687892538605941019436459094404967907959769581794705691257226574917231591141715625868404916907626998469339429526061971242640261386985581032245976355578502802436546613665202685765745542117538464646612196609125064858236873012936772970401415198616595948142417748112092533974955863631067845672889832622545135621155276415092162613008412545760701795264273699940836062236271381252010481934739298140131087858090731270588554905147588554291631240632541928203513338126357495173246802832338156090748670895160776554136181921129623998773285278010164491004156648357016324453841607881405416563625764434444838817023722170868787530564514821901801342501751107354634414603558637488305171793594437496824534233515801429473461436537305287561865738104061430917525101148366222776568309254928400566862923518831998475165826857741817362480095048840443628929104309462611897688557277176402797053354604035668627271563303005434688643400388542631614691655275091853522650889717518445807214385315515054830253397657584701396794984480939852319793479371436685038522377755805370548688592389864293842993689910574726988165557896501448950670944095031118135386322524108012857861011863247311685878797041762482819145313361820421802681242356814325727822451266400757236338866985105467399420015350861815048717974378371725894540691995685233625743103872322374063999791265519102097147584408779542251604876465960569653589774779552711491230793776465003701365819232097047270031937654568433877880387740071861671604270328281477047843778517442047362409187734546124132055838623904981640510439836918557230400418966993651881862921244459726948744888460450887538968489116013136729766321099223023526106365577196070584519100552310642424279797604875084537788634399047118081686568163396040079600952345123265327300593098183345525539948838463431701588204813077369340004739085324060734017513063346126225907342305204974955575601362988644376497279840988877796064489871482370788299378050236478773661694343385415986303005739622768404082435206150722618757692157112005081037125877353704463801336579018723876251928187356572157183191087602708995911372837992505725186355946680675318554539006664249772494885109955406717452656889757471174569438463051856582752983538013641995334013387884758091940974102703834950097457354684620332662781855103935444521437818977624296388390472333632936658848632853004672884709494483525950884810337407285808090152761405869438065293817727950263968200801744810547735029103839947360146874609875834983097622097675480131643782537283860816284246509290475269690975265829897680121031603932131952204217919252936804619415000292165454545225697987058194347852157232312427357693705019357089196734995319335013903728852325493106746464036774073507674149649571364604407208264280084787397786952516414227556622854271077759173943526293685389212502603821526172376762868791677439597298937513822215661922816196778965082849398228732154272225941658833185004527484046585870199893561787673050000475446040002052176412381415980123895930799683243654549759897198072300209037062015022239107496485293629445134417103435910102864273228637157926416023180745521643771746052759897567332612536627820072367676410983928561479590268481124581297009446670943584916847418704208921153734911884033332428106052477728593181416188456127729719764827618307278139721866918014512492005986776904358953473084762500659484007702510772921310202856396174586520031447664381746236304581190743114712553009991620813292627573732533413903223534543918594178912694427507167012539109931761315615488407963547193404920765136896796147773857349196739784447033837792949976792863436481501203590810698893217304683480985276477897372261409195609868695348085506906151605505291481550462180237514773664847591273819274234771845349392591418137547441316838493084717398598603520230369448905643330946740588110513461198854756454557717418139538529343300083555837339330654649584195874769489072491715784138300116090008754677604728784605148095030687357131483056898064061451529230992233255278922553558573642767036673359881298220053009891340511607808153510479556486507559754231741118834808404408127719746261568006039552260709355063213467758425464805300043480466105083720130752511228748092808881034522967942318830197413397135170003075582461918699845125131746123911423751906652032480078356128906440856717344547052752712594302640603404599773167703812453602659355892326460125479745225547178484579363078973087382522181277684013211807267402035113254666229042061919367644720625681569038836741490454666039716776827013095463780106895618435022052948522027879714961799501656297278426539485917279701042527141980094503395198799972381821774363559644530550563018142140529233154450780761811030268922167504370628413883874109144444330359085382167477578789317812535413122981883573474276162092484612612719753724478163066319815889244505837667659559324902578290976848454336808210465964065372763527666552342733927993682203110861984256209448014106883761914648761737881610084519540850213643472742445683223728835813932442884517431997379092178836143379749144765468082059166708057434102261122233278325505088226681063641214961782158849090599335390685124027180749838649945154946147688605304690856224243804677167200098387474969434120002126022206830530061128343824643150972574556767948471671653075928002893400737181417531790460783758468431768315876609267811414067672419220015457476381428483455976956538916861165304451399008185763787144861215470427305242930901603303049970440414342457763865227521310682444069070598797529215193309648016752183732603176439326982451176934072920693476347091919388407242229694355241334006226978637512561527599197418341144419526988469029022614275397531227412263686912565808024046722262189061951047313590857759673548088687724043793599224441562590411063448707698456431822420973854891161312428091975577630822448812798358904683167334154180555908829975823715051119659142464780549647977324530063632410353576144383519848037449818828046602803640201455833740072307151840492725232633708544755613608740917060821263670922766161235526023137005199932028603770354512291129146603225891626403682763088468307049124154041785421324406449994614410652289324103969218837628369900388420766864953698942997152211603796603443483237820013804609811026916336176627492667313654606921231790492026242408237902107484445984762758837472412532544889922788098745714026545033844155369583591900660433046228965879737879397712265628259664543083938982233027865247169301477701593794740802410910661103221413015046242162380282935358199818859003236274596289557776065512240629078261224234636449112110121776731066084796170663765512709699897564784878805759222578776320223422010833431027587034260246023108476603492505355452713796914945213378561953478278797611516434103270700002574901146315808337059857702016805408522193043115765257957455890355524337554060197383012263326463102519426285564138032886146462779147451826809143125371373383457386643290784359745367751593019457673438474005164790214774517371382456818290964890472521740521061374290118121418863901411125571122127385436381160235977260661161918269171205330131293141859896566509343836150911615705353889902402047593630582442357326153737471623652931661809486471942606283377003788326181088284477807976240740411865551195779663866919126116123560253086471613603281941749885135724482854328988378492213334605346174667589717785944745889261386119890409379132693251045393942513309591634716673446827972123324481147994343237430169219579476477019956208030946408834353764066362235990296785750672463809884151996403776296366463448874913611877500277679945859692211982672419225881661531622703796939581618308587902947119429233640526598897421377204605363139859998445257033400208111090480694561318396003063622542397994764578098035827094950022867061434600769365236273719875909902881784363255941203823856055144493531283825157035377219101072605389428275548945976518057404422647897733144614129269513039802728168117958132147957377786308858504543000945334915091794493026697458353033364700854206495681106720566562294881357932005162557145861864188725707107531568532598570290002105591904660675469140586621407985752040964173527266792800120472322825633082297070356166019748248929736292266862503485561277387662699005297460785695608739398333568877932308247750624269081881793511154648134542843984206733441852597819905830540271316304074285829143490088942838879078587397685722115824740296261185816092093536300934726587820072300985866030787687176996848054958034123537126711591431538607348765752404739526927335257489837051093697220440006420551357038101000871439194047017464958466997761422527158626555642541199837174556053474603892486275488298874064903136354324640632167915993734452849619217876460717893047589547931050066921550407511832699829698943340640001783527528210036757963488436919403057099558872588499038971441632644602551746464898169393916632360725103850504017279635537926357700498105979486725276862380193726187381403092700139780317234868493651561872894010484788621446225346725780259295879170721889039203501035145580424345192916467353351506174412297921527390937305541632205360773658305024408843410446117016310735051018781428515981519729590322989544097336596279443581468653832987766854232832767147774317437445101810261381454907507746595028071125145986011984584235253691595549632977156509803825042080235725902043987669320158376113252157026815170932077858702283236450137122110910981966555554082473112362737778602134917144074869706057715094635714326958733988760818780977159421630723462234204190001229841962530939041767833912847669748442042824574258459526740294672962965618885727169785800425284161694093608904794263772419563504346186778181410869167612260686190879339310253666418076240448831392755131139839499106714093166978207320982435315941350410207708809859768123055209130505269539460951902465111680624625590376302078248444042933092018647887643675257133919586178242939983873572809440709498789260627184242158871229576466525416971108700210811758989018647397071597197128517449944426724378780509844978534134266506735692515958497074929682872962702805475180572174202491672700760356827625180674203164282973684305059322277742376928260275894457585626129064796830196889788784739997013710701210915192011951908898480846009119458217186448016095596011449000580641504528008011054456945441873684916874139622726498529028624843215440727311037664234432848265831849984201896227904320252030419644916488068815175063899948573185850026378970154331678610498066396970513372848016997405179836469340324072260821275538763583737478765079287611850765354802617251130207404488954142344083350237621570181928180750459053910492787796216146872821055723970920246012289414110261795727592817916316220600502770606206544084309812655590789441996088556700768026375356233768730528478256275339314529645283440919291839141057731510381168089036575719404951368311154557136267747727155742061448042907429839642867529417064466540991853275233333736840001320897356753107801854397154201039767090457954870807578246958994978104655329419348971268483734370440461359557641238573644117902839820677277762037293437281817527462235923941803312355070260863818569655517664623969954581857751757626857079961637003190000254770809138554527869106881482754517912121313210692341919742221253151966734529343909353030227938131177352047604134404403068410651068072919736487674694170554272558228035886389690114468332004329047874166514399111136007651105940522947465256551280596670067591151287101011599833355375357417679589437678628793610710645952490218399199311347116074184742731148809781116557438604484792892626550139384009551292354611941204857718591778820928161814452216148779550812253844290909924784040504030976026377169408471196685654099540654403744784924194310148788109158221351980934697332597052296753424877906727065505013523183554918971917997646694215852421470064065063192398455234133957077409440838321482921028146683891756740498764127676642762820630940296222110140840043828865065419303561080657270508349183837038715829480550916922875951708965579200881133827661863039012533494896103229702160319553728570734736009892229587250586194406540205012756539632209318383830369858711304536404853076040385662050173388225270335045537444563819481629852944327610396792134591664372149279005640681135538327043967615685788678613169108350218014187481648570127322537085935524782942183577552266271740435308669355017844971170651071880031858364622159841158960760142165772566762627236224442666176026592001890655646154905989308107657938303893251968892269540647785680493869310730501001221214044773552587872805266966445896915283226617906400359123747974261078170491176170875654804080559209258099712788184394390495107158817632751402646274267596707382448933254571572554663201871042352817092307938380877612240390414308904431302639758127962249193967007567273914423729313523311342408382548552392434806552059700591083256145534247204594023961886899682060633764338885576970615183246898117684890165067663833883686719646029252183312514740554459834661644619239764434258672806520492355239084628220874225252450386903247519578270260241495674685572476906440197582509371765272806667411863081682619607774063185070903139096836339291736937058184362345650047394750278280081050787764709895319581063262599808005136948126394640546208385240410860843850415063295251998594128019680333092034613625397163346839708817181558124762408665454370294696669130676800467727684460169239120087767752414818505816627260151674097503319980281592172761648998445139616030495997522803522718613244921097183213322016948679083397155733024023985427769267950306273109247784567504603479989456845599192656446004038747192244117396809719070084737233476053433345149595006685269117201706496748079402140142475248455626277412354401091728165835128953278922128517037727346750233238286606958445507310679821996228202182500728796950900283604754803658651138908376229643873207141587881623253864912525248715337199132681023187152677650556307757810088430973850473456831982985497104362523402083967929172199711697267533933044997172015702964925029699585272471333677105216308722800573981721146044430254972063280468014328913241331244592938817376921961270378632295038414208416343057089352204393256059189039122032897946821098464510342951497024266615899431705123573638718099378367456536028976991209177506728790342379850921812852640963198770668204220665985329557825881293457053933504641633531774488104477663748075015809628225182963685661788233562928490442336848283307086507430505492165063054451302594648392848368813506781718835454177691205799522128083942421885922516725525273913181711067858309464209588765130764621140263143213094588621811369827091120983420222176206114170649965822585633895018360312782608121361551721114716124143140322191777517145203652232743037772184157434159685586318012137822172356505259203514305743369998828709384015862765539118149097633808149822253116730362421614302412857942555847245110791540049901131628953014139089673396645471427382223247251200932250966862073057557264953344198752908009924935172383838131001472342483137080072801308892310964769479608480556522779567533632813556050176543424193164860048969626596484591969623650994217638164933524961982191985883789578720859369021803550702695971473471087508213164289934515975310075182970303114751178888014556978907012279672939413317832624321830853024996244277123172415935442476416437088696831555862725774472253608297639838568132221665656799927431679021007729644811290732857370177393991767596968147375553625920192837667897318153177811422105053282861267720970602818119199724070503107758544185324168964259789602127263455091385805660676697272670618562941583026004255830673021487646899878504582059329193290951385225258700417153476608846003512559472337012102641553637226381550479244801879171265136114779164243609141301252213386442191059953598181977160213148415498780071466565682806867249863738031245798416781726257335592166096929283152599224887070418106315596464143212206879619613986758274246209460371702402709309551115793325014903849298475767756032807814020170468608544757068989653999314530258726204239028712816173065867470180836700074827290497943252998370709898953116944175234472591974977397154656415348659287471850674361868864632475408149815705666547426921623851194216011455953864758788004814990324422381422591421851442308153976008633061922027842959053315439557471836021879637503491475464557038748080157415342350620977769243261743658786466858366438659564402923031167529157284425412351815041886366874579070710409331751966330076078769327652503549406549687942729808263178554118527770650179301696965514279643226876722694186556357547609760734872589619104311823153839385065771843064108990073003461909751558116831544572966426439564819414344385344759246400647504342329584021386709291677033739864265293267966337397301644737851395072414499354523872921942147596252016226290578150191747529071227211058731788578161820916270946500961094548502429322429531463513994276388819664319356612941401522564284923629008008505513451788490185054108154690361816119560245941332871844501151690453823294926753745927507543034029665033593357457366117237287528447126144131557712108567448784874234624409173309729636489954603625874407604156426311780503140016846537750578266301198037142075036526505609176793390880812004160738256730726996464869336425591078083592186765809891176143380975223557797454604730028199944736284660568744442613457151850576782285721367797546957666643586040313715460348764762408840876772725360108466159796354349692819373943271989220170693125590745642689863472191132576541203129696349812408115524029788807314964586092993443686469059505800425640529964038539758705040902409610590232612330411499208041530213875308700764746709233048346507419779420045179103629223675073795212363076621332442617634376813180493342635021398586489333072342811125325463517547935923916003059175589832461482361575137456465493796474688698479870914498278681283538122601977656131418830794883607585520161764258117794279055067037990162409548478833386828261498627391323508414497094858307327069228815023427695073952036762151148966195061239560008233368599176186479961137868110448869058100441850000655863511748091787126904535574413880321306277923495020322145653813740178377079598951042166596129192912851755886997391568724341274286840657453753875821848518164486503097022325715131225981111393824694811813366911009759469979436430563483517713863733555536314182199550091454153064383443012209890394589783486943577346876215080967593578796832421386571966818664330145453386578152546853972237512701268832700737621943709355852097968459115463962266123567361863490777241064523787706384991847535679461539747679937449003814326234683526590900806615287288804342894414014602545889614708768924259766061372506405885174432712071874504416000888917065025533759580643552841442159306733118613771084459938204960113290257513947265848782778936878477971793707301718073382597124405748507691055878019024197232133744211750523420635922294721094411904546766059006502792744011383662464530883620555812223085037725904040526709618713875230268958834059900650202049978394584834327969217811196909759495113858040078763178061332913648037873201755011414922686815282179112072820810458084197219464494379009805138961468992567357622369619589708785817615558106244776225964479844894777904902651574909624849372898654697199295475386862856312717928493322282000456579904356859080500801109670443273133012802496015122393570624151258492274676102299672338983373197462037521319241929833609188087117144754378806861540312847663642000587283187852114726603103155996586294299876216510084874669456002631151314158450390173351769342907103980954510886396438642469910788161782226448873737580293282501995927150597672948906244351539932116334713165407922253178140785507611531630997532814300468469683334906002759580061441706567305993579725607461954854609859350173939782906658212027525070851585872725386497315270081320448775323899725476643297967440919792197981454416183399984748767470054236760206908598213731413236292282382625074109986087151955218816503006412157770110459244877870985176304156233912968139976419205387843777562903142466191715176410318419411101624950618637789428578862332777716886994579174545176375885412004007996919883363991838814533827138800796166359785221520804621717724469548348856562598186965698644857560818204938911071054652813800038924316691638717830505015399080937896539289473116198203697479980568621107305917084506074236534345004457816106819785471103380662683030845579100066761284852501862919599087007889818158429319748383204837660334323759404625672996024414863344274415578879550343369822386754492958706796021234484482561075467145915324814044171157399503845088160060217148212398237276014956804223433999872126575527867952305049363567796849327241281067837655763775547198330856627524143897280788144507603819371942432147472286823242244242008047170912875618997844700697441942417791792953668300428076985102173485345267266373383904636966635684665509318027721931469233286566858304180932724665371647040269267636249313122366334272438919970048750363126743589361961041967472787294806570698467923685704857418672201480549949256561023866684129387334021930835345918386286726443579038585602410749712444764058540480775935496650817394536628194998812390002473745350201233512476713255032315702771690859001984866983387821729525492102921140911753461724941655747460430630316454892422770563066910818988241876854743508013682855820123615423592760739804062121459893457498411959213673231022011750258860390839682601062477662029269898139522941890290045525462457747447584084395237817780864610501485862298036792664729058661774762337271866009167030748335998289243093144979038450691797245494505899584254052158219772240338308852519910326014750095787808165260725761087107126271128600462157467303052070669793313881193564774647747349702755126298230128990349564326279996509723491537021178327200810244456812253441649184205186950551635544035345581317166533882821496155160461023222649418217358956704440112601169210205593759199046247687249593212396376228412553854225879273133262364092535732775426698939764571368742851283221582980774267762925321538068835279943788081672739419869478389029777495347124215368147892038439419142774523632895959987472971135067532954533218631998420376516894587968806557252083059811829480760793784665670864386441354664912105988418586325637424114580406475823894967708707291795062751923026610803728752295225813601342236956766001137924028311659942562382332265788632186515852070549795845104073790831522090187760097263722975716321553346601837701567840372637180833780435404774898941574904561047326898658192372982991422555597094743360101479522635947901027719139013330901261614631714804165645792252572415534485007582967152831903068090882192444063323887549717826185805067854504470949944130176585026237572387591914416484354506205221111133534537730343112240064945929507367755211306093145101165824340029761012231581575312605163207534797355825630291244575330944017176326687425215466487891697288094825222304453956089377468364201455350322555377080267052176668027249274705604162465471629605710373694536354733547762416473760336840733848061510305260153264204569356292150343621476684017350560778961800777798066644792154889933144934456569700457717418666644405665913096694924436781043545889772646219022789550911106075807867151287748496102968172888875891349203179590515722057288856980093425344415406708358680074055418895139755731720847078620952126677573603334805931036263804452637910098372463046801627958591629442966862550647102826028297154683386180885819611974295688480911354445212914975427241426313211229489989956366432358061836851033283617018715189104030325905236295321360089696268960227070308458332590629431144224130571589770380182758079438312223267458860687671971985726661642661761951287498614447569671500571567966412667532648336135040243379166639785505284824131789164746371251911558715139646285060240781974949427399087968942491934751563331489972220692016870697095896573857189254145152261191172668983011531842082756159753324574659977380722723145192525216977361699801235192088824110385399329680479318293327003041538476896890206314608485915901637336278246286525873473341767687102973839415046518737408602994017167225289504497278607810729234138477349132912002811873327740802446858078354131867262835288083562472998678967155352668396615018126972098767040103688553638194994672872359386445596055001402576671131170239910141840017295560692530042578577315446485300128487096842081163738614762194860493155510812122801785322724106043336928301687790776587924248528162860791238783156267766482986360199837880605964240434378447975180414336708485461195812788768004324054174719210060454680660409462869177478252174457128717393897616614688682450603094072179299105178451907756018708079620171641241950168376619156713820004628796040648789162911294321531208322300135066628841845688886550702893098247158268114060177228925618183753411080521231691141847631071997159496103895108439171480819737123624137069383465162849243246623725126653921168986765208333251207781610011019363308483535886264467203019201300308537966385393667349317706429779243355132055274914526622845100421193018025439959103082732862403507820516522562809608243124665027102497627873903288039956165150653762104432839312103629069133681845637284490437085201658334553875531875934759068861702636363182485385780425657787066615567364680123282888404221250567486070386866851762380088293600429121127823327863027466134564300192282340506694397132491389374554712153144704544516111190355180711561515171441666635837779838937227583188631034197167025426850445813606074939604236789884355613048181692844388338494220200240303689925984030589461488732767375562342684268953977301299191923404886427924386839800458280172120978645181776052072439872876462286919994457630625891200858370879268098797753258924225830880799182093163767586659877312169096253915620466697460205729760235675741821292189918811656498369156244139256810080944160609975782339843317721491272775755744895292072680874829877190027907279054301385927492445901906960639091457165848308121297225159815575852726326870468076118728563022093726497434843806259106392843669168707873450950082955902897261334837825603553587066375592217165669835137657162773415932476744365635377721970806051054281469406863935449350871098997268490119290327107608578353195969562648977838080174663852528147331162169928136710157584125758448608309111353668868556997592563558031805926772704799061805463830072374196788300991246275417872624803551905321841004046259455214853283277956622352944173494070679165276133010956505171293895239244095635186083931808221995291238620736936910318056920841264185765245942111281274865009903604326227068934512671030017021499466399289406143777970115064659086897409258724971111979876262581954725457085422881976578373050626969754564437841314203398371490887655920590704476151421780266838435868044015786684163646989933320068529114472757264595005204573375300131444035707494306538654307024065473777760817143521495212760272673249501720801174363161237243075589322901600537693700990216340854862776918796295543283655233869661095678956195833170875324590685709653829609593167623122112830465603429258485231985853273980332366626810444212602466649725122312789715393512324087186316580622883873592705705896049624644098474988782685282602043716238892247370323994628409838977824365657627292177903794041261314857861811273906739989859348099841472834533847882679309944190765933246738354817863799561276596299177699206659467141073432761215453194263277249142321116676684711238086589131780967078758541661938932879883086148871731582188879079704673732938273807731327946838869092692299219327904174734962026407232540160629298931061286187547387169087536443473899419674052718100112033752955722213962854879518675188311322497613834117741714387571697732114199745149396526609500262178624224247785056332950046336899305499398834969203577403073861799656428984016449083904510752392777424829331153044783345698287644459797125007195900189636648425350626907994734575320897628071729369675073591446824866865335204123429110735538102113092467088469893785252806075757882974481940672886318081540909777862479436697925323133364281842477020515666154664496413634562149154031873036612256874885822337638505745524973803230288079840272652723755191163251277952030938973276573494956100304160745672825459433631463971274993684004147207981666844961681829003701861142354521570328815146431501751014647240403777477093563133533945854274113505582479829593069059170604312632352947351648955100081810968054160523272337919986228953665516811512111504040562127553136850920083628880765948982083571177791903630149741397283880672799990768990155617651812001007138423659960194860222521748889190911434983332729031667382503746675608013081906474999901454872715470518540196500147917998957578091298855274505285068072684426558890617037258481033485573653380739194734741255723287120491400595291861067709847463245682512773627697309132193461506439995213392266596512595508448510928486283710862185251520834150550156143436152759364596066213851429134548663178572335943205313305904483717187925764501973812895079858798527504915170312293104653446501158473320699106562251042377219020658396326614945207262334858916272852456041435983912854099910659435324670767251131955461041070365979363464140515370524675115551319303019522008044593035295078709606350479906954655810261372096264560734890205119876737842004633992551022560037633344332511679884687079691116009597002326267950666684281569589692488692579434649625593674225838817243826214275315093314607919922665054691800384789825441060386400763378538741729085630474983199175429848665360240001284936888828094631173212755053500222586622434497662889202971923285946479251500379574891124696469952885934528046350277408491804529339252134547543286682706799034010015242261031567788087995351414749747131857872936153680018225435649397799759922401827579256107999591471320407561490968217385509796964033025196155148642437533725274527727526778578793445546337414878779081119668644251719435066499945080532448576702490521019847263930027732205486604406606146038732988453757735655603667353859418395365341269698019679066204842945044073755348501820137338127964114246276621566662526802525666023865458842220810300449819515061909263094338503148808554470867774992892728461449502182016998716101894557904522561589722859466128109055399741714418401289230286450622706120335091755831326058134273591037399480772833536880837383901058781864259424398439132525279307836470319335144295388834676078237652074569376083711966189134391922743831125259296629699646906767275491886114368907326242714129892119722201582444465777753896966906870304423276875359569089234231207384798779825796025477928152196407371219791729857987607882412249512692634994867120023156395538538442039099756296781206626616534172875305800289212602048151564221835204298051520235576267591024688913798349073958596537830025560167482341950269150053667855266080371277089134455069286765600628565851183307255776074588161652458074712563082810633575400704469498812183549059143863346407723755987328948385697572325734923982392163815286386187443164408072480313479157555016806392040491145705142036242821718225603710557573979518952868242552339050377915765261388513863809012840609989214492913051158948756281487824441196281421775173384235943639103620633018844094045344193800351474880724523099888436390651086273362064986905358122702262633686944526603958205285062405210885464441439858807447402688339048834223653594117756907653344287128634469409451588653665268013582747816147358934583364587863720412551919442033434746273732138954422679387983302229203937286705775995469367277190503252313923597105607011500956332058982008425220094041874427902411068805363536291338755029699359201239217123117980394990390442743819409021750778792864887706700358082202324777497705789929747202744750087170404984997444578518601559292623244335389176523429162898932003066305565410512459067750260692108708682265745602545913159886824038832534506291531186662681296054089838432346048264385103794830552417412198587375362414962628989345173311013950780573152399527684443190964195881559352632178517301593394934321179032645567725926686172491739788744693463283098030924700483572490769493856867591286471216096396890969114675155423291923763510699619794949265581720191969353421674171574850602317984823302345285569916786281460186196787362426036865618212573583244872451256596524049849756785341476026377755044411793734848664006968366442014600025722948221890735484635978610966706121087868627973350372750489978703839780154445086712160757116474834561757705616789722964120268143924915785609270752160463013748522906183638655847455591307321854590688636657790295466424868974052777413974857857883418172643200425531367884611996828394268510394326682533494757433837741896892983478030783359295544987592191495642625773493703798321106090516361193423971572740404046170376677358355754255858501458363088144438467522794480919707826590949017395627862482976924890873177537803588002771731386339911484369663069039322534105930576718008181872796870237508076648085681411561485301752977753665136407929151264457832023418176561151613669616407499096217695696209177847947735322399118528313151691493836858139007721538661397812281126555234914042684182419634165698382473749288977023394966225623106419384045033986214379151557942769107850089362459233441980202294449115548636518815351474632044128512093113817266786293262813697428075571077913877835056954222279552808845536077655247428795918684260141333740228910793995605895021649818304606887590154101316589425695550511166434819815236096482390428517290811963144220691098193149898458987631316351975921021821657278831776592205297865422621911045068361141432473103857266793586806830214439953859488862422196003788157225606340242542499280492066588635649914321167543679070205220504640299822252445017693492040075678860267068124380779250732578520933601669863007388075432848186069769369683129128087440149800139778205867652770919898173553058356146877150504135066625647615131396965367580428440389238017438282007304609128545079219122326894863785387678810899306016147226480752155980082637621427130549866615581682371103581009320636333649677000993803062091624719979627742012576612439284332963348167499356433988486915556129627211575474033508688202074721860392374146751233883526798624918621383769312654796488638008339681235329939525488505036375310503581669246876694678800637336677252960848494406665098514927852478296284205304564737396022753036646797520445139914374261150920034987259336818087398920002475974603946127401104810769499666830709469831844316397595628805209847505613854300237020870038846560051885157108820561331326512222821886175677166336151037373039575171779678003597692276452118786734611469580044859482806918648350107624632982049752994549501266826864486130794470091913374745594230668725799143598722843560649110161394230848872387406095758079883064114920688201115322492715604774360312082265926163345233965461997056329603243566287256950227637014533493658429980776046501523134704287990398568464512671126002721791918874340049532345644673907456225983411731130390508034228906518544342318830005899903106774722233031333018238473998011936652795649942794373131905975744074554656360896080414855062385338731679068086996529089098687811296784050697585093129291022040872221991077161033042145935824489978736907596786694401144229477341036381073144783307570265085501169548506112321461570391189343477245004192139265313510659748958342941055033763398565564317803741975883273914624419023787119758031435307837226313111535216479190483878458295307637157124344383220828486130493899662572774886722517407007602769366536379967095462296822191650993079753697731235936903851457398706970979709202523124087421966923899850950004990335880091087874938512440004769885701064049649603618385870874822068699215733641206904679944036451497334282258075544441610867007273566743386860387369999843159922553043055852887860586729727703070756310873281115662217363148096624842478955787130075438355099805087740571105501441341960836490569073548964441593587010440937825311076910653376803870882989461791600346553001479146574071142451517584729551897771855220790228933640096705494990846117721654746574287749418784271722669586220703196540273198618436370423344548827501383466509073334695837412074066088364466121766962687038512427849575513346243800283437660240907085682357332072934497404679674163653862059327362839371333509390746300017066887897532821119235861966617062297728857603908793608355422449700761549833526859726056482016907045719923827920332009338284580627201655604728213012602791399158017619062715336900316312374443894623677756771098369157866175469013274187481829723717759442688889091787208598219974021100156977960093631574235177227873665573346259795312846636866572010067165180496345832694900411983203257055827582563099013680999507842531692376501784535725089651589484276259517387263276596608866021178420308410172290237859591790112014395990462021134292600666247726954908846644054159033188638413990202570559170466240604889743705374557236666097436937957296795913631742590176891461664057678881721675921660127199835216441769252946270705454945712006595830160199098740025717083068240473861198492259920705009003558095720712812965246010475263614131161538531323688301968381455607329554508798546903494477544023540227518418342403746305993424168424713433468733916457939331525843021116911773822042657370320298328592469552393376655055146287911025315284573575744812537184236157453829099529661496017085558116279286260935290917128947783688526389510637617257929420904078709524040550115727871501823271243840414079742209788915336148266412251424925036202394666100969730790119225370575979279918940013342351189587730826784210595171508556203864162757199658256079650673774419523654849754110885975312175864080327996814051620506786048172344234646206286316625541852199510778985148904670395059025798882856364198403907272115934808123277618046575395352983201536195080835326067418405840325144896939614227122276320688293860828121863890771025135888990641304013739534880615123071873101078178525883508014432186516984674033304691400970183152532341910862528144396913810134246590324133998391424933333798154717663309900827820017962711453055730917066082173586304573513711228470404601274228286446508722994893166567265765035455802647745654075335048900920462832172165923978100194454348184743214300776514959175871005258137819546454313402533495240160386529299617345357917742587058526091999317283886475675008957821526419428664336703276387931903095330131905784353959161061023726902882283506915899990877406329695503890723321135220628081353676150112185255863159333760854473791884588618767261279449672762243217292532778577468565304153613854110086919296532758268372813997336189625467810839560401331632142474236992722493515264866094845611002697955470275635646277080178759025966388953747134190123735111978398916686583277003887789201401143208374113630013253493639601732885816011379152545176777637759003312109940463592324694833287477493951775997686786495183151832883803786037646319416386594419626376841969562843714399498495761424131772936374116037494118855879241117301194105143717156000179133777383761671477522719647486754864826763893278425802435175972462156100573408350554481933694369862933484508657650737925744255330218111711467863343979496085357020018799127776897269321224058685620589494767368828927460338787553509242773844116634769180315952168807062281871269746592876277561925116946630735753607172477671052659499157129912126972240235441773732487546576177772150776360300106083617131373707390212900322099117079126490400444021575919229600999138929092169507969644474461684229793854554372117051482299403962853954529080586875988532164557778537444155163092282144972767703698980131074723568641930758460892730400188124906020642820442006533186734478957032573622415215423908251946925728555854974623156378592128158738084500840731585002293414360892501392226427438952399481122800615660549469685910975691531473978751879464654983174136342871029408196801538832930872444022716584980266882461399149895078933003447984448374795276835307175946338997498359127386845529197619496869882080643228707749834126268632022161824300334309681191024076223670553894302198387881355883956008988813886865927590021114537811757140271565404177104563073296792120280222896971780434890003385079264013145120397410536320522288048443733885868146066395951993495953039135706724614284725787100467886857650171415773869690123800355899928610639184124982734684390742942041737813962671957274132050124268427262493975118370586247339087975110492134745117916464075121945086919965101175412668281655322433314862830045032589612469896683525833028369530282632690965224001214530831419475563247479933036170090423117811817952563619390053283677252961468445225219983581836987930619605010319237870520837497710531834375964694827495778182746225384264861970637380159677587528135013915386102061394119898868033510756109250432789706000476264303018210138355541443762503505790630147679013218137523811938874578859427191546455417684627435011173865305625544409695202840919881593228106196609484323098967565714187329958676571426618162077894538715807510875166393763586496235428216167238603245962418206020250939806852863676507108757627248213454147038431936853797780554424137019512714332601219803177773948381262090839633931098671659468654891554863684562709780817266980452789411693772531415996659861960427265744932248708286132755093967179481688151037478721114577045248605616239676524131247787619013781652935719056143797575189691100441122927038335728193703009208374271283026658895393020567578420725853693624860070292801385365989357393742513803393168852817057231339527145617456224413034142776480352773730925499263940270869843357934124498080048894511905640472334204770220780724818613021927981727736605655031564314272110045083952728098486401624892847595567199193634975143661355576535775207234484611941853994675503536863137621782467229088442589560293850812207086130172143021085256501030097339352986017828132290655701356542533869652758912167241215026100403919495276618045642714847723482850641261984922443608388909519644183226621492813689163906685986324368143524150395168040124819914167594350345470692741949988080786326452060234517061124278814076805261632935835452629125169165131382830220521892441170047854903594170092071771602508555041100556730809713236424012471337686350515030561808093912653688527636738651664083827622856190789609993456377802726059480693640526586590918369868199079441693119662046765919098377473012557382129107665852942195968320387555589006380155239132735124907009560948456724159044393387899920254417882855802425442925726034401250599345064627281546611548445680028379869423831424195443026310168813360950538484486971770585407926408393721440597795305574517247262821137998651004455852275148297376772695023030835054641247324928074250561718671186024381066255725158872141585102353611925968588736920270143340923421043894824910951380770900137120573344309808498635209232316814913799417052507312533792471907384079086146210624349573860349461210816684430413036540380300863252180461346021515785755651795547857140474875664216454367425667309571801049898531286581126719828750330676991107798779980260574426434816401732043533531863642414876899165704342086475135182749196538790790983927997510100098787858131697210671102559829229645068043482618339483650292472207441353726000720446921059474491831903521063191596749927176500626324027100553032672375937514956546444622002287625173930452860324267977059297535994550147351073459273019593122454767603313883197879179618666389696793027780792098344691029317098438155452491250010106759299261783299775070856978608227574707873069164689396014647756098553141673821736018069084920515320213227789725866022036259935859645206552174564478108089409268235392254996034233720734999636402126031041762309494910020906718534315427403116280172782205872770369761416500139517741942962370787460684209937100505771814973385653775477720718497290817919550397708332992861500649595229471756705011585677344224264867578979130856454005477169171280118136600718102707749615321275260370629830317678059714656991995576467709274806074266239327076553491078576652753626759208580635433809187403782639820574347112532157727805613101943063592254714383710989536642164875166361567394163692174737375124767531018315395584992196662435343163313783127162101945884039037358302788126684265929349147927628426488637900237142415742672154379817056185297589340378754769608330771846758782948348515707141640695800031245930857195720509369741277702504239574872532821425050426895382569861026558013516694784097787459299717515970086616819501134939093526339108134998953937096634237313691488850405794718934226154753913057116236875740063677817429905307804285329469613518227916245903568915084231330501450561177469753883813033519844587741276540558306541576205265454345425583392452490890982559524361708673578279424016706376825848248622632461734552223635437942084043027416176044907842218725074544087500380955162239320358450796555493484926073513307283980098661028702032633693520403348835633354497414875046727349459560819304643017806218967214580637863301953975178286796304727090632106543617858872457910024995502379772523008801125654885104709491201142854900463079267104130146278136330145437662591638472137601841925011000375986724924115766712269811962586902276190323917861684407284718945281212355385299383298993758107792352858432490022095128374660420468178770258579961335422277390162618333655578565622098298517637009291709066976056825677511097576841961814348708100666748606262723298072831387987145776645978797649740452349331175160826347942109309903065295064539312141858771294793350200991103374749950338190872950015310962515096606804211373612800875026257147727637945620829631229925487966918001830058917585645062454717263532984528511133425988324685101016626496862229147024116003842477543714747754804411978562942301404294510432815885043897429416925737172422687330665753107932466940862531792803084172419954082803846952823284324740893948309487493025600980182854018471705995820764337526817786539356762033808149800255219355501735436591547375893187831601912013826434988769806382262963599257496349993452695796609222470259118527861462172154520299940350775567243719309611661453725115437486584103911303858882280190272483505959875674032647716496225140316569309444127717770344068240269303701599679801148756039451541474658722663231359187491082226444275942907784480859037629895623712035214186458122131792183256907043235702078053924874010942255768070463045407046111678754036479013829634537571014955349002748479528632162205831894685756502171354680218407465614828935569412992774225223505840804234907406777099693520983907296838397837035933228701002803504518265148288510048642818768102782032843912839040557289108926243868550534100629295807705743126484184031217118372194826008322221287934903553011744527422747324541293282407480841588957511257534424640293889397814150859009894362596542792161684497963838213457524477399997588226794549142642685848008310231526870959010805957796354894624747171807219218691592840387383079033812398205862466640815883947047195364212288844486227311689935643312852826773751040371815497921549411631411817165055520442080486280669167977949391114174769170149806796518206428977118776179059517265982838363176978868333708895802800014779196583331167944183436306921181652860305805308869561029271523317544279003480609864904769787745011702097062686741063854011489625526020476242615168814430145039015427040728312841947492235967837459765491530914474022014941985134276593272743967876495636118966990912412092468134685512910485976999313391588013705000222830989057672534732443762518106879056740616493017530691716011559252473793997524272759526681928845586985005010005971469744926589182028269663631644399860220240316594854328646225273555141726145165331345296163225694287439808598335084525972688766449323678009736013834179391648818228367484675400318154976828759520031167737653364616684398925742532238257877027370724674687446701581324600449048186351425914657050437868710665363550488060785513876892540068139005643385386597292314464583830764647191428299088560054320906891144114035912362613763859976467130111110118530656011196997580609517962924477893848164747359867269349026409598221512897478130868828755445845920927484024348630330716931113017394866324854638359030703374397081136431036422688083383403722426940092752243421227386107642958201469833074460434331712508048985454237041720137487889303912083797380467197118743340415270590123324280890115333206537832256828942270743875064348594396419069257480693798804752230058962091918833917326158524661987552687867739250223108890221731092176523275339210370671925682199348089458187418498264983418693993337277403645416514190869457300499751071630475247932002854006662305366230805446711513791146853239459579166230955734972529331524754637061536700570416344299021295775466583338748573718339051438750201327368017038411328940886699941869631877825001186580541248771425276842589698785628875540426471186050661136526087076527187475703931596725576429829012014030335568651146405822707957678988581478574067866702122230958592676697210733440497329961578698861570592983585541499212943440200684395544188524107418598854236809823516252208875997504542713007203304869292055727999762016860700673501666597440619829977619447903511966045480862968306045514528732842880980791454857548721359668260184977441690669216917692209255050064001614948298511051421416434085985508308233764670547642706409459729922400774792685462999304973847960386071266220356347930307463204904172488931540833371065625930888309082334672729158825284566894317236995934409768539209019735238758436785420811174310511968075223549461506398786007485876324433202016959883380881162450803313428324509628446847110531653450382329704364802826145971311226680938772650295184016901316748875055298922167210076746735888223680455546665538840225558140106303708465783821665817983745082006257134900741508147248598023705289709689477027040311892295774165309536543163744151099525699445082856470329560057875904435512436932867036114527419008348886025196116402829091005156659796977783411755146778545112069342196246353810144666898301010716714523002300636876999204218726283155474220978947437974878307929140896601533910856594813904470792770099005173635789117070286455727283468511636554161873613878490958017966433621422597868753780239515737303497355825694885319590914813555811415145196556887932353869994683089706170627249066028198151761718942503572107647324386798503395992398676669117032941769755595919937670585606101154166334337688471436711327193761857350144712152636648890793986043978569170950063137053232679781482046851602371959609007841689373395354893162585229544826419752819645105794298549639082503472329391978687480843057578655759668588086234096871723252761051821278925265820305173317230667692241897129128455556402301246427186809543696344261119511362325493539038030586855923275698882903305153379350474838785352730583698071484072419951685045445092572645736511827696343477601152890954402873966924211745420436775849744225855444865601272189128888706484978963740834755040157044082703972682294282345780911442900907745700970639068081744913934512722074664640988425968025128963083583636946034072361486890023257121980205861532801170649019770958052961487215078266123221311345500976920050256963663299067134589329078978156785019988203904071988853137268632813514795089826233196681389793669956308058105712949858126400687862687393558879989404257159137069080609913367620839173680327703218692637869784491836887165553009597600657481923564591020573563179105723152915972777617383677947915903530575871444749692494201010226473123076786008123709712365897266371150737512495432520586526857838747042479236615808484452335684483345453816251093677800467994215683169480347880614712274334145795780996466504887863594662898441241382394204474867956263546910523640514570797806753482158294003319080003292240802100155479669822962412473279210623227668587580780307905093810447273369512871545730851877342291999514683401921374544959305914964067338661213626957941764598320069292018001631418221048189752034658756426969730246121608752290529794385119307819787098045966555565995175655053001793031893463376368614377443222265427416115699529297792809709206213688837397680630042656533275301346877705194743034692262008085681011233079142633433085805974799125862080031607353453902256241253839610839952345570388118719027679465638314709849178072893821778551593808237795015167497996966641420835647359830674895854877546668432987394476586886774947533526330531556208340844665826282605555423262804881058120313811677200212574988547747344323695823190569711302381526711195725306669634841947524020012683655269062033284870025101054031472380582526107589891920867093009792210805102695787032937294444007584732441416942364783496353888258184755785126683494850099712309882315509012645338355110787749689492862770259145218823574799852190983127191362672954332076025964092954177018028092721499385911281899624812491375427943743425522555449373279493109097348624885386149676932939454880659076103252401982706474495901201129600326870573785470662032511604535240251311479381872644620957296196488856150358937334630783164101971177588602845567384961658510227007744854846070963100958666618038009440854911739621376948042428275105524637297858029161486591386502654218232465005868646466828554465926797742218118524369152748870024485801021479045330248254990620554372913736166676536545804753681782850019101758520540681857450079752770366204100384318432341771510115081381178308058355372792775300343610376690168735531310862797655985011197584740339222257448605034616011574334556359665801161269398676749106722917383032822234744501318787147798230259948398378913879507903904937348603778709801259376530759530162673877999296544966644453576198224239525275075897791466170490153095554420479099744619571290586952710273044882579312104119266039533038786357110715628244811958951437444332229425058151480278582047868215674008416263547551071159687298149195361117833092336970090947548415327559141735640208409926982617728692467426564104563920538428213193806717542826983469466179881318257698738119342519763746796106281138312451926142209969061305496513822462053399583247395834123139409276789005062693463036481482379721503760670916787421482057820403374092618889208425165923254447811551106263371735289262024720484589861121229545797034567809268404901036490869710260600734960487695359233543287673404195724079269135338998451241743585843116066752531555408668232355895294708900304492967287978987633964906912250943880854388403840293286327840298813689321810402811275397583349843835191643366892453674773922761946433402481529007045347107290215021179744122874447584229048910659897594347805785898531613042627995845795119296243040009138277105711368006467406950895889205015725961634253841638328526543500534954200669443160089034226240475774754482882947729703011341163057922539425806653393355158799220605708012138467646616187478735039918215167734043375739148308548594104201509115287025807163864807342878181601742311630473257673960384741482690020691108581007791536833398599004116406437077408743540555261758315339216630102957599636121443683386363027706261848206279788396892425297623828424722820395258551822348359329410080894881907813261513571758170996901070670405181605369354552891164261136569128190793212488306549341849201945755229484324870864650663645956818712379805986532550049249795506204370113039277676256595239831718896408610423069251080077686397953727454757631417429370057199864710397139063386743162193194530991077701400435500124971395746476442041974070928469546291454293086994505365329627894020121181866220933848027770350161818930092555013586557880550146381984377607447317671424800933109552877814315934639293312505888987034810944365015906946384258711803945754842620441844964500147529639743856727865742765209545164062070947287639873510016068711108169258382463909275998773647786616307927439444737127271643121715851725285401301356809374749503203452602055685410127813949778503331521790757749587997466267885037091624586367332865137530774212055238559688174127766928093794541226667422815181645268662239115988050376104521511239518673770257926886662898989717815036108034822342633422657997415143232525796048142129134391969175181247546650258829059546726120309379889800110450367907913418216437357185860074739228530240094938995882672312970381749114678353508862667526043583386769570499052247362956682529687579348238975639967964718340460797065069573854883298171083854844925747910756431964561050374513806195468006146476928161888465412766597615181544974261928144433424802837509431715931937281699583849224567027760866241532206561829647806158252443197932097405869508779963415997552593370890702187016084010507235175807664482958116226317364030749250644291199222343353157932020600815768204085934957008923431721448058493357634994289778988017663169154630008726331942064175891571441878650367431659077279113138586086134982267432881505434614161226008788981382498601922829709376051047107838944462480868080110923602815561211540082654031624114668482738419007454007761225601504402504972015696826014356958916200940518215039417490974330452331947675553413400785159582390612619132233579273351209547682550929399037254030359560383681157300626494832759331049758042513317906854481147814916790399255819691010969764901362120792915944533780177466460432225706599822674714931095581174057441109100228345267385686183603443466037083249004295114626557594096497381915542671546619404946797722716869270620066412319271447328385328138252738247404813672614171425952081011454007596798577171256988470791602143716044007628998624380291372211752467315436767062693194915533190614006770684104593902998943243009848971145725788748885513999083510462223955800920523306860515584040196886182859893510939744005548636775654717848151774178651227044763243526640495457233708063419175404453435478637638556436019285783420728414693355472581241633013512023070691181028916577958192359477083458937341749612399013427620204220025610794931699081723437867703905165492585143873976586349420274301817081609261726324550936155346049070812725829349405587722296871864015446441817371887424086873426753027620590491845367565053997586018574071591007839718855007320257758469588991565939884360603647281538260825742082599968348087684511332278356836739806044894990132923161531120028605904535085765795771868454551339221724627759251107828042147593143797953690147808033084642715801078710376354195834038466009429897081930407822536734701005195078585929790602400390871053996013848341904169561957167818983911120398569637379769530587319358719335360270768874647056553030975551218344234442425292268518168344568428323138823157154818955082351562194379749480169034747547029278630810782986583653278509830487449872637253332700306879004856733899865632696611984553541055152114041558471364573946907144605669630543087242062803069638211929792934908996251758530008125378757414299382409402600151951720074780135609241090410056260112062404465529846593555485507586771462303140272567849438621367660171189924338292614344280763957475220496388558195134757168106540406818283972193622707813279426692207635157382511615992763277679374991775925841287061496404774865968383919051688936898477462360983407877577368730706759779743773906206294187218953049252071729391471532472184244253983273201254069984064363987035125421319268159018622994263944340149210065493554273779035336582549755879171407247769420478488763303786233341402961419808899913733245727647933628872279674425879835152391608410962540668545166641728879656604339262189847952626708139439829948036294117169973048262636586812328950395077239810419156547123819401371502025304276191078623432601250270038635699808267797876051630583004265263956694779982666316869626111665224322022925545067632257370996324328072678137234520679099178412956778937534916080167903310058174877659071706066662374987668628849813504897452693664678714255058008524093853110690883851541705611480283364230945241662549910198219892610376018037646530431157815544848172135371370633129589772149529049140055045307494104674084807721896799523354919801751840048431764371072673595160973962897208196854618552871890345217145924672631415916918064671634959797919914222794563329706880518640987263814228179693255302476903886827114528984293171731131180713232775891884742135738485607052626383582287206685438530125249771206285784306655747161912808897248864915121771768985865229925873453327728466992583655674907295004530484863589404010076877950389845006847320198739711033006192950405404314678561095176080399761846812363251398965345125822328618203402008903042187761083796503511001241315343883980376454118918429858373705372731894751281472610278359224559511392139286922048999228460696538569676767091476880097214005394408030416077734716089863884405152989974018197463817728521248066964393957000173770969399549372351732235985821871313615447817685336838586148385550420921383329958897577445028916156811820255274717403711139109577669262645003878109293059311244194560848756940218471056207005642534604998714294766283550204478020187571238494329530683572847904327224006818392319815273214110081689910979489524670460718925824981947976773676330954562076648436152625114860591417745489636576270328095542195003370310238156730314007441736459903777491965150631841457797276823757913436114383040214775598654217134176402620553317100635935372884063068050139718130283470648557271618459906768295454622827871267958004103113473171179076940696561338256607139007249973461988768496958604412994263349951199390884673280298969191100998203052411993700639377057548224273996941468926031787677955360765408772459060077969258337120220151107444684606938993569512579964699198872772407651133275322638444255217367572539585906884562523706869592028205486204426640202007602134943209973979411803192186669818281713330134122143932749358477030087750144809950726033255613099682495543062926580358963047610118534010435932740676303363068614090559031059155717496721057845114365719015748355738611644276913611893264228436807896972391395007572347150390737540297225661103172823218789150432407087435877002158868691979302631714850191881166370005074438763394593450702748110352556365975303925876282839403680656436435022252009438124155702774877020414831189284751815871555847804398989964219217288995193589812549966729356299956272707298286779285638769434062548062866977678945067771965612934803245299920188779499566679247749046977575282596237625064672207396664397827392152984400643338792765554478689188722187947431862270238994038539908752296170302495273460601070917633966506289149283334454251588672152272070991097450125553741913546597044146679624037377969338238137240016162171018086036365979600043238628478243525549641004008315387287375461045173193156211491413775938840887277874448155954231185998610309627822050761128398471743018537539161656837291537422303844253303978692207208296717846237396541090119176707393537903211412846440968766561987617253631293750021183428842055571732626985638398947539949340319074931454119794236121978568421337104810760213545653748093444975859949884040248363959938219652427803987765306649072506265609488668184870698882961454090344997631939254756569221764433366932937229491068697209940615200207925503058319449715958838588042114098974948268606782447106218411550792978779208091705591879165084178640247569862993727728776223288123354224526697754221317872512448200205435200555840951692734382902882136687307242611152579625323443672280740158007357585577415786734438880514022133271776922750152103691950779696464529284263287136831604948800048379016891143124544725630771443197530171744264403155157651475105452797676073553399299047542383746408848147593795742189661297614044037833281846174847362922559529806361604385150651651638493847202837074045437038876844181759984185840969338079561288882061142339255302902593844864290334330699334009263950592179685771754020177400287525030539933528030991112638125702663506227358535167732257928789234468699767522904045201065063499559712734650319180353790809540938530303612501153609374274079859557714405090553122884135740587287826135521977438408228346927459847053096341209170262857655619907957037236367623434246363183877685283162918300065928595253376787782142296044283522182650270820928851622120832233965119639111514322779782110066252086442657837950003114579608182449557726079435918174863297071911336667672754750572001362186305623294752914111974977952667624246769849561044837729850653719753517681774958236880000921452640874532487081576288243534122374178114344041075154506659354959237224479283829699525569763200208506326392475738477190546196429980811381529830518466183736872707452946824642255815637690467108425173876923859913244286040576764705392195792805108670727606371723055820485450216043433535636253521242452400285644067879454690210506828418526351527472324367946288814912602287954119616462035957319619011104956107385691116541529017443846771988379007547405739829478421547330008358218255346858223960455312947507471180794809320293533332985372645124569619030218280025369677988678264279823717197615152742152346167232349510277065956453675598557821532682911656392539965329540229596505453676973418323015514486118562913867492561126987145422271149748130204065161228933686479802529298426478875836736329810525312619948462061202659982483228869325119683588360867827427154841022750928929074162713975884535332599501521497292327133671642339037153044752212418851370858488701854251530913014943787101043918493977431856960884958645928149628996324303993955357091221492313702776696582476350656002433010400754309250176132804612888605846452682085432105830190681258600835393743694096214626874596683736119179790672645174875711429366037164024643471750170255617807981151729637039964210666108600366167369196645459140211681255629407992954333933478102244123084513763927378608856152511205617970841952129062395178734104762397969263436329964079332943699280302283320404051586749884455844230775833044068183973365028715362113342034970122754534387686351673907053187198665903311109225923018000324392728333843673540587958820076795525002858503295883907031456130097331434692148771999534352127655979635139380504782478751525115164137709859873062894119291078051388880762617969431149465514848063256189530245068961202770671452554723110212687785010300494035092991787143103683683431967466617435521992660212802140432381277176226213810114295287242314775102310774142825612470710298436014534552936753696917561761154607152902031440071541546649730840935882519695004060962256648703832050709406987532485496143228954907020320893420367818971587268993397426093862052818793306922541041589694567097830191761792081504188953543094665011706132052590204122417853467146375019264437250787540948935157577287540146689356446535858583951505221509669137030234854565754852200449570345308290776964414023489067514938485722173885252924702273939888248163021610842495507231479813820682174343550370637711465727661380736660814177414457077392826452955286099591680848112891938033617846937543525453489809143698869138244596921165745607408062059952152493235922278932721551330698751216349893973503088791375250783748486045157301066294230445416718041886703951533104843918043537367254580663304736558480110272855956718314939830891035038132150075071126317598307738021781762428880508632905900535789401558324157902806577929200674352548754956389931468673916110380329752235202552249731301029030195279913124986899612534481840014031160472517241858057222636786980282681366988045679483448515556694957933725429565045505203508511317417254915652224706898567642255496899161670416603128151377055768387734259096047246256094511060881661309663104286176000856390170248269956776557113810311981463688708281579285553632749463628598778131892150909994059650268494675491676952970813709734065823674550674036284659979258108861012629408932061079133472059205201763472413664262439620559257489653658399610088789217272361661862800083600517835632649503341425508766708671495191011615749662375925481846851491248796720342991638749483298863057477224633135013297007009999939442241824239334879369458843932308919469924865095874131932803739285049671631276718494803385930921714079534433769467609440910245694084686772870169725896402928192223030512103548118152360750463853751680063195767247663011607468043089991378286568609083476414760029749266786705163874398852585916918074964977643685165692014129229867333280591678913137230382550328138012857331224192189088538241511008240738092526249327844263952478467404760663506177678408249488434757317978770593410876828249365788701417988510922962729764650275525890083600272703881882772838575102127065742765839444722451211459412425620138852976001489925509517064519840490613044157218336091879946697973862493639695017069940797258647010013341388899482088885695754286765559878040991039624418212818452233009467067310462737486382697082275254740762033626145214475350020490632613824674017176173219838175205218697572953094243699630190353386598913447097545189813068919726113088371749640746531993291071543287343655761503821822042944025797942314850600240249056120094753981056312000857724167179215512827020694261184040251718534853769578514386277170339477982809971675803308952996286247323078317995327354212139530139314032309509741469957977042646672511225064268423128735020044160058490504159888919343367981970769224685154979138190382589937040773191814276941982896070091003934723161782313661797866241811459805455092805154799922080326884906996991014321725996668412689058362692522538008991698289252818773137486179090319179421034085060403766373137237515463825340850786192938779917367753506176951479346626876967724041375185090075032137588187914649143783143009591731553856147747216445270016265083698411816308671178461284995224143725446122439847843087090080104949645861399753603112252622506799626792751833076649654274639898853946087174361623740417115189194129274274856549007609831748064570937348098715996615188611622152036394734307230669780882035837806595868072652674806565161545139734214451384451946136149084937546845857556195685550053517808056227443961729465020555796623713501439813105146633164207839867549309198396370502460132242308277067891875300294955064249163805288794894668446824311651312482974945891214595060999738413968354218870240644384232236736657350725302739095606928989157895172326638194485489977383991686726100731707524493130245930979508424399149064862700345572302343804001087468572271943220601544916639938128585528246481771972641656371679209042977257307729531597926569783731905213709040833124371399718691099924252928191525189977646960156288281349804059321591326209564965360005895308903257627154090270307319233371911416875784982645128565664930707134303052568862286210828161660127183790462663457300320997034141941873324451137066867502036548165811772929672538314162967921570467662029172609096286036455798324563124381882121576270542464093496728157445911466972838716418617524914138242830235002137359933353045944889092148199223004677682771413842088411971289455615273056908946260442730512037161653305531874630415752792688574537010308929254185440138433218998972181259445365795907905118918978644509730502642564032486793533109183989265337457831778131954950720578160299670691986856323318032023769094420081918702003758625693141485461132782497987303984636851552710973585010371942543292789840865123224667898637691677126701194800607191537157358864776016121920569586600774310190793078694051955791485714086455473839759011645334771275572573585021871156003822264049344510608399870525431812157734044985479154247371178481861130593035438210704612071706026532424931465403284421184934948550936110551481727787025382525594491387176782093513564998161495337507767461209950036907583453973822106122468682195831030252312816587229634742033343827181179626900065534657661240504105672755301662739718940006914511306494018142647749958845037048637482907002379283803805206784392594942318041777040638451331321722160873413218066082560766596243765146665706242348859758995120336297760274514427541686236577056807948728860376071525478795082252784684619023119606204954506706318099494216390448439122668678981838053742635607047478401100515071008158749928681110982503012736729154745845243140996153978051480448690360082625568075389721683859131702257880899026202651311363514419790178553595398187919998276601321934391366680602249658660155998934079785138887208804047751374673957436236801523877416721633942085833191594723340511609734966952968340189113775849395715847504565060228604645384744179736325251413035105845009567655455662820928602933374345887757148485017439294513447236276336946803998787118162211959051950355239462773116307490676707898599528706683954623392389850979306945782863198568156294452794236099594478703955197125582545475481780639105829857742555542348717239619212263678994468431614564558033193914365710573360857685465223842100827024333885254053106288322206600180292890182612594900764610154524364327690864500725179327244195852658889872788319487968632280597908337261619462569966899808279067121190830687961406179263208738279232311332566522291277417088493392841507820891675404710410928014781926535367269636828678497640860948123117778231150595033710657468819750974052511496236149725808741716524296076102258420887227979949416588003144486097095900871564603196073209700490759107987527909512515383977257462218183834636743524988132087993752899988995867918102354627026219293276821486924248941608816424709934265098188708866327202481304270402462615003038854376970390679483410173795198267588082864406062365296492683130897762053232720555836285499611661702819243131880583546472648769484636598056889928939891825817021704336633565464556330688912541010096535134629782912584115234323313948423224814749286757019043054842587824028999994712625062775987717537319266029151580640931313007349666408509692621327263693916150656130049532745948280565586044640558308772355496213468629268024472368823069619179942690078723948214661152138009535839442240584305104144392914572996796829986981547103099855239531336607862135549820020377185781819602526012201547719247107337932672740252526084366553091406395544154980990709004304904864322929739308716985384901679987859992736695734731214007228539633085380321220662414955263583883722949979735184712657175492681952505424673536228776648092193781996572809319378482283599932031897609270567857368953664169444031942928764222310569158203814649300636545135675608969148175430903248455807547579410597618576725134079387850924210441470093726725782242567615122635183836448132578668633779447198491098687919650205512982892196668033590513429066003458666260775348274633360097843975571719207890768573709473559992404709217925774969897760276329614700306694278146050373298405150607108036802132682241574027446299096317250911872422925358866151595067166859968624559151508300541118152059755256278525027570549932521976041689953835521787174406168213365072269677502200451508172931012485758582699392808537502811648834900246688402403708396558949636956709239926754480325916845849601208002826486837419871656964937655969851655624259752931910293867621968318088742275579245944727818313800375728685110476096730357233736895160194943961704332016321610237442081329428208671238888823735146255909715214661129594950176175277301906538096685695101797486967678488354439096365944092065807070790922904406779830552465374270234904880833147721952133083750562398968349913775662084043739350705891505130880272478098001222316641518097667316005248319230077233301120211985360248899033727726522963767957590963129413717382635266306278888853958827603532697612422255041942989641898606094974861858108362714926621336347421496507052840324547688773421965008820674787100368475142631214600638384569150887274786984677249400125516831889994234446915738315545710178377802850906836375189580214077294883104665862003779382319732291490527324395806188807830042285036912242393553740371267242023161722230139262350825367579963256382425758715952695744986061208545529249265127566732786110243361530585583920902976279603514999702784947293804725006814050191674857411324768694597738134215842929738191517719868570218946723845647233789088887738569161375237249682110173293305161549041700534755360855157227394378982520640781443900948058574793400793210512934785860870322169796320756084565259392108244333501504302659313954543929936032353237844774019338796546182072874144080780510082785152678537098425425264731227425315857783349388925135248026297186929173987902148216133132254701573889456967093653069676227970564859686429401029122383856902087024872353985061215211830934630217418424044917475205755546006959397367824378375049687279609849207580655765228341727456855380093684176810257324728386928064648371644130673239393170081741349518330491523215099950933124054960831778654654524981212484106288540503662490071905004215703456333803748932066102893606300822201138187677930724305456804167800821743380149213725235952961683252725955458710651654149281235137630499921926743391479592958333418268778219017277039666121213040286997282862009259029583360220152716591899291705520029083709489793300589430573154337119444919547156618353283455638367198303282483721525652363056553180365964709414009316866583301488102874019232885047837981794010461734424381268801590032418852180352860570622026019259593414772707770188505133149612710254107887131215055700145571403970888515074164499027829392217212467472687698866218447948005630796191653654781750999339140083132849599906719145457114311598058765125245716119628994940289161450401854974242254637974662946979386397550877725461124480679990582395061735255665063790199618145945419287706377556699349782117763401295774679234950184115188609791368837864946180754894115805065329736029678692055395751826154318743993036825125992170342084467563977105743734592172817990687887552852832956432450265484454156595786058188232494305375300782059565267326136952887718184122276107226674887402971974466792681106095968430604317374346563665487938283075633407960071656747245456472706797973472789810530759334376597293197423080702571606029981992849952351092153003303339881126389640920141262797971128402409071185091586529967247342414056410994861623900680987072198373213141088890272690051930258202419213719747149556804564576993625222792955901336879165218592441909489830500395269117544529310265662406420662410214983649412937170111833111210101451368825164222748138578230005501044075246567453729521583930318223707588388508440445559592847841488895136430437014675372495648953408384901641803241836417073654286914481162463404139798157671175684988615986188686487006395461083496579586105429300491747673158106881329240063051842707051964197614654180738252297572224184326350456158323690307915159289499307630812390443627898922632310125168020808314383438011290933296640953373913775189329558805456488947669372046575926126953420398152351120342874000225103069904367372332897517058447781178563652761379419412791049870505432729498070516415833634534764286588018545924093662156450771581559184056909557016500862633745532321332613434345992866203953353545954811965164946285430488787588562443293444247997396637045808450637850411529452878986612445657750616715437712995377422026440697116101890370816869848708641589219115404390004169215107635053756743244550712041915848698815752577916026757348583818190726964649512371883208365520972582318783388645514610871761724307958300583320935306336967709768041664088155072024094212861750855659680781325341205901959104643544145083630151700546608678295987642809269749835658187120487728301077090690727883264812811503525192182084516813009688541446436584672168760987128855412971672348632385494768552166138758144464540060374787566526552578692572498601994561296898034696749890314109125133515824989393049382447254748390075383511539823867548846603491182987494770317882281693240145411236736783150207048814566327457351361398765359713075040135922700485868031308947379711463000472927117642029846136440441979067918405979795089622661409658093342937070466791084918835739176613069255239030595187633875022244803681608322363956495090441263346859933012057658525748323495645036244160795147069389065223200284082517383844100498295314108389717702185074904363797020893859418323862642617674503200632173747942797342550839267488884860952645660348270392806406817309749020387023583571402334290156860862462940741810456018325106085693326500054831701494097624524547114701934008080748262303240239700645331055195820709550613462305456615096003245680600310911267151870932986108843784236160075851564095741105483025617676341632564488685592032088305986923878320628882352039642745906925345955250381971462697623014520326695083108220323702037986042942959246664779308196878460463259653270527755385046169609268097037086449983599727604422479501831168322561174250137597104914944004952345522281617569689145331368501495661211475230506171820269415101397043176495768249949961185760606198382645550275904261149003432765358094660510735801180700396695898383145927028349643634756136650172160877104116863856964919575361001351071707318961205947795411395606601691469695483288155230356017528825633990290414756541348745531230004726000930128228873178196206799616766544185373900968861718627273846812871658381036740195648990771244886670469194568544109489711153149734441120732831940282511321063525129911186398041627079512431499016668178168574163690979021273054749695138924439825842649514019354290578264945527729713843146414382464218427483562120657388473578673270097299086239769005133943707697021282840414975932780362322515686327089423465291781214828159158611746679468093128437807690180384375649522784638807057190197642695319240840655861293980360863157704054593215497947585512380918576991156855143708912445547344298513832943035973001007847732900910227782614556394266354150154472936266638978465540884231171046421255700793997883030002636260880367310119098989489313051131125154662297069333415159616347449083868423101302775277304282214873137743087448885266613558250186576427850600958025715990151315352162718653395010411402571780681925430900940553865556429350840617885154618152564304515993953784276503112832555309180809367988906052546219361213906505961501765923546988144632154799661124834287570174829626895337562098167217835708933159380249728626311945564350639088651973819015789842408951081886814778479182977246522309791090600917092980560589100219626235932461343397425613544978028720613908877841151466217754027794296845129703678467127675621976964443351215001118901573357746990905878976414561142272997199793540101389972190155923527321934314310557450236752867653890990508271415683193963752066763952091822504364175817679016874496751848609487107238542248455466368916488660774320520502769345678961663779148770390608797307608955638559814150393941147491158286960326935559475010671226529392290521678246785152257722856892899049735077034683560847655801158509840253915291920694160512038119177102751667531970463089913471516543376105563145275531390979914132163685436287075450263878575509879319037238699238881075308486295705607465703585383189095000594709652370266951491343384596875809440464865860187911056932723539929789011922299212710888232069897385815269024006132536018244227933517986752078335136893828155185669606675507850334386501848442373930294460943295664156664385480653635933623229585564429715510420750783200702545836826638373852993125912604691872979901960973476446520130155924239461800950587184344448780663515048383523033026619032450436933816447501299364078849072968987979711069040386000630580571605079617971974452508085480470520024185436153097567508366309594070448162720205859228436608268982666119263878507827304947029145022525352208585727769368923430965250940253255930679570348096024826245576270316004381477489954391938127286341302959226357841677066164180550088772527867678235581854636196923200565745935425814915027407554817117648489535933272500462774582286222085302948858885797193801449316621195309512573485510677575540979631305111423112616056424428125484167910002119375704704068954071727023850638844218140300167735785725037161216266281447128996999690254005873310311789820967691880967848625624257511606095078248741441312079199701464881312158999138875874373161263056856738979730066847298580438296446711940522665260061181905224672089156145773828225957550202351473527240140593633143253475085127446059919573355846410802977673041947234737700657216793912218540999247563761801375762547340485642092260746988634234922080186649414304706543019408837626919621966910740802293406269454192120219100161051334798090162387293702987036795497328687277412635019509779544631689122390801344561280267667295355715704454498605314249724730922441569635988532847843072783740082515943988845669695609958621228698024163113207254863732659693304581619387086405795640704833506970871989727932785390222622327333638743118115712898803602267512358136601779819651795958901813288488355451590489950235208745097599249255262397521685105054731581015166417676099133305937743160925979993227017581060508571482414103302305093679758478325447652850993274727633817463469925416482698932931592213296932932323108465701199361259639776800235281701003357302331107672451047335228542651106133126232688536960192725395641315076303797539125392729743039061802144982506505350738529981136813408720880450243960162608364300526462555307419429343771802290111993416792315199070694586547912658747902993752377283764166661766641305872145736077488601562946264083351455756372208968608119740362069688654074014744332112289053946160467355445365277060343382970622633605996005850470483216218453171261405366401431792329970055026808535712462531664457598841406938539174114427701629934978472273424253398272855150631764300200077840273072061840630883215061571369758625898018965898294301325292328131210883021306089237420516541513584921301880216403141633081144262515009629783257292292622413497064628881784046508554964507050317813350288366732646501205010145768461339395199402337753804732594194605246775276132010731226188574292999289975867181939516544777537585268065824948213529226798889230836896479770683415141336984015894438953152038678478277811001507631500359885487883128130805441117315485509470311260305383557066389296856216185125374053019088263585147585978895156436462648070938297678021239141252840802262135748336867231146865080885979400978221753530028490146122164118592539482190475803713870436512927847663763445268716482135541352638406907259854031434030126871337038976899441004481923142059636832754252143731231031807105911906855120871803784985315711719033704682695223294437334548988920042732093124853030985716656517834490298793815300144977964967108152333705035169134483996825753587384296617352476619238046258088888008050566140941333051871584219582296765318657547193537398008175542592281262160584934875012721204347570968866904346465765517666060133057853845828893824603234390501386650046368135540730546971653784061563493124068580519936099521472191457027144647452944139506330826009117809066305186047094089588928445479458715656589414606449433768417983601639878032861754227736544005047885956107860056903070795525776049642531482353407968301899196104781483977836739712065455933334526409561070329210398960641578342349270712305828370435503409967026077481104262259020061029773310980798824351957005898959651776464477287800947700691370107028489205642784928445471489628316151252281816371649379171861416520981786674720226172684555338049793502421821937933881957988559296208927055414618054984159637268493024148158732209446376223309780610940180510928423771439960277335910151328678354169482837507503620433867823516570438987956004870971414925087247658192601016875775634122249131789916736947919055307204213539296770374639529224413575431719651633913665772493744198962142872641044877187702841728486215601656033764165150192696970858494507507242825516713690358003008519507727703190811176919704598140635850867775607719113693550418236140880948732949886967259665424917795094306744960540794946840441745364591435351902843338130606621479722143915493679055847872625169731118142489041409739329224354453522529234926027450567232421956910694503915184640276733717966000164937257914816376138348472999088549582693373430622352978570999630817924024795240620548141366923550668947229524119304194513792625308897040969983143750033337546151381968032808936893246250458115334058849926999805764614875536898316809248818092599123390438964197282854435297238412852747506351974611650134972237206610077338386313518173509346583853721946686035419963457642092840201968526908970223445022531912573299123857295907661024049973699597035355791983777530510540584390461737070595853074710117908076211140327319419840761969145457247715940869885594878672591891087197398406150481075902908658093171343252049936684029438264353578995613920875903042253047932232477597206857099140739364204089663172341107252097590846317090876109681544186735211984895116532535228585403143616025562409933142257304474519235534832574498766159530296353915199374553464629300837821823591813069576061327776234727238292424541227834824727639731289795632708957785560359689247220961215473544878983191200303641340201330745675293210651980063545142506888657985729162284267029373025087171735898426084148444302036363186641021798961356126059552803981857409409209740712046245551064182374454866889222140145875791015877214774285826952543541642988724610893024736702102655700718773319086221360372609683076979530383482566338293097124287797571511162650428669403222303449801972124886264457065308187878263993737136099368515541662707280209043766877426619882449775133535783885881387018950936870388399333158897601464984476657956490328365324244500973065124339466420236090452742487915202789396017395545578020990182627804645154274715585217204796091985693054713087891343062915223083002532692274414856768447634877002387314478549007870262822781723457710344860662325282027836874977265200215133074397019307299650436399846148148439861731011266318369453937807018494002752132344206037089699500639745123183006294699103757280401537303039336494331639049676076000867212790605804633077054540849999571144322024899517060585099469167084067810082387664057161406016803851334564042914175719040661344497854663333125366235375636748276380116558200681861669875007204646484286619790859565148978729580098853924365671882233842684979609735302556821065928344567131240997284558414032522695668785169187471120888990874947017831399943112048585535453103931318780249625592119396328454392093663404997903219397717307449905810033322752816606162983915406649547708952727824473962064930200749970438204217494566986880658270160077257019576423381694856829329870432092175293373143073084288947129339712205314566250510121082377157920519238204759254189809509199122723665256809702089442048266178624638830330573656544576179468742687002959956388303198789049172864910189342008468049594555112141432567923865657584615253271856710505752582539474627226068827083348836786785663950661896075119903498085947555874013159214379686928317120203108463770415038912147996571408420866090337365892977093509162623025264401884099334095501584487433773733954285615466471355347354973279371745076030093676803321356369793344840476819354692511215380437575860484456017017253068915330632194289047923692712983763407491753956957913974747618395681179707810433054541251201260507510274860188985538795199240579148159030188182855751342470900167491817148541237933612458940735529865285943448035466084601103875126966322601697071683935738774460440877363528019151257357512587878401405115967430297380289919912315059291832817410853614435037260738014811821573514874295686474033978877382855793934873748111098283023804905454356324549989954899038005456372046672400363320581965509291074563909993162477567459970147231260342596059757194108055251797897358097218803611774004794983724092320790011875984801072640500928807404716642764889006800737563188413276586145465139261120272515306097573943624277211604036402061863574801191615729415679073984032193947193865247171124323140302176898733114628690820754615565081747886552288894156582606593458990561052448398991037358363773613286295387388560185955002950527970050776960197616733818953457620144838023182805945495688805391045802540807152159074170869645018489575661503424612105833313743241382379677583462929518359469465814870217579582859882258338101397131332292196631126389656563641348694060707239255515476702694710536459249238176271350552122371543308513277558718205036222421084371191124506889178481794631280062015314911848815784683933161349465620939794765828030086496991925689551883626342948028303193379339532337985335797080002309300980450147722736593737088499649225012751056500940086371455087993804942189226274422005908826082294780692954522708055169752370593800035446803309774597286516867123065053971693766658765078886786271934155964307868394190015690839029271146151504411454906791869129448962227427812294329174076914978130814211348348774189844604185130763061289412100508710037497240593324817479974127672003566425245523190814910100335499371417866069297731437894961650262245989660353287700880572751883685835476237334484858755180654058791533439653868666018596489077949574649570710356020374503447155672119270551666472875787995639577708830184597003106188396189700741651813612857375953373460522867871489815591730593449189119607546872414455287181273527965855604147511562773731333011664679810576622858006124153360076124582084917161683259716193066895536113382835150079711861889034718965344820162887293926618118681317388856077478231245232956715458135770126105709800305735129556983849391972660063395149586956352356587864569793597269433355062688452347863906772697354079416424680363516071519646640301901386639895068723504793972985094106737528057664996356073642212087869188968503093954155617446258658465477515556920520194559390928380226497759257819668102307620239882770791178163097735251762560445583474996439218910133340576400468546903314913113700404189052992900984444549260714979887714782915630581786466838236575000997255914499458418186936078307559847882096097261596759061853863621194536037083008705970131208619471123216580496172592151149149720973309037300271408079556256445635296372043788866293052908192675526962766115294953022989908837698632119936496641941451597778225060634180239189251381422977108951115249340135904458199205339978917461221575571631396894286289538844180305927287652181907889987247459195888206804667067516143051908433444027075999654425925585492324563010250002612405561910353726223622540836496122744501205990918906799530571008019266144426553368401983415202730157845662662929897397177765968930287000896320459731006033265361782292193353336466579588621939604420179800870252225513817234412424274285868448254809647270734334947473438868111229071360000034846525353450470527512354520386815270855879297574238187472527828441596011490409978004161511498670687935417852649416233748919926894324846253968864495217676985903897469327285518759931203804940087158621953076745397224993884273768631996310525141878587075933045600245796467493472294411117147398363923159348187903032566173708057125864743935512069360719280858244478701560607971983812425870411528620845819008648578483472172511764552873402878787675958139949563693457555034873145982616188745184892418655529992947864025346873258576630480690644953592432377610814591187844088353703247079283782826948491636971672352930460931225363087646055459644695360702626385494509243125330544517163329408475192500470826646044504832542801660445053668707867899462914228872500199515875211046374974416318020604966332612435276494914663126886353593890712388730357521762038086954820586691035358427611823974695038125748553331802617701882463515805185434449105678732035906483634588015228703086069832827217628722190162640603879194353824998942330177337048476117525548833693389428558004256928964616605233712991690516245747402084887817567238625777216423210783703034742945923689826158377530742317413031067619286721096298869015001587801947625914904216822240015859761966133602111328730021897805056695012953761568359032885843472222460066124250416193342216387132394285823178899696231169320968314657506976329797128937983310281168012805564967499892613583736476313432716281292463200178645320324763245961398876759568170647347882121691701149659218816744233817876375275294891919654772375129248088918180131006086834913159464995738594930586489114887612992208985034952625495757058202373189370978481549903333026488589641326721996004443882187323218918038883689438618232440077260187449180522750131959204623975098373613848070953184118825929328284694722627430619050133566105164887446960414948632531012507173752661423379992257617894417322808541631184391485145088451500070055970596672145727042391426565034958514835866090843516954213644779582213408800272254354152861737121901867344431239740269970078226275461834456192344893814897616200045097948337729429693011160018722952982393057122959103632441335138227930478496107984131304371703889379588883632050155180622970003521366365828406982531879493928034336809025312104672633621472682877363407018986982429219223762688471608946709987994233388012686906326662727813306878909147095574929062767126019839982910125593106906579517704172067792588210575075170857261256066524581260537109076905686208823887986227909202676799160605353602549930225633450568482025278288726474626445895033924490793644888489406657893284561552945905875219149243580050263531300195381302564482735181252376456894179035711312852135527879408885579160649590336665089978458360673036456447010851211379106812675515374781831181160362584097981747571928837953725784747064661363302330705317546753504102178756135010831613190241699216689406002130975599591909709623731765776492686123242946763540433043636986421253509734347520486412024120554070595964042751973444834666621595830854537929833471172667547433040600523452072638316886846373084407740880130098675810395841733506133506540745244082949415921806891152697362591420116506354424175674434829717653412747137060828380413859056575825259292824677961948900408307862153014655242133061333722777655945740596141868030456982941373655145476656079917143308774418235118761219144993889701016600649341800432007526833468043972078976683513589276669552991191039927357044442540691351281214105786102834448157845619353486100594512486087713563972894623270662284124206823061466024656082577541568490424329557600905567692455862255263670437425719752095635128566278885482923594580467145039942234737415475173890811375651939219255759639215252173826497148449262218704139160027528653426156233978336427681791386988012419044157031341015446245023183379653972835614685959596341814760503349360316767328721582749277188923817391561370915207452505572012790866218628207544220359617933344866873417449412711094013399533420570074232104701526494878412460074154279504845235245358931606126221683398770146073213479567464717054434954760597565448699557174785139804288923666654202045667449675429007477698417364458800425225561145750791224803257989827746692010446344330778171673514740076261767651950545576431738436747994615808800116635867797320190809231020423059210563727657809229520390099603130784983099589154854894300038468810481764127464275399991755539710966604161965433549341256967458681619299673107343921022414759826817496336293029929925275602786408235951384993373387806007284411853887277540174467297591391370269784441869578919585492504845183950987632201929382747996233751793213757246442361101236440984075161719314895306318311704432737362767436173395139392499058598399112969446914883777075134603895129196734102669200859505597973017746222131182781245499015620606460681232076179592731269635221026393156474195227199414403939912375930195009306058004855204028077029411174280988001095956532775059893763899553850802301427107155743764126710047268584836209513868654966893242844488661795039268014558692049530017882422467814063868960176654871657779490309972128863855916312647953953168983634570711509731500543610181907108954526089587972128705005139622644908014800552333397198011843950983663250228953773455182225051758470364978419111807927062297118020747862239038248593664272115754408733846859223466796846108485103221306178776043375853975388599522756634862786963325378347193907697665944537917970412544697630203500648936491420670723075549982516922460171094730964123403744900325389230951696910504898115416158064320019411421350053893375962043317090611269707602375421073065762015339618576043414012437735491973939873470950020443578957792778621874048946190674913009702368716280485148091736917587711060535674114386033983908966584477772446774973662954839316201580287217103158105311559682968190225738419618128364913559751202235584901041586316679988776076557175562102212292877526917215363901805346530042717549660714002499009543460916648717249144541914792573726571948717389576730216763624062820189572444555369000495510131815442133080163065719290152058944221363143319257039476803722808286689178607344648068756786445044410635562856657866180184047652135501892458096728401019086606939157414531258000824454612066252463524903580448178244950758741976583753460371279250818843636396609281358262517043646819625514513409503442130442934390334172408439621375708372372479430293425914912427263797717380345763807610220254073675109896288470187306272540170825118853022529795936206136410779547261446815776592792458061691911360576526768699568591586767464491152840042526047012491786444108852081291376255930555647869604309629474915165797162356181230598254534853194200007935145739461300768875817953161474966427290340807933429554011593555129819838979058421825943457013078177721978128290289038606666857012792580915583967962581540467452014215405831054873628739264823078379634683964117109949003478526836669672972685389684614928862539905017945756735543862103670494568995275767731865138087422619893107732543263523000360708200193206012907371819985203143289827705523638161184119596220852967894258496761872815818874262906123500415008648127194201295191566403223503005336555712616735019259371045645292378911816363424041438261110306834013262299022601642535157217693209631818304225012198259166369649335814144120193837325227527857591286800167339916757539805390298988599709719624609533578179787155237196397251063288731269230665837468902731159596439663064362740526666291598440857742449260031595091557243879810819630960834689364635114626426824041926279241000388008973718431640529591048844902291975417114299315305445846796748811443912948511921479283810113962842778439631940476135795539506904151474037469013306008754690814296860760331163947886472666330258700909969628693938938708075386203477448373474486838493594308632722135152750583943549551416512136432568774823857154017415639821921870687457813312027431890772622739275961028727912829853459984510436457975721637020987567215547184374539242122152513605107408310729761649026498809980074289015414195361037787167901487651394197524273603365001814229027146417167445044070208802595746787513319755358563298204213377497984903474142455999708309181695358772608403977329866379806538098376627811315163665796124189883098045961461615483243462532930690813546200117630461397786622749434513539239997189869560113425771080796050572975983597805562012093239339709935238283680814767048894761358518483346242495354740214950064761300113181248895475595133169123290459660057756622690465237695335252998264294076417619753270960212763248326906355025976569005149559697216907617710398533090757955729873523634968532854364203306903098154982142800626980117997407234647914008745902274765251442523579130316494444574643682772100357360745732845046420672557809914538127364793135535078493733039406211956949576452126835473858097824785415399616878317838961706479913119148045739710125654517851589050875600897551432747110568192465049539046549509648509742723128285074492635522303938265632117679163792893005775893070328536810114046509720149852293936008093037169749534358044613735356797830936955143786240795665346817670946490666450257575744346654484098260416497950235157439071741613048437979650156483321303857316170336561250275911460000622112536170158925215058730125353257581655690103914179275821619053653161047092243176842322210733587145064672721840496768621766572942062220125858630193505937209425754135130277815664736140053618131255533335241052873047679103381663607509407121833422833669573857837029953974999955067851347811505895307297349815225626128367289399946021463065950192728643716620124977203893573678257216440007741927118656492889716965695741382662902224905835332608604282816666873583679242430736241967550462671339069683560664979781266083989397848750156552211651969655320103036769864796139310891759188470952782306939400125115148025785439089419035869581360959045321690776020882508316209400189441605994266701876773315697013998952197061099581728674375340062126300797407830183049973448836124522328178402427696156856312970727637653291113194949370444276182287002115518145171644201436328393738476683818790049987679101127528949447962358770661761288163804675901894917553003086486538632744171900743848268470713545997951735367103050504185227359807657247748276363543681986779546079275751988811894658440601278749150058356230014097310419355369693014938772002775502243361085488697390033271282613044331806939176953263938573335856043741431798301752895836214538345832699107972424395459024183897319615922053640007845869249587694183688637839899799806387037470689508582349127532539979996674205734030542179077329336990360106545959092082066743567640993471138081053854697798876049392497318487209789635792660690304404899626578424354089573552230326073812058617640942161087774197555528547130172479298925842906087841216547518001237337162245047150537836564528178788246156824092047163540253920811555117337664500615791819319611855816524852353305716126495141976433728238393249588333269486235578508494098483845827586040003596768047541567772883114647422783834683760944025990572439177225951758426954210253851118424822144848821139792245882112498168065070151635830602678268260600645562211234524340479295791721012017640852154853724037311258862929099651652284217951714558027865240035553337193866398678159354789140365003028694214620693167652870860585472122828652888000462341768672973542498393296924939815618131337236911490812384219826649103804538487043591367219423931886879918598662268234337115234882984384663151501987803586334250257034998925383375317563657227210013297631427812166863676943490253083673684996574492900575243790203242578627937371022563041410663154563422059553295365798669034649633594077606046117369853813067915437713564471785497690387197825499776945494954475118489738963507046074043673505851230407983837721569331156316749576268717340960975629053151852734007807191665503631540477292445526427381310380799345899062328199192987305952429911797434229567538195839441795358033030175784140298522702384387061241606260553047498392717215536925513584808764703903426463114899839855893557667052906900938275671826962783019689603015869789266061136373527518869687382989301008863971762676085893457244401551945488856747433631857120732331765334376506827231490246011757532235993564078765489236498842727238580918835385974674079406839763301328319061230234979854612627865108298225626249612490640112416737819746252164465110684692991508573434143956887265574971639871263474203553147041451800402565488488534414347721671254911809729374442085646411721281774387168469546608863248012218286629613429579722738718619629627378457552072525923586813751733552350517184800031765271788011254301156253980241969872250781919862859699493349608001587721504170081745833817218669184530271258602049764293494851299030990430824920197471391823817416863426844461208286478992501764947220466183697173294187470739352271019179350532574757270545847915048147615186309259315683289114649634054124512501089238641811641515672108603545050615538378195472859478727996324804800507309123119872132084401406087806519662513573099392497326522396885115712196481532392833546364082158424153811798750316259497652881932400208711358741422010007894401309509395012270699155908454318219185096089788591281840276260257586607510595235479595243017693745373536292498746355420630899449412825055194278078729697066692369331370495796092762386418573964638497227177853904486584560776267045667697653683051698038305892805843346774149845608970152735310223487829086459034445789896381391597019926188529872281415927235713768499573755198027523291472846541544914181335048177775972009712791932176746626790684845152647687071864571706358151126992989203597767780302751913107515127772032817778933426119841708921910240942748501306571370453209514950821181512617104649762636068921417948184041280236734650487673560176438375989553889908683380293397022861778020916594049424244535557784393534396046312618538458512148933013382016921629402251291399746705091052578558941536689767560199260535329856737704632947294348121056093381129650748553824396796139696220125526307309405685890370204619353902874549773100266844079189163146824899823277968584603147105591169721182311485147731919287782794880080210062979394635169329149029348136356287445081714837999561884359915553972756315238697321283684275090483931680116655509608323987313152179919932089702202201222662831275946459550166803302752361003638823148274229175424968116869627413660302199209417833960695079666107958110983667957662641665884404638744776466900991865357774734722454341622163783333574718936231903123427291885659102195847791257287964462292573744122689251840454498123617991872998387924000394182728032786501673994271756093399564036671791610480721001305018776126722630600273713950584623744934306663951820450022370035879899511493682221012153122998249683324489610887600231283645866922577517874273390962743172242986658626872133771739165194192395699827811267703296711863424007032001258541008722705236007684329858634635386839263878845850399505313918684823104665417538511153523303402729902996806859658945783288499745595351191559517411811291139494712550992150130481541881755249108593578100716547622917818219325692415185713319135736905099427459513987369917220516159139460961264731270402850340836319177810008945599837498338363425319044633291681160713694469184758127396050182470358311288928891943805571707951617555494416086272333451795866740421858645746390168395076382038676027560908672341947227547665270141312915688359814496196032214744145711833831723414492462125190885148154585399101406649451298927550856847961502751487042965706426332080684764925546875430600082695697435207081904349242808333593916312753708862335127674127645314690011801665848764630201823201428065235934401043441031998189524781144755068995198723315004454651522261590962212789443142711254340033714220552341314037255269798753722905369568506612302248326831187594957772155487249558818240575813185381179093867682977633180113033730206033784669244519998473926040680368254817890995500145972215702974383745520228122694120102205162315239723520305791428875038981455402320750254770546689930150937002045758611343736088878162724142294875208610512143396655241717289408658681434705151390616392039467352041067526154665571429277819189377271183561648939781455150420524092119353917753399217305552383997936043825990919675655071466240195778255434938938955150333761709482601308339009201344232644053824102009543312629475485233192101911553530745246596420156008093881224710828922137963948835023924037666386430530793915514394111169334268936508052803069289402727678864733336341878710329407485633293610762678714858451259668846406654880177319299429806851772514145125287807129038332877904612250891850275295356970266793964786406411117227498762691489355558473555091558589633123579501276790248984907305918688512909247209609119807618896684420206589260581227859038253010901102562954744776939050760224242813174595474706584827991659851357146364924947066125071579719364320521662284584530724625232970439739116367462296217911953240013924527923358265149865810076627090234878481039187664132508791047858500975122559939344221857843584299485405564069730816297890264840571357887708386722429714006491087924415207452744467617149991126927690204671409135652615122108937434449109862947697605093316785486351568638013028976232971622867142431119656507432972187108035633448951609921832084905903359509288759541567875180251576927001362299017842720512112136228456850558848237742550529733157788588712088332787024474562958373920993986313436660230834086101916061070178209854720006395559730426144646295771258378099900815191021416501005868903335387704180400506087740240012095079001141772088669834722986576392177801542033504664300412846628999810226965654920062059118877589684274545645157601698056289382419477792664454051933851843691875945609358464927486215575530354686114807151999250777649310646281320471640416793780039052323382194816995380549914555604869827926300895514674628509773913224940809534282571706850785233767312783262736216835624870063577849964609165904164428554562975350091978432803693936915074696533208187186332089073532589913220065929394104884730686112230279088485183458896912214547800833599905049246256007925179098840164124207118595744340995229076774935482089028590474077386605089830691669574121857720276923181840850431233905246204312412442538289881884244555293429421184400971843008422096716349901272956381799875954022021083011616539339111661354959965998255830885077765291417208125853713127854915100317392278156897492588224556740047895212470367415770425962044370170426647683696372966448083537406705323229284439303824046490162570406874447109432862299042833849704611048646525441521676588213821599537389567873368598169038980221346414835417545693678444788527472310037718434793206883939909110435439910947162501557064175827608440587714064824586375186632808686964963692032920094742313568431764000580513429080929067041151520544524949413028137050306575799089810242175594205108353309910940813034395827149313839773309930121628073281913484589541206756541677791256254937646752477516051471392408872559069300783160150310824682450752959725386323817259638036454131956429240562775261478007582311896912380092324008629428806282518960758397960281069728919792333258346521274079026211108766575384123246275258447579092905538043950702800453828742040114475035886585653054173251700371937111471041908528748228766297123351377203763824884512952057186136756192517693466145195754111308268953402473057935972555760530702415694797201871766953415069708216044414081259665810467817668280570495930892465214335481047363456477993315999250945068089011800599873463279522779917456414909157956270012894828325838381144903410584017221093520020869144565766246266479452615000243304843584994568386171798937380466672636210802995453266378467137928380680450102608870217094462563277622144279135817233420136311935012098903768513492659052726817311042720897318056596395680109340546222503327341748445862560976723690426678688110600061306796024223115379687363850748804534773632676765432636700836201029216914943001909359127091112400534140318219097589178317073526648230318623589836668871855944263349312622326350013463023802889270590950800747173056676514306017746191180053232463327194411537961632537573357580864892516944988879640534528526530405484742765366689870941537301645361815030138249325510264746232866179571309491569693267172256185227826949960422794804737639787018812190689822454460388918848216005560994866008769309534256476779415528753763386655012155715053090711506335223315255058952182299404713828114562778461309554755454126858318870637498750062575595928371941699092656468249289394074665833841843342538019098768932973461994857090219982532935904162029548251810045630444316165747673588143264385879554843864129766692966501762207546888375708208805206905407127251453277121394685856228892586523476844543916894791457253132072688714747146277237592277655840790368162037902275978577776273829628714252579213324583103719936055470939754122862233217098270374818592301225856666826229783217981733924834224231910493391942115361863063072989004325898108188925425487917394330943269626971241380783374882889122640813249337414331871472413487260777690012440088433358466193897870921151094799539797377632699032776052567927017880377194008181351311857965242710528693489057078314380061368065688353788928235226948697911952263488025647348901975638550470471545573789297060092136483666815426111681725668650224079387266398191110253652608737826451388405674322785162407666300290451810132078579922973237146968226369907375289295034394000245255351712178163497548732513483706219424379130230816344345714022575814949328225748117741142778808843326385751177341481666359051623865108148182497897541087735188120220113963438633856462870825000941314278892681932840254544350019959004303088426386960151143362852875648537214573907972919856550755622399835722507139647291968745443589317110392195639556423539171919869448313959635053865918584084588813148050169484506077496299661086942252215596490224151228637040098451549717380998801892186144665165425570828463524027401646235115137848473005439352036677708533123519111894155575519142208961869207738089081817530002397243588003149420946283673721264382657439179373488547152416839639867058609310800062614164216331178643874495447305941301349243977474718725232773360555474594793219796783939375591645246350767316298246436159887279026676014353580415363656113650043597354502481863373050030845609555850166693275357575712657236964988993998175813523404705845118218402046129145754619611376412413906545739321540396493982953612503145135442950099356841407880125343284966839423903758596568249104670268423185934716218851032827106470728668558378412643604495970768601810979850483536396291454222355154752033361532363513553081034562159982182550428565911491304134551915811984042729162508720979378801436581124999441856321240156843398729592338885419020490635599073168449362483361934690296199397686954923110093239697810325627606528826823996161331769944915788791724485013917320996544912201653469252585139214165134328403571106085489039475526428210930440062429541912029172007768995434007102660539889971592178895625733980853221590117628360187343302372669349487824809881803484343025895303846531765953279707720577665164532356975166014543513497581770444949887477650196447792416966419381965436637353420471580321680316880217623427059588453785727914681580773798893130418978181629411447547196300283576176900403614412188128461023258317355987460734857387579654272783756110366754140344034911025490685426684425740614555871526233436661755797002636563457043973505457143764801421302602365059248360550728416766808486714167496804956447607518672703890741513947412080667698107953399161151818227295346933392870393659298232276294068017154225952627974270337622221610265948012970499465355871154510398689344054517745589314448228661491695231735421774586200732885856632710699733965641873050672609708883831289698124861787831905898055464674901053088501144135994229781934419091093493882417527838783404766543872775985461539498099410590678964273829949890147025140741112658202237888631945726643469100085760657084756353274386689888783011966031534943824533733803523230605355840108541499674877404313284762711697410807293559717381538192271712879207679381541766305620881974023207015658437718121531418672901222806383649672167444820290106026128759022992874626358225757349088411355469527798222367188074431153988525800136246756011990647795263059688784338758409285803582485729968273096086458955411341950563089756735990515899494232614412952365268654088965100900614448674036371914691028538056726116530691827734996155564411656508768628876601764806641288872864182278515476428765437877276597662309026808468640776645182073671285548084156987477501924167552905362597713436179177147714032600639790927439875830385278762340293241201493547651313196194411699242827984043032529851007266283585752049914741425187583129122056306190711360422113614781399934048864875472817546900047581868177156673469019848151983155798005155148241135144942542957386432957345384129306670038553091854410692283484780169082070612144729818560464266133823829013671160504689292786876746741677103748887885319639090354760994755130596691193890455769096595094223631552744111937565827454488773110597295095198836654132410089232984033009615629016150601089148498487540467923185798450282481918801614252836884006614632318094765631891758840952324556177570499259945745868579669461527288942107400564343326027923940901597669912731473682220552643770528671630023506212432702006666581768579225886330739643964248030880772900140748599640386725599601173043684804918463531862119751840656921080453427711441724283411257080307522920682525354507145960684685575307149797505126563062150730861591282110296286895703308945756247099710891850799718195016089764101542072458304758666401699366832447157929616053868062622368119541239108873251313746813423319988852933750209837620527195229944969573613737666318756879875883752562870026855433831014069342437459619092362387225882172524977910515338239629724996213082483196154647108273139222939371125924677463779785518023554312193308565544269589333061167828082413624913462868084837797667732096329670731599755377583921272511393079692056770204126097056337870366441291561509562322039310245599974345253843486370500960498592910782872403184491765184140222747655265641805826394105256654575255804528530560180083980391997012159873154512105844422825377043347008388345985007449234800969765001502074129315793384193553160469036457853149141947145723315807559873988991258017246943867705211054742557248088006631253658948404717111125416412693194188572563078953311222858293288053360790766660434482807788078553624439479731850848628193391706754708146483136877165568791187467943563909348969236631842071218939476493069282695792236065307974624397948204735350591424232415721290676068313093764171720919290772830234931507031108955170678861168977100693399987898732266322221170576943134330135560375854552274591603354477821227927220931787632445518135074498234458812685142887382293854795580202041817408512393011089505558311273671215873876465486064765139000210637196715509714757436606338915537922770922361560185135798437726353181685150141781944766881347623512883821643101490301770807275992280095215947647109563281708827262488826250970227076996490316306578589712149458044817160597014999764398433889642645005777113970576853410298376617791493751777626373348035736485079851141863768233684556652793415333791534225857137932432608627197082927483541912897907118262320760227273187360299199090840811721024942159065281427160324108209962335462933616963571516996199447869589174444797741777097108759116889805572368627736647831488887350650451790409011887582400752438361486574182992133848256682186867426290992112365180173331818504993094940238068763869210153089957003520124231513415845686612640724761410480743272852067003730253367813523694161086820499636899919501494904511820682908869267988669909116405096871464082559205647389287464795052608451479784232189643502510804472596650797553147193707246536217018739141884109502731645886186954731544716685928610126499966241113151685327046902734845619261190361719603301260930546525847711995958354551695831164597166941325443594502728553400105273615104729526202150127374174518620601719133816736260967841056849181289741668636515519393122365534285312510391613974693805268095261385730204167522117381092435606890026551383735704995180092313698550142192277975013558528960637737182489566875837491459249343870981989979638215215608130765805635493708500469146116622372857166766559158918003823934976372481975918118886037751365681029640633517962616730196123908843768224513514849773243361825418564798728576751075826036249555826407228568205997498539277654994965661060624809748232889304731815076845908636644031222335230468177465574205857641260772338703507418574749925404387004922019055379159789143444703375534244163844463576731461655378091811711922663530601223552102779118517896318285897346222334133785593860074921860881744315606738960878557555173357631971200583355734618310436281830912683618134650554485102479652666203916171753889983504748807785099477831242095287518089900032510175499745851182397839651319995077758684794477567027899749359752886630229693264768263503068535220875480529920909753521950764376977654386578687955750816517931461755819086177438528458248181206987102726095229911246185101657144543159862924571720814870849230897821243060387845792647679029949127961701514073648624097624463411495993581131020911721064488779215840684652541025335043738477822200972461885312945414882125266229474495677729870802080982080815246512434585351681658872272305786533854059419036826494497663624321793882062171220443016938274068197273232138271676280158624656950612917066698728904115410367041524933083077040753214559127949261427577317659969324992046420941488904153481033971230650869335853651267371683056361409976269620426004052727542765400845865164344065961818811682954125018618994340408787963641690045288236007473974144445601149340682018695986477098088754376934644958619087885390367106255975405141568944476703579616390891640057154540011486233254767140222466435698940785352147642908289396493779135994258795083718979048371701080647618916033312654900024530852305023854174085349298819118432001892761810098113670191043918584165788337323142794950016162608657733578642592042720544877716605929603681629918518448899733098689378142233762374743586722728932459902732856051012512123116378625261056039392791104470603073539617430654865374932094598693375564695263857954768116506265521307558197449880423484827174771865023660670662578248348960481019937354675674070223808516194355202307046455950114985317494350361984286868965750588424934145961545758193160421297905305427834444901927939274863617301209722865551098000559953836140540670374851694076046221655116721358983336826372486101671242073628288062541002919908056167453423723238751549380574397539759088475901247964284937987917961570793731533538271206899841655343038511947148739102228054410931638571433148279256421250199699365981931249268114487290435789625912793187121840366225580728010564376888370723657002234043085568177066084783022666020214709717160374111190834173520937424126038769509797399277528737140644342936197777043831417229724180473309086436626154238198990442700799688248309199515916155316234846970758602036022257864069317796766348787439778487769968618388815671108912334844256001498018117232014916501206901305767736259098789084604858051489622117318209890685881542033322454412035210186344264239410739690131343908000202503619240402872687975674004984285248252995183976867340196466224648172974511800925048479317168157846711112717750718932606141627346162741191579535216733455639215093433164300694195993317841158460664218957720077269726683454974110572694534804865321699024658488184973517807562112290752106927242123507039282615473804070897146894587776823561442606255416600869186276461310103123418497845921610398463920327387433171048635518393127372085415273991089126254813745858978556060331054627999679304018675130034442086518828134403022524143435635048335944578437077612903636634171116621089717217768170612446801129297206937031188833024212296579967282089397178001668275045309438518199608654952129512211917969953271652717855040693551914187672795179134650018967136268782203909144013978388989202968789629774207080720346129405451174914723059553730993490519824430884381092364283990322664959571227566077195959145128585654878721446532978123721391516566114234731421870446936943520813197939003953913768002737235397264023635269365888707475101934827010754999128163499872061152858143154347098204435258001402340718463594632503390802481368992784567385961501947474367217562616748179732491631740408035800595881134092698523471891763953279113756754288936019264743082391104440599971871834372525767477895642281829435755675792997994383758256212933544194022359109356329505818962068363042535448803355996729334118912796014650496123455581572113747153950461109014111762833831327159602433463735392277849573280611352032512643063830850621102396947434257796356039706323767497438631495928201175345226947052853768251369821981557075039140614157161158398570693761941096477856031425099097558011466945629969374009696225633759276921134997147099508144996842083168104532292835515821150972939359526294459070932759317407506415202202459964370839809144181956218466236425089681118070175618895999016972962644955189327252189777672652026200008805236367054471460024515902355333130057222744164429547171362959589823309876241563693003829768480270837038372964750177201208311596003479628993554793764340637434530131461582100626676169343414105030046957642394194689478224603370352456021449829292965951000442000694643516199383284886049641063317710405556302997034118915722973097565085210544908519573526767748620669398477546129844125898898803360444106075065923407127531288793285737959510290042703217854107568867076444454864252186355938879202149755504127442974867991439634330308112810475630786786690984416885008130392683476212101143857753483580185267921205504403873891362877027954022225800797334476795255069425065762368885712491146420413113940560383512799695595838095309062504222824712568845290801242114757513027967277471089030085747304203541857674374706410923695009218344781198505534922759160671845763773235486430562687255568484374807190692075744671100046868088380462839875627614360540532894562680998247269654700732665703864167270796551369446208167909688157706323857095531353284077372607492969421982653883235514373740512107694758361697508347954827867681031128367459983433894188496694187874794787575321823113826897302389927527894160329148432407596942571394033150446900820252676725899960233231849468201918793536500616591930044352900652254985141060179084076483946036065887455815445788398383644901278584946629397710194030927404208576329618428147726746659330917744773424459932015848543935168892544973887417936216124244644099545660014103617426256677758162802183803010019659088294467832662080027179099478310775075468604607160318205497561422719772349247842153287665318631061403739566144753939675939487016288866450959502796521697907646704675626185994563228856252498453357843770690694364019441079337397706490260343007834757331819934434829822266444699827928586944482636275704241053303518553423745417338293655932825335185897842928363666157569824770708430482301127430717544530452830994943525930573074622407273909348876073961922252509005853179917191106721849196935432216558784724962839750974559387626009758085684764507631736726652213390864262400907486832118916752972876633929810879422347892286202392532339771758336680191298331863619699893397639138342310493691604600817678246717473877628149494965086706254840264849971989033143723198112514644300530917354440801256946997550626239045264059697756858895969252075806343781728298547437047943674471703954934881723670578809064938080144046440200017226114941761039388209625133052545288360753744871899313606793134937089684575193219114874176759815955123740973442801509162469762094703537708845098467930974304965286510061385802007610129612398297539977830381860708932445010982892431123996244163420444060454906942686869543401599355012450733388134443229397076800756376170613333883606290453760872277651598075922631939086618527333014613414060678652197859900598904077176979707039204559542144522238990189205916889637253130557111192526030831107537867749089525289592162830954094143928654106596715070792263112362912134653235161462504487800323640637831116617555166437577041886936861880092762730661120224125327702774724939641421545127557105267973190738494888278124935606601850150808978112785281060720066695611107961056557359183722074638952176882862462480543310810708392750541539262947625434406200684123220076701462005321955608883679195000251670449188112719941613164246007095178098751792602862102770207370207343397509490372763178801605229412822430005719206393694876811098064922230312062624355852982777008194396278279234792911856861260368673765726104778763141383022816309776422901131561101027654312111562456105037180835163289832234659479221337227052316312453873401666016247219627445389620964313819791214657425784672282370076074505231788643027634963215825557835623054742328391355478754752004066154712102367630635192833802204229097326720225318227761664406363421156132955539877935999398276660827702967834365690496120276184920769811674301849155639777518271019493350397940540480790697284849099912130888355401030749413785360845078397288622496345565284658886256625310635679595943238575332211939779663039375638850498212398301171164638876965766334027779625145596855225054248144028827413957108238630641787124836873122626410774373433506277808631216195097831590893408324544953015042104610413635553404095615282159423631875466264132413630596973017771845689267561627364905224288398046471916346327972683331190114945061835061314304079439978117227710722804636740158529072072094764197067503524087588490974973682179136641422302654838465955940420333360874666904767080468644330759813618337093158147124833209793136504644183280199560963999905755953070309926142134617841736948459502669695031696483748807310388313852783992612106189048288298864776215654577370580265225698182714705914663835395250562091690385340446009257352500819141230741435001411169595607463281749718232037106476490869771710008075408261127654366560280996846235864448791314795980293980606260970620559405496987415789892084237676556044469516231461166167635708921461557194504050314130915185511873332132108179204773051986795177566006797473555403795302560217239693403687580869983119837338841622780423798643697877603738112395053174202288721837392711442597963592971301043522862192713544737811527933970091267352591675356599944524550351351440330358978422045751241856844663795471759309399126195990295991447030765008904561831009460929742566857445550504270742724733607707293393055326904188497718705161294644726458134247857002863648856561530057284463445267575445431532912569944258971759297870612577717436777332600611763620171033789706443898733154748652974704762193053967503100549438109627067007011754191595714527607276936244837338491569206303589454646760773001951230389484406314953137389381257525701579667882550247736568202363356935291470790345396732810426360106394743353888223830626157195035983927224533313782547018510585870859810738889897944068759926890656470344851277092373409336697478490085411992022677883259940823374264312949494947609245002585271739683168069815768386607866999100798501151519085072126242667782995249619508076140633274484312051934204584802156756623973051225257159313483980519871458392567507578738635859538630492665611710487400018664946487535399051207220782754124313917174631921753086684787195209676862474473654008806356233511944360728601667643675785204204225205875858142882144917429606856852951189311127314661561181991383515653193034100008539479842768109718397242538273575726502349820752273136128279524738882845065782814443032797176396319621596869752008084016612922223848605618656367166154723038290113315172381987207491317079298805908758206261566316541935298572920453384403819536467813034802688415900056611496477491606444465796527168594098125861204243600034356604295163615621301208375256307736317663204862434070467616963247563059848555360165013264413806619964450731658629904188601914380264179786182751850572210206104057710869791977668600606742741111947029746501039867011795567546034432693778155875980592133337624064585187753691316000259081787694629351223761509097090529954363699918367636171394964181933708467182586126265997120002728303753557480037320274116022992609280563976021872740268184605493083260661568087807588066251385732598476968060058908823073206577945124156603553680254940809414880754558893026951623167723918971301480530009338932448455115146489677230067340537898080529307330653173442664216685748441280249484937822280030729488730709190565453022758689163309193473897554078483369009130230024809539948584380494114615457031393932985066662059283334286318958218902001217224462210197392820180952679438742984242028097766759301622063275740167808437524212385238896983816875015809936494241260488647975286965576751647987543017317617596088791793583388029221941970703606493655623789257673012698887281825457958008583298227642494865135978997410260933870794922063194536092377237940231185576393015305609959023971188725158303858758665054259197178381861593078929409965853542635341954559287995798007995901776436764014678632301158734606320301140444912979993011021112625365555909052931784730222338837302409432636945815476576123481264963554673290593698201468878626859274497994786801052231223918109304827548669214748039915110430166827438021623875905231301639586614566445000816543504973065423069661325993598200040366415502287242227379266994396940175475061809541591614229379350945307508364323836279782914652857047928476158088771433191159184526320597342395041170334757701989433566684429063727789308336826340618713676252344715266196076817679482505941616083030240882880419989688179706745433007444463233008279730994187995268375652800136372632486262295758046248982923477380636149381368056950203927941235474014528736329266107020437413894425837070262707333111120393485101025849288321649323978310743584183036215667178244169664461116378791703598640577089576391362459875526363041170280168953741193555687894539433124247275468697369112878776098789761161241032487724407219004788100314873381916011020467240886460137167997534394716892586095641588551274789624672622198096935154313523631546741237819371984146065511105641557638882369900289966405976875680932493422926954962173644307183415528968484710677971982169031482527160408583160912661299499604874009814044781807240670622900867979443599890084293941521251597933935604770410239454171826564544265428613826783265197419964017859287815646917509469225282848872234421099522140622446025360296337145648507711109551048413979781357758663082305699631008901616854406571508036765987274145278787443587379020278874838040716662929921056959082354515343305622056785770411749329100997516093246975481390864801556936412282280212553492045490073673297409542764664245496748539801554023272802654242007583204018028979706387079360680230902353968001797132963290475667708474145251836195216461193386163665036227116863293706599487838927659243130657280014575639708941435795309691618943114709971229792740711856400169834890801669767837853838624686040516107128444680220575167806024089857250537139766383854630771265701106808818362502220712003433620018713556901307610051296984482746928466955470839803594297428111927765629039200554548260066568012714881914779986554909986619661328856349709399986370496993227131654197597130143166354176341760724197198758651958446797016014951885746090031316574075363853160629846253214744236959055963651096135944034546431915134153666708335840006524380858463282122493488786380407994271443664090883038735864254408007472732626397635444809935964721231619969838903042581626640093552220080004238420627679388932501959048851986432037766671378895850381819902425033116011244132592147866268265319434096323537750252529547712117199123366113414893778471851324610022448616565226591116034139925383380338569308372885047668110262041569505908857806987514489034747294967240456040408424838845295657454239869260007776617449236666204747594527448580412670353553708506444410833404635507707935151428295004820787763337434008354246192516058516415887753285312171492802538334788108407605768342930597317331080947613859306044375018288299851365019464018465867802568021371854312220876006357486071133133712838468075390115336560782330761530718424076093168917946191561689016965091309750225288631963427185137909916778018947741972919168880493561133267045929291210499637517965402366539267942050857381704386914977092552849875453021544170067141262593324481668055134472033306866058268098206236745626255167514273391183278047399275685436540184551154842189031560345570911596737750951142476063636159875022706272546843205467320509249924501178112920086290976695978043441618849239965240236641537951178823216303073487580048373686176811034508032001177247861563680638009597395142607060608938321800117039389376096461892892088275787371269060893386036199167608058014855957673628941104404400557068350681669075354730391442023530338452591644476418275738476600243563218804015699861519660785168901543083557033025557369871714800119864163887566691039295092490822464038683949757933661255809026240060211971380763683797023221156387847087208580169595783222946597986782798974010171758368542481751111782716880336385650016395535654005378163773123850168557184159571839112590155271196158258808345273010058849141343029582490397884665694908288439235523128887433805555829950271065553318634952948614316556014177905500560575320772523059987401092512390439941287027341125810956838165285119130421328890230167999992573682137489544176797569827254021281394090067925175007841130263558651463257244495191902329164995566402146022884969776442086571060755285639334689099567205162430334293452376329662343658789810878171964114763424550140873792032283832630405374079655370004731767617815224119729446937344550414270996996970266366804782168343627883100023442456588795636371776310006191739830783678129361432874741436054571874459442849700827425519670280818379277147641801937588523727394660502728033032288409304722781877417448766293925586496276944124579811586498421351867209034250136744682212119341784183184480393039546961331145801952305184493506766203058185901118776908718133069394044335971785305492161567898001697209090462180606349582922737253715393599787407330601769065460108236617361151931110333777756143209360996781983393177223066022436558877183459104317768431786150459343344647306360696535311624791702745763600988257107719541851106144658880193844413145118598720327861255949703386962469349037199929092022681872514654889959780580996492572613788372585360420224679130426252564127871956507006096905132572385857180300819404076085444644602884501894626790790587640250234268704458302275178277418308863331179937584626210636874687868270306150771335921684825824189517003082953532996752223843897960254665497903619621614496093934634542292717040788847860139583420728279709149761535631183223989233844092667911210385862784799751571858046615338334254784269012823312632424567612008062115629095296457704269317260249918964928745024039842617107872072831958460428178352300050770828128331184869780016443189246249216683432891899535880762674164670198884086099567659491258563785370504564723685934414963739853627822374618318661621275160257280693463755177397522388187932905765944485538606324504223699526204862022572051675315577791769544189343504942789449075778175453468776305308830141858948749933743206846157678281260956925348150414254362390176337946460713088517887945410151366326847297388850218584734136571132335259798417366763168949885846142460253404406845930552514988875739414916308806315092046476162805911795523556571511647481597270705798342924354785613538268551961775182133480352860604801150578074366263304390698102692933828287945830331187306097933814309094556346840029202720092212416712629812729117318644106593813483164326585046058536072022557125153155182611067091004234566384224667949357154689308664211179277404845146336429985846147159921164963407468584445072375639184675274238075224490552491976701735734385897294941898533895636902841302099524615193766959243677455021022702982608532620458793537656081759079114059623156495690194164853311606573718027849331576802919666558818639312756211455940546388333951735455926618112640572821014845130419480408352616940868269620013760805480532698616592221587437760539934621362362446801073224473165089911510565963719979565008248397373127898397816184116739513814348911566734987283161727368272127318870594609778394407002788045574185318106295746456798508517534380228740398696754664528248778524381305381087441949178699390234399664903214271266416742629918483454195302087699667574944317475999649576188217322203762614151034824411815215314868382997325297511403249235188706908037345429253542309802638489335884723606347765143277518088494234095652604212683947919253947774429777796186770979736402160672953008518412821104871987472160789757830331507601250504402139748661012724065603629865756184152349203104682306170614292732939671675681856695405907529650716172782849362322424371992619624609210120746081463796344031817070136719159988922333445126634425912145399446573229736131063354628054154952518809901650420444514482623312180273683077373870158529266099216001378825312933003858039181438419832977177509854587718045369757696850314971064402753109339539940780144492287467136991732887130769786957824383918942311355161171520330250125304975744341022519518284439159980963926533069351849634399380154202364061234090540812338344507529563753555118925214800395364251305168553800695005191059659417612300433928883959554901689881547581441136448945937770142775195392919403592957899996067178149357991291146921796973389463160745881676189469355963258803444064503440698222161239909731657607010580331846388186188191689529027784814533731683721963201228829547264152587582607202452324073709027861449958760654442326767950465199023477323584371181562787112097105986605044489152067237720250140304942130535690570248813293371251640239203648627747494773078020385656867687807213560977316935969935920529563958061543883785695763761598320948680811310520659826360450939395473593287800617114873813048655983612189337366761952496434213357477785642377459010721849422967343812122544161245322389071909005201855447990387913529965531157684172180147270337233103086610324905949209403415994027410831222477824471251988748073867031386234285070720124346726871763255045462139314970406046020540198929234096497858432389352268527058732837186795439298049788868076163073446935705219681799557940444691386041731579985557049718558755411672287727461485985123632268958280110071047511034963542110645699421516037690015535947153643362292504341583931852496777987934789111627931561972730485510119774075720371822794986013693779005336383934679766282179064334490217239965032013124071719220319409850146448985719150386215894710172866272872499370230549344470629678131646344185655941931799402870252369832923751764494692590753090398423634733825436190203662465452878568802741413393390466579272331336914838554190170666704962423311718231169472330861977436024586313503923945835041481607367997876924123062468925128076168706494923867020931732051538684722967491268121536427850838450310651885029641224740911360303473789976833849339458527027581147958524602202904514498471976712033802792084214583987322956746909832480854527730317392103692128149664471531526169288349115150657119248034371644536764018121088059524186233121568425168293174508118941208307796772120467657833202550966345121589374766567610068810668666999636224971947500818446335669334708868978753320530640604570586570703333846736180664665182362783958734103919057252574140922176967967148389260019094107738082915258322603089021526411820984703966811855695811718360928262157998687479587864643686760723400500413459274691049351340037537972730222724469941231185810306949805594479712132425484992257589542392318059855726305665679398272615069420745663420021124328463495230985478152877173635659582464718483609250900453059288496576428976265198991637964649199116412759792049419881650646721013705288048421400623610964270847653283599491655596934771565581892799796911663032495908104660076637188867774063806798984942392205846486328249262797674869761885957120463596622912368274668054734788104266076560748212615830708460390102125851040946664250144009152454937651144632145791741023342735028513902104192271111431881650880872809626177246840168613527142745623185903530509760708156894086964491572539815822362893570571468831789337376117646955146616819948933606024000271507591478358860497369533315495705341390930792547063234383421274159806355133537047151725037898806497587644698191160606025175295859346880473481285833789868218530515799403811098031269504584945996490987676989441156056279159186897117218684444210224241905142340276077004234831365856279082758382302903972605873964257378633851255995998502441052682831767802418803253137619294674632458879601684760503157694849304578546505050297436353469602078235729890311192873448308612245417898894874022370123727005835531247286394597757361410890858769740869685399852993052879713759087861246043849560757627603053138755316687691652122832091772712555802646714508783087098020506988570584398499450636942988490903710061195669336638592052760391035898636074437854192590012831500631699476365903971025533093199167904414274714715691557634849025787902470892095087692283294644812950671645441615656719732830106914052533624469910848928807507912793823591854268499398736648383199471451083889201485771758669465907145851487468126522891908477603210373294021210749519148421242903359598853216343766450995604153370523684799605405110389195129069930225003856553750304351989881450376876409271228419853481478625249153450317800450811033492086804488222924224564127105140383709041273665127838977948349993630145262087635020093366577307613412430899629395895351457253003733347972004196261452359701728009244142211083166526787622805522170255394204309148014863103799159558798518374972549305440884490705407893010642373045599184323807493493013361136860330442396076447534848922295837465083809949901508763023880010957626490815584938216626539141962191503659884325714116180119410622913702081913706594474204547868349047778758152131045816454195614656008160518180882969044723825549042382049767750380587058891161837432876466071371725998486084754522656059150310458582626625460848672581281799760223811677524758539914708846107455973645131278678902430974510824715747478364587258483837922759660461179901770328612117011693562477262843346421267377499523093244558417103869959335576143875948544608267626050929465973940358436866297862919262475201272705593028028419023530760637223724792952613108658344572071659108175241094644895864315761619651571085255110946891069539754188356089596629479267455210726532084326478439993058136265186470292262812756173211113235574419996096432346157223616972625048893225247959453476497249634844407770979172218865199489008066073225467115035302696806272197751316463064059926621704782134428986868131380574680237488469886196173876393800102630551956948374556800326992426879018070297138229572105303182376962877244937776061353216451515194500711687012935083249496588207733365370780504025000758075631400887516213390729696231910612260348258147258495809406490907850587245725741331369103445125430856700542131973949059910750433888012069177998392348501857009007801373476069857249137359325162745071902844239929156128779503976067205859880074291112498243206347746571791489609716474957373841219524185014197787808090968748703559647950532544819277140466363240020889971841553594632203353514079879346185140900109029975135901617257477870898341121035195373056858460621067846585506480225102272609435575962845181290187663902453256097685939451713930922357340876142918456338306220299060809898892711315919026034407934654289314981566519690301961171173997178626921083925775636839304137387389929479546148009735940124545025927869937660197782800919424484286496293024094601617827509055252961308358733530847556375933762365623092947682633801998571004153493168237685841461140815321334606191576212221447922663948334075970191070430050021023362345748274993829331444929849285597728139576118178709278904264642309699761394787348601119010386364908948630045687800769413301543889489808576452955838735089174566833489553463378653009365029333435328898711723174391957503353040100736867175150060796390031749076254742943950760722678757731121721677348194038014388745631980817743562540213431450962932048194427100457548642186689131677692417286038739711523645905937428230262927291616350897514914198446441263658955923437079872392073860137912487386699092824805727088684881740322702239555784687550668448953929796147702462907557211096362834901326925533212952271287918185555819207691530595949541490799466201299151883010815065699437282928416420096075387234082786025650399487911774381275361786019979967986340069919596645018950016542356574576510756535099338048187878701148252460565576217741585619768384540331088566258521896777922248976030642215382645841340516255822152469809055975395709121850290169742615411233202706889045783204272793607557736366011171787109681425873507004408038933310500405444877865159846923170778723368230441767475796898231981221645590199984034876833525947323364554722222660306575992407171865986258025122452153308031537356903289517382490796804687853707389357534245786673172597250348222100926619065824373341058919690468207684043383825695884124827025161294472341095513439218339310959971551516167652309878827732175052298883416420144250169462218932569057091570357738289537742165893816362001527229522821502343627112298616284702175742326375447047091031617037357786728817664048984644739691147660983703062931319858553888509862196040947201346605628917416332757619480453672102458447513583773112044645717494584019249817849343784723403044754369335117722420984877454344075062089759049651161029648395222751792801609452210507067849847417242052206495848289990858125403032623928807600893085683149212909426546260403467606599754218363086457745463934625037770310158254381708029709009789556775504461778000032145878291812188061173328977826752748396971650680262692747645445960746925065724548991281890057548005843047473658656271153414615455915377190898451265000673139450172125552347810411790588921923161284945445744713692195299594508621035012514920486126242524346003410045573575466967424373409082524061842503465422684742223173490366413181966574835764957122960295133275850714918340560968112254572400871067646994029113203304777832937788311404393809507479688939189057806653099036780372960822641402874233226974086434236134156620338149238050431810985473849409910462675889613463614914626007944280970821002427033978861413500426257466301927190110927343217507852210488479518638755440578805573620261481233219540073875997337409546091004679643546834553286659158310493433065347246408612660108586493834489335647481708534212866566386954447050109409030490023295476299203223857619049584961895155160394845149833538769274935295715591459763957177783785586888416634675970669039285134282136026705865418777906651521195900885306141652998593537699321951894882435316468981767400290239635468042373530581821420167308216113254691287647364040292602362766007085158397464086798516335570087551183269736977063229574603738584228980590705222935786778637013377733759567656207186291084183204724436695011364223332167599392665613980954013182913280173723024147875352759886971358144558200253464038896508043671305689714180578855172668008181650513829634228787513328624310969601531084024291355078259472832952501818763786426492944101856302147114859015058864597037325107852815394759301219996481249463688133902101400716572448683044274913440604561604513349236798478897794304345081855180470968326477173641442856341137637837224924154337486899469193871202811627780087201102263408831152428502637661064343306764971112003298111705611106297390767538060264758426977931553458718125031048171016564164200050946328726634998203724988835613050027172628217526356086099418494505471473805921495309826810806609827092557141791922433981667117374154023341311347786966930480597759235672042863793167592979617456282188671715852811521472854302606668183125346212601040654269471943355829038079153581546159325199081910123750161666612868424907656502982311501330647349955080764322273559842540241776973723325193152217256688830233907923512498203481660336496286278916424919324792420105739291862636012171320726808352790659181164026140160854847739906478766213720293963252898360713857740996246377541939486740678385228266033631768620047130070045362272073217233288791239318589995476790408684737823141447388488110437003053819423563963339210097646315946530891583520975927158429567510662930193483178647079393725036026028202709199137287833657296242140943354322009577126410587758205334041251908404307192732280812825232213761974945410099590919426779186843082018790566433669300477097379485658159948238334866231161935266772117378986168990854297295673068100770397118354083771758145202558146414433946514970926526642701415831785467631476285438252127066612555319812296301024763602973538465090816358325427912775847565130887093702483800316567471831146926958369773752704109706084743441721148591078241846525774557120238321568287606910882760119261161815269760629536431658700029924365629444757653976132146728337349243282347367943177026744540047840929538496734841485170721000227967524932345433381318759389332634873501325723262926216811674877959891306340723153486770869882877679378549121395994801673832650190609899035456214290465365045263576997140730511335916950054721837606877552129289029939294730172651260798867075610341693309238773742262144127593391423863155544800785744560567258308099378935169574519432034126906782019195874598359103783718884828467194544570328533724074442449456722568464857004260763539265045636393175884424400268376724185209793087678861848185932447158575277495730635039015154103577145093538895049256140628010041623088602408126388353481767664330962228445904763125111007020822347505424639934038922047289578312461027413687470610615725730783381160849571929195992511843670209906227237794742102084629117237520372273764793725443656041267335907397327814322585868129032365348783065026747562066857813336174026178647546780835595992456801741530222862148258602837634218890719525624825766803101689441038552979771472814215252380877603533781816411691117537020210457979072160093824098771327284815283839296390892903623396022904506615247072850163944271067912826377439198538634458729983771644377220918101710496777231808899734257870493219465665262605594506724837301027623995433882840237113139623921381988042582273928150509780201187887717581776034641412022576370102503201217258058468558975836587179382229532246509245511246723078481522296941056823451793329959930225516935026642696781948589838883422455241129736592611160670566233997988220711217347671630149969427949908060786309509015275535961210148660974354009753739170232455088379206824317243686312442740670974396249992533248878039475641342159159350785702513334464173319286476743496355943431006256540064122039556211691093446868396612458201224263460348126853756764441995308697921058213618593348555773782559333191879746726294113664075563023395120998717960513227224414189942234071317744388677519465166093273344536579753460740675155904528119345953128319826495344846279868844359821731085470571429872982130050646466367163751247996444961292945229754968765225248957421354391567405785999049766680504182138133746819735111982588629754035005583004701133453184811356632783207396561264048064282071441592067785922198751398888045426700780564536561042337851615752057886660131329287933412952178412003058483577173243842162420646610260910428208153772837156187224157391485733382373338046363749859597404042599299481039565077033198161455727275212257988173790961259932532853353173131488358593161451890650906890590898888797295404421468369517906355256609861618099097812751013203336008064945636649251285680872193132262051804903960334921592338634111897572474796986969977155713414529553437759762119436224067337976300750393969808493956073521073788965671782346415761089718222425598983797128117975530120668422757020488467138855322649146698098967410230480340485169590160858455910201553412298886867377260524232107956248587189846457977386106258750867659027372342015484138194034866823973798995158430386982878599552141785173778851069555306567459853571096997937108043460561649664911031299401737526452300017552269468069092289644441581351463744621537520989305802484848731059738308545671058294699579222766419742765358506403287332373517256220482756985849598287436920868869178640100129938535655488682056869344543875287467491705017278062589274041911889729308998346459989799018127480071631251448102624955478367271836222733061356383413000007300445992502299750105707461659248999016645191872088516380270729666838612098285566824512358071973188069919595289184793443401533163487744643445825620705602290409832129779111356094602876353185277339830462091089869631997137368153829269013201629968497134561126804063917673394001443237723940915309269908277817023656837728444750662558227615594283413340892445857089795153273892417815551679722376803942601997755829215141281594223009168509276054290619095906478557543872752207320698208813633591689113026911162108713205231463274078330670594718329831275387083513770095728925364696850504289244517861698632613585207463346916564759773640272805110921264618259940721027506667880354740674142681609091519486071925287088195499399371044207223999558467479610287888570954678055685342025570505089711723887240179517828020500280072069875424065748497615464243258124411518215124786700457094525407233349012503425667718740520002188486270373067775333656806341497661814377173621545705803344926671772474042942493546446790713246245589714119004957749645020545174130614024993153927254329760150026631644083047551265135814251171798101992327261295295152200686624367414763612719103354384130420129896613116116174248106253838683405160504074410746070022661113693539696433847439849074252453154166156243258028761265162586804648370079775241003185534761113098132833401347003025646957859942059267512094395281770722721557073721323695360522839180961486143393190937909340826528900998570553263255957412892074850918123554107303985920707481853653237522534129420767589856687309596594312489304411788435135522267016007152641485892359115016074090490115275634834887110082024524437763544006346785119942553020411532018953624462648358103943243499352811786824798011403425620997170987756628119861056186786939219976771387680258941383757871624744216542087405947111637873866194618790430930133411031432526640713629194331806149057366064560424085195779828576473562721116225662989157713562989487564149788903380955384091461913281365703075063133946732333076397835450455646819244006737402679724147563824580065589082764280121991502792485304330342266151072199999798483735561283364899368622411823572922110982534297488292059749550944039409711909262504255209100956316594765757834908034171772204755694896616384636430374164698531162806799196713393265373380109835623877576975817133801066706400378723566749979445172442760832396200335925797305830266369657632623161005813096300404790368443594993013607796823814491208583101702105366660349924712063662921381865176152497376080766980868432209863085156205463817032679216634490107149880797081980499701299095802306458460511099104522644033751285823380496622726965075057751546136758191136061486904479519275945485616947658881585111284182162174346387018472896768506366165686784339272288790253072631104784229195637003917472581090473031977080566461467471209561173994023292630174355092731903524615969077866131109387388474465771694407411767988930980035441928926301777380879298421349272923411281671164824299054048706284924851642174932050851600784510127265021942088773192727731178188915699379600626184353396445043964628275285093432430177812069075664001825823305506045474267654022309209567343027191875719985596916889897404361441081455948952038126895207318783835303155398965366379153184655733471611404488660817953988275989335884752555563116362724714460723681445958068157586060989896845973249418771172977881999806535684447033663770455108838378411617771193456116069729785827009367813634579455883626590547024952699682055058742230833257816114094469822731432353177984208668169025485460314372698055446892926465552615363875359562770801636492650394048016146938083176711636743279875834951844530991185380135853046866492589032377192631738972514971982630311670988244810824840450420931184120435895540246706550958005975894963204293031570185795906665266303624436846456938955612546960424497337868337550321187317799392000517811088753963086245621371223244335860078184239030762811912118853009774253207254864338180337473580094494115673021624468009848380178381085912528291397862099456022620262271892638758553437675841971033682611797164519248922657283614750801116421813755747358190746190183012460480495155941724689512679834296264932804186295166267350396965753428147502709545436786186131646158625009758653286151629510415681661494557885884560023898287680663632534742473639562508211639333919892345544725127748235161999561175188889640737290736787368164249361652559874262856251968686106797701950268206575424301864105682613332926584388157290729131132007023521074589973409912952823274945271779513321733501791880213867870818870398402333767532303571625700602956191722991997550382307216258293991897293074331718695226280971954642997051789007880723977112264595064424232662247508838199234144983576514832811599852021376402319792799179713914059715837418200000992320132632688319041485888608170747911274446004672233320337529250956172577947380178728638357457075445035405642098757003252541820701559770476091075616473062510216588456093795904720604514842120252146169762619080514593095593028085965619777225107360091276941655461383347883117641525295914229411269275672375994419729573348541851858569103420532628275595685694231295614886383438080284404598148856256829021755898592829015249655914858423389142106995511755716515317121145373786156085889624931474549759438083279669055836148615937437722090591045369192515276740925988144077213842043637636597457420423294021213168906773913889016918508729169207397251895891090486115144271486965436881427815929599126388276407879727915925259119269143113243023119500384484942257385546146148405759621564234517273545410758300823063122273840048836836849235182361534364750625068755012515653527679128372205532391168100582570164617303404758020595241754004370513821221528149117710387227744169898330987071158565346347403264631930297622630168867870151109954467591855331245589167137696682859287140731405677585037578780366408090396918304198097233756483316288808023588767659396665495932594518104891461863945060370172645836264073886818922186905819051416595953890009798079293690122257114563805216254359280011486153288572169909864728496166347553993666293360815063693656077755385987709483277473661309540918553296027886116665800300690648019590862963019375586883473985455316934480630744794861014599357692070406683606813492883914101673852088521957437825809591764793603569664248974350328132331415192873466126128808145302756996411915815994904749715570600511923267770457948844312553391150078364592509237843849665530929529486568188032683563710915449109934839712329418449129198150359880379921442771590287890993494463540226042969130260219914901857379225866610948621119697493384450180241568535294677446933822724894751461417023781904559363895282968970662608487268914400046841272820181898406067863920527915236039734134867637513648013831925469835536023599383439486619177311893347149660459608302448693203004170640643601361175857747393182905363364031318119001943026700437812526858335155420379521593711329027980713379771089556755327427142013718523995147133650258497233636500509307925239990637077440907033155044623334369906059869765886158440070934815079321866912845866617865318970145841751734872997716741142898470939594334073781859875804303051875670405610737932593831773038240581972677815023830138580356333398406758549386896928470815796439458371408132834171740459694918007688059353043277392573264129045104993293460754097352397922527633447642634266571340532639181232821945856053400645974614016065243541083607456434511914198075791834368617562509032123275314329663194091465391080882045136348344373941687850702616480287938699805842255962579088809648402683238766114257327642969610778961482023508991147598542863293775337093929087513668265221347512464346385284803136055144337903412120881319515935730510144033740941235187520632915767823296192743417340569984322540709677870336969229710614036644578405746003921091121942841682630212833134329389618761199992872033822654939974505750838072635191043874667603526045677267255978457871083539638319687085206774407746609012937953801721285809580960035822156546249027720929918648063435262825376538612741086823119742835639643449506625377357697801272243294411376484729231582539531733059538651756019821865049650388855024915848694748395901019062882840798968573573900803245550562768179827037060427692617418412713197162661245454961418454647417975296524489177538532383349197642147047154724974113335613558033164913145843017351863157096489870951515972072086234000034554212065317591758021090869201154549087951980538172831335325289289033440504723488525738685579743784758708819505549796973568462868327343248931215274343592773758648712502826497350829193020686181863463994907351441317656738341257250096394482281687485599168030407164489598317450870831989058005949625437417646574857141049861281294673405140924897034183343956693692701526495705154094975520690150060907293104553944698282975720820651635851913113599258538343517860870178445170709931134954317923693836483527136596994190363689893304421560165861991161481824033746152930387496350301359771738221031970873598586248169740242980670136041776639004897843471576113679281461935236169297627046240629536352160904249644999289995518384147426928357602066979869256012882963107847832899371173230666446094585346851378257052326052850819599641410906459223277134413733388343404321126651994185427372678148704972236566370200652473729450060929338970651091899932568263079851833166416253534822894476745137172004596583725830947962734271073750264513073724506751771395067492956939113846951746725941462915945048289427694138882655691917077493902394200861851004545276164977079738506525228260006808873912550106546307618821854393805991705906975571160020795653270369272407928945758140732446269467419421392710986627348780339133260832037577316281619486443939543889986587998495270051527248021213738788840807595651474096710538730200396122835449288133344868307300972157703799211844057319022935227530857476851578865214410037212017238445400620277140031191802730764821333889493527794986077169559150459377225349150000973034257659441671090663014432050194238641951453304550850030558174163928435668829541211132250484641380617995679380224736179330962466331570808914159170898892478947404852229340655853909737115638807939527681848080196588795978138017877849584823999928026481292099810025004292184337223827271367695446970911902658019598868238756122756726367826406430691285415740999482286996155938835319536404469973957681441898379980586744714906625698320471570239467750248789582572301610772954062507698994194025286407112415312348104145331262681899078482950852320086232208011777680077017296221192378154195003643210969585651435332183669808189944799665139591325997220722873172855167837802364450793985272880030587588166322198411711491153398477163731753569443904146311751498760668806426597040250089089803740133393906557259181421320343136966387038351020868292803704535688810329646184465282561500627498267421438037574961154604546235979898378883518654077202245601171604228575282794249847410254131434421164786659322327343757214432684088178982683027586733481801665580438188749291201991988762406481050717858465550174805798729505312567399956219380531776513491710622074879604303542800779780768139848635855950890659579619586080423780014303111707435659083307664452397333112898899956701675005293845283650255257611011206602438718109911707914138467368239961023270535113703782848852617101919059025238923580296422707099447525608981756278532299832101979210123365953396646415079099159513887135401658783102933185319506270377613715631884439630424537250925099614314487172088918979760846593781495219032414045332964532039150036079888685180063048826219179170284388372582793046286884194572139869434553749157294941437245319656330065187910361966579047945061829347029992658559204156156595076138617396346849531580251297010677018981266198039422622456194684682397143232341161056475175988229573909806083851651611638956108022139190148203027221890388353840582479153635273775362858394046871205575610541804534563985310350812932662254088244249346437828751230899213669809159430657741656862916797333047027404267776288470404115670002686771568871515971955018837683431002132554676157544641550379380293138840148167344985714246390926173738571065695984717469629184741212243969509107519022950023448285730865717073158455186122426601486910409775176957669883674954616325681582619768078262790131700401680537994142839117070238038536439452501219106581627423166875027826759729415886958424272923650726020279003332954840387515260829375689795903379628935093056675998471454311142650845699193201316625789578580765378982742474838929897705967289912932117559438498423482057790858148376282711044059877610888675351623051768349409947370388209391248672074465261900123875269892353856129727948804202975714468843634930564777559102904813142510671039269850849629733129614032738855177274030304257907438757135899303791698030851464369490516780317883561683770865953216248763927551454169212712165825930088211111872214398110221430457809076698145814261574539325692835434757234613572383747904538754108197118701723619716475201273889416063053942460967311246892884144558821560372192562131160975065221897988026737854892103442131784996305321496014352508476161453615792136803246630979154042935332771109067063667662906191050437149364647994939180538108102307662818724437270469224224712943608751717553226068699329633866648125854755643839051331426835811403602013973345841638438080771987521719061234764904831207887978308901544211651740745245692486710350934676280758171761111027203466307973534554595455294230838837114342922732077712671067766991375536403223546583300937158391464438158373235442253484867230078622872004059880478748145997480490295458829714450215792282986350105043826810847760223344963803263374789475124787784532959353364695789049834345214966170117798019368200090487164565609069775591170549845637301947669060117095554298120584682647109729133858391407990192072061439370074171717493681777316197469065943494579332832016744495416721021219587561290597990701105688318940169719816726609448879792875448951873347469174187808435026565458814120470484449685673225668081989205174893062642179839810049247191937908304677507375050819276174725288102419824042189336739533932469829061771396464641992547312305665639059930799556496553056236890418284808598666047022558947940951899599247608927054235217028405068014628926141579996741053254121323719777223927754986906043635999519339146398212379071654516983373254393707317268067379411560669685865987762993164634315771361087927201492839772824060129004434052560285603643347485609427468664874583695602334301515006792775891046012130303384665683752946003215798519638841566179876633670947514195515101491533501580807316128764315915033698563526934650505654344024247532158800354451779089736439463686592251808704919781558348180541931886525600679021963790133921836797596261449058547416414744009760080418790393632084462357293931611611056843578635448377166353389921359956038005066721682318344711007229829561583309700658557357585006666394458576448765789404392516716758996365296777059376146317050068871379237267890640597029634917628332587133013137171866847786645977323455904053431211097423396962070237371270379856108660273841109780442485229575847673616900612682993459893414864640022580577149295656038031721743999058896329610348789559179879617122693550658660126218143698031142027606121280521010558158585511344191293174110637856852263615693803314379156154311620188968742761169814284114740393357820657395939562829811884877157709666330115723726931587418401000141243463969951708423242938203743526560026015336570978194371062367442392078425002401044985439283177702636134695674162255375089451062176788286609520551995730320930190498133544537219776828455157456359693510820844554466362774583886866872460661421752425796659672978504034314453172402053717923665706784739171292556449732080915411485384456030507511342280957037774066502715230028987073000814474832049101107392163835235987403310693731109179886048944234531230487900221491088172142290408681744777847696003716570666368909420101269963548526193245488383379761743686076576994791779236454347467131251469914047892150388535939016584955242411841487166514654595637279905338519453587916039725003393607399155194283202102445775871546997161777667369124109042953627464694024319581477992530563899278855533328100717575604677420075407856810482281258751096229340279487072617409377071367780429701320554963824724263182833746544263845393616952711976783137428786958379264306761819696708593685245955128380948203433783272244930625683869338287971385099909124361118503188365693413380121884316024504267084077258125382192857252598944564015828879349501712360556557497470277049131874936901686395288382287820957388843481539449178237439410702394023844095192549870659821082373211552747954443636683595130345204389582826382694356954673901155231078305256016811039859242223498925760921483682076921890010666028669593979533994172791755957585287693995516884361915198392221768287440852148459920065691961702976996122536154354121288997288894267861522090863275365563243319940824956967533743166935755609285044919761796585702722361264712243194851478507389378288212159213391817061990693762393313142377625462647321896284694357349964980865207182800820546831053690785747820591395285893993241738779271446157609904857257139493700102298031000059461635553845097539309134630441271156825183665253872783192295913095849480802325016888573072135690265602570517368145572697418218881433787134782295694690100163716082990522767741862815055230113676057677334202267333290973336830251015725511007066061789289903908616424864146072801667962199378491264585216262668053153575523762323186976694826461197093568190699773816071410691900787415821703798513594746411862499671290725573795451988253805390452337072480147257856784053798835664292711455345135792189539921217048933343581570141229641901380881911311255052541647051470275792988141664270023859007401028486246297436509969185754796258551059544285641229265257503111337400837420225166721967389699299399016808607583204725492391208505793957238946187228243628156797973995897233230981635272098835585333092074255997404359749106290856555155357731560380356202372036160418675726432159454412647421138341031928272191931296785541048411217395715705242883261506791637111595417829384428698748934147150480380025674781179017340283425192300575518377812839776151367983403918787496151777758527932384657107079749031851593637661255138831565820522335568697639049568286197554050587623104695331752818041997432321120281050294891069736968864544731984505317709075875234860389440511589732186897268165916492808846030833863440238432074889849001258665433555368828951816299034386470809781690414887056445720196435415058703876293487709758663349823905843414212234540072284948974582733004920536227144508662526838342599138067572370142412420539487040105997013549820769527626423293848685622055274954015224525322925744735157653213430473919215923540288089304490457111733389138176827905768173805829973269148507851038137349363919141726356479975500496121409678719236710162815291518472893004846202344106661394666754333266484146155963470183552448529529402136325051313316453246769332322696890778958291109617897643779253434097901245778462894146358631303903388060758973461807830810784666538912611994883204053866961248678968042173993811968297497211566380249545792604054815701220924772539395031471711290332334752265644560513224856659322251515533916410271642860100968076522401506415941684658933958581006717266773263291608290170868000290268909982280148924655373296626924881685365023690394233869263727702000637200078374134135111040112219838027870617914512903463495733364206748201597030292774941043864075915217151379268529916188927851961911607357004851317304574668322318739106687277588891675703635094293668828936058546408979186969172544311151108791442130124653717838507525870039091864749991829427266062606327391006118974549126423744004697452642223447600153638923817474383986601668547964310342263498657921544026183601880073861640284739740834451312313949524783403267443291726726572131946964528282424742739312442233261954091777252166097601809065286473790191000329300510576496163954767675215289729563472728495996384984800939151175634038516042990173535348798047538342548314868702523578807386291649742577472910947377311714310577796374641010422005762816653079723806522534598586882708857319507744395907467355288947614930494487286552468491967340944178653187685147854302630214838112320003806991037772000403417639601165344642379315643772454731277915039587576261331016077969312017807677495551003183086664805328515410399217346929114303099340691949601399514709747934492634836488801039884524711728068756917383346735621056711570571322066047329031624566736414812416199256737593574344753977386770628929491745083614563787795369056393478213833728962582906970799307485085202614312070959105998552784989481337205852427990242036272769128361219714372650141806165851470546046948783489844700493465829460783015629446316332018528696511196430200647192135915537008782288899011614882173918848473594147986074654714515957673829329511775596593107513364080581678618981142804874340736163698533941422229551744592657915690868790056017084705823565006070825297218235606859995712754885609215791574847713113926629858479550666582369324793945079566875550635465085474100408384585410156381935183015491546367971433342750832740753448560123747960125697149481002854693731917079054669345557556792157280341283286783687538959650742458150969847382934071263794754971731361043801641234256532311709388309878542361970179599143574879739719638672151642878767123835763932298644832767287412637117879865130746605003633296893477263354776926132876389572750743536228232881348837910984205319947039665945468168472798830617215684580904284155865652059241441965028511833261470664826208157058394214156031992350178048312030853701257197624128177147034403434988012835131183237040958230435877188053387539975747205362331404397657944501737670329082116052761200686892631282974999147087904948178306428250577125826199909425478383913555799072325412044497187250708753818737714363942652494871272250154474369631055293197417070963489259398302282862967536639655010468815226607041821397807716009041723463697220750878200446229891890201772004823150363026443073904231970873565167919448558352107484403483734956399147418055987608732068784941509119570759545754118493098502292348103162384722751910288209335957092018842228232073404499757762891430348334443454794578155782154483802446380894599830712262590632045551411527909149588036722684654394745559318845482810989035175393492625740972302914570771922008083462201027884173709300816185345434132100159542997807857740542095727706865669858541339590338115719347966389834040947985544016690417697345844511206228581412247310386165871258424778312746615594948521747196433993028860006365870859933905684850087146191773423130974485405998950949086415441434753760652339144618115436329836112420809913475844596320846435162037689054699179420349695913567546972277467188772531881393754992106432807463898208270557344574104000806236226291689344339803309449726397239706400785379735848191336033017315225286698814979785156509661572476622728140434237616751306404587894321831249683490415882970790122279614682833103409282466752517448572954450901855363696220560871574093699705964732653711533362577307404134232021657045998426702927241143552044393973565856995420450207542506935049813769363777326954619378477197383586098377069649218741492585099524944124840576834240607076949173050118689848698451177681101595282697805148669023150337298312398388424649609792570730219317208424730191979991142427731642876368085048577914572690629348992028261110758805679513177026578632244391215643450151017954727391357067095068420212423134420287785971085214426971381548948877568825138828853955938214125267975292597414309048195466071335071169275630798712784945936519733865640963110787003037690590878910170377244663003562551864319607823728494553568438449805887852067422451028787841790741826651331502942502236003404448105084808567022259403194827668791944259579381534191650417416481067358907100674298603313910099694585982342492314808592406855674509368575321861965645785580499053566133650715071936416758416391744017487530516303114190460600930358720769781317832660249650338107088772313150237499391105246100374398106091881540817833132588250189705908797430816921499750881982413144851665166780941363811269143558453941640758338953103891776281734016065529563378216644796797503624987607200365843464670560674970407340949565090396301358334267294882702085687338776054605432954332812547903153451992593859241080111863508512696004628572241343342514024525519599078382324122621281087985750517852358562124897776716854042524688611299860634303827748622885797896643426341528829943705253821257260613319155723699576709886986275839583208563953679103581967138621916241473701259495358367263136052299139261701205737699831584404307969318457387423358111204159093079698380659433334235974030127054016729641913902553973599802488202427713296204988232056714933285489603475587791527269967775676356972825319805576393792515823511730225694026955275906732893755600719123543609751169596886898404114953298472141192836447778483811446181829457456772762949978537461252185689606924332097574424759494737430072240395232709173202829577439073830810012449561946310992116272041074811579579645905675333171613355884387622150688671949179437197830202267296718819441138856416891210130981512125314183533275948623644849551413379595223144515318221126039443842172903224736922561879511505849993120206069992737769879956657918530412807830203933933493931055998090592359761146274945751494461449678653177059961827760591783846088615787048616088290343927298517378578097541620441537269568944278490516523201801363735267904190168431198124484022455466430102527287256124115055119527920441179018412483283977751225220490736173408933927610028327883282287443414810814824397020953353777864331999107987995739538101228645647285180755134152397679674716645680896575109775980346483557856893095713222144085679608942732684668220974139428034010555243615675650047870146963634457497639559274590176575796719322623227576090925954634947682912008474157603795272612709964588343621809456369895068667295598387039933210308464965789248965558812081385371257238137445589145091696092003309033920689239519928769253486029303601227741077333918591555098777648978214076587426107341883826966971544516896153425785266732489279581082823255954109662122319823397830012207288008668874926535027118473507059654931263516858300910374973159216676214506140246836057488209219815046003356400242326131019763514795376552650539647291230933198815609197909842789635665883943492616646959493623152187609697187422246997492535451979313273682368784672460048578783173239562993033795368664869556725337771258258876857143238093174976255314361117690472162871000035286403140520432964177415532127472227889287688761241672254199558033528889265699000653039034396884175045124954029709600391682882713023320925285993892977697080883516429408604028238660491149767486629457802623803225177867744744936464444794673509348867672619327724319111992217644550060381732868428983459080774153659486937167286509196709693457108953206711850602854722140131051977980940263869363543659354731021737284487615440469417684325170812048855348622029421063418278723742012433042315765238098844114471967958023411887006399375944813148659551217199338872217749487587525829994303264592927838250601967719671962941391634795212260150293306874266189648125368419485656484430792477671712849077710327557509057662274138465066651551406567987306538679008558004518583165241726561154163564318923715759929392252985222211437388530736671751693186083131835607400144228901983553135055312241378424756074996479516539305494281092413945303238903175482154489046705361654286855077046669190409170635636370626619435530719391600410670203096923403711098344566584842774089894176995940039805505879667291752806995360300397881448070171448670677255920280188339462010063959566738760781441436316762508491892874317165082063212402635704992388857103443219682832915461758652496902690029444711699509983554977235220758300847941084236559669091162517478783075621057276170681138156820994431853245377796128068955089133662863869664607537805362084742312744299213084915934615503202580854026050317345150566696288781897045980304007157042439681241187186434385489761257933136548879861075937400782187243859120384642634185558017814956490963908917308490734601426076565790802532965687866464918825637202112781019153860325525441500668901015810587719205743474457204490086017586579028719266267657457673075070273714925118147016957687599673100116879239573933882146297048265638510180449691000777127634071169860379331872720360277898350806569290276487990389874030219391255427814757855405788086326192278189398864389487261448351226573744628515207459800487532183566658118891280412532053624291196831481962263011654837101863617136373711411362867662212253147009511628333165705983815461346846109207274195226060722874780453801813067392129863340276422923392111313596663746818467838273388625615644365476580333677579261935807455227795467150484416235445081739737914547021689583021864048588175581299384357701406059327058299664654822488904088517782206623973749482295361520965955776459162173104405807663172898343118654225817894344372700421465443517909025642857148763425733139492530888621184027587457849456120076203446801326722812564718636937500982929328593315857188878955683702724666672450759762086363128529990711676922923002206722428366787573532997801013426009584032182684655588182877501949417775758244382847414279178050060637481388812929417820239397072069949210580747703053166821002626706968767744118873093406822900361789654960419449593377322075020595507822167981310522473468230808636679056283291552001371380141089185185626065413212492845881875344276929718564091549894367229227144710779979320338846115409445311906943153947224152336306749619766044993195212793691935068538267723095585789675609938872322668650748902986148239551569397108026650283805240738659196415949530231066583752164399946660702635283136876509175781664340366148202978043788323980269806704164801527715652241599270556868690205742057754263813567130271718577512647613713488816189612243773211051145694399128116735053395854529588360949463154807669771173676636456947147712202961731842730958061704421891672719879317891703433281138251021956581040258343056252822937644078484656389500419917619033073125071651706804545644289483443405769258919110906885050411981978668860421097379188685188687267827341821159251733021231316207197249473166121125730075657491156976063288868745933667848630115963481227988470377771920544093282094449620959317890885470051334248621089050886063358798165186720841363513585611525138137003052206046508783577288848173168819935539153401927819478748382696293885768310483953880716002677780739778560674045686758121464444168803605072352309231453981868065633963243759920128756227035679148641521855324495860650958029295843567538945778780846804322311489626883592269505230444990909835344547618971836987337425653758026134779529014654919731506026650932572508675460618700059554769761744956835167477230169105856044060464351448623843198741728105527236153168767164613374971754053780511842190303648587749866559703096343025200834005195461022955950562208714968399311156748058512056348579244045572186733557535854934635451980362990994484785322131251554582612504888902883106511632092130199292364985470977212799462178161908811896452656900301204937649721551977799135397668206209355664213219253594773504429320702870817868376962495789619493086943001188189054002459479187811340978333741658520630807035374092425587386979193959346785232634334844118915515328099599139966706777604540876767941705652266255109271396611008183650272026074285288369306994767120951954006727481361784352103528860708085845108426245509836929474895830680179515314963744539256475466147556015409825319041246043698525818022786927791173853830105084686987751373201396220436644771040558757369372767367060889975037012887367465896293177089658813624250753009413230833661257626584201078434713966193563225974587573020415898836200782866328949913854924473947907898449404921546757477277614906924297975957768070098720402679807861094514211177490893513394852075070831750191643388207341506037370940039751378891175679530425062308882022946592543202125414822516681799889469581931459793834019631960468406212466496020542315883443598677981596658140722097674792211654436380003806639912740242308070003806186479807611864201074307314626696848978091525268413655669902346598334836953240873458269999804989337895126588264284952327121485046770410894486180441968653131915240431758235595407755246815718957815863100138342696479061157711416155007517769140777633189916294645525453080511304284539180522965558611923049632157104172594034299879072982293848276687636285734255434710735895643844534069679247872386959880910312258475147929302632261175555617309506191926346430639667245258779620586118968597663035478791598406868527132954021624131121139669593042065975960583199216498378467744467677837888253301813608183795013704885777793785326063941247538666672236053965900096908941032562115444991279823323481919660747012487489180788976101242450905709444028634944463352130683772074156984175977695771619228198912813835839899154967653745882387911584445398527145159369390041113312528053353451632002634539713169149761671686037584855024232840111624871875100099611342233710393466422595056390028708093990299607036333634886708747835028334501957000938070854104611107962222434130662507586225249697106899436331685744304588826463246551455907643366772913588683894067087406944535935349139301716800493521612077530751504174617049982560328445200468143414413677042695837279022645028577845673241758602820564513394558496661648600800481285690941759682641821077186226429537054644850446787364838681376955180005857834972171011173827681146350649547582302190653809079884983030217631352790277204934125541313448987360964054031071337659892583404419933915584740634102438789239763439721313204089185137261851672838174687291284383482277827777040080790704162851595109443973666010490321663869408286615404108236446841325245588694243135401722212448336328259333511333046129565658502585427679370056978959792255504201805169350089096508672768410212016548926444286727097068956866435677774418443165773836853244170013607687076398757255201146821663780061357877242668002654117015153107725878083410450303460482086283033728613213234541730586535032379281765372227832639062308405485545110908511234548652225693607342856805143426383340444383073642907641180769527724270746926230506734957805214775965271447780141381237919748620304581984058463408058667919141953083465991937484322782929249781545029958803098392526696406652700681437221781878768415055742891689124879705743527175199844538223995544628831222460105731430727256335970714181232345955058912388764618274071294810316083974073522426409150573767225909530538761158635845018500084531108704889444724590879879816766071228556485998374892159447722570878568872476046004551235223145204658031034093646930567852112398991851439629249700648878084624025138009008621593522515633140589132245484937379739910187922442629736017066539703512218140635291083417478414055785828979942429242614519913051545402436776921546498016977133320520420195376212421463705774830326917641966926189486938069190638126371487459470169300898603836354517098769297321509943219871300257291009023015524039269040139465646510697335618302924602013247462577252319434719139981740986816240609312123308111111393571268658032108829022632786767852212714081406791585419156938395552974121243104593928995484762204133407638776170085667381320879872680366454754057712403746506337170610163545697499570405705283090437241956463433090784251032005922174883181287507909926289161693227478339245240160241720414273709096236651772210404808886563998609899485918654368317299741580604669257095106018373597521086932980928075775206446067968277419167934159928923353370794460676959644205909406490816251898237355208636086045552477530159285004480020417409646469369736294627741582457991019948758509588496362390247975211969021863812579903739088551986761400688895538071646353849676108267242059603605586192104279852399296889871745723685101695158975310568462998431133737682857896880627570145337623653680295872654540946559169714996678285172174044901145313712825309803723571448677351765283657980639186306202657168598336288195615579690798850504478421240980890407497917422848191400612304240943663451187435733054006025241666710186670705425758159535366953013193535161476946593481897377695322933848636868273253725216375143592047487788888942426297817052302185120461063507726227753065026339875398580286722350721115311652535154469725876736667166402807045598133871468769248704854239738825806574495068714986155752819826229069853777939924533959013790296786855975896913763982476675471906736149405944485463987622554485411234919713672575886689650227924907986129857556236584411902059814046697731562838574166800525196927498331511601958109663034050799047845886822487754778201536368265729980851187289837286363096435459066239271553921743301588517671603268885761357937958159884356748910430257556174317619593995283445943667205241596701078100854556695641590681710191971716434693831022687630582633517776267817392501932806650916772482244928485388884732562634386015298059044025752026530005367891239416010977704116901246131598774467805238565946504272529470917186520661561263158616914463782411833898435756536390101940193916473227328344025639043985866463026020311987113263487266956632370125978894405325124121996875838700207396747271772855966474363310107004538177786858059231687967526991384203088672272109006165068860450291943099391469171967184489946256530126044980326587948986279043994239739230170792832267147636003567734166989764359681098269917722839280960035751263093356593325362772720648614780306602448960997127982243453671426387823687688190755439091525370635554926588095763994178208426753966334210047837757502375826301721334787069188427829586703874873876534987139557193781403041650786302280446482253275805273507935161039386593316998713531858907448153422487225772759163726623524209498113693982917997069046497807843585782667869416691916105730491789326004278009266794426854176030042177027379509231619815919573914046783491540451426063702006617439713260455575062141308770932399812305798890207499730695664855185049040767734109654243083590889186123394552124232317666764335860734812457739133028942801492366091349833566312574916352699490411018052521815395405745310690039421826835669970465446352645637058630218814680053664940163779423579109371619523286311899307055025490960070180706459537800140284316894418863173253582016906825186964543057421166663410305092491146139330354175277985170286089604172281633930534498611788941745823226641773052190657846771280301398426441477036321428049575522336861020733105535082708507251534894799541183387968901041006620311258879907245579152834861093792653867854957890518320894249455466244410292911385863617698762854093234673962272325832556918278208448300652685189847687600309930061770329941098918121694691479357189003500060687591744273540615218811006421370442548812499035969083495787785729783517710331741516994520327661364387752631797584383116544621083434191660428879151160249249321552352720183739407796494017363869433468238667720273435746539291430532988681679004581547930579938211882292714258331656222646563778200218228003744032364386185653538218963093443789957305031175957144625217560818727495920620544047518357176834159784727805189015349998303340338397618779091753316782219292077327449979707724068810335882253176031330866702667990719412874864040044105871210734427565061221571731063994256993842339819791346950400197921657320391333036201325653123643194237754726972409334901229104309575763376212960253812893451001423818824517331957150854868909617186662496850283688337908077612359925531738665508413083591464036688362752663856771635791516271224057645029040227001540811488192408372100747449600628757067796760945949591083978952776129893442456309958687121988938353832479340035984393309023853736014248270061006923393386430129117672940489910075809193912879184253886876364197847404936993215657938003895051055483129267986679783838643245273867326474338952263378399634962481891324179751161331491627616223431985135299603187041503454380321453756604704477229591520870886024701292309447882277602905837506075996438825956792061266287090930225571195881284631274266413934320829901333453409687553741960141197196473152369062599120014265743304805778877826114750943678061651834508500808937096944170622705014740882096213531068491109063678355003657691751783482569606706981882785149397884788310583954436723081708676316885254709495200210547335315190201857248772636899214345450163525891427028967911979276565945869188280201543281838903505807964695192823875229632935540306791376736554502579794605268987056300723243797987637775910627654450694154203088860712574877673494182902751046575993731321783596924568701321577568934544486805252614162089452585751865083145830032032145849888471561852836016616204561153392890680986311514958702338443164881935471666880098647882322188663048892844098703556720671142805242740891435570095352810671339313216097519239695543792912036222062009384646660960965904718453353537129614677305154929084839144115721584788639223164372286579782694376479648232820135033205636972870966924780033157567517904342057597450911253525179279590596750322813267416468092129376122209558715858980920998002615147465688011867520802556299048487241634395537970540753866633187287486492915637953983073754455088253601796060018961010530773002640667148683095150944506707559256241882407489771015952182354956744788870767658427321824349377259604550658198107926607792328962701962028740682216759359061334427955578066064377691476302233672187520085964529946474306246525630289648007663515189632239454460828678881389284039015963587341575802673193419710780261681535315435485212050132488542563887804902257551640056363515168814330706326267825515666718277078680732656045585231098617628452104519203881211057590761888405036602066798685694721451059084950062007753663488108419188953022724015437964181694199204690313869351008787648347551064845966169829214243419258188316842246245243221750890296891600842110244829822703322325702970153448346036042360193708796339185492495936570706238181541350937928197776555047684053381259443185880036976132461428211856110404060023474342257362382047583353229813159671205949032254118737046149476606274832264281231141810023710911102935539293314177301545988317510908575895223979815364071955854688526553924123317181680624809325183685420764242587008106805744885587783182120345776653738181139692692713949410484275252775572915627331958509583260831424524706567949237844176969810376547571484029152609054198787771213083448083262754641979522624191992716323508937319554080433898313622453849064198161365314581438645967922348446068858941245614898043003698628713363897447875349373051029497775951586528164410375631337237153341300271789932172603483386091328920042081352332558156394621040355941149316634898178033734193246566075588156604695908768107214859512875397336045151518300067850027117922901312792159086140467232062263134894408045072342500828692256261421384625702082103446367819628951225024249588824511714539764164112403039660409096011268571822057472869985956647861328105900197989559890809424350505497997782346595339068425764135986497016107310825733346260933454111769868591614827702003604027530353162349053812613377285021483312887182483970247210567969088737037344266510301372404997706060089722848056836015329746909279861361683092431411065790653223368273475192892909342979946066125173434465768116113575251789792694804968168247850974705862671903987572043399675441202755486471949810818114068288414236867452567117067683565889799500930035761670694078335517084805010241884723603938853925744493886148434165619725437217523186003797470134825516202700251697736377990274257920139315408808877515226863783870296107349463691224592188801069354164792602058099398684441516372361303206618565307748529999539242558508607880428008925681592011297303267195575661390549566126455808251466012476231254825385881012015767647794103042068331729452208550272818029609523907365893983768901493149894776592492849549654694879645074934133032797178840884120572318340389999894274158301853220605115809576868108772816019793408322457865413871101710509656727017344180368847705548258409787573175407146760018758724471667150879946663738596044227381264834411915483384662021501342943608877549369627973587124453873810613555071466703435808741339889277731354850727123003244665725178833976252351389674873573517650382516904861066820625999714559777346978423957214348621697475939554597561748957154312121514478411694307368232103976280573360251607124450621823032474902552541348922205607202970046921080958350189145852289996912230386898557247937470746486096125607112051587325249297193531461083362072686970542935468719522971283335225611627838563421399398192733400048235162402076672050617276779387025127973235115043392670921326287440881425535529189129687927488191108082342846553571359090374740059694639759450002186222622287679407086668267943546796891508495645344325948425752759201832788751729899195570777999130097182563734001345367782104830306661550222884644114437303083271146606479455220298722495901395440689725764077272100713722735232358321157827573618260131020858400584149000057764507896229152774011398888292747675073029076763123128148666842780463009235194374982123221344817408959347833212481183906704222849143095191124947530022538567612889478878984045749370541591031145801218761549103656697052690668401495923835265683558764320056552763831065227919707242180130632376223353292753546963705368487641387786404722306372737329315930358245554225705592748915370073587890537847498815236094167406058087417902111143718068570423450947564844067114638516870457490962750565103847099308390826187407687708753915547408781981502928090075666956522787099598253153059109490473009451998955435549655109678966172012829578542836694324101072104137208081975985218042607317444571025872002739009369967672485743803587013553946427381066784757266445214607526492757894142129785388800187602288804833849500581545314602225586363639204245690792334349766831553856143617834008699667021803533547737182161144496911552946639785332847445736163194397090287952115247983502943369365602942448859123566673917311452746630903805811753221411458473679741326990156779283507755933829789410176709239793911570728351383566792277534741598183841308449791486292154081663387753402575986383517640193238682890008354172215795536958410162041510888892847214202821719925963697317126603218754598086066929819861912728815811902229981578831067115539706096261082846359282132763574241575867332769861127536472055373022477974966820023517756546607020563329101289527141247922850370715605694305553233121116779895525199136122042711683209667806415840625238913427605927864828074739368920500214492398960212083596852094451206316353533381251481551835289922744936974526717062570481322341463668887052470673629053779559663118160931391583888293334032739460778137592855197833136923807492624445524983231181478561113577295641158856227448477539921813357791054167536261289893236318869462964229289278848965114071331854591582578359698574299425537256393548035884603999556821630456726482296234075948516604382452331186993282303443724912024106515718618490855344916816292625364254439915624742086580257387963757398614107603282079291900209778594228548847317925518155286249112813878101356541398519127001519475759203048891628242386242336180235536953685778815174791388500854816438485559027118939841122145995914592389418473465079323664585288087459161418454339673290346188045365495788655676828059670874703964891224434397563905671486994512009416335875012492408659594460880968897057186432485235087510163989238267445970941798917108838175095826959433440079907086424897302517150871460344215843832194826489025311053410677637870738593923583522598501273276113814941195097988931333920674689399194620788571980805045955972142092626621202731499447676557365327769421700189949167035033105174736574903614946436177857261622653386158443567287518053837078211689623451950293283572859218701122350874939398386762892601229938617405214328943702754032262759008363358059840320792654540450742854321108758856511960887024547055951861568985089421577008258132755762655130921300257362999216405462493907557625356109104417695622415226692570748166740137399209409889573602077149074132572179909266995120577454551834780561575210060327968712419035366472580856166586385611869643823768388032917019537948834756767529761571856078897153752805761285973818325057044978173227702232393070621303498260072889231392816662357749224700549581847537615323436434350085197073770205363391301435390946631495228020090769434474737424247682095995117699053949291857267083396917490856601642426094014751368723151280521612584864347318923812372342259543733187143159906728933605481702038152500006438944381208359287647746210113979914950775960283972747798404078549778548959819536873685047666778445990090627182282593541836230171023829435653178415832672501927777861923155391061254948136017753828085601358108111069579634765474277533055489795844298945645348223123489118709463482091765788540172400879691525016109836454471459500398881115500118942720248499674747329790270084124324308109988590903027163345053192868942560618167385357770661772633276759499220489324129690439756457165981673256318584202819244673622258370444714837742880715819620287708734506786210559278771477414642562977275834824736524189798987156136524835240662420541958813609146931398502441116698557758353419835001929830511723831142911415191086055306297674344499369135711579077156605864855749889971794492770524727753336941412937241315050973544378415355496924358339745200508448987831874714191195143088001472964374114817440896584878921738474348244899894193276805220678904261280290852362138219139725626288649955710289732926873052401796660355156548419340015179312289726284923750082203113342668349260583171959353794175016133476723586903288306077174940802078626750450426588194220039935509065213826896307332109514167567231428063060868192413886878803399984499810125617571568897502054248828915290008638511229018505134291829323191344006225798385733215483883969388527686485127333087240050783340759413079977437809200594013431829994423191947875259774479091783355439671309967649239197865175031942078499900739388087007058128327039379400535652401194052248992572526452329837720731548671064646641790409124778070727192457267353164636947430774796965929092565127723176934435646386278391677410865520869930506152098001573643492431671346564791561664473250206469805904401985740400322772224986265548256109008239924974012138200832266394868957450849710889091058311682295765077141678167955892090932792527377036589761584848780120601521587710084622380683894666047817437150078720493493191365124038539761233248161949660133138357233362424900908243567341254970881663770185211084310698359132005355174379825487961521470191853821164741782530978751787851207714482236556451487577572075848877667281897857978118033180884478023926151217106665537361590012460826791843455576111461303137919385155586641058466900350223986418204882465319414706035908231425796236288834370969580588273029733561704062303341831868136597206561821001642336331445135935068957047447675389993079517765706762833573311384366165125202450910416500055498331693612334774770433236667328793934572992859370784707939575787537591693024070786234990164095135263030232232960660584863295921213660422624940872722685528003280965551965700352859655668490165325221853683151192465476183891546323021578666940327055794572346899805546719693611678012126447603921133854992647781292355985053537923466897398816215114935472446232254498189140229456753756416248773493160471725898907324697456171983211044057510720971406393065140182831989887942222767374741568258774027814189528333455839417741773065646855038529337621787336571098147965072830679010878877928141283141384299431036267123819988335017509175858068660169093812234862984831615430880893924273901851064129241516999063113205300548431944766257428419166338098838388464826166646018003690547087170353624945726363412588706087000634762338726885157377148461970474062190330900017853970075905369631330136151800566579088545657809998281317061735186662256546553831410638892527449637243974844074361735565107725129020392681091569426000528917564938354295452068256815274762291387061843694801737277658868619470016360527298911121517773150771931522570034731773047145722758001481644443829348798219635378990541032841050670584636261830570007578663490985903768040324271490694215670203548393433106855887803047686959269219845969101822610308744601975240016612349729237857745250951773375900586780816068050642860089946896615755804024158623367500349983856268208876105342240686547947845715420107150530341293432219659235646433585822033689569574658516993132564656228349901224391191000138129500691635536819364236791292237873021810913243974821901149133261691635367352827322052946257482579624644775841364184371301239929107090476882589273706916635298634725513421655018745216886064695308788322072596886800368122854491897575123799665770777420050833628644684832919316507053773171212313419237891911406694950503588414191838955205645586170239435445731712013832942408988690153196599803746166235980023477453980123712762901042226668576285791329533817805141929528438127564605532159862110680016885535615550341358093603569507934110728662042320621944440465452937435720126042339284308078340622213223147578289390707303747501301921156047182493452525247376969484631595468192385070059187093340582052366162582622410454414163345972172152535131244152079802735742838793102384235448456871769900557217290205850732299871178468019485141858128674227767364213368042952119194360664836639921115729734779360866680673835946627844564956099611506548220862364981472865310601618910649180750976673989248223265606093377590553601998843152618185557409411552161861116970928424773398853181975727679324036734596467485395457757640803036112498721616989503444712437319875505023572697378622101447956390015077882278525525779930331136902491745732267117046297144707466609730870093016857042104448761488330499689553442418263665332862819958692751032713634173857942950397158967490774666776541750013462176315023211273156230699537125553421140620178971908457240860054045003719010256855078147369120159189259022656170702636479698985959061731740312108635893267514183532457867427441577018787421050255294634744275083547431775925909761362532801656954516314393133950200918154029147037677727916538216397221665588123862081353363070589295568987521937524787530593049696519689591838917861375009263628792422237873586735037619785899809167549827725848758257110349290837641259046786455137861623385145488489293965395342871989198384579701437179135001075158881973338936439474968052871470922358105073050684660081160176712877597338588231238252626739983093243695042612557220791270006244975413993136753525410593415971049671818497199486252969068621180963898971404987365404377807127513048003312760808145163833723673791188828648395911465403182926642441258258563234256497314161404334599777096332615004563203283499127968861836297323776089240460988361583225746986760608063038099524396087089432952213903010276823458640016879096085990373000258965552948821436216725615797484835591088384926928688555900127970166072242993863780121680595855740489364161222808712583648842157917929384372484930935627501672159749765651426816742439958722560663907538438528918533366930681954441084891366173614124326140990487643886162240529339511970053546283854373968535889230417056132041850391395909186344770673948129892956394342216654752394107332253900083053074624240883684650121856768223632641802944985530813192160229946533382774640736615539673653754708973505523021174361966525858666002725464315042799068196215141022887789940956974705023561361348979744000846771446396698175991230902958751086813248089821605590620985924488203267862658511397896701758566266482643067741800535424474223241338356391865809977825902547191310701976923475763329031132501482752815707291777343193944235537671344060474471926445276634391316693603998257264391748094541982583479088717267458096228574163673169242174791983332217392987508298024721625917767361239156736773598890421057398695520779484196418328696513946360564713329392987424412645296989255809685977337552659851400929579380898772962953190323106678483273622785691843126051575688439440644425842107728263934643704211640681517114498478487526952643723387357119682965655137435805535968551708906665351388348629201677965964836784305432599611061731264585099770942506994823383582443937036058981503338194265539891476332757645018294276873718176231987427922741710905356028837712533893390795404265487353603130086475244808873391576156477193548401025177787751416894129967698556827312280732932965305699436893350678750741978344231355658978986995466233571028218327733000756580464706520000790936631752850458916018608453899389898156381999084016543988856105262104048715966525254963976061618339659460076945995295384040714427975810043799607867234050943786462993578143288410124462466352799329207582549210432874659715514445904384291390536083373469435825080133561815112691724061711633465114150414557057016977614404656831654515021517999044778632124530831190898673751304845197049822820123317102013984337863945714049037396835756794484095869477541500571061914552503872239683738353433441678870125950672490720763738496661472544743062933410564400546218550753240620090095942288719088067490406452823751330955319184964298273492805296030977533796763774519373454735153833588744490876983611974846849507171486389919507362226904559008850193087011424987446793104085846135054186996966833597666071429050377425202138316798856335559232572662374158270714932313329486706798839324256545783111379790270664931119561909665984563127891705469340079685460330603714812390638555548367850615509543239587436877214053360577645126245598299364987706547628303270215225174079011074008804725070829305069074624361050011946085324604425575121374844918617364615821850539340948916185812416167068625802800366551255611940973877351747635444398107287417679781158024401238827608232140979835427839555184659791270972831170191381406853622442881260126516918694055006470163539738591138316094277009829046414121981107230517081037029335646668887185704967501993468898047074201077007999856869032369019036595715090799756382769928531968704898409694189184946788877945544080163871137652505113753904963093403117315773461749389673284728549996679263433425461370039887181222488425304566290748184252918811456482766600334044215899232433021529646222465478696102265461438918968419958173234372772360956998671258707108021150792024541195973628593730432611146989714725984295761031539624169527534404903623860015559271981334730113525726751332874696273151870566336652007547174814389835983912682473356156777704886188449243128378258534830058632524317580437229288584702075339847724601553449410657206861009419807006728786586027062499486605650302768188593211042050960618904599983560706332896678678167755605155776780193162412451702895092863423595178594826717715181439863772382674217528415730650549007351769453422672295531113528619377691735417374272112901995819859985395471373501661560975038562688598971272575458398082955455540502528583783369800857690673226105475798349147711141370925349304787960294933617918423924879707774449153329271491394237157370718498036617146580566735592466704597023880802994622266081913427891385312096174635117673083910149951833461170856016996105595435734091031628727061911346873796757009361736912310426661118819968189613357650181470687279243175209129689246178222759112032254061944761602810122601815130787000821137949779777301171184730313857951691476151935022197444897392290572839643799579650846256697513804244624987917880530046985177308366521590402296899796522311401752359006668610822703609355355153363140648949841444455043067151931587230984727023143543778281020800137271150633711396805227556193204831857899670698590767614480861716879151607395216771050528797246256952906446998549931800073717952857263982987247787423851987880261277817337608721738473206644892300295926717385066392510703920333731748465285064452081105035825963623492296221122031519866679875999737214827023609218269173660045927510091073459767095703381830075814079379448950837861662522252659586568516430225112436814390795053137903137376763369746305353157112444010606981063442450179807294102289506109136269896561319619729238651863946643526065021080551166070081392699445797288530911267897885192087835833567405091375224825213515573798472823445806506529449208707996815363516672465731910429606360814206544703912859912734114340266271430236408647034436218516921056059536792831747617202074424127052352861594788748180943723583173887355650401111835390920245324749562748275117421467442111444950074779743540633158992247148982027942324150530375853167481550841139808792938242347089014054955998326134853662447060464775127524594778467890066858262597150226520007310164455451957285468431682975892810538584762399270604365628738422761004494796399961399352027287825643074923270197777198109351659009261310033545068549188322593757757612374906529515909955921441105198931510121819580749572768966625679537294108297793042835998553519233277226367065246626012200683998207511485880207480364262810770659825586366081399584562376479225716083419899249497368529620922088510881260637297376700216861444193446983322963440489098959139197916703604028241213025220327681945571270530485812839642066794836752916658083713143104753444163199942874886406355466046734104398478177229453918022546675706372639007539166582054436026817571124048420533525652627295632343722634500503332392384119694831085055793634377545786954581141975380452561440133204112725944041490417521872766430324281174018054790758756005561070652941883857875850646726753524607918914853590947318158655758407261362352178402209118544862108540305653123492303680473254825108624831545360511239138037522554579576760155679788151984731686670224189905023250920673827825822834222291257469906644929195050550771912946594079245482611170904290591068185866837425670523380249017003810979026858459507989822152199774215147767304776508319510764372608598096273231958474280313135639609679383952096444528267040234750961724520633826100774394896008615588771238529756071534469627958979543823843514081796754864176618426583150004928444516300946466613366440663885035063264088656962339165297944702602676407630021305467210965927621244011471504739347400118947331415690243015044214499443427703488392608523084413778049143153411793119693501473936913618053585805494008367035652775424800320772863391251136211765674063615299297124354299966657678005558898859085493781508573767068902932140376946977263627379148090137132061689887884213654295731607663450236961585900475477138101464918588610401642789212875993586672609454068053155185500523342588159985387766630429008320982362141467380901821070443730457695056652791628203263306378202442218469119166879761601634499730436178674889811652985853135665787615591193250686376833114345951003867607359357786233402749167218327751822910960282289117446633034067303149477279343933540023279747020418941715317403230759539665238986453076292471665759685653430819289821533417826592746677180974126407979423172009474232797297870674345076240679227295564665764905115166528945994810684438374582787651174435608904154226549872173825099945069038668983133537595550897113855623340022587082995431759368229993444123920665395380671792061184777525584359180061081397242500721351549379812532613001457014794536715169122805138716112673881925957734847933536279282757455794884367481816617917714357263220774589401795643403893219130139180816595929779688904126150436436320961343312322999204287935500308598350479173155453391999492034136859238033347924375094396272517781251514968889600588742226604992210439832331022565791056761634431239365121864809752035901628192694797194801143291343163267807524638842302126168811492236531577424718499025176070852530439497559224723368561263707915300392804279528588494410942437464189454617350186864841113306949474752165649700149541115435224541822204936804112181164700998320138651364102172294759038701444659207304341481696761463594003993640577235225462727684316482067210863018676336172552977626438262219997647416520838976305119846810976190134320115016017322952513859915742706705550070359317406398736693730516745051751572797946170329843759054717017766196893116270917591895260470746554795931064726314461528431154744881530741865087132818820174586081586901980185248588161309734456946699750205678611115744727262946071269324573231845024369498973002152450282948031506194780855127284299380026112451694911137122492527627814320236316515173723101997421119438265711943736144194380192337645726293697637924560479589707238920062853438300430232104601976281860668099312741597243033449139043916764662836262424094525323942395942002682878218296781394981966597324691442892223014426096279917295913325967493527362008236979612960212069273409029834535008936636484701503170026069568694883675949765245872086425171615119605174385129806923851779714362341723842629022229498127843982923906096926866244862860803053857792216351943106090928875511454083576298268352108516908142941195460246483632482117692521408179382892471828361158916016558039093225985134360904250539241252164777808492569233930057155915546519066472567038976777927708320568578234031035342045860309978545737189601280601111488491293128543902308297067971582589212252949724693544006112185367734573120017896325536121559877343512150215979918101687795892812474080308605840720105910389515999580001767874174225944471587546581212392557855178998219902399825005997268941561400753646561243754049769480095612105559509545829855967267717973133103966077676220083680842305964748930712599415136069432922178068075516712127662593998167134465849782071403718130755119150381311880250533091987919275306427849695055625503545437262355396823974104130394355008429409255137445715902609888408403775194993730162166625318269433227935608041511699648549445271312937438999212835550689886954483970941276331080491566126291573369720393089487506625746928436911780994969557921031679986890089839181709359313576705617811284085712484880776431999413175080174741031233567181976576171699902376607502407074190808356465398824454021454329797221913751842393455151070345500093481459515024552947014603824337689804541250771449625877255697062003228235755196153715887807053721329159965812458766964418482060564026844035975321830941255091276458921601769249729020025188532859667245233620844147000174594191541134843995839189209843748414584559531127427880063524923631939419591057350603764138673405731804754430208212154831692275041682616181525972053681580584312368966770568026068485539035443727554334490522985847898725211373745281491236873224198664036429658039351702560324301581403138097796412790159308780134656226555483288503484933219238664854005350567474388445782946652180205469975522792813395304988990235394539575156516399634432502693093920908611209662127085689868391489734711306836172932663499111549763787220435818419762109928985686302023815903496374450397349018835030383964317066236848099923074688804921818555157926077888001193335649128472567183559212329402146993348785558074870077361657775133559159054596222504763833980995773584417569734637301499253936932498541940953529826859365368262644478402477046646687109047006425095539813085683426378046202479896292006253492313945413274129022191689453301149559544413888917346630393883930636257666915737876946932595031283230749356283545181767046734964955857108990356908792095201171738097916139406293004630082806938906965603919170439742444435591194476039815563728055670545609221409462430090033092482133377271125929239174995665024984685301806849630949621729705080159305124065686970794502802257688929574873240384749557952865566157056073420475305469495833148081196531203352836150641639344951308395376723488438103314499384610888813941416896926733052344515548820899324198695969841246638570288322563075006397202301577381165414809625755041288480280709226811514523483611324483702480527460229396299880085869613533426598212029494987937070966447027910689322641415114486761020061914619757428348271688559034724021168328578604218375002289895483476649780945561179218924274009825031784175773941584241226074576910225932331166479702379994862195923875423886405189492596726808755858135544265732800190677864366765358299021360324920146418696525733085823550158127474194775392676689077819044744466414832968084148612832170740349184270590201591274490408000083834027271364835656770075462889242566553980014371187562972025016380331580585864816066327373514517051802250443260607564147438399797243885831602870149033595574830642715226891148877129492269642743314102822794308857890832569704853604095715552426039860320352253627105289746957245477631041162240901815017965897735756396355312003029807795139719757012535829852635267494233916972397884862879619763788661731117293429506199409301604199184107459681521225607422600351125738182931413901124657817727670832551816988123220448869068087154888217897841907875014647641419347959219056319286493642708153250982161841999410897357857654490111173463256971611490360660554502845828225573769578416805331691974069737244383437261104295917749197612009062104710033477876519205052213725349537935505800853754637324946313933598855515013398669642961150989648631753141630510854841947950361794344798344979731318909746995812469846319972832944324350828369192194199200677254029781852268908186358888699630937650917442271003250720217748696094373380146069395063879719101315977263467552667920707084941746304052259451445416891751321306519181703591002524461882946072459917940165458612933778643187165125002068425906070677036030508315942923145534199299857260183382214201544024347962405962965963345391903971307297878400737023024961257875453448690989387952114112911942735373383629174349651620330793437351845986376998608755098392387703649865723933462236925172147516558483298287052855877869698450008705814510352112120352508601817450968158655060288544727526064016191546415128054738935019209190505833293524205604790291487856046492180932539811591257718816440004333037477332854930667627539322440032726763728287431286496577686744377257676110864233993669270379006034254423160564962648543454835741282969933135418963016950574254993926006948003727940853250765377698926169406448307289275953216986287225439666746912564073602742370247658746249758769417152502062342922856724982465489095010876728116450573546072190824062371365255535924851719702347047035000459292385545425430770837118306942181212652312719158759631407839703261121536606423411951357261078671561256275549843089731884940336834100530682756386504818668603095612354704778148843656716448285642489926711054424399292894358251723210066587957572984477276821819045059741916658930354622560636050142692922836148871487701253573359452716818039913597642302439173754416360239630462862382371734858926123332158896781283627096982056951922825051326145215416008638406469389583877519029779075510566797027885513288823937042674989718864779643596300464320405272607217338676906754126699697257366123320371825623474798460050126360099140193329833282071128355049520086386643997775913013202418170525951465845881473124066097459771414367263717957432118717682119340574531435496211817469344758157504507150573436839718321447194576859362900068274414689508810809165272189573554796488904341019808893076293993733493981354160652010282577295883762161682679162015799423100149250101431719183012662707426325400873217538853586435616743039612558191973032530333232515835477501821396464975387826116940759220248387768096704462564314340298660081511715683738844169148800247405222974445962390125789610741378592989547725062637551763564137260565997357718060179733221335863713877742551098882329234252409411698686376665779869935425808168803990122157049890406981960576975700255049286364435207283822892904258679057018709999064733750080065901478263231605008524457708908375343053949625148034149136173786629936796461550166679189985739209100054607881733677878996849875054297049373797005646023156203290500428147778228542670272670130242618318738738290705125657404847872123415441729075133645588025696146650160262813695837633860501372375593298637270597075824459615912737600880618487712546246616385964483389179566495552574220273936737396133955679127066335633368698634341628375172622270693958167662137862194746443874155701948245726852831443867106971027642822051049398336830358200583333563830250110189489245862838303445324040839892462088662730235577283049034372251456933838493047782071767498364787395386320870933847384500520634050253112644289973498950581977471163151747376538947372445749437768358511140027632245986036760271340025856442438062828439349868771280318048662042156503890958697896426210567935165611839132078019671919954739918340306700484315349027497845323332505080959819364797044667474138031354324690254494016892553290454745054838362434217047865968340199048984969129466015675849052162460045763948319926739349234771898987900010838015004210602588165587691936922289564884503573228449895077607379747619746839219805621308297575908027945965744824542766257253286031971797792521800457868501757757603075713880059903400119084288731884881851497192574148495126523321104551089888185404805660346471875736360876602032668886378168855357841432303055061368701283042310775525071608463965508114996448032277743947294518530110258420860851762205559462439757651264762964037602743786808289774162008476011083405622562049312308503279142358500373350473103418659989523090896437998880331692809249486421517409689900273983800719695570787620056201025264704302223668298749908087878830289503788919289474838068065424432422050312005475030793415429055671220855094005603700385057043682487283906086193831727005175230750899733687229554444075280131327762812138879412216834604671269644248326430080779652302931746535659288305077733807325820825649311386591128059627029102478447743282009094144433659425177962151372709453971496711039327785504291563300863959458301318055461036410655788356357750870274041708863968429764491108372308162992801341465101904981865489294276988536107891823921854118579854174005387832339088219481024214643250088695874272192745371385834288159337650089778435524506466215581251970657064695052332646478175809519573683282610434772880115556560770947760304156628734853756124739385455396756524771641267357582740835674769101268075000627914653591531434586195686370840095124614132878600307831432625984161143442554605695392187561332380355414705219878366494230959177402371564713230453388893472202774064824799559377966460690754226166540171474758697644046738920581214033658782631489551193883459525500396031301123289327568584156957580777308986402814227182834741218604424259435590679019335205284046716048745168240708930232249711737809746774252281188937248730188358415352289432641732482426516161641140772416714568241981312621018886217275375817424370444691993528277458156629402662460474139493858377897108493722293419580332975068872295358257029749542605701279530880042602384296423497452898918333850109867339165903292979840911451504296205062676490734883624102929168013729163820182065593797539018577354762693717583672757925805120840898430215750655113518822201383506774259548692455445936278557089971005242503886027830273057428992230349626134769956678109357448061497372831941827911637030075039706896533694415492519864343804689685304485446892229953939637630886846565141938856875068354781597358309596421827165235003348887188416356277898353885678559398794188588108277722611884286902102906930923049764433824826277525136230112408247982123452866210525851563358941346165315372210824190579327569156532642556692655515932480035661105496760861355178478335799944744499422192161835051958207735964287043709499550125137978573977981462042604207412135508509257621792256190460168687757245152351673293025752159097251330886188732658976144222352614556668314720061629537333094604704959627889416121527973232045760431823035570734577809109110482521228264184882278220158606228422380246864679784655348375244241019491098512822604545018035069035672077943916176556644508619444877189931453891309988733719082096904895908787706185390684443217493399392532849337475297103442299525588866139025823218918869747570467352086964502914003021597891708061011561231702000197572815779581713025141516776331928298172577348000998394649432422228866967010723570715338344787615704192735472845427178690686188688389243191498452029167658220974383943068579624041830944743574772774703691740704775040161465430187590953769509519345574052884634499869777683991164757242645939870295511074021211407455021902559956735015346498855246854253895870675546116155867025264213586735318671643966693048944591381079150279239583828707998233846818137253461944560812644682145908911241799175741847395781980739207790484524342899093931674492440037461811664505439632246153726208633186231698672407134565303748936016772658783079428816006972549646381215466930636231634576259633618746853449551687720556075525111162778432940599739603163047844164136266960858611209006172032408235256600399418302956123986096248135162008833158452878312176691935382658023673270922251745639764292884390974140017447392088601166290759259348551967083021941648937592020700434117219735476334234777504400795889577755698378267166595463542298429460968994185316718633111924517048132146928189264635189295192537632114950927870822857002553703999011111674900713743819330932249481206776629171470201543152059728706488577636039980273121190675949325365861603391790925772316529416110579984239152222761209897068097997904229754808797213946323092233073524736909157316637975521750187037195440968262681445456881401789619599628956510798479237744569420261686210612729085200528867494473446293400413070804483937651757569361700428459230533330146664902123601382117082917625639015857998152901946427364645051932044812189177350590121020909488833397549579049319641709202873903290850125448071104758123364504271042169349143257486502472934500726951940388179678698511530342553569126489752211861184852306997276946614534084652891157178520149313069332664153617090956981683058157558942588686948780769267017558248436650197801960764709593062791788525685161908375992260206544356279163292337173976906848676931300338691129459596280663754853668303558840796979350000701162035164473243138149280324530685903474413868354986599169902655970759111639680284123172614290894727943936833035780125146047521996985152857048617606424684973253834039801003897565216639675520460395648096585623438773829838633273920655139560186981891794098646269636475894870720881851834520569735682855839532556902767419791089319234872038251442574092670817380403508255838560097154367102951289190212596810941739111860194777292004859499456296880371749959245413669203954386565920768361690108744251097576717413509769668026096833761085168931233670555559675767987789418474194139913862163807209662960554865356295219547150248230729113629262319754730097364125071406252200319197341828290883530076023413174143261064841434366237502568140231207470898522498498888730365908079779159289525489862452668782732861866709373256707639873755057229840346133518323574712599403317381312587656650105381326549647323455011448124192100623072701234486480253250842406011334695156134467709097929022609798229591594634207406046322389930275833286266694659184795982619779724029108454442116458166459854749149842877576904300614235811044591354139638803316352872667821079017274503828139386587118464288303515324550929066109247591310759379245250413605193066310750616330373643538598630527011026356682750088449853216066318445026687936370285854131926164888257291495824959557984563861391290546865506173224899223985455634689131470951660549584918364056116114783704569715244527738523451870703216016120791233642061695772460835797948957144299302454440023703449414496487466306349890688899330612752629811904091602356078483325729771272145935570353751599449413679605344845534164301515445892900534209871863978599510441000534762078562651623356509577319834258572033731509215703399349638156214494437221347514321619591841300577637306234800755908526244878174694035497680353923543825572704922303827878004485274958508127098269996550470781169121723786972598324216916993675508137737524094085760114813531732324639974993023733509566773674416758292178066044152350928230406855816251493097458134337006545149750714882368191692022505522242610388451340222633268592977882658543904340892023801164476960375503226078505916035705576420260965424745553268323610521008550546342864082483555716236882322461565050829483713448525012490977305874157027686536141926909007522404067238775960648964369744237005725627050596987078821203262345151446012493344691345667361856780761987029028197609711085277798186142770612830618267088299205693397975874202807212086526014234452076663440828004196790570248401680763519393280860054952887491966924460797485189720109093756489292907306797788314451752280582296490671582727206890492738443029234122073065949370016832486350147263364064578189062079105224952299243461935722095582722589727307805656668708761893667047211296003229637416562683432042488696975031049373389704566443910160766168040312930807898042083964710905951745395221482756330834622812187651055856035573805890208619773811985601039139415028627340505939632470990290870945472349544998101680538411538447728882543100641111607052642911740346583933482988893014439804961675545500211309971911020819968637953385735981423040911354358077805919000444910192703270915161569936874507289743217759816023863487192187439567604090149870419946833344886169736460580489134773669564216167854773146722760235447938402096145945176782186053202236801521998776154867152626698757996677587310535996469346442756516765358868331661528668628872777209207125613785538493299906980961404674651622171056113405258137900347354797421246450385651284391032210377545081591835572663027670436594759587430366155701950566671187537621482620187631486733490402036728931277851814194268077191259988067904547353405202307137908384659094950887852957230316358032016035352283621258139275649665755308002644542084632767739352939871819926120114808333382527015887670705981797898325781025921736241868438266455387200776653608224618609785797428119684932430656629380184976614186587336472895783024701654601320642109484938870148857931230449956903339307062689213365118186453332911922511620934064288893990681923459432075056532816869720728990856112251989122988924459646323063751051311444624332113703427143100472349158268476426806305166504256872506169965257351497407477611462039197813214134515676994817754288810455471915362949651967361010680964229449256008164769754400881628307523168609920054501505084665333346894886176885534750062992693866153694671656914630800782700918972342438880805292901483647724147642172857018770579812792510740023276600988138667941069136707659142843515526703756883268071680233107843218930131409359406408297026486283760503187620547886951133845689600262302436848971697508054043209275579630734146581691214569299388776802356370205367777563882843710341104034379731114155355556326840251686470666412781885928399438215989492073844042669208159029618869048571713546766121349679666910254831295904632971272929283676768321813311374508421182293649143867309769115112829272994728023585297157999543613991081640363126727931466976830443415748507370772943529417435109820596498845802450158906475524774910399597141229810168199656324865728476532551060090876145292957728941288490203636172194069894673091840194459949770427537281378302207054738465575550869666206569733768142709885767879190921913734361284407995324462222834077426583025104450151345703712692622126223669504039905945990102429226329785800128661261688282076188799715821089275852195616867290134227368319697153056596498967653959203493723357447637984666272777829946694892653520674253675583289609211521955978781221122163872315630611660404223460789029246176451349954048722274013081130664917614854772241918117230343424824883331591336182775654469640325032431134286918810287637072423204398628373259808420177477026866234908698779608882946941164726095780968354538693825840592524293991677430323938029172192241750384258314711650199872546971341533609978769331929818457321747514616922429432767474119861962944839438453456837935705481107711929705861262899044231035441710735864194291747193175788085614843799430580414322942590953462037191750125033497305296573107233531385046413792736721678907955908489464366253955802823557056916450775499436723866217612572393423449388369357507133837157639739378383293207292894405554734856084617788687054533199881580020365639647447526531246811132863698833147271886240988602445492583918936918474158934278543686849755785262319476225980252020233013715054805037645378774157962532297141077008901860858999035082777061633372036429372285737843518323287162294715808425869638967885598579080506584771588149059675372306128555286889825277406958340900122612270451737754414532079211818882077747452773972285086594929360287571621653928670546890243611983180337706494209625803532236102018785637132248240012246588933020198960890748190183799449082202261511378497230580182052727757983947691821216964387792326347928148755549381244001606055782540483487621475468506111191400804289805457864176328653385252181173320332100468564189038361459200714490900915448178027136736141913232482299640469913924381553741082588558092860773527535259216214674131039836261163898392753922017497480353438724460499988413230298645073619762614103408524724401752935875883494726127996625473527468765605128159097845238854403926205168853374008291755385085731970477498720546199514216955398167521297830073667654214820140128763076840734993794183738241371612994530220389267744852400655945442306970848244435125861039489783130250283708049515567603354632487850871464212094945233167585737045788104809640879229252041622339545692012518112469006710585530411228069093738441969999093482202272593729594643598671469796124183310023454086488444521931946387197648794630608997662722067942284941947683445874551387301280896551960533260214375027720416554925475619993586461252337214558438197697758678928507141318399589408767193751307154403791893812745986769089274939384732715495872412248767206247817589179081928090837117173766487809705218845374609498472765788172082211371219691183986678634096717232927044605174399433509963191710501056952207730383675751327439624327125814053197798688731227160269545781605500256984394593243535289610150184260806330632719555895506649907828312016830224869572029053387858343055746273641194166585328096142967150786352553335994197629140616567821399018200444749686424307080123829811289162701897993157643819552291693045342553922054651418266688302425941927381229721270738024831944756015981640257650586011834093378907741129114685292116854748870875196138449795855679135364488424134407575346302580615939280802167751328716311934029971961348955513792167560877085221408512542652519005482721074457495515502874839427449298092983495254795946669851574361313160004177690632942867528921971482220621250794359009825334686700144034804507734459252487646113070891079109072429214326588321371584935300978537441193952010455148648347964743853367342714972772347232474297073595216707246713466338151538885786960159989576657974281868883853131989271869332239049660343310169020580089588454988388764862254030614427889636555133600606722123314393869193731041644785699680841436950092148037431338200710768503160688721836416143852687258525546978156345340401845114615326163334449949077415419346999741894190602619561805239454794208537682117531612631588440536925235371864432275896320165471339985842856956626032711201356889511192896928173075563636591757216439010544957002382430808696463604947949228371047739070611553643279303073355881128728234672416644479184173349468456128531681539037937408124202289985253135621758143621176948065191939053769319293570209685068959151873160436113408639696622149488620238165580618565624307925392410810156353955436441723258998717807676737349185294121761391782501718315479772310020677441339976330825826920142867238643932903335360876491009530480915131488385470221406388701287920228981135462640078846562251955037845584792849099302652124482299852575059614082682205690832739775050027856091221777874533911312326151910378763265238562236880395722915281341859441652680293869605982660481765646798717234884482771680110810735778660579035194010718294903809128261700669753150694942454419271356118342983282169947330258252768539164362831864989665945527394485883685984379798105540453872696941392086509351030477072664751209195030781059459758290867327063853123311137065655015105030026702763860360921450899428024932946202005521390580817230217422532507916665198440582411368818453512007011736149143548157816919124130449842561638978150291706709698299348686118710830249367354920743779352344188605143588915168981543324214583183527746229722878588298390450745594464919154139800283081204675704957199647893262933043937018101647615904684343575056538779804093024523339898729572595400666701581370095595220556605288575280223673018669787205279891428699443079820177260082847478054796177945519984747155162182154064391633468352216729371116814231588444978004608457208609873336208246640286342839440441791293226304898877138769638421551810990609584200367718321489983644739426365098109143908967778975668265616749258816680591656763269834173264961587831091909937889283242425901991414593231999177014110173304174016547940532838431281563142419296311935296992003993071261586080941915991279063279552427725015426923280715245828563273594968406325662937949677336866857062918532495176852972093852825055107966261789354154363084039681199916324259652756163677063716914432783432897194575018954513241764153683261981943011799833988703185740122023211688592260390377430424324555918733547947166202243393562116704004391564568261992134607637042849574321815536233675941536163213350225986813211142503768106976382756608205201603472799450095139264584088415906711326769730048005724025183700914478214967545233953326159885789555163300520504345655949433464514193271692043919059462922450561642809374299399990697380868433134425954437942865238975918583648108898865934833718146678132806778787103923463043131800653439539693423149083619699933025465467560830698578165319561114103834083872654838149908367670965894402425839472018372356655255660600360190922660937771848329907139013306948741251304957188451869084632653179404157390871584492828171696896809267090434835399681672838344306826674154616578169920253290858983992143225000887457239166896058672571636311082165748390015111666626267961314104507715019284684782635591737872711192333914425831546478943526785597409100878464713685619060417287989968724214184206140293200397457077287208375210492725105075364279349173917274802487971046752680885390961666899058569497329379175240709264176658472578804842460841894004078715044387219462684869292897488568984118937501797211615087684766200750310285912884103377481999968001909786194404554324466106915430043844442317292591717882908998076554257905806968985943598091826916919840007922775863978587894379025029564835615257373299799498095926337927431398679247871665189296022250694342863191525107296780205376276143596813189094489498943823461350646099329274272663909300641652285606658322118858911780541876716090689197668159220053502781162398584885463002960813675225050863134414359716224452235025568652522329757155405073586721993717244227792447181111347438667665931566076472407409103729924643164243483587988577050751316882732189987169770014895370135331769915634091028763237618071414911301527843880479139975121672960795097493896705337182806053909417432932607847363456150291726551969577236983500148562171802526740547352843444247754445327759312618117273945827825345596347360601196504271785884771907619827657918998315668168408018091075697529264422678854906476989081482915050554623054901636691313705526595857457293985945257451660924106970497817548286222540824796999854150957281765391970833630421137643118638972414599057711637963703062052758313594551385429585478823814881638723405591214335308958872442489914743201865573086898170713529243738843830116934686947688617168412825788180255793374752664521245880742919148811149022813618406193630839767032421681188765614273212020484459100361367141277460360197837455213173736550115657333948896587285526042665317398454117145962243012641071507305861641317335646578924000664223523371073837003560982839446621041498378273532228844825647310292355671294056689421030898459985191750944442916954391005916782426020677562511550731161909285806080724413877896012816867413560118836884886587930945196842937585597035210749083191208109867602073886027306058983255343032940699664482428077229159970802334603821392042459363752507862797935396228287709921772926594169254458648094347883481563834664484929582837418377714144959567295882269123380442270199708128894704555022026064248075886714663323854523647275670913540521307019782997357437880176403358163499189072897496223238565976310529384618298816698936643778813881847310112781146914065902933581378041972609836004345679526691019454888653017472801643168477356430839202801337945016599368172089477587989264286825179871266803263537355776530936201655766167662216674442501936968512590177426371042949513550776880869891318094093971802955117557242312528567489465949104442792172391085433761281104875928501967234938761384800809792137318109345245167632239868744590679186840174331828726487581281187642192873691848587769212948951575880016839184867837637442461982633169436603039649423216844722649618835247987969077502942163815955638032855181211168177740755488348441537234104675459410446626576755164671192949020464332859544204315937894659030899206137938071535980475552561173133419317641950589619701678547581302142919143031721202239913200287434065217163102504660461189282327490342054825538785278079447419065558181130567248639036121654218999949037252929482866094283286113345996985624253807516050259189989243853709463174264168778862810861743361796901650978979268199570654714858042950227368125692258754385425624621172499548848810967621686962515559130921194218969203752207523033714784176074081093932615387431175795108949824257367475282665614246280168761500518011706584631648282331909354690890064879228374618479625811094705230450451136525514454349749182739303240586185927805766849871489898591864237983676035011194021462026137770643792039074727686217901459776218693907076935948862275060335016153847148042261547390102754646082511494614192920628074784251464011680855596632115850389199874611334736993649779887741908022380949850483331638647837962304991754597965441304266318654418365787588838156147384579298119059204738136516833785391796317790717004744411446858063003633397342886726692057613985259006019648182233403989750712025357196394473084290241680499719093494720177113329268680875292447460089912565869686865887342863337342732702610722004069479589775970589127798214030938631653899416256322560068280049485661519340153607143702111991662267486879005878704165298494104891509037679072171616446158836170871134806750174659067550053070489699447399537263496804581644166898843397347013572591890306605678980704610465003478779621807917121273308586993629696002517598824595680085908336736183036698619416034789593753393337473376148052675225566554207052116685785526237849692572528387233023642179885214883339385366303842747396043323581294255624344896833273330097526562421329146864125433116181421245012040818373121544633567374811218240139993693128774126625864797414962609703766159363233888952280148701281810846312080498655798619922882380002775304408656632251213535492359658990721219508024606238348496068565687904358175198397680974125409990112632443122844782207939516456558740436489438344765134919051926413575875301340631937119937552336325498905379965189449478032961674558832725246725788688808351551893716104335397263356289286643781768647947267596663362933291968873905596275683084632683498137374536099378858147893591124804808814288817831879482298985586959002377427693471801976882615608708030918218470041409743407910386936387600642282188251095727660815803876632680153063310440508695832083658539313799250229115744974305328294026326154882866474871820428098656851316724172639042684716855091457362779403380225032134967182311777052457360771849576387100308384629454263287530277685721463335870094668320962316973984695085105294512974043937220408916366557809085711472593071091320010091750203864511170315516956159838542437319636188736236337068925809754449250960028072865366663859494647647836096041797689615190724875130837270046495413967132329542272677123278148496211512789987887092741506687439873706597854478255537872702214091683790642578035652552712513616766507109704398067578439953543820046130004469976332846369398184516407445336186927151740159130253789817652508400576802071589140309847764695582451062379690956873232361065895657074237991155080971985815065593166126260804014480254900204831028084233645875225290696318501420625815812161164297740334788582591784258252393206735020606633136512506399357012992173615037575520409031559261819545485517551566173071234284977435739443125050358263420300157817072807463334907515880320931668371808717544273223969173146957780271606607729435370340234346313674641165703772392171836944736264121645471146515984010165184185990971716752590188378893903863849318868332576030652963830599470189527747817002208379494149241814961416503990126263532940556874114216455061155261460979699476654094537415459456022221333776719354670881981215458254176566173069239552012828036813116092482434696178327872318006509126013189436378029223171602523008523340610531338134284542022807015688171572034070436508619735114371902595340934704156331911361904557625214072083803898663901367885288913971197110710135115046823620685739828462248722034922535993539052099603848748137032849289621982603675952726142004108306538955543175046602442131206127647791478487653311503348712241092178165169110803113708267471347415204431684327363416377583666698485143865750205733726516121381236782268375651158566881337370742535972355378198938909292313961348467603827848688496188303278910126127645355896361747840640959403918393317853957249834062567993246533029795559707587793356333037278769149858748956754984785028906761859297313434558066153673599224920142517723640525316730152256915277840424990303273968022478872324322700309442215143829220033220458688425807640915268298554349520774766535709490778162012472392025170439311158947482714402238936974660784822731623385212967175399307568891460521753638486605116578815228142290214859778703669045287155735978302371124955464733243856331089416741600368576133236949213460492958961007200979457109417847588680083404577655493835675852329867554347516386448429478015811518650465843743505948334708477536229783981216799660498961981895469316614923411168798069837370319492937388421200882116056844281632651665624109423073221219546840918872105404157793687813375299155912258097842518346967534781640716586512618857437912904424998544032558125694451060033141385542226504628373789540459619761524401949371891418661817600401221800744349203201085409303551705877735161280218236067214393796167904554060457907113368694694704039351156151255793066439253867805010538249085212357675542765689699562883446170234615458432695941570528041749911365353445765488671697631998943679632823902609186829715036696548579510266251505130139530732218537265822229317074885564066816086323123633140788724179309892530905651623112700674861841467353178099109884094229478444229066524348083728744690931290183576240129141479549548078389339333107325123770884277969746801361563495025358707782956409257631990630198338052810043503049163739376601532018062208652258849994738482447522009599926427429062817535399007649466002630608282637065159815328368415967553834627567753871785819965280940993949932575988349776108562784160343742571286334239638718674331965830700492135581413740506859967782217176213368628819118487403910369890453631323332090226497902947154857736507140133834613230895957199115449897715701223744402637909886590813862567946091275789127414946570366259266980015974495888899088357475937962003993783588594399805467971873454565558615533555045428876433090234488486985700491873037836651555420124301498286101418882654413803990638543696681911006811867662760359188991351856798243699332201092896700345191252602301395320242272941600364689271487830832809150739704539684094806098464459563696574350266472251323629123651459031845887828772070267678583796108853346055388659328688800640044443219081017271635240426571420070946668947249945200301154106529405241389712184745563718727478298194658972921449390350976619602929148908255617857642383037977615391116990658393874639168759467621285602138935643191309209851965583333644117780955289447716573629676032582241070426350823623510614102265220815465227894301916321011493034818323691115281507264653339698468538105471700576056656650076574351227552272752576730768699950440173365690563653944064187351052536529346620669545192709294301538394317047353511817966921678576611680267506428109273429107201139136609085528775634091144745258946141048992394389859945838965007886903812872266490819784427158969751987784634332336718270186827255276230448451065590360492440439409518939446162667172577376908857152388213810606886685452733405857331566945782955862237255478426944163592551371227139515395660567089045942559173523088248201746604909233366676298435729489901116611151706620530435731850027785148081800577863876117389464626685440970705515989528441477852270545945795341468100544579265375245842359492429755178160875851948080281824645754932838364025080549645946561357980954635662064784627165782393880745935401135613007410296479617514264680920674911017585641778655769959951967624636105189699183995100873292956191550678137850816944386479563777249432590284119932845787864842872325589413671784460955906512523754311212302368662525679477303751206733202754207137455539324946507475535325194219199706731354702988809913705547080524938957150373392186102767659219923904840656788494173391136892292534828432458484445565920559168160033063701402980729795861364127211054824375092717625927671463074533285671621861465673806257144312165901784526168013616492070300442103011731300313453539502932828484174445640572379448440043543625840530316486157358076432134090078448296219726326507943286735458986305713174504102335125095179964695544722576131923193210355938662570299221398664087888553773272733496695289521535441458632766789749631795533562947250645037391282632450962565842657705779575873311760662269955030888280938785819616526504483796249052341250488178899314566496370106176392383648056702894194393770170723408185066047493161838700343792186269759818244028433750466349728453241816225618072874712291142488443127044461911927496111669977362524558803383891372825927132503956861466460825296862313027658279203964940083735898792405842657221744522057954761446916258427676535525540657711349327975550868089151164934384422634202943279305472398155029626015161638985792521346196136544573568548948945247556497895230271703167162666383800144624054829714070303494406136653658641511087971533123450171171326234403587301848127584818250297271016718398781348009317795851334841739608092784572893200311723655510191118332337280651287744126870754831978729232262695985416345195309291217132455945292424428079341267259881314613868161503948320477716753742576943767380581336265644865162021443375351180490320948043466384070264584855967112893400117429404247175827868028962199961304616411062938566601152741895224922065427809310113322791255469038392855226159489811417219378311158987871429077577825798834673791341490316072260942983175963397648859152968757577043645893868033610877170791622066542141866653013538254357195576043658108675146944371112857591888312480753707939062263345186231255798655147420398407275627844654380033234367864901691650594414694192548896509046313600663738964161573590119819411740502409594736295493002363054462552957563803435786586354150578582550224596245559569047393929347499068546643767587552676254612782047552041855074316733015429496743781887585833036524919588169140788768900553559902566050239511260604550689106485115301393430241713019996305418594846621451753467227286221686378246196562535202398962401600919780406997302046176637151810848054971959289431195300448432369624635024158564556108045387693869243701354445957836005906712384446339432422718745891621478977466572057274759964294252890984672446320792309032110606360344366716967360838561192458600159666822207436186915812783697541563754675106380343964693174643769494331463489655900773618561058473508918563434330060462488305318510361395635133128164433371666683377347040379065921744996097391473351041731295433570382177651020337090922139451673375900073808759396454827540191334792916373067653365665586475896350519859011892023649902982634025175388286264985904428571324180403050104661435128289127582141242390330302982399531385556187313314556216621379214446535002383956859094484917403230051588548881019276140862635251758685804098697908534510619157983040747641032588236102464391519573294593392622165437496966178493282321821428412324097360096541542019624154922294686511522235038246152322902574962334129362643958599677584695383853652775560908912467462437719566819265613812159082638267913987683823661795317016709603607483418642329436310281926242957533474500091302360523489590848872927387907019034468998985101899824310400959165628468382677516099370994089720927876228421038170480580552906488780876892423025499357671435759138805752755790310135822810964927079509392120273551491626826093464655981596365726232519486863466286273339926887593740123154786848989639836057593358351446083181654494871587056375414696235001014313953232011103925311043173458371140550098293424338709320324051400709752358686160619163375426108301737027195513203140952907275860998990167034991606735395416420607840938501742815316566919553353733991615910104015247989421053669891179761522758791415282055173026019674921704434744464785042021043920957365933719813146749662519694125342011480466934463391975918769985534672461544623506130179991080734594912916128049092159151244337868859724096327551751742660969381665717724587918384517618250611998496075594730505785955152536076152348134460505788502892238502424526760251628633156353659189623930012288405497000498159256299597626277869290132878426686238146187328248367394787158434924247320037029886060054516079410006447110786720320803274825493169231348919657617656195924459796026827995871883873242145472116892904851840357833152429195885868753497970052960275225408134241930853449185308693056268149197733950527059307685325589713498027634397015851626682723320065393871849480745089872910902300586137313086261534698678384327122272842311873843768555953223467097080373552115255451446780484242400907129729683433467117041898719176823754709743245609106460120510088482544703778209038184021274875401878508697778343643395625253941194596544377598011223776456264877108090597306343339447654354693493461440420062007251206791957139099183053724716577255659326142551074993628354977270110231631726485877177455262749684383121586825828993324259004748013695021777018382510130106777483833391740759263165671661421006509085416502125027718964464728947848285042811607911087375232752853362180140958459162515856315038613354676178016534333105829149262599718164675168663307660865760524005984473159491149952624289923167661033984765197064816729607802021947861528040282563063856797106646564964140060820874523574040361985675313013112624854967475686748814116301879561053007885646078973526021497017870234496432959917780285857563568073599075015155650062691815486409525787138482220357631528150714252614047172327827029478817513020900974223117309805666961277313659880874274611845237576187501753442994088925633834229143815769859393604413490139854838778268838577680081595203805201208131494854465356730581402367841344130100095120715145219122264340879983933242795651701515123907865364359939558757706130737077161666802344042638015355689425851821305809065598391702908617375457158137157499693027136206871736881520006388913495000746953985651980489710522065943785736738893776784644251625728566437743502238748127249470764050816655604262770042749614098994289133968896731717409565109064010942939115626278057791659348575549678868820417358660719426588463346814367147219722140547756957887417428620985270561665205399735721318414101756840284448902090835196780739925495301674239353335458597275446298906456573181273081811239013357340067513196180524807442098654630997892424648494545723020219154793467811425361340149094751789615521409101646612151925670743931769981074364486429782140038528288575489992487796310977214689323980442332382732652332996905046024445276362289917275258549260046706937886227647784325029594843591306105687007228412356622696936285366806003498135524292588277900679810154722472419542539215793569187040317953254788877774362764745025208495979999785124484593739902651121872798609862481901685777753588219662948513702469798789578642206026945689998321505865783911703771534169468818592549662960789453146847774936934967205238284124878452493338080020409657254782474865988311049940444508458828980116218947826339437842145819637189023862368828352690047356330667611117742154618012845310795341657430352661847966740643254191439280282645997737391396630173095910728819054839014291365014421689317043915086234052423631312933894333889251285267706447375939718407165229358962978853588375510522837369648709960344234357170444422571796280258366673141306514895284068229725961862509170237885063975050593092240626890175528172943582959812734645033936500820554570126174421797721106567184737987490176635801268399156985128230261541894159581799295851549726904033782005984911495693129084261086168595966373060109368088411061614983263075461421951932565721097031006931527771992352955482489844391806740875671756884852242259542136669284597916346691279612558824482948111777468220535637041449285166116746790687310334305443372825168731963280813441608502182697143989142525478766597161032523084049536408158917798377864048574319932358778395979701914268951859773075552648272359866118880464851808752336692788566314329117753899926287161603829571725640409117418729668155442960056265122397818281034761107548257136813801376082617414075185242376344214993888733765513654866437801563821558436990170787499281273362864329612152579441699693217004453580031104122394588332952041342652166980071661174289741076062990908107100866776157281220067276112410956369708334037729033564053695169438017831088007071802389698465224205647760754534588934244772807147799211248189925471365490413282813434021896363689102029254414011753557704721783218337375250471675928868239605685091367268269283539284050344235773760489060038146643364897681921910051194783164930795898043969491121527645546442699731652928190603314858238243120497362321220107948586115811077301622580774800709490461899434539094216189271843317279648475652409250020273355154527709197987199952135239621966957886615074340656209187041156064304239086319846415269411246053336436962925637931683650386809460049264582887979845979226277867248890402331305403762165630080780629155078559469964997010924250976197694420901844005404065958063129280020407580174997959210271514089864120718419652848508129091862243490938444316237845064104816229681493101972031401827443604079001840278258425320027443163246453241786903476630084989813904510074185491904583031452763354461372182910565096590408585850203699927981653541356520960606615729669266108958503294708971243153046860620041313866102552824420519047132680218641293504497437860637476470894222061520488040044656280372014726853275943871686071518287155864127549555790311550426276606556596712383846918228513583213439290627347706328764273604212829985517083814684943920916078527572876910199713716647551045803481674233812918581895722399025413812478060772669973554986571420532313540589301674349395062313718203346084894538370004623316826570877974555389110472102936906545323435444937043654538527147867594926451543883429424069357209328462154045981538450849564026584612191655999339416288635413347498119230850553295694762283302630309757919666972531462407839006865607427712984917367317073711623099058184702934623230061947519859617916135877067761405637110065330679610244768260311530813164180530449771190713786071122028953149926059269128690211525841169997924495435999267812349311797056294588490155563590589815054547800271784247108027440799467857846557197485231293741752150955956965917325906779247773369869568171850446323795510359664421742750681856906113407065395582993066530522537140730509250758262448154546338905567185024219456775266845657244810363057608127752992037100385058269627285888950677969825676512150779988855425066715563534129935678319621386353733428065490767136723517081139163896383712333739407928116716754407987618333170340619529758728916480176289844444887941607104614948858558892700173203808421706129900682388311739066479766947885743884845113701775023948444520678445979141302729654002305132932563846739690021936257727576889023381231350417970314805446326853530731875323837741970654418613833710484710639676508092352363153584887177864155231145237965821886425210672910952722293849251247079712066371760210511991247669508709879060788059245113174193622403123033126736075802812231147748416325751903269110436105759975778276760152040797975747589801990288800888891525177348425116129223461696559616778922965471312189553766260017584985557428685004744393840090253190836616046667379763696280996335385681800834371981360851838056376176084751354582172617007361453628989266165534862372537927271184535793143885774481500205320842098325025448820415908569009362095507741362722434365162377832729480398644727396648103361776318069329908667687896482032296077653446489201913310226313623244887695433018537450646927552791374944565912840691849143202021005839230283403824844102916847108150497756992110956384435211987232867080529776729608215314346324148466510232622201639819413987123273386280342493764905473848258828304366601877073101520858655635231890101954445608718352002971558616769717730448887316315321439246108031031634095994025028366853456272188808861358528988565929812123813126871805009561097713109715156307693280449163365172709298032113682819929750013846368851492745399009795416474850026179516612578290156133747638642141050054263915894211230305112005647584448370111423159479150645402883993831174539726428256323202545002438043011830801959421699639977845981539509206335949177531079703897293302658019697121678596919308056466178838138347841056504181834585229366264735439918552922115849746611619651999964538146957535921872888811992067227556328025975084068078966582013979367080409173679973508001055350130728501455898266578410683897366455736707837824212964236791884738113176720498122028816932377111780614689195353517644822563988078860737607428129188345629148814983355344555292257422419465513581542051913745983419519316692359928300401106060334560995388208564522125437074905670046720084418686201433269075156834881596012587959441868491980858931924598934402997692819861858944438379003237606724763970419450371705981582489690388109783284807311666716550629078249009977363899609908315140526569012409461305291497809588825428123012682019801379571249431016516673815963773906175496112944030399833537663739572889477401446520300706653818329746503824786325220703050139165352104751628117108204942135780262648382587201818619122472110180663625578086901534657176471630539654475981358304496222705387237933887254438971175999923975565034973125371172140938287065384970172471721550052925479239756049997567305274105766922044486885947452020626684400579599860713829801499254122562830150806525559370995303172712866288883096837778244526141158950913700302365453583630582620917962184987184363978000282298173813415373060926260361782862902766844800946344000937419324730288913451659556558418326073517208770718505114689762928559206555323015168456844678825151048491165547587733520220007953763013215822631324298114714488999730084406012554316999760723738867942784167279310560122163847029531668695765051956521111378341002817400180609456396631942195171080700120449318366921948067881821996482741215539787282299253959583470678120717164912518010373991628277755121297667123645994367248002136644848754030256674637203518534279846889525873030760638732852029167729849109095516852307600434223908944614333870498911361277417279622119917829131634891091094709079606408995193631616511344573169654708797641572374188564986879437503825062919913617074683470134417199840557738558421943367961350430343512168074760159013185027663893828454745425118702294260477209472464290838932903997784647832092747342431884230606157343631978439799220451738703093233216248067020828636416313190226260030159993610089249269648385873558005564542693370901859179155212617307701530161107448508361368145309704144268577705986799777255243026818573226469643757525646195330405973928584106037011642782231088913657527566113975440558838036248994739613827882754074260774774443490746094094779342748471784152810494210352902149478596672619560135810394033922084120378423210302794614543813327580595836034750778950213182519796046320966400308284634008183385396284888261834576459111229591080079312604790811660654953645834531450078526615000111637273007840971463674777464963948447547845195689484745855657073254882424023124449888813387803976029437779105868084893700726312257397550050237893351186125102461881435467344696666196907863505347322869313876438754899076634734076136632417131888657779081590366756729248247566813621769000753267730662912474575764275751205715374728227673628524366379968680744048194830948717093197768735938517823011550336496826193356604444453789024724010770797785449699725126700591183328132108280132310000780993996104900334794315883091181344271236913294001768156445463470775907967601001277770088527264128523970990109509866763939821370853858108154364538479356862854350572596318070451534528987329700648266309523879890528432385712610085153816924445839178041695246867936118655400046407164589580476562823520052166731924117472213097367044941895284271294876373555136261193116141419113210477729212588728798379076022646235804184864450735551266741418885526767693805235030320328002177930205047787105848337795051498293069247715936535155116011866929910085002484268086888770790920483141082745654019957614212043937547805956636760431780672787659313336113554643448129605003365483040935523313410193713132220373789244643329902855891368721125131706836461878580049889102669751203891313366246666644480400985536576507198664998222350852678844015600546641957607819057541817206705712891049330876733961492778993259991810868903910614996232242549719624638433008289725434600700857685137995843811200585714575003903695736112989468192265531301752242948479218841928943549408927048965136254557271659449318589969730199877002249609530647150987809828906724342441525514657683446209231961718529090379385117570089893468106004366806050386455532892469850383573237046562349368511889876043335450598905057561953002890519447982250008672927605571827377437786806132007412321703055415444370371444773358114661994141488926457759509123089821563643302159535806681529657820468152621011696011118096839318392854402470229919486979326774063823352060535331303291240577829389339223346462220719309618490909251128823127271117643855774079479533947602762147802960884127016040576789040643762317783385139529480218720435241196486227515646734159419752040580238172473213692814797073031730771996612532030111129650591749919362978046527779624120316964415620138960352955508212935597954346911738120204589859267887880486916332327734407217092659784488834398918075761008923056256102096684549550883411892579112434543564839251405304155881498916335166619359260640071078555698164307854818482963041644449370790092743885088149385663388421509102823063868789733448336771786081651130028484590376662947262960591964947793838686858522527097167645842058065128920835798597882652857380801777373992417378731694162333625858021743844437233865261646842169125919369572588623334277042297919412484430128674059682513919555967142840626753998894914420348813947488444212416614095128752001116611578777163670866419328897541738136382253185607635231141594869342109872436990956412397947608275597020944520966532028579093164741922615864050903915990785478012247406124435075041605493597560157602442016723991176981119884088763891268606118614771537806057138248183135439429689044732749537752599475079323325769855687123626230820848634630169629973456477717717559009182000073805209982824191481537858197597734135146508940163605943436963458280158537369080749872395509641033556721452574829468406030401588646829183677103551993052620116837357792417040566106367654497729968001204196993960272538213410593929494743883496449842619375345336761890846962496242595430437127160210840029812148021047400162254636141324466373979267533826532722409724249503436414945472887582869388592273556351273000900717058321996836327071516656929394504479413292262166703505960057777657607256950535729528889404087514766296129571247236574585759074480559113244282937387881259877337317568876938737189179917396991803278563278240672594294292266212138096616335246709465491210221841218967748815702218881538547376499524057538564908404142408426268292071689839638255068781269348770848840138346478519794398598903637810298943005300041380263285312533222400513897942878725868262829896780912124925583962071338609065342991735752167662684533166821066083480926836364705111511978883865086364702915711222225212687372979150983957826194965032853153336403559820299036948631552289649459206891827356297290980204493601779522846391639235906363032700577998629806612382659408800444571448417576563716192848885269071891210128109543798556456551873364424783179048891577132307782223299007017101280637450561985033192102327386420241380859216892942829798907571504065717522889902164118723152556516507246274796854190044371781295567037816385268025244816614200294918186963058819164494722465856472319441062308903104388510799681114450646343273888452508397742415213548234040849240252752784985331820510377123455431506397034833824992481519653979536255308402596451765153325163299053639839127374151161293048596084881045722163709817174197398639756410214660920711038007510049010328003071206891537096091686767417249736422226574568467655545679216397320385444816129546168580784170548831454552942821363308951155193334349246555350130076779583449119571908092586106288875588966265187007947172508900935218839839735509702761788814209846533598006645346549227532357154939439681036462531783572811834597714257843498648660570475796802759496431487338817684823378155792578620421970661555850280100469686040279364489334918166960238879347718967365835638424369128362389291164720704505636707751983692174284278848462727636811094355077269879939598851517386636895883553371588508866757310693041517515406117419799597117883280889493979533440908425856755153888328272730600322769220774402125596499486590075420247623409364691378575744460758544762110851612569985858025447172727595079933461507145768010045776702951742699708248814186395341147878290349264632489429896241521577586254714114925271500058736508306309258668397364907320752057840045401016601071930583855058996001883932797472798210374801246497358395445514012408223826965541563622913088571611427437764475154912556349486217781001896425956749586589503115865330967680874796448012766423392526013493746850042867986040336367877349300931877111202859884954070897516904336507866042812638464362927405999099911885077782983544660077157533261949562031666179940598461619676755081710881581855199679743055702300179675975223521836592308664739676524689628339601287040887828514805146872005235557782105649635048022192101301403079615752827458813680671537957366110860109129661109938141313013260550866716838379267213056319254708679566698471856106302885738171565098337811325542788196586762583818361441878275534156689062816736663422136790396765819345058699985185329533027156428953923948847737234107434405708289474903222920978967657522771191429030476429892088900359113292545105258665636943488810935781227265441047356395106872821041703247629654703676233996697502519822572144232186052862617687738168974228470794828114444770768865010227909605140279273899462264568909723209231558995500723815439199899514209486164023395740225868992098499362953664182762613012881979767165798674684857508533606190894252410301930951820547621469010559096588429645290668259857199613951757818985625249079861171201084472611841351714986553547504065714945041232377029988757058873911499276523072707096877171126183178526836321129070234765406207559972223517150880520537918747540227934841456416945370634612323798881866899466188791501963140181598407357250461429717721954181925582833119831605371981805232226985208376079941685170873114785933102029611641475572896261491911949718836073657177155429824411696160982368137379683626060207805731080912149456369023116891672322862316830353557068617457377757202860798931150803621203088953245072901767210903360877025544956337934168211754303602904299737678056584851288487534091433999872252820712467195070348849163354695830974819602023958528469824055164431426092664446316974380498918527332176996489852949314756498476815521385741542116405487736845970202895103513090845115304244625758917533717487488976022706536141638021154751937998096624597930787368807946811333041582647614375753199830699065055193435969550466868700738975975177178022607403656221640117477199810303597219908991923718634902043934820989622011319147961159328795115428050349911593553346485420827630383055629533299811983414780625093828235728898544255391085037067834443430591595318406643584646533969950115861436685888293269867197699926336808943476507055147966826092020651422210221136851303093854962143701558652655201206344273768948375241352325521447726771416679081458933915159870894942699694608205832470526761021879648977187537373846719735547454514639888369606465635573322537851866972880499554342071118962439702587631529356256011672335101865039089326631759224721464240085033830461663400594990255282348848646511211369617859137707065459183928286661565782366029945192330702408631346287295487788912660110323998938510282543318258900629258691377976607985063631809679851009876566360123281334898441714117728013342878195297325341315172674590712781267971583322340250216089590102272120486020941455832447492881585976725012801651031374309244365252441426024254280874610900550107184240400586962542362543640275243519486532041424935928580004376512139152977357188620110803756414243510915588368533731499195387956453096888234185022387675802192639586764812087645956906928658006052980169116587752503013286575291141069044442486024006314359512948864659965501243995148174493032448749225644327556954419736111520861288392228213781202829835413194005851233939697099901543762796338714356546773002380137176638200795446774655519009808730541292833689751069885008436357255210293207915623519034914751061513120667176740231944361086253284224888020400403105598609153754382710682824876945920281751130379125506181438894330247078476235592988354798060467036624153977335395425684560825147270783465021778827320861648590830093609214655786802416166302838603493529930232263619258212587953915884381301958196950928731455200126957674188396233402510212546414842146561310330814510702760252793995648994787421631671329099997989686937678120580627691825508419418830205992588424911887445940917450197745508153069739322729559444037101903945161033292136184495419335937295198939844211869434113885243859351101218591073421761075091833625033994630835039287992308516206100611875540990847782302506719061526574340445915466996176542679748629682276380146391752297486764553946747245700181352526352614164861016253702087579268639588319702344752684944662990447762401137026892899346293487291773430126966583823660653483339954380982349038164589714172096506342199488298823687386024473986042615570769965713533681398225644486276667548411563879828313757822035749450013609942022718973577393158043936759303718331291680354573290676792788672193356307571836522915068911048682840164115422654481324470743280426210221785520590226398765395020731890749493405319104494699495436674184567754167638112391786075132827798878468478580618046769382078737217870429182627930681600265251009044980412585618582893446330950216843522346802746138575135454429289903994992438418821641022233951071862149789084929866910465757891076190712785576545228859700756340165078561132493069603374076417634389942217080148478500540013676100588297316017030084721528415314003039105000835379741972762047429309580132138769152439812934956556882540414855723856050116440427098042603126245399214343713327587787126434031750815026272631269186336867435927482744495574291396522265820454876746854318698992814066041349005545068114578761324924670574132031355610852191400070999794382625423530648954733893524484648608026744165631388998616181310835541707099796326166229523014114919814306742533547023672344552967691425016313678869342861967611540809067775987313734277475385208149554068699931360827631406257435954913017069730733816902566986164238815527270444493801349915934946180285208773730968462224731775405949241657537564881780789491729304048563498667015345991632948761444820320195394734694475134259451968350230446817728194939079642012734690437511187976030474691661114714100397253033184521800444443728282857534705549452347896489582640210797727189076390017852319403354671379664242759397097998341193769310322694958385143110072605304467894935851772791569687204229406192293623337482448729030520257973400165368020002067931479084209386145685023013753336907491003261558953237507526736971995983381088771934886468764657221067778278091630323173063374139262115571565586221281046091340069135881236156015134920739417445212439456071453318856253915975152585861231518428478865142753794013653173421231850705281957973298354762082481803431089181331413914298346795389328287024234928514553761022950020668382140160164338287605763553668476180384855072180328034267720685416439401587460376173266623612461417897129789141772931865507093002091260407208072854661507685255991381251567132811406313916571367998929163450471182240428182562534623106047461284824644127419446174982201048311148227471627387176626283011833328819829023551583218610305905496562949060772736911115767266259977027573813239032938064109464847637076427315219147641097286248302307546912251495897063881309340869988004397438818738098327264311853067737565894359893080669318358377946321041986657542492403840949854239280137772334455439689722330849449332282940104627704412787665710988511576000272109428133834397631178399704773981992336641746823844595065600275696834176129208901006285840382614418591039154859379425145556717553740963813865366836657092224719924288973142445796468456510010167894884894529124092438993473335544663389114163976438053752558624377268131156611756020095893861732382235181326788550424990277934809199000110248745135182672119794282241836014385253172093322477550432371750828006712404817958610683262295205167410530809322032054696731307010938205397469417636000733029906897259537829662770307312638690183722918496744782449005445852990689567444681567241509319975077804977494508396135774403710532406412197021286159106471805679704134132300910169490369642465602461486458622556347434445764122169894197330443165317169584104230719244461597839573525962116611334824463010896037467903371859154405024594409307132125861708961009004855059593552092025410693067631181747405023693066716404822992187109301264044144199003693748666428846186738629794566663390921597605704290439999061450718267632983890351535235788909433554757348848239697661126470102546495969373275980784156964665269581361277853644984161665383681372748124152905660253365191641339724072641476658751519584783016855622086971845047692387536289673825148781260525422297231418676097161795324825730982474866206383073424295986805683854269606210511668840073576338307200000402354744980646452951121899542469982132183379534321743619024911959655039775200065647256850964206182015038345504786693095580756803944448487937771667356601042198960737973819175070397840362815818910303532009966443408572382994006185996185243741311355039615971141046034056808012616703764470026413343455204051627927371069129635457599137883981110910426765952281536591130729105095644801075727453033653465040777465269885778895742028438356150605576228631548013897943907535813282753318144587660884781324199073223415659287507596384722428330885200470419231410122920895932431856443537196261278234295379577385949309763129003204392412403886266613377680898335224638516210229175856624504051751650643924822673582975928451634037150272267067824299793686608891969234656825129595921947915129977341834649192847039802840492445975039492267008224918883423750824064539620113615053681517167470032986166142273653204668243076812072029351699169188780457729252437740244160732662692085011001753887196352232202839938028439484569049105177505763078136772627724721015938022615680581989871394783350130543516756350206440517448000522388480465808299781563881517336055781861754067672863153583380044752433836871625800135143593584471693473868910470495313956476924390829279256924801886769405031177503317147068046454441727055246285215220739921347278598008373703312073510009914396620677389185327420946831443119117527270767994899178534592770466410818467742553414040831374808058004707165705350654536004615599966344457926581161100530149932888503944895387707826641937006250495270305347251593114146014349063003142650931078654346481116909774826790995707638667684556250393673621591380157735533499952619717262408449058781655027690324365107271494317172834105906326974932840298836655298695231147404034071807031914843940424808405978446375998211041661290248120247986302979081196213338835094595079162405067751917787681279268717072670763782679382040808054156908443278879453954528748184863246885726301558552756142314470727430396346622185459161275614166531285860823752082451325936623884203617604931531635491585340032738140570993726515015320550055562707627817296524376641002118466748285490402169200386127839433173649872933607754524387024454732674059375581460943560905070581028993763703462699885942366748808517531813417745319066009211657923878996439186146833963885498070342146981952605456136354106208814262975845679048997947090192284772465447734584005365574159918969625991690994780882800355908260133929536544737749809902588793668037631596572343398702098035093747855048331771715403570574865806134241951652338787025614466852309019482264713091850937799075622892388857774013251909155530237570413106435681744330720355520117053881921794513115743609657843759815955179708079363687885043571060548374109040071587450123813118302141527408271132516687325978014069419725463323397143716928783072064954243358342725349498467309319292834673021588790813675744444623341905908286675460230720972400843896601281597340644476838543171938287120464541621642333287082551139901715342800320850560411191123812789505819213045800984074075696407191381057064900792223775449463754882906561666073658388827609160625067424269625889822429565119126227496847408416805839894002647644171522497572743495435604076731811138844749582375369643881365264338608289773241533749719310919012961034857819082616347975426825138474807335704476247153158155070264558930502974331499754866673984444185291120894779292107823575647141974578968459808883578205125991108366542890910945577242578468162155969905742262551450775431764309299067320146697463856827159649389758223663562705009575504182751308912415648454494861581892213812952265855423875359087723308118234662869502803914250014824671800898455000710384131685247307921836218361689730631779518813204528380211130564438660198550046929179469686930337074532613675919597874579543221560294594626068134811693244599627876984736521314399251071279814586432894475282286099788789945653674441251242848654705593559207180397247112805032824300843600503181633203308987797491267392086391785370397154631808201244317315357006734891930284253334305967811328977844199060466654432718020009611108767181986522411917869199740805498662465571801272949692310044293910950553575889289915295863942569032360474511531866712999595495347953460312254954537986283581196605458651326605066840946119908296594112208463518809773285358325524675807185510764984784857871707078622229900297789122073845797433856655112131832785654444907336276616062790577307237242688081019969942378347157908994646145787173253601354232334964108439731146656836355198116054672982840692545895320571669605559866825451884673713559809129377729932336590828519609414384288527078091187502859079535837992080944394897321095169384187794960687309470971554538815329467750700206837602525514038229796401548093839281277622700995139282561630773398388077675860941315951887570770815925123622147788183691534182844811134522411770141883255571100072173804732695507120194877502319974276894517245555136462550875501808144947059656342932167894444940367666019615039556587896774213506891730187629627505931070551004786273968249847128202065486664344315453583198523725893982383528292287907229027709210035760980543458211095980092245888420768926864899589507806679629147888023203746983043103291004636593224759469015599461271629126797711268685759347194442338329175378960550481097461672221271035933534096300289849988356277329611736569116707563901477273106986271248049314514019113959691450047778330871237532824111219804883659447674396522693175954858358142559327960264037583539247073447229098937525793876686060392646994879144393997364418462083598555431497047367010591173750863241108208886676581213390317950268600277055832969876145713604913599161928408074471101492816981923464264294266449284196247003072532767116096416082599218914528205710053830905807753914558610049388667302729057078155506747836052567904418323959460295042725480371638476311158770609087951288987432338217526222807589847764757130803170314271245937402381518324740312174447487872124838861624494004165941826334830685373613976698951776510095778348841093796503249828061990145062093538907073230363898142605797581978025517474380066638952443658719538517719136700724578688260857482034534749832566886225892082325485192382525713385129026937822656830988150444496023499799157277724783835766645205630993292932344380735720384210864236950283967929099860259737227851744219871698700155043092626330031107349884058148908476538223712083006656174998961727476310861281358557280762307516588482104401213434614531319986907091951692486933615023758825150695686738319606712795002047165185166889710272975882692856863800233191024054878270988093306405336324664752446897510868656476259919527803526418756348642909350500009333060781744775139520812211773454168672573465309669191649804870992436739560590635406836687982056144311522086774229645597009411834499314768255799939559228950321021237779265390830280715245808370050130480498545917425294653222593927668030140841562371338701903862100866728155345001793612918196996046556666601107374122453852569063628216583229684462722651731136963313926560769410671308797883864425954287291334125703321073658785482835078311335133967260148976176098071311966879286993827350061063660136638204371777800095054917242518492532110526205663077193469076549564275287741150815311221144393169293292566483819258920941582701217221120583326800801378281937698289903824749736837468650638274406785122383056839050222929953866088549612501359581081136737871928104996128082460493458496370449567975076059421316469947582804990859828693146557337824000087941382791187147900391235907426967027707247924462386483597399208904742213484698857222739570368683272471600482840170905205726966201166722647544653211196896592473999139670114838802676700353385228460135943938767599933499050425602039748191683243572626397178095808723356551730940712377148296634462513139117324598797888948557827065958330824420729304667400052047370058779078985575668621392112373217079480541552515684243217514713361887173093697088267961363179704545543914118321242886127464445756039061145369099437974328433931210810942334277668354713825378090962334310867153755988630752490927372325889301507055439772696934450282269379359770447960251345456350463989757080778848147482009044964769088718053033660210956897975110024552482145879649297747096387154124656979485146243516899554042902896382503724576104724948894946433486691584597532125046806682861435964074978964192369985789338102337759757286275976345574540984786788886909513326788713519431013443637478441949210764205003621744137051433620315292004759782571102087345317663643347468204583142423931652626900309019113094495188667747700140696365575187407364820988214938078982479147692342301191094731765438775907392892563644102395292478114622348134846036457758520334781136993059302143850792660128075015368436459609423565492423030937041100781547232081857140999226723604957266550407181727775648390992047353439572387324867051299864179072142113801878450007275884254448327803241479323034523516920734592382274350593889216344888154682960540017402285899217696431521351909355117822324878723557387978492783720720159474007380901461244306825657067799188104088348719800979231308547614040918313710819409525267490535414202558636670447969010333754746367014392198248274659044400853828266888145582833922540171994103981810923825577445431324875917094483205300279144677372234301711814992780609152565734547429861350986996673714585589246222827904356107394887835884656321786910627049943198188706042597843789785403982389457293709980443027143206844553587326674848441388319417321255847660161052642543429524702854680840347883442687212810985996526777484305308482385163039131040026790164685970135614580880664468157653664568832557995224220186878420531315573992804977332366521326550352478853640985305780718420374181448527932592098130776907049404480079073185125991638619336429407820361973254543622395527174297941843998575695055140004869092433287226067288062030491319037908419907554830831902391539807719900892730408136475498499295971414488505156541080908758797833494039870244676897191382704121143961273291365597578343226210764080362211686916432063374908207409463420354768555360456753963990742252572438340518083885331254045331724419533163395085301795683721943541119847946977779184236571203836485515612018037072847972282198237045714704177225464197477378075137589016415955107158639541010335471372797457188290907941131238406812179825324725386068320625647232471800719031984751391150604303061998156164669568114008629773003278499794330719231968463568778066608717999359507101839603792376137005522403861384068756487724469048667067471179075266553237466188197013507255574714984359672001975963615530378158239704377077659163165169689030974018094085033817858811982732271160954223641637136106921922205962239698770467184703318304582872342312865767987502703696017569212630483792270392533008506904238178333638991141064197712148287885675672410284200003201616526521495174104419809176618587958788413781539868419522935803301082879060534472437057255906752595878519257529907701903659618685296017340605079888307809062745342759481426301917090977311547733339905071813100195970337394531913744435413502774170879856995010063261522972871112650111697317969942319492066404636166485290146355247972799508078432933032921417267081437199889801564511845525502066334689316581171642428852539003153539322896676266078250621870478476048454801056816146633611691546291290327490182542069124914958058765308548445495216030928897198025683968147708286272777055806793232380349157751430932711930116132788093512889535960400517154652754776078696559752605359405218133372672456745394365843317604173718213323980639032358237677288999697724697686752773725002250975324629104351400413250482044671859159068945493802911586772894640396858234753950296581929225873835807429879205697346188464578728360492182025224535445206255616317694943215092085275226612898994221624957600105630448060289532450016047152691613096230931950939017644394854537838671544665472042645105909596311304329797435058455720769878987568784846427786529823995399910814466538684066786487152286013801726857482056071351049716467828033351082348583902012427892686874535100017224331364898537542039992546803564762915762423988276471919333034616536732687173965210870511114509245851414241394089529102101231395857022989736227851736173214767222034557659255670042468960935060379069753965720263538881744507931116474625675989844179293530792021536022428411164278044872690488363711393404343803913648360371364462991774480829169081933974049562762653311589345023686320645017453101072332037759965304271771117092275278972636190840229175147100691974243872307510944130198560945866668245847041956924332330630629445647428549095405319507340417983944516214020162590230619007445180416072339642922549507801469680760691872397809905569215926177185246286575792402177413621764836533695139844951214454896107675838931702323177719056488486176945690204645613966423354478671019819794507557788718552295314786924951044696767221116158465557198335970531662015469417827367678378066190066404747165548789651651893858193839732256737606236561355081778430248831919032394323344225753983308924177256070225782013117384418636998739922275450181309049224891463169619349218151687488870667631576863148179689236491570631320496913602546176342056307583901352316493844574789675819372362182331286734976676599076976618396254388188679091250327894188951793895711143826254358957346797365931601277638348692838840314442820450606530770098679074704314296671274782645677701210397693476403529824883713527720081551760349156593188112538741188738470306874413726199428743658933483761497378063938795251130303311506946762930652201532634312702898196189440954408225321161818846357282587972670896311382412835544441705479547702300685426206625924154801893914174679475666883700270519564389904750027672456125914147780330061853337334306812965749349386731116191747629850490753280713072672850608493834898007750552019804628742745489302005475808496511297611816676214182733539183771768463520145643291892862309719742960408727233518138977927128416695349149646403210819872636472158833126351960559169994385565033922606868087108294980099368688671048613245443313130816401773270031092115010480837123470624265881804553824569518767266347496789788236642969027301121272694864115879587439451409085628781101597255394560934242190128667029610660355970759571144816700936533535027260765209353197103626738805996089162548801520291012876034987183739267450505435514181493476374957338150000331861495751418374785562130253171143607084735796526290425969906329824128435301439811673679637185380264076057766625973415494240273648834915452665248597032919828917538735338883276924455821614996486166519860668469180341060829641968248659928480756239477942705858363058161412973412848373590723702101184973389224691632422919790700888324300878893115925037498840590822473610749325563404373218710770716595964056799112999280901489388636562381126192067974068334820808811381770959422996049258574211312914014355771494166293587345520793201801189436109863864813344967384274835830143014224542527446056715363963185544917283399082518266352985715441338330938377165798645415021330344259498408669191544877341199038846541745042655624803798980579749093720286368184863443340849248020043191458330736298271456485331737624305839650625873392685745306256345486919583431319102966072876927025029744274133243644477916489524183392030851437275368908945450208213735534083660716112878550557666586323016766965618546056044657728710281719594762117834903614452082580313735362824263390359817397059804900954765614089479831027078230924720328106223852033916033792798212807130113722316986880128760679740995343483801321387332574050603951485930914878848207997050723140106561396351042301472769520962344940716365609577782167972676604147936874450111486236612470823305039434922264253860278283612433860215494432530215812986347207988038642747181302725889136363926785190165917651221801070221832630683527052538500849193428559600669047341556204657413816798567978102024370339296441010235573994691895234096982927624162982910480376284265977845492234237979847666347911875122087625419584604596092810024868227380488015443458760465936403296553006478914856760849773944774593715006711823662934217009879430475558561510544665725397218468783200966921227545117265732074852845743229706410648665365165423391823454658789961971940788931529949166725908207738099605777273880893705186613138488374981273930744464066551864891161102587532653818706337307907033204451354425561061730299843682614150293602664801143442277870489209188868028341837116944662155967357321727215947243990720146961747069751145321771246824776849138825810784771858481134336124888588686228242065200597664570021874760659993363981683491195245482260851719329897852198000492140369715816769208426066983742566515202642247158350128068147978505875330002890984850793926910443881805307901186142377966298616372045949358322213623210807583123382994315366283987870395695372700011874715098263881240457486003605244769044988434035397976291278191870322262959126939370698041309380399165127924327430445423358179874744480156151951914855045945840444290447907612793457854514977974147780156712303662526498107861721283498932315230397514097184262862898643418734558239620914053599027522638272884366588326184036551005272527963827068510062302955700837799227291055438932211728006544631166018559995089683130600939885429414097168606054204346984201994435277440637934004392273711413251652163333108677212446482419166571001392628021860338618032342711602384556547555632008689427965873265446742320114593641259649333586364384014362200074554955834673397158028380638162465758664046179261287074928841238987241612933160975042752234725242676376839376009525711253338059187152532331114105450632701950859592725722296261937384168897416262310960601040310336512591928677790548070446702921592606041188822714493838560805720460927029424504616817169391731003448555817135095437928689628965190819646230896233343265029579775534241939527077881982023292370090726331928977862122431180475864174330270510106211871329319951213755787963494377175931867227670177487093733969593428086437525496500422092493148189976004730457996378020961551981710281588809463013690262817273174549006204505845887867263123445298734228075461832973611095016237746303641956931157941604189067072874032192423999128343681320566999319169545078541547136063289659278678362040969301299906113431256379765230479498193161385606902431695413302435915762670112006583824467358803131917450714216877887662382813108563718201406266676905284203785007637476958508786426041378345834212090696866278070883969600778518983084497411309508446776167268169984133551456665390443733793643690369179600418354061403303031909869558184451328765893770611422776815195153845080526959493263854922964890873709327719157466540380508960262100028526224432194923874005391504004708181365448614637422825728654441013296478031682976621711508932083924835431254160128824993608414505713537785923789549818486717415108103413742497761047977535200525559976997432751002297196144701710540117801496123227549282214664659731048295488557939463159499732868359549447572517860884366015935622380153707051435083172368715977373088459098938837653955503993086454011684838873063371967324921807465836707605891612234285403486599437864846226936437477971244402756949802295732853430262604757631229252028123745238885251856011845173205923882254791585818899898755119072124256142398214099029292316932896176454577258347025543598498376307474114516236745727642823542215265381359993461564496010782620784159653997704829953913132621567642185084399938434853852928733091911147585837074627224022513594903939541731579928955478925271358913000519307523250242604078587509449938015501726458247709089868828020767002915882888915046224564604636161811760751521234462654055359097171699350860610436297232791461030743728367748633318862654594094913137885813102624574980568528164931234053736920942725888591437793680248983480044841613844460037807998212099478374420113580139986295151718404068297075980934316507734424597895434763192483766810441148609113210389406625914150540135477171589537578602303631859171730258139094694631781520585187019018994229893310021952873657793371149318396854492950266415458765070422585747021100952958818583550919401349566654778759876308537098483750374903427680702998943628189351036143226962213002957160026436250474513091649523322907186267342904079825313592759298823953496777358014936269092064634649779510819086473114572012426515211001027929075512175833339630755464527077051835484258516974350282295593852269063854483409238791946110115259301663817055442381521158878482899968127492529652666732477770099351896066300152214005166629684659385437497734889253594942153955741773677259818896505069752116971340839801388185815452986944534987568708575150428734765260139573322859483390688448113623762105983902964455071583878067866988846600420450668119186776604643709248768428489604402958758783217884665923675130726574869143935167990268190825518016237460436641659892920715977359089021714505433905646147396224615917065844008129671852917536566635392435697584059217713756404613029835686708844776022654716500855521213480908053252788360694130269768641243694560090330518659618227259547713955820786263271503544313497511944653118122925359141091885939279482290395907870523021719839970182258200923688993933897207374674231548844015901040882720833482926007536332990693464463747694997301737470263949738786397094958948089233342921574879149215980109832832472685408027603412261309393870609529467168884869496940548824770087770915330962067492677168608641741874220805261698815883089532768760661142646654127900946956037765647822953011068057231508706376353809134227751508192733347014982148500970909361754152645858222140338189835915133928514351174629380883813044524760241630131763883224300970840589776710944349917745885044681652073325311716542701782990136613475328276704297512729169980808506193674932500437791930022958205942121622412866603414138971632293341577458470770887459541324589479477796326598345226365313888517517466315820656177464336808619040331239430319456541971253350330540414461082257579446265492063268318374823709764296920837125653767474072963115938134590917037776753637718905845063316471562580722231363555044545542905515875848744802463653659834897651955651605533025322531549327238760311751251287069098450968174562912150562771217486713462259086677594602773369980623215552871565903934700724342956484708553071494873514359089040756764002040186615803230343531701038860377338797933843400823431992701868187467709779989956065511824723842684522210839043102166298233126989042222286644272199214961200918543491104055199801361112405195841128282324888755716208856655070021540050769740223953100768281104885031746622458613576306071885778599254257957760178584120897318892815578191609236602788643122491286468450435070086994225265292310548844213010705752465616256491653370850271595948342456129406205555647864753590528318696787530964237845061408468348512188668380223592332834249948088414274204821291028639419353307411561510017025247047436262042225701328487295546207865655892347376807231606166734819189182071909657123818652136825554810971465854338263934289904219074655053265658231257710160853526308990539624554276902938493247796374705249103353902462602454981289000591166339662298994794922570808393006449139751580870067044509166680365659198705357567458611227178330141610180976392592970807358632270104302405076596460361257152607336981724690635197621948075315938650404237829060409896204724487377904970787555445521441158269809291157151703658241166630035342941317374369621255696592466822162333729619669787129034487122213035862803507315807099405647054596726030195433601167465614282945346471725983121539378165334297795337903698974329451379051907455021069846405459813285989577040817272681115392428788937794309006103043135081751770978780034050943696186125124176222604400782646739424596966738376654509393045568006169070491682512073392019613838159451314430102509758016193040908635796704717385116564483279888934111508731910731641388023670037885253206945547674701399382189305437721065613437679769641529879127959519660616138324557514549293069267306722018841020997660059985903573497274414818263571009108777738849814857631809947203890665860028101726311747605589540718986533411414040749279458447686416734707514714610274921942682598240710948378164849431590149126079204712120936846712079885631117913073873038859668059421414692552165553617743752491624197696244416761888076303663442965413404313203568757995800056742360741793380360642083222165461613543669899830586836459619640351269533633164203153292985846847918414700987339947209731473446327690483192687449363377417764770193502607251263633472444099504404375587483984953307601955986193094110419773061136971661177849699479029224105887021620397379819302204971315490918314903060489876604146904997571962652485163239335742528806750098681039550519895141856632525676863635546601754111511657234092824565462049012585278431601249264991518305837977172978778824202123494629824473024433401064153686431097470012392608180349199857773752474904184586391718370196813016870252395879385848993302740858277313934624683391269514457664225993556213426381952188726336371592491488975241293073062236938512421990589298942175288419369479936417657706487522301270385223522670377458403057162213564717931030807851019938370143940515990015879849785333049490030132196623679886649941185905238274040028997858740502682651795860609658521803056890996919502675014331083498402603167711030388972443747420074071645860200318832092546170564190334219072714062576185588989540679030200597005559740473993823936470646148076346295408389801706894591547161389843189796173125995630542460744861034031632452155001972658793764324909729986061094435343448981190638070551029531146418273242403840097043008838300785884247301965487393619530583411925572126113399445444039425786054084313933700693734050925479025078486936554522345915927663355036772313536200859370741095229115893354098523455310678476622622583171265603864114683285892379749917926722444488647857660131102909844739509458223241455830593626981293474753270396679367706425539153957892227816671043086864467238296697560655377217124897423335348844238903562378821638271354763344806440872499348816293349477444037607231827520586592998878306728097465135067964069774962819338816195808738952365060642079658324007195962523654213119924609857113951254861504760409659487744935189193097406972305851490022074866869263153240201754772249666496880284015285296803950382241386537499625212917450887320500978442505777023839582283937878661278281248351810824741251547895964107655402347816711582839677233547046079953774158297438483918440191728786627566555694866142115942579886500366581776377315877653428015358412171592695476212366926323411619866843090459112198630801610168070521781844631886112396728415279066230049494392896511510823431693975669310270749861140217778726835563406236949225053685912183890760891919026034061321087575905084687053615017239225232283907275008735275188112240960892559835792041623832694831470947148474861042824299297514267267439642140342061344983801814091042208597196385400204734735730091737112939596760713455036450666423640151420011212683209009806481441454721376117624351791807478411070501470221821563896946602772555240396836762196024224934579906734095237653725404450470633965766946839364199102748657900290821578322123991918491989323107938443765026359520218157208201389671366288168595133225066480178198926074511994531533761620398641825923954684826120031548568435197884979135122426508352014539443444345407980569342677389570327409512178385070911376452143146901819911966358034565240258033031746593231342111204244017986530540651686788076918827283110555800030400612127236334189286556775928807000803657078416775719260222935776132350147627182869604897974052333545548583374970200834573279863938721160088395008261663524822963978419513369602741006363434479146016621550438380470072456164823353634092337726456533291565460321225185779377907576220927805996152911898283554390607555620062936594467058722312893526032995918072877956977589426876249599855900848362249065436792961125059213636488051138594573963808834607635019706438989826313539011293143779669776002507163584349631295226408782743307960407886904155239677062696993137714597375443655609287591228222545047235876140494190495670802619742914408362738213019506947206603818036438124607239981873907519996678710323651880178027061524259059243315658982759678359919845006264292151135372254566389638799965570346280188261227310455953762757431596981860271651130550753530591025861726815132478533685361446965054062177270650659681723045832449754267444271970703306063293949592760105059824944689686481189885094130291543838953051431420092249842511329599381721967891542410659601981889317554506943221946864914024555928655831107602761178336197326216236346042163720424274527872007743944316000003471484194934945582914921042795335330881404353678957498204880524868207619955438952713900575034662573381002431876228233956879392574151556261671172627239870264522830066831618732743230291757490033786516897490303082663844814756708034368982609520814499947241284907574376402077867795946592544710752536185534964355294452481816783649215131246937673772538823999076145850034196673859727224581842352781869418435986175343149361482061226128110525546587880993787159762438560447765235179844225405993662969204906830880831876984379908196198786196399634568636785630391488368424550994874924361565857115859944833652247878082058338680980233438280787376947764801019730309736604520653278475502432480426646916014146555234310757566938949885734938690851183657356851989905387007201024785394772493050462015901771515801958744651194197139651134781215387138794380137997859283807108183685962023903426366721533861067246961966813757879388974846470057888525311987929862958587715816273767882583912548686015888027588302919360822851391803750258207180374807086002231659977211494156236909152281035990742365205282734896905715535857311705337713892492864656972815223071624850156278058269674862160688288748943887218710631687715866462590206422290589670366745265119519330212992287577572441175332767356565526560484243834160045242971858219765939258336521059752973710016224975431063032466362612166104518211548912488637884515414755100898585528196203835437068727196758503944092853326989475454943844032331494522700584704564119130670843650495284799901062231611841974732738725225470115546993961312295633386572570139580266381527937380813592303090556575872359984931160630857340827630120718874672822161126700507481244939354195648675755277061194770697204581259608010738258334432200377642445215930072349225312271260885049207613591125397410030363639542408734355297761397700261826751284141417388429143781110665023340550042645555526446534419603816422738366727542888306204810185588500477061103497543510421214250283076928740556617066794942821652494856239332678589432265972889359848687759843648201461016348687834622531029013678630408354290882202720677890890242301476612661288256051978635334982399910314168852380134232701020468528463645909775098552462659096398738523276012164578254896230668183091514444251358619447919054227152846409862425523683198406504573799021469912383263126259615773619451161311919662857950995588296798500730906558930599056631178561216959961213599088681758742714594987488867232039665717424818575905688678452494570098883316283404441285374368003027947041572245514763128094326379258904433532855796766771575664660022615293651793251213200921016307776452075695447725576134518580719267413588024354044309636530368777122628708978970121851515301824855308204605082194534900018379834323209803487592990252875732954859287780378749297606524938513916146158971190251815195416858875195359017511075790915753930526686984239663365585650921202390901806052560401860008498760070896409546846891179489244129022219617552608241206965606916649860240730913712574872409775036908025831928020132469239008951138645855229390718941749038521128560112735289201250537545868566298888815121444502204304326517201064649112727112664005119835691800669938768345619138876440431501432524117168425509949397727441722443913657573406486338106629311922352589462015235482715424984134079907021881764364881076482309559572876145979447090701403536608324877682062214723398980525616649114321985457875626272977446134026922088655906941658487028561394985713384770113554990913525267119997488640190017140944808857235373911116164867037562830346539117998516557095667651012256071915734098757756739470320210327348462745149777612125054956092237116232195121801697695595283559942882724780493480372301610098027351753938713056112464819834678237976842776705430689092972995875698387668124999238855751911106104142607759885384813458543412394710587083144208566905459642026615173121325323332064161147628635022844867069239155779429840837905068879843850559319362225887704346660738251421312684236731393989457882209223257804880721991770823747347771710584722614424321017574385546753347586274540383713134305819907511128264655341658050444628211150504183837628981577364792495814786929540540458847778436180104235573014885382749218414920303649848200529118383515493845914623312268162877947826104042333037331523527027766541001056223053213223496000413003995176469021191260612974885362876321761136721179998052693126694832938012954318317443368324938396763236360994386210287964826796470051724276528626159949323398122709678629018096841360813671145576222299483712817354430282243443760240431790538718398464641237295218919037010711743385278351730134174779644064225235453848036398739414036777508170438569753849888145647104282856635330572655390782213401473619006677094887479840607771702895651480736186061749231871009438707519233806277819786122310647190053815602394610678905137057562785494057247725352581570980659985207729340807561351569547261253760376207634092597869367978903298829857979830008025571584343414178103771201156731317639030897336017437518238171137677644370337680588380865026161458239225271788142985619236033916781169660410709789132306349564569500832277086341140341651130744104665755119180903200396882401936678487025463780771960197498137775739809609582595590259949637127647886153031711251485760679518057862249901297258068913889570257680011981908474769263360942706614333362244734204642112234390353879858415266119544427054361105965563508777238124769572530658547897965870076932546129784662412587204798187716035549524375272565283808903700800221554954644236489649096313462981336889062175794182493424821502029416822114901731488191560348353586072230156120972489074286303395655038557938193731344799285583738972829104577988778200745651002451215967225444770119599908543862973699522287365632958560209758098701878720607426739491880599673192290670294260747403011498845938860935306738307292091933952234345270802314919510051866766631103486799740523366136549762895842708089319659022225108828849296869029795125653367759186184780691414794677589168768019418536673026146254451255865494736468023157811076183093696528016157941922541996861157611627651128366767159874812233313832860833147987049793026100681627338203149510187288330084448358748752160077753744798754440564080240257193964005488216971682642431969088598514989275100393761010981542692248632289077021188986886127855744668114581938784391406066734862143536274801860686101457978763279385041943513853688112983911315182985501333704673560166669336219117453571751359572980820383125727541431815594288439989823879519432172830849676858509306004310948359464347785762137599298191492717144466166586789186465204351061567378409678783117178355507610012639304060869996556541180414748100603261834123977925689019667619262411911380935087193604342468768945498431168691663320124581456209817762455505213698625175892504822550720693779808950563828096270756145751791701861957610742389017788322715102128488919750875058428639270522209335930816300264712101255811055962927936004225505725889890887697987966829607190562966758209822694741303343402253856626456192693121696488901721977567866020878454426767564410370201567784586729438937637013866162010706628902567029756181766429871389357789659718316284337613788169289067917959929386983154219156361023312250672248224172536653614508506043599353228053617487254953883226170903056404443768773432411762842982018173216578597940014537836964665565988872205502377353416378878970165203005132509229321408909133462423676063216641300880651459688384734495786629101854516798802663474195493809929392947965849574976480174904088871547316952039378263979898737547829503429700396157825258587805973591811256185847455662989509561928315957961505667578234099814044046237510642901523492357181172224375198448197251337196261990854375812503220637533477920057483827326409675994126647366192054546256795092159658604052341893071227860376314309250247190822190706939966697919890105656112272823155848819864571622705465954252777290537143925312302912562934607292228963632394383180641496142917166514439218608545826198179673769663142255761541672945214513536236607994486125791581222773415682198044929718978279817379081572962936010474991334114545185487239657615069716680463084245695138015321998858027465874804109618495450940724446761451036664392383284277165525938384916972587154525543785923339548027546458229515367092014588448604246757841067431072167368346216684136219933604631784051236945268144347733403858010627709374547086286629648933063929833321703409785854342487671711227614518037639904649607360776296096465035929440303275646091850000364794533827619057576379890928955721622505692535493592573391406619069436899068762499209787680574386169105866366839867241476630085804664208094885757592737283694300941765520271223815135884110674198129184061088023130878642999170817633678165588141226800560994269625057629776360202236404320422528731495887986995788985597866565439462413059031950895922605996309925632058455895692873036498390753840236550710624372845412296980375251412558262726639246035634570786170130933563577894290284195663130052582412428566565995743745049886639999763877754921467041137432661914127319557659288643537770625140137532894353804144630732669021327707930449641752782256039364289437953757672238061860209268068330695542635392583554604262164953054291730734796402886401372069346420903816218851382909391000209004272142494480010297080011916127990564132630509964047396501701316393557940553291094524554342222257798752104845957660211609596689342440499571147761353750402154220186123294750298055342619376767391270188037290684924999031356285824599015775959221879645172069049304491683083911802749320786822183520066816220741167849176853172050702141768228403485170775389248601867532266599791641087899255691934789654936840542526073864886815826432060288749038418678107087939505576579485834341258887769475560368493571084830416459433274230850491427176095606549411647618159070523730932239863921017592348398264434753265123435531225105218782309697462187837066287935105274684814658018361406237010156948981213335395040304781958530845784270428962897083811586723346353072044920239055115937533305658911451386305351309190505570143577988554697209744266563945851998855282631507300840629171032173402848351929333160821905922793261930643946309222380078534555586706548579966088425677535887448169885806884119661295723327757662039824853829210799975426926088255140212295827401706631957682362104465163248174143057338389702506040121578801098165849580288008401968042315888847739843539739631574285381528750994831377358397615938718296764268197291101252020465953165427541398049625718247888961841508141980136792251440416029447570250221519956642016296529934412691170044396178784609460620352225291501198161044724272163340822517999226025028572089565261397623146165108740841439568374369712245828960811951676608553094786390705626653733020064530039652324696256224240218293953251047963529375167894692075238792695508194981891131957744740458233670495094574162779686436382678977851555024273947890556447708855481111496809921534778427502596728869825784987204771596887758361776437434531874061248304462249673822129169651158206133470931141542309305409180813361662650770815166930123250548934994627684083340128659532355094851189156465209036244671050950952179083029700988873375792811099132493453200021054459616231867784092294362120187808645227063901332638474910984224343836311545217272808452580050020729974489076640264059710771156968211911396404786106708433374149523755136653480175253974878955178059335996124609988095716073619447754704330890311566730201259636981279615051309835096447773776699098435297997832376914876512609493247247170941143598343730218091207064480976292584216047039317014814865100547750678531774950954050258236597917397750335970312605939826881548483527901663581959127257576606406544451774711202399907586136724872013144908799606248451114695564752558379929312147605565199530114850580330149405586929779714948252061376736944375561242188173263420315071235745253857476593243589850860977154571824748755031554695987759125086752837238307281422173639585634224897099249106431520739041391720642494488878630347445173620969816347095620009680732143675807450360111771671202123917635058442443540042876178834500775879609839295342028377663628717063495525909433363858776440065174810869139314090714981763053802617104425661368886990191277687991186315883340006697616411125429315969910593485454609969161687494998319528035127424882995759559669747027298852409572986084049242803070910557696448854191397602124409720372840342202272611475677674117219821068415686754225812263840848197872963692049130476464323280706891154643604382438804499428514924670043831422067298912563512388469991333751927114506355650576659449289274397596405852626624873931750869060679481183232439880320229852265895023593885404496571516158718662588056971164603447075808651496539157420664792313858135277573081066742910962981054624299811809804452840798951781796617267342697268021067022610770900740540873817231998339130357394864511681001709073546381792980466636662630825327585013969894631175744177890766409867826678146061114099428947172360840845675503864695992265627301691578247202203955968558466831625378281575360326005562469162541451721079878427718624113805669734558666463836345184875935752533153503289288071401918035099393864348386670692266666471230772768755017717434665374305595159490012394844052328343320880905201497210336315465851558100898918410472329840668933457778842067824667461564604052655559561081375948791718308318183006608650725962252725563265217013219046859001378564190840895722737645720785758538134684612876163073150316566831234670726900611688689888383172552383695844122077693006439797039131242286307271949252476881387776165587786335079730185883201160859695096715137216622090737585746741430907693551628361481720138760005384102089488580295889164663920505715489466775212731849194449879733560578064724999490394000992548969455026164516040112804687401513153866122869329933019939147737523983596271128469141657325538270147825509187681897249288874224021737177214343325502402415545955766580327860317847563820473564529593195811978902522151189616753661511892764521571368398901787362715629739431710971779064398228126121760829527983495801342283725811847218887412970115426403465327522746501833608640744059638273651878061791838574777224926801283091513449897967349413241396034239287716207045239142482397853881616917017855943594494170392287316818207033082003637584640459105237431214785689240813551279294236951749559854259634841828004147907944986710314422781304725089321091043768523377073945618322971347217575573597894864640926197365678024413720390710228233143617845158927447757099036314913210404596865971188146160057359699788098892903593904341947499430811251357074838836526071563544865534613826448340713014091852673470175310832344704769765811746556653731127156312096068497665310955726679972646280384343850529139782125003714260533621133859506411881739866133713045299740058946447232520634305311087387537646697980796504478545625118736557221954243222066072552357581029463380634220161853786874352208102594405509849563687952511154905906613515866710284707132535710874842248056877092650336771407863405406684002379661359279429017363633270708315066234927440486646709540937259605942513334740802617897999246031755573511591298785071946599712271418819722595887256989917273641922667146130491334544166104525058165026740329634240943171005574659731085253244266793494698736342895873037464936933663173960840231517520228452602993886123319342397619475224228897603693360167632872643427343566907471666477380555945800815960606193604663870592623151883720961494397844373458439465506423717782485672886468310326030727336000164320076489886423218832315816885085296245143198387554617589777348545831212347338211679419900494318135234710102433077914983323612925878524180669024562385217015283884593774700062427884986173730775330459352660965774243090248106181089831000869829282043444753416813082595606580090759136229703197270299745857228406667762402632810121972544639418924594874620943173034873392508735278757506945883535720008781678853221841838850012664740533002413433216061728273134481528175071687716372040926791750863247955528666133637229762469790757169906092646594903114195859888960869196447503486601884241305998389080814471583278784024965085686642686197437943115849762050663355100595871472823043452468530234498589407460507964454805719225898391414764564940180946936554216479691036116859834741935036825107488911514398528976837111454302171694321413790168601257171723613362242117851040654659002229457341912557249382940721216271259165682832296711115971543135770815167740869409512181245313226061664389593756569076744807001629863977558213438818995853765548996167088851797573216012971814193765944640304349066939975592594705929354075004197765760398398509929972378854703765194308823354523917398132045061816771183542570763202930853227106678138847674451282494181533755402209096472946732223697298339578685564229871292233311449043733829610881270317362943020584773625629518390147556051347309913220518469466745613354924366704842607213510064058968787201636840581652463504800534469966907936139203158509727746122662884794267038933283181007950593511188578773588935604367637589309809504737539323820997705050089013350280837871908528235970514393648968826563883809729321480671387345739543309789378935831429723735402663900158916446903273504311499123914196257290263656760146614022984593619032006020252382761130182173984279863792444066637279570140061909659222631975616728225793728715963569836773522483486849483710135445628231486927034069739293734058990808182044781764575780489051847880343114416997150872412931263156692931914785875400892899018768681632398895131406669813415303474829965400216516863591585615629329837023047040109655566250637799776339620274652277848850650817607499898315569346678635436542069574831016075348615622574001754402642800969290623431430490458564106147695935393283398835652401198969670990205354695476071450022036536813768118057213608044548932912062634463727439468338641246051716664290185198297334609165478142841020346762019431876350140564019385663961290349932257741352866162796129369676071167900382027434482699526192651436465053998671845968639746288538318607527907797382216234121682655422586415616129509072544311027627418025333668697163935608516844051105828805839209291092361864283536979048904147784159560426150403290638620140325799993989799175516480031071347177778659864691697536697873307689416916872355553454762211616323807753193065230472594126828523162320943068005366777514453344634852663992337270192669473814090809298565414797844151998930034783204875959951797159406572461602141901797119444565332312505608158127650792184524865592162598864654419976733172917856091165421090663511705568409289464212469077704702148658382630521861797924343618918325520591031039241695983693455298301990304600343406744255121200393295824910162087365062035824698182011747764363930432433555846855056522968736918504518191348063204686630940870939747345741900943301484142687171353153819006560132703611751127551285068471803545040122002957637281113737410009517606813187396477511297495902220136786680672021559473559466546417762127284969318276430912802713085448570637051776644372334791865873779949855064218253318174850671682299083297717249760013376754989957797234567844231166019443763008707323816256380324113370051944366588094484239948976373415430657003139366672502516446049597822773041220693704677325436725313783353110385717301943198537827775380814280491363998591488073099124833164668574890376772093601503966609690097187304361297887859391344799138396803001562542103901872379215130956473650305591590256950068310701475565218461901643748443470422480959283624420152675782957651487801273156533145093414607708114462379779116941099726311717266197025225155198398115511481220929957588741950258382299507157063975201364981976792676233242225952678249887708252631439617981940407099910673862517140942235727262312008070920982434247813678199654371468727765315524275188102986468391455026959895798881502425732164346662140792774026733938421791965480980385660975880030731324687016657675525876083630936727030329844353875887435612358921127915144023890803836555570619075663022379893608265753509412029640003215735316589781960707468937648618580394724640827395432966395396306351272353902882487187481021240126531887736741048542863659325249446867134522142564772379639537639356077169530763821552945513610640734870292220092022632745764444018489674477524676981643275842241003858716156473147170723747586136930069689093028825785129591544179415072313724025915767237940067293252436844545181225764796021870096485300939983575515852596720820049507471601387359223918620024969723609699768748613216522090576502476898007484203866342662920367109243990611464651026184913491327794959295868338630392661857371734666192529483316972667379895380476233172538014384980522104015325028456170236548730660153744333610460165231253118837664526195699554286328184811984103849075946580223509462765802260451792391078520722052877176812738245737565600467846293282944320182019543715444257387620473767366112060779353267702428159082415477769720545384636078368577673175342129356051747331928938074719519883206670628067228657981456652632087105505103997011600267618888029054862338158889295537406202825339693640693822000452392030224708260144274768482067275829557899357379387968536508363532560481428357028186103013156551811620554556782991380708307087080731813415563171586942834505361890014146088438925905507327527711177302986498452992815288024935403796180588477755939501370663039887360477810433465612361407795715063745730718695223118204136549050790548781403459183954435955426001617438867615642140087122231249552740337715294182428226458351786596419657292972532879384985025223731279661662412763596775976320603475899536937057728492032193207486632937818508231862239645380625379438877441415137536461566897335868015523037649990586941875102415430306037659188080987162266771445632705912745114711391694116131903723476310381697818886931843970395549885357968625883191262077749487324584690785239661591417176382362989056342163279226038891430423531750699389547772031435240239015760945747730932741717607749273414351627647534797759546749714203272768375244099985696806155078920029736696173225719954984013434946580355949648749609795561618501216094506803242045221068436115872778560809787386984686365008256529042237997787417268702218768449747479754614544835806127166701351872461170554687037017916720360049134652885944796549651251250007017918972233736022677628706288177968897542868725611223843809102600099286079629969609806974466221980397386722602850718686592577276061256773473132756148116440130174805702209723028618920654827660022404770652613132857635616451432887087311635099338178891699320784996303690600474392309391557605789847246480292574944812533018506054948461207050332829650915010892147614953235811677567888115454817681140839527493991058976705517756229379008917494680046401271166404967561483624834327836297802511806428420586525200280214284339175465461672082285514666109405136103113461098920665473303309652453354982293877086581045479503333671322920686989355877630394620763556025275774274873257831063230225743207558812655950285907057992739099087334934050552038019666393770348680948429383938957912196839067451440995072312160455905220404187321911164675362254471185766118649083681258495420941086484648633167709603782888354228554663081421918552264239370530182180562452189267869271781963859935703168835690236029304638702793011489942921834674425776166083347322538687467030292149807646391544828508651179187478629326848363310087376282614806942881923032098999250480041975290029061698177676679339647230342549131304014935399576879777730597958580560362152535723521462719839219141224850172420861926333856976526412735238294894070001462688174342800729346373780339875931958497107479455245439056882251935715920261046609178905941709713934705638656376682258984489484137717427150390722939883333754227169422416004381782435831624292815082846485644559245136023539551383947319821887428111757320964459762593515175721640365666521494231975785125916198907863650477052840743838306532569815430500051400673062315978700291790794850587844062408476041383322108122341778566584906761856482946493785050208853275957671620108068101584698515676613256953908977144626326287696671365684801369743053363199439513917352084546611230296146157094539775932619615213441112880027753374824806358415571447205088519778587086907287112188566630340222356326962882142541693276656074642708161235838727873441177681697565713941237728396236660831716812121400450314945204046501685737247300120529326006695524862192158595485307852271347518547286916273612851232952199531236806607592782589766952107894770773612439681330909551861955947158695014815780290633742286700644168476746231365949435279171162551440965724320773254025339811195142369466668015674612277970885027394763732123263428831842514933903045015226907728866439448770752957270394401914078588498991132049174103233586535209266193530345225939395663801898069640512466893927710953953074868730533170198471111806765717017741878973148993063115262294752724501354728966193629876421611121478214008719867943936534307984021155503653664067279274872321876028697492469230609476523025111033595008133158476953520817137418970631900057246908161319501391040924274943534609940921545953799988238759834246843723741704790782831091406766071316427291792162584026725238576632999552962187702894015989179801297393383055896659936234665376206233878099371466424825045206039022217374525223061143187440179435186625688184827503756610536903186472473449228882341037556973298901551583309750574017902903860656265154636352774668881676237770544338351892702342627211726571724290705544505941701781797523432733279459243348337870761482997124697116288880440247019649408540015575165630740756945430992047825780523262598789573650597381449622706548274804322273543307923702914544448680855748549276839105209568995503253626418364937373531695865216339983474073876700677193852019670984716661334929460412121722236255119196139069583730151134284566335879485615004891557403757480403166361728310381541524901407828976409291085765384714402864272173299096958178856486838213145659527202885477740473347241261588383614647286108709904496523840527203306931491726131610444045569176242297671114797117908572828949240720548139441373342597849210274654499036976039545317000942841386304063335680705458944103287675038929136764888074530596012568495199507897975380667153081901505100307523707835651175294273461263706103974215540808884329502351664755647343729404446650621822080758104636050767521435872546280010653559259005161607500295034383261003487613286674792588663960606152315655010738690251518286826323196824097442268352172971746500579933493677584339771998758730094432438784653542472784926451678691894118920064733756429420375853226579103310674180600048294574213941868537730391666691446638100136611123955404522414571829773101391444302519009782867657359709269625296409533492971688081793704744425566870848919190292725040852099033505949449060445116600059251806103777567719943320106166038609852130766738209267458487872957001387597160969470997537144683916866494210576627665159534432746743877345103524771009803003933461359999093184590755713422946897270476838879137587233505968373222065218382383533579790934896870608744634813347971637093238313243656383676770324511717433862171756827494196629465389692103982296904622328875983897374999095370233981261517089217890928967791107160190815225913883354444070008499782501073886632911519312966436125693843503490430201257192544719129779150513952395246359889181490929468583630001064232135229391570435605741952935687120627197878718716570327509154152562026442913717251349195660253456998380124234798639719982257477631824589046616221027265005922976510544426678464365922440281059673171734667677440203562571089143485496059240279477661393317530933871538559224377380119919508262614225586557406012711236848177654117476491806687709731732948167661726293303412769727457506584413946401692311631979219417197854027413793599058013919880879850521048325729049899568669295066774140541119083939935961510476238918517243702736202486450837348893893918410310299537846365103018838895918240564333347255391268218389888474358486689648688947938087291249539679655040694362613804565459203700959941131302270912074748184160155134267009337605495450677252139419238075986366877915499497610334866011647272990105157334981931881307308295171332814061351418580254485280725823980080298564086646893192523241252931771065013184903271581389309692196346018194397387321944408209282855236627076990032911435871655371121218242137915323753610939577677853030507080766202148005163829683667772484723997153436577431537042990092818770206173836223349927506490659617130393304047534448178760953561217694457060217878489356374185902490475263267521611735635890576288764052095218268497882909015617392126313131854349106617165601280659778233316877140222729093589884780025224464045871259367464070418448844796605837160501852732348759590999760713999818073954278838816027194581957826043191028725979033195878743743780213288035391689734421358673132084903484337404371591952114264882813710941397525030174247850027788100105719614194025586573216918659342643304879003154877003575805247966575557874858618970198673789727404340761455474930590541404360623942046041826048356837950347114331663478533436472873418192490607033496076218714881519848561797813890676265551103432235261061709914932796000402782933538088555230379545539228037214618247817842897761709212335674438979159758176842913475053973418352148651479650679597231839239433847006240024271961724948302989426159550318559604486412741932056999187060215668217143478979429012030965104529734510243374226771135659823664816623646028554949455627887371515455057835837963336197978686075405827637835653562972714733642787166171229205503725510273456785844248845655199475529594902898445745675855942008361395097806293641458031950934357677311538376881630957889061644850530958444930818215706914765840635623399199001509024383514358018944654849367272899128439291333108226236515258584047453741780638603406694868150618552963944070688641442297888517309982637610566785289896794142895117882166996720225589158281080605436456435827586414045321292824939532900101251529584350055942993834274438013403493100722713132982856288483791576702830240430289600694251768809935310138335722647926636868132297582192587637717555490359593913772999041883643115693183662931521400325373249687446732267480480063258714660884380208593514342525665289855937806380423518589470884319680350361117990212761069688482968299175120584793367006541725028774472523337305134982554806228676723502214970159781807041239881665245527183986350310346050399775153084210988650583684047176027726969228535953402989037697146664732045486144568339254788560705814955129761014474563226469944306691133591054919418573769887563943731189835476612717163604709063132722001578615282278054816877605352216351127664056398857794756508603432695913016595402425642293383095968497487196977044128458679072653724988972080550643608804680991605860989740184737335508085907591967509240230839807657313872515532762426999773957377236030513061197752222314147400610560907731893529256927584146721046257913065486643442849335493831129543579904163791212403510129817919157149034075566357338882959972607666187992206832567717093527423234992067683094316404217288556457700143015640320154657375506264759215947919917442851821195936960040020048141177705591213185922690272799970126161249174432744511789571866520722963668741461541317442341543639218747155336198232194561781224411125742558100065860566475206855030226321416552499711637584798629835885493395112372908196677076353066207032599750479281994709316015377828875946255989358894582874329235129810647841373513846737975216509950152983422948572343266589531229579119441569340551573903914944014697157403761684713284250973799875972999793013353542914031460991905930123546896088086465765227794812690760652731991009986314505970275854658157267774456387323390758087706080964214157172401931394720593023424744836616709146265082504134465864789919016902630406620603106779346939748287951541137726414141753556922349865305736931769718466353694109794664765679999641844838053917641623013645127463274573556776067612591545770751782960730201630497333962118559091743144740545035550876030591472723832200824962220389948508636380003942202433571381223129006863590201370007237898184780455967126708788851429184909210317977313064230078131358468548214504993662530886029939404785460097971956866881276592906515241511957105643565102557148241620897162143640660843330697808523457122272912781199688672479524666651196190291104257217444944044552970537883967784860585863477940581659335044328461456270198786312756305134843619482891147345197631886458784196310844869035540993598652889374804040868589167384953418697773128887639915220640425480368905352173470535689562627984527475936365301729113558115153159275225527875766928374955512612636525948390983853878203298280302113325672793844823456456935287789306891178269587168029698584561901075011905893818144463862827303273166439706087562725441253621019733585124670833816045469482442200727759862190964230209849913186938538687130347704427284452178422226422164625899720130226591466959851876298024143593241409181095172707094058666112930735075303328576271507697014074935304059416646440261156695823610067167116073903916614858929433229278483623445647749037163170822624966592264201602308844940003211610909614026407009655775684744543641910238608651555771363774091990501290676318111299912889755081263620204737108640446853963192664637391948391610253162323190376122129630668103100081907338147471042665823496563372371238937990590354403867806879581657645543594179085584796454839116530308607096937707973025379715871495458662780376871725786459376592196885902365740202879894261789334031234928280734801799494585680112234652318256114567987783281916776895364658681443433969860310076809131897881338775472561851197335479685124228748912053494477924346234855107250368963254895404867517166152368455129774138037353057873951707272656077341192709278915364145116690959159930357804658155541413123188253086121640312130853482249693293450029851943874125723535741312619102905030469659121180633394153894869370508250351796876005671966084720732305039056572573578217387460177798933019767258806999609508674473799251518056721283089603989692326325685635457742894713380690765160260523449096223695922887445747342952399395725566502242110119832356752372758957798007127570666504618501696178392028210360103928975959879628726112277170261966530795199213528018806387882015336578941298766823321143608669339388308669203533195500718684018474499358527051565459904633323216374327489897506173852543463305570144500240108993801570229913963920071939228936620614305875233575601286847138275645185533109082717779783713113572499677078579734009725791886346488567388808194053763680798463990487176946358855088464659259314695939927623807862556606575001837109972827902470826079324461304533124721543451290274015623897507431670103157126915286878673513974386880635204216327474181941179217730888201291649046599044969036055688093919142174685983476791608500910265979394705264090117026579580789301783525213012399569340829924232260036386482949591047947124325445029485500433751495497734219934823973106860482837116549653123188871826491733257236927720815001221102337624135838753096121275949004915049364820236991429418870726008515849699726420878750902567312102799663327051314019516415919402866717995455880059721412718766954783761350926248256586170325180343526032987003709811827778270972067230680967411359172661068796984319332448732860322451737315871744346849977732453345233324071280255331232350349131310212962321220695622572593791045980877805710536952272559497521720802729401805591829603766097473721849936149034357103261695024950840068381136329144489947408874266970845561448086233644013382959593239257969721080616747178004645659354235928874408119728370438397058278509895428200358060209451571150813883938991779646468629904700767613791219166825144144600434916084755702087182211458187874838937273437228206309857136642447794097201013129288838437898975244083541453819774374023359065131620143663033694531319918796480988661120770483804027790362084897545317080668729265265329926592119455710569625780667251210835240667614712102518221984835459208051299989219955161094510490195853633449430869746802707640827643761468680082125542808575174030422418097833288642498995504459084397708082134930130900918541873092482753224192510415287195532060184215869372559382273864364802462401045759030848674021512242685550552218528929624845814482556904099759055301637348779373530501030906931555485808145667018568279562803059315726323244251574737926129414260092177244405116852723212867560937048272705409054288803512505885221576475825948945514075209907569477102901365838782559356025708810212713921035602034965136383177857692811705933220452194296208988457447752468688518108968825831495788273881937333659776678139497475914840931511528462878532784594322998826465387375573907410046145571295909270490041319447705355678458848182395363927375624358578849930813830737452379967820327714675133256701650110729382407047758897427321731368351839025726006117358882045395449461048885503942685263511974187485256965027733224145665801990533964355916141886477761554297186177894509676644291484250118234965952613705331597883832136918658035070260527904665692742487303743640937850747318851549284702816550763499130525702580807890639051978192976637676457931469697003493130467760448921842588757425120530909563065342707225114438074910076319144203081013614612305239654122327587059583228053321776129005862146963337486371706703280296472206361568810267511615957582941230259493225082868137366906976692667508520937644837311476912399687196117178099883813101829069665246894138774118613697401394764276386783731696759792348193244075809120422619237760265874011153394547280450018785123585186331900305990813223841903832375398991600770980230412097096762526474098548592771877987726839768720709809946120782196084177350889946702307874815746814967508742503122571314908424290814302119524537181976811972934815537290500616869526719669791346347213651602563168745059163091954587166155699422432097236388791206117417347415713347675624571662791594885770823721659051585139704056071535325117583222452585314448277322516315712197149844755998767932099542234509587603957707576796681661537935827775387752694118039723424875483609645948914084061685762384452809950037262459713506181205942926525036753280327178002054791383836487761257347163446885360245067924426022351758982451989886175673608890147326833691670010726194498927933628394189750430464318462635352154656626786748274344953712010210378738767456099100196320860548880000740776651883082210816047498770691277597913653305201089658048856867088087704045236711726031043006593853750915887048669334242185549659639510219273243173314716340447410736391689724462569680828633615826585653181753388413199269467079455066279721718970062570182490785885545238060010574186328964883337062658866009092331722243130587094464624347360155198678712739922451800066913735253324256834390019542924731500759198979733600058783109398200094263429974121876713280056720562683191124471570056126967203481969184514347274449619362713823019093351638377333320020077722196301351008258144786521424887283466332613558733530501434186877493583884241835822803084748409741582138586846301831750026411485959722155980525288506087174795567675328803389189613029731676666199731558862132487301984298320525883397038775154069431126210931111429174761404154371260843496740122627286126532044383046056511245895742021413990372245277911059485407135454135438339940934578589705587929618292943707774921997694446919034237217649104293153829256191793355035272179940080503711391541243179218117746747565702843570933728172232627521321043973733506978326949701129356044915589436436871488039255930781159253083949754005146283798427642422765852478124334513248306035030799010959038515410527314520467265854246521538203886260217404044968049635357498393631010421164218848366910661947687773465619486283261749863940399082528100004295884413272428551129536394948465959545314925602059855617323875838463439683967757159631749995843844665942188841407764840383947341750373198687459169617410854783564937839340582188599832408038053954607726293447170631494884589362037053407446265366102158207348133453635719625481177972644131748337150835606320225621948568145491014253083592731591148952843797450558594208789679528353621947909000385062340989809688979903361199926261660173950666592934468455099292129313893499921498221479819964233696602508784206422707377777946792533397500292986014969807029852643357756246469484840307002720544557085458971493813735718791828673096816961672083415913872480853663864311268648971617392886440142995351739698270779717930007245488808510418667882327262075007232947718232294910149577000186656673715347561039177039262934801983881572389319909310419692313670274641892070609586758659186300592733105220230492381708703343232104076227406173045839358539245564970942795589094048593982708373549158868131369713593542427442382537253564382773686177719119163732708912452290434252257057619515725853586261350485502437129883877522956039657835569840133569566624282317046981690166409026554495242970274008014966786830776772128909131124484272482034721534447401475439433771582975514608516394801066604808784663940917953724432603709929073713908168971717175745137751957067013767046334976122123754422128474888412591595243287313348032746240934891115621509946703055314605667831726671310876874056458760528907370169070473288767638180657560848971159089689621677569256155502997179947758433258869050288777840584283829901567400604920735253929561737469360827632443962669032174960482428313457182651010888081796258542679241859734694679628252138097582229490601092802973856817449162695393520003599450895038453532453046201364355212185013740539062975950036361837501328695797199051143687216756356568423242927523599473673088196564806669518928189292011179431720009631995015397421543836082654588316616055130458223892167839082919990802287467694446084462307847175417389142892966398481869109621061491021587219336807899067871262202433489737493117672089467034548130495773350816167349430093417256768292086815128804722197230641162188006616635477995038219916441937339508369524016882308226966450572446544094325578369743198961481261401286270970019728804363071943308498960871720757392379453125844534470906034543735381165902039141902167410821651361273524723005247448421555521533642916987882175416870014386668488617964368705172890092664914125687045325900017530288047448223021568953058067941531065103520986844316756306984777584166076083290682292440483499098714193017005088653025456597896832609440279976775586436536660450825738008753583743449645963265279483731854629315392636467532533957876429375960876765605182757800166842099065629160719457409373223024122766022000589893561822244387376553068621885830988376666319696571544445721162550608104940326653876960587986644514224479295903486671001137274614248032460619809379268264767375497072530829593690607907886355456980413015006165105321842147448272342416221225043631519291576318643876869878720023015950547014675191233108080316977390960535203222241545188769858629221204811099064816072520568874262023705388127267816935113915311241284159184364852239420922614936835959536916772893148183019040862807226643668296845333601017488646425670718222144124967741500237431365503026866700172520819168690809449835591956733477106968511639547143305192685672570299005815969954880275569334464729908597694641917081246532839513971946435064964851770742941856963679369103233797802250316604284069758110114932752845857048464580031811145736604227372858353408954952872557209096999198587363774539111285702788610467345338704507181903292633226291849736901325904563367464323889152494727229473586087618340937366016576613762447496841843573499550059976423929639976158734048358687756946832567287092462818222977667715835445471005719414009891794791959136095191705116232061992017217139783043712519828744025067441991752928405948532669774232393746448321042234512920770632891450412643633680182837257156960059536071705915578726653406420853089613157540180837517938758292888751870162950245025674404277098855655352012151604729277349278202643336825596568817994411381643556058242264504297714865030056846732215779499123317231602328712383569046167193159199909990122383344088235189304270273432794174210749579612072676608700540527143140625516402457608654894974610592456507845420306750161455822630229815477584450542032155294934195235567714202848933720624370017778398498993523549714534930283592375882417482526452705299905747197891838633834271014548577886669095390430697468288153843182695552547597162922962803709981503265114084220959174949999056468319638601261546983615716417649782602702741906579995591169251408337925641950742219795716120938794651586726270483972096671785243997136006780768988793632140259678940754144439276331472175783941667791733742055159344127020848211424950809500411025962409518813634462166791360095353384143129874475833975437847036033707139039180364996985838047306497265738956290676928882693101059773758681758536928104976686835233950989616983855091055444365570379597195728070285389348795276505319335472377439107088614427382656496746748444136890040870464982656688529422670577708293133926183167531375755544152856748043978332692698088002139305663787863445636976421417608854684329533623696733728052238124002289175959459933668839415130618699510080875551718427513667369729292186108796123497892460894227060102193032597125349220708594533499950665645874824126002785283055068154274320028174204872146930633195745005689479101419657111844350546148054211918891624547413588916082454360275463841322264081568381195341772348648311272978075291233431085577185017565735494988018987430008268861808298303971587360345135156089182802514495007660059974436720703948846680058062248876646108986613654541265700216978815843466111481892349955890802680158125042228794372347750796953322371720626176860071686472996161201331789027887884822678673383838612753697735668200130513929632256131987124220115363870892621350706801084356019737936350203195845054851500868738912229557563694067067819358110637115174905224690610439769349103065393257186125063362774243841410651055537300185251438889905108654298503949694066883261953651164834984124545711659747992082353978059123726762146598049668798754190247678158568463303479314662023399813867951930929002280502811655869851320424386453929227865480662186521903604176462109371639700754492953476788516376446875146684816764737746459224830227029209526376345686447293613226728884028355129559310800510763160860321319971883377653335401307604170613946414615833260053384556668040295787851587032980887575279672564533516878444276877975459008961827583697616840020656499854559619466723936125563303593867589862284253365768317210604861748462981979700282814811510142884800543873392432420516757046684992937089412032815698963760585690641094966868886015929499964249190927760232297070872983247597513297901884502807822000720856796813069993524131642059756464783662398842422116773883882588708658139644794574729575196963734844606381740985942718275429640184116700557254282551794570998683482115350583841416434090678470715728031988126898430359348666889412140095888556282433283949308562884111389420544230423196565784224657772646010622448437781599921602458586913718188513197343677110338804375947583421727377969148356110892514129639935854341505252447805558629516004335137296343012320467417751649259642869102254369924298399176719801752866464916586783074385948669589297190871483927163103529201488823450563848175842049270860141699423399480998263409387370247223411348787048051058040307731685299537901919666842243206433260350619595777962747688172217186379185193832680943170053297020344595622640298360349730575846723451672723848162962595988209043271066403541950155176477159847269367990915133885481597498725434320837226485100004621781845269289802946911714473132046423027298119921430952115821328711319295646748619359725187559176477324120429362611438418374018316580906495620469939180235148576743929968597758767852622466340367422396827893559612253267351077638306502523429748023123799782264414310011916325894567573341189293393424859590977329403072338815460696177972548700382974781853590132088931318856290978800039096847788186732434995879365648287102663765051804440162338735386713609530743563362090658274495620810126934678431008041104522260299181366485248545930120296080749487882023608114216430680082301959805337671767574825442264834121555017229604523750226012429841991789753218222920424681465228614247300376827944689659355855156220114334949422003926185867101010043521552413451678398731035879426589750240203703524771953108084204378420954499702730469944051889443207439788154961202448444798480450693400145463177143875385683151975014566452289171459598454659882911553781736774889632927245116970871387129379766560213233747172150009805513481463616115729924033183296286130597265721847105217135910982818487244152677155427205133840946900820721283622739490574763032736498429697516047611028129834258504102267897787159836879976744731626835391272158684048961216497439953750251415014002812539369511591815325061716313345005788850467973310530875247015806947108079177256439096843131842404508210870707329845539276472327285326533194476217576604732616876058204003756652550311704978351195318999396026943486392098551137917234928714818993068122830315974781897013811452023211988368937520092854941018499051025124531486869583209715915656037234739894160720857820173699141671642470702498173574736231946948681605545087764488484109446254125253900434021984148458809852891250448740190402176797023814841508297137732696707705626246826913813968328731817272901504895300661388483790945902820294164276445490919118850812091381560932164074932728531658451811947800168532263801987919114082192290472855898587916458862567093029643057677901391763089314176523768224153908577377618507144044092957178341922704842563289037001086486602942624274614629174032667103640303856576322531128198920010717418526464317090981817609065272138102985152685152130148497106880845229651538095624152737393451576644959218107868584403697605715467180834907756607425279451831747363276935339269577815412613207066618714241240960486019433909868092886839294463205707525706010931705959995739089768553382859408599176366303124744684807750609006841212123212881478472529693277692826505561027888231437055203553640256765814756787758028621006020160777265116915556435485421488470081092129682751756724152582762596730647957463907948344085207442098329571793407708303377882060480301760161489555587909628751202514526504004488325778172862499573794073512194990669847555294876110814722441261476120763212560653477970583997596510894729610669848499640074233738080283464304736553103217780317012056228378011942669326814768670740500006449516716074608681761896551980497675303095371965608863141986190399264697994166944342568054786997132398641631503003365730556327619207782451729620331623726117946210223584901145887798319997383639287921508912854667992308850907993471908770033525697553895377981404834026206517618722236594892156618206291296750078801085076062646950799217122304061075695147014348938332364995985028428486979571847706026536757718924398592242214611667511221700724939619660637413959991716187928814389865757996298899518041823285984811355874262981230642921017947439786951461608459660840042585862479426301524513076525572788660617859363524931083561100855835845675639091283105022477549318030383303631187657070002255395401831521297058406178184886357941698556504805220472049432201013909079346729377615633192544458947173981087869708430908192079191180299682451432859913429822869792440359789902946167952893629470185562708324028800342267884633144358340201626190036206339974817359145475555972179501121078365442387594762552618774294540913806335512546038104767568305458887500827535433793953903229132934225771891245741033486791533592147136313201434439231641056809889822413714534289414914819006718140115761907059917818040938954241477096025485432469866997794544150853181686906582824257502513977145376941670621377575891675014354653584116769343823998513352070669434609098148030627901468631119879227773707769106491301322105257451979286340876126804852655113905380362105433859475501046591219163238430662313712978991237298194916714088069887975748573831607472032940182028587185443307762190715527724234439516940971540926994347732064616947059742674597388679252490869277329177400380896349373572914119375925828086405609900909050402137468798666522518465088381785767829175358985751803039484629533275299775620761122811368944422112135479359920187637078367395879718143689067598993760958516933397767857408371660172692809090219249634941512988024081225280228918613554354887161710277282200869069456557200190480383322956143244659878470229101734876629455000959213105917521529031861674753394694197701576622739712958538608242330473514245416353191609517194304766408612459392302216568585886286892500916983262423718667487816416787696163893689524963123428840335403379855011365421437461718242146409647821091659079792698267120594033095255143524334004302260257142780311364301681259677526439767071419111044513577021506967295380598866165342463068936596037685324786306319533971492948728985484216819602836756088375499785948450114719748494683184944699933581990959290767096488593269537327885297423683324206858380382119121463788668031161246433681350814242134558351159565860072320084166080611473107315687049159164547907867954088627652760235024491776193640975708353597584209584157547501066991843451086213023357110890515884588066375126534444452829195175617727735998603396634936963533294672523061849658399704627064632633527836066982394294596914749690007392351290079643343471246241331556288609930486687877137877694005310706163284023671643282745654105103650824191168918991431671565427733075381189108452651699948755077058539574387714426064305295811445345051342372369311525877134991778686113689646636142830763756315884776767160036825848997345746042613733782450917202352064168423658163900970947148989931416663697744215722301265033584958782608133617455555689280504704064695773692252031283354502140476569749193645410776210114781264235590151875999341999208950965877597918578717554746832433896909008778696127485225109885337847586778653065455874299804528788408445776968497304588818236794535751301858798357411749082275856644382477347448814374955995803850222638844332481075837794483112318508596992999906030219524485673482933438906241246697887343352219648744312568537526106052241775829281135473130722383391555137270576298636568934892210686938738253263906371498211576708988616363083721495832848085109148867295004302568686908571771465917777800771456051647038751653759616924429138274945331069043087039882800716072323811785181297210541619059535375414135045787914547566892434579367218314467392162410873529010976696429791181058300134204344467492706665768595741494685532445448152114178259579779622675512370889315699495630809151776651698969511930963579162059863989044897963734518800824422001590406132820356909665943622135637389787062915599307252578228938158987584831894488885195343403335039711837119671806044140406914689377793515831246543317897508039532149141392859499282462669687979255224067838050624704001916366376294709931607490109187725299508994865743959130042194087502068477779508093087416019582114200117368793499071512961775997933133142152615481749130707080984891207826773975298236057256000212546752195424657809539793511336376781590987275171330403122374878959893603321942918443066236845286492611309796939375058946967280345232696287185291003879039983507612558203917370869561959741854461810682173437631697897012308506136442542018708100989418202280788290402128428955443052477876185448607291125487623459234955212304913434999927170988373986122994562587915405071733264152912463431227386950401433066940796543291902614239419852661722577466376379874677392307536647260047987183129288951595756557090530695211751369918886327837129238679543016983406729468142072626008437520946913342133068042300130418287687388265575456409219261639531970113196682372300188333269964706284378682032699645477586756915880833443741816031447815477751334009415720412390725427435714528480107054353557067591890132611533050178669884629885951114770994849857076203916866202643290424517322937732857928850911561317212407473135994635278399667447099104886324456406344525888897257504499665771816841073535901980807896709468073141701951316117515942801616249365498799488785262084545511010906613440349825679227931621216803556533833131419550320860963631724740496474728015745392732728823946670129761089895145735183927900873953746451072358352003938310220148480497248947960199727529155216984345861526114794283999744439167279505945284720939306881373724491493739799527111688153472725234324612679207078906372671657776380688843965228092228757463649331302891566259820920395333672553465413056567912170660445122247015317369706758103981434432991980503425522141020244587871625759793942182250107807680508757550107188265595975188974806116829903275086817888753577759605638025912066808868053682882209398240737257173601640062081534994074806650851773683381991662513470737028836204279386363620487499115148078499162532254851045950256078448863947862067647479764173002383264212499271735009909901057623959033398723700875751762505456236210116940517742881661566716039809672999837873827311246547609678278059036754206135764604516411149786103166507790343456275968290687976692484835395084685553584901183792817352778199729293849339092653348642963648648948700193687426265242460168095830117091101629705700188041396510101700090091487466212550635872793219862756025091421949494223087584348623005968914307477756445359390439449845857057315637734158883014302346492161372338152592183437959786243773767857212010486401140298048906104746288829006911372030670482739486686521511124356304975150636158802948913303647600971237573126896974416045011224440178398883569160587399149573724654583470702917324463786384286582223842296749200462675573230956462295226579720467111417119160199651732367424486799515722898780633951408360344997786457174692877824376630751398582572394652755146829306685005428146866166438355186624429076288647038955356960071094045466860104645627566775468821891673458157690037497655244775243081883523129710181366006153404580445451545887684123018651707468654918842122641689329185856102369132298338981947549277024003007627188588757016526765363412249022695971980262881616434007533455755363613598446393318564846850711294735565306867697285879236462988444954084919653019039932835790262376141569842689416762531010257878203233874693972761949431335874456773531139368501958337988736746031518902617982815687816867995658354869108035955385602089143092044270887169871550423573518615207079616947790529667712182805287111505750743702831953909230262388793811734111157076320467953544196532072021940666563566007263680333059979435434299099376989900738634621928652976185165320061792497977886924927404342253604287543885710146371109381447357194292843506696607516272803422217491962720861205111315169751471719218556862816349816748629375515012836900164272837457520448928863494054091981960872730666974481634960802601728474981866074836440056054034116763511464669925966117440392474532286264764759710852228382379037942739724143120155433588973499338329650175536712304742746473479993963373546557123799621425358965026695766852741351752427585069712600600083345034453689609000240771841004999480342297762018502706476697675327245208967900769997393812979036975847834873440062719988508439408365773752595924122178594704609230002638372540077999244492019644903213882603209469717959779529769501637245263566440029042474107876900487207297508537163185490328129363468827314591946892641553703741835113006046422315829819833055440941346790774797011164783818930708138819252558469954318454939920784020521460422624461169045657395843446451151847252279462289758128404526479719492664242779957377861561286207360088392205207835736105449015992511410406271293288341675948610086911745565332977010198255751588024633318055862056944710891479641259626463498812714400107417630240294527514961766615873232363423399215627015556980019665646351882112446327597128451135301450076648484144712421810234251224643421427411446456728832500637313644911130818461318025919108801067100218499030917088733019244655111974828541345731075976155979213977089246141692211705469522515661942521766291498560241876470377211975752798368989489871506017641184671946105590591714593461648389304587347385488476292579190928702516901811806074745763217464885410389517612617059433885048079329258487538289872687797993133943474317656003412566028290924177645853889185081230286356653719886775846100732287404824441772729483190586003120559226520702583318557653738424627372538798318233890966320277588455930353911194120188662308171326795882730356835966762207581441817688306539445909618878784785271777093934911210556523260812166274970089128511451498413947496522934179866233811824074278179276716660339432576130831908910046183693272004930758923211266293418783297164215548904785428573597150422120418863215356745004773930404972689069677295120087903884244746050516847090318215565113320939128891234991469790162443637023961385859634743336548802834522082992891973970182537845234130036427374852057114113800301855011589560844572683607468976791014115267795022076368449654943375545895891969718655797277155999661063973107038473026535106917141683880620548597754113714512964288074211433075804728045011286354549773367600922141854641709491543689404727736441122937976778380358063713230206033189605808959420154545980153442587417579764723066326698871625142457651079045169618898334865661065713346070442375864781582540402939269240114582934807013670023053198153514389166887044870589716916761666078047750172783428578746670782302162926335258337951553485783516718559327398036039600730315371109701837658033893966537639209712105042370404187117443550271526270942993339816459695067846480695411197800370881394288069533362607415305347942110894434448494294631410213494531245218031694579712388090454322166903535217056923078619207715835503982651062935495720740261607869465345639950908898734584027628600466257134801415776171703105411683496022519373002535406853559094935129709068682583687289081802042112972604704740934156808019658758351750495652436674378556060789893959972174653487306393921693552445642062616549646696125943728012294189370191305914794240747536657873571670207204200157871611023539506180045212282659216275783441566562240807144162744530403231028093331332581986312933752982038059955808792673782691149911778311677488193849913715371760575724802850100717051967094542470620163638848010770052796380127730477545574080504373836950225694231960639749873291612218977606826690260727646153258566208242104669087356897369438622043055177283010525603289321583419949544392263209799382677084974729676028019436261109130195214249549814114225409247269612802148872637654508701072642458894076565611870353332509539802798747233212654753115787543409080558469876485474011308283593387698702120623909729556654988521716714706786220148037080191808533237752477214741963831386100116261005789574979956033956572450156241698207695310975529757694981685621845757407702333996435685335688435888433972681353647002670231928854413105057147513338198329594871544036952855300326479850959803966227086752858414645715817235361039267082033484480882725488290326753048392041063696692011906395924574467136084794811543007088855842025869926084894616823459796390167442349371843217564256001545631493006916723651295352731743616476435856468830222725956473078765998285016272429895002227626353209713394028417938457621578801191133660519558676507974657797461434855699325639770515977133352347819529678375703344694229619127823482369406325210821011400175226349919608294934759816319401162538774482508939826731508161084654431150468303743356712186443411133767191934523903746020967688162677802079826265339127733332513078565515729073457458166594661082293334851819040277237509397917830260510993370377236607517313747246518610942962616214436218039384223656916700576580494898590268363723292192237854451215292711679823430010916030214494314351656827459222412305472005431680830388128212507836349090221533988138370310150540217370036037348929291599090632685812869309460752179702567944467437809525370804688318627653403866910299989617493670952057290839496209324804847026804198049605804986645289726921837881122101069026766120263386402981444350156734673986055684845646814590319997098993156934851725705256316059805481548456133152775817663234107745668491675119895898669525293821599571118701273431415665864375340894248351179666233664991764488303331623239489575933326815277298236882653835995394412308914105532476508055967492123971430376996878818325644693311947943266933605090787068984352043465567869894643535242660068336707607256911410925961171951126309065811750619870128167178336662391239297359966358970227517018129997176021257528429759429720264770212423102015294911011327321212492874239295621592884809357321523894539101611813183750641753062384515291807139306068878533312128334488547885494483815398762770523600991696985141500562120193132214388770549849043205967905291136937179549084281754820019737182348757246605845019817610832126442342486031324800265961101883466307604415388378941309419922576739530982665389924853104053804681920962962130858721140690864594378128049892672111230572314923216408692555812184710026759741262936944464240412836340293693638946961722007978753969123517007370262479793384502435749895459441199958215552444367173581691324754463258623484492615986294103696893241333860042149649033007186069493080437815012963253656509555824225580557280803775774514986877696814596633462325481694519174932012489395448113369607636013788460373607193359091389117130085843065673019988086210418059344443522045507217437850768169599923571457382300713805668342164827672102894447143717757369766040858717553719687207641043477863936275165045588288587332869673347617541834044240229422909296958881909211661115946038073097958028757138972411028491108760425141725394845429260876325134896691284280238385290419155490559839627358237347877976724536758341937810502667838928784815326798180508439274315189192205828316858500962333447419573573961784091668551707591396169220051483860455809536459562185952644617965438928980887184992740939165013962237386387077504701745118295802670774411664287286876468219302702503546256086385762870412038963284632681871332128954775178289349315998970289659304527082538341591460385176923552462397831327154371514132369514438825409158552599241858714244174593366423834978328191045841506268152504913837602044406561470412879134810863467446744233153972546537901454579916815787067697207303731737030078182130207690063644525131694658137817102238101218823321773841779454817275891902373928285449678684535529179890582250611058724494964292438121276274009372955458076253991686578994805792116579839642026389128816119079523905524465271266185761724497200334480669718775019805594052480170286262747262086385753524871703367661416113302179820875844093228872896153191939694323882228433177278542517775029995276034650551769894291466513183481339100946500497960947063684789556925471169733109621995179157651633958851278146523913682144245197681814378776222839757364336340420640684704117093895475382275373357595853986975278695627368330260271796364444435206984337871912522550005737155327314427767234659276603074687613625393418220172469008926119856187306997117053225161614099259288932600492827579149520786166889683252417984973941884289974983840099660761768719261654252702364145706358945104760796987150561946455883435160934967027775233975464869838700078592479447186101914153848612855152358940665688962869083134310055789082623709055316626589461837829193503440838872572628158769060607238284146992799242968035915909595409976711874325313663982549474547533704615634582455825653278099623622011854743503078490320082556788090849049684602625170449003310696367364478550986362023400954205899894053832572744715932447716426146800145375856995829475649589144612615947264280082205863680770351464566330304567031447758909099971251578838534763756729976615871847862173516448300308121630733839508038901696781834685692391299675669123361437362019955170075451722008268224613481763749786620023704656667065752325795348693993049971809427172564013275818000761447536069188965577464981377118467717178367647890886767587420788856564556887749646511106235790958987620203730972391170082266532349023548863945794176177831509318741256509313797067077469996027988277199007123787276615971212493658303110229813498131996515439646361964940212244723275716021536484703443248517279020951900739634210921319743972326246853265836948488722640408587017347352229356607069654608004478047727354009661326120377021638194029596179479737084925969423297554593313894646916898777331398143162388909639478677640588136850589841227516373692228334927799571591182287179577026585468050036623361749569046350593439511587534645603358824185709004983451811770301271020361540641303916218276089974577225005129985212200741579063195359489623824158266121143550596694015922311293448006244287362318814914728615427355223331484184737499008492764710114488969707637999819666780663268824866133856526034881822753481533331028412678856083521818082548816585311891571593095017419489241601569724019947100307669690733187616970386239732992366487277296851563988723869619451682535806007704159329113471958650676078431760529412225607380402183981288090628050114767973454113906512360283578712384097344872521274004783159496260491056074561767163899815042817057110290170029024016108845637008745297091759712330950934883780545273675497219942342979773873459427308087243310331060615550521305513291860566799833748498887354222268693647639770344596596833602836989817768458969284494899659009909290077242458026738616828437752742190876622107395768623861146636215375877931033065087533042892261837235566689934329927924981735513638921755047380129122991922415997084626040907157955727453827129268520223807238110573284633777259202982222983770419503710021819132765590806539833277434403526290612792766039432868436122314101679448903231134188231501701866765665471626159682153304905678705258658799659672768354913024829725090709326663069596264153939163897736760366233640165118296011724682538636515708862806307303218404224897485660682574768545308824941574144056921571970917908934215489555045834324999849700057338658268211684313672162285402733228849792742054763064142400367859957518556998337701064786322973375780569607937496824947620516377811736909853878826193212517243985081554919167702465726691237144653690380690787263024139328148659208696785125824394480161420085151834469465464255704996857774539290244614838660092596123812620195156838531175846941945068125537236296230250154635336593640420867507039384083595546059389649111305695441438835019012489632043843876807671077925732760365890706160673699376354414584036886472771889177210431567883716823593354166824323964752578557224735833881501603224249306329963423377545276116727853704754554406485210931540734321286848744621412289363890413544565996102724499014642926485009180423144531533357108499482486004943442624929030531666191166652092908412224285905076718531070610478071742901151925017049357054249428704642418705167852806835039994237676843423842585957365166003302258379357679358288027285791866517079269363756827256219657850772440499460904681232217094025169764995410005603105695862114423024007761865221453013163610599195380495585391834718749857022379074910065457436293257333890361633144702858884598614365519186825773616449946237703628590542503497518776543196405674076470734404061636511559868583337358513304630645039099630205452227206670549990694476670982924179811464994634952857343608143556288381559695049849948907973459513432713654867483715001156815842113451050582550087380863658518692752522426691554138138818380563756126331339270814988711869063829191041289465275392930387240790491961922517721852228664130565037595911432211794143225171327856966978407007201600928870756011195325251931039405188243839261227001663825747162837502866248668281383890597366722867052522837001204684442640009434108817886153137557191310850774325436797730599645167943733891089922748109669699462373734016889684362034251690515660919674492984440202336426992197975367948322242005361586935982135307344055802184287248564816661204160992702016045826613481587686393282653603665369409578412343468220280308296728813746186802450009812695707361911324356510982423059360761001617767961363020234963703791798943030257460971368474478508675011262901171098841456337842088883323074062107635560708101432179849582384474500760560720115808611629484735806504614585584339992591274907531181126690698769942619294877618995062657724678832774182401182059228127072073245244568004640059701490413878936288384949466943011918273309022250331004318826401984720378585114804561444420108397271881312222144285317331738878811458378507883893454964182879587239868345218885159966881967486799940853957529116297126572297769901923204482761839896350170464099371195683751859314830858904255903106784816899332500231528433447705725260889925628683261315210771994402436129205089200009281694852019592051069950783228596817332101485186950099107337039712985359533306051782581975109607839216518050497152618877327032761143823446617740629069568432999966478422944346255214118098027257481732188776014371020570943757953822681756981770749694345815960706951333296221469165121209213444978598961262803345508556224506697467006159988900033570012358083724024512643040268047171704848270997828195668985917039823176823399396934696167352413282480634680358284414628223149870673922289192743166911369561544048574064458976234830451929434345846218338495699780224777893317806536031919198052461154518405818150344205958265013266163869558722578801431527470834403229798226148698181730040939677507841827467537326286184291569207044491263542304423781287742047354081351007058719122690201943084119400241836664197013961824171643148778164152118814885190366563062762922729327516913092438915543271081616273792707446013304336789320399373165548595461422006851470425583862620159900501952309564088710060731660796581991712609898288982259318781267990109320639958631975873616308546830547713501400767957516305010941946108505360574851509045969768095812378275865599495095746953189007462631473920570316330990695975553016784075895697924390182574052933042798792152546334947585488575116618101564529683263873164666066652029631330094561517462573201013713846895592346049998937300960840510124161626448744757993696943672028993026480012816067156602019889595528423999445041022855848786828813485438066836398662727811446601369168472438017458870532814090437098353902228031478335922853842369307846181525659058158923931584061924291508808187903699695025096625373980090464573494538554117659145141470517951618624413352394078387061042434271405868165081537698725617901820617682699602656534917725056189914490317360304866709914228090946878464941383352188599845342415283067329864000846555846627828160668526673443809212125370309007422371063361653067498089859765922501042630473496184520559737413113055087973997477842467558274555412212723512899871500977147258070688580389245630156505381221772646045949048446717476173962535517846198005556344733925654691275777880239173761888879646353157967822826367017357352870817794870164079617379430312977587748763657484254449465326028910262194407750140295384680149938937878281865870153992600385388059269703184106761314964412314358736046749987327668842477949566500187906694516673100479513815341223558389955288806139860883862598131339982005022004572061592127442334927427933847471575559586952305763085438624635298545262590303151943225592313690499771101075632120571677818301044777000018448352408547056858317419407265413167193269703582273748868116866134600953883086965729445354265315828355393104207898946010606916094567790188729734829204852761081543490456664104624559720303023067850190123282443074617897578517210435175414163225025955000743843632277786211970282359713295031404467568027065417016892984207520780434446081351452896383071145211271756678642753291712325940802647434724325732156872892455852379426348556169503120251503474043091153349488424921181781425957168823716368015082276130486569125516613987115382407698315995232851467421787203134186051880019149074398557323408173464443521415421817119549586574664511277009225646015865805834245936386614111378092119726742651127778123318944452709374796728895826926434392425099014091301952010911267955405505073344725597675576883177142190536491532802473010308150279019028537029568617581659316080594899915219333633695988593018714900990732925398525080549991704807028507371437711754971892281081802873053521842751462611932478466062073686119288405537326110786799267448852403972268355816514951908193378644694402960470845702668621704311867387513772768730015426607986509124736426280402128857472046377610925252353899445743796690221286587525189581800460240019436792494080109005668155556670542407913556573586121511262471171721800574666616478148757002628165997346386902649572470134278419427531748361687091798088819712146414674252823606675045352904985179704671217326469989491158504861530137783208057275721313669501986606240103553485672338953735963275255992724178588738969848133010240054557585101736639613264370060969067340018572471038653297010654783822844304295847189200028705897015536407833734768819016986543565825123767923398317374038904567903082913739078738981293864256858126646639048144739820789971780969219133378227757416379429230523566934039568442601993294673765485187804201425799225789742323952114340185927516753998514649581592726009204903847187924587212282717989652543024832754847936840901501866468342064390515212030495793260594844058266514580127420158982129785884412244924592662079637992394436205319221461895934754077004870176067055249536830601579889806103692311125306666418668777818469000087261773602101917405118952373124841640988352130637030245700624080969567382367952204350368482859725856271065629374611415716926768027030398599968175858819761267237219487976141493841699893989903151075773937103274798648995924725159501284324834530813303152031369082874159073963186245595881615268415817175549851573034264006741947001585055309498931532742983184144354096666861666443632922471059935294262040307620635222918151171676518153051497841401035119523639025289294152268333944577053482225839808251874970453975016661436434042414195827265263647910607873195415450789771781295940760071397861687120378046645949118464248160943043621435961539469361045149249738343562601782174080881516753308813642638587989406743844582706500985072663518976004919963741387208097995344565266804671633124455918780439461655337263106447860757292801617761233328376325045403476461874149097484036251452645058156807032035536040083268487590485761209638076932359003878105299810115361647192322087090206374134403239456780072409522213776788783325457877167850391194885623828191794224178867101979616830620609562790375231248948682744827556385496049509191700910117495861316790337400691917285785149960860373209923950066282145192181487157460530635838421480887009638070026203818232986909473829391178806932403533593812482299788572752087859133026407788334533744155395677195943832687245448565757634716171981346437431751985339357917635402849791658046835532459761669274930561504535905711345259041278091937011093602921669130272503095342086782122699496073559944972370125582990577127073564967867630084175878719780641164727305575345312614240165423295810307989498752721403930455944288252483117431363746472252821716131770393749272218971993716710716107497930451874855317477795567612378945585289195915152040663275864824123673071574116252001304754970559538016317145914599278666207937838856084028867148710229056451345212554132751887877148037490094030090111478563834967755224714172742813403463606039110083989697490029023408935485489544625137996907389397530008071576426222742594241785111185341597294499025563951074713159886851490442789369022135342879509012328518471793358476092260644948399805915839132066263500506574425968130239589902192678548933869551021785881361981839792592761223918959452503960931083677612426419934850092478873388447387501180206933072165425782945424558416684412175839446537285318427619107017822090408330487459761369288585770323648688361949697778662798831478465279931833263817142917589554216457439587705812139177873489812578204642452692344214527296070986916592594860772596240370898026283222072325310681723107152256741383099427999288143843239382468057109138291150186238165301206528758872477948968993557158068154803173618210888034423778878435970648625158842656818091884788712798658784355702120795786734811962185015109016677240786720885539965252029529817947503799992146524998856307019403108052059323631829589960289051301696885303007582892898740594424694179940204370667705473646984574844395730479395540583086244538484965903487278501827903393578221555890004829375420251757253941205060686746155982252341710969179324237024360006155205893155716211307151668640326614142397436430680012525232251568271810389550622060431121454095280785580363322861833522426441254925113253702153092418960531946457828592514397476048470813139190532813222330666705305895023741403283555172087521789445875584190042758967224167758361928374411739352778266978414033494994379929363770931028551170510929453593889127705178812050429657407345272411214057432667127388838045099681808691214035532502543658871985790406530647285973887189823305594726931051134804102806961544950160025673498021537629566248719480332849230810119097382047160580509667743272793080762263342135025192406586693674020070091121531645308683606539838853716899433237509969135497529420013857023845226853123887230241800515037994599728940388475192260421462513283394220320882757156002244407796272006218216867848407759935764165994516076487899251052970756768986261195413055040098032393087818765704803498944095736316995191505038066019349139876449715137888010470792739516511770842897466883302624816291056885975116800230599633328555486257626755281921992985105319453357091715201742450066931160969569562913039118330428737634573822383879572592904165449385570342660724537045146182163382394381324348121244619540296990735330521133497231186358992231184609142007945149223249827882080094537941897460202156578902181036747655919982692084838177827192441000606880733839944738733046563179506216423178744864454856782190824307687082025922781106417098046523377133128254409954126047390695498497924115576121487250891282895797646483094071243394085513116322488743774242595097220593293730596477590162468272099139737930331117512400687943768864935149903414593827482298393111841690808042857302616531221197502344537063719587906583187385111836488232307343030280852867412476645517404676135053001732696961847555725116053529534710322669630095121379734597104479016400961142744961281909304688426282462638495208247191360479625498926545481742099853657965484442658979833191497367758467292752393528663665138394612886120680392086529841780707559633734375695522828243027775382436506086890734353460097621860193999586069441116461161243804802664895660952476371429299858750288482659284421993121615478376861611942190330850003825890185170325698896015329442615032139407840725750975035564507073855340450510412674958875999341656778335749730855306683845960298423606244391867078553788802766234098332759166737127709398854596561942077138404855645315863573752528950989081940400673330002675662410170936047030936480325055163594265042940351786315793050473470496357844893094744775119221764120752726067476935719591767540072862632743385785834856078606097552040139733971513502368438153884496313749316528417014456622624470048822744819250445845578683233167291856998467548383158281356014689464792620875339271306720001787081796956127575388111181249012361104615276658585293080910302203653731213892510260949675159570063095019398902119427824220304442386318853334269796310870962157750852746696143568160279463250580120686880096782894416401715106753565101739028427588348358504118474994834798734210846825192880688334890557203791287316018578434773134108291270822530729714461574231685173834870312389927456182361461228696240927832069650561558033875096878762249166036336108461297877045014110167448335441712338195959623343118048552162423845809026016249545843034750843135403004300325530823870037310766884869525480495785077480436938560154473471867748643393649193536921382054210650933206855461476183309950336983188301622339350644130234923868730387186921704446281574264284361325158601422950317170360832918832519585253204739010552694927023554647286312396285730635549371434088594056940419208628531301030735086991082487621335531599533708162892840420964401188356804328179416020505083014612956356073806094097090577795449920882573985568291323327087879237639309039791820111549173610857848245534086163502068345258353773165893025372934438048166278402614576807144699072128638121160150407852097456353087816909324610567863452814090288851682221470281949978098235090470099260653745172438382309959137938048241651502479272795786627509514615316392691563780170797896725705593892635903902805075804886402335984459173200464836165312175731063455279985928600496060283103980265276106238566128292417019977359660502033816788766944452530569558899815916261593613719585413454956588990422735882435976236859899915852475029658309949427067082664588134452291875311911021926303759481645379344775880712415732621853514296005151832260095212164942835345170425774474295328907283929541270903483807131777061006458085853047732188337506474087544306156045931686886114854210162326860914404657576612886585742087649304002122229492287923968194746454117557361131124968333590646038847192146546406339058381896823095532938247698725620370909638222725808638668672711238544868709735782088899002573905328804845321577436186023709882994260217685931374402376773851230517451071379255885446445896433993182082824601227368971983235441051344687707134646091965758264946949898698333060941206025909265643923088113297561430139870241682559039993682671084380879241558887011797531363577682790972488810017545756537019361594714280176244791261739767935723074265146277973750471248781260443676374396981102739517211728989635902835893014718674712339361428345153885530449852305444374437433115514084397817148198798029813413681219405814008759054163164185467788749253352798101787101386496368732107872675116065509842730438054644572887675546803881034260882479409003956943720167589979496649066515702534452216229241279550621838681269604597329537774154323021602480248327990080761247692778215827850025815145596218865719419237639065587260241862886104478519150803198656434768776278449106285259068008682584636796555124519001774980039718936121060969090551556556444133597522094278192752389883444098907324438422187178395764749094365871150116019368321393716210975264517811499096867071698896163996763478543959074346576129251073810507932302647719109922094438197401356331506468655700647735645005240316236841455661704834265050033522310610780206483861007217287207833471112571313876072397341755172768724491164478285934238385466331103507727234251151304709790658555320712225524715121726676251678699527762186146489594027228448365477474726842625784969748495820760475434019806447037288837376111075467626005049561537955573063368467004073777317504731391454783878455580491610124979843751537595234729101948798959044867320646642939858615435702529003262372689171590329245479856440675173173003333010309554765107325981691606380288043346655803630238161540019215111511535462542195819599861078628328954025382551855716000502170737887086487263072548783192824538223308207130962241746809367849431673548800764005571485833357101055274678197430407162862183181756959749469632380432354071036216834042861443012608757128043006620458322542806419713283595802697080851909690512548096092360214988060853166328895449243923552451485613938834839762300798242193334688984177427055516571398533650569790386757738845913346538341738666418143350464759492809071318819552954078222005776934439254518726027364734115288831237007831018029469219074499002733894428329212135494207311603698084928076561456183365623882425531454853582759248603892934434588124279844319341752099897259819915948598653083083370381235555366625321008093674757886202780582081834797957216748309466184672096689443211146273600707102732913882710960664295846437742952908365231362542068146241208906818685987150278153443954353839579267456054990735245090352437465691984656433107390185646959227546138909691489490840817659784915316984356407180605397601640734934590623646605538289894430119616273008671733764525472966815577901492669369341241589668045283567590468261262448827931296303768346396289132558807189187533509426911897036587001310899018506252394394298929539355298277474661745612646566404591785112147925978775743958744280681061958667584250986347108365714047718462638852417177762893326873875889189563945725992239764590540345782787063379266775891944433060740473961859629126727198076854298249256948190660134876106742170715498394162459347243716127556987747518454976092078699114684050368432755182679105746161173888884628812330110987515162871937994550918419768907673283366269654410894502567994303223250460287443557403330975766651596447402301907838518785617419890135886622145214563647255348483786522188162330590701381052341175543988285171229742936972203240392993847154282001781183469625655118749560909860996168831421227981171829801337365087500923228589770159957295531548020588141365955020673374182669593151895765190741471222706445787716899071554151601366078576138508385159255678177783611004952353693248894038158352958611542876572944134141891096002333475677681510057700920285493663699685785521554697632006199484611872085134964072722476251373940170700055193414534242370542081188502194734076643532626856929530112262382255521348622246935466274677814724793294413652621849783535107570070221397262817726047251996235230501901899351236439816987994367502135045001810951722260026221928373104208616038332082447829340454380086259124523811065652022180269602578748474220428359785863649505336271447111593744769255535125186508355369011871540452392699703786416584206251476852322206591704207700616624679291313201279590322584130007606719556355133372343859922754855218889137969219335979525568762649468037857053931475557162805730218988566810761242499473119554957419563928534590358208179885433391798572434508300771028479663053955418382229407706111522751715271500780276251164283927833418745396705141551168821436828009429071071787849911233845857316948905251878621315009359885090346104592442501250653501847243961673173355326632370208669148357115874057361308858123284891870814264795645588268896546333945498308204861577098072836037350553013774103251581064728529311639170420273010765412302759949180597678653329466174006998897349113387852089532034186549666725272850757198278013152589983544668549250967419988271598774021597905006609667763922744120904358752641960814269434771568631042215173609049298721171647642274741160042509373778996302833958109335179935961810453418791416108565651206793485864894248189710720037022775636413149082309475315819141900495354296715430255647494037272124913767542808906727730730819745309152824733851115274746228074829560968223074777550055448473835959676226448050233975581808153064996436555630507017713165690129539887159735341594426257991123581557990515339498430206444769162133730818672029032080562407892118458227910769975179902593640859688243283078207161318852591274810402420150671294607815995964153598666571683086906693327626486248005889723934595625473488348695882525874430686565719297831242748069027840665507994284455774956318998242122056598974107949780095231801404378694592401149190543686490535979641044621495050022168946602190757945355402612031692645760080746110774603422681986670243037746079355271972771665997570359273397986128632755376609497451368080657494285745612261657971014263807438617723095749659046750806256722635042774624862550106325700486136242194695950899874008883604730906432020561096674082574541174717153686144838807403218899013422176368770985687128309602992643481080686313877264654383806309234520134257745178020219902869277718670518794227791947863087611521386671494185811943951102473801259398182937172626246932468906287242807363255022934775958872750509329653250863899750417012562950040047610303045308472203626077249952354737873002199995552528155213849468542524023159672971806882940836892435120107168837396405815221667413188050012392476426263075856730765748468021970815024504403896717528549995834935564894493780911521376950181198855327448042188829727148811438878871168469908014751374028927272663658573955478496448232358715262638707612927229815430072901327897826026821532802660816864689634507668486059316621417853210809087286760136832681642050490243233350233757231012636649493945448453472949917963206554125876752193492233776568444316451049081967376284393119879943405060109994282036663910368346540166528018911443751381081083316555573285650906091605426428677841207861595350378139246127414308075851609554548960915079402434098846652456878152082745356760113767438432513095581035653627903283755523952753292160084295150315462281759429151872562094680473987355610763380034813854183100750758877665601776043201171685368676560967436798207382914372958889612857062243654449655496194925930074718643605881396032224379765147182213686599804320065159950007095634564157658385191586361026456535781550514206759060664549514901388550632939405206820470858921096725020552693687850274447943535375023748463028694534269667939927715730479445567586245185200788264203348973627543911609565382312422021746112608078190776800675257727290472368757922955898862964989365339887679589142678273909339566565600296736977228784326992205739517964020329523696892229186805037417336357172174888684745064424154309991678217992149908491088346981731530524114928384696128796553127999741390201509637794798368935419964638645274280973952184702046349782502712020873434394062492594730570585292010539588678699739027099473234811244817215812157083996356501243500191247377023503320310490921252931847414313222140771525785008773284358781810083303951663918107081004460362285722098752488783872302993608325999702610019966457801419050746314796754889779470956524807455087141481098404371559029761951029077740180537063260676716550811995816378714750617331225487840587120963756135108132826932099019297501533600934744093430756855228387426294089305454832165538706415095325722192243769480559396247262394192865172076133178914717729882140730286547232119329502542057989197051460471590840501823392882056861766164630733278175214085420432517135890397239543992570568817513394281199594132221421379978353675808523061766961831535564356069556667582887747087788023892882331611367237874876941139213990407346894318355623248425637059276704338652214059827288389868592877396515250584596933930148571881959414848231687420659742920672287411595003396460261578233083139740724454693943591389943355006177671607556144076335324837244418761922841166557561035973548840787202989986137411987680794397740410288660850816928209377511720930544515541579193959039264293990360457534219270634953180661212453518478521620715501450440740219491620703831266046598607837371820994988774626352833454925897387163924014494487561921177203848071828933067524719195715169524520182512100150937744817420224816545210841876414381829838116164549477793738215932820450657296508500942385246707311569842817069428696329517812530375084274959205562340902264903075210766814348420948879033687351823373703927011509603719007193271962125319483378462788036722033111360965190475965137795642207606394581973436866647203003481194007416368111928620106039838627212854194665140506429416327059452269433639694237281809310128667660713931567054722022062378394269522294404383912301905141619795047285867814256165007974661947056828672001999004299031913826881367377830388250978759130800778529086943750045417418402512565604279464099157897690478531596274748513163513509587357045115636573300695784049651497239353236155029825635320891986196561090422049752608140727907838484025991782887734512807672360091076365166802455410812168504580131753504704866093540700683614481734846517765748878332536507934725386386285986619254654418012247559809607002150444618503983331981864438287423759021978840784976251059233047296066415385171072309973345949880487879440841592977226807335773544635362228159967578093246170009086693810580602529883424778203411169668345476959465991279345869460781260464016489789159647981718436209409388897249277808974352863530663962109950527066365138906649584923726360040101745253296172584112188119855293330407176673052743135096048499482074790602280122658078982021544976337885830429952289626227506310306895222455458956730223249546062886514280932975451915673614627961953474309382484041494400312371098893624189865160449424832905412883742529688022725793747987784558255633765519182396039889484160326443311190424832626081917050786655608329357193169982505315886046774222876067258879965700879562320197079335459564979499033093071178631219178258326993847451971283953234384419757846389616432609268842450175724834949866156585245414179791449800145379027875830168506671540717582213745031680346518860785352702081965857087268979179201398553233200976340684650456170679138012733003899043451809065026283960671141700669712671614127189440119536946137603583524763600186251395018784565518727294165721174100434852405134986583315977875216461348571549546331470763868580062856232923021740572191737964240392792881764048875467303008800339344189145781197747050022819254092931309251158110481719071721846905464901539575339153600682330247638043325677951006887097803216096124060925250781621130292590047390549101958177574516122125659063175521720519100808914067026365296338981327015760553604268628106043286060670086763233974772091549807018318351318802692738221550469748110461725228232681141416865748196794274004840651744514180901732000757882435262601618180488166796365987016210773120723963374107864509226411358733199571036507900617145529325290303241747110341584915532118720785028041096130244561588886706261654439800713533438348389701582065584115280548163851293505347580650038648724083982292715425449518934416045606281748785041224345228187485762300445003151064019573040019163611615705660874362280731929013253322026855364381428211396987755370440848911470590398325910133246191587754025793395793490655986855945548435911157890017802646597067111819501270468407273368815368921020966620359462128891814896981402371289523848828281192612964602795599465383024260854989480390109772733209783056099404720834271600527502187940804286583627027251553233597092578867942276224977519624117455531007037682809109313748079689032066024453876583982142410958864236323469051058296051335510120086919540608890329041567782875134786833995675223158279893142830468296692319796413252120807307785508910201107986972472342911590420809788179362883983959336089730016566954628705219782584420439098687854753140944936903481876319726488599743880894986570362986436003745376861165909973725191005338067720829601741857011018384167915609563605168691526336977045081210785900314469751645356209456345578715400304463702472254939629467814164727773260509604584720173025911630785259187853310168778007248972194136021181833723395047111533184329326830436860074360455328550624869424823450921730569338339369576214876923265988270367798515042254333947359005690882351116332669637942763583992415239035601834150657089673762749733750371890683546611924615037349591075116042046818378369484045533289934646848030464927862695927855520546235275338305562463160739935542726254052989504063063878066185097574567094419998854101269593036612333612499463487645926002630821199957307558153656154116206891468574067901231047745417180295595578077387438920851483758883648108625836443823524616530404622608741718412595389615755739532976162972287756823654605085476202317930015003260085240417102873091875112302798836635265061971243042656784557656829530878043241454796036013671964716561557122791813389475403026283335000200999057947689760000556829245063881660110697745740940023310278243560914604587581549873628611571299387726756342824409144442153841096605800585354092168311232349043687999442412955507354255527323798417721251896845162423541771335071007907596150449717524174752649998449764992459785597648071086588557124668430294741222944558295297112294534294241637529813172489887574200095129635339376114112620622403182433837360145428348236506186947243459217062880639685879870446749262046868697057280018403540969935895602070814578731825497547899052332285987827675417804413366186409545106472624688911244684656138803241320348447412792157872733938217940853882041743974847273201142131225235023948892351652886868246798609575309334142325829304648712755636100675260021553228406204500213522645213320353772102078730891635949481743682550951466269928348189631408453686928099588736589010040672077385967130889303528097756395801451788107200934727462105395826606398349689822260842126617223434299511673288771692418451084259072145663617735591665767580987684741132544408237561459538090095978174774807491869232447452275177711836061245921252005447532976002119824121435663481561949059360951562065859056499661235966205588980367606108069652289935848346998809243609181428626044656781523133203412796717112599177659025818110239131034366000484472430804473953983364676469118207135135828822386340305750552008644351550476704017625437040940100129918426526886882710904651834072339777845642846088826256759777438041990175374833347286409376867985950522394795356507144067413720564249552320241389259010205207353631464829000143462453834725967035796536162514826311703756233098052506468066739455587596519351077999163956412200583247282977326737127790485408737573029311938693435394551922003899936474727089823924909133377291843436113461603859770319306750485476471051519977866052439472825663733465829361743647363375210506558574968909698676609828525486545982835073360335043148580753236285565032155076034602761680003120727775503971931546033992788616856025397592430212519631518560056678469344916530608999351265519633583786744040327012674154555237987265343774554548329351500798004196405645309164237095303909760287343699052253785045365416991524479368085323040751845888826140466502791552761124451735383770816475552989773763872169624604065959477736918234547594645576088228530223489679834887996825348200604124242144709757994539618298930780360720803151552401079806691566973035279067892543234966836088281047170477547679760345088148437846254604316669117085594848153364273074522502621533760588786610996977964805165582788353683758721462799884432552235706894356452653843349028733438907615071745026343250386309786092237682827252438242020948118148834230463931337685405683884056504916670467872258738679570491561806237476692042199723000461333018458937943994001910183373362401003712681416320746696209836077061877438814399284698334664203737816462126242550254947657470131237415220178262408104829599056914100840748667487634549648289643555453909922939410855300834908227149341331752848019432744623469547881016510170967814324029737053659927649488119608361932542942748198264628503692021403299759504397734000169034313012110009778157955358893850691957746016588810273290750408196006952693222677703295900919178221634576649036635357455599570652689832118596936701130580248188530219149093699023894767588840281159526257021509010754273529109275249289651304309589214430227826373960901033431181454346517578071198740636469966266233701289750562923057193117779263524662216788316676912113246911151709343481731038292611184119556991384667359270266591166436587602626376060762536869910243032929147438653588298437968951800001237631451355109840888383286570550788779622688586798120072607839527180404435699494623653839401143543935645103782817591783220080186874420343021354730830450609443489955819281693847643771299888867698288155306519743670940231004700861186106662668808665815585904835395464663016120477153642642218485563893430881963691700105713302721831835952844509446196811071386768399018918313809624446746389168114796027720114937955114916727585963508992056389180003445129693230229829030917401498981751039129564524141612706688879480314863139340448717371698798272045366131727700131148811976840682788283644815983201955450435725324467298167221064333017205386487223598074630777662528873405110252288708383193168437403573129755467504309010018006466998321831739827844432214178619789355551940788835870008684388606057962592724287700552743192835848759217402343767882236593282603948662187322854483472021287827256397005489261021057702432962330517190328430416565945635905011622941947546633151104787192343571154057049161455281043911777862732994836293351737693251939427953295239610978477224925280092721391344169643382853929549170151404148856247751918039387222160540868807604248044678050922636607786700002346482432105935345758175688775018952820197770829177051984560673126261898580439112675611032076898580248642467081364552701207818828205408329151015084552965581301092226114209680608056758001878876757990964031647210717125532821871069480302126002690916197323113719617710558455305007592215610986297658484246367920709315939278937957347797488686112280890198394102610529773681530540630424695904588721209644780822944575650840776096410506296110909982860579210743454575444116099123052122023747831112468782393100931994689965238871303857340888955729419476594782931757416397103001381730226272931064336258143029557398247549909817040933834722093775926591258126387755434634342524671692201318283391542311921037971080269449010387850171185697607047517936911132176115926816690103698445615374758857837405801000498797592969355525619866580027265771841683508772395287228800000569024986531306536770811963354732036858610334821894099906894995197581679313473394668838954320275761240676946233884239726736800066930049129183363757956883270658460013533581330388111337334991246980455580825045655358249755638559596159917533540187104163713680285684202998444771417874888960489055677477790252347442213433508851293481382530341923350366828976910797624006731986329294219380620228677040837709626978996378355839375606157198953913497521638428179774371289725122567419718394073440685310940803888328647094945242102402599193513174981936677482326394100482802954556052594278010756333225767407792086576098728202082242043482939959913413398353774855428912447997307441347841594316662647763400015345407599429274667038147056735877893394922191217830611923713536909985181190369223350846639795152037685160860664697319545988233586171546612280087613532566540895608642539460975442033882667069707023046060814159718450240427593826959528548847509208516666432346077141683360958240009658949433518462913634939079378408499776522011123931714470222157518393477483566753548528471590974074013158040386749398393681251379612947175992163168435612708647970666080541369224954810272177973983748603675801852263692734050435175417530893685018546024805625051875596423539347611428709767915767815331021282161800725620851391048178899972362921964026588399877415113284406462248773341287744482665401110213141030910233585241042808948484631509010013233496749666080459718307030286390716362077300571511325543200844987297952867381595924869239120483820955411389725393699010502355421478807552974735441466369759368739421445914458716539793785135176273277980166122006378327500201523860871943081185485854172126573635372127316794965753577216934746572790366871188876087219091985909354484153440535917326321781108492018367332202231824116705962902529842164472511537594295247107371421485810389835330913825374605587072070038346355579079080876634172766431810690749717152572947403293197091616685935368220242798794544698050064808865455579364039374753405130026501962948289557631948674037498733007976959732309733696288673020554855134760150772599821048833629255308654592351171522452147350196102005839983342365116227087715085474040602119548541689073282895950006089184253369454606880652824586310651407111339630778131021852613752040478148788839109238200232860607157452751367035224026042610549903733179872189292678145840505863961428765928639401874697415350756779975227121380895117331040197473232266680864241810598831739586090802941258508809919870297779413687634924372456052066340450813528963213018378199253454942056946024008935357950392282677165888489965465827522816895653209556278193911308122955763010871885565882752165929734642932740705586061101762560431524498214006831594303852965445394517301352579170529011521024857135390851408269094195042460195208129068688089254241593902443936653753974305474005233314785351947778284548796101811546709991127094975755501724453083099108087094112550221564881306324400308418036766527896221745901709573471914347981945452314044776978714851112428113610388447016519459524969440131040813423135313601059759620040206247205912951257533922121348563724574035768289675814294785493839893911337935162177748326163388956536841357672941285445550544121720215403290556647754134310098910513855713114325623195876228657274802393057130333823300972190312699391869977805351388905717092205665760241305443998579458746285546819277762347921434988261820429732021536834857657521897309679204070845936736199521177491213475255559836797970114029115877827117541827032286649275488909223294726666570988435345949659639071168469549146271055869838273241017234723618222752340789071685215973893290036003099805999971878855059419206355221000492065369637951430268825598308804836093465391988714252923788630176159972689330475481389853312066550774571043244900179320719328548434598460475185566928011952231387269025133745459987158357788224882993046063015040130752412294883378465085000192956936448464939529233185509372948254736878708025433038339499415297376765767257422174463931061803610520837020118227861113044381304117070430512642095579629704761209893397973840435987830244784464405578403315268984960186730963222749947603372421864074206938303735402208864638634906460459299195765875756501123624794242736151597839725916795130844525660869615223866233222475262917450222220138347082993658218741634163539766676107359097763053801665678235278412306076999572997503452747540162425228014767080610709744330989909843066146129245053489475835412575853892353255784852395614928095841288370905135798052508517900267210524093488490308384262499379019579268847795417645035343649757132991357820704171034546975963021085447855694212771773104716815059477542299923351925776638348430148496248990732446239890225073853515341102866667813524524047468066335703035995941846512189091885109301242308877407210398929530032220844545448369688099012536985773780885228856499976887072728363836726377183272572080989654807269637641502056362722025149412096512476010419480998352707142659196147168187069437480488332710657480799464849555537954911012604941733388129597125086724609875538665077152017148581099233975376146435024938124160890484113615928483755816083320241371286127968701003421893971702382174173491660357973555237206846471826583604991588823271043752630788002509862667684480099390957280774237543502707119945278118924610302083816004597556105594658331344893882440105820484789884697506544275634137854232483001223477601872057488287230702735127876660263531954789142134916794562409131776049242854462888534772948759576094493699488615455172202533151423518559066631662943648928426579482736178356940229711763048929923508511443016364141229928418524637586855188004486509466572596939408034282196359057145571993940732486086708916716754712149342208706199910607743130760946161820819205283127055499969209666415770777625925052402741204807406444339968251995264134670715155415757745818268224981080144569375203139158268787762632048957280768642469778401699753935331224713082944812091121452859048659331805816567307899174029479038990937882461356680945517485247694499059657625925901787728507601597979808030498750010181108468757645639341955668674417502846023598173775640195946618022469841549634363211558430186581446874572185049387980883478645442128562205948044964436068637027260063932675048444130408780004614349216975221119364838235632584458279694626151620115963393191051667419570737310801575051585440721786159495691496343449735616285952690611692712795242967650657875261660047148286593743905180324604450719884457182369419340736987160337209289239329083838824253169982393094790262885173871781563272804396790313632039479427201409323602990264408579509624120002960495802925233790087747996117747530762308729003790072787527290370277864210722508483987582106253803877175312681083366962121062643857267756915927738705100360392172765603303398232964100574481194476102832582689334812434126104717117014217626106145096004824325628446816856252156531363410275643282769333685841943415424341137773444839448104857557948478593315446130772403765896342002593897979917107372229923254825912149945928087346099345617853153253558498419859283688087869797377323713881720110737174041020637497193790074016562762000756244577185127679959798669834009552747419605474051106831761626675024429972151394648330994336953826201504132837679415690253731831940588382077314822073950170566212981119939489698180787402863898514914169062614144380716141706450580463451426781229932542032236846648160341242540618979479247210687009511046008866733451881814117157755991394853980681847412131167750818953143639677446176255322791866169189496301295720153245797311242500210622113958426772976625363091635501896094939087499804298800849649845552356431939388499162236628908340755342019582198938717885692826391081045158874717939873693150858279213744448009250124092836768179621723401799365412181250945945050913243758953856814766131924471459593560370851839075233673903101750575884718450859682299006403795760167646771571876048749174274520677628045293599328244579212361367988685090821404660243909568396185826057920943631016822524233241463922086388214924592811382478071196805097177429304997502915871944117690805731680882030613473837686836008918266792872909474937518171171563744990094431250479503636765179144065869657180726094623548974179659907357590723048494728853165991689413164930989943826960025993460915028191663015042829780665639517184439760342613625438738885747271191809183489115936304256963845576926190833604008378781430733549743427714930759803178805366757860676271936809633844903810974229525052609684169889962261455152347941268450844330728128339134484342528380648498960651910097237970893072692861411256443265208800683894561152936722748681807519928320833504966011365102109873156298521555419187795629767845517681106884653075113433355079428622999134082162434478528528266424771095429249428199037795217780501326422620885409582896107066743940896576503832106248481559156870241491902502639806549711801824545641248406690988424360729160298363773941766641119706338565774687717383114853117837361122995172738193513169425700294437875778346795082493293147700455734597322591382657569330207972866829077505334679484738382233864247748221834509713633746326969197998257948557108218632021050890022249138319619185421289441683227414277289902374235287112451753559357561539283806519950735267127616489474658005802361253973297259861568736747732763463507471412209964672068223843441120157115339196412233250869413318125135524474573858717824208122814513830301663424106651534086986561151458765542592340011676578926640623112057598971167247990230163574055223864274156586107280140885174049608918048912021542455746855282266711624758534719993500458546687789621433837860976097645321400556317909425304095327438059890213141068753822753021013043175996430128384847671734876707211001777200607030726226375238889597566029464015905961395253951249588478841437373416991100473366720657516865021796586166768677338909246139791512941707846748771121180347988050316742434152442467754358744989907913794292816074738658060358513912500449986948605516616070049751832977276774659864641312795141402969075022661195769005112427150699012530494753464155539792553795264853069295459275275591607988845480468012314910628845987901834662105760649512902983171133646029883440033544235264840445646114989849275527076297524213304437382652307559578293501762224235611963558164194317131000537859417399446715523433629641959475505068535252578253611453539645956281906118530266920541753539071901157345836586700560020649321689121211582258357273783962028957303340196375404791616429010013099564437833969558842946293257261368725337449076421381257825662153424526026709712997349004025888969358913475026315701930997435387461521840711729047200738885244453599465825467157508155312346030766434870530561905635866463511368194040012098061814452617835077266146599720406860928008671435182023959343603957273885869826839873650896478220283025661001820616331744461735575998109691169066018612723696379092603768494194116364254515350719332707530027813028615640183444654451245816995998632169145517671440241808855324982135224717912438849264476857668502782864835727510918069337143336880203122772575718538595831228181795666308966120257277288683199667287294911716398544691623604161594148390853872810740759819419182790948408212312231124679438064105804214823572644484244010365627688759878766468802373551929147274394033533949401517284608548868485038909755553278074848245752121502085726851331726698657695589459075743165683849618739825722459978561925172369576086531063737596445802116534429498615692729026810742209143224122145958330818570410157606974994307964506590528759348159395715126002651458363188496114727784542797438491177508805302400803545087741543426098231773283365023176382899739110990014045917866348049685662191754467218146989110288263310907175526831805213858799003477721015581506309216568943681368497132160689483797902058385495623379863124619720027395300685068464277843402330196798166462247436670232326787782223285580424850592607259783554969412895973069941621074498063386004436883700958017080138029700749090759519424776881707479184477501644798912155973721356465591662592193760766355736076790280536802214016311043542667975771442345938516798777480060721265865331468138119319664303324566202334293598605605979106001396138039390619648343459603090586840849000548268707916072188444027789391051284541982812296135158718817529018219597445917984022903125620783900565691146638825669160977368357066726584053017578938976333444368962950784197739471219939777096904436424542073006969852993025700563947736758630114122653294740013269379269578069911291152595138803546468855815883604795413052364854841215196992201369550275029877578809979196887766558960899179432194680712228444747279766160352000105532640966511081155002785545788550692831946000790191870889687076792983294309795261044938380573626744303395879133337844550635104750623146117642036305014778056997391355522019901650724033429344628098839462817915210213756114310138615934650991104171030201306157008185575080497985361085658154047939054923734351203982219499683072986846430474660953170414100002918219096438845534557012467444282840982348430660149121355624992974757953814644535413461818729240891630724394019176843099007920597466294408167458434639836986116847549717779682250093028931891540334300425954557605738420128026579389122103329887559741906313215443548375675764387843870187280097501961145338798791763577367108806042719936009850166699068341498134360833808756778453292073194753413723122164228359027882870201585078817321543855304226442227160453832337425575235569986502230820847617987687514858048929421739865959488730569570378521099241811680710354747559784539467971862365768108998764187184201781647246994170072675310247047593103430799840554956089528530168240596904073556422554440550159591472618110846182179453372928376524486317868152597355991201544036658007409501364236966195926700020145349526432064304559123063691426167685952027448251859600000941410400555933077895978171492748362052536523161668877541728859481204706972899398657995403226020784281160895177672286346788499216950580563733673755778818333997916896947111806741556406283589176141084139681359133273792492970342140023039735241923964311504606875005597186570916968318515451687648848716539867350634663411566288053157032862132108877681032831697587827502781978175647663915897887255827355133393499139873787266528794300325030998610222743162453661253512321376583166781231131201880989402778826706991537961994150463525748714976890624515084779246283041820619636079608367314523915253218017378721315043008927408606483501072061228701198423523947634063690027626315921953569352399601860443608829337684114050024022777871908944513866706228480705422958001112288684101675806322053412803621661924193705817679922361703656663613407637590953370074931778385517059562954134592697613055858337788035946999169872344046557734626882645360024514338183021649755687371994088425931383326244630442890606861623293178767001037532168798603262831266066961611001655715117788022745061737686633946903325831876838336624545459816418257979692140271183366200711671853311722470669268012144229198513446945419446707857167402147181577517790334394857477809439944416504749933023755897381645719962459892765308119423844954329054882094616158451246217066042643070701408659551753936704081180467936890213600923052799386386168375654937999131729757289887368474562390406859611568849704822758670188172640785811824348766718380917607177955072819923261648646512687743331540312483025734867020635725285731160506210227032218104921133422134821827937167320076107989393324389363988455889403388670523442557070697360727661454192521041406869786481372402176201684380041749731821303736387835423048213929489632644771853978491399038891176719245039298497076523786392998567428368787342146878330301527222405268866499024747648585967796722853865498106839541778526328939534756863195532890224484377616274996151880265668574280312671061867075778427466798875557068931244040023030843997806625491307567697788537958518181140621195868661823972351110326895963298187487216537169600434227458754685880318836727265929100073724948970678171237242040286074751249809651031672632285883639776851589175390189564179529896686381003615692723549417022879130240239901180805258539018306364660009914311735372542684295502074280666242497789800098667781617508059490255896016259051361993736816629853504374475488633057165025340555416772755392297361874224629173627331170965731727487581121633400408634804981983475840044157829576663157563982959458361170933497252925484765754055865110735146755532855020138092915102528021276716984276844023173295621832979627434171794427982657903014405658587781029820524305994476265463121074574692278860658626250940414470859041775587996470811648256276545424141626252648896511757231388135745269962378240425197508183299640262256899776853972238531196421499778512940054882420341170576318969543132760388087093828594114189683349988826042179907024896005756747704888800896420233468033032448923760718291353023732009732245772763296313552427752695000521485558169866364338052910787366117068699509005703889176586325997159089652371015414268444097161493884696147148368998424052146730240850413868900101091234115013195037920316518457961190237989224556994169348286296547621125353276054586108257016107953051478244445156125912670450994622690842444469885145255652101012383781546949441661290567146785575599340918932445530799340352695012812402261072082655820150292420509798975616111729029649780526062722975547662404834114676973270685184969786625860946878592214531196145613589690143990202849688377630937701393041694156021572685644648925092191263814417805601471881312275622069803767781979376465456890373565432637938853817540087115579483218178689013602796577109328812357195739555704888797563855345477736035761668763477012927626189170326507603893885118235443436206690684790829534460045678859818965588980107009711110707551373470973139682363680653237174576259003584702850464860741912608816804371828062792147724106752184400070064391332820219109223041337047328680003607091985339182281537557093455720372085579434439416813727653237988998374234047991347031448422900897067710428116828626322993687981902899453431969707602171987535243381298146348878307799748221121437484345780133770432183465397361397856916599508129967585400111051239449719818493281437454215834323086829247032306311541121021949423394370681612375224071060154107726938478099843553314312765135338869482430935045243072207176814785355091911975885234317168442000060742741968956622273817517938566342910695295794195658593423707676196484328361182765057037243984470626423743446126588225135122646012470935974815057696270331930369421375583827349700865968860466112952212399549715517379144137551291544541895341044972958210006840206582278470319658820167535058490956996337639466460663128893576356545381680218003006107814424196601933049033546473369909709103089813233994374269829489099371381977735197154697174529355368002065977423701707558649809601319547137327616408927078706454290687262452229488825350598548592862171964640354732997634871354903381183898934923227327982761226517792848923953652636623150150955094749400169761641191915715338744519836733548135330900205936302515064940978583162080544320940623342731101495682801177724951696842556742031369378509456211985594205346989009693089159277239888857758884729505291504954474291943974688518591570066457081718078723211508955094071331782483991952884711564586851272708407001651984922472552087249412697871134528362914003719587246394034699003849433667154164756962773546800094850376753127069404330992905253926039837251534015441724012701753656694290463785296767678865510225099436752230969019612859352770343293887806231083476283188802412906188262905601281802645368849645964934503099104075516581206585550993129676590880006369804544944046721626460800501137092666363718106159363694230317317181858065023660805263636367560936219505159506340656979368301336260972239850624744639386156543533050123511830864897702970512372886950822219868451349411375196601377444782465954335734442623294951731071480362820817503034097145077050289494220537051863684644836155643614327492884917274472725999360299187533488130992432999951992108746095254393121244270903955024056455847202641428077992013254436647926258028881141459379325380622299773918753726471381918068853957696844302907134476599572440050475440699271255018732499250059469176991032201108576451707543471748995732841953443404765065387377410327686273066173938760351413303940444455958976094478091618960159956275666275255638448860076427417179943854157455086340572134187468419458189880887846846363248899153883885115228763637045328478865739400773320401552167430321335196453400880274510689034689362617142080933194143300280842127974618977388141608121484687897302660117722884608427022764384351162330411306265513812066008023183219228642456433721329072342211834824571336740107388136826716883545345106835576527079076423869569133001007028589719328666638076351776358009578902398415000692268211098211015374812460999173481206163260001724386475394282003713195760254294742734274275115808679347196891543768033792438749324095148493478874898147819286341314377445029039370272525716831515895997124044979000058089242574259365073899150967556835225622033835347660921091860787459168249713812051790985767125576018322878787218933768366264011594110590673085704629918161488040391648079182408428387335081311115971880773870281036512179918398508646049041297406554708903248393248295004311970641122863951192062634421242260409042869860892472782397959509977811449005271693128709672739304719768124931667456820964574239553884372891577611478283115043035230521308273674124588357839965342031086430949189874990744018039968619861752010356704509683940633132032674332848609407475913891646485658881572772376573979653568637117867160204924098784723111015922315345642650085300750532482189162129061421060734657477740437242510467587218616635115863193047449907476724580257821196532333198402221512426830205526980863350579624522557005391502324599495189587955011692482020185430555429426270729791385514070253240807133473338771533327154616347663419900567957798442390712605568091996256119301183173762095269851589582706748596681386001668825963196652443114555720949459784393418759456957080564286456357085991235218687494134558867445331039011220892989447924196455416910264358085556125315549915187661668435247903699705570736825358209706482944322581056223841605342730032096453471268625965189534180233823456105154780770969016441206742778628115384430730438677101718985822787653233257394360660265762533629334854029603092768347728479085177819882531923763416068594659520155739574003519429975934237212718031987923633065972370945590648523160548204872609540800834298620937342543998431750087703578491012483436299974813148108852030941141447677812456511915044626743546764723092065465641737481760986007452926593890559155624636566522196695944652069205132880154124592995943989945347255982905551682493911485119203118984511668994639624399726892463042189875552278086613381498450291717773572399608986469929480984169080377092849399149868116694171850737750900836751904352367604409024588385427771701262098135066045482540520892249857182023855672321992996793675430564771367178984438554134500549801027992311954453720025259461214050367092521533523123472499052502080837231280727540365060924436784116377897109570376172012870214847097979993377521166767664873642141818727884139957356944871691856407724815407082479686591204770031829973034325514481525261417211426199860853996649002379389010748230018167378846839138295691056268745220137588174503203133219896085396876960228296139973149693003449399026168642783777073060267181183592492115263017662407200684897026707753551293535450022719198748927407948598283176059384154212940812393028979431381182454077564139992166846521410924321996430056496417894728422773705382532456127482645744171080154968058498590353266773276075330742677385010829670509513526142562150286844198686779836559537677178369979454746443171410699057348212415578823252477911889882762478145061222718230029969814155599297548162690030587800249570184878792807084262583228553306284300079333326278202151970540867698947379400366497759271876582769495020885631469861894680708609365236320463753935148523902048992137162916080540343801639338127480927397845596480010405347186388831225142090409794193119788097691364938025750911035357170249067763291191781806917793000433573022071645303589160500564894698248467720333602328063016726978923260227685918520929127400729079265417686973859270816260352215398769847163234281560671467327460689269517174033066365925849772743956904219151478701548524497053246902975203067434603954252205794007722208698598400789130303455477359173293251523882133180497556372584692689847910045234842614727056091816375272466732184242460118400830210488217298843160307067390880194744197340181678652031786129195248200503359818155791870179441782876617472120294218785904583522873576789100530938202403187543758183591530351531481617943468252275155770568388477963141923085526144147689550979855155250311709024247284929292886991229072790814712883995612460404081093942021123003446049175829585397052746593211733575120807837182105512193742072886585285447130324540532344649111848243294845270496445357461940634603301100271790883097316126939729879945987718641800932009291001368312564962774791944254434450348169893055827208895509560601293670152875107949926192992539252157463864177169901180712786667300481671621792938457781335855649770677508960692882507212811873080447310931485076114631403370181277689913814927503366539347004333807045021200722456926376958885877701195505315642366540688580049510602793184586177528873226816467505594099382757629857777148435135497376178592160849736436742598666464723805252205213093512442046796375300917326235803708357922651597558376715061940426337765672304912913817373924013080406065091962410727924139337648160267580949378736110724061427092839286934348366122003498771095573318949231393529992114515597644329499959539007218940337915232991455278571813566731993709990308069281656138080262764477424816414789908582844214547475179298404953090699269574642458341809972678666175904649046209145972647955707042982150803099352693751326393501191205340310527165457026721947457688816857946034366295335031349854582252445339130316661545897739773118317092873483687725628958945288999145432183155094677450502731978060339547929601150715801114909347753513174188917617218794669770717505222396099097665498976238096584157318103158086067843641206589349205933970207364448542662432081039128808883268820290231979925186876366751576979396247482229819525365996790275583633161369571437307676080490043531904043006757279200628659723011924747868742392497797511058688575215407617069597645887849897887817359189764897815301679006658931210429671609917150078395872455953327730520534086889135457460878805745105907245036280292079016185713619528845521179855434263926242082817526612231745534334193713610820670098340771499114753231264745346023834197081172468057349433187657030148160821588952609630660997710280074766152125992535313797978236655938864243889738927636542311999436987623617274896109452974093886007114124179254468094420123024555134055420481343534007068541075489286892286575300696249943446491504400320431922835756160369723547987526868750386195986505065382369439377233960531269106752802631282181937040213173319777761022270416492639456173495639611518189834856270754606249249306371902304455927056456612611978716235895075898208909146576513532198685391723217942753628828694301000372847803730862526852661748945339670028510611586635416384834789095828947503557365881829074959290224359683887044801730050735723102200640577065092143959977943869966809710477043967460975727099417616731869437142176157421385888521747402744474930946343005529764785514877050975068778406533348209530280088177456818551195026495204846386557199283647463249122323154774514938433789007436373903522414500546924055433516143192177541256238074921960696786203304210707639355888917533479336169652698625502440549419426558430332778120677702246433710078089260303961557444409623992094906213820923627960014680700397733257864776440566087480964897745379968189690870969011654162519471323428737437319055283827099972722785150106906539621067343498370482197928475095427613702558879172449509877262740337277820470439063699393558789666648668539859214947650447043132070210231997771993018880376222394843019773599119544124623040821613210103806827505829232758833051346987338665829517927852187639889311538658951729557569342648251192254641575465871121832409615983819562919890276645128542859788313499261829979852383998323423982830981371124764973386755512602763645846144766687465973012746506213082495040240176798693426450065883647351944924208842518659293259991622394926920337164785764094968866335494772792250491495372565910270134122068932477567981699889069805870802663450405884623230491430866137183591376711495742713113793231373453803884905817159577430491569198933716311760011110212077443732256601932856146684960127659493478698858088746342584480857293092218060033540919457873104341312074699193533506763402678485098769114336626756517842179040694495777285775728195449770928813897019019448242739902669744692013828771210476774713537250863641776143018529549701506318677936214552397010625969515509269001071934307711700057909880306479894695633384547958348408303227454761972613594981655586882502363383168166199785627822239657849212447344559234919244902614462184586781503132023873916316579430457105437804659175157083450224468877643515132169792862286094794673932596524900875287876851167390630234271504973388323002970917208463391347906801758061026147058954175154744959367148366291300739837736615234897896074852612027029486477814131201694540959061638938092716433943394069857917240722744231678742502243036891464030641234255906294708318504521769933011612629179783330760599567696326139355350409898446868343968339913086966349509225057448485467278246030673910641754161727128936648457018774438442758162684426288683092888929355825538170020848557825268949024218114949520636061071443042936228238426861355642531753859927441183092321976497474621877099468272262393865719790777917787897449538030014143716995123138671598851961191073073382729811502525877482207319005498849163395802983492278578838208937381251979046789335363803704962796716522234913592583481420514012986193056921128157963597822714519095125214258237670931742931383710264531578237636818265465257117894872583472267370363532149652318746199932011084390971427636241642720820565621805133961227308701354217205665503623335706754523488160746953075722423122919491758075232736346501485220712809756416362967995786574346166298872926843207008568988651969930325789066419254567159717993708987719621279252453590700146594630311175506348714971131295325935947401961760084675640736980685625148597890231999440804456459700468474979742603012323486873735781657916981691645284368141702166535817388485005614931293153822057220758718591341576949786107703860197538502820010693854818048838591303179574806784443082617633686822463089628061045493234502161992743597742331018635530827121376267876524954884221450680397072831523778685452513676630528948439136068614706378300869228772728365984058975894925422803138803834463360553285306596360630093023495077217853711154708131037265495381951556664107686436609791241380828174224622224944149177284335707121768037036585505635151369394233545596802939239485193611194348946554771256255367818970783940984431908025268987152970310243223982072482543924498111019910670413752237536820368648928299275970926130102995772867727395771810934576124053096234604621415370763678397010196888624821989055301281339126002164090070792346862103535810352027639312864757101988769853355148590112920736744711896718278222506900822566596747227204776069690652007942868078833355526854690100812172851388438215489879464753700072042618116294989955531895549626937389333120152922758982732402527467674744481492844976583256861792748991350059387204246248345983088168273145122497245096721836324978434647547134973676439293087579575584416999363966594381905791988524673901592217774401521658119902258425239281857053706102893161855102689262102761518579045244056399595655551224522141919781946348029238971267759909453952866683686702121147684610940520500928984909544886866694160201073352345666420311297147394533145852311861077432785904353859304982401218642444017998664600323279483356200863944218860196764119158010200144829583270770113341903395634474992371822661445681258648207596053036221687782508459552975892572831593448006532187146898404156363237555254242982255277595217799081819331337057555183872078412212093427947836174073919705712418743763361598423653386858163721193866993548442626749766157490931446878892868313885910294297991132058308464644558761097134476448883048245391250585313171049612820796864767144626238881247637602651156917971990074316117053764083766926713028552991521335381299893758459867948518724205291527029269479163422801985300735428613007501859965540406771398222592918270705989356409949916638643867269357594584318222984560962361560299514074565074538049126311462938904612490930667869083376779576533490324129829997485514537420284739727352165395064781686308704503114810950191908560469130610684566335708605854083574170453242357231190826507827347815652684193707508137071201231984595996060806446692749143326950028524019786371614900841219856004007404732460519140300017365204175696203730609522299553297108189799038321068341967673445571889699058782899351061825769144429930231631958984821171132503169563362567421324282302062181890837781374705292785087374202347721947405924505414722715615664772816066743234572006911454122356588222516028631952665403809100554516161544803194282247713746263727466259263208565367294336638185087619915506328372426680756928708225816554009852826883530358452338255911692105338400591607077671834472826017720490699491548561156281844903379256090210627692472032902529163527714233456911278229875585932737348662290342971031941777729706571667483852769858177923498640275480878705362818396423825482339631207331767646416698716460147546107726864810208294497179809554521563290417415042699834335616936683542730106267382102743374140909952514850595969309361554326601912989891639587485429118966814690465171816765063453455743387572322573758683726293899962249819915498851504330024083727218530205375904976247439001977043308063765570349886722448670727198294723713077609866096557467688023814378650833328400998983774985617245939745960289307375167598040935073064075621301824534971670360242048517258592435312472841825919657381971596024694344413903058874174574490128810866561314608301390944002461138169127710665138620172213658621320659208929403802896089933139314091641853143133380673833139513291092753092763505742546802072063117709837237657765979140379723299739258162134320247416440335431525569875457201518408889077049107601966579771823954927506479025922522714881236405000678293765773265095311677390473130149325960010256515727684914544146416598951342386172183786542369008372439536968793222742170906516419597494179980451934971679907825805553873565587175842390287526709354159504748400451569905905683652437149487430613553428018298144669529931555192045500306487962749314552095743362257432045875930044457528458709473754407053136432247830898976893258020972442524607025643165724216612550488144618119669160906060306652459453744818601040963480796594034665064311309161534824741121789072503036470095907914801226477378899639787715421953508165397882047118590447947461014501621217692197285009947681533423152392745536222224657431187839621657972209576640397787778869455930118487960452909215157909848237638007739749918308031533615794721778879907617040432516366553945681663146947160700794784461191016074208214767147121513311155196640769892357742423535990254639313037449881386425528795091477810860671895319155198530170257729673926460207264164048593078198066507086908896050955768191287745135751071530773062802341497841574497538067490874051089246144655338313674559789605113760103236032998867658352233228859760630442836596294896045006880100354605713366783759821684235734074449959306958115781114702951230823888917814886075730111441001094444492076154743681814254315603880131118546913076947575781765468420641827320567450256350346304595417259063865356551525197487220996834489718553723932427796970819548360303935622051350573183364878412482726502167397543292796385934100459562737690530756978196868155187894079003148339252333526136814006470557277213655362225765812789750998352409710877706344056195179760966575491385885334238094216536756861159574106854382605132018782144444698252413214876455677458752027566747791815383741171891893956813418275424793843160479161542158299055682636585689102041806008885081623697599059035867501033301714123649462150807568374152232569025539811543105456837825410022692283136390492917570265950842753315875754508954296127053187474586914878286481830668468271264441795198857764287579792944023577315107568054704828598770397817156283820597252806144939709697995610174122836734850377623417998367118816836840792903436652414423129451225495604247142340007275538077015894833370491658006454293136158054291174029540854446077074779900031412624819296073061792323814900365801011431530437786779829016399259338310911823720202980307126218880821253493422998055441902426850547186771467571048909835007367025296211552846547841469093092833515361654391033431943280766982581594994463174842283213918856179278172614219410454774334105531132164703446852839354716695095520091549821809359444706534888987869794807766639751275714095007983398609881023149830690387091212423924756784422609934964482351322513340874922090419529435195229535215414461538136739441320793591359743253833774282788996048411379797519225281004000245423550410490440517143419142229819578230866892499324605480187175604756406929341532514181679067719780494348547527330796126094024783095132097284953062137018474375412282224806715433383664847464650766120579975240483575963746028927075757957251272259004406659611528617484294163553213574621684339002352933070621053545554784244826706608136949702980296178342760683317000144517411236634913172353918863235937576370747340348954640664965009637864683592687854060672486591018973723610083258883635882223942458885006435957487614358849732102514195558478591834843520391821256948901480707725705756619237605172072686495898493519231588521405936080470825862044236711309539335912837265127505040309723035943155486323019729226295486351189506504003565024831652608520525530878902849410697425382825101651412554156570738821378694113640841086763935980558222533024296186797091667316408280469043720520444522909950064286821076351237140092154478552879616353784626082977405520043672828160597358590869109225455642122825071002924570632920565113998023173439153681091583844793245678744335064423713186234961656169476616815238947803403641209137736248417409839142340175450259523117331567631628724114618260434428425839981507087728484756896511284922358282306842200691656565487000185792117530249743236132382566637153459444693196861448764988111374601381831142478016348287470224131062150873600694450261210377462457738640181610093151368877709416484406253239453795805543373168400947036399926075072903958396400589747824848764549643877090090607420911067614895326612960889046208656305555582903996809713214437068256149545258932244299400351413160562780507544141538571763953318554462122348268143954380468665059549502263497293687099797514602324321632010564280160921844826958929547146189377389010098440782589629954417704543825053415366291411975992511335280925473851207340487518463208498389531049640294558622044952474557267608261890056977965327264881073486963755009117845659942783972591846908210343937418048111925147045923938407309016631667686748969951787814035563720780490953777981690651052207040504340131291717928152857761429563801608504508162877264100413931308087124946481700743935983568518999709327697140985958906308449933987105524125141897979773212195804116944380039794725967086346736303389851985957960053002743555751999598042224406977932019593600009529015872226386997272471078771931669522237445562268012980573652179363221172424492790238965905907283776132641487781423758576670210075589916727608677359658196957625385209038716616326285186340974664718026733174670512430816363477080845437909790904891958193480315568519181313363879681075169991233600939845039516913196914050746647006892914850965908234298058158178404235966514792642478621461980762880084346080371834144049438080504372163824235025547429932324658583943105368495198132170718432008160453270609080469867348407814756094749266011362218436822321502897160756574818219704871631006332402224335020306840565333342934578047407965359540279757287417883483803849039625127827584389388319960967092864795374914339549753827287754129901962879567418847612470353755876820865109509773835446581773622227745359243254721733466898701532741782425293008200785902004479156782702577942596930551737712153218473205241833923501442624392091388691619903965276828770521142167058802004417609233747880220607489513920161683658034197556107008176171152133024824607414670216636803566207404378168746571784533264779558309829322739110483258452357846397337921778808402400370533517240079447407829733098207992893674517603212887478665206186947943552239262925503059771139327108836485975565558897111601963980842027753476655598496690089270244112820293445272960247829743425738160192840511813801071611849852419787842279750902979613608135398874908491076907080808309867761460160017524482018248389683442873718474065672828013646799604206419550354984453204466490871562427789382597009129237117323899966821258534921405880966072689672056313700035237760292768945759073893591889911289694212807786978518119167890772549558091020162464494509098877878966221174698611920947589947001296541041216985940377292468755120268798253872379357162678306540097613538711980078257987954677764179557642761509058886648735805903711869878435357098200747525886187786747488155652156506646668356120932691763723397077032141228279877424997773176459978008626111815053712287994551139026592825827371174994751050542544764870278177974898504418699450427830795330943983099207385638695003246136191953092571808624630291984457774926159067831502870036123274559854588784434021359760669617308345797583360553918167685635959979820452432601188059866357800355827260780613030174236827975799178595235157649725932202341757841740364147039098091765779504579244203741270362911555251611382796131540439693566797657788747838005666604161421531965385219143749793326867991646075982528486615310216885898364575587433295851225930917419829934891564774621961496327480476342539954973912937745989606778656032818280705090351105940751357859830734534216320096744449133458814543988797686062595010261172726208070047812956075997524141110684508162015701012016969875526728677488421804076300308364644206000555483598570081338192059995041662144098761103449980470017352781331057686102670285973952742421948356413344708219206811596951314164533030049705039379106035648586209503361467621295321593559142067147991886358312148877737549515261683572780272229196303958155297918332064275093110942379294366919167936722949791709262813109020718945561107205732142535738176724700852362072718933187371558426102704826878314397741439596708651038520260066426858636572004144642840356607246417007386472727766600264979969478913117261885962063768006729531385334428430411126515079756884372817581680246752333799229963960631166932125971954802052633950220247283163187200321463043157457624786632769796500787628561684721872787486536957747299372671042961883398174163033599373618399113817732603845158789045279999609764187009156323357067917675169118416835816232191846806008453767757791269251118801867622986736756526234970976301895172654309379555479737020018587358308967005414978549120689757854987293994389753373902889745365655423951653446717943032648120471228424919109580376482882128321028911826578450852506316845047735889572033463098919999733781794081301112696498006563863088327112525688631582387117858694519141353102204268574243013423589238174041545278391226585044386082701204150783624884056381987336850107563834023590349916084497401343134903575189354847916564497249220407433447936189667055180873295513341570341160605086093277354718343593565621525775034248797698693412080714631422319931894910633591966669925521447254406898346030673786118884814538685886881953882010444157624659066892876750926255051954474221942012132873340419549495385154598228483362137041793923656024393539972957951397251943989369160655925932250251821539228226059243306695877182750224183726346617222631906572476663743065400109302841650026242861512284022725648570925003998852286779089289373883940879354569935611873179555438678632094997628491771892250325231300945615113819980954705489619399356299389369812083477068344434670939489567059774113997601683385227803021377618219235968266883743424632647592067738237267843607242481878061970088098997818446209538087333699080171928269883034734845320075776948020835518779897466384037059689751483878651521421742227356241245144719174682604056623597998038116232655551113095310883221108633280698130183681903700208584426327768448151622410113229265604479399299644932611573501519134257299794975287803461593073718052702064300174232568428013780322622008249172929374395175847008014389985917188437788637381263401486461715608690597666390005796904588476301227014593560629081146337960514290231461749088426245070584567098529634327333732408304404539432390593167597199743040231177300666414471878818827108407241660358566987955022231431105271162310522718078346950874581276028651061623412738153680492380831976329972953779954216989107576588139606844503149505624066438490579423470936074943797009079195761628075467208233623701383061281740238393937118912680752015853028386768561562262840710705947111439329103703970701453355539325066888187819809802131605813014331183351286867011419666471626192679397438321300139155281047804702789297061179225838615140935866986419920696861020558014662887711647444816028446598170085824804246380855686351485275215321165243839686934208909131950708037507372770999134766911501890630550149136136166196384097485604808813848605382238880270679516924117756251708164323518391570024562772639638666788294721163061963603264940300267568860872760297608465523124512119431221734820294224859742865593069204802842980678648861925343414002994616147098703371048551262179431335649360024615198502886952476642958685458739494573207632828648928147353975221111065834085341405324324822759298666399745083526954199416369255868838185722351910577420457996324953362393141665808081011641576675269913565679807862731108373208607986522223486205856042125112996648161998696474547168991174142799802536457534502883640719840075368599107570117310198089619661350558079479947128560392624867139687101127124926634500731755806218219300368066540360908211564687671966096373667589927104452487275822973431864172990576144814214004047715339501204045743314226397926510020726473662904763584257048164276607304121749546388956394670522580976615102378260868068203554970077372603991634466502450160888638817793904739612806995040122209241349249399174758535019695742024000089247101184163698489216554685960397028449382829425174623339124620745979926255539361762705540912425642908309271084710234388265968055597239571023664232766805992435640737856595284098201013880179073846373872941833374711468172352744442406650134423147868438836470322557182748924801289834255679963406964249943326497976052542020950966880925392831278015994467894403280253145533595062509161374567658553319717979529883011096223988578352931959820044128436559733341694087330530738330961248515947144860004832537441941409480376572634283321707339576418683658081463957487879042945877600618656110747875525384780541319619101755753168623993290646813300306471742893420664959088178048392843935885313170899238899967924266764041702640502737145943458734803074038887251995511952077470694732385910149409291639661129913077046167294736977518580576895767719362795185899114552490097608440404145515090313438543020934476254048831720682245399162612564640086245537791325302415119236231193346124005813961980456847136947397792464365128606148605819014178209952889073143400613973454136077409477561080647435642788535909725451719469013251834146471185028027754076515717678068313992641437157085648772064595446515168910786325817872387532417291422702803672025644433265862077313456055045504936731722406227897019471834836854282464520948051706682581750863552237088473082843919257354800565252017827715692113350333026694276668887398075474918438871201480601479067846994299136249665102022761533343056054764101964881657691546305163440644668531669624686521138519172602688450288274859485795008247601628325879321523996319884695644233729699304671262014385821067884251884185990599240705815955855290693635922376947810540994866604188637581548669735721647458367038401687635597398489242619565993169025479640988896454896541008364497993031183880584026042490558733940262255344306315669537684540162233897615698247122785422514348728120663840040890886443980825004274869249824012735954068926277475100996408116426157827551679374697960286313959300816365033327184895063287008431151994630194479456110354900640014964408478147366931956721064372411976613308468531739491861301592565787566191787700955007434675722380245780707909259707805549748421430074183101218314287804269939596590983853845379178299955804967873454337618960327380992747220799074760979842566294675156076767970237613835919142395757444259865264145801153266787593441837490753709918126629950022053037604308261911174849521237174450096921104180229449162801277090216241412840008349073481907683179555483964655778685285352808117806480725135467442489374531117091450662803616770697437841269352069966802167825046794758150185902832164793454444178792361254926516821064712247104045308673487437128716465786470452016144103854439884614830193850707881874909749468264277136933318442966109146127020861873668000437485004799085271334000055182633057847385564288703784996853147209205148042899935222938953030821094310413814418425425659446433567286049780473370239160904004393507976445851811421431793951116040269840969071738242124139533998698953621127908417410329376269697416125926756094371355453560015569608673972830546499112606882511756751425927304252258805397371206786523339741551054780468612594508520755197478285745058830009736144048549512280941683645553750332835140451288714194475985377786946974791244260129876952397236501866510329463087419424515215740007486067065579564730731679737846410272020762949791473747204220839770929018430543372505576108877585358593984181744922114770487094750490194340054783221192189444176957650129512388927512154326132361046211865863660447913684207747971537549339805244557775427413410551510939474888014688299199474120199047246279928728598880788486843337142184269060129669311408189950582293723354698060359492623749196097711031992179994792090277267828429427518498180947190933520731732967446496159838863826831358817068049592531702435310627282920592402572217536612867058885843601333178556495624756095546396987535299252732655061618987132466424838476675882614398888801842953746236472631567314496125663449930677641312122144414843987102710855208077784743088080997905847980959322968802859740465698827900208930564717284083008708723307119432235015011182972310058217491622918658058005107807704668936025535024127805164260628277417253972563276801565703527697554128552114245951209562550949762182116386032020936733105130666610192634384182505438813833545785767471096614162302594861029354140450202816617984752279449223289410538869703979445103739663062571080937571379432245943162570604028591807800906815526819638968378139343841917295617188951195600301009232041916621026486023105238201612164256586207273107213832015686649892944253705431396594873840550112791713830829087995663528550131101430502315109922192516338767697796833888423023676047464100880535363706794377234180135335517239940853099698171968056611455993584091655105166616829587188613308406640186644832325782528540822792889589174592546283294005458940821027593381194436730411308211488628677794539575607508200506080541732605318774700004778706722785897333483959104373322110895315155302961923191098209858825693912863081318360035980693140215110878320386079140004463636763874962795069251855524024069676945407558734387237241777418020595894294122941832747801986697795275175450109285371324153376377268798739292922708123867631682923300228622909380550865069857854852621975305202190350160750098086875776104990820467744779400508334830390986625219429702618307479537629724589585460615913583126071153319655220332435607890545485457986343411050245754042077074622131943805361652931960035990458093848026556106502016950431709883821665938707082969105019610011081150864681086681466245695923735244546755175371430685789387082839136409861216362261801655731329299700813702660218519056016596780965123675352294574192839847701613388922075780809052009873308263076550260811510523037312142058997177657006505037393035970972240949651799083058389114637313887402445649026473338645590654069540427711626382741231845130375908279926492565074895664172085167276227571060700838524736375304880130789086436853791107800383081018008080016533787282465851138601134094006261759700078364740810348278132231162541282718546319883445098900929329250489527124633498810001260308080157397966310654053190469999320072692340923418933625320793908255795229859487268011074854584091797624830383119306565715807781694857225485814055464886466054690007555240915104022424452873792526226596862083563050598145791687033002463617949280060085557659658453454793676211469907187493388691588390907049019711769635321496775753262277762147284648831729240152862372498214842501318612002555140741500627809478033478200490735251596086803523232585674659938839980134812410565964658925620716709802105239074925834628742581374264356867993254287356822629412644662453021306002419983636660361318482904585862724890528081820689220081285654228184898008092750497373084443694236596958715622916233286493029544785749191106038963841246058967252954840290056957163527011479578102239949409130521423934760428712743359419747439546142836183113218955632638620267756049312911380944495226592108763338661717005250484038670225728447942237305192011902001230761810147864912404892185116500552331197557415952386042105060996865369373731064686262931617280630905091863415536388019768375232053918083593838216121531712878225473935593740341552979922279874264869133806558891151043528616636049527434881357877720364791344077073885214727016955779597484209099158564431363481458683393115575425565408989240751414324455789737703714366942798133366787216375342844554852323252691394414470518066607019035017559280001478250487332772265058171120200487156456200810748835599601037738621249551218926293228945763014221192434856470675455175139706763525895371662198324327035614412119572137691454888041019680937520079350904608693267196858202578108624951912798094499595879109537469313099904753409829635595132474652401360716205009510468769068410217340252929007096539565833710025225804394308146171055478250509015865744045153493836843292789824705500277415927247066883689101825430683740603848918871526208396137713797793531293929159444942614842243534186085058540339593823739703202341667031728261401043619562338752772081768523679533573780958038411614894354058877195822835331043225857169103830333722524556076548988877353146616941371660190739984836540260938162074000458286383496822290574170093557246060783116742862014944696715282615142691161102920629044364706317999826270168253618982257316976740077082451126945029459276605687536061750551429153185156011261144240898746964482413475991723882116644641831385411656376266685376885968796471518202721414702770707388075618217130138670924309583462113771954452651123423112988299911800532983479588025646014710791333618336593320302839350651397080953873290344897290340174944467190061811681737519616441550341923609753330771518931700262818167803074924818586855059698370666591266976261359560699859119480055896041279564046067836179955938839756114411044191099625454715041543457449559106002736947645936300005498558383701849910248273017533023607874003533801809630843345241946101132186101430017049417159193547257907545125982233043852734861356281610973179908182496523050901747610410668762940357005947820238379837931910691529938008097442140475716805137778875970164549628148460696668264780301849489705357167128021567252703169802702311360566909695176610489798903523877748320946957167789837085135532898769366620164809905471778979661523099722473854157576458448486081088447650209874260491800003586156876651150973050876541951200957718941563523285088731184416477091782083327788697656538957987997181040020025532086733782464510046788654853025496011357151980452473107677475787093231782658971096462458696986534178581737197094969756175316212298295938546561003650058007715803060976320380428205271244884929959565913798301060055661836698193889037405600785032885439878095883492528886229843895047072828848951191407041764420176779159869771726906709341582583007440402550125548367494167246878592164854398445330743711215433463943712556756849582868990969882871832221129855672782677729471590229372248456075209192979053501927841758656205206370181762515068936222297241242939206692351620129289058066564989154724932952794553461579012038696437131803800373537163019446289272008079588161614457156089135667716832897593485524102336709796469679163047571976614987076430558062719187451180071072558296219150848180495825115614329787764939345516775073928756427845287464728499069460136860093696036309036404600354662649073865503687373606953779627540003342608840297899190462563805945539980448606327290509427522617745361249697519924167083394248702998728553556750370165966021949421307097562243905804398020497207444064711536447851495717341289875823557315114761613053336613961831955391222720289528444692350989361434908499552037514367854343160872216009238050962966949663859051069837954567534272331554745810677712738461671681113219509402246041632309319714905369225119854642869811998168926581364882476051506681607029979958494945521598659827257074654257335733345844705224084779236676344559746477243389550816899616998151199433012145370957289117664348157399175518056660559244687205596758277551761572088135632434384768033621935796446742511513431553794965112548532756227112814010159386587524606386170994723457706401389889679616103244668509756629315421260989119566211190799439605851916194963554213093389651232094642239874154872504177375073960925791892629510740286350262576632311482170994129747072274011852800279536977675852135761001161727575501883767449807983662571176933801279433903766014988550657221279179838535108543321629022607309018104830760808990617874784231018798185345990310485258132577565128986985773324606187280034175825627285469445415431258201828962729703081407056647267641814087769073855731742241953999912642772721712184791635424749175010635230868599869312276203107819829993351963693735616675435110787000010400312112958730976857498555494614843049104189852107006672174129628044704451110964329178692551577231244792792628652201862225646588281619384473254782355073345512349202080404438604034442193581606940118441041424643791165658017541406392414836285410381790463549499271458922557743826557026176450395584014652857638393807514081910488412671240211428289937771097592157732988478854394985546351364524100973159209560546000232409520368371126261658185136575905633006503838434001865186283112320930506794105710186199633941928132759750700686117964269277725785143229158628553338780755112284721426878243823544532902422568540656623875783057854944991544446817292916797745128229094682180758534596789098793868211975315646574208158120750874659545517906496379193098150963175309884421722665802516218671135408781015939938515915071890531346456707764239480575583469090986396253404783049235446118234868191113542783394025462097027057214896246810458682695373726940757823647023992630182002266742267840425458627019757011152033484113347029518338272842667152490780513028265465021212163728705690350808705917775979810682394230706450668222462189975734907618341555801886418934123599316774936135194974458463884265063966713942590661920886176715624957924215579349665288730839738566410468952616443793896412563500573620824011025829136110012991226632731865242703914096694633437766780133830505792906837316831732294311402851180768726625035280577355743360185365123732659724209403775316100625237766262870482618371846178585417133941159497991746553310188730631059045682217011076119490211990127483819547731155587916485323987444584450862512936657107158726649598329362366897917015341349054387219139400510027961249323387167218293983989174392281230043666250273147286664288225936147338293001812713160206950140105643027255341001187822515864176275035407517126763406584585913832155798617744459761146717195146955742461238378889789631492502730367979867107974074276151149337167486657992003914638594066698275425266805060248775530170606557837799447771079437166497738290661214289617212809929530368966072761713598666472089305794660694597714886018484430502972661861288788829186767498674554815021605843736854212340103254931600573671230325847661636356838921246124744746350520586554537850268242946349392106231336487694731214080233254046901232212304243662353310992492022581597114912806573664007485745544207756519593912874432285642851905180598825200306811744895079259490505342205094929598425672958840810828604134324895154287605112536969806455136864957749596731797611430380015106220071279485581568016360026328001768155657060774793441732624928853685303659026638060042522228200246167829342214292289258118851707697773830715656553264727490837738402979210581451219542933094327394855722784557796914294622561359486263059258719099448105126735389146079693229862199719020479885485269060326732025380207034005662045538552343577301421264315058638121369265658024913744731181689231832407942033451159913393949482805744984339414439239552083801881754619187472053093467547332871132922174785944737801826694305070059830743715117133178056741518387820203006289274751731852285956984276280458673525761676326563361671424427792814959997486465069629369258374349029040160583293252115454885218781142438765003020408748763878965074832928969584270035085918215898795258442718194864014906028640006608046996799072778262359579207150544378964611796880802644423670025361684712139059818568118063699066655311391094683934659922086690286383082505208353934027692641496363465168449869534921046767104647468040228029704308109834593171377154473824707181524249191417361631201717082663526900227927257513256624571823484501959007836722945730298816903760304884605083534353262390257130673394906532468219795436255879298403935662977170810224898858044425752539309465703552155897664769016410343235772965142926004552198383693140620776927383471278984695417503575876812770372345653459391288922412422135751961698532663977555967666844382962040979654070303522567208452749150614985946502781390285720348859686377411363971527507525839688082407935874222135436245900084126888571620177296603343710155613615340180276767347609019232284409986618630607799267065259538685091574392279317758171109516875384372884822288751858896209267707872461197359338022466129675357864801201195859736048810829390132789679328895534337418559644120909150542397460896204010576910263487110494839294232692155879039745917169040807544646472184882358298196564831932226144665631398453844144488303233335044158947138822314930909327314651829038640172235683697560237970304657822518809714733810425937512340670215544209813921534927434257172365505389915740316064231549833172727545174767043102174951093226302422659107118137715046246924307055808909727555894801712956661908333896591750868673408472068106542776442775628511146791239460160532312015696375580979981376142900770679489794590755824771867308980026791267283240861684517903600539036680114584958770757861729665198792196520681872858237674914947007758402976900463266826684264783413839499916391287776272139353379492846142757659878705089076602200016385505550862203052834277588598745972273570024362554534166645937062183908047957989563610999190939795757147985703420483014746472849488099782482599338661851246113249013728052400432649763380082577854763078964326404581049486742543750081993931129199453622083801903352163241816113490648486714645445278096038642016964340679451752171649360563139314120157202200384930445563232699851061086107150692626737898106511316985180360823005944849801742275199646211529840691287005156641523834330991925955882707256101314724414324919898577194212035117495389864556921893175178408529688057436631513199045769132722117983579129618281041703451873517234102158743160606788325926513164085834760470197331635553064477540917392108058799561074315756116606012901521317760637524237791172436706892014430903232795866535664813548327780819900705073095485562511199500804517921571133133225937881998619531592193789316754697991062966722808647690548211867435486990670052655037481407752463025733048978198556639677700263696668586692344734198304653390027637330444854277001810116955488625810613845275327501607992350324839044429272920484394339898893623724407249753622533880513228290742387669780329838505837486420458407134468016419385224510956761422341301419660208537398086983999363770360334460999315638985762430914814075650709817638307125732078964569329079950807713601028910956092819262713543732507701661331819816878387721248122648555505977783334797130969028059320133917463181922686586972512598534956393121874259240378169295763609374517012846533620545016681205096053602239251566680960276940795027228224791160694337078108695428086729668351603335406602585856959804511963713008309596620786615132296445473870024356893194224385779032990600270587226755361830344617060427417305390064401011436695301498115026478901549909347352748697395458747226034481807850641282437171684744845469975248850008061976589547194400233451746669031065618967882274932385513398230098858317553491943188715506419555655001231384807282223925858735790671646888782500974116627905382698516157153455310088626437919588072782222751242704974639328189495659083233400624128712908694447279928700314960378004010618484862525772008920221077364309165689393174244148057852279654615694368674638427036460457718951245381952986603450767693899324801457310532961586852052436964471357634421904720697525349828358555227041859535599530083756399539338365970968466106029463783406589856024516634960903312072187348952651895167169233462981661413866277727267356662491069852424658768802455074120033235805783200148940239226253699619107828629226298867812411611036925723238203424844280113251979292099987600622216371192967726532677121557574093127400944351758860208391982871922872455047741558558558108876179665689937861404790270807384404529153443416479223898888506896784769422548712504148954557908331299687695140492194708717778107859224721182204363463426714483074621323519850133847495186309965725907739247682215569357536770466470881775120763559194227132379505471101458986141065762754496779855207324050975883640513269557293321932147658000397128589304363773554928666152490920146085344113494681808761020985498902622526553378570334348242447412459308384533448278543091275008321682019691485921289396305971249565448051883350727472938918972359656740194579945029189482696511453637137759102779522378688159835981894250490673998001128638717208069949801725366914386173294278709534067984150637719567395857632246406691334375531055925790913293269850722836174260458505482722981936383425665762680574632506201103159044927383660241616585089904738513083664304907531811864975302995036094906315881822003838379213370865343484502638005941967364271910873067816036084560686986843190305569204214068871843617798645921647207201187543551590637760233103349504421106103480389277426354629194279798069445432194753949649978947059655367263870294143496327714551542677212846760951549728133357904723141583672989961678587489141602305126458477901679419906373367330725040348150907251892644946477013525213117470244798943670268428599652917224686407556993691455794778140719027816734113568423251124839493371874016649664916958060046903195004621999791383135789301600655995384672004188305990844292294492844610606193418791646635474605679246714771820846304846007762154590029177308603514095482427560181000673545635642486481910655970347564915867662062658877958457367742128870722801694346298053555534484324422435179988635354726520686656385822524904256446601744393819731135142095669789986280394522394792175350596975621997523930287416005291170667814195895165765616285159826941141374489081749484312415398153334495900599854184175607430727101566400911201637897840196658538994671706818698362394154022191639602537614043229710884777490438194412156859036315592302185233017605581811453218033461397237042587798499354786247843471495214509747825452366087716899658625628720969935240598552604141296356875577092513376826135274019702601711424525037800322885607920950808186736114291411670831432981236428208481190949346942850395426328418238138407668561104216704492480829387342770212855413266785453493191574907472711866996175882051203695412186266986802695780485796454544099310837820882900762972768430293292710077941866012370548715771513514066240885592290839494179769284519788048414180752156003641585330118157601363225955636769409132824718165281546847304062385258131676605300171610197942198755837040073000871281365129053222354647831549675169461537095560769530299112136035275938085144750660700230045575471126255177379552663545609473352346967854762164556370291814202416120363908435267711357686481309343141507536620833759609695956382761627151357834483862874249364724494374750933154372843562883646439167577411225524601127032625754619785557100271739565191936597700828554262028207899739542809493677051212275708184074848174759819139931017918836699458688838563818566999098300872787820651628449486571698233784367650404388426586164055420631693584428514811824266206382921009772717953559397768048299277263439354432675470998600660341001663066725684865846913235544379731303528170827488915125959750627222149552947121708505564714773654177216281317723162335884597572178605832982130866298163420254585375227973012627012745711301594184226498677101014021475743547300134504633280056111295119053577744345920450889533038505769958615568855211385312812560718805871108317964452698864891766040741036360126526684276154150194617148994838320742181691487433434665563476128615670902598900668422665705397822311009846984830896981823986851613688699716869050282058981174255261467620498954356682389484529229582074151133426347355936285463757434165635892080059976304341637515937721715438860514855124695847750133665859216166556305714159932802940606712589302941762810834504470150244891012089624568745930149259676833528984415103830293486024147561638330630676994011926731852219962198331325453244444983135331977245324616017671277194215072457659331994865779159221692588277941883659285759587841183943088556171883692337583661027182004650515970614743743766465996064680915368749319629592384205860179066441419569704854259300794346481949646989139679729060801238015528435663999905684257770134025093429381537865754766234546917857023156064854017887897854848264515417240260907943434507201001610120988062229672810198088082110123629455368985709826624898748996839597291883866647746404882142028748936260911618199367228181141623049915689777272865501596097792570865198580152459421650330655589553687091365431201867665804183065859365906384718872439740323421905671803286127665517541124827311371613956372125125418486923851107110101076781466520455412697389783428754121731918692971183540004006190466502691683400437757484352660749231190182374790094568603942954580450696073608032715780772049149628792223555856001561389249876939547666229433726593746377310379331253675500243931499656686516571665382907246969092428047431866344029502941047767732001510108739701879637942645623390782580673620450519146830857805765413086800984513130987627746059682671620739995401996710018967900032416697007679284307893617949752716390279007619181854261446751390808992203865195918387700091086099057651862419446932382270069936583372865275489349794911966317444711490959893656886276446015372567606187607824984558973327972499485296191776667128211783586972476739996539836490720629958053159868224136845556805274219664885971981170552981136174489958568892531210006072638770647753641235686534752125001718086243422885905496969474621486550500767625770700623524319278765414660482080431417382554279050851895149681104664215265056797455037855113597135960236558099632372385548518126744793100189703718722337293228464604043527680590489992581913195600503653349182805132866830814781925376944582975256478856807499355391377196568648519004878741385523821512946540618693417013740243827514661233237615539660057662950040471449763356804744779138819091782208620224595632849929457428742219608085082193889522461997336142704865204301018022593483359213893439949281082893214382664076960683684900336641376593555006257574074794983895453360020328957139118181103598442486951060920668060435260526677328299637809650225826458565830111842143951424535726399840650317318409240045198777462796974318764445066948107927529652924173611409747942029109810936051357947104212649412333352347135570038846946381498943192221779817580621098111546765445169791718352955431759854398854508506267687470412702371248742569311428440988551389599333553778124092062248204930352355702289994471744697551281131870601070164402291940485835357441566455046482699512091626156496728363061528199191779317227786705533037797917291824623803058500754779272502312650630275962085513941050244927316343913054300337240209726869115332282063037991004002565204562614406247305046811487794898085182968671143147405998501545266447214391342540457722966652926658038386256735694988975286640507952470801008312415877768648288310500027480022537624121480318162295085679619055998476767550880735634605068417933391271649134266656665596920036729917984089955027873438905597287242343245820619257190237269483829904755670621978267165041768117578461031257122647451585205595665678103031924133558876387819909719016091188123598760946605105820629668769748501651971816679282330081777283110407575236803700045839554644027675592056383527141649756719600533692582842092169591314385383259305927579994925505963386222166316837611796789573198382880846846468302553897870056157480644521050940316477658123884540855705222557813068589289113207555972221180110349454740678205351242591899509447167343287067921171168766108242295840994490299894019217210372286007204891974012393550411983225568935769659560951786583946797042624519721191912621810243211028019275967641852466850540518508385827952888484098639805055012003784001997043783845499375293860014135006097432657405634872085608899226772824909506965566561003944136924080711845891656616082733575933707863410355951094008204787521373355504628734947616623463905198928631926615893379906901565015073670991482627521577273934843428174433552325457905626170199884394320928046809850781797377853067055086624853725157457269778516461490412310562048258999627210915221648334452647557805349713087632815728929751788422086956772273228711456461629180951417537582198111381639598296293188397931673191902951160483728052682396138491592375350534941287810643520846987430404061765000224160589294141671523127722674126503090419847540666148879691194969376179238861494848409163349888450595672760811658831968572131716181526526950051842315487326539089738069116566435748529320922671139815178942621311608718711235503330335535848640023312535448204142621227635895060847683809422740994262423241091023394358824040144303920710697464411828561364116376944461083954400786723541017975755738494893434509236953603315252088852935887976729698664143684273296634808292180229484115927662969528974221782526820511633690949981796035758096562776935554390336048696382328308960113299561333145831635830853509505756915325926824472365126205847872994690298905539890882221235924810173756437509185950485337698099343472037939077324754182259241482696066080153277818210494827299024874950289865954034522296375751055013486648755384517286694825024188177825869863308779333151908065536668873574618936144175672565074735365084378903258820127281215498928512780992494551801756678738917499135583959848596845365185367891828572671651493452793410706010360609884453324872584115781091175951712955763901177199994517017434718396575899793877517535430540688572661991526189490329334270594968791325413513578189699029180207472107889085682242700394447227387033384120663914536426930924079827333230672703411354672327636428840336040411553421958018831359511115837325171059153146952701217103213732713438568226850415717899406138612311988135425763281029501935476958232803053899246960845191736185364304390089877468030088816924124931963427885131117373409309905230370960673528582835781850307150956740745303296401165804377123323008055593151849086637461010191729139579450973948832558802906715124816979595178350273814548823208581645007471446175793802465339118032647695084947180044585759278362906352314262510054357987372412815806625985267535306079352154548096082863690270441744165053634729796270326283543679585625857167831959762229854656249406647934393507047732187891300702356754378371955685801270246854599539462366020750840453445373949179413437641464784817155811322115745233144981910814065056741137314016990143611296207779188802680815731553020672085583431312873295963672071252270531091644853064929360801857950454859628961255916787581132706166159805941068874648682257918739262250666277299167908830223123149482960198167853013071822964334711621112185284549780003078038232337279517242740287977609380012839237312080991434942360646288457863621546407078692235512895080031166782837947701973803622442031079711913214533684497427768932571568254301841771204931708855723952151804682030398460372167059903042938062054718866291725668025257268009757650189100371434680438467581428026125632541819319912152652614257175172643279425724548572700840358111671869143747752178219593625527971123182909937374328767399455181635015202105294965189181927034143582083741762789185912646526349029170103541326441187569364752232595783163217465784729171230117710858164112793836471447022058235387857872973581956461453131818336969357759384973366450273845521231571754272540910511341304311624970769021202950774738779667273313767660895128509496610682638781764095159169910450657743119919105262399016228693904537958787189554182078021921399013447544458684231568003443322303103520067580679466341679324463884829191191650213983204282442734256813832211151951043793395803721935239388665229487762563128706801009344819997846484119418231531382365415585672823387383715369829390326971206169607956225339652211977955726068529483680449829888081262828021644242589178146608676081888956217088651946873048689147091091557814906884987849213953510451324463367610582822072715343192993147697957186772460928932936001833584579418474437557288409926315260621631679168140940421692499906027517077939688043358597973028142522838044131435890448978077770036916175757667859266820495254426496424318217578605866816525415121657422127540734073008751590951695689389991616796834070165715758006181305333993919410751366073558859044251731814027816142614677290649300246303954418782107323910124905710903658904146626380396421748154449858146323329965414605480693364870056680921688537890434787754311058927859564132036187765173272106192201867082797412223380123834822057928476095293809521097581795753718172183220482849753538005192155839766722021501799135073671528336317519185570605309061676772201434902003646044669044647042881153476013349178044665460612648182856091892389301561283404181977084971197377119142774587074458037611039345260127609920681046875207423322843414240546530050108050350317484604767804164953066694326859641111344810229946575635890502044547572680401556180838465106916675693389019519159483437012665195007094535559133254201613538415293318316963569376041363091090174887741509393604805456769870354665660532289566950494831048399425995842185733013811045477336882484153978021737670604794077408896311165388908045637804363473506515819148376247407045994420540066810633920445970853699095677847120119510232670069616011444065188167279788772105800804785184778853589957720071398795808968635071922513074833889050183293577137956641741840293738694504572374986841538270535171084094012969328657683714776523459746344857125572520462924627333051759988605494971678395634268210328635856404812681214994563762906240122613082333491843714479730628472036767155763492680154728482010809015828712179864659453867493733171785097437433192564117785731313144947323308024554535281446598801130626967167422049083472075190981173083713462369734543971352370663029625033471426466725674677796683273320115667015150219497099611341224929110957540685283252097476331819105358188754503490564266834081169352004873290638888370573522950307350062227095625530325195735683271002905290721512656547997390698190320914367179220581718903650706573935239691140285598043360032112377019534255364718977211019035825959040754115785283689782370872632220156904807851092231603430918320974529225578222552306932562179566987523658440562363000794740047904089576536067559188777780938801645376742545167396351989988198050857211984942355023025304681469089437064752784440745404051611609648998077391201124997820083960416183392413896800450701806358192029803498753838475613847225126667964924872569345182283268454627358277488946431281484330076079885923211420944197765898525108460093757751118930800556295125267933916566452330284003499967377556030144075828423461107176485165893777752225820059977211404438816373449824402597150538486159248233219915414912369298989120150533401649445729781746325416395935842048119897949999813259163528105713321591705673097739910210964931937513099377095694497415984348800497324219848357866034112912143408729697132159546041557381637086907209460072230188589183959603885009034947634729076081203500657786548258337540145703419972459283792050163874493753522652827417470296069716266652661230949562193007005068189858200512825553338593506734968391855918875611111522090966441090577642772443473578300892255064062242716844322788596764464507475783167845066608775314635043471956857572942456961815548419110745339305103820225017653518314191637647839652913955299324879386631705042208944783853469572963068492972619466440433908264829442840096242115637970331924869121979136147043990982098715308874969512209088377892889312330625889987477775726988121910310065359767199041149858781502861617482360011973397717154860535034637981372396423495942071523818468049340468002824895779399122821355147790529781551051833040763803753286041413394988892189149348126263022610463914639164282948254628557533234638806649025250623090570773923505442666072847527098467745743628650920931775118018235026367058811824229757443939599808588883996037292113021690034535213918416610242510264358032051143204512999538193336111275408421193319039709182082112533183172061613088965664899882223201451090978278127565121781018754504021406960072678243549459436999714348707563186934389292354175535142137901141317948522635258091288026538476306492033645443024908609346991838968285235559746270002169612886286928980312163109974439481943366115508734062345264841795835591101759173428103299981266199451098635426557302056498052925341980619336067204368415603441530961924094254100703113938645900665219552084207915591199339367192915950575579141883437713038443391692416761921395458995699820769794423359286322650074947699120157043638661616748685675886179046536566050528630204237358050365508323295781793883353037247512324457572658384031921459605174690783424727464881245557758591835692080485255136212540988609474206221265040065762918345572036206485284182861080436463953222958956569449201819920810187652283002995574311410929691505777399798312487416426242151293323145473098995490138172000394481340149725876975017173178110253231793931766921065965240918892331176703853228757572666663523505625598773721822948151196389918592994839237512879223192101031235994964997654696897424733676950205475211056381077337395347796647057015959919076806464671357186130180984586683172200774664242226918214345631946440150792416195409796665624452307126307318026587036311931428765295637143763166559080917493607960287963907462474756067147748005975860101234603842518095203332282087843929624764753981147203181348716024318527879871819256108820212442855100308371002911630892008127373264560265891998751386649412860341027135062220874212015475795763118425274570881792948304240877577490357217154686937056649125018270004623048115558021948711597349020492336113854199751071888837467771005091657199940825083437919226784633944282703908147085099518962076217220845082200753850507466816870218801881207870955980361663553608490647866159886963278901353080383217892685287594310958251520771483862893607997328269260925285604939317837279379839822930295947813285625171574836700836593426245420540892998437514587439053675771123943480511018182149065289408517982325340903549569107000197058833434714872708274976232125977742930283242289457570499864581689477974303638726615253242139303462310467008174420394478592026480078646325760936137333636052429956677969076733758875593226063008901185236666508109663550984039858785060089186374156536185510922929361539692206136922970550838617810040757909604465415464734667263036639728238797454739940739137751329945792661345595675365721255750254408918278968774269554596419385823445715198211851150041380670853176396459202647080521647263563184642459621855120910432127136542081875125693581634358878828112384473400042840927897515964174763147571750360080722105446749176129700675547252082017217404662355356486411251050631843327526058891825370815223645480922860161922430068026682612500102496004463355483968408001943007597806713073577226940433008821845619688983457559980630067401877459868447829011564652603434365649086733323322885378708744988236667315826782767614140883165839188032773862258000279346129523764235183414896677709098173120161919421285459042636806339866129413541851006773493697506278246158913075288769312547729947947094428740057567504689088591106090308862403689822534188377762983898653435689788497936607429895924399052068364095969845535357054156207246199023107549408594206415306846734555533579100684633693009152131020447698075174981998135581079343800781786596959493199594295302765447228516408452404746399182997971244421393232498927245297119031788036458760008061046979635976103664611623944668913481518900366063865674852862512706278952251953048236514660095973823802950480002774468896409786814601531073683449143444119110434081154984338824045738463355140299750337650427035408859814506476982638985954383590435513950730433518680885993397249782929149508132704116035695772674765963922430717732491548973126899726798628109665018646879833105432348757048343159065787944875400839285511541843282286491179663419640839229802176880541670626738138208593812142512246247003081889523612814728468678525290605362676889027656153126846087194414946187096714688674981771866980302901360521955681573002966134059190118396278986267745545603571765551073990125634636058211480070383114807487479671143294161091106620086648596349778339610637780835530406591154990838656765910813268911791583916660550812774670163311998338813114572621349321788825201159094630006103852925948282331966847036102804682004619769832386833211816683249719542505407231854149261089442235960663968508636422398854597892752717159242234946174294078686603441384798352070809765285293700856784926130366255011051200891629264743071363961672443759202588335797675988243804774956657276624937846151486365422611206732152294671902883562424533805784324941741029954808064516752265225775055993364787229815068137061622162978655594601316096397623089306115252687562875078088676482759607759537019070096760730558536937177622398965424274918921810064744735830642239624893783856782810486003070037479298542417976378527748310119106300480620546288609570230109788569052749953560415994995876186703170861138618561689038163449370320086200253235278106499693676366937845176604472141588986348916208755953883065078015818989375358429909801117208083958999989710433344583914838082047514959031399306551996360610411704987810412379856341074460231889983879702010773277504568024974294702142479251096146011548521721699083600549253382191385863785531948404327259503171755980960779928953082533056721895581420158349046779095352516304105535200109103033079846947648090204330465799553482768674273085925321424816651876949728956674623510701159245958865871439906115565931069717845949676905440635566930902138196073423590557023858636739884961470352448706323407597956955440682544812811274560795428199652760946187958581582018360055130214279227377421066983662472131033747789107374877855124831978302893485598018980208245572190167239047530915544684458253510290452007572542997001802629236635129380289431882596201724091198253937081772077220712728732121744358476398638069286988410163582524246116804381422644183667431655021758714485502302479625333999325306097045740036710324858666230013793937499884581879459179948998282185623079847963831987370878647639243132252088019524262934346411688107076830419109208162630717555195182198379559933212871386047186169656663189778225002339414935113790689201137734607784746097130547430116304221482044832706173243826925896607148713718190169540493566682388246882094686663510209758156633183742399748273449292083080820135146805847486088528664649015802147395051732681304794110034623553976053408067426155302045040064646868763238700423923747766823243452316504283498953938706535659271788673324456707567466520672019403447122478494895336476775442672554346368807521652890750628440431925793944953600864264522194479144159803403935433764073156843483137995146742305521695362131635721795949195725960440570684480499866237642228600314355462758630139050419424209310471683605454060057346033821431305576166101509354903900446254475875838905033270669279210538881160655861583768369421701860737056926519746794934233043562037224581265382506205373157072966124874234736857980879339639265944601318264208064028499293007064393291427202781469650834203644778246010534241419550780080715235140271799272910380282584593038684823023075184761843458822474427246224127821289602146517392615950509915400525473233076506448073820314130973396302544178749576422119366818045231608844205343809214878423885046830880189305281036288540404917551542130835447421325179389923600325393949575028405141654644334753143281292205026437336625198887376995730021114245572501649981389801200215487013525452063512894184518094206346923812706167528070385301365724447237112128920365591876098627038783537313421893839852347393781602806706762126835161384683963363690992783585304432734177889357746048621608640211455319438948910928406603848405111509599273991604314889851352922895621048880249654255300785809543609218894462483924986927658845518889059388547500737909671222985130798167559060820966925493610049534885326945550505139994679005390854791825499208005609926401003758807355482082468697129739273032118681954622800548696300245190955175951532490583734417800411350619814251284204093544654307901381406740236904780841336471656519564851566391006035308926630309485250456183517478312504105994271645350715864152608104772144908682172290479325636813892325183676702738909258597376308677061488164855515941589176270918424704404528041503828493062734865502281910479948952037264301884968185247137851499589595052095830001714167182542277595183201917285007966800446980440813325553329793702944512151442728580144109194006307185095437852773196688830428508923117454562450637500167623184412243656096130427756648932069633483408920039260617462365416644471831270629155800385646720113111601513250942633595093434322087388837106681588746251785462355112603080601932606921457523898679064433821364302101711200677079379921525486785671211520930285108995858424698608998722538627519021208161727461631385687126533338773864135086247043707550932641713019490934223851901008034625040596841093156262534250740448929593904623359084736318196804629199571580822497817249230598155997250678011680841162922056572405032969310819509563311870553054456627892808951274109035244179699709984795219893433315996481882491148302478625295492674596227148604342806104775596665690990693231606373499804946661394137838630119902162246024068275874361414229054690283777356259489408484456996694255819839192353443236487327373993548561371738139790024507164338450038823027301926331380580951704391795197097533571773323667846893845540498471907007967473307521093319436251605870883238785246211744358907743889525224563638529101543614140472898079480284477935726886711965752315614293177618965597098951470271871781816687339127626906759989121844175867430991776379463372173406338342579011329244156274414446991821407308699722530246285019644392577236334336425593756139940263833567425646353408682509076407747948365032524183882018875597214401198979792956107347067696658002669431803041572667612027991277084564702132262154861186236014612916463649580583981308155892274547414470879416642397500072960624351376641540129399676806895722831524099139793774739087224686711132547852084880650954816764415850588188234744356494629064457970021515193046032437436455583140276287726450829895548707060857183579429709220556730486588350895731059756117255444520772432941972270648101905093219948696168918593376506951878342542004011600920039142517420130725834234111762925648722396784518215251677509411995956350149958017423572367717191882378901066825147961994592783380810602122036022347702134359608164161694141909410823114966383103023513790928020811516109413117277259837107927149897853707427073762822093577379608270684856317220794787372407286162929153245746806821450530377968641030518142722011258817677238157797973549486377431531341643601702757552756722588742482593695004127083501208784171226611107453322380066781734104985989612948945818379202435150504076437718448948241028279204091060433220597392513566345218857969491098593483277306209580168530291169902011097804051944288995316485501003990697809020750460308991801345196074654727450796676870148574778746782976096433337480492904153082993547180305607995451667115241168814849499951444148313137625710295034961401329107613430859742882731440051528141161376194775172860772595836724273070017443831414854373388776887427713339644155543876352356505266523680439582907957778600251016030708717882290902644197656720479909456625722716749309909173020265836575919587903448688673352066004518668380156514698928930842425655646369570752011227466752451872116935466847998025406898392229185090656004287731824881517764061717106768304339426045143252869191461745858774308901554896618884474773622780007217349326269326343317908948740941002440970177580140264791077070256483321031609571465343077167191971722940903144613254870176881185515448772460058994340965731734841155452918923822717091284264313181449965050206501441334800273934221386129782278852920258329043220498721150322738750308807630254617025050326197919198715494930818948863900771147086383364650760876569577178563371356383164070047552437094497314696350374225142976944640073706533765814273545190904314839762756354162478486198248204897250749749972662800014321094471701477596078099641003690596342999131224195371257192345827981463040064490053315045066448172942256570214645848783246486730665632692095478199614274723203139486863197913039764187085793399825693911709084939870175138123984153452597808932800658453221441646509096107224224887252274631539189421198207654197539629643522907003700455874899775926004106693687387000955705485861124964411291395799196569751815876017664972493498511038104276795182591761421304028720989053407919995566598950355441473176927392042608486271733928018700417822932327903436626185238288640454290496103561813812456622837838392761586432597269945322873745235649001129236034955152239524150439658194749623261535671578752084847769564002912558950706430933524968751770261194743564630431504015908719018699487217687828171725664658467868252860250503729768407339632790769604564220902291715817874212422407421061632977663793276076759722613450226343247300640611976638568793466040017306799324336581997496212206593968287719003121568592639792310474199585598713866717621972016782800061028694116525918607519153221282253831044616464223977308675033062185116498768230646167574372094270436426100058300569950768513595956954916584423129462155577964784431749186309374017803211296032209330287264978315095649232525150740892266342764250910539733250842065921387976190370104026159775959362830054058510067089901346114819051224404852670815955877397413494305946472555587811651888781002666007618133254503195364037041992585404859215619576961916548707045210977750476176220228714626559069123149697971146821413387833740876257987077773363837634517814994185923544928407069189469486390976064846017872618513048500862539719978916527305468762892723042513251260885016925850057429915179856291562426824494059110259627778792011058080199915982582218066236167707613151620255580956206164924325045209540999735377641480935380239072982181608502145037883247630195121055165724274048539754949978949724668854951420343780925442534909452931376670198389940465975633248293849198359759168875419602483405003025725365004464400567476523836800535248129112395262475497261311849173188597308100341475338584989714227016734133112762588056863378425617728598508031590656637319047068862910995717344756555943410885668390161400414390173596590035732548818693571785689075598907917783836012145558052045021563761445699159626080036792353064758650866203223046233751359809817839210671157227314634119039862217542433356569927870191366054908941777769606498816876504785693848811084525972972708091569335720708665471350923221534722737888155064437577820223727556940696316906294424136687810147156533921114863756475147946568312149453127388186674096116232409381064547673028583622269464635652141796801043089195107907607558273179771495356236312792383788507732947656811046639043900031759586311491918319127289473222956202522151515010931272750323852071714520634658233076033730529135532822169148448858396054418981725923036999463309857663410702454409990557174234764589578232882460362592815801017048355458535603590311107360553898957110242753337261197281401373189829591161750218244380354770079449019658776190578684824648430508995096010606925239079989602437853715252065475331678582103651384759197640199869545195402632130706103530646019469734738470196688101857926127349616267101101269483023921632462156776840245243757630550524968325458443626332864183101091535725521631072771210702696020027804961634594620194187300769938646368116067567905918317860906782433557059712048336671705805875672339643893264734875976417978682188068948681909241532786194253049505810881653180893130839420609688714033031654877354027140782607706853073217189214186727141402533626488127486910662764036693959612449581365142429461176005331150929754765519165744425029058743560470118618510286983031068103535244332249377898786079316776464519155270848620706106461217042264926395502711822605721260812511139128381516826190593390118522422418114025462740665985033240192650519046629479970080593956737892046017651687023188222694650317492057444292392669504451718268380497495549766068510114317071064808397559810758213236064361026159645649345954185849333258972497406266595124400267214299547885379670924799908267211869437043127091878173027571716489133676295042248853644541482296718189645529635747847010631467121745035124933223219692283556574868429442714657997407974423120139541440321379067861841073586763994179698530505604171628098232782581681698668051847426866968907674407962513498190729887449116417854260628027654180861270473950237038529764916029939460919437800142142810443145960188242739338730971056864029800450702720578904389114900240360928487018156036368113694846365871400446488169211375009292505053545504898562437837249860493046307214365392843199287860742343810720514653235620154539333304677060138065744410358778664618029231450544858641403838068312605771772304797687337449505705600943335025250607141633617056918131602311149481994839339120680193563777800516361677066714881216604877034625883915545586299653024168801576636402907496342945023038912603922425319180168724933938786272327698024282893639841248062410202721253612233030757441017169672838268160949658562771782833317108985993606856879454094226138547234067985523795367899583810083300642051894964827930787919276421008796150276566308136894551412272563659774910978453900763510236642513877561095264369143728358005191760054931619540325107118220664952682942450302880064731995184312442236980869340721423875846489420719505713842262548751618012972365374074756451936525610234606683715751625472402689059275970070170716388194210012206683591348463222159397100229397800671462401239564765021648212362548046418459268278035298166866832812619379810649322568734940374866237031546132612337786451028696993119710920859092512326806235147964969549047862412787859711609053695648245786105435279559297198455938839784929696376194683660558785971805955886032415867205564292095728775732088430145515914480159300784704358505164113765525713870920029589680722465770291524934328987724258390728660601024988222722298951434748628557887891339702886338811204326229868416975163639718191482406873087491814103853551555357986885605052644970968161103640953972587437801546390141932824031702341315633386525720240194144980281108443469314408338544065781127172893064223456175695886903443737739487489984335227916402561901351617219446389021364983614665039578008721829211136588124935945143755908280736641511276000904370957519132659077423575556998741286177353961273318006442338584520667853202057946382337052995530455168888825759549674070647039052137696893228460183902396634606808500178332925869873618735995218401900663732203481371919378386012068151840109017160948444038226756335910042776311602289003892893414587208018391913428557348046486115686048559329683272555618125792388045563278244080343158546486705082247618340793849556572684789899770150746498644217444836751540576617814066561009295922432678666978110183622168351718896755402026399628088055799660900329109409184430832772577379409239779846518084251884171837331471245413682660425142743747862277330145864395260482159486164798010784826301682897929144433002682515584049191652212488260435332384565301523235976249776046672155203159125163704415471382829383271695513817435109609501938511625626288238036797671847301139786317639855224561752909951658500238486019965294323353597603356761283019352651398084020928519305488961344094304260812683492893999758704331087081011501039491350852742095227935999347930073418203445230118135170447234176302351117086243909526193781516714975388860857702766700254052934168682214441285899416611348238134442102562312155495700638963787590820458461814647145729431006439029072651165590032414362825373571752410318736775569465153035895318765183639331444009988626770578129481276969575233980171896135132167311271538649993927201704025257805828048423016484341579303379240046342768880582607595597418836390181162358544820740761035139870010357299780285885061437992620417085127744842001600692380597703709474743485731870995859193432956231352300129570159092261383657273588166044732335066953690024545109337065161205569972788529946573621854559958956708558599160367802211253001607058421140749334546388901751598969363391110887859363871976910510500407111050628621878231153778859998473153247034939903975688458651017793765646239897900401957721064932577808707600802990371451056580528615105466877961291084182747007134705380702605074274446515338812355484877326402120453701865826574037011586482212683160922922993538121868647781352609059863316188406197524056434066704262000310386182571775555430022837394682993016675969021892379140272819839129880569598784572510328051459984534839205754548356498532319795503882429822608209473400188175854791440245892306599002381770288432578028427263334876288912271196511211345507300401356337285387324774639805591423754090503674320059699506353638084270230286171818420081458028185463354487303403859263487718003283755250667890240959389262589152767748480408438737251042262358768496093638212801714654402092850133321606180920364509685175651168477453259494811608951868135494306042911682717511525916083843705044912364453868647400149771579113867681310108191276326516143656371388101760843947343041931315283801088510412717963771100153732815830076148532213402948693353560135164598952569134524213067964653870086163692531428166068559290357744964016914915361458864638370374289478621772047997511318567805818531221192018889617693162230520806201072139624572245370816742727997784349336125559615337299699431474194763310196962868474844201991171659575540206654781588689748957310413241124680152881821217905768695717082837294736147010151968092730006633671431572565774305584148670420805579144195133910870985419129919285995093080703193353827672282568365085077558573130066650229226041027646264427425981699354867063737957576376965888992608357573666767834434786279740864640247214472324966891176772526445904729942635356326623546563550435220928865395033426447254616105472676055608375511734928857483708687884321124327628884998574266812178272491972394333385249521800750054187181549035264977654779741591025395691757304865290070107642895855847777035480034836923193096144368909905122310867200271757954916081123424514744010108514246235239870046169523515820311167689748570184505459242023838066756333628496824249783534873285447100608405516950066684402179631915478723431921746689057499612161050980070969202895811354082817891036103094593129623912402532897156620125730694137846631474855627249993665543207770624868360075833371951332251230299121031022918255099562994301718530948969303298854335085047116315622103440400474904349089502368106945715177522911036514668349555926076313378217631014594501305338852533689477616363429431863167775495141979209238982979545855875199477928842137396791085898110573002508128275268122561848933920840770741162941003018499986895073054263515271200668774491557508185322367110020054173091023211476390666791433232727973272900731897939029612751199581367988818187270982213644046921410656092917851082133827835173125032951163253844858430021600042318681600465992259637368645040280287905723148114592436872968041405137631468009260848774712232204847220424231173227129608226441764815994673853883247067580255203276678086739298176252280107537587339297148576211501427481992493202568684244489860748008690943677475222339630892374554769379242462306105609795554888734383563071477439219118381271486814556528537411074085891672914265877724703851318528989601850098529757620563075834812458970036761155862060959839361421572030228924641349976446601214631975765129189653318853952563053913805717679318299182232509356287305333380847186302260765353791236741815828103179379772989292836109433477795288788706015709243455053166965634527882328886732885834896141683455828769786825331482452260542075452465620863122156876912520918115129304076870020073843036570419799397132211626766594277980369370245762503049584518584564852286531604486223135228365716763855353157495613591571373662783002144657283923449984466158162137257002050298022219190148494955153323342772921620649724682638701227657843613631845418524608014377367511944647322464889808143650882632144972315951880152931859815585267435444722904088381684967792339129105810086919625209180355445699046985786890330462551938184197384334357257938262133692997675348027342918433606395015951931423443989829689890968238036225937233019323841243905739448302743986742437718647528617402960992403911225294947183587471228583866090161794622940923739276786203614100210868313817588589050618205220529735807005337378738529739259876827250748371815810185516617911166336108034303332745775754325920628926384276449737602837493889564300259031053286436994126087485639129612834436243211282394005265186791274834334207402497494022847555350950502609179429051012724186830916388397504846275309238732188475329440439919191656288521939657679115390746546170959546619002888681398579467152171549968768386928375620596597891118902354969950476368055396930003777453249798844730424151712336979425752297035442003978022230744505670269657043007781671219082428312557763587952605025479662655319055235656672284151878903482866917959857199752329345091403798046621274875724618918176882092789343505354829928711276182082961638748565752090066663389441555185855827519536850788755771845772685972063511297308372368498596387138344660990930115574299722332171739181658381029024764061934364597922255370084425995269151671332486071268320272351779602936714718876234154904338018366084567830414407653486564210587050452253514728704703717774178473520231576656553064644278056223465997825741786868909570544984639040694079761069427366564324369135534563350675515966675499866027270436159502509074959580809252980778192756779775612236134040764658155000073342666618272415927888079568485069248207645489987264339127973284147018816340450335854789003508441184992444559400413272152891244786386345866036987888493989801734702967612571944364373866838343641847257431453413777801726538039733510792869677208360728467360241620126492153075240602646867659742833112471695653722495424753462241974119919994746474300099411229793406306542543478722179410088442074807180324489324168654613495546010930951103640090560866786051806186447284355354886747420521589708683424896704085200293065762818973158891581605412058559342189189432055664181629809052274582953227915449268618942362813440794863523582016838954477247925077538875823278825318500236177643182824838398589530473662999306807523049079732827300816317486828108739098899140873276403815779708259967139912240575210398508084500598172641105674334526400940268676242752467721588736637475578180452818095570278194261648676733751555529572619382443376164524544916192549483341460667419597572962456582497490027468686894006316833942606983852358871959928370753355229805896371903762573116950070029305979772604989197101831034533902512310842571828207922268970890043834784794030803185683262207717323833354515932112734599501963982389548879216094296223678052155079611041399209473598880066810353973015587649863361731846006314159283841710407635973105841401305868280618666263044520280183519838115594767315498908232199436866431672041906480796840661255493010015438205652481796426993099420898494768684431043781790996456277691718898887024604340644585838344055989042463784208343202124051118975469374743565578949094127159281961994592672563119497309649466745082577003440164029862020785479555075266649939559250439454172230564843073428402850265126166486622204524883620049282304103975945827228267191480700690069829900934283611131630182282025179833319665036789555306063719317838164645984932177272643127304709024101320802513697083277579785694173977473210983951804693328403537042628474431331596381291891357924680459478997965464021963636639485907903651189185343896354181729040749455207174517517229502837773797895722727356197651399792433583557891385122128293518053392951048541014789084029461533279494062653827316500595108425579873528305531172458379865592636007475943759817873548276399557947429721461491004634906781109929884260795174907450292441435458711659949353171984222014829812453586490360728992558383178140063750724910585851618809868313845311100934716337962747603344392337164652883737750896436339620918732877489170486193003659440657085476148470708164025444523669962504996939264044406076350916376183802093478976875568533292816242989696334540237713554095236172358404855115424811936755472824526191066352117009974589388400638348778399371696823165394566615490420483619977398618352186342713065678519988054217625788470808291757214700401887482913411927143697798544889609404101938104046373563760101519122842570200564449929125605489052637690547819928796764305590577017426130581284893731791971305470486701630671037782729955378597812961856917453963340357063427902673932706370668396157867331940235818209525953255830722459338894664480429817674200530644570989701313058977344135716933490415303680354926556496394547138805678296444704963010771183682254777611807622275354723097945880744577710152859755980114031349325098416657128573922056035086639825667371594897759604013143292733856459483988644565286883727687375371219857044713932577257137791273153191636661008887342263988350924736245085699217751960971786210114905685138962467329323384883324811757712524969275962384206212541905003084207319671834738799073948955570522160657605834715435464818275279906219936511860558902696416087117936176132108598013137815278379576923693071627967210911560375710285192163482688619987046139357974958140734793609014828053998708584802112305006893499004685867927393094716435528099385450225503473235225175087898218450542821998445769158616879591806710123049423239894684747065797385623363811867273933661206140096996627961786454905443363956072400881189146135931195823933412412622737874600249562623739869470113314098043888234982757585808902178365080447203154498771952548469100898579173398071778456915891510295378618831992522779128523581513775127912701517364451085052875359019376723649797814748625586656694888008447421137489829892821072087171494588452071626423792842473387137783599719337790996216745352912062558650897997399622208015623363512803713110848795150238743298815313144653848623608807515307660185116628600911025266597888506323738641748344676696589342540163543710020640570809813358464155969330387599092388509159570655946011301419796741349710674868437048107006235015861476794300142667023804393712932772141483689783625813752020767986022458444791267914046027921338677982815466279103578179850022841107123655351022358395933915143203358014016917274167660122607553906482614821574124023746899996149546604864302972542347990239495995113426281931010628882689695617305453586857725849447515528222414541450210897786953016175379489053040051078072763077901428395223168798059913335041640882345819786404454255998868253457138490624688326075485250035950163446727151380556232521754737133065843365465564214094350566457497559362309541150763076145190182292612437862707939037779882729012939176121940492982360257786191704810288113152329253160603366302812512283738751686438355054826180864214523108741789597819170067580230204252233308975965251639522811711158232523640960090724844994115971875420027240698043611389503947985887581654378875537840668489573577441714114572213143320403834484267561583523923711713156208771846147548703023545765971351259677083533929659814133221167490798455255818607640960777426870802577475203763877173545765821200196317282992765797612880523398994292586227113792999180747230673170044962866622514320770867595171884795647708327823826927741388715606764809664681018788808964775538419310855741342833519488213446629285857888437567961483624821215631646585151564121876957301910768287743713972606500808388473935210040018381036563389389791467178407699454144373871526121385302602280564410813375801160185165588442666152905293722432428132540516028303907778899896799212752396438253470347294293790402312597986402129563838618310673849456959090739402341534003060462015180578924853535584477850243990188798915558632628361012601779792670979495323295966325722607706125288874320903390136518673937626196862064370289446862031733806436768031112700943575355145110573077233974707398137132434448867450018959180321492836225963549256280957309245451355408934398587331792237939222572222329429471341159338913816750911580082938229501568063766092487471960874425708730854434037617374145390067962299221488490981158588623358423266548981148865725910379779261393972594377865884141721317986069335121638788456894476838849441332824264245123688617933822177311992077841645687519959784351852371947717705470053966626433054973516611771031358282374127457178204610892843139285710504689390602670662977777793053854336287961837642071541742148971525694567837404680621558083492297447274962990312177762695996391021165859615789998645724518752447503337250067674765068084856095175417038727541396539466004432631914286474285085472227514287170760252635091946659436630914817708459154144007375079959873685395757251801954213954791099907956148917583550117161505909445188959672718530234661135265432422528548940096149033839870825795780081966447223525003788434542325227826321934116977591850597757780108242147097406162507644585425932719739549742236640192199409588326000021524634312671138464177585819882857621866268331007248193258970770616166191670853998315265757091887135233591174378449234243677508957875175923012784701700228242732658667542445321154159472614316644503542742226085895326047191535311603062980766638742069813084560930903558804867345486962511533666351424138088365111524596706320808614613666483390348065707254164276210374862296790113042592207327188850703046598425479399154099631219501150761652241202837538922326174960279397689857342212036531120963028749750937107917632856795053521917183029371341727695578101348271339201648577155930991251608437018309046337144084364397859856290472238627581464591026956047569158067164715977700814025851993603198451861782823713864167209206853931770517028980887617690464413842197372594378434057232293095427365637647812004437334736891581916317689323220677100718081917669450024678366856731378342796345671288824766743128052987664104592610187071269901915790850893026776221659897813706303899025734435096861142630804810989564847832472201407767387251613735390788253427149701708096911973306923341663423686302035966989876338869089859791057208134366842894903155386480856495754525047545159797572093079925224347040318561506122108220753808059637161580203519827794811614927668194551211557213772922613748143914185670179156671662961886082309541951306304939039769774458072472229321628158780816585663393188274079459202114882882445445404215083042580635713834898695059651730231049759401766239370489008906249132346933665952711095764448437386513033915112918847187406087477743945521058927127628212028636904793586929791608888416295307954824898966124282599169026227872776361851215784025499275692638966461468023929919607574692548102532326595041475223750005608308316664638209935390557603080764793741840390624473992333019075733209949229696738107281745466233679892153297334444487962876076245994196297839018346144410145812798247281313701072648653251295389634850960485872926256850139717931042231486822339444315475790428776509719034915200011756528223808000393262566756858836300007561013999507135689326298612978431576941545422564086656643853209132182731040406826990887920669698304468002850907951159815493557087467072541029989707367582697951160491040544916267959632733286906177939217791652863644324894331246768193153697569319237716411054423924666362494707085662313517777155373066971545518110515753786279197933812751447998201012579193455213918031684003290408911261305101967325402534116037329116528943069421661682495149936715521404162540498890155682692668778803793475386076859856381550049977703026010048312509029891514192995099258590421451184372814839153284635400045479008582032984833902067406319558795528033046989517511415502756951566070487882229380707283041905539112762933713037339690534119552477569982028128987491727776231951189168972194352931227951530223647590979058162896226233223924154332725038633656966107549608418076718682948122232723877228162603798255117015206640699082465867261588026003281774728333715912172595509617086159248556436937343007137171235666710007586250088402813079532263946244239964265851703688918079624876781344506179731170031560450222308145796169737763059681110060669800685653005063390897834124230866857381045304211684661157328662506164873830490869785964655053686214154733163886569185689065221334022246887285184129823771711132148352670513988004880822782986295404300840708974976735154292503111811854112436916827815198218587639775053985404439243034703522608138168685732564820343074980419497110979700655580161894272653248497164504371367367989166109634570591398612678508495410186938173589247161451915497895785055928277169638161270742809887005914302846654855758092956552741642087995384161713505274014501432768054909322949053700747519602735488865670448511753536122419289208505981700218172014596475427711504088504657493072067129154878292954874504206741571720371851699646420855719833600004389874000967665200179609842025156891296940063176128421414428763392593131456261890338009224285288907806280121766691445059344780896068436962772624323944958355343977776483468823909017728926084577723615536370617631198736930374605917111042449245132636428751201658290967544943293650563900849246388757592096152041848205783972823797581618020893803661688934624140453470210825193849688723709375967295127192131398905105633894993979929773659436489947196689234343305117546548722917439617361383923849085156884141227928119174041201078999660332852929860377051721268741083451517605907303681645970989581331645799080611184053011810466146081409633519175214773649153028186315223126446617969033048178253418358503695841248649262659498641062145210791956219885074451110427503965282944715915542560399732576213207808360093613682646626491349580162430044680724379741993462613394262430344628417913368550711802720849487703517985747922614515520070345977143763841453156452735614298799850738075434760221898759737562268313509328105120622349094946339436100630739433964510416524784976481390378178120924566833425300668506680928879453732792811689914338687578488031406221261805286583209544816094913480768054905786171257226823725580001891819499430675363962026831997519843214026715950355435964624383886745860140996436000529241081907988848440824667853866460235872233290092993365114206491434697567588329712722280863796769111831847738870566370169609225079793318505795068818213012212102108328305367249408281912824914115229275586141094130684629508618919853989956624146740842065642598165145554455124650777731615532175569697958707221861061329654098638954336465278474910363673430009316997025451853242778590286542803473656414182966020061278335571447595291293832315628431895161643141829525620099150107581203626525102605126624488650154212588367158793802485444807195201328986946075593796595756084859080561718501040739838755515855442312481788099514071209254297579300722704793316668892734937280908755150080582473493401136320299655287322828449586115643479177138080331840548496835309272150684123025533632777335558010080870252936709001251810661794476768995458402566812285804464604219139586267892483634399489937462217788305612275854790025440120901759931892533882004316787398174143101190900836173729545166994191340784554158811752149544828997713149034673121547909977712305090333172052425585082510973946382576647272489116877688970159704428498392947575515379363290758247968037567687371351239045544789166201277189662730361803085556753453909610259126376833469752516203137161075639449741986346916990359661262490257861691784762162102063629627544373502041646012731941704111775022766068281227272441216846152872116222053291212861089525498725007416981806919676142252785676149867312622625311882101193468082825152737402949512355722490417525092036405564116946574462267563660949595172858721841477925594711259968565973859338343561861532218229716479091411057003789862742227496808226621144684686135973489046334168306425402632259646200737649378264089309270109449459942796784911700778650842916842664014459829678573034030080110163322564784067366520773511971119749644501533385828267280801092259281506917763460979247391546816622842903090659565672352015897353524706636448757628635163142959909797594986937160664704016455248462416698911839311353682893716648485137566456125630587843687754399212676858606992005031144867612609409810014385682571603053618962562641008128500564774337391423662167333484159779884538607781736710524371379780724316245048675798404560580591763645763288562240780584987314746970428603855643093629898763985596181464604015603097981980574995001432005504836445966594770931766622754044789387730947191585402049840668819696995629584962333474702115366259234602627935475809637177014731855276376643258240818547495005340577781207548155700243882562700855267077311699510808391081991826046596269048422471933323544313401032493741193700565464867914135562471198262044963315326248922591555504678950132764657630565706507902423648881153781244218266700058041630269354893089207511486058276268043692517151901770562943165596650413590137296333634546376270768661899179217544266104338442613695550365302136286240423247867598256591081897884657774185271768882236952438298512643640967028012737848717554826805320954880974730830129554129008975323356792279622849710613920857732288464196866915895399860153159374915172925197993205236083630439193408256016675858479078991090229647883372567543098782450255242083066315709072486525137055045172065831048538063290918197522808799093281302315577631199951496413099425031122412532747860569560182779660205025901281545729842627702943678910675308361793783893099166122448808800240916827370478853472932030325037872319646287692972180251546014614711140229813096916285775760291615341544090341960218062411236120686573413636396540318263855482215925540671854525403026755278269859040206658466616419982875759668964793908385900237818650248715150331894298802477792370948637650741154508178025198751437505308939300212664048381627998131409520210213839698630132121947737586551226439146890274333757532713336716196070041997180531463176834273905400420746247510344327786482521498149544984607126213503421478629570497338267732675809305721559836550915394236916041440020425721482080398202438837269316982077451705642111745975958892791743242144310970765413939641760310305460560124341674304373046910674740003643515538690184846374049268252681453306265783701069429235907323005744196628176899787606639047552675164339340127014000145207144781739680496719154159390133013078062616242299054464230074976577600256166229883733134718750360083892519216878149139695683748366177117434544093196001172160990050247447159395824916981253145567159652863354231752440158555716917180473934769647525297751731396464601895070486433355610498131325088167870211825894861608644166727647079159116836108011799604995229354083129456313413390410874310637644220200516151108329955224750347582082023336283672843149457629563973034195290383036948182606941549826785952007041709069965490449136491209160216704306955054365014922894840775480033629347644830001474906418070753070996932498960535372984085706501444312220942759211458457000603008333308479535388475647855504495889722399329522788752173371011587939149219960304433542691867322185454878891876547291684990111440970239248067899946765203294656916787275847972314506345480621664425495123873070187126587822651872514984801905780221989221982265265334913790773941490213761041009071732976890537374707388150057721489921243665395891366432833417496328835447122995614103247338323639968623109344635295810387027373410809712678001323779940186895788112385229540709074001712842267869515245978883083357872393208853233587353003735824293391886608129922435058724627490131828347261573133928317117549578786085912477677803302015088104669061275810709866859544277435112050544593005300154655343380671893237286654328079015726619427429210119793578902375431216446789506246459839034069522721768393661116043879568670419389851240116534850762077012796768536748911308511562696202854796349123389441717339397083115476047024743808476731047715280037461434288803191170386607112771697833172363359099296642148010149064700995903017042583328669917660286048044540809763529162584063870974894678659105262259752436063604504929690151911941846841145013406515956914806431067912559288613827363406367900782469669573991424402943888435223356276456345804326112684668718072493078554748555714411782190933405670861027933054940891806531023988393387374938414682855985727584573296875240957193857038512899937088182568372887872714264980849992187741294831016381328363171937385735110526501094139943597417597536601299573994018992404557382304793954569324100923500001407333926371557552637591606131099321268663680106599197560268870848969334813684080866883081969224021630478085383643959031486250852125209262038862032701229835133148312961134038695508831464118448239032542561501145751655455344179183862433207632086163487650577341169090897788304665478910985581994834129084867146876680604249437608868547883289935460602836374439584587536539986664319146828464589214158868579181682461132127302581966849375503186765823953192446854726632232408816796220240767459164382266001708082336965606893440998414549661843565919952122242579148896467322643960863855675598944622040735721947131995927420695720739493933801335404374149608148154567121109656060004292392987816058394961392270750735041055361420754321861273660494350704701144995406727945574065582008516363867005624459429164008434494902103761255356570356063787345105315153478795128275191282333941049660316293745255251084775492522795216863908431060139072881683046877099760369459365002659682273140063140213260593931540127898220219875945393859324998150861619927670944961078583316082525904662469252628144508505129017670353749165834115716329409763133919186455250731076303847937615022622847747752080685670271292533464535260000912889847636618548303163901838180789461737486164610457955292987239548852585253813446513577519073640456451342257230764116614688491976204550828925743447486643654933421071700685473026771045556074416891950914381091878331211958735107950490162841729975150728518535181858204478163119410917785624719422049643040946464075656092600230931838283295159857259956020745331353402819234003522332881630257466210336635233767682001556003286143812402996101833104716122118329013485159773486767964159227141732657621220645218182732476691455899119895179994884775399770088468805727471920434227050813174055297577369207210576130639718842711751075783811052598407849373789975961958778260688386264807130908427075696327166543695831223661106717546684480122218373295133469891185492038387134015477315528312699987577114653420518480435612266875245854017328155777004062734205709338379163112537578011955701564729929993396772247236409044214117329874979327376775151117488594741539714758255507122508331178338016619188224800024424414288566104717712458037016716274196155806533782508541889551304844813193262051455989690553599698377278560497814496527193975248223712260531527988176769252762662069615894579202332566199886251525971587873907595877078893553321371483433581626534401305214933750571958632417824980785651020952310107303333432612846613873527723306393609618585586472634223840888143585613033649643085427402330967274745914194494732827407932453751516580715778342658056240693297113521245681651033478558876596880465980073358425879966113327317577366951190949165978464760402363851625260801929814838909309101304206417757013749152574901314379079959407498052053229933431041340326104076368895643354620747404636539754694372787656116875102995849064291182389313360934437693316548919406178105272503702596854186441894879617832124529840698195809293387535272190847504912854267940216287385521013936557499708783996144976464600150682197258201987873713244470952906090768902693409586879320831940386263779913192741447361630459605793234868787350356801395845137249104089708933378664647812300133446064272887686588694620253619683218920171446863988231648316493059144285858522979077371088286828993147821621718505257821441974623292202162407043647048958235211290392630732304336740908546109668237497807079844335209419150166296741544320568148496105153795725046542625708067288642201847599613503995236287512489937296840515520551906679542149662078758475133981983856281493883817627835506211224360081756054456425083470269303035710617439704670324065303489789993949135100709924601885047743660150915155657156662081353759134156557427890293087340178563475108101415908890306818513526970048092583197892051830193802543462634853834325389567342376470346497560333934016696084731696087568590471628817748230514036445759834349078036223520262369553426366139943952088991260427988433439686396113798969631610881869832755291937935177259471021006666978399893335181612316758362694835813611215750061961211060426274071100145848140155847177040986934625902578629747977351027545061382298963205449275918180801233723454167609106162386054273574541562194654673964885832795097520073481209922803328302846836426979494271771822775292067379551305331511712844276268948981191360597884147508867679920584588497951786575695879152800504641628339589537955417120033134832012312828858436247878622864069237180746221217838561831156923813077392733918293077908165034665024949094205473505512371958418330265519788212624191658887023471690033034667213438718327375818380849398063491352208174587485484058332432382115211185927112562223014981368730615802402728739302267054317915475454287296871221128529214082664362828037722291528177603937539233836758676044233639906203012165353488523373338116167308069393237015457098534432484411161810745739763971678368168249780282567467332620485210113031831439958415193068617697870800747145725553859381962773139319478456618141642667827016863000585161299649496646651684535011397748238242872164319763265603688292078648337236188060344056572388201349586550854000650930304961481881439595752111232085995813744961993817509198819924185459373575889584048305637579507921200370985358739719071483560022980663843876381758267212260293873850336132092561101307628341370441246501419352490502890475394617553265525886525831030971382194652827237039548848563928258904411961807741947261967017194118824507709051732700153833702872820601773251109073043998320172208058109656302534719265364010782288343560751865385701508768079278816919471185028059328778964508976013907043018320763726025873343510506060957346715479823785069505566856469769844568383138545154858726533543764817724476524847339979193987155052880258345450155774468848855644936072336241830849899586994820345194315600068202240806369422036071034520387408979771769875772341451014884496289770652228203388041421259086017639550670559415772525061925180572882148159596046927246225250647591423869716424101398305626303577337531825941259435376820421808127532110441047399553869685641223636882818870733256126831229389291079672905404837059702377176567951034110482461039168597060181442111503007466197002224072894391681673475392529231461261561848481956004250896039527414201201635356706734642311818165570835405158921867205526799558716250847633135979517053776112867756692447365789211235028953163577238982050810355111370522244166164114431310603538938335060819035000307992172213539316395002120763034463682497605337195296851444786362775208682267860042134600072088412953097141454266982482663114165315758906242194855163197915116334296639493095153066408945514063304532534323567956552240370919270195506650279794711465086040953596494812229790941437706933342567648001590766501010453953453903102019849232217106150101058704288899158575601378584227045065033299036218851635242126547254084361829337644783127332852020753243621187582182049045856332259421517085818414481362157993621962415106147297249287284484228887026475133131226608375834309891028768664256238732095903354241605868881907702357888564705932132477181570791500417754965003645620955312415945865640421603150243159217427420284189905321069974096799065535658361172000970273204624720984616145925981687604971466962728298309032035363157750751770960074395675458817762292037212766059618076170736159033899056687896620951022495653898865270457641043882919683172896086692160631870502538159023003854276324217805646307249876198097137251974348663434789922987975782133569803208507896409736020587046879504130216236248193251869617471924995693190756241503379339693158245826322051042144900183921243126512878296722022770311555015594655220585099314249852865432232084103218489720983747961356749771702957835352653308635365006109072659442504396761628058893216752717340497510146470425497925787060031761651512595945776923706044552157360556992475830288128398207075338143459011589633150549241635478977449844805314383672625884758431921203960372007345533817727549936174218740679442571175448130782830510337566041161668170997169534329063256500352310720494977344813456862474645220445064011706765251054383622791171120377087051222396931106150753251702433186267265168896766945959097582329311596313267841833099652603919636978464616613889336212762478116402793904452552316527429091192186381573163908872578425064773319523531683463078530656040449355284718708365247118641767502998753252327800486661089676602649122742698439408043165156206481637502730657922918362444113506716378716538982580801686657114259449079240252713805297301732117615940317133804844235093148810929572845171335057868766727924402489917654983559681609751646103268548157795059354428698549109043860469289859220819798461795176327969387613960369978489045227767145841514593380146590014556956652262675038945818156920338699546207221284261250068811966057606867832633933512757389531376103838118484835889899712884021741079726021621736588659159058998874327650098042091072903462095343835547016274982114467239877489286105627847748467838408348369818136381860138842673217578715161168864954517652134263195348817286541370512920331852276329671660214198908035304164740994850901617920561655810085235703064262248874057963758140784066829111262260578999133650992387027206360984093750154298638744798244150821162595910771085788944807654264201260910624420110206932578032096753542118611533661852115571417853610567604648962666338502401108919471245130789149933264079931266091394200906707967510235912458089683890554280899969342476898739355714823772205370651193212861282428839222900697743285389823324336257150469676306477032610060565346432371658809164043843888689953141362332949141233253904076094978347965220956006851282405089529687367937039374814099245833040093190853648885364184207988615759029994076446484543821237508275932997455998937899635619335355708543065153460909686518184595982407264655155454536512372836328001566049556087297920895559769971018152993727703233834793536706317342322791845804867726757339037718014937367063238320914698440909814866940255347822119689278503985853877049171274746009844561614546222720704326721791351925368437396815430790059036507662227386322032259103824648485243948562618976922729660223267387911868941737442976466836386294751235741241768020740711996983188669796664147857516134953437478292165202188599059707842179936405889894546353109976720587544718787209879566337519892777612143166000820559047371527889316215444441771830723585495724476838166289760841631335496351105138200450569480674714634318873587060706744735575079051547984427886733947412438863734225296973511642934641012209769761278719051057111141407366231607367880130095461427726596926339218710720294584448973673774996806299721228860591525490749866377505595682888610632622723288752726981990236179649024960261867398451883877983229888391767880924436177273998119724497926471563301507246167767906594463692797909894311107353293061247119390935440163676495045953021425433208993322633166748572027496704648796171509762756450793949844030136301028177250759125696714893309809700959805254768610084014827194880027203194786387265921400388758011554700585931901405832495183361857021783496717085570721573971472382160937195830648603408111807123585382554913063077832196246904353995755157469710369583012705134597946884212821759989873814820540012845417495406957756440779753580117575456834775187740479747440114885690814500369058522276273206199824484285197875363667423060531565700321390049262623017176299792427147249946575750667117908088883424644529978142854413567287172718358856859366427925393002449557070069602360018750724531086136081962678525842183134412491535879960636771789377442183389798865901971282584158765312858517790104796827223032330165764963988556833317076236517429321240698284142486292137535046023486209908852850174056460635327590267906750456275351668622514436414608573196095120411448354201071287372732421207989403458759140166189120982606744849346142050595553205079082311011187328364997113290160421740531933084349879932677082392609885268498892458392135766476984362607809547422277690827362760014751324220690501512853300301423120399443297995678513752377076804432537900013693719442825216438551723917164604858494908397376320816578866412954402777166236595153393975267629821391774575648536996556960297066082216052602037089684856918110711622781385205748939640669026788075319357164407741260145469383883475130730375081612897360627232986200054629109434205838859014061915031886568453198825312230427230018254029101257365567948318306712682852422966210206929143490386073831065859097333754818076628370345977124939736908094586294499606129041305816099764540086676855606026602882303874633175386831709767669380011370615090310882878225629690114136267442534696099474788714583811900485385476183389071291599104470836573125369761956343303982943685017464621482745908013439807003689962049458339553661074807954816365730505604001151148561204180201968045475460863526040052130003369949885158426009899901436917076874254026251866750327361376670433103547920092434153525032815085188862338560007468869161237056965615813266962396437104675130976645673750817116744850570582445396704307865730618278068166865440049992239061452652197684651823111488383736483517282752286252821845576165824208302475661031812897497490067100600419352048382953173500972532247542814880542876009746328707625896131411930654557628059838221889539225477633926917381490441784535574248290276100252089329587801767842726133740056400622785659680892717513399322257203906704848906707574517589838099849447631801776086680784000292898633428398099474354155838523004331818594409710635132695422022495276082479710983992549056386281182830308640062149531663137585449080753469989578390355332289491451400750385617026131434038797279551797507204814283853999512057593286415706930241114105709043050665674873961898333186765076650447430953727826971037151080825356673371731399558748221891776280886795222499288392859420016053834736291386939259897945081197642683757367265506914060993437491174915735119548327200787422906039626396948345477343213484619836191892263721749214106536516747224411832897007568618764928126759945807531790539487550889150261533790373611850759415957118166573705793262716633227514405559436451844750568600155499452155253068391346484790740005858798828528492580450959263500994324266640366246731516268142173271611697857520166312304184949949792123416767612562054085525004967052275634757059800103499438908960062009492507158852086480933261196039110654133012601590401459988757787784406874707721610240901022636221272296182095414996640495715233417104247138209347780776003767086562340569544402949526259043419340844398609130107338693417523524483046724812310251563269307599727785376262785870497045615716647563358411714023175302496172108588871977258176664969490891849761659774191251767845142816399475333118989668264680646833692285677380209237065578572778037841635827232959281879690259568638260355343283660762046195462246843170971814573925811675836526150069468152082417624666412414759250270642507181762616702080427385747642303216982757278195359963976050704222412927230626154588464315568854321920861737423691789302431913112095332697691210302653391918141255950006982253732608900137062538281520725570022316823016230571325228510404494197887482249568673477784485275522592914722990301753578884448704479968538740800338286187358982736613124391513238378959436015077733037901913137200562328722716978358825513810053710432498216974275484301429422497207187922446944452955529429599006321058620983483237098426214191300279510138473446951015400678884485687852483699429433025963375382274684652414498133740504976320231703324996572232719143708840544799655150831786113935588675218846628158202905352745826999509940017119878237466925552340082259525985766022164214106299207490689056123404710326190933254529668968161056223990413505386793763188877625285721711971316285337470859524476449156285366734276685029824709406525749398673338677713169459618231459065447664276023360482646926619264148993937855604706340804168280885451097817877906622582477806998107775517660087035625440015090805310936789729651499867961214538857166807484279194783889689535986798872919721121292710857857881819891898324710274966422134214436261033686182612281429678225452339579553205918975065594408236619280643080097656670734164686776794694551866577456734199204354905876459958971181370186483685678696323965169906997516922159378558668609674759512756014623066561814185421520074843611566746840108218739823984866908251859359572285282254266289374146600912212467272456966817656508276694923508991204927003228010856211219383110893005133930268901763146970926885118788314820610747919502703914499334348519658731636467214428716924581920519387791326114953565334206931239162513876427881655276311567277722846323681928073043485045646130162861021988866546530248800958042232967049980106404030514485311110363374980091333954826232552560060195862666849645210164685736869643823888132976910330602988037699003855486116498450161337900067780846097013409163019998349432177204410758103572837037800957241098880990610417693077067412116938444100481897556056834013642495528260216801873629197500972857072910620904138733329743609954038734286359137415917529101355352136253584870514319227945389232723932493301315717874036709450796889075081496731342969345005897213835176627813535049567487001742412270064067083918627705013069583649163608316603181592884042266777598399889759499507295531287151097954913053316641418582237648918917625702509165704922287788776201303201153237266375360802325918124101842570764530325424425167148610213362338167839330567964651709650459319590728335308205032015265112884866155542827595587744486375711427054047712644432992628687440020735068321998380819517567365939815464430827074893979872107444792405940135707044888534461224013898323187544296950134778314846386886086810791618920286256809244758828921774205333970460100570377525935927108860472324218893653261062790903425883215208729967349138922765450481388221769826833822816559871374829411821862673683143822671733556148900782585858255120267686320417858360775393170717854146169976586408366877962675424563337133245495591020327779023861439962488085996561180775038613362949365366044919774876276118290686036961610496836418983644488836038861357911109500172900590685496086615223739446372780626540049572767425281136247233791442971764178586755062875516051423201075872808287003586564606857001072337656448739909484432458892318302737585750814432861365768439597011774517902814542006775012965076383689648543250289458743265057442531530574727335275630052276149358544065620070955018601839216255286842702028327527967544277890240629520524389768561443006043801734152353299111066985367857018572500181988408857116913641989595047072335612844046660027241537519999591029785247347748461343939036972588587786256939909511141723892010150086203712404890793135480989454493176818080819325125700469855773952974832364888413292299819855615201681357143620691326583000391907176403629483321168051334346654986701624235002049855641982959795570021895374649965971720450185560549440215725110455785960363086907971222780465625198330790042834724606111107012631171054229680790698227234286426909992123378942738311644124510381447994699233165661841969110666004488333839476237074449107776586580517065830178459598923757812314707972961149573440073494965422825945995754724942773598342387934307307997314000906579086928696680908710934525746084385712900682718327594150320468395223614292298143116179412186404598379369765912487613076320417537681405465963628338308821483081356738681708280629545700073731023266541397546847699674222236716395222957111121587669311932962443337358450668023745892552102330778231457241809779369460863380489378893224964541514403517383414339300632096043260947642913708334371515118043110088515807867392678615448193736438064694021646710777714828280689540596179001619758709534424642923960941583447053522108310903871425380263185873655411581020773403779191957146530922246268286279144535242935806303425195786640373048214190731312568186526494523916105402968333302511218906900832420818122953553056420802447642739933488560355644449504006120369117478799056702737097694320221088914839320335717653961386610757424378513060125045012544457310279087563908957529461847790830685428685810756705765777336021634981925215035806669237344040046390610822968623818569630411176242877733354914247514995796845995866077103710771873722682828422937126632507476172779282934860146337589247359115936246425227842324476906831424168593165517930035172079260493333790978461370983047661072376940531970414431461896580130968689476118781828144589429421717266737871969726779181487249503962587621642055041771277928327821584788151354353919276696484012492210530168597209743250180406534771044001660218221844207610415763092573523149919244412811016110351925433971784666084191947746613716678468303616709879663244016348723916762357114009905526174105684884424355801496048536840175143673629432719570551846102073699627883143653785448041326397487828508343906188612919215905279148175094141973199069332017563252083375012277043551062010159163147832465001902144358188818548372163835240193298379735926320555502288331236411167420621348368034715866117576773721115109549242006686398455800614101053784672551617537153211417416379373596336122191352892442717728260282954638863218964037800554212455844635730701377007210520153632934627534296357914317275031748393299330272004671354594324821686380665810017481350094518535665197178356880212995292466703957125494534258233260602881890559795437194752756761016857576911364488640574679645324220014740219345572229143596983154216101413774243734153047176175731549683364105134096037518719668996876186293697825304236624047594287086110212206398809602829980347822120393305989688109035097536118892110433825364551012050466505086913035097256437949195164951550760110816645852702683359089244067069133129211385917522750321420513506609225208100005648580642643516212840315972176113001488637653919691468034948978973182344083628616601887699016648675603914330060210290902455920420155871551888166423417159863818488578360623128368142751923998916867029833704655607450517394221147953315908811909913286816485874883426997556794192073552953935545894765482915813324058382008575383813573529763154281149121627823574406146290492111224363066132784507324269369803103059825696660354232405630165908488368726627772149792919761460388229809790122174958694033108265377138135775170715761478369384619558583832375284130146635082696299074072888293997331049663957893693913771445907001112181646922680223385559892199667837497556654266214724149346716088898108566403876253474817729065455164804802652954540542302171649727538096903768657604551979002351547573322712595070273686384107536601640002056286716696734046093558989274235100019271650226308665435109028033341403854133847374354723151505117313980216514208018457467940852507268725021720683528156412063648871044954118719134520087911333288074059779743579163354727425525861954510988408566826156962706051135836709902502158393395614963523245641949598319816222894614660553759990247068199455537241411137378139765673277473727396897154318078388417012926881441618762703995307992998935512907300497369260898406860804583698659152444969411929651240407107281427108505704488401798994375557327886152016930151541013266649554497690219539818927837875238563360142380577969938283672319449804857737998085761731938644549829468850214195598558663312829663382198560677279993332978237483134497461342953328594840786155119881724137730853217098335284614297027815513694659649107803770260036034721425419854880312150582421253394473695613752027964638552463619495959993671453437547284599873178318995264923409873977864787259745691417921614988419821548850498882337185978903765526155330204245105962398979418271006009995453706006669782524566358666997238162122639798330709239145165153505444737882830194246861817873773660525217012410509045771543230428620539478871047132489087736452712567214848531224180770185845869015414369651386575049331654862338468924010072285474910892992945777741468517775353856814738652861339823747329331923950774937130254880130616194251895176072769188172303974701724561256402310482960580728698136960057421686034353093812669603946977245206033386563034046112289064385098815376206570509493736431149230139595287832222342157698316191163629963519007655430281287689725818598723576225815540465505327179666670039995418424761319116618319804930763924296931399094307342677720103370735839975897678704197092825243253145628335959566904552010856044884036570057108501156915256559780718985763351495017446600749587293984882247174371975938563272739172760225209661694213969291487190691302758681573226359550096062951995597398726074045838250042321427096988018358645747507399557180584084724982346501592776810343765731671075951787232355757372082470209105460811156851682962040140709877569021971601988486773166240330169855361388964528763127898988801783832946478801479074053865780484273666920200722147114055717852651588361845600187070136274787972019624884469568176421689252948238925858945031217386186003792229983614860156185740639082529016707536947144891631253368639341987200466610107166609082112553123900127450895283385362794111967201406123688199799033542031284662736944603543684481955483179185978812638483160866926331901354960362146821511951907340890531901936433876345927933680585835606917944560024055683526762990738618623319164830089242271364904518360540663934051665334446802599019398201761841365736162064579058491334246408242022831568738640055811477917779691624842496545625581007082253451441563577038500710610025186159998257193573504463474805369544566913316794283563502154042683486147277304669672557807189468773756776010575134216915516202487648559582932507959699387736873735994774152306621673829175370584572310685185000488903468226164622275266853240722388867301940095691321878513123551980435102425545186668328006362446667349667676152124876160798223502696084772811961756267514361148518123639151864632351988124561554201841075474964007921874752298015234692913635841471004846887862080578645374816024275594842165676549455322604738854816587863457264642370943924973728313024139127162523442846987779044898194871332025349979786946688575848657450862521540894367928985217371721091636055346008986506507057102422341328123199067262952366784755469525711887714091232498061398039284844519456646222112532025946401349915266994216245525385839480595968744439409847794944078015156374810897753299458357999006003394345915782481706988456434202398342339312904783920392046440412886064777496152091593724054306086169607030059836187555472057662247767234033810405502765522980984178612955273255750471044680043334818386605127706331103616787138518646679832453832207465583426933327453387665467702712478095344052451877690652425188102183586859574302024837108571346795994453346797053766880692637572002741170626945747795289751387908681972929026893358294319564614831581289863851178084731558593324220439614517219455297630828444336076644184463717892767335320526166908155382428974473488391955412388058249297581950478627469162897525057655567207853429312243774740701045164509379350097732983174814974367422764105661945189381665057615353791289590387099718107412355647572597054339605096716361035278972828577714169771844695991374514101448626909837104487015123403298993023643470526107188253705070273951806555162369881894410520032264731501476684229443736407717914864763549399885779957369613403066005618615433623742347228128678798749606390818674639111250061867619699696723944072134522401643136217053783747462775456582504089768789698455157582646685968473762876649671624357038156640088978291532971853059126001524745378665356922751044877979565618836971514354271017217466159111675251518348144213368307737672978782204400721508422432542966935945061634132035578983568815436159019069603482702062023913117121902622677467539623573337509530193801458797567185297519245971774059223085365944440521728579714661914108031279113652865169264186713924029850870214305265213771315395162168695015997108346842805907233567892451802682262505004741091281429022432704146618279891061295109903591884537104611836163481972094769878095758146110653988172197164810945412566870959572884005639355912169462410786023759743698593601082179669084689140208330667810564619685768027259760413419236114260057308196054316028996044601174548380849006046151523217691062098461404048175327969930116581001885240924200007625466708934416781204715102866659527060330177442135195723240840840861908345027860798529183265342809453658841846770784614914895090520192555850856379456447249878251473790668971372893344023647154231828346729146780792402821043426141948738903534121551910152890039714750594128204964019802085464742991342104959749464753821165851891359023305649483141941516290588873821156870522690168469017757662792497029652938756120142103548410580594865597088388892197188402562935155401662164822974794241977240186805501464912861696844174091013809436231953208478177046098987366556308182881824495233591398592910167234805517409198126663876694653313778910268560845933215784903009784647415478635993449995434571837237269507675391275382084368027913174086678526483914649777696258050971099373682966844331227038867013864166212765289972506926833487400928848704391905502942737933254271332191681265312725722178130578364873706908565164292793480456838301061778959417548260916597695013928388600886194327355016143563055988127347868869691343093295939844314787598745772516237804387266504610840963670529730188818729871914113375000419446373519829464715323860618514627342329203272445354605136696389010645552085955363841915800577589063065476447183921589493818425584091367658475072011780354125559371111757661136091197117517028545283972719518210924828225422091249000735157213944505536437889763488922221453905553937703857601121557966981890454982360953518498219314758863007228803037111887623313947322466833691272525398013151457077690452691128842288890355216425072363713107913374053365260620127554612131980619303391950022553181184906664140956082808512743965083221147610325527664675283476427888829488119144984703087664994351876490032369682553708005389411547987774045511948523660593242891954702039327782713132907020906073005831650744952774063980756206087955392549722258797336069668092265705588999167806829739738745668494340959250532344472214566889997369020017326130020285650242113946466523180026100944238600277558748048764489303210833250436537523973671247602200308297599460306514453279684097737143691811127872761827561511579526379226520961099059655623717698963278930051091524622350746862533138026003468944177001872699282785347524298573030525385505606889201719673150237459138244850508579479794020908557928802999413623571902970281288301065357458769914635853797543882527974898475219629729865863582240703627367880186558036796695284646124628959993747132791567824950411305312396027516811336222187881356187425537745366525537237049340857928419663467097299928447690056202653690610389039752985455310091434500872746417205019085360135331522705273406811595894683134048952776782864033650569653472108134191646873204313305133876121417755745200198274891222065695970092008861909926885417731352870439215188654803617271506427272346317091070318947967597553162067361789872228000123966064542210218855284444651784861025705440149012457544456181796742517916293698412557363560367376644155061633384339253402596797060055185239854113628893873722167000181733436924932058233548277840255501576227997097890095871973493563907218487430192294396223106003626106827721131067901923277213347392957097200327416703983371295155702137349417470321075420085688915381254441654968029778458627724441783163043596841103664867870476314738832037827139648627142661999029263536338108595754308395706113996484810216937518833979154761029361012103994763002824558822346789009880542190667142579815500581985456979485786551603900208638948515080661194625732108991791280060864578491494028217688208222640180162477648922456828660455676449698227307343451836467874268121798906973908032130341175600912400873668191938176194772931832085228806072642280515619903827437900072355012840251424288210089662750813058694425094167120764991172510261338545859644750701071071680777960209304846709395475181737349766169678393869061794256202883026138069401523256673524187466914177294129067294920264715078768770598904348579002452541567863168921585134459611191666502272093969987393560741351115931645423328328125577676126909169617016704124776135621602259201625494916525314866167627761024568695566848651306559968467882878472012982994476989904315400902719804569384383679897748610813276734545382814584991476115521732173725896721294190526816138828592409784964228455525322325162129159203864817244466115113855852489970102996391527564145422505028223852790287780303471486591366919031478516547884408794984527281192494849386594212070609451655792618933893895942540895818736099065655794654733327911061546930664641070639851966922002743371657441403996794870272761365057734854057730672102088036397475119165757611676781257675929437763020996637507308300587033550144230708981215009118506049533601802139535355034495030565033488583672936010719726462417089940738012068573554244730494379245210772752022505812111735832267817035098163795417315204670592355853785268044634155766779953360349661487470147726082677126067235121095537114977190522583938558232027193579720436855145822743906820096531926130486623524889170509336839068282797016368459190274297754808356125867956913967536090195818870308106277231112891540042144289928882023882249902242052798253384914387975272732091404752342244383901063411278173136478792978192221653578678615453480136161131170218225367276584696355262916698129113749952706409388115463427278484540590598228416157053085937347638960109559055612222349641869701708330158591324854896640575708523219773823528122893435405270008583702585875896123607755282834397315382709243732060673284790160998275580627636305544706530291816722191035291262971514443802150487522159031046771160433978738133210921421409885797536744339043449543745110103475293727797863307085939335987783453913275172057365300654603968478586676202573743618790838278259192005905380046017305617809140180292377914536853545649936144419200900314666843203293128598581159048666725501051593817846993265395904277873703913637713703089447058960955762715418884589561777008635447540148336147516952249106996331318930087634768931254873991103744894503688256182105478055597729276793773868992187790447022992003123130685419425651783470782129858918381197561940089214220962884920258029693115811106175827984913028908043645903292079246540553603998453446090331256387189553294955659143164477539425636739167647283734368109144016973600906358503187979475538396104019645024615016351898224861585524680249671923361891864409494910834032589471668099996630114810332715325133726104526851542975710309477379747100157988853345556867000716682555616271509884650017007646227363195497646262187893834353303968423284876569566635607971319242991508494960059912828932319900341623724892282043936174024951749654888619253664394814409020212308695906812698649530156409365333235084370891172992178184651860333335175827187208431366902998574403476567782850382911723077163872362358880800663382746018438428929433590334177956350620539337823635214737818304479792403830149650526460163245733868103863177681401618792694144289912560238825732029572416902878132667849253304147558002043571700506216956161171470342143868278882407599738178747554690076286593452317297212793121660600287716479142131780420111725492227278356683289546277440524574898570155628831418865145153179496532758828949004993733702660193836267747723731012874221799502192171968304980024081164590541568749317821550734146652243305461537922304027901559387921019191752269704474144382843978227522810381829183688279931887524450597139603607545301750133548838552207182153907603883617698855279413588140143975332711844016119052524203100218438492469059610674900510125850664318775955195232526973550680607947743062680590161368932106182081971528435846635300414759571789353746211079679447395161128427233300268630497475340734353208104856756706387387366949991652291107441768399949746120222035995148839835845137924823486617602621464741803066299092450823509625980778860130933349759700163353547153995906821669877058800839592747680796519063115676460582931048103864347204351122704096690637773458364242178689574474398873462466193523022590549065991476575992221981719053009873835248134628300520357847596835280704121783411144120574395957168984188765844066951892851536396650953795393166785165951612599001232012562776324086943590582062682666876194338449524045053485969521979321467981872359761492318765509693291964152913148775913237023117598558577176678421414617589836833667969267919305039675795799838564088019649383171299096115430880942251661455037286563647728094903010859200742040653747191902905497014861353629393078992080412673130314191065217045509994478378429920251907890016087820032786988292242568316704351529815230684560080321115740737421547079317154956845153640950981902739585889987149481874492597087270599252350532815000811433059538665376762964644199811069297916292068267722647533673076026310186121404326716805042315256880961918653165737718801909814488842860270001840642880501046480385915670084332683438532640668860153304722211479893261777310070016660887274939731712000137280547822837530636518587507469389997269072333192537976721573406604466354023022061138427361732762300437823444507769772420694318411859368137603256423348145002778559306518330695798643618719322263601316563295478147265342647438805453337972739524440329149048413339046787922592197779335605882468719847303940591709236383521871116213912011568868715135176319489464313346056277103496592567233012105094923222664790744604411989848581272161985730332182497324948938068455215750003423979336695315035765507621892747878347057511799519667024752093130996881258611009205462465747959255543997156906808234058752723332372396525925121616161077447983324071917017350849346305053685457260091235807229904940559427417865570740352316894380479685397968295187191585747906475072127533246558669553415067032071797752963150715847312992846524756899597869025064375625493558353156468162076444109124604629086635128828918360247628992043918701506483056507761531446000299072623856981669394906294295005073864131239141469602540668926089884315439551688759302885499022872031230052659905251891843899449368693582282814545135228661365658574416385105807491344489132432065870737744336389695972018111004499241638118790557236139437739320731228698262767438887807899297080018104398294974388135359446936902857635779157733846710611355024479071772654484656883441178558814817950476308662467830493457862438021637847827114785301586868990474831259086372435476715296904555857310270562728260712524303529307274501702450265548133478445469790271765480843102399754995508202195690897065446565003006713201922647720938166154466857675864591183754037911641386004277356004264748692216460826596897299843939459563771327868842964097563258687489065435019777006455299633077732666936731873251120121427746736455950466641699149385372550035654337815312939856253811241364454335020150665359724750385783520730717716526611055890427611914479644752442154875856998739148426847389606306465971450367112696365189715402519532725824749729547861150794127892965044224440615996366638078461162595498460191636777608024690864414833070227051092845385233907817296805178643476355145614314628256038923504024654825297874406821347607094602205862321814840578442965864847281501564206203398679539644137903575472643015322336509890490223970728145079359848072367391901178961142303268854849330309224427646396852444470336917644482904398282790474736034333518925532873142756576861117029810022458903980532544393225112822644803614244082599226175994461437074064102312525601523896176944067589549280635739342228109951786909853496399471728444108419103173009038978534735263828805573543716044811928930377525039746018287862251674223061461324923958028966642233444218072190290848729439775821321728559089853136987312969112735092578019607093711551948151866731253057893602712887099711103764583532008336588408551421106957125285980090788273110465365580914673811312568995343724259575219585410817721979819822665810027581665113058258287256927560950025817137514443574638841912548894608296761378547589100818033618547925492952785262152817733408105817777509918876918450095792206583037078618729509025992031892790494436593799496909800247812479553215860212479616182715034505107533025210116630058695639852498390429267548306635666775014672202702753023472400518832512378963152828513778022070824625491402172742007843594070961847271443897127237518703269465559080413368567916626418704475583113877112851467179639900214411625246610221450839578083473676245656279510293768594835292174547147408174071131043140316884264124317602204703191672945530553203284058550060801419262763020330050174462566799618435082155157628340753761715075490613262224613684352031425457851224796651300376806408358187105098702632649390229220587836831805644173941758399414029773084488541853943953661864568101472822090187501929818862644081774280287320463567937028468470820993433363969309728998840328738843366511459883727036819157615831614559100297647236887818313858442216164307217718662261564657491442355410795123002739184551054351744270220882785377830057327325123388832427296345968506053057272073362226031491865499899740342475082539813355263533282966436763119078853239971247468996041538336706603174620335365340850851768336402225651899309373681287337457969334085347232042850983595504796698464332267077269872388882302821949924519017525494504284396252951379351351406895649494913615425445340331253551039481058702436452121372895049821809126265237611336988162011045566528109367614788362558885617596133816578548393356128984623321941312711960299477545703842583053791738727005761602223702246395206822570110016591584309835017821575139201925000767254615102169038012137168670317902521819310328088321695369400327691424540662791951625215117693118818334597049421119513910817402876101853927447164759768200298794086788023999352315351075254688037482324053908947827133093164823407463831222951956014892337505361525147067792962398154483572237600161037937625976103620637102905360640943017877493832125231545479256626961551764159749927823115021899626269492442403256932671368103085221597460779922343585403562783580740167665224853604770131922530825292660177626453431136034028805077683203595089380619979416109470522474080012913377627603089767662076306205713914514410288217291112587373468756834885156536988144750534343120499627824596406389929316544662831817302966330069092457328216916251055838682972344194445827558435543690258833680642280197310844046613381128751478576260826900418492880007422385493433501747904936711009465871130040525015171390388503870256062366085622068322921552338564766513361525917993567276944433117282552990470891716015449736294606458785675274647977998833716963085067408010916377190950040972678203796357511130092738437425054909530201155410962824240249427748167584594152775156274722360344272746297364011643130125539714031626328555001043001326751970140079251248787824706380057146183612748494482573725649955438809943728142617982547805288339853139914452325544062299605953170817042528138441245381991206245286194293023478492209642044079569149584229238054447881895094958809576261180056489953267746471620313340286593446750632914737043988042588293371394829841568767983032852027545305799942195543984921365382270848257358951487766016251019306594405831421778418578119560184085813788808899122990700999215002392980200326444628346712224219909819786041361275314539971118445227178456156301674092906160066225610925125934439342956216754775634464213766954455580655576283818187945607627649382352178189198700964741299142293012254230850929289089609894648272754666929575376888042765030858764683094642708782119927180591582114061458236272839261580451704145308984977607455610727704911198364049653006719309337659239826544915457943617134471033791765945777549840649426189513598905379601006827036789681330848402915673128188789586238679568739936915231900758344338301061250075618101572722860755299792127253880665669780484884012399284292543407115109311672722920533657383821071431606619424715317134750146672665344696536398935411171368165126014344361543266344668515417628513273260452638022106756266560912558426119369045489438591744572644655383975729623751691361325134095975734783249697871002985959038525342958340777219581202659247411339170314378598780627564789116283839255057137825851112464078499400950354231326093704425829159696770826058640907480512994608978887582470462923852646934138996832990816856981561741606241852460566967213702646738047587217220882173571963964761058343628125656193656518845546600249647875056846693928675776700487739531779469049785773709391093253075982908840872695316999357857256426887087350006214976382628096575811722990730296302263545446085963096359790014445461560813494407664729786190021283733558330709503772270610681114969413097634346195088676540535123166761760440680908440736022851742884203765128240952817509811439042066707989933527315241811596752206534358867766039972157098585136781962357304960716728254042683949998363926702714582550511070458196072799941908067511814060875444935974164305387702525186302669284943319754406867738629282728021995292959599922624141320608725778739933242366675961036283796846654911268081627595397886954761769037657222612147188221445845536213283500159467856728857440723563456542625807201230457862244559241799011123181069333106573452590805662366857442906550838492992269069531434202333029866900662057121716849557178518527849206649798335953306836106587291789705972373140725628190819777240325988535579765911073166953183752866012305057974308772392766392657964389742580966907068876291414056142899198243655230220927356095737975166214120600049308740966914741843088167162671893975805745899060974714768885943450942229025713860466032577754978747211840418586236086584989351756154838594971296011410077404306250270956968537672031093709622261441365859953616754882005905847519580520653344871371889300738721642835801284580616526972753436147234930442395240621624296272324414811498821961326617112104691960084044254055835240893183867070211489463716990006113887344759377386427427785189637126037523609400560201292161827919996681680133206501501143565465882281656254231742318700912696695758695547615628691714809807632430449096274962679775923542485384610291733466905163766830488541437868559667743266637861048268348075625402129119736882707137870022679735488192826744754016496441403593373192486379602900446580287029354047786303061456451391516802763551881138750702956198463603701106018415525206769302660327817738937785517054383437952642396268119619355312820788472764927899847195015507348059494399534554483479309350526165474961946573238389590014752261139260181254659923144060543429896161566644113861447534357590359323139845160569395439122827514755379567116614338984726605810089394264062806284209096044637018452456772341722370650983983101979888806775690027950488867717667674462881320167268161902102760384603823989721331721815816956750612652684005902353730986354377194874805892043276013326518313441809786145193560207682075729685087808872867053401185642366925945938495698530232982736476974584419967634389735736678087000984913036131794081940025668560184194562375661144931710858106965130766713563058398780338749261842086583498347932910790315738381627559493490720912800335331976376545450086161307126783183556021740273207462449887302492270523764806101114381393218973920342691143814470037661602670855359264803039886514075031189096525539053307327492583467106651137555034133825549655067365037586431695281518214077148673406348952608109858627367644272283747522297178760860089353447354829489802153914679533538011802444693587846058149284548200496859327665869076555306825178014774005726666726745155912659547481786909656014045727367437959787192102477951887945169939549987925035785077355145190683265435625329913888465370120642852385731858389288580039162408079687522600121794763464471393386695627589485335059705232872231845362448614886802596156644319860847144965322454056262945201251570509050562565309284106368245516163096727523391000359387425547412636397152115824800011131427264638967687549614588359401024577643452736394059434894592007389545655853484108995445949738896563987759511422007982753087625594403087011451274561055275380518119417825762284905610052545495569335338069841567483958162835957159976243606831673462683363806910637992104236381066030591684013802812334955911632421171617571201868695487436388641651572455683861828286512514687395483955494277351175204247937976360655643898396497399884573460620046091684042364909066831563231987912734261719444347179747865273630605490246077882521001456843919496545141098075499761712691673963217859429495063599668808629237967442852497259454638174392443977658836068124717971805736017812864985642183417925454101590569061382724331182881528013815888555768981197464365335404325751182564688461115634608228965854692295190456805225627724639045650134215076006920561096008045218862360597350859042829142676623132337060712836267195577787452812314437395973484334125262480520368202610876186126246611234996438926470325735548492159755258525381035781459147861266297604711154270052496754383638510703126536392129293532319625037188089932524347556243962291510839025756971238647113043801032566156386209548176460855975469838625242295491974708931151590681653495655283752565368379513318950073614678285663611759661706326015612812330017147532099352284839015775319286230340333970563617373179318599778865778676741934136575203593887107922296180497809071442108130214704857101456057800515797984908969125899352748868499193600623450951358848450411868529658253128336304581996720672329501584428090767670383519746558499867515254147589374829635776154154909767714308991293093572452182915348275583475728927950845684242360697676568678263026062172004318430768752353761303601670733659744368426582735883813431247445001997157964762918931263764341972485011842540499664801923041689048005851657319777305868635368619314359822880775114479116561437669915783494896851266302433883062209464244997453859953280103116840622097680786255326589736652372976299198704486531403916007977181411013647102402073956780551089867689731310687100276493454615065506576766830419209787619653848935905222137549197525064621772502347963450469187603040956422647558565851099419046291675192151857483278692479253761834266104314459653632119374798145945244908825076462041212656101764591955859624959865006309293564868383116914485795423410750006244582615619261487280399585579536306406761214514621247862822544515069288208748358218566540708554326846296139110932358399587400482773996151351755734488155349773752929142030427727423601681499147343376515069044097215158449444105492898166672965984217148019811944961023082990202364949166062932326954194730946029265074400562726670198223714940674255908737391713201492643600320143665262957395627556867908162908204372438130661609276207389613676539540636883584265748886873633293042003330795199086653512470120703696223559168324298003539208293484897433576095887468737132278977693983772533181409744584275174266783726306481780061123509678046779679349156658653384795810601060138030882324082224723727445110407856463763266540768982511199205133418269928625236856602861022725842447953049892115784270714681266154123883811165405601417887693174239217979366907288367760173744940215615158475717025210097243943681537078874507954632350716618861087442229251557522362086120491903128044524381129573253911784054511195291195473688419447337974234686078667984995073673697616701798078125750566843783066644949157259788541185763634012883362954885312605236658706844659565520616891722394197943791493176282208190460922451081551351159187493543869401695992445920432921061015965675607682638128594702548296616260754283811772355338822473635834565211839170178605624508778470148346276575228733600726697692966512504532386932278692854975364292504391831090495512783246810277963240628728467638618705229146925664741727276272351083339692802225177558518132361637119199555133856952094332760577213880165021452784302181393900224136168784997243435904810770670581424806589676225346862560926229408833098434484886987782414574799104145640820871146305978338452223480677900220098303824175970614201670208240762598155013095308360474880865321193103672072064889067256130843074552887245657988100991735995492022523410858842819944192396654761275632713865860574785508515848129676842175567357855002729345544423222605783231712793608423083008662551840330047333643355096295286827419444058272327710639962575958216205954568546792330411375241592069869231487951218487700314382750732863574895663375930914912288524217491895740898676584694755296254823499331837625136357823781596043090909256523072401836849386603538530888451587902205358172677405429820413760924809886341105828714366341404656348482354218967209299277257787432730190612876074425589190188681758944972738472954994877287312156079944739940641313453360483520061932281696525649106319504151108468735824713438502388076977713551215761965518140578430455746038260606246458374291025720747645643044779377323582408158095711622397256064906888382696021233003382181786471909379605245902450282696583055363267879978585194960711932213928000202408587055354570012306373902886785958307086854635906002600395797894735123787605258862471892103442789079097752920094605346354563839711440482397678244486887323873701837021538657938036739082121843359474851916539057397212196503638716065755461892384381932152507454699316057580829226692186240582009158184081146245730402738065257932748293327284979049815763951035264546370904565096956586520646400201862322704541614724324799718703067385743351273853904797303646596681258379074281775225943794137688955467708508812915796001172340455812060772650153487104767933037760485001911179409518096273229045263555802140263091588118613413676861194509365016998518315833091122627105945126734330990453507053640401566917077257469402888392650666148994821015475606929309800429742699067164997461237059750913953988061985249500775284156293389423689837852470683568572866578826634496216893393316458163821084710698240350485436259530650774300291184387101280764476941708464812854928470052776559384803863730240376026188893817477766950746443905313689269243996120189693498160310944061160307451521023604521582976455612594206045850819189303732525305468203402091045233832028250067667658349524112742538165881120189361694610938651075032997644784008469853840905631987496719342308339849743910050768211306876162111962164064649830648723787959128934733044457092705043740246246586643129199092596132157097471909233722941687608712940449829127791817365209210574641895939160808885042021366909628845824931097024525681382033207446468181052509034346876241070550407612051698638194258534867684798476430353547777083575049145814160417011427679479242618197632438233993664735804396583290020502539049719697962986145788967879195949214761135803093958833863032088259844508213075410184414209068068000917252537278670057506320925973209990417439116111197011285266909417826727454002251253614367350637528015706541447213154439841280562571156095626100988501918360784110223412080217435461756918359649212154731230858162479171394236651246597396868873599979843217250566587363705456451190726487785838099384751463461783635550999526579296000570899897991673133057726395844367585378613703475651783487397831837306879822016722944373897194008193603534915979143265401732471713455399372089916880179930958360795031039867999079799450330578486369976135304849460327589300369511339195049081738839335096840086970013633042856963090499755023158751187415489513669863071837662667512122030305342587154882155095593863591081195112248790452304550228067659877740166451952213085654937313601318679957506938424817621043344109706879881427917884199124959644258543743098164000985221852059869592562373949008063626022340495819609410792162020561341013297622197227528759545155170534311357045102013136426371243189875113485247920018898490260470995964047488811475805978819845614604989802701812969638640320566390042387383242115567844755945055540668175166206364751803523520416323974514491197807819403823738494741205329817104868352564102892219651155064218668315719448201161566241288071345491813819530414130560775630996705847110225831737339200745329537197960458396051788141790614625574140338579558486463443377384891164314746866381100161673893575729262679577713187865392744577497622385682554422365600015182076910816772251012098677091388199401058093202914865598751661256237657495936740908618587937537316583449621295684490768295831865550836744213543740603066501305262965529007822227802530568302014525127028051454580172430429648031985138075619032431116749632642605283800113762152383580171008877126689649170182435344304715000224078463417509174943079944895790233726439398699184219138440866363510333187150317369057001590745822404301350808740440682353454289989963086407739141424537623044944539034295475970353828725645096108129806897893681764631930142039601248822264649781498132051849924377732715846204366965052448779935253716091076799271851208484504423102693254035819383060922977909955616103531769638046332086473325500273087332784783553639495659276794810003532414984180304041913890229998532256410776927196913417108174978450073911249573922493664603928469748774586525978452449451772112816626528302595373402044301280774044183097330011183802786016724208731064916395110792711361355815479541960105472580304000047734524365558891757227575671295541451277966813610392657496827875638769109244068597452943557519486565830277363657931713677600605524870330599805437119503125042607282525165445143245199160585786027561232235663682285955918788846180257974373506775181085445014804978165847581580463172432353796435261204444642661062757941401360822248050047537865163358029640954489169884626554788360527264094488935993123327180859739545257386727281012424112551029469176472163130865448629913251783499746477773785211194413168686244884266421248283462118601481030582368769114857970664548558581145057661383968046188438270964350367162647701224039689453216319568717487807810224122123683014875451501708268956190565023586450841982398007321620713251422881137960440787725729870889677897403450570358954374290361368809304268329178992788456867579006094990365207453849019772981541259793558224366058625619168213803919489161260944812114708938515988766388655795978503162792252406700942402845352918124245953687870564997404571226497693925241151084236911606860573133178172919265228538455318980842243390087439966527455441379622428778008714117303018616019372819410672963553823026171098107498465716720949072481641034940947369246196597280089243381395746192044749774553588566333892308707538827647943668297288042038488303046165908081705021525084453692668638560186086957443819215418226403094455229856263756105839753166722059680064702289116406764099881387935441099111357737929103702468299039874402533982336308303698951076472251559906944487998835561786312039789310303795035611919156508184589035516469681827230127096612213181254578648926018739607646036209665793139986515933616251751742408122819094712552211888624589369278756731477168080021939350097568132313363373065017406574374677613627467677705524188951881160222473963384136249446222505174644962464553344652592469158178385289550958544451590797709390240646361766860571707529225031397642157124186788978435355390718619088156883291051226884168005853442450185281546481734337255055045377650327090282752911897183262136719268036349551905761495084538763698996057309083687248102684499500478436283245201683184501118805977486991657460472297728753901673443417092642126451451568535167448451986325264410232171694628187840275883945016205938728929967539050212261657419570848690126874464372255355657414325692032472247509880727291160021225968488774723593598720295981636561164694864333242196732185621553023909908829360362990405093829563999888229278745613561181295218262482957131578226597605277828771420641981632961420214752893180062460839870788461082515435150715959812174979544417878509502336143270614698643629624587436705654243029573184405301937043047585273960808843242248001063064637418102738157369974908634025492499762728219116101305679178140039668201143110782774724685831734336562172490539977455370315731434131229016628226500197377734479741120940391343466340233760677000068703104690820988309914102202639231327292588464734812332776815436651177627129033676010616099654729616353866241631987126688036549446237521009822519058599801651517976186568270806532437900743237620776199118176041461954554629356721062196486054224498952335042085087802174792653709611873921522922330661635320685960080400752652071757890030850286770831885151024486109945474817536473464550683357692213701019702036093578561790891647024944219598459898881952944639628379608877505250889291018084748656027110674036330699386142480948516368064097694246926136240512720716422284761991763128215065748092763245685756502627002121272543078016076730551836322307302639287775814634766854220040796088560199621574732018823142431712738396349051827512160022959253588111839875863128442413110718878685848782107590568979782179096299947349908536199475925530839813912828430913879291687154342751844121541562868635535197581209661274692257706686404699585541460049621723026656739297892581985733518948126546163974989577611962401956468473758327033845377218909292225131194479023684879328827245684237991624118892585914705208215212603963287823701378818586123499159805822142305016110647843789576386390663616460561403177305069324686050328486417987082419523505035096945772434330739625450997619061821177573533041248289850948339404009614464544516090597739513584517424040602256875835385775944565977563187560385961480193152024852295917604918694185209857540147969191963986800840869377901758255573403868387229381843043302206762144718543847465544695843685282280754966060458140900018815786450318751863098620858349130026887417292996548820808484666466039904479512833129245810361858810760694353287179930120501048470345449816199751081080990219304595951152687038940274430254056419391614668640867508525405871715971927640853058435226327813047444851919808386981123301965717130553735104500052249917373586741965424485182030938244560839674568860015381277761148581106182063236615999912033387842925105451834062472849973710688652737594258552906796680684226821322166957103321091094783004860893841331718541104193609485160776921365486086022932735067265411704741063481502537445375999736431453968296868733481916416230689550779419459972696532466545830959018142941458879589247723988882790136259417801078779373675445504676560632016183665919649837179069592837205480342442208249445630455391039206465373836562686040424101011371029737099381358874818677055676772401918911883158802955791545405785723174262166414408872463335439006079145354800471553137085980193794753782174155116864977059440903975991860557835006084321748473150825601572200577310123042337766831611055611901275590958848150431942738127779716259840716690196733755304796119132844173161962603275229607090335690328533823266332056454709913759904450020020828552600870798643814128078768231359187654101778792522840361205821285952816721080549564483843305035457621955354428030752483522212202047997882908200522303123892962527336697403737531444071419399557962847929851237756547522635340701401684884290440825068764979060172706267257759464603201235736737697636433920466901649979874932364793794920012585743863851063669949174669388105030931724639483064269688117911940549363467214799191256687719090761158389265228686217762368205457091278653437570818963332043077974281819799587538461225165134839625660322458854262346751999027007392708527050195765389898258190106176055492799391118801830648650132229973397347696636099532746952018439643725065622797347029915148319801638050779744884624690520622592669649659579479171997826457969665088280101707636801464716325739693991776403031943865095624891915747187075436762332999628807739736135267265580324453701118273903188770847428329624063349621885392101178583287726196562217779662073241363754548414334604923469140318829736988476750801498391853508764220666346761482241553717926862189512849735281027576303243596711829357787383833849154297443525580948291751552313600869328047565798017855949714733695005560884681751752836153412009495112746100677133208121560350652492430437244504018828284134772787494558828982527375453360120820663789957904115347603329128753061542727640968099326192253519484982644034280549583338421969781911590400673945072169905243956073496455764219468493759004383479579233005674464054092320772152981514896936834939603041204903876988649882000376096585984818717942988662301796792236544620014055565066409959520369206884698856742658722620223021247683942078134158550117552198958591793381825867176738938919190972479725331956742102649420897957787585258952081125936885686467009315092009949293511166090618683401982324383941608025497023739474715240915368560712581420541575417287452271404122891900472947579261105836252502465515650410381665201657124836764097851307284270209638989041993494598476094713304078855977083691003894429107891750895147125604880645785832821943964673132304782133607427250715949496182881921467523870937117931131881542016230012643714827543882983881872123130782317804117215775587897163372389727167132262378925400497604162976862134087498316279616503787286311924158967448928654916579672618336121143062759758514863611478075613297296704852604854863234821768433489191459334913480102863529100809332266433945973203088174603035322135998856234253737662360304753893047902437805065541867760237008948680099223618198422834833446664847782754482372619736153202216592784027125825484411065800986632081282055049481833636065886831576612040185328639169068058575218274723277621657587795572401493725833078483651894733168028873471784345051236635638837498066977792182215455619168191362511931138573874315917178755275283127901912341980236482382282794236646337312356147645898623754781368749061360203349224833841566763734843150875137670828543435890646275437417101810073625763780039388647564110901752894125459342995170468255588832618459973319022604790655354286238609959675714772192900511620342090341024212867603358681828103480904555424135160768110330693056326586025486963560877071929836277846030611671898736349325046179889588123211849565810605367355049109476688163401479250750713443734730396838129180504341760242815775858414347312536836673581381756398555629132772402498309262298190066753865725110417667540017034376083077683954133266576118148419887401034568939711921079644182016427892385840838870637590597828352628332387310568346898302145026681297446641734134919972402103266775026255970657947652363554319356591098080463178292657920715312969744359359664952978836861375775206307655760466689277329105103253509576808653085380466450338172935374362025488564620835361682982685921340409704879944176043106246144508782752546938438871021355735441870708450148716527984423813925860934342505443260962822183742867812486450941678792687408979094201498233589221540948354373070849611345640321463537857025192507370094359058048430443382121495753731988240378003828282267178883530462339479088955560109776331714542732611100254976389834089728592620977868448442775754801024971660956994409577403879455102825126098802528786539244835461113534957206650866510106097388118386514109757146816277893529555524093990752388578163181529791047413226965164520055321272595296942525120144866769438157259645385197559909050167983597588110390283322694074341304136282989643556699504467737910468390247840053218188349769011079568776202267279797928810776095676590241042886695441481320321831017684090344091523402529248044320957628905883621171580573389486411700499605865994475067671875326207245442725598587699627343010231235319519893455619600996034305894056939605769017074357305962264750278015997016673527214812776846357592062365820808774847081784522690607462383870873867247898450935937446237207239130402786014637323952663620844109320641281253481626569452180623851786636861101443674471787025378832105389506701838157129790470474887789281462938711893977135806661826130470185326994737090687236655013052584523072830929819741623816423897523985161011520568650220521778033545542533829076363000515715052933700820170415855431902425130182820366668119587156187627793166255711668606421447401209829998017778691815087640874494689786194153097873752966635877599607962280163790636140677753590204938974551695527304924791138697338195027501972063380601321778657984998466630226437664617864417407957593724766837748598217476933898563850475192863854456655536543527918929513250498601308135084371880329528869025408614327762808085180363254688319070380460763369999402058197632930774723997812248816610308055063503351629307586860236051801864113054416794724846463384638556377463485818102081273374969271918899002524761118909539649996095617731552367514467056440739657306799367636305582945592132609612660124906196625266812703984505930337137598906573106157978949122539425962519794567997737424309924792028909562470614384527706852911553642507031380061579875514520818992361550822094403046726570876358755857272598004097237728943135440600747733656407353027142762379701418479549186400854092279061240975665736538267497143826420082561831606694849144417807158410819804585418307368681531627287119153288401267320582235081872017827943516914627848902423515248383293484576341023924588537863702681662173782279020558882436497976731779605322841110992169126961945820525061898505217483527500625940389117221230220491707101441708663596380051082568880067463336899289755825326486005465958890783183312379747127841189719609868603328696852548541053640877994037380287137974561375034766897610853386544642315188191659468578050744622503581022526792881332560971648813338665008229480843780702899343395200078301627024208087955150451328471070308720719178462471157085673744234034123698707678601809081235311342965814190379910414027591496034039318600577105107448504049364424782636487549458846114596019848830925436885260367494417981505124978871049655824764545525327898564146910581043140296494255590020697385803085453388516326095852974564618122751346717634528292318792647964881317577598233850502260739378540979431005879054277179090117716722377994628977395631640987937111702251285590144260762960354410166279515892297477663342042941515343960795556531126529586763249409975420792083079477838273656530613821296326910732383575395150595585704328859513744412735592692543983654206602139790288656748930732442777314430543549296912080080313226811868872837191317923311837800550573534196542192955275019020187278437424140953270723435926421507542743138286991674171692436536119784766659565843719207725667230683044056315968672029982317533717393854949752522069762515800829614139849849381629886648721294740408537669279162279316012175851958388531831132974341459219464643163243295977141243020030727546177400541261064088735020894323633193695999171535992672010959688700489794501459524465766824130694269110298368918472324132503395079173610419886914631119813790717391664667522888406377191367628811956351060579674537301020834503858085526246806041551801771542927819792964529705571029434318681489285470440851752743363233751961170272249466607982990884935142043110943938600447572893241012737788554462424826804578595966033329661758430423111287285040128238973464317945567971502327478473039868621411539863682550435976757922830636811348750820443613973354555565550345798238074853326923759508036120145724233123996786369598615234844515653569609737532905587608870583492160802220931919046473422570726885720297943998241671702273237833992130978208314539908044104187053841409452981747269319103592564865527450495818733009165010962369671023053002142026531023654060653764863726072546077788130457448299608944041605064463764443001097862966939771426332975968567465961523195942183258122815724417087698675487331887199090157886249327440982095455142273550430240482645462467056390456760991381225742371822922729606606819526459371600737771630667258861757784248690986374214306827569844788565286630773221816164703709817267768734538808659128500361922617629238715222563955169870451564643159433702029060700375903079037652695685050413306245156751195268248776914635352621329029510197819688154496929293050530096047395472206372792972166609481336640387466777578940606341985924536007198502966021979357148937067249692099358183336239649780172106338970049307139017342002393520953017737056732126288385036626111483623270750068039760869644124479567061618545360808246714148587411065342228029673374488001666326370695640403410083620021935297423212684700337986124022657422509969306391312985040093844768737215598866766326356776646841549857480768065065589464139932239079364797200857091984524805604759638922542361096879898818150169190513583879606268952859345149743544762284033841249076896020450307900792527980027972599564793856787469242092802964648542582142526424703472862062711789140979999790779029440909485308100888983263479799941772085176543990000096638128563928559495267412443403538321680455436308623103621682828888024630024260479373336037417862138764066531655883567971061585480069911241914001022300155486173595762410060187480372673318081530295106524703039704976651946925518595772026924220195106218702379119821026080986699614565428656210868056388088533211329147579070350567789509425385722605944730559430239513202689246237327667144450901296883490101120196341096587752953047398777740219325130399728668815046622918233797486928617923712225495352095891183864201126990285433395072893944226535586055790638120226582738673561876569072073659314780512907206392911391251519063537418054285865487230915548119790999096271946872480855763422080029378364612480730086258917510434660284469815437281985031642518536699961595502652582941875271855112992688627622373514373904125706816936409692564398467652090096746133910190983362765344479458314374950697138013062886850341099575893554368438576120275311494493983285444358496570298402991508624653650749171969468328174120736396927850038160660027555209704801863389022724212000858655177102681457861590556077283146173591466883155546429969747139977116417112010213107331076815005457607715650670098451456508355334153361262788935079341328130869356828090182079970707439542914072225196529349219760640899000787347005113572626996249256889772469852367841334835067129125045072738677999877793138313922530647806434060219440174940382452905790262351812338832429265350512269768004088930507732203579720504109396444656770639798642400148578622662170088409833288760224856676365761959671034742984146104805163085732864581512368251696563239170140526064541680490802067430737488463064785258555365025186188058652141933244986438728141437455664933613515543839755098238107955590101523118721226230601888797347390157544739621567281518859772381156318856901449108328695952106716511423212293915687763998750333797961796605206904753702603656829371631588564728438892084670580531111605828675347405882382804694797699204516340956304907841411887693423067970764890198760106278613297422958462587719836914248399536565362515814267555773390909056213483077812153152599194054032470865860524625866529722928912400676896044554501374818609299731238716617833232170601767606696485218762919447839340021032318330358304499293071692386559947009699482339812278441597499434730144669363432305578193193273610011663453733933869423272342340213547361431109935040369033303739430545359219168466948124402362833377332099024555591843960475187000182288726015964339341348171034622757550364005948152544721572828178505564745950052440437363429513113333616343472865643681112887130964394951096062966943831994804519532318773026516000105588450359727608469746116820842312776270830307791489613768660555476799084784067686646757077011198951215881102985172047592981992533883651159108549297260186432455313486745934660490385474251363609836214827964222211917187466888596267428673431976689293053353800806756567036400357583898339180332564440832397042406625561464479371314166540607987413801000136902494391133136923487624925477497166234513877804723844376882786550614263443851334247071344237268205575148442443518588509995864833054679995525130389353718973003348248961322183513683055782638251404734270707828536102712162851387063665392922380420781392097201821141942246506077323474926435722681980401129828273490962606056739177289834422379291314626840297150987267467611822575931549672477237277259808294041026944709405278296300576433920950647339781434011301548868623534004169494327784433366663671410540712808647463472241579194395110617365794395121829916310778790803519869586274176220248811458090378272984617383866320440687950594629136530127593390154691677681912311907948026280213476893607360820208649433120057301878745918411980014939183837135717926667536157134889660691423795833135211125365358425709401788682756922172050687277849212010970420411628702349787163959454070596920585835951271893696136185316837237181221191456548313048450818381751178316584295982641728893741194410351090989970405582741458082528963928561547805250961378336917290426541522452206069793335353757446659201594124174325375456011355747802938630088925978323406747174748358751029994443514940567580301362738505586378546499278311228430633651549986204429729433197173321999134920675922242370965486498507182750841532259983923589096426587215191516828646497137533407462370048251281867359763030847290095343775305150809769236705097746017913340981323265402793483079252430360645214834715491918633105568643667820023497566180635780625283585402278408622068118316860554628589246382920835760182056759744181013603653748309655245334262638019868073280634772362725343778733999174239683221882875682391181190965492630908408992274273156183652738956240644992737716982197511480302907620968593159591386678539058897020126465861852008756888525774532427803003355716807289458569181073956755721838295092368340691381491545735175361250258540013463434020079505870712018449480726752763291730996922382725922286079967373285471541913036095763077316694309488600903084623519588458149627992080103592384191995042456492471512623895654304771309860550610329344590634504290689913638923311759044772679687011569477694680289534526252968473829379313997396004165554760016103478071207875095883077940020182086374136171349335064008860826340777656100607951647911848988436466195915640527578686509635570782728597289746184950933956112386488133676320128527659059575362336919960956804534566434359677856458376183438982062518395416478264893395839975493259494838889237566024872915207221860427034629506982588734511731004821862676105683542003509234529769404986559435604756121601813484162934032649855617699396249252225342156602199117824537288689449939395960191807524957258164961088590720572956792440573634545215001944122771690135144738752625667553602843780646184036773085999344712327909664447099055071391227497030196948727689606079012896972594220635047427007934209404037801130924877186070827779848758619125578019664764095598787515939944235586677137922511136601745338564942696011639033345267938593519051926905524401549415812108275506164136885503612815972779855753700804723454367122499882901027506109903821796602893669965289203677973984106901212786232636736602704893955905173676012612428334754353607331888861308222577057156269601636810598238073135454950221442481071655478256196554523178800246228658130829472840818101124662235212293545750003239198750745534512931381634229260434945982843368349196327211187548423196737966507552900677602339298424039236913366946240282729276295166536432261740586183043020772267944747392062523635575041295032746449592329371742229325460047482849028472198459419437758023941211288924476167322434356604372144275988454510773223399526538320009623644646905457430852000137257642153466224064067329026907835752775577268415811276635267738568095666924293126669592046253246754824344225173681703573162957745401436284447572799014774134304148219687363021962766331346491890704214256435628531161480173694058844820472902582816237698399650251978331598245982522759898281887970927899363764315416687525048178607984780923272636101968632158980625420527789272146044466208405440238888363634893257234788398653924129228644580761975166284140922134124899170051631718677303316130869905820772100420420615170852760708940869455034095299045979090482359774415185919416143122475188313404042100868290989262795283875604172568853968685820771305901497503601194499581636633010453481003755346285916526869269840940655653239788397855561219042367678281187075245095605167247685537039537666481001911910876676195856082147553741159890105557870629819411336197218101655310502380722775110147777432800848904096389586424788704781300179097912272034238762749125523272035508543505980556050612740432489764430544379228903707337801820975236092972402307534180528577777658286655183376561645492667916785573108721822678844991843831072212086056548339385943232511651495059273943122497670623405300208299348849403486024025329747710435028245879481439813656403459107203644605690476283541744627630652379358724082974532834518961819186485752111001186622880770127105983079192974808081214407462662879960987546916648418739385916406814234667367142941749663057319787388824211925786674621038587808434566672824849435381979673794378994966204335743775989585227628295166761013763493562971017332132937582426725938607465305862717997282168872457558825836241144300435278573181632249787442969418737160443399327578200704628747952165708685662276284709386399834341086460071577396839789138283399701924329963146707610240195890822639942573533428617446982172976598884169991211728330063702617230847167202037439479885020680466621381057019083167526960897627967867692109223600907920835731028614427193783357694337107719585271990032291699437853029501009923838151045800778549554162841746737334450813730374260869333495864115208290631119058823855991888643042887431088206443432419733747276095405773564216191975630318486371865562831137848988163068031225110697417919461826515431090243760143924826651166247281120411066861201315234920585390082359805863051455459658083450384799485193536006443271118865678516911257534992614443368315128924116120081097613991010413722849254452060095657221420594665725391809173156547787177071827354610859616172864209554505925371016510336100453958185204058918890880968934436161918901118713243514036204167827100129319494174464729887037184959641787064772866206845414531351773680343952834467633532595079052455126757125316130035308534237286063632691352841059030341351473091857207725907142742228457641252988734545434601473156540220704804635679486617934455693627473340987093776269514027437219441683965672365953963688544648709527508163240435449012671411184637671079222547749668254438994055203648216870812594379802678742686937698958621007073613831152176291997500069108552859718374946098043371671633148961565449417828483079488689640693274214785134253164005260494056873648449596174834791690206041690389318282986424732414009954614490295595456172015550942508424466002593718225933528222306160722403665051355415235286889346113002234872222474877376172277852825848072080106541912895858261107971455055723822264490799221997092142639604036886828800251368473227250097655137247741406356758194709529872338061178495038258172617648958941531509278061711857394519821600195294236591474701871851226041829542399917652852146582929782453939309716436430706453282592762115714907326736109825882984767771540240374498943457545647668122709994041532054497892680326538040828970790554390947975299777529706059806532333159718715043658012617851062016813863048932223015439796804335974684792076041441553826825488998148375959755866465196660377134230608131972995775943304286338560427970976279008382446962258797438020027674987159052479359240871390475084945018084387489803119452618353599777805265450979432955947461066219083852881393019082427223237560022512140002849825887429432962696187036113124451634369900633344934329987714633368095264236017367867896257935370065867895239757103021293753329587310429938761429649055034639476527000378042616600473861133765487681551364442593384718014798400166392730071218449965265500404500511328503535517397540073583418767872864501681372842223169620878041220934135514434170959189350637304322740103409449452774128210426158488586773263103012093636900464261263104693144495720581169134870311780677550961110852437756345713929465972310703584398050143674415066846664678178036964581700104719236693801908512636529413291492121389380536433038021675917788038575232876058047738799502830277378400476694846218278020804465894762820730057978978078371092387198665263292917329685001508134469069915604442653079156365562081101942306783760603022563552544020256779783624442716805267021549894737254935687266246666646216741995060020265940653360126644901821254189587314020500140740240763147219637101467761400420040675300771497772420792111486543201857968579199322354701170996890603342308432477893755201736387057680893943731783267826485647769431612964467853785507717164718565433277730828333538283014538678929736020145110461555112519346253821644799593938458961899612376934984619693421012537619958945222492297375287529972036902329469604314267382928693095585055829322186751118266505229685701409980877531458588036531774816374918249143164996164748862198267276800870547307108083928048676997484097185415946417818376007031953405340772785189779206244292081944666455648740174922971396676586310715969849899713695352092556957153991221217239599781032664549742110692580661031333704192511829503176203651830147146240627725205329499290879872378507189798966414189886240037101582876437027015506566985864298771625118302903886336086091272078097911520485583084784904289972417774286603339561517785381726046758368173823165310563290038061532180309126405611127985373452676647656118958498120819860477634677832619096845113813648758236323090807560836191122000539192687474267321591400303377507996651920564252555164732214550634082439406627406025144195703625397787788015383228999385336176138147409759097124861656318942858639349447662211223708833199606496282575339463513399359544794463516915493780554911685450832076233978580873306072422573613524057839905008956267222299953117438860373657276214351505388650952549501432359145010426548649877460227856772357153793379308732272251171796523329047927024507010561475089177111525990805643518237449293005734916746799947307402076896891055106337358475979431373756601454694405134940644403613491108895014304422764648579829590545826238157160395386410916053651722750899992171188257695243343663726041958805857341558038009183927937081383972524076848928230393994297660591044938337744361059586736748253823390493695824197391205558285741994281222078926387545108441445209988804456159783668651194683510274280919581976712945100118098583760477834378563011061519834094972627900888531852240547465532642451548482258951408936650004704186739649503057052512293264548666446894461722497778362435788731247476612685074396802110530663752973744847416527253412149575070573554273224869535506257864251859059772268397330540502726824425957252492110273492766776354996320429112811993810517643299198672756247471617145194055961885678612110636387728813681534837219776311498986768360709487539439401126775704930619027404521576346934263368346644598099550710406365840735083027645848781237771552621062990988141654543387077146881849588786243134925775560218266971985282094925405895320926985654478231852106610008072016516086326276072475827548065094544903917365908027795829548748376470165216832531332934990449019326768239700267474814979532379460279729056603974738305032483196002258326159692120847729309326541490225403284595167928466263482670837868944405322747436212210543796409663745370785298299388722260003656271326781976995758380565054418443438332804218038360927197457100084200955002076156299121844062359085639330240263944080236967000186058779223802653218785037302269017878476912188784995950663416398474512670592096665552805101169895367900060546173181240821931931155673377993110438341174855935048394904016018397054499850747752456681025970320842744661085786491735960171689066588991226729697196236696643770952944397993980157580218012486375838008466213403281047305491933195962700824239333726053260830979828627647762586332372173639979542477265977669049365622536036896824798926891883445966203652691993425961947759664665734216008393269351703648752902815903888210871669588287975172874788684633254309480660926225929582473929119817903165205773892804715640015646223022017277066357771074713832526576063185808215967307324076890474066933696881144101245837987618910974569587600090870988056036225317638988812039785588090462060946415041255669926174346670947853089575046253703633466008689095725177528520610135627142855702613479865639376892081191095849049153047588568565024883721523117647531253740382760246070404474868547562361210199294325209939030182732580304567539432149550774137894709378592637335625389816752031064264642466203028641578339296785098655495075453974290086740059154655788141066445796949951838553476395514602298438818828589592796054158088718537561337149696050271557953225666960401554686491203231893555089048150575879134685161721468456102969053880329726929844454674387045606569208161490717102156139404010266908309993655583378402785652056699388019020449673504243576997883076627846096391190922291612981985072379758487058608752743430238709379848787183382742434515370569569636351210914793133445161173677346601806728965576288519339400984884330016689879956618148805674891422353452218839781399677475606319817036648825989443776576589852629230951934577393196171164516207188789579784805336949226356632967592308133963146767885494553597268080935888954689812733487815249377568253449376082020861697850582409299921731796108165570686141879634326286480442773005350145181887040173499256971962393994719535796252621450746677114762552531180556949652305992933797904846621249118627347092890661662234174511896893704430656707707966688216830445457650976885613110726351893466857716144326315856962860116656360623622220013617961333946894261452160914227350279716012907334303304854630488935584938324121968926084450856031653706169351076154598426568420954923785489542845524535153932566943611007400269985487332805814637442337225614913830653366559395150790413185182294691589717002561772029827375132915748067660134106873386536984119905823570783998760307391245012622423366284031535764834506847036435775319613836541078819580037883854482424852885499368583641993774707060771696537522077520665978602985330547907432053229606719004782777066208936609215660275203847084220939609872873041800762776262448129232739182029246967929232653837180068761142206772476307963830151599267040220040944629254875293209149589637800512030290062426785227888962934039374247937550831153422123050476638927029543846829323812366564375423254180490910531591309690531910212282162915562349837905988097327189015449240904156577483877321263226981909443522965433814897080950471848834567093957174183595698129593517357529857103312317342799545597474292725998039614031419543363937281618260876638784247479350124851209698885391503891509741993387248925459011882768865330166176955715413919400815723000295783886698371391502718226662007258733109470134754716492789058050813451839682121313723959248428318541512219559446718860081203351308221939768614713565177519153881482149533086791533497164727741326331073869099972487526723616629684408363723373098948872733164965138749587749236855636197693222936077739896006397544468198024128173055020628780573852565285377899005738339243982845348884879780511250328753593238592652951296204213066580934590727123223729749891808748539436582973444816662967652406874072065523009632141551024191299028826394359466100722789921822961381533406365974564338278315725873313776705304530451310895541830017942962247378066572041808317312399822833570235149238879991986206802936973119972788325499469080434593133892776917852734732605416621705376801821756081321027554490280408922197523300152276260889454624520979026003927079999604338548636792644764027640805956226424541991408059186921415699786600975156201982393613965215358364661659310141859291557785019215766396918803166987432984218286020283050573613238045585467385498957113998918473906407692636197791738240208336828778148228387664657234689089519394067401283958030142863152231886559877133082491695569531523555554455793183021679627595415103650009163068231169715728114315141225607010145797025105671863605739981922397848561250335925791404740210765853227942624772230106724973194052891410793735386784162765751610478581892201138933895844636566007330977324528676219240007028046441002954599802436948871607965236444327219768253812742641008766805251124577724521335226628827135807409345447646377280416111700219121162664668887757494734780608964774288368110079277062324296686883938366719009959497704606478466528359349321008101393950661864271311364571736711416138548125395099475156635356821212512782170493172700307586300536199433257503210257144300236435033483012217427587653170575678883689288590534288512296130206302550595598941137578690432078825670052376227669633131161962781276652220334185857711998096349122771178180130423246126586747508508045234461304248796119193426426950704535635444233911935932705393294071068151229226750171435011940882280670430283053727683581414510325603647693085940388152664974264954062711459282041683750127306780237009035036886465376042111328543774193064345731554940127785142511031980896638970950741752407039013714233604943894552884250364787167633346641016256121642053517358170028807308318013974006862736888602769521155013848727806330656646013045970713364996149878120580766390033953978044117913870047983265418258242557893089799984503357105451976914645003117072991913478987942774576706081428041833039950000373655219266953973398203372603370615181298355325147073629425112085286203823093272713918359508822356735315602347767346000651208124660710668754983388264358364627658069863354097680143019503168691743188523457993753499729902146393267844938577566735516903895739060949711599722629154144406824967143108698134000827685966304912249167026741002507455350166618582960007991899120202752882641309378177743534735401222693500685399659286617666050163321391572796087619980521316324473192955093341378841122235824155745997457726862090955106499733629898726406307002798821919397362422361352853135517973765167048322300702955236801633483190914329793504016485691388857690323004838678849010350753460189282164636488525334633002052734496385297424633317124373073406128477308437796562133225269426749843240523408344552058038359423388356541767524918977554982988743028139980690723039137619067808117654592592460360383099954754673570673600920376739545065672596863332239667733182460589024441561218576996118403365897474998558167493078667120014954259800927208280798799189794167593373070470719504711821809385999670115928461402780412370704321073139262261823789688969520419968240032439532098194898578234588677545445197574348443968606837418222710789254054778717310211397323298625434084848782726354706563490654904407646724435350973861680671562534229513767991893718619529696302811298040776584715215639757007437164465170196669648679915733787826156986290365028448265077297383146285275293278744102868955667721673471457951111701327567506250530980490675331554353970938677773246456075123158621369634947662182193251330081370792660221666846880347476261616679064812031814917378031458256708701578004757191392814440030861857274201476537433740324507791516386979091307712832517517251463346802779274127844871922481642697570481086427724592346613135636513364897087236689306719585681720663144077166505501063351237598495741449037177814226223217672137251494321163337097537606450968480857458144173016625682186518296989312466719777531868363344127035445058678994708061620320570356926563562849967970333453611987062940735105554462254834269020635902633522623992882186515043599146057275694852641108206656238758039467652894463937936170724223658456783151837747861462890631997998117581814152177860474268684560691460533730627053246984282386071939939295134924096040821889753915592131970270190237361305859287582074611259828323382913427277837072300399398186191220995465500427278240019445203872728926783046015004075178167805011292697444202741856823014634473366825961194867294769040162261454517996892667711731954634730060550535285246422862804748137574834679280270336439333554401995762300219616073520666648966040506352836378653440638902733166695920312754862678694196735720174253012894416505269817845921453769989031370716212070358588209741836378423896263564995497670874900716676722146698211893685375152931897127081772071294802084164637621376880821933853009231400064995638429410131062656842505125641360850305333068737356928369310050194786691226180313965919650770868347749616206688581597632871252713047730167231779167194008171156598080723353369419787112041941971994691609586521318071949592446239465739015904472580649559879503669307055511732689565892395844166136087545542345262022683947665840075247415449670275179556332611146045056455396407492472854386833367936838015039123628137494300642564810693732319039712321364564225878244889730344379212208680853409213033789704283008236012510020572600349922964973540014637715001699600967145667983044479462425076911667286845766875259320916233175777814019316569877988418643938952290073526513995543843770785671648149151525627014847064745609175656872668598510289854003380913480214687859349789485597210140615791513701888634612890973868044410486372894371374026746003858050987014840917619185478237038076986012638819534503777794430282166076486064679745848817770798262708383197366804179818193449297265775403903486159865314482693372637770217516895999509261001208892520490604757803706597980296796689500298361186289581759699157131082375517055720873673092726984633782866347014523489590614925825637703555188387606551952830391326384729939376890488666122454995863615656777578633388732016247758127963867628229435447784992312636306528547255232634441960661534767813275889741038457519780277607410933771099007062825669603025242552807063984142705331386059774616759443480518168342700983978623105268876694064466819282378907232848830370915358408588149993151672928663981097336222001845646079146299995532601535544344565781526072735747139061080284385717784006770291872760337429079446671387755546994151200143232132388470509215463482988531737249270650938753698990157668343418882535234121428901805051275387447105158351522343634124358576941382138402900828306009902317048550324988155776705500322868759130142014216593722704111958940598186451908500737436857799732480858758385808829081824308240443463818688978871099837019822488162378838642958088522163703143771561580844789063647469223493862920539444455932661870344854925498850103157596801466396854889979321328881868821654205911215318516012667911226930355916361070934830441804152300767128641288542250046327836199588542479838971344750289800112675545495349697397159964680071556210032177767239540633979873585821560631769668044489852138770120005440827647341757887085051771546595343421501596048938730905036808992586446661671634592556069172651346296757990709832462202134664693039719408252562238274874131861637040846198567629408936481356803079564010372854752540320294981637372811965685442554087361608351264814667008711812850528008449605647663559358614922834073143270259839482529788511063525418083896411371228116302892021173688503063298194703195089520487264636405244431552233867082926672954019830965786509746621043559873000709851607545371729660562111973057703293226886876762750964647942043199567980849510086335196653978971765279027690280431754755235666405452798783975676969911755942000645261982226977369898333989087701865158961467177308235115961401327845885774829075299945107868453870966043819872321264529660438315192391818524114648810433282271691095225025959949552457895510763613198297280274220139391046593127744184439659958137077040883861116409851657728084633034169750477457932052130691834591918020150540172054029038584380281149509471563888812686992632134423845081823213578462188085054677030221905614720565583652879418119918405645640231669412411053868446748585882644947576655581790859733754761233449940936063516138440402401237569807280230096541283063804039385683552278329738190526907120786079291951663847219412980562253516493460653370658822046946226868520673708919090103050690862329355657808510111372896330010887612526920344413256763127920498476265232607205862939756368428248395782433884565408046454384504255272763669239459523086771320743999762643048436707135733628092518078706144649462291156834171525188238305267526675902509809685329801380325721940143178071271823165773772853364943697029461134303515104251410670031766100824547507071309022603292702671357253278220328167665847285035610691609949518780373551346884390000992762907419499420816397648320506762681179976856316934959647330814377761254161643142094432152315225954344866883054464709643925044025151413830848178383343096498991249158201731572274304135981933599707846891633368259981914487890567032236480841430731732016462486094016937331988026902107767359099777407416201421335854436672505074044472212960620234070244711077016636705878142105149501427628149822748288881079376184920641482915593183581788564382168372248429680569482429876898279188547015810441167894682613373467115405167143720462275452600665801714915933464847523731079755333226212791063401515142259761096494579529674477626411134990502078436917174316191523714087404459197719918046599670688225172397499834645241334821903541019676500956588370175595421442833425462468758429105711133061617779027172528028445080352413857491001088248839928294613790292492610970371321223378281981858616613575515646249399572935781586374068256877514995307915444463383056265520528796455945493647909912020912093646461000742930188212374565306783130650650200221076663841329593178899113149197442311938059257768366437915028084355301362845628797381061815023186774830205058274622513264095521009450817259235540773864635544871684948505778171673428219343269293597790602375335311935176698556227277591879359940753457496565952911573718703314957787730792651803948845534564202644988550625858382431685620354208445024994450283368886203604061913291850898463261603535840925171723437465607302472665680567988678362375270732117003009805241173211564302336556709946062481947844774245572383931001451611533458866817286446517102838655520949713981292617501303833699731551526451630934595353830664569563593421781081513218745213403099308868223029663391833909858495872372237711396822392425233183871162249634882057054837307873359869389868809555060691730353899422686482262124928072175277730116343065950071037451649896787429632370164088681597369411218806754890238171387336075118872736007904677531724163124272796212730804275973106885757892236307680379506125752801333548856777851940835620355848933362903821016017142194777599722407958183072863129572699636878499854147337637502845917996642663580952833869645652160207265986522624827314186736622826219785061335171476332193686248893871159442953308293945535867843797299030108543446116412069232720192292263849089953812986196311494238832429844529486539379299990815530093127115071134076512582016322512753855505192906934067955167040387384943646488068334264849733684495188516474186208000563554348638987472155966669386806135724769416767364802816862841317550894144335216898998675341073337007259610495548666278194955782804920696582476576827597980189577678874199047170334388783691104181454125791882730871965169228992710133310902502689080205086258885010049069683928235245960505699282194689735469158820171542671231778675980854807143483109923615475344451685945779145539575556470540419507410246143071195260641197135804707945444855255054028585773823673017331748388871593457796806643328237341917361694142447956052429811388730014821099923062592245022240858730602109175582350772464860963955536964094209523395650083477213830537108630647338003154077309954472550068109430343157267480870284822662544255117590331557592505385535236238593227907152721692754649577180751669787974842687427177386225152672077008512157557763929516918622967709844917900588965454116267287374977810468953668783404316212095677227980312019836517706711973369224642943163016043431273779988667315936272527109047644989263824823757850575280900651845981927497637637044793606884142022071326831610770838390289657328339498345543583326220001613881105639063280609722531418327283578163513972733867863904648006079977897099328915152252126318032009242164756727226504233120298670774975285142220389041847283356453471160464468957791721143421144463991651957907162271652828865452932641739936853322019733664961003728411788229103219339766910543890744926896050982485233525464651114446146281691623103781559007482319096887645718039272028660326138487978653613426357111460129499318713937872961140772516335962045228693463015742899202560046978767234574970357429519881395151856818288685122909750898574232723020680076491620765021723154334741368657086908066184955138737928783391243697127088939812735569550000185338762618952177996546557681039705479429523820952171450765107899939340435465261764034888994202716344969681933135230406431717042925739933541560256493328009126497950508714466007544829784652636931840054614014016437197657148665565975185919741804116287752973411054456355266026782220444323295236503606817444033631782253142238008194417972549928583330922293144045037554757696136412041120195461433959073629523612424065349241404117875862966050328276976117912887215027803504396991974733143599785437136183158932002240973400477926235808165137689325072279071435002321275874560252852297073029785063225325660903806181255526463366814325048814052918330253780906574311233937020029241779368261617311976425145611365982573547943517673591564665094218110278327858668584552469156373197281431674129896457399530768820665231286872984666764625989546862200551975846094708877419187313635489507046359114053422697480270693689535902080484897118984929716882679615387663746523515240911261357956871062437766879486635057219217636498748492447937728730091332496629052751122108639386417613858723200128474752660399201015319689193715692326520390577743462681590592849235549421706144195368568872249447873837329028606573757824600887969595284765540919946665372471499377943793471650793441075818481296300981315963539641483457709704017585272977372354639768488972959283762666908233517459109207433749034366057391736329827982251169033013541455768765355317451674539957073455023575492278681891937534640961393662564504199673704735093128692005186331669277708234152550999160448108556844438217805100601778016655949872448761203232946612853711065079795098830946067169138734947206477692689997323946597180990940084353015016836615301224598944511589377999159885739847288948738282987680342212949338503176980062582256322897813668837785015008417859462765960991836611910740729403892042335964780639745299955306877021749281562770749711650349800075343286601966448281858805613014759904258697183768518669865138686700024584722895134983805386226880255048007853932978710871402225444847790589836045850344961346086572633488026194288111790315761068098021589788579249350181904540896489459741181700287884284322307999971874536115799811319920648994684498766090370600691259450026177569233760020686226593936471350970090334622913786993614876187034430604863299679508506626083408907746726626239165150649484346340593552351537824475253454176788179922718399287361016316656286459642029496652646345798940122069694391976104659574488046994332881044448936691129527241766813101152453942418470513996299653577743130076956058658190079630741227799172012521811770180587606801214136904495025529009010103937213148102049467463422821313549020049166395632991714433060316060720154753413609820263461744620472622023453561837574337056637108953510514625903428130004377757710138888858298439286553590427961590580417971836931779924422399324576600469912315097791916621676263857172631632290576175749904239706282941557789596661635703829599429791071186817509108328507622066172611734378355936496000809877501993927880151313502081146626636580751837352742042857824184260328829641859557710892624051060387661059869868628189832910935347165208785606383230311321016917110166133571526385443052655951008730470423981044547882371705136139730848697150445345273475761069311456449555605467989990895687941699576898956854425846349169410531072552326092831373821414707710866820798715584103781984400066414296251032487905067145765203563314574852263011521443705788742038058458890436072968900813891916715307597409235135833887295136287278684410957110255235321909467543994221994236004906273914232608324572193485037516659459447395314550504393629837413156818265825727629777118202788136655319044061371393806354170283567250436287961934303826453189784692998593688131205151306030434189637961262965258022128776327496509438906499450299749129664007183601079596774791052718761852604055182705108090638082922409702909980603108311478283001229097312823983381102499542352794197294237126582291299033992762731312619565833455173866983584140880494233848208096644263154874018149803585558610107346030529842095939575644950739314782605273099918062765395976036435471682282017528696003882143597431892992800031485212395851642644253156008363057019448284833053872919650420667541429470356895109736750957914568841370568748148730897821880833450745800246204858137749026078258728355312332939198481318271178893892645479079696328821838920003550604164039050513732466088093573074365869438258887950325753361256993066314179165998119210497347551321223909622492793115240178118511712304372449823676101488007675049946286315961323794723490804501648659307426926904523793208888008997924094409197933046137830885781304928737777739943760446036975106429674435342074964409747837377296203023948876599360778186576815652926479025013540034289535155977702622857088819964131516668288852108270884064929263429251129168389051831038583305182169493346392234048031744318042843874147637139950185876903227871786553665323650408865874805105873140040928492860303071791843426382388875374030448467680965698720547407021426037906689605181457486938016814546286110127691453775287953233231091991664942271991273694490318739331025479053990665984095588752671770362875223974214322178178394927302735722808854666862663446898820525409188174272966789742053814650820181127613952316145865049765025311553863215494182848995746906467512247625037840575406821905570661725217500835033169483492821571233460201342730459927925453806614670759602147385442774757301734396532317123157504299450794776643545151396857265981667688120944705200536919109479073158323252245345547003152621932826126773054574114961195197160307646277878494489203248717523957601103540990077570505347203856899166325473840052012005685581572895013098464361976301487602041066421763352288159952818714654371885165915037868286478066972703456240729614360711911507126031292549667148171343946330621915186303581931515499012438353674836722486889947229741022258398419424106110284312011113454434436924312593711232332974554579498906861528995513972964020041926270019682797253360314068667688504854064769054114981144717729048340755654715690248882008535716220479855925305075341272556150195248386284003088893352618199011485667603121289564733091738125037551465688424465489068810625947580660093679512222152047976186215172064534741889620288120889487907306865540483094970681847748017462976738093164334934930517464373683757124459624625626415596491752180148268492579954132437011542087117635767720821970915620210006511045917935342081482614044115764829121123249247947232888099043923014312460177751925464930603047272396707427170069608446455337037134058025762100175929175672326793750327522667570656230669428948252526325325852809332112938093340550087178941710622481198723658829549457579123356761338603682179264567948476435182479409897478533284607590606283339461212506103958151246884800207792775838211797585735165280237263108116877945983900956182479501125388035083742878733575321486420067877176158236739309443392098887165333909103714674227646513573620473309538776309973532316580688793737353233303686380785997918962635674213339211345017064965150599125563079303333397643709587406812904406931694441844423370861485529957626725650070782771905342970289317691253727477418193840707755166189040606647015176207227681758406611231778622575230504660490011508486772411788136527160571087443530754224628030718743654292430125228568414096853282562053465145139777189646413157665190130485299346332645258133084862435749882688039803034162596585839971011087353300689518143678088724310586027961127309787542769389549341675048253146436918712371888127512904947141985499107328589283725892235375778617493723798740583277283820764016801821274665750103995997527356274427848644933963386038560520944734583448881948414200939246169795903447272027181731136173952079593172427957601247660054228514837530472898469902989885313892062760677174506272759048124086393527287723106423700711655641065929375874760106827851481549823634046672850325599509777676754044650678702565245489814200375092527042565094562999999396838454278498530120845425341841660127388217723557252663313734340105762406663865412122749582822982880679757629364358508909787701052910915215687442408341554149118964295563351914988776547763652679021965849477138569809332482316486973612084777224296019994779923525211252822305786192184311360719820811348686830883309472456224445033769688793350632269105881454259143672742983859241911795338204150991831100986165722370053125158651297945433341077269638107766518040204435878639898399823169814740914842411026217364677031426575195800531485384625633607102734763000394208097341439790528920087522517506038718968374841745785520909304027482298900634148204714553043860801393223044583353161904589687332633166790648876016974544197263733688549386460404364476710571754688876179634757139906943773383700019056966733971230790891165937658734712345524302445935816380348253111092928026336817881665494027935298369502365112226205647855002155538087558076681433626446997990560582853554881081949554129329307856844657127214997324414336400870271659741981254915775445787505032374085760068472350923314976289003967998389882689917670369077509065246801218849600695524481253992384349394720258529406297046553352146203879575628440821683282295678046214396415223951425002137814386316811167781023340436845015930232603282887252100473174232012999083170108414974818338387406033066566324829698311680227352168007995101815686812276975262579469089920921495948163435285126298815250669050015536722050601728559225533730265515105925553608756378253022133300830569757845165108505433570516976681284570677483019090041118115306984633558993583890930943325963782667899461913141983695300388458926929566476515137945704330440063920413588358090792969612276885724203116477033619687340954753298782205412585178290725843699804100978737614639008891942933361412811062187768073805208406392098095168436967098392655984052036988164501241409787843007312585414371244389526483069304550888940276947465829001515840723583392513202868716755733136838118732768328687513016460262759670189117694416308127534076239962324456290842918162338343942452511272817446470911317464683308171584634869813029091422293951892336290138562775205108587125938922680233659037323472722043141863202843315332972820057801722729044749903090929614182927645347724817658956453212768069242929775142378958898395595542924689672770242345394981023379074154710650106763782858885739117921738351961739273733683786932495777314073366586917200840885191388818972221848048207561558359195529860564569831168824569812097014032293138657317652831481872720990643799217542488468751864007978047274250598895985725747696575281524423826702267052162247723119044754631283545576081386054597912677640993135138516167039963852448108815192698843318840321084612032204887098044758247128319976746336603428436313790737642405318867103878957407433151035663703363326594127154358800224514908917548510204430122347210630838612561045048913610438195075288262128610225754975831639221281904415783912459801242185408166013028935424204231877323151617710742655630035264855703057651012498377353377178245772895078725025942314640164834810524317766363660517764436590958174374743677673933982230283045271258212709801402198265780014185622974658958661033786835865987228996902855977720724322117675663251737610179953326278827434835348398935748232208591269317533945827135703934036072425706026721972967875901626660679788721177650922242663331904922990867801421342294660165608935844543607686681745749116734502317650815499175306635916989873266134590587573541108878663995515130981417353127684441197372784049877618698744786832997803420824341579327273418478145797952347247695861520744609236545295711189347706213335864742013718913854978972361498226317472852909445095350684109885268956709933608265041010116194389587527302799439869328035196111495849200915243613010858250363411544870381075754518461967131597599121705302902334515094419129276695119805518664431815749643984366742746312947289923934153980776607872224705524346671376735454203969188027848258686295457727094978359831069276916594559653236771910468608567147217749628086266513201850831043049086482305207098193866499719417337736716806934133831000333423266640768466830223505879335031216462634068637507688519805625700956922987022649514700570538189754781358145946047358738157524958109724869775630181298510897064849562335344086089321817898787473869186045502497893776396116986256195550917291233154951801199006584728220081358121243867853194108855706387245996202264543132356040383108665439332420948164128094205275038736162182214665779076096255116960929315479782944088811185835688227687296956963638071827999358367608730363482644821723473359768500582299224097129765554225754608569952820072219811033871738868315841388015000971361010143456026976685803843111772050826122793149605092341292967047059577030394427907809342164552443846050757234338923570127053504512194914948803710854960969392488218299319593221845415205100608296645996188290927239954213838117092891379421180074153023330081277152346955095217180428552317320865364821037582818826378623152524519601645036533416228000232906742115120421057956465001010434246419321216730968497519881818559476854949850402376144809087791298164149130590514110821044697050619069180333271128628223672852198035636684604683131069816724928742879186495055329565835800222755165902464743874657469340343141138906598333066198986514306469259115193528035901143262075793011282296206319625008571186671106291501088897292753249917736078922828176714244643755162933368623592142988541910473861218018177185041862435747205898908150977774497125188252407961920956922812734337164957266365613302279642971439674804513417144456285384129843424733118811003232243505428781314259357375649849416010465153218844772964408681810405721815484327538906420698205119834984332069389243044806143381190147845000977581325428043846943925169893484231467714196082951808034839707941377522429045547094529763862747953689792163532277083216111896565714462134673686683082482346285769885259183792282753655864241097902289678386192190936948367528846936816355857475934375407529566978720848969480801451629552748155862143803726461123520649416061687914944616454147562494156637988220462212495990961479496772608993363169350371873440462663834520531775183906768404108753700574588361621042211399061934331542973969093406271286756596348497074430478943393868287914801375021526704731324859788027866602429640993557849549594983426303446709375896988750960798970975242333554456782905677691105764330830066225851065370289998894783252450695585731536465635678194401567037397894576658783356271287344765455055287129593804700934964709817233665942638042451065005716558690001400213393681184794868157635100531969312625348702657137748266770947435402416456614505472251905346024479178099628866541446251190902653761169996666052281023466183271179456019570617308664902898440835768591613684168656171439605346202027162609492626820241304529054941719999563334551081749423660043286154003705931505997034764447642116765781485768728685625235311335161395198769320404265437181886229572299111263260832822914368648839236760090083672855916532601298289947148043487543926892825895858191480410799280407342415275525691923279318317452561917562050665808507685943169808781387821236815060043306053787567441531210207257741118392267554130723461360578944267729708620079286812202423397644315567233931243179565146798396413456231780355829114831982918339693103955761744934173106309145313345524418564402951520390555813210735077217430726995502856547562132320507461227077772880823830358533169235768866446656448801650274942061348258657597392233003867850940725639496310976467236233478578699999357263925106198025585433969432571212688114883619106879184243397692094571582809764620565432390123927425708463498524161216711233815594454375606135835339376892897308864901932765091328410871314970338685244557808564061102783436040903433896489341273579997013764593542123143308978556073443034145516844992048026014007518683393541241059749817252313294903276439695454859868898283441693049103767529171210303875233449799168539582438023627889841587479762139216568820817774701707530819054939215331064477768541423906624176145783804224933313757336269039964127838670494473252112447897714351572502965695225744055188028067431385293742800424373430647555805790299530836151047329458360555863688338826095916674981015464778431539224905581935825439331564938784823832742380456457651278133206667332757296288736402315263541223256093074834417139498639324613653802117242488051727662732691844298333637577395820960783256401987961736288503479160057764449575449304904428745695595593711705828605659962404032357963166734095533569262704310495854873131827295340929205443944394158804555910614270809204007450832526373578247970689407166041075608600591647672475009571551812729761227515769353253678276814750340271876075731105120497253598638110006332278111475834184377470159039131969229529923540618431179022212461341121093902028496976938596458009141391009337841854257427683612494683717071751845603001130366605115776652051865914849985251026248228751527751426750436513742713098742200427514771431486323084619660103870107676652369521601338051909244098383939602394364512848233567854600688521975875934070482596989154498593191609355111589540454446128836930961778202468275093769975956874224178438035819827150599024667398251388028253173370364361782502689704365295077828563142513859196894818880100346220809051972632736011663337232008579473774549700047426002345183152147682227029656684263513080534981820338788015713946477656200139032989470039299094302765064209133322816227782723649381472609845422527387575096219258750850096362618196501211212122512992473286016646143620420482429659617618210814897830825105645230907579840818087184227762389549089882600708323183367055462617471201882613523456767614934224920831993804946512366551861606362564085501682993646107292903791486498311878213661100333210639080879939519757725066752727948898487249055497377950026257062713236015052080061837096963083788226309850491958711451908464875249703271875364528688470945962208522921043914648799180510244018600981887287772908966561954592383394150635277481033328257684333610205098484853303609215915521800386458442994937605188330931822410773596138124259602781642495265527349987197910813855590773333147963780054054531242028701494060782955884441984068635903641967054305754957872270151531535386192425573180972414135679447675364597013015866473423710642677873765322487556464726337436283437313910456691119829602664745684848212148540560181987385477641451964282685992004779277763472687478198155293726777328856566623757163277763976773110894850220240155699363524411712830256331341276816473788663931215610642072731135729856772768224033341151742395808150135655889005458441881142500124022800058572148730006815634665035465180301343451933854677319682259141832830022695506631918117735198661762488552863732502547134262954942233138989611485575259820955967588600108952419118900870512348001244884170886299524595649405569058080188479222533766287463033647908695698292735006734073879688235838269371078127576088274661870274109736046558905935209994516261349409329582775436365336763105170351762541081138263200681642941941647305224263048506012895155615258247654993349719218463290948089080791884276595832102506891329880013833272761756335071876126952054449056193346260270989886288919331372355962432715857585941930394480757214482997982561451733815322055146827546878421132488275373505113513646773458829743469788390460808093371701710008932158095840235772262806402107914078428582918868774589479748345099187531736810131871716740783936136166899373916828538328170095247079432331274567120421098480034255824671292388649419377721343780462836340845730495858884801119974668318857232971417227880574162759292569151351735094914281388851457241337771688731045238157955718510195354492656036174290520553745269052765286369295838726516809829966141220930423898552516360823467248878221770761085849800906338895753584095389657677246022650067250908960660606051456851187942609671418759112659659104628459729886539174294133036182883613282376286471981330843779320931810954491103536827369321285771321008752479978968590520634199756940320997210756402081577354061385275557176902148332628387964406459297776437195821080709438150528388895872529931066760483621448069664963709034389645148360338096919029180142886904706424636104360875202219329055753892746242409624183685302380151523636651636987175013848628255550440147448132690523959822732236061287419048224972810516469630263681712369519515665336135692335330780133591070357906635294859732068592491541717001760438978348999164105307596551444165581974201418751574698710307442939602826266655314535082838013644986617891404077506492492867670570512989353355217773635545229879742440611661603855515330877995922148468261850815854925940793382287594930409127339635691824457927906530138560486213976067055105587695722345210758775464880618161854147033246485453305218778637585720744156447427490827333169184174765565787796326371665886707791242437204150092248703812272745432952523606045121222761195801314199309459643895713842587101197949458799242641919190549677181385917639080302189347609779860423890815754423151468466406825120081297337701827034097521841083461569493019960829024009335843910684497638748660051671636228703775538345442165686685329701510602837205547406827828408431961806603835079439879731241189985263543457284241646678459795467596085332781881052184887409215086846381233843611559252328266338093915740262662924651650689237333217888244989801478511728384484921534621865655310640417948472754093076176011271312671085853508209560795561562364233333080899705621551651496899617691634673896094483831367125640213662821399879045985118049219883171789041724376859682777520690495023669874227607729644851858916952493344066632335666125452238789267360271491448283124819589650806450566653941225033831712545460854502599401625202083585631118927224684095881007584465482249597645560408751299469228419177527490101029577383447404335860337976994273256025923503115621110638206253668854472800849585471926272091504477851823641555726232310384312780114420152258236307675432968776432268444427761136688241570230388966516372822053406437132403841670008525943452641663131859915777703175440936862867085416331499951793111225384085186443357355329457045876736893166184753622942582500586773041767465636426282395839274859734604536304687461943808279427089600164657075884314027613865299401539993302016036525817517008066828225675447138352622528562407277481417457080831407900014528661523450777932383913648511010339511550428316434418561799579599819217414810451000154910123899207441075537984437661122596842557563176162731679598784062446589798983371457449592220208689134011146439910371275162711233900382824301082477478970953568813064162097834724202212645169543530376747204953877151583086721537414722039296211508132362275268572335078162751935725507950023913651849593486860493988383322478904962734487997574509226538224181606519373543464531113478129306569373338026698268321047643465078774201159905912887310486116737151898339236255095850175969104338214054318187167929086136011440055998162839530360462373497807732505846843321443254440196847617596905179971480293884476166843262100348400854956261482137382408139249162482919286433560902540221441353102601964311615310783117829383683687473642050847376753979351216624888946700585111172950892041664509481347710514991380610348740724121503592697304089488380436243682686035280602073212489077827514750016148398147875263715712392407009978845130146215569496489858895129957237733224009268342719790507334948127776259743306638863296712789324242725970347236590400429686352034057483160790569586018015231211544166176708047052178370317667298242714614488802873752601800320244642692647090051837495966695558623219982025969000411708771172591625727705262113119355991319866984068408596212899508693711161800663354631189319473847744817529539897252042892762205863324922910280594627522975265593454956696369736900921141009211610527564805413501131692770841705803597420098418756790427072864582331504710131531646547112711610612597114196034973388897355635328186096798352044481539132053076416013647487841827799724074526504798378477196563549686716590310905812972139401241122173048149585292440644537990652747339969389916008509576973739611585829698764168053764602433280253865186398232248689231855856540849195604196107160492654178806529995933691497159743793007736179949538228849767702720670858407824579592132314347075414492576320857922590683255169051480136038659607079386186924059268566135999281816049727682846758828060137739068413756597543894182116374006159172053000350411356454591013118548006045390600945743931869335606914959955814287467412242491900451299650933622779712596982594492303284540812966833051709913910402396760943474907982229859569251109637682844684231005861077267826759129700715072289153890439917794298785378625119323114646015507778484930542126203999922315094416633866465306444539464376669591864206765249093582475389736536508725467205708753309755755459063569630829254234949760579755574419158111320919645747421656471554290573810975766206454274371785871865019876030610199645930544813047199229718217649265078453201178823694405561992133338768978988881740247810208531634026644657915609642327246706084749862647522466173470852759559482109183774964876554672704523744306109427245480552177026364773863569711179672417260577832974612039877506956963210635908859774333821186311638115867822066954544499721624310101089733997367449374679328070721911916055912496176184682044828372431860343022255057219695695663540920844031778589461052593740726789469520753205118708302714898476460780292367568634081082250105949720452865354372273866692205460523275413698372796218302400146668633894306641974609563106376860611525778979966886787869654470951885456824751440726682261233394506987656795654831231344592408290009956197862432131278228364983407463280549915718628872171010254435208256392352492090029998234372006672774720895314406050081200395327352511319149789349642511949060579052767877071460786602924730620338690603632800369798414003887023975683695796046792832591630965938758287312490586318162974679228495190305430266017834772896514241616586577112208645790743564914152380427628020636661234657894773341467910439487088352492424943439141623767380605333854470918269783789012488048749888247494703812575285328598747510336017727204310978589256765037537831387255998912138566672794937510250604022424667873943156053534384789676382887738624725067631915877366859148372480260884413626617928856267262642531594070909844961876690248591718777547487146560086946580747774252494920697736529635066421567596246477850020961106013153355633330196334474299494874045281411934803856935985869965155156614522267248727884119838630379757722325394337918246610615788558937166606583476924047627054224369876392953766064514508700302795822089430169817055697994583319323629469995367359735503361362253441369784569808992959048618679218998304424221523913138175446494564920955601722924159145908467627665788867314203265425500984764827793971431415867592129742917031173842575153787876228777086291830489000846055827430331081651598247130880571747672856972289509332561804286202599321486699863628533232162204927591557988078760566210694815146769090388237031482636722055567087403067003379184516489788619302867951075877700918762136109182812315274734646212607565505831422464010845531558309268522035956643096463798482258872471721448764339450609365327920720457445782729259992715317049376236097014201616730263810496998069342685370464443566872531238343386116639660990765124387910095467370955880720033106525041961304702074043131720691969506851922046358979606599628360335558655404070195874027925318999541885201573458444316668896504141719646181511686844915368486574259093853039052699780667315389784083873014508918790438944765746303750933882045811547223635662752280425959970710514362206264141281366496631356403814941157423451570383840014258713823018786912012067911164182116023056507780946164993504269368336175914001365468109426377812124231414026924127696092421930004823155589750650024419802756234190123571716340637198691960225341543123591617223887097363703813319085408512996555988947125669817416515260642569540000138558454327441755710959974360124868281186694643384109950568147089488373408719298063398073768092399858254591668454641743424967566335002087172962644802360981530412623483929000814913719516000252038784877567113238421798581281405207657666085918949550234959577383836080775424931690323296839609122506846284001910618084493057884503367324184987423583595412976868930337848914547776994773498970001149355312072196868483237894220763376044202885160943075599309646840536417085552450668777157968571848060875316742864168965235836480723339289537599458756367172590643723445317667552106910909357553837574000462443966796030665738847147140153526789032719192638139023494018277154447112753900942038132055089410241279852063503057378881988518958680834050066542843641861801213636343999799618223188704452006472426959184876161134182126961748640653679354185914882017984377278021980704403202026718016925039096038061499836706579721260430649769407416247533408242160736948638905361757720124487663328414370067287135834070668347135116377976496334033870605809856540128208081702252224689137362384182697933345980375894821152262856726008211584960187486785755779401885761997585175878576498132608108929684271660145152414367153239839447125953462076504582588916690741637570671503833437451756125250049591259008069760430881069217697220186967233036550678728080336898768053615230134013332429489146997411697784702763632025971879211771074325215954077837991625809235268592513755285435056026543916956642541245730706243665941857900856060626429988394748304805398299485959614313775237373330953897763995754741308275648086360813104633185290177812859822006073900114110514193606566473177601267135814676233750094883314426128125113744336439511656323384670632540152214866985326229644220011235765330400284694103677217180807512161944043847772428458335673193870565168927520518111981319761649688616655836854869207678031387088376613280600900956128319151687127192375334442297956413808189221757014688316723373799110037715542111722328394156640817250838488211531165119638637462199758612167622205156526587247248782696825907100295514511424546757789021697867528565764592154713620384054161051355175206978672169086287838332841413221263678958970729338265970544444878825912333179243322223791978999653533659285398076483340166774154238091300649393659666162330519010365725821059442762367734093014869201549794398282513832934343698139226355386323671590733804723543672229591285049097411115365197171862121067760114773404810754496795674073432328370380231838759644887019590629401595688510212903101102040311923879741590431241152279577951707311842466575829132083749495609832189595343323011738855058617423146645539838517907152581457327117507419408890678595900320723195630644482803488976323633070341297488169230228689585911280149909812991318214871506626914966691666452611348189841827680230218422944239324258252292369324867698670276459979508244590353928459727650999958676430573734362093422358680882024301311947203322702281195964715826062952381606325999816252373860837173621392613937800838630668390990783718498751206078527723496445303451907205397081212670299761702492593095073657549541746506780877179016384950063766655568468736034448779632146003345866506299378669859684856409580293088807265177194040871968906645718992718133393748451869136983362318731842235879743046859013058696467621223219939335420618853569337754937608078278556827714380662363060197509078184292857419349721858311407875007921429172842313032931071691083761208262068023676194898783377863746186911791270060667901901672041498604337966431217108769386236625724197678318023760550547269398364293728709066456146703174221582409214840112699655994773862687128079567689981224397993381969444123628636086006748219239012574728953301790688879908738330940802993298947299332575804171907640978325571171371839073375154621119429800595880968607934694198913032149760262640795002928898002723947869651733609144998977648898143866943993386415596894062204019188794958434960347113272435672295552341660328252859180314373133548761091934015533144528756562317893164771455201720093623967981676026971101522603660588274375262991426877080870628145394365741264129826487303979381987371950981114976015037679138408689876372002536266550062874294198846042475019019915149807485215670329965728479888372722934581474741980917820460888282133275534394748243249532503988380101535684769397211272755969154858278924232769678739490091912980042981887275846811901495185494311305008181186496468503055797753592309257496307118046947545460791272477376463310118677362072380872329061225752315449467821009300995865484880530685819782146116362600352038847510557904902103829814712787354564227749289078067567770933948366058159715196131242333556057473143522334901849973289189296989079974036670429330689502414067368485240905833468120001428321520789424056989061529114920153219331308712124134017435387007029463995687402359371442730525543441991565953019544542324204279291399960202739751019699741939844399080041436536889313838297449196132396197417027525434392560651946011153325974584615138081976489923034575915275858786969848044483155118849341284769443479118685775526766346635676918599397910615485315727642650434470812816512727321153341728315652873861390788695462523836017587417507342263675272136405969442791608036767015007878246167669030238550530961597748200214864868592298076309339718965464681801899738602106475065125434236318567471717277766145686921182505948154144923706936558280579622025337152685883791874487267114966401621689980828865689883186249112266426853514114187462012326548677121549365832664641559047127986921178526542937531909317595822740292734951934936281517979630030132614455230332630481567316338876054984595121933897956641581468859432065497778184246846740477502587897701984209273506248849796377510019228531382402795436303331134088611475297444643861068548134010989953580996229805860974119976683929678070088001378273420887326030845721712127083975955641668376251144276021586743311475134319875158750683195573690441449536615481741185051073033280911638290110142755537414585605802062142617124606531712236287107825005833768526936541810582869129158889513209116464755618942486778517156765559504038772171644879406053192340799363681623508173217730249371024394727182810719281267881925969249833100436485773702364288726433534213159258739129733686225165342286349692276852562300529518992100786315114967385406443806384932510836112870367223931033581465958058234194032401565604174797162431318993330833851092027738630271455499008051928701543220380356646327676210789213821859018424248478564413691402348936135226481504067075477143892997387186712967584217362969030742596395321657096869908802396442047878011714113003783696557277096521014946386679383026204449589939245832946879676042200430268767533044923634223805106856242199892119708864828787763695529953043080218538795549877294260632440697861726510949003257663511419281225398006418053163080355758986172404820218897987010383801700390200371154347593644412951822963226951759643799036219221725215093126293368961201894307391881877008652502724775797316267132059610863251084796353875742912005395477994517005485141273155658004102884564280612603075208975798510814905446197017055763203211083338792003276039763538914276889662709545405963711144428110860421265730951610579955194176581738176045570543042599171383210991795985713347893451062530530364604122157816651444551561267659432226347607068351162562517484511636468246970891798666692510035820990167452255842698231149845682620598374743794682096032312819494903507280784515739525843124134487046946439539276031325708105243062492849112838738311919456685438191287245526727013073694222642331722541559693057578805540921912591097231642760294782589308171757923727410033297524289716913632055317771114689011792943361822335533931976093601910982710552938974709575782377019800482307320637431197957125288478166897421632607524471070167827585566107551044185734024348948717135475231539323804385343252916984172738823045087525172228644240152754842636319802585522258865796441020345890682626345623642195417517204713541968221137428107800519730681574745854434420842761170384244375530604528345837419722339814667996759416187476880273529836420167464760479025443271283056807014428060203645364194757852175986649040316501191596345591685463573687291322996131030837372591713090147867509945859897216934757748293361357655807111583874868573624375435041786675865129558615005073832494654510303063084564247352051112699544603826398598865799527129214537197896482287586467807063115103400968826783918050641837616288943602526711488922957314048406984869596018691980402076354139654021135083169181988741284935812522983695273609479950172298476524857574165892021119762800486162023984491148152163269828767521704706600921986019881279609567277025469985026762105427755451495904605831400865650430403396890468332292456852082874886637820574181086385088377238854169094190213848286763940297943518483323962059047453955665439958816641225415481572656872050053360615995131956284699106155257427174441148426857367297669972999769303834624580875267179437520287869513599979930079663869274848313941690240523058601517720024224482349754481550718341273157633497369517940818013493903422142050591305144390721800956796574509094916931691861965118957857815787660450690029772876335710829148895333872420811268791161424413109925757807631303684744960584843798715677754433735780989767437636705575542944020372749323156612755378107074591475301681047785683061428825724077691344353092767188859104158890100821827051124496718379913384184074480483186310865693701359848720599169840618946251377090587754453156731286600976529010780453202060355110090818963204170942533336046011306074823106245932245171680782558222364905251813697134720743042284513671656013748732943044265216975401021853156776749486220865071001995987900399223914362110255010047497543990556192307551267795049379129745879491244312265873709309829043863428775177537615580446358601150767811691090472568978582328319548021740517926951872266479435985757088812361819816305183151623296277584240195453696129093908990382108774050725570520344130061343305975396015355934840502306461006981516829886064923271841829984398577467709867352627568159183232534390937630870869626952333416623960010430243191022081158779113324625656394573675930971008160638686781711901881781926522964423814110237756912470319929307157471941385174564237172613310167396876418261330863395727565062567829131800226230062244683926313841294231040357343763339049508518985299695774668132884137331966771871534195492668872310636564397385106964795707174730257467675948930129674625687761780885882911783674886119494930427506725978054267478781581199074332789428911950367570708445871072113795775343411565737983987273577148453732962403314882421877771673809818925462399098529709451987395271625067984396814689926116916836022991051866992158228367693650184654935288365858374544254246890335579158779452180726061694685096234768009031422672964332252673129287155391593545189732641286680501552423391715186612362048712274196875971601353782287769700986593838656350699269126993299141316909395243342780669811769573426334946808874414361738677076091864839427866198645676157615015962482260117360225183770779196644183484971688761260880911716823594217850747765841302637533380637189825752681370484189913475935954471948085468556311129158454669417095522000790540485791804089293746263742407876400925043107742808411657161974457578410351749881658692509817691862044418425785540358589472190374710353816658894006414740796280193660333356730115937021345642321455359194425843862345186938189576885017638426801058937826098009399138464124775298976160698611225204612361183141196414377619454878704751989370176747488044802286270924761289342590604213520276507132267997229656481760462035646320599492994748670992565826975114918147031540343042338270778008870245053034097838244077909673479778482949337561653886365088938053085874280651661721776844558611371914208978295186882676599295635629491221613685046506003026584093563706557931278600187371467098483243153038881247272824262903640818670926739969386080334112344004509534317978428962161306228068999903343361355754644167096212716332369718943952040857303735291864641001116719349655609485056461206394299361977103527419812588130512539709901939917759374771330769175632378056542934233680683808837858605994382459449994462465770937094307066639919788011383769493533600728058832341308335455637361426997155889816417034557271488944318425692797523823430484190694933923465768464795995873830097329992695138318995450019771466566321753480498699008841711463817431562580449674107976697479212745054984986802695576090830350341582633323293172726977365992956968620872505468622077723373123572467350899993941050547487497664131301595013139708167824432540609375020559032357944861949567235143204797175989896816294957502738053406633696504713940091746229691048207307121706561954430136253913059238059468908222701513336017887182150923631978861944343527744579629512492538231169305534909085358890921890255286236074460286551657706796788875398717426201294105373020695827406812367724134808095613314191041910651464042413338150102692030548491185251407896073717825893513895075627852181316993668933427839328621940535298531745077823832592446396903829552191309247930014811528424377194914845729974171910209036834666618307624018289887930118219221820918833096382801444046846085768133989547459742463633838762978075535083726755110277559350377420756723400164079333628743917015439524637303861618140983461983279230198438101432829359050827697935941994453887111128786984446089036866821901109775087246413150279450371430060002830805333747094931693577382244755179633416318906819639329812994573518960768926697039300589756828622278494389568402817780098815367096260074059391132516474999320157977714418832130455758328072067074988717292775267679685014288784783251249921212216892982429611096961891368418960675603413865110848139283474913939894561345450992570576575489826396569734389986807055401441084044661287646417971692950301050232716563992605725454165961130753350946807400065787410802807841884989402459883283961096032620286675725994650898946174862059458744680190126041915333944157909260576377829122727980269672384754237340034706184251960681696429751990857646430529885364543533454204101035334259631542474682715995379824368091087168099760535771968306736411355762597047174451405798774665953002626173719540570071648929786974473858828487777556381639861417556019473191636776935786837496749777532821706082380636123151147394010405049099949154823743832244185348489512205736511604469087586296427731404814112520045518765461981288033502750285397388228352631978552839629297775577528877290589059877463140083495965783786374703148022152225512625265235722573280267274186836383605105654536708512425645389258385411116701848161843645490414472761799566891249756590903349952597996976092610037088390760477563686168985570675208628124456441230063570817615884221453734173711464879646425086768298798518298626478694375951170140642771666667087102363491940247541171891959560167552069324473176962709733422583637611933543583937836631025192188567268703102769458014112468159818391264567087154333795817805221987740409337585724853552652705411156622053823034091327117225863557311199367604191164870594238642798811959109535698456258179220105937979334953394781285910334928480596706740071203144552884108593380350997787212874522354533334882864370818996139696671318474042272357195016139828873781906875671006032057409508097637624701885742816827996011214230053784655886747039055979044161871449953905023780099050464880069860418123692988353768975527885681931394981545677309708136159981610349835658134894742621693461124566882069896882716955326251047403721199369506056882761953771615197489045158768977142245678485685415859347143132166926318134733883270812548680041055906312135887465895678771297267690418597191932079848268990400440020030334985780485017751957078246402474387892981531684267895971553198697942068493603573542509808113328907664035961304443492339476647657147800941826353530008939728487261680147315696437018424969122819143618729523182281341384153711300660052913220491605865280362170279154683609882521000362540116849269734709534953858818265378729178139596238221657666734495478337957467806933555171785301247641753336707731113602011503448698356691118456965235853591835032048226867969726148415194951387086515799286397901072625761429259132812481139985139496090522774919173296646838586901121666925107705634340554460857287083002718132546682860495675939665475953252039806915878960717325715284748490040016913672298904813873539517492848889103931203289059393462756189062478011215371575137884556844994666342344972123441261223074338862712234544386131990130765345168787018316500316057456425693318749833519936881606783029269358250831604125148379333091528651778128072094400373177875598036443973802408365361626977440748562771789376209486122848454008032641766660893427422814197265304874975969532002875655152877803547615295900661762035659621499456224950394035005304044405085733853324562124443761204014579978360700641641547539091075163633382407045396228064105093375995942541016097205952793892988327234790865374631304381798613128670996181705032688932923570238471851789038808412790682081533108358470301949675646305394553663272336508173657202834779550039743780624802713783482341546156979550035537237285723769769641318138391979596330375719754293692883646543239054712334041893469170361195937622658570214980611217019180377271731363737757723049336311961181332147382441539365540658495882118455297347854660218886065434392369814431524642098190425276548054643929870637617721520492168045355283139815255627480209336045366730302158847144440566330341869683501323365804135079377236764209026255749910298708971717898284584659147551877765801296851374392048781610226131003784097389695704940721675522336611784604984083921491240573188626878433522048400123848026497133970904148332625211241094526259143161820338712090171929141448403049369682489107223599693419069935570258512470039857227793562313215289710653898279198284609477569354863183550292714569574940827903269732137556625481384298145519548549417676746566963449294344927195030829398366416182120503149271298547447958038817209363042238878158951129558898513101099020440664260575695575635577679016446590414966353262739948001072799587723108214349386372048723257881121540532860282223296247736396043316179311252772131366098196366245910690668795634321701607397682359933065694425673790245393197464069869897695432329057882095278540936718127957014459397958460972101993609470712988190855669069056216133279159862459086074651348687322119414837594028945157028709237540071424955139503892551045298911658387617146354866253288781528447017245456663975190443773058131618718543917101456359296975401909053920324794629291357843979983454173797788301895418427951692385532432640020438515951923131180074221891904193210963699603196341627255650807620880694215822149700184043183993017829551354640476262440273605180682651206229607307972313213390507367152576465248102132810879874953981938633655114357666608870558158613012448736948931352185699561625149059126994265144541793344249509200925303884498605064639966756609880745021693365101040749206107063414490499289270430665821563322463193316043776056445602162030996741630756166772189681904976755359888833555617627173751504759015674636605865245755572985563307296398769541988983399781351239159680601541311618766908088348858637656057271349213088757584226135078858643033589534451554727339118626909195114509856057929779118611568889798773063219480140948956122002525907732378610331368158316208484979650932698613762423531812668842968586546312174512428808037447324638057004121056775098258891765059945666386985167016026039127671879693421484596110786500129767362151391082635351549748604787349943736885291656914837061289444979964462803167236787308769081351365276400349462892767896833860736450926950565613854099400441046130448748103190340279876744903472566274093503010100244571485128862132090673239545629141511765378421133284260293307297881883667541763930296029562613240937431712369120257283886912782823211493724241739138095084371228656684105871006850645351202096318400770284555827919571870758009231146637819484621008883175793471054836093713041844060639324811469002022252588164942086685269712627851976802287316891552536596689149158682223750271857275839570581157194801748705462555912432989342608858623577551057429427534204108510757083725587137482927574044779002640621687530568316841355932858743109980107403186100971809675709193288229711959659063992522461223163790572648836529468777644180612535626214822225837088724296137117121485168427135360478325792452386786531317975351401103614675170143259265869065681692464956644913927661758206646011956227727460729366666806943734111818485494806929618167970542965950789170026090161250305283590823664863082917281799498641124726484944542055382756454816834937463267380747920953475622125440456113442885218601492591288304681798081130655655057082524987288144013573991441792790416024455295870513462150831952488143449662669667684964547720676326885585165472189291733290787906712193318366216249869230490002104074219302334755465536163601534844115942262348950791588865210959938756940705224337791808504334026285792910042949317741901177325367683069923031773390448484137141765923305843263862308044772111739978748423737379182108386922914175484657091583195880353261345058395381553044901085505648777276054336375605446007434091362389028618191300546059139891715623475340634155247387270568331318742356769188348203347586903904751532709286624655825216496972922049573895643174242683521348107466593521685962652155976364065815672282423768580236752695564530921035219210134593924749345937723932600064580473335841938038831267312734415547473130244936435389750121402381689878219762291938119317647896991757083064904185877628162442855408146751096046311187103637570728130232418060250896763794254422399281733303346907706733277845089231954243822898253149435321437515449829810296243078440103530274721148127647369632784228048727195259621949743021673913622536648718644050639148685196003688752045010354593076982341911060768967812555242573063521943245680864480588687086899287337688402136273269598623423419223953564488319831732862106365549876529974343183055699272229263080365457840899953749255727690071879114678375126128746267664679118394791315904634306445684833410079883354399149076913673331335975896966198159051719652484074124355979522280159435721926158509261098652398414835673317325913815744084954000936084358603686370168350066325505436217783480092337485266054647522764826050820472743236759571999090602738039004778815717553115744920649417914677387795084701264804951790168886111138921448384237161161308942908391485123738523159769648913275212525904043654840417851625448565882888780777680105304500416145015130275965622204552904418028269962972814120043257484776984749229302333752015028116636858063977977846627583517629046105125526463259028789977300192458060559662169784067459158014134015274467560707017365851381288733265580129546008800566423027581465084715991766552546471220015693537156328333937565306096560814891237587840525411775667186210190889481223006935535226903947320614815404098775638644451410194386512905368196557610514015269814603048762482195259442159158628971062260882310650725439815181945250969366302285005452061038793054463268700386393084018964122305084615057163251844892783892599799695706315362662274707886693120501984950316587781281813191713378845110728295123950102646335550723472414635132460206816862809761967104532587446711048225638926424808895742409524872298271909502891522653028631261316427137017796785771019693555374712164169305301808715404044099041100082182153673184011639570522922735544407887735136943639890922701663586996402970740922771584162728610269167063417825170711637263551096574116837593086474284606594000675417711073558887660749393234509884735199795828772439854604159506049754998113968114798557791995412970429850397128577614733434249091975866931915666472827804294667667610589171075475664736088455444900210737802209543306419738482543257077802670747533405552238122493469358117627157000396777901674751769574555077616953451394712303545793317980889332807590402442237669885111559893042847517493600723352453053333300352191097536130952392071646391840332321123355302475077649618286520302069112161048099692338520938848504264980174363165133719466295495226963929016697579551857990014955574738289688573645453635185496141022496158988227140758920331494170072099709587777921038191305046109888855718667399785580285716010940592712425227025611887473226217571837179210888364545543399424842978147976818466866623880144907228681832068182316046536796809893878694278839384019892234312740290766868924055455278357536769871567760532706247295988795544024250127142158347974407116966672119972757762125029890470306935424081243222397341311189055005924746406762143986131956985617095104459630478908132949630512595389512138351223008111708672628232114232159220580045675904363317413856983096378203048086246581907781830281592307177525394061864385510346083326355075925278588991052891692004152414762205025845986966040273555623490721178703324535209017486636153024301432846747028179122894282915565371688293862010191729910150646734061929567753333537032163210713025827140257175301992176887515535647172826850817958180293565644029696768139874475394601292034036573873549333244261857090688937324120703023175793345333425452238910088716139308168482844362426927177763280269798833271643905106365723095521134969699740186660881698395255488584954417225852800940113513202337368676776533737344776873467259910698758637079918174732187241795558961835260694463527119356075462622156313219502269960621176831197811264887266371467208693101310966616408043083603927781437134527880448160403113186147628048948810797251446319292493461737127870369696611856559553010329405815428646034490500372070447162942816540626884589090375235255102657573848793506862880745302070596276848074946489603451254106461189496975299153506266841714078325086765858788614861770141932341306008484724423507205330183111900182223404919169546106017418467827215151006600907180346920038223461338305825957991551065405063023399811560062858456443609562941497536087430491813714525255227712892192905525228695258488242231540168303109256106444425469500495595671442615521245022854956556993664557620201962198104056870159231607215722147389318114444456040505191402819339674388011558453068575299891935013257662774654128247828440611161840123435010284448376514370580954223235364906931297954001535948038984564890482720529335953348582673862080021907046284149108197012726209776031609558247479700545003432780820523775296153121730427987723082393303028600892820522553744824159525963130189526477696874992931184366216402503882371236432026488505745492825372570962074462183435693746585998162496144079732115133819491848176351486322920173991213786421550017827606455021178516810043353446003181303467423998020321892708264764677414183848744797840189149005367574967187178947847671120670979257426401506945028168793478536046649114689654539767337111634912914958241437897123982666637578655027122574144530887579704957230913256007478141323981274647447068961235736081050413984149428030825106922672071814794717958889093717943881358724782097843435625508745895358638875067413874520982822050193767720125560197902644260542040529260454060781058558428779601460670318020132786178010005646298790019422820160301242539336546878670527628087281299268262381173833671059632301473900874321450524621881811550464263743042757963207848830849026765369840814561280021095248695115696298085157490801211709403798966923382081374235876965054006940888400967363383816788100224052446022072744070711472241997361358109385021800745417575055643710392914747555104497237799307780018693847399794589372592036485044167368785833115848716731067036936795647904680541486934901053999370315751743579918674860158210203013645128418539172071559813123431228044338853670227140458033557515966143220584947213124812559594374417326056488046769799311895316362782857478212586706948936866711368430250518747946443257211568736144935439173198033056031396002643377700660905625573080267134807891248994868080509026986157443372863614159861181866315889358746838963023506933332108560377431937064521183426314774649972919262440737376818241749696801890359645696222731710575712300029493297111879257175813710759822372435922462385126843985166040802368095257610671486906268696150133344906697195334630374698079663782850337582827231765461755248150079315671518029464405687622489100220672155138664805692717227371708607485009453165150106193739584468962448082984820117471891095889105500819974947252868636734276974674698873697368346794763502810551131440742461232398383316224753463682908638323017977357630521479389775319619379027537587519672442366807802765344884127680313098783579398072252845507340897584154124277838698495929456291582378188154239791193028130941606394900019497413161889373595421125989249114830303724541859608726261375621530264102056632433159314813663414546987335714813141505535768422701721142430065396981587156223205244554472299969364565862857459609353205904234201848220714833932273977111733593112716621243903029124441964986331940352150556557195579309761696032155284065635817287567999959401311998833607128039941609067602836344703622140480580599516964686110342693745419890435719909935191980458131542908888711487846206922177946195705911452939634035314764259248697386574009128854691106158766497767904304566731167321689102328388423919191595310336288438155419882845628395021140657594635656381907753546502905309735282428807228657787734147038022039850035654157549042005695605871457613858031884906195612443018136061669291418867249087442194699393290493634064118967923637081720041943576502503471233754577912415660777625146412939905358479192079279996872621635747721292239684728230024972284801474283097268804395061564004883742962393377385473188924918942680872478122063406123066237659978304512249242418037510396527426088190870261981095712461626498154476632071580763370067337268134700388144372028370262300769744664651089123382754836751316883337053799429953448919504168518954969475551824668112572252050613446369371082224952351995651222073981538183055357971543702178701987608025127757875215144635713604408220717718474343710265685132572710489412235682079586207340917233238392839324407649942340869877380106078288054841424890250707081751562163407073996676954148609179256299666399035247204291669504339250903891651049241484992856436196759058205395412466876860715203439188932286106268941174066195946816345702009108615364784472494425805465634132592835699161746292720105871045345132400904197674444064271354619648086971639107564514218197007686265087196429642430402410220313845871989517185495088175943290933800718315122754841199776940626935046560195137908213180676982594771087036953469993941994308156680087538304055204807548058584998435678562485108619662698980110750188863932620536036968949352798605085903863918331016942202870002798650352916140723323836764926555714599516930429020857809546702830865423999148480433076889806975426770700708447349826025431545771420944716439789193398992087167348519373088590574166075062734506551881126481196227216707826262628688860191628550011343829889719623131801179903518994449948230848623985074820732007958571428590512279817197053487206974234953713568363829917457249555087959182596283799252792367282327813139144818183508180285239976294669844216263445590591040464288680481767785981323597489843609128050244739464616669917291528466258819410962043704992350843836473616804119907594772273507458411664722574921799842667835176688974824434654409816931778070520277341958535334927744880395716623766610984755819967186588900737746195249870000387591429502616491066526198839163396956659600316779245258427472228912126481040964282496005199198278953489867147367493316601358894339406687645006311634205297158882426276697861608973751547122500186241250710692823597563543164184682084079984301348806466743177641499251051794415063821390970705286782469807640952727338771672254450975793956644279306201541300157606532281457668764708018985372235674268458156915501727135866239953134521266220090118799004064687296855257529924597033483865390583063929563691085351345298319085117686986129977077661447614248458084571619729650486489054055707430918595244316681649028193247413838139842230016187851653007621550741162801862929125566995112019252612304771164586723925153354212921067025832976031103248130908846979113307705947189759125903206094435750615526354921177931017771427505683127900731935281929507903985036960270125924090722738251576374331913465579569858616699353516667227849789309304699213754985486074674985629247491106044708550916128667089168943080084363879292662777066449954076931906704555633419817575164952811087680287331528460854984638693845481956441847764214092373164839651528840693656624414590796731115571177971608293232913788604442750273428829575460762039577682844172335832400146650552147720089639218831311195945597979478233676320283329554405641450321923863483747704515492729623434961846670462620349004871220813299688277833808383883012824152112542914347570852981987181678935148515686343119495241837638493793825825679263442438844490958442026903804141095808426142638566810577900638557240498835230698506734706730958397588912473546904770042644562727792220597129857377095769645184912212080151240044936928881627159547750905076076946116494068081797505432516433358512138607283474308254187517500901447785413148917976145380804525747565134321399685062499302504008264229189531640084767997392090640401682585286053877369711819486374220400023553239025789936548388134297008440399407827037925320420906429138396550368592991276637486362537141012645781591890525355226383505605793768923302447062617585057795729735692686032403245735653790912784883156868941320451743328446183388195353587120759429314991799088614480413974892314429605266744798620685998705387973175012866214982298479955708391140224529942741474947518633298781845057087401077900307640802842740025056613355357976449599081575566176315342771188778933351721658061866740578104942819752019174882268671728982430035373072115040606099494153672693287499546226147813518479763027791698002335499833603806607983375119213438295409772101762889110118047472657193735956597574214052539971700748065489186504820897518353689682377267426748221427720514402115693431591542284018482530535002259105137917273082318104750128269210701025823161743542971291434686159805559260168687235939659936113213615080209335934552023680930207772213306671013615862969687196832325714506983897036974914970222667536445260391225456478713718637740594129938034534501526374691156998321585112426889363067465217144083206243620508171596711764070498357380845339240674588009847230443781634472011144964654633400205052219326777446990872857155486919261765344529889055851954318567789989720642423413736014500972114680851206113727530536304690922501676273897135709891336644524869387203058480973501289360534243544441271169172711051313027470724412365000032404522866436413165836697599970077342096947878890780136687008827998452971749945666143169463777121308266809842618594563678916309282549357363405558309583917384118671920925963510787665473133417031098590600201013658923958639682459036276938710914973499658183939990770587601025237412970189327936391398355895153697328292851234149170377530209313544432601870950831343454596552691836835713406798458372131853220485235830893698559537934645042751854100586940812309345547646696476422025596283238197408814853364243990199669511988388838510177384868682969939390072746775616184777462268047802447230372767656996229131665153322427025098615622730198195190651492699139688437066576361329761907937568482226212172619443483908021705054632170705326173117816155026442939862880593941492129629269515850835360989480933506641205616544995417410645678224414195401565922887260357915680831514040974773809177516079464655201866935593319689948370803871298216655165456305689027997861546181113297578418971108840316439811496437398302820257418789776680826698989315174654319456144732782868699450043516089100232486205273159806669242040429805978652500344475099874619549798208751398022657568231489259738104488667104019877847980198130197560592303318183351546932211674922658305060087595647126659481247219101660619450867360195076008706483418689141522997298717459021601728703527955895106310863086226603270507588883000283693244608156662540875614603341164160451382833512446175398331341820406342502391626181891992348606544290115974011710515433174641334567319728600483200737802014820927204837472219743484617668042664096729436979009196014899551994882219503019864493672081506543713257105873301164013658677162800934138737035085742920104802020178829723016133445593795729030458834950884437931981369418255994897796942348931736098571347911619811518163513549707761203842966374334815080121463998758696895599344199933492372222452232637044962239130399249478343463072530065377812418002050571716125240533297703698427644904224056305001827780968892143617373752439080246670207776228685687142192465879220587230786064219824675640960064575269047117474332918407701051972405232394252930155129810494917207148929318593045303704377666985473267739853002808354498162980815543916060211395806401514617970572209474381283096456065808441717443253823912545104299628137000847415110886501746542978834051932781600157636142712570601448652584560940077054240251710318423464700312399865845228997946516447756738656440007708564684718926168710710991759226047715348242772363935961775236514364988425107878344978095673164772024939260983648469401050933703223663586180383475538891137432268405432676442574522867976476839665620771781206525001216450120488694657139241808339731843710902231949910579484442062819632744592315403134205545398851936971404872746247246045372203736165569532188991281097565487697830682895632590034209094379983957103517644018563579251022334292103677859602682620817238895662796527873311610754811096196687374648636030221538989729137734431561181659730457248877620877708451733029402968440585453964870215685906948861857873683984751444369616618832625177883735978474824543184036586332105249495558937383131596321771527533767274345522489031561032704068786582291603966842820112194980467688046009425013470794282340144740409094526809485490605323025546355940128358811813614356180622714518585997542108120564567263382662410466626986819485481639091685998496811817834056269728335214905583285642295132207261854929279493585350612122271951238408794771126788437577144641055168382109885045939175264142473882793023583590333788725346267633328982316538334542067881515580493778111744567174750787807911922687181013781079882056578764273438929066616107487556293063116887217665312598608361350196474374471185989889621346145545063243873929491420164656522287976106653172338936942549134214807086889538910618409169649497713724940466107195216615433266794673697960820431587599532618142767226486530743219874151493082349710151344045452373973941822895729141967825351298204115352039487970390463687935140581660094032477990816903172207517777002026079076885425984356723882643666631170373499350931290809419482399087775134061371199712507977995915874297611566269391728212440743835783267677249294569389921863335072987722456834192433093346993720453661880932058497508551548104313721435874696630024228882921219465416526193380368164935165445955471360309951483516152779115770421665045229753872241452103776218845752497155517763439411934855914191297671195847314629640285960654351130973213164178142582600567035498058459389930841575045745801579796541371086777183582028216888902595250988028202350159066831534645278470593800540213945820557989686277891080180749353612993266644321087900779525543562189902384113113466510159855959910955544199782775888245772540482424355408959169021249883241577168115432962309038388359751749050607370193576483471885983494141092755468643660696076809424557823210019800038533208663382227949562290529718623409748099031811161646538142373472379837772570662894055238138189123451809974852790357732915264336798478197047185781261969315026731533225015577727795045049795383948876684558917596264744170522142652487222049400020649173983926323658520043714633120104449818427099997392508355840332445920236141278149537119454735183073907626665306600772828516612034534676052054224219669564815538601540525359339963616534524524484866246166474446830163751374768526886311205714320814736301636654301018220502959183293988300064207977935989384216791298938745381349838773714614997622626997407832589567753971431880890567698428363988765876925984251235411369973408354913399939441016449535631750170902897827591457453855580650307501329536973085173407233247385153051674551585366252921972714692766433908557078900920807766516739898023580465596005250909897447518393406265952993548052939343413167339757107137497809563016835147029368563130990322644529438275571201436544755191655985554132869062351995541000926109736743855105693109183885013591100326599461236942284131820731105706467460435664026564260018214548720950271352542632756125406776696324819572141321878029456246949594056965453730765342579921447130649753696541105641881831701942955952246173737916801734190919385135340011676326488742066815854056462548075527338055902769530674041388533684840668571031722222799506655808554243886946289707101507236533796415276846526508418052126748765803842610134567262732015874003070547372911224398028187582104146941857798293764021195227718911050235372449995271575858543642766285655659450571946087192646536183502683659534544599079885084916153404519569990677359669205127124028980087172069746730200706773961145262615610040485783545527373721554943416998933534479947906241224216795249203891639504323765997957164832980033788872410571519722569828046743947647388386489884346736917366406918267998646560148101126658459982309598576272039171211520278580163867154980112077325251777237923321509463426574882749561874960526528769676534587707260144654237456660952577562116803272353525211143120237116802137079232231110555096570699855924413635538906389351257650479769589691770004307762333014755192685619484759339532963164565576977130454259024466491177326116099971919988645887775540587613114066959699337707210269585771197791733773324395892167079536299425001295011893844806836047839845854767438490223739409382697102817402568982992901153529733676782674872980393606986841735534861686522172202814933610529844368526338403187478580951145033539957472106551902100692421365413513591490749106902098546858355294962587987188750929550119005373508197232510817564732086458311479814350316552482016407777145189759017958855877847016305850290412887174550010088407044157826916899092940330986330967846738890427177201754853643437230011338015224419314692496131005469981820657827098823247432081540677152976245383109930255065784411949547976294035045261959243607755971023820427842220357305089519049528453705669204313843389120122208072068974115425508032990531985600914444892420866328555114529018341560281004680805282276699723536494451576654964437890029862628466861205821495384309617107393298892307919177784341224372120089380433470140067660117131408769285702818078518578709981944056670403954611566179655679278678336703444347311292606662656176928146910242767509916297650555973962162252193074903404836865604215021313026086803551353171990088781367663626885476593718533707217575835227965582415204175382747488691485233812463430023622013635193753465821394294793979737992408635190961656711951826811768384176454308690823036792358423499420789086735531235004482737942566069618289226673071025896529488000040830234959730232174044534060079556905274252138291147382601077139077102251218457306537841010567918083758976420740521075025493002831967612905567056527829244409030307883729503709475053436246408547771672450017983996862351428485048565389501133392975702102997646586733618930980557097383770037981794258222528373999629044215066502024094724244950541261826337372411242476629228421121652277365833653367976985972218991128972799466626031104864040357851060325495501227355196940109174741069412486511051312221724831456735344159397285517338916778011396743713883327926687427330606682593673182610898636306979917390418255621615330341727916503117651430172616848377112349835892813692500523494156762972747052022674238524836546738437872801529043958450127015882980190304187209936257666771657604089415352499556288209949930073405376339191113378842356961991992910698990024359455768372737018921077467451523997629662586388358758179220706653352154237923013676261832221393848103015307452075823994139181998159212630098418179570946607882167905407989660950107763179524637034125669139649702598037677965554654012666129110108108882096287969094768276089990315144937658175520114808618258253493323540141585879157192981236218828948824042541710944476122289266059754795877559904229321393801413306659115900677263829847417003209945899903986277511150361523396810599700866072411696361424117392260182641880224023897464677187815256620137683999737478727007751701150455652312466721133298419589593177140581272189045857971997722972758518200032086497857285615199472717061340121153082996128091077261060659113657039626554400419614513008819416850352503343418934011238958853803642836261990608083038253736530699036917730876723647398756083016331444289025350261659920216249741704999218182321050041966462669410324703975669343294671046095105213395409885260235726481183380845165081136846543156934001498487479020044912674275838936699049132960231999907987453605950130782744593598497023604766205536095120341961239672852713959287620871451306657019806550193831300596620956589288608228630484156780310479524866626457036661022276988156912190589593753599485689324694293961879707123352064207897789185802014611938453058548040356570102501706480275929318352116457451226220758035785995491424889674639595320379777392814979506451853289689767540655584923405406353438638235475311562640764103737612024516419312724957034004272740221787177241143610227992728446325493679036466237846499873304359923191450966570584918807025727677119798326529044025347843073599447047107462908607289087297984356117663166081671522231082302880601080735589019934409374690879466292120155483487476347164513828244427134482108899709328384742228937632871723553531036936102836964861601892536764389696723995340539630983168029793593019796714912003297257964526404153077873761546855308080519576685097200514501386124927924382948848533204417905342553609896247461632223038910752824119744737846050611928136571958135945502401109676597086763485999512227050194982084798508198891694476295282668688255968592320968448628874228684417751969013143056404380001719712493729765736141653744575286353794059418024365976211379799155396565172815278778733800941058593783147276429214608275100552652931474522844110153171474967813890207906084550392694428512457840944927073777569528518718808061672401389378284753076936427028326271935315730821325518434592626121195819749736636097887596475380457675156021010406097686944832516171936869856244860191331029074810206923272146342676684046805486975060736815259864223526709050989102327047115909530673535533525412973847213686906994850080853777381982826529087505785906132436967709719081238897953861968650240616762561995658468744688191602445483527847486397001859325243787411650828573167365455114835148192129307547225683233280095636308528693266235957536483628969118578127019931030506193664462096840136255984154843330151591139328596100837739337631841394848774495752185332089048143131005076918096433449948578547647126217082603125036003207483239871512518569958899048572910215604173451667341437131199268158221254562337241424502880878602531123718738245756166856023992230734697967063499325244313594368466056598745892473981952027199306223025962051215880083196015491329750168982820502146596719774818090243293084844274474100515203510501287629999770081463105248203467124789038840818603746990487824419459285991803883901776967012507033871124051943884205908479995782286559097028121688192223387645725211208465571420831026751421995447237066884344377546653310731285111428472841794198800016335236672600427319424671924066388943677908430837008432765980220333191937867594037567482002109229301805368787376824645391936084317044268761747773839307680294077806474518339011604825688636401006222616781443122300980537843850210365460607466616407075588991111668399431793738315515182617330472224546500031273731983457274370669382792980313850407129470991297099085748162310048874093375972605779069420350385766579106369534381684763288798064089694186349018179990029303303682331989844219448474939575464206304624385455521035043636188087913096859721987469344306384406915748107229544984413162762189172039166176216091988498590874298562365666485402801515074277605455945208547695869114556839473323308548695376359449051279244763623093967671785428660671738650786608801931847182007690629027131515225202516905542613109740061731622080429342801887236815885612965686496751722782262580196727577530614253965439525465767404293410518777129280040542674029603571428828520586323082019413562600678498849887997707643482836450004924596071254732876478990054250261252583884475035989732375673667164811281601047363772356564188434394636680878404281273270369073841123221857552059883426721812938115125749333225300179466684219165711090513591567033223040302261657809218411100631530022958136017031686913234879412652759356334124466265783069277621618035305151060985900834322037569124494213638219180129885982665250540654062541025793027625033776190049185378209417162700917576319528284149947748889428524360039073847343528570427387524495286406764138358624622636839006461588154893324036758387426032100299215597456239931051231724977466124288571231108689069342252090760704334065913611334056338631584305679671923858027804291440806894993938444430994943463678042629274800641302940938186355194039936275805857835641245324936718528843021369104764607763930474533853217016535889853098341985278293870202079984001418482828718302151451969164184892062574399399628120937485022058893098441740072395895794624516960424356785969277573884933259749909419264257446771286815767326609190167325657110018098577178445829727494246594667617781901769615202273370069382980613031294508075835011841625544178150349846114797567687053156703519012123882344381767145337697003210474254768054468887972561229367196311384178507101170947441798797965051271569320430997281036265582155500285651689160569878782459168978383497269253055431268423678650777985938453688256021146948245066357784833378818040427619769077647962510321445433802910026003038307081176773200068376759535443863301173631177468206253058560691248463776996542947629941365710701812433174723758339200700279799792097690114609127379466153897720600091637894162163015029266706386830824888941074522804400524039940450632599686468859435091914424922744210453584361318714161533760649770736604432859635632683544192859817933932684840175617891702253999425958870422074291208013983505877167523619553656342480753625244251193003893272702772779160968734682766941580972808195075938509912073110270942467157878067586997638784188568421417929749208584872629702104830588822513375834746692392376316622117974358898478616371995341348123632730755851620526496163434045732369442186887870726391691252965732460519419466363017368120938953682507352061131921423117400030313302900887842926709126601129881184328473563511312514695195475617785874588919234549095170842526816487038252396264537326536277368018825206638650281740887095321090961927916311989407715354908602586592607665889853203093721155684109108701810310257943123052025179466175929577352647062952763603340854407039696273011417997157434669967449279236747553431855878090203744780803817413314588856821832592241152936078739658421400735575212947942187608878278606593330530442646110824248429923185922958728789572494159165776283339132850657503004083154442016988118994617964450656208141033912704729584099263794713366960282787845787065606011926005824931538685703175480941362507499703085615346755148195975818266317012760223141379094293972505548949282004037996750815320370851208566219937250867337190246233653545338683527120601348106701863060694437384531825326583637924114580969972758151672469929010068439418388405398764207935030385244310076424433771936651301579103949760822535209739344044006384271335317603865959114642743165739150653932146902567386767974057038625915468055528699285097573601612767685621398332552960928736871429445141208470878687163992462862534411381804681831545248196662059082538296017565350473779811552241064508767076388127940251578568315520810194484614839606782130885738652173741797343187151871246027035027998635973123226347660617885926698663498750758404799323308483073120063490972599592756008428230003943024294946113364726394867847037084190827928395079180577029643891595145012529961807289863034031721651498648277822640284775281708839004634782199103126463041495006711283944148037514236519607734672137088776383465587643785833836826934399936753159548635891650367842405391028970833667381848246689448694981782757903629230005793513768845558939179818669675637985170832222962994092683350791784690098956001707179362319945642961730516454792107212006105890338601659417944764084221688300484611733661384540510098907774310456722519951410448896020625113857277431016939255557883721176364995811392656743842323927611616819987280564222930528817134681290105694892714817299738652280206170790938252999222923764756539444993952832773355678828521059255731178369543939644397512050451243738932353752665869277416068978618516958386057314248250614651694318646061849649613625037362468957666060658071208369734991138044601401576241125033958031924037976052051794058783423198722687205136510988411606549629371306025139525738756118293912476174060228779604575070901241077526306856751055691299580594421571873708770122660406144935475168725368959913141076888550791900543681917598848119804829664154691326094409240895532905767958541670528800310197291473312075792365470271322975138014028497888093904332712658197539579992926660477444167691305031314608311046082578444890831646641110332190163125092519082845287074751398832305300327487648193670805981554241525955636277887695767418221454015814550371424809828482989354356087896624051148460300502519136628627110433743689802503233859733756479449512443332196907062069209775609933375794294428556772376454153016544052226404687597900849531426623799867780019616067483150652165359011985849573767359771664920245713644352038740161601426430633877632358571499490162061388119121924611032223280586864884384677092206100116975065094749252243839293003255505866787766078321162677081094304655845855292569267778436391411407477362354072228332137727062617494510519473492904619301028480435269695056632532493877460170109722155056848218423345001806453302575750172855604034694255578857263426641827379813723124227700546401651644820130014809620131324843252944198006369888648771091977155109446526230839441880126813106394149967161563374691841439842836626397581022901834004533867107259650284826421863110253281223935120746628204626711740736543733845163858031009739124041462423169522911675077800234722785232537882225415737060361115034761074168996556372192095950493497048188107266554065422240387143159812315929510395280971064815640325042739631009826685826467558765416298663484718455086749436494661037096466170318152624470302482051234479004874046324205043268259314293791406516994355829101587347285720700448614010784511342873620627900302299163938255719303354718614588940581194413574085398167651822334952690031972628555547933077164457783143412741836474486875764874131301349924607876776038903759112985253626518202981650153142632995164552859921927261853460804311865885569200864256645659443333744639418270062062701255490279138442142488216344369700910762902390249902358899108117493850136519885879756844592557470416856634713217181121945619202493985082845623860168195287524925668780083716202801847826003309866444121469080923637257173384580450616396308980992467274482132640669764416993258725714370184960380681551930739703969679525112692494667162270264304121980849256138421985520677848430197405902480786122708528799400991840500827025458110932938262046758601701300453919380813060313024659005610165626285874237922326781057669277152929620487042803295438437688915938002271667562846347779090350272627623988364061618094566968639996256819382027470674350987245569461282235843976121263233399381537299788757900207126791176041784052294842760678728269422556803071288488324023034771783635816067881656659594803743640765143945772003198734996502875646080564925679547143985526781609296072947956561726537257852094785133123787359882756177262024554775708470854589655997558711122410416089859564218421558983203269771475372001161248400595243348834195980165879241011699826012650113405246416170910788838058896294788060301234119082356340324015504282409284583666887004521639967369950011337510343736620635387569848074912986012877705377434378133501817487585831375968498413098800857208980921805714247085917131629904035849701930549675139599562151468992186244137964811998195122754722422609977268693416989440639584721168214195342848635739229199302050541393569497357404541929518087813579044944982896701665125787554792779961896893108354298675431868827772582848084704154050643848221732062053721765831574140100846704816897965299796926571997967694176931550787178708850301371725595724595601246623472789248482357476242319803772043180084351042555811238452686258634445932309207605241624074471782163169022304444036133985497832838533074950250137863392940850993772834186059072208035549060251406303865289019687274980916230920696792861635069858558160825581462801632359307910836017783623072284313668275566626276441812573080621416192707256777104597390811136750928869133881779636989285692119294201128136821108731168703949879454089609490730617318307078916380330792625594919936075632096488755684444031803726098456318081383321890396071401288999502335181575207162428858306426770864221151032479436715730523046536956041152438624937961946322056931733073777076975997243644890806869653916445427991321142524402394901154744893282975966301581133942962319490168267134568500138771507377856404021163790934963619226173247058093208378391552605911609734878476742520053295439489440969997454901050273311370898339736976322688134490011273670739476912387178893914865425355541568899868702982991667837129291088573559413359103123643110155205931404449583359327155732343317239879577925706083043671117075551410603210406376665934803464171946162266453837579154205779378402777835097535763698180371342039148221736886092306423565694623595996162833779921206993299375143496947914263904975530663876367624556818700347887294999438953353303050269209787696767491158901295845786928276612991362019674329222991648640955072457091445192094097716655963864416027343086655535259606168820354227534889427102238239282298737450008523895441484239385352466334319903107567083434438778573667342444761033241364875859306482844630738460490032717943008061456939534379436119588760234229857497722558215227296803316216822383269961959512043102747003308925648931119788887866416738679733763908648362882637195483752336608224771599623238048828294029862855393141920814227874543539739448239978142553456586634376259152172617516918534200245469826155718480631236068836510083764300851598661166528836184709751896400593994259186963099894694725543006592207669321360913206181266135644146897581345911740569825600409768554217470520000859319644433210428686564321095865239268844899707884686566973149084031614925029704456719292296270220530944773341758758459995258620960315977933694092478038952913364221551081450127490715983158151923671406964888372864262809027682888714933907863127290070365940999611283762842520881987442917013610060443436801603865243174733536393271721661146002244506475599567707760254033263174844667575259555171609234272341811311545963293742418357639808820812737912452791010257753345078593295966233293861764701102483205938234844381322677639949822100337358621422641539705361704585871133491396693797396117905833945692308586751021940805438240512440689050673894365001943748149141910011393661856664557365539315472369676897431416860381340865698443702667058422040891226832501083474579310806554137537827787022017975296335390761209522133948835517255362794640244405681752860151798894874296200042931753277096120445923438423788025251675542299215563356568515330839676918405293661841854438328944253237335397490105711417650912237249612896870205398328421085677599701803856592481743823508463268781858758727431412667200224216229290101423770447694083163553589844214183327287717113707118033303944160422443460814349764072488244478664355043855218764814034308447048968028949336611370284207421722324975453746058828645981921638387815046024411801186645067230359408139511087606841806548572924495910444409855904076333290975081091450831283425954704464603226512812907223787857730261026465518099883658155154644826087109568341208687231047825678132001701572891310140088903442977409614772239754650122214194450562372408524748253721891077536452153515528723431338799319331548912221499972100597908722670411594272913582794452287975127589309282345790833298459045786771229360623830445152369133710195751612220639080742389034228488621785803998982047345380392045276972617329307332233808811813007543010901893218388868945383717078523506449417972541236561350091741333657471338305678491598734642657115306907923244056745274503731968433646362167126491918864514134988187358404107227891298833010157049040706818632725713510865821620540672290436667199142935005665904891659637537211385830787308266302654535708851466430614885992828449229200668923572459422812732186226613523173732026861778106769150995806907644174041630193576393042908564383182414402676991379023954331133868561101960099691432478764071558500689659908825482840104359841558595000285222173553704628084377125769634970885362400443789099602724015851213278152076864783338559585158590129041745172420234596347434234272525981048771629812849744225715770641917061039977286872930500154034986874989383200247171569076082239561347541591618858401016852993056178141968384353396091332819539367318137304240069205251244253803980165347522339130280954949894140226823030159119425386958125102268091359960803990222936955483008993019236597623420775867738134157798825228754072870993710702627149472004623828534119573333572806526711501410349536338359543376860429068812314572682185761136817592827680763389481955008972020125996111453858872358347729406229577769855950397640941532057751255522069416508162932703714112832447840449517999847127518100566096847102083950940194069216135934244161514994564297704194817748032127556524607801661722765084096391838333385735435239888176125410873423242195437718199028990284277800686472560180045212916104750609318514224753434301395822035366846140122082160793804514360463363755783937339119331120440612417350052835615959188851600657392015955671983318289551241435659738658311859364988270791040244569431454988133989292523493698441452377473040973724018393819965755328935405351306511240427404143394536623774580034402100067424922085067637908345861136612407974547249843924818402271273344499242199948184613738972013876123057638008945593574054978878705782145718769385168464252445057407085056748151869789704828121872234809712884551124399673099661205499163487053502659006977129524275132985415319757777667768732545235218469430214301167389076899322364437849647556951622354330801838257013923108543266849411713760911985793199435253864114336641293770729922124651332710204871219489413317967830406386453205656998504640026001519519215256303753121381368883522492091279945019964591641706713563397319138888243416577439197557757967702376268152013655785398148687207878405660415443395830776757355667771348471845416365046313327287359974381500091788649686281686650144686235507021040409640090752701818962180454445925621712029007468487820435538102578387870375510446686327860110304332336516492564149489300231566087842587370744165718616746807169804762485441998671630587432195163596924337663018095318636291813608802158078826883565120767462948682231878626911766367668184746319151470531587449952036018439260476656948433945253605296233143638996059841749701495660230492045043446571469849638902625895435943512679020510487305744194917248542970845202862871731362356191145015042749042785874170329855837939865755518529006058431101235556789234102813131826000456371415203384131933287391409198801238087945940215110668896688092685463247433293445992264896609567576862676569639077609025303302534182809584465436012301327828164472914241764835338427652397629382281561080472271172099359789560774072645571264393983579383598721699063737589140582707677024452496734923971805940720359831568998553483066362194326108006501996453697743993824383104092180970943199866594813479624898226473349149207381101676949104698252216756640040195425865797646321076854459894509592797567336477859966186432630262358960561951884930265855843403668245132963767710927651983601034352587821048426068498815078678946572735271411587390720509856697023069898999124580685469122950642940178442623689570917370855078097652215487661170632801208361778470698031606016919048253561733429807587061994145553856824632582777424236991646891400383330539024180236269302105925049688237630655316413985633805195635317004179988887653244069801929481297800671973826143657394522446225695842177344014570223322051662601020578457004388908429383767373412572515931804050597386872132052068649387753998909043767222295096813127912459728051389105911602472567775906150962684198091507542368601887884339123792931860753700474369447628143513438208813866375566529384248675709058747648961056470215417662865306680403177965465628697234671825464975729260698227076749800995647211512741594712868037779097051547808032248306582416864044807051782113400644929593212580791508263875139418480167417416062939962273043666108120648132631742022770178813041301378352636175310261029218908904444234912936422948681372229799446238195929007516255994729487326878628761153125461429605761056464714442855600154001347084339349117340616805919896003086010818964482861389914379086883552258274550017597813964101217467326857759347009669440790479013610696571033170627106750090982303542015706973283410132925653488419396386330839038664061098056062074750306715280507762477747122513975691259525328069935353573058774218352326798466279383753002543792733250473044414837462504997782206426037898983210203741165073570966897312163569343364303819732746334859707189944612192823293698328686517011450127370490159466204333990679511744258599001666216568913874985541678815713967589091685170363811457515023842578996069857232437150910246004616255961310678418334134729876682340081928929744406579842426311444412963819255553353594119473785804611410917421637555152550424860929749939284844010079730298056080226337728548402803880193761084092737067959847196206230621690313829883636273890289474673678387838227409265974510703840834525548893209519249856024691261115993012862975182576970857253971043593519433496986934969561074428919410139362475011539594578388031631835312917961474349989954692712060687829142922706871787291187185447302496142153577719479996377839780401715043341716425456023319719587181150307436838808056934893746185243520916012360526127947458125454766641127156351245400927864146059136635009508455169578148050329492305977588078957800040682880468673419758261675464397433257400390434029480480986415776456978531599007350530292287004977041493997636719709406349846587678934708656401321880634945459050145861399441435363876109354254089933885476794083488953871283046267049137517307557992252668312232868057155594242048741839509241624232535225705320230481976722760248993401528686876514923941459477027899578371176298550720832528241491163963742704197133892479576284545570621872583433003930183972209213822064991746874792885664469518690773997629780119080685149242902668090724926877638285534555902948295467040246792709687513236590463551970993443171613483677733337975372378556068394335954549073118857373529594073209148763489967141132518147789110324018116144449079927899351450990787062975047061255045227664599004722335625966069148769740460768797261805592879999031867517552777836236253371369849048057606741260566393081784404597362231118069457776442462788509709493592582762787869997446559160303397538487847221165468790129760897014825820489504329250925421015281164547834923683995009639381294307938107490837114101149433734794761665262954473198358990605885348990965958372746298019232767349230549726090470692839720640295784201664977296047015299294884233580487188108377589106495303390015125333865985844924311562299549805590383161202889554314875163429943056135118544973232095840828582580226565246533553242357533004356539038256284339330772868771850137677646774349307556085108708257714247445040423974825233923160468506488751449900327651635311006185899728495668163856393599176565712740531467096225835622288649428513986816661736167958038353402776831090077236320344387371058991197610377219911863531029093370945272378840418870726627413263951174222572433522668241151386908262465711978956792141163603984841191532230305498259200383712088547216503031206856272055000544619064915959042230397793653777322839185400559045421320130410930270663348381516560353997504854221600914343020849373186551582179358302863169029180686355697276875800542019187434901667938956669471577437973993203171541973696770633387115507917834480167605628045596290591573596271685848669404117670683378172004090135508467427638195114713619498039179853751796783210008831377746373975241313580430358772933933316668727629213860947033787351166056573332339432034798804060232136130022740772093839159602288167924643137831199951237805884763498821062198255101641772718030831490630401385386971943068481386065907736502554808324548123691435552263476180344342520410840455971899070504813254198764132257798789893575177687469409208731621451369131720700856716840147082736407583033845372251824336402837749338414202830401940287861920232659895599801266527579437012621050372383314447163313662597736180672491064947457629529789426607618642445855501752829859459276099296155382907689880817070844777725180348373065843702183027233828877051582872289463327284700292200509174289435667547901166305564839389397808992271183899993420644425431736917725124081714911170085733671687433504873044726533623658113539997302846735044151957649780973119957838349029201408994891179049946600553840270726222041531902856031575003139534117161039180346347210142279461017608168835793676835337374605723830081521160927546373869180158295768004434725383250460809667776637332783630343244058467483139709834196182393595571710842217144358267219065814724286207164699475238172996031603224491132186965083123053390808856533703719813062582583934278033732360897219778591565839831336923232756106048965527604774507241620141333461417762853284560038312959763425549798529516124987771123757950387131810255601805205277090106306348027157547155149549405858787681598003667075737474990361792796162653832983376079711671735599922879735447715549624661491615515459707623781166295526896492336614590306785536015592545267530229467624673202330287048768374702318534760895328627455680525810129663308958034609988798207846610671148140834287611658096655671324929102561657530815193118852448397638872243796054271898248332995054055003322247533653108753209879805411990490284941095509359271978705886904444076744465719024346787128015679012321145961480532070796987949425752568765870445666296928878272862902683377061942991009106968322028929180198004819101745616611958039257936384662641715592186524536782257014686351409453218124737198282769150810039203744420222130777821363998145833944684594468582260879846383374140340509035909702582615817452297285514537850646258613916559088534305987426807706815081827302164009113453864305575836797173197469506661518892410617375521041930766672019354229139514646325638446751067123063468805348976770847666097087085665599921589544021613926289645163390868210850562080243663117310136764137380031242768331116481203392373286572178791473954597258536848452041440652363939309789378273474203422383058281980896175836798263255161583467190861697552428989512559143016513517088146942255303603383224541124516184848075297608682479403400908486520042787456869584946218821632348206930167448901959786727770870046865509327597714303760681985852014672109273686114887563686300127333755067118898491097467769271995970050981211494004121186789277661603589150949738342243773794371652620826171501986057419559920958773195332114143914847576985495216287854179322113937868227546065130316973180397234684618813471934998449199757311951744699327965905705302498849335448999862672093962994476254157221166184132239780267656782827465581506623026222984920525623648397279370560690135841942529122127775312696678781575021957643480479965462296737507101690534526449415256138767986439409334659981800555789088937446667076745874639751813455338519752632718677066134930363370881565006417813348684537619664243044075726336624796508828824498499379102442653633661655017558174310042926223545217099123325087453658425765759683207430668615503910001714894398459462313703103617230953931356343200684299995636724672870176822664831290150420950127453927006280552117395863690545283449131285667028717926492284096608656784649923954411714142052169910009514125870028932973247747132008210151516928534966582122880714492533426108727219403984069367437748126964289368083665488604721437072015779089309492178950950137092717808460633428353385293642782789818830479711924980066863320502560428107751726973087442061152869870026415182118915478460053550676727575271688287465861201393021667310136240395493452699585992174684233812189554703001349544666656748299152529617282013184888418876967105707999700393173891398838391620955294595089602655162158788478653510891464202970233937102257729053875071230697538187528520819629903532011621162777076509137052636948149102707841412561683451785289586918837107270192952637835485153308294100862368036275205841825463622067511480654400810556298029416209693259277407777680630937572263505327376953474108907513403072481704040387619007095947068314233574444915153990216170184498893216294343910649414251840733254334523238442403569048621414541372491207783352932335076617810591174059960007804963498796200433434886318197717589727146558643049473312928020751877578744738874598135586311070684237483319967112322878553396625556002920592117086516892176936384788225000385336809241764069246958969807930303539540504643326128259697962641313674238273766670105641589523088611262895054904464220401617642867255177440946320605423625710670549924050534937295720457850736574748613919665452840502061520979364227042941193313841216766588237844648368564871601820854228838202806088735002047908689021950010710401147541962324301987678374872765034258938909954268844123292924531845498274894812571816469995902731506392544471810988967330594654233716413823254108625807550159108009567302421244667267572627669473834103461520472379051579770109333663095730111743829362984401335694532566851278125693351762668961322115703748918273062418928893483145320498191794901857133949614481682637755105687621876127570226588991910607497321199912662498336282960778810954978920901380662414822709577560909971941312787250280804249566388558264919836895992360832879761788336757715430246977008194716604588380570781765368637155535395270481847566753166096853697741008079248452474604526299470915835202630760366525617204512919735360243048601079235670973827740641660340439285876710941329131309186398778700950584077907240784391120932452852425533862680719952379429626935157656596489058329120362114959116195443247882660062197970530696351030062357679146917504510092564764327982112952287928898453548825250987341075143702278999997274977351050841235540621839048895182048131419033499975435999910359744648939433121184508797148596369908944194675569824617314285109307324127273901593800985779934520452773947260838203532035204242371019636085616125084218410253527636930432798900358134934973047074024359474146300270818421985249210212651126075670238304986831451439700251433251971965498991094062842508913146750234191461505496912739428039977266307198745227538928607602015682347074244582828095719305610804376620852603775094631654909750258540987715642600542810239827098864045111840071386073792242063837556778773942224155210459277588648444772067311551453028625840096602150944266108124997961886591119426607807632684568223297007837795978506893338656846934303299814696145910319516475762007638250637145514724498414481526235933077102237816805625193126798104759294231681806992556041852099511906267728801801285509205484228947973578525557313730566135109689738138397381043168376910208197466827057056453712979815218611409196959678973138048939942388042130092792253682190405099089224130458019624925836909081042161742846883005394102855026949803243698099679374236218696272767484013923607973347183542862275148068968937283431462718003767935747610510301302409936104248631275098388157932525730474324770447522180884983159075639743850330932196328741654681236684543699293152987831666264510299080839704838450034516912056999276435850343449671006003989998018433306924259357248760782787043450891593494728081258687164412600511403956925560270151649627277282865334204690748776858332321997209988402492523159067675159012555271009286814886132592381443841632559428299162617786832787007008614667081230403844908271290430248982839134052633372936441630857911988430827174553196306068974512653908645663608368871463643294025233503979916052578153645836531487524667012021131543320318263096106575776196380638686946618804408900403334537903772708223534787241115155558818193572810554951967725765927032664998401145478277619192290597686448564130418157189743764289399157249895051128943150960422110207462282451699746963159209102234265114208497655174117088132764266975387752877259159516477649878417323772809447315012188865540205333844761267255591215756004602292259353051290093143794973346762220214801527280404361670766827118588260928586922392956239896555141302515428339526446712825810100325528183819068377021502936790937962325023323264733210320781920393356695697822934885440396209186040759267321744825161835051633937672085220257005261539075071398886218073862913940414148689090529028039643266483761088856151033828244698389320271720677944963566896161022196200945053993186729054422514614409479509697777254755345765789507806665480054553545199463254441944100568867394391967339695841640124994051364486488011245472974223022431022181747075978271321817248703617733130363461980055495593233485530154974667006422568931319505160886449860760443683805865073350809823480834943809217791549200641654215244439520022203893488494003338813447035198761445444757931260250126515398271456549780878682878968267604836316467258922707772485149080072082613093122422694140505561646238407937983894511807786642207252522609970926302867081833079216872541541446237728433421990485666277111170887046355207262477635848092663166065290625989420153944732425008283892489588424156612608769981658792110119402417241501484156132508267730658321886638229683547393969166304481623696347001488570772889138767079940642614084149490391386039242558592292883423231551626613911203469361952574060097522683079030087443075052966725503795907793354980070020181115697306688451484525595292737274028031736108956188656893940465440229729523968162676350539220573268276295760007416201030323943868212500110751820129832094829079742501683230984415541762386132087242558892030104276499414397344862762165666836893112886628596808657928873124480806292223578251098469978197176293180131849781187758399193227594802458284196108080100895164669631677435355543438841099718376086788738782675633721997251866614731059045458121602408838532388845345062318870594495584883651905855302112303446918981586156756582423253990488307230359754718146878075865945387494989630902621667329003999265374671511253997646847736299617714032032241131531896902774324875926487818918677147536274127823727218476302402002681065552059649802027916295269794113189099277950731126130167022487898966694846119704240887074564259735806125436599019041871401776568519697149759957203794173046043830093955194394970988963987794200823229868203842550097154709416880886067873058638505535244938973657661546132401447698195402591443532440035530868290901325793901165351801764955863183789236572207435940028636355783126728275807164785501490993210207964392451924931194948291384350994896473394721455170853025694686428631528679687644853335007234970805413405416534474971056332908588860589446925669103678549559945631057305724959025770016819298600888957221401942861769267451792324697552853728873072847727495849477542252494164178317220922284630998150985734795917568715471888229420214489143564165675820293759160719457466687168147919265395615781210326843917318496622766226342802726910654298218235696127910543174253146717918305863976444596821618579569914393362258719882020811718675302486482617579357406436223774310439430760720212094818467483051116028922203551500001232877094585970273345348517720245341539892993428317531420962869425154821181773206648618463615098211380779353876707744659044034228661778307388823689468768186213801206297036268408007881262155683252730468059039204909200751175295323342795260005014737097159005714035604325068633718703330967357928184858159424528630300493749203896964130375644759144005852646298156783895547459037108241119621855733223229928670872796808163875553539655455674567615366611338401099240448499740380761662487677464685860246134334438461082124764387442826824168601953143755804739909278633631431441650683160200958083634763525160969806513187710354320023218817108825619631696949237813758974545153987296753443847104320256291179717412588527786512633274348628605184131022371949087003545378711891910833385754302117529328794195743927764455662860185810187038283955956228110812040969588632069131924572644041046840731156561312399583551549533553876647937664681791646807877188047518052084723736384993428013650543223175603212765809386246862829940783014949502024326976257059647646407147528273541330272724131706989865007036323755548963215652370701785113647729447973345194526794672875902935370137414300910629482711113785358846982411448911345328642845350423280777093414776352853533779305881671749292915679298694241342101295771105258096020320848057668467691023777058115532558127811069013187551824495115134234303073775155716824520428588888985412125733558602293699191473933810681478530669198563386819484912710953315196454734979056334589056908554068427170297806938974764073425638473416653059025521828747875687950429410027096074548275728521543925805653710402789847579270759288669399449829644234178177867035394782212492138699509685712200119795816053641832927666045915237894670738184807715932801000211323312575319524671426194316336750496648740409083180791604828096537827917211053411017729655496857570872335763999605818431426860901070949302434339317982432225150266202076739436972747503770170075930865907482617204077210879516032439453817398222061250461894295416254502740993012831089642475172482861054019895895338224067765042113830867288075488463105668390524550592460427626157277048304147205447089915474935403151451380417237590829561749244758130807063342849666319185879064030036847015831745893829972754201956760053543275202327658039517818173275654182585746863993664292930299603709510261996257370706920785879134603501576099587325991592226264235458033306584485010283695675991306252971927910450721046056356447980291559917961879657970620375877641867656517001815836843673519000761391507213375123244337903455742545313764462578879260455015735950243676261585834039310995780833672840073081151765703917057625380397483952290974116101483538463890863026759259924857686038996256787406135437971703256696341902234852802247011625935658245552409198503368282318653333711754307258243820958024237449466538076505327434232981713982938907216442132813188057000032592743987498442185715355587540117024587663231352019491487965856904346528480406346002774871451584779036604379057263604275819633010434474718247218664553537979035934599496079998189458353461472355961559027308556083982720793665151937953502305481297736064923800226722868207775424067519593278300289565490261854927376208611958447396770064777462247882038820827471943845179635117720948524188851030034559352570928142361568534752629079209169951532905068631705496176489987861310910652204095205155182920865400935282028377033865924435649908570935884242535752636024718563115665762221602753310423173632944579263488675174476204012220610901816645688274522092584704480493340140896260399267050172364992523538258132886042281958724672206872089007414911131947809159850222596498275555380537509875726329625155644844807731649784003257491303867769791620648352126838206690917354412448734527639810732951753334391860593953480191580828337070620390025196813053046052881918654738380430904953972861025507551667362060881297301764094057094841104157651974856006745578925181649299348114473646408604762977836687989130707909168527366906512420911107740418106066213892957159171751245178610079658442892130812469510292985892077434139811194571108671854529445420123697214888801564831300001323686587485696482239579734884499608441051281980368454159570451138328473678283268521995359422327895507661339450746653591093397996631469454585517270930294598896496801673851945317576120667046525631271434073190877428278397211417798568720558666026073782181145728936943869002223688477859878227207429161428327147939896663928447720863992962745384485074081612411084862135671509035376577540788132185371996839735625403177182919818298526864836986494502497478333900091430615136049651873649813992948029244928224490118138807508928373323855464392132374029093507572188308461649882199066927532170396499694980651686007793801457079253604043972148318328120969371001681297532263673714107995315074193733361566481246284511597411584090523207047467483062035205445209219917418406400131397329400266831511600459658027380614324839366960849508244088437645538090464992916967142633623291205379561957587238944769172165693824532816167613585474023160894876351181357128228402692349510700351506302076521104256865380779439131674190799774703184845581649798445322093760733691640859279762829154944877127367859840641174651034643146600798466848622159190846584008082833761067269414215462681104303277929781346238784871171472378469532668406813748158802224559858378783057412102818390021036883958684040071909150879722595471900881455509750237863750084754296784442099012705207085520742689882647199541904650086184091061419645977512119059296915855997257401748497554694134669696418600778200546583518227395059298425009225720036893342681303330717375335623201436246465455121898423876583204846393741086596869099428886741808726825803787082690244210258990178408273408190104322316103860272466671001348790978449918332588504850401365212223495311774675095536433315309042419583114477021871770328390218785137814946414817084588594254670434989422173541510074051228484585790671116509309407542038555520498177582652446807354945150630719010572888497128447317733761022128065385642609143629704625096599744600521251546814217841546946845769720172117764615625893184643831484440273639108269574105171798849333226764463988883696770243607502605734721618842689424293642163998998206303284207163890656714466083921852266688851204149545280651348674082875272811020504672883860796333674398576837005625026661025863623539798138347563959117721503043694230445726279897381992409801873047850048211796144306991174831055406107035971296258679824643294655141106242184141333570379343330237445795463873870735951383860818207428585053801765234140231895230322148528871365251794151613244489525592160290436944858181343689664040594329198965963252836419973151303099377270214638889271969448182535319043772830300035957779265754524918134416159863812073459709410268066931100707685911543283369736098344415142057555695755642981715729935943371531350162614343301618964591976750780922071928189241162280035665217767280419352758484890887703088434783928827308154221524014741029978608542116519760452529176624150775609239759850420079747201287369894754029545009814864106944142269288454216649908485018778772318989526529411770182731622005305290782082039464672507092316683605676347907258000185174744138599447102135979157020474257443355109573018182442688873882203077397217107854509569344473291587952383490549041548639237633356638437699284145872278498034752802281701982494509065825047447158273818791050014834617055792604105353525912514725385338386333993922367574139312542658300009698537172087330215822802736918795115369597134400884805857791487579759765299052361432791907345519910116942958422223913097120986232738205854813354014185315201866006680749850574718860420698807635788492351161096290100552172975352077116097909338562063270153121246604146000145482736427237036962443389947538695158973666833006573822957733090238963691523479931771898915536835874851840841852825175448152279262261546272042218359512292799031152677757026634062956467336963381331040521446213386306032073249525792756510293084784977605057424603026026417906194259270085512472561939243366305298438111781757111471594409690196778315612677264781120421554790156780051978673951213635311694665433248274456216146760022383497092396285739040369808515544539915021680588112286611062550345139092569746694961478221760480064783044369899961479581120197903357195434927302113505041104962306584313219651207004136661704766195842523249413408472031132904018713217193500495971103691428971510045324262888829193881303368337998039014657512657924963878643467680153967261558637249103899692172117066624910171918396342766478424601455740846976325269001640270461501613958180429592455521124332136625611875830811156874812514849119369593069270732470966985594082930198602598568448142533214443798194625058781007043420991796673417229651508240240456137490003608537972073763755674051249463836860176791436653523882040307058434317570434547432979039192482476506709989173093587360439809283392899692077625118570262677284111988027735247463413481871640138121697837790083595155054327456401324134660421630175927608886493429450868322324703821198725822774114159903933780157028324375814938225948640912141048663253878196798714879201863203487664604414437246046057654351127452893157393583402996467240147690524655035516950591316574703487208411764211295817831211551570232714232422549549418190998897083803714633782613882844217568316172994197806120620676121010445391722378065208449727694630458432498103653633698538091566585686028258870528792391008188998527886609566739790965297582514266977792799253528559755362518290864541081176489154256833462986180145890017218653236233658639815187804699210198066247812478765436527112165418902800424138480624509186982429102793024126872980231714618748652957269798772912422582003855172738725944165014259676567856271722408102402269525229819933796126918303422021511251365352326810435524616111120258503207433607290112794151054158400422793483084654449314806460444957094613421184528348268782414827877770451147407580081035137789093084235571215306089523687562780864269231984095259736106898989440799927238986685086049336622017621780969991629356718465478098178108358151266445890695244495285625017079811248422872837653922177845517556305299025096594812518225040728569932260618324077338738761751162738424556048031393094644903608767491773733175333422142835873611462658686054768297897959911236765555043146672162180864205489120653778109432635967533243043411254248333054265225062459757526370643482059353688104492233929586531375240700885277645439818700079488804617889643469444084619887337921426369210358478524542139787069535690108893177569668502244752380070800770309158588696782772852190679330242568525318930427648216946772159108604203866425162577065197035500113923861064184913564775193325429208907175207488380173781420381218721940244623987411209886428000366217077136350547755197170843579212670873631035577008083449379210526616822945932930338111800139083825128104139579651163051533856178904912754151543587633305148848809104321497993666936258319515189028954148935673323798038048158236320066669421148050515575820371568935492558307612405228194243730019958476817617696504689823116617511406362894530310583665933411299583403199927505136383392248399850736866087304488295583650581150119593906199423596574383896801715328273389800483442483260620211575383485191725880019649537758039390605933924350733288290223911865071514897040607780334089811176000089828487980622099836283165758856136142067427938671479172761848790704803579441745581377884465173704951264987584827574398098825038707298458727293426444739961346383968197424773159390064681546868604299017600383016403699749294301208869067331177813230853950956124344139749628798903512771921304850561207119175249372516852909457924178541003374153981664287879229051488111225083807920921603031533105709642559669789345158677323055650768711937801138371272360339910757832229288735768708063243538926309339785862468301554913784445308129356636173826089049630794868499256087607845066364362552856461375422066451728082929772068510289230191799818722764683439195052880844233139383388127060982558466910945549193360490752759508318483818386991474583431297532299472422010723037795152156711007175768373187821168657637951048623451871632327348086332899702387843357124380475799752591327169040440905799817142352699087185540804707425268167320362393954260302008112543115871068929968814684760760410344663326030281379222581642916692504480466524891740260228602785577237250256412380705038411722328414629632339023973792803103673878884845558858120274402505866764211960600566869207699257783572332129109245864044538500032092873900408013585296373301452741070738946146226454487825035892099383302158531608231808665076791030272813871603365412294128016211114915609957963915142441386467453366572264198102442116475224260668620041555031860055387302616424061056275644620625247678543368574257429897149821417324495825402640345576307853166858681922126022198395386345467494933211400686537345096017509517839937188334070730382893090775267079514603279546052549634905724810670039589229679043073726472312599129978410207383196665518622496418856250381470321368012213952339143204232744035300633248800496095753680808663954892625901263990340152343814078495114343261451863751617204729484209461350082207453051177803436921008041555808612125409485931549594909162501512664438064032013068353804530809561654403289751166352908974803716135421703394724958841674797322384287782538453052431419180993220028811923384035392821471885786019517829633641422493748444067569135711555127509855229801762585696256135306114272090451936849103444253464499496245305115277226890499975184571424004517093694703918422689497985199652711725204050552761045386181453190167303034812990493688815773793311340868242977559587675382392618073967956489752561566984637564508565974371214610402935752559495212618175947323663864165436481316506514080196310227008487193553858688470146848449966210904080861354903147813255669039297640306596710655504146928784080022296178365850338611459211526293446249990203861574851329597315723864807558932875200003367657132348866984048982726130064189098977523142988139059100102668284468093759505544466154532484882569808135577709688115890398813560738512387645518334060585802263049035723755921177973892340580461121614731313402224903586993052018620797980632889095941116954143686361854434804556663587237298694058343655309052008098618779714962050994940375685182231853589892302989528977108633228326255953596025672588512402169414896019010617782534582890141836205328696558413137904173605560919022170235534311466555679190577235055323619145219276496973216443073992070156036907987104822217083847018000280881292240215520850470756643440642745359148624655999322406908071401785499430511512403518950695428750327041048485432029013103403674134916127169947616674771443423880285819014712291825529793860848884647544314116325274275427534175276337845395235020029735390864204132871980587121844649449832198112207597884705470791195691921402246304695787047209752946065573934203882082396186333298845073685617743194958657177623524183735118087911932840054746745979775290146829642609991973519941790014403959078977898244436848036532817433324898693929621395097018222070761729819074506255576086312443283038743220264989775431555627091417466768669147203989861543720008110881994921394536081747220858280557412074533955811724691835548987277992880103197648071121477210066752129785144646340902920126872282933778629987976050038357958565315438162779555753252873250985459507548372921230707073355578062736008094222163844682468539296398902108650849000244360419229558559667163509903257580931749302260224579700619832704894307433496459980235218723351462572295598634175493686363228057782571763469082687878247123744854906192776421043402596650029069443324176099539804248047685200714326659397910316633585117555788934168004213417026083111131503936008271819319696648827856978752256743159150473890393262043357165178488798442737776437153814985123234935290992176050613938033271410248255753603131025819652213260422465286256740637186552735612646628449648242721976297534419439108035274433724120797811833833896160638111248047660096909661757535880876350178101680958073367802078183912026555558273439630194506704719890540804060425807574211166352959968858605871258530474032623951243420291046185426712189130232859158698946448450735788343664579374614015253575114177920460583424001386483806263291022872308212993803260936890356814795142624192383617022952647298747368777148206709278572263709814509002422480542834049840927195265484996926506382770860337908807875166071196771015612846121142919172664415639436873002496280701603749106135783964621201148897491828553220710907730810676331930189607294026265605228791374761779837811692879690869231717737060480244068425597904230819405166269606584592537432161949415701118024828422342973068921533239749964291340745807317448522485977809704206847259620247874726409836551873900579342191374689714477429521352843625916529374959177343264710347520132825838997965318703126602383858121014294069942355224781430749748193031561592337863536513661386858071266110038379938933422086740389607614420821368136789690800593749597215497934625059308364289806629572594792996382245203897625271529157782897109465743250944231425907721980494270038359078651405853103572778685002438273872390955845503040411696470215947295751432853940404205952196163914805590132331784781024529174009105177981229192028363955415323123692528297625336981723454699988136023589074199289023499452701247642938443150289803579276558296497658659185191463521999965281576344841122887699982839563562636837965926327716633030883305217065619669117486833572769938201710489940089227179329895241896280174517205241232694049314171832871312713498587205033149471461571438747640046315577621934163711992766195855568520314529684108012603700280503321361537928370347999768664202189954816190533506364873989097494563049216288465120148282961001444760905105301446832146892179731297650371098741960968552952131927767827954600563902779625388427753174728075564886144035382510017911605010776746289699685535707126993763837410982665447278276053626232586119771470133821255582280433200465996592324521377496281616389051926399023846500123842411503611974807566446773134332857619075182474068241879500425488777914011235990453445155166647340028320856852144384247199902904044998857148383411414807279642984814513030709138629170344743601043151062552142003267200068188438261996228473029541595809664288151172747835295686853993179554116340491378440028837502569793041064901729352196127443198095389274725377576684687702225758329518323334736200846487766301423625461858683953338842897517335201857132857977911551440254783786571969898785893449109150692003703692847179563467809636887121446392957831248262967731519294869974833436957244929471640211814295369015287794650822399641695949607036107225685795811063756959761188569450338425931880081023894880644462902906077371625646344757171769080108376526733399470692441565362340575224660535920597737132426058300451857575149825348158955174574842425280549008733847585297163013825342728948174655456248879375608213164928055869610995076663266508590290821102708075339268618182114980418046851600258207980595130895587329894720931951213954502760390715278181204715705696541836111134947937643228978223083218755663831090071341987495139794660495868806090961193478088577340050733961007479670893253476456592080814068864468334433816335229091588025559477288727017351053583849075877810396575943089510005860983898451820887548862602565042018154957016355694163975768558819518804331507238185283767896688765669494908610606245271633994680489353056987750646185369685280744573818927072402397661504267354596988790010514190422275777194779259384600228515827959764123558627069246547781858886635470925617477785680104068007195181692958492995767809060620466544385871306853329989144111495974447553314458858985586881795739804375891412808161222080454274942105257528667739714398750358442846932601061150367514540600073573047181101920858879243223002844153002386793983137989481219970258204443285876663005373307665455680909144098860693531422210589270420768166938152924568751617258224285144813983542385560798352584177112079768361966439885263817702335909076950238047945439759078887158969676054240430881955911689141866403251472092366937859611431906746234831502568708447308175267723781280822961252815519950663217006139206138848027260212472475135848106118466688141176795228681360564165415248978981159059057394246739427398250999646643842098148957073691271734429505044389328716096557613536905385397803965399012577775456348247934490120286050610515805081147522511146402295482261452120275407008167995490823825797009177812981817161037014036749389321557661576676277844125851055999261743135776947260197396109349168295618536550352457422227476445276763962473782878054782699994789316906695182241092575488286739773503230284326782760687605126642792783834855219454521182769260268997175029894296536571518130566983173016012766800213483790753601310786838971739468158069861697914493974360897970025463306743445488849766513892748972042991879082115101108883104197093222465353529919952888282208296993421687445440577738816458533984566746195252461414532231344193563130269052569512546764030262765336149333355110149324840903486850890667545596220105883718967301526502203297080231102455213018689024591647381793945705060167885398698201360785554662360166555583734977334748643910004400064125339161824641291137502123710069507892717448333107796450148581473057885829689581649108532302872766885832570726066870958671651517906656290531102895263276998667997561980371697556329385112540558030141236370380374617852514747309895683512908638433149446085204530531827443385841130094482745991449357373179789379844265206946313124818112662690922645192452899340987905276538027382624562589808568505381135923021527920629128895777440550261361835618795032676429013695319149639397393199852557855724371637907046688671847814209297484360593914397128325826630649101069704838948147492809892465946146601718255144016801348747097644191678177185471343012097718161037772139716379085285710364078330311025686421936651226550340114117008828988090218743819094283320461327498654938075923760032562499871502566543182669829824486159846734863830947225451952459131220365201430085592929006978470856350266495285055280106032656166674590233078416781457807494074735160842279997490677969809639351802160798629190140074086731558711305771710528777191337002814803860425874682431188342372486790540753192853559291456840113994334066889529074325465129023581744004157928350864523131909972641174304508985660719642028303468450257757983407130326036902808801656885324481011451721273433274529855130824492833602752606985966942514896026664921523102774581955110546237119935537262015692288321995922869656473376989941399759180711336240157280420564503072968219836725182945899140570989740705345777802079922224840006704815973815394484887691621560539847685554507909255410645705028825339023740632823125412911399025552194189636478717220784396862318607183748749514903181318197633192804746532041143679997524228761391758099343847793550077841847756062770353112218655633381716184100584381952643775920537597452991143472853213132288292798542052915920614147047313283312706903037723665671456248145577011656882839496330541063794651038772476424207040980520838594044755527581258338344894598191308607031135565626831212346182188705298814767320299247017975533935809559739968877759538451964058580000951223594006898574756935600691478981731733075136955615021928995812045722052547816397763549827223822669094937282689486054519644825485355062992927918713481054636345536313420147571624001238943181972550426669313464820051937949059074937066959457935625928124156912712205445507315449871765092331970801703923922326232539952872311483289535384792948485263979845117537000922930845092103458214473232669873040300826414923357247107002637481664933602326018264336097697946909170529305298665796408775336846792469998032842373417327289193017398949893695869580308695874442989945914585198580135900704451387727844206711059756813670254727568827574216308183425254808923890578774497218203892040528452992397461270301960834716698718933063226068424795521367368650522853702329117686301302756437203595350679861029719746941453900040723015716669939140742167292128668948404361968459586973532866013984264672510775666923491135591770394384180150501557401096997490844733352591734411577317522292155925629973102741129794177979705951610583183554631396589995431130845011374466697047572707790231575094064438237770068646871796793268324613677551880192373963502580139619272961219298027958572992372750115946271837712762462026778404268937978808087101700517813620649009475528516153540966931005122085150602886288455802500794067719791146547204358881425244109087622640567930603724169157326259874794298217475461257476443470206136006178251892220705175525385151542735175753962711336256196062900039818629078382893162482261275720625101290549562131963708789539809595911898695585853920432959517970944282260999677488451377112484956386003340107455131691534240873698716434678589951528116750948733308744538564080263541283141341099450661904167940501312553070939641517520627089220937665681290428915529362272252031336175276816776217405578383033599907452368363703489816970306178558602806385679362174172969138127486701436208482435546463925295313048289221738092889080593200942877703655823817963190824965412633567783150975536422151690223882872866797222654769637818683340952175335069315145044795345601575160912430579370574581442790330944388661126007685812841129521239809167337557265208984934410767708473076821315146258962858566104506772745104722663270875618658344737117954292116958591512983696219227400704893400531011869399650930512665240032311416319303107825015547824431493595647715590180550656516938777025621554440011838469125417158889977872339076485614702643881837867804026302463318460598092452886063659328735033994133248699883021408302578050351690680401957717453933184423074396357792797987470921642190652067764921178165543714881698653203673380383002887415781838708723559287984293539813926831297621501942525649483847003786785808321647723219179668542635262498726600462099825299967827480379975587693677891384491096203427762766123041315212671349646904122414025943542920420334036958791551614663809469665210098585177686311388656551045300487938533874820878059766460004902082010281575517705066071630654601820256903533687124172405284519612745046384353394967664184835667907790010391333398940349803630757322501471183823821981822862335949759097702592403935223587629370157873503894330535035735041589865396440550957287670738052303925754002869376294472268184507599600926267741132777047236661189628340587287218288990130393425736476191413202394614495205903012488642664362228057659270221346447505066711037786432400505917075047859247315687891042834979281412838895166586094448995811882889879444261856005503906815265392655567673419691660278645463213967680580548028837824830397148658253850982957781234537002601136229349201030332523153798565028200033886006509105770349791442414317365097067145602462853064898591416695359025876941978424309512849978614352900978655245902478375296929559873009988514840609605270980146947438276155817012465736447836155393737409304974321190222336578741089000201795257281324223743838459964227305298941271922301977177500402378636243844806445612692032318621451003877780028256573721444613724708070665176632764864148047327748716404116552858838616595048927525466966335484114301666347010900480776874435043276941662280307788348833354206423843779950830509491290229564176969483030154051335435829551648042870819375573274976423625149111593760647409538540156818914760036375607787027847676438809606047998516205639943785717063244945574354795078541982434669935422835577557832851801904690496765052055178596052683517831525618959449130414293839407789995643004343357841090137866643498911860240888940305400360016922579065929258863840050880757788728807935757054118545670079940924254048813508308833518354721966989703650938624573481697536266321776778398943901179539626643202662422842897233913664434050211195293937589058649220358032148205765132741255499239341115392163614288257490106004778055034399177404338210475124895622707227089666871610995457537811246273970172121478926631325701355644175393344904110807348729930864747945797164826169808102828741375825153124495029375837593878116457571886709212088654427339820487815420608590614990832527792143088499998573475718698657100073000702919074595849471598402642674357637531826569606772620924398441568215473754924963752147911044988310330273718284375421127217904509216126590706917296457063090868430766980667755171182378214185007246861967895350033088832004999216301466180111064774888370298544792024282992204738615794792658960401234704890440202018962982189832857809439563015337259007921436103126339706521888350937379175231582691179450416186749761040287973378363652610318410663358114607462704193251321073407176275946605873754486035182470968445914309971281643168433601822755724851868041919508986728136517840916541935532281278749833465351136550172141646629188222207860213753568234964693699354141123725068622455606095118298318823631494027393893982461056328537725324233765665338713175913269459524769386876987630469027460591271394587662638019955795837350050870185224545962911091122012909838925595020936966091785287465549370999827827484618709471609563856525547524115842685121694416099919362065285550210379181866684615722969292802334315270026149530878222050996001763220138779087271432311174667403235730494709312469585205644347769176950287131620779268074623087164202342955543830033841814454576839754572365047275505782605928954921990651081886176866756969715540936590897506520815516657849200532495420073185830267354860804455617126260314968207818646836990706347799123863730321879479564677359501356288786881921957610344573350815429594676672487668461269639279179038262532674477494398444353881354091051335693434388141794359588515685105531566568587599963639326335802795735067316867859077383181008053652459568278286356758995703229693568681125788514328013227414774321967608447166979042601042104680351693530855752363216745848534416045166519629210485852173994316303885803763632653262310956003610505232305356374791097689572014674105774294654614729359178138181073513592049811546534191550493458259318242083059465413372300234571401988815079789016841929066504896306198695948110208732497513171678329413456579568114853399093038646399629154484107401536900997820752034550512453212966906187739914341020374069478270761845199902156991286569026926709830232901044766625091277780801688532757020064059652551072174803539954197350785397439082538617983674446294514955323650457916101805928151097594594626256068414685561507425014012110444828613350184090388801344654460245702596790371094670287142779148589011079405585996521447443222668709085073736633044141986206853075304878800268779654204609829010274104487717286110933088181606110393081575506335738149620204032713326137120268672019958718690342568725360604667142553702875037133099477272462695002730341324905340169546853354392203323764222663813487039819023304208257764979243253250333250613323697708961067386478365888128565988407434931002816492386890493757960333028006603087239823392057479624103229425074407413469841335432896104587092949074811424808934894763686661095873312230793755881199854425679493042622274016487731768466524335015245113272679415186076948572123311119517433950826708970348783627457922360343144645580701563869255516586199718515964950943369359343833315481308829290833755091740964937875993910289395274458663550744678933193919003945586438259702117363253080524095889674569973415269513833112012110510611327605853959414329610887961342326142987500187102435553254797782695042726373887126330562944182642327920476616173708752115752448507095966979212802416788288334548952914780991403082767204397185266114627633375469388930372470531269789733437664470533965690830649642264902804261112876634902369273747665931365331434173669485409760937654035097737721404963884808909425395076829851897409526972259802685520586165652092147252943747889228461019706509761941805063043306567113851774911585180215065010071863735872102940258127369164358709227258704952323234722758151171937474511691111493294613882975592041272068639630926521061958826628619590539272493566279690327670482426415285688575834806933740031274083896948093496784170359971740394535768691709069719068778837370681967538388018947093102487711570205116193067311430372753865830035619731782949348282450162620316323288493984878268623358352907505353461294301775403812962650975318489189437077039638344055746383819391733428744130363379025183728563715666028939608478877013196513528464158809227141084614771140965320496980388933967164740064024676219220607121964371967997095080797819482097452493371357098590041672469535357403104410615049936754007170258677333818932119749299613857841957998942158516329723654584437954238448262256943286014949297963683362222502103018339036833305790290351953186120302190581638666021393891436390278497757184467580290699781861154403077483305220989834192713197234430609067437037718921736380306417043182669068594380711581219233629354395103192553467282508416795090271564774627677332609283606257805491493718250361563215779749902119264118667478338519137721291500396009897513905696092072112786722018583500008720302762158481677682704881993882059607676043516271211099208472402357353426631850712651737487033522006082696775336515707454789254773421208430841459447139370053833617882536731114326531279833715459624976137891757982503627046850495550256455594536470241345505172085990737400627195375981217742004291926402439814359494904976762559785151225708270475770559928820288395567877172313723878259830166852061471563620037214751803712248348850264131800655480921942156277505578962323024073148978457467093027074443066974824983974970616707230124892274205617621420244770900378507810269880104408680677072781311892559275603666913263901862903402523054578510945308867527043316284584524065388338798063494004338650295500093202443760039208054039871934332798992283665065397855235983695049231964481518960917478968032073677087992575508242620683858047418854133438573322269957558081187277544912680007275832150548260596598258371242734921645538853490536893221748767679693514252289836958874342045704648611095734536714425098372622471331948155451638241089586960097755160720395102004371637516373468942269945596682689863364820987713437933542963185623786993418303273947800737831591734189039814204930321229523652322362725021649090750392200479621261896251496743191722048332219753219177378064769091813265297241338465298302659539273080287579747676609763224716211234423739939354873312195605640041168224777627166643968110627532079643749938563074429882949364590745661739757401595844125751274004199650935828533719168113337480891128358585190869920448992935644387532660837028953184699848504453826944446393591206862876301649407214379648357626821616641889527346607937491150927220192016640199821612452137629442880383880412008042845765803730024410303592856139130718757684423290210011232309727439348895375348341643876512248817686003785786683862014189458224611262501099958462099531970495042790598784868085458954172634015829058059870281680010452407020431551110134941856639680350948461256043967785262891288753902974407743343574824580651107473809169573641195218831031845687873804676845623489530712275290983647057151626104363377727260244048631082430236239898958510233465627173629421453000131526320005671888284949109669375634179236486143276333184827514752170906083232627306053801224012107423460384433581041511684056720708538198845030191637564576812754750828598026068937161368371152341271210771918330592422994604252029826511007652723747949346633712190075800266516084926394916113008894405350915493152453897980185135625383494494235412056887578589892805850575346503340119765379493660233872866124029756968839558444856747563205320839776724518977886044908482925796935432926538659740296130762406939773645754266395464116975567383523413591403462476710577386237201748004026563704499429214555553153031825986695017327553372551899281226257574339957686933562879076249697502642277578292568222116843968527396013219618953661142042802885112463528486988173253599957254627613226789689430441125747583827809449080616652105762950281443085104621965332641096200717387655233805224572442523048582022660104315191495565171026954415994545842081455983047843174934091625025104518295312394155261767571724111773480529095867557538427177380249934882400136678009615116572835132834312214878306338991305857278212165026625634080036334661255637904619858638813909252220487947811520476205098437339965273072480205432482069037748996893520325971445900932069731192110400970316816753411900186311122188171964940317194688429891301010396032913652838134485087323566508975602842395007912000528614174783895739755212976955271293425243707504496263420807061281651446315722970899978198987584498863815819104629697859153509561116872770405325355995033392149674179607999167146649219214462095592829713400455238674358789684207336408239018066079616946549308292782547446146028134938530720094934806015151702047781526426892853192908482128632402173797163475350183745789269212416092176504064021132293440662490286476931122511270957882146864893134812433834719702577716831105103456021082412982769842283108833667322744278392473662064456448660558657743465678391485785900079833771783639484033506486586155793412919706869432617761270254465668212233674227721996212485759952232245257512574638654860612030559966791003771888000759868847205202356414526604114412595890972677450655390024257071237227274583475549349450255625829762957336494779694961636661886026561129656163734553544482387404450604517479137272119379042097678048378253030770090892794150598143760599638909200200532096753423300422320375765412733118756600237759381640054888263691229318961935604991121040516240589511738699357532865515014516579458623898777187283261319223473420777043327113854303901237391373048897172297942755916209900910267777694686173479677175557665999538076152357630842574438326510012598915696403792948388600327934152861838873610893152911031782702162917625305546465394697941041737810890911329955903292282956961423931886178185880759966727715231572801661329944249928136029855648270449500844044081022051101865001464952386970797315159510212423358934325328808572159521902319389505739614303202414292372323165480379549042467065051733427224788507664575652755770365998436495069997956380235911045386902309303930923862090691047166628858841571086521776321004247220195335714881829704494610551032639345175346805426640823384470902506098142598469207572910261982084301569065319161770463727343930247266040298713665054160219864565112126224262084478862790931985332589659326613631699034594671748855215737936159443664020838500613434284390963901678640505496025191884801003075882713582600978163609931461034785733611098997245344923982392422935364671925366837855447612214243343547754656329999197671137794084839805638299628307378072984463573892265154138183811459763718081750246386944929077446912884212588435628325562185452783074787093164165152999937036113620547698008125040998125730571252321692402358399001600524892754822523429111216406778073825359392558125069962635270287882889661943834055781335834318930847994732195737929437409004668279036991108786412622175776414450352009646119038382297858098247890991349758764976007672687348453371013076583155139149231577594957556415176965534775214195803986551887817151291669056914314150846974408802186318157660814909563230933273942190304818872144841471935065204470689532625558284396887337194649276450373061795405870467520060799415916191566895075700222645577974302107763098357275736448702698504213264312728328352968731454792806309885813639162923951217893260933778889426798158854150492759600995390286845033233728259689945766891392887803582255585498501497101073440873696258390202083103239368758004136231497255703490386428987624646367258091590407914044138662767294972255147959953230447890829823155489648853408331477106417894159370752199958437652689959827782027405012859207652268397690091503565545942927810879137553918867674745415854385931005150159891250219553327957381214473886109413270357298604284158613225332382270228411760978724598742251534528301690658471836926560096560431362456900961057118827407179714660948159088747719696432108788204627205473940732308523678977698853848043354089899381444163850308862320540500262393164505567299512245139254210584006114572999923662385876790171651228117562217213004948477526635769694648119921816417747109550790411024604896852443616709902081108576316053976173904835063533898173157752781682391719316099183961699456684085122163257368616301985488844219785197238244406161869800661703646385326213590628046475039491229480890760750380415252719370403661958706779533101618764631779859360035123740811565422457764113354482553355478147714037320577252499733576951249082852341357481227020826133609210036292241265502121500504115177110784415864765748134996444196094832740504139240938689310458272866456997834971624577603226356981184752519496343157492366914065044746841368346791440982654546050416342883515027492476925160790336577091648709103952365859719519226816512594400577764094534666783023951442140746024217043376086350733574103271131853380787781763615048697960765157582092681245073176341242532081492825270900318980788892136173258191676688980749819095309327347400325017993626104454630488663006190877091376454938752916578976310480322766105076390376329359330691047758932369421043843602915469748559406857644943543019622769732996393557597515020524552468867363342046296480056636774628362937285343173222795562237191246150998281731567081837856265399000287581378680811690967300376203308414188949639137043697378384803570907790385173043304114493803251661912958497155020993954168794455733762789814174874214058781920440329849613199956761361380019283050670946645973842169021533159667646605646130606602119677385657291125483996496251834900994973692065847140754559409368446430694999372793956118485829905221675504913804410216278766952385412011355991925919998211676115963234390802218861126897537830202746951203499158522064762749304718773824016015496374820164215188724427711597652608371171752256059892809170820229514417525446392898097212186705590092908772659329042265462261627772700866555121768080992599346690407485197166283371947779056699510331895137651904191111352857482870319572473317135616156399581726143927211888057359584786447543236075191775048469557480420832268097768626202302208008610734953309731497721996461732684520587242246745919700203907030372633892805964910886626554482539779689396369432595214767542273930908041278761374166635850425902720235603580934939394681357555532529806399174246462787042046581785544292860368725101371268183838336078077482067198357921273999404685549360370350310852911401975661655637941527571389160120638790881192325336328976123100285305103560519434670054607195944514890772581926498483599137593669549076036422033633145166233201312274882886332245048781910070986656726841471531288916156881446042296486165901835676935235464355712992454292259261174964746563541008180243983251916213644379722414612183057012462919111453600204791616170479331438251737524081050765215259468939154929494769480009995837948608086196994954194460586223873185681882814237376271222839660476253272968793092024775322573989267465749099764194244915681400694837231669643602604119440429362568348347450061849903872115608113077695739942977007744698450624041212229020440635887267781767185162216970516265482439721384811159094092833044179874383243122590636444001969966569137293603062117822659764957243973920919395865422076152981006302976318075704586837166912973462882735195107466191703920958305970384557194616848974491872843901801988296943510121934199998299175356654670596700719470069968827917014708309114146670505040721329035304644831855393641916366329497626736174313265163751605418192283657644377726527102775144676143214461838197622293272954976071842857746098694229351740059103306618191597896090722707406026729396559326373287999369572792771868194088689698604796389710750094069016011929016398726842332636924545094158993529088756850082721546118748623367942535943006124535284027888721093675880560306953287612014415670082451573621579969157893532580301569864563917117434670585405723375988418465918240856288904786102038873413309482098580278128050107085202482502279067925232603260971312990419077122960650360184339394440161685785889961592510477748393018821525232559203145628257366175074539689372459989604691907206781041608955910308035465179228950911523770208865638542420779713611540999629669896930008156313830550331096772323419912459167936870748933316356148714237761035744178728439789329092304200013842766939761535557928938059149148118546093225852634374602194278984104675165486248656305755596220351309067036067436667400676642500847489702972590310286929601252773733258346767096224813498913613968856459886092315472958101492220441798852318171273819420422634187120414246422572256835962887398229759254965184376205928557462989591095682300668679854329408653180447132537824938936251003584078320622584942231209989662394618621038298091208056924764962168185610276768158334192538911355121228075289705468169226426266000246369659186204660619646888578646304570159889920778784783064822552201200455742627076450234486721366014630172230834625630719121005740919362031021519716129364119581518981377762591821531832544365631714227199134807518125083140660540076117336727436956012748846536056479093453610457368182160464226835212634941754829647326028182935533177551073748781858599797591586879758304718656672551504413303508441792119310400021450799630492669219446625959884920401579074735867521558154030749210237773802886269580942431793450896006711239276443993443040899786683817920763995035884682665109859907030514874456358372162439398774285560293671153792571798066749875002091666620145665940613757784653994934484517614407470702932506780252762117911811801163926244324313821014411562066126406481509688516387179012500912149361624517740366260425337575198335067996474271274789599011885167316312740417906402047453600046307052649155632058153169555123731994607398489911306618723997160292076768281535165451239170496439088216928298145766156494855151132712256059114327616360433200485034976442855249160229091522736438664724966451731488881779174774437297821340705537880508888259121604757946461891810707217195753346771293635920477476433297008702232384562707157696998890974516470626455405388815148106798644827906329929688021052825032405687243673607240057263505383168172865280493586215988635914631593318985922486193009361448928012063969424746726150747455556778678963103258512151517948280052401124078030486903094992646087641176962514187550167568603250241941634501535795904898830582578575231724662792452067243049445243196535118669650347236485844903367789932207394375792898814428023612779790339467514235943552670942501299221947284137028965581975292667434837472300721579858988302647496974037035874105393125400121534743319770730593691884000000585368640844459996956365229962505455296642151162635305339522710045828614780342703914702591428634613278578189288592827334757715831849469906335923654208349840555664259306272795201404038265834358106268880512429595786465258669552966870790928179540102284753054276552510908345057528456556226353642718110701873843025808840814616649841119266283735074231477171782910669458069171896014117557244330172661207434366508427725246194075018063213293205272772137225163639300430449254500703897791819399537846675011639027453005709211928747219942383532561126177538829384811517622863975015940931772299288646049131395601862698350668469681669605995838767546909708334720781460498080209780756396728807372804747837793100701871843018982658192615453370756640450097639929003155707796157279200935330214605362806469509133731972438019770070360292046950280734440949061061598002794467810927507333411931778369289899080269904596519270273628313751178805954954872514767249249894665956890142643596138326223681302756125436356358390325184692539198611700090813617574943591297912766393847138394946774850962328674546893786106662743748419388335348459574557669083655962857493877923098838778618797774133276390175856317580248602756423630493605135959892691440066694936804248941322958743415549456596082725757408963298917237575975677407684173711263649796036213776535964528575952409859659194506484980367863072176200760922506695134337069659880983750084211659220006132180651971205339408235307506267289057655095914770916862112177068814130536980659307899906263571969593897550689716375345490969223127631797127906498775910753330040531426764083342156013383407308204467015088800419683853021264504204919658437511942131094575066190256258454438737615081902699621605169214331049200482903446469569786365985269574190297034677800550175493386834488579132032847767999482414941403120882665609950152970880836536378048652296348425686112293628417591128321759696276551854895849708014126940807798954420232778087228560429343094936224382700140864453679958907887158551962543193066051376625848505489699753386615259322621024229223625566544153750968903574399900769955837342023719123853502111775607055531789635692805110032586563649488397478952674567612378745321168470998250979818714152134731178755717581442511611370449979402857368558530524519090943918302590824305910979872574580592319699215100374027595754548925521404866851485829257526160776127398797750573070770150430634130062518446058382446486625612545673110127223075567661930426346166799378532072824560999879435839610017356246341549543281800004701094389056465232452328241151424950818578375972398253999219489957224445855777440444842759223409541150062183727420699295659048223330377437006679269363623456902435925025039395656674357784248978479522812882073982790618785765701253097109816999827088669265223780589706979866899909328271022052284660002030761332532284612219322395522741792403425162766330954272100489536597253542701875025712697984244931152017720917156332430728840087873472211138002101092859752823612873014100166353271056327665723972969300704073267120244926111192418621141257993684890713173276849284976887659825810958156356108809359559193735072430695249459512426525173788994745124872354612786801720302206955889493278181706365298214116576139067383144359173167449436116907122228774684849870095255914571927657901750223521349932844686324697060682989975161303149791962461157703148508633954070809651836151204235068601871432832997528523768801519473893173113092509605882760007086659582102092119010111121713036764503696624745999764740982887274091857811833549627915279593292072789270228603866332874365056491348450246953159730366450596094998260113966650335318157745895524285311911468538212990586135142944118092335389002587121682740402410368140989778444146819765502095848769451222568857462578525206448351902312602917380737564880870305521254745224044694574387482371589581733278335572258418861566089615497851855195197667282084280811743836140652187851109895910923688111621531268840437998214774344188019799735057726436526221568469170721713867366337180823842263725883115917020388896598842801651661827225775641204943583444355535625788103197520032057021288269624160899337605879399740515608236967288644524509486434212872841113267929057218973887751808407152544614476175572992175303044847632010968420965214147040086769283815691092454364125302148098146431518572385271477655960933872315561044890763275776335645550874704632637587129983597702036879675385152133988637879848226985014070678252048357336200725874417857578481038710698357631829741660768444660696173901815195180728404201585436758488952586738352462221873472826004598660711949735485533334450052822319105227227678550308328662449288228368283045596286461547967601051969882325082363596188158377793223762336137328820978463402519042939936869122158986887327165279054159527745500960525716236937486079388838998467877849178183116943227138646578238397169272316111618707634503566953608147843109982838423218092215157400553293758895855229833411617175631300050357211566108713607110759148944618140362041370735616611352248748808305767353520355675621622608666060617652246848688032807782830928793948370235328955105946676860217497849520145916625310574884831921601452050167749671006621231409918736622126039643675321965606721918167773808932988900288918324088462237168165298550946303626021605477023091265974440727001852187501332527160041938745393868173423001436467839787426782317223817275050714565839593029879658951303116667957234547557186736335671192243703301748995738874585374241601719203102126732802193967120946447532593933894188741174395776459187540359231593618266665503346182036546369534028775356781865163035410935212594457134251843652075009737716559239577505526157059015742685030665760227186498723808466643529218138675516437734706336028324836410149272354397799365137414298741230486796789741316258626303223805219967004574311711102866452042735494669785674372366803108769132653643103481910571105372916654763810777410582388376705569887666005500047163160936476857291744893695507289068258262347054844300956769726108955812665086713444737982950733763649395225017453586582339549005214648294780374625650746021277394072127379366511613431423714181628325516435188263355641191902151360754850511335235378068888681714672675662479552316485425944028257689795376651301034279798515968964879528288928111087990052216486280032426487430458493136658259525298000925220249737259870059904467268608391488970469847197322349130333861508427880787098432317960017444637901417929209021662723359556827280438981016212674366828986839915289998531804940341874858344797336052722570949324350781375166836589816709256902658801886548626736490132147262512916482380337034551921558179980214443094294240832752902767759061667317919855214419741313598323682254087979927419426136469231600757842316618215381774977831411752637766244359737567960997660332412803030135190192883934161957210623980974818645985183268933761207564419388139689392999023573631306772548128255661042638071135894112107879167969223558562563791217671953679367957943008754265251839423664239014197296587801712662379822404235485256642085447567089618599355330686860716364571425821965670385525463636515299943443922466103011601053026169836096144466544395766601698050230509736030373800984412946537116974208205153244165460612923944317894195661382424772042011846726591200382442429731812082371927794870429890382606386839466300782130739385589917467141251394753629259451967696412233780786159633300538424509516714047024458059247011127704975037033004115533437986827176725768380299256004236329447271580662234712694710416818766000594903252651801448241358913473522755565214519758748772034982690136340006125682276983357945107488101854550030679622204998923489351260930591351252420809506972206864735062810017790124726406857534943009236309069365755107700089458725192290080863476131677141138603955897497723487864392194217473606498753610471540541271884070016617918873308560755454722388066270245334697977933931058430201325504123750801112184323958015230406286357154990071095332288141805041428900966536474906211942141143918138004772004271377685107479429279521747503738229416041296781204722957441734356504326935621624228386023577341751799035656157175887337802281925186608676877018920266515598344432917562564050857947341546593539563277848109549280007131632711743956064907314232503573734676384832833055375699342075392568759292335024796860015230207231147814843219892704807367107075399882435997032880292126291139536914924297853604306300489393279682837463868718662620202002289488091497616779878876656131847298463673573093890658602672956487922260787319816215671301398363366119843568450842813605360085095027610498836512560489975054109344790023370229726205793965913047553256600725907295278681829350576833125415958432341734620816850903466323960598775433632726930246300117233645630198414927419294310526787345996178119316921005378376752314751529359706747207930632777035943881387653909337694570684407888899186081873968140814567574521461015713178297252832193093026582099001280649959149502820559393403975971878878891117800270742265604277956477244601297507796049147040132488384978876059929218331184695370800560599018977969419835526567846432283183261474244702440847084074856363851887349866549316984150163381185216620719257769729317643111791803273697455594388401143282101360836193583790294589898395178664215676398251415887667240313151797033465589132944871291381433504101678585864343203044124346283234634665046743451975739640011215316095021888738173931812327999657350359439119024295557013526955041900827335871392718095418912603912401265688439509421233797767487030374640528984664373786728984026927236708811134749621263733309505980906112379723590012567229213250714187026599833490107639756692411819830918427253033456299595737158204125659871974798112324973064366247298106695357557564880917568782097736658302729676509290969057959428565929559521879396499447499305060119742319830824303982711650960722102620123632324086720115978807111417759242338080752945556439153466747991703839837352899886752810858208535869622806710332541614645382178667946207056204830642879078129045100788770782198424761902264968372848410479971455538974661131377805401975346093678532617304251379037772348084514599634074202099583119253484301037501976807771206020758017159826225464610067319948536169477918044068337750163326258835093415215039334387514451388532583595765340952454799900397838213760428539806408220917365629295507849972491804833174417578439022067256963974301826125241365018960764072357504149479967353578929866519779931393193768772642851305478383339954502263744337995557289608973848012960109522944046835239958683053973693520540296182861253607918364276535264487424423230650888473098127406691579481763154545022252596748410327382627585711284426505085759537493328971680057661201016869372638459746422946537152413257036894326214523024728486693749817257747141508045366603537714332488706587026811173364927044749389849179299422707546820289892619119492471451384133722106662454311055548487453511323340219299895435036635451143352333519352371376554302757386020181709324548640682062960648325558761783020331919942857613331838879986141066219581719651608180074045616580124501708782211124176547634570692205313517866667046070728282436900171168112663015626806303152244455870489739908130133631076561890606838325677396511297644575541318899134384372625438668044437623965121390347340919262788600437131662908089410743595041465411928222431092810053734937998401683050110146002955113926300718447199529742588839277044648963820837624585454535148550923330094713492888095323067565640941300781644469217485403187731795996910257364387424845793564948170229078884844399719295841052431753669201460090620119474050146736856439824012566832842927958439056193383568764206699760525511422733748073508583323048621898240467211535663812972779067353271681097109834235643544715212353334089697330169356956756462726733904551307400684463966886221374719312714491645477074442844725129303988926209940260983533718240129842657568034514889110524855819736437945105332220615115024728000882582073436591345688868734471519408275844181199667424007057023863731827300712034793706691974096670302783608405452704862670134350737747563622044031349362869228365678137542781233646835956275625790616060976641322893024259987324689413774707253691577613939158227846906048377252190270889489613640009253994921565906977426819234641445986357234508064614544879895630673857139705282250434440128335548420165365549886740731869070401492161620538770618389672517847657784229536152600464783492552204801095869718909649797589219920988181812649626235059107553768145649828854192728998996551049409688176801117914245629083865011410733872697052149651451768187829017638677474796101242744184999574037580599621410367091045762705470192084431135546845656519725041892133877010145060559543646320412635012853917334598249738624231907879198642518201609148861115240218114129968338060166253402567890111074789236354010657330057312756004464542441425203050757986158758054797169637461878423322098985204315012875417302976159708084321105379000566137203531516374655409337994314095729681617090868904851405194131562434854570510064808899220701952822351700452548681126757876961370330075887201109905108660361869575424553837235735002372122020549100927151834853281702385757313136203255042550757923955646478789966520904233086662646872831488202373093538827009429846006136086001755405983458696841876536307468416562023167090050735006820330932068077999075373628372440385284995853102061739590704661791368441599903156551587414310393675728094041877171556011373616035297418156641675053056894955307797847071070521849907403218248803725165255121652242915571614731266401392327778166409174519966052860367851852035361469314753334309111692372068193392374664609981357243577083908884463438142586842090452591308356894326581260898091273186627909401820018803172320398966852112475101658869887649618500876576092263735946367403817461306572525462390928555497672060593198159215068898772590064139578901076183322833916565502457403927752540801873633542475819102777803576108020491228120852596348616703107420606122888428544913512451929721327126351544386938366360183782073087423258734770466482011701721403448824697814458872871693286619729164650823759282774881853241956677013566829705906549748940229382094180095613972563470931540621515230223219394995002828561004165049484474057063056427095236038290863282498074851537110320236883561583175826970056647835624760088676340764522104019726797528118275228825285523876566073563994265085372020851212377755859460970105478027312388788834027019365526543646935833824743384907046502477380583804409342511696412368515659015051983399231963632356726009977887785774626666773226616946967492607901929778976256280161416499744949696603763381682259117138625739208704039966816492930552269032725834352510984882543827655321080501440817259656349502459055280460003666694790225392521730368859743136549692811340327911890638953117047203924414174012972403887635986184296699164287026262766508555191777198467709325595523903597583294038855129148990759063740224693817682263177419246370518241813106752405991577823837198124512172939077200113870928350180314372353909975491109938244013846759711574473703790305794981268699289959902916172828125105843580439143061608799031247949180889724042109217336405456143438338917134249316537368471981368767857867076201948167472695882518082886601957898739686630333965409484228597358347293396903666487457111319312136309770919051325358724879099856793047910062248931794180511466826717152851822143630656879162109142543994806324041265752037898063028607793442590439021058018392514409602727070635972878972903528798277432921375259460210014924460485168591704555202214368575640131482556640528003504500911828347564798846059981687034218310448013113520626119139880289967687579309646149730425678922467226180359705256112794829157721290362789682957323932077272114908853004361456159404741259072597837048007862031529377496694322687439777984029853413807749668241504181691283533856193876679352898439321961668598837009810712042188827816499153659899338824818792217646204322104866343015548206361594761858354813535996179500905670477618206718025664066173281758563400600066913292767846375331277549084815134262163422300363218176513616041932092715566804642196480994980545748285643755638562800956790703755868176708959261555609959530299372281271446080032617936665463747643660483156133195114418371836640595763880201204983063614754527124334012168225782050933730850169576500225472446673906270334022840737211526968602452226549387277999205474484556233634572977289621292345523121353159318062376214136045097368604416508990667592417404029285314294066190519880337390824110726780497861660787744878669772465104485547513518715273846606589112214459844787584999050609717216721682959997461540727861089946462522486543362841627037458200542884798299777987263271052578777342603110292329335681497555925766407618738513256572314874139733611085149288617768609676321176318285310804784417369454498630324589364225409054368756570441223241662902804811466387138004472643815520901372017824627259951363098853354808096541620126057188240271780561153249941716869839564034733585974695044299346383387047910227501655416623912894155132956449230757666584578787536377826150651542933601806173789854903999716320392628789223784994282272833754125048373515250649989916398850790462116128355302661641112312957536003705081963033540397831981901214868644270512186007917424383965059426659205900275167092464950135138779427668483863342993432499117643876055194115808850296388484977669268288017875990350636447991450776516707722872244640048802572444496871976359767828583879848101354553190146941729560821280376985575548754218389859259205339412318607317444583434579824743961558066565004975858109724847738049050172078172510599596033692558890174536267622344491454777956498381345666031857583991297347679224386049989145529517270417695049658680402837529888568308134589642073003283734235529824002767069227596246744350688867835490543888830132854868850865234004593343796617985896365823593510983485823320946747706686675642604457400585237174644657203297536886674759556801005431857135452702685651392190135987825551440372081907490657025342451314395697427748139257973837937416146742606751105008625355489090470822518492672659196523685775248058194547937817805756274624840234253546709239736741819734317164543686260797085406688740209465976330624285433810041504467976031176860678613404247311051218780743007429673742581010304687191809588101501580556152258204204622907888153258976335809135201785731205420634983414589482630505958108735599462921792458388766173585288091525080457148635772962507372331112959410584649545079732592909238303639331063945646569033014295885585321760323463005515110269020509440728675623060815728089061056149662994608531666856969662769689063918804562700655247827707249193199175108467773737953544898726172813422587014904872806298157586379050767040596281623445056989772108999718619238667319676696797953073890498779251184711437627544940356924834926804585546114161981952635616432960243637402685662355794737565785935723783574800930761665164304528468455522831183495353219577382749911937406256025711876481540524643193845474421326453423888039839565031120753504113396264328296654877189784175436445880465113407223140809654414034001380158064195120983803509063076839669163492098699656256045771787528873652927139971710163078485080867998762877247414806217272228594947553715404274002268408424708903641876338945653667370252040283994229439442318427846737826516929639758341781025246876804467903579592425247296618806381832160246874243334761176610623277315984553302598113991195503519067066489893882682279560127034247034665700647307938158177831948402902842590947385344635362214664926486975404335780271160435646206899815783318556896364720036588023234518188879991811250298152690285313563290449709993318093116895107615025687577741884081105217562642963421624108665090396842311789676808735020056691472728856073659308337855579888529541366039748444366331693528212065705246837502702900743493362301444141992287496173939739857384356792868113569417184912184799492633839978808492117334425980784460467176419083126233156631868081289035708990731940735947856297717258805188363463584033043768223900013141971031435188151014324486288418425446443275553931201050622715244171717490792751492298959967438373446826344543570160521335584918062000576075102957508133957094779512096699318230923665006711595902121548683476320076320426060128283208295106123686433171573188325752519342847972052847546781441259463697909601875941489941116406822489481924680987487561529602701058195948856399825490798025575265210485071359359123907086020584708135619338753913205937035022393788487148917878242152298635497714430838112564072447124518430227830219574360007127021649401507611345366505829861655597563461379366392181493844617286895284174946434688168729218090290991763577269492564117186634778936301908368285295792493784379651272947039577109651327137449793743917467682662969329720912547801557885478107024863508873143487479158876279268970920350115304261511536587434585580773964801414121303480300665234305879202844740501234692257238385252788622351464395539793691741366874818335874990018881812449194391766114108993733893849457776698009628555266405330591146615163819413492751172716182689110472899640592604775045360878781240991082848661108406435475115971476896879824748855942165824356882588618310617005156904119458105912312246924089830790424724275364498758263395820944770736800569726472323600341434929716841450048230480383445104398684811907285308531384609770967677902627332809040844134145689764269112313281626543709758645252280769749592837187894913833096669972787811789754360990689580244963022212722459594166574864132487824409705077948521697119251305478415592526113673197400872745385173342066484555679534880620737468253625564638653560830660295619983947334061584644094311678878355400119707254410381722331934627822606491868767151911559595047740567606904800029480736606390583743064824029897716757022366488360036573439385096154068663075763572928325732360890363552242565858997201561678685611181394293810573858029540686740584903351864302755261779503263779273654539848571172881609407867028270715768474400926299799838336196871404213452754986360435023182780716394331508010153699557368357234308635135011420086210550090985189511411170522413737346908348799360829153114239885586610588016172802892915194319324078535564904883517254490003386765918744425119516756448706214322941898999034996779567698941772753040236703047802969890434313938785301961549006481544764528722161907993775645419690321844175560165785561772491803792111488535911775031428083499042844570278283933431276705232594339933988585102310729154878203123723403379890374984589856434868312784804942887698089287369743260580731704754679412664483261717002989750314699870992912228255404637180876916663659829794644818878626253156698607730372933754993152914511186684030382491982124915535810425475108958287826052880787328627135194891537796868212044244015597929582051521472040563724448699396065979511818293893224516254189054695709893959729083985199461541688244003497259021175753858754632634739253101574959093344299343207961387969223776736039591120475953012605978030336113344321023856332982062585393924797006199552648612960963756461007703486073865528653875173952247649553928149327224914248229271908078764133778082601869883749662538874969196095844116281434994658669349308175269689305234381600927709063799524651254621819900708938843933310146187297391325018535128289741475416976749821071679935720054122040337379324054754506920942198275715900502133645378594301543638626658203546713503587384374130324057035794592836678952186042478264716584230426825969116977801026867869628746086888797440632490373162613305140095887127000585076937238711394923834420939276181167111325951103467870842473176747873115961063955007372998410007811545638557747789096384269572159205093474206637635078626233117343252545186369678262559178091068665934517109463588104745834135467470371112108493774232624130459968262500232435032093281958070477656624927999011232411010402795185461163828682075392379844023354618091434816345172020319320304047003635815152623354405945818329651598192332629559987614904334006105733951625796225055208049807127181728321651179697812144572739766809748156216742347100761160211087628280139951165580611930312331128027789685023129949690244918050811780249386108372488332050175167350354186681724872762841963299114820889458594729371991643426005832718557171640748029616539478205878804856995425871711976680883061336965279507265329064258076531039553695486448158765589298830034364625287639287737028276186422469475566010248906288379519600420410350393501874438740829301139958989004354077873777535445634924626302411166371475380771067612710954002588735159984567840730049658122092824690346469923274470394467199010171549640437856232046715146875283480623078961684422584497341969017230314420369407765507223963462835613296417505879753651328464505289012261976901828583166632022985503654069954259016515760269239131966867211847159408027840815568859404552848798849583089547515735819489041539752178893454882666679984337729386732073741768824195166956898025253215057591655281483630744765676461377571038854211638755953392994108504348715076363188075236038643273174994668589347472032145527511460796207419173093122186326211378606444849621853767159960628475086411744916505051924020299957165412097142861012677956175488807200974674079722716535337813921268594064701069851329951608574163047346297614746219941165058137440631163860121778474176291881915464185973397408203035507980468452463870424914410702307815315043757371164975882999261687298949166701086145381267125715424048379368260878828821985529861052925632808190408832629442645295241181573774230535260723945861444676388497056370004272340379902533107101041416242779371139260076444367115748285244895898485074492720498190262862533897024661859504507529610513999728805472570801593306228827399824943226202754648005223812578186013181338015410470173405579581245584302719155121861886851557829894788859993651190979652973228299428199456914941271672205053486698449008426419532554784709855038376804974298945064999157436869738979837367111163441946257992458240699139841592576583870631645143539134256626636128832057676430494719513492300297563023191561099419415803531389489738555080185639018058562277124440661095136568993870211714306115909674883177738581777238533005668058964203209003703130887216343810492672309009433497859301239650368379063718715029287454067324817590249954971589477535561284701251994433478529643508476726912205742014659449016024477926944098523580329058212382098681620029717164266860272418477658962350384153603357871114926550019722903031949838937142526917541678215777080820628459867292349438288286580471522747667255911047317427735414775205302545055816718691318042685495371227654060897047319000351268321120159743996384590046988068504748902667881097229666990775593785663515564149261446387789737321089471340670375644728717184288997697217583030120286031824172513554899162310026277728266050998247456891531879316360572816046248813011454131039147963224027723231964172989752141812500835607063374210391888813979510198519588266191934023042681775055198167317371086229479577231112400664351987161834635700621989755966810310108432009630987443496653001963029417258094826973986439521373858157274703110749373536679761863659204185836216824932801780127382979034343923938791903575362789639767870503515106886482684109706079375393778374649846254010648656556631744800903577617961122176812040131842670887926225717662361368277822426082979809647656376791305395459694042087775308616050422645300235052271962501627786817343459063270299696458168663487109566587880914658007875837443865138445162341671320419734636730943485080778120342489329334522814224703783695006040423008946858060841019383149144529571695885453751954489001417399934653438938139281114466816179847682744132320891703671886650874112492990538069958109820624013583307706959339252077089943869753543221070715417926315467924921974063329377255855081400604586415479993009000767539720161298750503249146618075989947818765292911470850048619922117854562179144150702600644206379534103167556862291925118948616512750744421318588316718923708321104092071823435456159404112382287929931142242790789752307900476657402996105285045332241634928208524088021529078231323728044357923263468329446085687318578057185363760120725547043358594465631408516145539408688462629809998326747444199293315068873952365106793389769295550883003031539457567468996675432188464583580733422878910656865877001744330537896015403023762075458379233901652006328963186450041255155242368198479175089166757144093908030824630483092472705604853129461043486065448909957347684333985960160313386390661964971764052138807072589895253934112876306248013557835292874034490284299306179023597196693220563817704049834404187665091328381524899316134642164027993082627655242670984937908063683423251135660353129862457608453104690241436248459361165186131971003129203431898240013341438998080262001398468632676260792647544610799279166096611308188569801606279189095433666626023060804852127383465275733800906511108093946998424921587630569302901123985191242673704077408150166865404705280583165180792627184086141426880341435571142194591291030484940481437867332456864888613904953833348825540627521058511790215797578763530230793135076718222084028580821560352792910879600095746682816430925283559086540532538295739055529609723369695276965945523219268174933800901103586474143217879584434387358042027843728881275298356882008217337120329219545625852458001258338907409102117024745827382997937229493789734052824544859824052524560874054817598180748897658723585341121250907261921172972030842643084990721039969713907597746370876904091185136682731124116413610593603713123256435757894451090788096780837711660986944948526668049892123858233792977135012922385024210836183421332951665542752883911310240749058163612508443788617220527982446234153840480699114404338388277330191735976963794421187576677109433077464726861469467316159828400480929810214795935521716103503838525972391222131967161464407495053940098482777892574520061397040512956946807814231544761330291739816953323054441389858691034731592766704968859878205902044204239379833327517085346856324379178692167877196863502973239459742268616569280400615343930571882877227254141381638928935153577378014382046548908589636595822758256717993030747679255334446687174348159194341191754503429764632368633218800348464660056368554340431391154967338619345223780130437451483499899680241960969369024743611890560212776362498914282061681252216519116575291462419223270814523763223283206007918849318640729684663084924360304126032214196047823669971690328221642072559172873588507435183736272511509660442156911264605084690759394322465771637044255500515625164327381123791716992396397228434665188828343066139965741230833021261406626095730559098463434585755906783175804577026660678930269052760616052497820704248388316342855769691322520999544308806157381727481683004120858688932734340990826260650755675472344473758651724729407739044223731071193228118045267351549078354118239136148593053130469842128843380550177068619851481782684641544329528446708609673433261920427195468338041191186988369114201489928255694161060028493990916845453833456131074726840870326601662026005847073843227694591810179631289926611218175379020313034638491755848046023651318674094979461219995797309750017904463221369989443027282120960042682463136384197638401388129312218159818292627702033404737554717665198163076251480078269016344786524082131793538147470499850348505355215712820014327101540615092345609856876673997819580632067112480295294519783192401395578331531790102291609869547160295030671132332596081796758469822282524013028411107688062191198397433468299148613155651968520998604538356528460179629956304644851012299012800106685225666304621432309552110235814291854844925412327051571327048160784206378053892129627968152835107156029532465692859073353389830746031730861356765418238348627764681518038743074373289687558900599206328321626970256643444148935818966673338192449259958081526457491654002071746422317753487223399026321213426138325619704435058529750192086796190285136226707149729739368392835882588619532288213317664998499842682463337523001285406496600687414169519194192034076919521160778210055550883306229604764317688856162002398584357377395581755256963013885823316050703836860443948643575004377315654491307418633135482885369304532992880548675449742775026967440096033733833137443842533497289036341204629116620860134685038770671731528230724376292099653854863571428721006610307224091823896724114167827196087317808171308139844093800095780074384306000275909612652670172366918845092567507213191092038428437798751849994823094689870406504986029051725777099382270320026994576039379584337526735761199190229367828281212212953104858946368300215834622295685989369088068941359769181848517692840159413739972542202116653985229981255137608062738736598654978408418566130492167776681293475410161245697458438829615498410425375325108572312317953166718578875191681415878424246865871232055418255656072609615651094804569802592723915256577656879653887791441720005793257403913381777490499141838925435512291348485075611739720862544861465406442578309084719169815560459876681037904576812096013684458425925651703904824143779473748767096328838551823013693348213297311040490185773506862488830393965531240578118905254610622047619883394154666786506452669848979501998942662117699792924030526388128301869470875678274315544664438555062972719582207629791430581527598778564928953334526607675735501012512535522140179170795928598302749638336945789621067574859336931461470866044034551649240970351012635584401901626544726586636220074675228795089478962788270527338238394233303356061072664442421777249251734168026740413668302914161155592962588599778447576874248628477395118696014693942766897298804499529455198360498541960674948136785584240692053947731018298785078413623486450637595663820341256827769472686825276686659503808075689935906078062718887145747104080727878617045363618743850310165102845247694564507857693125128968019993588317941024387773854614587699336332834274336320939452860600926541411634000635285702757474055907033699873222291243884713080868670415957785391502329804886009954163716941860962248675804993091256677144965171760409369895291218703526200625113872701404104704861634980502486861726904797686797391779374231125247397116402552379486183902052937287347161368207234956730788399996664053155007617403760302049478112538230028195819645638236651937302322492575600846296881735392754205700126688849677472289005753782320109365338155377620502941544476277510569919928094736271134270292531318898403793306051170544816600421723691041702716124398015946821235342683625540410101593443115736562650196397431613865554532675057720866106651734732907907676302049717189723287138879460934679954586079678281724374681872727916449356185977205468492408803453942174538658938293168878108997721511321274454631264158542145803303313866072142998515856856360645087210138515766340760799935543371436558400447091667530531408970938239704855116356177779713625296445727846716880081617526246593109813601997353443106924492483468409514917854012432642956614288992291695345578733220433693361388318229919288635627554012708644475118377169874938751552520256702365336783970480961818247899113828361119210771292343726773697852552777853193749275631542199947994781670956975999447402407704075892868150022585782034073612658209152977819957722092722182779889861425040249039669286888270919447493104508415263240091799145013448586862421429772873370761167954476208851564829322017673811794369027175975596524752344659345745716472887800333492302305718279660799679307509922998837583152201269873868689920369180883323045727201679496450991704905003093994378990102709319741030113652950294857718712618200094137882045538041917268611770525476609002082240648191948028103905164997470989742297051620557280267657958005286010208589836526295706823264426901829549501936396409559823457328224627888346552469797758127203551320010376194634172209332186185112278374686351932313425917550473969833757660030096946529530820151469421340996561014905208929786729376522043656269375205962715331976287096831521679424659002243300262863113460428738013495212193004389197697183076235341220161302748122567201781338693342405261594365444081177890489876249745989713588638453034678914759210056550225565626020476111347684941481468664881330661890298870152260998365334366266695978569695731712921307260844217269708042204450956895345927041846152613888825330546770525679266275719057331814400236571328619933610084082940957370486530454149506864467407651162576523732527362918088523448046035601402646819215603962705004845780079664684331139456571291319284976617298435561674200126938250456019348722571262450750951653089439152115807609220745188508397775203328294551622747766175743374194710755351858145114637034711244996550574272134960699613403276607236421754629441741474136727542473426320527196619779956107916017618893398261507352370101199971003007141710682522822282167808655746865488250141465799501432668727356866307161497794404165298982635474398936542568153197371558364375291343763830660186401406401788004851355330479332692180445625852092595531188013989589798613303335344368907559906388569003353435784069336638919902654491977865100902305869504974640138332328916572538029183997447667778738623776178954026910663690782255355292244390218488489986464378838770306060676045731413156081074818662878582152793334134696582348117905490053182038687116045704430266222958795008676492450366051071076011720368618084418924908741626239223031453686604896468396372863397471700812072787801624289318279208276953987421323783079296908841027120879811412472624744229131168816089428236128921842394714549054528399827901851614313200169225460922477163886517405565336123898260990736358950114767125702443248795671659073472657584264917818861582383009319042495590176505017037273527683911785157064131128262794379994391434995954573637666856370005915442712177356788423040536069621270672186497903378669248052430507346256134536699188952013701956989797004301760169950318528970162647670593894889173705928376267542800668561417247976659319672711405356550080246885617483822195709812706860291897944945774630978226164004703832098595825937162391676262094752176583445526653668813122025667093927348611348981521543367705581626840044205676367685749692202810376730740397219016277223875665645602078916378900919748253614462426714293267085306095421873255715342001549698411924416815760549624819164416563609093834546357964263588229565424870712650987640946351476019076455838508528372800510653054169164267501618701402791828205272933392863059377987773617526403162864420234858259196939381850291453330552416596446037161918969629470393484523546565708567438985932965851153247452154992902344847972961543157484345902228442036951926356637233942214890706037716871333011170331334209469822844136383598761936457038133415491015661698455652427683169762228519457353633608316518381145125768701341359336127935791610554276894292582434613484117027960185241018789017745377283370216209961927140895560247831518031990837875015179853540692500917872815065663704715581048117279624549612641762887677090424070748872732550865505879407444537729968511554742737083697487023662909226243260202359415835735058039437454586025258271569647206522945570938675787899323312883198283182833971118449701827744606876822086807518814006761655720486392431251971955203481251236045635610469713650517109555904437792925999490094936863530939828405469456840297037332351801635373861522288686721618911691890340049793117014351877304972689749865823812548265343408934449152902773727186195987373732147365939585844329494879691011788193599395809263906766377047020377147151549043715347229597186826983140020525886343978647559655970923018028356219544628498324881019713029195418069122715342692745036006676915755184587424257338132448545496476342277635821153943149573409088639997257349820897325423710357692669535192912661038739932603318485924334350468262777338223521001837084107695399473987798625634734170290538082494514038957162625975492696428029578144466017342862873301706484435537719386502265662789534494051949579789625234654066786691439365032906442461094024778240019911714013291227296652075124017800134098569248040464138142321272618858654682413633836680573572459345961310781382637804148334448714018210181305662341193698038790313822244356291278157098641161043595269467776133072120816206791874950224837657064275457065254608835827670309460283532515107177215797876980466864180472564246251919761795432729875699298744988521643383873207771994323205510068071907975407235305553152361578587129063840760530435152670339271582036681820989495636354661949789494005609297791052891467108076028121029239983726061994890995278176833013447062368751481838316558936814439102104709027291707320005219095594767590151629405404026530468049364275941479080768548951907649646255061881077054267739075392782698074215567182008874960579098625906466763479928476663853989501061611955003637462505312960078829696416704719984164269283188462152257223979003181574124155169036220144951140197224478561766338958540340541481710293873679097736047611863941896660300577336042144924983473399470155703688527652071611177507227292978226758508466179698389900045624795394326851412766956847402297359135113442181476785608045905809059062186848518951776237505864988162048150472860923390134763198075120290960191181059890781523237374325776879014667698567057112976038524782215733461302298915848692646842616133180567281027566747924070219315057696976027412285637545388839969981580679576482975330316182310653039779566585904408842670274358059385643046663292373300859194766903043228229487321391216252114313377171297370086262013569839388215797915341383821246960927338815276765474237530020246802980988324483124261858762108447362704347704114572146608557098880805015091551420704602343711391659925131427959036516125148966402065844868175741668871021939165083901116336140113583395777576414761456812011676859801089194985376160345475309476201204187209149179241316743766649951064420597081194325378875603532655792479776457554219036652868409760767935988625500177430082125987428212440222219436152998851608035288634841819869725079063874851381404436474416751147332499773843779089493063169964496942552371583827188303610179596247079793246557419339312398046385860812585940127560654837286362453575638590830403626215844252152163439239203621505495116959039926765528421362655459011342259116566439809897815950356516576314221644139596182703478029505886494043560329522310886881602361871031753129329873208739654865307089939939986284666023810984779350562390416476654872330130564826290909825094699820560059879151699960981831876877109943563639926782719112177045330473241403191435515825307979528130350852927193316247520415036858013878276999319262928065550128377452955352839092366031769584608590173480280149884580070367047128388721831165699428230959506609392080373795767623246770760395381746906456259646685050017645792186846990984035884746589860868732741534669855227032422560633705311167804161274256154362625504669457344162835473917207640888666168560488976558117474432449608876587887347464007509527964481936862247836006110834990351635698251580788912800599840313389970394371010254338925784304190849575566877911971558391983692048083738736597363135168465088028115556526919549773974897266227973794708202026440803396474093980099806112430179701242690454296655136541532093788011374393864268411751599629236486765363104249898896990656631223693929900268765586501515627651382039210385768964521443692478290448398536011778030408094732116540939313884100732926359816231712844408489981991986624332950511354146256533840144146470050364946858837761089331193137980532830523442052686290400119134488122419239748783695157601830301234562956812309290781296831848810901792721493318411969573324771243036165246892970417602583183344957639395209471032974007916278617803376386026736940824874000091573949726163300089681820701543723409531328153872921279649569886041285130276527175503964003861606656180040076917433355715014392102119106011871418484598086093270470874834499299644875964340852169758360058463522903605772164791934247682500668784823043682665986621428939522337405296921832431434821148826220584267034999193822001572154279283460947597254031217023023757088975214514497694199300812806090565092766627779677674738473924154849499227708838990482942700937609850057639861441345158161803476087871465631521407881723468655459967128099699161676457335369487207014228620585902503673420542946197339610744127017509919012782850428285620160107663129107452453317026641602344118419333283660828184466768360744842226584262788112199765743896551970240149945318189184401092638962304186563246413690373087137046245731835358775839752515363212778761901184764030649412031244309260096416683684671426260095692428673814642717145191700154795793852898973149782145797518928132264924467182247423142336507249279817991712052546474899996838428524057136278269073528639928630959036333593429693210556882607116110294967423844483143255081824014162011820273073507841483684183700782737449225729804300997158286268170566413757260122200717548456698270562477410845397110247873043999815510407158289258474168227721394786453450766465980733132585442538115184183932628497223570057041936247039773026733265214967688898929749534463966936218213168132274803332321741882304304897460270500040745511511902256819402133287717685882734276388998051784209767378030616018283952991713062988292020175776249941544416069012055192922786361439106623717213407675096923721527583557791846979867025618501961009590143612681383664374102184753747979222589294698522944912678182699842138634803413798612413411611627193962845387527251559814738862473280043000828243533061682548554324725702754924096583399887576265459434645970697276112280833467570189961476711474853321492218785178677893745667490067488875025924276605870161510262860537106799073565167461963446344532174798386774616057285154717013594918860519021745714920329601862599986686707909025951187380546549853291481250054494053146335733282993760313995113730447241049762231353331305676173518632258146339416875073788092196745117899484350361832688176333084461756062342316066784490390706531587444901971769217599571945342067436765350663301011286074245066465506560076191246912951089096853732112425935332301320550909147522181390345027643907306470848369581307159568490548136579885199181672171727612451838907866215642804822119926470211424220786205925174220600640637454584445584912978274277744216118820956933172557633791239893728788170435865459287956769013561618908463716291579711960977443660355117139763446504196485383963915574699752117488058314412408699069302868311734874482695283042473266409085411939662815440838690100468655981209367999598312176962339325434707093458279259274822146788903344550666855977288346576565923058668060703481228888456940261093840301097139689342240524642399817621668607516524536338481395413699586985617132335312358494698015661311023820088407145087062520148440463683979340014806191762604691760144290201432581410300491105625996231750158522252403058522431820880608152152111563208645268132450966640163448956779038862203646102974496488846187658947753277942157227776128816881395006373688711077338719963232603507595580385166071765216013492772176181800067843327936006940908720660818559909814903024309566914285547773794009418126469945007967545904301758385382742109747737973435925020111892328826286513686625497334158175357255373005996705670099449636092082052400299316872807747833319367319749845472797020727772344737569594877425257132450021555054803847227522981120260893720709359543353701385761162118373965854604587000706269063192348550336384100123182363449554077940658648319464931577595159594229609470866871994069909059187161323225717311475462587791378597718489435798740596224866823642763879265291001364328583164307854400062432038239858771638868488992316422647029274620974468696477175590450745628077353824975943089162056684716447079982185555719158986919467483340011565357702718224611934070701441271450522496277179864132526624948572408138656302806674559684381133890023699823443938072021412464916200004199933598260940761733897851692659136315330033660963375799300559779553981181992022959745434670322077423342948697768142543158836436375579125546447851660137486972069300959833490112667811239464046325615008215734661689376747873874490737124216167931152124694703699038844553068204665472981269538077245476815435764312614021584461805561851163543230485786724550947998343009742283381160622603849337447977759570135040664303307238678999820145737152729511217934101714523228227238433574783669602725967020586827825035429683466018318532005154386841894519477519160320624439602822650222416506192763981656886789514234405507040231185465842301398346257356984752757987179253167271120564548310174486348378361754388645357906640380198611040445547093629962525226562572651916400361147802118069538497677032551449511841525313655720728748383824316018033074615117890087037129034532457540179359543882241068129963951165402872885390516821472895980356399275969598451162560836159232405416864506567355206567495039325420231786050739288145922044094206357056675858938683897144805903218115227842408037619336236628676151510759675773833882586223722970139412877834651898200796915270566374272011421868627496262706491442044762863670891517895184873255737422356641980361062684058479421573601513751427054598624569609472977306328598194070117944283871933628384597161498635753060575460555469320231721728926165791486383722377769112426323759559885686914147097534763636241553320917484064393766609650482020514081736980397124921338555162141040813712425750540722150146461052079139297038155653633456955961468756627579087867788544207669429533335046828431625303243253765257337489814629641233933617786065833432198534772233181879021068621529935733316992384110630262151943180610996900853917710633949833230451082743861198142933094167429741514256257739422383082590317163720734534125490181731279326088374122163491502262021473781072750920239542642578118429384528271923678924923533136780088002337516899041370357082063841958235119222317017736306752839883169935881533856498946175165500061057315954182602391254017125014566570733343194745841284704809314943412707923415411886693864586474554232814247288774514345737257528038622304407171578367260758304971240988040283616479082784740970175774924588097557699805933172313092425832604625692572563367815935637155664461291143642166986728057976271248093242038277539177846043339018569075655302680719082323483595386110648429040953335929846178324089263126747090567804513113968106868765832150844113255582621561502149932292521914528496696370426399728275924026631931383265467704886161402455003851378124844112051401026476374213707692765995825858269668004385073870129131185815680013886626676731518131030463114984895944402146081219574653494697552350297055817073068335765129918288383888636920110550811573336515924198780062003839392559437569976899691374821947010707038199140976072775961301724156081834932995567952870985465010625565926794403396083667391012022433409999676552138723495103406682645864471061875938194697795879374463290136179408236438533807547037812072418261692698391114279199569310638872049167146107474772373695655898355195031888814424593834705141969905304162283433029537939257504837043482120725994559835676660541283876886539105188580383450497968397860259072692176533069997192945189689787202599424917215199693184985428058998209803882373927270175222619602580089975659396254989958596174390931420922247035275451589690590710946123736707801898069592351237935449788272005756808366407938613883159865847878069418056342194118624320078464110571006302882198082155643985493146019965645720285836252635835135693021956622942975228749731510809244315677047371723306598665449637742205356004436335914505537881001970780076042240478730650648164441622001977825211819807794679716319344456794497808337241244425816027010964342522994594237307740118313113490897458368446981568024241831685622679671162765362574386969951481654173774488900647293673071112079679887196803650080706239300594074263025165287204596046415358069394813272612251649202078472361094117973004023733767350391643293897259876793238283612579888742461408853201035205291517003138740245801704497035792114310027536257581037565565680773636179187948543937881064367811840685834593611253378855968439524957123641171950544261688424096376829382993860156605801731810303727984716191580266770695022796894536821731073137795068215720806648757440063246961428012338304417190318977796886669764801808921251669395602919566636492554219874626599076099338309134523834900515245580604850519757225326297850242047762660763729864991060935892042239317557738375465691814495420368616060047334852959507354312981734605181326400220178644116483604073146910240567562273534827563551556785587226651647072131940956793640597977567036077621353633429304798913215136732591691507825868076089614000037642879818157832024659648277259152050037425027351558153714068030873258745615837741632436336278472838647935186117365309250844969999351371204620031808695301208830640890815286757632123696558524357898240395685339755805960840549025518937226852514553240007108285068423236207564913145453137243373480584797261944499484185684955721661963257298775793225567075356289328410485848629277106105891985768413247666875351542457291712744404092864920386641959340422148401131861353995791630321775006388178530678040528262340078650131290725991905532017392019449658222860526089294219020376543570108508309510945402574670361194077192290544800862372417443999390129269085748409814201612572651253653629044715321225889201305273659465255650880977318176872508714651823668115178081805670225220055283821146921736707273783575585678356905455246331222814474303621358306035026640598858469889226941386532354942577054704720683776986944845675531565040317645538740828597659264761524276757799200981698175575140753934592248127479944169758698934682125151391208196547644557921760325787178829377458655742997856636139649559974882274930683008344436429454258845274478928254401266505345362500669704480603936021424149526602550437905451775987641522916907690664583351540081657465074722412582792772785900356624021771973055639304750269898573886990931676356855979217803202666756895892273966292997559307577929878724444532868694334960386005315935213743697703691644475054272268419468744131811243454948618257295996218499040737409884231397951537193354172497812443865158056646230064697051233032475808750344919831794763901229638152712229600125357076606705108530624628529286900661932143642757623163830766410758219154987581182597217058154511276730123075224039872225140330966196677148920681954591573217403321561502548170439022729889477039149459931907210395237911869210761123569757610093263028132458728442940435914491959373893152886578578575992604811074769539887861405171483864112456578256041295441625040564293302707013481173894866030172075429590241577282171951529363610263407612636879182797877595857011438209429739248783936597607347644564989656648590963573948407680922075938852123528910440664819088466796014630756884226773539110272467524576688254480172453691549233346462924501045406392725282554861909043032754850200928167763035109276151491764654134947777722154850509759335146214803197830184636462762449099650241261053646950775126250431463977713469287583574715781798280993907122816328581599159243892131990348549401528805549216888967900033545669323568725139999869361373129666146432481705699060200707988830266232664493523673136776571262054108922389974589477644621888340019480123723793811566976065760836303399653645018973490418910577929927089211544657713220478732769852397948674461886246438601226576729452775196345231574666152558689496628396853997676181338139575299543671037627673375161466615905535111215628702078100879386351042465529572452003302859483438352692486089610496015316742952962686115258272513021468183010154741459133710993186400393809832539679929192766260193416918208558438861375246791956121536265592372255960010752382528671468278848615858485842320339856833016517169386712089586906772789816504006659217290184513403146570963832005387160569139773851419270494201162682438926224358054725175825540623037324241898061991566043656896389735398901545129086853344041210564871544993715543211289518457140273320456284020656724249201751757700419479423514345205408096909946344290643532503218831354948351374314011457703661351510635701069673971865024311284501918820387699210829107314464054016367050358696815218269509993158515156186645644733178907907877575703802266234059533851497848109645993308803564928993428881868558741851980612652849772152169749209638781051319949036566107956306356218884781632001916052628414729473949814268309808449776305753300232582158850737710031748508814465752728489333746539204535523671166466643039459682557716107106783796027899697384919265031257421473294002088259716132136186889784500215376545952434946333592511280920081996321600210986284886013023107592373484995691971097935045909272902070897666898914115186880115313105013024560976213202549702493482981480882161879876646912699589300526313515894239509420808654797832097822828177098731670844676803179975445313979285376575006450160533781634200496825534016992965406188263297498511431125446757375426673281792723759213941526346892635844387001083854106540707503667855499420914780725172173848113348542808431913644726179427086120384517260922279138771184408223231670958987236416152613685330576977383225123412376870644376620377179325691680635281343022690406195229203899403221085491484417857202057197058650065280972753217441709460864043996546885115370767883554444896540658084878671354360367823528289124675340972661221908225167724866746248465374737251523409972352779808175862786846776807111102230138919119354647033895423224260993440660648515593622213494665052245366972812940127304790265656496065645068689352092569069781813837890071810144127512563564991611086598669931543687124237852426391307098507292975100754169278694263011132542763432285148632273322772885574129988525565667449282053236796379889675412095588684877396265687639187746045210508113286958875452486990058618738816561761454542242107610899726035521956815471496799707802961226274063659870545432560950687612993674920067452284350045852783990602043140888976144891317997231580500054410728557827822905215256008482279677787615508990571610221715439172108619065313685368379126172660002156004826494968135301315268373080326812741646917634512115045369889881519918661093226308120409172183835771749103701173258341495705313235007470019086398441291836371673614947115231741098034126891357044396512417693191374276751820028058959295139771266518305956933377061415504906292825041814346622099246647588188453479178893337588848769339129322416637265726574931187202099822461926647684767262226237656608454996459253305120747164932268284843566310659139121155642778675235960222646351383434680152079669767522394443004310959717797442754183101744548325138360238057135466291879859614596136162292367232241315961852032548703026521587560541627261041698815813052222144840393611720994731925036608751611428340625471596452632864933315628240666400034092179807520735676359602943722766146238456733950002919840704346306349607820420472678515661581684341467971357096300418020008517092483574226475123169306853640506766885877960608340986819000323598297155233754020121769746158037350885693335267868830951784274346263159978076509396417929397375630522163409828748970344389129541240374950022718967476222496129897371358106287858049203592437112985322153091350251564839066541672597741187435573369712998450231718765387498947361055195771374858321415141927146418579205378406748294108490646667695919044161582123796799018826731250449482353502261031650265965854363740766781199100600414125227062026696889393607577475347082495950985159270391345654220245960117624955271853818736600578988353812837890177910750253752628242870137689637024823624499360032904362727701886793636046396346825423572715487494713721436491081258456377728518494409756581588164380045631453215981204331997467749623104311229483158524231858206085498236515067362132994251410400422165942186882579731184354464234454270186066811353100149208040486932048612476004696592737827703959532661795510553073340929918908656058666831828249699010339195825744813447410660446335059811874232556557342469966315293624093284101601071000536763609457128126574608283801111197413611076412379827856543962356988885920386061757952357177734987067199547704865628798928363443695178837269692674885819122213381478360713051696979184611263077409750906070164075552117261381488087955706941011941325104048758444118249442293995809642847164926134684073688142426010558936657504330817196397823889066380144599270858225186579004196555802438970081630012026078738735049200717966033125904265475668316967505496931745583516934135388406437254241302274751354577096652272590730720036884744282028439957363905961959862360126253952937680482496852394841210022315404318927323088440152959200690905580076336281753234655779400222154260915510093297471876538407951269359369208795811432404737326945802258092267933478832324070231059967914909151112562179542141106715120505842122089532762901842492589021502526470180605358419739376206847689530607135251195544041220662284751821257367158349610012504924774120366251372079800500491166335284208394167974109229703666852714644457099452606368577624981082413670863093556920420540132779160298607724293817529040586857363881171488517146700323780762152138576729881946263393241791128559369738472033109795812430327781547232797247401666554682806347687230746512220408396547818958796103199724977862718094713102914476281182305478392303248276203019881271293772963339896185552688909207228092447047789516455709403442309486103688833539961297601249444515571464116815106365365016373309905544648811823642569754355563662373676022368124164593829292945749973206356770028625500989640551676218397057815614009915570960847283377522669756916742117510663367715990831520186458283903539070117152217537603797378301002608683183056687592143554386055960249062713717628163376852112143798529316638860978778081041962205782242782670686857780258282258799913194139754319293928607577002696318714793398396800555485519120244368774303701581690844277506163734316364456375167991239108712734324078418820195181517983560663414016035690360671143325467323120962563472681536386370162691211544498408018337007384591931796438299812789562430035494920053738372501192323240468703754181868284346047496475117361307806600347370861196202567204050002620590118012985357562156864059866369059950016381842059873467005297074280399566281140099486793787622308040894915161496357357992847385190572485866818135659462740482940401514572149624689426036639225796794335674829624142223320747010218267679562874914308067437702121778687217972840577774154138477010240411411970344092488628400506138004766548875616414080735827972967011979041216350466405285276021030296693049333099808503436196847783692093092044977723490950032393567786896276678298799403142970980507262158453648604864967550817204682380911248403870637408389828423229499440509463537237547230343323381743804584701135506424521980615510308118802434569589478738263969506571193532122500600382172736972445343549446176044451308046214053220812061943130805842552526665960611419654854679277768597476385107682018093871941398314955471890584737101338816342393998580961799767352978999224154895274090468497253601413684118550003177239034465470008366914389736203908644877632491957307036036542670399754386003823904371893035287380946866368297826412673408227272758516629993744586440361249737079791368334717941150401560511776003638909147938648239069225928719902561737076497284029110711249478553968756641823297545853936459227793494227488479743782315572775629796242614603548613280468373648820589594432414326136866042887240820206722146880827219824277565572962734732350857226264959688540937797998148721000621231361622344057633058711561639044849435433166892519216045838823562042730618225419614290724135417126917995644967247851982756138189758057657041792010659387332168720559593205184770287901577342340802644472389672430537912676036543959844119319010165265241417304916397926446151651891125561273754886149429271292382523371127866113535455355859321818299491229924917960992092535254719331686464629064191284787602591185096323788980010806088423631086549905539732591936231451354996237278006482188924782068182069692987381986578736570299318205997948106643961742535818995075152871427299448737589608833228377342478152115380338852057713511980678572252838475656305399064493250654191097081021339873671804914130048296312923168916250984049852952125817117450537339330963284438630040987856243554297278575954806047008256375889771999560850876276023645684196555933056185019694782876953479556680982713040182750838559046765911061341682246585124853348812898541734353802522141724229650020534976443011058887310157993203798838663066845244985500875938341964232502319367938789157661106958573783826674099273701079949837547240294061820786367466836006714706659594379949875107088063639717654381636410577460202422371824246526564153606194717724342949983793046077160686911902353312370225981504204942309240369546836694713993617340841091172833250992243894019630327869269614051086376775679185094916085721927945198473267202726737801366146288669830620193917917781858383051319028654300353282847715879960886550305155100161190006845044171217710616314698880967313596948101141330837486470904789923830348544561481530094265329880514093363144511574351308685254663108465033396508009057425428981673875515806256305633157432795132128272439098229574530289290972880184328683535118602999581700239972130345108622212036374212721311341913414010015033689108928600164844567688596342661619083066416876965990028350896500167836854175144875036252503312168809063416633746255907960417200453188816662314298203507704727786242284697109234332256124781874423601623307245744779819110728494437924947762731762784369324450612064365120336541182099563165461982358558098460608705182070629607426397530677365944894394348807959322153719883584596684133742932788286760390674604761575943637545281955077994123426444722296665382914646898016508948550355420006382680360377567810920044819552982184362132825925756627275572125821770053195736804675176135374127921640045177614788093573879355492897272937961440794157468780048014429982137020419871946074550133449405113513716743608279947257929979927606372120972904844307371835543078538357931796623544463161771090747752673952771719858453576622610345431577444772632653080320667490663714866000694809152616147035456420778083167154253371948176994896943751580825907141532647643031960374824606252855201133751039381072695012175006086285917998402549899510883311389753139255397949825894342999193400250058380821865889988273753557088773946642760195768353072229458226900934859831415278640575554809650353241289578680305895221993392214697215490507078769476523819047758816806115601575623637355324069053907322165977309931145913985237358726412051687234636964996685676091329358446134771432650628745597619467144817216547687625815133645321807399004170279929724748913789133264640791048357281427607976627824921038005763371516396153574825408815316736480486409746969505927373222244344977130745243266306892309254993084552250891365112744402690850787876082170122206442087594786884237945120898572123109412624175066609168963612376527508553352004263769262099261091040775619426618479459349576147289453585801716538889846851755896225361928527241148449386877618887526020597651067829551238865356439944300566427598406754685208052289882191619444488831710044070131842721076448702366629399735756675543882554028854122025458407040587773065239950792279649080129284827681120579236638336219777652374648580366802010679871112135730975267175679014792179122301842374722824549407323536138411210798810927944698029244896897497831391706343922574428607299057434714148275711962178287836121671594173093086076921104710009554115668873368756361572643279833913837302344774905543677811321196570527599710194344348730556797676928379677439899573527962399067635392600763050852571543948603485513712150282991087248130622770746392140475391097552599916306504498956477633287948858884429248327063256176253427390975433687062772134740941846977581668532206009518828613456575176946196193343082523930130703597102076416299968643850276811964125267580549039631357859749407885714254383779435416315160488227787212106719424674331831351097938233141355777154512420132421224803755807450362755925435727723302229690433072551315885360169679751807976355479459345443736813860262513154328241557341833568669714868481394193573462157664577115995429489367635113450646236316730888757271982504726263999165290254906277752808693401773555453690837578178310000637682949214420741222630242955646675272912675838246639630548237958775590075273343597756367301903584815843315858876928881321970623010682159374228398658353226778759357608853767808064820825575064381502193794791664204392816742911097544775138357306323490710545691845318029804943523507272191730842942294970617222952171744738082397672751988749760795646136591837150979785650503068268480986249968227946958796594012682696249537523310358226060133691907817931920097149975446438734044265156529954636088249279246579971532684443960087082719201436601816329267191606683054072610910887195995077980129387775037937624474815091073931598756327398741685643794755115327085801282923982476851217449593555307819242875881778813182819762637228987342384688532938123152289617947361332036685345317324155686279530156151129528184150158511511431683584934240190343769773560071209770662827952374911293231898768340540156524373577753881074476282921424819600165589742609966633195605022917197071139064640117304194856831568672711410375585525476473774338456378786047550307168732912634721181016958801188904971327147648275867870715857674733222658419840662622226607158708039959320719258755039979420902035969218944579420312696599861824253947904477736895674035344179084287098339915679583979564597412195434171635037438306578310432721630903814551059758063882431088069960808777985009776321809121970298356864688238264232553928744359292496512856371296775608450725479003447285239339269418280138075442490683184795789347539478683456251880484265226240196418059075596001505367972069417961305010550168126986617381245859389274724681407701300860662304315366611553858077587475826355149110313698413766515529941924084833702658586873425128191444920720767486724903450676184773192586018852981576376056698228708610060480932139286555425932310834892569113040602532718450727796017140639790374358477603643246929301638357258347825706724552840388522932787420174931615905813424622155060637917740005615709766199843718188059134791496684201705618791971422697511530849003595387836009110717220165394356414813883432152533241228805086433938634814981298019735320434134757980848251681151618878289176202562645748162810076569610918858889497582448085962076922771579819628108008144034765236740805789135811117353990069455040419357567589271379376083273048774779676609386035623293012152586815662939699107394181959157387872697928711533385508642445306223538452340818636817005472249410849427459469950979453286663013048081489213013633210010642117678694587463120047613202464297399987155431925050832164001739269578652430139926475381686850013100624303335855359303850558063719202075330237975889378161369557242989189827228544704035598925903219175628509703825784179389003406697851050841486711495484063971820634307750256619584704995227262508411233510458066104998021823846195466987727927218970266714374170659276633391076853967900004477730481320327015347110458298245593067846281135851778713828030930631233564265084575085888669773057274935656467745695269623608797274721330362979138350003130041201740344897925681221863193450647527186275284165131618941999991955517011296646452755774138324567257245272860726506718973209763552572931512175004516979947913856118013246029457517584784945406843441953898520665802359537243583104220426365686858834892493117307021457890905800916532030424620937956964703217755670830556306120179848631993562863042535567014199957217597536291944649598973944382659067935924275260742741214650502398340406047274333835867496812969763091583991298813546141212500791449036798061709271283805134761392915023154053444105978863796981674473316000670030152237803598354801223401212676438055087415108320035314220048551144813544202746676908353536284615145584282305161618793834763083907056037156756739883194964939544584979121274541296774635191371101644550306111981965750695019358649680502590745008425729142401492856761040388835123073974684630033114539383220102801293189703775156419955433122954386843160528070175010696117089839057256010962276470491150961561889783735615004102701988732429151954722309086430936234536615517840396654543438461104248778719643587174695171009119821929396370976542483035113879966834291699014310246458143186640378539726815108369357253552781151171267482912539727279858657829413582010967232458384983032534144388872246224012203944701908546402645768360037001803519072089735779936055615443783785772129215270351595355097435048282207058883586934330652324499761229818665505357240521514947325754725795171138518464939505124908420183752316874534180317797483346921128246448418834312806077576192394034082772412951524515333143017626421067129084482627608093743908612598107296004092307660532315110110561944563404244920678677425920150576295604353874426349955378159986096679528026027742739318058904273431871115655189577299981577700505630480570978069019264093695423360862779436492328271155878053064820471717227027047916967835847204157644009482246331664954487841712343593412936032272391724009518311881287904732846340502803402305813074739348013657901374142942933334276557335925605912406387058252237620268427624001353825503745452282977471914488986425467573209972870044713269599819235191115055031818398956620149728647477488727619606181959128199038140328794407212197728089363729825810384294706185200372561764444659814688647323954580596696938072058202038573985647980506622537274300004173015885822996015633069365568185183497448587479013583513054683990255022588907046669549081730935764576318174795425581098437609498578256765031137464638353014362539650999250713695082340486265054897619434926994159321539875644067957659993226853839714168366978152339725156171035237900772763278490358824063419885326907838075490842860888343385921602605870150306395858148186641959323249107504325229412972619580932340316313504033725944348980674060365121207452122359787782251163619246033217157330574755991064570290562563748323435484232736563534419945715901902397176556711175901261441709816651072733933204701432182274348342435813878965367167862289492003228477692659931440455417970868623918056995887078931048477219689083346033943430242130486931891666602041331354915832641565890967103917547478295575784406359434213371396564207883382440549742371912969878366514587088137507715690588045161750973725631368109886952286798495020462262718334575259937187017608779067996049069756836853416273499443915629346273337236322746033278863302850499758803214757638605751741776211734738717427034689105078892673811847037753699069834975723657277871844440941291760856243191975217548955694137596020679319057271659143872789049955929229655722814669562806195545006018977253762402294748038779238612856744852942824386731669819634935446711544582612297361042923963365196215717853255157891624682869466815227207072119295928623842716546733269938631728913816399019898547463726795391284182907160531507295858916148572907251128278485288276918002179736262898220354593401060301199317532480028928112488603900201071365335489609738848917436985087389356599510871280696112831288219096037769351855479751760100414498854249337291980823229050506970010199401598133419475457493312260612165586299464793356225205896489931632631005206214259360260478680555671788536267157469939216625912742676868400028528614947294902932259989333421232001467119723984935537563248318352647141612073554125116615093926290083577646277235428217225142066231821149123415497921229923837310776437898082912741254724265538051907549675454344776753477190507508341602803659006670494695922650235486021679018892354828115234263442695867707303960245639940571761313119577059446964638525166254016789969675445236872781790294502059854495969030066931345856076043485139707814265363287548356720240797705745301266894413351363647716727525866277626552736592217946804768020825151054285457490542228506626011960429859365651742212452274471250874959193494658411017855606232870403602574543835355831647391681502543648892430447962954732268623858233748236741987378517531748205288290952228902776572359114092862718353391400691241175769178907881250254687183090415638691848775218294440953043639534114548253744775260414795684658666292353434334469378853357469325975799242687515497802981830193312854896596166808148293715406880542000145954647472373184302750929632649072339854975917037186045413336418331232144701698229694590926215103894735706142345861755970921493362014487190279597260173736016362258141922470148669665976407875539727447881920306513523525434978798667889521837240690048256238810505972407721425627133241432175823386293014612057965065535971239393266047678313872618000317303078892892500493770039960013571518275200070038813127330048799044648840411547478593205823535667415390195990469964114892575258403601712695697370397149653151576440556120851495470226754135609992239660011907454270832583619486955844908760891887275696126966644889849174602038913853785146987224896860107487131471970878429356028647635128715933867801376447986659407151472927445365787048929955867226135074446523900380719549272553054770718809053023646293759298493766232147422772624351487524208199002382017865722600038076990997257222593467704349621837821805116846450401782794900751891969001803749064721733012142632382564425665974198662666773773836876493623710439819132062956126922006574962351842394069166920465340547004484799348643677101215387260102233277005156827173859127079593169222641311371791051788255021331260463202681157323203538573163493947487264315669449578280480404939433678654304514183484870242729634199576249702897179460118261950820731484307109395714268950933363470238722084959192009088247314601890532933489138493747001650487783332408358854809545242372492185871425099847356481068697652009293315798799562338273988627319779591012226250824841275159115319247951791069916712219854543048819127644861642957249821099419851283774197313065739937831720884065667816934175970367028241540796677184060949984317394977423038450904633616898772037680513549485025315885501404628778348534781408230017041795311287380370209002713486568807564947264680110234917466631464123056828758631861914196989653873424428989617723608064092484606703445153430560667806621675570137130065989368481188617389321360980730692551625063459453408248127387522693602847553244886755421668845736821532503548644213938637685232987343998677867415614779233346771380690480793274657863133626567259295358667774501991075016681873718549064257053674194126412180607990513466850340577639632535765022077012100859647068168840255479719371053186487995463248651140193455919659959892981839326021733286079350514000298256325140208476503740638918942837105694886177914704527598978063619825497043605445743668327982552233442492300202032026197037911276090485793144738990743051255281796138725456905985343388451634902178277289220944412010141055036893137580537158459044222907532628296844307099482704114695696970972028376360238283667950470152098146987007005113363426236036680159561097010354370725361903313965383218461987616616586387147678214161753104484933999874154018576092812225318536741170911648316999504363404194260890485780855236092814127022742107061803165942378697822133454485676742439157535766980737092804501098498146268165327373788392559640144280981650045193108530483274437187743325578269891228641207585070909575635201170276610877309143924028423903924930033201512140741546060560476635766417807915957061984044419428434631576131332432723176960482891105168369449636147194848295557806579361090361099624431938870456707578687395367213638901366349784266088863383711197143863277829375233556274461151380073530793739109800748789582152452653842233053473914280656656061327884213910393485329630155949417631581743909756166473913589770289340811273679108191707698815049301534359049774481622659022977385121605962681521956301427242596345323206446938621617607830518555511997530165709374027308273776058083929826562106396626698251753664703233687909192278288290788509929766276091066394090390041653167971024751792447406327242066704916525798733254969123096915919838773395644132464501615805265088742580168709649988585153743081551356697733591527189584076430024401687152802434680436465300249545996096059873788833842752602996586388356952962060400590525329111881721694288023354228449449075859334801108061965278310582538246565762435692176137276902548755426186050474986603528117159262654172848967946045333739728022048142204520297227853566783710362086733238833241665832007200375872397420171435965675286975009776282061376649367128605748632598297743301965717933278511058481406525852193548835587220856721533049543612217728365418187509599940994566510678410859627497153104873379900934254612940366926761640615361319951947361410458682211193760277537172726093205303484264580528103845288364571338328723765521985893532407398451691772019591434602119645119581393489339847941376436076784351044855563235954161822893150234646661373560656496919873715983272541009079999757821468359477681066109820466943642733558336766138596319710857070596082498570574224776440783057335129997243057845943692638474606547457530845865251922663679284802019318108721947510143818931703904912024133461063480004647493544274897727510743303127286844162243899876080430816300980373130446762328475211909471245827526383006372989419993771259523188157592826645233408194195499071840745968220778537102299235455449892544530920384557897040016613831049588564978139257311244995917410925811885200605196330304926026482673912483371613211927774162860205146698577374441094586506714210803936578489138708021147680149528667995504782108314888281877930715928563404365512176606802198757814030856081057431598147897684129346298743049709299018169018375491002136541739286723320280421648456955142334189161948891101770542644766058132869456266425382889500002630479287353756723701264867151521898564806244400593883397751378126551383686238467477907192147496890694378698022433156098362681936607479437833504286576372427614892247117022414705532251672170999173820641962012657193364719061156184893840746224433939678140489013585420594441696555112931870127613718405892227780973323131013840454600033535859717542183132673935496751831521756390056516471238788198169279895585185241028477211446325714093928914254941579982026125858867637702430819194393931274683203107362550587675983612937486385536558428279367378706461458097598855186986080127507157986010722414194790390968763740882132302491746210214344105063287035856391606798710055787600103100179238610993497630991124183387694184381316204986071102005793898771045649488302972867150294605812549599560555155113491289623385002760836078459216849610602912658166004302390538668562134967327751808447054006052373569301037627691793319217372500680514311585623266939901650828574031605753674571632417019701571694092751138108719007063792452855698434390793843398621473340718844468933632867643080707990843947342507909849354452785634120298144216353571905506802516651577440225171273694655476681740865319658295336405245704433253743512541960619417458415996476523672786035136807310384832162820368596317890615010886560024890505542564722826977972656307807407231653973997882898302601540468520544702941652737367967609823019913828610675903148724264971341479642408007529857944830227412730325114027611840120826732853072812897529294712467465747758654312230301530636860674326622372276929601280289066179275536179962576338900251324591028652152401806532617666070175001482726817299051476996227694232207436483081266948701326841100578140496862518148173601582851792754322356832264746693922240383313442605899718341284390140466574623264100498458764016141374374233020819620459488095050929178770555851164391083287318630683862745782866932276879626213513371169764007688820037276390643812460263359402279742783869394284098398566705594563669843995130623777801741109636859606583093880960891967191021900939730206612539741066132365179740539599893459074317534532705754170981963634972035290543978898961682215936650744919556012121675808365745956528703887854237920742934467793617143902218960213419715515574316084676226499116382077833956190263233568569873283407850271889222211645356706050866630274015516941594954438346548298499400076286066772214879382347981820722786204226041768437949666983002200996798115254376335763054207743095043995707637752001059341659149583096897677627182048742047783452073322897625115464154819089060082453618748474933567202583666342933809661484273619366682380560979005510421058759047318013281773323282894782360655254487214283145100249095395565630501665490195452366796428714749953454952445803788149150414723468921265805551825353667282046223471920417834672049225395404583294096981102245633714488577066637100475495906816146975083955578054127876704128096611228983557173967684195722946100923735148571549038468625937855824315016297391069930887317464916014918223669200286914885890511943284707290934354586084528702536768666052082585089948246198823861066087166465095119483743707461534263508606990863271071984116032718970945870610691967252636597056936549808662894219723631775919973104296935752568489920648956717750583592044214974454475045173456294085863627630130589120789166526161111862224751545533858164086973101983281220941782492104930618388198078655767174851196408408379267123514539236947521510475691886359735408561026131261307005220464116887795545748186666806503027970177768489430944583900063187662716215132333418156120492583716562050530043074454342993307003130756664397381666743417116034498702698870809154859816953074043705396741060963425051573176512288410163382720053028923403398376216775099873599381037297773040778051757852537419963683056987209061237053142978475973001197794569411122762817973579990697996228781489567673825087683909565861875882443727675196025815261764359538597125813538009493397876447309504010073471220659343663094402930043247547042799661342558286343471565165885131974253232714451100395178651599057100751695615191844297824395411286645885706344718273126985614072230341740493049132136814632662974749099516236442916758802555697573400311583630196694320371269239344319001545501470543833820122291522213842486821155199019519870640241136662881762526250824900983791602018041168770490335596408177520744377537862662748323190463784160559357597758038714858743992977570300691513088292599423982847212816009781514094642206120504240699635554800819368079141346443187891000345797324779627087644578007623349593827162493460523070283244162157772085755906555531848566132187818537487696910550673855140661817663243340301176731719969529064450856397020370423949992551461854042224832109130267499592369231643415080227024968924439156049790768109395751457664652695103164760562320902053782793241085125908492545106799214829978381973146297281781399361010045136394241267414859055293028739458772274230719010918824515417476086888401738636483550599061126426224250065088436876510955375154328783691570856955916969508017324079373502317287404165287948856560508010098199793049164776653838575032144866999212389110003329502681248334824307256628272616346813777817394071977030443446860036117017782691595547564270113982610554501977336523795557054144486733968438532955309184239537478598850511668178448650369654125429329096898366433744663327028111149327270311167859159993159289948440180192820334347317365377011568505103022128041096930595905058972828062339717401812208614381666744416593717507860697770773621198903572185278041728087436505590156079737267093844032996480544892417244032358257320322898039146573603533103387653281055022528009748612358566988926736872180373343269474912049070668532250668603089915813149794059293853025244006801150159404000955832123374766198070907822888363910238682088897120888061833079938962989500224130857816474882636072681860297317968914628012780345173971210368345527380777056185819820581227330753634622302176238046869787005289139232762383754425731386343260477296476481686973539476512392803075108511983900308168894094060780492474235053605976662008037569086813944207956496116031374500758963861178840884175237925020932510661843175026593967548671909233886802479452538651586207051925648384741947225680452338863282343174364268718290143226954411755491334313072367549803717988669079286044380847384181489362367611832101544153997979860707941816629687465927775257136707376259501635640102002832680890348151111341416004941068387118125966237317534813215071964691564562060757626518308565365104408472081079637805362026535968484575238010803483196319545049286915496581963188161673342955177644882216013617111724422577142146757276386048319038314531963053316711458474301291482198483446412155163818935487842231254109949392223808866752904113496816254088399128955629662025606413392815386419250999522834479246136773493687573376225323791767726714182494346193991836094143940249687256118927934089851387222348823393775526481950386224923864244360834463982631292244314473184669335381617322210652414886578165019903468664927986101330580815229147802724549019871309391924918941543399825529150687857140712630744546901149963162076124710110995367452137809263547132902755919536855612545667596214120930980234206317107065027886913189432768819151644769524048589672420964196341721562478859995114918996564585527694244108192719699524605530421318338587930745262433314214099239258066356682825951184179788866473305356791112180286020490820736111436906565673020499985029146711330747287430580293989224136346245190012202371023831773590746776518431768117934540449192473449418510875670481957584598281941017432363337249592333194280482599268881513222633354117515648970007861335319576887299236822366010068966380178989953885091756375291779506121726913284665720858086493747015968663758330285225133581950416483761475933429308221220125255714847405103323877258973302360777560036156519446545185420527139384233520975389227850483797877034762012164106555432483305845717296504446280742526656063649403854769144137591421993174996130560933271845223522157515188919143126018760287034541477935937129794004603770345690765219848449597198678442052142530007231228236000289281176625755829333016895698049621418651188125571649903953540706421786576724701465104729144339227761634928587355191201830742939895256128899343663806081933694840697507622262598361512052836792849416829213281121275117257827410105309519683950818850975790365379194313844397214843561924578196086369910072561231274720422545211084937627716576733805107070933228623594512808519020020359257474688624427597639448348867857673065820669556575521179853458751587931701233065998521621948602201743572338073691922433362370493543563906714862715984682841149049007070513294132031819684043728475726835317376303915452508730721935547656004824162429139028223390061027952940877156150000675366388252983537179293375533850394154665544294010141952586417777763305741875963499426650816652177037401579771467697213190092338118198061041999664192023466089647769559833235978640664740347898094790759921864674161761111832706736078837326193163891141323553330312405908939612623728615675531028016431613190704726100221168484808384226617947644494274442237797458921464940923318912610972404360564047926123818254197063022273741606606214049281141771490877513414071921502739697773931191610406185804575019058995207997500566777904240732840090335303917393277662321936280811084088918296828657968427114538102297327249356815537187668314406278159653086364917050742584421889637959289543518018635224967770536939013690486336353999603960238653704859415936785121736152761057791727881138031266642713333761829451189960260605716335283503080017531747867958667752323530062938376019361184664798911445566730507711523961822932274060724759420367585775166203805711649817045080810625703182738367217437005623493287320702995846694869380053702084825411096717716426575336690184047674608864091654078238841537634532402287431843845465492800027730681621267369675283255477451698904316206520956976119335952494754808697272733796229223692811760257960775309996808380682870604741050051965821694093524767419668387075790529328917261150532431440732924631224793482112705118851520007657582628623765904949844195480948409783885798208224532371190129788017288193556319951820532401680795879213134365591276866226193574636095818642675936152884659784013340668036572414302149928502616821380083128961050512315184265323055839584748144271626107074838056429396776925120900801773227494300334316414160929074581443330764790240476544946255915981920543598586883256362672160719515215942951298249144738864876469925501091904649850639432847018634543347601978503922127106719692891454587664548943673905414625033072607102315598086942706427415402438615247207237195098416436743303601479539477371688876194711930572958673051289815994147942957548875828731874793586487033268284962180591432031979293207624766508093826447215657739088256650090618312693843189992053875509712179937729378115782002244685872538930004964821954491904543622078361604950458907948500542527419066997529376287412538208881008501479817341952978939121549209495652560168309753527490622028838827294288445306169009425179478641439223621332789391355641732286298030859466278387400798922183849996588421097299394083098332892021149700475807863054147181072003232722016236180777861682443700688259527946392932864572292106421755926597515328825764349190861829633249518997030098349661982192486315075210897512700172908467923151243692638635135920126390834694279465567404016174117091880270068364174084658680971881364830378897483347743403026881487039708470964706241376430122252835757347146824500620324471390302472790275272810455789545418000308795516159729075780921339192650488976229229284696694174931545453532174920944558645404958842224125631261402515781916078561722677968212148910484137809634589221612653696673050805659912506886446579997198027757978786784664386489352391714645853334952640600206824804805877780553133432794753926493394333005029200202392108482719563411868154843710469548098203117132463560712174525237777881781251872343983836358193214554929033780471296765629684704852116862424711045258789815881538220410373648521383217504043180615017111299080056574925355148261642599114886666754193916702326188355831681457193651870051119360511342561547731894362221555394661333386059736808680338053366701711690814946548479527495400533344595760963556776226254457387911628269402418773107743650712849864787750638274694909526503558926744121226707257827365614645770421642374838180695948376610244104477474996074155476297660870254655959669893729224915236260291381865155514036875743350178531896396380800801538174552295518271326855373120132867297214035796612689028646415391843110873294572337119371643908153349134705937548448731296129730837549873343279252079613618608358945849760141727525471940316342387361500077461564203467763023479552565592360992059299398126199533466362528367465596446266879268697251475798045782907592303658823111586325406281820060342576258576949266292830988995943723315137329531820644302881491868600932320698597892075497365420935998340577619673243673149076327611016518321638612390227221864949502071799800114021820839529697027881941406535376536505809870203959171625528984997692534694155121980233012477879451409810829755173267142363888032827544866866233990540471234753881757668698331275698015577622775846978376768499751672233409747795404439736073068901866291921295457955030627911403896012063720188480967525353276125651323511681625149515878718518645418327394965690733696674850303485395901818512522346008936882289675450059279549175238081279178971806938618878373081948364224467397088104882865225986182914983688912035968144392261658984329085654456306030385027860466171069509277739253294709980485060592568708660450099628810198732329252927383077842809235025248072571515278605782080775527635979034154190832976455246507491574070732948240204517597482713067555834364994142698917049365727559152858898859382804250303455912219451289795406032483643248360605129425816236809312217243867444799600820923875788083490148970653508192080840530700350235744921238016702270363364287520468692331069510589461356735258343433461037855359585946875355663084140914070094796288719553136586066814219212852734077387446990814479688949552764096434342074517944602404038654172854603221194658035496461320827160952824265524299893130323084752576953168894138278926194548195489321687145823434734918390345645371190698064124012627602797738878490591394818451137235537886676129072359393058177821041481361298360664879673508252278646025129288252095659244351264683908542562542508568422242452241310805042962341108780004141055104109895402800207789411822156039576399334312707916720154354100611572666876413626927836133980245794585011497514115411800845130282481921637941733885471633145894189891752991900206963415798832749354396773498989333736244630007988055904850315372847706099163678154408614596120217579752002965971685851614689059877078873715783060782476571992011757998176884835347006341254155105057180261591106778271293320567947121929697671690652182053214744565468743819470465278745298698015104011690248401714221841898860237743838889025458581897800947975686527344769719282537392606090803172568450338955145755309888707977129220334964465904566568220123860457002832177142956825906570127182869394969139686009538384797700950948862199309853008427995388587348286452470842538855290853052708804717021977197101806732853605371555699407063582341475870991411789268882468980771532472109836470047886723474465140898114737067879083971163708278216444349359425926355114346701047252231602402855818205465421678425605812493625336647854220434119491467545908400992741391939101160801686817759302583436738562973352878223971311801012032971396373522115909494975792715333347474483528400164741910930644619805475552952828505784134882057908431705845268469727537037806675112175543045091756052380293051615383592220973526215549260460340658735346965419659268259232516338877642237876248032940342577147200781038333357433801062039115254267453023868315749423231106406736772589847620942651571543602602820922611496519731031198521338056016751511703703132880750260302303574618571078265994471564715312101828127160334514663279734571805960154156349978889841064854448728263844352559082227851352786492745486052159175737650424958882613197484145354576111223237234295479285791859924292015009214632479805611074422579307262701162466319648235434765373186596473891908174915194736840962007459820154326009594455428257786481277941242639884223090733947915638473591309372538963479993483882750257961611157682866720099187487938687717928486408773590871528909663092452561658912143915114255354640006360520926819689173465494518989277316288935627405757381731633206477914498991417746008640266740005150664645413918471822959281277939462588146136573396084322830583896305270612629868075204427561665746616814959577651177987562301873206986602255947247997080830151989536252765519691947155575959615555829045735317579662518473616548654415102282913641538630235829130781379350783267724495577281205122391512848251590926475492130213293761524824863270632814051960196120514412656778280470919308744693850381135742737986976430366737099776175892175433975802097463219678127662442389106684246419701027459618077140611721711142443012815529943567200592391897972973041730902227926987708893270526180236783617389822340332854321988671821843700145872897625448079965379779441777132740478236370390151643103376469514835101332441189322135953859045506005389008805152166937262100931883874327026074898891861576671939949757958550729172590781627314368954943290164045715571461557231955710657952527569122691043501959138176905513486538999802462958977350377080029614899789281615508060375149681909459529606286427271966328654684902488380299965381980611274315647272697601853358981051135328073350128064496859995067064018161942387382469353491091726196032039822201117046629656168349039233267055949243997794464441298048145513767288211976530274768717692063034136681015210311549434182698554507626910084651562880482609419545596642950566852981333216113955904870643096805108720470411704551527045610479746028742252966401975768032932565693729364960423800546163529395299823317536478872317618687001025552844760466472899716817384438045076255236400868826049142591947518258734176139117607533511397015004727641971270876525862459297522710909079620049893852459740868050534784063378997522869353670796671932514496286806145042627984851073219937780961326430569578830998013847437828245906921167603045810060725046378295202009602487509803034513488236455185138853201715754168755311963271147128192738282778794867006268463673387109158392379224345221183324543837956505728005924925450756266954184206063518813673486588453260347415156930925308063577267153625182650656227384832647244062004994816423967027803508983156887787607336710810075824867932634399007860387961435604009225548705093457648321869407224544606031815495249777817242662684981159309697703483599572629245668290491052396358106418868418495143302012629637679025328806820545540571716039685010436407888875528019152714915319757321709622065569396644908485797960625864902517443424305391709158666270391679578965856364664926285136814642160927942504998467019964692838589813048153006522058260621760092700608264146366719899651112534816525548955306469042413165624546931426851790936764929214037464249926854534963559481199884174242341693406769981055119863556611247593057032669552150438209623732693455225518284418433226726252684498209835684235478581997461488422579820705874217931065576382933913467194997806773665447735706641184468376095879439247086056426428903551081104645169528605323473588072218563929094520380854479675286896301571550462659105470393804636693676980863336949022881268779794140798711188568022019829409479541477478941510017157091490765726034316095356670517270719882490194408399988067741385344545159652378864934395119946581192933101637967070090787365366308789790738376548083360461306792060028690881328916865662595576427741825934422414225174637137367868014760769202723112620346103163357509171313320795334522373881467568914576374898014792164108668044674942293283784439501204548287238040080866084503534158541499689617393003073673096359023788061805588405242467209147729692903374446305583524892022010528803302974517032606723289481735306359880336333909890786530876806235779469795226114336929064078538708026582154989838281097859852267797119437672564729631134040153511438735387579925128925346276569362251681669013181460952117335961864541965457611758502574297574197337794948040228022841765450582141192911589759858796730265351615953977757123306759006712302516896849938274705379693943781475991819776127398789424086787060427435628908893433647978136083594667152738036470612342736772760840962983087060740467200342896334542282985976651168547026736032610047114537384269551160761625910980901462001010979336104509753438486218360499711206918620955792535721925402869753224366855587796727752346538804178295771731232630957257682803568870403374005614060931644894768484225295547935857539144018320741586026767049875012546506800967636946409948732289557390228439148812090407361260248953559587725094437344530035578263691275931151130140225048700336480709769060026391644710129885881065204779274756508402618609416285367677471207230055222985955618318910626149362281881519885403781302872864533973175727962697279170050441302278323254157060865053790680698418193387371370030251958156428807400280463366596316652530374559435801191348856576083743709950321973036063295945464006660953263077257805097512656144000870331667231406123251885881826941025690809850333132615676079917336506050517737755314893804403339055229640567207127972373864171473524163420267511121727868265230494140530933965663902842932313607275297940807808985493998399005284697399277233094902886246315461084456923099744217905729896191426899466966518843442868608307134233997223761728219549590623796519206243174971826414615513536978524115803209708481648080282926049152557729779480558249687071479114489556955697149333101427499511520023247160675062674655775290071946161361830722455932292280347902555445408569079724464975760681530416295977771167991024098352739917703226472388849442847154463709669631689636816467529699739511227786077215417990837573897769861582025546247233482252209443018110345861721359916317800273229419500912645774764499951293357205152309664471795588893707652067858641987286084377790450413202487448000918109605241497617988386561542452896531399395725154560171623641616174883782318303046192463218808352718552612509278631061070860036645514047747289624419783035499654453829785420057662294570702889832405016039740808194008430536249997095497179289245433087513226727781152116282191058409132269333306011547375835129122545571941035976102345827012531346995754469219107691687216246365710362364194592505374348891808969046970430435245169233944639680368952404389822830630817766641903080058442936694624195622351723727051650246742149279087272933767287062527117046256551192422545691458780480678672620195236646403871356394949039666283908855367388487886066022067266110923559273838489889260780710765475028435236921258927235363183716459782034621029604519189440565645465346521960994801258567602760865827420306723426303719406541569921625283896372982828691098611632764066307626617756568899087190265475392808679366368933012177171514202587889779600853167689040270013709340914328789411673025343780506214417990001465332937885611401984900670682167390080703387161401024387822378315056396315918417586519636642061124952565214554324667846025351705003023066829760008829252941729151663845188532494994344890578032257360372721839745693835481186186419127914318069901237231361815296009194872572380271833006059536782278077500281094412041700467434670029954412327432258978640434807817545843120193383483723301445787502401917418034956568527505581249680087297019103361027173004853115111113774266568143578557030742958013037609329737871466718886597127504028269450370716534425872108405504482189837714241003147653716148108710980441544267285671776500752670007482795546596640457254835734952980354105098453249166554159146167241924612504530138365042778669658875977844262368673874645983206172805292153218147512419669286971499633338811856363014021847473990904792235754901880802643321998587742224178208899519423389403140302354661487122540983442112755434138764418956138536146709979060917343243408685590362175487473206334118957017551906533724927272489771309272985222918903092228162153286679183035831614335851521090817459903555276079694561967281406056051989450765152848304453750214514546253756578922990460153258278233646728121885347970512621086232541189137886970250236918976308911379449928131262158316350294706561214828246322846138846237026961883157349587528930451002884185400891038875761074302188438474349327497670736523966196237180813216465959011064179450854434255161822440599798018735720543307266250979409924647846930567559127000004012882956110594962279621629583558054509100341488174585086995949326039742783311508257584315862630482522761003434220386517422233293800934376305557645916168388730363857682274809638359571725346898500906037911370322962858144116680646903404290067630387200229605836882062497667164115020721729130247660082904818697949943500067490445652927856806603684919696953010767695947770125269510426457748682397859101751753687358334612410783671181073070026948645186945375560760986200389762071364437589371586279055214130663766568660825775419585804298632380782314082684765707810580210990459363457658917736635048308295759454726004842788757749669305402188599782070703200535000079355830014154778426850711753836775455590939528961837475370438654275404715646498486895209033163445205385989982353974777812510360161116612442370561752159264015874970714171915613431429376703191689738253624122967751411718771859913290209379184293342387220961098270100072308887561707579633922607853105889874000561343063352323323515700573354112357603842486189626853265138396878431465055063527480413984499305324224569124329829366897187782314169655673996217393598502176641560015587781023708422596319494397337914581495323829296427209028041410487421334816373727711502914695857423493019559986572807649636149334241930631181302773997372131720331936480153804740260982646603124064111548992030516897544264181726301503869382663522634776238430262851938432211112504332004045552058231298917834074343938569692300197001421697775639129847315501048518580878384272309977970888345282887030528255198775679188529684837343381173218624829466972026860650746647832683495797224786705537935524375498675670313660472900145604366912312277953649744419304222306213068628807908353943135969713446149878375397449877046452488484413495035372262555576941484587767983759885202191701057441195121605743092193278813182620460158638391509132115578473632151608398980350972447583206765978545729782999872342034003632650125306962036880319392609384821240130679794356956226439220495877215742988696125075761844377584682864082258647817727170001621748823920854799804133321100899168399086305966801769364266384604776119649624003942747757308996950988747466473206135867113838064578514927224676833122218813458082965482616083886589477130428319503860619127945060059703349802547409731575196702970668331475560468962072876055514806329017338329585798474828261597462353351037875219838396726187534594869584784654937784434089743748416212243932713487320503686686569953460738168119209993515718871023869894611606801199768967984269958535740898637583731374438026471796484589748742474527037811113149900030332726676636703185765738056628246234949219294446446603379103848213896746575844351316259232351017789240015910338693056527067878292252245995238324798664261344904461675286518337905411176229817807095558006492180966990476585488851401945424466198454472894916718130109717717989515636887431875923457090778889574088612612004469579599641547955208558131445676604122624648613514650852861375962093755563279029314751865158064016073560920957870404107975076971128572616114138251338570186292984902363882368460348257629973472617465367257145421093602341009134208663440420955064403420726874665291992602545559448151900271721670213631232770747636799841414628876885118584163380479344733172595317577194237684208128049203897507114633648472824139479160273325729976608070749005026215980401074244032285947458352084684367473268673348162851940440531558375920564406705064149717112831822990120234142900606128576711388523369018678346610490345328964697384757469122998516436976933375247265268625375001441546092115748228144445604712161169832039483055149779596917041276427321536929580718346555423106345019791314231565737433333757715583022159869134301967288497283586478940547214704310310054819437478378426078942623445678165324603722773085293686573228810505391663574126364834669010677107203326263589741362424721255614301271132146116774377580747758067982066181527090711703454483242311763294545991278232749761060493461587275053078624296260755498320568767646764551343058551378791318562045470312035401169837792702359391978305671064607090854123179010226487950346558827781952782159459847051520779210730012726912660448519691859180567426337869213544512315460244005386616397114195248900128927970338958798632920406242970670050115152300905938795150872575843777452412528571057075227700476632056275975833612689054124653647064842315935045334932822272516509054230732911191906807171821963522516661761738970989546264273353318651365274685844270721328950350342930576678214006893229143862659530361439871685088783392966307847261408582339785765710756921813165791904506221986805615036960083922480878121267893777354862140722643905273841712250939960133480455286702965532877789382930176104717854792168786375273510772590813457775056264315084363271712603000678129381982061975873841945590183581960857690012696793508511823619779985340612330538178352401921004187818685535971113407868980674502261046727207707676848054973066726269681234118922853819534483918056960883149316313884707060418482586221287833835551606112320721467756769655937592826194263006245172543858560577383553416412929608601027699968543264794665334846802633607152164458882586089115196869612313418182989204604552740647322033341085397105164082660232708477703112969186311539632052312677557479221626980818112008259722452497968988128587038467735517573114740991425935484256166454440608164326062051123079442917761300513142009332512182670601959805029223292969561606009740052783855583243171691733409082676196383621227232031399952493868432983189360159755069722576026538306173972323538741508219762663948137178062154479643836389556750911785014760110138953516395080409734971270595304326165163827369474421124789529541227117016141771823476121207539806669926879084987928376697545715521173202019802276896445168673047291431483626427237752156456424272902408288268136912760825970583979771453084888051214617202483396086885486378070362152899998647149582627821409549718810670876758832875682437838841024314327122949070173168606574596845682394505904008243163216266138062094798106509793626377599523298942607550158231187437608601293428105764008026265335785650966455127422502065621497404572987043305804385122915286647232895004708610209552329767726298928601588143293961814677006630544622309828289174188900402161694233413189600444066986467424769842482948030942166216353979054990786961624731980444651665617086284177972143319115185734403849679881272543272494690695342285785417116321452262610035143761971445227513785004848021609117948292903596604220942611708146272280536684873731095204993770148833975677711265338369726401763535510715983791876896780437190006185919387988111094967700616675911653162783991229078684004155803724344863962123227684923075143232936523523724691777694096380293353901399174849431275093075268990528138960501118133109901788003686189218437024914997644418810753675708383025366916001107869091324391992558081683966755031898122638785203650858299501921810498103057201673803911043539590508507610649849414718380871782324672733747804744805918912313600789463675114024759641733734888595750151183894369082496466572547964234547054497458888633517029698838860134743948680459443676514755870976573677998791318615827798516812685049710274645544773858915176162936956308979222115641678788450683205125916816781272877017279701558787248398438551634238759748550532503358004051717315011280788785363397992773757480823917443761361551479032507031681747708838744250191620348944953614093450213955401969574080095638597668480538727673751572244124552412822018264871271354461074205291857338661254792360654001842344546300260910249357363701336647575766798992849520694663238117764933912351505971946159116463445813659500689302391565457742122355537756594750595632238720319150296683362123960455781676120407063539194120047559548187853260678261194869014337755402472218310617845875034152349929117288641344480435588643851792414004056470018462652349777319621392665653808348922263560789646255754521769543055264746193196052220524719447525164885893847594536188363844717784918447534839459839071122126901719527981622714087085613740820859138966569831046728144917924482930518655839152852258949407437907814871260777495168724773364121435632367552613976064544838621714234464659551752830537250618707092256186132071213504787527868862992242619456633580631059577101780477079269046874383942827481345783237724383119055835120961708642323229819911920386466751504666052059497954485055610356711284061995699002150785854325669114971454435742942421893592707164732065461627152631728703490677128627618250310756512404184742247120512479737340061646202278914429031899669129571705493594234522798440317420437501285597681246083488636982021088573980413430748646151523817735940484154788287066682713430236539483505164235982424958021122063505324875292359001620786007166768800007813378469756015897120214016366091066624452461387545975294318458058780477274976852566249449321177868827635074223922814530067658319698339486101283877001120081229580586231031226774103645908363932018461844978568452947840267885235281552891312096976398405052953878971129005077264520790229464296061716780360376399999598916045309640626420204280241221815648678546066865376637978243661372164155526519596706827426974182204394540363960291939611704799832259629211034436432860998311634843350895077158722743491890657561187639179122324369579850286815073592815360545056978377919658790572602019119662762631345533318123990911936531994276587714813576093237752333287604299721586672556868831672613669184871323807704035528072562811263008904296697160710415839412879558706404889273821211044403105109246319671823054327314502541954974126985890653865103300941924527818957810376919925183026418550634237292284569945743978715170938405530625744277131471175949039860823307344324905437293273290308114465306117156240783775160518999604815779557540847732824961196611798920429407073221834417220463878833376260524394916838818386201875691501760582156524009641174634072890377227810150786978125068233807797696358148809899945621128757889394283691062130052534351005643827487683628499189409935854877741099354801051173992729858924394248347256813383885367147955512998336178235027328610488135412223408799318791014470077604217550067141064024960654463562011863182700070683411453378382221063701223766818751477485329187527365510878220094044737936562845515621866474162380668866021431700811211634886153531371538270429226501750023176878727485424121633912686750348753501356270689909835353676434934494788058641481456911782176959494048574302375973912753405587649344129874622580201985779070443067551543786234669630278269197141548014404158987007292016422810777924694569801858181988087033032258178400200047445485501674555808442573273483253024848433025520238374776601881817374833721086525074783672739002878091861920682058071994327484858101812816328005807239769458623380217217683537066154635591607240220259518094272208221348780849257156593020124911052771867655255884615465193162136689934202153224282015835830431734986811004758060043642100330658871855817827109955016953109938363741246652937930698257466408476804711590283479837636431123196461791839497078578041517321194382920303847049574710669241813691882101690429178897169403878900306630261781279305306939852036572689245765342590944689080684873926005313865203475569001583946098810433712509798387380285191617664033701598508031979457365442696001135169919180457475001741083475568207345232527612831956605382437219196888357051124531038905106001380666519620257961349354643446870213129633793506956782551536063317162458951935551070327824389464029467272455378923591357455198154353549437312265921960387846117759655243932989199758965039514752810413421390693918617337318971617147630789200368369649879548449503965792008554617147121160278790309627455170983708721243463061036349174285790911804646539469302287708439972254658420244081678424078084461544867857849682354409527138223859458914183019092880354899648118702578190678169468410154566324775989207864769982248027592054882936148667831222632196307812802741035526008338553301419616329335030887588759816102695792352563027513145190886558780680724288634315313068115848474538674331199034039664006009060514768499589651957505269494916434721617817324469477439003446565378476588333909097438317915058632760292359761107059190261918897038439917979049627581615112637209496556696018867693481192077875625013475002010685093801509009539712622075968479069896601692262515067478115417354242063169126266599731696799278630055831682976475969322145294760955858916484183358843580391262998702400062861490127463688001124679307486255950177465724922865909238447585002368991907463225606204379914197022222412088875652084594076459545882798107050137681885535926402663299894686416850388463707025995141639533233639097448815425447325286883122753185252403044505358808259118070205214513246162362276058337415374754207448671391263336089352153351002227155475576264037279125924370459060728528891320150725640243085672373484580435301369614982336584683910911074862718247112682720091748027598771945348915587777073218080047726120917453446662114047892786800578199403053291402870866024574455508106502530059380529228244378856051465451672292738244987264155473922387086712223099750305898480654492827014230543837089004736631825926899154191251567949553156486538149601930861140551827152393702654935251495572376222342977805012262086834342913182898576019749015831634818505385791838835344122350294020732214379007090492566890297263999203093571543925143506647623165219087814723845189166460654154756710886032632805793104325207641013990964485417410548388662844568017181606663652156481405359835879116599277169901161733631992141185106999695237748699425346557236032437201737117608188252624645164848191540314756516929047435400239276508909080782928222726941995213834967575207102189920183686918108935380727430859982750433576526538947924820223252839002406743768045994520899353884878346013067237668562282663929585897562305255155905039581751823596759128054780073685037661221590665320033409700547047464881940525623788697997034722644404970803101235013880251498801325673027561374198208703548808804434787089279993965596274833376417635116258112297207911398276610584754438105493309149786616523676104300936452579614118212855209642317788623535191722481276052478293602309318300951682501296867829738788493655934556070453051387550890411412879544247937343750136694607976644011524957734271977484821791861695397170054211266162659331066614379423322551490159710033586325216523041699208890738601383592397383000925939180191994096420922822119363652967215587679058464810981518846096537237374541735492997249031388937254289148688255631349063565377163286237521466766218048075996935438045906339970731428548012030183842070007137328462499646954326645068207939266494596552698474914650741597126664558722324120200495153543782070463981444206042741120336243333548708752191299191366570626656170777850632008316701115866494355529459409080375150857823949687913901693222084023260809017849879759309605086831752913590518218251919474316337067448341963787684206939347913708552637996350409283954111059971774269949474959098648661612560125193225766364232417692566324315687930510192775599986606078924538336164349877105833464849042316391893192609775874695182665240931519934168813506587694123151430722425225457878018800510725192255141173190702431463635103013925991403683104705264651076484649666330319267726283482360995405354575419987612672249559404742936990509378022416996972664843719790620496069568540077591490992674504915582072388017227176010173727776055097063796513029922580697708235716256841732439436039476294521179850534218946438567731255493193553627198446861257477712031885152368750415041326969795107124854473311823566122578762091112164111933081854479821205164714993618215723872761440057201316490323413173792353656327006362088144891264425891149889870229910782977150717714866496382086227570792798484617815469001142884854800862091738925242919618237331156515606857290447347625211460238755857919950200663372559290900812762755465167906433127763606591436080775057244205556133506220924820145477805328961023652792520912556612725449800939719444421591558009414782542922739206993190665338701254930158838389155442354270532971089495247638453348488475940169240719703116219930292112934291972388452014900755878196089432171576575090839514567594754745792549896402672803708525203984051681334658988683362667068252923962494135324154218467049261408389342104990620380356647328659231164684842765150874522257215242455391317012733760163457268452049312532421236092611208221582957542553242274863000270259961258216672599867015717749198868811514116054149526482744646047985944138361792856864353095831290406105318864447261586805055867200954340677196852688991480007200366964261758750109848927243257096706943663824910518195758065972087928797452611553506803929918078561195081133348524297177025356734700128480399061498630181097375618727013902363126557190103753076262049762482462768098651403359708576408025737028288535002680239495535183867624083287525947181786190634711294075984925669334927097766689626451200593628304497701629920022604370017964095771854321991628128180039839321938505294067241218629241105373230744935910996752760517576924121537475036043445680635206647217759490382910927162872382612385470036336409109497247256394916532830888325291092862306080532903152033900960819852008307137504339235340469158438819251959383389097093499130375260661160232535334968286356440634796731272087720954235680192029452275686460202136784885209216141627916554568734648144255596243543370403134407417656653546380301539878870624483300742219285830403634739143313699702438411468777501867820989390428142593849898609585652981278530134849246812079829686332967714594583936219802901107845482319958928396802276295608363254020179721323404443546925924022017790360317593374228085944602406137430960032922703004364834002247001152298054281112797550118339484875365782214312356743133232965138898244339993713308254166394875341356738718050521791943416473896779005257720024544282641053622496489339665237043358694985896814871777657875361027856886163633439884196376814072494632356910848125716384479338741712363982927009784823029426433936606185924211068050339870914829330850719686282859379669418310965364715481194354225780972542578565155580211445010302342049317857989560445338307087354664665577130926149318288173462799216190309777018719918234428344071664358238805128804655152178538102800523600766690373751981505130872791305701979436650390351267287665955991806001351677150489708961846100927391632696664599632125736180934330977294835638954060273833242964719460734084444109483649082650976458347576329568841019812489809767119126263395413708058548684860645377793880807270910693346714848113227189217692004362247384122002811740609472332302207603363714111939335524286848573314760304919446922912951806708781119179956860092870986743512071075545948774222423989877355185654421649383435225895067825856927976236131491417774166261621292839603155236192036155463454552618578568025333779417589989442297227320418375050109454072369370847244239473702906657885501923541251591156017309980762130905781104554634660203213511987222045309108749705390324541203688983105328655178591357342456266796544339855424590734781165673095462514252615398291312390734956277819775678612474522570766297335624917407303257762176758421197655969067028854619933270975465329544827630055673802848018791017515835639616416632505190962534063629111965798964911857208126010371631153956444755332418491392653399002840493848037506510411077261091649171416580769048526650327804428430478158144951740016754631878239398763618570103856046738459098367262805980706455188492693172809426088277336018607728764309840562178156355733262499619450790189606543422555107738401436172491768998926241224284257766403372665107444570172580229973242541909240933533412481909660279837317469363312675860924268037092027442171928751867923010311814531504381967375444609578243190953510221138297668835952520763014096228004636081058267264145476393859822300030587875599900692721906559183709938014933261038828054905694203648085398426873519066400915477467488102538878610887543039134038063051789577557325440624102619472066728444070342449075407660653909863345968892224723940520210986359130499283505918690509437869160318288646625580193370522415992521512093228220216017630291681100660986370596574911147363414459260583737269801178939759654418031556553912536167865145660016337153969328544777644652196834235094665869288112636054901988830925721294018304488074639255056564048973300925187022844322277509172831974518377735334595970748605137288916709281149591954428733209503316660241546715923935177031808076503242295212126916262583195974451213437116344716314693219996546267006300192975884988414168792930475243616356119641593572333883752746784081474150199613636339229299494636571131721820797856832870373874998581885212711677615969991715980113121536237497647117373848982197629632979585304271066445181972959719728844262560486414081276927874725304537433926308305446821064039520336604785920647782859702213132233720986913973999718078090098976775379852779245721769526839298691543341555176391998296166109138295836613794379638126974352973827706237833071445155114805912231023943774440845432989946693668157969010164230864369018827046775169869106561904620427283524767859310903827954441707106302633557532875286117811794556023360128238154792795051291731305129919908324184367755120348373787800074326397110181236421981730266818840760916973549937062835909292192356692393766442824366114068682653946400424825833643078000849921405933394557025419030968834611836710576649089839117087854194760348773412796072745941089124732835206859737047180764916908254348474625386122276442840628368271685831567423714939301408229131943423199217599849354206810553507430995836173372575269602006696562291448376082060052728963357903235892007797117461752133753420437751621648310601442361410733141606754270197636532503080803426007447525624573127906561027052790713558384244292264367957091438078572786735429814157614396208011454745937231989600638664352631901548949750024032199204495609355957382529755450912305219878745575450584409579702762345066663987007891193602047514284374556196695696685390407974684844341452171984978837636723965258786403235632535118361030809813678840952592540122603976015692495959697151076096358169786442684723111317927879641230654707848406230226495609948811905944982377368645959650374628492198906601424688827048210943670502000458641577008007097653029171305225117753586170505578309676460281299481362293351111222942230273325622206142413850927436801929216706042167676793842297046427275886828639412128518612289227342902219720606367826712175232863219557243772579663084775917915495630760182595560995849582340007990449336458263532132156518838483275405213507754268928364463836257707700724052017382005461690022477510937519862519788347967405720352405293675284620843048502438605041593587146964884053809396076508077906264348236755080288886128039083260391203172001248517310201876066626526919386333695885737448796206600090681273785451154774264703755445215906811518474001869531100090369707196263879968087798896158833473918998861278893487613111764705339427998046802816653988487202726659488405200202676863665831160806771113293115579381235488334902382585948662639384794959571659635936231814406120249499451074323899777657336868921336330217479177013059666217121206058897691220205986035852945412815050057456034679107919280998922086406976759947138490795398462649754460809086725523636880051589695855914945941734284650810957905533254439160509826238858029719809246431465000827625928946885924203762092295313188601749002930791983027466502629392741023210067060325393139215397439569670293199299317886855364616771161458935536882906545830289024379122371396378695405467391190127899445522092002870522775244902418316097945685296473079129523562585182495821496104589940073393442057453526699483455338052918555664951341630827733978823212718300177594052001875478181538036171584488649551777022685495826347178969564931733702348915290889480894139383999715284541317248240713020214938663586626565181793823047091014274858178023926641028155911435300852334042773247424785130553673586775294084959908420237750607069343709177451107607839826283108232734065887550933879774907190703002259887824115289108977599479357841163653535255013230623635229887359771788284652478929921541308548605887573475441715497698413584039779719038306401095497785096122961992132812835001484216765655192908121551429966261221339531815089557035087481694820882347896315837628286594016643524350057025693059061238896875116021445235094316196917018643826249302568014305368755122071022541942679539176645318496794153754455427815505686355206750334380062431603847448673756609465956868999430653313416580822164008257814120404515295342948515379817602347544541806882924097717455609890740644514888316809703910617218326582690962018176675564502605958042664434933012414027001444832218259681143451875564563861222220961803614564680050460449565273702013412703733257378754110262744195433661638134930137798519539039043488855943511881454324627258100219925433817203747579580663675742464771993743659736867274300431990160299423676422932337717260689176414282762343932441384984416635292542918480517071843063124544340338191050830611668174735339290587083504104418759896511463263747135018751390982648579228575052705091861777086718704623828029866893343627000181973840700196047797894346414989586879622335411535159663504374434220082403117472034747277089954556899562561125468943087697328305796766145679762277606966844856944403238852236374300640823974649272649474825840206355979998875723624692225525520214020021714996823863835047739083561160235910464637007514550038054416514428077608172984379255876545695699351988220506772556277204065638473860704939007025288135305290593488174136834807232970914831079754358266573964425595687503417624809968911217850322228049576626213856276193072338699155498179622809567159878769981988681121826706157768809861782697638348065614980352441037391761010131149733554662511546234501370232018334188555471819575671290989569770474988801190591915674674199688115936882457959450396745904811895192218613926497741937339976898351240066568129663996246073420112636320755400254972493408254328514624070309862733097699644691808275758063259357849152489177254684345110868667236366402702466442254158656606668877174398977907894220621746623317637085705367716619452746843568984222229047875746424851593341367667423845001465989330337770939401560970042591234806263297201457215513594926577926314205533477025611629436740707309402083143847279236655710598253957908493645189449815737334752780791845443058613933189724394687824967924880987459965290620806509171426647368618523216843089551988461401852991858882126337060842757701481670346469957051697092873023223266854554921510237049354679350662948909288087715472507022396076197038990566105763656102512904872486296417060066393246719514175168146152057789460885010915171678064332947831149621925501894790686901231587311091883231860965172078507606350386885952834734732003950046966611421698674981654777635675728098739464001065212620791369079106861816637199368081223256351728079260359019517107582437909607312170064727747915229284780877475585837330320509095129530305126489396494764363150511328840945408094610986055013897484847687317226940650348131773661116351371675954578531454918852314119738222696727291693252929708320591779963848093205251238296651831945166913455513481195226792712233488217352659232007362045901659665536633078370095162255692492795452753748880456542342354063364738921277998326358784975149327898597352769483564489020144615858208418882813598436958359022276604698059324405639902093201219126624351765627433389725853694035113817510880085998037671055060059944206480698492952655957885555620310117867945158826402116466918199700565837902132473468374404668406188687223990612931556435031939101730557129704027270942540249338329387018830030968688004978894886238551981228220241162695977446631641610237633448362262432803559237116508222637702103275590593694660647780054357177062286266952985086352941850000467512086222543112467784365864350232411756908848841623197146440179881470428751369352409106213302436648872690993009816837105147810962618534877965892684901211077402483394008267937683308494933683226798619305885066718722368012867688835603181418627094987348930346158719327654958661321448897415213433242989049601174033364837198111090604438764433187375409800888091955491811724542511705661741433466281504494393671114479555504156895713075388921332696236596350718063135792386898788450757302423225865682766240703044517855353052221994090023969503417502389532777606707876205374300462029581110590260292999274099863868253631882598320079009977922605705653068790061555475090047650072144980957353363302481427321773154955372245283389157268243216956348102029802331926576012763789211100953233369428172269891191178768757152039417746290225021551509907035571817353203585111869052418586779440391300265663149446325304869844684440354065163441043187600663137989785591374052714351656215538662443823047353714089530983627745497576137590927903778896690758802395453385781004114679757918839261982767231112704152909385062392393515239068819940002678010785055109501157853163070652219077787184282876276091341898420084141548700182215308588099687257128959358529103971985727583084366235245715106801061798426326368757143364618160083210236537940319249267905756160122213327676835485363479361192300823704639810650822083252026341249211628550885776353157985566663338518963707278965168577980436357478503578222643140195955190981689448430319622050086882794382336044372336245704680222855477471476285173869379156038687461066986894083179832688217521780574642971197792869488418859047094556406106327298765731300634263768880083809798841573344415270825368701087963220282283616881999743097879302860912808397180395107167954222720878452462492246704549687049967863618521223837091163135342977667121028935115687471589774688778973291078239599261783118372686802889274207503831253193368062472508231798546554501070042302572589530702193032215423042538708071891639615819331587290369027496824425244682177326653107487347895837585500042397611404177926360544427101998656579306207311819606947300954446266801474797266849424869866964812686065904237805945727364129210456342973874134566424534964075136481028361369006391272714085815992503294945171530110229733474193477784304587781736238442501175329847632947723404793118130731322410171757185871314144322430622485499457697814332775504523889743187113543996055632099382426788975150306397625310654507752654982503477626141600440635663086275988577192671827726428093266117779762298483863694534618779995320556773163561965294916211097315548364588274276602553501055808160909368511733867118377905550856679254727442239823151479683697733596957911182904312236003109472020093460575809419094490673839485089242336479013790163074308479410169463034148930619162242162109443108831129465144477670944095850201949837984060223349811755218422959133164152872192277076902785679946713223353179674372537867105846727677855129195644387430095369812731184858041218307926767860700342630451486144547844461902115667550897958139151727316566094695953907126491513346373560591307345823241976438152714238057236709754449205565292068307825429723219789893293757571581557824763837414900712850071527238459227634336020759337568265486678745408511995888882669615804150377257364116589140679288956192937827831201890250148156542152656461434586896852051230194419169058797417958989794128476821174769090716195315367529010532187389541245133992746855538829241640416298101305277398026134430650363969930824054740107711782384979163490675730278026048617827587136336632004496134615856243254008373502017501959691050322824815936715385615700623958852921817707332775566368142073997558518783537368880800047960820183432384639490879642201794502232473506948310284019574190304806006702480499686768930740376939284244703789174450449303590986010858018459473275765155996776182354059197892541026108877960123545781139423874464139477417075599715282936443448030434906790528427030446093703880976027102936663086598505138798605749517768247837344243428243509425600727584789071465254070770734309424458137252765048874078795584993273179915647691034199683282938720338463542445294525982921109670500807307065410593817938339807455014751604898178082190171477140061858534812235246121735858142387508988521283451246824014066872501342304808459133142274418508935920582667077068699292734010374605351320114340228167075118872041865649489981283429216806045740309412279368536529227910914628004060565328387410460058571860656092224020733188289449428386126981857366772833638677690175141031542276594864643768855618795747242910479939995525547836824218170063147138029628066213605778280858520720960385463793794807238523587542499475217222641285093550990429214463335736557650897668514531951141545802326627239021186091342185113567476522280149477668020826813233613339710186148096120775798788008551793041848375106704058626386527035532235334078754977253069562747904783188845323064587992882432434843891589203653922474131728967746773455128517489244123134781553222068115920840616695622536836512094199738156361473378205098558945043927574677932684877244979121104515381989774858835319883716302286075483005273613637938924927563166474435704546099111531032862325062281588464882309366454013078767677381201049316678766505601639629722224544467635458192803734772434649631086391868217789294605499390304874561681479306619563872100252526686133674426059839773632317454384086681130281640301406495548863409441730622660413377302862415204173444714025248372202264015701257435392488844187858107452699046714737063618789416184058303897217425014930638729373802683284483562892289015235018750819494551990441699682253540355124747594306980820438719289772673016399369619769446058780772227063360117510231007066846491438001285119258688326778968672798336081611369600776006374520993272182360425960705208275291795640961656721302674543836438208271084120401900281009526183026537716426075018957153167513914878973325360725633493648536990962375928181116704876507693104694683362021756323184189707014217314975340967773698621886398808200466432165163007099872566034617711484030205983864262186710916499031906594823882712205150391804799865159846557347964735382830186259404190829645042339402001149497818080181926391998305515941819849441974168469168974204581100959825512450743815669738501382381891709852970265891711318939722029845710920640654298397887795402509659106225833300124201150921396146960087492580140822412166020552026924453303045458805569914187211645467331628727540577277325529630579945903892481886010513416856443733539795963956543222900485132514481116670802983718786536052487870949451542040601780194261310068324740129310754033563633441203735309476503570993462935820652816582412900935696863903964751145085260104160174121501781740572976830364745289835376674210232783582768589552583840005113780413074921390692714866586450031454579574172803819125496861552476182285865715490216686990788599531971829652902861763916372839981670899350026738895954491888153374565315313618151793087932526176061076475341504611511180067519988882236581618034931023101300122671362634209549834064917519842327023341466340047043956154324464606637978531966205356309228671916047818075660657610633101509349751718801278727343290747052391637458317177473450376053453224674158346158388139387421275737563075154619967219706454199553574334829619532009217236896541622691748713165615461429744767796009504377639145532881540184970569211868486507020291306892995018846538734419964784609391303166325886197190300098139824209552105287223189030824521002418412700646740793195237400388211686260472323641524604742963157169814333426153896960288685422199842414571466172857335311277833790366001412327885627303468551878193427003417928303569950305866110740030554201184126855636919203817143838960260562763123869546297615575852373682127074216642883331911604644059100899507692192741932569387594439686166563430753294587692166613116451718307070275493866829855230437253258989315455570169949710145106462300339776542880936955869250070073353432770574679964585384394108383383559352642018350778954780633240956757295575009421146294184167738845550104760167914158834045889600142898907662677603292362615961583422794604907626622597028477597774786761500634765922034320372673262472348948654927538779344805614631301180447752414953372865826352053989186647807381418217935385481624592288272900178037767736855693302331330298910942421775574951077174993287346628546346931391184191836415857141256755505931066083527299781761940710968271841158314811902790509314567585945773486423318565615782506746923012203354214495105317770345123013770079308769224040203393522517426807405520438092171221213315920111851436631274815258427522296525684657076013999564607656843695619560998788120539199799585303713418445021803625064216692672027308600845942466003556112332834974628513414095635542938372217666594067574167890547136927502451439563397304621263488599965530604247322220744407867561201364771823704926431537622075077534636545050299294161720960515119874285050192829890872708535292987508743604224997539841348114037204100457951324871669104107127352507914260783672811260059222497067604632107780014796869655500506973704060171107619515723353868700452323882188823309658724222570204178238958557459149271586991361888810127415357292927228516639671268520383480603947243450723809012456807673672122450144068088186324839461313891209016613872207437749483391120212670376928888001468592969451618870577303236434196462519071473514102701024544281944534204251087213301967708002364916637545608048889996576621171234522338228253090178345833374266475791980540991178053917637833228229202186986192852329953109617819691707969844955387286462802552019437734270618362786540462465614855792994812196551436750091646862469123522057553980374446828691914239254519761895616969996690043686129189429802668230376054779168422946716821463536800895197289025773226760337631100110704034424400586132193091362181970592434834411180006973183582608282710221246756639222115850153775422085205600856901688195431192190489974934643784752201177516699878480849160544831880353082044079500152044094054090489161587805247746823906558004906728587429472560628045550316577940748154961798018883569429509863801517140747499347433343631445698025784336036888813670044084781630462277473644585830534802795180780644041568854818741881275047104561079287886927296815055263181979741978507492304900557782485483978695153114534481775976957105338310863996947194622217334697647261857909811152270580636286211173012726125681550232442910289413926436630002173984245404951548475067004902974635599240072748318498592710537067106389390467773939903621765506584723285504079119459023774573878927632003967879358181534021427429047823267605054363078391639990102885042283153650333602572372728107519479372282340083880727072127326315180506373993736480230140659320346612372118480804165958934553415833928076045262162556229807913365281839068132093661622939624647851508408729841962172420508213442342360386269499600482104988985269243660515981781809794394371732167727564432279377373771490537882036250401195406617758248509675185224578703369562283273555953682179403132670539489022972759974140090867803766150538551041669945892376554831429524241126550020985834702001378885883399191668645530943930413879891133195528069727529857996701609945299645058741924855908931798426873299082485287328947786166598400121354536934104872985514230087977001533602760697263664335511826116297793253470801061847687801618040135930673423912080484937386666261279763554584806201489404286557592918393433111446085462127493949723438335934406925776319970755027569553068748783074338436859934984293967593741001040244058136790094497219890971543212841974635966002397676956157917199601448391482168461752401694346419938821722161098248502740505807061272919878492263981151401639788386301329139143557981572268931239281592978688181818649406464708979355337376107680832997508686102247918766106092390036292772005062976188424780890825857493606398538284907995536305722312010981734300467373821035352287225853946294919464244765025681517861517026575618354160075807424076651940798882454001078862586936212926824208760412861372926619634491321691392311982026553429963508813089293808441716773193120442259151865179077568301667920333786428452970800307083857926875204555044052405580902161493868725299230465980969826392295893054206980016986750112924061771977932445856736613394605797691912488797912191472917778653869946058787103662551001966570804348024085520194497686744778678058290210535147421790591860744830943416397836565826613691207793966966678447170384900377226563881933896139365925717544073055627418877984489450534596983720456559954981529602402378340580542221117315408272139266144827994963681318703013021999313451305665222188816555509076819875397405158703906744015518007904112453913276303693402890795652439029081898174504954102259440006941053999386901260146715680828340681028531251100556340271756935735449334961740639915993642255619860787542593403271905388678616104283161559999379847196691229450814511496628367471612607420204212307936857146286568311855026415767629403902020906789142290009324854656210510769476120997927557819826887641136964572265432380674969097963337378805569535144200042984289297881746010152580230892410536272969025517814430734460159850446673652709605384875570929382246029035439614806308377416489276261434265174442622264456085544952868205945987216838272820262913349712904585664086910346856113684195323953418691369004319529559676303736479022998126016154212523252131794829443058085358761631405293613939814516722553474195879464123313401481953635505174093845569296425991550326087237131815152960830392961492288307610280769829173545823633318894643538271715040574812520056744604501753024341960013519399648392483071330518604677119635655448032952782578161839311695484695685018481572045388175488473287500441614749301184990507628956839782886903222523741687235453032187634211831990564692841620043657740025080378904182414441607474041069142321107059152568822135817615264873090930146669602530652957949774694686044953232690408876762281621251290451441950666721957664636438165511588722990452241196993473914147495420742836122941775861103504738823825495407430165064331211933534496152845986554632143242465208984355940987892787020723921117943129088568668700868771526829126870912629862487885060528167347164688407925324667013507659652275523025665782714433082275871791874977339285182451950862383816418169608171086818328429568946021474823349687800607411724452132104138373558469363065174227932397295019911656475305548487828796088146777994388508264252903912782786730415459233579654578757602488475310148304093460088630646244792414757914186360696979765613751846090241225001857728321864863445967528002413577675100835892241817047373671429977779166845805388614987630804079285539390066157285801749243904569123032947519866371709989023884876929336415055685608459361124504676009216595155369306275312008397509253641935168503741929863173495521736348247179718786993290008614382586263389045750560267229868001977744630379346513123232329979976702482613248591268051052847526589862261705497517361572753234411405615896956857992951280136664409419195466799630553059374600712096654315621738304922407174878119322871043705397076704415272470832825017171501355202316772624819679743509151741862571602670792027089309607926672577855266752413490019674035189218142961722330256814155599759752690018203726397901474074366317666294014221678468829859132130064275255978785412596709444106501510105718630122457651295855629588433454038352440728330914665177850502447169418408918243620496101000109912012516176401367694997832164240960579885456810256451936948880866252675066244789967831671699037442265580818708077720803320155456881413031453781460533483873941840185604052138097582551095722142523963793355702199376300633804668893587216105930976199165171199950187539094667536201578788713043374286379173090960082527185593318312766846341724095765433334916147320584173519788765847710085016981584019638417918471773982376268287596443932282489978553519435279812726401857534319852447841599249328644404997832116634175489950040259889836230965577857208834396891571110803277409458203167136831119344414972727169520929343038143882855784934310290317216539784642289878048432219454249979815274029267847788904276052799762364890476959730118861676928329512661093611538904968575797998395647433192781615101240543953163174386142035475294692510271281091902739382130720211661894608234787958011753682065973308956721432205564964332016285202718303644224786576513409898716399317994737761657500386387653346063602205528609505942743691158943498809595634946481773559722052543800537074175101926973344647639635943379589097489025457036653617019203650447354628649498707847369798070210545478088134182187658548657981008530913446910999292223192986335016232811495609079592865168084209051069843881522988052515286426045357338958051972301048282140467162243775469835682969862170834709647886512636979443282361659012188183313040228674772830009706513146520340448409228616810452385324660841609019829718180238533076955420157081265396451922844462592549340241312607471090616114762502806675471646822774086307640555566591576382832605408224531729302290962194757466663090447869822032976587461892681770155827095391081912303938711403218239907565609825918644576297699241308877118760375365776359361768047927874220002065304937206986192418406303961913821073600326696217581291529010995388287144101315080586103281128090571815253468079887480241403105042785786761294340936839826741963687267627395124234441858448383094955689796732366720308034491459697709263221439218114123452453401674948330540646288565827624331390224220118092293368481939201210837957869536023211412822156416215496557702649268452200404625630223898637579011254684602080722664824153368251250698030723760955177003766544211123051707548223585617036983190893905837550464916827630604470951592330351322009326043003071492007560394387948827553899972468493535764718766988621541969041578492824155782946870686294832586624573060094708439244661668291146638941648333687127122383541074864101169093892422873621861688117568473475410565336093995044399336297945258321764309406120592690157640130185938151815773019057542378982430787324613049372381107338212709700643153798846417140981599134624788285294774733528166754060633432150891124697902781558508948776343987331657960191004966555426940415167045657428157024274727453574674056893851145802761705189110184414445929182983845091443241678611896155698793538232973385481659765615134968953437798689530987654255213244382486096692937957225401527959820966273885822819141135558760000111867061080232263522008313957641149364253873941512494450002197380176815321049660702979089072234571200516376692989382664386128570950941551406340551101494668576744514125446091063486143552489944679864072435236672917965929171246182349601129143253794696942701813057448240245034462030739161282671602917869765936011470158558904947612411780281551700615675854499239046355203885974772867988684793498876086122043511542424554855279503308068354297462576690175125135564683045008308860977554923420161893468440122871982835909230658818646332704323044772787457524427562267612446406181858055722824718826384572826382745004318024736741892028626347249899391723145404194224597746665795795648888557596936441535032169482768505063494522973989956752614098015046837317689064974087770636744497347947434453747334986037714596406336615153332918993867141308446251165388613561339032987478534655188917780963711757870899036131210603048763670557734724131623975376219681088883942240495687991437599278362606729222459375702398354315286787795277801909406488823036666154130676112267851204601942200286468076196340526506580954875383161092540389677549859015385169782999067661677987119656834298314342888560838338855499577091949857880950249024916719578247435686462099618313412935110927279913302306586019232143415526240285019071929135161521890500333267043810384986321827781453242455397485905437501531836223263308882816990830880657799270378891066211369103382642572413358880074939078975781316274646581749134212308740314360502862414533585181431589503733948599580361233769012482503511939908320985109191259161224088378481054482945747416641358226628632892255624559330313991929207595103001495630799232267013053810789469589245232456680638681094379679556018367788373786491788139915826872989479995385390771340983438420392049931491452634501586335208442256051165848773535934539432681615491939890602228448915842671308112997797854285067003748903757742490042904500899736989159882240483900746953706549349451405117567597446434029215983375316689534585415433285816093504659784693189301736631852213059582332235683877579775502695423144421253759258084953711491559963788754933830598226613254062630257146018875872392558872767053596660549089203465276249554949149442544431937601439295791483098894606922446845583965099069980158122466569607405050615447369754612131986619446862207747110400836929021836751535498824233707392119388307294970509404765157229030406355769321867089111971620020475212822261184601497560727603577053291198939346764117566504366737039527417569217293555570088506502319317027613354137576871973102356180332617593827392608859813077608412772947075048246906785336053557699656571463849652072039286326660529930095584264498281901262940160895953634812780735984791012843687396880287898166266457199966811864218983202428973080298898324766206306903301724051776497926224920833446776235158550479301680320109542697956171043496868881358243418789884218959861052216455144100919621682445100071502884705595105309511120214309092980661048518430604879493836034316949134205423659004896322607341618286833464574751000298409082316621330666552735307161825459685878322628397824067232575518170085717876096991477553988028598520933622000429112421992206135826858356892135752117070617346057733296874549650515703604976242251090563673704455212860455280264455309688536658206727866137647400425068617867935313699646942291795799341718521092645139066360314023668663745978179598219721478367994982886900267258672748364425859378627600851943855567931158118331458499967370206688219484328883965995453294766370253160465359092694168779414196807603459292923816474846429690873136409676069564351231914324762941971666299663320459990879630258527908108786617892079634318995695165405677595935981970114051825799738867007678197383886896691264913262350824497274064071790708021722026325590306829429626196982150164048235181579677187596918368763113357502884142249774278206475150588663213497676352883144336086340293814635534011451906146450849917060066228899938467287057887806162942746438783205470148590122474639965909799333633840651947639433405275343774535383068021557245317636027436360384672605212798525881274933487936541854235411454664657442698964066478203743965099881459020124148976680241893544055284554423858626775643815690139821745300712523589614148982035349430393520822557700760921350857626250030848822645945964620678288625309348518949352391348332515669655368511454169675147016133543695188342745498596783735825997253104796747147380305688099800224798247799725395382442535403028776889053128747061583015287943127242102227017049102234033022018622259018683149406442925049034559585297400942632856872322553923582510521085964913996625640831568765725205997456258820887346998089913943973132830795303792244691753650896429407518744184700234207909710348381181112803027538428039322517152409318447960210594487108097044542195093442946415869843456740546129905287205257500286608561118470588446521694026447883383102983211084624957414792683650786579013213304547162191553562752494336427690980881326671683933787023891132166709120241244252251426502728145217436124776502783853392870599787452238003678793258997299337168759771117494785901851073882836574867736220008757322352742923084576274761123519003840284826387759769771947350141832941472458467253970098333603215077440030250862838950411747395576830805866391277025308640907249005426220320088556230507572899407859188517246893811334957424525076513203368662433020538225256467885040239474261757786158398847543914998909557489322719995636914235547746839917719272156572178714035364703769533150600853028831630098330084560502088599971338448328006453691843413052654878715061369560019485013236596271929057464505870353348908970313843804601148912702444833462961320062199439648356812793226490406021691275003622692072684310754447277166518394626453197087225041538782089174158324157664225182879147659246094446813669028142618976062441964144709959650072623827625019915969536504544398320879887450336165845848069906077895981852706216669537466002318413200869935612627762770458617803991230290792180276271556320336566745791437766862958484462601157909618858689102547102178289839025576060807762472560596139112970657312850970978083733595681501530883949372868348785752163412537823408386481950364067588903885361068097691373757582294621402632894665791652700895543378958044267879081887403085143260200594840546263532851599813599567268403767052468185340322090395809821349344302815552934576480535808237688943552201707066765345273566453717435782368862634892399114797230535514689712573524892940058407519758826849865853229802129832484136386998628576141043236754373015540451914678326916295938791723175018269068590362191711761098322049067246437564661155098707548327446437167641495776352202273289322165585354313424324625660670721239479695805657710889816517323390472641909765264060789197489735824966326803207043921524551287430408208550782569020668825767866674720856623909332669654430677961415037361284932386966906043751239449688726873225758245501715589805802814305972109590914224667028283982648299950728769431151433718154834683351496562287206994054081260724322246077083002876439068771653909368940594907193702405434882916650390613903817890570160244581899705613065404936810167883817175050365981087034154620797829204208879442360332242316355465434955653162506984336253018934986738076921381434734729640189914723577564921272613559452690194414801645555079885532225670805971001843812561376526173774475654536030885169640397377571753265813881477244262296297723730977567713817494947728708072695563477985672810772357140164437532156861239409045467130419668683170417524613622803180707986518072881615876045921251811033377400104855672203459548054414242492235268047987247733301724191772847250010713609692783548465713778438092783826846652451692286350757486055748478388442200647225632069668559335638139496990140764256626570998302822280861364315623122405927123042794618362668747013607585723345388390995382084302773150983803282691160424103190951189366080866032843561554956276347766155031202950118181769471978234428811247155237612399441814568935552656978572319866290400099601139538965986977026564828792219354799133728105392875819844797839648142022939887190417667321174644223059014049843984529066781302561607036601199144383679023993175622337897870084420477628842856011318680040197067661507184494853407408519247679445473875727323442380894178717292990328565079436666633692019715690051783401321818806774210609386713489097634310475367288575444427783835387749614862377997034523309723550780498595398348446474499224541661626469142344088884817362314129218244082762620144159158938118726502758686298973723299707518018040776608329768003051293077454875169504261524095828704526639434433165288941207632856530338233220584177167271862600319845711872431023485632582802311902451388963775858231841734042133414661259537615549916541997547218119967738615821740947398327522751881599628017970339234476473668269412377358908998917214584692828688261458605585344491390443233174996889982985341507684515520857935643834415174916948761471288607707412021013862284035793765842821755428743232539967320195937435492256453598445463266960986906653707263389800811093764065812278605392062376289016656466409752039393700798263333982221792079135792168942592794973453474295585592163348446889524632678942895249223332685956424001240657454737005621996843312923557591899324043216666087305386632543433215990696363002939916001700395134983741978324715221958364625965586424130379630890392921559791731085983722145621688670645084312795490479505494359911781552397943312671103781700341933521732778825039010435039723589467147001111910818573569121233464720033290750632934996093914793402244422384993835684959785711202472218377438120004599035452325301015071006893814812906115230867020636039911674517043488123150354028421647448636211085616395530547695364834171410629428069485913783725248504191975450737642734799904563355175245401911598700149194191685907412538293773856962983385596028412668475005345764165981796114943396601984278571031835917616738320864500637584328307986670050088723797729500237622846698033990674516545782987829746086863611290618846882505905730212306385989406263098470444029763110921805871983760343797536309074052373839042646427424341575586396942838883753919365601901461579069136480024487104993563734219377485952750918290276712083120879694020447685466325986805047959343559242310587923237939229672154393063761378388598459928804318020510509317640725121375519386577273352386860167058844727847411297179319261993727269677424606883825077924231684641401460297122271781985197923288025122418888470581512753339401640871596112513319700302844410782421718114595691340967174668522631590103230296342458797203187041487489964099559632688218788995240656008291020764857418877722351171619860844893993850453935019201700763189731568148252929117562648573846104036381365492323047237822338719687331741982321341570198496531947472203591101999053588164560012684431485260430783280159291319817410997774132799878506856021514859153520969272365716655012622908432398723444348631119289551730385074675632702590524402864952654669238504981243549233187355844677643358107040834907683484187904752660996561306293247690985131600117518705584793297789149893707562795119312518319855294092135358451370428339764642288356504653451375218237202282016099222773874658622735593630221719706144904864727370327555377544008541739922332031232119284683798620342883974120827388136763910697179028518010842220507268401139907432977222774695223672653657269208104324762454028550484056294618142121540967340356949017705130433602793322586455045349137417951722740512327367533371273878881970764450689725810182218433997644252899464838146788282819818393431958679578545247792728880519718568226673948837331007985334276351076513854397717929929037937997044722688827219417905465411868721727743806393498879134108372111438190608863863201720176627783869634148050156273185238178216263151454753552989940287726896044089429587443000615949377866666563342745566644734530652505538837909651661995923519210169403837345580943562177221919655726924886783392905004991586034403283989539348537718433087380057315776762928382351541077878374596674365412111779453545473209310883732447031799168825545621730353476158415685539833128292571668851816685864408891890721352360542474088080753900605493473345506663891113996045838194282306769984746821988259044494512737424559181469336856157976783311120509501473788949572249573550523263156618838955789073175183144380250909787354314294031991252858720134641353249271511540828667696748768375367790177023082022260310117642488048738770829750766634840299334740008206555870678650567641341337146630926516856052165943143277025715423575544901831175817291453342702843131796695117578461679646544476826596096192503701611468510141825633411235691540201757741843125050757437501282152135671593283643937218965982610699542902033521067977562982756695747954166136069270358987820084663570779488119389689696715466579247972052062688769953183891310604058849373668503980861202288437556868480713234274296084971954934842712357687584487530366637211113230665154478200794685510639986273380438040861947725928956469962540989650417141357012048404628076825997686393181380209404938546867041909044606687880923245861564756610071193561313367250870961393994123331917557941590192921071905437799410966921630151509482676635519309037632051494646938217912647294598309332821243889271551125437477882479351758551606016676575269031333015535984092285614439725704832263234227016096614723427897779931798455980017761437997018557156208471308516240202970222898486778780832378220105723252429542271494737210715497947222560938014339537998250400918230726174089417296555879557333904441688495812256633577918311421801408881965694858634297660273735934026225427489665014642846257052751768226293815089654092042441968731025665741016507429905277907199181131626832531195311080857300529242218900219105682753988441115933609815821513791544852584854957027908534993970469852024236147409508811658596942594337769553809106506563142029388430503294407892561355120004410578375606962606995078487646792132219469638432266388902689987501707392235037676937464411533469114233665143341988920156388739388087952495948349304560419398521375231886254865837431308517514230886762634066662295816096871531688729544809579374511286166687708196867184225748347026886926143598357715811288282355862937096846723555303984759433518097979666081365107684492249612441093272583398828836895443845912416206500818084807044688578641207125332112628404663453821745155183648269696464554225104283883878209146673896125178629330764869089799822046902422573962617273966668961707417231776118624681110334955860853768349764489205926254566760003562157765544807470313408667038436264113360037830485609044072839598603137283215137261047751680983848716946749640597717008189898999599016650047561712312813693164173765041975561782543037249737049071811637605881622540979773649184531679427012736102858733267665964276035366180305217045575141884076619764225766130396287029037318421963373684493628295073939146002263655560759713468828238066135058641291196521964480044384603584880030176604539685162218527665025632656767880287303139919645808693701783982368798476700909814227623295743581388262788411971304459367628231326922100992407655987208564695063414885888935993061017654221147616873170604060060395714007947440770673082411317710754543449188727081350227858465068386651280069037380712637799647265658022454874338277664282330352676674920042268609070940831075049019523447284118014210049131859417651309879135433872785795141185859969800419776549104479970996381696875499148615485189277400685740627942959059173110859269849244005751268758473694038924019214280177578002452326173667943176584107616324783959557144670486542719638365580233458961408919726389207598550712866157672024774438474180751021180124001734355661494695989193801905439580685496268443176848305787673764146835096835306036377094099759847434721487897043669829994737302627891906695423077428315938318095602651278420513742921927782299011165295743674274639126942665279182831613544431187938054442381043403785752951628770534702330197397049233923704661583928003008733736549281957202952085338083065369565982634756199730267040401848466846458240363849240704677906673735718551896962302688714027003260516745314514542753148265906084984493884628881228241020824149547862380137782566118875361384268943701795599196618359778426559893603912870298828156264432685854887895086392561936687804424631803171758792351866159950396568869040094333069914850994809614843420677465135083608463542062397630061347591832348324283381385204133464222491223457294732036006833237749003746276309835879788586295509968179380871918340250853143869891956467010169896466335440246032954720037468762244740669059358104566096787645005070422883547739230464585104260740876392746086348285109882420694621414666910081764447117592824014218945813287947395550581570869119209025822512461372146705005094522509084625315413849298004002139941954536933077478886930770316869707594245518784197066958773660531065031683047559710882079346858239003938651997056439925311372212203375361775137883927910682296460862736578333928109152043863345996158305903509288688967180179437614277530607972227741909108103267801496819823880351509390617657810132799371027779860614647387991415872455726499607304252378645707326402667147994743043669168645325207631867354131023633473422054654189364480026325323636008758745603301276290297289532698346135026126309329292689994276753944359007814112583270060231648092208200515755572657051102793849800026581467947992544809119894107522241192340753573564864560521080518655231427920530018007235165481828480784136946055018974827083452258660269187967637544609239220987880141097913048423419860148173977962936162221952899628835560296988638217545950200302107689446099669852766487762943648738038065618914045060897313318562318239036061646331282155736635979978770551092173588526206377771583270305445269749801449508721638322510501083853922132811489879536986855861959174892789500445579198304052179243481049474748317077422224460583873300742498728461651777619133412856176132303684043432994054007166647184075308260775559561138770316279870949592430826730023949445714881898585427206361027362130827422168929959544148696932229554290356041900606703650507507975524368863663995079047952926614789668964625562645829032250419350409847040775161137911209165375760286575108263666254668262866694565389928057978271773733662761588001553417128338586882933688730775741295738013662017483101050060647083475221529377135935317928358015862633082621897769173330479791998518405055308760301177292574402199541564303668863068615683121799959157040748759372565514787345358927755396778153283362329303850928748395332510679515498455379765572872373065898028582414501473194641610711686318806955312095044051270486937719326566959636890922592430200785519299948325419174110054595092573344799625601963310579007217390961657707556515828849253247280079167502528111094204164197116051193879585039142558107331478735701672274934390982917663450702781788649272282746028437923770155775076213970240058747693904103084385998814921761409379437959719239492200835483698148729638625180922208690591580257721726060393895994078612387201690451962932532243106000018491058702913681890116183397007986758597268555133132701588738145037618122374422362381343735652113585912562170697519838410801544798406255106912417478264209210724160421419247409537643379483115440336969981036824759398447793102752163408949373409992862559209221974207138953226486476217778566883707274649517097372617414373819720370235750349601746961843280014100228189864981336061201705314660218157403278819200407665073601481517282002482067853537256852527527171050960174468122658702486289273484960932927744621431130512215829903426689740661343223793091307730015444921908209111549603628994438115901585477201561488919840322952240246885222017807027663539125041939452978841403022219221761528371245928554476362307418765703541288163264699216986185490213857833130569128676522444383206539584479485729903548418267426572304965661567335545708549754309088910885461399482933874055349839395925562830819140406086192288547299498552860101227792160261221898475197206180478804298697821471367011651215665694438065540169784688956431067802581827390678866497441137316911692972739883957362714367469707983415214044756858151464369983720524791002639901985309160632923665371069882265567253702341575558899412894518080939439571686628846000004015595180927078654338003560033680213947815644682449034303588329737144861789832386036806972915004269330867051381563495742980258049755475702091660275234086592741625870603912109514010051910540186737884893571827378403279204216450225412823203637375471262634954528510960964926127148670910690398051690606482871680064424347664045938400508274929591614172343766220507738190817718790101424579990832628900456172183656126835068497995534659060730648667388749399250944290268766963281834539667526543922168169887300177807378078918014711417388151745004509135514091969135667159244974722954948377773059760093489947946729899609965820110142064862154588114332865495079585886117993534108738041432968142528487328010083498037797379781684911906413368825456994963927904028913259040144990049707684061600589332802413664994987415483968698252277877162555685607340986944946238318442241808127349083360284506065396735539409793133077536762028838461455450839865556365680737398202743936267332437627312775990503586772202608360855270901884860570491952903989182062759671004222225412712001726469090465129929777527475853017021248979769794495187810227378956838805427658858040763146988012437564067033223409267160605956629283789527320855039343883097472944680286778644598476365102451594357632464480952949990395866833408209736735773799779342355175595449234433363439512213511787315682510641949679418693160480699091732810323014669903551905166523428050867811393610013412661330671321170432938780613610697735252108520709065815719726621048396606348240035056281211094489948190533054249216652364489949630687326539709759020736592616356775154121017559139013692636844028977442170347955612744906865213185499148029707434881184184912561264542572928137775670922628821846104769275301313751899517104576000837987571992996977661197492839488163636115031254297764051802010772748367696311356133646281848794605864439826414013855105812833905549468767992092668474162558969418123331596009983682841398799988960457907626650808323041029627264291851497647228598664029757149342625821094101339999239689578476478764069888123260812600460804342412758353587829026688322544844470665396022828962322783881178171485628014437599800009353465694105128334278143600635816152847030287085008243360746174226212017891129794320854061987070187843918290541597093810902071079641157889688306902043746607623195772716932017432687966131463109922023774332732773897016403860967083099525809407202842040050609332589977702035147160054283700863878827576724075035326548886947328972987231801661357411688989079695820264149145201887912391712632022282537591195153277736591029556065090850902346502875081393647858599134397424039904459257258731187948563916297563267603285707114039479465277419006732510325322038636180802035314056855917128665733827700415218134365678318740306415751054503805149509975159612805621310724454712615442534164267089839393898344156605750280344936923483140286282824328544350837997369293466576467314668902208861953371474275751262139100997478973122638454809456599302554923028085342144542546091836782179025807794814135373761245116790503790489986964170277622255751114503608944325385534413900916361033650824086012967535876463247204159806832238559538944498381969609035860571411291380872269687678997193388987694760695143058827038674172869701988817558847844025847126378326513541861354781180559812940226826259113755046293066810983615033018621163355034030261288664701659311194403056886133357028732237425202056234496529252865129306884638101402416143815339344102585350285266374557125603421011328315023560119030359578616275589811888573000781707352072305011307956513875419751244172039793881543712403575498150835621774495428054081043579015492460718014209634840398243818470474139364347781402556776220176358134447189295472201081329707384760483789950718272006149706843427092626818251198691516871988473260599071537684281439425508739222839617456097596589252423196106804901386545712885631436564610237046728856261289127123138619471127077379157365340848645720900633126481253682875946171957708604069882861454267592235927634635199283602360662141717053288267284725069234193224436488403450269768481598729325261512323953843953615479592706070958347114780417368594453375927198532577285632241892346283784451689256827998556408914755614456682547810224926618543760313856464841288756758333548347494632324652015799418494802910815278019478757765220398258847053469906323936027700159937166082501624582542165777834555468522528148983545645729221246737369596045955662761172016916265174037329990810653015431993664350543977822292079069918597812816594952586759428001162343879512867462205008489584007067225598368875062463510636777695452249124856340158417717033381228345797559435944566367439897681040778316506492097973696243297683493251803859216182425098044922380873496403871668778579630443149753140205707768652506910446138387476633349400904087416464318017658594504144306750971323453378902679609547190644798969590695611328069237490201399686291712525767099848575417437325148701977114867999732160398835429465339937990632621987699281982144032927866688842468428537694753260016394894116813104165290314225078102804759908615212704645074648955695392381584050864815730177409628211504707868755749591633278465453819170723683938820812268547514567550222182867261750313671643295175124676970272750923743755101254352122028870779728357710528650139382877452009664202381596387399692234945341583481820652343104910303947927897215946158581660808568094060161817258353244785486166934079558020584349163038748818965293893407934808133502791868552517477111683932283155335520168896684472947555574401582217731217846003500470557305857991610716961287714652258212396573183256375222880741949486466072670105352257002890527313693771329063797600092384287347692723015674929609867162533244053247162648663750447906045871998803934406124039787751243322057370029709034132173574657439428287999168531177224296045528552493681864924020267850430470755964211606820271722264762849956935263793045007154722500097445395269862825505566181346070057300574235650648700906990728737390554781485239109008548226375708663211297516624707566558285529163333141668322844826386307674344713759887479780594973529478916119175777709803059573688566300204264805739754185125998576013831943077873199433147067479664964447670651618215677074148810703785307041253237015202652499375184092455929710412388131533875080204031620592751389038961514383351180687961317186201068564002089327330028886972467306629692917513694787537486360311742593398704909230120047303954183994810135468393069300548620385368018119119230186393067940289392079690585310709418196580597913920183999075476052424240147056893763804725875957863186079611056523326170318688612265479643386953523782743061490309836443102683323886930867504977122225844953228203428364382494596462249628064372886383781430980755934096008159335200722746860078087837295435879511233533570885376732343318371739104061494920375704049694180408385931417396509748807431636266425406403643629333434711528768918274280039304206034812167704060330048571077099248915040877419168121895428455055462132017069048407834700323282372593160570660394938657356956330075615999293648492775034457436240136125321388478994010542935407248425272373645161562785901444540738579495478303638136321936051016375434032396578578548866463150338525082803084621703634617974773057867995941661782555379257115571962619364442472166415156736138162433509213230892255446373432510089328018127415583050769776043885996434069771174865247906237042793750843238490457432947262728271824766391962491484820186505509510458720641960729130441395729240823239774612958645734612723653520056530102312979969826569577272534370868816849623364310114811003847625631163730351513771080374938095886652682033528956266267002465715436077886092469953537965138788822972556200019053874577394445017674868184841437428626850280643669350404234274023358376727940393235613712390568816952746811770171148719620548316688834212359340760561186972974128772578138532356957951060791654752092849020309315500188364716877348831896429466516206174060213854127845998851374438912189587973071380197117070450049963959851239304918368401058232971773931109900683048788431072232019438378596990347239598604682002517609395607920715755496142723734261831792378878873001449263631148011251861968490475261552613422241291689025835768029979679391812750789301167617601730909373539517663950260704589906421849409139445458606695629317995631458835186534629630650566508976411306685184008973522441357358449326753637149544639509052406060586711918449995712173135847308821809589481990069416389762097846451330786715238865272263936496935884268149908264572487108002505680903513863340832261498666300913482705016472624686021127819272545635368043200115622577947122491041527157813682738272241974134038204735428592766444405234745082067455465578097858438651792720676596890608218206492355760581780565078656787994357506465561973292738149781922090679963760142986335007870759622767595637688839686543063123592563119783079082034795312233466423839798184632156798013369488230978368423663980822604174657002086082658695748895008860333956170312808214254089541875721405708063487586847753890052170447062660361237749402306646371952606933889404313967812335735303058205472746960549575545458624311450617761681732722229002046309672574980273101542065615964742704310946525263414396374625899630590247454570369281586557072817665465973954811249352080491020431145554357696035049152045967366512048466822311730478243047773241694611883640082893841469221827204598277603041559704602443212525736556999140424411515067953336039070047247478620354305740760637887449398707758583845025582658422408513371469501010735441199715123209376702535536301461566354804562806095932481724479716456256613583969642729389388485620989406376186656780210117934805837649161486160016508361450445081251630442533027529070330918296489470806534576753484668870111978282517079275311804731905832477619218011315099803296355562323213563560770701793206253541904721429078321426861109383920439484820693605348298286515460382509326519506812661919034147410779836779085619634561540478020930604829679798080989174642184739553132932959157276420650812287762580929993908916340651864774910465870784211363346342382136971796814639514680290449641833892969467891490669767462967745080621397037977563031085275091019280700006950537352138461891068992090072326156091751766757643137333470661918144468534093813885286384026471567183700471929315580125880970476409617194461709663241654541555340240662589124320211686361803697588548945545349742453279849176958532619193936865929892150804847094046165058771093967985635057184357740766940812894504762142351222232572021505012454791865782204052249097497987713835601084843252144972909649682662753598082398170765227637392871458766952189611482581904483775822545667348459162092595235107074315895718819036127836352400167034932620308599662161141027080508573249226978228786757907705777428473808215979630666760017159838122087838377150583547457450599013100692332755207075284491946058926145627942737764252379626972118387868927367988730829187342987916210857002754295959221762352324818670772114879862710757853563886989910114250680759479313267571135094744587505946999469906513179104504915971289896631776504704366970133420421291178048455908781404925693012435446471169971513783409620691684450329367493114853780792570536690715808781575178505927086096278560875856810158591863430569965057207482551167278381005298453965524518090079531145742138461286717006396789988920875029731864984235242189032451434457364287716613522905053252177245841180472011715561490812595950325601874864459093885946469795135686346327804996985955064973731009985178514642282167914874796839409260975240795369361933634003584072935171850696744369259324720883253717887372149130979514807171679101070500355223958171165504046252425793371648788783657914311202885647920446578129555996435229628737762718033875131070423027992782935028724457562369460332834316183425564540816306305990291737180357467793972877680777971669015737365053131176789194640865339853732110338578139126995363857643786075493500513849121670259435936086355222204796252796910044061621374666166192961569518944309055351440596681439770109547191107783434668160778863292167032779246240187620456524816389095206802769490070047475257862202085624755396087779948382271494796637284780243609788204576318461926797529766308696520289243145663950602029657366094448562097460837704706786649353650114688298102661947599344751698218691174934638066449536806556166278428129224880806169886815719660545927208649329212907061759181401118216775526740933520422497644096983412117665977786373323310537064879243953729351664250212890040147043760258260638218167476970454781754429341944214581501738830703866156594955867429325346121258377324352692930082937940603464418769450919479764216022952217006585429121990231864111135777626672336055144734110584243055645539176544534929985726447861580639849439397606203861785155688110578256412830956816892748036205117154364458954262052153080303912611462333563145102761134019582297784221607725329619973421589178176099696279884164434714422668259596292316710848984251695793282894536955623802197635738674120828281164962644462590290737112258721617059450145989964897167429823378620951086788928081142222769979684076154765687096178753057265085289099531887351581740882406816362028111814513651617251263184624210143843213550404326429489680453932647220155692797020343018110563743676024750355223254830334968816490471070078332653855571632650380345175524888962777334295900938447165948400256549655536618218666130152969338222945169848951405219791045070313951518620114227214912427094966613825750870044742870430140008840727957801642684763157499302040727821819616775784868557516065555229210360336692930566744134602801448658672149820900578965596026948374679299078206584074161200926153329642282733126851767413744092222007490167012861559859826762002518446288308102185090706556621306838661272851357751408165245861193765195105687008757991298035636191654855257317126761533492939778874054727804765216817316442511740801072978848605074716441330805509376198010821008682698139045156133612484684698414326116106442534569602033366613230518196463586815836789299104115866583694022821040765869109057081130762499760308335925905787587155167865993505750083258965743042711938434375036999901077767399579284465124655438825774123419934427781118155925905733930959432239892571655641932527298500619918585694563839264893037182189642042439601257089872805625980367527658204970778510464381427504430827220048062734198907698326363190381823844433690711798713178984628358406989237030087828497745382082195737578452084065737956049033470999579313649682670690282936848298459311561538847874961401388003664019580227869815340156390612131649646519016893358934871226890299375635736830935487138852014143955246913919243673398778192158799770982365365458858810728618080565755321209312750558243892216372986782452140766833772669438690834903666704428263254101743204492914398316624016258453482132299204101720040913072882214838528029472271142000459641838083101754008524993535217639599613203476126547216245476904726108332900544062894758757007227465568164983641252026682044242199007437785945777922666652745750677742705029260185806801129350605677167814569137593205664858457173746819622435508283467636621353535051396967551787254930822574680160277382951949114240422243454692868183457684134416859812982010371041879598640896693580965633013696863378509283878859321006231633852468810506891848539627552322020931058878491742535751308612790902142360500766805306286766578911569811259031266574211366456815475254698758368031131562215047329059193228906980976041150343550821135614288321024588417236417469095676321965638094075260621071880396992607414721803268215328766758373415706339570235733941205085934422279104757982736475463128678879400397189437657147631773376872917632206490866367223916131917302480603509086460491853867831993932594218263816991920476794179323587049906676408760942809040211548612758511377563093897230380860438529133537963003040022278333509536589512525856008781108173230002955387358848525090541593628966820445474901424541985198016085969677301359624510910396774230336976213461939763685291651283923746455752115927851835174758822834792288967311177879447187383454384660633854277032601174654243366823455288621808145760944718463908100048991367930624566614366987003267952050143373264073753988836538795462872756617750218152984552792437256152266557970205493783166224262670680821249271581653758982134326657478737665103846960211566037174307815833942636257024776330059223937038098063744527371343272512636118152762398255134563745981360567195038428420700555726318032679721574554382513628258033365378024963364600975700417382197164504129764187995879671080920361657192756147304354032015130299337114951528722132042212708205901489051817144002771312484327127639250117308691528763031721144509409941762248550342142344062267951679413250408466924544079559146881341541126439366842146462179910413665744652504968309806157777138889216839424247124099058785649476139457252725779421412380690783432980130272420633798870872291089921665857404767046683171742722328807237933944157951210745936631962555076470122309953464569778330336285874870668647464987105035136850601978907720415986865034780446779133624705485112099763664070475875209196083297891235700773037752282956707829543903394574030797787030780193611124753344856454288036290101648527835260894857132126289040121742513896807367706359943860753656352260180112142225655524029407880286853585710241865887456408518110886220802063210663458553659735503172817872360768026969311603208439313587254278368365009501345739469526427163085487111696724690644035376564417290420738671005352280510308206431100363518381295358885260494129816687667839198276327129004657264619644565548792925261106895601183656366516380901858116876319408478068497733385666980495860831461410536165243410852935116298904612714727970268277628604710383555359229379768437328199827481997139123805662482473690914536183979853788761862634527713706612115951044305639543151951814223475084402577190459054469769172630531300309508886553508782703609362295388719923937025227551355736814682825015790821782678936567717381219998291721142685391577097496882666950340995474007462749330709876122233950621018912502173926057846711016866487505724200492708140722387820862175959471495593409357772334069183089138392510936606643254725098794472939514886756599547057044313498946814467348967824514141442464444094214723244007188303361448589464608309056755556978573724990677061739911606412339670654968554624641459272066777132750003612892725004778651881751659312969657458637241993870339035592021815103048787761434658280042956843961622081305934444114541555563046489488000082148795864319021494635808449792808946887990998563811339628733373192371700333490061266611894122104503617705065053103575681071185802463040477415529549364316057978362123608380779688517891455314219972835468315714293271433749698774605457035242410962776192659353712822633631012870281369756890004797079820158029105244532833366112857276238287599404317730907723995884690728851560272090658972584344473382330735645108304215671377448810334910067244513672544275998406338346153300855522235879730439145970029996727781381848343333364133668151783119949542811819091757467666755982335987585951598315986337173338085769960927022866559761595750530421905050077664921730807667861617614271984860339067694331578123730840721663675676474067478769046389594058207229963669954710065966401184928067964188751497762895604287060776217211293647682056202268211984090790849861963409312666775337980280680532900044991272101104561219826166845344237357836212585789474615959672027992891123567403600849306182554395932935325837307879014119657019859448206282946545750273877541425467660561856473908402444747259868103692348893351321471884950976451519416527103687540845663286157661322624188195253393959369787004476534444706330306943685919771401926468580675847607299509325065758095087046441325875359418289991204180130764477661884074216611024310683637880001818100067909565361763913141676097754170800737876222640894697235085179799799948378988137843268258755561210676784570165398253111093163997174520120716687862157864570537988968719768097182937514832102953827042232221087608973690624798957606224196682656153421650791731821674955379076051583151753236649571069074502890232034693153078346528917219791695565786137960231048325189493530708247100069420947011296507833407006089008073310501480720212203616389360657758757353401061925466775043189694951798722986385620984877046930800912375021852525895418517236064148421272247678338711589106267962204750494666187048929931103120053219365355281587072043474540145290322972287590659951501123606444203482084242827015336497020162630390512344183307176363126438414993998130175815911533239294556017184606404098886866866367489653437158416464378133766911850688747317986443936649429581305067017942187005078556388166371477128264293324307781388458878296138999720878317834711712964780839209878355107741824258380573699702689007665474014032111254755714518151069655141880084592261431428224468052130977051781850678098345784752652225944250902865553625412556992625023213762959429870288821854246691353632647661164485922385758235912634154138026357249268389568798272788690417700236710509107119646741787224186193130130756318434865413663246745677578004201889954371783595441126258312446245965469387733448339709051968707897115780057558421625059066655183885938204182829966975576369837598094907692853995122116579028787637264092688685569081784841040362188507780025621823941365824390541025613077193490654342437065356875679563476046800803342731345842720395592744291672224151010215843597172714440456880273459838099106198194033276881416754856207258030109418138063000431772376150367422753681660115457331966171531799288168188135854535497131792443314684179845255116610747555118346892528392903184157001920945784655084700727176117507937640461063065547144306539628205668733570251374906488137246321578527038075137254783306315069376632249949509546317177337224203802217734117611440113632667025190547727053459369812464767911262630242090505629578554330062162475367674846097832670912582652327683061791295936822748884875516123425177058975806355761814559425365403440299210174405640424492089347164956466733599917155747729423093993227030420431599249810557659148921132580841160515465628753703246935042582454840496889672970611610088190546678724941298447286094298202434613612512014597581864344721310871832315478449144643878962222667610721287888195719373590051142057839419934489059744958166429993854446266003207667372632978965916417599150881768249104723701278895620664079426650740404236720619057932221555932988725618449425451039402179444416674484163783097392987072310862680810362433223825774404592283707191260004634052647001260556148991039058804185089669211455855691682852599014069823571421339368827198363175961082469947004657445261268124879926922003795222626210927768155481957234839625111069366821968606367850397598706749197984740129458525855863450293879423877322588825643425320520143799659472457506929330310927573375728848288984943392223813004656879629834338586934012144363112797130627797230664291636028226852292209780398477411897872183006775122017218932493594208234561797415353836099785031540120338050639873703666009844883693770283650368465294518539278953978986287778030594400350257587175883888483163629490010995629671234500795219242493875817478003277007682464485598703482315917881292568032114059531828022930195799513778507466756849756075654497862930744863392920582602667198717763233172803838374820431583907744853174793264895025260509533111058829267414012482863376428242540222747789212673822265987195457508214561580531591413722194029234264519028981776300524172542661449552858600471984415837248935613873002488454172902359794211559955558396573058563234106308555052291558419358355475012376992253709884499509481014925508891702152131442175197320989568609145801596890115814998374586454303660887752385831037057682128750419758560726918979768096441720157175026227378553918856231737381601826627035517425571084858901696075405265330073083293368715762640726285964846139576579991652769339693483565756133236418537338526108355161663869088768030991049555204811970111694934193115605741027709700942157019846063898865267396502708721287397594593543158018401856064219263276715004810122358714587037442973103924738614735308758587045837932772025295591383708342193070282289650033607063507665949996448287848049185793517169292932603820821836331015738398496225008945065925346251018232173183325791296048090965896250219551550082179925276395750496891451017085927461136056466951131315105507817570650359974797035425458456577684178749617578387312925861002580366304207124261058581727500597751749265451236097220116587240837333623307018236123666053578615523765033406512656412531302144532608536420032454143415627493743830405670566751897267318071604552555512357996488800703379036702173851602314076947665382848545167204947989530639308751976379232146794485459322889460605415836219824311703891388183344315684738470735041829002017243264381722691916608377948591742367839498410667073054652734959049519212784467875403851798986253071403688432477493606658170378822486811524273775542462078421906551608851642749311425454997872894923035441410819038257909268765748627519139999262469455333273566298393155745758549790728793487247352461858106618679132263904413267137533303189329062679340060588201554431446352660355011850989750831210618511021302882138779301897522831130727887913177245880956791004816918435827234918226814062094556827391037008828787582311458338465333800965095869222570145875361888167464847859556228857920582966744171012749183279436778272615985131567617133146564728456490599722805620563034871851521427059622479324044548138617100963972955124640596882569597101605642432198506724638088959461273924515899049776354339285949081360180066016475855274785609702150482362355294946379668644036340910534386566149530798390345542750029375496421407369846065419920503033336465166156586307553225033877460299958794457642015211637390435226001626041821088225519633478468627161225484168009331106833699501299489205404313454948418057579011074465967018877513116501888944615210793087953388342531619833052903276178215371917609129381375173505478038518770496570084808354203168758719929123094135515777583224911569024268276748112902438879800307899084694727398354864577023359146593642220691337466960573457247125088413584827412983624613165291841706583226343204953903410726347624197963707107994299056799570991770886807606110285403452928041947320262064795486364961565275330050238202624060561946318456073653298857210991374243114915978434196623964536381072483116453251085639263854249641345731414028689768773074097055901954334120233006559600252385643361893212072814714424405139106236114842815030983667800672073787855428838157691132700038724500757524730506870089908947559984643947945912185686852328002230822515405709195039500672282280203105410694182058879351460348557663721427780295534359676580611854191891405993138876650710117052949858009617841540423812916175499313317026758300107832215860720548048056442102382834279087766352994529257671692546356059385213314929727691165877240102454132046997924010895287542263513687537602659170657500419839606846465489206413752261311754046929341791368974555155258101070830949378228771501185579281438015866179546067296492303336487694369728841672410589390719617061893763530121944866389870351949882764283591844091101265903891641163077257492487225524533513918174944672370728152477211334120332395196296386125806533819645162063803373044473494801265066675034114681798773689920793363952438515071139019623510768290539996915171032407822360532136917568081842569547442407857502665143141962732189041754612141269658460130632054514109462073406758705830617901611221059053380144847961847613126158503630378431183973564797359267108078194131251336781291224745345081536277237063855047136150197509319051730261128642581547085120226738721337736666031385535753845653208430681056214624656819513222505181878353892302881508177858099467996485022594830476517805306023827758803474913114692067385239309956774056552754135938586586526675376926907862579862002200806849194208197949157165962071862205270502623445375448071117137861085915273776419602176590035337027235296232330741492535651698128514549044992274498098460443396259495906127329199841706456604411104020652501183390432546439344829758099235978772531353951137130343877207454338142018189798304837444016178318860106234931698292158175874754230044940187987239479406354842842960736268833246620950023974053261403693158197250226144334456394436155109070504963075551311667089655038351584188434303303194635975054867633845384462717144207383751524299681166017192500541924185761280699562603522792891625231362095618571705141547663535759826670577707727247471433148981722613510459873732990662447335681247378392342726569312411672640864768497803206139772442390223397260439699734133885504752890021807203756702393832872559811465073260240872536846868747129236781301323798751827595312216456664778313427379419819186551927252036327376800568712347494612822299200326129663037053613201231213558970254507243600398605355971531103928891890462986666198652750081119645730152909474745281478322699349635308831567352911922564700464955905427241084900770223974888368156829970445127109687480907296449838287836152383055071254068614164301611689574272038507193295132075834088449662804955442454020524643660977032415079050681712142375529950126125651948729739941601902085111934733641394303448642609328652531386393647297692939393375905338310236381330621544029146855492333071798093925257376776309882776260851620704265937784173424905624913990707387808148978725390819440313617346807368589121246787805793627731620125853067174115490996158926412421389939813616042270217852541640935159685491127892467706533990032746919918110579403676268124141563258227867243282792452378803045629251956583509008578656657540626709139197030461526409449499727979174102591114306312167353737063569600168964166903273480294321034244308529447532833902855724051895898746368198317060347486993535792941985792169488318212196794188453757395189503501757401745758587978744645998748696173208857187539892382454133598034961297532406367339828890473696353662096831788775237145629845154512295447104858520222698738000740112308528899128329241199895280408211736477810447007521106015608812588329574358660667268860205683027688277542502068192470767369589737614786446229502363464518915896421846411202870602348920505344239007170589829845723286740898886234136522500044815150267206844762872253748135332562952489360250808875525040991446440096714585775626430375176868601027147673137586237628690765373575860308036930368235054428660872741715794536084161527079495585289206580998816379768890991896898776577932857081986307939225040787837139980912889171146637699055325403742645003355342541871907634150609849548633980914073451882333273579555316002875950691435310732270633428895848467481706780048479188572590455716723702083631171336794820492495419576862489816081448276378290825270327859457656710406979514260479476768600280225460983233765412305084297590823883387806556703441049567141917122485599921051888602587153071187196212420746099589779615904191784732572745118516200452981385076318054795523887325278365410572664767986959975612743775771886396184762513358578123788231503445620903991314158995099988282833353523158027823480367129734309212686502286791433339725168217067829781745809198490224710502842363855712904387391541618884715280405694585682798975244200466760062734091060689204632250622280812658142901978188052980671012765636614157246950248427525132789504869742766997410080932840335440810440555241193371552960443689999498065717122068627442152853804714510663955580654824117161672812016952256273581384460427788712866512359036384895233386250975402678933941342760717186694998719513817745297555292257623409620007254803253831806619567161417359814397550463184158558073711818870903775657210651112992130858806976384266797919777932112858784879902448649074350316902639805082727471281951105930735434557918181290215097486165203738323952218993617990962729016679041676836499242303723000979927253970122277680780548284766111966654896471885779419668476424492691105256109988645392830533895001636433560884018858278915220424930043657944679975785580758811748917505882342658814493382948876322844822633394955208843245096499808643923602555460575694083519870177553893486586599135210118131794736244862629127134626093094191125123973318617790606514496453844836933124087553182063289645394638789465174025387433675889320326916513526742636851284650494349912593197601825922079404515602532806784106158673676370922268990251127719469633274037293541196016837086631440370425394607451435998866230457371894052172481280740903506576124598049052538773564583567865949315633978327707160432246980238931652838724206289388484290062913034001869772185865009757519942085901833575138226825675189823345038137532122682533791483020084373407785223428020281545235053500030813222253501492471313142294888959417828390189002627637702889109962035867306791707908208683147820584535948839365222479531650680529414985543432922827353663477538125475017630708909286573051721148935187745787360810233279158394427614738489079512186469705843081561809807289633879134947264516062753612691425800258362882715595611655536461860679213852018621126167931190731512254495887716219691175039326588444831962181111097858716302809013447373796920596357522489662688137770779919963863544219783255183426570092663096711356242270581310203407053541081241085202293091760132479170595667252952729285569499350514792888414170676302395111494953759459014033556703780506514844739837997911059112425193677617302261363154393455655788429607827786552900202793389826469537537168384192529608462016967159187409405618230784655166522964406214382644424941225032491587791180054806029527495753246451780051866408859812546918696225296108376223156999914947295091104955825215441678521675998372399488935852829503239352128955912515258879135768651307284291686275675183489339445791182877509807348763686036230023071739613642890752015066545379145348629170306481943035509176666118030036724782013771456415626376169953354892058802961580621152903168041010297250130819614645561553605892052342333058008368391613162209585050518385275878408044925622628680153440006228256565663729745808012115353611868327929832587095165538068551052684878467810003825397661999378587112653839147677282228583934295368745567779103775028183193809699349197763914184132998563922412271425388659530365807400028023682510571396136690792979480066941826832821127632205737270459800245069736688667905566459972741156946897671231721438537831872709066824323155404724445372249023430642237337153152487897492663405372223710512677616266190505704504373035200807401135442421614500788181146694470263008561564569192533647010878796412816522532037328808659204734495763385877414654222516898149847270928888244142963847199088445726979119920570457676250505790063882402681422846207118140632682267632252603404476914242940351686336693190722242908140662087850229285911168433767006032657665008648478825982210219439699385997133260037974998131449840118191149534918524843234746696297703245213554368330319858500665436462107522719543809790903138064790386892667504314761775580298577854371438175043444381286036736860649056121597453265943067043963417048446776481463491902051823056314585587738253500792438501047560215148782408693676753228558304407911989126419988854061808691923216254584695156664147282576254474582520221154336867963060242973666307241050891959689105337834751328007371985984369659334865106977078512192665273117980415877057597848085143217142646444386144708794196705138737512777259724984463496779293912011615180173461234890793953731218096726412986118789622565100960802806986217071582814560921629167465718485196145033768054057663138993482935430586308953146956022458183905073254757228886594055647801244487658874704767450128424154575410903482658283889777521929205124497006202027247679384785107550893162976213061177916855871203782867069782395091793420101855407866906676706858650766634779151734544349165502566271084178070222088904104655865767628273697444954745153523080281762426015821247442355860845305907937019469268178211271561347430749748664662320343065708975308181726917555025904495251438918887625659995657947652810236374806897161930548710844306095919493563029003082951855773910962572521775060574053647352864631455161834169360759366912100197496277058032754784415525389266154179037219596140562967616507486672199921140520608565749064764642037153137880570446829930212591078782287145690543073105325416306498790790090678806741907611205414123032560989190820108399084567889536631555883248348143482965628800225295204526283916962464450000333326256418540279670914177439657641474840677229247784979021608630463999428817534765402627807953989694455571041591466852781542894607182166805193574276478757431245493269800756909265122786849784029163916558423244502948212561185757762917529079463895574079697232175964424513839714704746774815705881360899827739858373688981683989313261721814932297284344336848344644389457824652982881463471503789795771050931549746632909819514593734106084881098650302484391620209606378941722759327974991957117273766423214251830214568732838183458865770680150644407436898373056590502235755756086237518815385365902183576121676767034475894712673714894356669055970543834264504385809724216957446940727431709780143897188607968233520722953424911689316592830058604801344364902024257358882528058126275556340975723302410200790123312549235384137936169455604323901133267686470395734066265178339064213627830501323408407109328514349004672443750723781440223196789173942163499456708029977202027152148885272809391812348814038753917886478273466157346390459712927793761946220293259226356820488815979015653530968231595996598091591362642649252078094042941944729851014608018089525751248549573688267939468721980021814262592741556950243176973722716214591985612813225884626736523343143308881542831184529911089842579561598913201083878776927099910565939210939267514663459542423884296991196869363999963099271901101235764223837913032485802954959311109959827103892465411944322761761895842813489502006298678478494894833159610455296104237111378649797575194978460191993340677632094436293181079084658455755925873766280553425559362538678508152517549321028137773816484140503302479178529641584551096181962381077080798200029597272497415207004105147138491943309874986186103379236647035195274443725490082372898854669028307276989906003767319099492109856552938943858539073635772487818476659967012298732385121716263296385767935122232627723673570208596684795231116222141931313005217380781188610353667583011392920717468558458641776767378375901420169320570536847404315304599233015504222721348653991442762395587633192593376013464351689459984189952148144938545297990297485951942275516783982347996605156445153414245698555001018736034732393482665200355697531096137768357810390707305343815838567350257324837849809706637800045307444318110118439194054302951574981550791472913435124575876919599668106908438078713771421429727639061212654752065554602091713622325320718841074457244974523082119903923420109994201808174122420413620325083619022665030431056132305850030623349512114140378794455628271299826979198803887509073083970051907709234620822560253492882698461834515318767034284696625875409514749913929704309690198627660735710951035828499400284360326212558224958198124163864116235821763987381146705595216307743742654115048026038208512220795495107233987950676054615545850358263689792996900711382871617083606258577819304518078741436587554039279553103378035713921324529587940888095006411042936432098781113831332028549549607555302284903173175115310840620090554632306455222455355139198249384191781330255523987716620266615116782419493233767978557007473219733517369907886514831186436885095924216405826848324922553829387167223381544572116104284848028654366839138491468286066679057882369899432125298818166847229179687719769858674759457027088123283469204173526060985117775598946502709448041654101801425286615922026968780887891652894546951581029810947560714023608883855777463051041339370804401394640331444607472946362149601349124050823080020648435170935242550043643697859595425175216853848566214494208137755643953631820220579376419988989985697631368702295484206004461422193820297301913032093507919203833913480213654100298183825505751043999106802536526501736187464732453774716602475354095000692992112918741913730497553164334747087652886551568388190657637323838648817962174833526542681961135557067736598625472341866839449663047581193031909162706361810741497400686902174742597106812640434945942118826293481207224569992632460863587136247878541952886648477575483956069686786747568441608993748819785603919050500010960901728614244139591119730051780505201303809753300786618482071835485393668721028834180439650139440181888557231346838361822715437710636690397852553014127123581788886480798492603397812649107713421350837455793900753270751543797311918476044905606233128619121406213406613102908815566246401887475112365190250265022512408970586155629342407466986834783616766844986023738360448976670370721997067507801545015800608344568581391236130741379084146661893041120918312208849207686272269152371175202108909334859896608227557206702943010418829967185320802440594628667530668685542694441219235472115502692097972436791142366436405164941448521437957604622516639642793714199671891768650452329854340330476521152405230944975569844343575380440431002816667543637339941851449958580602487558571732245760013941705218289514839421877874975008642780831587459149664123940014357111936993734726213417605565275848471582991565368728339014329617546366258782666120536420672484557888721343398749607361865053722258797326315360160318427717277310974792555205503991037016840723472748444913067970279139393021865722891862159917084359547628095829474881045386388346772395725548074147233519703440406189260135768455750351778239703670822791184514772687393244623002455384743669203066064771427391321937070503661170611877026696831931295246152136910972180251395732237543238020598003724231978495295016365385481044927334193622524863823847603162622816759127502156479555180261961642827506880160051393300048544085172734941181455478929609637204031286973239677005451787262130806038311458581632623594020507545223533831643166474773488209326942062779489222072606762391689205042875527451005701651235122605777277840674416075240274984009031625264808129682089243242523513987392936522833111828592131857145181669704018277491098242748974321967176969969931970074782220568099814311339709737282027699657385486987137680339599270428968203253207939639143469392195486240014428912952435198631570734994074730076806523858245453312633398926705330795696634176727964154749706768601446913974865361002939580855202570157665450451920186893085896497431158771647331288243035067829073902982668294351442640430235277015627626485297050198093727885793879250811061265198912751698320125628601008360887552249683807086428896839765779648757067512402288155457638208931493316975773096054608666168755300611487745766558141842937236497007733011619210458645452504526644684872661258147710317473557316983800821628658309436912731989186859387536373995524302911105232445051352896453002726638733069445601761226847980337778861892394752437174592884684813196655956154375662589257169548217124858950683320695171508029931707758501040596454437708487587414864172980683140815685826521041433359268764693220036577449075370802217013780048310643258422859791569875563124076164515668806021936530106790231411836886902970062063499637461832994861755221304497363419844458797664280364937648083691934175447595675194826597204753375876220902878321264716757064611728445193926603079544687367668366475776693638526691336530843548438028254333746822296285077240674354324615916610688155143167938007121328943193222357432489984137366604573301499596892973678015626756066124403304742138098764848612136536613092153943897326135168151870371782895463726965120953356873938369382756943222101459428090489674009495265796554716210122477558115987145904743604977220316414614298249800225940187019327633624049612517009097392023910640866409669778041042525899520876222536415638716626849932731319587984586138831701637947284931185606614959171673771775545751221458143622940754288456637211710035854230627647018502318850708988500637533433425125006745707774534793873993974735592216451866020563342754354232527075033016378645096464425946027565192956634059743593790868459047991395985774488535915661253125852469883735149589821260330287997925480110102263588997167360444190331885369070645943593849855818418986587750138535829635898352089803675994211980612017677694667357399830835241953875153370805533999421439503509370576735824971505658111358415978116502990828865024871650685175662412355195816416249070059185571798357076713006645073722158947749424337171419852796118707729344936735415607178746293531333189356919055237903594305728972462634799934054378780811434106284471069562761431721108623889178379914615616165046054128772691311012860183644521731890814245592417048925909666631846460311788591387779348982981387953004462520183699097926022321934312331191047914738059939173902552932426012281185155081211849880045150297888340563864308293811197253476111974508738523770264628822917756003982881695698810913193624894116117206558013215422450850316355834463244392628478684004998734278262059328604686136677756202572750726253274384916402325458530524610454806258380636377581554067749919429710918868893499413999434619537254036858658480051036346088848303779242271732125250963694866676634003624070480919068317193771952298156351486603003847768885952104924149289895827247764186378551531932754960825743992584595473557948906163990801923643755654665396926335630059599728690726313618927525311532096552489650358537959980301184837133873910633226656803301603267636633245168064027508078794635354322838261177652842891156131406846003242122750047813344297016699096053051809041024027734008351270662157288598940227364926704428457099566891372985638864130207437357012464501692298483919678120147045558100926896219839611295341457645860335512139099927731024007352582883276874311005552768586506441961324956416458766291207159128836039234951847949201556088913338591410002374974788711053918828971742870191343416197578043327598697271214375324239752387081818894984381807967474109499334501766493171047402944179858375164988569691061133407310281855134808258753084557529592916819071878099461858323539723073394688497767884441107986011259237839099056675469104224000550216697260865877409595241575108446235140065775472660910961058452684532655756965732047825841798699867299420193384535886485644485029264933036262828432945857171916312491670886657534187348631680008077354972571427228195094878625383927679060096134397159143914717225030461373645985189729616351017996354568893197272416485554195136852323179375362144076356540837537544542909598783128698651601306175880205952106167452782874694838262458149720373152546981859589881864743515213995437080070573291961440622249176699380338038890629583758808908241849034982059637207543400365471748689081394885631717776748084756072481806863676086731590454291928169931058477258142324534934505083356464372345016718983320691046216829616831845627807199685985304075450891939142692631237746599074811459110829875288408144085217683670897072356679369339220201880304370459497058221202414845058893139621478179659361074602910992587712040177320616995813549312388496849266302303784137898700882485297800205312459039931058582705674609137249394200424885165876201282452247973738162962099723837812901405572281598096080915733248233508012781168011420605858002200505557834873973097798758959546969749824477670326124820288947967604033642845282562805281915979855301798453892886627859501392732552514298614507154372406902412398266943730217553230776303145875016396215032605197970054381866958727948949043734558624041858561143743818666081511485568230783040864598337108635580168478715540974221408902954720459245187229580873253117900780034395331188835384843650953705121246379674996892698632355065683855348411474132388972314011409864014664093522297259953377560066612197092420674591408262214013261675549654567172178031845190999000436592535159282157672715159470021664868998447075787262928475874436804172980633273251584347134567557195504613603779219118014843930844922431097383810797540604623203955349482263366105048112108049569022775470024718741373958650596666764596274128534008611902540539080683820962766284451301609395242548985168090072037152912271376231591601740400787090588111263347792891316887630702967839558531433218961384537125236068146445766601301947239006673834332738586675890231341805881055769292398095109305893021450696495670284819148017694200839373007779189914164839360334549089093898132324419957529725503915010378677106752334965842815603204112636241234402348049610377813300239247243337267863481512634773547660522079342597963434389338100246633420014086144027527871603331739694221085582541465651612647482768889365726617047819672220507853306552404172056664612989785329732119630420738300173006944163374618165144489730082411855888353399847645360541000080380019295352578869725615618389163752114885552101694005242948223888408261366001510044852277024727807482224015825999650406690756135175765703046166546725064732950418054308026933840765772743485454886718515444008815078478820848683339978402793281688194375900130893242511159404233071816160009717197398618240565129349347136542064383457228266383881928466591738605696486918882242054000411991124283884923025342886087728541490303149915199824834967914925545421876256761651865258739982527288655862680252073299021558452664017660758282598301297675966203667439247570416715143669529745409389282063939309875420739560789948931598716652080933081530938267267325777369772736441509759669351657510043121470787818333841558121304297894762987796070211213391785382187001880477796207433920525164877918031083274563647879280210625648238685159666348320947176195756125329205805808364155807978445660760287023517760184099519619111179735838178864781876040224963861494589200391071321380927293978557779939257393750813379427465554058719422375451108596549435148948050206642406086452419849971332785858745557210526691718441139595203612938897113790505640776701176777086814252984015365704325584257884378235965908863339452521865386158315718684538589037555307620235162723417074200691178851750591863070695611214006174791568843162450356041258820984498328195214524015708440677772636984295809320553143807601244844197220242347457704008430532456204624226727911993911521289002525374079921972827631797567136659548268204888887507013680203805478331649631431942125361589045633136215258765625271905586224640428729435443508739111456680052529781303108963213015749901023604335214356624474574945871136514787294903780884077695590475496643548475558965636858188419067663282088623867148775946327539323341661558055953525772267887114943207370467551320224506891248748217579539355865809742977217694739076473801471942437213326968953299474907814041833308016139218639823723525019962941833123446281742118315937815814917941165366010874353442901026202298448736802731415742616402930624243748818043963886581537491725523704833916181052889744767057750799580340356679095246934092076854139833580446082290950353829985289134887980152652924014039737982233273984059996101932861855340030235556886453493407008675251709224418709636947548144709692279205016401804885824711651716619075970566963096009675252330513100190345342331261505615768844309513652332694349060381477955213034477921304369854511831892242111811386593675909825182344029587518256259268147790764648672855019468046024603028760874110575121752710884173280913462233779050326838125432003972828697497764638583752037145507094912092486105185816178619393304243219622683665216745033448687458145654695388870442395529855850702453797331736632735947605694456125431738902911937895022114115135696928108046009219100346986836469943547632215005854915386657888918975607606500511483006338553924185688535671153127881965859957973871355370224587112851575188809419624746994091479130478274368934605207100991317651836903755817114278550393387347656605833455805278615706779504201615513668296597254753423296753980588420524247301433222139895708266891040374769080030984581745203362863572914549152084863760335992350272560603439013584664279489566947042045034702717401318089297580203708516721015272234901942204929311382118176658139528738461770163949579731764656568619476550229574928914463636003213897351602579848375348940645246502055270784361098895279639779746367788928650836419300804554062710169958592713972030224467697590081637358280036215680301989075701232381107293634804874599228775966605771434679083512799946652144379019795553460409305123910367091684347845060771332170140186454105752510608983261358873826467690161496377656514037070798191175645190239949977376742929533676658891102790229022311619959181593064716882706245056873311104937660025036332795566421515571006786214543393265812699185503932194769768108928556406070119980887558509045539823475065488864585933877110743799354234368657737348455498437878904870985956268847215413784237268188526273148223819022872063399280445028845659379493551173211064835736967068228711786498251296258330401976986473853766487186407985139019965263757667107829635300398336162494074400112714003634640800368038958350165663829383615546085077439244090240952935465703650292104390408795742257663640526653673029128754607544385467653419275915730748804778887962245469831154317464220691155488688050476355459988449364611385826891678684561171509985757667394297589239389478941975383541208223034151234104422075301603389410783241053747281558820645844465125367749062741358943986998046599209375733664398573172924941474834026842198989454341301060724343373282857118284206368976977797966300598318895295262094849454420383985948084994213877530872680070764736656133407273705526737552151906028788346467199524246644384562665719935294940557847515298469536301904775623012827988784456799921485965968402490873550008716134858333582908107677943472431738337578384501164143511126970154202910447118948017595419378685537252142185845876999313372949136745635627356251266233322820083057834918581551806519321663976466292113911401050621793253914723523411636069874137448981203028329957251596013728697135122300951433210193704273383478757393426286332242886977800239854341761232395340959802351843330576182373411229072353701256028215827482296731133195682709771269471159639463723083838389466826611470022264726893976341270066998941617762178796324998286164620273865375598219799357406131588660723376207678011626013161048412448450257042849174278713234262241636927964806407160795306516180523105355997702728410064685464043240017531097331006160996892474895311888507780241663599570951577920404716988098141580665974998116092412917233209560107049473227917788588962430130546999060570918979881009224973684114617663665024572759728815645722415571324464138483113318094931282124486973558106030941496627841378096602291778087096232677070466820511646353508206585909926771757431391587624559988701830229802837989780766390559124913617083994475674885212964945820834146379961966105037372709344045205580825117608135452024614393940346402778334514046323391831270551835319494016442473113668490857598554971500050051280815197113786732595049698482934260450579664445753686419193970606017899752380838768431839941047881485413593279224588839630782638778891916797105008889059113395217101197182286152369422523046720019192337849081227898912621303433482131081800302563106563307273586632289846312819714932177984224039922211301137605925662611450160839536953352831407691332323449578244554423919227473513815994347396391224442149420307021554205481194043195316365869975455515009002536353739354276731548115423040146103766633114884037256084036463436730392334959117480546851781946003056193274462273889899635189128676307878263861670086828622407819987890386766519515920484325986826940640089077235537856641885370508639033968350258941023668285026205491753284122460197895810065170231185560386616571862239940815186708474109771100366893184590830365074987587288542091937829468143570779274204234139832918269697832959566222302420974807981508767406410567993806732612022685316749149731217176748161611683661914903398125649930751731634615811501428399581080088284960909734970482897427083791227319121428031250953532982291861721992473641250121117103854476137197355266332648780026422912109468062139771072585816869477937004094075179397981183891705830610848226582620243619519201072457187329381854326641295844900991097201000217007336359742438357353481761983257811449847141345667677536335517777535395004025942876360418446890063843371180607775813615226961048390221956674167090580752194480486764993215997991751083584283929709709848961891038103878585871691599976037985835517949098199989237928558348047609771907626500987876668393989170568976346579649396977695355291689354700927838656438139056098100309480302328452483598641642086747449941817878577352323085991580145268876909462896126868322419331200052061709872734864797674594805134737845027829556996796344548723595585822906975341153210657386747615707182700408535888433998351037945114539453873870324002473450977560487326639545463671417922307943179495840694389437674126054334277027268879319762057106954784868106588018733017247399417848172797086160856599965215174965826918683036037864327204763964840978918526193531271341030904566308837157267323307350642349608107576690003118162896161571858898062291984421689866225844469140648046680154530274037217183342403993093460920852306116363728593706813297185812628446432127025148292872117089654237836389471247062927321958531338241278312638584376584155636036189118433013601423431816663129315122373863499578983784754379301514773275290194057391207992272603361756282407317756308769953301688739025996043654600762341627694340616508371676812854130219658133090523382268320386895114382722414271920696071551710334420396331095732401057381527789623050393830668812063704942805330560651565340766935163920648408322378550445216362241401582250045769795577741760663087181222283773660169928910476411958024951542988640735563163285899889259024150902025425041586787383448722533590911143246422014890374131720133133406233143648186247212040156549099865243237402533998920071127312609505749586871804655983529968616171841364817669838821237738891865102964387014046253926965399590192890781094964829183271291183005306676629779806661321206518613400408640561321226721278426163684570205741861286064914271295031757598115095211272136050373227082374653695564164460616207698545262678457808392372088629628935395094969398779127155327425205663202293490531940568034043851318876392313690087770391659589996291720066155986478780938779199199162799927821771785801763236931197319146421050921614364784769035103664466657749560647013648358705796183870757484673676683041752388353087245806905329006579977425954244029636570075311566586797836786297561415862175037526941201011993214614057909997838748238382792865704553055320872632390136766262880288029672116082101104822180020010752735019968077099526723306959233292663257309971125743008990768066727327356119393760144291210025677032848047653088868272736392732213444937468814747493792888562259779519660831132159242301903875386795780407772498098924450757356439348386750125515447833741108445306750643263869868963282557836521700791486031653695726121838429202941344924907373219493366389259875055474254861136692238326014822821172982868399965419311666597218948180189985759473318013895916353392186524426174180217173649055473748240808711976402211383357575312189063889583207849777191491908617644204713302672879736603394876869439030061780560689984676558203604487589792123659386950280875208112834090652690809340247284726558478556083005172773390684807599430465212579441280286771378439733574707322190333293283580961000407618979395804597872606256914859124958117299051776345039947485182037373837578098159054228052583707124813498031725544620979627690157576597577627734195735334935408640014432908436188431502385411231141690900095571463115035017463499556735190565647155027392894144797438576041753702790281727189256439425879496858266054235883539003572150585261382281389357717578812718883998426941055913129057136767394348737333948253847816950993816964286307403073688795290883345350619878546347388614895275897336523939059029910460348334068687859792870276941112532859522203527853771222337428639260461770225438745758933794754495251978546676051879615141797408642454230498879652536714759360286792136963953762020106128834480775781668410955036200121733348273022266471477364155790766586545467617179980340784005456130781494693267709941624302135948239466021020057529880864692806038315131731386711644097686484740737975797736372222450454425432245031752801845111488435847315391364155913052017407102351715552646985799073190131197484400565679544395941568977615159490817180154145787228787059694460067028302111874802022319787421954147215456888862990761644974996459266502224202332053791630262142269977247220113576018967618961822742405871868187809129653340156151120495577510774794333843155627672029896752305137555193206015722579643756950266142110136043519386439651883303059338666304379409763903833602015574693558095385435733446754488984501561527896859722344902382881945044855417485615905834261118296858012182047713076506820954640438980312068150693035735530791264073633397408621628182851602021025696767633909746191784810322557278628051135818706096813788542891245132664321143799405322761871235139293502354352445857018271867700584304855594362740925883975929839093939442299386278992009061511432504509985830624776329537718673132431108064580326213969056677059446045777041267461851021008307217571596059810301452176228099965651520401027615176148107945646827023276687800117456453669599768861356834488553399379115068083944606767766587175885515632165029115909471362557777921576825930075987260450364428139218694908340150858997270906218791169024168430210836247820240034995688461370319759525375550803814625954128706129980245014523948533329750465803567154993540085024180687604905655024177852503144121888253277743632771321507684115952142630590095566126869041336391409333056818635833585708960584029209711677572254539079112444049240873106437206644554700786461802403221215153953522915191921802643858230111478955549150217131142984271909364995045004890505975599945062973854140094318681080224399465554498550078709128939864258948904693989448503613671623872247774928728323078865984894391804662964101274657884152712410906678773017015485385620214470754756428041078751013032341569441977946644081407579892605948592357158954029186084207795337176824909674212207514243627029481894237360213483362536745003898760697897218992044492019929199161255715941748518729323312383428328251550657375935515078594193059332166152827257401879465978652944100790835218853728974577431235312604870048705745723969013208397192632912570068793926632276971918865843521659707524756356116783132650065316892760353258739291736096832407552539766958950905277541002499771233142825264542442840431326360417003891045772593552817127320208715404678821068460178260681339373391035896148921811800444650835148731369327812822826730297518649156970068397150464799177974377445862551328993016137494973768809751615357965619313431384444694019758185947835989949696924872049464980089131856332575293180074039892572243429964931341325810877959402371953312489432984108411960497439037781866521348566007697888977727636866861774555880105234573353699120463513701183811957289896455192361219033893538501274456205812451863676619543830037698312505203894367360075625405554793208052370690414235714983427331723554229225478347884821740105771631618446805186106884124909237620500860362339617781318683349580309752060794643864941105403616734859753224720365602434897604157875966615478759550189276182821849724789852755730673759677766867202943996311956684216880177557680302692562858745182377954029749525548770888142149065166449178593570514767414065750199993479257450317860185930698508215179741395101924946005230888270808980460131491316352036715641804143026556757520952775785355118758300012650851673406017808587402142246740340403798017565018035541433082656560496472307188208796333453996704331635291222785513005605228180727260171831534163068309328371360653880119344408402841912554157433952459255725499178212065628886830082348344454406018386603204167708298489361836875084493600476217197991040148797149370671604251932257929165060334896341338590434840514999828001611250150079839807120241691052278791560357805484833223866927926878123489014575462206104814179716004102677838020555425062045094621599803719595117228642731898948218878504062283204427486963566832670928706233392483065053655337773704554397722458115686236792664895752007683200579119434120277177822304586832011369521113213744871091619240106739906121388670385443677284881833369652295544320003336743700444157006066066889583223609488953807241435961105137710275661662499502156413933584971830830278620949777917864184776442886552874411495560130621933949607800596426867835800325101169533913800817952727148084809117682621037460805843420018833038394077915189773860748537473994728279841342182108123813256342464590977506886166671689429115175060051118514455879261408024951933196172253181218203627697461670951882292067705994582815660046976904876289968944487800452080234999257518387457601779201110774823562856735802466092668712407032748412099115436602243405119063583047098007135397795409986545778820590660147618106502124531570973426297771609080686712942504402147045859053632931458283922021578326386995760754642692121846548182845701485608476720620757268438827557281997805665511580009517525542205078355247674871906819139080559762673529711530270400551236250072938921726635601299520557359271479077955246234137494224409165670969732843456942984782604896933324203243769251392787838297742175525382333675568475826503328015319703155088235773202763741131219394227392361389444797389284318317331081955981693856356740502660776275939611393496968521776916086751758588690978563871480891935437317733341218045502475215348189830459735226762712718631269032155312141803442704262225221668083474456622930815098606473449765720933243064706696612394559203735278177752143564836862938457615391660772060738836681505665068152024307033279172446542246086393313962220022863906474045504819945849206685346716737665347156107874595747658547029437668657288232845870200662420857555886714539688330993601259128143704163178266722626559725160597708325083274539181757203166149583696960959017701855687496465752528620560476261246771894794564282829796320226190006047169154052343377988044656595412109657356721466952201369754018627271447960114718869959803137931497173481107969273005727880702169693678935540065374527793342563142962371540030017232083729803230021474243829598262551735193364752281493409785606969448909482444041125510828428868312771064216204506349360714775567677744220837455796028283772320038893961109981608794721006655891718747870732135384375220305703037702234798665562216567427781482287979634290540981068192089168654770327335867869535901491425572322342331276643452610725412459633699715110739093156157221521681882861819365672509150666024419661504553326137190603026609022677569006606319468970474975342418011980672132551006097823125767104873925843565342364473009949437348461876667202897011416072994958710819719188751273682414242202840789158775582706080305316960955407538883551297621200725675068504479551397115202988212486061149539532509940159358449011734207421750239880756052330377449099896102872861052530047871889864138073140430736814453954749076647161460952821389234791245858633913332896907184192108051426997011963164522349991262919993643002716114015194944598716326920997359074571941004899418842129459295355647535152845465302114852678165243334062351798859667407527725554161453434102286876391675769075085242188425817187201525382656720868833817645493159568952731800723781625308552795438044018917733832969863385572877239694354542372126656560517128197850364222392852100480126368393102461545324516567631990870584282700713245582301236541928144710316955624561081354732004930036297314714316577615715568724271387593200013177233505306322979947464594340861633522625731313745885318609290463714664351211130542049864332020903096945440065974109339730992595689132807133618648609585267730488737154263638373464210674321294924530758387790417585856035381632668483586341158958174401352482642316595394732697123157869458721800998138182686731729860983619664577709809815037480785727299186977090428376494906971760760077392863270794001300144749329156366908905494663502450977831478114710392371756118323172753388683635760293685601446442115363272354403526233792247512827281652898434325078264469108527395519621200490055888911367316289492360070658925381829651194708971638878785687879234936556156653776374687712034446208752296425637776270899089290187321038379879348397322019770164036698088737374032435826997942063788779974564644298094526726503681902713364051096480849439480347124500195465967894245645986298724279896495121726653185224567428034146109344901096353169343189810180543738290716367599124655547812381492755809845944968382860958135507222750000614929570122499897585558222028918557776281972734262533915445314353024947314614167899161203946596954137883680456031769793830146567848676329209290711249331690420643370026511431520622592455512047383867364087649023091947665752195767130481083624847598444468499115839434434500713513358649884977959766392519974472316192908354056742441593201317010788899241572722034109657938712068117224676251361799561855913453074101443050392276157785150502036522796750175728815608235852815953800651385872662985804220471050972973308466273581963363342463992405692710857404209461850068650068347256827229832139523131726976945936861589402364149028789216867234121383334260533396711912931872680472018888923256446621312113894863492929211033444479620094738897484469258987249844230795956888428869318173053805804873095229149194395105268645593125419650178576564406664171098328996538048692454742414825998337829894714270456189258887849932084547596171938837695505191251203973094196477274911407692540992724701654267067091385034901906943191057526888703454871624434802506540584668684503777461750395890609305574558123515041554236770652734355647165709735865914580488379818131360622544745270876088620799853446110356236180579103627728191279030694148892715490130896358472790283577948055847397491916657988756650273860943234683122070173750077548338814474110161979373829412609944277727918222866011049398396685143431577270454165549387764802362307033283346097645538261258834767774477730596346175121374627904153370767299322868360925657388234543179605825676279495466727547638468735538645100171691415564088318413178038473666091251839746027043709924152230130980726851684004116093146710944998248087114690907374965195132557700534199529362260607141478664908052641929021747261214517607825790784942976916240726886482697682898405063114650879033007230577733609594407718357537896599710941081491711633244327557318322021761945012825944287569783015195689826216585733728523985793109848326721028830168483425597110962196878180755229679645493970680704832863421305682565913918241205996313555092470928841940068084244464780162886953504124167626212254368501258775442610197296968404239854095640654949208136999748991092671705317472667822683216083456931105020884569001603871429197619063276367163722577621409819568004133085579937375858203086867563476124349246759355766738601281447292793794201893268649271632338424195134079998299252706997934225205142751591037493613487713633944838831616663162469847022151764342262894978923064999854994594955999802105783801232349052839112805211988298465696776621843501956878821555957751693931933767074785018162450268245486963419710528561144281381270253189893237740877199677591324535061709567864773664176174317559342947052163918448127655235077670400330014252130329827363211748863655761755951146245225197905256114452109254820729887334548805212401097918605851687031288740288763324559097701597946884510971764089685052657784846796558693996235814478839642945668854843111637695465373849676832734135097298301536207754787290307218692732465712047874713106420116887028665268844929053149871180663197269405815938964612078410791148683866155279732168047422659044414390507959593698327651783415495137069024847453036482355330796300427726194820097286237650700999625785606416465078721122282735626509512041709761861099144312722609811951295498737173932855475635670835686621340330973954044549745493495204592904591150876163517893552832731097809610462617347952237931674788446925499083205958840154835692305817363852687997106572184711060798623755684227602831508793924427323496668448127045583861736041431638108640087500852257594813467530249629100768593462304559529016317614523433401680184203079438765628755145459489696815158886363936685845880296774527673100635584210709150397530459157113608984087626409148966409306557689500268374579988339095168929777958604176987656297458019161540101077757869867871532014551919162330231755649267809815693929341279870410189530087933519125412178926647338110146845368082668858401799184601582930227080365360997011885806584667467692846668614963335941925551749038461065194383349922263305038354465477830390166449618539134297874580616296203831635024538654193238039635100431646538601936824591120726999282452710874360559849174712174754758775357758675488635791238846860526262997832019801435882238849511082871899600086839187454255351249474926349499867057910214945022702287324247878942423115751731733655201948252656684706215950516675119000714671636383230281401876004385205560505214245873815423409834310241359389774422500984411454876579607873707243739982452030425892280104261467075476910393686161347712638162055528553831142629749048131764021849986424209615196833792019999075787690041784075153061399450340504291794519185625781365119148368504149847691116962754890486440609036360838739778052361431878827175147227219484958951881658153148865659410679925422716897662218937717390151663399361619649119332387161773872936894374933170439694403053757421859476963972863769240042277280289348076166272624883804924991531882906417722516669565680081790150676403885544255541376237332638544195462816182568957440800919620206852331816138000697373149562823758342986216693380206400385239820314549410166300904654071067635616918895407469477832955858019521141161007210974168762842859296453884100965939681600359660923191877804945057091476238577615994040768640847143566246298617979368427754317151499724718658879232502386032348532918130917106328036641752187952797341977705899219409090015366199487335004187400227737267308096089317329051624356273588018152733072971705487164342510864034896620016298497633774148656373572718450968005613982021625511847463293729796857804628610018886678387118907685491314702612404723814797572320350069286537864733981149542390956803008022843355810755403043928414143615505188703621264403282557462990348781128361323228331028870982911380187504151083994366382488465766510330644139844793869147512439878037085999232937419210217427610677486503743847063628741543433210789965296300858074988076641921194175039908448049192437089940112097398517822841047853511450677904517239757984889144338708902454083084401485163058531319731519515269452819263769198621706455042876934364922523446179092327961900464766314723732447253726666602240992118868109997171627634334006027215073865038581031699725223917906976083449447550443440982276695176012203089282922237188427190966220873900285982459534550405607426431840715677596263808776614566643059179131367220620390431379933842907427205809935459205817371423386969047904902467762591167274234313780992393859301363868364816807619152743188470591807402372917016061745661179957872701371444299603579724801921532624686289722515447202403629879529871638096412526371503520828582237994250191708370706751363169142749223864294386653066973165149690611990314934683828327893199307877416314609196016724939104951545647247392246569153930726247155024987589763663355542004629942325200618079173475253529343985477805749833983317056376789985387496752790266829607609843856534400480482931170766422660753986756157373389466377760609899636330178892937673807788629054583177192735178220253761784851604507636956461879328858478898247377011642295821403963173704058993164733489261049397169086546474554655616263992149042388982150302523824222810379957708080319020470982049810727322683651532756790865198586285104272614940661002357160292805724281236727657714361256550850750934668650914536416219553125837852617511388705120609266380187347716828771188897917806444007268952452713060721712608518286258963122472790746780517680944992254495673514932109517812947876525037234107785187680071057091928454003236130408656812029231217680417805836174284003194491858083524922236527075520324727434448642167319602668238391834550609465966585838781524680473883421641909213560971103276736862366073369139220085323993659201796135306079940638498569585132249091284725939627021577717850672707014961015270876675899569028822223880494075475890426045194067827567489846759493157626739855463073618254893564098704604243861761272344501351710173145551605231836715372944300793477305486376742721414972921190845363320856847238277715376439942775825735623146077622297557165438176703262072932870037723135516535831322256639345227314786190027558890649878561429968123975220046647455429458754793473194921238215425295742542723617557265124071226108033056241252858053417944091821864553749458143275833896098529135352944124353646951141954412979385403865827851341670430801694492593506918639890660710914559248706549897031219827629979575815062228358949777196910179332182789426642927701192845797076533687599963793880654082186777469980006646087216318424682574735004243195352632097133849149824111171684484563248501672564932313538825596774879324164188396078551713812141960720245580064234009630812900317882126710701641044362908598859152878341138361077546549759275845921269358166972892610424506856015342829315459772114347268229670755494445053501450174175380558635886698357709526573739772103248071738146473800262281410313835771198954071915113552576125873180403777127408835715941020705557842120696224497260653951447379482059065563616821645474269948977560185490353334953572922816207490210168634413200106457515427072170600422659495916843690786070622609573871827167005115106391900707432036792001507060369961990807795179400247274599748715318006370789485584310680874317492777338092222676058277065839747587041275605286389375158299154801054645022129485966295714624431637116672939615212979902483025514789968402267790239980369782070587478310983626141439791080480971360486121005128691237283592405465383670144298152696763349365314604869922771790667859405500199300513736040971918924790017946875696851956248235916696148113818608368481707237696347606930902813174299652292754328877217214156877755193227817202111470041169269218694514136711564916993022884594553519184349858885416571069945175357506740739716354511694809879332264807249966761395069533373110496758600242177221788981232758184434593804421706999095790765424581657776951460430927783489202147879378520269879998642092129926308057636354022041562506947737455544631118583328536871914691656558785427155506989087645313273861172143460200890458934265267329891292049412623384605786345341665678125699808780117849283594776784333200385884760547686320489158797054555673684225748591027146873127949941225240937162874766385620407952216316450474514598494026171581159054871653328397001609034620230802621074420914815326942146401577608650178018653289623629251441162704212076796449268859358498847199598035834723238444923507653978501538128660060811895102206440198355962689352289978125651812579473775842162678439826705054429915001978074633635431892443195184323355387599078732652335744729321598173690735014608342460430793785177080831648749279960828811835164771932610707091071762224668468192581235391997951914601553349745819289036057699056864885018830604865086245161207255310834350760426785625936698937295583683951022612118742090997381273870499483324272808877551740775810273748462119073281139228612504035855828729443373791277317654160894994258169909872929856776910571982413494568537732649245011313529478221334442950974794211334458827020667391026514896345708691242054566595160611614429848978172323737315461318286390164411201036358779806405579344811144917163497741138649828917241486350449295074970901252055570981737008125169635289278947464359156296051648627875833135365167613947330527930290550057110356635906919487798531088205249056080789827611103013459134458951067125367325089243980185756614889704285056716014284429566054065914729080232681067003706293015063802870093296574608362831747329433355245570397969160259139385993356566089473601945987007985368273722059288279825837506316706966789972459546379503601807686583666335788720145531664630383909100170318998763329545178863763018322988824046550766458615127777769740510654907225646259964627196945874040007422638516075849109179305046955807557636190295173587516166392043761117168979610881696624751469163296362185914118261310424826150837099637312900760919662937937038528893972555355547143062720011671745719572654034252127938555407832343052750156986104013240851357716535307784746864057815319747614022037680645034121413002769332653307464459688981528991786196978412361939733562924091811158209431291255756841885084864887698392305244935114679716730000530765382862683530263363168946995411738599848687387687310748323745573043592055346994858292052383290707394986367442269182570443154994911150428920258812079363095973480123748488990174605440471493106197442075055207702164902764045433951460421583734396569239708208380063833600008313966390691930916142719071201863209947490823989416795806234141116214812445162859051098163432893228933802831864921306873613165986345078527807066549488084209935834383413358158394064797804407884740170479859230230068314674458939915295951601822214337471589958391726131172064906504611957086321210145369371228084162091859632799808450415061895077971143670472443651367568757057515765984621818159029130156765820820189496035721724739363533984885578120517934291850717043596257173682196556896730929370666451220021052527586824128068811592335528239119538257380267477238433918074062622393899433303630731111580219675406273672586172475299329663739184587492038566209847179416017485057336485887264170549882428303066274934739557969783630491007439567895881702036609848725481277201006046111426410498715199447122276873239722856722042998449992454396027008823710945337404993202160868968393469904990997857192431031270392703326192563506204941097657956632909995034517668662491225206977822269421695385633081185200610642055247721610042805714282952999352816183969970287989197558471769086625082691033322352650990111526849253781204409079869115654335898177683884948051204403750823381369251621508685249214232999130339387308839452552692951118518505181681573499559643165397294040699477916488034292838564499380550206208782874121246992941426913567055633642571407316204205223915743189514453304505474317224117652634048844981013134805920045770886746219475082220076314630384448399895555690271863817840246580241448973115206441609360974091438073709171237222790322551543060918690223479013732686897080614822033080186377490235299384139232728081889933741048734157787463680722348677806227737156283093143934010821114710359002107334757422729250033493430272471436285671322523459173475491580573098346751482463727624306054780204292181241238461728993972330358959842633067559910179501295122312198583619975347246881462307666656952427119294993128571539220937365004744611277052049914168931248524818286832317856410250132140850026798076326801407789037296347328917669301310673276702996746262135538403578599204108494939322808335975212312562739816995487332594469629797667762334849660703172758898057271996773896952089635249542271870026646658927257263766598793360780949739647952183296967689884892216469883996469767711844052566478952828220235953899143683977928955396382139377283464810629981084855996618011123288953287040468574243399520768101548556553237685146083629279290960776910322722693617894957471341715686389491867526086958420415204150306243333636520073394364994497357927826566838866469576062607914618871013230838098476998887249344249333765184876360010323681813911703374114269867568721372215484467071043053315581135214881693675721709235748998290236934605200266781661120918172563661103931647701280490536684853478089946819795919272355461353224710558358088371609051452912640258073029143320142927878664218865604194749497313402704648855810666992737494899424669346005515854967311491303380854293927495748665931483889325163839952998370530219710438884395585301587452295325045750960579321629643919855283431293614007065853546864836070056090056871077389409795845176588318988665689071052773469112160919574140810160796582845290045920627761482591555340244652421750200984806978205588358547677702024866402967567476373238232759780058030674450087291512869010563179554940692372204541126870439345982558391867617383352116724562515595997081653421039132167605718486389680801532178895488386802071107516207282563943092420877254456644711506479413408607097159062916442951538310720567863507612093903788224543300365665257480688186970167927772784165050132469680364083706919457422295310891200038681748389639085688424913735933975128517291680138834851066845216460022867777292496092279407830140344997601290056048184465006547563718877162981112559187574256238110033666322757935982417065909348671526168021902434652438966794319875137389122458834366896642112290898582409479501659543993376173693354141952768083944929552491819628064174845570504677111302715649259922426770539282644229938369727335513290216831824828310498846339587723993690934191978887476035920662719719082438522659968509781264315375940594954351473485618774206886116409841874256598571433534922030663292856356777063300784179577768770227529160405325249097319472320578094469920806535067844679050865209763922529071453214505402946829409011448522560269453049692762585882024129128442350614796860670596178310413325158171742679142169248813950815611751161788074294731618814596172712096530893951992301007864951520055354501157801369932175619505221883396793058140032579647657437494533939290825261998293238476473817460654396843897007443728056698960596108964849819514423070676629098159893808094894444444934586659384862792081545049662992045339772570937811471910553464288094264956544547140020581116443406196726408134242618770907755687779753166424224205340656440336538977957023903926993400176610292590925916091394131474400131377154642082304573909249788315485722834541813169426170873543923801222366565259757351134400489449281745989775501046912698023134407100022242390473099902899256534409504975833120686663975168076403783296799554137654425651154048872521823480529406915831610773939100095096689088114172133981148827533948162921552969310507936456857010621348302171259231848962188162802953903799190355078080788417809196637774208124752979667045068074279999797359092413900384652608331567443452173749639045692899337903304592764504430771213221587358872820735864431004638612623896308869472434770474249539370835697796243005010718471878159379610217990096779092473096442400708962980968566398547233086830469964772271218420966671558847973610234745095529005662973168865616603620028957677492132921912689696480951029092024066736636767892144369192817176010601997615044376057480766512993425115382893948593720036802034809196922816221440852527888384570155559468297078665391741651414392869645335923833055603011899917769007362526672742397931567407257453318578298771465686909194332983328235082604991048604053103618155588877498424726402540280581163119240939074074623189918008472824124617285467370528403036811093611585276086498656705267114643826780095394984441371118905413561382717156416422945524999848824374489460093478526245132827188390718831116015730976606636462930815764137156371785874554755093097759370326794522622438714700984397690017837180659201059100224507442025483084678862736584453892326763979571483274706924671612104346988160744000993674115204958496711222568495261731226624225540815194155974369999078505115115682143595328428447273789950731616919108008561678775366622872426710289784272252488434808424663735306222746058004743147569597276892950402762123050965692795163160093364873302153496692148791939933695557829619835292977071139182800713672326438313389308315535191577657173471221278217017659935249692602439562901895042612797278839473892399887503649897908830322803739636139582975138144730157091163158793270505971641158939035967466386981787125741869795166033415892904187919821703978882359482214639947314019076438698643356833738701754142354606602248947983837264818670222653699069964931906355255080789646574169690273498313359137521632392627324100899371192446279123562526858346170346987992639235938710920060492098021484791863636221564733527458607240905710762523086863672483517652692002454602510712569638309030187087137649887294181766910559669793420002936206547264083507353128737804517451277460759062165118518308982928920534612450444882690111891403518536338192838421403645672933968857276078764820597358615777021114447279171241959153716564856730273521660980836371174149354845611268744773447185059605875867539910805443413329067945476901531314990641988676658970766270212754333136651976949080416923871206846374320934134089513184354088866712747053616224196093895278535577142667512224506587331870184994399769393916028717437497059287917151792258570435514026013739271183996731237679299120185766669987180199769362690925739157503052385217699797119771382296480169185252135955847137475550069362734163591002093093165314220772351211447058267936173586023035867529101442828863645233296147874632079099884905359590171337989546674447318578992231116701360548681431216963252480567396025246011114697749902951971708472053874463516853624350759530174686647935794646662362628912089659539055067726749486553340315041239399703656297289372706224882266203100159914713809920456923263214348786458958172114337215120128207695360491530118313710087818000400261855755588592923385476450756287493046495612538530469068592434826837767510680308165002800551699924611448909901351679373658915199349310381922183256250698214724012673592528630168460743496002785305227192533993677349763440362391061235433362348533014028140162908015643331733939689366598854769927551920564854365872142509652397114003013405225032644457154233046881325870141619884449368692831922890288708671289957615355622993314957074831791164974565310597727654056611424286625168890331100544156851702990875887402246848179397202863347821726064483979872793975174809957189058974597657058896360757911379462578998959390677772103442157944172593040668700955991073448159036788668895445314262053441650608143169915959524800505435119753770864084410542704392425772356853991326649852509209931535434488776540714769469465288000529111547089131403235009253318796042710867586360841160097841159046910085796412934994519621645683807511009714791188749161369744009417546696937907209021793476155209121721447333336699273346227449981174239747113704375974521015459417259390053382196831996123860223738505989061879222518016150915530824812795919706223207180971280625509315191674602340843135717114721809746809933719626839157833027791570928958106282424831980091399259988221165792471257839924694738616674673112725190743586030597949116524901092550217076685868620522004970180113882129154858567488792367273838848637432529729098677100248075691250038823530855183501667824363925136181254815362158241432509781162166154125158152245376085402712130832700319384838204371443113297805683379874995084120898001877659936197334419613816799176511521753289452968517503915240321610603090841055774512143889887412281969904203257528838908541843018337372290291103950293784022868878122033408516819819426923473387334853305642211058830086814902613993705802357996494608272807020049551845911405385956953191972649430380109745669036381481486391138624101594102471396544425070192337187166840942626741696755702720244725851329131295326305574282679021483547411457958608029577753595167735327917447764951840902639659465184024532583720064187330796990815010148414985558203034249057853374312052125174780292052159846217853153361931065177861158955573947646494651228420849105337605976925880658107652796786328919012059537620051684675701588073365655344408411633835355794226315687959502208497043370288425558734639990068003355274431280735744216787877335877972837222867133039996649244729690496128477867565921931987146757180404256082061588907899166804850113173068823419538461236741097411902032248957536302534239493344637239856185118640130757179510674681795665497606571316254948128413144962056009660822992364596741650284888007134755538476408802483393984970831350874845595305723652955731192107370911821484899730054732702371155720596848684480776033760338070013009948482344823294469632350273088295704286476421298415087834679205251942622138005524875360720612541178233194381485063095609859607492872018610113971816156251355902667483723346102457253072119916246613486532930096086848130467558166850353083485604195019219993887844055572264633356916960660493494194735158141629877237878887604186204532602055125141954559378442743582199472740495367863654951282471214343494213762908245259038791418728615890665110350198503172054567766440706573689352133886188061460260401122407192970396103466617047038260993629632874683795977094436295454100301996273989633143450424605220102322601074832461907079725962566697001552040726081062780346394733793381411804683799718215038994374661280675898834018452187637235599780554789703652409631294324546887210519700691603593777899641233336084957214157209136961070297566312181035196910416966782652084823861730323735243991017779746349804958838870714974264465692034589688010217149865191025377334370546293875710552896172297062000056893405874863728634690693856389234991713107009424850656796931446762972865157663236442659898675939961109393015951403360243831534580620148679267728044736998879278238043574213966342448586658333238484180662078912953969887177284660950920879889146083093143789318206566389543854107783120770172946623886470998909189746079020748337263720215221732972539354019890900582139938017273695255616453187408049220781452685018737643743596949384916016031030795148745780945947363334423105827964859600431827868464086871272436705711205857830103963496702000768280752622351421714940586782563618664383364752182311517768894845104046081978720715235588892863366318270425323888454013952222063577815376257816766769130708523508947856460039701125712503913128857227803615220205333366177614254109967169883395216209630121717784635159570549351500272349000298273132974937265138020547065495877124969240404759336457827201732096641015946661056418777577317222719679828664233914495285149333378561155942031946119001927149461645912331079482217192264476983035470054159016849468685941219700432029693615793365554189575374821510743324293950499307704443164985544260879946169684026806257020551321225351237820927712506626059817095237503343489084465416192531375475682628939798813328172345697391749232905678599292065088987635678170332250849518841457379516077502495057645759511970213660351088875974244588724732156214140405412349812428835598916523975727349133198405516395884182494548097821518703559821608860277355490209444978192801573444756728262254151560476676125354323220626863490977687823970276464147696155497169664641403294446107182737390709465742118172233323427476235052457224951038022876331760860850184389352725584949822806157138702583834797862671282315369668816517659070858136801679963309672250412928396491281677040996616557162739013193573113960320462144274421378341013649486492084637177055400198066533958420748983002105888256722885478146119166961411054075597045543502174748859349490472377450299821111150281719307076348441205364084135852746710611249054539811433930490460583251772149893361685175252270119940714601114615803150992195767431289821043358319973278816944635281378186511379779703204966703860738233993075922160546647337111632530866322890507985075532286796889583457385533198063932860539696944894627217530119135167972506396393149718587000971133382904288633277687616902260142655393406997186701310342474261337366890655687791436585237347223443719185158479542860219505854174444916086834497149440800462526832082200353917018327376180219995421842011981750043427490333782064178587119895865726489609631116356099250960459839730065542687763350894927037622646751081283677170080015744926002714860727671217396600205697814210802660137698478710628249908092985283233922771510887015859286766799805949297777753635060236173550784684562226770091265760294422725225027939997609259520377605122877926788994103912636317985282401817809397489947920636145942462486856618677709302480150943147161757659129468448574146966727568023846252943764614108890497320743227955723074390808885321974225040603347701148298495160978297883843972816342202896831274717711493922815809967751137578504501686957587523241027725239391589781543438386159176325330229273888334681489673952879200126999740857829114657197325401021782637294315663181437851427350651637976311617967408599834857668300663546074093168373487013035725651828190588369985671870350979439595175923769313465474131547195940345190330229728724472511133680755929951802366392877747072156136153178655769877512151130708965438591995332344472608169982948006924614405901553159753723539429803013084138447520521500952104919608930111495204853165165729338553909315683364499826514537567796353372743677740222030729485760058524044307359260330343656163139159417029350417611869895957707681259440346881407808204461816891423498307103747262500786544165774857100376296216431681400746798849111957789451776251534325595006309286834048238760311698348796301012953690959611879241747709646642536607715824119987099510442605637405911850548242833115166769322112144829063739446531351027022046295032851557348643619037493569773540362242675503347298084826211264493142083063288030139871176569360430879792281446332749299849308489609320292794126436226931936453681409039140142091807777139881575297343808054917605777445809957388673380225334690022318590935136674989485233143459201825778694246151634853969457719286128207537911059847172547504764883635506673422350643644086511877866339982557586001303414147207954487544957847211058138779526158862994345074388372568490502841127320489472051925015028381541115982788590293510585443733858339348745607295758667017817810722366507367564697615026961951762790812529388613121696061326698613286400323119770883131982237030493827766643360966942426343659690391356539207812751674653598615201031767921720036206693185434683781041112775319436663635865449995746159007061673091432346571209137276654498076496512063909456500051982358397807921728536071759415388946550970103607772307160405832870573881575461491270839469017349695218190988564144904431165115143665035136863016319955295149494753740763589911741496030894805121857252930488116133304744382929603776800701835514843584904069584411286978108928139104144698847598268034119212823332187238842651174346693484133950676437790126144457311580418673698970337524730630579514832210032187406492982246391972354283683055457606902493875281588778177870292835024860477348511850286369397780339218403789099003610945871578494592244953930832571009152035176148883652571131331663557621243149549844639024830461953956918926324297261652186423982236962646870336840913025936628945302527419164440402844578164904275487157138600988441054140225506443141371841154800048817988660824861700858374809059815542715432377855470549440701622509090883135855158945761560890943139461173381512065429349347401060052609060899462852203058505849264185497076389829123213697946734561127915849419017556862091252490762319395796398052339115637161639186274456425091039513054050793087785033426482543683784103019426342952120897133113827508856975840597250698610409103625689202592678338082612278498465212700973058841238453001153354168588721713609390094211308974315504794039268761302094061651073179529792451826122609787884994648990630357988087850626600204881437894435862102133936356116572318441461868604959432704479944663234895904967129232664330613254453235917483859249674645872147138765726045982834140420830730841208264196986250943853664743699727435079679486854550397699914710233888466392540647668371198656589576023459046541993196376904206709719311226333067367977629361253913945356850290745437938250977469491724601310318073706999287101564586894318223774612293442224195415246432624972232672355807368939801104833651703077764825641127489984602022794883727865663817602084679104342106308380237689722841630480603593696111061776117776809195854721969965289080302237011736216527102045682900006081934252672282662493881584382930584942851360493003524151952677510580524741359836816995165545606816449666084579444250278390131078263310428015401727611881636960655240701386807479985952846070261648702087154938813629986105895385828991266496963882197633707612066396064771929733044357505064529549250777179467254653944785115247343870793091979935012488988787721112927843453420203224019765741445971681069746973882059344459766576465812395561372009996890523532067607292541787431267176840414244061571084164996656801948151365001683084493878146314100519374928965313794843275250043032304985957127823060498780500696135782863149959741513954401616184707975348456588763079204627121253621759992677365580316241219378476478140517591258122404166918474112295346205467918480067813195586720601138544166958900281419516779745982051679675849694228367146558366246455970291149361726884007067834367301162210626180392766566909214504853794643863701568904132998643885739997008038642328982022613918515986250825388401516651326069985598889776119155792693015675171166918093315075025526147779971121345412975278425260122388793192509330484092791786130215507924442971467850975000065093442619296670941482423402814114710638776853695454219217084103891564536675129999080540364306776374257378888184267390181258069513262803687784191423931731911867471621364020857294980478283437362681887716651998889799681711721072562703635711108820600494005482486829620909689943308873583140917186006032482542533366979912335620454961013573014301961394551881531001223854958003938263647209992019829848096483692757518049819241719398272318690053454924980378546981676154545223963978833555690194777863431402086773294507374006588975412446016996304097122612865644493287415995597006908292331886147103782974672487045204361250451851226887769228859768432133271585342434407163627992701649995953806153485527355551344722867893377641984806763959670966050932554746047567435493772392278030456870430242632712860227811844263208522549197421656572011862298393788549637836568499893462167540370984280553122913788352468765135260374104767817936847901688381918324805986265851083105825676772244590740326576295272956807825610987342969649325521425067282032708625277806949226300190791290775813870034657773162266651103923759499463783244044420339322914707316421412966439245814682339937684271746477008922872183594743071217101600373597387746188852428690753037351906839927160462544797336540482951254499528006688563322047514241693837717752643577772528600428347206094430552244898089947072973042718670515619084199564468559441946519036456508404255528308575537995811535966984359796476346192179053984171631051324007266573046488316164605938558508676732583036305114890086786179377611239968721690101739819522877950547081162280033625493856645227792964308685631358533571933651773515519581761737672066962068590551618117120412028856772992656679873443480883599039863899507021371428206041737385489530408029448028861701925695692594104358475765228256808894597763777869454543447255810953718602424033777753870936614937198207724766720131013593466344171248222668923742079955431421044470838935939181720347698528836543712524830646579749569720124939075813106981875479751943808140967712372511283274442604663148042683240596750540443471408809717613898103912666520075231327662801415041817098112118702859422488434532923288253020252652857528291727372188212932696745078683596751319422734431520514095913594938682459249849700431880297406420487959541734275495547892799575209850093715269643949416796482388198512746369182542771964188374841245791766365209972872514391824392053066117456562915621447220531607692340216846886313032441797618346549529957205430486926576358588877919396173770494897178935171544042955525173008000207451169956463326316572830075380446220754879394301547388060349596942674613974868121657086860484325397372684503373047344953506261551291771588298045197982541504299936217412002068864661679814822955424291031271816598288957429170198713844105606685902133156993895821695702339899794287880388144551281682034472530303197265391352129809686097204936221753488979530363149612929187814623671996271888386576033512889511307889335082450855927825185443831182108056237462214116117518733668520272996647530163674661958937653468618187757446965358441816808265103911075819163127182301445896063909111681993874449501535975161073661065082781167336640999873080265233779128323950296232593901576448999149858516321998628200537850606350657373816653919449344645391394764001372845605006670631540636780927310215142028857005038350818553150840350836873981326453479848478385896606360165194900846185694116048984477653652079189979926908487960004094891585547348705402209861641624699644613220132421858668666868945362807268001960778640416944959128683039342242819659230085043344089467369124230841691588851036156599924631885052946891002927993408654948742204053438531022610667628188920808774621324058644884808638947591349095149963559398020804691194147599344754882965780585898730401799278354090689905655893642480417440964824231503159341594542801067501381507969516341730958926342125612371082003594150366634378550704456327783862975923774588827932934659387052700228773584911010734929939843752942436225380114702531789345461740731342585903711576838085549267953382397053274747583126611330039586853256463003819085384343618215054821065099990883780594610790080595706390846119911299529421012355593619135669714937331793940862224724792682462880984461164113893799520846525048805868008542103385040045719419299844800327514109061928643864368949557241363244139019521485027267680905687847699924102242612638524193467860423233779715282927033969420076532588079142165811671530273628635715628064126685013486078723936543609244322043580057489470443132422674908270242876124084541342116095283334132399672178144926862369153748882947383414965819493021802772406712019300715112903352779128967479469137020577973288244869013878980214877805243552556595516250905919384619183936922285990898071904189441387161873647488336408137774511469669949265644550601576324071127507075935386402372695636473782444402292896313901904320339301362194951414472108258006620514930129551784342806862761532249839730755854442373739726062781577692749510515671320445487658131880011684922053853751093244205589175013465544887657258309540925726890611623830015980460533996793282680043534541838302528563069645301750605468998944257939192214607682171457945091010057831618241956196296692507155242397274514097894768566611891439628634703754260023355143620886208003610629610662581402302137493428103737742234486046839311187161670172823169759020577998868794841907687342996780799736534607056206011332613770957368754183730622967880708169461681409185736499511297754869959113983260372281336448574281431321820035923267633998131676506039723714179055336663073168752739307656106563476783124306165499235091190742075261176432904212872127254814843107504002679796095477340495728325386303643966151017570352079370787499026384344937940153909789915649119965389595250731342817629913773498943084513613801444884532900722163921747504503841624473810021078591804949240009830616499519979067126061242154046029775110294590158014125027222706193192742152386612245958931226057350055474956387517452043826171911381589997138989910508588123557369905705087439790291084574509711454436750228410508676785586968813118129062397275778431150761770470603512913410142055022074677006357523025350789048939864585693895337332194315408098414396164078861563010779109919247761090344751204145905955826588502639183611664774525874192956790720696818985011844451783500955821421824565764489316878846347044474156248636543178510194090141083668230390753515152577296194633614065417741412694425395080577071711528292715955614113584873392671423677441241359963269791258126357754688887837320522183053782116357319408679771461483970199103973740153798345466153779474466879671647297552873029901486853560397903233262959324401325092363559981945119427175543087321437037139026370390773402486624205489923647885760595571852923662844049061240374000087953851269602004557140215007811916432233558509146808669152748506703066940205966615949376066076275650202962690949735144369432545015165933010683441116264081635958474675539979390229847846806787986048094802366770175004125131508700701998008356210469474380249467712283336250687062976214719361444415232381660109277828883311853530064029984296230735113139351404919977339749755111102179102191148253804109148815177270693896802671501136485734805545134329730571020289792440128482806653302205130609176310074311774174753810121759959790375237533664934329949211265833367654531687515016919411812530863106498450115748711670430677419952786427373651138653043462306361545832660836738304480601544495105461275367602771406375929950039914087589623876783062519255623246079970429312963241301906484608404415065619257438321571475115069828602320271870067549528713432593128111094802396826003065623714528697546889373061170723467721209484536557509001771195431025144127068952589496642110156426309527261579163241337586305706326934837081078694304148925223428300989731405042657991606946211536785353412389916795862783205640300615554026656147812188862629992952578805038140247693852176172721438234913250702993627977541628794503026759709287410595082962969744212735419617723408950839008513312453311640582749055036522218423277221425111731752694119770043430882852053304545789874147510118371428219464372552682905426327377026481296131834531449378946797486379915247039163462796614814398479028033654833820457556018919672050973612900713293012732448836142580466351585915560830705816969171711343689971868731162337872322614620009764573911979049573088781082218608854374050743252202598946638560021496409516170814384388039756731189592393577221198776081643018980272075987373264505786224540850914284798820764384960271062175732401313871830247463760565691838763120127318010034114202735451389326601043798923030347784349311620626623227364130510100237502669914468932553007374743903633606316701258321015429838903437676673294885464253148877580997549067225957998399737689463639712413093946443427208743095707611640641202833594822955630371127700327302165588330446008532108953294921350342147920729035601482239806974698016534185282965918268303326030665609020765642473678808714246730930110918758165224040710810897456661331232595673457276351514496472212179966355125354658929741501876670001464199251226658160246365613794390190455484558624747029833192596279087570936184178187108138170150366686150522267336574448351645644696795650007491955273945954489078916940381557974211986081643548998003238933162957585185939770902827338949409146979025620844011352331521237142852948174155555611382123222275593897751384333458824911028832191221212324744031399328445825511562407271646943030456612539409010876739508814220502638933272371058253158545978486178303295109348879787615424699205256868070086157396708047221260448945022986998169810970326203310718698152631841634816540206986861501025104540537127531189211123966108023721610564946249316810669765045053366061223231885670602278964062686838632797142676693200893582922111467164571121051126244251368587224338537927845891112373908391020065519804861189962380577175735811946160563479290297716859800885633693642314478810137121681741668243165190929252546443436622550693615284727639520644872887007875281720870146832409083893955079655027637837659635734958013335423543743679958270952567584798993523129360352778481497855060010421157756324975550658224196168872392780682588719563288358182976298019147124305904342274151968772400526246708696385350088819930762673537938088069117700240304201516431970718316069223750042242770957699226428808151242895372154918974479317135756028058047312422385056374165728418602849688389276140181869795475014703254415856203687365820066686146349345227038686699137687115195118021333533317482698513935214205474137679836927205629297107813163505291272706031595755663207593384754576267197860738874450195722307655818821479325354000798912994356607572897816898440531386217309978477734918557259008100952863862470474865431414358665579510754153966634367563473843435560612473542959101624957176436641345808639887530465114930503857706037545116661144228109214726630291449359837400189612217259822889591906613248082061120007200699018145678650030821446963128123161327879034161540783690465880046541486544454020379203061624040588448666653199605370511552346092724591900862782136223226865810149871514728608439668975485758067116186199995343602156131978743048993935169359758962565130274762655709061764479696973676844629106531402776402351085121370941822123543350494310555899115679916898694018521246128483895872143224394999234170395168310686543994605341618036812661274566144958496195436176735667344266199774968041596986017309230378810008609828181194037331516858127665622507943560193764293805841986926570345988671774621944814821217910772950875535803846388704667375206855399972967390636438681348305942094272298187239129881519322454949147520119173590530094378909496276125408645585731250652598464005455556832653069258088622060191173409275459697114689109500593696418604372031448686040305983952777436845919223877422855535661186727417005177117473092479321247956346275340451385929673143302914093872841103717266481635597219696859724978013664465031609212178369554069023288486786999038278362758801729302327206414279660198261576925803931107315942878194845162496206225770674947185721150707754453431439325133732989704173356855387967100054666994673621328059248537802496321133197200875992508751392980146100451778107906261620936273240030122170025457333502908180219785513686889031481302468517137038113226551760327127233830545299450075021620062378005047956619828625793401859287659922995413533197346601500432289458008764566436865364293499564870552372115806755437847557251144032760023698702596043692520397581948149412701783753079552426749714340342028170440110291825396963244234302185537359933520160025806844998995441187582357605963888454823889806242147355431286825925758350748899411788975316473564335682973450249294895091831400950526541662316339208838189421097142631025937138370625686798143128510820629813093514591803510947825891866357737898615659697516265187258484358633714008671683380381139357302167203819201830746573211153299878265237210441041307633614722167060536344848319088350158916941753731101552499213952974635745422847028071768875850069467636926391641165365210091831042608766413460274251107750921168800273503533435138920048230986683617056558864397346767833601286571301169107162117324820730695067919522472470510519394390123160403521761495436972909734529965625482539162132549993920406235419088383669576516050526812136069053946591607307870508013790160271517768597240604271100017498455565064375730434390204245039951717658988714021608691292718552146789456289454615271606209691375921067888542724673590163897897986501573812168776556247581462145502647582183366745028633422318004489320313032784527119755907813467895755485571372531631499671456319494927674133452865228598219161819869066238751637869345463268597439371420048607486195189364687911195692548168045495628276954831185670520576180003740398597056966630968197615025241091406515730342425692166481797514976277654782660631741321351551895583457385195350167566403794860754955077141402465367490322227903569149234486901513561307214675041116860412184846626229035659721534042880263125480324917387090793356164424716093786684000685990721420286024564933238247666512249828148074354390068288234563413954277800749998693750966244042547362353328704416898929389887876344866808494640243842287405960932017044080294920890696983955616388630397951823570061605995413455484769602162069643118206859847418770765197004018339901905707708405436388637727221850065575829893135507438434312738127042865404969392241651701108627595040340422265595449731981869555929346890422094860455167287412410937958195709093071367313113672024849769019419900501821350350669096312042442285101431120135181960054956063552959660246953247838006156423053287042852619037677589524977443579717474799721540546401085473629842830680236350618181894839127764090832243958318086015963520443373847755093598411668310659426819700824385874127341361179070452424963154321444983273450269983078185562343842511861886787983151438179118142700186792874510081196727381256825429755373612023062688756265918121159522197378309323165262052936240625645023264119879889712728794184564358235047746550626106388515321485991434387242021082800363525453438316784174613352560543430169108193569184400189462555142895631968303099248467604476764123347067396916979493985919384071361236656631437834698565867971909593237118684952665069830012358151567285946214572848059482839378627281384678853247873177034644644001290581759189776689179299709853867936433252358936180578438959570155676498001494927462465970090673143605216547416063836606166849588746570990818067073670236717559771062459508206424651426253608400694500905527097326870423442302822732847910070192809736862299805642128664092580584054748473066952543390922541568425423391430092167798845420951752133234606441145778199229425798861830123126271657518301860100831773262726851860388381422083332510313501894840661829327865272306523844871537390263759973086741222246722119025167971393664694861964418447190396335240911555098915019330745683580065212426491254575471399536849378246654468076742155822723192294595329825353645921064789262382791252306829935949876359156521639218731698721431088945212381478210870170943827584832721985526035983997068758735461532671317045343754950210566303798096521839416313751510888695309990003314273944661670708477740951178889791310592771072226251466684845561648784510136625343187652835980202639372732732472800401135945133644151550814114906534294399177496817842261911904271141211025176624012758543390157356571213556749126279727670933747580368073114432752313799776934146047247819291693544137007361273571504860099296119513867335200959562617173679177359039796229916958083341732344844444450176933306423174650521825812473884422125623397793640960666296570771538555806275771266387041132551554804990671324274647749521235216726593388667908915319492807206195255982334111824293531869402517264674234896509889407683640069275529990853057749372244830821835691574409084350983479061632542159253324270525694877837865536236895721616299193425827915010196798222406499965358530485051780114460473836687612548888503160560264224243394636815902006998912677472339557764840819582175531510825400499056301945576840143501107739119665148935493044510132980220330384740982112317283806733416914613792569992169487288640692718978855142722525596802499353545888991295457560100999178111725057831762442206634352117783930274249961364557901627801684435961277475370908858308291780466633328483627718445148288817799992174161342435019235072173210525168175669347259683010822412068220845145386111783444292057029105002618577529864634501399612268776479761687623151660080428969151264064663840379330031211950845186723208096163034028849110842976541388478209715575427277257834930386276960883127925461612388806576070763382155588291791465421559137769786400892463709616670049603078651477097195392146185654011253924828501750606502394262889391070340197493341746502015464591840561147101526926515379549585714857993818313713627471852142870635149565618531841048653345079124540632533882471206750075028901443071378769095215245250982421778868703741828716543518000175414882863506037381508557398125420321939720165713160321738266523681013876480130426756299174192952387016304858741902699032245187224352224965035443497252590539242624641656490740134088180844522288868127004522979840948387768972626589560185637227891724178904834189772693412590211032784819347459092008429526512083237373940284009080039708650120682310011706644258439124567626203495313496587135600942202319286656090205267069854336332452165005239809378949226554518398948948192650649456066526003683715843984754408749457089355975521842122983037163194952716088495274991327009485793260317867042346961723582883546684448631099084364867807181742431645635212349842995425568310556220579519224537569268587027696071588461302498200951679595248435260566145686429553229076095744977128520769888574714372469614587107728013422794201626001442388910288146665905843372013031078214037328476568847374066512493599735872901968887091275785557990609070245111085531731542230423739989255909988182969150970400976886429195304571602361268435674988576157372611471089113595916950936838853300401553574675432807321781326193542663492907042769842581110231755236613635648992582010348274734396379012502890940155146804869302044559142833992060295447654737369341694200472558606162927237682956474185727852632920297787505039178320595239757716433950148016342120664874113946594142440106684964148459077330542384953934574276209487848583918974657950201589405874827476775914060122693281859748836366554066951918583567942916617209425903714323232235045203682290194854791098093339293640586610976915353553138539091004427966306286115531239523424488881058827916747140386356653232435536322862744876788819962745926130062544219644547103792170216312217315933560487746476696666130968289353522591070247422393292220068424061259123925934703830587896179920713550532760233740184917575462962301903338579902190002081968024168990701698081624820369728445614684887283329189229251080680349775121109671653335193329275201700467772586800525433074556584111637544320800718363887588550796702993837447489143482022079242405979812539906736892360106585564554953859159655347098838771169032506664564020186300120496300906283832454000767147383216621517162259099312829709341171865811284675424174042675803547465257655450108420674260510908315025751004134758206919463256226207235036134743751829902532344338060453913418975677869040809295299367108229078506334866499025988661311897099129570130960891625406873945629353664984682700426432589344726826652375287133932138060548618590137101813755484616656091788331274518280717365851603011864877104539274514623765422731221625239891185163192629798919959373773629920442568477256851656468305924867092373825778574284940417257081002318295892627598292730048511237832249016981224887415271985003657521092798135080028040223379567821465843247848085252787070687423697993263363593219258295684876606698217889423803537543853129716412206958836096332406313457538246188313814376230963796664386796360233960168184790203536634967588119876824904949599591404604351214041325467329983616429289883173918961893496602834585891792829717985967128529316113559759015298223109502359200616645623633973632939044280483976162550332698359643770417516253828728002591418347833262138806254867734489520193605169109747616498675519531996071151157414499966847615945616742021019163736448150983709996702514263736549960999199355587685519983681976965558340700100594393047445696188706390279230983084195833100657757719083887972449900735370770353030410190343076679855829770732123805469455521975558788019308723504249052738384287473603947286639559845796641642369913735658460476585693980945635876989255383056302256653703228084767203562233342764607386527860934502483179637173168831326035255045245574573371455601759445683878987115828784076117184855238248657258772466383419489918556024436085611034222266694490383016370579963256341277025521564935841703091803048722255157818603210693207719929782083718734283301289707443628523878308108875026791322999646442420209179448789134376539628478308547213763978569226531027769440095734434869871370699720337189829382778643720247809783009131879074308034776598743586970119755910445086154907396954744938479935175691056575716625227256475067899808397949590958863024656248583816271454451502162804457655345526741154977795265964242028358083894478348994655467595869494319300183577195330908412490976140187740134846963055116670414205618609144969560193691625701541921479178861097547236482911262647801962023079680476165031118543146404008701862374089956927772730220859987101510963782987855960542357428668917956167492382588964458689763455959904114260402389793346874713709766129332625831162491320895749078589706469728819023562501818558392245448093870683567688602749111572308447567953636831465119153686051784871000918574962559462567461502309064819095820371979698526429023376501778451065719084007892969073613454061623370075062248337455339909593874660274144532611812968105425765343324991960563577861953274767807047222913792866733367253636030218943286560489481148930168896561391382109198897316920673236974072736507255526231383380209044791473223577172395422278107386213105255078058339724194326475414460135975454324667018091038086191774184352992097658403149798018901829201078081115095701978104045384975635393391135462078209772329481311475107148849481672614536202411236312961959565818069789803866154976052180673001519340052746150411774764933275055143778086267878212705329423859322783732490445508581304063264567936804317689855694431265573507856808493823146592292628216327774422238163684860399789795424676308186842651422234849683004039642667898698809692043806030185077159723812734269614275409280462877591386320551461006237035304802169395506759220706989117306992564854427664233788851174107403885389780342896618155077208295488502371010973196677274198043807237138276253038247508514514942775699028241657165772225969619984014252350266878702604493009113358163436525061065351002896999305796365871221351532086558763646654820392566315418002658927630579862703711672227484801355299832657983502853328337444170834032633777685103113415217625900274202725439466087490626185475548156214841106881072670038768730925619954939968376042082129336168042924158696748877784896193699766384658971212623294834304540116646749134032614020374064766308000307118316751062438857254455374933588716775388723943883183838193191631934479825773848440546249200301113473807140312010729331391838219187775522942384597081730516624574184307781352978937252375012863110800578282652882867316676572545324536084581694252483146787613843195337201053966182955958882666030803667204449435633669573995258569638855239411449626811858564100386851663473365483312503509099307247518019846594649931477475954388578106780879472575903660075312195376550106469369645913332213808327678562839013258211310085862983286037374206930518430441689457325511889882677982770661932278967460571809792221701394609819027728224682820848916270719978341125639882566621313411541275461614451541626072149490181983431604687572767568893520520891330830194086606229704430349120396259202356043884576762692241518487156696000853319872349064703606992312857188579692192118851103052493204242935909264808181869122075026675612850762701932986861578788742243413116114446535940262422005827878235718208338596221157364846703199723827741257809937929458503986682924189727613909391344160375757151579874220471817630185930052415004357499612518065135026260517174094343762025823049989315227518983270518626790975226402176785183945133830255610655585047917926372862225847661046722520962126450235551014436203576379110890112858936509881239319791355165568623579675990779725378328977201317240753723303707794301787184519666191203097315287684101379265083828836553570532408691269978583896694565814332906598554960334697999926735896138998586527808957217687841058550157427334190788505231409803036738597636422926600279984193944465684430998972643199175386699799211308206378704957812034984929850691202758801198858526443521897653297628626184353167573652848714540594258860427529502895690686982110942317421226027761401405031487129732347080521997679136944800723262141569992015187183917840295458882217263392851237934968045048889983054269817579917676240289299350445475456417038134796524564444390498534486038769418590415782172388015222853948632086304339792722836876939810938787623695422699613138834171972270564399608404583467469045577162670345019645921804846098438001790045329275266766639278102073357111848240976641504618419959970525245898675314183515467202475261569332535103199237311228411591116717782117654483419149246359361423345090829939499553200936560926819069598107315031316854206021636512401317691549005025852371818809233149119405474641001603155317254184982214153093711817326685237305648679292152706969393066619779829875471676107185396481766133568213758531580841866701507982196331346849147834631580151004368389495045817372311308795646876773517177705961001540436338239374214503115734850407164217701005768391262674784583818028380753112588015259667615148091970876024362062826969466625936146856335923895323827572014400312384602221875964011216759077089999446182269222024359395861879652714611859222862288634744168541603203223512088081871046790284092045756320659920459414379857057117499893889219687226031123653221446688340823789332514443769132573939614932533934910880854493495360938170043566729979113719659516224320483224492546055773189707017856046248855610503390375168476894879395360873156441832085482783099656189744250031951662047985318377917800744369600844785764586630931576304127777461292451448915047021139471969135209848326514566649494628786897587261267559007641178347694809477054270701981329202799950800938205343945873391331408176012454603266443434253989394584336075373847546802700924347554313004421250390273739654176978922449310840266129233829848328865449301679532375360984834027941291378848268652523759442448708559689240578360090541927777441096883274163587713129872345075290124002565454181002121085685757844679571376797666543406856207301915863419226501268938464029218591786828489400055883954445990811410412068467815130469202441410007745299153718750044657426888268783148309070345358415513316459624956668159555834210744120044922323330522470268702414454408219107894247978815702376349939009830740919554677648302007600111848673112168568652797502637354135142900038992937824927722463245793437226092268807980641339259292003242729158851270313491666244921236254136593476571577316011025481508045350386656169516791145922454784553716994619781300477483040108544308146824575760422264549422565540675883069056758481578188101911746772211855645033416812506028182520806143754644973792151298053925105226055511470041181071521573157685974318324731708238700715011932874752153208404634263663574266534064208700246988139083414756358443286600781733659672951219750574775423794052166735867963445345579884931359534925387879918412500278052154436082835525547807701130053114719675773469235444566174385559470379402842445924232509671449989303656991928478900926562792863482761878828710859700874241427113699933812243586913302646462641182559805333344411450427791152830492262972342128527990580099394342535627407764169523695552872986108177418904609254553823057932366847681972423534527268051532608127797342351039415436802311046099996635474649255020683680580111665781631247912510697297586399287497680134386928450690243406717142713905238310743913531530294930373243396784118766199979051926331693311953574774799155845040197484764995594629018403843725607805828980060142422939982304372404001030691178059174678376155947932037218481755439496022332666624934194792600355924615743127785356927574882618807334367079272930084109176889189263528634691097811519879701928289786326946782456433791053921798621388809550781591157932057742130858474727131542394887830353646098134688679971602070478924034506074701819492970027363284488408796915918369140174098894169498625432641210163180264857017054774869533121005190304140378858534904819156509372430120992898836341184010293129594468890818130904180886448782489442503140686818505447195517121474570928789474262345921855794727736737520149834557059095405798711413666803915750243440497432865096647768638094347178995518838847246773526338933749853738578533660175619344176858183168587902566642629332564770119307011333180520225389438865868968040463705958330316728801373468134434294452825682084113783834537041519914296769445542284377802827075237422256341407586476087464830361605331925446346424040772195549131339659317581222871307093697221396433645160642923331782900467519981320819205859663150653252663777673620023410466423712084054397000535808707462292005224829277062018158806751098667879319495228166787006978488189138858097125675545523181604215892039056169803720307093717233352698179408094474199186464836137578583699458272937183296702336418240930173960321093276087299323464738384303144182386706118831918257996176540020887248362062874743602246394548279009894147186466626214028905874866779839980249636733970284560545834521352868186854969509730056677436318852109038342740653020491087920188065920638721616829437944900796599153172033558180852443996251087696204533246960923556674033235985816621504367209251010946647609291202346934464921839390320529182200284051492230483761908214885574376632973389309319351016469155122482103156588630094240741719936728926492159385425122587203912344925839881507801325543589438552538458424652499917978056843304581617393496434066285060983534920149983309925042719123780647489491691084943217711668321937374064981437635599659883144841202706514257536947352247104904505558289585675264920474965341056468981464828630716380681706585830883141713068969950066180911476102213574530751412033430460359934170848786343884113842340809539474666831579550810256195829627376591293914864881005186812672714621871654099265068618266352519970745577768488834665288189902144468900535382164927330862670466860535108920911993565979546651949940032119842509147869610083103329287271069029087432772405545700270624952549034656161799183323637723115124670346842069164114711820232085660884730793789557560913247829135867609341017565400708992577504662628378780424638332751999278626206880430085968074839099040986072122902554571713355757876913035707024339166225000640635673779960832317760873481413256468849566012562867429633935855809357190893784708582679165016724086097458392703196884354930774925516039292394911989523675118102132453888778044388241915732789478113601362393158067636164293234965040801067502102671380875226058780393483624535049659661379142407348670977416703318243632630080722106011482640582619442676098036641859348284668510529461982220139024523057616247648619731716842590925778088820494445232374799070223518021428319258737744618929017925364587850411997055480258409754597956705924400533983490019999465896451371763849823358185083443146063039013821645920482970899943758722255473915806635498108064507160182423109296788800178536238811587101719609402514676928925855588814155705486100118813245629426894293685421741221195837450580755168010385616820309066483893225475315515336503362847895249864590325429633462440771481979499523253202133410540256185190289590649164966393973455217487456798608573918508049719401881492706472015935236881974230937442904247145359832603240463711183664042490555901938756874034159026036885954939205693089729681816332753428854039757220430758310638206577328645330378483590817101530017655813770043762592285532898767804922952771267868669109180731203118789983387634935394197142119218238170111847063312128972463371959290258030687195566134924423593789598311648582453443297465021970137095790540973826786921205623107202824230848095784669320586863777134943351981058687542582188312929350057531285428002586106961285754227036638993151237004436774499765113280910608617672160428391110391691562666936197505251324080730616911326680815345774634403496316593732746828413800218091034220039552580678469522624048300630888366627281999559210960018371641533368470349999136672775911286766053607799196611881344121403232849393524805780260559169483928468512615324538242182015876282261542745748738022171465490189792077161788541824969935847599385376697406949616234889939536705588230482168750731010363432345569665205999375633297615214237003729937032746456154570035209427493829875552539895277983371244470690075058696886772340570949759431713030239481215594175516709149415171761697378481444272161486807928799754691087105586084854138368433302234108274898203512062681511939858202730146370097275766475306440564156410044718998162730919277706760034848210036765113922541585374908140038259139018742212647363337144595068008811415307968386355710747442714592122580209448604012178953046046817405011890411300400564706095663403130612092071321060062589462377687561589886651428909159133124763211776931776024857216354095006476060633761202113244577900533603668062763136413193421581144545291608458444192318511530157863360251233158320959408379545968012707770046334976534808595317249747305869154985725002829761540406877729622681287672875843967985131298026786035452490833602201535105297477258721619293508331669724508824152357682620202977449055106180706565542610153104856226080975911491678670214582054068551843436656025983218460788484182206626342412084282324337048208091178866147529600451349577332223937052483612640583791578430921362906504118061111719240149796635081002405106336398171888244006010961183740414681570269028447124020086757276485770799485973520285467587091135604316179136524210328658239220515326732881364108678928213426273120072564363539190810729330765366794702031914402981632447387359569847961501660476142908188335203735018804710669304462210665265419019473462336768458885822999937505709731712929135734318151850946289194406155010103896244278584741337521800646661741361066296396658582734097041603387234275011714203093817344934758206519260014388024131750627205930261730037362820336128610198327267364977987359532819556996742308299309099039729561007501964240986437145007212110852334587408831921752656567483007993195102300683893266383374970107353640585470545656053029309152632968711021335250498556613500454110897058061009206134038436336715583155793846994108493294654960633477270228051537269455868050037767306554462071528876752244516315228885403683508089190284818812362405004289697386614715664790538116851261613271475344490179882652408324716224245082506534687088041022902741869533665399559529695239832933834196952360895509016142166881538690259549755683513180830701052292301335908105236786784292459028750987774627753943815046668019193262777185513510542885139280543436061854039609905072604839049108140978145743661699975676078167090408174485825035138323894926100547251172103866752744738526947507757419507654045892490690538176436990726607079789958313095241014121825637764259200622868116817648754229262758199963529125024825436219449982783930842496647049437931887815506142846199961496065504719634861811407515175202073368182747626280572527984414361794918714756545380764153967160070265001147942538625636263682805490337667644214109516583924419616480175276327402225399906993837878703295379958512292794652593733270927863940801510109931259801998063441393774445603233830045930574690876251639897702487269289769895442340969998740140567138519638055274521330179103667409145707943155809211663014784919408513265942768837589306335364914982053325328515831282938783453267330518038480213601135306344118343686265984960360072926078956566269603613887063470488968368828293178119745703766527471244345384661962440131052725502279989842850040301861186178950768436598442743531319968110606565368185523583773354620235975548139478280876070421386980344233535904391504665205350504165449378514916962735601935525009861582213338905149996029843446736182564108367315851382459007214783213405522637075084253927726997914105530487524327262705810335191520824026571322422209127340847468213430813424076791313639174395121265398814815349914018645537706255892824082337764467850483304464714278959034864449756688858234926873524001205857853971215229065360642184531433118902384109281199295017659668525368387483250172239842462808524750737382769688952559931696130885918827784858670979657225135384243800609889431846009505941647955609929215098865562947776882926490712463314376624901427994333659236184787725580880445976826301385958415141859650178349132090267306295678047141885698747699298576383052691036508579380258011170758457414064149585922917721962704134264868526174721515272263690599653870857623897547260680153651585108300399241283865743834151734938305995827370919787335054104316630251885285692214702911708462123613689702635836795842537701288582461563777284919486529428672457759697012307891886143541790494557262865159438838463167703377511107780837334361936382694682067908933930589129515855786801236045815596662879352530569465335923629056916033426894767269222742497581698183903463198720904175428589153586930680563237934650115006646271327587150215454967448467050878201706155533613822913892121555039768354988962954072649319255668223871256756540400523244436563817949867003255798937113145496355772820327638428693341158023433494802717230827361079169856742109158636337488274628271786989059795742100265805390653008058270370107851627314396060202340036227958544226639402971407514703675152212585943276334739034815463767883633923771263083637411160002648928906116431103224906964742519982212650316386642831803223496466303365753194327297602837381844895241627725501941064648766850085076012846910863157731185628876381281602047047294571952703719405051853166536916188095623518213742146830276942657103614460004550853720758701501441008833189469161862211385302306344082988505403414038646911551252402497302692583710355168294854103833873830138524418831440179135255601563808799058338949013376043397726857154448014298002181883308767052372787651678712163153683993140446042457427289189875259919725656989098996130418665411655901763051354986061744232765540980092543213589479672440284845112368320518021013972421418548234559841893977037904051690040089931207876168840428422314320016717306893514124695587046193605000399869820892960406491882605853886688670175384659114525674473277274863352028385647571181785544282823644334748147261394910988430961093393215145289210218793224001510735404300380198069675579918018916505374554204786545141428198174232190497461305770138724330360631004126406120173237446309857302351983019164949616865680545558375240620779520813248813014962099538362865300721022841861666117198026056188936446797514077050165763378782801815612908438773287242419139085027841562724203112088905449108274703838140614672964498718104197373233134354224862489297605488998108560280956613122628260196029127021761006303843683217710333540936261243867685375321872767329157198219303277610703099447920366965223942690208958871041285240764815869741315900112713153860420628519575163607241217510733162940248830529498015446879096217618390895104188100725397980919322111156046166895837843481022954065449841334004978931290597107446676894976066223583888319012150214397683635551955960676856610263129794421801913144205422287355135749602021181195447351384939127256285036593970495716857667605023085428196018950157170825295597045696171852468942706813875283869080168890634210553495335264007850775516360458553942672887078950805446094457338127583941033888385300158535548282834191635146624815114247534458803110143313899858803855193838864635256135878878914936952611106515102817288395203694737765595440681400803358596985077887992617285747159481050229387479687768516717580611491973598585560154987339443758394162458364503484509560674178292270578237157502412707928752968294199780468082939604815486568002174126902243730214329616551965939676443009343033650022189598482225051467877108329162321715537256902037675904830689755566621637060500901247694189172602566614710766425326574605942877826556493079980957332661632471164213739139856313840385813572983104624940966164369660179653293297278056671865905879995150910441765315460925673019016321957486144135328363198106255088095585321110523334066782773203363999638360923459528709613053742621101196247943742692466894514662977539586781930905147768581501909360808053298835151818135836019148145950254181558538145411560857236364535862440957696966326647700091450099505349696237214267905373952974743409762432103858695948107061742681850686786305152823306463926261033864299764530985370388719841061082498206524565167021307030213561609237756483391671675847994297533642016694445120324170713530754231376610062852075866876268069492875698514327733188353523876141000549111104814000644397531148123197850625503230670668399161770750145854377158256816010283518356523187546339393908769137178861092611722497453143183583880857873613888927676581775125598932637696205307272709138139693036859601121424510584217971502237483729522733694986016903760478534941634126483205664454517392803380946427714230873840130533183216910731582185195847001901789812975465588721978554043029373405529182953724896143559671550974985517070145435727715820154661270234759194809365483902926295054370942859652480969583642020171718025417020741823717135790951243541181357746611546511765143491801596602968660352755223950220470342642729780143940053594804300452394998855944458680610222446798327136135050401949417875605260500988423864867981750139492731691186475248359148757387763391427625402838658776238235303201351373731615442323004895105107963826946352056404813067782355552571834156597930420408040194268814195706964005079481486130896474450360883230178882852329814176109924648760076807869706846957296070813888098473687249530328262801870764741237742071718332092606488217108522871404429018972663478326434233826677908760257367110938650744514291870032690498073666755980085483791525156903354393565890470462377752528079068548427706521112379760882516477127138978407364475624708039685210454604171034327495394360106964313034262967465831659394899889364562680158689043949066709662435307501228384144623071688959673340850333315437007995701422255274911575607329736985072186573520253189556546833551227677195801053764701059409985394092555690253240914861722737263221014241671864400323215558720122727170509039127066056048443254937435923421870018982049961770981903091832113112487135446424614762590793499598551462398868547918094068316214988881743141785570728713209754619992706068007890259591491989860745131495078257177716752810871171157616354651797328742187545668705118174411697984502970908474829251477346021103028640441573823543129841312016959142679247552560595627564348760060875772009968839986554533732115371973644593111992001683206376310308502335897258356130658367739417293327172216166513370960068299760151857278037155946548808530612007638185309366032438901480541267927873412786863605156170433687341830142274856015740219206024003795462874084069925881270215854490778807258990790749393203447064117875838898943569194405002192347963310758921813653272708256062204377232901191346328803381723875080652865158528446592579012894440531139299193868423071822380694517984434951904070823724636094481922513730017077639046227545509601761317145615868382779807348190606873809489861981223106840246982439318600694588842753977279371613002255506348108997873362740824568020162106225689466167517120091553986063024871286789220454267390007944283636064170056526330526550695518001288528341378817898002056550499592338689899650068463885598158130148660051867971558278310870670760601581550076560282722298071088023622853128896904817605627099269066970651271334228749095838047935253334477891895152761600110027919332295308706187072820363446770460132916248424374947099263883845339729031404549556866735491899037151189919851532184378320364517145259584934384659869293217976726943851961709384056452156503327737230184399078142110537844019658885225001145689052346147802851481880846173768069947918964362978913711157186718362466341939646970906546110779279220348546276753844113781837424353377337208700547394099514414817895037537071543271505761257775975708236595866568632479152504485669622076701025904027189184572053610398923066712118783474164592535424809983817038209859602363492763626794847652352490302312754430229426005790138328042551910134500103145822821251154956547461838420236491884635881940385362635476096817743884653423081133876079324075851241615226296795963947027484502127291465798073382924812177360544349379228877178010351137720339640755132812762876638775474221336470569009194043996141619674502836148355449669350238293335461285148432711037505865284734044813828500873521853828287903953983203830727769932428605536266865866116115108471117004559570454375012888871008597332460892834316183218124367960638022168049585071378977555864977116500294331876492945527528100411764035651221084825613448853589485781452022470537562239865606408905969393415084727709162266021211580822679381887119078452272962292534949899839771401271598577078899594490581005522132170300122852789184840129496157391947948435578018272798151057747037313907298421688857452097210200239655697685637602147068579464362139647011178932237080834283103214896019252722817512855988236167368515985487185826717236781043333660006174004564709126580087726272233743320442548410643945621331190188315014909348634615764216269109801050024774899356347861194327816964966318387786452336602631373127926182532294190078661066466849903281013501695183232434510197913912315113014402847556791361426138771078371977910619038612578829713303889269917780700464069248630024579039881193516037354699526608034676046606912550044869597188217143616958393901635132720821468947370012751150261967640025680631120198839150635634071832609490082136843364528924878653841630696970338485262226991518356887818853972400798296396124731755388337326346673691063209755075135098085437172623076406474862131048248812370651840332375284877523539808421707289287500463158605776393373060787282011724980721195080028033024684247407688266896616958110218904818302576046214078042722220969625094791087661116007338851209122626391113120033047759084146929927721876999520038228219065662089554713513747397095462117026749614683364114544636636884888782357214025461494528227483603792451681921588918151641439918339066931120962431513036516276863603216407736969856140776507167249700422032424530345626731451741196345035403400740717426222497921474285127546470646138573004366522163578308100564999575990520990746206393394929979192749611889109540549872099030432838978599308931195177845699416206732401804240296224602268814943628253417048182499987509490089461540899489881123589778850313441399730525907830798499700820730376449010923325212953905501268571715399154478235640529559888520367139504720093484240230013650768821637910256165299107080768561279384427767478623455405809674648075604904898223948845510759806169222067154317720687408924919679689961419972160978553253848768040934574168277635163846301011354978891918618689862625399211049958722787243555097857380701959502147921662231892437777114298028955025660514058641632702168604629429523124746202795337599623207968534711885923208105681951677752906690891030407794044927579365511734047063526897609309335355628714928605340031039790322167150719286448122473220643955416989173919515580766460359821524758692875349313840033536899211588322105445574977328840132437075197580390783246527648245929460387284751532026417908674563542156402329252976733256391692352126963614720521856678847501154215132391944206235363192973985700043407719172816163819507411936914443066975983584037840308540794083344391366240784223335156545393595390833589545163624723542446285020256152663977653271801675772605990048552101940343223662403725041289384690209101310546428229387402704539136391560226176692137610560125645203681712387859109190358769843776459145521311613115719731141524675407047203604587914787735221518023060166579597218822765828650116883423560305140337519053085093686042115560400072895908229575179920616177885528211468852335634821156840517598682575332958929850677289002971218628963013444908032946970743464730715822993216751201865501297938173791617989491591638102618968490093582974610741119901778711326689784027705236311814745252057758794767045350859660538260169233932777646762074349324224884481221453577747794767633544791742510113586944284996778559362713223353711815847185767542390744412133110829955229104144807792360899088838538435447284571227294195300978184812565291195087508620249454975225213511987794990149819955133678929025842987941793749700389039596295616192273242527575326240256111465519265238661834614662162185744965728135404222901065845446112009106746666318619294523325863905831303980644789020071058816994368660662588102837739099851543702137829800853481811370222175731475047711215347142457959949482697632250017621731014916031397099673221381887051821109406714070327766373331688442717178181422017013650014269036986338439004953271188608084916062603146067958744638715646187766845368921009017057339200499269295807579980543462629194900649062420910759179820701691453615287357656550475392776457522186631950936403050308459917234779464446676459299916929589956881258111451352473563722600533829200812981222304171871607584773073560020956567218879797628520305203592039247406499764380494060109732412373031690167738345519096818025373628698187852317063094224200352426783447121622120051442599708892856796129223385513393167227317492118224931615401447882889262210317408740402304956080364105180781460221011259812143480057451453714841771335033261080207547289149712968826442294421690723446684534148619985759134411311918688937732208820117880043986613318384031977674864889915187816226708601965433304872087423302277583838574912742521371697681438721446869659665299187128794375747126830610682250909515178199954615624431662776354124796116498523953825043249232016567931239200053394933089910760930598717143346309609057155694931364068797918859615426746861396584304771263812020704789027710663098371945050047002892794794388448415694454906579517587551884771187467246803014102919774818582379616298060214183013121676829875771588535729472314063309604170558629521359068106713406094869650243428598976022449092539771171268318718405065631616013282067877941015154276034590150020481507406239072060021736309594385795003023562184464961852295818590148776041223358625245128152885146795287789887292512710471341004655120461209594437177542087340326041084936527627978647011148578255753675281772485357560992926048007325014413240923951073953516061931342822548643836984145288116334283357688304312018640848972103957258642492465344685022573696053273704239572220927044249156426112921596593840465250419040035715288802867825145069411511232386264266314518288950578851000630358911711825771322478398570876747578848352123964103226174373289927963262045171651693344387856133859624248284202859337243594973636780035594803318990509581602595382450463870911621184420577639866623295151191809128740993581996378120380471637572339568314863337381660365296217860751945997349283811400746756709802816388092769814318295262771945182592406325734138906111203421759095245035862905050312253691657153153749649923810364593392671073866638640753945932025928212956396222050945084553770937893230483523233850147231392761392475044407892267008132545938332327520737809615841074397993482887686775004625034698133922835042090288635917749585763059825652018572335256976027004218997424781069236541865032572259241688697378830386620129049095045225805707379616573126046236849492567991258579176934390206996512209978091952430947881204024213584338927165997166771168863447334471483367271413560887013544802626261518064531578891840164230069060047838300630252988884097345211735236749647883639574802028738566990147897183030539635154006526312485951780383743507292857219064964449946209254174253670821108829235505969038343961573132867649757841621150235446221221066015344968035695285593774455687554535728444286780403152739555847018813185309859253249740566654731410815394590962956334629338258433935345613201322621038755969773004192072091609836712725872394163786551916045180830879295276348722627221775960011951528077511069231135850426366911173171838547027982728513066006758403437572675317810155515249577638456370826686210573971848178558892903747608881679612004042193538938827148006289842721412642537952467661144731246663131300046683965363267953374800227870688180992119180833279276006598765732033137959610200685982574030453947790066884449293858857625098118002723749940868371122752295664040580390580969730238156117058310938493027397869562863834088725074755258077625952698657466172735831614518020909033099066906382322582238690944472534551981362697244046211186996107388548632026858211274545134931528643863207095867091311268082078130812554760292601202832825585274729859021242080243013574961300690010928770739650818718284358554874631833914605929148917203680748857955684327697489407206779183758245768223623292069824648651370955078593842238581863033290779513196799985767370895496928764818572689752537793715668251503689692234326372848062617180113463979484217627277354993383480670832188799966035668750227259412319909669339952506199299814739179280944261852134965744828323790295391967364881677581318141073066110004893740141952214919202344115989839296780690554065398588409561431416197809144294383275545127874302889434157992715046315381929731825278893525237195755640771604385992444499442065093404409325297710702943203090399490789609597508684502722504620570368200676325261747730630231544933289295711897241794837365551641162960585699055591129489883622949210016449831790896270603740882151283280110202480622464271990819217572412369147089374641050289245456960118735884569157014912349882693915524231225886605176445813710899265390346475346859171589245951809034418389368344500054950502796727741529441147440480779265670364727748490568207439587667668287459958932696095559950103637117224959796808795290050519392362560771315667613703272011649268428889146910108773018366775727973477264931958441370614370522140225155013445627913436001636458409710599342273981338722745568650756051767199162169468870721417872277683774257581497093694741617735008261994464235917080283164315326904102302272234923562868599935994027348054719878062442134613847772060459289912387124731013408741646024492852861996107665981330248919247049559457345551978141510646755502317466858252113876660938387155284106165556959677160560227095842469461804379144514453636197115292501788904981786327392877006896710165194791490190541236688570503067986364850752407277889005084174910730789048543632588818118929536086604336721230417152022433222561890581959242421283020861090675301440957978927924426097831816182648397162167429747993310525595025509392037677003440463245205913405140988787998483849608796584058318118486699847411738091497267299952759417124037419347884564014344905208233066038833064887637360846301561928103848509965620998962116410262268975019047204349251267676106212248781505757266863426694285911912905379166024995929779347001325041158096946338872036372630800020424803411377404800258272912167813318343275451914618565180327360495754280512190227429652870877112353063612198690067437770311940421744678468116600594996242430171030931226407094504793397017972176541382281713984141888275264176976221906074794633627787592711863237559787137594661255563846796044501151266452682153233778536567596537157629595059393190973197570286019032997819435806630052087928341235366461322934652585476684913222104464439539349876985319130789646565673671566335097903087975291099559124286004944581088259940525741349813332050762441340222224406120025381544850619865328884708411795427535475618659863332034850465994787090449491649326675290705782415803399360916330461204564019792855556575652238431321143655718674807094574528305366161843648239603114840004752025983587552904014026505998876314925940180578742415365758022860068699064293356757049347687345765325154180164119000856970836539466578262228154321868310039331619248999932982911200697487672796965825636629169849893786978220818529922390711762158515362850969013720513620371739295322284417962843099392550691367653948363105356146182971878214498418997594416167472989833905849718691080310753975107670567351601862579449020528374804829338849963569987655437638349665448816568610631414925648350460661980569400888507494164734025675952881821574688090089293249778406224823754065921461940563110406718246922112497400539521966715240646692589248142568093540668231727603443836661943336920430035221712062497042781834304080162179768961790831245055966502853893065463905712467764055301166867080212090496544331274524635730317764173537552651227477505795220705833086289526726052861394140243583678097402669153955980240066737814926502655137219792969973842186443932459247000675787887264417657238969746123546738245560027300030476096895808183625470127111035673708869399835641699063846195824535730661791647999567815326967965806093709111030834816207405433437230752281850247848861760998754933271933191813063440971919407129890704252153432954335970518793778486413874593590411536076117125310709570235858584383192430688326972371233995982274124646074295198668008068297687222405805530404859289297793300614580790505740249127873932942751191449996128267244837693754201861575408807729431501558121567451094130277266285395904341277670765831559197196547274274204702276321586411417848064785707802283674025310588099374192511800403178188553560544348312730129466841981456912309554647580892308860110153302228106415036170745619998421602182838957403045914079877757349754129808068901499552395501168458633921471383284637306740135376211168940510283215620785660360895971483345293712527557714433141600247615353154451650417434080493064698175102857764918420774292076058086002041963672020338731786880404598243233199123182698891316834462707091366603689086154584052602914158889267810057873185188206332147056441017814682592380337784063280701843157250331880068631954016553853453937531039144397263334283423384302875481909945337885729145484968924078029065726611907356470443053827949531727052407708869149935169471777099357676695212280128550463393477804778228871910478359641071784630697777279491522046339584948118411254602556383965871367731191560119372978139645462814725889948327985108233091792596440433005996317290262568972839429646247273884874607670048530779321578598180268661723304238619011133993738021679471285044182379580553030535160291447836993908904777146103753646665399013499207011561637347411294727209156830526699787402887609827959843917906229986724800889030064096374783684397444845519622797797038942072623523929345462239792079981846715342570473294089582894410157536006009255551259303347971615718754971620120333003230997456889281344327554313559281766488688253614849371586595626052434627547283430357202201658511174231385899137569742366000213165552377003242121790014039292926559243485599965000121389543729146264982776396088374538997790884508816330003350440604383662350196683263785059136602675674846138229793729072756305425108349861805072391270497923803553300151651213338944423163783231043952844017928438870093621888663905502390209332270442390546057480702382231248403492865980778105879803904650926936029809758346814446210020146053553707997909234083361303073130331797551298565169581398710824216279436103688929906996873951432235294666436282924370151191458778371575499854936878667868208801598749167840619946782633886224663213956099590305859080856842328423503522832317512011953892904065455132913015628315487316806339430156748991767689549940156156874965087979575853590125028011175168659984970025631749489025145564475982378070181462120154953475543662417937257115253781244141517738177230604685814172144807020250428432104423856833602427267600002756516668345743000501441189400453993954444164979306624788561669798429278147130139395200723777840186560537730648407739760031629975540242094988150907156281240184369900401631131435300141089709914701337993231197292919982405491793923104936815826887865293024447642962217627991280725271957169775205526728402266225692962560482671775617997528812874690849755731602147189441713813056000394865139850824803217388830289419055363082583403390740233075963824945193507469017020427215690005864084634459116974991536259445019996152467730344712638123426414861753441979219038383517546245554558510987801886731523904423258625004465805773124026195855355913016428982821990899723209115041584268426994267993432059721091621300090293354093322500975265046978865137203793871019800784243539187521137191673649393839950842449797996331618103170010421070031749326087774983977284755926907540626392333716912482803031292711055361626895757234622605381463007896172425103206469711779841472503594871076350107889000566495256252166439641485065030458799358563208931845023579999094812245778128346828504122397656530635529052136392704424016648185435479093569063057743140574520735144873592998455301375623145730351646480844552723901252680533085426741573678119138769384687232768999092206103155543051242281086718105973170556521237580892528993128737275756642193031067900826028480051579674755697643388759370961498272601208078223696064548573286330454283784526890658642977319449600816018715915668335599841872876686245553905129897355424584007817040704895554920022688133924267127768390824004520053070844868697420287010696493772207013475858220947889248206651592360801519685937739810998447266934333206553352105554597658031618429122456421462405699537684860634556725389849328471029906772250840675913514042375841475327714573084031474585629694820235025874892755498415581393676094859502766285345696422421998886706345618719614041553989571585846852032684110639180725716232997956780698537092554148841380880294307925292883589127447851626852115530295244521447685502231043296542749113507395962141674365474220288041382395934132409878941556011618855728193066696765531640646893615961287518419011559982920216529886156126089740549793277555643364025125534754539980710457789785000357191776634441653980406028145819097603440921403557464550142502286392076048704484956097384394972210345870861030289198957241697685543160144191757025013528085071089715234599175464752800147802470568194053213085129643903230958649040261457331967929016790366425318366737670181877393970826822674860510107653714023724276244807630402814767712259634867059357276878239496271983166073101465537650791793229254405667300782800989753389363464987012096941184972702872299019837977462439937598327918788922812965298442772795114560252670671101897283603972926001942440234961735881907271315787195334760700295568735515794944665146085034339716341918638226361269372989104169111590707036439560271168829077206180609196445605547985541988951692042680154825428164887224314169491821524906234945701655959799706788669294118439086534704578902742537284418412356312318818059530073968879105333251307473874129957506219128177119439737053700358764691182147150490552393272773975931350122858776271495273614192974851499501422571966584331498856695382707990009472923804112195955742699294036143604171167017643240951961663481615295313366240850235703017030485583619698976355385262139785796089264268550316958538869836186197518160813398294615783357388154880841291957702145887723587834937474393815901330409706639766804559688265173078466752783649525208964292246175237592990572840067596789062998089527608669478576305788370007399896595772830943212342757403477315228643297155273284590861218952472406006982197510313058110049568916548423025533303846991175235676406026336513694050578310436708990440734463021162311681325807323285499241182982621453728577495870989060971850831218475805832619352088254926389450498324609120013121440349151686628509840009432095446991917965512958358440964413563143802340007605080747029743587087095989203751206188708419792848078997897148982715649106617234514274386361095146731306247665402109684134691503498464478837683047312767294568648990447076515128522356006426741671231707409742508057725773918178299036937200766322856171324215284717974644407000460418878176939897877815155863777316153427473598392431131482587351423878082362187188636786970460871323497225385896845789051246741254606936377127241089921062446544380887014207452146562216024509775905097560791207025874931299360177815242199722405599064844234599775594123514646578477422709025754557272351704714384600783150370671864520612902349383894630819547593649441156987492120560059123286660278988545533548996961208896512654797535883109275303420953667711946649676647156147998458403090879428145834966592892752110942449451422332201873220154119701795993641447756297479844589177343504655481248254577631301646086338260846480728627549023601315286554462901652294200190370136607064615529831154027383995765047208554063942471950327194594784823177993987383162848085959952838044121284430763555333740744426770332684730844319423079283762816382407611287321755765849573204313014647966968758260237541856847137356915957736032970012604981654033077153710818468872739557583829781191855468360264488365341807460241021084381333949254407488226972835290163143485171942580052702612639233628668164429800470031674121285119884956273494326510958437918423062610096884790373543937660033219525576839462979960059088750898823092619974712746402403872064250744601001397120522332819793877755292571370661958268911416213252702405844301119995674860375112381161007509041405813197223959622146740928778099549586938215078976531143093343106561900485584602784943747930278429459408531492643182084334606595830366657604209348150707416326455118702898150753602241028172799724065805169690721021813964711805698569490284538955387267824940212035796035839466104227059532668426714423899474797754499709297728578602456335143212770139645154799117072098481035541583854683690843520967821874188834844329651827508129586669036044735859564857005492399775831970398583476111189902935382098937192890343477673734262425866094691520990734223962085019739857232911354765713528881766302765432677656699290763612194508867639889115712481477708738146968819140769352885092293353239897588598738609660049612258676343243711240963027442467600168724108733056998615892535844850594689704350305493514551008619952712345363781800752611920203510469273855953871851561783243871642985557731678778988177985933799097187047634938544516111778029897883242773275203045022065654684677375038005861421635525546826672013820444708244520137824690038596874857409759992487197084966159080847985940274613080051741799622897491081323863826034001714516085257624604635088695624383446550670569245153234321010947632984899968214258193696487090910555325747762686610684092195846049733797282105448891393361733491907366320898781348388458086857352867820563070810166897462888935752076530379339627200245754160201092768166681482167566524775343254463133786306632421124533648402741795593051481026608597901453750485122575360754684262155837260444694179777393682993068470617406464873721221706491634635661557651736132830827442094539531710795626735764104506240047700104148012170266891137951033395402930058565286378729196396359689008371349630889213131598589610125240925164666635918721161925572214583681000466721728863796601566612058362249084085393530120733606271874646882427100963392331312649741054055718602535872980688834574584591488487825985281543306471656382321232573496801794348590201152104805471217310683459474142735014369675303081018674051323920256659631488055931704288405079832584793374683007741519093966773874036820984788505432190176263953249012632294901885209861962261015019687398213544688284708878295852700628800438342216875538818790664070252310869187090244450136385569955820155214365448821516596203915520617613519424085411183442925094907172240364728073470206916652368329888952242299494393472357436126191664521215352837941781202024308974776412608661385954859077790547150097959145478622834881273343676583003196036622636285137622151645398125807626023416525672031591617567492432298593201786399678757049004962617022637287447465092915754751438005618472718044700946142999558850005783362156046404752865897667226952465916212852838248511700571393045069381228492373534790799610093090537614072810318815629401506665800468323006181130836082720426309828165851549271191613216140391509794340173859124410313372949191857532919666164136742204777540991505698968768524558655179778106404650561095442629171002565949780078951472760498339572674559654435060295717564283720067176442843713925488426863906395490610122778949391517234912074407429116881637417647858175556288534979781886328651109969006171782006589748809129600452761264355266798538986552492948533758108848296747187256659209124497114307760259402655717235272711125604439217813940036484224240633486660198618733260019217024405802797952535000433678397818182056953486808647049561894310731388987021318822477788374504054027590703526683068221006217457932449399053035117267327299215757396949325109654448345008785169556773724147015976337606880006147562928377030849286238113563741743163775049057730226328723357132064616525911394503263853567816003620836328290601856404163499914506508907181911211236677169434496005137424503997549598943041368962311601270560977269896341486982983385374626985735366682270733352640605041040978620116812600006541376296858593676590392929835560033882066070652371865423897599630536677306809016399525004679764963230793058135197907566297810281221681695738125395745864088680926905371116233600045015495341483539285827520735963421147981165447370419372641044762728115575438476865939157964684494120681964992776693060716306340290902721836639304137435569303531765648173752694117380914436316442399833762147662335365884134962280169212059098007826974427918222975201076741773099576557702369907314800374888783289636542906075758844769894600121635576493019120465084882660468165345341036836096627371386810641089347723999139390816009969074095116220840071206575506924837592001994490039063092954861034336070821982527301301874419522990978542562335085049078517505067797073174249621297652331601607952223930012946529148190804668608994992233619921900896646004222758454270573130460361882014736955463944322449253107696816136030725537143443160920849869610011893340188244983721453714876099900667907832402279636023750468242214154494867476173294664659905830596137034788568157283598361860393167545331441157892616847490930045901082323721076698535037596301955006901770939064436488106541032103368902904600717608410899797595206525886578512389187481569677565614088720772794143046658552185269084201256794569690441795353531091870027232124968875568067370536905646932492593425905458661827257084778696514958643862636822119274213958469147837094474068514215537898513226112559957763786387089631556664823632492351186840854725251619781013261028648467955826262217450309878042481116662221971811299788739933050267205672024761549540833297043382524341692112367027639967222822018300140597611768341569501627687183410180328082384874282874738109673518784694805154597917784875568277403215365406615793273769794285634073115794314092162183671935031081215875168582175061120651193836900217251288960700666580374819101506321294958132608928135302690823259917928881868483955396302968899347262457737353587108549056591793926510546119881141646423470900497391691701354758689923222458058891428402169321547414269537219845560686451091841466524093107916606581255343857463193100380987926103217576790982782785024298824097080663631908314065436515243729169589972646168123107782425196567021003286402122969679508131630584743894887245651167444789545731904872737412481331889766556743097447650310901546805247329730240360157275490067867595396507986648718194404521765783767779905380535943107782532800214718041330794332486506006668499720582943021190038918902402708729094812839857595362930847009427772384944167388973232103525905044268911842758160869805615347716629383369824965087539773228914320623753766796967767716458241110457011934971186132233500121186849692773907424665046668003659488418834401020657818973783108375886691729751368893646353800986458832656776511212280210222298328246266148247149752120945484975533542620000496339014835850825504066716067483476257174372047439355279304188122903126637782209065114915437391564803249352207104032477862703858989061375361281119719237685386969139140498455158741354036276233894870845192239656446820960075112670245412431274659909115023609447784950066577666444114402932408024350619665810441598852276727955198500564063828008046194556486914469671807340930487630052464119709851304797499402805265772352422594371626650983040801033807219637708340840596842883017793918357537617128468542946707840449468991394717437355136160828736171892470052680580914635422361301831561199860310330905874094487914035653497355116008668263538570641348430622797193333143956228663688023729162339204319523089907425339331325717587939614242043706586162091664812235736620432971390082477950935501920087460110678305370891929277785605543256720347421547295466326304985105805083665908571428504718580661556206029475512553062671300908266162628183605029772638691249520108823868832257753838529142639454466260414867753496918295202371435467297990610809319465390154867113823563254022776143338227381615092142919132823188746716253730294305496685735872394153134300535304090293692352473832580920651571229041079494017038385097261857739942428236292326130553726818189094411947453578159491830045684945364210244320451518532864984295196991950821776471219948435369616470297822504994841975842454094443834938795820401716486349070469787663204523283845338750661946213005718739750755749032001309744031661248624310922358049479028072638791689622034618253621781892563317367350419362676648144517705021967749872019362253845766468213208990785055287271232395694548072678586798514542747717723945453523058380822917177009270851447688481089882441839855442009901503981459417789015865775904647255486674958369591914956084054063201851525039138981958620750865342738958960212200598913906956108654435322325544433102697811716788749374644997982187593333141406094037126723619981574612788448687555007562946785526558863297686612262462086356411376763094927370898072206695540532214947249109407014895273750229198677809820367195239612941020049345163447281556139616226537589767229409802794674412203265518044161728934216910958283916749664050479446253051758113538184075304895819363192929307196182724624773188378065093185695257661415794225520833115279568991850419470880708522718701025293116364248436545011513063330963249057235930873486136978352934612730142328805218376764029311478322311503532131391379739030146985872534961396135811224412087386136328056457046812593478122896506112039600359235708670978379912035883005397050852848854584841973579649204815439278929496208173983598205709378859353317765489806708283583876428290761244639799037219411712037284308378559151836868264050947262796511482132445468518552830072311367629140743918127969785168896826876365155908612294148748780994482637224476286336962353932563923354646016540584084841505901333127888307497960802359172848967093899745593284343287750917541725762579503063736680024631171432171913649768761180995822328775836807546559873430726368704042592947501179608523338347247223974690119164674261451859363668584122770944389543155770851082565440515447088146000805526027116216702807603046624193086742382148179125332703704491392133619690999829114685967267925250534170045017736439658660065833389924954521580288831587728603405126196263918325491943485036498343272011604791048825259137338029133190473913982190087219365528129275538727127840306481309061218091059392083790590994248606757686989083439948278424023409444843281415863079095744964002454612758267665343337442371515105372279500599714620257285677143124504400359541226603147457201470080784952620654382529229903374391638300674489438230031134463267630600974527675205723933895015099468288753238345588633579752577929782631788561712176095706136310676984840568084802901278745135917449023130634849028314907925714695801746555416726041674688844396519434746206999108106001379555698636974107511062636402510686443702444113664031083927001909302638154937410737448465634656606362261516706194927978751501666333234027832711332659534312925540647909431212981062260569601000834501629863743334992992476372151406199712370378917376620284918861589735086119374086955662659295184057565189881962013354544862791410400768683082102648916943539929358842166573537905573600498559156791649671003783342886824986636512927036041295179232016781753955165298336643578325231057380172037022700907111170177231941901913572452243143740875513764340819171940111949397867492701376224002877656369971860890056915655179336932535722873182124025098167900794355677109281806359854706248400173672065005537547717440753389080410147057945773744039084783119842738889937754798923497079760961348597849454752996379623878898524654419396020670655534270939287854838182182404521461314077000557781773712119034894880265998199194115481207541667706769312884068554464395267963908685904203177017639837427602847548066897991847086508986553276965926956644396610010433454686900374064664024609145049641092076234826881735389637854867893790046628798209084256386106682521287828687943575165526126592583088497801327241963724413752480227065619346791556167749900053128413885705215588524154154371159988868770899659459832052250352797306200779790560487779142496592038138892403517067301632172707810158761949497954882370742465071948567620896697996824215462181795107071343420681963394344383170492408991291792811280344806704390789330743264408479002490115575830672039240606444825451561998140302537843449293942986484591241081570310823374586993656265030952007198355798853681654240685185473114224098358866590104630690186932552411070740905105277760383201685821064904921752545994665402979140109159908322097508408672365572261467740632551979034381864675956062742247047173433471545208035399197370402169897813382155032719280201283013742666769297044060336532311037085104230979443488636067659454281647189883738683548424834171803137153401093207604317094914200796547055136541865707805920115455096860522058199844600182105026749230393024779271368848906225432611388628675218414900659577261479273660894486700141315830515805635363683045728380337184469602404333348352838341595933587779041109362367530989719865429068433603130774219074413104426209532511557546695091651544034751872132024182340631144406402509652414616927324526126947506790751472580812124507635666686866465904333452291464772673198079138611994188935513818241607090643368975845871627172261986277343106237831164294178786357717192965733217270032903432050259528744432373689916769417275427901855532826892081117978592535148047299688204430151978785416702771511280541847594354683185895182994464152731976934975476713030064533756838708100113918419131308652598768044952018117189146474111164857318364032510069446965829729799261877251690153886727224346416392338985508172834534420123290620544189307927625106093886449049875086739022233622353863562182821378920289829653310279229221341731243603403254801689725683733168518164069073818310692662585998195233947946915025922958856129102234670693033168163750174677983725680209714174647291363139811247872709121312570155159477039028097559202030039420433350136521340110627635771529315401222108021128006278665330086951999811311605472746850650964879755520059481807756020666474791274229544773638946561271358196961813898294157534338954709129427954145799391215882538055432589833684270692451497485973044616073210846733799396095468555060873845837788605854536593673355078396014061276719335316198209595715443259848117542919735462649516406444121203681599358616853825614400471745641185578153349158808430663129190333094505008783696280142394066242031088067140188969882091106994443719650625684859199599631098828164833307166897677993342046426129915946042560672655577354870113976032698026349479724420173212110980617626066940117949686789508222954124110906742346331601089363414781910731815001621660690376767683555638845778873300214219797892362539892347797423308077819309082096033045851849318606183456458518005728625901668265998562896147535585404681053140629985231577719445025398882214260291380983525946376958778709298772984383545556872092389343967351397129312432219440003559217478298738811803374131803331938649350846790205450489726686591364315488857974589019784948681479560039852750107943850238309550092687166267866088831013207686193198659965480347813092809390211910229407094081594778122939224671660032603364827482284933061502089950548338933599834549292781404915581405819166760035546009339966634516766109900447520725153833494908802206953241622341692488383222882737749172552135082224837760382140518954683247601793594820905529471670232206166546607491890644585305480781211432907901261721655605750899940423662319713235910679200881683456791702528155283967379880156490123926750319299158224649506768035371403059084891095452875782816880038379205283215989582912508402659715384662715569834397832360350801134394581866651124479145252248319114266485141640645132561394404278283505583495329076499961652962509693606446474755872041812634701606172163585419106220938153733228029940051754133522089558626222885355855333077918379291793418922488244493752522955342878827538279678168772077757630678547776998396922577428087797771332416373904773892642897577703720978138336348968959768615744733605629391695699514923988893947181176000152755439914467158524447838440313318934218616438825922898412098125497963470777468391557253348468027493639426204570505393476340308819477888408721569028490171316472992305186731165795013186250916310858950039565952688562811044351123584608966286738932487121266324853801160074421263819755542900625827017705670800534113424803193624442935328884616405079642141028773740057307818425838230552418811792155210487665554024271668129197609037831645174080802150098640810682264693667223581645204895375117165694429433074300169121667408689403886166244107862677084521570564873406919796549220675926477267802736580887630661210649311290027081410613833391874121800545391846080134246330409453709003059169561660324593787868672220927540433287642328611907475512716416690157641124388447408005437099556712754545561310722982119135692233393775510033320800274553125065745509999454781021909889791094009136114405286105100319858945204473304114560432583045931998896181259999883876709267939515632903869044495357734872133366142946558874552001996413969846303298732874550030193017206246459325349545144077699342811461027689676468337936582510702161569702554377801825578082989920389622404703125689373312953854014817805250757403578331718100253916813740975963577031715957646752705008252584745403295601982733576857211095310372600509778160736869211476300991561846279418089887067236139565425060577593392655614225432285980768011460110266635760758252755249763302347954660172943879401780855515667490666868677314549183164189638302781509545287253249209916585993827876088394637781580161163994691704802587382094440884902957947030180403520743384986538175173559838444820185869652029286439154541321719016738959107371881384914788725560905434871130317661245692619957275293367816138808964361223525081410413583075563377447507597999376427441096882282254473110689076985003718434791286127085882408593715264889632806467012279552230329078031697136326001227365582934785225726082286156948081916115197552662686110057453815384477130366329087247455966580444856870451097645407313236731478376812520329517981724116051701836461173195547708571032208443051992677085990431583029501801538325033607247151393868941542948877660419746018325356387876234932876661315223440140577309486258154049342394842188432064932993826927338920543396412069333156327497834792306171380164994137610527064554027438427576612735227308010367621177227247590210396857516741210546137254880405374836496278925144739451410536341111418119289005798814107140315901221955205689266148480487037126897544307054188639686077478288144377700967303571188915423078169462312941795120591288255381997140024781694896558821828505844432819254682586318812632035496568823968266515059333819253819319130995418748294159581751492464841849693095922941889308336163096570569457889914558416152570767915589264023937989151210249270896936956342403620619022357955404832484668613092929692423908749807281129409695289362514446682332904493563012940323362547073170037470006571276161394044488276651039565924662143338682284197003542678242576581583061171597905536551845011019072170255101937119967911825525371895631165202930309962551714241774396516658520030717515837338743568991151363832677048359698960140911244295328616630095943056641796022899989928277707726937572296824948647849359176094956020896822616195319422314045660023355002408886659941131972242073436821392260177913876498593873868178587096971150876095731601178441758976533614087502574761308178768443952275001150749650931632701862960335421488768245743458411285572953316742046570991849320452859606169891139180977401280942601766418040232022813246533977351641014844979228215772457561896309082883655944769881322193393950608782451544147127035195839211002004253849661546203089412495232109730966588853143522008176983080285453825669298710694165752803632450295441444948348356391435629494367694351941290362856625169961365740733067154116149441517316380774518031624923026707780410703167680694272008558330900275528281305117981224414776909944363537139362656156627139302044994307029418394721434903575349113134436407227650926332099887593476042854570222109147824815861096087437927023258745639448000083830785506763899266874509419897877516300378633484606569618762804671702492683488506804215625424464069393213685239875234278307158874137414752891287815725121416950116516023681695852682333749678119409548048758930026848873720212693506436032667769308318705848682444404982773995722450499243390672399081942709226973050065362443268240420182131914860787461016752001613072316328565674916518806604055163343551231600342963043529935479148955906743285227264046577239925788759292629874906728129826339495608389822442771691927540179907014800270062785172539911879118894231868715067509682093102307674205908568391840022180224454512711284650523381647642936506729097353333604930696899798856044122480590468843520806464081702603062702772844023549035443362308831242591739690870320374367206381829556532731973609193054362790916360065137658487237770346680764892751632823288174353700209156703075240164208580874745355215996175295703726395837303028787587378229238619528754338582243195623077667835975620789254189040877543263007351474209001204691574513075181196691602155133082794757442532134031072627791948529164868077918262969497578603029843800638378508413078192880816284178562350227153557331530061380171750452931777041423082197868472265128763733399851374650785077807023114067917764347403728303861342063344220178107445656786690409989736016434598832478900224452986840793811305922663007176643336973175840105565184905224896781691729667935642472866846914838702905733797259660796909595049700789349779405430973080702714705437810252204751382601936832056815502666985688511750733085783294690972150697207270396246621084879718968981989172315350894328821073347656852341613998323708283631880457672321307989330243620313469929709183430511457871790246488120326627878538283100403060543277277757382575487616449976661935384086585568830243970829529062777014880043892559453448221610999201392031214353833978089381746498284316512600171651387673855555994852436790746660252394481599611534784734580855492466833275363976900181573095757154368105972021148250452770181370280513740987538824146853736672473382815504095665575112222994973453703935753096490506654125442722705334737318702574862949190019003796804041933845830784310642734977343034408399032382669265942203883560825397560556791587750408387065537629257307623643852725255211328157210942277592460383950605205504550063763073455790879860951326908463464637814873629999488242437626049792715199137480330647634220633122852940454031140758144641867612449468334066741203769649020806284763632499849213671681568891291731859219918854777569556120077080442489489421360523769964384965967282441930291799880963456552023295151966779869161353498638686550031350344897503549716844209853164280737047334081068306116506238128633879646834848744826395246821002343758536924648404194736473747249902348899112233549413831167188062018784166542135775240111596539085217656497706295399389409183187260413349711385214912476830164203952996613746139852208705992065680651724597815354091410281089080434193218076715585844100952639487523565565197907829942113258957271243335494255328791294331723650923517493313539480611999807981618565783898560551503903696757680499381039593920453357711631917619928243558291724717293454272263267300748362052578733885227699428479409115290431617330480588175875550523462779365287977780857722037786022217714609021557643216696082424226347373443032486479307087215750982139857006008620135134082114555495013969727143889875064211349698699249473434129814054819484543357823956812696268335203080304399555527730733393779873646597735823790622199531953890059243176397159189984177134986440964114989967516780752092949686066743953553612214233132760129150181168723207574835969397759736969709861543444615792325980963191107047989425037351378216304247156656438856384414710832369032252296898168142800064936196885010258088094137913486417232513142127539802619672458437084253560505221703905799563464568222999101659539067045175510185069997630622015804307455536356385878943979443742979979050314570161336181446070793902126847972643453475939623387324749614841078887853782292138506955909221909535153518154285073189271499325065066694503298271933129162199603366554289647825292656097914968119653215890392393225305544923486025358296058095141702776586722735495443617995397932134820209572123164462453812413543240886761772122634703078895676435345672961942193336645792320070513339683324771852346679538531225650069046169604347261973064551196504347852574942175970753628617404433539523971392835289520922052145195614058927709450368110072616086297481285124580922152284082609042652439519264461554003329385831474749534039607026367908581304389591321407435734831113932683658718808243456253493878402621144903793650997012680034343967838854561318115353257498014560245254473656736913270021209091999036570428499999216877831265320059209287527949506769260076052207287442987082275581873264088320164992686826697625504695097410801223267666934127609817540946985976252751514725398871911139550178665690825846367851883902410976406802808433708129037202842767632329811695345313178386683865333540210731964100833035880298363131378941522791045812339983962716335297527804766502861148576785576532384575119379339999953308181463039454060050863399615873867379758392671527388913432792978316500427207863594272353426386424898358175814540289055752953284523183814543469202969229814123578745903869128630373447717999160971146081763267585803005133631748619209989029677374344513597687020406169307117851930994415008629276431567155045879871776799844354271745615694142024252559730674341630189185895242487399216327196549289532730661935840954138542989174568480989321651528072793859848939631199878072205628092711350421178145505483129357869249624182102478661148481181130478320086896185461689892009670636838106690174567286514109862292747363731533380983803978307712232538167549090404391697586279555470981304048120688016155978261899970931090810139879783341599667447210958190512066428686704460810737085935974884050279712504378208435281418024930502962166952119851879351063178611950819789258269161554679036756801231494062862904147363361306602345852112702900627334204811449807837130414507654589630069328731083639731722349605302982689711834706458092660401378743346866417053025818322689944461780816239816354249699964129619132342396297307258903605737565028316543701073057450198707684859901680494605629298787555654672386834006327700498154494954966391734266373836885439735583886880231722156133100247140593100180467537221704227281601023363419469795936962322156747355854661575023876438020719618651661145405482491367806850781797740195262909401751096839165302797330502954211336472354034890344071408731440761783250686752573833152335448109396519507008156967062624286536283917745485670357398406349560061941070143137850007120004261183780882434071007907276213819440716434865630584605251064465075541400513743624364815372861909196580047662657956345137267994302313540256751178013783060732391559215817331506393966000000369464439998696068036316229976832422176444554925137664968217208667880748257431372921033453969375261429028282349631975560816041386521266786473041802497695768679360768358663675495994889468677787541463196233001894700823922020620812521748329697688413762203612570784896017782334148198539034323743181529765493648339319672945387557732512422670313822929073533233815240846836058371623817583202543834646537084134148452282748870106313038714520870853160853470399700010903036978004286808741474923550341347457879110685135973078662085670992062317972944454752828262175800620540629662285065802553662488470834984513524365063978272869406320131346813119641589964675657026429065487088765003001187367949044015583716874204191093856332487760178981376311498009684248151742236170574449431085098041559518505207926880784544670768353978783712282714102788687749210940306837570132961129794732862930800188525590477065271114411341880899451806483025263980172974340206885306656174400188480036621774841624779419280510234638811043525872140858943373880449728357436550003604782298856604045759802721176736311677894767900080383136245645452213744308750062587420294256587141204574058357128832773006375354682397588305922039078892172590158281376264460637355143988388270880346361553634496894687523100622780902647525050769412762326766361714239752561212830470167327447514783142282998490671441307720259355002452179695389338221297831918216054747538854372990318131398232713010520781670760621434655643649612510527932434424335197750377813966985638433244244483184413618859584488640147644998345239506576840458872412086955524905947915348424911635281421887181219703714292435383486553351365653175141839061248619022598589312447017664053961117578641393726853522669970383060807889822466014218162709454135474721521224964525844858439156539899075812121752093949608671460413695617665908391192000057639995746897995568546702995165682841975509968684573174943967393196836097962410056993973326751947912650049087542368597147376074775929582097188555739866937713871155252854530594137342591196351234403064645141689000819883272223827809485959940874652455610670233102999925488955598564158449076543707578855232692061721509622433151217507409352701335183975641938291127361931145774417220638357060453050597618866521457411600952399535884795430677092420834046445157044284769299585485441938237091622482811234828681304451585878598551238002743063444231418992059769814053511899740209685106060612650351394951297440728126207109956010914555663924433785200383738586327660505383401895198211840831681818704918345989679566402839588299493391255845514295042010909957676255484566861222616769229715196919392147558416499508807478004973609387249948304923129899162861883340257990967524629339012936234872358061510426509751784351805365975277386508347688765996619530295470549816264371785776108163715237386952890241277412250037329133895188004227262787298201977122622760864444808755122374022125542135541623009601294248204955768947490019422400263132352506673158143584085277214244040416360201940699608620304531834481908154946966878878088866657206977089047264540448831032619971599798862744040654764141147055403031001689826531198369870445533663768101917574083291559559228011814090491612035310663494492664524234804185054166819747889625197024247042862014075600693642411446332723815755086157832221421062637567735698029822638721445334011448909613876003825981156053876358533157132310012476321844926289390820290423521719108531512162627483890465509753298023024856308687035857270978452086248394859743894490958149825512941407559686901949059896048169903339456328084444153082916801101670892578697134747975555111012535857524298355131703856421501772980237129650807522958421882359861734325754795715014144194091637003449061035088748519939103766040647757216424921792377759305707360641346987482935170014535061492241565025745215055021873398610628156769113972563225062569160001241270917396200042308327668733223007690713762441996193172272720364357000337115746228680113014853383315300012919455327947893685831850140432311868717177596942619253776382054760174488214620363358832730208075031205461310795742613558760426691609087389089040628508312379015162522368594053023784799501966022735396660375346833727639704958382256903590035617489474615639840741517483201146421564247130352524708201016890724269388406661751316230021848597492701521815764983111865909106491334970609158006871151823389115342279406372623293011039272282125173807599331204144291513288434122792218561549517840607054405504400800969082807010545804152599537176871466510018750261411890039719848701779257370179253973609263138728981357072262425160843401795788912564483654940212261816733521908715827245350435026881490159966513132521429790143891901847388657327229961487613336388484534571926383661517559157923251491052810348472326518789855124256146275237457267768851824102247157020312965248521842563652106660795711988609006548586179708487733935662715537705682842052517855161825766653869838087848997706837950341255910214812249502378747119648377137205144448638952970161984984910322968814953382566600677835595408017737639328903691724409535863806040357859862579776441822017038773587774426070347714435626447602693372714945298004248550415797116865665583840124850324759614261649618613771423192088237266111690890199160878705532478851823015682079059899237146500519601541049828512803300047431664825726254667189882531128111818791595594571118321356113970854812972438985165278006615613571570428676103885603234121696391139127694895013544951039295855198190164705074282183670990528806222015044654678349072331491620136028007475688684136353555975509171152976126094463097613412636955862858398090697630122716411941838826190012883045585015400307049414600209472716714015009317346391237949908506979740047232967662232399982803702445925458835331566485233460829366094197127529545683132480098553500760954134405257303044146461998299395213737270648696445630632177726859042163435982100404947083367745503067641149834635661654618495702125691261409745057310450392808353954536676906266962965134280279514402519457532133366427054034464196171166304982275079590324956113596927198313736904195283186589089553101918030170841416849599389174875282070224071180135426114944613722412695998811810495881371032954429029601485836257725820098720785763652100526430293391152545146149821137326991476837440284207150469420297103906028860930927538578394620441520986236715861905480462572740208451904118157890448619378178995326904485481363950326953881424938285819433130712850810003649892650121323661167845958096225541770295606563793858026168709879437233762220150392239475961621890357694564641975576155020614538057071106530882178137535493264435795059086390201569167231694639065743761368994498741405631547033183649700495057742636594457918140613851808346319172356163412425326893989125617041923758208756226689946706618703419603264711255334045034634232860623437248912845868753159189850053885075961334194529831969433018617572753347824628396358820484744309247674348961793853739810430925756993545460796147512185829643190684856971074192988129364839444044948957420997978028428345677682911653250544169354974355479037346588103632725528553508345755666400128701057460507251914324344736693667840705246202586484266239493692467297590679547092684240291927163603659403831685959435957850759645494724957649500943972557448998159343369538728904117402121511979537376308774255787539965975060753094069295700214848825019416469675962807862712989066816450694285609115501669210845988129792573555506140321621478213539722461862818769404207315840875586600949316747085663100240369251435777400187056329248712703690408954211504864154245774498856097653408114758671909347472896468539569467537231719931991483796896886099180838676273547701467749814483328007461019910624281551055548739638816574024768484342495319527252769071119076116823067445111019734069548027746040550496681310569321895247946075708660304512585732551949993190568494527748727746247756996967161015827798869516865228055960703977062235801658738612154448248908056942742958578975760226527438165002464222190446916142309059005697815884951335669795090613075769960928709726607054747891805998566615478316526073333326955602239538666296951250806290209076612431923872397281250771152086163693507830626809921185988596094052582010301107413282895765500244821173420039175189052691758834108061602007966799511750268956075373885481597689198552894518671657915798300062465539460466391685290653938958158646175204850422349956198533165501248611223689742650903402361165738458822190628047174728939373302267961696054699358443823979503614656447135961860445289068033762065196691041061299265360929841468813424808089429448696005122379879207410288551487552609503669425909210514495688878185205256498685754892216113969896143710601278175762279248659922133839365860283897387870078057519821123712092826456657650355900414812828423914212441687563990754670785232137415942531230708583598093244746431185705519040391610524782646510641158300414507052319722403072249660109960732685986287456876532599269274975053676070003721306757266695757160909714100826804445505659540458606894496628098103430288722472521434110562984529105214403987629781952892398078408692027215897911052169205047772271817787771325000787144138370673427372823830166209412917326453902894448810946079955828978831452338553993661951943208999484789025178011108551370510953155388314960027654676117376818455662573464980878536195238530457417505878999296230643160597813268667933311604087544691940337466536494006303928788378166634216853863072066924070501166425258853556716253128285498500663475311045381385248784949651234385628500945223396876165225755233474654197777049261622237968637068372754387148841433765418881559870284172757804735151498313471455754859620600729098450226776226795132472356927761437701357360997893815157352199384543477518104638536628813956461950121390486898200025221896282871489005035870474220283333628491716909435807680946151423754141046382020432442453284143620025842954691734128156950487362205931768220529087681358874293629863666589592447773092032328164210169116420801695928849697896688062397636808735359578932457790652513229920417024895009446908306617398676940745309894762797741019093949573260501681391789667191743208963038593777795991451665278197274922631453988486838743214597039743988704495612994447685099395289721386307938478662809340015869507198709822352139615450642340966195066991642623549270730619285143732123355567815460478849539741093726612649583360311679196618699667715588110430545349843064886218644612813643619609684673694557940031792056062793136454522731033343656300582726610570790752647942235474451257802091678757899500928856043481334504077238584654804679195912295304364026935257232361442601837572709205161182936947781403218502326714155468055470871857575147996105319772209573265376413626578309512197501405026033778124092585337592529921411280650237264867123458197752963905318236862308063002656839221712482754981067245109468931887512051246448250381394942939073486913686467747946328605696369721083479671071018015170552861136351988036024875422135856443378096262434347026444795730136164414944104608525219503492304436583883203457175048650273446985527359917317854025734523235008794551074778727687170779560049263223661327937720494106677548746254234963479187371639085642413756005193561685730481779199986106522217187191655470402371935823830881864422582136985296954017905219500218087655029386492261528978416779008794253634984862942832061341051309464220763677621976779167101943256472058554739160732130564241366608106907374749762242782172398682892819451438886954591841995840673012918349353496369001424037092066050011722834569164542171833491092127173457549182125667455239664464203499553525228335431920555672524301009987817769982612350981920813117275517273143551640633256613243968340559271138003519705616975473770760094202494418468392183640705902393664341307026423596065120162614397188960986982517633950832823821841318354021184109988333500756291393729011351358030193231928518289045100928536417280529486008998560276031824756352202847227240777145513585945014678538259032532707114304031217873656639709758551441937958304187332728583583018434979630490140796861809462277958889594694181088522745259167644583221321391788752269159810547246119118657037546856789091933042506090088891617392291450592140773735320678267373197025098259225290549540973491814773959726043551824379961673370753051651403640162916482532918009769682421939162774000097291427585942823710745893977528610886329219541340541518953528805259568637267129493146399183656295817500092081452697173165960708390417075470631655894832950871245364299871115453915048411817991290839234403513990542468276761107468891549642785317246491699386140910649221402745580597613253712293793063515043474393138404680437917466801653062334964597095786590087315978842829642400777988407770698133294677902939372666446938188270741026527929616543105338335074332140121629749959357127884124006538165227413214095682611647394091769466621637261582225464699961312009805792422624266269491297052294876706282880552800862948480821194413250128516666659882669147992290408965933393781956894061667319258168345842059029931259129080124694735739513031987139319658018306936905796791803146643360298592986112466464789671130842921050459778056727159511400489266589198579535069397962759191708053602201075576967394224414702581923993352421763442878026845492164928148586699552604339464510522082099808050919529556717301632585976955737544208659463458288303142481550332914483029038527551048752030639716165587159054432867216813932269746102563068604392893228714081849112020582478995662968650183561420078622409334222674799481076487470933077913220555812332550553430681412299079123048368630585859993034282940596860661824111509866385186517873839652604728784924345466760695000922413882895247343862976649434820927393809081277420960136514716338509703856163642680230074392773950589376411625876076427681907776769960546529508084554140909576894339761869767523182561459874591877980758759707997619209044584071236132492867331297689724464287494199488626678987826775712515742764582501564483008733705844135577332818559008033644305099758276933149129832534749490036283670669376259279255709169113010240397733332368822527970835932242256912897254893526363548491432379285097170336669682958708834247258558165175290846393948760206139420111893916831382603431014102759954051238123065425392283655525951026576843071643458931960720343791961368436430904737242016999164317943967398311104228459823005945032381944855712590417339352268249951398148268843252758727914939168311072529398790734891375700632997989129613437951014653427237057967167649379110793547518045900636326178308039570086183451688719126695120668286108764516890638023948199632400805190559385096605407554904140698656446743277601877092422869815004703445027384813191899618300466794687358407841699941031081719981410053709390038308825678601541423711121393120432373846102876101916873526370558058897571379121679224847411883553678022312884504643840067891461704158354113168927000247561119548242052019236207926563736659925710487832042980203961820805107463313204534335008420634138425155914434886636911724777957697652950867166029850002640199661562237592082131386514592735434880686639048983467267596535907028381305178081838589722086716416324463620173390964871924616187619436295766911874928712427706046406492424959951728476280879105487959793904117225072578884565109475849991790229658224635203225603326892934094548036050899645337727779530352382417522072699624022565374614297717566409354478857627757786780183846095929851797463336353165803472514311147486184049320956165631466004109914956790947531980074539985144915197418536123815761016765771149000765378165364802943662915246189409115777909536762684091133156430714339839863248858008763559562312043699495945851698472555821949772849018079490746765791091950394147339802381823298930752067634599244307417539197113379858319086896301796255842468150323792306831721935869922081983661930394141172190505355328138433689864312928796873931852382317094530466332058649894438490059317690817958414137920053704217203451642399834109425570543206700873858944948090703879276456993432047875604776253151839817420659663936498920897003245386996561888091420087441388630973038297141309637933195297242238365001861254203508882422311434070071661218735178039799931290093195010427625968256353028213991359835314615521120681081245371332971761187192728767547895082930473248995197213167468233088096331620070150916082421755576541633615550838079105678605238244207849334378086195402790873340541986414581970112276298756450782928411676806092249276318596320991438418814785313315023006202029276336758552029501066339995611073598900421743200356318810421766360728266807813470103123573376059614168353363683421269031353868270671912648877064575120846336782224977817009958669205624948592033224378161852361029914580904814896449671772046945673821218677231429585505011461781566989968211260531148096190098154803619898141906621041503042503636919843839212315935029564683120013354817625038928410404546722246363815636477885667677502180949954657597997103322610126950575679530951367355370215482286732697533425591691599625744808870537679275732123396702604344027539677323847938660536410887493203907586556665280727122042152453450707957815424967123018348677617157716250974603757668485311802821024639324776418008176575540769870001512708889666562252232237534630170949388937592324978653594825748110850091623453486538735512907779669054603370278307950105068351772398691513699182134091440567869616946756857790134146668682773593210806797761066368518488515313683597227681557368184347233789066552108551362370395651956283752387955142967574749704936399852054811754587706990032781577649754333319432991809126994677976052279952563226797310965537013448929419829419908126945668596862857209146558659976295898099040104503757934067227670578473692367902312808362693622540989191749431661031543773163799904599522408577729659368897249776387214664370387854512732843451114695762786133455616191883217005879641218127136113104204397981142800901093220616810432965401904545555583088626645280180317606949939977956444167635190806166020770124204028163151655001246234240532576682485469268609477016892456092684414256053230467595959364801598283685351363352615289866248981899091000392658035649024070547787474286406522484171077236276566986742408499470661001912984088742918167971373205087792579092399299193386186603085451738932214560199075008468880243089270287307583588703588018757924320073437315513538902596786760710989014441835835638840606106372155225238680511293047188187988726797018630496148882713543370174208000968124501994113761964636538916802290071371295525666249680812636302359989997406526518250694752121078280921565956384536670709587766543046533055493669970929530554412733667360522511272766148870518561286366432895476705940232887331266288665592247963205527247628697510142559565143023481634432356669772691220849560623204808440948971653197856451978524911714747306646959092817838933676435052244277207035232071437997637269865210556974422315303550556075126205175050630918648226377870576821394974666219547138770054987941889482101452398713211928798860493198454160043998747706527439465889819886722649855507774567773832370046683338430075378037432014338323366601836509514944803731081781817190591173946793675199429754590480088414560490762487520398788969301103235461716682051231257708784846326686764945310408053770993943305963850979170674343995118065999482352318846702853105170215829094086406034156653071501233607673095530095474487931755253437623538860965777020826751303374182049826084599904655576678931653498814773894656941619309382208032373017462445541377732228454038841239108410810551177806886752836067246799286171528366833104876260349404547710499381596104100371442378101575301387811393265664792633552126899037340963408950136566032658407386049757767085555876694960599259977433208248649934059398008913071403940895304454139813375472627446635365255699042059679874318588603314583091485809695978488555264671181737668901847759127553215443507510918211867999357057826176408056700508366835267484410529195520429072206570277848958068338275336799652584983129360364147740176081850371154566379740383652200996698770155724422555856292307040008871557570794656821338639353332228899906192510446687438511986356963368873921875090157115206182457636767611732123586499552300912184459179022776498362508931255940573369195572399001737203612666793255257215451320893256031320589036579309829275280790748850672950368823394332977066445199706056838060998211927105173583939370340739100884019671804530328091740220177367336659801628290248504977297621709037544958200100474248761258207530806109942254702252080591527486420481287657516127837097879317437228543173836399242888081750369861171776387752225076985876708025262055899450194201393640561755625609572325206092122503061955839626007035446422031427306813008050787968630410712306803659846097929600122901110048327254206393891021979508199896055951939063003828843498908666049502345934056889950626999038765078862074121448181691060726860384043697407610232265327511159461015387798592962652496021131738779319163200762538681866734084724386638179714067944514112434149813554713965283744565843035494617008800465287300625425456761117009615139739714884703440333189016096896444668058811964653454276378145093117958313610623121546794884049990692417215375254698108958131292352486592581080413796155281535021356310591640170376141637936345552203736806783699476823734005308305969308450868421380093659999863831096111035273118112726310026837787203916512396397789411330168973288043186391811579004913321389950590301080800360683037750582573744230650358902412385659987041123817884723495375003218036479660576785596990958269010790110057620766089228770728419188382857988989728889043826671088411610267222569952724940276447405257055445420220048438073234150229873198774448697331234085873209184926628150942745313520850026338829214808793638297861994360169613071854470593291366784573771677028912647518560357149811193446848052433971779536930398989913179230586466482456707186130711001775687613470717653919776222791218498938759677650492729905903323889339801387393687802374561645351381287094821694928772622294136321388082125723902775393649272649928568004353403566185336929232284775778411207655670559116311154817656618917475362184046125045947159008317064131412810715176045491582032917373747242284648515304646634584994936614037030562830707269956209111690818597794567544183430903447768339636231604024255581181491569704125870662267794162525109352510925373511277555699144927446564155906791661497556436039068833664147279036537280328094022492633134468709796207113205810285088310115414561387486727868231954349178034359828337325854601080748498471794012457898516636789333183312454848347656329577319710861809467820479259579903462433459476459503635137486226491096516955782947619032389526378592331030540058348378881970304344198194827075996149989871730496056657573428665932245769112933055344417378081971144109754477787267177802736725386510025873503708140554934863413088476371287404621169929271521371528445610201557031662925296824191864930682778470108335305734373327475040333691068133991171360208018432457776268586169380598029218115119918092651262776349544353316265153722728439453547450326368481627589894362833817292908401004106341013887733323527246080101901959724453550238886110305377791503125837043649315741979729286654630483585100364394970415398819035637084153290964714238199795310937127840764831307781730478880260508844656480249271594884094935893620062898496122159717743252428635795783762936256638068770193764333912716872398926013058333877153895973649656997367257062475429992337492488393423536898730410737621231352942218363149638022320443119971391783631042890426288784531950110052089350773121288397522858549200729047732397553513033497040365442481402631556007495123054091359906004667753182314681649388707487754016310102187021927373382646371203767614030446563346597300959696151057276334712840970479344996915628549487922400215788241903800707994927537540925234551067351444356118711005234644314825091620406826675408517133933403602723314197354021597136649195562444884342630467930610059936653335599708338831422797591898166403432620670681421542830163960854920090928003237271723962686823162594060987735705449894192513470807984377933809524346159371753467546523428915142553849137610371759216573972201825429158388070167295206453987544562193638532403366106944232530133580908792938770764828563972424373362796326200957004538960175114533551516511288784221517136767878412544133867307746891108480016657998437775594553712619361935806946803183396817424089234576620943140726604883763823263872943964321246662427196942868833735036194227675017434533213519298356511640870674780476653751929434113016983551554866392740585947354884921850260809317847087222179585368222683561575242089033219783684872313299612060770458026228184809715923473318085244680151699952622556182827555963328031218690996096498269308534205768035559940952285517196803794740927578207809699606083802795478298734965461300095676024703838656878317999243600356030125074376722446420474044500948533953514770872322388100945109354811028988845467960050202815046369713821005223907062477094662729913955262160607377556323361624170551918469955219981030301972021876397520928890001800496316669099960103101405957151575976757820718738327718607651417689852501478900946451494797816024164179615212894676363040711858418355377710006609147900497476072724195014095678341412201499265244752608898583970274342928578265756171826574363186094707357786069761671346895097163124959933590866816823966178177444922567529226422866916995832863188546794819570036520367126410572780382956339424986721227980578817062597144216156272409070567742464871780052031317538712199652274078901841211323268764808968881974641035977314446481030852281870987270880865765676792610966957201260504833373025846556888755154785606276508567846576557377242859724845341660413040682959853520786008610808253062489334201520041134691007333304409425173246090917369197234633038396266244114402212588820721096409197959212922715343878769474719447631885806516745114021136848980432874881369072708561251879469203187423526084511344473096899201610221885436275300786796510786680533510872826316546237865259354427340666926019846258203070514677826536665278586092343209470082451780059540121811809660326015436308829190271985779484133596842977790395374730076868284724559369079162369985282879660633014742475073426495534218904439603924170596137417058099195296204400583059480794922851434785475383249260853062444569775019465955862943529191392703746750278890812864142710992367677253361075427952564977940202965983338646730145098705226933982208865917571095772991963140094554443581372951266445177110010071887980732472692558421994859156847647790616502369613805841524381028578546129904960591861209381304624401152975189206659719738572204143668193029584079784875371594507241745570388355984879166612519136780496980119868808076961496813350643595966980697943304576078528837955434923396066212205185332979963428956607271087188335253248623538613460461446009779831799052165525779967925492941498599103811938750086281346190227243439958343532895478270177778624844599168230473849092601179814416647376466144916358644760886927885109991092350303270935875796279279741680835502143523183613336869375476229007398042799806139301568900740584625552196223192912463302995737956008930924923884308692293966189341093385688293311684864276385315635820294584599076883982124441813746322799302881744916435413367432639426980674963551779535688729999846988743677411943576874722366993401989133814473601359979240788196155228740746366009399708605404810900524358680134622179436046818541431118319510252719990708998438315823171300661987181631365248652857107400501332468738146338042009325258531806733367440047908992110651956076589883370743767707852955887837776059832793843981628229381503914786952637247882159643008171305582782949400817036671442940491890538159292161534255108358415479072637105717611694094437757280219250385342445919286645693327046232981474031348426812960402751121479181638279203451301682657296410576738310272296902692449799061175168029773284387736158181259210687885480086984081337455324908292696063208082288275742735964192964138588326645601037665354136832786263849337406892548411507552524577751163124865451882583397299505246619749569263333172162006112022567934737364578527134796491127222608855800117345243532890679339205430459258360148303633505382157205222171141055784499051189959942373746013157349131504694674664545497371414739686199799766869274242191162630245603743018840757660838118452014268319525953876385683602193935116790462287620209697608468887942902428088815734843760947267856573244516469641732250299261654028416061248285985256078991908316990348719079103318054189759625129422269652158350358284650237542305406900674790337880566992669502128034015276537550331116286125656566661869898424387076116836487171551439414673079757956709840156940230292800423342200308065620489060096808007657408611080495593254134535670674441565460991224371925775438963885557806385196814444086459080498442525371432564531814306572718265312484590889221252006095017843231344952347079802634159008717378424495770488842874494230680349998214375125015766279468072489149106087712844780149123208339308113806725304193876409982345204379990332542628034134396415908512725775459999900604141497199217625798438631284880340519767352880119636442652351201406192079436454404530613798913428864482168543939704753816589727269065482015094407814843488734767642796504026361682400481531211517640930847158566431165675655532950167859005087132082130296907502867811541063089212746572674097496370119954150036214634281357021826721572630844887836007837755340913661497093257476985570139553207191130556263767952074692065828643282934009284656765092451559988236340108609535052798762241763467804368846401195126310662130535039045848822738259135688810299590734384279870727843923854202836341671473224266922953683504718219173101662618485443005404069402663316694189299011366600485716197963925407757323129347012225101816119121674815069092146853261639018133804156036615726148029454222238738426101604440227438892930763632423735759542216624374100042006983733165019965143750125649479849168036094554369219404341545445298890603411547368318369103314426951109965102179728100670842603789012165531198492156374451172876004112505169718823352397712913470167437400919954096488258502693610261747717446772376596118692260212226448720586810292509806568610305532460302329624889913145257375986321878523404159691093259688956320270290976211908280290619715714691133602022920646235529581029968805981928128130862337233071790557693686721551497328324512571595471389586241997050200375774687037514059869783891583656519373024250818789770711102752920277275835311175176487552268074645740704196612087792880712431883668982155987583983571511421269848837926181407654045225610152114363653235755718757305852068429490572932375865352758450914678602785050589954941514346292340775051334841811051794543535703716899644125544597663145894217409561963238952872728736142691118311001788757133564954736839855639586800166269116043020658718921412287078024538037086023548042228406804032779276126083617961023578700495037757818140948500007351377639111429491658513346745054151260388229559682470202337567010953276104118785609853206228961046259399638292959489789216718693418727698948385069952273305978325447043177093357295158454194191697814214051103975096100178914101956070470655410061999026839019535864927915021818744141992750050841505684766363118094847010017376683818405037506455378846160498330612252516707843794680710818162968199384875284187914544664411773263360872297381623590092983741696417731075196107231849061541676330365838432893585206617605220885757948833030342726826897703231491593767407812589005373424048620790884961910409965521244907161972851116053136190249428509896216355770980968671083541806403954872856577899828990292904872969534069741420326213775422258337416356643130358301737978710757088918359323300598246068834037704797162308328610344079397207212734712482395411063983260687787058358148844316039778355218991881522055049320609211177803840128855847198633113093911553728327573542106946479610312785440802502425092812780389918860785962678167718719374771881992413564700006252993437330675152972325864393418009710630673378845908198194817525708682771958908444555664880762025195138456762126437054513957796616704053862853014715185146575921826273983556558251666808461966276875928224842018161356127757258855678576878555175550640012115511318792252174616832017041851797699345976042772596997565013792392082224022279460635696554986432447851022690671241539376202327950776116300297673993047274739880528093166202250488080330577728679986681081667528808026989807550277954267715285628855747388303609793683256199091153493289667794964133801572985768010741148205233916508105517813312141984278019946733787722503836385725731551512648135647169075761009536198606700994190266452216173265999712750991330732322440652177243262327540888412000933945081852251389867660832758118201581351405640787934906968716701626103579173467033114422159876537350791004731724669139954707582046010293039613742838526391576990452783023695234742752321556525140144306297989525100366988976536108164748297798350153611026147640206715014112230261107214471293375368015606412043672144234026359810407774581318463567373831434990929158181463334690329442733519019921328538436957425423192377345408710495401159409195457459586903731153788747086603669730935297841095641184468355487919948719825853568711453866280150318953807481396634199429384439501972414335595723678210830251624759077647832859520410562021532977060174753742651645257585787837082403852376554953272901317730661852783772514177852477689592348849961138789966206915286452985530381067111397788196767308887929699261769965584130655114594442794077076198051645256124946320059660849385866800003411028059516724834565217785315778412163777728887357510147444960592753342111231334722534640255270361893002324999080404366656892463047086863349682070204866488109444643865684834479170554357856118471164894640576903547625439230615089081228974323553020145052924453670464466402618661607877136502353316226657563856558830771510447362029722648647541656999110106393565034640620099557644334515911465850544683942431163053819994617238891427140068862235644826271825992628850071053759553456937986181486098755786082276942465531714270461490946329513317625141189261554343020224049006431639230745441354081475342136825457080229526303621965475499798017409847811755988039645071851763110148032764793925987907211326179928070712320150327208367250526787319749459920823088972932380512885729055829929597287189500375512110420651007358208108211225516939588606676925859961064152265351377008235733245075933923711849863555729131800786098807770382711118586191435152983542607153272693419368154107798258180433070341073462234867058325611235910918428350015533077637295272522871484045487124487266595399466827360138537837462727134890110218142102164345799339846751754730237472170326637187690945649620213160620908834531902052291519019172704477420181932788647030264292155989029673157220215222945790377460548069811712952019917408654455257842081531399119211607417206664231534761033634311256462212112417126943965358573121199792811348325013520752253894062394654170010842131377511587110215755600946164716973821112469378565879210925201766166951809379298427371401954681287689896525463199580500126324705367184371478271996320734692403328915698226004290120682987409714474783747270811057537136469210326462724731825708277664377856283841785569933135467103589764438781739092319623995265627089279864777102129131206531108242954259323200801220299938635312467704040128408225979322025793958636489563236544384480434609294218803299880120906829261811714815380723429973478319051442712151257174438105922956448513071535332929665907124559675237944571994906739525761257202335642531666943937491507298563407532643741835575828750703593931755071257642592232915969902626870662394739054719431606620998928158361342581032930813691184517245822761957745720655639862503417590851107481969088615955787291565184206951524857296124192175069283804441205864460854462936147693795171273772655196588091243499367183550381011237455631418651879600510301025479969317602312838882029485611978355109429115640406766293779881695638665452234086997179868430885133107202320067624115132739549398144307820937634281527885032974787606440124349230314176178807742184914283021223135671023031573623210771346426846039062140502193801603542068273470654417119961965813527644351175339108473215222894786140071320188761528738350860068854950754997825397959976607684761719668134714819666329041145792364204943727274341427721169355340150780370654314301481063234702576429507189031373036001078746845166919868676308588532335059847800611334307304044754622828723395081623657494282138168312355132046041952540710731420414979661447426625935972762513725732307643164021388603880008104543144144300961451388267874759198765058756073551813060292593015910932047135484281369769516202310845679690439700494497524922693625554093345507551850757096608859767794619516601010412663689901369792664358920717515393331823133317188040838992089679578911100796030154534041315785677728757584429006422394633856791621819957857048410659099952717560254194979684566363959702214086533159376976914155620004909424820710207954223171317822780357967582017009427052573093606974015238116380743799849930405286309399749934042475233627057064526791601793558761866530812010971437519481238111313029067353928969111599805585648567054175917652643440694634094457004150394531410104342461188383764898195664145363883557814722035510891958546586371673371443823195154042013248444945988079826836416308890319115474869954019255682944187628795418696325836142584139252165289482737257004587761401486455524826910163978609035102540177967839988665733099694278675614670915305450267185510117355998246389479340300636002057360206388978037972864969448848836084852005716546832822534170935168038962843488777841804046525752968078605198301108770334919239865677153015374992650003390474659345124596489846263902898372592539863125973721982195111717120885092846879846244999664418282569936256466436573506785837656956417984853254917563530602926096246214888307403448793221480450657605856230032654001763119158094797020071279215106514955227633289786643043151549516977979831406823834773357138121457796613752938869792165140886324631876959327276564809639280401055065337703532772029397824743625015985708655054458875995833606537506812221381178047137716766326999814598531541674436003732086283997170506415696665872210743032509093701802152843708846207374296685145040191568615699800546423262694002480163885962653304407689940055826880146089883987439351006429493478024106768529231842287318200860892896550529523099890529777401644506983590115143310528944550186774535973333262824426924504494047909658769993459837924095173040734211291592447733007466060720936518878479874227465441737082335963384546335878544691529548395140393649256472198104855722896590549495939364450457267224984259196940219248824450791641727056687103381602195162601177535299075482588411691655129470185723960393364821661126500893260894862038107774521668569143060222075984237312620490579355159926176029177305865004761434010332753847427300176398534418551494420417404508259470040250190484156764659100458772493752331488105703191502148424309792403224018415411833865061536738453073685686351123897674332162912956698475601091391682771123019369817803829567473998694054388546990082102543721774960920621429342446360395186652653299588423915703803439724023088185115863358002950663213051644296559137069516836328165261186957949791131667449318970240885097608281395705378017014093633956184242058135668603264658512969644269429498997091575258940300762937301098017456254504789874344106969992368946481813751192968258392735736185650695424822990656242820685296944472518547092946646135526595586615102166785277953539550754559144794375981433386217595127057562230308604598931865442151874848807862743126553358902770084777558110338008916582365825542193577063792487967721902441387497423036872546229812373948555466356350829269583694899774262134012598331552341474637909163908928538804310292709453526416878629428573463180386722464499828885003202496901407178564528461878921632066720225769971000510199697488597307282376833406133858751464581285576265157227234860832105081548072822721594479475272907819951785185453070042198303116063409149274563508047418627846324964668244940319145031053948469226997129669068558501078199499176642691275211575913104620424267314775616668299427622164553815274745968213267044280716279942721221671798885433782850952150954685453550642984730247332306159421572053782960242823570327131784780945734992746575661955507515206153406021969841796914954500979738754249805628874107759867089195802882782953679203020733727853781154594782388476789738108040046764374407418538429133702961318788066391208506602141429247145481112778813667534665409276227013674131966805059686437574112608914083511715145169458275938791076067917442840930289943899303497030446088523878455708852987289322498500628528963741171829852596362047508362560086876906638015920388582089431123033612240381025654502087592254085201952754824488195094970915055599039424073819332144733850918195475638235706628444530576121387299050092733307155423240354107579450733415179539419741730220001637397297579215626482704687949474914525556428079410256984764418566027947935760833902026418064480492144078474081081386461151952448934480518854082369716126731235505131062949928797247292284452750314552539745672971143161287461199414666129377451670948807830053550649947753738918356100957974121473864826356173527221869055913129009642327608444629318702640652275036359611243000049839554685988899643298608167924746477038444379062711208408718831029420183621649450456966437935094819687643970746286749823410735773833969971818353293317130440313107013180250056955178452140866339791688679899155313216630831573116408578628911204312633646388662498093533975669912809684640003357594288686370531855406342613796650285792746804970040280507036203162281695039908263607062975303097712199152013991858437921867246495617282733861865418541643166307253838488185838906847262604373568000348936572510769792376963266137210402422369702204375937680871818754210068262565142686754648362067733988301055168229467405790162451123607008178286318648852420979033736974568384899493269455596335717444645780146529262370067417236097394166281625655029044107248809821961396747821698077627648474837596170326993966234879935819263600800438488939116739441094792842159196370952438248249869777176083159772561016696673275474365693493538171545339468021349872209900695063344832429933615658336003860431638278289914213352366370087298447200825223337785222473410294967325677782539811186855928533324870792169104930359973233607956568579710390880795461947383863974877715130813958417743754794316502634072149021719942354269079226392409679677863528238504423993968025050585459111867256254086858803550631736398727204496961583745527340063630272252497160499941064266493652316202199855088434159413777563231924129342695260185630463480914328873115596987655030163328764409725912222530433824647763138126637089316725272334653817655320362723921658799618655705485320284599017481941811751606479869266497141267027804228753678800765185900403478077248104892570652439343330188792362046503500273086407802366423141130941838300523958473279630431665300199519143063303332428770269685684895119300683279215067188136103702928309622522553304734296827999603902950979755997902597072747863153239619408646498196699371795500340817455993510838268642865128651836874846564570866760088159100156320274800345341665587286670409468409649576459702287950672582146692290147878637484535136691960107886514423607803986400787222256087273505717297675651195133165343729896356161747301613831591353720408608038938789399715194332449869692528938464755077277799678744515252878250389708961745187552426126281158699400230927439500522983428602645088058902831705068582532339985623446515647590416547039933526636466391255775583615679381801609523775941862036144089869671210444153222608860868785643886990681783047941585956204028011618362752084829673571338179207789531945979522383061018929263554033989230848345171843210299047101055538224491667931676362617886027140384736031235839006215254944002552889057152771229876128834825202355111931990369055609156228951407930144889969321145916172122527579853595092444560136959019608592303099660759785354763716378363168789458630037737776947125981046445420947751033149852938910899576358896524204168410487653400015211471693336742754765621944374409167246547110187470004588368619055944374527439562361577095646100829803995099514196561304251471843655984016588670054087514301977131905774022456567185676470640012460224496715042984565894663195333135691363074560191841944339692097266143249590730191034762544737087375383631904319382658238747418026993500543088291941728975507615117497244716020272754484542095560350839309996022252500074686849350338589730027086085208501950719838570208173526578455761489776785732643173524044654084289763882194796950277552001315972865780524251044527284138548580598228339255070421130124591783932384670588632726103876552178746685766194016694179543651855454886344186343157082661335189702523321534698893093258003659463501915205684031218493600259550732815648896342463410357342738107309490956493289239271566051949978241471729728076959820633407719380366669784473935032557504711898403454422952848379358832593748774937729672618911756483994991758658928872385948432187702944537640372061429969416817665043827398459472176691753212271607750548673104983739171685230359576221480720683605832021528489137259980916451534793778139556226299529578935035526836219417732958875571244688361869691974652429194169649509351216780014449915106570205123121117072249097988465304107127025798287860894363774458526514275395305587018573187554466396710622648488936495021364689782087503979749569351727580271815847785743092655117492655038106754959267788909722822163968471203498367905629574461207568177109073407183926995891470197906943684035357549151019345068877204003098721711486703258485673193380483498069240203658091669876281519876153804357703955114084263094353533031384770999169135928195156815849928871244788074642993374278029225828664309078148113819183152740102046985561269852443829930052838134427621791220410546705320712458919576205264460314972672767653030516215782826277346559008488061869216317717760266849456057330499474626838197153552572496195819863980140327452961721537041794832458159796321694151484216522128005697739990362475780055501445614300845180307653952236512837284496301968117302642962977309111335428835536125036577356963496912368931389685735401919542090033126405091517978519746748605815982622431913363155154853811248241770983354082704125252591007898178383633954740367950045905317314793702241106660364542692362609300106683464534125704586806635609171265282426975793513486534225212542850313585225732804209288726826617135469413109387498126774731600016636798343377415330902661660207486760629080363554534703676136701019022383037177987646402588272307369603274332451306106559676470613807839349970240486609984215715937358430195447403698610814173142934965248950510000061979023595461064967327997152652310608365195933976180193334628052667811203231088227371473185849682383264638716284618050460140108686142257552863854079516740461468950583628452286423599343259320046596123967403413869404406599989612766023450029870438601543250609767824166678663140903665049390610882872509895798679913505232926260411124099383505973165057735389965515071003302906294692375897084884618678037238991086170086139019063161699862335069270806349069611755243231026964583096991762497896981104371737903162605835531777331383811730903215610366239571865226542454311321967721822509607581602626822452147505180705636714801809737769323428252461845181794419180098400231041979405088868132859940013015523280978408114442083254205289279035270844495964205719889869618904525096115197764398600038795664911130477198303632348620849881905905932744480623539803984865189657428407026858922753314895994132338912853378414641484185901984602134998969495377383988532310684144265662212738004079998632453679203602902624713231066455728577845206278076913548083504632052857344690240684181443902297413931915780612572429926552339586056918646410383562102090756925904831543095934952507114293064136390877208026011633452340383825240340441097889880886917696006201109221779451379776664981970774253781276156483328291673118276147525696137942978056458162354091793954870876303336457140001342748969997872948914703980699099159889949657055362445548894947080406701903835732343600353349305008843952060167262077295747101460805205333377522041577233224944084024860417645314060400557306364712242658116281649757423348280762456377570843921889701921017490287086274471566340372483349057659069996994354358244265434454641818620402016373061758558456501587215315373113873169365314433769968679603144057441734053274111855403880695312017889923641003624002371552955970497411083966055890310932666422095725068222005892792623494614051155194883459443932827153723722560653059612175024951749064899000809782203618104980012933548846839974752582808151727865345228472078106483773593737560655561363546646341365680367561137405796362165418768717780553267545655282434895218504522647217753272811829123054417858513798659657842831064475252298984324737795371144317716629648568700743512022119258351638036917570727824110076374391562534411529005190434926889625721198147477115413502247737696673246704350164509663590536436111427575492044611806798937788256127557021538057991295332003364881575933896703323352930278223502716613581267564679442404241812647777129599634243282870443694435272466047890283015436499608091294448149510421719013902801931292458899779073809759955988180738861840488502559615377275240653623847126419931892488866971144727041971515209923648956073886267610252244059674417113404051238859127287441151716529948672933054027638135293516907696096586244050683789286699238454180656267560789287553697472849568116860598224436710084526157395294732006249847665641429636479942179754468100790109538589484336463183711360689685013429050700294072171603443667981056106177332287720040665478839099375100604543526412122845509926556820203666350556568274752529793937583598092699292103864310666643168520794376901730963028417193601784267751716428010870415103027424405243317090059280025391603910447610532530662231641045967406437604555543081105703507254778099528347264037131523134145035961956607493714083958905876239509646520850132323037916721093105179432449880287819348419048048175960533758775581293833070353153373259230866586736368816942183102393213791351279661976810528336448455850741603784103710003502677985707285189721358660949331980063682382566630519113054349119858637125480295043973564452065208328413631022250806109001691255833697402212800650280291411322004230968143690735274808539137178450081728866813047220892948661486545124278506653008269729775636089877140401538960758272820536498936104732464323649108897119164048378107679377475609457638758207568969715748017641209822158617044002661476942507721865319781651273928895059917570222954398761674476985494029922503205421927316697553350946271436968538368929888027281353676405881780206629003562720471228895014029952688730439465371538020544790676747240386868943585103429384932819176578177135536655348519532170639988267763980021359165293770206597445525266998174203143677814772307116272228268645711534301279882226801387331138883159539497130873540089523009376420906913745143278922000288083037871380562511805212593254138423819716746102398024348233133427985704314020462725144536850822301125615962650328646458323986228640831958611435065964944412639879952133838049957511917380106144324635782854481654496833501868443203733979682270379136926443480253818545237736257061063963919633700697300638407927797419459527409095731196818492208106115107124583872338110548515954310810322901798834890575291012098130292495472260651556014114580210258735296583026065794593519082835743410336984130281101349590385779796012044525392696299614231132682298505703332689691961712004110050895784388281275993164755266295863409786329847102771825028307142496692013149086047906379838727707367316116112831446327026017471199736669309222159471266332046207857041885380041218424707570615794827798703061365785835308943394533865041066147620053209055517887250739285594932517736398091715691388669821867377472067414854373735573998136897213228864183005359760871874664423000068543145269974902567361056372416546526119091000274726352730128599314003146616174728901606243975140035527535015492470127662693624782019037083705520201392151953725139059963648924362344669483633603627455614445913051962763512622964658162084953647669172921041290470283461867726070448418862299339663675629985415939199080474744182622468008084208061473931630390944219849054227815260343068811375617646715562512409796946130562419333484484996779439705579670069190812051713382167663687241111045990491059116878256814056129501847086438764986107488038525221108537561089907516835058694612547086820182822004395150289366304194669587526023404332517377483823365524246396318417023246439190092722159069563736640871844917042036550455616339825118283236677567091383327580096003732065297093816210309110018752306568521647639856768808236647026074427541604855361693670615732926835404190340040421038953608040905824684436469790919403045491200608690407882522737969201600648613890764500367389540767015449553483691742976012396407551176754722258853921803575669483234751205680512162019925910928606482956017479284950739344873964754211692173650549427111169087009423739859237858164855637570357966870513388495105177274785912864269939944477724584678324570148282656910903449748624349679294336809809682585785784125071167250799332315819996707973232399926860441720193065154047016929964305298765158707895325073235450031291361549748791649451877294131926663488558972565705122758831314862378480602269820966509190346987228852757275655598816356900058901670430597994711938179188083037142881449872467916903417318370889066128822633392958417923121394437537989969806491171361904957006687967352571368984003208489407786907752563769111665984687173815225156260326040967419253437570066922849951124401730147973686436134560852477116555544005773339258652328189008483842030032872154564561740847439484997745962758300084140155482888893764497785725941445370184594107457210448132342016962776816192816746939809659293124730861469928063138967546217174061792468143104962666290855702739153056414718422160528284940022872447711440482180832358501631526861227486868314489546269241627342621569788825738207335000807364823670799967703705935774946344357126404944493721144537241356846839434036105453615242362068591988206009614781687724643797553992520567606583403765365750300464587681808014603890747121552237054018312842840941100866579689730563279499632083487496550791914494935156298504280759426314813025179386157214021714157821469756062946468227724754655547803278021190055072850755358746475916758292519127348257423784584426010035527005062853806485326337431477975697543396739883548109023515690360099223972506055262921771660032690367333378020027506745247861135188962271669093820101098455112297280364455578830443776561791269583704327417468158230480805225733213301569343267370311416952614703420137104451233033634019925711041740062258148642681374169329537071078725038270393330693184617644648850342222976670814369247345544041156393704430793945499165553563259179985582524251590050251504103388698712357066169129822741543022769497354680811433040357574984098679355411956121050922813667260036916664399337540020089777691562396116861985176992358052858443016528859418648347196603666564305088280811180793306493354549495909390862999941614638694152265769017077206387530272624816478226596816274919923782468738646372577659847484610935806056637522541083316963090721419741049428337430418578189729758278875607785571975015179360435075101484275818811402415697498920430484949137402581562729885577437983201694488749873089302144118449314946450508340448015580677897087843497246654072353022072712005457290670695031088351505019350852781964254336634496436115448017649320709365833007607014779314645110668979837014097466006569133732447514909801203241223837343195978313334674036854842125022148026316693546159847623617629741327562958910382289509795337293223061133860696874939045982037411141693892906800265115657316450610486060430799326393666622033205195591863013214351724633905577933449836886163458880066234109125512762937499323303704382134727526260410662972831061525537992451452341689746734774801464354130476720214645833556619617078871945253227663639114230523208973486290100739202134178268536164247463437270139356445168460290472128599098703052102993031996124024891862847634495536188955552596302210853850055930564132438523974548154725637058700850785051503273358702074276432488286287781522480172777818819504311297911308988562127896957031335557128806809175716517345041537975013842257034644997615427414418610191812951848871147683107816306977689232388428468396702982744529821192796405940830447697211130777094962386899491621455395039182186094341421772051487539456931329344531717120656417206329058731743261552095583330464447590897551210056887589580759498063435953038123579813213068674623174209892314901633225667914575565677294360083982961562556468492927671492103415829853075182674929156441259138583498622530757251091425996561887883367611423769464818105001108273227688706943394130278416520577722540816180263992998872375139252506123484490975171655160170768101789493570009447852334827384360708716104396102092772616830274157904410691305429504689489101899910899149037020731908388209869314766724012740580015841531316322130786369083812032002751514996885330639925408438625244441130220689530969285373251716470568450784476528912250133216370691523648211124096214617471387758148556431131121370721635875622192109566473437853317761548364971792894415511408430967955722468739328866546317558171308396841703976548674391286002018471817687842380537058704509768965369993822079122934867419032607262510478151141812196447539650929004039845513408171710078518703731988994076283219559715333507231504894470224019270172662073205140003998223644847946669884567653699620752636189537625657397352136458571405069215774257065117126235153316891909429842450544282562931606531421751342893521376398642133735280750350190172292151561963070864766165584117107272962323985880268971345325492278435087941388205220474695132499373658998861711753653949543216240581017570198490598327840773589954222342616328495411733576917660926654476616185819698468042506412343845273593228468737654351423120281768864900099506259810559316989721892202025309473457773089469084125144860772941695231009233661991713391494227593606588580582512165964994381835732664966283974058964066593612605879622320878767239809058397396913345150728772665632630251285554757656360544840688195522614492683245608506476746506412186440935112518315244181990252099913090631352446025234806009990593953428147523248419556872863760347218969179804016420322290269388611945277072723828237696304031211759383288090349367004545413395734617217997182351581915830887743294451140398258780853660911340664845750028653999163050089129244840575625582579153626607367514404260517650999550716754992615174424699499615731075965585471351441599190598952379466643801821569271432741821296096788437818330088267212479215298235382622761098663429100728260265347270233429961633556776759213910104783591272483742374910057887981873269136466427303683767992439103141066106740662316812209778523212433507955287672369387835817968212859987153884110076556549752729686396102319929155493979470993993880018249127231412225552118841253138780277786231850200872752153727309054503251359207804982010181265868058450422887287941978347054117147762672123631346728623311776836883386684129644969495961093326420213969025165686923677822063406335724541586882054098790792277287619389723956344598423272653107771366572312918057460192325178189970908172712839791011241387878031945651539647076078641516406617783674084072481303908507370474056452344128241655344164084023401835200283939512626916723132439405736332475337551430291308113196994704464255636329936573570483551667894498217211459774799931718609063981374528309572427827885901101168261468120937311817165611980818978213126949673704221138692546565111885957630116352140914282406208138243230917125691894463763883643283649189420678748060399051061709233571033625221770562384131368190123535393242245590997145274632964275859283765797584671822172197306668156064675589501737680193567114084885227100249945267240810866305154233448129814883749258962875629600564639527937913141572833412426349538670973842754833419919401251637373526843445163005427492962939125380361183898653761706689349274528803873866063819428320814629505455430471913287144621189924250294575845742279025796148121092609489021751503548729199770005927051970152626616770735001809100203354472289979609127487863239102233489753327278614096035960553371492152104503608325782742772054252283507127701422934544774875810465291738267845674470158304610433010444273998102920943731563666504742433833770671574864130351617503506725520768714256957584791333941908982906221743323149103653345568829134806384287071796052056737901190083482461946674647657243661258203484138019178884020280325622635440661064601921166547127315929220957659503076421909682458101345922356013760584849098866922795980496467172745590364662370247153440303768089056138321606212902503223162929467686854115216010918768220557505921461590414008153602069261559334696241368347660392926577645242221165157473965728786875913253358414717141866332057122632443862056943974983574625984351930228708918460899727672388746740109219691375061794408786148729307912419592076491550946538734595956136278257991477849351708599185292845562782619962075641576481840510392771916797253077128047537164424939774282139217397612415997662280886864195694423772342226757081821971249405143558763979949006836301050352413683111317460604907160870033493888941293576705054033458543169635024226244605972338888512038668433273696018878813322291272668384033942120404194723499381701704005208568600229358445519044864359907642194281786679951050086293874600869924810021077378657289733657757248191072277633175187455117950665279695262376197543366671558662805403351297390142498699152810352239972975983038226317283776965792389965175596601333406406447801002312656173132524659468069772371261069020092576278362611564082565953971887081254637191069315200771326449220634445130973326658320359663796397899838665319850284297227275775432265667150548730733172332300871783885423220387613990144665408551379543151878861662888297692433672543843523887951375497315727711801629409218267515467683431267628616796011332810555434219550966291759515465292857414090170965837950613421688048682406312017925136225298666229364895184855425106384320529970788465319257240704578380169743318980004384544758342885601292455191295232286362488790982873113351866273113941054495077961212943256773599120069313084350003270024085028259109012187594295033314527304011951891400542018896230732034008335361583990525621694978072259203522749428454279213792092582040161733652152593809088416379676651859255849915545686624869678203532665452145223678983685234261296748849294131644002223774213602881167734309987025267152370435269582504123469847126547373707975786627866066065581034460469394213411389306582557791031298512219122660628852269319627569958571244371689144969098740380723007163456230055556810219002260135888254690720639460698559647378751936494984506003578923944720071824400688329349705166423597318065326308808666881126306850992046619503915074879559501592822753493427163964013567672850325736604389376439740088354941004257738531287408820021752314043985747820425960646605579794870543378363214709539076940082789454967207092523524670094134394485870845635736668568747186903980679103598179602184815447572110302117892111972964002331119427812588454516633324230185137267721903146659861548295806480482087252764796659737789212473817011637301646657408275095222425528376102278808083299538277063090512660227354829501298229459659438287930465626646098158570419912342172352783929816789125397219040605503476662698054701341721905739195467243531268341006702421971794894078334526156155409151166793256008559434699191905052998865709836136362001930349092988534702565911754067250376027115303296483533560763089303299596759058633346238878210241366522183701207210695543036318011164253949401031177730102299985784146628008121196453239216579340385684316114485628900655382921129915594018269527136628667512046623368587524532814908512092944997193295094676065344306927802492596630923614463957083996511554478226373326611737794585304678285140250178686551571243010914495727092181276243051820174598267949141341803167804810745445128939152913266071215712260858832381997615185027992263548830118675508641296286425304486974463277169744966105418735276785944533246325496763956687139184356716379113343579768516181302549808344732420524706598024183649330196516519723764662867309010600754845524577633312824075324964731077900903388223472561283402048110042568075531758817347706334891184637569910224165688822915544866906662837642534552015528536319511605788838084432108063484316949195262024980879816855084334718452705389134644433393116314643261329925362577892676419249794198165446676302936326453422255982634682864243962967673614247980449491658746599953253862905178925199944652914895543033521841527541954982787358681908041818604084214233023944028461963594023577085288587415234608990212309958081622980555532329120406908014225388581530114176151798399584104495566427876805044276419252664800650063233455100510277555704059544738971834040780793943571473221555203956792249916515866574806735011977204272861825824624905994795377093669765546198238915489481543869765612124309478269655496789424018686005229057225664922196035038198315061092599991472107028929429998244827269501251147567437638938719384960685736859362978887608957552848678763977060834890624316906335262411652481056121054436103723965109092218911356896812536438730213551583850490909348305212906653718739271733409994647447394401606839072662973264937715429226703821628968045175622071824810111069116364916116352896718917446409594867261288499408499541457995707817034781294773333279960905390071047334892819518470109551702486837481802258606177058154746251601828805669921799516596072970340921681460795528549730871227783613450705076414913563552908134419250549003319307693912272698145447537411854671972574098361006021870860366824195570427093375360332915948078272492149627642953104567920914075439858041984121389891237446473700353212515504182242017152812532775017453720766688000917608893742113384251820630149371372028979682119563478228893971656202651969950527170870348967136181396158695844556693892192108695381845544715950918401507353590127124089532469492646522938786009344036647865739647188992882292955721600690725027651654807832520523904983888070530938914089225512572748746082672760454525751287937114152236424206493484732495774153653467296307986489999543426823505747384006680539819484206792243201769412193768685578364434000764034595264446919301758883169777656465342411301169529904528770464032243759011768065560104005342445891114691224761381583631759062003706809301400275320332521671157271901473971459547495779663273546489511255402344762522267789789956981445874317241811569590088928711903371922485060833586507166665095989582075577975236512893332727140278288665026776252078030481173658320257840792364704490001883902931515695700468722935818009602035460740494669165810620283674564512276580253733639653120221207694750214008156614871033701442777964627557714457129540508003782402682271763421700990869451650256893306947871354071096312308733785146518307398611965686138693546289428404635523528031731904236797363145773500396360432333467974962728229612295007537669302984492428188189215627392029904194707093360687167073111799821081057027576825902507857717006413084980866992565725027725411608434212523079901747773637084307660950595696807809995908531387979948645556470661391763887142151785242715445725494635828452654264772195999620291045105074034508511750249150347321417500685599001623174496854743103264432152806024414441294455950089012481159353572470277772240967569647116541315993599719113526065646384762547530541669019749955311470052487463266468390298567802420943990210859120718195250823766123810591591344562229281049992336252076537216467701247873623251991517732513903044464127396419125287672730273843314307623303229819244129122551195949334982595737215707072162004653221144193561494261055238111031171888179336237363205109258042649579126237346286619578634183225150073364497604092416798298112899182559058322579938030615247775689550606681142701995929344917777801643553198241173220086662055538856235572902637248478672554493791773623358281546676168859634800032982412768735588964523570221832001389217403344386333200079528484852234356926836624433816805506998214319284034185578488439548865377538751073340222792240174610789944398281164176541694793470262245187524652040169337315723594542459586196788498741709462348743018468707442564175513928624616903161162062506682464373190156145016026855592656656382113143717685443852566069475414380315299554274169829058802140489712331571469920467320924394081493580641327444332921073307305301388452970199777290924379512472995202985568824822864195441093458762292013523344055732823448790252959597618371859029993385946564212679693419692683835091218314934694435950561319611099577680550247457925739432992740489223656375381533829353232298890154025061404565645906784756585548482884317228365954149746903837863388429309262257127624581368984072924030513938092206691950770039728037569032382252806743552740626687545983752018555160079454323994184200141887136293707331298074456549430870336286290301541111131860619831188626348892107458269158233427337073175808109219188997907533436943045984455645269296129619070048137955430188419553202659250766993382533894841816247958109640549938482315150719906863374114752711398929649961862283652294313236691144465283643413187428303899778216811877034842694372184336596349187906418620055985336561158364170024119021467897526517929841791437662200238614676515527513015794428961476202444468927450709960817018754381688941720214725195420249330518608729611770685094541164929930674957431440696508208909737704836477013790206563605604539556561269456800429825514647436156673779121530818156675498887325388071755452767614760627642618734678209817683317768537778301691094715463539232609242298017982252637795749645264811454743380116553800149282419385743082302516199193792713411763220967477773704391755914739171695506540024845625759004695720162413074129303418170903929408329839781416199899531652901487688308112131404688950287712783868978472792603577231791892439341183243479349768593879333771404214591863467905739035652435260031049805538973647262874930052852203866960166415750267895892735121518492311269894131393591089120751460659577677448471231784963918767351898199813349694534724664777798225198551295918037805494557362729713652922473980818685844826004229543486901084366882906541864138856465741484835262655993155255495613229776094740534745584643259497603169623979700970724005830951383091026871466705303639108766015109684784022124441448304961318692496914868903993646513670421971169256509957946745908050978398083304166449883499113676980452169318136310610690541099593083858360437078668216513775413692688762199470884824747383361175939542095932233084855121586071752537036747310726629526650497727903180791631024016582197784324790437652264314347418782807462065812527869526458179759066488096661377231769630139613932974949547687641802234823676184218074670920104775930267328125341513566426752911488558906740280080462238728191171030121005880109677843048566712781205654096159477586517544622029386685476852683700757113493234338341212194264170916544081207493195821550948201494746822801787083697914655499061488119451358298902829685383093920646678691845196412368189724504314215772580186893624150236251912435694389378463328137938869418298051145108384144467486813618562708733169288756150229780642755079444604774480610114988597818539162214788438299839016397534174198799749318390864294691566861364412279975825095771993704398064972136997395462695373824946740897874879576781933195979963129910337880917101397357112199548599382864937831411344843445749341483470477672358142710442068109926907762126664176628333049368835081003407653306552288840912713759853769288977210215190797140512913827378345950713395562295237502223645940156374075914929408916717254882495850305833205501567726817155115578630049192365567530204448764255354506021343486722200192388442761186930073316823885302833632354919561978769274974958430213461884597466800116361401233888019808745959166257874481368725379488375550907159615981901432343875246700746043468414174145787758081079266388581736130602333392288336920091171012006565806614510653046585290975939459110694652805438699014453672172861174519820763792839525582079664239629335288963616525856187968065363481775865040684776060260426612447833181662889251117626992255236764415520753676617226877892818693470377198629672534630780616771213582404944674401532198019750310054275190879709883105133999656010791344010693347036526378968082507057474919169902027850577328932537004355666791501012397606948436180989639408875615904525616044804610133928632336162293915034361103393514357879766439701613081856475413905494058266568552172223300484356234548846702313594001477326087677153748229969002136292498044920067976352776238768193991586109027997124055063789742216727216882667750048050693488335802139954821811616520359115608660668974112413333867473531726308854958639873206326663389045820989183860562141356518975874289608335903716188429227916589450093018315907464176151643311335377736715338354611648658602466467098819931768455090417388848368037691011807995186915625538298580784691229877078354193532563299571996821822412611458118887443772999239825772652783788180409339159326099506863796195868493041724891936467272341980092953011459998523428806955517390515643096979398912120800632641312873837226735228846705299502170714825007094150355381383670910698015540477085887801796657857353961005165233864775295443890964459310162719334612867372475035714576999461834598350768641837744152861716713026225227236137990517355469369738165123809197246660482736296108401649312395276153393613019726215303626626636614777702319168823479093865633562385100738682294706370652797595554070768907073846139335200977916695319418880533792856137135027370422754238747744752829287328638312836491729625308319864384995079896692886844706875157703077689715806241270300464218932113951557708153796642346991940181542424690455876881656655129808292826822775769164558250520157885906503525504621008866022538202936575028123971984572721615882774949786028177263257643707967222097071739187875228027329241389983425135961930748012313083320908248637956654380543543115389601283850350858464322387423885918036419432465194306532347376157400283971495362001824630511931027564403278148015933939351408347287680820624750212945469078985912645228366790460718164207090680787364181309687739800539795645035986022395634807449514384624320973942813115955422324682082613144484173561171788372192680194248834771394459623248954472684835897232650462603564466680056353758902423119547688507724414140931682878333769397137965322941632663033823438456507863267828294621536045122764383632800399325089077820933976635413361557768576935516677006932692061683479336194464869057145432332166781473477173338284396805000810024156757494511119508474624024276232427594129200574016549551773335131196289656467921795728116121022549504716881284311642484136562454380372358220898624387405263785840310013553837638390576725092174788089215005360253846140890563541273904979014898685908550920035024252710692467952149135614254719459720233998957138798944522239128752166855801171200306880165414374108822185152307132292532947159093214383581861002987047846647066803757680852027304775565680902884230240081051047641475104564670467850732011486864448869334721273211795908000048002583363474996545013244453676559507721120659408603419771051006449589201492852244471634747711175273015444297613560819470523342959961518975799261144695186026563128085563722484309319628961256200723024498592193585396341768042417626190339361446425497346982553458119403699389835801808469928429991402692607484093710538146258203282941792817089658212798038174913457683559564504603721760671664810674518088632240932239352548153510503928177683514868335353257864290779549957507858771456431240170641639766097656976609497927629617986404302976118570547285662201504300858479872742651985347785584514087892961535204546146461687801479275519525617464955085498202180388749553119643042075589523486140926935001885029850279567088840826261194956493178643141380551703861836307010597541032325700578056133341940348757138150689887585464768638050595888213810191190462286595547678415233394967295193185356725127850131509311478871773987626432518375308029171121490603151030671315829100671541712998341555408568818075443750189234001902060565412735203370453653708229108045764026957741346359412923080150757994107880846958893780001398554525979292721454641712535309916861199510695093816043352179655448683242741550323754914359574010304111117991044806505613171206975817729394397045743168182916011156081194358989251914413160943527665610208862528946365448340683648216194351805900098479747947840729584787748561808582531358154666882689667404716644953561785458246897637164497596283807043560816806104642255692726059688618931469065385170772027595182620126415216897298921386877669459969420934068560818140915624962995009217489201790043022692312291961885751717612363002071526442341115250853131820160521069017432963471050603502167436651954373727943960287683511598929673259338907818705057802928480228581468389602140365698948728130616124578925739443468062138839451894659870748262139561453473948730360680624323337433736312139826957476490769643530745025354851049993207796241381646659480935639632730712547176351912112962593061744954233355671806045484239866736483214967395913121093057418006395365927528149090578181748626168068881597404229399784757522177165633993904534085961532925502533818417096189040699362155465399493332225515430146265040214916556414778022855247907325219199113250890334135426259133573746895346842747384494250159255520352633199144562370352159285471011906396208026211348058466768703442389694242213620630478771324309811040984733021317949470450914625285890930182120009839940517772795154982351074178716184293399747699631079345089038693885736292406733638008393365439544917208038608943928258587642084359446173980260017402789871295527123257376840472925024333751487668530370916900999982194546118730680063103001153918216561780352493161270026467467227892950814492705988418285461875719204846193768681284501431582728279338205893046379939347656559200498236887434614833366556187491698268692704477355230048246015771868168024786595536598911433725181945674424661324679522828064468297146916608155978808704880573277802439081752668616205045488065986027213528093968013061113051595928915232551141788694056019906523963911806089564474751175805951522372552887873718068030072762663133906937113666080704400313406991834479404679893473190900944188024724291905109352975861038190277681145568522822386929094757212152189809713980705763767510878410721896927892524263255308972252827785735902750476731692650195306846355509929138709377130567563190200687727732750066956594471250307958389472099395425191107301584931077084413596018731742468039160914347983090359792783894552633495829234341886604995364139142718248932892368655696373572111008868045494507380422892076820070767204869741586841832682540830651633143660359729925846253741902087320913009930418019641532679868731275410695435944271090139600924469556424593237525275201210048097311165764760891408927277193063488457681001833870244243295177103296506725715726226613234170475276489053183142072527344957255239768594746805577879734684860081810112055005066035101737652389550503628030426095829692909099620985791763594303009312976330478644677147543868570882102588317839283801596577842471926935990030034699020148200687173293058291577168607552417866373276613010251755652056781946074261782756023302427807811098231630213722179204566451661321398328320687347924905792546086935765724759645256097078529449333999303026839058850918744117118426830914739773968523499450113228737468430362108242886825950714067414589501515010390483598031227043545102827909993884421831347484195350747925077801216832870448300462538034880044673821568455798373669143549460441465171998535858558396988021461923784623013487157900382588523730291864552633628951005311534256495283051659734095078776053424640908632374205450616189596260929899603190853972269848590688255723362522014882396728161479148795605312289450637819830389438537204479118701463565485391982624878699400363252761644823804623942868673020565069663721672187894753845796061021089194163334502253909561967257525478297373504809585630644148006916592376389085888965145023650296726647192568479752700884034697370981698535822663752309054634753772234793061742155971190457867726838102737215740321812068441441627886391752106892752746621724378362472803121372929631408139692023179938094174757527638625194987129557136473139875205101069206215124691883236789916580651258030363844914721566845728136302532506682617045660940084393086503196108784426885402365782114642649329371846718757413027559367025281741114107935353291909153771274352947790723753226097608745399562737509526933520643173487319224799038507797082141177729684429656097705041651851423306409016081425798176017187668016585847589718221053109031657563467732159954192951760217635360788783544438962016422750532862344615888594159517683803222591091333874421995368507342972033097384563840493441496542765235924952446062220702445107272769076682664646377228344017210124499403647854118203744193294556948109761742613654323297112308375680425468143778416079331964396393735348744735297542999404603609827212534339196006513293995573275650976181242878220949488167335852096969396722071078564917413004813402974851374273247245758340412708514921428760481551580260382253014298751529731610607282713784749319883925674863560866313200445674574211001578033421345880973523132878817064941538327134758554437357364859488484332934943550327297296865795233375392400824565734630166156058478936086643114661670044287676794912453262795376118007615235549316784790783324390955810627062921582523719467236744056493629254146356643764261904281604182922515932090715945666420500633249969052833986087568769314063017160719878422072306126431884174765633608384962638903290331639833803256953293365251661050258463814147915742973048859340962191808869366246202657439523804584410043163449570794946902600707567554041650820847731760416508524086308068967426747272515051475680698944130819490974016619433083778294627145209131086633519607657119042533051498680672613301051081511336910480080311564676102824871153683883779751229366272910372418325473479485613648215805510741235245853429426922279483333958027381104455741228412851447001955365558882862634439908023780428492676896562078760723334072148254058314171155241991965065937800313084359663706997945279557855940213990672512963399941653900515366749356985169790988351607376619726285062951650548898270280642035503986924141513208558423885469066834897597171782351614617286723551908748755574972317383473130466275573521708977090389758073298645080508062208304531889225300521424984211049652362286693646029035369695611411743835249514151194651420914316083554917452813477276062501670330136001519054824888232424953101192460194202742717773802430586801529545585443016608953579968943690790415275092424553320533826497142173029654252075961011101326212389622959918751903223327697209433975817796654328125168629916177282401051482017852603993454541106386394519236803254279929726586952047953508276430343262735903370119332298322831691580268355314111371753213752134188118767909359722852910769685413900937548327004804038392231354487969064179231613910265347953787761286128034968831752983104624392569033188859844151758261798511115868845276145833966071968107279723236844562790848513546367727342021600499377719353877678130504581292673277929481659770923065719337639030122283132022168474666350062036985008337531518465834781021367671676740979168181301389235143351986538337101954963603213567979958809255987341252882434820756129163982293718952155698880286092133488541086444547550311670837985459269397636084459551706388621609268158264059333059839470867684572616354112171698466217197039904510255733939819091406116294579968054900214817004242630553608674987506874450365648623858640275358558210362131834939532525553301202535667003180121051823405289859254704385465008588375353585322360392419245553244527813641608062125263064893220228775429680909608081977395537833767436167189335564969440055715425708393573811584824502712688601804677402826541498149466985585414182060928936108883839926495352979440190168084585906320938040418082289780775293685184494584310404226298913525041533697718981906450311145787036796822146264414353999172714425923214111651927745194642984083386165548349698985163261605456724187520681790150722204645458055075444892022110244564751626534408166424705532239276585993965998322563536730389713956015965394423461179449465472026959156196140053104184167679798582053457728474173702189868291622687690882707670569007600060555294404782600700456508940128047088098328585191870959748304709551639677536449866814949206241659630647983380224492839121221873021419813262168362611943101848114006363758731827730126350351935279509420628228977290607040346330588236609089226268173545258801138059697333191684820938859699174689671336113174975515369360439879855054360355951886528443878793289272238750362560506395764844730051716211416333700735012282484986290109093008805191951039147905636940572493202761050925815595496904270323297788054849215959290277991034580657339815735100843024644744871394383112921271952021532935589835879243195069534264468934870509768577204109260805501493197247789673006274835424432773212441279550686135020482795613866087248450890426558887009472991402448370461687990562154654427461682330960066675133964121125825629714567744453933077578592352356730381849462648919211044096819562099903176874190983053209058812418836147993222348883348664605600615908817940743228573482217392748114893476227719014017909602468195887271233440907245248546542073842199308966651101214670106499176206437246526413684899126945743312626547692277788024439872748248063323041375978496711264909908770562995737269622557275473331843064811916405064103768364883163606446289058432157242107021467707011451820243626533963737947253956226663809455059696913887068056270126345596489904412004334765379219895633135576556105691516242519311219605388549628483907338774388088374791912509631344753356784419254658816022164345350847686004013094685933180904934477939017842153055280576892720519152689473793613561186749705917897545657104372360724027260259200191885679181294693006498498090245201887755795778706918929153315876501495476252034835525753217873528222982606011457565001510016252293967261025328267852905716198030257970052181485916303636129698410826457915556528326019785097706539397825197339051364290888617480709519121875382354645708949063618778848689469819025736445077920477727407873191268372714130662044545842687034643872971808663070959980498848027068675365881707026317819352145694489877747925961102493708846781513814441781352720873028389867465066803640121942874772427101681169897573269598319407674390450024644457996510555448878034995275808908212104919317153217724949217025642345842964510631261636106406427780892561134302771989194015901542123375338838561115213559001300624754415096862598775551060007821034172013162358169961075078717340956177354663348545491142800085028621599857644010097374771245989131351368169988632072372961993742639093222694534307556761180281721412756888741989960283108268030337109631360608774798686201966997046802842079412492453864902801670978155410571803116037810449490111018298176524716862918501585741855891153270402664102323507022734458321681463566454296546864499395011815542867706951513991294442711291969790087391398463420541169076491361214704568522316988439042262679889517579080968750883112367154720458004034784335952496443507656977242265609748087243059805718340521744165320797949118593974589219486327496892131382307516897123836186087462940442370118833419531128841171081539959441572352951759943190304913559086155701006109664187590191341131150617532329034943635457013860962905810300572373536187730356405280350885166959616248456569300189307380247615808044552686081454947366626017560820006262495399494388845015755011006605074931908096016902113049339314890920680673665712588639668734192282275140296799199401917928910874284174407314929640345919370075897026996510181237068917633730842198287075635442029297698327589992635025906089600260650687741830929773312920765459249290086556237582153052303864528757998797950289003562530797617567566974715309919604890706132797196157691926717719378006442888316354489156860571519417933760435394638756754912634032953633707429241882628281616285730135194516883331994022583390399152307529779192259625310589289097708282731588757522815591159483181475825862144756007154321162756340268625649298838987616291891767472228997742656878536736741128424551790202704051554972175189114398066169087199099234518884215427329492172245027798453228057901786422274765854673176971810082323352414641020226524675072742878896269939600301154830292682782058053430039775980998267171244428913864905817026965168156419304040001179018264372213322933528693440787065942274551783674417312400884842683957902821369377428273905235113828809579121875183677676366476446100791529875875794028866174252956255560393490091570803196141647073399535579238974665915421888493637715579779268842099021341883566339511467068387883496935952767580838762170296010873339319274292332885154875415622733381728224757887119555074527935734671154445173837604661927116863636965671731560233161645789175119947384408767093952897302385429130917792810951592957585907192367933869266962628508214584247084885500990306228135188527384583475193052629034579993213382488633774483223321275564246968994184930127888554905822593919313010697548780038315643939894455131591367141674248073128955003741121392813799619264082297053759719201478718822865495009011751647383882911172459231249288627618245644227166166451015408163913401921955707374945172980216048017686836396007847092315055933196473037275089478896612042487857871436197816588458788302186425396561778143160084815482442217400689870710878748789167335223341452492770160887534609662815667743690763323842290255155419370866979857225098439799221029573786697604031721289349386297695117968544739444698009613640266706676853463550434545209221152163470357666401819224437943860352032506340139678010047720335958209596347841344919747337296736947943759584218691806577010423437394509290398125779390120352597823472356298495171831671868933691044458788625871969898508014946188508213301234722890076879132528966552737709973892369313210081973580352191021040233801150962300813702395184882623939941062188297041357487441553564563394664231895701392665776130191866136357580147560884753204104833908983162923081080893111786732309661664748453574189839072045969094854476103159021755899562213046677726544622824992482720048079213101068730997936978099215083802005906831257674799701668717404166767157049830773963076612289264534851401692196183712100440704861254135534555235663645968702994281332399923483989884102019834445309089125016304305316492990999725852604009451461470623637914254342105036619167220390593899552066126311424736111075054223505479229853682715653003054318974616269390509641886328673349325991660401419967778396067704875338773918651582615904939906162239538888699748236891500383116266976366992200166108577151857563660766039342519809425145835544806503180535238734719630816484477868571026814775292224466660560583458064056314965933056862728351887837878095868145161131649282224282342496279316196577841919887592707643414410042298654705506777593904900079690937767195721008924296231114786428903867594569421172223945043594319237597086557309270057696106102601702036561019472828923085610492367024777383533490971970791172232041381052749469882318647406335814204900089570001254677625878756540898862693946711669189030327408659860962273761843494551516815329224131887764428974138371269166938112213019661968563162852102029485454895333163982160431952817468141141267331065869790497818336349030682226499081883403645924883092407156093017128899629217437549919493342747621448055894989534958678508028324601997691166480712207421888474041219301037330306719031863748356396051387870560194978039546641305166747782564010532631605990982794400846738234198400375866680441204702847675282859116514124860206723846931797666047860895171985031675951962199716183454842105184281063921728636909882108274613901028219185898631831265885078450094484813846759910359219916692445336936594840738608898859292793614985388624706438095732234299919961562050749590311976604760787299415032761486375749580107219618100993689941100037227557114563038124092756494528484949301805441166320213411714258620707412113236020231029997040218092399637042773497483615635146629725520946398766353538687224673608393655249664687076588624724306877658613855057962077281609571968140020523673516796721910925255160025702156737036795107002219766529101125702101954793850303989035833869650618573247927344311276554118047222009229144744271087268502110798684616364261713378963221039869364895561161074390033942389434272074780772310957829425945308311721925109789469735157310007838727654950936475022823610143663252783374696118438409755915516505952461764359904941791163352374278380227090774298123627932603358394282106579867256233342903786768837529744716050266039300274264540902712294338091736889357335825990861876599873339839721452658803859244401387488541710072364032640816693738686379745954451725512974186932540493414814042578402102639891075510295877503767189549471776963207748146507950713153655345158487228114084409851125201090315304814266106170240829847647496870482726407988018039948587488720187066208681971581103571918588469971238212281119182545257390364620732257017120207167504151748745867374852226735416007290495107942492785272249277862093270412654442187943495392921934823949574931974445675207759203469918132321725110390861259615366951608880533879198777847618957694902546508040582228601210233537064640672521819553478278527063466554965162462751478674283515058931607422533568175358831413568540124836173106682751756909713789356173567009036566120450038259298748099746383757042379737992606606075896887867235536492594854370030730206243479839736717339026753347919044366776570686355336622480053425245678401459480958529096882178005360582689661577991959181321462780583117405887930335401108507992103822079981505356657009085598025241122289916744303454449723167395138517260548744207220117326479728269492905721695982307947471625152644200381734767474694707301263030169566046652447009403778841859356923119514214866228497791715266499102417443639856658012632895555477119474929208494891439086676481758435701836526295187915997593263968496081311452343435205471115502225399377481309096067176045961393390642890102941965885158841112840630367454937022301713711919257275805908108734481742527483730205957142022350620151763166394024821070690731909269147194682572041124124822031388732631953597386869380169544427734642939168140732684051678850960113025708985132029624398049972016308856821809474157413459715769719668201540285790991859565468376415765465165054249002581153844796637124664695602542233776634992493649288917558056764126919676542505012260653742434359336939193298534117588548494153764553949510880552441496097658613395279423012777351613042956336487196776100857304550791660154127111107237704293840621231859480709512361993120807754795014348482203358225970206139172962735034428075817764223867184656710464909475223707583665893957464694622903536344505699090449265903515018212331334745498732656508198131141815258335627128516654210289610107250467745862585683878057841153185968181474439310502704801838873531406221345911622066731432578487700592368637061987023330208698918408970319894799474326460274035627619387473101463523601636488469518494662590770459018726096963393487227152856718495815758942452697928853660870974318489449636413753700251569751979522497750522597124411467460421410262306891995439229233060729589641974848129252715200507038518981741098724409140506955559300441721377256646946006073995456328229163690735022920844408890975504190133365456273779181170329803128241891699708336409061228311450547172832346655788491302675407606627520996834945560362066772099577857572399472046456487044118096578271343782902901554902402110689764327861342768075425009411146674816968134423810922260281465354930940251690977400911248964550338307839458733824636776442714339928521297284277178782518763610006729758000040961507583732928592050319129141839195364122325309979177771916129930805452211578805609748328691044680830673404483862145000794703115025706175706400461988149624576307841443979012132607050066167117792011814730546781306852635899876487408552025052489780377701944586567300510547062693938299932322689084052993131700827541806823464533483123088196564045705781264524213259589616483568205389532880081831130611296861696909290619084517636884549118341593797317870107115324450964442084619006563914152186422486668854626831649244236732000600010502195303519734573905492825278549160513836782903759163153231294729777635627647675784044999824704208732398391140414536152484384101067414100136483663917928560692510810693671178471775828451235714831965749789478206590804719651960567794251044982204077140307175364793982692420270648309464945119274951396785138187297058161574377754648166089949896351152573764187764740795017209539560342071469362276015924335324112164398089473780269333593011091049619120027824441637124433675208103813026065084191434062969254002894872404144485536129461189457753773718108573996249691779806255817005690804030902746201321786469553556152339119358524721999206431853299591193377782323716640729577326814835068492572792949388735055676658933196393533945461146803712581209864635209890227432332016872725861197629925449804978581439433258540297318262410437349887971500282444385149503399652496992844488910742582267469524634307733216700366374816164674968140080858958135907668958651704773910760361603402587965880208390699698331486151519440822873880260969850538675631967401549011957209096138987814277459265472212057727583166869451370039379831665866544235619221201517484082651449629800303856792198397448662727245067154638152822519571195958105021516237902609419155774464131423991573017356876320629638773294052348376706411985324719323354828576673594633495466216169884922291577357601633329424773107040923589733094874430744279227631516383914810696814700273168039116459922027491001494999573940891291138049430607123118042387044062189541595434232849803143414833208005441597797463144624148962593430175813176930256610743204453540689742120245921115621023614420475509718700330322779655084910508842419066273342799666353152695295040012011938033835368243631569392973808501793858944927831264206540712553092651530422096315931468001513505026120863634047762169497929635522502673915605290872758752845420330206938749999122754621062569719851666803727355453879597103535134814131903143646639366661949514131548724145441542136229338610429560737536992355539383543603212582005430817080932337348093002210555786391339022629188886916792901540605935902489065560933624185121656456445783112838235032915331887385840153524027248784972216211391795450838465191971146973629651266826767696657176997913457158483891709124037474386669478167437524921359665805769844548024133510209654039311130404216950019062474007274338198431763343667351648756226087372186541680171661201908347342086964286934048605526212517048605197109535311867374770609002704515088292694754135366307685184106586188762698477353712100620387800175579873653475479715740311970415557240769736144789329735921279381084152255008266428776707660170447727357427442716391528578100317690952786256966997379840261339510430781666094794260629514839409013773805207707323902923195580358296422298384591499444344134328225813066021428473538093567880069316040194531675372379584410917587369865928356396600120436845581707867104745957966465362598829293203074063220707272199751539011331005973105716139261410510563580541161241165962441804107928416744515169433176637561446938053808439547022665587005400087560295135871805687902902711565503423590520493709893179945495554972851579971239613170272782970599574248331315977826928553107716452156985671806848757400900903095022006798951352481951349607282211164232201417807705823065808085499308554161734007159125538570509165566536161619709256164334265320781224219369897740046078438164076047897725870584840876856121459870767286293287913845866986647327052290089927387159915809052401405542960647221748035108808555948507859092752027942883979830016380689939641549026359218356768173650270684031458322476557003579261597135334096133798043069680571421249376616760944074263758128124416439633005270273712336038457547999032641262678733257281894299978340921896973244522639769751765095000770164005413017500639687149649208179146746141914527701410735819616309041053879579050299949881297464565076334740578226417138460202397334083507475336077774549515144508148128110347436045933848379190520075139211986981311192189372504507927069575414736080259720603266875881185398061287839477725032730112716159855811183172263415554769177957374729988621919853149710043742284178564145853416517930573038024961934457417389896728945754322170353499515332062982778874854320714069234571160767350879859044450604790333337039788367302902514173777104363228258038699633987484796660746965112386197979612470340459560079094579991747082191455824824560966445829483472020751946441676807933681678383377154767511972215344651257074881480120635180457402028326469394353883909731168127873872626606985249409275861028337758917142394381708011519531817203054836996781073159749474669209139856381334363527909004172179707289904758476948488872320985216475219874884470466538442273786632042858224511181811752509843221557043260137707558894882155756599663553389684691034341384260247257368596296938603427380892996603822335772177410793616810020055298021081353478732568950906194652747376092789697413679049959229815762058963476674496762227362428866418392719710788279392328826548303117117131011055211092335941255152205774579130750488684316757708181852499088148420604279600261603320421333037511770175961255670352624860603396065383918091266659809908867548363239808372124096167299093109726341094480695440916001626598088362992823706406181420399859069504044766625690359394160017940489760721852469677322086978973631585386924230577458680033182500510039618433350680765467149933944271043260934890085797755717630083921584364114206538977670159813471731670303513163729265454804270495837969101525113772905978048969607912427779775339378246402753686010453295212510955599971360615192808005755572512633072155572290628580382567683357868560454009923391934949767290745863496922811455382131976739607433712562929997316146504111473686851818532228576853643823345966113863993847947655614337936792216122190815199871348272219466735331193871785794935946028727186771636864134879764109005290568904526798971162716130330353304585545530624247134656237541800938099321996957849792427307327310553826346780277795757112259519184040739374349348125688462489236629292336409650363443088072034683851399575103952859003460374267978011504289307924576188447966942111688018121700637960804946778145294534448231933176619506286734615789415859306711712955059479542003076869412176974080538259787377720037997342057110348144305037992261238273902841609110556757685729543582750990728744473328996685733300886947164367306674809949909422648293565247488554427684711418272276433083697883015575734674133193188810688348070682186471252295029062402040472858919195100195538253119974824861125979099223804975314440145738344491569461206004013748894708792812776699828465930875481207976085276580702474599526546072075230972606833904087136124017623849854135843305700527142542694866473352037297559901389692165352060777145596047773860403664338974779491992184591998628495252965370806980773502092751261600718942859622191429261782790339538761572095644461917555380009070851075819655292464718451444201340915989830560074191019824314957239172911935094561983030676802329073342637873934468626191859130680807460932477306626617955214563495119167515388085910764589288962596500775802446761000145812810093599085500115224809676779689820010266196001261092975908207234874006326760433043146151407785845805202786931919263154323156278755247416393058231061309701662653865716030840245450894189658897926709649895791323174566752821957191755373132064912753940166354246203655912005292800726781802901539138290723861996077180472537503030390830332732439309122906268785676414102489135352297776014906182024899947579665303791131918602995795438767710187734493656023669622628253608720142115082492734084401765758343602915378189991399663096818703242824241149595155133902775273757478522386923628074188061189115394871988005193488125744353111705841993586475118879786583620873165999589655564474435652445846536006582991058343742879684169598438263368126349587728981963658178552906376790340313370315423913525387253652459313877697967663317617672107175223934053045225452793305394959472638780030283698817343458330427829816431013992983750340675574974481141587478024745079279853626839109695375656060794498655908281835499867422717998345659674265398948071582782400449994160596944211185280507835242403105786784218674067513200287067720238397971664712763931666109638738129542052458712039348695679136947428011889020644359304489506697887502016644626137389566588051530085346471182727850388703058715559407594869030842975428787998552017492146600803615608690623795425088288050779277402216093301898658133980143751844915858078663408161495888486756078473070975151924634342888179040619282275926155829231629390631748848855384199702894361423554298664707598784761273525729566875393403912830013880734207013858465157887859552825094140560073913418402801084607579944807015553618544259329369233676458650569959127185475919578512174798640367257502488220224403817426789679370524849917308471304683943662647442125076666089642396921334270440555320078082752490503655622450870380673366675726515228657740263971583767368550473799624731022564512379652806867317634121508656972644617355895099756755894612004654423415697746493457285194287247631703720957837286037574426307329394565852734139700773771796983113600226711034097118848468505841883158094824944528388479796300033258775649737688867903776477418719147596298147952787207626659467454971359936163887395115573633935594927717362922668109961012317596135560470408558296196565801312872935299725249468855944213988699781350716054701031941848481976564290422420400856033872798962396790498863117449603096179596032009116732254154759415519875767697435554008809170968203293166038490713136008230236751793303002811015250356494603843654198748348972009776605673993652449114423394913178511606275816020904738708871637880082169908042958275000547090807213239699108085741990089324222539923097308837082978888295547730416029681332562185679608595645567599764194935643151287730144345653708238401963738567933211451411339939305343515176042554902676350365632267568941389993809062110457740329270048860132991376661577890148260258347576029081078453227546872229834187709744137785910620546198267514189207527705432614733887668819749633683309750978484473255344980721942562979870273912700856437897656541465766670227744953315981715552887783542357209963992266235006531064676964692920282015116664563497406700267074867275622832568537035051256376712203633371642293722528853864575994604863380847260835614143003760257152237750825214592583975373851900698694163217274407816594524104465321713768150464008719096235992808650109110148997304480227892322435643892456609499051535338359064317368051238633528399689602208629786367499551679295355295066249191562713957203018706605842919207879797415206198442845889560981255447525118169157952099523517396086672337004976746371980773705824997779591941126209474813959511477506064272355241408624221298701099060233651914300954051125048868386151878486036378279266438090086894635135006804272522451782121330442317114057880448703267189324792474246564099559862102879025806062309699520268765559311797338516364090558392697747750553437241923047222858092606309066273393362184416715785729006749402613435172812796284014525364975657916865365818194839330996549680387371174956335593644789583205431827602144554402296449316726504377509514080838639008507674576517543966621320918155997828020844090204811693888194146135754955000457572052114578992955815961611099972140148601961071721520265739464442714052972558490750760584696909481127352931601763071462949706203022761982516252789284513738749855888597865142626951181352520209793027019535974980056188001058598524818757728151618914157806240419442474567540915199792066202722380884444266197837235547233083532251985878797778961526433081249224992066305040806988196547323480331976610284800160550530416822730112148314693735215372131059638544872349156357722961418841232148626097138310866603425826282225616539586744264700712004051639627482337303313927795915294836573849582097928321543992463618984314890532774958730683481294047410548666164133528867635693929495875492480857690205134975863336105744232566102879408742869671171031848178780269564693449816007426674964396228194202536178778840368398165819151920339434834148416396190022467018177695206695254947989411211532314493667702487693643039075053836342310012981326600667825690843717280602236152495057263912299507439519772239389509779908552966367005584544405172368729038952230662316723582630354844466117473498595737748751071578473520960208603382163216915069124629220889166920806386434231782025020434270629252907991016092750495021604680137683849295633544862933030954713805989424033333159101368493457204326492288802795687441512890579202288310244000467367003736860123169339072131842502590486771595238841959899817378924902238724440873733693625662581161324795539432370526844934811916705123128300390674554344768072596693359892017765215155982955660333157747498841538884197549324621745945717215452327502521331066304917718961315668504599024536492599470694198959982847747720357229603282523060123535102735879538685425317795411895606848935838213949828915796118787607152456900346033196667287931333367456797049888715322000851852430157735740001556646932563728209078096587817792312307252377276504317129708065948148063265993624819434615555862124786664545108982919324986245110329331059711600738237917849999260783176859851908695143728450751161483454565753969965250927415384292488661776608866237068258753072167835389657617796860806833640642513793014387377565853987848840217449375035089222541984802900411854981683114101578092833199936930394140749421024030437484413768074099319908045455229503378800892695658594418328913834337521628305518179991520462539942536606978444345524467581126915599632475658145956600196787598942697340816515475438760956405186215043785520774028446094724462828107567807385306869830853788497463066399842417981049996090571891823487900910669848117152539145586478567567065098673042252042021639377020236031418020846210928281951448243547811304530915834841050459898453077710276036315330366744215784839913479165718078453746933615471563863463478769105872753253575191214706327838647672407059868095689213068698808018124008323247314827974313120383062124299438800299102540695470658997013693432490428175785876748809596327818064805599666822138345683873704942775791699713051382714365357729905506027011544465368136390795162719452234200012592230919933962666181281991865823077608365539079785336859086265338220227707628404975266721877434005045793733017402919385644261272827558921132099849654041373747216452173281690663952862254209123986124005790884623964192131047986376218928436754206170420366900816569505494949011367584065024841878062602580469432921158061035791272621211626701710229873981859732891935364095050735730993018844478676483900954104784478144186785144334511071060847252676819316782714715029460789426723648092199083221210057140722293277556287474548497608677090364547273115988671997627423971943519553524934577157761662841159749324687426440020872198379658426298988210805510887887800920817826594973697702749390595866503156765954566144489398638230244976553884486131332905601355254169919363941785055074224619178494218467499914004693779416684184440676796193049044909061565322921604886188304081668506073230519484942208438262998013069044808225637232703960051503527514305150556316939398943710546206092763216611207172070230554121647677204723898588171876915398325461801124671944324039576581182871913349796267572216697781871427178412650191007871316611904471531610549330647739492964076293173129624412730361852244074752685279345876721676750306448012426057202322174542558908314336999781385374377816604408586859555372864919545602025395724012649544303967774240447137252455013422214500799149666754124742266593354832176083295749878123367752682024762768877150633290165380607179214776013278227468076874843313835683799553357386417290440753447424272706092950048262354917857017648359807070336793265899799754107139231751541383512625601830871304034275589136190663819994188910495780939774648170791062071708425284842377255355493781051946401357860003787254516821466596138502316690807213139924288901781203939958886565960907771798605507401266594452447328263538542568922248439561174115773056441672247758592386830582190256229468575342824707258526906258644939609315579559256730954341386818899139560615593880338307374233393275047795370468909962843441648581283500041770759902737465179988357264445831459040090690251895693632114559424961608934051203838729584110771943566553540664726978617249017911957189243428349662449280330570921389626430751256441611655178591382359506727337626222948453134326427318033801373543421948293045142864502140520011321233098054946491270465141829582916718519844163746707554086690509113140214480609200706979515136339063679045978573273222035333251559577318439251940341489552379705101757280914781859368988912080976923224457967971215911813574667535399340716956666963915611033492041094754068543561614994010475352965817979563563885265202788096888848121459981789645962249303076374045108581775271917725333062983126561034749338237759274958460945107777044189485036097263410464097543590825492258896477542859438074975777026610430564457419898827952403290378905541553416985993939594524174905406038198052791372043084129594340241995865588848106800296094148796923337339740317239326617503875253754163697833288638176790653559565192123378650356155908055382208498715136944451003312647360412715353672201551956242824126001104531402712529497275251339843344388133987743454839387111430431837934667157972970828792993087831143222920773932988443217983965663213498132916962820584932560340480019753500130855210050790702880679969347436771959017842800586505611071400321693167798950543815429706605813258580586208366049180013260826787088603645635866147133644254214725119721374033905832124230965840942284510310013928245996388753638154802163602494091404390827090806850536598254389461252775433723919605777534040169806820676857453548829803433452976957180836497419704656006314687461031699419535052210324767903166855399103097617471073197762030530403480080250688399221176893278447198567568944645138438332433730686755786356093395973050786031412225779282067075273146890477661592091030325146354058609269784622152706845431897433489766323176677676272789799009422273054510017369345469099913311731826169376984525670319580718182752645787133692605395129625763311477575132664597844362832947447798298314286414681882675992449450015760903980961065180736872227067896169062805252581620810156500114190507671399593249996938435911152614790425297733449110735543698197029480876108086439241235057412704103869573716325108061582603501461408522618628575541802827872654564541380461994643019281214630469767260279741476609442115345030949523394493555382506768306829178061707825073504759785039994904625917680251802824746882243108402334741963393675470944487158782282421671409084324939438372994579910127096953094932895253253122432431100077809451079201700600245231625420393794171926274856052327874203002562811400732605785484889501028420356983947203378939266481935230989452464820343515533255172243982960594849177006084906738392592481611873024763191975530444799270248361227381436614777011160054209259447175602090610628609361804124599953907858367926581370205726613192634789748942687906922600799301421207261665902523681602412461507445095419978837285578519279738755164886531328841439596535730932405453324360677745183656198601331511637902605862081890788242023822033115506055110064630034778113341346887404153527700433156783221805137846270674998113084930375924568537050252864106626281108630267768604680560695911198494316100665649663385523653337163014421314238135395943575571820417367353445083140487717197314631604644367760715714460617402805000279924222008897827764114878400519939599263936579918092986911007159584312742627511492740958006044551040978281851893237855820872652066408183868758687808978380851458566458388653674153346446836091972668794212918141084661481562790336251619072815388112412384016439518800889953372794007833324112557772694397066438998746263668972656368344098342438104402925306020067842774182342416974021010630197311877961825338847388119220962891504297730784455947471170983777528631676824861973873186411580378102095667894878359040280324736588582068004456778515899344231451637126573476476914021631523158624593176733569491312421701438297015390762455575661086846488955539983745140457234189791786762391950749675793139137853072607371536279500652938410216519337777632096501218437381136879590228900860525473418496526606101903184887419180449989564522064580286028277046381605114439206115906227935375222319180353388099985889791847565433947537373807768771208184617086090765817207824157782817513162883313935099447707033492445659718036672138747210763119459741065159306439013261886328175689244530980832774169623653774410439843085470487426347666588756445875736806376028526141730711200602509565642454557432032037518943210084881923595097244190911533269530931086303022831010273980170628337646182583098762917162443059680157115509502507468795462998789501613996352701550826016096570601574423105813259703049219371293043495971958665559900704772488224254587087438717392066001189159098587478375919679821205681144315486764632502938739985142313296548978669099699421276826317538038438693951551221234245028795666051898044987653242034001210528421740853168757879188288728036113303903017095775148197493647607707487520738239364266441507841492266356327052181944445277713269353914711677725855831808576103536263531505644077393214066450616559140919806993823887940552545055214178955969815115353874731207683237321857162150383726398635831255506698746384198600462460140106854780599015074207758129306365826686190309449140929509097167325903030939408685813354809756520676061393439137373213949295419085397781779619495625303718101708520382472787069077758318990184547198502965759607058309432407330577064507909770587130319482007268667632115852317429656519699775958471245354669351647802164140912681585169605331495724922242806574941997564806980567481845054798797382538243038113024100081976528676294550743857254899906504594388219672389831227417708688431977795166102053883271423781932598970228681651024122919763694312884090254501876671702974338398544267416269792100362041215799268568099899238873900472547546195061603734758822816816678156591485945404490262473313729500295312985759169047029310910634201247680199617774065572732739188195292123779142646837021274737327713387283831087476234643518968417081148375152371624716022640493796346246123089013113425636246575602055326010946514077238439063170108869256485891652712605611056574579093784619646867969196709767692715930965102788304415583463930164295841619055871556085942654289861410298084584493919793306771384049297323999338946587064958582832293704097172580199806825515213786369597657556276121345909108110007666290984625624581015055043038015740776569264575574958561324292202421982458354419137490845414967222242748922361525830022836891262452875387255406030116452332782393879728845170524352780415450729104980031028854391367173028583734145637620770248620535423399750959106842480709219804254742206416373956484995800484056844677140618099451927190919741218622457756162084661857366476275161472377920123345560480356263626731383884844310988122146867852716497736497182149616877047654012041969710375302025022361688016053467172728680759182194954737519873306575971080791178802084979090141052036701749716787882967352978755210592684492173507922975036558791674324872834297924893361774029180891480634066733218217186947599649148266054261723483813353784268523357277243405863883436999318460031904822954925254247134661619075698014444470561377703565036101716518256561200555930297817190508846557531503611578065885838517478922436269042318088028408005004322348702093252222877081277372663274306503966771910681899876304214019893444144487420931553024210406765902081948544729074318544914763927036705638878441661986853543058387089428625230185148340948081900579035772535644374124130382167815311494975678892533818728739901601904906147875863589116515770523450567327576304409418031465272741314772514065327802348739935221817879759301494450650433330008720241433440186247923477792430479993299247185217425703771283323827084367423387776148517660147736773370547210773777323787382841583345720695511712303826719518170067036461864801219684832557024379685753170024444894382061607945959749999275768107903564013150853880052754993470542967522424821816897790336522913543170168137015467552515405299807603124835262309180202626645161103503557034903028449108368384288860527737236229633823657029021931761027466256918570942163793903507649288766224171405976137707064904362289208908865760358414014283012608235431945605807147631773396393359977889239132627907506909693590259072891251233204121736580776646557384938463112510659980490137265287249347059979311881431501513590018291418456503821955409966880881120752295974981858098689581521149526793546149068891505885031324167355610686486491185905014160518832639362597866521543352418256545370606274478553115833391557168230720547908659245498541521036767609113426803903327030850452690582386304964030289694694189668423535245975410087906518940470893389646018558160965110446055163722395831329396432577419619243524464963697679417730742965954469189372987411892006069428598477063041755373813899214351840964109348372472722604230601788858305148557926011835892868603615373930718865118552190783556360884813317382024160093820332310108544116322710581997869646194084399065363029932663511208405397538119104144707667093726256064701895786993882823449637877263656001590689256266596173480940035084407487696442459652541975445670816907426131243561259926583811711785857209205105432636868182921002871921403351295400732530780416997526222166020160044492281026201449147759805262443278503459630885908972487634935425292288882358183476400746117940186480647285992478982881284473850892948554592466747744365477945349681797323309566343501868945881998339041028604584996831206215177901439999249935184153556542240215912874705875040338249136039139800884351332749669851945982156636476940784145172253909093106580227608442657031105277410683861344670701465468639802916309758570116993606868075394902113689159422897174640875632949032413355388844245543574261974763290974518376364330886128020732472241371487683990207503650711283369932654997443949887206660347667428060770415629115735153025870969195281873869316429989447428278458851549165846697581318651048816078916556825573233155208544427852312714888193953598076014537600444081864678338570272751201433549643769307076382919271324758171747063222783310604665546228369593678886203900555817897339663438133140100847137406663124978427359532726818464263482803624973309372599675549897446389299129752714332905834110625886306989274713167862492449097729932767925550233729360177750141798202576220168109371642953614751400774692133218755103401020504240230791318960253305827776237311922449894238554202706873304733400477263714512503975958178469421677080360954064394788342788104019280860744689765235532410028364740615217655769541188778741250278997670108648244975331941146212299438401981614893016029694288138374433798418090053934003827432654685732587038691958789065996808774892563138129493231960295771591306713134328239381856244314134626243995570441925686396781407675185449726663382898436533368817715012055442615220647271577289772273177885585199555095465907945435052590313967396498779021557449340247915683114927046742578208409042902603354804483825019741957202610206955160523080972851375163299173051235516504523511471428034855326705105644611090346969630050878758096146661783793451166010967322520634559370552377381534554314380049422205515571573686056502958516931794433109261182471893283113066554600726758033359069608699362002264163928137159548200435123942087912364511067286223965193704134157709213609579060113233763011324276112909552376047612056819792688148827212165104610128845581415881451883735789818936294610637146226419002710694878142392590461832809194676488953833046970965847886138355500836147373865644745354676849292489334336138464517431442968879170797974529710180506452979597908942605317976119739437724154789684144283490989114993582186492480238980664462105884816159409055887667187458123515646699272939237292578409207786979600202051620584775700202232261800137889059402471729215811838117393526101516421282136765836043795017066883934217084731776351126212671449226191904293085176608986573614713765304565255604758941011756288572557613613547404558818464124663047704588554097681201663874659810687684600937119886509155079035212732013687203468688219587478799764513666473055747904265888223143848787488108292581992969577534260099219850896926334238133833864121671292039324105106144639834646469610092301794373610008191903348656594143301834489707279800814898116578825991807534138378813594625364338105066918352226059783399360272378725042124203103357364656266843545251720674823166935229251584435483914804990079640067312971859188718128422577226375137623838130802039460283505252877578311532693328801916520474248323867664239724597771507983156967755664681524323639049963330319218769152809507292647414331423563813461509382581275312030126560925102018694792152538385254990351010448185224824843856227039633497788216775250071528418117191748282296740059412785677346454716309819003772341453306083584347733250649081244190909430921364105381469057037086548206923676730885867540473094882460157876734289051498977146640987638405272500282272905988321006676512107569072527177136910341464671878787307584921420742741219867329235145354274787369203319469809743100658003152868979179018502254758245053229717253759315208316838489247088360124774989876853383516310695134255028267218654080415342514861418177617986226632265228765593337258810105534228739764876725399733992037574420078610745996303739827038555351971729818016059167044816367156871968482592597540072617892905400682491958579613896692749408477214686391743000434414839305783460244068483905470790906211723046533649764938162298808132451872397272508828318993016751624763908308333012763333572482062498015203325668556712065539908776044176501979593153616693626346292055444770558353344422319872079127405462320611494752092693881111658951078362339202145239241922601320645406965320972232090944692321245917638948061147509382343160704608732821357478152271081204600568542260665402026592765275045771257138901993562974607003241504597613808864576516855669617379873883552420888788426267390924304639831143586022288473624318663372052451962614461181101371610429474986616120531945520728725307087780405961081293374132489668101802050379043408927336125236730356765072307881694538517383869334219166133290317961733625431588986340044992602810614093649302801315845789616155563158987026423400470043700427586817669239146055365358722579333603043315677282208358699231688216156940236553053888967953911415473474704717926558351182302597455761475241346715831780992237417880785220164595891277279349717763632936689687282664479719967412424192932436206342146632258190299837748490312062713025112095548540108817576204340255164435091171072610719630852611580748837086761301430594920918671738243858501246080120066874970904597839037914223484511412080408961149311040497190067384486816344519620093714615097974429038484847279920484578086571650045370855418721179269964370423956375228444443413672434750886336760844825210256213905598764161061233144845299193375614960381468520934668115240840946398467417013540268501556160570026819890271716135544523431762840298788724870994793780494336220259527374067423274736851641897284295021561866780836797648653430357492370923920742663928504728383076584673089582685087101618358793935220276153098413045161902048081306811374176985304091354888091454548093505107037616522339022470427023121198558046254251786288980944812209890796245712254406472610304251813163915918337252582611910931844144261667769875203191630420153753208106821773119794435038326883434311073558528642661295482326562562656402405770310114839059775175421781174125017997585696153717498737949081618549504932943448647982834309207124505471567089110057469176449241843669327475778562854761621962775355468537496893628438246226050176682277241403362965365647670260372312286826199730716222082022982667129109117351185614310973355576317782107188868867154781639926632485651031373859732101969193862648616000530835351510737776784730805471692910645927945633430659169240592102457669150238615952251886007363846345135818449679898274603924195074156513362267800239958967622094416568508265591790214855712645724734044825123806600538315298393849610421523013116217335594558729921242230861723557529196878968068633035133373875241113814534977406636766603720448631708589465746685169484735746138469537021695833387562966564222993159764025288019394876793197814201324163081048269473416938119020494562150234724057968381678213190961704615440640588601829228799384105640859893400701060177045230881193329630800045754218470611366257527679288694929574867905084329835567123378914193341355095252356106954026654999523112254548125829282698713980926868584480540872975895047232996463239322065072232240252531602469741747955583628685419068766242828685981627889283435907000270639127240747250637137522644117193719363444439004388729222241741198217103360589336899798486985402646904709409464185425435896393299659401179074638412031786795140968301606610386438551352180687855749183684672810895261836857230155956007756784293582368975531646963831808239178890339137499472962892480123016518725730158692322585200261969335676961599654188774642731939042011284916900236414427041271211903612360311330717784257718031646529950412456101351278242660815735202053504424124243512311683395844613499021481707469424679387918744940573999431417135658060262264203262521627954920760825970896514782037595935929915128585766676428548156332169852045296372200237515021541296405181219030261218672386474594330791494996267603483135554516146275902449646566490545469954368218073323303173399660014484345337785699777767739450444795428093697552079626329014904967834698360760326012519048795190284520767431907961514154177889228732683696202348468939220528816577876433793173375237075664926775135351786383622663882481525329189014115515715876408962599015363926082893243354066209704649079232530813026895942767307278713651368822275023230076264170751468277086810818617552140031215365107024017887952923470095294511406628890195904167941491092458799051353341047193015471846513779419855874496054621845754102869123010033561298451619920675799807114851851498377635238542487482345198664822704801931143991622618392775399364109029433392584475513104170119891319918127122309256152017100684995861491706845792440161524029886203128997685412953012060324342963308412404986542792579015269320520985867015284774541324452278891037582403386529531399100584807066888915731821794892852171524219307080993385720829253051205261599582716978981443880853673669096562485280844513507249046603727978316747414432751874785159186993995604821913729704724030610205602933614388144836104409565697848088033888998628645745763514828859926941161887414121747849172353906928523015740950634899632521701939252027275105731011607085390774886961192894569189750344481429075623195013732516759982930578029682806863086714914379023467362466358934042500926644750214875805977409993395119972477410729593769221762777865590625738756333545970159134933838142531588060908803006707522548877904106270387032342246094133114086581325283251477878937102507381932468024781347974320243174896886162728238954752307303048312138623122246812135761820597981749349138630386064959651855340672500122164146813985896339410441197067723194829753270744119860027967634009192421667866956798643122793514137590335872187777684395450158733248046613561583868804970182756399425049738655493103917586153028629789874007002428171971411797809363991818881331566557426067158303371188473345465317790171754370365921051111895449328232628241218177148649078927900075170549077053083796542303315146916449331360619596149292169880949914350579200378721383294530386105917019527858135304987088860451766484216503539736400244480110566482138731158082789739979875610518622010052549117436436338051291995530279235721555317543281375056715109078259524193945090410779674082921063142916617122321941987734932437092255435826985503522553095834098991675794457013744718119801806078238539956586487540127990626601238973305422259617335073126903555133090917931132010316373747961808057900771187964995321370892884185782062327214333456765082790091325567494310875411886780512856523754536423908722302939580260946474386042389872436400983285847401698299502828080139348057030182344748078342617393298683069353216656856810581093264322262249007933699263619368479053036397981407179699505444502798568416462894469461228004475440887319648517596963781267339842066787044257549348174319157395775313402406921366150799743847874189282685880405730536852685584863799362445514951751531042759968067328573190141750323042419565787769617109347760157316534362155672512814988875070025631810725482917971679101374208893299365081127718972134390445798168321653796489357050624764520189984972667477092201035769471978009171973872262284902182205967633118135112401627195337936873176254875359687826654188292113072174294873750916904618013846348262743828029988494339449488514872970687232926301747984086113970100211490518149050719528042717656912741649372426634722603773314507153572881624695077730603303763996188795131030392993533763969126205005796414092268429082514215982243164962555026490005310735823518199195098919464015462724904180723738404141908178338479778354325063228345318631604837728804221164016310707543185267691033982186856310958345669306743041468679930298373393265815894146167563501539614814649792023699531020415929204115018729016387931194849997425804988843075950488986647517119742967644022269213884079022872800578258987175409761604890858125651321040893215808000956237106217969107576906637308465250768119616696209055166262510165506005589931259741103033824304038779228140365924755679394406692925370025391704530177398645879851306067194098110031028688374674220069472058603205766360391190691755821675664871183152812851500218688667087607296739757753515510033347496361464859563548133568691143301588012941285021038282001301227284698231561267334619843663723238021717261653121221212391581000130506268024833260271904072068237747862140638681290522969682897789931167218643176530732859243646400849131237144147580815380916160175401230290232485405081794057148910474297594565407561769939366204370283870840502363030653797569341732135251198211446488854185460235250281739653035448437097582434602737834885629186910738347762358976951118245817650979357528626717208191897448531643925619526733906828697685686191327982641217580904874791694824703374662435103303070995376029676307985261449823236326271864559060650628343679011753921621254674195923659140981838410935049049277288054613021638148005556857223325592140335393736926891352837184476508780724825497162421644385193573324403288031485827311510014004516369619440956918330341436027517074610414673435195108713612074132651311172345166533269751069326197764226498222165693024761222569550589155034105824942103526059495412122613042260977669251005628170445181698001199983564173888623644938569632416874704484989565950791047814379659453940233181194714632913499412746004624673650420998549624706536927753695547457293158734156575599212002384708804129955571455305405048147575116069316379110594832732490178035541693227540918015205301408755056409688054733686010493960564263910542886297320674772425190399915081247021799522664680739314596455246459575767537592915815428842230143199269366162352955958954680291737380267829197396587063625317301718039859748220639296849591680408814085320332549841985695987038798871497394752393687934194426355863207494523694581335693936459131634900955062111693695997823906226091115877142395502306013023604619485870403150207705385778824746041303282544808682355689085559351726959270979883607225852161314279823308590682617597521107441958440875114794523572906953336218225195460177662331818107199166128398962382325832683077782364116336072142966407847214710182572254112754129997847010651362719040084212881651789959714989569952164381518817945454484215527271576205504491384196793315591563472684259400800537244881243263243981313598416143010219904452993684568366868448020370171120657715033695478586036492099183041021764784171005072520171772820926599424885432927015170119079802058862904142224597851008741128424461639376885972783514561794916655527958168531812922998631550061235099986555140763658126102931158696054561348604147017254228412613948565363088501894952334692909930022631324141263644366258536818752994164221099803312399514705311179712932718046545444407658583349969838225809775148614970669271505864708277458545219492068925039360505800310099496209591737911701646758645316692900709282689415869536647408298540801354627728233767118410358711461616703608170851280996472076791490930535872869441281703890488688080927216865241987079611332364743864794233928146631986276034169946501946222357552627807527758102104467943128635967465742838130900740155936262914571161687727170988368279471641689410983104070491802385385559071954834603480852926485365861823386817078772519056095926652827809746761700279828566547613798234761220878519404189644949712284874746908582761272147999087201409553879674921513201614655378913258261021662627333588978720247383994375051854671625693352004197533399010726342744874662733959910880936439320450692901532083861122077218898177011959026819072439829912145795524546885386657232011159312875009527879777055223016745148552482303910727753314225986018743273324326482158867318822118881652405099687216222301041040863827914361420301595436896263770577346878797139991739262861630395894971605078207026981780601047524526218506454779255135642469158032616269436337514930720613226443232589864077315430640386535745152166425841946039723809357935057105087138982687313534672357790981678252365039346643841037539466306862154093740254702838362180057338741440364706654988109378335625616254426726172204555822439734781163269590917639646895293415077705479417424189031587707337818758240073280968808744594866439194525856567518004560944978685598710761478417853974107973823868866879916519636091670731657674876056840275525049858946989798509383971664504098286631794459830491642912062937434164051138530015302284254218615695602024865001352189543713641652267615535838680232950154173377485587691351252816999360901538493403523476246324501800589762191827254942217157947286999213158752629443683743650127645191602835415588985373221137569683845111239192098698330919561372824842181386218170648000426284204838288412517183525465082618089667432688743617236090119073158443799555799107187223974168324475572608153661532738569903609110348544315951815439309285821079020214210614763536798226034094616772065938919519195331756563196425562052289270109853560333237653144608092294464546147036823191172724977168472212531855345564187252402617149010869275229626378719242133451464036443181494792963918579064703244753008662856024704064464807129227345926877801133941810974340135303903849757509013518982032766572178118213784564553788083450038349168705416553132722666881635250887558611618001915076522436793946106903900764218991276153747929172877619831594476739617469202010117369029188056549520936637538446242381602466148179287831652742953658064820691476220471828101373016746750023601706289303755839299725767955935414647692637427359392452942795531253608403713214876359181952653640883416063329701906449972312735001566703788343474120643715515442565432266263530150608263679102193251902606630374395790573593535274280797875452189964496025105347256721334284626023058848090612506404102734032111430951334845466143058319030623968816599002731173433682434163932463094207529337804169858832026982437419736236503203312703609653809744184641777598415207852007334992155054359695508630428017512290896408404006325707797193956919661584796168532129366218715588062570739903683819830327275792233044635234349875114602743594608313780997169838087407449739881666460223316412744446666252126195034836882065344585181576054079566104404903889307610375051261246785036027873433723902317487520533214140633619163212836092071595972562829548068993777119642101044876050849372117442968375593403222936790614684587182739539249159821320291325125685291258203447924895698774332964018824263118505339937128081643467502993889666109974236327818475753754206590590774844663754606176224279281176398922269208400830220970931811385903508026456399971482586429367553976290846645662948723910068391474743160650450393093701083973845795948610334623379271484039414289629206711282205551496191318912879845177783054209509639550971064437027050225741566668976017164002479751915974313851369062188594386217270014919902521313231545553908380132390406500951959292378886047387162544455281952517969562958228868641645394048369767057241901358828122674216419957526827076606224602268651571198080946251711161246700674316899751527514538583270918660048927094537386111682392570985131775979517459588562298672579224314967960309482870020153729487512296939352167567297442289788119352777747131716093466475646877226819628983262554007780001764951149741492966124195980470270181455341221458401327925021437055113088819064964733656611440313170638859861595075558091658824859064217535987689106356056975182487151798116908521236069563399592325758674459357265327211332276765210600693187554319335176690199828780699333836036626336694970331493151076765050986367305337866773704746072543438748697188967716918835054403946221299796813271673361178282080477541950010364086915863776078075825245094587548589504550407375188707655958617769031975437130815661383801222056038551076907531903379338627320200698012343470776018672347004437214023144380029451856068241512604394309092676910452689899660903923775453484286879457383628535648790819333769343562274000981047323173794974165271954039897298085843650256501351197301225998933978165939464800604897867573561886673001903114994862258250359181367150845888148008243989354567778352493729659912290312043635121254681466201248615350859440083587245668830933696457909078140625841197513983333257388651381100890096200230832103913623937019611615017405709566535285067695004189590749521483934878175345138809578798341169179805628976391564351890385070507736541435808631674179502251914970386357622240089976600281975980923825944690751058492229310168355899425399801858084748198170484627350455037033351874250859060645324587377441094029451143904391652183810520901300517512329725780693613446734892655218370185417033439693874133135475046980274177009361866378385813299505627490338357018019099306543876256914849795572711853491219307771668218768584040575038567425175069533141263268961071279362597060089923844386641255493501407998844619699380308497691097400851962542830286280503019995845083191861366442287165749501360871094816303700029501037192620009525674611426127518076592610233802846216501090009332294723830748021381097001574788747155548552068446140365194324724110536755761485658000734123370857493838620419962706534006401256034751255051200515393988562963896543961441914477331340315621186868664724921397412149266797220167299510677955571558957631022777926784745657472126320259570300051538509855077154983666165133654678311441551158461305280389113718917375479145197065361815929455990700397748946958428504841699435287597544456816530285614363740586383358004538855372921476841313349252410114998443485438374990742857852103383450225757783678506038744027810006172332899088243992418637770499758619717491413092401676717583085251003422970846549178831876209152239204310460177483445179016069468982726735157489600209504228210374261495178443842760815604516899533292950157508411629740229515504988790403507986021209705070109778178465944863136899157333216380938994660692453004941469640370074407228572761280810905517223701832493369833181824262534590687248980740967298675746167649276533693178769464202651436703769054973869249163557854459234131811280813514809263507261657331149586859060766479948486807900506569640477595158004925423397902553310840439799860284735838550927563527714471539984029175840703987565986074156003750010434073729679858572852907758314224164958551841205177875446468830559715787975404862773757786410250851564540035902521749652037794804593437847257340409996818276778245748155886233286190484286935747104601468671087235479725974573163260023290434845840457989185590407770416326538354028719897449909340859082924796678123724844667781553412219808560722982723887764272067787929611975037008768647918530574367772364627102235388296132466627879635760841957775310075677141587008596046129717259175107710520751018171188878637622086067682057199959953244316463948822597663993845608438405944984152720383081368340567671084933827234490555112503175723687308563930615431498564852514368686149061507322840548261482230592391751579327863320459930647575099175519740658066314536843325537694187390663096340660544283229560884736720119428616096179142199253286024431666826636653007112443865220210201428470882800948491100858977012817252155897719883991551864087833871129620201817568584835101910814349845996046941530937594259790817241028280193702824327160593223733573985530119347200284397446350822170573312003867100114718494479560743912327052282651134674565899303247892077697362559561285116663304703262724303970527028088410408541895290257909781856441121655531024870615656618635429383748996269519134262803608758253754465304971992511565982325191080208118571985092662084740756413580656595182628789494100919821676769309158858072193666270434063186671012288072052548119418784072288787634967385339389257017178815963650927222318088791861027314378509027208278122011708417677754794724337019745819153582659195236952059020714919998594762599162947448071966505491949855930492312037443995021068179834496036850102161395215464394655876164421539179936272868937359593507303719022423813752680937529033997110692904930727443641933158731515211275012573855083334724300211392486946553051738232741616865999287363010991035750780496850093188975024602280823315017273501711038822851139624411016924415381059470101142082988982655424163233516161811103812015852667066628194226408815072365216942174455645453782503611348898511644308799329322914953382728992804879739886629316535336836685286762963389005752150822545312893592651666294814285524283769239290947833136823087274068636542389965989641303815757722880786940303313835219745983302276522236484584906742925080033570342138268781035595328765140081118067720604844225974152362408807098486259535451602128357617084469383871361327582226114919845356690065413723817388048337205397308235577088865045817098846090932415417613211559549011335750238750633448630093547768551159647517138945068827749116172007789541419176837098379782861439551369575452316433991888143084616452764835707723728426714736868422948935154939389750052088310101253560503648432690816575807903731953967427231730018257441462924110273546160767633024860067820571731643605331720138913265179820534175456658017793438123790793247334112090072724483462583378005733062640971585481939904108512319305477985532901017801915396165362174171001543214368608896489728878802264649278268738274183300134404062983015748677478827089484183480378418263054180170332256515746937941486958254573700456141977428471554016023068575689832562983610364880382826194933985894909200319161665821848972407895795071626315734190694076935823450489444384584133473696065051931197317879350376087779523914037371963248732122645075069122753299384698371282172177755070486455142567293724173003309192559750592721904100962415059814764372886984412961596597281085151263587021187840017812633600061275588443885288807957541915811864285676990588609867175538208695506973982074931700507637733371461334649015665645643118027038018816138213860672064037368571353888712754208233033499271173026462590083904926814739096582645347041102938322845360124289738264784132430253738909965002042934971877946345940522103731938045542743994761268726779793987797794683875674076036868150155750360986079378774181014899609556447891933006403256557152303047656380481773984713643799636412684158150025004576593453974091616206576444370436945454791152865467230496872091817841207028166391630649114257359334054295320544804300385323048014990520947579324419385248038573619332513066880227012302640883267645125580516938465897115336076304562996939663600938067146507611236879458702084181887762603667645353328380694624808266385635245188947544857775091900157679582408251134604701746980012082179620518060716840217860637129563428879006004280393413330241102382061237291762875251257051310791628738220850218646166679043002160385274117161651292011165288093299598639683230640645591972705670308729316543821568188593933726794025659194984742919119780992737468356969496022442962943050472334202977416432923515383263743979569885503401546977857383169939775545319870702479069446789243936240723604810254919330545873207956164658305290852786798811419522960691537568443404595980691593091496679156148642379121824122868212887242729014216003970490046600518344202023521180103892069639116698078869961429076139774384097066174318665477558202048089392229652702569464915944905528622153284085105257442343245218292944457652458921632499828123454526625440752965998236314929046505073812546419348405275500696073525842899970980244303180763133465115561898341907018223195191487266674431562990070397059192173678858641494578831975439983456366726650520683801147331945491375651215973362773888897793391610047981747986994061992252075574503167920104280890113934570695423774867453828405483069269399141893740550593559258695007267476423229549294205622020115996214592573197372917500456979388374925743542924479291886208736656941484266334590285284063321994360424841770310385742239295910191263683547593057292926036306437501147557211633105498787649696879058237434476832574093834037270634118455346652287165225551371861587375636310861052058970483854314703490787347249401841465834195207559091074152908676211376545110238085989296244335373656257388925532247594785001086793656019728100444446042077319158389004745180559164471601799647095714308334938358682369554833944523424835288177779354428372379058710541836310695723255804458244686516993704915651909985960924483521841268285747874103349610411252422450756261556449289287620616380560331509480627523289976800166923955730338108586905739694119520098564568514020639210745421124069252845826852887262040764720307185284000163923717418682539972873957011080637975547361349316094884632250589644445516432076464090762765116343046277988114508102201991052113941610700493686315953794364464600272789600116243177867618460080561744507627774517341593264576582606581017181617213853859741569907295774196800683943111322489592333264037219929420802572341908733315560165559944436521554227220087973424038429233400207335454839293864366670381415389302712656226607804934790660680238310170830567808298659596571314665866633000298313392762321455222757875814562091821483973748285744119411558526117060419422404878403831569109252752745992087718791109412167607807138058539480589368980862511194215935204195113351367912672673801253564695443242252035983966761957027119093188366141745712611400928675956367691729288546281443890177238028552202280091583845087851720138817711669605342376001782735480612683977531213602388116488027129553217557723375452548991096494793262437810008552554462087926563984753629996045952083357227474608178695781513829969921649562685056375454924747060162616008318530286352020347884137772114046429755525775147034128268354111506352579372332347193459730596918286458685336626771370824123309129244378295182663837489831024759085035506900565797326661683253627465959496242928307367126835737170066343399438921214938045822443571246904981562011976132032919584550046545994089649593575020381692116905471896005784901113696017450670455800553712552811770726784993162189133659647119115687228720981845416790309993595661929355099649692552337741377015490902552444385510444163797664815542345484041976354749188056759653764285594848930494697887904900095274149198407921869675988210230203680353519520411946350500429970259383033196176031535638734777668773138333900298459775439089654546936738473293890747634956355963850871719887420334055985826721289203144037762795705754081312912010101654929600829129378395793530275090708418327418327152536988759168154567665253364457237018806579342652594230383260782452418041237891597304741050060932693116023786795365818546337474335158983892130383480441810481373366962580920839115762118912826305771223171486935245884090432800785504525027496486697328878342627127540988641630185702625909379374648723118322063490390107895833317973925126863966062482563685066115376155115083945869226470534890445733906908072445459928129663978844009849994524500672010203904718630849613811496957343729820577391566835508098126639684787008507767825133485914285869883775914378908670481647303782941504493318530210649334781776801623222734898228671442057523211112966288660354335456483955274074101316183018903236302318809651039254496978118437870156739483561588174753454320344651329334311754621347199557376749216606037936291769308689148433760092308831049177118061770204038245873276683058580559006615467367579838917799824408551345971089521141191861830264628074145444438490292649372193998109066674505626285084228083297441418716397242065944719508295699697231957326640103499790402216142851637148970995214762210893021759444977876004833728540838558341951356953038493732722897539693980309572945380145870291481887475298151281887559247761818270618924569294058589016584734859226500300083746268644242834760779097763597040389413900044223420396409009137687988169546205278560316257290531419727047021563403698241100498350303767290809750398993696651684769847459056812578387245383438849301934880463455396554149412944274455400435805271263548704458030771465706219746586343097757878621485851552579793295016656679500173866663713361236539604787290809998290952610447267956547674734492303550922197799518402860537478623458919366309214335768185869233303805451710182942801109154432095403768357345588432582397762708736434560766013358357020052946436400103316694189882747590758961327152034648669438364967975357145026026687013714936022516694685063437280311567079526129500836404740026141671806761892233065182843119146646042920710434781995527550609266378856729990746233076322246016706397753005262263152099988750338901356667317663287889088592923609556098740706511100056549417804143682117754284792957955917237789927834208360145381022315186861287183604796400677026882278840574501388698506919102182078627592174028244859423654611024623003669950595338182568972004056920930172572669695375965193756152137375243059111843699009707342402392859884138902784793653586979707154151076137908816407897151359927375545426292170343994610967410373631405918620719880632008337351573885562493981044915735216927681234774261909709063077655125348108666077198736768908274114776230479746347161235687388683038282441418427919675466670470296806012341048585002423435228408664585509297062867384090031436033309036301202542666627480434686934786180125039812249342846144116863403053396502772479402110950399134405299190202242988071674638833444180813829559799127810915149693078646391189461472360607131538108993040106393473513078026283833427133571197124548032859222673137025975245022136047161688852580138412734017685471021790286547605715251896442532461337719744546042823229634634800529728801061195036126427382917128790333790468239132094787283047190144979983416421334868638349599420252309003868755781335775696937718863595869594926613230125591820918115782985601727474502577957279295013823929974709440670701957148324392830160795335599592744091437409368765321088634390330841941301983838104308791505708233281495425885085442800124996150487528505211185743955937922736177584856352004553176951606305625765407278772296102662526816222671643843383991738966619527257022488325415455519478554869812716105412413083876052897777153877836356499779816141309692081768941081599394388466831694465779356454685723003406727310339973156363644865105877199875942788919387247435707173296094423500602067718311606005325894937532141552681459689996892517866400148268401983126850938054382229411685215141344444089126104263560910148925161043315378747753079192529777502877413474680506902449376802713037171456535492193601769894450696332368139269752820789161943538009691268393743862401238658503526755721400319338284471799613845428038191270548951206561113985902455518275210871364763370651507349921656215237809581312547009575193194757489438887976772144139638262916328400976243956658799914051671898558619766516390766238200729679042912275970366053755137136939322259092551986811463202736363128642421022908575392441803963477289288370601509771711340160333717903903905226677745886812061553397737533692402848531109133550023636322461641236210356611853950668100409672274759945545641897006584687131700504706947769969212718460799601624103551580565269166549524956306328337122349848617870602241637631634697571475972196963165300022650076038492548703186649617184194801809628189327226136862950233160167529062153594746635857446356807879005780006856429703176265216549991475466320193602291873070107298909517069130723564003379434337292687714046469755255979852214837534145504241450298543520168728360244878720424194912480393619639427966836926026769877551240018377462648854020872503894272775358596643026155241386311262117497090127245825524021449680717615063885563051586689312805787034241804387600599077149813584579318168359383231031205410179886027324203570123247425588825624516780495019122770307818764770612499377043100174902218599404488823753982782638548740275806592759353235348083777968333142215651903769383215186711819661724606197567314613695083179637973102895682830407467102570912565739799819129619650684816063011040426539984497643441238699879908778755643603383202165055971262698842011366757220492256787763662730325487597315067452755775205855940109696179912877543645567632957277576615802327255466730228360627797177672577285917244005175975524513642119739238358188040099715057421542802945957672043425130333143998350888899171149644161493292854365530891707899288012870761480953797704727114390980975074893551832252615139396780961702892211012251462734357446596693224857894664366020367853907038948262020713524042661799267492249863161094714632375380236709593873977912862005030491134204410726765495546417052351779932338867457671794259241704338483155323981589514910884227640306122379181553837384667697678004542768342138699114950634500616908399233660094950820754590116964207132652963340289473510417714762117032028713789917207356599714081631722462058192399206869004815471252331575332238372479407404852040850965416388691981722495869982772884265737459875365718292496191058226714084283508742163519306835968356380458123667315509595482671780060400776742573571758264494720637445835619872830560331996895428376628252697326641745942710944174387246085865313240010285397699941176275498960838676641888790081361531357914804895965152195343511809236426528229708326018157573684685155827706719971199660987248692973523886918402703939620856414021342026781636756704413924461630484231835018920879357099998069625257397218399407155797564992750702642889927844704850857633607759799145311291348500876439078572645999529816088106238475925962783711253349936772504656097433729622430658527533490758754449612012498943602493252445997919062845475936021516995425650281781312023032623308892852835059645671586856376416063498520291094695604884019469618662500682558357456327188372587591852852345278787937799303340331140841845332107726662447721527684980328264966012723695977613688076381824846798325016944945179757339900294635384176203421338169580621168414498151678920323604088536881846706818464347265510176721145666242040414543076006095285430346872677607407150049352460481646213222673900174752974806722835125014942117314274622951526521361031618339599220801238896145101846612147704067042098323625935157398802503677404514855179913206928846219589155025780627359464762146929250951261504006105486220069133790527092576499182318938561688073574689850435305574394567619668499497497527102211069489496398836657699571663726895020240589304104006939982418653782712988039121899275122896651303714113270534863526912653734689209826372194225701193871724380199244769598306931613031485248379770532184239958563547300984587572758537826653830074283356973940819011005618772610957458609673892687269561539404703845137192178896710833021398757671660769815723685553578250865606270214839971690527314651409573731261038225402991419074808035168579936169813851130502983091809901966714747618996019201202244777418419125307858281113760675950205845520788288360570582703443781648530647487666360668050429187023245413044999034331095994015940057666468199422333650380026450915368925130326055994928230917732701608513427885923581186075995535747056332291592228002104702703063699599161544732788284172872100718677824874757190692666255653882923273650002189708741061311627233109354084455241420900548165636305529789621373192641014204487438268932039901817593629620905641500366582865240136604667675232817162176063994845598938973696039057189719783273327341589406661187580414913920798753611980238849682728564049445335539571870353053442419944440321283277964137632015028815359247012769356676873565599947863559920453525387266190508102963185231937017571145929250476285845284684538366606848005988640812779966663233883569667869161875498996104985627262588647976232249744174770370344948149910020619283713897240593668754771024232248998469492957252538501604398489222127864223031326123593705014960228588136138459845793096126149270176325988243568736951492777188124435214027633076459540947443311566513465222504587132788012090086600038115519138202080011492854040719385875829986182995767250493867993830942805227853054028598214967912793210544250487757439093614593135175222394117555590767939460977687374455683080092433167812990809054761078730577999239388553223236046966730394064619161329726488985699011063031748227440786490287555015783421193451578602492388202003465585293709497501771462325429164262656459516574573722658797285209731959075968078726184616486305813519688903124201814609555061486990265777684091123330077800057604813706727572560571735089040580476797323643243806713695969660377197796379915313803615278854319054905571834677885548046397099830795386299532470319338856195770303160021242947975137657252689751634354345223287569416826316248409648736684958766084858422202015070539665626304683980237000201520603882476418466721572597195573251303578464454186138727841454819819957317707437052149486852268470336873838066588360533305142576773662694093156055446514579989616669453130411594676957876236411312235265944952101465216414270377959036115027056626849559257968212193931396639696515301830828645792490240616824450448025534860260331093702502575604228529416905348887692681564019220875396264172963652268585429760552010967967106606450420412614072188408699998905053634876379353654611732584989796794325168399467152334940904065372188608328312110079088731746781743463440052627392019272960586120259259971154085642432116180587090778460726350337483883670895154774094449472097856925907975654728734778091305998786727411764264392838725365453696724125059840510016347116612431635353132262697333284337430043175947486029856617603965411135185242289778408932565343585197884052638725392846554769691187244313907987828260537782054075311059481385952934645526650938876144347801080461501859393170013173075925300474865177113303910685827632346162081544716369441939006886253430890392579640594729178547220629015436026174658152141049425988386183808984571332670369052216563708128636482974624803769928697793228115054729247141386877710466222480353828243145304921038883883708062962309435303966485645090842623175480223140555020591141838466277684519502347000746888447528278717331447228416577910486510372744351597830020394075022813278426000890611759504601400242982356200202774891169533349588155754137415491923326363946324991246975660820823550267605565941046900322163726930740044351890578144463482020803971106181056676326315452316515452654186081476379862228307351737494704869887075735700342346052649809077499108640239647351853160406165311703979713259506931719152322295297826795083598179105767359165588964887227054728086242338118423924198369443392218938624226971892859881081467699319791256932250259594206829858968389898855307177412863021773158992784772933979097844571151501286659745987212205849802928040609394377715241610529916227110892103508260755966111635971322855682251024140780724064314431450989155137964332347977196115964464585728916147947841686538942348959927867316998039392464005043594464343953772726646620857083804301973458133383167640850633514793704771108603591200824371851245988306651523385422875211727616334974328044554143887681152291333191306446054341251579072417649423720956966845025509162509994155308982082815169097313496044669044807517207638703341546089567193308762537860594603431375476187198648316303725862560213207493299202890106595366933480061020164770052479633649751418403922876363793428363946705626781592010251357942051775197258128965111729689305331051584796446850526037318716248385901923223201345887129414772970046783643050958615260037828134610527765462786100806329788705584693718908945775599635616298657973326475987283104819159164594311011799884098747589695466496124509749946542018438111308263552398100845306546381768796454798129853400424302543534843012663776280915909311530976424951416234322940028528162446783375405450195495963661510862323137030443244227401853576978102608750856775044546795964723218673283269162280961043104258667249059985874847013682278073205081297883771523465478541488051094927206092773128759183686909611893201076782256182693008436504723077442607172352480124019120712588824448140155182671850987716800892108369868691543252952826533110208107244305168243745277598211295503772545166437589582125799957778677266805724328763936559983769516954008497837078006560087804631582497489187724503541507608383928669284230162154691552304179409725399680943777667312785647324751109652446712448694236187635960290269127633798283765573998678270530343650436446707353192867891675876361913573742768917780880069113708125121294819998404819868681475253560720883517543952187567156928813579559838860367005047698137153064862606252174144618194493642629759047530211139415629746423129050579759823090918953005680101147314376742421379334769731072157896975026531207282676880160079506080916557824554810185118230235590228757223093989636742627203175478183581107213684370369339006780014568723780487873387471041404266511964303341012022077501558162396694704407522776700472971611978509437668882939001468624821845701482532399824304086376092448758092552089114989711850617116079719725912594258458845477516788301917638498579253484911403119252588509769945697982675752587594069475219982140223748082763236979838423433548689299217884166088778199732570977877765102967441160591080942139397218582088913744017180807427455580858407263461071183699310325613203798081370516895363442486912654918205625356286149799544946252977693946437290302547447189379609566272213080859367736545798439158426325348551083100256959313831604982173726818113366781459389335189998864709171075166669368702918137658750901746371394286432508822887781895542742338072738964983195868951339526065444184888448206569767487356524989414406722006669187592354681316949600633494342445149705147791852504150979005036783197633817989449257841062228351447464536505041160856891469778211259564077382496918663584244623639848357240756028095727602404575442479955827074128858565430965405385592643330461621873998894945807178169175038619312806745968628739753679314985533250135392061184326614352209038428568296024641841948520536129458125796077281563654382425955086745243915515146120247566464996232976697027308296881802074379868546924678593165807994884650677786538807269906851640060771460161406772402744068876692151503655416121077075024336769625244214724694141399297129947229818769120049408471556462204028784130173176636189907564445108636500360775752120791361823595166165219225898089110024505164737524396698178456974386683343706713682657933960931281795630888430078696809202264139396139764185530617057724015893683988778792955360466610033001215077696011310741414506932724015690056824748306243736192355287473372072122482755061732543276993613978143774672662414105988473994898549471909241226333854899746069813305457034935552029507094052253702038598328830993472171241494958053376917864873594381094169968043214109141712319179280880671173658273192516687550019164084894909642184908455248123996833042455116367235736300710309863968506975828637192382634675762851332069627056064045303193274843824059110411162999529453760667134776514331945456137548190734887236721308185138870115712555303230736775290883070234262767515131273913547994119791604535952761408417716305721147186334345930669450157172213996821157726249499129212245605850717007936732458515159574985104289841847744689002058339312500088407913785619478230902829965839501168914515299496728863891948974762377416568836849696474864942682129632534170776011635629970453676017665203107451212265518786495448157253019236531058623256367261524161383148073976136562049656455482095312653603376002623221150020654410454302833504061304389699636508500109555434289588521899404542659467854066159748365523835691133817256525638117468307430704409122588446840612313700297788885704046377383486741835298453173555629128219069006386002720248354552088872583240939510942138876261692839772906995984192234625614489176166941797815807649636527170133086340497849982157155468784462222380252526812102976848174498984611386550345825181512352332323667957696062834954551865066183126115960252347077126888148184896180388031656742665602369659250259077868773542803207177340800815575431062812359555332456320763402626251658367046471123820886064200046352702232460322384248928764317495082739141225569539332775856457495671880937063455540616268572865234975556473997923323662831995446799132472336435620832748427646512424609480863107773251036643870380641610021904088644223617066240533385210543276862378315521344921776304641880019694435358002056886395153086636517379814173806592308990564243706631540626458087704274389767017862743311436291251319846262511291054383296902509483595065988532217232054187770615319127903876311993022065947938704831069466305004709439158917893078848421152647802424080598418811221183246416655267098538250197090841645059438137731542074027146877712319748754300354686508273002693722742616522314171296284802217943387434783643062563632321184810671870056007693759348655885572350495625470098260817725880071846260653294198648891042261893981352411133738564189711498874027237628116370944746023568881900364080802438161019664677271304418447146479151335476413205230242018564998988797170431910148564785280970930327019192389102667414415763277947251323722095338828447710250901082495142853065234401500189426813128377288661676035855325625729046044321284201918302294011970042203649407369502527753819457376330043911582364484006001484993689003107129470792787911869399920252127623092944037330357104912297417762076575628052846356657230597759376759975982894723323525244015929530166970013719286279011102110762922429825979960625056810218968699074158073093598085609017599237853812620419420850375272127323680613023829916321948169553274379890935232078857304271295974235972550361444931272233002123226759689866233700974558754221916981749575604719951536715188577301110127382886479466153510585741363445301585711108684702888682025733144075042854570690835468470504728775439973829075131703493225155471722277477275306356034555962261149867677474067111871512775215051889192077311891534568521408647675020516302399223499735128122111590182780971122126086720157150952661770685446451989766102785067340083073722459223647678557039578047636995491144953112853122907232552720235263979261398158918721247813354187877281036222837502949437949897753572575329250035229355823525279996295556875278694928239455993294811790997198010841115454846107521317616773217059949193381694805988053873938644927359429380025632766029874407533410286341303492925564099676222801044019326801164505726779899884097710591549333311353636995494697218491289252258898826301726275106548847186223716699159279066095032196265955927762967804185215726644093717116901154155594425230119029269147943997986691649567729756642835093918009751330510615239277273048342448751460595557316884179040236977628126462527392081531213860325089770745877207129757342637869476334098208073451499927954634456017910435057325417775901285136145123046510062326356095255971711345471975995404935960353007892306945139544183095899258333222345709304128597447002803145769399696026105809020246126632517269563000723844535874300156310122580514598605606644966297142652127856214462351398994352072562251418781426921946984695798294055759202592224059719427155111257843558575796971583471516127011241914450221400759307079296260608986497008708551559229851110184007624438912172504323713407333144141898898516623820283544636711321710032477670851529644017012054217558886368568150923245470305284117038493320875279177461636144567445254722834779615402890532086799754843743601930079296209743234836736675562832568043156748749892166825819136195303487240418247932732365276625108104964498723215466700858558369210855756651799839306059932848825284525569602815544170576795097417718621476985468911506255910959764533629660381298002085583405554310121241655579872768571142316985153341219747221674925104550637202678378718106443566604259132521070827099753875342602702963411393841454784309026074140891399299529881744835475093727594322277029694004465485054623407175558558128758868974077182483096073908304279052669039585343911855277995875938500866001809086965828705261325950174989118494755690089014290115302408626532193597184113563353525791113215092513860198028426997626674417490170984528772471042290303747346693462052711915295451447887321549624471197794538641022027729947669808386136056224409963487271830838718030801976521740846719701809934570777436871583626032778730237113842206471770974916000520187860563023028358637564648248244012569369418173348414430474364970000865092210790120409495788837439035158786794367760855745023848858966695909364642940015541111328906536704891130705924983655819043740120015018719756466059942733893412538056165464592130433935636279165933722308596353170298317175210468266735744738882544989011421636393056456325647171116442359332589538129601648483525579457029916767712024806871162108839131391067716425311278495648555147432343256712787054954314533553300233598821101831808310863716125847605713857252285775888024796385817884038458278967198146481749392370278861278129441987736635832023035397715858450549636293319950845383291225218062425119579087402848595715929776934232411641297372379775267295889623124589627765895457493046335904504365039766176549371518551518229310522768804915466626675847897903317582632990279040241973268156723833572159394958086636469725630511775619158833265769914807983374685919979230442592002385215766564973159117183276055336494679093054654103408220669839949025050459901081364377827040793172831232280204661982979989293189233385610213546292544573729743108352499676045162127271521171476903000924683759583978383815566717328873863173880013606068204156153364667193790504970234838469775618433338979148764770229860239347202916814782566046056320253242913867333049863870487219372017466333865703503480260798253128984583770955312543230464942915768861310143728369806365838516460400305833737656461298811463176753884814622554380618017193844913266174433009822148786486607597549328998907218901735375133908212538222518180567818621509842185008010883886377849795508855995846541993530069892049682395238395399581175841055528647002800225080107400916186557019786793921305699754607455096679630049638064172071139523113106340145733145742405702550619398485028721282588969805531616234242360153457062065612961512788527227836619684406162505932788601710867812582363363695388510983859254912484811415285709504334598781437952068515866931679433383863704979778378718319387163419794379366911771934491820358878390499770126427919112297654912583025010024262604554803624281327509701833090953783775159411320528542224485865322346167339677475788369382941918009063274629429162134355348575221684994323753088748911567007191916745842621719774891559499496867896212858496124575108367458007349092151929114989564803510800545422887849641523871465706781049461085904039847179399833979175042726864137699018648932328646251257201094442104093960134884496493636894143380562009926603144147067747734552615879092363392336827154676791176359668434015193090038509581612717288180166038392526501206438644842914335631200414061024462672885081392589467900790249866984717836594831146141005217406737056741467210441012058595721351425704249819941129928054622738024040975652026154360936240678582043611610488996771375718402060389749629326387236957249446404558303787292079999447161552557353448786123573578964847291521948961280735049611750822344181408680759913945739189951619870520573393843764456630567781627518332769160686784663203449062217857334501567712649064285193769956157369884099682705304491163261976690725374372872612291870423107682021922266146087421679274751540770218218119132089162019939101511026015812495019367165018302443028286719620619616788973030836581143782678232288197329515121780521959274664603563300495934054688792458346463837174143831562215899050141412939482345619302102359437646454185322770331228343988026788750488163311764993715194148887292327958346225169541872284853419343275217108863300298613093918818475822934244917119263150867124541476668214016111328771555194037193148117831245304257362152933173943005083875631719063625782641951221291734245613775841735531080320718985074720129179329733512260947365764325953638133920504867937772479191128220892634661320730999432469488809074749481061142929372647977019269861215542881415361441740733791484886767912073195467380560443279233527721348876460265295575440617766105148642781156293223899033896390209677324962311099738860479894244530851901440272392801380642205319770439421194784084046466275713797724865262377804403664988648516651124205821191143035086472683567260416551637419723273991072834743197142182137436892357527654524736222227865121497999020128754638823938545835172256481457941014606772316578823193717642493721370895414489296372211009511844455945046476616407905092742014727041076544125740196341317673419073765941032239297234017765774082004985395482553567488726858923494713903043421830236831995463667775955412587539665806176662355801750229893290792841202507915392692101761633588109362417879476901852872213763195008248712871607838706423923609262177949833741917991221285859473947066708999193058785964754756904129236458245540629443601738153985257717720740951256535568841423645185354750762324475989372972882899464354819338963075850954004244198242965231104565365964638868827343803893122133560812480557586263757678790052034896522622797683362190635722297635845960303821224455626107761472463489540269422993382047018415050781861094423379780120977919168817625694168323003793362385255559701312219577826267273843913615626362390898111565804194068325680607848779831472865719509263114710646497141506907224128497566306380714086808322426631683041010960402912334030339741045308733234242309307212273585843315893841494411756245806675396780641682917090725860735424868558672764259866442541941851783504940109197075113296132555112335433834019147122029242025931882404902908674420420083815034883426185498406436358122560064800902021504724096095562369820824593158434413014995598304383118738361735763872902892956311386775250351074305432972309136773569838976050233498011509562181399212814724899056492746292298015973034795125364252338080768168243523302790011159684405325717083101390005305309100633029046973630834498828132558527243380648227177844633981025334079496283820688444733110144508403136075959454538092346090674044839339779696207484178759712741176491934039178476383155438988051187143619421029329621471816175840571989500043058941386142159141927559424577886375788684421979683520562014462473312979727482443872634628356452770851884741378177275693740868288582159420687681578865739369280623437865382071754756672229194251139599855889945956715812644710858295327249735058985791072605094959547785332214583744230491407350612364697100318246896779271227434233913308966639222133892294841082216865686738354438355100886995256953773877189309760759331499651196445995754422867029399952842413348818250123574685145932669593016767964560788591331495951947691215869740323953098051237793017621961650667459030904234734211034798083471300185231213178654725882733610418211721553882860789094470584594652735898417568219806415694688432797075404230152187771403233776483334266538073266758348951884910188387296115600294114093239026771266501212983772339294270352908064043842061392405283149683965069270989756592146354073091840907528924041516520383304166882847789129832020570344551809197696087175917286622837831533333393867963020786398048338124500742778059872719527838127458324793820131543386703863985085327446624676930606392182831604322250918065019436984356708760778465139848837083915749132728082568668488103526817659967264499420611001419107199030194390471233338133183304349263919463583585023808028275577067337847943807543654521046762744858281557247473625678979506026423619235480891839462287242971802366376813306474528379407171478232435480732675428558049361176862074461750319713226700987164998900993117205972236061435913734212106539423335360103390086456015312929175465300505903751381704443542673524180800792896337545371531818384417838333980533664750579768524494601324371435020294563975473056102767196734046122391189052148862434590374427309258690257106880489129471830478957037840637278667210232461040180318194285719799188527113923377366877563476330076488611173923270359717920941645559744001149335945980041504878473065950046582307560504220745354247108666754508158921743939051936704929338045049400796754833603653535540727179847130746735846504740199044044708249873885065741854212940883183755527983965647200977723864229960391336392089729875894595073489446651770177762291732122282485651817965886514799302325447401241551989660251269782625110081791336007756909451823383772084097645293481302671220222352311675833916294830508713029836070247792863818953052285471175999562356920945390685759657074422318736839561051910101354492991265393282162089631780534692286221082041717403957488015414536695517706916967011983195723196600511515116215090535676611962344687958034891883270672604607861481993472247584367232749368332132075118121166050673203316540129804115756973827706427251324170586955737504472152771788628387793071162276703341275717817125491138396349594595193150020750619075862448510267823939957458343081700316560011883400280692943597289346691686713588562289115971129125014385007921515633751140303407376147958583445922597271729138213648170109475889080518056535134311787041254483353079420032465383388105079181675800004963151395585427664216490509434877376141228442402981139349430609425218455085970069595850471977564603286890995127161420735844214967822043679989510452892758689021749360348833319413417933914312603109466303569629721700269664414322548979156878689735028163642797846891350233845422054287455822340635984235472147634751082053722999960080569042832879565416299047847661369853505028880218271147271072997764587371947516567742080315193996044307403175055315479938725732763075612363009454969590950356281046549524118809744197020712534119347836910682219990223452142426777699834603657416088473507865983119038202023077841831468657284570097530870334423542741286578895028169382698825486121978802286160972121163433170747535097772285384514108245260365235624069087115146813960096290592562326407372932264935851132105886857422860207001122439819050047330884055224512047061623626345173491328731751979280389623478783832405359006351196750277058058133063119328033342097915219300356541436420506262129878687665470631479806352444298655823230392052088051212463052914679927793192492667528668692449057094986053278727578502457316841191005856162860197012580275788512985248296836729899312765381232266245896013016402676067630566280875206469428235041471827653414520781531750410055417334409250441986724408242943219662167641683061986701221390807135337481257300590204446055968049158635038468287410827814508445697792535381453621069714070908335927995736414103370357478709699493994663511933896069164276663023766025711448724991003740030337740748035769826322378764097598014145527909805109792662766920033526656293887374118993696523557011252660905945619965893782518920074027900660522828043058964013734202624922686611572758203911976947182108849969593191454565649549002238366966868442542453548746401797938214439122676284451200967484568846875633296978103472276582001554602504189890509884801587620742476864333054091997124795590915793490781989536252957489919551497670865697352257371899700546233443894018618260072025156219852358351744738392805814216102035629919716468436110558412211553019842536695257373185955040485914696201642706662484051570852381639201549828203162486950909067393803319941389008814663865099529112199845367619553916688124934766092584918770419256913307412872950944512677302359791588931911399625594212070102951145395362214889919987120450183218672239244411804971958381117220653216111354126119646749470321405228272549836560377594222141692617877451669325998051742164615395156398678060014447426147677105722864431091479235645251098581653077614260171063055970697522786757040486921542934746866474697391278838076789832716345449602593068708476489464915520421883008930575088311666559420690107111010232032978536114250732321436206023535263389203584830694840314477612605754535322603049508964972205697691210764472198875503124705197678072530837553649372697374762821307664835848684892735962038150655986671859546546598199863080705880771417387886124541573521437290375832729150592245704626944668466567532033617783224521650197197002687307878289804898474832994214108715719003493092043622238814068345899253868199053220931783741141421520593740768464792651295173462287614779064795748421723774541683933693033202400885922695109533348268433243809357828814654151257204627730400158699136310035627205121679364475789375956449362600861352933634339624523167076051701511675098774233353206699054312812276440769482272551226908171012773762707773613906799476249685236445147625998181694501031935344484351008685342892616629772483032832362873259459812323436926106315002788123146468859184814015570605684244173171193060569329441743243548640777247485194191620834014903485717712261104807715368036036134905214010521372707992217554845706489227580304618179151106551845966135408716626638753657027678516293301688119060371224971674772524931293132863008974218122486829112636793837633161294780713304992398142748502069604117427748369239198191524545778926978826379749182498001025497797819666165056654144313757710452078176837637360326999763719817958466481601952439292300858602662592347977745205853502881528360837955228095906445603704098902686716707435433412210950650370344644542344093762995710286693722507175782572089496111301776340082466257499125857364308520858305612945489778364968105003147630381602742696494854627323826811447669383874756002642086197440710091726758195592518159866929746944878036206067615673131689569397036120502181178769759516118755265226214633419718339402519863731044930746068804927785413611233597744397356402678461201641058304122853980479552806820277571886148201720044846978213033957929092589151451843176894225019819514032964480987740727039311224929080271325920453248549754967787693528683004149084785877074307835174724377599099002679367072616302705373497909449238111174655462695972807943400404309456025783658474342386647387735332137670238849092957216742295236403794777700899102578224798556033978136711403953349210808344627057871869981978710234872052617908191539227469099700283014666831233493821323395671037249891189797162618494448716189176530817620600557365714370305968526856052127665154080175808724812832083234583924960719434781036751929556863747524397492725672948914402619858736445599848832252551922239325576957472692967457953296732551187797024554446257678701702014057049817887478610873670788924438916321428561548816733048572656898208532349012146703093555488659532052210801763029740288099949011382959044934133866142689533042704320697627512102842647186532650092731798364505607894587797105308465887490490849977768536841741250844625363442238834101089788461861041130646611513370002328598120819718675712491562618129313202989660677565992159745374022355378935271528712807100385931076635434737046043051577987636657216547600900861418925717418480279892413837013327231304510087043686264979494741770494236553566728023991774191910401512920850931034231119994575129501337576234029906134019197913316701541539992937757784461893768401708203467515630562782876896896268517210594940877871362334537503322404134144186627824390338748041525035810901101395960449758393445855106420916021097997630353393093081943983062674722874812760302806069540048032183139984229116706342785102922575585478824160265251455664420195207633195868898064971972870704505774378811387921806920930385420530228689227491469626709103495248082715950995755064549597496887248310378818333625050342515028182321859510800430654839935240456891524402398770548528222383170815888196115816465995242634409722886752603119203118558970672405272819132316456857871410445991485904236978239696135085527891839195183609349572571169607974296174701908992979590284493043023440222201293345096037419794275935949250053597997479207698502168288220083987104842879977654359858244292008813648488879322940998309493271694543770642316215015987653249804047989864274897273984932749328433683871464360296479026968405849749919412508562250729302873332695935970433375546803030211346083185870413748060790299021522405742366458885008775439800399099483409721703841873913821913664910892442866239957842931307183072211483328271752091272200752897425973432013925142823028021636371711098387217407363078510382091086735671639494295295084908218006252570587867763464633974826750293858003625824636658685895114431349186250580775575115599629286589292793034186792978859696924628998861461446951232790792352132156570827705760398378710051035873693841524407889972228683567198034099637054247229509745484995006173343079549246564653678796963876036497066579581214133060946232733352816448039575924319301487858146271399816832065676587249064601952854876137568204672843221748452644476456191541126104767894934770190154378849648522369733625486882709799177232424265336760597061700651788802127310470861925826505391346109377368457160886094933470719567848740661657410330153519365394713944250153418999945045750204493797011644509004931177400524382123822730291386353313808003995025110329909954725749096824718290490657911883215856827432072979013734942779950857510523864773187990067995807245894504584041835127278389604952839551112776772328037567185005759994986214513401648943407484820043147088990264358489957685048450040139211026508767233682762846029644201158723527680451527525086476950681100697382475611952946871872644114480865275607732028745034636159602406525936212496070073523535032524398472759753884326900342137723062921585940357542115288604107349226217062144000552751286110255436009203289239377049190700735526630094105660145862914385251171956538978922984348462235181847369391113998282923068216267481239738597140496952466454615673994783391291871836823757688205441951347066508647991022353735609787552908023114986951021503003713366344617550633598520855368004028510967731445668926234008039476007088554918921521577831409830721623964083493388988390249256748604762678901109302159793267478666481858540728834979677187825474209186899337002432329902890286010389063385573584368193090967326134525862065083424698680049213498262184673652224509448557553130773122562380821092224047803821594735517749807998610334436759776371806600518650377351650126351255532310378890440020152342349979624045403129740524373319609617449444927752847534299463788927938302610716459032865683707136862811492991868818346564790139563824677042781848069118225409565365429437436089721323255233866087770364536159928605801305370403069254571910436505594196264537833803395092074071119809214236857400005195849410172165477897243126077862125630219673546816486220068858150383770219584531453167266238675612765053199437186909059069021404837936451172506069942338368397701313966230522205949284571378098934400318561678441338474363403748768925018888363774613231283705070360993731376544697521430350240568416783900686636674834203882658590435542918186639211647907388367881770924014029344317779647806347938866678565272045151229521028088588937629155707837420201129227325899507954635859776686156251746282302409569784058858464626447389859049878479794346575892594277013628146089142747293590954788324287406499826042224694481016637207444780659842714857983843196884711851084234524752211026700521376007029467230076020767854533458142500971575746853995458071900352157753658292151646638299930579925488812071364753155257361270175829612259415946165065352775726662373824019870093658249989647997678424755854412853935660775188033286608300008015430277988336719834290571148550867489125783744741908549649883893791169349077134321956815939172179401279309691287081088057525878990259049805805405396476538473354965277063070641337468491866890765557937636054620425903457222893176102396788893570346093528371791341037037312540075337782140484851865477600598248936489713409855336634552241540964199387927571032247734408881997646839336731806903645289718790852452355403199320836170513434877242206258088314921270279820666839325251665173448349075511636079848823313699078425798779576879193836039794948016525869541203602531630506108252619262394777625610355729435181829339751618431787483292290547399866102954145794062977737013160138822683682816252831177806944870156566035381618760791076543465923209277262523403592340209660434888348505721684356248038787260582970374956510245161051340548684640304181812473801453532704524794345125634763260611744029557623157631211305009309633337478092738328863846084627395239253908748825978706477193525638232139444453354209170029146013804389574949151159286110639473945855367552911971348294419097977435877543452426956552728664832537948085226412623674376225701349392746543931618958624721262336681233566895873257389509532922680556734562365926859209414608856589465953971366780351434277129279712843111120972400580201116384563865993814291871038644155799764921154899041982404056984898295030615906860269742254243184138402195327674970141678496832721003294134010239760021850276831472185919662120888865457646367623250339052972397938022303211539842074299027171135442849101072216971593071910303607166852520764974301598419564370440934043757562016006107299111485438084662807236405532615726707592940883242234161451437891636183496819343321979867071524044728601165783055137043026759062893327777441212280746687413858998633176468542581009561405989264526473957549330596748398929617268967192491601060278260155124243333515444494081952616985812147679007028485769354134891490534429030628893290669471223820722242760279269910201472616270475975088774006478361123317102178981831036050144357256293406837213130923206670560899423161702934835047410740540277697732960620328853025470845248189336911665822066982615610665597613755409744460292504836153511787935069613701001308852608978327915629473665636506076547788336575605503169336402387497423223533548313724921559195984080551227281487667122304993319161436114543851808220213372105324651478886694409043135935753596016619723271831137361531408590610470920884440058965174851426310074649716463704926859848287009224121322871481532087849882148282121698127394811584668151610107183068901986023508237651436566691676888625577544701355526994872456500951890297768697147702260147888453437506211394850556973478339481299921761792073734200139125855772788138310246199042419012711888350813385566650735390172498162657336536706012379513899976637148923185983940675259431106847350855679726527127237597745313476114965627747635834956095153073772114750125849704169297112557119549360425829881247317933239761644736287006508860242509531165563479649730939889193491104849980212701156746994989832204484926635246570368341728579736670925042342811622002892918109325759956232041129622745101576492489001778320102241479808430243266604108227340207757100004335791262233970044383719692083724265674173763230540132682772251329384655947696917436152056111930896005804016026124849011801473751006615672514968361408006059831254596568972163405612823743106443530007881505313586580338196015864208128510074457522806839203674757044387809265422585458885289886790826947672360002342952770834535834337150521770832643678898083915452336945707117078442460647435407975873509283125557229178058052505601440404399402892305592787147375008218883914814651750566669924756713563698195662521898395806921498123396366840216021586868425067744341481219248555218241572439139466253921072774725721352429438203812250452322917766465282646073220395830758897080821663062692078394366471973452119311541073810747290334659239524607905366047850198861618621527247906545599664190062829095567330687616284726077553329134939518569655659708694173487432380154515429241993345449670918838216184648656442355375463978155076997187171865454628638866436467787122964574731967111736951559656856969477103370424399168908487587487836112055483109344867178128529062593174104432229540053106238026707721044022306360689047609819390971790764453500330061106222745946032958287710567262227855604258949978918806609916228482570859279166003499988602710890860513111598510212313750031041375887631860152290630352918169732430348415662116795112586335296677834330677754885676875320664105430203763845911986277671327854221642536816871452618821196713673509115682883254939163634188285103654223609778181333253847165366289347945452701806929566359118032888136115212151754903161892258772016676300738730912265122885175276226306564996461682885880185101379609850828889694865809849239753591832822223442327588915679197597388624770078945996763332033068100186240773517731386128623470565328286875634670903974294789327087847495206016820966026660284279070819013473206972814473098054085936397994164387839324082994937172219850026490522424546974117415305635123596047181904888236292526551344036008117423829511843055052320710330587722871871571062371763736134836610311088755757176413745482048901089489923878311050944212766024963983662308725520989143229260742960534697498187362593413023491473323681858277805775818938607500363563492163910702534869730600868138522962852535651210741689460173201447337140292748656845137593183237751248541418457602472981588166774776820772575265695560945929896412185601792695997264748888369317934778273108795147679583641821724272331670540073296828180783909083167673817557125523609958367326833537494628822052150278544804187914185838438433357549205449910427260483621047775305830892581080283888799110486680642369924859593948811219794605453168397244718838255900944778399901471066359871131312245416747890410394975401881566873311768221153520277169990324025248777680086540756851622708944274372631967132141759159127138196848591282008873816186277336597033630953586169306844660507452645141494825516006158614173681794209319324987118914465050520518671723998536672781062186206396053381756050115706809535197176972091684801262963748567187114508893781049315714798238072549374592029441020809983378490868437913875200107131459691755068257395386982594790687843911515871897634265691333982107930519327973411006893629909842008101521886165616838133138880321782991427015906146196460509065908662945583963057062480546725945617788995918752092482142199503113295808096410433365931713087962974353161896405246270794939231786388828626663123636768550699140820802949012915571651492400081523740316522809422193184536024264868025079386972133883698031361915228002776630333602765465447065053218948382196848389355924542906532559851890503691992791929862867224391330159579318098972256890624020874015530923186368332151230132939444362107231493904667015773958641633436096416496518097079947492456195809005978842358116410746760935463706271670199499850580596749057021477462085286849030393704535199545424762380166483319401460182928723165879892597335881195992544559917213464487617079621410476744546096307139173340143908574921799764101197642236349745844548630820540397591802350527809945683614209259740812739110039284099891603661968120418533609838903362573457517084276180960817063589002129202413495329678341910489889217233531196111079422449772218365257912467082013203938595671651389227662430372696974418503967243502652415634562109935539592073631218228051120905579197910743383295520313412751205010527226780661658757691937138354113625113852577422950538471439100745069096836417042613615684109339051385137764007256237136952362570040027144526753021884250015632432842950504740755711750770978461317771880169478673623420368691180315583160366851949804430846334862460832499664747352361549019066981041754020542825723801803680165965080670333086444452026787586032031437254027456041169727946611238984225016840604022785880666219727309415703061876881441493945953263982550705964381099911751336034623069131052652169464815317632789668335173929803995928596376132517356382133299858759102347959582553072187803672713393358973039957178833588618682967075349609964392887990850116065984643729505772600254347114708542386417815541945509516831449565143831644531253385103394411636553995006748283449458036500715385979432642710975628013850485291829543733361204687188368519174815873239612875410643152569900694031041566527722119698324617434493377148788040059891632246043588039864973680207417002846534765284175433055899108824976644194941338013660923871791364846850993602229008511787237447013706390978160695167841597252188933562325500779254829099373504604941260047263500304566645758128663323520219895225023006311391157252890954533435699092602193499097125249778012705452082271568767223344820158502602586313982229330696835054081884298487946767601118266731721008063129009115031920268080106904849298877117019534127629044062289196397905135563628647578326180830071764554739869146901110276227850325565651071196078929227316286326244253440085869408793316098969961682563717178966051977179948642885397166401871748161483097382103229888834259849660680258187101783700084570118285284226863380866796271954563920491888594339581809775808217760893014252096665866000185280702257249881021335231383116633618757515592908854111182791819672746747899425630897510312465230527293562221735338657769271500575801915468554779772728960439421746094030812142807996601318721709533083356308267764749274643216051750874852815288920417886612410086381329791328471322787361661672381679427874181988167746126044229027861875560403459732041869661653542683398833032513209395131965877985218897668514603128882337308715815616303568626972638253560781641443899961906060497242080987963555581784777398762801615785491933936857093070061077944966072999974289893353153880871147691394746096512535985204221631250407909018558278278134990330249055314285232358687581479745947002656881662237758846126327688473106387937736711353898378437976280349184107669366824966574957982970279434658676662794536057847274647339636374961939732628007435043481387059337891951636418977530258644112261152144296985336982572538798264337426508320805812877935722674645096202979409679093577502071450664522344497102449625155770282772910317588576237668755121352750353854984082501201740124485052360606693970530364517824265142019446055000155136518045737007215894705950205094859344843423232942007476244155851792569271666400305421609312237343115866239423772313989799778451055411227873483859366997957170676387467122437926480404284169196332891539957060386425604185798127880704901419382864617472941442504526868834454705279569358535748147509183334412530035407592699362929649195587875020714302937395072396939692727740276538651373836199967744644560562944969124780651468086873381108678392262564595189424674020628167176290744718780997901152675633463603325307197504662184155403045578382079826642564081190687042743632243681209755697046023116608886333392489443051933144714565387770388281305146670565256082059324244076125091627146529473716502731372694318734131484280060875856455659680481124165648812428423836065712869912514412993538934590967197322506842400307847019311354494718814967742382418636743129261612157964392127175041007086884331481826667903052354037466790165379421214498336596873128770529782254464905981765253487354950390131668232351515397267537240305490711344234695123055772471950257138546454253870884699701596193393924088796077621107232885754656780001701770666255372783915264007332511617361369688035533070214868707377356028133693553530179452124375952931237014862588408721054221482271772353277374922415515244309829699506145142186436639161299109057100506317544316622312134578791792550273442301158693666082114048604720889897967462101582910597835471998253724805687970853652258317884630551392812482214746366513796313070197722765621467954495745990214462925015492433743236906103406464976414705378147627026737366712245282117140175539397938632184410982269752364891825775597019544942305619788551432651224049354662745281363826820253481554676844788840602117371947799615241596228706987742539246948101799500981275101045731187036037636075520404884850275166612121493362949447456524169896900904720634834189370785455534191382814200687109065669313938548412721712979595108592278310317414253179601117256915871296688489392960891453431275413892332358322693691062215309235972854177012963756784597460801361130473767079710249635918750720979150908494235224910636144933768870606677978183634482196534118480715783394903146726606714456229646560656786590386464735289263072654329818102881699831818910175034567578248747279551723389288109652464553700122972655985592940925412597719376649077908733932291215562149149649020968039764257141709760813190272187295883022213984430405248118940493000180658852399249478664352804465295750275403922056102500498210374974164886236932051563573654513485180088518100128150472355891325286319439261761643000591479047996346877459266179517569782320975706650498653314452770315046240849918566865648147633893723582860311365707951327590244657633996115219994344155562202052248151850424094354868707719253723971621341221826277572111128826974509735876113144736087965149619227238056995697526759671275758482827924615612764696473014447506439699841971705289137991637697631158856168335499667077487624853883308291759642571602541896987827524336316975510263697956070680149378098363774133410989577784809642986739963255313301086915044753211196978838196415687137610876140372280076766229787689135375259602463318316199849959589558301022709959531093739065578614380852242079669726099242655935577708767860652363217020243723484588750595181919212940478004428625825925759098933905396614360379095977991013296587598489848556994532409736959057442033950421352206509608999585622785836580886247382745694883822984312345539158828686672326346114217531333065179105522351191314134024316954346655203376953986687580782947646288609558156207377567052487822775023509355541064824080637765210486596177066653807162992278495135039846639321181915117307715831880627867760487753994996529668538281195567398788662408482903982052396324136891971024426833398782214246381957268926825363531791120359807084596612440529236954504742844586395127482541500758743283286797950884200723691466441431064929535696310917804925099945709860524717895977159418060999273267057154706127718434552321166964642122349446253165278190498542641768403096776704510176984118658639501390608649884378332811071049806442198682785043523340217973534012393799665979279992378463185591930913224131574298939743834100522209412831214839621275342878275339487313017171150365482242945399904386236118960985669882915307920094067391584434659435787579874527715633741234876137867418342600883821565953424004567026023619932131706842067224682629810513216706762935970885579748534707607730792358884194079699373345609856734322271437680084139598702735744086506924804937691263240998832121457924441987517568791346771600325774883056895736178112005062895850162536590332836143455270386094815091017918855025527245960520520885284342604417105753072234731018871594954500084327563421006009837755478261168408286348904339188006797708142944897242423993741208060268688790672221378922309066603310836471781672167574522683699395896245380988997742446953168868966105081311330185153850313334180588150097755561034093919291969799043142140755791823970077877637833003690659454302060630509138800502634080562369071512771769481127785380847554382064242434836281932592858695687485652957707040758472502498204261423958222576115674611903335215865448409854243953657467356012007007071500609322951829064660822854498861243768129138333120099569692349107348701984551855250437024594969410423494007364999367860479966428104635260975870556257681648771369200826489652823673427656162015860486391297978991625101755261023828325772554804144957234818878328866686890755429441507942813748900251162904554215736859649820565617252315695672631083416330506633627579292398077787976764348359387191789213035534259735327967252023719224406312132332874111212936112854097272657177600270983874207657044584183362554622026653498403782158606032099466121472681469791322349829829587324771136446755402049533573657408678980477099713222720435730935144325872873516273980531285967914162965104816124515149147753453005271512350298455871140838976162282730741615337376605935520905401904547521681206696789812744975277285178752465830125362546735938729983453947709220044625040074346836557019573987558903330318082584603305098695864994371287368895907127726004908752403233016800447723218008186126280895999823970102367040658302464535325538636971578755475913182294976765088493093659067025483436826577467346071356817382359579378875621538403952771230082721289977346924553607929642446786356432396423640248340569718711834479929907367635074290587432729870140699674051148612897789558777741175251275264840951266664256253300469693380142050293970743783083480613052797902312179864323911032112752407809064185452334698988772674009680189243906878390604340083384251565747752438446501468451131123763001560225310091451671397950286235104122835669670278306538758585444435317978975661312350743840604041910805978592736679514616459046636658381619685437808103168980728318601797477521405730021441029474364893260170753223999775149564711418288314716706647134955615139096327272348329023462846823418997723289162124854948141900715634063709106571902891526748367116772465586114890279866729775876505976163412581719283949006478699694388057072890352723271339404569022015102843958759482955311198057359216733065931876846362045470556426284161103654397400691433209634366496487231224587424459094203662253524438340410420630242304131174261213269360033032247380900071079751073929606388382821692033519998948651718508842641170819297863737099181724817629735186578411883872157406182586036887099081339415642662655761759744108216844374008462738876708917560388975610086693894388650559345242680678955623536205609607953571064074774963768292081598017627875269619981874099604135478464093769874186422215783102465663937701646507758765333265668867734440911166308753215858904156975515511127257040738536862806542651333375668029623390132081631673066569472937530268571506810177103818873994322874046836418055457045867325978944035079255136255379635376537979896070196680751223787242976392831211283455961913967786682407981481369162366724598044302437570201278813807438788787000990200860359381928789335496888160186970994167430256377175997139222306736390364186935692098864527721287476602846754883728665061815276009489201420582953379137435427606682049121934126533823438586693953907625346272733077420815385392628249294881080074807606636675973152910902978997953869178281917927589359932987677249107704283161044014589025381711467239248246268944048123526328295497736383177921650930401633555378873922433282132625992579886850768811333996487783844886776580799155859200737396018407932064965961607224070107314404402091062342623291373553025714208517449625394372416743906317735669798908867934382646196572393899178111551814134563103716218502968496591856222465101085547920637483114114788460487308343073509872472250712569158842194757926187686781438337384477305871949339291346348736723694426894895341178652162690849806251763485368883639167091494340546781609911464576038004073060791087608625314444963834492596551551553913473507946769346492797929492353986104989786488665707781596238321248226082356029845425782690615023860862531303752548698596196366931018559585807940666449453008671617156440676417115269470984251475539791849122678810861309103614710144061461757517993894513158390248297702563499931826148284483448341761496866902157517178230045602935056933265177214420925588906253308041349851559315726956403596432124583948827540567399084995210080060996599168066236090285352876382172633615857192135286535174932425492264336104227849096532893867461181255277419100224498492178518276092974074825305476321067994913454586008451245974414951852243838080441936282634699754726861338332190457281948883458723691256414465001123908895605656297276117747843158369027039744433042616601351442929863079855816253258380495853308204867909076169327807098733884795057785681039113995494845924683356528851170766500579141151047044757173658318730828278629777898444855524335880271905997419048764224105586142772986007590295211425109566722948072287219762762728218207849474879534258112087791514248559611990498801681341270184385703152603690255659788855276984356903008400757262228912288600422601274947330211843800627858149106890027635564441530322295665938337292160611722814638880970364283298290777829325520443155393525459993802150534639849215029099422707444978429644631037169166007496529630209619791984990832998436401106451451956886835509206624766398164599071111091899868227552016424004360172843650112107604809213478498807400483712319705808143946470414827390816386368346370721148105669142936968831544264654759253952509452026907080692443161888284513646883191973607919690643296552749817420895599071431969127452838308270201525616578337288868662061254605145542682633467713957488271412774168750540258650177449936563640160416290384112190698119332407394613469061859871839434349475031343238019415573585876568635601714454837176309957894976431499144903363598119729878149469792665833807216984786586579122066228894286564212607341471725511478168590358209209199094825196688939467680074319294326607914857890661194362838582358269159873951441909367936840196722693761752375803564021544441678065713521020885372148269918407168879648306761564423535471094541018135713113587130270573523417947956173623647299877193972879323707233159410948696657675991636184654795924461450254290523943063199703782346716044809589073991790768650300659371566285401150775151881859626369830932546602636010600811559807773965149398377248907708313379472812472474575377376032787148209661179685291096143131403124703445241587949514010841778589045538880433774238179695455144797001314188473698898373987425916323087457322058115940319173543856035708969820364095658712462377466227485196396020902398975308157571831385355205598884059461691396358156707719896246384466216923304433288128364381772809854736086550579790177195802312249065342322707685972034652279415076951722363242677023376247595439034868800928208887023254742169346319033124383090729242584047333903863532442534492124919122586498420713301806395460126368185089236571468604891053328815966908293252416650959836907814794400359180676934034163692493092535222262480154171597997285400999054159555161794430233302793385465332957177360561996865811757667921396408466883021333662561123202419001297213456827508698302203050099911761594301077485359122568712634890728383031966935097926736264162041007760321072798717017820691898394935844884485248331804168337243211025389902932213764721434893722975781218111612730991542262401089673698391836163008014209391390696158242466543392770304755825118702498278899160429555153335386421584993658820587653623382672084284129696757092085097964246483737291697807694150182019096812178495979300119058282063321750980352709588214601163741278509650691954692656701053689237351194696581556748227143181172498702748628525152079224183314252400829842122123300158567359712919289394511152154541924671988791982225384815661380361994211947008965030593676921020060135963979084942734538824291580671612862998483960481866571069247162238286478377221379168239482620023213955898419810705649778835395304438751313441327412540563307346661725140338991562018381426862293798137191730367034240943432067879871001591532199707620319933561671125690035126969500146268787195475467592287551521785754255181894483674897126914238275116911906624878037613391727166609162968045817355208266998274971575891912340595473587550564217127389313566236488439312682386506482165634574993138857191643212911792775489608999272483504154449458006988065554430972804467155659445469998223434650262058238616718362473513909501352463448468496066277176771991928521948718646912508980037695957802356064161127408251982642374883620188865988551706393627814453267313206880743520652260855982906162571559319957142727914120484805674330115095620567961859082343626077298129025994732595881687445731824279621632649540561579519886027602607011917657604807073991871791362893361963138320385041471701214325916102867494566595249761981685737344657881659469719423617966810479589076561470249044293345278584278373172961597391112240137760332306485413794786057603217471443199655407900674720908743235934275210439851954853529428391179996219447187487376452517298538835398337630878875201658282622847684283362491230614092287103414027336513987072062107317091485869189416584062201830544405572713561523168322706021342327793319450935991377290109238803437437961751660550471303095522170364479662538598699438515202421515299534507578457388574873281951459942430695460997381624977715766978658727119387783997504682504882005505630481840149583237162229397287871117122817497472613511716781643159494573798375489446244557581994547099806721301395978521762842332038083776006765843561820709616224341056246926536695644283314268627338992982847105203968593231315974427062586481937023866997325215712852945499387317157943140058999077777448022805779498836618297710712919448804320430348205030067576795090624645979672464866539721064799475235333883934122818438796061976989074956002390638287503453296029406099769054485823972423154707081743768501541998852022642837229448046618629061329312999807161076967464949676374370389206371416089679126853239810093363611203734067156726259608424378596229571726045110137284750270407581868144238377600653410905550382402362360987008738852969434527599423028915418418391887227247172865544001652965215110469851175346399669441197240018265501215662603311333624208910686117124705847537574532651939216829409339337249345584480130596651626419004162011259491696759786171913131541280731682199132256846954664413276711186758551230981747782705866543222098835029602280226181086125710645913326832573535335269791580004426834874613171970198785976085145139790900445773743266387996472231251958445201182643850881387520170003184219983189589737407935055539483077108196995594003561854462985194667633842368606832284879014038613140843299830931445488434663799395949009845341940924867468192998185539736213552888200763635917156553595509569881381930968961996179104730724474769888948737959547801112808763404754616345487476502258117463576195684540140290530180281467969181453363889725950165367976808874155100993652424441688738858698938118438248807000947028372760597553125986686519510644536443174062743333028349702827034722239684707161623378972257591891349324424609110749434810927513894626812300262287782078515987785493976984688200158797954429870336164351834625617848710699867933351567355369691876647595113075783391967216970445304378873867780599765621429481674284935244795267398087367513531085544118655676101966644866349746880241172610989963956532080761178186371495824427124954476793159012750877990427551490949034789210557648222069973094715962042312446497994508658366845139471778966987362248368341604409850896864272140881636387493244221382527049468032795799327023234956439976474508395253037776188602065236426485420380022615721821194515288019054082074963379362396273997081070485507678054207909647565396423746800026865412596889017521220561376586188888085120872949325288185259041754760353313465754435755680975195895787330786872622358145626075562765265773497697597030113342331087519540655993795498805990242651407623660677843771685095649370242868484604453252480616821384125371628367996031887099778852201240359382051027139980085346163359339966135036103451615088459470343900227853610535272707493490919223882134028578082528627825636561071511313826279098957153357075437425955572976571042249479262645666266401491341874845443378778911434229370751774166572028098018949801047519253242222990784100552849167448288554476859374476854546692415158261637344754217769278650097304182844903228517640056083515166171022585883758021342788280613181578800930210538833695587680849444167307349370979768863419172276599529145543116795751715461769556946408330287530905724853313594386476059180091020415404893470601866795380738951126501007493418498580060451020254498280972268395470667389420705576022554981213296461760394671917629311866904619001372924852015107638437747393494340218635199919732328338893526447306551550357755297321797823776670106526029216421186467283093198771164979907785318044078707892428870321001582168604730089480792099567380192156777819745407565367211441156616016000218699284644988455131839629092973929049470315724245144150603706790618014107971781913920622422141298404919211378865566436603518375794451653940506637648006347989981609697303464941058121893409538846514462252303659905888610807542811962732912392218321150876444519020501030845726513827421618912291005396237088809758674652539713042854923490234260936605732038521111149249810738617256740387543080865035338921575602384053884529708458188173079544459560327940615572656290912207528231474721975117114058439504718901246521535394074263817824407872697781831327150370303300256148393293581291440030213052308365769939832652440169209347754197505654346442130027289188124622463243253395791559886908830992260068456479297626324479828682939739470326800267852380500357702220399872950608751267553626987354019234136096072608608297798302958872335212721692205942071976891707578426593881713868266854613722382443367344562511800339170970415399983104907372177838057356858365742146905080514409835458968513457590924882864399053611485942527948572651233053295824617651465532828177857778961298716180462531029595107119204793637099737297332656651576934304156216031936024069964667474337031592660598088358242635309903220420191168118463110216576258873393570530112174264731226355211898590780886634912412779081239016945623452567424700339610712427812823637604187290218801705632012510766164715260118895040048150357016432410025389724075106087617240961490158848680591597081662981581656095700798947489808509749275245245972410781729107830553281592394634747125173339918938737317384127219723863664149781365995671076749879907114476445012900866950141907119823129418459491691700914740349266908786393953242308864775657337020068879949128814304881144041855694194513074296507844473313562419982285777920458448388043286305373305509075938261106267537411171201757305313888928175991270582219527844921805297516850266892467766197282425879706310029248261166743858276195008238779898443184611375973945376801026334812411391333885351215343679889830981576228412746862579435250724550958857994926687725962955668934296412007115686186243273371767410088589162658989462545939341203864670535496725041209221274092835087499391152996496767341328419530871384507300754053020647736189170932202850728615410497199297547471678425545303881023935220325329156086197813052532844511817372433187392334422232963938948233821430166003941518750324312329490527928135863082538205673304348073243684685569908584107972591611448274852473070967799457638072014919597902185134731447362885165972720913338311928929080082741780011993607641428523769818718312935090932750930044581806219638223125404651663466097037292535640925793953210159814895741559344006350009016630803034991608038424579001942722309877478890573509446271977342414429556843739139880038332171226311984469317421911774679223150811249514363937422267662255087783586744840855037412146827139367860213689164351100563684350167830245889697029866914575708842542230808928583390367925482282939935907762264938511708969193982615492162078856181029942977400130586331500492614014639459215483300553400685962442911381632204792315135420438553201110843197129520013411394994746535531550468984336159971819360706628485337011105096346875180555009727740355717281110377405118453600339803313441071347589539315002719860214729930345770544184406303025553117199786525149850914498116067576699594501189620701842586858527030435268412971761947892394917621831705463653062866799178118221882283911236206329453821118133877188591015171318888907969471066902479523359020352947543901869525542756122981159618024115308129937843491401601155085577191218834527971061605161156141977817136822979388471395233726688605523702165651634825692072605564264830480488530607965907804462292645841969258259803687584405723127476177645781544463493952355832530111361342873589199948023623343638750350131236622604654669705451489492242121471191508278342317901151399551274038440747226915587048737119067624460902425050349355598177174352956128783296961149507642328262396215327178483524467835462286801665288123991715413290056710769765057963045169929706223392239294258832748030533187473495230338687030125214479580648277515473234687579724626410158228264919419405007314500496303422003606893601094505993579548633702751295247835025370296377174540041666807472370400574598481682719232902334068666596776640630682631822240583500240548846848864790545758817068333519976863794822985347428553134451655899778519316923682961545496695059169616634781058950877495494215047637587570722243324974770055739168143912712915214233349907999777078612333059402072000517070279330391084881069838574102050713375617187179488067555362768308483610585858312570755397333000785491265781115556622168972012110885629618859323670428353431278537496435838073922856128269330038195997390127561885701537895801015530300665850303755291519103588885839132913670099223906361246713687957437570320336272898916697998694639898532174808769849552214237320698170249568200804724106397727226794635554226463288452729882337694132790894232332491531166620860911419183635157917471119442823548142669096516496001788202105464554091161053439556395337300540225210165905927284024130058641953211952920403311288467050813152102743113086161625326582707854207115877688671337959925548416998754596285319746364498708349770508714255205399906805887776835523731961900808367818862589208136623251286981559802265231605131908873795524187368621936653965928103840168489829969960886194562509841381723748543138622740510863377508577687677524719415668727391649256917704611424847011443633781562506020284328802673366125969863745689049379778984553171844515213632640419332409010159809451608005316054122779742666793893840824886135323489126582529303541016316580062945858250487055029313043055339624328125940588691303263922126383296428477114397049208818447696109385949496437388375646535499052975542486673803778359976232520603776355501680092085852241461290532220191614951031911009497908384839281574655507690767817150682960712294268922221048610260849292898298289594021624305140486241098685101032742958294482124283384374201325905430978569143090444569417417117580116758027098082373472961953680471132005136117824493910443127113462320360262203274119444737696027549186019932893937257452753886249526368024992924957287618987354531516285871473025481798492301551431389665226129954255929336686014213894700520112504632805002299104638173696006540104017315323953816707416534801973150527422348267586111052892841026640785913777715106822584026999077492782519489571855017237884481611065249132719874564966847998861461511168692820670212084647128076387753197350750226671779143342749759394925764500919510854077637859993118547462497947253410956479039066230263366563177593184448379740325875564842823800174715890233577611210614558084453678908184887391886343496408070137912866394786717935757619758071439125152846189487134980836346520776588856603807201172450490351213739904791574829576609116833734161694428185914137278225359735443955149116644099763540424192630064416280314938240045400915480742849946576330320409795872282204780305055014118375480781715522195618991084150506229993759237445742848907155845968962604186782563527857159387997382854720590034762990523993628476000939859497710736477690520967126768390910670077739358373828162878528019098094623470873981231601003983630551895969197125253201709041728100813595073817270970647135984885799253713023918485842274972360773559056126175805124989576965905146156238301491294913118781906944483881279603289837358347713653912917829411828245414252050347073816359758881918876336256611581986446786500923243647160463944323058887829691929750105633621881494264576507396410921086692896094701039520019170720223382757670851872419920946968766384790979998975039231782478700358012544071764389861774109240966010440773432102588915175866717097915742320152440857904952410920507391414753896472191495721886899599816076078695503999011686137546118255921714724647167469510169195425300642649752662112257257309727946904852870237844398059219436514208417441797968229403175047728569396050407797990663770256653248795256048270286458661868049368386144456289152324151277174923548824526244423167284323933391295011475806915923124917690713862505250734545324166137116990577946388847634620257149080898475055281695654288465173899913391221473318939090869107391433338295143777803402925375753904091794439830270261035694618521843150630321570429322658473786550754410411652401578853894681905827682842723103381595286301348080931562296951950748033980488114740580075240033610299532776937190514650530439167366583964161688132445050221982039770599152800655127839385600207406673234298186251503640974013855863432868229472240945275412808754262695550364440602754530085046368259221076446054316538047501782854940284408762948940390002199160541509606413248233598072942238019988865106632966962357180044589039156453438019813745098542983702693381363969084691797580234259164564233787009919711745354654315080165132372771654674257857863929133502563573089068922451822239790705763921778329774443183832368259068681405707993273798466665820342062077030741963307038590492623671135660606459270716083876288488172641002048219933602931337355040735879318187673691282791897983515686644800319314241708653329343409393071323753684317680504843741933340738870917207765423840653382268144005764979791682374842726787204376440925193357147463695224095090615811784331540444375048919149700775338695400043767332268448961122407050877184073329413395283419338034619201342281014638329958540692961625968592182717836126616133843870867847599674414376262173208706578737895061817871165500513100542567066111816047841524220688615134820125507677985580270691850273572454274535443461035546385175596279109415647714799651123095856633978043701529769831764015687760036074090652566710472030748594555570843367798918760123980412259909989232435756779095114032205185945486188804260491924819624014991150016058089036254309928874555723394201725983109639244771073433554696904377912895882920536095852794825268906814070204698435739190354289319220443655205573790954264049046738730280784269835749882520963420246934286451273048156372613108394234918123790665745871159192911016185138140068589626983552772660664681290250152550382015905426755513607509423326310257378087442555408921810532478304613636635366705202852341443685028445186119830938731029105187753917977352616407315170687572208891637263350148073805594297884558205509675501115938799242398151065734322938631429805763926494939834696223487717261187836695598137795656936161446377118955002602650540661389904027306209999563090909206160141224409397571178621368728439917860348037790354535649900458141392124155784816482735267090859966079491547044021952754499650534300433012792034593826699223281803517456487670221774021470940005455028537778811387127928924615855642871616008179911663661213744798534622266628226823897389853333290117448778216186713378574739916300762282549739317333385899147418591191362510361332134367161250239416790701114552115712387505699154686803766379665303468384849063005668182076149619778652774301800962548956329440703825000097860863483996780519371438051630098525031941519557909219418457785029081748695217158868420544155450119490700222009086022586130834864660364562591176174785461732870565018934600529713643607762839961329571984068890980069297918629158646325813532364795099782365977514591699945772642724807289910828522770913792928987889033995566777471582457892463762614385710956680324064350994783569709126758243030889228110608172404661329576655603521845451729477265084599189987735235125786927375342345187327998364134085537780973902995965008023174839686429262855645618439953679003055129107188447799305581608091141754914920278551423384237969025299291556128928371707771830106840129704021955405862499758257221738737719577610763424630570302089004820010402095623999273193879100638876097066474157870945817235163321354959071594901858710515809518821128872115947310669199960719700526737242688558103613892131297905716683157321252348079417937493928504098044634062767429702047977847903249372932795511664231287591814225923458467626332193158952379229515407674619854081835963332861702436228065740599820143870570837299289323140460279494257426829734732450752873440973034768182888129021628220163280617074013292006038876353377034789346231647711023464789572510498238652054002167796845042533704513200925992670688403238409875297810832026924890151621169981660510170124265316051040264172748531373125914335135488823495714463653117197135425758736666933452898971999278764256921458917701673342619871747067700793828304073248357088174064970092120953957132444171092100610116742829262796306504254550154388623098129640885305117270107603636894991906275024855127304572966501721996200989373984575772841237207576999861920940810313186604705920583661858747302149132823562017992502235732512994591470580804447292153099183511529722828443522217563576809647439305559753605999813942246105459533270859642702761186915978523742723893179962974836382518398270666084212866523565132505083225536139393358449415923816767874872794457486417298886481014216303202127283803143923644128437878015069413698204540735464855527297198685482716066646220575148729396831784054219873303269525390949515205513022723683414851004766538238412014595483218567072326539740139295804530723654773984616951677950472539732189920287219494782940550975226590071100984700714476648736432227678928111139083757551186584373074481849433451978661561664919544618134675974152472426192201073639235899278187325904237342423125509080316627710512027113665505215119281034945433397071730455120495810923076105369612714403517693297366358936810393784406562237252334600042117897916900777713867935290413557971385191327053699491853175731242480327054631565805695359679444628551607528302665653222693677876405125849382342300071376402607326023180941204299525784544193660073142188849255242836749337735246739623662853119517699361930553136046550652270248687235921234812604507533435125663248133945299997689912915199474981832449661435874571510324826171895557346137222819104359459633296850772389800935513403507769886045347116395662251113932784989958952645553084923467901235449456125818290150515378924279489128111170540868408524226265421355486041527127138239252012358967066050536628336650457406978304483351691230094169939341383921547663424207755651100421541286372707583478087391430981068156198121090937472199628301202033570942744645818254026814618953410459831240588584139254340658402360998162036393372307885674606556035973609491260633210593364690319503370313400366978463930114065214748291965057949673563430866376040062916304618980732958174496057461448338560170709844198436856023498026814994764381001556933291528237840325390971609072468787529415155915743557205331169676210838687916207129938597766977499173538486579917818794519445530054196752866224481469862479587090235922834269240387354693544397501022823112572569321545815216466281928505768467176433140914703995399553285558549223288563603356893363401612353937124382494950022545667753221373724174538687822250904143086400084524125163079725585661147780116516744208188236472751055077525203902942795261096646951054589857798430188207844053353939980085880970711054708109886087103461032528867337758878086550360100622818910262195154804184498926077784108915856475329643073279863142976984691942412052298924460106063668302435377744211611736742592714622468564809652800106343062044737036112539210817525460343320269621098696753932166267041234870657984594866751866696251307472608579821977459771513091084132565445477152118590086612866101632788312832628511386063565881210536915233531824983325490575509921707777403245979337770546954204891838611710961320419650432265870564255058879366939746919797174108616578982016354693054203268902047904513993840653873448969525371787181992043746638087049530529269716908992396263145284728282245336550811323902443509892408780790516236449762079189915126501223763450782529155049208746762391867485331883276435325671014823617846921596105450293745514906362311051014047341384213482657751876833234224654926988483864615026956368008288960670068481818478860578759709381912419720210095003126574525491414519270215710182977596377200929278343585373852655314603270089571450677065423437605405470704381721965466960086935396097176994980251057853731666660015837817962504539308152441098672209920958534176011779911603475255535821655062098034938224877756357194539614364390226309267729933472999461149826387964892438905933931508544369049015891349593522718214624989842252286009648180167411460429725959030477210997746506009646157157063895473334661302239282973161147408219646790486785084920495566697328143186173998127841265310917264799434454030985566653695774495806484113138153772718881820770588703872885509202846239683669472147279740614188073775033289386130173856926897590416588019401390087250177137568251589305381485171331324569347041580950442633087924358002177129538643917411032530310435247761608646894820446287395562243910432052451946835251125514624250077079544408480370839196027359084414925432907463767432271647042678899221483343814401021382058337681634619610465669106551030745235838013738086111265693261713133364908550621296910565034192622602132295723740785088504042518908695374240967806663749932276712585407074142594321597683448879256212676502051548644707313850704636884155678386365436747145055356602186551196471817964734236885551641844012490151796308776149567533512418305727418741329635802940711276517542428257939913016578412623191539652490731563815890582067022075508496877620476273794624466159081905719302599015763686485822224764002024527710507482636479228261729371972916288259019122464499784312419314503341403832311811202762977551530846182078171742534087838707258746383282637594247701048575972056742386390068425426746810061830059269203987469036141793948532506490232798007313929507370034549093680167697568408655083978046083857732762726357124983316471152294376170442211937733213092733497422684093294465938337378509616224488762696096522452780023129385280754125546662310705321117337516317992077937641242845707686699431970509692411670446102964211861519212963193694654129481474101977684514265308867709803284643831591559366144697198367825793901389854099547916649832779243211519899750276469486690627741137904279569712180007982686216111064117304706214808591313282983834475789222646083297714708357129189561453358567946297869933836387294033719960983055396466173158719633597570181282092703342663649365597185967248087979827186364413020852258929804810131414091787798561750482586325474038137434897974797310045402341872232520266674654234651097129550120058172004118340087728991139773724526356532935646677677068461688247885430116969544084297259889562492357093123656903744521344512619212708318711412127191319033600200546966123242893384266325492594857844854265799008380619936726524080069602654821663778183542155104565662069342746128943439575083859262371065354055854978569188622259182908923222351102844402822862412418346773820097206771898366837838416355906950658151695471785265952861037195552785753058503309457123052235828138786830503012909569919960462446298128401602688254972032050519211685755318042425095513382659745420335767578585761722142385928809342242885075283976560364139292912841779060586243141362689609748158238277760860325308643284945517132734062276744835018673972595601257168436600873282373044373120294966067008632432630482099513832245305355525699271287063004919832927861212948298278247697214317727653010754955849108971912645351175770323927315643652067666048472651675245126029033203778554891796885010872911027573420831409409997846269492958181072777356627726155805632703818031157342681878868399494153980859225341155439460050233758532597080865254129050873304051810794365827787191201912776282009531391263761764038944695571365833266070880190477381035319588065913673450365412546122739724981684231533792215612278035605460352353711714197556637550395331079481897874271062472068208950172207931768769365897960890800931755982712233922251027675890300014891938901340440051457952446730424612473509138958487603501048807398288795014597818575776676708616138450246211620210551121006263050579740811472339674399720896143179624777852363752793593615069916358215300208670558976757358690503415813247353329134862035438066258942539816604467202119976619222528706987587528932340084291246778363006992224320419163937094210083739055095171105871052896530010345408731875205481354368502043228377670457521741312850382543323914065806743472099688133038575061477246715549663006040105969521823155541141743055847916395711362062077645557258649447581285858403871184837394290896969781862298056892393784133756566188148513393281893497183936414993502822787096238902664967535451295953990195713094961811673107624941334491029501461274054451561753992034706308243974453691754563068512208498433833364566723242208539836753619392327897971765903638806967807657498187870776316834772961836123864075560820211772294275151327574406367659138429488048304095136304842346423479958148498623237017774958383442661413071778383506078871388093041057176015238538667209787402199208132282230166165920652952712685331075700927758866281763943684171333356935661209515613396807612381043662571566762425535743491984881332194323364646907226435041410440843044730730151785901173022257094115799912457110972585682541762108804517628062767100997514681907180975253132600100596679490366906948933665111859011444362888325866598593240377882267232643651638319168296676525896068417960512859906498884316940777284861377908904185050523769106701720352770411202542043904878890039085427461137832546014511882723217062924060795418117252157770216207146983966847596858252957647420771773640280945975851630920109557263932366719733229685079285554704756916140126723116420094930007406363352002608715164043924721421759783813215920331970498734300357657928568677629707447232049644585353915766353961669439086722974359386617931503622831274382168192622895998033920408207715114792093217906478929231371658977040890274378446765795529710620282092599830657859406972865836345058504478696511303008152831333104290202560170177024623896554475289798913320745146416856436537320781415942748407060561846306471577070759834073287705359875038982121381776361869280573796577878165235048625189354168700982846577783237824997997769398351416681120198400157665862873295434343243759308505376659109137791660183862595168547124486786382141682735501485282532323083327406143824474090112980912192311567172475250168602347687468169358703889309414957141519100569080610114733525698243509381057634611242243555215451468016538384970150904702730744630062727620952243236148082800216854714998910859037747696721445957109168581196431109189330570499118659406369588546714057489519068060796442902264684046837108912178229542313478508015623116441042397614259646359472160572764143660702381353095051029303263735334135043321519303141865776311319913315436105897453892034830706396365595337254851348567716080626463357491288618999655882476568903750435993248400051338534093993736984627806559674246936493028737477770564018358300262326740357867973958023733044204337876436203745731256788260481494219344873982053768637140052454501343080104640807294104180694759630033647547646040849740463802873606549243292554292878726919709175256140285122056428536598954702186596293559905280115197019749766401809554990866974908056853038310733384080368309813107908544115760303239848929807096945031515394069952666144105104985155269193258666191456770862571539506838006891881879291452348929544673420236531363806375683986983938607446116451135879627783592672743563460427209557234011669542712321171527029170820894255551706005958307694165916868115870894198863146191314016061588388586959256306665829038123102856003097664551613346265861183148578931657673480089973870203749501598112395730793246535312231613027638592021888912537050467453038877739163496816171391764582773107703653838431612484145357212928653830270991504088790001540395283617575749435899375171172126326073969233739156038077913247019470649637341742025421381483293387739277313109443896137419315917273289179757314406589108091293062917411542571739544099910480943212510812676478035304294424786183229115393623862131084867960114006377856918814822580672451914262862058196755516540249295731733402991269945418582693164504283516524513566644591102781825657291459392879195051089541333099885411362444920943475653615810741368821964549153701508013298389865088347645400969743885412779973689613248171819356823936293822895443843521411657808440362622086683403239428572053142765246476406207529121950930833705800319650686229838196234934786278282864428782553932229389529308863080950823449990990646519705529703599605092374552966541410053940433541831252778509133853729404045259338431979111394271004188809210652917741989365990151429654600659579508418891637915033545649042622798296683409491882662484474704672757296317435317778652194729231360291262556567263035320388060809463412236335592569108287073952679568529774751480567719353025932332505065471926217255475683881852626940101764286705632004264899802647245805954997015943613308053112685246125961631547642195781150888862242959734041669459190922548554329358711874070080184207966124826368006385313245840513458926362046295777473226644653725547365025192202274257075340708726517564804144535562705075840648948973601090729333572220048457027415762260687128280270600198702112508297870421850609474677527100080804359009645616666399976082654234935625833404855948996071395823186999083658540363237061560995378273458685380128469654079316263029520667518720990083561943767465807576176468927315283919767967840179362216189372895296281090159850556536893986452992894981154670358017949960007567749516570836947954550813240450267290789894555780718166501496559985759004994538750314525294962309164371759884738196590323801509731307095853469430982670278813642180678496994384685109835996434193088412104109349821543924281904985590418045758956255299657199993739702568745794889422813979825655563707644981123371519045618127477797285447506851497284101649655879695497000382061125770637368347822470895709751910629650041138435600041124284810513513013046421281181184957706315893148810204280749832940471381006457991939399657316440003008646326430588894650634266562959775530856278514389297198220453529582853989929453746384954608491244203196499719803438921358117811096290205954010424509440263993192062980988739976336424065093190108448401662763798731437174116241666492192780133191878961950439143241430197605927673461492214955452327765268528507120220384868023413236856144377268135744345559989066183727150399553871215874663131424292788065638012093944287917990692935677732925035394159494446708229385022317032870496790982601750773655744050539708126767534550414791645110292351290383087662647677536598900047022872396934609811837923894594832920703211019371298911007634532676837873213582852365147138430429441370960339057646824083622303945908784975363327365466599028429447904941290784846642112527295452930227103661884053868524979279490640166415690169329379157031920416625964271951777369172962428276696356716906364651507406825598212358374934260510144305558392351618979582778831737733258412257921801760492639272315765579371858322850224635614219744469344961010741319509118167450414685053703520304220913412443356393117238682875277906440186552690613470916072221908422096147773760079079389820100165189256092322409188402967902675253068986157801404719809608087057100196469350558921501124791745392870106283919919449801450810297033619236825601368315365612474696846765317347072721030553756969283394829410603217934214373027916777187470271962693823071512607628898688517290325068937132445309054068506994522947893602958957522030152141789063479385914853954066022811443448370711610812399132051495328488959026621876720870297425209210957793506296468610843687996748666466157668619201712338888515500207879915525587474893207105709856101347225011184085003684509959357254825664553074150275342375108216672712172009150935380086296417623491417913214475175406517032838071602046839581080776544263969053560414049935913349994451787689192672502459121143500694033433276404352806312699057376305898959858144120871157459476261319132057889284115781813186322597297592347878608654858147493227746995831918647566445161274162594547102149815078628404937007773277268485173205810035504806671469487114164835727191794920798346666515839458687676822742212498627589294781264856489549430056601503731739154683682054625637140843137177909476666331876283404443305426717610543162827973621664904595916482957210220617101988951519018320762399264440262194111305569773461901456126606297348393065175712069936937343552762703736059708124137670570055655156163795875400564811128733915623918654146197656536650791415583382528396433074901120085518019856768891345584951998629499100419728569042053172196105176967985775409632114318865593415024125699435870282400718320601648581456301954026314129267992466862354456566458495287484735677512240079166785449353958836261597762287044027034645024789983672922023215455111155468711420111704898115480197023552404285084295675138542547936229382943374999287291677278677773547196942510260087537628730512936545661864577437290224914204820357046602399238407218170928449129130434447276515891690338252561210852604529766091079496769908560958477179684971051342098773239334243931538076000591005020520881879332965116591270548386331319128556912259778503006241969118731847833118219669678424464847050631797683264371369383789250552447287367498679499995555384645821935158516445818036015084449017131567988949896777687405251946621620099683234407451226616843785655346202471098462435878581521575667920907193654942397804646673754725789188296438915377112801274024418155728824113150498558523995185792083614473418574765837206757917862144735542518864019301594625347486144878509447149121696861826531834529260383688819529439128756114803939292468231540863867427716077834657111935737634518964853615960901322146444263744238460495364330867301298884998717407889331356814462692547006004242040183108438798548876256460304057395785607699887011347857593216096994233569425469070530039481974246308181400379090807323327780776174415178879926691840517854583150064999430944878257802667677715174057654977163045396228358839037094686717851883264982378133878276580307847411258060693641790191435715576049705117206788227846530048864020336830302757902300606936709931711039935632738555457558492608040130450137332837793436746439349162084250327946676845296347723597043708760526575626747330033608602986413571137498925473013879174018692505551289265558674590164263071203297372756340889363370695716046612495178746333161852763748679324865954517795911779628849911885066995764981776936904172086356803999211420342264317366766484121250741342266854237168955464266246959936920897679726185764778131579826444991155479229940654218375136560948148418030846555682665192723324404440935071421055628644042560156327447854226161209958018108325927242594842601879727323189982198863275667377924819678265099735238452246680146507065646405588265596492154265726314769128399494794356359431048668434682573708969525182803451276766841579742071427336628642159501919613515222094083938011104646736887848465916375394230959417582503259705205927476648890770610625838100518000856011084332262375693744492846684136321860567914993817421428236957625308773559775569314758795670879340011785441820079919650372376142812038516815018561923482935821581691343562057560406810921112600112555888262095056567324297976641252753075624865017703737019315581633689719366340389829889216676828635376733988358782315044346842508383315857300807196379990193540288709701834732982068764594075717698642917555217903501903845529452072948566335688378768442688355558159514154918361196654340011913771006030050465708615064518834772312908971459567343091134522836823427321465061131768814951787792505454707969873150558539112987479664398485724049548227987060790533110228026341562437947783639107984041698974815299655214801837628418186917015434410686765764021859238014988786535618424680125833269392644626146758087910006118380729919039205557000035379350483907682848580282729909556542356889498683680814563910647556661856736256664559243167695123812975573599488968432987466540257261626566273061680671140153515283280809394349735666085574591255389636883961048427099823699572652905382676767211548162381227062151940746634930275946010338425745214420579051766479782805334046386621151413590812729161267269285134581262704089843090047129914334383079350495510509890569137088174998261293915220103770132134188887515114593896231505680664077706057256205332666070736142578085261179552244756487542342259826837283557648267588525488413864143643818295883703074003096581778880144241118590676744946007834951832360421124354520607614681461858305573538994168127801556202472249024510005066638265794352147340543262624428605706382347477503300038464857584530450023762943800523546442392971013610894423276487986933931727547826347642005972930738433766237857221216426238051374660676277590068400997589772927885689934937491760058037251707861962321136188447494297240589237842086709282557120238379087326095112821061088763228559124700072425038913870771690602482605824400776437186801549274842271753328437569505878760051125663422097966812716844060804438777283307375629560559738623962794988644331394973518185151770055449014603975613797328718968338469893079263285852016545031275063281087235014742251993217178541142233914006798889724950607691322011569218588075098727080038115611568523011510124541076424187361431987053175190193063456554430895751373590991400076423801150568061662231563773245411204399967246806002969134629917483139359250047188945812638875118347797856654455241968241308520058610043735935604091590665777019283691322745087075207059961021754391968137736705180025902084642381026360021287575322311246666565449842523943189557985910958420875062338904429098250060062589747412654548205728854414032791548740230238755305898906658089562421502113932765216691931537036119870641520795312898272595248489338258323757729953112243134867072833095923656912948768443382809565473389470708160999749027672754386640744284037475259115055011800036251769225341877429452543358585728307875447556519369060133597338633783201204455138529370549768346773579939484663122712348894436456761635263142973278463363097576445217222255192017108464671398699128596918276452906668700312000434503564857830950437626989818472660423123313185790768772813434057513927160399541041144452918772172163806344111816329783636128973149049972179652443739208352265690592234745124537360934106544545539720123715147974543465572649114885701036144217513659707877987557222577780957946204061331930472998069724868240435620032601008252989588317650502637573433642415334748112959802864580301243322215860765709421505709635756352928117420857408422494712970066498423853615981137789756902879647597037255825413809670282327520793599151800333953821398373161687735930678198676414533713733970667268071431368412315848793157922335395550701887724392174346865835505332431007015357300628636365339121873425522276633391396817201603703899593532440187369951309948047310704397936519173088523117950731953600180167442346225888911652284368367876084676230058537600116388822762609059839550268132740762459827581575248481007759366548502040805934196564114386571387431157108731511669652324741037893067399602369455218694658711102345597693822704725168313843044375062751994273756995482839343343184389315261058228663111614954901062577132108662266571117319821768914707937603883448271513222533789893486473758019652904636822496401157715515184106346635667721702734055664520571772458577752272990494575605528035878853946790849333151681922563532840975354663678079653704038303522769070956644742243743992936486528638300479558760483191262454447665721871208951305554311858910849514560352139726212605778877222240285135823014853360622026306940418833347121152044227546732820660791201662763021031239806990997439175150250668093885946884884535643314814438583674308007939932350888488348148562911527328040095084339757832560781276765180353429418012682171852205960553594544528021633918171343146054131012428375963732075533843832831599741465227475744606380602420496689908565116087679841115766445615808832986103929664562615094558713171515925781989831791312807764149382145102328152690852419993738207578488741069584134880995894839821571141580897507687426307531281899790615083069987719794526171987468178338414443245462430350490290087800943268011001074600886832509952841096621675185667374380684435906253178754081359869688154280655251338954216378218485521407936300567797671985225384565186449793232570051895966222342222481663459818216676161440427955667053328112407700082242626842613904613470673508768148834346959527695597285786602751259095476763132915440623718832994859054805277736840852347012923479553567591008926071314443920358722514875618611111662093937242125006954729799072066746003723566930958500784685642094450696379741661995963463604160379666481514465893922198855594844547354002689809536937439777888375594103923965858969865811567024996243965224432181715708137348012046183491619495373239735222640945743439415069821136837341394922154608923909653929290959349501502372175683622434735962312228085689686678439959473147449568165342647460917366523392180365267364810234379233685151159751624487996697198266129838150210512099213586183340051046902575725190808776055387901623750381916104006385265781552367185793905194787728677309976041559258949895482705020480537633720007883280280858185838853585887266145965719593295910211370199430174482861780678807349172303008237738263283482807772692036762066694535072981019263716287067327756931626914925514199412695648704716998176946483151875190995958096642990742948348200140837742864388484089200533146733411549439626428099357385695604089794235198975897194431936825555563416857393024352271050533357789036345434375251432849030299562030195035000609785825899983151595470266819582493243906591963961292132593535053289209693510676035277682067874804005942653977836485532553382008659994006420519841215434124200678837831803338110785352810709334384604392519933526468911171624740576615334384591771179545825653229648343018771153077733340899054012536506382576217316217294390930986779976275477465917140336160330927630682141821029066170281028920229979080044403009654066981960860630214808446155861272208199984507131290198133276647859418079198041276627932323272324079148452661177391478997003175014076328776683315930819464198697998563328423596434128799993936751004805537225687084466344254244748935204000606285647908590700991088786382545091722914193042859035086480119817419535899826295839801476742321546464288047552797932476378758913207613844390467768365672512078732026158117210883916761020207920805733569775658159643441382833330710514714513480525796399910426067591706000750563804982677109932361245216700975343086863755598313408810176401390392835811273643580916228358744458323011932601598164675970929187638723516095726877272563175348508894544282006832076408680052374612088092100052789640750632169226831632906484530016714816985138260514573803435942376905330295352183934808544018284667193472642271285042179786744434978940709818733223423826665617301780170476551217992049527347192833307018613298344159441162265824293324192270925887942232154981113932738627356243355929192339674967693288932424516578934476582040977777643927632898259454113559206496269709361912713110340388721025552513872981397296450284764867374925089580045690754567258142251847779488871683951504379618178886608543566349381148365653191685030590845442803991211101258543039017598105946225916153690495327059330861645449228622311276800727035388672778322532959141407536308992678996721787802332286210051247816017135994993050466995081119382439739102166834567767357998005944945822714423848519041922284449243035116866109495986119106950714159975560669921281773053576447130785049701324834807723308980138994208994307601783539655647448962235177850962553042915000298710642639618994558644677105473967216202224129768762740816387494581643232523644549356461606461449314872292209571923347613143380006686747025963595420403822025461199376001834181245857974207674869482304018681433444859044166510478153800867037680419437843317596994016004745795275465881282499387312672948884682725668397979220640151283043367486977994983629636020885144674505128374476652716647243489446877680101672398067366664323654135279485982996963454296827035302450287982810209200313051586828690345526467406594295227634690516639614557844940999979826435762504368379363191252201365792972840985781719803371237108523985053325220702266019243957069413862363842016304179624414880397889309537862065786955438485085772097815758718629324496350078830904108738409565348929733414870823937762674075570362072733845048546350357692316493132373011649264292817013471787421324171895932159018674436363100773504249122695812846961605924850215549215958212567093088131619101346288273715272447194820689912946869301942415743511902261244614984866721640034028885913004991440937041824433225096873986419967277381795909403377258386406772075936333952635304142699615446192260522301282823085362189987648792790488465379164440795407349698032269395481412002083716836385245828697744870506066511583388995882815156649557898010754928700464123724080363923070063676722911938147137503507106582615383635116913136895374877658483423196291749232590354598525508239656973818608646457485106035622618874499207314305475265268422181475306781831948958645121117667514867200488290973258132242356386408290876500815956622152242231054218825492439382808005560010168049949665199675764202809111320432673141448702809633299211895930757755617044982473065081707366781056417640816279752345362493684918564373327293898325724819931681637818018150295921579460491591470951562306506217888696831671258835868495767293513453408294036451189962955619759745037730433019318655895872169692382824401419805969536315469093378048856603277687809486061954597762048464295885032765892027274278156200300309441038193793529489931525706759184577590507391106410796527062254756957551967875326138131569156724596334089137537344562796124235717414764500275559124967070559983762012580487421118599395734046153734114296489988112030650344670208473148819825129104156103603178703907088552698213666923547376283294827107376841399374458077687226147597491314929740900488309387753598287486920951804649022227372294537452213647394339558180911091267644523663106219018537949095325713819329038098997744948439576590444810097216349362200132761212327148793605437530708149025062493493487549729405225245252328910634800677913344997426375281621119389421363374480691591922264396369003421521561191735471088574821053885866778507016598599837446439996293868821733943121272110856016210923038719460559623118354646168155472516671612323615076663386534925508122775014553298189445276518808055936161350014792137975559141556901339375548106677218085158357963902875861363872831332698045804382883470549515142537521843339487164935084347755427359749702725977069306294708481642225897404391396365763446487167412804984810448176503088290620692791241184026690011317951253012609881338469480114513039071607562605260318222785606325817167675045349781606273440286866185301131228367949573489241368651008266372056541472662405022683646001095113878145661844291783151354359530747353359473999519113059816732448129886564342273869604549306096977176181107993804276105671092192223626483137754434254310158954429357637716300753270773813409213331437902919336722465898410497864281293346614767920614626137484166585822451402385929466814841491281304170100495059735787885772236934257486135912385254514928953684662974197827854601546784813345593540970563246052954012942871996191131671278019952396281340153035070285557899932661773417568661927621176960382985959706294629957223357691009029779352616802793824714395841449678990076826095807596314143029984390322139808091451109178751423860109797271626624850755056846037733507816596673115989906960385455366689659280843216766289468677991018005791862524997736079399848093488687303654623228888104721820958931724299902316577587415854820996643971005196434895534083367671939127533775915069597113453912662633310581225652887698071332113416225147096142134323708308207499642784827553698353912787252843467125036963637621428871411617219883421863932852405891394683933075941711988199050835094818269701613998050349350462756685171535248130514218524217763050662710740555515166569698433627306074590720931080008214950303139454690031202867446441986191083714594659814438668727525650152449071983946418473823496399794204319827537428770382326552209034112136381541346809067861091954463396503042498866180039753253579714904449563513458658433119256508603192493421833972047050554824163065985916098168833847119955371199926963332949597935999493835989373415471948817086429178482843156061742379817012734180915173987733221510415608623121191972134783336187704528122462721769719918144193639296358644282057681245908813708086602847912431161038475973657415770846434245068721488344286648539190555990643516970318515112009168996588943283260803019022829366240165042413865594664605383036551747740264251350312318689797813247400505678312070343624338518614628711101259201643633542003685097970440328124388825200950266360266884500646456990556161153649572258196358237937869595365488311969666911361813833648521769416091391436368513540999238047454200528987469731907090533106069443305396740946926506424166602534911594680074211706002774387707783695099372573408937151373853311961954825814156539147749989710722422036547271076219434689406898965419580378442374007837352039971556899204696943018927688319261303039696413977935034538686053529111287517344681381063794602900128015768180438752520993256979145204711034885679923706805076490690662229839251278933634037653638815832071553033152862946912469343149465537169481899975152394799386277720081405148595556054091133578094138649177183229735693467395549734008167224268210132807000660412322673009903493434719390184304177134091605491661323728988683867464296009989571812375543768509802869383820061779918299118036927585298865976301596253629316431582898450498742757463486202133161901560870400014219283755855170204063392468319157093287628537213750730332217358440766641304753059512026230363396749377512529351978301315252062353487718968262085928792600126000966765243022633779454372712559679632409592341240379749308460396566301860610845337634350261856710264155797827436093648573623575073462971224208285209757068375081386494232378297581179100088001490335236792235875653156006200272016887007276033149880855610950836319680092147552807650609255699439934547215396370013596238642917451401090086676764642629489460223048814937684769528550139509135352197009781725924854550541768058723033886260502073824832944372204830056607956362795505437627968037040763448732701014667539658874604093538068162903874348652173253072282326039107237637389199722373900988406317752554712232940956801462669276200221305787973004519338671900415317739128868311527435407769484928885167625747903692669764789418449966205957482834720976181075091978735340896112732810744601517013789365996298959359937814155680713809212392057492547886451601169728818720962024821512248380666151448156544118740014860209242335528346774483428301414503790389180620398082708358257428401676424487365588741804693283234307076030518125750184958048264449361700187085542893614387691253925160934218212783360436794346358970167869419516051364346488101980375561315002574449853297789295528036895952545979793470372216691563304856755881452904885245915893424495583946097539298471227874444889259443505231414076081192207556547300412234994194819811591690671961468672462360592587083815172947791857777397459587759119535064251610036356688143857282390120755062825285022265163519755218086577878814574130443431749933599065368927643762095386071107044447517762914781074417259088849109382928355971041909510023573954882797369647685605464021177810022454250884312880490502490209896768751984695983293520518000802584560093710680610975041414755747235888539059825808290845281994996063302137533944445062974015517643026434007347730840064590277271614662515456285177706202756483162851583967010467658933163762113665231674766530187024835352284900533316009386784113957354897971576020443839178998103043047140493996055263809768267390299360243209657445438061898140195465048063846973376696375123667386691532001770441185341789810974964086749690484859762169961582640074960126238924682812811740594894667871701453452258217775550288244047828402409331220204005436309237824887423275922351686166038643061313259303023308274813233798367551914312527384187401424455771770744042421627922367846069470996940494804484477311136883036641924029539818349754605212431764888942825188005262664938528931138361696441871772842153322247550396860431348725624872972398547350859805809026469403392952782717060884467704700272235479531973669874002539091487548840355197532744926130434363893123128596378460995197538320389202614090633204525238817563031541293816622089337918776089564458773031348909561215763884852037949402746316674423980658906933411643043430570325392218579240099245933307907099470333014443135957192005010051954463965338003539974657003552496692555965157975656416083717732225867398599487697832506328145152079586975558162238491790316511062406178305763758549790375180595138592923608398429764257576280378697741082460031706936747754577663459074027871858203035645633180518394022087849875517770523482487347533946123903542704177422313195332185356943173754223399295155173187142746539617690998950831009300296788310023401052482949933903961077518888855920561873239665671044319393051992144628595481041914484599049611077903566776108768661740780990368381231216367689996914961283758979017558444439545600725709412278744441691985924779020597041557549667061173080431763112725231352404349069807387068868129593218265651196059204227449783586862336292188454908395843632498629241748857550058231144103228334812232723670816992926261328730807549611237397657184090442392051902926974848900718438747636754883002741916512665066472579969053916966085575108548002651837108615842293872772202908866704049656609841416476254433504789809358899440001780795080770053607338938482935486124805697654090116273352655526271112239857662147284826910851978479238187850369192309263773381315158680835523238381381117009688144310780211047135380363693510523765032437303998925287267725313047801696510143878266833445387787222135670365773294147684025851707415272799122617202090618928215613874414608005407397619457493845787244388273697952795712021771941471036245245077780363506190230226099338928588510660651914192462095487455156987914191752649320567352522004941715292490777193521984377657117031148339855769827004368846431881737020418312086959035792793837053067245426776722500572002037304930169288043878990289288768753842583316250095780673918978756092132414645963198726835949555626386496928032323808058606522607652932238763992320250214202342292820702749005821241852916577327667497989360546333060345789246111811988876381434010198239704346581190213376423767691284061194534004315177130876348355127049923753434110981959560104557752742352172601489529886210156654359641360132532959193343989821102233752431042228627587546270816801011480435010407020388532534739108527079063386111793037019606170059290758169530019258544055579372250869271425286039010912883625122544036333427042443920775560564278366322689810895671715138591287501578324285802431222736754877424706074498943109411014284509279575776413608332066017588904840858242039886948259949091748975284233358504837415182341003337260006782557414415281129543531713763280730908778246493923105688508781082632341521106115806806650744516113727656978857646143735116698505887761311153027810648424232417704069512775070686182247089819644337183149665526300365245413856094768182609685531801862416930219719263012138623206198596572631045208813451035517339236876652357487678312306314272196920131293940880641719618531397267726386459678157962033962469937688465214134805090796231561443586416889526493400642824582700755952358156374512490424578750311741650186664141587455910823927450871505847274596529742899605180063874578680574477114478644239732256701932942361759810354376164534397784716927823210400735838539524347354439188129224881411785554723892918846957476810503537672545949034971988431322263337921752411323704229605007737827359504183329849069377908669421571108790376463838588145646511056434844260678729224738920578468177203502119119281767639669599079483290568340197420644087811082777580416432086763653472982573087786648354154872869100215478844111205410393864047026501522769660519266849214246833086861718837134241161997710551447637577390364604999448534758428288507141668542816392148000997284194080593540827058103959589562712864565541071128218843637802104681048172307146530503878317430057164559678511822667029801169575278458300484331919273066800849387557411521145053914215770755488599950221344780092941019608949536617337934968101005578931763131870018114136376519060454471713987623275069323312110353655589069066645292287091999814688851500524024050625271316886929153209124169775497541496295179491349196331568852033732150154428071291584211159213669447746080535366418572578908508510953399135989068162966171777601947913917133706821466282789076378168179033889676119796060611296428554824601436423976117885456218219280352760755525106873603279166380686751968450979130379650020912885703369035820132828484196005148691334890727936538612212704144316436948419992567819944356417255344937691195689557763911129049695691684146978357219287629228102863371062293424802124569149174958592769805740780496557849431490956289772765830535540286678950553988565826666496627902002789002798980942646825208487645086152667121705513975495344339657379461986242738352884442162172819147692711492463264592174349330616562480438199674877016045811418061644916377591474382721250615606278794962246315179990440502176738672157522873257447044441426478431172528796055584186659234844688999060425261352981723082558800696219824509956591526082058251258684570774358306332453031914365547658793228300507788181179683325038839888841463012321499863197186586737257934186138404553554669627247424377536006474543718377039412472941941154586110247617321219044273005408887554057247133852880670203085727843968079594917668898950334579433569881086734905010366057150437789149388341207470864981610975592919564106643069514378694345739555681665529323622358456117112741794461988074522842898781581507048908746022192088566635352055800431852956561703691410799371246736604996045194705380046990113632343532609844639623470119141532274316469544498937813527337908972753915095496006247471085337478323003131285587970035739338158621006349487073857875204723643349198978567499330613283629739753738721245045552645976638994844684265265845402574036039917572344795576005835080547959834975551405670355206483063671033386388696325700243347699252721151449345984451355630306652651651730803078069722745579466343790079213808473079547965021509358503095603345047054734007906340195431754454866513537231260626909076437529866108481727056503852715273411424717538844913443108722573504444505985615618769945696575840098909400779499473460573756245989743261219080709180167027410383642357916761437251244649302510063771701185850893515609011424507982556328685413371139816514297149654139751417358941013590798128285504267557163318326394220531926356744511699246401519000548119294472630844528292749062108953659366414328727502202896326714922414826616563137865740020794926995416359037027668042197940578059851989952493239586189932792224025900573404633134923488102276745413549052401291322687671230367990806517008660100188462797979398004938695018537102204807676294899365894949513920401302678394880714649538181432002347786514160247307366300423556894124983706830924124176038650745261347570855826284229253034993109255312026684768122699258484841754177921417311316685146356948609962261678990216320730101191062143174651175452719553149946654516942672601792705877952786518288990696403816243520746668201450535668810291747376090715833901529884564611858921686411096747680668491874164661159617061953796949454242194700213191388701123456811738978109831385456099631953863736140778772375935605305048853410534313282928810144556218991590176477421055522469177275980392166472661525302094974728813646885461005975872197685673339676199901074946192227914850825845402159281258975955464531174644260352318684898617696987278248489092183503185555168277511749673287957213382262103056697436215837379086646842582627263213964031286111035584497709420779305605457504648662026293450739858601993257144599216981045198985259286150548409632486170583501946859995329731507495456974351725870391037744958776594478072646381415767474471480296767374820358031611140647642705670761574815990710761247499336960419325419574950940320154626290413436289146049617963904653460424665273866215858875993888022482972203799605020648744598119324955057311671371833706336626107082211166802520064226444093586691887560575948962454962318966214864222386288958435823076827027748587340222826117755617331753297401163237368952589090337723034967995402565429911774578287119898631878266798045833754667096710367904280200151207937281822736594267531233570265107317108711248680044478488458616633523292565825944123447249336073793351352222794216035451597859072851700748776426135405805606009270755613914737962734456055094165418188010191747025438702010795295703964644400245938755357923166062140252601643973739786481742146996504950904292819620255354700330435022774139761808353858690324656952119075888267277242772994376876888018553647740498851185653401778923177652203024619249987060197040430933309951797117680650373611853239902324298908398948222983383800874528992827573394686983909959793731872658232444494888035119832046135059017097089696955542548808324324376251845660199582688892315997259842284240347685923960806788536088942880895969400816814742024068913940709275220406153639260692406884479897068481985341084825511783503120887641642659079695841742083428006348732114804545683739947008651809850500643551219538219088693452295280968119045744552592104276776775083634064870381977074028419824520385869012742424054757453057539772985755528615612808739928572219280481402436096727513415433615098600478851229920125096232212029643802039388848565373895994377074785641503434144083898360260308301204046288969252271453331093604430110322342382997717773437537792953269668640167733814775283217536843350533544072835328567242070965808873515579542510816220984637967918309252711176087932123115703723092581868993563771834422048345623362998519924286381309795568597100176832700370808836212735702391686633418135780437296175279590440069560388895981036376949034463251172407280243349962031575429057033629277693180257279693781431137039973183025932872636084265437706944237973026621289421637869077147306616817208800234025328577273909043911462304275984012836693652750299853287505426065533391709361533366391721577699209703332806307973632164737972808770929667193074435042437273635062247398769125124576234995619783213405777566389163677762838854152092138872123350473043975480268267515364828923963334500405920593236409671830656771766893050207367805546805689310752012188525205031497102146042546281484332838906372599109818514314182484632865349903401428962558866273250197442903854107545728255029374014956189741323560853607949827861051373618411817809865878541085160254980987061002925818436746349366611369423481620150779918012928843012682761388119969273980441141952937680227599722472588106161716937957971156131382491592380297073310288921092638386104644182226434702972930669518203099653006161436000462447077701353872192560757343194397521738040172104171207610889667270887987020991605223197342249257307677871871817943458018284823137347217269066466571313974079142812989356196798103970983930355543248298675953444564871130150184217751328514037928338525759872679679297657583376383148763310692709308654649872496261145682736768213125547813354874205112871522826120052978321248434048719453129577441119630199418572782973274231181949401816610296026222952826882644058600969438692072911038145264097860123318871175351713297064752084581518961886318250885961764083460567058054400189720329108852362555483522512488237216948640326726302702291866279772272334191772663732535683497810395976326004914100566002925092147132998115220351498502308073780225254623217888072037279464564619880139172951795906642224053323902289605035682987997882054922976156020867980822705404995593399005423903632475764864426423635003466930965411878904618713629364888422238631944212265302784301960559885411311728890713647974316475422345611069646249514165011124583588282158570473455777835438617653682655181053548009445166316319126984884442227148329920538130944660065736848177505642550742718372617128135851629467645884737750414721923453850717354326401331987847518587875053202077768046969193156744083340188904690682643023318300390688477456982233754441148861251015334959785867361219819914739224201823278207465356316277105001680750470515389318200596595109061564401164672080177386602792751939420151382599167456156719613740032731618062318148398908247835969352846223326065912348906425632129110498120891563760666722592966604626023635956741966217466801787715720809233184588830436451728586848462803320626709687601296320475265970383592469713346109581205340440347938900388908010966506353626711215105427509995165807436847108672032050005370435262134748469385692170364776909189981033121510400932215515681272075589849469298456407698923847691230679658970904506860207539147016615354225590391229159773517023501018824737185039429648226084311339204853322843856953622213329690885404140148994293593542630536964625647781836904993939926085229190107975428722677261895174644710746725050445124830178382406304711405078172898220173280949147125495810146606833879177328538031926696358238553204342351257604985570359885093174198934316451920846564584446479119688320772573125151722215722335361804767822071761499261109859188850149328643589155995597507691588273616726294994896252073633132792709234610760335596477004855176847048532113625552508366999786500221585874326656070517687639880404720698711318994639865657740552178441930611506956709243379825379219214453317556636848578512363314252696231182608617387938736067216408726993727525492404333478162931574659969149929081321114754868549524337338052135900177062830736110646595192869637383933284737180372216257566398589105155181978609489672309371271161981916737580689496036686881456609197433063751212530797494192615879854339631042000794800951753542341485562006692348219949435609653363541975313929963729489531363559636878839115286626753921276141912469929114083701698394112833392769395154488111040082588946670624610489434116607858341170708900481242813710777951605097646923020186641836300956204068907401403501202009152286245069468206452042256700025350987535297996383325583227984154515970913356020297045405305837300542452665163439093377814156794743761733184980762626890610365565643365045262634318911144300275592616997660683493990685085676698188654973875399709307128540850412933949753932298228911165301331059820514563634448608759940367857890334089734183999822744669492222592420009858128367216157984488919264482629140436166339730888127917565228578292739696483220847807200581169220569366049763577855294585551279995177029091993882409012923552814782666304657999520988776172613552471796552299380583021672574828235003603051732740327870853254537949912558033994738185413155618584792162006782608827219678702105631365367378504799805198513867452354898409338567592271625395028044855016143733447929000298995494905053911329226734490969364436524870965089407996531148485022900263858061995741234912653244935550670574472610310136533779949979267866595101218281304119120392609965849475623036984649413242530202331954893631605269262509460296962506281990114388119480711054716972040934225223636955041059041110477720572437934322605070180345577738900805227873344633133195242104897697188892898427723766046014287195365659584689678763493421457884352006917531819131559457897633438483445758563786085707252468533948844147348101166450672903214239237786332888043882886490606268443773431278091180073232047429243478681064234103043632672636747088381399365714119316714920980099777452269806531885019129734735806043027582067349439306145348028402790153629354155168550923897761752134135214443058154542231216324500753816909907800022696308609493884110318757637447291436144199624198100542223444508814523177091774482621677739120752105514220314412037662785772158687992226793299827921067065149186259511618455334267230937302665530320143040387351604185155649101830397419002926871090808874707799583338138582602966798969082890324211195989449616544859488204656904291286327046179331536043938166550041253742242794787322608453787515605967810766225921413277826896531672354532431995097190304090987961832053800493906581169367126993276251493005808211784274906961587825322433198275420821474985173829226883093356752816500625896220707793703969129462107768248570100404793321615331822871673274773508841787094608070943982348487651541095281060191125737075560387865331656202509228503111600516833835101859236961957314046115670451213436186711908196614590293018391093700657212946926294499809234396396227180316751022708317222258933497089868702510330064565275839117020613920955943391345185063201644239341913210718545629657541197239454892944779117298635138228568980088486692456091754852905070682730903868746074188918717288535163997176766498415746438538378619144357902280687905285866636968508104378240077234594289998027691317340477113159021162291774922812095601707611268097615981468629951022865341963089090836954583350598310487357344232200204569935040761601649301158816834955728093003879412818722069755283395815569983654034452732420495333232324641045221292077855534804465081844720101720865777744752211044092641914277855996772622519856629587023078414132135015917168113149238826889798074152853445576358682136417046812001492130536167951377592148141071809841397296269966719170426408704310967419834942630480758187783666966387625827012206180393385861914705138778905643955017867286977714335134895265871051087995655275444856486735491601678727000186515129618519984943113593901432692868550205589342899806853262595817934633180426570514484979124792055964927223342623571514995960278548964366397263679167729754041984508268485970171044802060757648720147192377025099967184262458037012079123784110976203780776083165462288658884580106049570258866617000298216034433485018570746685129638361676517377588047336657125672894302604255838093138696268320428920853029927109156448075504920071759541366222065806369200361558933121821622938469019930978352715207422979715723959368153126739936003978989198116803047041379334324534606339863450812866643168490194041994093004058581977256108019728788017068718429341772774894023905572003926590834383642002476001093745115507757423375206107453231709691264378208473535365270247746714107391006389749936506883978286464653851965444110564217896759131172998290670363453650571577210685250900803469887896441445876780723374307450389841009374993728840550322971645942358752083296013063137279152741833157347047183646057652645325547520026098229008138371355278674081533162085875055797285225915203162460004920762531231425223571633340209908660593313476067184246337509234886243432721260265263005060380176031334793838277327999754234529012965341354332375940133092405334152287967905332995932461242756173504319793077291906498501778872106369537906036307394215133868224966059982607843789980454218977505083403389868997910278667281645504868071112942543721820876439935504450908429637830085914167791337858599879814276201987664972298153340381644603937266267100663655219549388567743845810594945655701372309741216447600320762196467883179574860025178069976269166143850523283912540974808777369051839464538739828402039705909885825634684264106162323363119300843570313849607141551679196074086069275756570859155419102042223374662582920360943565178446329936990074186230145116880883754453829797189281216464780836012769086919891038937104689206650085632406332636441285554336468558397351780776798471784129771749818560687571534018419864899168277277342936858713505584960152476780990992392431184510113294625550878360810374972468568383247604473236658255138192347486950807966715748248610756537207911893611457007902029945289530229517630345582107725253397802833601971645131353714290384022738382323686999275553391744963457234960456780738920097891626368859501266098628107395198046631397728098500062465992128895625043662594792748219012544186187151429621796935017690960368141187753608329641353248359536690077814998020356224740934481611745519742542341973456917976386554194707760368606238285221617610622944694999117682836787707875996646310321261615270072067233894982461998940552337595218043052032870420904957036195400469762926599573189449599991280750705310529552058020324794987842678334243005531766570776816874383039419204565289536960307650164497369747786476240185890742894760106621477859814271669801605946108486365047254707095488880166976526869953625329216441469554259510799859804935122013261381544388666913889493377576774049387351081358458769802727605674463806410243201851971030703039633487080956771846783018978057891749263615154758025243197929738185073875961910369482491124676096785359112935613555619337835647285258505829828264198002434755489386214732573298239461171611183886451383678187422848216266006725123200838019431527981870314515061445303637001306603607872981441078716175451819022943634953093393784789952961969758830663896880432162058807503708170184501434079601730381897694743451823192603301679927084088251096482904649383007137115293832056345637791426262278042234291034700890724936224676001516815244589904465844363721292977390120081733004331525987433604266082591319637662524472280580486656201075931691906239577752633123577000761608506408049511693311471503569665576852105393709957063531050865569595075467996103672282052817651941295890427106268999954980655302590808374582932657313775446495248368296811478042661099396051433185649594680610516847096859121275150111735210639308775077404741105982847322690865790456930029397511823917624193853335944767239313937845928950310068400688739776779115578040648188445424440411043777756239056504358745146613736948444365903848051784567071534175779017694370040046782610308889599882484796585350447142881071351760183844354064820748457481082304246484673872623960756453717279318584473230993907936274963603574088556737192212323869105112309350917792552319372890077393732196240667361460375441976935785655134461217928276355808596349106971398627662797309416980126546361681197826114274831424471520026699994932058393121600355559131512292702133365709838157379974280727667561331310855456580719442844658969176589578534910316646942314401719680364470630225037470140302683979646255718657809014511509368859685331172858055938346857253773646753649908174180885085762692510149006761028383764542442892038543017080017562193938136006989242453739826885062926626048716668014412993721040974273840640947224868661391481879019555689692736147008123510712229310412298128563818922112787102865478910180032493890915828051035541313047956887516829449365812646282007640287047382759238089828437666522228790694608966129593100712777945163372706534223965519765972500124761512109925000531473583940764846846428015893991980110535160522072630193218505685064984493325024277405494787262297077686552079194533968616691970392273671464527797125695744902695314175152792145778865633211022417485045596701107570736077359287852233537503798642600796911035122478312682023607240934360199711042507805990616746282637277739514487548605297363798541674345565356722943439697962901321350335438260939286054331524300177121446346391544661238802585508844189640409240843150252547180854677511151171707323258285541770548966066863913985019218356508930189152715162765877603702659125989788980759114402857990594656418837296756538365050054047219966902743686146123440678350529538830670695792377087176797139079923380555719250089045883243247791882117840526274941415266315336944668047572350131902626161383555924414140832763938376347429335534274474521599034428101969810615689066706299283092101685520008677165214811878422639975562370344297026878435556557865116800696309406359570816610585757653598816036594566720081396819907221737511737754543071606189558122346430933896185734899063759321828618429423959514000528219882365334641200261052563465606167636027806785644378485391050849082372791276786086763328162811075977176053276395766654406836157849914837015400375687478276564452477673400691742302469076127162131527011019634783389523142206888133817128515097794743952156192096651813372859624577493209243884298560720212630693123306238520671374295641904199968407380237522546579854428042942462521746876086762411764926870203568422516238917340550628514239975789179614716761516993482794988118579766520802205299075361797161605876203764997445700369803974766004049822145169393312634434599327706558657865171207907585513508330236691819590770250221890321333264168897513437575514181480368167375177358471093508298307367645875782303030517317039106154258373656819294319162943692447341996500404931040652303149867732802453602057479482070775300883165553017097139365824698836224073632732969439456988548733739492081994192982175520617361025358005069963340362566062450101795157848821510178189609702169479954482939238293255213128423449680165558042213499404332476341971698194410163430262251816668166592437844224772839305678085920835099724834736745019521754451896798237255371769699448595543647276557206774536034396588803969844930301862228553707197850917984628368034274898984318924159207794948473587852714264839358153718889686555504940944341785379632689350106221004603800610102946091648542797766343759544233376544455642448240544392065678367219527886250213066076388663720141310879215497967241632352243141509577353599647936998967345353603714051639510159278494546244513601625782658971845882159982653269625411964158898496190842830287600358220259730304649611432148832951526720889208455399888809661239844701159730645506691208963771439703791871999071737722610864967064994597392542397351405988303750646045096319255507264612346666260497402148199992133854526122367219429513761444672639324686444525611691723380130529150262084972115628459914730037814934633481214004924364181404306174656253595796469859197770630081363604618017446701015108507908717676103810365259876692046603837111309711349086907101645237093485355853058994726793145532982913114433302326152690157952383332386822202340908202052325219163803038341005350810974503192984950042083528011007598951206978004390575208672940102462175121875115326832192072361533181687876941001210551371377163184332578419437095324839325543547995251648891249017076997270306611436484156216777651465574949593041177459146039075012491217859439222485970627411125490456145815290417044118847245153030525009983325446157118903781408853100101620978732347443819810975639796693376650280375483010092512643737802957206275093840735745344594752391029896696581102087981872105563187340582966121772938041234575800689447081572820090783625515439840265038372168597051268030052266670315174656944260099929741833571413196985224732401428819938938392683505106237338468232159206859216932272694212670862458378154806483664078377411212166461616127705525186952603732107991300979750287265025318670895187406812555083643614021652157492884216868777804984586041409315485063525511498087623374526569743564084234251035690060016331586649524403865578086450648970691662918222317913207176657969853121017848199416529212368927324045051748521238736913840528246641713178973365472759809755045840797750375152574111049319821098594185915149748805788291197880245692876893840429485858347872143054461464198488940174287769028580223614151407712248375337072041188868609274241236409848583633731936301955973354249708305313396374237439074226224308473858866400958591645302208424945407904575480999627009953512085913363313892749405357638574564140007568201370420499442811188598287303252734951750392152491784700242633399865108624046415760105071211563160550541499066018994637231998206965425914004599794731622762200365555598724614077325615825367865442615409842273743419281982751161070535531530297745370044993573026446127049821955038774336559786910837216576696209648278317245503196060134266165822972504770384966329311330161557241849757939953352890481920789412232609145926096454672472843149602141756711752046234298306900537166659180255264365945979596614229617603872392837319795140940743743230774743302766687712578317566565468046904555701446878442331990685027720027151762793497760423581324077143400788507655422791908601271018012127712126790016941427672807138604185153966094822150698519947017134940732689638913548163957000206513975665301654714860410479660006017775498522027305767042023175444806265873225717506838301270765018694802171236741872142721923072102913047516867622075904289758965013294860841622244877372530318202945268622674309898308665111945371167906284165663296623183347953308627709585750014473478901036990164726416381896174607463135461941728982395788631870847908712953092330777840566325237706883912212383802683941228290350103857826814473058954072057648134220203852155857898421506070094571913958454844291426551609948745299119112682405538452657796075742651533541184026673348747124856411876765796453882063228714690773955023761790991848332151330645048851554461048527386801819252843476739947115034831788086200690081356304052360381019447295785883711739173509294070970238769935243167472464263436719333870713685541677960710919175655253448727352447959825104361958462302577925433429861295900649473611759960781124445467122381948537314049733694080340244233889538942494400151979616597310971188288462167999579708512828587973027448528585281695569811859305099903528856742755357955658950842817309544473875934389169956953338073711339356368187558883620176404406109653371727604349076731468848226495870780955738199927285452638022303438970416974568608722150269070362245089827456706793647601545671725385143701554416652847602067824736353501053538051055697899073976255448816527960638077605851712565049144417856047644748803036691838858155500342772179034644737998804949960030343836450198191507784034566324685082613776341071130843362914981249686268502595462518473031031538700045305868009076497018447746143659779375034068678415799179020387855055140557688700865763431177919168072974972643035147136872243901563523553108016867797193418139887500412736797652509161820161485656423344534524818562460613807091575911783880517502730783854994336572885427776555565532573700165067055457813333991760235475800920730780457106659008307782596336568266940085501323802565028044925437811037184471885163870089275416900863203194716637710565230760537435781778657908324842093993265231473217512139301428596291048094712907784983087830338778017637989112745803061640168538905887636235234338747489946671838501557102552348856558672053291820390620894396324176465660741157289966083694708630197483018409289974888241285743587220540749642975194547670787118230222191275991883827658204143389688963537005370984865867713896635007605259190156311144966983708138040251260840036885972431104260268708459255486693000021587025668339571570152313635950118754691529454638795615287164926015643332983645121630621014733405611614173269402976758854782745866888122430329846644460981618024384525972480779968754196530149498228121357562426868412605933927363772790601178562087306720569121521863244636350816607847211022130778920994453175245724650664674275339109543101347820140533448398347887662476302734716249209123756499622958706630026372050483269482506352769214738263349908751004267392560438611796766121408178402226522155062116760009707384204349270660617973164615456621866749738794043454743066756984220903939391913565482575966311521282813579615895150149209325386370086325584043588262917713769090089249683194821372548889943686263696766384026958088776726923774566111866844256153971523977283833420448199307568264889840965331225936337899193033173990541498692605411282668502553729150403553528536711946123671204234258134301478326784680504227308781218626760956643972977973644824217832343390927708590490153874449411952199817758145429566268905055704012142208371737007931980739174789949585741708540645218144078012383898942747412049926872952709403321333303624793114873567716402155064126814573193943816374798041090881639255754647338566927475946504132965015992473282337616987119578971839533484676398512605817483946297770554668565575597862137951665297778558065884631946398915777566015941426505858831552507415672849331215836960573776901054751649406547739347650076042364558356161695408481058774965883342214510410798787198258533880537914404372776545480392261175727458249562327598829953972347711521841682226862251902591661757988401690380175676676611858459548811864384279622257355479856791481609741912714283314894556392225486762310698849647213631473789843533547654154241726153958530309175027882596661142557561067058855700954694144842261458471617969259726005101070919457574739493490531201185855051473079767833555924676132581841870304460493136217276887753094574584407197403615369410213843097114208877686027018476080250790906676901190593149870079501303515982204611712134311773765814481047384554967318643355691038022802195723426773764013282043926878901216061504415609439008577475277584830372856560530933532489431190090720994425941116329037224297339781597703794873698698190847861450238053081225339175252943160011253190283134866764537971640997130802242220976842653406853306930922641330395720382547319872117598249574637805296062150303516599115684511481424329165856063455063965612003471454866532160313016967894137746447922791532117156009083900432031584129908620577341084832114925690946372831075528347656800401268038319584792246341605341922228991260948273665961775085155742038556911396167018088919266663557355075072686584811889773334682688519828434821727815795006060241888858187555326289030391955785350914969148494778533236123528458052313604190328436033540792892920346711721846474021857840773255452879301453405119601021354469649718791020382244374462289276268187069054393769246020478427444920623301530219199228366496148801750883610463534580585912278624712272201175288805006614111009712009747718744567275451679524872432035132347931769773743438062112168042490626807106272105943126000242365452034303146828548728269892381773681517951093233994778001671346630797932785966513246882167654948781946504674964555528175427031697884953508151528235046059028379494134279615074203119777831329934577359698510634717175546452311439359037400450360642016517532453052158062224830552432902961341072018701463234691732499270229313653879687563287258543756308041724457061187207800209410119984376566931894809979421911396262609419573379132162476762063753052871369168667782686661631254684752203574404018216111182613165968734640462564946195587991120817082514820180398417566680948898190232122604707379180301465043541028320546142022858855001113936286602365088193172506569857943241086501064319771896310527823195455617211216057505240867891772235314996666385593374175038864708541910492684616144208438002516063811307312267587141895913941777123451962535397751769356534957758942991134443679325964934509765400977281836020004467919642975850796158043280394426714100199009400357195565092522147995040582541300292108483289920359801522216145044156909269963493084470024650399148958589011655198376425361848896506056617542207975899523159751825503834945988214948133867458334460599867809620478729536424478344146654643729854412803531792839230990083626940759835378207419040567272259181774257499020680284081315791517576489852860319905072254058884969782380986944797972245421622333342339527494776986798361574191159566898389767015437909846609750444726515550993343692161415336270964449025636666057766296738797748310868738304046734842651344515864293420262173670239739148851943911350992584703553467353198926017910651411604398979671455781678196176401513772951609586778534624242220832455337492438413590254163622658371639458674331302187195385276726189863278500479256709159678841199743984587228535105369330413313968346921261255344841980403498536283188867203453242773030679072960271550550637515627735511891816113509247796202905674172517964872950074927662336373077748393009366321955998808707454709373877377252240743426915121605227575443104488679943790222588053725229505621914955660097838379457335285362908976067836559063737043666188621411255373871757634922189544463719605959964626316791901252335302820011571970872897126329688932926258675327853142785051818055272902392509916688501082110280854179615348134022135611752097919303450768695706339864670854278650820893198979033302738440508804654043490223723848647283620517161670883234289274877046907857667783328775385913228378218059225841861645053573910614448790547178989045628331801912428086381385844390912925364942647699235150712452766866763354228676502406647040263309568768716462757930518109499927790912235956147659626495695162774073275492893669909113665200854845459551626709536235205945539605443763589890720569970140172631946557064874654694388593484168652950866978726623820960204769165327789045324781090301203526601053075426731633435572432575590959224952108374448552243257884948590528299514670251700997875364452580828825520086428048538434896438774835126313940564219157040556141805811934451217596490368391590205472185680150188359101654265760226607115650616250288664180369668916870741578355057512649004314292766977751524797260927664937928275581606806973970568230337695578874081575284347550222567637761841401030278534607914698679149965680846197033860103963218968844326615630775849646937937410765987338397599769461036309322425654872835433270773006419195632750383216433123629382285118556170105064140212038772874749028229977105802332730433624337555702905012617273461442791785749668346719697723791482249914545102189906895757176011576391025422095871556939136363603271075668128668104906160331890626442696456769333976844064476005702086771816833828361594576090052740646401257575411141696185768462819092718507635918319950723763326855068382357595416530245134614071068742714536649534537405454471885074707423336645230862571669150278206982115332977432392657089168124917066088333638219859634705270117956261720965962696439363245638469320115053204877571010728309217636083257188810306511945361676605444916894106208030781106447404609763784580145382104410776616816000362696604158458193137772437423307228118476367708168526343754032173356004658644575258980826432633778630974044214670170920609029765994465338000527112313408884233977628323029041483948332263352422742154017470347128479938476885519131702331665547734330179426723162600020961917938552696770403806883497871561958842764100764538839705772963723261238258622093419354857697260632060747698345910215426832088426966464235961118409473499139000686534720167293009279004256675830787690593005837055747058689117986081216349224727870049974603221735480338982420001203782144090649759862496354879475805217877863427107445542120395555592233702567007534746940789124462083355790713757731930961832354527156055567934584364256675310919369098448128449337723419915048925757023569244227170199676631673603541192129008275901594928448790832843657897385719277512015337747186313486323766692431552868283706552209613235791009020092578460161457062971107791204306921016519052018422185744470318029327027670411332703938200790873538734552453484701381379572592038399709605630960262906503912598880801978143623165268110968049417107594117380327470000758166296941511733426432281192057159295921425745910604654412444231903957922453239500836912216673302953105947659040648441408471547594617987770462109059906578917973010577609779758372103745631297717487154640433532967683270017933850352626581420297042059102790950760839495944122342094096756393122211488211911445881645515371627256334756032378971556448569876931193072215555677330161589318418947608166641713229010416520747859620238985322662026839940197203444463018217461114256085510722473591536932827390039240668433518380292192365372021626407538470896163621785596889568539654857120687052634166658486910633726165562122954930739772303734334678759243083777890916983657565793547137689445742062928156152846349548472565331864642147034370651176346459948370331939672349182420106855043123258813366820632541738402526970192194456844490145482319966556562969386079642102878261070155328349245428270148553560379147819535510559056261039229826624174901306111707331863667692386712798438475793527367675478516781327293252719858437246613970228797757415023342507641780249764105586046315717234254163489730748330175309962568279570463340743956044915871251036633380862175939379250061333740588532196583643408042383445752382660591573426837641849152871801834560768263926815413329784614530784846024274560447146574897240407512804916360573231428244123617927938115569266734629430695529401006915686659887364925532406490832891793928063442681666786984199716219210953078675283464873375728959889159100552997404833725364746752213811776942615240851960178680923148550416537451404509882852160904943937045789469654131066143224373844297322138550897273405143090176423627238554088318873449529056712374274038506510003923037892160214139845344367204233949763365476047690257677379813601939549700955442206384864271533444627104322680862109158139635773990148498601769468252519882103822901956076808098601134564412849351419416893751840057672430633868457991261863892622120994903342256167082066940867518671457633528210565875490514911800327342357161302301900606510651303313182045647504566426705872353048740394836201659112613348818103113292587044836624080521966447963565394911904729405268674614467237162532612249782240956102208166248757544697268962959747821918403663531788623114953361092467044633093015899595595523273147363456997495817950253403638699865302288018120751150445978105706965472074783168846733812359444072854808657639768770980422198057541240796098648755232201490071062166391137109757461755193638413728127401877308633135894251722900053273461859575828667870638627399790822442243761970149516596105972567848905199565908841570986628897470620212749098172529674282128958053655501667270063452322477047709045156681717812512678609899020103203593535268656501324800344640261312165373225422222535041008301216474759110562084228803426199568464191737125073331271035068164300643052689795913477343999399414753126016549212136585551878870836489775080954802968984593925794660143545735958845942714995679192983725083030107517159523020942556956588685888380702373169862787836979371741411998326535959175095522405993112144039471926322401721521022621686052868260074428502103711622944037076043259974384931311132102366483509860600217272258489721822689011120090169575905108794624476343218078756024364958125046864598976839331915355587887788582780666217513685990404570756282268850503328029231551463580169651710791913040450951189744369955374629705342688332131881005350708483901617832351519865434951035607876899687239685583922406994559625561522248091571301959732641621459953288503218834417883527480888492648495439245849191663623202315200391957709135139604686958291391186043318625768363649543280626288083980959784887787309684415990694379796823036172040604977713282298767083119238239147272045841597336178888856751256238991160861189558924706113265696642981843318393315790533501735809643877000196747185414298215933051608571133514304129540942628259159409360420288529566856470373114708947592776729081197301347060258282257787908517868320780167873614763776042592507475947980650746147468193824583109922426268381269495084785066984789949979667868448264399428816831976933138236070825080910954228408545991175688226057069348151484534189892045295224854911011383666244074890918704467108919034113621898162920463736735607248116132103424297790682503332940204014141111539705299754092614998992006602977573981539182217271943719122545301154983238288219229940725123233411943118198600811730232516533280189568569449661815946584405518965684930337249897572852943644843440831451225509523165509191918221770244256850976911633682801425670730289321634376110801904305225079243709563681716588917552248447045945178970909232958269291174224818018990269738717398378746747874263473326294527769060143900247745742031860523385354900445692391487027490630141877899406662787742397061906602741918386245692782787203024857428222630365693080379959564410168659581452935189151881219175247189099107565148342779862944999958462734077264957804588350351547902334193297871019055318710344057399722721411775833067960645300144211360223320187547684828189962472843340600979212265780984024585908223693937415807087403028427816802574909029799421404476366708960398568733005861222026635349945046041941939652318933234633999782343057357028280843187621020733889826010754701148380922287300184447552451205688404943422085560574589371427459505733403185337382229264050383606895303361444657527651294772716144430994453290492121492639753304557140906584203081470720534656595079917817040259043696847566853297326081181790958009136909664675031858886070515708983077008232645144172729900490130162996494250451790843277164894655088335900534028811061865135276139363933957723871169245633718974936831166315993161498624849680294706097981328497050858642855611763416134402273780366263938694055991780861098860218415619767104668973618417271443701449624405076575103525550889583755944268755234936119740658668403566867079795693650518386792376846813263719448493443434363848524673904374923683459795373780856507692520227460968602123683747743218827154624246531249134807155655699469390620152902597599959225868984732950315695977347182553644935990144255683693803906176307448207459287337953239625885495536173915652656349403861498463650141366482390340329414114786607948287263598854196447527754776331785868463994917137962914132151974579914836467887596090468515371440262428045007673069690494459328086276261052926502018678759812429098163566589587123137063819606240692990824032291634795842180020574232760158190016661392371458547761659072325827656584524878996873342887725796596256452654638897556720083965690586529816523440969699496328642384448554195370542932328233647155449765252131333091577798905252810728364246029174861031880970015867823877537153343258730459537519146778869433222630325270222275591876927480521594099613126184701563959744853970737618956398149705009969403691413742822138983224875853688651637511322926891517270456356576793314431636198541566885951410460897474758988177278149326477945210191572169433682914100265332762602563691449321580057902787454981300020025913802813641658587666667122476525064999633769478481055660468876082914089414989045305548356189518481667226845811993461711606005265169725521300584396890822096245770591201586913192663840670234779279500594492269106438520193631909651970945433192914259530631735539833653327518763854811863288458583210698715317859299553290418663276052326800652376816243079256799453526954772471908665046439379715377385548477302029028161033761747087843399447483510487016732067584539269791062261479037513007333138600307993270783038122530764294006424266569894227203511561762159724754530621265646311464512283124784842214538535477627225542899909754136640681828568604044067620215553540357903568420433780112324904233389646381137798604860618617941848817544148415671959032363784479789388344518820465483859718848897131555212255280752576560833757319763278279608884058044786964830583658390758963757719603601576787944338161790513396844342257450272001854616248227170143999453280449897114061292347301763437421760582339477759079295272134851402235428180563033612400676621283726902050653655791968096635654116206622011878695317750376981748135317569913197840314635826810703759472451720333092709603268499733865507718017799647135835721163077285424269948625559103622201241475548289706070047531616748149941716335736190999262465257661957800578756519729603345476151643239541352598701107711720096541459080391190515954557420083613081491864387672136784861276661283473352942988843320028435034107293107333787197621769567463321245877544958041296586601544217676978777413109861744398005807834430764356476825461215291643169080702909516327594679809655023426362740185887188504145829529038688930385574614432427342105825513285133832613246452155379407951307885307571773547813411505589566192593818796387527354121952008173386408176080144396782132262924202493694081864351886956691546215774085674207036266655008475189854011683536542875352161395001018402455960857966056196072900541172694844671745108206065639556031404563099077026423956128598327938785290371661644675256265542051485804768419072156657357752321874908021209357446742807692957468224236928479894168683973583875125445206833841113796232796896715064831150885431230575088807713762349484062553991021722256241501473010207729998856620609750399039541129333949087650011158445937961243429617149863210361417085498159839837850392111057237539724211009202986397095002222791969637228293457954568259495610523591503126294489038450918485799767986613651107244135540400384099854604801757651242302206096119309911658840602107401855845356128838316065794734603932299916259884017682242914274816037875808885321102333867120879752758080100688210619397215145652347444269157193030910554822516917395699028990750469680853780591187436531763595585562794553610310784852347999592892971430009030486637716152522371126265799222629710505459702689427774225955746825179490931115236944731163474298049509294942341135567009565049295840516135979312083556695735665345585293772119889274836559134811159861551552906331208819633430543814593225688050518732253780368571442410666396939334861044269709405259737500683212881964877399553923831716197284790752549672700486633181858193471268027379881653288070227768193894001125755567157107997326786245329198152448996517359190304634490189219968960065678917422019796125078819352048277835521070149859370635455207938950594516897287292621802936570418923157881346051501232335601005447042249932673251564858427741287877429676812871615021022678533943200576472122988512960082004674726635535872951206131221392865109015706210416110476328135659307549513228159258240052995433456964455152485380311112585399966989617873860813741856618889903000285874724597036428680759187630923870918939207026456372497421405308505016347985970308436513504238878393744980835503807993877852936564248417132325376743686328959111730631326540263413876744551336606641908810232236309068740698753028197283121967802570734234413468499999464128257732876512638217894424665500729406081935219017429974012578845264256411717069995870169715527087105071971469774044079258728510832933924456638998177672703573074552483490311286745984124256452784386917107545864557252965990390764639830266803510401261713726433267518888285879024837438528212351970289623810232488227235548375243715256291127243430124642897302156173872942079616222615625453240213512887149778173252776465265366475119027219603606575899386890364383471637359307944361971288268537573286546555783938781243885431751210541984502813605071284254353060715361617725935750939559219398289955137943039400185091400597292347572648677492988949847838248971115252074391859929426688170193465186295009277468493787738934016509812070968868640952261089043689021248566210414778727370588002780670842666613494464626646802799834336184740548208779692311857121953984257916043122733872950114598333998738295043391528601960269869134702605262703011105883145639824121877333873010166127445529756648276349151149677238401179072708256977515463806928988212725984871796207529693083970034498447036264377691660189991197228353809048157316214420040962101623207414701142156153189075806264209539499810275241773533529151734177653994340401161776276761159335026293429817969875008936002387162936990735741252099654247920864251871057530563838222635099494747073318090442022077316956819796321341554517709830773606786291954189362454533396237039640055427564205350061706379769272687579051875406265921833619109829590551350524829935848771979045754471750636377821858292464596687486627624455198921866496404204992502205681547252329912938390283934376862633002135088818741746919613063372699365061897005947906107488442139165096331129150505114290951343781893845488537979446484726742319394781126853187881755608987917549874358096794159145970735971194131630187149820883531192082833940654943081451821272537502469839726868376827965364776624438476125387626213834267502218227141835909744788114126729578058455410676073600577430585636320113841002699525244475221349729605106227551477448007341062811806146222608741174660529616953515102726943447301764687987725491409523860016083001723209757314958483084868439159343503478943629203290132962443499629752972194952740331706483984398479675156464943523104909578140385229858610188389114972802794118103374794789249210690584708353515082344728026440778524094622834735491236022564570936962616900887552854376083523611772045883744581465947278046451709531063691916998905423507080559732675913791918921214374421591087883237356043318651103534797422987534750691440099241962662253541939777060367982028385276440955103440078004207508617079510577049069045353380972407300978656682198628150204241664548927609874131697140217845539745960134923214548059414785915149483837817268424029915535669243172440879169092285242813927968576161051714288814482670490923494512016068521508077501508852874028474657473602098489212753458809311804717372935022243049253705899410036202797612947528390071899140576795939952517999042397337171643252089939433677550479077411878352507900521660366892713000330584356101778393915154250659573764063443044489472738686570870812054208138550856421077626991842570215132949777491269196649464787962480429118310310103780163719551011263203319578455276472720176210042630536108954921342006738449742369117148304738724982239126459188081846127261172311633741347138837238175510739757185048418898431641200264948928242695618995241957874219460013427131687623054329021784120798605321968255808464404354123197198290192816769021188587187595966003566697685573338271315366531406021203212751201762668617794119581580330561048501689238080801011372285825946923236297097705243007675810673013047081556905005255945172155953115114750199741638726125118477948631483380645885588765174874314270226846700034829163094501452484903225587671429176260341409725761872251820518245892386446905468029147778382130192189001976617138839954153589546964956018865735335294305639130648361859931368015375818841812022275538036830395727576215667464589467247047915389188137113782658357256951840898906038250970346424725741904104647142054152990687804728232024496291866910309574719315550158528356780058305333093227840334813196961619028373671370880336861472786822585646103937246551634521297999795781919417494370123899492487711136196593520196807483522749610898690378673339689220539954643579107473612132050803778638014090018653966541886961053194319234832086430354358869464075385259254555919188627845143222511702913535542510500058201037220841050247271989518599713538271152959907334159185257062450584888320521702708563071891169522763532047978671913223709622356522504976595261094461076705791271240068197312950598649602630494715667863807312746039346155492461190837720357177286304107821685399045863870362962632571954586925149775710156613897591466257395183741030296129078075272120040424307861059582246358426385041632537078990774922586347816711159609973777333412614958059153399610500882749446501264013321056107584208934529812078117072420020967719420853682328426833567195391875417872905650463500082598917190067528814033373205988893598743671841879904566007932465899656905743587906895118161002877509296054173519143180970449714248390585109957012121989939706023550849206058981941542533567977511657891514550320550785502210589894103944917529433603949994180030218140418553132979436209939340653263563893462047053731127514786066785725529674780127375983645391844641161485516906221619572653310809095481049580800137078846132576464477274406111902358117884870991193507430481289934956847962564959616103479518327877667714758973279714483471073325631816116719971574700048709918047501900366915449659031238364154701699601747893813233536022937381872479030688733350618409769436059860237038337641366895408395580212998208744265788465290358758129896863672556460781944124584971687166717246611580466796277890996666036450389796888381193138894671360434983872111152365638480861888110601038847187480382051331769340571681703934762633215828548092281640058341734692283768706577881573022544375418003528552844686290991110545587509708229896894289686684348436651759247725349282972537187397590486115249580566554883792880707394447763146055611349022411018865702514998583607697468279319217784356330364945800722572264589525648334793022729421589824452560306605159336480664447230441020631305668921721754511579574358290439340552116069249852475016113334019468803939523213212971729119968224641132586369400494981685550136433129731285870507677372901393205481239019887219977363102605792406443427821335437473078692198034972843979602667515427120539603442306297180564808259318312524427645606653971823166153590514110482350111001633449790518533685713065555603959286241000857160676123443373330635382372526412455078957217656178371259138875459657577607116224367593331194788747321054226059960285585757835878107028361604621514998704138325277749795945324636825700992853539078784070897331803515779046075872569120268411439517878786405928495123785911282694251343687658025491104246018557422263289930178817699319246043667097421253526893956265618320393879253805237437903586839727794982681726127800878469371399776701039747041300341256089177256249849708936392491462216907582567949543478042569227886987101106156977956849519180278329889084872138236923029315101553438492024845714518075659959547725140805542863619250798075214016219803897741041191785096652159062061262870277844418228417839977532511698342623645826547082514179755678877456811251037390520393867298735806318898988280992130482284669489551076045476143044349651176094567138785303317296909764613124721012273435391167521589055536474501338460511132086065407799203194979284468322352005228993437854696771786342996683092177574548434959984848671415169487095855927194594153740281999569691604031006464734853595243101804675577134801447332404491705641443325050303486884403878247971643443363708075458012539857157763923844870420100440370503348739876757322519808521194290656597258443260176126139346188513704378862153351887018629799413928154422591953791724627575539991919183613820310002147012190844086990120017855865990205729631341708114373083572048503291857955709471051053825865113358865021818162454809097797661888229886110439698554714593353262559014128443234096306926194702305656866552520932921683108724419454675918450248910485480831059168958912117382795531567227183238191772333080578783172729394282235945483571548026981306437993438435254499863098146061569503435496748800200743533770563485578351613861244526060236522002563268572785929821638406602950814790702734848314382819107116437599559228649231412905142390673329490481543978088771116967864888629768818868953700795253028874669438265874492016712743234004503462370306677947032823992253318703604591092748934370880855975095677930858227749143870559974284128602468075942691624844392714594386165285581217167613332217158389561175304637198284494805103739287234598300884246113159527560034434805646063288574340090781978951847116121222820251981679780136406928643461716295151315737421991720287796217017065545362593748132255504129973697851687640084138212034610089491619981533373238601754532045055435634828780672120202324762150961930991642656392819821746301334442218358786317466303153156728732456111214406061284046895081718148520941601641098811407646517403670532208496206002617321489015388384332983123178555204181019998863970568789223633023793033767631951551237296975030215765361689714974508798913048042422811529932542900905100902788562888276717251622685224543108631685916060260959821429530779960213295870803731702613115407590795100281076552048365979175245838764888406542660974293671359488378153253641505039716636162818377222802263535840922405903626709684592033745626107866989736255692542116398554756923025361334018502457710979964065324830951869447135149017250755963722145839090996175074585659263817319468380265379066129560165847825471093257095764107617581210120256093959456826608323109172039205276709436228759278402900212311420167143292963987523872331535326881663637563526763421878797730210739902170283911494156144767292911569958200997593579064511680047450783365759302046014183508405912489887824160231520436040358069414394278967223437953553409778570953560501961209187299017169962109609097733019460967031649142424683861811278768722556778721440796368217270341718831801526511884903451250218484690371022384493530134093413756381707723688467852523708013277456011495277848424265335542873614906113967804312328334474463938620660231668244831736087025291205085463648831200301162432239672904460599377011309592106328619289714916725324327488307682713334462065666974560999879503535120213329198895378325610678631977102218279302106528405646433644534499720217144766198913884234808372578544488416776400488606724555312680248966780084924325535975896052487838579847735880927992500255541191900024310778755035644901621122451383849145023546899272419086695390948520450993606687036823583775956993898322186301488416891764501957587881047431999637730773790296571903802551495337926786875291035701372262533046085197279661267359276197104987312726472219408687988056441010608915688932957187683287981868336837948279163266323540223205015101964909382618508316334110083611155129495129720268545608618459714112129026352322350335699201194507009552004887139712093023198742617026696198133273078900166679899050521187697985651401680252602456986308812982531461837093405476701696983175113690862128462344393546978099200614568794393661114281488516701711841142012237552295211290771120631353265184528487704964679481660235438530717392185138568843154444767298765023978855896594185683366832285517151284937437416052977312164041424411718336773861324901733249987510620503860453842303565693696241571719361530423300188546756255904871345956797291395319590185344162762201700101341409305127994213813128672061252541930222486356701383106614390520947960399817249610795399403607512824447856716018953638507595161960656365224104197704816506760594864318625541706674070746770433195823250405001440655278140449496467699153399011757643066745106776588161860159628329388808281341566796652371561469716365303470329563199154657795144437685078588677694132175191165806056926774545392586018437914940719452613124243402565979340527218611716429672440084373614255731078813805864213933992482820763132628684738401798477402578608110388601480298159580728606842930498438155137335577183832389217040450258657902256590053634848265009095871752301118468242155936735504647883457677332241590676900078349657217611256854514019042551543756431123396365996540559953948837533955357518385689881112981465879785553614710063955477015287789270888911313381982047726896083602565930177744674708358254447233391240883701886903955290085410090878375946167249994162877015424802046165315712379314494814192009231302919487846771529880305824707917508383937024789382205657561540349242378374919563005900531740242989541937320221420305916059936288928205316767229761466758651289420272202746294479587810668934772073088528100007525770073939921719186173276895362392585116695621355990948260696791843942760058704352784882519679836040064533536710425316064981987457625520465117869710796307122142956946176537445167034128782654396201774866305296563777179381322135720591196984451782516463772024088366015456296485069578939126794339403900887082625561184973923555940453518323489134351196391179496691588318564934512945434439232009184418193698370823240473923963408199881335955238601615529347663946641422680063584780075153521697319945211060325445966018631392825737763414442142400921361680343009348545617618684548640632487276358119268224813821947919564042891284124813856471725221379844493913527882141028183111819189203872069986703397681299682865384422148372502312513721980063420950001415247694348499518767230757128463859210493184730085932295258031464600080223643358161857996814963585542218931902797703707696806363160225474915763496446772976124857782811063966111425316765020234391075670839313437215191487253793360655948873600673463224442283861892005297666562993944673590580934777203514888177512078970511267331425229992051934062010607767812169954747679784306442464598783035849632181146734927332005081831224745599730780381492034659779303783764136526820932408819006421386202215284739249080680813305206460775869689869879671384060721114331842426820327646930310834882411395375266564138927614193995421409936425201709902027520488966180977304681470303224503500516816628198414237617633086010166061344672234690862791409152222354741562415838817667577778341142866771285773497992234145373936500659311916544968361326524060476961941973951296935544735329933214999854788372741409922963806620283495749563306598210614736697078997629575393379666482192002974636062972921949530828291276147081368752372838453150607645971339491758958916247655690565591654565621231511088987798732997596849700892921606622898021770501094888432782839954450218024597541302536400315677460622204774726640203017863431523284548907409409836473870251767771937114107730267565612484082190924035808931563658330016227615566507744474664507998349821214713467983280243541962161807428794958012150564970596403595975622170122472407387724810358496931895150100647727508867217668097749706172191187172427766190589611701650493819211011560816171279885904665674915445664684572276500633899578873852104726930831941313667081812593453729798353928666994855582927891138963258601462600122346536972815364157282176125807879879549727746182069093712485658917756311207074614360606920202213474980845780968663855306271920774438267539607087688174474449063665522743159192418910662963313974426826900483050394773983953448607435665367894849272996483330885529498377603030011595736724491873787666956819345836027204775756071712560493992243375803320241197666767565584871844835226945765168958525961556700131328810652941331108751976565701514227928081271432394906781237501031543768622825488851131246951404492605363848863642161791761504087505502798536695362339594830967478241807642214901296282346967183942641851643276398196602648546020619370470606314705802845350007573295562485236933101959755323478584486212878649836649086642845807101031617383013374504292707409643413194351749895404463373344794282244030215667948228232847132659150441153817271852500340515808882044319604260476503237420116668172272649476701497062460707665373445066254448818013627306971566700523984932158344461457187118565568389524749498233102610360186167372786239899095735454381720263095451929438803455465283772110691344252136121051129002274734254634924250897546509542353696733817878349316611646501996571922881567776022439346030633447023266472955203930001088503944255390341873009850433843938007551509879144409893260513557615059927042955253174474314508726817563385792819893584761414581218905842723871021344175844245722784042901152036682429068022525621953609858272014190871154331985907549404483025122404674906589367835164653508677745568093242132481105709236955740912102783502166126165083462841393369451888504025559953316675628129569698063354393618537365219371003130001972583445607732913938337665938395660750634416106886287699431296485561810746450448822626155761680967457743544087310948069955820013833425215591706248199258609373930532435541084948640148921161233871819730637938260980920962472028739266911672127748651507347439735797673824147265953937105445433609067285370094562800768416988780785612237502794308482102371865294898477654537429043130468646463375051947572598175054226010158958827230667707588167934111384332231905614606497397409233394683749663725729701865149472988639181321669525128375404493440338849089474479906010670171335103047882397371023464733460580624987449988734478784115455990292575427593295174199941913531666705165494893633027369972018632611657677726838582563653218030195932661309922615618016143572040786658561171816933848590478822672136463672967382016271446374184371179195309658538586475899474340714258640805671912032315225881412555661253343347933857581867286293655856300772465490394516727787356428418080881053346017520505828708875697463576679027321273630741431696787202179477781488090500651669499025521702675028370909804760792552171510646766875197565359230213949275232180159056507847599790494957701546222131294765493453151557426521536101062552494285091316981800918278337093567663138172542655711009702968704481500061912204201590031382984507141474081226015753500317650634412997030442867151850891879328476866897416956884076816627582378977111247362211440858008287936954229039056826017052006678413973370460296306685296427366323369074974996152081465972218690919222949490960005043011774356132610261689036584978651290321214633719151655743558493965177805650752925715108756185297486117819209400122735662817520974128930936856877051979733237452615536291640973511650269920432090861181155141642178700718926993308563603439342952083314590835482552053470127655038157317092603987268330124045173832096933381169637302093763651820498646334387278980264041114381583964749925836979421382796639346047893650827455064493311555114149761825291591656925011191661479117980677949362065035308406265747842899443562818399505777666562436364569971276432659785756397451786318263951467567139261928873852057346450717266344304515981910921762877973088421918944624966564559440209048055179287743914018015747296223104566975333741500396574421155976602911581403188010259526249186662920047566083086030745784787464450013641930103503360839328509771824605610066516356215403766171172516586901702034785627519306959662426074631585694357919539078874596250923280774843291081704251364285021949483770825723829802399215701946229311637016392059436143255919680261329394261723121379204525380060612222636132556114165282175887829087627060919722028608590294487830737332440661098894017716744375465083555255277947333025193636141394587797851506946066259600602986870414749086300752632657560533012676745799537018241688966445667233826803745301700419528194313194501335482484877836202379946034892402778978776951915417753600130940332722373540188702366894369466192831602803368220531541549282811176634772523205518961325767076807921924738440771456488972877122852575174871868592507877102768833739994447942997824236826686729628641976918153135909611517549846666757868124163367333756507273380524822387484415102394506582679115472887203923192580159278934188226377183865791856956132479170837812874775616958902824943666424604376943526915300674536397041133632194638379275987586933878851220962359675072895676314356339292849164601554850889447783807806710959185749941748202391027456596645885231672929608478628792435220440937328147609835007375378531962781731051250036841710703942412891056174136678366534083275672631066572888839529571961238231307308934429013839265063620399357811339951794688096473099678527548119864666718488415558668126030107359627163337715986712778478310278453678828739923648083740749568034752753805525911019876013492504394284593699341532615974386094426491182207566260488729479697791486703359284720396496808011277974371536031289990418803802822923404263150950769071718149022812713121326633146316673303911219213596930494465446010755024093401344115644171857887116774850359426616243444065788294466367973909259485408748047308915345133938997405663648677895892716917540767529230577375637414650422947044420619192248488983089261906191758118542588316757827760288109960925385273559131961765069122910159390856959799513551524288454075275088446232990232982733944266533308000032875254805195287817935927392661588786566035920265241989422506876227633688974658177967145840350803384845456853228168712243962687043872398578327651959628508009411267916964802071192501749682790661953415399605040263665133816829715089082083878718044280343760347360273651871316037971459727028253481516056359775205880405662595304345555392672005063628013904321924049239161991292836473559110231057554295537614378587432501133173724624093483011433225584003277002615821786355961188612799634129321374905036829573630134511879341261154274678380372439411586123261064096471360574518651500584333937324337932446499254645728553735962480616272017905574979292336207822197987482792034552235778307718743465081295068528766980478258625528615639731837394657380472471884394794795131621186181441877457556024143206607851162944831043463567380857742329910644957534817395136172044693524915655992265293319739030167735330833865644596795308223619501549594703229827436989415008590571823673131956125614891772548334594896987943307275131005990307418040181709627429541895601112882451215549608376652328128447116381885996896670114777308767309495958539281449608285271353792724328119577162720804591396403809608778502145474790880432829276395747219676599055189961829308773815824214158417477984128837834792434109829143532348043043927039281316719728300245025996608024546738927351146648037128428748603785299872014949266129637019544959569966890779724756605726263933553982633364903316322660062532532491427506772570519048391606581426529601789521584728882874241135640346628938818849989739284627637499990805154094960971163573862399583073698722419732061454595682073689040639175409451531468413847219439075548617749253597014632657740663697038403008687645867585408311379521599174751827267465254044513208972060258521874064039991290935676165314787440438677680851066264533717961702249462028124785225894581193102190028561895754302178977208611884601991235913802035041546352556475053127472077813973884410394589562349456538984765583142123055512838256853459439098025905262089469746681127517598658990953870652293661437172365119504737771887840931412019913686030551298524533110833798536188960499316217136299207141229906175011382643573489961604588603235154310892216205664006137439705723726449448062213042292900034129084980337735574482079963584478395425334008111029055213804165122901157129860196486933464638931929110922775820501605039001206027292360412681342106992551211414508802008493897129765085457927715835085409858400129419898202305929189848193385845733576680455951666352176813267468232076933426254515023044415884463512326620227293430092235693222938197645812662057407120770221256826202906725152429560682462480451580250351556313883861732288250363486153911277479828325298833704221478524997585731634579265768254828381866305256073620165575158971909544557907462740902549153307665433532889977829596540271394730855911243872353976668985067708212472307707189741853494723983735401174289938143487119274582714926853118296360518726811791760954005959581392481690679242710972215239261625295976983267803885298245754351963184833765856920112853789035439241583818902848531534581198082856358387505610771655616290039661767348845132485417016601463395405947922424737720842415377620644966297511599339019155989968027851785074696491363643115730471991885538307751883657463494557975082864937826781115057883638891160246220044245025208771814964513348527284678603571490265059867008972856081579532697101668004571149468668176087823506707777822627624383292344373294489660773478363470704830914043889380460595302374019086122593470804728653426267081955575568423621196451314340108742582411252303156208017132517257678193094028366117900306293930951764364008737866550027879022408225007558532751483470404123910312772261840414813015493114610334224287258524192485925430519999252076134938476834031063238106928175192888153989737616535855104327393566037105879395204776735299565960335496992769844107834985994591507295198846747488219932166209673784307704914331171475943130843142972660291719647788049708155660617537142295206588234609228493279553384937184581197261334308183259188065035057883622592151223416661503102544595106143617590212331562275790792217768625867990147960569008545349973642564372330001170342088391222108714244656175942816001227348180033737345931100871578525093497633572942730545507656650195394242274046104147521213340811035502690996418145541695582599154752210764900546830757710032159616334003030978303547200929327191056255985004600692081708052671579628314672133535085685304643668811228875165226228826675034082764801823221723926837535719253970309427667362091335554403412368311793815334629070885677851989811366457366485796921393962471120710851701778845987651411752178984155170581132514047604738798009729905106889422663902631223785842158188004110909785878685425702617911729287500967359352542904481250419831999346931283913915804454313702945490559378315962388543844627737044042368655222941651411812006447960905688325509348734149340394717004139916629694080851473054583349344954265462384846205607190521256916509815138853698021552295883389457274812961297905678227220720302127734433783803442405024175309619048371257062868875264744852859324831469048347789443681506981857982657686831992829571328837780031789536145278814708254688299212062666041748582215058285656419151919234520646634024618768984016741551124591737594644352732293296306207775714137309429836726434312018156597700913684933542424526869816018447595767893543888508773892031264375956002212793959027722578680957422133010616418611847377251677060224991487786131582749644946182137578182707767088028886009611886858807265034971181818643372525829483138321780714789403490944006214750089771253084579217400971377705467206185706880664875171082467973649272260826723436973356650472729188989319989077073575628405190902078638196922219183565718922385949013961288570326595581634668170466656854458200110789715786782535450296429501496556517506207412715302698999312337591320290528102334045849599699551094365986141724260981140215799375336998668552944265717156318871944807499107442512004387340368854129545717862386936489392161936521962098930176059771954410140831918712707653479642387836894394493072327300770996424355575158288764685664875446714871790346955088722540197368856844225626677102395056442231779338475267715188600187404996761254582600979739672538180412845067248217516641156811836790829298472317174376726968233087238660038407889608767044323110258745052355697739583341682929065815004777148202135244472325837227550455998842798697637379188846643482031212490004212100969417148541837662678335541998391846516429798521254720168489176385689766905946990924296416405268670520833612239840806441448888166534148640791671603545270357632614064034840755478013217749857478228439852980841131250262187273869201033019597360760143683805119210632223409612556178381711833936459927277116116148620299863905550140841840766434527543696237877984987384670574711645456111581307802337993874806416122399814155390855350694376106162248907532126226147592940923722686304608064402745736103632796133805459957722075814300853666335509238227637496097472600366213252591348958044422483100801141908780232529572197765871995256762928056979534527737267584710088880687010052563083409059487090067636931975034346832241239664542569265912970251204928462470273807217670817996658755030312483127592158812286773155365529635377644093036339908945295421871588401522715598265178979383386846934137297842290908835394098646304617114667203556768426154074019338178197850212187097741676277341572947517455013350793736289433547622428848907219914206768786573439108369390498678666738417629986699173540014040234585060529252741745007233692964367603409201736312974504539760214940748417672390224478841631472657100323240468401173457449229749974563868237609120214702588183026299735752112143599695084969426262769863205086687170260327601385035323224031415123232544805042445743650894559192972436908092377563287826295870329769102179964981078202745153284066169614399863710257691687299229600895586904001010565360404863512020047794661955419730277521009109364564193343752723545067106122815306907277179952360051386751220687008263823351076430888339485629477090576616096337045992138316471372761079915056182171761780673039459358587953227738597447297667966744629049742162859974763601722516947040961994488810369313531377978157652204916004387415275117916594712550418786844515216266440219104695174194205572140984348076604445966259218521024625102745667946500500293814684515627559232506311022020396164981630561663244969011650917625999215389927076907423001144248233656493664706767302843323439332305426845366139775912536598407655518787797891598334623073845231638915917210746838573018734273992442254445418308322506805809562576257191240032029123605113025218743741196522606684717808479957107054483952378346211673170909945946529751277828079066041626791622450139662442709424256771241025603921061111334667456466648814294257205911390031846860830625057812865519496393369662768183126254440914472037354203078602194937298619330858357025769768099841025598505599777319450376214268315306242801769531951947673436454802584995776928517743824090900318489091610564683346850749366440130393042720830946545591759102467837719461340472863317521187730680350363623624112965772055174659851974774554728146043997496473070802896004120390117797546697414463512547071801274586804745217215116149953872687261218856119119055169692006633139535487591929425906403619979600270109657042968788990252127650622798794403109722325853235504505954674682192056780973368540293807563310201694318318923544579619706255709763506708936061572367210569405558356112920820693707915068220545596504667382135446949187062867368626681851994092851050157087600620830543236775452421389690030974734059528243292333158216222129275625148788145145856463483153548961223097449513038894058769969814807166947414590645111804232605014065044489353776813898336770406539988223521838280081514889475476956316449989763034039846478965862255905491988518257803040576002981253975790565637138162514215544865476815048282532254769548976315548982748237506853563179418341998093246397660791016952675028054500320777947614763154113375804348974305573439797530116609985338649108752068672242260538287289748363545573296617686509635719168773282929773317739790749761764686787108401098861945833428918077174935662669658143656356817225626654452653671898202239536114844218997637042126529008351236272844103580194290268018130796972623322261209154320030762982568751689943462377351893626761907267076759200305108606285293316502229977382588461932251472309917756205885057233741325345893191793980162642079992531949318294242102503807184994398235047651655121089867043923675714519130879380075016304889443203351216060436973529881718901179556573591174233636538432773557110189615298896430924034120593317605753869486124389115894049330477702613203386277326456179139401369999265270283540019574200967264207914486419349521710739889931635217595544159162404676325984410945838678253296463245552905647216555971477640963122550954771800266081656230513091565106495077419597489607190777580931956607950401829606778814606774564172420329756116213343193503553222371505908330918321898578232720030566979901855235383158894941757296999513780965106045258269021529370951827461125053225693222211302203034851723956984440057084424920217912706383720193087727858876646107364092774545686078553364886292869996507629530383624143636395274469875902486967225523843222397538878865667974025474538061132101425041949708682287683112391473842371875653755174088408768894049845294292409162588081163920208590354345311283386979601681532283862196875556904283460264604340762024243093001329483469145933528764532250114385853673539017548551095144715953537796369827814900724045609538359860389160632359954011333539815346451024074975293172657420053558906715771112399132929435977161827303652795092170865454693230376514056762104859833662323274900644665532358839925252158841570147911852180321105921813721167255580410145577721955454599009979262493906136703526632388339866277590502616986987978683936626675203869941627786753493135154887222837410588115636383501184616580552070862498278035573184215418325580480118192251137733475485603857400168450374978498225067125150168933773976722368611626214675874709910044006282474214620185719745783128464740108099690409370640775525671160086761619737018457654077566699596745564912040519233616301099544238044947445965444740770725386571558580575019135114780843845886715496726498922153017994240981808006810765151225919685240882677456262598358548068699404793484201654986102506364665219982607003527913954873372512710600742855248941050652461524343830235861894647258934078517204737391721858663216765872764836185090621686064650509297389319924177365117333398931162570635250771962640992215954821313303590377497654001951125930960140428132209478039939449189138988951061147977731079341158983249743297190139650873758066359529122942935736047301958588442325320044865151994234317318216301901489190419055704219545385318839227060559253359690199121619668102091227058075321944051944879314529785796547630215199140333171379984574675414003554279933189902126926464471871966877277354900574920945308611636120058065963345144204109431920507901047575475700282739529076424192406809637845552239367488464222295219544804255095973982556273009699166293798410167744407533964311604165421768302296190970520406403709723556626436312471548797652085351456616648895557413966166821014304734180346951857704294142879350267727192441731795478980323514642173601913319546240241013089240276309879151238882189126076177427240833571115056693458044839819726470831031221480971345048230531629195896927013761565530872527508328018817834711934396050999610143799850311215665680076675483677574231266843564173088591730758748620686959666082398457115896583809076665203538379037759227894064622237017162608126534780738310977135613183288800091053211142394383570847370598197426263478676038897720690250154068680290754091638740255794843620164099082103403138751619761403739171732730276658960346492546288906473766616180892927575207146064072498187091833068493847859664583908764914546078722311862545924613511493547508554169824835249532163338665188949979404575742998129437269674340884803135312976579336903708910564289637506865863845808578821776699941018855341917442109522684914054408213625468907407380502278209152160412270367602863231411015697967404909825136033273638517036270656410908459403713748714414720373737739315366040517653013587669375762679426536260860491234815224776466968359057577193336007022955449295239152308086347469695124323266304564018545063052895085273975255139857437081792429353878733057920177023251396723886206052623301388765125943106276353264585754830715284843597692097526369525656317642210989988718285078371354593482308620114376111587442555101528014386361350218671781788194033615303822849521830013601345412833875779176122904129825210165086553319968017240817886995067828874277715200534845987467405327126612588350048713841397813214668071087689972667367595462036670564200076052474705623894586208660200206974891391365342201552110094254407700452147308144119262832938486768844790718754637765153515597421033227723913276613594822204316537758355142657668867220213200426790451370873009072968391958841190208620697256257531089689201148287544267617826828359428947395327666037808218493757671212692946152319524114341742464545981559935244908213515223950729672366545708098053807159950257506133447744303237817348084958191163508242662351454909733619693368492892767519539541615741608262657204700663643692278150225195125678879325195469389642947135398638241899036967533648703548424252541157940390491675889551920940718094524502931520611237661402327674546117084167223730100888339470626066596728524264116286019784880545762719054125281551009862814068861468923234376370820455691433362717172625928029030662824201879981138276470509521184545190950691529640024848928135189026597914471885598273673670403350285088280048141367732454658313707785729444431685157849692029515137151137957634936238037397900847862480001566148789469305742668218983714741518597075598619898343898582252141499793787978698681376953715100625064032579704816235525576168447730216506725163524114527271151948030676925175414094144590236146238108448038279976242431531950534762113945581345387396909883321094292221992573265316870683188572074074326395592537843179752828348390733146267466291627497862875710584291744278992723257584698949058467052074035288292612334553261590215913011117886191706894993099193769992031500706253455347525259814647485028346382899502493624740445228503134859777601052778822961940387730480298891200522361623820127607398321331890913508425576347850458805815384593109137630376172545016942688679903331237180936411379548566186725719908545444484081111323091757446321338895766629259977087280289725283288574951867061914888223294657389067103248102468241669823100993438463584358501742839789843143434084219324928662419793369185202786622675646793173797067505049879706553446009779382807000430442791252528921876822583214876587674745397972449918766432550358912564480389575228571766460228088107403255355990559521726875557542970038849238954097970511160131024404346411660163226235411276621443920729217511194291491664095695416843683081517258948669765470865996864616927284166956949446047197641667975745354707730271381406088864114884972194505156530191521048730919506742614226391632893655856355109522358204104060558796795045819830149900322195840841626664998180650294060645485555361117685560138249862610766298312889726373976580269052136132030967230613969628872927072645200451449066761002063429810160743524786573126491151925874008831760400984262444640311485850277591639067254507272696079882956277711480328265803424827496479246579929271860655857554992637064121168490998730890426488557246611035570548184637537848556938879322224533281790758488801479902463848662918892476370519252395607747332412247145214174456152193370973293067816352293981493643921599828955418500532794353567700658690761104956540173136288123481767213428703313858016937152683665120632117624396985855281826275291599634360936231416114447242655370525556709415766074185861268791256357985349330268938076437673705778095114445445764848513613552137753120540053111322332224539206372278119006441576668885794325595308412887534212003685404367509214800137344460793562511404935139818129069028596496715821975473748481415255555043792788563457391701113474899587676948331526056696632960473316103549682260760287147599339178896367671014352598744833007954145641737350015408388419547610512184811993725668191671383436420542035498824248588591855335340562241442404506192116687585189868995829119235029759124173545075198716046682185087432726369934900644613957429155508830989179778672797669491758982482654246085989111923180874372623912929055846686336617811382811914612463911956621577825628064820023511685931381034389469445920199695798753754587217603690426257522944837494282923859052232979382413290482956426182796133340502799202481957517339956261629654760691876515035107160133727432156648783637583312594585694809751339819739369835885779941631767317422109102473578334125956506657944911559672617439463930103866816523384212076626089017850956102558414159104836896730169558566728475535106807793557586082916925691658100644581455032709660066363190127032015053770392217738644972698124960837413477213585758624229332444595362804454101788140090713293687709267559531733029296631826628951793432986131299514010476102821376405073245585056327724443698532627434603584463974369628179598232413717130542336216360851912752369644260750965723152638244800890581337578136666196167451373955376508598961896110015170244384232851050405406567253296175943829035080249685289082083610111679394685130571344678689845735942204038153653843702071082770716714758431030631229509794032218309435156089253280312557040976811077966244602419954867140595079204668159508240647503732917439174890143631015707504884789451216485281416401419684186455707797266554310033063249609406884307989898615495552350156036871063518083828724201005219375887133501371041732065010373176813072998162027180823933471652330306159621222751630615173817214655580734955858099195112500702046649577584098724961135448315277556704972503896788145776576388036991142777985253200073510135355269156298660411481306532284337461127864154240125204154504521647938537802281168708821809743007888026016016488072964068661350774896642804298402830338284968827917081798760865600197492436289604666109464566863747741454978091617526663446547106273379030440014208198886868256004121504144540278983471665019997281699192996943090660384706107153059158597700084210458817782282510374779660144351399489815300003703016860103276458743348398335856242531525877794849781092919728113780035001599696344783314612608419016018830900469604833879869349684094915548575051858978610620608403590665287318747564150589229022571927643032420783760764628094847445118623103105323913765124093331149242746557272117228671606273668940297399710548430036910587338896949440247425291727460378855296365296726550056392774686296935172672320020272949239031387871517472635290406241827030278972709809737080903038201354731204453513110443282380333588702036358358427773585849349757964154699126711344402328694697463649259536696373237260446864608462379113430670905056819565202306688360925094348402896273833090939655227044758483428887407150986747233623738780923478108152799645579466140003925122144557847695139631439165209707917966570809726503412252208069250042320342305286094024819806917879735315288521488502460201408132327107372597287088968704307704632912745542634081622320301383183423964250476693432734874096534750680547577157603943120730299849658805633068225263368204357012000887971054955689937073905610471387123658302654717790957888789220606507567801651568341671689858236051705275512620908337570444411212233771660854927991861209162010205208406948539859781901145361850647655592937939608818224485973879244025370334656703251738365677219535004309873535344226958543332043723109272027970518493796757580000509929076830636798501327188640778564118365817907353149785563146245820163731785257249465391673425633652378616674983684545592122682754113693735446982914702321223963272403476167220732051360727671377517481944557064806547195086692598377598574190890651672535614801676165027215424838985939022349289927865507429833199046457780038506542477934937547923533479361644361390251266399043056942233114479505481945380635839038410894203237952903994650968896588612467032211596578091520700372918366834375222531269183278379732810621995905456361598716111892196507273314196900115011979530470585088036232675668818165238896033096260679172699085660165605740315282411346164196126574574900423681549185441619857746450974645962170868290719024600002881480485058525009654359077158984679097950127995186519450304672206236282551329709149245742033443621128322400289558244624709328601619020900964726453722892281406576789836556651666698779766414231709844714732344113338427112819441364752046322390724618770012516452663255493180614583976230501627708482869752607724675036422761162886586063692793999988436525062135351843538557882712253944975199613935369133954931661230005375165413638503696255809889366507548890546725652704262510035660710106392586123095714031208512358261672934871494030758673708859262830796217162922296774890453327136540689301281586072973469701575951402728291544123850346038870499125472191366765500820921261204241157112496662472612617125510200705469972612865299552366114565939389829700620451341597093529306794706828985470295382262458720175524493888774504569065739852503229387355118176008059364148337309019607983579343978341419290778270502624234700416186783947619992348419914488133776650678347773111217538344994195354617545054982659906792469969395324586727051557020639906622713815489586634714017528076537398196811938447238427228404053396411788650069987212024368324984129927421778587601698947480797666554474825080080320196217633320517096241618712221603381616248292264648826834825781723385963433018445478964962513347158114317365545097157879853664617042538323451844617965343521967943132285372754394871286893843297811031163071936278509954852651624574243959425102753321982292626774754861453077478920102314168698160492004663479010003651457290347447253634055094353271365729326658973336099176652976333224701516115378370326161883456564975818481836352706255119478275756546640629121328019775935839674532676168192489234090660857461508020075353705754155122894159631169594296712147451593160882165391910101327084728144042756724276894425635695178893902878755389568427130316381429782561744661450685524002339804246566709221209141789370325509230636338309295417171187348071909594360376502398615149767753266795017716078531279024693383789236763575078516009495081358442919042746517865811823393082995532916134002827223698829892653793231432675300265430547646772048999983671529455667830883692595881444316707326606478030451640121707164293156331711886086223202850830509661440358206442043542638442826439645549488346652904573595542863172629192949682345869846169346594321371720831996674093104085726827178103389519764899505702832070641875850344674581933082903309550698465366835399907520056665231814830315992110822904316886143113235066536553573300381758141098985817232204009931854474114514887651630753748285859078218252770908847452949880757960514822511214115881454126475681810880507855675623424490425878170903004695875973752684322879168999798765355549472783224491513630412379476485319188735815909305203857400943799872495227494403336042980652764594089365473118205604754381395085127025415081225232968257800479808953553799852145997198247693848278928409682914269260420715130576561521497789744216675187689766176233589454308004148636250040242054400843913079642054544409206771281356289516519906394791123403652295029925641144123087672976137034548816928522353120059558358704326011207353269933619720813954965032670694802130121655799460222495516936240770650603261536844684557297688631443970134577401341702654127851438079325319550355279261201448301458144329997392811242768439590557700642080552533903641253759201691349122374808876482367048560807990778696917576762017316935909857323562630435073555753970324343972616928153866051813386880997681975259980567023135996553685527331970012110000358919885103471412724517960764800587952965808911380569388601605488488780730956517824999701322847511045616296738531039180968639302473072412787548197446109621463800562524238317084197796240931398812802365953014992685037075727100368107247652660055327136223363526201540436066168454737899826904864482618651583050141655171980086128919432944704973546396507943124825548337348881364957075681878847737025808698075745341323737484695805069322671419499033308151035060115825272236041099236650895585878776640389046688369968975938758414170212210554557732471367357146462702237529600035625917815342393698142203077067195979930196078908647708035213305490242271165174489542740696382297318591298206704802947165898460424856871535756106763942150444807231173585765060465262544994587782140309752821810719532981484798094585789471429100652073192475111261541173128262098211063157822860793575008389062591399874018886155677809043389258508834302955393869211543644103310045783161074014105671630045357443172931334735572960398855262441335241455218258301469771367824385938094429433225104128109153134895005983509024142381923813863248800733669346286260500210619481001017178958955255516250797003229217666028794127861679040244175099076693542347478199982738099258913130555892532593129708944762251220349658753957081391243347653553089491095506676286573335964685082135450870983817369545999886797640834762627582110864452620588218012421443655434115752787930128482390697513592083399532536660745624261400074044371851226794942512020293419181112612908541179636478398422119264533345237445815481032851734328178901205205531986759386029819283685146547862350684891293470042356196605462884505237068748655806750875739110570351058148330198752162077138470355524304865788816708005410719443149589052004250994747486437331842259138796400760700274379372618310248713590948138975057121729432643760288654766698236115969382888359915962718641650107561258303769235134849568962128281032326415351616306612873674042675002466585488502193661628693686656864797242948853309540807098723366540489163492037540062622455252234716744666533306406474276303909121919262178411051766045795409261743860690609511406919804181213987946745665962444892584045045567627969656524347839491689950878405717666915260596058975867982822459672913539996106617764750618243230806221619347621621221162577250537865747229194367541823272143015860036103410837412489272044064721849468137628552724600138875335174173131496009781366468252727898601061464589402584324681181952587344946387698798808721381831843762693058311941617502828908677347429502657769799886807981957434596326353406565731483356787370980604892630542365835037116051212999503561559236379005329399587510387947176828990683102277802973549179482857416359184275360110562585825488536711293887678250806872663927880167479430896510402404386037613605134289341120647454209574960484694678364966882658265497958763557723488899924700844418759921590379261065303564776096074825374981652219432588424830401450832363195540023096452518542933742258600339956157070032350211556518004940775206561049293917911010420106844107360033472740260094641722605262451826203697116167243756974129371593285101659679606495048263642122391685072600811751949304905956885254314332184168878889986334443978834359494765182924723238086037161413006452237138449479895339763074730599092995147024779118028806744230821258300387870971257391454558373413846752924411880070416253682358351450182415261090829483452768205724247629391579531583789195345415266307535274952345504185473989638583003528537013258813461543190688625338873668952523475770676883837897577701335082046918069054711254284893136546330084344518643697272902820502289511753135043508500558853707765790917969701611008363091381723135842870654635267653949189469506764762799340596207748013930377167891253630897362387124304533998729121624264218181123225696748700776791251279516637871763395063364103563153462233208770773373209992879126551364222819976320370589503574315655094771161439402088165030054420745762991339644793633809921137659889009695534629495810368693143554418501149080004016479001762370293976404029774397742324290682587149677517191127330682974772406088834909175757885415687602278800554150495919705955040155241369132050578939274776947019361630718490649264632278881859337307993793539878589342332413509636604555492383268003913332330087573162601986395931155569327783421072135925202846152072929854103322636860395404833066342000928600045966486641036177633420452977600028347602006551866116008650659055429672751067493105702291764767026143896332110514884513772034632826102066173536820802127002361731396240664903695546924770606674106152837799393124637846429415301138084459352539712322919901413585978080145644873125525120054501180424620452069108565674229378466906708182680385717842344197736836158971778313775472442682616962921435595346602624190613557671386854131719036032375589944069765750840809928917794208739255426797665872193144141125849764853781758622976346890082642018099100433466653158985780899644154387086024612673809884297577647591734428506516026398597581230947786562567201263599124753603553192559625733102936435371310988318566213978116606930119988424492332841407161636568072882370190448441132748020334946365419663499039550046269984841827426846300750597449909428956640978411836403481932397763895358970914300369195663422388141424037175055216616076432097254058247744361609662717775500478474182746326825409371497591443153987903157610302725387831665143899997913785157214199117835867443376308884137397925165563654632241724889359184478480213091142219783449675813964555581198057037742360302591182661635937820636095154612407367137063576056252977155994597968116640666825438360042182432021434263181970182458869904018232341449431723673998142180621064437257392309993283877550910384977199493820136760854892578702258165411632328732118820014637722060255328041251231962620955227408425269308620594137599543086159983296861903991680243720473908806268231303739319448889188253572920699004255942501845984954901882494642553321505317829672281373536337034978974739572636340584031560166778482980279578861462021712202047946918989124376630775542808678913135177491996131450372241745964333920784879330096348762759438651024448675670848046673170789878939075864084905879188351546775459613082544664708240732776447361596832718049407970339823524543962893492816065035271010771807564829885558396558489279543747849279420679256974294598247435967027390456552845493103831022077742344392504195204546527391812517480379105319795503789209224395758267931443145042085577984296571400979538545912813507370089423430044597750832207177881299346871674907204860017660867629876861785138817417793885547867630057900749054930631595606002221528150418921557154979085058945796283681079176090556172471175811314159041089366179996931506125786512611730056134275612097402472532991793868800679004314551439862601326193616971948170597405858626662894859818797975168302469451602200017818557472465620496537151184825810446927309620587546030888844126693203976942763158162605344112327657170510607449213100831252141389054300019115399322889518763778629036454157903791780636960977861165350407807609743351200398388672602158415607763519264704293001131494377965719309980261745285160307999605001534387121074073720341055863978531623726730358279175851101980004607991050538167103073043157870155246910098240904024660770388434330814136872475671368915772101762623598511236923099262237312836964484190303078365709643121021160377089541637109144239376644398429608016117862299204668761127573706881004988562247475091355337339434286339505271923157079391699443066455048029198678457772832765337259710421724511269855723931924701683153306470938115337623844791937319633681710729330639236693770589975292691857234015957602343809355818751254143047185157412772140132737658911113668852460081362695935179173127902156429626125441717043709034561306494604903739264898056329932450236929086166882763979078038830676851446421610725396116119370725188549990469203736025381059000265952681785047475393553863066126218656117118858164391119909608079821658424578342129190819828460830021783408950780117390095158571869268366471944027839823664939655259443489539610458708439200576847654955724482048738778131798635919156234048229815883359911936632116191927653375128421932273939891822045019175627190324958996024099951367766474436590827202266428496845845769516775527528417984856660784515437130337626980608528511672823573673969197743301489982459117227832403548060883252709103937851559254210326637592322872711245745775874882971146211194194535768829366114667182138474798743040013088881895191200502362494678867355842345788220772970771183017022739881694378099938135354239768293323496027530083833443248949554483232826770310067506267929542379525347946602926305052483340242421516443526797424235846217376317936129193575052244358715748814382543725374684045711421800044839438777676053402939619316223955538288261102915602729913694592320401945561081704586941345644423041042769179593838899477204647478612838080284427629404722597245340797158409928491518325024131750561904287434414717477760063191052190507684123015744851340430910351432237511261004371813902697277928816306924200475421829836509152652348915755450384818318042407889968853219996590928112759707312257426326665635490125190838366325155613463779941588087960005699951978326136379110820092209701843551169004380581487675502856705170301333655964902426309307890048057421843109782890448085404703088840229128516380209782075731357041065291819865223838781043439341503745597790403694869382519452873567419746960327954836500234585187977493463013935296016029185023381578942180285505916385494995744508919841891805701103319236202999343085153126334969212234575308384694058503042317190507135500764375076635117933442064586990878370981407070114028342424192377267353835075304364183497928843842336298595060302404219190913953347868823429577897485860892107661080810772725939396111091296847410146046504274612865316933841174373765766659215130870934516005094724756114095008404256635084916842300198680605556032174770551873897655449041851747624376082360723002143460261517855821158032423636044766967404424779418533635805226213631847311575928506007855305612312084171905239948410537097728976834237090647464166682712055492284481101271658292279099155237161053549528681073128372314744352072629163420057545284226805690872784791923038839834645019900164413043402946389288472414742892944477210013285484821647154917367020308560275321392322665246564495833536925785304438990264416458724975278673390768571842898073739388235646723040787567869512217672946235759704437073830428414527499631184232024227708558381661294667239663903690689840022284299072516606800242352587007355294412411629761007544924403879944120490811984907840002630006640489653835623177300154774777083127350082214723225049437231289350351816019129098168958505362385927801184007963850121852698077849543890801731074422657849755456524849549383943863268067909640530628487424214272299061417343832348775011430613416195501119035807570556254281117355313289229999587281870748392241621252717299781876857585601441216628768546707450445245217691648619597228304543018523766038786924620478695204078680200840045144608305683553907125571465693900316157138056954896360869101964435896563338248776470129279722275972866294502686814597645044561951538516687201184748686231510479731005501128684030337976859234113816775767751050754880432303652452046028332113670185944711089787203094856920841326407164555821253582257190230498085251563477139276394248380821413798788385497414054426752722252741697740814342553359700345639612994486307013043450755072491397149093532063858661373310309119784014799338884538324910499133249379357054350299749728001046744140848853294191041103555580932075922353827724807133429243038648543911198984648333841058330315496797887378139065484275110355105331540717746667077659312780721174366443373375868325646789672250306267980595571920037035689517979793808656889638143412590711709619474995431101546011684425448849474859625169252047461901341082945101712106402035858638214251205716349772876535946425263744575969464099071041231194640878808660992596677409826611270431053619880089639399353406833759342856558862981517571613877264045488864995687446194987241697897414971769633790774719295698584683807531089259068209437727471856301821565531787594486836276962134180433123193192355286621650948382210924196644498065530072474066459688859998852860540670110682292712447726914119195920536962674761534111358783991679038740527961081645110932641619600214959273146433813144483760874278206991253009518028759839285355740005044371627451138311642130082749640283733356615428003148245426682292748495375708885402043312212056223473567307517986037051652820416123016791797016487153341314120369915911456633309194052439327303681714925543340816073244328790728165749060410366804282355824046325486014281930066747544724626820029833124980683516890740178223752163354367728615488736747913985437672098692780667339992158322415637268767857166197017024990379002375584724546432789289585405149247999465699370064824814182806752775612676905695073638668242794547786867013478666202052382017541460658440336972206404264376098992226287276664552258619982050248921129921946126873832536911521347418102953461880012726356403194799579846276216530790022154696121647393987192474230157985380315598575477575736051885843502838835086915176991686932210902812029440070964098881067932004722536859472667255300015290547226512580069469940171092446027824392506670577001940602498715874133798272018969587328516231363939354966912147713763085996093282862857409324960183534605649053951154356904506500256089133817705960497161530548210144074876995475494591455690141137318282788877241376248077889656488123162209616696448832305978616158334059356287422397272454322311418517437930717509166928742181565542960919944557043094656871533172340406407340580885415828551550036420825557357340315897505894422605435947576111788431293342243308852714237680264273299421187898890419523562844527793877360323366744180759658915606195518302375358090437616886545866619682054469187656314298641445784727742928438650348326836886554942199556648852031233083079197559506277899591175805513716421369403643826106309324061052994808879627871400590454479678370015191753904024698830130409173158221610797941656207297388086215616038057001421527245161116309935650857606225714874528009639049797953365666573977600589438965181976579974375798020119097044378735845116984306809296894442205266568599850878445349786354771438180019127365468439721689687918092495139667583330801051141512707187382268079587220490365501612404107498591860657821671011785042665279576597936602804850751120509410668511032478741928106451595918565145475628663045554325232109722496027645314080978963410249166581299257591797993470097446021120726781260313205100141812594173358077393588235719900709971328287047862526216538971506090110496521804848809464233715368529622711188761710113022293728753724837463961293819628265774226145382014979914548745428596077162853561858611229700759385282000509304741056530276566063051683452336758034756160976525577008655312954213534547816899732219103275900803164058942531234430184462448319112107587585405316932247101805863864723100570983836995646314667619054113393074559456537331689279315532822791065593751672107595022615200089430879613107951648984048052698830977803929696753072205975829722681133367518881281111352586342668188181214552459395016248922631894998515866269204287470486082025585735694881007623990599370837325961606362060985761536713016746201654452261962514818286583679439712136976246701590462155009125085403122979665679691927196403019824515570528778882895014123833485590831995843756896627247677243997556769248036647252648017921610187285934312728959115614434008131978556993357140505199643584562552277563218582937598463756442244764675075795924210217736326777532687872943369757176683813741133195763280692815551846435399289044264102617650154114059980591409750368603694100967398065923246466130234241141017216797822648250409047718980972170511405067357770501578505821865886636078176694723567789754402551871811796240269347542231188969777973171232843788599430810040507296030511462665726849349018395569944591849381319617088077061857049477280630793886175782317269154387633160249919910536035993931706798620543920470888460961055533116828669885005658217723569024938200040550313096020350470561971592638988375194243687402395852245489955134902093932230092637148894982790241524372588211249612518783750145272936978999638307046024188526649099436402782639130508905968902830662346123532690260075122311590210046519163979598636191717014228084538550983491661553909208799208951577322957142772010339852268616475259352032804229739772746764223085985766993165782901268497545252609556424429818945253175509809797231787544444125270997759309077636093077261269532863665258881512051662750690310877251219148249405706979083592645569978542584318586169343096448747062988845314932781576499567591383209511735156718817180075770096086941734945741353275214313948651823024776682764389878887016821726858581677483769736520055494106967494471884261170443218826065648627503104876226329537135683172647468094330968921670316967827154094090146533254547342224801681672288096368932016479348748144547346352014556483556491460927324194148144894518856058491864808833463691948056243090403997980493879104764174112082903317609845519286731806190022191522515969972340408319675952504576032780721748156447053865780885688101209213101854660253543521042464229350229934961864646166410803923318776784555865352820825341703753139696673158896608837897780437166462817205970776782839238705865175335957587581422284468565302388097961776233685005964072845211772793980865396891964779753933516759347761969719911435435625359036418153190375073834179001072862102264435467144666043138590057798359085446483681790671965107783878745556918525460713144864824202339948961104817183189879202364092012864377706998752529876543910192061588821945008407188679827824235432749158430710825687722603207902545771164306723516280361173220455170342986208488037828548513830300095804830217084382613276707233732010558509323656421321104536903195623871507754657057974296981919639027239740450610626810519909351609494519040890051359148164804503085244709629853698538237040109570736412116471872033376475456994716082175876514140126042210318570977326456954062630959389324361643552261264290877545558239273021621605611553920925424184023125480260968062379726073213287824547383813400075075933748583014035702139138593092830368744623008742956304409368437161994078709262981498663305433470419417896615594981979854368626843999607108072620002344005978123604714886308180273715852420747098849669197171355590761168689786276490990613590775595442307577843980632649262115723699567466720300818619751422770214503155548528763875232801519206502697756539737916625840168342120706622475161671312880231874212144322040493533974348349508066360146586927085298637262902374436996014661229641427949730371960985119061705591815929834620681733390458345935376434592502074981021466439231765439285868830742685634236862174240877831940743019212610936688246751939185174967505185970038863054381143572692387830195081019756004703964342801641260862117147208430507608497385552979901421298514261328052295984161071436378005649121558073422101129701103029415424863309894156542337961154501388130316953092125844019615895609725955123559703150659920811600094887378201974929547987661848257147356412032534511766328909291356747716945682154788090217875313223558069424692983513943176293474357361038349020990933552658511834083967611460700117919545441033601762072441629971670102932362355246072334870441062538870238059140684699558697961668379899694728311063487998429915006055244205991971442169182134048522963147676034454615919438271705934851572407858487207492351336099352208204511823737009642671431315528496661843026825720228398113581445916343139926823134733024580930672495816111911645026024937343480205992954631033676593364431941408148034193853223300051117949651637063037283802370380047775011380858435597208724441726795597269839491494014063461946562166368882208620015768606620273831826690271114150948630720202135386511329858372447931852806441157317157093755028493783006504774395472760182455876429893801702555592418042557001610617979175108192809332132101675771231917622680923870873793373703646917499996282753723310211316440534864316691854831316469305402146762981905900933958774085813107519850094224952114610876135097261166844449273946865696790928163374608453654327315541541340841853166103605563203541398128610655458244345389094442879621805497171293595897231916892004015956460937144130223838488317080853425023018550704038127025590527404646901192497884490045292325828457024520379642250044002383346235677609553760128232287849584793604450029941988104093008205498546560165428918986921488601072150860811739098732956847242026911667461829732095718071687540973097876383735369041282464225262664971933255963324595757551488374882144869899712076962701947544397022822099035960988511622252939095244069846348579374900787030637153859025929731951157760170592323091388345047875192039117589498515102933441220884371966128062308081297329818951238927228178391781222884983691699747589522883766159495883716737251105431171393269734823010164195384205864705558735926774569778168763215615534576655657985977287992623067351597971377717772806379982345436589404737556565191151959472125010265443221950740132107321184340358836521960109926237655930331011493074429119556418351591639555765881434801698723675430400014998697771463691552241327884563110114798293889198048101722854374633289851893419062842860535102823695422412622484380083592222951642527763851359175383063031344946583990599365189632732232220490375395901188718711593237599701587650421451111863521757096783982960016518306688772762077052218770608585296585602544714381447168041552478006079292858168146969882376361086775785295592697100411580544555927598162455339420238842058358641286395498663715501947442908222698496185894466435866667952481446272571262446265473795595988786540559274820961919203381999539685100312621033487912649070114758001554374373978357196382216720303084768203839946531912280758247305498925080124723103074308535405998050215374458099936888181852722735903604370612684334051574647171900565145705691984427349300373193029331644413762845471948986078589978106460986420485910520720263956940277084678566787531668562757012884757018200855225647436411426427341313957449980337573516613251703774832600706664037210401756331130112878843900877633232490982318456814104730689828981694736554957035511603901719514868842070027390418753063072771073567764492733635260894537960989119479452463383861448095322844782262599349645259444824447335955535165219398543593756109444540362317116380212835055335045199256007865448384011515609392859688066006989743552603480715646594844195426548401233458195361082033923380235580886906105835091140225492881410090487751780014603387092525176993008273295253517279250972622822596141179962087817012528550915046624289323587462524791415570293518192077827086063802376618412043677490663417263260543739857757345752703613685589444051395254228242851040860815400288337054034279520688274159011222748891169708872154917765573943305615748285653577179956527918205664300203893781739773791043247376393399347248811652686956115964918497961173728648287980165730519507526750486247596978181245410603563557147713518386020887391022598423309347181670794241845583188300325785418830005027360421743939486948408695151484625949397782557432083472698527614534574074717381990972243830216868687846157654726726629577780997749165034404641388299791258747271640598592025440935579565008043039068176817933037351410698737427385554191418295135090131800361768460865475691678056481947031711905842687147547682867865445497256350151113772316881044504703150702055398230343656264153932268379752870698432208949898484668005437752640994808225054064705498766420543103683248736575471800932219950707627319606565644491930176801714782695965754815189970470468148867308676464734626562669361451250602053633043119265276044380919522728498388159598268911715818924559247644407626818128580384516095346039932472164609008589620240909898777399999554287117569936594825132659346303051894100766762158466446798960590200761771781612473982883596164073564598561509105979209211473579723135449917329931860613577297388047370840937541793568232817307252133561714049891059017919508709986046417820048957169813536385563526030265545149428876640387717456257186729067620812391486150539575111702066087387679731636069308034383446248692359486851512849737819590606207248256049308672969028882651081038094529067902949509201399739294031083930755615874108892859217891481180905296425915499907569818748149079343982042564219637207863051253777995167046102179534994768704607925842119487059266623866488203595104428417073614370084068472392582279793483962421006352534586026253436930389157940794503979658534972961391680019768404296288492538541608411650789145646406787879800066803010600173064494097568300672895973025762831692758730047724541522433561471861827442649512897322985205696656391756915917792799780908768067840243808444803111915460495755327404084758959915071765352850692687317393414935023736924797291925489620240369574331088110718031700100105301283666429585098708860212870431291847916473168751181871215364149341848853170737559277678533584401465721294740949965550615112118694359104173003304950900502025475313248758301646654756727414280531657962479351309707058614411066466292244738125485271326524359085446606625406704083523920344217492711382005070909143157725000937474275263500017943606970922039195651300109849439863709770037708150664671536263212926041628503002829241714406336236593742115696178889596337331895673559150072934696088145607105855463874117464287429271620785965928408280012757181603055745969860412951386622590625798701441393510673879444844879561776266762070743641911490556188272816546026256868034723465624915238975961493818454662181774672682439954516865485542694746608712410741196563520598880999427509599852894762127625536155860619523234342341936436400756045619158293340957811863817364998552368462406158779133617455083153860346246933286383538497254336189270041005197260280676555214329728575636486808166937549539339161465281639037635421784355359612766391603421551572535717176026734233598953432766373855767385036883674865799464225548994109600792973582646190191664964158124090629437058871506375459558132818196440349217116532366530053478065174294646889406963291822670281108135449867942779346962759971246725550391840169800250995550291838489134242797040315411634881235656070806303852632536405104848530330759781409626649415071583489826790162596090003244764824433356056931517595830426012687355155212912259204234620073860987042872354892605435677297987773844410442553671659623336895336417972715572247081386054302601924139131267930553019958268737802799541264888181680121258042179215207019354590384518143842743770617992887050434917078458237934852675025264699204518128223981553546409431170333742005490479684028497305506339913258366396220462204195392954656530824944601409041823046918911476711676216102916283256996075922663790343755035341110202079158638714132813923830651031590176434694793701604988516788834444129746849779829084014060874556428070264408772040325564945778003977217835412447192119200766533510922615719819043298756179799035890976470274108605066927873923344197139538001969256981638064544137662210898005934582244305989280181892551824343886763165097542943071031373587246127002570442860916808845950696334805269491740794564467740535803815944612303824295670218642600475214813330467874350534905619552760251053831752101244988621675494256365351688305408148833293711911511957045430854234051638701934243671122762854842139482068833317139277515592586639906602721163736223407843463366245753373020058900368777750402294114865066362686495416126343972728918859501450771710768004264459126418395726182692784430800317500402248803631260928083596763536344097646858303981353582449067299195315889341008059194229068528684402252702370488169500724550161124435314227345869463636842105108018335116089695196796760011093580994130891558768227024378901550531917116938887901747914086654763223240337379180145973223102322847358181590841392159549974010928888850407014490074126678886213080283765178725821557534285770415767862683357091056388119481053517529291208482320210888136210485431363519983467980088989057691034246148289290446222744172293188825138105383915920438020440529639679583753450394234295958519752386537906673229495115509524400712263185564454198509367356605124771681440431128299160142399676741020568386915512306168497121183119407446505878735234500987565956154804470614710688216006953640271474283723175723793492252375828869649134971592964104838901301001737422850379525697166878656053023051161881585299115492412142449014012903365200177865526263799578547887914166810292204486162691317278167081717917412489897892867435357419352925745987471209335197858375423330281453733675982881247401189313209336872377786239144084276964850680373047154848560535725865392463991636553848387572660131563221828809005363438082808702432506255212583009855425234535180980364179147033785163400704211316966477273532999401880613498649365464993746799428500554204194889534541159652714694966048647909835482006789891346370694011219463047666262298311887256207261593050150547994945111380175274023139233524024392569357136107068160721245164643245315906435415581182656490634397431184609802379936067344343135987662034376166610324684776524693336300747434816893945608293780429709858037930001177226918396736761921779232041052308817011619168700223764632272751149300253937914637457315070534555524035533235763982715716559790262270007905703656092167381088844013257929335209991896669941644423295904635952315006894965305272475131259522843938399893631165652299545675060295671219180888321689826348524222660987404811553820034452849716868049587165938700566022646896327284419090996128447975332128145793351954246485318093171760505273788176611302496355373983761554848028933274479348505547742313940687024346657063327860681217537274757392910342052454671932281111483235293152526648914489176243069733818411947299161099573500891675583952788172859563206117071890059404856171326211392109762361937939739944105312885761574674015992440433114543646379528516616584766218189277137230177256386353136455333612390824051485402036511022320863494823201136834826541078223097985313415626855928758327010601713057647410363102602122073930307436987740138317416106419219303030904021786278568059817118513671946461519843420629031456857274131677763987103732600352303318070519978387583546362236680079714324379301741378004063026950351508280492586152479535642181307625325478009240211678827043220655689177741231217406775552736931119852936141300433116307411542500209229714345204130748176767765277021906870534759478081786248215927453879116299063004010431094472946494348994511475268856566613842199641271415865395769633552446534118949177552929488206222513363927313163443505307116938711881281249854055275664031854032480814533894234404522482352088949747360687063188122924906139851409871610042155849500835084649355161014554088776933300935274664257625266785219053151377895525582069375463903375760704638670627757501716777950284941060247396457549286243357797130188285483752034692511343400897702929105362615568186684100639089525426714478105465801716484528626650931413353862420821806206020322068014653145523124308459144752001747731532928671928652084082846321189168702656237941779905169825631002970449801930396388205758874522724746609196340352899298505162692997549817043392780896711827689615958549772441501173109393152848043269697151000052705267474321472909751098983110300820190206653708044030250883187648665344003261408463500801920288184312790940111732881108620467365036970456254680529791949152622099013156888301339584950500444401079763263010337894460704597867526188142808762270653060160181309981336802131202426782741234542629419846361447939930578310407162792041555935370316831001970330306278212914103868832696659006763076691581569739522130793048593253735812723673063848332888327405656916610308420212116995445427611948843854763635285425012898491307539825253125402881954688113054166893544378542209824915998085876421304194197456558569236902809870820387064714460890626103973643863479730627584258525649339622670805044280683618168805855580610680434348744430350496550853266152723095649019531315145820247461158928560962166945274748998036109390037650028551217321621838452513403782536766981321701395783502396903845392631436230917824592170191129896425091234068051927585535382266167148726369462319520374625943397433285514320441248692197422979248624098633065129118277037164606572823592025762625698457758381712553895095828995635244109189697196671831879217774158430223435024502809895236016870210390415628940667871898533829267715657060348362970163040547128307104653508436443692187589696702358921673407479636197509369235644231760410893049617815659224654932850749874889351908318395772229159828241384514437899759674594335148638775871717480510605476155669837630395147537961863401945346201021549283698283869417336282239361717635581355935463236687323361732552828002733893002301899547955470061929166156211952846110586980680473491921651312861357174769945578545253550109607274953852163949045606147434158344177108383348548451143271057545679959583574585743537035503612987040888124946217655404339699057637499308794680852270156794226521824294065520587439821292343391040674906512366451978325148653518914250647354794986099806834398095792392637927183007978098316046628338310437524020005462778222781458013283054359197894050559059550704050811058687443208061873863998278714360182295570980826177202718319539543740678416932144789286009616480210015401365152458526871967369715201156885765569770199066827727983681184188106382922859012783191485745632139733358790466869887469777423521653193043873093052252167360554917889217084943469689842670644032937686170093929717928718357232445513434392241543679773786714398494218927834779768592574162556660576055521830769730415573279491368509930751038842010021797073524332912162351250006357372292607511713129049304479905898697739345921637984019332033453232098675628449694086462522221338832056206022660830724722709942701270177851657148095110031170380409710751640692754313947716803447105375331568147415163096571383237448618218272716880483034573484578068324036429006371963725466318321839155974576976482067224210875922678117256885286029971051353280829410758491058510144594471074117825341291127590233668963490492547572590756623471405427350925664868965815264295297967123963813042787453080532156021788023283242900708183791489681042795134742030552172593618526702573815821750371998625705420993012355473138994030720896584377573284196205372952407012652526937693447640546943846196682487237330891221999154999762736319233516858947687924686191785513696938225074497478614302962665083356602284426455570317865473211962107083372003490208112603473401850504864400307661229742045623685479427578743672107568643745084051231318060148784325982307852591475415336843078445649039368725233931115651497559708853799165106670431620637244036897866374792200107786178739755939829947665669339671445060177072230903450157341252145001121587160236905241773204324355610035391067918451859780533096712373385451001207084007291231841960364291242859310250031254806604027953595503906645640775028148368743527412341781154409326298722114792430301693896829903105649624371585197691765729252682029397631408632793158515697562898360258846369138767954162774709807487993196567526519589214599303907759213998512048006844364697814936074895212778487505512256098507363595124275919400505554316105295906439131007554192646586752731057409904721534570909544453455905542293903532631607487533137211521080284708298602355100881100036130727029687497433636221751555816179520480055634508016397876360807912647358161816815243375266551777563493104920309230057031328788852706962400742412799687259199406668929089181769939756499237386047476281343026646134011544306406823877957693129262748246099065281569314940204847250468258043783157172772820402760514277096956670533996633696714929302148531085940474066556645664254193425694224572493930755078803741515799928262852215708401263044953416380518798320238581154257952564172835915384852565313798122888083514525200409158743031438984671971236332150571925715797075475422859952035281915247863015473464614352182181505204636783954366546983503142908836506832865394458091411467388516650242844605099599494551300324509859001906144383922668590036224435274839621090663667491555712035587104058158564083247444021564934990314223133736835251958704376069727962086181611430296581350853833522244918270500455144576058915167282295575826114877976012732529061449051014671721365218566209941520250073320385286553548296782901325584992848810232827949285245086047673657157648062055029925434389105109000438910343977866687980035177937349814149308998301432646243720471105671225654832468098820219261338106470886076078180657660410409866972810933467168533091625798801610543665214140354849700121205168184549714210009953406814796237088856989195133437544089909616058633853952819011400978797262777276491228442107448242981980408817244645313857813228528488995349969069753553851224491176254107891923661353925492997801744093935195223202809719160898426086478801956677345084387654901330194315459741646755260831688335679489216177371325303976576517896871823504725688913491425998354241170683868573421409487885474267205672696704638394142542000534696328362494166799770282522069165606557996473868970126145240302918638965720622905061318594303195204727979298189660815981540289398222802768843954619891876934650088202352301471241413771364476383628336977823187405289125951241322119344163623551820052009805347761754170403890654825519759781371789371085942342536010501344551186499217295352079513967645723452536105453401424596226432834854407468197309060635607006834076086815318390193048327363225829580272658396703827684695445317622076068290071594478638606642113445198768652791147990014607484010518132801935805775051313052579602822729478576225714522802866544271278551635347834018415262128100106309677448690144928944187750521774446896160936876194988530866522976531357568234569898355595250180602892701158899590872086501805467818172435778351617591662404228830798438904796368112357491934937764818637339872108673631622861638517389810729953153669361092199843447761823826764878686585763342028659200269394362066414264831220369170481852774999284977235553451385442305505213178828363467932739503949466320442984269041506453629049534310679109939694597845329932038801613177389881261546419682820455265289222337846896443425113596881627445970364904464192216391120162016654340113824388083270273493362905408037004408399922162137559861071212012323700955252540236845400966647483044569394599430418146277712615496479857834315659317858500865932098041011697405785307404718997806701788408405368192265444128977572064769567850593128826004835496402398422724113576870412369053914568599828617311252521968469914897471033329538686534825160886632788559324519079160527254363306470739197389188516706185015874687493579613078687599155508601464249119975112520273090095990939410361637877420469102027304703244661191727124201962801593182639063460025185065266610209171818400862108050083181564041538995472559548474071837328441833692124737868151641256825464181489191014564195143417119010991985263237121378151517840370828399260316764228043695229517748318717242963082602995138381663099619921022607866445797592165898473578816168693936572115940793182609507474961385628553248735800958249712939367425837932171357277151644035919468873265240652002894541283820590266172757963134279621876023123302585701146709451486741494488430056283957061061720142931249742882355822705633520067471751199654172918944803654931058410910280788279400186410942623026334948806546157224029722989774676205259078316464743900594370447883418469591103488051933073233635657113669733682400114627859822547958157332749150332753817405374788295828347783226945135272266858364574658361707039721075681337330521424236440145055403447990021862598718763504260214463825551161700994614039893999264962953119457556728117354807917043074043177206456007429192768803611177120902068650884742155952711697918623093947369241866786222628158078525326595261865906374970690492051377440500066339906832840764783390840555317951032441967476847154361455120855112506530464635596687179788197639947958605006739483262068785221948758951665611140491646328312362602355721775902117957203726813924510583097953453598327444752377927507210141121379913777914125574460168863320879632846993981653692478735733449174719858267340929330416920031421319624325622581790975047339861914428418670591427524605862907131528135522662982026679809139967485293290657421844768661013688695681380259747750992720521319729185359293875180506672413624308037655227074705797508536758145346622773834452307228439517513369300718139521432473799748370848958770579362520049073256611928640806146171027897729744337528674205424516458570491743046045177348941577128877180486600515168983813673047600195546687509868987036722479483063054217472110176849570884266941190639200773476963768766139593554403561558126704567517053729502407011047954731736463701722238677539351249534472297221220597811890688384989543439236887426483822837641476582519261234494125705171353118278247254617954314078378753409012534622502930532558889861591543580167950026863833895365174676568332770391266015982483047888593362812796982055095821388986433424716077406407219920212739723194091121394325203898790233584302910185400929708332594390946839280554837341029174151007303632780800980109886700035251562380022869020442730849815934675245297582913754087585469698595492795533541070106776147274398407275374711836906649902417745959991247334272461314719098357119358439910210565577475335643704628911629454905212149537665565791035158397164001962656443517064540204694530553689338644156203049997672564957623148514387464055358612766104389037716918224221502977312822252702191848362106261811203631051860006858073301330976195236874154982028666456122713326389163804118432492781011903444612205295366409680664961328998309626342440356992546257189511114649205096632482416583539545268233946310218452404167276864490858642053778852096638658573062814588274346597784984900482017080459605285525434761051400535945221389296298075860737340697476222079665694310231634647665719685347381996443036422242319792054757234098953931837807923535089435788720200016597410034229525035441578227172899579044494611429326078302233958219049333731280615224940733623232154272019491135066666520560545752852479420196947998638807558565000352925225945088034205973142088157269471792819555868324573586553182502227188680376004956048942289031643782012478883675497631894274459352870867328264087863339921813389997693149533233539838573939016262122758963827656961901083092961974493205964972649607531282188804671352570830832519505441666450548124230773456746154863346065238185664323694415958542161258071518840966798495770807961670919091190967272608943818708376921959171446758997395687591352047896586712000400658824220639499574642356289439974093596185822141867477475316303264205407747461257602276025427217912233254799364324404306922149804151734818424004586432827540959262327859066152282306553810669319892202308438087655302164517664136564238209986679661413782117458625130060512731234380387742835809705083622787730886949710426926005405059817156602833259472646428835886804657769974499008272424143191372371604481713450653782354769163721699532041917531798159810373396912400584078516964410390396191592723850449224903496493732891808545615644820811541266535056699050103499554944069016603127331758486793096168450726044439079196201969431183756864100600742743908045441396721388881464822259227066344761887217935958560083968021669230514438861697888019188903016151229732148013006116492710093813596591883938893595044684688291600330232656828800654402544749452099578144429881518355210929549095400684169368088075797031779235654029976115198773654127932407490981264309223082290714210894714916830995372334343457817248361533899784724931912829182553002036006822053593588094890374758369464146600626288486665452900664823782558103885770391254608858117178719522451801120810482310629722840882058861014239764998467195979002490250870886316753253766460309500696508497744225902607745255174462450636967030914650543762292655848276615094052112475773195830481689867122110936448175519740786068693692062986492316013653568849986389197765691309680548601860163376007239767863818817858036413104895149407736569704377172299218474932704804763735574885130260882643114829221917855321482273663101729483864257522821113826549242220944057045526720742946928184588340517605316952274535821968599160348318746832033065776008824582902537713367481236759905656467851603438786570358857906427621090691139915503406032870255377821376020651364511436586785242224722805905231807084773511259654587884620652403263427577297770928127998241351813123442229712192184786858722276921659421490039448767387329221129130169821231525140573827395618656096255320361010883937168652310960284482607678964067068421363427999546029687637895248116093754943576077345788813717980731373893406654187166090676429847454210048799977508130703250836081381832156416103977740797375023157377553778751515954140588378587583904043565749820206537174730001402102541276297678900060956346587544387821821833921440084287758558492663171484441379547945863202749311642759926023271144354619936188724947169755726504657069353016583718531524465709611081123845462085957234562034209667001837655631048362645129295835386879906748388916067950322492935633228034442351576118758843463459137484485537756416032095530883366696371175810345444418654937292008449784278301408798921313037916023595652519707203982996114153718214901863417254464698217220104270605488289338423166728008019230391904232463100417855189432483786523192365721327314479653837960129428548201590615073831725698261403095724192217466804031440514758208636895209833153636201450405946421524662212824452283968044633563023896481956684523359960493214658685547066150888817432293847024629579307292344781900096418765756367059225890454171617569960340970787586667965245177660818352869789822659574431192665255674539338854704759651604416722016450902607676728936389516096788751696364740064089896187049457958896239871208292624680486878988468020504055634378443602038229046729619617727689641695041964234775212262311698966252580301902779676761812776979158805464477418418139208180666434355057584671468619002302595183446597683375280537532132976155906517843140741094015842517675828556285015624490227501337407654403216188500024030925459629299296488421973530211608875446838761491914055239290750832829118702312580354730393575923055231243968823744740778027458714092331828558960700023226620848255495721441759070346237004239456898313743878080358404081068164441688954258511757332646461610377897034138894574411236855372516702387831305822649859378326809305971601651594383518395306431076985491701557619998635435734635505422946901064211169933972078719649517074394198232847743058115278596265652099394976057785648119823590178223156051712011035853959177056941508350680147951561306628290232714191780445568610652261306791131869147012122570195044579644891144087871101026211239522691533130105368503133699833745948977066728400833403949006434421625365294162410134262993589762655300296835467566997156350050008771976566721699218487407889800203885049847587145541926804194078131492679647608545148802186283990635228616251231819929295646353779652671163244298099115232023430244063889043141037927746134702656961814022218410082119858108868157965816376937391918124944360523320046117858937716934477487675845521967727373436246967505978843894149626125322442848891066913426221391352966904126502714225468236448989495271823811819018445670726774083547070469233953827893060141151022433468752124170475338620025736572049303543706895742117305970673932999940659893023514216078171525621821038625295591914758664649727724104220589383085835919712481119312800891951756650221003325398850269227333271521612477506327708775404746499315203465199662887906971363911026727373652622027670415460593346057723265727559759508311704809412036771568535263201801396681738120222330071931149536078499762523434211279552569356654573211038480200685094346870892457891691806540520901898965679702754796970199043634508374278724261063057198726867856157825012767874414212586140656255709049951340699575244883780511192035286248564565844787422264217239294182082974630218604939377997276653860150196675326719050286170909242852866884565750278544393147442482254438841502738283963195453420792474484300349541037405092839483392009744547039635756881015083601425850571412953141036681978553779111984981748103696832944759410771801625604980747304449288920818481731183689039587077045259624083986221030727756731341972353879794070540216681499761205532333418103012617129385786717155813239884177810087405453177399019993175409940582275495117661567450453312648626921354021130743596226981193848778707298808046671091045327126423666281250941910689121156868308718539816473748101248306494749795180169232090556977848225375184756234787713178593129173262378366180547275539295630255784572571894048823405807115253995732619851756314691771764420333492425877425836020264954988465064589691938469922162746377445946396569630270385481999818705618730834504660372248123467674516717686638316050640054332688939861315556085305866557835471865774025361427994995228011158616618027891752581421153630970868623048114800074865016630488882837242534198238033367061197021867709625285334074684365674278493454562363786630246682870282131250483694316781298886477787434789637789416423085963760521344638513993381684466564419539250076628237692842885587375351450829739025143482357665871212239744990589155985623489707161703705570679457099280842970209980107296330167799849135273141773213428294941483535203664621047863290596584078348371468989078474567963950450392849870035431326202031730984770988015219221316017405595839750771754757457918403379433325852156333840310052507223176148254189208944793844980150191174042234573103908318936548174991420754300169363025337778046005933954693290123555965870716237945657383331046846716588027043862988728828355092118256768535065946320983110692473455453329034463745377661480982229982404697824684833581537638207360290428896886157250155079917564360482896453136178960691675385490739466906216761278603754255906636078724466082582381769833087854470958601613272819825887328784444664916850407359755838580736808600388579467557873900049656794997342447448805507040055707878382363370234793676614247183336296558704230526770907203127459608662199229305704946229233474573952319160511529461377711486182611302894368623248272793362447997296543835700422981765402974558511468278680837376191685379762059523151623742730958360282729847990605856549156858991666165677584978727540708136530381900832006005570857528753890287149056121869219551286128607313674196544564500367105083351048798304321273465295669981841006624315755142328776854274708133797796534856982036461932794259037325979658338163455222270717486410931741539860215804794584370376664889573420966934545899522996414422187359995335351469437913016978518929542052373350236636867610893424672532350285413502221931286386828135225102183492343260682923633638240632951680767050280557906026129949405223125557138682915816350314002604251038159627983736654720527439242835931335519316615308702093162180233218938605161389227089912121875999593479493943360066928467492911414113843128338246025259560352087175954351335574634530543614986375877638754787879471761940695018832062576648278966805633544093869677028628112445206814242381691342651461253247710912695422648957395804493897532808678639449308068497363890680708435694000347137334055145447570157516207648865106677405997519585060008084642160141307564330063449130811207244645212303561240096454690226554103982911270477481338262163199517903649788045408976243231521482763600273381493603825638257338725861364377698466736815824174091236442260829370708234298972847674521059609317066947926870686879847959098462676638376979334039809390006599020019483611810777722320523879724364592552406899434754686701843303419630841497594816399318659365442678949209189507375810903988014942874460735019111249565400323845123082238470043728549679938120642787053859832137482790780782087950758947839927664168877428969096105955751395511731976931085992535955903396947816906214930023517917729983049989938248787881665794273257538908797579331795628656796209708066151938103676768704500669626268795269044915542313918131313553480731775257040235111808951777253645733081267231430570361261223302429558597254676109377697651567012017609962147780658787322391445129250132165496925455524533710584317156887472726160304185720856085447669111522593430167844429122471601017401947755537677863037481441049814414099290433889514807273682632005469171411934682533829000271232202511415785608873064084574914328935087895537024853926210033399675102494128099451747067956059715031905855497800836234111583960571833258686769845962016654345742574910871581099879857226709162702333850434824619151470247494378736447804806219077848671271280846916283944183613645369149194892389643467474868448880282129632372694667152937907177170833235695909998250593869394795107896421546504417563783223194725005976390915998781603056712146937539341818003221759943932991309810071418903110054745824628487846285593188941891934135627877283684720791080736217413529691674843558717591773780572286924487691359645433703610076238793555243211673738322613531680014418234679026589472713941054745394897090888046097783612359508832018728386160806743022059887151571220021858708284813056979983219449581582527365725291463720506447863752286676707481005942357051593997307367743939953363373436207514234433812241797800410002726051622951858287504990163591965012148028525106653143776670759496465374134343494107016311086562454847617810576437036399451917452221984195317086439326566368531962249044147649787039538633796941478030428305425260694111845970249897810842200721422547240941298717656944581429510198241181862413446086809029523513265382578236111885072447672005895127648938833377925379008123393935453517022624384473260517299772145413598661586415790773541568952541031954657623984740284033314438155389298067826522121644072287386229932650321596731903639011025460002116018909240625396026619932522681424347410063837053675651259328661189229536306177311312882888213108113100954756778747228822227165084503060831309510907961865165120161791635371065006673467968267687303088621757715970569641089150573033409473200047159990782590041898287797618620750953946427574728038535642965013977667751212237229351374676197881832663458144265546712711042278252024346281749820390705398645141401042884442880820828916268471737608312940293852682696570377030623440559145311760013699273935795984877026724090386737404224058335475206042345423602670844134468009663524079506486543138384161277259441269042193217635869779631403514875424323882947677392120435294656144074965198294762435525205545226256996339492171288104149456982775814245874442609788175813330817529458113123948513234170996099353358901016741764351377057956034887874158856141721304493459914202366156482857222536471787527778477506208798087258073134779232513686721971599974898714751866679769767967343737122509338170860400244544927163387292403750619632440311848901375971608786836049800927132804366017604387164064758839570480121812366417059046347058443823094704617366200230569134815620666257680394475598932397127048321168631751768383238065897067210587456022402680018867559884224290029974618693248821615042637584844240450591856099774889113222343444040446545941845276640890591796765520557134661007095312819008773056573801413294715809579742867091424043420914750958761954279537939144729757912753383568469672719010632881054378158119772328056366030624485482274341510777965072071762608246838420370063667710404264864424278153880936755158740780364881036950410657358097550416908145764937431015098936481936822265517887777321093308646855881734828731849814917677936391300069014116760393827504400303653737416570928517109110588889335770951307877044088963145964709176863619628079267888205853707307574893574590928382244485155354674829655909385904333664952822301522430783198190785786099307089544443674504048260816319582444247430083641229881684183469466534457327398770214765580119331206528003455751656613533550738044611091782214782946626603389372434355988658087280487620475206786017589745540885120337078283936800667851028989202531744028062522953781945434993591064432914896632848754232982618680993971515225022695018866629219936594699215315172358420535957587766419541378098063856595529846862400550777937584840313095151181086709915913774276844113689677661606402176166951701512271963878758787777281888443755688784405511051446610616617190994729808436650059524092528760200476801565500614438715348984164863212139126938756059041128080844171107809012777725397837754271645496492262060243485480646481161130686380757403598444631398784441250440966570313253967153111828356565604882244377315243159652617954838138437354454873034649060005047316343553355654439932101712453321965877287935523490306629847627689770534269066942208131262154617826993873252331511137526041238543750251705699280572695878441027831167020566080400787872983546603561608792386264413872511870743914553200829936173341496110748073237533993641462899922464240364182261388961279709659467873273269031234343951515855036128499332620015510689322615792681940831374066111169134141991912932962182418487503363889281234275631252894853281827902944675261140161578113034444812706719705494426819052238492621277465330574641841158289302493625077161191789733323967457526393436157406938113844388116825396802213600465420192432336322909214319488866560593980728972790733877599031269987719429219477972590551946533512918119947703282212310365218944591756291692447615842027215721993132847029734221742857012431459287257587437575908293536385092214363204491773310248430231104614585116019125886694135208755348557941503552804482302603745187429928449430886835186853898605282108351267674745585385949673876736070802676912901249188456543086595302652186791863851768883064165268048485189324424928611544170142252285302524375045036714634311072573715008895936283924549579323784147814011150010894594124417943753817100061463439879290492638711134136954076460615357473509604778952376640733803977644900015496852201756329633393214068097701083656004066797863321671223365647816436920287302031553821919483590653152379727533940291246467891352016182231066322440833431109164437211010448018629386015543571000781013308931264509482356850983845967705749983512983425332185519930170753263801038912453634105462845360993804915989524348532936959166103156691044968722614372765137549278114796970032296158771939246348693055541962817538634080760628661393767556718714025762300683096394351858059992611385773097426241203601328874145525934745432853703293134897255690538541895269221711265334991514248078373548470676038826053635201670008155220100267808745109732259872926578607343415679879719017338329542579247067019448256582391542637140200786843744849283491160938017558243806814224472401410719458226368698354478424112559744767594469656143711767236449056125484218733409505886115382249073644712068497006278768551990677554246443229481313766615431912829678901737086897940000703188672013605318456109083190916972182978711704854817206736938489493303148333946616975065994384017872075260603256646853252327177504504291915605929793695622177576609872579491354157402637823954196743456306544766802540618866152870800432222988083596612335004042991396500636088917188349358700630820813491234870015769975065937958021487697988521137917310996359379510305813062046715009120237299664816032599943631180554159364398564130255200349782672343090386588677910707385160775278705037374246907309070508194560920237280841940710120680987145657737886596102910601226997349084386799981084984293294658316533088363343556313377364658604826610742938904140113115333892575473006909271385094354447804951745983111034076231363510909826032346737880047818569745332120399909740340368906997212698287681240383743799084766294085008480711254457394461484411009414401356004519617102220009704830100454561578734468284270990096588951103612156981166131265897077901582147484024894285653087795598562656656567397314515956060875477850138809655085613423355000766402671526317384784503380759502794116351822960877933906397743710535043262014835008915273788186801840923581027709812212266854483993369244787785169320832894027727027733099030318377627115758986462883910762146254622342713435553648311570704578384228817547346000153619782021201665306338022970579336552124040285438066678678151085160867718982333721941020068466081726184348670311222307369865138565754434749085292971537990655164850438962992241965045462561789376291167569614675582867505778134375030339700538841422832222767170287664916347644772001517801115437332481723414496561273527239316886566236750056037180975391213098936875714814862031519890427519055960993730355386411860674572632207942233482389599693129518149466818211928228567879175880012265383514364400542322330029674398534829486043800523606621083585636556736096720904410588890373281176163334098106439680626872533346240021187745071006212171404591239317835444218019375061520843566499552767439408592177574129166603817514802251848298505656784024004004543954238144553259603854644518742436167661038077862679675962994501344492033574425294337694823441334299147761475501020688574975447690032722589388059986217379556891288029584239637895290818401632122501588947642690516711073622691385482652487275803561468248346848324039863580726106988222706031553626806261470970313106168573474997163332620980098851550574320391312481673617743251538279461084174239052936557186904930901174972249955034777905551846180321770752467341321904865849395620882262573232135614149116486641447038085638437405359690058475647462989120420141353937502627033269075221613040789419265644886624582468041361190940186119516953220670317476848494915284186742656932857965180667838093242477856382058460116457386699047714827070165227497947204071433050912546466101604503505978403038380931804993741150588540335585425878951346229663149495600659306510587854658838612045917614269073143955874560050819023491896560499164915171733262756564419823712712700244716477881260572515053067616386361422189718970456244482124613576671579335967449850830561646308275473612998147674948941761085830285155630537977093488715636346787636610623092670177480998331919838752237097318324887366928295481750987951439497057346208776816356664211518588466295569829228275964276952533699320152405597262165734411943756435105947767297083515042861332443305900182507007609630696172482081989067087764846973918765153705209944489607864053869662696745537710919537146332806868732490605782255025052961515573646933143653664260162981454597402249155858065757463391061114710150365471760888097794808572020929838205317263000679261486128248394549524354302229185925210791402496806566593023332001208653131709336686259249753110593825093773163369483967315571506753423897988588852288786698812295974721725945043952986774686042828285382162930240320979655004163662139193427771952291129820772910523338906844949271344204998108242023620506022472507199981221727669965000025417999005078921787546151599942910630369237840761976332650337598898884132854391650956466815807425748406182080853391410703174030375720639797982524842983026168880476081571912745840728070795552170471590494084155177113747540831003131302520008671604278087425770745512047639144101200867160134482135935051335584409267217005908164540662603129903510423648347139365667797126173780274488276261647005711429484899345134739513014763546296243518997399195645270632404997684199154061171675088878354160417362445380466712029623971530899119973444184632038995110838294135988268875470654550518270520374879426905082008851307704711230825507934455225098428591796542715053781962693408412629289372724524924808155163263214248914224222004363585892435894534345130527848385318399064933354931251404142720536152940078053969416627010651772223049274705777735345622036351978194833651854129118631856435559601507838910900002118883363864220576315047911381684334233198126041883082985413978260204790146798236627445639314270076996605572862594665386296332801591841649811352883548164165751407109655710341177856388591749384225958145167811794686980090923593724694869765862683594195792942033230861226409638135869946907531574305798342669984560059939705423752412841462225536767635914593652161774578124204032904717531560984607180939901966420197098392893003458265562023700692710707105779062201598267705496640530301873213612127796836750248586348799588222252645717818160233427608547002813441605028554925467864144534489047339292234335913197706071793993807483296704993581235563316960664018092268699761494461665943899530105779800770111757174018774746633771284314870112354014120052617107404863805799817323675088099865415073415219245874770840688267019720718875162755148288572892399696198374235114415287275211384316591983133109304773643521192383496495711813511525332896502215418228062444670024717649505718926896855210513835125648305993894629930973423115024124356623294981645782568234407461375970191321324365841946732811471553464140560291336768054317831234058688825845914289207671103492644159196597573585021467214874817584589248391174942526090199023939663419291065190782969182775440701457735295277033598991531659558785431495946355955599658302778574462376101199609565040922004514880557213081112693879689967843305303511341779290502237831989091685289914013974952707669550255231385051934932375311797691562247785675451281632998710386211917571606215902047083734867014423455999686266160406026014355844772710843643125769903432731085823911077996117289933387961023941328695070702032144656976652638779333045849052704070004673481745670866354777448950070792320386050624070133957632389411154375775190782365419568998921819197694236915410380117166726439786780327814188577741871667741242226118349253072686758306086775652884003822051561088318158125886664815061833515955075056214955255060941293155195641353577620392380234831425796174758828015290268965834180299766695888188213677159476566971573770415844113181140259020930221880500215791659958610300103046109694705045369333518410517585196815327077225732820796947506787166767994807135915961459594830368548467081554542778002986257675474196851023066669052420579217686470699279271162159831521766834935076329886562041453378970662321724390953449614185754154779302540748380957923940742890547771436570503510931483042092156594817425740750958099384655335671225329321969614670703423632353560227694801313098220449207655397348152331376416705096000881917979510197564962160566367885558952648030498668098632471977628701408992153565627867172392529833301649273576009257910589913531377877754648843000654036337272257034527469810543064412807871107993707173267734448295003219326903360606935619278884551080579709678233511615748978983861980115552017770233970446935666785806648835461933904478477647110401216400660022934897092218442266007361345434586593851414446277246643533326728020213432987128615819842142236512543677659907711015501719310843725085645461174498792871187275500021977965299765943997444096692759506376393481129568472517746390610323527792697122469645578628795352173748421572848394933564575669182704971095828099074741642544036389564904122144165620171532060011869755444782869915469005488766778038549971063039767022480040624641955564595006686069120868282197039956834420443105377761836630971197456867455521989720527872312923898709648960328524093017137399516472714909410419353351566826110042686619286229653168023419149926900590902089945958956500449144244681137109848536755241541379877290801330513793520895983915052177462099915889076387851832421845468407538108335835532790721389321853794213779675512306198907298015155942665412756115867294764122434755046581022153399874785930040655901822247165811086943466454213500891109477874933081459914189850142045677581314175008097083641436921071735061040229445082865017052439882667952618583599069446486828200132085026598602607412624855905754672524335841803640546419161432879269165659056904127151532579973781263122353944221629085476890810507866322606849412218040177215680501128278146912065120694438485976118910918402299677755399361107237394402446912139459588814221763606101602667484008358310250252948454213929845456492972232200034084474019895270519131455342908888633743274243964444827346628497347339494612860693051895995498854818721906674516299949141365250049243811583107501841702302527373485852228595104556442486644505844390583067563082243655378338717388527134332757901967913666866887304084768037787313150136473237347240798018925987860876409722295527699377694923259161025130415356243753333452296370326755233647492802918150076263101257845211241921639938006594790803703184787369283861827483091174399975370690556483709762843746355746483030006205457046177813850669735015991889903491867946802301106582831848180622191828048317615444909076383571172570711031513772531073146510876752788300108011574795073776609201435367497720404684960373455854359259892406572557576832384052715442820104610440317314727192365444035038570349326222151636761088588148051882809152298394269530428679472063509134211361117231259257189564987668902625482067239506312851097548809023246907603657180825592020641647941975048056713432914390587769639833989348366176108579996239454049696804618587346367195158106924024077581657453143855430990332458944484975280288397458599246007484935141136800523628086551381116630694915939123447235636008296653287812455652739982861581001881914559980851310776363351929009573328732190576033982627111839400578514004484555906415214977646110422501738531845493791225510360161506749982531495198118948126466963720656162358374445605969770731828745069367248609748505789828103015258839255813878565330470463210342815063774897540192709132882571592333772168456967533134530591853893981548643235455155860029742833431089665843534977410402919835018026650376759450814806157998839618033832961255932578610065298767482932895545502385573872527467120464021686701097831418445136064117973234330311550069058308930048625049515985678192038581169122827721827967283990475181773478227145336344525222365512678595318918494271094808510016202487821876025548463459124413971645980773967807630701978210282397642506018561807904697653025032306718810247377178579897703484317690574782798341378946367474675945675618670618629372686833900390459965189493547915794697936215678201467151716018398135031746727649380724320144858002009150229065995573623328906406286839971955660045427625034123460255735476991134749926742133404322736655418560231291964218900633895677372491072382615985320698501516110126089377616641029433648910594561588486807939563543723384980535845340150512233891982389310955349363902459016000677538630191147124299011061514978904569112609849568989821650159974887721035747071777900081867235881498901137290388596424075638673301185064976975970932965174092574260008635822404932264738565984492409601815640421743975698307600302677232087465679940942078582754571656425081614844941366668774442453796442392964672831545163404845509512692307533589626004520067096987134323382592984697550844047378756604487447978978736036351596509357172337381658470722774908984511109520780864334542915225868094990448646480113235036786751050883088055297440128316849836968589150993259051720496213005020100421375460938750895651606227667490859889670023676840488364582018179401805193730749944070784568129100140770741204795260348046932162397935250167616783177223338306137691502664892093721296493477089925848688047930506773812339784178870280455838850754446199993376946498497765952722377440275449280434391272863906459805661953479447091138142265162339761410649212787904323035048922353320662810551501422521425135900758771256413945339357399692533389146196649028562833870652034189939898224302193594879310723984300601481599641005068810661421264266816772786113204261499649992563486011347499827765316185241102853655421408429786351665380530899858312092398120733092360850977308625622121670555665109264335139550676848834390605023119130207829103819278995058390731111185681535624701150882178048716234449998901658886788214466132838385069353197299823126680504044757474912657365975625898472274917098067849851349485052082228729263883945793326097952586056414400262318260388305095133225330135868324970457788599463752740829843958105974414773489346490071661866618000722338833488525319898610637607217282553508634334179647029287646403713599064139535694412252845793233194406578740044191323000085077422392951097462954270974093014186260089651371941813558184114292187153519514656194845507435669816124587170172888144120326041581001759028355871913255790391470718679800197766188265316179658120062293988278164860381308908640656326319177041784520420615477270642551585890056941279100867820105126983058208071789637470315883986049516273375331568332985061923637042784025050071907755301722210736361991211712286606789356939692793673008718802855341548003853684664324917980013618579318640549791657462930419805076763089480168512107163620770634077431799301017509598702740807618127776115056722111866006741043225704796296582559498917723299714431279678044805446076140496797650154810685452194841123824101916959596468793716606940598465683511772680335322064156188407716741923854717161352161864876064331567354707694321126770410383432869290825636977705017726471575885157321397528840479692201963815224869174677532942214042401332136956442242191601050593007829504902735771134297255588183158417240653649863909598601057638906647306624479514449455629909671188018376936833249440261460417828689194486041581628208593928584759264916974055805821812076711020339117027820568064493047383511906815926346462246916432544100204086505206183227297771250512160468145754294482851858971912929243123103520385522999792807235888826770315414932403958403607310468004993874031074286903144188763040448854519841913527945111423719186833750310150957284091228312036331509154558608148753059819650879049216889231353191090386639010949440521575909345076499885017362202480754491811111831575254440285857387151271701271077356126719858479369526344417200203039816295003027817190324547831488940150395014366496450101348301853106647382170156793138431683468107696977015959610155958291849456993166734341964152078855226929423801104390140111378162041620660394737438859123506235981046937265333739818776563364762120914466730319265176850231702176235904311325818926581307167817235355603615539479251403131386546179184698608407369817951576023560565817969425203896746523195925282463324104618521730711168515947460674025148663957039395993408301697970743636370645551051346547809196701703570164563227912946519664564578535616662763603454755073837270851359179911009072797308122147860916256368940686054114482363693312998658027432136035171459425750738675522325520138395705647092825652974920566740928969928328428036967958699853819572056701410954454608614076064316490311149151843086270293423140774366661209006570701137189485583708505459867359822408891149107368363008984375434197710815274239667806540465333443559720690576208901299584030404589494870592119019685420428707663940999645550099837016143987088699373775499659000977568870815864006789246221398074073599102292952678912778968116511218680338735536863620639500979511282532295849680075938148253661269001137509397048594680580504130029353808208112648854560141757229089089524855565164789954135359443729693677102538593187485188964028819429822526787145040550407782858127206988145803022768490521786149231951874456276498657933492954258236583160201669924073442537439687683159339579350777098467827597682616462386904152553660856834619010478311586739471683323139999306409908451390487953085279397347225351556715883699195880407002634616202564277033183636848471743500052894611289421831643075129457871780987794533332704783813775877808231510794996272106171817176003531833984312692832067892165692862960862476955081525606931452678953386309218129529535165378048016371424010683319535460438826965622871461954157481006254336993651462641677906657075694542379861443195824127527691534694454591853531365985958805490356383499447440553274680125693910602586839932835504920375291307329416175019710208055214414942894639758496866407154084064728178501243107876632140461174374693845011550303848695816080661340063672675112251198050930422359899715568605130160338381661539467038819531687678737565903467644590667661747135076580178345167735997481146893636788480091641697853066500434898107064921757445029123765711302146134851481241908554757529922522983723693021970179436799167072256687395869526835558404052906807762903468071485735614530496792499308802207436059308170555608269184054681467577320574776310173328201837508944048880858627071186084451265795917588119999689178764778415433654595406478852011059189313985897156514753642675831145116906241840781152006833097268870616319585751555667483177920344754231911095179726164344442406471969940811093616704599246876855471316012797626446456238053969164239599786294961535415175529024616528487192823624766701497092504023745838209143578319765394855669934816506662291810660132583012922521861331080428653568904290233691272643497667855859020850722036400213810411694068099408428022042486334189553504674252712751334086056480286062319421436368081945119714109014528862759986049101635246591823617293387348051402776170403989789874017727927531302844019192875448577178541376407254937687339322814659753749710234852188755263133467048645493736240258327347623133758508265891066941505800923101451169199076215244063353780745845853246037973413660280773697195760128259156162422452228486618159996373839749075489461958184042055739163928643858433103263398619430270230814231775277617259412284077714313559299461401366767554709096215104727621095978978771393947730841786016313138749663143280468289611041498454893577447880094843192999800492066689070117464006097516958742717133600096323073249838048429216059571479000451966838911753674629242813603592893092799477380590016342052345398122259521383655377278625134791444775490717612302399551590973518263452100235639258642786591866792269005275791210234499518231205044571425212601195330671128200378373178265020635740799775608807810186921074252083959516709442751593799730306806263369201675984290262305992547766032950420590720854490812215626086241978063303875897319006931039110730118518847941920718328075001858399200358592435594620701831386236251198726771421986321426789742508895054333274939037620901054915944158111629179184966585283063336404792641020534608668903945455279183589405580744015345393355257382682267267090688254160139817481290445346232721624547763680726368545949949078368691441577205062275803569763493066053990590970913578790523898611934633940917903686881404905860499132054223855443431535678807736299246213016197752017903066851453931157480534013113267254650496985290869891180645167821228210036042351307473067803577051883009053946687020492964511459326924164675369524651667619624861219422578826616522699954997872277575060322896044414832115218235515239196468603064355814161590462547448754127897497925973431109871917023251733311110153281108885230267697374583606660189775233024073217501750421539289137131577777876462377221313380725960796306767800701952280350454740240882930215108304359221139399993354854390623383685100898817092129653031242784204272900010659525439214358840393497600245152278832591243476448310856356610468469238562374394399751437963346219991805033472524427386170109090763215751245302355264249051991913967695080002486182586744513794932740736470388032311272315418811440357448300317405234409597405629298744941526111967730260259154622344210538824552833183183867823990037769702867000694658961722352804848009057679370472486339706121312279634033125154699478410269605686042667739936767473399180364488092073100388767904824888461396016899878445386378026531739865772286994309192489304703028871906007712353199418038805273114421882399298104664744180583355592819811567268170551427599394578244825527778813033544429310232783569317037203790370311529382131801581747196613844245547838995547002754415044982950144513819206985995045395061396721703784900785966872784619535832392176586825328472667588563280323783282523903925986174677173286975736909090986612965369085949417340310648582603528764313270812205974186221555382739286838765092108230390121342470990124590533008094873665726498241205729819751922431121486919006466009999475618737630624893494077051830469921462362305694617787834380557815484827114987585429085242808478072444955894451558363825793041782606076770505907432348938500311187711111702575167473815216432833112964048836069979074540638076579807337592603909110800148426659909095344427965602255503544293638932455140648197139929035803957447933173265846832597913502388403625327028105731954464007166515312171699244810025448081750035474441650240782880084114577769668128625106332329804815566350002667117500320743411103769441734224643950476112125120346075010936659683538789888803959955931153079601846344683073353026526212327864688844725325097095105117887102917176525876173302365505910285177111350962614796218777121853695466495294116209709580678105524965283885578366868338948722666190763085231225897761657629753901144826589341681674212379392280876680295402166626416382687623267871400821896877473478999178063054381054147786394801298197039153218054121229291147926571276451721352432177284386329755269294504858088760099033602826812029486367358445007759954504680207064638799545218218389802640945710799702125147311857400458854185629465064598377037357315901382387961707698045637029931725713512587516304430202337217335331231396807365438778985249004850922676159031674499706886141197911344194846326364939473167734082680524542339358226391511752386270843460590372540626027680190494170061240166506802088703682042339755322258017025376282412248596159308601319491852805978824393641115233617841167512654464964911467382516850039227589751315702433926165810083719167652065935394673219340596899492381704838708909764119497157746280481759344433890865597363887724719547605346446906355396299476186769731730059628294126679854395303031665340782876383752134362719436456064581763863427434437019472556071581154806326726833406849748275048482562674432582524428077026708891000125613937554936556067252947751593641658978077813946405559743702771980127403895261765933232691026011713938326170182964699271542532466405817338158812262568629369700355765487196089075076473403759651024931674927615551991925598843917505453005222940413424473878242023347724764952687735777012631612986451877548863348018309809431427847104105933562132600165560850683867048016511613164617024366308756833121429704683122980776543026354912062974658812914155294035975114295802725916699401825975872769801106698837741844586587749699451907104551307480446065679748748791772992068430511931434148049041069604352425377185876139375723222992127206271796860425209911344533550400250559991781002600856852545200779778756442718004990844372739158572382721581709756441336156766274048999912292189375782384464462086799169975254073535878844625549161721528334238087383492290024573238121630740206674927985914557504556352938055724078302341188356529491461680539270943619904622291812352581648474776464199928111226174032004292565506249071351051995598686448188568368615287610795524132987651655559226233092756288921497719262997591276777986187788708812918298123089314775894378767908570682850888390555990228418158361150061422076301082420074561597613116560048230309960403128652859295689898816437400849498691755272121493722747755713442773082861056188057656871262471342128193015995812649999234242146691289698771038552816227876964313172139939134856217519886491403031628566355662157918610689330788262591603018667668152776130701924166454378216138654264871810040780135014795777186894870872796905573190249267308255291396292182780059038567369646239916053834866150836467036566991189657920067291460060879982014195813946494954562760646156667672184294663615636773453653926950351152194488193949991892064211196718737110084721736113000599142765775100901084030006865775600020738312651952333545680639069489348910393937187897148794178215461831282597142896265536495725528198058685121080631163700468673147633701114850927793325022112858066169574176713247576167002852285559689916274614699677981615022906126046941170948529039325641634709941307957219956923411556669191164385034802562697370203226848352816396644519548077397952618334307173342375992574071853127425412882100227947572990377663769953698026155585939019932050915244191112611975663921330522841560221495885145480595988781485111698571008685823672196059430432744401263192308601574492482917347427072812896786462055550756832966644254112204890089283535765144333543530030355188155052817194507296382382048790396434932249480610601534195483739096628215064274348723649438732124033118799044255477208530129964821142502436444510631361003741918440731557199801574912089475868267559740701348761176441371954483326074851949909431739379464693689359572129946019953905619581054955909626465495054162923456508589162249865596310590347033149368150027199655880362531814066188113798978806609332540985827439862408402952597464756965342892782494725917593854154083386157728950021376664164376227844278082141712191447969765192713623809419471441155401281426196653811043671642710204770964236796258151568240404617755251541050910732917297854332157437269984018114164309885787892965840915804511042284780735268842472797374659008877481604467883149381759009058407303601609190592257632337073212707097071206852552095915195603452944076228390839967770896170643886476468701747331729843664602610969305220237819858700065784020661473803851058419779692806745696222637881063796489792474645983721589294178691709291134849055026230101961801939551368437964019494614508190183152772614889632297773622957435817507919341634193589855924899644155489668440352314919292083042901729267895804960138919903544705603766376084984091027377466402697305299347350928389622422009009541420540804367764721194791748955336516528973862588050810893408913189654538445390495143909902493007390789722404985318973560897960592242165866580277778729618385220493285133543768261898358512886795166686921973313080670512691400796029803876373103750597783903642613405864122908038225107063584421193152132111062405342463143366610615682852015882951065434630136180518491054697337736186882374862981247721860739598489226078705090683358297599389483012270958267591784073806272797833378394914765285995232646300295113851532046626753793882146969919825017107796862989501140693670933033020703486244575736490146463113241664632090568457876057565472893002458339950980112615081806142848343236018788821160959959947457652742237572718417642723803289334006990096735272520240619144787256464321064619004694568235734750255320307886606943949323344021402399015110299876380578226163290826402494262548624453752434365714595110322856118713397223445558447156725562513073084386992419005516236286734192348852786697267383549285086383917568747095485297375510055819720033221913451913471597693797411156491175783883400326140007416755425629457385646217665947799474966013253784523021406142698409352556221926620547490345061299373146388711188388931019760938041104119589447506910263345502449864495035209877848225237034842513232463991778835948497238264471002941144663208843355345571267652845768865220427332574838444930004958252640323264695644972663151963388135882304686091441377303650476243141777627121790824262336446747518612003615169204648318093364145555191367181199250499089069476165646592009028197735072106803159251344635573915800433853215227447397810751403680284840497242464107925682420802299268888011909692715107126224359040880612401473441764017212865400233925386316854467255470428752305719603211949617877560653407929421099889354653955453220615777768198097270653077584359015779595877584685710404969816840498645345765187201362654267393088073665190099535403444076630938945053856350631915238936601227642826577872050212966231588495423230068293294661887208625255418635951024817461420533695931461478424975718389863410495724689668852374892964845540761651775500854664168358825800729187882514438244079090514785589968119197043621759330841205932928297985386795828507955209208827115927855621860117392927301681617590541948900038322404709046031273163582123449435531300644808288451321003496827900370606670046055304107987710445058572749490177551376044265110888792909669266881867959563693552028368802226974863867308435290884560106266559792755193721056714806950133982186625287597409080609972520417955902678446129292367639204272232817143577075914718818929849774283851673600077485714951566309944949361269047889205199657717633428411394104266847616181040263865067075887974974212432138647281581066876268592292250667008662193492844031123369965368192967272923009921702248928226331707417585026549516584162928400935016630426538473950529981405363664593215747738445655231494697999676341020981663014044631470136418819578397269787487678138461007974693159155745862193960095192835556924907843466632977215602870117593763781990909891179673436376640679414236452309244763859256270520508976125826992942773681282339439483978556714231612936185505466011410590907037050174583794403866029598187177075208076217725892308444530357849737704932410778927856093240355770149192070636257749333759384565675496949379948966812227619089376863626751970447481057940489688547248326103529807525822291095623367658315062291628109264035148910527126714711347659969749792276724120184020378357067387295330585470152303479813343732489017581489986066044579874597727724420393654551548842820083681793013974755960237432232467289475522946430553827727818230430388197324455517382147394327735918428286013995396087556276004583607986281910991947146274246688536756668822432873784764495298048402956300389334991138676287509299033801623040817425501913083450759098995799778340833127901478801618453597092514150714743492130587743282232504463552536829619883802624116131167478632407786245467674753617973855416518360989926882551050821094470506438741216860197373989873729740040371421759219099974634571085471580208214420781052733427383789861709438145903591490110244439818832767387418753598513105332201271826777273708134669466208582253676872635528835095623108609733547141824523696291318651371178439166655083010880743985557590893269705415630615156201694789914033547109956711977885139240352256898413117331777548538872658614719011872951208551075968030329345666093533308853777001561516946276641661905868278808902472689379826077838766927692649098568293106327212231876073365015305001967070775462906708387693402263856598902739693172700034292714109537845516066269734480258672142425025910497955680777844174156084937983734098841729005446559448514439081192658721989217357340185055122908669470366812452649796249792212260339524692417719479796849349375600380852203649085700272837203211809158574786955673640895779197793178140342320752560835438721156098516060858226172679710946249225908366621832417804177648181832149988016522766890604497073232565668869099519279327054804311328494857698096716550946054712619220440540239227722744732156761147068500745711296347711283381318252023713330842188315835703891183682754930730727076031633175276191467215404226680554559090408034125325534030846771796267505494834064233637245564387225754609574673508435255048551130765087752979877724933779218671193568120458831166340620339959943566646461658495862313402350281759382006512296246772480957371007775508905153750516278863985321258858238052947085936907016896714513079484770641796430514642140166919464245631945868750647259799503708235880534403060482972278891015404696096393481718538805349343030960313221924062726308697904329384078593150357116211765884986908691357993390394691758453136720013489541922979557554387023341592808693106066618683813289056327344480474775596237066224699582488042589307708912702975379703876692114900734004998960824552380399049629266828925902173438549796578419115418553864020622019386197919101431939446549382625907431458894234702124653806436830513251923424426104741172024461454454321210586123852749414736237581682144245995589587318430713633430324803685495439111923728441108882121119522802931703883290600316652102754866603532829179629869306116708328249726484034116186946463687263629865654896564856086424486314235033544080856082718873760558455036304269250684298289689708782381965062066232073860532539485464703188074651107632150111439294311201523175441989375798751966228090462511043972638943385502981823932670680910054275465746535282728316260437208923443037097578532370346036374208984475008825106004229080886200001407296466104923431529259121623567395630793908889044928979362101686568250125871056634140446542875259062735930117144994820509756300655564013521482995810022758173555737719145028802683877332330815779758740680242881725157772583147490479245862837035299335213189834165518093625020215855298419024950709003786695365969792392242481722821775359230320492933572513998515567839851939369372927043467207055848276490284711894808691432679257782236955216889768738953059637722326330926957434825366216683057803961947373086320751135178951061161349889917512152662735557267718372317652231546077343732959531125182110290227593445550556054398349582618509311246231670542202143290491584061234324742716102193994205003258747900946136027803342555089115653838685652770945088638699685303147463205370007826689242663032711921316030739005803490072856722033186850907228952672306077921046204354588789764801166583688168476175271137827337724516799756713971474824873968398144029297214107525202512933000598072393612944225628044813347231748549767450125285603462233681712948638420604476178855822259165689097921717269920400798133460672829178129485309284305325056966301613282718183847009505268445876805544230974120570449813879223774254692234038563176335396025352774698010320287073397790686609107337991925553338593610770911053877530954323337218409307297886469520300833882853620767285680062297107816564726735162187839847446075325665316341748165949975324626910780607405318601467871372457219692709148142694073592601308262180405089260657617500032167779394989708561568843877768738703464988419327093498712238366968833422841182318029340093187642491371690577454571499561962052921224951014595809011333249934925797699103091906274213194019751595958545868666563183156189198468839885955765894928512585804465458436396853929660814964229827869334346429877750117247776655507335839154747294954370161244203605980106167545190094691228962348021995774038239363073795687456790565733370930353191486963168398255674104047707059392109737429460813802595262622326789336281687697097896671291771414930162186356482271418717535896250513819441279058274547383649859397384813630678602274405240820202195313999545890541870611625387430389488160127578591699105677896233885558936055389547337164372893027549905990441697421462015356017197922717214135648209095910884608828622565061625984106254854921651014806109762574283783190270352677757549230777920893675713204395246440612563968154243190181526137582456009771886294954484656232252237136704568919862185850351817276414792172376373569007569613668775267090661693945995251820816621174523326768861664053519987408675413347924953749055209812695125538232910921413088850947009414894261671100815515760748757195765308549628231520565361754245227865647784244045031400606267217132815119373875898223396796956555717196725021583792212737958306963327293615468109113069014267746205661834410122507023065144713772276104712430268651518611146658985970057703683716963230853454548128742022756487867878078818101418090341703771112841659408757903670352663708316915952740124565256160394386402411040933662468763719001326096124971104648547239234447279767155487925838723029584574196945413427156691944692174015142338343940863992906438001176728692783457683699115466615308855774341354817171925313011037060908775095959368590985741163656320371608875877351762121999285093197813273069625251487407155183557082365362081888999675046243844293900814382501213868207317517091194522319955266735040108023183664297360215704391998953507060851017829273964031098392249025005911816707646308380063392339024931125774086071426786230716878357298754265048178280686587370339086148061793247150980385540669771347626076067791418055151225192611303490940161502860543964643191381331917706824680419359292038763176379253728173309972281575923454155898817528735481287938247652445854453663421051075790819037063349351352903274259124995442190232929138705990700820249353127131184660565750982542278414892002462667233949535695843385945847130481023087284619554109567953109797858028254197743269257581009659197556197618259125387465121256032197570815047570250403111353102984277730393288043178941238621506100568928663273110995837352407959524899997366922297510035119595583430063502768511711260709653799948262170340330595496690709332809840649592237321638966851680847748659429747990185119794038419157387299052681773214495751995158559212368851744331501406607588666546831136714749090333743459596250401632698062987490301929742148846994590272643594966063575753468758201013243600156636063009535935252930158684565905645989230786892915425804234505705734573445231776412991785132064865247908666322044147830491988186519191440245190023482878810405787905290591748542319969245830977497212248124839284963363961562879064441180847796541519396822089348988959911400512359871374047617791132431814342479985914025779492437525730344401824738974899147512598676979834058599108448663777546651307747749433143901094417395016457951595951061965337699734606382345550800574082531061466511734990382596909573861522143517564023405932084382213855289223275525848714531877281173301731726788930839802165176651181154638851754087749817279190870406433837858954832011817260424447204903075958284429123947940896194164797500016426214855406224097203564256072544424474035511579859332225110016050922240987736679609048270463295360159360442607459922569203814948655292064195815424303455189687978584591903936157260077910770158114413530504742682415784096806320474324412528368921283721466892901233032334583280704878454672028060782945895083548505243301248289908462793966066589557268839706791082475032018707584334559661915072107678595235591754004691075308924090742967505731517534474272329443095349891151201962071251480642580308194687663328992989298675411465859516178707406144043245873705103817634919829833957935689251902539054072988601723529132687570462798275990154420042263842648944674105509549095158643877519035549465711126591571229549287793992432125186716144182882314760410849147200051842189637707060449953036329503270247191337931151035100963789294581610395973942630736448779597095970370549659954776678675567220753682460315474611747120671213351733073219952486359777806299331016737950181085863719416348046052269229179580851107246833671243717639250702912639792198251984736745054712877919254082839713997716509111714544173076761383052012000630287355936980386364278959304987261669513542189634735555123206382679742092464251913874234488729475149937819641127090932125008746887009186958265526096563891024791920763438695039176020006106822098580567293428761875261810671940041263085414871713822966371154049321991139985507178675018962635040309338453341128416582769648972287698016962502639691333303275941137838892785756099524832313451289712543058372565939781028516100455618164379449553262506525501590639914493857221221780936484786643382897942733731617434907389135813202695283022213909277968041475284367414079711659530126204405969279015287389410820379102611103156357829813237721628843392873587883634886089061104819077379677460374562068543983569633924389643461760567941258342114008017491635011459434569965766845797446359029831834522954214901597367138670128108164547637327727048669141747012357948451511708885540217916580707520465658584203474955257461706855007374084936230771312465591794095721357721650732934215138567001143586360247046418712025249730698619955174806928178484830201402952169139323318868683071418397805586706517449148871907175480424006286746352921940217044482263081645883542082136322043075692402739032170813349650799339605841661277359761282026719631172575771968742760161413480417995243723324522478360063273323684323804610194652220963273040584321676973657950517183224368011847019976653109515101056328714174903864603004869277266219821489800740395981578253742434355314030905834846521334001146993857381362016445218832660600203229825464054576349732257249614134952326631473745838450766122042112510722282845479722221321048846302181351203232599551104755068303317674554710247138052742131107975863814204936359375778843763554631108692582362266042882597635322881656530233253081266958223861678007965648391298505024547877949763723817877842888753256602675916505284220449544773576732893363366026982897008228587499118010525195066919324654307579398271379208589736938627427034972175856833935099820821244680625519433085093577357234918012085030901723325467830687134171208173559056313705706448112172242163330709632182934914080919798934011533828214307294998342915159725259616206680425659046765154708866825363800089923616284363007195851221299768709862764753341227585524877681844135917942450192197289819141784134432818033815029275911011745469598614409128957316448389780665731668359761117871873996872234869042659636437651726303234802962307747543319643526611029559843695635807455600644782894891478475908504538816546893389602658226945194940887686235718599091479477997768680585351416290273771869912985863681576903713522374592108146402546218866886512449807199400136599922754147696357383913505951727621549737042882010390911420546466864198206285897039322328559762357998480464649558698480205814021221686306996978226975379690446570505239344666428540987031948184588076718902653243061007267828241895458337281256421816274271004981077590902353274163645868362050718422600854013647135233072819166281973007107535650432340039345053331732815779961549789579304590373649787183111185332745479468651740806801403627180086731522506474229673923858590744637724094628520189184958002691998484256297354561660981241226809508312172573042078748251780752791437423129730114832468139063422785947935420432017220087105569529766791632628915770497701379510274057011900640230800860756716853251550128514184230870795893989664019720748257862909384710240402334795078009373709965186737578300254870876934816773889295200237354146436714924152914698388999380179053451718183015282077078200076707551397991845847908869989228770663938429189673206545743201557994371786341548657195837940518293068847788049972924677651174107008961713659405841734666316493064955455653518089306573428124981759775607008700179308410620535951842170111300624111822447415750926943422131631806227034561057732873175273495433172308774515758745159086822837823428720240529263310930519524472719035138044424122475225431944590965674278540917946061685709776993253317877512667307094752581772702381813711388469189184706603953111430181770078120866832887978531711016562066743317722917165878600987848309475459214324921111340221550114556688353879061345155576078669130827989828412440855105274865218941283131632711403760262651258484838840831593459422304771075524100076476421981151729945719478163227756394177075812602631150068213735674540862348715672663316151769267440976298253635279280573745129104049434655464630654706182202021719405450392057383488823631804396700676379485305171612652557080141434633021350796955166904542208772578710810751998191163924477015258557043304121701122886069327204009217910770990854956426963179860575835670093294188357761342831478603400825737196973774629621355228836952607770491258010033243763280939961760365973412889349830219190564370635387597441808728955571285451702320297954293275933769114920972623561414371429067738886820667117965759193405134490913463168551681347048757046366560613350761439670035813475902185634048760200171271543888451468701307554612833909896181308756919769306463784441091160627942049471500444476925161202263785913091661768173125702556261312600255077103523539323011770714329764080269370342224659171406569330107243133903212434346635601005995938458196954915525670715217665409264743070667152107700416697026089489941692665615862723376794925738499172229103821452621312292087325106460753709618358860043654292636415931376807993167851391104609629740314271548086364054324975216715642933298331878909184748364205856652917027836210374711918044475159743203148616011160171754999261901535187040451824629562872557810268555290706072532963586630282609482529359562548401044060645484047727007223128792692236689991213551301609414933621867417836107298631339294171621970454981183145806133387672662256187577615677994511219850001969747294723621561077975258648732145680672617167146195848586643314080702921193230233222176379171333195237933451484201267009984862820122286030969312644629709244667631061833885367822353819018361199271104525146083691027323167045396906838917241923974535978154518597351002582500782170606505849608494600359550230865148192362530085348931834594284200223262363066121658934647114373069239361815700826532546309864536987093269524458520732584895475154326550634205626577460581159134349682369588695417019243916130295362695736874310672906782042436411858245441728215088165534056504504430328181837834941168586877097901377579214244216710777411226421419497044605573471870450627272641633164762032123462288685398984988087873959203806641417649635064555820144815595411831460921881669397542815509904784113391894487475845646107238775161868059864125270982798874604800444483019492341689841930845204617504495235302338325721110207874030087266514923653065502937128954380442600859537961107343546782299060093854726108690580614625202875935105053718101971608273914727768196177048122148668189809494038489649848768228458351089964038147536259093088435919544756898229591107668282526933504194808377769666258778707111048435588755420934277939154210177111473046857472010992466276209728510868387507632289452314343938791365029396926268735270488397652606833921721566831067681490228757567450257753144025173819638825760128784877956283462194488353068637176062128395555319715575210560517921853868997392314102805509396838334864255667125604759604229373649290926690878849621525569657214778493162193038148006406587175353359249481654007561836848545717536541972657907884566031026920354886726549296371444514264239146303085512241510640582008130327789014364042284397909546092006597585486152457114238584913031321416410782783566278965376397217954210532554548508298331555663574507563821546683841671476807425390082453654964223755016594158788392935830369209991278446566507463926507275523015538563200151629949075758959741697910119011960586029085703849152606185547433622044750243167402698413703234187382780689468847960692925330639423102411143147155971429441845134898863202237716414175555260350787014043227839616927689399903770264925008724903175907475157154460177147554832748433552593400156973910874786334470086865057827074533212760756882813332702945651782002760838986215540294099638600555965886557157169095900657023663722086559441708215783596697668620069024282368086556497372685085967198491349867421019366699757506952928538380771304301711094636970540147101070405901590294789475049184365667754682565647923597744603455501887881550433951138651478707540614233627490410472339763476555976839865996537913744953572243107221718633583104367593826037704693401740550565494484342781580645383115269962478198272345416488460226471632759200360860104551622377574543697054523086521388963117837852842412259886854376913927350919677517520865017591474368309770424897034064564945805176647567495285770630756576987227902260039747380613445200585897041199203569159398012721195496198555637178496106316434604220145550214835580503399821878821175110640504690054905995925974072587079489538954104468799649262619551053079284203131073400776071864617976691532942057304178510124998559764594600322567409474950446371249942142270857225602035175169877285852131978164006927154504538320857718457846584946487081573136416033294004423483056274960434342914042354157665742432728806267099776631309914778725543203978158560259180520133329549051105710905072879450513239759697210525795042049763883864697438881235672510310364997373971452461511595729410867095759675815679889594529130717543698484875333185871836820291932137412838648823091323586067027851442176348952824706293842451323996752267437961455729718490457706241479180727703275601225298917392994899095164839586447603653154955873861462816960056079351485128165615510315391931361127060675171591311714620083152839081637707869805644173833383496528351917843552987903531620091958676780175056941145508578637362818810385206440655492986129493149328688801566494565036227994613594932395067882921952682068532764766818734765525993054911051580436285094919509365001277610724771762440107884773022096873479129946955759790049502497237059021547621988230474430869635798785354219584697222277905723126605014163797550425787455864748692214719571557790004965235359441607863613167359159875715620018311061034747586444304847753440711908205669719453791586880236205632723982413157716960491409992848315196751294484049750122545077848803850562201134741433373789827955848758748931728773789165089714116541458289212037335288677443747505532537381827605540417837248830729209585765491492580300501569429202028974015298662328294462593357639048729436063101775796055800720824212604349432540639997702101297889995813495531616261044499485817174165395565269709761505496891061966747000608820537530363113090287772147097350682121768613743682329770639996764721901888218093207131767900839155676668843698655394042463021267951369920323700875803482860357373126811218501475553364929804007462089638502346060785532903921422894509004257983451131218771487372663651764685574811422508911379023903029978358551923259991784267340604572915226156600819054962295355672623842342374287610455307761043807880848114599948931666873640523159518593936590708774026883024261969802439368059533055614054092409655581645551855791949552668235980842661237278727633336924867376975637653247218941796559626232568953804921845282908756396462857668118193318066500374033615352116733343787419761824621604862177827302357395866691281793029099311449657591490961899122405849267048670251995730116864572959404548063784489221301673334115761853545773194481816869587296124652872502976553297209556799048697540888680709415496969181017940318136529803028280404119617490414066492989302198057658123061838048010796686467256480113780749198225252740653135660324654820137770520930133567297483827105863905679029453378254903043630429974744589480926562406057580101206141324028201934371726425360382235019443006985408311853660510087655858088889121812980638187172559680306223682691851177438495496653216315982355157845333466542744269505706492282245614093121002816750645805918391272556707336532833887072063640050750022153406473042642401340949415682804694307120652335698685029572263502663987316912848996194806655806494780720195178364412787761391942137555195342534216297839223480603125156524234557985505637815623821060146258405993655230238311453324498307152114825194876781484157482916839107829405177457026938327124510456198765285000712150659282315719786691427580877538490697542040425085809758892988756875194231628786319163628028704867306595672468836946539982319024777078633147686876145022278273122552741283746512476999539600794449380788395751270348594965921699644504992270835319479917835374028804586207072861737144540379147337697453632990475211247656056679900938100077839220976376594917354739772917920339677272447405394186746977616487897002703249645674711205639499136914711927110423007041315433965001168825585171277944348687422891361378688280447172034403562988989514306236644210867344841351167448789082883115440186588997739707842271872080590008637729443708626292107825691883897927606551104814055450282884413216055618284079536115548148029751158593406757628345533070956037392875612682116126585651738301789781914236676715451356948105287980083234324313449480489970226170366052893909210045961096984188075176968333520290298118549317415374044518558707972764119676313291881868971212041174605106964031002712336100292154494607889794452530466170455384277519963130909855109311793949739072337333235596581885868144033538008781902200957272750290917672524663075028847522904425325093847106518138297923020901550637725716489044926250528875425743036431130692571395591822595780256976959993124790055378188907808277285555500600747523220585090558392535244597492728150379398048875978596146011954625076709423466641624254075220579205085668559511033267321015716140161873317697752194272571247598894726842355883393655323627118423449815576872552700946858185898481071938039802824481804110737952263791699726865769224536668646462147123002862767881519735857219790397730056553777337860778942448254282463879595170866142896486765128166308208193034987274737780704350112189153461263889508381452189246495929847330322102459037524851188553774786182939930804111838377861117268147445197162131009446344526224881845911010110756291421714059633309801868545690393890488283925887248394638128179311398847826256286878821121276689769507235465378440128196808545686311439189879065951903518957372094521552746814293440146534280252453189959587006388927259883291604475232366974529584751145323843566066471410547542801383766413373749960602252078471513994918406798971168246509990831165849067169484287719207902780089461623884312742502897657755080667975561472794421765917716024047357378160431730227253595138815349367972850151456817601455965831686389902640081105095820424118407801398336737131448405116063683918636056981157615731640315029042173241981205548070100727919022863488647125155928500672832111176749489294332408288441108172269442414937726437441136193664057407491833195001569990660754367373437475994522426056313160329542576323104971611200641242384802759733862290089526241671547824874185445071859663690765786511230555164979338253313047209151715733605244674112360016359442730797302132946327887720884409797549928242192268396060360266944776882253229791342663549604340473501980083484039319510239526693559626891705158103884952841529492724406834072652606057062975300642537388981239280346223764954280865540882287951657658618711367238029428123563883033724756798513492003899096894117488185178067467269572763305869223733845779709131130630707181053177148318234930545068363072892477375805069136690850054147408431860753468887418921835935821450331075387597125300009190983011924217277612897172604797356184908016717776755466162470378675821518601036924336226727438387651000446195492666811691725932350824604966506772926351855452830889008942407044514067807401757062489031694295496420440603567389022263016403482889763526712162457263055932481775851388840366186871517820411206717747992278426387085751399256549519801634673673602704696545896421575681272320662581301888308171423765687788305790183890518948535446011404563396653258847039754025302014505769979659068663114877903472860571069778188151410301243304593781443825552951907734851874459192777759028339691580943679854024822415797317005773370025646666396424762865287014907435922034986670883750262822786527644002653030942986247683834941294798516604491476602776342042206169536534672795482030591556728410086859353672867279620149884477050473213442335060796706297214035039001852594901962842202844850115819308034304043595270044525124622103729566162933393400528409965654771655297697000184987516426478114856254844850567007462005924635193076280981608742589368358551910185942029442254984764297451259170495907655936732325466370588820215037135474472193009111430722688912284554458950185812056968186254041032468713520256234430460370200345017583659606521683027887342809299441408687859462742283744087506209243645897280589584501009426749001519810908919098653813616358903940419675658489172311363679520735693352085010727543757980200275236968372547973612383064105271882931168076745346634800714415516965905725294573502159547452691620810591754363138725511794016425243640502165454896191775872545183748961267364897154617053027335285128538988539353807102965603968607745126026739016020251840190362451103669350027553937879289981879641849718120515750270931913151999634403692402203271207118133496286199864944817756572227476079233767081565284232337701346000939406271922985805933090165416058423071608354525173285307076187495079209759104111712423920429867434346019689941030122116003260809727021492357820819824582939233216951735811538094241532827966510345015455374974104100485673778654178465482761000489793586279529756143950145909783008933822598572307826603995709052950674512928785543028391283040438826680829649522624473161762203004351697913030723862849324797840855933723645948965874949060912604933808981502152775515904517421163860248993016373389616281829621821523361240172607058155700518709716873245992544531581312400890521165323845878412771991598831474669943082959507460755218913647669881320984005996764925014830300438980713862441637230374207758774247167095635153039360266049594600984834712459210141586393809145778132364346977414659060538255344950837713349992349269695937351028232828295891648559132107971935800487093108258387190075974242418683419181278522445703430959394042729732066625757169193863434736338162312581960072138147054086417904878937710704999129112115296630350366609205388861443360040631572900614310825140647373160068501232112961589362935243745481004938395186871858015783876467600612109700613053899703706073912598818084720023686999858433251080273032518188220786632645033664846827411926175933191829133411406061516995057936298528967362091325669947275684618938526727825000049312096185790983142534183835178693956960782312533765071969219204810470344101703841925620268799706620706405126067908271135289682368965499423173795100026429196684517483622991032632300974045201390361693904199195906153756644134358777968195228827617138983178746701251896438209771567890258589277628534661025278015448663296905741934044979742535944763448988828307999505658444870976622064400850032981928755728450558123847703972867004074932317199993437003599232143639151756363535044298868160223311489064105547427409340416777343905197716069432483599439524959497341937019245962006301764902694447188773229651233144610700274263032393721915966359697464364547292459692872776548258651562876719066082917440993699912951415289898237733892234893165333929278995326399913073298146223215893372670689338853591902297186152982796149183434609675030348614622923434003404863714834192031792285033948185556778220630428110406118414634501320196083211860249285887454662757284760015126265650222182949808264466248401024010837846146950625499496662870679324679535789457737675176162903565744438446133991221555790029064390555514170219187075027441871289159679843783025334781725273878575348624073383197329181670858334471687137138872352721761558485127532573515254478392107205435354034344257039842108275546124928790085080353736693834281413483574013862931693472291812389213509177902375919782024577075970166782442977845737070449996631656343304800518589227490234559781409828260132183663587646165702397622914321220600688460274293471175612109482663496055942815200712769434310210898633904085007392357590861389429432841604510926366388416259243839769126570960678032325845609284954936306309553634645715870244742720632293262870599051672632329947306612207457485896858349764911920949805433668229918959985142585945330524548003427774544891665239818252663984201399072378883334527807245879547653725429612240789700799352080474411484057269899263797472390243423165024977131126163087070816277173313484188158821330613270343334505771226332565538070492650246880168774275894001995850762669567068984349023697636636827080957606239855358308086157953177162637468266824465592642291059549860122119913832524122980247185523300196865307182015154440838442554375725617188503108122166867594558687941523552461403903716562137993676387615178743368052475660085922101055511922019981624855117727270250530039466173005555447746224925467562237251011458141174133520341705255785293902714263627202144962110853962808438818516406590694616692715718850909786151610337910655191493802640833376629705228739297690116349520607844157743784304622378903899619591880983230347692615177220920186873658763583264256021179552293112753425215113580081316835026180146664694536252129709569000119752236527840744098002082110131959425224057972722026117234449787646845865779868001947560713074984957763121594874746143470887361892299148151610869279634565006064262061369439197362695511215911033439583492054635713265238170924196390612464764548351840703133104773681800330580016368061505869059536062952596310525760068135674971248649290521698277529036008956135036282322388902562100387147851783090378508708627674232337767967991234614627456677950956851063066935742644747015468827885209901236227955978298345807351041675673617167579388561746987550298051046255209495634258692243243059996918000297441992112983231671973415662810651776595734085681000801653971297713189258803640374185944676394364579024226825407359752635840757977342416872814158005357616290249150891181586511866799499757844425542491240864487140540630739254477733979083930349244192827533684014797950154202444492674224092356510796271266098385908956518316492182041946609912450815505435204271924672816176571970377615693112780822572746982717789179381996563565235217240468222843911875012691369141144174107630369584133786363340767963737199644391585951077287439802669688985502645049684135302945306266857297881030539021017509158693595781092337024272897587937455989720657053215702156464160713450028235110453038149490710549363290458762300542655777629902916156659821779157682962272471567144443437736761378472010099372125651937906283314411291998165188288545472086679171105091666636596356348849974971093312650698867622654318453119678529488884874033287938300427106141452670194260027571033959333932800452942530311789859674403847813551539149804783428771561974243521707105455213987685836745830282100820347660659804598229459506471386587483113017493444991552355891031573053667873412573646662548694844663060719526223451200305883758974857127456423079474354374542546554351320431803600017758812962039272163536861590204345322592644303331135611610542514636620954793054485533420669311776239549454811883384975206706662230735688263767859491599168866395535992231644195391878162394576799394177974032344720545353617142528253425117534714160914522091268722748765194875602269697702911586581971676349400057261940842914781403415653092369740887594651969235995789495354899122216043358336123486269976061296442845246157192176223934827978958898783259025512977735712265210107062462552701240406194298014534596140073785701365146539957585917122287016378702880254096100621979465510858584209904853363985183930342017341422501285637300609928425439636610924318357802397717064269278724579713226173988666296803400590353583966207560681517788078621662418528440417966438051169847786467418484669806652821455539808905366327312540550221151180132187581744412598022312013542354703443559754938761154727644720831968074934553102054890848626306895976731944064216536944640764030432894123997420692444733582632014649640920575967985137924215928821089092849420837043330920490491002045368976460341611000232565799449918108643025678992573672114831256245520891263873332515298682415063758081521367126225087269815933951614888852503421818351284239886778384149880354923604770147264516895996362304975767973801037604453312025687505051523132991252287711665687169099433272373069557006827616561104574505963088607467959059832625229187627054517025786004869733023543820576381769011680363189596099742164391552605206871747532633617236743423418345472546539099115624456608569024272863274123053860799312580356720558855828923578667059245778329161966578461254199859802479398647374252956606585914735062056644426397100700080401628340121613873740324999178047602564641489598177211810232324230292817774945842101588315432077665857723059216338894937471930493830329212441057966091097482732480002647205685200865494537070841762101946661229399922283863043164889296769635991057378572680424295393606839605158994673385243138172527218417775198667790540001123084969055974244584025840639463216986089372558304939934851079422471786069138479671133348669516405418809168235351905408664740532765686964452014913223268973759842820118287258945254957483642034235931356286906471071002875762520604927202547505841192253679864548334281362853260007002547857755565972567995667173380483300525555430271343893942251968216159677091128039209940965321599396116016344956939156999142743876136029899884753850795621164730752282451147296111281924059316694641561511313773093440929497815990549839811570094006481155690061949727512044127559131745499136893343540634083605500541384518622948041722106807506244012587115534880699924966370168844456463472387825417100404574613437022620317804502325015129732980184433133061189381305872452969810253330563930586132006654842766342266171807204835762515072858344009889874251650560378564277432344315000164983840696929277901985456750401718368700033975912469801027844368079136018332940176866826383206245369077163054114600168566347223863545131351806415439210283398608403971462776342833752900611230825974235792663136839289725466675528666513809672108495800143456189567753781237369346135327705247507963353857235849495154672301764255791228770317281700751399803400772676966910662902955688867808023244822258675562816824455147473932249246109704520781352238797315235649517373033203977073891643301623555805831766124364579733423547512480042914299858294431138110255039406288892323825076484973998778973588103228878279354599647760270927229084493673891209928769023697888223697596416121705406640735320651498989999271816873355297912728156140975420807149184723203837258109851262583637986971950591668623828687265596698286688077138771043053126225715618130771200755136173171261357073190965151419934419414587976272879975850162282858508341698171227302479364288866492861860661836820377718733138544688356313784640269040678381454259114968766501646583944756988704321560906499468527216567300423810856538744052377393964262508024617758013187615360579000823036975061925624489957485047716942102512283997694299695258621331035690189315898149235263944383807723365658572673292470768515735072967947580298909714710003056364988305466688661777667009166542524691343920122323019935184566619004020537644462271473298135168899087865752402778777773937051236144212940094745137472845889241635602841671406129073505741690453843616018435035166777649368983738281204853468731530013176253151812509854832183692365322207064776834475958584928598968409714136970630945865407686789554486281833531072425537645485860239495759876456458159815305775627352560642602092970349380479446679284936371557817124992424637625617413903191172252200105965158023673167231316014864549633811714729843370507130940892217169712159048952636971194835820164531231254042427997522416914432553485239725872391534833122345049423797857623422512214054060467169406327575034577878716658571554359769741285008962843455945259344550539253439873103971586102354305339208822205321459733790159314067710411701217671719866353773308755686141288938860809899920831177959437972724617142196679620497144271084122080520507912753031087634094476140999770277476090717348249027515695759032464504674694226992267463231299300266047916708948055942415630908121705763749945600446363256503522173217441075141355788725646091321620957639357824598973666219492997722999310288012430877059457921055494584200492388685239002464786403958270792243223376378055766387473788878249267558200619290513195281003890506140038415290106588368704555044127234499242386349576920434266104483394221180353703463753592499260871325051295437270736495037541292038918724875475143304374767528780605962727360129087350862092930667505905152686855428718448533684671218059951101073020765521356031057336124257308022953804659155747855290643568914731768287783925532856059800061950484133785252070450573683775601833849544623135872841165563908387304641325801248329402983822065706981383513106219098391229902501729465184372675445835054858835649845032971424033657475584851405392481267293836051106963534037342400399776201664898401370356212096056312057621683180350943936798328595377707673833485035270429795088833287792812874445248200639241040405467628631164010940090283358771506839723841689455594807894921918024441144608223514979675917891561876466048741955398622227045787491459319338332069171845755405738215083483881648442169305597170247265261547633105233886349869483394089504264373483981728857258525534223484968451215065876088205351251722938345285573575308533438517530679286738781057219178732473301213871607526142673127127599968879394013543976895544831849214440097524178348309821924016594535541431143345582036969259821134572766290913496034675677621436944812567723469101295259295300835168711254506311436549488496188644348308127057743916041379395790223191472464201101368101588883979563238921451388855540863639298920225940929926197361760645158013090224934054315850000614592225445914921091186733741955332577482378733128309946462446516120607555330482924575009303438749631912133768174736367419287332058905516877658810271674688101746080460114858055976052483524172345022550309134989058691697473576356052294305031685258445788616058754498728168760716850886845573194288891742019954485978445958761782877172731259120293028040958716230624160803838720059892999902531904819753713867841578868093798347374581024233468873626043699090407039251321117426727101841775793437186278863401244859315016983503910649210527369834176216799862190876698058839711955509541043764748107754032275416113593729908167265828541916558169980992975815811094970466160729452860076113516877854265585819324836520883721233745597794831873869232311549493774569956834493803785837660747216395692418072220437058652429243164986273042745390562317625655915726393421498636198644592189712196648460097749219162779465662409426394937659840617719999880631617995935390837298997354658589795055841436166632719802387997627227485306688013068437769056953822494244522016791853476368390220531358133399729614766494297974991068962973707162176724778216664980615955252607146266516890681244047666672089031457372482005389127600593674959163451735682786998500189340295745789405462268154683298338587078071945569713066504252426382364106808174226034254816491238431519615765288702807955312359044671524021322172022727962520872795316109786397461168716042361676301123635848813785449725853242870594843389150761173155030025110768683652981321906551778091402976091194374344044010320212392855700520867576020034157588006979444578443425298476534211041454225266865952510251058130619034533894318821391744629877278745358231073312093646689847800751652447072684116337147806744455297350774733317464769790769506362662170446574509679013721779667435146710506974573230909321128056200621309557628611559469880643630800798047734938841155458057075705254939962470135377876755426726463736122130130265998962124658867067308190505144466628163396614999965915494443720935178139211067583798128259751164743892049980503543855622756001373933837766583500721688559383085658056464740907873685556092655317121882170008719075056734776039289531945242691646766151890612781186749670556842130858033982221137160537003812820810908518397610448430403660300076255486064415306610087557394768276458803300824591607949216727698372995800292004762851019203576697865524657810493003787344921424017848421052557696247688963214658680180054680673652986731673466022744091808508297271534758327585460654490818290744237091677903749728974502802664390937087090153582358216238136560232261326138216752417925539725481385385780329345765196955032082302752148674434669882846791235067147962691674723899920359049665825167605750941476319068917943091657060149427750060187078733926456113323946132717357860488138964102757086624147036224347734205774691349241019062362413614251420707812708771824659253605077608377202235293293983347455480270134519769743211411724048050358755131414659073808111258596738216205008100022437688192297573041027548112774167859947565327256417280648751707214706527767777073519817467405936181704549631793692591135516398302449332663379349062832822386575669818489673638709490345962020820291462642329093446504952719462458365698443342700579736519932399253171602334168058843454224117478124436889762458759615041048058441916148119458598515771977936259039375891278441126023094944744826531457255527589570946771177711484344088546244944852001657774893448080540102822510032254437174863964131345450464118422056577064887296709083320992182510037999126034599103868601091093895843902007653580052271296590069555114346806875849835562927979824357877673349111086234365576827094240923886755543602358837460742187302617174262909076280768788700445092940781726093528914011710258010334127992817850062822507330864474600674226844632347870063485417959237406346554972633969281190857741232777072702106014587708882187634103380150664487977019401799438921520403206002162384323772356953048899045901566358466043440701296870691027214019879795651394511299877234964418270356808892885209768317292029457444368490035974057622698442980705200541870917892342592904000527631828334760022889008823799575035747606410022630351695028564078810659121205913986639483009249288504568494615673438128116842354896158754130695574937581889604957634781491713892637220327188044280313312224631676193560127162886968410277491966434578081008747092081875489843999665124908700745348857285498976779679990089657610884753686926579824977637236259377798208278154652397646163247389867158823255962470144482036091561819679966627755825962380526134731040321903964804277870225172865146751554923386682357349966791741467147280064144330828748171371639418042155138789809676484629920727965207068286975583950726460963648822003428211613722115700741420140505033648480143403521765848968332875181371218379086105711021768901918639997009456232266316674290961588101792901094205862021647721318668636178678503347997351974330336062129228284512523512018990906808107176792498065028650696850885715318954454342848145629851984796600191554151849568570248755055609708515179298591816951672019485898354308435995344936272819092466914285791917968439713940231597650658050999339137067429334496861018254688567555461584958631739745770511967789392070336351035646623525960147923302139585503740075213082382587961155555957907980713349626590757412644383032153921074932520468719662887675877920358615756401003014400801018155924392803409165960669543564324371602307646922493741929388424992201083606912567322758274431977966329960809470632268289575487287028445005642654373230123088839423270399803177496391215434155486250874080424445622773476823700700015857388484359949713091433909567321551938163828561129921977705673081590323806822995031662837785357672664092024732910423843560595172660855910271238747973325869973677255723293414018198761102359332278537703958357098798194297366439278456316656158171142609365826107905613174728446962965541329201748956762900092346922254630917665197243765268933384521975733803585436793121796900849566863991808181448978505239745555660939361618116310730102604886011166341469167776166111677468250665112959382899837840011827056528529179572676332588499247170649206879309276428753658350757987082984364678902013954234097652700762337461628206925076414421531644986632703043170922818138288373624002175256200780615147006691898965892022910672425466324642914199969121489101238238403052128326649682603313160061724606376232249074250380168109831712202572204379036133271340492241174541207902602889939130031317233699831334691980804044212808362766330215053637093590469512929029704506987733230568899863947081288310310548031073054358914316933638351513347870974237237536028407079347387101287481442062611909817219161653723832875227848795021195005730372058580325147082440364610574930763919851162913509285757305141627791526527551010210435429846168150040211144708080300861868961063449043896267960677018342131430561118495243510343689493863190789106826106423735231049824475830419760582719510127051049362993609424939980096137926558087417916605961898017951568613871638778169378481980797403935861901594293479668847986441196402271826697739215931118811868776432875171604512585406966664199742709819230965391802577756056131134557924021514460348139590895810434574381075809550225699593865575299114857263182598644885924080196219915490172869121141545062818737970345097223041787325359900015213106969697198598031330735323416608514885766234538968630018076569534892109829044277013972297532027706992598492862945497194446047314828997704983395239893946340235764686064225929191547043340558630638571806785510929311119248292750028970715553710411774543097366083921337489107968478556898704355325463356736123354449138670842627049846637370365805010817663725269059123714516874004831141081065619622756087691394951054013393831518924180909890279650968234605009561622279832911383460633442563605715287149490503333165798893290747412331718215299407884849543357904737319706511368770222934731000510105897599311601652417297844007058404832125500982189913485536026970647369994710044933131637991754153745639825421001690841518961220099067880041616869446046142460141935660983141456643685227520175166366733254506515064720578314749865855399066774814584231714277406352177777120163487164320658813219151387357060131810429365236227548854771421426565315610646139730972569195649866464676846760003938623747324739021278281958666679795688778171611367514790642949303402799945274641662400252886096751089453380627432162634751858342760729277486415735663754176412191163437849712179782319720259442120455099440327424189043947222257527040469530897018260137034198095296625647338734492449420181193676185879024979794977485650357773114407104983721829343783812074499695194321871960960686831417511112193038905752590308727048237909931151956776202779177953626926035102632332292941420356624391854819919099779086837908135829958051492488813157402108032731932507888191391522107458295370353768632268359982293550664120419043090382654932303524888500367623313998737929906965588341762198871290737762224041485372771558142003686231017578178544246804025169985820164857795557786160903016125765434691626857012860895431606318882856902575273784770794151467772706973104462325806707170328707669506331331240600828503066101193864455552675176435790085648979688348068092781366006804629311861126484518936753770619657142908804084590324748099360630814494977887913503418019242806248454428779521982707717289724310690817232751904835897954268421939717709888678159992310789910157774714744853350663120365938079240054443335166406176260136896256316794277833294115979543755928686377791819720715639052645445889277251181068516594646439066087783282383856394599276162583240237362462155319879686891326032941295096962403485659449212113029758158973493017078538812051185750381421715391221557249538228635047747446796064729870363323481137420458243427186470024181725100024999147102921242464409119559705982905860301120289052884973287721255917375800867188098630744159925462394783448758819155889654950299566277343810636340607660485662719316382352252306317522745685959394172122743264671545521131116417632405050348752911938377901677597550245391003498373743937774414118648683332015933037741729331205827685041744688306504433750746988035012180435202532899180295887856942387391755283131493283629576527519205048433105602384456962404644578499040299311373259566182379315363886598721637397213714696767596187692420817114606672632268431373952962405810709551413473219886905929596687338636025685692243465878908517319419542694396143730182485649234554989674365321885304324132953866938500240345329006263574868760325330675627271227365455856485800154268069814784339874093689681961156965693276884258272511096075993276686282574967269838303428314701538749157888140047758402326608325183445599490383734462100701066877251047861629130291427536314027135967342955659580244698182247039355191766775174397879485101934103794340964340070239576040738757582381105007110711111637476036692236066742755592606684781687895658770849633161598405844370758462796026693739398909679810982807129660211796365122961731445347637976178115144502753754255504419672095563372591029103315515465506957590412631233341122055052984692063028434714255826711043604480978434620959585244076834035092137986687858199208489814157002391334055240673967689453337844779643603993780164548950521047167401854893217268669309461281805015297178444739776518078368989773106680502280941434673868703333837235525482636184252255838505092520059989090857962409903009605469314013955614279149734088146946164108045822090426551664847006716397646079368962966432373317570391257007780493792370123082207560124422020898530049563667184910926489996754761655120502702442728394208519684276370408754986136876853966992366954000242481607251820547824780979898662173658221212545945505851042051357545894314569691988800008354133563193528407460260644589961539062240566618066503467096786593493163337238992804684245047504577142888568014934516533670577530668530520343976311635348801976334113988846438895282858785947234439372980865502544612009203724929367168351930489358406902185000957845236900086942999892144230037908593883542333872340320182777469109090074223829527041668919568494498927854494671671619411907196062533399718294148995188473548762942364505591918025551079108438575632224587077520124824962144099881891523158071235415297954512326634416986083779859279305969100606918188563307243476096064552645524899443273076353381666543585110101389814930091349778830831222557353883416500739776088878596672518320961991231651647790516652710989754035499828779371555081658399451230975235655188562166639430982629127410787647039213615911815899050229852411899088910934502538878630220239143332084429606742590614968236114247959067460174412091850519173290580586569375920288497999194275086410099655789089691425206709892670980187699313517470816999485590670509912404226307484756507719802375191566411183208785582110458275330805060911321041803447078553468843650447809558735174829196198706327352695017007877419999566409152252104435228310861785866259860837818709419288519737399818388125272931626747146294165097925387627075493145938459837868434183022702206661784211110953564267696268000950919367827806811740652224776728845047785319934776360786960892868345112748571423255369567141039161007326701909105432497248835139476099521162802181611373875682259901967351859392911667146719656531830293820851081326238040163993072936835864637571623518057598586037058789172184015545744732043357716762355905148741346555634094758121457312527532798692241863443558591131860221068046529762038903384346290650943064511834268081755869373836017580621840932835041782257922942741087670402387193366468408540614534145881329807388852769270797135457240862317673546022244103550920414706643270981088212281338531476816139113063521429653730158237946755779803015077367110162260888679703419592162374170664519030879812068485207359497684616672696838957576855798754287225636162431323927865055735983506941287496239017529411119728313166206138040495562743486310075332362962420784005104666135227361146094695796585478400142124107764142533576386869515711795801311333719960586317180143743591294168214339293829829200118373392024644058315760368306709441358126863630597654332685915596669971190623433162601111787122080817048999803207908877691817385453730685327834520927838011576737040273990270258415181448026327605111537268325776912244558920071819241452913785420127136971935514201681855110291361819153696277486992278941671356228949636448195194968343773505967817133572000252485260721084629627918615300463615154491698745043803133982562010949814903417884927383064213077689665356232277821532135881814124586554295712787786684575869721009224775032857678705072888622123050316387610851238136538221750460062422050515085720722884599703746003924760103478505418254453930225838684139992210008553601576324071903830777103149096205453151573499896774148724740637710330312355376157633513419563520316194859111240170633122844658082729870619292751421565143551589271273278984342320819580110539845888269367703294857668333012071785024365228300732611586090912383154444422807720639838639497915234374281167781982584895108113007327969894172826295198373105058827596831600204571302858785521085441787024965008742155206162168579629263334788932016337460576462824531516361491233003406061171791623924339223417565548225836748921556575042846281327318228409155519518828225449385298403346054454429979939216211814994929595806895275466632258450859860851091389135632268474811336969778529884652526138741201978532269744670996453116393959721697470265565852330634084667954416515942717655277256945082528166889579026714126405473725210989795579850030560335055541351184298946024392437441070498750459306037946467818667015615386834427080101295658208208763894816370899328758869918438243898026396649839022735299191307115908772794276485908708010080677721645710397046196292521073174081580846269432738739601626302001352527253137383030982678137165010280754412456699415281301291070354869212281363470874251507661751254435881286067445147094549409863136211636311139562470231493461474845514409528471920239088432184104069926504193179767869819939465977066114500591124086120657007268089994836033764710253514270570886123110462437293800983944573750434677863713915763745362225737028369730448617874460130141485784660890320158482632667850640785820809914883375419416477181988913973423540842148883143461029224504812639540256916132522412303220157870214043807676155301538415925000944704973066448437717883516855644406201782642808484100991354152541852215614361375519569761377859018307367793356612051442285735317199369235670530788567341331233058202357003061021307484844448890679421519068648400397795138481909287795715366007206763885349041220881759965231273527826925589400326715764523101187805305329853954932179450057654291572208060754460805972386395181981297386976686848081816603458052524990437157683653700252757955566810105286293572460565915349958800146019138022681343708625107328419670137146181007567180574120984719867128807425388263636207371758243237810264929917150713704689733810169280667199973530752397125159910884392177238627181390036573449448444795865072637727077856308189171243216074611441731877703620922485974815847144138368334062278151096537060173675284225309478588242920297838546151314577431198776386924815056283288388402345467824192414551430874883356784261055469341943423616495530205721321363284541112543228504969777494187040564002118404962914939965515314500100550727468676835372545133303728660431085594178879760996089654504846210842861965363528491633391484287006600040313198606578879959316288371121089545238349388468897013914705704699335960384541266859828900205974089014628902828290463911977821270308542975737024742434071147975894585622312406826122925313905489908963684094013815384075711601981700774936318497065209084793231615794683625081239171007333013995374679162965122475104297992499402206492958831885864118987247558270821177403245818406569332737160756109717992331524233094312272646238208602301166682358632555731800683011557779709424854663335872329702160642328885100082533841884387080743986218822125176942963262773212403562349539876259173838980360700218357751612996430541561396287089700765829564666178406446164904066839309963090508772683359219020436870726727365526101335003473912020142399881142723613370208905532282444505301117293834113630199040648691420737014031358324533672476969802948745594857873716357668186945328547690329707233923163096306490557630897837020899864398620060046718399029141106246300170460939888488384230745958432685954801037846458296849670624159709150595544037140048725170043158392308611108522926935785614273021908649416307318680461167415106493320773207103812497489949663756571352492008746912962000465504414528845927301011670186505570207161723248504076197077453856351084576841143541065422898390677004301428651988821513881754003844051613588687302204722855765105955188041132626613307168950035590767846389577987056232099894524601408991892096270521038164726406432884932262840127520822295683285600855641117006435793070707303312701379705014216172938014941820912578521353511922724621636036046942288189381407162447013923511989513444962322355314760508956582365474690240677579982166374196057305453128549325346186193333696324888271020821694818187327835024181133009863105597723770557496703163118302645514658655437756501374140513353245744568238601533714010418729575526265119794381905071890978314489024945309803477362073415687780788272427668229979988944276555823928055587115857260213905910296904428236913728920598029063810109478671800298176720578344383163493160294318290571850913195400671619781178002100455562659097723959820540499884688936396354269952025827351944013802567272151078290848791996676873686836075983177161314181493213881806193194309800089795137172206844768067908511750973276468449550572672753368583149281742411701851984791170394084248260734906293561049743616002892589189020884261017356633602051421668277111854316121068774734618367976950927239826603623954362248665170445888853230563368310325486039025602336698173160366668633665489648640070636723974874539610985037554782863577260970777559247945256106333693900627741073970743302173865878752995560595622686676030182368637531590967909127401957090127842228244494147977256820351719939152973077658276729946629926730953846341925091391013292837431179776270810309872209320870922970798876144622453138825946149462220017342782878441640497192636282843908299745561158566014306599124539382992929348643269782381579791097687567966075283791757961795766534823658044964189587180292340331775019513098899555535225236563017166782162352353725283662098989697653233159481218485731895917316660952235056000176085977058295512597452776145147813381751029191563459685427811459620761502467857489650706711258626267552311239047796049381449566423009481908133495833029577871775723943446254555943711796472593750518348803942022604521999900356263597219041243631833949730676953447624535802303341621105967267827098486922517019724510813016435692586660771372714215259020371907781635077595321703211074571063592852470884271113502908220190425277198527406016777879091281972826884376604848233227190134788393707051343858713019112096712598099689629929775643329188241786885054871393566885034694605301373213488707788814583269874290579732438357410016968884220798986628203707110690205982029628499584715469197101073871990178977321628349814687242038687366986294107388350679829061675882168654092704784167274290003620440536248607030370227473819782406737576105429293809102443835440634182838869811780632175031095975258292626787282098367125319015002253354632484577585605882573638142538789000300422827936821163614773824401735364617282442556361778219959312695630214233637140985264635194594258679043728361157168519453019939809049658469967563409952045140311199312183112319525237293300688946720971056343187905511977289245669202469869341505508657646452692777478802561402845012576454908438363271910039007199567920927174996742807440164628420715858038218244751105684473589011361901640802934939504096845164288018998635702040323805837484972212861139417317294491037464803762783544272566997423653064973685090188546996745823590728809831556858030734963200460599525962743240212033827275881086795617835479351035621542842916718219777658271300850801153494771162961682383888175265351851800116714379090469953425790900023360832743726125600823367581766010336234216375269347023322996298887173170599356163648722434096453243980630257391260559111183233034606515850044261744454901342447506563888839465940783645390447562185133970910176742099471750801762493589866023525389348472976230288356523027223666139180233163661862575114076171643876035214168610690191934483336140244502066530651095897935856098497273016672130899259619492513018188345795386605662004730962925687936609789880492073514046686778908761504602552684288924821795976618250083226816385433929661888987874775734300969786721814238143071961942783422267437874603298814530206616438644486132236826330197151521888578136960657086822923828999348952653380073465809220491619308060726848912765268094634073213317534307029809238843511777856592825831758685381986394061898406636540412988811732819292176602872595526933902466362471158886252660412458135230043712647077663702543637277067445977298144499669604567070649426705180001074709988961285605926434390148999392953977213110180666950439286020555725164754409839474069707663753071489660758082671428997314205260254066862298212373772927084236988442643884186646695202331587954070074572517737330716820034855537275297519609949640920821579786438501583835979483099355494944752142627383567180666661789378412059270640120998389644749986590987138010421888686950990568949289342943109575229042586955167483995386805968351165230524921281100750891856577090372586026942887130442000901065900682963919362998639325623000584271966793144874637179622477736749904177889316572378536971037878016225903508041832809541581654120660903040027475998525979988459544409777942142317843567910468047958509611968745323487333326332838248985270925509208746859920727335338338182786163918587260365018335730365210219405089519977702847923497141529825442916181541037092491931822098682716075494940542488022646927756007398867127101842926041236787126931552742399726010839609507418409393671615249670032080639804667984706075846534740278683576938337535583776520195072135470819174881554704248668738230876877235984984161674529718182414009442760394972650173200245657636098061105903827151536956991452970263599217441590620089640150849720915442441102856670430115855425625877002511032627687521594466503049703234268736887351753572423178860226489847308925678212272651634336226712438813349935241399217912606490071264965642646737109919587259175538023811571002911516726481611891763564842372619570333134539123761928851560928041795765758145576146884615891016770535195719440760747782794806474640186550303587396333983951659274662986707477641045219571287234317147149162694521396053673266420284726937176327366659510025128166170271580062266756996763846971445010185094844028805019880782969375283770782106752920691905171810779844459904963458150667118252766026191418928129445331253876032956169728850882524438939724152438044387427121765617340614594373380003543423042633269558839330744865063080589445252470588838586442606738767264500156077208269840647478424856032410568976823714148541554667266353811060776473631807474634188615620532249366974467385295991919865609607642604331855987913847078741329903595847609661165639696948226023361382163362219925731492568967316183176492457817187924302978828892729008706293467132633283482536826916519335317703947499499232859582519670320647947340119771891904793976959859144864719506671641634871525526687871123278489559086898292771175680067290999963584401654018292731917247689896186334219577759902946966624879393587590201204384721100345017125887384942245085181194968277296406241610595501017264183904080675868555672334161549391358888990846585140578162242433567093591507274948326263807824107539423551382876152905029512640647706564081956801363953738158399372573686338227118959411100430922291189346321427176789529164764985652059357051123144156385791920387786580879079994389580930578695474689604643602039017456781107724703483991319021273425931344228969758194502850797059670985300180561198420969592978508624971884002629308872670909750537235558153380460402682606244532276516828273801964063139332610644041166860982902475706611795656421121910800490934768089680008113235463291337693620316933291020534972110138232753720088652421221579228206619301596067839470197560141524635006860906604531825972652501019341073602264387778073739769532420316807454745636178096189109419447261602825752179115486686469863001749117999533119310214998458315368775448046931777257275403920135594179890634945436935064060671555182999171693473072869040342464429087831756351107204301482044568864888351495257475584779647086210453596309104722143963250407974682358836910017665019165236923432814080397266005848124135082438138175921807813762313758148956211547088109664744936901600095234929054296013479576950959689522005093830497410192976303001261218315315944785174049746417169655713572324875838117628438335640421633820378334686818360325138838643673155922162130768608904563277255973301966545704262009168530213581823303316197752102416188131421889808561773331126613197319952282339042809102895545854727646420519602858868170635928889057169784695986659750130598209952974563372959900719124338128398345218786360737142950142322934535969534903386573473635989632425639754396848743344794474686475081995997169136602924692090316457270675909237548410388771354749037296035256257307459788531895984882911098247188101864199369249640226064416417228039449758853808364254246227436248706274334586355665845033377507467787847975936638911715029264858897505562520924794443344912538962246545078302724024399259148044872499516987431565926320976774127241644596346062694974917040383379285080300612322276610704600798062155069238807343062315461594552537019461652206952761497135712104872988850155085468425955192581071250035426557922863928014745511868038919958334466993362795795007201257001742134294848553030335327549331069282320165709219593979053336159263222962302853054650778737819213292133577828421924840389432794128589581462346998981406522716867601757975737993751957128576841786585280889561841812605928117725002671930553729739059373859825473418086350947753232284091998624326423877029082659432603430374730410148501039480652199837741060877494595198983097353223616742233357221366342417212797457903974049742316661456863579465603710608310590720939509545729938434880766874880014838134192523134399795472262511859891930104081378501759727469559758125629586490564428689129576055627616587786919022584886354490094694468587776939436247512554937787699492962464577309502517798174080199454880616204258153743463954458789460484291687385891752739926393659516390698428974027309760122952233911070887498464930519658555367183170036870124433791680109741168080595793918606871280273316404569195612392620164952681860200728202136327232844099071041962219606895262940034630943270005338226620297452205899385976714973137326275811263826682029052085614699014990904803636177085019227181599603141924285005011319179474636107975023267009439390112461058641294960868235397994964045928803308417094296725284761527265507788605968658060672998158433191276039148673415698167373330031688756583871943679813176574683078049849979384990625838457269384211393020418806818492103037836677527981941012530255693018354416458982551998308923457840600049845898661953059426946166757036516979087281572578289492732908662164194270759270799401183251162908906116290961704822281823845886748798429537121185410746134675242085906761532197531373674116976264332358464958228143440243911037870768611167980130458684694917472626314015728629651635795304969478664519407970814041245481330097889565261901000745942410380462272927099472500216035112887715692959680045611051762393035683135485486483649192882859232773997458567345887351301796479770246712640589455466610701140908594294196062112992603489385187359772835932684486990490515520117501488174753473086729567343102148071215672692583478005519366069041607552043381764240467390812744078090548118979883889644016447676609528030909914071498074299050775307102526949128790272699165547160360183535336746801613444310299027702162826651114736850850950877697968188498331307274814701543877568285462962933242233175099575704802157698399609868219458467386632179196488691869839873521642108914703256720476983331838808405486802772141762559966258353697696396037427195240136792974288902669714815500212213270709054227934799417231307834291972079433301745084700089974750660353881393158317699764144089455910762487342693870555677394837537686261710303752959643124768515554712399166667720755904744396721200049054420674963526919836987968314657828537764967290092657167346957529860569368156799801296294533087988055946782040406552508809015421282364659177451095063332759353476605753361473200892797167893064296597290857648041786117849605763946892008026714966830361314450911524414823838940045317128421564364138131246476736713417557171435545071701206973957529108146073461013265302774358604055209956428973077168810810784215476616352963032003719969008219297899490353628957570756142386502735130265931221831628294864056682487664988704910538107180682283684349717287421920792802430535726985901657780409400113468787226942157091631861360651795453307151151256058828413805352380541662851308513113699861259328713674492025637695334950313661260381595197965666591555503554756472355685849606353614868905882331077022404667582293513004224612968276906477413981558808472816259145010818778021681357634005666305397375433303038963507098836054949921071505441328100569605063395849523556265104803147451958703889320127003027402855768529779288373691582548233951529869715739492130485070656096102766458208949720469517754939848433776050579381029682338816405551867030696981560599900989990814172549421794941368813673980223874961465458752992303222184135017127136445533163047202547013687164422177530734021104400006117856652943556974145665744743368172393111601464171829887899325293670132789968449362733230840150358357859988631339130344331296822469000638875894335813893692296601516917951265773520892171332674917534232318413388258666374119914498671379108463010701663939402655758659822071624678596337112357387575757869160567582733513983329315831051237686817796051725985182458853575327646363693954427657961131745393376131052504760422514924752870315585015967807114410258937462903962384800377447218070291265608629025321995999058036010858266783626866847099229529908617589611604135334827749304919519167409012877121475607242828145112334862015245921910365409972862027060326228320997717788174240740579662875137181581702885179881280699513553090288970756085957882871661821536242719079263953667061873128429861976586805832950553235491043688712245797758144884796809892112532033640624333093292951854801607050004419130241009650452308768566491648688372625302476898373892419262934654991501743446567015009147648299806351931187267885329656035259546750308575871802004117457411433342501170441622016731393903114856850039270759491315081029465737139752451382411897115971378094495731913818267189633906102224181956175758493261437841456089188580408733932905985448904914780378313282671695417890501480572362695130906232954509351286742521751446868556418117746729314099064150051834781075946075421676737335616031134146066570654678155588509662161087975806533609689057805136775835668724552654615525355409378537266344256279085719707004273329315193258272706770769478210372276549403658048602438865397410766991655669317290273640286226189541761275935715487286482284069108139917959697642946249252208868618863729166200893596346993681103725717115031767952364272512320151682426028459111152303080133603507839060255763203561317886754785692289377907855735980187043060663503898900854294696268919481125232671322444738173433096539716776196398809170503961603263571549095380263713862279261662685503477149303498014905434361406876475204262624730013095680085494034907650153751091082481818858017398583053899437673191129263765809439653061261465621776231440595674943764805709870403893598099961687722577792299833115061062917901411104380981986500562435797869371150796841573267147521744134541612364490314010553684533970700996682507545427124197275783702295994616627519332621519374106242734204656471996350308582604716161140043513584599169678875102603857635045285860360272110303979437233746654831431457488336764402036004799746638375492495236847469324630287364982646327950463835870075997556396642697264066625496109507624343455301283453026146496628699631222217031606152735113735739412936465339032967971649493271805176309348473756944266644714303078199367060609669849371350593773830918684067017608664102954127630990764794591782817049927947471217646143489615365994418628947694623528161523652558377479593782465141524405377566747115730131912946308244161553576039603861257698267430015370938931316890331602617128984764327016517531551957979673374319769614494970287905779070044303621358331339513713170242416091603073648791207770712208590527799700175686117429236235985247041699608588049520815414067080237786939905294433845366248450045476278372741312631140229291959116352353113309598955940434249887849265884102522343510768358086230400298794183880702995680851798049948897295524107075194656511307102731300187838042619915885294536141446708969025225345111420818710197538146892888729567957299876601029897727693605278123407215384988608292883669830874823325699536304837785605060857816325590178280971248003939240244067443226828414497848674116374084351632317932076773134700295120240139933211255323482651531650111598434597746121175290915474304827997369879258215356621680129021078127856683233138576489035805691073806751948424899700823783939595345892994916589948064349252981135936230196606197157869181342009566806784007807470768052640438357782983363783608990119191086301099645335203327858782578029323346872577687713049544633052448170139737262697200484517973731645879074508951347135000404664441670512070825878098307647565229218753949189773425500382519421573864419945985483990759209605100980121487882996036058146680010726825490171207740641332609567816312684513958256025399695927864526993248358802719404472477452337505484084232511070514626085557833909462217189578518144394313335743635317079622538068189466317622762611739969479346180868558957344745309166700219562009435164867315070989093322058191989382930615889652125321817831877521368894166042901844886316371901809915908998448016705000434474802094264080633829899318373242612258017867173996759909134039627904710550629411027586345579729867848184390228706330501542913342821397535917056544126852705451692388468125157610447941163067558469860792854909725608591078563287484118414562108100999816582350639290676026485239034961913682620246388149198339263401542097160535894659102399165151288445996396817385034669689170397315274151545598420248852985451555983932419621462825010970672133499344004349836741461988177505227366850936215260551629690905031508088289291128529209368729057278873488762497665504562923862986975992168151759121525085132386315128324517739826263797947761301924115544169588213837879068611393464057144406302676662842802523884053990711166228393234910561934950225646448576660230273847444094282808331324296309372813500912182059200189324495579992500892164289485389465340636390138574153686936534961057350867550739543606464636536715276626943974194563987921982632958013981573215909664061767613897661467526317915376613348502348491424209205879382934116431897348092912890024431396154873210796194970949654246713204816437251259297069168305075353208799851341791064842138811669517052203309349691304897865893832494003345604721979623887044994920714705794396290999677222073659913545801054539252411932175151515431445415607335340601568535199550613964410405930090141948848195961494517679471114375589248332894820482213514528168499085075325401956001785340559268078069236574935790763712929648245533408908205738864835156411215763087261569736032545759845221362832330808359703431287083905331605247223249831262464269880584572595855086934320983099507857334902618971339383884689381099326805819605685846280081948212296701128595165719175929524404802234025896231148378552052407207850983296731925643856678865771060105913705755849516266226759764182865669171505615427146365290395822612504817071941201591214431607598872499821103449677349598852813851510013124809058798403037675591490012703507273486030681261754575749151744682213567460005267388082161151661770432269392194102319638748906681311291979292570805244527690309691710298244729551163463202042337463181727855590033000186058178252972170618699655452891272431062437453286812635198621080252771232125598415466288185039986645753696254609526362771054721632005262821559544562427311269219936180848748597167378620849000748271973068426152606427508008093064438969558623123062540598730097112011330806728959367934866441429467332914268235503144901846979507529725810335064629684374081446732926398934276601472862853836597183784004855897827545001153679405574615343464734233379654767486813210698234153301164179465802851293323566944231889897971565304589888637932015316169651975977282152885366531256398869796720349153066706235592023983795671266086310485854293431248787855154955951515263977847817307734317274489093825922130872250438924616604405766951269738029024791726825975604308614169091593949668632201394379768343317874817463128773383326725394835403053313756517100032992121640230360458304921306203976422954785966882218968408979708958461504975058753742719637905165281934788801358011849586094930745901318846023385169132796112754136331577280173595768976145103901522182934285834550941363404843118284034689958498352616420130773807712460005995296210151755869419442792559052208844217330634593105654510246094329320863373889671620653692910180808244613054977461835782871884084809368334345846440230724286179960223761227343041723736372813785911095716512377235074414573710128853565465931929530572933034848823926409336960839641263643808122749385003970260940398898440709156157299429799232207914869511237559614107793347885266003913620642474507659953651037751779997135464330355988654386604479320571290374365868883617221845098301422686627680341999821320702459764700231480696865484155409543864190519988849885955125387535663055314866860266536409297495611307670338170629109532016623625751178125059633483779512820156567266413179944863993853299629701527379797477197707566629162076409693123326523039601474847596066936907354554342944521170407227895130740943977381476697840558897357287947739430785111131309555283951203217200592896316058416593789278843045564125347057654786751924599323057572640054876483563961903188345896644505075359822961350594536435111224758827371390765320195615718610133225878368651995882153437601214562165381931489583825919732048978174477462034201052816093371588453212479342310621881318054581090653904527162550620770611384734909030184215417470056734916052505515556752495386011789989723269649134088468224642212974109480464370233702037958689413745285989936428234709020640157974589363075334815023730475000588308584067568647778110754086719477721810194582257241790223121782703743508349218224830138167261940467398694563372126395101797996096932435090661365811068990129721020004686642113357165494674850650752204718580221039636479153945796082614795985866083578273940774308070228707096263513869661615894520547280174585573931958725783388577668690405503759694149581534309466768613871677195618975359737096440158134990192862740495741659870379890899864876898748437409688990094732630803115640496736587753504651929457981281219639944601863145910711470882298048692280038916401815281023255830562490539284569851918211987063977095413141038884431233329119739649682282239781512418745881671642028994022557684792469516071256436142145309675242622463501929680340904333267519045242035899771688339707354716658214515765568749889566174174323074881844689137384246363692350965597338513571625772283436414812639007641629283022931618784793172820999649894432250021440342111752017059654739920175638936258234253709743032986521536982145907298737691578903525839859979373673264348848390906211296988369555810874164913492683227886560914909515821626316863594155882010709459125396336013701029090899984109967263722311909628064841403044450696113478105765317018085722982657666888608367764649578594866373128318721657673840262385806854891418844232910693848664655978817851325759066706038057847592007425182213807144865720028099943320884981939627047005622887388597575681567017312147612807659654063655624703125914938819075937521545656590364872093058753500714970664400711780847596523364409951496296130836941330930510536683056087118171341304095140793576617316889263530735263388327041553948107467934745339936572813230561538500035446833775917879596975378322564629187194488490200125433452710720247356293710969634357932217722247897122625951093948675583122999262425190960714918647390962020950150268676520406938538112926336662122633235266770128658835413990550644370862422382455795407367513202952298298215216364182073706210231586898634261781616515798393781803893175595778015556351539929763918408205765738368772759795233782764137479068212804993550504766763017707081920522868752656456821549084010721810457840896399978198533979800965870996813334653845905097470158453706925561935012017856547061276587726501157378911748813963546982497735414092482942595919696405080673012002675446505326170045714202118346978462170261691371731529596456969811748271189967221363684274129017927932515130236396877572418377575370169161239170843671143733479435573984735839059161106299321001780678366933440295360452537976951047991323090789949221245880859554670502168933686436509415324976657580281928416796471049417917358426299946682913723424162370899269257428088409796811237701752194547616476796216264726454645622865178453992994198484258009095547218950835258208104266648968620513190804146457616545421537158635922525569863665656632357262767035529556115688909736791985809826587805925011582274285446791178287283882744009942497959923817958040347682729904702434584120731200745853086982037254253303682277427728034925850311399088520924698847338869533392498332301297015264743503085177561834064258029624253926003569541822950090836346678699904091269546314697758686452402979963433072058733288466252891604046652316785097153179254772300506496146880554398778017068072961114387903033522200301443232690887692645735210217626073985105673254501079112943688407685431394020310922226877874486550395509815515011347317846287894202940907252888845845199725278264189401451123701992339647062931546967078929109204122749498069037150800746072447997392897043033341451033731962221360798200126677973798583685684850486853632467209292175455343641446979364299404287044961468076261034456009055935725349178966568302415844475043458930791785632732775315068928830612218264565538621238474569341487070575127916244085825841257722720695443094728664763003179832356935135583408201400552062513059290257612067880663538602351520364942379377295340676331562185322862804181295802871134294575823366267255027506346147561651680402207071761524572561380989126191600878407348342932976386000904630733604053192215105362800106233233641770338844537351604090697161779347357079892837403176883310240874286493644104299540395959982538228348251640239939370608742397776171739843003940432522725749179747997824616370117214416696436145348582734197622691313804676091644794389818701707005059074234908050561758065962204569938066260072053092121016397098318879944106457685784762449391149706509733996278751304008934804965201532372249601229452293217887641434422704576744099209837132816676973681826768728014707340337086963474096239292258640012939569991170764864971071540231389692260470002528093564724399531786454517249012431552490940160437237876240842961104426279125211159718082425721320400018345849533992149897449849465936598181604468604341054148327937142515973148155071877584700998973567565704997806333084341047346853358066546055877656900875091178669554701557309296658461025654134845764639731620545633159458873565069524321263581295254599730718388823872949552478672630031376226576542460861991968041930380471512630289832745344188848245490367428812198163730066923810381822713643470372078971854144550521603961091171595304376853556788333818522579669056282539308782821969994003839130920305393169610819155839332299265041974942773115848132074872234769518144695186746405108081036143796142231374624882594390396125597761018234644301656450356948987981649299892645578468596834986953082927503556352837524565025263974977086966222754713094950610455551581652300399008320022214896145452593832858876593949183651307242166039504967561228372120122891363062736725611966218190039800025749234874717548899128572165617254141685231112825119586019545422839820361423024360302620260437793876482921894008761033804981674466147378425115975326288444367995134327058122081446949213233079075242816332369092903244181655565162595924534139461214919979200474610921659717833732441039010789902525069306094295966408212516906058644808313918009870453957105552214057116768094998055777823366454653025226923881502313535200935188401188319021959648732203150135420740291172120621549870549241019430279035201855875607063439910438817727276666142617874074109217085583346660548956761832090853086350612195012367049438613878640689823335316371100606531286907057005460590204971225710801535041205530190269985246480479118098180378237445201514846842595346930816808046359467022124894797003880855181613661864313831239278925145403801075526434647492649458951609105246929730535256677635672019035528238195488161158118583660941386051252402607466987450163354049877318518717035434252155179291893040072754636653222852746371912550013477082994270602956937762430304689136614345281215858934244857565579809644812721340883250561487027463280543499855332591466713643726416769627628974450852940214963239642057048216054120327695818220084417732473757594776129066994424441856540788931406159933173155676911455202230004762107518303105563474434428917940913255913689294679171284918319796541409024201736781494382990986826918596213198023379995727548101702848322112731520209398077945404834439342759095298776934804685108861007370703394822130748992953303283861781737730937828207532881594987246137409185736959354643537887045474486316080966929940575068144868069973970055501376054282097989237870521091464642503921664127477371003849885085124690615464001246057003621740902250201718180761609196519802365812082136481793625131650479165526131131778197418084258978147745927241088933649422539348204283107031084964306705618699180109337650638527999709578668651539705237261170598194783827280606508103463195471644061629812775380101274723832904743537101050810676149659887538214731332785408922990454010003278772266246139193819868887705327449235687254870557116540132135119144001779650410477896290558936811954089074845105972696904074913781969390186850465582633721094782009986812684173000070656238739741818282274978834775151593978334921855493112023929836067626125395880307384668597575129507117894401218866529536247898588421699799801667595549337724509734779061713324412448076356355180484642361634810510294889839249029087802488805025842830986773929582155092199963313233200050079616550684110741124496620391151427833657487203469886703818017873999528840957690077376090983991848586440922830219140967353987378212549280497623389807709178653643243741178951935938146178186232245579750971515715814933178389019075774569404977380438484481739078612416732972447639940839917054738351268523509806866587915465192665919586992944287556673318370357871728138254103998519704175354039741850982355744669149817278540534638994921207381089211792953970917947352956696394002918059194476274795376710417894891311095434485085039706505203670589983952868188537432278568771002677778468248783166292250881544952327789419132915463996335644972968828896547838852813193660543668217631273695337796021910890173886522266795014564568935426895198111019521652112257772442046773305311041137856603061857202019053849507173544398292880740740533058050724878256822508713046352716087867673557004577655692237024552444286060108590588504195821698211108991865985462135164001853407247972067643303332502522892776352211171122483441142402258124939756489096341068419252446979883638665258692506339456282841824975724954035165881335905015579147150455514913720946582793221656846603505079608657688157275069220603999812091191761146796067898895992700564603851152451028092938132068461521775165657664712648866014335956048640032361447483546829567261878713304094079137431116156752243793859151071455348222765052914804870595178583493162774085124571783676755560113952111678474334553031346918826231940346604320478604322066655177654183868100913436170982344692336822795134473410810338648587508157366619617766414489689814616520448252010282655466233074005536481583878652901289416746943221389690585638612298665505828875086432828535680561318381972119387271902599510366190667441489444466844392665580829011985211188718475916595443101463430989878491400638440939777469911864987274244907171860444492257764639695495470737980516678559942864310435400722383743917568252233475079069042978972517531327623616636462710431457290090685752701921455559805829319028518399467029030327741481823603189309053784761783409384714384754490365700680964209527876013079947955165834656858372283179250842837572585972011638505056445363399787573718707760670488678604056630709173807831136234119213534195123577892028413880032173035354225405999121033287952296356644440678068985110424974502845786983753925744044926519470265928213328526202387286445907828554805949712596365419182028476602798989501328686562766054248842810110789962917038293510528164991239206654679368393210653444756881223723640906584192154261227446290874555174269203623850239491562693533912011086780668674297391823722736134646107116813157168756600823088057880313650264824458465722487881408038801643475616485554835216662444244353045406155994641151912560187646059333927587457526262869696730384023805069131041981760234445971731431702696967556523742052020989865622140982218076497502502979346822919722578407621675248350184567503805237795467180167311553109935841041956143192021403266133654860018595666431206422404820391527500438878458965118561727625202879654584859421892452874044831837589811506447811133710844430270938056300217497884837409660477010506851658051277294527769472980044334495146938515584620059928314813086629833708455108246301491904681764117122272653823600495932210240777126545051892342318909962433770040681644465486938207703099500499868806737389832770040551235152777587701855545806631070047898441898021864891920879955902718878560039717578587769823307854175121255841698685007488387936634834434453173786558277392796526483299910492735245273654409037240100288371159237255470740845767576904852843099462102262225175381298977530614298537260405797141057728679333359193312869247672621717722690762131964520710347126676030382796888192569367235930386057841924736552060925804735927910649414275507457523855864477021626318014987394675594444850953471713639461931704916842610381214554986642171283682668627071577916423265005953602785269092633305965623377664964705510839621966415328489795364504412799312848938718408919138764568744029803410866460015967789192905794174224310265217287275973961844226373061131076535832306739450810231865987369891175863520100375692288272566778254597438759197346149475838250566599454141610040268993571481358530048773883756194122010305919867767418972954067404739527738730701704870375052309943572127928699310402107787000013086061250145491409458197656261966403903973443947369320469359356176287214237102036482034773557853471548154814930822082715017568978432214063680977268556870020193903185689590302442156486820639769505344481424505253084917726872637210669088854043679868602218384962350269232967672994604452881075845012347232895880650747902356907923549051247534450185682620943442257465615606450611924040338963597162450560274860544338057767717070521520164286746725154505078477401003896345200018198442775374615694465777005512473698136822180020596040902341561254180017005354312167207084900083180167332038084532909627083982736405913007263754204281368978767008621985972308457484293186855381890498509726958651269234983493809562834848962046491685663822104044766192441340155554629716662096009082262006287822978721482777626272755849236551498183235218794846700060831523867776227669354517969842201653133650105758465252797987449578194482720419201725990407430914464561850864331290402642225098613257599743489756858606367519706916487299487175919541978054363116645922496956646338413640679901117721191519311300025310300926225663332877621017223999914644489792444508186469813919373658371258276046402028887672383654029653800976922347078355737310417723453329315109833667685771326796589440623971334473202073262162453448373710493952347875319250997455165792024956865406894243747573097903082946605528927841737747742858535305242183117267760544743322557960413266445301043752189321715454232016502991603028781435744184238891955716516374156924931410743670578524754783933184508218479097063767850506654736792613396006482492737966965032934699285409287522639102637342812955446195834526942034855919427153475056117530488368647100303749224374834355268033902267141162896101103047357587749254176483731030337782802009220894638932731358269486937086567511232738664304962991259862846449606993605889239106145816946926286748994441101807451805027283969074852380152179036534847753424342648397790470722380474817443532990533757086459386575746246536142091847341259402354373431985884372120300336498929625222687328905032707269268149937221529700655680119172778828136749057681837707933140290584765304090124529684989142844948785468730042284556906883568579084717539429999282633377758147231500832316968302836253289133459301263524071695048327664535690377863093807865980810814815726034172733529532129793111995370966085116705458296023203381836995880679597289640533401559408291252433769593884899796579615040692321357721351368767663654282837057635385624219414777452600206194159638565653892063634938470990656790630991320832294453595639990795198231022076311007358336314780117605046360245777321077401466947253033856300016995010637483008256563938290794239656432075009809175786208599639779305150175952529193705528897792914968170496350807936128009284877647406778641953530420003911696634131848652390048332532965751564150765075640283735283324219560205499948460378209106409123691526562237519203802325721395650897340055017520044115447750206492336126125266440278018224554390738612961858857756943797479665146521213957423319700898404196267126929850740256244873787670392292184360814436590614489652067791723688269195000728056581925240758958311066007904620361946565587569823848476490461472398703852262565255231883125878654490068497391640574512107755873733334332171849987124795166383342238715958168988128722557102903498194947843460128595081196924965665994558732693843262122212686746553925356876497459122795344509171247351499499668996014956501598905516222499169217244845777756327787201998565433954891809112947537472217067017773025291219721879801223463503348287911894639020691691055301521848000211868793474142237310137789895873774781002714346495406080922334794175876272526484626811148086502353890546302507776284060290588430911657048982076846499215428888684908291963408269716680555643090281387487310836407064677899826920763296911233996955400920107287607038490883807694090452218120760273154468868332500939906040411308590611051302042699772510966416174337364213544190603151380924304809987170692247583354170003420645820687141087248929953193852215250946270023608437139099446874434453336728789357326830476549805633257648695395131463229479992288519028060370605296333999527543232829388664852535602123320719159117066616253309922355209058696631280192072812116748520778961056403368653236892308609876627688265989126075346737034396556520617797682132450290532708431133052576529115756770502828284452219723428945289087047144974690589609454783700182346821693982898664737292020612618263885007009587686329818883727360939569118016000146949638120843799111215056845107216909779486907752443129032591469533685075957159258039174378296681952274499494546948678644508385722742995240114686504320577097366706314559188618967681096394244216484581512337033560784682142690654226474759946870559006049902389052742446570018985649939235117492106966734902038788919110019233461548032316042019347195866552860123402580535706287305440410501773416350162430571020431898709290570439004303546155872027494743114990808372119055011658719789132885753284409821639228908025393998031568650565402961786922686854360904214265951655233086378332026363101472749614674103470661269213594390018629640528776224949723525982607501687638201373687598489325433926344704085688788482482094289941279133601769764679940583253081071491329686442050530614162309605321309565552331627244538822964760962663976008034781705951668061660577873617436784871015899070406266340416112266579764449145086775634221529450503587673108516585693418107036972325192221798272860870462052209959238815944806399539091149693773915978545737480402186149383211308517564062457382802708278617778130033808442117128989090081855333765149436616212908164666479961565914965400806450436761719843177593601423351837059712569182445014451397933469383851294044771087385335359123626611116209815431258089950240062279332685262089973412871639372619693012506436404086644418721380901430550395450356863392861132993975816441277244900705240994944055911258999017252812997901770524124183739592706143573017320919753056364702852019545605624501479942104533784165730428413629189410705449928281239540846413793324104302567181185592959491919102501234990461826421794016711594575408506429918916815975926185684581622023937875763237049401885585852021589758601299315161930400615841777712327498883912514875906236053304016240153672326138966163483082295302366929215003388669258850525468777952919451662744280542328277432524851431628496970103225679525727376867342017132866088985397380311092218596269745739715537109785865118316490749191007430489457073297244278968588529205448574642842518874928814124700015270755810363456145441854858469203185741675159239509508097317815038514569622303187247432261217497527474348941413123361424676180252132790434306789321173476483433151444158686321180814992920899845997521128450178577133602438217565420909017767233887490484958180825996140157078643601092875123243904678648406432419709560916648923960140499419729338837763987778651843015516821660973860803480850353629228121317007420882128708687393607856039862745501846822214613513757756725371962410709849133453299720888279985464408537286208240126197582000275758916870668457555722048176199294827631069824976007620944227749995066860559282233946731405004652647312887903626874383152318972705095301154647057312898122712003098925657161494061952258253625868704348533261577825684794183279956200965518654575744193337467638587808923585947117209788310112240509943631035474553115411212415360888783726130540541566057015019445568473823943626130395124260920585000217168243356520801699526860211190462632142184613339405205460047402490976794603788043602180548764620321674585108703952525115943976984561842275616271102319375534701084783469642223256171711349352928728733227389013647434073485895523501634142134418513729351447757609261016947091804076194628652302053490388549838237549468742066967198956628732952445794223239157232964984370658312422519253583317507377989733859783927071274814697655573221240969298665282370032152522780872984957471074981182810053950294312309383071559949075535998635139220257057933459883049876058319884604009580313135486039153240566057986430456818405898776457250710849480433411134387863861656454752000919835541909488171665323805772702582668397297162561361114320764211573715806007465753261983795196570447644027576346887325078064242334961829563328119459653293835379662408034077621582242296745872741949982468287524190475862250442211856352676330929410267673844423009158148461723950927942076151874551200248737874152844232293850494210966794512667890689261604518131754085473358877061881041612506852989239492190919765191061015401799901473325571934311544764714636460723731411506427842548766116712705154988585642748895640191291200418966052855880920322432282892851658332801436203764680247293755170791031195298823271469891458943741847938307164112727214102676947170666412793819213039484815877718890406869416909442499911071435981013716391410809666851935076538231232547304240571324863250692887496635902934591300496710393854408326420801978648441932778941066175577348843891131260089040125580799354129410257334921079981566121845531778427389209996838034255429010699597480400268340850203823090522482029322653112530616617543983278847407968622517533752157188235368230545653684938406051213146601289324324373631608174851899869526952768379776801165304587351386178382993672424719763623404244886021212175624099693155306368261324653930364259449350292506872722226403154819342406233705753704448147898705689102417823853383151329626015018940598015899542045195662020307547525144437889000846822602390523240970858445930868292190621810894953754191417580584403444831865971149942784875218029845974686890999113555692567296119568345885016303548134973344734882725333948838302329452400995071026838160591677103643128698679656872796506326862415004442420895790171168350932264901691309580751457967792739530874439357199153734271388054486347201296962337695523764573275924680204845680789025408519284257359371344897189767124696179634843194213512913714305755083738580215552969968512775694353128764309537498135750878508032689980850777788622200956269930541304648365511527305875802925825875706938438531933653232712123436714172049040678868840660820978021118230802223724029968936717526073259090949352712049504280288951889045951899362854753131124032318025512940519988190822980702280864363012334294389836411394952416674426989283365541858489664257507012952194989957174428038389936661111957432912783035545864402653268171889928728829177683891540918063316400444835405121824513638423214179736152704602507712928383873614637697088606792652768672422171329108726414635006700156587608652687243593915676305776789033267956160196239694160518271274037850211091748893921022465187227682099776225105396488159894432179102084772260866519516289890478543130630048929775824546618622374972217487221444946105601532127997881697468291112727172525992272701451482564076999850676535865848208449866803249231127692291588294073701460515223831619251278968228213707578968787733063599322656702207773973781500133012318855812636881005870235176140872095317510482724315124785888038094011805891909837131716655304309690868634976002642238869482962873122333787712085999451121727028390594091486545481519362600090476680201622196952262066275173520009273746496915491373570547463816463788579280766290866372033293471326296073791267168271875214663761922627453691956419926330802450506228651884195672880790555975054050364919525773405197277643889632905154440366706232611668295938834530351143623272782444862672767787914695381732618131158795675579940965039657517020866516684721652991965780589041043828057857149222463767413361186239752150745439628266606461728949152223372976538740697183347752208649874997141423731484185486309246946823479803067663136824521543472637871656987432078747969947078917746178795821908940099538307417886326220477575850244106152239053523485381036496778182500648817083816502358204626480605950915762262231224816007051409818371907785453324435241981856330319108479019753847425633076733159784115626998868732603193588932178790178793317463187225882470655828722469178542639099993960189858290141067655550545454907704244560123550562831914743399842754175964280178071770567820513663131125092378434144422245797234789455376189715690751646148927737550908785601410174506951928184166071207644833960517756754346603415473561347499509682252503314086570120402405124403517375848988601698352392799038637397944326946159210108956148671271160602304057969640243082272418542120854250880299115374879971713139209123737070006173745391802672134429491152976090879820896488716485885376570181167897522853622445923144257697402699659125913457503214189159428420519760535471956738700212899810554692100304725900635486616708969248976118425470906294672840712622066943781082391224550878009714487373038301564085827488768043497138471217421513335445142364586411195793879030050245590716213986332532309697369819587773149641454016514322721357002633747224177698224589585764356079700089657094147979625886232674715348849846071739686116380546200606423050185626649523024453394236940310982763261274429647811863697155575544725870304680669991538851759256083916713437442576474731260111384002485352233095910525980361136512050916618943186017936983368952657278565353230892763175194024500638057501006554394694403378840572701221019970607684051179896642960403392753094770087755630384525371450415047669473956870367994295246755086457386255407645642241811049378138563119530169335165159642254447728322196124413450215683775970291351766455562591576917699886030188102753578669441716277886682039006623150518402258699900672092272846791161492620430520660459916972914205817332742597129981019692770437794002532200367465535301410511326364493929728092082676725093842848815874331147539842679319105260454305652378422651510787504631772328184814124881400761546429582064303468489926389366019384183240829765975426076329389260588779833579953465437719368163479287190422267816970795274682028980188321997143274279080466244193187461694432486179650384432697782852636787803915391741193648176319761393902978490214648308861479480990543037788234136501439175300564515727831295189243824649840813443162889045468224972720518284933179626685927123051571705410386590771349477538906245798381011124858593220014405947755646019093858592064113146266291579338364320962943631227114070484457253518499374513425961252722167571304822167916511914729181522903283404462882806103537143546528819796795138921868168744474601187829659190171499890550899972151933850044469970383132182960049667132628539705224048124639084125625871387447837870130741455279580249691784472612604029396859989741410234274996827584474306169443097697171640036153631949508529908162903887259440279971113736862663265543001778500690378583243355189522804486095672522862760893202764955089634644443430424807737598505812703649986352055343968659598218734722008853927084358405244863021276475769728709878486402445565006469959931351901088648542758894959195984871944257936316614463275022790728913403793566449432899962434358400781848360897027998465736526711612974149492772154302863239358406214892212756312913414931253628587549649822140187731603335151421723152396662364817254843382609364477986685239835563016248942144956722024842633018750017793665671800079975776535833565753165522470906553761950607247235004397973182771493744883095907386934446283768626088723177519202524782432835443742872758017938803415889419104195663321929064132843942823788615939583674682533679783193687095210919912424055425505972283737644093173231232432821159527910455408162626249268519029654939470467136318704293372187349631293422533204653468504696773494503529911732095366056756323574170375927459285138565693985339051074065413162914469128887712324926367781686654491889384856515417295512032689519656051053133095604287035153048948974449843299464050412487302619375165136152298319812227860663624143142683765161569316880867494373740393272960070933848511910127337738005087571992760364556643346566296124641932911584949822023946925845669389906374868024274761567228198132419017699021933599786922501099174996622646064085981972392599488103060618590623577605117973031669324748966866727250536968730831729290148335816513808915912551522875155675501425919221711533527267212726361500068569146517504919367942769293486014508481560603319399141232818582670599439299758754646059720032718838820419780320315229145800815454452081265066724686554083850909148748449830757826775953391679040216756439718846915320349648475930727957235443875322532614224806119157941474525501394018309047783234018900861678574280562622751933644304306012306638881269764459894870612982282041937664705515186085522770250675543679413272088419583855234765889446287692026561864067875095588763094062142016018106757767200184303104975685819775477663194396227044844578193559860518248021261010086045199894583553215572232931613290607181931806736980411387580475252247221748728966806925549430154677924718395062838908105178494011056377982850878530578469164218587289518136589969639246755686414226628582825000101978891932137122340342599519688962270809940819748866734370766881919765686693610032223639683641931354200055388203625990238564382039306949503942133613544566546599621695749218460788415331816577707911636225016802109827156686759251270398420828225537295743874450793498537896914969323819253930809820367901482745175042646431711140832790169817606974643336413112578295734517735497211178464475568917101911268369953672239266241630472160540236584644153559068908303993396650816241865451740447833806921362463034897224654514108320002680469670655613358806191110775092307573127903515345171549105193333819700463472090827427507534624518681929298520313901931732902062788901135707643229126499817531986659951228522813355461566245676380137951074659600778365397036200773875459741853509145113971368706227004065466650610785158436974843141040737364913233719416517321148083670261649575945525904156147037055287934273814903065283970709131316336696236566760154976823089904146217892984430125558307600635383217399027209527799352789285561858682522414966445968471545899485667169627879578881148377631269756151437605772891406982670078603438623901927367228875984839778834633517917459845088139033075791358400108320881794086963070695970733467855544055229444809274085490077661597901662542549589061490305890539019230404561571857461876220983945801679789659388429214028637170686165736327909172665318517033554834940515976037962763846438377550149292092048239949630372895734761495822762654097994889565492602816938054754638643686278815594061475947841165283521450956557475884754884812602105473221664257415140873197874736705529404367897580455176282735467587720639433534131821125389011173322570148215884409404309175096771181133710723420475134100223607349816946664531590548257140504985580525541182473939614442171207576013789555659421039130927744166948730355132332417585059582135054300537893157756053029682224667347584051656492145856402641410817754216698057607567548221672733722582205635603405020178015637861275295211137502976553500822483331886249711110229408962245766186618905097693245442164923978564205649623848934734710842832183555878960348476586756885210687240819890369728976308605170303290872521778815227907120991212957560642607878127498518571264217494542969347006236367773980905979758705891943462290186170026789390553753787327310426171509216843298811673732712357355995149028418053086599259641106627414176693139926512737046632909252299658472113704742125400797009589247339669791142273522229839462736995485841918379569714505333427368054662008955212399574463869054712430569260044068353906408317519867183949056090298797549623133378950110776491381672114712306815598742733599940751516579605631357870627718681356669520179927055534035561167270969923242647479453933036520606616611083805351688464932576090339489463220255134840375131666233673297916108545581958798019832126089483298212005805266664388954997739190978788606476656091925415497829710158826944139318987655399610612218993188961639186998794874377019412769235805576317990639679674045621729275204015544365931282027757587953382281922802940502118520129274955974424185886255542025582687166391536420417176250099071451608240055923798556542739557488812543209161717859806381936185495828875791580352278542173144975740024089625915695727341838783712916186154151265396211831933260350480703000842069721522438540053022582077356510765386270858620280624165831853343461267997967672596615426788291573210939035130388123347182054892485035220623238545645910478957241683752005742416872387662870953708868775004522585853012898411596170091718473564280613524992373542914128335812781077079923352837572874333326382300733094655213471992292913845529105756917917448923650454877317345787813659635468618968344195932688600627333400813145298874030513810581136033576332322917675827393187994231880555190098911938892106742591239410400416965334839362519667669887277770260036492637464781944455904415867852561635327187813134518517767824576812022700856668957266486254222393924430063847633026408831185929770647095864777145279386992580575286530710384014552601043210711088863380834656588376764642536717402286905333414106979254138456703127800165006913179693042833428906693773813029444100886524643151797805641792706819356954027137294321633501616690002677903130904367262629565546665463701692514797841458268427804877614132599067909102500562710362129604875235663285045302181746248548962685621050690882058097341114536040848441870931081231342737321671572697985539199054183957380013287824323238130928882667711763478723410172013239962512071689891618898975897268754803961354818359444938848568606239307452671608762619290272055483219718094452977163618572115748657866234610958556432274199728243035676171417275987657795480166020261522978294177679132298695368156050055867588579586081434343920057342910597578204174319177318162867169418478614581428424797108438160974569853506089860566268633575343138575200349433853154138701972730388867567357317088747887161078762498868445680581608026384400461166071821406125129721893113658086737990815757401915805968222538653676762366810031168218848376482016244998169722530311849505758614638920867891951284470872713270187143165834179268530596057907307268734540692698744425168982668746338041649762925464305827401685156394425153552783811072156884368672076870400326797959074958533407301134066947506359483229703598312031003323238049766628331698077097197070026843181238673651707003146049558072189799087412318227211726655397589277496176478493417541239597450931114805949011021645069695401523996563014708477398439510940121786324993278320792494262213072717852921793277181378323305517949740503598237819543034778065187687202473857537721189553956078524549815619783477899387024279995318891361143188673521136094207391866918687552008631619975116990610729887424074685978988488953074688484513081005745739967431855379679403767956492376546288194424952035370676236179589716067134775825492915678470004195385513614919249737334465628465460207410519621586700750737465352353555195889539541954948313019675743938974410609901781647533229592259879493883390742301563910268095985983423651954738461498414627003392718325217394473404276114051895289552161383786071824048625430241722704105805740831967518483822969540567532290169147363500874798249488907636928324027094502650000666205220159846586288325911818174307841160338074962421077704796267286517519689203187275910989289563239421929243822146053840415781196193695802972204943560463290350620058706472448916853681613831053850296851691531976303206307810913151668407447104594425997182000225799221421413178389501520478679736745145736085423671728507693723318735132443790804769303101401762211417825425173176021188485415554599409070328819000637743202473721678294784362033003155311656907831925804776575834360542465144572453769470876497615347323302518522897393958404228858160756614623866062311702708547328131657050054637084037904198365453458814716688751308645492181609044177630956787519269933360303492445351652809053831466338965103914525685706117882341624333794126713089893343998216416286223111004983284327007712177531894095475579813536330404941681017288169192721459469971511133519071569006556582800063894466329760302166442779073539108132324118606090805670087910025936434895288709643691326519225162523733716995359635665813462770133879258328974183126028802090389900132366357776369035623537222237366311215696717004815809782777965667744843267042955227595723079837140604028067499166245073097874461205045418281935304572139898318974334087371915933062581308132700869828478212523895251004935075025399308213742401238159464546708078083157903742451770911586654436041758676005376257997336385496794078343324500043615745826365428936718591626404981132778822740230758639774107070197772136106850472284078384931310130251028722456237918878394396845435703583806791924936688867233473156325611689715027511831315865319824033347379222609117902978188236756445123159503309534698035424416490665457005067730953447197557109473758262481011108300793544979013047272552518109271367564101614398025514106040909509237127989140132668844955529312365999824516335777029568771365967049595803938283501409199987001752257549761811155436978300335296222186484147417390715000180423546716118580238706322957395414122666279619950596432885310433524879402827352307825115351042151330571237213536699912501295685628433083943768972493562081438319948019027367585347622771748481435090425514224100006994674104078665226975411192844645057710122483691754715674699930983312288953133281301401615092590822175080653194618661570498945141821971732062412006276146596637949912111915791719844752051685165776482439969990759389589642150905346422777064934766640635988286146216152661621006744083822748224593500528181121491304653139383473283518068514760039748717852252999629458206242203111843764393862351709173880711007007899850745953338723882332579666972185859721519936746652565442131683235465219781996618978046099318883849170384985572785620324764527181435560484180577579993511575696979485641995561586174913889353357220960671505007747576591011765104800699229933983261447179572871882800307698471037217613060214792876799652140301486773393216709164586230628144452444686873674803542238975860340233517932152960920318565868465751144140963985807043170061080939585882954065077378074637363349299476584857337558075245479594648404005781909214889325447485137369675398527390179144079246550489771433337870329806867846877536818336363266204039948895747205483634032097905523370339394457186799874813123401720888661380044472650266637715296140758067716430201189893687508847659233187156049074467298205074326301912145617843830243926156514309678906211177832161894926638151903344595869980539438193107122027156411683039701888067571587035635537457803026604642415415462097364888384427288335879934594270394941249408387438762906181102912506202171158259807955615747272228652154372077898908993445109431914703822643485925580773911341554240103513780378458785733971088931480170105760628209604717811110367951687404572545077997350103985609801474688231861010004437650411253732510459775454073684006091572138559659419567561799112461995559237196930838559218439043728751341649869387513175786065612155795576073500032185109288050944547904333226882248800495899418960485597508303802629824802476929580549050901480533051745421641052712143770825496974983978620893852355066203281562417083957747720365721591629166973616816857777595394543436385105933656311249879144170691408326939192217002379988553146037219893418569740883666582887624850494118064275272231886508312582835136522456750097475363985336970465041096035145819645568452876595328920023760550848524216379292890612405706561289165354337474121190338441885305251106032427853280048820680784421017834297284612329773227813638976954201559871484927116483597792443579305551154687761225476563418996577115473368119983706105187728802697787823352706503439390259131747657252578403746075457088244381862420684222841346074734934871772014491817025720202908879999910284290704255606033444661966071436532470064711314734019237426806249410560887842144953994405719860294933246301001061280819782505282183129870026655758702948473427631906722076024202826091209666759240184482189706536809533101923114567715487912656705091088247050617715701496560587451003081510806078450378072932797534389772925577299005123164429559608219310523018421395260902900319501052711988549958317770996123162719413135009541297735147061929363521272964324044964790109685433443129208246439542581679580174389844240358861609045725999796175048253252987727079740734516070803751156824732358053078494785814841524721924357111316287539629473410611012999699717616773213703245267566086284739074629657712483968268512815909222943103097768478560233754721689222020377202885925763050592068377586706962449843664542415608028336664205134448527560289400880210717091183308224003970908333316774050221307539873021818548557854649326933098225531461419936955760841565340397806438734197998365433740544530176784486391021098147047376870554643856677150428086091818775383139044731614266186622444694656088484809657811487400313741458708315869022350708307918605185705799378285276003467790266832447586901046439968729049951470328692120063991368865594227617593049148283012395938523565060273485798812860585491045861459743691328611625249351761148156134283642648169961887639166320050583353959495402532366073023472651415593003930845064485144189186122512120851124815696316677972337815411451916061648034939177195305985749924056557386612258502867319602413098447575948598189945018279469065425131084670443118232576815620071972361604831775406129455543514762749194101841247283602289742403098128412046972001929767916800630333084441585312201762506093219980279084186965793219067494315945547428302735086042809182390595397947547270100931018216970665266455483842970434580657573498657863590014988417324087322644432205777025839179404467282238668928705718289537291338153917644631856914403313464594337198755676560960781607970572104419518718642730446642097758473672193670211279250394710724622459127957473318268715785527874169954007900960844863086580403874779453485529245708695596574680968456665023030738199400109857564818935493295861485325000691069802596428534773424398569517227241425124295140239724728111350473692497628029679505269025523260347427113678443338016015140159460357613318170088966096043712594812454592366323215144255804925493427823737529874816382554258445410831468092764989221136926355059453061665825626700780982585678382477590724312915802453080067101024313776663901189829010947559472084335694188156906112110664614228256357023231536281037827676491296337178651703846078589335143483185778332388167376201149932836626535516593877474398240118380885878637102699328886668931913722684169406812062863377240700905796160629729539687713535801673745481673928795362436184854531469361398445252182227020123955178245050567754582051758962312799352392574493318879942269827087550913060408191691770453794443613543661683000686206284039905855173070637953556654969611636466637110565381541789415867312693517589307826964994910882276733675031174083739802936695383502941220755845702254712718277258802913229884981666104760608557888976714364274717090440155245635155131475662273791104399854413118583045475466495943287360615151793887280802611201430587131848916144614103072983980907649258909724031775971074573389434997075574802909215865026436684489015520287895648488379851208535879257549169515661235097757680255267434793890446747538473548446912683884869046724578873366436253582628197585621618712109837700731140232993450507381382932868434218009504206066165538669290062556521870853751111329022428347759830869795164106594864034311073230849123806609845237013198275951766013457211592751570444717804839904466232468340927777830240589923711951347706194578509632360037901471817341826152730089378185352018286067653989589862732780257825651606246200337698679499300164902037040157666386633526193277148884393598451068673803920031453209056097659732823610993342517563397324058650179658171722907330136060686173746460386338459954737634253858481065776500015533181265406886690630924409360973103441025675662484970536528082858640225767682255898543795321948459347949088438864333893939461016228004537292549869773207130987595191020996958274035458671813141776544794195498278731985598120457082851687920940668257160051927272933880532852632903126896156858338046986164358798289884152875403919724020534456487378056697917021779581965378083787127436675518753414222739264623923381279522311548187252874140289571182979138378425748676855243110433483913711099535071332929659372246608492253856086197306425292182682031740413607279569050124311607386639570853350860673145445008092330357738067586070257094926514033718980593583600717674516848753532251551123484966522116429386420240070005699832897926851506956604015138017022317738429238413268979527581172054118136418538621134860698720397836849075843826782700767214708841467950393904065602370116872471671676867371926211905325046778956904672294841624446596548124197320898658115256963044007649971753313184979965124757211516927198847801509491309788321506467297652169063118661690500293565523271452915699148161450025974106114795738419850538256570341007602055381021672539630667102025028886852120847848320888508593984254341340964750593881948534204278246919660573797257679114329169800526796250628883486520825171863422586756043729324407635037199809460286524315161475926192123525503298978159049195356620034140688752605878365042529195945161015897716305897102038642227737407350869399653592131822034908749669560897492325180772616518818048160171757420170919041294216912619501553766374906687284874066498033342851042202605337108903950758636786407283797198986817045253886598549710871978118529340897424834711838006708405264285155585788695780968287478542688679639179388054970305473304198712822501653369334477820790602600659650069041785609361601519502334230355656541374289025096579657548361154749345197671874746111445672929083301935653254727965337417018704008650957949568074694346291764935118778682234758203386177240920497870341305412701397915873857641972114382654141447223338152973979162943466060451239490200084053996037237627236837827726055662823659674958954558084735201412569225519976184260811491849399144793865174744573509892537254519432256130962942040597901413923898008936687857602635976778427045890353525647543624658356517458889982831134256079956054022510040909168922537743381791059825405814455072393687660898434062277515894934529777267106514368529908244425253766531020882061978750142662427880356100111072315089301319247578388875936549615584264411676065014384614984219142335291070021951068067704598472268114755445864074242018086309689263948858471428524167433390753628237668831559304114643006117582927181785689201740756515853507720166359055376372640315161506558328539466610295757175838198044314653863469354967187861859973389494044179101118400347752348990826048026923137337694415841060613020470163264404446111564817487958489285811280015031879727310771460596219595287267417922557733474263269364404478902626923324443728042582609976801691947686121076499643418934783013618673093688320725965959294982720238694669471396698250793706884686163103325005000137756129683865395422498936581620311986450020881221487162164627667851003920872430170465231211785675208150305767849829710492244866413785999573882005339703614915102913340189081471644425336339978480162805681148844820112943300780560812838358233161481344515011146079054204213915193245648562438040863589329786121670666432392623535575735887250110938230136356918380423455505945042965518179817147249025613610962488230657612656547166292217114639810832279766627589462102295535212133649243229319833700785490367223959528616056329861061459884838664277728300509699925989833567206539007359621657029294433368293807689723671826068787588862189472505183237546173782069369737352128856708111942394168701048059523840509283735790028938189021787620961671727995115050056813730561760443239364328923385607611094457169668233792884069370341349036278287846582562977362748194114596148626508865855078848470722848214250961794358219261615966277720257825093522954915555846481555956466168335274283001469398369790402915979888487709481555413380475482829007027697319593952195239600635651778920673807506590014695853100451795024965684627731151419292135388644178466749108231064862178729230688782155326687981985647010852204525769712074700650471554085270611784957668428830494404939047979044991195236235229494371797094691271211499948438236425696143536146208897224494191344971408527100964229093251784389287858073996356411039080241424947717074950956019557359123443484895105862607547759120981004965960310441429250892491322258273926042836067669600161761050335177934282272438611602434124063267267894721756691064228933468932508448143678199093528081732528532691364796589772315000115506574384658964798176483066275203277403441415070848725298669439645592489003105198411939800323733582378801164439463786412923754294967640005553470777549422726392886857908836225136296690106144239771731959550550316086067924635343145225899301590282791132054135769781068299266180534772522975058873196831438017190588568183920867753877221044682076789118743196195567150480700053801182043803544454036434904027161963811615939645564611576538144315320104252946650231243438854353880875915093290761915249493635508400451308490303632145535781275064381049761648221306266733836827433641981805764483750433670224835391593518888907419794886291959076013176888985538635389845349923402232664356927464546224510501503890865482241814146939311323888465877948320150722549343167734909401635936465108043612624219149742083581728640481121723868577877391481191415029828929081240922418572105530758658459266236853613630105872638438193835146107094413947882356917305136738362400309413814580415920525752129985709439209590409037815190412748231912439383653318301665269037147057054909754491312330204346009765733632638998068123861283440202177837203064130663327458181350274020373426193712936766812270798197542392774151698870829773693504674016419505289522289017816688782390735812570341374869184566637503398948744991924159903490389245213148852674321083125459685272704231444891383536673549082507148885737976018012809015411592105092703940529397280685949850279650879660628004508649143478174319416803818818376800010927746859873189492984125794593022717211991890701272559106083550517116732658141120721470739219167088300967703398407187963158673258806883906789714437442419591768845243993188619683247320378439929951868032673472014413494124980495009206633604009687096770980003186017035740236036174477417526670997828959308251626856863413883185724663176890035536139610032309266040220170331417798584439167547947600117427880645186206689544679805420682923769593292240567735076169248572697447623075565547762114807275166547472756839254346415465234885997216136824315409212533067310180571767385186484508087461228655167273388283308878708138099629081138264408506340806595120811688602348129654960575882580334296101537120915958258019629942281686116282888237396754759893013845765761477980817157640888100231952961077667780002003835789674565364970967070046275342737102330678643956883892566463997242292699739380009645254950948090314137301580252652767761966578772678171538517331295468323345860138311601052178716600109800979305028776005573558807841781709185393796058133100214661302496350427225234824661599094169103110024896484002086897279086911598563529579184293263979141041407482310254036459555242283633349290369681679433272584011599477895833716042781318756844734944942854307027871819292202191926966701776561738633776846781593516234039522802664544496725833761700516610168272195528910749718966972426251479698745641982898073296198860591158970332729907787725403039179557632174084467910609425922983405773676324887996622630847138935639582461486446123622450880688478858886685777156333240394995215402506380217828241519498316000728206510205766110467675774170918389519954387588616592705330501081221368893623376743574069761886415950725689428416812468881619505146575812805168905110401041293045242906399188311433259582257609753866480158169287260454338563022532116175810740589836595189676942050017482835261900451268274203642706167472771905981054120724227807990373430817086492326217803800204388184813726041320283471756786857193836947505502068502913743261394766036920636986446791697390777707741031835297030757810582880868724143488804149108525569441693090782457874262762355611869299722290440690582884002410556148957715982013247514384452332218677264509239286973362530631888031616171369474055511298308169281505940387163496497587657401962741579086101842573223752635608015366316296105247307782451377628590986641994844002468050286969927708763051579904450562749293454312557319501761943860778073875061887514733882425649474632177194582393231429361905726138393315086921073879792992541743461183942081623050779201124049611626645118109649814477482599645832559449863457259924352952319879519579097344512495654873410086649561693781366680330063400914986386096718054205735094998713351989401081416427083283375014500096507683973973682567809106328330644999442603353485947432706016485286345149377499337129914715525576306787419543625857175983404090470649779627197457724372125068326283758813461025950757692127895498271207402450168884742163212067717103026538721145737361175801569923498734864144331272432763568356672357426364510774997409212738847114385289324744998703429088407875515422501987188238931068962438412191889144005158926174008366911500259015402450225470483900524959313099644680130507574983126792661171195537817460933311663345018580789658832630702877039858801372040863867053055966342691067506899103335280598713770454719499280613689411145627374716302674544313612112849671164107747870525274041228973816100631959557011076066749216544029511290238168203925211399637217620355641010942355315136205998173363493002557607165025991024805469220658102605754266873227688465537631062325783141403704061911833559085741309030427322776034349809319464800853307742890424839328683240231929952953800037341863450011903457863635522656083813129400188798293626194656709888598979708815178601068907278123621456787683705905405683214672659971349492293477082028290880343219786006655269981245159771925643284064177131843497874701896433526043195025030209774455723907368339406522818097647012580421218793484186050709249494148905529888960912169196439203832306825394761657101367261097594494256652903482867108792560032753169616626405111159345999130798474723188435245538703202688357152021528709865265162516502601873616597756215993392311132391989717645687681476700267759497130168753105401316255116391558242878478819264871524752603956558656623651456309398204096844587105981862816459270568887023825459454102229227693855175684651895497124112292753315127309157888393975498170977126770470591588547979513711764208002313184779274720388214422348070471689648594468740166149482237278280645344106527365617285876251009428691346496579029452205011881054034958796415924891652183449095623613575871192405401784625299421019871358834173553790065441512428614773294405523091662333436480016400681472127158725768796742357961678135948312045720715621878151152181443657479797988738075911087127849018428234506716106020183689060816660450340353757431413019626145528732689497875991236965705836162086845822077483273337572046452596387078331067501716273913961043434609281557895194570007497795859394713062430743960031926094321521025761579549132338006226294377884394223928021002681240391955134622193585922934527141983020380283182776632468534923466410918968135014270002532278146976926514158267821299442390204681858053909053280800140772465267175525571275975593099725113500034823457759538637814956988074157052539052759714386254687145129021829919992471850074487711999324319032947817038055924951501666932154317652623106532218098974375944287026444276091640793622762521291345551167196345221181927076349282836796611301206818953900834594627078588562764793084190310114622564943019375971404605569733257453421252101590800633583548567426271484994364284114222607493479433145415608418309330645273390013043242710250652836459991209858620663896981224651397254051464644536912342249191556140815913936373169988253598523789686033421341627723967670354698154470934214985822282917259158360043450886160921113932044892313081763589389652742885786483056001706678555221072450446558151454056079975918703343343831442302731393295249547130920724313583743173778132584773354742717258122651445155624235334665938146785328282226515227933201403224206745690238179471884439419203775489931953652589134334154174920259888852708932031987028674055064314329047720795874860320885686285628715651934455938100966503917379911308882947431183414347170264911024489747770104737377925315374386277704250606987870178411738824186349843188881302472583773833569341725031974534757369847751879825504757625797490961086892489637430004629148449380036457369032092094013431329352137329079318733310802185064066121908873576571768539477947459654178719414171521084722015732372893279143945638899305207537670743887300109285351022492010905481473671568433348868006115672136193959706789061295822575524520591261978267138790598883934945689290586031577038015718348883466575885894850997360004665234598230255551101940384676911436542552761901930646237136616022493445535190246443477217645334862606862812157624948525094905655258947699404357653656619132273529747346427376111874475445894530205455046862886872590762644891906848140789455094270089743910463185198691763533901532967694096675048168222381411161677695867769567203310555613062467584502030605879058561399613843166268277191828729717022144310617328708696115514354996525344766579042737185293379953218928334545426376461584876581288274966991509644100011924247019717351414348257938791670127738124776888322636506530353097350124512836897531953220412425422767049074383662959031873336657239609836140670877229249150218409501783272643583770065125046626807434592045936308826278929190900594921682458724319841964142565891262834507838391921268600047104070387158614277261628031680487145176553836460432673513184392030088193981912217862641014280361533643623033023197416858014781656053125449655294989331631582448279969198191814055117607091149714140982744958544800146098624698803842187918911769734825859615527366190089946510194074884052408193456979265811515614610109095530846662017108872314699636747483627180752391576238848376463123431106141756171600924452105705980425308532483048598062292917816382545236635168080900174150541022259140382051786093847082186762078097346981675812180347826058452509504781620033198680604055871037331792576234042680183192007210032404737635975348179605036561230254571385698912582511087090669833677578166254266921396735046149601828017263868908632137030388745785849085760691788060395700803760559057836447672045385625052480492229324974094701347091069911290720190930865567773368679867118478523459881179149345577838487045614453060407569851477446098258004626759523425340539861686138176860302411108055878505908136245050179212916290191782738952851107827285557704158768978518958298082147715911689986585938269527773227070421955894014476943059173193311963765372164864989854585352766140878236818522825055661265154029649751716127831922433365933355238448467698885191713881584882440223444842561094454705136281070725023024398851529632462574437264120965967985182843166426802150357267369462690633094314986528353202352079384722991253189692137672801207136150295720440427769805459368300219815861567870090509991016152406077546826596614793809488131581607037351876214482779114551870129991276962830323897395972889160004633226856404990498147548961780388409984004439270875641716456657548765008451359892845280448225849971567673278099935522851906914263825409881481595869115676471850036796104441136200219134533593603435790898729238635135383172557104488330057405740404902015994552206081482911760874306784744426852561102901056165075728462450518773549157277378586953267356269255420829167400197316820944768313813442121532460942937549456848895800867906038564763990488038028406171888462394258093678529117072611114886937399310092949978230996375423516428322801403852221523396140503776709003035969428643937912877507064575115384445001180796555600575447999767286305699127959535100783112253448004078710358292332194787774868417045039163835413130369954656805067627403257383404915392336335442139253466101853004709068985931312251544530638747688222914269708418255764272925303658181999554609308882792933786078467692420973518386665235209435586615444968933637704269930245052283995092625531435038330632013769319279856783903086504354695995001299206275666317004131521212540367281868449973023364370622378879511424687799867688052009223171732977254337957457475201155809534174183799622534170199235898401362787897409575817849832232288562114931340735459808112996318641194504035949654231199751520478630123419166780489560651477368821944894191467184898057177447123359105766213684114853549881384218809852425989383235667085579852506048516594812553473774964002341748289696187917606836106246262673930153767450560663557636680877817611917544608107232827609544520637248715221307075883363312898138908206922246468495146485345825109572819441323694287493899390367284620521866348922572306553978838436995709558367294952404252898260691138331820914640863587791185172723088716890687111122731473255979649474341540104121210926990558742512247304671447297240105852458827248298337791642119519982862044243997727761848686228352319890375526801176837315547199180192913853777719316083561273049481315332817039281944644523159348660954202500096688771380219307212589749284512297339359030548711029096898412051590671727457205088334222041340696058318880191167957010246842592784911775394552254248000098938731374654242810359839224018433185012530135986494175979219489400895052848686977998562788602770074608976435032243176130017398658545102043640912719304728625115121633676198713972337040917344190916591202811043924014915124097676257390881392426941529509474811884890205658003799249311657900880308047654159197080978961598222369141933679115851934219098900395047812116412813545499231216516467402893116359415724106737745982711489852544376522659232258727404131919220238519717916227327996559049473956821567670651447381888549394851660064419656194222520890288336196212578642715305815308717637891452763455267311122907266207394615574730144763181451498024204254981529346421077557880466221151862025234296678178352225988622585763247209146954168392328785487002598560545277201520387816150623095089489768601291272735884905086382760456903259830009434618302731902994985522785567405344554875636945657900338702948780731868299699196888852177169668133421992841012131339689836789205989894839017381631518191146660110875845820311088619404362821649092580835141686473111515202606352060389697970712304546144488832321970260322062517247083840584636694773619907136312236933936849730626358966641952889282520082879145510980980270874792334615965874931124816732097724014050445935922867787134205686641508837137696720626820600370970172953075819396777768329146792668739546859075577135139017978331976160937136124881416261181236362266582938708693779665291383151580288973646276665096818786784423234543630604194059129349964167005393287444315811299414257336266174013461295691459228911673242091488213985682934963387072117948402945865919120318555402908172880760754622663153655812909893127639574085059000715584918319016916094462919561235668888213076697543742917837646188956865074270938876354211731219617176079804989942802714641903582716343433543402559882156085590956781631197052676598670232857067112227076672225594902573102527728176166753702692165589036451684594016649443406331899287383610053177559401126345569968742494078338633582603901670772631086097420518323102023377720474836366427215556389698935066693944135733800759190899699483793561234761115227987448614160164433246432942586871217028684558445728396014973844488077735089353887768990607161981066191192579824914982670581401204605844307074515646453612680302671578314602743627235034073793942510243428741066779171168750587388975636982351518744297275078257929218594067821018372323462681813544408736112097834201596858744416710743964770691844008587181766284406551185503910571096896736158806916271705202772326513053312932409852110576954827400327463027931366002180889144582874353889204671630350564419402937808589403389681951353961093016882965891990488724605072590248264984540054829140298191744297973259485476621719895084178583301076530497932440843855675662210806102197962071332550228631875241721864936794324175622917462557306506088304746977873789312136655947768843934002716823347625062911485507396379173456473757901429570717076481247314852387128733698999720758430246940122164288636163724162439119545594730974241260812497822937787978128928043718148922399878662261212301099541865478218362041214814131469260427406015818641579831425922598678827870154678920383761409762663185113304281857895273013160855120133123990062059591400122285268977239290826070372084572918945484121267723170746494141677221357478813453655318239351269919148265965877071632243052186124803287276537918820965978210241053919540504256485481804415515365856539233153337324753361909499177455834656576963348998042622971316797054959018019288955809962084235601216624728111684957834687143309678231784158893891564422621906604620530931140859861841555505890698459991044277474702854557497415561437663357029347464039525986628616326132414732051794594752031600041115071492319546035955889126863511382644588220029205949584388106684091885672675163639242247415560087676284567975713275907385804954281333722372020991544814651359505736346939506690112183643221541038444677133654937839497564385237508875258831103668675241898314298805591620608870069190470648382290340081138109269333572241488979905292690933699736974100300202652155045498226316874695319694675844554136340403261344067836428618072885982404637886711424747630008030785975334889952787881940602235868111274062744136745423648575711685097967643439496540386242445365191611785575266318214093260968588625497136158900132257273874838325304002834944197759041549097314906575707006457001378453616802246178367417905270038014059298346915750537454196757573983971129980701082797410813142487258421603758396023739428320558456486252310185836638159578509997222755003077756262468278082899974287764443614629204841227606226388903351199166161886609580606012328105533878911763000238851611714211850429231210807520689801379613144516717920736585755569319515982514831584322331360873546189765110586549781237805652892743446307573312939181582437550535573549992744809477738341797858743917294443346232622054827263536083853709535064905829906434984487137260888726679832165752592825536921625019080672249833840255013607357867842559242126766670569451524717550148773670423921474923385284061563260511698633561739057480551942251479636150864167792051743752313191562987528098116575003445982924313599148661969521381092824973628254177969860780304730877970473659565550790299870523636098785924497651115847140299369019994140122368539597140266161713828887464465422138061707313377281099637147638814980188345983381377909096306812352450586790682189218374479422838450997162321802102669673788921531129017197148604977847671640386937801157180306147719158213349174887375991292190020773425403574160186402632733252296406853527414907900985167039550084282885023171471822510151810497126094370792881569284613277937660959638630295849715452089423122501659603662046608372140308817763157374449097882156775393159180614356124548235280479332586380904322988918456210788503633623551703374445367580975007646687029530199180220434677793679458905028126283220356146612990842466440446656656663650846392044757775203295058289909434824986428895119550418387104204791035647099717105589915592217452392862763301730674706582144832072008760952757351975930200914770665750302134434661954330417559019141728428248934723957288747834889551787532145881886456375011859003871852544077749740937235448852240292913625107067765451543806173162639400906818380966485953191377086768659595565164366938169652646115090792870518670856474682371135217038811170406937664387103194097033366262623528720460808606391529517721297538666966581522113065496864015815960040673841152085338260662622823283779025643853901175586237860863019723075562764961270616537974493989669644165302013519898234903472942319493079250918720036772050866949268659653316553222892690440219361274976570697779637138368060678109604643804347109383917575640102507161327156065135994901804174808068408209595296094155153725084661215012419196956783147671668250163174544423037714388286792801751440208871274920892947354991518082572160312892066926859842169817919028559613110412837932343003523715146418932826377818402914738857747143864944644937109550217096174083989445606880821550064943383357696367591480790128532840125215874057111271065973289066310639093359004055277249587723833194534811181919977899722830477964434115829059175543071579906838574440330442333740486611347414024909099067289383253364085606293096139445887780891571984959297083984834470887375043725678386086898282259842420712528605548351470297456708853649166954059847128740679774661439130589418717052771837101867747064537914733898871581143287245555197518836082355303218217610565953607509685162245409180991088591265756334811161883637101862412849646548140558642146139340037673289436634390039807113654595191002786364290115894248343512331882393435941529947485195165790545328546085932132793771057067924816699769960304729874609702322523401331514160762136118420558892581936331663966949004513835412995791130738338649376395690351854290736413470975481320486441265230489429508694755893730056996639369238975821476696672194661343649240456953464234861597411056610203333716893863313530101317513325450457823387321154019950500001475105889057557937468248115005658509287457301261301344544590989052225702280734241134883298244850238101649867734347881604293201584919864482392913814232104581873684430952910014813707778801921305724661397176774272961942653282555077428702034828355471814057444863046883658120519773298091360367444750189677427476670140437270347602918332622498577535710341410423279701691707797860960840573525088423587192603737375340281039748455337856395474676086129900366976275678126258249378913154632176648026054462042421852778995747907989855838096358656516690732450828826262816846531100297859322138190573188569501811146681063360513090020088879238644959185725163444759622270383177312307624104087855010177149078030534992424849026778843474738233625015527005671816239657466268003698322752819470554530599388950091623564984147222043548754444134533479369169186548922254176805059132316999238240089327412785815953851783967753270842041634009706184186682182427697848338571139581264746861384601251146904453982225748882324292941003383195259857395163247150912762128256032140953363717800032933303336278823514674178979017931350858530489946672321481013920212205612919137037664185192678721446280816332661850859033606776687370268460215999724433639878433332559839061684423987812328346336146897418326185573857828993465656733616551369087037086333274299703233316022016227340593194698185379342432196909710482447745096059872616521572296517624207940588308078862132510344337387086236921374451721078599268929304481353520064909325374648062686281949355662146392625555547645398659406015407484600383473592826901926882670913201852184568891292638228256499089952552115837713759767400557018313977092083911303622082959060183856400797650848733937008106372274115090533790529095883056938306663794201099059399988984855513760277085812419781527542812262315079029555360232125499661575697048578808734208842841714556145354423784269229207845101999859417578482000050497620697307541141346125442432536002627779533230490855394772461394578940061106799790057144373571996982368056265972588839041756181734159597686267431554428194891805117327865796045924579306120127884973861546195694120257571660789340519803073820507593349272139916487659287079670137852428048165202524309022719751181959187799322656339069431041031610942298772256745752332799465325912019843819700012529681798937578006664211128769252181728648202652898437712058346712156544711812674906229889831459625400319643363754216904769371809984549039039901862340831231851643402326579538698854246626780022641636309172868485757132225030943244766908962956257690047450130122863903897148097733242130367448179755231108734372150002813508762912804837496984244050853949964736471654272567258877144283758458242805908555585117343160979980298759681466681121060131930683949597218335444267655323116933343061768235075196820850892205814120521136887206736098720264295731284141033360128211380790643180555920182326349335184194394433419543427324843878576367852690560394623316043729046895536922406948723367104540683846699686532539173560545131844713729829777361389171090999543763197034498179788901236863364917893022302393001078688236218349353807650209509886870432245900587884945064922610535519642153233477802662066852046161731621702408127262507263051916221391244519856629324474536601275507560042553013441813454706563313558232816594189733272724075281115373300943887039745388610631611655937831315930589460868326610715452504629005183499693573319375028129622459152957213845690414709266777598353334976063700968767715251357412344434690229178493390104899899485266443570354078891020037314283643501371157492086947008134702177766372122712442253761016131303601674591111642653725666200652029120945899485240566587624303787432029864556748535504014543880976950909165158404825255008657194655914194540995330185914839298482426345137176862149180948012460921211539620495786608311016401249412625868037659039061452843710919470582512125285470345082694734914791439502392893744404048565496682936202877738518606925015549638874824520109948477962811561798880180166850307877629410366755572054028914716912274794169073279269955737931225248724486828664429419613590397744429056549888559242093414891023821238511575075279777614194461610990004560587966808781860289352543706787082413470063220083306403331007132943159526428779897101578299552244963386834061466382074414787332673968772172147693706080743158649871790513125210193814141275066770447414939098862460648634996593938419092042606644424554101892497469207433992825034669548797779431187941672765743993667517149843466649605816793528177548386270072973080000946416840245593620962470921245132299399342140748967241981495908876170679488556013028750826464449764169198709837707019655867380067299572802170105773984149175565613853843777067754210708358881447738905306746780943210223108256257747289251738558781045737528288662823517154549427749429807727518716532291199152229368023393134048611967943274105008317722222527045263053702533115904677246440346972804349118294238956861977899314005941521982533292303330621329542292674970248679663805826014286286592900264484452463950265271899063420100657686382652222214264777530795120344586941665926889093628299606188268320395921775684716414681576501394846834140204670024899148975197414539631344213031560717585669966673928058951655354203398327333647164609587367338231516066479981348785928279295258823059381571967485457317987363125829018240242519529297051157573223511586540873587280506462771173518034114702422129620397420611827472008871619925973933227169019133229779407320480143934198772950457161076030311536226483538773474069637312768858423052337141185658057017742213625432179268676514070969859977693400185694406248063214117744477546293798021486909789556243007489386470692098551990936066856903955256531629574950447192929911220793795002077974909131780370729995871252265479311766211581302487526205675367567974508762863778245113728113181059416960634378824884091382224376503056834539519075780405067308773764504551541941278048235224046875075187082787177532285736655497420889666365215276552767493638711192752616732648101904217899109802057118826771063478537867360076855800821778284281827318012101629432935438964491826437188754749139345649286176220638890328523707993833062467674163672487065778722024356580178305539470595942555787385270754158486399150654247893782816965695069000698059152658778177209813337137833891522818806030638255566610823702186640804294400626064594444786770530643649054206618627382840100113300331839966461078372559271009972576731664314832991588245564851006559238252169867187164152963137207612832011026219408100205027972582763220918470772170901401137561017520598404551725655711524380240922371469827417072899234270612294692045742508011081445065987085307059131974076916388246968593715095177140809084860209281240279754093268258223840959347949004381353986834665188342006254344297363831558512866859417484410385943067155540713921514232384692022689935318394933124287356225383450574422368549921369344652513840025358981899399695488124130171439752541889566087210245525565172458280804036341333909986256854969112338252303306753322718526139127092729016796194504688485802560001849933177971586479762067788882273802880566538670673402213769850647337716009703399727340910426954705820116029513791676600796162597408976834094761572091343212551176144282731259076840708710969296794067860707999035121861081717786262385203782423397207006976160885702499179454184968896634846394922275878050239201654693782517068068009310398035488361916929944091128041092804665295117313410861386938377346624323241516472842738732274169296969950672605574339005821790555418872913074866046870164863480348885468224362326371677026402006701634370352654561062414315748729377188887615835624443099867453210398140565442338898160902877681632674793894331831691784796967195744134448296606196461596775867678089552345718500205018343867114977879657384091352786066886386435872046422221842796083944689208719989279126269733170041402970337820145801246808593747339329182774579950106179838682570827052442489122357713130425980519196253907492532211659145853994186612497041262290305070362876422000927518184411624236389324496568991737910486311165857819007087775184764184680851825491844419130225277158605788634248837401649021835576368436259630085892809749130791007076272386928871076994575810871612266552798690180236967004690503851958857227157392756014329366376073851378721666108441280496548940994582676940776397012893523965368194760626893612037105274094001315859515445938784680549859639423812286261399505373846018754448985009249503409634411178317403019812601693797290946357086450635833531850010536896431366220162546845864386110435441721916387415467290522965243705788831378413950493671796978094456731835373130595286389148185658452889778166288837871250028340359500924183165544609018879971730886806279165571439709761146224995779497301535098759509356359979920560034420928576906220260811826671948624815454116541321589210694901742406009928445036170853101054781276307736119779931717013086442124259118335421425802853174044942948758474365000051594976423381117080777063153275497218881518392187156681780112517879252551176666591013208102653556983840222353121809790634210383323425657725261496838847303088643966794108159031668077574484026201454162693197837880399290364906033290103171913713061671068692418696532219729145470885322427700772939237419346621543345087286949247566242083670543129656197891663595022206966878717131038110665163602344235982681678156873966219837212482766515600689373295384384782210304644187384162744740562804813883173246293637635889225724144958378159580733551931883887140040789154303320806861519954346851565680047963597114994641099159634555095966134247488956677803853115790086008529386530403812374386250798992918924725673443510935851777610605065714849706939657731070394327963146126760990188421494922210914268133812559978683956710594304838606658592872746134816112927786856747348514345447449982476605835622146330047351253862954861897055929917317751554879065789209047880141357961971344795673262445709631844184835506142133764722676414695631228173151522881665848648000172448933405459497740632001363879501436567835358809818731010195255755558407216888401406891885533373542976458168788934434725971131877361086213386731522535929169731041078861098690317952672877730257199575912696315746476493141493106365069897051860374292356613179538632476255074267020248843359199432163612782072797682479762236679972179614995263839447734455613034601478075501009787657921938366741634529105160326699143097310736559035039683540852398787793894561063082318383872708042974309951172453612546291007020703854562975482679205047346745321734748993094925727743154369766897488613736086699995067261304579088790586560899017958969726162779710276317489008222896020175605334905982542325919026617246675602375114894638409656968436804312842441398019275996239058647146948649650006732301690061953056555949782140596377815738709598036992184766678066374039693471030718185756963024897719811583695386686917747182197758579654903512975469069951475102076150880356965880211734866687369801115909655748934224243967942065641957067600345278121850728821337546342521277734961834316248056433681922259754269387850355589681587893021520657854436485074722025350971025924497303116141389797266382562291805029398046654065394814498364513476744189594660421371236296034999923105265896313421372201521230695161686892492074506217489674556464413527291680088134061475176908225025438410767596929915757368619244009442071895012748459757868258553988502572333902677146022594084853549298158988425410910926319798693743421257252816046560056574475587103409751238791558389308562153038749401931401738119761279670995359096087571816627841347116517691906603751208899490853969072610607790122108553905968150683554525536969634442055486846712053196255475781716035660871426683846245100980244914100671720279506783875294586883741399598643606409786639533786754790668900075857298066127970918487610818251545155995600175718179025700854905015037746389568770661104505150919186007423373990610988914747111568578764997278804751106122760228912259450875193110224535472632459514149422477820216777204635257442609262203642872732855132181931976610698220490794672204300802798917410909508061433375406402187830264801533778276400128781383165604573654827259402356567101941022305385182410514895692232685593971049736902993428547000214592672393716896276205384346069481373148209225995371359850168358757828377695137025825280952302805273345948843879334169582647534131584631160892794917782969045551033728423900719471091419357294538094996252972743961072048833898867486385384860367686001383637265249969476255717763253729544368482687180888141323356774677055769316721734853445791237255813203038074585272514430802060656005940798463395500856413561347496690331127669545250044532644564773491678617388858850023729746937486824162977057296443792743940566500289459031318995689826338571167804358217484790144991468424410077408592347621500585561067358574169944148727551353581852668494996914797243316093362732055615566682887521676063286426120588480854652817142754287756806201068158933198997054267707437064493148059055346874119394108615187922122220393885382403731586298985995473759138817750317225271710562536404932041899554892106616848941987408421304666344740839834368808040584566117151471503473718886163348415572741436133784739772808813658136140924820007791029532717021463289450477534575059336316034965694046922630186102055021710317749981384916413352011964836570577008983109617620551978042665320258141262556439501770413824715307525355146504981133178781139601023431878706369221023663005108546013222217035355656854634208490430123791042453239879065761677659818653536959695586812252390828836669010006771285063566425682509069270260688817633003085675383837653306883515487943015263793441565583090688148255221638244725288261041938325055066422461983405502121209891976866760365448425104705961569798919397495449586659037856411617512253128152448976984846586186125865092596446228311791446536722316848221153310511794549478479785599799617441755137679368286940152784946724049794293536045481989189852130159238841021554785527225248512801829637851658001687483936823370073680815011969411164903422813109094244912555779582342344555132325483700393406587269524802888121446432608220442949303186984535938920572803655255481025931251579625708803899582714362535660215876022706960102318049409799419109362407701862253694153950237379625682072585930635923350729372180372237159484650281570485331463319864231474218408360572819852466078734093132423780980840424039227175891868867575290583612354528462582216745666495458638733407813012339000020999818302752763692180148983053764839837356009021160897186924637243067183162849079632812884411448346881532708461268561698750380067489767787459286105712488771929964085172361693244268218190091614608539260250948619107178580266640107265822811300827325951510315629350584524736470235722746083979959797339593701946829697743580599326710467735607616402242733511188856052897852542936420145217817776784041871507068215290456763391256083211686504256179255026268512793944664143195110991985922591813981503194396996888925342781851731890620713406950905132695190547787225340378377875603921605924959081164744528499992114469419097402101407381375356093713060972950096896108727508512753054133245145401838742206335633114918302729170732587110457314230026565239114675218355222204545287562900421269125471557160526373937500971686214840680400235940056562274143962865558151626001198277115188957587750342752145398164730408651739033288325581691720704897707454404792181890260959479757452390527161042392540940849363053422215921671269412831514783496640221554831857717438833342687920565685753506953538633487118482754552283233811707218242683641226174165808255494547825235348241972628568566410358361193388548045130207447664252143657553141815393158845733832948757023911857011398861718854278968809317576352760938057091818617650766579676158713633629860670342473617770277509918311320919001763382504479961317977063760515367159607554266584134614155304411675159172332866803858725094776391339281392533541980993215086558872656189569473458672037059817573204976241721596220358200088969571552118642736448835102939402534094069561541862848796472333028549360960645907331837216195160704487325932282251462747166588510284645366234005476496138414331799426140842296514900882087620024988413870217387328967979183679766455537028361614807827347464546192589703362776235585136220610675329125374104144811757777796415630395800464327992450701271223972389636726967782098134596854251797689375674825494730785136876899439131013917560323696530416860883667986331837822345372416193628618760263281131741551529672838376241947944657954891401457432114624920022454603862624971244957573465570086617754084928955138891592476320107823754399268135050470566006184533679908058183261260775641935259023399617554338709083528391583017391612570320817052147110670222112687370259224417005310398725934008752670156570568159978413001305173348766767747377141318464896055114271595428761316531843162032293847264799602128385405646183601088821565370428917694456801285081845414991269985192896651005249516295960346832875263063718700372938051017505641599197424756408709335152770274050997904015750328674830357378111036564697129003434407785015278123627900143240991390805363145972891510680492137908417865152709946734662053396926301172417532986782036009747319563314201139626081693243299259880402539198884734666294683029144950618627297815289364279071139126311617655744153002253751274138812272431275286183113863892953589077724290636005771353423878051844798378659053760391187020607386228597917968290491966495128600223109974735167120665136077190553243463857345420274659474269523571874257553772641884900002849032797730036346109742133958588017964403942205977967185085649595489372141299571530798322126133597202071480017145021604647849227851462609477531495632079787461479811791373645356872506674072605543745579453330410614562282861273450037808578097148806292886801274996160768686056071885406974063481459870499239025603211752205814982953277138089945400081311499794635837132560078439981256151453848847659667884114025567647356006490879093468567156816018797422106534556993664620905855434992497399669566356142278440758044288532123988473483984982233499740686102853578876063173845593658015141118394268633721632280728210503565671291689591477066771647933150556820727732861546126884259393842728377631386223131744381219148918770292662850402225161352281990696649084744021050355181272890230413221256705446916605465082996616810428856393998437985878220904285705281335199742924893169913241636826292000894116408731271167079504816611260292002687367049212038637669251418537500199370245407737139537998522609313290701563410993171849393706609085754345289138894679458298701900672251638295412640784347388704939262921073106078954909341132220297721744132146323251042710201758167260895106901560586499252556951493577307019906554885527583181190692115134933831108839866068568208382842691578777712319888441578989725945748962460854849616589898345437048622073007899609591301158486538173325038822306221963700635638727835799449927625819226730108521272806867824998555194776342155193692043605057626867669403892828938445339401801935891989974983434747673172821526576413949043944551602875197614388369237389771917854714309073331974628326248456249104781877510180567110203461999144899617440308133367875446014620011861150307636825002348860506016404450027392077461519271984309872493554043863038675073225159670376834673380268500002740899124867014016059220375329925908444686940746879121203433003702127173958951361668170606779063616052027150383514200473456902556568231205308117499019821032146350805565565401298458253033562862725083340907048962968581697156062809029521985555040560430885276313906203878707696256500325028393310095839187873444844281627823288315830870358847401878396967270386741871032597723570057059547548362081216125926490684093008436454853261683352416097396446441688022136165597161135492954621751895273719739270875076132795248563652892404124200627090768291828954414736203232607006308686330389303947459611278446047301373832479428047061167884789593443414740350468749092459444320831655225075180922954226898814769757212187993141460118757289780074965703154607674974653133822622248227104711323241765189179822894327731322638622899687986522014970145847875168444551732545331923043012435630202259480781590458366526212376081265724125443291020099047992753680962638161092905634515526629660510357073595673477083634264039280367532369705632440115217049720349186316668901980930009612910296733395975615484691067673509032321842154482805043344212606782270514173292676305356973974609954369950377688464290580961308923418394843044991163287974314096959428016898125854504067056246075884403750745639452281435559115287489380030072016147718107815619577399013238417299006024543043541140052298038832018182548376183041855076943888213479211694829718070902288089248145515402647240515868698781112358447643790594493530354017006930989407674290270468401434191340100647058965824310375476779679202717303364813854264527576639114703869182281426464669706560156785949213218411623683839082476818644159169839468618687291638493967811723223387323174491810151431169623709093929503370921277178349959588585669657882828104668128836807763131171777299027270914556446716368890420357182311651095479546524814412718544308686992810447850761354144083380314078135375248650822368145796756395260565992826367537342751833280174609305698529335539880547893543516988977481973335871351297156255434917773773423332146224195779199386223645880596599599618563285136280103341518158446568511903989340818764541154655982008844676016183884876599860817376500167266672464129622941531397038875623838793559320385605992068690971258254196697310618616493854833853823711737022162874484388132509670758125044413218089714218932361114140912904696853860915827467346695763401328731953359986756731461628658631841292097682055881089795302442795188870109427243486421200513592301077074850838818678816305036932252874051735832284819362012627119487022226672340086709981987774206829555167147742297992158684518961989758392967008903484020050661908274252722814594655985669918868449151586528773278909762729333561065651846603631461151325097357730699532027065504322184298012127899890148084795626260385229251095605929231982117118635307126774151003308203971091501172954345079218347753533197447502265539949915000434877792670092168542357941068993571141619535568196163418322665606892005976169764756882198707940202096664364185124708342221474428547569158426668705219177189541763477583067329488593336333060931818271725296780923354073359445041800833632318655906969709187608005779265384804657043083932043795897293009961949663239789938871385960083539669385443547327777112908241821208402110282234422123840205998839421176214301803964507855304706883456682691323121521891585914714599596199593638670907930072658353846961964035921423206220254837827983376476275043852561814906884707636939468182631744857189218503591666843790301677219489248527801328470992675634828729829413478099109268008728145904674071612255919810149058614095455980173116659317201563986668872945539529175982994675696263153830109367693574686787563398315643699727122453580969257120877073171422465291414402373956809960339137331764483057625428489195530863367959017386790693940845434057197714114118292641023761303719568714180318843910436113742462437291356678971390918422225517101707688528473521805776697145189124180889734895759482543282487234509039018398699686983298557934813952280816218263993544253381421348654816955226898075971861691823420934365553103528357117867151196030563686786553903199616652133575290777043367758996946912804809128246060437628420302672312320335491356728731065270974506427218571165102353373473427932519914463352152321283452476275950978037899523715073606077952096751974757480453247530193264581991968053833086388650766802649564928753155809014762359263549963249907423742551836595119003411726567837894262532659328671366252475632040237447400843489189541643072259800417427152903377905561358104451990860612718227061098122227194967411475514747998807130915965661495462240166228969508491610082153746740399610397051069006848025490097339130380984418075982909325684554673537660015839155456445112631180528591246531620610850021523411739316579877422954235796939766329187714616627984429854274423106216355665062885223515864886754705874256078133917247716147529443545197360572018955139502130800049473677319806873078293829300596510535612528025697332274665122299866447762971133482011320938183690907595879087216926563219047682749699829103435630891816796450420278853792155546755289271787400198060243984052664862560444728833223864550976978205482587972023581053943528026429704581239568985323769925649775109190050569044773333224071898426127931496303345363416272474359515042695305288990617431107102266280922617133363215322912249423673365657397357708966906913456616922577598876456980051098346508270908248764643429729295583766391571340107075446966735415260384022631598141624307121342841371478991891671633796829229644186732188924907528751462065234607092237114784873797477197020680907781315939498262381661424405586612062464346500281535832222115054313475723161295492619480977914246061710199426899936476328278725391987450995412733338676467364035342252664074600562891404620952660658216125429823442844124750389658674125133433767406564589382068260755795863151337519605051349774897612839681718166400823577050892149917298923680872929771277604849337250365483418456699409239234827367287134832882112627545571872708723453373551909014659719189494867856859510767411349420471662532558069839529681339077687684817858707357644517934159734885060483960167052232517218614803562319942978323080873810568885881465194688586541467245893148234015279630118628058965339249505148529307470653024141150139919352840432343005436094595227796457879465720697422341104895147309623141698443570759528687114564412153230380394542196361341465841339869246690815086598896037201018116125817145876215044015877036684694576164129342335593907033426227165315837773132804600835075731675881722551405366566031163899280729798167516401799424856923442994685274476519108631533726704787912015542233590746484136953826678467291759466116435607023361183687073607561676873239661088720813309665027972621408743861865159661356331427496755545779573002151027924248954693275438411089528415989444802461660511412335838115384360491653862097754340217071868420813547676405752193026944068199458908201344981609777085827698112134318457713521686109585895318208927721732382902239341018600156378258101926966938120588182220828700854220260978852791942928075993511725175342687982822700412942390165513544455711296725342319173059883362693983486976636271095178671222959007531418847833691751166877988871699301180485422789773776824327224482994169963582970816614504656065804388168917621798933185248950415933478432553504310026067019014551396635888958103957007788654445642973071639976362572304595147604843663453834093313862233448822751773382269395601022416379773338696484720359826161313307505525976487663480369203845175742680273986916317007146920869500095649801255981655422818113098032481831286084396905354276848527835746595387104682797575646192254501084759820871480475640836839649194070638598936527543131061048719131947591894811214631633165996131230660750256865907930599352521077549378674758006247652484342133152076708535866337074243199919534873802318365248881478065129197400912087177028153200592304888218417378191046529617190134605388385450570789429278490092273749099122293716814556222316632336817524569340805668798638556297391103337750989124666403611992573609454489635448557893475216186929369502753708293132242670916736407382196096056053859524042329314731997548986670097080339843772424529209258912171045396135691600213916720783539747199958288998349511632948442610078624619667881269641109701675214546776081665328213529549079912386197181895124764749613901084056850495621477471904600015006637635396041383720422855695448269945265640028431850817479871916071741132876130658817411847363441168045960472943647494798366878595248593299341960559751359143057541162059333310077782233009352417838130513869382047153261966277472949105649228955742200465734837288060578108871347290272827487342350351595516719717144658092469875812799127895094023978165224708303729847859635064285307548461172228772037418524148885223403227804497810971903150927652892941595806842583270148231973529127224652971431171780902962052276078163061848850084410879407087851030144982609510899497536042770472929484016911392204243144767244246124067821706457408911667466765023319360520442427646662316942727213195597309698963723973526744614668300911109214138298037337833822086296128912358948550529970985665098782667423189697884037802282613263399896531393130285448429243017755094649212838262468894681019201693659501368042629590652919250415006518418622801978361417797480802827952327183130429458278880083022209653625322271086109833175391706560736841086959505642687195504351973725836041933008219655595575963344270379071263014287261263521787947899479262714339907630855966394170621105413758168803316930552090844590589013138995316764469718135463051785597115795338210460481250327062799094329347429700289524226582409055110526659583829667714332248020213170370516453894083600574047719284458761195733737083268984913290747516813376723148762256073243870540786998693299579069469653976015379722331299748998357564653758721751808698886190668874065094251622008589269300941773941167133299712862209351085815713470361475469247031617551264966079987587496338667119252359561463462410072348621157276246592878565177657694976958278725232410206080760695115230814808504909949231773290877694003007663086251352322148139479465746719063439814110039609316902585421330337797259817108784433717356581737096083052645085735541866101903044717079484728584914977359178547479540549677350797597198604536921660817523602520474827079178452750409761743030932329612738920771856098212400461418374775988419435081334494258556739021267134300014547377736062023931085808879353170706381023885691821326738493469491465975390864963184490123245364497613057811468502983815092197440423822668745566867386126694561465646529659699024909302637679188201448539852873201597430454795784597608928808583899417983318802825710955186876368960732076328894710084446777510423507726269509740221459736302041034693438962597468923693105191210574168919804930258555114737760103153649852142329285605280097813615364732299329526119493190912012161415202891286469369500674701054932681697320827249813190668581115922778173561714649477801824765034551345184493400366628820174496723389441987412031812117137700940127035317239172287226706949210547650562352951955038708575307157915447756441684350167056492947948895461004176606599002769441195059499900412380359081229218682601771191473712409028552683591665825640307549608445726282312625726999058414780522482609099307316768274980920510990110091545758215013374533885437167451561717518273151288891194048641965009988146208994970057905151196941032794756057125233631883028938051181782191508209446170190820468289814494511408517163170098092351344648566754657728249000715925293770056768709167998156735763425170978294864146762478400300604208000230373164311776650970190833758237439617976419325371285932729766471022376173956224371238993047385249020596934167427717603282718479520035155202822601993890547053179417261413644330781050640290647654842050460237316832900705838033661956608920438787900564395700731291105477643804832812174283139773885468234379133379202680520893773129728501283941055801587283898054966364639561517213635028232637271330546928613490931377145204146895564750974526004905110915070342669172598591361409548026225040672022863234966798248434893395477797043548256395824056680018644978600165058232684164670826691287598892959625163387003444630015781455489455046755687161418940885466352399533150620516035938004733935477464748842412955320632686892601177619342051344578851645874404799640671720696321644052548687284404625218263980399544913816384250089355613107852337914079633276876650794292303938993792686554753373952808813383575953210865558058855223498522375408382590669914539201730480244399501217082798173555182884783747993685840143059437506083372095656455373897719213313279564690606861725145120006898746992867397825590010449422423288538424539839763418337291591899942491576248950572973642486093404032560224761641772634796661082660696060779791547725958416251401425315264017038280940460685107836898596644621712849091885155723277728851528218194407115046004952502346383452187529135777420249895269413561153483481232405881868128576338283915087752038284394555170431489738831693209853817832126356012742902526880065340162643762351992577950474676451847736221766142104037396406033486780677628310586230605170081290125981591782054601704821314393754026319702374263901119047455447294010057932630293076359468529480017442256909387922002269910059355674872587419770178672142438379970988628770957872919568215605493214622430206917468900933445674935527256119754268352241353166602444214587846695544844175981940603776992965119834695966599618942312340245770305372636465319319201025225547221778702822965366184405473044754854394623925935616865664953875400424364159347313938713145876125549485952714403880244080180692457580151522630870794899020307496442619669425758508453953839090736816188319248929790608344255764327414723661218020324454411766405061119687093491204914660233578655607602824690993245780715933256728612312312188128635025279503248617848729006371253863474886951363055507431312577578840062139807466706116796238160953252346408860865945210782344478608546281843117406169690270339634939007189178161953550215830251456366959077993697680405713089982812437928895365210399941589351943019612553395237309551011994023156663786094964124475469267766942859185577770113120796063926698956973877491037931593703212628644363217217555943292268372553652308336072012903965897771581604758072638332924035846520391473351895579134609972169615243840414059529060166793132186853350460555314899239527691543882769204914839227302435077991314744685420363696109543021739539799185178947261631982743007283708950462984638399132676911110904161933735790576840294755155396062049398633496640295467921707074764933520412266523194909715060164192097646239660354291496196357966061863377807689487823056685676976054092483823581253362380905005161251366833205295643568577052906107327244736625641170276012876023763347230754972665197742990748924002532762157228153335250855733568444902610174726925460525588519360676307492415982474864809834753783727380611773202729561542917541872183301446943368292247527415394771181723734592360116890684414572155435512958603823579558868859229030731523504041410429287641666292769185388861390879754787439753477418137115421305233927372331528719374857153466413506535066135048397380881159252100671743673191397440044351846487404406924359658677422770804209004612528966345468153376034118255554210926912831831154784297142942504075109550622606038045849404478233235784902750033238202730972262228504658647577656816505133628190642050433632434193196945447792071881090270331753831933124932078454648873382694109604841068987913023689785077151612539284326884109334231167650480326230253415510780144988874282788675710743903370100878865314083188767777913613267457724995410633229528624032130723259297915230637391527242345358942925479408800044026007734582605421505601328855695439406886022637395794601428248506886296189396281983389565174515576349687613544791747692797773484864019590354361983355543605384380656440412817704127296630479643667748264115448621076607269524943715762458664972022020753279264439022973606536784133933398341844265913328815835767809926043898090688205507454975717264901077093786750235753089136701167840235596636185339121973882341863021590123328999915691255439884328642871310969379650838912833368380658079881336560922325516863693711901371954206821363343648522097512119800006873737656068326790634238274192630741956729218443522743961040530364468629889253922066268536140370568012227070389854672246522639341705053191801052082498041191939217287529846639575183542051949551383834123806973209113808491471667255261442661792720624480877047785569683825163120604549391853825909576394930305091365246923439191025491776055059672367069615300207700956374893356840228522424864593571991671620275020113265533513765871132250755995549116722920952141888858764918366304027704941782997753379723924859602602396861499171580235641878910054700715519458723923403104519182468598425172022799091771279501600493966566604717557404856531517305633293667138366947607400606313091203401673054995399907874827966649153090632278783264839027831377797515661932338216061663946271108546675352521426149837097885778426316026229477292411135671559242114468778172076112045069553944542579043717733229253024494152759675718820926525733462851602783292774443779111381945888527975347449775683310469244997685908144203568752210521145726914964885590443114750098406151879248750157571921446293522596246204555963414727339019709455333735977537721287311918755826693573507402295133037262451238733076956146459734987104904839412347055683445870369830012260902933635801859939360324602009126838239320490205906071366166268550351088124189365194807526055691474029085622649598941362926309372511052605753912315857413174246662060876603027473820795845053211054499250646983460519022277146058552709464881766370672734133235845182234403399178515334922274946543163790829735518439644919711606265601840956510772286314531196892168750025360337548746012181435994978925737070520853851179970852175764827210761265264214021997656977360203749646834498162950253130565352511702484055206695008561711551924597103026667996324253557814014374727065205845135602169355499879729828684218767748442475527546545864556969955227437825386313320230177948338382278391068967954095633265879609509485045496794669239293464673595663669294977827203047866179129376437374750377455892573246703450376627397411389976019347691346996603587020154385497053712068117286617424265932671366808019836169303689351703041589119761098319487093416581551099881052076230977151003692707705205509837082466771905859988325466259364654016173131153897343013249467355555078333500729356056702253578968048781114208908368010654128239329087546998284247689482209316057207933297763412119736474888611221139197851361827792387861794620940831184995728690487878091109826095675784434183521656701236103143395575255623164755636216432943534198849398330724373057092063696582324161965497489974892238373454047132208247912870988040578071641835564239944702246666070021015975821663200412221863589312903255548726728475917316760921967286136655740969662542166295855262495286612064417805044465735328871218850077152570724930447758475894273226809116907723564112172658638501774404545965980065982701322548300127075805352536742060169665092221887487883510165560625242718111214857159937310093490264250740378345318428975078314444569155434317901586142267119949120868453624097582876528577337049295143500175269443947446821966538812075629797628272002039248069647323218297047644900244076962253917969733030489900907916121901447117114957685188445340168438246762489743460523777902862821912247583237013103533687734135564712478067249171590695723071230188577386383094993799565993597169923037637466555661476717833513939887531412360208866923965286423694319609363978860694812291215632146581241618683544288872841249797670690370900721309593546136216728082344575880328406977815154247340480743037243468653928901129612711643357500871055173719943772179275593021467500104297683852937894975999633723141694077238605044341036673876052183917764308592761443785645457937904884482483010193157780159771609779292794363802068875171383483978496065287754044501730079453605557197063071894796845308356457487812234517594018437890429173478701737696801543937546335537567435151867456108806497305821485576748852994247926825062206642438425840829351635759818253227051528709450663659753940113230860465854950864967107757663622411701889543774781377604749371357316070277895859120281340978961201039280947707379716738813696236132251975384032256956463822105833655343788080137424524353847718550663454399305687011774435566281653668795571661198060067267708406307838924827225707371324084398035434628532583672450674093991357554250220218084709874395863867305919570274592703817282797998969459780932444284606277695045503852847292100142656688623807271276975291318517817286789694262466155344909938980981816061798965440069421785599130342044382498395916728162416292043935560417032908024113320047607398172544896686275480923691720386914253257748980784567885899569509836609904932539625036171411303540713965527990356481587637728629522787491044327072507824666001752137879620164624924147653496407479031518485293024253821925371804457257530563622996238419669336839141436952043335282130628686767566421788339082266394229220592082960480496312350971858270585840502439885870020019028880525163276506635959074882428338840061032213456448020711188326561121859335863102845131632722845302973437303404547372353828852218031124498641606525606004066023280032186009901443834445880407277864970699851599011677052789240969759223642895456237445789780670476330373297350875204082251702308480357905536357324954290843620160295779459275746985181011024555503843722166819879959121430793067569861730044460302820991049420957314042376857350717839901091364755939426614355039838811677269485706215661523846372355500056499847006066517076778486815937253097299509929687940481891517474178845539901535854910813394980702981613257099877140830299471260523696845454624461081564909832275139891269833696683822635957105066666002699930539754776338518986430590987531752284112647514101453094595076364672453047442296806909105998790344267166429961170222193139543803865222266224480234265517324063437080069969803190118476096970996006411034741267676615172514217645498806195384594142504214664385053865631949587831507416269046210631453500420298866882086811024364808245102574800067889676990142926783245311375661038515636809695947511376806615472342168406892538842582294593045910916924805242270592113305545417393331792309321723965397484245490571017173905796849723866104020321945683439926900312949016601246007937124046322004881501600634214710565784212191058232319524943874828682438159284044544821605685225655989412586454524517861987090437754802267087367171196361999470583247442262919225924712702644583856110371557083699993087867345891431560933513143143979781946633904450688299940926422221622412410733649394997014019723593439687063245377132601641497917810691415007597571699959268285688179086796408310356663672429061051558352394572159706514616158698391667900950986444507113253672880970862189370757402862713414084974159482494878652534922214826537737722944921513692320358662599571708606548443132518132235264552239342976235333456763935383815123407382327522392477376296593431475555885065574521843956687418061627629234321305958758296550191546136737691439448894873763065653408934104612391603622895292653156946081142810209460006395104409418495634603278369801685367181210088541699798331867942405018271482976982861621445958958937058842127936770731581412453105502978441364595784551531703074746483695152101763277612038465146179438017050805223393082817482000830065249603142339667166205765361584763244560219839126184527924529630637903825070631769137699744597462749352489704637762357789360941846896276433402715731194950762562391713594964480290356511163146048181984929371749432650267433838482515582784876390607194750105352163634359861557388903172623822065303487650082479681410229724622103786534162362578376564806227264094613535812379610989832101171813229129106128561988582204522466587823732478818225081282446068553797660189964409662421570270128182313907635518297623694395097661649453793947467090644855946596691486242057204673649574527706069952596359651848579347271641307794129057439734227332652549514429999406651014050549364814020719952178322203420416886319424798613573189537976011639037237607532883479672483949049433046190547691940888220228510465580102344996876572805157915779366845427386185036273715102363242514387521053745322598234775275721947126711504520165926458330913957471033796192285306703164928851376120582686061110998690722472888263470676152587371195066898535195815717655054315976000546130449704749168715905778097436789911767168468629418191641466974061524744960173269142907263888151241207376267420726015189842809264256710629641637836191801455585634156042133985812281627164738407647029515472666983834698552221641596593259160496752350530650647469597875694775963834201413589202947953619942026830891498847938573447903916731032953765077884087961375371993882985048520275573662422236499025255016545997005858153694815868837697846727767000239907788054620264369632414460108464321493890908056795339926795616637496405833199206739819802403761742266962549816059470850003607049730348682980231145381923490529867955327513186395852200985064159140378035077073390317183678740841494215099994158127719109531722649216868571021182077285458957661419446938749847343932629278098779185733628107609312447479202050546889217020772478316920636115098333732071255119079798238584503787597939485455473826125614541003147272344442014011533321491603166754892265723661398759989773400849869431469857986933259847724192885598122450071423998248954397131111723843761331557382480284070341248638834281203204063648708407364602194734592664186879501822269204581316972900629554828011145872278541016865964625759157990483027206463948013304343827432680548928819139859305462232187370677306352810834536053988262549261830701422117305494390308599091900085562671426500670289018316789677250813039665388301595332621332699579496975749156466072197864082947313998964245499965141063887324161888585506863641518839018229268960369269398325235167401197548910934734450246377773634230006534407195665252556049820271861572726587611739115955170231524318639784546734421196179725111995569312501609416861647852799717878118893259259635108234501755144372940858229017501228797619360844648363003051996769868410418593628254185030426854030843000875556425224466647678828987041596691820422261560260243260271235559941908965831731342545543542471537033964562856815743305124626933841483945837861716441163165350896402959226208868932347409883442839922185635508715226558354343962739878825934849859867460134668276555410664785400488111802300593803198489237875671954288836045449936540712845382202899055373415017974459615770440533484147424413971799679374701681858358669111858647099571023551092728786498772567223796113827219617454934912286830377930082010392905665259736325073827091545932862170408227852745629774787887964042574532219578696879652427334068486701001816720107792288682034257154218955992633729846846343627601940885991479296766077028617793767470988980030328873300617478423499201319112237849675855755816913335533306537479699202705273456809749234371497437750647345708624174067894442028531484965575302257202444851393204913706169148293988514067155690015867151753426098070460083067732555165370738191911714765929946925074631709556850567418716716355939776687962433425649732386356178551933167141528473368694928989958037041817396774285727388689965523873500373277465467160382734320941573337291934775251882313172968974012400599881099183801465609814804614182546381301225121092730469069104296920342685821242929020167776364576948611269256168198010196697543145681712076467718733138341260443557266978049035835248069414493721870550747387446027270721283021610693050338886661898024966251886159247692803343716304635423923995213845013750924209152498481977773307664002348350764339581292936429748679858629161943356006897290837348205174568923822846365966935592312298811884755110470688151610720092110262453160489325731880888623539387013910801264382570166344063958559735156146456084647031441181086147915298209384876290280417858946203261106852999141115545725841713859505078150732351686907184920260916710827926033776068935981938030657385053345420402758485207962311835255032461992152155164991462376297809742598883184354482479425892048436144229692998298422053523337416652452816895095398441032202454920189149328854876952943697602970815376606978048123653726748476752287239292210923435026500518718906645625674043639974366083649537626538135696026580278268823979867464142788845667280485872734581350858231313878831852824311083933377832473173298420474672713149048439103572752153214287605369997731427918183164841185420776191298692912666008595881109046473960765438876598989227765461141660949552244991432691134636259836104981992686191564004733047860933447362540443991623158354923074811859881934346023389037436105595844903995281471024107631108710664129859540927415214067247630365391924710909489581342709207896801363823276284415193808358512571217837450047658716469124586987665207897558367077419608848294169030162872896712014504439059703678384343543643111547494585728813067995583839980649390454042265423012272154656768036310209884317927315983276144953888843907525983587395926369279077280336255393357138670632813130270406324916231249160343242614532125146529366955097057165923250097153386170245558261082111438031901697564010507419249754718603742728453308158910315255818318453898754281580307927706535247890040913095117255296612913967245357306384020440553421709403335789246274793700589666491924240080091149138521283233025554795543841423836638130432784515109092022755895503433550555341567896947593720401393324379497371815319820109177409445104259736537074500910603144130173332039691389154813356727956755053193235784286120665995166104714825719758956844557815472363461337709620978367977111898252220113607807569110368642248907518908947231917685929529386810748657533871111247848320886052971218277954566616381685889546551330141974543184108888686712974004314718105582824902091110817873893240698723436878606692729492862234002893906385394694450897553294451114267835793174151761301170263828552811909088240938549889349745179174451737311345844237904132335870817393937844846875168155550290629877480256160987349508365085603532834229323866373661583692100925474336289428903311571737809099789704550369334807038543007264607838045828880299521857029129431075933697854840154712285525679769047175348068499286562701197262114622508771598701077317393521931343489165713618275676039400937827133462402023124620761615565587906147354505961671267526018732143056755925428413466275286515834028957385603295541502824354069156322562820171162288876162382505674413779988674575078007205332521218887531189759880258228775727751624843392488670185144577173208813705665754789046244878971001600357891099390286467541450525522372865504703138568909068697118931748066120638327043593135282854449019232379144422519958726878372083185754065723751909858822907300102867936435645981193847488144706898632983365285133109712504190698319781055897542605837741259032470821411853647368161202513595512572543844729691414418097455428225970857245166122792737204519409023854666809022149001592502287760648693655398958338713749085858721586788033893127015831316790946396596917526575308756393340491924007519998141437612411607765824986457107574521675498027819860284883581757451396192975626889624309560298770439621948114512619659825605146306464843631428690460094421399902535796929239834214266625877456208834847122484550438182247754451621998320294130690347177227375029434982293482800440303715010702303077827421703340039889462454690724858018951327070928805677126843210784776108477846010463545886173737468513002395647718794046973196961343539146772786476695289006677004104175165849087376139366143156647810410082928337192177647887412263842402229180775297581183989784999384091993160926011264705794146580231557440147271712809741046029076646661199890456843076962953783972046026256905838149917805858651244719198915977379801302211845742934148598217679734094499140093072243360398771991025623479143527341047450803555139419237343581336857086402876869631051780071062140429394127486862194115208377541776968872946008979703784300330322177315202276201227561594809947827883159044343983715044138941474375103597510655261493582831167029442064108316478444891134483675840682240943443210176520544099938870829096534348087465634847437870644725345492741763489976333514625522088588296945769921600204880861057971750622358095836154417285491275868650947947083445204474380130374421474924168118120831404452317376708366138683318623588420122033941562218507561156402817500192370358511639716065303239047925259324924662127531150137112295140585358031498777188877672515126926457333126384410261342533724435695235504419377572610998720633419148733916754439243083895432686132027035420738724015690410094628742016129982802209063591804366016552871164697043371057158383093593847282203562888349908241079097650290654800707057548477365968842173637256435773614421910294040236482642689264314574068739771681749968550490357924124989622742494919938435661521274908183696951188737739534507827540942046712271400902017554015525387644937598650656937781673705487520195448215537297231447685103548647425010828769382783988423330672960083545923190097273106486763808808567134107436198848698181457146656951207057345813085294551476288425392815191872446658382316574411631297219707106704584590057808188651402996283360704587270573192727726106335008843269702441223425900801292954957399964387610578438783737960297958064851161870043845593325762787833734704906748204429794836224252099005116377080351832315622617551225189200236502802959510630938024701196125474357242235862545270185943143747767072963979031633324797395147679913792863849469145126255897523715105497059844665517675571424151923898520542707433170791355044790902075847231651667774630054336074323589382144173741608273996226950178354110035072978246829484570000106516029295976107127802998850311291974000113884577526040363557215272125568316367581734808401507835905890278695796778454498135690334446172596235005590122826761658972206989678152661595558837000335574233467260585019735981093149147394796461434699669675397418982858006913843101222159404778565766292163938835566297769617869842961204298979732567393608411269211206976444657846630584899492926813641229743396829449718700491014908248869457836785276582960573107077576302989718906077112639444474708799267531960993209155247126226948010402464767066606034200913993649781806417944802096548134991405405836736762717571680849837729812536491752684834036540983866064517869380274170889256656242531734034642893678232146712756638334293152964414398020589707620776074177206571667640601917852837689213944582682491863554501726676274016213274670484875192708154778515099707554005276016962858635635947269306786997983252632476173146333834897820784331490951347387005828124194848625931746334316452948318046053556518813710064187007808757639351804322178772399924258376574285989040380231297418510684009285533952622982079571026101005675574093668282068914418474673743062653554305931022147921129144030692131996387772340425444804256323560426292160550466098338785583148801241470277878484232555524367483054317887105183711080753442808100983038937503702382037395364065071671410904246777579108151305804394983456605565198672690620262636530543235481374986531904533659045356225743151709224515240487712105206391126349037987317174148600664900794570381951003048075119716666688968521105212610971569722339962204846575395062099364906953572850842751284643222796829834295513744054420833174498708151031159417423453064211650837917248410122843171529739600891457360927453295679933225274645254932902347557322431158952351803562206283274332101511810436616296007914323499182932553707354970415083966863403054177702950121853895364546849635377374027574387155173128521737910557381278345229970783678320466901460118381601850172293962170701021008642837710297337665876356685906831096949363748793682886825571422925299201875905331233994830891098747566015016925413911664605604459486352978392947588097502720098884980181427518533919528001638785875678439123548089542318244084384944119937872405283267247366625134374241170955347310610999496254158788526575784705211117737332432470145919820849495773391126058032142889512236371523460175486784870680080823834632839717534945791571442826929342822990202804959541939624924360367285212290351786576068782309554407137742980121652341040430781671237795435734192902153331492773833077147718802178744506225744720795524620559522563238414659315309867739163815192502838846635236476928458054105836343115774869526629976091996523082921476597166633128063716978091769821173750309971659286750842365508547515187390608783868115877967043779403589926545681844009624688417298568051785912456331476161853873951969881921023667960781329653137986817614819409263726176095728160068707923602744273671837341010802137948352664191287391015837719131695904084962013981849007638465866249410721861155642450961335082882621394395615312288213480414523898929684371534125991839729956133458048714353019868626615604800595136886217142709476728311503774498185472665404650193794575003018939756643798116839469121981014719549928515415582622397061758060568122819112329915406850074952224560257180955146316378283969596900163391217465673243984990886005061528188763345899084767243003206607427122821357833862463456097049008149996310563180076345348432410207480017950296648496281550056840753332773841639299583075429572211759735690216850495066567672689054734052011477850815743796950575324295578987977472220405585138610288713895410260955952799963093646878693738796530738371509143672685318521420992077714156791537129442237362483577122617433559507037432532850121491495601812399350274010067214105627935624885949767779404250221760594103707140171790284385910292399359158830238496848190370676109039001876688758624357046976847506193847864482122456905232716307099003466980614714353952288637380156293196988429906817506596775387752858180501623507117840849191618062576603850557973123129457676166374031962802949801030833507064587335093666470460474698948837819310562255479094384422072307211662904699994170405863194221555582652610860397445579051089961484338917016204010886887326446338716297298824419607330941264507025769811366793962021306354014837044123078810727003024650692595851064242705394993380012020350247612666842454392052684163234564763177632378158360903555479290620926674434958404438234773298810221614764447375230790637156194483808488836040275579793723477584202567723700328519124545941330785304926045711598331792811094744782052686138564685300230131459906670661303079066749436239744073801477867835121685008997397989077863162877457930563176933892696744697413114723204168304724127709552900781947025106043870369417721328845221389357882206242519150972374863014930272168342131337261997447469881209879413351702219697467672939344865759945366548889452664760073698273434223380893949999380257456403735473529232411496370119250549426390614742254355406225346066308157471770692930318718163708609638942512438218837435261620832565451367895994415967874555188185441271759408867591990714772473410377732064427085789525748469878837529938818841660753033194951511266469411383988223145397192750703563228287080470084356044592773194013764454157580272784915781708148839121828369233994473180052732660377644415434853565979464833036604662314209589278697247067447463125273614894217658796306360111027428549421997522125461089614558877223605069251862219327425735820215434430324247225084583107778164376056513764681437716480765035318260052936268005213810377861961864055763529083834089008766203697939936323624931800302682191485043275058709843475906635456010555401179358037583915301502567519800122390721420226122107086004717667496301334688948558212739838185302786996514224217283836728487054377646868130826790983453963269784413486843609186994885205915307314739195235460391948866584227024651067430263293490948248259299359256468788681998547136525186298304551874881406264551082602051277027663557296345454215544051809259461119706729430025709929599804705287830715609175610524164493586258840003634845970055444734145718241557551523381194610258155300186815104126317581772606602544829312929840308053793257489086518206516617296212340110144531508430193810912320101184539156101844028969725077200163589720923822868286966465286528142139531867711581296921550297151762866526810546036165387894417276735325428889783985434982016626100438241060743442607225756643738402471470385864158966148432088693718650072720690785351099028254061790085405896318291819337843011074767905324572730121510390495905010206533245020405073967386175468362824108070171974348507135973702235811284818965987226185693201321102068402127821057004347379342829582044018379019455100836536564803353720809545093399454339303484992368860189304583158774955181346213233050918282791132415583615408399327727706243813504546633068707285032789744884493483462199552939338112787582537300156881637015629759361881909594409243113066250710890844957860434150145786448771821572454413739390475671981811682721229870317943016367672836807189532867078025840876422858883011978606299844289720739067326053874448151189609186341558237446940329733688686641937279515996987092483829034242831922111985449432391830292808657232589409485342026209367575464187367297738554374977720781449185876670683799947570826945549816566037871834701044467178859791194345301712714821983344679153989180009358954646305478003782647956845360099736927214711980034707428070249696050273512187247740392949103029622399926654525000641503659089671635092822620678333890012681567272968039823881246497099708949423327135761254338215018487824070272015050909789621624665934400480834759574091306773222060909760001023311749093870000469112084413904805352533520234293477236597974119709239575323110941533361897647648408128186832614245821357144385484109720835943351793165819893421674105482016014767265224255539325312069530499488823455970482647087015032771640689299480785495746761832485313054068094363819049349868715917720972883494055109930967848143057055724667452870608591399888403973852976550694248653214500411464660959883193822024266005344414204617262429662654039623461292713123762484570697382801954570830957769457293378953003100352494679439299633864774111788755981191633997279071478385400782783975282382554602136982720105275527021137626985276180010753797454465674905691743367731462958063636472126173271795441171030910054455937792018935392692334867751614433074987270570860232894601581774331632038657855241211891524388818426573984548063258256276614146572744197785918635519250194093388225172669324345094043330431771753965221640834862299234588701090203481218091593023677608236730100697510367140113682878332752581598031469738921564638811264851221647823360664953948752436721322661830378168286241566788451465067610393521358627666922711516396451451232638480860461889814179346838272903974732262607342430403618903362051364625617147469210590846787267927551660016588657983559967542157882940525563530467461187810302895405231620923027633162658508517822248690881650599425216720343457668356756737268223333785052472694072548384693744122085602175642484469425984497920062582930412287251695334064293898966523214195834094385159127486838211781174377149806592039361611470183091407097392905761903341257403277998406067853838285333638558765258071973949665595062354829681864944731474850426562023838264099835018800266682823943413761189390112177191480946512630302170577170411068049262716616778457179939646872341884079224958349181076782853619282964858133850968021480250699413627340580815717915341898536723345643063701209664876109659197006272740269281059067056346770362519063464767351434882765661673681234961915349423046460177307979465216362631309220493806842897377173700450208458391076636814296013729754328768870849059068924428148865463036072129637701119237415148424888991539376175224959947040583534599064721919385296696021377326905010330893279450602963154549549533384705069521180901255403653053061791927722775143635115869717704362018509745366292308824447361550785230507937109796938031862217799826386204876460111104592440004936469034977403182092965305603415926833123941249827146432163099710841682015644553471997377757318561930746522615945009070114783521321740710366229182932950855771421275312939165834224395603087046725546853119061088345740399728176806087111177600532857343701291614852015369485678390135983788082053126994343047277056789845448478029760164004325339219171176758409829433682896396366800673585178008344976010362939418403712125167032261299628382472228039785954927328079589387427432803425498946834049905382320136192607434950235206390464965880342503610039870527728284200779876950706885211356713168958521392466893664801971204049968325457707254172845732634681428858093609011754946766379960406851898974840699835381545003723755755379027053686865709580332883656734412469715723264987922201597660225353485965167993241432233593080618542650015140722020268638485138677983150841769294581038678859820731730678230943832329805839350646426380396055448996675064863509372000422438848094053147944468278428022943867407696960011758907972718976429421775065591041846293487212598590049029653668763261402362337970526236047323937066396781114610811261193581477449823506417266925815804540114719817900349146908138956914564197546479537863861784128038251454337410745271186231875397873877899124121354945102624202522418417794192541033468782947928376094313220476665015693828984109584400866326267542678407502095937905881398132911167992605128975985661276747124255842049897154524138075482045655068628017965833275060198380893667779517879321379239422444259466701497629458459856362390272416326260687092637604966421023264932159176387263838546288329103515096787745316564430057699810433290830245482411875073786237903924303614689741298538852803072177016408972819823374698970833723201002403651199545437860827476810259041617779503718371351359342528308574092621705464223396637024262199636040122773436345229637676849563457910935879349028000534552880438618071938278349312035222980273827513886504326450189781235679487260343678912412364492284893332227695485407048726787899995097569378417768480297316905276830482860398708914623897541692826693641864520563292894220225370565051594172684700551083863727413178835140358599872795457854558660508930793492290271394251997660172524705339713103708341671623777578963621329096015130745639295779483523032490748466339600012008984919188051513969730790677053044372492192694750752398164625310182502954916089486439663960290182661221576611906821223318547625788597469367750859075871665162304202033320809419831272940882661267109160489103512444742566438482690547526718440942889648844579032440098763892602157503516997443622234279061904492488584601017082451127800294794905072533687097595995004862919543681836652123995633426202285928034332137642264782931553250850091949175007883721698998254080017735262003538994644697417727722472931856292407797644108024496598779869672478718135386553129753111270011638009747894095934175537094178106059302567333280046591313379099410068858288269696607804385037684902612394587933881702577855304243956470377370935876752337804898703928958592354055119821056345365199008580066907624008137534846145193190108011061033768990723592512599571282178928569705487870027620031722998762813302271982904133005608256542506619059446513329364174809450382793087117583785028516025471625829707278048802177166779411763455729567707428342700877482294359033487969250912225089668149183114916825985994214214112289662115642906800891015523935158211576001857816114025485910182537066029492441591295323179010685277339645342503527349439403531171179729332140134716311970173754395987174631845626847202724696422391530209336594883147140705617643271565568066884699699151450796453908522143281970564332662421369688523566390765972369260140550625027593967866096941117878515389194589733343926113662084176574048859706706834429234101222002837002702738186796817365337749610832583639064490513765770978009412125480134534715786842193068542706854083965100773264852439170411086277328383081085027612297751730768261196381774833971268908166256391487460332303405872545394014112239189505786583564656301869688695717478620206394764867178474344793765024177573989792459340241225326074918871361410695387300494059352160643891698376125612268851424473439032598287303381324337711961308046511775384794497069123608899337745263441308485857466140458966466567551011238582278777882536097301087528182482129956665265485554465550518648391183303838093820582404175878695367152523774208175167514761441617936864615855023819011196318974844157044273464654262151448069691819820537763772995288746983181953525067880875021295313659795416234960563994940072853640829675944015998615550124358300527145288877104179909206533143408606638010555640316494605570623064960336645079343479071915610624688115507379556466289881129015852762825805956536548279356027486736618380058293986359253579193512250714092284514133316263008077800073480580022689174736983607037685515536308002728684350638561673147541445686408848639701736803125055140515302322936626792907321906937252865556196932153162908473610002195341831751492068754170961818966024491165769755423745191438080940484228620233307908298656610823079420687721071577329915888567998777979562525862709425212067924606255640652790472854663132729570837874378474935999815027933510843687418196544546734183440064454742544884105152299945104397589416108289700867559283055965946410142802055425061725813402994522432331229532998144558115575945106267764107089153222486651889802876560122229501106826729987279397446180476359257423463619130038252782406019716033904603170534894825026003061425129637370120178082791124082623999947673886630414103644389307665896956999970334575320361688248032533880916301852428928128321984513402991426174465452246335806752341372793724358145239624597591525156053272992661716948275890201882428729989816548270634729295675329435154982742240613586833577143396740594244580790218054606787956009575926608143725437103605404907915066777577564121167632159592905779514713312764041915288880821342869362364470003754421920633257632226370241916776539506993782965725090178322753117150898693603884992348967218915967416139077071086713300897895807812022564099920311911843490182802381809754137240526193996635882614272583656979419365815297016933742953327711489642006236467537442534796870722774130450774563203818367261836129752072984453342587444875431498194665276731604917211940416479546443897756419093437694764847625717067397448503657531698040176102343408092596054307447112372600737587418691110136327118832883752928805142822953588835368918757273833612717208572247887740038893886573330129964524081427989020534756398532162786517657975887898712560562840200703775142499925679223610674513714698241040444899957642102177186513000737734177244468011958068382345717935507759001301875925178669857465680341173910413656869934136543508302116400223583457641010085969809239678809815101360879393318153262382259740804870893419277473559034666902895049412180403557409434717465152084045688068111400036765870138934767325348141175388979960017958850014277900569857896734667395177244662094957478612942371664005488924682805550698650174244397418172159128295747473993578132445043850695497806606624187803611024576359242143255313178817855201625494938693274053079678903570378682800182213529244821654586481930927449925058060241223416533753714879612344298123722758084095508197489433504514701895337156821449385794573083639260650191377919242637400473951216873420878137178417543514239978120401070632770274583566227743804010269233569903815196927893419694961754138832215535779117820738581793464895006754088476962448111872515563888643122647124545116107764510825499690479494959097062888200915424249562639418857378333191096468254553794777038735493869438435732972931408410552079330160880881866999493398898673327893418089927720396457292143062995621591462940762637960516290661674289910129230157058677240000009585206721454808322876224453451580897883933600062612045833566711965164898567608842421424919160514496132853828314240843794285798690362523163328029041385564921297030890137687801834854044928257761440706178172656558026549532718698305920086984290830955472214370249793846527725727497219273117131836534738671043573046751705139582652289175664353757609506564974244896333600681506425118218041132782732521931219144627969322448760711728579893352394940186827355048782472420326865762750704941657397214737118960829894282869276862975746626097158410358247619531241041068677639424975695183148413426248453536138019217128963564483419316198196159518101145720660088832072836621401474099167884083766407130713285089789832956637581465880396019299847317342229147217207157440387895939741659455592576867830300764837926155785455325385260930573086996125551231782742079380284948224945634814384919125081356825147094254510580129475348597588528267794228470469313676600452040535026108884918408667014693549180964285898827630341219650772816913729419323875426289828104258009174554321562702228541420390417749632017361508877876588555979744585801232558937163248441620879789468902950002627055592037609968049046710797970121970570562235719420184735100865976382644781696833201111249995801343186772518229514663640607816258465373256576399260414982644389077628117638818933583713165357932785431711977824469289259900998314890371732772822409080238887136844853414771116493160261373476216940366145391035847897608942393340052352194987386540005729547994376785961070282640633780408765132396686632012228703797360392102148666914797838879784946156255399448449891650493154669225596611574940739766056159031595428001988900376621423505726330280683203670954067230320260735454408448470798066553220049403226678871824238340966107699793155722704991331422557938517132867298594357481431860460324795025299460356977066078633267198353160641509692167344478078688459305677492811317866081572812697176828900795804589923748279374021219686876071157879613361104135631680451174911510615749059979081127149300521397882701983037091760262437979885696369153490751487995981802941073041662473930775939215574646852482885649537297643771613101951314227250311347748982440205897527392072721117439271678065192841642742685700625894714455185932133376989665037261604649489769026428757825490557378616058151490810605388981907280489611775265457737669058209711726052510859193850268917973197891356173613019169545833390354971789355374314781950899209366449220669879206908900477537099244366801396298286841298773573077941524654120712792650837258117942671676348441542186102156154684761961071192000682457643210004061685228782381639165079519441237971323026483694783733129637101808917267899976143091910848859691162059668696745073501874938228241858838518903419349017597516074338078884006134009080102970089179251093513356307251401948413490258620932984307362285131503884162019669778761864386016846029736004893228674393416831676223276919600725301737506587444590029884799092214472719933063730899177961228487466734393873304368078791128476405964652307916427760178735371347370367805010918276493813017583909280517484834332837984964052641567405676893415465725992699429161481618687909472605016933773712617452597274249773069496890976760708272110386827350794401586233585905759109646525396910195540620283002474850944914307452751639919876472217242937515633808658037875863490187568021057714132777631965630504644813388494837871718697462025155787947248742955524521461917337391000659823532228474266299718357331480004490370527350348029747864731246323267544442671456273373346989499622058853084661471540047813913555985406001200288964351888240991688425797394296501232894732370628751071373460379174783047090295026559412327214528147279713245190276454277282077796085878390705867754724673185611362790700016191880956654794830821016949323159876789001237275330934313885963475273506793006393437267873060166340408589409674255590801543529063978990877122121903908483579159817790950438563845768822962052268485925262859437331222567206493190000456135829377284696130029804242903502529822718039059776277319639703120527879630786651437669946205715366541177564342260211600216214756578370159204461570132890277036092999198915633400436047578229542214793065317696584713343598270069408326114699872102764162104004534171884300388210840993990584168395449362706109265869234773161775136136287863019861884105859444211501955853743624098103144988579507060037635676550408621021998913466884645808534164932142458033702425705827225069024517333225359574552071927291058821830150804957060336055177795788066150784144629570498020067479300355235336529625073790215510913583003756877064558421058658760553811680367097013387343745981476902516118882515891009409164844246625485399998355628609238421744862048324493588420876772301884316712274119125345748564467051512647688618653769984556550334456724227703075866156879873488073434929736289030548611675788549538358076982587514627050670559439156138373503406168923851732109799513717925352765049881081252794859246645749954220484753278973623727057867130427674271487606509215799322345519874096048335944622272112646808545843736323856298276305853065264515373736735095407589949207474930095182160135834986855262976337202431325179595236989777923563057334161833121709954328578110707998032372186575267355560488519033831623461928238923684988602326275565653206477183924497655990978926140231921563759770718867093772445261206484665247182393155230430809174076884447831646421058795467494057902870514786556747469074113993650685357407025187983909505890881155159937180162663363336316438607605641956820153552154310758604611366654308671018760579685991032841817062592834098918284316597590637285621798712577407390726173655705887308396721185973105583668440476269416803124915193328934394947035612240190750476349448813510616595428003171028435772280304615334048167427644038062070462622820430455277350852226021465134653108844021975681258965675988588087027795111304321018333957502116665552909542395559438660381618881838525615184815345807368853630729486882919432406074444218405598166601375511226312946196404074107271840073817202215721562948737926893245867410885434340413915164476822029665488672701756186370253256196351816222377548023152380046758289631218166072951114657237339280647154502494311259395082193141100720831812455279302817563038581492901520992229860218868977071008703565187143963486716318717181321804339493986256651447004293070375378437299215737643100852577976202068148560312870834835688586446108171375866574046503221985558135466704876735103768159458391499881970395199762968994469243985897945973426521409031265989703935281406614492592118005535971164420474129400207980162441065029586878366094993850484663483118774074321792257572067787160682025541051865318604851418017886929241027972728013791033335273756987774021058023449661436028757255774284130709459909021901487756264198025852237902459312803361277363334374884753321406460772000891876500462482783940816400796330186877111318370285193231195991993297708765304095492188371550249871112864819801607818310406365034166019452906671024077198466020763054947986043382217544170241510517924899036598166029734919413434993979322628524023521032921189090657572475766593081391852509602131528947871519167283822317557749158930116548134725771627035583657896794422733000403407071096449039727681483093917567332295838047756416730471338380284153013983338764292253348428518776093350985517151540601644687062513118461919226308994523333831321968426880487287303645198717995268590139603265610905136452717761087491461288660855729838877212614966009298115889981931092290643491508051178863677680451167752157001841223245682552231095024026154445886804067746662923772853017801909724605958957972391356450131770481177630247076574494074220330786921116437036080141189738594383676013453822417290311698729775344468907487346828131762944235928012274995724034988450036910815811153965085692452412931295888659643763469539108717757288966875067120621745897318861723596528868995913326823246377779849990309803214973503725670431047335360208318525826290729560509222323814543145905429277194246097126433909659813617692020632773561347796728209386795855832250089485746845549049592597532048449574693924793157918179178838941851265203259931392001778249553437196315807844375673405326901394265203662425971924172627537145629198176722536306767679645257039948893701583773587782720648185376678674641707129783453796700341453343261934033092065639752259910622723738211908729642023764362922916443884923442370053865522452077866193522954609468311478701296675404123810331110846923840266115551489472877360293492287647802973344546371448681903414837978428248178886908061506733971126311398225323654792409411213685644164140218140333350369394341711558040852683001748766820384475051059092831467695467348939396620055946689456315633139218259274718892952113304941877103881728132069529124452008554676902880464568862495517983664477579063015076623491421663330861686892252660958296433676862830659988954825887226667207191211102790224688101331422145857898534156101620984926819395554806732822983704336388184551921852502766283172647640713579607566497232023221668397298141038323427807475162852912403568066047996678190772824091719529032039114495633478216594551222937053377378468057126278704879174903437557011586691723727522011034079724086556603611248094573527713880913155499596578723962821375753645155838362189056676144097925066857710331522987935277305728438158883831978561525373763748927237556344589788290930113368226631986100044423473396690646314995795181796872732863203274617224303042852308660043120578911927680546984211912941531670992261214977755278222453083181015234838119386175561826048131886616032410860218316718180511724849023613737796399569143828788351004519571293589274517481667148284870473639151428795327247001278032581614668811747686839423234898057773780790311883860760339057304270051839371284584291946284308552944596090779205137348954578721950640698089178298363554532025806201597994889544284193923178936118065568654725581309467458102096245407876490383507439729654921621672851650123854630669543049931394595704296144723023663361928800364158698166626200410598211280934468918261482620289049511421774253378087981325316216397244961149811685831032136554860729246469418303619099532603429835207627296457780211304812543740101046275149395245585838343652612909825175583850272413227005341603841171650706171232227717863765781240179308917762621814047646168343069706600736929799310004713463317574159258766897155958828431540890554996970970301437486307619130377787965501103915490498743693892269629157350868899756298710146638605336596526432976009549600754471972709365912870167246453359800868043949580505752591418954615516246825700218877628563876655219877160126089797027979993131251010935404852979921390154220275492735694859872003257444301442980553996865286648152407838542008122687467807456120918281804397678494266575433958036072715918492078990563607320005624945114566782414378530176473014266093690238528920489523799328774975809048747217943666590121227444947775429715941978136614376881570706133333623667027227025071406937743605897855192836644401899076308582197180552920749659756560813068618191134800986100096422930848985960155728324465072142584663103916641460322901280095383863532393034565871690622193815147808565141614960977933296216569272538253208044785736579823432605159127965805036302023147500586598031410236137197185205630055237735361229800910798346143612259263988233114808537042179356978456505366020542938972671291189861258432393189168850068698713430501601700748587952544269125680760993327923444762441629310569540608412320969515921011026502643229479112585831769990599303346943801025036180038704862340679622435683605645514597839537998009582488592641644251655768392482152861009905757692318492159061294258393412018754776692483828603882342700529524934231736838608375033988513621723460387543189523067051095431190892136611798415554973851691206565699255488071766876788247026797503168055323839466819507918226408944736499328470284329201276490442426479291819594388958834986728681201514111482560285438924311264590964385450616643853264385450702942038373700111658889205830142369489532876837634166890855318171602718413529787598307137191180357640677977105576863638471311127691223083793823714578844629185015545819397904953721222696319264467667290193829508805580197777898476205927750107374315402070591759236690630152596978555161922573385611007573452894694661069379134511620678173572441262561636556594714033057709308143915642101180892402676470708439215472262173478981672463902217463197267803535796305754730943521275485168667815837863106896963676255569612856538221480914784927292753979036296870527437019168056655595189545306905399521396800210345005415136037229882463174227185471268594355511664160899613762057822058253716559975687476197403372843318906662011884214594791288320616859527078052093438371191273668531911539159482367961114135606723013353684400438054914850701941987978799368319659621811136813884602386464615170974715050108514526819365278713258977534776249039544626835935596560456515416159954077241317924354937812393999128067857144926274552998811082420528496580838828272347258447841544296075226044568831111443000469549480987552821207400481908757904042110356368106564159856703283124353143965958013620508459830449926590768895437780715365328603400928290658116393778721051208273954322063556949791562471929445576235992563460735260423820048249782807550969185810595734457442654445219533333235435630732988805586766729559786580849872462170286836143517677777652009617310580409259301362857868837766650979389607460118902559168821114124853903961348831859708773501233112699720865102314974302113827139618796731350280927380324475949425081509993655898934979041491249242687522258187188744099816019819580155352825617514959478847543998222323308513317694046561507623016493067244113304243731123711947379021322495956342372996055718517100198248193992320083053167361721895312543420787030082624625217377645805610552490754993479328505205871549057951698391743821312815773185057604424246212824450088083478270428357848101108386902478727435398958690188500902671879730659143022578136323961033113188407773506444579905456898989979981060138563906631618357707504087420794166553429302497059901350153193619080814892666251435098155500393476969126314463648368525531360859657587995934669669318059006360072237836669715951853918455423663025670712643342953735635714345356016842850998927244945451904683222085764847628139958744670374996477986622927666047470553483380091744661467117680889102734447333643886674686720887225892414342150383438210928662192588157356862435034531715328870551391425061957469157781877668113762747016318046340763293162657007800501592927634226022801904073119552528788070814891246444938628917550538126393929988007672724019774413699956510354271047361822476937900891873608968115641613058246026751618416805315847020744458991390265211809730467231325229417785019011891297280703362438515569425900390259844962249450336568559429146472404046211662128992045435319542404578180451522783572649168377049314040994489228491599078580537524224142607043529302584201777404053196140076562167970822157031108919007180301024112752026548521353858155217641589312637843268795101323960100438899034077278721930900054425749126627278883053952826037506543011801601949726617397753678083530221539556236761990867873511047681857010277592526320511124589985918102375315869569600013933908638148395642729636059485120031387898698030375102726698839125146589985523969658249134201666519655135395044737210834677742313419974863564576669904282115872213499116834869675832189865679615520676755722309519053332743791297190767163563126215578525758382865851062451049851053671941062014458322934086558770701018893288133440484599234145616276646057941470882346361943807740588854101180703778690937967667456873345787805479262692848562698180643365966432039771835105241359907904048535532546988697402839313332548314780550872185747412122431314629818286899122030967324978858366857854174293979766649602689278508388130707784472523439264590187617243873092872179575928856143376651333846383726897581057466179736642641759417238238192527798941200022052936860877909236760898616959040618573437946856410587166901745336868977494435093942815280305189071545551374974045341870821172245847985353068756013939986776647142573685499181641133601572933976631353114792996461286345129803899056108112274069805359980985786536959842978462765235757624756064169032717887676426368422704753720556049238252307393546733590143463056189515949736019066379970152042869722340453339402196101890991830856260907896014047181448367169338193284125742938583209390307533794607345209848982663259514138970957252789288572328522326140772386295662466674356184923652987783489055963412615925133031197601841006456143785872568542809145717128280652158054884728331297385566797223356243140225224992103433299138909985467674258536213958587400143011767429471921552160583355202919422663687740868626016313599910472309951693218696285729425734442724030346186873809133088373068439180100572472767724496282581954679304695152282091103934572818703776178834771682614664122956673713942503388768807291617822466545697944950175886155036578863280443031724122558515877386705557360104453585301682812224561737896704422918423941818363633462718303636401551893261908718402102596628065846649059648816289460133813620263677497590888154328991628372514790323604901843545061462460318456461100753702175265783222458267506106889964934208754091661619880881730527679115622549626497679373550548234186726264675702494790815557955832106815339727665996812123224287641271632874820774773248009147079192081515468322568724906809468783967010173433132845423661558654029932981921139282217192970065970234425159551354603810477910985506336756064465098974116435364860315822116235539186818270457325290035266749626400139405202835241054604470266408655916538062646488904625086264811343940712684354757139813832773590280430262993683876164922678689500655216198089229830926382565242247326440612346998922957406463438521822731093072409678246037570774545142450833348126626833590187112754315034750963934779767742168439742843927490377046864759231416161589188718755486507175855825869497473581393175673580298758803066322865986996204802155060700212970073675676902447740393309909374756656946186313928940057621919083609904331224716328623336827622372804913671103031337186530292185479516390958458957759359775803030855480891095807696535173113345951702330684743410134999965850940683382234146038526446644715783431275534579826556519187465088288927543315684317955819516105600233052453789923824930418102563250637255747452645384656730319694442608692435913385544779877960325337352531054603257928001689261910770554819178432337507177562227492885836905130370724094754037050401003018924342210858576866862264049043569088602196834642724772672712918691365236517597623575752821551725243013630488374365279720375089742459886116114415527274249547229376633416754804531539690061331702051834576226702378645128189629488623195257600813968476119148633345027035321505107885394892593894921643221236071987883106996967194049352867879497375905636713619161393728346534304523067204542287285704750863448705368473653604670038518161359443314244115594546942188601372731107203732093054527235699771497529186845823112235375219105172216837217291371508173954698476431237355064089609638404525811094892595095052246618895579772888781395328875597149415533361424872710363925620473803952739315198792194139452778289727047669590665372340394157705139474476093145455043672563701841598314317669243499463843679215698616298950278834498788597755574684319524303853488764266711469709880919909834476489236300048081667219718514466418886835196449121743711304806923724851103779455489720922737354498455870684714444248905085037883925994523464832260657706669875453509015567841386081635236232051276163260405450337599620798930813371637770218203070381637800796878392849850284306147792304314121356799977937538299770157122340858807569033223006936673457176377244337465633257487128670150501193715279487067610482081780425834011108061863297118392284362314498081670021287562083835375421305313796196665303175786189545953709425651363013296292471615620329321854271256115750769021875024084715557920098478677351922297171694363605628046626067376157954725509566036976379089067879671877768934469676408634907361179554561938147632769053251853841839238021690744885153559369712254602188920658919584004496460296820280852841079971067964649439624584249757018666366303787548619264078777588443783601193244942651124313868158715093169474496041186893299468014063487153731688972325904902193317171425182143061986596311225118972277433769382789696384875365768606273532478156268572563436312985515252637666935330785453889690239022546001707100574683175173097457538969316425798152523936068629747541834911375886237453339467023636579997818760456815389230790946510800787080061528045023999781590056022355774295957191080108752960381417679235594874287875233619915462434555831052039354783174799808373460920495584633426313871852076783092693031908776283773893897470868266856427933786332039812411538134973331380947029572263923093881365820076766189813538543823768497289669475064732377961903656839640763840985007020010332999050492557688945245197541571923746931832213694054906101662348487763208219386752426793151838835593295087788361740729774845469429843198589127508474232617624532986307083390811487304395176509188312976908351965024080030917887200806334782282974683633214890353047075792417457853953015033194275712535868105870102719535869051970543346286473235273244546856200895020802094441141691572124903417685654659890536202604643297453467666822465643121945000954746039384077979552334011942152508970094081618843761879503221494454339355532255869882371908988018393275630713870754859907811210914045084433240218237818658390013365808063204726690642826403172183236800659282184219709490058104223166328821032437227749436648511694944245376186812612338772461075769551281670204238958940970573956206351905423366189420615376261018323663512239825588475091266368224022241904928431352903700349234442376872438194391712020273431609086730282611496180700605453609941616976195123587735383397919154352553453057322024866653630261512430649892901361239342230516116979475512973095478337759500492079895476984837326548811365646045551359312291071658564357757522920334782280519063206566956256542750359139930244805264671243910749424594086989173973855413763672520227799568002351560795336729423602921089365181173227589638875099250703009463698663154564606355253519942261182578073621333998768402707448581335087384457028522730284164629772271510887675286671299254900475767222234833047289073703519911693002367184692265670421901048802098794545682932171495548775272113538851399718107060727374492485859431178164443319703833345860967579719600510959421915499620911414226172322480309743734693986923210940247818925506957265189478958402715818460724984009754289466579066451647490913740587587558035583635607556694348241760879842724903204980285028157860358337200885743702220636734707388560854945781921154722518702342558362582580308704746992774805776993971092998737381239865266282909929328793232853563865089444234489613572663740851132658493289148114135085122942937824444633722185894203196888482449547492789880610615955033684655987331707342383780480785959441759023698227612987686152213165880479137774670195800969603166388653732653396080912793327527934839578844476716308590363597855460728243525293630285884313753276876826830913511228687951135237427076066720243892586057327432391994586702803135837381550897233279301153153006424614485669260270899477491779359915600830601625624688639425304130279267263627246211751598128588832726286553975779485187848808111512218925090086187276981147992368488010325263734372107370819799568542573267549953425247190868942608343085615016761620791875365160877440804568062024684060075086418141166586428371203047995222758675104322163270642398293556027476651602823014800599277259148701505650223570482276743804090096410514599439397281291810369170700696217916540045701969989318123438041595001577997946164457453493476653977340137065924347643213605512706854118422669485497915093827725730339598980352448683108507275185226717980838023733516023105991109028104839901261012114715570144843618936270402799694241347598700641097947039072047363935753507764953849020544201638257483619877052957229255982394482341381388936902315222875621277235054657130672629149713303141779613024304179961417073797806350200776552238678690120217523198655639872128175915485229106729380115512970272546198244399173323024922818167256166668458605453835691850581375702181208438784893664471591873716079183836062528698927084844030418150407774045480565965688236371263344312654883505481235003888990775483507634976093467640417578644031450405136539424755041631350585758921378931926664290718809454661338393804434730705500309592063360809305684521687463590167271269352852268141503729137486755099651349149491908564312165047231605293641865388445542946285760214148576430297755437936042216538542121679318533581952190045698966410663300707854514799282978819096050669591088748242642449469542623590745986077836617831088050512957804159601385609292383087064247530017383242642747540477539168161717013010013829222477394264557026440415585223926133014411534453567125312896295511135328119085470606677476520682721794140888285248419474052853246045837158819996611364416848900789207681387843223326061491023903783306093277216902769048295339576174864290599219407880062388239763835364299543369181000025270154978121172795890772489056769584310302706677626690532235774213697878183298900637675459249235801282218218363610972092064097935097402671243096639329285016842482399475249910062338217728771094980281787822431811494514319366069910808191070949039945041733245973701849439993121883665765968529801182986787989001006226524023315114632023119698374471733962456789786231712836382971987535889983179109243508030363288427651662535807641803542803013888841098138035379780227778241855313759841231233587555760017486619184755091266512774486711828553010300837061544078330935024323059659937879569777763106568375948786565012122913343963892486146211838177724711077603819343567774271633350515639667135796737727487027462302419258148586409767067622098338021261702342141504444173687150062837403286656038704247461548128702245137698149472311468774167165049709907149056876450270338522317604311254888056197706078397622764654842107371085638504325425681299993113298077897036239550992035085878670855753614818914450294985515977682673414377030174462468811803852502485591618864199490207604876291017451724994778504733583190494934698773460068569251581205374179945931114226159677257898739144711571329882739870056103920855808037793308397718424623468205598751907510441181591017025826882832308979115283604975083148730494604866796219600011520006877757687241936805005741588947676716053714202506773765360347184179657682815628916373966677489499828398396450238052441325944534164642521841974537374177938458985811464269586041028458413049425506461756539330466747258409118179706409429091007598640718189804330563115585172592755897776441813094153324165394427881212765836251075097644246004248775458226137580088932299371646980533047868009056840560056796778916235864494701670183582715968945412414648957134591217698624417480489651939929127652570467882524745360407100552391369774813262933258149052671201877034932157050197019834104396926301390020478968242128544204303359709075694499287275399763725281931219986180685918590107248522837060279117031523880929456662925757102285620033908343796336126751454778302048220831643287663627951630379400193442687717645326193658048708614997245064648851087383917030037034423715549455130469805230339169518005109536486286176412082427291077388472045855435055852608412728951174432026346305426994813042778381624759599979379361595921493816698722047692128574728299928453805620875659569671455539898160192153015056154362066886466934283063833284032062733438664068037345049797188275998002276282057408817658878567397731745405906386844884310034400845204901026793739805044904603975817172045418552169135379562191878695837367638526556140008768587992538373592740460142047861024695720804181828845510511369764077732690653806326725163712252129572294690810732081660925250937820190953544069550416354007834142986803178237570331057294201763349514634788897465406460426694842247226216172786429171669477495681889787345579169626595420313901832326763914986943011962809981881663221791852045286656917311152816326145138922500726012620177605477129086996657134705669062474525562720291628737347715843013800202945836941203625846727393307493889806949118859826583736141479698919835606417054856361245346276302910169288452390559420265398789005378714947119765720253794715951092725097310397780060145452872861032978313018233813894366168544272088731524295243856175685805562701914423756653354249022942375784407805304501895485218869968155424401067531418672512800718234092597510227339733842413125285843668197927106738960592059612406474443457723462089187813394437040068761375118457870570553923008810449922458362233841384215917508901718597574460028545225346163528305357358607822163482330786673136358067926366207160367100686031746634851978712996593965067639952859069961942518582940841823674212685170842304510660317995478601213876188959430634740170971355066071860842108548772647910340188592368829612558807748562419728582285963827307985108244963805022899316683144873773140544170838517647789593715643821845432629039170399977516582286319615670638391633238219366507095132123080683427365092994304524785226819229927176292175601725404011882922335720815007160367458805447702223225204552180941011738257207146730179005517969734078585042422604717518858823157084478470090305218552572035865359285978740118484618986393296673845079027759331512009281052603422974102767438630802218805856109761419640330838562102439794888997035198404635190786834374127008118537268424743189209285436281906164926969384015769352840603313150974050405773997237471891729557002440751736460947779022851854495859350986569071335063008963561498050690236346287035613922448812129992982300802177039759869071764693109263601570362865486357570843441878156277422793117777373700429214919051306471643013941384496842383383485692049806453674960263672398440844348346226203512310774498430751089770538119126752578119067428559408628101611731406844357679013477288172557411909351173093806392525587572502733177360336406312603056652054261581286901420670307481614737010012252678881553402238499803569514630440658012129686941355088915084103866143159555697397399567359970996974242507820509873376782423348585144450945252161900938724098107091433948173341322658441374122517080727903139381444065558913314387468505161228528806329472058119166130411201417367458900808745407655841539205613622442932799463935681047842427385222552748183772441177076345588964793856178042304262064634087722496634660950517549854316330521770299891882579668292469147134266944856794426563903365624216042575891091406840381209287844964076386728977262016250114203876953620072924418786026330092091198028784004780397996919280901708209825976689802504256701993851846762741635769619893271087309932593802251370556266244425621296967740437054495510791068939033799244862683265422084547910277259865432294638726626894746469178179653087232338714213779515191794618485420947422816812222128265927418273864267639588029171378266915272171235670178730508329300347613804579307695610638316585979854734430092573790317300662373181282101142447676848934061704644257097772789308254905434896028412727344320551621983903243073271795977527570949285473656466746155898809786838906778754763394055516386010163473852551309506585053741685609604812258464897404790950032218230654978472407445306787743459497907300156842847248791379290120597436110341872841871099539098821553687681619633316092219754222385323541432958501376559382203770965041081266053205749995272036538091518425238357856286481528753891756605387805006249922418554382895877270016472560429159049652301631855888766838320777469003739334754066370151617998934845178911129264128806710641243233838734988009127754175043207108412707724477680596589499686426147932540073944938714074461928657958311193022841863898922133922069024625019012115936694025742962894003683576667032353760502331884726084315701697468964612509584849109870873775493827247650176638367150795685005643306625866281419276788073557843441116021036426249373653030576586040890184835605726896602719417385472355841134443614493608219057258089650226506004192776127594712528507503429454313368425674282888749713433713704813578640690903150161079434299701875838597039087155205211519460621476194393225882111650082268978859104003791586128585394794355346170460620703674332671270225181961190850529445973942554891802920115907176285674127880194655292862775389177197470037302353195598874210820663604388436616138343965146942588134928921065694172687842462156694004201785214808955905383449667274349388733549785584714014530232180693949032961061524512319425540757496175383645017487814884757833911216864499734836507650837628312884693504408582893836126858344229801613134328360727959566364002088919323399231570698356540068730751381987715737832922299235621463629534576124978640330169711002695343455517061930733055104635427971939532099390539796485176788466683443982257408714499325928022458727215869022877757747681931526323857556462095690863049321550119248211618436460343206457025351047011615226699212333946929805831951636229827731483692674338918350392901214178911786364328480543494799776787465107806923166072271327840695943057431524793563135832548124561161958969515591650854839197440885096935528948926332345435510166150557606037422178619054928686051006597693573285384517705820891369848423361434446125315438187052400108631459539701599163877794941566758012069267930209195424497394966590412705988781635888858801084894552883093040951563334878739065637201274103516902520496703896972234551581610206470897891917538444199894595423442596479133039823646173967044982473495061372113006114013701330295731726888216828333574032176413549561000315561193625557993071892127697999312337841715937598969786907794788484755474789588790029789873142937266501682360260297163028448495651175977256872504641066093040498950718153456448364065011819699673389319661605746531675914916239759217943868091672672905039466807850970217095201202599032171112168709872715410062881446594143748601231172027918392132706133402437188397272828721522216017014284114979042886367631499235774073181483519771049162636730976577152291173044042246649345930398573019355144387857500241265506111368187784938811031035408219738032965720622636951841553319258691362252279912598608915232122490212465906625195321069078651247132878971463107603846884929973721942625374509608681473231726149813181565562781380279412373248952115446071593650997757599352957530900898394473780303461426044019723904036452597452669683813540474141066520854497169256212177024268894292800093318877423659082453932802558923119535817322832494137659432643842206923784894411468488981708289648808275779473886134801282862699547383828474679607120336312039591614628275939982090547049568938870176084682934850855986188878987334245786286831099851266538543292388234571114518610736049429149849313080421575556292991174009503324301244359998013431209762549914334362606029059383428462446882305397018570231035385949713057663648885957260623419250656148427764787441248659047193107793012251733039777951371917314994241672343290547406840588273397443289548511708191782532483521776161956215588600641063539376835998546282705334971994534442350089466330476195982914871110482849960700659368703397896920828344020512897673216201130961162501698672616261656789310231406098812537231311314442571596858077219891313501198180220486229874981993915952327958311626417669400057487267434388848942093772074254363088994801619513726944956355982939244647328159293117792519896804787352840780819968188244598858107744839304910679599223544392978441819515395522673596433567569789378339403147816256885273455969375994914762524341678966253995655515529225296996010757556803791771441984306130269946219941984504595217211371896572315669533643302425035457011965105661730062084751339721537225630876311676115099431569434024845044733705768185080841188180073784478833218050746806093611005598651657862021215503028368533188693340080657719665265593552271111718408258645121943212618550338961637368483655488992565422417366989757124976522285952086787644934253807414644942264154920499140661565517755478589547388246567085994292065542802958849449680569344409381401884897686494566468397988426825236790326443085832396040718653403083394112319852100531853307836969748567944756963936391339025955583646150873588429840717946194248349497344915953157270984285240826552095911914894306404738936532595455782586537763069794947602200395208338973800616383452667993176598644460990892841961258504858600927875530599861326511469062661197635359666732770553849351975164055318375167401139886494521473181139238304004523948300988633287408080493645712175082080186932899595774902228509727618301852706000125145809859990412765782333097999317155695455892057973875919616415136295050783558982965838508108263080395387285649803874851045288173670326586310468575684935765303074102193827907642501182037733032936376875793404588758535796009150916562359325668865626023162778490653510125780296558372062212308294101963552195187951004920157342127921508784302337765938735977246824710210106909128961198522740738743568606429486157682692007551817960674893535750300354940814202626630053674787618594507770365912765775311169116463368014565004088298489821316932358726230359493902127588824804980588034084837626932846913048695515472709029874574505269930353132593640526064950650767073924483782312008834905711963470987354998635955446610396270703929666135835562578938978154264580905075331662800310343050674951562595269266671286955696811440542243553281215545362621947919159942278051486467516965567996888725173242906007911600127722392011121569245086009054984080488614105103690100146218204384226330451940663554062127850392125069150829792414489951580408249667106930159928489808250042879793945492993062479655556177671371737463361575983808508009288536866246897802890332911327341733512183063083567161697388679429175544691547376842679950456692893991635924880377759366564934372434646247017569636750952174402876603441189865182429362739469625640082002391154669321160456566693333038137416162107247252126360444098039152632312738843246830712124973273012378044281769393913970967020457317959800523655132550480224309853992589354084500221949600305972721369741885750471266330260149992526319934387088399057357736507512852533669566659808128901514969606905170473747583945330075538355130973038215115106193471184934707110692541746979441234860957677051635816615435706338542246343244414922459619946310094005325975649232605365271563079395911942358359329978328373373776869555728726615402773410777178970508712479164922008576265821269583363530446798252579610718745845893942114531187329930148191008356595713783600605742810152560087746629898089599866433645856638400832539908978080006416655727515292024301049606342998894058969647945304545111784192942257172207476749730299829446571319008156086026831926620485648031813781703524970151761429157062853865942858505815044484795535129771532087886608943174440530529333072856506568191779526341853668125524332261373234701640035414526694121639207567979922039960113191780980511547588299194048660656297338347882165290448459588173974225926631977117137781062293530677407570181420721226233500223066086771365624755716827273381691713562724063300950805650791124180501670785261745860221508600842801876788767867709697565892649438808041043751666389783443289309008644572179626531480903708790158281218259990448069032802073793081454845338818922375164167345529882232015605142694528618079826860273544265831212010283932419017001517457407260244083851649958650956761025562375241995809669484405076559816350937880827100977359504540634593780423752442182135025488615712320468622890412984810230964784047980350611920606297350265540876655202729706667756508814497662725099146823854833508412598981743537583543272930934469432067300524910361394074681060991447251289510652876022465620151461667389682900752809706114515426587748775884013134718976168884243161038463579115202769933020109695005690192559027847206910854111668103617754473009465688954119249176138970166950867728860653746314474612148689455796293320712770924355568119176379211241531956040861478759794379628682283374500037637247282606759870438291701850174659191501078142117239973340189250436087703456415742871351421081181923414809441329152019575359160811462336216970203752417743251895551566400259587205409555172342288792930903021471407979396417299134638671682785400061705890772554921171781435864388926060308166895310308664812162684617974707642051808997935180483089374135468733114925416148666254106062127587882977089697726349131545626020710907612565382595441959089273024361818343231080625923841487634214707724937992173143999852063071773330251217773180353678007007907294444488199098666420369798436605773785007366686609967828083159456457798084433324258658323571320917764134686640039128837395881903971791390338669901397549140061843301411840901528003934341469503910891882772576287527513788773101228004775574472074509540139493999505746052381989970209294393066225789130848509488422240253350424594428341716015828014208753913879627235251508044767380193813441809960465529645503929902931134181663115651414265663860898965663915041461509453660552106943242684672989573723388466164392161261597506851847979323774218814161974253751319151021250620670331657944462039534966842922374598225662578670709732525919520786984819642703125554061037630188486587740403401149460838628045829721722363005838091912287993597270461944600193913476006405560642000421083174449626130679474842160569597858884201031067866872686051218974161708542961651998673791045202721471914021937005812081578536972446214168852931064709270303876288394771498773421948012025339055459741420473407582657612770551231168483909219958331585117212501975805262366523991221085666669978147197449910589668761375565398785114661730089198183256579849382587669526969066797642695780317954514908797452040668226765331331772217123400392074342548621842826313723707940012359498339503299989491096348065894731689776125320003041553164144408401639915689426806394603846161294974825493769735835012523510187719898228622359808358863480303880678352426727748080833291593103296879207206997110704225514799102302133654219199449970876592800584296477853530914313467437563166611248945573892946965306376526621162925093943379544764603030802673892105223014732049640459642431056997364360047132408892013675774809499165557581808084928160134826996708849396707530278393009715110150038681684124330568427897539553220788145142245752280345398091870053246453551808943501721376292191166319054448657918732672362313799783765826378409842063166494833453570997490469523414583203400719076923487672617859708904731581206289080326978970064073887760803134529889385433743065652545071755936261755640478925280236986970205228298428787666150691532958335870842927520541408061771404778384214545671705937579004222734287901553461501420158160225972175742184441750046955773550835464247141560733092150564391440501943741777393038556997312941972568403218523176082530340795485503585716884335474427062234713035266004162512014615797714875718086261873351938211285498437788484789817211223468847450332260540892263005462910784161708472703870504607224517463795717395553987345406924055936051086805908024285127701977250523379382545068010476585590633370402748299532795313772525152383009687592779516665891716855600526479052337547709676183870308898068086481372739794866945052277427246554483109123817689527684978257193015669334271642624665764725397139004833072006694205612539504661958833301510827730810481578179988096243329291664685042765135427729528940450881784914646196157152720600653419459789746923744026547493869993312986822998096898095490491925886162013782276037440068846285200931432672781739789332224409510465090245132526383377700370508662115692989819642600133358960095241055826867906046002107102161971250312044407644249731648847639453502681892186083847081881766126864633030827120377540012943191484394197109749498113721725604044228335117310467952249958446993922613223350923229040999087833543380937307734448747146306470632562204428961398502885341622372898541856885396350563640642566134592531709935963145388267518982761661392464286459406758087402837701354460075938274597074534474462364908147816286858313185166907911909956429646667635901062560717877618565975323747942601540880434331721090763854773532271769456485309637067777745978025472796194053651218255852830988754901796992542600119697674739811595356881349934728070522311212187842122277310384923222030780409722812177416801298442058900851623371034633396522270012122407768577709880840354952824598922106555955386959647773864479621825541679806390047888094377883864339717729837265952119953634127787209071195465026402057086337192558851032287463715675979448913579349263636138801484370919521105435976001534212414944931061414555198956807664825038597050528162584295590550440743836376104090285247640074507916070464894011281073760328899824545127918126682750899934261066197177452472777933798420792031068366610951441894088462931036254484265950853731814526375271694319836599423119410550383336010933464446260679994380760697427521370950928299919529679383858585596270913428272757796938808463511756256124322288985783201177863487228307204023311030133832338836617320886162297734370332819260557083832774947494123777026528684222298861231982955096775188388267075030744231214911404503935387296891694750822575098908677654238150470857579513261245015254934753641343802326173338642449448740499774758948864351278526228620403543067999486114801894347598047410676480902901786708413082641400682058107187724665787037972257923826903121561690586646102241209581767006491806770902854812716443998894053054394631984435685655175795490789382872758692418653034468937940459559040126542584194041922535347681940121877294686959402589306342664506221632423177542409574403048323865352786386056056318651848392578001649841185426068483854475042053682051892846594557712934979492272847556728179702513265170419330138294280252834188398518491294517934594217079854621404966990161273825977156387187523309703243670788038388871552136303727464083122550413020126543502430455418368168463235584915276830601533834438234702447759299640075962583871378712353644520618504294821244753468800658733721900737629527406514652649195681839332814854306650067008405081468006747871067265136705720661927708324605676634027749160845420524746765747751049395136372505778785717049057584793983152369772971676976542435750306944583903677002194942690144278971054641866168299838491399719185502695427719361523811250990134090518333648222083160828505119967271875764647295409923319065632559501183324648678127871479599929447551117004141724669336440110071419985986211170164163477663408391870978965889442518780791916904431796552109678108434598256958318157036049057827009617991764040253662351771726410035199418711016690427738627997297844244519657985787856110248571416884742807081771068518183697345995428951795186756886943549567857064547591528301876383324527261987900109957195486020811188497806476546414739039849252792642833704343631849144911394545057167111462270859295726932111766264474570181227624114426187031505988616459332074194786153576458723462527674226403148548025280982085022318086671391042970774045006687198826067188791774479591198126217805048337751858160399010969183091745823789374537586860115701248511205327434467078283475444807102362825665440386296012923772749015722481334521790411699291607713666052620513126381475281182006117993121908407256185578413710831005550846262699662329637188697089498947979412492021461434593634090660599672848950174861929975125211988416841819288136038162858306404613142008571959512430367235622103421420268691083477181728471768653831282153107792077451770785342146737063532311900011187586524931443234104642483440902187055652311182423816303986537882875258143074879000202510432595017483014540759240849628939334704957904734184116138428460674124478378289516221016563963986711743308576623178020711847960227682936464950123465261130104702550887427062413105541544058026806343422337280290306551819389932429703023854300365704860492106624310654955021752558471677659354200133348099597073329561068386358469131076005886218781835290930515825477752138644421374940642801306833715293856302003814813856853757471512188028182955934518724642459567502265539727033737007396179196716231061964860185812675949080656233688385815727494671533957734794120313902958853632707486480777480028769810922439599039848176398608603853422782077827694944418220420312686151692287958776689575055537039747497424788316084909651372861455554828129052321127945768047014624890691247198392360381448097434840702269076618931467673667723112946287023014949735481766078091903985856156574328864267186091582600306780058283041292152762036547453919309860077609921403121133508168701011283128619381438718497877398909732800175339409174332630411521312235695170513899670752176714598970267050592397143094225804979713922914071972370939678132700905354406087701400518321841414588649044961190664384007314180697297703362469603350329487956521703126512306633925381537648011202145225989620447944901187896006331320874018356088169145430614569547923137688500336767543122850284532559819930897855698327918585104384524582727993078136306471212319097269452063646553154643736117953799635302481517372339451641274987597258411196914733310002275895048580198829099431791688308066296287216102104582442932894932605573392442916500812417391619033595199237150358905406878453887608472792084486984991875043666842275103736922475032097377828516731667433790947888904080275666694961908990596612937759153380955237407855847480784647123297518584614504453129984536295138470035812367479099629953158074566271432156675708892291568850122028433374973160967849025337210020722142072105091695423760240707528193293050527691137847850263190775778173150482779224823907325034876061650717243618640513049387962985227700244242835194836259935325711382986318298884778069406267621035421234228242238209216573305062277767432018793561912639117846495208073330290655129387504748494991058358666253357333356122998025972134119887786822536742502071295634719831492833023310346734698525505307539782133955988433698602754745078064893022243388668486635306084305358538561105045060958944123706681193405808405076220717268685744149242806276948520490003065772860182946443534662360592677974360128575284991904528672320299560809243355291906737737716559177221401240883589083947190923124251313226786736138844907459887398741458905577366020100839011935042896955081480052935976344434681879730997443101370880038167283327310023987692491703202777177898298302482900065961455855093910652993873158500571274459481027072266960530047312062114273644512040865053364512930712181480192198436657526808898624734008136355299951891568325750722890901194916285333024979817382131775490546768226741407975690869305878316830026971510505790241359411857370669716658031974479581128030532398236814630430195533068994367141283354114514451059972179176127994083364950686358857771422242950749283227079744749544487741493492419238139929359538359568085433586532348847349098303614689398759095501696336893721613843160809662604637791715247820293670819492959509297618942410714130187632035324030276185781979844233996397969566786624282158345084112386372256423719024524148054580535775244988135360563724631815857391722397873549170754051069419257549868433988209844458705910848277467991079263317012463611732425432754165137073001108428686949482995871521327949042266453349790320565571365521338035903181497093923364876661349233516861204151818142379238510910972506003978126390687476289097302430993111000791097366803526856746427418752897226445747712000461857784573788730190761470180103323524776198028689722076043153406731368907353507302118157470217625114402312570648163330340284867268716336926035787120689054903831626035989393104893330302576046916542977982486879262730880510419980319193027512606879854319725578340393140499346413510051072786568176124385332561372955408395581964328505653034396629166538098257614438572134321807845101913169392903828588378963501975415127113585458791574349013971743293462910501092387935707726819491184794475869564577620043711674064014077114605023302927597555596170221310795277930743046345128749694510064223988286592381394551425033738786052324791716314917991983213562167447958015879891054274383301043870418720240723713022110448413344724104799715544852559041739395673199464541074062556598803129170575896361077144415706737277014287590801457647777085805112082608479823819136010753247215242175415635982163444612283693131382371194768001711193514601375278110523858594038824271287757325500227215939661689363234415194917652926602649294463182641477197339937032597918904397579901888543077362570933474625529627422283863705438039702238516116867616682203631595667303959992962568117110131472236765155786582054881974517210738471423228041297005234168183787062480692908166627947808896718893751101884431344680627304452533876822371447721391422775943923508000850854902937298081404479421074821219803018642142825183879015107759304337312215168376026315858806579260226936133144263246906157132835977326833213298314199683541769662177910814129025151396010612012322606876900770551525955365971783652745235822641365107102410348958643683691013903942227044373595123504797534390379324402756889585186702687890204567296550701911339918768297147179186013080778739022925803542086969262491886616636598841257383115087089507936597399152687374426336161435019827743105813472660625883458731760381236580213699849032623800949150692927220654138492824046788804300046119529076762174984961455011483498478562570556855103967712919856336100888550511823486806981247027088885044338629085218035402427284185686066810199948377029731250148456929851096218620707674529296457299780139069198243477337298134438126074632370216810230034121297252446010534862116113787987350987803960775936226605978371094939383126493369175010575401589162770047666071953933360207930063669701755975269333343536120882436587117038301869996617578296462543161110790436551744103248282179149511366296316386097170433556668904418357527820270573967152269939724775757644344185793663309228140388900909857402051515451275759816560862586956602449434394022095857449266011192632352884173679475140573336413967306787574159816181087964574174180719821263182681458348210102413944194536638937213947958922610813671296957657773386750138195517282466081221496919586689814108823159585596412734872646891319379531136303787794934226205766756188584203765283497279937078487346542684236880992953963542520823650237028750239125414637944129337084884378988804565292906574588229581113179172263372622101641300108398093051759217199922284834120270942003764007427173657500694682694061442018425734796741425802879679059427243655093951011833981182386474899037334476735719735297468047496260656479712620874444989751588455924946458351716367690322821165197116366387886707986028920076429796718023794254635485547341632522866486300485705118706181283592906249950321554957818839848815153926772887674505379304117369068215547544158823809011540496646879818356621296147180510770682035266770010123596154131992815911557228756303795591327255306748963787437677780934214347354749713499905999779298061096428251729297393890302923941486708046598642694619351218485330496673113393672368851605222999280921255285928237857163812054790819467707250717808325053891960329665217291197543587118338487008612826436388761451663753672286966580463091346432386186217900375918951121594827802627994160205796468481039519141643947592300803464066271883330691214173117413690944007008180181811227022296632102247083313514826500779916655206517508022692375037739477963188272257871285204936556076833606655372114254460077817691531178336461046160684988828089479657947703661413972626635075154968096108406400166690297043842590084433492048784285099805843642010805815834122050434439785978278651340409309305893064131357890990926314296746043113476676585845212056675724672201763977214818638679696020516120446914695044923987224894451253759416022588248648902629494393904027414785198469120480683644898823947731116930006827415203658373450418810976771058588531874106059128150452306286918039645959318344245685434521064618033676064238229683308234186703391245497516858534342781102074774090796401839367656162595728584638479399525932786402119577803312944508288116721832515912184831227491819234525860626087904497226945387227404040112218888522382825077906400720196291569568994678340895188607042383113154037001867288757822678444190162156331024953488677161339520680253660384873029855993473364456540702779181863627647068773716331668187829642701979150851032506945854296554833081578552870389509877485128118078977766504329598083279577850171024414519106299551918345886775889618436137080092297182106745126225547169369035613908192943260371356008479936448286668828363032572624117449544171706669676503801029528103577331725556124197485686019096203812418582907410291078683805296334413657366055527653912414187202888486010287230531000579400626621071569811578692162292289286336218367620299217992601704375485488732134123710372213106366499706704621306351955476587805389407637301249264440131085140714945316515736493867712339111534202620982945849333014186822233589476683343772925169829378654320107081434018030249263590353604943100316210835513429272517056801014476896883778072677784572744990711581834006526745664652234971769570696229573928970279577909376067309040572336078999753953457320864010594003753215770045431826883746911813004816539069422390597973644260857464000138594604068868914847330315566848857477780750148074011639149128105483186489923425669825128883960744044613178924532319026195553539388797807232185101315818975502431641447230298240507296052671241210382156511121730048427703880659434068380083578485196795985322037113425481919008445977556828762866481802539149473834236539481256334319878895553035247025303927516621552822042875862766689059014645944961918733244898156785700023776128708884736581138414771335561889758958895012421814919152378372875793878397075213529122134372323084859371831331289587757970041847258407518118558097525072957709323743273798483483117566164274104682045004719096829352954076074631891706164751792841333492280067138259660971736605396234792564138370175832665851755195644366336802828542758421953849710818538334129072849246135370070597830579520095363380414181541001168214446097883516227715180424717326818499753154221311356420806210394354696818115097639474679356444268783785071685156459976383604687747755945038724952000704152810704998415951286934633401201561563979582813993893226661370611926739693562943472072290885805402620642992734994762680629136909123272876925470724336148088372530415595326217989158356316879965889383493334200761385738905217406231159630888664624030046023185209449100696396670327084121649580213292786647954286173387129425747055793838245546730169542195865065795504374379955902468434907129231402975678626025200276439857500282661896367859612693386484514909913080795200320008064826448954431699374897579058365298145547661134951071054918250350677220889414942368870604767001432448890744612986151765951564372908916586247478089471433572522718526625941907532584495014610566855218078470500386286202477242034628014511930531958494849954122632262206312421170267296987028397235027887598080145402465229505764259245937576738546973762113754718934717198315933159906473228671149357550849581872362790898783943405230058177907454834504832920729385174707040231829016277492889402074560783392768008701848663248328454089757719194239076212675644442966878826295481809346780224862019497685041449683705074664292546247171801347025081018799173392751745743675388981589704782408268861718441702929461234631819101377318564491668806962251509689065734805649359129283640633995622725769792401867763919193926360367366917475869346799248850246455781324999422407312905376296881610794413469735870270638406903825290377658224233631244957592511944900809720539070358290305813502728195243852496698103971950355554102172253513526072758668583066527887592872094118832557201524601377734759419068910635605530571168279779734406045110271293394963194825042335522018079001573551922034081622762550225130279393366779809657471743317528775570128538250762697070082536539196642442164976273468617979121322006235974900442278809534373390128744189640775979442863853268733402493215243001541074234826153385896243290151652655419253828281535381659084709296756950947774422682477282408977975079183588475269414468793935600318765501929405780349739248190806705535639879367936641071552480833149174369235587608147810320523976785234117136177107830142823333810657922984405331464160927036342840757939397540919837875478628918319950820293882510364055178685403423615960430184815458467896654233290085110572716038666679575718057507710449336137327352253437314968599166510787406274882618121552370183716846158802307955038654363632995639295260010901636545738353973962667450121712161911264368462657553128217933345693225991388163211766333608638679012303419664244526367284074846690259491858225185344334299125594015950645729863539991760568583947314573603931855299404031124254666126106388580241424755856269556668359474869218587701940933332121902636319862011080312392728701832931512917226981080040740638226634864397800404324857659910921830733407652505987009976296997773097443547679295879815835710928009797473075440305459448278291674017090828167446762695817926506684525539864145791222038549958215187681150900984102188965980067368293926106927299700822881296867771367776065806855645522277769615002470733820527566151280574152842910056436680005516819147115703838275090822011280474067797164905342101960239984936539343711594341306931836065418626783999251492922999577636325318710282129744207744489723861620559054056573529949375160536784242171533135685394641748258758207048641603116051240141071738427958961061014513475129468089597856003662689120483582596439865491378021126746854127593972075288907299006097308428896438656828069987916314403462080317044498883869106460205066053754102411922741504363104969920963259689001135391190899006015590918790256433441970477252161200006367771772294138267495639692284008505080919578377226336140358952187264051689778478776438359353989809570674780316327620579244573252988472259932273678705838235956750506648350386432931788129042650439858629599626447055908574938635763000965940020425033728111718987339340408392410400200452696097487807144684730315808349867492537631338180075886385042495324657696671186202425237194610011480307809599103971977863233872441040511223622000635702493792225702471894949833903995142983715662916658987468319952597843290459163113891653099137083743198975053430075457519999882091368916877071043482484723860820505910306355747769507143073293883534292264316090912973028808086044990698521886595939185223353170336397077741722260890494854662961320805373238522980027479372052119087609880542135029726339319779715630844640932682850129144084974807071270349301936498785578728866925568885579751660323910643202838437420107717660279485046405297392463087811776267322099316794192555944235624021994130258789196173802627491643844229423584830685994707891327740925865800381531730634162577600415262659847075210152189956824399801378473013267099249756547537932485701951109964655802917183977372933461486957998857744921409493660735284619588833693526814207656610944717717528829824745278062122572916945075788161203825623413085588287128935266092594824651670740186404195913500572474410464240635937416289956966300881189273023691881175521384266543076540305133940443952948716049458459550895218124780120548689103264708830502442785362674329682058505299202523668089442666074640308021796511054377823743301572599970755561248872386727498239681566241867952302166688548920954552313887449059472241926752036823708578604728028482566100911334184887055298799951770019202218518724458701851439688092458981279520965217815978905369812914725372703562197801246767263986411477970448361753261483768990835167949366644175817464264979135581162616875943013049296346413112006591540032887795120658637706844052279305063532281231611823081247300161600743723514761903301782030748334208709190349954024436370303569144875088504727342547605603617394626018630720821544435859829059162917305773151832188561215962671657246091750582335494074898384219521734070465716295964970679492243100712154039536269368456882554348318767796936858479012386448018168893528333984412471892514769404368497631315830952578417729787648006276742642202158910665124885022294390848987620248644932673411235681327831794549240371539203429292644219909225996840631061124842990139101094824184990908514221876306577959131527943185325482618858803154335210178320001371910508556276166491889377610420051044174920439810677643664930849783968978661502417884538089365559079167234585861728348955396429478257923279557061996854502230663762429228371604059385689054981199335450056274608623631749036470915896990655897858208694511085216716863196542534514942859590226809042252076802145137275557358717085659303340110768978272880890432965967009575135856244121910790575545088413229033144524862566687202387299313106940457592759191658997336414110343229963685505350109713690643142572740849354248530950973924255987514297286537279575921155828825469348302472268054172549720199740702694149352608045321557629540420843822916095619125032200573587561656136357645347815288230270567096655847289549167493078254979469513994193656500321756261578375884339162637817120893047885575145470358012855220754201276629982442662279517387963833462059104002768337262897560387323873348359718844999432081299630152998355878366402899100801113379999088393922267707848911427028262163907443191139150354668595479459789357393773558509344172643628607154082370288654696156332705580731676992096589169799289678613857078811507890282553713707921754035631096135938358355925812081005901935153844983282260309100141583331073755938591399136706620606059746379437873039360196110492416040157594862806996727851587602232853086420502105364674380544406478801833411879269861129271777746192505549412145068296688281978392205441688188897899317605703830835951403074947929078926679873812779717705669006922581578376670964990110654922792950145515207359908647258364143623905504379058161325003004416001878808539867526971986894307671652404522437106699196166265810501077953659392688936599046315202632290700828103701175961320791815477003120867584780543740519931071128194810156100176519734351695909332548335407512865246666515583425501161179270878676837606409739828446571835595170862588267547675710998278430250400861745727845236867143943959568165309979239440701100105283195762560962233779990836765201006820899246148393985253245239426377701773817107037798957623271982027455697343893748859007696528440725985437191348659305201540004427737131991136612289193664747639413090304247616905834741092217109470885235971199899526432440226541194433310591003259904279549211380053759506183093168026097408511849226308995152926123984952067403322399549336447740511405433976955396080734489986541003885055678053827772627617037270744183893619613781421837911810356978470054558346035623038577731555619678660394510783243509614334182456392301965650246066718208275799287044276777125447560291282193947086029551417741366296760472179125904483229891403011798946971526128243023577370455943767656686172546918001664982662593429321119883131532919350138170071031110864717232798595260242951028981832120624526606119716207098573806961405229926586381081924036300812485130632504795308874039378702100543388146203538375525171022017626839416030093372899417166764781601438655650962633492656281767277889503312102531360109634892314612136999651458192094502972712657535985343349656582238903399616052270218167554273653957653450525556370464531386936769949292150548854943959945246585415405200675826387411977450917423249622271799633559195280258668068954262564331159446580504895001661161374663425958266908431362621136615019055574712805953221123114761665815659274542712286109239558119376264963352601040714319397223109894310674057310430402217878182893611531486678823520337240996247604468836105485781317197152638377615451846808535583500480540155383203775969475299095718365858204261861558983276854996972745006521022316675689693405716458531438471536985003722313969127601209177849167244586111857124165751095939236687779585970807646396361506730050414989508385628756465145153914134097272499843330366520214777528381133888656927852094654139530678283279499335859873970500843471917653812461854143635201679488563536941606149711412754616160471901766065771590068518896670275319951795122477831487737855071492529354053094670618517620575178587696739819782971692304451010570233349344073050715927982254772630383752176381217206017047908203217298499633916926503239943948604115264764529747782794257297878696873406924544123467882151600410281843919796436265879570101085720392092746690393377134593270898916068995132176504075234239587598838066242147190739292758867230323343473667032279347037342159376372803213641974839775674027537207168237111320920884172174975748648311845742436553690247672154106666597739164098512802798808358250094153051524370366354816229673930326824884316791628141012635677969575981859567804243609483656065191372243514538839382322953257627887437820049854535965242108567930734768164612354316421800542621461183523629044414179834933527691333294121102176789933226324163637972836231570047269778233367085443363631736529868811471906046959686498249426095856962174522155611593973850305060511672512892902993094426339947335451556065338797606718656448869012230450765284450612054594175318834680128305264223808407280484455062867894884852477972773533897351295549512459696365494063006516159565704110445466898090080587095966870085607142597050411535124712383842545417727769747393575868625435524952287559591919474593382035068726265980586446648719299633141657922196818533117530884439061071897989073860931570283267106044591315942594520701624182407954488118521227908175038991647283820870906277449752053117615126326993499103224847893328273347211839139823173053639443491205309295104985224093694017503972871078876159641430967363789786180565344076308800155121610769380574157701297875319530963493143781664498102560810537201531298176305487072750397167610686248133562966719044555142648357449802181544309302326336553959641624456375575275628830095350710481873635024151314325878643156053992062263106309156863054549798417309497402157635522957954322250573304109163785825883031338322430115341239304221496324581306618270989610039274949538313008527502291528742169618144866112079726732674445863162658669636882939265263326726360416907128126180118817873743507099008627430687435181319780877104868242713783451842729123022190101264213324388230887812054591483454343050400206950071578622299407373502649205347231838818225098492527982684180078149981658397525144626103375223610031641921815324056547060690518278683265688878443107224761542445065948551957291840728705083337476362760421461566874154588207377085281970809170569208966068999080281895488988336887161736696418155211565253033743572274726927477920725624499560583647482487057704971089762923187921106204937678252334647816908734148274799576091932400447043062472050174636010211881040219412938714354804881786761186495516238837958651181562341583323715674892159355566511248216281575626508421432325850354022604328418334424834408284085990936493640657167473623556533611473912675318671600334013079657694372387296569867199522347420771519562281966876646120058241653548007798748637110796909468997270728544671627046575967241716933489511555202700877036047204084076800827480234032521738490934703693036456494563884297174800045516310768835317510869936421075025916022736599036614902705625889772001494152057349402233573016831886451087953635358925548094105858474368052471019013760758876825672285944852517640854638196201815366564570391550699439866585720137312400500446112860000603701116482527639187838137555392217663570218168234439899092845961305312363889130983824180903686099997789541488719877537859379386942868612845495542918974053140805769314389674731585471909091322099314009049453325266058216618403180771647535047441074198607094243905390764927123610953158467086948759160829973647366876738715023081512043166988344208197303063213489558211783132889487639700533907676822125854269644727473947013952614401055058666434887226984598775044707943680343033096147397924035445551079535084060276741714644051262803935050801920520209939933646226529497164313828294942397391024707846504226605522228445782950528551973085328535377306046938146866526916724831719163674498841040454953446828622933959912591554517316987264993093162466477191593153434411430910058830864706731780300847953454172406608024348101657455304132649700415560092130218667628716994278247217555405732672770908402435339082129781221286647835442958647194953519315961874844967910386163596738352177763448167507119528955109998103086266864728673270678359666959110506982744799918520917566247971046143545186725034938392429596777941322715871545916761935621803733821848753093280372799503863837756034229679442529744060177105168278572175211869106066606399684247939405546021196414915037385164703666067607057009057389007182763786654713470400394002594812512890581202303245739831620758347782881131602062597438175643575825540225836505844648964756799235914360668482015314181582134750689428679707891720484183707379138703595245847291771694062725006358456261884758420998689278084312834069277893549555464186071165079877386609890557952603864760977821057919141194754764573065225036119977103427586920719524041161309622251063141681840581741788654895549532329410360362171923136496207106917259796094652387204306708486354850752710056039110930182577903966432295621024409703368992049973956877844094936939232929181461820659378115802936314295622193335888484980567613478760948382024020975623290044038107452603403480385408704196551982548277614182137100603379051632402806933549202598060715110355160099119304049945416666522127736257179147062593508573743428845657708798736051358216004713217628872429811172603480627446430160837908471781708900688784710317838554390523020015399591824251102043006286311950764412950522041124032989508057631384924573414042840891674489034790871819290755906720677652968165643564696123986155167602393696477024395122595387801555936432486412133575258724089855110091332836326969726412295792637300375857585652020377331763503731714740326025980970203182020917752356286003324613011455112952687156931339969602238883435733325452228020777112855433191920504147810158034074343588507899746942930464382830399333633569802999705650221729976171811948511842760737589861135639738260402179342593729587278630278687920246618397073933266040426962105398531784825092543437988912458887941274927373329525818194255815644537679037192734419985936620042263943988331455648175666856966380216385696481328463534224105059622318347885441985020467976035035206761379059058025902770113443140261925828063591557040053739502895182336461528111403810421527845284818060350596337798700921015517261394821155686595707088545768973720707567293973362349261722655928496948860828459918438996740475364795139074537703056120705996577512195723577484379154819893001091270542314135395452237698843855464722482812305461571419702026669256095541270720318403305876400586699938547461496728456010454998896706726588840113903295376075214583384722067629239649953265270097150278874826841121466168470062220281238356436278609998345425019202621351052702112752960961643032352844067242291262212918450169650377440372225022653050832754203060955054608844822732063753880057178511535623422879547634405496553309936829815568837073633867088188847293931521672975405777542811942709365139152053224693731943647318852195758292276163193469119989825308752749733657754161162850154576275270328830319806466285718996357672756895811847619881969029389791330965237757984051255139672210570754211873107036972587802235964028264168818764482747351722862135592812102289437379667849337209138292627039851681229447290494500608912894124576779738947093850454295689859891495340536291411869822307535409038774376351297502630510042625679778648977723200264877347682614466606336748242331149236132228358580577632173803985728774150902218873597215071700179535464314715421566385518245121847517455197057562361905033455642120853449142708897318425005008695932903729697148671827105613786779683567307887222485143954877260884009757344141798875351746629409868082742766193621386279525007187298575483864596681049275349583542242579415799969702559624450050267095647649925132009009736815307312136617791621480055046247946584392076467928157920405500502308719682648452866426627125377819351335279318786093101613539910884491195945081126405992527542444960575717686238194404008526929234134757632623570094148117072897079407477163824388716957115816075014278550853888846958042568688661908677025968575026867952053841715697948456750124322175678486900620487426662534196660672593979828182854120071380439354503931412254787869847638222562852334799642664981339345221767535693194737600087379468849071057294617439114847916666181969722090867930409487559533478609450738113414733116374997160032166180540383605042676797954248087990950838537907093951341699909519036501236797423382737498560834839069232669334776895378218990522806539051689758852045966941316317542320698696507232287096449665125743002782494111885182290433536456415703791826458362989706695382294461469235884328497166726438570536555574766600251295071626994899106105239892269768007894009073035728943869483281969243580897799676287617698711854274739608138059334554888881068158069782891287178704669506304729853601983576267433295245198830991793774380362608287592278953075179633907348200211713745436516674839147119285151757380568243210211552972119865496857363282396390504903769924422757606916000634364452458650787710094506903749732187323387035376543026875073143178363786881111504368757421309639452313387528436561511019685744148356448016103871514963494375515749997130765577557745040149222880932362448217807531875513595493655012359191644441437009165529779532227190475846068401136590486683566515048111243154543125601089805142939644598689485156840195905418170018167473060195398042125102849673499802855310366973359677193444307245653632605921708282785734253114266120748009956209321607012942821432239184626693026089177996573305187813786058558013955752957711913640202270264905947999100769657052543081582578901972313628750442661199292992060038099654677966587765246480341881120213602090288759560860224037076826194955611680356086663889394076277119635675264672591602956954785476171329534934811810961900175643341785493889154556756270293303666754450709666457602594590167949133008613415453905437905469288421560701022919506155340739401851956019837941779581325407154413820390666136791904173203778457445764294141285689530625967158064427446128145234330672440072805229189731647879279329166806911723508637456209836133198924984669466446432053400533245557892468713174108795380194375775866836147637369286997693171478737338004119640249557707886321436558269048860955398353647647895118627350314585906901720554457392090590196828966775918887023552593405311457312506774685362431093228908269139643215527059670231063340818811252960916503989321015266681038021866579020632430600123557267182416978776003475373061351140662570029048308725056839021210177537150144442870207362531231306708770526669709996159066497418633634791087634498813298168648286123895608255067336604780475427086464521872234551089708224030842306304912140134739415171026188420082936905856337208577410486418171144562767028200539995666387582817877503725647737228295225383188468303666094436195169943998937209170717792617464244352373126796329539919742220495799273317479411694726176330786988580781676139463020493397169353488062976333011152793523956442632287109650733617620513530347246815804004167666882509501023085378900304354949593866457427570895464561408158621857250612118790459158259531922725610242676242223139498644140602027931900840553499883842141322633902849919725790391592106197588591981613120071119471960965877054092926999223980990088034057974157482133843971863973793743919633452942422847702139549165169974924068775191872146748309633935618616416804830005948796812960550515074220485350254835781839566183469338239134080965237847097411579726893838301341516538276181394880794232846897766873321261255648229684309279039864283957798489302188345048319578802636735107893767407906210776653746548921826911174962053960011143248388705044666348001585929808410869950685366797068078370530706127712389512634730179931314158474380273220682616501989438537943152704663863442408399411242030730901189623234101915831158506693154779653108635005143336026008326255399245470836868755194804066959351480733517606260998886556407666824611199159060944718482888931610218423538369651479130836178949793752776228029099784496722882944603483047121830386065258743560956485642413272995812773093224310166719877864559371774180173117041771009781512407034704867497759815084091337755946477167561469788639448136999751028439463164407833573945846522421457962114798658850533994024983547733144571525414277230722780259031729812379210745903604724900219396329547522465695105028059859954034019783004132606008260149443607206073371769834473392858949672732606953371287375949759894349841941388572963532214062395895908733677332124629060978399144683874738487484011133312592499816500114122030793113412979881426400812947435050634791859515516880321662830561490453263672125999822048079659707065171412212407202752493245562072455878662839030708201874934796348636594619784148713971219030753041196730882467246384475648273411373459181508166520673775680312704077016525268141368968061568380532510908035656874632097455577233054326367384733807274046547053466416713225665003850485568725826625367894787191357754800477744236443497015000660475847257691644439692712709802436471227798164502571813704801869621158158194915765761229850733780595873882473409857819025205230068306043071946164563293422605299991897491613093770162111337429447661694380558974551241729391251363158453313888963120559799559252829025514062817802700667058163812009588045066738482345742058733480798538643530829598584807591549464831527541232546317338068515540123589997370677245742846017572115028408075179040443999350077377493265436496467084721645261909317302437949554605280267238609351404134884767871552460158283321110116142015381971351319035375795938841016555931742311098201141795654984943862241605859627709168840065749216123667663014595573694789481287255606080081375198224233563625812375107715039705103996350399837807274938778454985957961403694071587776763540429503905126134187116267737551089331580511094323870054738143459971578599234104453942108160892745790020058983866305485097183475192152022506990361931489880835299130030833676913946680164171762932827412046549072575517484508284769214999898749727995646860592661661521941514839316306589759802953536364363021028503399752316810108593417937632356038627637665282723112124891176466971674769971056531652220449850191746270408978790766217093758719703571454962385986932960007339159993695568004896975363734757549406721612345613779409574773305194666322519654414946982152104501752830009134980072022282232364363820568205748277707000474205837430025508158251739399044457537154539071982136779352646870876304999949197291851673924335265166290080062384744660038882088154830915003611209850941932439915072750344735037765625782039724973242654518842829154581865729330031018660823047496790259045487068811744205808957817893416352115864028776123745246045867591480392432031503624106120069850573250446493696441689556028465799112179044838298722415735252879918383336451535681120180333653898886672637449070773147717638876141796756628245660532074524409375083982406497207804581076122971213127602619837339869526401141078725762928199541299739465671090872184617606161906655627361127497630541557853855048278249164893386261654605432968721688625750744889978276017202191397005815221007921594726266752776962797078343957038849350669755724309633028614002789287319465316482632275386451965255703465954760306379184646564401609093329552495367523663990279571989015906633385531084215274634101334247842166653235384144672473985563648364086797486696059580636197401204313356781342635795762486650419749068450233799008365151653097835189840236293644783418394397553963264027210748355683092160189159021559630985270633640661187818208108638394769919315376651406650500660068988404069026543484283852536568135754171343294000190563005123285799689125483196030187725699186185154684073175715087644799590036667591910460997513065845294265539644826957757671725867668887113227507576457583027518466757900183073584553689594244596659232775599230863496763159488211540785352781133594544711535178982777783330842944777537277322057506521801910708114212134190192501671351884308709809060565684613147599529398611749235579733946740365732225286683361451068491047442022536512862659003993413923668611813020990889337098573507699705743156244880559293827721071777505321154802181230649824090459698598929262570517543379818894843895950325036550136736800369180034586619877418061978797545109146235300540710521287419227617962350533040722392548338093627236931329394095454737649310435541147094700158559253907187200025067673382170572816410753803067778727691429146696113110495752485942688716147728860639480969923502277669929175969665456314502010137279500729091434059520076798172787549236228153892082739637460494284638852291365125563352112327628519976929195639514075559102358205148077603494915016011167190148595833171233219400961985849592621575344210641241580175040155616735003486491484034100293596478256499162510707457202880909977481958681655626289611224808534236504875655257075044847580987859392214916312904684613521536575353157159641314657983049734729346581360822921187150991793363289420904891844557127752696274936327457271208673993671188513420666870938327467468527893731454503432585833554663813511946820600477418177697361880012385496700361778283203165864560979445137955703415830316537373182589671028132587404871521379754112041215080437182631993056061043708674803067487022142646339126742024613033791065822586634858965762955981081079901549466150107858200573398226880759833655325724650578462298090009843322675847842058064022124519042298927606566274399702775789582434497635388227255001148138023876320722662590241284855964152871175327418855329361763936026262977990732007300538959692965579907588499808670841905970385947218679204759031635233544896013770147552599386738442254617918522582007888492265353054875640643026702319435173235138944983203259824207297988625455322804977017720851371336280806098781670913258809339082093632833653119711374551866956810448540907178808867523291069471636909773484637422938642528978355138156282942147919506789243765082945384813797969227873631973058525944296700641524713034854847297276784138526102460362343640681132649625698888430279660914213144368750490117587054165798161585049471401688510152355492554021035573468640104199328256509211338799597045817994890769163821698020242145392589551194880084859625600954087955403229661761957396725245146331004339828725768038777023411603119850517511138322154937718100430941734712575492151193602147293391924485611510045951457935438329081272956838099114145915396836968007377133862142972023767686053604206192963385251680191181334933408244252624773902808469968047114408939868171427145850026320002569080433012583186819403507065811820431745316854343184933955432922177325121087053365492663149180030811034046217983140959269941507243876021116726308815341131993459843872876057125335390320110622912123313495424143290881348408196036239149527379714252578087873203107337167886690474036029110546120700425397332696856803320652127693822790063277008543594874385363169230122839668331191889162253624539295499634105747930351730624354553086774811359391917399051149274938457692906536384832518298368787673288526013602639432781205552982039904520418732144211858618934771911572573012786339681293879539044549550209388267827228996840925439345170966073627443894917389690395378964976791148839873285176017459494033455697678308503425407434430527637962794062704452181970530426153986628085498953230990327561409922271828050134396969813101997356924738370746608163996108417229965094834146588391778686926158411907005121538968829333044952861666215878881712907966068602209258120140617195951887021147776894120702297689658618587868321558545478863221815000628459778011057210316401790534786759580781152524643904217252550887585742349916147851203828076887373223304511398537512965606484900160192630461203745109438142652447973165521369357942309526853567205085720099676521946287352334429966819195680861779069835337765822124487990159456657662021705922065450812809970947295439885999304770332819220112505580459243085216311142453132980894599011715080043486419854990153917334093444686267911721210284396593805862734389370882133169779410961987440884361081010944693439335204946339279684859523340599264447593054869983316366332435320883099185343822008934674801700136932536110031571896201392209324278636327215301287424223949432865957928309387622607198460456803766155431022961245195686325589218334524962065222235067674392051849067409938669014619619255139693974733116043837667834974015026239794071182767043883055213273291423807781939307368221802399695936965559027702531589117866976876796913912412449743733120005093392799996198318745806262325544982475612306311870553479621674101192425232763006278358368011116975738087076455880670027533839369042706075896948522171266872375677225613961604693342583573915416258697072728433751464061333600036872062232249765347591122808073953128522404018175621056899673813372788962369753126276826749318656935428049277505713059800882670989834505414157154090095250510195043526228175829835670466193587890828372776239514108785393808239642085228637570423868210735767077857569108707991893865966625750552590727282211241666037151817261940001297989312015782441066200706385674892679026002106786121214116086740817855197441739995412902639616224630804480278258171454819869095630046519833828615901694985100659253006137708652392982757405536493903854890958490507525346258184081280242351626750376773629188676336738711464237979557492450802154818173328085616910900953687732144366100771762129363398124994920508192164719712161255462748840540002676985854664419272024470584471892159753193414732554728778346134072952498889132001046467481812574300507660553459726516634000167847629492363456659836318432792838532756231631174459228090282828168639369886646397428936469789683762113298343084105306297118647254350485384605183227836136218854582892655277268125821197654499187155769640798748248375456693486316022441903467002720019246340319571695329804268698040306763776572758324853400472912579830549961595173722499111995719899729152811548334811671935788740071177143840766634999503036831564944813588144549829813348872734470087889716164342974659893819121323277911721324539385221368255520803789090665661489429114699984254536348147133118764478855560765032209102260293485452232024130536959742379728696770561024553173197269775038655527749112284754250266348023457185117090313583594494141393054787317656038382433834851519891554919523806617180201054780917246538813016599680249711239361765372296783909922121186849455353730592589409106707159234408286058482426707903755176970920161729670887881524664034184732431809405639913471610671836253317165368069258062298953914451755345710348468724760229341970093223040605907946360207907618574110348862108215182728284361120521081161275660584456812239085244862562589337309429028819165788709236946107534785201459601647188724602249052867281210983441638705021736187095641863857590334981909991757428620114446774208549701854468471394197425906504433801362679220400641663395453185063004787672244729559430828473597460396005300940874182738277247535852776731168170859803502697844587687369905930471484123772914843291663974325862421217150939023117061988380753427465761034632412049337026656970276394706906579259995444279927061490532602451619652825441043825122698587277752665801830813381361267925252367593818975899012107923385547267392388672907829400532718738566668632251986948335839502121111651301473343933385277632201712709563443802829347155816748397431766884384570540271624042489796950947878008831589128192657927055634856259256282529922642398996109157415060613213414272841771014921862816607269567284028474786159170768717513475326225525574793306862143432565325097370848471730913751778801446523642917148576341756032760164195503434779265943511714129908060339264549923715767897187927850967302432284013449021554404185378510815226001321073757263114519186188367390883739482016453427824116123650376319984280867903755303173541099309606205844653587297855409344718477634733731030345038969173749988536768627848164886039626999807413811919849497427552663124068173664863163019414473673138563938183213475566128292581033901568287660360098306877741390810268476534057374327151232596446282998458646268705658990688304340219101452522759052728791829022982335722453877370865020387508966799354123954954512616369101793629488116687762369858666971317307478906053881455942187873649711677950206815920261154310995808020745974895319363752119051024305494265096204726767294339467321347953168785306261529788882767907535533141762932739197308621846839881394274004686154110729298410950067607828845787277400947759865100047334778434099020346643225314666499384021699811501558869568895964120181670898172385994730839270674184701378776763651095264263953516715817985212464510240340622790574202510884365104283411555688198808643943946015832569164230704567246211833762329522795362676100831158654445774043169588348204725588321062566372734508318555784487858084295793307731590445440467939999519611095441150420694430269360958749024772765940618156361000633918729032837348078664060453688663391322386256879891047431033126329280684012391612252201026369878375458608777724654104485165926412672211330024385285104759988019394367161747164922477480610825152473348136361625836831135485398307019701160058566546681628759865697749136131588264316158018839649872348802367043557885913945746811042282273016272515811251025574583233603965842706427901812081732812755336442138202619153408734334065845438503629577227845987683631476099664390500557743886432604827689086888611123164147676568895144923319318951804984162796425540730542161471577414907912347465487439510445487987912939085939986633381656238989379205966589110565217541903994332545220633890947038302701217388077133603867865302646612772520528695870788108302607493320080437555153200120877820133987653960406028798398532353225142950623466324416450907047618667588398646775537925231210376350038300347927693479453104556213017138120234714494182334335935063575880217779213680872755681161590420330843962918322632989160409594080290283620437030469556055672928962077007108611267749180226517137307327346405837485309616643475712880337502933034499090134807739903189335632526592712195693778077730525829551463946540522925090162277857280808330160713148117433309928313451297603321594091665175927060123870291879845066962020586430369143345648814370425433040456676554396194313899614607409930523145689895352529315085505852510305419332725863202652277943244140402055801401768103755959009492860401764694652051143486610344912932245508366251290368907366671172844827795196820450316956880035676175537559150003014815218425254955615309223807964178244141305734662913828129922491324997798807065531539713165299534190360412079732938140305125355431571350195018150779605543948691690060190497134334700562773947799939118429771400295556653387864875384106475178936896829448253305283247210935393087578188810691036405540487192752887570267716819428515388407376125285285534864920883906512823480994615595448037066606381961787059266125577764236277153827965202114703196712547085877024748860285449585089796708823117735273265248690747014506574028756987228597386861296439637637840841302206627397086094404245783333389538888583366659151172220848450282400518942377265741485297638593456252909892360896557582719327059170746041655455897821518173736379294937776568993188809679335530433499692858623706474172875959287941441147708049669327396184989271660179226748457241116627963223094595860575538820018893878472456412891547224647090490295320902333745751916863795081611863903143736846050933876095379209466000398701991146654974611449905670210608273591753493768879036722969557289541519121158553066326896057108364956625832555186255888759748348778490237577285429683051543602766051455651946974378739786408686322436086544189194665428353873097993100749609470042517151837547363021636531042114935132348258339328213260352691463560641941188369635289528795053190308829674874362832504819903123771815419216888351789286282443246289517390465302481644971146044701779431445020614545219737670451509543181567024277907957832325406708220247559252985579538971173811231920781418625075604033095597401184198277181768497561770373103228992054432998835744445302628633095900094024931765248397798588696630739530461490767151248624754338846410427689202328812003157595398196297541020694530284089732315332297466243042475015856015767136226611851154912498464339570709621698116337634199604721060936584731164930915878885091799930773391200457697368539946568472706349282506817534444202102273531065150460030414391867060786313422559884276853220619809135013847821773878951681466363655085108058944380314385385096282604109582481203390712869241397379526040660631538179271629950115403069121632908962812224710848014744994994342589705497473672547350291798808848883166881442613518291849325583658295844690759298458562815331816520265284729031287155221141353594252861407914107473952982371073015239525457802076511680031988500699003004206092931761699617109655281715642926940918680543069306864958758290268029122186915759159867084346875162806675096233061886073958393780808465463713839040936283641367723814132700605330559156963210236061664264884763823500124028476826949896229871120858676931673819088689772913981521354884891263993655925466698545124625284460506568633899858049091604586412963791868819027472477548384803914398243015624355732936934949014921536895392088955084051851434951569827320560843877147958771269560225278975536467430831418504473367681480917975988610877127630717383261753072434125351123837602084555468439198834493957070638366288052106231896829561371311088917582374653301166401574285075704790520508141718878440352307916854971030144796818941037495957063598358936801043481354576254501420456274227992402482276655820645980535872114881279160105799970446123759652854937187288858466494019397980907317117881289533686626875229975629210616686713496466622419961097685034890824796504401413694678840828789045398813361293374189251678480805491060013153480185913021101951683931287036451717024410720504440255952064442266119054778919579923604496038993639567752028729051220584481600552135794515780906489620700793311138042450863104822466285144656742320065781040953775417581829614951396393576418323963015187831079134957471188153845741276395852922826235157086711129843993957514544628035421015242437046045666363919764342464228612572184447541621379070134230584120976429074866220496504855041115690627453602367755959856309539047489124116915515226955553931072918607430314122673300715545408517074890317546331991960450529057473752949412924577831690314973859052978832465093547856223350648261950753206763720360318329173911482819640668145553844998981197290480310098785625463360075440571868558726254401973341247384269998852670494745161670558390971119603026860893605092260226936167920421112958286614210265782872795169436302659843076730889896753002140861099840989702457511404617741993036422024604052462598059013234551676839737197671934856101968819516395489750029596381710138221866226245157382339120951095608265535132529969229354150683798953240558897087325354469919910614483525654107551542197993674773805331771648207724110255656959375492692799838872267412758205126618333782012383398355927134163680729717393752829385520912292641821950551146100899365282402208700860891258460186239560303274248628097094356122069031468900865324184161841844314377104452264639530979366209586030870448937691977195194061950929108769660988761686904399157122433856641599012250241484092247316838257653206294097089345053963696501000108036614963634645967344532404990069478215102966791243066396670306483705888813260335250134502995265496551531667068655348201776872344937959683951893883085237523152512851670491715431604997435797618698646067538602344673742992785534672145508784141344046248319961302018887212665521114521925118731935522337921506388586230982865233908852100796670932076014523768082375517949225300104527625171982803800904611250721413254289730753626466365550392692615057543566841831255909778360317425149345080231354203554392272794028092471584146221163280954218936532715121876751940143228552801688445368481403494675490321415378945358100252147183997743348958508470382122894904745504689452159077329453659401893172515307630062919092045534131391187063151897591799026364511356147444314226357000495163040752994228724230960897258693795394717727265332161401649817072514040757979512541948868626939326271726421270135063023857201987083155726632901185826854690838797518751257174612915288883014548094095850323642079559486848368695131197027406860489599936458531772119231578678366521693547763772506164962328462288385702492060721633484952119430408598022869373130304362216846639923611270893151776985108753374899232043402083666433783933580131203647399053364657136298656893050713214577027742591423689761925153387946039469828275319506727746735963500441747550566891329954402409852313903452556467122443124622215160959379961771258393693586519637471006132753869055962974341266749275329462721432981541947993820414500099473434102415489082737447119743714717270590470553637372023882959688189911940683011240257000990645126810615186040990316115991935793977029888489652561663691582553473050500619867816035088125589950480082735081403269972266681419110009999869623178094871274392166096928472695748344187730274133231925934744038512082189897440076653106588280015512833032105978977593855826823988445422148927459566234728295978264993304133715996066099170107928077836895080020309274488945321931691733088912389518269073738006092320262997522129935311567726327268441925876249989588434398692920550811655404744106259454344106894376919979996024732729274605402783355831897318542834241759856555886724024056886655677707165933886014156791122032709252499987622549294405167623954480889820464586669833887246141771916177529158366905232396699376442966281505635222041726508526909040766360541341591707783437437505433511960467598807914768804925941385698767771370030730412943223309787546742953934547432536367260634593442282139405990066018440703944080120414102138690329692442706025343541008692961979860808459957125555595062851960061035346086674872801352925068960570405783847362761420437880709927405106755507283471115580014670299898014959664447887417767396196501217813331689568745235777751114837201695771817074265186943484036735983503846384546421026357836281396397717765268198203824625493745077959676516615069241402918053541626618730489115765666356916176770905268280822421413803001872963908963894254318618846602285982904145415947397932950619018947544293018601506247146540700394836321134852314341766628530271700664338346859640298213644792070806945974822278046823517036237738808067367164942399250509696725150305424421359225663748104928995200549829547981592417543304943982311918229758661405715505458805019809285931051674336683229465692406948893253485032898842833404501768364381984519940122791377130237768989218525844217930543149469277602064745561398665040667619694713497748793043900567355111281972088598483533524772516360204779006516019933538032758352154925981310106333576841053667016154412524055874785133848405902483526509428541655765313115573889012539834363479403209515011696626329311344933239432380270830178174831496509491326436404322118191067618962137964247898517936596248629900330905862592011448915336477072292487794453758166836312145148791322210302738375981132851607816178371256962542091842182796632757949940617621278309582694731004261663122638848614633531038262774898092574684513759108161734494542632611634617790330701151016185228270314473439768320119435760942083377695943344101936589319946999283080814992115496449466532587172299688269911361054386296178754320420758447039607535861480067390592653196023424968762259721369241732293648284472455184906767642499646736314699084649551767669117273079329176772156221946957118158877367672428481722472355235329585389710752505367328357858180014983525460698731116286639227974237024241684406574429314942813645104651754176356064917678622254031061919208461934560649853259006663171435517310634528902571857986643163525583598412228137596325912858227794703880359548976606210936399796407055251090125984612407129969246999654724870198240488279913136320411355675760740489915328345384982435782799599383640882232501291347353066095442717568013200587243970877876751647405447341399013428119052922958624769578160934388985706881640142113856470434346607156320397710310463850949095601030482261412192547527619743024375886108404880240026428523738635502346470782801103429867706075836108720988477180558272406549778685852656579994069684009645339563200481707330920229334601559387116971067514870222073959808036304503077450715293327392922531295224274481198728597923286628334387426792511338993435493883294223217565907610933491133635583783313552517741124777386561562168057392401933346471939942306551413341867175783520961726090769386222683412659808318592068259861285878857351436430280961626386243427099341404198688827098009959081654246952451794268934029087489620962703247024960158226891704459835947192114729145479331849102305663236313017433009312434753848093224200124116114299822782353417615953715686677182498494617692561587151080019619355442919311565483366799242142011563908938604181244370854975610827137066001566267787190121630152599540156436692871103979019296159760630263865736804640120272835634964623592568175295815662563815639092093344798691274523616427218880547250720476347669501106051335368354457634135511531982963866210529885451885930868027637467076285133909933310673900144023935060941038081523611151485328273708288258225049060778991285825195911999046878088994109473195849679834482709627283248427059939581534725031499286156108499153379291477269656407671622185370685160249126747128321425534243972546139633089375646722522782897377283423399671369201002077725363140029191258302900710483912413704496627390800661367206463592019031543135855361417935060003276430974406528431314547993984916868969458552590576012192123024704696455022412979924850290357551888575848049147814093632961321806464802392762961860616665772889677880993136068232567910862935547931126829561538174173248190545304383795174915773585618500334998708063331029997291989048845422966304957693085140358117111347945458416303216658458811715371979727487854490373156457510054194705161002733734248645051688527465583503529492295789372280968721530511796084728013271074598270962900276263462391229839889953729098700896702998150889881950768714425063468441693577186623159375028581421801864990537109983018969788550395463454671621893995137237684272780540217582613388246953932682824747841523352071187783732705674720328008117564138943273562237023982949244260166854519115917744715209579886849020788961718704190265041006084622512637530534899436352421695118989990183698933627165141192648577581574630464754492223308421988388188260198043407926775846871168563242186224482606605074865355780351464582267564762986693730510496540971355521174116829224356684412835686008980960744276193278080334195757230173968200129051014151654405408718873010121425012781261589312033998872911726404563411004442066235056475909694504029725049958943630839050581226706767673867410041083480698781779968754850452406094897420460945857368492352409768206317389082214515351394160162062701081932741023587588283105867176805144550073272768509040785358175409878731890409658022951709178716324718356279007343827512546874563004689230341135491385975959190413980698220776265020983658033156745209316452056425524445952087418128361996626959831019597424536969178387519265360042104097259294624148034918964272013907741960173842123513788689344874607678011067079066183285809977262593713713999228311738237491412140629479347613749477944983072041562343006029843175167161625742778688238411332972829376004267256057320289537129474670883283011282775566460760262190782004319998518772172325386324871476692766548953680070580293406751850348513005342298651530768905376248000457071851923893302244858304224789669974427715586002980832641514588386976292702174096303516924133716828681113336647150590144834037614443264497031549289229193355317781802352012226117609172394958553382918737240226865694192297852618132777917375055302114674733311187064605700001990677231354547025819894506589114302417042141062429270591780438142753616309804853824723663344277136683165830805812796793899661779560286764297596074742027802087168098701865245822902452792080505942307166796171631517001634917584550667835599179615290378578130898221512053170631780358420374165729016172927806728180954563497157906618885148537912192912466988842690183644234677204076348223529111359045300163032109267291535440962034539425969026601639022679767629159543779997203259747734521529614145817705289339448013803140851856129735691207587188436199900477870282699025857534952559672464349867571755885980220660902987762408129540773236176626572300533882392361352808255250592995579886789049179020808266440795944150208810855738154197165042688337934694159162826838099564471382048183679613230951360941309904829009366322270153470557477017504956837749856716952528109794809623624187689578467263966121673409399878950630390733343639081359392319059398217774518337766374699402932103963300904972773979420650241340363498725153447516194098600700447582675516741150105099957450569618227173483185981362899021161405642889470670760388339024709373680965147242249168671577619620198383618449874440809314482868864511274318445148983992785500982680036504561318852477272526336672472633231999015534726367555080207476001123573584862261477045734262634547319990557551136114105586281108336029834213693289417975945114322799674919855495463397014941657228959669736733807006546623892957074951885838635929287020797683617161360671678890090563980830788490270620263668625487594681326795872222171897651212264271641086973428954476531349401475443686403606408811881904060332150493463758178364301666377419259645505366653633205620463661363903831037690931753080390432369788791046215320588385194039886720270140658614164164908057065663516721886602702621418796676575360029562014703163835051804655198989916154305428579858427206716761698665568622011437122710674175769354896587507451581100641778168347503543853389077635109865963042411116899465173039505544618592017522682361291226586784334984362110319086569742655162142519476823123739547696014909039036022847608417470150625612171198458414391656148230399884366413193429524669751326646140314224164353529526097038103391094233353871419696885854054899530078294676504377457796780300985376596375096931933628371043213619158803109740357920646989766075433038351739569139029063505800498326317437766476172936013928682529215244068742723299768848785342707460525056450110595221064908201430269031063179698304838859248685468265506963997527803395621825533244166917561292646335222215955169098881324234073891021708270462084415854914470619556191409651566760759643637554721244985067280638181308473573523779921884281410059894894231569662730323358627617717068597084363881925762953204524451665290928110934830997892961614761821834908212715117777994593804990657531544665571664822420383277209989917277577653045394202752895274201276807541253049401366245725247808222029563254587196550900569231424867521902335361901300187111640297676948668693723135002012175719439882806311525455313461355612867580642703406439414852162092044224647893456836832751349406285474582249187434381208273348087651085878565181730372160907206924387302389746087034648081448705713710904352482086982048979462516967112525813810619612065762210746187954904227488822132601736682837144633571256594057349460997039620380644353403705799556039830407948410808033050479652942396614249151682739777588198009574949013745985230539675135075135993854680673448765567483862181281593820329081429611800852453814639486990562146824862151475706585314168386915484579971172660336355452490852104826628804838270743212619229935489503959690256957268744422337645909722007211712525866566121368651206010660476832746009048119626122965371350441442033563069480443812688833616730931289067853742265338310250033046286857444674807029238955043668430141407028063667166828920025825053438048289118855401458396124540511465500297919241412570414265620133274643283712012984583705593283686574342354779515626312625141839672070726569632376559856165720406116860457897529735950170934031319498473746640374403394988653019870738221090752030142915518913950030988059221593234724310122752615751520884308177615469329947390315155233021838885913023735371752518889315270776917969013583956617348001097562110780869196632325765645189031471357763829940440366334494039650326120186292976703299114464276503733623988257748979975665359872231589650522018399297674173970812058397062582516869834252695094802368914031477105554207709150430264607652301817524871132045026774148754722781122938726382978587250858594369001130881859260507186135251217804796850315495591568851285593385010166874057668991336210446037238631552208266275685074329733276047056660129301855370805367002387823082547389599118639971724765319444344038794979451474090587599485139981076821026953146605011241840667580462193003145487794657110577891612776088108115743933118318235205543332255568795659510788599327947225516318714073575446314946799158362384912600855806674917195651371489752158222708817779011205948280799148169361194992444574614067819825421932984263800681450778241235959849227385805846970003220451198030526358682074418340921872374508614365649503875529084416711934742876076728234851408190983035064168536481547204230308581717850886782478532066655932014009059788828205250414793568456210675626438461561709686553303951038299950513735232839256464310471879470403982703358325453108253736189373056367045712088824405625003273380629682273752197717935208311342908006632092704187461225389436697069209253503957409046185112070369566239794348707637798085281203726677338954662705994753503390774253337813825252491331860547192271318578786734458525643585028325921215554981124156751540994138208922460137684899791499529938573892198910506300052660779684595572479515222720409811753620871715931103831855156917392593562252489479018643391373558256293012054590247153643359986141399799191624003561461211952353637275167805983660438376817462865359923849134840588374640714228566790826726167564802247670983940807296086048965691917709989306689464960107911365048088627223324866761757732419650079506082635794420659278242226865925008724656276052921860760494673119783533267716823186200852578106974452068930714143897474738781901974438802892818558289811733429265088654445361897563796702594227119601978088764900973328827676478583325867294316750010995088998701293487461773784946379555920744917788580120897632261360825460963403181144931251512598732696143872073634901519333700838994032849949594713534189306062938183170512923657316619412389912162158208444096421385759023147760266834023389015169944786113982889456658315253679428100619641126602552588661178848536070534040665908676054998366683577025907955082932428013947414206899841509615865082327894302344555050780752382996851092452648578520544871106164165586742961814855830648388845256277595740909106741596454630852277914005211356562070417491082702234688390415263861097632936358367759754673367968456182151163744648657839502790590577504529213773433297322365016778468821347649665689376650929730121840376859602074239744477836740480920710605868121094564117420486026890880510207116262085357078899551351724312834784861679735822720003025831864973941552945254814680769774830016773918155459301659469394529495113462546990923501490638900778661494518391791991141790922487069172063238958568458567669983622917275661813683617475078739494314410012461740245066135781190661782742039218409204723194069211593584305229855202061186350783159645252250660466298441594288948969720005180943087640730616077271188131576693169736946697331979300825889892604634302145740100239965777720846662621834474802910744134943413320323156846231150229870063846134376390402609269016790540144609516272360459038276919635040007536623876991767121130341284638607267677648790474793163221670418882944359961629823419123049494676803324731110725878624380524855120907437200961838665707863318509350257903104994156706834444400952076222084407646801386697605008876255179987455952846021585798666354331265126538774274277305602144918567502240296866740575755377489507815297887053630913718836917833406141821887724139929403577178480391743027982436018110710160554021150658286710811583909880658637189424440367330409349104234800097634263415915843032846776194720462448689976293829572224447725075723130150598281257130925843979193416874833978038087602797515402794523362302319196540664989718998274594748100478009435067278523826575692932003633603284659315622168902659638476434080979846041886558798104379454971107509591086759585123357938857985133221060172027214012254003373565128305699139550784109157083692246578558607791743589716201349840296599644020021523381336473394458753875942582756696623946637391845430082529781367265144013055873827548295358177420286928842076501607906887094265002516025957774930367483238073906411448583521619191035186912043389430970018729842986717828096711688515367857659113192431484677111706926863396791369497397735357475759182057411619916754102553754719919227734851899752194702190973231553046430262904829096155039530805074075538875363795497375953985826782488493417052120608488884442906458518237724502478557417652084137917016384968897675956380808692043842979803679906410535115829046403948529836180991389911101950341565635981178250922887060148732216065659382917384913056705362671631919486689558119306555763981741370002888223402427941452718887030222289454094561896981962776177567336143331625764462318853918098676433051403249982062147600640894362802192568257861951932026888358289337915011397271104496403629402790910853200472366161669098776728865616618927413923288633706050558826338691664662052421915218166653221849711894583777618040318071123104076072216089129664085024813165382302436395862743254792217608115109805302283742050498504745634233956698768901764568703600380099798513769191748585027217596243224622769966714502242427101581278884765471050868702762853570310418013192271212501526680573134567542550227477479441469577315936415386437757673389943434015078251455078138231500016294330687646685210087892117000016706662116472122896427629964041906638710026337849833450346585255995709906713570129568983055625559499059220040182194497285882082323547281677743146329501993402804136119293507481723138950324957014606654223095372588163645601191668464765551000188535381462070396522369154575625315116249670177617553169271160136708430283903080525925432239983385156328323730353881192999394105696650224324013743611139694088478701643668316482915582706230664943868820352536573147477936358693276360899443974050330350697710803481955175726019141358177998318625034782291039123574956248243291370597229080902495081785853470856730949827342571512405046833139287170876621903903681483075954415957931726184740042975687369313516421820159373697753952364545616596627630991246198540667366469654910762721957655519921077550537156672641919601843867497661744624510340600938865549895372528605239430948803727250778450503460579492523182728643514992369613215378394383040821719986028314409183785631690754566525095495933065094454323729781045799342023921537293065579185797376790376877127350631645914364750049040735131280857393044707208723338591797796971742045073971738977894870118653953428623314682994301780752099303979184287414467518307429119908598138041433246288176598157221686420376930493713870587257396249533822058713605930267296557809245962435470289828167664982117277626633830014668552558120310424468949924464606998258787528184386699459052204411938954771191395597953327840017701804047031253543609963265528647890466658324105924101370924918682376898956962811442757521364052117151149014264556631528227817629698999263159708373483762853947701150032350349616378341441205385827607571504865244592314623303780461981895697189585541218573083521357527486323899447525284847215140136254882250739863560996643318714710069709878327274044297022824186819682951275529789102875697207495084667583747382654388197236140368149130385109490687796753339346049240316575137343203434716363299235082904670547273962252843985236415152795339806306960748768779648802683743166646910787607745148758586733640089694951177223583661127426816219829856902867754834031145782552069781044134866055980916288400947567494729621362942421358429943031191477370976190259611943341184471181593292582348513266039675261111298800711350161800640932836316936434191322444616485318647070962540078798786277689409517034184273617687927284064518346888814199454239043537813261281369411608611320947732155249868041902616582095884574914215334898823639990795689723076955370560288337147591895237302058476962840211983595907400459193715397555277850451202403519446966050574423324917876238438662015047880956721167202727753093054754782783601581272757917585448968586184202054895305174905789079279447743757459316732239657510167464666599725919991544945099003389035222338657892311362382303681635843877595319381411622123409191998682105739920462839921578355655029203887411636056570007224905602816748602730754350986048950804209446366714024595362508018339708523643728990759736988529815447590103553936992384114426933575196766722898957658043704744181923502466851750002197941454279744673300370182126210775795543211798958560682610655025147772095977617765096195605315409332443029486533367349449439795255203763225545524724534507508911185292994796611324791704517279348449309655825814417794334987656880534333814008009327925707845915606418932043967987953463937426054453390100047321757095339765154177947536545233175569861890981622379737559169537616431971591632828274911006221252415048286878170173296652362808145381130377835444670841147784871730903401328460150966974009583752962010783944693322657057258448650387592603584742968650972541752958679800328055168265318833274548211868423655934442581942122483668868281265135185342309879616879686235811664572185825932028227440558601036631987974051182294206175305855663288136636191425086873533863596221999676329302897814914058465251613003674459006822806619338779962735456465714629729394536473314096478924366416575603269210251639456130954438185181394310527547057458716505322061408504757014833514549909362011749528558513817940730725941775373583991447645531320296185394993824477001957987858513121564126660672878535998661982178328024999242087339318924918354257851616244704889954605540622147265193570878479987737769778597577646985917225770177946242907332736237664524959212846500811733111933749621393621873903373812729744047263644766800639746687051892240789234392168356402873164339294639000033331264865133260496682337612636467827682001483583906279854074488118833212950456598514833123075980333807786466377424723387470781048635650778701399952603427396144756715697101449188269667230384843961685726916999898529112039608062249505140929508993059265265570592632563651836053325088602028513308713731200283447616107245508284715846814611919367231421402536772633419307116379623352078842313153656660733948856452230541653469354963289948599821563423325116454510870283275286438575803025395829526625055274033254078718373502168964564974677691974089562225942723150442791885635196674176806007291006192554970006296477777312418971419130920976213448365437802026068389524115491331140161552361692570841122554828208895649634968061811370304472542014236594209278872115035837474330412137990753074281986393375446523565155861301589614285113118522459577560697584555227350076467279684459578913052237181571788054173849286083182788353019173322783904447204908100538171926835406793170499614475598280839209556325831030250937424761406915169391917901568268353045921243812184192046758903454560185970116201201370662186108604936365043763000480149712512345043843234555962106595061120733729291038075309370266459806408598589108007606862529332249127317697698152028518457921926816802706366904411986344413040375205205693555723638923278492447885026072524490641411157609206563282119920226302388090443455173357682760610492311422477448183109236353832723016623449080617001211672481383070695522598638630929933167459178233596504508623995164698698420769771130060858778452901020109448449197207136257726372918022399481254640346742562786632912111691993481082700927322393532466271733854968291324166064036703783284908213001379752860456292614164760171265047281259177453988410838365220646451473133033807165879529747088149494147648382368018474371208434792194739394301528362641978230293973922839161638769670581502882985785759138242426133310312965940619598554572019001464931875107467598087755020540215246389005067910594845010583329554458767202242980212998411130994040687152390690072041435333285397521481227506689802038959514265211256402577398467175000962195465470305775367627645039309923254176826363924044932351833567869156885479480274115527400323616228516530965243761917134482046016903405456933053258674245053783916384434160288678748287649341820504159534648493992935545281988528534067542419259827682119020689308347004150996627769945877460609057543583866479523760070330366836042426227411943225150092754781723980437839579251348870873030248789488592123160942665107781755011309813497673961625711312544861345697358950824309061857602867540048282383421576079999920557366150828655654717019256205809144430713099850109081881071386585499934657895716185311494140296526801862583929181742284811630745227264967726202946484384294347167974453911180972893929667929221774613688984324540128584944928246368274796241017673824410439188226010310894386496021779724622632961802496794228559326527069985846462434966903111769427026929740581169398718153618644716433224816878682663178705386984797694332751643570889676972218232905781040671858799668832132837944304207926313635407972963677940854370555037107985785460443894710198908127538137149504787467176917085993051085995760481623136450634365232186688968057632263418003397431708155006919192227503301557346302566377267429334294173665109232065130334789332832183336404852866071804415967394055052436886501857588470843574034689688374901111659111456016564454961910074005609016276369276957305292308237099220559579561104517420699327731508412856197549944184591421683109935901602899647140617032504605715134829387720000905669159276521654349357619994043454920815595709092114374495508932308426282594160076670571600844611605416624590463827824906671535674951748400299496979736798268764840393489152474984873578057863535659148344707960806964859800081094088722655127803959026851583661739841189634676958790889784127558297787192747162821626397847426724583820600968128891006350971457536721139820019186113252831178755746569005665616837424089647971413212575147729883357568188570165792153125424884353388465220182934920705321252557783677708452021786756817838150703850150085068978250152415058583036877916729711777427795688493691998645550205005977139759099117053308805977414792133901409322232188758754715581711952461296228563467282546446465588679544955258174187218790128794202734147127719098052759407439794374033812500959453905860973440746803266364220456131992689786926345147816451773800466645336904731067414892274191868920875214398279017622630312238012224115173018431045098059781383001678920205609510910850870657896710865489975946790060718802349752945597514250048820690488542743512200719486033499434733934736729887972145181507967481859867851511404514640982309345622029708477955840320346137954891261236294864897503335803451807003884602571377479187821122313370180836947282172099867489026190822968567458057287385136341717112278667112419587529005688496717239168838410554540393605561048426514181335245853576875425896780288084750690824339347308840731672865595873660800077342362954059334969429089433475613816183610145885148590757778385171361315643597299191641939760176148605166294639400856156832746350846746182626667258156775137363612066973354398083733115500902007882745121842942452969126973504301840422822025756302404111567773129318976564968483270877614210737037946492743996779364806572541985157073540159581981529451413772727258623690408753642746362242513239200743332251947685490958005686536658850126876975690116393376240395532214716021514652775573275501053407434621233175376695186535562079466355399604001821131873287215431041756172565894906097763318511006023148616580967341102070914838872397610006847557902814879757113656107653733352001469327753845038905078311365756998318438955184611256017083016203135052075793877149819549895797438281092238005285445979224623539276878974323574638673894380171761279987681167035272230728906695420853590208772765922209662024425893967299317610944733829169677541378713599335554937016276266347014040783821400999793436062910395139448731404468473137118342009044783612268187628493245979283786337730962735202526066949013275396691513383150821385684922234954656458050569939585844708102764546428083578012550532685028470173947111784528188274395406819592632248649070593240833192203914199838162508262128299616667897840834173005744394768016232744728817117999892421019232790803749566493710008741685728503611361948030488012916915928627807369625718260515351320461255613885341977554463157712152853017582323286352154442855744005393725452865384111939802201367251482377618119305030848674931717544905668685058800915038252492933590021751138148877351248850088878329070340648950436072438057075226780945587702180504602531048112431474610112363870954999401757027775063167240902742966122600960304006368873575806059556900388915351843895857638852671201437219355342009414383696461116382051069909033985261584133679738828131236298824554768136453396733931158000658371116551065972380334280690856476885828016040772229414123015607830505109416508798248544189110654545160890477817791271812906419130773192106931619930626466344986483334773685490608223581775692348674740810280193781841720138495461335038481201034334955937313717583019838770046003401580850117622957937875211606279584974918992602670730322540668316498199599313092742912161123736112564912009211814447219154967139547596756249783915090778466018459503228084955134544694284896636373828105219543138293618317405482569601360194676437055350214692787685105295937151295723637440312565319779005762427016248615086700404817748005926659788814453574841176387671501201632250138498599389760542331027732189612988903792749263257883625465845866690505181384607342262795017998240099305473483569381201730373395658750593751010959817495338331501092904815631063078796981110905912807301779075654044086835267455579132650871703029211651003043275618558596428274967119811186847705974973476167094028601133759808693567277863966341648299610928047668887632171929941271886409046901608937006959245408460950683341303249614761048396084647506756723545852559608958816007160932011736538298054495181354963173549749624159936533586681594185335483972704250475421204548059841872760810410311113984693068237046514431365157639014733311888280514808687264508367487388946654841423833878544508059902876091571604179919887378678280076156510300711584826874081463787702265184576507215447322011892473197119199752614969890512491680474118144640095606035903332905122661263508395771214199348326148650807716150706794142047110958574365925114073004905078942590423083623298137891867080483965811280679042386544538111992987003553744397639085552608050536016465673289185685449237646515722864631756512773011873504722581281744033266565001203807569162970552654183851156984216215851344457320337217694639639996486642352419071059414476568436941908926473095137339336540089321431219153378026922549424794048319900354473451064925159681817987692005889341185539700662460208363699763910194736413936712946862320549757514106499408933203578540988076304070532011304270268541199813976737419632631921113047010189615626745240568140288915029012242456318439645982029333516712719328644093924611655765640818615612864877045565315897252408015546179392184063005283442430116042682765601282338490907857069689621783715959501334521210578069379640190121802924760858091041681926693748743747880187538506783474801231478937696734304446753597151653653471464419639902245166831756129880495386345366483064230036164523685915973733099025774294693314645039117735625456337958611663984902939842464393281428080722639410574283558758576906008582005770087775139460256528111085119998456376195199213945290483518937540247780936697049705464098224933876416646500393982157714919869691237702912980034056648083392659503318073795957575585209557475415678093133685086934152667445929869578030898621147644950683416560833870441472808423837049989511572067700169366207695598144047231736185058413485153326486860780357653628983720120952378168451439913546260016752541161854361005107347598579503090723060676752029851112452527458965331022606116602382364485726589099159126150414672230857684069829237152166188405088707779655742535747455602445707584621159695637469250692935962246344591913980217027626394034042158631767340733514612458590706680467339148705826362453122132571935664833881501438743975773181586785157908841383753322931193164492870778641072530403134148309665423043199237451086463260055310732709658919105009369649499601805904031299809625664900292559496992094763713495529841051522791077806116711341589632226145787258814036709131532703228361475828130935937411087791327543243082236239719752928358157895341242685306236774808285847375727633211647608614210389918794567927278022978269228607903660596581767707542970650075292472636060413580191410913464510323542613084186366822956008497095205320766036365441305175947678828510505081418706158602793070366903647570298469691199798249141789489422487950055948386831728839860546064596090932327282368313066310435933815657990708177948254981292533063045270974705667405991067941365415177654405889842203227848650210037778376512286725633694190565789302863542710780136681808623311161797288937213040049405498554000535869651233558572277017466703281303800860783016246094436123330425989195101455034169286157023019732726484057217878162031759857108439996378165776927685957280402075124267107903369264557765519205196927597386070614447600606218516514712679688128850792588227129784171022585737068578996634365511795522318486543586516178853065364716328522145552292995778185398198061200080322055266496025914257245898675363119625071273327764020801116969585611354443070119273627134936739931454649455231874046791918364899635844266868927836755133369408560031157508404294129127824706563071597154437302097237523938397310512710462738097826014021097267743097342129830926006229648631428196513104954917437838065954645571164970789851087172694372199945475327502223231088034228564457651406358426409326544214961802528079264339191016391918803961581038702420046851181790563942938304498909304589885386190559816750521091295033632921917696013180859709071209124384625745972888160867627276526868999831091482207096075995238798380479017549017690892990055023149130388654311611543734782403593435229666698617113982617029806982418087384471105806766993656179748256441478289625602182343230349322769451663127880736875352316512634500329730664046965313704639751626916791756581988495772964804171141036968029455693829965192632589335271570986905818853506172620333560860714461627076417900175906125000025721003513419831007316689689990471864338894477659379296410570584261578529356640085077730248542148698588002644841118851305212458741403611015072348045860638698144967868524917385448590363685056503630811559604860190937156137702117045461908256565728761786408694966511876050690024822717458917880718927026760723770922244899287436227595463488635322377614923434615812085096216711943859722032737049967175261144884624144160885738297958789948870709607123983092309885669016149482838091775093446995295056500121960234802008040216665788441709458577734585967251518954271015066022101715657832853205398071207404736370221491166443946552888402643670430951077483125109758339516136057948768317336987056270939529130807773703267628171996690636967115854212507680131181715168495040617074522135125588844892796301590586228399937914363381650118842076942470559843227298497673287253837840469515356272910809968253070974163495392219178030934030873283225048369401415360285249377466812630033229935449211362914667729117032510574480595476595114802145707414823851586554724767850756397842908553122485417075665381682227159289355167532070599902335764565211736088879699693580426183620500623065365589953027730445444725689289027466742634501307691881668513370296880324037318492698351182725360048510638938370155662320278172621960207019066048393393128338989419527691266103825775374934636407740087635286317105792803599861309182012730247932782525954520923449750434485127893655378282228020922576346862592954025457624998237403964526151569505582482095001839209276704550162240336850864953162111413049565124094229923732545544884753298615007485748061046100134992424306003000693925752935210729911525957399061786342497077806889541688951932138418955834970455720118919461484542259218450335014448705507021069864806078062024072262324590901276559052147353844630698804536207935198523337803017443184611092119167593422924367057467313372347551512642301790459761178988077495109075935707605375552671890772265088190137648273819348555664841069752096096625936681815635236195342125090204530740481762573330504167276967549719771885953827246829144142420377249344401739793505663933856899774526855663179679869792329582043364178335411396962433572206185080983142953892648780231467460070396989492229383636395686936254298714385638630691108245237461273711918782248401733246001767140552112036638970146039042541105829895958025989936925071176782119375722723128981835041646221696054804168031228672965330567442208715000328728124839180803774884771996013001592102342551538192738847314534725117283911172442479569308769639898106204281504111389438535202067181378580231464166027116695989151989385351588180420229848813578229211900078358865239432473847743548816873879657291659631711207805008971715796846991320367915561041549820285672872123216974190333289952772771288957189150924269417565051588990243163627218294826573414797147780575893467125875333334491711421070960107282992198717622381476513267784843365957880697955083611863808501742406781189720361194013476042219798484637668983537902630834594430149055050725701716922329232164662905694363022436099067187453587102997223894923924180099501616265651806266867085588393471018578853784683085096880396421119902069084892208557449206670254927344823641495981239368822942668832062411406857213422487736722526480711581787171664951596668302828396348436672813695065519387023692093032767108621281413408429663500976038493163400528850562230213436348434804108647146137799627584867579940396606300445250571466493908552216084513501473730684796139546938948689508918674535935490542323124506147605786107260720487111360162267916170910248666561176949335521751653302983922794375113384002390199004592009896110348316438581464508252814854198165230206493185149105226781955249122878743007503253584740996867664267015463415631334142731263580445951078830788378293681399527478898689583170499964491892054126859680622904693701808647518178292102019383987860268789801702576967707000390964184012806694983578507981410757157591754919414035822455583983417873756958098808648651851378639107373899726225536941606305674434825413285185314852963671896662749746405735728468457924538229846799954295716397884453045013341741320368487735144857600822593182632814317697246885568186968449465177528342713600599644231609310201117460816072046639728336151612592702922915053821320776007919249938626530384242536831243433064448725828680179507458274433095067200895793533391191521847232917447234873401254853577668496110448876846879947440530113830563659112956278464649976237306974333552303131510986665877752663070262869724021828536280936549973616834511448365917594293519637173101678912109719709841261229934848254319619900870755496647901235845977372786251689745384270408501939781010408666235017483968733246814043599260764822443265091481979045267703596494198838937098283469228707470308329089499764250400807905241913516273734096146757544041568444205745636992928344953976162682307812026446981807699334095964593362934145333365717530000795807568252809200759435831544401409580160925125431619312824086933048670070510807918194984675937828814191317911004648594397751329538402541127357687775568918889063305426128680323959198620692607054662058027726163432302643911129525089704252280033949155490276224795521846647417614158423131493594996537671337088843339580320660195144588945983892347809957684925024133013089103611882602887396312298029563821094710340557297823413507651506205580010339971516652415095098624957844191678854937519601986650705670688861819301764137476703753582194441996949915930856320035454321080768443996176040707145871990216653500695215067397428658774289759313526535259281559388806719041559972505314140358587509354724313886187696084861106203403093798572083884805229854574916888975722841877068117297796774903804150292027420359777417685754622988152161319967674328138398267616716524532423920360289440865587069025568095496787957887150562472787719718823784964682811649425140249355492655855495227718462700666963970119733442818788721671964463330196833170116543869925898878345309171653250507780661832063714274943966796770794681869323718815030907786710799664768276741224796583035365618198475102555199576519424467907511386347720291922789908157712938308288568933725026451887753885234582929307283279241874267412057114051315519438219516374367846668789253965856308595313892476931446244880338031234419096252265823075749824420627120960331553231052197846579497864668780575602362728057781682086122947128461555196901846690966075076552793450301443814611304597540524870140696990794865902920774035832290670361350337190531801598309473461176182657946735986666737443105674326746494053364453833458925499533345647403654996411843533297801460903604226147292525171101614285781865714311168891267708501046310221541250999620508646649496266535388670570424471981661539735223132647269504656366742601915434730423782180307465109300757062903842364674124621245650977373639418999648835621930397249615058527621399670628499279720429410675774457571660632716743266365803979621502366298483849781401066766021500060646279864763860982314547462831457034717751834785946914138599668406938551914633145338558476919406188101432564996882370126734621304000010312274660498433949083974125256885501186773782960986516547372934714980120831239210540043284657715076113292732307217486921809359295239550230213593349964587628554908802239702443267448178545328390543636870170327050807173681324071780506848767168631636306741166439842901997462772705959606781126135512480657950739003916950046750912795145656170758545898233372088798799721720512629037070090587025151486699615086535180992611434817581541476809477591093265950962816335848151754057877313982055228470017132641822035770210112817127945498840565500595182911288016795947715778777709033916430848314830786602645537504078227927354889320670158479285626782431421853739212056561440570151338471008243531818634042609082275295370593845359798014222043154795099081704487095652084162182041847049766596727232460109533650200635544212426722064151838895416616131736452833146478081118670021314730164008748996335973350064228984753483621070484825245192486582205364340103998393218574261909533556956353091075877220288151362276473015629659560860440203722462463592525696389142588350129049527676475141480173401859870082170188012798718558369403725331094921177951340196459294735370163682835175662427855344102201550716192911733536487316106078069519396890072708883268606462510869745348128149272356164356634544348619446055387546043940551157274785933187612835559134977267102428908636820702867745057078766083659687333623821203140375103062284016392329351033780777014070721550631930309768432781001401169634749285512152311802944505082839091835347593422455712738468711775452744593146491147235344855886180019504214316674059697964169152234771234518249026104274874032854622201455842213165219008531187346382770343177775693101708088033912924289043154890130528304466165692897837527291980068277700779579692741861610492425082587342403499028137569109799613275680048185352673447134796397749313726649140662747403684585794222870058185108191029619876692452666505475347534254370318743967002251329873923975596498066744332017921594606111919842332115848974690832115761482434183177459993660188834729922671782762805430152435288907231408079019160485051696779549279208750722271804143834267386363364027133752544327947470550835219429734257812295447364912352011236737212708429844995395884168850103892604420063307959026830049464394276713383126846573015914610905907032067259175460703703814052951614699898664318855981192556581059109720192379267282053878066453930202211949800475425667969189240389717234286532060763395754372923789913008648936321245955086876991138247326628762379064438974693667381228423515432454240720544071351875968992745287104284976045767230471397662689775760883802145008463603759953775214381973215797989142242401087375572854310413583899367717748180060500298136323120430605518864715848714949080675998935597640494368601689181190309068243268054181775391709150256850874948055345036749163981646210059251791548689195102597450609771457076045831245655623515081156777104387480787356995338729378633379590461288671220575189971873882808186178271265778350558629914861891980854294844041555856108747954805446450773123905752301567651915266878791656934434203304552899423822690844132162840962144282038049483850296073671567288456007071063936885615545735410801877777165880020526633661671445300402601244989858347598366582344540337152035216811515878523166117659049242116272293053995709288215083509961165848488173527501551092021844270458775832036177049731394072123554322945030414950884363174342415830420179031802815787177733628979107156316706726103290101104724325337672944945170242938810950336249828978472980119737812790084364450906546821430653804508003381958438507985236350724519083284591777801562084245682704544249246059893734408699271091665754842974261079122474649731787910470609564906181173190172523244819652902914524129084742502637408954938129818265813452261522170390690553972377805764227381462549848928684915812249878776118186618507786249284262907273522097660260253405714757113800228445452456751485476521157057952941175123373797640707669494387062994211137686741490047719975656096063564194377561378713885811535431969253764294647575231736091939475379637375234552286811724880003889901778831409506667990346392205657048936734801345415706550220866338339352815663792199562078329495439730134161779487914166748771433355061892582580753193997418058419794259305179889864961167984540582914511768382714308766546955668579889828307830488173032819070890700640128879345244649673838588169922534093373391259942135710244841337942319952346148053319219135329389687260418259829060023862717683073822452543073709677550779069436254054297953772463266257127799162539144396376091982584006398380811173535942686012825655535760345958802151128712464737862870097503700582642908151176035833503696842119476410265648074959943612625602012296004911526336429655607779999019855694259197179318597113196346966646155979771645176588653141938840139279219695921488146574092557441220084686045406350915904473577986614617183972600551500823039923760549187770713428786028994415860193005805068160943611116798282194587612507265947606555729958366861613393401838916555093339897861621174036787297091480170742118232945883539903715309373897882275616526391691921116053022607786980252052417448460043005374371577167239163797703365035782803237393042629307533120955688665995088539870604274752154373022411126764525728981598558072177525417172153201089637316684100632675046904015830614614449834501460851392100427152881730490996783038292975179225816208986152506748155451598991380356706632586117720453324287814491390170364460075034507118876285212114528990144500231588589696428413558585851441265021592140539397431526535065091331892033376810462312217117295138014647381424616586711998737106812090893616121357712975022108885467003161704741836500173673332816185304143018377534855611358258163338150913256656633680426117781335747947990140927869658171131339272179710421830251479686382646551067734624901015085157415455915385323518095654618280688837083953749768015220195663759160293730635000954445492707517913130154031301539599721382455952566839015308126256526017835386689946809576878767173126397636941264309442894511151464703669422517821707723125915761527378736644858249904778245776748472663387596990296248783135239155717569848602584429662782232673527809743689336195109298150175697909872064717823174007743538744689890858110874841875268224981563453236272151627745028071340567132454325438400648757792463472088340251316747834008700018932026570458704624289155512730098917255082971423422393021538434837051398663256026858603393126343619641551343538156988286218538541575595393396853583015386856260744537211232834996907188934641954566574815368849464457670846966825594223398168783584134899183076616358394894864504684537977046935876810880463406927813017524700795401676207540344896104308649169948198409068956880732735118654074500753720360919501856536254791149781698886811728655797519138482008501802422030716477566477680791165949778700368843628845106046145273049973089957873206839761538989118445184907593630699452890871709479795859403046911463349572904909450459005656517858048657519317080540642217886479249407392669907604864379273213359631881547150977222652246464517524820912700434477063275663908890885216424990570263443166036457487087773674878266061783061786750078252191497713618238799624176633703102994085100104977068451347408275334372417130125128495360752138343970613175622435672087176622431232908646500051462966569013799645920174393707664992159312481558834025249165122735970850550426105081375696899027254342999567890456787950657721655698177843107134392832361758181451415792395530815621037587860920307205731945698165565603276113825808813762308173069236878380233596030979902591385079441614943520967973976093443612412621776161967032243615782322755325649741724229876096189317916867896424124372841697911795333481704778065572421221454067225676539638574205389867899296839348523598239609707917146783145212138065500994321303140931107191068303765533036074508350590651761626297179631734805863844394278179794652154380639264601439601744138476145198255448682958171222675373532470254762565175007605108289542449851118178179676015436676789747148676677484834597094604438023074102315729828350436498223014071539924726624894851063730271445776331048078972428854254421585017510159557038040971343244417213921296102122734365709883318928495855413501104159533841761701260281258218464507962949201260953936486604649007895309029291088588273073215566945132752594016601381980410421684278061459800375887298513517260030489840352651519428697874739591154404624038280832232166602116517938334029221284708700961109599967604704613385022795968620924538525768252798731930079882715813530212398806263976596647483319066849739885487908365726943392684938170397522415510294335824528180587600740499149580886833839246128251878083563383601312002215031300532197740193215687477996758670704998314055983737370621347250732982184222075485184346296001696935752644020167670997867672899635265274670501169247151326203716806155197207725236549096922731888734316860400744289837045383989212104292431294641692779222750463141646821075145977685056131511593912509134253399108102571420470690878649486837088968016303386213542344676139217555388968630815783429185977206131816682637833182822967169684762604397763863290297145977980161727273623686499967666124356592668219072815028048479402662142290165351786283816973682941616459236204492561810193379792428567706575116910710901790230936712568966811089010755272229079469029040912902725819442048964878197496162761998659727262674636767648176836994925130917497018978041675061799040528666403147117136801693028483869971808085283909574501882298942540994374574240577029923505342646945591620263845438087482357804062893884462920157483095376009188954479544631421098590961009147748984110790253917376860198279787166812718088957342754156026347071556741617118408182484335528607856651021867104432275859542937382830506735409861309524989575873092770438279424623333386479545691228769064676546752114844161014883696437928717113419537442024634245893995257413910500830459485672718286734984637718879041595516140153676240978180673032334242525563439304095205757077958881331501379966828720931963970239116765484110828254791746315182134325216617279508629019514893260320749544550021416601183458719360032350485486633857843078604305238445355739088511705623534454733831171045084987816454018250717442166923003909406952276859480029315797510869877487479065961704858659810640586793192611360161179164205342657340362261569821741433508616908217865602919547984007535947617030199666450892157962316470819534500687797284494471299426693058697497790292548033749809974481457829720739008954685876152395198779775754366229101720853428682810798300086625616239165910367173474728029978075843238724837874176901139694987255902738073889261385821861778412585589419199253124275140963433081572912558600451525154074052567386158112944153044036291136094636109880066130373726538582502737834133594936059622500552441392827485164040869980702684823061065309954329194986503024800537047850126481521635472630883899124340557220206661755639842785677761333638581857730154521721621439369899314774709414302484129707348814401895244982165143559520790072678110058476781514934227512951727757425934526341694462726164147448711823486199607611768758858170589629889191892568098282569816058104923118311327537780364801743688955941630254093969590218551428885101279462770162514783025014418739064529448175126636358265305932188958908786453080648343494636771949746663132265531209228338232483799189766998019954864905512072735816261476114907079083467493899913555931270814873492454929998953020573159953677119828184266051004413362030072946733812684162118151774838170484749395299248055231849825870477501351349515487719907823037680368507522699151218310417029173330767028016383485750262392155542229589360575518549696491102729883504780095405224964974381359375575155634242017431006401073099161555383337268947974751502552601121635448838844537792529175300874320336809033123494696409856436216080261325165131416125210763473082039738996447337210247062588558129921301757503593758306206853751477337677279148713107031332137159859190870593863972851937476050465923288697041458704453035577932752262791408707824687099667896977905551189035775541422917024350012947349213354140363785908148207162974853201237629232870380953083107586902013876566971145879819895233715222380129311944160345291729620638728477571708602590278039675139924807872187977268769883869384512682399808968763460248014410035261732861877522155020068936390535679299189929249647408567401066982281380384538304201519844894543427451885362940092073709167384837938972089456529684618380521268180884589582631252779033540334065451538890244703110988017032448112592256667136039540028042211604656594097116663839489868282789361155246037779336582831257222486657807174927878581282286898187156530914425026693669229955680480396868646542493527014250179922332380545215983792570551899259801898984360529971606719301199103877975245439212514866262875042428624217276517797622992067686077514416346045418082397404398348709074228912352348170970094091420795076332155573511358183959304423465942708402507535665333356892618090968551816607023508334287067654031851098173221740060174379607376226013487062910095292842777985816247837047881984265503818090468701907191348520970395423702509296443597286142255041082185948336511578642309074258879442018816145136447541670389339896678120379654865811165224121903520431745494846745527093362516363883307106459685296439447558725245415395014664851929951571036847565157860712608332319559755525677280646392182983243986086992784088113997305965013726857803094793664101063601244371532751490679029091451790159182334244890314875249779590071792790279619756542909088538912821903407400663373771492696547410886724623097408220085285143544862460005593131654133418690211698161454929652251237505202329510145780102096084658190388825865478562260772280500568358266652515574814642085059104141803786990060073728945406562722212540462887490531999263264541251517948208202344273365344074511993146554065925411199370461591870482508955097753648529825349884301700958485612183844734317503513454272734573989403092511684290038111926373820538105748163235348136132124909087630912651595084232327350617135581243561672588996896458104098210968480746313205980374423059305605447257607415809208152941801871131837244875771234259404713115524736066588533040815475927995453144213151869524544311379425370169138308819790827958070112244416360561331835035643345577534826257631429625960662615869581912798466513828513271974583966856866660092717503729667122974221154043466044674294971508461411429995795787900849214600166536797380548245188995659833278370547244552283532197637605060357093710571825874003773102127295266747167481231352865632362457232810803747029299028853561164429837621139337377124034305414335288287665150105792479247791431032028790135387329198165822266289750673437909547554719115366663116106727407846323282839431679797618166479533099588659080082826558437402519033205715504941405455901667679467994903481122310215082943615572860881005606461080709896168947326590666770273706789473042767679621581194920538851484740974985715885681487523058701039969388609845209719018526285446776667632947239560200793892041345207629206883222342650038325714031627949115788492370339206327167607557761164188318220518357236314347820367422702539265551290760776928900280578553046954502984736817357799529974669374893489534143264828504712010079329294526618799403273338125277111920772524018712138591492898149472782534895683655937733102868642230109431124901871094432855748591367680152520033802158962783378657705070441344997495110049853309013566300278633340210340208490355517963160205220410135789868556217037489577571131403081224587738986330141852227412590931552970353736540547827404725114129097735118066442148070854482807438918231441653358021583646528871344116686488265542237917038416978265195825315407434331156169576256950918146900328582377997070213643610995885002056663928136583744819330295752616639947914743711660311296917148924267992843616454045348593544518647836391450070970546087194046408517636495525046977521638215541368497127981712462705070470026126919142054842043489530565570820873127723608722549805052873125890750082313302436033353740936781529647637549120190978155570981163230549994082545309110003931479168350052843137543226334337481341604864578065885865330508340101187799942337448837817373911948596555329045209238132892033057512042789036700008708410214935911739172261693014435133691302375949998549978178093976273133725856301859860194820238087522116386454690977506553034382080116045833187663662206543781596061207179753053471802381775355486186128830399126201716019155557020144768324929544863716364257882790993178212969713169532112293931445188683883431989261928877956486604190609705771164587251920174302782313344577016251391985963282455940925544106377457833594697858712697535769414657953235176576967288063763472075833470844907268675337353917904451616440474969455622848857972034980599478065454128003405533636617085751704981462084363621402981242473507028986239570474535246741167333322513763381532059727860629605514952614244170038851111549460948777304473600249124966466719937038313561273521558811467100916652611207874412734025659306778159776313735091185616288594783497476685000386219648238745574582285946627602425457255826443515305919299080856242058061238763938137152659582013857690385687793925313920431736120499715602944117553936073643517150515186278859133036728433213727684000567642856124254160724319597023079998308819950445228002598481013534428293022653357940586213138313380193774717428171700920711578973075902437942593567023482605079586774976492065309420971599687688680580039582938690806370582729473692628630142284531468546158060140114372566020341633269801567849938191242863884268496875982113954375383830199693557265164769520643621053635250075453707789533447464604218229353382932463785382156878056708416477544043339752153227905857863607234784304854657848889135655173738831738142117964325708315727072716182085425234450344969549286555856305466833830516095297359671853149992024615569975029830512876699569136806464752549874109637616462675309246777287478725402445361441280770355113183345371451893567550592700434331258301296988006508704894612083259038522370331264117577579830874225948350431161804427592631227523983386376481305222302412097035276315070417598439372512404054546539672420396786212604116644277914551778467336708172878325837059838462260321524870826318939223037441762783970877498714873289183039012382593369372094907673707092834363276847518747677848347984788993439530991471896811699659839795702421219688462561799286631957127638684820562018854678183643769977078280108911162237780117845046617408171526490008905601418932143365489308148296811490735205361486522153566879145518231502088484141265288698933550343453539040220522627902880297300961309208278219410118142705877172011152331908458193378795850713366936010859744474115764543003512303817590291569666640085741170325402970458109497169576893700965018629855153658933561336395830785934133893188144894857714918230644384130454140978115335532009418060533055416917255543933341603060423285107604702415700241081609742057154916093729452096661187988452167752798589489492921504599202059796131375920862109909116702132174065058309348920021685341077334616338050137428965779844907578573684826646719347240690741102456104140173229106037682788144571248771684210930641880410600860852509649960688608956203362365465560167969633212088843650183303535167776637772803082656536859877138242513232904336245174055554468670156091893215379258998028905390384683887889035304923523680729049297234435661721768866680047791414527403053496605817181168638468049440026551712332041289180293940194017907493669310490641747475336394033035673119353800324605579191419699229565726287766124081693420274569427062775549346675290645974584616499165060037191803505274535314256751426329421401120538376749538841949939836218409118298976870297348411357602072743960444677748166430136970433405023698135548937654388023446778654702054909305950087590972600161813979218586704310614136828918814916499853560223966177536840286786346174602974038443923183637099302263058007451441901624886196489894414549212477772350758867585379224740879548512431509214915646380916284645500427721277014358607405097964666608361535052873334899998396898933290059722175983664620016077619478487487108428833596328370624651578279729451487786407533422853140250533075262245339481193145329441746097195518709948399268583777862656182805030032206045582260904141517727978075519038830558839396394989836986308689370168039904194315042649010209582084134622611000254540153117570670824091054638298623168149002398838575524614974570860258684276752726806074630988094916823361284410545761149118195585277848698405573270792037783328955567407780245880234835856078700517862703222933544418673675205777714696397900815035854153538256052416201770944257115153981193188919592210691468524127197224043103115219454733393110695944327918887827279050696458621697405559417299758947293786668169160687555088359796629514189545868883695617029406720875970904912798086937266642155408726771602523353512050425179509676245903417055098856600888271114873391488192759877554416509488095070555195325472749455739116184906953224879997997574435726371126202712689422778588459707851848490064738655416111714176941674699798803179486691667438256054808601214250001070604867192323054997796580723508819365631181368794747387413973853622172958720484713052722735527088326922148086843117367166375175730538411230974811533585585197673693225577824758585317889509938974195042375709294791575617969553698905074120861230384881697864932860130251002225906546249978879542828613062070932816677130745971792907601362700166115459542921262712491984976123702652780466330997224065417098560904603037400248893742489593137668030297150931091295685857792852758686355931647933569877913293053115936616778124971098238624058251182956229680154008520973218200730562209849412020732480461927169289505727467839157896276685968515269665030332157073336543221926012421834797647327822040183024925595955853313474389631163646409708082310120485214186513506636347542005155233166687307329191717157223227144594747309541691556096663839032388314224030127483387723703972401574497350911763232893885868038431926973749016239297059951534711996838720665971527873736481190306858809985573274480442256446159190193665624362141315846264034850783304750037721706259105389863209338638013841768123402424710716619627812618387578677697079200986164877652798428994332828539205027874815762317935967027657664820302405991061094079279822527025559762777049301444021321598108983224421875597524668653624789378020617593600241291864515911428366395604082928421228359142406010518079332079385687124059926211697924507531422194007729544644172789965359345319590177956510212436067069433803936660080042850925333954612446720681017595268152819864810301324981527781902802813545908074207147856389377875851845133431215925012058080532689159997148497932473116740987648049133141521548234166000953456620298718472389801119303479061175332853987320298442199034590297169297572636120208634166028587428530702784681366569759221815827229917642545437734542036491678503051923404190621048775518762515865661567900576793262514452721613144138669421171002599844084336910373805110991814069999369112270298698383123693123001215775133677683728466449303371796634162771386532422487321774513034820598352355566949146526512180136646189832426744565622938178779887752602015581089802538614576324919805471845722207576327765306832740948740526745531058774842908000631206216986527577723674098649363442886653337386722213084732909758942030819346494033137271374043957297869792375502809314644122147816592223561419548180424208923279261188772679269368096031266521643176364802002387896441961296098088241208705179256382680730713011813998147832608485970611814373244182071144530630586762943706682866138414306507525227663111468321984476283135520181272060694353604324558069311441580511531596543374756434964557906351505211911841273426938139133279580200872344869378601444073784188224722060782317830329966704948155969439815768865775673077874670493123200616464153809213842713495705727437335920847420085759801685031600038469704194869256053187567218199731646600613572996069755474555569336084322441276843051913346899458166964106218414006500405065981212821703077117651547937009974903440728445590403731033428819827406009742996156704952423082369022870035176443016668584250782786812349502526480680236910759871276562380976955692919886350443290301102917296036592322257613763832973864541319120792003576585011746047069203683669057576540436687874673089121154076689822933231853413250006753949229969975676811575779805742013978415131122213736682683470862040816612882337712273861288593804991561046548013846717650174913837132652545989779600632893783321891789436399716286663682319958258235278888130069070093419283197857082808921786361277118753285275225752522556154446564461998302120938634842132496974675989127596701593693120816288150689090685312133454917666863709457209685331041589589342095687981473154744648013273926405749054640746527788189856722440038862603823350525394602438623871780375325967642339283594957575842508328891029687458438161102669766432231556432343636690925647312259676527479446817855107389871881786577192787434914741987599057534501033641076052051879856399770073489118202597733090506719386280652421045508373917416756724148728641391384764502895126920823380296883470153880948293937880894104556894469521880434372647108026565595019604354879109342881763314390150193836839084372903926231683040793687108016186705570219550237466012984282343941873001503966493292885386600129169735321150415598409461600871900346172650442778678720210507746225945164722322678137164373362318806883378060743414729855947784040109113223189521205900499506597125959427654947466758869531041497291574606876157901968484639761850490559109425751425190539334882559248967888945780429262827609805136779216777971088061518633698413907524666425146417959353105061221919998224438662411439138757874110390309494033816202680132647897154817893254408242662670101616848882805874447051704726839005632810641400484522489221151989594231164344218341980312024535140705127122100900579136870763172620344618835279569943622736014953575050901051546052406079687261168980508644581603956362426581283717305180363072675991053025501504820183264993384827678912147037711776058526828035148450456363192578315166473906821743932447742670276566497720284391990998958741154738524293115203639680402394620478603590991076446882964751974050867045631677536892305741949718126642736295231513429736021901357244256252928603268982893613503494922668857358498681529924933130979057958690395056290216028867578362866061667517283588634548558851927558272136719447539792783224644573471318396441743899965087478939651686703438631894407798247627482887777028627451002684038043881705236424588061805007320435561315658302831517966564318683499302681308886399774548819916134696715580843840099691374147603110749913591506247468778940495054162141569317810678631136101032726499500067941148682023726824767389242866062898829250585112342974800264675659329529795591120128616719802706239470011079777615653157888036517987757204094844326840683312440668101067489215128992704751242068931500046252057556324769520072369782353822258717371035875134238943773842580852823987481299908633137451985189709672441495473711518920223800917029800782534420988586186950894273543869290587556563553381333989841214266625890874710346062939788504196272697080947171486723129209776251358758395678841648758707586457785101870894727345676376435866689785350320621983755509137404079943904531253883841371390165813049333848933629327145944571855807404445951630118126611513531564979433779011630933013004470086012880658595176766726011465393974846636250185624705162588130894111853030056630875246316027189379630798449814683665430871974955341925120652682413040549156979911157677633307009878717018471106336404956959548733632573938190210761715768974758642077119896079862654467510426322936254492084871267851943645222890913454811093468860332228256627213372450853830062074710069072711520479039512751817552035746207170501864822894842358134570279088827843846678764205114884824036928040468354071897194951709747452005544285117905703051015873783315993860738601728176189331711092954505525703016910946557362070960104040560536057749459907510368444222202064157180922466803389123120342383790854627951089038016620510788037335168461693467412780792707489733285549141432581647455647845480485850326726581878811393617129700287398627993507065335449123091229469249057090161014148777521749417410617245691735965675149738683973718199512251003942937513510791068215349471497127455414562905599755924333616850438066910218848146190152414677358519386403368871906438500081079689276087331666871541557688854263541959982592837645617729300467647108067247240431175162210221608408581789109880718366701753659613924785613105704481810231913239169737450186241900606723048524507140114095418066555638760012319872328106999375026938197811571695223053271039612568199078808069471135462608042899198519264648090266874488854868675079546568211430446182830541776572233213446360964060463030898507192810697313030524309393666524883986214957434408918583760741233423030437262800982693065084702168030757191626785215064322086820936314121981012729809875005827900900345890237645608734834291939668820879317279907938139520864949233512340106537458729132377400613212358420505755578893974982762715266263421280927378122783303686228234050737868915566539679956319838010825509932596947473023098545298361604619495691099643548317249000222762449027055117206794540146484167773755738982514518453641946124922595558377681050796191345292096009578512298534995461659108264098216845980484242839100957475629692090107304232843143447041805328849229788465101930640696630485324581912909602133534328795479578639444047196040189039500814144100850048854389248979612864384554899378688495482513580757623938714468287534013529241423663520345351785702873972017105534194464409215976120505788685589420784105134440279117168443222352397019822453940829638393448522410428716120429300808015557256987607099322335850633809094214361806145098155432952230715398108637351129305579227677939341188643867656070752915644704075786708895774942929510738764234913117225037922872859027929369825997677678861054312694314976688701357747042982456503516966257206577428320973005019601997842313299495214972863694383715855910313913099450475667562668658276550001827274936774055163968409190162352566033949362445441361154102475064212795860688529989228108317578713927273489597809809785496426880931726295362977355808842728812248224289524349863857935526954158334869278718339948362672287769160138612736187351788092207454129005654575211654689362569291314575077806529347783376926998500581081113237514633311689732068800891683872107294494455164027753178071506120207460120039197740380548463439006803042596161851550218539556730261248282261093917697365621662248065440794019534333174316948629741111927192796547434887896837011500502108148882188396349920291106499380949546345873249248192367243091301784979288941752867399750077096456973964731277162140513509695743223459294507610201143053779952912966304484220644236620815175767166131790052191803564248873414587620962949072647613668752995524774888852522571051098413926878385738136888441118603974862174959811271291745616369916391981217429573247484944812678262492316685624242669883888906899789339226452161647858651695348216684644983079531555732178905441817343289640048621165679819962319778096689046879781629805395962149259880513330699451701559110922757615248350316758446687500590431722065151993825136380950770464636492901397958776999395283429734044749901706258328600801090528425231409267677518448842916458344739847619063759634773064036532254277566822308685715022393529535763032259857099906010161910097797021062299350299285569714914149412683374916571448147619383406297498492382107374469717798453376749902952844728563957372941928717464176290826746997362985584564902599046914014118891583724619819170478682096051381438470060243697026940884600525142192050519164086746578409257891129730502915550313568791660915216594895186457879367591920683196187533844061712994287246247631142929270857151576547528195599428148767100338923112023184232605831493184202569960146247093885617236888959052807059627495105508117952732808518541305120135595208681060109174472054273841953057752346599854937345652665124319594460946149184331264520516508829672871965677519022690376366429346099516163960145653743586753935588293380558752959691131761242484142276372179175616754053151999877359172341309525732703192937338488536184011495484547239332886173332913249662190585335276221230657688778844935346895760524299578206283913185485505001035382844955853888153834108105320106000945195010848005429122337688834169895648128058665963446540917186397696725263003030097589171425960463420306795038994467767794923200520250233384429280127971065961716630303642047575540662869907488756781928132949912876010043202481204158855504821656066032188349513392918624098325289623625927315872763792126992454830635309007690991357955803580239205742384720667701556872833953698640863897189654476957692007218653315388881528017960868463449884100914236638574693523465923944330208779267941231171458361989576609200053828606555726920656546979601735628234116567178001604414159829956053151433907216280580014788959690247777058493836209999698977664950854818852814151362887499439063162848109818350359754737920288555298285428463075481628187550910181833813215845318356099128342806678989011845936213490223595981271570541448722934782229808275614409870346069444992905579694713261071655259989917041531108209601911749842058747177119651381145234476167213658915995256468064239168977529237252148984375250653997416472400212534636449780664055533491055614897266506445213775706245593975238658477414445013268180089853796690363272063358462396721453987778962693225017019670366126770420475408207807844036697372463480962212065744621271317798244214988742969382347283194948776179019880549213570076585880772808759671804618940582626937996772310162429768792865858754545822478949441264367740646310177082360565330564550791848519442115411051377736062156106522175378066097688535101344712909964250597207898156691294823198505550720306415191246688535943974917685507212430615442833226616143464380441722463284117028226182920902117330118168853823186550927444772012224343261678466712191585142838162260800311852193895491748625342260090489860095289731085295538894989921223862988304148314776007830368941985672472385449197299068150775966954917081137346251398054451107305773419967233220054420310993216305025645346574329772439416100586817277872218001935241057438541289153007184917683476002151682880075130115609060759503770775978951372951595604205945572381275698639159163112961437591343157714540926763504277212223109410075100802654764862735375176004539067235458634173065675228459377142940155699273652593003518460983455288352551808811143480316346684022403187122584502218108982863453455465661962227600413370205466326200649089271576139101133526238465577533701161684308181036669359598329276891374219960735869081249636960828174094406127968747938106430925063826504781146363606727056887488103734943832037126488338582288866833467844963431842597680784811608316497242659082717381220591992581198249009408376777962828625789460445854747800814505158599481523429093825127556220545263105324639041637026768385843210336007148492145796828352729369197135345625898277301068941569208246925155181498949147151166427435995464418529895395024009816577487960428563392805434280750505012562134624299291317076036585144635951934748134777842805065986813653518677512675349988624775112540338139096031956260368398446317993286031789732362716666952009786081744395619974535278079026558244037302018331117279512724955979355762233660682328908390906232192731200603227654157138384966287612211111604382601642920087899050292143944105084917409515451415469221001615049847310768787253256540858287411672848523790060518566188555759845023674776366458422748710956800774197137146927830373504021381279905624026563633965275889395321042527138037236716000133746383824296700602705930788690773960028360737272205286292245724154530895595013254124768729472238020610854460495717035332190711270690121521253284930984840824363391229894742775843876970397304293821643683113285064917878487268714595859753588229483289544073604064234302169960729640137898841546348346556064384825225561619060890288593849390704968160546987445402947259346134907389699947475616212726888056921190904990863489808871258469179531716519022179105794676513289362049300353036970322844322851147319762681370781781660319980059362075928790423530726829066363338062753744072500187462340185664265019518748489345292448797427485421158321052122396493592694763896306878133845949934295304740540348221663754284203515186292439647733305986184495684252921698252110224744725121414153621232357498660142353466343593601615522620926519551143517841479943900348856174903422973694920490788755381538415448573261179461144431319639738945560947766488357843345466532961645627468406639314231501824268766285165917691058991854822700400677280143748605280123426161831957969307342848951051250171433054820769713271864409392823423446498330672442137323166017004809881782626439666907976419313175689104857024950361526476872500410526052327180139548979719353622822446328598796499784324369143681311475665280154346920537309258488760355588936605973269636421927411017973330954681709608849375251817770745992526776928712416511434319847771746260625767515735470474910493655060587744600376994227053746137043365601004547500594867000029405250409901846838485792183027172196110356512430861166463871444507212135130246643635925913733969260324387741138227322661901127962226551250513797582246488012453788097193988925745846779880289921034336080081493616145579053667426862682956246499516520431520443800858410819940005423960681436340107735162702860638150291260518835355050897268924453309014760498118169160533352293319612881417787962550330489048848369814613423238805567124549971413074978500372610018530949963193836463177758665390379320977525685229423312851338428278924227341380878843878406546108086330912728357628311942224485896494621161758458128108966081077388133195594646103733577798343601879693949645255080471138024713794463669866154675192154702858024314589001003835517132088063140951034228363011028592386422032466859975052279948493934599712273285563754486496502509308959487394725901860050415348669917190041090767287248793802074971660557027447472289248418273953401508772969611696897882256101176549058541482818001567220403990509547354715532466417103588595866226246722334543222459646659665764269552312158076593148243300561581325967053806906920749144313198618264613595803578342666553244593422186504507636734008394412217282094194019136050209998368301711222979869645687735961825253306082389143914822818309395360616003934178081700211024308213446081206565973923736293436832579031231856363976503829773328387959577474972978717180919224666337655489920069277709802481106419619800926320069648999441535710085136399958671296312759648867609075061259679665561141466818336861519398915458829758175048997358706717423402821798078357336010033373507831715418894210809093560558625523527683833263150825025094698445450474541645869923349462723564919119638529091735334652474872518803292482428138817888797947779613553420409966706374657344310696296760721767155154919526163474680134895023097569988143913545539590159419069994100071337812569867224483618960868726898032230284347185086879799688816301816088223973019366843099989022322643468532745340702715140213484829985372002917102320900274201037553135823274302474697552074661769086727098122306715119451958139466563746579540600370958061977438503999161441925891584967424668750661419585906920857079469412530951170263988388990602396690512094331991143995370046448844149198763177368414940221247088355374703011933407397518578980651576680496918166103468649337667673623649761859363418119368451577152420822607948181124068750242839723232106494314891188149890168477533962475741141988243100136972494456380743974947400543635324117185369382419144623834550868808951167568327340284466480286836127578199198648400939774625049996743871975623115009701546443710718541559989738749736707190084658027663148078934709485705287181090290468254492711016872559642772026124693613972251002087015421928856467898862528208003631093091187232863246324115450872465845613947692922349206138162314032437941755038887819971459932815646681534603511483743070467344673054791165561798866155617442288974047972682084609831618230173910712115609494153146977050195713914735556345650322429864065241459315992865127575730895811110966413070648006870677805840051121603994527095504392591761290818081205500521426351070099654542960832242414330277731956462412958450973358498573479573421427704716408179290244771162352080450863584255170762881636712804829995057901458799832058710587778650596230421891248292463549639401838114697046769640968424503002480796786448965288345175673881494924890499263575117207590525809161802784138208908965697575939995458274271022890431515970126450913059767837893984882199794713426551878246686591628977663293531583475629163996821130765804916174159635311882007312795170053353054011988099624435305474906359081342716955093379579224298209232771935159692655317384577440762895504024415905155334160619131799162751394238316689529415017552104180512222011308769217139888230634277704766672885036152628650962771145798736270914299345418863703081724979173604393820622065153946597671458471230979779567807845225984697710984868509458679855405055877621488635380949350857526431142072964283773061690275518676359268521880346505712710840805622790779455286778919694612527472403515272898056002827349220617161552722549397836710967821794165496351757233584935803566270604007898235050095486539752938685581843778748274243798456653491938388224581676980469219820712358854789186900930924921964084818944649450017165005304580554469693538184558495693030823922662542127809347961917684887259283102262923913512582911952379678008111731782572239866585521941376674189937388223820498067583190427025178277291234433604018958209951709533186061291046204963575134969682278861094750178833610789476952059791871686981272458166526454522652561922701441017948547730345983140795913131428720842108208682411799267910299566731330543562451834496204001020899703213799417638758598053051034193744485472982812304586365954168208510385460967495424592702089448896272246571578008358822020104327267860816562376541958810615662926924237920258016922427525767613950026688707845792923106723736377020912535409808881912960465891682734695942616812020111534960075050832237178330808542809508001333648230246375793432911174118153414401408698085366491772743583789604667831475753773999800204924047117634966833235012703590125907777287619458891415900846845457990967033337390598095184115812334066498833698139246640371250773873346490256878573728058433353956244755377766062891809959142169433551777303293515710389799351938636894024805376266210648193153231999958164897390250440273997517950772462923751214201834292059302411975377820749031181795554943877112033650824091545928851218251323578115807365257669626387140449133322767527904599771562775884753108517533038483756487101706375666764634160509289665965137032882508739409325271607974554963532341540643602740337886174244857661993816830476495861534552912501523898136763103875530502755469817728689183452650760052992195296592692244653170695449083837681714896016374606705239080286542430036291361270336379648387563177809741700854052117603807064223096910124076675590615633180670015684056387637904095280539670013614934110628093521378740560697947315083508068158532595967104783331320564734082394669229620853870263633277495633091841111045184901985238007180399422399144802630625799567473027477387199926175413041974968241333804738062226636732300842230521314799425595887462546313606725009743883540151920095971572473262276221399692010304757916885259881137641051485014741691956178350855966858569442894954726685916354276763424166456781436976265686311810791958956755062656364329682423694404689342450808452036069155589498793606470769339030324151047521003492631228576070729864547273661793598703716411798139906259623747892925512737750155766371922474945254795694665323435490363576048733593866719632933193807464039643962939518105180788911513934908964832849120398358219451784294285100307221643423141249922302170790803955585088897476067449599262996829926270038945003411219995461235893373418765235984355457193289913750817089875285276087197994928206258548912756025915150581271081132442674921199666765010503680792412235933273731848418572344275604204219422931745010982765653224109278369498719201978690263929289095265473230875764867889797222604276415809609848302044912389825860593674167978461406384593962599658310583764286266403563577863174888862228794860358868880729607740568236832178796853821222784416813195712728769417813095113266375424901562048512888819985632759060711023652811469765777462385789437888005189339652553483479842167283541842659579791118473164673528777566897952367724167109083139813590519200965688014631719981263091905400180124398750533414674538976318181363015458572486831686715907307578703457186987006890617292177027510569331382600617587887456074489655403797192157203199343720937479390723283329194764590026872797178910009124000221594664161385544685578090296433261034511468854913976223874663038840309023646242050831733486011382590749647782536886837259428728649047846195510106365105192182108452080767629113547159340318919795976254674984038292858672709815783224368900024549499744928667756196106325207758024416886257181031456745542202039150934407492446941122717146568608066910079160784739338807305981632018005145233802126630156275265459913951410338619098149105101692982860960268819149598498001221299454976202368406393432312667411148849991974029466931047990064127932683281164827364759429055005152292189026862771212064039830134775903660642616257773417605850810752849288842402029065294205435310670761729574834950260686242376347581227120019113722216121186676350844395590887750528414974564768587717735882269770732401893902498673447115050218865961975929213017433437683358208385901155406527306972550769917234417041305861611451102323602148781926321416168534441760975042089754476791040108106270269112158443609297537815147859666912156519818124981078360131450497858606515990698701095283942145114112937238217389451967995874190239871096831429876761736855701280659392763935024075202809478425331897513744241678263391935022234378406351736529758068688629021682281499830216852514079671540364357263874900199963427276603417246867723027789803373042227094818564500512100450898620077630163044589021900875919890178455284510712952388870905653902226680981493207494448822008937304097410809996123991146572714082423995228424578246079772093594297143774119922263439400817609148643043629323539119760954712616065550804095553712043746436194035712893865185727269593714983678899874304646924720683134614770690812924818792319990163188075025666444418748579638750697228512463414982421274704759408901017833925888955783815796820298184172646476414476453873062034821039548564382214418509270764957328163571910668709677700795271127303241357315578730882953717524202394446469850657332185801456162035051303265668315234274003832694540901946698282893918732986525918778704692791268093196248619415956509143391026456880246547829787418162787930223514855438893466039779575959953389095000969500250023399800493729147893813872917321170418681176090265421784864688914079310379337263345212477782813848376436269923041417114065538191217173243231910619512448874938167050674886341330441879665481738630884771695380094056886637459396895481897545013107119136656709571008229023538913315561743390127942502944108497505098930901925578737747220632743415413426221155250751277517595667736037832022677111950993480273053351750903200972475456464471283940364167289516698894943661489788849807568127358141350046293379720651363132027177454699354565801393034364376542095418978430133622403092054748358286330860653194441009854431084313444818946053446734951858970675943184390652679600055419457447918610221577219030469343880503956230879334292119312639339970192818547702781826319458153180367866174016036377898235097933954331156368799165527412862140583627530725949422993673925759522580841365472768106324086140113898426847231881849946010317441226276310338980135712728900593470481225602271630869690889509134381586006300350536523409092280251731186804570439945362237020692506214268367978183301155312388029015339472342648763898779520534612558501138233954428634176406214420966631152837030038350796185062709359461134461230810511471635390976893423835989714139080881475492844373050155544844173799979015826780179577010581123199956855921090636074556260120641058256214261448192398732681580312486469461258677263172253441491947574756689681822842295081314683408183634835624641652169472959169098243574702855696375566342324979391309893164125856624713930753370362633473871149596882824671519936674943828548408492441701501067693546630179948624709976842038656479697357906807936691391580252065706385449516788089975222929404066390780384466226184829517188473540108193459631621877357329188848849345306185105458051415719995070536368414286482053508115116569667306058254117852241163436869101554146284425333906376436847551643178210761641365554359253334490812058646518159229695060728179806256217311924449333433871105746607244286164560634882133100447592398257162112922900814367236847189469780337740311618517219876395668056599994360735707099365043039509112232059777634476371317047147817186630745728253088932412462864554854366461601643105210993780845520556771892388013374788431526668812016682660656228265037647890550948538573144997587238025761854169355785681891273087262660363153972082458075416058011508134007153781224110562297449096682506822490185278766796909166286094566313286567364854819079017944845133641565329304579645701317199974589454989469886173024557166518000182299195286968231113735814085643272084550961271076178686963673809023329186419150107772610540963982522323305126337372264517793397466369573295971755112588976843658606164417855003827634237626325564133010959070101940853276529227313146693723609819832504886401788848409962573946114788965788523304794001732585740353373903952108983484056481657091051211145799975750777085829829461244654482460505460121008810790538450592935126665093593300643121687307935236964657874452944355830973650531414843407075137802625979299086013960508663046199077053649169824503794837731124023509980335330982477046618477786350445400806292998925156682294824638389936387395446393057929393476988857506293313976006923270047227403704762469545765292912637323820981730187781571106606646071487363096952573023107480282629344596810916276328677806813042580999257607330898945399338759830015103694399189269182193429646009965453773768976714946622686922870441136854053393724273259369090119525042260490968782108234697847113182916686449808374419117654594567492840009087530799376362866489991528495729340384409917168826535439461762808531630352570340148898917231217402332485866376177792999849470431863848957016831739318803384050692145012590978980861583729444063267938722368135880268780253513404228692594378887241587308036722129673772263730016828730490955777172410208636312970773253547083276257930471460315135395235512106961642438049326779476106017480922261148732185825317842375938961218144734546175500023488662870002213005095322217957980780333228415526805491700045756653797667618733592997502683820622490834868207692651550049581433337760317959519741905489349899550693475213337452426668348638676818678203422724040441447329969323886661547257118161376627058587155346790450118524499113842790962875481471527632345519203547410205295316847151159426712958017994088102719333348175068474871902338875489224568974897746776017224150118014083085801380894583064115329719664334873801474379616436153484063022831516471747020204887509491191337749266634720358349192763543893131382027928749321389959489821854417793270743608137688053587807487686615938637540605298065313775276477123910482262034112876459423572729977400544839755154918271718009575989321988758090964929007360926741461316221616466588396729437016796445243329832788255535139920025748937284957037462814589336692209992317008890820155482658841863428735459317903240897617127305669687615729440763123906841559547832785297997526210664980524977992655934821869472929663857855846502398675888835884290817965668564834594823711427823679657322443089881338951943668665542733626567700455791157111736765060600243289378925877237957590695881370502625485305815387017070584117358242647561626014055144427666768861439452281189347925241600008635659869935386118347873760251091383416916505655354449258634973179419789875547001908498382769061128640292760892855503289052873617232458776570097333457249492044249330938404799897878213321291792010310150471665883082936631579220871478611541300032516702253154500942943741066945140444282904046473421797353603003596535597648565676866952848604700488941678315940330655647484221334343444269380428432601764598919403611007885303160509580716758361535122444703101638426825183612133560141832655924909026872163827905347217127345990748374573773508944542354342308055948376266926035378229814946548516255332889697202646609076608604988809435487888145914445668694238653327492593098730571835961496549226052827902443288431455418297459430001723543760679564726030465627825285818494860608381840655706011654032228569683199430093345008320451526075488740272325108955467954518011716914223870269845591736119522461438178317061859732328601035957440994468480888211952727339688964902857658317378720543815788482117541436115256798296231065573385871093269113948553128494063104176593013484496288201993528179593260368145225693170059074222313040649319110601058367664420979211303216019881965811560123924280354114618322584523542351689327178550890841521701723621153192046441466495211512181192278494984007563574830115470597299224995549198430802342860746204533838594239428010624905968195151139179144969095562898313804525869824022872865816792577401830525565437000645549855837254917072660839966816081472550451071330056193486078178291759359019869083005721310806242684981589177158240874064787722093604862199092112521187214034087408179993492384660485602204236870023067783161511770928209208581545548861791368235981264075651755062643824920977882119171548248342372862319318716387143601590988847173786180853537790672531264144906233231338200002450122148902874003868835205602018145356786359083889794735009535558783339728624760880364667193394226617147825895855463972250385737201516961400735135756593265151929224450057461181346982603733948764121604575145283667637854964894102024553388255305637301726208275185033593283175364508974022540309766985759372990979425499726384967181152856836856810276425365012715943086075769769266160892172274817753707656920220656753374026835907722715421957066123572751797917314511918952837886697389987844562495049703460567652706091205698502759160680677963022351536224295427075565599067912842049725284616021209444024180727886678028203110704424291283891766294751884355543524778760718272974795892333795587524398480238418165385465170185967593805565677554043761310026914699022802594095662313518105058986097355637849069115541222289628961464180344440715859991022603419416290584387874502071517773355329815471002319766745889084529363288077147962832425248927085278807613446937739736572913195239128657527995614818288203115500711080921227490363844513816527521740802249031206689261174918677018274313278088991905205987301588532129038792356449456218714252376849578493370399197183362340050669046378569859087213888699576016555988898833677585926662896379105573536310803253852876313539062205831300974139334642487362728090636378339453620051191572458020276912155416219166363732971233829123689060019717374128064621997974634844136225343278125477734796682388447091528470884039599409761214164491342194582064139471840666933087677736565206120882699684120686040246866878000362391115203046839738911777867229905153607571552083569263673882084115481518166481162866577945988457284306021100150750607842208234153938355356618969851084429632404892689746434783400844425510771514715447489649674400279235629263962610379517218996245455055920015103892414422833133391451027761213990791833317476049534061492648603815479577280857357611312187041168789697137723130956037839045584559396529577935179168638429896940987315115292493459322614963536239082009989742718666089639924958344689765931084567526203505079161287155592941383081952925673375517733568451742730031626655356629274772834596700541561701709171926820192421819620472769238217531840572032490896689105287012213544204261084375629167874107980270482805687427442914665438367034339248572746070802047163957700604793299976175534359333239450575843989735497445928831462803340150705076705281371488174098399742836885190713080325336046213494831669286601975724549623428778650037155759763045960653320803348909632913356630120419398925571750154646378729597367003886264124553475074398514665707741348821324878895084018150647976071407384260205355635699451691509363867281895129863586594731259097289455242610150093281612119949556730005700897439369033853725094534880843115312700672913965285163071511574109233485700417544584798641878648300716497765778005085198471152120325508703216256345265178883286395413116112060965061775865108990520397358138351448170660791359750399884036358743501887547139313491900461633099185402132043205916823359697275045882960770963537071328559335122545191889611821204764496301343349000727016831195954953659244046276142196701969473715589121458485362831495233125790030078414239714780857625723089423577431262889173634541240948708505404986823770985993117065623808736701576789183793921462402734954896303085226734266847971595151117605627580243326888063110175488154541989059394319228091631444140930395718777248207817731860179120770762871937445098589270753783471665909246587587870861313336091294245984586343110319525071258641117774336551548099118398648230500572212780255320253744722816327150465616278500321721149618031823283850742559549497492089905166949186396634675728645314828587515702455283341437779224769634695074098530632584588691616154141015364932255749647099968547557155345977467255823705587874275103809814698167932357961983443618313334384918162240668153878612168007660552953575952566696874208189279998430366837286443114184045860119924652063761186109340816118740044711569305169976495414658202586799457433184748896652557398708554252921855404770244662563509685558891387080498630099907603029472275513140251805455499822648929485190203448637300669177813122739827176437571005559372684300969139739383117224620280617464558999684730728970027939089335668063151680411718553249132972497274055491197873575065688260567711138973569062984838573260123321240547602238339941687184217418667167792005636588854223796816050992307551909497781747895005640506512942531263710379333418798287735407221383417993399839662949068040857361306151744383315757521948329297074089990075105232972431091093831489499946634850362965691231012157743682176259315302093424272356043785862210174602960931925597555023694608323086352903918775532353021779381512308093633587529504808357269978164722520198234474142276522005698807682493787858582751149374868827890934240516427965718329760355085001331863598136500370302708115859753773523713709061655988399436509367497648071078348798671689264524649223057582004107005013350398218674832193496283777556575683166691738293668611750915727907641756813817136121832375685399519352535527736053096291438722666728287820863068412883091565445495000198575872457795237561487817837291673580640998678958039244455821206191199118883293382549973568348882351974183279286386899898223374049358433861210950423481964351650478221827953437952059721510397091691917102515615666954126764992127293451820870046768154385773123197927991831871822003025419782698178636503862456104827727064019425318522582105734468493263096263463302266801967991985977076104819772415988988026916978499575827229144285694734527017543037200442854773965891304997449579824583952828995495024526098636329059411241657987526606899244052041143094247307919269713454916105673508187046129476698175206659302068951147826370697887209194403878663563555865085465996355235308305933999262333425302111642164834931935783441469629855858120764729524034682299622137442703010383309386082166868902380765720222789799923752849152128341693650718646840989215400334614317130139237849091468746456950064823653191864819161363063991358161670683499770589164414579476352745559226809290668620408769278821881824374651137732362120230505315731963846521895151268163171686834334243527995787777966591195493472972603832468399187405481806581006781068739179032381943651072298560356237248246642922001211500696665236452561628413764868628099788412701607232186597186080683253660548090279830581025651734392049849082158109969682256645752079662743892804561768870993466423400991535339076491155065230166119139051358961389568048239758346735782814329905493212883620090068581309251487237042435762935514134754453474223676613102042191897624163736118608410171789886140386090928814757170734825851932753268140533005378027410546067589318277440231144537645487237363859403763137259531443730820875898969392874578199510412894839973837445701522174013518892499565512740280398112106281111171181873437775842388388989752953730667219713994357975144313616920091549554226530042458086299928048159699904273740498679099175464914196935954848275474086259961955530166715376085653921808392043388671805560498145690205700699888464225731961219841832257945521960455944486244327404394084746586451022983734019542896701286086513313683557144005037957272037334472100454230428996263907490905660269610767448196128099789967867696355136860068645374089466502097431246996769526587305836521093489174676436376743660585152995836496946742110194681700867727078017066069423337065794894267303209347760842529369813398515778042385210821309694197357149071128816964564494003552677473509789389588594801174839670263148906281196779095022560048169017419271068822965119563725109544060886099882222917498197065508889180620502359090550537422641172435092832923353128588237844465619520614155055413551563827481474687086846559870613529621131603291897700933130436596856205125168083495327702287149650222234054029620851308298591983354627400255557343979844430745996296420557530322795834114672625768556262956324019173831023904053130408244093368638662984126790707081004366129780496053457065749200772475970972434610075053067915012493076111015139908095656002228322051930328790662630803801809863578851447729408690025128103246543978670916437434834480986081479261335283231190333058473881661548380563996250891979626196990010411816686734809006015368076900235580685738524522893534101643446991781085101782465758122510808764240975060019240878465285922410884357741992593489263307666100661039817501557877209103661463753645837787499979958826327283505416083531652658181999748716735339471454518839311928483593653645142635166436837302487355320201742676160321123568700500941636490917422185985561356935533601296308653833711285641156660200507938208450596349163808278359944071814562547149037906162835854412833717718008922806679178991062368147419631779016719488668287160336942962946263661479852938369005167201855265905914556088202976669413925844122729179901288858321411233299789693185127946339823769962246059784085327134445531863382351057294819803567698786398164722794302378739098207895803934577115042286685315849283457968706182066728442671317265582930507216666485697210925597640250580967412328894525110377937489869449112664012496994677772959155425365433751711570906993055352416827036347278090136535721236083686829571044905460681817613219325508578338328152638679621966347114544547126115647503802691430218300137737525094490558441000990228058819450809696544808420126762989758774279748869369516765944713621970566426647737674771957739673486399114242005619409755067145458183903717946527155999784447433793960507098569435914856281456674509163127773274743537169620656637831494967254152461850531144564043655435435551551959725625747485660447904393288011224401284034316222551477874106602522684369967949784660730830004031503521641612540854791009156591285698223722767084383919382408482748482439928563255205516063651906966909313063774180119626442072597766466349492121731430595091118581090830517744928065142545874472236965600515134393579435431521548326864524492265315307748279576814633443135063574666104041877538780759372742240318956813514991428745912660294424375363716293875232092367355127525678382464226300195151421748699266743056757631118181058494493723355550244241674672717979792080567544871928059718758551174426050045064322464965613873916774661597060900579088422446516991519128153057186008055688695105749413963073618753940268658316539645373119312962412877155086179513609679964455187657107169973235482128741677462830050348075269043106158345823316898161466377388595332380677719763154561006509909903339582343543738741550995743295765309063506930892990978690571442090786970305101639216111323980362296004237377772905201849547585544396064495011911041591095300576162231593906902811401712021405997530149589990892856290003905132487504421499113161813914574908164542545029097106486207918682365947624009783135130863703839290177156139053214736817817212130103848858952004397247241540854389843069147004984738629650677163768448829423300446388731720808733040587021966880237188061486638820486018179953018200879645962990512827142547287999772062489963764064597701673143561380944458885913772880938616248285778992440257262600783572313917393518742174026384054625049085114634293864757122138761305897446492449729249350448696998576011952009486334347409528975836145951145508333214136855612031720490615255040620023134126900461205152062092152181486918681490662029128774101126189434093799019024216823980630941690904689819738934824454748794884990622884591606963527386600328928901239643684656116515347653256419746237722693978113593847880656993035234424983464059613109117957516177339483901827034636937819612349399715687639603178428103525419282590502583062338762010179641170182322371887840251730427968035637259432651404889885817168397920365829348741627422279055405673548467413990662051767367531980042930663568713281760458161232093443756613121806807965955592450558921639721960125763295500904200783400750915594556832731119203355923350443653812514020297587621276659618749582075138284283612874561813194349125301082841444221611085134622146903573150191255588216915707576528909513916885951598846575009112237040074599071928037287918987077156356231102747597545807076344325968493932667764118306481692363463185408682574003780208285963353991430132235503813506095765767744348030940800457688174196397904431061454081812423738787970335026508999737047117869314626325803866156484700808665042934792531961108919714237109867520082312744962761182978347790616659802817077606883009604818701558540440078412366741079264795572706560030088462719705577791917817494206647761347961986124579350893251523426591329073578055295679050735288318391643307514853538130064077233495463405762069627380742170458463447594752530913568794405524637400239617470847528745992524055946100436144126211437969500615468748420887621414661389964491753934783737179937707724321193569040954787008228466357419661421092408120370488775725434865073237288029290061775861452507792415064121622335867700191336401333838704011795856613614174336763881541067323085266194645573338014877376023666126089864817122783856837900226959326124237887837948015526246133305590205174711851177532485233453416163825474947068138639143849748084056897440453649792861297097251803395516910305240000528796364987197606969803251580580575298502923756794277420852887279113186475326142574118983554679008322604152411457827425027392393153715068578033228815973906185782322984310536784074069607901430811781827107704084348787615027900781402053355542481836105254208546258140032750042017137295592490973973183399113107485007051615246639943123341907100853857801314744291712346048058650765154091534836027857630982094669293490226235195343979670773818979832516894211975664509669612178724970386464549166259528039557990183841283624114157530588442905617517516184981311638804822500484029587289921374131124963076314846882473059751144430828726747043805223224712783155124803886114380051878402446951698920087200623566147170631688050717541557323691239376758751311438374631095447418751732676247078815407622376803643312627886103069823979021185757528389205181391474033457298353366532874317624465281684812046437698452318436594139908330566574378081608489407679085262641013494783116044179970058072054120085217020740556928469802189868510144620655341898713375294748300507804497119025931399634849306138667934108907677958529413890508463436183551094619941752535264869197104696013857718909785345566368510894386575176913126152710916766004246938850427886347605843601252668147305182934794196374799369219161307887219123511362295451054815371704952162721877282607301628569037248382000864011087557092359795014835992624633654370825582756041516286009883682442404772642049414898366053100170928582512500112778724902221858095844191334329707870030751296720605119194509421853182045056878367913807535724174714218604236439188289400144883941613008981274474207017106192688542070285832606814722243570758607431509748943576332570635467127494004115508315243972866181264783191257850990838479923953481393723416025077377912946770574989295062113073222416016570723455682652856672242322542092960607450789905346115750029886202554087114644519865946438279506502867503702050861905282626669021315684445902248835628636169019954589443017796010705020582507823506440211422555134703634722539592523533904307488586119328302175607734114302516338966383215452699965242917536802535438059467032765455129869363380223387327097763013625057260473738159347218337293297440601228102118494629719648565283368474076639582537524361679393445484330925571999455316740119046967206472578393371688553567939225975942055910031522841675073431759255054497236714414760094512544324914579638267980731781777399099413251816082073979430695473913277691485375428565003162357041070589139481067480463204061856716152647100225222772725038538287407301015402305306634639552303069808212109465114899012322148446508850140232676776717780239353661387219069298788273124099469461677501329609248539873132184874626564052769674560070097959485492550907619508353439888324814651622199564361515668690059127624667219882287215564168046476474058613024199391995292308530756867381274813137463601817230315841012173732140964642466234292855811009559145341061217567249813073613838046037964747447436769549718565755141723705367603929474458951527880494582025137637247981248466153905941985160966613614980059238709990627631030473820961016494919855025405024871079588587546323636247147114797979496484854368438527903450453291651353519294112486151993529461831031068576287370310959397888739074848397666156121657536688147433046315428006009815704479645677113302289120950499609841403627006813027810424617647520180853759649048546984425439170467296385900072675114658180667157682639703951557168344123703471271999467918586932235075490957389926414183287738261690085183211501374167181807986354890385654128948244386341934608525220396144668491836364023351877489961705663888587394462456156836284137361020093649456976112936122827254120885423699559587837976099769167446958415822681401810400886761310877234887525996401346305388812671227574885203246256848494074125484665369725031927362388910092792322019695191126611507386228625034517386602432750411053545885979762860364663636792107949700089690936535679099777483891819374984048221322456533058239914605304039770335709657771903516035812737581712465711094471997308031986670745551216575683973405149260935967544786119721677012110575843696290119337459640923901462271344339838528718626182504709168937368783206032982869177351613531260016258618817150393012027143852933676322834308859808691534048886728446310501007450737258329907491514079331568671875009798512216382636809305111699031954248570138608507284926864847101208862539856487165889446324884350419782192292425591040226004722621252452563895998029623940756345705303335135344192725253775762079344395887991987999238994115863513359687166867054468273824385767293999649410786196934029359811596711336056866204789475711690918140384014668050968856073588368198841411646221049694129139524056140350557466961683735253913071130772540338908466847933060246100650818536959725811376538018687478944499640077426988979692276787106786609087588985653661162298522779232556102575222597337912278284277597951600304074792296648654441402961981528484896211676416838849303074589301631372662962099617879534472150487426945007650081795945285108357840712481710750622182270349626452237804530947123339267838180110616187139392294850037595439469929357900929871448120447157724733697419699021494734171925804523416256370882162616431825859597008688506200302094293629821671322463530715669445367973033519436415178020583671506322417828738659399964188259586856481355347609770657249739901284143800205948589463185002204162247898454303820718184455752234959632911670728932533242300303137222082439992175832986988250883860059605754606120849268452326197955383807581566048230093211075858906691635805066835143423808294283452490787635103300239258624547088307652737362969051167094965085530119680080488996943212162824452400765215944437560924459185817364500214104336482764322692280783912416275722486105243660510296058889385000868305199218741105618695813399540576007967573485332919892411691506606651230417659841972268920268272202316357994548563687070361908564692736186561362075148136289526772938616526374567965263424357032402464803964905114513264924700638763240791019894364005269338746698387007704325325374793329198150628537301592966854709855989074540506773855907997786173858183832613587611652689530941002845329365948132594464075898737304096120265636123287124737831244470111649578101221584114443820658370796676388113832174134225672001410736110726218910044428658957271977684835338308244841755889376024167750508336598381059421937861005597353197838519493476393263957857922414968260174500101943491856775406837811158928112766356488716720179784305022522160437391880544677502617313995390833341791005707915257901840618808323067994487437266699897586908749516170170137673829534851750681923728599656572368517476248924859843223142726506119438782913323260983281411968146336382291259946400709883791987118442353351943123953595296442800696057950728689627165459506115999434881584015528717551569846431506816598817791840102007849697107079468064065017641025954275849249430215570249804933478907641898706159334640672162236082286002687680364077286403270941857296269671430213635364744552347454756241024458903779725553239866453009595358804693318925927019160787702455862547918613115678651940843330007551321222277290183684894444011329115545067102574379307320678324409806915402848829040215799499457081639272558112344123946115449317098174608846223770123545213859305980529417722550429282958582436254194457206161601415375542556081196648353857810986341013739328743955986375908945596512911423392164145148320997552730208541677779053732548225475313869706831596284131242610756550537929400863894021380460925725045991806718938240920611157096103969117568337037517986238179854130597392562778784027371723263904308627331924245970737352276735287286279641792953026087151756680485847392906055115488719770753513343883334849754820746331397781241454908532877978661791617876679892090837624340900157612330585852746764592290601218944340417829494870400051949518179901247641613016850472775241501561609683330285493810533950294047456156007642476165130714270418764406971014430310214356848554745143626357232796478510827297476365257737040170957308810454699772360166648585252174888366636278149901239490427988156990131028562790813132664279032791652629837615442613876260824954586248957962006308875940942046281079733718750045938601779971632299967803700000833479137729903712734936550753678339004694540255138234656645303320697191296244984593797867817762090343749119119355213236072953119360563736159758591225037678272444897060586211192298296571797699753645144969409586241220831493315270506362621842343236228563773023594186761771169316768203036783784081533343676015859849989669393287605447368231881907197418364798494775922075085898463794375649429244296256293194313254182937559308090923139561507329179758880745903282143106877602426948888059936880634067464196699340348876843008494925119848080269956045827159995802910578353386514529695902171511730948525984327472812276335043713738036113985008656486632646418805775635477511367017979492645386319437383765886881283270743698463777872434575373136431147557975956658052638936602562966054091329990950064188719206471440733402700782232443307621722653380732999338986953654957429408826789874192341352541489333033733254959605696287496582935001893953622221254926540478457806016907774084488620419183171808383751940941325796323528263237657733944208193137913120473871178088648467328432450193139212027382340609704221793846534711457705498643971612780008827046255651088703654106555204221493193469805263137024056576979729318474489325362350218501718908389306629587318217843940241700186986595134063805630336669656434840525065786471529366745456029579383749687209483675155836995883237867712990943903824740211132252113411879249562057992007222623235826226044541545912891699249039994376485892910540490337976213040828165023577271731456174294462548913481989440561428010128004197412266889732689243931048989370287149056422582998111371527641087102122369803425090585374808344550790862278044105872846563494938221406888318889662901817333132473041966813864364062137694930601285930866158650472635869365490135528101848073011605514996263364450470397800045104401599513136037733283941396564619506334934046213616451019561921804308927951578999390014931668146935659714515769603550661684702026506259495917340998040624695955811449971866546743844676834820958805379806450506037135592693182039298234242244606914071592174949149893076421379086772611480805570017173468555875646896110196006690649330006139861338387783972315520331794099031775710287952382408373596488080192427251210879243616772471471137241824633081215590292198979341848991598587951394097150105454629551810294825825286555581858205363714952366897292241516721733484175084038465361023362033849196304269596658229790147229407645780831972446822285013184090600164822049118472319319485985703932259941886825784116170226829969379413467640208770833374419133700921615727144271811393018701514445420934462009805774612901483111249058724810645856019325419529846155826770462944373629518917797489543008797685868310835107152843073768725885960751984665442266046263616211658786945370400448560486555690292836843070168277780402557731433821458811473349701382078793026133813292995528528407618158931993794256818533802133487862073092441305606160441115813713561277940367664687033212637090290746429661494953171999373833062908228115667978384667366006895426148287384427432682381932695403425007357942703181109199945023997672904840458111678020517704511911737495985433583560612204555730463851026042918115585631482837039175005873893538928389894533384660610572175219311017595225000588566116946301953806016574999007831756378987016334996618076710525618942111593324454752102421159947764739825294014248610255713059160332600661558857333006850637403413881434335681754310422099647694446700766972703129111613675751592330089190950142618747037942366939636165212645623559277757574938829672059489586083089003860103370555156158202309850670458851135488682547541239306685463394104665369778763907118299800916948183212710903956812758638180321867884364225042177144259414686496432806425304164848368825262382592559864087146280809450925650922446447570067608420727738102478331702630821474266521349764859435544917246154239194756844320731256786707444813636374998524821141039295263502332695896164263127721640767097652279394682267144102134820761941524797145326934687640008526809999491390277936040996281417088000202455076963930470604824342875060116832018724872410299185543156322656642100194847593585285724605927320670223141612477635093377352253136373586535868122746035264677685668279932812700354255923828227739479137984001930300495689448704713439798160644017103945185992540454786567872349646911348673362865225733420118413481256115212011325564333726150359305957180343398040746335765208501853900425070638652608312758877536934160929861265777814054758805127348363666915561451359126495299203310453826324759571535697088232039698914412205918768242990380309933386667361472919668316699145271933840592690094482159796906149650358427741193820677708952908336072058563086718309674797996809110796905298714293106483652480375483804109316644670736487727146579575881431627492524301614288593746785138792075568452485567953775229936398728888768719344979310664309128514951790953480258590287304851574940280979584257449149031256117560342942733272558977476612194449432285131892730665035155721439918165625575029812819136354343499222971355833986727798326962635356957646390843753458020280973802711052252108837401458991981463464988886426197719235913048177936058902038305036838550608069273464889031725962964574243243011635866022937355628106782930691441468563684267838384380847791834840726010843038149096235768964682966716586191798580278669237479180768147849948484277425157412237569171050659519933461671018754818293773157098544678360297151811691545146144631548327679966899128672124523984809641613915720586628870961969572897988034305382020082383335272932498892063682423794817120993912862729742025754089855094234388480324869213940589251520209491168056495878965740950017499219858314447494163678230326051724378801261999977333053907438815339195909476765439733648654084190095421463517130188897753716067175189167962808701002772830491405564725853495519618987306952265734019637593817699389357669136807688117191435345088835201313975331383549135907284412604127360492402545616267940925060141167845945040777512330226919170289706242811961838033193184490552958729827150030875015917321282212649875286598129709684246552304532322902107144116704283156163612288663899628717473216950630495332682078653575034205919408604723275913549040603046190432678365915178834231500413001628372279294207912967231319438511397836390334654023764394563861623230163259456424491308316746400560787965472266997320262494539289092197568180858087821747246063247724092122144511398747156353306551932625695621696527679719301647489395229385877481508522699104222015652352056391729082738860368026801126529455408282029592735552526096239353036615572854958832397289022990478077372503001811017713741673438994786477790778814611899454665484932111318647914389507518024195633014521658025705487772576177355718875930683637398092198372123273144835816553968658044466672908695682592050548797173580120894284708878659549584285728263802402130804033211632351565044379198816937727227315507017456977766652059932278778950522192333708165347592345834862687756006589271061796546831658381250499858466555317647011720922795767027572543438884696410444046294825477057372781817393623492545166573507339479961592201004920247280179981364208256169001367130169422298111635675879353730877981890111578771252906644042836746625642033977922247339441566517881121563043696177505858473549850081136291774039760514795843029656049078249829037806918320374606387764854564225052115146903620735227683613230023874523295393648461390471869547285931204621269456019338859318605163895286028288442894872690771051352628460335241764088750520681805828000153065529670723977496442740411007612051997369463230621936581515531434165352164307700456601143600689625838167943247266825136706498662049238408983555317903899038314684769090421763783683753447767029907342097752286244767863536614879513393285245482566443233978439277613160438497525220467418921471415679138361660030643306837554000093546158345445762373502222515319123966468871643083253339843852954347667454878891999482129698929067642718527645496313803860247535310147041004521377882527739428181637477905376147175512178605486238612378039907076595645540139364751514192387261027792671814510429443454280535766277109444681509015070842386714486003134398019478277005586039065786728816927084607513782246271996632230608760589650058332865969584224178123824662442183922793333823188905652930102151105060492075666460106570232391318432927362561405653741179391900772699280747868471901499843481616600502616623302741176643694201994465427976075901253678162221295249852990010185997286452120699893364024164426859976572597305666964720595827028975356606966029741945094343322001313999944746911666312983066673647934520050929910127542796969213634662314441912274432841579894232642777232473999099309228290771228911449757374619408613092572356365928775565657603187237365892277396120659700295178585524749635978152794108533295130622852403609812819297473603970579883463321045143474018990804154918267854015893368464565786218812795733529007521046564346789746893628339264234982998276711832173191139205773429908704447850523422345823083165957171614233324899436143068544260652668738400898192770830839346764874361516902519338120605963984961769446913043083998090194036322219721713978374342434159216597159722387863733557012736240012554218470632351743509858618305381427854594191885632549629218790201764098677432934502585388883930562948413225442950111916783236134440179738506208100138203882304558694909460388223036364810780524932113609814782429010688919910786310697345529077155339328477089595473714579870400396689726193335435827220764735052022230069622996012114009502905283565694645033279177106829198063641932563140516580016054480185615413556500017644703500395403027309147521936424131318206046165741048194011697872269633131460920039784247951977312572751641594176183726761531287308576514500226981380038018178736872156105564414407029324173577279339207960591586001355667808902832797313833628312695360813170749929652352696477424548954041421816355522288830548858777747371203831194284612867793465714124901612279851480323907617860917776250956451160464410759981102342950383783963440961486186068848445528810377114484545744545945673504948546838646356111855396606579893725855977108074737670097524396020622356873108463937836645370070260403003240311031948508205264064408187133525500585862100623403543223825496811879011923293696301239853413347923852682729502987115577379883430521763263363200608754875840740295650156604902429009268760236718562760484230352569826994503497262781376769150058570536017398438988860906301613525699978543465794527756147697529096836843760981553256651289449011957948076072406739647840541019681916324572666340002109448913185454190965754117470135039218325064103108385882728296420284921579627039546397657249967082275475021224677868309009428174462769029384972060980038912122441475737520260960687245299029707135312320256551871182114133118930984885714139460917870648774352144956818471486680386337758793261396803484684806630943058507846925980365380856841282888627809262107342010748347669657798420668314380129182833638886767250068697632557239035832122460246552174110813440017756941546643578570030000632772489112198194992138671119901925615180725150770730558737130627388449849068549509668392520278484521982250898362991321918334323147144560675934183731713620218817107639137907353290340289116189507537970272717718340170681458599296810746715344703407341277733241989026768310596441939392797271714612046245517379119789544847891684224862018839579772693969084648025993582352801041471978873389033975271843714018523471137426562556289895904895586340154104005437100191136343544198753641432622868192345929266219353388715011583099921332692069655184964643336154933447178921689436776886311545765796523979548965990255936301706002639910892909863185840620332735026728627871681050240589526730930567822031076487820170671969483793178964659273094270514428170352074621727222010766411054337780671765506597004986532359198429648653272811199959621836938865945538204380381333588787866270345223559096627789009140967321054659628292231123589182572891572537192684249608340039245389596573418689159396849822167042657771231693042293791255210653855224756884108879513382981397160719922801294534272965784012527883335600802464534919665723906265389331162769450341607635251532543233246060445618057242086787834887423447453774654814720490220252798532820383968920514341160643484184001754222640229151915454015391673432994527408696243084956951715089260299653468893758765715749856516005060515255158278983529993137388177299117906822151156421348125150227984811597120593238982366780927221504636493208945924251364727255971039587772665683807897137966670323596760826437285524459370472523677269614312665028485916866899995107106623852642732291550768983439075787101949261824496022759524036170245501452805862225709089202883417062790112890589659471025016201041013707996995838760683530291518937386400757889414936876391663404970861592334501088519311127248867452068540141021417230555287475477945077695094647461819992234773021906520484055683909470033214659672378571721464237508181338668013818467353369759295571580987962902702914946068500747472827955470069793364015255888765582917314528763942845433541124258814190069737487268061343510085623283823844912413628938095909190226049192809828019117557717996838009043304739171643937318129715994787552789718713260785192798241717297483548063983347333671179142437304680128804261542608896893173878957219183447571938172811904360453978245125798289766600001939553638833398531180201673275520270137637805740282747621414209439043063842487338289664358551912766261185309295539282987500678084079131772431137544113791807842825785513490568721354048772133470975391916625329615052898898285467420932111067724783808248078200862169180347931350572086666579081167674479023654136212789375569948222369703375625950617748673723086021577303022102044485897272156722807695888220478668699172539701123448918293896834013386364310309494575703214594437698972204889485745508193550863760327313414747493309948021386350293958598486843971165018256532877951377475775464431865526412300031424739132923819991948898148622831808667540133138159484783782887279259836959006803392324867280127369890177741951695924933835889821301102552547617093989652534841528837501728560220943933872043546223954431518622353046827386326360441922498330351622157438408848149079163308857475422102352135251549852342423930151739511091261578263190372138994979563988737985456119630643808120199897853152311025282773121445684124004717217829901136748351463907509396630465681497439224649117196074249351052962443341021412163167386326000682469218851692749376374774246788792678976415506595031520420918129831127062575624185845077537834276036503267076198400979008715862445861219656179110749154000964473459577157435045521418032103120549423701614244827566284209156269572253549018963321796254027141048709519568532984995450838975216734743353059274366157607663610141546673371312052302563875261217612583405589648081502008848846170256760792511353572288758956094858208186029934220132874638438015205237252621846233410703105833773787150905199256336798834219779602948105174651680761601195665482499343356715499853518668890845017133214998056529351367331320772630676632835534501677345903615390101327471533460687770587273480599223171723239805279497034028223250540473430820163293334841131838143277161369231049417513050738762830555120770882658684802810408338263772470680923832488778779255912083161090563911859213917265672139211533348201319173794515533316205761969310807023052561854905394343443956707293175884963767518440280731096502219805422946885111534137043016663268400977308150063093065645146136451850205059837617875514126033620461595412468641291909508861794678531251722947897343904404114710654350531421411643997006776303714097444955361367569896978989715145066261203361338000236861555774019589854658613043482962898041725666055504666128257586549375047469420674093749891799535235480324625463006416272222797082609206134404810150738042996706789635041001865520838756481544263145717037913381246203351878109245506131805866378294969828823514206413770171870577650059992319434445402453889855846042086859628911016121802399716528746142483896069377400225679161578442576207176791763910334708011170483483906940773268334552591120426020726439732221400534110180998840433702651294704773569162807986520833958098586771282020040228497632327247479436237493173473670795495458735696040795844258193345740018877745949819235472962095757492085190806646508102358195259883174432285583188184645633105330485457475104109315027826346539114806183785952501880407201907717737723171404286187666456058100561052005627914636324280463682413808922469067511857172066350733703283882913145860480014434258538902305205775525923489430403850592787981513660262993850271832155019193941822713984689883727125348132453219460218288275681098374132372915794172007063024963256500104003033258278563927386404791302749587180732919426787595499492853454968006799540229209014061894832131899095034901054788760344098229443400604199705666092927738405338884299003298099013470807382013214905197280997977680652196536037217370134894909816303204299597548862124218264745906479243725622665850737114033907691242508042906510764209970583677674500164910512872759130839931503936612097995784470724325519046126540019351374059722526584326611304067908066535344488970514890247337997038973756032627723611392604668670409942387713961685448586508677519625421614353521495761751338275912750175607529455084966623275754903370625627125351551402954791507455356122446406800239966883346548964445513342593636109326315905564516305098283156602386448091613286461719683290340735174572194396020323214588949363252454641716121982976018425545645215791753471869581172687976133286817070807033940645455546847929632084254384784229171047711971688405975261058429550797738717467468559372728168976083558006300583740244403771101872403787041294755542989872935689973827973917109518987071581967635889581877108166872856522562036923543643015402649438700991224299601764062456426203228674199362526689245459775179464054531092728407004988606995675030167824395642496602299621508036228931470151908364541184775640436665121040128095753623601646300973984529541937292639843153504793681452194688722770087503843212615094746261763268564657586781749264495583104260460337151800604872569152425883884949062970432320863648851463049133321663044894218340905620085882299479824456281507010616647559033382083215803347705323850797091888390080875248192538035580260531644318268557647695401497127569292046109608507445703693600276659105949381692532945542723020777007806005214219174047431731412310246974422148519412298900303491181863099276811713417859171804537954148849234882527474483235434621035354465582243191562125973508153924084541488413401375317802789925350123729279937443497565768395977447513115366175211452108232398942906720173075462175045714389399436051748041463425407670096653588211564325510879975630938671556788406530507457069266122562627245103864633386496156418670326571861039020867687271442311524841438783193435772883143042897082027299041057838014794804876824922848788568735987048851946671400763675719897155283135585592233127443866253140121386611610280228195903503925143082165091336454952201070791676626449771655280772739773529477328059946224201507634364008186327916546109762633062459184927227184829284925510367774333428183383306106581088872115040868116802541401722853399695634640314217720520953099543254635507939983757475583735515692232043855975453030507500821488881952445361125027347170258810847503436012064580648422284735205496809226220312368562624835993357667901641841787483309150289585338499220297523262101168281990900860120334120884926063057725745624941090607138472400676352179668876516831871146334770654784555861655277293368627531023308861619433882823333949378841738808947270311330467804462221793432858475150334293190323293618297382337126997234811355757504676699911528923731048475239338515604161678936791335559501202658236457538774529849445780563649300018547953358102076679118502889649430006404219760450200594528591156746909353452800739658379670525258500365671536948585550920386499909732441993979593252644849308356093873231761240484002746557039753658724362710599238725945786814774072771495021919438382475633712933908378268999641651352139389739530334721848323888863650232697242629640877185203994635594083049156044986495262046241985989681235442612373440151931506153219530837734890093424521685496184060135996081322732911838239135289341013481970743655627444727216605406055270651104813750768618925471758912128891342343162338214650625490833503014090704767257546558388937221682748939072032401977907669106389092532959277058915133036222661796514309213238642333169679560542324865922740501266372805280918334827233953188411101810362962817833658913772065925554746118236440244498411678002270242606608481456571891778331655935889000369902148044975451673609306135240993130577805763432853766189103903688137603656580315146877941266087716260978912291812157932563570805266573877070944730839878081575029598977938967425056563660976011573012503937641168115635348356612311569073089631826620777118587016755883951138197344023804473779720480301604872758209182859136985781694498399597297334409769026668536216424291363708204827065007195751268709861465849047846771153896102215518527303479617629138204220496651009276381822933798847290085836684930042114215169546980622197619335251424208969857758022900257483413905929083011651975702294679182607326568356700079933446974158177554551495654868129143367544103493052089023886087435387356531205961909432044936937679851319554802919999168985658576815133215024887217162922428803732149796968140874797083193273202193253153907701005029666359134694769532446289856113054820578108059094736768370675516678208618774820709412649032860813440582057997927567372513053409999743461676300173228684961571749247308944144321883415521634883232444109043479698801137287263182735878650158396884897154683031764565142997238116307443832098263302051569999610566484520583923588420460057100372557756935104903723819857344849894691490415829938278036992589157961741830403323888589713608767734198745602204651215313344995880110448266720919055480963334114342957281983908337140148237767558821305321775067518351650340475115107684313980979921781245540524852218584275484820770324345976144691739192630256558373644670764643898337793635608707735734188415647443620583129848182788603884147386635090687188860227680064493145586793957049437121050885343538787864836403310090521288049376660235673107314898887985898020745152817265722093349792139578638296391841632931523517735961215901226538254203079020610805963102953988756180136371888370297560920562089976512626466706801668554519753137921105120232331786194420220854653027599952016886308865376155371902760724986859586771593084011437842702898936886541813475326532068644794107465517899332535480659412150683186259985858365145380352505675446613810455216791777972647714361966353406453373193325892180472143791750408969296309084272497338254784661727732933891081953718338538649351191982885648275203035470043831947917053237103076591010981676508619646211597328426028474681622698324115245179483806150392370960889261790066460110588786444532016321320412886521459128340576299838058258956674011827244608942504750726199514393855887909660288704695852915206977929968976940341760842702095180324057822098313465383702089176287523378548903907691015806427529963172397821199884228018393398418032117327732074631523405458264063690276636602839999208315450430105639074797629269459016031142631897488033793860018116594944621917843824202361806232767572277163068079831098275167483336146509873228588401636362148606770205337485522211814319237584806071275020851063588217390951147624581765573722434846281068223713690227160826260427244972652029589417824092009777181791375985734539829201262551759301664402938177874930088469039659544320487847996304673134974412897983852767671537980378209045972106393018126596448821646590129471527671195259328081333263226186134787174062999101413202018872381467633521121286291889547759753050113227192135660192621495563521231117085660687768777617681920468415844414913952477121585419729397878488353468008726420987558321543007968539997446756701715422066420785865689353267129413380622201530948090622923547195660444847823993375888861859072877465260224912634264105159865949385432123824761344010431911727571553454710251348197477372051210704786478715727760382980186805257766401504818320017459275220919217329714959222791874984850084881595782720489233761250106947516633660489035876461203542526502818613278736350305715113702858068841659997320430361055633417776375026570091553411286903192872732475241341118989993409694482959608315445639869693713618966490317516116002077414749103317487318262608060856917763454147554977790253005627542918227236207472622688652382947692441650165309922850287745001851586444308206709943483495289049579345032090810379477687895988629327203205103701117641367726380278454722470940251807933122803572205284229125785666406400908756166376154029014846192134896791370896405736225059475595593025861072069624039690792127412246105485515592233719949953188845247618402831784452010416103649890533285466573669795306670313231272336456328462764067250676570809856352552781591601786254475957640651628268561335657167731190751450413993961091579534463239753325728851799674020321544577261634859732480354275817422437187542092794853807511619954426229453511411020594590984305454058532088825997831328781344951144096933157949796336631706060231353773560907941469903455080362096946920647817574129068377889739113776239502944117612070042339906601857696581072411804033313070160216163770919948436923288702150398708107777141224683202434183884820807801744940273153354517836128692518656971654528756126255789298595561538682686902819225204134093162184179375227970819706191355973351456893205019069561946704818078219338645568300681089703966016639830922497967727052922821788726991144300528109856503469845234472636465868770374442612674600272296770102983532599038480205929892359484666391984503373117303454619020307823281442286736855623214868898298847752132700590689496312504049668177695261880720142780802708973172575854699507176863819277331312805339283028140195593178054397411504777499353845169600306330100832585308665479923843990076055502390982040065879402845624509862008298599795621894694237561751988014615967024130172828363419574252179878356920363085254290627610143628190996014551825081021112255045365500554347305295753747619117641273596473528182067160574189830661847857877819738551064012242955368675977114841573116768848466702214739009689337582593827230794182767179277947469141515832448893121220392833943695748846951647226550395972757253518101888737824617230773087761332162530172903551951527266695063795014463123998911649028696785147102336789660230198037074902420928166660131388697145891920239687839569637896346526625849420917996540076466869765243970355189303461176832221117201096506463902614442102421114220074708020421068291366541682756598428503228081389230131002676330882405871173696318135532186849561004973965595477014167762861694379715288556826469310740631454499743391199543091586740633763025515672376716652306202926820564771202277760781276605197040701692930480572067668953894098753538446566111112959783303162240486674653029838738217527011048828029351532795728992040761265819310574203629170973872649020371717174731416740593057073899565011994993864690359579117045401644364617562880898401860543483802792908660568178166250535581179094665764120481592843923987927924855109257639089622883248613256988237311823455957289214930884983298048876104059705917744554235569383534947885449801128001105887387832952235450374423823530687144457289662589658727834489740680740787883798211794560162585986348047548497901041829470182618439796065421619193765369751453069896417263235163440232118309461887667242797478676348286359881278369737219339981141687495375105450995576695685028616817748073844040162230979376861684718828150624622235024514319820864596305432780257307167334446786340794889873738832967573543122053947477737431672714925904813686105094000589713932030131956853075737936959487941045708109492101127557970267199656777001645941629401891614862609661829669210654801157493006775819044870493208428884547374351061076338400637582458727348379241853471749645060632357055180393980891546539836023705608799408647907887252013285776138203994098281420708272807096376552853706903753948553395135403751898721170918596907022917853006130234702361845816972678916574580753404087680990266810692871450919712610911988859243992625631543468460477834216978824257423916529757747423709653107926611972963725841421762229592437786740878168273263684119243936158293613462762931660919778198026512121350423452324049815074630513274135777580170363007749327443809127062622942722306437946145123779731304903814306921252865865166739760738379547296291832652053001563434075074172548528351043616376635870536055205112992123532949396332340351754458853998826384230127809848830405329198767371066683188127586725680121585285862097521818182915914372632373362257883323744025109001892992647159339671407857494314159807886121622651077352912834364025844483182319294514143009328617539226714895416018267814546322979642240767646095087687507257864586505629947789929117185615511505827329490779206598033759165854148823457222886060744287101037881397147328799002408188785689252407369578502969327051090789896332121515274662154597821672221029270707884019542953624257712005509050727071024568248600433588104061305636872786119337320890160217068794717272519760588368362872225510207517341666740590653860631068128521057987936295355654754824587193215377844402142460692501002182070329044603638363754541786607702922980926297763796151864198165579636426967975017999810322040296903056281740847772438871726455950673218219861575115356311929694377085519503915601396557447019933082577885783268540849804816852691323178372863895573356320833705219341639538551002100600821651633851190235953457031896484707782429071639445772784284133361980839640218243842118565464516660519998716151331839422183837604647104525235238456300504191521067859528360748561634145002191323575271786334959100860268957281312047296232777892029553971813098421436721784820667767575374111762045023307299892389831130624048471553254629581627220034525330970071230366634150165198308851557358739600609427729936572463476788061431138744757961410578320109895664998489310322408815821006359686720486340053633999738218990337287056729608520622473107258960959275713917579579497926552941015489064437121066719744521790244265158126915073895236713943190026890650877560716808040426144598002518907216752900895194447444439208752165172327398915533332107945127463475396312657675749654322398422709804980930378730901257784727343582199755941977347803030092001715561338995588105232296215478140612553057985865993168612532031475827286082299652403968186867440234433158393708596646911444177634924540602893828286806523659713222545477479463597869791348854951533685955286668766238051432687907626489882988250370495670735629607409734225437649755204116298643326852883160854747826678367738095348492931395418079625139396525916008304396031516630812930747506303565824869812929592169151268555117603846239408236050679050729265366190025700057433658464905326377888551407342154056736775655902458849330111470306877632159230975315024408562934894913065277802659972590181100317898608108463532699935029565491933910144773747396140825126856067794307504781916864816690297180326142845165810908818418773324154773377927939370432613943905107410037347399687326684086156768974374630542492635130446636521947913749434327049538868430653516964525943756855579065711197298225927200527268560314169419739900858795568264686761550565313027627005952353383019928107167714956349094579185810180171505347332429011710881574531510022665259733951930148195580733496116538723325723756125063214842523759499303021794225301558232623244188951925969970923770715412822318866590355695017309527410368825512511708181210942258908977585387080531116853918377068490687005276665161550658211707327901444620535744432864895893277697607253512215625905822284429515489276988271988398952284762354323917432713462699369906030180903280150785837212672947444439153942130602588441505933438860326313364031767717841544487565525778673655655186844542909855608413227732454411291984393989286419754955519232162683541174521825975173004841569785610954718931805280371182474933675183928489042181444637494167023637603996436400655158943158214352887422275327408539087683536451044261384903230862925441976656090835850912032841103199298832372214843324742631837460439884234184294383070601081554039873228792571928952845586105205018966635445273340811558276190240927283639936962798814635184914425519905394754950430977817456715812423750977992588923850317718586268657789422917362298288957897169668869080159085283195208827066500495727617649683223707588737528394790551807975760946483252533430536138362403496466588449892465020676813102555207339541076262303007397141935827439241494633313108111389905301344309397180030204342208231006737418380726899287720759609572706655328584244879800984594654090218679593450476907073937427007518922146226960686903901937401909631258735668173603108388572580780932540464393585473240189948838838134488920304600917269416439019688129083748892159024545438619943804356626883967401468756329202719340533536610617347053671333361885836536751375615024852408697327870593678986355918710420635896146901293402368033921965089449233935412027376241726042310313601249780085010282894212954911968128936538151769863251681313333978712860732035275608979273712142177972847866171473094120219849375221901761943633389551672133416281074090215512386401873613137278281659949608938310412948194849013360912632797088338271480743551687519039087009716707655649220783318880558381391573296986323630286218393953389529519528787915653791046744297813341036020922026142220964704105890801047367866808461456471126975994533789828066986517178900657197914885457076658842469565023820567864348186131344727618617385311663272106627986147183648447511774873788768250654193719942852123909695026165616720624040554879545468902758994169006235554860818065412728558383136306796600908392698872076565679048883194050389743546884010268645197926413289860569432950550091375254099104205363777770178886377247885819296920823956478384398209156788460117376646666457396163753920970188647630794126154502288224831057231637287001527711748817728981580941317316442188103800177615160126368933409531670175416117551192899701340768721513367482087677727511606083583260328371628740801301293591478691259793971872559162547524350902720911062692698956074942822096584555619718056371997417977386493556022336958572644025414485747655891915656783666195818540532209048046383846745545504920824131219994221906704763759814362577211642533893333429533924681829734166149201092596934585860207518325385922742507203621519070878958162048152990925118052976122338177933549746815405417804000676115397565315854711609013996317855759214744824262815350870745135653135310337319081663667122024098257657725104103654958106203339231432370896369539107592027796752824382419541340834619809314560200615431032604088107026228107854549789260905130328182147519171985319898944235904742370045714893380679007196082744947523414359316130364275843328912268735015839782847749477225216817602798830488398248278931905687347884994316278936323756608521764533305714857872907576109572616638077898651042231570389764298120796535063057109647737401106693942406570036493409932957875620151506007851719390641221445519346560209972309217621059442168764228542046682211084830607273585072491771713043264938257379358304967877854287107006893499659135039776698932570676261816486394210475390202208376105754379656715379885890625471656251876300339792333409949316278204166706192835619558946190302659086427464639455942311004864672094260259071103283935477615498331518670650147067363187689923973356764807793115958627949232354576118924824340311619163753637311801986402527787001207158443855717826750909455147600479356317986491846845251622587498636344151178266059558282313121993339783417141190642517721670408636989939598370344133642324261113090589244753204909543846415174844452193262573081074217880388659006718460159214277090807213119054512280642774700993221315194910136620929610658703925876889822197006988487415494370176818700560248456139225075788504585902771997548359830873083592519721751610101126863571020836399740324859429971678029750628199286833373249072670440057979191856454996866061660417621955734849903857250835409672746229461783512928974129906789579338838507536686685017973605376819414650579612866210036019702530948111963684086577185622792948252381510415486242330946449656995420413095587263513716834738210930516294043719526161229184903495711979618762699525731525824478652561020525994203620784425074346691216045736064874402413932677025265349894830129959799351596683064264139144232952738596980540031998410753282853437971135812951934652397199301843974077613865094106554391671232627688605366337710445163337745217922101849463030176150398766754717395836044582137652959841504950964827275347185270464089860246827088156408012689952190216016384650666776184745713560977984110144322788955358111228990027491725361320671134276759682329862883531251448948334300349144814191168256395914054887698668559839751087906418823419235125279447689777453623305714707724515612876741087074074085259023002990786406657928561828941478562770760848589483508141423815453198039430106021508520390383568632013676822353557463315916756166263982966405528185933828233113513096065575832158282990056037529906838595897797900482948908897300924047153422577075013150939911566377820167660350764492255403551751402469242886238118266970593105545965446329864941929580412865874253210385468744706735546220030836037629077420223597302666276711188068610312236071633206590170204602383805364129653663147539725955616982659532132073006489857888729537878222844631985902835941023354647852481303065924812682587627845426785550630457792227005583614862204417766830913208166191065840084799019597934940306184877209713003331938777710716103327699493856911219458458643178393016390016046126172558401044255517195562895645791644667959431194051065007974376793340921377864820893108350043626350742963372925106311758293274742849014198403175804629144851936037545493903988120352540126310796862626735737606391960945927352162287773089716530247460922879873745933415899963040646641532484948856340420850980059804647681123554605838920682572007278899794719066777495412137140841262870705801443031021339262403238078790033211941453959865849745875850718477062637188375222324998534211830136330957946782723015548847253608370881375902906172894777267646937334544807852004824320063806085935908580092421546468597391942845825307543262134910913560799468068023852550228819389184118253890517077447943047848825674924710596614810061707983120029055026769728226446436306618192232715594272392567216151888406751673195299599408392571141396227902195844748697905293235031801840434163091005604671212607087806649787691304648427642179601197230555701639624799003170625639828030722509749479925339022892787915069391694168535257876508083431369415703951101926727087894126086541764231532900761304421630959379512940084052216049770588502626113365731378605179265035077233369641873291223541586494400983560821605143118314788467505548548536297023237645048769858085380819657301914945354936615246405924680847788823859687874133397824213109458498486393799468753615420802983893102404633808017889162330226706530652349070616700726943065348154033043384409186020297928280927592788373330031450091926529632921929010334351153261683179204239413221815924777753855279929478181785338264667618642906234609647268464114033255666327522433666244062667120341058753976606287437101802120274331776323808064961149007556278978081598592082510262920836876162649906656591819129479795418160634910488324548057874698766140095736266924583299680351016482834994187945611477577602905095080535416871868748402932641192543959387931497911913869568596329120283654419663140442749099541953303151282150947312999423622233292508055905219440960210885052305521444665943544610317733151356218418766577055917653163454945305231994646191342787110475482550529686316443728393830182742193666656418711192788558980924906271338356920910901469005853941761574649719457015869456438241461953794324977229562654857873761381527254429556443269133866384817119811117849318348906531164227552054086910931956485420689276052861081894530179028559818096108896756147027597100763204665388285140997070633369461231456877145008226313048516257313702127185157240249132019428526850586854544545048267071815807062835897790829727338277635243027750809781793424528132989047663419725290001374603386791086996723764944362997087787413511643279632862565891901016776927886946522297821705526160500567157052305335790576479761354041426569054665369153034665236707440244303900416658791084476486896272155135813924293460591096006550484774304533908216377154616066474213839402533991127199021332942197070034406163294578504467647573860879251314374152073012796695289653220242883918479085155968667675924430833048412952545038255327234766819939613273118721938269618097432016656020863681169881635786995996835439084486856573164156582072862851193073359230860455952553034589688106754167659370252719024094731925751334360239162685121899367029503309844221288826580839460651090547859055882390824596729322816697092288992841549437884130954098216229163116200744718418223654013275236073392002270647862449817193493435490811495955391342141161384924069604314768005396110486201962194414719722500266119216259853328488398302274670406807644916283663049740756459746149885978142137899570182185876348929817309632023952870896173257152228248861709010330410956393008889312366678376238747454825813012259532297639614933906262033662258414447786393571753918251484674305181347933639392721029008168481562818601266588728468223282334043147066570582977526718094658247592150572813501157692198896741568805541725525760441867892206234841025778910910930049098716425293773202270193711779754290862867449519012597581494862555294519938610778784729104135736496960886822898380024242599937532000040155895034751721743114204525423863140296343578853116860285234824280902400856884127282490863281990819752797919521266675948794678737890099764424778240255030747284218652202143127386992352833352381926451220376054346921917593933471085897113412613930984725083084271180843665539854992852845021351808472730247802947802988396534450249620550169217030869366375795470403051435741682072918172770519290119032819328293528370977761792685827962689445433412023155607699728789646213213508505078741254890373589712850199042856339908645867960191086001082580322369850432285552994803489772826121625582901964260728787722385934705085756963815515525508095226573262395165673363495763792413903498517414377649467437430985607755810865959378868227595638389159107559428394104296102231031365382859057693627751209684568196311680760662264403397508702329869744389263325496208380149176575493674526363385120424468345079711810880164626387725129757939371570845918103533454145378502589394321854311224882224849421942347722810051363707205514262049457266798489043781987439465162713549409559168470843085445233087205238045998845742478142486322666481937556304255359790444733202668794719949255063257180400591828515963855167703904241131891266437579130104707419617026163282429014874059980929998480361175257661539768291365460745028148137978829493411919850365800503030283892628771723825955231909050543446963328427628194497149559480109094455768161330856441913012569994921398538221778881088386482521246867983356598627408604220817750912148918765974647862415649773982066533398668492478288254513733915170092036424090842820471452937897228239883533329216822995829113688270821297651479215296949321005836246591676959707845139614346635812405699032376315703948367826791964804533108165876263116320108647272877528772713670515378989214233516604112323336705235452054533405273358515846805023335407624947785680562115345941864421840964892665561745965146992032293358442155279382979962283100639442673266917832931533656876723159148514336855155894686332958913050818976632438595943349707808255684136477545845776713352875365049332151102615893806715033550366689179035844708331542534869850070523212567239151025108873861814737287773095915508953569130652604480119284293899622070255455681583970771256366969766395782252303527959229898871426708231821557805264477841676217014060015312539469102936970996673978021357492568204480466818299771800292871564330926472465115062625074932072999424678008715677373385481523797898387746237098600064118764946215665589650499529760269574679925594445275873191032011316922844908285875735955456927748925732946914447571092225166136439715373760299567429955647945520440415233158615963323370664111392419764831714758605333652716260956532815302663385477593508052148570182164964714273162922079831647346337005432430191183592117351326707097382664748083335364312599300308454627262792480249666597255612103503494474142205952070759623606315038193119439653556576705714261448758839226019920606659133110447517170640605502197464368433891612089415185163046900759838473166755818972460614085045399403799833252464494000444158148501334250001886851952945519441265142088471751609584450911445500183789634689261030887252532171141997161810856156561168984773732064089559890627073336976211580689419036899147116145529426490035741362619785232070513522176441024195084834539583483796721233961566162910545813285334508751973565373642658219227719073696642610715034541549829166641275740493636754133168438168327672128675012345330349069575478181243931530839416651404380461879117696861366159971982128923011787221404703153337896043403875783841370071582930460305125774507737779763286433852939193799995234093335691293432608949662668546714373770034005269360014217915701534724013289971085368123583815705554003065639029167163914704040325784256982036996531005409006564924080437139832437963789775570517141844567385733554997686629608114040567541087098578082523361983617603058103449658933902164248167368792073463011600555549545624226428695283136251786210680479815711751376126422516154595334267216918554331817821529363956908660189327768386415336702308974042373052755217551032642458902804200806119405628127828752770775472548995548264411335484175915734898361970337931312230418905347190450931020802214323088099149224807970198471912718430600579443688841722612532965252259015091491823105177992812921663849609171933531474139727713192242495370199254768352883807333103675374614750886055125798508548825575431009634154713646860126578688292788395939773506867701180286220511830765066694566401824539576150795956010018399479583677177028671730257344676865749214081079107770326802128482855988019581692057117543908861613057569419687923256022123266766342004723424272219350624096945073200946455639714896776181547011263668353284635489259089182863475396325963165706730808422866709845020891559378664534810251148312062920025858194040564423526355397937204048675909112903938815947587715995149666461706135960603859037918471049185982515619766912418090936857698909563099890575254939956150427655113763737606496300460230385103941354377771326630243757023412325510463754694400022979142402181971808892746259627356957140088859859119034003213199280167105764644393047019105965697562401061073708594405217753534553532164747245854344587633102880596466314602059515574991021613168219942937707007330754176746642403365923679381486835354093077886836734172743886392298614564154803798228550554183082486551017340403713343594568978014720003016891679269139072650956255302180597318571619369620447747441974685037179326993543644906793511846862849890074233071558532714202494525803942547365622169802039471730125440513574808155785249813555943057624735043045956468576245930340672750773792478456208230776206790448279992170312659169798170488420823459190908703379656449977161875330877310703814864259376283376652078335928274208973483609167762904043310275433758663899502003456475976175289352728510784650100714930013941816044192087334844264289948042413321351025865933032166202913279999723356006344943335592688985670865462474881455512481187359851437857490157407042595298028168799989003463961730064989450657790171887748784689638698611041151265593267610768939534724124923853683854953532005439486524474917064272654685542777658404465742039080986156322808158043619534131970123982905150074286587815763857252143544085199367003027972829719037960999803349526149250254458798104487874258309966607421600289581712730515458718488091450055581340835897184695716133135918504500731015550446248096267167272065439028471417107624597192429783131941393173520761486395706253650872736935595018058587806741130613925638424009865794512738803030185878067702290765665707054273877764592230742966797143493259273984787262149114559929738270968316797297841624122009256762242593367966381964215239683102445428172120053777711524418347970805662258730371868944803048806610940191767488599830728118204029264990635093579421191569332377476216932057654204875762238101939518097887479194081545821179620312166113479421853335598445979925708351863717065829941584157571756830631393569405582769624075765064869357687016142517225612265230937854524290585167089776403796464855618932992848555268122266949099581076321928838822779927005129483158877338759079196803390635593242010058247455774059166862242669685961210056688042660170886263351153818967664467618609317400816559882664181924779975916862107341117482739594130709059853799899072529464959354611976444448062043012635051944884253459775438322271653920105321757037430420290968422653946197954590611705989162856229879238330873688157375500368533198456245214632996135995192129901189948445627197641217458688614394798352171669265242852791272642725343375883711990567849193982117334733448221050638038522565642725832993448433629820503511305053533608824399364904625625268185170368284781695705569522481108032263118215347598338161246576625317758975356362205870666588651804589279112938814367665185990736953735706240937596706801407563221057293777242702706502001813662875376680990235592124093265492996388633647073511614532269148102085555648177018613336203723440405940730404100433235792152745814334793780070939624624779205622520739973437766896756837003499905663620427210247228957816261846754128136547476849519804938067822865726611760184585894073135041289414222664650135981491445440394913913497132063905590390689649047375520945965750546121243529113019005897186844963522073356778429604955429781904114580221084427245471767857639794606488233714585342006249559583436275258023217705015405739162064707483700487204736786842404776132160782050042665415958633807476961861436415599757493835691321932515270391424405951546261434042340833293433474015822017229871837778283315584933373010618953231091961583017444524834266321030563943108589959817733180226349164900617277469849538739921367281620025893863149222983646678596280494046526613594401884034263944439942042177429283771979838078348986002721061883438162738665207456143535869004046365763038685493996711848462341325836159145947846971906587102855980232439824317152594700839217177342454953416951097299076408701390180969900592969909210209001568334106274577181543388550619228254388669798053089766604039708934260174422370943662587285372637122475780277983827980150248891960374214701121978353609634061886652008856611649815221442346704695095359052938465334547870213062604283777529797634479066500008691398101683722219703522335296888199196547147929086194058907927943357796893007934109111843093038608037790535643392734078782321642726022424876620518832394782819268121016258887407373925917374449627816992634792535551712383420081866856426527246000604163012276369906947501898320987065863207232820251511823730450736809995313778144407352900032109703023369128396014160884668775024545524464440267481847575059760004593014602789619351413388640035967285646043573685221721488481871540462565015317924677000061710521106655372705088150306566425305899966870424720735007853563306489263799839445576416515745537198226097217615772409193878125091500907781287533587007318355467616072950440196099758200067664175252986023479559310378158152230976804283036483777271291397003777925103715443359432360773382445552855543161461967746471189130104477764903584505101863976481331584447832156814071124621181280431645119649649043806972593147111372458655345600866869265044466144819408717249765830075083969947944819630545059202327795424287638462846311596647359823827096274585671493369576480679541681486008565123837992663078735382842863821485674601412980884119430337724269644288293625712327536930228227228975629798781501416109528222007834190430837604433093197000352010163337553932658705009956587488246844689326056269080447715766143949714284313632910153396914903189165378424193134018162790327514108783609215952661820054027724458472535289259659832283736604238994981864491471583296220735066968233765828243560630054534430507543862447245113163189223803020159716536321634102161995090559295205333178093082737258220970601684844078778548535738682672143935173281430023520793131678823986414444971822590967190363914152392760268552371354850928222707085176543345053073981131292426147235251828241915830819300499632333604396739565216179076989733367012113095588933822846319757291674571309447929989316329732212485670755493982794566490479320930072498462742016562837919598893266730839944937527960159393276637258065378606456184796187677113618020763680336327483341929459140439796395757755843117281312108224631012384192710366060626368714904774566253401788274259475098384231458302839581622008188796706704843564213982103720201498716936290182229026922403120107684914244344268377728684571954058971900010574258756309311161534260368446549049208234539383845646507829082631477957796456347927757659805643135981998066625574326023275226608206287342019489417809804571754474736826056658308857556484104129454250748862278568013253951453314196871580623999415598386189236429049042408731802760950703368741013705950932031166766114236815293430469308178479387064155244808588898126973622153991294240880668776324437781765742564911949441864180584798204853333918776174327641550864117016054196894917087798073795287382997301094902464500224651112446575708118053743855751430250920983411860230923905553710719120068425604419447879921949055475132420391354370171484218584996390394283082622805938175537121158345749082021377022002252218910895826580767218779292103566994259955871040464834985594490522317318186329065443069126852319170579797379361463462285822517019865283892240033479032715053991215731324600013610508900766669770734472923208076326065721357969660541740387142664606646096402481591729650438625080805170573992525054801592127755476038492302120179285466049161977548606271258629594817453523264129955754828996725523192032559282834137557870975890378018647754903205872841396359013918974639960296885698195462688463819729645500173705774527702736582729023351321365968929185044008724102239235895893357530889669382712819993191870470877977812649995835799523316014925065596218176738567755682532279545920366545248074609427042336154558356569894860536528437952879640466523819719271496739559741568589656224352047096421736882112544181269496308112266199383398213581468910506838992043764139375995885031631887187198698705624187130746143751869835290909396546150780074387269867364516621259024600343722391228655649180534069697483285899087469990577653912973488841215783444957714162417938248834649532074759008115351093086104290483528807386151169588448269138604841734978044571588107626644772477492763892341175146009665595363423825716889498544365959927223255836404331822369673036363273029777947679608938071515183841285234406011239942677571291861712251592027077044166504248440300728162382340734217322274539545997683646336415750247474784053272305606588455363308403819213249284515362588050968257012337406187262692266167938713670205535490422600877940865306544840221209908974135904774671073284570343431061428219774248252414407523374927308303634686965471345021144117265578442668686940493148885060148542357846276109226927595895617218174324601780340881362651774474981353313901801283345054895787049623398934504669630846280919264154251195134374920090386483969486395025991971530726913318559864820051653136150367828350165079672391915270517345539029448691497600961261812387951107464209372928025755652510220530078930837038093519503483420642685773905662778957380413412764070270219365005817018342975769085412161069096145896929106981705102622299815077261462947437539790417198022320900883643814432527317632826888627029830766994468003020835822938786335496914898137999572875277575151457160494090848706775788892569753161874450673863136557972197034731031481224830521938096332198701736682029202612232199110163311765507086255331525857281603481477010788348829810111288900634529491125505739080705196801669221627301913368982021206459497087806382623121588196551155964177057349471239042958124857903021128582982886095269166877579040770143033010025217889764939766033444759668638956311386668889394212212784332119965350497481067689228507457259957500953627804260024733095355018947389426531891520698299706089831356708857601371118046471094798280984388885068470414127789981789490717496093176448529121174683901052437505657324491950504182277538229808038290898457539560602765236527369500601563454907094733584532952520214587246396458563522211404398780929089884988752123681538036037446172931915191930335736065133310007358424958734536646105683834765310345812497268284476132593798752786478201229377513294185324165837950752174969488570574740408343428442389599829477213019142352153119380277402055277058516759170367949597523798383811114060071065208688307539404514719296150257902295663224781311990170863475938545522060135452743649143301884587520748481995660062299563191605045884451341993979870291287513810406924782484775558602249407000070884273104966812917749458997775395460566489202652537281871135916098470936902095073400424124847495342821452772486955788175208399592557976511383444025554632335332723147089658063763077487550451261469806586244657245164665226418209661714140298752919190253700202301612762873115398624130040552964586195609838698021373478640377034916520507915175358272856732425847208412879967903084033532199150490606000089555279762322638618236889571448919936882453603470421349615908331813316693929336496228483696172466652455490882068080713353653609087678870592530765460360547545321132753427716258319436893533496880572380216692782528763154850710730944139683020994854351221650642811849530342116458213226288747371494664846906171839758035983407934310992434434276012946958756236098600651319237541356914899679019228099674124589298105953236285632902575739294047740954089741378605167518774294133662342626687475264181212114871435111052250983351123468211630323254889790374688249620261219089659066780330954752888451246866274164248440666287526074012178930687449288195555531248937351100043757454684875058137446788232220757655055622822005735677663011146639807584929996598916592931912919613089223460737509521852167414927816761492878947117004719220366361686317172510977635396879661687090305732937855794994631432815240442697789858702900538582780057473720474211248018288206199903208357276725891480858869300251148195689023737874268891471935500112577765805256183227407638736554951101619292489176122283449237787475775854528609860243210704591432134936928160321297595582163440951471009541032826390764883860899135572936648150578154276567227330372370307982799762104871245040232913253830076276820989847722056656825151806667346963578572276261693763428983603170343157460175726712747729518391276752345380338324058935540842025722342260621593968297021882103107474171909212257027753563347470857323535038427144943711910616756767591496699096173118378521472145365846254812622574427640526106350063037787964970331922223680345341577792091432918341947440183523782018059007274813480077679352338833193393166175060292809141621134479142061377293001185689061838852740804314330627426229889348086584929523631669234938263648206623747077775965895372183947046263596198281064078849872191013902026164742390007027170761189408851696410134017812336916312054382600204353692309090674709702893957458812957109140702476033670487887921866995696014058218474983911144073584844616253258973889370497394968286213395464627793274277275350022992229148368735610896450791130032050808843672011207056882874332499835969053900049967263516572179215783134376624218581270495139206152795190557124386345835324520356640903000520882358896340747826448432507973650146246630114234494274213986492075012007726050820687168625353594278420464595312486102288716311952395883237997046180044243288670925035548532170360236867651919960732543161659145271285961990387847349946341956965423336891633215665298137620073336793068320136542205266989052386511878629800595186170936333109207495688696864351393456151549280569868047571176867176561674676149363373126990233228101275899651911099287919030799679639183864319413389392621587454217028099636146887951615347646229279274651811550176055428953329741984195868142929460539456502328789578038168628744621850050358244452053931828881511822708884206229792047517186801349969185102691056922462183843384736740954027447503232200650522119227364180155576341382106304526127021423325914593221761864242700777976653385092693772150042442565134335101301928228590913463406461718114393636420204552634334305076220413272816814582685185523708253332832177790336594225702569207601913053771503116138511558475578835780550962788349479841491012902068181518700194115558874101245920092251766359902013576393616675377117338802336813011472148123588402129754640636502852855397246917201257042850563291058616057189257054299098309107262709857508009302522196545949545480096854494349766360140596459846259217500375646792073710254631323434128294223255740207823363026367825438140353538775740939335134310366363826025478210703112244017977721046765100799113090702758454036470495110384352355168960951458288787232672598139309470714309681631569150614373961370999468511528450411515334415546243285892090351293968098882497257898629603426169385585092609402331751198438068485833966534290547070893809053986688123606337831234734454801816693064033494808746435105845494533793838058839567295244362267141937669864472600120472467437634440930347338158356076623674253060256691206831968590496734399814030039816516696870057415736970041269786452106632511659661514048247702433062556351415215689585946230143581920096132686399018169020110346089455921866617700795374233399042637795518705079516582771272659860296686817523451405403397770029919047703852728517847869238040612833472492043466272390936348322035808940467982202012351490483772405528620187731557828083131652367651922415622056832948232498940401479529310321722354375787104003839382364207934522464142879239933369469840968350442928792067717192306799628875902511642653744461479383943062720325653719155559431813390855396735509181393066949897698355669722990856570953594510669693322482503510490681214589141083219809008610689086713561827387149264891205373537150596654793155490278893136983404628867931185502084184922655391696384415820100237633626784322085230420123843491583140603213147793562994868539736530709786630345603856096863518750412254128859099318483194780478360687634747836899108852095931576949032112744395421911561548813928524104352490937827791343988560038344570111399969005128093333818964876741835826321648152237844349993288248729942024578708120414459992504806284047019112183510994065181484275231907226485607432708139639799230601568365539524483995583934578929892312551029714778288611931659074268838417442484179712750215880890063551249638301889651374800598367733437412297994578948395690931708998382352204339112384995920726796138611832295203437510584529092724529483823843223362803435908114086240889246873503146390810049850393578861599908622097263205769345131017845979894385049550312314955374853892798673386516140060716973140304418544681784488313385569896518692367613283915527017904237978725890668658242546407384784336951366883739844885728664668419277535280401296875740347230979688349926496961319599341960929523318413768526934251323192776546659757461049115753598660850818617422776809377137205320592171156307709004092874202534173241687549530294989875036811344666235319250926572699510004020790695759518465153164476722915631494243679851918133573659762130439674118753258895538797247234827807916713490384559042913686744284683778728902302750051189825186700586392946537617514758068908138064866965570223092609202548995860265210916910332941942306100230092710116327600313386909705819852667872746559020979785614100897498643378977460121111667781071062023399244283762321053418811801798038990136757866481127476181488457103346835633812769934104046688653294026322764621797233696010263288675301165056712483908826722774988184599197865452879992248748484323579622157077168147387194239308894713692504707105125216824160801728962547477750389231179384869691495025721429691101336996643042529522203280793531645495264423978284329468768619810975672504438699922547407039940078617379871177456305434647777819166612366107468962960456464011027256470427217915933184507834699918636417322722810585840830979283374303617240267724518291146752627809334840496534617151467241797665478166483436346884322552068969707190364136277199566348923422988502275303120663166680419100816999352566561300659937263089658577588495294587123586175150548482788464655054702812468172714521091948314813677398821830459328680745964527425250752895771961349879851287641339925075675751396747959623514228303333135881476536766248658785053592421026470469456298081458727662696063445199048323685407740323546410805072335861187387633075413276216294464002375157683250521413903349995483691151549918307437939865778785026395964974505201398816563966896844096192456270347233820005356413490329340159686912997486531787137525583104132508950232532948186978348664311936794890259690123754948703358099483727290776422168975530072486977247274571373555639704835503937389871946992073827517054335434172227876563421726348406321909177159775560052909357451250814178271248807900362936938332911565480301801543595756123264143609601149140923341172292026933257574600698155543707931397744671545494986560462860018525525246114777401721150710796086434028984195775526262534063986162027163143786137223697142370319029978216478694587303405307748840501646073422583305737172506851819275622982309646543063923855440628957624880411054364778410606450174146585296457648121724200866641519143625988402899725688787556486349672542955122168575983953234188972759092393867863449303593771145838316434258469664447969138455105889497940231054998574007816484924809584526946721565133231164361088492570582230275165954416977260023679717554672575139313770552922102805007166326657570211763020035739773178117786326197359486556066136346492734691021177929339663952948833051298807206450489339105721704944065666762883905865607200115280246774128407734249359563784871688231989725025113510681754896147968002421163374196415361979806413547011878165149887522019871902327174102997740526843648897418036972936105961047299682181569679966135586359328631524260454445026587605196031841088375467281193823269029303944512105210696762810069586000512501675188832579922059159828971319632087252799354777314904313395508730334627736306429692608901824496384984943236854298627998098299609527957532303557085735816810175123960235096565751101555913863560619090086485209127987182962250635248380553141714488242315632727542503893346611149773672709840830246097348767394999640875238992782582033282713599346202154688028141343387711200823502039249971936846686540589867804276588313630930190165165636516417663266557691718817490661461143444329932455753741425684716603911377249571245006960820224450151833059038947240484218122340514956275855884922541398220643317253587638724411449574597400041484108589695202354828996165820666828408908859981670922988922371080728928028846064812869566871363741363299738395224912686528099166847795375977965510472027470750146574936460576550146230291228754161025131879363692410064539974430015097363262025415223643953137048073530911380123249428155246044001280106320555682364337431678969404381007025885093994867335755001033698573086342185523964013508728110149072814779134406775392265971657623725566421389056402096504685467894838665056881657561242514192004228249250545840071202006445133247047898180786471496618813706500027234814951871941473338300401046089676203236968037142890727308414750262189688390527243259684778352974993293285070592883543785377712957540583030102433677410237651539498351819538176976209246981709051582006962006364019563643850477807490135131821485096219617983727050153592621314758192626953073895781428312237178844982031518598985049275449756699442805462750052681661168964781183978960952044993743588967311251856278654950642572708727867504520616167074504537400565505137658289208902912674533881012943848889278701500828738734937696040983859123272301134904073864039940226868255641559246585445542620027886572969087793167475393582293115286327455908595920620607383038311738575262959782826536296859036879720189802583900475070530164981411895796540740428599676384222574536419081657634811837814127417793394300960004695688300244088040156019150790769754674267493486717570989474447728749117059005685653778925433269319593356064874517986663443553851615576872304253833515279256133560496546933914899298704548941556993936591702090208556519254023583735339254920303962386464780625614514337682956832089686316240587166922092402430740717640743151501528101053871297258599107196534895405989614257650377543279197039442913691784580414265667085082890851309704052129046078484024369374185978785625199470095925786071096963640742819001472196346072622683140235915045253735509640434849267051717343483152671999456747771058175850585605226120400895990486081511105076865915206947174495261356575951489170730420258340085253717185686833603997816232579946478971263018984046949788948573909086698115944833444706095285489079663920575437631508773431503380941656452676953584632120581081832630764346079319773314229402513342620022865237007226985696928031122418086144675275651127241743292151526607107859148438575018045377411233810055221193596436141092392000666999714073185076435506805807146289830746299636143899350670282415264020888113514723595157265242543524420556680666120433728678129707331788519559294399382265920742247636548206432434765606668996571949073192066955388579418061035793257665611496825168246829928047243328483714973683367771221696649717168878961561805122092053727708351942694936656084573788683135102823749132445184108360600479132382273702576186450355831945466962473479557688272770788585685848278052558380393332793322688680453171256856517279059171070257493805772811431661381098187708673149772616564277107628181580239355517545051775257097957747165358495753030732078805314902015315964653572359342977654310650921701665461157959453239019324637368812694301992659752869155489155746025344873917623855168008673305090884926412797657387830785552648881637633533770867938878412949269398154974358498907714070442397462742136509741227517336039104213284391627320139816392969258429812956393016669348357707596248490964686964499589478164988913329797493529232078652163315648068856484208146828434445583784817087913420342428798070778036064429049350956462186597537901764375298399530028362868198180353884652312021337638185544515305116930133335215570885776684737310054545153640116099167905857195913229403785083161162283281329436909915907444366051241628564530911099496572126974252574048865574236156289054120495446632469505916847375687569668211209721892218945153097892779893288673166048480516869687903510594373021487119766020841179321019317225340948237801608269009800042894383615118866040307219410540159644568180882299483737624357754505190386386750270789456790362126877769821213660723599301278099443809652718526253121054304783148086059467346381102037355299169380065867827130112992523691940394449209737473537082365095373387899699669320282031178447552201342603468378098838866068074113403177040155473419658323959706687645187695308542322506195980685247518469269079926219205602235507120408833872318758130734683993962737041113085388958946834256499942896844930551628762489927139823660721784914682278965239082095619765713413551719233185124449708175323518669705996545643094207553065969886675631296001432201534025230365346726463535404132437719932262127850720573756280546414824289722390341535502275995821161316217872025678523594170151224289862802707496374102707215234549554079951920569789796637939796961789318774333775010876204416252317624477254568029770247083926007659878036775100741523079961576324448489334774268331585935348856037549314973258304448515290274318306558312175027490852980605136593548489635127695089528313101608637548119758046439356026129895940954331078439138216428491802785068962314450575107833949501333969689241714362788348623097577089191057034755581990251799524610425742859755487958291206884737459250918321135756289763283941264758813291312964917963731701942431245467938725999587747910843620485821346479700076058531212602293790712347387490404201440949074576059112524141191907640567328962238404858874395462635088771859243283085862768058645826978483147234117576930289032525964759914150001228342292872734071841647251400788158475416214488787019388093268970444757407834201007296324454636466393406184043075740324414363979833561997541901660164763350776416674026617826416210171141849156492653843657533884724544981752474147848817205931986933582794629494563977268932346554824708842734500957427284381680895555136167372730110685378736369067752616980613145372662070528667830798888665574001912948582837893374870150468053866445341800908667723746738990407523486792446140142048439473921238222616483309876499519396022191230492404154688882896794699158125844741283594983321692460674203097956869393595029920577679999708513772371172641439911554669753630572750038092391229127311588510475631248303540311110502449151095639207515889324156568885751948423681312603614398791148559249426167423977235183761081570265466900973139936326389896598545301984715532486928104800700365221630144072093860402961375087307218347401957592003432443919109212712247732351512825326591511963601118193053253510535704826519890663490115326725299613042026165223441441770899337651883192899336983740886038154317968024313036773410956663423835774714508612020071722052377152481693114890195739576021602517885287378988032910066267942922503626342428063325194899332198057766385402786511406343288883344788937667534328748400955345669504004519683532038042601422568796471784289064062991429851888478302714274402266392567180381659993007116535510678280894108739603101828692760778146911250453618173400198142089743671172185476906649695298632339041008652291998678491373502269271509190553363692706516499443375539732532012434432177631000564468948617809896614910424169187716055226624158123953176537760404783600368484461157215586313687089234702112680926034699445409950599669633775162928222346210616439663213594104559864905799910925660455262944270792258914601912785883586082545445170269372751714044795976400651304367798494575424631597160497512584646038467128686448307476983086433090725830799866178416266223778419297162472113855106114903653197914345685879982624192004466213189601770457807378225246356535008855147556513147902148584478717975425195160086138009136844364735743482500256164217385065212302760113565519335408095964065987528003679252006182318412830525125493657376919617886358666979508228074754357735152408564403841312057836304265426659201528038763699477760695206327516257188411773024712602414877604327476961655750963728209184265464636103179954227028731905259998239923974389985823422303604886959895190682379617107741740630187484249798603112836211612198580208150749651798301091643663929205034181768521551569557629003922562125831336666861471098697271931835402990545805530472776325399959423739249663897462527327183971618291234524172415372987293820141329436490559715950105735673273393692833243479955446628822372118232683613820148579624444283328380201662722628401023041596364605758964842295577846021918661152901619272984846977713640086308020421852051245337678007175733190019044113469858171104113930123407049408527460374875481294911505990359456011802789193160801843570868667589557058753693563296681822010222892683430130736434974493660575868293197384497514825769582835612288997167599928094693570191319051025489831745548515668155369729037796852025112087364820768711150440862504588608775344227036899002759301906703948099102308608914524443701148314989323272477617324633034471942577905520752193063782147984909778604330235166610732734018495014588608567525354726253931008430669826605973403700789373232023063056006315188450980045978348933208259611429206138303229011534916751174697066777528787526759806149248250566481510106958839234887496718321576854197642780697513477184278282558034602738111227515363643563229524971623490248328681221175148429302740508546432070717476244085225986767484701737427774628867863027209979964031410721750672077330012953318139411867897485531727700238824000098978968222735937236236435861210664144803369883848299913164559194747958923164178128526745110243786256824744151341227434128758736039386491696026990775250437010462317636978583456993200096990548037395251827897943823193750973083845698908745779825693262936386251180623712531832392525811126048965125920744549510986236297639433363623888840107291990008479481313692905203373661448750963203009365682037473183849870030948577463396824972746015006371285387246114955809444747030893050357335995583775902530274623589569719905357436606976069298026169053161573226713781430698529907105834125985026444678045337586495201903713044069458766731203347038793594419743428522449570348148102782223693703781932145210878923422410328046451565481131608550374496038289150368666590875995295286967528455499190044433961291821628919884605900960220111657177558777526909606569075302007445920777199061363515524929988829437618287606825897019961552109228156218189025270393142743856472135366916939099954194337673710820621087727313310653313213630573249287229686746260477394400949907420093526522219583863995957610038687702318374411109785123424988510257583833382007968788732884751708445243692229889334393735273261594566692945773444023026410677173140993586039071400747460097895817590297504939610003083366395152019145054244046279787290624067958920691562570855146835431913234013506722210883914931968026596797485958228343617179492730329694792271453591294050423464786656471273351099563554814430668314544443090229381979559141252958528692095088082390624150198639670296269005520709119560464800987836732426368410518454509712782206776514117643159620823739442142050072955487378435135576911320727912990432077101828596307796399968927571200576235176147539463671845253432779307272853600277731561210226916095225533445822445733501815582945574951706330342224435919387724911520413267845188587625223399212303736058544290863540777729307156848393106912376511721203878521922579591030087351001451735733539671476350027067278084973227637271119808098485890672171988818139913120909956715344019864248750769784454445001023272821302000381023366707767452504536466347189774436217661427423778814804119642781407709144233662398617796050288882243459215205232389560462028240512850208731072485855293655313183513120379213384426388243995952779758990393068164765025303943537334489799486751867397968927962329258067572562943525370302581640309365184907600396949243563478814358435720591819830503677423156007767177058325662165244911581971314426847357676651608018501399875716146952060112215306781279665190120274894154170577089569200805535737208531840398812539017410452171779131297081445171526149959080057858258626877635018520298410112457141077608600849200329510292110442534483468710411392676655845913512898628393770848770914268880836009180730087758445043138092028987865522677857296189003264495178696014061380627178562579767971705021672510712101316890921151812505029148041978438626089058098267065796584661595028079445276545759280855578723864632669677015606078338657669701725650891585731981375953703929953545956071305767821524912975419389922825046356921029226314123301422594877547785436194351831400212995563684715217749024068737173642995991428272642237471911720050680442028184679819499100655454510448363317457982933411906138269426914290636533877422724212070554640672415151203192309686551161353442170903373710418105118921508216765196750944921609015487235196000290235531592481643370632240361857853052133556607173209695150773417377694391773467059111174347091564376429541936173554951796118929105857381322286496065655051530654339462769624599770015302309986176671478288835565166151276323802464145241669717668299538708367919214233604209406711652752990888339998741548889091785171313734089761692417116492392660544089454695374118499835688101554482555488316977100588473112097485494142826399922249206386138734029023096205891784416374451258298767189024193456569528238786667681591467389108231075569427124949939066142522401484965107005024968652271436492012164820492126598123550642957810259359750309111393350743418722211400774189772271928339739163416278455281547482988829968401574579177283671509918398894902381369842227924404409352225238817934855253508483984759703596302646935032397974088522423378069654569654787001613604521283214896430310179463196198755612365277219946322240423790312395819995233699632259352490866649543757968504803635958667454295097598130956090951789167332894096748094398633238707925663102986147762724900790685784757100479135872133559612792265069694874874249830356364308731906311465383574124604209785263101899812089317889606204317950608647334034163043846468256996438599212849848701306776063140964111170742976005917209839237953728918885409694702961288429355181634248762056107861821346295317653978829107461569743149228737025868365203029864175005713696927313735413922549969156896525839780556431642305198799542021980198618233600563862592153329848463708867495455777988215411117527669570092782997160527904977624555180180515667468733118558381781517311643593061466338783077665714454790094926191267788401360362715800390565846764271995131478429669275831655112336590799760814934845577992843920623667797649694606234132939464492356746826998413430998878874468140156758444043397397373797299583253088497166929369032044169947009411898751350630059584550893291556319773738725733166865163425371697680710307132712093476281839279951848185089937457547750051991236692155139336814904409996802547807678741015987282228625901695033380246560555251549297576069785917701400515932916587249556411182523038250805257275340153816118538089136062784685833945871585993612755567273995169130675803172572699654812367354018726410576062427219182123184309033344370974792634618998382406570264237456709899200605693225277477911640393724454360472850565377833431858585389333597990983927736966363203003686881279662008794443016919719023719156087652853530950607025254055411376322255129859470158953232848522252788573813221886309763343239930993164703477135093193314769080225919542038002723867513337295320809587371571364911289125649250337459729805366217162215628791886860057258497015953939370925028725904080387717681443146835327528828557923449079869037208669641124937557079351281439077581670571031552847418786079919407653276386312830829543592111577807194892804433469881502220484963688429864268119500795750210877243725293258374729965337032739911609006937001310519930362638946955236627161005024156531199157638189966544690421719435695976290137672430224792231942207074204537029149915286179857532604590331502997526266872351353692855101926742461362651908738205893432230386577950441641029951527417349515977263499967541618805752874864678020309043154855101545688664487456527629391172160156269477468554434330418947773266034493102295549821563455596658879191598237472247814642378546871568863832242001839160496706731030922831613307387440841378613880676607248077264366773891701153110162058852416661158896975444664154298538757722600445321051536852170237631997795174009953929542332120859986602941802143309356067526709230815473874646769280136655928189971067630441206556909953241316734967324649413766015096711500473077606680246938728908387341940583839632164680226364317131927355937148798010379150366594448203595201721470087803025911781390554426395624506271431846728884314753009776610388356096470486082771127538149591955142811984287436007301425008039094849137232535883610167043651919437412427174392929359426924960748146305197739169670958781854132620324847462701646841291163968726515467429278987941591649926366927792085975855888975362915260706410815285502515155584694498460681676097267144576682033306043314155127959010501247994022447866254384950641471393395009450905039426515194464695806690441242562413744913522726847995939844836189628524316512707403809884092815670219915181267074795767816909195545599219833427163466990938870369665881932852004041673960011682807006583741537893468488923585266958385269523331731599222207614099771895454183578727436465673367678779457919880485979704913024957530256650538507287840719659402504288604196122903169280323748543067808416559742413903447169940930484712871630243846410007124963469051011912419550809895831395377212305139007002812717394957991869534508734622962999705150272172636996812769976025952024839743903580865594067709781884100298143825701133231205051340153130226353888451911381418106008940561071641916387634469334936945900331426607751193303475681899260196567574729694300614934452539277012861749915923596462862389689345919240883869734179787796938666260882721948585344799731002243849453447388327006975880710874965131005296369938672075477972873413948587546491760618641691358639207532407125895723226047743915949472323649957035357927535814355210720904644265258794519550159593046450870107728651169824630448623863191989624219232032000176652880118766574512896238644579543070353453320525918465604374252602661864531353209964903613793782281651812329310310486255563847453720787410386194012280803110149917545967595065758324818245459481825232256804861593415849199546164057345364923227516743782499702220002459147989788433591163054126217160142510133916799069095336247515728936672172586158418738128365405275153945888207038423305888055922683960402887112278242955579183615845598832492190841178391761724053375521554085478717420205853592563130813105654212261817275782524726438618080721170535703893118981112243227367124303346197761899420058051931828089278907262135505817112246914782416939280580790132452302032878647695040742736585852354621716244518141079287882636155793776792593924066478413830134556334734936579860572873370381951722548212343087562280094533023779426596601524490119128264212452136229272797144550313155107080024938552820745934804252967337098669422035594106932416267230735830683446214329893313014117564271142218532037845908658503079187110880780124459091147554345293392360852645049482857451091887176534166801476621674202918413727671079191347398081438046968753147998046619896470610072795427796088803397645055139244212949577156878670700908986840994511608648461039177427871579876489191682437429679375940039376614728577222363042266477076998923452431685240426784402447404066822095212044663762808182782006261783399875322731761184180674269507551190819473494225288238888421203543874806443640466044099503466937456261515273921598497185776210145029614822845260237729533546692240210401639047752717648844006300708723417381222971050295474718638895565656022848004752739345964144341978145487171068224906805490486572663481455560328695736062220714276290424506706324523587051220493392727177268267762886243943385892475085017657112998755380236302514221164551964447657203278084985491662699073706105605262134266933336517045523405375099599819785171320570560833657796211179699571040697280460367818155529663096900813323437753423757439358906085629221519553242119627633877527290736442473022681977507690571055950232389643510956815302638883118621582626735153500486633377065273489016775131480944430158962359600984918988790316641094784368383671377676607324385441397642938912003581596287953374949320812491777712239604186347955470602883994508395253170396474341697579543269009190773144089918863031136923744187390362021866460878980453599467268793603021902967067812890768733181317018532678983607547771525581813307865511173720398635769977249492126443469525256478565279647976919766133591016951646132746419790709553066111637191722090774696267112038322272067501935182521774905988924724193109741721306317764795518652470039290154751291443368501702163999901512734187802772566923292783055727048691990669675815807991237525309844400807165686704039077564972800333052945009608342123033983691677045972826106916136950206878831670908846307504313171354902200795451192638947334608659079768457701617093319274456114758042816354681453704198867023732948190672052351171261828098330269919966944440176860762118108811468228123771409922464832084462396995692182187495563997407113336181652993198208096605426232528988266438280534078231907165639064433275034088391756881604612983099699270874688081467642721457547984784801505754498150834580927418324216582341303289662737431115783688884444000529219937677106507294126070112831443449852774833183033572918286528260428213852641153834956459555157511842173492900696099060000966810003805750557172727038723068575838712695510426060075839982005043163334082032671855109081038457031500723176160250389517230425691692742521660231307710976753203995733504916911826181315915501545110816095981799591415211107646204619137618809610287434685248073940286219875721584791229896704989289780498567660588450946995434732750838051476083074230209873442487816789672776406982704202887802547420249597553675832220221549126998937078610586575724293925054032516258757591873934596396936750830975657623216576745897448411569890055867400502800157085902712533763169205690644285544146253328462191688446684159124188408455181196011749269652414694345032383461189502580533083523142232183305748115121186753977687598280008479468069605898393046080265679124791744944758699163747915156848938404594896474372110848619187721706559501577260297190878068550087139630345533917444121987872911180671708366624013285078646805158734278528587401025212008626102729859754505142697810330820965120101758281785686818641995518807228054567515273664944972812594294686779975829456341027838042740011846886127933711278429226177275593151117249870932802539250938272694886133646591328738081563241573147938881762941826666598432746421956174621361615772142446848937327669681486547561118015321988714483094177157110860838649980773535798817727267517870360087645578258022418290533985405346197249049100949243295510724988588793138202644458978394748397694927254739475772129055462198063799065720042958233983018886664903204369827002020340589622697923251509888615456852277696522673905366366096848858213981502568511524289827608294666402897313268875019084532159479973223375283915798008239366770751596831155186881423328766304577352077600810510318534847684661886179528903000498898888844743733196334518697797955845851719380042042170357912066939160414493534501720687625545426487853868829426753250385428900830794062973882363404689592385903464070189509139692373077999011805337120105682954244123151562750777401978385769444472181647441638979512220196694423185079271535464188800662983675719896587014140984162066761621510400385223273363546027734632018566226269568850741838364615835293448225059596748948015427124142247693069145719225148252089895187414232470900128783704414275026939063911259594394628835944568147826558876995833210761390473478848017630959263696172146706406812483948704955176473069271282561904067885893401261756368176858585723352605878712772333472392367369464037024265669652177728639021770724604695183312506767010997571802624578467985060875130332107845401659160562143158391430415728426762346093459807707318072559958131971075173776277072656358009193446018029779254122476034330208945086553542750260520503045780811039019458301992827677648671408620672101621966424436926736042720022691670731998453605509625175181312559384487059644077607737571394473254052590247948302159498483643155034090837368036198481981816210026582729875412463926392700334062655314747476526407837754562925686003884151402523806193576267437304319893538108112054416713239005127338011280279801561549719650590527516042911185533178298554562510768376103300532518280082025998447053218070376925729677228174466450886262371440454615458011644809086443272991581919974214315348667893235509187621679676318510183938025352632342013502631954771121508715963333394928080329564268069025872597908202639006828470881107642319929308322262365552651053428937140453377807597611105898841264130709125676124746872486844349690914596358734511757171195471042578720273791654103848136514094447728902198504064565182426057169014830196437429570694033354831610227604392031074976782328896826339392210890051179072489374777392942280021953780272016200790468388853572406540530920139871907496164834747431339583321475084737428875559718695948995840658721583844528510386004365656097531084469550695761614856255888651252922804463646615182650497576828210035980425347642010750758362672301829820258116246182737106855202200946131605592926157067020924510542854829069028056947150545496489717122728238066173906021632061504773888635081558397079410931004037992579833433533528900247783879640065496341476191155405491048631906242551810994899155013925460508021788169072740707171142370164890627235982579025900279383765144711075575093814761747138271593927217243359026751225970909930849642250129220750807556618306825729095196767374210573294652373716421646282351959475288892873740094308970902510109394846154547004129896342699324473091082510545067952036322762183699887627218754326920560510485946802698242101972692331619131160043548123140177743204424056226791692201487570177095352829813669678026018702157059017093563457574576232820434792867425066488184534235571391209846844033357585846744867471909477930711056091498378387176990728508676216781347661352201757628246682573129231563346403845536402354874012259288410410271491634910824214304159418799350192453978155814184811583057323751927415980116485567723912031049442952124786217217371874082294755144139065057253964958309806285988674919834900241692618832794110834915217051700128933768624454478993877157364745100598536438258380741469252053788442705306485228549000955048813514424773122383124534207143894106505351155842366881759314347893689159563916728295101948964808236463994570226644980288215518000546991054584464637750815139340027327054959207650353373710162979910390904661178727467001122471926592518894044938898937428092393481655243018609935674198164893801734240000202626071419040655024934744911819924177547140711573367725716879673756117618435635749835016567704965117427485679697579578138406308434079294101666091081908835724764910041135085695092110902024191659948339015845802440853394779329526806278532803888693332382525696905677323969398458986409064581684937874511333987714431281875356402913913528121527555320149123441037674578342149360087694625325416863653515943503212772014279037371197526584263604464941027773196822370770612027535454697334398773818252173922851036035484236392138631064945317589225593634039140619416885072175438052201714185886964898062056097157412012934098376482052789699177673719641025520904958331101133427353258187725006937248036064898298833543845512604938942842189032747687544580642009930155223909355381765216381333927208888941403284133518563638367254841687766715151659877556048386424901935547891219298172570472610923686459841145964077589197026968581757137578280050797084660264768673612306951603895342817320401438337719731841231648504771254250511450369166540729336800678491687320138938129045797848984056338739404712428282206577356663043003803122693274767789732723136875129894418775476301556298670433118004386394103439045265098223348016527262619831440705900613532155991054315276197730735509028854458383819822643529401518730668714971177724369450645253930668855400775307548062561236222906215298879081716767607700041541712850460920283298744793873702201317911161211646121572081316143556609815293587161780879028398457089761091649668353158675431233517775776355899728728497048371528833348638242545327240515631411922641033305235342428733221824482289072593202490795823578161838476390405240758388062058998038068838695296882088371830004058653385426971351705436940670062192977348315661169452505999359408774554299980962081602031841221923632271567308754457762641682897643334691309543841951359861774600110123630072560787856950186870118996575948259343184558191888012923981614262639859478973317550793229656870024734860950811127507956892801273568997272445675382647091151054319448242145727469394621879985094256334823394668373843184086378552117975801502312852486534178893002867792787771712062021090068967789621414440233438840652904773912335934678837774205504830881775412296279508628468248706473144102159860157164117744449413143791001645417003344616758395032480260379148791273629360013987462364781558626559547011663934935849560552855046111518669733782379960673331017665154746492553470166995119656851745605883813328145173191326645915066895229779146803167861863623005489974036206884600078338567829665725995896800699364245384226054626511702400871754212463548935789492491856479445955281648175465617867850966602639150683152886575161240829897473306021362486703587597790049381772609435889283791187259716671357912334793558636961933620371309756409779751107754547420931260533169781701721362193740625933686149510105696975198956632192803029394877806999864392742574412444096542126683246811182629274944107971938875498456226331140196187774619170428857342903106176475097412176026898689376643688121263139610185966602346332724850662540495944403215146804715766395753869328426997861559214985698370275928887331200760785280570295761948843617401830254284459392712355265477893429518222380622524549877857635584132330598722524876058290195021792922373457563886312624304721050921467755825669044609634116452354185167633117626976015714660650582302323960024099559938598183224975054877933523362139026403012745160435152573005423661196263971957882175006708724401913841898976572375764927105927728667160804274878046238848237618599329664796672531163555485133464101508077837064882189944403029649194956408414436398256915598578060525969570443439783462030869328340166464795574943541716359121747109784477428522650828031995857230347419676660418796003458156676186947866364810745466015048983164340610171205344838377754267706342131673611229265625368721937008326403330768511885959248480774736354582106505431195725162951819311784925525706444180082048207594699318992745492715029525461233902928239408520881087254666731855267839717896130607529130487354560266942666032287704573244033921973374180035014377324694079870305107844627979237417196635009880574377049771338290794782923892519534760078624779005231788887745790801735728481449414706584963197553000759288547103151845037281117105319344328469249451523280340942554292877977050857415114651920377709678761574299809829783160989040760348961431658356025249607825625477860109523943614461334015598972654479316907979490546293914296398608033888648888217605148765444242060922051759661304821457762029439209120756524308799584005188565885724397215633871376409284528223380277115369921158480151034557789113300227709909806912470435274813242039076485249887730463878692087196508738037525713557966340015811860390791583070865744267461064527162944256350480513472092893283897804333240191389202184599085201877307534579568668166168487107650656699908505319415025528737268489912832050509249464827107618800964752747061089090921057072599244377414100446172816723830365574831073273268014613217117447737888998325941578848841993120044045235793649935204578322141555554137386835073491676891201916683425638952690613432566089941978434732343633654323135628912931567472377891563288518419786572615715161419738586064861556303409778311724244527895456571596964382531455228995052835844624999686555998568198853982632954385744861249356308479860301320245181132896566534249163725960328884633448184845403087118462624581175056523307181317911031571382214895272904995162417215578132604100038532699375173766333321192910001944662971356465279443740231509646412270664785088883498328980298780223926871011146821322157933334069462705178395470553150098036527765451732626657427417530990943013794115364949864520307609468348452822139874774974913797008206159530614379114321227449855048221803163773606515230047305977404234078241720295960441916330620949461144068534654507193611989538299766859898124383858694498646515524716485434479275487357902712768871972141914553812122034939016731769299563596291417348975655900011971648984075023366530564256759677636134367875289018171251259276995252669466157994835790806830297812682517293792891332239149309482457902085441958347474039899965958089617492582610592902345359017566201297990965893102723063963728768426325251096615639096696928984828094941323119427984498134893271731024627878170130026013691398254549987293381004974795921343078180808928786418966018604386209517520928558269179956787070643721965931542305796028931172341252166812929307728486417234717185888294592257603790598077062665603221297027769676288707008949462677650253688718025725820387437638032108042066397977481019474009753045356103650519332889101369928999167842039854579957183522027564936934095338017743955586421843130935982422276745886409885276175600250011710048360786276952940199227556804860299136762442110970477822664488196596781154503424675679444882749202234652290251531003136623902467716987229048186179755469983953786128739084910679243198166642934421823519395754798304637625497558761230978845536702607200281936520297151048329127730142265192126178600265157125349942682212971225767085543036030722260572434895314807610384789147356964697271690478679734922500907343681423880184252690252692265005434512849276536487913439176762458675714777011846626900316978936980150537735988295875230717971546418762232055844987008882111387777228199097615403036262884704962475932861725303507691726282242954051103809227591851231476854706061594318874640046786196439201353525920811521117175127509134790957748652633117484819653467857507208265222732567183946046808955760228597584759999753299126139570336609990617019868288581026889218622861393780902871829342808760826454628025519465052075884750495547031911566256299855518359825747808354765364190379317602770901050225539422209457379418445027610614573512644375193452600661951252066097930880887017150399955977076060067417925827869713579222454289979684536211676116948863563196042688252625560954076887699245694825560586150859601946825438383789050788558280856971058924135353268101570349480365593632162545354263591279099751690037172991900543006561567787104495895650725471281982236275875576759150685615880019979838541207251186481802592572571934872197817598661604991853444305788399326038933269970311666963732944419444132719620963618618142333170914255712588668098243384143278370046303106016184218938256103506496644467853660749923536929284671916013220557421002218156755284870464132147150460291000767209722195521670090934722715683731535375839459641765554259888602317094206590788092499146447366198850903980569522863467990890208324376387088297588848218387645126740134875585845146118290995172057782688295370960219502670986568453364397648941729590447578038119990928950808901915482331750068275639028480462923318152539857410796287438061060672883954089302190264403701765820381735193109875105629587255981205105231941872942995566863534786522779365705201385517321140076884406294327630168943794859038017967159418443004980987140728887862237884139797206070236077167559335591772900137747769809230874809406385650783231942135631585842959494719446872606886457618458946405213755206168737982671529146318237874985278462500556895841376506659370319132759607542405951055631307185381410604575007541780024000499943783290978328861934915314526267443151620968869099154014814908921795496006000120695067524584578945910077023899301785933943349548491677149096302344423508545507050182593708436053845801592888062032492622660232653412522073109889776306260911669337255685367104245583865951796791698140638695715801277966814179643425082075451009078115589080174506917016157034404799726634656532066077965458445462633219995212510429283488087527737832603929461458412366603111538026205137333965201681482705207740042591988391525423143587100960315975932026313692643787233520729202018499893669599982068540976060146806150888327242166686782249071889308461804741048917012344088346772133887080927542582708805386066114484663738990696178515687620778410872894941660751819997867337916778649189678535908469832824811557527806114216338702539741130552314346982216254985192255674572935010427577343998847957233258241737432252808527517296222700963839513120067018410048839126884118322681623010243557051769487142204676016225691460585960573065528386182643741456249941932861253966345354346341292551809291864154463917384223247282568988669047071887810340427983517571190785836938341371281409617926013935581123749052982799416724247235371103728476825468685403732318944625127350502668351614096723819689355032690852711579071565462520657899079187766558282055674115554568512221104341809581365364131503846202583691686971615556848618558979647697570197497980969874827162788072602804612022698510371601347353448885879309173856058006005172737972607471316900024362809882780892811008782219033941593988563298785457025932006541847394837327771980686778990339486302252976925183703594728704957448259432006184328806272084627510328800620946408220696497965269161519891247030325378443561261270111415672501602673984400241308744814016023481303213413589556554307332877431383907028281627738551745795478838485554057795727530752653302424637635506165529752422007096763324553201555825126884735952474837876767483496147580593972423307011131269974810104888882170359408070201113800173575337175718003070096689922839947666773889929525352607562048127851352052444574773465918367186189488366970801820127275764194590442301419111975940102995959772997106562089561155611431839651336649189526393133628635789882762090694935555532704843495063308375154890834060832473130963252808000543741200504699234333260358961479386532740485447145904857087745073324247150432643441205591760681288792940378787538880358609016234805248565582025593306887030994541052021534271646103403446840008657313560803654466002302846761919367870523142540221494079399289651876154744453098390350297094340376377530341765694748429794586990692531469400902443599918804478309487393428260340171182976921057328625796094159423673989408300060541129903615130608713463599626901596823034917111732600178990114290155230412408857239641622211548573735459684847199766869957365950233904302181977246633465185675899253960400037241972596302835653903442685669340042460048762243518306754619179622323021461450579183242547260863324877110268900050811297486926007670173570692334376415501977673119330486553522250621105493665754796454436325985487099956015820197636247904345009271328889195910373253987602797470082646915862317547717687527231850943932555234344039939086756669511311658339664374127955684114323125529216649209491994070647625113867209938927793292120140903452294180355270246512800378952399957451464151156937843668476285109485504463255457624215351435058861627693912454600665571996086298506186806223232550176087669514470282670675719712044700453231569993989225198250704971216971155279965278011336778891951254689428123075114917085930012603448633231457058806959461649031988763037275367908729787693349743099920523794890426043762667148684113603594806863565259255687927699854589095495793702904049209358321184898515383924688949126530172769515425905738800894262027134530313547038349229154565655714517216988657881966203093833489379280915048847056982645723190302440111976868475414284327499769933476143190220437822791309441506814799340191527244933130304094982105981814223873600309194038350370323786896399120713279598482816906120146646972945960562010386806988437432391385102905038126865438564221647500009265758372036924331192084194746754694145165111185367580092472096427117117322602228407592945563166610256173785640951910176650554303900089500095865605797065251257681076483997609458764481251864207505989244401979934196496302907468514660867844179597119539548729170277997611287735465669624701308810050632082013391006107022390932495230196361177737583024599963604981540248677854133052715076616173586113667728761329142298011317111350667877656046215935135795580696665581603305006977021279796548940274093385512061907842233853818247031302671569798531902508032212110412225645765901619176496978205326264737307838783666270624823064678879655267348868305863260059623731361697652414254593333937598847610125937911022904974295936187759432804225204432691111474152438124734032952389193676830786724140691162276043166728675205526567981238259389459519194403560650172153808451598803898516626822345872622637729636592891427867810902643388810510191929019806409114357143178274673904827878422770848866511130565235769884054971512151954496050273306844128632113281576362984910787700970322127490524666588036468204355969489304433860824407407729877391324585632708480646560294438054296871897360118789091300261267808581126112994895599900365570276717990537450078629368249063483106693702260720131295892726899115064641362257083187444394502741053504480439989654389400756560173935880904413507215738475889433569812204325138587853872009693495881648913848233945554533851453213495629962772388375169847332460832663392473790271014087519155255374935587914237127584389647017857316685288886999654830041249075671744161919167985211500717707641753085730553483558810329513708885376189996421466679641241158667362552227857619415909603328920565841590527274956638671493233791126522442392577584879240175081046760408878543309954491178510075066619092926290499293348231414479021848341388780504689680342064126271699378811538983741990438525998411079436871571917134464801320595824710319090664539555765762203808362611361548718997050630071356847122354703717475295152184483644372853358945023792133315891121707969432080981740969898531837685955817081380683298458432822133480952601203515138637135506355142019574963450763284850800640129874329977073234625516454213312837918199862747559234289256968128747840087623106594523913779499121529128970998394969315934098913962763171203863520678502131097481926380014149401869059459498138059764991978510731463654528335143882479315939970026863644642672148263005472555498951968614785212660273964470628848029464610083634488966883364667655177455470343302502732849934396980325446348383826963104603932226423572663121362483769486110571513334221740997031224087830922139790066640185222038486766436975821119789060211093715737776023264404815335493602619486852014458422930850149506628629278447790479620023202283560128101536798142440191130608372858079289401768372318369277805258272873631281911495772219448845019760049786965403966599418590565676075909518683906190483320763410485693674923137876447499334798925298324435850518840290784921037610588525370512145894672982281959655724773945853117677260409509066470113131564137424387547226432205868525064543364129084639611181407718223358585027484568213322937642307280237575170334274437466610900249512060900492602701857233491412917141464724011092252338504842993638123839978066403528570661036451155754850414458487123926864449237398899711468532000363553779763597448637366640073580577475847348815611441046007167438475258333213727422328572183272549869093251821028202872434110067706119040522326164068514401494224166558211211842190032883950506105742908003405051788751439083198654423917192680777142375530064569207770898775105074583804642472186820081912845876783506970549587585343785209876144712838054684623281998430925654192731356649555036180616064879590911907911923515565439178673821199850359107266819347753227181355727182261018895851240599050350129529315175932482911489076710796729411072171014746765059125506069541025936669166787163486281340184577947739642179770664579396709824720272925046214973542062857740005139796288011630906913322880275994277610296381357278343843296584137074548980928146951493128262610457680460012101066657862553273747610967523418440520228238811874445513011375036896178470153840182385738802491772032055463004702670154559923587938054640160364713903137372294501701232563203515503946650993831078782104128062711499511551208145761866742404624758634633842413134458128609884324414727816667558617989896301374166632172470731345548153457474386442764503414628013040221182627830667952658826837984935561242247975694246344106805897920013146012474699553015750315134683950169915805471401662793444364627134995347991951147140050339955492271820013158704799284018343118202272810463969045240426770236093544487631478934498043611241587002316394148630062166726256527572877949873171894298337815720208120127858488492969083448198539799532285586683575229650950266969514757522801495327654377446635184371138200976933381437538514898663498204950532893361145102933381113822129707022756690798741398994769784071434109254411325664595586200389899478069190115904598290257911391924684422049272713999202236896874307100934017782246682969078020652909972144052517416458941515056071498651503542629025019745816139287757663530094102109109373071842275967717614351356917143567573829069710620431775628676178832548356709621221801807539840297538064540787130256733784067759826884388256810896917513553821259630125112045678370462284942794232383363310245328338216101554761323219586184599392792302201011635385991077796934928457314033515050373659724143841145626142728063389251161463968870415557847400923499290935221444181902904934477363405876032301618097292252029465972574872428428013887113993155981737529820304446393841179747182412409286826852196628097008471240848965622875366634613344529317482283467866894984093154240978354706638314970730024903542823717756466557535776054134272911337033291646363632630752277637141598824692387914540228608085192505526216122903764499182128262156657088139971261084753557637432979216898323669595622291953427476892846592352297720787985978040615556517658980131394868354408805030622156567737888750564516197662239982401745296181626267527354052316589994013663981886158134106774223222839697964617741813354675960655753455372733047668075706381758661109579024872681711862251085488095472113847781406363680589091964262499623052249823232048393437629369290949106040394780094078638697284731521869146364921481645813907490831363276433118105112471515461049808278991549378712680116587789727251613596349664521715288710888584765624213104503573243373325158088556060760544201844477497566237347703725649646122267977939273750329499884930325375312985677191960978988797936027619442720832262779268866049416471513549608219954309186504041798819493361434569211719832458803204290412667445083073571219809629688524530618948332927268457153039603231602202785191325921556829286891229395413496300541518434755042298219299526611384207847281379807315545774545478012006771506483081456570402551479783021632269871499645637811958684730743986006699260592691557156525797498811767089943314670805939499082037420636532020519460101515558377293342166909289127394923492205340461270303278330262224630633023114343749087197557048595939078630915624559380844524465476940734202415491510832871253286652974872280443159659272753355948228864768261713454618906846821347926800724566468184681876304865138026657665019969976654415639394112177642152114685093385006059931909225822519822454584622571476504396571741844054983208341516559311961911000971832725959137537867923305990947877508917675118949482215982313102031804922059410699972754479262388027700117832338411577836093273416826050099114674352025987217274688445892656682764655904180977258740906562285539212971323278461833232013446831041375206212359432390739950208971242373995322504264595114708969553649080174456681642900672460471114272622537096809332417907186000704283444412800013549315116465157177770584312121220847709208379671754992509066710067609656074977367053626361298029274600215157963360589652346587007959987474796299395861093511322742285268303750707582781702670390440127383811663606247406272271650201028137763108445369861946469803069263762953530979652848030703788564938264467388078955275859020420588332262372178259860798515158755211118803117979599478046859011589399429347531912222072527478522210955404071364930697206767970660307583596025351458062666635600372442664193757070101707417550536296858387767982285132120451347807674012384149111889580020839483701602219822348387130121554679969692045475311195302561148606055027701052423796998375382608261125105195251066709739994906637575331686231132051622534522090183091373357098208695850563516439379654582858224771515166923249704557115921968356566429732498828010889502097524399666599792283614045466396189520673370119125134574877008365465561842243608419870979239736729818602166517120898598595467811231050233627449892780113700590765594099785169336714146252925964950610051623962040744860073042447725784362770373755893171339010249036792873252456128550327590380583975262194903547676205762142537193324009881666345539746462002593677965475119192344563826605265083876892789339446448274746798346993528061371165088793139986630021209752997518447128013564538647152817586255494272014549474764109060317630939922201886352603280572454699201656600535522317879760171948774702625805613839266983755732650092030417398758434234508694569654312287276031492618439136111478692461508201851928535453362436109174845610673420520539658265491131445468982523206321299848162955423437276720431405718552586662322325426425214278515211472079391625802410416252081459367370568543361257659742020800803588066437848797995893290858765565779230581384051296953060683926651226545050969277064910751275831429846200867961281467848549648679610238595954809878630761158106567328485958350314238245363402872727986263309781653161244285174774157143626010660210610731459388704824772998136026128543479382185283133541407023647852548758577579657696536504335636090612224652074779036037747440214374294804647495124527897486594684770845142001494792927063669980986968300063774735177120579757133536719171834419509174772341036200669649963947906043474035900469013405304995698313458612626956343555720775556673655839305673953573543847907230461646345241555337482864110749322807043661973506504398183209410992380021117216472283242456167503581838964217678482570174835800233877569702514991453796927447405022426748523506023773497068885770187931004795139638335060931270050621679688783558917796773360782519077591142096460378326651275828769408646500168987490086176960966567575851948658106259600156732307554462175904027042994623854727789175740241257465437539260317059493926106777168741471415028605631018253567330602725104548749604910622112710639594600194894568637449582656819626460233839751185220847027920277963483898807596585324938751118156612459696792381829836640289877238788625657702049398466392788291728007555098216636622626446397537066355723718082585294530678594919577847292299417511220533528869348172637087412757240357553165570704450076186025086768457749254982980946203857999517224968604844380768370807249910235571342191632313397718906837057382654941983431289085005435236627790048335015496976691701216985812366098089239735328052590504382067077888896100244455397372341299834756756413785496710368982828247799407174717671136404832853297123863824533297401922963404922127292053896356193082377560119607630193690607113555517301890945786255957564516085899253960354291177370489662385689051751583341004594027426901185577710380006486195116030523485089588168298342118222663435582282695970614947272171235078593072269562032464796594417807735821976683070113851786616719345520150623778355223048682933300225223320245350528819794003273485393284428107430797607586947698874813265987912017034806819767463309737376925274625278044595914940534292905223143872010864124801766950034965996304768278645954145048292407043149913605322480534640393584717758381228632976096813766062827956139557901154573080380163163636751406188535124641087012694413621246782534700340105645456990297097597478832123767470489710608278683952389924833725962845089097336198895474673990053660751710631082568829334038641229256475283652995579756888270762685758346570975429350776928393056192433111685497285433674117386829394521952036633472312113420917012457808801460110683503186621112087036728963092556404594609539067682795810677768712100325746063526836736614633433259243798067359788901611100909490405412403595745902961613972041235491351978087531866423423602077110341711975165313289362482498874621668141091787520115131080759157133328250018561243117047044646371422115952250501747681772517223971332420557053390180799627494130689181311888641251171049913267586587128960772674378792241252458561699308184983193238620894145367319722387457189045800322534077291979999747484456654338149772375280120209975932845134253648508171933218401902677135050759664278665772945350413014284313067737238453806947867337246139978956421972444759333923840092607173158152705160227888385570517650318616206386229396039780994691677598036017335220611675073365972309844935294831909581337834649462147391373826290230549890801326006990048795593506588766851496081853477200075419418502948632007947465783878895909828065321942769572314922012504289939472277516910311537350264413022278690530853804800062346339231743034854948811026295898238558209362536456482785585610595681575750531530637999018039088907437027242031674295117150715710091099988522373358760038101143508323400334441350763676922682344892003295590735807305938485472547814375731722286988793280774737970690233246322933530284979156304700862968591237703870203648795876211777779185470260126686248124137151544316432746811127933585737757030346482520712751874158320587564046185446022181851268690665246695262335134856889477187143930025723754569969147579823189595041156707624472139777097666508329684349079808349781750063702258972976972180557090316591677560749570985713485982142078943208749941574974181920283799031303783873381987560106055648381627724528429362877099834481630239814659926508203446409373857036743187966878713690953258848311351523139398790538421341518511672886977473502998748030354448234478148853598509524095911932426272199638688179479403760922680176054526002214740549573060690461855559287228279414642261479625485468089325574608540780426354338644128993229837348138707505507292239052346584099037338345643220360708992935834759027207597104811245268639388914304353599686908016038039401891443334165542956348496604718565645970848667121933385790156099466833661885770264013993374506096549351211269614625433488247384608409639266627133681663648048518017708915345803065071399638966721472368583149301811266223494478359056005031445389191050686096685359697914854881411067119370710485222972209218505993232717118573314128263710656212249850007733860986079658571845856294753510442705047832942525742435044484177146151176652292505462449575883268750090607862667243307943732124549031363114644992168897191145499235201557491138437435631850498633285380427414770077090626802122023220836155983715568875636280546466360406450966734411337251572643552481910991932557665149138977925922602472290517899231924016506406779942932400985307590059286341834114501564123006288794879237289461012793983858804331797114557367763391133764502344065592666693454769372358875278516922601833902005210517665694438301783366907017852499714915331099365348003730999427895610448884725678461654921146338977768014562816426478180399455159051614093494135425609057543132088192112172021377301611182044935372699947901747818385607774747368397641498792455818579232828127331760527751379913223804581766741874289648104998992807041235076536918418525674094533082388372208147576687801676976743483678748132609185705258603303877969108886880909203741928091465227554288691437199682523881526085144481698930159843695069957763284225004546577348693447843997187067645481954031350852492964545859509506352378977478025297608934227044666884257677115852526339409650566091405451591831548531314767964491463046542410420572897781413651957884837179959487739506380159835826339805089825743980119981528853580137655577287184288439736536550499869971605409607548315137297365199468281567806588879305527705302647908483665120356843879825554757493258675327994591308479919148734168994042457205760730001883517359200422032174269707435459712252117271095043887329943879361276823875429210007251280295156611537476223827436885530370579613942113916196195156358343621487074208463131803236911586786059841845056598077575470381007680132131724096638897770754264302285117392828104205195334966700966234417478187836213107733685018431468723794721183235295603112198631095195512455578458481726423365813594184530172081398202001479477308066230377677547222303971528385883449360582103901072934602296684765047127396002608226885656955985704797245227178069737866458344792420562133930252974861890863296472771450444087759969273182756296505974669688088912939425579932634538931344841946565493816481394614650655416227529817601587939540256208148790337848148513477792411251443640023518355870303170463518757671884192825484972500874557905588127699095322669001254133974898299775513842565442241506262363496720797230429135477326323441089126878667173541572143535253090541251584561236456767687011129112705453119019772103796986485058577665830807123429600667796151733020954536211983692262745312049798725624946260762389706310738175775316945990372669586765653878319307664289303577229577275616175244519841345849324908631788457119412240596627594583450267872265262545607757340750967505465826507191014123845545830143082128542594644434658057514472162365028058003632757470744181777204397039709549896001214163933206721931876464685540781397814719825447771627047544021572193984391885838907772395883198308019820576893928687597819264258121831777793783053614078286862585889507911079941462063261296722814798598146102349793387682530114297153722341671206608845546133158824846699911901721286507720289380104928238433785380029568596546540362639019289758841909489639902030986119392254792175056276097319177500850014683315761869501765739451578112899655233503300586389558508389864719021096870471350257111794633139448656105969433008817540729937597953412061420979218221588277187292830974873364840057102335799110607679552225126746019627903448186566031213491053983415721131270459890224928147095025135502672576888666247775317972512778073336941305383096991821429112415498257554178935761820175575482212741454208060464182518924163108992102930191558590788748671596903266213648185617815431876954061625383820978361517687274345153465580789768723598118329711113597087290920544126470376575742238540540421738732812981128569701148872978516388141240317121516850489618033651124623914841139341046200336336411576377840796118725735082764985834576711920084600117002948634957814928592553788169504146109943795064961740528356370388404735413864161871743596946077904035260513277239834446236211275410038690644414618161556604797660348705769853569281871021407463857248497405144372216860304991779600896086607532104798219236800023496321179613775077556053462678846518716911814670853139740549460600254166618518299600659052229021970099046657501414437325687621404933080668509131476306793821977821074358940850875753183665283799092138531636176427993024036759560370573397971968690048351164952202718379471572853532237575144988292135144248440963564153845235631440690665270273073967354532050616122498341126672556892612102455038816389688077721833523384286449903656325128143028351159153345072236241591307297229268208348097356965685449835778116991690485480356320989638363511336963967073969111372479665793035170575198648776732596732175509502778265517055592938908508581435157749040392835054225935267902316100270347872054446046475706509229322309884220978070796408394831457455352949717514443795015500693381849680383303180603922701456876858506092445391274587226938512684203320915182784971521682121140356514843729607459682102283121416833143790505174411893951441741030164988216843178886862264787220765475445237641364849537167568820423561261721195993434713944696450754756905137917847053000759204696152942068075916228294168288445484010954204229206812547362629408854474899124610957166410964734518218623413008091565677020485041284666954819889597005490544191441133565768090790297531213027805711088723865693827990262389518487548611749958406206341530482219668553192709638020058963211601021318928968093135571160877716242690965858690715872009895354840042911339857466102081739708032514498413674730386493974163266783895403625792006358302501907075347997395835071986865065913994728272870028675915666025636712564290389472532369505024152650862940342742793193672650514069439062088541752632322691192447353461144309189125351627847146209825926033376110784957068705219346121849527048227422307686115753778328290355804251658174703711292091552800774997523883678352589752805792293521470484353506000173763110590765639519275189014877473655802742802710920910271964779875004419525994432322693773537684205889289746090725948681847162423016531051343438194563749926526875196256234714944533264142970067524223086397258093645600678261880253019868173074331201599898942063439769231710019059362644529679128192859445486754557641696249730788454934417861764045472185942523607380513775339436180768540098942145096808964332950682939336259451178138909357340617198544178736488088434392438738062487789623875155086277226633083718274754817292656225660460697876644785152657015663178623195088291087895457160527412877485402456463020098062410203519443545593678703200843703522769018215608891870841538445916357906447667285713271729488636135254059342073615183780817083751350968426242441001073335168575251521594272472223101826576887834316727414370321039797894507101474263762331418482778421824637917761434987840375635196365478335154915167078598014673748066139234598783618770442727419689952009378361235065759564198767066905140280412280758185928486388561664302453221317914271685800676643254506706619337837315978247969417684167341952995742072358298502572247178783926749098951944714145773737722650546049480030679524107697419810564941042919286525324424849869973812177041684743941733383989212017846704499182386306826955866720404529474581849557429042487759063017377567964976651783273118701547785961886212091953762955165479746784674440117628515244962764328805096713476731301337510181193619046610127783259793797012149594952975830229223817785588601506173916668266852160514469709004206295852587914470157764046197956752495176485568247522115061034497613339754756478533827883729267341628810779250701505817292106994821081659241520913321564738396431817956400812476812295955890114050242145748602792409369671159174249256551696755658286445406084223640224142286583047770356802028168327423436296930494143561423199892591531861396077965452394334354364550273397832305993327354532303153063757212745021804186681204308986418671853593279118613177926821964163117743811004900669917337928202809280195648260421870385055529522149334701264632603184758529478639803590516658333101413341871693490783044219200979796338862698801117737610051805081195530173504994061818776678267618423086370222604769202773133457356383894802372682905188458766037941630430180819636480282194465539668182667072569368119549718591136806280716356339656615233135367720968708456869358562027340936629292316257818559862237441131169722038579288611961697642966589503177010310968249199377989168087555775405684344724267010371782393080073757670236113549237571834378805156614585436649970566324440487849973467879328443271647613514942109285765775119759654987122807768824776107551402557964235651067151124600551037812232291284477283375370458509474189910995809561746086054765392224087481388383861327702534215370038253765990545011622674835368738805989447895171682794863560471529251667843220947919519606349669501257766570907616287738779259765853782989641363317817192139914035295989916314057756064476220044935261119140703752855448029846759746326879702639491544542183146086686995939031464752207243884771231545866699624587341356446496676846842505326585968570499211330261462290706346053435945087686929276591742311863899580192533751177251800931516625214386776318594658589623521139515689159173075376564362470862940879575813882072685034751755633881907154519327338784386938589222470675527550670423606482591519527084442489069070184841606256722210590910513083616125680059906787702695084298125348065223565676255128136406216845778365477888347037287509595568059331416147251298771924739781312844347204142538422920881533437386245463344184481515484271126349483069305761006498764571543167894306375341124927790582503941047206948035507976364932817012717420387800577306283860544499784104286947567488939654527906933181585339120645930812968067088399205281105133617236016083152347060371385671023455919938691043242714106200439368305069559570141577226989442177514022772657108495597765981409429792921037771786099457395523708463460139654291825259716076697526224613688298039583097489259301251152155583936094366230796867050849932148369356863687451399925755390595046810679154917869232663710614243858123245932232862149146886196077256159741509368424212323421252648733963127829358954203307578056485038683892911607432345384303347727134393119744016340615075569552282739301647769927538811001115030437074671665322797281597019777718127728155340841953089638999947149222511499215868041950843936042226817475159677551785441975176971308763246126784579643889682625020853355101303323027625617720770995030410916598770143192814404629655675060570966998745104992960551460470874797491525243539735254899698991818029838266817413804208119610791984337401767619318113604375605807049126339997491644398941686872428633474147141380588017241507250676754623288803324144222211032940683918385931450986149685966264621246137264420739630799958488130334843790507502533860942082572402474488363668752394014767578065167122634240269636225480190783767016061072555985865668598547768485851925972406611873468411717829456588373337847013136179759911070187925734288327748940052373585663775215947689052091112979876095127222060631491235057307954392738509005829213387455529355886262778691055583305208316073026372747585510951241057703127925883989879789972188727705330709634377120437409140526306000116032656370751825575257381611398239294001033485687259476900496665814934439479737439081938576837671991811789701553472025610428829138596976118883928888382312791955996449635067840515714518681766246556063322814556498466463606150077964710492201283489680362084282149305602175290801987046442334661609038295678557262779498531835633300285953579837808845741623392627476569131630116349060877528490552578113641823805353010882468518612121800134373267664428585229365775066761023788312031709863971822389002133692142943176192188266553798280441404944178500485045641050193031399486187062160321048625523945092924376817065990596049106310499224349084914251923455909016924810389487166094742910443950795952572474449763667440749193213346072031307098729882268099940996847153000023285830432530163014762963541635395994451407795238284968238877239929051944959284296746400458715254244279540451178582841663651519880777619343263618023683453098165242279236750770604539397133427602392219524355486057132485637481647473629465453130594633663144437025484461683135922371855552918750235813866306595115380461931563179051869920063684905476171265310814043056061095789227669424012662788014879425784722349924243209548961354406075333196118450432233741005107052414172807792748634475370261018544903312988620455778155367431594670274413900687067505643180664445439628858106632233339692082223955967144801750599005998794756178846612251532398253361713364097723731983506872304696694417286264882539577555831919317267476328380817546470797951364344649832111244196046691718408432351504543281837238794142601503612174459112114999229973290950810408462220879236176278639408463933852217454820150481087326346093794459083663297835987815987095109608238797554111195819707018571191501259442029767855626621236711709941757117104680610465504881116929264004711589992266458900504022039359880499180197410089542429497993819864531486677637360344802680962497355261816104082758573547424818959050913769341695258415081792179378193541299673262573844375433769785124727964910761699737024950758415975104673625598719335815282974700332054784111815079955493420104623526233375666623346702900311677214203965749344267670337011963797567849521382054557515968513955846866271100354314628114158087693999955780896290408872589556273519077432128131615494273410243912162188685634640355229667155481446953642019755312590102211128358963232637530153280814723498910858969449597682482033086867579930525719626721649817799631523434745513734846891735193100157675598706561851273971396360490211144090409137452614784901448989571608878895059243998580867936211784485066068565921940351101613030769507104442263819802268541157027413319004666879472148875372539003723840548278670662022314049614962301336837868080835203369240507701158670624664584468909905723142799239313944013738311350880930613143855789195382804664801666762343909503569072848340661346055252328049114210706802194871678609168841941877258619603202584318484596142798160016242598948527288079583085518871282489659222355936827066176731020856000312613578019149325440555780502371984856378358569576226729346986532980355638745671996565866649732987652311460639324067981347024106458181350158959256939402775631051740006028502618996737864041065548870265899612555555433576463605238278533935730078547294113075034690946144378533808429563234344799130276528679918970919717163387660565914721776501630160657534558232068495799127279681708387150946907837638148901311608978036138239169245227264983334924041939766369503280780980432610750899270532942936555744008929493940534892260570616286425820321201291305293308533000966198016582312520174487063763860525066468484758429964903739703840031207972796216440257572155771687342174191638879829382100359187719708468070141482020428680227913131994037400277762228558654131577766424257144720326648472522660186744504446227931051472993473610385454110522982127087184320843562871244166096694971364299012843523239003386879806999606970791523518522399616227327597561279806343010422421770600033058736940219723111769947814503627726526923305054540631112211841085393309017038726442908899136447650924633120415916362062371500208293550531270933064363754191687210862068563586315186158070228275923097566280168344131109362516348817211016204110317566874243421538825601403609638532430626145314399389144022002919153733191599248636409280432401936438072441023104848580598472240829221298332450525419968376602803986534581203006114409763822555291949799819360056244444841578191505338302976404015443407763922171627438149493589547047591658511399425599233988502839489442852947368852691732181321042247096208815136596898568902195985561816388405988488159317780582019358496436786132364628821521776361640562133900833592500358472246949262783742393344863194248979806726851004504225753426728826525098590856152603410862093865884090530452429656891018949274464549323337584413852228198942228004988167566767021605957095942035672555468499760099790490746613281951399727944623309622320348542475068358195545163021553536215980539812760393934577043243940441945187641087061169981856545354441715139249684615044544964070032383577795905690099889120797626727825919526482726202256535660205589207495014754922064277923450471822221459302935514235417694025981037809388236807115249843239570980017084116351852566458288084005851609493494860061171143923121322762645169104707583937861495690426782573426766916554749360937843477672513093350134740416705557195333843039788609076724861580474953291486390490672172554554833927722722147761319486085282356286240062095397930565252237725231277997617130107254929795311811676151874235357082134552544566912776180702788114121580550352202113598386859495051605505255062726954334758722767633103831787753123347656146629860801364188942205645242235938359760715117633095997758120794669301774242287878755366121589614636265098228464489549819726873748542710374030996731458023776111998937314409348916219781906327623764741628621623087598718523894263257386146197901136584252821687719317553598582368876768082584051896358930420703924079617994433889172802102727263811733755325243204868900470993768247840922404805838545498259292122410402612374110018582905945997220356289560194094621377916932496888987108586564063271327690003596562336862467670110939367761272790064853376654467112064461746024821191543600410581100050579845170280296594704165783816689750398801531583762647735568319174671077441551037084344212851581593701895037695169309394578235742073620021511684161771524090911162831157428039701039994171536477770236124939088192889038700858076648632370215408893708241677187394985809955129810799854300667318791107995187461424348952297454477784286102668880119141280926406010785762391465572807611562530173961159710090038608119535904772350044455611266996277474166476744689265582919327564531103003988210212583341868428957952515943867998652394686220804513990251672179983875825153611843996699838257780936447914447236687931841968198516328355875344172587957049004193766272052057230575622198514121784507630092222868360808028936405940561587371352746646135375847790118844993638658569211939310405481625157679037908138245202124676114129938172254969235531662947084732162622895806288246952852215958740421119243380845994710425819143858761330102087103080604939843139774792664258090967746043018517569956209305170222969860750189215545080944922465244916644043466912715573639555095537763799174751178106662064659171318245313381409108020289323812281046575534251145303484022063974202216493636166190811407428727255660074809619729038392468777947463544483484171285164641026648494141730270020676234786233981946874807190633036594590138297594788690350877196797643771068634777628900680981904183237595718937540796704616623213347736107636387581910259790373681649231971883384409613231317259229835129054520041060649168010647583985343272044768964049096788339419896003487198410243879123618851300257378361404921936005430525091861400991955865910764487209469228400426925687937643842112869619094823570434792016094682145962056526592992495540714930875489726415386063129699974707584495662043424842593942814078903616827905206588547513364412978538185119297969531640755904212816875788338847590351667746450867899397356765410143901401183923658206451765432227984876611406312027906170523908194894199280621586525875374283537163467618227192723042472275872565791300665894444183594381605210879527000974598061139716828491066952206703199802913708523698409311312034796635181898771790036716110354418941185776343208391320228169473444785783257657820795575959499068810692321578178123029021325536432428976466381821014547572607180262077514583312010852481889528920454386220168679417955096016292873220648550369069401896053480163332333985580922610897350418348409465359630116584227192834432627101287323039444321106235935266956237379650169265628870895070197561289120956018041188340144865599772271565954627760956591589444157993446252159953051375180113505752649139725563957554276098900654246303618234401920199923181172832670863328720150716857027773432203407399147064003010850712479104973981987405352080970695103648799444660244922550209342665138131319161498439937569494028106950940752410054267624542584336716383975575005310145459271582521560204731310494095931086954681050005671854546215671449578722438819875473224487051187886606401494462514241992027094397664320289750885520579464424212908924270405871416354632171425994386283641003118173122263649926502380184921337889900821869090434693688905607061185913716180063847373474425662320182218685231913731272794593548298506793921184092883188765160952129286526137767041680418140330668716894344282495854710341902523603794929479346200958632468531687566311829481296470142975214594709012532749044948511061798377340831276491794817281326888436090840357655586220231559638822127928575007468657194406089567001057407839057525959117730838380617493492682382594995856054441641699791234968195777036552637503669244439163615316570332474663652554541743306681606714968474436384946131945642386134331323502136833979595839829132536923034663193350396235122862053490073035002703404593429788357512600176497552008875093299438007355447510547540458909033575383173967257135348235498235815411539794481471940065548199966037263729303897597029824254430738463654050502207653777563259773298362940870667295575505388332167728649822140244760013103126968433944267305155118126343260206001510404205439065964293273236460092060737586137221567444162575179017182642628770594884728176428025114244867380254477611527209013966534933029563663464314210767542779429336738958381413142042221031801606349890405205072973015007563206718946925976619838082656004742823565004383622473048497071449548810343466784955822392771764360397487382890709673772474897504695422040881078026382270408498603876866265263776215770137137316711858857679138568419850893184050904820425589327168250336647097490032173510419478792296471775309151096585043998612144604463211735593830283070009803299299224103793154660486169862871065257349761292920044054402233379358092200798510567155730092026725352475256613824708350162332345778659388174349965571061422428830728442772992118607480880838895545789867729111773015682412687076441024185090458636095938166176452840725956246384161373992956287962569854562220020585112468782276229377722758828457493372654963164072914904461138076355154445048834181153665734820024793618170029960185393267909127274783806049725770778927587729624794191861460428908968908758108935529206055354392090377907512700546518089530449610491335398415522974735986418706979239509349101246079297310464872208739373239357750123734057183312576643593859977039245001444703743056903733046604456246171219977605817433428479164315063836524303917318583636044129747732119020990997745665893105535884432958356712331475659920461862018008624625322916276676519226787172621878866847121789559771090034184489919708090378457281306636353675011198162395928855960723551494404670595956637465242644114703454006012136587410865499114966983397189047175860612008135056249360600904583010977438395578280324939932171624360259098141742330619817892445199311184501832045766721040164001842028602216528822085265375091373818791094181712448083189339887024234523404695386507690202537187267740017471508298814551976020971712791759236578385470636666925994340706432027956791541896969731863717749545710710067444783571978050438060475603249625155214497926415753689004845097493557675081450486562724174637804795801034340893200416679851742982686797833712786659092943313067343584117873063748419223889456170744510462646583920544839585721193551836463512631234224508401301026673573070622148348624454339879344411543442407365383421174850528941999746346250394110060233073097512353059344112511036187187876319418320858093374025943943515667968305374746042688980294107542446568231871136574467479858933828002584698975744685738877491841596226393551889666046489484220472740507935006457658927354379598909123480121678901728464124957522434606766140226215898466202131638380362425062254347399950802701887427909364852972014449192052055531868841386112938706624557712633659102720826141950363131138638107612743903100377284486531155967515292188915611322258382779930142038160301968738224210198763020405043083224381046008207128977207810237869953251274616850602896797516708247984937451981156900617396603613461968004214956786052228734419631332130659854081776494994377382778343839017078580251804205594388639880798796436357127661565760417058661629489767496500413372832094869869939520422348376440810059837222374995142128229264389781178731978815777989994254670284647720822963764545049734666269232095888730130167581003004735969830360121253138776025090733305746077642798646634628831888845042212556111022741015379646774207067647570334079114474206766849700342800949545536777085483865358240331111777077075255730057284698842037205752075390732009987227942079592455951504331476461005984735291249785411394051764702261213730815112797822087833512105925469396074447753407761439995629463389439004132772319958372002247146582779506944012452953232517898025505634981361777049528170350591816516483407091238029034904856822915708632769424749796741049824857958411069182143477606068528494761553843263253658493848884324508450588631169079760030229653975666190843677340834992488463552458512401558042505163384371434256121801659737913110647152884331045660709208126354048714502460007754607573388040883510101359626641025145076036216498829188471881553310357496311701919684346568369687130286463235111088565774429109100952994870134673400612468663948448839370790054321128172124830590543706439259881670424100768414433044864336913633550657338246761787219676456585035638888957890400670809530033698487958464495248611963586737466580607588634438305825805379927834803694620654721148663046869985621438335379818828270002809286540921254911558883834861360501838812067811135948697797115504503051821422333135910417329599358753251852242929883480354469525816142512710362355822124104535645192338223589642601259460863901844140432165840253716598724240106789782783559332642697491979718854433391833032575867899351614760917336080054079568933037189330556843741971395651215374234805187227676322606939551305229295916485243741245099512145078939536390142322339401624404190681556090291294490336297303255522705161933387342295407817263039022312034807170541434295284941536335991400078010182526228303268283081111454949054832500170747038304516474844483100489618396001437866154568391527961955610145937640809628871139738134725442481947094338333436725142203510579763616334627951872777323415412715558036025542441114431446711822448143318392782403256846878096295074603391835191297990181510928626033656034479708400058127051546845677719690073764984691187873570964815243098501519561165680479585703295668087962553915072663252004541482403606342396526764167601856881152279443366683151696960278540320445241604551275718866828548399585572042411842156534213677159689801440850190071486475085676120765659570879890162721712479285707431770898141474511051439528036118952454363177344462166757604174164404744827070768391289517845958830757562583618964922738673269628349543160521378140521603609027981654225053130485561029385546860195865265962983668267535588466457315041526597333298706275143878207548864858458677865723210822652228608247560447518362668342509653333028987680604160182513764952235254674772947931658271026856805745036356529499311597959273379170625905997616979079448220755343646237953239862153276047100480459366002992752040240220788543842455249165941101939523785488064294824542748895087141741609380761899197174615183709497795218133145275101887507051325157912141573385812629968137225038057100468435648523070660762153428206327917094894052006695412427154361503436045620309496362130984547660009368339852400945887574311352467909588984173878428832388570190110918551064088075094316808185813444396244651204111211331682963964122643361596788505185266652076296244280664391996847286995229731066599068000216723084391590942680485484611742858351175955838673612610432772176153680237590151890445410094526009952016852399240000867463069544289738975932143093454235880632138415835055783116637466392700997993870653278212808463962830518699948376128129637512349039306841763027367646345756821081389778949256543042033094351692413340308176305559862324134811650185360908301022108534957494558622811114793877324672456788404226893291326292470638726740401028010445672290246499112581531445046895656487360410062286871147105274324407707590378859636178342718779806116397340740256697995690015838844088682560830721898663152172348622253747011369531625489699089777490150838874095268740060599349536650909794293297043113074206070264060122766374971251394653835428522410833242483068055085011442418806941782234906813577151818556118478895405926123005035707169998748671341745130372254670003904479093138135421542547847022048410433203577197976062325485216542340850127476362323852927276870403714959503916194478635163200397850773509266957788334841004353552237144966900147308489660391540394527281014020975459578381645283347000393279847231099902048324871720808264066749613610887414957851359579164543062424528252006378095321628263496146948704112144023890096619266642538175911956805718562201462277051298971493758378118681497821702453530499536784657248034665856817232275049629385678555650804605070260206910233813250907575695542002867665546423758101220493608178906874764085509134299754074327641818766562742811617307614058663654545276910188850560179747948841294735111286000612287315304779399447159179688860133786990066438383073878250697075595628743755448734571881019499134934947756222006871948715314157663795841861659038538621037310395027562818627393571712545180985640098113473346346380035095284920522706151090903672483317096925933576619060811677668942961144335965620611463734064660486838582819240129925226835917790756997244005002701578490006395871556047691777128378230371247793870666518468131621107768762582573795805025739258076259876130098782322130050103489988078524065874698262422558535170363890679338637870518759997831458499637337684176165628691738882331851421533310350337044333504460763409100321137633742259012241137725019037518137750042575793333113545972075785082988170260359026226248797733277870647477830276810120449796014946907163315300763322890650516724295606380494289431121683848278526670846634032610587597779600547990250680159974728719353666270130254437134930600014775539793105450902138894500693416731367450907827822598999721855096016848976539054181480392662847153745634972996707447232713986912542928756444737898608539162217472896745717612536638430005136113352928649913486024956545963891235125778804123523375434391179513639142289887745326716955956573316380215839311020302421503799970771767437299795691870361981787869656650413763763403586004367352802708629502109876934533587730326720483050576023511339405560896616744915982919496603859026230397102804992875901761356235687462658986348932363756864936726090393738056306650122197100340961307723850346096384972698248898200687664745491826742029305224631955297988892469963332633972895507187570170224402391331038630904288823557221790534685114201823115820104167071049720126557537703014331306360536282092860642164531691878909877038545185022065092741762870927625739177622289067541411360404477630845197213096767991805690603775622703056847421089335705204424531581612862090018163282936852235919795560029007053080258446247981977253122035379333628501090050845715594634026697900009465152553526054644709932739086122917641932868698057945437436572939563447620655337132856358044389174878582296608430932901892759273856227134366496209118869816981879213755534949333912330622464939871068515585595659952762958325476469297072923229611929843234889566497640055839646507107788857971304956049361252885062102509000180744093247174925150342673474150937311449821207140951452525546126919566883761823022164917634764858408310371418894575604927164380287376747590396597861548698856559433470623468552006825911916059522314019482255765734800344711849965446525352934416256542780037758987122750618458916851258772049125341207408184226321254927552874413412667477808239810375731405768350431514361512372636793659896295206608103660103080589465008248970095091172795004424361842721963701485975245360126889961577791531724966410719997019623382194599322766963591047317858809433397991998746857312055752629304222807074898857233544692532657160568605351894964310745888350413075128989885839779980969978100910798256189206786375900453689624430326476665926751134709265755219511529149706406174610415415716498901598953944604038644705932612507677332571414605667734104977481751995557006756112516362540340955014923299791673920633114576218868944690897340419788651586222693784277092742535992765090391121429675827413132143328503917382064429266813579322240413529975646165365935645553167328337693933661831326350437426922169882847500393349687566299219596121977698789834727784391571024786976354238505100622653665188991418295720663316569260724251163391768264983243029877397675790133633123841476358250039613668658474254888573643396681568798347901055847188298410336085236269179767214192315298304620086173022264906290359421569114368467774883301106108767877097598157993450853788670370264636412184744745420051647369990242126152977225495095370864543513651106262011768762593584801372444838084775049261486119363290695946845153701384238122406246946341755743305441749635415157268857086570185097803557608790608481554132111415689129058723960625375189386037476051425677801116230233698843933412908130361843723721710700670754771132991446268967194569329201789441623477764845803170947816609052776111433569932675774122400224320468006715767384811288919003493518903223578089838414887510398314872341951062857952027631685318440877866222379001996622008173661603231823298564539872675137186486532643041981475924680522464718331304588128451980090800618714154662892524198464519189052591713076827335035208597476578293277428378162185829097641931349975333832190575770754628892338796376908523366879577043194861368226890810619929656865184797432131565753278926580125137275178820458645981800899546601297054847654480877412164048524417814861757461143578007303320326711433446213476773090020795739600540917832953616922360141523650603973925599623220981189821387588792721510451961097311083484049539956977895691071634467257462142004890639817761400158689432699177886981787140430902107407875439107197649532992181511941487921813424730462279157754752733934196344815082877705388497227001722751387567457592265693418114351208704650715472270276748301614971214625071626508810599604965452547936205206358146413476959120241017592230455442487145188249363181264043615544851881430392799329129509969142371564773259162886803554894162560542807066857952726508570489426464545667717221925197913979083886075532682140922525410112254500752542578722934032269726321214059652296459710621216867684864367106288164339943147769520877020716912002164027017739661195969677131616571404240754482930998670183218233361971314914955611109587971648039358233078869873770463064911358291949688377740820431152021364806237839608346852036098777538865521609568311410103876320558704379859950483096645766861684956551903142779461573137231940283034575859776094737816821568853562126449797553144577020440410411677177380709397477964348396940889098315194437982397743146900125551255814094688945063282380628808231378712662306756301214142004588336165566933942275265936803969470271468916162346716104716753874415861094665669167117953726200501451539763755370482137314774745371794525842250187484438095807594764900442475894663225519207775975644381619116676406955824490121492686421143556915647234855952343516538607681315027210820215839454042320993730138394813077733427845402212196464022382739086700500239065124284542987358354762613391502383490639303832002004409174088979214447328314986299381772413730441716906608302759202926231139860250977548432177629001539607500815139784140389298434314593857749252845946578780322332381158219760425658660524367901457548486052301827006735763927093853367917131557641230259109791308129650252839927522755336158031652163026194852350526874100402112324592671639831707094022493788209145114073005350654718440882678001118735812670015711175806563900570327276021870734298861791062277270753825500854307363090346868860951865841904404867738772686125000545060873879889099171800373437514880626575612577662394598980839036149138884552981591225090389454300932621526262753351279453962701764353671223129837781904523279096612474293679894345107548803545258412106796183937062016594672448342331857417044584426081109856630494312902181083134346200529932990886270533216979889909719373680913986837414186004306605481704834921826978911543823275726304234605668611513171079229341420306355368881503657273410786157777267908857807438791673542638869013407543944279410923399149930609999433194559295264892005115623345616500255851387809957363763739867085002255585910639110700717712157133926568977903159608104364694658608794476701320480175234354986058352337281181100977146404454008071916973588107364997293224352817216835218975336721176273700352122595788786329217044602679543398857639359536480234461989576851410108395462479120445321791915072890037303786801874027465109759621197068832623414463877912592973118785208349430780777135005985141054725076905427795787269210549898971799177827749348998652407089013203824581034235285129745412212202484867170381650297693231862056261996225380542790172102987220357006200681305364681760001983817878922397852950711191452187561256352659390272517901858021229874419480040886865264260531464233918858461081566664553690456716798595048325500138526609417155199247911149614483985082619811247393226494184465122167150803968930071808519011144612116938395348765696267391927059848776202336781981502862448584782514219047358896499200540761688498314582566064924439114502937988439700099228879362075386340245874406593420399247772899915865068201545990300505532034048395612251337681272517795075900935229976776153732106113409719715263699315272559140799311735593212266060237472103819058976437579910112745987385916544619575957972292057067638536276132103709695194678143570813106310522617802046367942558106880428824432683161320574098122524087320455554782651637609432849047756617764946242075927270920221138233517305796150862364380176352907414729296661306223421400656250318279432241705774061356204051227544015066982800781653562277248891046159558562255735870045910801283311131240454611323256848728092639485221833522049252428359640270558354175626984292454886951122641568099303241046812355212944117027147571654303510762895806962138013521349855958240250848075121271775856921193396077065342740540582054824084783003158765180991862030713631678143063973814247446471538392047004800128017556952679567591829099562599886289706535152032952050251049736385464008567252368524528073323409131582354192376949013506852054811560881467420260202227715016496336585706834974178363337413958644633278290484775493027671630651667743332992885936357990076823051342327608941321075543483349612459104676207705605883852635892543566898936933940482664855681189703889039603201223122513116720591426813417258449582478099465846137110063005258676457366763104385722739622177812877136515365883994016215180950270310268010401969383428730498065491617873452821739632805991679961596615132818454487006255650922623273339346299458627236341588354653918074166798029634766919666043239940209372349980597073918141167243824089163177103726822930203497032781772349653340218194922801820356993479470488992055406212165447800773072615996717400891839244803836590960759016380909100508316774496177894098106584589572768995930972807775863818076886931379043659488923297174215508744072910361514897928753587159732531769017987846655751765617279184923991429290932250844575678987356784508718225866376843630524241220987243479533415458114470445310391742331833793349936520533940811105048068398458180935286532672619316980417875345670511846918325410567769358414567632513831435891005823180065446155138525851886463504560802990001103887207883547689993437180384394842405087126020841619408042139086642408477528055626426032310414331833916087873830764599126879835840875418437070141084907869318176837211795520523237718174366683685462841407757058003214222534253190394848676901211602881871622070097700888749744282275735781027386273049890268670529041936021688992539172135052167668347227976593490264918201601299699609191879959904304381096071833464777008651469995021823873008949839888279913604616243048021583858620189693987294032123192723756039685246249752853990409909421618750188863888397745510924187561715812682024091874318796298677883003101479176782843534108250957440618091113554475263227243533242136346798935648668210105586841272029155954271288464080316025854163788410890097138067127545978256668538340147744058644131754481292626880910114511910911372246308973232724527656121385880862062499640315242754126705712302190544632132985519362334358767604304482798891223041763802318826766340714978419603036166203473861230898180466318997636136973235614389745243695787763073137965197044640386663725156925492063139455483169682332218573663983813951093561555557537139342451542705043047127086728818275319958133824322005272837140631294720012914133659829244275087515974880419198544046740268756236844369443819153391967792988159681450758431660736606257186499847398516120734918806740304379226506765273059979205203580653078267772747111074353934162884888108707716014609220165260101786315077110618094874802192391317157919049279551400602036302625233972978899834373240412908438167499004275790166014389976354694981060078051263306397350676267466651919124613037686528985802721118764462672216832590214732583269330026446358510881851839590760459164410081059880156763384950006154870697984482452619327155130219634483687791062692318682427838863290222132216549781163546153472308813531003765707260862720406192263626046182128896394520450316163912768415515928309168885812908260580072837853938843873147219248169186882080200599579086208196158225163950082378238348434819458735524786877703278880041923401389001966466062359902271709099416692187289909199785758380710752498865508460691573522732548574157814046224400081339085592920332929329770871039120929868584696234092953359978953043669187021193732069286832972636495918671425209510888383384085032667955276366575755403207908599287685049128975923522173639281521245984867149777234422392841517041988773169627646453712525527516857977441185666761854595687597633287512065360615387525568357215201432221028417088464079361645300568459769246090805375579393400878947186270452516866965888204769632503335530298232155086331574843132562345113016011698632054998827757635062941735891671074961909184280433688754259921512222320683386184428577780410467895875916537946635165302466248749840042419972132586513985143727813633097773197388971327848526364787727751775337846631972657824448566775671839994862825935308479985658496441650162821552295631546435478383454541991611268597799503152854573490630883693593005121217203183998308984860606557206389637330261626442039432113811470670901099206574459837516634121237972247103950380034102745053407389756425858767250158752738245222524487506979662683571174164614367509348527847173730742425136401481001449247966838862501184231841062194299815154182694266137970925021682560095864498431252737389030871779777148151016159503676479928429043565171947471016057013620067401259756246312277503761424865912140295672976620688903848198673641695889636289996408708828539894947061913446744135812971376226918852251224910294365213301144902736511056352028346146371283858825630016912691743940404056128379388209089545174354831746081307620414421736304272330864987833520047538788271004898750647637007707031251551957209623501604233947940489375000500262310234387933150691480149393952702850441474786941134371976463366712901960051869299888349960180457596878420559035778935638322451209095491397736180307436207577179158736962219416666921375265467146235813179857089791344062553017455027987286789934847353491840218375161678464354218200042043981836850906315670649445682203365734290573116351903056766015282750830377061359417967521196165652820480417714523669065091467260577266165751324221985910724740370741369798564645744250492609613500402906104193909058268376154641689285288827175470670299820361746104315944732678798179858865119536182339060079469428947500468128475025499352829128724723697552479038480522574328176884883032549948058541769812711875733816292902811684120887733653569614054240152687473069443802460753469799919743309560548336596681210710394886186844310115543675608117085552875684499477228624246735867625928577330579041276636190891923938412136049625741018924825630305434109311380883516277764947725392508974088239854411758564656901938077801991446876452883584080316906461126005811759479323809677783953514976962327593632394746290248416196012712112853678266261446158857878796997997735029754855164234712185269826366252558736914071194928219875553092155131626229037318078300305069916646949613401758868472589981870322814256525855533318821885493782044609102571523851629181335835786308201325287071030007998439170646840906611843471879594769651281705388358284719356531536616496442417299934837370853086244859576954632074782470243538850097489543562810166264317672211002108305289915574510644509118041078993154197660968312850460696685651517901446651967948451920642900504106496149211326702726410241903475426239812488224278545440303645346846819982372871812882526725012960471145629683169242299103486943155877225040561712640947830664623184315250330865071670473391406477969994838502124046980679690614235848426612623208876551050449868552443587052760709999533465429012860685180763306207499772103391628498310821208122126219332708637229854247976501232404329203280381541798725335159442199530713533631317900106016418058290366656085646011823015767579695669404711345492011002287055359610930742696353825332262079156348887843317654737486389703826934469101902470791313017870925080299089078569518522898069271164084708725305422814430925313212189679564170036439414987426006542531492856666923031610017775672326681589519464146660065204003746153792817690225139118313672579462915168563497465647853906007753059665756501871207458420840507415426273437039542405478523718450925683862165045512224564501224724832404506366159338945595714238503498940095588531745345323152947959792823355027391274172597268899440074534915304568069518633160044274863394488410536321853830533555072986473166873268947431124114032771741619409554925456211046585183489235586923470859058311751520816868485406038292531343241689536856983967858528947785373170994834594467318191707048183817304724851820694181075164590266867752094163805055232523965348086134346247998388165001704306862159528029157987124690218830378662754720037496559318275369921976300709419725885053681351570416614890533582571462916827057506614497962788225389286826447598345619068123568908420978704908431672709737120048795077449350779174747385528075874308000274746654993531063454558702334869056624793241318655459117439441478414458179976815286850040513841576577194047431372233461553017638922648497541022901584951802129601511831217233280658677386681454979241888012479486308991911907656934597861596437806251880011528270650418336951242334089795392137294719717230506124914931743660060068654067221724956897042109925785895349525684296164796332793595890760622924538613217298109876569116480237964926905786559021715220727045324249041023075588779525939310870503424472943499166128984560259349094493292467584238456579287783783218170256831306797059962705424412502815534723502507332746155702425641227004029107797756241111133764902500240007524121287301957872663735361747486530335763218924815473674173566849189505522233326126794653282861061483265047972417260370312072700937428791134857913165052652628276023470456746421421021946498169321991633898205539318300697494402133566954051893466817214899811923725832441576202882657480391050103040423602364913781132693496580463390543320774469816833775233172680784438062634309402767625672303265182604709473869905363494798168538004229910935165267772947273417455656187728967975291642169394728136313350126546612815757952628716309549229204946298802493157228328611678485785867212771071585905055651571274714421593722479599593185801401899806296077636028137391686666838551589742425027208212203447848736075909534883500517837718943812518093164691468051684463916935394670529597138693433684936690025084753439010279772050357662053052718621551066506015245475593572593921534481774191843606323556063418699994940633999152838450079760874820538723013265748009890197223676782516441284592354087208910530174251406769356684426476366735246832043275306460491807246842573042603084853205945246548220902363339356246548136381286912348611179979791811215496238769484492478048922571239377165779260237741031001176488960532876606309452970016554176277912131011793746636055409088423386483220429753945866477237778364856642981240427427556211934669989778568810924976588629179908334183302692882482281171885465592745310865084603437304003251094461938424795668020879462594948036968625148214952410863120697592684132945567754512263264023779065357352364715371664701104419226486217111616152239770969786433518012535595426147989986040818054746168860626540576346148830424393128868673944260513171920254423780135256726335457462511282459951664127315493849059661691419197713126159099740524011057812898793908147912948902937745527291671614550501980094537976924896323832065903282444333858857576969937255470106712250351792111817351303943031502537016310229269715182087251166337114847476413573181904112125416705120340908332061343589658599372852149468741099874247396285573400377764309490335955310370700774518884511422116839553940904478339830662238302973922513429577360717761889922273154220569077223339999638868471775344579632033004985989907850651399472431429996712435192103440605504581334388965583167475146524730859124694180758227828107297903036489748330592751905906954397276841510511516845381941728869740145754570236811373494596716352385757694813181782997437716381190530692946356083927172556606240776154226466496357915887744504715863597155548483105596935133959294864689795265172859532104931108617905268204769822076908448154880625081117054086739962662673304198676172760869333102184906852739895413204222535535089010047972231826125247815297018616971878569280021169235407371461045708664725771775164574968838031710393237744245858878575916586499960059988746394401031600208878193521550979579637361997194596306319057049656201383842700423397034587242584769020745716944085639873721040030111831764944809721921847364589666509344492385207849318961262698906853285066245733882371911651523208143379682825225319223133632689996385719218211640871573127995682734169284209173555640071578090734774588290162367052457128847439174472120424033455001042386836536370709553006899525322213907700398835138264968738291675569275146945979396997899778590108592764445013644606512065812912365389151115996601534536251409933214226034477175278395750644407174891976046901157696232390104173464757668163556369340866762376176425291651426308176898704514769605952303040173411937284715447808728425738033660398711141040463322878516930732030468005898898660369074193179117132865015012031233192759288222749049552272867582865998575773073738130102441848828589853685540169007855607229617930094715833440574061469843660493518755536637960928499124824126051211836340958912608932941089545019982863887995019386357343174139729085819632468752480997376535645039213239532495599308798049233088709676564075278626065222460693503755781280842484701918301306751731541000184446869443752769496917420207057105508763537207383381780610634527757882267889214267977802104779691299078209753495726541318941461412185073345765787847889530869249208352313673991551417063553407850394995169003004116148696832220836968534377910069240344601644536308186746446890737829940512203198460643152797913487210171458074765282793849591119397035906004611212462496326290521569423622654346040841764289095943398037392137258802959232376276305382624030638887844746385503860300965887337758563564289893887817847498778924860943929995368855878398106480501991667473810742889946638309573517534857039466276476751749819909663880680923502953507481532864210312797037450125226477964166920443191454977252282026601241867257272130393085013194725400221077180296848849165314519702711825487073476001087347718053807824415489056807747751042811072617282001047599367618211577117009390064581028235496389705540266627462229653595015564783620293208560618861394636014961981516974077985414736715109948695457744090124047148676593024723299390714950527528612234288914680705658918432619526948381048945441492145838080566006555694416563856429659685032803857479376763824340207788003327700473724724345789978196450561448885036572457314961076031484269635478319070059130015519274781355454305112152480664080999153265968708330907447404196566601514565900884077689610243613062778590385076612704083160490897652387727408866774769128006829049445362001545546509523534950312640848622399211494950532424183023223419235251289401343905514990474071509044314972315680257279438554339704472920444025842386681149893887866075988560305124808688776053430024121546613280815211520102378883593290681168146705981800040582694352959683470045475413292957537682574974525538781749064293308058226065824713793014075640433777031519957017149112450737513576320978530784857712699641311624733257681885299534007160362511734302509158014349038367341191400404765141025164097983510350288816700738291519307851962125908749140056240259712006301723926284661046236370807483101385710296350052738279820290219855014635022280924440809886539010560614070229607032718062351910666057475657029571602845120693041012058771906619618065069338727494401475423334245896428578544725567495410871816780707506768192525303741672070747634411868071104404068455835767516875656071011417758154130541843937132585721326372801391210903504528232883439721215717248274786257146710103291592097922047038742845935091117495342608852018281980752378463396920359007608967582164484890473525119200222058756247260409652266001558680789138029063981575116223242585741070440660009496915429071091874282490155537007075221095940563726889462398296486173400173560616515684248416569576974496843545100375112547034524220543839490624536611430977108534169702447733598369086212414520637631196194826208738670221918094800117864204203515136203207146401487426240644080867700432098525699488460456628195824122575722652991837946632557153099925909855127587654231359730902665525903476031565266394694828641962030323644487251636855664937616458369157661596914533513351561630916515004094357255727466304135845177394129857301042791864774114031341958595577107092948035773355873816302320803880099696294195630976937367049949283514397559943348280203334613407624054929226624552431746538434023776515371482872121554889007192051070382676876331286865002280113143982080882056335339626348158024676711115719231884144989919534514777756963818976748227278519694950776948028839562289513996897310193521829993654850110172178065635578309476971237417164836146835054649405742942162145850450286842198082169668768474182455106552845713186407739857544447262432313789698835541994147537602848811989790295946456672578857958209602952511276342954079478140561131074435362768543300507300819186285346965137355719365814152932362257198570203541570846526733585879371726421271517230514475998041831062205312454258023293192611011600246731841504967539607734949563655545981704459090325793820200609569931611799764530317253145931364040193342051605068665557487403633387855442332697202933928897948778963913563969194496242891746509524486833838615179510712664133690619020901458115871285891673814965188076208228372793597303711773245000493961874811473403163992042407483391502995713730107575465202480696979296616838164982042524871224089008443728008097025252959561212010470613443947477470884178948846481436082963619453145634646969721912103021552285125599282785609116489432475879545292920135103467787368243969606396661530951802621708853016601265704509249919076474975701335996078387921700099666924237453639762140599389820302340410040387915817547505216813636117382019836553054277492733609352140773063244429442023152110347052692985569077911129223821864247905976328087635672388004692856458590034083939250719918929157124967180031694277382543446927286363374996421568796834769618982868198591389883484587328963917207409327161327557117444567969899448637682065316344878459868041441698745656734188565485497916143223750164839740702822564000434652628192578948545840153852809256330794032446876813664664256216816001455469165577311949391792957631916643909212728195362146270168437264432940936477422348960994814219601638193463107855928099965114456408716296271046365262246941239007110588897544253164369773476243331433897473634583331177656756724135461159656211112070817452824257928964711571662981824970133461578782832433377201707246148261517251101582933479855331894689696158563672198620995389899189591405668493403675468120459177319918725093807384055738166519396236561119210012621777352561962130055876570076519697521717710400787209982542688517925077414862580560760789261903333533267610292782483637615769129508643662047091955574430251751224165728317543014131725833737430628127101428986103616028974043542234194911667479718844025835297159268466362415607469879623839898594610987252547420653853840976234071469973375843893288477396750094933921122329544749394205563944388926574844614202961922987238194992304376064509781095431694664936322075313040778603522732813171023214185980707573867926096111727818503594490792834168912923893863709301901079739200015368389865151992533327220798578731850007983316408140185783614101476738929412534316518376233141540055983199295294045213555780223121495325120586430940333730008974392847845522023725658677121865471390887734823440698297090656173039506762540256877442415044061174405620989141805452843424899611123724603577142700737715651499805944667985386562472575663558339052593756381373698283497928000571739232590343484821038507250449569899100203313751506293161513815121855723799085888080624528312330290446964105076267538360685152562650768351761526804099852686737080850801224141200850945756171335156675526612145291671156537535254139208506804234850645098195366256936024566999624439910002513357445544796217311447743109713550936381658000448115524011480427361408544914048249055830983284334475076828727612984734679015450601243235604400636345256886493632720773291844282410464463779857624788484817495377574476233799512048242411611319660654045479210813363467351749839711838512014175015379952046797085086939607581324005142734516562404387577543010721275371331281718844434264242708667503146865858566745584360855043361384376553398183927537189912222052876181695813711798309789349799818414062512466898810900663343989937942626106198543564935140045780657240224000002313372543169847764565916607046996601783877290171157640354948484795183561233594883657071824730773480152393209225168902957924282572619544825840785787234015265942109370520723224496232025831317954526229894459407502024075789496375948289088561795542640661969808045326971059324117782683146123475057596818007556205832401580748457803258137623891800624163720602405059625656073858282655495752239214653999277556918413173496997972732001922784961161171100879317622702677463850722503940926785996068354746415614712919918855364587076165055354609608106667677355757592477252383339423898554798567683367113100273757677982765601309764147530241611856778811321333072342569647963565969049677074779005015958348868540739398737657463353494840013670029697901754904755579685378700195960984548629535004440820491285475887348100200425539088730504244793779743614851986462444419181206393226856576439582615547908838225639474578767932312780474309500462406016084528133478819977281932424910988839762628133395454626267170667991805150053734106925181277356853094268477240346783989098463624633263256497144431105092587318342947980600111269685613310919704438723395122188670127482658498400739829165265654039509045031812381196995804779872135546128736606812592943656251305503241752103850847669478612123762534433672151276867900930783941789466015574726406667913286520120044277986924044944536175220902286232874886810036505910546975172048529663637690516908013923937856564749836970760247878081209749854632879370775672851294819738011792483687357260218211467092738360854254115846188394099402935257849785177787940651394297150913892395053913737687622591183963311819193928386981171446128073401917121742997080862621478330332151378531740390436074306707001436598703243659373797980401779654915090427951674420290602510819634372526392007011761410103423738485071442066850404005630730479577573499674909245742523507865660722560745365574343884366238597609348175250889625034157077581667957707910523432938318392384531946231238593901110481565431236928053230484966630435923226505797942289223223870589436119569240798158460538263827068910753257973574089167245456073135968592873805778288371194593538730157476731945432455581808137326756881970966414254162823474962526648511866279023858071236045427314730493107970544834529061511413778261766685541725043003822794897723586703573333947539345898860627260062632908770942235839124608742535104713109528096972516066554767332917906811004694010597205529219882692028619156602670844550763563665983046374349748252013485013051272397536998851925618509372022125964663357613261997861769133117353907108128042029247581594381391946109979598622405581306442478220324447707586305552998001942730320054375533210518366738433243052709880899721022733382815586150384084673598286872412362721256531094546997425497738474668976129424436409756901520381853709135917497294238430701430819358284448409567893054321075804427815905867538894281997819319886816108917396669516561119873529607350735493695977833038639412986974135716006562063534181296711679537007674746601246369002119951951048954690032890111582388193482137475349183215940999387807643801322907951687261906083937207456649819670445293715595158244753247077791399198275804415385138856260103834905683047045897848538959349313172968197087617042176092521649454609294827965326397860315840378943673738662093756132687192335893950057395775128891156330583333152999445098821025190908423634249504545592062078036689578757074715586759330565572111299641877105628866019494848671046934728179494703983025735152429823829525317771559191058354925050638245340094600506932171644303839879395035153730871634907039992765421334243934114909450564686616566001788649594303741529652595424007828569910263160415165855841898617143702432510097228936024309324099935932891216321475178713681543477458927641182518192184351188848574858176711029889563281809026309153136128508775224026003105908146352785121769224326662069094486346360870659271561758642495353399122603521428905183305875080412274027303986106449117833051252562188862892396172149454834338438578129914673905222545048370475443884571703480584567728497589098483875562586210982130756272988697502607812762742297736723438217504364436228019311805313790877373073599367938175905450875435276080294818781729218996047503355332845024639099783302422447455366570343964696418802299252246410340495188858993189044818679196221879719353015700021214272367769521570212132434965839561895162735040344140768154591929436359575357039472053410358976732141929311170351874403737090496442760631965629166844750358443972719120787536093229403455187415358632140715743778141945576838450298323897589660769995792563009463639302343125954338191096459826835162577773546789238160491078553308646871046819199184365802869861881976356009899765769961658468562661160790257198956689421730776185063631602579842488330356523695577987649853554446070088146314187047987140792718244891320499932757396809432580590681021219380030039044568850505145843580980048451658448606870533146060129602051119850045878476914699158740769862836030205139115537159152674185519037225435692667915706535404002267183650208880765958951628824422716950610394558403326941344628200659043479792291835149126190335586388347937085326222660932499945053360505769888002569471315791733156914489991112644045992122941672694241886262761360997610775601177661549325436563761839061437216689103511602891119918751149644008037688069615197276222911596760467569879096682208440576594491012843512400618422528539651506991243961573050404371158192985701262819611375922679324602891809420849666095949839358762359438451614242545723825058086403689587076742920035964242309819451527421187531340120628559607314759300157197720837647102583053390659088137191998525027117129675934885163662371575960973067545044035711360379588750721027052977709496984993992845749151834716271888311372766686530219211526482258358692998865934315777801660147509121716387061730802077078146957216477259083487143905539307948748589219644677361074956729576789181854105848527986847118345190286562212541754851155249949749142088076659946045047228822148995070709814053223737023562330905004553055642807786050237440121842503784180251950131120452122870916929403989192971275827961949440612082966691949637489235358740682919580862092256480889914503861323731815835459172273565136809658244370470584693596561142623144376520377502394177906157203520896815619254566280066409922850883217489853427232326012873530910336259282186651551059343645006789828999736955845214267800751857274416581350217331444416016132932498140953918234832538961762724272533232475990404214810462169850622044674594418952339212391579291655616015694982826742848970168799883751883318868421708774404752620884258329150520427897216951387782192627389626066758493856308014829596705661608390236057764424500027459590245562403058834565301862795634089415354542707146885533276239518195039841723231649742307112210188159286553919147420248542779122041001050205330482766350703836862829491186821678578052530621562437793105482684828391388604888863102376086578607965653789303032150947236312893946817335478157336972380139076881663896492600802743759166615666335576159667160382354651596877322659837193095129816738401191095138821883373343475102884000022501838426271089065769142461655974500982456119605001660846207178612330701580348000528499289437292530606906428386897665245314682849191952229360677820050744095247807129921115122765518844595486433785730097855772821368426271919198614397983821884028845432213659221310929882977758885223622337473504499925671977714167195681255273139284904816076016479569154301667493999593645809562947748487403280397746637603091469421579401324577977627101514203670206173700414604834517721782248403026214594554423173216874356148685386504071072072629406611614580583817842248239454317206842704129041446935346418118126874767590015226714995119651057208204264431508187137760767044385283905925837060274265148264746818480529040983968702158879882103078434808224198969486341529677384663016053791541978880487673664486170958248780728638104592136140432997588972003713207682822825595734589626488999398543059359076592099403755029846354983425975300461884031036346697768442458479700079359056828155405895508904024477605099004628305772384416485087106903690043344394404268587948469795288668116176583495265432930984752647599505627629464227842550143945310686184221733084664753989719851142980346375274977066076315948414431389000192361337789324330588774130108660742797126754318309088442242266111857627142402646552683042478445114440977932658190790218565159823496233301782428794702026853892690556325254438016037819760109690480125310730041268323097263987570031035274954898567170080475541577385000712470814888682021557487377051683499382314507147813859788887164914941010651316655412940501013591732996985782590315437862837942678124065386383725539860682677637209696604283733256560999206715016663158361531089302114175517521990354701627885606929185891855853344807470227135263375070691839648625892743530472808975460936363391796535261584043300413295424871378879102156037559291119210798880585321921971851412140028360408985280737602740374916932828222203336274349793660602221186736471280471705962462057824701908586070213437229027089726976568802547418416579271956151093646044316232294145712545271139598188720315276172287460254250611130555539849603974884561949001343949507885902297296225060836347824905241817681466919329930546316186677256554729827410110877570480718404279892286048933617959340337440880020153065823778416918975430577568384414230755132381216218093403899217770911369706642622258567969362614399372017446972780626350702921255747602162409356002059022528965199784576295697883971140672690481785484563475826617036506223852314320645814111574814137881226322480285038169457569260236127876311424989579886873382535743944771115013959570396815304389217172122152963284854776475245238045928473198343840236795894843163624456839757276218585912404016090189054452077349417993868183244821408122296416717747723316811930867729436513716745430651404297002434189763102212599499126224528309745686531334828740395226695558682043755845500522527363332582996861919239158256741849464789717852402700203128743602366643001907153084702193432312585709221642236902988324348030272874552510752080191845897203347110837597160309397842302871666992127189127670057475875020125972938930026902484993476721903290208363453934921195301722568787076679078527914953408285292522979345701505449097094780788930475802871829931438136087218594784604732985847659040908312203607612621053970421763000634404052553788251435175311144928536970069891396649363832892102373881393816508222889007662285001032058481383310897174808008008625511471726996577238273840300292155103456095199260873383955301222861830618475457402442998026621705292813156989136212540422863799283249128704761321188132895319585991201793762372626841052556031491895460481302351517917816925839033075881444727393666481935914824201254131197446771926327201474221271610176256524470204781375374280625757628469877400210737021312384342164724624103793947708293648778341286800299335811700767651181216655876847845721209882493642916005596948480367684299737110922101693600256204934274237384642734456867238977260319726412166081916995990902518281606410296684823875109604269321939758082601433599227057353367267108237415043570321634828281967649060905230506844336621271303354325934773245095140352821876460575013298135772605466420169477682414179784067452872658548472181343597475211458612449716891169424844601566017544414310009261000175968976227221503907152231625645177885214855685762595515633730278410821688428127576586434020839812603735590984089972341894511415483042734449541568307337175543214737055447517874514905403203983789353826176176257039809975368083390229622199677370753928920913605408939379019305201662319595121647581055035643896498317739383836549733768336974449842278940064284101854718471654401141732669624692163506249817108436492313338290810293313918459002216448284222481761296971094355895460121376917134453621031412907272452733457125522285036130269282777478586829914920423014044730302403757289105745319281624259997468731886049621519599060250396514207483291457610389326176696926219888253531817206628307341829412865422782256555356984585667203769044851457057101032447384603713574996002423595121606565082389767836539631207519975466057821717179616552212959449615730708129128219002262812656367843201077388362437002732625585651439078398321662089007507464037810127029510709481262636923860244087899581913636808077923228606704738399765592982625858035049415872090259043898714865248281823330369641201687965019911313683845645534082445688310741262884437115929418859614944898727390815040709702296033870516163328459242395089049859381172735904736234629609567287802396447949418573000409700990558932056655250751618181542958684059829536866608062909213787022433491083520670782616843918818783457132512701602806999504384268128772675695455384204219642986249266559051818673600214026799835007250016783493014473030598888107587892287702620173457369268354368330412137294312849787689991765725028013937278199900988524048162158859648066102451091995957241414526777038444831425476347148142042680191611988488323265489773577936897315774680642028311608424432220348558939514196643464322177186583059303490606623991574277607082195150258597194014729486521896908884701631300864378935110974806207928688209755865110001822246873531415735782022649764156837075025530519762069189780448068248182851585659779317950823982970665711117578712117410081998396525693981437858620028857427517412048834360040886099376238201437828811758683979931676131752657838571644695469665001597072101473899936111080002914760246274589680425062003586325662921938436654518699484396511186462493937525198885580086660422018298097376162122425496789197800423203044073393530655137343888956883422645596901742563476298457356833510897347961148285973559878487149638041952755424256609868953967528178097724234490375673541343293971739510201678873451516380545187382460395061411032248800664219935444473652198394895409718957679743564299176027120931225010519960661196847251719792173627451456100816840966631431570941175130305456603809436918532049798873758568249062091989007934465171407113270156236496028050497785206294261923455756835050827766959244937495151785471841270482939205284226091843325927271920104345700998406311044775427616189179931214596067436968192552481978248808211066821601235518785045344143520015234660566280520476175764415388123550604689968930886879714248560325031950500190152764569294261126960027016870262978854805219843273397459065549533971358962681306260760062154754344863045592856905450475142629602910124507048896232723498846490981615298953358166226705318327719754737126221134031827357580725907323221354868296186932907336078635976445595450984702019856833113787453257884290070632655705224207460206394250964773153753797505826159977389476215715305255904453360109826686493824389590990873438247965666402852876861542157227525197034400173887043959502143985977686511818043126214008701689140307103583651914518918400398584042858549401511657061337822473634063995825429740340608781893358766239435267746269853771527425482244745104946512452303857084639262180642364205207250821272057795685697751037906869411737896361459878445179191149532661199260320475802059914101212641100737226798119384003132607274675307954518272696124636429334736933383596597326644772605312662985152774704762524526490261704867074363711596764649729033920964234579776512747026873865513030617957059296955942712104401711717209219054373300353952940240068591210855118018983829292334973095823266328090215003602320154240281159207343283619874789158194061018035153903081854957746037730461172506374171667409305436021489594130402486608881005658122431026139164854099387956859038771187409377374489040524241153229898663374574697283133634704433064049690852941629731454783202539728998784852953171843123935781428207703995767204342719114401457555450035389357271626383278454330131554448766008123051288579416345891399893842426569563954196954721122991840095073178463859559362605107062434643568852580665291166034651393076608288989305190774498037867363661663589841873459469794300774208272260519171943081719482250910365930552331790212838959785243945431632420696495994026675948236481589576115725212157341067209757246951163025148283040582399407329019954633076006616565129444572952372197152695743880529647165137149184479205229885202141703736027954226776259114426033076565714411723557506966774065744601603152522965054827986157940823074159412991986139294784564081843151907681321495528461124119247496794332030684219540060696922802754455390784168446446897794992464139670841008025051847926400111855233993627301682849259187244252391862029658293238928600725074362374864348925930974293595067611456373350692176064050713861361770367768590889548037338078049827083149336534364812603895366389576410794311479331217275224165547250269676499389953493720949309067868617219569678915502777429976327421328636540654612998331538702195933058538292861040234380659628782783987346722278828235752674231116049519293937354444109031883689716767181331741477598772027369475273290690812264068379358655037562078901683181622509208982774350669872305992781436028004993255659809841255533608875949280550122636975189535908701185716409635635434627881027036000121192632269832711705906333317365234957513696820568331000928932607628769003591185387098858315707997685206140375551770912059088464863592722870338905180549198385937892367788261260386649746374695594766643112055487342383746784341054654467089728147766414413970844164295747498122532003195052785584475486611543979355763761248541827555512191585573859214254093752564592511122015748252213963043314245268352843984000498751659538083196323143502494032364281182483644069095596448865428193374491180232802413012663412291257902021473081862496649724134143723061613591895460767123163402984564235077515355895932227696765082169799623425073233790456006826489599749891837763179159717366666749274884121798326844326510525459671415752134986906987787396743627382144041490952682013251653831882959951025235894206329474694445526029005131442425508105145796316712512913727369122407423859953421322645440924158739722204169329132187423743523996077882593092601580624776868518985914995249251837998885518958794924496134418285571956887203816036052548216830435136523774060516994704724824596778140254763609519059477088781925701366289096911088227105590368676464945136074262751803494600760149622539374344398365499966822747243836371171441082163345406794629220179848134620725918229894754785790162899485939896764744822880337875227946781323777356681823548710547230989475207732306787297049968543385767419950710669526836639434125985950705203279051285851784990537975260955929674808193040584195093127336088971633810918580050137722817486443422143774708652162700062988059813913346351971273853128668663298765130210427232384298566152193090692999911223243622284858810950624636356891390165706243705524341380805021078117381511141649434585619406995676133860675421240241072897251269241307761902720576644530984900711778772212154997848327352575955064918118260391682137387683083960566939918061267720532692937316394515977096235628670768855950391748292584516355752885080573889436550761899557673262806403315583921688225160332136987921675200597900886165641377482012138141700048359419729217544566832864509083439540863827117734864245564720047925147968938819030167124682590115456720819545316660612267222128515638226449621543436189001853519062019796576095951284896441124843563025573250860152686921524890555184374057788323726242477656107148994543131660511067507638524087635986032261325247157149948075972187054994228964249662383571171025952193822208585329793755592418791145273554251615470271718957190195869200990498395224758970906491141315259892707601159170024061256723921883451776190574874255443355400945887791401135314064910744596784418898890341893777839449202098693542050430692133250604208224422254482072112841495574416844783946157469411395092815364869418933884146392416350315526403187697204186364512287870885745559293282229747043576073286309668015057096364580671183738650344492253733060148307067110758679206196371994339956335911674870014449925436646895457039515994733790678623938855783045199322393979736262604335370934189521109880996359324968771205686532404815889571250552142848794232712732317216353785394349823078852432444957482181517019381505360058526989362907402599907028230764386334008013349961079819576900267549144760637833379906911402973614476724383367186635129564170408669882663483716288218929285294770798095248543739279201562676010600740678655354455261885352022861880909836061815422696231401469364827147487584140241586562248305134266519682117728243276220378679667257298277122915799360582286395849649729725997414430841693403608341904672061859241823263767068139937304506684613089301197115280096849187470545119861530285386888994192726520055094209136989116974080184223477934954841283422357551141488812940153131181273921468381543589327379321822296932621158279572696560649882169987066833402375976424127895099537676556095045077457462601981319479217396677154349606522762509113349596751416528806212812155866236447639040828361937815119779596408509451169559504854149547375662805618408514885371373642308273005311466816823966529899762942405754674907953974249972276269219809667178241067610498994145960028204289294826652596817600812170801874660719813212609890933908281890164628859315030694502464042577792639225409897848964009026752683410215501605561066490369364613108787330058675795625121271720003112780724456781484821249444785262792138797686727875055370662505593001181047463337757303725146405016337707535326694387095354770325175023084692861568878069369756729060910539398050740418447493950405649693403276037266287411081610150569377527426611928143581611603208630342849016713654140757532016703540871582792380732227643852115279357613552869021683047210918025369353700790941269745651023844329887304577096044297292581341795965777915400382660486228008832465001099353733439255158562248603290979946754671109160286979036928590050830217967865374990582028455226224197947864282298415041768327490813578665393922183143602061264658688393195830121028458497412753786916996072039324335826469120281453948735845497313068622115953353229021237084129994395905725431678676464375902278005774038620417168858017880686847170007127957393296203389564198723285839914573558594297066884442568710060715131032180883371218534856719930391736283179588373495792294600880188059411117658863514189196046220622771273470814230858720660370724532227842812676676602012509298443011046274521284449339847421941238394692901571011734349790167419604002898785801455261548199954801992521056810736387010774307010748066438777041843423375657431114613554185382037579707810331851882095507341962839012448432666282983166821265959586377669326367204746631909703859213873754567046245154206838946478856852547744484021033419764127600292596016577225976950719990168318628600861280848919555580186854852750862156857477999573382387764236436563542686914718638100541506710927765215635844560765564056664218495628706061258503384146528535250313092368753047922761037058436546113205325292040263919554476252427485652655345700901799855294877743076844208688943468971758990991075198535548862266456676163154057752511461938570515261816964895530403172414098679690119180004946198283841726644650790344131099218402245211738001776148058600336581278923419662564724214731719493107287366173077324585917662114931797656175607100063351236394936863278614935688495489306153061546159383643120326971567051236388422088529471363897246698280139185846607407535306374450586259239366693871861757320957722388344316084480038869667575581977273609279085350486734376129182224460766267831366993490015675539282338604674528073455680903250738965163472443634720571274365672566533703918276899111584627854340325415896488195284257341946978629918195850713834899871990663771362421861625319901897506747279061352896305366803559002770926338448876986974027551213468724111428671366680008791558707915245206056133657525506224312365152987768754615921371780370439919481889684649602042160325811389855305212418545800944965436342458375204208009000537079850460293631398893315072287908089857018613476358721124123077661690213072937799327749980142558167216584925781732509977429201430876926954461032792329397955314768966001166795920568190331657757504752388591966651193296237647968071167819859380256866670333764048597452490256107045566588660609040622204154102028725679233341164105648802717118470023952502803006298513034724938796969721343807009488845004127883687957639092774786073615279953918898159451508577444226619845484401088598528932606912831203247494102507099326736071728072573842313588578333799114761408886999677691343619243030958450992162168327637993657798221682999736636911794995179106600947495622268828754562523408203466905535957131002360424242783215934557451460151319318061688768876622275931031182292311715973077214444644910823793724838431288324888063665021045078450702496838797203065799941238801864911795848726594686739122263048537029456290629003836741639810257240170077744606127929367574689617370132637547617384245553496067875606395577450766487172064642862893066328507300978230330141878378753619894262474221260723609828581725676729673499163963147007564442737453265156166198296398513258493776688152865387830829344675406922845031246991986891382044803532651753475167142291407597292900101002626348664997751542269767738368889719625133693638236150651952105878160755042250713687026126808760510222761455784554250985491857499531319966544578568111232967801906166053385330304005179218312526583396961151785407630656308847200665394127335943183737613339158108505357270185696302865438551782314100074986065543965327398859042992482037491046710446483092700207439441169377135310942059133965871701292168612651986297732403581549390031630241617789640218148982205564646435225481487127802143067946678695549429213274788412201938603754756936552901184380109763768111839911268547842587393368525365657726740764035007074473577672098524957237648296957790062311001691612507917195351450117669398037923826913955076514191646286888166683558173138645627252016293662132338633963449512050051441390659290238519325294733355426331884068418002124311664734634688366336274431979791106007017793185581654256252867831220231453878787109129775656980649579062664217623505602814878862242350119322713639706508551306305845783127619866901456788484756379896515813402356225774766423183081963624881102713750226275029825198602390430379733829737128593084248316751202693388935173543604980533913798645262993582633439299981342394685527805486125941699078381560753288925656764809368746270488733965893574226372124117758729259435746790531717925115449796039501675606126854722550510046728825943280797927886706823764732133855314956159531215880504252341755653990642818732448332032758326808063674192568484148156115546749174170837965189644314507007550261868843546968477015365161402685300001417782405727945973070708262062150303342096148980084261080944442713187539607582648666522779029780232713304710758699686516969085110899129500584499166459918336077187850561708844491815523354561654194333384931197020678268362400225884747675300782821275147215200483472554918107632439116361482100687050836664109625306282833468077667009934850561710931197586721535166563117324401366477345439624249134178982400211344841882444310487528961206273264224695912602788680502315715252674630660439107627243094583233482811254435868514822193248744037422304698047234448626812084274286098876001615550508517573749340022780440331108241210926919816059219874329464577216623693479549848500184549161397660068750870050790839042489148951150330554917709449480580380522183083046617727155148980499960354234679952763284614302367701830718557432985706431454306964743092257035756763754693382642035261688956823858074416993023507017913289264950416662600135008647522096232945779721929805590160095148577292884503149563778651771296704416159861005321018442937725592885623964150385685104855144118110412774243926023728054091957421750390066121127589432666212866389475172623758063293362527391478765097166688612274422714474019726086224194130778433834558818021330822381500219917865817970147656843240044875609768245121325300399537977395852862299847049721557395063662008673451735860140921661026147461359372910941455669352260072253001776640077333083240995553705983705496028948777102690315346143312725635955008626577376114905404222078485973194697771815564731285311677721850997421950903713678720351486538408448313715023941607945011698041711354484609175067695632145755250524902148598312793976845033148006042923921414106419941486617324703571836623776038344441493701036840142378041926352721789674825798826602354963284691173521841553191076549390584665879182239939280144705864078854722612343466365225404209411640187897064874795147964992613598826725548190983891793865294174480954297083434576478847208537919954900923389026704014736658803159054268863581728586426743133127925835409775362950014538129902412906468970340334352381690959278479307680084148583004511073750236865640724713740503207930261780524920416016903522574523426903939920488708326490094280906434928172939845078021847319397355539904383674132690303691295940319753890081289412547777813617672787342891544819018870943589072044304128063982095846208551840280025438195625383927030734227068278177563733887307437154431120466238150366516500599174323131418445033902385965946590274111079516080096647750644546522482578515832722546555222175049942330927546871462534118885696047373230877236629028012696528198298113016247909283797781336052807502918505600442345832156587895651131514393431016395048087691274063917176911421526738893881576420674756107496059642783740155942786334378156135879686650871266730674573754916213352475069382064708659363576062253066900170273706475865169423153363177708710715175102918098560164778311263877436926228851556027448312547637718252378750112800894907076885513615501299668945422837783891900965580641271913420100111329289677480436663156356171442909737125022900784316156874223462324953906252822034548903088379989690470076719885087305654959716699774869579658586691419739892249805534512219396355134066932195578453187856342360295103527803381689497490261313946043238845376604873564575853315197438360697676378524484678047222419199444239040681550475024013985730491953456520927158956249394644604182759468034318667190032087333054679084535834688630128140830946261435023316083480537984738026962695152811414931144686418227288502792544974413098844516540288938520893279120455192947731791344322167017622918363847541295802862354476178756746768533373681102336177261673137155323473706756735481858708787079098452144154713211351057451429410378066830177575198820671578951840718854402716395137430423890753752444212505690736566270626415481513680652110125189630713471713386273482326368371629573652268392299303881406582167392337983275945206487251718366574610414287919330016591202128135831475945529637947589452123334841282589776097937574940513391302901863384976361326647380910838434137668523259127188372068496880698035501144453168870115196349274911764225069428593689007554708039686267481558308919030500043038891229187120597802194825205089390576962903713537063830798846878610820998242319103445936637516753716292354235057903629636890897355967771934011791947067957931600204911178382908189645306927345677347039940009418290630153360429720462689706569793160096056279727721582481462201333766812963138979714009052803415309992583218758178799513955459036661102690992223881558431593187114176305510484896738209801375975360454009891687576682578990708022496038009661911563527228664653289699271599330042900038983908467419073419558809295378239374089550954654370996646495789590011492952972817585807357419381532391939749516848606480672341424484910985850250692212747945619811022773250428084062757892831234815988712797455047775501960407992643071205425058128288610193248803756400334410588348124710911738545552041800598699227221015591139102528406411359477308166110552896433899598942477050600980360052369552757571500099506390065742330863146798002285014732503695077597323030530043001683937933334432588238152941454613358380393867756913146995486975573194777958143666365855819555206666941182350158565344170028957614973812659111586483636548852611379168795298800579178545124735359762202562041567590736459878467909652447504921686388382388290498541671284464672009742372840821478194153110617115924341014911539480910610128301126585444595578262653248083299888196383579936064365589430395710156516647846452957096467857599410192604377557690425806842997827016488712959531730392344588048464553826201657696982798625665639328109048799050517152917724913791580417199015616706608468158393397778758297649031489581156314683630842236133282039466350385546674335642723997202831168318335814262765856524701887767746114042976575095122999406571778153816687803435982950024827262838774325004245508917731257994883538672099030250897759786896000691145875257699175315875503460195389037580103490022704936231740798919334425628467104507699771972537523896031178261918507288265159086809535105320673186083867326710142295035405497763135971307926660781890747186939386311936027408408640657633287322946052650773379311561072717275857483150781267064697690565324725273821516760718271887136738885373155038441512486605392813121158871497914468962479625822260551946423525650382384267767218754592299719870032833443592125967230537407612341084089058241338117135286124087567034197853732084275669392743188672866373701905492537269895645496138429270605642233719994969762626729543859140872996543525321214163514614666873814377527865875661493796144380841279456136076571231063211229836051637245749201337311064054889079251004540820571158988505257324257126604734638601748483070349694203183733357584047924048150513097590829314384361588378622003422544875179056459277388966675036264918573424378818489277745487711535777978421172427702865590537655034448167043210875127132281879366863695465461649384301610322981306981569314148725537399919307330394952628630858606819539001694253698544252217933216938282479608712731229028317123215589571765807345980919119912037657451996010885063004703527373200420808961666022220109246128551122744950446772446796164181443328656034202633819511958419666523837873691448237143798674999120737019122343260593255807585087014132686920857525720698095610662012191170629563658413964303841692312779299988664852498539914094979632633287100629174453458842361910081978644942012714970368742317312600101148227431552723682278983072311502384834281056237795277820374776015937592378119622763813614278138385855122665326926866766311966022575261153081898556833679635552837049902953542403741544419956038192703615952592966284866297019087540223633581604411784105532669288526875103603233633371890487108213429552912186108289091802840412051343675497881944772086274790331602291465537803016647182631951652681901968171906968582247287286314742448043250138180578280512918246902851347129453864527490646235652023350571407235982571871691592286718371180796433462489616440611237765900335100759258672371931176252814083652448991811014731665063974716921815365918112577949045620412874210666749630500121425852532682009267699221587222973671613430248721461264524389652247142989137819367955803615453162268719128956250425157010326581551867448610953088197727123893745830521258475822207184960561975349879426990696275144237228437213062528550090985923997361558952972381442406907853126906700637192119941090654530590690579495604873035898500105512666021635230165217528598340082553236736650845881027347325072963277240684346058228743565123984022221361194960429592691245856819142155644824699791956539842717152952693907113382321001876501185928667636880885297594710725571052455292353242723030570398003379289462280069626369134454636205129261949944800707985150543322973371360657612417524810854142987985759028705990936852050042320948732225396172604257107653347891666251985292360751453852912274771285203459237528735178949424120476245418215567279844531585856981537713930020245213174641072056414097372607042297567881522321553518074271038816369792773509133111994223353190065055897720882140891442880780152808637752803747335459408981131004466765744691031668315654759252536682727096289243209381945402351961792090101447633413380162165450311851088845498550089224287860465631395397896450217055349922103328612321712181815442131960348009104799427207853318177917913591010565021279328547879074856202528331232353895993017685898608920693175938960436385782152561680564875566301959491852115405741088596533585352788243690608974725897455530686085856169239909540887490064645667162014411032928208367637416806592831752753040993922740052923792793355134972358573656245477223796461766622315047843396139356436904033912948388568085634939156402418598201423705922258127358520324194670679619539044809277175480074115146092511755577732974403604854651482082554274312014549175087616006045406156448119820524601080475129972449050199698859600360613994614184554623176356200633153998902844965495254869589868713402634707441483056816454359199383488269889451600038570690724895010492090097117758387380024968113816825306150724317137395458263322958552548598256783853211232082245406509344506575511193240722030861808174752284109827868550661636368025415673330703925359849867137396907200420864972711366952895943961564107625009020985012516208959870242474219241771249263320993290376735736238558847674927902126722322812602285685537989785268243001336734196568660094070903110466046366021759193077796343112947729149657743104888127359919848247691091106362004176528820943927716327876594404560194505384234755028786650270185196665027692615513410991405917214920923263611596890347879478970866144904027086055616083675220212253735270567114946998754047562151312683905872063891971585242438717416689101188080731553808212233316537611741860729535864864577384746718714595973401817821674195520993904899500687333408906105843323419654835275090180875690223133523397100953566969384536663678539431741922682830942845761905886119158546880603660345941295514832027599762211473431086786640057985946616538825403932923365250431183278223795161061861072467172169645199600322474492429726617555965668277143501356227374813544309708206620101924875805936771061640571380754569207759849236221273046941511559501186761338801555639702767316790376986644419609641885067245762550858909905332327919744299245881251969747393965638149655599132505160681259045651672145371971059747208005859120272273562822805547052664428862714881368550834572026908862503730798916477516913111097186132390759714954277666387070277641151761225916154229317751341441052602892766783236278283573325734710557505159230569473509724969173896345935952915971248892088465431346471935048934212797199609498073743264114088938389311901783476829783015157442445894694947483206172801445732893876399512628658002601465341472798595276803564836138661235447859171376604634683765121816107005469839923897982802602968073943612010696099373522319965687555232043396648344432943255023441343159393026182684516951322851417881764656313495254056329996155239688487666948503902081984360957807382441648791674256790024411687146949478570891533236122415568703531369399918890341709869233572070943171313768509243208350369942974115407299621366742555343433550743384323275378581852768817190996547129114340754138630576707020237258501285749384515627676828427691747168326420080928790327646354432637927814045476889031897444006527530628524609747202615673012910274105756733682802773589528775523421033695086357241282335561424076335684234651385130843420300689527799584307261210299918545097561331344902983135164295045805398799112661287000788781272514407096688040831604691650585766229427619749361373503493551566585800740058329622975726315818247542477702889651980180064238312370214123685205065301060608450476407723024839444291251134620327868273258486820478423985572456058692967591732544046788033262124673851918760196952773489372916918666538197682529019948097137277711580743905762969429040058682764697017390818969454009939982036770397417609714955277174602244075344282512382739387621430318967438594137176873417469026474815968023187004282607062564433621008307217430050183230093966513346116193438165571490615695696511845220143837333342737901930931069730221063188638955024914065220616760568703900503079282776505719304341693865192779921962001294106601213141512636196696542264718093475750591167462824207536132585536827766294293099713876356949020190732883666467730447373699532993272680763376451329741985597676349976079844642626148381743884757754951475908241417139615717483347377972146606281362456856226356808552630055149553558691525177559095719529405732134857940513444920586238667622202820021290413806048073742883169369869135983102397117289429408495158286699807646004202001736162365071185703624558039273839237709926894261330948202762520967500716312655769184430326828042799515014205217686075930335401679239081537075345978279786418032101135213687759416339527175645957578261204495638925247726767634482776858041105075495769671033516930118964037143677564960038726278394666866332198498968224374035173809846463735363349685426794825989213371848022994148531244976477462083543811465787976415414429065701880349272236036074702624186083824365064488397798519316761351133632406416090551834557471221083425080966007089058974684733175672385004368030725791275072689564177121730322927432127710391174826871990081596187202962862559704951486559903339100279369712320455194923058093600208221775654559563697968578074349493550580733390309748378998412059679687133022943558317153203974648643323240904621491131054296161683840495956708064890078919255135010410538834616162395076519885733302426373753972468127876788038884088598906921941436328938541629661892749650592614583186690359692035327705836307222315549826466415104397007776562410703249934757778099850104363125804887699535235945737144012628394624026587978430001681825931011009766326368066809768162838657749468331040162764493418590032538496609243950542776007958891526484169988835524185281717641343067044779048212861296804421897060035946181561827593636370356495004621478715738842425995964884727635692874919103628603923733428864093941770037220152396428996929142217891279106469536901240002824699956834434403879775615726943130731082425398311327925714687174304224720544860855010518751504905551277924800290780876598392545481870803459332997891995071765356108172316770791484417024119970709483421752508266863570959885514715815028454402123348292198760150619363145408529034082871677327566750119398416771789015396057143030922374663474613687102905133929986246772173823332816758939759418979526482578779575228482605353525390068405686845627084579250659845167062700760594653539899770842176532591609702709691213166604893866824303569542741230427757632273552035919905476549073722387731675414292099691042109285422760735929875772465268856427256773270878914316578931772284625227089886274264879904998441762310210525950862243871876321345969180736025298035486863797218058123487051628433827161367180869714419445514509021248180451770549017280855885504024898985901550809340301300106118703069515802306081851051173611535089047572543256543204744273085553360594425858908763173885458322885380806342435067035178428320408008120807884111667228814897345231761872992747137676520619965213002543288283893806228232213605366016012054289092341492093291036561131284340125563938091028375916959812380931854744227177583387501753285233259372996817896851786323349685342759978050799195185988451100994053212505254036797321548083721329453101574700660844373955658665724448330322043881898021606922307499719143966299337586431041882904695735723189245349213493721503211363964633579670225863228976909482317809954488996840616173283887618245988003213748665604561608324803990738122218455634568934950140470685563858564977601284254908339753751041485863715554776005076718405844722795212520667978942952338062032287978262455868382445650975225758431219815020618086920414483844189856096318021961634763739704021130110878298495721411947971932831829482276553271477767588407228068088726232777119522077230167391207805492426221097614965544661605882980830904233119509142024742025814719252308754008572023327773359629435872349057000097148798659987855259054852911442191732606942581992677606948998489900566733791318788669358058736279944309152775018899411604444812210835410490905403983379381524756013359649329059480679427880392722219501536666499625560580802287241897222448474854559371712801284746851405190835863380400129231326041661362747509344928560056566909193049008516614351789832591900817224509923562222065707346082051151144726457585976577556623660826510578520286075365297997612439752688832265726331569154955652607425741917972076442374970957575411011336181285053094343849763099871592402658441367154596294983984424822627389540333813811747518116669588739713643506890766232827798748211199410203098607921127748238017516373618682373891153591653518875542936648409374979302217888466561011814983712389502610463670084945910218116538658364095118954454983095247648602717232928251474117139977016812384792534789530078693222490793492592523526834585071191488780114210459350353550783516578291421774078845261244222649416917875525375091019707668829263640966663325954239961084079848209852271814518528065391373521657820078123671351510116043261917783775379449320954447122690214634639770928254029614680075422227201957155914295292050479737733581172830996286714887950768058717860256300665323980569575510855732228119707009077985173448629607286467337070383623648588108073200344029081912054293769288820050341863933059776668821956946741852963563241520905026941400380002120942745494174181764038676947358327357624596611696096118013373329209617525443912889453595172997058757792106797845567706951682879653518862923401303130362044975410621979882326042668722736282057712141750293172787899130989367052483980974932940773821616182024519087491816071774473597697807893313887199270840493496449574051433300119073787524781812607564566790022060608837251120128921948324132763475994952818651797856800376305093398243154435162796903492378365191559315550524710808112844943147315398945984127461829775215871980501451281898635900165659934423199713968738383975522633972382941220100654206112049378044170752776600678524206833503786149373241736693178343452360482599372534994313327892880261139271129680017865848768232132175924876809519809990974326579463342441056775701549264468776141722779653038567161596528713725886181079093765195305674061283935542384931232038776108486359850117784784602914530591262743722207780204417215086180220190978847701977173894041925337293879910964752696807447336866913787342633266818603444908835926912653075850594554089848150883040192252301802212718520157737086583977316751772230439207734283775456488519228707217103429048624210388148649129825092681623530960775258739586732439805412705515733216380100509778781558429147202010034616042408883793980941759511741172455387050778702555160193790164193043829963876737078925359204677075190267240482400169972808403531010457475470576494536731011820586109970668940255378506817104362779088726365529949227719407796020518140436337252086132067811513675691072082123092798191916476636006680514803148979232322830833366457436424887964903085827774776365210034517465763811956776148659839763856331753456448361605800515494025706604212565227796357279364327970721760450718228523031937321097122149794004577784757212066449467406719262012256736068215638322809059913152383882091264983672736202214096263534306709927098207564891111169466452470731631057683898075874574330499440853436814733942829997903639630726723478209943252069590143092964188336552838534465873033459257854761969291831527682598096788418458017978177235909693878225803040315206540269012391142848541818023587489742207488803816920761556118545420241931855272028556044869870963647099191809915892615392810423516897688697502486027677583199722891998649113000465801423400824265469503043367576754305943297959317209703061149043385396343900104166317180053792860610213001148211693887307491237871107834040408955825597952193787478639404379527493082083557568583799980395256699895192012139071186851349232851581637440061272806229288661200977584339814093490516301490094907280953747937589035866526387275272831001689701707981142614005506681302473577038049523309693933577706551390162040674906192412619218009438373211758209046393930767296555149393194342770813389055291064694154500741249469238222517669406437208147978442231818288452285043260582705259055770340240256579211976154475815711485558602324056365405571757186452939998150788809730027793609751827907599506915491270014773592575201675654769634807112899381275231165297722556282823367203932330355786811039819169585947841736607720792129361396963945905669427783775830585133403757424921961394728159175039626271420078406082695864876165265945369829011996207630988225326832587394892497392873502374909848822540184176963763873919618336365808167387407319709918438836592582338204049842785291186109711396274715876228317388860965550330702899018314659519180118645830291933502701046802258959611656530447873082063501039694781456611539469734153307422535897154196857130898300677788862602166377806416297728397308576361991262585414104354490292107820932877148270478614488507430189987797818132657683335300967860943436278272801648669901100602027718486294056362827340070314488470651164070046023566225163101168229180133048241005549457758340643662097427451019461570235936401397150898888849302314286629522151858979900160600293427455622570952882287731721091331881713603294407816129821057853034351511242056597522932499747475327090172557477086686810767448764240651783438363472154145092179422112355589820493349427293539928238190072039674267792469780661554762580018166547608269951099574429959191333619773819083428331264395644433667382091029485487517997242424471693126942582525473815992011479994764297111193302359529424731387825571857553194283559144908772649527135857751667986912723165267678788913272974623491944223443272387338822702680687941753373613658574362200646594922976687543867624785138607363744766602337935453018814399116894498251222560458590265643813515935782125826343232235100595130857522412156416522743658320866813721906594648513587791705881663646796731164142063077116695551312007489521135930579666582761331186307659863855487480875780068618504348278739306713722767462822929930394704249155961550759397804929350734218919382679468036437714643703386793838995577251821626589794442286919244723901411469878864788781085568520488229543281245147212516950614744294627136503968388407605361863484780443164271233819889204624604054671439009539993197617256597861156677902551453707719358240269503232158089067162101776770265267098747014430353649289953907375715113731571769540679233144776710772169203239544438706350318594539144669096251004846093059656922563709709128403904665938543260329605251500905080984128155564521694147129607204637308581703594276526185698642626076520412522921817533089336508300457263732603709828360672634141687522334847401632004526740455693080591408294973867870999434842272221809065434494617722554812071620290553149249189844543373947858810650542527198964538449828230626661201343017511983943187644158172647647742206239976436438054250343383157679074147277817815559957251721459030299425947718202915543359351651952104225750091833582317060141312971391558445893138226890691839817859207115237326005856950581380744920877257703858642054125761764032150320120445208382158070547562437431550864076840176095986997161834944420036830648724649985427746107302950917464376272748462252051210079438416791727809231244032460928331334595549666748724251837642505367962027457855174763049321434648547343828273489676320319490257845252880099366745567299750173687413317517103840327622319380349006660992791638629105641438162384679182531491284700077073970912491555715857906705846881895684848573015606826755527178719417058434651494407883814515997290810843695607501552351800947238875197210343001218974118278726004633354446651082820111113325546089149556553211055274792595580978956744865086724211036333083147615865114971981093459754350775302642220736108831478114010401682545686741100372444645694720276846090398447943985934395665647798101036207534149406347486239810505873156797857715074339352392647497159826766840954096414479215927943507768232145309052321090191920589382230642553845826775613471267170097321669754824614106453356104488292362521063577020295911624941460196551783168265010953763422261306217878726435744056042877252268524609349773829700596468232105678630498130357354781381850727936385383559422629150028464181997061673337101244418619201028672843387441378919892385004928082164533046416613152370337132742837398112198269736997220105101278315394716314821521042919868213009594387167886550932470856159728980070617550824779235751414343216059611766156218307770517201019823459403206780970240217061493324969306594049232280335117545509823438929640238126995118148539606194227540149934660640327637282279521195320702948667353892215595922072851417622449162647713519102619396271516964427746785769642580993045944108046748403994045589030478355038147385668753394617892756952750655709854916802800159636737273409060056025114901978239827395921905849668314519640996327246951918106075589360006889531434976313709679180320321321333574773041029739211126903587729415934373652100800075603138227845574725145706518475469675710709916819033867395266387698754961367663967538644739553707992010702220537491145016332736530816910388559039567605727084119806960599917415860486134688741464601649054658016454955808891367029537213976631513204211043877483280218077424985479224255927401255154216971099501058390817107772626600157274295044631685142344786377873122426200605641571439199540191490184342877404288634366099080656539816168013932634404238774820085359724293656238036453187142512566733236083413622978068089799760232317785340231157711048515229009515430358753294002893023869493185156932435657209658716714363674243343390186270047366472574073126436372065523226992989774859812940359720531972173221782624421293057916686345258935167389930426686076475830488523495745037416546198133479937321991518068831642464724234331153596750535602423143263487370431689138668868487753759295145760226085012454573818590653524511339898166530949713616810921080515466251067308467007442662321676112816128118003592120999188127112528639176339589294554293535635024102914624395621511250532439398686342851361987560787478294607945611877301337196027160295796731566041958568472612117864281015401872842702471401840723701802087719924674939892298961859306243767874398561273166762956893367619265544820685533090077084587372721124688997562276686879553003086246119156830215867204390660977855362341270991924720018362733264597392476266981750989747392723017932726098930230353147545289155002555735447127395538538809698059112000764253897072197434838926686270680026067607672463785493115392949773911210533561813358126240523300672557439467192247780483486523823486135342685000189053131466081564893044608721022776746192387416300921878061603760702517535851524275882765259686134876216044014148859931336883227983954082891683461039745087436571495335871951686235438571628511341601010965351255567451002685049776096314588361053381810263184787007743882147682592567223327999792214944786844079037343210989400739156069243961506884809537757951461955480437401393788514005149718665074017033930480914009099843050454532570847644870227916555949374274017853142795604522245711054161902212387966464035852438609230361305840176481936346805585071354932375562413590746406500242224232105833176262281733977456772751799800829039318825690908638703264273226611668981881277224287903698255690375676837225378518565368763273655584885523130437055384269759506573125237984751016186405365421102340770373759073489574627510814920213558620185323964092667098748595247614798469229385714282370943524895692367504508131087904786129083789837222018431307502290860348403057416136705081482459198704615198808285050921356206592184234839125907992039744912739965376946854694045539948059076098465076818143780973542160264805443714924923761223911850725276237318288379620795721027647829850037421201992300699767932910384170945731117940282722265271235732859276097098872541038968877544967879710489675827490506686297220325139213913521386437132065302583122265267175192448696242762199090932718294162907805335522892754680293965316261007900591001298667852187433679153477186677552292690662881126996729452003241515417938975782813278491179630537647735353686577965503893625523386622824587791439709563169128360261504228518031858328561244342416215965326338902848493072355043232964952904929081908130266230047367975640914645985271847836379976434568187867753829780320270683594614199394518805972677335428148250164369746434773821462370435156793727825150504298505061490114431615777213945712108340340902624227018919480314493026235350867829346526384041808249328509107757634940310135204342780516752550484699724254746096137993058005551774860387471169401661221030566295186027478676780771543889265077515170496701651840609482575864284943710087547705829707568713670482592719266569034490959860186616964394735360649903179577895135543768220178992696416626457393909863125112609875155469535961085029251702499970232187501536900096283566962099545174356693989409779912737915286492465736918284485193402430550371864562637410330976859508349067157313140531948053773967532166960215689922723641659140332938401656296430091166403320548998915747333295445712748003862985490021864722298959177727780007708895766649208860155154376136703137712625816258855764108056982186780312343107306953277648605970952169412568362252768433911390925172986450869242168815574996199273144915133251855322049140722481457717548672848086970035326966789163202338264109135884294330571009741734288047719355423933684281706810345650697772197763195409922541967406307728477905918222337076777243998084731541093752278270936131691321259066044375090120055378428325577579436407830375446794902937269340588637850718964576438798165154743346156039130602525569559377663241647334170166817907105852769501395658091835719321658504142439741283398567259649792866314308095027067211219564902202735758525859842576180426074740285087332389495286695708535233457257162776551834807038815652526715438040739681759570084353833706491645692285042019832654813248564213064934788020136981916453594410346243461213415411619781713096347179974777444048890338150613198917688496991709081549621139597800265589402257262949632706065080280227129689037257108171619643865778239876624485916926987888186823748664583005765298696124761241401674977594977732633963295763732270622374823998261397844281074610763573199103606615205658414507064869137978036791711479627934872006822084959302217710626596145609757352221468614814902161167434887574372581621502137963333782860000363257314319406568372521814183150611804197846557298994729792896171724333992334144127953300918028224261775944242725514619017008924784887058508497762857019967724312488301751110306539231672191476326188872443944937475328483531392245359208512330996035034155007811015710328213746475005862720814216301029899979993758393568808588016484105402924773897623571649299699138261999837669367119381646222349424384747332143483253305200299391964001125474092202286904771123988145411888750980088613510869235302197429035923283894376134442845140454879262540597284203627819743758329821469283969649926090454070327656473515317310800870956910852444807726780445494086948022935559033068519841033457868153129784156116574900526024747504582151435681493035195255224792982200354090317713197591696608630023980572879872875592624444270965589491100272366668449974457337881123570140614224763597398120374119052095193884550909502191536084020533247223210803092141341541760482120659134235444624693029159120198220138981030756445311425437679135932291555111799583503885182352917259847382887761573515672497094914897225877694306545251680309609232294778516877299925478010595333296666179481138453546709548819608373667101899849574273216967901941225293536369313219952090337884456240361833331660060975821590192672101875462879246988984450196853698434217628458926726604999532855135256001464320100919372853584111418030842925167888806447348496992784317566696510297205796877438978986839076018808357675126280090413509374110791825952363925728574649319094969554392907356424873148061581623066140360381853674827343390336424407071973085136968453969812184916379843204915600041476424023466762557945979511165063041915710033155539442119517050879788974228701952562000936478354458803164045023083542450724271400293451098517593494480435577237626920307174160151833715768189944766386083774573272949997441845536479980152142082737350694079371370420698479716501260415110281931937575161208777907771316380363599532453622735208541902358205745935866134730483945397537102258783771533967442435663978311979071600658002842161482242764800154635435211932260320271427254214483520198323214506496097925365424901110610081298541072636467829834578805558239998627359424773094166443273976434986530306630563609960508597669071481686104403949635190595207301636457938528797978178728893126897199739725480153088022705677756542383437324061443438004263936135106996299157440515647532251326485687586558763097032707319631158979334656578075794495777449789078898689511938709813024708362522340418583092544077167684529252787472231996303974629447672689978803870535029867919601205427633719107153975969809197752666091704520339801666034372500242227746774742670263629931182115010853980452949714104259869225575438450187733179549622962858301619717949658322869678133860605788637204048265154822121448723447853670235839016459607333854145911074114280872146830063563573324192064901162504400295000588947037091257693154889385522876096346042328817954372393022235682314543947801609285340649209685660934989306394159970100533846356388810985168313480434584590901478325850902912934548421613540358124914378173804419020668348006756993252557596486029629480628342904386534466370438439761512091139565267842851257326470895634520386274722378469400957495191100317079305173335914604284659604417378596397410570375295447723058413108420204468843709096238200482706419685903006336692080370736488474741714667321617793469387096404796955537839643745223648193065158927846751530725993852613645024963347513245319995843399781259704305003500589611471671787728119374354570449734375318630535506866961171610073011253287515412923603779792492658972628852895422666013834738021128828358275912847647838486692196716311271041554318951567366534524816074597037768239992634902052864726776884087216503845581177277251472788599489937762741100058472238226640135926259038865092272034680527920632915564877048077246582598892232932636382598134413869862900990726086349294397040642697855445530552467600644024170576235998533204032000084512127186825332929355749469043186969798300651809425888373466724236397226601675609690168101295840285318688718222821730020080547718859695580293598490795876965801542279834528537030030144958722348003275778598075927812524081457751185516402739396658635994933723060711794518120385240499209803642984553713275344843394876389939971446365645088527659025120843488692192924393436744152814497795318187504560412785207459547668593613463174969124686590616346920858791806836316600520073676662571659797245413515570793384383441656553045159324403770991641937883793987830359158900205085072918238505723712518929623141105712118781012476024728110529985360552984785693517624005365489277039936455317984146743826735963060358146966040877260926104403763872648031338632371901000050874653018859233493352928822723644511887123750634958611912776321194604017585420736827240377079473702568860889144278002963294678699031576825652983316488318284078325178965800861837496614872737448016328990078314326827915903152684559394150994734942237935683978662809100547358074317440586023679184967928979132916024792190948384821522031650296382446756604275198191431386315842016862234716293272143810145497974522249234731456969075438087024521776292723266469271100649624913723180342328402006992846992856563852512239974983558368646983903837553919423623498045800886151773949166420195140675659045231753609785858889168516678067589018796837589843108511605332772340880620899588697735799255153739656390026769989133752351573311310778613730109899879963564529318231640682709484367856154006711086869722208049662434950831927061950740171333601824848466109197320742974199263495950006515402709035547066518196095144964466661195122512046354267142188834206559895154217945884632070039106344362157286050726579633132659318854212374208570029030223878405106789164479033544295292060831289225985011860647607669165633095935262991706878296538980264616710060055979499766149061089896111733074295849329254571401600939832080989463155957367285714516731096363855293719532344425778633819944747589121190425452094379571821098102259370029634282499116595927652821406301622321868505342016389090349509677628721001159837816178879699815704951701823619385455799790803374804755583542985649040044851577960743082844954737842840001434049705464969498226570904341327980398208971713329038992804292499840600260602058215723840653095544618282980292629031467257322354082190262912055321165793611310797567655423830455206279625481358629463371234150071702406643446165839315240010854387413709316318226303684791394875911788640569192691297405975232416893998987614621893562160466933090036860771514007084154296341449539701128138879255869082084505963356778041370508897224986395568172453536898689633998576440726159072874469109331500812755360642439639648183914537151080706718654598229786478724801933596684367707264235255156543959515866284192735547572113318809316035795850074715234352758940052255862099426739092337859974575809770730954725421444053511172796592717088487814769128546197718422436736865362221032875338587371512743707237095011327912954402318358115850695355147993629795616391422170572979278719768456816127752338895201718321202786225780265966723421249847205527970053723144066314510510411408615344483521794098563577257149168192703052806489046982363810910498247893967516154314736758868603796028560583808534302321374533006828059302137963849588148224663046352482779783342553665902274827344286580876626657044354487624071099708498283917770448768340802550219532835482576347404439644950757741165253938085995320357796682274814518028746680677145201900994666666564291236082261534084385926623725138361019010876399425386593719958460981740544553505211972327093297465352938327292884997139926232090794579296911020284088732495895333711618121458373894583747899223443713177424866683401575181172640610387133014674078806939408264947398673181855350098566657962416067706382293663274781809908479425003680597267794047683030980862059806606974698851469452362226216716701504719135289334917214393503700461550777940080607363885738001252681694412003661924811884194398439736345085020841298020177660421701332107193889587120845439664647742274240972650422109565301502277402954763478424291944842156288129883806087735666705670716744368970229490323472581602339960621958604354076122407475619564246569148330171693931216713326123013744584584983373050264443267387394051538528445015959866226171151385143082615083157193382845162369524399452639130421302512947469953031516800084030401512769161027589714264093932700641907409299886560216137638929076009007132135003391134720966634048099819579357791805989972951215918243489410400121187483835516456090019251636692089464867464593641793115510898105000309897427068845204330130583071179762193573751283821036850576646936201016999780524600395851209058464441936145842286123004776469733002624671679985070927016442101061650095008759595345195313278475196820693123567009416684741296061460689781317151777283067994730904746889352567130603808024283297173771985247945058662306502129451871827559681025970388817265264348109765984157816761354732071691562689291645785038117421644215656913235875586859284297461649890437709820375528071222384331566996279949910948422748035907666808069035202104329555541481126438996638321907590219091195229904721437811133496226382905584089495162757448977087018894410593411208491364706934489978888929194346999179891249525682199805713888373732009842311006700024225947419338603082745735956036268773818131382670945569922353124635054345493841604949215600558797751234883507142575504574308859826214488546862538442275169169219632835567005253960859473802931202612966911105707229828632090197642413356011837556383325605064770672272942250352937526508516416612197454430611305476873528595767197259981850410097113124609216922441621980005166553359075004455679700252318114340604103403398377547471331257205201489345165176097503356851859701000115742562876308543756721035959312148539410370287089101085377446217300493606636439773295886850908470579414195808398416330384493543185188721902852515034344618763530745861830827469118094732614000328379215616446944979458676785700759551749084783516967141785716484487161245004673882264259980398473242246427181810059900777722313577145211015704301405737407989342993138224782660908646110141719552254561960977954203756540548308673560499685707977826413801998790566917227748906647082421887220351752758136952118477427688486471234525151215501414234778341810749688304695338040839962609777627155942459394966775955003579522314489657446917019865320997782222817062234244708911837254139096972750665560847461257934817241792389508803236586974337957353399428987845456731717103071543187142553679275763750848667124831986650537869590061056492399397342159958080505430623313319771639442893360309684852299971196648425731711232535634063146814661823201645356006861097027240156752504399693519624012601687225065070726531494044878737709147403828491447902947060892064823306368563820373576806355121091885870199402917291516226962917736975040640565392541728240689037771461928210116396619113905144031264151097456097620779742561684737512938788565622609717994025708403173298271490693835219920570569181185604576045885560303868678887026187073309397475220750625851355011195388404187771583239104499115330227953250295054588305218059417567379210785509311823970580120629241799115226755112837850097260220082465653595378176244968480398387518989232616683820030893053982926768720413245738686553248418820856927852681788008114220748795579523645391291252020788142398913519218137253177057655445610831984721587752251334500118548176258495780960465946799284757486186904282825896461780262734125206820621559944021894862925710411448934249147774050875851480800902267012599168843043856424202859196159528513036850644274046992091981712728800500239256208399880722730197873763342823400700443573872946079031106491818315041036987549774545332124962219593303239166062572976921981973096064638189014107148479869922977756313799059770340898396047846623938049852300489957330323835145325932689461417925103826725715599586261008565373616871907948917842994482733353995615019424247614140477333899829331293703438193187669452226388975920934627025082347699736624745634857095538753528208835997565197526771974932069812245483183864478804834224238361748649121523724561088833135323259577581051892660943061354208207022689440195820211401216878750430792241138228094935312925671378852421186812492390049401655521047241733534966133982358251746059697347909455027614195343494436737572880536224245886992087508118709831381281665968405553888632295013216316929485725593109012324311768511852253563670936752511895643367573200784332225229851417609334139124940265367828758567094814528013398461349320168575300311876890810227048098902282390263243957221268471648299452010065497954380703189365836539886738600968084668537986497120684705885603427400838493087158135179340911413773041987252958795782704429458614099982426912762830722821382386117633093334210459042161272619567448309705729094832127734712824185415480332666591360484508346926350163015665718965565654212055967082301040589350733887908904515431055353434027545942416143788116913800191641122914804321020719563971674540231395513091826559240109668403531181193355752988579544470108002105987010590823426705208121964487683783863443192866966883071155546837219185227866411867624230285239609191492645103842600399646266366304123316520246313364310528683887689280234281447098336924758200726338897561434919525679858657699896237421187811806114891753207824901837788964294536065414702710723288820669683698717589460820625605109456669592256975465115134583007463752097227051111476746825852674034760431323233750110116224257296931179465792130304311938919755028715495562364310049263768995889566086726448980427994941362658993890909239721634646487172057831551761644031539858509498286400858707604165374776484414129480379807173248641299131686966447462945496561205670375239173864658994650861298459067579440715391317487265713752575438672879773330256448826428538620243993948585466211705184663832214402305868977451030897384485614836382186526600350009480852114362479389135737886529322206888161031001654969367327813809017977137419518215486618377194315785838532760929570890148801626036624418277666371123560526176854423546746546073282482944322808066896322859610820359313176264092407544843425531465762474764846359610856595057224910123223982992801848128789334872942961685758053018082708153890781640111382219428286746292331559959914737902341743735336251031588376892065218732972930223381139974827466589407582967011312244086810649013248486892960771517239537286422185556052541264444988439814590858294757367631100923650019441267674276325296231311097518970465123005945827089565352716600643434136715235631836819558950547809572372850626267490627792301017800308957181480419233366926066023878090937254464059825514542106861147337865382011696623178789895704946311469211160262731577049692815981267981670315701217164015585683898146208012523700655430536791516963344258895648074130200578766196488940854181328812718829767604270533999350139440628781524312365916574956698616506555990809640430825771990911272380966843655391059840064029158076428331768535088433753777118598322321241314593508062288530073649876548367255503358595358409412662029225568599086429265024792947125984343621768353939135217024566016321943885706016533767813718072820316607543886168539246548830654382337912006142394001305518458658042176934443640416356073448526277511595589557668670685504934921200000165462500242787212228372227250354286551655525243333119824526863406404267880487113312750129078256420107065485442893351114819141291371615068156521548281183705045843849269904258923065498334328875204120111698424745579593406444019057971750936030643789839634787587782930476004831583710748150807242002363704157576233317755586360903006715780384526116701971957724891696152592306457524781663324236257077209519944310136843691139704778644620394371619514966605811031693427925921230868420030274112434608964382333620863063801472466040434326877367438445688698693908261727133549462011591819096020671257604201770391761842431227526825639935711237745106355722172924087736392775361929607070566559761077665382000520038286566666663567069827168013151959226982558396814638735079197902663732556446168631541164986594781399315563510864259367127321193145168678402228998193403636341190964543769339167609672163778151816858405183800835414805576878079448347701926970852169649380278186293599095959697918826047517708672738271185581683463708209948941536019748340125095163546688727733065806230879782978347476312519390316950834543581468604672630711167731478159292489317209327214254768101390777480745763827005348360974874585969882123041031368064771228778825438807965520847315748091110747708351742601297964953997651281413479758255981743637770792147667259948627670661939768369730024275308523510869474161719624978787955188583437880226678804684585270432267065044932439789243536570406590685860647507875419117386261200508041183536821769195549045837009613910087977238823454104994240445766617479252640180527974665557945650367577452847502812679576554420373769523766736314169269772874016504264749144444189227320779535299724325252056279086834339574149112278743056138964776695211307561771272505613655856342696735902858768254472138522324284049203273042106154203917443287497591677971817514850085616680608378289201444756012259981332590356905561663170542742169671526799320506404395369857282550175254736533782525988130885061043461084245735233854185450702781589488589826169167362863944859039583841809181677793104508148998146294232922538317992396622382818754941005502511325357746489451088037443753894943629710607329968202904709295770069800237831646541443290544416935782626365532582292946558881603090928292271126016465405754018556914352124039222971282515308911560819921783875373830911213451724275400614582933766991739899620750968054905992327194861054385712245823316453600615765846048234492183963371156628748282696445367347831519056199480522964918660727943595356692989478917448213542559109287390963650839696993792585526054875142639861360173632307497165080644395932682722329641478262162069134772647851525272663072224350636273583841459986246146074573722570438645980435602009467163788530050851871431648330059970307650492205681371354796672520037517929669758694305585612751068266820588765446624173891162122591592268092203479713293388405783845304540293390003338258736028383295360192353189035552135197199253404672571006579592201914623499121311763585423123880054463038912687905533816978307435035383314519836673522463942895282746129502842227546325212287400634908729623472598736033239127739618021502769849900408686943384349047216982555949585345666731703610880494677511074796575408189151751692611292655774499426259267364574627388015119668742493881482538977417667633259889337826348097735918804270050444142798914447192596404686601301937958940415879039804157321625349816012933138384590955362997086604064711707176539931305375013512549372584190345000670537631640466050107034710069377431367046615124839027850129418988133104274171008587704081523727399365398448246151516767534644849080269325065871427841131534504645716235196676987620200917566098250836275924715075795859010871991677988400574259815140881843367807731722437181667605034106911583651446798738443324762126532596467301540261005369162868560072679966063856334664095699948755077560011155627108312458759284722434157316852516977779205714082164137317965816595054661164070707969073415773404808152166188396927960263573498606282966701157661347542921590834617770240227568760335369865824219960791020727414624873947222544870495141295746363187742084037874918852248591383211038828914126545595695085809468438328900883698962607456124540559525289618572340776758152510451184708071792683398629396931802649369190143674961380794283432653449375478955556073725514841648124908310163252290378541719823542586672696581986566053989480428822311237106338749583265338308801125933130854440499612585724359108129785344523419022599643917575823924805643496103323455668804792758045675521936594763839469572338316961311514826072032686389702157924825657303875793335380087816700541670501623215423222996432754669049846346315077817130102191831201950487799866549106543003337585183352286910083294272094606283572115574709353453756991513025204368312592286707715114938557152652798811244368638548642377220411559049095159726260610382580094017394662602707621418434467544444427862447971328235859078653046003455598543619678591602853683914946800123067977266397927928040751121046868140066829087131520532669327086532378005017698624375515780637457655096904323226843831996255533119574073447174810106456930284482621283075687134014834152614244505625549227818996423265149356267660431285674783968602462208816459572014446726660255674026572746338756205997302078559348672679265681032562969126182727769265030915090298478751433451832999035212768525870833407841939318086550993960053937520983331795411440600487076242617127979070515347702458114462222895731217650506496295065562329219987636286810542861715692582893570960520314921585871522064122002198271812358295659417509242398813678958613911091874823321378602758468331977614166934862920956536125845552698991440027412290106509712140510008088380666624284331362437777245481343863346703849901427551188022259919590857445228317876876350246024542105669579494236599736203422497520388964958146945954405934570174886398804211026546330067608704244104131449396358432508855334507930208452236109549385069335617643809390887563660757686757832232154332257962376283162339663139123026768905672316037746796128136381840294581277124710710380159337244890032352615406084752757030435121974076131922486172096237320275995886735903055430039675982532936118153270362224438776694147282589600666472567536218213778300001052037521807813677012975171716600313702629283676081771892902309939852760273171577257989175443407201172454166578805459278997503815956676584478186193006280014600963822265465654565308447047387363015688148374035464865742394279139901347641960334978500059048765442413373418125543985135678797720322336102684976495999890907688526573371678267394426568706044312742825337746894390396428393112187801821252796681546426619431339896895785202583154041290765449320388698767161546799356529492570036861122779638127275054271254980036902041968290380364757361904180680303647022819315969794374084407003410471662254121870521011118285086146692598479992907853013377845782158770370343900652373341577751605071101784991480364621122232401502042797743240330960500099803442010277304249180534788239677795961116398616541623139056726489556133095825564544981830895689414870320707285200158721124220722101522698374854069716938936181906114286704229249789151503937157579233734357663808517632902459931645560502106277065708219247194121538771256284609683485388739678154786720859768415766802890279496755204687987853176312372198103905342425119837936529059807507349085004802336441764229401406732582293158002668192526371612733400033361010041153329688320633328073149307565996766343913700151244547849001956204889075975996190744517485342547683921198184085173402372163469208866189684615700153788650655755729710430071486643389669713459904491385628892839062665008084115841749972532222638324278889178058400396718851730211455499196789233492318492271269848664606544901145241107293789788093068232024707318841273705681704086265245547004871569480616017373320967668452195930998431927391640114113177715802835895909335663681378459507322936117918805410586757454999406431470631344837577811759502725436336824586995082518702656667543450209478190736735159828246316646911207751825638275102350892103462263073795095939869520998234814615541019717627755745887038241123762063798654782667646902436084620525624942711212491120281697482701974528101562131807518422762448894917986815873029031266749421168036012735128189543133260915074887524383513759409939661136601719427024371032946252756691532493232666035892324887691630040399370347020681858103313423140189518118834045473941276561987197009605931391605290139348056010434024529557799867091304857134513752503865593906793074191222854719004043010937716436874912568349969322188368890413948162083724627575614183377613587282714268763635252166920420578637401787855694959418586290746132925807531111464655594096751393864402921583703883425536050708425418179745467342670520003084752553310385312208481724087242651833896130757281058929722768931090275542090711170418327837859863543454910480852884272431911119556330591902680869680395482912232308402238064002478534641800725988145389918580419769280956749398215770918242312321861097004030490178549512575475478421671668601164450040402400707040130748844938909827985517491856551833127227547589690633360332175744135552542681046274649410786652352135815518662582772350288983377937931065340020833219435479317324768095397466316299707117684305541128480479507866128883769156156212651824146432869044409536422682105011475090674402140396698979219333672557602236515228970581148896308793641155513403408246505836835787858143116967709735745814572039277660694534571595413044033392932372336058777965654480476358965294770474265456854081581174548878130866726082262181231109107528105612596896777225668087454677293413033598827691444918634283137206912159154611713327761082168487295346293119541058977204097776864353293511548416540739123276914108501345617269468610697642284423295421396065266561335073869177574531769050045254268734372240106523974114307757523447413976439731981265543227612784939429240026957435929278774121563330296192644049531409592177358465779514886476739695591699806817611533075650155678763627133618144997882491723496708733193453829328200142828520574882625929782605238083630363289000975549177921234476254292492363914917724512329532558220782274993836315733473263941875932880269298657624390389000273868715926052939392653585568475716057142880613552734903673512610038062187355773001780028457995682512068934735036514796803215783974753509772208346677343499655375647063883843844496775293182109296485960503408415490902236265912059781206631712306382947195957650568486590801975705582469408293499979703321419181121291865622372949510291261717172736163237824334966952952546648398405692486097103285529521722987136793904574741844529520785200683488675954917932542443860665429596539041801980253060764072029374361150090713899350788562652072872014207827857301695264662646090064960337742335054925197514933764815493621720626349901313636819995785445203037397098057005358038799465505498332497669904420343160597184544273221692121373247885973945524898035642552748569910014683401693751093443497943585412511961360631729149433895991907732981296112269227958132163256893557439433221581160385730851475550377806880853834784764440560875449666856008724230782494127481827597173911235036868491715999914612322469595463014688884202951867909311648494108232629720932998497321032040466718612952492785881001826600961735016867626641831979645506215063301424187531579125467534787664224867482121769183803680250848740998643482972497358089017187555001542429881685932184291657626738130010600580660328693825954464051667088842920336548626735121649436385710064561837699632472893975530732111086704575673935684983639577140845582039308954776242976214668834274011883559972930534465649025384610737693402103176808542890324690415214889575942614181977503583778546962325592686496081972565748635190092025125131638339277178369767715645002572944579221803454715686133842354253685196834939539420045391719502733967507357016145232530243821555294031174232866062514468325840566980825203283545293240149280104418433933541940754166214630212954042229969946623579115715275186972752326992617911373096939234409332404693014300738489366069557722217639175846596900638345441977150556716255394132343952185422435128544819966173112374126911737159364066407895065739285721720304823183965767957383684006479954446959721205851096793006612733371862740694211098825056805968552596161670655678927366792034296267692735218890742259558216719090937888856215779489018703088384276278696375422118846149876430003013728711802758578038587815784362994767140991399106823429788191047683372927439080957273385520327132882026823238172257020747073596606717430956698972487633160031596612154481717478943542261521217332348422711564544461105807046498751407191276447439232342703328992748918237927905708650224576385655863880870519621127324091144178680753501906329055162263826137390454001257585924619813857406162819242799588452761843517164528516417586196904526063271546211074591486783492908776592697041562421793471400494551386660030210999880533958145067722274102049985429870887279082078175576470214768974343437809115617543428759096224861421507109616703576302680906879278990125420011369020719550548415524854359825218041892393552334036378708692313189575191788904680610893388727327933194442886009927914602815329860533740280742047036298787816845387472887931551240900587229551389340132863870020574191030630562625501204527530106893747519156775021638891032430887802498024139060694565569837205835047958642099543782509262657063451062474681703599109142226544645930991045109556894991376471443516040563564406563366786020603742358670756127713469891239206053829166599846296214486559879928937945816458141514004233944845637988714091686448805885818330614621237204614851082377542168389511121181195899904255424981946993136513092287892312378742092698792199107170192573762419728718462823778506572247060042435960418091017537564716289635175796036848804022182316057589958715797035378357967259791379324936542580774241694759498432505918930893321642895926776855940938273461001777367006025852717138169228198986964026665631057413661970001018364907424806016547357789225395893866345840886881735354291349089927764339529294897633646163200578160014045603564214093177609012960471838268477595854320681184523165787790311951038267232344068147020156277986713582362781450853215765023868065745682836537750097829319520685635062589025503760994985584044931063985609948603659549240269825855344203608999575194888323428435172479363507716207640470749156336055787823060671655979394085011771154316667585535943071758664767746685692645365810396862677339553956947718776565991474780417924738313010916387394572012397887793939453004529208183562213388596049573588937520867490962883501374571509524488644045080811499753992417851392019574252989362543582639314241282846297982999729980482970006873381202787172767782606243267656460381589042818218941966651519876333867856942548100517178497918682934685664431138810501936486941868140446679091159798574915389618690275863153819245802460072348890506411605509730579685228198903212054440874093807853762588644390405693663974710822342703428775759593014457819977101302642283645419241442424571135186076437443899260461716884390611002533070567327311891981765578759948411279805822355179128540753244788372606099819447486696565898105948672693505603569412246270320011724731808052378210416289733271789465576618117606465985637620302272772944232515516877656757718117550371115170416657126210994294265241788647376497180744365982478463568424614822241361270793338094507230973564583727119828265606204581699993773176601587129109003374260138348719783424709742625414384460361618550628542890569028364317573312751048339854339832661505947464760177904459881182921520263857750887738199310901997995563736188792141272984734184743943817036216875485788822184506980362835274872956123012965088500068147417949736882964964227647640404379151728911409530402913785769940982973365178864167829222827574486685805303048830457781546499121841356577965464848972382301815904032297506171613375537393699618933696557157011728642375572866866806937081643817872546899658348470246516772488481404463233261618769924801516269197243727237712778273672470115816997293949254510169346483014784257925355887221717210129467232817367103206698325925273566778347548953612474406874045468325667363643791133541551520501114231114688194665634530749230771266731573461702478774486512309114572062596622866865863391681143522707687112489268426588901308071588967121195013573872407472213725122465290420808034002145689499441213149840407360340715491334131641469882587309695804492046527865569283823518350124963421207694390041444463449252284836704386637076947159774920767028930430150132673901141977201954047344398812578833606086955046900219775928998831262290243300413738771263202143685738765194582255356818324624794588428152835853604779605593104505838435999428747642607853106099586960130243088208947440004307439862427617296534871606734100753102900621229989533867999306489813061378233397422660982841361415672846295244431091567804113461881687106201090763195490744842066168434700798580238823122938747433746521787319475713960770862638829270941839560037825237006720814942187734863201926207686203119042245687416903356924930091425004541350610507534193384535076135368831226164336343179084146491495889707672716995347744709465412477205893847492236334213396659397433911947551892586681656230096586809233611286883913920443476048922373470583159429642145558466931457661802862631365610371276335792481404892587207394220163808722054337123346948175795195049852003351519136771951388577397486348189289538475710805458750393050511663055147290412508512199824449092445804207870751897963456205688504710458660745369094359150248958837332314551728648401527696426515428742083161102358502640198908987838978454931087259928390364436842749265831094874234562897430198623887030573000512651833311877316504992132529614318103470766052179342946816633510066504271656952316309265715591198084542640365047401246044416056476989968710163772945952055041581425344399345628488630939047234236027514746827388512538624879065524203695460410428222662188333636178731079745472014707149311682485016498502718900785723287506592681509218072029776312663771978136207577738577319742944268362191419974382455302512946411259856037341548428732425607597147109568422533645002504585432758178858254451045420307828792903631982119129823942624941557952333723095790450616502128831130882561136792974059815145220243223206033551579301145797951929750468932714616471365174077674589100092030252203584299314711874025854688552910344655969637591973055072919522046782704261696652642086033079673146206906138294061522312066610790679366631093801700749283745502378782904323433099890719009498033034876425074899926950677811499429785841694610807682063710454257473181084497027312495114777620527554087539915607282767412067380961057647660060915031416264540754602372450068749169209659274199141685304353421337743902525979044583165155271332326823304410208813597450438595455162745633531490373631257915441438550783693720508715298088124312487784620295867657635929145504175865402060728079463180043787350826524580989273283805323251569496729077502959872395260287334666403663534771025655295151372504960953262409811243114525083627490193552124273684271601806012240281589966500300428680016835689872651545795353762431981129939234615965012785753113422151214158392186911631898272975382136875685411178224451768906624040270446102819109617594895223005097032153139353396933833673744565967290953184164236270594677224209055831648147583455189265643177663864845769796719900743877933876534645405587921262575429831854582692820979030942228770559045756466514594695429956627571918488759149361720366638715745094028084149582714216829664312382001918808981628883352183581353596309952483160307209717140152004334676146070421269153307347463803319879904173540664064469218751400673308772838631624322354743965458457411386872238236845346831888094575524834197051424923103761444668675352089354862388512950308085004348235085179584126139480663654552602092065150057528005755842714427858645368387763520297560647148880655088515975682312259210930586223435610788438608265839464656497618334123724353276389471725679681326319797393505253391465054391083956244781916763629802016214098015741308145188948734280076615973353439676699738086988151475863729810424055134087547861339956577112203832487328273596403038949953847049725413008775090316766737838540008409508437286786772776686302744930202579172400639508617688844188796108124038958756113974641975243035686531089132685757635304913457545677155442829481146853403794281702250912877708108995780177843019373233606937128305978918635695504398301527288654788876275664113708976717166506289539962275765899635709496250208712722807196841776681057279496991266198598106769452514215944252757614364117090072495535586565906082963311117461147987288122716095857720256830388389344268974135010950748744069813139215860903089066730767701606053109008516598983649626496380149672403773664233496017185177788693749930257979780733357312419972334710069341350871404755236025683866523653666870018665445374204057167978358402071000517095587055388512794191696902011255100057141402265335701131182812357040017933888092702903549794124016936070446171896963371303457998931345454076629060124482600502559762679671022877591001377522463141492577903356512263804474795345589695872085247199288454593498481688592708254737883849679732421918994676762466738825485984477227495525131964119021876823224462192906781714450930203287597951376322399657196656284204638980768380335182592774666281840477086253808353295587620013015470002448040561268481103172792267842880756197553270311562320874053424244987596859201821862471442218171846887611724000396336425821460898364505485329058874587456269501188842856026533781814585107538970041517314394898044848557929441494695502049200967651496548541149569336348737230584602223454048543141094758481909571582006394478762330540071487359799732915431533640762624401882569284812562462464149267818822724104315680916444338444695603301446468118804576485920633764997845354799915857219744879576856414501250566166336333761601737594537588225408977298761859604782875576843369836729424009622307731345753410824678747554089302672695971039489000980172189832496164334495059103938158622661283434923363466501881498900203817675935052111764507559319200500132775722685920488874355752805570053871308961492922134502407460122000324502481414891966400412314901901596399431574914733789296885732456312470382651316246676883447523838541685008396662437699207926613162706896578217043298516364930864521429600900032554249951255283344946567547299628515288479795926135186233862373614509819421945520900361699138780794459863725794767737515769320860973675940421372957986831964616137850632640309483892941532707790045650728071945690665048002409661306196133629040644673068768776424509896714054715818062906648370203756633714579374819170541755768043278745401529138017511955414132637298347136686686667969822905865467159867869842531938822662032101610208251017877333875991726739185541639240666111794491292958084927593781966396876767780172525115177533579107347134624991601496433631322187367578445652532612735013525425553334006463157676820890292409339828435760637103988162752521052919776353060036084279791465490122973318465980759658968674266142706867783115732821824923150293474659403085284127000474744669841755545838375363634002868438483574224453662909345518007837590419434612511931403417845532639114406891371098453141334220700804901555426793156681127385319377840059249385687496054541150285883093458901194796218807171724784987396413433058018322997820368533265529070277837663868733616869298291476838604352687027718276248244619599818355879471924028697287244873158699736798118925506203183864492143127703460199082398837050956687204272516737562370881504143789741153549681214309390253422683891848807068898715311749101340728408739449322741259538887361260528531543245348748177863342128975304353963884965971844627874329352780333752156203307822243730709832068219149780288208983334733206853058885499176485883342531804622523363511516657333059039652943436724858477169540673908042821144238053854512180996022547033377234947891739195345226892203215105535507811352753100978096164382412254294053357693068225837155798915057382293837716153940886407196348162942269775996492076832669496417910227874611214538906968262936487117055035155879775024913161553904739669756071491347036310273685064103822166620738540979950340154934227571261235720772341621477915757198201749753270032130573161279617961292038653005155748735774378598001472082838790013185051191906886686066698492536634910917372851064112785668455781068091472860691947686657263708773831157879523658800286757309376016342706439054002177256585966737051876398403479451145852623045500626753598846626487786335593972132667851095738679599260298143403692637956485016850521206133426768652384451402209576631072654322612807603303500449613374181510648191997376885664782464854074608282890118574638859408690047584673627888080578367582780322926062325269941352210104282806461570891974887568290428551038613584665749557970897525980338717713188645864170765349364901145231630607314776374426460308526382422780667286425979497029490683498616283552450317232860260543090347403352073159055281111724670892602659487116472008166754867986624255216325317599064848082740973566986140203466863995962230308681402567260635554375765130591037535336335280447855787094911772235406666448924809304291277128559184633950513971853562187451664748845554939059336957520995270768336024503428790440741411265452259435532843373825315641600750722248530401721935347448288289968022761827922000246211735446634558389612610405423280366259509212094210245671887767648360557419656571020985969139832492242286862527799435105697798236365862829947748909941183327638334816368906242265706904519001808090278897039291055541277432185402476599585775430414196692340828873175218507645729935672726807650540671861235678444654856085605074687983387536461470528097403189206795720948607770263822580754314784734170796026990903500114615009935013366738925040892692833976730527409635394754352898457263017302759805863799737981208562891033942075530523106033247551162546261147743146369130545038059257499840253565628306752573174513212919637795481914350373420454674586708466840919842051024681409267336780292009907942056342944507162387210339850655788802958321205982689873616865383047735964194719920077637517026784008046187282323134925691618666267304198981971365158129623580023493734818053088121658460873530258751360564808153747223330185402556006067858774318703753423925728627073129580008121293558867221127569319886842499831757584222664102254564330778271238227155917504628271197112750864931761868960700200641130376941307322331052392474763815032642079542590566528172284091641003572585177784420536432589977562129808513863176034416868241530487990787665292333651081384580675623244836806085252508407127267958409708865252764615149555103692828633612348029419451336002241229278332018924011393228983627311158244921688158011659121024629539208208745011153264043580011811554600644110178428002875223224812173446273542555559379664277045834980752244792351740215191333610870792238964278065601192113446437709617842994680904594963926422467266153219618266930931241245600090034211457657019741834120354261726039843786876429958257527828515918555203877033021540777106448241198030313661572790209639802849696387305613187432358463615506510748446972218662199022336157478680855522496145708059644298367946035075484247257462719639641064105005398836022264130334568868660064754136308538684283824143632179313118938102742558089834004500745642175505219084033740076057103788186466095702156755510128652394685068680326184882457917970161063932111986094195185072127370155031494334784975675328631688937055531192947496217489028335931506195090669240595877048486183277879584482341877562367306456515653555126474978428619197808517750700688722117230561650850021032221177659311818397116460193234311946452920023375087410971518670343346920055425450582385429108451464023024999034301626928564731830841465129549641432287332031835495247017166028985246119297108454114871212588619249065014711658993517637779398403737735597396268342061328822997475519170539037721157998051521489783696157742864048559092907457759584652402208347546006005410217519908640058701470220231665866007179365896569820346938025455702584113557253674988598039074068369088394549725421846341512136653753365074646863695418853975874494514483749036435478109811251314889472888650816018197449306425352476911576135619682865809748652923627621825594606552752695615017665609405565341956030742200832509722692266905387865144482765138775646294891115061231098196090335683385554995420569365111725006417719683592859949408956470889265584504469711980757726602920863102493526056491575364068818445903745580196602198463272312404599818176547984583597725755022603620939015205001599355790745261559171549937727850269460004675239040409984126370521521968295018588075493838791761305126675721277972282714614894259369175591179109396824470483773049535669257324502354991562304999328291386035132768634184103711242350245657809663795279757701171887306948663813892426162654696567126410755174233985852064557099783151837092677634551683040602989675472714602767358871743615127839216405490338099217426261626148395471410107509468980275527307437759502518328034424214687089963268650311765243646470960817309469298411502540543212187360934385558254858432729337409922772052532420261499437724599187328446049837142949089576580242321371854621232458684242428548837887242068294295254838128190772978025519453975003707667499463734754773977072542288975997189052756265014280420360299465657215417379351761703626046728168490610861487042789828483494897384756230637849248426557423935113550679895149677862332756025640464341135437457021470800150161327752747038249333290184240413506517562004908540098076103068053899886380211661918248945415567401376192709304678741093184052690508219322794131373831053820315570971360559031618785468575274567269529731588262213666331123999734778780055753115854504232988154929067099545857326517822935771390229976052110010330849870962234095516747063414602478368257598590122692145304676994665038895909080129875428439815826016835256206362154990738717128288319277369202528224848661012150866398051736165245684759065805743481855433491073925603073138594802655039304617685692224194718151944139564687249277652079574471294478397587690759221755695028174645167086831129313583471009022025235497330981431557934983232462737524115060077338575749719353951819995547393075251199642383431557336382958853482234470578517928392132946453543129862918283896420657841293509894915756339427305079039251360743101172840347191636163075948286257055742421369390312126870534533925657851158532562972289720931143120961622445552537562666593603188266828354881779318342443855068205383874830573330453654850394156479356579968251415483599416848325836841247647219159158414903081859740994337685497898950314928237380600196770694990181005165974976284845600677766867804805870177343699313357754342846159164696393658043950173488665721734423839989852057614699591639681822535289584889422594720828863206315411516867843423141795524404243474363263133950266065202069988464720953192055383045050278240073984876147426880648259522553356491568998188488923788575998605814363980175465674984766152649893481473974800099193341439150086729744347442174378791669940262705139845213593243437741104586198317476185860746846299697251619866366553148900700198657222797859087325200567299078577287113833887735997162811071226824792968000529122633159718774668485289285167983595787253106827701825219155030003446421026475613943744446705157631635430647202375635289988144347112030470151100020925438191241242630286158366567255405099224633583209320646588229729086040154048919107814647869677339662724825953707780923352288286687935717879284839445471511963095399579410450007733684956462191072740907059330028415139441476190886827865324404064122801665386352477937765429322592954398175983784487627626980235496287406152172329558373153135731456345098506163974100915748085308609180649371227453814130859130880708949578525537292746933258442137912227654815387361271505706658729120009227425685734529899999941155628810336373668445701322286434132769275966113178379107687425940650053715925549074253885328960990031806666873732708045880061987237634478108854803196770763530980756088261463953624935524502403817175930247672508025803597200105997931093542679007853256613505822060522285232867092309020360158635720666493339352877489641143273784696999901948693608031366180806474060222025937141960522605414935047381545223257471872213100620050088744631631797163860340304738919397147555002083135337047647161472051436669909031253448851920810992347886107542667619274656954877157765005773796887698336711821720976764538388402143276005066286661194862414476110022276920824088818743880455805992805220194255470508434885792869315024054327518924880685244047263441740970441806880693402339181070241182366870346885727403079588410595929156711783409823078065570847369128230255127919813287464803767120769229023194327057312506579355646037859928101072344540084614366074756342877629895776017232562288790510479127318470352407730354819785522858417841596636986391099664991568361173522864355200673414224232758532375502344889675606622497227449561771991501144070479157609000149973577818844101506883649610348539713661129773320677893659628869959133481186930962606205220731592357060513658920065821142813885765166302461205222766478828174623922172363307444200719604333262656591092192692957986135303179232419680344777810146918941617640171374038224091891726841030940837926228627826764541916583221359719169157048226442079264818111251156556935398210874429833036299135699813747129973798422288229499356854114146202249119149841444063740069421108868217701256061822011351404030259721728246332713966141666438550192403822933689488453408966322394447765329028607994483420064890433547111502106426708032453743883665690483016169081946094442382974201344490265576621632227301540513576797232459015128302413536005471380690890060225102865367272695124895209510791286735444634120040132115460427595831088908452841151876401952028817506212813920138147411014144522599228952788720223995206468523157927870031838138861865484828859332601586959150508319829496361233741844918647835022400352438204015884405105665985829497748060911650401065488811180682293769269616101068682324713280109143602256862356448383616310659869482329399870364078776435120831278118466267223636823235893562201720588876184645536747509319880962901045548391105887591561511604185712573113124685633691654090579210980076487826573647530339407436794301011571309803241780567281190318951653311277667179312338019777506290442537985831478341946076379424382610160057316720348803319657499248593997180922690998824158779948261655378445198448168606264627705491542451716347461045862462462127978960934369626585596467610693165879302450527146897261181043130925105640464959683282489131631026977861351423026664408158389452817300341872894326833310196044898268643381462434576788833896331970760083785370588400609768556506116749157887075119857227081770240780040456225687108872931596304210989442767724717594582121958324233464935671406582054052424985846811177087498302757697105930440811092812420833376614662852748910340288943268234413973035429608618073518810776662848806739010020482462544926903899550843504549143757228104398613260724484129752499339146615549726559218717427169140028045221799188300424596794491306044879330209579798237589191648129803290586871782037228632017200370597661931147156555660827569160646506031504020946130086237622934086161375629808008758041509153195716986720240190593421022770423820375890037656888586674244023923204764286584013516640041769396764099541752298312271219365137273559486420557191196494456129798234230393665909281344642900511074395475421579027188179943655302628367196776274330406073481116066719119705626409468872655931668408188545887553698252633717282055721589053247271754029934305875731739610139347075260286008486597213020286505422896319374915667662359690403383351940716300727717479869742270484903607267730098107239285934726605764581530763387535325941294427949601364408235866272629425480918598557157801954031492402125165159899646176479692977857916761898902248209413564290677738713656346025101238404172243367341722660203534366084541617908535639675276447699987430496993687866346599382585088964591115097614756881116815031797909125241975115675740136875984072857172313523599926133785049490764900103005829359834117185367933579710506731816938439726686806429193699552951889512562061155717190866001657556698155704604682194079057481549599192823340853541499444287100677823370399931778106316056585303089741110623282924295430312888918408483454309914450296165743728643423592683795814660223756502612676892660648756670015102597223752923094924106751321228738583795277891260818584403794127003357106524371205837561988097496280001280762254537028268542219708604070603741734002329141996465051491569042886038259287380960615889809814557243237019015157624074742178002194503241989651950104436966656863295033225575616804385247822101569060735735398302731586672704217151379920669405490247236922640931882001122230407657696478656625256452532495016866158974401755392244131302476516581972654600259868273390013652334236797711455537702049487517090404627863164059515431516030158818337647545682983860299182417936989284918171631184279387613989849172741010022349347438903319079501729455851242984133731434505972083100799458552985576893186786976842316900837716590939162406654558156551606832866990921505028188010687395062840600753929800404672107279845232909260808511175295573389215593490971870844527462789336061777597048457086824849347128315077605667103798159636166097138643955363197659264585284223814442073141410038496543060112514261354079411527342072548138506780249782109195273128898051714656649619963769779122972075896350821941440239181376449282172465160137560415840266533675240503822674383508888988677610926885388406378069087252331315798015477179140307303837949594393677859717125065362095657377837397538094334121399720884014924844658617451171203632965925050934294622758325214617354887444236658004464386293755862342787416503711173627811380702133352432118369935849574184515480047190435328203477034248044499793238683051104848167126366671637114404104996849277432832001857785718944533640051580507966628010424657787395936294970736959993669381174835556127367791481700367059964279527092733890181017049849182300159501516675854901424090274232310173191204162390020007203224009429143992249391213512835562951900996287721646656610852827507947916701779188608116394441106282948052308971624731505819224302771622301658897459212012689417291660801148220107798004654554538644075836717495271759550993762648811309611598611277052065651824326880673786365017705286593622001346949320334204986154259087380922495647901447878942299822140173264952373542778006993091831524541581635741165097037635904406013639555591332686054009103946586208568186910325689647435676023177449199804091194079359148467712680961771996100851672923721043848886192552716213361094481687121149778794588411460146432234562914181062401127910663139205033975332273567573559613732226184648447018252670834985599664209554346452532573175037377750895086768027920842842547267710301030373775970273111374780131900602071004123777644628972894687677938797077468314527657375959103181702171075756425010756090887863607242211217890409147902720286028120066012727455982285488429652835129098603402472362149334807418952566237425271620336453808418041089357915354899478686245938447609150416959496629661393293677706985874384255802803956821194892461273057806930610459824089706938748635199530892596580521169137771462884495342562445856266516503060501723223485724755146988405546649640609924981523866772586337871991321211360220124049564900625364130724606413412149814944797609160344081457764049194874937007626868294325131880152206030253886642180286573128514102219686460652016462916506488472207849491738495628406597424767142247514528549900183209315277528968610129494020690356112979716654052111425957733433368510839904117751941913390487339149750516122424472186624776206910328441974396541496588853615271995295512053091250861759802449371505166480232590488147480092948373059078029167896096396604067344919361386516026782976364494695985230028883578353172187680756075915197734710787198966416741036929423111930637766496688338262427327706395690343078317276246616879466355833970171152311751987157589430431639588025482816862773325696774871842942649922000211531065222371209667681206952759831505920281992021028595672869710708234301782642443637808772010405308766580263904305386442167630036526678677054954309988296695821084309497475746934488327188994365091345321712074260650320006568573251525925320364264228220535478210051191414054319754386848208071995690851981521543075170846600705567116778597872648080364573567887261324166412318269334781755270775723528187543301992161307117175080865868162594802215963492614737753771344029657962787745794625958415391655551337701356084210973367487386615881241513638494874207384413881051651982991943705773873453810367449234378265401160681133762262843351266582700646442934385206094342331196413959528992800731765179509371802144959050678270254634591300173290512625404320048729694488122603531709117838263297219455501978535475990403024032801931676366012748445789078650962566062180759787137376395660123239926930087271346972185735299408187080145969599698085532202546486277896164609934684382873332178096308958904438276661255084591990372069316422692531821711885642142080455194274403031952438408335688168168648450429755172429686430141968749951008631028479563633591113209236052210554379288305068388861112402210573458153542413950269047783632447949868314862673300923711455940263082002484863222604745039100869777885659980329319060227372168114850270889022902928949047096032974857193828752978114778418901370417649718378444154319613895654478725024016801609918131408632919232005260369486432615257152499218540266020555586587502662982550605514578856619275349733658828395695159489706432984127387305096119725025823607871426944462281225931381694094718807542626830378757549194316271366868649269149878336697572812160128553054661134262970974205354185117060497415821420979336245882672476212249527517390524661209676299918056720247288453028277128061228193128376428762381556635894125652631673434239360041889079818557305742704856479845776796174126672271833187851518379023630420516857647004027907872228966219648040677017286127130473033655430094188298205961431658372203977198114065912954841850270976668575432163409749841737541668365732506497458068449976171969128855592976950802100164423614586425012691458845182648160820335976634848473717124888888535681947945388080427930889245500230490701773958032273959869629408208008225520897070814763692629505680306807057957290912311682565468970660263209406987953721903009457919160827936993444273801210503339457300043844888046567495803450795129742516025975969540942308322368469517599311980356643534566772190155311453437914372594488418848600492732259710471117636963657276573801581694822488373339589062744809566894651147149547624176057088402353448814317450818414317632248852054072240800925839097439298187639775725510483708514497640269748842198709055684385026328920520770958971754782697439347843651566383074680090334824955115093434823938349358104263886115849233176659534680021132088621019196005365556956760964020254213083709599835870984008540583172778126605073292623756510277774957988434806348722535732507552878504446591664510185471034549244201433370545593107675782916170528246929085136793969356436388778821204561935821091330761931434431398656048424392760210214631282855679677955591532766996622223672703866740954937254467464914787495325463435362999211299496016851334704111879885127074771962545158598013449225030184516474529180116829792812407529703701430976428660830020096179848914500550518254775394492165796527802806056350012493231133347848679749574096633894412015590416361003602761145313762538579514408534233472189782656995124399740078767508094878033611733444930561192952034281871057112484620417905666082440963977901141163830738480376324580668920353982533854840563779606581444945415977203343058795908133646336378448125876374983397139039912442046362593936515903529768906506913308642835942180672391440929864451129899147099417809574008878955642760189723965083416161721409387991022597954724740605451227254916343538036777609818172359105553632571323945573551429779511961963302564029115505112036282812832583587095893227380015913050660242460010844830629449199806097207381904298323656413407208570136636858910836779885795966756174206505949899955920424580446001241692877400948343213948168845840339316647315662947709791486675613504841113527627812530960617034795130849855610396783514186852719949849468518202375403501863063801035440133975159894698055599352610738034334683380005795993906715896691817681626518089637407511208277059039390394981213769507241576629388370675910701066837618693523319147975978052658931958423245384670880260112781076349740018059115686837111723251897501626483974649360187279073409585670932007461805205425236155092990749459311015104432598700295388957632873813289873450867950423739240122312189853236924147906448471317149441415207846855268230579921968446166461223335076720608803455502363371317220858413231869230167298723092494707944908850914109657632166346990981846389827595051301954097754235064916308856945331570877704673631676793627396290144948232885779245398091693005635104922891945278226768997520707623694139711132322043529761556790554374283875288043309229185894987424041500223506215758746090753171893044012400338759435123936780000826667726408878006965712435250360105227943398412993608501829872590975437136150111940760434012654193984410381855176037920141761624387223568756190777002973250313251841345343419988121296969678264123469240461151373331770311595756651475628359699122431195696178322318852691116672050069669707610138087631947269603153811232296293822726124821618213381796252801663882469102014540120500906340540736510543077334685225240981959245114562156740844505324529589765840002899517550287045094368359797475381054837768320943694119791429083690583195506675471739190618052198199784610594832751143503222272790117620464260218320951926083898287304676638758235894394400020896426033961501027361170074660249715231655740860972128415086442351471637585098560593795153355395217401527122378080825221216209445012504102807293525660489390297423934819168140384408902426854515544333585733339543581514532228333819710742871266338138615482284180277652141231192020429314336084708570477076682683019918643297283444712342700324411710264621728057417352234211258602773516732523230827461436453772109885827038520214068629343993169835884899399839177840498673389646344797670881538238650463337619674748692315034637678457821778130432110583554093983238959282490683987032243188118268031134339315035994161555160281266510051791398975550459377503190310340157917927714390540962354740767451393306138531255356364411382244633403114069974883918050023627440853967523072525702906520665181042596757420937977482943207778778848786119123860829023618917266669799051986101081887835345819806725229792610751069421671419151322971571614609158739968885817020446378791330677442794944947501345235069663615768808149837958958405225009164793078238594980469423580235295979812682896858059328493071182288201572025680876624859953851567533743610120938581945136443453623608538380149996460954031339032578947914090268508704559274003169962713511977767515096978353522052906458279055269717009109343691586513012422559630214988307119013062596727005171998973897694472255974909667824373571270229250370759282622448293221316490660293553026741895215839649656237497614878366952701184383610349333543987528263350469481392411201901879358088283508974128094118940993484905431986113476026265022715266406211104137456976428235485113417814558990407778121513115693379753368958057730015327913278843080795772130854869575222017013911869552435971636600852546897275995578222604165892480534890601810353695317149746478366902660912430529527419783174883674903027270093428122275002500765728517580108275002918123292060119382065677288312873911237699790741427336029757689417930628441188655300793175923399381898927545334239199306090817453083687883000896166416705143853081886845541603741561359547934047547610525287607588146773835365585182286921352158007932195685298654333595006908841020947567973106737871805797333380147364708447722249814424973524052498805154603943895815871849338426849512015621048372641149245201292454685303397960392658963471325695008376297976198527736498744963070909042465903817530120269693563790995154179036072409448153933546613398450434945165739954539879896770417764551713914709006012088802281873893408479948519806253938182009125894714167807046610857943301460500788895124054318314902789409386206232993560028799041183146250474694334604383235684007913848381773238455690227077277049038777042783809170076292745623886831711228943806910092183440722489749326330706630460826884289988493091425242163540733621406408787119279448931124118968768723618242451051938099610766557705642212564663132344113507891192391027054863663709950703901060232844157472573973630886401491720988408040639731813159454308649464083338544886035196948004472209242154727099548089793796213932619392256056811933560352274344575745582449314837089646712547485166247250085102164274706441552428165398231482734684030971036828263659367810645749291765979744810554756676535456280395943357998101771407171045527412859790525881092478655823733230340396352476233747721700561306418149463692436707644449983656433099018523965534848102615809798863204264181600884530674288703584266225233025653986714248370095468329232174283703541625691899622782889302447211606749413232083436603167718413832121459739226204632339551168859391035533066181032289885856599304509905941184613581483283311980770974529552732189694777973182551481387979147659539941822425734701241925250295703901292682922202022539830710600763472647945102262004550549983109633092042202764247648914233449302302185985584947803369337925032763247000330416728457226831128551510945223462308713857619002181395542287386234723990321227684525178550227387031857111788417519621903509329055415067610173892421208408918866660862551546351618493691466360236130064777550694403123687543803084297873236294731738766343092812878407166652527041060126277957769205118715296083437352067571006734081290137884138158065299454796277210205976613259925607752126296251211264805273965355971167730639182370308015962505566921848800287350714248775873712867219057448747914733240304381839194268655934696194480277195691262020508523181562070007361627358428564637513878736311663281972997231895146017388005505374086596435105191597541974230101593342615997333147975798708845834391656497616871338428851035421535006477709284959999622427934060932149161604524788981719990078839494469801662007522900280442647991520153003678928551177144853186070045872591244210751119191146617798454498145038772682901741907268736556590473576473201942418486949868913019708162083928385094322252239060893556847202196090538399686345253132289897253810603132909297881144749069888814824156385044781291040922970867925000780252931625638128337269963141462896675364274650732874129139556812606342124882744369602138437659077755144272851673235705938316641977309781750531234199808319551910337953930849273146115217837788387987574065851784545232758199160140516395035502779794445088212916580426848452304791604859612908241290895577563450568694052266754934985201391267931819881503651414144544021426486803902699686368958747619034087095607787333428097477509302095318034394710909328743104375865217925683585329004299988737269894117072753775542291113752662828289651857906730600440840835836941310412707645699381024650556260020228618064016233088421227421298536976692513326253798992924771253145405344117761902849546436391577308491723717131441445446740485140701280795798831310755908719615683254074910630876066445747960665619251586443450629395014043262432292563480100941013228660039098735853304355867356340925479253064855938744573481219237092665418644122495595332341131797378381396462943964627866547644683695838339620642640802529712773586154655453684213747515362702538086706592453535460170584294375351644000229146431040528610036492522580710531601366525046788789503717028051636997540896877452817991851968331618043806250773420095973432339889336688914863377589315541006080152664677113472972839721410778093000405421864948334426828708050818948246364512631768772611878297702754218809161971247437297351890777255773502364378593428327623825738440141902186987343527030386172075675573006798909240321201869103100873475053020344939138370668021860429591779328683482067603627379259976304088204912706459693966066918855912175638408640257774841446909387216823192334695246286076978342326802748381312816974953981856898336182338341292155802883042687023807673786502859705696963538004429867792782300994513165989164014512157271884368877650603680657153617193127005043851681346472411729942127412426711192473499108015765789857248189346314422232721764920520544054323421315171424293719497442003226715602640036037471452403110104858137803329927791987884836762130653470247830410841969676725577305808809340299242798741401154984254523189184533134803324488356790384755047042996863996905675418227957659523475641480924581057675354449659601535509283123181347828829525972174353870028503213275706576258262587906033854590451092880763579567569979594678980130065832017763718286074796488416989578170837552928020223279259520830559542314531003093649505249830918983318818500200670328334249067517879681497447388579493384799472291815212699617481717936738105437029480727473745344891568670598226798682117515586946108465549474774270086882512454385685354632749148708042288615479553617685888899988188466305996485129219947474331143379768215532718212304295603743313876872607824219987814100800521803601207223600600320490492721921804588000673633275658367768754940991668472034583514595782953320202731627369262505577057020644291974450874248680890483627456464214059918076501451513817814042213840662886739041434948109423390970743407284029167419259051052486992231095301673187366565724841540905143991317801488034224827936742227128015233174525424842039817379471680564722496617962757093222118189929479439972027082524658890104385016489408174233635835432836820028354394315416326005185322093240843072482696672713539550360504743984665806349725905963149274803457695286539101942067345177608464425079595765516387676770374478738687793476493753242094270747048553025733971148440719362425519513874850906907939643437159827933925830647589877116560838964880816936239022203060347675757800459677376194097010471061460655233971784652452620268993645856097302174679294065752122201903131317032206026708657402776376310061806052715152867548921217054935939957196898207815932196946487163318111860225664183395053672334631218204933981209183724334778838587431515376661518787179153363255735538548802415339974090136318728175839163288864261280428212311382947533186966518768599538851991844213209636190560722672537599229352286379314375336791762823025445940123255768487429573716120963485524513766120162973669816553495826795871105907648831517973173451349763332493628923675937872159036851098605608273660654437078626527386486547645993707403780668487143945287617027995585514302175721242737595569836481694187073235748246971849389371535561100357115752193467799545560413136347400483712069429652290561832128441070375684890925567864286512339199918363072227754851791134259891132898264899426492505556885036969112620984310355880247897609143851893574808775874824227586799480146907383181707360211315278375795268161368843210288664252298222082404136393285726843376921165727346231797250575651287046681118432938711306946457688719381388149358191217407469737316700889354067747928554321956782959580950780870904920179880793295013519219904323318455886652210896915751565944131233007742493024419620059327197247375367141759240348495619087296775091099359560913419485194271010286545259385179551491940131361069455375996699035271341898621996239751171242008438416486775345063470025658902288451779575238311300656688114853464822361540220889827685941178140469917995040837807209289545640431599420792481821860941907731773090499753980444438036890257212509879252984034623719949897413044909277976679394933312312169095441337236407265425032779826933365166428280587202478829070072666535689295873668607477520798247252623910043572786818614795676769668758582721318113036571587343926320721982832854671558578468900885265723036442583968123781169464820596479206686794568942142737008726757023619780938949247025882558672856488130034142607461594841045367688129106178424473228984992409309463186345912219913977697444781242591479655928442765580443491353235252015484310796642339482726613638790505904418873907584503169405488114450055395774934398895191727862640265678623980430791000163986171257322335707633387141895866468949816806724797353376123818689272409208721980053412236031046449863175587276937455336627260275139314125910515187089840162490881441304071046319757167106626905925213269442935495708590871212466834367356083391437504509338650281766816009931457116157388143776128289725357241138847424215277742966814936232157666929551644575402180688530111754031435461628550843452687624280239264751124346633422570661113178175018895834952909464304082652157706116233043642305458489995839894956020624079340439466398639786659308893560671202326889414879588911254849648971099269194553407375532456461381472920131304651011411989419058384083409466377781883048408838633230901085572337407853660031740679854071287790254588037275585968264405546286308256530970403953633533540753570683920797645828914333909142183430343321799196425415252676491956301416829062797472874483312309510449787978894732810806321991647897729086252106401138750984584977514361757123640152448893234000640000920472535767514711742216304823728581552751746676898906721416014366776331567271556866753159096617639287454984841937494769551292960218666085884074270359754328007661211738417723800891309202384781492184497416950658671013065088693188715680715434617741839077139192255460604047883699794735858972668787874148907963378863362043070154829360039895299870726632348630941986719624930439428581336961592879331063480528201683965054757169920054807938983478054384479454431589885857760629020607291418627412142533981821777958222797495184671056725108561335079176310352738791429503125079377749606129566936426368280525238546268308920125364649398292826277594640895908120064326348028949832526812266790670872742009928161101185400092622977437852030226870017173919106675522694540919047873346489814018700045905534800195186780606870748673227643849575601380425627773598545549660543441426724436619924104284517433335652428434173306211346887375253482589485271220817487233825282269800505245509694049174094977810542243610496053092905479086008709904067418259988778472056444332824154945717908963057689200999511126461174500532103573850256679969129195232138786849102869494070281053675029684976802638552971693255520216718203585021278229721031393711619135530600050567558534895086750566254993677360095222770940202703897948481070138841409375563669064921432425333572287879882956066300725402156813185143296634205888438282049788347846757336791070187085380890546301989694344104986844166135100253269132394491234679981593326268069711418942184783498565324177988596080689076137381416354228183255786060540015872140584166340843896959848271864745410009110327566451292778334070570961974531360963725892870375422287214486331069590906582893489358462489993013974399306246515872194224782150502895904219606004468255798501620323624196421067562462808648708402662819153063553076012955521827421198099036814418862544447742035013530630442391833266918980327308775129579419635165188921177347659204280718950341730976894921215971961301960027680835395968513225340372209350184872601704531236801213248931227490564154877473452722933174063719943651558011557150501531057478057468447945445174005796266246078849346784090942832770904248820195142498372751130951429546188094367343595348917745250222932064073732056747246063966198687643939057516428554662960195453613328544778612645259172562239990966871322703138622982780824995767965896691637042307303505863946945490764673097415609743775162170114863482249842857559362965409792478607346783673724228999136183779259992227477432317104303787804152404090004564250397716290668908864950039357325116105415364212821973421176725143556528726104654954229089148351071101409900172026056220712243802169096905342338008600157642474488664876070049936365891049254419789281177707596863339909288777745113151263296944257360521718549876387444222090900955206642465019179488267895730215479801928019237016812145230133747645675908824082363690359724671079458686362690529401837926900897904140326275490154855432157384163546795694113375522917336050337431042387273781435481808661978546337345467741441685345666671690741395567776077237838316568756042104458931053591244721418061732922978735884082157911858532465184095745303308304844200126110773440311117588217095087573525809700723777002903324413466693838026866847707076783774104753229569728860515312283704712264465590577678901479122653381993300866557778149566559661027234491505289861145891667532633435262937949462277917606101656725897701079117004013170156942897889551928901494087590122785331471800905838007938450271335150622787082538730000980462224310775581614465899175210622375340891833519167819367205961948769408833953684847895368468692495569468405261588478065479891117511020006781438232730032468841052551273791958651097321189353966340921072149211959905595976221535330231923639795286401925923231624916401004652279756507811367429815926863718467959301827714359499854548556584723808641909750984954762205831044083176365501288313133484065838336934105042697956166345909577266990576345440086448746406897917933567025752227923670677237036703092881691188004717452240465768138034041968520111233326620026967911894510276783490223174872409845918895115821158697610086873907495571775341100199108225058461271847435321078443113484032305807494792128894766596838810347238191045099074436138620170611485131764374417463975169486420375597255476833081415066733474585826296636434017160674304305715355911004262357177924024907721326555564041651132065711400231255988374122461062214323957264876289438547879684374302364423828724239630923366269550828367442100921009375570538179011838056002168723920795357279010383634617556805315313244246079023780525704113353882136685655725207783058945570931220574632951232459625401971185763549026790269709126396395108571552419786861721263208719987008751710330722140664877547801195945888763221949600498451967759957974370461231942405756412305488488373114603402044988532729762427398695237242460644231773003994444036635050488840739781160544224182467566018604100489470898405855696083661282593519886100211823504840479638602963509743283603908971866505167663398795282273343125699981914016312760097413191438394680119503552987724106801456142493352040044652346102676498989905443758752654116455104520359995623441098619462106906778168831103318008809215405471256348120800511161026138567387516202378210595659088500865533486284298558974168874509831609085144043711698590024521757372663659652340599687437062332483525989172834517381073241308021806214927095830112060527381384543940816540407608460944976298992179606427852976994294901321514148814225556348547922810027591500857283656586190137263775659881241490072625048466685299431821158362366879734965284183744809500678385342955175911889733370382381746258615116937955053438036650925136777599207700983457096271731716767149683109470227805889318020986157274988223954123801993044773704295106907496670370368795964923283767770747770505811777411447212168607704021047401005089306846735673021061206388965731076202776677321015677730081786719400802227933047335901011626389195192791182601520623887776367426720087859996146234033065713588854465232710928224256097174821462357298715645130221957436717380598450310476727299915819128518232437567429164398758876520864404533760875245019071459906589464649731015892787656631031098732321253590522243984701511441085582947009790686510299614372242257001566137419941894422406019026863607137448920017345831521155343909704032956769677589051159062717990301519231896767621641439099225669898031177088829058009441441353920108423303025592342210683143473366712970094456648898824899395435154638908025125639441244062948968628900186018830887376557714996435549153869715080987394932826293263196992924568734798854999722046546752365613136111922834208717111063338566905566536678132290368493164420538060399585850032321356243588520646638742706063976957133364594588699456973328277720706524843625412422140814882139780806476669198287836431976354026703385798307842465753146530318034695377008176980643936418567131116659238433138054645916934970176745105508000253060649827611733898475499422155977195766423536245828677176245708600679489046917790566862345888132366628692555815719219646033739799477805579604583677800604059437093918281901086372435646917344092464976638606350354930127299997251353650158870451008799357631898758153438947371959772333922421857928262603229445714892857163710285143519558377875265828937173403459106537467943172482907750748384101140371913262953290306995859399009471534329884518998298413636549845598991684955735559991267894066506591901720567755053518696043364184159028942409927714859921845922961106399618881562955571132733166023975638645808931509586674891926812070673949627382629689075038777880559656715094139804109892087313940793677737021582885230156777644305376103803076547442426007534724240579088619150780658464519110126431293741443416333595589313978748926402770405581913644250068771078287756701165825502387021495489642501843195775960831388417876366122075184078785892446935509305957376453230103003400647718213943649931762259272825900626028701436484258261802756419096344165222270273747545377908188848230222325751030640222089230168781197651201016029551074710616880452787923994627931823304156246085152152806400594586227244415266732568277675563478903229218216846254623973603292758972044095612629288455420840327608888976929348981604475863993183114811930617743120140042272285849151555544655617735473880223128221540570030687902094833994938250096118615215898079230228850353855969837765375336308964446704271409856970933571436169820780440892276003281694630626202741289898177085171612366878842027659085008568671529764589728261230673761493635515907463794641804816035067669068014068510984614471177057465655637078658343712114006177084104728841571707070918271412390653986001768718959931024791429317207740347359725820173736257304621442702402024398334422490401539219866231560856330945855060253246084595376977945487064525691229943439468292346600292263308783404942113012801453274025255263988270119409227572386420392676235645454081630029822737309012560704363668061534311982599722022306961262423491215282400634593198719184697144571961369076928662929087787225767783732958978062359012588694150298702394679162589014866129430213099842981737253741400738559249436091321044077408203877288736851097721654934402622573117336739275229815543696675238972675406640684262701835491334291658879638167532684809271585359738051369517088525459045664950216681811754690342304838116077681473951314806978524625889950494685731763924374335740663021928457889794412266729724251662525699172918456932846462785454957758515789845449586586864259355378611240423677376752199183465754300332528883207522033742212335001069181458854712431923386614014088024390614250110429645127395719813097503851478228335244838247404903243674304928038023151272713194655512438476599254537477798531828641573215530099401505858942744770251845368116489136325592676106344793870528991564275859616756320185715491209797927233181750312806838630598112684016067038048038278538744597053320066724409597581646246665364369952650646567542188321269183858395368905956691531376838525384059245016973600137318327244476657936948079257569704180946984627704691846523327432257115597422183486956990174953499969631127725944570905730871180329726496994796978680642600758148879237395855486416249598040402392335858740759723592276910392201657002151068634169062692822857513957878467433104650347909369793218556002875542634781325372600553337485887999390898527948156107216731192279234022444843887030506851106545640084372810348893276423583782925609466449614211210915833374274333558438129118400406053545885849820074434516712749833585654164294606160205399513360681908887837057543856426167155792435072170211781938560231141196874480961049746205789476725171571569671809467080544827095864814030390329671682509313216646610904041189252543877773605031730391774293760339885127037685185079484435400920230019958103975903500699225659906631554189343371732131256007810073698205426836388410855863463131620948989380242903878341552604353991558570486076258623735385575142973004647228137361633647762797943130677668782290307842189619008926988127131158146914211899201680611996087633193753944738153506371463742805544862905310421613688663852747069647446247365895992513658001028008016878577768715397580694627531248852848821074527234936740997223958872032272916656693516478790877121267985403580111043136778881111213130423006117874921818899449833573481289359673725808375423331066991525416015334373162956941615961234550322701922468295683991432674727335826585459661633434970180158951240876938424151558263986746702894588513139840525238693628181163098882014843275636479815371572541439051968872015364639095165271154590130074969548331601293922617218215350928394014703698654519120023507693627437182761713688308457903658859292142888766091372022255225934294755974569417093647575933555798033389859955712628588092263648977182766571949548882118555233572853422904191185147989584462551827499029242978141348688387793340896918652218217223957464445012804330878893278470346571808650937369347160074839871954048782557133453795231841000342687731996579877263591514237651103439177945407251574822698480880408471251845826850266857203197933553134689301769063565200336904731551559803834239366578424446002547449027463085778748900690677073540218989642456953836616660263420073499059097165538654866792720726623182384312916051456841243657930512146059605119369067007347229024032956699268745094831361572468631418155032743390342555728982462981743884970924582484128223689595689332888301789108950515134785062480489603576065950025646062883720641241946138817495509209579029831349997434394881336130016672753973257502554511176188614394919496734641712677060146720199976559513661001791432897214756115078550659002508933710366445867893332060980010653964155886388846785272880397728372343890141693642184471452234747833991512980898943636508469524352107204618518308117441182473513534998614005445471028566714076461173768425298811770287296796121561718663572789151576222617528153985459317032701748359148743432623695149341217995322162889628865589699539330857350623376560610125226125539621131638302422468760105043003815975449421842582329933929463666307294821437753250301932372741244950535766242781173883076118746173428208444261115755134494182150902725855361565881326967252085902783873662664321095798837749877464271825840146649624882096006728263243114232591899929418624766570458977071344809420036697266032460309837126515806370660756496906878780033633799055359184176661675921929376827599718988716297130165863458134421038195680659298926254815315557934454507265781757018424032465778096160739850557448903571349478309309087662640281714933252144373818167569853283908177992708040753590588794117913384686077571172939045032490138577494913553399698963196162027538053729015787767061191509604577301897035655265516874520201961900727582596818508042102935364699016771592834189305844196347453994488643963392567277637613713140062507623258198186423103232710528761750541252196449017902980130725998636141426743781491319809672613193588521920535075698915350231570688992780908479341171852250577737400836824439366796627524085706515681673176327480076775259247700308118336602959535426673360847068909657515537729867277212818192275167430971306260793124611381419631451199521686447595428896924156395332217173298453204298898721709148460354350362648057817850753494915175096569814722591131094492111464811715907494725684948676453260635505683525805491916402156013903174246886361284362834182952879941615120741853336756691633319050225844823142692342738911726867378625418094330557391142074613910274089377024980823162276420924471632494836720900980961974018307778729135697040618691887688411401866853498238288062849938593338721896509374701488615975492532711968110298126110765765239161657873476538138863135531206434278896860953362302843026467537925436938729493317420338165014430565672889386043864970725205332664753633747775615385309454178979042830153474652150554351897368169396891286282453225298930059920383478848076575435836174256240082080552394017756191905965616434811446059316904085086829739802743531901868773198101199682236964631177131185697742257357003881113517750129196315639610243458648818177511844948983034804310680685750987999826591363405212026631491400791721249315075142666679632503937750580461001159842771514838974040982481698936175868510237545336384670742246102898894280939285614169286099978963872023414871639135348290923673262582888673661586459920293800884880860498916297530283114285952950055597925966457038853832890158290156253312020180256254177372500329486846553187579971877362056496925032937078856646925356564338382542499233251379143303125897400308363228383631144555659595222100100692210359695492181831302274561276433240250040651049859014683496607890392389581470132781895228607089634968367087777255408247000587413265246684857635284810578580356897188256161503579264587989932032573911284967841851350319970137218748466428045163268024277118978566005675876160256901246052720747749636715927866988581583371091730325631280568291400358208708445710258521182959071751673397678012984688227823877180910411730505689342596972952966550008511445270964861740976441384145274875530524764486774090928669099528748429560973824563649338755239069425196474514513604707899874780683882808531448669286453869769671534703859143477826424302424442714042162607555194967548024042612878936316164656363550425306835670509805207109134943742196773320651006944721443135470078979813730441332835555167648291802440226840656895717092369063654895682349231070521176498263065692112406233585148907371815845886187860316080250389258926494576298108403345578022979923852234618738859092805491834467360227115189199110428375542042449710629127946989214029865160550137981541867314536331481142154628400752709173556024434402416684232263516656463461006232945000835213902215449843725045041154808821987689913446897016812540869877497609398141823146064397895376615577457177700557622964642420298905688584186781898249508937677461377111900352235001379232700258263266473973063318210810790873031879099863148302995700389911400740823235968337943323267553997626795748599848219649163030690215732546136644614948053192805574011352819905586649920851237650146831723340657045761857735516825378929339331717458724085653968844223375573702153934618496316227887416637247201869194147607579693370782623245018685146241755575304058892460688855954209708947982527306218316404139530315605249980453487873650690932173565217379618489961863071391523872990358518868230228864929497176574454468536646981733594059993466131827066085776299416495485648958369370669548161681533275519435657650804858351047946481950876653252440017634890514536496032602259597902373826320529798868649000072469223135089063339531764444056872950248642995144693340007071122588704743570057023725797559136052834770565021564493047109860379457313660456406373094739679667157643162498342604504815659757706888292117942202711399411446305023877709178722647852815131428883975814184290497646739190362348333706443360395604808771223119309654460120247452201019348115691525387857012410335000602812069664286544673715976292073315260147684849951518774388507483481483033274764882241997728387075596419498227657376749703866785469380543881639794881025794085795403077631060883022796580779203922716851544408499457757666338149346180523071426590775099854607202530985031033683999019388592835532497424175746586717135661093234048049743640259574284771030952639650008421904965550979940782350478840266399436898768656532763901252521764756681299270492312962870695546133675222351689517828735422067878914754979380547130078870540406874509656429754719802386731304333266263601209884265440855846606368122333051461062732959825912835515649001855064311432176572135420230876443029863307836333280356508535754157439565332477682449891511885230790365486633628153276406168648890265559010364283019466750613414751046360747793304292766033929982763686763630118928233393521444822815909199189273546783356136930281917983331086857425840210359149026245162305124710221329462549429685030843615751124369464710393797694418987749141342140170936497020566474777053113788579623860804420991750038899423740062694290312986941957200831908307366238919577055731500992065023269772424720206897885449451752844931241076692975265577242386865114004917967645957257830601688276152578921216936251803676385749629778047635074117439581243617054778196069445312401793436246206216060218110827565221633865235786530617459250965384220481111517758149484468054883312549097003305848364263883019222601086617039559086243298700516911175555886812356690610793157923901685546489620020823883029633863162828932555387267924248770938344939519409203845989550411235203913836976632319894599972768993066705762167816056512104832099335999585636740409837536754962257968112781416103703559217607992167849863009374173679589697773015648388564535484602942614142412771007440783990287036492316242193485431453127963882660185271866072837378874361648670453793858094595134122365414169853254134741094845425947361084709235766573182253718000318707345196502043078828623817034063477620463753162750751373721729339156738316758218435483650657235950353865941644288401510803466941846962486401972991095666243977687476979217068446725716327266907772764491209228923567008583669982412571932580780743796329658635010653173349927391922484762293013216827110192780867254516032143152395552062483267365104314778408003062656713036503706609628364224912016207183804487091375480331105297750950114041761680589169271216592384491285666569503693742310664867809110502361260612870099509528629310570038301124681136840225460575771374007394902730663726099505925505497116097108292350366456806599457598971185257924542326388222498963916879223850860469598703800497145838192164806828373135052241753511497039361372865906141090904731223601972831671577645667482841027468747994598152407395741540679760558644799366415479416168145005420959554044953451524000323907871400582065352995239143146066469993187019429881084074328185233119023537970352878937230303871977942037351452365513160922642236700445450369685191551440002564336581709625138025894055687211174510036414457121043741254626498119176160191415753713481352994415922829275854602353763375791505240640657479254889460322427228715448348286779256972602894212330519054598979314744098016234843980964256086086534618073694999184245450735352450758183262231858429773703751831617654785707528017687356549559201398770304657056854514877446125517405462280792977062397736617655292211632991374734232310815602411579995995415320239318648121658504541216685760100487644999572734179917897312282951775057833565632355575422120636324868714959124551251315967854022102254203735053090821017319400348482055441659009975484278962383512829847220626332292408383490424925130188513558282565669466345315666397606444511626570929139696215477720422688030343296603634356165251370249133595453784520342178688150447695627505613168498205200585519153885587730860581765235482604599755463833348580940822701125243008136531818079378472103314677467011455290821416796274917272239394470110074238787713031994848623461885143399606495821377560425405380890073597009696339238507449696365731299866106244218998216076352469583309152187701423128439724137806081900762369556065415548551267583041131436420385673834067128682403588337660475680685415559362933814449150349438669900755604607787555042773287435317760974994810215428158432936396352061915986468053726798943571924479797136753213781965758726222576790987655757338461121437626954944667341402816138762765816497300086480282999974261384805100504347136524193574473843730351620745332024080708563103631713031365203566023794326155865890483220325320412971317018943070949437595482516155987771724269953933800424717674256453102939028600277456542411818676207536286370808533020846577860794236472939504332775105040977637273272791479996529696642348510174130552750591706410130372625112292854417223550269862965127371668979145347201607825448541844215952705872309202404120378984765558666720836360455733664758808376619387522169037841525991648995646848739450266161294192644837976993064414466400940592696529980874498317120116520547140109560757791313184928188655669968239933437712501526883179061061236991670754890093947498698895249457384002179619336640132779394960531968723748041311032781419918884010979633220563174277957301143660437362724957048621501999029474889554980931755506626128573181385921116360707150483422106493891776519142481407924574465681301931061154585426941716322426259479177422410909357266835811300354303009918154852834531338035689151742726269511719897111121000784335231678433969340136366887763438287603273047288483786786302611206689572697478975602115614767108121129526101061327017132904485027514200336197093919272791716490366177902043400113397308538429989967393470139160272448100312221897961973644926798829907050081115407717770872215464877414182992153490812481938653155982842710947328168200240142578150813090391767381684359032901552612320295654657289741673309677511882830645467020658784143871043064146796920867744677309316928806818880461585327467244560572673097349807802298156034740331511568926344940797737998164443673564273016572759208671172320054724923605037847600768433551097934271899703751323491056238590579808209741510184242350014078601621782135375669004498673991216124222024876371169034940282740265613573501934194642179787124124669085016991251573156082660933973809257551538166451385917862746695467893119278618757398097435722706187408368273624265438291933634168590803532844752700211868518827316922507678587269532295702883345516453932966174373921998032946174112954264712387248967887517784146665617569625809910126785844474592104525256569389337581424651206640362416287534842460088514565296246908151964249388043599322129771335814150657811893650528434801454833710893080295874814114918060716540512236570622492640806648728207096784802518369880157211718835188411409385518069880382261987864267339742339617728514858607121013239718144093204336342074644848277518260231438735820880980706426038986817772179150935766453187889240901809546741891716953055305813531466692052643032078747431807562461847735163051060965605585113495195038945425859223790692489977624334046655537657149165365316054462626169554492093409537367914870150923353164333330787532525974299100432730706536998137848968639577585219320311365633436366028398974430657650703503557862578825342451407940978687518552425505940650542418662757513206772149411378128320031537499721347464228106392642501392951086751171489977737055726332478812951984541886913607831899957404624876373270721264525515620530873937296304715390514540225248212068983275896239486979411727258299280498467685752419648356224109258975479185921777245535462656746327493757702221855812856399746851298759019823721240823746715095818422171472276928373159129101189289508144133346235344366910610195281408813304486677176101344340246763405270815622425199440329825201411398870264154001982975333016632448366898452181744489909263268113573789500874300671233493803555294806920001499581646676909983450720166800327709115362168388719914446172451271747505779892790225685070122421298293069436522215098064617099045387474733265816164742578213327178015696048185448512694292050246775324914588711564109744791529486403268301938644756327870657526000114366556046841347292176560022862217131116784969580975020208240764666283116628006357444524282895897355215483586734581952928296203401406069675859899421379185970955362799443667631449849118732955914556169981589383930475429499725425898076627082299210722037505840564616584210106817118251165060835863862638321425970878219672559183137562818259498116279288594902645210586032587249179490184867138099092350705460616274270967590054141621885737041015903525912292364632077159404712051318380118811400236800380700525043921615887263851835096606623512851641018175138712471835754546971507750813218629040072927172931582994530924040675313967378687987710468853845385186429538404908648071361866284131576474954694117752342931540828748302642669256392958052946224263251716849993283710552416019736478668991751170558163669732469163990298274783312352441529370176074933098135986699455856113511960613652294321421918055260292823019445908852784515417098076897126967233463067230250189570295606865887294953160107664906266579920835957460790825039673162928615167726616068086973697561321303552019778253045824603550345545404451078448431121166887667661194867293988285683051003694353988634866179487395612123636521277444301660239399927174523807922167836193167801840869378469445604889653889902914527816058496288915976812121660027521673777471903057470677277853105961892597015598115575689102460616504202942958606673183592241098605672891415894082693935352519497122347334112063131156935621717598098110448010447895592239599160563221430444678334975429951937016630704579446325229771622517650834941207565216745871595876938481653450739322891812620307241588569742884194234758432072646844104450410058507301052367024849318121069442534938261912234981145637255666626429616444355021439066628581104391201192578897615643917615308786783162507681652068886136663181377573360187137492938075913584931509447873346286822093862037594968441934099993104659986515693979988204046382785782705862552586520958407977964788278185156349329482120221193083039104382738021002316920129306540308186359114016329540597967234023992772397588676901091239851247894209709743524903719763010958213671015038338287562459796611628447222796710623419138972953891612664158043567126736920552340264811847238728162424843372524318007266916533261807948197461487919929646355762411926130909788314520107833349863446353779643303868758121446782844247796779578229362040708661110093572866357379798801117032964332019780892952057635938247241009139127517061166238546171133939760201710065603099528818679482431536383345704293080173424244418943496005207966980373719600203737628082681228870475883424263399428793123434324718726645181319055200632995497476096716886384869018712052520535758663923520009872430387019825343239569907550011436641494699119262543434281652865165143561157727171127000605297019490444679247216182537426932025071805965039878219371750836852342801833318101704003197396717347786647588588637358041408864810350679410898449756510295762534864374824802980503317179500657983142877200595103378024706050628284519033027242591025976742814803616660902578553669804377009979380234489527720155502814302410983336342978089632919750327638262919381510648988533548292116092932032175913567423721025168816015883944167864820234821991883195921109311330464823773414099071292513357425897587274748864665506626440666041874460996929680897898666019503591431031160291206689066292353378172574418839272996085896790732037823212281818581487056680326750859923269182779742683784154060268362213136094701044665186870981195680238406982392385903590569512719465179547167613297099264263941978826326343850792036692160767272574540519352233553820609792580077989139630830640621504092775580101075699317261928788656392587061998196917697464878894258828289985480267341632138288030708612507384068266666164051000269069315431919621346185967981958673047419348792425619465143593664653178291266973480253624342686212886318525211462776755895117843470302440941631339225244181628363023194439035198132134122983536750335537049583491942416752763306457571069318118803716843116912735128749315450433383364150741544063402686082316207289894911212315532504218935703350982405687522147925364455290061742387129966532219749920955669935087886166652756585942348197941323062878011717323988890441302698556859789418012808753653433401948571207457916842498237553933574951016907990581372393648125207409999204541790751505423580849071581193689002875297718122711518311246284633617739194484937793259986470928960207427953474956318728648683538817837237616481084821535657467777956069775013391830661752476442129067680736745125636110886857546796162822972298873212018615710069432279395492673139036449489132282966578178452964328972153553882133016152648000609318024354696255494220494967846434700523905718355097381731316895386422789789127586269732478678387329844835684296673849375841623334307337940954467966585050946150046786693881641389509861366459491435537412247394900631562241120882664630468138792680277529768026866911387807042963699033606135454853857420132131328690177909656167356312708227501827221293535529925536503466536004949855779286830441682266164992760835662340983732075448303989400302522542122824335113831057456509138579736683524106616503312653363420847388111427680595588991449994838737946797969489264867617792659098197661037617259661807520489864694912679940098086265155248990593509313082312448401554399837667213057216987022050431008484577311032139985323689790424062531985068175384962980644895110399314988416384152438080268584719278618150263301339842237281988428051546789592596993503143161582452239150260370005326348811304072787672586209563818403995325270369781747049403309555364296045901342955120241778099801705179932406498540233896630709231218318656468056005012087681187650631268741033565925391564915124482311596493253791389136587208553226898816036442308916741958511231165148853771416583884910564176426799085570083128801209416544551565501394427655073864802592332830817249908066543019198293057837685338710899685001110421790598937376323797980488666719427523410994214076069253545586345810123015249508753291500468822764330211200614513077191938981959798319857551963370542822967035016795901752816432996963554832701041686165198369633726119226042010660002300578263377490515191685129233786457192455027093540215123961995371552551842046103126312006214246821923410408592597288684985667897803667515993983655618285738540250736671451435481002565131781590017645449791357830185900411253457485670044390614431610078509647985937910121749331575389742598445231695027341194473642161486307536527773888868243716501015261244388559402773419160699348451015765986367467422790029556658297837789093157720428331113745589604694314677611035951252746220933593903499837274897581037870102240680234927656013893151638255333494289451294901881474653921149682699215615211940294081476758242639146304976097717381525961400458386167136837323559089577834426497038965230948282019966171706185718889583850985910873531585185338783162855655345586083578612555982184437138386306433116978395599387997828590050560972283404178062882771519444214965061187320054299075306568539125426434905639516639314868441417872808493407090541861087767293104281839495383453540004694067121107853429340617688797360821891210859451412519182395167180745939289824101010170741582838167160887287335196883650467739933621651108000067241163484549276565680963228453237958600972386272438940068777672396487034401477089326008747405769441813165177682997961629359761009575179248655334448952436806597615774679292523389590832074265544437204239487322195531717477631462513642249894166984533612559452655546410406256318838453214500487656619406855648124421298760934807692675823588649539546397866643509182404868375796141676738681342164729933470104756382602003959004935373554685319093511418341290672627254309766040669848967519970547821532847347628443345266091694113933829834563816637743476395830508653245169583874046994342068206600316879139007074252756947405242837420631897532448641504371328674357731341806976180341273645797826545685140525944908334681451649649783861555931859316617083139792934130339021112530435910827893556701778064213293593568693656313659258832032235704107362148943625284583029954899225316236583169270081038914933417703044384599554692338986176526253715343529038741748248955364719782824343807224892178545677580125185726434689670394401701455104750235278759032023855341883305449291055261645490959036964954012015992714486092600355581393653569026729484391699455889176732848279863407359675192273152642348138148357629606890567424209551056744804170813117678085031254804282324197809186240510451755859176994117615238973421900033833633596300668272328487010390311150892780850339479945968761107256001297143967942016904700228131184570239978769874106175030499864548623716451669553676099412356684361959952279733157571818051252074139613812414714339492072229998735118418511377468574909648316633616132269930067684398392328324422912318431180891254442400277280264386209686641065825079606580394187031914677383715749561189513694434207612766510473747735214976183517170357643798572970023012551295205471715681574434787366454022794978542200443451053911691554236202061929923258339809636953146145191836911646863962101439913324775341903938334438397278159638126558221915529438335678080873629141616203129047064830922236530441914320356915980069527643086120000393701022057114601599388155409632259847152793569674172509039581948621068879353299765236681657667625525642726388752963076540206910042686247990647253614762275663979548884281495574744165645676264443083473396053999984730368192168883583824649618589328052662115991285972336653336003851630766374219467374206127371641319562239535938360315608619840628379344904267831819009785331904988588820144198158533196169798211922637823820765057479232830707027954758321232631021149462286959190335801396517441938009139373855287485410556964398685682965010260395247587970857517860764061910360658733848096716273587158652601279652260028125599437447251873200571256144471878729470392208838545122588495561616380420498761075533964949979710747807112015639038418248766749263534857332581454578618904009149041951628058244768492851786450354438588729299008561174217976558913938082008750399815059046118005372371453766741210631513102237164102652397826319765456819902275762690897957554265517403266988364942954045509906838567330516629912680742787155631074815246747523363522279968110586833328261302026943627029303686303310051710121533039309064294855195388852865145815928786385497951481181139149993968588029030464464784845193042712170927797745070610403015126732539478089422344868488937449572973816596755486002692694325139764624539070052061416917951245999259798491570946674268615977929693964712194268503906155535442671504926938109199584205413390139929032645908856472277534720274797216548363679612330218638026768645603908820993688960941014278703644558323323297253692692240116379841228388767318345194419673669445526500300605203476050085750008686937596350794077668175815653438038064258589646714557985382857089646026141211137349426851481790993606202115559121735712841121798233411863275307218670089595659278197201246925353862695622874836192514274577271501029640992945164404142741852307640660320861526603476629632277154961308895564393802184753352493430274367242629013382363005246269187851807504994061870415027941237594272010278339011259817869058768196417293013627096904080096880872009961280966084544277088626492599520184237094634990572087944054432197987434611889301587129778618460786992628552718377994948004115445066375724725242428876122430132534866223003687869885306714224930586412244663606285879869234155258570429618480361265297959279818302737849317607364787016873391087757114087188497505074965073979739336739508958696233618418331390408596777103008940450427790023838343971170434855905376301243490584629807362099886465345847194448952586663623536749890817763759344853946848983812752583211326140846664016248273777589380900931064997458650836647476666593288937990690544034096826433486729157345134074966758733801162866588102217802141515537519635631452156463719761970552208040615243511643661997189791121424985665512058872612563438572947138975204882227569802156414799058062709717081026044660550839371217459162190597152812228065387907758842927623653509543077922367745282441971195824240771773465758049736208886657196803138232398095992685907665010317148926921912171676896825971383001017337979422139942177636505361203920540803752258502807917717038056903788548672521747079773954814592161493786447139646373651882344779240340862178261939446432416737268168658667825023553158909268761159360093701641772952045679537763000765202775795656035852398756506777295476672076687363168022432708612976186781078300720045893796466806679332507476039907518156792038492239817207641759769741789109225068169637201838626753455697951314598156099191460348083974894852071002507201224362760260962836875947303643930113630428223337554243510758496621703866667838851233276582958943946987809733470470819193169882712291038557910064325781842990067474687654171505482886442189140181279628748626924580519247441595725127939079338749618971628832728024270574697321962447739461502740988746106298139217143313120639881054369086597412124819378506702474674731089613377931075007245729746897556316472751825130721111166372863124003846475417631886803639135221743536627787550816978305369904328364929630900176634473812857444662850397613441791233953008086722097404393013108369893444221913307957558131853290484594354703479080701524072353584799482219008514971487821980097747469218118227341487606841231057225244727409310955961690062627833155493184072358354446030680271162870088523352749079347288568333931598176446618139489186973162203709945264832078546270122417055819505738733538928876870338269939545359007339950105846901815783052109663447738078912330514345940494545114761520575076030522007264296102422875367049425292259191983012002680476914909244491905611762597386865027795713772918596115813075686211858627165747463774987099402446828983322567945519689142443032497178531554831800683413832973911838948101572232008306697025353047270596118906557182866140448877578213159535829341879455737196760187078729672608184370188207787696498121415410514865640547806907988714703469187092645665823376289845624777600396617503230719641538002455436267672770432117387650118924606619520652934171482866942443109756945393818446876910829080512019464117753901732729504409814068732830150892674420995036843770596229602052289348910698511941832302174685214608579563270101232891026898157300230154711791848502837159884438728582918196212900244934361278810227745594575197003748092425916727624640321023432089231842821188290431582850603972694389300632479956244996016312989347823714204804850691244138293631064377818979188284488343286297189232853185386060847261874469470271671922951288539391982994747149391762764915667648543781829968044378709557690438810921846472030922579218654325445938153102078501412319414780325132856938363296925821488141244011656609316685499833621607082897921638592851870181908055413403023786847984620358758288638546575948888773206860908154803627246762392386245991363876399708457979177812663128890782673006004503793202639583242383432370035283938439098924252527142655002462624771415009923085112172350009141971266306013218278754931046345770954739873017370370862758102659079805148512400255184003336152078256921964860347211315723396245105573241968692950753134094500058490722317719771765985664920354296876994434812483222030876801850312224874231728537871456636142419277011596287230597961210326901893383879577570820803237732607207959657523090494599472216510477391059463883466010000449043835817803046660361078376940180277767706486612575138147841161122977305106010615489585328613144846349043448829878475383284542305377391793207848389057032097887005124875507467733224707080714102153523957408319534602387283262947960231354974525172528711536525910011670666803116953294137575181322642950932651198349207782538622220010280025865834849552619423859571862938111836950231884612845887607234529659190745017792659116978927224718390345107737435650590570382447706745239250020316299296927862796907084928071710985612893220071526955734961597487780814706021517923917853147883931220793692511110481510654530679496985167875161812294989196285141436574728065599982260244208250312262798888739117927570572364941337678900449951204617334107798007995735050914313814543972178162075217990863275577951427019750264779128571294306229295914910861209249689206190134001615520470120380050028410954662377460060224458934260190219527264396434975389290084756667283734267373987431514727419688754099934052651763982570622645475484516492289387218954005036834734194225323416024504617207351565742783279108748293975588032679880246478007876721425859815275090261305061995295899193002329828511648228562255313938892279596118822778854492869498794346691570407172748081279246341540732366525493455899251034558200610035660587399393726656233465269325467177241087121953547960913662309906259969150021852531570654712655887762498108721819794547648657262282151461763210308295790952971279785382116993110109974448821804340317093458112551412533509036047391491257684644835106247278249427381047248469638094778037304349435490379408141003080025279512572528604328377609180933909516223840467281553950238123353796759714279612827108461863012295387787829973001914248635136951154989289717083352533791913590213503325529035019030770098066335212117038574614088707108440131037096964993871093829469658570240809732182287912436969493056421737070462131377504825285495325089640828748243657222400520124412745004799757836426353475105938645356461799111119401529674216614361743668771068450802207559493754048663603486324117622665067344590122057961958002955983458834070762206255800803380495800380112250019851189396884198876784144261246982716213227231872995250496339324310970984905946687787612746062639683826233225581303221429777032757197275934705281571976718996471177635792426016025340880443116809104978040722385683720068699534117832388030529985972536776398643785984702295680146423462844375777048118395719871922511737360315298759244726108085849665725787598369830795584636824406853212749583341647084332149034836098552692654627081670714246540529494769888273331957069911020797271714309600437466286186939983828720070483722581693269825774312731140612970575195075601123573090842839728202245534964288428732813180931807812973230145257697743756963958679530154279995698496961449601204209583208437367628945016352754957652582887119618051026593744731138817169035790459210731711090052054268973140100479847913217452418671445296925721839451514574322724462307343047094951966339026082912007120560133696108775095821527107248796172319545608723862837111428538599067382475714215594237946293441270296014729284289097083782439873256507954791494048382647688623255051254092811159331490642982118565234039424947690119601133279630449096090683939498261165061421121521932678734007864791622453586095370275864375623429447372358816554236974011337512979174327738003083460240230835023152183678995645744591668868197864350801859762798037546797754703334281684907752932048417945103467905392564947092876499921473486007728243255751327298542455488162745701206317538045032099837520263675799500933667705230195901556117516416862081555288916949722549589353871766750194818401653706866642918307149163169094594673134212221599270232505832045335886836045832223136267321553218698002408392063336688311335411057872103217257203745814247604289236661218879474514275282391005508050412123656002588889980348238872692164749224451521559074044251667858121538630506387807889094125337330362673405069827230139690701174337453377706538846046932174787735062452283900499593707624032444506556395041542151334480090824216785243683530460199543838928062410683668055773868325380738167729822625988742336521375503458199269782826545997980898412250602547766099228374793189338993985410552054674624080256959426840162077558871802002559865693705529398820765047284429436268468691770829933457049047996345127048950105751706852497089930179870210733172287028219097147002954570607872312854105975953175949321882582328966241584058723917823978622720121766261362569556895050014790093830129795358713045518882575820756638201895705496234017085166700058991710411279389028277249161421968107139240415359219317661338973087047309214400615447205704463172467824186889588325492760762891867373068654305353203093449699878013182299287984429763942932980949286723984953021345883719746260020200447045107884163784601496288778237078269172731751496861741161939911757163814482505925886107585748553417069891399279524026568406639223538505623006821159679373531301214830242326984384692624076567241703763146483023211034237031826707888495104926397877254853821444382269528685842487490995787211156252246103068406954425734057986024249253832775042194292870802913377101868827017102074419135184259609593809580250265479213739890011850051515165346507402038063041398982690630980515408589368886865187502919786899978323520120131866284528012461569299706060489944364251466819192578888225226367270809160386330012886668087513472993886816241365435967161510987786120921867782818399019213460485159956863995861453879805131094326095052997810103913182038115070064010950727145479445731417609787362205147045670277758715341437761294299515717870184446410969975051408862125440558507065468471210704490006562477484869754091987510979935384661917711415433039053518838808207751463223368959591774778750797227915487109393000805421914960190064331709564987596073009653530509147787727981795732354061334075828056810074045980804982444802482022504875183479234342186174778170682755131602038410893422055841235760382344574560263688827576440951554837412407199992258128226308599209240933775211665552806320653997876048329560903814209914884652815320291759220792697340596969038505264795300229471447901618910490522740974751374247387277228425551983815058154916604076951200299072012902214270847587715691864900590404584253215262865538168929959617436216216145344343819030151208834363683792265184478787170698912191899567321674850260009599720544573745587110045527123768413803447385546146239259154136717602983554793449106625985206406562399474087382995384011459878959381435688106423721587310963671576220409002884773194163857841889193813650755843789094192570462622956278097462253591202222831024847728724999024906635648465145696696984525323702746920372752299216335532824709324214069398588613625339876500698002727050631856873377635403081051765438056428585776231294175306303592942342016495203917877300698116023800552599500274514313802112127899917444373644699741454156044650439253449292431048428051980975059855730546874635101520260985806901570813450172069538441981452004793465743302430848975818213910510709150609697385128369967223134595706514913616806714775065843440228093180558119966750485205871398058392942061435727157991283050894038120831126012441373052528812121120897387786058561263683188618107975758806834266481869690123933762664099931027112063528719636057214583131367207916285461773950850651571248361520143006796147120708687787425862077042980616658333584283167262057165899978936219554329131233593992570491517938524002954065279746890606732309289885512796755482823399458440565440250899711133841320671701300564398745801308951456019755211202824904601760084364876602112692070162885722750969247145293348012081067763923147960479982279027098586183845331338288820565928941926772376155292183672081025858975008498015793470017212738334378694434859582435309708384465857391464082734403482767116942964799286224907824901118041852979155899131895798800886597936001782733185055435877255545844308137040536519919817610187471370899174013009270865535297461715027996021873768786783219379854611908703162280622332072299821524245786009753418264702330959190090814082974447575651749883311363634820195529203268577687367389623544988817229873578066913588400334291387158606211958199269482235043889655003362599743223471727707569844373897309513800506599951725727562104356109272614231927374153518081811079238173883549715725973424771151309262880591872318682076810332865140858221928720592343491273987681659963997960685312841390715753229930422252529435364478595118222560922165845945322125728026275072149647094440409804756133305411756890224734112613012847189250559880540377223198463164672978814848668307086464436854051697764775404425937124273555037900323972476381977078714254299391648610833520903166843736155228482759507975821672104944181351342751571173043619010605011359951189824171074439413654258071289184122603190098823586864369038141153169388082451924614152016269140294338098123390160834255028246071224190261316381038902012089022286073496712957610380362439198269257350032071526189851767128410444322583082589287854118326251919044248813730715790192938555692265078379352792418819555252650471886910331689725186854151433540964828038149655257003050233896718615159413522463132972877169081590520568489717012602355352725030990595316597918098316498030209030910274895955383102585283930998460393442685005444170471314215206153776438595746484772946485509699489319383584882729897819510611334251384006560188495443478064107099340604750947483129984331538379345397071770793635671064342268331435132537837803007272918838188916778690131799483170556165241502036770607568742310620482457180839243383217674762392918813526821006344502991369485964031426108376914699860979599504026417040081563520960155375868061293896759720054204587841368229319488919245579648704953585916029878154745903730907702495601504766266801859266788478169503706991598216168364907643860442070145429978705228862672143185034633087388758147252787286457663747592690011242669791190514997349588711865890513766766654506283750572619017946250383133367287926987943084979109394057755614302268845262580044193611124316110370255303781709403711031367914428466537859075075707759153550026195627306155749113394619653342963180113121270143200067127447523518321927397641520218310235784359486581018878459770485922343679471615464262885560285786291731534947038317109938013467230384256973905631984952726069305418031531468227145509096001574480702542112699197714916942876851227390671010172110241287615551235787881705709687197135341540694705668350751540230721269001406758396509835113201991295947173949014675588218979308153052564001247971206094188446037401659019317227863437148684671566272176370918884943824924823422038804358229282698889127350655827752413666693925475668209145410852893238116773744222680575984212706135718477401916180049141235477574123138242173321663655536073246545693153071628355193585741402495875955897580924235556899827577570573492206831188228684547984586053194215828831422107236488729829513160154195757604958255141930142183462648254595427112083805881794689936908690811303498310585837974465172603757573849035450858831354710414658771593040448618278687111054385625788846409400763550600959791460796979582995548734476841349610273337525192905199159287034450918337304527265468524588092065678458545496505622620852755317697336312779292166350721523220424792018094228699230245797838346981177435511020333798212330316021261391281040363148119032675673197839486226682924595120749081161881794288181770607419406302224463984922340322486432423089656337765087329729881434313681273557287278305156101471703447289842156226336877825808316377642909974104819240728661533002208476512255766381932495107611427834605977559460003855863641912566240568117912170158977475088319811605070730869550837596513236719909710717636291150020213646307881925613139960437510638594921356654462025336961653275250061889771633375749550182017284469726094742285900069429907079325659083269466739643006423554831088104680534885994558939086014221152464638452992838728636712651541598837983453652719732946239752525488063440373017010968074445082423141750168825329454132560486194555549080242577572690086573935986738504030651214562165402682320826145812974849513784227559450881780992436010595681027786404007923934785385104577985609722314607482319603701259717925881577217761815126735478633973443471110835898906133114986967230609370943259500527060033524718632604193024098146662910862249343241681552080738262744442089757545542068197943917487226957814968173935529974870578810078863808549901766406054139817370702592228601216976926991395964650703860248122066972426080026525526356179860660007737042694587534417840693259625213867363025523781344838382043672299713301612654433914294926621935844660625077026088383448398652995187308520882638937794726783529373553399151541652109737637049002027763334865433570876590028001399379280863434934334055252866080980775726724576504292715465948751202940678914235468175151580513471178620646437349478470265036613828698660423111170644416626605702873075001515958042346092220881802181674984517576033791221342174410447761496838139527541147002377185162651907006609956465472596317543781852767946060795674453189902051258310532528509660880540251102387170578549380374835171106006722246954452095180031752800888708342448555333689862822667602922719416147208673642789096347398487347041283583413721112960802177278939018808194735657561263251684861383061501899144303149051577048418700852428112658493421514112817641295635518206807172571627162421381094392358177041827672824281455408709863405792137426560943127628808828722843182197761652748406989348622304266675447180595912628952182371114009735398211960016812511719608846447769949685194571040190888830673418807793544412622315337792445952638959037145473380549491759750666363255192980840187503008003312979711510976704661692328685926797576811407518028235234285475061266969077267697605745504481798619017627997644854310816279067470629993723984234046062395482310153526606647247793543535827915040236244267980174692628435760821563112258950106599705759485076011162681534235441169128644504636070158454086024826870976258316807475389245225948882335624799465126429805282162400381648813851310420058690312014062716885357519663022389153183491447856762379104950285469731662224749402436385575986523040099394622215607486441256919158241178935283443909535145817111190684431553836213802140546808563554555251604352418452460721888952999053200908586614276719468320858966811559037297298241407196135564881175536683986282941266318718425804975946930875571217496859153063185171072933094068094921643007594910858414656799872172564483924323536519367477895614965438901114784714801413488881086283776043699273642574995491032937351370788522747097491827602719081761516639735437205132643131361374924564131602549213128457744895683339227184002351868933607389349058279408468013822747501467877137148681916869360407049460652222259617914993952948110766980857604313078100201751404283138183672016360399586674079122143162180051409681201405560170333585812020064620557803971055311066575762918132197914220334167872092577620937032349657397111925178067659603128388376212211657269511902220024370779750905315767517908020262966103144533299021505283301253819667815446070070301524244961059526444075768591840861893735368129685909303672042658236474491557222411230240620482550008536589011207832326748697196941324815013567505212674099163648890474046146126151396181900448645714245880402423395863543143276367411065335530408382759261205512253697448960480652145853916131566188518505201040482911460925137322818508415267578763659489011884250284130057625006522596527273021649202837181634195430244293555579412233666784498970103443524862639964455237757525478584130690391227191229426370179140114450846994355179335310525386346030405290863332008690084393858174797571074109540219877741248670109408574231617454478687684781621919997824576576656788246689150610235972677378356993787936053379670523132994132724780825055123309601602514639796670156285310805750356239399845188228251997709243870367604635414660369486381200076411251312468934543506867772532233343447124944603828635176265129087628624904359546789163307131229320181857445567136645831791498086815893373824270976304696496483965523594191505245229166048802415917736736453985177463143553679946836720609477933481139986284212449765130429809911929088272165165955052550468732872593489990389068308548431191368362922094237826383360190879889530674331675816958081574741452613878098709309878118103613950585885957916191562630365539084289187238974883908790002588436359245326640991141795371639738457922306157149266015648243187741523098639817624317501378031736034520819676039655590497573029554743725444031154824142995562223143414130457344264259472776874053018612724989031619351435132261855256317058512522092399064870316653691489342508768628127738559780443316499416505262376652445327930310395824705566075199239969292529454102306137049138584929720828112480556514471137385394424779103103119758139354090276373424919326764430618279837812804764060096618463608133218948976757040508670988384819808869092594543086298559111253935177470677723690676540800868387533770325987491391786998782537982027552643599556385033281081874537961506391117113069417864948767228131345846913004650196990568341873455311362645965909599382580972555461345042890813327088837564375796815739651103350661380461527544786655081308752557964314661756110600378810105646494033513286997515408010620525683076110861524833096182978146703215795743925953782393388454919128871818834391445629447407348825077805253457745689718461190483239413217501581626720319016156373803461860478056619540994817702119657737928452168225502040693156599380014449204550681038324213835189654701296644064806590840405125422985774705302217942905905818189821381390135284856458528700767944287018865315288866074425554450297667349511250932270435451803696538020630803649469298381684513020281542912883996460016461486525529936155847146752582693953727056928346315042121943489942504858661499949999871587892754502276935138534577441872342456029357758411116063686938514649921996897756251244523249916651929844730957542790057103767131634417974974099700241545222392004094332493440092861841789164022720191590718457226951555405690268356756440201772828172297196814835211061403675080424382136311706388607556329947212967283724755775785474772683440313461077313299694998629347711163511816995598003237902534437980436147320645901904181767353525421570665580675597222481290336821660796559168189620512833928728681492774168828068548726109975262227882034840603891731572419561808083163774121147949334550016143473911493022461866646027895919499792032701700949857563530089848075601042987192713596386888086750677165993484029828104775867462433803250579586322835172020126720790043197060343303731585690285303721617164529503615283482718302437623871928533909135792891255113620432744019662587927498381516244524299669052037938612937052066714183430971152488562754726981607261329458697343372889091619776340318204020043546841316759541905564284624368972362534365264598704807093008025402836320496505347060254925545494372332159974855125683350162668477647470084193940150961946403415253689983734164507962073860509954506247613142492156424350526959637539272900177418209359901132215961810190297507037594234975451277453089487416507735468675795048853596692028097026968282150165337229670085351698697895811061590046717945734879071241700800785383250319898194531130880540864523997367287351575830249446434778170244260545229741265361453113396321114035805647994924914496763744234909679956370640708407969080693742764029177264712866960481286784805306772424289976853246797941536440508660352399800909721986117767423213431182617892675086380585023097986412784691008630333320304094697258019862834042398035403745206857265508610285183217627671285382394340610947020571663337931652610153799111904553586478360003248960081318892196712075292355661273821753787289347651933371435377785873606509156990749666140425048980117202528356439398211935691722476337479826994390052472433958873617517026219863220038443523667157241075352914800800395689889169278774108292209531993343985746074261491043825297939581217676022132292595041998474555503708705866226121172529190346218286258228586303221828376180249367052971173398255981552040105177526412697150525485986113411240502397465704725854188724151687953966853875646855946348902234154301834840970112169152661494785179435630626927286329181280399774383779278356109370985057632405535844723881483386989205567759436848215409009748772683716677113832351905248439942393002755474226114949043271744762428225812822760554874782148766652459291726003587031316152112240035553744495026713855355009729331605934429028675008953076539732125180695021867220131453569723417138111865714333902901150394673891166405572191882309576182029173130208825971751448325555709390138375157915893632639663273133714379090301680201728803472227040886437743861351824026576864771232549245246697516313013498198228128212115698496859578469094961064333287986392898154587213043581266660229276526473234411009128491388837139573316084129852811637308410890701471367387952964700232531557425928903349540057246339353699838069398881959894329853461021773283928573119615473245550398457683914227765850475480723101638696697496785246294116716421571661233773458233158121105046039881532461795656897583335260145386346549784167598952510955618697225872145517723220366091654018332471826943556347371895090181822304385449673599793615415599397991069684688938582212689235015634243759501428022964208414408865183915222881576632803311329084698541318483860477470815845251849503595365092295717298130438560014096973940366331884398541649634302030241860986098414001879983394862289327593704662979666927972136994521017075304837416486007682194684959053540160364461940129066342228096795787852817235340981299420175018480226578412305283449181622642078047858943365513549210515514145485961997620765883986909385376817726327167797793463589748031270985737366691697145708978022571263005464862628114106459937899548305709191205287066845076245259581861437821033891713761359500958471033540958467862040924554253005472644240306566671332218597374773125093486616182293537088870819013130292391905458345081281916690054999510547194912069826451949163145208372362338290304664863144085005820490653802431559157674362875655447053304408534951692848871104210725950196265447781980834398927504897259066535592394272441242652507846081158092572845463024199812031678065351482981566727870111594449092458103872749737836297512841320848204640656723123979039624411794057449220409754152972203367783899540223945699563724840027625975391469464390830186863327568383116872913864863394420706317343156343469047769063902269061827757029479787383690630734990428379189161273238764528317150545014133437905057829436857698512987548590119513717599097373663084800514793961101733031791852331726946803352514576963604436310618204796369007762787629569389949360469015505089468648880942910990821633130232561522436109429649538626093862254486904857495673152811259082886476256179141943674635105401691016883552333389334021800455934827251984947201522494382738885195703510172726538414550184588516733615174879656219883667221879975605410936018372953847205695823811509236736877104832856904646394991810820475522222635619855679339992710061360689866385789634483076266536706954574044965246149516989273219724998615218288303441251016599711169320442016031427711417178464038746545178060057101286854318519559935444049920237927735582330863127908663803149849423189357064459582079871041367688987579850137056463190803501259661532256318491927218377817267911211672457794521128725356929467068750676066530067297529252072210589449807583794535221698096108885151741098760351342629353630990897390141430542343081451156170799329941191587665013475956347981632167835210730841700709797938085773943496989404222986739212168336736582860397678242609131734559542327634905383553167763897815608387157947429337045890847881885266890812260206260407623303436002277600778492231211374110234575868125869859200255242834226723019309514703157311455126182651515436631864473440180870830662421648666335206181401932956469614115056249338890666248260084611660761905774689958382783692633371786040223395295590823206903226598764122191189276295361689868950488940508223515154622496828473747470768245959428747115173414629637262710069179652377671093065142561745282648782461871374245329472026299980615436107266072969892513628948420038990214422991824411258143617356288037551855628242837981899249820948402199118883218480688292398159036109208612673844390433901078316767991694266694621525837648880669308327749532724253187751106253716443043295207571285391342864124739299854613414729384526775972533240717776312937437941770124023281267142204644284673714331788809351815301322667809994254903735961684704969462867855068189415103251977118685375260287953341197734529198560557400274202591323635321586071162589548834083866546869571209899256303721043144457734094723601200176298119227629483260430363725362257463591131445980688259673713832028249731238095876330783453349249605960181884979843440292944940559507152073115390947667843390456883197748191523616887498086938939126445049552599650836036082211321525500804109173364090473431784740353771930529619266884175537036444651532763055440711314926752477933624300147983440748535168909678030257093653620202842186937243225719767015773362878205114535396764856262060265378577825694681987449736386343059469007160066973286922279961898943539967339287111323148890903156448510224457579281075904619236701491680587767679512903389021919183685523465049068698083934141448484985386372466082460786676928307720752188616772059188862048790578988754041097865442091974877256744160238268810387508583294583694049272105887356194659679111684741730242056168099673236098518472857284850138402923730619939750281004878035367075002959095365479239232239226179169646281327166228681612285699288883561544280222848462448516594992413771399547926475510815840452590457343137247548921181463010485937076462812820311741519572664943415795475038706092715342001497633222515501409364348094944087083990073255365064497689431553453900761439148827701828786837082247639617858085934052652393278606483694943367556038620614347964383394967578385009461853060971822345822885103876012424894698914428473105708419424989119800514448002063408381394743956903889078090834357414694875186391294209716399356088924347924080673932310700109543282634727024027954258189110469083407011646945897168255139788095336775808457940077189137870596928807993383622481931538217280765493866016517686200397477968811072406327489156446961945854730328390026223028189505565496103647899061757279433948914734467429786269936182104032253681509832174688901182330551387605206361744748258724259259820861198259990358483603576125135104062215423229885478777658801967938014154102869014899878396016955901416342631081407591616221232269842656081076474822808984352198729344917309774633941526637120558119032137115420404998968761968050627511247902917321354736614630809651287652202889220334279344297395532596967766076115480183245967830760004511892346353276157303697114321371565626314807998016992513450567808963559717579779347879330381776365321062931235381185959157216063570955262774462213331964493552974243290213328299828103897612160238884164360233410933857265921346298707611151319620371806351977336600682599631343746388253357224886113251212701755281044119499172578721310320638442447311910514182739689027788071855435638168210104820947824166189662552546234271898676263744847449792671643293220630694197906984685821913750252996780399243793904504911113551299497198495125794202993073571484564606319563701037769649476328635553202721334335218507511905611372071197848204747116664464227986476466827502033987883785999772132439187802363155482108438814923308643145629277959558557456176421269602204138577334658891079903565898814094388625510109823338074227039644077509922803323230120667013878530166162051494935428380760779627782402877790645770346456360097978030667302249476367367483858377494985619734549136744314392362740612298136294908678073177853403629332341794745707627294400841026271252967677735009984679105848355770074869973000321652249483726200493851469656950924867760817596126832576873948749980845258800059537092877757492940048910713099183103926873223642222066836694290489195954515225436011171143653652777929745814056950350006569657489598268579485123861719675947563880377074209063931187513597998608664544380105686990963098894442620811695574462848461279728958803718703346586780867517473261665523097127690013292197799714730124288507893143590728497541777374437379042058942960654949749098424311087973524015386285555616483165091500208596536618491692259819450375677407495875526920651100190852304750325868674390321222907455942784356470124896557114554223928147283162385389524728445031610541136865089736452107479617026274144746686299562399325900529159382879082071735679993217271535929478080404386107796980099305560981986470731417515135502655646406382710316429136522993736160321239866555770343025053397864596968018295468627517512376936565096107700665457149363488055095707725733119481157985498288897059427467868338512558933844264950809723566953793648958242878649414644779071426193853524806627208755050324009209573930278046655609674380771904842916810408736010233632820376872306519430038104415592483786051417835458686198616866432522622589677577372648555818798282856641063728640016404714756439200274155506231740174717288750500831345131804036483747174591507869712797323605030615586547016545429077349525437815811880667220082243557665022069150089612016259888703052265431607220981565283092574702954958507272286926012627656896514143789900934083908808439119858409163438745065347562857789526833530933501823723776320313416247927984237345148320746313698258000195599483306101988231927585750460469175958015662133260316810013979422238291892566777375853619080466849395631951746030399645770245752924014230291957170924783178583920258744008409231613862371411858303557895086741740380518297454194594818349057356768239974338396397506450865505944682324423800015135860857414370161668288246184114544170268809158029533738235846602914988040779565380311363024007129788563500187954794897775166764170990019827930315173194779931787493279663233509879660613791539067823703789891438299708630164141949034183404074180432604339650558110521374753441092632516864511039549422076881731858541239342407545337808654570480727916142551341542035156763787709447251835637394443062745823452092437676187071390469784539772002422974362269465135342671508250197582158205082902329108544482131773802252422111177277346436026257756455089963305773406529361039668937258665759231722828324598182811566109288883411638076319059495325516831808725943729987198937849306617410460246654398866617913603794685248964859919627568790941704616271430097632586217636212647231802728769755869837884223537272231207518178476596641125212386001968171615502374746204621744580578156669846440236808932848136098526055230069336431813895473214759796603285131105960919396873735148539937547364726543133920184522817050372250459664214767328678239360956361924209369386178811612028555443477394217845131057043418694226103102849703442532675033854414254048817652802830726633382393820346626746915020090968386526054300686540047011030019045804810878223235207940042972196978050550810593605874626228029339147059377388510121700936739132812111494822316297871555537176847026436208754489457677589541704674325226568315353421243732743784820200468241091623157554278401716221202203706660525861904086951602975788879335779682643375848532991861127945461878771350312200661843914418739041068701081900562589781436253350724809649476067974842595904397247992620688387445260848064291900751004505109563233662216153402649121206134171200370597335659185228978822053077358940215410896734414300253753772148234844887006637724771916075257912604755726676182266146782478384186850447229987979123399912868948533251579059608156759901493018102965181251075966051816417873870650824097613995102250425266633176434792451237909618652006317642267289015237833900065193321873969682575948370743503462614685256302110559681280290028586794192536669790779705512888621367814470627925822652916775630318340195989446886320096149971773498293712583778644549350418696326666660206765390140401424224211660863190358950257938585243743530064847971535367572590480198849689358280217191574879426858469434679827661330337052788418642669233916459288162942623995683294323685072918336137190423500915157686083594985319362515573159021840496614255833073673629974045578773908624653598352862244425510335102832836490928141396072953981383388084875287218095874016280820587632438669828207769799449855350811161479139673759136910268899932664527597691568592664000776572680411291346545800683048212269004002216165555737856530864127641907125867932453185390469160109151692866521769893982388594964699543784558326245380932474039953117267345104256982375808244720677898769181282894300597774236718327260639651911672699493357257233198927775306560782269457523590250900043508738144402980793989818056375685367219735640457583951336618648471255410250675102648787619579157079189246413217340697402220929156079882973904547228733799009095029077612545737837665194652736719640597852182339408606500827407749635688433413983880827937010059965648881685523503333682904926506517930408555973815158735678186236464710826371498447467818958396669280321669501180968231408922057354372376521532031927730256206865756655863371426538147212670046203622151577137914075728979638110169235010028118844199602699384749980256433570369431658879742341397462236578854117269851376025104344731363870135640474840824235778217986700818355652395882071797805617854934199800771355911394755359282471059474602512001828560422889696841552996810230241020039335754358351761681636910496173353121237913264413880990274258870074377852563796422852377381763292716822312831929181969307640101569785178954113578423273750291309429602360828161477566640775447078068507253263805658284713919889105273140186101977752170189723729152227365783147610570184115215115820191546375436910394073729041068894119857051247435637896704086378549839014618210154792853040545759309300633899973473615138951369116539875445499104477325386436441039381950428229009552183626801528556975181068895040236046032573840251284441515558580162985880304888203632479583107014262924346869458472117845677139982694908349630979145099863339939964919633222999663947086492254223249416242499313672312835276950421027842724197376086307385937674663183441353497653711852375544232887033382929121514549789035151498306686445417330791117837821075192317114282623359378225272495893493563334380762313973271881385057261313787473937615546278189281922275402737745700473285399421219330711351020974058512206904857068622838445770003631017242661944397187938531161794589319337638086779707007817866253498049121829617174613426941720211929745320642475197677855668599048813728778943691280176715005897050556954241540805025174590446155150303798017418579185315170827071382854653606487246018982585752824872562838111079217773744766407137877529723490012863995551112888245023147904050388651425798645954031689570687504219889268205385661857172026991677924118363536321305355527035132426827413617136567984567687969279341956970931455708633473617019133174569405992316328954363515583405750641346837115142277920523136820443252990539587854138708636737012524808976471288079700214517759933101790853982397633252379907436995188692759781351714735219038139455761429415513983322116421638812845400906506503403626015364410251416876424100054908621368260796936711353119918172395315915243575670425552405210271424881959585946974793818124583901471519268810126635793710031842528742132478421581703696036160478697095809182320887698718472975763341326913601810545195880435605763227559277383318683712803479474732458835161730912039980821326655271878601784670516361244658112747701160617738511332263563544625655472753437473706390277728325879349792863859616336143819247763025955863666644019433564192209837074774940313466761104674478652768830965081553895739680193123873370061801448744480922261876099852614441707373544410692742338188787305230402696329431248942606130643943552855167939978609597127960632118311532993630425455660430335741553295926831659250264916382775053368735687531535271575994080451782435652406304410331292840701327741655881934827557007801454754659614581718363431869375318900033737059842022609018167028213473673947152123220673332171015165951572767450836954648241973752575868861179504151747874884997702101655143780783547945460835180944796415903792681696771376801546631616177284646011433963391913487394646177279421709005289481880985072869459342808625173242796181762474979832329080867295063603533693514036614402455721227627044776542769844261433406685209739753994795556186351327475313203850571557268020886188503386871806963113415957152410618295010890684425823663079187245739994858745915289365885071442996336125382775896672338035494400174586061706816826987755569138133027907906004432566303863802958674936501858670936246265515094424241651558125852941464083777873030935889336637568853295771192933978583618393161692714192273038552441106587514733181170663101929520990073477884069204781157633627983543192684699024135151910283628204764577629496877164437912743913684891012528391682831653800591531073873426071330767529489636109862170190469761215730374623758012607671172195488161489162508348582632610798988871259814638716769745587998707369824275123979252858825883950860720234323686975111055049403408523993545207435069639903532701530326909081101516471277668516182852124343865284026310891975258106312328300321211246138690599073467699206527461993560955348081537356373363765495372460906706722258492976318396526840235738541414942908525430584801344265458470143589049556950911862115122118216139150244185278020899067702417330902133354143933059286058009053782432894878599986847361006435642562189398732438692602016179777510093376523204090840520772870894845612796420737794761395094895735243588690216930428409813282002647489536819270277505546097586284422379129731750634488683953974921352216726424958475596674714645170591743296772998236450826566089257126777719808498471540065817083919636364005220684294641383070661104336280468026153312384006421709509933805111208337215470733416831640918456471415823694358422228253591915165967670773057231505852591951404602636693184449747899835199704650528479720708271573431948124813622832081004845990151565165097578070675569788573660419051604126055775103254654826167695938585257455046512977787046254062099523085517344686210377227100201472964075779804841073027253950482533827022048529107935644392018042990065152166554334348152044836745057736111822651084713290485539389178081709458529651306738634396937419005709219519583013068649506279951917686270338206086323525268653463451546168586904078889267878360697362377784578520403742587855993930541175046848521820982662636754239768531687584424199112910585872829275289367618535112469345418226807963250111088207702217199239764885902719277719010442485389834595152342657674806013698356209624124325145977572536411168379988458637188949645732294823698813662416881762640715670022759771748098953473424726064220949862918603730313180653255798302589695026125821332869350172120569696995756231169614131853238871686563237623297895660924391281968894499776798936375215731822692789460595014911626470659537135308535072635456049402047584870625632048580554693106076984473243444091518501318405507329440869021448069162579212953042417250564279329175440775647820618360794735313691535136325512015400393093568004182434256136266412824143966608539104310584645406714708975810540656285054075235124997871778360130504483835020889600665060958513687320665626311446343673690287664885555244617443917360446170517553515747667552302189368912495814082178489290544430505852587308446572803573832124919739018717140894191101526078457003242264672382619094471977529146968971193894435541157881727854115654424110513515439601916747991738815878816333251121913173798024894656500507310568429811537264262773746378867000886778833763616201037711744782732769126117992344571498105792655661081527261461602587080905165817129774068183203081982946391969554260325910471520089873521086927187354942990135006057155593978258232561693589785805879965442838201548819798398805935742564540113261004374816193325707527161854860781160501636687655028320266417787024934541855635621614250873763714530303338213663601718040676284345084209385667639540855662452569922200240145938201002881669581188180328413547044349541240932606804346824108734768582006550079340591124796422046733778856589138187401128751575438228806751071073024748771816933730346459716579124552605469779708285215463040362891885651389998056121621158586398807369978717781010200724598055014667072760199972819401280503023243899591423706727830161081245080345695341968396480981169231236412448095097292114992201757587903747937160042482872456455113753438159085325568364216916020770099344890742113776578805222076679578565155461529356981765779713920316457454782720079897011766002823126433430627068555153654089049522401118600125444975650896573332982295749079321802775823031267318919944620975514647025259056305544333476181180903299540907024894976377502863686973786744180348952734051256044617315936876740819365145677575967433040757906341304441717109687640084134002874701505561044176742037062808716792807438991026454747358813991740224283786346087408247518881231773078282852630491878321680906606494416293301394407465093900005624194710360914850130013411026713870967325801913289650145944660901918475363881021473297612972117982139074625186203302662988965505364479957377092123642425695648768707235556761053796022397193737739993136256286161040196112483274936143322105674018154867239694837626311726923618463599517899618424853821644499567759104020271131356636926166908808982362551300330183721054419313491555970351890813571295558258669788338083492781321261426206338145027397357864415560189206639281940132401514290913970863807847293293151300844654958550780459104416156833989517723317908396815553386821503269015401607720975755812100868792105178777360055430052887378230144222926975057904130527331719147216278353260419632485399604915512010214224149944966144931639273329153008254965575171791218439241099466816186295164420421867448009369622782846487364757560240811483073299519830911840112123583281286500039696496085017047478912901618229979201825963523872354528623210873849512286433890793429976377293864557623909914394754896125349468662796300577228301308264748795465221776501226938459026555229748855131028532576720646155032063409175516652091695294531154872542553699971314055253595195537302973208077571429523921672071718242845528280563730449354146871602276526510295136599349029158931230588376110895409055179840788029334885119783577784470090951339079146141093757336709962449443607671082436998224455921360640406532072136695797773150780463457405166392728310980716830948257608255225567748274855298210030200175624131043700517976271554232955067990921998567724694791361131550576925103829028578607553574192227020200435278175309120921817948714660954275770450036805802549814285928945938506754481892816410436608958139886589570086520540307547454464381597233343403571886171216481704229500045105509060681798855507910793492391150341709883056694219467861640495892499592226002451871624025899214384471546283190038883690061551507033933090500899460720407521386182729916699948016015963991555087343654081090003015733295024060534355889868102143762387657096404686200673831012922909343144568083579690021930433679336648975051078197166215776733422104095703682634766749879151941527192302417771725742739787140866619528980318561436534308821913764071452969445441042719031414887863035223994887993776864768997658274446840877051685147973727263320490242680142246076994708627776926376851682889663677684578888356522896601501826956237289009959232532240228459545416802769174994979741040119022368076035199126306774703150405579406702616425808985353301975118473152365149154515618524145219736494387700264093417782656330060839813600067219093627344141145784005455473581381985516227647815175594095569845750851466517715813555869360733475766905409587978339056214416976070515948434334090959145004256605453040438241001215699134406824898040377078853336331427841763441286633267347951566197144701233161875153430632258485817391132226711349928198482444592562616063208689574589190116655087183855848020294688695082191193541049616144623183016895298102208713078542862741505666936812143894210393466507237068318746954607386865025473570525192986237046983922541767595902756946705207753429300437559312971811068771321646316088776815843423891292477914313316420517933882371694488440754321162108425846760875744184702450750841245342468145086774658387427202194935497126438727014832397591486462803405693298699307348111095155399540586096049107260415166478295123501798462626570130978434998611040194071788981633692519735515634627086032832114568474188044445436350290277983880949200002519949576852346986684839105604035364512571108947073152514384657086167423786662997940823411383819048064832197266188564463531470059256217585981715229096183779679946453242731106661079187632035949140971145978783188111902808808281067286269645949989788432198934564177434433960678823266923496607543547567458588817243369846960552810383534817019722056250698563002329630365134307571092298499959276890542519486937514155254561518633591922459803252925489092076680821201048930629589706509086895916593157615587131683061324162265445996642611060465874644388821471300534878396804996018773917672866490659956004691162918675780826836488656121278175256896843854555174579576534519360721821932338968761801969987272495467683114433628873121631322269472690989368057138646104232579119502945720460090759628658844017836590250324501011123537365004339909549739705745387099471157897770182646919502849533463158577436978966652959503399120640208873694834620933328604657757990683240207954156466357489870323818958597879408493213495157860539803083979243771714147054125072878355376034317739562683300340822395357189222421818980812038603448356161307980785340231158437380413401638946099251643610661488097768097242165796776225528516760797895524197542792968531436834047260125403880009042567329977215347912884331799724855470422422331810608458314994542153116224338928672095990377217275662198149412543416718616325926211941790375869819284061329960503041539397843554955983914990213063183550809588181134216878477327174448030517329843794062722427841403846040017692229233461461166127242240130673095248273224996647711188165480203639653337252495522250836219015918976926529704914722976185826373580464712305650097797763226347342005729418546695413713847186415931818688693459794548099440278632814087525354086121074885122060207829611682149317130011519070054444699191482221309479759305470894961848920792852038844091895406205847555024991295030223317923822680416400178296596368186415479965033506092265440282726639474054981820781440059357411327741756043234798968745518088611362690794540219400823386209947471627795996044222690887912950774722574618211512887804835884764814398537399379394477013657055976450940539749808957147537245073511645122148729295788564958277752952891563408055525275218489465003681217286631918722983155688766469288960737560034524119809462786546187236096895266927280546765397876176402299096687801057735963681508847949186714337508853714349958625368711175435281604275895682446388817579848907639501390849327079106852059051526464909014322877370507715872431339068570125595414735091180272748184121269923000772758158322013062718512469584671285693513417918771325325555186552369058690833748633219528704188255905864745412425249169713525835979765996879609335401065576501058436395701187712355824937764052749821464914153294483299218977018851151101451838760935898700187262484626999613798270142661434856616932148889647523799174145843018733067494720027118512571902094257335606424889328372746877856180695414378635021515955557864445057329778599079197811469530256979664163059080571572808695766844353083683280364654421134076988148411066887587754307841420045094451000647520109917241686793925513931631352321034182753015584993287233480264496294429992391355526037051216479986805812425024675474184158535999935055626342440790178718793088110532241203958574266685190158451989612401097392277512522386481584540664386937102202669891847424919055798292980802616501521310236795851271312088184889071280021572940875711627689533818826681448983994372145808226048224080248175521426237128841347324668376102125888801317107479138597516970547534922355447548984099109522939791309003635571635131976547641062908971476940071134893746585151301075956707591368661663964935871810155735404096399251161729613495468646844950626622361673552347513897277560429154629787587781191107910975956660589657812495620126633025592389136608669742864042470769990932879426956131128739399657400477571145085832795607363392365837759426947426637280792004487190651611507782989463810488320421983519000633935211087867173971709759641001799908489424079333215874519221191277345040578354071866251990155416403705457727839330174149061746080974386347939520853841048272807794330922857514735583482121985074293211747494133291303619947701963954631310180193574702803024390861822883568940758724738413866965325707126148051452950513353828821566844940377720427992984751922319126481840712068863040326026393385235518165045712101690085209469203400663506592271343954375154750275881347037000959831916998570493391631351907678884599970067420351344855211597354109602592081640904774127537616825148593435148833521835623378936045335699584867197193250081767868731366258520942243866411579435310430875263812082896915602574701324770999911717507826545014871849995037153327228791367623626795404783014434674752823094403467139108617463347904688476819496355411148984914151768580602943504345754454705107706641986949663930374952125846816949891207140876324544981459540571255178178472456160100924365053652230131905151527211746732259833635094680635396365379624349588184716395761855852055093784497769346461104260238145315325428866896942235940425362286260874928287830935476284301896998492892657522326131898444858198140287698618562423326559868922381053767019802702585552721451985221617703891296993843667399408348312433048231498885475585990140687062394004321892101390307711184880590366792913689943958475349334965424811782459766270588863048082584412224273112573243388093768291199396879300237314653590802261325511411057694529732127991586126986686741375485021814676945664758836261834617795938371951418489880105498679425027001848112731221723278825491769317787484751851842465561391557133460265552326541412053077283407974670445787138438237628279262117725542663815639247253000266526256638588365517672487773064186873944266069655921659057017388454546246254148669757636089446159838023066590052856105516542004123807063333824077972357778281700353006986946116112882763472504775307727311824512687074051769037473006680937023968611451404916242113778649710446112456784896853932744140998261360510605798947552681574579814651573813926638519899710605274825072177634124938357391201392407918023439346349106652808438653569093528412967871442625501495223788003813054307626369753691661419137329952502126065859648201607302837789625962017972409071259221634322817954191472022639871616688656190793183930020930926242571970881333822641968197683966440053550085147084291365918559194344433759652179818894521251880182607116278112135313325826107477806067943267966520243737986083035144019779764859396329857932803727405496751352595607915304087464034302244348582848544185187193693129474773717073723610987944811299576961885528594970224184896339396907330575876158036791310704988600367010334525315050107009352240244919698467955175684970721569342866485682852665884293691759882287556290938416108952434646393530406541244088512515933348911967239819784688927379810948581663040817141009775318647000702831009370929852858795653888287761771750851237178912686920276980007826812394012661123131559786626049834137038312528341505027761280455163197981173331362259891678463322768812976236836458569069732333887337504690733911384980169826357992269702036388255115782287650109831746510809236704548317858240482277067860613395360593151492427732842876934754069870537963382015905514610019947730227662094079170986292958124088988637055849991158631603634884319184528660168065870714792140011442003428224221782916810009383769877610090781960926094626923543454161989880109596781804913942520351295087155025094218556375951383794358085139823841990308379802912840684018157186492081208573596721166804034555566664381540229010639232668103098807108259568918317969506183530422659035014382783246318773485405800496475950192650198527345685005428926504839532362794471893000999978496421427722547600202322082496738378765228293356438943950184517164913156305231736731884472330834747022381322720904754779433036475156205162595702222479429238263928668890333574203932162078879524390754017651956774574747999060704977553709266414643621419580790681008805548389198758762633293880873437563607229426268802227953891244673125869080368762140533681680228732574886206888977646594017944949606738779746177401332980068233642367355340110838403210822992488456803632406029473135381964605854498645750634219026644515740064183423268242487762614275902769706038858520669509583150202215630041953860859114203402703946854161931005029507841740559224965085372026995201025306274897079503543433814566505546589803903845175112629836218723289919338590917690772015821920766442963843852132259454219352154758915072659339462209273929561214223438677351187972515582016837388037796997598095973793893574830058737573200620004343440814221005150240196573962127396146298200095501547946515843561802614299350416284005654560208470435514383806080495321747034074855223952792071066202431739427226133782133439248602782684107712553704918169486417726715657547044586695419413311301047376243325292478730023835036744495308172043030654523775913568895507728658674054644201589044299484631286662165923944429863068874276318741942634669088021964103628989610887888440926672631337638102757169264675134421268138154858724122352667686204175944718929800569109295755993820910306655392305010687960705253597618704013372103073918359322948241594821464874433273481199408104292478048438194785986686884728932549908848936981095991765955291613524565982444838131945751657857077577543071690281057613230556054718761569723079658348022611471670285883736473462614237234272413696931437254482429852061399921524220224029897473256412424992827345974536381490514779632548815403098717845650374017031857315237498092367477908313613707212368108377145821889224339323280273555574658856449438601036651992866733795769961992676786427742849810531457630120922120898535454166241706276434670994700593140135958685296786085915012273710293337576601835570677849707325909695306947682129222766919656673505764474541422463705513632120657677175833963001099979442727243472050420919456452862127937836450553606334326060420732282714570278173665275864923224288049379355383376131897223013600525945544948833764522386214424566604740837220010086791305144324255782966221198620607093189566364386344314408473716460379988216557304062043900806803838438609486437613034502213832454050718644595270668070546991990676473144175327994948371076054697875246799587253407788325470362624768920520273642987518197849785093316432241670227381611971016708280959303226732208791210962980431168990451860617910833258626546756131020899871075788260848665397146683120069106842604537662689748911184499655455065243786765633202523233611102226858014422378677838158693132777044194059101483138984977523452300551597483241600141958513401939652599854459951792019186377718100280570802360324077134874111187513027329915213775547212261609365759443771969239465366139764313403361298818259592809084988645988715034476607156987643393621625952368494314704676470282547856764159023956418152373944551888272627176339272924314294842667091903664936443626829810933518646137280962568146261175437925901237949751541389746458427071891798509199558798795386498236066944706389604827324337573299276629239431617361038944164287028378972375828878477640275663535020622079753281822706883969296210287725302389498417812487853368131227877733907657483776727267753664080161850431432071161514523197947793514085529907607180061236498915304457074471394802681255817225571320732031288363984238254652800946946883971734425048166650374572261665704707056975828194112539010626065280125269555861342086450981591287075477356649254423883736836899806563195555001912536741670873145986544897405654510461035478383490542741847270441943686533604696070380606389188133260163815566835245321719239006311610087391360454497805766319266227243044955721350121419573784668378714778678313566347172720084436319846596341350357086461912290184955770089969288015994403642417884014778479135718220384080895219306297650681496638888681085144158153761959059435296055153748460728875490843076077231621849452117476036727107197667048499199891690364786147614086933406921425734642552346825039162721139486373844088022953634011061839906703336034650121516123069482434648471921087046431964696185094741090298851625925937595771421108439636530216992509719289240818640512273787717329732703743556632964417391999081416587940794371893398785886607186522648269891041321802150059489085871681255131613102876213160360694796230694930933842422836542725603169698283308865258356587407425003566218429413810411203519951871643794092554441849984944548034457489663170824490482112863394924594926105971052946263249266911212394031057314438941571020581578398336503897800215640060679832117774836625273704451168915479544817995183383870287117507621252452772481298796208092155866734350288525755331176394764600123406871997383248161425059388063150322418088738515556279057890989761271912796548291014705902665048188548864278589577696456079555077690188464213830046191727040101001603910351355749104317323858550289148524199209595676660465825632496789557487063954119451150707386494739715751686372597365256371927955551466907698563595342660623401725954534305684372327873819598860619071068545893061775340626370262947131485929760638716243512751370992049744385608631397447634123119042300574914568885538810678559617631256420707276606390326333414420464836107016153393777985065078222244436858372941682768015849949668519846962481631972867517980624615259476915598064556633699200939145448038231869413309868620317668452142376513477281124820022659316452274905538656201718162071536657884998588881879708288545474058583233473796004719881234203946085617859566069579747087227273713580050225774206228351537169033104882302889236802404554724473963431323488518312125402015645585189196616150200501648133082697030288531253574863938618649348057410308115466861337407192003564897385953876517937485538647648398524222431656181306294374274773313428903046615470715811530057364875085988817753983994145784042485055416811246119685073991696070580187618091718667667198924238151480088991863267936878772517309672058182675764497905207924859770881973008031460832360441520676159787636607698092990433952516497523394939626037242737285922125481760596970859820258634992135636351698165730407205422643823859524535949166516221917047949411722963806114848658649648965172752964154389939305169699336465258350108974072181750703699986219320424200301011712294326090338324634946243889235205354412371536514267416163637975707903165012595962118811248474750629296364249168608017617053306928802202278390218814739426720561084031582829949360210807182606101030702123607256535284687881233450389058508848474459118730422811347950977707610430724991336624605706418856663854189804506997630942287972967857896433108338666438883700437563441500208828373838557664238292802876948206320752168341211966435288411960562156085885390752584487952839210644156249194581378284849139938655440525344215637434886709536981115867481309049077300572899879817592129366504517986052673781962000168060305934675966402177569466520347833900704919687660340128075612289627746060474823069585989470152443510628737302419223855345071454812848869773046399438383140427683564583450564023941364739185524706841484402229232932277932550287310042722740107004823710040735739985052775104986507987516380854546615188357265533978464090009134133498699708906863450396322778566308630524513200379727608175151424569211812687307024355368031852909381506001294114637620056455120013752886691598530873919746129674818445143944676485449327309069588664023770868481071898099036202254248367045032909783811148751706589460029217643157782485110957196482038891548211823717069356464184630169304490129954329233978514366365839767230733935114868887134475239617553385017099315167357015215357411442298760668453524007767826439026157222045826880898073354238665083237123885185763683250625522325698962498643283178278393652924580530716071136069716192714197784768241735699184335331341414617237689312933542602005233346900729538781932597465703272883149158906936327054114343005608525577441566164799610265786367444462549072477183795532101454626273020969865508758658723907002505718666166259231599634781746158016587068896911412249268758523723056296847355765871397394714765808316358607179925316665052039018189013692342854652927014465399153163801258077771022621235903535783899983230800179739036269997806260034936738312450654976428159996291965083129007819741286239780257622728220326302236862782810119328909520824645559259089612865160606202745174094751393105077526581464787651052990390909365384618497393631844630349497478069663675763795715497938146820265516855172536739582665596428866483693375932476149516303427798329352580126252885839721710633356881929666787957035369130479802156600833275823609948248281324079058101048799122772180862556382323232345103355373435313321062553137245283623190719806578955487998282037552806973365577462738944692595149070559261394999827782804718939338745950835974362011565455444041242189494712301023976730635899439782118714498307960763230690173697915843083952410013130629280331047127278989423723250717031223885061879108029874058445361288439505849926177875089049345094809578811289113959148754487530252398599761158550352180475763729576557989508059029111090636643661740025431901087892579857791762198870220592736288687916754055022929901160678641290274258764010959798532148372673264671889252741870516555481601530033672569312189678351599748354411250938426847330753775055326888293347375158108704809328596769700733902570725274279111243236361220024448222853484978523384214115934617858256017127508299897300451520646055501267004279559805530760079248688018196596149967145150314467047447969400276825858741045839626495030140405332447837825064233266844886361350779995637991552111150082924311496943257162229187123141946369103754685592472885060623807390349190199056017543493278846031508083072118245918172528616144054429424924959460522624184063052060855364743463627644879973411893106839439848114197616297860527676747282079038949795595100018456312956207463077888768991761985811964991110520196627130492892321971487236388342797348933548668631555708822044412026905854644845754792794637087425243310834726892023447830635533037463465598990161041138266573837313153056992414222970457792875871570570881026641832817630530156548362295932448291590523439208311669272845160724666880733261601385330417230265309657051227459097240462021033439370839785234922503414849012037640779210926916425384011631625930405660042315382234814060602358648963402132789997158718971160564645584500669845375669782953974680699365325530949075513969319317369318006224414990854929364236595148559965051669708029451354430408528402775169572487666162926442939047244692508856453816463728391027573046763195777597734377211475220770677192027082817749305719061740969230868459715141647351338648518039926448178085326410052672349481128562695181859022049333429466319534656280367951963228961267775540286130616466312782911188753607528815413961174093484384631142342666414580835315767813344225029729540942280820359804448640703077450561544060585168341228206215772187308686202095438822608803824395530580262303105915306383526242500153876030255061811521447727434255199252437390064731370268051822153550643340592811995388853867727860331195556940467544886227885248860277031521858957467750538189550509208293687708161209553476832644316003429564682896221417778234373752386263557577093676414793827234310713026046058804808972193130070433767105626371550408775757893716494233750114783095368844948718309958025433685140284537286539979584913997841047076419222811000065342083930919901609091212427849447099595422886619292058897603648604452202039673127693120273497136720468985247066304931012419356153378508145784593900755068222693309329398552918910089060921108191394215143276569249413731310936539675758479808667191341151919482420793059556048460792769168356799914251582905147425566164560780654475830697637027222021821016123782336477367068050088808586885640497502757194126675904606315538423753882312946844792888011985666966527813446291263660097282124522410130138004612138377626588451492177077667042836121921472448490240914282712749569974267687222183406878040846770422286966351676807745859533283118471381941556783076336291682550217821762181855718318235721274215952279260335429431808938341972298042443742167181486992971309772474990402160367220896955174639696895572982810200684304929661094563303857446761425674112504224647565659009099620059542074832240016997232782843058354873090406414189440547389932611902550531502455759198967308600802831756892929175010210030966837292526817138798690409809308065720753154008605915886927944764562374849385136955888254714264519427892204124387569563410479921304098262796118142811393072812439283096795064307192205970517674723642927676466674882458155671730351343897216820455275962559282592531922033195085961167602821431278819842626268964434234598827714856629643943510361915996469454509271983412882223765564926203146244229353357159544185819175210453908162949943355430893395223936527383314713777029462888420939573948049161422601854253061407482878410174666996269493517154620049878975894011737257467308474456466513115761724025447438892712729515015007098344023533459269488522993974902614384328497450292486343172332505334373066040318636104903881224434234519816723450955816370222895358794561269087554917797400046002368620692477099494502673906546626183777421293506092099302831533192273753579973488244231048179679106468315134349537434476108074665862044087786229172968412934499230556104259787621188950832088332624268899855071121640544597099378133207805081385004648096881726733514712996120771601138997307889431710004295822111136259019395538462032055220601465747457731319955992398664086812804469791020704362662415112324304945849019158871427399761326068374383550000952157996495850612862963685512180157875536243183779767109981541063082181157597971062353584670726501671394475579513823655110390728697687317660889495411699071206228326411578349276649459785725004880735528242968338369624946230454345831625435006654713594869567776395022298245008401441840929143334292659529244329976516923385567207420917551168277959032117926389262999033575058876408594187250021330759989669111408532789565097054116970452070593993666540126747739346067256009607924338686623667490863236618001800483859323486432250621086639729827706022142581827691218267483223489871208743165137171406466159654215455792101372223321147881338349041231291072093909789362720052856171639903361713990099260652928503120128060562933893135849307500777966484587213840355105758042366411357729281625551650898237105594379245603330094216948904735164259211911106338036568121294761499668242165070902087937250061563912179711398628130532516675408695246254528484436273696798307451128533369570627306102845194394866504576895508658098416824011051857424292248182120388049320409872550265975903649896479515860285206065536317306632231075321237816256030968466565241502953349484729070818438326174640454767676012439301471744776566867904027611868483061323319568304598035211920462382807806532353524703974817684706606981656033184668308349560360344421757237802269826670889799906933232047563955188786621394564823822106681109301164903624651171182653796256014840314450979239181325968565445709405005465996668141133907425699300100612208426067868236243951844740144302267021767708187783352993338231864151823281853714867822502326586913454834683915640572020296775872208567016527401981847225487651789909262769814190644035404268360065830997735207001965774509702571871255966981122590469971215891896269440558376082599793146409188414837077524097885566104323866860507019369345318137386446130734010313884235888155989512247060628003395996718449672493904725181749952222752694982029669514996733075137615697233396908806491599681707548430573445040415682362844793753741974458974565898639126570492405296783514398215420700078518831022019806060559019040487049348536361009493514155543705049168360050391324530567795609946304240306440070056339564322119231496845543862084586214439771498638483233610014470976424802880978043061512328102898385950617706725292078997718263414228805241129195433439407888725848981810365060615455965368817360608063145000686740071224314603380640827051791738623009193016406803818939447412076567584009886841896894352128889025379468764561919343297452584570781236958719362191642807963648024466453966262310400160101771212287558185180529175639294912168319870429892931741706740597519327621428339413843239475401940391672285823511402610540995940238744709321336482699859070032673990485863520916802020237519384432662572795451844830495567886006570698640761177899809220450092482590991285729185345254221020256313810240050442927742489376014871607780163121037326606514574749241133440692482129795998889689322028560654532046767176991401487138179491944454185204865732898026682693120483224003118668661867695010473608776397482784710173944263339461103414200182607710648765006773762755398220409712188303643557710173142276125344479082995044191923381452451867847520613798958681057233746090954891522763536176041214417280033186082498413958016804826018107065985049912181223795314787554990151073546627233120969465721963066051085393546987317070941117303320676069449314273724286212290225958337261717662945763001462127215069060111491277821097300999153507334429062734124918023701615031515750335290641030788071479470983617432520159302335166147986128491258019631694959963236424527213972700258307737568520742098780660401179414915736874443238582534040242459325141499462712993755436128025906134576520283355334163843572541330051852492671496823197573425622037417578798834212332414653028619040057382990360757181843911151241920700223187343826841733481995070931685680199901149456825082411618306705605104998473184845734414082489529301665541962421532486147004975425713212860168703670275959193016854805232957053180222369765340812521878589082326244112768573509327763478881651354196612333434695975329906764955038536853388260364252631941403443602188476170214293722328685995516701581410846851124400845125886883015341793570377903688375669177091523266174636519187258510108174602152679365683906252725944592654906218651035469042629523586608515249727443665882133383192397241393786236848395984009679587813372480019026071209292625656668691992615956091710991451818752526684683942304168177911893604419668960285857500858864163517065897893666784103456011965497528937821343069270298189312813994331698381762370948922985385461825776560724029185051315262270917827191534647106783878716221408533361558283854690702780573212089298046954266742034279042538857718151097705747587443296919449896039943751135152508933943575999729253424017871608545059903764504184936557238351166508439916327668456113571527723753249718454991560669177311370445267131691994458765395318357829589625175895103357718889889541477649279473137871483593287625247599288876386915775332923972515457525898702594446164223653251412608211254477574133579910731958472697286319151216071909523032968283799860987843030539131676566493174136690578291114327374809511623620367578005149155071241125592031257174422527878944852777521339653794158338643301923267902215484621472327156270467741617165692241913980792565680896812036519474925995713519840909235640201208541160029313644677158346652310257450402695980968659225332942598050112062233697394366733426557928690211305193965997102157121770652732114217351489344005222015493109175075231505327691297046767307667272642218407605563236138432019668385003371961295526679317036082991599400447462161236411512794525295614962730212844783600203892110288308214069040887380155137669499654047587488205311377341559641518137391466503841820101499927054341136245335174117283558654591913897639910542444947837644117754203548933459625141758196470665810441282481913123979782935611345167758016283252813872274707272226910569624468446089978821084007080337506870361642477212142160861698333765015735770535280339449661491254287691612256495442424435750464485056607939518658469241732613096662935017827454921437584641017489974450639717245306236449320340845630746308672646889763877545465243526131746823180945796415478178492889257430555181938292355811928565501784923251981914706569902923463925794190738716349032950430923634880948317780592811468588092559936815152082917396811095780293304495583025666827807103076390064626167482134515815680898239954797367249434618684498465754094337773102252884237948726805149813128140672322134446034456369033612442793504460399065970696188837905679752237809573104021394416065223076633886067082749564255749727166857776607512109851401275508588518976229886265735481477704242458267931527826701904838405136887491524157025909695158318568846244076471494428455326764354515735502026758150941884549426416429633137187632478619596001021320315154767970595899116121863244630084755800140506448841221979966291188772841066582836185568701038417662434748667288042310908960933072633475249006017231010581528000329945783936845468270211923319439518810562823000621120407082529477597886231599925323379592182850720521390132983025470107571498071726809160377239127975436929874726462001316965411621615522876957489124029700739532209960738463585156668798508496793268996442218832253497449164155232379955084616752490548952004687617719140109794435108811282704811577116440097694898346269583884325813080224162879747745752089663290910741053638431059812388123162122550969312416903523671535508563986605075584170303698150088798476736020063682609001291810419108002808505659975896532184738747100248699353767478540178434756531299509870594314487000619172827211551706857109859140952197546289701138685512683147209724113816094327039161061008989377055161068910742743864906294690739997295702629323391101983778865982467806069083549468279771931818838244998174999278734187973933034438014952221467065154847559513623445103578828257858969370681039254143257781930625248967680158000397492021946637402824991797110141200802632938887615574509126873734352800359659162132093017338637098546573615780506736962475132090906505975263719950964316383274590987500894827337230910745558339371810288168276979513213869954644852815957005047078006897311518744565683789377719504407315001053059490445612187343119789593213341799985975490139101035831811332783721593641676060338182083971729392444225680431170231085649077771884813615516339470705339326721408338638342281287427076814014541385571876577942158230358281466471397813922369016345457852022132451365650292099407930975313818474032376826402967968597902356897204882437267143347205924031347620329664519651753142436961021806568096756841483447908786409542719516865154932159962270205239821901225725873853545508966506058338876747167839311234892810866793590393113080161292745453371226363586766905428914341796601300335799465395637846197371765826566838497099282148772645294327755848364787735354302692757040960529323796463054160175998866569979300653014644217110659378554821868626137643486512623802554962990761700327872146736252827450550672473609483925798939916831412240095223238319927149810301565764788689566175691463427352932429846771847839924563056740405767959949551874864000019189286586742615782745670908782504078644358686201095673184288913400727920136888492583185328602158839724794091774526915669446858707711843861915599419908246412243303223145576909437341865754436595920186555625857805851806830077726928454392059424481942901106767469682034766793103632387585909737619222863482955230710296543629174161099077407751075324119435691528976397305354453436929727054318189718383606117698944680639017431502995323103317912529594605976271184461521681035843026027794728269760979463340020669920855873626623496612246296639646227854646458280522217911305029133938076196670924211622272414286412445318609849338859126455987056948581371937450382457373825928584881982118551833502400946827511191107454616555207086750519160389413402672232912614480538002663303254859462198930735480334864367388980786803288240001148916672426718840472970033641701620847776559495856284565053407956852544181731787773149161656945084149529726842258835678274559348100517091127048679482241867647347129419373961219026793010500383840895072052915210781881769248604114782142467435052582947331766162239298837533609478861452255662535771636885003217736812891675702105544743548837208267578631064575663052005229364369311990532052932890203380512106279326053058641768629923828724385218851277349553823839957216708856689495541279563974789382174533348720153301047814227941562418900856555856863504551863745927667243784372468577940311585191231518704904441764234039708551818948862859049962351126476248705522379548284353628689079968776329586756824361292276697249594213818559672833681466403648660388819746838305078935098845555936773570517209062811327303105408512911007171163088760742431070829840939781591046686188055838467964583271905598123742024594715118548839614271644015942216024219975050209034004082259302840839015165348179177868281372094736598312236955827223656438338630406259739642707111870212504455801170437464818616920867819542757703657101260707866393581208116098314067687873475487476551131868984563991634468508100117277204355708042409059738367360913685508213632224951510731362358691451404673915572778730249609088147784963286960237779434421520150950927094443594997700315694365430135012505849078441856920077388319735236886458108941511202660119510525526416181248727331306980824458383828380807518620962321952409938193077297389872848043313335662432963173738676928324060186588217681371883053461138382334165899789011513720317658727182190305792329817697247749301589159833223569767933857375527498567092986446689244166500622217290811256464128241405803615208507676434197481535794009540441193359290443191928605174086600674006115429375653728094142928741769245553791674380527222346824201893389103682366585333520348465500546892603686731053261541501909740202002233159821213459744171971460393715578563578117849284228404880442468330467573962556678130439393126827882586370338141612769657151814559422058921953879903397723425620470215827545047280030217687894127573987756823598958075453185173643168887201463899990276174428910837131568505823806910106421877633274818033563086063246921891271500647261829857750910058238779348213351459679663385164703748906157937231343006907389936574816202354535317039474464337696872137746467801571080059712130844291494928990617685933600326046401199067090728603410866960267759339826842872812751035668807163641027674720588116795625830467773335595630423111106045990592456935780949044663831211956973137994234033517257931816479186908551725851080842143465421593786888940238840003694520548931457175746881360393208456166186478189895536642088420072044869741120815852771869543862073240482289212355645509463190791408867667970971050332640612593992119438407585432400445177070349648315979842204973190142312695251473077783435889438172386442454369460777716548543897371581704557944685908997595763891454564460675755738731388750303528531585815027430691468532449810994878625369593420913817083727805004094448890564641796860607604295085760413610249786054805468857950472211864424584546806845081795175070521564728267632735351751760253355657223930991724534870150656508625581954373818460340665681320049955535354687455787903865087755175352555653064430183065477873399611212896418168641823691849395159158745493644621247478331876202946748314155371290597473401902453135949035579037683823843447369290272888750480775914896677355320721144051769472448971652205229941972909069840219217851715624560742904071768502541012396556605604946775642180690580731487781827983632640350524811092187125910405281247131660672015153439398057192383473524003673347533440870393522417088815348892752543924066976975991503542872927973637472014393548008963063976711381254779059884807222104673960666927204822952206107208465465253982760591670318393414066351621997938018907977778450057354775208129507235566709766235856168620322541560242808719930701292018479156164636880950067676125655617141045948209883763041609938344866216347937371122514491938784668460997159531610627013322449211855175042927901527156083181768257781310296594937452310088938547668321788960236596277414475592949433707634254582209729493706003165332188758566917764297484808734827529709184371321880040168564450334173885231971838309615385432917322772661776352559162199216933428441642058369107576014288035136710139744501596627247315140545215838543814568411686804183280806714287088110346873136334424673799317777658227600070877433277147413136366824811244755474965201081631006773657924957037180644045182390570470855447946146877477139113774041566337911185951842783838238770749924162680410916602885105718158557531545263912199483106097170212994114171994014648185884988390456009151891934523280908150680364656646024802638274736997123162662321635711908986917286630393947314439561435937215044566424894303119339834838172714488917689858115223786015111252305025221985422980827190742332794380158453817806263357908872871276478082571362747434293052222975708854544032591307054765643526462417295791483019052417993763537279800395800666366094309797081629209974426237286271651522124305061136743999087191414919039085998734964777266749368121755162345207155997306796427461572669740210582030413119240219361011656825068074343356836671315224956856382052825663173405344409731947736475606829188836562696152243327251832584128991844551329130353656483243485270286886818190051718778580646429004447627493133797173962598265816600459285838218753609484450621846573974297629534870738299974349645008526046257423658180163372186762340892805945541366912178066240894003834970892945518629533700008697999147144653744122997487573845099139994859677057816760208563150782272391139476258188330908964713977550954142599623137174364805480165701190623562288532466088619455917639847303137218729063781196374234207068485824451071112584487505475674363360284247166093198400603987594281951893426027666166113711507360358478546818149407995470655145815507463055795061433097159037135795708143631484846491233037129968235823624949281985969828471136468833697558411603265942599878925281907581029462484902597842313247122903171672214291934404009572555400231571968224754751482699073022192662999263740876514570867826318488835168861738389529718356883392813425711324198253065190240691104526782495514828753635187583753441717249937052724541022044511136575986347596382090096673307467487772126261605025209237456326535832523151906705861822565904177879448581261816026277405410944526057851228197462449657716312186713946399486421177860509358906576357942693983514216288594993219913745805385600265734590062601114721810061075368584185214321647442787359903073463453349582871844504135773457267254242642738688096442654862586334642947801959685648427328026527228743187133572409539984077322458005038908671267159638161098711705327005112237314506826705897144770622106490487691395809943787014994984339983258812161701372940776898314986625858736580608919208536602022317458741610381479829668505126959680198109290098138964305140144090249770883545835338490256747349330816785047945397696116388491633006236337774865767550573332327138765483072595492146441757746911909699438578486144996586856293451807237204417104934361101704807369446273862540878304302929366872933916499774236076997760120000880502909087693919443445245678951855258946376581400263794300841977885037934866360017378051514839494535377094562333328827501393009126260695433370926546242873432658547667611311664571730349352675350613915588658099890113701467858379467729538473764911641996155994542804242349019953556527312387273610107983845537288251567266978450928460330636000399318428339480558824358113556603595811847175571352106748110493739533738284504856110436275025636294296019461300143844900112715619384954955179963262122855208774486293161525273746129841030495669748577328562923896986043654813255048436364326836011892663168580230577475771357857888795524747661602906298600464023043714879944415776233229540444216195022016518011886349694590665676128027815336921170920898573543803258050557584512037802226782466860196806048017482253850082983620961689435974837561842521820596436529500844028339529478287444621841212750535351398493313061048806324218121930099665513318469873526576948223600902782020500004294256278292581714541844751082551303182228340875043372045568230473924314850789565959032265556924499401127606382803099642260566989645516853338063631492963091823590472441900075511973076575178617232666818795926316383618464516965135593630233522612021477867461356191808234590440996723384148336887212875012663608559692294551255191418306706409396794669576608440379825044607400527848627035013641051228145845700781804797264183241850439622340974637275266872449595702013475513804125359854743439983829200575683775566013395859886490074610380064439899714218348400208609671605054197842747954838587301367867673374137820322714356883587794812136041591988174200786955948995440778042918836275767311198067350914927092755890129654640589425815046321616857253000094743810666883911192524947707712208705914587060251637966404585814103509021870112674423292150878136708456386253778259407951919976188313725554954126220406849530364432287989074500567082066498775448798842444084156643296204506552799398304528602709376690684909986825101356376566287033351704007234663759833649147605884074626028445712083767775768344905238894934324670774432896967635900516966614971148441295601716533292175379020650452331429114006275359258161588138204138263344370689843830477230355038188915137045323120185560002680188643040956984199836048762808420135094515923072656136739247074419502525491748372403666478611990403678466080029296027057727485923192838400767529713076001977112773971207388534559155432231890155686211602135671718944472259019113802509253309006855367275031573832627968301966119145553237561591935397696087950437008770241333063467370540060474626640668426516546781025942999940750457441399979752879926727189598655049056904216693258574351949390026599272668845108410924386638891174476068930160680551022479997292323663754965176663750958807256931587019719608176263729401225638481665817114683983155799832103204744245461964938729405979757171940471850947149152282563151385083486915296267141321675103888614775557810142816676738199425052963398257181031214460492003011664433920986377697482063593077067251970123673002293206659200239126080513264187014778945917242771878604846663553575993422119838838764542212767430588209418948690241169135172468579835469732346488472506702359955562291387597665372635615673767509603387625311419236176092193613592704792002424192433210692991215834436041778498336385247623411362006202440790819002047591412016265381722347754539870656199257664480779851391944918061815466532437701865939691644937880774574098673813256844359081250396403914998112620126472705919072178862796972859121415001203871899999731794576904774334847721448012538632824672183205578972941232131710392339886045464723874555770421851845909306386247907450879710616228123254700994106778352423828366530948667253181017261239241873625735953641671503092897051783445473893084145534095237832259875010960486559155355447481258880606708783629530260796407016836205956329253408370279545646194867838156325032081325265432205851789021891035221602762856876468400182209763815653053785260269459601438168189056041025246118002966215683747853132068242824562945123561638309374212547371900949971746092406778959591429823427640408552254517723728262332872908947210370630317603990595227451954723604355611618369395125613257580736073157317906257946588452257679638721630560183835509570924395310723298651459654352987192607009348961798064691840098403697866246381780317730671373642327904381622564837564534534512582864491325627457275505228318970376035221680268742292834012624024696752030775922257304833204585225502379245435065639229431396886037634128619901368870917629550537797318212948536642841842873514553561833201282670930068499919825311405957372259618202268326845478365098838625881071950336556345161484336880697510687935736131489977341775063419648843729015373456684466182622521472644960012653933123013827761325846175584948604852347718228623467009807526481212281692721425039823197624847276614075641500679674992904219596147480612906134815969546273694907051493434689460743076494425184514660770388172572410015716868870660728644919280425664948923702879011325845976703867706891053017063249007451682497751251001025948327439399492693721586549083773685004561899680339208856069178946334858133780054932683430227930918129640595677898820032768921037218482921826925141856148312255133238136573345595361652768071350195767224039456436410419714320636797834804153368189521179661176907284771592604152582203433768663927900507840484713734419404132385902410744716978830774954908220521443344581131307969084531377813327997762318939613813107234175365664480842078928563788093796740334746806020976214209735289058305419424654290183545999678663190420854823755997286256269450853407350613402761630992819212857015323920208957989349206174317569135050725677876513076548445789388553469286744458128941164354766422310598149118504546772669873511671664198202808398374793423782635585932787403622821129676113972447147549585247104185668251274452090239628945464666012899646904400786462329762388287092071692642142407816305617546264943560705249201842353558313287758590125266532087890019086179450319189995013945846621847591624554761422202410598763550705026697487313462764525811607700049274604162175895964886007541142030652176754051266178425666712583612489447448388682138499527270280167756742356149039366687618749793448769697319073003064952802599235883032230356233861001607368035921298505817046566647523452185405428679030026174352342712088165076406339820112789521885427766152431026335438291071362748308123072416291772214402870940071231393269371125177051507606955611135126979211167044082490630495942307900893834795516029877964616377425658410452901729901535599213264322125778132772904993800545054209918399520659238920985312849727723174878771624915742030362779195871233800096715094468969135911944942073675619670236505940744478624446635065919162854043151514176551420589758392617743689750266617721592061542152346693939097858668509621670668029530440483348941070957265750513008028878857355580235737288735101155987891570446528889004995142856857418135508324844539982476432237260924346877352863282495653782390483399487348207449944876788960109091390918218397697332851485317894426607195386010386741781098373409685020944220599663105386459488216137470782825593457342995495929741043930620951557389897084543811440467739713154208293545801740517001970212065993310407125507170634296175146185020591464618073837399365150545057048495649767013756074134413632281819233484987348625837971414467256121231666268767238104328376762134433318576168870034123417644961304676760773018924722753517401185908114792134022561923077189976483411517028978292245938036460634836222234223382856281085489628438609637436242484764047986285144458937714575927034388693876460451754777497411496010442557395094965909723538628607339818611309015647068640154894811615726751986735129097623838906299319369361586960467538182019133016080784791564687594908807141178141024808350564776226546878903803464356280352568395324729535636786979415518323593823362134866071415386378354268655984383288202311677226206997384392379605543525112342596389753328978590473305596183278524248028552524446933637360643452270517926222354833083070050439874497412277348130515771098802178069631941375126536762148118691692163912979361829338581331978077978253446137185904440724887563236224809055059749577984015377301769729575926686224573664031627817453369065075085206677464375607406427792296367830477417563062915306553563116794216156027138498689196414243951050186487679266101981421495194195305960143259439484539573552592417040413588947485189972353015579428859605188852310224223487677917173047702668629186868886912665137801286436207164220467652723540215612826490221195573002745818301469399585974256021541335007701631831208454318942940881976666495553535906061813800398792613949731668199648383010979070849110794615602971873027484554217197131900694331355027957619721037044860129997879884406698214769705576791291377090661591814592126711016024852018892992926723147442453750958649605997984660110984560614818405849341515876457070050705113197273738698455112017478420380443912716219598476915815130221024046415431013111109055616448943569202394117192951526722807959599282807757889791288284883807618004422530682022444699413391914741717741457735716295876220650445418470681576116916470949168254007095493809822976381230538150644316041024568959018410005407795281179467421035967703763364424223180588374593030415518860482080903608587756045124965505934109890456926928573240893107399831711164123886085067312277773421642190352234330812391141933991570205488315832651253731236762340950358708554686482440702368012243920676971637552900310073076411730049643013264712790128759128629780090809960059658395625817803829627026045337621108589587947132797147782290765102825399526683581766840807918281344477944010221976924432606717857016864380668224364380005267074299582610940061411695379160306092560156470759422789231822580361527971777140260325408798585239619247190918537322368439836840365008136050921152349999702132378014601636543385059523699409670527696411189749852120312411653471299976952069355551887328202400666072157842666355048405371130386646642387986110628035176418719486409745569523957542604203209519339954158848565360258276119443919396200682105175166792105832563258612309098534631319255308596636386330631202019114323076912262588925563921883060837281003344831497146683843412033742509351076139191707224124793036807666695576114043187130959265885894905395376589909331398070952993497931596036850882668572523887233256822956890871058825711264287487487633418591784763414790694966609483834474711460479563738696328181400780886928159455295489233222394315360657623109625896048963320433379191688806483237922360482018063846365420339973660144332087384297475215872205253321336760037585342282722545113979818671002573417634305376775271497919288664157231944103257952116208394303015862779569277514863076721125812181373656037434605876952347803119287728374023275658727703610666879776940270026537650410339168005573753944020012957224936520209093381760357366100320926529342498493921520989431069272990351843202849718594139429474662115938006844067442708348092037856285538448335689267322527164752635148512567071176818173983295645357789727575324815879276928911268689628724267961839496487521479509594098337750389843528091720927242190140849522336907474540366668757635310704943069123787410818824584553259484436821192331057116421580064839706596261601452195543369487606656742524254978823377212977098621774270116655466469997420480024175607540094719881292600915558784162282729526454122520551753486775163972706061184619522622459072231370782379505430090261715629742845387829438983406482758460709559191825386650006975756400168513570943797556199813090534836738045126230818359008308608374589526917328328381245579398885579666226981851295030352558540651978573308410702228052485802439132382776361302303411925142892074899662720638467449771017655649133122712040585528343709752387586083753633808785726788375010457292588267731399973572359231983753980545373020146423774840398675459530920666082702663581574530734590724237769108806642330279252560084824991974394417029227213136322242443521829440428642200182163239784360718905958630639125549419052644238373252933956659894680619870900673667014167553044595264268901728228204436149928445093866194921135524036644159580064880611732822849902824294508334402037214407714409636622277497912893494379648293732361215949909100339369827936129291393767152260448321428780928299750913300325754536239051804941887969623502880991911592536991651772567750574137477970736701820065765684881929099842669521384887684665409603904423401590777286744409819994067649122852984525347024971068391033469689222125908331081741946387782367762735224999915870908464791491302762569420413724207610870686969884814283462523258028396424518546571499217325088838350943174324388701530281622598544535362516627849645015479494212545979242204518169888470958365007164117344267710978897964494612904059573769637347341483596035265093079125902090424966623273658293560102969473712737135327382746479716163385845073965976208622086893901825473778366806624681326083363839874689856881455139240500282893097004714518758068023925824017087398190060150171901367120054279884608508632627778180590525048737282228274327221015669069790237016655168957512352051728311571214551823442066740606896454652303141621303398987636040545264161230783796300236729141674617953226266028088171804793460530953829777591701368041896127944824832298681853796149521757453870091846317834209002844983405760491974042092736614014715794213516140825922100765060900538455718556066412186725985736343644653104084320121126600082741312926367979315243002485820145942885808573815690517217417674850349481235214835590354093359196499501849226387638274665888357577897733960075652006186825946253824371187837315480612828335464681074723958244347696719717743071370526071000657502319451182022230962807022359783787767600633988890001955208070134473805626404122581597514280279514300049161975978962382876427420525014957426957583167331277026781135966200843508168449069411990275936700857337001820196187614841968726543455048613823563754503633042734057063322051291985181202610027812153019852103631616141582111026345839894836280045894026685827173885693785427840809560621836395430834543461881097155714518307948299058765388885348098450371520069105073447632724982012824678242581548119441383471502579667020079215456529939732986796018488943300706715468594066172840487855990520120442606213494876958884660480613099431543372015740325170324689998452096141261332894059096946923163720944676138469932049881243539980427856263128143786447578834692334057032792968573032240378990866165196192227876946005687821774540625391471112004968417747717125976003193668706250167005134028398658241073280432687268328473435275872105911665435346831104159406524390292492450708953904198582219964892088663344592425544525376222144026656103143425159393334965861295691067566339953685605078214142612916806915296589534738262634618677249087480820031866634272344732188234595055700790679741278440891756306874330191654336318437929771250469161772174850144398567982673206403362230454177646204192967901097006837999020218571374407264783314392686283779552911767428157872494895932676460430306699600266507504952921063718998764758546764576144656827726641775054206107126694035094068633666010499447451209346983000800210992448409512423523966575067904798823869901462998926353460869967381371202259130261378244615306628348196312891242598593278269342336915800697222386913539407323248403122572844054019111568488474196472480429482865760668411400728447986137475560040862466523161667542468668202401368209421876226578277889356237402279475182106406900141802694773554468278865302223592562924580116550862908918628321546936068038618036786398704442129573060636435396181783642430178253021143820892859202409857922035113433212120506064020929915451628547561581140244581025900318290030059905274910293685932324611311757503099401019441829535640097313081497113840669143946672228527507112346480931568858045341259613486303169243996107663066160777379276515521172884871749095958326719881866276848766750558246505857842430817692721380852902441314884308613626202841395670916885015360963717741943312282151593273720700606067219135248558520525967175415267854040903260545486195246911562333953271135809520451848047033224748560610169250026896427367156797768146948804921789412894399076653098698195874827255175527278474697044686608949394452495611523252361615103515097817347493150253636460784567969629130174458198587071411417709681309482316901546886548910469405975114658704662165118373837346042739442671625094132882583193795611384465410140197039926728956665680520423285437768638017661459817803359642106273773905072124594241125864721483685724380422357086285932241233273417048353614178523451648897977422543475991784088730573792824910536185103679386096766518766235087096278955260752713677606181691517926205099282087675525019294080896129050882476376328882715158891635702061716086764651451696701856460542964058045064846242499343893334517478238134957627856653676562765719215770175625399074974664884320140134421667673925321472960877101944734589245219620419462006998513356161920247075175206691321567780349043824926366352094362101110508178492400907396807392552706150419603034268449422404390625453941272193361658787388614173492823072976070433388742857930538724131242252014425988476402222473199221451034352720675301831200317961918245398779334657020758032598292366133432757376347429163224379419336243731423498870376977890891893080048075963784235279411081026858353916197533870982274293595066820853392163391171773370239712161298147967411345416068202484420315014870317408566281083740075540558130298813075972795429619347702435123059824803394971660437823184466852600142575651840221137286145772666866864781340283616530085258970379532944133752494284696074979346341019227860632495990087529683172387279386359152236755366833384882327863326449866955834216041524504589114533136169601826672874875795970834846501537860567167015250671642690081727619938175960072925554269826712578781659820403352800835542900208765168826512012572585988233642502598080684657495989076793348335867294588673273076159547923405772565593549334579328220968892783400135591840376762339088385880834555008479917093931466962796973823301868477142293694902868727244960178148611914042154279394802478533880535721719305225629205477054816893804069840118644992905269210096274657314813735080501663853416246861715133636622820916099440679401459615742687306173121452343751699637383870114567638080892584952199724709082030931537809327120665935572937184389765585965526681970663692228188565790321226937514795365132489365042057789025701502579263706059376542306128668335075311803171282026001385836575081677149880134793650806536922832885733372818675336265810389747600869282044002254345858187606490792724549561929443904198608546816887932369759154353141437102550271370018014297549520424457798515711276412237675820776429146161704985032326293787910098402996522167826574612459217460843113018457311186694769544358510600512559299858242089437815524676844959405667325474662158900273550892350393674825286342462142959911912886733027314100745090933027659463576368908474239247400088298087874811597414913086407688125849552447178330322324819471173535336917955468136210867960718030283710085264149177929652226958212237891847539366981751831963335457341629398117724939447528132734986396507253882539319028281682439321111482423000124216370662620458551852778812659904338579444728842613210417923845372218755922799764846496083629583448008134951511110011123132472590606389137140069113648803636629883921492923625541022889452327109006484268467096014005913426009763148035490130243428167908864511867555178880647106401049832654178863439227819926081237949050838233587470604883689944079584399375213480813553795081477699317398239674223958503430061606299482395470989708699388609114263908164693235446813140105280287242078961725907707283692890610380324606365322810176989953853155662000543471544930136656278790505821798243320651867795641483261487212222996852697545357568685103524671685790381223204064585230288266145212210179094186404032736097917075826380372907411462862388946571311122116694868865181055171049558183226893882514294276373939077343550632500670413413234079714482915786280902043912054848699665714342503080364556634620664041156390327409400657412117609141048804590375914919807264733101119855734627435545635214005822303436129933258852417397630703477638360476201221440678666168007249477387924226367040435559969211729406011410915050183173817551438828755535442112369595485912539994867468572438372364117249804019124066694743405577575316051600843439142118160702619177937822062113759478791161214843452950453115921462128955330379624194726439289237959380001649106323201212208294443846842392594620772391440351671374823480609407951480479383472504330562183443707839776499798396257453031616095910092007053267327907943251142759098044138636083661706438593456001983914116733387207166176406189714672681595948306262587280706224383248714912090097368425339055801147163154681034821055980758924839915323654777550670400868534925990661889615530681153325812673740397048641882025180676524369299860956909985330210636250344631702914720104072644911245966364214794178409586673983606915839353865182004581988990729803271245412089449231153719737524865434224218411774812676065159033538662948500308294375561165391196762330986609611954180078267462562943812361465842417163891574371770398080024764295340138635884117055011489564291326143428568329123233128583899064804809663411199218962799441459100480643802562099862467778481484727585558896725567993120501608640571842901839445007673161618593146759002279674831929432416075921054871791952980160853563352810987800709061723516776288540530354589866600995524331931410751715716353164974600528834490399885294025155758410690116699384801557576015237440251660404272217607890156176976445725096492030041368626766178256452418826087685464020996033094479196847218984913317328058538736691568505385758220284678810623968705461131692647989116454664119611259754882402884089625412070282065575773169284111521827686020056709379662296842236000241546577801991478178647876502542251220390306201884060692502359719958008896390422968123000738674044902072817553217047412823740857068269227888265905429417036579559253707032188084632787394125070040223726801257330381505438372920374708513827212155255836941685888855028509455781654504459231138588655934406844336909000883434666775733868111358780106402797916982108183020313798713003364909932501491444921533247113348252536516872650177619959756108038855762237581917308315116484430693279735835796348477315393686311189995607474285942538753604670831756823226306561870007334119009973486017442294463883668855407719084197356325034725926883029468544740606455752794712121421560827788622971452406621231125877357484894478242629671278852312299113555791013178353276095142742713988975168799253562950578080897699182693044543018439318931064979267493392348310683329346008037690050636629731157349913139116069867893709953505428734405616538843417170117270071640339529416691383392990516597828281319989067802553399144049750369735255485508398134847471315817963348183265312063868151114448092768118524044743992607745836007660822334390376361891902406998750875622473309586845623889285698634982435729084051132864389933592891718312104798689947450399810866250821524673793538711246218553581115187741489908416396163761583141571189339612539434064387622940040118051629041658203920976120627788348440227186060143342938181785739339443102904778963310473149388277406760590510966921194243116923799027219339304098016824106245208886008297724384581206829765778924134764089902923365564292890716070497864632544099365133950857927863942857969008134093332174164129662474394092163389994728414255445209960521267360750585827748063666107631768835140313832563755470853695536536166385373525256703042051926054036135417145160345526727189648394749615389831361939040110094674002925903762376800922467377301619684274676460452621613752538824690416357836965474483245112451864181655957130740672672737853416494495082378113951850868029562512726487508957013214457554211978085011411758511202735275487006383740066994828930382287987497611769530210089957352431422350060560265250678002533994815404608026393523789402564667992191106226868823602374387579753501227852076333786073492576386320013590787204554079031822465259337464184831175019830380609870078229713246918720508549270036235383755207173060260250210570757484440591162687733109356489319863106063922857367661371443789791341438913901682267638135040609178281068274467632413877988656384253264656719949030237428333038892252237555454044035400967258729964752532451937412317900970839620432345049272028180307180921356813309627850395720802015405654973931585798218452201212494530329881591493222707253781762932864654111068472644515048058583929549617880378467391663975390706329076905587592982272277281794407533040804814062452236824653651399647684885145506318983629633485195649144612274184960265652315968598348594446867474146683556778861871124020619690535913818498903314943508466243133909669475322603874720781584544588025317018510039393059166492356791678600547276068366045438462949520888016638445948197078591265312069463110299371352421261330816440672807589322467387263472054260050999715001747996233243861448360232910666094505896272336791459426865320469317512017716735993777563317953676303062109587457250039744246456883005527692874709451714206131313545176827671231769023527837279452784169927173794398464793751326407228027249397364003283074604415297040932599395087351937983063356413726355417080599106846044879664311418688365733470541755794924365021397626080492438352653102288436323491490988212924367619028275901065994732243204412082488941109227084292657978947105745406192655483989418327572244191673985361357570828003038136651011551373140988800788063957755254574103366212445647438977109692561092418206187440781896204408510767976384663973049993572427642158682850962401576117725120467572752266815194357264770055585337841466546813513259213925470092379244909763551966579205456109783579094078440277437633690378562344636067792277115632244094264836872345614294550553013998964693622826089598135594321030814433970382206585353021313343699922620629450261806149793977839268933846134545154229805398630825308247779430905253963604121538988720107690923540184011310250012495876501482254251671052157120949467974807724735305133605902682794351426094606147285372859217164380215938383399162215179920787094492507873817411909421263705882693298752810490829704405026060927417840504592022575590485348762724337915437194142902250231083680872669007273930618134522570816345881630425098300265033283897709983456278402205418835353475024722808882216060359800308194498446247208859829711651038939983672380800223536928354888802020193827306157136176132413748240315822166089881655138109919504433081120171464968333055317062534232667048495785678997122885587602828226480118744819919655218514520552497405109524767761248711593940185599603965190390984186158888429878769667867531112182290135423171511574781071801309980891111303132452766904388219473658725058304790585839344783751734926164651137983645296402921011891768412418622610359432317402907269524252806345376669462197505712731804502974946695899886323250106090916060329551420930540137655604541225877264875713250622956252764712876559825799573241308026925591228159618368040840858625232588656767609966735296907166140682435571972821915188778623440327526776881174928495032429507448516689526968849329274858620827292689632352370814388845480555964883558547256170189775652153770382646465279159296157961358347292874234280077323554991145190276745355956737739185625257389883435875446641824361128462667926402600627617643581073538450572877911680308112358686967348512626845819484428638480395315087116834571731134776603753023458712706473265671200707462029216027616234990964470102777619164494103949856615032595376712449911040324439182496278568438830142892662926104606787368759823561443575608838175472403601360419288305079119025215314239389041521810884462088291995723703321093206751267134828147474639004447623129428466794688620585085157984599736491962810792606236499226956376134204982554455048247937881854831032432897199123968203233044424296000955182205335066148334443361615182151562511981205989469480193873142087280683395556297968606180328506057976768028899757389992079707269966290858756692066001609885480325766565528598487988371847985823448021337244364326618957314655845854075929000629060124622066096763402978311992062583120291818211094976959086044452585648572477564360020150573230114578398793796649176797792932475896176076088708691059162056569125882379121909793433367712595835592507115654479639834085835711877095242736391206316725137362707558606331300674598833825984500268328517316837839004777179691794815545883063465987053169912722652864747335679164189529733254472002747057422246585188360747636863154950775878937237147732432433002198663153283192879135985762432708041602796946634961911464184894394166504228570600874471308313511333786395681614969421490514172235818362163743861505216006152988863204981908763951671316223218387191117919239281682059415401181593886163142361402166947520061888821451943357169658482328988304771547142279821827602338350964672699702905548697004720582246065221672559381970818737882493845383796927202328429233284357171165154112272226241057858688977855383753315147241585872623767580645690755788933375335508988429867192854395001656671152567996995815948908796788599479274868285654683289640793666743241127371175099637546904935146555240230532794305231970152061340128182543710072150777904798283657367227724483902886014220299297332522148541514541563945830378476270148046127705731081484351816978183642849426924565083952902717906683072132593477985696999638253439949529364262426862539971679841426596641016266139774920329613726043671212323454702856524747719113663062169308464299342077899671092945055480415284096521000760896861372983569391835691604846668217734177727950329245718419683516027245281379644685424612707849794916565448282045770183017217837173047413150879956641156760800553766850463611816749737893225543272239263776907765461119082868126575962649215351530502062193675314592576825545460534018902509111564275858196044769758999155626255821727121168736545150558970087961608851526408602307310517796397405188387836334135926807170136465077849104485975546682087189474713442462719274611517456668270872301147892471323702307677260460837122829788250190814761380283721785249715356493861732885245933023007716685892262422249783116085150122517491509407852360913916423590027940283205434523732840584423523891225960169187973661152331090517168317560999786721602821912615516545702093921080096909364558044600115392064459378703546253929755437579352680435805459047397840604534373845982197722560197686182711338756200512113515247381047721010418265803012562202075123765433737269984410873560257965412428593581397220722107787930904878484616343003026313791329621418332211541583729720471874464805438586376897594624065984755091812503679353068895434425167771908389336396483744698196157502229516042152504581452572284232524217476378746389232237483568404398203848669467415378595596462186516123255770711642171229746653405807262632376108633214553999324645340430056317049422003498669324793255335784150903584399891700101798553486052846699760694432696924355213610567160986393299801710676214808153601679151522276248293368656807599945464643653246314778624624052726293804192960989075588084533263891738683202171758692547464260031009983879393223561169658371816160761098971886078005029728806913720458754904611231008699046664839323496365625715646615697312987919490373920872977446693358074943173963136321907782917054605870783252002677615744353659639023592351514958780618000686336403838656024586201233143626977077815022764427590573744630693062392839866010026042594645617652232243338474332934782115723951663516240423127263465337967803705435056110069417864600331749377995126950850873844840640907815237207421214260838973726821531294359332054905575771266428813692711685120461070439660966378882494079007521113626002897279627522683357084492869541879826461818340299328250090904313626081477146448969412764873571867196626631720092373755272403221221822373394587854608482421043577666488935944303551226057630364017510804671448098450183469440696943120112865035552024760957705469443238853055149867818894906124146478439276253685548052504038469516085933739242955367777875051653214584150837540145671821822375479730452740727065505273325872049081520942898759899329262004382216921475685021379704452018248911832816495159307350138048416425337556034312413598523246851774861903219839577116752045598977642965834283649954993188870009919979088079205337238029297472058087348241655006136152453455040243058904467913914689335460325475044308635770005504300898926404342276882753673737946337579886517932344599519016788870910759426502495452251404704405971458719521968726544561623598368582926355995242740789634931317710575144945788410369194755219396651806362661115359107791859106041143365094721094408873266286373139698445992050082595120739903405253399058592103435583926031779555830212723567021587034774136648893012942124818164906494666796275051539140901280456878457295931410496044559049540525426956211471482568833223814674444703446027807726472660128425736999948084135426625411422858096442394307982733351570636804083142286676195538308450623274313143960665096345687529717294753783970141565669688278191944747180683862002284564706201392572211495391879936230611977897264660829267399469073537658887889020713572928843940364150313159538537235174231461449597120234035930982491077329430307671899710344384940401609866015236294940874877482103823852160509355935544929162616538964318735886416090755136416003138612944091323329460625160486429627456223521315761523694081614108173899881736268622633008963977172817374622380082857415791914296018051311451198408051076852935874021308378271028146168405100465564903605233710902116127386268920075342411754355217686627507803801536448601622847499001382005586544960933948701013586721978034091367825379241362251901906319611238476470452892852135427292306765574048972500069034699438555993672650205197892956141132300953544525244817213244019791894305396997571437788685603602801874583860229440741220915562756953896802584938024126935980116401019342565558969749663401587518837125484476118203764318932214154306381608602757816353376712448559319099835579242398058098776003133409459504211152148318927932839528969278435050829570047086092782729026701409503255056095199395229991630486760297290025519988761197043752405376107561754664104300887681133305860362816518152974182389114843465136941480342280728458320394620930665291620971247703855114215395578370386993079415865152596842145521100415741106211764211460953754706436457572175547510212096202730985360738822615278716351908913594110530772226974455481315854368214888214069844976460786889824407313256999609017393324286480243064282165367679932723517951787695756911168795559449480930718492731935799029387169381134937986016367644052962737714995620128624021894561493641842682832604949993976324795459073074201056206809062610390157963089764373644993466435068066311031359819624105292767908150521564746043380355063909648032927530073456758212300800547279736583338118017110344015522837390183227639644471008581040006041018364249664533253409959737306439090400246342020516699018980157441038299163595214636541900415015602944589841582554228541051787184094895860292640882143943448678503675678732740484666290814908496830039555274031160435918267947507482548063400112278417797781161297820076342259002812059595923899560994877134185475030330706283140118148159859364093749154080441537293754524696947281773549462554894800552590260903298503476287092010711422634480091042560533586331930629785185801882248738469731426426935369020466971981229792952455187368642031424921663236176225184028428198929388814631309670770075861100247414684185950210392307808421401495804051495092523681526579823472083443597066070451195805957092098764310093068405598384994397958183709002899069098502103952168096480170722951896622624671500926976591239872221905919405833131852121777261865771870854026233044518766359144370598612392882529901559469059104303066579183959128885514374610809945489435006869795291734645429420124414648939437655366566351537281195387852336222567135704502834292460185131634477084813752966319762620236078969291656701579464961840409879201538922865312046311693584904687620464902388502830245337440492813031905784440096044269619401761779841204337971427963100580872827219989251931149925198405612160866237568717680724346702664015523375472410237450303047884141398023422619948071922693093794611723090275372830998405483606965935511276749308110685617088404618988882059038846871333524529043749237238800822320422629872885204256154295295281881867269731878396200932483431754266636094437927660818648671639440115503715733654815573568187584555544091325678568747321461392614195625545343020228520481300598937102856862817143587618199477839847683279898217451558393733153692166072954134932128288132752123985471479033999979397453360968129873940633770087318619873450674146222644678467602017380538532914700158224715006328625967711948886119776667427802101124314811952233794659149396384424247033139140595290225916220510118236477265267235830744561876660566672594158752653340406516043259139626630390036858292008890199653534805121710026521636824437342146264994694565736143509092141271188652483575600519647759463278421289445792784058160721740932271283740525067118120804986969458313308337114335455942491281516979218021152592718118373487756033426885590310723007837336117015915967577295064996668569065287243408037807662857909862620464897033638023835660352860532869346054797282112538418072383214425955084144466971145602689147895016175610632993388929232008851320973643976830294979669970959925711987258497920688974240930295025639074226221569401406740783133602317433646819913906716634729444676925886428843901341199634786181554770165294247306645102839987234801265314012336378313442668605381525227916830649597101168229307460533133917996241973958300843625224726971712063285112241587849263209947097960244703709257618191315616297927140766208100264663589064827918572449143070621476154785767447208635453524379304364155935094170699111865035856514531615839344524538917476439313355999728446824578220980077076336106967333621161402623064530970041157283211740894380795741030027040583795732920498643011603958261978119634684618414099760878107127702261650187631095611629661365878963936520350117169153951874346182358643236706961354220605060416001542997181256849158912944519529471780928867715615548567008490793370303801399760656588227609250116993283690078333376719393546976584308429477738552467349746662659727517506369048291437673459730184251095166285286098037122118294484177544407539986026338256809104159611978288732820041279150598475077204336261154137595284732597478691219279630616891104383198903136958326997380862083962402631479585698553221392275121045590009884867538947797470313306136224556331767173721827999288579477230976785361265339363451618688502449232630695415088410192948232770738470510504303771818936266892641997296801086870305289469747235218515206014270848502590713018534411104426970006857370621472713021469714064047729317769068172672631073761428937339901765990166990340404607406997691624882182912206832829468911576658385107583313777710220347994380169690060640781223789276665349943510795832585182675490690811056890948648451492679094459143791128245717133948573684221221030555228621202615521183027808991516430678540379945081183734694571995989094633559092543171280314348703335689879364680119168279587613384649981091573915674065869262632982563284441988453269553803191611731712309411408471591879777669591250303905549901803615738019796264606318839732086595873362432119340005668287639311334990915007582973739659252432632500341442086031128797396390416691781349052598376927598181575881218872091132976252369970173110301530114508341111119897755898188540353354410445931576523224586509842618630716727235681693170250700933929967908462395758634513472493685542584992278055641057800207358840814729634980590435915054655208223504414095358036775389667503565579079947599834298345102595986346718239128353382251046910611475346287566736323663755661308472445585617323853931725541525190233940466246005452335626095797924015069437042550725755878121089872304611186857137030260814905179327562954035985224485961217773978345560169091374519150755161867511601906409397089588193850000267880119301241444159575849649032321755941054941087354840687464731500120827165048891437560225964615875982572374048269837513836013354554202207258023839345957503040775835052119473950669526516528873848818423994850481379842396917029947326786128782790393559219900871150003515579277897455533960421279597545788312381260194356252299250211779947389067323782985924516633910819053944296997616604870172504991434943629230707749771243112849189726953972650710995843712537077026976902179813010996491687523293195919714945898422414894356415150607904501092664500702841731581647307134861089597551726579675777369951764444221777184680603788180771447547641124938295515185287187937105132156242551897766137978392396020009811310074216039110398793202029337996849916289525422323268929770483217523790685141595473516773089186436516683067453515996564428139234668870897761885271802042634449404735556671445857617602483702422550760488530516371215712543799810841838743096927783994260065426062193473137908656744203246635028641093028107496312505902678300861086067268969701815441941605408227829924194087080870486713933570657671529304302659980021545016205188218895951853711317159307537275215625809795150015705895609760522136146234245574883912658515900382350891031740053683643539885536293382694006746963252566596734565225552768054415007971291781217540550419046449919451741972702801931047226554881982774620711522818656056735863082392029701990154404418428054132161285541546252186624954902660412619778302412892119123366452376946501494665802974559090822965509867997115716197295213810401067495890397890203052748705194701638599314454204592731076412539519220055770011905017835560647574615297396930037091802726389783809395876122502762232907268375873742067374805980457285823940227782874709442753520828239329551076319044637373042097909058710134702890510561208285242144485550773518081902327512243320722699236243980347430887253574921332705618817404574183273472233912638145620736781441661449983245136607016814609821293939960128208066560193842893637002480487963597126728124830713136451041298794569113907760712470070702841513549565957616717796830690879232677434321604946051323419275267660025179368936077138399367960752332193769769865953198982336004197681774046938079023225434901783969736510791946615115517064663158276171521129351735726915812367548094784111486472754023925431754281909678042690464163055519236399345529637725346457534493745114592107401113330428704810579790061511348445668594060592422467087312764609946867909294407443337171118669395631175590352468192699759369678270213367897883355357211704651164191604120459687215846578275805984807173962975565193733478040193647711749643440547329285959930604630701662559606531586631862812097277707758501594502621976981725210472252939673866009193879734316766765676186049132296521163899012443602743758345947611802779232029428730321909672476104526465219741169120998390267624888484927463841022101113565068576603326695100814411307156850138354002912750446696817624314274563391040695922359921255520434283272421907614809858181469048310521338563323206686350737586778819199501174172244020486724838753952621198403390933928404009171674533455423179552363317467470015436299277409159325907397910887623648287055139624431309338592597291966954142681710376487912173077636703720222812074396534290662175336957366930988229839461946721161416627070389485067818813642527112193674511717857517073602801781133385033016063366422726665821353958771325725558251674123890373427961410687372477754427885239088873611956891803171162087905451032728589838006787855844334223153416066933348176456034602835286730887486891949996887311635374038228330975653880064822255304879783961705856141376812379516322067863655786816344489259227206317323281472065306142486771401306433496254911282065468311394912165697594761180811395819263254067585347190000075379474675635163978675302545965224109345424771525141404469172489460617446119934073768951054089572678820463857718522215252315199333432781032867818247065689107858883568137524937448145793772161960347597378114387535342889180384106658870220239519951441212822143365931431314916299687824715624549165562139224403936139020499165888607191311696618420206384826887036768899849711612423999238117286853859029262698004316994090516764655264479383850559641320415392664633374367454571761685056120105949410210286116330088106003290732157618542729022095985133911403185919440643251124552013389529923029518315087542716524063029845335960210977075073220809454366717418847311989553486874750908207355978396910535263768796321970259948287997007308222826398053719393162568970655128843429054322447009496136655845398997636977206664217946688136891767463880916328182429874632907530766734470542759077299927806778515503749975680117494459704800808112006848081065485997301830020131170153246525734183319755343928883623266776133840408481237936163272315033018248326891719999607076596556889207147810188808370274161055106600551255392281976063472027986488041131404523883904869574864883918739744983655921553733834667679120254072562770331949189760623535595692885614222209065153211324857766174507590741176206861969857870665623405034502547632811954242457725984074444060351632907321616449250130072049224037679192027585025804180368772075201400039749108169891648142326491124677508143015412561899020500465267005357033819804998162961852088462993385207054633168253006928293514343288891830143810778363557100908524640178545507117111673631694777707041355659559623060068836300334601629956467123439715125467189301179991145916623128178189065072737076554761828520837016070927455652695091832366315738164188171004133329200811668620950164878293619257340934276113361938929161880487858930222870921872126324462851589836549118157171863277912466328871173152814308863499494058122215391965288813220964431816907901169659417107485086046000345231179239319086134731242380637402959767778453235587117442830882556196843601436073471090063933351588546523178215212997791300887566832310367422820055963116895256339027332453244017878611750404876592696446209585247952976874185996461276849304211473306956587282404689122371760722967019867022839006540215309782969259116375593521028459014081134546427149167490228593934260426644440784588624802144436328688033502582894550607258593942371049641064286479466798513568628511585174343758232807603158223442487409005131484363934291113314728492940783811746801430414629727520808999795316659275538259593207985109326895156513647418965895025199359556673742675950854423063827262586835437046581128753406608927158282009815635744148083500133969466924789541242183756590028309752441848862726710855215482185963704631938655460345608601047517436036170158712728329490014681960438444714788664103382433123599201508470522681376564167264462913364237180842526183234633163529480269994225755546851465609818424928930197724237372586866591529515734642174780714476137133228481403501427161051805282402540376420951772440520077504871430255396438921378305637225512275569115343086820336416374882786992934107572837318136463122711320431223019332904477723036133914572631370475565397424006674025593643097367685876710979174916250998781170927035080257992487991598978059822980142082669303835509348913133141423600860599943317002845003017919921859450225899689011274755277195807061863447517920736212722335725614620648707279261924579089715630186541289268766934632091844043316891928659753172330466410847688329604291472168105565650842474384719102711747816739793567142828646890501788182054246474088297465775770996641426969848355630490382052080482708114188651361616609727501084852302948060135515605729467701833576102064687342302248299672585485844623563315872143122532319214229420387741250918364890247487787594917818609056508798148678129597270822825978928194181390670996230789780434955939072511479332447555711107901730552105845933712449265898101905994031054764909093635517218260517507364830135466454862887875340780153534288438457171128854042860642649850605201677281142010138682713772341939053032483589929421954203395385407931520446530998331991171697636957404342345184687559075665574162475981359678223984879095825445897494525329848671823346563565204646792765548760226726299927880669776386489596894649966533849599682221741447848280070417144805908550560114437958112298208450498532597471955223142342913288575622910862217496112068313840710864437136031997679741810879343017024062273833391310712879103072461819114203479860645735611600673729218747491894808141738066991705612528556117959046743234972305404258968225902794695414008495309619621724690594915292011936808518234821491144645013861432015262003618690109123441170599360661028051718507806017984818210583108732690883818180825441016495226279328969878196132200149490927566778187789024408791010289467935196292709658333401647641432679984871570299373081081351249108639719659247348471450974372981724953394486140110908424209680300108588158835215313663364797145316055720142303731907154378746058481333317734984784844230969747901965147416778298053898634719291861062839954261429048638499044289508120241783955785021215852080092448083379084937455504227609445221026418318281367341091014001101167325407292318399753542847160606725401165878149096476438505854216108673053913144146019162011292184481236898515872073301530677725204030503295921819955588355145283094739030738829314447881426724106757799815697830077164976726654875644915004768199839257445100357595213485963793566296863615429028569947597291245569176199276424477416286019821001432899230825936851408279370039671977237485283435133511046984078576963228673349047937139525475339677037313471320908862935164147519146032092159773325763909317387698926229420136279760407612862846265952701514534020000665462814372435678327410348957952959954010556609623168755722106476576161343525745282676282112777245248388445526729724226734657020301457728639538971049582822704124859548806487763220636661386535983087047406832993443069634405607047135493133591375490304370581120682406215691097079316149665729519753401782094828055282701373132271046748542151580630954233532845092719632202989202552653943629249185216202302783849628835134080016831977290528315060389237397004204609227418019973608691904400176489610996576003446941681797290842636648108781433068250920630424562179200274986445669559801905126404600013581957695100573225601254745107941922353326460662892252078551946830417904222725754543177936596838614172036971298463469179213484778610608161265914003529306356331518682069100322703490290152697522428531171680596114648090391559368602742871976040827406131095059297119709922852330416870983082466955314217986793485479913558688732809058276624037697358142176317709569902784444235502549832271766011227210693129546590766258857388128635385223042800176374468144832183721319819728957490977666905410972673645659536940486183978925620418732482218454992536747421758154732164513329512685282066124626474837598095372984655263478139512027222561011862189749939716004414755092420941953339939775732926942345092629019724221955248397908355855199291731895701760908372079573752550375691418355763211847278861900463759155461665654773247475903602655912115980960345069004695182801379145665717953164158949877257098755588631699199166317061303103262198271421362844223430376403186926988280017025781520422588062172866944878713645566346426670551993382956468579651108697753709343553317234635187119903684549461913126898055527039004066983404320199577692423100144865721386166742394135556766261951741609807189853244463958732528165238732873905352893081480716664507330133770017332180996494537388673302959575318078094955099945849167336974034697369999888258370270906834503155244307189412795228041155703318321754481072911233177661856224812419317006739592036223628313309830639480166566161027138981044745515660613706235088942461768201253710223084440522098824770854050018934364280889897551392706534879508744935813323586220915119330909847623779072322660881238322026594038319963146529874376794003255380664488609624396075898920376564595453742378518747832507853504551092268460695540611380269352329063777467588384524446354656554425007853820573214896616054068165216054032583699037912741812229030278768952557497694945046188094488785248104973734162467291232435832663346762851673472334676930785994813057685741647231172488203267438597560633684532681602520433263779904096620973675431090239820448352880636902639713115367766081901552224383905260623824043628689252686259597120512474918039225569805922174892546306158004371824453309390869541294734868568335117016287653568245877824759931971968310210075675849435278774570879932522297659503754081185469918970681143658004979347338104881942376498662490046328124474113513495983563004903547044179544999581509017166201374203685321440851364291712033442747639738321512127131734169533601495612852795317194497686315698308439405622362492282269367576482156395782933875180962352964377832528880361228063941385551809993770971840360130993083648224414391402307848255849197845768204873641254303855506215767666044852723589644117818434253701000570197706407224279145177111440143735440236280026067078295070420623584022698638416097959408601378103893691255372596062227456248751544966156158611223869507761332559621068206275612447114176005747206945993230730173849561509583105862017001774460435280868522562294057855623919664602655275285511606940288479200285877074302195554214301089551054034305966422727945284630177199262018297463194380751183490905304937457591069697897043876918320259037703120400339009556527791600510315076341267342397976137024635568034364037156191007877091911521042720988093355367899154257094102229223204001286045300075682461212779703621982236697404022824205882912639442327144067366946286110697615381932056765832947299625806616907154967523770113705532892889325895132265388470975370979326458959688657775943952525159505712901035366419464535655781430281920883398055046567067660163428595917738634481500959899739490950068522472961367062173657981259252510474517866196535467281675654158312742099115775097951812685271882952792229960078172579031626605879197078757747377465209934012022772338079030041675876515007670134513956180663114171421733894684556339173374261264484674559611548430421296353937124843294362761446137329169051416029696874775521403349166777187066034168808338094274887571691295235782456695003417260309490030175225455286724705026518009627344513678950582530811145415617518117546603353624921754359022520897591678961184524214387237949256426925406788237262462383598095233178460497743288561152921884554787255836598514515218101096670056093597815525539857519231497292903072249072003275211833556065400632406806501823782718985952570167465786139006232354507023164241724489700808297946093362007321298375865691546955357614355542513311868972776400246832968379213839440105931229194375478609154595329173706974090967018922831897172887952299367746765602204449647142687975496235420538286857116201400210256185244989717058519350508408501096460447804599424944132108581906192715308426057355587540607393389195242776315153486945218373899514940307377983951148431291526549046663626300193854163778273506164149807328189872881290855914676000915758941482098383829322162974018231932294927514999322216832925031883255937857001619478384612217859853148967941036958511131672716917000473671693501371572443162628989611008221897347179710449987394237129800861657431481949158374958420797197545272068421854853138605561756086466384887507782020808724529129677368963773795261306756999399475381232169342019805434417949045458672033587385632495022423618084289232955617654726577360672680785274112721255795451673799349988500249958746260390533463317078762591081548239037816809472820433622599270720300616842551745312618405423746291048059029179972462466818386704469204185392024297692457501466378366228516108882063738232909902053723955927071166816650944606618397242585152877626415618954101075911234476454554219580404642353811151336623743704705563287353151851684819669513131349652768850737956021270084273671450638083988128173102472171663223511366438903419776413933480968071939290808292980541907913536805560383646955618592088972315015226599833943829304984008145042878841222088441738631295585839140378620880532120363683638746351040540074039366119057940774077753773268974198298495778009907609398574821520082202932996268059514044622742862165706233228568321513348520468767243002203948256429486250320466132407441474223196824475322507331147360274328658530215352701337685311382786156959375760882386495458330919928819080922157106810325544447905885350489784999340668267678236982868690000977528154719954955318515850527363937071486472414761080919205917432261423456768434805113582478273250275812194276044050584484653149796206396553572281712602421322940276212768176458871568716336965089572565283957473752625034596981175441356397318854338972540402485933138229305305882854096281314053455739306577154174516174302067823982011452444546367269965966302348734846363441742284413071070584546261096253778622496949827421485196006852057822918318522785092831339641896734144138420375581841044610081895784230648905655644161457349931001746525301083150783779219745673664740996659016226762863197502476619857925741973148481189869285238996293699037078759668560308148078296576613282231014783736070250044588530280457599548319653522383469567217685620477894594597096633891919078884085954901760032162823895122067499008990419750680966895587959351126072516766659101685961870483111219291896717816341341906400037307631771940736282539849132718183726727158381034368004922835288448734008275730775504933780494897790250952244078726232228932204576611018151037380347603776468030927572674446382181731443340343130669231046137083838908766032254609198413438596700969450055354543082444958516936629582735649757165369949333133333123112518626537771723210246565869390951706921499868471721535308443666370804129680695793315240876293882236882168722955327803862795424648349579859188629272234442777786934899336562169421972823058651957627496215158224300079397227347474691215353898726492779259184953614295362187293909627046012689173484165332726061380023114461273597383570805307200343862730218863754832561313120216291740476755080740234108168063487496798396681189968891347097429217144534385902042967084167795385524684381933324449237066245141844657567387527287550311083836014136250605240624364575813571930756476159323208174036747930939227737446066372460690380531938593617874588110368975923234121997090013038765728743170948687170978637225986692181307375256454235075470067763763022517328799196196567195536461159745285093301108415425547460791474511821412452069822909954976245943515464598999622984281414622638891666228594521154981997946139236439609610619456709714722375391743855573013111494173466583132418109134087886099750943389593851642585178699068112064036474785172669548874799888948795128568490504986939737562218104369276156584795472261264427795342975572041694509781365376281343707889150956875422003370372329112731020764200086118961779919602425790857705788221839116415517278625391881127841191229199325658371007553290869362627423662923997326052233796076782884020081643740814225727648887254501901055881072892528807638281380152392261059941469124250400176548917704363748438645100557902696616955956672692250562436077894369246451403398028114184246255272311320613088709778852309805554359544668794313441545777561859488897870535096636519279529040852284112665408452109365743204287660539833478288126719777137182661666626388007184168505082922993642166833490028449359814044218729453666136514795718515617203091193805171540944902108538321008670637576092321534141443456287283371680282782674462454800979048852468811620274535734649904813555855038060204232130434395348147625510297676774183059218963673219275065606727581845765184878019429035478698868675850066011949513707366930773601825257702495252453648494897494146072776604113452501331280507772865312087589819768649925230437716973202897297163973770462043553736184785304343684903096259904933785763434745373727393396538228512349141976398927743236281218104625559918946736423131500046808349479363922504687789441873558234166351937942952804907663147915869660705364098308321582491365860921795291120398631300478632353011853772592929561961480634016757346259513985554094220778056980180779791304289078056389758010148935880448344266029178012472118652138985800466969119250535456919815804934713415385213537741596761860976978144234148810072468930173534658001493910990918711386570620898810174432162661612088943419943250249469998444905585927046300562864305636512275799209501070486290052346117303116451700062801179797704708454823613570011194450321177336114062948083134849659492146943605308154973252704340055240883079465647944567444475194291661358211697029319713301941352144697640855248314308813680164721388675548898372275414897752458469762862537597305422025108032224938221015187209874953055895955056699265574000210496382416688798865343671767429864304910972414016883007822146274414282656946397847996008950939987231059279563207290403917329857877912249420154287810171112193606822080189032490377867166157392058529103346987204060513671775898357646036160756501055978121243912168217517613891644792418306793066184391395724900606996610480268160263890199773393235703077980497515661414687569179731494884993371983076642955383469555972184665950222060184862572473455596046768288099954587980374017472476349973242969405007897190618058929467979302957218456990223193430080833789327924984960436551106119878883989430608647594006754015663325902713710430977967438382868430376838663847476987823458547941906104624128626224259171718133014010657389933575029573864844880361865915350573273630771369794529707325739961102913584124698900668191558116302638517145758885087480357098980422665551854745965862759118754814669774566433048940693470402231641416177259398395454554702776104446641639220790913726438263033108507352981286952463528374656088770453440684351342776039458511673315879174195631119080386955020305997702687135491600272421036778157073199491901265209241447906175714201796741472780246460237106702743291861481004479718337516558568636461501504727909476014328374590447647165523380580416903509933736233684511482432944357131277888882243476993802417089850547225866711662395263485988308269799107419592338462808851061628360211528249860447656947394073623791947374335048018482295528777699398686959116557894126225474431246228180881536194780616735005411815473013224338370027857426467992685831022065716743295363241777697356575191130508291026501206571132081017264081066854130898183114413576046659295529208701197741998510731680653734857196517328687014610118327575782582177531461822437613696794871115982249323090568352485278406823913648318839518587400392187633580533913156722793395470489895565941309915321923731781632939587304935945824875528547912402509903599129407308146715986137367738912579115890614308911614204337278939975012241657693740693615719605079649548477290535677454267591660835783109133085860833783711258329491926936455663319481493953011182457031685256763413148638029894372317864791487526317962232000597310330869318551263920650837932778992886623387516632221152781165911651981347091105195405708760758103996481629616693866990004710461722585678475448301423477750660514712164616824561021349175725685325660376269981885405730123675145103346820156368351628916579616932177173524245080573023970397031232168547683640097447034846959079671875099420903582867308372316647129570313132435050241246777170660799311610068029950979324839865312787451823293503741218472708623433989208195948445261622033849026586932566383465053279889445655280425188209053738779756600344596590874540939086435692974038087448130937484043456162625624095724836401864551622723138923769102188943508171743224654127656068797406528067595086425820119092103669078837685073171858636568174519998938282099244372407432835383943650301337915596066454845778033387986743802818414280696407771460961498249185122406917559148904892428523515439658266855493544037579593476589629656392577970992472364695275887219820774173178944339792169823977223103010747612724536137906857098488330959694844585294186795433170095414693690218945155035329074479586990284675506852463309022744515008639555973197959770101597596327916606244561032149495466931588255817650906975197309469922875812635122794911336830285205332438689164007708833570352756676715214200783929222445036874239404799603788801856851340677425339194920752666035826260236788036311832394382410131428899390057025358884751705943864940996119011588582289967116974558329923514750083278280828298382313246641831085099358194161561659229687539412765100483655773213638897370474842270034603742743355923416379174259680245943808613730305199291333009171143813992782137469549396997378059762164124581724805458279790057556775768161636454239914436590357628306970202826754914034792201592404711552734835601075287108723780293531637292368911163108790960635044040751312908275693503277466421742090570391563695098828484820635391728375357207034015118707260925475326270649391569733466663836135605530456183699406398188369635975692659629236756020937389790402969286879394297537229632278929028855451336497543557915286231839686319021246690396719996798581697341065297553374331635684209824515982551482547966140077860389950080401678232134888133921262978106231269795357580269077935039600522497888891636452704653645633287221612748466887035178214282247285544535993265329669493078121229608193503937246715384654846842816115312431182861577301437413772399243267514986435336078323374474189685861753308723368845552387528128592978830956014462836615873246187943349591691780317249727738878709035613506032246302404329931809989504615471505515249319782173338930595682833260554219822554732353148630094237522326655530326332905584371763364350523976199724944082540580049803770259634330239998548886614804737799712645546137124322202571580564827432218472787520200509819959658508656820701926109719104778647506354556450388321291101076354846813544312109498318925080428404503062018265864441546882309763542594374322394197869130543561262312027959300912789921371169363716314377656793156721426533082338194141059187639054287840061474095015018446460646297346888334794272915644349836836113963091114978828657162141692566190562099716566273395621922164680753195717883697976119288093589413141984786025123534418467382678757083569010749293082968510405894603032529988235891544844343267627877065528246215189321126920640128822105269325695890165369806890342191759074435407953345603401380094371244860020693601847949306791953793853192511884709859570511872318203454395052066689606548757263296806864728210775758542418130060091335728661485658053372445541091777778307700965484250683442788528306375396597267145034853514863650298567729595644279948140844533229022884045208148435283914403672140140485789251754217138392785187252496660114092116641213434607222634087743426871368906819402137306006830304736381096992701664924246746792031463513061537087568997370392825205714706695055026294867629517474205496841399549644007525738468361327127643909205502134571162797636657059620210437580947575072949004751525025303083730997881957772185283219195226135257675301198302428378909729717512145650316993337814348104024316340842676506827311238557637444207989607486002133979129305302692668313040443720767539148321283980456930381784093113810719337705953617200237343080924628931176915942078342742086345163251747930782937777533504278260316830552096902753890888689877136658345396181120348105658654449191323504552784610245197225019132861944424391101244832553743232744320737123511233542517765022522212995088209029141617251055408343938275612956886368333613706911719394417106898166104187248409538399562619737158409672672365825239940992270188014516043262531463220629684119529138727847555719297644608782476687424286793255426067543869208937385150152078503418165202906459038645367107232506877058047366877361274490981174331143321134578764482290094420072288772255738087949859909981583113269860720081835496261639125837482167799989073448506636016810859330469656908380038642696487783675241016449367437024397587884627621959284718963405800408657487368364458926606330623266825950714845167407526149356265716225053128299304829399217298478971698967772334388687413361775900455062776967043733850168079235764388275094023330375770952744872411794050549843207032515376526552468141503525938784695438250562043439458502669490475888003393284108911232315135334472537292790396386768822803260026705449126929606114855038364091470977732144625774204219335675996261813105941817643290437911645374644110828902533503348065221829644849839454304033624122560801942563180385799342695190512778129053898818412063726043054909490590097617929762255823552647744701028971845142479292834798813122709635596503394273790656505922057737216434176490883329025481713401048616416212171902216842761732447401464463622285479706419898453019343768866583553306855766027441143307447838808796694189354425102710181150642138338602518398041722651765932670715616595994694645795167556046848284453121181415446743035715599018033562556749385797633104921824406397892053701683766080701805679743644395342552034608632087864955757961428778977534029035229898881559534854378293252739873417115054430912685198551156427714396600494862663379935781412610643848410579057684429393091474770926529604031132012205494906780648754496432486980498547811966550315246753442284340503389692101720191777408233206009468399048915816131648183367009181173545283720340028630947471808900415571184925350352508336266813892346059170520666623364906851800277075028705523734010465406814891448095490577092341068311153131539219399009924642808885949274357903717068597287252817801262678384786028066095900448135283124291414966188319151940493468650216037171347001586016802230757747153515653024800132134770895515881961911877197355535795502453769182765066998208994779921873469674511158949026721343214485337431260336486788608685447085976130201837771647842763876530208281069764043878034198112492761930599215559630865312528903083076971687254681082101972821574446931563419345381882838673951463123524244914640050499165249004480352868628924038486825439998168414044519872849698919006897123482468410624410312780570378066263782588598842745220633636997176210299151521104735307131959931614523515927758602002075489168806204233683738363266438344541694704497590718397254192443057516442482906669244581751006687991928251459428645473322587338377473373496624676556997028616183946439749685244867513222795608328212510395375927763273768287818087675613989538684432401291374531510105801519529183077870593015531466066286205298321632762126763301159577961679979021897496634667515057385323139026990678200702461247931017831721954169845058799256494892546189463126134143424640929004044434759289444750488445572305537300775561360427411375970263230896413163921376718990755754061909703259202307511570724900004415094156569154868348509204043633398420692561656003415526200572650473628310128094299408198096044892280424584219031358430071963010419035226284690588242653694016612580033737607088225575209348284912815650773102301391335897958741958271199651735948309874092715022387289945831989844074892795633176253586511155828102497932274975857237296625618072709692271363713745972713493759923155938980867263062396783714417725723319194044405407736683189913138565846683420476195913011081502715195524003449722923536250018708357893241063897972410880476152428840087195821743012032239379759947355829243058396539919011115696407550323859897166252497529343691532687064457108563392941557858315150810023610023115125820209425966910835142832293120130751339371024054742084124660687158983561673502319692363845942505093572324410875264668961299037743985808023702819961831940441465091658709604215655799383298872680815749097221671694278013792958141722955504808367070337560152409437606850563508500910696140361618686252378493122524577617345647601744597553384687893996138422106871582777625714169790548866482108341530421910644780169587516892757729619771317512620803048128855513217617744710038076895226572917902346586590647281610448078904983277086156414467963969596041271478947520028289077258043742326869520478829585722176379742124280539607115360849909600280791684573770069944110458626408325647976166339835338163761415914771832884555045966078939123451411516584874119728778259062302363540071555337977254147534294423785996229308509651851089143068450577292289773579070632284570609349157148301702754700330672149337163971061392133914816653627066317198050895417617302230787219762761733943471690172242324376121757164767440232578432722043949118551564968467305654883694105770263248869047733331986510134043343312106446690199138923993930756980654864641456511267919182591284549204082368074910794022201623588493994190357546942682632541776974357404359954234058124699276007003621100780022865977740484540397131420453321964164729454277582491084514251348694403339672517990655736085169296404198398617806783656043927580465372095820822138684216654037129089616105171745647312871808870846970371231759742699048293973619787079305404540101431741729230331880391491787147799467623722866216580633692666625101626301049112880348080651131275866078424789950239955229807282628878016286503194922575318286775139558885369320305316736081661346876056628766060926842922556602948856490169427619940394009950645160492771875539821231635611535779587228558317816074727366138812338256325605458019633663637479412936814862653172244235412444541963853501999648556623484111296237124555085871312927785570982935524616331900630999984396071212921648810992750892691499911453738267968450796809596896968937871948401865909323460428449546446102601821059363588180119900969603171876342181902852942058152246355902079793194155034794711230671004569464782383810047088302774911254399042919395993782378526629930358012055336392300426234632514966759500982080554073585397343428892668198809590763861086242852759188429648223309909242691300413770113461322581098921723525460474148698222474653328074735909351832713211294641472563667170947759969356987163469390726465269729852453652252076326208672143167506754290131076514993333536170748387426878295897468218470062346918384745755102116346815184352306869636653310384684906510865292454228308131674465768646884799895407726729127330455536410429504300012458734069853546253351525413152988375531633480954561662488145328501162984663653816946234903398525885631436405433805584889188332089511425205151277011324349336893430709630016690045847509236651117290872956214683349988452377720291970721309644936121640584191492463599338695581845024264069433855114626659113276217814846547481222424709788695322937965609400603400064834214462797797878016396443822787671712898827527815323312427935636314636222489579018570222623212427429400133646662620263824339010677847261716366394398491284324458564668446869767040943606999168977544663475831963466395824765533861590201958728683843496470830879653444775989796748017194011286711269896642530351491834017492364941145288146785905757529142699397527690694725230066711357061977529181100851846675295517972755835835730892200115214535959209349001633795419965182693111512775633486016776451042727429431945257323857024184571104930605939522364352976830603965914852927756671823551883079582334932897149818423697185704019524651402635258011071615393801050947503882155591168345946249675908927255706377025671138803999744347607878320762731352965638403758555712523171828693640547157111415460606055086299101048989020956175669400662370179564608091832953551429547242562060050574444877720790430429099441101800162309902415092686869195433657289724676177206486740721673800115394613422635199766394113521578116971120744448931260534367858577079008596801844982877591619388871015699887653053656112130192034402787409586592843070902363388517463150789070207529916201382597842062557696817307362418149229864086767680249764428544138262552057871997205247613365354996995190082714004688239614175576727251510637049639096257253469488095287517410839203213146305770152136332392324622076042745716041376937195908538896320588569010542282081019197076642329886803989845901646584195333229304856006081650816656362012448528665360423737790715669388443514880740786824164155948020737334905877944650377906672785908232999208038998690053563344584232524750545367410171227803835721849536249419559602893752303810455600150408034638508217754674715447460918708147253446565566751366319982039826252948700214171775340507246780558733196871439788760478905853857838470650564483758582618932708800264261980423429200756698572616629354214164637095207609395400247833486518134303345405066575722602525531999579533674566082602675959309035931500812646539041620525147826409854971718985257881048226891412624980286788710532723793319874044021226458999561931508160360112472703804977716710733057329769550890220473056102398425601045014015958747379922744897985903225661783323948599473504241861891406565301541263847257621324068241675451017629897804443332489788244569980129024410739201872579523712982734455550703462447359475548907721661389183582006784472011596508543641625059595441616344009918218488303933503019640666422953232882731799189192808596191623892161816323704693804990211174262241633993027857663071322238634989367736492724651562574156829573228409014139455472892375430075535336516271261620174964640025439869510158774800687599937110640325536644662620685369413219877794222754299273972321733989345694543918464625864713334546883785684103056934361503576622941586998033290302556350801044338328912640634597098955355554072642194619734891012758483216171477167427635068754227674224134686168705997718182590028803517803214195909138401602243341725597947081669437187296775049510008984213395183302727851057862356746583846101994390795331381071586883888928030960349939028187906383184965429308543140255809877578377913530734263534081758061422479650969584653780981680380677707163789003294497875679468049987197452427149279407671237891568272159718743228635356158834913911431789978086270680560769636453379001127060396251200733505803887544346077511048059072662737930111610187757727494694417992385884915287909985033671583892348804243871386513250006880233567469058595966399680394337064005906127699839497739504929846015943222107440104287989470390177902267618730748776156753491131064025830143119158198226341330489161631716167477514671222204776812314046415882652640595804709572422310063175157515510442293521102632829704579852170364185911490759698780902187617959063433186618913102837883427538338601769097848122698128706973342971447891522863847188656114127851058003261563373010067955279902081904117768459359781072746662337280538892209091341113951973323830298608875835553469750852324776668510954773660593965677988066041616295093314738219173318867264893344584031549076066390827384212882479554202268132022247665655795489555516335479309162891118202832204027393273966461038422387148070147680773223895172222223810421289321950267119548527420392444036126364351938087464119278308706002478607130414586427637255580439216663115906280187515330334634118330676018901926280171244336522753319209642978449409728275264594176453853221699517390895881358895454232200790099216897600054389531192679256554745467089669303322911337171677587597331510831190491812466256099565553281293257710467643626398561134020913595025093654206298313511231260991796756633596284860243311986083294012964404464685904525087847752907265588780589216213992036006489411931520239914816117378218065720508569390512302283649087826052258929213703142268315734389505385492299115324750762903012673255661435660251506045631244003011819726755288742489800951342651747449071493973537420234662373882380576255456456217708655263025884693269145164856462604113990049232554622958380246255989146315510859158595663276777072923215052159307688352141103102283894544927056066949754833576537953139870069951333923236532718467071780879333574738619656985415855094094456384235988229764096445294785781727795997067228437668451797373936050269594343858882879781371478468450750247807909595596744000132656288468931431057984764289173348722617517380445178572078960298827258808801928049866033859529690987478741167083414893647326114946567018131530245333619694630602848559870961023444023987866874143546007005554653323552597606040058396189527595296315486340086125472719576145138723051180613614044913917353230213916568659504090935846826645865609795319661182346700025611642375458021904902734932755326246412634084252845729415664141843026519808177482037609135559658163480209475180520049960369684209634679761134286994310448923771680735516656189293663690920744303643048314885069660797480869798671063220654448499944073034586842431762557624130926166045309182903309156407780145064436987795384834679020695695425284225537544255114430161981943332424462712729914642939088637176435790913660611116418707293022754949718855655148504059711039284477949163944718762931926827632852342472388424507056912450474301335149112909326873897971407233467042778247546488776457326222471706773404249453532657504747440393995741823834705664236443682464619468663051166791208039404390917767460449883779411995062079278689164975980241633641675972926130066757458388223230773087617155558867980215670765355953009239731234939369365270799100455241475888861894214879225341206135659591097511240329605025021035103692193414782715202113303627520182176307782428109304768749823588440227938444461628525988819274542113270833902553448324606956958330271130527157510571323857697197806181561954017539276531719342423985829101404342728361129783486113964432666037995526096154342817829818314195562748425338393377049298770481172755225143370036700940766506557886088242160653282079303830406707834436744241935508044910989976642189391750619343541787979857062217471938981999618089144276902605393224646701494348485413350935149082733345737482180078792153738098261227850361678480309221698085840726097130442793077068609868429074242780524209560623650167399291766930260331156288000349480558415813843905541753449332978737869357663741237184422388727642650971509419462377301515759452255733692890772649381068040684378904028791437333188692188831334841320901187300148070216822915089668551605469811052870374919375732977453966274205559085440387640594242717241250319168422346341408840098598483909444838465710427072318612318995816536457917692436801372472655892927183975572654241295605313750293809648637529343106134918049919574090610662224780614452420271575117426216272886631997687742802021064599312325009245985141783316190246421791808983561058226016718539140595733911463780543471543626945291001146853577270874599700743655698144563249691351687508078751091339297389461253198102418758744565119170542978638109218569061482290316423479660025933577375962125124996720553836148838019146642707003860042300900689899947233755229765377265977972327435652691703286048705822629573417778389211911750532385660415710059672697782873652505018776274736651316861551503034614206692560439676971667127468914036766545613741526975563466399573995625751436773703659194549876284371346116834482271919995673089762239626095737074373504737310737199219862375724695660012264542421340676861556838544853221537638681579278093016119276764261537336021103638906134452835561701046014834147315163835309508384930925582098652863795319040500083301470869283897966111087546846690774538883972196174650210324825378049042960223359849350620277639033886826829985122680901149843360469890758833496635103446340573251067327039473882653804613040010570930710634494749511035859866670617061549248282912397129398726227073020377071400045437727782951316067838705317248917392872461180233348756788445995551882697054415698346824176353026672416988333861104921905411433484240263153070339294759026350210167020148381989038344443999466999864573383217721462465852799859937798151305873291360475283214320443811890316846679253672746546365521393260436436968949465203584324153272989862726466753397896474605178682084023843680185031296705546231671767138590555700337550263674053417745526464517440821169469021161394591716985177264755891530227210538456235201546542531091975512699027036316707653077264637848349229781696816705288787743820700247146362677838263375149274453375195793746426100513509744497829099958740376441654601044713448466995416452243689386371583164724875588516151920643237077058614598540335665228952986885872048673552139024617499458610059515360847094030174792865261736699637517685924072520219436221561638681812651229800017840258214013312836965915027582124821341528844792722000672734545051143432896698177404754338895250747864700197767026651234523949216143038797702187311620061447295632545160592228970541848365742125503549346777959745598367552211498663747684489676262424742462910901513755694812188316662555116367373264329301235756381856017729274628765841957239360777861794289237405860114370152496132051404556725435156905782468194319255612494803843080853980031329671102393613740860006984779868392390396196081725381230515801160689179137013598300142437905708804371303282338082311245531630744483735889767362808394838828704119989149382109487178073133170626119041011514526735684443323278268181410497873962690343514539976023037945195404490798999814625766732554570995172730742412060145447482932426591868687760470115032262871241199326030679282375101567314542798764367236506804288053595316905403760250213295451987431168476104157491039421002681965698275535148340835561624057562617716482189219041284502790507289731983331345939263250071911700806601389628506750726455566369929726039165380910152774490886604619055994937362932643417267408119982359641422143909930789682373626275559102841512813037440974368933096212328728157870906456899537269726630816705899287129519044252396866066174295938226791986205331268696213860165327364645836812882678793803502193375705326230648418593416968145821918797140377835399537878384019623727335533224102542760765409531930776734630178808314909819908917254868792933258100211766281027668825644105727304221477387426082440823124258176722495040744022265046510152358886436058639291280501801142189598414934251883987774994507274775973017076182807851708253144234011343336356014878408237418247863645437960758391958747924903348153025577826539129081857517758220217813194023840507408041477551712579811230902952271052372080317810292475173891725931318532954364066171400595819063469474278961742053658614381154795850032275947590145761511046812869062796071487020754369630196901342117945977552475817328241588251865443715810743199364922552022664837539183659912119660839474297125689055768678645419772162283184464126114363417293401415615802640917027337293425937972439981236364860610878564924768507196220229305544986490691330215730851837194390875369791778164772237932535420329347853592008851506297609351891363293736563394959346387260392803181976555852741707833308042942683301125907620188481295594263305428385922068037085135975625064251955813339648437526097496020612611727708796038212415673712155795010850332410643343431572470279694548743465288500273304036515137295705375450931493118996114561597083414166132081201349426281288833858294082668812245413941961172355569791791951236820491044024459796662907225231196006459654303207246269014832332748006585616447069514849296736652540074218339842973993277033615864039234569111991596155516816909069903171999191168006716838570200145425927739002491805284802308382750299492976951979907713459605293409505338978876680435250451358772736593467766629840254592517568101152513705994549718503364541251452907454241424589086658236382935904950669458030113135012656287746394383344942052537748408967756950076912274766108030166529388969306574794024532585075782269951290429671295073123593279508373248344575560994325554832087911271698322604363932599449008176213599422388925213433839445030549120131412602196889339537363104067392771664663300131726656214521899678403314890547217029582449224977622968283888091980220566564614747817529831546525343472569600857882341417476520541243201883492355601605246807094161050697169903845620018571613732914907500998557909409750535215899622878233269567623318614624512068586633014957828090378023178560645870705168102784342863049803084184492075082797274367443159861284536412458604461284787916832073652393521502510655735500895091028651074001770934016377722289856558127590361168522099915444585617505668605324217528852802164984553228354418844712974132041411434852175699025365592867751814211165251481247313831311955377428670530064396206358172183324560304243109016806053005488570446006138347349856023035498026500732885450362355986823478536143488142968431554691961206293781426365454357851801946802765011652447455431326963756601872330657663032059355681799526138697235159914366873902714715123388221117042551268056903750197958782181321789714363590625409527411362056714393490768321832078957760666186059570625418395612610218501361659042913101819009924216453417922368317388941263229645034931190010687106279535095949801791556632314001414270045701730306309902723894297692890068020571015978524030171458032241442356021843741940198862605912128145969578961483162804576713500342954249805908011359107880019948389720009401240917289649107782164893111261445962325605143378007769696739079661197539591472320358228958230888749027011015876517313783678790753626224964233409647255312739714479881527560911270037450106323915990280924400575537454928641094557430602822784004930446201740594775128516315128946631290028475868787633377944148738598585280030504060569727913067215009952608315713323848237150148566045495198960546541740961673204188857960843864447076987170543489662789854068866973019446991035290708834971802766992661961198233981096160620415948906239485741327041656229385139102097533753979353365424147931279429451186893038125140142283782193331696554429608225600408775048385025358618597571878436657786844223723662998002038652626519094152241269460973390570085658025026812654705681938388474695389648199098702317865646557133357441485712138583905136126407780424369659693893199545933142386475851818772021549140744060359682691598455330492609478798610670728568849710549855105054351259450838427454475333721871759091505722881636939495256991437841693335298379252302098717450699859460314756111647610687505553945086427774652323549117645891260401585743210621646783241052001620825346773754171704333460804002597840464438228744276026228243617501726700963098952431877229489463356943018743239095384892758007127710485107140142681754942676030836736850508240700877580217686349343081176425954040444409999861591576181301934160319824519094159151788913508610302600217803337596192153582753361506543238075448664470062765868245776430281841754357789340199176749691471981351193116067599839679817147582829684981077295116077216355366165387828884394395467749882308750015111620717685001969707206476686928949955350180899821060436188705276117069853177603460530842076493856765767350198763467305149451241742080616587204682716534532506883309449462023222005681687328078683532303522025551057349867745381488611231684776776986876995220031880362884588035599641365349700025011290461891040097214221206271683608344869725666644553165504646890057582388321041440228122481944540054740124214568002942053615118233071817866989552502525235041998426860356077908082987336517784565465935876691462776628513175427632148384764403424638945716924131075542001194557307098585912277227514079421480025089627460222671279191805207947396134197518466096789417615934372384516993571206974093196493203191983637849783063321781564799105430628948776264795095726297654644542101602959595486150345587537775727293953501103987037761330642108622054846139502603003204817598296149033757963911926313483572601460099741545232069329059170390718603669192851185184804776677562850314467854951364227491889580628704232522456490393236934450539836852921266018629083286728744266924960478407783105869168350145406895483366100182171432150718333683371073442932893758865219126707377013691627120786665672942458725447806870762767798990552664539444795163184563986710958415806304668389089649137784416095387319770330239360778005413007953904499669145446686429960579289524190102337640575152406213310480041359363668471450670425638920285781957049019967765519619621871609446123464335697016957688745874885473559155381705729156762085950557226193721099927693273135649763730213173119413529077872541693474946808706879367623376572429277839197681748995271103476991910220171971145252151408532424523387060462431085226254930877502451487165063037333852374087409071586135921072977842836605736046244608189594074276886151333195523503641747473613336085005824481201144731592584309496410855208308377697224676300227541214388750060220340931233910932921723319119683167879813411653908088939750890010431280408603734815659822987998246712858531438996294236701836967119426294624060834129286195313134678641744644676064393232564432325289393766255906266440988397483776532829830803548262723622769789538183201741455221342484538209386501152735054156533230024415065852776943656322770323135588904165140275036065073520815533275448913268472258747919655131644620609584590170512628399654779943544978881413710171888636206498883640449455463651785861575461025486475360956318607330779072915539352072699341908059931961932532828434521285111129397451464912211517660273831590489573914009949560788426549208365543038160780318666249390404687865263807711801501777457364475284202614665914900761519307314422049166830477940653219033249265221768963662293988333212533458846291110516119150951893693329729828829183379262998472663235821081292800591520300752608476576114253341547781151644567162148401133676744675112160158826869817061575224189899891858926935207573955087673380822005026427196568347100759381672502171681021377518903205158915747957351031387148164270069232089071924346897244987500303595707483289103294475831805143354596122966574494817975852147209992866213287409362080048254365652250979598288092459485412296304523226652051185581579392207266746809750049437127192365378036803675898087038091096268075473471939116210854761697658937973090742393754268026933262891564330152868834868695241148133968158557810474142763488562789173992340409932410531897489068827034678139169526587505733588495711894985229004689815615279200777118695679865000749292493081196277465447724728935030365893542688180420135103960163101024527103490813936622856229257627975054162200964383943767586731219893531392081876543992353501024763881080099249315561252712070514528683277443077575595561438076251248838778759882253071485710102505935404789741933403549393583935585412432644220748573241492493586188484150679482505251240852886848745649551925748218891788346170669593869147047681052318347667820828270002273176549125602271717856061582862772634102853556299216561630150206823290960804664201793770691999695883648327256754392098450562768435041933493391994967728182049414101648508167737218840764438533467484068323635368088129001447614939130828918350058916456144145054861127197324637168782654688820062541083944424584539565743964745063603248721693956706855595085208416085248994570507823393279883008719101174236470327698111915784548099362442429508708898222967783857236340854128051340780534676742224504048724577916608514735735413693239967762893759562954515351320392896175703533933526180289613423673129340829582904156356268401091376619479277320923203820818121645277742300474412609935604555661519627771909447293105147307665722269487878443452365338858097904640320583186987479498158010073285493298684354608278853430921424913265135801638560910091492153443865890322229920104000309541389017679632839908239913563894451059166003750998328624079637026194086981065177273053615104826938725147359807564645958252313386424153154181793144850369052205311706532057980028725690092505744463038768872034653412927850205493249771108368657157551986429760539813877794309899298833535580143947737677084660529738384332853136367615650694638265985563414995505818622404650542827500658642819250626300842876732207840333296419509970806980735251503873733380552835713208009311141364274106749406597731589168892947609693097798198777380581638934966919070947973383058826020098413818566396021782879516543079994337789408289156802755271504399525636210316373670930555625746330962819947597125581092209403605908693178475064619264179337531955175501978882547064747899538203534333826461861008823524808527481349339866605416160904054774353991389931471096917130392755058352710148427178902705107560668472103942438460909217554155760238235881883526243762286872507644500217521924503364638090150904513041007582314829729529607128828030975956507006964525911245261107007419837452524336631203560773879244721924106535815886182912851495627241568477270924100505801461275743623027017226561793552616584395472170399070523177092404275676859533145370209966722892521140983406885050863794545848118922580606947780479340771973940718296614863566943486783831435158507557450259753040311420613073447407040777114170855651138052965423558933585690014922677646021442407223917603087220544855214731545042126764772626671845454109917648305477244964009229555113551834814005160312016888398809064458277010145721596531541976010282602950327459531878489170885059074708745150339046410344527858871449426565840193648935830242977049974877104710239952279383319510570790910008728581512284323799508071856356301603712941100674329080873999224730539493709997118314504158306431185738972578929283470758660726289559446220637585286599343991343399924109395479648664722365146314969682005823764293085201318042584453044620269585002558308604955668429069144505148142738150282129204618399818574323964232503444182574496461156436041605195900072362347120774386627577054052274163341269484673119409739494319022721749927235035400992315216079905307319867425839459554384968437471725809484221009705630497419657072114674129488089787170036550425866448827703365175501522802250640191573091414771780076917666750695896897414126624598366980896626872181167886481209185573825791558502735050493456221632179294257482123556532012445099502015782397896724195347081213514221622731581796496021380265522058964939911956055206979974919450784513039101400929196572863067530213346525891630687277681986742582866754365948136013001684678942820829592389476802906452521850245057105256219186090781556514759725146219304394683951641163157625784934401220658983503835975809457170551327669672165453828039194054985641819344849851986642076210980534833235717295198520087937803596895011570239112494577397613866327636104249224176582107993888323918583460720063102971615218442042872218208624955972768858587551897065338328592586917524140013072015079348355989311564260199738172166810193591780349791365045066935250337746804120459140060201885371159133711910019097654073748859532779654278551942359089119189590988288167565698199415385648134754479206823354986430517206148093463945247197475556252955998791829525730110729144570096421524228062130578573992941280594547000771882440719690859394237662873234299324547379678310373762915158106322781439069319742634563033577864436486255234077132472862342127943689020498346419842435006237227620570707752949502583567159432343875448372561386817145241871273884602208062740432171676986997314349285986537152057275396053631270245118618016424319260557053864351613602855214503999688751850528568070455157787133661521191993005926925430777384246009822633724884491732331987437954522895198373682054451054438095039488227303980451073085479846055133401714679876439788772713218449457467404583559593675120199388443807829059993682807048291306984626858838148657369292465017961479941617449823692788987019680309611522126564240255579417206441981971781249871772808938156875572085761062293144296859778282581073239745956481078629464753963984169969115826320245930346545679444885021987368639870907563492637503450417370466863732192076549702200218385256975505387554810730646917276877570444345077254832691648890485805672134712787894785425999386874398389525754022826296236675316903988972560853698396584562994936749893751598124128696579312215289817244089390385738670694421768306545129989262828740896510680185664939296051995918546243553028817731533451163017167009949766589668318096097302304715931055098145155689782598361403868860157716498346786295089897352820359294256240449953795549172320373003580779139825094083230304458629161239674937458401760155192081467440842274282102957822296189724900580077326450233077214368091331981866910540604101249738634782584720497539702369399385228096407743464444780429378571954278455584878543963672004962168503991650365495422750865874610563991870479886498700972002533283680094376367619834019035255662553061342517865502655747001912445253195329477303727679884518664352287322660497479834422638905119014610683171097834443981006140883260610182206862842348675123288482707079040911399373220418666805933236121100434102366946238928048455367179770924886905082818838496993742150056897298154962945519726697908408125779229948415949197639838931619657889418884343132257010735417671224046544315656673498130301299541678003941503191505261613093479623089323542313367450589235826754487834296511398412768121052733617058340874860193956984352786765492254635455625289496247940216272388659958538748389732612583470222312882232293751195206977887405201911081348439070276234718751718727639520264660796186801954166830132834672987717820017104504998484374939380154234214283119521550845127286372873710493239972275627199262449544674066584507538103033775760600692671789007470442057718619657146251024038296053056406015638475810079453069497190471910996489047039470857392908935158403261640474121474379956461606538938221921167921314936310416363385589922796710310937319279240399801996845697302351605578530331875327670477133268369254031945935192076062008500885039334226621825706331359466202674550263861953962959015866283214721144252463033109269710801709749401615037269215289815952757003419821987387283648256563411006488595299893518206543066737419020221817146665971334966630602146398401216404206281002099644574446673065549414038469859884554169420870363444625031486360444182219345285368875959433423769425511009911527055615250854741017345657700950838199638027941760254114926576356505063068181121599490886480849117091300619766443438058959261025531214662636470775718240461768841448928151080295620750239827046255700813698512807585361547188943857515314059425870842551774556275921870865164184591207172959377876566604546826136268198798218786152829632388657682142875098729182102317942018660274647208073430303992027366546011196302649862506116907130314924449226724595958716780991278927579227596310364893522020617803204603418023053311292482297926964594521395447120697962738562639584690993666209540286269615464136103851592495197755013623949400587330472016907895046253991212962973459026397213327600794170539028436096365277146214919323968069285334371830707770170555549932145198251326864466592626419642838733840502967034740133637618452617142770116514283375850082912995257488208778951672182364414032955389524086484388801139272381799080214431106816958400380108213952270336234580160714165686538233228009992293108361635250024883925305632271430607282063783907905545243447466994651400884446223274691704681796509996476268854770413874875720584259867375142600630664509844919315741745430940977902809908692587190532672445717343349292157848513497288750390313886213888833108711142331578845553131430535110203330215674067906556078377971223422834665429695248824293801588005094446119954368156888165909296148591279893197849666235579140305843281772642532543058246327960728263476139306907466044557718804466918331481337874849861491481316565673131637678913156248835910954470834443308877009286735305882817821895143938550818329472688492231771550452756408693082033998331387091370496403983698888280480698193308874008406140671222109902683493464514988543700666033912925790230260360583234302096876819117182234139087617913307555391231927706156176166808868310410459806343611216302136673526524612980458277989633905718009267894973990667407777614224573003793345913503230772546201860390308385809409098315624902044404302622391430517856847481222100643972943255983658472425184421092407985465265977195966468278811786269808244607870379933758731962812762979157945482338685342928145518376996323339789125960660899161844918798358558027968903260073066678088906068724562791584975308705599861195468149069101683920897475693510433289742853959301723945811503421053351962821264285718448316751132565679423451976426062806352553484552812841394084681611129592355085195777048121681322908109679497822006285044736014566347641777968803270297688282052915854410770246386572868600072512202522680251838964829868891030792492326261116458280510309291991377277325262654768737509096735680931924680387263417735947367512937209522153810759719984304273183514090262531889130047047486908439104672891730570102242943339327572939522843636006548765473252562452227242158121810399443672084145090365572751805712964798181928432159313596266728760492799044655929555489882138545785035533775702961533312439703342148187097499851277894577044623839346082953598740120762128345909968146904537393653327317278525040810021991697217043237966114351867316167677639577357668329663713738776708950189782319927778227534974481032889909820065053527365721005636128362519506808043602917164446577211976292404879977237132232741726327277905306021687776261273954756522871879133664865510547574985539734029069195132594345510159363668063768804824376975998379811770126884796311689528216479421378356053953579494735991261431024686452985179162464676698052412862163654775572989254257963010671131976949188767214264654486383439445071986202638307227334195214738450399180008527856287185673522200663662901377228860205007612108796221624547292164697362769556104301225926663381285326382878436752925477822351442042953609336718223047761359809184465478893418419563861960127477861868261116426723454902505230868656279188519890596742660654408491509481868701097095552350357202815138170972092635691115255148096373801083955003821447262656345610679320453829313545115482493114937302504059391954147423605178410345945276410374107817973702036812161652939706352647764007963171269783382744512080847658676096470786852749132036739575562870806567778365318785548040410206922248258677519832757466814382430727893308598408454927389088990752295391246052803674124528899153677870902970522498076224251587080267766732076475604894203015935783113548206837803105496694287384315793329777435688625901184940398611416782682211658552502862575788648028969803886686400205282551806994879303381033972024640776283175545839501092036945557209142013125746289006076029424338647332253189879420278277766261558263534126905536006168218556837114168578685696291699666665972471145594599441207944500161692114091591815328347004807571878963933307787859265597994319001932279619233042437952324741236353182822594137517168915741902115713533111151972196031901694991530477699279009449469772436826368354704448685746668405434019884671993187667520859014069031280480134470047532036169220667226767310535114843498465878431044391216023697211403652984494787137581793852466935743744397926771554127944335565882875676969398833609376383952869486224635860529973329172775855605803044842680585562665868618807065633099595710169734171759186465410690663252320026635494656482969835933671158310390118713905754826333554559213549640850030801827841383259487178564817537834492260229882316213881738614710668095608712330925280491501539603557666410984386241059655934315466237784531888234674347568374537791753181319778350867991022286123796763214906740954941956483279628618674899056567331331298057689427743474288434961385940896392839898222551470474119108966666867091055837082920983897353756436875737292751407402240753406715760668971912773604913195741975741316299310241540590331896966343328628633217216985412760632786385457473374756364152752602197373974536178311135015006337846230099558487647062666455929691259576282733707624729296506544810698727280233137137230721003230464571225941245247650449972516214762280565677709433001746045415088985259027723768529316562733741843511099962902470565607222289409117938842826263961703814133189489786264275910166074578411762299410917851366546929685686136920243239718259520833413931126384175081398169644839729904602345578708976769290504930422860163489086547263104536691212922917782412740873784927204815192663141650157370758347328439390677461677110072510266746987398749881165604041789434916397030493329367271852064458400241873699710457417651734161726778107919643515630154907224882560188892696434985994323900508936752911827831691362761919996834229719814345694274563247393217306547481901459595381139064891829675411716479881665478960510716985959125317689272644052090096554741077983887680503074471324687429442911385136560875282692258737447701158251269419510465305285172528743812298672435362318231585330354625011270672358412560616559440154966094120678337066421630849415832296796059655848162194687038580717282438942432530301134767918957988335575149786980996961622880995098724189840542741471814702632921043773611103246706549376668618362795299369020549003597147959396765652129027366648454249167155226622236636584647764750465582103099744991325182769000980825471514523429514119659646263363844970799685332876349744646363745843601084809314868043823198986060453806372697813535887366235204956483754815628406977418297103611543188491000041903848906499554968551389063844043021419079124692097473377586105756110665295321095136786874966245165514397500861664824164770597182828039325256950133475399131805472639938230114589869324965376844310168482433779195507985028995764930747551256457192673643403668596848814323802000194567154785084734441307226207877733332243967456103288458132599378504854637912442342564281539773407938272164230737723929199925295908806547492715882980524370361888536316166154798851499076149426596980945067603830184806792471743525213160496210372816799886643012058322395241896268417838495720974818627711684985174006894278244164121795912014051488162433779173244570304131262603538951993552295734354961647215662290025483350138913396974922147005920220134946648846406665332731403075198252348844069821442241308850965003058267022595090651550861526457118333193122400803006630527187795313442840282057577089656388801300977822231102410360731124679964195689020412358125378185007400338535958592650739922947891745142392585947192264647591632426363748360775203092605049335696835887749432605822731751377702788147981322314594997987125548490136151204080516913237875862168800873876274289600549641224772128782486673208622730656440918482736010671851445214422958616240290473864893840183455315252881484051524027280472477313979124689272636969904664949334928280463219525814661756061826186979777447368904068626253243898785581433069098302087970722651540049397361556529968953776183922757989802309662299618505401402044777592302929373593296005527519258555377969426298848713786449033861018346545141584324116125719122487516096900991352571321173590319027230399439477874929788670724537980179973247143315555011815063336917978953278618247763886119513270410645055743607284219267019078584884659619013385702483902190159327924302390667483210232692114585630866917332432305195568759060837530961528729558822521851743847992839262658316280783339811403262102567306138472367699782338644584517478502940622311032013015115053656964330896227430771780564640026834149755609249683557355914205594284775501102434817633901853977825565680870632115299079233932913799709318177722467439188795897793745818411095700910025373469477377975745616899503206831433154992077992045540404714594339512205263900279025992632331259386376270063548846417729361652018160000893214459683504387255285415577189748212000154707985349199108825838553760729701773050174687726506513244178284713529775217545788233086342144468408937219683091452425062134498348334938304252054092570119098890571504532221584133124579561914557765008101425580765898225211292163821029060640554352391281018669434891785067572330260533331890608644937921602956976971053382836826579449812915261660170782001012862183196243953856033204860723627859396267196525237083466987645458016089550803628709301499776406201968098193055781060179381251611231052285516337530368065423129921304431394735088799705864348839024986335868612024778893375676416590655845691431180110710829918187630636059578511111528865665912277613921341350525558002739693030620379976624159554415446436552119471586880984873149969483885982422578322069607350800105253841234377377296778153441273118331014098465124286560195930806455757280085528118201416493873925926344283512649457062523008119946069698302521763808327628974558754642051698447306308386768743277803344261030707254694868783448413553324252836569770645137492467541780100215908081697703787477264054010564993645528181878560833275332982411887917489278173170598146042666957101596387111594526077507369784188294383885836378695883437948012154469629393687560250082964406273834410795058674704977023643577913710969676304930585149227920652374361159015625725956159919715473180387830398180569086025809697572733641219852453745586343299931361271144745594616682387208174501869979851307954519195171462382276390890828116200315812670782898190725726464448467652739924499207396562604826341385840176850416097876793634249769775056570045755600784727521575376180914762500902791856398650151532887703327265623422493119867591672953633203074916810028959079647812210350152259268603827186413386980520670435738465956108009739743655970530914382204416034824375430545017077910307031070107729786980154836952176256107403846340738876477122102673135510233394029139160455465050058392040971846649187068717431390547392027147267733553674157741779685213792610333981559386723608504513027362511971579163470624575645231290847573990718160236324850146712328548789691196375916686067197682228013731475629513668830045793838090900369488321109432438516305226373453774454929836940233973493873633763875417175956632595181782895632748236971405153428110914316334547370665294098962464298386120539531646481930854054112794119381412320345265151701093038074683013954208091912143918069618640207798976359327818800578426544013873592040456968995108500148047648057634164516688805784417758976226690462425885692891425281414121404598387621135325932451406078228058256231245630894867774351471956464292059908171124403594264638374852725970772830881744286268698822608307112743527880730087139031184522313692272188683087399772136097480507045977318244967764024387312028987907900766700995312328963204557114264324813912805879586640710564360486961517936696750984271215742404407750994705117955345624021154374939767105758633535140199086332418446132326305335867151302263171977352460129141708614253415591316980874355883322874998961315700639139233685138426371409778760399719871760506902244921876953994912792387243771711127853037787114083383502101905377920871974096626636933514652165766600458592044610363757844481819143945010295092001789042974737629539382107317742699990756615455688406332526360762707985657638457505545254783940610897182729085885063185137798778706135833715710228739679224267264099222707829648831434178048672063273853219957396983422108186357079605790696990309595116453812490329781993489532462540568048916679046924229211454221990624031544332517814180328175179074551561631689761559383791895418851342341348484148329800663627812932979651203047996757087249303427575439152965210246284540930895295733849824714207934144107803757513962831900025747370426698045555394875334308871805435333694539749694888431369200925591184325811112011935489049027516039835355742724313479150092179982023798864091447603765220822768413317668794883370206954851272549260172129475512185923546081465672857443714125331388065850917500356597251676212844803951303969006460142463855029354740234836523020594233055464837040366852870917293050945191247000209184360220555257464788686698547950552790490150542598417150636666656187374611982691048927586619363942941123647124172175437913843629917520084375681224175256305690903431084419116971119256760456626432214566059944779339089262605818506801407929003063170268028183467833971225855059740244754449436498575894805174734738689976341703306131693455293765408876770261713167717664012677265014024013192494983073723770679177040704679439502328081765720675036580152263723296055998010357406770747539622857984972120282510782342059139890419223647883542362134420313462493369737052138243486294672420651912241701371192765005921907199814758516616167544868058820175929839010192919659955630286940414901982465880403503656175724928608759514695662816399981194839435363461956208609990916188373403779147814375016767511452448885482789262428458570853287551897758371926526527220406218921518525803252995416310130622270163270324344944100180963850147343618579390764654522975858108969274005894168403395933928508340360130854735747199980371268615832795343681020047523654547843146532071269996134608123191819918783171258151629229789233456639382032407421435315970135289330936054279841548458253242988356406530410386158174132435267466348069275031317647219940334573705701780848555646069456645669834611301506804983718069391400310250094100217676519996516988611945627780320271347727602259530760437426550016303833713732468672030280616051253802789184883114554789988295204478580376178892636006522927173368029446314433470489241188958317793529863105161360016314161269818111066349867633461776578923736444648168213932498578184339596557887867878019555525298794894131152003656295293523245400744245528448103777920012443312971505390135708387937842086302520666013285872988231273987140277761618363017991869559159098647745789811730235303773789132543686720367964935174378731330288469659459761449505428659435624571322187965929385765807900961150826418559435881872847148469949832038409925660258178538248506789692533484992513261188900552418382920399089447771516232047861375532087411929336371678837257788773305761471348889343481699169465709985717746419187471399108297944614066892732167969094623611032999630103139819099625604891239135230115178016638835152337354235568987513723314483742037673761892843691320713983395862213788136162052978938278616475866938541541228448602095909452982877196570021249001466569266292459342352213397954399662186543738565675989970118924400314793728414834660839011274584048285117987900746968952168168011004768215163620723347211832880481326548290361976311259532272307296666606638038875931695656533282447243541092393335437056742376067345277572849393615024132855330734134400253192087833084017041077112759962999487739627109704827767941897538762456970530580634194709132747914088419918059227738312775809267131384516771259099266273297083840175899172615275419743368814010228726562880199088228131643025041580935134400405773573570549459128462037679455099742462864363712857789190569052040983409904189665395019574142835523440287374099542883404921585720726058170709249496054466799418229032980990316372691567377204414459897623426343209148322344553482749637087023280360139292359640637719937739735339975011819351492668161376596244065088734975664591043526271591454706154914143941413649735722070159666606959295671533182903657064992494662674492499289441053726964375259471270152909814862092850439246768111292910092290631872588477892274015410858739525328518259968492905105121330037045776359092597389377243012309574784865642047599932193544523603518136030469831154081315577115189095103772131317712881238257340116013940559817081486044328634406994279998720409150994649030556835355886265612457021476742275700397300363386717345558806543107534147934068568393954091514491929932101371999212384451470869779331836770321875180293026075118693711976273441769468663266676829275420955257849094886627262170426451949341334951683176241693866436295509771296148003997343310291344284627244119319654211863602774082858828432553085802071572225012776740716204056102626445073072570540165646536954666016821926631985842121434435918943233156523875600652236157272170284436162357212724135030037720898923572309741331466269020046439483958792993395879953928613167629863899147696825367690902201225501005653238367138140572361654207680558969326039291581652154907951086107549596060753273142516222708925052684927393550301602559075022431357835673655049867311398413077526462248445841331705041104902978020010724599081208089786389730361956470070324887998177115686789891695928064931409599195864792476054075540943286762456305032325247894593186788093478969333057782972192865251378612991600245718545380593563327197249452310857047208471804953253690464477757377524853760033445817595066572226838516864537025669428833342651096770692632044464356550748869393536363056644862608406025578126108011038657470930570611884762227430896552361756716903452381978016500070046486422913717878947111937519117956097624003593188079828117908099261784545932093784954889285443101441681408835362732023701511035003044469531710068901908741417590056095431830103164140887461660587345421554964303575946091921441091719799695552989118227316975891766634595837724789829057681496216977138636806734722300395389510432392801026646176537942449488928615162399878395584531880405138059535438488310670873517666871819307875481245899477409874720373747047571579168769638546974177846981963928555546155509702574876568443415765966739540676270724895700093114997007960252245252136787642762371662043069334341095681108478707396206634934462003367453414101844105926117326651529422327112742960669751345739727833012815096816027743897989541791543904886261669751484604359003888814948798721042323122680416369728130489058064307961772968748448619886667592647922088356632305132636302032243504511358308508690908870441036837654253675636130768654885866850026497518593225740230721370377285184405285266704420748871231880104966185060168329257284542518607017256048773749734177346764959695992752506984685468859934959686233893069039992830270648507939757345799060352199425555258255079616894988317630379130752901381466104045907299822125171925757380521937780901184608058016183595721382661900753408610279846407017063762498858427532254328260385873119598475903109266282217405665696105089890694778713556645387824855713216114536154936007724937217245832943513884442182330212968880673118699162613273387769377462535625519672297604958514582577139145529061587689953917435450938443723491356502024612519731595842668793623643377595299016957656426742954465467195924267732039627717911870675106521970179389146076419115883725679280884811208404980664623343323139319907947698090656859565380922037564477743403507334446324324603098115804863721841595564876641999194057456418466621950737437648905720312769471732929638474470635648233703596727256353200883776603794347509283154916684182750264507911529876580572038438036147251893276566892356206562999560329852488004577088500174367792531766850256898598435689845847207119427012497471549552291750435650239288392908267034903251989069470608312829252050401375733886554435524511625547239702757940582328936333585952676516787734021094421957184400339374913823734828968187078009835195950878493457283672227801505339391511069283575735638431301813811817351792553872468496458319139162818424912844463700853039043831570414881200466390847702088466965059839362191518490811833819207731857403411140395270803610516919795107670548501385390962389493136109076455762366184744225163380581225170158412086820445700234176579560973767740702126598147480109906556277891408166662310474934192840640348192982049772583314096036937626794381998862875437111370218367685307269542645985605314906241866790411128555577814311655162720711900082769054933183890295715091125854858899944612207870575566863425537190830122639169821174315502559272327998026071561771904416402552277930845602492802321142922257271094019567516764709587329215205544031143096677684086498327625757677678063207422017949232370831643584422461630772204518910629930930637866416469419817695436416249749761558039969781845324300949064713954251754000739289648385551079895154852816644698686218259751563092012648306690627753678660541572849430078870008896376426936521043703432170861097908137825614165351708610694240212478045266554350693124317678255884768888072336782520926057419310431197129730785498505185090705339177277074661709241971230503050962747278588436807384610615966089423065922795144612638986852465456615376762090794388037498334845252337617349112035770788742642614073098053366052512950817100759731673784596698921817485172409949275497065419543890376531562871684729576704285087352848322178615081959154907404785490764531679264019033211566590970822578030403144422234641693045499941827296602230180616845334251605666293853270236720035681549236820149195381954729871537116672726047323864945056336235450939631963687088126036983989742009353407132422554384453977777308281896440274281292377985410147175511277757715233627100928153631522096599742887643272092795169413053093897739014150897340138152393149311341014994947364261275629362751007533861299913908478223260163587132344826834655760344918957132738861639670698756926792926435303618793973917775212996803564860529967654621252208081682750460743031260765285886669583317088661755809847687660648216610106804491384184892681515673538327301393197348203198868041658407745010656468077899736577202983019313929699081969960790008709646090069545759170191358537622767605488657519245912611393690692595758924574953545270158809503248028333812314239898583484826397476063399319105004984159758082774389867407476326030577083299714293243092862973495951183097196478935447442619665830393566666638930561419376611009303296261767160005771521138035719815788649342284816706969669225564745085041442395493306103325904477100987799656057409139231395366133679506000149055271744721118958619872669156438883583501336284025854498044211368338283807364186505577964170641356487377833841718491539157521129919554708103804116833044254771021647482233105045747878585289450545431984039859674445816675864548461611604856332059128607367539739600940422119796333428831126188808861942663711576074445625568454998298168007016686734982774929400615677328644968310881041008901702911316814426401717614366443778460919196344654139056795622458423821230242089668332235671154113537882095043990681907677544802587878189840242418702315147213669218851590421368509467557168844940343436881472413860378297165792039010138335259234059137785451722160868177022234252966441011263472933111626648860482073074146139518786802912401541594326875777194440817567935069313811100451491020376045670748311538865734663298020513105696603660515527102674325378696588269286495343964400581804970456189144271920362784700322092457725176318810577264094087904641946438409185873727239399416208084647854269108843269989271830942087788672825133728199830550041672331267198357263560621787093453782503373950974103521944806442603632547862800864833848654747187254203782392013472842094392278944933939581831222440608287258241230964422294482999944649856749621402074896894124260080760058449676764175476972321827226026581111640074608341675043472779537851189858669877046834858865788096069047085383313537747687617366867742625617390843452066170700520614604569518987313959619248588289984061706694922920703999022731667630952488394423784509433084665555943635294226214663595897852453739175652846697499144997404449457788465975555701486591098133091960621479875524391464139732386388020822283534201509473330854281521116268124968227652004753578275965120820452691535002942608839107334524312875819303013983457935312658701525401286829901125029773614233975639450450792966411473607980693218372282740554085373366672857253229728602558291696509679464173860109141861900733917970743319345552195608649015375945433562422291662310829426902286873976214885614140185869645424368806734022743035985170257793192406222935410262586941556643174162564216848112264196291637916519910078271134723481662155523952874835057358000610503117517453587737351305650662346158895041551623850963017896478693702105909036302729520272483878634330045377611049975149667807097756028705409185878089281608362474448524565013933360891439985992434294151213482904706255494222176101172028546852029015880631585457617919732772429340774522866884535905782796800624226217084249955145956906147779128442097533981301061759191155857575827291912200265978884675432218041346308556290892984542553847835595524916849811837368067650346440931128814613475537151240002326377627649677585243609988190174322955901482711567798627019297772460006944130670574787820974904823625889343071197231789460998616453914485125535074228019360821868422689284001659224533522170754231916286787802227707586570830746187304766095532129148731795276720835456883648017433069703661309691264634911641576741576568754183090207039580406541048056096048376821851765537569111444538165127376728678887667167012154325494832809081207025663784630135427741117317077825111619240723837113546326332619636944173725975270399623328605815457970373949532425341280637270929844334408250543371860507530110426618741995721724716746044616717119015968874993714869358446698266543252046756136291129269550910711288094961249573173297288951953666336383930914963908367899197260120418136966717676743220361156898426119108059744350261737034784276336386722253543154217559907083053647826931030538348387779718026757583297420597471843261007049996940986781480335292022148298272215100380316833237541615336985028364487310892727407561340742737031171007620873367742003844901066847583717220057104342085935063207826484077746730742248004679910386221364311474524768253808216730075601191327896240504436982847770548045100875748649807295519939688255753818722098215891053508691097749764851118880782617301205356886860889277401623345444002048770602935624720586939166700245401809729169794450748760551461213480647527552293057527654588945961719850024532447537588277287196418271206683310809622036127866067019738802267205386607333314712309189491589820851911538673151507101784435110143550764324061442288844842020746262097176184432973815519220491039194877804357887798512910585740482173634684320890636536603773280028503582578644307407821082135911661641816549690237976651565148207579403695837616907428684316942187007137970125094139321491038713062089810504107080674712699131545893272170106213905896454768944075571906333117386501219392090591835183214016055057906233865434253007818489798164295487300756659623082513279190833120843598266837483355165234544351292955181308369423724024787431631425444444977932773441741269481154575470531735156542860902108100144196698684871076394863154500602242917839927542345729209852723725225101540834039139811423358476384261158460015380105582382680800316712511940901076921951793922876195085115850539981105378275454789573150474641560774771082367356079471049059694998744264060434205744586551880669990669595816813223188643859561424431546069393630705708629498616280727181372468921802734550195491489801233809626111121323116882641091570946609902354813413042605280654264443387231602458941820860520534894042985846557040507939907734022538530008966442473820061507545849330695343141287773710512368883190185204212680816551544444527164192892552357675448197284406597897767095896328534381941386552843156416866498295198218605613337821271206264872086971869404907377001162556803033680969323970815531449566368449684953308828449459677264740591210742302813455761702440718592312600787159327236195724701145366301917929096469354356015933016025367923932388596066209520105700937099556612998605145399427264783940637491117136812848992686963858608721830221413591856706338120818206276771701542978345453240251175959368780260758046139962940610271440729161839059685963096331241409437373655131522736369927038879022594346379482505098086348658688571046498840352086926246130449284143099908223729624059324129429270285880660661844954770867459776918389604333336724490492657523967441413716409127474994808816633914368913026126379369806960876239862303765303994028528615859680794509595082209926029889303739747957250421979158564872522314737889043276217213319886171943697949381908763453208883631142127113328538869010089990161385693132057930493560095643328577742973029707880243856353277045724529589430756376483712854486405312836262577528032344898369058272071907671945331814342053176877110817740787880686052221584264558998581072425935071106974800019620229956281698991985332925147600527607965887619250207289411134844582569992537632826204797875334344379978835136685605710457500006272285177067866544589158071186220790176450651874614726320863940595041285738876898178433494272883873575712208634477775733678055300650780016980556651792643851109012790120828596861901872471734418894938150877856008602826934109142112027289407669441714109892120755177312960833551942934832681305159692197370157037485062289783679712936451301869246036585786306976108311145820958593482307344834482706790180678968027438584207549007341973347912438823658855816097322706501339371035932351566650024427341049290201411343267547786003968967637057679640770037176678062959983812537207185703342604016587276200998880379214798957701504066706668977995954022982828758134675072695929698592210296043517969027865129097333141731345746370117679700308983129796423113909718073534876748862504037247853091572315874091071290822616754743743969779789937123716301144648668984225685009717314722448858723856965862132262936678467485526683672818042382683076527748194668211976835268382877161783527240779025819794802380818929613933250804426399067474299386675225465672304318087522126598189127975927734048521328360014931069351364811711426099201934713306169528738426835464433255927119804358507551207692083510961422652391357999558519604219120114409835541386510427346371090871053400700491701826466487224814780365798863076800356055040919306051187141995738015336852252050614833979295342291487942441665000262382039770780112905862462274443732228285641505597296517926935689938789299179947539901245270506207481954001455395446298997196680670447665630816317315820415579433295146393271655811813177729372309629899875600791701991577734249538864513830083671961409847377402454522752587401333939008926515778427197417831610359511074941913843662615870199691827743738851129781054156607950121156394829206282855811986932543680131215886462884580980434440500388173034861033513880582546580667663949199611665426973506951451541890091103158578541869021983784203440787746680740621583573978749704890394238460905978976236445049330716171669830346298070833161054220946721457988913856457399981069742471540057005263555407884140718734911783234270162753770012309170227138800651748145844671440856704101435644588580829351530244963515011595300886492466011200534773279389329538249918535437601723072791044856466076541815670603365623343046520545629640407930435327242090774410815736948846688107145091179364434324757818378483350375671580902611469656022165708181050173521015677867384342349163502756401521596025627962333329449065698403679463542530922388820210333483775354783014580662935379300643933484242243170323654776097829472472935573325285315110287494682082903743533040326665894561221412033642549847272009239108563661710874840159872194768886506272217537591067302148036438223145984921858405556568001639017633716736268108149430325715125505569686685853905639035942842442337528478354894807809438873665034118554278107539524698429913083586335022835384520636727112872704298702568502004780869568359976949855790204759538819400865455963271092541312269599631816721332638030429853237073415390711742609056134100290699331550869164663099952954757589387394146427872534849364457922980929279773194363239051240833446225882742610027483996060253851920016095228625385415810456681840446107823645975618936092065295646565888800851732575174655501582206123446194684890779461938468580333314775729862965024851933442625112877153708879263527933432560450440066213729424439043207536700572434929696532791348144307809797520798001855054048457326443931911242497465574792761084115501872487149275631499941479236774344528563921023931283774123000489678786725424304114091561725867974215990943880943138299522935367374692535588505159158250859023691323306989740124707422152547826821066570330837065315112117185820916415596396481533558773469782434489968374336525540547888852983798888625119035781277063033907404784821375024280537390627664467429063210103968370673923094536712866155188973118202900101799243162440197329142891315259906489746581767812863624432241851784944899702345770255153745171356810691016619545662191579808558326948408884956372701429284505609956877360617388729727962884580096226462875808540346594223713091804637260609604871162326273539978006623187827876135943288224163787485475708646790624828857012419612814946617043265724403048669968947970538137171092260084063369648375132136392164674443580360592081730929636846960129902893420157041901178461762517532736293032624092829853470794244378626436032363879569121373257119020391743297638183299447052989386997218672074019896661575034945787044774954502073214707974923932469541204487837449944254447132957191526359393538598166950614644331837334501530724082361705984152734013601124266519859300353952982051347049717769184899892152886937725712860147633536685513717303238066703866258357313255164053483048078198184489933217748750416548823326561678903399253599401256029515840677805939077016775240807268302362936684163482555525591989886329597590394333005160723601467649762224322882473434330525609500129314111437215691065604931039319360088839004003259947380551268767292503341327413819300237178670414180833814506175682433568107676012133800370425134905013964445935047684343723329903057606153860176632180244791725316834005864009157718039105632823481992432050572437543562248014973862053335404969364055546624775075525220169495763588036205707602986524947919044669967998874218188198811002377261237809981435147941822911152574871990522843655263026648114456012800332699643634056305722309487754483807041146826162037576161107162214429817772177895820605041290870832168874534072722773161376916961455384248384028796449816232021224572256562778070279529870132742653057486745833361667217752261431211465814482933470509897983992950542641146402223507198861575377049871854368275136981275561079119458014402360256949016030607473341388483740633409937498713943556297312719812354963194387797257205318027124635553683685346586517093621600566573519214182856369528288597265242655214022995349546834998475018633128009918905423492410077166596533238148832858532877583857980646509507642172847738742067157732569776435156597569788499592541386798726958902568429736992308157033052669862649831613223179166355789377544287253570997126214933728960896777045792103197268434772889930923667962311334084174141342525506719809682460104834383053210368568250151308761533960587720901618614589805098507893612813787764060928457656306894324278109752691542538502799887787803086459169523521839356583163651293459554112380358210682333400602793401534460720262875131608133668742661605210369321851018530446761234920663036698352630936824649203730637884736019094793977752733828573663269526116523723877742816444050601163701320881385571031152188867105465947460428245834355698141739778103761058770293418506664415236605547858403035029084808864210044793009466634840363795392093193771352445017487576294338506660089760220991669965544774489074448058944938378097255326911359375127115230286438515754271111759726233618371380694766136958951801464371578441010163992403853442370968336813308239033140666649107885748434400722504927574846583829896922842151302825268828910725473905578484492785446590169899920235313476971241839819219956570268581039670415580235770707168068046441027466264245420117952523228281459832832041655460051979608947149727338502626497396356481029500718668061450875441059470512237525850207214170698466827272796343554552881523389923954612412124990264049864119821153874152209439147287530926667379262500741362620576473827734100935955304916358750842185503378568557865071931178791094636889059115007995526056980650611087925721237807219864488186481521644904451504974537197929675047514922318486775389253044343277196751732582196221088451189512569787972954570920313706994980767533962070970288642538762440096482898364235773851229282329048496270274072789491853872709620072486505938327926908060516935609385148565172641963812141620130923533013435287346496629019424595309939426526116226965108791116921514502249892413338236497330202465764627480818261153046670664606874031048285645591928711359294823525812585384286227436837432446021154935570839610744411403475334798646131727427045406086524684673064653125548649345657678408488384191999644266860841191413512186891476142572946444278607855472427571377498861331532735716417465272510982003979556424905943684913653231329376859669719757358436427728008048167104836119312794901064025627765782241363926499682401117157480182944727496027024443431576265852397463393758361043977468418634844347730969349967941186429434277276193385458695487800814471406464014894674877534657866657089579776107981034307632439135076880569580487482820705159934745924336258396857952692538808246921405962758455296114220144327963873128366709965842752922296309235418549269837357633437062094139947872144324230753044920294506039490645577329068407691970770048910095632799543252587901281069885050406142495107861792028902574626287477069517204212255500383858396174708364509432711806676068227334216836517368193115467287255401563928464929660032186830073925638687723200570069260724332087983783764886230559959611532744125729112999521375755615218839635522930217460285229378057461949010756360107308051735631351117875047481884997892546220847655051131267024145442981566615354615993452173705827701541890009885029252038155056492987326438884264913838441005538212904423866686860529527308303829406482575663903600777495804600736158488483361339587484836058339442263619961733237181166211383881114301921843153604672237475996630561409056393449646398519447481828627998258958795381841000173081417558205039016389470892922392008584101288922310798216306291181647460654146311130021552195890157117830358018028787073737270988983253802385741406673321814735495283786147594972245096142388291980237014477754891012682544285858626866117672234581212415614642496981972425840713051653887203253312111498631532163951602991296583294049769813105991832889494037604692829824475402722184292646364329542143170957501784349275163976452824059463120613816185616434073290620109773859937514425698967097275327334942262342310230968686760318816098168297033325498346912815109515470871635832519821258706298010882953857068880295423730983566584300848012377049819815838923977085714601083202275038121285861676888401655191090902229667376295378308993561774928016966331010378920557420207504636941858570569674642159474853766722428053566110616663534357077586637488411397216338965817399229989680371720646466849611152989408533899600452221948340508386391151106502050403344997119965151485018179620302263659322415865452882503986404094522277431287621863857751319267036038019623713232928198617992137188973838126618707199668035979321497124747792316704182827598457729304053994838908410896467675923597579572767093585195227447768394297523760139501046723579015690477995529694158138558254600178232715598215387933762804456866279085124150333828973749134821409840684553311529861183171022410369210894726434268570107635812186268870147218667924421786164101190226384594306941052938465568764867014319666206949339407553863674737489985429526091407769999729508821694844512748970990312086019361637265009685294218441915852730020404453868325840134440832682973998214232943913489137432035890314887559005962834180834304453166148586423367194616419454456445060933384246510642397689275000546888154681299309463822422550657162927254626265119984751014018294603175843850794339930264554059392645162410073738994107302192609037301435281470555135540995604832913016616575200670703017440768283448109022801271488275314231368572278896906806597889964909159209952290526974590659726578581121422531398041174326329170912943595691511780642920814357902841608177813305209339632433435219639163603158472816943697001320657303189344091813848111527982211033711502838062149507089997419570460466820227240325716813589191818106825547126614993582892812269585892705751807408740456571816809623802005508950217483023437021729487428939734332170129918700230557195941804654926350199740883227618948246199164727799260691998204351572411721928590903344658109208287731334895825857851143077703532080457702115328473689178399581239612708704679263834727299194982415121281686846456279151216241751918445210260869822145549944183549657634045984636921128987295265451119184745548809143280764638556348551894472307755223672257887620987748959633949528878922243382974103697661777241434045205580079734847432719322424342619522752068573256626600506891220667022729213302491998968579666167199398368232707653812142622874264287205534973111409219198554250887366389599326847811230549904081732080216681476483944305286990702361172605979793746350452633746071548920335670326242131539282301800860733845991297935052979928961795189839178723115978878634136143302756806742304705993410280809384628329320082981776234217116533722878727483604128688629518593231445217475419902039553811340632348094534108755226454142364044077600393097603310990765516151401088340468359617644708813274101857561182441842085253043010337028938226613214365432354202085243922283432170784106202795133670929927669260112445128615321783652223385205098841492414652100629393641481084181021856240124205188961773877045608548417152512221484461870698211265777626224182516583998585801165917474548330622463876506442677271905729161898231007916090091891786263857893142992001150923565776704474644233264023506893300423901518462021458051129494380737342202883820863885322251203838891384312752120110641337479996675799783926467253928214540387403055155548495883291425534517910125323764760823654596222571774267763478058826083933531900085651355104037867403561189088193277492326825506135984520189285506593360390015505949158479085507906827221331393796983967928069778062557503582009976544705228773324563726790186120395752128393877000175634271124359921934066669061248528426677529625690923891593469756784977380308688982269342981206710020518347621531219815461369706097057774031339415883157636333830487569351005130915232386908509891945300870327862715486234075100935169625480390241241836741565969910035922439200553416920305949384135319213225114172713843578997705631069538318776486595185839873565422459606649015335874840887250055716321658399572775621547002888846374983993972580410138541420597591015993712328998456605485188345758033360456816497489179198195945431099449031944288048323362631737350871114444784035654807891695724886861667306367702396160515309049760755395178314875572182463546130572069536245156921543842471608972730475481449040604198653972070802645621743066554369360932152806113841186378806692920455606910175538636774572537869532070303549003525648337758096218974598321879048740526946081704074537404534738992197800741827541631659950422425261704673655792235740199884678165715409657581077248230812375815892686641280799571524110786165674184891705339312324650812349918388769031047438213211943611341950706387128395429143664760765837057890310531368664370830322062327536669347019781885760073239741506494213917542535261070641485314363151120243613236772409825460926121850556746729822030893641489054652760572743686520910615518655619103537623774943696327469221955088796848821831720028153929379737612916203557816704371253748509085684877473816108494127217355132387656206233953534610569484083914164187391714532370863107948514447858363388438553152269304002474919266862030814705190316540208777645607158660104841098084563854839942137841953200569613684809756094799748264129410347942206964247389879066791121806286499696270906952155090129593057914583539681571912977549346574425817630527498344890484804330232589912055005878583883003129808788861934235797483140311184489084385637053673217297449782891103653727762496937781188125406889069092692866247935696319968976367395563677523456152556519535876659304434308887454776025686045093563204836614026572847516344153002085595730359321952306399910439171570787351885759565192898097322981418836305383409264112634710336418234364064346981047394795808068711597032724101380708441608559223648356907910276102251193260028089246973222504890622617007507829371034457017371316292357157320817845525356901882470557397984646794907589916357176707817956778379939837268461485622023643462638971089568122780409974457337710009591782361487669917518927222048434266824323051698129086770073373657248432175324612935942670605477740290482192992058652762137084098084903908998356841736533513680561951466839365540250185134092070898855993377128484925154038632089841908436054380586159327755135798753342100548343706812894972188181895035149240911454232883605742604434859332312382000586585271816120226451727722980885572704062028507236383604822693540510217470024570975256777803752186747336402382702442983425662331329873853441023632993656124136286761461112144335897174504141672731542158795460910575473507062699625517150041450433328336871868525026026033750415214080376522908011574690333555290568465250966105202086393458869907526459608167403590281460790203238077408097604700273510493207052793730132320049915685189834017841934243432835597196871385740309335775075829409744665050370231473965560003885902303986720330839511839575237283972316811097543861271962033580603605016245475166450583369999031843545843050486382754903699902663717425014337163399397030310936234749159539323073294436636008134551569361790558850548727115088474666879646496467136746705841714429063045826584450448113348592135267807419891452987992733177544776824344205659279735254676957426365906442423027809118438421347583620794454419322770255519212294504773604324333925998842156671651544810038320834225671156272664305090299359593957805257885433779276016590678857006653250751944844885937189232624017246145253579650592809809655505969844925810415505960360019805027939963690617215440654437558116958302865237528688814518170372332511789162593897678295337293963029347156334273746777568898007133390515213027533970958650205742607985720009116480250340874332467876685279856978044272138879860372985783424764795651567675688245449998257424687168578757723421551716609763715528612178501963540265201720097720063571395146597931479385676623478799383802182172379602684875546764018140033337478569097402362292995044301707592117519195779520550683424869752614640391375782939442321133882063959014977552428614587521255073954110061768475292923955487851993961252277523592407371049159789843984720469710866813229951410738240328612456495842822328208328574644898605300876894608709796544255437146686146181629842973073399740396941803174871229752647336332457275251480328202886571033743166098087434978931959241063557119862179282582913394177396325379862054406234404294568793529074396743126817137933766536310459975439517988839295856478885486500190901465377897660851819782934273261569767798780941682956633996459036280210150437539048412752406937993985549326327679258117352408384251826455482070728554043354766265751023169811466757120368899122006198099797723363246069735314525808698045664498466623395399295823372561213625860070167580534182436903307460283334743358864229818188170856093359287355624878084223024595990975505048727393707649834587390963857081048076336239638174321351366599321232973133415871411209526040604265055440020383789622141662112592674408531972614189236878323068477037400956907154209372360144290902945920031971265284902168542879778127162774415684952540989465766665234374633472769566373614144689845248058559291522914265799281317365142006758299923814744644233963608543282381232765647287958719087169810280036018800240558133914856332910711143008367819702380124905070321944451959216436304231307985933260982883461400876818687230143507317012194887298197674025141497343622478768100433291970600259390264732037097806149215370635095112441928798170220682497523174788786815797723360497631654298958142689442310113603159695167849313129257050417646102723093452853851492696622508994632301419006195103810248631564280593597227390716384020197393230464576297424544557654826159961116710742392132955092968269730061235252143898110488549916314743477954893375851234718643609639332207429142493236884200943640445894161642807294238924456417722856162033198075094239512525970674220666141168846838965870478348134964167013641535680615131799503996351000947686049052329215587771273805803601154893943745887339843630128013924010690228694210326205890131358810851812817003135503831586746210594239082916563670750004676481370330146579779967266036913746684979197972754872761955667548458155415563147615275702245732761161643040790957275550162952933845100767213877188270917296166593924609578067953253741527215722138209430249819346809899664296531613445903847958677962079223247966798003005923199959324473893808719209340021328785212258469134287074551828305163289678673972942987395122633640807973112427727075194719806667056895638076785226687178067872887099955896849580721060410833052111650244921258253827896198909548047934098147078255066791026128008275516654610133744035544897512612141599328000812636108018979167051260332773578699971808432299968139599623194782259106759225012289112049966002960142951010136411579379207358845580794736195280267452389332872252689814646328371807354464051236757268273292460516928328965428359736463251163503881965671020236904129047283166198428718335407049934121635899857964768138867927626004424200209331691346063615284569413912037584344165642114895540022707346155117761429373245399536242023214424773254310171361098272278202725294046728005249177201548214856011036514364010565777655485902020535184110316425495182813727159135313815660960661857973267135242728904663581221772119256258409815094642054229483435441450779267911372399794320143781877778709781678182657311158163058593340507491758609481364396227868804758786335811153730753683467471570111036935777777158663246466688305825083241038359774929671369102422305631538316244745557139898897874094390590360922118159600104978556136721461004883649052104754817253192284842772821563643960386249968185643189175039664870142395347268051382636889185296094209365801814913344772556614643938053020906348693962859748305595198959377213009427996681651041290791091699249113421993265731822721376974340866830388535687170552612143808925219245483024630311285910970421882596581500080753605160646568979357397246159113103049591668282263013085166459245624902585563932944243601756379616600787459601828692784432400016173135398908182273388604458127448089924413241264036971144099933333589982214891409486784174791967915542388976753293929150408580984982789406822067153350482594216451353509737815731648489451757833968527855036777456740268351873371481191749840457677211978185908856592981308125601262278171660604245445160440186651037842495985617905374463533997051048900047681585459221575363890884244357029138465493653727153141496073484845046233321018591709520605739263007597596193640047268231862022267243324146223122129983737857707184787908900370175389243343017288550497360624266105245282759617441475503023384910504580566612873348123521045382497440540790851420571581161863487430854576423711110052258423663786510155627061153155206990836117216600859787473854126233789923663647178036916813525910577713550487666885109316816984400344958994937868787006725129696200444627528630317083898968728004349761807855826990815820784916989681422229674565196794812748054505234274312180963026382139511112501014791580969678959055981653811361842341783861366619938662996465028323914117154410487959313301282594231132370182555481980509195865094394137031347605494650805189188370659692480980570307955386115431670574970884294450386404389837607726826287864983943733879490114042966752001154800997418695512722772078752131264889790945202920214049979460186220793734295007334348857963580063364905064605115868396940382497249244165492459354704990896460106738806296800655222822527464481169046096076811766055417911810317497364241244531584369820739943510116235747216659854805963473056710226954539144852413451965797825612117121511616254132425192445134323582890300315690639905365440272534318375414343383965083772689622059900996177296313525456133912620068561149505516180461669214333935166024533105668120089657362641454916609263804697424773776523906842211015433892299165710478077793146097946471180668760117893637463278682832478538461214512082638315363031095997426250560538191699449872417953125478690019203645670131377007166286750905158324228327978035657418544720399775367388800073566664786739455223653069082131237726989630632454718124763052526884202902680265127039039302074967573879550490837460744697548846211802126429167091599335160127517103983508252952162295428960688816246806940838779140349722699916496178304796371766203570094930089500955213725266823060668667866249657737947629342304186366061176495241190273455891891292377576442175663833473407802433120163041524122695761195795606165897706828661039777673312622408667415190051527194411690674934818448371481308663282513352366261680682927098162651466861118196356819161596034191240900661564404832418179828278641687684465267465095321849762629332740626432731340902436010555745351779814381620631492011033331157618479962423757297583007271137817276285201329572892133317839571567379175926237938027897038087216663655598875675619282530029735899551077000582342666601517587246968927972806372090562156540057033435051911923622064828950387087642475693373924697382679046761328177565786064812739371923232612728095315562228372526973806728331278810143455656497538218218593742125496054873451456507258768885465597729684509116711063487505551317450300655787079429019744809958773114181784172607437552950997824085825181824035826451750383046095693716363554199040099432649795613014816246197114268609653922818280891028020375033816582924783508487764596821806954389947632660126398532375434550269770900682282132014956638957136458550944403032071451071725348861940591509547373197331142913847516965577311353491691186060777467124414205823538432917419048181182601784484877052472010443763773150078649251108899190849908992078038602110030787783022402486852406341602852556098422696242969425229437921434814158694603517233517193013147046238108812590452116140150653486152973168256450242819624135078373395346022421664479138449715611512466732812282273418531223299771169410876832500505435470209894179349551594976881823501482165088411072970526418488716049985922669375830027555036769769032726687940690710584765883336945836819596654151072558282353807812591371964414301069784941754599127188464650060288572241291736428221571163220708377020586575550301072182439374199532235234077143020909897906672805741974865654174465676967166735363617436551343898612532937600169461896964958044156368923407486366116460246664476571986195991309122550068244087223262501142753042090935682691322981834582529834545495125223542562007293962017319680317444283462954389055536674711940094707919738745081255816182414545015552667481403449509776694828348649934345421624157910387391969886293566131447638397039643459752240827395958523015729749633057496646394367444154318081567579625532365241885961315478022954008446266451287677011412492742838513844138509241705686353912573271385879442622564419355616141376021880356508883315876060635945883455828770916196417424541366285244388697941535355873041522527912979184770730974539787872588956295341942941913086210870388312928309358775803424446924766794818983088865045247851266821131908461714053890756904525557737409467394549488594154074495361207048485228896096872021082439563997721817460065013862721015607988426384132902852772566637581259799093018567747684516413656663635924981764632731962411647826843150453823650175410036102845693983032459867350249082634877560717723480252282782472121741831846611634380319354149695815234502305595915269941696286707146112314300830877495263361097911303342575375417409582589231524104055246308437433921265707173075649764743992090473126074557391266760172941148500725183278810304659337105963314111182722061153877410367464711832283557607861061884609538100744072701050366041799823130936754278972106036582627403535005454451942717773213441127243720315968630254677716687990260046408563301358083148050511684479200010992774618109372181830641756737582388098660065915825116792461809683790260367037466497786587330512929644295520000697628256484842037017573308442261056367575203551996797737809240604538598741097379964404422566297188606587696464898022558459600004558772950452974253843616365990681784445531341192227936043969168826359188171081679727738371729438369852525645164583997424324301109086416752379873784099237733000998168211772528812912227368069939999802221979629360649985699468075367540420305003175030227228082775047263550757701029960878024537319149724410057386063180919840467354592557214983074648345706114499432130799476165936992634562656687950634166974668902376915584733339056874288622168240052623359630303473555949414363994267701302097475054384450927065917335834087487757429921551288088670685701265803918872877845200081394346192862159045379465670853516725558996313425391529530253179104695329489239017529907689704578263774958818315896498238658320585521651083782321409756331170462944138842197775304543528432133534361790194992870805739535916144513892865411011740290402474591966824588991555239917183180805794987581178402952313316198294184067247014730860866029432910942848444012018093617848926508513952224767122884613497047118325607461876874636506981920173984349646196738701901426778124841057588875508590163600605323871254582852581474434017683366388907819886343591729328818462829178930336302966871463082449068739962004640241692565421923325233010885989663194876488747887291630333264509174120947103975901463179832790793149929899245125151491646109567595571061102191121668818187607832615782191018940029365092055522601307105079811743030054521345462658221561607365887225851734035537259130213632157547245006495856070742665114593395620397575680433193676294268891248371299626840479580318658784297671135382315243409589525547622829893536870915055220312317669668807414121337112357764742799448021526901298765192585790039205347353742337747773058952892005119245829856056899898043763460879911815821254338608902988335132717948423806776678899917981558329309208923173735312863495007486877455223526598185787484523177007907331550830550575115451734678106644603407235790971659370719149280402321805639866575028251751939246105628578225545168230963907062458083876180039506777148973089496135509796521981220510628290593628197032044143231454698903953557293291428799968489193754000347237020853720676997095748831510738163735360300314094020124003519771631230207421885407325492630555516603723436189065465286727778767922673841049938467559066576282147606322508540886604488867277441564249491834654009200721524119582772602523639934246250278467369642300025858419125597128879372771659739730361987293502814143934088452190023932071207199200833346267904998098088514782132796569809036217090233602306536456918601519598291161065319213013611738967964860966198551474819330610196993382027710652143635624377820942886474074404697349383768111005622071108689252875832710070738856027757864201088365527942425409663632041301410324532818557135539347963699714850184167632063825303251386607872703504147578835896129713540932933473356748657247715588853835055738375344627680187656929381701535810359330812344897629338006482797485529327706808510760844735899806265781860600016399824356980562451607303137670092556669633326264116397420419120779860785737761381181562998233533671355423792183832985827207940610199250320420109926485231894476117779850354601241565328124443085333120135760219459718548613465425339784062183576594894588769067934904543252361163825267369811098235214526879944129663536758137854587751297370276561626176694292717191741993019936956804451472214062362036516935615236679254642120246105637621806003181600896827445657975636972659258180033349719915452588572092741427756498002230347109109418624038266012687979334258093934843499036500479578644577429855467311284399133253160226045383268661426683961378381092242611233697063667054402222499654912835148568574761707019104047658497157939608138530981066080277887557350246096474602682007424052551701117499495851126972006101095914103886922255723105906816969418848209138109411093807035616231258571273777675493853239147184213300661835071275633244282353373213472799494802949163023715987463445473920466556869846266111521465951928073767554133606378499051081988127536385591734219207688544999178085142414564218146905444188438101984774119886849932939074332088860684882429267186895853837378502136587919891553157175904012032621651076859076087425056673805403770609190463654968479504038863520873251735319023862803389851632664254277887512421688774668657085709803551374955216252601069816305957986738446760932995512529001390610899497827391922818000664103475326083072672801870001544504457568265408363700626235950343183540512696527652761216827214828783602610655993936231175647774195154053482423277733433950994371834114674894578714070506255102995017617804009568781382195489077415690384718485330666986551979096522424664023473800435825758703831085441886772422459129451327409060238791647688474936046376837065593536329860875572878235331296284128283106653612220755469384115443089431853917926310952333154570335420257870881422255298202703912515623132311466188302183424591892439963867469276389715975698121832600070267704062545056233067828490268960799177843778314251631326839723854440273646059532449167685860835595646015410797699347667668543112382212416371369879441253367033603507831326629096858588103462371238692254173411666929472203009961785429947126632653870585770084204302266191012913627500162917422171402642524940527725627795107529575339243860743289608654755061632967638194221386095620684810435488751803904363542191050755422406458340130010167302113530321007390333267254568174424836453818914256742715311175270829475451063879538245002030846127319944558261146834105947969936055380856714610448241262120941869877122248444811342027864614739545318554832214032584389217211880812620346876399010263660324575917759536426721332271831812397077277908960132538789312513602388317765481067124138670101411939821684121549573431303529050342166711611692475947183640657654424413825474275483348002055514059953432512116449303692206497322026278786453497177948338259836499731436399538840206990354576901554681972180242784348336394042964117624791188365604032458007129739027541653211340163681396184454951440466245736906946842873568770287567138896555254816166715465442322714059038289621557140501076260468143082570116913414907796924470108302678577943365711412979054701218439995533489807944884887621319665231971278963519133583908999796897593785977008171647913971056807420969295476610916932961830666104891581921049982384302480476759697509487561159032345520045864187725539849841970973102612389089405585454432273911247950819146938082750017837689348824534773187345964726061805529865105303126846162581976878847745110820808644003701756511225050362478912439775141897506087426051597323027247497510302784920620994441989716105497840697705425195583196925446898654234449692166993689942377929773331271911903622926419057348790409018438351644949918207714025552453179053421847606189882858126725385601545005666401643174422415512629362074491954777285508858633214565615707792883978683211645414456654402999623064060707596633801619258361017282544924384347653520579204551415610484520425696409504723492489700479080847437056525142292822997557285769052615371064879904623279663535318035977993731640607146696823736596729474243179021777354365448174199373629655550653505525566931879157279817143402708227334807869706618229945763238613516027081800107218614729505582646629149762686750994232239044766472702176345075250650562665988574529029593577914310512630026160327187698727917724746097413706297929520938103332450194551383675035734314201938099737902823810740592228369521770776715545696315427282663054931704201470103375572306748126777953689728178760955498879984349140353729583014713192093720233591075733370971572906612569543898476149055315851407707033207483065800081843706921179208673520748549242089266434090400525494669236931439520884619621044150931111870350965092979645649873230587498659600641337676882853215834885792949525183193740001942239315846610712408606290326763606923050565764122978303737995714138038793316857730080477433308517204101797069816857544331236483731062223534907937090498702094689318814299346844643872332117238567751977287347803660350005926945360225456306920079075474839329287759450470950618718945333179159080605293799967356429077406169884618218687533366103384569397390780191599906081703799450911460992158120580374470521237447347038006134023286405187288151134505456577442698391015305001900451184005477063483873212038408256520817727754164117951880959786451431661846557403740640395147202623447350295477835894655226684646028731033787847811078324629978783967114711533570423485479260896160975420164486085936971956880718506596324410702362685229379523544692330734877143508745638784189740379172226134860779564270332798892788266670327492321374425758850659416438610837323560182581639960801392868534391774036974817202734878424921215686855327240465629423411728202067116529452395981231646958145264051555508824612960592331604747984176590672481140909916895725811276140105480396083703604990024266776197971822597589926146950337060561399638268798462759785854298345566329728069777054473968820266036317675143641265965329003555079901027973963811127769966919736108885984924112429353129696202611259982252462996121392455201679633833199913545622707594255787960741428114810382813481950441052004660009760341387431973622404653126628084475143857666285543841422329904138129486048283274390142217259620662342765502716317254182079292937529389853134020952229060628385352764935745678306045774271589462353705450675216079073139881088673856414744278353022805887467224682675745122901916207626659731878408027654409360985901389191857626477688174016677032610789488663874701356942134881746748382255888887204444844390118198295080740539726679617683734768136575545574749084448747558346832536630751776821351529368809014289631836767523180359732609220115468077448209099941418991518094685721414244824303547158185276438383560536523854442114484250556213928508057249658574385766017595072848201700937074268464664412901040246771197695328779565080327492770863020685246441999545844804962415505103866263669308691270142318221048306405177255807247604912338444539313217070634055250433905237546536829229441754815847324031971939532840536654184555280347691254053418066191123540762889193146519395507526278495043055038449956046372544924409026008140525600099208858242858564705166858562761714753143207539342681061653461498294213631480301849235746048308291382650214968979445093239913374726799529637622194440037751747653449212427003364519343511892149543371121240055110712407120544138714417549879181410846636756631975873345430903570963584330170927134038087213848907966927957673798646873917840987875862577845505680225988856325185530491744469035076148592310338759727099864825988113302316431772529875620373864492359380322696980608889372913302517030538046736471539579687620661711396003410556461106001493115512643232957939563785938987549577140253428819376151255834671097051476612179447240111417232574615497789422412074124121322901102646093235629532751104917363927667426011833799827057002389996906483009709444126879063954970856328049546421936119925459018078542830946579722009269537166267377477077438650090168627343679986418971534265157632784772407744478338643574146598372335894667115668980830340049569569387610150285120903395427435474986002835022357323998241684138333220434861784796483791802511284426607973607632069715752609305734237113204078040406266420538022893173721263660634073146139765028929578476845587441953653313647122299488993218031770821301685339613754748368270545545468428051635197235237688369858351880771586590112323143856447191082457329245966676937039824806768899240787163942847033781344016471370934699567631914524763893307701044729695340499084154949465761519405316971977786761852093202919746852541692108116691057613289346931485848208915159804407236423848985622623167815528725583433088135167742028873057808031938131711889286555644897100623718999405053343115647212057909116696746974739245492001963759795007979379118649267013500260088026191950236367755019609942996693932320176372787613267225942188150100450592873147275024862824588966056459417763540346466483104069022242368250989904847351705223494738979648302678319033839725183053301703620432398854175476557281668339657447888169643703736142195979534445935215983506378421464468670015807777410340611553489434074938170855858121135160292369316837753819914871088837087283379657915852258501140943102817683045402586096103597052030190943677563268399130955197649548799173505077183505439858509947848650181436126057370928802921698465917311626373913190231718834549147649428291094498427829664799261327495186680070194348477931013037654856149869287693707505391263055148374826659594325756212738908551916614714017041704866923792262185795209167990992365736929958268764014401529388270551669481997328707410042690178715358154493931800758188020717045429615127403551225166751201506471610363325033108847959588204058040746272553821798332436052227665365420187899197312584200248992658511571361182305808585686343678281772978460822702614252317663833932615951421670299882308481933888942062086773789467135948810315726230783186181655884515701835485378310834560294319304173263713933572826115729536785475252659768188073589468187536457394429680449742802150442287511569705389402177125375684439134588532618775871096217695206596560383855580950394700950263665759814636069429665441204216316589529538198343354905164662858525902689419236967660212100502810185637771349621478775457164270310606822625783396661056308862539043080191768935450660027818072729871127305885008591180082251837556076509762629854259002316476400395783442609544477245469246575628385193347246170141447581969632903796705813145366838550679317557557915480768881018659635906853677277044294364284861865318015008529536663138620283528093602840952809188502709788722148590436374636720123701561569446175475697567417494333898842669520210290431758316317906456333618366417422791425287100635171684898345545400609699008217198272797726820969733657199944024486718244905524721876815519048535310503197722867248168902529970762715518835839776822170428900220777052235311182234920747380137068635467032706797191970110797032708301226612200017490465603594328293112878502420860489108531120638515540557666536841775837670245373304990316460851450018268175154844911852804098679802569866374931478583341711617548947508642299342028474597854031577830803908994304215212960037044423461933238751698787463690677180651864170803120769812533755224681063802347352243310227293860949335732076014303948611350334986791762119548108678077257742661356400301398840912789741655528570806862355929875724192908038406639533538297466490878219371638813199632065885523526527718068146080241236526247496145009739204148193812387840992128526501650260592931436328113259942437495912392138193029659935289899993876195914504240253345196426365827799429832588950978479659862729814176279582971481573050801219111753114250678459888903498330105911669828308058529939666928937061333111898591279943320225572807646085309964884380891835223548814047722604001802942641576098437103312230615102440436719714802710410623840011297634538332442127568485294308987086599468675461542540688217951399901272770140176150692830247138246562842296596641247255211275462389682897679953246231714815565867810189970675725512313778926274272874270810223267786701598177773424485882527886217668367472380751433968222719832784896351757001718748223690939357501404295656479229459507972018271138612823733083409372918250381253613755614883830293245913336373828720360577678940497571491622231480979622790487015793231881728818651604122563165596114787416883635199425245085036701770868045947427662362322041561777418071784076732451975319690625204925082785773747687020699798840063664164779507724279674501259218441242288370202076957337137425870099036931278455969391793216566912961230396708065838997090405439880470460046879021358358824124135063063750703521345311749101565591840277655047323208371590373469376707127203886222066402490098123167019121581966723296882123324967216991702568691964587254871827600466318262768263437103780118537130516596106955574582458759306826755371339725232288889944670515705375894478203682022904672218906612276130684321497760280732601374690883343763580834322683974150318415628462455243327840699825893798693458397189352339469972339061945301347787515546487596674796717240447743878988161343218937902479876534075268968649312277240399085412922913138827916029229525864772083491187778478614916801700123101643955385358581488669130754117951195269820578643960550157272809781441807949435891824834226542758535073719116220093175554361008192837630369045492131486487624246314519174986849060769006227616729294366332311867019271570940446071906742618619216652961873208835401182779465655186150199575149509786503974208045935446188916580751180087769006954651481307188907708938449549959817251228809256265342511130515942678817542665343344490649046714600417020930257771001265851056078726181690304282211326761911633843079907458074435285342876678201867565306516617210682171947470716189751069216550072255154951212859724290913239738898580837378662299081278624709694570496187438760797944040227750984924451116331479583705288322644044703696396996634262087118226680574967075862410598612671033398681091281042463136353559775510288073688749590262720073292896803363782246361886474181726509237027081069560183154771025363408560486016814385292939476479140572100199113702286224944937833494835857305042349074613039617187113651897384103275965619945163594282000277670019246123877293176220067273563231774283923654274652580570797119736116701835667364345569643526919670952365214789810581636882809777455219539188755273013977193758975887445231667974834151612103425971231232370769134020574141539088959690834063881463034588602054561539711113657322057184728334025023608609438552506545112169094797955818340900914933759254061633791516103700156488737869397987148509947116150656372394842933417452922530028180872357642489548863769991396516753474513419142413358051080781891794788050266140221827800712259253527497125969585943537396844502017268234907268281712800310009069682486818212853932252647806730401526835670422342278819070723211442798153723098659530691213650950216044339093753536676293974306977310225260264812602799911651785948298095392569168726278564308554298442762578093459895314858505289112381103938268595326272223819166689478780666361800446076075982765270331023585261370736185002334989098570459921708785824187189240993960830762047683618068387573649216910301938463985634292113613784513775040114097080926285485421186823423037710988114691697929846324106508671916332281268149778722345568179864546807940759688805711794579823451597123028169553828907023481740584175401515073935102954629453262681193809436721071761966489318171872731698183793346705920431101843223910459697179711918992551997063031812019599675903255682661123675646475799378936547144469950886065439070893965764079605332252028491830418623110245731909394843458023037923212260660540324461059066545529844472527991617147053173120512068502277317254511956474559945847842006453762838681183933149534872597903148859039675839961762252133935127680868995698207665733835466175507276647622974358870999796868790730112197990719040327871932040027863626201756928963914329465419968373772552983788176546100460804920235050253312376118833885845008749070385192643863651028821972768688182466747593031127550188844782719746337919141716116589869726227842754617311717330826852382694215973842276507244676383647810694913427853817905770063086323691809799835133977122094504214459022528276427497536735471912421607598229537535593297720740688013129187837183744407300740490456588819418548575498079757016169210249240184706455866311607635701344554687046809169717561277837986250000609199022010663731140764460657373041431803534824955130997392173710304121709965457567109626568961081169730292155316974069192373468960490471191563696387169194521830249009772970898856750567076731632546659966031586400540439691103089080828939673734902160222981326416443769513075630916367268614022626462720127139298353620061025602446039036555671903896882105100660278576184214633483866576053170844222946933703453671997054873816135096938950354089124407871552926539191638841589240031962160000305928775660430141091443712286965536356311535436891821564615419488542012640271634729066608077862690158961948287229166361829503572129545941324384096907566995461609631116592865044176551091515539285647052011241581110156557015983362673164284635451479339324631338723622499303976733195179950174555922946860903454907852033263984748962380211916926542454411415226408663542888038164949781765773256564649818769476435934620155336755085479939208075756190695479365360900604508342153356166754010423456461821425864314505451177710921849104854593678211931828163102110612582072574406440393178104708149999981776025569418633949872330398980792644464279021107037463361483294868529947838669111705730015910337926277714625356677783527095006050252265326359266419372630284535747802385643316167655037265626704627997951860495523325465003664957695955799126199544889002045486578236360410343037728405699753083080222791459400607256351627064491496593782690964233255468137822609702612132421503072648588488898343202383019126261990148769539967161043278905716815480717996473117853310607622260506815505200475781046293124238956628091836978839693739538264484566823115472392166757610505732752005898100823229963576407890471141096113837331468041113976321131097573547961655989659609302257507432954238488713659445941936647378910426348741211285482748336697568743467377652678422909278105633612033459544253151925092805750360858788696483955992238800762899174973717203180599763209066224518943054648804605125509818303117676281893478273487902829500606034090022809042241604464617727649646203117216047176806853760745549173268357433444974010244585125055391191765255837109693054090356669369896304999492381995825555965459520136715295624900847251206498804563425468030227982903862446771202877513171145054025941648030253850750211467122161802896718411068780540847762919788812287826919563355320993864068409757895269127997252170784639041199136693193212721572778171241273086840423653576087995752496404118155437433652453586171081506093851777929489139524301652926170277231369912444165165761180278481956467598445957263264322555334779136991572346883540170134508311111877874102375217257224529407909633310901734510127990149790982854262735668166914240307965474973626000425066593726180472100154408490216515385890196964829971357817344018381534838016708162206565046979044073192383735953232466713658838622685783847857831938163721687958524210913898020572999682351810108556432039534444972957122608242247734707680012325180068449713060419795839729758950617323469331846829610418637219141982088919288568282880422948561253823079256880233468445008190803898591426561204432853616313027493727705735060609363806214279978311687627451604457677333011518290861756311839599646814885197075816081907422855693267679762811196645690364491741207206104553240861195285932675858566076826473603503184640206269578639186235917466572654246449921927507018855220291752374928671123210921690376164395418681745546432967200567606765310754001311081517612103080214298800601680395652786292347895985351449291673131307670832215135805637905034383603099324925899398130796500300766492182448785396059702102010864007003487543316557906802737286083336236815673899070382640123487886780208486169636199235362336629074500566271249180935176239819224266378593441855373607827971335175685282774623798052247987679723093964450134747169681458143988585197398081251206985436413821882495030384543669289552680371790314781814699456279085976830680662023516926419503677112249694810803615138681414846539952861986862285779041119636380383338655733999000381632766874299541497411965967106689879408835833077293354903079566473379046605771165097310155940640519464318983268338812661690626800055157952357510955976153284900776527990622524825856588625788056452634758491499706590337007258307535134111231181802203229863769762736140570555732296287097062029155557396603762214760834957450513140088540796133101066175387416443990325179419892831080175572914823202901887931418306634151730436437808963128192713830182189680148575345561509811909259100566425011957603982769222314169820610340185152342366949948104410763895821559752448392279550556577712106610684650168675878613300487889906974880698637796413024854904886985058030652256312800745569041341581939627763325530367393854605773318132333486144726798796368100320168610187586672908584425888855777870128851273062861624816979489444560871191604481911329568287699268842574908861927444751536926923190230067777760540723462910712783191025048468412280278780901513570062380874964679325736041603951672931997071089010428184033266130154545606443769337670693517348690510740411719011461692702798556842992453913753122611212860446134580414015075382051864606698499608778019052293098101452711627651780857562252731649088472799656529125356333709132523065148783564579817200352018770252497507245517434256257063647425466006351005927545457502803076641875956090899765699501464056287874589163405655551648267225506637908458308423628093866404146596867067217359393829781184320839375936918245479880392493860734240217675683261600159012148752514529786298233659295304610249118702357758641190192907009429818797723447518143932745854871092872311616326953104425453741227554251947578462225723465212148273161583836824032557546700887169407269623426923881062481873991562304223424138820586041326141204992698524126081674385732402708822315136564166130198715966034746779470346620446067552718422165956865423031882590238095778542708980021434664393722510715548434972452542113580247978870618997001092533175725319406034800598793286027942883367433516219703116204243025251718705674010183435605674330029318601442763527762643786042804406902489425860446341373652261436191536846794939627496900830514527667489606767000799813648521831325195252074903828588287272375329166429400574712514694114795783545961179167772120939769315335266727567448820695646558607254486045688607778425555142076213624464101386364549085067022749574704216066253364609134817623961238595706772169874921748123697023351986519612800543951827190511845508928588192443909729293919832941352222350245243288793235381481682357879859101830107842059515612129595066814954757787659625969035621125210477878599433652263631080150904147825371072073721609887534571354159118901950650984511638264355689767497282663113868442675224985848500488034362973048030524078256975659911255149878582038178793167439223332949223554663774883208412946422205621556179424271054248755545889752888339531343358317784015048702036284273727598881853675946140601567991619650547752789110360180399286042735685056742167501882731159940573542078562886294532407655130037230165830003095599377010567014711152971136419346861042150701077796811514212925212291325116215927755300674375090903564383487321078721685066805117543185673004885196173291861366997510094815191886567962100478714767706462959496129569970841084193897621863068775670015315722175884549405825077113936453089070310085080378842790185044799253151338818199418168933503626455111622320869656574317175100590078597630314493185432400383008085930955518854999449937246549598064849039336028378581235523079057043755945233887017103626272070183350708650715299388310903937008572066296019446193311892187736355450592040044153753984374769923131653628727235450359636853383245737391548239650953343476342662990103999958879512571998939709531444120321224855894713480454128629949167662898039602313759965727128645435142940489621154258470718461532229892435933176735715729965746934461478538244717263510790713886808102443641198154093926105701299256689060882518832887509589728496611106224528135022718816022589501658709599925517250038642352859473783163139104887298324759295740535190464420378759293634602803329435507951565407435773510912178140314499213746794097893683985518902667415195199628440491752169811741186342345008294796267061175245351023914977542561674190655522694157898902516758862522022389883327862993806862080464030443237829891955904960129522143722361749725000197877531302745261453560515032782144787164015338895754575237301311583629956133064660634095738728950918855469356447293067463889169884263051942089187365006833158255712514564725305637826327898959623259542916628620256967356783834076037931833010983842323236654058294111450819892732908337141245547239346476491108051145768911457972122769647556970089620413865586337704817021973895558346702001232770229608354533911497544764992457944870465992962180186783162236154535319097692776267656880209306187366880586510413745133308181571737993424029123053450007188621383356275724938026116738024596887119904982465004689465264794674503131209110768859693019628971188054585578159707855115832516434971852908771998503374652243894585991144825524588669653534390417763061054877462467028179520229691542348831974513683455167957537655154191181134623674611895882431858779977528702446066934425466487034151149271948007134005744169959717713631877359066404919224807578799009105965677559876631240758831925262530343903325878959527985875627592698085447250734283289316288581101858439137347774803950801873086856324308828317333084541775460854482831500794835218349648460457712367396302959126023578532325639464852467034502130971222844685632711473637612521884198380459292604001043599361256774504565705383295725729759935713390391946910311436791363805541078193308430696418007979878913863896551140705896140443403932140686442491227341398507829750250082781697236455842417353161211448020450094516700972050802763025106465501996269251666492243630905360306136940893382472203435264732487024154970948387254904566714547484010868639322008985724453584771204023722260141901032135516825447847890188154321246471654859763988605032171662553266780706744542687809807318904177767323149635025808322048513497672498042053480859180560120864334129287856995156883794787657044673253574976066606312101565465624987401340135609812598453539610563598467849334748344178983806590334448387192007346855681873190021377540738151855599532628060293334841008168352745586794306039620513272502285681383601834542955435027284252445600924743786014960200312304845285844660396879901108581597785664794579267041417597272745270208807549894581588214466838896023681734732794652464833075411484906736670351240006223222084421858821748897358643415888269567072937475619907083259056787796772110103903102224199454802060955802746269576378837871623566367325171348040531399026081117726010226299839019587068686542652872998283984544112100986414259402008412643876881485434988541337844133973602609883869409974487506303690852102177222941109268462992048467985378701420561040766648002798948997526542501666387718668042661335536584534356470344977884653050797027865784933721554733685307551727071279296244587659943344824244851491122233651511712036455717384615133852044415916846687807017500906981099913751578587864677324544945641699138849320176304263068753685207030285687644297815589763058726220661954187679753561525147768350363667767467189201202065299458640386471288345099650110559174267326160474646703131354323576751722324003628125605637985598748664733876925552715068416600252738136024421924811449255280859572677372184704075815948363159639679196743691654066732403936391723207581780435554894307744880970367710576736080393202577889240478268710221220543007332871693048923716724084321954841063652139060778742627828117337710361725531236082118238583043732933009815051769980191595920121910578417231188611136554013747110910158422347947787836680694911006065351742787913985140497730009840091992843593381688746829460283321795019779048049642189189446093407908837536417898421745546747663833013303653077190423599755010705454974713088111371904127726890110718267448657330196657001707254664172849181812516510101736588446359248223371060084411465248572660651530311521072907940018223897591049552369200048221774134191755132391740935047324991442312061768061119300240573745653878281724223429572922701105366557641994534528894791703839030052132925173548060979760120025295164289104316578294658170225583345080178561516645906435754879331035472919586717037276908493126749750955170009013032600205994841707999288731306083261476646874281806595109689298595103895322028064256801269837083154968390153191813746065858441902467777175964118948204918086825126913886176598721807981763872332853280742592644900809349393654726958318412979650823539584699629090060190497208037815868791937630628029883214084572710656770229440441650853063713234287897116864927261649486251761233322270243530950310873825651815416691705541165205958679501662907446921282926548112835375252622141653874914842899480521048297420121218782283177371673799556967901643933218504102881650309918380032589570918942330613260581858174000711832683561180397474870209923357087846373930777097556981974042022373178627922524970260571312769840710464291997033901926510547480101377492070043023234182704466033818037287917527942603878573935245080825325894800833312232377485939750671594561612152728379624393464556161827894693768242926894266822025977848985202441379423928352317401528052726387233309904217782220720373800480604707935029298360760470788520523142525732227851897499773609004551525778731618581612257212099924467536698898725797080795295378480822119016611241585680599222740208803482351846503084455304705388772821598946477213770850938000341913443265312089666657691214646863909696580475202582228041767838288359609380976055064339365912433677854906459882098028069757772485769083989739039622321423544092017690471972951625426831890739574053781752158740726325046731242378910064128061856841534696487230174344652827809909126591341806093094311204087469221642678914549212291275137671019682641386352159612884592971343922682503200904493171933204378740236152340194303195832792513838955243650942414907033846711936030226249151003895674406481884856702823037194849579240111282402633540929866087130918575921663643967068565771940454067370383706637763835400823023234253272716838521254407868510430710089484239475531077259869503748657165602647117272537793595064779295045155086310243425784213992963774404879841794714649979985266556697736282534402881578604304409203235321793529937543857371363109911481895633602261327305435311747545933860233873172996366586101123508975720212745209018599604663263914071561593305045122111576551852653338453342008894198657656186487128780461033385730137509373907151537312746976287124362558695941520454859641802675045389673458221434107126201963955564510036885921724727894787151395396874705935261331955927347851780975836274794024525272988008639297501546843104358764533640318877434524902327024661981453806427253967752157561354009943075080261405208459091607243523315259316688229452136212935934008928311031411188756692563142121367144651860993621102785632217881266372831717436586514187120733909203634599750201557069359886473026674511240837450629293571931107101597438553044166308022876068398114428742786749174392218110501012586107893810705182068048649512884171771510097886894936181870724569274779587144222771292003773314194873831426900925067132591392277136803117081897899624713315246109062124674035196306154799142492463910259399294300767592512118123079724212568235847680024615732639921634783517407943481148826867841570676896722578941551787464615060778285143573491062305804760362540334317546645812501610543204259893321894902945694850816601092135769839741107521260460949072784457012949126993580235628196921488413679700045326300873874843231046446742613952646563015910808923219931404615279367691398900974426002681768942819994115055667902948565442794565954233444257247846682577383430878943492407158391345029982512103903572731243240518503388357991174226818543069469845103381672195163674574113269081199569928045957491628932082077057480034483743405760766018609489380236282954807215494867748853382595056900152846135884710955473117434127922358918446678295453198290741759761500128618643033788742748170758488531543165706109168897400085917794075994059387459877839108134883575126505110463253965781618313901695878101243570280794548571402878545651800291386837034163875637794208008889283529346755741032344735845863676155530822183636316620334892938552564676065398279946414819465875735619840584230630434526090773563777882064453170114368800527623787250059941189099527652455540039770300417507653379875771980788694755109812088107335584719064309477849273843080842651373922017139782566486848966380539184856244859685314142301116875508533644660176233962623710486735736981886564735648003325615336693407431470108018522145834474301777758826558644770721766801153714131081733685512363543010186168775415431364603063896397531225595483810832951459600464199497384727758405285698722136772197180744161007287574209667217758577126906744899689625765318837358901948974121791860478282065235902100743537421081613295802544233851359887757956560787433232382022302124295354169527107613873604342795487382809781911987907655469696036405745493180116505943195089074616011945970586874032374135109569711315098872678984716109015111507064837122574015565634783860595608604044639654807032047254131694567457041375627581488566729944464437041904023101431029790321045921709990685725849513296153890196272690114911481819503784902350309355477187977400909145188114986863332467823607735772563287005674402897975012230937164218725414511196117446668787159802393838350452912851282096821876953476429786421641790792632037036181515641494888816233150132616577289138996216305193509424232861040834168769632142041741598438384628583372752127850256003686992941301544701814415082994122203153921488304488748142195586156929454476654280210161061207656928503153674038148689149543708483056659212477294373505123325916353594704292118482050108226406704274769353118560604282794573019550354376132250663272533892984446975158181780105017795437695807138397781586057057636291799317239814555630550474296976286515241079069334212878780836650103055815439670357779306896088558524492879998151570740905902535233290647978397080532819989338791831723641007165281434146129291589824090028368660522358820052783702781514335084382522030384748001154234796268749992882910254886686680319395461063632979902516881456956297106480923134423325456169661743919533062679548689976448431678952372842469490126141927395015448858656444912039149583218867819446601909802887251149282267281266464745741995403713760131389888467830468524383153093446175343439197199970122930082159428590400144283915727917999446907686509427167781047854246001548792390423055590052584518308050506476594265290998768038317331406269972462105104923199950175265745902849514206466732365210588200438169280682395440146198764040363481828582546432475400767728591273140821387434718553818064223643085666730659952321582063024872428946124311578527229123450296137942824061327789693336521650128191480163215238280058459476808776499128706239178315424659250518689517790915780755329791891089362236548352100431699359667524080652671789190904953631223491909843771002509339867138434042011669915433306036924350062907748612740299622256326498619756129566971423153863626522356298316882915159151301778637833352646209567822314225891659079404619371291135132545766500823912528738785530424519700050377262969925558168207122026833033992077511424472652319032140611896099659802950829445671452649841107102367570048006756827778240114307504355556204205038988855052033812569621263416473421644756799874656304992866924520427457335812487133785970036131137636754882788924342246968259584090386996264562163776529103690254564784760067594574376924904963411464807051905436623840780700971686205736948376378915844800417738988210074617871758583407523037436021146273183049609365497988129477820213226559143193047943609926242330025748159052590436769559489318952596436687374789774566925142116070665343908299488639540443133200126591614372943415932182499641998780129377204954020333018577987923596153384618575512609351280388670708905178574397128423541772892640014637471400038475963956202874394630166024664059373550181990811051844817508762333590490495900667438958870051416910368085073936429294825057982216788149297765697784532366507134783650392543163615517624060325121126711341436899786356715075145036350570947822885108328450674036708396877007466391875509086548579385994540542869117240516136798470484089814668092343369147405157772974924394639495269659862035544446899042968052155855010555145771934387769863772043350252553450459146269328967483800744484431641925533658774927770137059750695207625386537604424725597375586111499105795668614848015377272171305974612101719609324770464363951147131076790560949644090185188588392746229387759020674417656480382043215108925732400052384479331239049820879943606946919591986028336331885426102100560322929314506019146970943632890953104950016080584090332671040048325784729613392668156461795384821020045183249617176300004865020187437835122618214209956879867970286635319415412869784647086183306865377368445245601718571666644012022207724363599492509042680685775129368266700817956744996755158751097881750778904198312157213222162793205922811336622370217365903110093637522416005153654876365668729034713761702741638249832010864081069549569788852684734369296433481990917511500673060705053109052963413423532044811831560663528320062304032367951900927134189456701195707565849463815488116394416056860404055060076895492157417953578791895951048562446249574610296642293163181612050422167743649134876893272135259524575757394644056264182840847015751204263463346854314935712879558637142679855884588558887321720926643531610290263471903840783049126585846270899257753435504934662918454161325143024514050897759206702761123391362186238996389220279383611897850003274748877207851128511920688153942699442188526894839170618775665141812392169603889064200120158040930699500423592477954363187034299142693690200210017142577981137045323071055477733149456243801672347949885958795448881757752997878929098428052935268627749941001923928403180458369334379023472713041609288315561850767138891973370681576099232370707189636580732018507930776673142871369157014344456939607068404625500801587398545630973895787150098972618885137036505340074740849977826853557227319430306707238521428569474012658724173113049946125837086010660365023200037063365328308118657429352123651488007671710912722477347619833821201050658088822725264142353234886084321871979716025530444931668657350542070490478464025839994999998290921097052604724204788295649283612643978020989816414830055297054531762952205051477732186539757545513359085707052112819276485577955987765989748554718376947970577469843810526912133053581277107917329006795821127244256788922380689599263944991793774384257019092909717317831421735686881060865443479996938093293207511458007788031999824171090922367959289197951077398196938639741007942124830879729935873340128638818424632589687303423577029646362996021631697603254859844574570051622559619178065242372893151658855032397852333009684768250701192408422698825659511002854234359483261956157655757725023281045528040489635171993431444793647735264133229038082896202588541558672691955356282952358394891228593192277078660639240356070988413721913885711404880446077921149171878762115224461563241458191122136783594664325105216621753050924364507552535384115927791641289328885976341535472019116713543415464353049727303242560830113243118921074612677106914177902647619126780238532157239280103939749510212062465640450435288409500007677170731564605537294969758555814626619690942771686885373346308697679623866224942808671877267225997627693244454373344347648959678209520480841740152268997601821930052787960924118385309933710205516835076400219880941561027840512355893659615998323394778862532978566796686759980463991350763032227209089134844375367510915819205198365281788488972076442485972032778607074608695817849611379734747440391098412774432278592188723696689757144266313472670318811556555969693847388092358518119404045775946719956677265123837386339413633539741654970638239075445310200539633758872570056748830040019582152198833928382887729205168018019707912984088724514630361229206172852911597585299607206988113302743759097434899225974942163772892019685643317204155050697328790069420436102299558905730417108063092797486398374846896022569743414302950524851116478559166501491350980105125133380602463638844139044602901422132287459345151547259157553117118690451267139624625844858118880372061649682454561556308098250165253691650425932267776172461667562431497869739309022930421089470397575183603428859683294062625800107562338134576802956635733641979657749446208660669000470461019163701893989960538421866390317816602410502262104512455112283663168871773117702899648172987582894851155616211749737224810224014540054675348017402958495034842257356841179749561677879240654408956864558520955466760901477155608059092421657139050900593706034701900889721313849574061029980864313338817546730286378404014650593107710061973875183187058867502928962748064583688599296024077004502563120534958436668279208285353693895136992314057503257346516552044646992366022300455377745383091633806401826948513390721683807708581629280194598845210947010098135739159934072281332402047731368127688330608956711205680287309424759938301690529365131977548099469699431261660872654274728256779480089312544005733099304843148398403534271188046506388766884056732222009921210810674498560342539538999771236892737165129910983297618493390249245322401088032186569257409428900567361774049539204831434113672740642527451295591229907445653997628969298066567380777646244566031719084327995334355790806124918985266667234619002125871572649595024882579777535640630547160686703596603154311634446121832414274665400558382760965023455367822119593119203899123286325796306148450361857218286172697902201445485620563283968196523965881851375016624703193572950071658174639056031383136592937076503180783142829276628543352744560629086488987864030152092931482632755185701144187663078376017023572495561941889646950713893251323106625553050442524930073700935663105749567253773961138725273430182566422148243343323211982228550914829922054729932127536305236226004423742946328778142304556694257646279299878177269090682923103127698073478361052453649236379648577257748130837567581532749746209375756246015832467298632752851456186339349608468036487212645783984398737607748968816442246883472326124875468534326870324582400666919365012727086306030128050383555730455990308120133058554040074367285026331689015513420596100955042810923215637381037724784607431984482031791002430069936777364121230203217343834166141821021396757176789438363564564700345088941504530592063575980015184326130421770848265731421383976007611757254224324847403181677190433286422171936760187146226656039481148907569758418165048876586973986234078627657455020149389073973661696668340727459767337243585834708969005656156928300365046511051838723529698565813986143441385099934608925778086802480783361769866184340475525918940095087731420425454971291228917751014801873720875056173932494010604460080767433790730698432084839652736777707837323205377539939743201055802611175133279998211392254332507773720933121786978332292062784405273118234148099451619328193745298198607495687327888532573923730873011312512998184134667833978000117210101432938370898736157462279951186560613018303726132515483184871324314127627440126248433606545686791569967128261024838125496475193815487683960381622393047322133847472962916005961709714511875418689278644256680606362590664766701540699955437555883080192507568937385196300875903123020707721105210388416409345876310664434289986710585380625210919627961132069103112862127614287379351425146091936128231636053659538387138926774493729244401331080643034191386077397030204101751255359806762370275243865335536969713027943343290003750643915005848914015110208245316529905779968210310533001617008288542965185768508810821766398675721828558332228002041580171835891514282447814254616914851736044836240688857034846538902813221450215198274943337413352546336300010732486151836246326093949786695983680302811056605431355930973987868488635394712892790235002914413439131344330132373892212845595741092080230041489587906682309388164012641652070584446806708352692630360621032295584601083872723327100634082889481795782654804976274569000932741586224429972975217008079456477169293511163627552078904184695227595907220406538168890919017397711048925406352890781062288193823218177494661007588326766143457746330105822455152515911458291905416267033986118641188958488374067307052018839443482170342952205777648631419090321181292117008224145124699379415066398180432276774410748140800526782124309680684733717369584259876959283427986012769767543320293013065961038170067663401474229640218944508450624186726498066175792223180422386461467605027069606371055171212991443741507544696467896587726784344318879343668569469390570420810907028258987265612738857089339186333104128885379311748108414249126443897353967315943815671933579008703142500572578293824902287730786020709432892131421392677802901557298558278635988223758176783529547719258029842167335295093374387642748674568203360381032102467747439586842276930846955076498964296744437123810115498672349032273151150402100340249794163642086459842553657923060710077711876272261961060417143280581770784092937534709315361713562617514421785575860372992528639235430603401511479039930914319411780134764528969734407910521783060313055534385102941772862344317385271352913807139056093643849241785531025853602375499718538089038105456805218746811967110921811976654809999370368080456425624902125418567472790034970416839309650448571169505685896492529304889521852719811359507002003711095202199513848980013381674407717692428798921879686575093489087641334200054297833665091452497277756265697972346367870608457137231215121726971897668606932009914855541938199959451983186333193277906449547517175175653680321162501474275528241981333520092379890389349434426677838371459818578474198673807904155392642637929702916548434959459319036575891066032834981731198416933636591870932771771967028881943525313499907594345202196058940463206413341411979886400776661904793656758387505423090532743222492645001859845697749095257657476315312587736419307136847303813021490091847059799334144358347468333447120968262088997960565234722157233433285265472236531055231308982949496567722336584356119551942949141554041024203313175791888515348062277142505858005872797064051338536543299892469889541067598624099490566603432067703573524115257755907013020695004495997876559918484787421063154405098889168751071848539745334683687131967015750122773032240905247731588250277444097146720696737109582080853939054015302635860557137234041895878823865504271900093281765820169236469896327032119511293363073336848703195481855372425425035889313413563655012889713201441962720587791261516274448456551162706118540990839963298349898753497699581973102022287679831908445677337194100744354111432599329842078773365985285733421046415413480954114139712913826955615596271122804079666258286789614927056292503514411401254954674090522713354825255847448522072674905197738909769517388323337481952330557535894422115619541288826896723176444846827454498924105213933031781204821670132446959142611855288673307755037964215354321432875336862758247784882730748897054389490684094050511645609227828466775371494697721592008891978448332355996961864960686491536144692037674947703858623219444937145234101302811260472494821497000073954842943095719489938862897794931689497980038629456945121382853194203301660820680905820035182618961223586562361347975300282318877455360198844847145727817798981426108684279360357551461344789732488609721933384779979156907773073376073665939928979619616195441025022242710110892072651171581507556278174777155268005939492665619829290555074398814759136576568740991806093059893687690127814001208655935032341035155747637463189847587834470892237154360166585847450401220559048582033192943427606885920753994731752625516289360215730114394646218036046662059114445549013208964250213010814051957769467462086147848082292595650568489902322557345693355388466291063848913384184523334189911394434364878157283893578155001940811163140992291348620998080698612684351215370843866703035119403557763766973715471042819970440352875817274237179682829634349763754084518838393146462037656587480320363635963897880846234060800168560808173052278944266555205260923365422303063645806958544161122930272037169513112635592912999741076867388043812912985592632596437648741440860373446361026156834849340459400856906562908347932864025006991102512313948648394848373121604639483616089824348020561325578669183888164537934224762965872106274128152556702604090756838365569740904687439199093627579050053131215533034258487378712445392123194325134233816736140392367863391059100540992621700754029258728132502433981252034769897998441697818820238276342572693787811663619576420075362157196447301170609044082183924951643332730355378481216483933149726615930978874410001670140060993492258193083180474008763098836908199260656678768750675563599163721669275157087357310598157943957582405621057925512783971327501416580338935962332624484354430141478808466549838992149354014372654639079480198603133114103423006340172630741374879588989947246794618182707322225684988991206020197855841117114014730324037273282853792410032614571819579998150236020251778048796392139350671227664876527335748971876839954599040694205565268893799671553052725419655357450493610069527552555197627450373188124326095578610986706585854738150526898049263763190304859394498883266055331937201920816161075620053524077223146774054347055776085564797228450039069688441442702824768764132354966772298844710705612134102517067371750811819207644085217110203191000027599468301308217686617294020862030460808188329547482984744789134571291629966427344846812673308992064429658460710236686428598415871375063835893504390261644715694543748895018979849832007630388187157141689526293244628694496904121594000221603253356412079837492802371233160739639420790029288907829111917458335102184575970730057795018852187914675746114362529721790238447371589004406611345515463070743666443775281613827035614320953057424394979189790646465556135355803698995167998233738029581434871990099312665411652350564127953400561867867551484048276165586822947879666342521663090393703346457195665240358967103701550581454345449839534228215696613503594398540438708647678766294050974197585426196508375232734971143761583745027657276944671845209883983689779667998625302584423251630222450795104852410798178784220841024427594238119328410437566077376619152793785958863658993809301778880137474372613075085994376385187398351649257624213280631040769363219648282197760325913621019363998439003453648661434443294100394957381159910830531890367095929938476339142024667526801513075337720058469982429866644833756288108579084867929931912408349291317068112247863373838499244480692226978899130657347667808741795899222343815889550918407928937813936616945284455481544479676308092355070057715414702171239074918362378029210659692486858505699033433851251127150765251754908175749913627494513795603960250492988932650689351606694307307012320100041769886765240539987920913337000342124317080064451803397438697596528286622041570141284798782670002431692080388734325040530105861825609727098608501699184957511186025602182062861193398946969021786130063323618447445632703106014223381671231517662474366314574812397130386767003141172906874610751793506892439300866976263693096449355718566100190136097745917490344317763452969647419474158927292869312801494626379109024451315741661298594813704996399603462362207439184688932617676119859996793827904606937902574064845441604647872275728460647083669087162790279806736319182691405350453401401050264722178549791038186442885005605999752563912539036380250693903798980191589426894920355523053344624229009747224659851324424098591274869545888320476486603357372741404872671764810694867059059068209474734650615664900666704086173465925307156209321017707328978041165037623192038340503174682790464929479570678927513426060462077779028602478821374313824756631848843820058622788281492393891727430768622702002319446478760936938853753938234351410034182564309388206044011260688768099567011359992791314713276789079908876188583533270314295496780535723434742329665915890797758071450502722267499744574762251793049213692405907088344156474860799063612318452527241734975652645801951667191028551323188009103504100192598866285063029940669198323447790940889547891493442860414289406002225853009634651806348426810014447695958474564085095887974234637700637171037241544143761908841767971626442970988826597056519522587951456702400558989651480760991126303421188207881565019439968005083468761257807398275758308074654926645390626101576557275056416890717291295275868318732946776248433527704314678633362696358278436404641086058745066446998461061535956182418701260705546876497192918404820924185191166732759483287773145510699298659553143493847460975852751320507539164244577087810393015440181620651420910681912647594367612644443840126779887519568581369119854666601755008905027145078038731752892428298043613934952562578851029773858410344464542520630802339011665372071159427267004758469401701997108538105399266148545399563431132389644651015979835297205433159084127306741633767790608320893263412714934144072218205327281259699003259157668561322944425606952783370086670207958542639742713764214682082282221376381095275531133734341792749306160466787497114418427920023232161852364382466249624399189570300226094745971690331543147737963313056476405514765700899743369466497653631496238831410299598433025750725976220641471286587411461123997272554123666616409953571377492679851220853691566627993315207675491603801856472323274345491321735457431165939025289834410842913931896836955915953650788899596198309366862806569532555969226888140474018746585746519794197190327242880150662173467885812297842524142110427347165495568234802674557691040209968003859810345654043108157698119275356734366345747989661383231936550682448577005012079950569871449203219763880091512115117284712624651686413511919247880748672337538683462072980139964134884090186131716660223185087155872637717308070407110024050464600968704148512935102670702763333225953033625474657898799810838056418317429011216584012563590015575514818389167241455670037462252032598646098339137997957140231367133273873540937014860778986274747418328427228444110489535826668518246133942450342688484815566935287080125817576950653597714681800544271180732257965797436729291507624669927160598804197654726035339320991382303708864972533827005335118762759396750416550681289526468818525129753917524064914673336867342769942886312013651677841264666803175584721573735505076180516263363871275466492369414904964235316959337160337476268419862957034051422533532216215490843766024343814142444684459051310742249870305304148375725152560265512860748820230915293396512716898379571397317979102912778458488418640494664953129360920280569677230203701048124770223089451389685002552482634785359973890206257225043215991068606798265537086495898735519438264735940136377923865738224466767637069080085315901971889528476842535155411494211343026959414933731458593418068201938687914947027579947542320815692995002855056218879134950505081104127497287993271460935475161347189920629848617089346502474794658468872674702490076103947939906930569309972734296632303889073491842498753683785015042424624324825569024048230123903850683241711677829163275210409935335695870890257001662310696947052489071009267949778681824361793106295132292921926059554011107975831250703407857522693327316601568607231495217209606694379434516651159731919499718886467771724522939252930770128779387619038971492015356755536443472197919206285319754781573181009543115596468043147039797687711263524898829628832851203471561614619893233186148579289911395831344658087840056788816792907096341373750772978441147937227566991990692715859962370116487454992232676313331482982444533095494159410746720407956098322344317657701384898900973914934558277842438067865311913366871542005126290745761688059306650246570112081686939491249945102301022202779112792153431137912195442930512661571508884088231637061226953748596400528152933514239325209306162338536913975826271156404165661531742465845228404370144994560419279262002332531254149405196679430030768602244620757236432218268107142375037755838323422085247505388407233543436668647028719796291441834639788330427053497324011932217376765111357664037718790422682953309384659659253927589877338539888181353644234392239435768200993788676950099235718486246155357967084289267491827291934470153077176604220198479905295727139344464246640128707700679256403687364312999657554916397905157135333998145534360080794062404448047346133528743249651099122004857247590841702038460700684993658878673497787258411582756188448958353631524788601216588670569970211455297819298856887178267977654350154919267863351815196038392210907984972355602345996275092182828859498188353205632771241491340263193366465621510088313709392957003167587715497037860370731734674078645825860192356153738693183693212707657771341102004584813789800575581016455602689475765703129795638700929433258027347476997585425480075093411860225222945832676775056852280311604359475791029849274193156279997581827719588969595225461662370572064006108032508246729265094959304099219658210577832282414831256019320931902731677361837765249161840597730215619002893471127018603568181343597512571922108418495096347027367574605222523639956798322856172610029508879908109970987696038893172110840062322079081856824380889748191311266455806260073401942959460559316666200894565713843734773849762829637350732174204095349290591718191070736136011929818985712529569563314686149643684963670990806286818552311077597303223155632930028482108283150235714264622847216522719912533571687210477207355194230734268011282564507242881109312691929962299856806936958032707926526203952357246630191548228428589993832358545788141533789672961444216669260006061075007992189670604062812174618029106968517797071438250813482414331132885028110962965670751659145540250675235424294443631150030823594750907757294124016455522951905912366340917873976596125074738083379613454922178801513711097000372346179380410003535117304426684215822047802305521830621523182187149515750364138103287132057867762993359287632501871749993115712564016603905800878789212553236275547393148416038427829908293282094356714953800861103922477128971770135382351024295183615721669101164943358116274074497013741814926893696659300892702630361250049307114371830954089513867571444468883448212121763876705357730542625075177100278443653919527616770896638422689735174535693307287261627467507343622055975727169225588362724361020999938541180181528552435579783749747530396110516917229327661856069557935081456534772303224693558945556382188423109840675383966180479269327350916386314826189990208142723527118802057131813527714133115888179178133223671857717716305381878251140624691033611228910905482575699872534962888327858542416048188512345884077387761295687703560294181917776220635875346892654493961466860421529363091519859826845358068990351256550451996392138223098485331580139661156474595962479982484094456313479040867992366928238875700493682464720632158061500052006034682591844637849561588110794699259293327891869225763288347705575950360948497749272261857104931862103834542641306962457468676534842481737342074750050676429866490936891390194907411503806285046823207933959172295523406859561984418417317036071807741654727459778003337344353062213753030931532348342849718777858485248592215201410731462724747422118093671001069070360131618743007997593591150736949593110492534699242081101779516729956917203698598633889369458626044205532010122721877305991514984526933951153759365496668950026749306288352500502357128729717734962626223525377728229996423416459633911062548034279543198161610710375891205376307027183157458480810401116652114494187290047466684861601231670781522264364857476588145148268002254151590300949650007004475238148332966902197393463381016707773136627766840725781892973380073632539795603384929916307704390642940179092270967083075813092734406752120862429181116618641058955367555646709211989849724830591696115207475976370519762625476814644329426429236026646126060811457726158164670683398710077902068907250785967748950391673289549102087569772322467644106131946946110595444918383315102928816119868948550777986635648835590415578009811374232762320273559110164015318399092971763198538570370483502082372517442321358116624999254810569279732291294331931618369271908157739271912242872560982065970393750137213731948969836872809055704603732369495605750880922389370322111482068973523866191212898372373825455591593215816556841862290183920960380634340923573963336202407659753687399287735350621162649764389154713189564084221002888180230160243603533392799406813296177352092388356044483358085278589220513992202245088178932394046991762454854384761858571242533874209060086409507094671390419058461244858788745196138634927110677831736687622231179585733541202628717123451767077124772585365047909358177770585318346660273860838010613037953178340324162715523594516859262376548587407510124008562217169767337888228463822633731439746226145793807920942544533876183486524747396389212912732699222654049526180809584854629140445116609537933631400542275621409769593194445767611940237638588229677035850653946615330186378627722952621007557090409615677988624532764534203089951573074934529383909159152331575605041525800140463608990270309103697531161647260482410127753721646852986786192354374039744740240217608671987346498482122194535750700099922518859005258317579425817666343650152596148101214954452183095999428123339762534880898449700666765570836881765731312078907984322942831870706936503288324626303772561468736303455245566385887972286194781113971400091231311587879252834891993986913975488826632414273526072769945231671743051585217249860436191968153272447885138804094740905359881066575951800790115031656332503132455899672447470635086671286569420549472228314143729650924078439348653283608834234052166458128080187342029185016513770828787827903337216171665852679765488992483926778278329471009232976211423085924621670650765926223036330764388387709828405023015518876159184106283817828266019414690817734944429834427831598104462668298461408499965711456638373275241407685171052354808701082111555762837016905423260275715637443956508838828461043290870884689987665449161808769727104730034938308792957048511116123285191580398829670370840835963431856332625445645591867344128596014291904340945389982116855966922666711163383108471423383518226773511932193027462562031340166902730743099717717425313375480520414902158723180860223126227703201489173729850000770294896397136485769360877325800582469428985927369584367472530665343449114058361280741910903680857328049525021084394928825937236385521208363836236358425600090754668136909903046474738488188944501852233408653303209470472101704340837017442683391553065308373740894207107870103254883760330001852894496950313900225108670134919665490548526441195370540066856177023207667733660628104379446118748231206097193586944627313182369554935889060197078774071563947543756888785760574549080955747054651486025172401143157348706687947250871738974039978801964847809561911895227290291851689073467316200037776000180125961286997515728750489771620558101561025262597048313420278149192048716032322485439416205117111471737394096506310021274982957270413387757110448273363489519063397561052751223739381920804381542460984547210452125188707398493453469317137790916992854144831014008243213033552081138952953971690288660625582018072116796315333343030596745791653434873434254162473325377590303554145611667859397559509254568870104082585612355691076870084200010588846578759009628554233317452776374828363764860245082980225362355928981261935715410165788125052268451376357567596950161809294177613697491634866849359947694313688464537118788437733738146841354710639549462235948764469026101329495836541778255981798025527308561648450913619028207441481945366102947721231298917930857893163828948226620394048960972362831656345382883700785897302158229365808260542507065534052294852512533076803700750841906277768573904775603353069847751001875388013367510676082317870658120231889635723244608818760948673509854022943159601900083462699679085052757348007557673770470146448683576326451203707349126915643539938512701171753336810727057534939070043456600655599401324044284251698190350114820930504716805824389507685580132043918690827107112211076635457137534401274140992237651608778630247885799664180137370951453368523372197240045890761535944674497285918563906972346750614631581501104660918856314402143679728030316121602320597593328339602594779076634156873739778208556024283691235852980731417488724532538136812547340343564718882273727912179752788464701189626967379264160021984695978329235001746519383770812415798056734458977352072518285723292597891130251791404251303990490173701721872437006331634089111077152058378789067480582464003480775532485022314068493444341668162279387844065179136456425759314091482336804683937261930601844330768839908474659704191583287901262768543861172538628978635891511849978171544997356226153523161202241363980780841818743869150502608641812608953878536357205500749884931770028376142928714990837022664884717724541829462787576535888819830048081927294309364449479571296065364239421049158924468401482627130999369321725566996353323295001199077097924838542744942026379012926775839096600641221293405762914742912039718507792493269813772651227679819278961824526565021134277811891724912011387196731122227903481875138296444445891105607983919294482157074403300880566390748631081595490580782502093725447535251128331414241931747449772834377186929736503128750588063976790704506849064535443658165889540168133025371658401751248652574202535250195258377323465726118072936701616476420445505994721823524538470872567749580675694503672657327784079950246150012903152489362267680716217758877921722705449583916252893424853218673993171616138973388204989586829737927125772042762727395400288633401045929902330790572231793204636792550083205740737151600256758973392974422814739196524205421099233628264125436230892537153397073340688515630103861339421037536327190749731244887436779854986596400314224481265152054183648937272520223970413936264505506071953315355846850785797843837381195496803952296084623065411050592777679951352931301376107994673688124597876032809194554037752272167376334552940313793205862616647769520767914549617328573925043086121506218417589103518526500822698325461074967264739867192536656647192972343997757122759909191914702896275178692183340235302004217956773745316523603182744344079191120330782442863386220590089631937489662329358952110189653984124484136470984972245392334580401757525180749867149919948543900814516004784182109701187286120561553509361030132768154103504089406011435665300003700727611178681839461903226764690038343919118772260058976666829970098047148491534431503769323640375812731137101122124111732014792982932330304096318143719506828060654019120048511040815230785652434957572869069307879131139475877941597458848251383880705907456455492241201936067749284499204403579166519946935404653262729153552552974653922889595967289857151049207808187026921348807817580840808137065739902440730929004864017177055017674912192647587089988570694529385108957989264792913487465712771088483418526344595788311048918231903840210781625674335565145520885705822884723568040208190022879276595769281846999864869773263438359089375449978875355839206226014651818938711891521602802877675717049696416692120129040640314798129068484105564054301067024674074057584591001967583817222849556937262653569594763457540951671565230108170518080812793663096522502804836180317726411050572037702240559937057620807890395699112592612752942571402873452103057705817359185135904603289389446831129511024041123596624011667822743935892395698580352216723490402935292067793551051085594010977960809903002511812953389419501457111413725152992267759739850830130962928858331400123750038250186113624536160049192481060273303400194543730581806821063494093012372235884980600257971987519701536885486239922693116843365536027062018167040182273375431527999364417536589767999025825760874327101871853970836042256095463732793176422143812044515557227661700183352218162127705711469488218889148513231917457075463362991677939131511994152414399024755981370139354874525856537061944860330138631958038150929466382992381091079255716024806079330924614714356336950222133439885712516721829026813912961195978854785748440706526592382616851833663845712992897091849283067136887148090144865518382961664884608304925435430661208053357654700603054138317203177041102010923530868354800584647397654592405959662116461125874050664439249021812813250820159103759917862381894420073864875769097183441235072073555747420206552166715004603462276177932081651669664263740449393051424499501511027417821551676509027802452239476808502053031194979304393366876071886219007245002558572815394194551479675446182775386792851962052054065300030821720082293852046110743268321381039989339853119872395478427166870137530453185200928807269429321095432538030918328946237134364284217137981294976895845217758222058389765502623704339284763433028879847624016605111435220940253173613197430391226145096098722851470974183114533011025425689796590193354210813401669460840328227531679983357272843817866969780229201738501739258160838269738676173970050710888877994101655691740509618463967063186911716295497534346822199904956103056476565353764624818302553843601309397919370658633729080475719647417476695351111681755190718465079660760288626512629343827618902898269798770340155681354377661061141086921834523286921766294933681293725746808501519197737358880499704166608155482158304697986496131362816024714803207977363337035030852305868473644494490723547994522401529682125455263986233235469276023287704906352086499031206688024069266678930242210668601206946455524895224842874104504292686091038903354312975957184829978257048581878726028943268197807419084273219815273002256960163280398602573747496057964215374718339139194015437634786824186609145148350149685592563734234471802859881189562399039898510531980321898060907251744848191735589920787974235572517531045034975317769521948310454616502485189272604311578971415731699696399461588895193361252507612083765235317116006547104177072550217486716563391831638652745004709945229588568707513283375982842614440712310656547745820489973450005261026070820825029816381509503347990425405271927225482416769514520916253534241528131598604160105040803441084969572814742123912582161103843585229842684711220048299663124423973514211598112208675527987317577019131262304090796389784745593600060813876886032603312140402652099948060284933643399309902334718989578098691307437586773970583318463895131870605306321720532542584894673491608364157593347515955777969403521492705323804982375043765430138433763305226334802788956902371386784907589463290761870828139709327704414780879681664322183041502831609952814748392110648884803254635107984877968455281622828141851806237464977130949582386170100843642250508449477820190363374017046097800514783674895304909395650616176956572841924421212421616393369968978183116152432517220744537172572552690113399725390005821419110983830548959400801575428636527388844537016152448453034088744566421916750634079293043801370312812876678456696944123180924624443395392840430076006407204856493268682954050539732947709764316359319374150005486546974761100559077633047906194559120934215133993960316166229815900053155895774375460047050225329518595933409960231421840277526957838733790965363439702502157126593829970500705960236305519971455125491234870706960613392085686937862883877561547973875057682054550332434188999067185473052159460348598402794015703246922590345637385442680960931764836336987132206249893232343239092558757979074089993784005667271016304721760631317718745920125622681404678049493522078056711015932622128288644034181377396760902577913566372173623724648393975506760343740679970049270173326967152980153926442323373257323754683131338125119840050459510370718506581159728405017648630525644184522901546700971046434623680802628814129627778898106692941982708809015980510089888902166797939945500288036230513274811557468016289084575219173834755962560884593134431607065406743909617421302732349903586630443050208483034005424379450888699711012690735692521527204662730367784602315791319557285708613480299160015852147286022275306454636679796675761050671030393670497593092122688431996719747154174188377128494275597239851196989606343076185323463148394413309387114349278141741093568159935564933866769777970837428077928957375209050726268337084286580949896388432905481088443896594769572382174536081086194446487578404275763785927433833197868768302917253951560476604442992292718571644366597967703361809680218330725333631561953095565053743627866649878097379859890793491175560707322539322812812033341091559411443744424456553265393939343497138181522274236926054223899148105302190992675599216009130809078438172170432832130820250568572743073615217238781626689532753982432624267950888089804320465213154982620030891454047215876707641679168162697188293478142567831190130926659311462216709617708338083713370254836967350364693812190769010399712002787141120037439811175269638234277506244239124218856321279052431188560704965950589555156710371787450432193800939822561919248077277888119326456642650541784924296298537845582549595272616618199108257583483351200537129942183987979163314113577560795645157880894542674493892861349290687397781308969960843271789456414471744328862733719189541930563030335502860841270629772756135526365059650814338021751405719582698860829577535932289436986452564776370378891625358711459878725051717058234306489541769148924288805398254321724964500204436270329634947955068342522755356741580898477633221437735948648223893263569292692610617605278970043335864105812457859445028821587085030378947257858991912120201162386288407695547355122403656636828370440254690259465668607366555824135646107037753138529078168906437495254621018535096684899050647637138296503666304503019246933498671460155847575826161036418430898864524493002795441555504497341984714835054203815240046175786913056214212987122802327272415369937958547990484244474752200618991077762553214277614763544585238313861289086826216961533859221488267204659647535175451578321248012572099126630170694514199902980006020920203187093867006940282134619826801620945795724157158043223162312021490691603206092021401271281591369544200807735098227424813281316519578478181188360318824657513224578514785388809802179441134240224784590823583018830074909702777825590574683191014002546039954841487224395211393269426751605461835382172903868929495401022161001062342777882311700062090023469539846455702617760387150402120188304616576420166685995622540906736708777237631133826079080904735941283064698023844520956570494675280116888372858334900049375405348869224811319415532030736584685712923971973849871654441361410640343429690359487702159903137431489337871612640122358467855092785556486637988548661418368797148584802060861631261133412971704660759307361509308429402381557312856865783961742630332707167926959157811674692603162339533331889747583581937257183306952487072356613973861572859187749295723740061793068176825765964966178149281097822582795014831418594140728652277293812763938660426195076436397726875446590764535702255342156661302174454141445132040769404591221701334342738212322411393156718424863213923457698246540275191822029159131693790210595141469562772405777153503486316742807905035566353044698133786086819114175852957334132692893132397402300493168369252874759269416802655093561939361124732474634839397924291984014378280010532390685615042299632664972466273461023964457711594670647565589219964901313878222762709877486774468051945873264860815110454528114854151789017656501417308535877654284746085059684354450701633685257932229926051143266454759209783922990952984978457281049733151209992485799812973215945478327491100953488991445163145789838709384021870668579807556009141751584069413426385068642750135880632728369489638167726040432579598798686825629353934669229468260363238905379444509720323419829258287656631938169703977803933073158815112665282713145288059072370946980519349771521051520443980618349496407305387893664440958494991616604059367759083117354850248576322985780939760413372714243036614954375456349905632847299949975516745311509129380943432933447034887994244484642534398816837917901675373439471412012497255246186223232906368839574196691595342344813895172805635862885096768800541871310102695352588114722099201585104355345146580342857921988050545030378766278120702751469305518290777714030805649385637940345456072437342956705369903194819672496460141213664895824674645271599989028518237564435945918142852089347757425818665321079784175867941537232035076144455603090502513439524485919214998866627329938674631366633239313789129061488551520414267195030582180286414156385386519909357884497745739813231356685643057636590195796811514717840427713699899376246438076382424437517567772362296339041195863415895645460197910545477338501851652571744315018166796843947014645270284631001442465720366384472439325336873880539374879036531633489263729230670838561720010349266585191595712730966311358255952090207941718100650334193724476093378611055649811344208682985403244279312195712269927684388970071443605288112090160779271554717917509832791809349085325871626375378523634686787723449811304131810478912200838400444011151643126064947227198220504615914178456123437738886240279676730955258891248105972573395565687569772138230167969031432587733624876568312952368116658992462668153826852698573223656546452245015483386202207561715547716111883159618664207336687524317466845738383614974487706120762263293961647694534775282794909297751314631106899178143068495608093697228617843850301520420783298446081369590692558797096941184259554422813763739745554457279647832863153589065986170532830041569012944340149860690057211293812422665016943079169335166065063806016241534590453836622025419921618185338012574667649338641949603600188591999692059314888046564753544610786818688383339029438826615107219000602372999847567979253848174946575950871451907622139006641261854876372245106386940159776156208282554977484750136032268501953706295705969996800171959258772600322927882637441868745580527637114705925102715145334368173507278770291431524741793465418676015806170781199099059917789972954913179283641017744510626531404237584518841151398014209074429003939138968172592176048103967118259712877151064857947038575924697350619609402865173241932592696670159110587409010501222574510518504906199857051096904291937670209727673193135737960657013177866027670660227079801119909611152369264443790098700859713521360276197242543345555179796874720503006960342264397234540760727917994975548365454992402471463454113347678107005748345389212169691609684842689124243572511441978457616329187290719166003796356515530508115997605702504408253459667662814023229705179566796248761669853353342750131204406858666958560263399590574558284725103136695081616742638187775175621376996334750437716683302478175904029146820145515787452462446392999272693593228250543906828804857758077524940620892681496437458113482166625642802856070336795197799803800255042393912547836189612286816124906270345009698717826188257875076820691160540928780407057778266897712922571758682557118583984835579431657107214600048176590566014319521586977589024742609333917085263586907693134423741421077157538351053477344795657296253970077090617890333210423784218839306962652281834109187098098226327079343974757008104407286633260708425252635025652689032267881739080913213427032091037862214987654411661188635309093221068176273669563418388892533864665563423025678237613655019191745608905710954991920589524246274536458882731106598974279439784146799424858931977671863750336409075684588097989837181140549367098113818276884074488814201840395677921203162778979551986374320196512330904164682771354156040133362364293735317239899656255110637224943611342744878291926195091242877219854371759285386217428525815772669846786883556060535558359952704850990629750934167630498712354516810408484797109815416213216068252574446126891639773062164306798335192675591875971289275227068239541427279915186140761351089232612057757949351070863000615213576214165133593129928032846958377044925113707804061812622625485460712097764168949668086028152038940567575905144750574447434593898488438206672560458440851652408181165220366308021820032200767291057895190771698220004836712821644202859225246969620499323288409900148657305496500604409751241868203307783737513042270341196734075805373696355338927060239406794566082976626976389096509161035063571066393261595729548706149390850125058714379398770552458336891652699521522865900338953349009725349259789593013303862443109946724092300919057880410018622178433480363577870439535956558552499473824818814550064469275605072699676538444213155245885739826890051320065734343129615926234354520052937228445281268134765655075820890048746784814979438219186406959140073210219044047825775240027761785702095798183520569752994555803604712341368497024768265989335556214554502829023357067146773213100483627166492221103471117782165650534754694259062792012745043000498981315150291951713870351122762407505624215600802356966116323922420862966970149551595591623678127187580593572453605409441007912657063462865073687375263233429145103279075505206513217707193421430708115196707361257154660327479408585442385592709788816054142456008962082534578431181140772845046646919767155636346394639768693174224164256681861089631426505933880054117373791461314355704593417612776074133798430683572544927770792081822768488118667799097584017660900874487665595009830156480184896978748860187991286111925816214480838556003026911355157213499587446569363449527211357280700156444222319800721236206539481579106816766774574820506685401707045063800343814013833178785339345880875578920720732819837449509066421536303430053502021248982812361950690150689496889333056129597307554013679388655145775013868320760533226401132055773527130224066471831646971880140620154233760902294003286173844242779947549318763508621372326791606312454718067831915097677883348258894887263557539421784297468224562255726221077640112639129309668117628792727795670940384350936867930749419817228035285707768679981138891996372996700521860420427683198239255521702240083139567533639800409022587318961214993484100381675948784484064047670748855534266878934539585099008299677664484695675337368313591798044141969380043460187500938545009238151398515080693942387992639872538087145652012927813610216567066978736483955432968599396172783155355795879458317298120343829261695492363229520838954530658788492810784962998127834177031273890246413775922472517040226220012467736511071270622163508543591968959276843394448982417889387781660210699413530770480440722551505759501837874185671959749573561404935646661669935729347967467139784008519822423987463455554882141310448920315558522277629689538973870168995698069535881640318638410067756381594642560277128496736780904186310206750364051298150989210953686798340470358089156110981255302745317425819254194020399814155871439662650777945840818880871008364727583890897349861017692858485068778907121097826067672824671247266424845127615520263424161536518998164087746778351482277143871085398349297006345691422645968020708088375760341876583639535450002978508498108512773663109637450349400607831097818137071548229550521623542270448243839047238895632274763901677935095366905019969721634816696153515993460593048266979772192193217119351863003637979075032570080476101878196838196208087095392170101480505636561311872282343804284839709336885802241689132393979764020685193968872324838530750608196902924588980234662811775284535190480333767137580277856565217772828100681940931272731992701276498003653648711589391305839198860570219292567241566641384867150131233729564519101581803408989630835205023002836717371734595069636414873071946753878924770159068093968709946747377639020470174148696790799076831528851851571276578912665984700931353321992559134939725156759357099025024773601995954177599838468534912259362727588849194575425752493113311631491095557888308080229967919504976340399482103359343411459504617713282629542832360561813421435857313184281933919235650240657524936702172973973460168178487140172873404739689623834055716032631390905523541520223816811842417147600472547359028583444457212922588824142079421530713027299671925736250775468781978900463508396475882257027890525562445775138536087305886217015368489408193184807324605480396318203670470071525635701506991325113778962520299587266669882934162478862071607084342963093299099998649546346581305501530012628925033367900106320167463940749042341139846852648882217180303464250354096432587618788563557619731009699021748407341428465119612704201672449502228141273643762613348211347970365283765842051707541020115611601660404084799138163102004951329388854960772688880110287867730176515519898052662019990810062800886064632543901372843124787765186526067446908471223737968220850493506103123967622144257193042237383688207154947691394133383637483123738190769178394234949347539345217820738772902532728383053357839984794445499805138374098029473129950936809092903082543776860293096220067062093148575363336869268008759498121162834398794124406360794062559192180898810916637065051272065204821961118264853901930566848626542375450085400963556582920505113718736171131861958286360006140527318374540164014862653387458310724117956170993428106208926268760602863037712129926741331244148351352308168333257329099830457000884307399767644424805109200327451499565117151560590178518056095601705403886360533390917556207963122339619327863035573261493986470771445341302366755039642760255512712958754087366857103789439816336340784553624476674773823971647421270703848936586799142748153475819753372724155681881612012663605664031345905131005119130081302429665820903175403868510301711867829355755967919776771071424653160025417798371972362863114132146441844093042778357363818799065104658682201035288074727006570789390343956628006982103177011649107845752819228527039759026193068260876763181839061351357480464682183284212769690934270699105510714449660106962383186483318646187149550067692042723065098384334189788254972179490125463681701995643851306831325468103563523036334412554894765702022840036932857263250216971690921221402813437397150655903793513358470144434405202227833617330453876388486208795721557234992237136672958644814412377748817550925926551669632304425511942456331387525176683492722761364821040661631096529670343332946330293512107744491253058158872082914845616822374909270449117757061077833373031127473698932732191054034013792892623131800405765830239037792264562025849283161760071923266480168061907225281172095714928941454219523732016346293878178906247983133874152527216437521573452351837273619890951720468103501400510458905616013325813620026166478510858118201097641779272000901174954635494658682711631093267098076791803723322063165772703122977171250845060603417003103127492310489557242656779048252827968914469168135088187163468913259483546071611268590270659568927521518551635821274394527907409915611659555525991569316917941161863211103262326923738524168514195766023182045282972200485462171176787374488003031959195093253808269023919563458024503272272256813408389280528556197673193888562127171836279351190033539051159679099533802989891263929509013712583892438376401026630605631604960577189977240129696404416162897484796413405383401195457603592198367653037099908054321664626396543396647035192596330722726616808909180452847849831816773531970946442170073561235904851916156529819162244024341973493601260415508435191811231687741303354378563890240615576118187735979954732399725756767061542126767637234813266971030574245780328309382022077028068081886919688039923300059506816087109366194050117214155803129444747438147853978289369704448142528609023029615123880105822505028750759491474109143464621709264415910257588283057316827764489362787906350114493936828029051248908099187114982576019677568573339357374011473476786883016437404181193646250518903714452336807460090674251995218996654437680695154815449446042252970171249267592381659583931112731091151642894146095637657504986915669810840111186696200848873188012528420745366116642353954474566575813108998949413324156974658475939865251849513366722598787293563880805468193284451388853942661623498753385021017148831186974375487596612821221995029918495730177229883132388872898411552494870951481489772769320752989054200670705458495933426634673941683847860195535742918042288677528396047301180292359667881604305724138644780913912014975424000120646196640408998140896288073093784658430534797338281487767083366695161830678412783232857228516144474616620428634200708569678993471358250550128833269997505021632067957759220967527708246491339254569073759744252005283370834382497769178760109159275184351060289585487696985863184862766986552028012317456277670979196826132515722904122331480680276860881223583277931207839537926623798140390605445983404349978263424239908791893787456061827223345116281767981057544687409237217007999548394721775880675707784906559245446416805146463390700576887570601503956288089900102066943666301669628475541333874409275592906811249585638857123897214243400929259975421654418054155370566575375095731988112918323795921649949026177410734800714415019164672132640025335479352734737319448582339106398511930115313061130230325072258775327101051513460809657053911456331472803705254563872922521497274847313078453222432422585216854127370044187094180776230164182710848577798314235216751382286589452226446752558182002196843669074121481125773420863090727621029520082393425919844128603095482246311129497583771695921566243261743657538363904140265584096937146128309045613189221244811000935493001536074429449422571111544434232348356092462035991656228075669517450010843604811043680163322978692454595917335818971943387857303204005597864934595608971976237937616967252636223798097462646829219653348563785860058064393839328204569500358864513751556842303706813972180178566771855446271921296100438930696664620366626890922353706194368621682624712116492639052304638729973982348560909222625321179432975014631236733067209785177278242077903107973819727788763467600397487701636422152538715326959808309825047999640187600044805575221219097275583343404333817131245713205083572486316571905715143904914131349238192144015325564977076033433461035910140740428218811669748044490596675954197437768374472753289218100771952476885947482525852609914498112140003754376784270505888259066146512288854751406538262600818372304006270107516704166712438179020530699367558260099447232961260997232136441715691468236614798032680794363563072744514481665459102898309177211054609233168590368086886110493514740840004491671517708428882064758782781235154091598800323503553848096092205145515393026348982854721846707327876503373574768048342342584400025296805339820467432729984338751101811295304695923153094062354021103986230807793693000164976999654765650209627651589442462080762528246640766121916349161465438239036941300773370358551911007380819159178683841052777651285283147472968889083623480343388419540770553038710379031499122449449626884478669735230515112322422756844528890911927961187141165869237708569788614151438477260390557877424016273756262198726589046638184121630009058376421746837874254014378935452634706902628312243727358112586157146947131753394346758106884244440978642160610322839193806665031836043531384761969548830078474789737161205494072351597015851455698429351515879032747293758234348130358447181930085700619752404853640410151756325521958139403429849541131761065405226559820566542841441316671038010671100190192133008818022644823780921027652723842656675772987807008423271705672819775065405656652884719126828920637339235923549640838143324299341333012889501620127487194322877519579393070193799215136815009032253873743528712451698118092946308700345002248424355802629156196695300307366114722829490217941367685076431652158407361659016325753527391173910261727477181401732467274913673122213183996108072072127810947080031229697992289061851001974020605303275054316201565745260894714125708045753598627463984210111404916315282470857759704703386883651751449734242137451181110064302365870983663454836873547050773814052462488980913035823465348956747582743886804010682620581152329703789362369680277816971445828100931602937865877217477114534540783841275733629998918969573519766780290483546975272892478533547683168785846734894560716360096033882734785790261676030560939603907383806394526356692022109470211917165956829902376364402848368013718898628920128007309462175330471330679099699191401425061507353265925269028203983213289271230408616561170068373083022821593357754428257314191854796210719596116307511068510357354625659633680337765187631089728405916817814307236982779085577757175114027430017758882787922856443744282308416604485564346590884085289356903060962083648323944666363083780592035848977197365992975070001551652997767382410540238021648974221573930906841300550635196924075310914873358637773788700943380474499100431442873328052721385195248323230633134899278405733777174071760609067294169550473289682142815322799276303950214399623795894342888910969673494541108271486592069510804573359513239464753328971588424472802719185718740954582195764950003091277881059253678173434431963002952199403331844686030546830262375295316648228735508680190412501690081705445078321708982673494586017812079276945910294746401627764259839653489326552612393860814551922157046309138862272812859777581386574770542000781828962262201210327926829544297399649138241940872695702924159844577983383326614538248484456755930572237460679401619743328351616963369588574537801834790980919084257464523055735718149863807959849152463767867655352027230334524347938968212581440246715709275948219775066983318070977936933378901665944369455087559147327705790013772059082720512403819612017443997629379795720855353634576643795920049614763619704162490713953386530395403647974048253733149035419643552337132863006851810096607024975953712724867972980966977894112434259379733366018966920913951027115831740711859328353064441820937987211520334552393606630628009874398995020057581427815476308782387728041250668491911258203661454048319515005701876673643700444777077639516459437783143182593306254826293197208798020065746517985003242367898449459176220789470402296605680837954949262689966971984535700565116765654367096849415709669659126490559317692035448468044847913920874699973085084001237203302439794630316737929838917946539218057838156340995144187745630078805472979175126635068980645601451367436708100207112751055890214450391292661224208393428265792738990427599575220845207134235674617397014659081004669269997133072862810642280870607047965135717649080794061019691739871567218787441631334771235667660644764687860746528951668857814707999270067919326610137714429933991349950788445306330916041459406315314614735094654292878116378548876097653527046634415203176013993277756236819510558920577258982404014269956078094415429450130372308196821387106868570396274866443849127311396391767897895359664568929319487435014492695075953566177204729554494889860889037689735745577837760059910849391690827268596462238573363898121589387034582048222778336053312643621449827134339058724016782176311798967286423128818666072456038914324487231411852707521605443186232201762621198337354139632356986335516305719704374312369485777696195610143135008212786946469014168819568965874456269425811391843508690768169542702107088387544954119873476975345441207693184009960551608744083446455162474275375602228488735755594669712652250980282804447199262661589782536381713607411806803921881240598175893288420158800177154821292192781495082195567165578072961818433476575817582641900784020800028807351983350403389194150783569046185794713736452907495477792857198468848785172837122789654887517376613204550326767443208652014770362853633138732029087888332385005770565931948976302615129712289377708225832497807871925420202706388230864453050110463104370126813763631505120504373021073941614256382699653338971799459178625836086298168495737649198099731487321041907793148384129368176928432302176647591110593858855313831127869909770899716199556324422953502132704860074886949461436122801316823105598590752157649099745233860072814596604087930497723205309715104317255011104192515297181863690472030245112432038195374762145192830093609002153696624735112445060651715306146674541033899662895698458231991780670466689787400148889719779153562650296103489755523225239773685682005507136196141303116174374608831622190247531429484801567138994498752299810389353292491292391510081280310510505903365987099692028940021483934375300630595170833527534533240633190884785311646763376242008318864300175290283438908716230934249385337736043605990082173701241632188887452915342526158512826216393321298001142621826736140836696623831345378817290036959912897621652381931377199293099286486116838052180417225609687562267190437996481626760718102983684486743777604486841086188986775886744388127366790321136805130092125587440518644491950842063696838096947072525600645481193598129684666173796702967479244709904849316444476953256445089215810483252358717300879929986993092989285870932358131173570561713533114130903653494137443048321170598861886472238222672767559849116735627955818937114334496103719340890817609637537549068583405714808661971905022803043575002634996806920162221435504992183486709761514381849603275088335259156152784868106732043159174587778819709761612335126364161434888300929366680264501268453290154327436518382923399548729425553354308067908289999726280746015323048961405600637292822625923643080778742203644722871140282827678156543679478196868883291429726401978491073754740856665067202153080002119576899929868702084693752030773767205090894022996511173215158912122975041903770940015666052937367144991692249124314845375019175425707285149136624410792130978912716600528191459914058598852467755641978501419479725289117590078861094248678990342369141279593940724287147985973052183404349515441675854074372949057448618509924478731561566549028815071828838555871028939886251053087708314634626334788555716929662653784830674807752965996749725220581506115099765499348480730848969068700627004966881271347902882494277214133742452081260922553640240744504994399967891351137992419449192151394849044493616445583168247529875052155249016670910809823518313741611757690669764141880093295571843328512188804825837152781955809734110059104959335076688744949935961206060410868588431060499239718005327799999673433760313892271826338397516746059432107579199685593317766711073696807845541911695354387520648559383698726680962723245293974489029395252644047590686501135517521453996902046981938974147469488012929744408705148163026014641864172478581465184279440470803574864819849613785981518033467371620352104729728810233631953994807916610168583823854814341139599192181088763964313659299890394280094396342934078274543936601294771176664487792769468393657859003729680638961681089147270301828130467022315306715266966051118996957019928504833636913486887874389846915815917912359983659953978084211073132238016314795042931448414826136619768556190475740478137774661849554057892810606594667774150477536063430914594089457487543087650005185286857011249546662456025834157484147600883506057146231246671187147341785729197569574203552280815676111974306467585500810211001876288719800860644140372507558098281061527245348468215014809861452496366946278277613744072674714998997368687413477128259438555335757609744764121664454578642717170915116929592690781327875905026370536816936235455544814794160573052761589278516461098255879755773433912562052742831905815772236806001094231612016434111120668155269136546644035810021551729298062887127821638450163169186152090093861673346372870503651176517983417829031885125199521251893970408689242532992703853685953753856519696662475206642906233133666901245209443423875938545401846481708118407222866854452141568379384139019772333847148118228646047030218438672459015378397704276645942208099890506018745133159480744219317796007550333190172073502607296350948249493945584541283887559700584255995271373173492638381729982693650502835446588946604871362746783360064766356855889389904002991424245260354963152197577980850045617707795574728379965135568631892797194153122910410938872017970534182685404565106255986718487655781710782888658417407209290128401277888502320081404273514370937284448659082121966262452541811882108346659769044338097798533179279187984994336912595516702590441324810178286127350938295346428876738555501443572170273912332941878923314130695220431922826253202394712777657045651502289580088539546809942896131575707866812347533494874548752947959819328292019888715943494987343866637234254472494981679393901581602625080809436476013860599208415297486287541767735008242536569974258700730587065362988807015287063149644949038017066292194221222194024202242889230283988318063204969482047923467194634680799935382392289831584218630284556600758687502484061142998635066184581540038896719299488778838753667537454074006714042046616421486938149426988631172671217938263050780309593814041751696681493247846990301005451278527377730697221149924559536167042773724091644715596167259511425955539022981978665013051907530901122971880202585661102348844558218873289874728269839220969811533456524186002906649192761877188926567110237311189340173477890547994765331800383552382376429632022842004945023833443167578635451424326048654982222015369228889743128939848385425470935072215966378376181613640677779659488720049629133569563138222431748618740822385354484017509973234683183814260566712640094864347907225548134859010254848414276819225632525045435641622736159867372566438626824780484226953050829060092017289440901992202336293460667651563218104223200827238389620028110327044308510170761156489290136650185774605781543024737647908570723240698255588720920402570852748307635028042839531710477144135761949325868251871352769121573764098795174869231697730154021486710900009092079767572831627728660880734085493763795032370727038348015743957665668134056219014130428450724005847642277527859321500389347180864680867405513050730173417430390247376804648499709048557693335189856625290491290114894685864570126242269867979463731289574344988144752035834576601714616341145707199989322262896617829435527240814008792391640653627622395391739496365718300384768914684548940279313481803682006560039735989250298068973457646455412676356078905221786103493398223821709170833628956253129729239569930164018312911242026936711202036524644282302795093317292098090932611957904999673576918713431462234992472496644113550871317315844989246581440023091278432463263242220754935623350211733389029473153688070696925932948226722022757904045019630968888185701754132229297542231962896291195898483651154185308528701737149322857303989530452324460785229023211377101297605730300741280512193562170034010679251834115569110281872823826568338154230139849678583795075856266968754688450082839742359344307605365362652537575161586836393826605417587099201387538341961124673545513303812393313276722358186578612328046504872905765503990804547782762648502293722827147164602527980982063634737143625787061486866767495483122753741496443862021293794130801574257526078890475366332300901395546757782987920897272561589919120637866762468817904717449269115890699800052391405148281898092972763871122505331243287251687417013568192488090874016709516010832615120779355815871806501490659076468907031801507841203786483313421308832004177557626496324139201998190217932529745282045007881319623393595749509084465060944906996435022062501164516661485342204305620900409827360476634622767459636209943854484703567083465118212477187011623735524914903914692545754084012780082730345884152788191122777598991274735698304668724764221346374752043981646759975313347295547276031351936518562556045466353914331990587959775398356495172070293579953983438011932548801956648119233278417359313628383447436289205373158788488504572807248071610587972545059829443514065024441916976383050547871522872321581479552892750623937173317677071768766790039013672406256739430552280314013929247733312601075192148473797584380404047855058635138307014505697878653185559552795028052407814325239290411377539168710414899758112578032975804545483323968734624673702519636706289894155979662925052461771968096124659767079992260140171198858930660994147588270832056967824017829948951106202556588774866000774139594031062382580338898435343272225226295100521380350597801768053899825353302491396384895898339260236834676399288175346278912710520262876606669517939684177053675063762551348665730172156362895635383131533022195306081782123243693939814693200956383055438539660253112811110236402280244762173956337307788510678588686608989444068859706874881364581761424192631916494304105540895522782393543248666543804891708924963510265521762055212394731735360666905061953376979405922632267995888444001667312553542174988127622003517903152256516799985496190879286993936395110514989625774119659652838981067769279966649185863150133467736425054680881744967593839019114048243092444981878450286114637610407996472162207116784842658569874079399324901306643760656792939316737523652269635266928261958640503297693735435529483907181109921981193328045037348639620099289458776840786729435669261585400867373150593602539297150523346656060020805513247786016005868541774561626948007642493048262265500505394903781798661133522119303134027745285405264087498855157110121760235449113074540532738437560201868160955958499470954142473331367264137748547987741403098721020989659777486983995956238674365857641029402344588014521828328649489901498928905282799888876532497097079232690992731480654635224013367913460328299449243726968061538431068379247218838583906349074417134914043642692672930603494348970073200243421514041421725062245613807524899322368960732921306860839820906390979689701537828081266346639041344976410393771998879175018850702616326580000518694670528256991421790545578476331670222177460088086738197758752227515769437120669319768660866616755002223743205302112179013016035936315614197094513143842358613501120842974764202202650010971251796310092698950698650291536697772004445208120987214964847276420412029279953420367608047057100788770681856440099317736335045990657998417576989064469695540484711286159332545566579567286541321122922819284647982121754381848764343372015588617673318427476521173334237236613240442117854370453481933648472354431590668666904440512132358226669599074487101866560192507478977038383858386408380461362139826119654214835201689170685897766109101114995620311396085814120272480718496998652366844826439551944007329834046210104729566710579176477070238118785202219061096234605061559146066163108840676104559852315127732867465887333230858014501561176739654288295763453289486084544765264446847946252840557587842718997131690092156723608961004214908301664927585397379805041199165717796356814644267935585867724206697885102842729312285025946360728122217821694132678089567472417039019174691479238569387312484053394594241117335987135035328650638821791120878200917767397332022568611288970688616137569105596638273028117195003002927764241285285972069060843080338086290195781628776864748475739227531662991442016234468691030839291675482031451121146393527681874697876340987194665062982655431526689646406626168076119938606267632307957718142359662377009237015452312318544883513174713016880189954159722612987725153584350422693760011497810106903924161905383004415286041608933557993610528303970928599449520483198987705782706632443625219636537427830874406167350602326815166710144997361897912947572321878259132928024755680542204601090960786317881610098910232590718519530353528067532537639560438867283034034012426229445876508636945185606841001390631315120687075134247987426901066686058024071810931483456391985084688852141762609319868826233506108416235944492959341793949519372369430295052922596429501516009912086208102552755686768330909626232542807465238867446541350891947335312137692037934696877512066663301002303226502286655699326387597463116528395285291528518719779178939923711894118693904227860593118069020805940539565069115925757076572903685143518586875313393694035605690651814107895831631050820338043071232241546846668314294746333147652587428009790801955797275423045249257045324572880041206492647948436758873955338210309037187027538568159771511601687344988066416048662580321934784915005710677586040607194226823550864379191744525786019447877104317974052775744653811363313222646117464839758329497050391487291561938827447235451656158851702391747067431414920968531560276219265568456378061120207918759407112843880756754222425984868794020660377574608841512994868867162880566087223541599947008764538883823946064414976342720776149444738066295447585460442391024317019861223053446441920770898177320207998211967031136041621385743400592665881038022867909903564182587513437893727788022974083955001516995138770598366282990851228722065750982844678443110565171905191560667266398792602292544687753552139587297348397285147035207762777050874307305655799451860310165311991009479544984654516317597976441669694437493371585967594253024176089320523418218007656417079811891799749005774216897739108886975544493313712499272309389466481487043089891918737639712648533298637810998788298561767388356761229616055191341200332835991340405002703526412152758024757751218838940088169896485768690888431031972783553128991736237892929606488415190326123024102211229912804543662093131277830791143906169256071905890181264188691244786978198879235697876148604019395458972542006991908254507644241325757417162667959440547672413964059208041300411358870025753424787733542598403958396439001052371677079554793829552168680493748290237369542520739522738657443652521049625487513632828675813215808128310626216606075040860190995000565043751629128829450309573790012786045524276497760348920325222476662844991128046715209991584560140086585525731849204301603859471285498742015346131228474188072438780225583284070115523299352091884459473416122788963702473003370835554877307521825282960238760290217728990818217447745187637236796034190684171484003053948692993638410411857931762884092997648750072688332897158380595425191125918608956286635778203940448104934147800365304246750242319960366075953591170730646624762146982930021257954066331679919694747612956921830973431223370014401361953184324422713620528919394273262230258545296824843163225138357231006489161807349743020401797687487737331225638291349895707631471093656149469738389714289120237121396906921051568241994703847962672894414888839906590722328961299898157204013602143086171798714207740942917819889801037821075267244684387332250937420428489399864247478458823064715978203538839344548534876470216238147809265276785481085416197869408493644043149865808951494537036226462049577539194539483917789892220863602039404973747593712074046915666355518865575286439469605815434484156564884523509028684624387442330325921318846520500749240484077434308372624572014506652448887538459672960333970340290116112874155309615271877281831278689648158035476009382160817584323900735492034860300566850458916874487840343327375490474211065883256185612329963383948535955969848119696516628779604997164846857605544758811276964204010032517583930431554299484554677922787424380569004486182991125690158721757377166982542611770400672910442241955880260907818599314163185763411868847656685346111019246034425381146907934021458202540589401587877534321194079723824211422418589444320149473966869010091938601400817856785829757382235985946216186455542021169343816880028168556119798180923045451225246311487454797285750627807692656945688636211291381374952825492669457543531961956069870351194687691466421387152726067552093902045472787965285635651155096525635115314295583279985735117402646313771514326908570803566251509059952969162126517989694428690676147546627964632055481451783199623268678412749168192262255194094669188194424929272907631494328862924641297783757277252808432430350349309820598908133817369208530060787678752611552560174331084290711117682752805250660245682014405908818722670657893146559335601200441663824999682047509528275469081674243380074833350298332450135080115794692710674343674465830248295497794111090254486264721798069503407430885618253507708201963084392970687499597708766863960971663867619094681237479153924332708148580945652814070612008206994204109695306257073488822223260214820232019833820048285804657122345538945417830341725245838797462629031888981256251726925394993723275715445304628301139355329541759808102890203857965773651306051797389708811008445845455633330503070144232444173471548406313655258129182275869374825765873819957742293715779724267894555949746541946706418393163241957972905686507143917402466652497300380524967945663243229808664986921608528710454198759963196874436059543652634944813396820822563356162478567257933465527533137734007406418092209167920473548673318103164070438428597822645012802700975629004147097064844885791753191285300646759551671278423918109913850596956408408616663315686607453303216521799638456117795890530247332498001649673919563999634724581334579703948682235460754268724910474847662099317880614269841421880676857416573214346339220082400885656892691450579888939960876545947493595496729893041020735393111723912371162838676676441620644273772578952217343437167052673138449886198689896954932069482601177220452675884283439282316876404766571432934786739469895188729579472625424275892787463914610223602145740210870834261568700190973345200210320705239005758069746434009993854238527309956827272780865654271709211067158457310075981749296029621784852127484162151796521994432801639827203499466032282957211269123210995962383623797417941393634572675591529148985993767579902960265654846488270218171139040088151555278890822862513385250308807221612097799027078352985720771641251678776741906786919211060057233017856243559468356860128528333529885135226765878594562751239976954798474384548309006531893481075437487175888606176155420377112882498717293892692438721226164948428556269840198388901027612683203294319514200515457711752413688871894534181713717892253838694464190622358015638978792741229824192019848191862734288339539384065213460463195883391361009153653208539981143734057520565481540166013424017567273121629277038131139962656121632030200109899124220421561962675175846451630242951107570799281440957748523448673765539965653410368247803315280659990433575846464901272205250170459790264076098630102415869716464953255476645069538686459130937006427842630488066595725219179798875913723778908367932307927675582461505673066555190972945536950130563050612350770790460229592651121575402741602972113739769492239112428752927228915454968044012078947483130852696889694460385841309371253093466430755505291062199796249347902987181495770109362545479766514892187290588564746829533647622302553273632252104763118588220462389232806988248814400772364429313151652775113976599297220448960424288009550041102607794185728616342956680823228545845465595525544589550184393355474109324682222240044102905772916832441727784737756383879107440554366812013761885524660398926104448266020228727749461992362294970000946236647608076855238642831750923274441464629799875782506287719318128757011453061576322102120606136932602872044576211352131662806825011130104265398791062034638848403893711218021833140220676743248443541350157345399593608953625299579918442792239125426379714663142494463932038127176319585563760882175363230410358421416158593957096574207930425157369902779397356837177750885066422837019187037501098974771297282004858807486787974615354012987109577559004443135312936251910285690661577515571891333236721910993971588459685494138664853732174493488944255277571446105678931867999619000296284521093033799470652932386207851833371857416672930567869602237119815230978475380744821449413689776757573829638426448530540529147071749085015858793911292941671769824529048571843532438508968414430102946021907878984495662988720084893193851331112394699416411348910973096373296756976845845914426564259711189710858621639039634434686363976731210227611250638661781969900383205281411257904137580715612046777317697085983805527886486402916620050129698818534924465234162382826086999402524756607084637476390782334862277454174264076103548943334093849296594279298851151863962646642203630768846371380585144802052505399646138672420630810562291562069795911899950837871727185522645781641489780147996536328977550025847983687746524933284297550727368792682100106064435592129555631906230994639738214755655840730535471473107545029648712290809995233178351419083549161912175414744016172200785728195499846418263817711123494221153284612607285784115652115305829267993905350070815172596723625345412810854122012771530622467466929814706028714903213389267810195770417741259546363634303478291842065183152395741564032387062798866540213659511166066712212183389415685624541540264252070269952972456222713965734308004037372121071820024812546801493045157302083745329065797667906125733708099935832183382739963462584240451999100787111978518179806539256289651104854790817501523007695389599208518766537096151200405273860246058374225193609506438447898536360409994836978210088747039446282150687013912539247815401841020222997150907013454192211636850851053334865400384393390135302760989233347437708828536135458555330574315428774167047646581877427248410988260123053693233024243867181950385180904426597771353083251743248704712069098662030261024733473572452473346064425581172069023167160559837245672020649128542811084175913462579888253260453366385051768494736899638738327932814282576173018212511000865268098590597697325068639419058448256767268917472285948775678992936644541904670126924608092832295100916329539984427384481824405009043461003458310663079094315087988784469689393757340272376037668244326176555086744307227751449266914048732086657901031078150564094751231704641723925379248057689974881430711820876884701239878921315368365697952013930371891208981262857995092514238100633527542220144479979338608874596473374546412286220167432065416880588268393439449758443593423893362577901698907835524072823251251760131843705163505063102704380027806627584263633251406552113715059530354647146540296854474529391268116789990771256296467248466949362631431067228386250096607123220723012135798277174944376007223560948539968222668499191578546262390723454475179313123543459731436588483644402764401425973651344241553982378003306045834778679992059958500221666498033766723537420608867038440436116848392328253794852057073368302899207863349643790788780859194161047381584470254770299115669500659355566188769203181455225687280686092731289371982144687758610865664892512173508419994154646639177544362575246201834442706330858315463803526026389394005210469106488169389329909056527211822920824347131274618923367811916304568833939029567128172695264845493715175823304269680968022539704624617357625144535923531209871842222752191666945973990821264163601788491722847683688245827569735187823040975281348763789702974472889685785635095437913785718076983550460012806146475593971369203680344631846189807944156961294781084366027706578724011950265899413255757908616440502160805679775144800524177503431038404442181034834212369107243922235261030799270623312223668274238845660104774445007799310064112694177618614597482954770300736790201098842836134161664181874489656497180308235242074501461585824217336175572120148828091399152767598885914319035566484763209423765455346064297042629501075036433428982005224403193792503987710356398718776940103929047783098210767712267856483094382404743749190636498193021234639952454409228680263158301384193699303057728666507995826969858405793593119664498021127884527218602211797245777503215706725058277062503148703681193648202953523627526259690827489026985649672577373152886056587150829584033186568136214841161548004138840545101358279770598504797487456966477253820550114498464597756081276240397833292415281574470842274560493693467914061383253380896306748190204498280420234938889652373810275072076843288616726825120299641934945517366076875643408223701218457374877042540698180136450634621782384253196247395452376709306582480541857783519711265035561523439692462346768859519038245077195237370639107628733043233363867378338739014914038006062033593860984846829214114502409185422052287808233980984712686712624237501269542238656665053828085316855721203348570204936395013118308672928335189983577730508587420855486758654799685706677181511030810452868881502361382214023177979633905683749129952508690657011215039218763161033364489527573114835195438665376274295149798265887169952847075850102057764641317017481384079878963941790447028127733269411373459216799256643616048659854556595948743563160542588815649721460271028988294845825229020141046367078367306760322101697180667743516874214095992004284556439016593624806208929575317724225568916043178732975139551694384296051192850318809485747466335537836770273931930624250898804546145705435856673008949336475260640207002023533020064239089709732683553882262336846651459840961832911040696894481877146350553350252794649358861637379221247427160453082435108012898924427200062115452898315328958836001674595506930176111589280331998819695366017601564367854518264515471364032512487351210896510141821993306184213643527621756202246935485120235075013929979291858575015779104952914912316848236170199769223200870394749707625241448485066578933728278594382745722915459030593791726470991427535502091507716164384783718829186194006169520464742878675382291919638617318642905679990001872101053527260759478651229996297271709722237734053970473154811547180969019795916128708890668949526043524707473976770504481416858672190391455196918554566317404706941162339039676098080819052723155214185356447540990582317553002882181596316230449193382588687480190998370538616925042525949171600680836170028333477178233625815150112222387173876838660265084416351668915807473610127413136346237694438984164792416033160030338138363692502309303024635190022013946302442747756326052576325903264849941250811477671713980143581214499768617828150767502112052142117797735132186788799926219866278037011635981736544095456569755776530627609454247280484264458963180421362479537679083100710926257977170263525166427228443951730509334715128150090575464196760614157179301317763909985013206412095136567016772316655096734666110678634645311127187303673684439379493057796443646641911527957067668717782294200130378860879555444496705035448100217686239934278401828306842657224116140094386894613442675567687223700592731811791841895513405966338678043352336169262256308128299809325064622358343194639850938138277791039292599531179308994531289361259737997204186439635911128005623572941311449606894908579917999329833944665738324966097851208228605064033272836889991673150193054381812290897790752878970179742666170694649497711345277739217087872366549261380716326187991716964029668687441767789312813834387344727530696641854333118519669007553318427081419767604062297196994786710543593488547812630446941929850715311170398986697148360530523064327608189905165907225350865229819183923016708355471097326860068131534960405246698512055026226689440467461321419401996755223277703852708902511249090514774509242789826019168060102585630803864437965507201377912219450776220871055324328515785130604249644395773966190356825584308060934680377387200783736914907679051779366272060040677486712846463434799736925209600231741202883003596835508057007998463745693822869293901497495174023709271236010048276435084599534251038065764825764070313883555677917585938602900827527160854008948493279462982002093655965059952162416896465891092016271162457385467801187515891407892941562694705077677522907512269879010941326761550518982991280465045074582219637940672091983712241128547115288576820043739835627885997193029786888917289312816153771930355627249463071355163336943795405512445653389714974521663927170880832974807965278561105734017849547432435272135703324564736372317376685830204121845986593595898234701580402496127641870063796053684108834287874279847510547150601516781807779484165685422855143340134279838966892389693816622827290375485593343473852738587881627725056924852147140930756348549153327186201015939721599223587607761319511300704125085461481855343094454161033204119243601034937555559952773930529016238068831052521216576020991302973202826745667136126432873502942998011854947167634429060998821299284881161168476456188432995417364637765133679262188529720435310359928005242497561365734064975604912658430181450436919134462771412259297448137166685589958294121595705066932587613468864402632745096547789412978562102295202488892447244990541548762558540457532335168074424259230908974859424597980068782018821964466296646873136707125207431026186317159847705585094933102278259097723603679116122192496061007605684873316612947819523038997632856243474875782179278963645750644737647944899092100223292810982126427724313322679292550309447562564309864877635465968091507975820693221478764453229766508396474612147349998216136066536185269064555588624749384116914073493162055456200686892643334152096192890795045620741705057397979008282597007545532309908091858041445449285659790751493576754415529045879631204058382026937348240840562085739897744329860963539131546851400898393067258905518491372769455192707852579532107619771609073108859600061678856931683419902213091440766130395252356672903817824629676356679954585225649849974240373549312420458187603594517250002237983791411504591847566667101411690467517489482422770396454372450330782713654136659193069397146555242765570498811879796016436948974387681660185556265563460515410535767082536192264625528106664210494430708241998353958693596132159493573368803844162333871751150368995785750512569175779685986964279227241844170756758691827929408951626237110513794498896243162200651968197616692201087847853871132502872737994067378098317967863713777524769399160460495074383138534488842053332716869481022506713543155335800245158233044385350866419583056890066002204561103206906083748638651209430185452381683288184743049519877213543595316304245493487754443985073588247851996827348635258636343511026906823568729656250155708762832077688420282797900121472979018487277922469683725886178285794149582915833700000940967340654396672208510798145509424878104126564396288338454093165716072801986211375396170291821848333582732998460141160172749885793138399542385800689307071051237086038999014945274616449570731820973948882731799993712960158827931100405003253333652083370372160275034163322825104334108645742262693256563839164136806886788848363176900113164249753637494007918696017661866040887900122272869565898431765163933549481213237394908559949676139001049783363286682514172797889269248909099627398500205321874220923766033839729964548106353048150265855369806517512173406648828846987335656875981530970049857218161152980104857506938626992357404447408074472153082053520712537701292858134509755684966411228433105227410455034368029104604631488664062665323595483457177227862419251510467604649125590530626012132294248422718811705037929087379807514163395983048169840597749731852926245047243204246239872990735723000933434611563205580202295303698906152100901291505911505747834666590922764815828130062026855393419890317743356650893566321045516111649837762635453157209882219216063110437573313681171933915437474065432184219118782086117429808649142874167644516698125540105510698056406603215478074757257823555769881086598409637283791398912699116206104391490605777064895649650787971938000772076152873692863763788922757785308776397824329941295325774777760506121940343758038347414155050361261922908387856888630627530446174272068384060789730029980229477547159376512363973357344109951379378486646788990037096196385174216611484685067682335241283117937514294141427545761365666094938413274568355554891342805433038886380028383740715472847784114755038909122765471446743272563140166537723401558515955534657311261583452041287310224930495306854891601340207705516180796169413558829600522039370570852161014503483969368743332798367072974165327494871063946761938590909004890660287706492636327977087911821737506368204901962954745836577099203430680315020253246879599954380104644729914157658301406563067813861296096455635247955735306909444804755900128844871381243740810599562424087898791430025530594843849358930674774190254801804838783483307322145747302580997449096840730649795517937641001186752142575836527297593350870289200714238688464962962032283834858451722464409463627216651699114719985150144611523423427910002214963417464432269778928834429716039746319757750854090945386371390476476221248489806640606738276127343701536604617231624009901971697187531346902205273781389178372340678065977703200823990036938381076548415958625431495776038801814791890230763814317226578557494612600658154816708758805344634045155968321034238095105230141655657779378433544732759375669915612365224078409296976617086036672943226743707102693158858622426102383204931427528797504636662054310177070627081288303678568492409730179584096690069469454699334759983470873235052295169208382474153569396154042547875067696029735517515203546529296827210358757509429607189340400840800864054438479267682688316618942526806874506446595555130848800019772480688559188699419746538145921908783720958563535638828654321690724914147057239077741539694054750223279921639550935456628040078374966275082374363398422122791552981358471550970711389009072567918372911053478586196202758106105223083160009490461891876557012470679645295872697898014154183895120121179525484782746197809999905960007404345435008624414548494426441548278293971285789951751614564227329087729086075648768878610923096309895017963942893999445009158403494207666951181533131697440510699165933055449777317379464084819177239625853098505776389987747973727585808336756912939162072579395804453391863297005449628675348626458430624133430182720283114096797317623575515344758407785109160399810372711471904679357038145499727759643430342004713822468157398338044261239408729905131822134376920198143681062219787774770497352822698370726105493239430794815046832712777342227755651629641156671097916857983883829536398159295279843552667660570574285099154226707150067835864481663571336598163881535643143055294099935308130200586485977127577150796510109355839416760634999386805810968965267310479798406352440119692159491554204325126075633916069277561932503460137673515240779529922776252570967375794887734460937730391065082288822741904566151935517771901218003934700721843585590173237546808088667481187927607278709822277902567541585761724807538659087080051373381238873845151176995972372979476128780469693578755811886782460057928564545226233604883410632218323895072654344991618892671299683466078710231070563117267741171004679646205357672024092088535354616129067528871740313599018221589432607960159849814111496325287419140014705972740061764957203054550588891483705921092108502152591517028436300155817091135307938829348582583168155677064782548101923659719404133103798714314393211486312720391790655343511328837161759678037517955073294581833338161899344394830881319598645876132083599122146082532208325914692933101630219837310947862300300029278980046281011112112321841635933049804054289944320067376974030814067143949959765851471657666418317756590491123273085920492568502438217044653003219098818918766254928172196113878304077704874943420870141866909699994689507069243299817105255507999473006899479907944417276160753827341199792966479595537489823752345843634999185969061684439026134870326573579303125838757689912264626833069251522285000803021159700089997370225767755918366859336889280493307194528139910349095864723634198390699386050910903490972482366238020231748576415757524795511978749613836600076769414289482909956061465471177424529049355555734967817137210354381494432057918351078739378360444500195511644880166461128973246481509479313155224145559805975545836704767715707786512949301967651952092140528579079110197450986618391663579043109484116126708443723456169871005204663700825144647467129501960263997333357806491053362530622309164576668053395204890359197412882344677831135071639995486886431678439962019535688780199385507192734982207597220977283277673457209759071353291041124947735935308902551431852970776057230494369969452655820988071187109393930552538315841059097470610901242514028256177454405556667321040353879277252583430114680298915757143442470270681695505891827749184016567192306031376573313915932143969409244476704508990853784091222756882994641612073171643692552832908331776813043948214865560870362264178596686275874708045651859020742117055322024473454134879474948973020044048647019676908551503504693589650670934647936955126572145021965769356535316046947073573000584647546489765427708896179942884503364365890871587404826303838610803756102148910859327085877370981485932932034349700929345180718287686252037657286726699558761867520632090163996227913802501018818210758205260556502079116724595077517305418018346964085108872971728353111421645896798586144707352887719456405436683677354921487514493214069230967460724347486860817227834586912306350319451499977794198971042511757601962211031608677731961635415364156973890871720024102926307638259843978057517488191686195583927119411780503727681965766716429395557376758286623375514037260828035794713007609489675339580161301172564171871720203953642129142986661803450569127344288023109503738625119030659910386475268020434034152554797082267447573673900213534765350368705701953543129697396349092008087462961840119096223534484959606947149865026512661323830120901168043222913851181672171370678912924166927234174209209804235548395312959647662705082901343212594655106462303639521513724663964574459346904616356598902280807524231730774624639658178541985182685259967396333539311577397571123895614752162296920390123648392927098352361238625971175107302784113394895320972301980879997946865720275044835656236902575927626372062193850970949814260886916556766633601607488831584954588227004081728788636392385539215945677444210832542171266412064708978110537334033928200334472264698456968342076907297302310524092696831218387981143280294754846950396982262802900402113538004092231970625302567368319071370756688241607991963199749292751885053813348074530428340992284510518917204033125992410919824983593767459787342800087690464361200581527138021244353989911027105974365001000414881990412676760060287237053908158336951658966659532454579810130088984580145483956007635059992997409524570613183470898929658655934605070039110415039062813454911991996981966370782068864348160297428371575962160990204591562574593958409736998750909184041193439514440048040644135149726589281973464685080157275609481939399278985827039569211582230438777011213331083287483795921270763830447050468330388885097902105346125247844484694305351829544404911391675291337867196226687868719280890071129420743319537196164120433772279997749057635407255578913683799756934549874510773184522705864347622242595405245713668715817074071419951062431659400489919450390071641503458123088210159381272176671500966734275904252186164884323155069365418020441799428515365004515829736054716710490820686721200795489653338726909788681721187620242466205457008201615414748484492086547854745521622811899105043494910764170409906000134697676402450373149396573264237247506185784505417812188433438132199949460742862640074473819059308137850753178289978521874107166430920976018333296428787895477106254564227196290616687516434441446220010390868638478708782502531227080083238575652273008995838680028331197440430952631731109082821883769852863264834918736290116349723051782202345703715175945561900260704837321509831770667134371019844873279789998519956532519033088992444257091300110054954044901440709059872316160234031396841453189828529305486796873161300594268763029593978741789953916432858668162782123723254757711809472782731183514921846797654763570531475105958054438317086101306741118279963667684327090765651758481388731907162562756330653178101480286198459303510420142365253308936118182672838765704893142090365084374184671560040372217016083940035285387063790607132359029113664050869068766925750258683537999433731260465033921583339257598140596989978621111187319105287926088765884604481085673313331707572821811316956707023508586381934223220517863267644434663980475953782731066490367221395376431406058877618557720432820705829742600120421198376200158381154973075626965537717323822315160431721425632446698082741500014723432782265929816660637572488820552743971022791903923455349675867245806059576487503547226599188615439802627245583246328911838571528952239823016230936646516423799196977392501278952071601227333920245091295679308530122205650433944908976766205352870883852445696073057626531656350885096607349995868290181437436442703629095660334703011757419349142356527243423624743508803652103906547849749786372532084971067369782855194199926222348899370148206362671745546820894440781743065932537391400258887524253900731742848159213766674576195351349838174622677408781181453347230993166231926843209807375304848840577414854577593563802369547140017119289385001199704632596816853673888110637699144840414685509415813400760707697150678662355647008190126973951679424523731736360888942940361301954389226892435368854376372964954891487208034135443289842815739293289262787580514012844882193349437572167353582990066434292362628547766813409602591225531624657610308880443635469606121372356015816868590903760144664662890758533617080998582579117977313317089562107323675290048726074611365734180556748518277383603914548993396031318173117701623434593955065455624730959251481804932605475243870493651948221397882327001913614876439415605950299896449544813926734076339838744207890127703828089773336067869142764367598527835718472680793120437394174058268001907995235044157181723871061800050228427258745136785936812577805896055093895910234199221748491744073100157659038552118881448170468514583152282194165847063967871655914666722471333455553398999705373110490949800266263696907733819685217279529457999582021651260767250946529885539426403707163825917401124060995077567686354478869178481197784979699363159263431307039730540329899189965873734104895437831527882429771306078256236962903828215843027959584427228738143954199997921693726596157237048128185505263914831912564697675146698565322057751407622515424628719835392270710264407512404789666417829817954222588873372832682557800088753725818878280270598804578870521879143398068335859602296087429963304359927520080931137165454609489508278982281488975896399607313026813676509796358994390858944622859898098141023372502101319307652278100048047503196072952854246210868668188186932104547404992188991394754583129532603301065190649517361820308773344365401102700865868378949301288292547583530778771394446831775497733047627605303351299609371473078006422542011085628771388165589225525620781247930089591399471256619077702764765377835618551739281941423288360175890860318236305628170308589617927215760200542659240652797732345937510866431990519525369321093992437931061129769086665503898712570905973151896766217887953650477680131880892937977998388406999493216812838293163142291805866699374241111618706385402785214051308289083457897533458476802890812525867282518419234365768082296386530240538661770155455382061809376909460518899767891394472288301785512654031935337487288056167987434696105064674537152826738008837265788566047345826547769426395163510683032362760058671867558826540928157977390601881064806946769384870365178649877635088418349403651278237715514926453775254576804333216139830069888071362917839169764986415370433948496261347609586117710306074276274468897505985284814923695958855686463519818766027147544705471187766746984128423839586176470969402571473880374024742444940581829659045097490896885317999629919946564326548473754106566978640840305599909419447082016200752519949851256949109801718431096617304704613120565136358631338914451244970647204742626241646588106774689237843168748399839793235236292901232349675102161666238393485866605048154857528018951747217437944727380525523459481810502022318400139861234049486017826907571870526944331697622484343717256973271860679699558403991377254406508123312010612578708799802686710467242462435988809970839418210480455535933543901189862759968557667888737062972226446029169429904201940068422655978902084274743736798083472082361785452107897379696979326948786053147076677675961208062870459117116244557198734583842610028935719257241906013770736953524655206759597390441058039986076193408533121109685760929545720738228698726460896981934241003627121079077058565838591367057444743328002572935754079453740560157432364453270647078426277550315908927489728573430806238928119020183174398110338660036345087277622577555899765146187010994484150798487986296420364001245054297973201641692479048476714143612741475669696726858391545198735360025280091920620734525013426314028197207326498592214863963769093106473966794521347383488907850781945506858863803050742060073064979850984193000782613266065871181818948365621835036395164864072712262770161119928488863327669617188852951150972924444439415972804276311204495428057942288689378732469242411024282198671532611683848038699369542596400921286266720029027309819885043824323922133241531010348967611968254490414674975471771921410170543691998841544033566082848146520289332193776096672532615547732184414526458246196055368772946962223428067679972194280145441001294779779950166305986709629619988479438973146947635533441193366342867009124027196829719625642535141980081582996382727451756050195174238612404342895722987541032565107355636999112887071577645939294329134096582664442698197296699265963810560490568521054404129663597604725719183276671809410311839825637587428273314431625476330347580181340984425949243147395160342554894711931982922191970896276571680765365814731262671677076276427032527152251331442653106843215426079736334535084198474467131499710080345638360624755519437971690717375622070015815653755644287290514229139575771205868406001806059893297483492606871807904876911208882784716629853480181549231821143377463792058177570225235396662964488759149070896186873619526447488009190731723636788028351083277541762443704706907288245395353166008635171190455094252559464396053064565738055379203721212018231187559089122214358973408346997542019318242905550973913136314742293973108256458847034542451278833498094847294055262086613325448199676595353137066062084039645221305323193449523411331416320057658597476892166743478917287338762402213241787633720347260656668907059453979486965222212545263867211357751081627221577314136058669127728533738834729137843776610476350832063206271155863353814357093944941817451068624780499963822777610750114698929342432233622664633384756732389119802861624749346565569781260819333432647828467080522374679089605299414139698988237482869381364933204458736078185393229461692693656171458146705832393568147452342008343290254764758246613952565570704249685374053025370085513362176210850939192696724297682378342393681441860714801614440242731891162071586838666187919184925206348286716875327860976217473486660104589949282720431629313348539050600762584943953488935017099887929931970451943941485834222175014453921697084119069606430668783634294382730026371269849271463808984621345457525793247770540697530031456856045081395932791084049854699712632904781297583169792620360003772768723773507367905999950732256471025574736252552029681785590559599827681245731012906643797164818376688218556321592876704044691475327676253639135128138718984229526514374001826113083175456815918736642544124424089015191139960413626484547346770607741229725713592440015828977707395692846999138683448903819799571561679944540163723949793469318031945177439810753851593830872527992821651312845484431172951942377876028751305185922674931151523181135302859915500032828343472226072157968739791039256340527003918663885897871383073483519371778339614179823322475331742925887289393692828353333495535904549085211839656034991473246209101923163497820114765167551161879302814092242385123331684240536295542771881738575832465135515847023126509194885594719556663413030373422603433720464610745037274755400639214980941541228324294769388910459917805789040635880222337982496497135017323373375811544735876856348239580704233530125975486358443138584531064642348357810754651086098465120019992474518056672291568890346689874078667071734136095788017260905055575710113948598112136459760196056849001405601972801877120523748766841476554229471104732134255546388295265950050506476822917067878274640352796277903380169496333652681299298144486026628721549695587635022944480227788003758225519571884362967582046871121636347914620788573985085454771492493521201056403875230806757494659110167606714814812678276003026051668930259437913533071938085275884721490021700395768374853316630611766025241923585480685401506154215043023461039430072800988715213398957117182441432260228577509193709529909158091045411528410265584365468206055440877125496901897221485417097618186943007365606570294021248600103428928256597662011522918421763261075064805257759606666214562365660611454040837755389222253430560851148833236217910901038114086726018303069580432942246341424126816451681344279274313320925609067556806966218977658976266476408793112414503717145997833648366681764907421934485418828025324474630967424198966806685247708592258369737707662076566178009943477439086230890939804738764099990235520810311540444710754788162379491675234061215320689776024194735995648283144154585368205026358315851638802192417493236005831764483498836806216612238346740723421468362014074545601266231031024816594769356354350553947014299379902223128493194832217768751300441976160134473450174395849499388589366901329426073455420501429099634866446171081257491692203368551506336178919649751657876471351348286124115900730561389302748801866657212828827456597350115164329058721619711247036105142727721812062235846070200464738126819732525818464991928398908121823121569814197284201581454984874434803644554259422194749466563732381151215869636040035949284326501006991885265497285091391651614598996951007873498819319972979174469309560939919720577867356161348236538607599947511543762593379684945401833138694447546075299289152550147080603886452188163732212773204779086152222364063705888074839550995337537968253072370968862617996285370715727176328782324608755130211248195613977429838019955708541772441354657241088606533413121769342537705810969311450140301343924246387708071446631165149872687723352364636046167832109008354156233975234670768569800240509297115228809786534365598854877390297580732021415006752769227693165876167312015295350844147605708376791156353423191790461772095619167593606498421875192991369434718843305475003360752095122503752531107123823495503543030675713046183132866431068570272529114733824166915307133411384158093153110844131673875565759318521838474678641090958736431328073656128533845963254944910117725294373245209075495779483561135232074083482679525767484307988712061625836606849216253130887835449246686714702156372198523994687356311010963837842009625030571338182147989686990580279388903563287774913283165878380216993414228278708470686611601939750801580040776764073451777721242104325838782253643617208180797657606185627774140583538974800722009293399020174950944217269903800847985607677599226545695779972088027124828556877013075617287338763656157699853801078011311864389784332946435886476807225221970050834880608288494616533135187133354404266680165391778879726150768270466424409323286784016293273937877656901884037523863433067695977112311956726705285207547633290149915883274611805094428957848368204095666506512850150308972322293590384224679806959090919134900693549473217569721214372657492787231756104048525507808292445607674200460483996211152939816991733399439207891037379947052190129248419477820184607151503248182865564712847329081349103782588943191119823211060871539691421595877929068945822247739304533022729422707490214987907568310274838478121690159349838040260301128743856792246446846020888413441159634313218402667400706317773009400126408604474420495419289183307514471848869355359731381375061714753984364937158735529175958898535450761647812123263705075228858139890415299020411470631181239585667029145100279368181694481617711536576233823637356217963478436948537045799510350971646053603645831750847301915948880169738672931061564038634218251862026690321051412015622583278389995474121139350078254760297389395970262370429000038721619795419894677068945507637905694493443592579976018784259442849473247767544719545129172341056783684577624652639172851846150808065889995225600792092502976389083992676610081147471380884515093274301736456628544351843958831223502855963831900479745621498630311206887277307061325887337040510222716747829831901213510196070378326329634723166665815006556342350361059294765027793785863722847708531194406987217981170166368630307168283181343300267720166308810394500168430627262619871683616594342553721379173976998549146457978790859720780793967867619550561579363121274794096758986055464076903487848381677158250110378939846702029268767450228261941471672314062019703763536401762010327541888598949798632727917758618988595422681140496471381331032321206947051617663540646718987323690935878761210630740673057512494785072456292684786093085569952005157441991305942264283739243787669681143499608708918764050397862904460109816100129317513563662089903592522145384549506492646194716310409729876502457708609141849681723973116498815182735889704173073285434585954033183272691554934945605659088724625837686315408108545932792310248083394488848512791959957498013543249074798371608648401662089236593778822720098488497636557686423759621958166004151752522673101450227046496454106837158078458637656241690779409075434655381994335552504555613067671718679314694628403662675340581603204923284740770828174317940311825761399635058658247043257107438470976783714507070346425019583375273548284674173019437185430719129542241783827249972889603473039968515340276556907427686366538787735602105090946202022799936280815377519163274194279999527429435056914403825623460410653940987053627853695553569558234983801680120274502976034032338488125582059943426047306991363812935605208699170534050494829562181690603378310738978968407056887072051501214925685079138253625859075097014178499735530627475740521803381436339860882271698953850747562333416982511662758508098216405454525178672470290408319094790032963646042913753419045902792710094999306268179248871513464413695527338021216444580268085612212003056607744943418151585262234088874184959754774005516035603081705216048776628650391147559391976103807936744383756064939728953279822230135295780543550364182869975050702939065677094879191478311538906810927553803721530346933809609220223073057130638827467285958065198603945223559298238852313376445207333034980208959132161211726412073022537840081198011421455170780827586107883145722541709699166381479973629915549335886081379237210134767691739944889953061376592688844118893716875158359745933887180737193049435535986449888816826551514066171745113311284035723087922644723855390008708989404940345260551432296179981685780991471216880643000430777249288438719606783861793936739025564674094109378427806914802647950118512709995513963738891781431550197171756707357139164917940588406122567546933050159806393806654121690592311091985176186783084221210831092221857400941472891883624651934811247676494524912983700889620900814485535656355830925944787800004807991914538320389374238704878558204170982575490365641924698536554479697229857807416818033279937782948496989501354675404722197874852269160019050025195228818600952378100019461531209158554078739634254018087308155159419789598399301635726531917381867499348207573713605725017821344039043242592223010805494341783595064976413632369210726604078003069282007664013024475504399143425158954235758701370854740381113210790770645567138035099270448278138282979679229867649276203301365946361592488651935173630820023820918524905639525791462254888743031962423733884988313235903304999038578736658992014090654554216178278919128520532834728596523371692442167953846692261034753018358905519288500170475886245239693912276673888573821897912037305614319433251969083768465394845546230509345637698697429875544927447732195827735827909783062076256036723687175029873952000450312186948814553384006117413254071460710310048625317733295005679270733319769745090072695263263270985356987082344217689067379448136812285455693577227854696181200956951525193017976867926475620433469662018383382481336162577824771087390389510515819508275704747117107266492844126586099723174834287721928679392809209821999003619677158680537999715562070233765701030977239730183770876247980126982833754158094188150924984630312954371345502387139781361866352911728040414036940573138606108652575387439786505239515981559443383426697504972245202349682290043574440259387105401633119308812562802452714108700469000663649455179804077232961487215263062041577908825982947871252236620964897915180621060328625334406882206704478564173892836794305000814601131314102851608324299211238086972381764105087516675446645267805966770515865859706870318757514569426296243218748213332548552941850934602308786121868196207507400756474421341158050977761819687587842991090823962359984508953621836608042390624575550376415838626780317452184107836907395494161681144831093324794487459264529920866657954874128199672665666698054685211916434927065446115695049873942889051482610382404088332939661648786803647310962505336840978519173026542964358491659559110747809113314429585788448817803864200910175410444396839911787443375531118280092060167481936753177241059743263031534470516569966572203447781023551691941027808739797219366000668225398493624635891709728838613930792226809088849094214282267098486083311231066612425672721333922275184660041542050798633412128191981407461066703292547042209916405833337584280832881571812324183777845706804095120954535219915998841742227925432967215301217640928329893570851160783178078619015982921630034384364959831169133007568246505026420916233220461211303501091388445765068236707468137122079609955532769667395134649226529975670899206349007258475576465304036638225831348442883160996584572780957828471340332668833867803955932224085310174126227341895047809339183499063899666182425586739147138600040542552854946886302393470815261516294846124236291350546185990241040486119755691805372412411626886961291092898290777572146185029918976916608167531644711511376764879055468179876270356764289955147797721804735224191563926782232571865687793673234559003691803182468610417134443862855384537573147218344232101553371000993005355886527003604254276161802082166419201132518229069106038334922514034975171874563679291885596553933969581151769609165046799145858352630058649782291590408002787620202132525424749909914858945257534313278219273319832518721189290309414280591253348198202494174273033727518633626114784282151672415606509216565600278995344395029455019834851010203516825437982281536630755937505106515945976978216881324891282346679351669266068090940642220378428743198842387589029922625758952545683514794981728819629634308687423508712317653378969457805066621059760232132849690443740068398435175987267887647306725293167985617300994578089318504847121985720627567627549865389302792285423533892096648844664933880930093214980982326288634945706837462890689197489350361702929527870025737900576193107139527272158353788882508786918774734325328875490633844807694119964271143933914724340846432086535060302431587982006268714926900194603599640977499479861881923920202880122424460492858887113965332201004201805365802685783695146784931493987230765950403433380926563305225250672300884961443373362027761055161946397015256708438213134921904861804772920205213286367244267784121246132478478613894261535171844853540594614245100244777474279483424042002237064344364063669171853384255422296462636635537246940983896103270309219963611913801938460698396937905053535957154545165545226589504803238907891482821180110466897786802998803665304177902397582420985336569013683042251653535303275910777295633640845352538805068383237884790445795733592759892906536804706884039654274663884510256044931469276635084060176446628528752896052080873501585205724910130665854573835075905152320610311781546932220048039516942702954291923949792598095050236567455096630354912956323038995021745519538899408776115938427109945793915585677616878987021684234071714987302893147876469961017582477131193831175656968019554536383197002655791091683022681751139402317602528908109206197353051574584767291597064383173482473160604366513494916957893339346413026786171461492444497915024816503603447812252521448251328692242682881490783203286793587171270565046132726266818968285394228518640016556340204773770060317493941887090412287520450118962377407172385188794280219719179130335635354047583364459687783762547835416868031495371913826086827114169755265303117705235243925932314016796398036210995600081622484164201705991638199556699820391800213155074196244437827102016488747433122055803206751668210197192580073996770188007444216644704427594600355450771096296662733028470010450617063898975115668503321815662346207226210657945440851049587096827466872403125417141584802238419892537323775647334807479024093527433295662211363178940215623815173822474149707342822554049037831741611933981888234939033232135853677319827094203638104821661640558272288205440379231070733341947679676718268919162899118902860025083479158313376335093358144141896949826548479076906631079865695925458907113534485525124605594373002709639947457900800001217017600835906724907089515603958839351314281798266250938690383360329276179179850864802360428466068170562930461662526145909885594865833671158496322498187434885498498004669370180525243564453539227851255410042892909783851903462039064721897642659153140343151779169382469431883382389428873904674925446261069579397002431525818312779670578166072017602988550083201831604964949473562586348059720214372385896441306711826979752788070391420904278597125499632598672576700142509393775976572829825215801626462894079790875746205458476838910876237785881764616886333044604668138209862829487483953276412574462921032029484284548541454526088192529728238784521366927618392378533723825560641280998109794359025388723031683555324887868199753759208169490188411342179708638934052323456573146297261645939207139173571339580559544693511345449152321264492684184818114411492006671341828150962426248631050046272193830040214199453456644987677021855869043763203916745293016446176051676171630602949541548303740901355456012697855323552503047061504666046380288319832494702543812244242004267097184056093543186956934114410057098847099852220613585997801879111875016919760002013831055203226407087465283443272029633996156944726222328467347130877534477366288784701636911900078770491815214315489622067954882109482980331265376501977743575895978311581609874378830046520431829504955925219797548232668164550122166748036946298877692187685899030717601835966552554454543459778712290659172179809375292673789992598610772218049897391479316301394511785535792746916480214708062547211781666158402569410689951523830807034725403576860248254964073637464768399556549278042657270782839583580173385089197312608613768559154614951620062773689372704840383163004451718578101494579060956308940815253314560680491938750164145269928627773718600488786529737084520430438571394378185425146414662040429985022048071204020519821572033133907369793875593297380925845397563574542821541683331729412366347135270701222115048897497534485038387826894652525395121137158565826155389206182591472830743278209840168472997304152527628381467046990199501630126706586589554251367960171802725424157637944024458503928125784326052783436004643852585567267579722863746067975769003749739000667800022853689553460767424709574733207176870030444727463489649641683394981054915050751150699540282565419576201950083063812391486112317228757155631270963184337725869267538556987261452793502838185055298399362796004280772118742874942245502030939476689678028769140516673966052172982192401117378776796890786049802691128338441991339620175942863758756760291746560641799909382914129955314296661835607215438936545493256720360294224070862437981904081227843379568875492836097858775581715504630975443182686443862216481497513370324243674751470867878455508978518429875581714757692059707033001092085208882494325213297015095529759609099267779969415413275424678533088216235222532173519756560993230597513659983845000565859325800168163643299748739370663227174785491035867595557208448015255675024457114635520361137174403303585748857832307426316850953272945810110240481109236562345573531571143980948608043430913704192670106255124628612439373766707003905431460614484460729877527507155317983641425891962560078975566822699824900336273157798348480584844865482356653769373293286279319879694966911118175885491476196932672683754340548474528705180793064952558683049566896125950296111714234053948292657089107111790619663319643354574838252239722294363587614924627229320193711439440963844228217087153155451260664747677829156844598248259171302536495971746501072872069248337636266561820570066941310413720329038270718507991422943002237537232365037651386952598202443582599205428321744656362813455252237346012255627431719642754860569836024776591623360074810389406628891515800123754759041439378799780126607904737421809422253320509942829973308203106173781532707066419242577223285461381609135391193775514999300895129878770245781215653121127572553794918499238512822108879575760412845192753578782869289623577809668621363690742738733797631263326730702270429081929140195702612409347782965178389697663872037381240960680178803044978478557313265035753645667130206541311471763559146336564325315511276206069795113181955399651979100546164191700939266972843474924082108065344377611367797719736657287433759046949510734939106852619197793610598777126779908069011954990931598968737277057717776073499640697878720794771952354791848975569460590062834064001560401343157636206416224818618377681667954268443244552230556615943275699980325729289400327185425013209375114757170884665287338844669293826621669919407678742037118753557189060789472850383717395489138485852854848254781398264644430217204655920280919230385451674420882802116258454028559551048233387151918244403235568057942741686959764558118130595404821477613312604069398447601924826537785395538876593520650864554107515296329091106882563375635920387513042097439359679807579073655890899167559979861276352625267462316069905356013111060558284925989844146838148285914071492003271024115859438675522129912767046529058778348639957634736706414444842530433546730528508226357125701730715013117816431901259107521357052350225908265264039304298539943217693680352582342596195646082201666171033551535555085212236330925161616354517557511537139720810671483044241401985177140666235165879279792516916615754470426239021567914635487711913705699552105240534478066270169456573151819670595625153684168413265106464786156106180529599189036980769892719091903476534651439661428901026866987960443480897657383172545373290911883913610229162044370154782617555358302338150041990863933151523620751423925770148052684967120246239058564483912564102113195914161776696311978134955638935429591746643364653827246635685443507975706271343402764044733510677246868619762781452724549154938874187816455719626368158606124986168636669294392265963754074431758561661644931078811053980237524963150304647790325549395165964020773409363663704973015905204216497729935638015277071639303634105375218375624752540130835556181197811187761297396843733918190754209644322621582420997824810892240682198436366551076080022288102750685295703135972644759504359098234780727850934273391149415713040036473813528146124779040335920721623078774449881183509091042193987770487949842416535489570997455076332022054337178744119111854278142549966708538491132559844751226257625459736160695249488486631321043385214759581534063595794247641212907107765873753297605705108092121330834009549206756358271606622669500030431701957232049152674755262177325909838756744219473088295184170836729915307295992107015571744801650013324893266165898589711539830612123151640280766468600347380869860009259258195271297859072198161386869754754622197122613951796616862688058554558211674181295725002002929570246820393969097717193092372377791774173169854865318341438669726868180374498475802796159694009726743369999563099423054009666907727432210584319313886568998404148338316506804007392526482242916526287564214494398328441767871537723622544830305444586199802762472690607857705940192196785852245628097352437193345709508481316482265505609957181891998210626432023809925608249410664493798567130438990151971001297232315500142293948904936785610407671277375080340331149696913424537796284480118351047093934898026123024429246514835829901902380722654581366966664557806165157898779858544043270096656189917794349608640570332391311532454417571322425118872527144524188065527068006562188798095045318874105391424575712381142625427905750527631991075755628785090454427016276791018812779515817378886731713788058909036553017789512704807341312161286344797020836357932553724978984640401086116281183856960076524839180689116954390428926181286147886121618477326607808403461892461074875357440368243604821086412620694065455985650749614752843756037496627762534387481628516076868840692531569288823108061942014626924599046035836210119102914447200628501904289538311234026791685612792316341315997843893184645803932435663223053461823187388151542681004923046208779050226159614041059284285744475185584644553669928451284686147367222373254891057637744676431921247760326017280053933204066667124734922976154202105794275066518675913982055328715693598722322068140274892380979113790890234111119120737415163642779630039104738028291262046239335790269803518370232110485731747528983053787717876478861889902851573564274719787072023545242545118960395284150849723414917080705469528896579351403984586101599839491489154776225873504015203219754249315472084547060316518890495829325590811743354501584855103984836869172000912759511479821761008824664456954192645484255066253514826922591589853729733536872465189799542855630357674580302844178541725467390029925367107301851559827032780754964880810693776958228441591910089327084558259497244122733682145165186293869642445689915647396127923036244203671986480527706708973596934473735356331226696897403712627722268112990259564250210826463953841137554949138244312586588600814950829405729897211156923231943206913631722665491842837877978829252104123829669329094858388750330363628362183832923216205837128349840116033809088418744850672850504086263526617999000313541037981607960009774847969311095665017808795729478585667252760352723781502001276764750983019679509825496784619712688343809727219712190778163076780887366753496848327087353031405722829482151197397859736631868068859054714516281043780087280343804876413129338845710976536096649979884881379511992243725709837299721165829854007295375663473033391852813939832288608028994973061968310818812687948988497164649901578179130303717744383732705712331001339888996650748503621381077213492638990424518943710057158040034805967144218240224614748311879205635144110645187152587262378554227320154664617539735308663763706475612395087488827308018350442972825731170694931827196884740815750783894743392443073925349102643248483457599282897552250654272451896710816973976842289531507684566134392690569450719805315538029613825343804112943050477348711992334361029853427977909119312011846505828460344991544408508989442498751017663774096596090102819767933564924599243190818752801998747544049683790697358657420423767071872584939281132427371686506403658328617341881178643121408796748986323916347745657727845990364307365171790773345026530030665108777919767103370464104026333540326869325137379316458400577712397913528766462468324247078737051542970927387809051163564923053443831597326967612334091967709823104045077946101750030065971645078736878130128948744815179250994289881230397942326511592570197009689680825875791627446747522798999215475866994416439914742268128177191951146609397278095949715420296080619153427638151156593169647010722992580776486463728630908742952611732213428148613069789067116831179673551361973423050556940081349329765598385949000942844963426038585653876329536124728826709140943097208014903518398557405671029587076120766762883129270354318964417338288054839822799854092247938199998048829962078612786817403820187700418598416553458010653192007613355769280761623676961284938472265620560670296707292876582271739288470630868803263789559186594968057177641845718143043297239431327267305680620063179781535426362022146487585588801160357248178424330277803067929625783091181355535984286302953392569985026717139169713659944623042279659984532232461570710492137408364183734570633509219049177104615116083234114679866985629448332761733958412226978281799191075594989644902623315771362249563047101263562573754682918708808011143523043984394901404734364397198126655279469385421869674482728701311576240862571992299981658127114250542256065619970338133372423922108819284444716314974669365623535481494068707731216744074171833363397023471005550479401347788736880976635164668644987253656949697858798122169095213448820786900423633987212143356565665187763946573995327681142903699876035455599778689622326214976937438064475786872236849522860731019681164679940401161179243875172555901403687215904041826416230687256155435676505093241811276812540955086786661016236904458824705858091384439499094904515358092982230416264455680888163929003995969018216634183072354469596026601257250790038242260236244519708641860424825688877490903893852855547138798834762890974107938547301547004048325286947434390109119825438583702652241802089893795457409898950860804391753683003457359052173869841560969295748463714871519546929072390062804602036378674414407280173648875876489343617370412231569896666633384095673885723530213926087321571486664281422887237339325509462938496357040689582776386162899257463743351478306588088098290864133227230449729998975373570270040354486713358748798356971200019153954511048682632406914428198481088163889284788302721432937509673404045594657543474536207212665006179584826044587499586497511687380531961645754530771586137590437274345067089229943951998232738213927948798500906049374213675546452424660308188446037875172685271545922738460170659595965935682013033626522654337795099350047901019845255160134167683366255385341845329290397003591870727698017717525487225434407247298019558871272117148351969492142731162302490523952210930630984768741890238916401472087203142146811630469574853975704088192325431900846572962519942229781863600845781794833767706766340844589996127207493548695355449264391708797728202952102287654237885436146592851939233463462119689023244529721191139154777739075513470638585133751486611913371229647581707621214445062330189370102620756087942878165762746462320812624027746582626623330516314721102695042219893270926947942656267064799902434296314204102825526136640593825353353300482903834095286562486792981638751735530389679817857457403413393272924474262039583600276130671406791935019020740265283943650732186808810354746907976361158344966849135675048806835726827419037960445787436376336622748873277814238957705228219548081557735260246475204046450115426236343020598695536405427759015068725012625577336149730615935440272804609406259123377953248591902077815438348389671748708393396108520182288193085736278858388556357588834916640849811996436983415310286230049378153248109725161224951307915702745768848354060458686743288746130121197728021007768807717127947055869016515657613222692301698806370539569169947214833589444291459054448220724301128113266473072746121483822182299738061511644497576710884204348160489388139877824089659547085187246733519003732010050600674527454716503726892563392249955630196891981636563244810900211323884132799321159183650386323791717442510681796799455280431386566996423191853624601922117059585169025677787037546221070250213830448049962359838118316079917054973424430920166920697711965249504024495090643954033057081525080479854353023835862791147052704141329974073127619995311256047410224822854971645412679039411436013130400054058481532485953204991206778934131061061502414108982600506865946765217801260279552675416735707349300714330924268055557828731339679487218020072221290599073965624849810061734882569942083025359805730061887700991678090653239861251856442917744445219384696649559549899477643228665859273395122332941605436810481479145719453387238022962331946725986837600240139198003254839969783645204568780065544947459135670842738750355795044023474968239261462854464302028864827214455305459070358366599244188681301562583762861500207861346827948642090195666387442696711311774062194102739032443857745706476979668303256201634999573977919141032499513136614662292642491159246981186586238595115120520811002564626862715377192685939469750018712840321413989021181126717338473887643810320791253073950453728619521945447512930180923332086994676665159522568506725497142188240381631467136086609157375893669158850192566237046452653715086674653674100754766133656677151653297106082663422240638435546393281938319827610881900301559903547046084399829685691497283673285682435950444228361971770959965099790978213897709904465182459042458415999445728269514416827873166439709377037366045738900762117517955414927279487826193831093238914667402457341648798367278274415970569143374122387483227901235745620273973643763454598806491943112203333121780392161138530193126094487487041012116341178102501806929906227853294490184826602695230577322577434064991601892445443806936923932469839231538400298580243586893894368143065771681564619299074061604165422229460603443942917065238079502798748060978757966946244209773033048018394725754999026020137419776451029235979658385020119822118242449783294493232930248552145931183645544455641142416355984685466692497303903399274081762987897075036947706404386711674294170472527411910075222190664509089735879239310048992412823968554487666510192058351837251137291149062019402683607848486169254222266204759525617107545903011109505156507944742431709640755288413080334355339583987619423803711375774536707666172052872667684537416858951340568052180107083588214741520640639695871305873114367447733302062470442395756643239171206080807729077179045775701619482742173639547509535299484905912913411161187500662215680711460086546645231337647099917909697062961796425787775896758479988776927108117611625972306394273133440112137728939047892632617897290655249771275869227492824346296667347453321400822484189214885419524343391956452171418069753683684833889368960003211798734839162439107043062467698715809726344552373821270902495178083531808329747053684018417279717177017840373951131408101268418802744439907667289189888369892740484130039288027350980247540799803775429402994568895709197183148528035848656691526847190761105176200960815298694543484453658349793263335695124772625057261828728181068547951326028718642691020666290895905501170733727705850930833165486458504146589053701742817656477479183939881864650916326080156197553787269262148981650923481267927770938273612538312815640990941208414098593355128817135634792665084689530222217061849845980673786763995570865153153621586597131346215730286081157627508408713805486740105117324607191680113277773869911601609116274120160404602552137453246753412207018903844785952351994967392375817510057194935958845464477723469560696725338127557408643970731023157397488903668842265610671793502959794712884646349876033006935825944306798620946599730694530637644063500960487059525772802872939132499769619999399791281499925403999233491142542770340586328690459478405408907758964607102599142087265081769405018907768620884121001793201808519607609518687660014332252069947859415501655745943909306117890966336217854129636578976017677595199514511661934459430572378361656431612476170411473835232098709028924328622636839595537632877568298887178047798609957377310562589329420098036819522788875910253757978617054179987982775734325257599336646792102892735789339022030047067950595661780022481784770603114587361987112880006736049499392701250064971103168699490938609779939453123790397775577423760756632364228518821713208061147146599840681579929078208741567226258871792117549985553612657635647704569245536691648337557959560093352208861212528149992816150437464879079082750477937309900678021918509170297892618412854374336702185986729162411301749789449906194764522196486031201849200506956255784001206725915228385061021635959049110540334693639162066096309977855797105488177374884971421886873616576519917545559993451970167148529350947289773240152065188996638299834100929636153468267527650708979598142598479163261084861652422716184581501657030633939120599668256330002196846435477144305693904583046877723590588280650802607567151350297080307932469240325813559713152092634493404292096116186435299639049078282772139013229118752153573249975218212074324628029589613515699683009722761720322395465969252183163889813002293933173361431405379525616517020908914634566116248375507250632180267881099988766363309590177316938101295733936295261612671197900946278100739435749842018183904656690207713874376121233032229556358851813804055765814329329838330637837641545119800147557966835935916452576705853886498907299995896225041994997334383425406605651053576482010747238905568905245296480441598102785949185808046995398403579319491420062019077366549031566201102844550723750134793382170843111850468192054430317632475183082350379843787333714346721202584372301951525832918388393509876071797940486865416343491479597123379640806419000262325231006133420321178587190099873997584186142605645685802242292963679899523204997218146693902128624707071552328427635427015850933335760368983777378435771804214287229475765987401975549855856950903449690011230440843439735199801848894387775961631388219684145885146528144953722257728384745132414118475932929261002089165310776935884514124377066726101299746735215335926001175190748361657638536447822238002091797483849023418778670944807469286675380485069084882560625036943029709498905498433376722503287595226434160075905384587725734005914951298985529252243916282438274024650794755552674737226797997833544686816823472524418639235846080042601337837732186837741110173999336982191870080410454821769095598715351245335382413652027926430499027885541943497381962680687127341322224694709913314604183391859588664113690553896162383344454854651632792522157725138042738651548704016517587928041577180558702596639070443939153328259086190291561188571719361459487068291322410922644573604770768574273026583595690398646468423709626614380212694310691802850900038966385033208215557076328421715516366685575309452880223733723357653491274880420146218884092135540837467968248971971636038390065641320789039734953089756434680844277247198668878139723298313161371267094950409948969931519277596339568967854406943399868147718579364864758823501438667059510665613383827945259208627540718844071912654240070184130232825160148008204104756006396954179634934780164519867743450243163451166287678352512050185240065081287714392498732542511876810899730283989607674005874967389413085852466532036425193385028923112666286254079495490683638346326205552672697541240474912124230946202637684882736562259560401360039671138673507320799429800332325070229903619956561205562576443063610233451296595474413396938323710877861163366898662776088017115172497154190364375254561040095434074234835210679132722884582589037135145548532198887932570965196873096531791266470850669423375410112866141013346102618505390916262416977405654224000191757778084645937603396578994754181849604444723031318151599214979431995253027013787707204584662570545750279894192351121345950926720747241793925899794592573413981352570521083271394276193627093739495341038091120078274916720002032660989901524134206866558752902308797064499005220212122394899068703187549524348730496822953906101847438592686591745880405031843821970273596190654793195825566366003339967053102345617062793715459458101869037046861448804871128815952553117440046198861269377307274354605803101836571328738665863005651293143401812192190190287768627223459980878067435268580865718239068003038270002856354671409483888316268468885927055442767050205214826813282458945301469087898520544083084735928926107730909153743745599165144243442449680877750318799489811113867435351802497164334146624226624602845825952072477360335529822939779460847038527444105863717522662104347399027960759790769783958262777705925633584641911964097790582568776971131771101916577963746652880502707783045202866479049121311863096349027194831191166150746364643652739570821224853914157348340900779200973275039044028510715012638315010974813771189621889501225964714347025060520687533121023401109418679781260605483512391269707848107317110094248198962573902598713829886797838529293216559468250849195545058986325234589570173706112317955201325499318106683722812993785845904016804169244172095084674622503800023944284400489944141507850879096284020936079843131454678223514108802568239652252451830951595639571025769277567901885566584066293080111675600402598161165181834928710240012737166562020232471970982666458426181965659856077796783344285108350876410398997610435935018992252997222350712392334351209233709863283344101266791504507241173800967555295094887710525133035315171691072921216417460507828902019423159560181223687735424632710706944832000431509590979003106515543643970017592399770720566010567543225046126011728526940454031581247464708608180073918732610695657473894576497793469443749501069041536496060970884310378507222197027268029945996312799529431233115580189088090469738313397445817363341431129916013951360840976353645361983681639690954533226893527318707105825282296099736744983147727533471724997225749382321341915289701194945753716048261913940261576072839378424326391696032956174024556850605757799893314978025033506586451036239607810682522301763473814584478004248958934802897408700616092916418206204412388195632146128313178832578951757719107413840923800729131326160421258429017747932354170247076344682207149244871338249264558845029213736191749685745674842775187386698329647069755778703291743093614696045598560221538868458556080950625782616445559532615047287051576614281244801407130767860239890159297123652035031783813549279556821435673647749256751063617979792309872362107273834696480833050004864326217400658526366209032185405045045124492835936509795482218769005821098952817842518618211285400349255343838356637834406488169177050703515648710334485435505948256515043160544711992109715767777279104445171604911672197994466994760174480801486860142212949641149680705034614510639044741317260238746586556028337936180443218396503036890562699808754128346084703454569331479866021753396830800056620869544019976573361209984423318731589860213227360278885423675167292591575133111765639933822810140395937308510897917292637844992340312041742777402017294715642328120791129311123774766463596892720916818307319874189112860117909368665754595959292991210357530987390711134601111969458997122450459248674717828294369235666838831760892592533835372483675711744760544234654647060603386386608274890955945169170658764470428465461779762176967875419765337692691370871084086147140371668142441016508585009896284173374685208400935535221764078126531100534767354659900741560844135706917198729465632498392060166321780036049912668200673740223595505113515099166443823106413937578669257536663098435881101086021559240420752664285883105098340308732809879996672775480892627526841159893893856457770366578707995362894665975926808530528099787159934812956566804639850571165089445138515402211556864422252076609735047150157419561027426271965365837765576417948795369724334734679877463413049307515320587400891663343975863528298774474062074742557327388806246653166475535497966662816331341623738084830011726516359655476332323854679684536259660499098057456744135920454382670504986260416458265074702684157908491065513896866335374770523966185138837377415929623055245014703252600720467733579180136364610903221659426001223733828841427827088824806992167506569071228003314169146323337997172179704009868125318496535480498531793150511415662285437193586797007023777518369039955823371678727100273279049029494087315935663335507226181657001173101922774361397923740024648710871896309419730741724147525607871600541564281821990509079241202298075440700631284325861586767269533880730163826997038889352811228687900603008780288629906927977759246342836553655336315134397644742972150333692700018788690706066816025186745398349144274080355506326660651435004203101097100113121093883582455219318263095833387034807867211831300657955491324967241059404383342647753540306090097101170922775746541958668836801174438430420730115801397008685579935268250502304503167684641464406292263720309961937995620101168297518811744554801659908078311359906558093379805470393904682733149683628806738397341309017617071913470122848985998925601378934907230706809570974468979742704550679180282330395997879560008442977831549170138542301405123602173931305252895883127357184713017882683553679227029526668585617959058409260313319698004332054124333270300926549683202491828669288895256458201156728585492547757123306133944614139923745722016445422159810132114820530410069117863870824480233813119341177080610724052056474853427035829885580546928043048714816210971535761401038991252775157940118219385241089760064515300421104048103259062519793491284373011753786058917553440015745801150407169927120254169970537729857218564648439150739468884728513840696354675118957187715284905080873832884928924524692048067125433392830100246191096199620612851665036545235805078375839146410520173348382687266435233738747841569617926346909039955290900370448086230786189603328985599102702284513114089705742727175072406789417156716662089927436894813973486605799903242852052203087427995668611495662049904816759781277162193790403454487350741309699093815272862065448067983794308063163539384452085325567755561229987365457884009869983950907351597928600015058001765265028267534629760487161625512879842675883344130012067691576544881759001831750337616950936444440835185386065417066515894148925465433696783558699020275549045943349121548834435095713800243489565829492979282296027654159730598298912891554390753047973121958829009087067368833079087527549162509606176002729872424321253571245155774646492819808871997722303363256764628850113061275068178093648541395110193550376784927687518857378528417741711071517563081864221258400035487086053622848022254682829842266265241721522091246670210855080890391465626326708523477081699946740116568284450308755664874168585240348892985672131103587128907342407948606332238476286722417107875661639869863700850697634256132821813082474046708701035327914330462483461287594338970610430632087594231952073974117658174809779141367037479445448393050174891864261220421669856115885101402988274789870529100379074286300219164514140270547961104975179078943514991394835264028305107895884608161831839753238166290250758837930449846687249311511842450607003160902891305793680527296173664243346650691363019394353361497260563007392822306032548154207515333179098193279278389954302173888014311707152600308538057960945555519299341814207885405983689136253314013605240317018791104772298156439331475829087592983922163583317751402244211945066538122212624421561529111638497492750792508883305093444087649302722310697685457473823626850078078372424387726633216730771603930226805809706474241099648602385675830236215410009341098672446949258118534182310536752539662070581037250596434020723312205311657604314527017287727770245478257846814173794525943680941886453268572575349999485788802480170860514620472866309594768984804659363436558959374494368286585228425781830064978544297178205360846302867884594597433721174935360866679524710569249028425701612443516500200072343293543945856611461324882596601465803108881787428441013617535758251790106608707379568996444982430619457209142187259221864608821590229171485404676128640252926652673747774453067651431502698025793981493808892830844447303874718928247123834290660041742115358187491846181196714048666444013328759534255728435869601622184528030785775605049348100578558517058861434743587437020758389428136109067495707185127411130829199373266839219646644453270561327757310797122046998255134980208323449799945761743177233753132513823245342006276679411186327486576481068449160229471507619219076178328595822888149128173125500601303862612915812208009196790072227957679984093383610695008483056845118138216625353794806266042043509691294633150836320626939445555198297675795797982795419425676723689466472003126865897922566340377838985384216017843834930449742639529402586152445758737173091078329079449228023497293238211938420990728994815282557894764934496011692761837566966598302800836220211034025337997682597781899410957837245831839353771134715039588114880680935219303453070955769714453693783790005029328226675973620104929231390275612207804742522805430409798390701862415975064729517931696947905944394600928559150663759548548871449146240663305932198761068005612514021578999682669166363442827128204845925144698150619058784830226772331452047466405067757538839764749260176014451355897724644527552594612685256560470615414808210409549170503891295785036272659847065859902129438327927466457565645545443920581947000752045601657293813129983512569944396267568140757046107588604591998925062522974987882271007719460996107836372637589433613947352343469231033371798252620254017434388080799841536180036557255140432439969806464655938710191405534353554595786148681207011960240374454651670287002231755115109636415233275806030530632938984209861720446085214367741619621854794877546130272955998783396251281010838675661974167863285502556154110789004115339542211003213238538161027947793541795987155883570209036964113273105073834666583139302253323323627973501074141561036253744065595247646141182385365904579129728785618710472419425102682999271606289259796907306458895295003455728977356641155699799299398672904094640904464887546379119718250212468589894809647057393572491211040896077886292676538033204730249069014930171307997770246134133949911971036537643733615418751289146296283588645582971344989222229099704348162461227487329003158800913299472200830354571357377869040111856535068788270183699477741766775532730205787097962892974838998619238128117484762128150501131531422737592790232134033356627436207540755188629187926762836261689054517083208531656273616663060543867916511814277758822668596201761068533572348344628838673508131375190195500663072893552395786666167208657400847268980937659658694592542523108241802608818441403583397601128323455425669443345002812498507919813839402929876146280764723709514224386880032776195702786518321043475023927495649598560857943884802709533851793428725342599468243787539522369375822863952808549067203709082102282940958004719651240375760880400962647640955285805424749002372168028540507927006672511152878572793547977237844934349657700526111371304500588892542830245528532202755371758208854954022162368043331717492160562397441347613301641002322937323851221861195179115882672730636158357429336707422987383789941379888511929870217267563653311090268084365074337467620335138886550214606010914961262599808470874910140326461700635275055558094538036496370137769646952071178132747347923988324506100796916596096257397056018337900696004268265732647996323724474065043617815758627546337924795174953476779442877456573641740894593640449990487867229613575370721641962211475717713068163150874486457887860636378750563294933772409700634518215767250442567958750390919703318902136591176471842800932856678029899252821264081891834031223345286398698551672547476707705823412753071746064224348013921521843673716008075015296304009940934271773942924973185951953654913797029619030855444250087975391984364142387641504842544225013991137729918840449049879921246794055855558203271171353853493059109250507319347139512149450363668386761107877650842866860240833383920779659602446360360714473827376465982371222983172955134985966344997279125178118169516756980475663447726076799231144633914923123841713888639139891072243615161802065532359758415153963097802973327122845453851939268743151184862226548299068105272053335145913491539303399954383322449405272952843999473532808330653126355699144670843201693315521582049458991371969837698777199205904350945594719573880489980089845819698290023415469523316162924874317547074794722406372853456841144723126278119146475718812194414894030991243515240295260030842175061072557172647048975824051786007817211782389833700166102196730772390940168923175908900737151277885820237007615675372425194759915885357414474120437782996670468733777235608209838901570969633736307917509943763581988561527084592518371606343316669510274234839195915618754620516982494719256404070683705424780196142931156949297933357707704874103069754434276936044495672816716612311605408965665789384456856328895981789234812011740537843625402853948220369316012601507226715181299937085590788136495254320349551644619628308818087922008144227895406663232271092289928776916537082730591649222098493389001937818064873002855313157088317798853191764128624019103415656404478461573396722816469636296313138488015716284059334304373311848564827054048585913107936631945591477620133519391421966003343936589348386710752008177052984668164629696813517273417248884763159967767448252243396414964616479821411376133757503805703869821063667852449571109563583387876637119860107593451497913236276384017032569787764657951414124601780059093449237032049852489330702161433332448796839595640583779290904127965886690443515632584833206260715446970477157144792208673320312417494707105296485996926363732313794925553908765884058551764225222018730351018776606276770578467327121772296809973549392011240124498410178572759984327703950145350180739294556027136814530162141743742800642162791731782176161466707927553151523846188514588857635755582736106108632103605571527144348428222165775566201384395082548500655431939876846272348551308454581647799015508253365813383674028600559951798892592721697826164995318971262931551205089293300102483205932783635864282968746416803720201954905261320731518632334139977201950471994821619749358628342110750174247999667396809945286877466347685150980502340725964167060817937838641121179797343870971312953101985436451906132025115197380643661401548282883280800404155685326772252308043614525472522526759881706479984151349983236269093070976178575479296621017094066399355556009646374541721328926822334973768895824159746922688400266226979598987993844884550620684560964523040390241752675538007582740532786764826833338413884775075954238268395013951661857278671645932234660733629807213561948020186858600685288939003943139316469211442437116842699331395266229629881981109664039546048978234913601190752251686855278228136002733053691631085767120722435687655994342276227670813254937462993298993643034278085425315822639667407579945096214396822487178176969050637559129887560767166865262745337097299732989041438784534636682836360055026733017388494552822997685562934966824321259715225799257546484652450899262526293170648155096367069671058091551925857624419386470422729996390685886053984668397951287970567207378047697326962983971285766653384442360168362886350296498253802587834202557212304075591073019223366704518821193880107689915868573753489792318449553925466529400829557710090969930745144573169305181000165629973410281037803331597084367456760836455184704591116437592707475678600105058875302125625322323860266339412627355670169505391536136589662397872813266109924093853700254796034802714869541966285397145969542136727119991974769512775405324062697376654025652240976940679776835932561376361899179057383361202339364657224095322562822451007533569652143958815854459880042623877335398416919814847416553017990673604569923691207558256181149930269712426271233693467838457356760381914472810257016223719475779106588611006622337760367420504221854733344420718659441087628275109349044773581486888465804036738091933828655210106233804114957140713310216015482901863052541955588434275737590087558085072810917148656074506484942461064731921043185403704256477739035924236980524753201757993450244903323230394729744453438066338447609131844444337317767648310163089338018535048157618802137896661831448037334789255702004297174030672734903711429991024126786627858170570131825975678020932024815917884174056835886530500513252083191470031074723212917139316310691686187210983465586907686742556003652028126040808284346429492381551336081785448928968114270001346721975271473686272283574793487707346088901634254434066613647670248474173149264366446512480431308679381154481145290667225509977371583164740446630720131119822815909139038319656469894663842875166600478662066002073857485313605738191456608419364113482716922721987505352565590360902068728467013377711199355774038968710886379003950482954685795318096366000087145409868470093744507930260015468943120308684998349633497109641646025969893357148413945656932175080882381525084393385750487981307730932959385129177966491723483556276083079645423120496440001283551416903106450561976112896076917854545101131387505270541705984214451512269227818623210424003952392702953581122282967792832456897449750300033516813737092686366400425488340842989916481725133745572752549836009215975287437944218454616077727768225879967442813342859136049546384725968782791725729868497465792818484612386345686728771766746984126558468567228423104422639055609408231230945146657709962329949018668341418454142114607112547696940454704928664005198071136060992303764862487508852876854009545704736775446535757828324555073468396330740350500553890397117090838954974287471756895505718660852753158791680183151963850330773020505778408774388448265965059916998706671638620668633606473389976363251271066626880637071389762009065860712610776232429875089318207300780746804567046677784759600527353748697383910637327605902589967934840012461901763530724666280538733336826636175835516432396901230129119288128328754434169852716528926235279969054213899639597119623546108985167545316877559971660326228758804168992054737345949200020165723302462023663790586357284063923312768416995319189467487805085630686737470057663981312723071774053576606681495575162871955908257505605759311678172646661516768585972405335413016067900020146181448252704690552733498426615013922617192661054654140765508277293033306391342808885420883338692115373114496098106416672252653082127738890367502673553377524840893735848573582688910679455366790265777206156563769739823988393019064228680012232406295987774218484686869542390698433046120592365716949111205809309164140233955699804546917158556139190940269110007527299934582491758861089575285896380290559748181473034244768948930646709789483144569633622281476258995532245504557985383799201972475394753786815823763024266044575353273411906720564194536296720053154758187931506835350681850261911696508630377240553849558967484978459637895842570946493174518138821531920000614905555474780386446875597793026789860949924180574669319620225610342478182554972120497234561404277581380123343650531804877180988295454946136760193882204146328661199944834922897649254303998438111091453318409428294354180866636876937085572002661555000524756985383571823059604983384977876206355563721405138338264420191615075295770488492121894512648800770307721927643466562305763307028754512767462392386571620961942583296828650578615342708728068395374514227396418949031263911388705488955635678519986050939462703914257043336433516004996863969311228667974059470769297291193895390045214448613794419430127236380168065739584929145037930784933931086714033213880940184589144126821959991874184756644516784671366921160478876468088435778626406283208964782676490683357079515698243218796078296642750036109833032887408850405655265146526157403855934595698302697229656579855581688696356423839747811914114834639424971735116324706168403864401263138577719229829411099108671107816752206401835192421940835087986411335298043322782930371127641664970453877917080762700619321826825846872302733140612667185518372979366470119509856674000579305291766814802546560357246001037870822206666669274631454617579971737528060446813910357437133836201109318817756644454434896545177712773115135901517487668321581107351619495879202048585711197381936658056919624090647475095882856557315945360560083882077782792292636293708748495415338204786392484949169765841511744070710504674303622187655473198451187354554287594164720200318189166167534716633026306502891989060113040787888336667587209886464213800289947141099357909620433826281611470636608219439649162424447066130243480478937074760521701732120975205021277339853093138048547284496406433950669513222854998903191194036533632168462885417378657749508678082810925626950059936000054097791831170572383668829948706139413866681259180659075900110196309050265743191892497433554090846355796602130670924757536360345378310960800075731576200681454316385021794432899897202290976113657111275727651202846148356570583324006255609090095768068929035517530600800129010451608902748022015958649262988146449237755279052558021277889533243031372201893551175316713119987366037293037107730007012670088176571000793211304380422306687602868912103523063758301115190303896127612547111498402349671167200359431910456484332173267467551810888376820938220405622612456246640192180553515893161761846873329625365255823278664635078792570841850730827186584675606493896737159817434191123141370061635216409723779323950521529113016688742100081183159733317426492596805109098938595893379755406921883221042004485032718483980455509319633181190169692051283426038168588426643165180366575508167335861878140715150885805738067926131575230174563572262459630395468213707214817771005962882063681425072294453464917952602023693260209914283467991271064553168857852258828921666016773505509624616409452288295720200428202951568393684295974464232102904535739342170824254274297646888604397342318522916305192657087578403776770256787523447080236372968841779841653451741759101855437921486053395695083551989842576701568479532283739183546537549081611401825243833248242108257757288831010812985058557538204847473166581357264088727028292022679374733360741183750205924291155294838114326862905615574332376919494976153943941647810721179743038977920783123236195455212622806585992252044950996821851477170027784418287479369376262043340932073380223804140961132494269239157651613510629837517324394833477327463196149288563444437012395355253602391323778689931569817504458050335559968311614415831542689017388945333119775161487634446561356231508030601459678168833663042655638062803945622071382826400941517762928393856455454810855094937503766376298486315738618153642366213207855237561673850982848531789409169508370905928788180726982725116879118840063319188133382639298274797419307088777006194841489921638207079335495799388156397262446631741528868209511683643761882658263760934836973385649225809078144201625955862528821308631034155006499664411849067938031167804393050749254365158860696940800229894888113555306899332541997426718524068203077399970466882937554199373149451629673576676966007616581653417020071789326780938090894919971280034014243365622939940246993096530684229386423476906877026458527279408339754319662369637817829921432514922834657700076438927727934839465756956807738999105121021303031108042653256623722954311302470565217940244880916523644920986782764066105491638407269947834246313715954293022133477211166981692870515027311230484349241653653105712028745720558805092623646453464890443733793287819839530686849405866877947744254620167421073264951073953650631460835226525934343091275361601252301585429226309878751639694709605290120838135955747858746478451034544972122296322823061681367095014395403349143969989838974939850088305031957836081909734214009509903326738750264775481292019900837456957027551601131450173493384055030618342620947329771669628330395689574599361683285001166703756199411893595669282013452111488021410086964365151528090704213570017950171555993494060473007656307499309449122157586092983549394611566440149649919002397708596851307711244921963598632197720167106538999314464404857172908241901010281620578849102255121835356080209552999954447260458114573279380241406602805302984210583920431720015096973515128717073144921706575108283128586589729877932853519621915179039648475602020538315625162999815039536493585980370850848613109418771453532110568019214025494945736235653915661507581991511570186679037116216865060043887674544129483387424545371917275695380538407379523381859260533155965106364940595453193422115958148229518829611880051965529864098278174934506524917207501644797813402562711833638351758039359133583023575159634191688006285547197403871603634190460057440531821356179063162546301719091466401187307539821695800963011445225454432829074362437430016273620305252038442988827148025124054755890971962383641219696202430697254530843350544796967307137864839036699317234545678044816852461627874187886887821248619948774817376296670328881350595162244748950511912295312279007568362159751094898954256439316850182377036741469831773651107875580995117069288570615930172914352964026265204231581943993910679565420934390292758817062515604925970278636621722596163532195707028359254814466798191424919844869949850448458257179728586339862429743812815626361919063701449289169976578728759940419012757420873690236030111647865035824523817251862519507801500490968482705141324576544798778766426285716876932982375397846151735719194115323963773707515844492989727620897481964616740485964441084482862511088094657970573085617483709559320322224708824136129598153062236733856564387252280992481153025904260095369653307007633227023839063210959952579828213859426720988105292129306465468372473379882243232521342433162960179396497358000870553770510490054869099707254876635923747908430662011493800290033568924018047063685401549655223620367369870740535057371539796190655073943593366597483731002309280552961205092258786290958864113388634774221875204212652328473437162622804856614412943320483515351467832278208967090053779303556111309440023287590335613382725502505358323480814517826881068113211233603648413191583649150235377227514080999389910982497521292895693856427583874996433159798099716337110631002025745143515877059141063864350297542234103171891985183403630021457281857573847600273590052577965297828946157141451077110004657844411490189358233239090793563278541962057337924789695272823629435017642465936770016192076323455122118477542357688381865876673737244094520362702073621668062621391161599843636367872315339918581146337687229639175637543883418804364524924483435571625433381046238114002937391616766422297584127568126124770988905921015164244073111938035060112034342253856898581838672770019282915821359599147046794426223766726640371492266636993161790766561144413249098890879747104222671005111202098889186943821291222510551726364807327025584809247416205764372460503589390390804703091373222238837664258201995970739686614436910416249565989593837155188506640160778145777651612354922874653374735767783375548486246846963923820153856458411994456613549716329107445791123591648175236476171360201845324332950361897772448385103919539889095291194245192333052118078886796708524482275107914685741997068465793065792818611118382607431942561250277145707091240080186560879049601609455683263960829686588575849226652453167364411515487054077296354717729210758866949607525268690261461044202450892257922239301302725106997327948396239565360981774810286665768827337824474817588658367773571301878135272880492157115596049312962083562533900740246039269633749570808268109743886115927975803946068336938642205123561783307609737157513489474748805282093504689356052236088740054750020203261959969998790276168352051509609801365028453546948700280086054031102741758119355085097316425043644809334771533802879174924416970807977565287229884004717920755524346552508475324258804951860420107091994474038538226323434981061293214942177460907801704074811837781558579624965621850056373404789683939542320547469663661924367430073314412763593290347409425500056996429277106508951875796267245972761393732512135805723218977382556998643172807486500334867010433736006276149202482691188010882515211291275350362236354387173497302060832624610253840636453343537630495834110774857718241242310977334238303399768505649852010850584039730861497751891774646443685714279863713296452611089430950736645121567859158137273519465180249514147522065777417046169779057348651206724696049875563146629161990157501070123104264713732744850286043976183357345501176629067493821741531630536201801954691633142440936007862692696272025447168683227815121815332563479273363560040456377470549813138023285289274758450264253325233348229329818190291962207133122039493197009415423740344138381780021355850389636804909007718670501909896904496707464828709175434067554494058054462821629336324140037982948598958144118069687154609362357801031957012523075529910735826427364043028706657131699890283836150933889659408600455860720929934100297721863672078511829302153871942565636461249643751244257298149320401777771815029000463144109295500960245833524277476332834240099800292854688694124423439555092798610855594592658653693473362726613660869053349784743925365427583180671507598059772399587852527222616787217494313185031965858991851633802824330055862539132976546789437475382411378652927458119190260162090091643898307044780205257783458143998104234766852520859439419103082671835298181669082401411004626562982035136727074547465179008525810081214248936890943839255451230092003676279556122953076061910647137787510846428794938994806807746955691815610827273301254498398079831213327931757376031548856014355106404600885334688256318242090028686124250848690426123274197391206897556014496472163042711051027576706875034102591962464779309100767389489627738164009968609276170673768923710124195789685708786013326042889058370198570862534849581284236683594846027252026823195605310757553594641177991475742025525224609085497364414256422455354459539025603627045958016528219764252250019710516354664469639590988876558835234686138270296247414081375997575965602881763538748289547766996930982231098474034669386063510544334035907401521114773092051980050982554779021272591122780014848811345625089354111099538815505610271598176682602928841826526258978669542162046510458945409712730280346322812836201530574253020383090248918753448861111663485052313865385278854775290722062203887144987795992534542581717822217518001724880770160289896701131658883861907987952645937304337684320123593465450986220374051212703684081805643742306358342657817453317552699941659307898616895250830839627959506391888423732579222224184671034772379104255606059274318122516623266895068572649337231186940480830763643688923111075952124685772685232097257399502458850222893391611563366771144249669116911829771722196480058955371511562745464081098836770359782552285550374047415116803148459544651770311979384807030330542819411308443960169277259905659337925445247144903384117315229478712173531702939185681615567318155213146407846046007905330716926994362663032797190360427926129695843993335227390922239804791900351074415558588847694687024188177412736682600688017613442926286934386633095563248510438620641368100697908755947054121411935121041712019909616545124071432529243024615862642585186671399458002297753280219331188066411188065889038713562341540815508754300581929455910411118554234105964836515730751374492471610743249351749175420975078604479477075680751091028469541171800862444275289860883368801174378557538399728216970282637563868639911497166696623929620238291449934561035216569874392911613757312676657693988804839870562023303083641914972966299305052434220069634716751449856132904961846456243505625853181240704839453771871588427479308505260451340238458444916383670363771571856946771012906376926177014557439504169476938949116949280902651852310643354205561909223560194100636006594597648738014595598832973178303906594785700685590199322795270431066022101801875022499048144147323225245145134014285272096711211310190951280815028534117333994049296987875591909986400443364433203040529349038352593719958954302118322580242179167925633912829200166279732087424227535890725305161590730941173951894012169040909752527139177442370189888999718649548162721044141575148499207165171905212791618275386671925632662107713256143841130411087569846334874843799945296094210549951494459181672922267343205313544175665432146810074227619614347605323043105360902711054146965160846209587149294229805516168738743875448163384785946899844047081856043240039661027162901415694720498844649283523601207443098526311754038648442985973926443996016043698125838284707405960432645026439875039679335534612651413216960005247932617199571242371749439004752513417624545548774010705592640516958550121828089876683683886673796960679007681090714026713129553826531145568554608748509696316728441603358068337016897018389215883498397994827775373134517738329351851583073942690253460864349324532897009147910022664512638817180443031715034860621053315339250617037348069487285879905556195179330327277218690978793037643395348211235618446836236003515388028740928232601797000980321169004143695797566769278716049831976688841001193458385600096274056821868892412147836924071073431457363237819135272196094686301009364833056457329547598924372571991955803433047132005625583907444167126179424552296462901485208858718493648474784199788725058888989961185898491723869247298341934903989004673670590902967160340539097271792780035750120192504193677810446089477790865313568738055029657866929608493038370870577259343365629125052178801556846710625801852267733723896382328606650067241406385062343985552060703121427182071988315308196958599344504388927222390553089233462955612495949984324787554770365100093708428761814757226014984719928765886711376523480405562532277746402614370451070752299358053154214809402080311092166237338542615024029713860708630346690221473422761168928381191419924908611188837735001983033512938852374447799217208313409107674966315210945495102282819647219743698483193950083572880056564993333003625824204029106792666581905528106909414575676966810623176931472359566317790804724412288849022530478115699013073762883572190559499076218666520032373996547808764801371329360112510584478079881990519969636759790803025149698437600655702805288986447501799746875754283689649513669755900414980183369674680120197580186635925264993483878532132362245274091784481296301176279262122982441921257066658512690689533338037205729252276002443681518883555397368063525647781931328262945173944235701410210518534989059537447278589501102688118653441778100376221231497623951930176497105283664635101913720902606449065057386282519067234518058644790187062287349837176457899682048816224073477555619048955260108898470535352365212983247158965771659684243894549099438576314576236085441361406653097729304380082955361615776877614345616946295629318463461075723198499913085956608908826726138847038036314863867965995748221299922286401203079373972933054523894927883482439616848159451095863992671129760610368448807913263676077985465664420794467225407045765703731888223828540610743418489595246488583602186774927089487676261421978974051236405491473902200868405488611191090708280004178280666297625730495340069721361828466229062630009140261300039185485501998951513280438664171022569116949685073305823920538672385428722313376397180630550111344645543055231751620964381968811435785438501563747810601018867494638881604378093381951010575469612107963005488056173801797545461193312371792508632992364712322654733866729241925249728248000383634665424943825342536982189462394605123317750882080397112466226257878293140552305486261951841556639890856674614726569753285152662711069109221497082847141582918968003173642770147285955749818396354090111479273110284591468782930005189675623942378841945857612771358722919707599535087922996963660655453006558263111315566078820565620305001812637848517979793923092597869786654913639678540943322857716809823937055360452937623210075772345220134611345660846192014966985772624356124668898207478312536829207132634023180291873657840491363867965179025012497872151867822210755845933692988526217353992432238373764470528323190780397073078322000294454884124328353432489715585614264983342375470185532723684365235788921061200601758475084819722060730672105023066718912249886939997761012837260933967128107784867259834680639325624575210678407164273583141570608159646571562595265714486759322835378677589715383167240656798401186071898985629373748925204875636860126675638263187305036071045347696860351825601877097479317733624754623625057665857438849216356952076484227983374065124903720714968757749776754499044279131918085809585072957621029831506720643812679429015400969778760907596685119099843662410890084058105888831947066526081386198551145046449296344432869872361424811181789486347336892574213076337508897279781234660870474251187923529342520442522260768595709016778629690166125132074468885817650897031733263235576051607057294165605682686910577038830974992978867060922070747635819387857635371353408392589516155454919008005815000264392075925948055089400318737464459442347340939100086233070308853717369349758785497121992572545232231527719256287472512305461215552764651524608226053738594527976796626590645882072863192613711524650989105975197257255795062324424767620099895357568397671895547897914590706194097280624631076223651838165580705106243583581947630656920555492976501692497983428197258728141925363829948099217266111277826087530119668407264297988722752488794379061130130068421205146394443656523139715154981361436302071006139692962941639923214828771389066128180696651197994976169063137889653599613340200613861941379395055045942699416452689601813631256820315620761225968463595827464523763392565652056573065968627228916432476815715380725420837551817021506260352925957829517546868351633928647739217846889541998473406162761294295518733837614026601301421561219781941497354072438781930784599483429473657002550093265398318697777511038437371049368945190695584495280293082994741829074783591178915568027284324548697255411782601755791761702896657816666961251419412594243895969480340840739356564947657453157960761601989980946921184704032323327704681057477819952308176207102401819267681742962498962297796408394385933341333057238278405486148146029893597226397414918405840246137541278155648075936914474056619817953655212118831977644562316211889417823704429785337981066882109066183636770028894285108994974966923318404951739179459634569498442246057443569925372588537933938601980194124141673937157425749919694184572707394368784086276410317319067272428819737398120110016779210107311822044277442213723988087445772948198506465359750345373456925667689387483267686389909589327102327473921518756279282953658138126259354706599871038793490921507407721946358918222557389880020012991532450180691016070543319710066685519702204806114776746646444347796162108575041387340728928219978152501911116768897947991559321540501838703685271092592619194234098635766605708402536473187502507409059715439869381914319573070691493461068121412226922944319258971667954591984942420647042316223721168317644705494356825360921653811634162620807535828979646370453472336691299453695846731822626280114988439422931902264856243379496632668811623618687541752664587577420616456317673090044456869889350376510122530315507376089271465333798908586351495779577371123172544852525568412626782232921003731318690179096476699134962256232074429366243874429554647494087360705519557998500756286650896470938153626258054049649047163998378157702032950446435680260717623744081405883521754308472797428649805755479732958678137920647092266787391050970169846430338412538640502624398982539304570815603815273017832268079660980730587724425017843808779085825426685680757689213884936834286374997956931677091662832503989626485336018714608326643685255649674022324388015264280603286974132852251986405911256833254762414539213066608067995775203136601571344657032938734572905112016394078417154296337550973907541219322980769596467423298058971016110832711631469104177443806657984765039703439349614802710792503564718105583648624431870220941800317471704397078649977914152283375601581489806909273161801664804043882983351980465405844422553527099854891234867759981159885534780209110431896168424833270559503432540895885604657708948779656869551169833381890582911604496441856568561185277634987669129875633399002551198463350078458704282128363024517914812605515099974659118785145435818241238385046750333124257853915058025637533097890410489748953888388205963324234170783055505145810856824205027817801277582358092389830753566408825579809656788775781554974866854860405532888883213522606366436037527768301337547913945196918046610569635732303115885182490541457313298966306063360524209113505874670423374617829747409488567952426340878261352888811626093792518351437016417628836599187463302961169316872521794418482566722920335873906506297949674478145129493817973340986408031566797574335754654813165244250107420025350400108411665118278374663026483339730789260674123305563625182004633487898354098575988648717454844737831420075398651161563957798548498824563271471710701005942326533924869480938283768031012232420115792100111397484755330229800346608437743831801852561016857744742465272781233008949293176651588846239817812157672582151416315224745514630765339684560880685874207312807433105882246392507723079180956486470586997521889952004046947372034717921292753883090913890485033007021300024581799971760322731893650357351118669287308784165674330131752428311223670995243326755582874779693288398852511889644340362399668713200912846484869788371685379088935339536484801049821549386609073730803694366062836563645171121047030168137376482877240193977492639243855413464621941202416807965522065872508057020531941357110320432262440635322419818855078433339093347736042469559273921651047739025577138778356875451710059881305736764256698195036296305187283018235906390549789826476007060164233664388506957208410910437327732847479970546194197834565419267366782305494873532811288797646530574641400237936859143756330217884394436761085840827002373860848722834791858107299714278683034954632213729966801233048615059048989477413257174009507920586079057637061574750591985786458328855654873337577597405987829497401432245255475540473411898226830446160888840966637026714246493647456952620376588904028043709623380515220042352032191300331282046357533827657841805155735742315468892811360113773662461009207249054866690247163981391772117691343981590144085694362603733056077165823989841780290868527717579087458521591129954438957937860504548379587372495845321283699036015279434996445957995708700054898570631184169254976440122426848505126835389790992795402508822609646248583076790051742689285609538620553784463260523264082671223149156100463923075489032507366672138284344376429243424272258326585012990433929186337515433280330333341692502056954969297009321793442907950636765991991668403136748675733512617216686610855337555256949961280980211126570971319044711475224840072695404884562012103387527507704063143576814596937726932733063332158108570507218995068796991670121497174761660244470661020300814126235135991904753641053094204242863042569577798997795056121524379917531063072863484020547386692810574735765517687471475231350026449991128575511674463593924047418410433191227687032560615962031609642727078716033669026386201509341292480447651898374130019133887172560351027353680454353602451704312715313047123902720083085975979185019426932240540908802096617779604158811087417986639354138989382490175510875792573339210366619509186906251000181216192408834349369950542310263009555534517014249742619991096187912555442580244552157258987260619679633789103335533942623331788215181648897225793634300658848296719256693961929833731688789592855121287302896785927351176033195003311491148917929036591222616181171346114477237225849805021509146748606338654649973987887858525315293404898811592045466613599872643358657497173517133620213893389267851172079776027202512930697393561259905854311066232375359268156196330124904213426419951826585216493267216533498267396324160320682355455827175839553578179336820209368732675621563409603950315594740785131449587985130548294656796783794814555182074165686624830384701956867293747547577053596763685338600299151787994358561925677814226938272731691369757654808204607182032058109206099466863898030149488123622771248286609346680301368664606396016319931380259651643494032470129586784626965693191273464227268033520058685235393346412377540976960556413802230011835434806415677996315970093607961118113008898496086128501249017984802240265514063126144792977757716824849741207278277962027632708594239067705098807004919288478518082549260553220856371368695186913454513737109669013493917494740481680597477887293965866703600488908921966232120050732203368380431083656495967936187382449830171126144957347350963398221342533211890474754829965511121618579055080616724592663795931812354058294227320954125170798163283380392066815690984479457163946722681854934059213725348326881407702607447898719884137412816923627464278842363777545319000060444798752220064942675819594988057108240011734727662679236676383920068154402701368336991173234126857680767654282373090680773658507487741259720959796961107450393855188728043063298436357896601523528388926813925604507906719277245482841881122796756053455051228390716133080464184836854923745934328781073177243126287397963468504863648206964187208594461281770112608888182516577845512509425320129200748968810874388649997694724102278284406420585963780406053329615312494947184174973341262952028696702222900118287206797949110161911601837484690605506962544492670421581955482467048936432442798138521581657208030635203467949167575123372480496345676566828181439407435533406978448883517312633226289320228131673347624200420328750425181953931308305470175517412900123798763310123338327617544252430637431904948470216295262467353554773129354844245826674860171082976753267456945819302325640246683393464919627233383879155030616484592891748401963167932122566248593433009170781791626072928021254419398232466303993864709350144718449485068615569655905874108387803373930281524033661739907214468694315582244848435562644963055917013984499105779159578557642689389685657806867522710042404280993712671322473634177538749491431980900590686413088150694789337343875444531978535339784707642357107854177675840818657910902023841258991998469487599708656649704764792090369309861006997304868498805615212467309328671293354400720353207634438924739854538293430095983335407219638314062619900202353949557055695984606684302730377976628679381218889127162884663288303376324429947524783344822501528346721594608802619371644035372496082371541227633782820087105377553959358287727732181783876795195099425591716710405590813480332130211243573839211158215061080933143413590074018584008956028937124964136527810859940345927227577487364114665394456774131193811288245713445709299355905091881782323989140684349792122509286340460875615849704864720934895828739580629409582196987596123838103680940318066003851045380251727428361211516989882866428136651787609327408131320574961624527173281605441012216166357462862749784594440321915017573243756351448704993058553855546090545845721555689435119848897945426972356004374636149696152863175688057019411844552007746229205682824262855722478892922925553097666264647989672140595719307643562059936764038648920748841381353457219344111670991908335145925274878219132441154409666363416180681675422975920106300638129308677874846706248756582593648133290754017508331094685017047123190873966427574882463834552489666343808896022785751123457186204118375593738626778661074826709411041215207037490501885572287484800504236576878449211773500297172343694162568058951781122200138748928394552293613803088952951661880185711805444239514585925640865851311237813379016175989806482632400078974899277949794510565167777479938034414912876085061091236875144373111586130710130164195636451637773664645296840387649542743826308320193417388607984898478478126325772224751968230715227315675108486408619082256487594110181017111585058249488069679090417363385533541786273747114566172310205804684448858147658441975372581161552635698767421139611421530128525352140466223076316680561803467598683270541321195586390241149711739431486644965908855481081750726760744832270873766723010292003179660993215297265361254613323042105982670241057733184611833320424495716652696977473658956969782267867833643555265650924250236347779672911816405565907515953124854584560321772969025076307199511869707285763279732546554879560131168171708426469366081272647507459617084399602802035217912901841786877858312734216044653985991439156412984397672920014747875727945843338696731444924453194066073396154580395266918132246851128461566103541608223119422251634969797547419329090139249180211413465738659157179946709152789682042519231094556349047105238555491042290874488075937070791957346649269596616671080126141791863162182663307241224092880830059237820507963983423338730066669701735766777003120814974514802308055587389633231290557489239351115374185063061711574980800942803317114191521057189763079491010613941803875312153093323134186357991793772493243950931200436245920655193933845843169657152763524750641646922041929028145929347845836471864663090921101781067294860813800935119204288839995616107599415527060374460577705772908890913541044689668512271093871490778003924407683020040455005990228777991745823941669959330482630880074292998348631799948969865563716598403265010780892517921088159924034329750414755740679701788783692182559118510144270363392090385537431449354879724101362905882506417703317090618304070070470261503863789091596530269660349321123624586400692301262391669076530462532808826067464066508217347889805046449449295487594702773395703064241564770726795484080448144929911249489752217582097450854459543977512703582946811867008015603965827723842329440683326179672661321065355474372453344428025581468236117580336644886760300016298459799431195368248554791113841450163670275656339451952354681540711976667460308442843750702352579364078517841648723588103407552119350834442072272651067786104899733682864673222023000110840791491502872221298333041523313884803309492155963155629075890756120780400433291349186660761629066502895049357534595081120635703173645508429069516127678800944691099181268326797503763578002284961436352629309499189716637303169009349418871077858483268758636464430629216308593003003018052428200606031603653127519337900564440776774079467794856597710152536220339410550837317812447527177689015182759221009001933908713526603734311620171729055703188229672247110378473665226229454809082628615804296203043436204390999668321878483080251453042545494344062606560885725624915400269461224918068063916958719400543188379915238471627117431447822350757422124814810916740160566387192352769236006915019501837974435358094030725757711980984813335446570832823824939212225738985515302869646714365291711459675996313319797533430150681057812071543822852304870542101882436642279909632603412982947850424058884922383668141190192611253932623686389133484799045486800274600364067082902333533622325916118408309183130602320240018687583513909669237155401266444285926528979680263333442514738644184808527695483487685486947279662571374560146355921208972924372090588907306621072006027292482001691675202483936832871834551587518984396842393889158199807324247272808585966264568497049218610683935904252375539988660187559869625970311630111419813361935974296366241495885503337290226421169606828183784036426206031250479155706809307756254817434016320724366740489508836829395582085216135024717722752076814267062551030858068926113223415744621362770989167069050533069238136758427493989053433669363717638353416490959600039320946549833939894409545740762614541526190499459139869283218807984997063904360699735497879767598420584573887061956438601351538979506155376328277107418014048279558474149974919895189636767950467769919760112845057652156487554710567563636116209504103718082582054037579254570135598036412287525919642022325408033256319819986500428827212654700829056476643987879700212305791880323811417169077183890909292892404610349450440052647227912872465922033579223057592963311451511875897092860774786022746196173239129931673789929432101894014222717158900490664035196439078664921400281438866121037822838538841380792022847283571496853941093019383464774815745687939013802706417757558777109193791937966010989744519118215665777300669639104175031286783694830149696829270415151214296697088557053985601665884798450791016313539462084188711378917839382910496659103641663641007367573677344209128188219998163412953189309745361955010074289995322479735573878959614160323328318375357821092408996495167594185566144368106000778380356375339264707736325025207959774947436771796988129556150800671445531496062107968675516782895180598145633073868924569839592991556159001463846647617570868438649812665587253899731790163412335020036808427895919501247603882442770675066584849876865907949217569368017180786164166966189987901372737423214204348002676907315974683829173755235711269587813540327538955387754869838099721150134413046065608382228383224835135619381785000715918763923487116405534606287824739313435208943863882955732105265936041169261009346907686685595302625687294429515763113439800796653606181870405525811278371214517917679699412816651903423323316992338965994957457633361489003653638592353890925381985511933297322079055143438062748136724274501999180040395782779628242586391018589392748712725986528062087342419143495377262111951014013840034476113800796195475656133319689502946196774816326164270004794165964222018021614193493959941268930705833701748038698822255828164692122076536284058539340794493218080221827091873637136739407560700782133195909668224046390622825979148191218390318378528655213482795293684981621964531707775782422523896255435775811812566877045432003675478826193382372551614333357175504105742568102564130081694972765545355077219103406224261276139143076530274828356351153398442031265894816039595988750485552663683600771179462292386804171657042567692794274194151489772467859810389974807007031199214259471201696554894119599689542181155096761252925029245957106661766312163143417284986622553193036924123647181736102401730808852942016140829735288806473915606068177376362577772508914445947474289903535251827480678479301637606207237261270657433653339154461078699651032380021967981312079645483940792056027620355214724358451628166972284236303501640825618868841730925173724527225523768083477656617305736130981014878177959710656789533946682314962740490066664153390414830644895600129193516340085287075820962022853182756880561801300190415200350850756415969255588068140321740382644866811504163561726208126118056415889327882268572384519921613557519255281126295717667963374037030954100582094703874726984225248610684686066390673575615457028066104662053679700618574454362730874541381261901898716712562356614416743808702326933843305153252985717586105916311792963047740422265943855506857919512064629662729863851830634860957651077271028687893050190698509362794226725383023445087162729197932357058303641126216966455665089611211466362835861965594961448561705456348077191510053544226084123388852217626195980132471248695123832931464625869605902453276530199839209580544330158971261030582759011938440238183408688227536907247672460347864548048310548041855298541804389391580050102982921208377386264025317045529880578791508038255619680209873453111964221654995080541821567046376583410266903065946383388758803093971815899092975435923610439197968565777277524923417454493731373803926230459984338104127042167046308608300915050920318418329581641128139549879677452118347102621937020776154856529184467647824357971457297237087899582032904201722897145866982146524496425719799636272543559902552364138359018986378534599891840722717899886180698250000693645773896129507718006964831712350259721591294284784683213185670331172679790515422597553705659285662176243833632677381948649608344739447950589630050964732084611988952396181014511062644704012947161487635981865926800620474470873671677346468419622073725162948030699143968893434454747732119337116240184202732813960830878879593638986297665161514006616231139029214583714047561989094340905993199166850903673831892047762614509475486163656317200885137068735053639074932939561489073762357896486130737145651096928330402479894416949707245635995824921605581453765713201629220610159445889206523121060793697273002363719037782312342161685357186016180923492503003752376634414498868087556407385551598229875576920573171005183601976741477985234354473597561427424248995602100445770067644023616367918229171898829982438134442617605228825684707116494327125001208745855054743986875883736807157081549370467536955328042588458321119348173642864443460892746823328538209975735104619344103931912587128169319495300097202819223462654550832322589163118032831607389793256556724922683799480359995164223241164009417740655440018944026581772654405167211566743534551315254470326831937360455415012126620496446425683280686361539809900739480657463162974801406906687574577239424459331788116363696154433425359648498583747535105641235812883851389833773376562221456540856800880085295907128620296853990009534551934102729289322254245739692517890198180499429520124735023080557274331619150314653782348754905959677525254987150614051916153008695548375793861160336264837633518542976599415766834123680498170429977494196819579026575816287116188484972819255709370098754323449697221679493125372211142825624986826621805635597713467501621486749942558963831485755137889439298235440488682906863959545171944222290401880280008402502165454642629679390887888098137950493711415890925614771987763634804019859393624853231688801315891642590976947828778544297585655082992163874185103097672648201180243684562869801156006641130558799866960283933094689614156598835298960786956183176407388261796009768210301511290790282476549028547239084702376747375995371083107433582243452024757979870181864253547120926359246797858920097246658500013815735629810162017893459258075961171590932155468662463210632637925734982233731490088768404748062540641903580139825739272355906701248414981422585214968084516177362659305115444809647122470380541702434963839494712786124504380443016028666303974522159635571882662217176874669281453727998486921192860086094417464391279598187734631622140220118828749875116091473408248166622245371235758468738782986341934920051208328967895382069164866875884994073554139051008156794403974205130868997696283565867103867618943616243163425946775671647984307048744808215412187899927127905828235851107479294721229617293767771379110510125263129122993039507070201522533382265477229460789919712605117886526498581991367256219792366022847713446336700039118632956691527549671553973182195899324237906035604457005268030619426492111130993071265425944309504837913428656281371643818990993128256281879158123050368876930206010614118308709457003817271301369159096071726715362397105253765323676878294999703759386792654945206113120574565498577782304369831357747631697902480835379721234517233001517795555267995356453419827537650640519308764827520979572846317901916030884105712559461277107380062426416937227521713791596573613861983102674367984125960585841919142301593141266808501176403191461594564114764951507783003030026771431816237352902011079065473302946547311024342099387227991918928589148521818535367978240770470114520257907174765816109665498604510899584483532862913854450000928082381994270793674604114797304916158199499342464923828728005752477796455142033794961986039570961957074138257246938482637585528324799191872433490816457358001798564761004913466328526537715060132006472768866961533722259480932877999910089895976254665788382932161829747034472188692678481482699960672640160214034394837933246989004946497254311474104059093209362945456518487500078950971427861135374631032306958332855181125509444060044431662638946672047008795730183711099906456631220206675508380217644042348294637660766790596388870313059512502900184849507806806194283790252057856212229743152825161805663825791492905529239263965863102165499774480671876473496505333304225648667748741059307004188312256436065472149055633850566241843560208590130133318160076386177532746999749298932183112214092980305753763942896284707594350547298249560881615440744767948523553374313811853506316974010490192060095887697874502434856882597607949366653631759238983794482040497774263207597215540334662322240829240391342549404036675191446653389566561320448979359586814483502741214008957057973124977514246796212186576758877659864053199759628636700034782818717180437459093736160531562772959250785309318126435648595122521267939805611724440671945339408071093776467059595039442062157314348043610400972089796181820150932315360340965482454597579138339673462553409030682373053162809366763882794611871891693893376050175101749741606195874894993242886866245698816120580013025582765774207108985838573435583712916548065766139486873744866939264493874180360288960291903397084907842811305154349962507042393625430651684534743293842419579448913264999343904139954931620708479652816091964302100547807462563322082395702091199621115305096829216427895143598293036315741345737028282062438190144553495134310983738426108101164258147692104755577453342757718748656563719535334892119495858226615538405227902105818551877284401721212267016274265399531183255132185200198786835974760087195323136129947923289833101486922440283487349367632414234470091710425158051735498300832403942845009911422445837419271311252854533450844824688975335962017156026448185870643253327975081865352175430435329523132335388319774635729387853426116467448589411749000164618510676663143802787017542022984782640502675734516851366263182741630845667295168553324978113500616269603058250670665802371270295400118840545864260800965649355839988023591548529599731596791829960762144241490613566262201576504608278571165031705160065796974620391508559953386570604189674438727019629449452434995116915833700598503426829748443358361531615813856178790297621222258360363280424376519620818439252722182524258344781421050966616394816072402955386979172609421626433256116026298378294815447958250131131028268136525176705439757245741897573760523067498060289727130854479684261584133638242992374770652927555291602197708866246941811542278973829924720442672133621721742781811208820277493188186952757108282391153546065609040075899473055784760437598683463375931878782366397374705385756532493627948378757061137085064483677531470389195365053848214268301930433675227560286118787193405785585376848691740774471202414903711627432486353963789599011958811745645403401685187476136415796872665775257484251148256423754609239956806531606345765589881866152739227483782642017542412126607791610446512380324601215783151945547462785262440415154889055566151267268158924409806850124410675438018112689835261744011314653965869735704165359979615022513634055478365528518463114432891217089260619298636660934865482991457543404883368037565350119788186305246781968376827660576006169391416166906461513365741535648069326006484727316689312855855434195056391582654217772888053474734919386272763629303350378861050684659715292950570047392589030876427441167944665808780995890054112771036323408449210577665994707448380610893889867951252282594147758208374294855747805973859974105101229341648322675660159713998862202142636828258484698087618698958963492464542598646372997389301069082489016627393878522695972913179638074304831701707106318232695081146041899633004940397909665114658260406371797724438636980160002569404121038794224748921300328045163713872906052729746065750724467934411808347639454038838190603106493858100509419596541168751857363046131076859929181066129816400618090103598052343618120086272053167261401046671026543004962379549380102656970199596864583978498335016846730986016151503583946816992623920155895380111466994288053119989612249320631227476491577038160081254743087761785606510944600727589783104458218685142892523427165103528297900025301521148474674157758857291412372471438251621866366143728749008384105555395608505753921079632678661857477688153583538329212269163753473699012414812104997119690300806040044014043357940526464092442867914695701292676971234814861419088037609052393375103151841996490347554312566287232141834629620592514656174598037765832173885010450345846297367894977148022717141783649594054194668974817649185431310120624620005709473665404410958666393615683060379002799581885816468738057027890320996495350766707781398243740897502455900924337992764458622171965281717852974486162263296917747270171992803412346213393840723136175586701502987566618392895730082285858331542804997924431364091231165253718539360346327352659195077132098445209210827622357508074262160905972116563989102181161908105793000509128042167845612820222162011611940049708616571383912336116372471670767024644946030853805133926390502530391273255046212898708764266232444657474614771392495380939607039052389726618396998242658030959213307717538546037163830460757496314747127807549431927007749639558083191035654009343833429886798452699422215529888050421209181318729317823647079044847635130146749990810906751597910613310132178537298176738439645470144170136015725250769403500062565006363065439403323468339984202835874857126183248842808706432819453617413810845239632070903098995603554652439029562829921408992539334968940723615194616407679880941540825202612007118670561756759528459680674496924848502505201306331602605766478578351306443150315047168160552689586226882920686323869860449526627023225424169991757779324372404721938438289810543565858539600059354390845560139441778593748541103035987238149247144895076464771893851445607383972214721446237666021634599118825633865701916054741974551214931264086518213768940882934896889563263621683253884155278862038439645352758882934729416644825987589604707006593291969659916187072151694459692149119778224556921119388204932509314032202212272054808771589129876147094775805111893142434154148182958371457034043631152761771309492034316417507240801180237643317187431831413086800643374707917827177253681401518494641055319308593444782685461115174331109236591428215518245391536280656598867871338124018953415082409793637311204169051887133774933297995008490658631601381203836729990524738351458895072726798191460837654135930095764202837031739107412225696293472929034828184777701800062716677417780371097567680868213535392899614025836172908452235102678693605523066712147508323110960820437795595706090254866023016016271238999567248544603679566061864201916623430566467607288044091246683100980418184476992045619235253356256409082379099045422115453192770962233847144062699526774156621915883683544734844749048570435372466439538142389826182617372052295763177537328485525344446649873956214538401508796865924993129158010997265096357531541849239011220520413011240141235210670892571750362204770815877589723180312748398143482906179581587920139424375840101950996222850438805843214855702294490931641245371274681483094479315693881328156421007009409961997985865479122856039453827716403116522665772575250684743143801078857457661435914598023192121781740412464173055624420565305547825484744703189875540337067689499474605547678274857478286718575122822314677399399643441288354325046738182272701574814975829303676335881024182783670292012617260412158579329256618238996319264821384129737126393882507085484115948466501382422586362521359289257136762247055263388445766399873565421076014920365526484003243128460463068573288129423792145203036889617894973732365850845750276881052392147314473000452168537656736191712192986083692915962719797813648159812839468668881535956042058857376639701896451050190993691140679625335857516327359333845057651698654705553164145512701630069454444700141904377374676676281563220322762420351661158902301918741574802909644755736455150503801980751521106113966464604793779173969858319743873020942432674618613999850063960789593873425024044967507158325981954231443751936321034799800376981722896118909941748673558113088820475055968481682024997770119372828203947457922643879245319576718436907251901837156913196414717418672397067687833288203631752353244759984814629935508963199587273925002760993289025123657279491210787655219655926461201393886390875487086369031684854716388010851133952935405792687941134894337586186561183248360477008725044245461761795910920500917545516937965775288263481102279445019385657481721642923678880874068572553366015802720427003586837744325307340559320551752082526332862347451315122777071991932317652490536215215791196897473558363034831152385655535846204784402870677268673114352025222789652304874807022949900280985516565060614377835289513549016837881763130662024791801727861872636535438093796158110012735502208523535986922031868652608582142711307107818665299224878901991924902566559774747462853914385332446885611662761412673987456354411483382515436907618956942264082050307233638792075562504443361130379508326565817657994111264317969123555964450050799724775409878650979234370678046813513743652948033798447619287220551559962275237921722549826155967618732208717250595427433063218025736385979455657044395283803900688785873708382764629300875442893193272213679663052454603335950454687546719135934533885508254803476217654414916260884934849744531365218292175007690344625433610649265947760811760809421436101242880405702650635815645885598231196338956363990931984377960512477630596850650658602356445123744124184899778637211248163676376813833797774880997255720542226929756372472869055381267508219929458278299905619401621002197347571842190816520312387080066717803170895488448100160075251842028798584298566820861312945397175966853415544131698468647411396267856283868459495392631988374209707545202715343633408272382537082484818888444526613672486181028440539226662372659525815625205966076609334616244472534416129429960624868380518036808772562973409750591054815137637590143003654873102281948925417868994056000975748856318176572045982210036511833805880950185913179374139402410166332434834375713804942775702874983587714557689331044144104701168452964973912874849187842145787661248498511492192545528475114363907716115526662968276298084267766903690114248167602122086360675687240486932522276211214131118361958109003689434424085594850007195031585450668614717451560534776258545574414666774732182245232094578630423544939016538979601028428101928370013019269459988068898370002134730725674917142257906751032750893690726037063282946315332003851512314597572668028987428009359849582841494879822427736015566712433377995242925712583446822268690040045415234055691037262166539587002418380068735181282179172588349560009548071480071887496149570715811068884834646835549211482467252392668818793810517809838567345364623888636578920968821017259916714230898372354285401442354666175722852779955082691524785955231765350979911928880742412205469134282580549896328098988828236905602575561241037109131606935353136985298589937068602522591391874500879252400780244221058457015266922028348986386178041026028558690536390787428744989218684174384580561434058862460748677883216448328882791673883432557955481950609655745651689088771712081810097534112877540553358162842946910938135465758899492636846282104071304274517427850822093089419147895626092020027265503049968521332815423557060896297055112652089575399370628443949417184345614861421875384420170224367758755262828763960551992091217527044145256838533054621621238184807955335439082828580835860492349992647687656420548506009969077373833980538600041499057821236194342000045000367472077335113482694159341465894527244995714420107559791141407842170673982901981618701041667262020183014025037479166127426082494191933009810964465355476736851490562670729103462014994588224066553538316038556353965482229083418361122149016370713071142818844525530276094676318881612956629212507891907303225860569941867125179512598345385107396888525793137455797006979293148602041054738654873696249580557964134474181871487281932531540706069722135914118948397061762466875906140698998496003688275393668640069602003059567729446787672018876390781407405998910777139446251815902763066527288087371582393456846236293394712470659654874060998682544166984283107391749385281827459531146800108349235803642536998180318102658897781781943447324058607708948241927165745780758441451080897490189360727687457296090391251330407020622629024819958413678158933460340150992656112907720047506694706366630038461423708311740420059568051843365863134196534398369532497222259207139654486662745818174838931427918467131058624790372234955819729137351235696384064287519229775716128915888930846034249416401943853139923585028923287547597329131465157586178484267898766282240197013534689058728014720558677665817321652614414127176551326187330754831064573989834337511238959208450707521292724497964954437719877248095447906417427343390390371703600834117346839746147791341572363653064262802895921068424211949521156945532043804645928062342492585871487958696515958505125842605810282346865030457322607149481196060237280145041603587148660880577766104683031830102535689822392086791826031098654300160960393860638187589518806455455797093884362254253878625359753976252218991290060310764522899876047607154218647934407625530775168506882429447908540837768915348961587662808742733619472420682726907183876230990744250972411832527848036946895912264464508522788750672848123616423872746920642683248436231069106349861408340489495934637368461535975324429619470029262937665516714184255334082406705603043839514358874148729847603798951354568790951905608157180335353448106401257604089662987948792846773287850461826704262328855405011466193239891158847584352966847657022100320470098685369342531003593569297433429066915824557660156050713585394615933831080517241491958353125476598610413416892905157884078614034327294970430840248414326326008372904068350065978016095489307875884695295821031393829957388808870519511127278627140104900529329804281802791125702250513949359457396208588585743520130409170411131808534568474549307216175310182481540362254601402583645069574105137927971297980101987105159273640444674381330771079745549632127845918649098926792726118269827285487915927716422145930597915069145890796110988646520419929878470835639390923546518556295865209388424324583664063668777991187989474753527503497940838028573666660485545335069909050319819183621626320472636004299960305608956940784344417545241350353621166034085660017897211577702622228849298463025808840624960117558338095466244367097383263059153510972024722293935757270614551270623512467209950814479963444182436780128313688356896665763423152134638826455434049822490450597016926881900199089158898582290747854555056751538131580469957341772341431874886000025326544656789176692314437300267416259259357520100327607726656140136025998423514064732982755572326189894740233584314598556195797112601172860542721073614300509640834465014962381615892918235665003715573153218403764827461591565421306519298651549979535600121169298557647331430730443988653862639286505653243737304262765586988408379111226509024279797144756073203396740762716945329138908140862210484755377443686648705412244391040738463680184717653089331699842550380212695492702470683887862954185601260641535099289830122857212336312848409869763341801563996360546106860464388711866254435000654563303371998018685857869970313036473692915505667350983592555736876509223611419158899796067259621519907882459091583825680771390741489193457434694919490698551151523340257377253740040839269999760505611950320217488549528088049632286731028812331414849240696570045487213169993224004501899548531038073122586743176040428987374668235539345185483465562305130601202454032912110480224735459118107277602190038174548526767888520585995160322895032267720979446985202341890842889565649717948357500775433283779199208322653215134730631627817372143972784715374346383015163271608668694262636558383698700727936789009123910754206010632210530481784986148415794534843559545567129921029553795460658210630697037644676065447482744161527628708167320757953147807432060506630387538706561742424571700173212054466605199903122460261462598336365991069910887296096402539552571652100488854385986447622949480172970935659685489343099161485173773650929147078243262539688424612668427528086253203513014617956967799988895370224590049957187408047419407786672178545329330163141668384112166408997418750189845479360091862027061522912596737978275897840126385576091948843801383252800087704747423619251581810209721821841644226927894326806089746476181938240156128408391728803599100096542206687998598111655628216191680304214596025804573255061657139329670984215381106434758056403537078232294476194979379604540924564619173331413934436474443751232975917071887634317950194562306773267717663153105070346434043604689553152030853666540049411225174085905227386947135112866257791620061182991797033208807307537275835645865087634086766661028544829871507578727631629643943153207363543871655108394494436390139986237125921906486399759764558004407845515024442042385069904738962225500510785820567383963422097570764894266843012261772098449218271763473587050310953398047902375351619976630888244493157749576687134331397877117159515433298466978881640652518685962821503800387756360892047216802678468490800717370246309422145613764412672743423961323583012388857445010015548525173691137033548625992705971002565723028556460379613939855789698315528155506427584257115004938893987000122904368208738558333218567141233525435422070345391240220233396701293021677397616706209923524530198335045550167975113065500629710861931259505620071608518290392252786033916541508961181056306987119291489825276299559570404578393974209524199255616288412501178154323216560179038897975278149066165924013897978165309203506984458402373268032111105283742277265184450007842037471757374985001694377266472137864699968472758317514778640406747506360572120094373174189449228454457895548845906388740392317128900729588506179084148610249343749051655386048502117287076072279206532826759046417659315400709365149158884283774542439679747159733647911403784705969201966344820113348368715860163825822785224170945397521734485196993362521673693171846760793372059221026600577246359451424377584923646428460842886545864324910971746817568315401178854428223454219234703246884195490587708296624879450718045505175096385838868425500146006698833669661708148498888404709128300260029903049420169138536739223456027583632000478546321009457792795195954242430786166162684976565306150096371411805052301786620472694132996824910735982937275061963905631457266024613519711169741235704549751486666422994388261291733808866100385917856225694551941793514777826754692841967524025761604874746587054481368463875023078030771524913642961931201814093831351687464895822997203597587305797114758285662567871471861440343456175966069351716419168107876220410196955930327826093027944729771001878696869187011808109069579083498806561769164589951824302218854379677660303477010600577241593229555161231048130948911174464557013911576902900406124053735533344427212717756363529959429554365860619790996683669358869807429605233029459362763385045394847408157854413530592820310955529643673195581577117423950292964076686463095963000912385801035151814252446965953107123791186186235129746102653353397582164942009176354089492910226448246740599205575224601379074377227163980501663856145853551707482074569890834270593039505965518602127755637661823372183099443529557239556339096038857198205875047962267884276638793051376100451802024067068562092659032957785571048254431962196105453370384935171771216795512914094335921122577958551004964584838149620892018385795892033274439222525070383264637962380376925962979897576162588409764104040290915014593498668607034877635969380271046665548328736886782532289005152997348269228356990277544929321603708394488956289476226186282684148200070977041362480630527395496964991997885742257486902072841581156862429804641073224232785916383653778891704218179543285842494399632042052018556415611838082019719441624095727047373896549562161426520842795824080213340011915428532659566877895352029685507019173398416657599775057355165818604986766033923399367469983426093718084474661142192047083092303289979463730970577425952553536263695086469888646909551475595166073035733525038957894175372913470340568731291179809543828719162977932125676090522117079094896710784717278474959265788097016921246300452546384723365092325357122778915636749871128773457443573765636748765861181793577364681216515381168640538238162735211603205096851525233673685450221332261245908780250018371843950248371214436941352182823306658580058180951597076745429840357877332888594875271583527852930264956935837373802005076193739379095453142333554370570279888858863532113892566907098275075002604919436182035915132928452110638331243807092226670879464316145256720740920123630568324819917771789949694985989700738719562500261492750655400118272350699370083847990956395157960312626361870931986865801051802025402244207214554610641913949192439737473405830114407331339143572856753544977200399198295014073744454304895548276345535442165712998910177944489306922797379505831439639729686113439253557812699149766696811775699933791385563390390071702168711001043164545869701667574385605378166801535949795581978688921296980413606199800094462569081171261051608651198275330597443218158680638263309329229633006116272278735948966976109860813606052637016797576851015001640719192525532853120122177030922882802321955337828490530566414040514169517769534279551729160005617120015434061559069577177532016135706381396221673970748199174700241621530508441842545031565632415837173466673218673412126151446373834511831781004797638396034878264383699195272624163918181795983711465783662689137427138268786179952095127682188113664757948862524209503476873488186428649529213668119592634796404022242997274694376965834129134022366457690165550388612933899371770500730234309592240029329326651289587644841409768581641314181728047292995837255750398557473609961087033599036327974466821845941602946738340298689926930392495840662781792962515735092082990366372752395200768115837660674228926141689730476529757093370259824578715149940750872742472911726544924741755215422738044357549104521978027179016331953456991836389335726274103776384370844996097811584792778513286976275379071490590053487270064989236145189207380345221745327916124657744792820203378600536138097479831077418781385408983764769210835521849913195710715773679046279092411141367362113991509028251067914964330960548790764734863301772746331890362758401667336212283496481626459335253523676446620817353115874364304483546855897946919222837786263212001885021603312830007636505789161803271429619449535369275667857641795154596832045947979652537647798943584533080205875078836791902035358264739303028783270997526382718338960415089267735751752728701087499582708969308430137550455722228538802411347364923629441411280862552308698062384121777357922912909384908507481554119514485731153959946649503637887512701213862193037822768091631963848391722342383187374776123407237486439586964719283622629614417463449156912737944137481188728345658462256270517462412199367703069877233448379883725235949491300699203108344727998618639927713120041107646904426315760038317078889760445955180991243620988897668854334224564649689266932767625166825626993668486618907364863418310831336358647468829816068191549827408154759988906512690419479969126774372157469413188192455714891285148259645978888885510865243983598483652181286614526602276254394187473269453689583290651358641477661241357144663222795788690680481691157936095214228597723633661206129483011661508563834996529904473154340771218756464533890650958360282921199148262864671640203080875132678341765554292883756053531659426825415276567632999667485141966807177615022344218934500735476228980348706204570731086576571036452742165034230339705774923165604114520398026372268634549634264373606356213649012457914126698907942781856835347073968648890598304905616027839181804403401843827049877810198968367535464320407502480331389548575751429965694114899089753855755443156784290875004327906063725129816450358508658984005309153876309905558503967675462972795965831411066567886784933736839268053558413299122533692244148978732922308557737610421153878531761605488194117218733331000984005714214268256246499660350533470053548078917925066092961180110110677190343545896489429636372175207842184690893069925297952801498989805624623452395896895365113334429491850491696868443702252815463276225395288593439258569686161201075962117300146103783754784892308849476294611663728926079006160906034134101330597870379716695122712537885476720757056308486404625371079868306935007727935335732584889723906674744604732109458089234809097434439927261471525579465395542461419736646994046428013793067517761574558695017931905502740086744419344807152901852125411700734517295135597463608836021308549350821231975386023887235443366430899176856849616978095982927246169437705749438339083905586930080042197083310630324366774205826788436194840439432872104377528901494580231913160218996220922053141962382652821763467569381526057042336491565443500088324354582874931719411631569939370895869367401041260459204021430064210751278528241685599451146076293074097227449365506815730756547315760983298383741802939859346815448320231330739270081636038831230410521857286212157562726070766830021592347604641116786687820210271288670771441950683357188619466174232987694946614294443016190842789829964204910451528387171116599546881208852594005896731842392969318477450092614012531980769344045145703945071908548175735907652722715090596186105096352953539722362725067962592314668460657186146218527573390861418730878230611641645651633647141473593565329414768884068201343737549889232225069905302601819864542505045255728649269300268797254265492696834393428685517434411508260160885445364700692318660012594784154217306344077512424982132869294035357168700669559465170206485960699037693808202054361411672417491836612677613550742336058801368642437602152962164567045979816820388963475172377246018236713456218773218183743304454545902466198287219911759645757273966072814061708285809046264670294233347095663041047058388593938312596510500910307072842840720698567067549629665525926997001744902122137174273804871756853261280660921026286681817227544955535915674564761748195792769469358550483004123273579702831772946278214479590927067149340222299067048744338838106955893730211714646981987075238250672290137442101469833102218893371168042477893202047603991037757848883899544270671548568410853284858018462839704499446885003691139204577932886193051087839974111565185346910027604335142776222000128554582323880641761913026293624481219083441905792760710557737169564676737735541906916143379298064913004700287870404964009239630393449532916593646349334692242559075116772683023752689038142843496311915564717198181790763291935748592918269588368026327931180769548238968054779430957670193979728904666176499818780741191680041284161249514603441052727053172510227169138203982899293089006013403718554219587452483322338685927558796876427508902235856985232926246098459070785431704779859686303687889837544451543800760738296275860119725226344605681462525801166222078107954408763409567539978928635188815572236385245375544652873295533587275706923391433572252012471453618850784626249129357374500434795972252986774391264684773467115907669414759414221052324083932615446635338474511670911898095379201503162970174397252237020090029724605427501866311197063973353789101462354632101660101443686167386254145173908733467070955641506217623957010523684138871401226854518925956282193958399669985293160558973898521573363844582937271172516518187987122565058222532252501642030205198907643212245713514761912978802025762152285983049961374470068686643589708654421768957278225656030825726374495445896392606682794752119898069555226632351563754448288149371588805470706133635630059238276196656334758026789460647695088496161514156536947389422865042627292174596647136366460555368932039125174034013562507765341838141038098656212901606372697739692060214594134148166330612179505409462119863163777186955924680609675791639727855461826370450989230176994048401602955117385187423377121535667796341969040657813193505351885516440813735292319866404399465328948077071933959765077950241063712820241525943744619816572309347689267715618284199928968171017613774739132075884555595654398800064655151812216092902082495106376329470462061042570975326108460522279823998363907743754204775468440227808432275887630231891038853710861964581430584532857492315384850239803527544031933946387860067855347120269470438046039186453535493376848179480444420467764689306386401788234389973205956229593098784535244884848184832754221173693661510178098220956419540301745995386632148785471575154237605477971702606308491126178159288757033586934201675141218981802793433525087662420656035276540530113891795450793309957380839878421425048074195264823481650395234606875146789724564703481119981340201050967882516620471869341892788284289161191983758138889607186517130591883180461289416726251832655366392792416051753494175243745816793087395857162746263767358274433142442291359683231408348295374432485208197680846291316846254621608229656392650332283249080137667273367528004326085392927220389814540898422650540079764653804457474380783039676625874699998865074854358744484459588217633957449539060754103911190315950686953166255589820956295992454003871079407396711842722525333487606668079175842161575558482935538787641007863561060936025374243030891626543600354756496581447920090693722784500036224772394573283936158527089522096451092396004961006058154162453524292356813500666146494850353430196744730217558714220375809080835107624878473082525902625237667293408203181206996540521724255925260712879511947443816899861112037050112649590465403534583138239125916828255381679511369483769736257790920216953940131589454475962925614620218237066845104134425887406205260243497868155202839541442707776353075114014826594224992021706344384777491839823864379263880922353999663115899935105464608609835990524700463183000788535853607587183714348201285964203000429455480472549079515845644787492987854478579436093831750169148259756169177424664684898274234574522101322651762070494724728087475138147043460489438664202455442142907531877689771621345179973385018830059689975697096554719003204637765103130819725568990981313754076374546514026379151499419822130794628268638707875439812406996123128075412202517562854448700654494453626580706121566439809407630447697349657344127511961225462312810885222988132456665616678887003230731098686817939563654613728769727131412922495539841763699915519091564994789216139347133019253100260520309119621398935489832590836199887005343999229049860213750601131555887617036467317084475693891706910412744533479039853373234925610532204370057409659035993735436759632782842926456094987971832211949653322790569078873134537470412540580344067370962083961427866949700689247895990555393338491972283776181507063065661776323152860326930210926882974513873435742714557769823651439748731059044515549157837869560954962118154124601501219374781864943302804309663679858017250509341974289456626411637069523991737849145154899951757204169401684112809868062603350834643866709962589532923898175263350680243816075848840935961792147123574334538867557233582356400103124053252086440404158252931955300045304849633156569310524745156693853030199414661286004064172010513010637238415540162054298877956201605662632587615289447962364153901174564491819241285440892547843746034334236451830071502902184204838179216027282742400165949920945741308345490059311536506461623454727563495597062118470241660117368595065312370482259554458316391308312684285534264903957477906435585648053801246397143998618909243801634518147827379580473604605315091395836497365153033270211883485860215936204017909145060300202513119244231836438941350869194614532800824790374799305116562516727187454809919875660314190232945882678804673124842758674428929956866082836638326723079931390205572046559654342148347602774193418516192279376541374249823468687445968193781734859220177371370581942686299037917300177924102977077906515949454166678327131680116695593513737234582139370360315728986295618240139602332268003456056326330870050137971167675315694085319280027633536229455674431231446956999649562196209347921173568393836622123928524678803714998651938778230270526956029001113472551811666237264646116278090686704339290134532951573070789099653917806106354117621532450634730505908941711989801724189269395501065174316637854482036707365246815549161652401042044289631272633354213707939296083249960399495609995897229444069540357966274151045893085293676909783974555632072734498296556103320100998087773001221995613589380230628716182235949214880687137018375386975028058903270940969932872774179218703117264563950556355697749562707691680565868214273447616281340740893476803063695781542755034428927542583120217715204097249700875419351221894988212474869243917539758461817513954547938824748548498718222068365694442433501468351775671063550121814898086591288571944930497568657011880463204168948975794436134942405792081441930360832006656172956632932140058330742809418872185774791068766522415753326650863253865757061726219893091925299110627482077345940959096061754374288847898935732562040878575940996310144779133659099481605045607445048575680952495649591751776723085858325145468466989780366180524245703391192374171331489833004685142536295995904439012303110802104437518659656394518197601055445445979836635859306487512478788767513081437223823957940963107231513667919791667423790958917113270561540255482823748073133658846326178446674313970541553717125439717887478190486110239545201698087387190501710973147714981315398070767396135502354101850810973300936643095487066042900653110383540864837336387621368874843007484597042086655112930288571981951620073661358928297131673126166055562050280938825116889816314573481455180775747721257793254205131233051831543938772284162285323890044208206662366324732212084060464170575855599261138948945659590436955913129318462522580988822792936654097404341314538105905513430530508201470204498969310928056619839071006844963551242242498620013787539716423757276278306012019129868608778127165446846205698086237476405117050096374548666027010776147613655365671863670602526855289264144913304514973651858358384766603600654115720348882767171233012372602160107621611618706225681497521692201391553456220175442681547823958505564698171596623819390340360059813923169202876425691422263846376069385535774162970483422064574649463606465855201539532956699679269259346111812123969124545074014802395309754719284179386538128885860715296591291073315941936195123393073628399771362107146491980613932057338005317895070606218921324823789270107834834708144233758478387218075233187718420001084709055110617523229214831078344409807803159623827472081246134645121175403030128849851996253467162579886276637185529226527672027984970703161123834034645247203453683536537704659534476894128906340750655252755905535563815683365554247248430057403276142767836109863784788744908654825443255479433175215135510843931220407486697047424697711633562579476136870382518541674845518827209151594094608995629751294653671815845017074140480759382064064747081883024914136709386690915769303230481352351733384917459965215585120595021757106257195959884621253671620713030432068563506384274219755762321130023550434071184649975414556412134993435184188446047003308797060088197184537372854921923123006843340526280309887946741458287908079611006865343724265756490326527566448391554355220004010501905665671981307779746352907216510364735097187940505659280817717198995286724861399315960731973377625240731265167614252216414647832708171000522521775926431551733750943558206780227814048057129215492776039356621458347195242452827346804568522585298657975565303342153081947912977149657947233396025644053202936517974225845554608918803809345843132879483826992696906051944024847527879478461734535674454922573055533400867527313087464924727569656590962213788217074953695757019950225607185518529274478633619726273735218671259299484303042064742971630190999903215894862580394429982694041406412070066861524240609243255139284566754067816522437781776806915026723192854676255250230263990962978448673801199579952911119350036041187846162289670492146700422505223894803332189320794879697187466152140389334905191235942876456502111883153286668674454901684831753533724605056640785036597412721343578318472945125876641598034006034515737278727493501097473535242240424151739100316233558403060491005366515858999216579800048579246376888976798413115833223856821511876082201277298975580052629907005982871500213798085895771372677912523539956468683080129811842469459515367231688706782677602252030838253114540905576896891316153929761760987344179518798026267734025926504035830301970413139507767175261730599953803351194528243055164725007538256417687492816931207907736413922039277816463941448362127957233327114270769273345649459967607924413984076003167096879028638831815501067174276340100471778909095848325565430482774536154434652930790873125170088473571400477392539895392213366621113182424670477570719641439696337247286296755853593804307271522312919726050142404001590034856763020270975500230317768215143731321949926817665407385667400073534600139694305281037656636674377444398011049509423576468651852437337211935447104712883556938486172526474109534444761505016309680065776914778111110790310289771877242470703833063777968122652413585066206213763756559210544971208915540133415216215862467344846729300149676269752519854150096310047498171767112249679855094973006221427874517780911752691863003391783926868010719853010897760510269352930129632848720704377768636305567482751864946449537047867817934929064882465562470070126190190260758656551678939557743493438173921940630148638672584806893298127123193641270326358712546726470629506415212571187796432101259360576948437670530607871229917453346114362966071141437446847141706593948874008171338423524122202258671364381850985044640532601806927490779710182413381286883870730933201078916262716537820273978896291762501358372694844359199927673269378150071081951447016554243136020514954044536888667746627115963483177404890930388581446351972519126834189877717350371056420069965347410462487088516258079795400276829574676394924741302659531267808102383520611225964466613180082404389851603049025504987540636660966887013271022584348095746859507453415454857444473796161906852309374215276469064622933192037737008645123560388247561677261299111673211690345328749234808801600559347823936483598132628514379464288705326022295613315455376590937568828118610016154913997246816160379406248616624536903003952216610207513772777583019934854930037238552202168063953935176581530454729623089119544378884595308643526076203700469517248710440927521101456902924155331169791234856119084223957065120894588497292533620202825164343088725371274303738651873719700807151245251685196675330646846196933628352742749934629252328258817833734647223825963098489578066706116516881544217653168108842796552833107964363091121703159412591509762848692524295381265983912644172347629804983424843705464385247527193552811480838497918267311315035977415126241191763177596490727794142526502505464770697205223313363694947699348907859769379987404947237596555495367522862862037077349397562748896685116239636798627754181673825687871549540599065220434597574441699148866218424395215931432808253022984287495175923808352132355702531755276269279819191287061081361308269352988215720877033256938182920838825976172897853894952328798940546684245099204650965290961687589578816018312979161048930660272836441718236503415754201940471962061943623788470795060781319163598188883616129392408774788826357688359283031816314678559052710069009116342092501259478696899868267651116036737695692456595008101753427442506351802171199886290183574856900657813350700710487703581247500695608524456996207881528741022934807742629701460420540456238501336743374315920480076425636747998724916417257072788639125457664414352175326019603042761797799254689762546045552641521244789107744354594843286678511005524733038796296732693616244458875290991709790229423552800697793457051007782594624737568905096204520919392926232905082909976087065005494361425416380592258913277351898890020976694561907582651100886900602087411860231129277984041625700943038854626859645739598883655645577966148658878748146763717305461390640746350205217412194470303226968928295730359794727072638204624854743761214532965260958793063464985266204123498801577419662409669362732307532004014948421146757139074225955361728317811958236263854820511665487164140586030217756837411025826486306917308509176015937708227212511379200978835561673502075586867600309099191066270791609216050378654442131885960134841990796665512051712385467472585637225963595358999732850540880351264943484045946315580724434824603771855719323272489949751687498575463912106577739996320687882142683201732083413783634724008423077494401584520271237106607914054399394511080147313561538593525803898729993914192864399458763794576719513714636690411940180440519091365149620909816374573852434859726481285897343124208115750218031114023224223641743975455664958957480010652967961290800784959242058669101072564635542196937548319811348459698677756123516979463091896670820418478514356266500656636267402594785321606543274691559510926656954233198753141209821896726956505106655055131243026320030053272617597140060464846731466924281064501426698808192514969004794642320961722099802103148925734188570610358893030410506240878066760360620253483767187308471116265406719814567143546329894769941148839732096381493098144010505313692318233436832827709126494036851912752448779648266365071553800179081436644457521502154618957995865479442156481230252860560371064900334531793098623564459162385014704887633344741598120060231680900363315218305127956066959010458970159291736715403968373616966550022480012404983811196402694498653598947184832068429480446882034434716602965831913263251565583491787639465841079086263783774520154119249891604833026770019990848975992459834189699014269875591564407391265968598988010570887298590792898880479162381458138212286105251799614154628492394229170063154941504207113537160616891232455912147543675355473145108703905017414013359880226907955789359313985825697141947465063409958915497589029790039681643159773200692592018834131781101256410527774024848081098255290026372846785875846979124011390543908931603100838830088421510710348933080873854749355549619151327026434067131790162446408950740783670392428196383251953575582539138512127572995928941084798964278805399919855381490423776515509299719948758388025240437813121825140665263910402148546830306443074149365731631945458591563920517303205694280074603505287117593570455859777425113108400676170524179807673314591864625280362984856413295907155884893213911546886960977051504286111672568173827552373093797000443077963937163726735868227615092357121160252115932664161441162096156370063937732925881662634543467484987187621734326784459033147846426921918121210678481863273276486683807174538069926348943897004455163048656968656979139372821575196598069538946176125784881770870130781798782936126288761686793954127689981360537319697428811168808366275885576746755937845615322989929907783345124807237879645099830661906846151071298087293110311597307469777015421772333764489563238554464724570036746476679980064167807099881774168428374163572459452355266223620750579374756854418061432796815988928714495147524503630959296187342008300561460309710486679045231121401852296475189733450934191172208801986955253481691741379288686959110031742580556791791337145066379679555067540100770218383631670709111320193543568729518999627832885682870662589536166633338815922043597327830748011571379714265553999622081615135733501682380600509029929974044209305969160185829869882954788054681047244938911312716897855731500365155801370886185240047018874213498733421451283409925282179898919573569925370293985300929144960484434681616674565183133874524257954613907007413941574554106236310449829346867815616264053072993052933226122862215331455923289012174360248579694982562312698409690434782794407669347267826527606254012883897735775138141938696022873109743347716980414351277880144259034745334305783819741009517611850927681819370316937465366425742878037766855902314901470660077629277896948033652573752235413094569613614611742308946266893142842702513970392823566403548061509581670792417266159282528953293943397835555118241024637479404493024668519895329254011360954036527576011664847459644215710490337321562043507404210339296068390185221972318630247812873877071630801313047510264907321258944585240762091375958083888057518782065191571581653640535761783904496936047849423542182287742311293688943030146835476076261892572798749276458022194220602975973292640521544795349021623135728742186691588031322602911636809947673912602026056703462244442378299050638795497314821067091964940975799931570370230405384075804529133705309807929251426679798189948909064677897149039321463156992828267710795765343315499254379689846753544275486515430356531364620775218378770931491200229207704211455701697072453166863451669966200095550183775244567722652900077493498791915113023688168938415614867442598566481645906775355464856336526552623823465919367586201115229819880383663206370771117011543791744138038816629714406936598828409049035081953176151302096643480020561704892148070981980722410214943913698110938045706767045741375640442781195817788858667362751152078080111347946496713447165470239492977539222428482654846049166572691283239040565352746435734221785880282108944282209369815113990950024318493515262197847149459633447191143732973687696892648533961234110217350157434096500478750809040524855770140313557387887037241821061754815394949486616878956071489251417154648850646514197458542178443825000335222422524093655589686151215557149172306709031006225648969364209301513440445700643198055377194174190221943763717716804464258914083501093534166335258586509193936951891710264851542918278655917219164700034010969383458922245617754510211992593077647195966582463881735150287791794255028098745474394073566418803719195843416396919158223206363757339137193756835903631941698982301719045303846604794877073860588795522095911481172940738515252797269081819206356448307940220878853376691461972878692435787777127609501216845334742517480323681725649479035778888836422291571610172937907286174000617447776601261729093419866512898375761786876947663429160458200442447925093880840246773507184013994854610904650815870763925419430795635464682914670892602550944002698106272011250681163582772547629818952860633830892748651122578234849982199569215482133705055451286185103935732857472699463619607721683431201150547577382951809555517321858686468551989576319532824914318094665811709657904567636056762062852704107030979270980940239853954609257411020863033902694491104268688430319654172885900639848786851906683998500094772062989134095738688093512170488768626955448265520421228806467961052080498233952894963956108676326660424397597643290662615593043333385846973569112915158814704697113304663381417688768904739560740584507240057971706459766064168116427125972156257313721136264329854037532133710003093975203065482154255091394136037239894049430559960625114501456608059141259448861870969583356472986570713475877117899540537932276276576559864522074444002988246322969044631909891224940971573177425236881590756661315590086344102640517253339375287324709652150217959288949301518874003132921716692580041861147884735833887333998972092002129964065877995681443140395446058724329876385525029883133726806633558150675900084985645052132721592325049503539991877883165269668027124029427283720681776047536742823436062218268186404469198674509443078392805179171420947426142627347780910190407757235750639307607918386427650488113939455546275578845733028880379834284292879006985316002395509127854709140100064083675582533954610224716702311501124468706967818395664024471432463690355132756822090088012680279387285170559897942102296370595618265598569951321045512579813832818531304961160731100110907293718771208692263677868703112355505131171401831761446003147608484445298457820236301122369211456732118240215266563546231258826725194906333509922002581825937361347923672463873975383563399748006072074399691874502300767403928893012891769509610407017585370999385531246484130587136655856781232844905858604337096930157597249049023485068217876339216431773574134824985409130134066383860629091203848603425238004079535626742080497078475619353587519952701584258277458125235926697411078279840754324766393066033232986291465827978165584581555833219051034351217996893270947096966827277746934792326896052633028223723701099132803517648286974733678583693653032418630648829788516091922900287761530323859126186366138128944303048016738349658468465583870472790892917700168491038621650020117581125673768152326023025300947119612802731403547078157113169792042960033684196514406766407815467094421418779598206426828287910846336086672308563682475772321306905452404348693303788229064362972488916454999479103839288491476546064730688241782317995268624775483331818135240661917241184912725374132000806264403922752649053537173595738177155105368778287968491676924902390479667826045987486692992090490930481153561856052253490174361941459431803616485799962157842873544775657854151404602379168111104677608908373436818047742172590234124690110590783334415085307247526717475052410880220548292744872088599072453744574212906351198371362232373585679556952021317732149704965280240189902370747794015520408401818751605370253396013280801495007690089048659164503163661853820520245247876881407387644979297921175564227041354556249861933340128952140288309789112023305844425911360979942217426238736715875277207522515761665367344752289953537052946003946544209776724619686811460889555495567454123912451569363866087311521980899401325692828605417622896363934532878710705826082600456467567614669456038805138071389356391256975663580157613558386870596148176093144563621932549808486017826925355001643381226494061132139924307678631907646275155192396157342049054241348995781061198348406330197065547821343463495673092253333336413013148593402456904824862896874076595920761943996961648365008008698693966504401998256678823084195488992049211183819481677412566620333280078754050002683987057251123789263538022371295717378753014318413918515863502486009839269322838152201203181783116990158596443783516248909379785242598073491212514559137188136420171099452420622034021642144618409145759213162378458589647523502425829674963954313426560307472461854464464084981864812622712627032533978886590979412038481341677241011590544582267740879399439962941911430096633769671552346820741600331318816267452210659574379097882513983829498498524975341880820679958079678685402485672520129120025291717258701131376426447860955932012459420908601699106202342977704084739785266597267958068529422208442534310643861990929558024805613263153344173259274378037685772606789152806664264775257542130228059662639736302306072866368051774132768022307878229128767774807339370632209750517570429668768820599715070243740540293950486782217277892094031014066149958529261565121061236792454377849836734133535957962710951874991190825336136718198855460889595327021362272253480572778353862604296409349965750555237971772727017194922960981148146929874007329693142735509665736474572448903375693988755446151168325700806527077142953157208568063288587826365663370735470541681289590163554384677575612844879999768462541286352673027272703633008669181065654026856975667840733165359195323323543241333829364534312202358160297663718531535405670659681589805302511617190047038451707710483306394404970846297632049600842816282023445305889151870825425723244054174185515980711231301952668362259075007997624800988081665791945789893363352486755570453443170890467490047842431270267731758841999930062115413051100160634225412199514193065758629598645781293470508020481159004780369458521360827331871976892498680411153687617906424683490921342261259732611376021571193748466777049963559953336651943106814356064988478206997992780389044189819803616259567599099855565188476599032942470354322319726430179035537141958491923616223006786200610163417854484127654392437675435093470832832078854089364384415062256586897216749810594957485938346826630410871928844151418539468994336814446310330867509151437955545535323098862349150103706751795265173871024948475110664082006074169309367852148853066411454037677333124697749459808455722450615072312196821273816891532918924846677605290700870252768734410070150988883570608305357672087735787966257691767480568381890175078728405675108285567733115560418715442983146206612293830751846060137088761027142162372145255978623802415557929458599790180123821872647048374738607637994162308555852733722744770457473851974967045862640311492856611151075619740094911599090669840682761027922931048472186007248365107747647772578831998861957145734932639534574296948218885504868668347710232178718176594215776766509907071893473650368174208751804813237361467358223538926345114937602788139847625135251865532555864008635902790798939294162405708883730426993709191606384067181801300337051289906039529196089827451691583156371230210181214296296473125528283080115777536798647067419918885839852313044281364758888081758615695765123929396671391563607531890993627577169029424478078969258655822458767097793654380553687559640218975371576576128559657814934669511678603653151509541758293314693454948633187611112007584492384013846884371121501862075441490939968847199675949966803237326735057524227405552962420462232577379716405023016073490704779778274041387959041711773637539727954213117380407312810926860085780228853181469215612509720606473085701613726496559902177915894053554082430826068004482677539030220748625400623302952313224856429759462962066015974058462303309088583334239602110402112542299665765318180474313826445083095248225924188829855510026156121272124626254727605490829610664228889022864725800226987683455681736789666848736864342168185348793929596850903500321212063437637828732521325996884533055926202594974492311332925705845320752807727993627116100713747048506641313446085658754491390138903969708034004877144428402061636884966224640922109510006206531754168517036266544842046440848456125919245103622622402618406051257325445978714922874386268833262801564488530440780627217884394016585540663983602691862432956246066957471991602047738277008332960398122949118900464007510357933426597600735545320943124175457441095032742973940118125118812911283398913930903073849641863137838729215737679965679678673563322687193301224271765067255706655127513919979163294462340048093231056793774124669583928407605207415144507921822224593810469102888030682523975375771239391959518908786057456128833227657890629473069347933650930027141128399206715853200058930339474524797757297461040289837624106182946900003523696428338827905920418204360302960812028689167796772724253945602650336310363579203471961238590624338925683582425508024963099604465531443442830029673620633931395925931684258352312159685540686370648822154049428849415991071347536541055307670614825364420303512685329592122031828342478842455343786484281109247734113626767215670972321065232163790661810189966978184138352706588075302969154932928856348994933192088120127829131059983482954436018828729067845141030361142874309701255812890314762736748640087599393424584080516624766730059564520851524274152678560948886649591420828180773443657048887190673769738132208267447340663845194104943598514835929205355264185404474370394582754742240301616233138402223034139090807781444067541785284003627952721136501429180696816708208614746377688797877957127879736099008854663013118555556558205126583085251793900907230780686184013667132003043248811575710955595970551006013399952505966096500617027925344862483737385354744036888086474848191104195908711380923662326313927578360128834254664523199952839779312545319454469352119736118008435853218895332261506632722708567184435850555454266011458856785495486328077586468343378602939066006905434832679666859767697461110837093105414486633063102676683841777937684190180064878397244772475611462034601119638410243857407413516697617167568845112286675042459006459273737768644163697207528990792807218609854265839076585512236789561820648545425446615920858994141010224397723264381028725559665196009826568705085889512043900133328555753362605024393204501030118689064009878243859712380711404994134011039681095528934815750290012044355976398432510536296676170069026151386096429938941606155186223834001648644600967573925542353240121655590365455784822700130860053069985792450422648339173850650153825859397995365999736055960743802494921192823409557633045990871912676437217768135117381239227460762645005259172641241605124559893816521231210398249828121319441752613852362216194837814789063608987120974702941146146365818958111706685052243691816526417417657311603761309489741408768895398099163922222403820579499526391849862438343250441536013498054397557237917831495663887486356659028716741267356172047793243353431759526531413181325689987248499408417216717787388209722930774641511630678198809958949988635357806209230347117397026176004655316647785478964829703477911881202804767323597610884089135829959228927140426023531891358762037285888649774369830626153215640680844299355183511440478324006200106657133317334115192043395545560448229674023847215002641689987269362243017167040546912290023240680613519620012406825161710004143651864406901372680405545590859515895818978360520781281120263036377809081577866249522764649818050726828272223008777930642633672339343887378253948661212886174364219305699439264497655138800042249702731836225788654429747741727535006067093687773574274438468835568316175113957540641367523778451578679277093312515472742345312206992505896888133339495907548409679047991096447241093390984461090650692970697662463016473876167091526582834105416744548636585702367585241937893250313660121640066770803029348817027142681732678608977128092979724953141721061756224983883678310600367770976696185082743291111909679693082143678427022228063551803101679284734976746654425727909839649696737657040819637534399777878876804025323259563635534639498521384111443737200127697627635364924676684175473938037918820472488116082965864311494874522578938357903787954147017476817484377630298635373476531259586950351753765236640652903295014697865705263924495775241935492466851281825855329253789806702363167156192533713558484565523285217550960797326983249805410735550981182524744792356081441202212590365546632590639123853869325713990219074805774850354259446079859596903599863501420472092304219311173324167310319892923775444680961063442899188636313148319611832652280060297705141279933629166615691731258752432161825197325198841989430969330877396961166798700727756926939744443646347305964485028169141267699505080723943716988486216069350198893017050023821420734016347272745457505776484325905948835337528526040297442626528558347649948852436738028074439195436037977314733611934607443246087540850032782282427210253331731467756624709087567293695985857463535781382727738049787116873050394451980795317102048423576791943848301046210921036393988236977063344058047806872202803884455051247254617886329606741759557910804863631944811474659216370112742721898952840903005931092401122059831325178305779889254792915313835090761854278900522919753461205865934494853679988260958947992847507298836589586028138160028518626144548238965707788248678037017263398313767192155135704201605855819777042287385201079755177259441392793121749923791561772854200921238572030448866992051346078966200635868495567776385581485582584311446360205241295583575268824382648025673201668818718481215430209926853718356629966733613126909937258988323049943072331375256782605507000001247113423678594939150670977729136633667408046785532473786287023936641721406830873471008798597687668375618577885103730978006549130983891922934533140967549897149279845256417729726086794373431941279137172622231945608808829956614373145944259328284698105360625612308657994488220267836425951335572008120120352909458736120523318869352420346040161309413823329868311459257096676051045079944729652375885771398607279884542089161239483402456812262940706532938444599374731642672455020184373437868884802992179575080324625534000701630610600963654168832419242119783297527624666911989234679169544825564631041443406858484817071157970172796414608586668899872471055765544200083002409252465181725457233645694286009727132883352371592598598152361105814931424996061499168447219808748978697869981221685590092012979485382875441022790306451622774526875211978296934088826719862302383121909125728706351583462982509966566253429154212029240794913769668030193799206723392644878035946389523955011931857286281719937657544130946899132687760378619965010733613589195901606793254711665088213099436561639119357286793144176587731638443581430873537311875462330994093383051312803463259247298532782661146146681806359521821598619571295365940708122512298765213785208492600881324392359500054448485881281560599673787635680045743379072202226585909986715508551128832072606827503778219561181876410205217361161947657671169542965869041263394867045270261039169706924060517339405420719996770982157249195272573463515728406053861172314283008051767004550982342540531066652572682222635401646547314709938027942262383017568788831746330072706267136930052077930913234531351331544930163246290886509356702976838147217940015201590150504654965762577875700402955966503053961286057344714395873488322598851209200049278720564214356396102346100546188941905722659848965737876948833276725063274386137504341686550773907326629673331199056058064074264593319333858216884793842608508053076471531253394314084963709744396021126467430471456271448343054663873224881304933323351265062927732954195841915908101577240053109381119709758324646126721893784584579790698703917566687961272433832083417728553332453935252293645423558210307020124411042871243541557144127681195767059788995021569441570583379355744159265251837338247206416976624633369309736469822961943464308109753821229393569517272399412858980569841636512354564384487560742698345270513485941991819026509227351447617993118132887742970391626447716992450899829863708344831892069839857246586109136328085190908937304125522003756786167552350624457905474324194947667203495295235078025879291278251254623420661596840533894310105662625915896871584867780055826800454565186564120953767349334280208922698035023583674867576647056120913139254757582703931107509972577805554120916817829842325604185397323902618523054833662467844307001623848902606436384275646469283928026991701317735615036989161033615052907158474941299235330394752953472219212393294331548998494575986266397009103861385491269405058498834411794394297586725700049091421705715386258344556381409344712755114451004239711757057530921996816059560096765291224308797691087464096672002421038385637619746039773748993374076219559911993972513002833553965713035362185408931559011662082036937206576325274631858584367429897226039458913617036958313561186243631293854854039092012859900065261457997577603595177447674388223968454137632144844259897208603031227354057732066825842701262819037557273595892931601497903085638719915812715004196717140739938105826282847726920969979078611377915471320461464519038674503452472400394360704326919122161958489320862026108504302787219033999895956482652874606349599935178002390016742102952702801067069839212411436241636927852981203370304631561790555735685107698224888433042917946495271430920991522231125534065264697415064940587285296177895484647814278788437270596895323305138443360886761178413429716886534908808583255400699931149321496480436907866766479800057226029888643115438248152259364446609088389285158238295738183542995770203152947249299488903526984886902720738638622859988646378249518781739498580889700102531908356637494648769309253204788845813180188712852485356147643889445155457831883392540143391332140729927919282626901134908076697959163093860097842345909238451859495564893051902735248722324256591997349208881680353166132247972087172917984625106278759595077483926382409794791726049769241409891894913546191421003841177194734382971941616055696911972534620168310355855900409470026777678611646912996222151610168991404909912828567158100560446758257370477824989832041181858721612876611330256612818863984409662531748721890393681409420216736501737016991238639504416953979558669777576940387008295956179130720740087806567497381430849604218163241987974753710967056626088424292276850444166760687673426772082413243863451084690065737788144191722120149247191676837070748573518057668492953926385788992588775331480408940620218518994422213836336579506241230994702998545553769864752204916250955162458723133587950989073829193526167884062846173394705632538105401108058809996452822531925107644283350930753516052191693537261814510401838880940840146839529972200897893927020274320065254927251527071510970926267237410051191412655519653573470667928388476949900166211945324285793551345420697810957572616296533368884153943331639618167867270036454156024518003818666782692861888127672055485455835143734306921151558114433943434635010856061063800288344311779853225902589547527857047645509095256044202004807048754116483645724161515773956496012355974311682793564648374125284395773617098731494136980336631882167455227491524910604090942748827113053584581825387892348625853086902522747855163503637383151069724285860475111496039637573318402848051171463300443189849792176737212067033729109537317948256086990004046032525448650059750639260106168158183528719972739619777709438315788138777508307593752284679749571863323569536210496447026208926654584473927143841204197132366481249369708950192165089883925641076437718571440476964465917782603669035576832133398747813013388948220273442735237819273809390979729919132784058399553026388529628567400315328473811167074215501774932421060409721832233214096791521690016332703035840524211556881383944872921108411732046916767860674865089475575155172028179657602057550248670098858246676840265711695860357633124841560308473931540059377786372936628867721885035582216606466162745855477186464178745235010972818045620785990495753354719762462562731468280467518014721821921124981739939015801220090314195617393204851479087886552625044378655419457016056315364440966391982356367650197212475255656977315891793571872915530246773289626086458607579155547539747570047748860102575642507138709340446160107645347724574004878856015274981565143843362444415310736488461033243435875266913865566741339859517641549074430225733667545391103730330131158990879604106767878559698304676878845252711816163406789210838073668763464147685281136293836064560161239252942310734348942010628992200232123281434818355862744061970893123417018313797511106537508423601515778143648556655218984193229371963446058149892790190654822320845531235345323099023345610287274823521035404404321721285124190144271579047096735002302485399075087015196720997207923915271780771742202114992928043926195019747365504592440377662000563081431093288729732352085195417828472422735070075220087873342611385049088422293371632765458395800475848090434652776224045087808043523615301035658318789522867467586586348408381379133420938681329816927475752333603470378183504892298827205755493258479247225818579580333271694231789366843333845444222926910115809536998812496906673446449559141879199918996426190379541980164974560648076348758571090652112626563135787278050526335628451211303606112253690298692543415265078490293739408398629288062674440630615893659798893807398294334956099497906145239769380719895433053663783263184768742699319675692578322257670847429845258776366991057642271617136711835484827469981440557809168587497584400281744751067865277488709742959649963256261264190326040447137943826265247659478121926395072080008159067343249962051445528803594769469545362649193114142001928808636190848761635864084575303458840072078647917441525870127034453811266089179403257551974356350348411181898639996622208694183620081718980799844986897521860850278589090248591618151826057380748871542324784015256211335802866777125561298593407458696297228475785514945953505067427704919360654152204991757550380890208011759317321058566083453637809830922304606382786507273110715371608610865388356966419428378101941366456821129579469294140497797630254021913504012159249055887005377785506724511366575442269934540134515884914238924340275842508981926823810910752435098912666608883493065525653560761988404618322947646455249382141985410930183825016155261437545835088387788724067047277946302829251294982614675655266998263454726337685497544850749043628315604382784126829998585111517524197255461380816193282496389895445743695214621671268867300512923161426407963646340975375889843933825093400215960154428610451538926039460281696942721443467411437587053990438983869432837827065550424503900704206183574123851962640424884633165380938138664471753889587420353880631296946689052723724565721047233284297905279386146706068841239235199739013858932121301772404807371694170039515846171546415886407323049157708654055149507402648261753222893114360006664420554347044727867575370088326698779767603019496099955804677092006811646055957786027884912363277587672582927575611479693878613919984021245702064036801590274423480709972300083135683047777931130704235709048688824348950890465207146845957539623208470693930389609746951379470530974580250167707484054653274048108037758446234320166470982992278335854277356052008060887995955201624314156910648804840141426508851876650232168650385903705578531667711231897423423107952563941027991844208775589111484042817307640121861233359846148149176135225267650530989639164841096600470725859081682111963635546299576811151896664256435066215796088112689527351177557594787563945361065771692609411403120352444633526163113355576326071241634801392065167612112723984672610732669261210315785501200439499104848068936379453339621725994805446324149596021457744061605239971010395836981304320013672647906326529129152779236455907820697723202090165795535504225138015578187277161875194028923256993749376070998229057228488375514314173681795355268000037139132880418947557908596703695037013422897783106867274448128679547750551374181159971082533081759155208084303308022340491993249684971359099762497138009837356902483128503672246906067659245018041487459384913841798658939816751857114918287398653901801036560644864248656762278408674093944122140239234513214279310694607046680917621666172635426924665023115949558877103735904478551416515988944432332880105226217554948280274253973487758412700555389760220114250720660040081866314146908670033166827125022426964313676639564230623762866667036852174935808930361033007507373487198318496500089591273959388716499788604893597187359512574422550061112907272346394963252268269339648302325655845186180451227363449153939368741001689702730744560185732252723765648926709060242641011634246172230209218311636128016797372976068469695589656378027173732379725392359853300588387884375670006092663846289540857152391490135172682266811176131828803823744624017706565932692641815247962195273351613272299834815490669283454478947623158582829566870352425855107853522262997571555361252842828256024728691145352680962082392348735041855491457367583111829168222519984447689162792170145999510285859530673804723498977234798663202374132678137123007068775467657451976176153168144300469079359372415410776930171628281241229477848243934115820990553648694677666981304498537104318187818067204135713875532164759413577098839971638913663394167946024885265323699592448635382496039752032681861585376585372152524774760261642038666453132306879847490834854084900789899431162450016451559658429664881646595356912752479348781751831192077007448950094678464548961270124893163414810318207833745113902210132443637282505528476983908208116513066848546861248292507029924183612652145762399873363816310485940282267005741234607233463938775444697519384711276369132116429111848123321740855208383082641698128420627380669489578970604598318721152787713914294339001633183190001025012141884300804883714959665954521707953510817753427905318676386048862748494882974952994496624243475004107218687814786780851623137124488273641360261886519122938161329640216386871908714618953394143690936429777198673906826588477143913443859645593784731881103525807085618121415010521073594800177476058537255404781183703974024152763382900984745854870261719472031340587912772626520412948152727423719339063724080988621099564447953591006704391162948589911624407173561393858043766780965669561213673268935195130844773845893710244301273498979157768919496514026962255914379419927645603879775153975035462030322804253523309010074219145131503341554475792585061133778823783448338596731988962328259187540294565771271379522063128241143470284672585318571722230137766342561331035594146145014729989394316274055210024617829028183359163520043343676227863527013770486681304018737161377976032109957939830261986588308644899123514592043952940173604514453632849988463779718133267542209922562506234219353945808079774734795913209453986483306511705323792337699180568110206541954418564116129712072376237287515972431305742180898490560540316214380142057112728169718564646882993964537558950364688486806436499368259063966408314728041504759797964749755930635656419551894274852123255935570670530607403569208354259402520370437560218293685241646844654130682089663521449122362225571805039936701668833349615454628619582771958720822609548823130904777740836371980581852613039763320457599932955570092543138598237705233571364719327163495305450431940314399743688910206054815909920150509223777831218129089518004386630708480960867359207012725694032940404795211961552831045444398236859324795937009324909667228387377275089494814884801675065396443047049686623227026715601382804859773501382073247376343964526237979271643201047780171324304741884983176908937260565303147661926607623572633481726797215978819196033446518136186940620777986738372133511056878756590317122646743423930430445553286003277863684570189423737232423878532124284474570185720339814722747472758153299547193087307631424244942052987061518767492414549528208523686856983697909744958395196989341917788640951163668625708698241956893361196756962683732003700260108675399183238976287197229890385753541718366925894641565114976717682999462588251602392369386524647507558234540765798109143830071295739275317163122002035178731296878676997380844297430700502663282026845160452970129170858447133916646913196808129437176318406938965767623841245084284013137000173732929492035408231343915236612380847429080418681224375698332472427229952499907468001302287359476256568105122241316331396537600052911467225057121008283234902893532931119471808432848854042864890600457803254214004371055103674345018194887433025498746297642462047667672584356581191079677953054058054243180823486713871367541290228221610427640786698515543326909349559016505748071508480892604550462431212257858860502848703340441336403195801832352624695351025290265539876949696441697030756350773464658608607401881842939753325626776515691150086369108446030028860223798231786583341024054923874603899196261534292088196232302789148648869734775377046173173481204726389642135390991183062568962125000978072104610574264712795398293180342537536861087495840267817768168464339423612395428900647610964180806110634336456565066776983683112513984530588255545554286089790482723567515537904450207076537112495831893087130749858535109619175247198242334691039148944904524613868303658992524722164388943589552612576480850754061364159167711157588937297299373004506582314031104358829331877951223223710064244545751642979618912900155581294297671558418759064436229378143672776580209797174542184890087196970886110171034634402138602283863032217011393128922098941770935575622791081078530252088995959930594772591748321528713372349111742089519982384200251858448548899216304984517536364959918848073912603871481172884475019477104809917553596780557556771894296486173893347879057661679134371483424033369347794356302049442356478636894589400749649502457522583958657576558652805259556385780591824080684609283993578484265329106669069752559797232457808129067415350527722146239095511669893780226756322302553285320952991817353233166762641365928760249760875757813332380460217792871474034142857429291516077534801453626224672571748571671977354141864455365914795398027868249106096108954885408616258661161450442268057702299209597358852064108861170380966246139730796238332405994176180479280323008897257170150862403061258692532884424058817827125753751055169851494167934671513081655057345853961440299736847660526855555241455927987721420502321729892187957997000056369534502843067129962006036803142892029136136308618135719367594111558434357831039712686352340440418459445745636965253901295139255652398385265188722218290614633695159792948867025359606434120393304056217470457248300867652595813960991101825754280013033741636709198694797852693397462011685632117334213193630225702257837738714331063500565042857612169851967346831828114733417435960934136577365882617147583703146842420605057099845397253037086508906545495168496904696415637042713194492665126536316106191077508828246431647254138503107527561265132547819693267765319280349639523780826723271392640485061762277775896354507974328303313810788561476918423582940399540327938363892858768700951708644359837186457564296388151008150493926396275824501777430072305306763735740816360117548040232733614755824264333461777833093478785870906225273153539601423042506362960902311920442439299838271244577799473505019716993465605987460607384995675761793802944906143326870106335145670969823554608422671763904035535260436021331502117754878944723621970619340948040329650763938989682157201142851055299102376689368166837902325178780263342394245839785780815160505917367281093795120459827092148085336803787082045335541604138967843550742805888944084858015621503980605262893896897037489913030287395768649199705004527253600941255893162113060096382486573689224202259565798120868906681846535057878381420252948540678140188459664707017404679729084039753036067158306548660121317518192801336838800197089640301216577972704763460126004929036171099955003457421769862197061897170885018270331018343371066084093433786697230773046337257895882546550917753329824293417733552683992930204402549214402502289524479691779502194687352410477644575286141971988811053529362241299759543018146660804777751474808817838007251979181549140847526271434145685594391596389462330934038564083642645607667447409036841519781302288592803365272169597871566243679960715280158514366672777344860976821949517232672121958829443215622394280758499084075658122016823024237901927623153073827462538957581214874198710116999101252689089969568833383931719525570326824973808244791856233628672143883263176382010602989808798257106732105473491367589516317617499094434067845932595624228949710527640196336562047269294946744085718528440056067352475712271404668514565988991038949115194226404343305900940040757019262280212456622454268826092266162971415547517919293371080480346625797282231436452938814467365182977068561718117017891862051926233974256593925053757109711959511610762789133936950563702894835233900407437470261971204393301418470297591686711674706528026245906259098308203785094409918157652807429749608715555946626856029877707703137429705855596117350027814346414423583934863547323004199157085484553939397117667296860973850788808771356402335600892519232754252355513019922214610889540150918047587140437855230404777525294020947416398931970793833980431968798833740713555984014998282669381731796711468997247087774688171018059173331407560749885814730034643657877786011962320250649952082835973877129037986518126513952870173849353687375652764982525393337835645241190380735643833089486204395131193467609234973219198808701108238621206604191843939296513334583662612307694990201785029612353280676676974134425876511968058001762383261668367652283463445894956398765197424499917681945625221213280233476017883479657829238755550001105753053818434343331791826373019298676998540436725515095897092165460046403182822629995389486470225595130110156331959448312656119027362597332097633000711454220257325035691806648901752772603805173720073383469207701250147629504849271945737688843488429126672081869609989967367455777352293401370578561111500566473669406348768987471523273699609688610516654135110467820374627444593966300631036982409611641698549929561478336023212429656573083080837598496403272620775680267472350600314291937440162584623310890308550111272541861827145368326522484647844737309401863002685568157690175879744346833373361516987578237635041073025481484854579478551179318406326648360873840573900268218959834771067065547437397106445144581309428791477345455321918648035427718949646072023765071065465404362627369794368073299009410083084002657156464295246140441934809012667475797830614684042433512675976808629816897342607574313934752890004102973354397308762295505147166358183932980091697567795399579304975701241051234170622422496574533301968977850241822222208711400894199382149852943968384437475761022247894964086146500469372900460920901733364571116188802057113937882633666879056205520786038192068726940005320451163032333912061664036694585400071400681602734679859586359489966895997290135153197080545354420508947262762045275008154482336715555741796010037900124399994156475400095794954247852529531781338627311797084935128908383807259541831080917227929597736254338647132684831603080193920616712285742174332214208282141821528088398435294224637476559352477665420041670333527822053231691737010189335504060699280132887296966582017082068286675680369157830384124042157661617607209408741138887093417084797723430300383436550607913343094553123261685589026876167043817787397531198336023331555248248781665271650315436309789028916432869752469494439443910527762772591368043493382315432144552233311367436319169237278800827755313533155395062484642896058180385449907172664275257658275838239394757553829929012140373466321316999436636433992273197352261758627791673527730623945676547423970384224426526081616010885919870076682069758770924644107161566089202604656676986714462539273234893553111221621798876386497262724145046530385173763023220832753571951539526152975507138012184241977094322126722896415230061012320358202478650732121514549749814544012089213259090710338593236904979339752120452387316220352046136782863561722068395023951139025361893663029356427395527140989429918927377924421896407920582227668918597005731926884830030879482764544701566002336756362712405452701808500539986648057172813847036600020887717796953742536556830771420150941622112266990171780862132172438646995726145412211623307973754030126569050048928420136969182085382963896913483697381144423963295005148767150629358075227066394138462655614632164715285312404355537804143770367846809299677431260419744965149555889915319948413663279730089440503138462256737122548818658893262289204021131400244725743406006481208049505595265436706827406053342423635679637222117860572318055917303476355236595239625902134285891019051745260462503120456393879994856405580221680902766133844663969831154367768776678401365883702932127529795323703533321351526765694318518191091845802114073520317925153388394821823944417066460515091276777671738967885333296160530603082015616167021301722424372267046728653821400801568582557769568110682618427206423139199291533296058531888268294123258612868100210237316171416239332728059919926725020816783470032128211347447093204242606574893122316558468030008858799720143335979859807463592627877515205024588361432744609283533227036388233907062622957684457626703468548606892519574654934061195798546806514939701160349565603799912166528010337745857319887293615717438332322172846202878150134784070278423965647551274377140204833548567412912286438978005270624950484095542735895418436642165864321219557411729941389377084661058977758959542424878337720856399104421858039172043472282800087965719008135797047208498769094298903891720795707020249902452430822395352143246367291984775758691514552372689353220094386048100252546850732763050675042169170035804441029715247946590621475569395798705737361892941921818559946907892449799372678338019769090490602065360044747678786845759050073513852662870369058079651503800473790451512188939294473128227102232949971272656640327513351578568841152255618142489419757586479563724010152947347088125814968199127422045984926580062851888295590921948162913213748170482789779340279785863810937031373588881307039542673659365006216963611575835208891648132492750103349425329658594627005135423933814446464108472904248350034950055607349077500842455259821934584534285032350817516329217127154528332179570105831185060358022854501357021208089830450189162055424672597883965347136369696769431231147295420688741981266358059086527444678755276579996599984611627069270871220440692388533514083562976299264121452202679480185252646876948590655975687334968372937783831068698187130820656761654688951621988267401345997140978986463576306637103245440727815400958085513331640970533519395620199301518105547617225639445623376236278149928227021292370240903156597022840140951840213457694677418346294243696514767769986102142093932705873998088162474318926355235583963163336388407716870401600629768174782639913883820772923813418502546369883308343724859637763368870332739707029236871727324936272747209373837269977855348450991679146872332271366423154344406205642768368176409240314156953784259033084107435463895509746358277154562678032965919552929725801734541639527746214283409863051443548365327322059975603688383325684884085274324756376015542452416235733830077981986608541224145888037305353317057539277326100170905845847915579905439192541321320443148060638905214110940878819701667116778269811475737259639466172817130395665188922692909567971677367025997461568740539819729726516873849155598679963011841723479955709363639413726466408375882749463225373324117927307954960843210643467878652036407594400049544877440800049195583014685403551714715481536875636905989994299914517977035660740209781713792668956180428357360988954640517154140379626043767768964679878488352189651574833590114950604603302484991132277245568010773130808018026162756709383455895953797042693117984515958055275412443955883767099106350815800500427255358085026852597155310418256207404763479353423436892952362062364618408844438363007230733793401915751799038525788556274294265730807121209251731434934049284875415877978555662066794419292009588636955258583273689100005860107055411572957846189521594818894511416771204741852044213609449364996179036720664450077506477494202114171460921205514625888207214631123777807646190538213190234568196614426240963268116834204805942346448252678313513996216991710923134580331522824559963632902685824050716477582290657394032561079852981649743887490273782320598872340265129638565618318089680409459946573623386771692827215751863973995544423737942231936765278075951667573017394891850998764274452972644802034598413889206148873745794402248139052341273714556309044247561465391261361745249925243946473764476669075622285044721281296049772681421182396940700440739928164113312523413806034532235540164351954712791671496512003730733533117830933891491471398662004626682904818035995918200200499980429774611053306534456213251273654045524160829230092597978238390496072738489331070512913562779850557928042526169446426451488777785845175005374463875291216636353005846743751437666471662222340502711815015288063144222101926272878244948046106271889563139228304454737263972634144255880632967182731700764755057749755841228583994199036494417507133555672480507543948314327518039367645605633106897608464082439203524170906025587942907849190992205249247143144316365121289385517989506037533364859330381411313674255882182157089885905576908783236361529322407355884688450634231591369883339635481628035145083666850057789357723282679226953642996776075331889689034048667684901650379418252099600255160283646234408394760692706449498521716174615054053656858211641553727720104322464990839515395092117920000818049614725738638419492316160602300394144448279458962408502461058541139981196146216299617249967678253457357604639301988938763086760372347447580001270312265296214737831749150729021516410112431465905792900671326316935385515428912921038235706022496463631425767095549752031112382114226619659412604785497402782480112837455242181157998269021607382258856383636614775001682606171591687641125703308303905465353393440846887911965629282173003519799707463962378500307757893699743034619310631581043453206768347151731732579601848905378911504603715749978893528419530315275259946958331186916596781441181756870814327266634292067165502669214604488249274300116654249224780529187991765734229478407875837462230525681110602223486902506437333659217948566365474634310968645754015017461024233982747815702781175083375943116040939392254408525663839701785565824485297174349767723070790972981782027758301829292494902525898134503543858942328275650847418437825655740687683592349393300724838832800529051879729693885496019819266526480623289885887654964987757509847511874944865360386746226412699510035088378861848656886759017385396200570950854744429890673862914500796715166136167284842407194898738926178414137005493634374724373648351048870101518697273551872091201636226469919231532159582623199208894090546608537035063529393358530672225744377124737621093860488017898154510314525098818472301001429900578051571633096591494844898933184812798380128567046682937142349998967614355691890372290177827936334787045114908535535646567098054721171784333142365662517077475043465730934771039445869433528948795792541256520311874029266361181224758905161843580721120650567069891952381370671378486814233484353675016607569754609962940203411787522540845043528998520195359770676092959857143328092022018332100062895181550018230469761523104185946194506169594574599587340006391180475902987577886277441826838221083777535975237691912248905898095298755672051199826485038840302007452823458549171166996834394832156809963308391627999566375476306497629176025234115365092337312763318671878075989389036388041109652568131823357326848260955936592142074126665052514964456689030352984938592764672738486701979286104574387411924060196524561689404031542113278157802560740579908943245071325786596366349558382170178964171984325438057406055174050112432348264351412212659665111902455332069505296140963094604376765816761737966677291608707758332100373270111952366891025784223238313067638115809711640806339204962055740032837997538286127483621182214931781300872085314448798857437902801270605374205373199222743206851854248521831212348270538566774826319797552761188865558268201780522211415909816713479372138851570989044694934955146680036238233409204230414251844750313669190209952994535148953475186945105588626201016925231021786881086322132100627642488833412481321172900947210699296641440449760692664698211586592492713053853491510985875167315815340733210145182428694071250501798588161312066188812607153879969768750865047971204303044703105176883429989931809334636389515028852506785151103810413365293903772333930622336334316410887382250622233598308863596308295881899020520558251417466163991393631093284669962588506028944395734598844373420041892653116345442151737106026423039454035080995653107334739590941641449214931351148481444454171780862802035277211233773004784050685393746614425168011404642878276203096371400041397221967705359187463160838375822923715262214093169682394505536847912863667168162208427421677996575718750755384322078284355276394255612035971901819859899381652046494522269229545989803817827929363791663592008731883284642379914923742860921372886947843412461393878519673709961394170266027189820917234430420156652445028043019415070228228631321090068363195495097513002579197454904365953873741302049294835543445241083642653963968323199572629228149489231897828350703529832839508568186132613201563732076635083340266196201935747879087988475516082674367285975532034952888976744248934452811316138970364023708403945072013760574491172135633144806467805845103315747725128285770238856361279777544462768189578389367434178412459589414420138597757060580347141820512246773833047051654400750488793821275516669530348755035243295310861978919355274279660940786817941952641803342420977985295682346381322765095326943338244402660242534126687857908093413926717006008641036885295870905501916231472002380371481371980475101713630939917706383273703416661673120188965621039108464993962102507939050153241762652742286550475124110739629544788860975080042333614896309251065265572932754614350874717536799568161561184555070362792344069271513661784244092913391429243989478314539162112176733042051697907196005565016521049359135443827581059288153363825857693117007700740764541482067779944949335115342697129176548271506569355743163306557504277399929009767741280131874362065345138614372622816945602260600419669338554613414936804474732074002000828702324879455098065155572436286264074685419612948665391597274525889141305831713795503767045039035655349966445042471860706988419914135465532679843923291371495823705541552053154974367518733189602437562729402450434753790430782198947644577909913022164060717994782572689874396288566852697463081879618252295879190789920958617766053715558907382780437116216496430607841410573861780655082183665842423195244528380837146391017391750676397367821666474514263789377808036189685968277159746361581072868904849451895177928888580547679531634988871189038666141738584850867183124331802623722440646106796084980172851594642125417094549780754771418509272332470010465515173821400910879641459464506939201387113032764033894944117020563143296598952984509257963111592910049140131442832970467171493690805587252238141958157982049091728330790476814014423888616225813654544781166819887962419242004463994885669847745119270003158545393459196072327242841347531075599949673960911850279132081036706885436994864120617445155534370156538474149979732416860948137904594179554368420900816806171542076076192046457521489190016597514383829598914854619692598027708384879152557205238525891551422552255193291276808148873221742312796967728922627053163517025281920033793195659661118037954071246960279055927200229479820173360819764666925011682408451384657457071246784827872859400883214774106625862535274854088071437589724769378285080981536682197031281274084026007619587338448417345732148471365016397004346238747169597974466861302227351562472400675884915718923139837437519820221550486612834187932082971297334252124049956398953298013557231846295224707328159306548827532172532041987773148783432293301862484764776673836474221447952548592096362352674746158955651186361103655684630725758270676562505042106265742016376181680402785144047900557243497880289971636230063301618352508671163271874163842529185418277922352964058299686113313594126776669208671608677644895675294292433118687652534726759076640519041297075262787496369188732543808375466408451737337392168800872586760950049836037477622972537978032710453713221823912096496687704591717020626604840659703081323143248017086900881191646420327149091813198224780349161297830464935207726965551943268181501790472325695932888118919171024490342944647661040510561645044633291810019067206841341870782815338951268018085842633533762165860714647918463722512186406907794467713814716851919920061467062598613225050335914677409634418501373856312097324714567703750937703979874731245239523990653537042038031502259765858040024474087738435740360805485495929059944703107133530933050404077941486379654259282962326999092449333890436093488061440634178080248667556793541874853812254895722432535480954282344820592665514958862686735259529343862706150544631073906614184618575567891250616887789561034688519529978935901028490283575217807726735475480737087160332287874500445293700562615814560488473106602095568752202860079743503203397517305635387232032260533793455515532435849294772313918262430856793117910320326916278397456903684271185774721392479758460183456449759680867495803198251182947946978381882860657605027690207017380524805655455946286654494693634784092439162980151052626008288456930821237128283386734188913361604235969978148089593512609442175637366820432379665679927219924170264940852940818421105257928576167363311263833477849166826416958839654655620109982466492279578287202590052984724365704728348276280223117078058269629119989300283332431356165740035219734982327501660379030578235647324733705500664167353303447816627220652019758075448844986097428037941180011464947948250904171559115143826647283034201344098351193891000848861870426062785735835255187477636572220723662885484321784230570264916664398524987841558505619245385907651548266415633401233800700206270313832378637606106428678571403192110734906987029544959157302714574697700161195426607462774368187088338887339811572762301040236272648112261085690080186454114102253505467166559850352037680631784731461025894773476948487222777104815626101119099050609121986264212257907078269660894419872067753220206072825903487987151211737615076319170449460923428982150844643897086535234972438696690510141176110552266309549587086204093706630730013547737936204231624766220565323640708638573516176867467854036651371894943448902208632536391321035376755231270416496782239502496627085403138065360056675598937727234103956714736387131800378322401896013691171887495546742658800759815432738465431123508865512271764824127207483493328670561111790770133740312560902309188520064629957813613987124494821244744980950538248505280592627316080086718642611311044717416621096846392118245214789801578327922164894338196442835353771379284812500693610305799234683911289133372769743789684799832733477432993917868474256013676572104849667270656254232361136746893883096848660872049528915243585499463088171214338047151703629816038960092392741269050950600171187364881110597173810501999829293561189100442906029417888440129248671809191817806411441207750558792796609252140175339116930179118512270036186850179214623251305671752298737485316409491157550007426058869552035456057595332311736773652153885395295817196752514728103180475003106260040997295538947031496600872132360132026700840681422751558832682256794917692592708781411257052713502031123492019073025778110451447875695484091289694063512786530275012768341491041658392314963480396279145802949861857488547594059769162157488048597081737540366540104126772160378219139269132448756224359147640552363279645310247427888121176418626991074070141095582816252439549971523147892980593586803206127022118748213215886473169370802767349751582927705684555136919942571405498226230626460662463798997509602406293237177192135303965930023665102600661496409769663117569593411704188531314475874752531919113282306301547503844229704639539127097999218601239480747794430336111759695657354457445460001643879133390312121225106650898218734535459093895580682972181981250495602424550034566208412798785385765184027406449663739867430390886280488188016114208537296519997083973134065716621418112601374704452125297122424676017218312954604743868277145325486736041815499338039985870591663785071186342512575501601039753415844737319156799808893573175347949046220970719795017782501332098475492033213153991260237963693977489937395702028436373077631588443063026565814513144438494649143844367270282428353731967928227056985847038511769558537127305358157573650023025991517566693512155875533044712884111387893641691557064124218669387734769400847314316222541831754819298074674082629949806329347043475842966688804867673459829603073169527520334251747441817772150757193570491190221651314391264034892616607638296222206055014602178769445562814354834769176123424622829978307285818982173344135408053300679290371947311197450350280816370147242380230650812610575553814794984245851688395111751074729916937932942687374211120000129953177282555698507163903703681247955034557226343673891187972172521739860697819651451766974457782784417241420886154586341193205792037150039314947217291853642159394734948906736483906922501776045143692886090635694420701228879717388340109796516669113480377881157695731578687057695165269266328185103543995020252733961104211744745171019120356128118934565230025237242544244392728568101793112313431602092590851505034083502731190781930446384284805851522576215905448701649851471955162268070110463189965677227835285025357173536022535322386981997520926226592635854052188914424944713954388775531690384925416747289831910923125871520329510916517144784240977866521542822006996830819902091480387863562197974077048941602606460050097850495715284658909868577825850313261045221827657626708345532302947389250742954164150654338257920487774794471967242543485645894797187727981130852073972737153913930207030479521005299817634865497287237232574335914123679772710782090936877414559147306013863272035977712322244465217107735310151232209026235273346472714445750083436624000271220774434380874292171461320804972107105709499384808696068119913653118580237714890102886011845809794183360674039589652328007274637442903617812856044321091471837359278416237608447623615203162605472371016141327009942018408035861663963789669435539677016707497376243085006204858037933868159648224628255568726257898708056498049646454645792032317038694623071092088999909388931991848561059901373940075394452605571208146387427279517427991321578973336877682120693901982514442470684970420274579135533684691471313296367069286896625501128759715397023906659199872944611645118259394149088461479322734223752366100403888179668721451943541010548107504114038933844239437459142144882251672296248646532644615285419691561554059536191858629994366776521864983845966708112706693069647075823515360735249751870528375418410191183587816843164623292740639886340809065759852838749690183812721326036034448230969904830124305971120106809900374298594417012666770513649311888301150830392810167410135598481845120070536625349703239060760444477135526247967618032985503391899841757010944140816485182801895408132376158211331013267904513149567958341242003120943066016271318184642556041601980816207641509418936952479132281907302530826843348814400852365928627417823075069120228168429493973562825058981729698079142528822612243115897046312614853494879703100436756277486033390414364569666248271865496135463954331188307308554908257263157562498295360633981918569399977246189824660716721285647174615881040897186858950444264624446651848897401455301555849454066956936170701096392813621683002640682936429705315293406352195326412858426822795699678087134700437868943656030972908192983455235455220488427340919426580333623629508112885768964285778003432286757944260020778866566429484985773423944763267090038382217435151901550463550129551080892873892582661875672240649670945911899452905719335289060050827684942659927920649066437803558590717023825443867416641579932894279557685694419623403920461338971732053991653084627067611507015082594357134992009978887539952181656834453508205631229929508295387245014606310526943029091828417270221732760001985815623461432103026762952207378728616933330453454229546202851752240066130042395143824656669759504044653374950566534155414404557456750726202424406493097677441575093865111089794352754947043959578487639338720213903938018108488770468941270906577449218507858999837132692411372913331539445048270612947345152119985634189968687721887511354058617382366312404779807951487739474785937404493271410026142748742880441800060066741029307539706241722358911181979069252792980228151820646256622781239355265578596075532180697837329701903542123802247770541517253434914668069402062808295231425774054654889409382790734749969330945239852521829561376523822311302066736490760750577356382880068918476690555626567133621103236948651633163193830267039252640335849066480574809768532344148409742573333862663662847301277070188830181644787787493722394660928864294712444262079209468675398857785536646233970817378382642436705259845885506560266452927975993237922142540023342141146575436835998856656356933708205782955542044702903105448300175316319465705099442074334264622012403207481915940308072411911982102941773802900982313533904019265664613301187617748791619400709450688347910634383290948149238219627475825755841085910353004511341976267479127147176265267155872469464559943002124555070756589699233579045972990151757291072767145542030579050542380989583487602815780767588980754667606535468726655160763993464402350844775241462050559127797238423739101634269220354515783140436154022822491742962631533424895336175264485262990079230906764996326698966155497425444611044661817470657991868200138958579847016261276661687742246978417395761970590841810832729108107091265471560741434311872165502345778550911906987583952441775554096837058904181095960792318622641848277782577685498994111271806418395737383129004841539214264732417273006438286289227544348368558587621528183777689099238300510783811774895743659180707041267434160517444423970582758778410680477352640533652675132369565266116247111880684795692711705868457766967977852416649146239528705294329438019136356249562415944846992984204372538731492225994972269669800946226892632538858913330791540031006433495111656738569083061036239744902913405167483519049733640300856435521602685353119574242502836958600026778266245555333202306702596450371899199646707809535877562468794673749291487331036443362018548657836845024408241026245941306478746544513274188898679653422128483031888472008844781928314000408284824091182252593115254567537428644290627312091365967144697771959580331167175961746058251150744219268969210927342836692124736091020177973891923061085248674309807101020073905614554244622425106388632559381894376232707893941997230006604434550082183879636510456383236578143801543362327024029683985588304370793990944594992073409665557142547643038557294130808260781462853033702614310766940918698632645426083438459483648475762748981333696279910906182648160411419250617459605392541482448574756155639908810352527262936216873623226413512778736356871351305162651016295598074766370733123649357414294564449252420032231001632268589282883045864208749888073963236313345221999188916507752844550852269102754524442561634554393301241200831431080214971710654857706070800551151135369029226391188434678987336460169107514743967561894777317391712376380199230641279916231570869799324101595741558895489560379176383020636584391074093756240929945226122818205129984966205156130115077301569029012502851341074593573055232999076529959868546485588186748837802001384485744882082261324640528339438670473121992908699307378520709181318686567707761540320186157203479617622449482559954889676713261090888254108163481459339615725112265941002312188736226327473435062582041287082958412652331904922722640276015250944130380682911961708101108187313173580158299537684533414454030497111159847903752641585080497381126737716764337348277121378579604175228988064526570585179492277554452482315152728738413852929216269827617732729860091209544481747091260586920224038619621337932469183848733782218604522186072190737076873502016702406061754127084361009554350933690822220503612719198143987615530531539916245880485217822591765568671826295887350923171099686257112495126966768906064159319324216898813311218172937613354868276053606122371964066992382273036877347606606477131164533026973896169708195758096984534566774469858696685027381310624835287766933557250667104020299043378632181351421548405051362436443332109565478103558361135100457923748038467903200261952619499934271480470514735646242953677622379059800842965070688844053395841718296237823112022888526869771636902685829007926978528130787652361919120604485365505688479069911625118875417513618622757748492933898001203370847284071270996933410595602040664526476684711368808080307106961759176284932455605050451579143529725956299327124258713712348891969474693545831834280884482212169210165048776880966148353891116025700195310458489727071963175208534486205583019270721989791246132486787147525770899360132960954853231522312318632518386548574494603696980770814163334845369623051283651044994521416286183673320809472714100132466127629352291248030492117620550809811520683626157105757976231179171200760083339825618411675849975517230769451340468001681108989495523119908803208079284995189580525370838755549247467704523146423756717553317201778932004730642891714653969247591893545852464087419563058731202459627707146990956993876867571163359980659018042942076227324789300873207241528519781001316643936562040513881169757055347375497339946162713160455016310029620991164097763113606581795238973595411900201092195469170144684931875820974377479988073116929722948487192805509390798731200545487440414201881153274928281958778543355433375196629514439372017347162214862501309820290593977300746375505473230201172914917271106116176012883156233884316395916451744388039404747238789198836930535214104459530410226897279903768961866758063745359951320081170814417377090160833360433349362990262289815623786030851845536399265612753240089531117568217885377682439700999561425174188216472878692697980526816185675784912817050220937389421421392066057635683578248230010257944155801529427056363758471336514964350865743197158749450566685732643410119092857424193541378077237066696475612385731517745771607984432417056204572541541526819264654527061137611405113887796352179474357635038798251140844328487388127156827723233928822562770277291073801526284691118429092222485170252322336890454309133739713726045486889004340953310716895791204962104399308072119707139132381793686479423603465043411602046805974419380245711857364844144258797253083721608299039682401210457552021118125179686032023592427401454494338920796311445011304984678452037916217960423886407083125473561516160926137658670722647181291549080288028455213735413957886655365018580066063734419299268464112353770681986029288307013453534001287900683203622221868294999455049363009273944047080685685926724593754115228695734827023832422849544527135080284141320048996334950831329768110982076245225820488891391730222483559159603081072273910514548544015961728680931352567108027189638270127916057032780459480344268251435056313991104344222987625710084840452885528363773243694662041628636956025355063638421102196948884036646751532231659502684043675159823046115836779282161194098942054670495673999882481573253403543294407790384639453684492949835528247812714279342716849937523160052996941052787115536180301186677260003471658873832887647200866823645430305063487821478732674892837426543476053395566445142145417579688647381643413990353393202987218123541028666465887240161552591963400247517558509282165615489638026172582495302364178713795167104726343941924788616706488064857452682419911567744896659228034212288071948790188891538292201165340019496634550077897587866692460915910933030148573121216761560822077612584117565601485696939081014780975281474067383199736248182276156934522844080351937270393883405711489164547677588092498962023020822956719490887810211753595773916615921764430230018239550516013460046061808222096336700512155517003446129457649383803357363229154239090780114376539815765599938232922465317882505435451893210828313719361191429072012587099348900306497112181858038898086936967105763240294618641424929142904551755318370936821251569617353979380780251277917381921520001990019329969863848400492426402249798675706153254467385222562298495382667324718301015441114447988412606697210364678937012772458230787147609264626369190121541636408529734885810582765315131860611296454995242537315705838101989375381337225123399833420526648103701016125671195032861721416272353567923568817983487007833454539101965600236578443884169691114331304333859884542034551890206006394102942437207866187710356438061516684305820940457759036934845294199535149377306918297194787426028801279342175971822440446161821299332699379358027698440299595237066262985534214439333322283864461885477875936018607649964278667258802086231309249437342128639315857173545511130604311949746153399610109919857945284213806586595810916206764465817993345103448514491020281843137386197688716317176812267636978004706106692034612647837366127645220029711275807825632370728658955604967988764906004992651676479579838683234292027838134944445749601515158084414436627899889517016289839014170604545874982937813305921900556159526977689835577497910225136199736306937475700338170438158120124251682929371127777488746733983770794206010864759734967694988983975831332172855555651264699731858661819816812038212597146208410990417098064854778025937494832391176961778435117065629409464430439868679280339988782897413792150110085151076157703147004954934015676298800855509281267928038804954518795806527126099951073657404662972253534940858244737845070730091674604965652654113095628425968775263813105482330340801932218365600944032642850495444002074757041855182327886883992532512805447851352230324656582913944018265037799430660667061491872997374502224266304334656455018752712456717518920320607657173428572973338517778475999043060271504694799527267836775847207853425806367955600513252686239874560479832658024652307467822692793577578436389783450920268109264238369730823851661422771626754694034349476537373516463547852995182824862880015633297652699803735149373201153380916345883525552195068196645600224087124206088027933955119571577420545130860597529688983667183857562181716924332809500031392683683806941972505455532733360565097551897679944274686131429497722726875352502310879636491066844158058865675665903422437753171206023180263682803031397037209567775386359322533570939061304109519421391156193238143681938275451819308962639511559536910462955414552062983163117940786357204640766701997948003412351681736400635343710808583001636711304693584609615359463869185989883458522511710242651440572322408246534663925464216916305041456248131130077353398775168176588593042332137516634337186816989301242053275719476941153059657734236803405168129746494570949820646876485711599697704862573876949097424119744000196619985455579821733214542277985844100768208646921617435420768354555843669662023734330490690771980994216303481091086702464775532888203423277908516353410138188294669065236256311071737564446983314820311760047843256311531714586644334116999867911762707439134659784219553787305628205991038693115331151178703475416523455296163213883529022519143904047422031969628908592032034079077474594091319851783613857568026902590123714028042337284437407570643855218361158095084701763228587871072094290783579052954282516448624716495442470985652595203426390988636200698749261045123975710141032178766222749850536534704432613155237540459386353869933210678072409027069803133794367390578444789208921198029057116566353587256366517159406939737812281746802915161249246312086874579259456715552973199520660117673759581446370870815218028856191074818377547382353088325850419940545056274547833317958259755501820482181987868509267461602917990325006013184950494184253155546672710616622708052467926730194265713095171032388061402700295852843585138869553605866587652658595790250568806061235707665735063891250262919311965746320187978355870736947263041387122897531406866656919795929329711014247901543849230270502049295404675551773916793254738555950389358142041168896079545560770367328363568150682327690355603200381566088048835608569276860284370165633066249113040858013512255718798900397787740365228236145748985369549106106592481679862635599053647471517057465877040171588691558022226366574180983173722646521915886499162815805797096276382505370312962475727433167147792248700768897391702631188441734631392298928948355104418992017713573155854868515470555553636743106078472272581354724817288347939227101085872971952103824151131879582727831737987469798658191784689662452959912074981695519001087164488861725692343031449903764582077550336160850146428252788218698205572172375969223052152291246692802852286553021041576793991293526084076033821234320586171475023370182739462355712317282859196336627445167814427708691921287906558590662461356824317645776743738200544677278592516870406895708465398856000446588289760466214770557384467888178818770279631710942301195846488805246726627681936268888242923710951466908120763155778059502894223304015925135527251284915050418971875598699367071070153519909813589962254321975267950056292343791681311090959972933103471266231842020651468005445206516937008356374093775991098068720586422871056578353423001187323817628309214341534819204287096878505398364432261373726175699252040258535686750481617732478178966186489454682313032581327337134620999353087090309426164479579284977136826958422516907456036630823927610774290830814082760040527508505066768708131240995352370455335694093992024466367829704038466698314114793349162551021544835049970255584047031753513519599940269545591872673490974461454415355554701761519363466820388589648820732733954767720115809038087966854781612647297254234365361618626510921516686029180264705256691344129497736903954883174851493310389332573902050858221874108330633959013056915575737795756180118890429159583873265170583622461317012024824462315855110441377231718872080001245841652167051862090067498875369621365178447040924344256602777253529370266147830564579484057544127349113629516781708802246542721879741368114338957015147498444669951823332106145888838186639475505457409143281816566651830428536186210302339868182549917473328103067915939964075374497566866062965115924474228182134341261819431607831195159065279241598069352102041588859148061362241725600510213412667523285193914178579872152148359512322867449555136534278170625347844276698564903949640078925250248703364974237425844527287886590615628358983174301922641734418260376963815423264666016132606401479216310397729608972280623164075620595587951049061966505544479771492434350549604060874860570973856311558020541292276387420537067370287910831324350437068144670483448203752967739622342110080028411729704474814748111383393386572233262673699698992198297118306769941440826223836764372659553728531597036857112141419480738217906165676628724749795414169259494727648680431091650617088763397526403685861945170514567297610103317242195478772438806014740903798666638584155943751700569338691805448166899835659131560920970043145475973960372410763912510617724160958576955995821732256960514681561758811383002883374293301648586372440372809140231056676515436727103090242335179439886856250567690286565750948278279883317489577047587068590518562017826923273120998204725518381051648846148462737242597449442820672775747905691128381283933268453772914083974052744732459003769210203626231391537413952008289837993510958169460073637456958881075730485769524789969229697709036819300380697023214176632507889205617816188219059182878746550596935595545968444024582315957668774836568313877627738170103650580466876583690174479267869893416209160200985159524087325836149925425490849411020950995596757658227770588361166308747748738505632032326903797635400236616231907656651143321212566772717678871546801031623424017278101181766548618140039844506895842988463471902028869263147397835182108987116995169790028974762505425026152431617326705813073853479111448962897438294898619436853359198250675972800256427355188690934523229144656686565511497403365566504513424678186147023686158641686316253635715123480923814469121556088642623569705104437469143014446754774713084857158711290784449656478667325141706588830096780625826806658716258784492339537193104710078093746970716157571222406221098240353053434170856245168278180281739280788556544460334445060639924163572636636358708659391122798545549944772043039016390153984369032434903467042357001515529712519206182660213840911412346246537633306736234769808544133505187663876353366806067591447632521607442500974077467171823461770161998761650919516346019572799532889874084195354747558672198726723980076976550295331810015476693670765603045854373984578261498012098901491438741548739732496490998815638573787170460606773772164137116330113272950899069275570153155807998121295589844563579814260732970532587894353218650867096303427383129804454320776607061816483623794372525161194378890898021318582371192435044319049798846371334909706494646777119033469255939381225513851917339926119351796775939474217264994028079588961149255763281387523140013306832249175752306338744277264536262766379062730339440729651117184469597334168328308956030564681813538519045870253454798224908316322817306955507814246784534620676585404578767532975640307295243307053834628244770790123277950068118544904391215772970710152304889942773893100715822782335477387488638151110150700560772143762003148972530860587319768858904664234259976882319355906801317170097877002335068806896211844339308976884697624452086283817965970397455021395429797490777828265686522263144508727747844927683271376553630120233926417277115917946384911812072437807458647594350202130032258947563325417128945775187761755957266240473504446346544739914013869725208563150708130271252229661150426701234056099697924081036385908370612703033420699065479915076548609553386205765244236102974217251893665255716266535336091650633156682686018773826433441643898591959200585383486234487706195965662160834260681305655618672950119893490251576487331569097377145700402094404137879228283760783962804777376771147592007702016072644478733164184954402746560660876510178425414304332148332949917068814330650063531944308639952653466045163732235685280475554825927498243292082660197060920163664165622642657472381473482834689489112550416334824955113089111831937005192575564558878096377012166831797870781069208023377047985013938748897056734878930498970676054293502106508839855114653814469596232280848427964507449886384486906465437898780212651023612477776417325292220488268355691541477000126415525520576195559228236698407351758571415186139667287001520502000239637204618149460041245315206904805096194329852485668829874051235328059050842821697023149931868881702435736133988555081718594685814790952920054966748030017907291604148333080811440095238178516012045453883707657596133421470115700538897644839593905764719467985196512778366281485392039121021176928072070070332479818563837011336003647161319231493340326337340270469779420784402364075570073624123940814328906908674784234166094909307847363775321358363076014921021317080315463017635667675179188266612029958249625363017007770218809117687240757150257085893421976096162210349126348205158883388926022138691994945322630589151048405271073960827662604928636843006236296277250402346366057385350350320778921405494919557081225345736778615004424663083130885305158095707559536512133429620682630050125862152347496634022211710760268538207228291697119661425205439119350411547264002347967960939170845116516158937127956813141620893354410333601269867126559948288925237145792557938713335185438422781918533271893709171432813859374184988164165326575139012176307719546806463211818895268090767149512208800856776713479913533776586886010072046010596600835979348292731292771420829757427828104892530327213043550389165141502885333267859515999598796171891688119916919821587580535082558477668189968103713150873917453520493494752227473004476255493695134683559535674182937315161741300750629437827166743847765588554907095760663099465632572863378083638898028886600246912802528362330247468111260584308117440426597395430089814930582532182326774438385975663067456294919325039217407726690484668319926201623205800605387842181944133579302601175311956511542509102736250946449241417924283195407357525611723334932826098336505287211613174283881686994066326282785524648664367020798663564257837558187724848401153872883060532366422436536654393955985518614245519708178043589789251789881399820733255297982524658307260116584840018828855186986454344868883646903606312986787555411359773359361620073791673618710287317023948687225947869705842380551807827576434171016291671284867750780428498685383067042332281189123645684227110042286090369588126481932393564825619253600128370162918725671468360497852149265176382453025976701065446827319724078841775532618105014190821752639043000994553194286299578125098660426877485631790576642646297179741633707209138086417210032172634738972881277303089824437364434905122983315873862574236903302468850040856167237345290075962930572253567269986777464501103257149629381571319586893006242928466850302226525640397566687534421381171827804587046616985794612523462995595505356406352372699049445083545393710218536128879395056469885082560713110069589595744493720601442257947562175446686067523979954562980433376695989561062319820617454983677938552041686765514654542502825652816763717417376666572107397849381786395614241543137778410630292969106023132697719941241018007382048997128348750909820053472987924562675175864764301138710146555063010235879445777280677548976804236568039068762456108200246839106112224687838939214438089390576460385871178219943595256679962069156483322960746275404387287544351570194219186028436697485368649742089872037745897640635942931216703611974862342824870140508911315033567725685873921903853945119882364239815988827881708201022445882561859619182771809225136840087247135334123677431748440457502070884423712211122096207517055023596581772691386263957537118820725818979942427568758188751823544623885049365158260780227800167367784368622574057379451437692566673987930253810234058322089859480561142620930463699320385826830669186884477651245338160518768725312227205217040580875885767432865096856008871436528887076620329054814962417230724018926363512509532731062922757422170714185590621602558968786970341600503203718852075024899472331430736438104463242230285477615586381192031648950218912484698491319252405050820938412644540091819753405338792737468496999910134423933539090227582529029346801203028084037088640383239666965362175668738760380320485240373710767268357862497476644134929422730503236274853546460520881867574080631097910616366367881672369232193365519535160875003739206167375846783477097773359482793854214870529897261945512455075270111018769410477237245903172127812104708546527845535909881380076527850017600326923446562291517402249518419318972570344463117373271596372388829854914237168156872121405331452546399973044900917087532549958802686156103844911332856380408689925289803527147041015156351496068163144869238622482049428925118844745527390326344351363924442138294860509728815665936217971225246752322790728757724514685487603738148151765249630138158927154153207516398420923538058959425261944343426025633926528029456779982748745033177979836784168028067593048009395039570575359861783564547756226021896383115620360620817159857077855361189935122953246329399356692140159177218481206093868621279271550256594787122396485738151918155034027459363730077532079574495625851002241895800745152947638974797869382377874083551624379746689533509076936985321974800363228216335080099692663918427825575265018381603962626341766774055844738622696828130634403822367164946409853558254979935017125396456471184833435391995181858355052724434754691917937524258885100386446010029619564509064404360360348057555439242970346540141219093764347730756263128375558627910329320635807532783491980975891323455971018574874460404859954785381971085005003537454038669933572075715741324165435097349981085576389211695779611685975844484289629537479559035499889917130865893467505114575480332499303409144421104581232834848643588929238669533123627194782054725414992748791883598579319864421453153006717622315935056591616285675572183685693095061501856907443965698291805649059329829032250554049003635219745686509922846633558271236005908502234903627671209203246776907633574613449829596993459122458148458984104924322599534611956766316178079287394846554901195610169548576572102282578483048958222295808261912998149249153406532442000314505544193446894364885097519924717290297013625984923718254549260652971834968652291897484233176780748063584731881174288717844359759763856084364211317809329605071843922774766473260172142661874369386927201576288785189985801116359973502630692484415241896916169791020486393698968263518360547839601599144564841893327870479440846537296518963598940274324697742818977507505660687402816860354972098535356516356092844266524554826040078420979605736527200163584608990522598615837867075198850291965479477056096029715282643940772385343780881115733690963017879568225090309922112913237347244725901287277696114252200330080952429802857867189715387983065225712017651825941471499317649539441188202846933960589096951578851205901898972856548700041907948644789132856459455213247415144823923186209217501362842861888080952398220791825255627161120126504018009087502637751887786256167321558567633557171292226871420384340069377354580934175698646306434855216457587556037724865705423400550535337132555805425224635730867656194885916576263665118756550971635445356031032530543871925142329854099907019245212913266857769421886081941970997494535067032194763738511389496505544969213408506939268253047138178157832001985882857894081095660937820314254077060935251342361785673695596900732650532260854421718564274729277812164783369426730633826686468792841678529331377145070575766958240640715667905869541192137854433502971000901382469953062311775928320929206287339509663638535807955009662256903495609036061051062660292966321822473772051429964495305163878494612523498844233664506137719594501081206987745641782720189348644944734723988270617768829116610089186425023522854381220283324505760617500514053335439155173281981924055733830550742128475833849259714433366577027167839109655954004423230666625719448063173193962320536167642842024300004068583707105768424378636149007667165471187194798168546579996190417877612574265541537097236514889650000748224002560044703320656749303894102981498520435617461325332848714691895076838238583535370804956118025647807136062175486285891962728927269609775378546878712898562673181934694758962922032049898111554081670146307901825343925232000217961533253733621490325512339861606618118115999967046556695764622638673490197494759846116529303134418894099516023185577478771534404808976971613665039587201086909563973761144486922951685238650158222006478432847864979141724278502062086297591527136636053141679679316311196501696245252824171894677341611399094931258717010998593029893912162548300678999233555321860969322332799620717248533057010163988436517771228806754123138538890539403682310394590429951164032180348898189268971911174736961337322107799230054643864271495834580607048286473950938120862072634718349222436341985566159167128379220069290710498030282177619459114716273353792247944211241809849195900949671734674198205969394670476150537015735249430478226345157876264668749647117906912190142239156126029100281268785948906313694621536890754294622862632305465657693729438350965099862127382608580223306203558347368329504795244853274343207356735508018885091347685249964604989078938196284803824730284605548973578041640937629787058120859022175182597206517360742113829941497844579964215743782098188137996198938129198654916625770902427215450334195706763026718326233198969486291484820944715426983282675223569850519905650371276262249255460880317805085051617657037959645385858730529659031873657716546219640897976064458013114274693567783641380387158781200962681082403699079437797718811555970114896532094825191210245363144297708904216455172841663118423949456336279609672915809619005681449212033039604119591535324471087259510211323207526540843578021821819768584462168062473073339979657007201059459395874601561044563494517399580506797965547543610950646287903209758534614906702755776632695181441468593803567408549161850164201443637074548185341303218349849004438603172062543810291994532650876960109485720926014663953791363590808865199803777621089778600007966091451737917165316398040348047830998134854079049766864745234434001344470376662507020697904953380617899266816551064904274485288563013142956882483549922762865970514806498116580276381386898289485702585743793965489440696809087582628326463317415699245737599975920317301085089526357827037244391026267360711880619534025630860008237326425813395927987436829075875640258510380941679219681763855949992240008265449728546678299488048302526150025853866224236622384834095336772500751187318070525357733083108077201783488434996608444292139894188946892988074162465923671930109692108990847153488950648260732361683605376764168714975538515064846320110256531951530690724273922983249796508472581902461691590741372687368720267587098954284278576028435147400706619638374939953702906923396239068762957797067279170176859070483844072733482595047781473146827492926023847826623449343448692118255066748820899692308417604184024210098709476398641313341807594666057111035362414406393375271513347126001854181829734276469160143824490797983986346368851198915249457908406372589732311623829503497338551106866433929534561902191200892671114785625494916065551240639081239914789758457008665818049728661517200621090365586290324959495692853113270228098160083977502174098294208660289009608698066255221577472802002841627768316846617047070676833284047896480694001529070244453254255210053740153350330895118586714073266180639738001694498858209525338258322356660822108686517490217893634406682185038938311330921547835144631211012393605348325626287942039507261461970674722692003947817653387097902579825027161270141776566281330229070906260596204378620396769260852783117121082855784978949149671621915088680785020471323817136621850271574728687497383697460139148229538851764370255834518791457680100740925872580549537939242336692557177838002324426980922136125806151312351909853707828956663482826749338667628299906633142115789293739739050698657213459157656767009267798384960981818479636432840626567508593466024201879834785535173115915944709229358502147919275083460196616520647801666048284446516315095150771048495320963475708009244808913540553778534939234553643127861522031456518279123670838675592831983319744258730960320382830346371500052350267075708295729419607513642914844805086876362838538063868983461855509406527591152186855118753898488973660325069763956797561154856412162060009220015880283610885148680703879083845812504317953768373251869854522978463965189080338338299538839929301490857658118715681545431477249959669758363712811072721222309886871739015920540034518880603280719444631913278693724350442379148576132691053855689397016277373956370484289983888679964364141589008868309130128891504838283710482330037338162142463293426033702237065000630822697160322336909480607967935614757496445216790827578813835907310399457124523001168832128749560708053847502211279339135014384280081548739819018228348744780652842724468644147297085964163102046956972546827011057771467539357642249903434818387472767353873002149040552202552492719057986750892052246327261606922796703164565353235047250186701322052135298081351265175558948727438718275632676733188496338335284488677049823268538291729005594715550420598112633526922718174885179292033965954055443955493528775895261159345097839249335692623915702310384854275708503717132213363717459743271617478275092128363308572437300208148800381707706263942412499133396683890052085672103365233462710534191881653689425602083876435524611057517407597991571497240659907666132472986984251719245172121166966785510999898330372082302379570057019192784558066240247582801580180028352157984520274188306390999219534238873391250358615448766730557455741071613670894070394371088712779724073945175750857335180954865864073615102504197608469882706657465498139883889417007336543455122594570002732701146928752197270468869441431391895609010000316202892772222665618776041018370679532339491384795935447621895337758706600361125596885760862059776483414797123537628581753698174870291272023221243122121281587954045757016791189056956668103375460516135442647537931387741813712417857569940069005562705273434395818843302736851965132998269773475188598484454505208357211965375616684518216553855093243004638238845624017519148417158640417869680993767187520424906976268187202636180455657362631276424366412579161709464224246855269387317218929331971832776111131526582138838598014650649254564551733499397406718371874692881278830781482860685253970870159216121344339080441318642849690139657078301251200058785427491713847926809383401782893818237048810313695381851121279246642340097514051739238009108960631117614819235196081597514452662147343640363825030901012106475193175008753763470287008485092137330490997379672423139096666056208308261190625600663707233569838912976951791450961783996791920408069519950228429518434159416357171164462775511766019843450685602212517398413655743828772031556722645820482196208171672929397979129267096998619690437315530006769152209687701893256455858498461490819537271976523418692874445461790350899760479993823958903326161388783831836745123809520331657460493089215627780878209566354389220544983687597483184196224990774986514734422457443487087475823571827615397921633505606519986829003863218454885123264313886945342360960037962239151813652493500806540383862658102608254452848219590561540841420410654493012406473401595892621632975466841877647418997958146948883749057010722434831654939864635760416199492713139838775009763670320062253293160333504024189094818966688701187279344542536977526628962051494723999923066387594913730966369953193574092537128767078700246276061473255947515595543517480758434678640847181939783289830444523638347342541828025850508666477773556793614174708424503146534255278790832854597375962075730472995598265495664938308399318623172272736495612206854974747882448405391527443252199235438294709951185446114155075575617641495223520428113807765460802831848458647803676931540020245093906210293844908485627000587330606965431245158431479726923482549727917616017568039345646156199091965559150902789996658669384533643310859976520592212893652799551753906408995514348200011629761072385687870192160461993716267909742244572995490727498111964946217804226451401159477143554626620388867408059238414170028305930283788581556908128611706573120393364477076171897328519690259649816223696465135226231176654954925674815779414075374413589294709971845798049217496628445323360655539691137658216026083310434929410257717121272033383036912823266992260104325021258054013295425566500850909793822402118987336760803978752927288431536202790321549649022403198563592077688593034973156261406134786960568757033981977222475947785137696249176882198077139497680186138757368242779274953629523989428163644381457663686301449800694355650773781376683392909367764215891394998559644810016442090920409589877235661061157925413614541473308120323333614400973517795127350294808682561840341930094400173145293124501020878257318307450008732848821624044406843584976145316635229315129054781845259423746471315387553028514612536033070952776832637768620675206932317667002857452368845291858894345587432232798956047202070827750992555313938465426276148509640898907745017239016586544195271549622938308093388271888644711697328631576799306734707908941738225441458250845604384921570728927872235253582355601979156607358432281139380222283496154382533836565213038863186315446746625263901163800753342901631861247153264605345954153013773712583658163397911057374590363659029972111142921756537528103418257006186329730403959637837928181284313447785699620007848069219506581664607601467142330926692813032512404735772052244007807524153786044402256879929768781442186021603422118158579851974985928650510938520584844225441074849187562743488793542954610616791826688600933535150995036438460578683874062813381146967283922981791157353490625416263453206222674966722718171728465203983546892448398909335557436039290868848021532349837584039863331400047000101877388841802454022053785107980462816748982766358059136010481666534838438203257874994219648216327246607022362870291878603179737352124509717405560461394523215052681649364370547003465693740514566044369411405780522253676531338394021099920921041357469379060503488656790070515468732154273496316403119296972283486021894435188303740565441170108336320584110322618256902031148800557167741261045907285987901334035114250168697881871882322272412239358173550783748833329067887240801350800461989323135545599755273422535695251457282533954419238695706680233544227022860661724262000708853528697846896984604694877099769046047345856270664786231292367434504354620665447791426200773635859444155641552802240290940999616798331106489869361765420123330661901644895809295797269607604154443301447832865328151062169488951675391779975320845833072238844378276063824371999901691857068917757304648754984430718218368036132138499383407122720223504911793431979368931249860539276657528824922043565468623518711430904790294297339608006015646308837863674707782052037023433055417718688499571413424608658412716077526709196232358849058909131519207426302693470383703811192682155337454571544388512341958882046267210518389818004314332593930779510604921474583554861403384333691227686709156817517891770022709794444810612235477387029018817426780387337846448628534131068665877870470870860767827268609140669617730318889922875078635291534937835965294504298146820621828901618962305913802791274480879132149027833020389765937649380374265630342748092363904087081855953023057783712289674082745081518312642903523143891155239671269888243264306036579018857269682134637102687626371485347074665695525445462474094559971445153051042435539826825988118024871761364437628250899529114973194518457216773193486937826206782786985141018550394586681217282598192784860303990141433696769769499410168255597899866103531964870446912799617440867831006288936481645961999752751730798128448562644112624907596941274701546440653906190306462647275659569745186459478230407543557664254822426194783655633323263977378977114996346056108088572453760496522534434221444196044126176019039532723540704837310622886918047798661872979352893835083529355031706016566657061306598751518352972875419073636043650893685638689853256645286065265506496365476114859976333334051935310319055792743550741083288651752429276306666752112992889903891027083779119810116790018148914174067733137563350106261534406452013385289529662965525656633108489519734604314503662609924219950751714110667394901340315187261886918151689108727638300941044050204817236505652165435123006411515721158590548129428532030456262104667536534808769202379108261291394801120658731739428249495693185811332780310902416037051710376226010434390177337483742191126735137171012949604005008351558074534770666397305075421153825976964011275522827230161658813030521096788850356261550967943676398762623419334793552674910166541115706377553929436938917016914964345833097007079003588442367514198471381320031000706712975388694917679324865215545262762310838727711704579217767378900362458045738370780241087250083308010710397522118498658195608468598647765536834591740274902509557946583213978965118681927377163813607365334725282012441323365582898316073217771932776896538426510641922289946681857002740988208613795275753020153529791335787633275850956411162111559633656009020436256436340868593881971166128239392361673277083125099571354611944747022802994670531451409869352496692804604127441677753505921694081026222334545190160132101753063121719209332868446917866492658835689467281782117803927858595863709775724024508878060478010968374029444652862643085905252338063770387337851744652072401117486147540162704941543427111683557900559001409706297803844725539970602441259198455943087065691282835250192602540390197831109480730559196089666240611821725840165288208070820430590944996839342864428682121191007923628304925022937533889399218068545839950922925234371286471420079428462470028435645274322474319179902280360643855494368849189469657932094574760978726015259614722720168968421617118345609544897122805682781930385403425128900629837425743733881947853408943233412936145476653046196557197626336136521945342534965938849093402206059878007104088314251375267938819547371222113119374491951690107730895964548459712493140819174174015466534804374761553306737976167603997418808127525389304499272817597604077284230365412771956604272639370005452309752589913019293191762273437843037788780236976095956542836651025840367783073818870615016461015110784040941136955216090647130914090437668092604236271533002045804869860746365864102191486315331884542299339634876839094680895963641985884556242362316100787948280371057753441654362465133010775204432512857733884486866514433506917817528569091852039670974602031862797716441610128989761500987489084842309490766796927316768155610012165493911156751110741940872808130447242731118599509702398790477196932938371920318386537827870121735276264786480152575386432733755727965242191178627452465723781575390961825739914408786484891503511904788685668606530694500695888124082648692216736796351567231208161664914473100535572717882349492927930734353833531254481327941515974380217645625830876404692090209167337988926009549918428161883863950271776769250446149736471557303057940322639497299606816843690317330819892740340326403089986833881285888666793587765781448679742336379808993801638943810556233645945134974039116703640215186879570957417694768072805623717254679443284442054649553156876726884305843470882212619421399382417554014026247601885225067705507172513127892848708842754712778147821054264746020087224613785023893172913958287160647433485296251794228950536395272258876195154665482945305085421201550092711345290090557585017847553767446354425318367841764164515491870451791576190427771188983893503683446140982160219363774021575008362808455217765958891677441803429995122824970837899119783493106217755073376594604813720471907818319802446540012248894977255889411962497066318546912295583190666260534382622895298296419805676274403784812201293551914572905196415319590112670175358588778247880299305899817680120301800679080391625618243689371144965330764710729447163347944020661660022127233175597263007475417720974007159832353799061228731057779651355379236178820021906962372043845506606430802315695349641426895591030935974214469762686294964264778950181436078350992906204242895836823227434438557166413054674814531413006055366222935786774535561700145190302202665937370639399118457332728577135202555629173639388734910443703127392116268975485839307411469117908886977336689028408453785410291273459405867497043087781413372514476933627338385214494367645415880579168886714590894661455749401068639533689013986966990420483152520357541057350490940187561454308298208743994124774507662065739305284865982929336951075712657477866434886870131157816212681154155882456572940580043367854368739168072443740214927087939814567294654082060965047535786122860358243420980864272380165584531090374217146113014230232859329781300261151861745815100727377644216575075353107837313364308555057280201438526223835480283606584749036930844500553624628163957008087971321327812673340091872827156721821098970535379559987446089259199250706486485475819160707333700438089471048643477046968758045509727154213433153455593905071180377894635694498834751733102473700944605093858847392971846784731183348238192886778832346879645453208297568851523690196181806878000005727351594098517412095919091180554369961001002857302010231273479460664823225359227045352124838893884798891003661643956600637659935664970620057079982485875075545725355085123983035909699547330962050710025141531918770357477030132335742925776212739456300032660183683315545234459534306073035774153340306032716737903597962016965860255965432874450088636659221866816087632432590579929418587026387256193042775284546519319945263237432661344667473010135682103466736587471012618914279868944271442912129697602883072553772263027575957517491208918862814476598446906514869452520243783647852398459945410694200484447541153407769061028740730172790129960888391650767632079535356991777739146180675862885817669734942815927068985727344969038201174660777095984279757467534245782987800642054469562919758326234050231356057180924369734121678787666343383325836008352531152000627493621195618036808084118599412673002427851972528024437746959319683585730519321124871142403489726970784073590219734197079501109402584141841808922870565646279549258744609677577809135012935654767677254917377812537656622686615930409937383251892819455681360857083644907015383798685930397247566891473367475141310534724673556604289999494875276797659351433897643379443419776097187421757587814626125831491220707021728948733564578952010330777900722984643259647052829155900910162213726964265033312069042196060930116230719863926438751977339940791276258090870019797653432880831529611863792289042531323075091382099523467544321387059089285318134789273196449371737179630149949799277204598553268367447926688121667242075489505048243213636666753824382191391939129888253631134569853751614349349545615257823877213362661718908112040026933410691201406514467465051321459034414729452497887004707012026120257945251116858738640534245952668578841760042155649699101645287816564632541790242502578960932031269040816544611225061778370190389990785116316903486111199752921779211316807351097263156595834482431956351144723204272655857958563481421536987866321245241074577591480648802919719374963645403091215476484369306137786856061234333916635821371222373257644840727348727966536427686328200188257781659436314808934443000460092263105250825695408061846349792819211670230096788191276956956309264385796480689693569507192939654655404728261387671719983669428721954210746901673715495850829456271110070020413940067957439758549069801644807832009583332495073544004690186511724838126816797992804377675241140291198481049543479498711644732661241306548275672046277443858366411956629481401292705822009611058668720732026621696982863487815937853719465387191273540542791678478724807264417729730054127860982576883125798705075196658214846144470114003445921446095098781774085400953815053398229213807288465263143337397052358340659457205596796682029618180708354261601718596258582266920785417292960920919932522913816026958108119984935165974728210990580963588054592542855464937073586343734606387098894997515816882952359209828166200199546974281153918625298491227295039251031390553585891338241581993458213432165797346658051699173524700208544537990708906884274624462070166539689492844630863580353543396992206316190812255558282126528970279950170039818453641608598605124390902140828765123468688448731482726115773973159065908557680354194927976590535367305718946648494176048431772742078356092858191428908206418731933739949289759670992303938711691730456444381262533380647751196948802578292805985280763386538702654122304204605594633563769447852479860198459167930446999205120534864438167717202895325720915495548550305140690947793609143282806016895624215474280753019684338447689842344728926516536296179961103867313399547277560846092118546180723204710458176129747130353790256570079568756116188593276645873324614916135333786511764232227546402694522583062387071943572311668737238306978385149168591375162580584919507917374517835616541638518307841531196214871221320637203313243696034154825729216822163556964168189140096196552609051844686574375574940351401506977921223872121080429866966390386728144830334172429300730672128526818824273415985267949189869532611712865394904388848544454324517145765599159111692192246507872290937864238599291376900747815721893701383233356600007470602189588933272881951285235597734180264443196883908356038058499388221032672856031171885148333439332404064558923958901745077932647501820286181086528274770847627627106067243051457302361031377674042881119300753780073096972837661672157916794021586844847466551367706725616515172487617830982634143611829963760623234285985588258122442148744579801089644720373179175769872049415501600283721472866620692625020852209184331533722521974339414393774094001084566337876325500214936316614699313762459821950778248772132426182172348770472091649001012917744977338925685614309332499401010321165933142838834089725556805855177122769232641528022782997662992140129149446436088425892087922507124009787697819342343846914197642574046707545998585815669949225502016733718831173330563998186915072793128712557096511237896949908507668563506313847302550224658847625626714609093187316437052361559569680327097965025396439155673541713072443112962892904809858123881116652489096937038237718096985156151609759080534669882105374518999148475822751786073824226146235338489612983840425097592234739058387720958894532121778501948163661267047995718439045942386640846229105628592512119042012234643061894168551292094727486162313517119621908248394681917620762655044808019312315811046453516133128797516987425294588987006878311918590153472657150993184504547665963446720172883266464694807345399983172792014438335286022759055187715253318033477744365279175714177956981437307365823453427721427871097939620586537978747826227059040842760831299337324829301434904189235177634044055562337013585955016065205183094073906419205983233359478471754395901775194998391795122962118385908969494203894549156399113429817425471379011653726347187414684883412139144341817524382306714860346706691513690923208687952377414460325613531512778389967938859880191473846457379982006499157661228677578798879327438078033525862601964370550264264825209243651854298525493336707317620042605583992287932632916822866349698627589050451967697249388042021374609754023955294911594187226471451060923048209567990919900384442742078562864751659303442801481048788543602729712333823169327736734600508055532581309062779773983545451673008011665791525106451576760935667884210718975990061315440423186656658554293789083127731821839575173815758464297174057353056387712662008007762034610892258921170890332303794338976961376813957686007119873491217743610083287484351561412230348798349586838794447736211755593563328774413057609226833830716336004514278649771984852395438156641303373114374685186945136124852973023475086231394913643148902108582363228197716365910067033021637197851697188389032684124440373896535685873310426895590566297871547709879074179254132715336892440810669842471915646332359936913157625569020215465107254971779769550667519284774949758850856628303903840121738813831283533423411926576985134514498988150634766151734456915945767223931629789404167320070678736657907671602355277717200184848854863426814397916842054988130297555224864358238056640294959455533053289513300290402792016900756161428982037622028234328882434938224887362119528101101990134924174845513007685446880467765548738905650015821937285891915276321068857116244973702864895739074144629137775814693782442329305978268383215860589523784804705993030202661332441506934367517317277623836046679692036236632076922937676225161676120506999208131194857060196493246896511492195652949524388782305507230020509814731704878550004669598890654807088104072419685967967888232889486782551027459505117235711911219377829906853054862524242608063289995082467666053729598806743736014466985206916815283839501122436085384154441725958703819418606686143730925655588716934035034014248569823054667715124417347223743393711426539788038037896213087666891112525255404260614985203732840691328576076231397155961573747474463611356073586908331946346806727374106959709044950006151319861176339792946129292702087723905025841042423126069860824703537882395480264712658019526785189198411406318021967550715940855732630162831934089856690204528619794088412276220205290057069676951344953414201164878119256814546052906100068659668950094843493183665936410894262241337650948414849485169749160301091674063949042985779020351871339478817218317029492636823909868909609869551099144259908639448197017970235339270503300634995047309337420968013569189780147241532055352498401054096859142788747119635234577550525161492304833165202661777579398696263154934685426020878551204041646557456366789356725812307760231288313208183542862378583959662823071220696302091802353462169920765648628159026361341455412381365464925860632273582971602274940661625644201004960213803496511168224658340948944630586044849172494130978482081415271035517991882580553120629739978084576152938911699354603958125996785308434473002094720602175916677027527022554891319614546669568532970444683047084750040017652873190373842238276451664145697770628903523758721579378928071460895847268159049172074836681576959839221448103382848772755221782387083460296307339580926355917943727201619960804131161839797210610549548133453395028763430970021149687950909994597330532675134288238330437340136760754452290953491972934232625044886350774784489988830994723795669715635527066261256659916701161819082110869290308563754065124743999408405038142207036138596276160327532451792096609995871867367476801202588946734410400587349807530448821026585324313638876093286225513538225869835441820727297229644354032407371814066751769922493251867851906347519535568228650425139691323341292162741735529697524127651141595849732646922490474253529158700451074465439981857858205364711380452458059340721730425000690622821588509217818541990708996892276682062308140180708690691548848193835473089220031418835021870077014801371810755715456114481373893898933483551677310962105784907869668647410551382295465841464092514095816614331926863552692207872327947002356542690422783084585976927270454428714829578703847860017835572160016327711623700613928681941696313842596592640188678574203710669448086921341906077172444786414954856875437328773332943623549479059534942003146760465798871593334170977139458440322463109195774140002166558728464652172871666178866940572902370442945938278226181342263254234581960005891697092658964373637316393381733456510660904862924466299562337501307066647938152119888903360756645015217840280838509192154729394517971774438093534037914725059276749962885436438541432728960820994774905271883401901856041832691655214792539770937897008633799577254014566902411875554188889971083597116799297364711213020804962945706830735058997265732063196439461234819161552651772382146026651174152978792948492687062537438671169823127966152966447755152020807987285425779352208680336805618251136729394214524464157477079710331339860734241153154213975555550010501381557411867606830065294798360220408353327389614281173840628962303885227123219020867039048149051149775754282602275436541572296135337947767554946968041223018157140219950119562771026003189207461477004312166237292923799510420705564602020576540261213960648684454997059895873272938358203220657993976449360170818897151526954697573127540756164157792000529257978415897553031445336253333684539811941944377448562486491520500108674030544391114360323252974507821920528721479273386076161486605611273943330744326365738911260817839268808686998514827037823219769279805607993091875927865806635746791888799115007296490696348163481094543215175788840107001606252031536449526535104653451220378802028720580702934828516755297504502202538960705498150162559748885453466988339104245753015650128730845126698284082327814346398420501156151276202111862772363255345465185903584750052868074678600658212581208216115476825285866861777199829503362893979737510847573811115060321865136764982867270572206512688370972142285480089052118920034596171866602485948055985398670789676605795815869079625541664418818317856478263570368809535324205111199043790886447551470305297266004007399981012346200166923711433196374749745876703160760276790220546369041870366859138852559771336695664759488268853602167792452274942823566564092744449641821020756388132890090447695374804855335649228174858260150136768539769648050982748472398626834240596781391941084271580190526803213843193469343927659352641986164418628205494520353316978972780402496499690440441771120609205726277791213995343900490757191104915422213454761158460051679763548103306172312586491891478631297902662433520311263960400235936840785304365610805651254607557563800185706736690439770471691035488037098013885446279808249796455273867282474240256475627736033716988631532815101354919972307597916048736600448130455911195382474440194199593670033408012167887105632751996507049822878301373653726381766315607732661142847783641161656011928516599566938784317940823275377961504495497633948453169206612293101076291090851813913244230920260306245920991278948143946656582046381776197230441218051884217701142136105648470484986925450690683955453651667808368421285977974405385223161826144228323915471267809960878391448788881166519543049435611124394553342851769119823094128534189785391036219957238846198768452649596815630679342479087097516660666733834516453334525074406166831618024091731671562906093836530704855592066213921944723303116833264546719522007831804655093901344385245797662325892265641891217309353949387321205471252575300733051010958598241473454270055298711049267791001044143594055699277232643739355838836960995086351229879237801500183408379468046917468128698704147189079072959657979318742503781394958963705452978756087831892761215507636041511573693347130630143268286073857479469593690119905769153459271815125212858289521345621671967308385230020007911040845739026900298876642894565438757895281175704742191327245288923691985270061302651704630124367755327226390839785882593896700442262710292825947275448868171815164767235536558320075414109861067681121993512404922492126468261621885531279158962200105776497335084629137990134352391074039936408349457843793664363656566558667342835552204093586238139000057381926447804878108902794572473024648696743281461096336250252341140940068456737983372609839688008750240169773514611130730051711033523765951722010547043901628680629997781022115238022159722032026569295504726433342047307347732277736284259696983417808989383070652878536491504484010950531733950675662950695659783315253915172420577633425565252709748776717308815403671428522414970342579564300374469186847165937920249919869005914928192553192586148774495437607913805498260349137822579790287400243161520045691766848001369920345858474434640953818988273622282003845030280493974383829722894981142833149058187242977484362871137971020627246368588970082691962120674258931097094491907352987641466960722906760916102783329492558364104222090771442528928247006974391646097226662901886293891452178788245861683189489577908193466262205619860621650835559305956618295849848139468790872151064284695064736533347340924237340313749723355839528883362862012743567972728159809962263167512064749484137133765439325991964676296701089578682787288033173252362732944241356814589114621062440440464953837299464131461440299527122538370727575229858737516668097044386321433277532624218690371653321379543458472744175582458668899181685730012517242121775782347457154421311902683514827829513613350350918542613997042601474308360820902742188700724188427305360068129987756842256610195375287377075804100625850094215885840699408389857373351347026929293640209059739903176675915856685693934533340781027669463211074851488668544046019457038780267823488136603768492864186530585927909954580649448370488822634351360699462000962370455152658366245738854059598079756367067472799786360388561268129091755784286474400282472588227029609432689775269368178812556544104051576570673996034234716049981565686393155473678601628861484082805318162305202132193053520245215491856501067546387760373729844702915825913223777209218044309597137173126662118710450090951766469153467245567702359850270814647915472823872298661146905389222013290400625084639878738722354454815713145354528241152120369068050441714039433113142360179757005240691595545235450738659189750839608000288821811289898416718163813366010954354975106377458397926524804418131464215904847463825930027632965863682042219063057865715115343713926698806445172345793874986273557520455008430445144101809431575256982162138271552029101802434900283147730893799290836782968897423579694899072282412814135226008857732084810438779289506564473313793761882987280752046884353670760836985415202374309761095325844787135241048971668531331409131766053873041477450868286423949395167958078490228250341770434394133571394882558646489819520428632709449235680919597851224787677177187851435608269848558856636227904537946696552762838753415475535385107611794825526624656816825081705309953510259812584238465078129659510230054296358486058884942445388530206037295796061381726853251070994126352296608667500154327016159764212945715176563848667348995765023158679884036630323512769545878487932426268745050059926829472840047895675182739764754320658458569971931448923071840451436105948442885767668017901158332135969913371565731501942870916893995989624125793260761879170336980317698228832025855216260760676768086666523807392401300331780901525430222598212350982473469739102119966770159684466866930805998977403825348198752676509086477821276746992759286761423077330823457715320550154665376630620109730346736264857212607374249613587992756858989563253758590856071551018366347666209187296505942449085289258465195320425177718210024009078970597868653213224440062345173621876758497056547061870884993001097855401961081489155745560745499078647499143836899075385450427806274885908427910877319726528310583498095903362170387660968067951631539672624077382855731367091061020168610367874293385059445542067935941509457976509370216759280952021588832189960730615973405860560113619525121658592586914369637059102074940577609042684602653764163842744337463833558155937336877751329099651614980231356516174074640762385236210609796295938390631744696321092382833434138832053102132885519784919757061567798405355971695084148979650447066496219151970588298084317611313815756121327038212683031702788517028031227471836867872991058534055761279868918412905059048483885630237391493258748661059318283129436340174455298514229545549572430311060731170962876330333479332689189448333853427997991687469001404759400676268218417927748777207494944709445158936572698175003020352994429440182448050181815324778117160437981790367925912080968946589554283698700206672924495983780915764514020345534501795132167522455122799592053102221487410308430417067593808981820503406273937938854865316261068740690759557418021031065666426925594189216401023568550684397196189069936626046515402453970330173321560392889082452068482701845209370087189920412809299047601997899589390287560018246932856811829191239859382739421262327709000616540727465687420943008434621104356825950598898449654819221592482898991467621884426028908661456004525072263356545762970471296313417377284864983060147992452037835393723309685540034155270794005308549878506760896708740619008358426497681253561966084251513877617906307573879706930982228569784098738775360880169123787425517002430147873257278685820814391662426494842924225321526461602607497703431203683509931562539738313609020710889715153826167661341398653074986439318134735985150344726887267040554983706061354076926441351528403565067887862901508822968285066408681070578706410418587705073602536047529647043527743398698524659551112180720700612177142281702814779923567116434650634088993346516276941457957689846036483043186372884433755444228481851791441832182725221531881367322348772968243467043820615811181682580650711874734182198695929292239717033927513670283586508853924785028720072712595074454134679059894480487154318428289208537558375532139602430837244460394606884796087758079165910854824806466680908436043841743666515519108186965828467836800301767014781728972772842206808811860865733531002008882679530066995731630302470655474605168492164517968711450376294441790326108431660663804931496787477305044676758787908646460617981143682503643510715462699993186503942442728431403117389331957484929416484936974773872820213489046491673618073828037350905246048582484872387536435782016850774021557844384166356038867884387047828979335410023578950048546770329324696315306775711414379677924327891949251736767616782164202532124408414588951489682847754521049207994364437690525289356354942401313351300924744306586399549476792095656411827957347219796376749516269930253414011166370552401449166900641930711088417647769120517662293301222555791312044711403099352511729990271959809247327024265411099499756757973298267124429515460454197079607212796401458173805964990220884949170840813038962551153224778973597304210512826169509862997801279106949428571365851766507862372544574698292322923868387381536976177823574533283230487203933564570814838993561689948577308785296818152732915799099807962426405626114336916819374805727556088985175359242821289748479396482877437718527546160252632715950373766129722301730735056402515338526721606091591798621933393776748077632945961939921809450335183286723660351852870040169774507308501899049050059608561584179990809434949704211433947185831080449471455263583676738088820168997499447046972571962894030130521905524835197732562939032145611976525241953837825846727781389641747157030482242127158048740760371645449976342504888217871785467424059075827119829649428890491400452258659430638980257693842784073062617453598238650372833184320415710876184223587997066879175236321875961103794594788100707680320558930019308145035708398651876356599173449035962678402785164859233641087259994573876090445173408007211147482771192891058422133060838085498974048015693973182112062548506185010050931323251900546727589802168505637502485865125201364438539129445894244202479626844320324114525879351674193280366427401697944977998967878100983020683338708854828806031736123498505966274766248882023727929366936944921250639654590623015798939501583940942086698204249326064126609901840868191718919017487911465209216647530586142647688145980648967175427291548898957301910029915125016556520254293690442008558354955162249280562563102669117130047157196657053704932461639843800577685540207986668862912019303358322665012886579645753578388813495698546675087918172179897208674884386493352440169527585321357905388535154908516399907564199862027496592963648993749336080525565252355281254024430956094751343791195077607295883732243471276845870211462376107050269395982260962404122856865172027815821963890651611249501679010122341142266230197132652620894748177929863696665642473423543370501598576326258409344292498860216433315999753942710070468858937828941490532865219561226336252433771787011251343389933067196694040993784189089831540610183771178655834183507570571122795933973627092357666627012253424735034177223279779241301980150034765952452027807141542931257706871608783483702199997564067455179407584094201791003521553246901604476355199944277769592989091200638541659099955833648274017243384059944724228721929171271592538441882537107532601347743165348638175699665381147333517134793974211164228771109013949360196842828330627566794623491356306752372740368130457775081178553216209849019572857434889989503036181843038890573523386184060865349196692871492141703267955651055361337728872259472375562158085387527855101879108838400892673747090516869504356186726292722603227604357477665030953779435328732799771841733216033636224857825480757871448126829650416777245143556559193138460781441656980287678561172572108653536833214980496137128407925040957423040032133801486817695458945934218115935290881676858009780889380609964708312781799365126262113567411816888263733737238539334307218883947395901559809187747306574080993715452099502538063028377966303662561739808410283682586945854338572070593097155528345559274158900465774338429965707077267580511321562439020485837676199631247411869599783785021634367340902067750807601696051454764273495896501228376842134569004310466872213667222097835337879039839347738329679988746959121493275860329423792461352029380399938358429145445439846141779797456257072985989686539278137609588418262865988433197144520755537835408988685144391000741037942312556999708352898433395321265825739518358604624252580695625551967524356562032398704145485048818310356793645718218791286302272096513953135699725354721614577807035178126698690846356100951079414934592233964314595996662164262352272846324688186197529654110804891239333239272396461413640672768354942337457775061286072128705814584510221062406017188484699030231670121438138644937761800682960694733231531313198479605511946213869306860877536689651760360208817151799703071579277355390026174402398299030986331710195559403622653831516152396497849051481513979245620344753859248815940158223431626250134748435814374312262019015751208448976818345091001954680492466395313717240650736751279972573514915098882913985824710815818817709371943402419260266671516413085050897947144165356922973126059947396953003653899508683042380205439271961545322435941861213941854438739569469706288795245177334162424160198426258481604824438434330920304219459963041018608803446775637954381126232849255253740268907214245436233187521821993390625980394351442073091920669403084518164322076992747522802656950839401524236402686311947840357501021559283861810976583844866950567701076230542703790357489024904985827072128028177562930417808738209780580428094553237049801966886936954379294560386086846824701925778434287747418210627894836188034493341544945689721393570469556622690582344858447177788260862648906961651211045991320224371735380870182142370513767181344348599620925900411950904762476112782181361884296182770839750004940375734852124992288462593798948606896810762973558277274157566220789741531561183933262207527578477155368391508716554430601239380368955421269702638627946651208147993019200091301157415739952702448336503734701502717994875970946330156884566963551032101719942999107449959017996420398065779666778424909920368249586225816626743131218740057855770553854005031672107429925104386864499846555871369342074471520287771822241267033165233096693736315442836779221738525417678074413859647114722600914041821033262024800990395175101338917752889044751149347121889046849534192044703477727596912118318492574028173845880286599899639772779977396073011639132178294229731532865055495866871081913927666425414780307423221361983187506855893156484714802446793739122378760208195857715901777783183195189677565546067122075973423467640848074166924894233097728061087394990391133480426642465513267095457756790587808079937827962854161178263004690873055508349324378327627718666074655966845364310371504634659630147895139156010019516680606438865095435607255527235860234545137323040957889080497261088046856373936794018527683341155798718255736797892075598362932189856951208153276637722021209489340474863310424986182255049059954822655291420309129899655063091093232002336824955778330736358880922605499862657166503433814632163885376710561504510556158869793069612903651478790846971461225552632956190871743778307837936539462909753470391596875917454528036079771032833854908018217719861124750215200341452030003322307321372885605087904812681645360941312917012725589692710130442643832658929598088251007550059514587027561837191371059001286008597777056593774585726207728507877568090034068290648675339015968757529781389371916414089423035838366180341847439477695116180308153142301033037665583133656565769881321374126354830177031253406609577842238599654060991369190424775408925390156876685708594880406227116775138955043616070578432316779408025690868848933165621314209927950629411400634996950349509949518675571911947771484596550547072983830113556826702626414081825367335266168637478358506267140909926809864999677658271415399480843383936261015482223536332163633268061833903312773569020622948116116048265143594935745524507030382428975599901971037903600493269969727141547716311532493694708821648675402733075822813861701338014235727098120001265437886241732356837444280713179160838111428284723182487497800592758578313627268378744187667233896248538595399262536829818123644149309717335821569178156099335791977318575224429631728504243229759283816514169473376489341235144997093308638420819676202441767147406775661654572576477740798919881376816518157510985846472152614639243023792796869079205596446618796951202102484805203403001089061151866626466620282589375637718367084607785486972762803740727369834727645585808659249568021753083744066183567904542258792383572522296195698806330616392566791123880194428884444487685513378838519456258944995398856662262861507906983091099255004762162499864986557458815179600120650153315166821011679435663515580947083491440410498971672236475171433842954872064952326696440795120665373494535509188609805868436561742766057999547638755905390104679237041093247158879958264076338806494326521918990399701177486228305010551646012358543526388526845893018278008780289981303424030614459707591925148349641163371912375751906477242246572825327554646466165085412962596367749488339180049312348426209543829126550308101041136157453970763817002977050522328141327954914830609077597786723571319168261330674720588283997690114005945695433283764306661358531852321339351803295753799609068545471787207271096907173743119044761859482002193074235842933801219263279044965405640036275315951547302844195623360702174056862753285580497317080718409550746709489124239497448771917314444301516123997445868256975331986301531176865461289393762506111627965518286747180722906182901597025595431474757389118661552241775616431378092049671599895963675604260383357158840778202498139641804796183299262946588894928898973303279697391480955633742533288765909503482847257938545368161354487940949012927809760556883721774172700628195035586332096281984189514210349520231540002710839159063059865167531475430909879671484745455382484303510433064567646900853725071654946866267830975486418177831606449229359265237655936484070449272405518875317576501849897817770638537397756981659696978267509345227950075940561204458013967057000450498923796670866701599322949333392665177553140865650381886082633895289387551681300654009070969531548605449780327375127226100667032478848605228299458595603417762338659311157413992823665046333277500704916954466715927526741616554697555151241779065063105411463761147450187308567309622633938542065769176307676794254143519274205277862793956912941987267693026657192419645312222881817343553069539500487563016958790599509895629561551352293935437320407198318203175695152606804027320075770427055173763480699048703502498196228977576399490599360065699705980459210821618216969579081262949051715049411460988281152806994219437245829827983082220030242478848384026476621920244591868642602021872172836195493825780942824134597537375478186603252014210921455134042790054774310454564664985263255512764210372317810856937962936370578324079820416968528210878116934746092171315399490627385102564540172525714050229184216385329371662061389422167361378962828813183045340914327683273803877341303299898193488744234810004685050271490560579125458560212254086468485254189962202451017400940287569144283145590330439795209877032733662636459801777506058027974403508399580562610724253654440308081504979928155990504302823524612991679083362456263302317455153451553304606054703376596670057100204539796829157200319657780210625958944204781360373367464537341376600918385334638084915285493026724356877158778080145915336837222954409783722165206290782278999835978274877549851268655525259918043259850503773322838597201339149704152932569108115252543042252191588222358250586684795405723700343250662668906619255402506083540857765566070041928785601027044270768163378750820474720842567227506994992682752424782656390128543090357351889056332581343770097912716657894400411740901723468785300020115818275213382207878447972890358120042222808624647494008496825798827865635875583699551156994932026444475466623471363556462690418632833302233437924103756179750251876877485168741344549710817342066913091967636802849316351202095226061693964263827135654879303504780471690024827960125295985670885150425761707886481031561224712246742667792996677491341957580561541162260561418573588467396483692517438565197496260473007084721555272025483003274547414696378005470176514938435070973317072266418070495578221181690662547452803478116284289068832400728378696497119608457452253568312464511424742282859415049091197621757967872197133553651244952287649567307244115343577077319242091325258623810548731792909791304365001741914144531627828334479572904240951110288674588970032051408919527217738545292710318532067977950971454442691703579585824812106482362931167732124608268829290245588702224837298265949487202755217299043310626100860824713103977173562437816702866673985450222544889159075059999804468701930227796713780955590780662504971409036713826233729636190835306284551394929260542443697676755773080533013107286879837005946916185350004243117573389044783889752702506880082967360695184982541335165516112887109488762841167217453884136776782133269020065199908662215525316469741697636509534076711875967884536413700231877565681963088690507517218857142721843265066170990529409957086708532878439067666388135218940304080220630156218041350156797850517518729541800461136533330786265680916117466917476097303873013753346652285856960398407855998649415932828955587784687805473577957953749918672149147706669830357828689142326776257992727258587690038779178054748367588599871738479088404530871896420892075050054948906599820342485830642356406451850031393241148821167259051937991380530877492976291410424508002642496766622264529567834311466077867500100967921912630523628261757015918639599161760459409804557199212259357097628067632995946357798586526004135449086160788880124812906673716095394073794991232798855730954356571448256156369232403814727334609135769082175693016846960455834625504851093294045567014580185283285577370021331052325095107587843638099601301936642198614169785596252842980957647650307502268881956918107532682946201890412985039468054060593376691486308326227460746401440919515741816844517529402373112909768214202002229845764782230857201723246498476287821397273272440145223294598215559828390673464057365682510957084251879330478020462072353267714634275801378921002010813595935651320155486898748441176306811623888359119483757226395232464700105954822077392906101353727668737167182980807766937432581108408749759284732782845981554163794102420224868505649447140574415203218925276565306559296374949781219417564172594566299371307578320791770388616542078536180898396725144868187462423131089205770374641402411132685640919714161008314306236950964879760771446656206230172920328166039923272886278109542809011530891424946883183508063008451660554720796020227162045033561547394855176821709203845774590123430160896718114478491304102520891770566223996524502577780846300061230579585137392041596614258051746988648042358433359109854340915016747739703594847963568001746240459195146933788190326449257233634083257698720327272783603892707282076320520946660507638710151983350982872735282395985456770084617474516674604804957448695108636397650434255366668941323792269623039884125335469581950338154511381472344535149032642755087720661924050482421289941062173836961474107783144361397234006395121522817274632359041789438819631310527357505512955732132516409092778598775065957178035324884930553662944229384368081818152171590237341002128223391210427548377767437783189767608562022615722485181690053634774136894148108621492116465204443635809379859248330532827751111108419629962114743189774110463422069619870815261903499277842972232450991421505152783404328091683442805285429133611463241224373252026651693614565331633574484589064535122199347451609322371776510124431043513064626555029930577072866006012796024386094892451036833319709428290173300110909175034038701738960013038511684983653194031885571704995669343831299590482391118099076646418633343800434079385626945139944737058223903509816789833136385466678230302403054445659109489311338887679259365171425978863055662058531670525912903353631302432409004516446744238836694655451169647804954744324745690330255064980535888248346550532918702881670231837100729447183842949091596631334098521223624835476167170578627356317395224122792366581059251863426183021939725640661203999682330408112721034516377520294330074435203515991251306608999237542796377888053440472334810771835485566951748665202955675856102182367277415518343413963405956040992245908102724374759047669039549178403992932676675361346442201677514329518053936079740813417583282110957928053706709925270913296693926383116068059139591338053441285568193794046682836364403091051243322289320777732922229491045822241608981871032755679998155058502147955047380822823293541822560055983935320124143993545555470274542680267154278850449861680273418314651387632748923878338202883818428391414025053845676275599880969274911454344785157147670256363790198136799206609070841189611965675167432530158602251918107441912477877232678100294590268228242673042896862250066214097756170155771762997519998100130598976864724787341962982272912424547483082273699980775165770452086504230428632486300582379650980879371734281320900701794645255915295896744555485812315302675123622267365128963662526308733370028035494648477991903034620506849194169060775816278703595070131241009076446701666627125911232422462228562545396636545545210342189669390678303819144252539274019506928932583497427392150547615166814794480161532814928594293171334274502443733238445954775163515490888613059362700302261010948461299461619311454648061786643644521701618856275051718036212586474075473181861544132681011118582569781255293976513909087313778616559622300925160606940264952335154906463154892740760460186094213751157693049676778788581045386435496988780342366917753152240267922450752997359503294398274064157362736246573569719395327290347354400851929690323882623278099951998399337422102121453585543895415384853307216344030492178275391614736037791486690590721013098941933830725628617639925609552493919001145263202647954514921464439546748625722591858852991921889024943111592404822555994464214637815733141210445424817207878194566578214878553029035303467986221867171085632792349129443112488824457111165450180954659254421275330766711559412230077109658524735402302428553357577397404640006300300949495889478650155133123386709882191445044365218108158973129502924798412738912567773073484483456201708295391185717423231631371008406976841289586094828829971541233592557610313259887685786271133418231671979273752880688767198733676531302432160900298872493120753563947794778307824194113140901375121413583353349799369385364475507979574096283236061784715829485573264216821517533424205010712385956240395696220125960111495262284125044021073298160983210949415455038489583015674302499398312352405294023062066798902555156321557730511060313278184631913319160930508316807425055543269334205956644123759143598646150405106134764126070413004129002907002568616362034239584753525172916211468134757565903228963259623421033989684173900369040789637447605250886503025106671875556410291286922300625799615049984129866249195960827561319459099587144225300293910210821025609343250312730948018879009972364113263290678341814061296459127016422000422680600881337132980595310373702478177103607497514602291958318659701831893526133178515479026254524843296112939532878184602314642713320833376918127847289357650558480490064375097643730917767563322138172944482564507550838178124046977653934800811004340565576073018050782229464847363418406430622189409832343546088065031621611702639222624553804367600270896109260127788129925897210857303265376693835519734636205186225822984633982211776107425522891639864192948348743227167979770873213220219174967201000969535475326400143186186379785895846832049611455578785596093506176422503212753231146136488861900607810926494158412973632134152864146767716405245631404709690735867522493533944792595637602647715332474222818160888431625288490829011553769096345708699495356177482721320001166706423130137694057994313232981652485858102620874647133440568804512363684661674000034803202299064539436764108688064440240173219824386101380863768509272904256390037044259797806785082683359208820265282777327086711611943634502605018382753691529807947351540788214642907172127676819449064823840851571195440488645575411928203817079295478788538130701197647692121823097207738697992120242043831601379193101364357705600719256366055639308477673351925224100995404947121664372558038138882116948587533179634517032569942695178231754735528332910450390685571395715967583205976540868282250598284257428631001792368780265049516505060673439007226549520394592946181711936337892625611144772515564718319095486760717823230259545107315366400587759210264562463421024847753536771786146194473496887463682423822368731983502619903236649522082726784387281326491821481872719292045191001639545172563646775272879189280558477613302844708072759419734317770784260550132449331870231223623701051909879998255566557664430177516538479302608557534063576146212977147372846706274230297443970476107583188069065294607995470457997167506028157821589233807267918451691871737398868716235240804614739291722336787774243698572700085108530294838293262430523354623528933603225601583033654513050415707715568909249369581103039480457810862620026418989475418133236356906696326487417159202932608154970728955115218713397383722776950864285430117747116043674116870023417832167737538331756049059480659259336669739206682307909733934178084920277148739726263916797483045060830658540183274257347077396149839117377783240640680258061567816355689857851353345632310806285200566305615718078061174873589731484594278386599678330823475039361693856438262063230421346984610676698007126086524141970148599549258291243399824979482515631638889006905752682804169224846571064482755141766960395723333680886240623977380553478425157812749038955258777024632232349222931765502536146578658469006408001005739899896408714980475132752179754735627968375164987047391045381782790831946490153486689881961167876079773940915818920168769565741809779165636658279393161798020110341038365080278889931397587547240093735946348360026334071626044622133820898405643614445206574672199374437029237468926943468916925725196573899252232361349197296927597339273944533785874269590220052100553618792647174100830932252979028364674745983076059576048140687193119943191900484006327389516905580647490533224197146007596156740830304181516793864897015802618604708948376892297419525596838779628997039914302385002235115905389498361984694913537243948757702626272712644136548393357768909681161702260595109123304482422417892186952963842719715113223967633329569526922972052681014223507505708604427434037807463824774320325064031891706703500436054422971196902170424872417300734674381469659759575444879329999128705270416380533115989552892411534979821245328267839725548208869340758468071883688138038695954288441053927476583805838832491649249556083677237861417941833069708662636614897774069503867987171571016121855294340353842066015116735963187884200983886034512713484793322993266137395212327244270658903649914213796840440712414214779915593648791729782179417978561952812480369136812853937729654537379153939549717769054114427749324598248005598729152852941992011996234113659516301086171776892758963362740348320000874705871334996825682861123585762345943462186057793316933591194121805097386097174318368330392245545038740834128914859318283550416795936751161884048946743371848883733763996306731296855701540785172081816024811844787180616057303862496302617022236542937296304505768446200629610349672408059163498581785513552099542127980691771051086859815112111583494862377812561616758405431920833278314815385966610734705810024229117985160146759688469868261378740037491707074988945604612945852201217006075953696703291074367887080676280953680005040143634659905535406874261671198240067251783315685313666108055712007186257874075849666308552974365126024335242656392749469684537281303692316945831955772912565957270857675419414963792713443230034229267418046913241128015133070806138875547048764542280892488956547340601340981374418393473481745986963694216991353007814265888715542801701234905181272931688708642370965827734019615723528327769031565415045918705903505391720198042605073912134514614083237408615489868901369642828878484553256717779546022872034587901196425465993016674625997594645787824317062119852020245652955341971354561869869351193108802383618543590688823573632334618262157998213699661408986745622149630086592103911270309305933614625865237090900277095935777488298261865930822108226651669044829107644619529321186500431081873968512046630585919397928351885532126889645312920129894234233253212601360328253471679270203987807316543568506670336803147353331202349079924454146674861157863832346069305723478042313809897014699011771244089539944333643844516454085103937615911882244198555983827799611430683141047365647293433361658289609279596798569207814249032654799199022045276563573265822492512614332812658915703767197751707205454472303502784547610207459620246870751458483741698305087818041488002482135930326738050333477467853897653732170034078650193729207961183641540174334256084448601524605123482127217008481925535374720199889033465590404061396694134526412116018917539857256047979855673011417184870297286129416731303993941399202545390859436049098063917927017915292455234690977878773151683015565836850448786788805447500796802036990200787614581702326397777068460833698478465267052828146614825125123914125630712320606312559964242623083606577781057629557675540937095392713587877167038753258413290181287798994097235144545108593962511939598211969865559396908001193266643574581393698277617093420081831295912346923121347190966075420801145281926991547021612512547283244138328113835693840186845531792569015991124195365933547788601506425192234192983689397611155483654286279932481141261919579093255415005071210540313646718220647882256410077840932315512531027315137961078740971859108883392755087887639019474137238543830683763345558901120202924992360675060010578554103150945747385662887016519447904005049491622301019627161896312856651184011904593822420844813632839278494093177272495572416477888712150252547660157938648409748925337766489209216799342758428498367119398535243062184028687284722870905204093741188333841832173316046961164393232858614987535526680282069966449418105397091446466528406336251629262262109153470911076129014888925165633262803838812407609508308377799112159176405166491938009123936031527683038973268014256505819580581570614585853018577903587999678538657149303307127957619201854385238435548682141110704814887890824341840850445039960555167024188249879556411876155473784567100247378267544897311237260788167093759362796155876703831564863189220005495469282759549166379274496769493113552878773978135920172554021102866471097445677238608846991303743944513106834294730152864748390127361996733999779337028317974156264900954383647934740552645393326700553474214048835501321293624556511970607914586637624735481415727598688657467495051422745309183483064596714940014986424757908616535276136297136537711993313613981610615577723282629968710276558505988654353312180664028547837363183866272687944747893645479001764803071181934964738611384405594859812547739236879389089199734445027436734310252261238233244413760981450025945991547319073836320284832091762742548564751675012897371496280711528113041306476112432809201875953057070140670182152726366001636385542412562389660447608956900893705018401391227679504302842642460289842157922621065289601031075157208692989231976063910799549198984677590164668383028085810346944658788779235285086243530100964615765061787533492653688671726111303105950294700092849866891568243258018727557502720254552950818868277326734032037340238534694395810720845974635813359206449125813171797090546461393646095834153215629040985475094129676385321900308257373373980985237601644960165375911046068433049121467861124210900209264908905547168660080774124827085263749223763333400678709434278466830325279852208112542449014760898658023608723975760769272719200972399390308583830046181998455716090815800513702458603295941643640449255693999153365055965320003186215109523164501829446531433361063146804635701082950018723566380082992522918672208022800756464394103530196387143354968563305973038351978617768013989774938403289255532770801896847651370897213274444616016232815708942888391033991604563737764137868719300862412268406505786862614169324574852039147170893536984106001660289387322635099735889456189456185677619882466956753235269458473465539031748475040285920192215083429910257112892873468785234099326551105832972582675032997996845325608442907133410326899063426138954942994027794785093032930428671257831153414642967040254630656730493525089568248098843244419923689081639386577755505868090624114434203894655164859871021031515720112621970589952275043364730578733055577631346822991016541950169595145534412155835362669362358598490904472095218552695603098433194558417421363188563546476966173207254790720206057047617601821504068388514424779522414283571386432224978257762418172901181385514615495347415568358367258154581585383556663200131994086074510190353422341165915932836562798791221931402584581473192304495716386873705401795141267471472859600121694419359604704542720411239612232544540040166756118900092885699343461752471584773876230219893444910266186930326007645045892167654147430389865673401931992643123005911261352315247073017355168356325419214821693486512557207312193949861035438532621640829972534955375938807906738659536415309935453700293595898171507258217065890993595043520658287710550936126220692824484846861672398103726959450450821832033337338732301881584656751669362316552930131978974186120079293792991146480736380024378926044747750260244972850480144559362509436521625905532767029404119694044930197370177165229436960933439319279034602377206128202741284440574822384219435991938780862561814941659422322549027839166433849280465880302782307908200807924619438766193512637432125128806244187622648021221757091502319738971062937121537304867521840959520278691660425153394301427032984671217482850468743869824055221971988103679189110616227287559955479687881384389908193134712902898153725977303042433704974723096161497828045514781922162287147766810044164338743885251688482953712323601404088025778812583352227922763042105591665445385265395419598782537381843707432513789530428226643316064080891170980013376191900676523113117355531532240905060121017466234653619018066328054683511203798412298223883156974707516204244384615930023590547996772979524870412556076885085727526115267690627502708482770348384328359692221283145621925551261754020670457147045551000482075430855672722312597770479089546758458707341777421054707891296808197734011495244432896560353160424205620084183396890355973187870597022235477762149472675907607961965363257127230922521169508118985812096605849553954386676427446599176236663245128557997765666844355802920413508175998198452173576794203227809686218018736699659968576626777594749162347994404249862148996838643673213901938038524448770019538199336066591439351413304365980057513253774858053651081437322834554160579373938613207362318819710680380749509456988313221051259222633950266125051660688388064630937387995430478210652262736811153350368749699468851397675540541629041539745521092872883986109802851690136672278076476645005701343033475295940407344556846705088545882645178892108849522326685340193504594445928271963109264366597043061492387159064037196328290099743487167120075113764324917900638411886864365776108506537369893770245220728790540796827822585843442197329871854948052761922581089636418574998097031025936309284956951477406280999606272498080928973681759437944098675167690602078773098343271905463022504204619585006773632642667740453476014242319012034861778971125008425734931372660890126347968200869756764118340810563955021905777189564852066124715146789381989790522141377091690796474150339821919747503327052998887750406017107244265400253493832799421557004373327957705131154702053906893473319542246484136022980921278250721779454991067838656793558695298886138986284092129151572307198902466483801143742707333558596371120057440892509166013839957894335799321547209051173053262439312558264086619781505338137691949385927353324309207415772987502864887491332738797103756913426057209101468606361376002105432121035788869171498542369939929009588122869020982163104561415012404369682645374557312659762966055361147725178554551225173516255753589202153050142786633486546702421477482666273371814483715000391241327727593508923918712881198656512393836059557724366160737889582680509370446156628634735704070828118753448679869858001586994803180995993394350992480550620959968938269561098373618610611164501287638872160860916349656083684657893881762919909061245142008416661542269209381764848781347108427211312704731617856304924181854725131611022718268133042193729021814012196820806817106023066431006991774289509889112597981177465252251000724904470156700580468111760855182683083329870822049901001567089240286346774734953680230605194186182913010768558536679217524415375122755907282682195788454746089189482190399051587305363713917939305359483615448520969565950518163147822767138086360646615730433413712276135727829118535682907621166677279399797750579858415023418559564392706424133843616943789229526653741086371840636836113472012599404240233623033281233357785245996084154497968277903246982440162011255327261857248290850733485151467646894636885219576563092584731652428491667583841015465252391449113445292075901867060728606623822143486946812321101132882943772153476094311619111632553648080629515236408424035644709565583964171926702883016607960641090448467621058602923516936461655527055446008207547602795650475443161649802755609016953814261797108239782924896133461401947708718560242327597311509617480217906220853341975950405183790464264226107882564848590575533599050677948161219865813202698539238540484517684358843288935649629378932470794455413422517261749368288622929159862245297812975485196434891104398479603783462538105395471250551187671528985242988289689534121223468534490408671317516464838753198194607426638210462036757064981584435722746225986800965331128451515745776919317111685369999044057808338373861895702017848340326598885671969204643882038749536317080152046185099399519314360410361852094876018220072224373779584830102131540018960701965894704555701860613454119823214415141158295440901284513339197981015018997451317090526166437506332009636067272960761919864892363663692943577570598721416074622874408330894126393458679321526377541709878255085793299123074723894517501953126635779114973295658675716944261562056840517926463684128268107044495815057794104337724724794425834672153079617191361332999836700377188272652698665464140138181015135359934379850419701967546725044154462447571806523513106919857192910868708125812610250884480862523436972995364816275168292748745664777662843018671847175224867124899893584420566403710700244574608461298829332583409907200917838568291860753434229759682181104196648411385846116927795264240350138398513552014573696988034388002260364088598383247501702634161845377028709856958411358184640890909892877854630143219783044300116076132155383991189495254436006854873018419352416069245955927146763822004952599328821988839299113054448452162959586928310573770195207460139462244866192154542253491186376936501561705053244567336504902919050480311457618909802241086927076586766304110767410980872078115286666991332815742562048298169174438856137088774814000183219763791185870765278112309088716839606491140021396261037757235952982497841503786458633710640388166105078686957002345635086714949994662070673779022070280635543554559236755952551049853054350823823950894112784931963687446399946706324257582340287506775207523163935465415777621371027715644396189051227206414135270298059804579663885131650976384087829068839996277368661762608739903710345424785721729656296958107147931414702437049367684514685292038039300448787704790779862912380151884226559989917333445796266513938953745593605163346748961641644403692790386654496394726701502880591991805100781357361325165529573099186246280820719422126502753534713588398930059240957461748872716625550631741466931838691300299960078342125180137285759313637183783791143060332908392757525146789672194320801220839474624961937463029397844660681352463463826010711231002382973215094429831161569782707482772739121718993454826820122907144123078641357017911875883583850433020430750791215933585882135170864575701757293911891144347505073497088019152587254292901883282461412003500665856272105578556886087349474423361607482484380697524890586142170992148660977222891997628898498568064511673576913674347812992121827977795047493340762575712102185822142146526506097261096555304113645645188879382616844742952436163116671503175930888870223989059046730269190746252833439071265262452103533280048025323147788022508514939995084105755558169107176609417974253259416557306338873279633550637125688843410380387284537529021177622786220152034933515155953846095097140142666730739907025852958635366864136391915061073458925325176500059410378682631722667939588487808255887352687708643960813198848823594392780286460893067996815340271812009977239883269225555770463343512307328171244147524249946379669338332124109682785304377413446400553189232316886452606678719391963410032922776082709162764763715235274813755587534984618415579189831340475885628344676013780358935052919046655714993785702291511497295543170244185470801593577715923448882614085567759235788477530080695077526108627636721563686514221380783555084739940922805764024197465827087214863094117881569919283408282604999377930611543509921344080973003117510394181183846754036659566878441490508146995302251247861446026675343684467047317977424075691795658655047772063123980934737628286609453862914579690817393636666508170958552778095606763250463372494153895449900070629288079364848534078807615920451656187586562892964300777824712234888334022242700633790606713028256498210950161801507663837409203149100326628157586336978172205855955755680568266752014913419882383509636417026843990019128226909081628607520452704816467763047882826158462563086355630089064663076473634104171468849590962930948733394606099882509866017037398055435774012191716447398551204449072937263785146352087004496304029623483178202359058854528563969557828821485264584800064549518766766218717881375775121056689466234177070908222443801651868020755824762056776336632491103963775368319129471857313663072045769741460983826987767063333701213224532676442436488685850659669027856048086608969911708461306926025172826312053478494053280621077232473336756677624587032628732093145769181891912410673538123840650035751982351838360264602009445291175865500426474310971858715899513624960342555267193890773921542848188126423218758296892669840184851064641138190658303568297873689921846014967291046089716988146888505518906834312536335489214709725507300692006577216278206677626197345318278664947826614343319634449244568436853395409917808443313587348509335698376800820157803360124434797601629058864441755834176967591492689570568608485895593072650672633331055235202196065847333310591711968062283731323051098208174606334705287074853819061194750369286670734320595037626638826954083949840539619008879029709843702707789225920702276536432478959847035417773295780109504068343055896191361181530579303783213131750247041748607991233777953147715513472050613847550120224148819502181122323602927692052839858224329751334398535100162682962910141589890886607666318921486182996637920155164198422801298206101360692578540235049717632866167252934265424220109083818871862958649954074047007326747796319485184929646025113493638166555562146758903923854606660227087965268868601617535680793652798455830247429973753796355937008870909047669449289898413923915218070521248659591021914737033120354564141742531875281282891470688263904355658746624129351291453995883699252891097550171645231101321059123945194340103196685189028627128947705533227397275072546301057868427665639186895320739059739691604562212117935453401479648470598935253269632121294819005487309183631231677034588942174452504179260390413073021451513526617229984100834104192126388897922714320525206305352691469997342068087022827202903685383632057616188961812199108807251920956888231892600319971693960049879204865071360871327294317495073083822818194579719616210902297454068114429845645868280361093306586896279665055080703253383643871051060555446920279950875519994204529105965277281576677553574581531666677685453395512739850470369935423394042458127298443861979321023134597708948987160253237956586648401182796269337731050754528301744008146682220820737463535435553119017545462255316991928932080761750013342774549685671855567712377889607341490723328283624692842490327165964073843290232338921441849758662374681501289379838490473514987357530002529667832542879172133961296202179526810546959643558756366667276274250358986227262932550198238190197628767792524641700755329245124638765339270276021092295939793287034489406629074676480777308801941197063677849361493387188259561707597991491745934717272433948156596428863065860349743217286685788646591517887860149677760540790588994368226557870521336613081096053866477074090028419092480754082823991392159052467630423431075352148311683703968480558516140760204257628461108533477381356720409160855639917810765899687501508132005983873925724303040461762860332850523416969916833050622962837543868984636331226693577024955075355583289695336200464232112402672127639411212334437299720208794631799425155799427002038667858352788014512650822513521330309592703980124022056236597696444912891829235111107973780613927323295020603490599813712778609834977422229471436862680758198878363086043023098618626204924584100025996153095802860346178383567812173334754976426314900461429484945092255140278339072808011898257965972427299169852033720242677410470900014759851073053171742239206596564735569882604101331719558114324954072909134935103886791205450882518859646482755465140610333654649108378952566777830011898471082510029292819335202169634730725789963470502571787922225168305312636436527386217650889568441267774320310038442098895008726526388168942587100762586776579530356603131836806870580284594984653799401101274399296826274533790579562158043942191739251464770656287018612447564870740404402209487689758193727229741251457717732013875182276687394886836225187166786945319528493849338123870982486333627912920660125440639001289334803248284078895962166032426953589930014415917117983975761744298506633329993204855563898615537796903932460893849734062752214215729363399513228565538626123302338565553755925671655494261376727942660077846007781608807258168055445005927718937948131663350837373970197217021081011708222643665314886595295304624624919043574126842211920819886906058840328820881295452071885321525268166842450318663105990208482662960862733698082466846849318741640880258018460301209080525798593388289457158796186578156628311795739470768751831600037678323470529447450102158285415886157346954842630557543657343202932031753785833942904090615989418951566348354100096270295581391267381864451108010825643043623448345552125732510339524966886043943302962710621202465273576044543973605460954868282478448046620980802548753181629953267611890430791446975969433607032860085081996079594790364152775520946611034815143811149951752807973749583475465354793182572040666287851000802681719159881167005339163651206230082249894352779411965599137284882943033818805358081762430657475434931657235585427204687613808146388866900627334139071772033085387223830178579282075508294627407035047932209471378037431552010897671514410646313914135111552770312612831359213672187407917510765346648783982801315719221812893183552266477174990944115770613486126092464126792337087610486581959082676294109080199322577206207292826568127431038734092983807874990193189819185512850229002277307020646011709453525125082041377431838566986651386542260273474351942773919284250691404580748760716985817970464466676657287153189481995328093742712242411027788608452870420917369215286404881458138473932662643093119123867821025613841986323111675526508791085891121782624915558849091837151418531428123196263350771757799273459485150301129340168525084729019781045360530083984253962493949510538734956458379238498696513454263513271186700133102733770746749004129493345140179320325530035977791677310569054363359517020887146786167898701209723322233910723760438581872785814982693550615034001829683978460979180240041362068600065413936938746247114129448716318822031263536400859601706149952071061153507501767333676734791735719101779698830580650494512672964154417840718708443214622701176928297480577329133240970637159375665794149847291752971255167355587360891322921489874356301581123846223273203291757587896539276243858923549238906538927174887439454801551944988536079871324183202832723899417247059064429138738204927700245496368759724728404450612145884643553474737432990145095065852129778781919117556070881688650997154447778510698391921086467993122928543112015286918686952802341720284141483354872427457453213064648808581465202082141105956658749627518096384339657547858969821755173155906935133763865351775974830188537545533458354641498986397013622609446289633965977022340831537030305668917726458824031046579889813887788214063781246249019171197432677226957654468381365232653795224926347358342645054125520591668907569695329784766368913298723038489841012696154969064108139059384288241098926400060025040140729106103524936816393096003380025029984908586169928422658279552256873728189027062683350187524471596911111244566004745666589615948563943788456255742023350008386984794833870838627304404868418092172603063431409375666650819746291336718240344713276921863308861624011555431480479080512502495660711282890473382777337961697312066236949335450347177293367694099114757653830427330072577398789871299741742350056252963157397833202470117291131228296494617244796015993933690266015746400388941101843186008050156098276105609303584361093242500829327961003172649886301836447617327131001884026379527034887512458344738119378516352536317638739185082157065605080604126057620083806827612217062230113954016768164902187413180258306235937184435250545124410219595539152778516040516698523742609966545522719845954057807479254715145692890600451232142799277782995621032811552714406164944680910081798735462473753682593334503712632531312231048813290335752097252980850362728516371388609743880241684543273125799185483025752084389958721627188541832104263959107594634537826047676428294735355150961425985155928917098287929112569182659933584907498793997144386455294631084367778539941130203275379086880433412271341476779085030514334622546265749717595890562898485507061382890756147261725810727718956906875251356187715133470729307886049306202353742569797108894375132055088973446593861349224465734463033318143567058927192735388223910656182352663510568593808644202727806470191054691557644063918777912478313561163965218796544354709035766742420648705022306022616344165334013915402986084279558276036533082182827618376017750576502190023647305624424903100540612525995223685892343231496678077624660296055232756205982619297596909667795362820712573174196316308193870422431791287485603887613760958071669907107934389061667389580410293120906972806005098161073834456885649172091477447027335824357350300321545829694694349839257184965218835154978038757358399778628288312696568661350906933087556439398043459551783351224939089759219450714383829325883663205669524231148200551829285115771523795577569482887471444156000460017389178997045654356258800082819680460428502383160090761995902710818098751976027594931631866580542136338379413697150165192842245933478217082681592995139414528824995371528274213902396146278424104735852518032306723667938906985994957987542989853403222732780739659617632122664560049613120129270665181929048928245708576365503098194515461202044914973764330723954899950871209738538076589426011241836793615012927828289424820779627348978834184793473088611317789541181473336537761696653030879792796424875257425144996963743796224046549965711651475189704659275466674453989616068674173996057948947167180314041596653313588592009179115667078674035879296087644735093433478391739464672307861267275302265375424748136157371038339097164521987388253683904481087362042382420708826081042411536685381683535434719574342848482085392610597285064360915050793554536948575811595553012368492088976821608117164583871240393914295260904522812710647624278353918856397826424685104072719641984780447473872763575704986263461003699688791181534826340810469241513879513244942715925982755922957038753220892149691027056839821857785817939425447321886989608779467165661872967092870151817690060406928202378528114954940557223942585661155010878916701257992376653302914625563682806107841445735349129097614133304142352132837108977862305587379642699683421448919963644513547895377901933961942786392505701120360112592747551864147609608351564275608749013446601342942485719353082106659512293023687105996059548309202111818663641745940745384222504962888561078907258412154328774685521058044087492421469611731771422029737867824671218018389978202329627703996621870195567716634376605639129129170614048451522355637010057146333734276626595508561238801431603390668765540511454405386501341284114959201552993306791753121661556103509201860721599754960563876874695033903646887613100378745072061130015638915465050007093509950806553745376311441935784124744245726844328763627999003556543108065231480831514252537835411922983097359940986859876518461967522461140606898000613197549328123964928279824246238363862431237509341016539660751210406736940942139152129025553388286188936047606777457152979987755080116556294967375262897762143246502651029617168399343058162678345874597662847432171279286032338391451348976128611497245505002316729958829990541058311752488786282382737134060927573138658834898287684306406272471741411940842973246066685054392604915722079648511556672760757100620055211414341649454036650493999700411637007353015717436879369022848345725595712381052232007103940865943087786754235343619973235532312198742630233253520076891404992863710523200427942522162765023441782032797141355707079401619059502672405494883668385054107343899031501251047006628764328273838232335255814532903668561470939626779602097393981040941683112481510288582103783765922460794348256339209508011351060300728822591336101077671262153440115012513425152065196253190539945678385772344730702221324491536091885323359138745521375512105982959105608603783428825477199749326002445415649524964974575933178745512087196459598652196876709145167099289699333440006317332225947097967990749435710140093510168357532341831841326203591364263575233346679503914472746341781895640000270115623051135540223736454326136632741392777941222006585141299486831449252883751346925144387309272614475939147722518089074988039850967727463491896880633435371478008891774417313723642138100569456829758520090361592644522626632679229372369310756906028782129841656155958651572310466085895850842302284112413349281257619411073727465503536468966581008119211473014827022988400999683876143707169867099110957086289925490755294151587744154342826190381061659118637963713087624656745314585752941665029956968264996811587754669316038823527432849873385882130958848107106814344251379328047349298624227482426654368872394469374979646447334694272408084316515872543876371749467550836842985331936837186294546640398500389929834221687627416773286303943195506382391123093078254390303321159543243279936891071102999982082483881497817809713395832412209880681286391821905087825609865136874025081143174699371398037947368220360042258397041193882928422204342552597857319226718511111491130963387291911575490860716235387287845614180729407190138267494707495471226679218676586388652803668762333286995397562604676243025046574829631003250985668018255986077062080807606916422202597936702183406999039254370729463623388975878948806576973669027739543379655112189539110711352804540462100241220473632680825588273460156548837815463364999891676317024353866513822247671325631026721695327429972382272567697416512962502195274640505920968932238993247828103973761033542970605377572949011596436575084109335429287771854970494673674089545477835660099566709311212030126578278435627190631626630088141526039100995259150986633457947925069039106488619042032720311779925240072738468555086642772217933509747999034747648457147540576668736439357718174275555542701085956698392131960565583715822356161130193417138304586715799457769319296817627132208847558087259526142005268919222371889065419954412008137183857888005931727798469417255555693227292023275681743548910305368405160013203459858795991470290771418307494715411188325513024465336458186848980944284458771218553855860351710908270131422529855136455538700362876990713163240599805619585008802812009085836741462659217964881235219327440653339997215577532453632523826738031479057310785336959267672588119469797404541951730880264277736665064921879692081122113422228861710184126112066884105771168027267590134172882837575696167695744623794611864104205118523401719585640376246767376493480617595787748850719480932137465750997337462366668733875626689878522074595582591157112071313062056156153784632408386808754184887954246159563319836408028054762746203659449826064323607313315375030402669003826681420670165906512557844321774245119921422600840376237572896846465648356518097552154213021993876776317038811892479813284183210993910069657227892046654059057911459756538629892596547505753600372542482432239582563863266486837371034693241356296300635427039038050941884955650318638354562266228493635589959626439593170345119290471871790573466966094921109811959831710529149792430915777273661273832022430398851034780616114133539992645703263881858370060643710400916952666298970903651138966427652628254612824225555476682261249304209321794226114656622874010362976669712012006689005413941542926785570165385937506831921167154580572603294873687855785576853222969115749100587057139032650207458966961883747653463400001301091582918990618345401698800275383196518511971458820542066977928040784631348639606474815214681914611410758613537940287111077257394705522411028249973630907700158489159612283307115664096365784683531236666454749685131167336913908949235664796005798146262887282081149943937456472046478143635593945117805922728351858975652728212157111110231838727173968134744903027625915062985714546585814205926754738392319806163526713389541233685279801558591300508912863767533183651310606116374951975806099743783468311869825957627002373504962163066693972244134913079342491025583014256615962980354587339381079311924039025233847489024086539516078606218220125651132791791059372137731418854611406017516630933350777559332883904967791424457030891062277652296955115033827789134589399444537233217715004691903719313165180044595026861355932853317350188688123016880625809567816493057487483454915940700810535533333659794731196134887403752808558130235129713853659966619505915860222870438591229021788787047406887034594555114903182226735881400732573909373333667682208016139562518540153964870089587819426519285488291954523998556096017816610955429849001485405653733734405366806378244895613227437909085817315924329194089714781569637718319357399528459759330859863701375228515049106981552056026251232257703895203217012003797095381901647141513095568884205050985944101076671340407374866170986350189325548870093095084209893468892867330744432508968234326611307263698498495954427580097400953173457350123406727519311595921392676249257054789607420066771594786872631029178666883297172292415564390657318044543526333321404038138601992615039864700823000107578548236885581880048598971969456877404056072631284524463450538736975949692193473881383465726121043902925625871824693045089511515838969141249348508223820189426140036313845448169533557269648038368065510740979909349333110547129658288513448920378030345976743654918436124259896614254432400577936623291694159432831177563629508799591555989396600200659922924839044796414362659276511860810471815322434820171766656579234453288576984124078206775455990227497928239784159445093747300609021458475672242890362968134847112895114704180786634268761260430329350057880666459417257880803976696223939395885359548363538078474647415768483489883594760838839130299539093892506799014355760824766011881434174275910704365092877889118678940132049916935975551670879503171263145078927292340851887707601854495834349656419833056979009679750267116653477477170547538820122362587071540372265222894219796632481934872805517365851912945121536003409440681711682339505383414516353041818957924958624986230088762270632607212544129488993287257631544877548709265280868822844488938525848794910858483297499782606750201617804459913190867061903142675138645615154747822916053493083926732738945045288054629651892945745487209391867843906502340035501068415658592484973417722014595465730933708995513038525188671534762743402317449577260711770961193985106473108586645111137188803633705056790970910494486069373267866251147785036338842867678553478840549559895584208663005524312297506627277864716565628541453428240304786530245538765054782603743862155135821006025905596795941203465640309644011624756036356319209629988552896260173306596521691250982563191697668076565185206799215552683569311845140946286161636803225209343638903406372844348269338331677788296812647558614352036273678152176456901283955122655466593782282260550081854491559060062664639166331707175838659210304755812747988795004015375708996812039214493828937630751000081423661233297038109426961450238708757320312294977552574131524323300605503372381797744523709228615271446641988002183510736929942485179328292547000314522361384150106329723190450855050102971725436570293513492829258944415938446452765649502205951865737538460893427678266720354767929277613306923026777734520346356748519233998758616635203294781405047764781064184791767006636005526742671758563514470123102259594192930619219712099221531487012491914558207560435548059283445746165670542616255480448196821313443186684758489374048675261735980397393620144303322226594418120607067564943155522027907697956320991962172270751164733074314728309778460091314737497999697108715595562523685813293917432076460997644203822850805347667685967551188237461235520984271309551804981128710789170046890032762992144745872240973178238462947459318548795151356936573491070559245480210985375951444738924404278883158481078948624835055145366103655132538322077610473561312056954521807882429118186620888571887099756304656690610689990036460491492876983711833464932312376314523518026183346681263807205097699859701361796398356773247285929943416217379321544701192983807557817487410240512545418183946780713977718810976032536896804655402432608522258252736353975431441981458309138060506239037976288860827929791075339223636213388555985269018713882660263712857458746914467422763359465982264914180987461059747516236782055726114879542139919818196545180153755999893601679365158318981328073440408657968292038866317390054922262768092624970391381271482430292475781888997284836636366552678752246988923323495703550657274123002181069270184740247844354199929092638511893451577562749019536440811427659006643533667711295416229752425517133920520503709989552836789960832010618580377304559349226771300888436498059089915511733729354244365598244227070795959477494684708435081674898335139833293888778578593916678658446346604011733370015745093254938653640904106973789371411685400346745089588166889997408728325527336929459996900901559030848537299050118229844910353016303693963270761509947848622779621742015118806382297159539127294781423895145530053447692276689615468275829237767382161949396884214667419860297019940361455266354134922043024691595937248980381846477066874748658588904944669259384281738362876734507019821045775572871301553609174702584801914655762912856428192991849699400046165133299486353003552865279118696564137070594950345697257911915355750408809216776427695807157597604648377849751160937467175809889199607033135136345378414282048476620481022327075431663369899070047584581781081393153624906178793895092948244176067680319378897209140510551555729538569582681485212167426464401582417803423180540317584658951332617981851457544757453161148675989915867257643637423253341736279460987986484330105311360202163218878308470912555293818501431317019229932782511597628423549881075830653161812352122022249276346578408182270502180787551422263771653712915530436227346344724360641665413654010456517610281708765644546421002173470983148456846617306732063407182970248830495431891306609249781780437350181857862162895815033141606617966826474017431721025394285206072169343820305195480255833915073795437839948494590525025801793317796073373060658183522974957059959109555490257134173088260643089468284432553200167089396037680753700269382042948778283208548058084570785726426999264858168202064764611834494601733786592067318261828569869325478364170812143525917831174185860463757292804360241232001457182419132402380111383386076195597428040145480769691696270651176227820300415903882351454285161308177920635388155048469063333114469848111669157351437442966044309426405254986315254276409060245343554559216758446795879566373663146234570029125561821651013253954669832492409393938785071281100811761838735141813448051846724768639647889395800783197568911974294902596549667776848104822665540392139846351233964161263301145113749774394492242029598557478650915066945012071310469062084916507795583080652477099412006092328837089375959812461485755780639102624101067759113817035377771479200441982249328108078403148082786563896416635374077850777471874235683875856612678907144831600118802970011004351912066879628700116259581424026552290027981884172370458158392964520899206613570806370355981041290482808822333914686509763539466407965314793529784487054157087839467830914737934192926547020895158195589914334427019141195594230170819997253991386779758626854283325656507224665476663456469236939571585527095457811239282953008465268153795031194972390380440976130006571643795348532119907625054569602480946281880120184569240120566374272960399344222834856917117288914970146486609212283422895860449563883503110225813071080582977094459358198663936910533083788165150959762170135625292057906026314137845145522091285067085764715645056015564067810796672699217055198554825934484568537991410170606344723450361917746604870098482590108493970984191355816317835693484448418299334514846553271995175765095188549355016527788634581820574690381825008252174460010237603967940806263753323837075332039274930778893437154108970552348008212431807060670822745342172705795278804946539511606791416837032022891396693007387849408115162002860024358536662510424298256874483837677812600755933747320213207419834355271829035015658541699947723685419627211515033546299579467100674103008905694492183829168261310974609229733744776048855008813447381798722313230398390889987205829124795315789947017553630317542179163928328900255803670231264553212443146594023538888453781141582379735159734352757258692622590615304723496624513878505013817361264981626784766286883288718885232597024928262921860153624993904203822965410561025893513473255109692455312842713672159567243514313602691604779999355627707926151295118761064881418369912415865784582223210905161100598067384400340958097418030664318019766176531655037376764854068785759963117546394600666147887359781633114653206512066061645116754298897042398295447880263363179537481129349524535071305470039453955907756172279191418140390499105497177137134759563487139250507509594959467178492521510304464593612306008087589869505911100165144323169431866341863313516748405291081502285718788374785849919387024654474138812393177651248545116754286543393318212585401950373646156130491941886694230895227664982789143292801050317994173220274690780403949308993242092234270146760257690233482729894436095406505017281292627118520558836736956087522293847800162871655354192674710260846320428338358627658778271091292662299549518479941564390150312937251876086746422229032289023915338385902999471946127099056825658762899851075739976031515546353196634498093694242010827541925226374049806002248268692217864976118930431561270422772482276442835674013333744387365061742152024483724309106072357313048118004471699582157563569587887679222517575875936283240272343322538374786572963340613219036803409645783777262592641564609875126933212260084151438967733482361084729421775824921431135957327277872621385076560965990567852075222620187249975677737903742501919753428344717561183361743026662327184602867290159579374625401630547259955494407033806929198601519376803274833127071244331980646687445048341167131858322562220153039745631234495783405562670803330609762876282542228047651868141376947282239287722611286295639088709442343681966728518666295093863471713628364796488326367546057305512394146524858988884145980942252344535549365717854150664871732636153380003945907886360646257497856326302240010062299183907418426053700083400017464197813311527628979238906993732520498446291490668270150213135566386170066893254277426447917909602580639814612651857977636334197019600872686058106400119024826802508671320503402718648786340270930339309224343246749397214033247687517907197128188610067186524666377984199942243048068577178315230130151518261004267022796842683818028656470332916695971241410090049388749472385787811086006924688058359238551244173632521917619579698293373366134531638642392216231333555445535096680568396413964179964579585954030804253235098871176323872724430510251737174460957324200817623593770216935000436945881423519838313541773255688073617577325748317210450450733153821962425192733880765073194695167457707099762150930303578225026293997984470009717415975950226912040853717035647791530160528654835983085028608402739004060547972187852790756831275469447084528451163120936406326294582316954661707900880493010795182947050786290259832884756983665531451194134008995918289443891152309187216679802334714231022460354075828538984830169939812789652460010366527126846470890492216534237278777127120598700260448898230293372863556250496435391296996492392546217934319332815699301627845934487591126309577381996342327974377264601072524300149170200954234932428473732555223189039533675388729477783439280936396457846163392259142861964779727092146904343686300690265884833464643591909005623988081866085350455411035923073819878921571309110867116126180896808486102840499888042171145298563612791700011266454197142562315587153135965500313694402678353926127307796419612527180551129858655227446553240732183343664970154280259436568016428295809165083747612197922495886021965694948221239446038936999320820643050355284077953776498365509187718215565852828631819259592124435697496769482704078108579422205136196912189376971166611090556327532711722402144312291685981388651913229119695154501676110355638641208810680970072165224544468425212949229357839949597051602777151003653209188000725674571931503555656471711559819775295312923011758459078799146146362050108804701805810987658717961340465650030940099726765667969233501239245668334363802248056143536616012747822399584032102598849302674306676319424349232746812292464696300211299607637700731342416785808134296188727553892398341939281602813848060109544919172304325967159022415426791453495048692576375214301145883538184880624580080414327784710216261916981031731269413189857194361255762792714771204487197815885299460856816133175599430175841610244347678044043474164093890938039991056758141309468975093182570874401309159137834149490613000044517084263798029349602618680493808048242560632381724363760208106394971099796530525991427274178823812802558946676616715673570362735693462188420604896002719000786247036266538938607539269218003285974869991735052229162994182047997193585077511096314010799132069594512827488739862337803181155664808594035626973612645693592183887761353210756338497539512999625443678404981012064753014410800140158983835576397576671469182954582254961428745834952846350264746668209240078718176387051200950332766500497839657616998975541975749534914802429687052029471912002536803906431155434664215436940293564939564793488401154715712854453521030014523599408386782030315488131754339783849370051084938997688890026473677780832221057737837769219222198614111050371360514601420526972485019593703219884695812879487599338330361915946479772792650460276241916249844049835788102535921814680342431920661843269830934437887705544120163443833322008970625540711160165136300342801983130652620958946569407018062512683170622779196442910550210731980014329068910560422442651288243737475995513731179335928847318347677654872905001672350187859410544980505400913727588735139216451964444042716873724798273120265510669043912672619339826302264502769737121611820005182896942795758510287872714107403034331792514675360434290582568131628318649623094770182653153123576451887072397648822993565568270020034243992144471358106632951096998514561264953601719232012421661888891274118055263990201342282084971813557373528663901378844931393254068616180772512662649749479224115862405034691393891502971483471668016686687172267308459750539156025151415689636707716811966392619476105960537710743136717116628446846025514693429430065142203842346213689241294183094700762183198046336860862154552155374305701292610136693203969088271459640293122034883256834045210943770397344289354402407318482180939527731945632703226205076073493554450986410670232664984595871644551454132326594380639608920474551792005805391508439732346185899673001704637112997998156303806491154478338148884225170196679293062683859443120200748256795018262667936606776964680811781446838535225535413768260921438171573554728789926419766613159939154144471443834090175762985982208984013693963004028773761824360202214395908547716231103811305251561870074788638376306543231342502352592359296196769283151994991172965777176114103598169049846756186741563453746696995281705367713375110453647483229417568344780708442727751276193092863923616584376690216673688582006904602052251593351883844251345184911769885832650287542392553381703285930225143434177611939076452365803902256509493513773798807886972212160397703575742402149254926362424197687142300073040417842782033705729956870943472498715883009132184070225675695694008723225774089883335429687506160276288925624609942117713254564420026336435315281386808490279243939627722687750930729239861732339690355942756199591059452559764691813126952831183959094340974700771816832011660717677984293570892417368163782400935975194942135507564748475091245384797080767938221544296657882469813149018473678029592785963281298912638972679281422017410655946508068175881040370819884767157719858706301973678485552809797614199553336899011297463510394193510528093331300748010560364773238838627865856258843825702936161225521646736366356993701008858897758389241718176577997594965381440189749325489292411342603292019258256843712085153456998131209316925348211957161977810644046179833474015992997800594757141759673061059280769282452665109394268075949004405538833417039363455664264003693673679093502729963813669173279050278302412922270559237777464966340752959961890229949499164026187365295861763751596273218452311974105643642280263587770589435991450514714988255626528885030902581318381414162377523696313415234058729742243089930864501253721538538022486188230790840433848340272125070508995816134998578047001119550923381489317061500773843273237845949084143979751501333291142662097639494980506011961124016361345913128832813089629028639302260464399918225021124515697962129380264432325315506946550422490833649567843810584467571091057203033188216895330547484328988840903134657208202353940319710262614816836723820258418507377681026820782215551114898730847664526884986434017140716729349957328926933944007670351800141253277233909574927209127015730437147860512972001904328787660058502670460995077069251856562746850157277436822973969883439940946750680289475141795713723583114125375304864015866879250554170676682873069582988984966225794235034494599576403575511255559524428379590731565166965469501444198126217880156110809509869862877321411240079413724469425956934347162758291046973546028082553059153523800276152530464091748234065598807105295015078637508736171695405460119316865052255412642456447840049737402393752371423454880937515930631684367990556865448087859386008619797123442417671883353006332004249388462897102045428837400505080731595501653675136438428762812782511015907234386395286212788932161717550366163810608196316468245344459248936221144584515579342927951214845683055151842737479667666816046462925366900477777299902347050060381128007349658966974263831658876995794779314099402688203128138403877294887509980516069011781266994026315834926067626940607729454544674003976470271408704075824656901126341456524101337624194666027987578497748840824523509860921320963841741012219936985613870722037985129542942186255933714271214442134024793029849986318226298952111521831873621457801426347270782858784909382372907684525875066929075268708278203262732522671099069933974623412160019468545798721352581414749863380427846152844549196718265233675016727753581851526214010617324996011586653510077046430760393819264487399406025217853054923970236696055794702671524296341829141511556239506480738500783458210785817968179252687953047558253676557486383517066812073472592353807760490206025895262137714179033304682439348532232376098775577728821801491231267064135589359622596871597343494217209806760632528601806913370309829652467950286339649915391093946680513560972060809976975423048359801326109560714794090950397485623313079707138618753268331986763852294411071785263398760194315732470012931599119494441483684054981136926941065662050392329280037888675425338233190638460269700050435701685453474093118701036993081305454481010574269166767045283434002306074210797911167860388905461973584644427676809791151984911655307405688285014399333023385944841063724261603748611772028010812716068759728373280481717353997803947095652308135021169370926928800734719207875986205836460588315900750365699916806479068658129871958002234449808651176440867852937734370400223599000873258633377161033800043574299127271732265068417295684924336234001015673775924752383859443933934513455227292702178748599899131983614919750194742412804934947420871492810674339062028920610101411207645944244280550289556519676656921402821113699175249480417951731445395260601606777391668433068620854747330508099929681292151443759018835844194861844197351193658340463411936820016031807275548712889437285707946191528456718974539934424113868447924652203201992506977608112656037599315805225167431346179454339220848009380532931374342129301020440388628146967710866891701472398127714529729349075805082180064784048325600344731694355355634922601153644177393437691049095410393359628878177168497910343956704931822497320160827972525224053215907529363581536973848261709049447049537686319077284632131841259174722580090670948299937304204937714911650931992060577963994454512811004616102416247454730976437579921139380663375061858645963104702096019381625928022984136197068659461211296002595790823775356282122413920682690066846505370764340942273790542692249080037495791362517645896682833790319470347970456578240279230580852903631111211663079909596405968779815994399008863340096304927355758672103385933595892728421419727443874092929028443753887696134215394714146165636518005287661520102505954505810951715599517924676949627863800784969365580131867064299868189461529347345424825641055182054189879485071315907894025990151561937406557091180901511754261277707450675097982447360771415942745692411528863983957514323621538034641916688567352615329921081067205478637759195957464992509398186802379279540198901731959116817548066346814818534915079540010744465281047358585711624204291620071589976499093233479313497277213985728886275591037976530138772764094315511615625770754078745958608294868591657239603458329797887920321169449019087585788430686024276072203033320676141618703347988628292727054617809874910012330527072113810924616802643401408534872556215474579032071109881792521999566970604192771097497055529410188113008573003977771147225668919971692883635875097829765726804185024708750311609130723028792175059578722629788274060578607306538594031332417013390917276003322306575050565403758070605450802668627742067809553439486423107005173995392611536239310870083635715404755226361773972161327174098161055858314215730490161674736386747368184739849742155952922784273273434542856165938444327865828171437842026093410687555909497936386279906464124091545167344094716434427515480776258403958825170146248910252996889877996890893019902436302271093854254991300664166513772520402047408378869527062626693956939188749248591605894081654939152738545878592864746954080074108650423847452050864114091721181192527240176049985083199592269314468174341042049508249232199342343423491937263573276730129565737315679201459998021272263952405963793746739523883703402008373612571987810915639833789700232213007023024895039506340041865639133305399680914815276203176862614285477629680126840639531124752031591826145807458293115544642130623295593369799856082887578180256964509010966842331108713899880870342616130512842105052600174348953146400372160179061663187165692177679561359306368737843550196607978093654272466213361858815802339570701222819785897424856017914999781022479071002207007856958784880514881762092249239244396967120550788354319436983983305199076899382471500830353696879236500405257499079056016149340450954996067135454155459976407193169264408721305488254811747005521027497193096015188172164326647084042251933005940647356978125501894088834815976453001999733538888948998606915807006883412384988832962741567798612408647066748748659225312662423378902467130608094035060852068126366812714439860854410861241961772284508531753511244023822253548337367375543483548774042564131618502907973545919878390870468148253721312567055927534613709611857969752078941161505760227481910991016925306540177670410525405694100850003882490998212375882020974145460665041116908834938996160745444578378910296353813526335560341274117537987207449209667058649175688755180939481478752256842120028175747708375920414976576586413472538112068049052367619970060412329993195937766700048131786293413325517319066829163461841919702102625376220759896138136683244136264944139858579969266766646873076454854659762642797511809994454073406671304222276462182688384847543918016070000552069740430266470287677928599417612618704803005131806495604470675217111173596565140745994534440861443759798736305669229202914412495342743228835626004975771333560991741489715091208328981312869893089253953909916336746391065753427160515905859656106595527797288305672547508303518126805207397784498431634536421240062998368903461208568406619418695511567459567120580629915852376537570497788759848079002799563492072350441257211996380646655210759593451944232599086978763231773637577705222471522318451752806204705327898114219585726401154772318687677291230691924233085460393688716484364149453234087472615926750683192548369976964267434055206742119178065061245046900608224307083299982884912901061298298631443844422967674406437824999061868454110938566359795510991622568838508567010227640634817087665458863777083705154488414917186633943505666262902600551920549740029416084864150911512336562748552744166850856424470837178659339515521954181658082001696479073302358048147279344807313431071116949944954387284790712091090716155893758341792931284163560504233209734401875641725827703266904004302939784274410046160408923863148926066604017743373139200074105921184020522079573103419719659982775432889182502575874064711756099213920824190220488213749941617261343985081574042418951937029338056976138513869418318649857255832233576755804229152196355499148253055951886768392519784728168960245442629089269218453607536721000196703704457077344471045025564152373904807990973561237036880277636024347858625262300965047774987937901545271966893686018521640001251254389580287855768243219994845233921251428238731974365770324121303780834887608563576951248455798299547815833843258982306142867153235525516762510299330273236655440640099316086530562512838595861288767932843935067528662967288615330739804131545748398089913352864383890025496629342899002270445224445705566799457536478680984189613330936092260477527804672231408020810967466222850258724622721738486178764807491549202123268825399090075294633210323149643123881234135483418227060573100249943235665130541642348370980655051429975564173546117465317914113265144360759755451380935127632063541254564570869929466638652715746071569257661546089413475351364801958133037902723530859904667439263988138922311068588558132926865215010896057016713376890488168330782925969876721072200063490888289892030000865156191720584438007874244169679848153934345027204946198826551287600772192381773235605888769569617477030775938079644568892361589930727216582618275998696286628354888046209953382712775741376653705866711850711557623703994382306730898202386264305976668797461525821144716398719859421241429597278475990005317750789263861904838650192082661909111620036556853306468427202146792848143143753607181509683597990965458649578974649872023568377920562144524907830982516472192886202959916025109831632873954247918945666785799535231185432464104147705444455525180647523982306671117717548671239064122834684657916923651898147021968912418070092767052590523525168943696166035619388905199617158838791681975464689853205987969041033368816025175080459285844335111007543820179133675243664168439186676550482564321095724191175472139365794884581105723238602702621378885210624963896577172624808169089848917958813251668831368988800659640064833900664956193670250626850830074213142702497874903118519517916117473394422648549611636113047866080989857672952985255073950343439080320590188385036769806200387752459736344834085246619438840468801862019792991631172696867564352878419622591788791906218487466261951999818716323886287460695421072370281323377602209517608411342400127529571250044447212819581245412007418168354270430737873381576740947914082359670214974075993345867987288854816084634454979056303988825262321415211574609807401604412623862951524641802176061372769783329729528507114187652054350065471372635739764164777774040757254753978946490129158703433804240870666766095267108212284865088271583478523033295534596594390549105763349862904061364308165780649467850534995175031714621992800451346474437321972182058969330634378021770762672787273055294209227578346631516712211938605475077288003801574669046412726289697945661628402791554402243415171142166163770646762398028176141022380359720168377365296043908664508135770937252507295409375856799819226841333282316027983783461852346360589973387965205047166361024814541710017168762728527874343634899378915094604443146728165735375468629574601106999618627215678914132912708437351234505788780774809917778682427148621829232501139181497832042509937048660500960268270216908726663558055458221699569136009161114357668508117414663609410025879816890668892904293387454205064518040224957443334201726445751250596747009533009422373467625322409667451986907394144439639128835878377084575514184834978051553911977285816670051903098672766556999165460315331697026929981303743688785340248613717222246781276687253032194602753883361588342002293079531495086677807832510795486319907632679899970339533671319711141744429455851598587101588679158817542964026704509415183616769803154404228896007467560591876039095110978629290037943373699643159565809944930082190580234432528871919473824879166315422623330136187441499139561375610785105091353245419037745691588697109803540769173868664055211747452190332827117030037936723786779637606929870407125678791484825242896338939366229366867485220483297128957109128103561440604714408706648846220842770897058933174604259702865536293999241415923821731068107092329585808706613157904994791875636008018599753446279947738794585677750461599812104540326322706828286785999077624344344670179688791401272434049541290918099064381299835757161523809370095113344916015412078441658576462962707357778888710703648065341285651198857214048907240369616499754176781076210565988572150123737758382291052194258862097167147201921045712872017899752161417303380055491602725105051250021033620923487464383358201448353485546590593486751455385072464894027917613640871095270006151459189710684902855726242417521229121165935616296944489319277222615995667099253476555105064808972122899227309646723883813111458186043052446400135133121936103721990322662953344239426161930939365479522490025288179703837744798628691416369041154041261858748916717837232202193777016494696345061744436204692246894724690915073803977660787061039791984295906009802526473304175727163788759679040242901004397582589444775410275048423348573763909961001006815626860239612375517557736755599506438301335204743294320154634871500585232461397081601115652864651095177316495098016597350577624758576473993070215112781215731768534824588377972377292342376161933016974720912625338012239918724224745289096934560634791549204296835978197757212000632322030411663080028850689034008390839823048100850204147194629266942593881620584786855551677564339253398985006131994607690980536770392027580971236182164098654620765360564297598357299578328257504068615218938304855319009409018403454457275689901036142042571607821344537026374957884988702571713915682775332970762960994337245086856774379316749208181650536406755469431993272016788209479805673895251743163465160282036803424549318886273043910452683950698093038382615409364911586150989666598980755431682330281436046722989419309099206763089925986426255360129544887047263540267198142519217756708395552224826968221536799012324370391739215667269783462088598837129892041152121063403351568404397585419319024899336876440861243815376148071452064710058519549737963444920134301290066384413494570911209586431881631400724234447588181322097129465334250730689515443024435234906353754259348930503112217320042205007105862319662064062865169409890694914968507702338951206389219142159310132688368919178319167091120238954494731133292942627929798376156918750197392000181773093229670041079498467080144532887648898573840588604277375535360292013989409139857533753910972301708364055766002304407228026901248556759870397833994990996429216493799014019643652880896072241984078232654863492973131069391147239455988042204471153022136053090485099448924422757788408160134113459965414112408851702148716677082849655399928916659989047089100978570143389040644992331310672334786255364510834390307872350006009429004453322014854654376745505687973970732995452615898604574684188898141993639739017688310904503021558549382221337430284855676924324651262515198188848658306154208502856981372495992675682572908279344990875207849469860331584210345094127302823659428654556179268878513156255055829680572226098479845466585877863651036712415152527422876331414884068895652538724059069619272951540985807525349115710004404363721382004890868840484290462018806167967048642142551727887115676292134596526561046924934328694783375002482613708877308796180845169858744930295533336018180707527600828918593358044656492178609653582431054560659737483705558048775757901712599566545819058406542827606468224800961197116347148487384623436162325422089451104591151637700711544676750984139039497469622753355959839084572162373148954951345052541577761046790161178025794261991694776921981966825164037136272284030203901456532756105862908942173253573126231725915359618760372404405800138650823972991051260943918021522449980739099924487039695523097808068104162279311165597103208725979296389735319861308024144297283596454552629140501771862597757452456634630241319090095734180390821238190199805990082186243650849264700667197275927435864387320368561117509448001714926887226308609026736575180316226842208526937491231613781103600936049759222589088905817675776786156789974725462453138354841540592426377220925089803923195179281215081261419932145310245197902014257432283811690533562578288586972094947592575695355872188650812814359717279915629485979909319107490744260228083715059156945896670915184396247129831709850094580414583906880102376516305169611376492220657289586995221065097780501071584193851664846370698450597429614641834909376612694054817103261264822516198328034360283454294010649397375565599906002725471516556295765786280744555555996063342073499997303645789816456565977509249680887583684305349578955732533456660363227245966469516281213526587896286433958336754839777217808521613629771259362391751988532256259242339233482270231329176397216285902657229478325926988259893308507321414300291320425806045202872717555805974631366879959739858984752709776435478000496419302821581785714904674954988403834754527417392014157913014430183218918497026433636181064005566521214761960430043045347807099492007010661903027623139810738041425023731108324654137324443775835360645091930712175592796314862834968732577789378183384939753226536429604511081439315493118544649667328788983474066962652292112804742649141688137987851514879258456994913982574014210001533458475254050461515626055241490638454535165869518648481684590998385635705625753556454137837022372452774021514451113891991670999717945591858504058071017145544441603287104293351722166033706784285651286923764453909418879216040782859043956621739247451802874935351160981232550016523853612937675055305774410797210141769296369514564279668136212190821693173044406703244968472298767530183480832682981493602833781007749711235537015420064649126426016080292834468682975878217904868118658296721409669324423201977654356776220223477442182531134931061936909492030634803689748996180141962031305551121194129308733802821304161278704199327118564086771219063024456418448218309957053793451241465533364996275401278249205306253313559356503529438464723551191937291550355007358783498712352124631491720314318471511247070958712972426097615397869092924470219015972986790417525647331081919408278053066197267638102628503764004957337215334385838800033056695190434154026159229683772978041083625421034249289209119126138665930702278857634021229368950913903271736249444300279708424066091408476592111445587365926581425303804841697621504475804604369731863548424918746054616029151432838194545562588496087413632967677712154978745006535145804285499140382696326498653444993194355417548774016859721312846015932893079517457157645023337564326409535053638475401496581109709174153124531472157863319010936416271508465300445507554750784288831181151287923217095819839472633968964688982075557244841821821627493064844933287693534833967404666233298603699506390777971449273178314265450750094333769275223814233354405638037127642658534924580526119813590384387633204222656760236438752056735691488782463569165638365901114569786036982662748326781726703694951685103091879081278527475323395516778877433285664806253033149272453860982491360023986443863725305145763850748765855051605113712943011442038690825348666131568068923298624218542456637783670798344288909314781199140969080301607582140737569595797165759999545916726261973365065565583548261478925330352405954844658893697263710839427585529416511663610249907903839732461940539963070660357914291576299139164178064413999283577101488981891686978598711611212651814779298458594819198796130751003970099949214142955165196308715826502033080192672706322193997040464090208175303223133197307426827281402127197348431279408654773514989569063451512706542351276949902624416035298581436762837950282245588459636992542264237906902441860598155764570197241240168397866060749613831177063270192546792782894278471664823178011527076426759991922819439171393650839648262233546241069857802293170343371513712942241417188237161955773143402631212702404744358686363186217309776349416950005148969204273957843053958574497650128945797486857787431233821955240699248553501882127480577291817801397776795972903667128251087008076022828269175275275881578488803557775994832023209424838390738748152362934504631444215587346951374391896291729562778960430636635184960046188530027595726387778930995064132373933645709791709987130413357629470225114905013139121344931271040878465408398957110508565311907372051243946073258004228892169088846440959353412293722387363523883303051708520479245869966479312011475734715278169799042058896429624758200387071811574917819327233316249770698746647265183644564566645729282818597738687648834430817686310693910729435301728291860006970920350295486554713032241436927177227237377683072329677556278999403242698858270510970420661016034936639098766419522156409983779777982757064402167407204835879311790078340510495650150617599497578632098639321537183903466627393529388031124173613561822737647268285570173345871184799993014198302836353927952775876392068809997524974631788259591620988055527499156980290383827277311516321130187457448960339718972860033349773225825977516924652356011218887862159011427806089098360762765194845524316594026595110113731828832052095642509291896037911641222435308721975139597404686546104167345916101712853983864419653657315157971907596871809765428765281818784258063778654526604678350518500067533280612161934852747983197492482945530442876268060790315101425452355036075815864483796112718399465074227486109448075217720396458954510890724539382625224919955073694291080613844762456702153347947966487391030695894097157954493714668676817140142480611422828501336004587559503373361920495356725227376576152600187110302480423552857628735615056568224403071900986578183774331791228856043245588630682453555266341279679064668427739839760077313377327170855938912365441098002417913981996170624530210648744690068336901856167469788873036184277866529361490548980441934425549107814483467274432415915822519304278810230996847890978925349499064809738495778426474971994815828459815665447501880922927963245958789097201738313954229129799551333625774627422461737839752343625611294570508239137892703036138241466692333800600690168431439963253916627597735425976213466542474339527495775934393970295235261629770159334174393039366242887193931438972217472839058217073614132874830550492483118123716605389913154368357505869171599529465702619690441203487857143538445704035715546663113237121124668406744294300373416817148555740717016661132627315489906476753810040559394190861451036731074182094490126319593757399973122524411393977091819061038863403708059049402837208258928174594852228848134395679361234819063078507523868740256188960563117302426914333657177729385669566314700388654137840299041886380592397984428962752637260120778988229995544668236868495619118761129489132954286492688982157023739537232963191153007614834141265879990461776792406940486922923612776606355234140574179222676994729340335840299101979342489554228608376294660933137245807219166378419463138623143282383859891628135819420916396325356044769433151136459514402260209680480696420995264103277466646887981882068101539329047256374565530711185166684329838647605134837337651683184302248218509515460601375503622476455700550463008803306927912580581355038492301075786044739659145686692140355213528766256253537071533957119658655123172672497720517891619473314855940518175151317155970790010724125430635348973355637877876176471369361920809455826919493081654157533278466073597085241190005286850365821637172727981613886027840395270229745577907233930711376311169323718967630324801531656358326826486002297903191002575900058964799987531145203672864357574569894080974007405599814958423778068910986644729468574612845079652324611069046033878368703196047917942031304524715273928997212867587333664499973990739229890736121172908868057544305344478931181706691458751198829461550137447457237723793994503006266759043214391558886664659892405543205299797780420834880482063646763483192037361015219899881293982865730622196509733087672540042151279488085049341206184282222132173180706998265669511298151009913612906157814497640894710255969492129657347837925100694198475022487389057515486283962301889170718556550484486713352323533102457456013229179618123932407607556258665690828713485475695094468509114262826349230665105773949795823506407930665883594175427755629642327681931211241850875073711222510786332493837316270134504553682644213225605982002911163820307818520491850202255579106603877384876086069714444203131800349774905289044148283084619122370082726929616504053878164417070024691323538421327531336926813846768931303636681744607144904166414282784600880131919220501671050805857515506876319265456084617039241451400090983322294149109180037352594996282540730326256816172649986456102379322804959176399767606182837891835907148565830208051851499892781599305364458213210364823604426624388147092266495312700460952885152827665553883305676447159743049198674094991430253424158618951832804978791308845693255770356625765047190143005758440190361244465264057062811923423455317868642587210635604653320587429516394081887499091211225715012026872280669828990638674175913406298833294153442421513237794529571417179424296577725869298680279338185697693823299840522242194280749190796898944453716172057255049988042967091470084793450974679008979875279742151241490316655358578521473434768416460306807415338318229005814513086208497299418038087095869559644665501971219325685944323169358940748709987984963190656088431146883819910926665372748541184457170706266254157368344015489304231704081901539377296031250535661718424803532647030767328240428935253912805189649037385602097065628964620167065761950953753849745291142420986650979360418523996164952597447771520057997981996953502415211657328129979356464846996319392194450961561368221824526338690021251549126429224049382067227515542604434749663998878559966904477845954450894678945924239480593771234257777903444353481881506501670238511453981091628465183980480816127933480363762339095731571013684404885137001295929922814487104640151388939411211666393870655822462975144157435630772426644325898143569227238967687599942514830562243307383023294394661888113579471737073458635773268689191345721007332034036156548517321982890864515102121266282738989234948802921431497288151546831532320571677612930395179951961728233025646943867464171501861340170795955227657321427893454997171487553399271390627841639134402706588592996753100985519513359845612110877751984892531864890758174980860498084825507685987528175476655818886069078676967599713674506843450086509099391578275399533960688818936648144472435312674863345587652238366186450811485180517335455486502292577950123923140842221533274803571641672209500552575272556443965762908277256667825676723703336847856947473982442691077855659760737466359801884903520856082932706056076875486161837683900396711740046235380962838800599252903847303719114083716478726530517721981815447335911513337804126382515470166458109051189863598488098427359372414371832851869712766520760016687055052579078976452971651899378268641891710346367971792258011475576924590418874788055456886133833226592357066027271150936733724636809626703598451937330909750170667857287561627971613604345797428730488840313287796219801401068579562565887479920489604548444464334205668359286393103451475732316810940031017508885377570900648892092924233008560411191094695388049543577954006758467912197850217036008041439346669674130424064480546350934881269424966914460987020002281675582418920538847346995462769985637444991660528887013029388797576075610766833242260190337169871815020293111852086344205581306700997373023136174277864406445954132075454185413291668217469326823314269811152552523684169581018260477576569540358633429073743212244563965235084809252422489346373974689365344407532673903642070719747951306921252631353265199413652755771290645442514248861910489439886649448102873265385656978670046951293383734933239591552623335483525572744032968362820474638867014763241779821251028364467510587449373964399073031264956958866140131579026636798495297760336035778735855761026553056817161747831579821152719690472646442779701430890632906794097704625591873078620419756718547346746978927279678530929703604883441413448407532654919790361308822037222872139623298981594218467744138552186133151615358287083782641587665373987482546077780667459957127721652816137983970310574333599274878591393963282512164565555976379817782437518047225541402032117150440911314565874402663721833692215918393113164120790988845333425746957695213366747261194037557816553279210031183323412333172762229777114403680523951773120647172419793944886705203463173780631334443411151690926092188586235559517255844131645867598096375085154628627487944498758864661355487803902368199536080664123597492327603833844341070669652161556114067982409784496081669977851173578320173883648162712929495365913637310256709654980878010866400581576364684301320118756124080915569984546292813671152441139852062686892987171526751566950469260383839358025034722823740667858611744101859922424739761529487434698110404172842083162397394986486720165751048650414273416586674083772125885850124070820377601395088331023188749907776719875638776033234512878987998547373103238416199211165186702091555927279381930497677693310736582487205701298043877734059276186063158619071606190797791148483331893329264896844312073294296335651295900713084926438262425377069010448392792355646842790260558590823934311060071152003824118649595636309052169019769731363665271089475380793102985531196444567384583615711049172486252264566976105864753498062473011230151081951019914688562611506377985913538196465096315446547467694686459281848443804486693805754512287286587646034589112513780823663382265570602209967195278332051639747830764946909419569298084070165124921654627602149763919825835440742458511802661443896464815818863893853200724259185977496261806129932169376813347077699473717492664815944441967323967377095588912672920964608058642569671866424165833828898863793311373924847521918872923815197432311840921396734361282788613429361780600597152866251256276520232790756580398443773296783434662993692731177235871971609191742524752563113332809290796074486737789996855642071045809698867612763943521600896371801773429124845395715644401279475548823821479148296992520192545137202103789901470355876127129195071838298949196203028824567431403335879420404081158402959667011053414072800833917557020140116045374819851274452338981404721003263003684881443368569118720789013394386528642774909510382495848852626448810971610546599834272351971078485762723499666089456745510327473621313740834529385706450473660079824167971186589152376567822409714259912813839748501197715637579578608180075299867048781997645733936367230787358673463446210385303080102526121224196844534993053338430157845683409678439426041237475782866643454788747631055454396374559851226301901244033363092358702586777063994822709631489482037000627337260815911797346236035492435966999126052323568505464908889691374063292461064631063461301761353537036260880963925461509879520898989616663517990576268221980035209525294778623196848660112482108110957026380575718559125909895560527449638886703728101029850225139831975253149213485560989204363559946840525620612012043054794947854236333590803921110290085279636013629801281420364529621185664304784903356357665750642779302634005030741822707046559691683754584613489954159354105403991025199041021710516990944143123518535985971098440036366229811290540541709906975680546387912829545899076900567236593009538767299301886382707620432291488907941781115044823017583040121070430637244232625962672570970876748737158261336094867266157727166175030727323727370705272764816657859113554484678546189212312339022295262991392925262032190947088811760663323126862641688457220493711579079969299533931891684929442973399720743608382553260205132271194192694272803862149720226949752631616159983756622691112414316796750967502040014169284368750475733241732255624651415870256787047504629036022236298157086133526997993575158294654502821408305736446625479937583326393721541029533501710919451408293769354196482452393896160165342495565522650969563159920039777488848898483537558531259984164496455971379518310418115201580000180805717292363187270454258517369810085961606116312474023332031069108950980335735841056973321005340757665740880156680248177665527283214932394939185466811558033624205190225535033793591901065223987777656950192103161161536440545044018986927000900714981138269949074238800830647193567815922615306855093400553617877197114294533045016614126753089172013161710725215887779142956787482493684486161625251592975577148563837552030244541388529182946731678836224590463705200287883893984761868296426442917435076398053365956509311300882025875403553435211533898028028409397060168084427431324870182507604517360019690048499250141700948177826911881094216588220960112143390122465462674824578158321650532731863234885619233936994621059491329569739867176177600958674965541716670432080142958529497447555072702463095865534509560331958776794125787192148733079662378101902846971451249798199311907174448680147086738805662795936384781660223436158146909974507567056519864772774388894910098567289603222170372025250404268787450420959669996018122981567599652719213722833963675617747563358735867117098394723570407074103914378320317445792811812631074616417248927473209734280497751530806137473140973448999821865617953045039961968375688660599265387893249282307742653319149322502319703688288771028935962564024591116769257202906976224498616293838127077534004718059351988882802902472243270095124793203490629413922053489855958623176684146211404347782117536600942949242148431040830278750903073060089485525449752069128833011950613448974833060466429004230000590883183270815775322130134175935479998085431977675032571577902429551958876835421839148501026329813106687701638054454642431122494710214367698582703076899734722117089662614240374304402488744423340817889075585739807052517323377995633884807786955689598253952300379712360337477019072463941900171447989604433086887789935970253132428976394164087617453529642926022091622869614462032403866668495062928754433629354428304588306160499787003558693499934128408852925249576722997185965112054074597426221643762805927819464954999038191842709446960148993696161126543697402809838808462597709632277040390012385887838862491049601426277958325807126391914286065617581556143065033831507516552179083114825884208166645238082893494830763501875268371310904993779888893133465430063205666775900365171586740680114130561729337147353339907113062262306694579869892349850761504100456814109545040122401400415219342134527490176698605907579592757124719033626248378556130529772173355586658378749361391207171451904215961052752350613828792602133003253616903781226782057030496425272352077172046219972552756333666080726083319648118205392988190629329620744739344086928722663609094272946947261296465033761034335232260627406560363995886568823283087882074230180096764983270259598487188284787165379942749098415404871783068655782164403990776045802551206151958498783322739264880036646044086163501408188853582470174425364877801321158811669409743981478671722771895456054629534969198383370396531052378403959022958453267440241016164297941000707290579951820638707654756301908745560015255842170587858473195691192312993203512235880708326233369611638765801703008520293147451250765638107559679456953482541203661749421480904682168209371352476042601340106862514473553845655987930723950982380135686318281553282210862192624228153912396097234308628897246046705706686338783491257241540218908173890851907040794536003072479623639598010974374878869396273120192647734490307353863412156413917709311023782316168131749052277113610210896933198234183893358468024699409277169517726778205952596792828940098812165702815826614735533729768435396505411924950700384537742467420351750032500317782864863917357417210192842706851900910071154424699835479631851432644378974199926762690194229136496916509331006557984228040729420770759137220217316225160121331927359964777069703562110284640997801209692873336656254962162567071659810192545872533765090171694449320099608100326879871947495151336551749561275270595927711718430899568119700496654479576657444561733838398735351469554383598923271319951665433894422002671793578681720333953123602266856474695204122143557578275900799954015683241397091180958811744290865367869386676448444816268782107183077139244933170687570827595392373968002798763149074907974792860552409442863499323137686294992056261561302005763932309331566725193901393947700625233238152256788814678232265365094597973063659129499157850600398192882340760678715183082939901873619033989800659778083485629114232766358864458481131510345789921138873997084273828364765597794474745856347916225070449206279200393956542570019260598669482174313834768735689052392275873671303807601025360790310795536264702508419915291323845850551063116005331943729561461992996026978922732013568999707077398733303936160969966595424639625615610986356445164022573762318973910444225033184038951437086682584707764240715841032357968368044443889999080304639105625308308366667494158848540497487299047364491314920478038061062183791421400934450108096639000550369336812559365978653335237267053115434199647423811089886860381865484080460128441555335177439154600000545466611042939972631765933260120065448603739638937484611412867148753200038812323353652774643296385299646295850801370628401087316121285803897716785676092834936846382704595267524517491199577990244726236338021855341598267184952394717296632254929325584341437764775692382389407519993355906452280800547585882618356933278412387227872068124171375784941498169289662336477684994455699848370736241722624760959110005107898012619582801842118450713454342543592490899441859983023207290227074794606120995853580670522939829593963488052279936507945665655537327126310849728276268159423021056639988041101866742497072183798148994647331440984038014143626646430048713603742048920620761177001313570733013644245737554459155495739897490200738210964924538601340534963600174570571389657951624651475964979301210812899635350145583425888968873149222080237145044544170660519256301377545877068244403431274264213448999528502014121790865631944214052200915930838030697980821879071111296531011311337033930815014985274054611403274502768342116566948033389278383396505531575360514903103978911740219562656050263790617886396677012775582644179002519150650063408168046170409867364068080408376701002371580339849526967866334957733956105855304848702975091464062195453026955233753624702955740284792398542910666752327692384438557025400968058689212536771650859164419040023864783439527752814401672119529681959923122128066463094635174739509916199413486324901590301180521228099570217646023158058218601467885193094765412436079496084129419010672888881578811009052287627149560376706466826938332249306790954128799513470726698075519600741576745785032789750422058746361930477080415296303864445004370200390463949045811465202909033502978011002569274851335721287309827416144384842475591580742029686382420278817315121158275187255086753091977432583846246024185555202576554232831933412313526970042065722919848169544436698602513776870536056815104056406188262380405601893888072149960072305456992540313810658686372469139407951110793756991107732834904812223493486325229663886794413579786164194818898283221355176563144545390410702158003665391894436020832345875372116045028988643194183080741144134493818212377706228187529445213826867308768410443858731576414328335207282371566092416648549846586309835109168897983045344406262740447953779900970178034400102522035747736831428121372709113299300489056246234146107661643443568597567352410944353411879508409411132987275157465608658835484171898924236054172107837705247707190606006154654699386395844557788617466245381922716338740302322284942002701943638166308341596695415195097174644051192145578053839629493498539932404945909854325860902171889681464639655450688556280315001805517496039445327587766511743429090944566230747082586101411225263437072079849696862657300438646196598880715476928991365106459605526650159426955955387925655759412862696692551051268096779172893049262065919967063668926414530429004183230434716093286884747754653259367329226853469052020727106105804498850721593800934069674060437147025264665146326088840785974783037648011737233378063195347162947142968912096647946929698297878645838982186891581298168325561825750186443218141139007232160425450362544785920890891820470691101394313272187984746494854685484563173419414748181946101870818589895636042898292002736286914602685187766280541967822324872900142412393823270396804094969552159984168608935764191394344584682230523519138950222413086829008647688203522950709480556926990830259877526210685703959734664909399954128469481864845031487231817862231535109881976097091020218101472741735589797177788742763777749441448203535163496393667052779277457677399176901654790554809797670384584491656753153226232155458717151060253382942936786784334509142329508125598278139889841297488143529670979829075380299927839895630397082177769469881485241882396208140911944960664737960465161032913763304527869631447927195709257947048349075816388728243063792670699322841107909822645801615125585519354486789756330419708060472650291987005231013058610659000343777972937675293154021481264113209780398527393712712655737218974832357858929181175297388334685969578912862772335161869799840100789481374484429580849437774308083032255121165029745531903066626311471910670947029987938190601072274667060264100726605215848384415843532050385591233363529699620964430758354009205950879796449175898771868644773795549375399950138958068864801330478711577591211552442751254483527588557659833358509943898994311599952674268653364780916904829282617990186950652545194984537273013459283666346516077413535809428157390069853525776018866821812115134647757730537272402918977101872729855876661015851246906268938385949589108704199401372941374163002755644181128012412247232230124037157077830076817544187196323989176152064601978132874524868719157965380235937262113219345321287084692657188709402684284027470184448648651320212911001958529714234752234659483136127449419332626638898135633109898630709368050079391229316448820459701072848572584125304173779882931013344783730309366350611682450293469660592432362200305243652985504200063023023412675850928140051493307329970779086790400964035600998972187894974589326842589178907914701532096881049161640870742145366353662720980007349087574974400187425655174826371907576653618939456466987247144703202946849765193585453481685890867276576322883209604581271348604218205279787800178772280676502918636828234697475179667171343313929332104477359554352718376861354526081239182087079556011550282495537977197857798789911614272963580948015606741603829971000093065247919398536862049415999375627939805328896952677530083152693726514483105156297131207267499993963076816878260851967367727807817431398451519032611427106294003834811589509105971945416158159272705117349046759667204607603331481086851958508070863605608528092935040465477260989914823647015169334583826462110474717033350478209820184763945506382061768815064655131595728763681117527285771617945955437599810013895332865674289354301289063660231756715891338890243988184672248271406985430366872898683778085912711387168278772725195371067700369907042859231248114003209960199959031435986837313581668936315567634864179973719814557509591666601175514147677366281313570867766458230278183001583712197608313290749153423372937495990452354630464821648297791824897569476182940581165617946931547103358501011921829890001192650135285756505059277814019180769615014965637232429693527995472368555150825357490966699664061914294619438640190141999973227717303303769627946981397625047889402375144813704855550787520569170118582763392919747167052575253851751560112969014031077350536451810417047879233832186374671784891430809047921848817427090161426052491524151725733004530861134653364705147270366039772419042800809307818616387888777740935225122937078424286111328163958016911117640248985698626083667439359174740418228065931216478299591791711282621335784704760745538938254605144038821131240311234133872953338838496502141433874874832043775991850174365947228383448189968547162305097448987742105343916291739506938562748144766594492821050493293667160179933765958032947490265905556311402766028552058171133098377104496837907606879340393310937110069530324986728896257780976858512979637062652269484335029483996938493127141301092211392008965875542100477508663599667639267649134101092232327612317525491534243754123407573095750552157692328507720604625568072776309660224229758884158040909204977305251256437395587094275379177408701441838278433472503813796991846487196632249508610137547457966325797768241230588538140463559282244413948847884751959785000026172465328703394168953084022903820813051289724628551737048179745525756359860360764195467910743403938238363189195355106530185239875810974130150407451552055775728107024618212136623322108995080866763065246029104212591669796228590335436437180215861807316164669183653048405903870972725909482628560834305981547429774130628531657649336945618377347993086841828492049835676240746589480806490500155495288493242104205990032328511798534640617295974010216469907449802738143985347333187536934406193412751396435839512794773316865892862970447879174859251189918301142525579506041095504197335386248033455686465524171098824204644035849367878961076241388011777142448066257769086715928518801207150854669330368312770414115146588281632437410210719179754149936492695648268906208211285588808050235001334273068966610968807817106156726104264926622064260694826604823849607157278861095379438118440173880114783645797901674478725574498265342680218194032031346144207711508628289587595084990590543565023202061132614374583028428931202252098315554403905726998378248753584707359610499125943009932094667617429897413109523247019849072861706927761706023400007547398074884512918915115770027454803675033265869707184486114683106548774467525752414442588327812108146788163581906864514783905809773317260728377127499130804064894822739186572239686184540101729277238815102898137884044886268778524249153715281493107394484837761904996987188379750589322488503313767337463033174017972327849843941095911742480415622635040644629501888017189763133714980028714261941886518354455703652914377800434895333417934124313733142243773933962809766297095699332528365149757757499569516947590509458545704274710036058320363926651827122324379783051102075938476270880229342004171848810382689414760201986826019059723982270661241305658543936278634926313915418774378167152046638250063732693775996821072969406548107068989658377253727706231636292352789400625040469894965093051232487094001091152875017227248917161835885865159127799117227740338260893385738094100860659630957999329593385393997603196305514119465117456617910552856674581508911151614124617835176906423370145816724957699296822555213736505127140439763262709495178502808062974848126726614114410769153998939583610939668817943824653201943848528179783895827716659710502975099578599441094379151722625524233274761504155645829008762704253462483638833294265399870995266616338803497177287283695382892603754653202213293714070431484637669533997529590541173646378329396504610655488774428807379652625050377515924950608068442339488047015155315287252225851261556495781450865016159640766195173772065498933037241427213494285999799601702915944283782032931426458259195138080121993830151219343353785160918450669074111767340369110355786612559425418540190792616897108321697652771832988518876776333181551001391534338352479589917858404790942846412061334037069923959841130563988077004057140865537191018613599788574608892652685358745772725089105252864324533936195909533349513242824271973038629684332946673367047297384031386212595628994917884796151744386098263120490273202602260503335723039047193046083820261570772731495741521955696161944432407174685784873748007194818903832450317663119473919134496849472737080706712234522641659952618120483130587320251302499338749126813633658906885786404036751756246259985575980429711644367067761175096294555534681679432377513462550649856936619873873468310312883263977998694687479764076933297145581179759638199440959727633350097726055786461271741760847841284290735912438869903140927774620900663832984569082224097811275494358047348915238035817817786345581200548955743625792810380783096960556642421101657917616345145696028391075961889622666443645296963044110857653329263324538956333955259113214916070790258419296566428792541058233816029184828946209215182625214202910607750985976612071917887835001774026115931992598978813674579933435124120656395131167566933398137490255895675475592705947513967100449203406799579790194762374216566594145808575248867069826678782146417317051720174725995198892692264377291141068308431521677389345723627426081092358267832353045938374351899384562117252578732868786117105012664967064463960018490389124232160692978169121634447213140605386022120938966182485845087423483392662966090431913078160602447461537913874841983865369576302529624598696883030291004139938590898976084819771600781159277923037433331952488523008304159840469442423859357181933049544196722358338923760025418182931580022042852818063550173044384625189576935487119936404791067422207329100621243392221209842933245722568934614782727168386374420144033695831897451301167864535925983486207653703087259829058926604441111573631034065003835551288692465138385269136798242597772083966206352571116767993567841849611160172215186562695951151880231092864952860603882323428570260770117563359995264687266376410533522706855753526025060108314361481465828728868582336559025466224021248664579067950871379701804722907816799563609013036542799776074207184675753320352013512951860795161482420228638071420227194610898961128122464181962787089136703905586355672167273628004699704506143607596206805416193218774839474752314788658288509155473012783967028943200074297478896270248164284847993818677829172310459397732219902607620595134492483141461397242468099531755109873342899108077133821722384366298794085718939097743551805405277010607082900598263471500060398804116146647326468626149894810072898369216289550691029231271137387318471660827370786287534672749890751149749448616822066583960191918783053602813555970770486909321890388073822479888192065781543190522872341222037748317322631479043686973013630606333606521080575751133244906849088475490829072570047895388906475322604058854556453870738388531464883101996545682371991641860617342452714525998020116870782724784581326571082304676510321683095345072923079670026217340158198747006010060551185716277798063195287568693209888681867034702808833372173604943150669847633638643462868965097566683108296226501868049108725239770109045086971326226183550786478444749717468706762172014211231149082250727166458965507824484953248297954352571390709396029844540391764303519347457220111959722189766231901164949269821351343298188659509300647886088814261193322973795568256169747781323498381050537574765441630363810013641128214687653697230432112113457956875877263598580011877213842946107717485207756812151445016379918837499539399194318828094997893626313276328362181626189689456971697226734281560799626556945917770172834009646947881494678888403034488965468453537588301059285442040529064011498013094648943137575581744470736846405302736743304587202666014224496304118017429463934481559824587253763857333358833058847874380086720915734735659694899824695439594706705722653189901853936099081036453422201264962700642770829357919818359984654373359665844993375615865276846757254296864413645596212615942351406735163324897506836549096550416032184854309065906491538446903693518923058413161397773526125731248920034212326741720796183731052230390312617733950488588553048542553737904063254511347133421479928343073862244968779008342860262660110386080007426328926345481018477119371673921374860449950171735407130447227591803841494693844454766057448695632742342480938141209172683943680170058386657256586859112144309776833286330467933808009843365818340778683780752512497904611643684051135701729415408980402177872794532280194283274643563682795484803480052468705091928288504464995911616371925506235937642474520454151689232616631531386653136675760364605611068827042828336211293756146624330217932313531895694821872042668386241127510226665023873680360005532660666961247753687521051047126164486249170814911835853393585871277461559330162645834697181383716805721483376607365548170818806152773544078878192998462880572378443299897491361863280377590028373442182622320548684879288011526257193271030770150755384129232845601398634292354245738633424285839315520265385741316754277570183385585325670468397192946694615151478473439590889713823495325947611378128103675176034029325376794137438898383141917256550574797360812092027675563392431189772907327064322365508877275342348740296640323225221045388469565154279429462049645916484457893657239737719174114327540943968249035954910094250531606701382369063421094600597159540955277773879150116446250496644738304124297430045256886348545809392566810733676473593275435608305019485373644872918865267925356532788226749263185076598860734367513585415935965289552494198730369708200590854326878961451410961813822838089039275711996730708889191873489887729382748788183000115348494475134172289901561159362442239816536282753121525941507606098174905327955525333230747459478415652418692901860258455097483606023532469174185955530511562501802913607886238524392724368081013803504912639649255954002847563896456246758430651241104314233324898952923227066191596572740733876279209437448495858181062547547947400352385497315531879506795585636380401758854187459706650313969087056626869495577433760278007617945799941451677756778769975167286348824080862882907184466501763712735306430649380038946609455734451965449076616872518401420126427333461303747598892413337366374148630937104093409057360847426717266479585372652107916121653946465864736800478790894846609038758448162040946426002320071518560807910110267303980827005113978231154296884965364485322281092456720452337663159832962933018856939783214290767048095187885358444671164992488867966767323275269655344751069696147654094934355037663702552061389634412257810224573519898256876610794851256602122494909814136949297422946865649738747795976004292449943763380183079457154881551246344940700244887670270464841466069225361465937189402839726205120145194794983614393014870150403478436107793030513810067334539465890888682212456525321204692024703306138967505076494516180979386104847387354482922728228458597019747543120512763472278786630159962475221576987436984172043159307674295257452662358682637104187516339455450359331262142752920406310723200893522437968059224348839804877355463970290428299455457755441884863917407368418506129396447995077698928349350509966914911344539037159306008797943313176204070443191540741048721822859397040500938327321141564528153300122616563486264803255532094169221950610700566048484437470122393044142871475221148393928470857514199670499142291455892044698895695481732914653653912904195968696807376570813017633650426970250069247265854356755144011503825183042132482727043571829983004705520564712003897400388025263600072614612711144829576191575686534269667559613426185247044032818624405862644028290493749324627946096410140131308422617700003361313189141744689175039034634383703549871981735733096611642356108876518537684236681214861704019887193081405459867871047673696330977221267878742064794765166767857430769632632342010568201457077256823293416438279554566905750962624381831409315740918353742247095726869673363089780207585566390881985187273837596283342457311958839037650812891674119395827093932601579043941097716729973878169325220222072471421578489772867792333385753752332233383881721589258093777112030095507411600736112594314781942207292101934125503221835248911745075413193568829191050087060963459064077359828530881537611739213327312047950748730023912122614097867960357009905491302994543297018755859724019153747277046275590822014799651484595750057047648518979356039676250655159962526448992737984706643823826212379094422706055123722581973691848674002739642960108745544111682965513037170427875712257253231322048447648888371887740930629421265278180438512403760853647738827241004742673867726542087899848855509108339494265655909897439701064563836518467234659661117320371397953007819457824604620602257277795258182864658260366393422192940883739318472663164618264673360840086948569309200107435009220283154009268062219090871891020735808967087132902999674905190161978869577293365779475990058749847234147953603806622939749729666022280736112263635426478563374906662574660450229437867648490626957331241248399634770144677093919236482946202913205375014175124388514139191016758663599545747198247285892591392486719795897805606537564211020601266577550997939875643705069085081733761281643775616157049146649106604051551363837958133234355390944069167239812651192651986162399248389576455495989978284701965305798207594061935783527470292946396980981918423822951176763268184034821859737990378790251960165808331186767517864484295576147729762705909250097995007498325250692436472496269421020774067001905315894515996774793277289697300853592015492489357068744043474257061993127162335898578069645968661776613524596160804229463093827804635615435159431704135034116390505037607685222820030251769617275954293940848611947146962438301703541586103708686514009476579803738837233740487071289745706690825882114765324907948119722888069030522662623552386895557216581505974703366382736863445359419094326796040201642786268868528139217513130454439860234979801493511656426174865470495050017387292356085192487337386617625564796388995027843378078467490797505532576037273365175957358612206162611374389926509598261990278523477960466663672928084297653389304966333711371806880669926178823513892781915232182858038679702946975199451288408310018947833564088540617467223393053428767359495264051619341216303303685642257085654519446581179467141068084028224022558329938754128622314501674141330176787535086376810026373918653859326158499081168665909127718599056724806018532047261180417231115993531783199627624036399021715213918773239967753669582060701038288534424150579078778073114102918748731289018644902779807837368599843196665196949498329693368610115116094055143400881825954211261625244289889684695694671653716929562162961472285200367394492685382170506989391599636380824856693040157145630124436009552851386824603826018503513666454020994655447798912239350384427585222107041712861255168713253653953557981426042212493967791907321676503887610578386495623861741443591344037779013508874020516384635542749175812142122713357713870643870178856956272585616328506807780238256107941755008510660675931520215710869533673959605951933618549220070417044396320465116436315209301676714108305862776670886933219146682668604582483967117799776508763306070152627364221698588356247408017740940235186973518794015057933017549364868396943667414681531954564124084280945795491482200244326586647834397836530752019481386779892441509319652192472635239060990692571018010618430163738485277420375496646993451543719160033606459090609444916042995822496450283247085126234563320226631398858890156948231826314487336763235443971714251954926355613783628242308477952027116182783105731541541032910349237533462546063050233099690823865007662873314593989064148388731200254887646119562725080918901823671403691351529691486500979025318308921067381802046416676056876891507459680868777852255025458533838687682963683154703136241692555968438276974025599473283510499804788671899666911601147621598096799474538755259727363481917851481847715720147456864145190186663631254734635772663640762363507611758690818505084806165956534037523595528442741164624972914401872461034049051768628925855899266210081479635884565914893825141873877707628266984589704472215421431885114745163536871733472935608057453709454552355343131852541258750581385047361060971517235344445939276694233201477944836694159707543533038063926762163659543870471620393093769039720024341133121638020925467369437061318201138804905295048326592408425987271619924527858829615344975642457756271592789222845770760104574392126405302651605397132341669080488969767949253764970936449016697742856335094028520923844572090751031598261663419623793224803870996707498822011173316812868910054459522367912631077312480183049606649725103361773288433194121936657968458021863279321978970143306647897458095516943264808787624026175858248872440428250734119131232437352712472078198927839855636402653472298153272531890638777458868098754566859343300018467297518381384305558241503399597663457897095808374960303696034483851646579276498389950162593147134163711146672273636814033951041656667734726026808976367887698834313509209798110132179217607542180941190570940960219714822023062116865619428584601076855876910518281386347525751399615423058320327627508933280327884036069980631962215901979463818046902575919461251161431968149786138419476015687018213185294296890895296216906820649778477814643296787030818515189148440988074293728640245889484222023076633895393141715127438354780165451412770459665629903489359775835583091865138469496742682854157341603455608996565523387996944749322123472556210651797067361196666268632679281850892245909585997153962672172321689764022204077235711119815720947071470449519608128503990709018172583018223810933655987789961602568809201484996374342190281093414412125639801715788845679781018725286104595880350306469923937849274763389622599650983666276475028092824695157380306272725364654162169932248217554970457484878929986143574012965870646895707029929253069889087440617269493052396611339934516396581866675425971572946885543964616781144082744189257690790677375250421377152672951314780288463117509975169995744151644939621754753568744330791904162557958389677776864965391755767834515578417942117836140429988455779941148283760827928135917628491602727693382300664252938252144204633722858209190739661212647525193724412893748896009574331170308177633025599638200059485418023411431547444918857078608732818918991780883940111263708890928011505534928177000484093955822476742351640079231381492660257626089945922663889850426825161608777768817193062420546772299824414096980828465476864609058531675436480212058015156840885383774587601609017798158432510104061493768527379472126320703890840169261024007091093186733537195006649812282245504434961647804642472677523324877071375046502570575086691013534890251693058138393744030369269972920038694001925248416179961628808526033896780830475688272314756464413495546257499780056823466379310025498297815354162279891064026360996360140738455046697108219153651392764068152849015302568230391292863254110563168574333224707597386030149150248956718507087028246577752016202171191669212681882671638629794569577389899989838071755619582763027982545337389687125501789724327076501409530426110986589617748769582438066254307906715568845922590812314160734849020731932202185554020609561736882565761225235445385081100670569826227539847645481037674059297756659702502011410323864271677982606050268704421967623296580917748302505983129285883646508053893365938763690247603617505769695692528444025731851156217663899169749750267886806949732475107454589425530304553038108857051526164014080075008234779546906055404704607679148138312074746191430272048952539511746823334444860702681284744602803935597451671311921649437274426355692542954304580464414422511349839996724008341231989754570144769801275080528596681151564207160778617998924024979768206567392651322985552584036474732069619959896229016706912527010274038738594477074818778959807623259724197028001846075952583246152819307445381401264856732741917984810525503374187901502601732466572852618910184282952302207796070021937018075918710151139511671311446650735458986327724313032004626141537180115072652693862994219657527720494893215647618447537323280951808108934447543453812286257426330397870754218211584287827547291775606558837647808420619612428915468868307592627644999138572899932394782044370982772341777579505690173017426014960608744711726786295731658301773686192739103432673008454190033720225853812421616152689311742621016318430294266178948394221473444946099227991619918897370288562201181891812978532492875854029862377779557733666987165768546477092538936895652118370360233539560684457394443358976333301076571689097226203290076551625427341709771575780408736478660905695722576285548018011362678631778280414024523838836267380407336580931674993986358668176475405616104538895189334050834381662870733384013122331119603811497354438720326513065546674958892985105847706055741165110301784612722528547711874261604969408853293824294869236573984724110159850053647893796707666950944697245900393009075542643188470074305917356712864015791393057407662816218042566403263246341403758162859140753124665984248652283402682320782499287302232010805398191157186335568966040095894467123468659011602823438783036112286735683824429324109557053710922407653129892080132063771915156879027972049629265944470416482821438647060494702490135170303152067619345630716343432055104616557726637484646103589179252779763322081985786791346192754110600547587775444498898937723728893390012473819236967408865959752461135938416485517544152717110366177162395862931241630679307727204202864132898436795429910713903372075121015207816618420920195085653228443273486701630754925224984124334415465556649370115166616956973286692465162199518266420980282941875805563613064811424240847533121785840751017177823844383951320068775798539558423511396485131432188026404740375333492455553395005874531193036248305375566258120084668704721024769499716520018411536999631107585191812779126241606068970135112147438828166296981901124671319110486464064049788511678157691562599152013982336179773882379323343684498553401588389697727091965865316833842013771311998779380823983078053524840149313713365221163861060048377779895683393385022607761158909299613452609524547959292526408889858524231264387256292613457460921666895813561754752053027379209152787393854314741021422757779444914049846750573591964383496299443622236017237099197112109970788129585747589427062387123369348804373281933761476370427860631417030879826791014599085202460946457824559693139922015380512233775702995735811002647611973387300694897110669700266966244197934747488169885810896044447354758039482012223937682685159567985270070859314206014923793894775703174981886603050458170231638574144935617778668821423115283144533261995510687865379162005169805076046637061855717759234592719327608442234182547725651704937255868401494962956601925785263778820443934404178168481106590720424210082477683155026345650972869820358362042809322047156608343796661424106006886321744130899096939745409000418387502193031591463809907696491161058655914212892203127401453507248859720615865141338653977392139696994392673537953237121446110060333431246433015093973155872169401524844837625019942191700918658349426928234921281609918299055990582901931779304177428843516820783181790490804078869703076861537621941876799710481742059604924727301981158954172531901117701004852121385136066365098954843488164672290273680589999465795014579657081984821790712517977496762072240626971543215132140121304022468314647527292237108628934681276045201551605867892750740439838534576917339606767822643986491298077313379890087436108354640472933303095652382862315235119294735157600095116270741873544875122304583416325661293336551459692081139042737250279821271359637005637185478880178770138486506253127986863720844691421315581421371832078965355349461099832414348494446612041585746694312257572613294830356614471210697756873033357998826628402089329432324935653509470630591610381621756803091997859367125946166607086046929838046907953808511502759095444281031992052528407207030100857562568810447670855930263946638303617157213591079482763040926356667115856311917723118744963528060682744536656984248843678146903768427639475442814298145658767063285386539630142488692277105068329154321683451009120734774368015377359255454904170875547019582378277696519298782958404880192651101770097945599942925468014728863787409620936570519500781235395866250667060353754812023417860599326638352535114404918943614072621712189609192557564783615410291534597369447280182476972001881700366582274474653760352613152965866830629956725358306977430133054363517134261261276758142288404315933479378363341392964849295508865285689942508490206606666308607115956766954934644122639231991112255022067890457053080021545302902331051241695959897319739041707104264288459495694727734364100518956192095565610310392125281030235360359447212460996143789714699728196774920771414201036684315794078767898059486986913366725387414002300512141862504447401277378946745124145604964472980167041684955376121042718420141407420020865836095579195399712656675634126108497989725212705762253279260389650529001788809725276956571706852292798391978890794994250249998659209223966680751025751401665452835188018395141340859435643019994313488100351199568905413319174719582589402107192927382723885441480569957103242132038282397700874375563970903340963669401477576705135167578813866261845723432552796946702007484695220032268687884637609445770203349106953257231386582015056639833079463772708439906748891764254269865026304898841805872025783351822273473715572588681408752070189313131567821355035912185225292588825906480071886179499832405241766863497549164761406886814820149640626963540092586099939031207487718316425382679868145071607941727706340383031440796431480277930382275092828300312570772038145470068343532117790415439639379588531715059949213554258827130448841601256063694217986494716809772998992607411551197105875131906732739032039224035599699416641133123935389048555876524379253090621087322831525641036438585599870682292198831130290463279430694366563681610869639783828451704199633135499330753268283025585302111703190163178107544378811786083387513362950997174878066760504969836251691658305174645084960539746241894634450578018879808271510624501987042505946872135468194168732262600985210838895641968006003168377623338710958991796353291902528085836063035228241460714905643321303112368424242099511157476954724304162613887606297989577494416516237893220033058122205663509440570093526098496586241306388935240919591072783275728195043446980266524582865263827958031627695376526464769654434649078820046686340823093904587181400488799876697885464079921286009123778410731871464356519656352180657300570386242549756854781735914738518266388133541157359167732701597574703457585487220922149300416509540568354754081664577036508846033876213877294944144085108809878998814993651528117281813213399888151602008112060375565345639586021444788383494978594776683057774660803364508205143953178354905226901112523342413023444926607608622920102670478910715710463949953237122038685298333833840189456272467348609661423874324900307431994380436608420028620222008050381813825817372694493956237967735462904763885453416498098564830639333731553277395788768799831517846171353623326770867344263316271694150065500507835036651464255223631114265849825504946697492519677519096447759333586319523296747744377925673908690831234887418602301288912274138539705329480653123809918050682566071680912343947601954404318141460475018709719276843778824119834958343946476899588320398175715333747147654552351190072987699421669938551052485457328662364549907898892268261493212546645363259653419815368954576255434771823285828868527684373805144304067056654352598153854782651760574073284214805181531244436963110327431494823006987558274915040463548277001028093841612651154311781720502577754466263214212116495009786962844690572677405315689364611546446358695062045532684656517214953559110145509652184077066044574225011884004516740279056419060370419964303392223172633015719146855283074746149986735326291650456407631318618308613968352311836786407668398572946634510497963064151375217793457241815341652004226356953129249122713862500261002858986532596803637955058289128711195077901441362171606882056393915962493569885055092494622591553903180179919576779775386360336087774321837501759092352485174490621409130108246907136094452875444528988142131742013587221288398416664468853011290990021053862378395950978447542335223598034179145045097454940976243800240822676608838544288615550123043920992906718252697317562477616089181587530578818860382136179816184883419704829992360672591709877581296515360527836533839470539511038218338799125081181951550882932420840136803104038916551158746110304993880519621149464163143817178531936628844455183625535473004871050722629873353943123223267312347519347585163615084499643705194543235706476489004424504971239263434725417651572180190653485885256889981645017412116703174588595607864608861898222738819108081154684428833124146311025859332886431678180988015635916297444583558904606698990648491854657215390057514936221432426307826395700331773634426526571634045415387843465653034009901962232744604835953780454612931602549916906051521773653026407439924234835775542401352572310971902787691793739868649832797729866591995905010761753224919845774199297343127121805251858730437820002692808756696225868082304725956081714677319178772467215455247661348234986130375593080623444047053685081733870132658474153571421297418409695421257861257681992753895164736173972585913323192580676745481358043615669154989334838436278154880562340680532827746865417021574520152018038089874273675199318876698054384094730881497108639671899268483557196788151958752241001303383453284720227131668477636494717851648872717473727173883675944233770411921021833809134205149434359036731718610354070059962856827693827838969181706357615367617746954142410735342563841181661823115559546479355753829317681529443573777474012794242840791618501752280195733919135319948507271561645623044607990467827674151735559899355910714202335055493913905373056434744236323341267413212783041744105878295117652754622502677710163272664466073921586684546545091477883033806330394972146521760264250268577062228903815178637904076542176063577234274175364190409409206248905608120266353849154333710697522436878296744238958488071645207815892467107015023556012868255629973483754904527206603058550130507167132755411599775106005229701737821784232625037906281412355386941985031564648909724029977160959387418616167934960299001656956573656486091668543351782224920906266135134173721713507305718421094471261468891011478469312263849479306212875089902142968670830384628022784671260874463897158643746758909016798763564706674245945241381538890314958162622029041107742071894085525081851573196770586656394759284426152115086697112521328796869302679987098250257413650848388307345504819525298518011474454808075421386233063917046790394784822048047674046519682905657211539027932030057643395063703467770124102057064956607946905360704289061487283138654341527367897726702201069984666728358124364177077107842369199597009011882584761456849732253275353505362873381259772001711171281109466994617930386187805687989708306078480515680478891634110697618737219178282797813285511093692491249835753058169232625767232832416862188527768893200773349417142207652520276051205696066902538049566127536502151703250815791507199119236789442808745491417335821437696187523188591522202278073851515948623765359436676259878957899318887848487316262823084940465447242185469246235443116135120421874169487671615523632964629950135668755241419534400136096691067850690319438486862563243561170080320536676777107615863733188863190190026370910560569381740837868411331863505008926526467406424293994776772567563034287117058490338872584943613873707567192188116840497908941855011957200425554363545746561153438373422095141673996087645901853190817371135732967593341564307093641290581416898141744795811974285670933982159078071916072449504118096606689873430382946247634289520686102407930166388726748126960734291731481750544279118193215362405211823528159619253414529720960700074809854076610733248809361085773084957846383202092167842920304037968538839815057251833962492205811091075454290061333650788469251170342945305676911501646282396456567998603152174563324499336120036499953630726754105528800788595152756361687906514261966593234584212952746267798057671507899365653712410133023743427900091422740440182656564386530528013719634953781625362589396844709338026949889965509157501532366644057301585290277479256690963408609512535584328254757023858936465780965600810724338545331955101141953810135602011612580907394854766242042339520301184184276330365615349643138335232021940589777482846474861300311156693859777837276864243866600929853697019545756765387843648997176754937411139731729452900406883811881576380912299025161556423543600269206985082568859774344365718705083787887593040219570142860784058758144241624625515487010900730409652936084282786086520596745348953465658128743965331737529070211473121608925883109919157716010775735883016946219057564515083522442204332535501716538335989764463653424928193143470574823664135209118652464895153297047609739869142401605224427045003976653153935012317336846145542413980043189970283616083699906019950543728008253097663425972749692013167190237033386445562841824429887329639620818163159589060644678823218532984133957239390276965374402106799124952439746294348393181050412054400433429198504875674183350660247389231078788356331666164128914803679283921909939142208775145768467767149224461087352496576367082716871332359496372760842208241080574349304296464084604230345290650144373898749995416921602924309073949298996030339898165520269457483272309995510309579400970041399453241431434581467068567681740051861773296103602836319205362891041041209826952568976935565516740262214827413979378689370598882232975704320693664205494036640148351909007183557106664057704648091854232000465748050941115425886626876996533470765086764771167526044161065601213282219930935983543718510406692883583172711758182356841207726079027087061380978394055146298273666718623237180822398926308407495190050978760865336545197702052716960636518136211766963499295836316289362661518683974997307126839687629521375838870286091344850480376502494440800647427274707102625373782017128498632080979562853892947787737285809855605455601480810046854211022343058608407973198038040163930217272452431628115979529723277532709146912719243997195965044121878824751649589914194264749967208558153797113927037280238457476337205113243100647268513845579255895525451997732833927216128545233261685464384078819235025813562574516032387713514733735183294502113141056947269804742746541140633039045357722069059633203444133817527768668366652865679156169741946817915745408522441164751151728227670271211315882652752765934365194704718382783677942322162710499033488661113689831714719195651509129251678811533005860257015055401470844028747882740999103189207257409945651300621347672107457885903129249634475028367063079352131115865784907863654086398306142651785179391665996275449127304746075809426210378440687011967082677252473177192291277933872181996998649912430040616853699846747713403764977783472472684394677639060966539016826744913979563594327301512552399660314502431788692229301225216585453136662742796641066638061252465301899374797522813374058117360774245300992220945824054172220597308758263168075729757936522113804981740080270941824771876676595588525177011566265957069410459895211420400619951467900269289561150543564345367385579794987204998753244462646639339712910080066215588690559703583867129945135721580088721056872424669330583340103540858225765164027708877213815441861481794944678607649512724261863084153288849765874251420771247288521592145020078678670579852194050689366004603756197645292168055067108398120563360447773975195158304539549333880531904759732535760771201067410973955095758059446455021676588644765870381247406407411536536686804958597204087039197155969033943842141633723704899719185046375235949788079537266175763604308330223679891859885926785827556675207953229702337269567581447883415712245303795917689635615442767576531118640321966427037675381399279773549541957887738544111189543254128791386731839243165784489972972736007945738885633494836924844919421975954209262270976896122151307197288643698041828917076143455886974941572151998281530356040328906116850393023562015322173774520398638651850358820382423608858464276738752285978596978796263042434738967963412081799485115007906385674731832258176938350639012401582900261863671886856879131212755526051008964134841757787369725672445810541525790187103239935327913533079120977671338506563310836654339947502223480654193632466558605264198341631583875684944021485293985971953594743236982148334171458383707381242917370640430228091508811798287068752645794684641627062508262661435789700267242577142607200116204058618372052029828771310852886566130905837625799419374731196831206665729087239987150280519056364267536683812903974369557433866777173799596735873706100891061696293210390814099016491790463871530519378601336762343149099787564650984632383401796490523518040513021070755364941802964311834510602320304028050285846749103698949334662971495273823534230821985734286989017101917153859480197092131299123297997179047669807145724256897149841503480305006861606303523675636848265785424239344278562138962715569841999896209313346258476054421392995456669841170829535005127492508379806810449448091264881019974332898203642924201665745539282977427013667171812937176132553344652350768636197523513872530433041897214266724490748061866255903400839745579601123443222760228566481970314149579424260023682199058451988140124688324221384042043517937311410046420306871653068239903321882919861512060109262192413359259168001964601991000895933459051287615939608720703886099094539111126032767996056948114126003897216664215806906986523722552867593841018984942947179194182687043173868265846734591963921458202293875033692688785683726109864492971623969209841069490105565321558079361489255297112281394840794052447860821251221718965640263693404120195401324998180735191117618058293227956736672674951656159024994051207542100809427377020549404575823757153100815024427256585276569507130661913412553024298710029100100146219875371106844939594751587115876750277138763244560351784470494324895504005443118189753762667787646687497332832010949674670427691246931235276524291788517377833586373730617769487977658102805384178522407799768372404822971582239682475789337758471253772272190782464105518702524907405075403251089320649578083890571179418568781163229902583928569090443489993099421784332888023539785444908784830874081874550249131677044455229085550266390504416998412096313881909808750448241710175521580050498146437882394077624378013305192037401604546973672581831773270518857628257155505547720777119902445889981918202548170311684604518073516532716064580442228142962590523421534293885618530277278393622645905845368799008334996523144126910172130176335878358676598324983587733850978440174669538542645604283428199225935030117603479078956023818435821403037826987237262005303102597600521776511358493706889465368152378550284923729684781410847130095841745938815685653239088678317563652177972438338350019040545884160410726102869897636624347934380983616886238714601929702116748517170645038596783217748983439272804548846534288989874296716166580582178711960270565896193690494707082251999279413143071318791535434879246342556262546229528741682892389357789699084941018198269166878920425458719571096891601761807886072626809798335144989644528702640904907152258049282204795625531031848450006418428013338039124775024835517618365974903371696123504116108095791193556336836330601350994057609818157690868752174336183402549498111737533489877953903565222614222539781451751914642874685276191241943524884277562462896606337832129247054697861074630388042125431780538037876607528582529468788118068906732661522032328475743833549820699854478979894021354399246601044179640353412420989349992202487763183029501032738779084439229239063931076702944738683013084039228523793398249541937397048097979673231086544920130814097197220197454343291698695199898498953534264351956034118528657449730884801902000157167071178647429017535131494025470711669365903043940820469022644147671271572975748306712394861448632576730259297941360495057014309307225379100121951014669439517301596418050577868310676261185303726940445605743118768367101218432557001861967529079652045311809668020123524542805327053614186686118910903075535655205723715933427092497427297878302225754831994715264205461749093541020103581297505039541762759208918988376105858665489789154824209515596057558397184579121514965926199290711170313418613552811796819198934139455802253438571893516441293156928392646982831826343296574657532653755857750034346055302551067612137362060234445091224060618091330932519762496699776028429877974672318697100446995253629895149930634162423135775281122077178133267471458033802416448603792813516924666665444881748790233643173408527936650586226065482377652072635494109558394872759642476649104029462906024691063209830016904354150518772459041018765292374081331372212727772072138053608602918098925114510969172342379617975887097815159222409820252338810628689001627607492196809164103120128938290560228537250621186514254737471829951892234902186844336295929324781103922262702995549767696781721505015330754705030787128179564129568864197344259185506480876117642156628619958970156097624399702173638536996892030999812239866687972731165714859293000023663116046527722466774796069103983892116454022218983254395591951588985260662781673567589798634191513028252051263278035311099231820050757247010180324912148748314530189281021744483607550005468676759543949624709141210132244682725931262221631696758680167866344151909537869734647192076660362979872155840530880029660408838501334088870687618257552226363597495765851457245160231013257943525763847358662364430306562209698196915553019314292687334159754764063236735568702309536742283901236912963373709056272036949754831947866465190597726938174130325199669254854315229448646285515297138250079251029477030947707935591205984490478657201868505371033120269089236251019456064493758424532538991754186779769586065713980600468720348094767763148451224667105138820962014854297551197078985953671720486792218809595542101306707596510765199024218944927957299096159450025326350693518597615906866003452598401342499941570102396539383664216564005089761452233685309332791949930950819627876007745777479930951249085771596078673863573895061988675952195191940702782009418774875807455203934763873713243234701912725081772402874473216304784080086763649085883863788145753781528332932081834414042077516150681411148908918120056219121242990220209768275936739489113225587453745474943600573337032055828105073669472642070427144364017308934358306429453972331414336485418167473893744393963550114517230107604107439409122271133483965770889293695372598185850280665914241788777282770079327906978191344919498852497007361256322001022011085202288107904233857864461839427467358690814543329947987785805810334929843536951251270623600939147318496974088458474629108726372816717176811619555951107295056920677866044813156032450294476190635034388282899408900442634421222390277509909195508861915796188507273867865497040481261320732689494161726764661363472132298952202863215508364705363497971538243703207672768681985826385205160792585092415140422347449595468232534405532460458827858291152473388234028165744468677477265714765474661657078651308307584927311578042038786009436880238494254202932766490193299415992454801375950844854199497943279923705010770015710819720114092209833822257705731324513034044259711458023337410581819120573796590099356976255322607490953883263660599763010362891237495530711932728327579883249634837618626629557530590009798965407995403604843380684370941612629527766366210048343294289672053470091135715537539406894848922715051714295336469403290048187820897581263934142476710544752188608391209960707873400999021518993261634717936161261138395221566417640393092828673188370050486538087049539071289232155371994300511748868636015684705031904619187293942770399974948591310469230426231164569800500229195657215648329426382551587670383260813577083800069696983351088396399659138006826459360794425794479857633612437734768024233446459142000305032107196290606029805932501234203842753764880667484500143171082610577927191646746258482964742485257046391856904703320629847005951034884107950416131368103849858602518410167511388786542011236892417155600104866581269514031424734959725698994057570545898245414560329711274965121406747429853620676031793983824973881766614572372415760605812525795850482123773746051198139022705963495666004848739446036151766352430832213796321299360107039204877224357131705423866068361577941746658598926584765848790251642606729459546228509221141157336476591886024085546019675918141936121614896307423166517320185263300480646348481683273850118603601876305214600281546896718407619234162751129169958146747155759276283212056302209084761516415180382634104875074903691765240025284871233439292450076066103409557623831292117245471533541920007523717544461383784041022567957897461376818220016338196902815301572940122697820861351200645079815402354404385443437393573263725661610696225302425560932733901522414276816332876184419906691975222240115683543156248623795517524942093791212465934448737009585341333823752072349512218424530246760273121489912411290796614455197187144649747236110383290951464641055028813880988315089647277773519445997275817471340510823498263720601969947817762721452576633470542826976173276431172418500926358946386533886611739139527332652577723841267134990364275802190501895202909156116933154857810938851740520806806533893722851343948584311703376578131225561917402748351069845266671744652235903451718226709148664919541341281678998300933367853369404669382237089230683771310384495759927216629205856291642589046505523489909182412242902575248723476014733356276433083696019036332858196876740154502161930827950838827622293770136715054305556933554979024072590080401302105195533213715754642385943426060968469935009005709905963018879671681739278028975163105676405423013675383581187639472859221016200396059257292449515595968998530233488977595098898557906188744800490741302802581288938476561670634629097191155491195162375009674159043080266707983280446795326786347522251562089473919082287769239497262515843464752460914509803326668557970903848711484535726205542295135307751409668374053302484746238029078225757030650952303368675874300977160558436559245106639856749432680974878538638543450121607565095475995228568096491943786346617827253000418142195356931736313498258806759614522144515733306771604041283325919850690694646998067502328379899999801968994275331762469278225872447847243671377478383530552172318052377657871423613461457497607114819864243097541085278773950973859517447396409008710918880658403580660802452797111734630106927959897964134043833138499352842033082848021032701694151880155465218515538636251299500618553169351324933690864190758283072130022826563830604927228903569102523161468605727370969009042469925433491880342189976686238949512256049262650003620538434997589502467884923854274179605582602601870694131945037529082724818035327637720508191403176181042951098632271561562665481927015162100260487031295289054205946220601122408415039634620497353324310695282111284869078631576046128176309778601973452924284547869418287786765333714932709180307818621649864330000058195143300609085223708094983795354615636285959022587309887488196538825695871784559325891689647755178044816382368274129060579305256432541713477743460871524606766712576216119639998377247602346582120698195315812412213990866389072290930013748238342876810294169747993319286348738831955624129737695369330554618770622170374446316352173329558068588183786806817855420820931380894984499668076018864898125184602430297484807786522150063646959421194177468116249271501231579101984916004049147348482542359164890032770152104310256201904874727430742318165180134878206743874048910343938657485938275048090044554587742550449054765675058401623076024488025042105170901054146787498703226407417708605259268845649482138581011606905214546809734677182335663740471851307056044054856656031734438406290013202226156209678890513849472687206820795300960480334250574803073680203312509822612431906174200416098714977103705965120660107329319295311207753754241881928194324792110745904126486798131995411706576626755830553792555611837556616168798869391499540215605661135516685329164805330697504749135826635038619611757770049874196466990008319946754602318347169966953731799882166111400572245293196934483207160300906624257723479546383139389704293958232894304086237630006321802343896101049140187773205427786876564786624066115529047947740064911775909766304437246269014670186215784576581736868284933147008203966291674798826844765503079253980524649300963860625206075986496481412383525179182999117731178747029411977428573135610844763586678341035709989166737869693766257430581556336463369865752932965353313099702419636502984806645023392917449591121161516085612989226000110474709114598641134442140210908957405284557867098604639608683613634641712922749885558689082352977032404008205690032125480448699046966181696489922193650574520106783495636873848774479825666856157186185041625038161721898287677290985340787742144448316613618204086655155407778983092344916130050262891474409013158251499378483114110205617198310544066719604431684539355419309080067890263715719243449318208500200998789692078269837078468715204632243390136586721195940691667803418386931670045860873016966902815787365905278813341843722106498349165978997974893987640395503239724216116674567127460563890365659899495488189180032438292453725359218631946524835185763914799584779123287633542544699236786836304439154747243136754251905257064158378487154064071633181991266725001076671048968941372221061118559811272583163794322610032536527698110640189761480943337727719476106827625675595078442161530451151137629312636631142006407236278501304824887250730709852538835091128646401431784436389815728346597735376113969310121006862952824150287823809447741196357552235791119660850665961852775873397799150311604664793581993645333529238032685773077012567504825733767098585117008967626340600337399492320274351970102126946787539579843484645138615785098882831210220459354409693200651532463628791027935396862997466719883216010278511869305037373992513470559056221406388969145122923779125293438235611946045629793271497606871853886734260230896993236299150462156719516429375450530772909531545257265406044914751635398960847580516244489529597969194808615883552418382760601417764874244192071256414695888081829413988888038219518367327065529242091228042793628512828258104132650721080290885023519403499982580014458409024673445623141098347218126750407306359300175660404358797531703528787549152030599724919144056639640010541315033912159366148471118247232977375356418988191458660703814261813583071718767675755312856907229873857729759033122495713453599681077597276553964850189265135731517614435056134004458222475654108553205112003523978378753638652674272066353215759444188768889581537936620413566616685751824143060724384579280301451909984714628492739072319662222828678328914240873388441963204182615607668002463309539098808163889834719145238234532440565398349349958862775864317572630432301532569986885579351550589786512472045588693665666392163546708030291186657874440286576408304235122670967904067682383448338857595577745529955989918805381792192386269745970740678941515194442064403187615725767404280671227847407977770282761339901604655643893649272082881883425632072161866124310839262202737914436491991001810863417400003470396473456431831449608347412617445473868873700398529104757749194544787159765993678792180647188507373236087050269460261035441481379703362213233628437116521669409446809125173362245529770659984674864836442735185621434081526305515409817963380926411260016479041452833093212119943566494093618628764518893644408226462165356458474343954142096465858844915747245037135208813720963124962881140694935158357846617736603791221670608586038706394333667971510730717827734790386958903210156451770872177394652969549496167941767874228962247210113086870750353213405779949574375175490875340412038539500267783132465046799919870410565342681283794719596891430633607782137200816165149579864637216092704161169180626666614708726926834392664271977560437280140285313075957881203273616429435933843043183862943307522367137716825324424870879513075143747598449279534413691011916726432407840242320822786323932842595810257462937257045245693206373958317065964496258272305547319940132446373470504294763334341648764487107620032739668856543750315834919966298111182721316996520524252346380347935742394460458866936359185190925975517465378749862339935695412012764901242469382209591817714100275456107522217712385116377846724026182108991148268134566196652633796367730351985738840674537721036935075784500101548015464912713686126524208633423140472021227690113654679549823742769817366595244899289026746560734073737690129644382545288566015724154103558624018420291051533502257795431432484179788455962509460173583720218900490438673828628795228424591698234242812419549753188954751997783398990124948878126193286739607274806194501147561863052756662553252549253774004683121319331843779895346073597892193265569561642449767307144801130660084362299560975551952591043354431906000430328650690102967058633806847709960554045365589947172460290104972860901431344980809567634143690218730512675110307998889210871169824345003085234300717022611951579026667200951400707365265687134813912971741806952846378550506203606047259320212742122041341884271266471479638336378841836093944126596011099268062511199657018312760951073997676904752303862270313620539601250956249274694754506896107654371390942884188507807205191517797519143160666826755198021314710032685400630858330750961436532156714128481592757010506413181668202684421865107872612997256138995047816161776149053208085034321943839588933983354035782258236480134292082222492348264530933793948691425060206551708767558108783705076916429352734977115856994794384207931368236186450422515155630219322637367003543549605124070112321307509901534660916421648478436248220601726088134017597383139170028284041276276066585763635060372489031604785833743756377751772873310442009237609299379552852405526419210562108122093427460754282428591895886866939738259196844582299097239162006657008401697735771683168142947532158781446530182019054032379625968915202527990225179795357003531211546751033107390031166066526924332878462930362134873359847124757077550634675084455395651715120795420066209310936447090037130737915559483654260777365333518500585011062710846871805825801975540062931608710779222622945961926860577220070977091959114809854931451719525381101420923423452851590815913745079730140148297747062774856069728455051579921660255676593855001645499048097764545774449247755460918296341831655958197213436257203795265193523581045739588683822908732902061935974801661884198548623526011378011171805966429013443203482352287488504768886665149038799752298069649554658584133345484071474008525853333160229953689502756695676328077545454764761803718070900569229186446257708472567634949754636790000371397422426781614000385327873108883872820876501010433229179412029262402819189443514793663371240840947994020337597580885205105936747120912672770292318330323157551950099481515382304391816271045413797675668306395628551774537472049500004432139728026452584522631020677283845448758887969443537251268485149666889877420779473896944866543811805741810199503212398416998651457089957058311264085124581238569794621491678616210532611858808339646345040544624494965551341617765224196178860542185997311155996715711873947668171316206971489544309074759220590468040049906845025932291736628917895957886812546280269019264455718402873539924286772937093530373943199562946674276395052010275833412524676533332705539997031270448816566240186119977914809914621672524052312235126468059782854231339394990474941189410686869280668924963356191247597568489991168704490633657027718171845166456829617679157617561365987953159458135290167684927171052532280618526888619462797517954310507896748358780451203938929378743518838460375417147915132176939463330676147406657801640797090373650013186825246563149997564312060709074421075778012826330723613951874102708301080547775294247339876295343666376477925337882620748055057388699621947621521546112098915968589872005192699037666211340878408008711157399509225659854337368467334787356569240248711193812943555313514559810428670716712186029212839208983774893859192377599024160216841030857486056086847889514139438132173324062439161417930834674966215113292289368466837773991405280742844618745035419839676228220462017306055163919727847045637642836119432521491524724123925646109448264046852853515845830712331052054267517112850072015085516488103505694765533081885127480127841398018643806015303962965234319556699922570216982497693049096719284804847210804550823909395311239358608380702901921199706188988512003398272982505666482220291047235264998933310187022648845674466175113232838922761676676366369058310494245273445366208312871686948514867445611325399399148887525645530566083817820707762861699404483443769324943325691375759192432603580352816333459233482869037874523732550217470449494322488821067938644303730807135948184765334813286715297703649148173924112021514863843284234719932644849966887674006961473764073588557725932848582307827790050697553749635851815034963229468557241372284953034009262671535595302474818492193954083928335529422022653403374893539205367939977839803334541868805799335740377175146186753558897320771116032710239882237476339088888908464528011531619413328472229758488905648177056739588290615839079477372659513729128314067662989131652783936451464418830805920593596883124333298775110405472569237370549919265403095041248374582705982120346415385465229237163640002677961311291118244217637648629311685579824520903578351687067721011313764708131170727077942959156163193339858075653425058966638781045256130395032130888252194212905718398470758957831443208267821077719931573415292272783646089968071522365375357414947403323084728616252485753856422119088755680694672371368430687432550278129600169258350214254647441417555768872325055876870255023215191700936501846437927814947813857438476372803989061303374803708195297066634299307619831022431763164004576300345226450089409924037603982791912134124350487570297323266801447649030948502072900958507077810167556104885053334329593204719386767875560754911841861474904181004340303472797735984375017419054903371659325497581541001670584083908039834420193866384658730815535342436230133503488045700342175573324237618735263392816140109185172437470827481029188645699433759889045178030627552936048482776612063708272483076873045840072612435069478044026680765785666912346095039383155880122224574527555070925034731046768172838601736243870123329140543631975121782734346759395644496361681453470391425989842125581398174496490084995481612120567197257237621710801317062367146374656679619857734706158862378233532454839337823886535439084393562558056768174003337096504995000375790181814854824735826344336330757736972170268476017969543950802652229958177411361570433685797472579566843962715970275664080693659037075175544176432502783370845359960293501893966017696872966205900272950656480155325151491482818863511232625525600317234506476893685413336992520372475152333199687843723369945375158299074840242123921888436939665440413450673813614053008559633751651679446176792278616168264356239115126109973549269643856650555926225609924555888952722025535586865567473508303184651065154072009891015937400680124438891118228923238819315739959381010378691505561852549039117427275605260767794078825035130029174742650313325757716110296901141946112618012433001959879884986553450020901978938955251951738663272429434235418557779890290833551711109285292459402024123688539878297802401123638945919027995212100836054409018010205850928367022645860846528453640122294236876575372047266568141990299277597312197382730256580861473059909383954747023699072627029604982631288011657004684336602328785192924657050139272390652533436580089371734278241487182333227612351738644709786506706326770142430402941814113202371911253984010676827594768719207032263276763943008772922831844480188835051204900524767519820196023879999390151304883279679491155113268181616194847631643854572698715176058662851394060781169835033943549563842791949614217251502440071912819226352653886403561211258386887850248832238772243738609928642410954592567014846267053252833867926467442024962136806043130073250652441075617132176665268507993791990344011415183349488342079706590773798588703550784528899000474103977526450748345663061272665933733014642688895957428180817788802091694620259127662855635630045488537798508695027256853730854127646624703064050713694907222115666747286439240984835354591017352471627224303514576587568321501615131249010450079356136784410932922342091496132986309628621830975866996937685912788829044349070009488284090319700727724198654992841167041652370950115757595491925214727358905368097782199410317542292330526645713088163551472862590983728557552588158617125319748862618197612686158628548514213530902211868560209545585836564028569675986055664913671987471771797788774059892908465397974869381331469005707768517463598738334754148641077528229839933202827208776754323440595435510199613681456006803874319082612381601651639393605439863555283181222120410696757677549024881083735877538271912929067477779035272815680933676768457971557431603299465148535743136337583384603590654635298350435220929658352916230239944627535307515480914358673332344616781908539017589644793862381987837337038121686799663792147702335832252668337553698702868051019978191420266176965508288023229739457656017363131162033243126167613720501915762667345312718855461312984686608480922484422225527740113504677821651671727340452304537474019344611725374936508902600202068617290339376260980957967277428744135292318354360047778694195820841892802879013568996516294821633963053324776466734795324724847034610519018610668341695130217445751292694204484495046348314169480749388169387780906568693232441202808410024170129918325184409297684359745698534448591629687440603967309972623225725587502410742149309485123217178242018754159034710616028421037269778774104842160828676671621888286387934338483133775038732103659042559298150096068688843290995039732893785867725405479756710077409700198845299431243943202920145607493947372053042750733352138181579162880941514329384202925857265039433362474875471022559463398071527555704752092226886245386739648751397498136887978797842932565921828307457125887127909059985326610904203407214229651648725342992681358266401325783608406422340846035933733648222557755788523909099363146961044905385486079404568377990616116279426100101323109139265618331825470989213809192587059104085617584988506462457036107119291933576671154421173216981053521453371844508020507015470017468523761494828791347949991720004258901445054836883474521956863750700105721893041433525922521759573722437659588805299468212881692374505082656311974144552494429276859671139497089074045664353648378018613394145848615345746979321273536779186895405588968524762268683539065391744646138868909579368664994117213239969462600085442650745320528234524706818696173003570006021334957234431942360868627323004145830756875385807579287379897774052877554995273042638344994400929743081661782931298860681727414046091743725500588778159323650099283475650129846010727025371739899323041869233103045780714849090125066096020676735945147491020267072209767144218316258376254225423699904743547883212572769405807365631481425901613343076117128306954531944879708609242410478381438843008080166762521449098457771883874524285559224396205270232336871230006775715871863062628842431550958206723682106265210711876978786577451620747305031543841826007691864730349836526683873405567010216067474162171949220041759380893945288262415863489052416159140780966709194803691010279105419561292385236707567723974077738871580852270829396300007397862056000671807479566880800077047341683784561868498599281206926475908288658533767967432739246350075518419237964439481773493856760328038838680264084577430387932401843758159129667652579894665455391569248183161940392272359325142718592182763819847402673722165654054978429157965938240795044701633748492140362392721799025633776462824668558530584981718414022602817301946805151188880639395686722340044789868431623515777370675548044645550698730706412829381891550865087562331088016827050933626665851800171094513555884171546415806174777089488904278532570863384604248253118920194901059226375259927658265498591622252055672329285099522990685335387136227340617475533031385955767649959423849487438486316549683654890949400361966041483780565048802534141777751112571817637477702041764373978718725319846567301598646725058958331930308918124582540102307465550395370370856255167996387994465200857447530881440768642812031346657329717997237612306025622156634874995704889605747756401029299179018107585415902707321143410052299873164546266799830157723648718483634628648127505943104573641163986289901560196200659502122880624628091626985871902085672541702297891695489482605516639379534488100557986331389645709867515389590006882920258180957859522738813458478800989748864438665775931574590746903231553858838542581620540511117015234641395541030418266727300334866500198528415011051026052813588877581332890735749129927509092380382111578251498901095249031753615571866764223141748956729977704413046364328309889878628462545644354585831490614518363430020497577916957745268793328116540976498826189003292322809641486052797248001817267675059032393507573242477032222745507591503472932896494009615546586745480623415984669790820089469821296667486119479432947506460503649640186097616344261612757062800013834920766087063912001522395079419272336334758636275227611467257581437991315232034998789030500217514499918792887534933821693283812382473045091211466493275076387621943815587716428857221548095871103055333747760830757209397626346845581977810365678279454391763572619212817949810999821901296582279231375667331546990043154527834343094607188643809204369157743079783557614665053053945748772172403323169846914196405000419765801988619271902103148921224997620870008043295628392241532442570331129778126708484152560752525973539232021191125061431230673151858186276093613244951639907246614300892472741105664828239329529937126548460881377904937394798212581272848412416807203596465047592603210678128578749358246759462048847548908839596338210708013232321415529837093880079703826402413531696796223073370951356726734825252962540075702571329981356681872170242512711668803478302961964447798912225088326895462948540797745153560534619335140269733010658665452243821194432469030644634695748142330101924626425731986408290796230427420450199952029593730424544289629776999501677584304503402007216976660581787011580994885249376436626655997565441735998268151691865812363779571405263834108456507673253725588003038133527762256432000098452622509382843434869702116276867261038946500662680275193196849797712044666968149188107309868937970934797047259220815108659443159727222146155051014408992795109961674057055495157276763084178975317970262526731671015288464385721263521020495461952300741412581420590656773713820107823146198218585045432931848586978920997213033449925644165741369047256331779573792958371682556643167938044441742180921098506202752328603052888583760726145010211366619097822665132583502169601217057840964678959951706175370616655480917147373367984573598510746549794788575391473862604936651154583648070946902146288056972509667937979152357708365537631870572218626510162158388201990682472622817267660530912161345593039748685890008825427015846192224568794326936029036809028928632878778623059887675926108995158312857558165863607293621701096436958683151129092467453163612686316514947034432146575960906714726930020528372271366519284062383056752794303673813471543671492349319113573861483566720311738766054710090674564881793660952509053596928606498493521106181980391757251614057670090418914294265251061128791474802496890759859871318120104246270548501123188154733362966912958755529891241451105370710099020242444308665413443809924783582384441737201154786443445467887604204404067245538138154070608657239714846701537595208575902159264234010934267569574972416683405583100063354916898375327238842383951686538509983010289899437569213679189427551256404301097849130984575134733805619777536492942244134159330909774123569345337965144403064792755135451563563252644627260047055308525123093517340517300174604476958702899082579353708521136721671611197464603320952829827007814644692404466055240900884739905644917089151328052525487305991251078323442826666042222143492491126467984498423835039485787635188044052235123198861433933734327979567976403667131292629445417445588205714914852222398793313082454933452088501640064994099186329697463174748943604790765799573406014967173007080953833097306954738563983100437667141150112563516688059260573952894077422911186974222769020072198394917800331133087500473021427393875158247844314971546963321084491493612134021260515378671479723899700059117559308434557105180819674016092281225298585192624653778773893614066623599546072200825557573585967545411697738120560044298379427829399172690587569526900873061637018510514780015975953457825655431618451586104727471318810315285376217210685341683650941086021160035408198854202913523174668441910656787129626180540513526307026423047938691590969105010201705407753854905028234537392006945478634731869276148988657658268424516788202721664928244789736086762884783159907690976271373100622233168858862201389184623105269519978213625846787938240517061887915278728922379118849611054909177530746308536540213141552406937334909800509929002502332907691637591882666082915853769727861380736817494305236994174484014353594587559956011889702918143649707680427552499623471869113813914135348418454061877995829076537015633765974387208250518493886969208851457871750324956502213654850355558300746189094130599840082324827556256897635690053239340533837926426185195616650708798897259808804124565611155430853877339709953742800705668957548221439574935783855211322777383845961691409781111238428893878672917707865832402761793480400857236564144809620349431580017130666769344372925608077728802411542767639833194951946641368091106918053415086286563138314849815747762701022569053838595915738329844261465237223170967424410845879097126416408353578195262237663266087039643521949632309930552446355594895198248304069626754445183119958301160913852278378385245179007343237091278192810219176083292538908558028547061764465374844552867843417389776808641563853514493703244526392988107706788496736168769953686749978077131066758081562263740270949784788154454516136894021800275485189388650438853259500733042135960459017075939696134235648998541771030839364875515150328595894246496970996114505191045996703907454039231495913146931925680308744685125149927129436054011548517662162617315372368378967316595475806413055046571673940702544309568381663331417687463472582647727173978778974388441152458804193302000857106637284052708755541035067288324280228527155872676221198187470376236145818263050034621414759731564891515039217904037130957337248475498723106799807471638528089936796853505351822916569426502786109020048606276435018027371047640382399472593673577025722212994704882804423563704019763461943128143919030922912005633536908337770321825031906900820825941562314181513628807615848573681834986119911857952745761341464417596397364536688464982236295014454794066543279337059259551911778209385169390429346194051445919063727197760607801549726158843429886304204242416191539393684104183419984836636771243476233358844740198818807121548681058941657488158646701164602249684390053395386663167161888951981544854338632508167218734796881880151499616918647819703424934994390609737192475204696164738926429167755506577255438292900604117270032126626225160840871699924842967522935556743924290380992019853630362169801641966477379014522931936684524366881867552339308387316882808919336697489161144604369423200391720864469251701540539375719393129834867109171681696949988851834231426860550104200468838922385336946721838123904397081066619084369629686815389801069132445210509938847214027685040187824126647223404584373734060234788657859513951838246366409558507828569509540445829465307883997659479681732478664167321348660077752335772780175803422464254807843159459503863033494496710627390028223031190330973269211121976223970570489596079287110528797319398934742695292415492537902350457318065709796936804646011975467506105915447645608413055487831341927619974006476310613383023646088832239239939976821150305724358191971587463744546152174834380382972323828407599113546272896407307752168779488447195906598044271367612001051096213425511358348277578810445938221195159568301074031848712880568030007814833994040829211601826753787081938512609622809887924779562576513261051510039037523168947396305950869870282635153581506364980327720315470476521952292308349019530899359330512346633092171886452360530241954728417654169102231471462003910524937621075071649620569449395888545870253773908394154988236171591011039240564962939392143378739543465769516814342606912087662161444836072817644443099162690270183076491714652549273668604813866630453843961009620539855704451243695440206030739292043367268774464733283737546808985906994115772138275098358628673796342458665384540355797133137788740164738655385845561647902577225500776804599991767845789501370833320986965333624245575830573934946796114622503009812586332431431060727918626860471416886741598337586280609312712472021297546589668398766226358763922611022137608353802521686668574076263607877735824831201749079200672474554160373143928856981677019435562472122792492325449612058654263086529266294989884909626618945507031671214845746241673698094573144636397243233948487337448413032845359582390606102030938904338692112571353106787801147436381614683179480810345375163644122629618047434198594757107060683484973727086389268978017245867084504039809173463119318819194712174923232305441109605895637793419626172483174426038430511937923997891248958183016320432769993715664794428048947049143166832355966931369286783021173369125392641095367240534067997307246545800600250965317425312524225215436016905904137971954520757607339385586338949925405137916921748112019212866345225892791323934239496110489983616980349202756208273541719208687419678775536346937665211944400809015696417294746254979707917983310672520239892498706127331527530092401704397557003759689555801113159270292596384439249380196515342836414670393113971125380976493180606588135666677431532347992635155695636348576891422837759256785502839747908520200653724823851753227943090700074559961120604931397950444852912904664790759164678814096766925605956745787372904709455185545842012766216197527566699520142159381670137684838054783209417930816955014032123518443942365866340792615509576742911446359970539233268056700617200352545912226571147412405189820569983472831817722921597106170045020328254297901028424958621692898027229713372998093214427047336208480840261855924660330029418269744169526157226486445784501624151153206218032642616651792169974136090365628306029517559796169960373217428469106180177893655976584286436601953909266134172216537778287705119517121288902602907687951146403426322189671621859601785200214425574618927872184793620018343981555104530518966310334849920208047449047135829861159677179803381911026369536198776211422158141081829605194865936480080124692574868708938749161826447075140719184441687161696554356823792491341450196042524100292289987521476043389658208141405456104206119057949096384626779373204777504854785858511402862440239213862975482671239568507650243825828586020265024200734671621906759843453024205024169826163547540954936077039547609576076802482017310348517691110046500270957744849560147411953446068382809633529006673945905801398967361640864069818249596677604362115214770269918490791978692965179023525252336801752599092537270586269053227813543287201291260233539746697105050915162370370243534091541621560941059838228129511063081278552545967115578810329533523529777681801047322229955157953551454819143174200979674602827545713405856272844299640637548047486227300750577084735443000131559826721466699861611948613469248757791774587249930648859232302998981276038286686920969827173249946347299508713798837769304491152336729717993847507722404411415723063136512673304128409679679067173735999563214370532935956059226033741131978762457530995205590716817777672132099772056967962333398523671274271492791299315008232398563617714844401312975496007748019384172707932109294685009743466669428202025275377450088868859482605855438541893628648507000077663986885956968669411569302003211886611499410073713529877203776398305928401109297657543036477863183329163688621892955725741355327569103565698724814800508435147372095558387804580757672815730782888087662699294537901256947308215952715723500595434505755095677322742310755819957335853292976638827135450683719226487725074314442704760339244305999975024889086056348137306156346369576353822557308243244213990489280579223906574792088343836961962185430442231148403023875249411354532785536221802398981765824084685295876039513441704673200251604223622441776282767817333599793154692615589716155552075993421835000730455728255159938966323878370709895587206175867669668353652071101097866974658487380141627114736866108718176225273548280596682973623735832502877469854209161708364690425623683362508864181801750030705004867921282135652035518057114113872234759675299314513029319564513621472901994208274222111015708599400043288916702263126812412459552115480190768063789697215568721421016053135412220178362656599106627808128659692375515383006856885167241598321883921456541406487908671694519875578286826665784073761116870004469559238629670045089982548845378678929784080828245835680051819847173633287826612242121617321752896733581427550840042039160632078949888194814128676705123391921824990985680794521515407239688272969843866324754712016355633614806546462711447305796476509140706679049212352621229031912463144441618660053371770295800715138148831392378927917862081194713159273392961705824237289564273762188359388076928895946350368099979668474327014093809931916204939189359264043357579997757807604399945127344098302436921802412934642903773110849434275409708024697566097032189606511636718291014841472729276183052254750881380670639777471448658802947553787195721373953369063321606008998478061691670561726117548846099919600267185394743101382182307550437627958138666745624529063809601887198197505200575563230025446118552513106131900213248096933972371527667838015669527222157696617188059756584937032320165208944926672280601623297065916792055197214235238340983748720142301472799562283284929395818383486569321301807647933891274816018998081200364317510097053804497512052081494727054425216043804601680028366662503661812380286448348384953663725798236540650613892791102515540226384344564153495140138191016518129551777698371129041697273475263296152579832409971964362567414697963508822336932583876719271531242208950244136452511054187070410701496944980789757667852465571022971088543794534997490287077901054099800734738722962705248298423601311848153129353741129494506132305666286156910348795717550410531130880871096029972973592206136674321297231740905957591455677300162972086485883626955433597023108091563893810037218251097282194576161668027871019487916898215972374407121464485686937719183164539870007089608246015420103126558661654033723207808055207334486076511260313970428494048144827324004716163367824206176593351867888923357517812150171863389988611885623167620179812326966378999491943337469038454684145611720600559698376538368269210805808109138503744338936986992607877239521640884725014916396327755163356566234173510966509459005654535554829727352086108284138757106966947511380170661988624057753764935385435225112212798336617180957649661929684905294819602300174276657896517354639711945765692401961763053705158099986403340367639762665020069693707964354467794974666128167737584570088473422211028354258438817918658235381984482644493842428979362450514321110190401766472407721526396118444403535891854338179993316474020122383824014540998617872815380341370149235112444410108909084367082024927754419571525175023435810403003926450052424886217309851424455947311212754592820214187372041284789195911075817678733144102731829287297518390091529393688533194513300344535066812385770159926588782628250178820793733184269545866782853392909285236585033030044328231678766367896633978693074340571190391154554334577620167672312800105837282576291642060143845353532568138740871396177537962484186952021286563947241267697499196410391693546709015025710400390209330490256753899260848571245855893991415970371226557717640966348833220407114673959683480505049663551734924395583793383823315523278906230415944671125834442598118720187106443290095957581302983009915692494074878941765667974211425924796133834535848916121205242595541829547380959741289028287633034079966229540936462934905761930739787935903041565438973948700709506206699815451369862063600166420819764618645687718784733813475098870632920734138014214888106007297946307179276612470103351719507319674451692155207200508470537782570716361295528113822672479171818889663187184684966784695434357018724363177027299378325798443965774173815497977532057002798784375565274090935051141155816082523095977921543927377861101047179418758324826820680231819428269046580304448509452443256050547041840094935421448139889233312412229965644973000404710765605408823430364600318274330882526927667196304232873080358085519641171473740380156825414959989912476033312042847667447141689882880681867638007717994050464565958680330854241791151541213704854525378144379316512302988791741549393556394291162427377494841729001166494839591196189380982028462791272661662022349654291279672642476229833643726866545318619924896806679668692607654706902260423387483404460686922507065783999585172429734171910896879446790549284762078144140515418554776949570029418778322458069170254480659930397504158376637550529370193360964950384675520828685178824084836547087857610615809752000045594899651491906060825214228488053017491109405219243039427231907323377752290835392459970452693473896008153418447892113610030702553439161554829611993537825612557448430018293622994332965537823396018822015484214209186097926858078057435341262553463704327134362906324135286072404144372659153046658701282464360136030574950167180219773681415729489255401304923947398935021079737344989400832184369503110723900877056717163591592428404530397017003211887384814272300162407937181386427273641362541802071511936489631804735375698224827200160201303420074638799845819236075136237816290985277005862258746929682592293791630893911609963268725662993159809237445756578860026349596893037251312855324575618065360994258326948316343506663359237440088415759192638185017298516663921465115181149683436571664527065294894151303591466754971716400609520651469949968316955785467174192725382977025717640939851963413711394419869123902559305435278019610489254427536328623533045095850219240131118177929942711872211986622942593204193458119856229011946608499889410603375481315077052553524329405353408008511110944569421883311214703017096795378323435855327821246360441488976237209514724274323671688209127480536095704471211761283209653523422720636111069570863996986391847047267477520655568250262036979063085530406222973649140019028304447457907512782697784634231966094185007564586550191983123738256583009723714261320926673767429256364586594199059596292114956567853511108587730274153808373897520042120036258665199376914342831480689587347489180696543263634197171286079666257513105138219013386888098223193468140924564708031222701654637492889529952289279892964711655904554950983591748684922617595448161847536217633795517245192567551095896107381983895976880939888651940683200992893394874006083912005798546926891182570854604263657084653181094235955834657061619806720807297678698011608928499034273908897898427663418546138902998168658696863510764207232377321654659801244062705158646077008952973748398772146856405025160174844969124476679034602399204751388481703254564331075694926904429109698967648224487556538831691955816860544805047319511145204655118640058757247221699908939085312732266240859537327192340357420856186212307802009421655099901427269495213694265810884903738962826360317840578967764807177151271831728919853652257939873727449496236078722233825810466652687280216427068682858341208856198327075510889611637700484664862449171404949292080641284630797282605985631184941490793369440061748377948460963792493919998972980170566750724910790427077568591112510386117441700758679203228668472765121976405445562312641643049149353994744021398819943746844127127684826248696310086689148097145240704092575504028240305178414390847983703204926133285595618818149895239677596111303280721709362925286840038465935836574930933842333207199265077872107963555643133929100443983375525129696756245528384654075195699515862645256968028595762867285472097932177358644133337537987640329233855273582987065650756831217401215450999043631962898782260391571035324572465945124811509224923990806799408572616717916144373279146057677169837897962492406260616272281391689155461577268549768423153888469344521518666531116963508141324567680548314032255359807766211804464436489965474977239116681543550551801205512827996954979216963476444164028652895992743237903075134651083588491465193757681760653481635764885685288954801917152788801856705497209310714957632427936204558479294904877055234847463760551014454808910734108930926148139770538571602225442147226989232038821773426225845330588910897399496838262253161548219167601061233013871455677334424270665272539867570731942765711120851554519765484141309359676688217654272186661998315594914664570148113680505636660510083107187384396958535388322513379628416363807667436881397811588516504353662111879112436924213782124569650098453001275788025444531846873609578875228116057163269918412592804235785524557343126309310943488656730997276296269920154712175688812370142798753459168845766389851987973743113375737666693537537157468086946880385628075002817932322085531015169177062772914474019681645475151567289938845925783184563565232722342667284149979917025718631207744009258692329454718227973778321974574763036618745861905529857574198988539423490012522621465450205617984052108753921061702197469133671772638870730761791366732936815254159871065445214390405321126741885172677941768458287277937910716890051531570865376402253133200520737088364059000629150375438221182824173280279523703053647933859779965842942033966239873567866595260353721413492805440481147103361079897833624473468222259521612016038926466176466248126124972091129677754628262381280767339392068404178694344319774195600055066669915622307035667072742308820167991416322141317123869774449084420630530890714555781707025093734162605096110316414016336979480975758250586042434878396174942665882274575749980254707145290700045723724384766304170663035342150337091661830655968307298744820386523675906985411992731345243811434353176101009773852087502771418816696593427916757893003581192875936943316652823060641285299167993202548957414085935089359526006602905752850407916520728284850094742581663627453577210108103053685087786080621247985617983196061173828087587301939001848801123838951579733370902960092782560769400004446134494004931836013493980166497949556942068286688781515428014346047360739813044741589107572550318758700036355843767701503231059401212112796477018045562940878783835391408527437085885592702239196717633755360858773187125155304608876592153324978727609118165269470785553860728924338431507226196721974796072645464004274305252214835095546233669178878185876037808532472516429535065009574219087967261091153102122132620049366086638367438239170438960169245891182505556018795167548639776801377229136492377554648147802006225963657056753750721916080135859026797098861863862347487684270727043302881803618969127974316836138153844766094347656132489655978892392729629598110879395167635373556353277703594151969794692034344385342717927112308908343752392007246680248754962492649518408439003005903045392826877452119018750112330092283600311401993252470341613916500601485641420173704405671832265697604243713376339423781892231033400059190015387519758045087322040214682513132482503453966165495040800758425276830343148155093746144605210917760921560659553789028961464764938224346788047211924808680229857590253205604974461582981965688537246653844783470701018746205230143499890742246627498272099475634003293798879380206156707931715530709944576775350868380961857428914990628612421309985385898751695535368601716650361742443984882266370300111256470486779855287969514434269262195212152152057569398229834910431586409704806411612132936185311633612007845301622065530834703508725968299474933402805149830240771091710034779838282740034142690685965312970048879731123229212089882312284550380718843072093262759600055754525255981190064636507463218070794763383839799549114630630583148812563892040020531969889119945043872954189922025984691570357002719478070163007420417361379192169769197197827414611318851283219345821441911632354406686280663856198818767187857774220794484099475284970987700640252151285067102364460959889568174232963871207207426057724884156322881662695586676226517298081265529849469157871901216564900418179764041572301570707145856759953646855773964154287909929726342661816793347286104284740836498734355137283629864261782496580046558232753105314537658930333324433810049462347107265574818362296829590936334669587703978604882675146424109897785003286785885011154383062097128553767301182800693991816491450848860667790630383811063303875640745887710892514155892799311723995185954931328101371412179665749261675721288300045065894108101301181024729580521708967244413778522342799608007392079143919585897687124137136802682551350214137801426989802329889548007622768315077937906183689038855632046912235156561819321602846829463089427796515584452419555547472633569693315729999286346855759614424039910461028883110146933761933791273184614742356910070061145194490732524530516641734402235707587935121972987616406277121681074500113804762851952332250907232522839260830741896270927690844730775993895691154092226781042817627457568292952155275384881508815895852332242670924056431988202290535337559651435430377026527401031286813813588278289942746636567687631226528968870987057695484733644042364288188625855371873036272457985748946463900429437559713291817467210701594562583317235958535481923387225840690727605454466434186590030068738554228376058906512560665338617724299166584383052096131470190671109465346470675844521513098966345768928918012729692822707233857579806835376882194024501801205904453821685958659151932633365004394610328196415716593547178965229494023562640935680996896978334983692962761822952456697596601647151606915237372073684419671336352550789764183823969028108894714823550885182638441951220711697524734220989772450051978871073947332198023361047372614414269299058814763446850528850914902725753768220542670831601357946512506792852869188025675488660006082818973487856014958243066240192670959780648135297388300617984591946404322479436480873501629284916754165545032172003152822225693643961702979672126978204940113147240041153134724946237008539334150421107306865769288594638785914157246807313968220318272770463092390315449141474923288022888998996326147512721028103964434018035573759005173192617038579816074465636219783554753659272242879092650355527452447198731163274540053661308979578215670036570704014487339639957218827462440895529910068745680553762536714041930588273226379660316906698671101509399002565803977852080224275224908115889451477677180653142179264300192666921096422545875890767824930632478256059172098015588912130211084763796354729408571321069524176476553576771975320428763702663415713015276274393697075776941970928749317024716355133762760002594565129944504148785809649702507031006653063634820784650565608182151363649040134790832145184331246918704944564357949922042032301735715640168174314868105403388057591569209898072550988136980227377344643234576794008484219044690228637855076823560295133771879708502377947131805984123060747191815168935805493090877825805602277142343185381505918095883837355845745357288147347259382915098729098395680389643166461413918009811651434689962726101798278371002385988718146380580031290501133368274405979622995755431657843090779654770534893208750263671088353595259156160708894222770050647538346286890016304866700426957325565055264389152458028068163921997568945127395723749733064767373794863167216166279927022769479507776515687748569748355131589231562738138249918272720421900378986161676571573870536777641005194971638127158391809004800096619462458141421581197603323479163805896927128890913024407872694657606753928476712205515996725152946566907380408099579621879287327242917429876849224954038091693284154512555352051848683459142728974600955298992455888106951156205568333773351784982118959566635500087108342793753059399377121007946473654113035649205703405942838706154653082914152629749293721295785547859156380484809733196993748858071244879229557303665167624976019780996730204671085075489734899966206927539940533615856087280923005214235727737103339920874293093872561237574885149181840685358734477059181888313089369615182482574883100408901658186225933685229273045331149936628066853505267015077830539242199234035515293733433983826386520693166297928512523378814292339679638458941937136724805347988872958031525109213585132914826816824857827532908487085082989465051933176131129681579902022725406210556961774588216234317914321598966977677090361242241734706471342020279456189456536521730037457972877810355716039090295015533148364098420581449357582170862626846091761711959306666875342404363778442038220052075084957505275068768348008749713310579567252545006741273741607786158547995539838514520003027725889362789552348658935589275768061228952396578853763276728058176861885308926001839960561515952920174175746584838466369389955582170569719015543320305136230512056391452440428568059976439525392127103266279121650055239294354529509968332677942914966620735325070787436536317156269741194159491116464949944529139259256184553963574374974748026057222839898812803794419965485532793167634334295727797144355094970915395550829886713632602895674768535713398291343797118880733410188109135211595288085110592493369267850783593823623612053186560849695542957747512778221340222828101158294662404511279047680179675450105344232741013153875928648554475221066908978589712793765394665857422849646270978470014449431867987464714411726333417955050529888316282864769428547658231178984997374327236505498116546628253212370855487635689961157107821219841524076778116592568787235555606823395342335465389991462239115288290050612332559339814988536342550542506960251930898342035018725289732732521321805718805311167430476352387439288406111881558860641918661151908694425707286515498528534645938221036123637413321459986075046812161025228392415922603335412055332512110975436034993879729676343320683680210139401201966084773551540668389872570310275913377190002279550070068212986101502701713771776012974776588248327214314490275179043767374413425946890636458446544245288665920753106513114310756406970966403966744066924799282396943324940943866939772574960018807014565170298497366762227384347852766651183379637321892268195124759395681497193256997594513624704573406399883566053415856183419916293345398271371342456517698752645188531792263404433746675751528838854058421698806594313534451564792229088845395849840937511289087051113239090755564706560337290614834051145076346430768612622627593058519859746723441640488391339444781526413953338691845721242214978066070327435267559940702591757565711436445429374498540880260059221637734164588308938479990626117567058288130723697053490942259884674518326544156924843549170701208022986412595577868630273602145912581271198037809984638592691205351854601419580749192062095923458209688342334530297849340390997778691061171499619562326448072252623351628601988770790121714676214400206981976532084193012132975631035427291403259542747993779004829890968692742308507884847706366062891652939857988313782169433473988233507505725301848614416801737088938913201837782150394514552014416394188264935876666946819997896586439026589539256053834411959522094972728800075203306270326659946425387509344093550026164578099574840077762997890903050419673434925606764584030239448843711859402681713983759962709370730001161885936455191118897496922273272637021727445612839909360312278380150598947002379433250801223228897310290859452794698043092235683046733823173013599354708419221242031140588342242457094456777530091527788383763652493112307102274505965786005709048668666625914007076652835038429906856478416821047006044312967846178219840293404375472842643429260814081990742060578391812719083713545747357234980127359410562731205916282374536819352340946523759514082300312700071549371662302404058366486495416439644609388449145713630449783417250607192071177080215234415375479612479023826750406727034591534204632430881526470546874118952964442991176611821755603293398301366096772473578925147642695526944726872116866295311152990888426355673814208286359254358320057894075451683632599916399411905538252026516215879551686327557548122261695182063792292692129956608396272541090556884853814839321116104741141946622837206922223298326614375748489025164526059662567874314797768509382068014108621280709424820987605648223426574547394968508118815992589500805951753716510920272072425174894068190474367648410113900032263401268162903153460090401818011126246013223494016663673960621563618774061470369093823112160180394169712611292639306711347666750282489638956953337197958423979976591962056514774326976246663322177798884196943197339833133508719444458214030713547897673069220074482771758967565911919814614976493740613447302785352524605852350426963241101920727682119513816203930711355767773560525539308434102934538399247801865902869465271879188744872125122196097589787288715719370947172441765132190282582397142382324124707267705840701527496156498908317372554955999640059068111603350259114414449811176790970195232375101745922983876393541969519411469547149608615623714009496603011743061162633266537168505530671956675652359310742378522660646169205805583590559348334402420788933111531092080027762599048372260379171648408348700717186076524920285700634366378409580954827762257131532400650673865150035025873364707991476105533507654839805828693577139373417403209756209461590425725373786948924760378434888777514010205579462817957474350498077776754199582563429906096484739840482132507279973085499713425750031609314091070509570070497168835551041555756303336289891396378735500241987063532790520947046460198710744786936658527680998325334177647650320986653658639233723286258957285414261910896120153010661187200729826376177501733341550267861812491504097286925667878340627307066933127508563006930937431294152081140192218856791898007750096052043634933037483981043810216410865396405173455789707454854714843935132311597490991336445875766447219835058775014911662299250403939221538030441411281220037811654553146541648932883346738016774078887026129310537274887103473820172251111953789351331537347962340188771109772040365779395867484006884205439439876950674506962284703587924568638456398567057716028525647488656710791053232450504373604481233534405204764319080382795548124746975723518183705416040446168121447115466420563448168998085413753104368356157467246853374404037665523653937032640944185676429122093203161918137466889795468457142303488202606137560690683386145705170128670759561090537482856135630152912295372649196146075195605733859114474065731349450280152703497629958345335997100428920177279601052472898017752407819151322235736525629781340062060038688006889418682672714789306007900183562174848133991706589396271941117599154429513658027753051244167630286243862304018974975417987923937991018063882173959613579710447379891582502854175333194134898478522412097244944757055027084903197610310930800265573365248871700816868623059441949622867981392175945752237923288764192254858520724708428409494462454368615600573257312288457271896986483451812165225028493149415784984791248156423707439277429633318893134034883727911071495207704979010194378779566785035598833378184365731444656927769257973138782231523695512042339273609528622816259425472498787472504422388722601983622423988258502227040009547861928906128526052955282495215232009755417140988156087813701878198512784868061706948697732212515264015284758557067311611431789384133227293871078344917300286076187931165301264435516019991470719343501903536120145433895395302979693381017324133528222802275294419449221016921115485268198868728489031260617987755108909231833928177948843879539343895146184244812817292520235293342834146622159121775181252250772753609487897792541411757730958594565684201209474973862073113049123385089502863030821916586085797967098119043341807576642107605837765685148379988496088029509418818884895235063728083294593569751772536697360007716210082405877289661055714838467521458016747903873727020755200219288780503569241956092508593815336892761570419578675577914506621561633310096957080949146548507653820374377160999651529917620416333643138832152942454796311196219524890579059724867258141241616261212512739595248196561035481504277931189747495837418354085906827507693712130774146029080130042620765816157724393067079899606113593411995716780844866681727118654783372531487309132694284244570825097799367316353432338615274801475453852998679133655091189011104221564091723701801761060264012053718325671791068736996945130040994562124898821198411728718733212169389079571074146141452606654133514409294787284530111997573381939030420361606236570779701689379702632535062390712584329354470036407326503791656538413641083391522537699828608416605876133628187315100780640399644052307241460975635085544030965170510574524303153810514908589346076951390450895144429439468223806741811913046587123558611715414077588631792747448800459962795006824343870530721540783293341530173379290524827120944037526311828003385118342094429418645850957468184516474239266603496865799647549584813048891526980139589460671007453321719050381921528045764363691168815965715175507461285623323400874444305417744416179408308136532040041330900145258065352173742786987027070767250771679080979081307567827716422401858783077817000352403597366063694259923993536485858547323701583408858571692059894194040118612014428999215334261906039995431893856669767059959395191011660555006807754649302783654431920636516044906172584716813218358854785137831888137291919008045773868316635161116167828341495813148017776029326420079198742799332467000583351309856276954670317831342735974951379596977488292665326366829834609350036749566949039890768504553107052771578263489184534471908512840834212451417835607175761427841862297084332075280336046295753159812283325774054168598402085560397561132671943203144806926118506207559790009993150960631028536091391657736409515036719718745148456083783654490965482618998943084413768333437140332723581323072458853894793567621282396372570690630422185259142328649084804894193954894313659801995771243548830830958353219554493763625565291702290156722757847628872257477256136923945591018765811015073979974393564324521477205678894180269071239225464488981522990679785041766227257494777673874494225275955695398376030647830897407832095211503957211572118164917271796576393965808070200663547660073794469315828253883291521619459650612175766315061079007861140158961139745063188737196762669391832367309973948359016961901927045384697244346014628659065624321621415160956889154503876044712522605238002381730937928977858725454212095472492080230086824822454145649493648399198818652746287076390914662360392005173538776380677051654900324155136306658970206582426715736154155437810181762352387464984978001586953633195785596284271025074282197459681603295848117699392262058184524847217399867649269339067404245061124342094067597023148938550922875192531817854415161720568852874338901759573312019911221222897135766756304799199185264494468126537301260294890997793478595282674858287124801463238509478108835376452053364679570389840287551135688241694073442526466036850355619507693407080374472990316314188293447507907419508898300971042405167620818159258389088987979315812781513886131334762726659204859987657325046384869989450533608748131769324098429450993995105768997320140055078065353790925751817763367149721119445177910151071934868014743395286532465646450305749956410933049196034952036407392881346054858861574672066216665898576676028705063739187910940889370916759980572070688965029400621715427336556208601715688612386134346474010439898686188997784427209621250689352036533502280148782982683729975583242366558268931030086993598254865708827035953380050710016053565136446287167689712749460612957646479420855743442642797195155521470786404469967111265973316566252630793195378095735263911916807658617668309924983215455634553789672826990321530381447988135151929453172313166200201001932142370813774686132614633170733826469610104892290272270051902734552826564463037581439354693107273452763318862103720874006544594113699209433132300811165343517948513445069507360927212140040713346358162012235838123373634062079400376748313945549281217252344153764251132525873406544384937780589777384379008551321088711804600019804599358721672840579341125770921482822560296005350909391880276010225122706789119339104203098993868763859740232111357800881781386442004190890952455995024530729414714796721209463266816166648777869834104808488202263015999342894667760224279156407549253982643353461954558945241143938557002530517021623624476928739555636003349028382256136065889705114795382327174216492197247389322042237441064662708047770535878021754429541461343131049203236763822581784255916655663676499254705779265555464428143467098883570040816756509402115976591517171689165403949980629014078694486857242315329748858722663575063760029419589753753588738476086947241282910533809228124872083991732622155587488930756565361505599591973885679493294382416909136495999199757598759877122838865006502954445784003760112493637387182167108861983716345011079995062314199299105748815711811344437806340356155020596580441095096312370993665357881544979138127763473749661783330800146227369540082294462709785982681534465647122628692957930994822552541779092087892742733254217145914349284929423881366407896390731744375068453798583813308407071225214755337774856396857726413122438033779315792855064962751865634610472070670655279718106077605180977438895002994051037459104043210040055140443045148332374383027960187201622943591391544586762101426455029936812380229078133888619397423342787719430454511038538466429315616137471866338894215575336634399764233651215039527760200267957599988376129581113268926535819819765862809401359893623333220825102386669401949154593312887932190660665916306614942294968821629969807138983485707997710600095424341296766980370728134727422317557851489145901345980299198076672006951367276306526409524252453328126057625776747644325570214987419159379723652257079682277345598874160503265740479148221280089578597776099209619027851927639985921063828347148190874055306284518027690004723574664928373773670524898287279677615482644538557007002226755788192153854281428270845962400754042203086409331627913356629751332734459802418256994889208631520781769694178825071452589793705640192072060329031787061939448036816268906254411388341984386815833012431365827519982140559200302719457908467078705890584759964398190292521962099191753573326386932688002974123229885093839956779449445927446745236966137169742923204969290816962200832084288847352631690527830046213004597373708591547725949465871028439770405843672042573040637327121512246362452417115745426415628002391446408517087250721498434072031167398902483632618101546752398236033636983952694273625470175544724746384137422491176680437888058529755999253783443369488969598437184375845470079671476382872380284322153788918109107474933764831218554662074253506053254985506519563405835270429589542775677455032119378012760090290694739398895648417922813672003010278694216143012212192960121463581884911888976180980414560620646228601998135475196520180009479989756372019987427435372874631093881312003735689444548656792492962758017502678692154526281781253994175249761111999122056240656423146624597063249190878712168448486475783904299361834031446027712522270313486921058165608891492501199878169231189698782108964085776991851109139726550485568634807778410958860032406354558327624825692816633925183741139427832219633258542763922987997362456901799920570408320502202476983113342733118402064282935982300808335604822041761119416269097180158032159150659472068378492259764623774794573359719505150271051561342113234803823249145007217126680357245653460966449703613311071805461539967154069460299738854795587308512960344900844712142148547911641384276382919852631017575391884784196424955009177530709064780770208576192778537960248038836230548735492049749445518429956617333040058588243121353723163458044489923142656342650763578841057345312012451154985068935905787033908207419669968141189640219238186743503801657866405095940571873507531170869031823058334581149293406696084167457652606751323252261903550802640151308766543162219819037785045927415008516505928786803453151554014009522934762067069587603343641305868897273168901242003701271642497622699555313164600072678389365744570145977197755120562378381156094612463333582095554467776456231777816680487299098402874536093038030812321325236587471743814776177993230281256109258432503333633600768404832360522777023032160198549112719016571181670710523646725596895399499696007270841024451042595229994916219356902251727341304766266593163836370923530775176402990695300397293468861558203512501082300608213795967995439806606368104951024287246735138830047119070853848551176671717090706235157780317325047444382666082860666174774230582123021724681622803500108671165411477018225627365470404697718158840907264244339223937010701527907468242052166283578422421875510414144959344163780210084444520225774135112450253279251447890186714690552571914100066330511007945938933886478691691547109478031113677170488942821244848605524360136403843814285342753479230234595427963202546367567881155520941056052301375733823480627591396018417927574788725630595222692467541558231047377915386676602429988116722910880108282507492250248408780073081572091646820286867732892153178692796706062399183335651802898794340977190639448981908735717332571430614625129775198895297678730433367536073330841247885921594055780621663532876545443538499527696475545462354498806370753067174736385045694482157758922705314051791303894427739780325735222105814586133784918222947770025400372756242752497449839982557885752193082739705549174209915887059582773672464514609527944237331776991095484207272882893783203607617077530449793520700913577031872548983442809968640802335900273261376866121224065444643753526671882173813412784404457201578027556438148779503796751967950592979380078724210551636675023918597320309525910717784529515429766761909078084614992922475418758957013364801091912367551696269873589860562682847287876627552412690937601660634232041088206485180474786913627165739093008449071222432716697983561752577040923848373610574882273813968803549967689402936982400784144860738848836423202620393580407487762768402129497825683208805391830643313487603636688896516058961826980576938179551817009595485562125263800488498203222718156867012266770482203587847037701823111893386000985862881575016676897579795717831088251397877390126465652892892288961727788508183442438965010438661794921460424231248988729707954218183888336126783622573458362969663623158887436208273419807638717304931130185533531022594560256909607746692200949834178061061337835803158274695721747931966407381507431481664949345305822703923783840835609184000553812032957940710232158659683198311642438911442390031405276722196921711583114352793552414406017518538842949252349030834856438222731936783201961302274678567524107680522743455068816525689285952888887784021585803758837308899984468255005281928948234839108899899285080636503045269688635318704473645169688681048564612385417568017824656268994127123921010411644245124338459589662638298717605769254063548327736178820121321014522419106097171891335150478342825367866467508159973619550857696379057837930669169877742625805229266953793661569453403862792354816145526794489633985788790944537033434254148957188779538314284575219205996178602297359721624090407766335409460009203761561235078531963068264093398205860861589020452157950159861733836093936890249375365130597696073087304309353244544444757648442772926812678955534209316011081523178946272206392587199084216647471259396173338951500459336602835582864950556668792291814121299468542890631033669536940982453362019712196190220241812565752159325797110102499746030849880924558914884493928162831068105636798156794840942935926358707472687206735228368863545726117317309576924927670721701705141460938156838048288647646968641000287738867875939122686077320389933160315396560895803688673560290742456675769079707328059893877271407057418685021012099500917174967212100731606844524213252861593302324126438876017831069973258779111699007393720629884757643337897485874904242815480190883508940542450412819974856646722299692348565066825223858009421537826434396749216572723648673253803659871390432154685932121963617171529800422834336651423411573529524818611460882131071123638795191892682985956732293883123713361913679516015329321061024852166857638848780741163026629954543552015796859233883294292884011122920388823664608175919267708768407240371170317790265704913872556213293776279587808821671364581461563668547597597076896644250688159361927177161874200594537639678113043795141227561414341483130171000635742084716181762620088172700896496486418434135846710479341159269811667957429932656033806457270479068957400034120537552527137740290857980965125873259120348571017586875272987041960854239421008712385598442659017738872596231813565493629989503337710685286014512490561925605947741126087102215800268131488278896031587253215971167311873022573185691718066151400853241181907395667681851067198703970710261963368570202118564584422915687097522175829363143496648240120333913232100897415530459838300088596405663425160319306283199582567772791488502832171848294511784506441052554575152656891212443190419967051162732352480556336412431038484825850314145586383022097651168838080152721827890725212584203970273032569187955601335597293685395367366110873350101171317738538749039600694980001009850206449340448245844142765948063400716516026217319998813917965030284455323522696390559078628462585078337192860211311435264478507150973611309567332703838764749075872622790281064238980109570923677978282413628531846348186181294894821042106501574735834709108715196872924097603975900954817357975759455296659297497612538458930139511111170985827791305759039248314110215318647638949087866149911881285396426953790708571335145261004959575563368657643667861786671072697287562573984764827440065584945240465477300626697887238670539551203026464953364767687555315526155999074356060479391646699666583035897874681727831587769091004435188302530007936071934736261781987375500929284643949289571816258191256125086789383611531280806035452364131511326829805865620979101003854063928661121771942504856662452776010621263853800568408833158374540754432751286362215840390496318096415793109590767400779737624049168820929829269011268620581294391511425304150910621200179457746433879035700415585118030131542783335701147062534233969864400392690468619079218997728212244036426903255508500732859957725811360829366093538482852696633702125654276144928264752454501757420963995043611648732481807771111494666395061163518947544624113314327126768239590400101435821390942285146258277946807069908419567410563597663443455107037450933778097581720685802738606339663478496300762776199673017342344805356226230266545410946443807671030028985177476927336161526581769463159527999495590296343447290368462608369330210857160798411182576463396657779078047662628388450556688797600227395457283656865426666865299271514868879168051874482617479015540580558466845024766751043603650648446060265881291677578282270502484434617186965962898743689730287587451113599819132234453493118643435541825759629493802210652325704222627446793126271573893997170504694566323698914643032452096433227347893309150874442741507181152660193349566390657092519969178204623783450326675885038312765893660921945726274373391542734698957265596183222355081605468193649241832591159608060518708842393236935147923092204602142031525369413000475956405118807419047377287714081168188537277474378062644538459505571571075705892227903459409875942506943536091925476882072238887320016597595667140655166691087920452304208763904818281139675633077643195704700342600832300395100507786257045136787910549476857304146390521577443411271904334604834169279279219783002320244732417400504620130608072381883369778097362332950633195189325701689239201737228486947625868543179259559229302480394781556461087469983669193490428959743584611037912048908034265608772703843528422072794480183855541352114803929139444960056130037816939482159398270156972006549301207471652677492929723837115228681680936064310476910347873629575862677039038306589675388880359881372022837934859251453025438246764531358610780622260870917279205267452132308708051086163317023641652923217370113739172968479197036430533383404588540372234535938150236968824295114680630653101125769850890803932669641720650857777286810172054400824576810778675755939654566944460465302680577938617683388494768145617503003326054512478728508469607524216377624635992781822134707482605163356807978142785475193378386974817213797661120265017358028819117096846259368768493647831271985750293846336072791242890427833615032797535079608204338694156594100727608316333586438842445241293997266063817912219572397458354694031250096948206420570706898656712315644383738455167907157351128875874402140325270513289779579970724509747610620766245908544367709332164755526273864756251011447663741762281364962094227645863261381996132662955724963537535713369945259554432296137736148334869988767184464023866567259669373312933905847117924311453957580759011007388842340260571192086849987182997523008747617578281085822655801752378773852634116400114842851737975463367749382692322557175855454773064216428391340412372575671898750786693460130981995110802161156876104856868336726709318778079420733740781147234224024647007160044454058819578389416939942103150498068665726580186986299360971785051222311990745652564513135196269252538016104348534161302670739920727610759289976046922379649302111835739133271584228160259732965699166489181868637637957187978700005033969752693186828731830270439065610178468431979787851721308682248607285076858979264770135279114239360583285399252560866313524417151049155425490112273767261882042589258308953725310326916929261697151253437643339270869494174638213588873491191892975382930892641777846951638328113724228105457372679772461347801092423042593930049122006784095237282843622723980247806200842638773026385199218637985629175038627168875573264401516542549778327764991438383047504004415673313540681039374773495558859192794802663394442475859309064433927466537573742882256159856029899905224443076191349875761579065787000689169683993208563189100869094596150049685244430837163600652708558270686436793947295622971381058384195667458806394214065898236099799858182356422298178739965265066655077747465431669087423304089544293763365783512269540516163398504307165095634786411141263821551598847513523500373250825354736335792474509151680225602491930464090608774504190119313562723570353191709175085241576753628694084855255102716968661934247182125189431506183524511884266394503703135147746868482669425996457482570704729722868514327511018784843044570576316421148716806643869009672191121371761503653665458664452620763826343044522292165963606400464372009121880618292764177769249122424302289450741111882752353237135310537307551869103197828630860310904221892441524337448613025465574077859367606287664747217215857533734420100477160846130092156537353908351578232635076833855725571803976356138137762826543047609917451627593118246597133519321814965786417399365281237429574016815730278795526547363649228621930879855444659947263773897243027085481060917910643809813671142532967305043229394296639276396542341667162853433837476876643779080221526357567258220388669218097302704832797489156305038128505820103710946012936016869500271134870232477448477974744966226361981371301105761137316116390760083869716403701616590721989031057628273115800398146764586776379752302410846189903665818600972576549870731951760059628294645170874818692982629252919422202359822529432261049063594917442948975311039741030312802932717227149590445473082230788730275720318730443314602770228278462467860908410210291463481849817028925736061811631157485189228180017295520564266935953347152033559039011495448669178240633010150863490446473310891116155460845156224194632030529125437057936409902119667197219121345833394072067648000054703596947180702459625158235790810334579003781714076708894339068435161353207875402085684356941245123922870149676462848354613622440104229333254184387319435942902684780849473720062570355114770230168974928159021511702621588952211244233519813460180811517376555120706957067722743752630913127330394690716829546544188964860031049347911346873982428518742372738931668072706094669518338860904878933037975010356634251329744809688341081038743409655790066328425754029112138923681713603082316147316008382413233876190475332737051401181779379694546144679101586762895916364865486975396131836829754679220656086316544502128964038099622565428042542870767840136731377586824735217120337372629903141472067461950072101230142217942902165009433405985097731359285961795138942869185249673151982924790834414784877371798946618070009275267741770474537366196550758607374074295559196476673043952257685283281001503572226123111619515251059100002329605294349909817574552312158886135166227311322455014466610341016081321722169612640726598235065860776120059021182083785015638635498676194417079689865548386385048520396463776370523817126292655263882838817264611891646414271931804508486452869446980481989955969484992182607976579649199748959386682980597352050701472732506734989495690221901005285804279498086927082624613100531114699838291297633587196625780733214266458734377504594912984913227517448889829412897809240837983553157652757605396244835353107928014028520948309688557038694420527726795038876155485990729419466586029728862963701735539651789176559559157305685856428582975872613535433211027602553414711587067851622194521386892580527538177635733289481632113896818649342987931650456895656440022716767434836095982970824791762234595102491340027595909674926055032180328074426283812973930275261305770474410274458675096987445119278409021601468814424278063576398690155125611920910722365168179587038212223371472088708263883530216271094674163154290837873638885432633994294661567823733687034490151292559627042113514678013111537179999580015177232998218295111557615589672845381058331111830135280795741403708685528668729137277556469978919485314029436237896659350817025353724662787936417944421248679536559794266903349636418461608542533399841815306709550917494260010331148470116832117082226769185980850884854381081699707278016465888304420583218797440899561285434598595709843817530120855503562074929721650817676610283661488291237641836350499905822469962153567145663782265336073673334309685457365558913868777066502807244089570315548802630915614622544978695333862103441966740997136063147737182140595365705914750489144771377071643455606925728341151126595390597077967879372401417006239455670834557313857214427035518665256379508698425421653695024109225578312876197172821686805887023014961622389307135057438883628867916341072817674438804455629041457388332525419692151673877027944896288082481329103277488134083970077896315360415003307045182042194432876440265514385975276289719587410040898160290860464934646750378812112136843008071659104899110896996238054066698545018751408940794357780785911757135174501849486540725564695154884151787946013426185454398806769669854810366423493307322787769818819617851780086010872064441177632164442202735815339052984202184246481763743031577496771591554922646385807620981757264653389409690891857469191562403649902951288021939872318547352612998788267862383499245074928164177132803210602366730017513929454324916387257303211171180199927189256519480645337562777442533716458976631202506127791248804317935089176411807381231253803915345077518435526250565296707068797256087063887443437368271530443080205703769851901929324583721923580069612813171846639369040726884056114130461210927454489589810835688870774275418131541866671035524750793421335583307109913688066181000822247028169793643132055814323932300220356007734532026442063919802076330969011823060949842204210897009706405112438868971641025641963676454360604787562628233879663017100132274019054430099741078899274624359803499739871233880086230241827529369138428077452625822112327624862493693801790182063674082784567914381715290532531489662983732236070558733094735836693302995949617177104820915742631174678199723307464747007391642997459465993542727056240544710228350658230454003597166380880293361881682891768342148562941476508174033235076910128322010876634138946860539936556377389459783953894983505527321502826406139574653647836327320596561456763619953255594543631972650581234589796186143487987043496286597343844875782434987359346592827465361305561766566378436904884511048226391084402241746439820539601877827749578417500988959501550458490463228348445056639961500830185381621284209821243207769008418375796685449851531156890920189470575131313186856455214029586421772042586670763149152805398984376699991743117686911850252158039502130385045076443263451609885147641050236067384106423982762697873545493750479388010675595721649535289879218745171121525689589254942745588417884829647562369879819129911841860293355541970858530080582044701248399069802349875669240753449305452573991604984352581271184219909018418874828692592937469456626503105663501731245654671957789233561632401920686314365422578481931888291425999192863359443844039317900292260017641055504488734878818497455254905828705439810966612858587168564290659755020847103127836464093004144456327483752284969606532796531567782988999683806032821018941819175348684820240132564023731498762032606661934439303144775264206250205694911885293921363962147665846329832630126778193906174169573279162319214232094691503528451011609398268626899084034154373653768858130623986528366002311226110891788192252537348904585817255082911493631331003993802461847387929258289646714328346692535546839510079403027948505010657091755022492411319260922781271511154796887556716358365136654985642242799158999139674923936711931357588741684495816924687766096464513099902799047894969184654717698999945362980196173652525652338888288382964105078359812103936201529264764949139967021552968164912581100241477563902805036727253275485345723625675330015039991971034442139024947403696376819560066208991668770831972252087114676857891794970902282204578928873799124415052635279247294172191939900325310912897449536255802092035871130463086752919728503672757729752496467450296580055436379608350811463341606944229633000524566949498284592291250647960619628508826108908526154159976085382823189800472589925253726853021154259585559827807778060902379536050917172712558489267311219806989846397362720071959065902723172858560548122798461271862630995458052003254063045463631923700081076682736786357920017440003403433201348849165455102997101992597751851893974949544630870911898826362172381857854655841649288641869091718240404628124362401589078474190432168251362873882631501945063121935575619363271929991669655905325807259795255028747486937051562078425735409292310214448837739406828421683564878566386211293890929655513594082117334936902862397413839167297258399206401572065655580170678811529883357902961106820579731798809669319753334148722095713560288950198512610523428375128866563575794919854532664367653299576089978859256790359275343376885694087337076329011091824140288368771744301775130387587427421601175842039999456925506117372107843808257392876636222513069400426552047117016131776355822180100794847823462275132981653008899390741271516304922818794571235044699030500416568935850896665943980750684323987307255410922896957183004214367160129246230639495463203772396073660470892255628861838851220672140486895135013802530261151752535946080923699956353862054524269544644492126847011815074724806590917752596305773615436882163659826406996543932688827668987380322778295598456856526483631390965444116658657015562403660155118136119519333866670362559077372681848763521033286925885827900781629167823824755214705500257117553634559711380852801354350865589974510946859061315602342823302718874245483026443321163818460656079893944074893095463634193638094238757377888263460760248545867410625798585854329972730449452403637191092106498477453494466552774952032533820668617823371684887863484609012358250720135104775222939566247016813119240491257356026217844738904341037849603571896912314811769117155354484227542390960946793896306133427462873529816953994903710019342135457584547602920817026008123903055609972363133562671441461540003260749021661245144005054348808279767857603820131045217938787640170472615125240715986446756913080662501896773789884423653621210275198097176489086414337695616016406372878120180751262737959927463792130506658033272672080421188798123636247982513986536082278644749104131878594506619866683613040722288526851046636183996247071439198997965181218753789621416773291271955196567987733300853238439443944859802913412310734526181609892008487566382900396551282602901064705125845561997595140277234109608725213764507627086636624484121008606457319154610949004112060056558966755606583220800834264115023859418342721785155108037165962732487830523799214912071355151771925213317670407179075041198716759097777471960758493266285482511705523934641129603867552481545017394391184743466355597583435571385681222598637078878322821680963153824364839659054880683821926302301650425511410926697334083754520999775936181695791314065839132001325126730110555364450525724215748932217007283292724365528438686867216621273499760026148192065254293256160968736726159981746131184995194560677266295400980587023839850489374399337926944252637630162994832038186521985996679125054720260146746786780433221467970325760889242010662814244729519575557875300860316170722861159000002654033695438604125597803126942505454933027037839675464331412813622341465123280754645382622295691739804691107669078452196223765809726884426137927987470894573342439008038201385583069109423763180620307342473446215891049614976349518261129887700040569128243721121835294007380086228913137505217902575266721312276560673233581031143922781297197153401944423185166888798370345069568897554522959889478019561785156311404645756149163157268864504768888558639262894854807401102947892899774688015166574540136625837247078203538775832748953629134044460420432753253563750738223329516370771761281982488676533795672232255460329628483091957155651401466748311200810362530669537791498384847286205933394957173679225716224535480116240553069955254604937975599415862581288054447695906886370811521267319980729932531640961886583247337876799158613878505773576120665090261676304051062543641737727468758673550077636247696851113652390446033601343585347666535394305162186532644159321592156943854678924690264822284950331149587233539831529333387906041324197227546814551900064652121558705573915356031723524650397043387608557727706312780413034502196570256957722014857975460803609356393985598943826859476921311872245217617648613452373476162943279988242059755796897997953162949081892246657416556129786772915245305384779415950957746481025801763113535574268969759216601158143481596369818927056660664609070969892116164673775235938830937611975117925386559843487634495841965834591487615014530807758962572331475968236933354192393830331197748091128144599933893997094766186122478712410093550435201604526307346685957405359020619157134526756007919875407759240723855806884232184102247287438898244133498360151131076894203420054644959829077378148725026518455855286321189663253327699193107745991253824800521252346595314868263257742839340362705672451912353666150889912993717121394832299890638539066404025868003378962264086600531358658318164527335905485367210930591026249105653705497799390854118398649970683289696358076322634701066875145978496816037362520211014884917425981517810817222089352772440755050208387362267129608158293159604813359272994728621572647460056179141230229079288453983803370850259562136911246770783290890120478291557378700064805965534125374140403409135869972292486110895177051258061572158916067030337054566596368869758917188772304913707553347844673783326860155095636660763541561233656968329236224157661072003417281814213576957542305782337040811726175448760001498188662634037001844663027212448724822999600268491510946849119115211266076156849501570598720577313902635602212525319175990380058687557916536816292079407560605366052888877538320796405468468386706752182619021266425835241883018482688183699321572516461603638815333152048695186757057915939979384522975465036307249980013021487947650259175014186823421742290310623393862544198857847608742243138478431062316343272993710209021798627726918188505144344380545226575037063164832549920348833964025193367070429906766840349784987303385550114230675556798884789250163778014471523858760470677282377415148023413646805597082410523003587945585028136497278197735991959661178690323314283153125248998018679606930544570914986673191369231734724492785969441187746653968070201276756331251778144363247355682081788195720955745702547089926748303677142247884651656283663115515128634184471135429654362762124997118427178223778340343046800474591335519712054795322998435907664686554951577906636162733688197917932111466492779051910670953473509844107210108026608470732042483580375433886917610752099839199483937953435819341173738716188481606271462031608862538530819797722676903976121956364376977192614821302872560045950006738155736238937684242794489570335493485407084961153457821348318195382622614538425581509133001718059685544850690124819635075525788885940106503181113800044251461343341302143460165166258977256515945078349783347833091506865388218554899644774692349409269606275654008252997198718326969888858153324855006114165207067660930545649205915503623847674632024265919162341686645677839429033887717371538446510220884427987814549958161946855377485444396268015379013676794213879151727711202896121832787753797517655889736411735770885187945911194454712152807880160253949960245873668817209156038648986729618780927749994329519285233262494220303765402722410030994933896519204278829718167760354103159249830627208293729320956339070716939560759278724694782699375287744678009273557669065501691621471632602396397934918285311881423601484502873518037879358790993920371140183539231671822998260998790800430238035828396797844981697552820444143579049536677471295854070929127744343238484834123598988264902269966562014959686212593407399636964308720012746878512564408645086501431265449788731795013047001177728806320238708992077690050959203215243163996230024695979734940359426213460069570338021834980486901634026801233711583951958536669924822951041898949825391782863544773409215911034174504112701572994607910542641930084056992839746879809286446815954737050231462473384856903222304417592039165912487260665512157591051017978775926494518603706528975711555316691879477275447120491363641058089697670848562020476522054787268358738338571828649084530351522559088941961241553902389552966918876922673789582465796464574196155893406047276994289697499840498022617792587536927179629262935005415394799927995273655411802797246030119418100510231877482986501940535234819942243883724717305571196797826315343066251248138665871617509225322183207367831652906891329989695472539063397674791704562424881487123435546759630419237498732743765381296157755831269928557688824629909298279496779202437946129246736983409380129035401173763749845759625883550974679531787095477946422061624362837843815782235625917440782367702843238613436462706252904068451717944348446570272396083267541882744729075960402587145836473799538225066246750496161680084353992773757094454515526140402195537643105404554424229523322099865172085274372765771614864048840400888028863197302544670763011625937885401702879470225102786972202241813841388538492630169027467458715157888394244122541913807516696271591822219021406809682268950225145947105845927180459681091297140412073381468204479250930842473388977272612259808570381014038896042077164068516999041814859100389591783598359943974849539382238553773243488086990461650242832808221883827572941053602009889567044686730194004906761084204803830498353904019867664279851993879841375460134872340132575853120639999452941214944095518698487010953241972530281238210356814304747672602538236514424781514832685829632798388522598395438380791877429119911268806735234632542843445050597245563165799977418735190017994531668754645923905120324763514000378016337871373217010760020565352242367834086835501946310861510258047564596457862216006287126705451825869925880971571652985887503958844774727169779567327106661938164801889165709539732160002117621816211623694652128151286703728950681098534667451078771318092033708012024400423069201238387242521691930806234743351702753921351903779433949035427247634216849018965941620919762546899959227211954066665233381614548688188886346254338494637118481395765273097620686137414039986688074313002658835919712193061881119639868670707303902602662982443833001506535549664705076328271927353904190790514587982089294694884020265368535810236815475634599592583276981304288919138257641962651905489867672949689969371395280194829088725178711510957666333943328581897798134803707434203204832297314284930489372710619411962944132695710443968044269651019919941958736497549370258268340584703035618407057123834069825600911178074933511935855709230480460223220867173248871761903387680254148989189173127190204285410954778174187821287408642739740304970035219036299887753982374403291166160351951041108631176890515200379488140161449314659205884060375891198676419702557075175342783288172839274272307442215830698260978633829389166351873744581715774377060639372109390513545963827082315530628794217910006117878097010254463631713189824881854496803341244647673285850559904136750899052158143705797190386192251061850206865336136637065903713022215920337911460875637611813150231208239234419541348978258711974688266265866358935575317687662000839583463906063104664854239598499455950717694010065584746000030327947291926371120789073809049933649551973077724126909789426230947147009997510834961503475019023075495920432292223355058097770138199907212988143100038612042786430959550110147503472685452537717513115006909957503695602226657903337345391865119882844571102887531927488886047846998468780415029256082830879375045617531269690299012279369606277043310133865165613599635951135230061568587523618103625398680130891262606944271164712751129011877273279865677318806506913222681214115210198468070481598388890205949348516280045975574494266136293398494962344200354368739494557083273734980718525797766484369381628692967840539946142962456050482379592980227890823108977453569429080016593486929790749844351684835684019834904346202207484882887689420048616585460833238182839467412277373764412664683958468893517808026878238970188612277417751699574289657622475494188800485867892037860815464729055420369845429322421849504362702946417447917905340102718204337061967955131143483742873161563770719623781981482845802074065641136772209891125840034078444969140698007117092317395381357556091628213372226603974961830738572666119832952004519048191086952436289667190542220351859078767335215859444768865950998358179534071721936212699607418038997616697439090175140952602417818510257857602694152945627679127916187810047180311446771583063733190295305591143951839714324282752435347027881649805732221910891057128030179809789878119756020393400396309781703442917698636861300475216455379004695818277552777591054990773335635640654061672491265407612744175216082254967382852717678072642270563601844668919812137247043976065609964515364603785363739129267165387470621794515174409375463793139619068555207634420348450870667875582423439581548503033287753926010687541662157580660806093984543812100022938297452891706235675332865494812229539967025143799036498651766284459097503394966475218677631978505852818230271550685133490925287020820612994264635233693393025192686595132597056047306414753922435468904274217108175619977229462249667910858447235137800036647754919047387276544444382161500647462069472496645549403465109327586750149357873313926888883095818960500015728228080454484341265151604937112145586673816843519080792311644711662898886578263811391576648410372206335341641688483252408263974195130579027582457494658429015751864148124492550537564452407188887668202662757311991084435615790983766041626619092663304164794396635091131357292903107851307823309482830284064023051659191996723582901960904327750442940542819494822946326612915108165392599768039381229897343112503122309895716557064184815453659716825337634135915203218855456880890992357432493780514853327057152569060490837974994351682308913123839819034477643008006463747621217136323741419101742727675220021620612175808229195813985121240878263126579216990536948676775667288639198457186776902690231091469589772517277819993747744755215177045583167399339959139092695263837381774407772374460168943296833669331439868629431687642449849650631212511655194932810539927815905520214068915797528117037316691747677320639053514015133550192605944541718738008553098061214358094516844419346327444895470411234481733277232618551654184628434934964042810155476667653343197529904104491360804476229496586344467771303694554953639663434187272549690063984044424168618296823248612897192289052948537664192401139396142004600559751872710430072487510689839785544031379121664674604844821169611401439621472063853513964677351291705357547414306822543448742713147263159293580349931774444173479627026887507594389691141976897564105927614375856795845631651819234387286843044877858051145795226093785965586971138645662400891187934886725459358232691466280491445336264163244133921460721614883046857604150038045306936900963769453444194234828857033227685172960621608378976413961603962535588276717972337268995423028282614107865215913797695582672935375887093666655625421886631713099110862374121142371246192035064045304869525688117176121902637865044851972138196311756220931595882402844389403243194438944937853870843749381767408767372908711429677539202295428589620041116326476871930695262300797358282947548242974321818647758606894854613221166883299859967954764569173928711317382983248406928743897027040510103011252089233359287458823981994978318281151436407512994202480482651719173443480989276211061896843429592396265324067470358844996908835343895326436721343953259172572521320425803385640252711258669292395706087252073153776981591064583752634670918046243862714838485707187738840232519849341123621974986250503081899594735372427544447799929655414530470815978278728199136226719764456506618497127562281010959830403952688572907879292982919066597961150038045120575304222369233847154580665683034876917987331812059796300711819994368497243629834211559416314178039250844857977593360104820910646332849884360075816666745053730974857822685188210791996947600500030940576936940587975316732535163117618209971180120974177689872786442624080421627581541059046471168111983260948718563659958048824335734732230967029663432742495140871992969598875796123561012887009688055600134895076757992607710693660499646019619435830010456012569774167752502382423381697460052952923984370962905946444073412150813105909063863153033227358131412741104091828356577514902978826622699302537416793619547175250648846395404525829780130619621053466955005554500105679620246224523237106626436639183138062445248084669948350005749015510690695772620907166576222175266476430544692131343363308470016692584272626733319807707371319578608147196103745712640778277232579299281191810525351530468885716162074561914302805612974752697917648910905975486416707676082355814790519103361900086473009950786356037402296763810903825764370257455346498458766857458669462999456593981725100796172048145824932486842712703963395428202414651208637792000665180724827527312404877417070715347247378942367975697223158677856243463394654011061376886741483217070028888154289525809617919906209359561918592176367406883636124840699286130040767349266183374514744542274130610634718281569661264879684941067392514028913091303917218018464286008204136554455444190723788324629377103206125313217248279652664252841339086787384373483135589211838867842503940121853785740095473481654211323402879463372526119292735870190887289862807851259422242757411073810719753439019208190637228147006827074482257354960665464438542915469130005957920822761731189017246469971186976990460115914214727127735233477261343318520744083750659344123390416176438662395475424092717265067176765101186238402896970099252198695686074500774095471858867499769652951263499056541870532658381101165430845538214492871442991681369939516841729194546101913292386280003160196689248929902597120155235782315489159328946019618364068039549144452402944301892177406028691050086451490247011197615905677931955818448146236364482675151041966961418120621118402788881016522136495772091412245269490549063890903921764963314115479302657440360835844472455181570459433812497925789236186066728807059742025550771339763470691729530027817018501075163882327522444718081349156678219704051959886815742685522112795501376912783607861261693357931196038002364725393369171823379433904933292309420819120082075642163452831919802096427800873509719423264285356584120648336825532859677634149663660400579901022987365173269250350525520335992886764607139388817995362252374820050353786841205711415580286157389106630142132691360596573513922343036486803892148253293462326567485501782520167956055323163756009334487490411861437190200438318700644614514665385102525923710911385959790873442745462049383868580995979756578466306182877421907244655187306873490312706985785571822132975543938623036544970416506474355019400963997521390889085257670812147031553110036467379858232151724154241126134503306867334268719956148252631733220076103028675905962614326147360385803809069704839386806188804267785478079603227935672043622012055994947292750439852896009982627154163121366617697784966794412178015513727711942181538811516451816591176026222309265162162564250320596140970224736120243372251747718569345301142161866217975771850074482008449965183857092418630787480741173549422874046373266852770975231779255057645452360048463956479489364887644310030249109409702604452647255370887902616981785350195626854300717850092509928363555651320244308339752865744906570579444209748706718858580699631419911518377135642667122665369296403032906461483285563882739546729012196549835225321358360418330239590945522214812318518284026107851629784749482688641430140953725933583934053958871942437216955670716998469935590161916583713574356764754101914715621521583733926771017565560613980487342361373227905715130267962828984991829825258773376728927046513190996777079936164008796774992595402856813598414609350004082224982826221064459393696913586573549116018674839461515282666030251351681630298685354263024674205603976593210836156406849802166661362478218933125974957332363858273144966042917189039742328182548625273477966270968505257512469034314121656622656948313664140264077920079763805966855990412861992278582310781769115698247281817553735895393297175495822841184266209388950387642538786437351294252087306787612741269471032389120507761527715663544825221937984926898345414338047139590241544733485878836217453801312093783368166676452384710327273946321953414756228956192407342845556970729413082813958796094903214969441508915240983539388779152156419982459018835908584786194455195830819790750413649373651531566709377425107567922166008138018126898440365839917444685930766259925097777924408545159354621101120271733066219813735582627298615360338628679393780400402729447912695371391620438240582777113165376025976376507795280895938804947435251204709075031720700488243794494246465329533812292039307157641384981465471695064252725843689883952600452555148265398422364886874744623573509364508673009998367995735516819449558825485693356835328906601723796586131020108758646232622743219480223056862365439194231286453353590335466581002896337557807266679497785610471144412797068659537951200719827686353792171673838131652487392817563704722004720442986408645897480803635178836532646461033000057150241223491323485420080086194968385815801324209591714367250411529148035527596479719105731916239193126270682003020655499298184093626186275851944487048827537776140964077865558331513868982038679705626525194772964818576003797335923572216513552520739060651268001746731193645605929134448135955066634360959168332448580578483447010869441662408852867165538510656033083469735692535814400544605801232602480444460705685718843196724713392710504544667385151851578811034394348388757922499828864551592005459578952859380800838534633027819063804851912687849099898822147579484675328720834416520924196690360566748334442877057502575988587493090081264676332853901555403117468455231947837804450968664216651226161657478735070262993168137989171770231530611718987717403673206090287657937429581902960510415471744959277786028295505809028570771827398333096350882534701116144324510999787776119419843707847086811268323951999998477059631784857492651765989647247158243771743788038728687812241419291649607016377831064833930051654798390220974237835757504434800537513212577609746568549110191877271003981369818828943191158064208373194972418746681299880607817624650503439381208997019505752334495351186882563583514916502368918221767861368063127649353990309434482774220004358885315848554405068377174683986194434690403528303255371579977556296068915855439616532166912959690320660986117778541237416221124798526315405096688436701257164045107876994976202397691424175107522784672840779078685029855222629917570361837279429756604327279726053017993812563124226006132485536317733108375676305749453800780333431527760512960494790640415759433231761247076579283993318067321853394504633983734465285188954752198827610639687464368732703897845733515044533252606323685624644589729992970471641576965164565796440799718595655497402354076978025565821594600744660513639631245294480854889087962878455433977954164079329971049216179003191237418212032623333837649469924391613888770902075212640473432539452572370182329468491569230394289081959162901129705457000341812389616897019005209849529755970990025248534781780729858414592743143427371598425181370481999564186601250988679888479249603775690876012155073001941419521798151827263594520505814032762895991627558286840065993898061842587919189887942538292195911460627358736796722697324156739701368586885001894384895785929614228854270412641297448013937938704838741723927597689084327025455837213471952907455026983818283521473358738082610853784631680798708618749603805870819388589788781232846059618295397464449161771038385761079805679536259237401130652515288691611784134145039021765991887942262314206267010191365995761973017596658137423573537181986636359215855008493163272956845968662651788741455663035994933697800386322531262935366416687154954524329130518185124581535747623363269051799169473612062534617139351867268846430985153273587012333415645068641147292540084315112793098701631516277516814961487977296339008284792660981037921586646713880861728331426791350730728881967713816910772607888309884829740961881834491818097143095980344341148805883962896559268836546233695794281299457302015388054783534087692127269706383467558777217725998395633647768249056232081669723879274069167215739792534363490275078775504552624355371776264565512420206627299976750964467652068700771046647634220652847730041289628244386456231708476918942779249445302265551726351148828423720179450666562635028372817307537496457357191875127258898967155380523287600879135278908285501702577178834337432039949753909364482968192247959959386825671294135050328190572836346507516682882199218826035955189928529960052765271118453447420478292818179838191788201174760827568186500590005026174819753642623067377000268887347839712240073334770330381586806371929956541383689607415346704612041955857299722433323648018159995975908089447026553920874735776350789231070360139422874649690859215866030844770751157080210916961991690277856634156971829915353665795333902133646746355903968426028401630644357781219597481050341066339885794623299889422515316561120156779229735130042289635066787513104756703348667635816103741228810919450808659185217998588143159103950312472474586759697311103394136175145715965136386979017070916243385287336913318064252737615054275050604193143259218841605778215517287245635187997510013680130772842887741893747294777590422206546079510953281184860575271552829012520453334152416916145759345026237925538006569490160251906606971090777902543502237263314132753852490060150661025936524618308213236975025067103219390960191251379382505768600884439725401177821970840797113894859741886878623840334565367375285499848514271559775175699225481268749816552995952381324067363316002606879309697192306266338640030986900085849903914581113613922934117262772259979100189211098490739966906118594664565991999635159754980786144597178364613325395842436834109205989602608698656581228906915525219934687665148782268792691026149435446293627613750522341086050404749231291953457701329413922171761888342197132977731193704147964377145467865400865854955930638716157040983819041158422271520708668963195369262957681499923723976784778206127237289966394902141596588038304768659233844668964544184462852695860062724376317263298577218349721243426583636600071796167054463997252430748497337478449625242033121871224549408118913276527896187311499277762594729690013496092762770936402585751681828528505723935113547318061856896729856522089454411993018982546406914731628291029611500494942940026369284424641372750408032449954200153790596198099823420191990607376702866392495469290617065715817785071393396553679725219088650896612151650739593063510246511044963693480502239013173009321704454631251106607718476173288021171119862519821241215625515641075894712050620823218056404862144310542418293613061938878722285629433925292233525414637384727567095673489017918817166070715190368539959005996878143688282235950834265950149890654876825325456777703881194454882226680766224906668094522144724716409239884631960859427623438547104554378491477904818830203641390685992032678415940931890407412844671569912153820688081322977119044893209730854187200108481216796962658452277665871196645269461525637542810199543135419861481287132543788139062379780029178555753418683731091891769682164740962784594596677525693176028535826336576290051896734338092370727298751091827128618204778506869910700421838716136846535855352800022639348838498614788061782425703605503410081305273495766565425217178037736550133429565140640784794568595137259766480645407196828484468583313403995475797840922438769032127301367655307354451122414527821366806142013338369150691908932852659177235691151027146262984799019155126518130191184512719228959125555036504254348926911011235527218385698492142151673413129844771043685502990361768227466835095133050231160916556454946349581108217130417503505468328509783624679511788486487053456500054077089058026489275030527125748559118489947865025602462599238881240164945062825722512474402043344543295644541747318711099533832890806541488156318332127767731598180098648915128291833667758198508412897273621505671649022654973967173264579332893338038239642477427612860630306559854436420553529436696120835218518754425952726320386640154974938616852003070647144427644790616929689802032071761310835778409504678979460138726204937429789134873855018699368659672385994619827742799175488077505135107155368962508205613475880865528703645225493283684904787946677160283801409984181218388388144395947456536755122848585563518241020376338726047665537824917882697271187980974039410913008464832381335657289870014503426065094086921690077983958111817567286144644265776270103205758957753283381961089868404830404096718577906571413714410811564117115022680266045920530655069775546885745968603285453466180932381468527906149327017262066423414085529437459475779681923332591115560240067030657150023861581472121746025293151925322366269672280464263745311041974192792137753620720736005072011812521810377539460462232422462064992839836774341126271234348479738596771302496435498335227915418352305034487671276244445952632694896547145212111966197900223595520512238979882338676652368428460644998582383190044052334421382143309919798515427239440940486011418482777614222439097506595299285122455760957314060878703228467038862998579978087223998712734384864387260062272821648566367961990338651835484029704609253033570492684173658503267837821631595815990354730798018655188727566430104564380842156058017954302334331116332974799015649067059245665930881225809667797115996620680536445454726297901649218353167565931485712727132821868811472010181709654220732848680211970056639621500161561616688868225308456451172882924181777862057867215219745563261692110489984356281702341796247497430449197697320535300187725581847625584088464034998912991714947083133212543580171933331517511304408654335179464101869312305418309608759244810732323506452333945901998739683336252722774693557048079743513714985485256123832745209029395489202596423986393374110329174845028404502842498174402769998244058066116731631069479804496782701496187008467886457528025445035575377826190402462993861303428600476868589573103910366947177678580870125457421540297347374837078409492005608356978560446319669793086606558474205926928669169549496015207614733832038462440619618114800202739104845723185762331051466709911533169419850477724073952734083891318684396906367720177048353680216051964153357095551295553475546062742264432276191404147096151143151372669219517532030978098331512027603772917581479688701774098189891405216908361249626297131149121743798628410523150827555475026190701928265269964667410574695552971857315315359183324405514899547212183522826701937596784764995905358610031053073659410728215275928644522402118919952930098825771549111139851539090583916378306052132091685457947821397781141227306567313576621487790257739117906661685421604869824286279752997969635675007823403305370881649797496997593865905051118234081412191601165156393117427341135788013210582108525890589938863207051138091184817658580951045101735093145785038067303319465815771002694956065199694651255909012305425863308172729047466670696452486589391333337949466517277485091115084650942800179599128248744366005124157301604242264745054838633305635501659124105844981320944650080566056000636596099947731997009428568734892911791349600870955514952651752271590569541213582357512122369832508489422828600243581550122852177002137944522861202192506183742939967021665631903203232388088517168378968155495305821075280261014625738344359988197595037631137323441939889181311862494491299490400270253778211001334367182417197396721090968151646702601759513886903481460847629028886585933986536464963951757463250144992051926342859100082768859093804943284397708910873737267348407958691753875241308862474473964198914019794893923498097572042656413776850502741492922773286111042475279514164566711174864313617886036829755196461692444889182885026104150588694076773312303719984404334033663220757912822705758299582385154041176235585318893460244060722059503890735250229205188307012718396978593005012265421402217621927307652995893304434996228368101658339310215611798234805407539848371523970763237409538947018101369424185224625216655067968370741319698544440422912796879039655230342833955150176570532621948498919203609127729323394005079330022624270139640555189488881659816904757024380280629788291746495989236618933271593634558977847692766850508323419887289907858322579317718141378782302759773390768567874309447764031294614308782376068242689381968033971576960542813404688557093755554979701938032722132344269159819039937735016063559206359979748149834342326691522411453401202527272454977689769920376911166333510423439235237528439859230554089320063834423824559512998679984839471252762150157929579704679695655311023662383074272519380614267937318501337880324153328561123298194122539952069969549290958039743712091960080689310140985919192184254116348432095150806186432350793999563934943922288394783931963944993747132063242334904840344199956154615021099059459153801464098590917639128758900218155897406336671345665627188976273631579555203463008619816778926699041571896902164312710120404803102039625224200076209516235505788595957261302027469167682750379063414746017960449342667417379912338382163127713903423750646686480193957282003082625667796643154500356983268131781603111298197635415474262970018752220088267037217991449391332404019641499452119558141485784519042432410063379169529805741986169712004328963482119716018163292126470631672945745785397397367147923541854014034446899162541655351194756184686376905021594810993253542443797852488412614737261636608143242053049035343819470894908711978099405802313960285144988813732473174081314926727345720619420124434297488975353263968562219227453660468374848725461400447872283778236194754826530528192476084156088629941742482995153696175669430052882418802312890826393046724018463871350955998099815753727860028507064378624753734029886883609619979466462948289324890795868591019988797672804716968449136477431739855792460794396850027422431781945522663302076532955454626886531114869713982220326313126378866461754699258803593950559365506608248784202403562378193318989008805171982889493327661326976241177561289975489422149488006806915259589193310908840510852680766263668197443434317629934662371871518725955241802334216141998620703712733912683833693257706818116297832372016634475704143467322894625205233810499698849518479596099350993763357376295789586481170302973566072537293159823728287751044038420337617013460343091309021728818543441457151552786055379631504804922779011339382398413665425996905447320938947259408769526527017718432729404320689497913315350015231331670925655827198058204187530964459615919773237072229412327403779655783958716533648780097910302944307257482535484781072619337127585654605808906153863912329435981206702125121856927581229276064641566242573680258116210636498660469399090746581520944397020561621322763139758004778984949856054860380032375160055398198418261936953467830342676829200349897762081348004315409839250013453463523983912542017026296039283050951439579322510383593450403986566340846025075644965143408823697297071228109606576233431275823301592592265549652252724786243345034070129529389685336282607071716640572410067590787410305452933272891475154978969292296702727493413366255132765021622430420056287164607680960916919189842309736993655690328790846551694368321683216340173641665739966447196411984267066257279406928835255233100371941357893229884492583419693428690887781136767956835120315788221259092358706576314644103424897398772338050644621396723912860736234648948189031473751011355296133388417420539440191881690448994081477205908715239393272114132151142681372570445825041656641075073851515173260810910293695045993878896312444720298622992890311876492218714985998576501430994674637696493780485742183546615721476502712979221382975742650886411592274507228609981522028148482138254380816708271577508658117591980815529164508924325881704617795957192381208579556362464625185567383746281528777879304979591993884837848855972637674974985981379405634359902410278828645052635779212449620436319508393182878729490692918352800703866209735234933257954417398549402690451346567673775899462506615369171265235413024021590556359826346885562335907933378748916393918272804202268612571544256010518148281005174269352619390171795013057106978372811451769835723040054771794945786249421588808532507164260724822305594875336252920944749675576197676325205935292292155677713672666870489597526004931081082000867138392429216535733254222655561484190685036708935450947988032540111857144488340666309863792565223914638032135024257757894140741884160278006064396827666092041605722139721213386045602476989324851722652775800291339967394518122632140456982841548678457601934866289207214565167039646910658834180923132190314465691483643138408705095374201521843787602466142162857111320078559358659544839071247678867717553203313850924240026450564175781598576939703147833231953203991881432932356154118934764061923508409244899667548429760165409720889790836431952356911376891458279576464519778357717719520422674844561448038395133365789434191930234827766504108323527094110350739063766728936235252076681620669826049140300859707349517094937527913746157808668200187065221860947228112622802446207724944872677258952985791084452546010357685921581325126978110764804011178957237541085401283595546832360131228970517367961109744287898547803348864895341293342084439469114848005507390588099761805174184719373601975790515679266132835920310830246941787326552878732924796765280068363775393057487783415283063979044207815731678430043347557322585366180372347633911786234726809753641575655680940447436161780322754822839523179891152216683622659603943249598569187041475687574360136737614570927775925075546563844535585611888665194992321144382548276570020128758796975200316548270799159501092545130249905251071517325912234693257400188281707358758242800723840966455514122640360124003907269789423501691734398993624675357418644872176444716447277343134438173595388390429525465216642480582119070571804854848164156016186859194291674935596942013257939936001765440689427472840610249490044086692943082136236253149577888728170718564862198179162680732215937060669275436214401034833599036928013054106764098288442269180587857684572576828145320262781148071014221551248652885964576273277348106141914013344050361404413897781105926516773654565315644834556008308837923691115731053942151704052289183361476638282158672579066793434843187768961644453795234303172526260795198144286480154398674162820987237815879890439200105822357046512325430630503549105018375145275169314914526889764639138970862483679069878336053636548606825667625092061873449511427411069180091005858713026557314218985312594936744775991432925854824173923306807973381182049059601663123868239674979352264811283258106249156760791573776555277945605690118524520465765463923613915020678956672865302709839801935973357594023974280059261114788183786025106358047147138465902455221287129300082176884201016328228776237028277855510586232377724079009044633313674578184185152722531905064410190989123078820166269384632010436612756527400124945627044936638788411386777239450156980592014748782149813316537959412152064946494221206477271034607836460987375879304245797114720467326576564017723406319334175364609088837230147256828076124620226692279877392040970258679761867063123841218094846365714688569628402846657711375193648715267690267491063590641922080210651269527809522169196141406675118235231482836689977035765009560757722936449063715947936252100958462751695797246359571720076094220334183232419780815837825192130013348149712472401214645722070577633133534369865620455949436699116766912738307255495297238207906150899275470492276695293762668277175477516731658276565044203648293240783189338268307883992260348058716933180307955520377286104939672865788453471526310205320722100647779500921078563921137582528628059949931400205656866750945009627413384471589332767838959742262053975107316233660390594707450444434783390668290995230526252575754889941501126986197324075008391779256468746338307164030225232905220845239958694595980259962597697499440564999494531405403791374101205582412538531235891547575190623913128942802228130813767264912274030121827541137442960931529054118819816602274517013665466800624994385980344752394479303347034989887326268445104611151287606070623550298068747965768658993580445894876787025262348513733618160853025224511072492301292458689750622127237896094672863486184876877877543831625613257278183832248460696760341909426331192231170845649794998480795420864365579057915920294973412292853332991152879452413105977221982424877356899054533117651088823993918002705734552210452050752876227319768754199517352223067567398460921702476832206782881905576017059431824300610263219220113706620621620313482922721552611080299226929647685345248066342034237180140881563715204167839224451857995847078773691716503902213653010472518599719058658941602034117733722048670702642693610709290770778622052790451992284655607632773428419648356965810931014347417704167594662598358095157679606248560097739813202066252433142634797455294739930209273120123687327249416964115228617606092731463626266824600683372791891664383562967235124722720817184957805745856300315574517962581122977308527380809828420771933876129433933284622040485528032129230260290525254825478032972901868476903845586244047451090106534216238191609324844519221327669965982221532265675464348796043112069384578608629832357319752338190135196718239294072647215931449240231279401470242522443565482952782954391769952101188555004983966373706328487078562639596820030925696239658003469529418351161759669611135007668877934753773444998481423871157641969870427537329151628192676839809346756987671877583731898012302087326389155570624950779393611984131062400414710104184316274021291479880446734135285231850180901525039694719388433879072713052185816624971486942844907159421728675221553839331357121095511416087957441676002678155726518992140577136515547038911095671618955058902621447026906495212896679469152136948115001818731438071164106840012733523577413233996264255620502008803805812675880531957082354239359282204757192755823740686256459228677336708489789085250220052700409401542644281216665441235018271349316093493544085845524669332939111247920499671160148168696095522876803396763001603470833143430027868419357282889437684083324338090656861178376226430631941347978744606752252012637922027697671104200229648714924950195129605862105048728304030288180753673831215003596962021419005237987726984411137154836871745437732555111486555680058926370526805697157367289048106210959303674549351249187345799898029781413140376889227123022430547434285434032610205131556795834171379019421839392122101590205129556011798567174624492933374793705239297226565763133427397756052330080764407226302415005637144913197829099543318804537386171559147894720016902996003389887824934321060302470881054567714122315498905236962197100964648488620672458423577186191955601331720877966150884328515700538676336523699847644182007060365825463253920133785308170077137890343153713960093692207694362665645528630546946088038417281024176198427209909344441080984002502508191090644682192162320632002953817275181345535591775619804005862566808783598625607268874953722090833890764825196086996871287984592491122188579349203240754623050864349957324190011214466199234131183203351651648033979879859567089888110726466384655252052360406544772056054460044835304703958648074833807685435257642490286276157749204595014621043884672622541289478677161036784678979740814004316418474531466740723511514865955300458165213670888852442688451949817782177849414444990013380719398185118648718817843693311564638058194730751914317108662337983744711255158008739384655259654374903207865572431468035292918914886313834829297485299422324066997932752579860743314317080000385344313202073245195754957108949213401677514550310728005832710916619067382831816495561585967183725749600988438645822639315362729279260007550827651559099373941551604689786717349285805068894574636396967343554865444422913121144414798623305684775150992793862627563385264840133173275227407060581753455292807059610512790404412713607447219607375186387450946971770032085203884748989860510956544649607677330326746207976710889877084083911491945987571279222878055917311774566878513168801642274247204490395221044834324953771103853583870684247965465230533935369545067651966007093057202586702615479207044223228138554352973006854513855258977563227739260994777196555055856697659197459321368174705572817757312257076568280699574461282317000255783175802149732960629892560361652400761034472542401293932925874063269495534775732778042348296543638892295799691083910094371944878064694846674823440880742713229325529851261639588344137301666748104626115063600188024878695938773498106662377846996809718932707614199769815747690294602920116880022671508847676738051801615493490265344863047819949550730567258952696740621578686586348915946682415724016649765336443694240450664380909414949915987858446095406067457010861611535657232319774588333615404081843094611122326738311569540096863360763672896859454774652355680613508733043533824698124961106438287114391590383620207043803036523186798026258248191696594175457423387520137088609710563498608701816102938050701291962423815006726798121669719554963011255080010513911785799790312927338256527065016068452468929576794157854742176569146390616685929546081127922362848773330803766162806077458344015782346279156677077859160235109635617944400564139263153763429087037540008948432653220894413049625541070119318562659240334156647546146659978245555128942677880666800524727538235840708811174037456542365594091883764650948540268285922031768290487320441302433097624572210780200579104003006160400735250198331932946871168605290502751234061530515738256284710710911482663012556375883031987468777567978504304605249801394653997005573915415300003877819197179218099716189065829090773775798751742830616303137617695510196460709390854214537592580078328136191478425320926664381071095876619942954608053937622876668816419822379266570930851949639641188686201408265312460795810021394774459164840752304661554390854411728119926986418821942890160480149760144541888229107732090642466733077739820574965258157650700488780432874007869241099050006060283265158218371580937628621216229603697457638042004216978949779898518486483075799237844492873240229109818703329473222416764493505339761837647147665776850854742606175641067131680092518909682578713222290908101226081409147916499980851027155336478793626128927039576362951562324991541796775443575232073799391981060998536791253407423342470958807419926250119251719146105170567462306881711352943725762084445808734161234027047211396763307760784446621149147927485743717750481258811310843709121194331850726334680459684653062323482099581714635504161634756230923063380988406252321291366458357035787750450716147511401635547643686656146117101400025965720155403415455140990503601578419603376945662792568358853600857838699342499754820957522355424232223611581416122217744539993966564735509608377092579358376698062350365947740066957314395364449332775245092680693744504141015624875102561558797386558632770867764765394063039411071091743551415032134965663391700016836420159631453346035374766111074730494302177565181850378035901056544111919364496205777721581324260009347924358094033210752548146501727736834037855539926594863937320404660446545289262161735253775331376734565432422379338882907435572688659756695904020888729908178089560951904785184865283870615202431652334676141363208544842593142180660100480575576252099953401480544021747270904327433406987407984021525686602100882009938299855772220319582674466408764018516858655713834114428885324094791606061079342786610281625020932727789421710643786420797310976195259038364984151736281177708178874028273474799545557434346154050249914334486778926554253236464458306836123499717987554002760348563106040030472963549499000417468604812063494687887113265337381782887476846468849668781758298562515471875204292541917108335132541308095094481893526787282726758848121240714278523400793885154511352360839998593907802474795600631911311170510648605644266875549596092186388949563475443301731629180452910151163183572524109543875005251826818545128900906202027489843094302448500307443385318115291738841690719817836902740855750697420430699566332409211643815652416024061141148705487708911212803669965657855657766974677752115154740102763211888279565405464294719470687503903328558003065899546325369949653906418113456801364880688000335451980856268442510422257409386223346644194201624226837422100693234191431689387817186819014396324296821986869937253596083056427899764185262676095725657123732089623611977897116186863634645753691262857962824988189397291596903962149115779981673438604770692589675954619447444219657318536841106231398678241219182422454204719826233159880565573763200923974224045690422949412559080748701569275874956778727790630911060155068130584833437762729000351405790353136969570890922045389327169403657671826156332945298421456023703710076093273566919555705208813821250751373509653643918678838941195853920977307968305847163931969757312314351706191611618638150018297583961003782887028685417584873629982627981164062790217053230854654150872016734763441907368345478148146575790901952433261975229029514298015845316042447506938544391432215931193488817332613569638327054009300168951191282488564324133177185150317947641014391698819070434596837837324084575939742054253502726007473422008288417544352019719526878610418471528677142294568107929160932674889393349337383674553673881335452445771928576012355085206301169255735851846708281259456854617655337518984066518697742025357948179844626399581828826737327424287734215287559836372304150873230806525856153353744437454073128844019585595850853007490585059477096842583991951190716450690128703783977329727452647974263007576421811649022143310362110982434074725282037399504004685731446919061189025291624386699963867017243493042835103827307360081399580230474789443066730632766718206201154847979517009686333689263659394986001158868366584885485084770425758983315308242811866168357411110082180067918508778419389907366227010575198229846356489044661922938763349418619053642251064252619566861705995228414627526542938163273415948435141790041466460004015235494367424047624199877476073137516862391772944297338792403000290536907233350849106912903778027156725519701097552380228711836603243552044420009820528607291546029464375372271076486326646873481906880293419156822782606927971691013026770142761603110356943716289934901489100621861035064687492465438979736218948279148550328585405760261238809607757724976091782881632305747396743676258816118346423478336831630857507120213963781420844450919339996651864451345354638286113885525513710204879302122626242829576436525272732088704386493738603353159442888934897522083341069084686186599612482687098697183446206374254814214923953903810898780794095299229175689129465473820470102504396768790632335298097068207017211873475636815069418552491064140966815559322896110946107847550626154480144163389495667777105557997192348194152516091091698846833076585918866802725617761820762841312476921181836500055354209101802053982910000280777716421761213177144565910496261769686388075919371498736988879799177782861686109735785922513299399809575927936844660147678904608921186304524393135574865663535790546808147045931392054019661862262384086275855891054976534070128285004717394227882458035902285945469083693753597250229860761811623844847786751554721978087747737541719061569323938047264399351171510286207616235867245686421137534017664124920808070954247748341008185134722239557366387018870987153198946085807616870932795856954039036772252445476344557120068088351625848212605104866785887532043325975165916600428714149282682466214305267548986791156244263341921391208212338273494057463654140115499403312850389202050533772868455786168886885997652692703189878084141105651824055043396018658308011043975907088741847081186026055719262879205460484982625486190279947957432360202597955343307815839107050352918916104716275233706071017563410402191240593865461718779653997245735869904240045908754044303612718520680761730417493465575333913129964371800519509601713315599953962960241461207792660868365721915325105146511997469674188280373628754166773312895537398348713978292880650500012630750836406155970012968408186828619860862201308009246697459316241991406927963129010721181898736619747494218555359531471592225127613141040994620038224487880423282385877922579339364951732486067828137994100239066114222769905795018122749365386773202300893792418767325580595204512382465782927200711348694976449328003295907973178286592268230721106127535432772968376722089131045810201720330013946197244664835583701524055278712866861151475852533845502169982615356928818399467804937363158844084186741002787183873949884674873662330441773829562336398216543583485798165734346167310763175531073149181450892027380733843818755818341690916958377181543996690969745287120146114243349866867754207234817429644435916913095619831917277063878590598221988631047871431649458827311742018618482300626795036868006658929191418095124103849186811794737285029125557209061276775118091697014975751777513801897330905570953023062844765158590121080435328905351572007932362964739378060653009240325388591553138130433601617316542974366705759051569190639527457493808227613374037997611859112416621304183249516932033961938918612949754876413657300692428090322281455443021829116889369105600500564468998738496104487556274354247790048699141782999221207230468772122150768599718093246837321223988417878426758370042758830067108570781946597613941946576722602110742375642131570962509032213165563812232638653207151894758878011582524094847533809643746177604174629487297185867266832807736384118559731646202013935955650148715534321288934266607790043596806103226874736053977309542169198695486048754394101234935586986288498076922787820401066959128878858786383116840813598314118782664239109143332915190474027682136592994374945177205434052691166565653216933135239630353962539908556266702328419221986184185400676695716333016852387990022361285940993261658999137579473963987745132444925195219252581902338303560895887171177837977893050387059532878895699169143735774489155820644076624959829870124248885555548070128983646609427418964377683376750840917301349019582845061706133198494787626693805792587465278524204068589362244814685410206806912116181273069028632936034668396617909076274952545363475929682621452976993922406894156700324236907574212625665201960295552216620155054109891604212910156284446033252818354076323371235542535518685745840341813910969127713683334405640513972939635777524164175915724028159361757855413350351934662413381961978425067857256134480443889262828791639824681022873129080464903504584988595132053778476834464256641677748414880349550771346762930589500764987113583623706003820376482894723749464443801190363909363788492773849268314862871443988140645398226097356129948169861761125967919332375301298072673750543932223592958234143004452934973223344011122217991661141736159682370353422375003787397130157236367851046472364954226507692996461596617135008865022851252062188579670452682313889630702366005409674534452285610060623172962694959268894379097381802486976106689793377760117300271745818891404591269379674668112978266805557727761378033671812801308101291580157986030835830676763602719859231070660579358062081498956610994025658927157763870174645123657114476261852096789235643231776233789884822958938696302337428572748220456646343715324155977954602884773711134490985804252262748833619064863665195534358833663960641017474519180801796951755443259140685904270131233436086219075822144594639464782511247497917996406664905018581505757812387297367628132995830443266533725505142119273918358794288559651242584497492623425792976538930352564680986035941727398527892234429413227577835055040592344086771607180010632876155487781493592143325524077365948109652881346442937456883242743076322463292767011857670576050295606099920935245851834603072169958491055262219151126448167791075105358814982542913982519697235279291811376827293284418578785600476385482553472893811423935977899089302503404992037510323378789878249207560216814814596456736076581735150653906956601664849607598406054872332851864412855998443807571323245178023737767578557616439468005240582759272665514530583974172192629155212470089502048445764856020946822289976239957969651300341961850483006892748409963204851887225987593554315970691503040049866178000968891721427504390790497452489562554862674833437442828487954947050917590264348819701765349283830880302814095931645977677782399406135777963531046569971730079317613578787087304236120780276107113105591323028073290580490117534802109422503649806276874968992907470498111498017677930844268485441091791112344544096389457603893664130141668117351351492059112649060731367191835478799231668016612056007679883328344764587643525888507114796848722007777849783822910396211839739751644027078096233407901399748612921705420200377842803486015347650751226991109800695665073447545012569510294366617360903198954947346496923837760066043725763216610241307583768364168935116971849336777178043478566686284153108020016634028587556980086676055047882417786984674076311709026503951337036470713681282911810197429322568358091553106631485548135609662218325466957483570644968367823359481796761698377042695930970434992720828378056069385398834525949524475122104957923108919573058557300915726982107264872349460668722530957027854208599161357072556072940076204790872873448572137324492111882033120747708931355156248581434094147996130278542729043257233940677277973607671981301133655396000199795710092618248646467939372791064592657376719318109708792945546299479719629794246356845532243429726785517495932954450766263419485289947779032812301065414927481043876179728418966859298528721254776392160912386906445451253462990419663897254767408352220775423070597230014509227551913578956923715419563807995830314953250630330217740846095711318011587345194413326956857767491541138622613379921866207263670382676780695116848541185708343362702923625711977127779212870599490480238000171893927334006141522765580781459891027688461525926284713209417211112945957343178655205753766058482761312361426756935325881907157012620206006396702831694127623773285143209225215029665037899336336906850348472680152260249049717607132412452066833906310784427246974304255337046584889737446776780768036928447932204098790259024155183262874894513824074595927168605189115174093849429416802411690978243494662823424616999851395422446474198774538425061361657685502160654720116692540636735290572402856533608557752409628945403679504401301904128188654735710422728822350688251925422500226454654691941018237984752118528895707467923202227348268605002786230041668434536933427358838841215659911147597018321414927998342820722659453043705426718802391822637029732406317399361064564068986975507625131107729295045170282315718109462236596380626820778828505773702459968305887359518340810661521453605566901042965297689320345006109446366371448007414947825813680222725279495099403093323580439453638575210643385237887040295152333485585832555776400824503927947750121028164797901197876721946729536875696837547330114186783249543954388669003030071508837952636826514692171177644461634883111503866580842486014649518245256920818413824746958196541367551344856833201895309512422208968389070940309168054294320567950793365830615826082404560947305435888741394004160059851632283462190298769808179059839525756827992534437653265684177654548964241429132393452883517859803222457607675634257702255944440178426015981333162183064924068768258491293658385669297741526942368069079258518681842134142937813031438230353703637752505230983415999230027920051542157566541471401298195959607522284782768073284590698628604207182434369307562850132699276900264019664728958398686876058709188891215090473767783896243344392916646403979023904175005349487912692770395076465639319940704487578623080298147909951916484735428134826380286748285155672087670053576381728376042307976278624015626912984225787712482796080575023008676596398937581602491212139435124338159687348166648205789676924658649529908013112565791443273636526366140322442072765124802621379926555067428733171557042984212199450398872095955301166947348654758424075156509854195847281074245910212853832326558563622679735050081078508009654406686583037270598489241821991201868579657867829196027443438921469314095570864914872442181973636794988973528899310719500352955884207079002077868920539154149203053472682921685837884724129161343009799024451712859622230362128688119293067431011971757738814283497186649698708004417529388215330330687946371099664735411516746607351061295929153231455413045384592599773772468464012928459132382213212975515244636683290731142954295314557213348871270370003540652534928980175600673553861036686996345009855181155745788689003720453660116012829295775712855809095072995636440889815634619852127143877393981810310658917052959247336360218268576674522865098194681819519246929805542522645443257091182327228033800180443932185123166975961940467163730940847696294035317200019749232939206572566805237108576271077454101116580944542995535068700608653946788881935147460262793563530318461425524449927234155819630128106256699649154799863750731782067929043961591848693582106022586070457402414609852548869062940384142932353175291040555633920480388169444700111144204248420462873167401023680578398020563946332364955674418776263427857997090743002400399105035270815799571597319172914779209072619246980542022735213349274009882097506124106598917921907503622166165398502294275597332835023106931109867939763070593203148582155284150088415836259907616114830787977858852486399433318178507495566924256429677237770249610784011137338597795577282660996637820860849662347909784156973382572845976082133207636209658234817823076080444094337219262992492849653360407863130897198580140087593505010965331904310874007808403188152911317408579972988564927738340552470514287379783466814067810611265686119615474493427306172355598990200784222717526488495700029220437401886809768697598540515671181171141444557251815452762253577393818530331316857260020985001487550436653715761606132979946614065103950454732900855483418623605389290526551648666906638674995777100147472039344030245634575425714862239627863725038718884742251117193067570642135935758350806667816250209749602042896685097229522174359545784609025339952533515095238236376691192217244122769158126318243395772814373857132038254164494406068388843417083968754413719906673637839831338678612633456983083831141938919209817553723021734172825295321684546890999623794134960262554789795634187810433172570275374600498749719172497046342105506546490013542047163309109272904193189293883670495046136742388992013040048912646496205483276009060363870338078992737613297554058204274995262880093655339895915296089603907863889484470788110879066090791266673587266376910482525773066376027521793087570052618227681568299274616898909034459900308228295128289557707296834340333242742899294476036476175899159160222927079104553306369623947269273838613877817780515354960020825670542887393218410364180278730442790708355617398288884183325986196350674493403954711932174507834859219321174741089768349871900061347808853341832610183967345163882305435225910793138922691106856774296767121515824252535793328936574487968821856335345811440098142537556302822042061436066366259446914398820997755494565736933427993317796615468536582961701262460963211911561289183181975964744824439881052824172099232877434417987578454292490287011745580235441554359724135346596185638180753081515654934174757270148791184190939925986287119584919897466388766239997065605762672740615834282942613311048932340925337500572596577009029627925356026647651278002367809565101419902247777627613690320224034428509146186182869730084553412707834379314878460623412270356889626805374605008585962189890759211618292486553752152979195912304739426594751511794132862842133936419639685917880012570084109115409865429404214855646049100763786006739854941902830210143920503590584093570791602896771575589079300362033544594700376579484979350710984726808714744414398134157335063731634611526316808756010372908139388397180526977602548889707338930921688731380677501552780176508454568859332892061692667017962452138499221446658631463990405140406732197687384540226042164920855456069510362629495638436614085276443990657957252185020643053226375004784321853510621067781547706648104025075298188909729219002911680097910235552404926082640239389536966260830729127004194580717488293780668148298144569022656838671146389333045873322027169675774551396443187695504168550516534978477431756719190593857288976955184498367242444968888111580844102899274005229134362509885632311137189848770187397981410937715442565216123241264358557685501470601301863753498314899370219513037715430732531985015471005717523774140203313198274958513151165598246045120299342612148718111497423946593393353989011258245656031187043956026350426194015896344296143576975466394986858870562141968185856579172827782232568852001063329625904949332152475265926932830177724867741670140326926917247696765741807716545182877428879269334849326631364735006119423314223946492538877307478524739204267173487973096823926343783794783305205689422080846977200056626232960454548320622168951020585252317363448315687366013364521682433442178148943281839112464126900886636058836855896934595438428351930918497402692937196966253952379168733451443286354550967920185928963159010365645480396531911209840399666950498254650480935503784328719220353413765920497255554468305724709017842870141178768298014077949120504051891994816312713333295936787500322838657632842999573208940712660060429874088236819937773526235622477255030518784395423066006100013787833382270807504286413893658787885721393590749600709396229229551397093109511885096682082754453246461243900964335045750250377715449204350502033017738939692592927334880596839586039393382393587578944590412140716552425733902332978848691730643621174066282044928694657036591330491086373285047772449977438956454946238731162214657517642402741619792093491504122607421449319387583476542789559624637039159374024588512428361156335111587548321894386835100348535370352611080421615888228810663506921330551695084205245501365540096147809973874621062184607988114380855963543098961414396123485795797117074472705105502237558114463759483969528095060587691983315615147458398231227517565516611764493978187284487930778206033602390131102966842090653290925422221944024271742286019906952483289295285893159112617497604045874219008872967806269776651303332903191208746203437912823985653771616854082885092463965571390405504750424557819983871610208218417831158632571661165480167033490144134732096099359920484009771229956101736980012210599039498713184981903565409176466178669322517830796462056162074976640289649317811911536550811417481853317316563737477331263367323258751824926410131041431599291961380046752362028658109832572591550231661345701380627786393590549695622215472005775492033759988880190935937928639416285229706087571051067942014288188751852046286399931253761718767148592649877440846763846223151721340476868636636981728652291924572669963850004756308363982110792376180378428320722987432397130767387215058149286080995648037644670801767027466678555019080941832662425930598023481707106158299035657336354341003804201032696852094463984912832975691264032989791538499474323528680321336233549054845482149912852863084722901645918996826728877971334880524482184735790833802027472003827069071258416200342642063257726953407153678044829801414725496713279242252581243508181914224527529669757592983335272293492418237486219828226084691994188846578782090058163343160147334268210177477131807415656603157682639395951156705914936834300574784276318255777466367150684200273523914952037713664047689712485173743913896977605882294556638869831630908149733965056830326109434346362685439353856904773142117450871355251037865403182341938066232692690240386617312532388148909273508010826826759014929564136811110564947497915038331224839222398791793322714914883596774064233981585160110013822689915394780832245614947715766924882667217607359643484688192322701806820432191746720661364322176479978407420080668429639757943344091599145002689481014547927670150527382720909374414177025435075086978327830341158347433314902009277740504385266174850887310826413540598543175810362738204937458045571931789180202370285912312350441094657017110993117408017557420496098735427474976799107881976184686350168751692496929919315957478304454650025659888080909533384789096427671595456586192837248204001967824679582997838157301914064923916054833561030037208373916925441361249804781701575394282252248022559379081947879229281222680990805503089825161646245850915548510553194832367644025328392859322062994662111484885452279529303631486916149365117604469148656673933177522862696782586555719843993542311582181805592914830023778881860891774662135456782240036821253811811361273319220461537967344479853342343584052941153569606808751025459774856149895003054595494909538700041857568278286887903912087163508816146906760408284410294314094550285229324438382834010831375975261896783154297043688892259450654817840727811589572505442367568728398216078312279658579661365568186060288232159568951107814664678599286134994709857334709611907066587990717270873688997738283794586682420737576785165815366147748801896386775351626448177117944434858175257533575789989279331146067331479826890484340801158668387205633227359129701522187459935985876580784415220819790557828471721928785984954989079061114928641758674003952683258496449710429870738360829748057829836803299971894708628905558863688721032178019021619643323231957808773857855709201073244442169724295952507932845992256325135265126249160794379732378398096540268484005606436292740843208573597348731663758387330873418231637045889360365585928718239125661559060407636673543211985324017685369144081256587798729793402135627144814816439401412895824391871203690484618782028095557878070778142038378293837322468410609718268927893239010338353029671673740928233424078786408405971208474628380179204731180206814553649126841772145387627441529883552753082392874623906172723600680707511187217421263897032172485364601960174357471513483329383546112870584912881349942006049784459116651152904649127174048133104141649374826504330979312502084172304997786419202994761737340208686836928823895982199060778423849144448726679100167796390307096231237261511576314636175111858337398226880396773596175165595088032687146495028631928931830914672621321738015898819767618799937287128905302343182234151812986540084613966593527802487570875257056746410542258793850974639862882969185062640197040474051412279886098843932008925680230320093124383561880960844843973967530779080067200313571465826026522773296481498796334760386754430305325143453182344021866340891854453037501081589223152830086605308078449608444469564127725406786795836142369941493012859523420411834832260846391396863226570868335895764898883642717030282511083013091466880973208616665396732948751816072390911343522777342910885148108435672713750262405645087241883104998226800999207787375646488011429634488317213038781303481145142410228876768681275926115436237306527983734777074151194987830045152854402179469805626652564373835392775800467822074603714463087959450187792262806415936611928194163464816419700272737223074497916983367406203692342027359425997538438589530808562047614391160329200108850762811119069771493101631290690253608285924963491616517352670825139713506662415775821125205308608294651989754215693663528316384540431732839188702259606190530048797688503748675579533125533326485703495452369731798551577866449724516699124717343369651975604082285223749966665839713761244675948734026602823495038310860485416399404936305416933195620430097970733229707414161450805737584762622308033714532403863040338456583650680270848266505671814012399449652654637890373334700750311886406492806506260420300913781913771454117985289161332878790696740299464453194987574392550717823976828454726901711552868360283596883936197146607133038142674885936959380882920267101171055470321611109508456766509282496092868638787920713054626906102169750266631286460115982286951617551676831641292399661689449137914800144025391430620861447186593965710685180293566183359808388772965397215739245111425902320148870163777774463315440049771083553967639566938806022837839297286000183747421786946178581917444476984568170129009935486089893455223915890275725685503577318332858915258095516767762186793571283759147219477227200408878530991867063881273184924468958171731735948698758039948181197564674877612060096519702385351604943626895982143811970922232458393176807627060355974746314491127495545480871498882239594963197797823157776409439835668600959968154615088176795557949636702916446172083138606906809794436571394717951863189190750791347419727035678732204005154774976839707833025205019776270512309496225332112371755510214230389120922661085769961434951549586931128468482377191869604196289141248146649271302037142621889709013734561310842346421216210377587970856928041166220975070879752976997634044031305725229539561381292095908767416274628908742907891303411425873564347996095842154089575690572494469020004486706940812572882269380235278605071297159011563781271235543667538842335146450038745030359592215667832120477108197123131844898547019113905575682705179521448897454722383146126510665792228519473308153446916293638033644072011564924668484497260777995011831503591631015431945582177981814484324994648554123478464303820710502972733994334378587945214283179012755021365562092242422763797353201701833829550721319157675419338441820395332614864776096703895991196814870659169901313263171246672866418214201286735431606334175381041786089627995074579530824267761705434590750632422682138842628447782549216312239465439641739921874624419723766600412438510824230849152087201540803304344870770193274694491466526468600591545468008405601514170622874812670230454856624441262136765152561652100556329836502723704007128004408930365492653276065256319545733438155448988871221283731918044555155659595270015193294486518917115434365140448837350174002595254796279054172942548145198935347669303669836002681110154233646409241688886242580196270489417665694671634415352427908616293325748180166754601534008020885769339417504198886137277388313637250934725464796659453121138387273617612607002024594273827367221267830187069423341639022777391604822245204290173640252645321295669304614930988453968471167929981874394310659039058004157838929364441006610727627997591691804431795530279658167391084362103380579158238242687909713184691033624143535714673159314807923338664856374850326515372870300705017566828931968739462061683153755797775147012261407226618250910781387671763600069623225500332854124541223429160699016172372850893524894781508554485513462255900988972250068312172606457583549379972016188930919380279236748642330728479112674803304541647056216022787399602215773528419984367423092513342958242054895266512994474991724101798163038819876388307883026676484614946925534595647653049687275498328973371909676978169673978447116675800272335422036251303866879167370491875927006784368544464068985228103292532322447011944102464247973770920907657298216779404361386916409449595587356095457199942337363288763071954712787587961892829552818557422381210267258964545803473280809651739037469385127379809089416973448290303137463979636065892774072816189788982998190831454653765156485628070114494584904859591546387432541860229584425370217525532527806778777576458948436951631176763476674646136300105777417733070522605111857056959546485177423502913543800611535697571899032396985110991518143079165272197564580408632726582182433548263772973560199954605696367141252242452866170795846447442221452247215491749753018152954802456514950936599815212770477361133830881593447539008980006607887324400583153140554868987664794338535584239769191053887199662044424194152929057529785590494172201607455811729881590905747414644919878969255905553998973370777751436830742247267199274646425488538001946249906152641408593613721955627027872424422539510600480729055113131022147368111639880162020656356759916621444515611578314841042398234956565410566209134585213637795868423270049332477017005452250193976579454733341560523129474493682393549567512611364955800757261787680517922261577142996441229612094870575762194811478043516511052127129913663250825538051393833519702866294353301934132179827711750165566198022866697870766599529881862381080025286913605743231771938735590768281336721595991133395089796893163384148994394238072552730137879755993586652949400960381406316318369510054253746571944971755407906582973656242445847534104861657226268807306374685848156531528172500535475107330878631742555674862916278738247370607659189252532057685980185738501494588549572169963362176939551201965070997906933523498240460628735434175163445944342747410783549321453359669056884003153344485319437531640978391920951419206501679759598101366006281017308645405234047065186891339001655442621183047730188815887225636873101650004221207876552557310828313373040042108852187829727949014067845145240079521884604931779919396205805254609592837909341832958303982955086782939149337909863776511622020315853029791459467737756633229613733593525574627362161237581017970450479392604494258091490147553601470375235819813031255845092730454793007726992463431028770135516757691110246409823385112244083687488729716528120092551921564649511368746141211910861250447111571813840865443325359203341824761137855754748546395177440882033126362315606270081605640124428014757263095514693864282434381668115428977419936373351575317878884043109808455047965065845351054844831062643603198137622720013813253839018987028661255983430962412942015166669198809434318689687066147739830631524033897352019223662674658977751383993555520012279703994197755918087491573728285299892994375849557188334042253678451493401443353459717995164704410486337359287237173418927080741876645914136852688617238857480719035740010875179612265996502909101945009338784563686227918163658854953406652732522350928138074571160748108579164729136510806564445814978740365295916174569895664899866855190405176905424444026068957738378484305593786024947538663328019165993950214968231309692883062457898714531127352754580842709550742535739073172828234856269448622183297385580801249384764914945488108242664810132521724453760527584027860389832454785525271416563302002844649749911662872592147872654231957371743859492521528430352905127625386809160090699422304078070033816243874504739559819541048545295747302794674110183887742270419145130239223391820535219706564956456765861091230632359540751613542334005121079045392546869883082841109246412554585908750785768363930119014124535442892057393166779133220025488342793095861834010903022407269461355641669731307289429172026445085055298183984914285884381332532558917551440630619453035857233927550254692883471152472418102641235395070652236835905703930584048480951290063369927439087177068668236056548446363895964547745342036305817953364698823155066278442741724089767753517364985595819524565624403145811509202288129996348599386561559783842575578907782749014034610322569242888466458492981507883436286048179830366155098765528183576410898212067445463148654711346505459730366886951116201227822183611915703522578840131490562091327989412817211324415394259700833914385925415806177563369361895028256938167543660842680757566417101506122378382146315445427842548707030760899006181827581991559046901070444263146071680392499895404490486460465257158009072400050502260077759332320154883590639073482702666210810431217233647846782607631409228733075826815685782374006069304359972067095874664981309193459450935807260897685691217657356379901124810424678891925199335696187546789418348588940941557861272907761145224013001858842731433068900988754447597081725827216817693361150136129182192025402675770436534882307035516798361850070904526245166317706324782194922033936468526956807516742153418297520583245790603404310195819565193762791628573748493416471293939460894802287884195884652181167384779935048493820998821217806181371995043594423036864264455897482311890502968847661495871231492616735743716791099535549009236673414371478551698522407913098971442993854131202246383970031033341569835229306263336833252195597867367753937202004362484470738741393444900723034921967788883042585208755807324346389469101487235305184799595285460675111099139615383698987164595530089661449947698110096643460687989715663715174401242649445419563296967830616835068377204033937546251296845104008256869762854106970422636116814968293004635467310719562331798142583715303537547866345799107855824602846990010038782245321717786474045105044524176932317493991774407193969179275669652497371834857473704967896881051042156781547520735315750256410163448027698665022328777937329129637467940586274768399767847519012344908653464061021858471860808337312319775733629827550025980687575331965470141871942558195641241129957424601467920679234835484216365039342966403874534752387180522686213734764852309164748663533455345426364213823766419722212128892300025772749924083213993540828010032010179155450745097736646190199170782066100256903249200919644117678865255041406481155145637666740358915443771555013961820257549552716736320800510452615826481321232406580197224802510356529411425861612156455058821005722630639440920999274123355800479812176562782629948730448880280793559661842805880904356571994784092652718137371011259032291002124759124001031169631929804299693611365274392685890971974475914027093824590141373944351191219321869911159553642679042595563571825895597260833486638611613922411880048146903128814565183504953227638050315129800390308815312812260779191551440777387382222083821783285300663241723824882729188811548890776526029988441550070770768504854376824724631245802659451507503371287374404926954608734190154972084601220663576461517861757477586823400688394854037437338268387165378905377485255718913602534244119987486982247396119245126342834682852254948894585679706683106407533965053618607966853667771574857420471908908283592392774272076236997424180378635380810077630421693455902851164284447930097146756172450154236815766852666994925877966795613105452775860228710937337266772075308622656816309431079530622185710960931759581173394959202245917933435447330034884455296408009464578444270586785245562778052167197696806600623595961409222182782169396986149607097934087921071691217805957586693613633040453978095322441105399652860665754461159953236802895901083776215794784253448644436262875782182438722749658961373467682470903407291640227273611477637059231568757174700322247140196267544089413563983320513863341876998359630753463517497727346726694905947443583810836589427220932148930373430428955514844813146246174133804292785275249923002130570451483425546156176223393884203433422468315959488598857169827193848585189417778616966532502857355148471624094580933151554830435087399064758327893893324910499082413769607506068657624296776062890492387349143367956149670647957830792873978762911791052217065324263268977437245954309903188487908389197034775446383993585213712998897510720608909123115247739991221627336551582806935587031832547740721026739440768037407705993089917286480718961820993359061399230866647680505288233236758327157133824713627067238455261511598603354935622015784967981311637781788297126260612122379317426696897215953124156826843148091647185972638493121715865465913545475695232053575287189715111912546238846056236293065186289934931256037198138370032390057605840984049797536009292350732698922933027604671597389752628659483161553370303125962365854399626269414113659131869080429017308410340737361620758202117172398453313141601176250106479173541112480773242974659936900886451335359213534749969147610048161287238434282199075530761791375906986570344288606977688063283741189482677034128000829399041568090740758817125512083977980744713977698788552920481477997625397195967427820884332189807556424204445735377592310021447685109498626831128896990371672362089210825436444618906838464947899831123448686926446162988869010460016457452001799055270851157533179553263073993311972367885025268455899939849127585241586383739090999478777752537314088363185154311252594833657802720595882248875362111018278775959370944789620257468090420167655057481432956013017544340302245166554859880330293660585048717741213834935572664310457110391274292044185649397472302636702284853463459526489263901042148339816974516149256695500162555443030497176553421379774857642846416772902200507812383451370706024953518830992166955518486691061673388820298144482195371997789635640700449680557457793543837338873644575950701032063849115492823697919209531131271715183454935792374577153212928706749355907054682686936357098544992101131720109931924390100477414111735187707111409281866677605877793843534419044046305958102377455519094201363729337565058461555821031880806559191259448049755263310880479218894727346670494753913727340568962978923191546048820474367280863913129588106300070991157672427521593734446037211123678387864361183358767352321884520052593539110336610517492124021863356688125891276774766609697090282425000940827075453063272903391221733096979119942137175181075832014563806725454750199511521762698297174967955067612005971427105783561414124581017973255703707459816199545500771567043960599598392400695565433567609024746057407569756621457865847144016053374480669908168485951231453555570569463373090154199317070636113078798824898721181870564991184702985918947115387294267145310732815338670454149336170867409740184822160238643061793521324365323170801383539922215838079409233021822229985649501429854895385834763439307943616644193844413285571455876998096236365199367751833933782287486890203863467868091135508429418737273261231247429121473648012963506697375680288552873999733254634337219248307195320839244240382014656306218801284733206349654762670495454604615519199085405138334962724732597230690464879287680944770388205550658083675997839803341240855762172747914179740449224056325879592893036808219012216917401316421909381523464716680230316075044111609852625465393172609404886761281039766509110604907697827535033731008603668744995390465285587715626960140977578439788083778700499716247523142839657978237342330319924956971922905966395070044603597392881747488973475723324530999570112833372137624904174149529757423685568851068116266444647669909975765443220626600913764828510919347672247350638899403218796809722656939240378655928004377544064298592246285690908625624075853080841783378709547976276087763745697664618999008123222727781013388304078490022029993011106698154646206486516277827834025720589812002488551215618145927682193077288338682445964966989963578947761388134276283937025603711428147911934019632275378423023058766311198201161165179081770795117139448326889544473642302964654268318838960539154577070824550047936283766698195460558402585053062079027862920814641153266924062923008456443992849028516384274266305269353902223353381423893776290191096108397474803579256147645538335298060636918613875201140142796472192954569924082657300533997229479222144706393906041373174806940494783363010739583210473334299424325150642678075736666733261561338841651934807652091132485102787014695670921472780824318084640192942096963216976013891218776566235558502264398310738828346755909849574485090693212749108851619254953554759540260808978193615870353143094959446924843458030292228724071699839011346060801876207670201946236216019463635080618824889822842524414451048237577317362084785044555123053740768605885522884032456028200370742674384467388390869102182059942636164069038825787464649711430006987729095427989188768532575493745698814488503320230194869009668848841191731127492835521277569800709209767446677846284935754741027930436943764244207481335073445221895461203341745739670271964162001335742349945594776509232867498612407024226971882606417626204191768977076107710913037065632634957485780071032688657945850278746299503063920896467314713938358772153075465255615230459612721672053562465925455435381157509061330433337603585367948422636225500492781711930671694251701932906650423504054439011375158753847488315246281529696196964321976317027973384852609266692398496972320584599808889216747855208484935109120801328738219892454286915593467242193008380720725777080219853559499920962879431664452863176486427351819184550359176227929978644091917214158865186899933263178079080494925463588771975304163875668004917489189709204013395026259203656827058985099024715880751272836701992341837403594046747725493899894737850170824953551445537206662833124054394989314658120295996117712542380905641645745636640994559899426233181139358709753881206077630469574136846067440579370427377121217456687560558322100604160880555028149383378321402380346844520287971725089648525957940356728795162290671670789687096573767357568858948845993183953922606423064075945694768943756391286320456530546079504039900306607760794922355783723091461933285525062175808598847727808255185401774094732032781990943572371931504492529390496683277054793766616535984025882792368970754209302133179779949618439833240582468520328814303276180224267191636886885124956352843732488000432828467487825784835029228872710436732900929692622181833315713352169822744264243152996450284821230602205840589120734719036016935778574408011901899928270836152847562691758958744422373898523718109783408863352136513304643151915762420407103543444301911584934541528805050763208865529382814441941229117920745972509765388576983421878637002198050052859019575357641511841498731282168279528663323632530282123484404650362967400997277907418977341451203530485349525453200984619819402907285158081066440742253564032123778651437500677869808893719471377368268015546816864561045945758474289588484267070070958930770349074383311019477872525709594058922298660203853210098374683568220750635318024403702332619904532911367025644318278211342443718270201303186766265779274304864880275930118262646872694472940835880237251233406833947323168852522822790519311306231101182217258724699979591609640500079969403156636317184003503485227987839695860559125775373141623928615886146628589123005257174152055859211808144046901423626964244023694611746044491288640537860224597858564417942405872841867907372337278017962541283966695003876996183807138362745318921579441394885960959912065193309589625366355112455704118431570866853583176286474731635363316258329337618431586562726991990832338552167988200817727031769689226140348497168612744647063829349528005096512158285197029765708812059471518295146195582313523776079971404592148114661817607284302185078662608993537589287186409421472605150200655992947004721166997809189907732523754359698584853961927705970129355557963937551854909170455324001241649683921953743431086632400454345912997032171899050030168951006723432927183415294817906951576815905447874260118594834521808442093112929546601890321859876631140735470116900747739663677962899815118465972503511329709970904211433284150863013649326116962736193586498612682805877746367710883322016181458535241052094285708150260105322280462561538732132756299087821458994945971397676224266220566976303394242575995957179157329534418451628322073602221953073006882289463534131857518179070789918159253079518409392561267222926450929493254395327645451568732347327597492836436282580776810553430155456509186719141573767114084949350405853615751427538053384809960418994900580935671239344507780639737125865368218739924428450115501490244623516035389930999651295051370770713476622483095245704537400043640132573781669868153575516090912361759933411958928367061247345079721713584529440255174958603764688747028212542162815714504978438691949053813875827501937568853777555694520428769802063686899909641261506246162237266011128628165634919491688258662647232466161857593808861768766545144609210026306744823550182417441650747673059538733373504040093687232530072026945153243971621090502008270358509230818390600486168483366002131648135414654051857057582746817458189573533375789880948738269155304988799142250039375620309963370378557055350338801033600258589115064171622310455147105949261915252001161021113314874286038677272731901127909096200258516150123878044077466142034165108222220673760185346670573876257292158714307838986086532186728468719684166487437233987959613831730398925171005607963628412032938476773895796282388975114074697060140093100151605581906609415468148185968770188051848555730756858023748164301265482789028933405277091131335126075195881035081712122743097896597331606178905340430894920642650994323973288931188018096135849385097537519903451113239364485970003188929559431651420743606626714494789732276381641592380522197156967892495916375222872665628385951242366918642055127766395992845875915259920952415917069352389802300731566894427883920020896604350571770721727960753001370884191287314847040079212632319459524621361502888703215516487685196698416088007332973321439242870678271087809099876653254344654660292056157597522219788629467827137478797700677151903979050555306674274665030627547609816707111033303248822600492278764684848911424743380381343229782624766019888696310477468408570268163961595001645719358178160198367495672234058943345989390753049619569528754921274417149770864610161966252214290784526939420299621228536931641731831791069422745363667791246928229050036173196881871776167534584561021516575510147719764685404743322811255757992543352642595473750091855982999697323490126696141237689936539350128593733763880236554191696380212006870123580622181835769310814162673729325941228606354608856801676139677426400784916404112558851187578937910505209172032181880393652869592997304661718354622707282819233789564949044375952029062880031224447200633989283841145386363455903752390044451748375122526434894443599003943550666644691695356442307905498607431507160888111363116654851000428225312508591855654697226826298793111048019580581701921686802258872732202544388852823639302533877103880518126058976256997334553159557538550842287631056320727419478224940954093379237403994548257612681771008997057279246044822355450642843347938578455150366290176249925172557070786634462741402639442395728721435782024726726872867006133248425016846510656322488064311832917148346030595945688662270548569893830742718136314955014901749474907870158617370221239471403237400901186202549580935165544082998533782876422672352852727802392607831751770059619496117405051139285517267482462609368092455791884132120113695916562899553058062259231722525216740801021242122456410141152503944605859590530791286755447763258121470997953847475063861971904226932146578163578323349593603333470185701787371863351603622946714450037135692481587803029883393926928694058006295206819495768837356004488251742389408269931154070168313771446225342158736625397559974134704909491195992536699453490466940330526406266732757048369987070184341283428938782540934631708284295534088768696651645274280601598162351323568710032196641494354483537459048996982249918924635153932213680930815847911743605335128727410651269873726599725550998656719862209906394687852940256894948800880407690878688373857325322990805947164253098168386359617041692987935536913283382818523202136673447370555433534616588636424673609972101217372102132230365667450965746480020915452589225328982319185067176804501297763050782443331904105005808041083360495646463463425605188158721223510257226876625936807779316518305568814566754060466624180505454500101629540185204977922033935041356788615679888083478338836562794333901618146795473520893971204069719768594228535220512501205749124291172099260283111753326770594674249724340968407666053007898465381799405675827356419340193956610639858188884194720742305544441802918679183210953475106735005042596525516935778699222706040715349592688527514947253795119645651777141424700881481542193068112388637621360614446305759458329358912146068452263480176872639206803892306852848707715046762949444395453836514711773070611751354811519096911201829414220171034471456615528540395002432471812063703573285302858024801127193878771396952768936819434791456079484092225938866279843020151994354674821515123924892093078105253431574874167182849063581575497977380176493609351122944590915003999127337574003053963247620630617690012948643231466579165521675996583835108305996545159664389590243026842333666344240381855744328252305268292695122628148781488376102179994019615623302486841702220762254485180097074776875047078487385612002355275051662149275596619798843370110480448060357591391294497112997078065084768867309098235516522692033101609864514960766117059688288853842849233011443185693848383417625875901462227148647396238350850099529493744384402509287242303865195643245201351107801482585591005532905981887848823338238258852111552735347727712796452715141560425930891263162235943393738568393594048215126572937934626606471315567008581921224381747951069816738856333292556362729227571223179867540311804856306210193549972375677010615031741615988088812501538795668765988501523861121363292210953606039662721615753687268263956826574801026484694486595909378938666175283093335912200427712227201841779736706923023600418301261705745736118630064757559385458140083728078082627427467198520209016108709431047553865005735605539661463970360770564253702649754864420804504390351716906086865032341438093671454682479960991980432676915766855942389459442162146349831791392981572140942205421095466814668948466357637412700627673682950989644962564573918499945943362864491351675889832655839970089321066490036591937253118733302523451306357271834669330722081831769514324463271970800020365913909843299201656613130114925092258162665557123466789351117035633081410601858974460760504060376256514154879476362910224234792469575041449736198514624199542978689654528677437693226472789055892129706138000487292190319299507265894778399347043820481628245068903870601133184021113925358322437854949303004993862116317168096043150309065463177115417785914338600836474942033418714266173629103947357164419588815970183605593724353393802539939211490994464209643202524450129874592932327264726731342868426040380297806926616838504681089460729816792938864753131766202714807241206680686642663434429481716910850498800267941531558219237485167235638547723571348321931666843216109256409032444820775547154037557180611814216301652546918559469560669117617818323059170806953932253460821996090489175429628182263282679262405631420914778019972104440554307403460364166062502372089091787644434030501996622053732039948456156869681113763957306344697002699496219765882797799339212169462795867481498842070925487522837865406497021921785467206500419860766305042943969661870967128609672677511560422075373415037871782664476210592438387731262880434089680679557880041753546498060704779060270500560360192297803741932149533586619325629462194795920084382361009266175840365983076967933991726699080758408260406762480269574790421246138565217001471991777569823590879584580189742763297939892838692672682345438148930017116477247680697131374612791874407469089270507269108343570382694157097878468468084418139721658862653866436181153312437577022573744981585131404461731088866917800790197181724415350434339261657351074738170327171013027855894105159449470715270060064978241609642985058408131610209828821666428950880030805448753487325490980578521720490188359901266176424911879692906402118240156681608383015055318739279908970194564378082250971285271042456722930943015428655390615864825849727192274228659060468928033029185045450768410808019777269738244126841536095846295844809240695729564619451047445110613481550862976130687274782543949795599650504356817351820730736445514694884476782059627576512349542150103251149043273238975002386904253127012889315325165279877372644678798694098304480718172762861444166961226403565916956337050527265341096693253629350890124181515997684742503795022429223211789469881252670552965581318266255781865673748538304056729690769474440006331919585443751370008171354702876066793695724641435263138546957200545358053606473753691208602747927262845934661550581220407929540162383409437251206012910119677054606718330904109386127693648110827996631951275509209745578422610385817906763419517018459461609443661428548988504775228805813760239787299048678427119457478545998011721127244085766828238293059652670994896520008908601049651439464787982909826415580408998776037174829972742488256468974267095406207291774292232708625331715588047091424186760260524060588742516775249013539325246044209426801618840254038445144870433298222035847117354968504549280916423459583141198735867658692840120321767232700259149435171718057441201491220987426561124121714735210657226491547094628101134950917125095037256372387943603978841459601117480689064165812477873325991012388297253065681411805539124303773000947628974911825375773149461944400971440044793891991842675376412864767209069560717943788056011869687926607411718765865496164793659771036044178630361069794370621914975130088773785642608778559294156840027775985876165966965988844431997726632905195329390050828004070550963042324708358522041274446918271740343596513174140539763217733910644557488224417927625414988022796505668159020583988202729494448920698226650221281708697587396094229014001995870416904167812287867926532076902932702531958289407553599799987241884573791910864669657642578196351384456147615850285323980614328866120068247474636459743577764027090429611815687477546572732224299105749440984953203030624975595317295000485069013775251337693953853333826309333237219652462527706812684795591000733281623770055533087165502063888613446753864941472549785980573217470228532876615393045858307439231277383283130113763084596175798101127281883682478152566350407928480620359394624000259080567614482442204316056993761994466572803469946367589990239330009881031254749516132675024645316750320970182119489346505891180806273419324798059862818708704147898746454482244888998172069114342055944498570708369383446209026192193982956501584575099981942076471105157491827493202454870046179087720584150075166874133731713582994395008899355550615798766693787781174833868003237401088408487496946737634922864654508953497620286042582361573110392122517418671962722485189693206070948702960193366523600633402653680105307883765876148752231155495834500683057835439864211922864092688307126023322698508220470520501318264206577228568464407198738565659336680306743225441672044541529371858985933033448063742210190360754119988234816837514997351930054762135295912562262454335529733554011771202949984399291771745020014794276605747863762523815810278698742972597819782437049345472676790475208451161156528677806994514995455952134942423927025214298571434122041536406665414888579573324187538327201011795123885257442861870629090370052297251721699594771031616485782385740097865079868499183804408116772503699644757977703845031463859306066615424932714586934345928587425003677400966910561941413917340818204124840565599540669574407563856451322131061352034974392713944508324953343171115424456067951973111318292313030548818903078557644375878810923642096739658727343105259795597856216622252560827798431154666975468762565871079391190968882864284816110240447150859843691264169596573753320912592217056192144771277283674144009553239353425472672940367913267045542384606514419500284471880296409418651074486236862664302850810593842933012242313608609879521856812228134707652495433020451574909157982249716435636997173656683665437329020808917776784487348508400331320120187861045169038538603834377084896541854679712844140760851594935144778006020977501417480137037741699703906786536335994879719825797600075318783645932977087032369517564993239059814504450433599383218725727812618312974883713820976637030496408712573743200338518995879147786066445070462483634254526038294672911672451834317024496313966524721222333226285222277876965975447310207149448390575820311068764642170935027440443803434499764357084069807321374075721284818532833414373949915430631300753640682129794035390324567378044635204498737741301873955241926074265215187049154474065908809604570584136719311962817614720902841800365383823505499956246706707920558898376933597473288565947884080902672129721795846175168801124087918396313911313541605109728304204359934190978097263981859961571613598835859862744388202716422986751906709810521575523099487663106127244197927590899331680791152667918992199334986588411960038589759218717010985025965463578632023936767275722613295567834723354158168256851333683540844498961447209640676749490686158157877673867547807459074701465597336727257127614224257362371536136233718257485904914810512221579221838083354789064680062903669294182853748159024887970230289155286840934451414478555903109122948467541306904887491353864100418199196120735366843036543487862239350526030250837347968804879127198186574186186710821866037453402486009218195493711279614603524920881273236058411698636869590038836617410012901613518765267794017468814482536023121417676041355983035747499092441062457254572679705512199976327489016010521850487932236099231340032833514859073638787390107258415905448536405526336371963609983011388152755156961701880462176311002312338500476903733357404011984282964414047128436508888690318159309187955554189244762103828363198708469892714739977325226157971926667318334999103587449596551268226704088022316756215287210593871858842445169811162696502435048769273816678551782233819986575518859212989474426237932169977415646880878293574990345879958072401654032054682889317244869853517042868518370609534406323887351759108579993863760074062256809446678924538916518488071634282553769618772984913327337604848740830441505766392001340890537198948626685640622692033814347229241835962535471485430384519479142934079524319577507361823064970633215921855565319378622610045457347400005606858129188970865755391780464768367702464502724573701353210730082134538731747487570620516780186239477093526014856946753626083231347999910498803137611322466399426110332489299154449322892276963636841180158233480384000340093175655733295086638360203263947548458741972677211908753834931688792262885154220518810167213080304269790754522470449715993464145861671529063337942501225416066460979397717260044150936045271707053647396311773789852007891453368590540686760041889165947230706217682959438482221628408759107076823651938177870164038350127960343647741862953157020757713622232331401044553431551479598761815094571539659865675267896690120093439575129558502100432188689834926748396995444146157982396134723896214039752876840933352395523624283728768916539052917295012418497348665465121266015385488910499764356665224650113699513578304886216921521930162353789140496539137815972794095345125583325416518105023783029424871973263485891556927482308263660403278001342679990071475323197907024178807988252356631490136014600798420022874176683981736061002406597327996693979167598113265558795815039221606323275647245453320930350919929954837187063510093278526432702784181309774135260810648108597206955166795555811607847146621706104404262953435323336299063073730918098154379336332749298672220906084538341832439996283444972960456960747971892056927288877785822458665694803754458047124413872587145838209559643619705111215269775548730456085454315250610539617811529659131851005178533616207383554501484858520452438464962121823085561398036756879954878254135301688953854398708752325000674144539584142206140117022250409313001843219468138050123902256565140614590602286257977711577789893332183533823700993538195382842465943684382169630512977941602872027393157471792238078384845538807973987381583544407799491799940125572800682790571543328995157425494514258238607033983736555319231390458716495981754747520482001575355394372428414595399590969540080453379773372955471959677416511494787484303484646447040712722688323731424453865165705179248216570314713998701399771767718232505285445334060553571463893589005643586632550495161677956179998011390506141591505997926718840725555943283136705311956201219195974542286743999646289130097418073795837888424394154871928840511653816810769838812719707323716944145949002316234371250527142523337143834380743881858996113392229722068642657214249824296202788809365164247778386917071682452584325500714449901393534655335823472752427633574434091079090200844669400923610016437051359667685333604462281140382816491681099463789405247159811754257308461853186182342334310631927816306560301311820681007554847825293194922926854265445811769652731953528874728533381380819880579840093567147907300934809171219456248402771540285831295290336936503712214872896191927491943102702256945054058444597636087420898729834062371003047964465156203435726723120340081027706402449659425646647955539961939735241327989084202148810583047708477304347341000055734830139315114309657904485603618585686600794671950992828464632042890894138106498371001437904792701639769929800539955027835230334542034582192373126807598323570289186245926140681135968712737094873340786837336628754194691891582598617769110905223303163019173675217473855201227429228540083965162523117874142450467709627407247600989135010672411601270966673606975264077864134385771565065199222153053769580622034376109931735023294693951891304239594326157729955242920736690763477944557715914279558508863836821642139083141114941381485630182347233405628412818895514610209636577545456728980963734935884921370291149977474083660673521047943114635541914290674265831683695279876869752098275727131457544770968473573140927714570724477316007493549168512728967049288220782834927591230804355740929630243373789146205083463710342322371094000103880054482577205344873802103831491578054835335905326809860095029784611060508313312662419556234523079684009414188679984562884036421305094126355681832102913455509056062749248635770591230902486898997380571020291374130150362624725164000967246992778930064397295687815422187692110887401090768624645436850896583087731316299554142451266223936207940507674976168008585870981730806340834183011471041052621083876778232415492869926794486429846005606762944055952303232689052974492719500384230709112654057085542286348361909141212188483328475082611569379104822025588988398111261056257503206539252686806065073628729310876889597827285596075360010399983415842589723352689837878229233846978839590050192589562692211792937490763036761564978188866988464343808989260256023842123135776708698739790856528826440071461478868345328231453720714166090498893105833688811596723574094376272996500861604337440466962718524146810251966572334690029794754833315183116085079763349082714715228457385665953232973615744440623712338712962668876420957281080740269448727519440836580864121531657731221352524488290225574787748559309706867559766278422954591897050576623181563628577607854583786882184110512972483850904112398384790480770122225226119122105703605934599372625126515010764304464842639925155184338912225066641329651471714512560426926698926027663663284551726076263098930878528764181794068224967811203801291596470625027059845757872380307044581962486544523240185940180732126462548298693028017474410124088260347249093248787001064505524077117016622704851821071919194125534812682517698779958130272847484287696133297102193192831703922762483826478031848206175233572565907332027740015161181753964118237072836211416223393477048423172985122694648318917277584664945234491677994545481292227762539893085376388262437600502332328010333348195806873494857940679958111050926964509780947437636192091975879878050286159066315820065380630598022560626656713241982124837964337475664811488393969909275704413104626272075286278240778486539821795811752792409485994632315521354679696182663098509791591813911377656561283941461532246887175768431490538688203593963626549989309778362705839648568132453237572815441650607768598370088922483949952298880029419444551996140961981551336330909944537882424039235103964521781946106075338386379971646424525320467963948604302725254227718726836107413966766827624209818314948805822535987994159080405875640531110187142857131526823737652904418601213976198203017210419026510534253993705198563544338312883322047392521063853424130173002461653936030580489940691795295205071531360801205697120843450402029208693939591861516290583522358329845948896416217167564380773065640639304034950294520911203356747490587290359052706185130537365458200977925469377752580971198378577440583473787351018796201119709850233416204428468831632590595158624831909564852717252076509649411961604499553066108988058644828463882706008282507754737617746000249247799233452140753120903716055193203243467720895345851943138980128433651351776401607841475013997227325825642639215245781480404871712427494651365229397560162198015482827953778689589262201994577858752108058783052101099472487853050957125082238409447700169006845486944823566182220867646721579566278381464192996673949304823956264701438326094153474967987823315483018812301521060481988277605071241978850959176047403316311097265314179126453006351816198141215985566949706619979794407478735072128866862908059275741435494782676396012568406741437871843056759558705529934419612340602786499119964792260846276518498854383758036348864781164575082087126943027635355571231486089239690048752301775107888038928420164561643228388830851666697514558960597315536413984864113351481461267546218143754821872925676827158801104870302230233681706906264316787751293698287114090948856046279917000916356217708278450944862451753585554846547400552840874931260175594899242452630045096114621370583727995684565041397542734940074850202117875980622228183206951565708124379667771420196487882300924681053656285498951132158008488663486544105341893514643630977979567301948025807426535395466828039306947914474716739109176512240708304754060103097289316084881110628477872066727006945240147320393551364748367399331604114851695710199794686281474142474019808118114170735333330135905510955677370296221415328163771842575476733313396690266653465925333970997770264199457116147731836756703246331850308946896074908037003070677225577945331628804630279011475046557659718290936721917720924354807907788272259245373957847751150059178749973036391788151780479549535931544382989880684637841898475933021676473543726152761524129249532544816980496905260882883636049493411135709861851350558293395481241959105791479660530529031597553896988538573337180061132275998392069617907145242375487853194408292512393760669359851464231514437384664734447316113868073523363293657734255504411205088792522420634764487952539143767967317506839520381351758614075987491920852987745309719377171546224474209605578161240572228154970020761727429447474250895102194597074741555938331701958988280545802071918113973325832309790710213837652020161711900405968618671955695525888131027131729679078370160924910983315773688851489439365759792997264306585623803701241491129188157753839642014780704084477453590238840133719294606179320995415952314182469280847045581079848207834077900757451591741369481855007377117633504966954131191747820915388846572292153716450741851670710817068671220811435148278225798323821737204576982103052964298232095606052561813887489552606432971471134155288193162677597131991318542142593157893663992927021373189999081861675370547892264275640439818653283790653474562767993125197849878208066469309184527145182328225216609323497534745893121966769575311943582185445032916761725720538003825535094078919900079036096182365023219693043208392955804342639901333135087888844874557796798172998099562276392969102821851803636150995980801287372738734352369958808465451714495617405761255991393598873873267095679693946970887215138266220445491171626131729807858011529321985809168534491570633425481245076377276280040475333527913755928594218433124478916313580992129601313825005074715525205440082800066161704286848635528842116690586715210106135326082853575136106924319798735672839408282575200971794603842993231574385799839095233439609246381707877590006830199676310166070778197117315004431933768521382683696043618731322522127500414198677749201311196014917812378212267507515755587149232240009088616337797501183418182012924072234237979296385829058914714495947940619741404465328862798426137139796484955117876601744498393610429601726231659624435776786472511962843691962855405275628233945904402622737320409493401510334749014768740767294281396502239100651743117855322852244372992186108773142061665736024636660068124553581964911579453613542315491739552574386662902703613957328528092353976664584239178299389480961367727744841629797978112033852808647730713779595494472597251706316575480728881440712933291508258905646023146771063392295809289444268450074269868221095655922692335790201452436021568456861541685931203127752792641844801490115346689840627936883294573305189096647035881870455167058610190885237960414322888333717530104080654975243130727648198971667004469342114005677941611202003858181225348945000443156442796668648376574613239025120025275731087626509121038391950374877967618027948986042455866947654984234087844270330823150806071366087570121431387568786359364323271642416888839955774244131375609662182320357001876081826748539988333549221500130120486220596311767855822841657399100087872035308962744349700685668919759700020045748655147021458470857555466299844020309580609389123975626772216778438402427746566086282189230940620694674761807033907111637017668155196754399054711625643204504896750466506624859736050462377788654985851944679479300135039713341920163516879139369973292051785960444851592398669274632412727286463391754773922856227075513524012429231441213651930456597329241547914816202162025611794513310682792568923432693477670832560889267975763214585813841814685331414241410366004093163890236427807241980436287634526201085624769862925291430283570531342469277751823625944726312139588079680904818853425743083354592774529119973951646412865294114994161842993589416217936132209064786022574092250762917009979520285388631380727663602087239653029256163605897396565051404329152889485197547846401559985308438494176887971057020725648748921285734359820131401181635065045217051484046223384297394974683621139900538441585098396805682929893211252400428874989679957920020712402577184082194559962664101001186264017905321341310738620337991358691670281660265905300722815583752136238080650320316934555711523634779994000692656636780103188558016318484235682665351593816964316630421454604166926879467888080914117631000912890228865144264902463434976014094486748258703955899533016879885432898724035281818749786930520413474549678146278379383400940348358841988761545626648249859030057125835279130144427988456874127114739520489466243037857223456390424696284069787828529722873706274761434163561714277185192327897897172035342014272731159765401592508083772216482464865377809460786467515404055394637510437449778063038593719245179779335351261483284354574970875012596775747420321710556659250045025220975248129102198170562633992228830044953279131529027296195708737309234722678026518994343570601134009774679688447257943476384463366795273425227041569313865882245659505455829850040795517572172753868147000791286830705795944041877599906571291393021928960136590505852125993959793767066938679269448667291931428294232105299257230201280303787765916332171501655534447302439497208944859629195331213530817456913992117406512927852477527788579632332385688039406777996080270233074216009005520447092472600008549854865380930287835006745641960586214336937647637413002930493791792699824057844176727624531334905787347210655022832526307154508537207615408509053661624267753825647018421110871936729397820628874363044521204788699667644498862004488631160560949574043027723038502854223057487025696578922715141212835951239041254579225599022237767472589313165854837530026887391341132310177919746407458285959350726452740584547130060980625532539791371987077973853929199503092242437075913257933721530863254768633452081916170486872617891886523465044150168201818546134023174801701109935821775046278165810831356083866584132051153125949069854875253097358859163972521893763934223416304194025039802759238529563921677439039907953084576273493171136212425664055707330670413879144169441458609785974188823441114859151461476509387195858061486494449012898133943392418542966776511530671303070272763900487765890287245315967117181395888238196557097676937986979601524322599007571782509027135799959561010680273462478074887092022852495735171817423467732691910136580632821471440931768461938362381168252543017935985283801289248023968756724955959956527667562259494114163527967896858922592730254029122395859231816880680838375228297490076921338792274641930457524094588188604537852447594683540333357664356963130892806572396143731478211345972193692598137498084320868787716471950432994744846331167663019643014517410418662084210474558864098941932069128184314885761623125423863038728428178006792122702972068264899425878765422026114514689236274108146470758963406770246413795338143434172456435048422014095634240403657567067904470597302115364181298840629973678356216591684129958328780414041043163663014761392116891447018150653785718267208533183227790377758170159889027892272217154644931716278980397184894469390124590008564948744307402215343110499011347883958476779187778228887218427808413264068974389295980485222509606455644957791189211153591645240051110689519007291188592177683853099861989502893896648287890370176163943497045668914777527178385369364794929888026775489222052144826288117208280879611974368978687907523426140641661904084360903128507737133952289631287759340508316114462083142056176835327649229394966452504110709530563392853128373913971966795972288725577315325110061129617036433651284876194649304514794843592119591641565759362393774217338843066661818477470920862664558522619426534761902884865878793589670227172563141088629767891785568240895029517889399156152354409581444525412272976009250900423081955951454838572956152443253286885357337059012333608291835224311388253927945957646235303105165680259688670492964022870418867033093436346694532877144717677426536495724261765537497106296163930580693884204274335556507449257390630228732481709753210494882263127763680190979227425023435921862195821851262885410376748660777730141067292273003245759895054243478498382387573108094253610963950625487329836226894761855575063803793684082739264954985390697500069289533400009030788954163589839449776527362834878700294706402103061285885886018744514799293905700260458054801304998962355853168908332702460807825859367545331899693544264242595584853284218344821142623857989138300397115277632907371863620308473224504668492883516536180947081923459360777624871084693202643662109397537931296493827428719002236939696428340230184256244588837196024112048304299356599754567416410108499404861501867061799417938042970056125106274914535513881007850170476508854432952140441496544308583611911762022323366327429262809354870899731694918973296377832928797443141728391932017315553818190696423476133812505407116265128351947720202850362736191611054185494021300231757928798503548440832618784220195740423521703717932471783607737595228272834941199357196857939724327020477695581546767414491779139127461216864572935044802530733716095291134173152070621867597256902753448197062796450341183371365541253170112777448368780946912275388830172594111055436445499564752495345216648664505319695323461223897762086325690608305953194678894741289311959757893819462716298210088942629338837939232585968500931488268012507447976926453428054686249718692123951954548846600691111180332543123162084167245555238235098523822209628789345266196102770793508263532630853575942204662101497110968967851299273529792302717771073692812598313917176012535584350313276224841250790799543564307646412048649095308027765469206646949193926016684584741106633001364108359383786299952016040390661780748514981339177206120889819580996206740757301535668807538362452628776096625301923816068074214874293585145309239007014279031209660272636291482232909212814599912114530870326306128095914914843966922299957158025167565073769259567150870162979269853939730818564191861637416527476172403239616435327898022703900604049834542834415642918149210806917348871603426706705765758287442578918141813563440549479343263417772494862260200204332646676541535209549825822983062570998089954151534467886487300415906431210038581743187424747719060064968313526414435901419223260939653815876989468091258605252144382363817574150390166575080247357080044489731526402087012313379676011515168718073001254782880622833901443197835293731439723845158513404839037319627472144971302937460171277681640027322946082088360769862709857875054447415037259123537214020692231719958735453020148961661809471684447134274796563681581349426587661549336426105932857008258372811256538884161865701835656245997216558783848971775776037538680024915725463480152940124386824119332514559260045141064282679832214950142747387264931007478902812621864580347755408949814808686037823487025147017980851588960542995747298746594946474634926802323159963213929178282631210145956950193821902903233158180461138323435358507643048599426162074998005124307853068758390048015190481441776454570110366372880881748095916378942981768373034678949334153764614282179896501531966421243001076880194613894344501002635445777626988350800068780116338192031277332131672664636521835405481974390580673699732812571782608206528048914202348165755526078820268121772584601481819511061794227509686329440741464383690749064614322508841491604117122577942127081921627414390641752805067180825494287193962186760689880225930890001197495503702844567288355127285956065019747094560520417424840092744609896764012598559412043605492946676398642022887167601314414702488155284263376793782579666085565124014997302452184879086256367987790801455299757309283963912924419143571243086314538775188440675857296962696651693253744550083046680549125875503678742292044555586870071971835053823809271140688335529742645420563882595436740708633750830491665192486347411501048059550196890569232607716858308709993956910235327393165158996669249996188286791721640632275002858192854464859932352405887300825461513306257079915558021013104021856300144810026728726535496347842789268085383412705240196008541246151183442981156262794199258558499930500354242643944368532786019266700235860860391420578172693141023369559210251376496754858652346859785893848809676547660715849113663838950748493824455116571997028477278411059580179999633540536703117800966574889620618348348404525307713886365739320555887390309654700451557628747154003816973402229540810720295731498715367860752740530471038472224365568489402602399364797889961619027237928025553074757661270160285434260924537030997606751373007197204668044324963158911387085367770450192893324456916475155058978752180199555843595235916062016370427887695720424344068851954659920812383717510670497133086199212341382297095171620268781938469331909952536651606663511508972106473492146527801405961008912684386069220889710478384802376458503259325495186754628838181165152371384228000488646775732338841284420551564233887084903848704557282763214702866989218094098886078713117014115381367064727975368727483674775612611812122718661339423855066680151092258044297588693333539913824479459813244819782771422971373436011485346490978471565481680689700029808699527910597044211585357859413783286059368546372693206613880272807392808996321527391177719008300136655293928177538074528620677745167381880934968341016415924828646504335450660170633737392103322514506148279404238255014314237775279035363211750018680967355465793989599461285116377519694281496767438450455178487548741073448389685480102650859123204057676101513440683020728161414558151385393924982950783882779816068891121771144992987108467448076068670506530754967561792463040426509674856871260676940340394580286877391827901902513877770912561925606679416473517044294332169143149734881365179987520710025906559385275537569253331115705641980083762458262945326886761817420769384479736126359976732792475622422387939823684929259815533949301232626996682479209566974693657506931456121093650213026042835635362300160272646776240329474415478223960975238269771195977023319248152239670724081633870155232848338554525852228971414980073480600546961440590988307013501677442775410365418974760789656656531574181883038428315314056739946943786842615141059026115260021116701316160139365912539237853128568652511852538305339610670575166253306851630907717247288678277637256790313347451128257042442921492764851768989427885064391164462681752427002668909240342803034369823598256765598010095368938847912033662074118751835350824661759460542855500530967380996019698192066872005752257492426006276442375459880513611029813010461333616869973398300902616482300921286586285394256852817380403308123285718494710572661877902569351995517536412948679023443124198183201181593804460855627510168193694656524536473258871518318093949513741430042584811896970987908140783485279025268662097085826300460472926083252657737616040532972403506228425316616799831140804666904803185091641787318181879512088593542405657770528015164618931043593259920861905845523486200945707518148658350208487660754625718497194260747740176684494667902246125676679454293916271088033345836718003095046723510904600108417599288117248044682262831995682262113929780025243908898911024829618578091125764851869186202203884088270654484064224248306805295318788651105915060684223407173009081985812225708117726903640015638890052533790784306190219745490741850885028783941194911050537956052359320517512530144102786880676141868106959099652325467924645522056035934893323607208976493364388057731886325111596798884938900583927648478625631593494295733427480674265577100146245981979981119364871988807261570725092656777791077098844426797662208745424351212118773852135456752093724681078687109461458246879692736181255589445411227653795472155099589118410190400548642830009967094505345207690785305794776725761289130472599592009858561923403222662594869044427682314793206585468424169468261235121498946443845145423243854402563745851186283315291031511781422449444819526668546127541475422126315175554010596804522072445822719511594996125060734325113999354544624070864469125310001862159914746368832744319538063135917327343659904951060945207765270732185617880055821832162088032527968549233027118061404942942682213070924495089579447238441324366449765103688480562406934642382695162721434671659068706843997589976353397184105549849385360386773855690066951592912637396604109580746090114586643911396429465687462972189092112809474310623322857512141268180390557953706853371447993688401024863026173425851047615847378140287222479776439393920435592164290036485853175201700105440905973482734542457974157186235671973490146254748817069013589264912641659772084721137573387231040133064704111704016107679440609084516354582085762253128271157376041876935499390067477516766153327092750178474835324793426904983928762248778440136218729569946021523027175240619346608637340582678850146194953268278380271350672697910406398471039208674908515558697598390447911989872903971621020263256835560618041315805953568654774149971715040817731527889137564016205378175998498379151932085485499772150660264652873671260630070373177182041474633230083877794317068773671049023223679005568979189662732089303352930570636625227243649424205672725649234314058286408389101504852921263591082040777303017120202110351081717820440263378274228446921736082339347005646091188490044066826639223800664439260371322119940883818034664672031194487487632345242849360095723040828518609304902372195277023861233194682864757443999914699775345972435626804206038574585800126002944380584545783902984921637411080055879605798116538804860340728274513377252367479755996918135969821597511706160408385955191736870315134496312958652487561212490539927519404105490933440867482252762897908499265164190410424243450579548834816218646425476888604876773162055392294479434891302746640467024035231235275178364996242879085308739436435509216660512958189946451319819420243897464017103762693210244175793134551081261054645457696867291053299312132178844677489890688710083827169359404169217008135915522901758293896793159363989604184644211270414764078392565182464093101485616025224694468255868149059940569950742973907572930929106373627988159925096511288292433186315565744530546728421192395521982800307873335784779378084746229885208287081217879904282180032403030200570999611859761917798335538226991189147343894272782299510902403534760731393605051259731963102506071415820506094091719868846745862049066598758867283891826507729322236356976928801775350043687208274913351754689283413266897209821416433391537295179384109439593364754713981055556424848859527845478298612837293652335958557056325845514550215119442554835499695301728023979009225203754305818322724016637416428929656582124852290788677729243329459803376511421583621379986353171911273460237340481278768311311358187823886759877413631928602350040132768962981161291420794871868557376826537124193920039799541509242676214063640981783278956087587397069990081216222381978889185763908608568394722897716792510071854147789965242626893441133977448920520468649936575017273783223832194690675809648114554292088527194797836138192316022921742274750639468478646697001363091640554843490883332467400010786278596802675708345182329784487596637630377883935463867478641994864496354714160488949889961608340600744654995857691093316153178285005543831395841860629157721753356224780730560761966037579433666671409917574587555332519323125892478108636268213572395829509094887463000124580043652367451773982692002125365656483142114876537953959999736187956369886936656180111809628800265651266678065827320892507992426100456463554257009578964148197105060829288778665644314235871175443733900939197331354075649468296028433948596602136252774307704340835022734114589661261617511734774471533414050108959774659562038251753759915918035051186427351820801109684954595644756949932209663581931288272173473758568932567428255647754480401197864825372367946600431253408856194617803277703828472299127056631019882602170001618546548189540298528128194190671163431976845829697492869142663613246678858552712879670583748637350283992107382923681717911949967177419221353488080321087729177213121179068957399242203198007114610086821429011310788076803099070709163751303402484916048945924808145965359732620135603604781288782600799817013621224730477904686379491242479983894376028634284028018217711472189396300616881792744590178936589918680495068864263665953993017345550735010111429886018233364931685952626339809440650003106793264608548919081463907240707822084217816149717882180251210384865559726220151615344367615697477934184083465562975508248215505540899751696618896887951527287174521941094346378492466642583952694340883250738231472750643050470097961784258905569333774217999569579786431173393189518708503419748914821649473527457023127055261695068488793866487829516024173787868231897502267887036508707368906974417523299828726161813435496037299738966003996542706184719833610410478562414550516880774123753662365753805560411325541817312794596201970898006221375041054591151605231221724822619347636150676103468461331580765374530754943752343174229462479877735044679429525164793336111686772244162542120779590244596811574418046153041101798622665797294301270108638281434412042934604571479847657625680627282913634144498494172143600258859669346935918575671027482521434724945983045191197154463825747725382785835238169731370430243276166110905287283013682306011921271947850124605284854281665481073174232699941982389608592926513400535506514739219526114368240295966646887489039999113822123970454705327366009727844756941788851851748886227932943945290146325399749621163114120433759284156513720975130376765880259624318596022341477652869880315713782366427520289482396400987625973485764414664338635083248821022228546413272675390988638045830472965478430052372823464197300163599219488225385778600423536289975362866242143631481126253412022872523656226979960639117370904555022423298093443809556470068791834130705687374484871832209474998651548254085433781970505554111655237092796554905271306605565865080679193457423215729914643127100736466492270812854453806084659290726897086311879094050717369883989979371453054833753666120927453230453035463892331117165841062951733961656461385140765852189153114364706343352512910411297995265718935545264573043323493685985701088371593429951824116793797898578018736526996288387992065252346199741165765799797815993692899729693964403779867298444841782755061571981611200792862601744981728904840145469635419219954278225478230677311658734762151238012684104687619443597420342945290746319343670445244971637812022712414107183482399307497355294121856334544637976052960067742558244793163738187497613681557480384626401698581668606664755838565272043362554898439881140695208334914651720689358121738379675255268137434672265823457736070536848128195228699520406438407127327506649864465527484906689344849584688940605075238302035064683728543595297735667937004124325449434220432999620976973728690352922956068231968792751764823918912431377890727011844882917271868021432284580321991148176540694160611946624220764731656968145131607237102634436111729273273546410953915172922821328447538877391843934362995039482748394381870615633032768014349803838044571448469843073398040419784237291347850660959961307613332224631715841809676000354175917029644200659807047796505537874261306678592905483613247094440908942238307926704626875238759923311212376289944612853361867565807338986390714496691820213623122457057968242979496061558324887814599902571113687768273911910183947814282340501646381311210512615987011351106827456497154682267057018414060677654491570047737854037628953561787288358256350822207263511834229219455529027246421688790680776436085311410436314316494799576155118754182470866018164679034341315660581117759657117574136673888856761631738898904108453975996345716232966878172722181717731323243829909731583582081794680628520028454101817233413373094612567229346698798355055121603439170010522386827335644269679993736600384414726508968750003217971266518432596831195809206751108294213469442338413011623424604264129988958085421841935846770769216603479594527235548855152671488204048956473730990806541783184923165118402911943488807879766473656646752847980481364379571034982359053162505435863151292333529834294139096618248027327068948511771311642762456726578613146100192155141702482519559477764899245370200854792991927163581635347675376321178997024396611485869711207708398047067737353304441781746482327008069078293568615495733469176689039041025048981083807588500945571921581961039256358471989074014642577361773042571568237836837680167542171764118783870757126092701304947557420341472179116913030905195389184231331323626231397672988117979967346245080755399804736536636786980946788514087541900054577449356431207124267277183910411409277229972448500054541358675339287143713560274685560965149858766582404898926046380120300026090049821268800048652892386019753784906843672763126376383648213496338748245461661286299932293341949344858765653280228915815546380914026725837019401752779313394475162127066650948381512413555569131814425343235104507180304418668185216407034307567931345696383693410953939359818508891550374019798394067183633853551656710419661439465751170575732769925720498353408512891610804133885549501853460369405164131234424661212019540622941312408284879696390357031609774877955867009447947818520171196065146171075547643051483679939153577491655545537037565468419381026767550176338550545600862469234997417743027593375727500453290338776455187696889455219425265740639780615684872995572569745148809779025868303874757973122756612286567970117293470332833020930035202837065217957547987971762198059917835779166700470672088848611166732495440590630757893485012694946015788678123120763953252031239787537793231973962424906791806997786365163453213036066998245699433484292309338570591994511923373556557545244338939408160832949840010545128796621549322658795303999810415875938464261153696624024488558834090882074831030898789879902949345792759415849667568087895735643743855481180294278794749167671196804821487854435593193842922097360160640811176738005405462067883912820411760031092559105549222759422461033706794935447985335835617477865028905328136958859089561866349228507150870790176311627750179923326108134209732205045614321422377054176878002505816821137784623558689887990247464029945193224786790072535226739611541309760159161243957382806525970658028848577964592084559939511627019779578732287480362169324269011323236357270215643116651983512233978570329085983562852647349482857405576493019837839669148093830239865814952449081837019356300131164080412167136930733625535638304527222875733824197703639741118223455979566858731059873724293850667589351397891953487668987907362650135074656789455607418656345802530989572659662715112806912031567597875007423165327497622684365544023164219804377555310308818421103538936964293053848120491104931462616535484604611950262263782714164879916351511185821386981905358995074007125557094526781005292747533400617022183152992447961516676399062188511667729384770672941289605949215490344045153529555969884782409986051051754189046874348877421743069985047961772296152502844472243509053018567479240035262482069423564775667878939424129600970095587891718678356901970908785358761719132673341190071617749025665892118772668039518950699018776294808982740506671338327310210634623870629344530713644840746165945440866271173605322702118129767122029312406005679884026553455963868975368768138535698963830237333282464388953295968922503680790501667884342029332228460080834727825452664752744286152478442360800996167184557226597573917046037490901089385547236694447951262081579413109331889942225680604311190545725893554726025302566580689324090751242638058520963805282882389681928310607927364475216700945207959973884955758423455521033961963342248821164338293619039551955737524197031088698664963441431082423445866561494978926423151920428247297847507951248329196017507622207928563961257894475770387780789857551702341121343874145159520267568624414776122418459594545214018587054755533390571841320017180653300665927433929905284737732288612305672904413070824598283934462138975786093605873457642160138680196684977818541823488901603948111613298178784261184922297831134571390211780960934971712165188609068697446991393056433160328138038338682736943536688581799981331481283987412399934768057579870063392709783740224180656469455064036109006575092054371228824164298316299253081058058469168957412860121026349109866208571254614214917862349580043617008335469640301571499767001075550191075765422775852880020089179742242826205520756598148354124566773307339444208203770807812730948941789377272596127731203917322019266623195424802169559615165240504544374562129235151037199595435903507007848286423231120971582871865312553633395527147600555010011979175304293124143816192309565454071509895839655751006426409111558876428263125536139457636328586054565803209954652937864550352722148199112237695177748811229361982053491102775708829288387053609041468614377354553272275176670323563868978751433008948407553474662982121560132521685571163228625338949441611330867999779615816197784877080971196985101769087968158645374297327981661717736494107140245541545486197102425417189755798721979909929077044287946283667347121948730695257986812955121933922156878867033879744084530595659431516718082499823343654413274994627789485233862703148735445382936405492990266099926653987753641540813177695895270508188651673892262339267364389970840440424746275291953128937805044007450616508066414681257098788211046551629756636750966593586864404431589762146276794561063378720072016555649100414644004525062919916245778617079624992804303187467786144150840657256106404365815560252405876036472142828364597165890317351135203578543389790473079000136578780926941441011719324064086351024678998120964175225339422855638376498180101184214755834456607221202289805495251433493102089769932600052500076620257282685489211957994103812550072095796798214305137353306369157076786360133176105365571494727880129566865096476946071720694269291149316581253170888695144538522793774450756573667182030401345387818323587776289821352247710744129209337178258770459777707672813955441499312122857882937407338658817776965648163850367451564233943049933680976299284708841735910581219902055354455981665127083332222106287370425328823293277677018999068910512103307488424522739312323437871591616728368840188719759464102057944267285759580797007006130321906362484172804797470706246174120171518642703389098406895963085148633810720740192068360320118280882340198840194187388560407564940651958824714727898308964996847285952290092295783570686724733534416782229635093455319004562635079321832312955326101593143877562041768472767132413581974256124823981957102829927734733124026898011117072503789689501452746800754149277593028063996571292302932320078609499879275645042062691196751085873147650425409045140757704624106838222189205522424957271695211456891655851500824331865151732615809716594224057726014840424900325772706340232826711307651405166664372735229370109441556525059530520327021648178717655769490130656625218485085322224606760433934712365861510726921907937060216827291214193103844932049327120259982376776708297107070263707339540587763772138639443272856175362623673162572597221534797468964333721658594892029970708191048447252937482554342275945143138652364475289042626145372070147554342989095689492464808272158518363096079116990800732274403982929111844606405775671491419338544648342617044476830646057404210292276683404450616644015075681700025560294192393421442554359093807469561285100452138429517695651409333658012670600123768947750249598273137085270729694189367581086109087454469018139821967747529058565039129669106737939200076493718833554738649041277925890939096972591174078781497044372049713863967426514164210180174664133344759499385256350456708367724644582430082845760675073112707430981691841350944314702026381524035229283802402177670358316070371988628888778288731855918647445196557679067108168381737296069506213079135941002049141721969943071205359113645253284155446490681424913267420421011539382147677332261644923241485095387507119323937211829222639406403276730775400615133722921268997911869962603772219242358917074658145066762412680263584287050939211335428320248606814878976465898557141848858249258306884657320337834870382347231158939786583452821984232431708368477885499649037842415958662309469596589164587949515269615043602156653545269950822624588806358569074459043644589665164328629967762525811002306461966389829665067603374563677593416568787917040969171362075807861196050223464103914699475983888895194837220519409968178543136542813771046132823133062654203355814125266938772988449928849494128893267688807100272805957136702910810429299288885647441033698843284527804887222206400455984883740236709111286153670686935230463656654953331926405938855313507384172777834019302901866998209988286626270129998293906065092003462468847720336249520152226944184500542320453151452521375826489329079831906234030298235857278378325428028451765941680631090757385106741484916311706382934513850649406928563436011389319901995177292455284141060633419466970449562894437075202408511712336206461087532698152240575611825243059547336936299151973436267911518987685967450251777511315229210737772767488415574720202315092746480986945992103060537853981134870506158877606968566889663435480906795258786419163186077893060753114451088433326925368374277791110842632401383977540922181141009389646439170518745878322141531811484917179728876552509266551243522926143792492542906737736527677379978724187335486512781558561357449648527724852212679359228831613149652538013609825178119770278439383234971659893712179061355440359355832983358427901374632760070418926174594059462728579867548965746381081728076337029039592818964616821820929173236623270338305674326747823150985003241844423888404339858690254277447575793836760015446548384871166784960910119692328793054958294544801910840969318716289832732178003569272837639117953726665483193291425495967908325229707905523730273696141303294573689532107085609314787948833801873271019922959971493554685764536928228815592082079522785086487150778207522087404169272611399500399367245488940978831631629128897850373627109094557367031047325389222557740747176846765000244895985258969609485479086844316809858699197998880912879222398811957520849973932652434398748980980570739352006079393655402650355125256764533117609424923118402355240015780177895739061536787963045688889534598719983844928083923176821559221459402329049910771422593309274799170830941086972863001974318094841163981107771766951358981212036791308295623698573532051888592523379128711000503183082686519579707474389669157165828819524096240762645966100640385771850128726473264203105972615723167205594640258122943504856133687015759944126729436927022411154304720345634734437179352978561269916327647084943128202849727447650271351431088195197263398396081726312788115669782917620630550353034855956635144889560347607196378575328101168343050666073145451917091540594415334454804082555029936698350277864260349140581329558780248670565460414683156042878998636509684917886891156629405959541398307159487257823902988612356898637517895818490708410413810260469268205667328861502594592822848086051300062374706918557010287536459420412405697794812533913561394954865035653359243589380015457339505149247518252009321866562753129163207392426645094767799013591991838961873131477967214409313670242817881775905796928317904251635029637068165450630376192791775920875218405827609494362184445658739350628890419940099606352200533283484304083624693297581246057262018113999476655906550128356155676522516504415351041370962987074832238949409231454546209616953650937191136011642645916852943627584228532862367590673354023590632310929595261584781519779307241521343562565939509276245094907955622173162291540755225093195473026566630381200162366701406486971807523322439361060945223334826007064957515032845855391558796943866680963325833892231888584051407545171599430755754070408544471472457587873514048073841694701837734227403301945706529894015288793445829288265313556818313302999581247305447108738131443056966943213032480619258639539343458659325156800172605726975717186712871717856899416789753655864715839434463954761270271472722253211179227014457883920075740255422398414772725667505171883274227527383134304377458740232720935957536609969792256166992012961963267180486102949912296399695134902815940847144014228943478816658195476759099442030492825751208006179595401135989844068830983539232511461336055692276340293268043401297164948364555872124513805981238230576688534952798523166858167589775647770934867364118009128473177826868402081834639177927938277991384468344857668840096118078508234179225622638169075319184183115114226850184708312034878795892174733906213466557992656398793922943449765164528434187266969376891650533703111015348047405189591216145059086419997506352185752175243038301103914270608070111202608696738833714599581974129689037033705897275610177007107515961529196109819553442260015108755939067104411896992878344914853724668288487695756492552550590196477032776148809823313374353879251524945395085409292136393987954926915713335382702599890893396294196577331370241226375040104078483552004510977857249932139865445430469988578540508301828969484491528483125635276145918742063132404992222233885151110524506244942829167678128928781918239591172483583197974795913885542411363394510635193685364154618118598623008435167767665991815232296387734894708377458979051828810424400686724159028673157669407160825581079370413576171330400978963887656764320320127603493658730595345401860813713993969951724972075445529699416678602522039444449956412489469584236967262755026289908523667835708956656651447922323907031798046108193964466403949789406682328067856931235209505420986120606273814149067400352184406493635508707347249977997722585525849245998648724192727154066619535511509672335501626969993211420546192850289041172098734580865225662733338809807752088749975950259731004710235953821316231166420924104726178197464535293482089286059317516679279423327895879863510488849384558000189463749822553226384716727207616824257626187881016041145463352934209053866531382426690136439577906296449194464287258739016106205884868836697373661173018142213205909370780735221340951212215644801423903300409264450063108387031560721941025622167766974915033690130635915221987666771884601517969141228156246516488032482732426457770196859509277085049202135050702649549999348177872678218161830356703694457628245647945694938142091230851912527903263770077465813816569736592728162172492188823451660426945593602943588310836209609947464109054064882853951487027793525632360832129971330640133805122646994610201874134914703368375184181746413400163917950217516258690599862985965879867529630710043854326042414217132691739287716474609811922063905907226167283720883734058795390386018004658330235159743471662733440733334753652105389416294112860844899365784171035030160257382454567498542624757773767058129127994195730480920039313351663044477733213084948942960135452632726991025813232300726592965473567704233564702506509037708501507121077180798440827314463852434912755228755920755261315229529045507357694952364508981266066150842046981539454544749794290824346336704726466370758436569438365466796732748071965232022989337241504616167588536249092266172777723739237142025683287189066625101118257109692773852877154424593938729655815120817979831656379970252323495289992387694295067788708079083842220368980078078274906534925769430836183249302484846777636846329137624325727891003112616278504427253499765810843879107112114127828775352763116438268589621464955521887640478874094900295783113668474207258028661431110000144299547719473828734613147984426654799093885564098319966085512629420705346093097219861123513199990487349358297624861082019162498458722407455921967321269025857793400538290218613395222415909726205283198780742557616830387359599263293760138992731316485498394394759749740049814519075618281563625935152441668131454572165528978304672769453656291776635155293317477594945888235276628117759412135107089316191402608541117673953753222425978410917416505818181067497927027553720831534701245779085877732371198843426680685687691818049417494563304520338764584160017152338879934935633829047237944617978055907864068634803827613448358592658916033818970973737210478781564016427187663401141743003683003458838608885319753489494440430888313955979550585545675191011722002716966676353505849733138373000219324120910205515603006652964083059910594719427056453952022364259436134878919603502751387963480477218841078899931210614346082753671938620704921161577522805129010246166503845717771647218398982079572741480461913009183967604682035756737865029437378296414482259786726198054735462615292365711660492482054197595040712453708104062967373909176103506903146359181532307049979688914369832103102752414527900507445110293827970683071776895455133159319579769353590345738755782112081903632673735436036837202144492528242917607394822067955978168448275415728408011460602505111038589102060895064671655565224022953356346080971238395137785048396956348349793730114612418386767768693276701314310766182683658692456876837431876637330432741896545971353521916601163778268851129411477731402617637504886376478670715162228227441431033894625367754400767912978566656173953381158621379268334474324657317895501714743172392861998067760728814825996370504929547205750784545844909967382244624616812890861829985018396926474324879530912944671213628554328297563912467518930466694363526535380709953703436859592884666049459694828026506475212342837513220008511862677426857840637323564039559179670390344610534568256970320165129026881586162092483325738475895164503179511028304230962588059219311240742171589008818342775364165669798316669276785168776266044503652200654403085286149561763614578941443893096595691020582486206502985234844007192243445650240600850626063021728100885875477651465243959031334752837305979615530331391594000930478335265226440561598374829537715320383681353684594563256547361572809472878154666972315136857750963953576058871649256195802515295410030446354055542770545866035499911944696095763720846807785887456495470774818456477193604314812004000917033724037994875638655265732218603837809474016659753842509141551045930125073759974503288961326419356043051537014885277654303832001331269795924801844380974088404968743982813549004184081393132422434297316922690629519737689210665245845924057309223314862838183683656219877787262686657273345221148876913512407761485343708680462050847172382263973057659941292219894894671171109031454419194673126913243096310995373222180792062733908063383479816814998801098872255915986243964410834526355728179514015786683921379776620424434182161697729652164331606278054789521733564461710599562221739733072886732408690699172966949280902291799936476411401726800280444706087260983154203575838754795116819816552663893157853950629830872700434107654605928370815847101232892093934001331499856644078670275923714046487183048381326031918850655582536391013470080412318625291074553780101154067964395912406190406342414490537340683127732074159083122990530724089454302215160815440168336659337997758162372441793809458475418447607921620881042220707987060910001600011386363029392161110445515697881193709100581725282288792719994490937593440264718020206504989983505324353916426092756028141730463753487598431765634048590995962546798113888333428437727990215457860727937196286709641876985055353990857495391303834226961491126860895448583252340748593490355025635854315239284256577650016530780192438224691439882452549046620551442184784058475542118297635783223881371831235929040566218804845963659604522851829147010874636810763537000259702479667704142052231581828971062315320108513555989618169810349071358160200302537155084219845319588803644510771197461720494775291903783728897189304392302090495873299811173588718923327143738018699667327007891691861094102960620281777234372097250240067888423289945164529175703993831722190711129017917363090215284555938172709147846140145849619586905116522835268742115630576040322780112869187146547953469211536613873792115215742812119057176309570536926597091525104599337493461335101283718439415993321154034439228242297696375846630966202325106608537948322941011848985653555627021763456406424154039373260396162648567196795316387728960655345545135680455360315555912076830124831920942165888777117520425936936890897908983371712665640409303589434385187255890813742514495659717763555514597282806886828809252100882675869890501375230975366261713773302585270629139190317888422097502896620199243906172923230628677358715443980895048759166454884538344516137037965651811838430303408183880207910615843823863944685341413162910849628036636327817683770249527595863293847047373863704005326368849369023872107862149516934919266223842468958760776722579793111989821983243725866292421884986618871514601126185136025346059771698258213895504521869101108674269267241046873212167328004395580992075663513843510430391256051326138738556093792061069772410312586649997140276962013244998136634436597061911766725994444141268986905479296149739263858616714013275684293925303990380529034336336432769680164628438098567271151287023416998102210919428357159759804390367138360767641644699071373946025511038881341768439833701070574439665596280876566765274041883069501127580329206380404047330949436452211173004579137655959849827939833174376556396463607619466374383313545535898036617259815239212559547784264893148387878173495822912697759312195548541889358415604190341386240638544316236439832239627792946607270096166537811657822055949250393321138534324675612116078721062724668520576054291835102735238015903363171375189245329493213279310338709583233577775427076595754046317656434442979366063591543689506893279386774815712186097916828151376302594860392570767350488342884997463801971899082392898890447402902171170547974495343185207733605642520924480862970453381594490225891894665750794128973041270981691615186350237010162062276018915904514266497736738974548158197240428324565400754693405863637427499725577497560664841085083806972367179988139350947686673201011856048446811546740383245113161184588321404421617853493060882692671692643668105906435320491555090009538465437647867073666116586909207158161680876724853273618303374988147802750993625715493918874146643840548662963539659913582734809585383117313178540604803628911780379805591690484292439202844359328552264632780810955981083850365816682937904978853447328095699284067161066620852475286736448881602454646802112605942285083474872064598029347230149667393856315946906859136922807220888762064523577572768952400347396545904673103081322041519608663915165729896664231394673925183435789585069744809416485117764965300228785409157096230964736220197325854687281692125955701632466552577388272271510007095835010871791976953234057850080149794602141320889590556921948498866599751885915414731120228675311868193490559249840273135738369504057147219727304609507628271346791965445616957742724254869429425595964181845673040063657874973788346555712611852364129760660740564286783162685780319552252384453386770979503682122467948032240998916614260649483516093741781968144007961370745655267088068383461906033960794492522601977459972702476943120824478472014901282705737236003508540038121174127593260024874936956273392394274660720007518275418141799056034390674684918621382404775660180431624635109267261147023713681610590370139121562293064377376398027117654694837921381960931249017454131778218157367319672981158225050841352228091615788190904386376890609205877701304744539447038936918389483751021302108523970456171381416220899136227294880050096772693672442427892004400629491746647285078315412121790613994810175776583882528872010920536801131616880542744621703384916371613972430979627836814197262267355048797018170992205939564056599046659085291081484043070709078517306515284059472006680287108207090758561474016386325281595742773935040437790646215604566541610075990746023217107670179962655670985010460780689488942597991806350769989376852005436886758843424113839148906573725629602101480884026687259087810801034436750823301129495978112158830942406710783835904673645166110633188315318845187506323742546708888704718821796856246028388865786407217903461937797987267325274788204659771467650471624512414194141500012502672043278633208007422508490232969751646945899700322880536822423283483683840482437730877185828958940367693597835896766481610929908555479017680174510002637176424326216183503584483416178950460569959616313596473887795517085202236443720278236183531442238933558906739290565704988662510498079351533238486373525267716985468148108577725848490930356342976686519697269794584200298951505622913136292025211818344107763508389130785607194621356495518740884506009350767485387728956170609553487399500359686346277802590129934906804042055108224772132456189905077188457352573633525814334922026890110448503498568541160120152623399772454516632264787457394179126765271988328350784325738201627710325094656112695545881653419399481983810220164154195451816030987829013645472535527775319455618877049588855503077611843744074963993207027687244965448028853672538391584763583370903673623156165936127463092813855486001440152478083495074684182356756423056099373633971205877265706832637806667892394434188216822452474864174385794381083389238013777627688837862562065585926964566489851741971280089664720134297926134609123438003162797552373792599414168407706917196434472239829771035823167949825929221997596937214859852733228249099225123539214734719457966427019969798925071164622555171882956304813191722045774783674660532225154638049143843112494928748971483233736179877532716362755676477914330792972119619862761240009568684010908826626639884502486237397655124479565674279215482580582878956693170542481306365068607659195303500615018219822631242363269046263862415938519068589886871717099455009979490595245684601154594200604769210435654892715862523744181362898633435329128256635498268558524314967887053877135549620235607280698005721868028992582171474008562694306831243763385974917929615827552753887750928540316176305230521736921057930872093195359080708951758364983901129558684526958238287380173340944651940156453857661217372282723407924996584310607936680216083054158425226385887768427725728855731488360166561192418373666214335846129611680321614569799855010979174429174124316852942565952266785367041312660626807250209857595989324725306751438729813679979554550043876533492695794739914517104520590608805452705899176587148453416154500554611535424272567887661433573232051982749951256698228213935731390615190058034819547828158335858776918915481786628152728835832294582711940600796490436729788437593693286548217857716057851090172363686707636083072631373497419239676483456196238128766966344264581018778450445422684176651356829361573214170265762529640033772511584830322128605890544487804595949804117018459064367755929170797222408481618847506271430424501574374787722293922393659488584983742502093312714351666218369662822722817162731054064052414080764767858854569851955384086157584417737859320798421734433428525165868150393978919150676054915514655101609000824453016002788089282070769178749404780134170389467008862143422331816078825048234268275075886859884586376391078148781926499083076849433781211408667239723981313582440483236366311796300669756916862345953116345968255116567853960112127761538587718780696214577286426265692510003926686280130093421399832576949835585835010848708174999422099924805811173973802800284530159932660724559193659477636032830863848612105932515216763544647995197224867598217689187055943776237443317675625147578953095506245987270018361118140154048502765731050600616275982507309715851804155014633978377753035054044847369320059588420885371909996638166036605512988958461623791544038329351135866020497255309567020241361418985673252147807712471089167787006757400101925487733776935942573959445726747648048933235409294265331505675450439053752280308801256370910701513342403442281697266134119396283515321080679185267183430665155581467213435906583023830864592183239614526916663025285734109361838355711378823786925345063454788001846260584235974864902344582282767660453470257919468108862820951745171497962347119345760548854052455228600944906686558106819191337210078638545843898972938496153386397024380996401471802898058592109461408337280946536855249382754314507040873609365231756360165731511579804251509539008793707195574029313840039024377463260046334673872465417173269797973918046734545406384691034999630121557717013449069501212807137834912141189662492027188542070836097579335701456845763086652723217092095789559713551159203714556888877177586872793875329794972420831668211738799392751873238624605207988660145448142581673425450311852375581106229554636763538523862779790486997988386893998204798579155004010465829888106534632502553334775296498517568322627335722411958603311097996426094628411308434162941159717923895072312926942461382426148128675337718113105014358929566298582840597457092135328020664097847742188072151012303123826874549681276001407202326456713267579581590820299142477852870102115464041054085402018096705459401814104964510794743034129072194931800829043495781602245257243794775230672234755464009615511716697558075095244940207169208345120384976287881294471613843369748952576889439962265861323045491289383219823738951560899831880519392679897903090298436973778270952884398495655750579951022983151028611939218471398661949532033802363385698651220085351055056771866480162896343772819921591589906665031920286096133411964272248953382092372753610242656851643537665978224524934662948748796661904692111241805071301885533729457409418289003951984719175272203191498261851502902749931033668486215360862788007894944407707726221106959561470051831791621900815623986319462470878816667195639984326050517044333167182026782624257229163709845458414108824199764142779946518419051812454298029387632319270207951515526959002191167937568238665507163876516641055252990724495424518257481934717493863692678947454912058300708447556105151441097909406693757453708922929504968273543479936680665537274663442914694341896047861083951324255383405441020523595060041621207291605861288184597840251630831911709024282974676917684621588921213212900132254570559497767197708971887526429570780968562668024083554972821388093329441148337579823415344529822587643070806906853763363456173397626400589338335060189917381471844697536993131472762456729586367650752856989550923039127083240140445221424457486331815332975764941917812356147831053511408817057333021867209281117934750733281925239258014960683297638765259367407110934186431559837445200917702154654898151647895722113246715078158000367289757505866319536167607127975172908605430610231888753417095682559788846266512833940621334540735140782202226248630734029199419305457385739264888796581344706918003758979108550392978857088967459478064264994247972831913582201677670389756190211972665978876904974018886540085719899076136441546310662199877002692282202542663706684451281867579326761447974428154353878556940585824037307760092729847723493400582837111430910327692748905113274911778426231344702485782890702779608960614079659231878590023370196787367120036384852568242602408694207487833473129011252551286740389185485675507418238076391421831552712722424957938776170158437575841052575499263124015396064333582689150370866666509440308795709597871578200137997563224547681705440329435101160317455127706419213706833310367197842562891759495036038877293882632566228800327057318271692947091175668263764971485507530019796723518590327573955126017912181642240095838853220076691455294972046953140827212581946869090725728139540263057649464765130624554885104076836778703470038001332136215293649914217863903452989429904082733763300174975282015629895818275489779304375058861348325483319255276142420267030017129393643819456149552009521288368527528178954641364511164700206489322994383596834984242698314890244858609286498905294328905520924272473719228836411918993884434919380655060658740809332457045446795378456758004876680563428279480445704314454225877750500546904905345248479853739737368013866922018783121972611012415129744394484353125644867695664896931799282531703934799063322881951827649653028013873697622770745550050037404043156752929164476986551303190701578219760313523109338804451766755490723216474759607907301945794880723007760540008782053260308438280469273943247140241125589043870476838265674728658886775787230137461055874312188810936306032563766438189364431277710234432953648750396880778807369584863734265938813635276598706671511145525463170907772002938600618599307761581935624582963504088867678978725187512492452857893539566878998256300102694362756694307083420549801345028899211801688634663359061820053352265799083899241432013439233116128727965882512727358953043305817282051731393853651499146381674050790368153442239859046847622830394856236328481572462014025558504793310061297756061426815078565193152654590629412937140333063297630460403843124464826359997128337379471206214142182925477502802442709233585927059445351467230569869884144452845776954839673396585549091055255743332413164816616789449469107807062874033767362283728525284794344021971422126665724073060441802394886994572415141665371822796177097186122466462048497281598693267130938615596439665489986112027768732459039413491396102827908870695976156683586539416928735540964973089892688614338780929581459471919198932536812939266613505684023052165271288141072288814571013585082104614895806068169959640135532254202257241875221115040328533657233435311526108461113350137811770922373864656105506829383993626220118670643822803617202183570398939864052282713517227375253031366260378000221979605136670316638019129464266071907334999149366586132633778490898964785907256779046081563501059660314331675017639231583805291639169918327159549193832131667286145169873516874044766431198303978713690996550565167957997888388638806437430160733320196263893438638466697144511694531770328190535025034926895503470806055396081497797958698498793791239070261650499149169222942579481979823843893420247432097284709899814848086221846231301611836064302420083575422304817424559073879203706970212091554537802220562727227229993719817969938775560254983429671255960173749411540793352622938689079284422445472910189189765236525312978023014052884988906295233305629461254051647024715873800236488084649054392132758854316467465672818903448371055553600239262175537440824181260289457245606050732461597509948527011181245076010814588053472793316646712740880521752752649646725468971758660045261048845328788855986865122034879932169394781522175964050620811248501676782468751456179801759108527959588370159410909643338363284284804287390777165606671660493889353282388005107230861535396506725167693570898622943290438986770246675424259638683801752735891471181921313494729576477820944605874884758179677947323327010297928524784845813562615039511690734215973915770913755594687294910880783664044300491692734421597386876887883404582122552124167161630846503523470097099099780758614791745334857742946061626436839557863808686251280993288565061470047854374268373020517306452933832950456985328731269447031926267766290274744168479066724621705347908512902949899077642182654490622284446786151452734818635292071625688358562786708485597795054810966993919424746745944396778254007721543004111619788367335052269977183538370490704914337055967552842189558108566726254754685331141482044728220996409051086033727439018669783905896975639022036899625611818643495242273225331931484180996913732161199107083977648780573137728566625618578791912656586120495172998394826366932457631082746348071895928539050175706139986132636186264593341762771739669227588296714391109140317777685869064825812373329358813426931005701895363038704023940351417877290288343435232947717486529022028180681854258880335903534738773208260150454255844748738961545773287398819455192226821174079900346676939527715526916874990799705395705301510926966148149533688472146268813778740364608515163506524458937138321738572803259344538256277448357550216206462377115055729132854171182363999974338496289684791361887832953593405317844009893585560220493928068632077658012910351745318291606506664416187678426602646060007575865888368521331245032662263584789415298140399450214407268609005558562493782040048318336005830570221449935073183738159032661255509768993336855496496545157829089079988599132832415587692185172581334860515830356339295416123706068666479159115006537943164916983955544800913149378474092866572806753452177594782163088773207501343603643624248084574392344130107754837643401749130239965896238845578041277650957750525399360375360707350604011493434703079350416200279738431139943633565210515947028616110916332345889886958938033349031443660009297156001676459907538970462942183093667213088415298500191661776546751800079610711588128932113120173519916054721797925488861652633813930995561801932549177813305652201707540954788656032145305429280318936320032754361473772461193034778397285231698664226283169915013244220925544027855393104004418119218256124880741549744384937457036305836128587547835746774029983218661710437085140328817899655808941460483594378679374909831106030808115395762711655215791878474262407554226411054125021798253222115047738509573380241744192015763028378594387779942644338502743590508159255085030460270640107561513390620162733349023875539653955368111564158861411337007417241277239651850793547538241422044922081176364347212941807106330704031075907137664468261395856103109342506608575121061463703821108928763002887132132203812350084668694865075203791424713284205735987101208488762045731653888340237542356231475963952984438756938951050108577757001598384825496436918427602422997441943096633119982960887751133158205001956815187457370567080380138213204734290965135421671627684924089162350864971924411854642653620649140502590781249462472893366645456637429170766308765382304255877977884320151083044882544331719437606493596421446557121093090303328295667235683471121532457242229108012947956719962163694193819873512778522480563089631672541429560858603476481312783568815589937755102326645592817539216238706920740507362685821352572273067783908064582865258003342636331701861886319989348831246080139982110467901326201153489203752632931900007023139242731740055131901257327398133032856501007084879726812895885169744207040310865139411420158091497403182052296197910815053165740835818297614030079535038902112492693526807136503133194447825411808992832571195218934075010026879143799698775181820783943826060592941935681946869588283664917919340746514656563329555288197181877329276228636353622149085682664561722176636708830853442670520591292836864764976855581522656061623760123665840316187336029671627145197092892206706644079820246769251131503070776084928772572918685324473449416327930568065731159282940534558390215703405542987310192285460873495887527186785701913063684482956676365585138663037697919039319880881578183178027496474271175634827056243990450979664023620552994124490061894965621679231663523220716915975648185668937334035914491309004763351544055843067890897115503306147758199875926634523193850061545597444042431051412443996867088821604934644598722877510885217313739525338562841705767727014992854987197616218960544815071840283141625560183914663754899866772947398098273386063449328675758459292304201424528892552376322474513146052165945405747910019359747073998866804899470865007712216784810907110834365402964253787761127385290574217796485469269308930885981520674464448808234919908241675810990546870484561594639469453601618443697499880866482560187184160357892978457188150293140002122238937424362906245643385832312839182159390778105894394103908309162360087295282218631613090631840775680690327423278136541450114626216124271577484457096649733013662956398549606164793648761369830525815041400039116453531288679252192311774863768365950130188465078291538464291693709925846236311106820144089718312192393411161502186769197292097695522555391703789300238230723448118290239615382724335307682700905187497111995021772235373757917637187486572177367343570000067332244225893336074794665722957254013640250421739743031986975858759334780113892954238883108358222272660597545687060928172529129681523971773454738976553556562760271921865579132119368103510974550068858420525689834223229645992937863778337772623026115271539706754839194333355674396998326687163381467551431698759613960649602724278451988895112671976279487526997081380099497491226709084922717599624613224508471065136800328829292292576093128966604695762677271443030829313340374676223530528436353071261899796345664139915448055727191666537228147179444820959374206475880830243203294290298113473763981375313312974510462827199383261793077115937683046180241659861089471418171915756876796441542159952849514757626617053889457854695944461997130541061497949090722527238875313806005864768601169867252923056313670444960769207028047925844909545376279965546286243283412007328083419460923388678458068547262433838479648452440336732394304387684931414469626912150246095801041713815348866761339065769098690022167727454512128033917290150981657502391793379138267919799730466726835873325054371090327246389821242426386851874229516304185515431899338773689486337696309142506983218018946341389455171492534684968046019359624942079975999418289048981573317815989707490585377943694093423968671460923222818371207052047389010878495188182209098364419702444723026163268313064274033396527652073013718614309844238954472052765470191899648742524730686720715856462555778319617981727348810305197139306352990040581703128455293890372172917068274149278193074861187095082130939255292710633190395886986276948348119133789780138639163993736500363181019849458218299007401808337771552310121876071073291650923754526973454426250271221736195908035070352672521685481839159571817793574128363512550125626318187078127026119029708103062863214932440353022245825912193288513704013321192803146392920633811897732877759455456203672366684165500671865037324786532145654848373017609788820129044247822437657469690383834630965431457641024058415499814667580446822833288942850948083539037328968045215018275341143399569262648830536559911186597206865474555024077258981649058812200954472809839190607952487477405331448431622800853383302753952122834022915951880925259131988700743607891690141268477919906872384688331296269694313550541588614427350242425733586787426788772596092609820976400093616456413256583190132170843550506180090704025851576261401875741354603817824108912014207686315710518266696146992346129042138667264506114629660286627753329603336609700412418063452117505919699755372029703383495273791542752787202322533520725333467158164600088222007903657266366671557167834399553789769464511168618195629547885205837387025496031653626423565799558830992565002327510264359792076293011843455821238955510209293152415438963186268038694014573620682107772489866800870895691280148586659143131929025181351900797985809588103005730517932875146680662782674333150585842018291241756376738265100363123262646587774629446656755600299767185508039720835608741907463422279588557974656515764926156328301796301833554754999372948879255277994862746128353431627926167338928395553345458631852666876308358047228044429703958617097210343380986106786412354266540049269647815352233412420396001021128365229921582756018431198657486914382807556555232581510398439394360915031297220139216501025315888416005683279800814866296391344113736187633839559553874703874832285218499364298094967451008133324153715232413375337479226373384179521604790438798950420859071859315180076103580259994824998204695884841522427996602577413961460577947556635273890727381515547229765995818528925668603432821339494165393685668933094027390066171312068302295525270557825315185600852687829829534465630358727820283165236181162138282721335362052931859166760183197075841477073499411371021109811996755021470954247561730102292267456687627138588959303805550371245333148555260845810505286242714075153537482342895677469012975578726173064987919894905714802448137141461137482208655405311310732138318317707613327919579735364585165422468588682131105878240312110553810599729266632778996874032636049636910274780683479352974040827226347284714682197977184610848493058784892133713608036949218824238616117028946528811864069771248490318038382667381573103110890762326611577761786929945772279241265742576180285109307778217592728136502287338377301797288995105169246358590138286497403363832854327998410877635046628737780131120074177813657064693045033306623368658639441205705212603156513562371501102968435207603521032290765805702452156297849687839438259060260432850059561852437554846028308599202357569290268170045304145063992025379054702266202861019388234839409829047854581347291571490420775819440575205159315764061219843519048833388571271498005930635661036130237525816860088673876231731661340019025935666143297500540919465529002909558787734711719621988537967991335293869365326826342185977207331908306083237435893338368890001993678482488630980794436731111990218558372097577501102009705469606098668889242270049213878682407187026712658822223749811013598513290435564381516193302585963358076794243098957785281024783047020806195943721500723907378329332305778020212287080046059130128901755650046132110926210361194548445315999459123383083351205393028300931408462857375011669206619686871669624755405055465157297405970783575417582717263951087945251770505420130192614727767640421043781739978222553370812831589304603332802508853920959699437692121624736115370426812182053491297859430128092157970919520392872638567777972988462939265484704833993301004320068631741295461632678361011674857632337056773055375541076165330910426320475592050449288534455558265623828478577944039745809645768431660014272867045320519960305563112745771000523877054909947046181282267520582756418738511374482880707804398857791553265357268181307168478968061797623769897014703988794912583797817284878901237048877935598115530198398929143993769643871644399243240008741301090529182521618792473474133345894319812243856009257483140323040391587529112950548285911374503711692031007041640412697635771877447044349285875245763182936236130694769213529013909209332572548347048579780905095537024065591211259396424576440889077383669679080627073669419236268518927653067783027146285569972864429048965704799314478117876764140591601185417570171344563017107138207047725330166139979540811516692959794199796388976424013263277737975463801552700541736797307064838297159630130266757154020970853836502340416835103068027028490954580337420872482718496063169588519000056708535466362097112546128043042827080426212803223742286396186253665613661011977465319341514893174992218921832387520081447621887595169214450050410882936910383788646544041408336339115415187998052295410974534901295354811768207524326933537117894109523959254153706272398971801017507051903768246820878743296271110847204624867070071187785680805692320761372401960853955992764298814644321232101563575383072120162090014754057619781615001535978715661439223348055292280112531564264308534103815885132397190142128140131814904455669714108293327123355576747189609688633534406570030571882487922544338460407200526121567939743004460046800471929919213346920029015874584216314564833974624263088982590398153801274947888712562443152380469321551675484403827357242504514979180749724740811423144361739689207409362441469490326457521107861342909825874454654042533253935972132773764238270872786788766741096601271285742849587567538632918257665441813410416064349978580273612817469622661081387217495103068915265400087024162509870908180680074136224625429636625345289217020764646989222638593508470250385362780126630581429801610394445006376821063724123059882189375892549795374624739968225072442618234630083333332353485850854736169570080663008455520802645183871152311863018224348859813281942481540620149071160360197768433872421624419121899122981989137376345950500119977996946081821708313062795772492377728752398928652718380713970931814539733075153766350426538353641752071249259782298981799803928274949120049971052857341895644845936949702951484761301057209111070720427080708363344119454387998405206794021974150618192978037874560034235071313376754489913933089078949623016699479747090340924856636038205471949827581403428907126435934712952613288556088271458736005206685935676703882325394892949598988680458110572577964796567784010375391516347711902976234267876761183085236278395268819489874868759920137245314487740509575980138174468825770224221650250692335957386216301900176657362704368471000468753377819624850467617596479713281639526711355128180390118328205694918936132571517403146925188412024259368688532106347081269378982797992371894090859560604135307536793709499397590993075184558323169875589356296471474470691232475121422930615005707243169775852354458357804540066481998444093570850611873047668739313801862021157129981937766539921163961044403640290979917565643485694847776199597242983657269070598511721864530611708346207674991513709011360237605828783914065335703932848547865750789130663615787483092624903248579520745200206403525316547657134108590783174670857783310587282077264094787276488578195180506288873083084915968869473388477198273207564689696401894400278700181676747826537681417963328690011772842815376186034881556961259541045362473576157578160817914206440482295083636813324383281780643370455584101009226952915745391304762098065021130968983705435921077848693759968165714513491336291849006425420949193812709583027796513699423090199628822266647790771975548564446919389451885698893942189156626335868611097513346453631301747242566253312291301611473614588692381793305176358800742647420742538431829035079659905304115926141832707496956494348791766673535739392160254708013077587062503132719568243351285830978807063444838746294024320161459343402882182058325931857499513579862752478796895288946528976428399007863378616588201514461026342240100074175795649339812518189315887016527928833829225086770232224090579322329929693607434919395266043145701936291459192845632354024718808532028494864683116778761560939108427285946087408119300989716830637762516684526352663050970549809354739091704110852273952169786366691952294783861370117486676288896529389161109438064305312354302413835865240696248506390514782417991780297964080476547996017793148454151828061064619325304221071646321763509592307439525161108960480615031241700958970357368332953737919964249912296519482574489053837810384989105298906203241181387952566753273361584128790609655071173002048410982583221972643883256197360248785206420381237042077801996634211623677709988378682664797403212946619517969053694627905957246530650207415379575423488547131606829950185678172347994065099759241484653650694849802187861724863631726862400254100376798508674828201384003927361984698837812215050190510355226537392869755042481804578855903903144801462898523452494194907871825763802456401745001346928857729146753705174296769456202733700841391832972077150537514661131283717512360932265239830426962896101886672684349910255558466034681616618914731784876576880173146992145761268943866327131434148226099175061059884898966169694213585663589875527403156716046567779211599520674974355066790893489282474489187881631897185960147349415618260140096186566036123832980067138315799011073459594117724230141012602694155137607958171671003189475510577317448331791297539444420742279838271850285138551070038742185999366655921424126618952616752186150834294092141170523280910291589238142411892697968581486793685702000998210990633031078639404883990687693028989261016245844781298851042188841230064783241778061101410175148265448514109940536690312929461325468552109148187217538805231056902858967298216098199750805542304141179140559502397478602987364879376790828880695819598302410632589284874816571823438984790255719211311560317598379750321638556113127479149605750300625383573018612589147192775661218554749352177421023065025621285894118173018940527442643921591636956124236415289958611926258095058217605635568574630295487787069607991003429367762122766400052865149836708849077893787606352299559943602225349187434246185117446439863047369731421873385925410149419669124416784824966613961701532234827001657267533222912589499693380880819652058773306023732928821226157229054410512803190339002282986324483065652738202671999700848931419394745686931547473667914138820450392742843760967410234652798357635041975497823139642084666183909159161331228043333535302603847355951130262577711381102714576278379019298163929501741391542769991277393837359924107805188346315924840889062270511743789826165207787839055776788525841085404699137554140717805975751677752506589583413368004623332688278993311266492190304551466480312243204108671959773619009964654340452017191460950846630298684616588549222187527653846630576260534273910750527843486919007318628391812194335074774649777577319605004660276079753003194725466599266614011306060774025066921449937428438776475534883462814181507906426428553189850387620492258077042911030673756107138460284434932715282796480830279712726118909562510784909221143825679192439241078637746201372307819493310510531517918427344291321840882126275524255135418268699509975789819539657990027394035693359341252150658042507919181006586018565554266756662205640470196539017649380654227891840102758492790322016464764199120123885326521482799282047399315999537568347195463475533223753889435981624694371922408372549173074756156261680079551878821882681059863671187598941827605180375574801579326797867154150315092495395630345809098168542056076573358714126651260195430003174966592479456454124890095307485227764735776125452828428580547040864628783725018810962070433297471517442266336559427667373076490524419758164269322886973941056001920040357565749563438760005351969019590989338194458958140459102106789464418521601062011154027502438947483087842557748555024027492266270833055693972400666333610262473622673333184784999884403457125911249486771685254446501651257535336198846047653758799379704435305928429277101483802105688619207064578194492300340526270333660987612580143242146209741220833539833193740542724160857791596876023781557195451011274392882793521917764923736402766648318042716205766824989910606539047999152893552404032849755576599046440744041967617803642479725468557040042240125006980027845094602943798061994530896290471540508426131007035523269809861658401861788674280513429103453853120700897802504835583741273557014123253558098998332769361804116129512245015173537134939494017554455360907605909784585331285209342946706462166487601796273306847965684552533022096378720872504550773280058010985158105600389788996791668110099153219993429336112199556199027136364454736546246238697972527883973830541287899436699880533116919279649566381349922599567365892950726988674649142989849903296575891304340501674162025064706217421854449083419976719439274922950511141172020662222958056930380758637716820838788150369506259461162757443146251316048045668527430722749342209651038047036608210352476533696466371715184013361657378996666915748168100969606015259236083532929281025368956231563545472862883819313722079505240322711965160134629579822470196691330166958430551889953497245559258028451444243613259898831827156626210745142153944479537054180835451536341354627214643818656161700551489607445007735942492414242221694178754526966294963705374721263192183567737629384376901889509392865433462317129252244848905061818990950693888606568704494274503101604469511357804986501370704488458248856340347288647920750880608169206306783684807451581523502235582192354343089305152221889959199941368992543736012451383646497003545643038555970103598073999205925924156390718729894446915902579689260373849272710822813338884058834870960699404772711837091481605614050218024560824461675129902746166105071968152311799208628239579075820045093301392835926782277342611123372050916729146325208276314151589663506251606153364294703916477830541161822525793473330298075163093374460705482989147768597701749794979578475598199218449747633488323814223473708093574925700917794114110155199465814027034430180153458789478126473878885763370291609136515050581132657729881958244531926782259558303777686715196686266471684966356937462607527501382076539359008024395900112647277171552447158324971275525367249811888759270036806861759728346608572785422555417693126967790922143960735345711855165413229083645166279499275137258213083014654648297395403722240524201532180484643233297825920136137165931257905137812356346452851811077724045181469368708651549012024128341366000998812601755616292179518402195301402766057681555712929054389973503665801615077251734861586213766476118246028657842065153291608591388244963657394570210493865248728398786445345275765798220049245330361096118010015027224275430082256283114804055568002366470758686916256694839921149391286490482756944637797701225203351197417201584850648330192591197638229491631031842693688394130352617065252299054707075444241922634275921505648103515499771869618699969840550491429388822689208175667513334423133451080816133594020048551467673651402647746892807197398918797821361790856436989615548367495143550923594583485329629207698779787286871472837889673099969464485572269241027731166222235475865922641406955775993261293425378746400243255544524472066326714513889165038821607721864279700453477750589755513858212123397188863263298695720216207568747812632584997290792871045645273226754046323324741570093426477717527206529246894125826685253882836419688843153108624182746322285268781692290315933379947594316767585581952092530831697089008348304499162461159721916363719883625793521869089190346412647197392535903995622658793858003884240160528592498259383399538937154654112538113342816417143725125097620411677663937729970401212770637995540977326403149928786754855212961069148702904128096655407473337651224071740535314879658968025662524162288322584347679689546680486985057704882193666909887106215339828299801743910760669141897924077786072063399764603917809266471377211875720419092914134206065895134052991917613004914542944757286158739256451524505138005859120519849087550270438062496189723827125743643211831407847247007071594767907136048066144804518614665967816111642459074568787479596422690789739621902658157976228135327344323009912042395438732578646644952086648087742392601429180786443109542520600094097665688107750002891557082768547502495581700105153061227070610686607463413906544240777711047823294073359898939121443758939675729397326577318518747250113992233478344371970362743455171326943999953592100477051266350611319440024180940585659880731350067696270690550648812427740986488262982963573630698979697971234513670321461646036873772352597010831262184395219546983287519889802603042936082718148491349569812334093028705099277181296732542097978613463664169165992837846907845198159683493858101363947976810498046805728122057286566003452751363092590753897014644166928663709451957282629389611715595019002260665385818039765832032574741914753134825365185304777090453321851739274147497373156434445832680775163904820202407761647442698320868530988311590170684988569464425634836951639867814230046905072193526083294994027094094745608097762024384950548894608700838085671601467927540593531956384614904968572474230843732260281590991133315557168991029958830741861322121509677404661900301102273090902872712735746267927495904235484659366801744269113069645101119906828387060735268314001156206272245265846270581384416687535670664733114593114650277067895894671373202714195643631566295158259721883631223949867523057686091280413392193052717464091775860487601327587029677231166832200765260737270641772620917508728751316041788098244830363780370653007751268455702586157613290211379940357328977577649747285359106920321777415553571246108694553312292562276483745845799853886917153561651839792318720059506053247676870613853801191519143973817745538890126795353206285624163819245556631566587541521039062604711880125278027370228515482715985941315309214158381431074649450949038925762804493800007177985181669876450427145255581137096327839304820376574624593187208498078103599650213718367652741356742467416286543121553402646148926185572921660156027221364631476856045926296459730072257285600205078857854114662341017985096906911643385274132137160248117911647792989631748123167084886117218222560438849301119357989222696413007207898643430557134357402861390150018484769405098679818197693815641833696461641794700644966980309694042365434530323689826289006818093227167162541371580360256876546566851244485896756947803826665184261464819998393767299803713501210820922462339453575388189902055607839964591237092138768913492801406263363735963009139599197648409803598699209602078325310442629762230042244471776507350729287781690449940701949114894967997133599711559754356621716152742316058627244852784245663500903603943802789248419994180119267429964988630227275167779902316612430724387470854050584544726329271137687662695720337648803584507403531973009111113562796752073299298286373736249564304409272345092654517694563164876753550941909892091237897913670213985220963519908698453876427838591765388477979395009965904489563105844794210328308302145945564470735880911316148258748332986835084419977816359289467523438063652576213164780255988944152054449522055617252082457645936649607366861189256573480253176158795523031802759625639151681008070173890139080402923107616075020992792617835949397608279547726925284480772286797357852478303771136136529546024798466132646489785057738734142209000262827223646409859758402539412458706542346589729281545074436402269046302075397378390226682714864004673334348353395419199556066294282599973854896226655721885306609077530944465162663175217344596212967145362792381441524061398572094387793650878983268373095436287752289194449021067856805384816584685037156169009920985796595967837163480617921625823328946976761767561703317098815712782401822019984596547921353660727974433053689882506659414384475673839916445388058804234848831585400090109144830941355985149897182563155655668407026897008368738592275006030019795942215208205195891831790889547963951325250625872017472888265316461347133672415555247810693267492462288544663091334848711072136051878205562077543815467732037811250561795910051764924173971848852422326525505739192124252427776906599378523492372640244249288389298729517649632432184077354259321223489026521339060986509378235958886178304215771361152542822491119634415129451882590014508605703782070323342065492903241173353308671409197571978030598193368002199546031351359551735484722284912233778206442103184734704604808053365707445772184335848274389619954969198494649904704670317583207487404288296516767902696109954011510711320905202679782718269219462717929440695545025418578029220764443581930783408268787959910822501408720085498875341191654452132348252997337905941419489153997113534102276346203204787371968101262985444212171444489094244319677977981396506714126003905800640864204259570312712876059300031057308238992323875715298319248825122572088057481526487554541261277171493717310160822780125481952718411666745628354720012830153283142699708977562058497226441132118779405023972252020752773788698895300091694607357638368310990009901393315625595135672137432667857892787405387276199275508421154589298993930719409869851689115328247461696558337898656314570385950458869440704282465992073852119338713901511891200205464623005904029271208734224322625594221520809147664740725691929910005493614554992148563761459058284464607057220112320360600506901249490091251838447201804757303296877905800361481896966217686010751077463202106282189083535831460841106866460032520617899434838383505774335638970806992105616663094831975192280171608407249006099190836293937195731099649830935041327690172333005365028210555072627257375231213613187106818080147841592269357363327205478653177948027245492868485915401986380491401881964469023016993078828293168488311249884749468028514347025429892635554322221630528004923791577969363060255920938006801477569052859334171969350296549317506386723418677450620473263505160958097616876979814101257292198336496448186529900144351512500177991889629189711135395202135588121310754294173531713895462184994768487621456000365165279174952996244401293829140969022391105458838789771025492903068507349168151140096331627097034484884519179625605177236283939456149491415738847037489976253232220872672999301746683052974740181631567879960976965287225542676981946163372532311645547388105431290187223444582645723801018521780738951619816246623734574500795258050704491224658620550466628574433045599739271023771220670090902412373077256700971022677511340006982827550633504935141367669456784058190451851540890380701414539589709754253105000808591217462427754500218894628648697081141324688998006091061593198400956583219311556228518327566484404965961277217037398085658227882638906853165083459744576391505418548668460168556277239358983407441031378223021255679799761062492475174760030121713337591704051843840659671973462949843659383582643081698361882186761285034221034939884996933898902149823503457695765491949988476500465657098373685309252466813834862822005183518884711459031866222994556041262462099428632593015293383134727242700165682737102057734166609979457260777307360514749720735747623608299120812793845569738361222264619710644613073353240573768095573517895698418385273490364316173404947724483941250028067380995928428298210915485149530862699220664883635063381713304970797868837666799472272888134258295251648530512117054066978607714288766393719998661915339158958120721081344079528165242480229807630400237169263761465601579913981614697142563871887199103426993718316327765677056356135785487626077678991677263787984684429091179185540742555185674295919449616093009414309358390067188974221522492882622130847208796441644718231103410776621381392963394709190704150347717973934522079351213053047232812476096486987829211480965434862036489745120572365687476431172710301095915479966142833901036488595191130007038508397711650677710627946953216553078654823546369145277433682964122488451782475220735906305344265825442344658744095988292606824000340746138270038707386768737299115213825444748335183342267732450553985601410164052650765335565701515907827466228487211112724322799471973969605180473953570545775813892269098301424012440447287918555928293429296568632227983977485295164886410125691987551199282200662967797179502976371665575870968356888374265498128752113405237076445714463211107852957778294539744203560403483111444036077463101300142029042347547642452829509337469456963143528119072611184931989885217801318165980833383454886271071347177864310079490819331530095926998872221990613070384562580215527124133386561743800322476111510049345302684463070366181392671051170538668561218336842495736367591509624925068734108054520975269317708909177480856970415303798869098262472737933989587320609616724249868088846730650478303817110251336128527157852791396619935618705918642647049015857438572605579533544987644615341827999483990973292623535828415340619891737966845810395901134599323904748290341502148551729214522054388939364425440033476254295420022913866132446926750313327938859463455673233571851709022016735698295994757765261382020057493634321761896633718185340038451700020867563978275992056366257506736605037215949910307856165812404886121902259728330548260664231772343437231281044199985031950376249593864066660595217150691486640344738472374013323458892996013644972315994201770735717602520226143412706452970681332017337844134537404796948755315479875132968443112546839548452601474794134659984868153290403163364712460282512159557702877629743713800389046751189584512118633960837809302458197256308565688492528781609384534690679237872292348535386177467254702051085346635220395395747040719884995760302884373112850111423255629833676525680676998556095234371922041775685249775436252686488269557273147703791336146137397588759384404393285715621329536562316625502765714772597760483713519775249810585328820439780546025336144057380006871843938017748410188099748469392017563619901091616323232236770110243394157128106146588155066533094130729254271450362532625802933794590746668243486099637726283738063217288705863755016793423736559420783633193012504130988096076956202150690409294549248838491237202847925665813430415258596350358835832724800515961872331807149980578594828950359401499960073560047356421654732890905295173792628327711588917370980442676935230603568710462357412617551207321211967330813266853475613229968054589066049453962407418558582051978022937633833751946221994343808780414038202061708148433665709014575259548561305792095214521670682965654461886290211736785252420880260340463737794245473651654288310671867819718736391301744708646283702630302039702185858109541106089466057474121473885779076943012208129516845781701611009101442404394492321289590736133674012310437108385080497467874465460681608810082273622936920788197775883136886448927864322946326597143777534671720264732375435501218677457132136776407215628338613184704755590123825932101718843831336990908907651320315401143406231008946932940009705803164528871373920034297362520296845399973553376716777363931822677660746366777359025272716544892610631836642918362336561316220154652934862071394935977889629682509094410396847790360428282386373296091425131081190056037154062338002349924616173973812281284464693256032529028953325621496206370635685262976099016909189494015446850536927680013989945844931421598775130865468117280335656816449295911665277125816289648290254342403436405547474723656289766252037679150602802633393806441319298105360957427492748955544017661218208004767391194341587250093115324553708625695473846099264926344660858854643949547622453335696299995434491279772578011729597205521766338870249891131143943195683749187225518679989937313266901051308334717951901983098264862347387715292450613737050523982535787894736701847570008726542079737208221578148723346590888683907170265398138679661231837105902865957226827105546409502847339688519436262038045735092027677425202079201979752797891371194557571380134112723833314216744532040747472701748246761119835868619532508104314006476626861224460714971110070188250216350649098552848066452308146471451231791006538617165014680658323829614595556461548573621210296559104082756466814991497445668098970688934522116356958916924539021946932063310637871069057915036650162512467413003207868931361156058321022746841853217129501827694304413432321484270440387866812052271560964717699174178609384337946082988780742433534809721377321800234363320246362811974125724365651636491647195111656574790547692615138202579020090424382612606463632300484844080276590100254294945483512528449985451865980759253353929495522495089645789211612462908932556370319092219202232296665555362172667556807659572991657930505687262156352515864793230123400910689097371415330696718135202520001830211372777757579383119054911022696084336472276167025882140759338504270576899871506601597218924815198154429778809612501708482620350953374654892115627902290386092601470969897410027513879266550133626630593010645078294722475001364979039017034238130216470818690503406842075456685073349290544778480179437933510272592409220977037976375903292237606575188412514018063917302318915888775109541921007485205732468122084359264518705573385744313682297871545856421850313744082653787721930552469867039166918642615358262110408596177941806153334135421128558386965345687999329794984049713406580619338639971233003131743531603230927325871390405952434686959028526312496142264498394987211025359197275665855678893664995299087450329223160713271583241271494022798505068056490365993017824942965021680117797619850645591255945389571752534101706118523915089331576872200971893639462954359612209854563718073010621799561108273514490692899379632636293694866953049772624418333465258643904237967944937544692651364005585871977053411040945369966459339209742772489826696074723490537073031243458844012816821296943462316222085127884092752854274885148572508854007844475513735802895377197897430971510169263739503213973182071690704710343847307195573369102074004338028454204889288055008257841845901183561581587418252413042949980566262167920285346108279892480253838554634939920258012359609954477018570516087579639873063126060889737305901638538710422885171044131508022533299303267821192497345152525547341157532260834399883352789785013597251167470604454790238178287004830818817059367607502877912140049341421001936119429333332428720854478878917570307058637792399325714049052051158258823639162047923302946062627200788881131179041847573766882815846209182676824010632197906055210744305798367567010039780861641622990228680356602151815918751994941307266931666829967420506224923158479001886718151722235491663531410374867465520990598175970477706109774539073167356637078996150293911220575670738849757666751383700067051308589334111117213568268048850911163600784805207555664963591417249711409335901718537339742545686812275101247487472935653870532788290611126743816878672598747577121136985503731027170140513342441739721215923011019688040717174472454631458578427962764239517852909494854018040040711869238934539431335589621134199192845843047843320792220027817959133015228898174055664465788385479758642755383098425040147640222227914962852277012033764549822778704071065388286022943021915797708755487847033692535238915035992085848382855794724786102529568021958652476951434522870732198446304339640701571505824017009277660179088144149882619645867289188826335188517974477062431463632510706437728877720624014954395776183044963863442160704270023502536417551771556288461551300298601728655832891367878220297712907318508050996051261679346019464085486720856356216732319551049663067681279560992216181588002876375101219746670817613016197250089830084964638133359040359121859998441630486430810647176957851775994053932862198908572318212369891192828420731815362001242452566231065122379626742104799441511924587691523484054941188589138786249533705232145414854216270637468689174296481600468160688226879229517370834568125031832776934309547040495402604920972872042560156746598374397867148945884149589975098382465391639668218648486872225961047589744983349648167960126446444911860811084534904679288611451787544846712581179386140183892581541117318070480080665236226394234081760380095985913332135253504221760480729853289803851706640171892080703187259065246868248641874003478709894073516202471134104623389794952382867340213468544050080631471606913032235506811538359958655433863681581016075702272281491599541283508731857195393878207319207569082554781206458138201135707171877502572927319266109025770271211285567063373056776428960472867920955131480409338321500689080866458536830288161254233216110691745948160548121817592816520477691192143125225278067701670787162902405521773410841325384263382149444426288190569862784533470577954045213177554631337161413432724926662131928189866112528773233397697812189651973687234447175801881770327266687328254403308224449186341596857594271427389896743478873878116990647484139275976166626865078528928833550346585226299321514638948756638603457824120102370002965814033126967273547536471724410033389259357590717743841714050007797817991527854201808200461719826304475997176620826326894487306970227099373562230286204236362900235768953954602274308899298765332800392939358897615492736049183158557789724509288086489683922625810125419893410011462968998035250145499771544216913944106834384378885257036693818498446772015985682760433794438659318249120632384715987218724127801478824808073832198971855880547987562835890192293465131265568338129444556905853295712202030392601352770766559311367182183920422686746866578765622478258309151904111533196020600905868029152133361077727610417223494612562649726205602942249405178970361760602847829325451799329059405023035411673171601933351029457353562136822366541044547018687075687363490756722968128334533364850555027707984544316996123136133762267232953972565571197142129905025490176497342953811675831169799627927077606318742442373152514199993393841760885298464309026451318278483161134415230802392913486038490054894060678566731313812402844369615456772685735136791453900140166125834242903744588412567681661889714045254831161757779076120270971153931908310617947064398378901171007331603425858880505873365004396474965003971212227094815944552110721616953573044504990754495932750679362196087301574517533568009897546687797077840165005385845497183755132588276478514523768926469493112734090232788855623017188578450934992328094945372614522425994165594028288103510646423257001955401077654979330745862632343168769706405100869771519645732145103782856385450944580474297368717787630946948913789267208494568779655246136282829564095649756340149360879133356840060649723901127581076708321610759293775988410819183635682666767614431700248542969708805842069809915738324526803275878504653825820552690785704211496041152348928633925746619569364649455087096057979922585069001182788035906897527454346440477178521675540192179968152174629197168352516810519580653549829793170070844200830051895574603035298110567000933358854624281379510839541153974720263034528924832510775337592676695742183463815899506504424824138411273485308117788435623690144159328753482612886579556337034692402899618687397489442609926619267901114412853588802390383436561044708366609287667087240066315059576466364765536418213785935952173510172678453932705897135428390180375885846815411819555200441307406520487166015541788628408512314962460785858443898790049252669707535091398447777444048310261207807317264785631005100529679175427795376074983297381880412730686312179168659040507831558341795665933925861406792700243610418555242511888740512352547247686078920882672127528482468813766253060085292384095708262082465856449148035372853256730486579881439385661767695435349999095766596691486257557593977588815354198874172869478580740181867786197802943397717558311700031682688734263315759459654618572165373061577546678528337244373221766922426403686615800950760263682228526794669439369472662182809855944374692666450478683436369642732801992966978140678817444293035867682077582727313932299674651233065611003461104852767329592642541335222988283878655133589978455024576032398189208057398737833793765443043239144466363290730790993255616770465969659518540015509021517669023077042375516726652830237811310859943021884326377952357811637401714487985650330267879552533324624879219445218900045145556052823157729760919491106946938545714116296992139491197949666056872780063113972977757528101667343530326007582428296380988259175641791283636288978620715791136105315133397941500943744889620012165478557367269064382826399884948759467954779058882710421455051810458629298160927334441238028743245175832147249120310406369161177297257082672943054358499768632403677250376278614749306106814061603634333928904366214909508655288350800608205613535867030536256713444366586226724476672221717156618781996894813931506229691693858840748772529846442305822371367094640118300993663836714432802815096293705404850386242869053192733334510014759527023899970483455868269808157169758903848257465616742562966203471658116677484602541798098752165955458053877921004928023419342696800811244954789382836294482715417087522991614589437478259570826878380615478145826070774491745028286439942382130456044313578328853294518200445805540349944735662342047110904580926153363920192938371358390523450544127059967110813222866391823242931499463249774105126824943794917235745675070059040119799342926676186240839765473237709951741571942897676285008081570488758033226483734336841820150337056143328162382583526516317963362939883641222455305030831269518866998218103703555607528911809454713234208267824147230916924413836230791409269409810128251478394808956951657233220563278199197856714025819937299635198305905958643344701091116354146245125316958047999587012333330741115641865813414496422374665504002676030179889603976011639257806361476349228844616405312849789450626864786064287385229582635859024139717011620780978659039353172803272079284186627332757376679762604918722286658234188239580721859498713706102311030189826734369019662782082476628466214222891375371601249467045484742139922792228054964826093401046800472271182458952827387461581079509122976891418508337165662072971265522905033653054489242403810986792003542078682191232871781966028007916718423355559016182599869602991995226705893478981046069309422461830372842629549164038233473005251439764090785465447756307514286577175643714996500783282004143893469758091652747476109316552638056472583581628278878063686011860527827384855287083403207160641560739923746298741605818884392010835229779986523809484609018470903253424406548604791251179820659937212285298021331728513310694661691449390626354480464852203762620239193125489514775799920093019234961631444566498539141786360274223729520250864294015551375195507786064139432157521751311596819272554916336322900674662571786440004107859031170391103811131906923426282233255748401888568637556524351734967614193770315942386529890309667717610481054604502381403237792725867946787797245529824454168600011002957525367667229645469765277308987413924316154006300945073762239615257149966928483878975910448082943688851640987906061872616402624704387810489631153893492208751056411738218176299663750291616096023817836498202086930168693870690237217495654509056059522801784209316996073577354657815984447552741318425799348575997461206927910732597578232716050121361170602484077223166507033283548580828402632438500888234264450419823243710085134459760710166896857837459117168340761331454516814460531551970019646324499421907019022101808741221795993936942026394632588875667148816736836612957285124025902138741024508610124510907604012194874862111995548533007295002242077084488695865718656818542572605099259044596583069519490822554552548209632471485656917423570801027109427649017716502847413658642236928604416152529396399240204731741572654514506695952276925899162558165718126518759633648135761319352315734347344503815172679143853867615148130338573333346533509424216015008789212694215173901618423329529091046066663828560901940551554685165802888763435620502980274145228559159890459179415706936732816564832507685563627676628882691852691037475869774183966905447136025717975596572964918830076948977462901416926672171070627962325266744419593344336406891308646252711861457136791763973820249213842278345919358500364372941123619153943544374358088424638005420299843033985950854715868384036477350050238213583616831804510062162392287525928939014643064032792841352618804879024349139266389739383782786132780764497816226626547052173629823090277128564057949518497875576167573131610138380884968799820452759497015397590945756808297962631072164952724070151488694904830098317641599840904444732895631553118935317695412962256254597531486560425011452078245021225035112816037444474057890277930950842565128181599932514554387981692246217647136438614659943188895831264135318334874651374157624724061482727680062688288792001829439878713536222075361326301006569892548000500172288125236952136921478068974258968753899238574271048297393235345966773468511639832520963503258159065917387865587753139879668389559980763392924180087930096573431439908573414738998683300932440836618873438046845847906494699084732557685327464355430719042002372773229344519078653022023227476527335439298214211055982526086643905110840913217666603471800511563313355510995417862867590917893733754431255912343959221032946874550517130215089324878841979422579928834487172670291881127340920226340758907355828127260519288040819815122720778511783793569262671766775110963958275821977698432596081584521265386245150612167523527290712528019463377533363527430442232492695085335042402186252121006743282669643261498507237785335114068842607671446446972440631372821332915817389146357831453649366184873995546790721886597544216107305090633280630533466201714442603506740786819508759240898527481874672259366052122680584132706220552541688812887694586035597728047415120261055521588865061284391916030307782743862385825589781596281758557656679511643263229360643428357727759140224046560492775055871949990207835282545419059844807351636872878366629823301125312311653415574268615182896473773411784529857432609103317629262454318839399735138599607381904138693204749249495564271712338780740201279777276307270121603266204989177965401074173133298655917730274192571149604180144762391195309190068051258903029773637262642604568749307689430614478952116099162610509925666752275922772816293366707671817416608417752181906986763323380943215407492079273977250360730049099940618050942104342413076933793270207188019209585899889957264462640831925773562650184937051241345220280541074221116958776064020113187389085485688410740648795838623047388296838656471230993462386913950389374235087913170084623952924835084076078860102200015566415613796665227389963381305777081457375616933330938298715775975395701821842498806965846521663631705468212148644158255043266338368529129224558320350847560665253235070344752605917153309031994099296185600189836946960233607482655912033658794710551232261087123614593479077981313737313197765169043248780733178677739966077483704218160696448982748510716521182610047779370703989407361552646710242917985438258624246539569029939481941018681925956770400144976459340000988577571083996303928828816790695083333242543534111306563735788065081255788135430120121520482680403200322255540485570711294844438253189415736229555629100153001063345454674952661544986732543923393377406906672070262512013166847552590699691244681029460060776691151735655955016342856572575857176428146317330643861885534397626814568880842878391784963471066727860690186420075208003274335375238093265495427329179310047523944479477278868889997987370653618200722992529779162010115267804664730276428764810217974207486193866609723521126045262779247215054037227170243842599046579139751095798446856789812285550651953157794221497680736834072681410296164404283052469696985117141417393102158866039988723370249798229531274457280071748745303470857422217747350128693411019813241406134281488110416873293995348130477683370251383722064162153647525092832636848457383761379224170684781040588999153681941405470621939976469239395177446863647024614605736530924983252822138363542635053005978629182061767487434666213422812449873563101321904404975420609115336964456761939403740603741351123504923835403841079508552397176439385382152016106171440527408977952604779253968009655106540749833345019160542993674679133113410702768091083019418784553939087131570031744157067446115031432738761534440956315070326848222197098562579144967515935334937615450602300288338255539134858288966458792775573597464720797035931690821936747962538084629348384729675117472209373597366380656881094175625222252125612355119691754663121847863711947226670003283096699201868725780625511387589556252865901004075363938388346279823088585594549849736400906843790213878481108729196108412897782696988910614834041748189462180438520382835755453581150349784550162274692573497590016897460787987972399141508502288781581126038177276953384647999812985271911210249135697632301757261491586541764303507185933040609369558279559050142757116889653625343136214250784022362684839924504948077975055880555806003776700692991895419280317898440542641065884435143159640418170591286676552055244620554367715939382963499168186472585315952306928525302741972953696509665248335003808263033926217440503189973666871161716654451569421561392095285323425836006808913624111622604172212101061545070652269101714514840847368393830704839204724191076138143961820616969337486302555756211774581236148224502232642025091568549306213602388951052776056860178187472245866924204279359450326041427126844526013237571052102685501514477484010659264420649642988245333077845768645815060829926918818875464376558617618088948581983096503395374959226886956414578715822014925349029408921034107262051098420250535736032528169966538081870450980425510950133436603749281291626252608222997391827981504298870656694957311565185211115546033554747680194927152482746957541016339848854883729955286255165970544959711118510214890333315111901784624618950931807372219140831884047916792286140773616336187927859030383841022256678743206898282617972735536601734314265173750002326637434000437743705311658280398200871078932817681238213162053036870570712926769746332497826004497513112093918574769794257506725373955959436215495137229827495125241159181757994963161118145502389213067094588820575414016615168185710900714545537139619202877084583554692038551885780504783695213594411993750227042062483818745976248199665066923258636429111600566778498298782057094767570063491524742267624311449744604165548903944490615096085550868487881019576916672612097126605579437325840898646511505280119087792414213409259175242907983794014589917539169919318747560537766646479364742114743092127350617086099354142013890899011844558869579510705625536359090563416176932123938315057076867658588216412740500500893583720160634422248711217979335941708244904298933081902275693101961609547829808624439438218023390889965804188952576910507150341043299537399930547206903227142635316201637526005260313525145779340764161378474174989836393487886059313634697268140060914248509657070937774039949972352750712062271792506897177067390664695566860844775262971411741998960479384238324278170283240358035799340223345220263487243888867787548237312528241255827622751506050996216683837964885180135890916950714474344432007422163741939652448687475795834679512906998862375098068969792612575611989429200321373873543971582518632632253963878756194387377757792545278491360068845249823636460108328760214194293008671429778670258822346896623950946131591142423357650297747222627661392083935811438688479775164740566838849101788870170501176815776126695282940129160428765231719553802377033920917310157494180797568164943018789900569525503789609285798404350889329386354220584816537344759291862054738467803259426198385767905708611204296683893609343386460094439870410951412742918225362822713284943493158416500142148560422796647625435472467189088254053107710216521074038809216739770108066263827258178912706261780254529714877357877744671835810250712586664272986962606779215398834365050572083711989964428601577428092611589683952263110875258865510044997379573628013405629417479792263657402113086861961848822175093106639546712028915750162700828562548760183549209448768364366857319372238436233873024522050874263146378716185169231775697799139295990230191511108896529937313107673300561901875162904764507894081670846287915399838302066495594667345810765257161527719642304685191828491997755059504713218150810240708386334675506366835363878243845620829397168168801451739716812300730601764600401280541126947658738213225359999378596922068622076897245415714883181685394826626786074070298851799630044053280760397145656449982061858991082397531797617764286384570848096202558419839064862732720225704952596583011703571647128018855875137580976114956416475197622236635479121452345667402334326334629700604641789855119622317568840603874398179903026775014763806596096549675779322254250478008679407663385045531224288107027743826466442256968220959167507280401914766702990026528826801112225903755492008807635394716270606528589257616267338708539581344472909623058018820270125497242911641119499545819997697891635567252019811505028370733961421100768222196156095715848026390731437319596401597992982859495428499977728475108263291519974294682563089112849296022358904980124158963013662128588078117571522836365128028728429829228899853968504796238737819544909927420776867102170135493411396893987990639015526119075817611282091890230803646586929003789469751814294545094568507437439416413000305974174059341040699418478096486676442472806536480883417883529768438302409354107503915321990318957436037081073121576552633537876783496991748228544651128834678822252460341329415173610020288084221545867828714426358032332263110300448408968344129651708016286919406793541196100225760058353129388071522608494184755069404141951653200380785362143104313573947823920533091259329927477220831138490021880931398428686601004948197917367416928133937319236145945233043671473601139372161419391040142847691392953545439858349975652362125201357636312113722866310813751426457802222285953246239432211867245805870400518277123015823566217860869875064382824222724856288884869545424349303973361629237211262394600664702316528911661237926002567632075399772593723315191856968791917681889582446505688721240339492643547838543843884611871041555562464377076856005259578067104343844819048663871701969161872158920563768910954632582304388089211746712639401826332603918360016912440546325071559062044601822804751339542234946896378152108004361587587525847182376554324679368945920120689063326048395678214120846598603547453936873616871246491980875831859184874604146317829448406097178575696516445487327773694020836311400759748970589571471061641988442955813785723267392737493179359356400022607732966348906065642950080366298634677274621648872127382684639511130514430319287464269365940362957428837284538576475068167021991399469349385433245181963101219631560131520521639673927054116236131356604432575869874382365022142594279328595567660655662104300966294284344828150251478306678963155708156476234459135123362786758801743640524578988378678773275022460420904233077130064614025987517238913266951679586114375556010094362735520024960214247755428632128780132359655718254402080165082901107969898893150944075039188534828536883287371607497925033297197122796542497731714421723872212469587831166249593387450940580661473776512393908124612334248699426275665930194158049553567145561652702760914030320582898578177474020522878492900669249685647077150656998138596858976380540709506416434850397302121838317622838945707149481539595630738915241619046095446554718426271385034652081562938999610728017152661601828305362893142828629357301507170446055419548733293897756738958212486616196620759571637270320286805856010709390605673100891532620433229316556179476431116469611390970532168441307702606334445311224523055926372648128108476099654802886946730764772938790725285352159830962874431893529739572358490715179265202190799197939579273730068870787013676071700941290238920549105944894653989338580706873107955401684605804848694428184380180228028950764982075700682695538068394099901357553250669940452706679736339320059142674522088503002819137835473068114047340307216037849538144318656506910063742567387340750855212481242617116406603603574838715854142126187988688706882456935814248934543907143775926893733049643441589936915572636536175938568238447234224974661225881869057558196120575900910016361941414059666343890253391215272268718899502422070339673806120339036344053120445737461706818881426388046904440892777107563106437327536170510334825487676026420099432053949252886205917765290573805749536613032019667368988289415821016496391937422357560093699262405001102652243747354570138518375334009786835319267806392394256835196304774586258577765174486373359208046944734267311512271211888551106471776559693836167291864697026586202812463269719745558988293582967416548058830721002576616820089858079664889395844175015605328571543207622595359261329108872847577074260373344446051916533444655580839841222028439305092932860114540654523818839243452323435350439255764393024835726097690744164368895050074273496238669998882195347477209143761704975129148490109347245887388654717094603268381992158759364549259388983038081059851940878995575453817878327619032159437605228618084613378647290046727025151657345190032362886838271296064178351604827177443738526638583406121111991452524451924814668511426299083947582680541134418465800231766773559116533035217645443417830879448552422637725351106469338846312611780012069787486267889198055359900207920525490863889578550833296010260836622665318253113631007588649669240678854437995680301853340217520068854782467154054244845290914846436931354290547781539242360829025236159701511995299812874398426362265972142229146868815093791711250316359647887815902957720459634167113728156916444610508066696909078026342135787316047847505092616347160254182873702245278984769177514698489854317007601824749890962588960852964532190532436866487922092434163305278046310386480893224044471644069045320755568629987346822813467794975144981926830272263450424307111312923372444034291797402409271375705018659563938922677502016091490994303085563604003274850595897917126934261655372663788246792668415808630864553528774079431588441085107537924810075455615901696101887513452265932994874226556608457064494232738871910527537002956520596063128638960618078808908130700448556386983962390240639741706414554266849220208228446913008451017126322552382341479393300415028083450504466966426391959049491628143980751798983736921371152162910333637218369172383530212219800574380726970226637886106427304743645543314134447988294816887967652234501256968710356039508134767185115466230460484644966123406710495032877957403648975366647377585629929406276917182406747379902886096192130844811280171290371168207502644347752953734883988438344877522801508752440607211237654734825746729851620041715268284815670891799975935379865925637266551058615934638562639517469339883028890766709860044140761077179891101395491836846813064526655650891621773741372663082158102555836262911584578653233969043326390845041438628364567364465094086754661053027783978216550613561350004991644806338351271828676696963414336829610809944200865085326183265880489183942128087821028206936624091043130671382500103025549606509746420564679313448457445268251563451456513122782500704386818339101415520008060194417172582190304282994224134075982577648828488042670963170782293545603697873882616630126300433579168130147554227685966483263245163040055411468956271405311832811632657757418955203850107826464733352936830922811528832360999111099361068942855455819413326944745851754149266711860418399897464468551090842208650565888197781728421680336808552018420275332434894208373235215290585773648046862079729678303574093297998944338098293334368044510640321868072991015813101538380454768305741166869728899844613405398951194621924945646551511161685644963728738424137987054695120750583048327869007410042131719136440468028503740250424274566820427476276309411383003756180912735827559294322715031206263214287609297805661669810112322801290289232612383194167539246436088051351937931276705544465769674625602544454114048500476035130756806216277296178820660474026023145255906521119951798188944906755590976675410439583807061786433786004261483069018272602195645790441990252468682023193340570548665286028094447807974891135161116286786926848316099789280894566425310507021906793259058634327002094927509958628186947386705823914898609053613609025678847225573135096273462575656334155830114022913566608988451820360287377051958740124037302197055866113214423768365672584268115561592426208240934104302171507701321968351578526347096567028433558642628370076462639857162203742479083591246105321423827943665731226527467400916981171363044727823149047111761353636756850235006890432861426565684897001876108406878364561483001111843425918600491789526876280428884319541033941391617022290255642249277715312728784803981214320773106418580371030326778842964244273255302618805870808899208574774536067639155435080996574932607716942641515070547479018387846116531987359751333060863130816553436767602905497211258800309625016061873844783731218893163849450328799814652214724449791879457212683887753679166163054158959505358856211279783589172235670234431786680391876792258609821951603373449459652771988924826688844984358462623220388410125664605425998874105806154391207135201999237357743958653709306469955887804549951572560495869735389933137987935874539282637955189806660351662854698653356283585199137702364298260127373244015756532244613729576754117182942203850848386543875387980887042785022266692761158704155297022972234041131137010875279032265623233400949453012370029813900536587401698262395877637006482821602653321168855792850975768402128811951157920022791504889787454677126146587728632020329394289971955975109081385060853478680619926809701378589829922557182649894998680532423169882526212650938342639030120267056480889292682321666895352470906255509113128557610121193851858331968820793447888707260487642868510226260075123597124003468653272432657198397435461741257140978346717870276197603036562490669257639517529554557223741969369595937390413840511152929499820759422644894080874072330432705770258045026650278436305888566712098799676319182107123934389523841202966333511239408933129613081083173962900414959598248238332273761604539407692211272776901734925349029382379612927875331318635598989776199079575830080308660748110503987140935768775918987131407750198343315530243970135725785920487902249289273103672648587986897233876105687022316535677497539625240969683042076359690696659046570822765162054192436883988715058553728404534770808471562354898035161309757046539224839080123118710126919406149272159239558162392747475096237258997274557791472799701392886344388920570332299675042188606908583072256967641377899039031322541200940761697313382788607009710457997273797803375875567100914797210867870266415996026166916298141179850430381259516415165883029973784881450069600280153113700457947168059257734092846219189726293691608580625399286101080351351281735867891783804809796934352603456622949852851274271719594705897413529399441417261191772516014493069920621855756395714994282493182498889995553530062324930217422921569951834241786848277100466373728395593969028523109876526441034867666403864483834170209643013114617501268758942392070533952374272522121605647335363324841562120809411927109252138211696037428490459270448991208695863151094727628000276067972420933285500004122892714420905311793707155304192388291404259583622196881403884809107244372690577208675504936267418711653506726932193415772979738843196299934010541666869057345326192123740567239125042168276845697545630973175127339276317274094829613955656852110461798841627973619373433790124599400416427664150051794465130995624619673639058511558603015486709773988518449717930643605458401063488057641656640042588423653127745807300177623991010041832383950683999545127884417316552733800373221066264009895823038562581010812907421414406344106235556810095501146045219438288099899633011177708354579204177483717236837170241954822719003615113543920372292406735106801905387530679553434995365725313054435172820882647554503784269866005021058561140673669000564048824310652336953730589287794185018238065619711752936460602401482138904871666436688537661490177764587998479982103066471361954217304657870285125620218804094570138176684930867705535509120496865956946834034420081066408869619707938487428436104125167371639316542606466480844010856001453899033579669232418422272792448865055928595550825636967965595174292543077579462598430495448268131563316053882761645635413652051410217873294324838206347950507010066978051581595925900112004225675917196163560731078109253086965548271409815795038576785167797006737232215326603764450019805129607215059719698121790923828997050757796795582086899641835934352391438505623231483623509377332219857332980366613264359392902338778330588709747231036245206988956173694584438552315137478464262431069589591416186826132609780222419068430841801393394722245362680304647280593250532780955079989023117576629165566526905694154289595122616573753715291749838367934689172609902012734497104503338411609020941030388170094395367650510529690498037997816501125086586894707382652434676667943953549442880539351881387694306974702426669785542414119720162534257248857008500395950950602147730638546535712946153081864092528118023890046279309805916581871424269839367040813238140915914769764340101301350595600082091198720979134493492521007977488057209787043772824663094678601967398421162944854164219147318131872761470192704630530993505789705250208806434504108896320717010575676189351646753949990516984676947483365131945818388081322386284625472621824654927192682713205839906111756187858426580351860274921942453777627770600177319132449982090293261242724098083455350471081113146254790229728236172946122402082476733287861998616427410142831325149604807212617371550872647920360934707512197441935348091347936092828407600743443775609817944556638208936711640491757417064563896910243490977345798878120665452002852433240083417708717826261550814427110016756887172615884080016445415508773004777133082982944566665797022457761300485239082812724557961617352925446419859739914437937534821498428514042994497515567767924080915547614217753981739091604886965131150476272073610998579493172734636961415877501345627349386310489232665318978016699573038885698441569886587739642452151364909199063442954536233553830196978468148559209187319315488955153071726010034094608830328358589549638111923031615372259073365504435453992598446836143880280088840152585347557624727589657321625189219022067558579776616868653446613681578060718662276214465088175437891580526844468576467065978394650975179834008835762393032979294077394743602337622621615782849099945917068112212699697236732511499234270993977520754505524632324286937893308903255106575257227346034033958798003092138511894710769972481590995151020497518346285201785798959301115312128359713696462578042575299234376520660089657316302782275665198280148621344899934677148129522739301579460511994856163340157254337549563971153675635030405487280100538929630193784203133562407925729814115777658242361450774850326256174229368495541022207187913209069583603889815347607148388836075296933648109971477520555766128482705389904179596803872817915023036708043495190704118979580656782730528688594471676882335065699076028261709376600746047810363057926759742896935475171882454319225412832393987569823890457618099144076842902036012111105812637450812729913905797198994281814648501373077434548016608769777849411510128820903741364360139595090790555762617188233180242628696235814982674402002099289278280005257528539061291566948712741080059763123932713854994534118447331939370809205327111809150652707902758481700522335509484630733819006581455290697608364168371977644734097959900634003636841069872670254979113102567676877028499836183220319607208130707527806428804163032220969579428448428722641320319338605967568941952872001272532075973371361821437569260760354969805783915116917378432438886081830719505926320074820099540083965230069824443970261800108048935504385043019170077804518350039230017387123321023326206191293302706440466781737894643713986296278167111058623964951250276442920419821661509426913721678205045606942104922339335952111271658456006338296332938106232736960657405507446499078476058755340546176670760163151656181683264719644086776469119569629504620420418592812227175289094186044763495384622813185151808943408033201486166975244640950530453203139920880030729568784455196542085420475511995496115111128161761987466606802815907129369217938768553715676715359572779759933427915526913402350568512228682517878823783273062175684921432950606190851872468235553680901381299922836902209129898564670622788677746339003911273848022898439484182199852587836760581852882283505508916060492095017936359538869229204608583014123394393692226585968017447806320008850706483158494622532469509369673288080940265036144781507397400077777746125997889630489384111600516067526146242166531944972439280137844194537696355807711452669978344599807886846491237420391911612463977363245284539378002049700569897737607379377936986186566776888864915171082489034728731828900857950862062288878539268959443612635903507085033180413872288206277499353162480395689705200660501895057205236070982122870017493943872595479350429237534737542016568675089485127871991673466823923267078192640535889315847829505404192802549370965637562496776397800382192526553634419428331692332971552136624466725688049715122843084449477598046248935253761859988417773461939239252696245614562854512706704099200163810561763780981137704261370665659347953708585191475098055712874119516181822510080658928416380848681380881172458154112049579165422569411792371981611275315662117603842756157884592160072524630214971867135031927326453176363286921529017982546230583035737862547303869093191266977715276362294538436256645984542348297307022878479975775272211515582459330771423944809968388362218607644154931236631525801318068301100903853309581570184275554920194536509967211254941443235686016408602376747493717744844486887177916949267420168016759645404846515980881655906041627066113820871687753523511236319919310823843076268747113445828871204855445634205022253190119431738987815332959022490700136702498652993261003501078123809994695942174391926770520861648146694612238970694160337750420795041661587795212728970942212443241555091444051669351387926720983148330410007098081190544961858937291687814521453310254528948386863576369712834820326391129055449361260173112872896159650395109394199140996604780128433840743342577087616063286501386325389268150778698925280943220242901295865140962265995741565855199523363174458120155337084066189686255797514997463469390206643451092387125970226952162968451555402648434100163285770232003114377741405425733369767707330118161145693813288498882065384659459654355799884285072378964963147759615647192888714255446746624426500484816216940674107201715513043946556817158991800186164951712110415080031658920387443253999045277312173776526511357784950068523829324680821676710263248980085948415622546885661012941660966164323410484404948022546478823548585820576841896561136026937920417743044452905550700506720525471773546233583856050431683715458044921403381801215781851262543691738496927693205402758388984557560764248420990301214710742665745149792967787491787990682987148867649770606195229517470880889491562726927456211800675607722358961895910517032615191051536819261123988777979879042329882938453694034035196992728751322772194508981997772605545012882024918979893345042246385192188322844542551598947915734508636596532186229604511250858560375828058980260171180123294074446399623986109266310768435931204040063515416059711070447806243191941910666701723818545451415302096360387723569872239544397992320948124594598516118712251635627240164790638372589110758899100425732921750626792059228337342700456677582402929334548799175592569290822276500128960671730415644869246207650785378898949854529061445918644317560312268344002886272390903451213805503620630680022056118903282118711363400226461578283030637567129940189682587205042470060671938270564954843024204280500027056329870616945611833599293979082624925088150796218452671893319246600180373803613320159761451548778517169186363624609776424758478091772573901846594091544214035968706774894347638086349046669742795993129614785223406596430837251159423362933413758763566661467068489872846201968352469322943824572915215552640662168684268458761071641818851891587593293776851909152351909372699493431612040628031465500853725680992294001175172653618687928634725737106371606277468642838126489155021346409515606884443761422406957539567889254252731855582980277859933028828833872150827955347811768030306312338631516237607345246606131387828193953853181030148893791897395290648702425480353397208006875019078332694200758356991094975363974505546173831831452170818787192864999908972079307991161008505608553394155615518322788371405438834934253883969255912351077971953750412357876516906597002026486739062706902539049746786548270318502240608215203937031189006190645994419398532804064677390338457073227513633850780342082873192960506363576498617535028151076268404630532626034444620528910873989511243011620220601402946182968291902141293385542969384284339077594902754206624930775242443090340195273109960602877510766637727077723800234125578461554408867070283982768499202625703665232670351565966097354118954122321537378573952018289242558989909982836247302127771349444272155443786855800578070330948845741198190156000453960978292680621881328044658138783247986342523764103661305983510623337902283389727468835105737437911086429750069486730816137310230300813808416257985458003657005330114187750039395166613720149714696018724792402968017741115641415652011981445924907991583113344722311729241271864199289181285827863555147329690750091560180518318129403172164926709184265991293422313517766306196084529270415675368866803523811744721695374113180813706067651616715321467727930338040716106634931536724475701435759046743086821641891759272674264065358637403286012930576875349305053402341756006780318592969191871328737370905401180119882967306431052549809656503424750596318984899049075004497281293088106996898479766350230405455931171588315931224962924527147054693142256637587621755519532017626289543263733399484075987840704521920847778735636106583136946385599018359308603381012019380161395756868136395286566576968723973451650563068286762913536252058797478855783902878439455393991995008556432888354724808480581139965947017003962255258228668293824532956513927165203111323361138425590956551183577044502198082425055614859478292419168094548470894092341611551229417052101035887762123654692255943490724070895698892951577501188880028085753256727100410256444836723554653490706292060987891400742934262543818491198671925448668745623221048528593944808820598567845777790246136448700488473689485503059182911205021052746500628812850302514053523341556357427310695838117512108803791653167923726438245934190699154302802640459562768524663381264062111718959534835005818802275652088746020545568092211174630335021514818265925745111849335414517409138488213056680930074540303582702497013261561845584340688440477589269668850856672707085720963560367930966109952337203019357390698002902559229807358249985183138287485510639204569292422799297327007181536168574151001197079644042258759399123628291586183445426158109263472771989479824080259871922008526814603885683325700892085215329035317038519321918692538102642001089786462959593928713134405706232277258431482911932113037602641311266099548209709051677863638230421060963120653634521365586065610715440441868302198437212873151396904290158438236133616984449879358648375317827685713283946651311432378135118076394120366214993342977157733288613353368814603918852730019997782819410136144287250004089837505621348080590167157625669964536938260767175049579402601948272892673221575283162614273606824479078361519116046112954833802088778121638696442913492563603877173117339685585131337337300182345808195908047586373718031927112641062672443858780703464643973961096013988226367392387946070214491631901271331425877398796059248250017753728228303762832738894289454115224968256161766557723483428988203698655308858359468130143795282781938593023210041486815382479966380047797568858072812867220739420239125185600281412828203347258699500927628190887274147151420127227098416322024669192580985341669693178182295422927610116196779276624438039860224149973067131787212141199617581981416322133379010952825673424309592966601526010239505322016612288950746781882925861037478365356389693199777664950294311729786569520234740979758435069272504317604801911719411208951798516616081689098320790041915640884596046097805603440428579074125364631286664136952734978167749550019295609598657353934067983959476994089443722888140512471789923149390089768221655399240742992616480186524446884084629556288813613373447124629985821624197488041711727154251181505997941843924650363924343111786413805945490735804899770607841245415530801257377050415486670137594923784156936739961146892988136251058059896109218353219908638795847884321817755879538193229652538827294829186685676637766040488996814768036869468636868888861568445233359593483797310635777913807372139280189376719558573846656638032927501814315880326760919556646208254777028622925214346379457326118482558501960214260252646267845740956550494610817171500456794192798486960560297939593708888640151000117865941080281233373227514573538180051908607112510684302264665352508311789991391376912981728476328822934901871922459798492396064897275897024034252296119461612441237685478491105516697965939686617432431697251712131685821470429424285227622976444176061046347117217462486297048801701267952969912183429609090411048166817921704791227859158017061922257029504117984722993214952118964439549594417731907920721334278143860395880685418189549676131975791587197884586099695924482105040412009280249706225080047660762299746015136878300550332446549681404219844154384603317637879436890785364220986394458361869360389238203672674577532747885985811694025977325797082264238745505634462974286828982109305821714971666943558469130179479423985375646510423003845444724994997603412563261032058033403624995517948138301927152437719595269291216189741653522081170099906991547289253581204080973937599131787856045012803334298325548292252860299100479485052302508526623501488125667817685294981400347147040957125213895497161339834616870818472361425852531644465112784789751649132162921533437037573562196264698730816432234595102438524672457083086175220055133494279654952879056895190238703907835291780563797001403333103243578006985936753317053819301733337207764546915868853113603385234021195413647834492973711128252781845081106268449678747916095437690005507649451431412231639599552795325359355946437012288910806452138831346486260396115438724062993199271931814481995388100101512437258760881846418836901186773351977981541061248509644874304964163335763525243688192334866551289187382423673994954887942724804434267961466726898985907289235651239595954831560337112935182036485353219890517505675982344093414141320188005360551488448201138352845086197717967619996346230087162740168341805914909470664223332788808359816850240857828775072083686663327128840162861250751676062020783726817782364113337368542419744705427188356922815132237491713800756264640831490657893631957808740476175381314770075076223318349987708836524729384008800179593508768976399657832511952524316874120551677758885184307612413372797147976977429778943542074340756542028428639504598290997612208717087716587932186741217713883699903857827455511937761927600939827072452033538659556184869728842793382013564943969092153140171163347703496028138040763609966713318414986183889794233504099972923697630711053019230948049753108176561715404398643785674312947390117908876248132779200788089365953499697622222781554929689749433996920166254585227486311821893018027823120407855787447289005691010799700334861863756986298108922735292769520704076266138373814195424144145937360411903790197235244721577555988127072982033791411771026101830382329948049916817076767384055495622997966644831403688975340582339073807474382252273485935217469407589479716548508067765917803028705528729307537773160912427715351013958611558538092049091598379803322717782054049339991137252330659876677617670776829726533581837585602495271162258916091133804712667337280639601840725448914796106600568175136831153316003090858232516593259615124995321739307259258091486534661184415415436619539635423665577718636177478456874664938517434195681157396912993697982273817431026368793653008582927865122075144982150573617829868179984375850326391466724379721770573383594028389725843270115102195713761773664926234548432472810043270503538973319161157670307827889925061302576973277285028147482154949459742894997160269900447566188230140372075743869667075418456107297924472326320440014009184504189827079918102256239188543799737733764182163484237021709775741170729589898710983171581940871343285677201743936544759088636842699237603253560891285633021951141091348766772171011456841272541975031808707943011975141080441599277766908095713989601587388893782950249449164422184885150574176710473306782240180384939542760564106591797815906178341073550576430447227909764525157305658848428828963147190642526238688476973731210390791656670107582583157178566920115431581588661468760954811159260800053586983776881854171862088321225584377135121411104346210260385890160383255111422994401397014580288839622623425552152461395706143167916302215180540504994548401756729261843946695954085073583346274235800509950435373414992312206323101952221553622464554314519405847425731399529151002875935677762895678459345474482802850293307784135502010380188524700600158121919111328383518634398481019444994513800550689035377787740319168415844085797056101273994081944786998906063145514775441530232012755144837012523844790104470022291669962468404103349511151727282833429516566683500197182641362451837785235369338038314756388890601050085479516054707833523508559770652875052408454597592773379698645168445626005028472523253681209421653672477899910035752187808121138695355155036852867780052638785060521928967610760305151724751947620282826629362861045772620763695214893034263852508066460083486490756656118880190327667957986312549926603883171704000310530431498591054834135219744586546884240397247991904820943318590096967776794946995615982469096703188827209522757997581933860223558926064064857441545382879385490205021424635447820823375653184957960764741377284228958054153825472985389656887210213446963011220176076759202029298220000033489360040355629012227725419867646036099967966601759929900916413413922884959766489068094472059807049547235601383523835333326948456435580923173395178125161852863092566161298478608715876727763391467813957080433654671786087380883247273345996074542464321242483498954085656225900551852901900683888182351542840829371224006202902454300678717903597460944679394592283431649999278699431031910923237807152415068938920751158595505821821347083848632878319790755817801077545143782899597121002189825919448457409611472182826301638943960564137805751873701102951460494952893010572063165282228980857228439307143291470171774240884410298910643451015122103096676772999026326191510928603522272763192090266627910718292983302439470442017237970083069615694935154733495551814677945297488632566874522140016492258870030452456347502119205672974979433102789924456089944641289898442685798521536271159154998685156184450420381698354678999842819515243511493914477442776475749653255738949174453439581172298290924258155982410584428476736541000103982754767312752646361077091992082521758482739406366291287843541269547169079104870260275337098387815517238760458876219287748091205909137390082375778981512758545849343768251336818900039425486875058672437993272951849986980200993141171157435392674373347041443311509042488678416033414358524821585377414537150837698459470609042154710914613620398952640694727220801401676321500518007359255679149090901769182517312575529231252363595904424685994555172444670980609521037065685134222366812294379211462380642949670926706263271245300262924598186006787048530424809825224555544274580361878539899216568375591746670715677005769538638070489575653041948092398109065177585795351144780239526683125786444718376085932437892209778307644113608033892244765328770049304093638999281784458278797237896950343405868825835853195706194987909440760970771833320501699030228789217403727641464741322462288442471102445781940129993985048252923122665768772884566010374331130107083978897768966351840694641328646105946332213235655208012897300914576995535029337283274451535702488594219241838976495631634777919875951913030369672042678345965161434767927484067849766046017503075362868331496912138483504878118397064746426417086229984678359135042941615212238892914275751893032491425505987122459915405883014778826202139131444480043292173961315106127690926888339696693360027474126286753295699075934214711870695803539070261639584106581203254691873567033626982963048778734116060856617396955391146397967840671555127969755897680413524970185302719510186237672756385363203697689152035798938081051026748892640019745013103610191342124611419163774144066162682317218892687971732615618896930779534381059287220256570326067173563799002477634973309938238812234396156137248744778297688214554772998136799682762808383986850697836824801004198774546345139039137803294365597696242609408608286713492943064735197435058003725506165130905247611085560854616591985631895147841650851320143493168335231866650919911963448468979210733920162468902928239944130770649442244280897141311252919883880606567378777913899037461540757804466462213784790616650862315784252887995374301530810011508768126480469734099085152039078014492385593002518857007954228799581202118821423725312461576286135663098063898647663162353726651204660524256145402414625961089983786824492342670371540817579205234430916782329798132548217039284322025895465847426773422839178362950950278194292735381927731724074891471720941524169437869006935412247059303012214053010388721220000223531889537160246476332513137071345736658075553773519155646473802971445289823749048041103892037251601990243003033985037547511059675605694628532628626034689593299024239622944941540055113600437974884838398700585574290927122780206216010414296312833505297320732003415335112793737614174964240990456099409434034957829516270438872956697837659589413368950487321811663043167905344323207698263813282099039804149332928274091116914034201942473049000967895509939634659412642186181615811547225690590777837342804406261480985891297081879022592163746692048599621950838239220507796896760575094942186949609160679399997999282760799215092247973731856828373040189511711101095784323025095748995681199174183509519442783813251470764838610891073658525124628564436127672498514288662241553519036107310278417629454891084630775698951089570147145586128358163799550895068708977534776289175657128402769977523483148799871655683164240763049688456572561316583441330898240055756901765110848134323786840159409972485093348631167408228028035019833561577379082642889414209044836492721851860868460211951484451174749243701137687804234646437800637021185136687788775577795323294824961736895636438021283966382950279605760115386062005017373655044519388785257846568262226634364772731553120791516454395714635579182922438631126844297956223469391908325887047018726360930095350682995059330386662740743486122701916325092655243536813956150251241606789629218521993171935649894000434739769507945775220081972207410450113177444722015382732005246631285704983086326545683075714334300048949218690794514071255295362350322287084344050484392352799009952050540251691259352489877742712036210292330119278864598435563623986505052612576756710289146868990177245457279075704002816115885555315139083801704316087170640232005860162175935560899470231854939409296517474638312153218375078357031905286106251299907254060362631253541922399895770233470330627504722989073123171187638683103785821594163199721094785467453196643577936913704079536245322598259944665557068792029681973172180416506046167170606331380501681747323093015105227889366635886780828470017451975539726586997322752643444048825361673355370706204411710383828127090334506450632478574002588980760636037874272229375594196622711210654926210016037384429281495250685244437590548839060755860663546400715931609542580723953273994054586556258542670804755772624564344173979349794621700182741334395849533856746535308714998153390250653107237907331895032735835773313498802446287856328489992150193264256805004787116065193781640725312831452340664974422631989103222713563220563310998539073869036030422397914342794027296831646983650006943924567245741291300056327686664351154292818127986106911786645890864247989478568566089544565034011566738320189775172081035179091465280812683670221584732402223277515147504935755886627952456799276389616397467422885827931180729483337045702096495049235707929066887150826684368151492105866710034099902040028742679791669205374137310093682037162064385127550668554709449984449933726565080478809067617729957742813454140736694573304760454173070602463226953613887562822674141872458069831836869111962582049083006395643961621894915638118721832971369409364354166243424521953001929894613266063483695755950453633694991237827274784089860151675336263657981358289277948309478764629503762819316258002056215140433359098521306522788646309432718774558788964687219942666928306416762141886546120357347766327542453695133096526260511037912842793871366527168818739962950510045186423938517218339735434659540385156029289752599316099643109618050230063425069394837385359047698337537434818482679886394884807629720412428787996628122133321052346093822061019550652014539790597041796214341698393462896651174180278283600029323820062444938073029811936715916531866732693880522898573741385294622033344438793321634378270372282947900855570495400629349858586075849072093394375031219850449639400152342616477194643659436864990065373167757958817706491592011227591156354970485118041134725484528997281293321401385340358208310639806163519324354893145621250201719754124549236772382843901017016199816630002109422188463461790283308110333501752580596507078972126877611304575349949672906593618354946021373205988714073189109529718338117746131092988838990574427641586525483523739147780234614692124269008025826634449454682384662453344032320773018370635439412766278627475354798671880682389940208438079820550867065148798948453240819462657034227057860264168271403945096838819421983672772498842811323656864313703984780621853376758812118391043727254823913707531029264547253947863010195975604522694129984404194867389436910431566549679805463714559814618205245231049896051842122976361343564741346124556840304066391028884823766838365352677112281346356424280368946427715772093878863986625914376236227332921152915648404370671011456569358237206945646390792006809579356801878330690040755259175197303848376807433119785605566960407791932737015216507884587419439940878914512235411981490384651847194788072888832494512873221990450198357948034306976876449673448373680300961958474553193543711168351350507049106876697134164327479454663584473649987361127650787081853791490040698238649025697344294250746437627355760037284747670735606003506049990980354219754211381741020853701773401634872448392268026665299001116537654660619936461646082953377884779646042391940558491848683023117867914506073667945309421162492444509912535054140740183435271206118160823184769353835804761050026199819267584261183577000254916865278545588355502276578663344287649813268190643204881228468795607403402698461834386583174695355513755278574542311444792418564421682040326727498968906074767177552675501996647409074506986338369392978273066090591519912526829690041021185326422251301765619375400712278544155658201603536132558183807160675086466095297324991294835742654157436682775752087515498978406769554506941270487739373157136995570338736501680111523125660872141440890348128102283754020466880911124886427859672209000348485253690311227159360193373514867539848572253673383352531908450152386356124736419436374905168350799450379300947103151192024128617944469771235032265510608849627333460653921058754885668744871577198506796800314303352141127174182232437064316040470108471962431191048328636049070259182603476545762161515889138881261549552444951093831115260813993037944701380558666424901951489709046100368229472162703194513384556610953811354642240456084615032396095034245947056323789412529970515877858708878888634433999037242624216138503888550311110253547646719596503023132300681533059386918595557676980118908160007633045051734018860491917685846341649710251163102691436025354768370838051645159353644346335291742827060172362171622153012420284688216684236141325845448328064147481329455088538538066478808133108737915603372822338483433562209936455873529570626993738694720446169488217903108107609703581391497791022495926077733465904808712695365490132001081829044411206096600906076725340190829741892735116340780502929725806644486308748074257083417020516903306405292574559848250931792048427483099861711329861068942051879887488077729145290491528836566755993892540846257002472953793309617688127126129838889244635126527156670535647233999016204734047317401556509471931769985445115793403299886500623511690093842069708956675065170460672421173862548191410292305510294177518390365743761888392050626293591153722358746709349437782632185323407772651835650092934931796265659105320960918129994751443858608926980548116886037082565264604907698860454778724200407078963268588284817887425993245716603449381639985335944086702353699872570523053380793262396145947226578399468436784169908945561393761320496165609704647540404398137601548361194617675395234124465389786604843215651772210604247173544565636371880783043955890673845318373389558618801280663244225783608482793153408016227214392324570928875635293179202691659853378193526327065726024857776968492036023497119250056724467137254918832193764825899651444636025451242440442557593140217424972303105839777449007726572139592822148835276071041683773658385600841431775682408432183552527752295260767571565804364594169055578903288407068519936474434058701492624188421035791867878717753358161933286787064547959053213831320735871405007453201391757036834657666719860731591280494197491973642169309646355551049971339721875699741762455242622036726535753622842285746999090955820504868236117006555079342070000967060388781250956349698510065223922217763301251439587569110033600434718735954039107244453896013671189548205449507516064296117472933574797860256689403020208972671618967487276545114868537324842942192401061628843848811909380400194663192612081719894955436265355121316157498762717711298384735377322502899256732491619363776161750272816233675627950654778705794009582717766209301041936293822650254470183583640031599023264654921441950482513221218130062118957686300998191412381464137021469085300033854917404614474572282058022906302284953012252745403545437820282170208107736518064450619243900322895259363634492969480883978541009063078533951168324662544936759658990310130549229292636093194171355132830482842105510783620164678868540039936579295466858005422108023913966738874206053301660761335594358860757531092952999203553024688892569266832748287428958742040402630872082929713882496562123938257207984254498198805252002856424557821362635876827229985934706857213967379693737769326399101320368623332328987896408696413109651987461018592154504010904576811096393084383522999611945678324046922210032418906540749269095344445442989743986040192279145778861083347673644970865882826945074278152671589528590429661749077621522313337628109935959268262158736529758725865177959277241063636282983227416105279724033921659590452606838040179141700374632341323790969012516706062325328856651013262238338038097343089233771955234306472631737199608644797434541272538605139008427412183701864145054835013904848573424447285660662239656703200100456521239805490128797165507293102237445466256358826067106303637546903407663227712839959539462791567399572724019716675204945393432367029804842678581053766557065025027552276614683060215791119600564022500630013733059451213583042554528181867853029081635744269834837758578721660160109668768298678515375938868805259636532402959270409315591576765733714575177964853486603996415564031591529213195180539482814661544731337424598727597458953216086956102265057388017171212726128986444638962238690287568916121531362113740352523538660742318705657730835033793630949279053594544519819796762372168418980580385382147630489282087067291504717877551142136640945840141118271542765333985612702802332324865827424766869349806095343322289995114817487436097434628592778990026960683963674213519067057837363781509032692297500214742021374798036091602239697947607679312229190219769783454835416068445099837011365223131959923557335169680832762723885242893100445833438239416833439856786279339481059483109883150528189213126699802785925611122540256200883042178275792194673048346203599207962019499820840798444986432521677789551982577093741334269330404442239194354719988822197345888208680886280363376797888561639758670028915102546016352736865803177836574493463411308922828269769127177757189324211637708910497353717050441776055237920920430117518714852187336356144459677511846410381656117881066781939130753302023312120215079286823319664730044139074301358353477310909898419393388875027542037178322817954752573496054999503893130171622754549342846620736482242029026587747687917076863833160616214158821501088550741088029260632327262633230269845248686834302059579634023320102675686894829250582735712251185497625087075731580525871034283606729383276235710717586212975544024962363655058744417679994508821193682085660699149799313038723149016461602416268486722475061115641770248709184923301672595654482824699312194286257032191697408969000738923896308497914770641420540204615636935842296771801897073815539680823405527321295439512852879492009598322771073012537290107183558081873153256017403866633247417979036965823396431029792687062319300808198709206232650004637152380776667261899110922499684855630469513732169294248861478899318790145145023387973583005620107026311802278472869972281197445118977376877405172810654299660336951001140140865873084567600056751045381378586187617352017118826722613950051659318677476494600836048502726321398143192016452287488287661594425575333228244491776885549427193980413665260238355055345597825217584514746358522703581857169531702109382089525879066488784381343272843216031264297196689387769666253094887504744365114436483539173619543167992900612590981154890495395434631169300578736714941538994296182296050870494260210999262225800638802488599631475842338912897013187859807841857180333142206229319613382256999853440378921158801047592275214484729436405806244962745218985339660337030433920926711707699272244049808942027022039162967665268888199454718703082236271990096066535331654965722015604803796711041995499349881067669546472430186648052900658238384564439336769793572846611608661976851313423534500384994205022585165254400645410985987601074101869324500973558813460354428998740735975883746554580988606420303128919306882372510764963676079782666738750732013093029678669920295190274659522984311099895535081372352655912846513185514510126533813065003783665466015369446421028156784151313779825727951406428621605161229707539711778843983459327760687143666395262354650701393553325110570378978442489201248565018738355379313920359721626803274909541873009014231225822147748253731805993763570572060110465819091272083306534267725781077197341633708586467681117807062686532023717214313672216413946057868189797417523657301895791281705829839418464340632203408426154332162865839736558247141172695260233656597312063742343368653691743063077489501647390097191378299853059839142513185763450143993036699378819136296427412403533869955084740773614637694700716983816615787172307936904766273142155439207250735445475882458139052669829635628996079543815755090545282717465749612386600238630430060463402638845297436298887987269780154693783991264084018804943752073865231653881976958618023388428282367983983679516887268442354288147736879313955035124051255650512768070146734390225232111924235821304644760995914904048630318631563892310012523113752646514839365918043510398047837322142694547276364539446260309786160165931055934624945563500202666362479702258171405039537978872592869394295750560998112061578558162299577028740616833076112786587565534514884124819517593053984135599151020245963199471149571426107290494522134004183798294168197554260252103276629248656035094501051220580452512989125683637829329381541231946823012371394114659455509394259671278679960985840684740043934097862583434043393763348809830391376360446854898196208012271981039285338744472130269087946755241329788700046438675121890496830711110797551497620272438218335824159903229848323105047526225758371568767761629561223920273479109965984689390817545593281774324510170866232493000563220603959670691489137729922647954069935231190627941297243387810431813978793839129379703424964258347035363982976937608682441059556433960163093929688511242572379214238550227138973477992162421651259339608433817776012469760535664695282754374235551084520569471128309162515036557106315353860252982509930976099397009494523222375037732562941985807686176639215885201378859238850220232412932843091251499393911922472217619664578256314500206854821901982319969954973652454917433664298473966351722625973800661107682265081235372766185256521704902348753319418304116594400153416602153748254202929827184062906939569612652985109420727349686727959129903216661385091942251024001893431843123226138581278932703562841689828763232707272201312282157683103092522797330180627854781235789907041166134824998935679874697119448682530165826760393454372811139536913172994884303358839186536790836345567781550041736158758262738851448369433439016381418222952487050937652718692668846672189358045721320719937155218316824922084228363196942626658984205202716352333331001004019336307508520265019534933383743626407190674085000125588293913759740058280832894285583075839604703703287042974634199403963366900827633399873440459041752351156301613589256892249215739870202158671637402317743870114732024868401973475551003697987036706054920392683461464941796826015351613667336002339368456728521713308323898223823335366700726765088467191773769374941494135335330809707784616943590528247209190401560079594426392485273878124619823078317728147332980205474124230212968489314501939273906095765957398379156418183268301078438770536258526501477658408620315878743801854921996562195397199443122702206938087679045713822274286453826326974510228298114520942198637302549131327635536402318034441306362146832575897197409929499362761407227765501420577989112966083617565762506943779828848026326515104479283697994096423986397474952930690688977409665459621059069850279585982168219381752238786557672501537095996279199055421275587342209118885049846041961256230668790622142332378402853058826935378829684647632877057720433570381465858888802159941139079501448334258743064693966470467721142713263433258918374246392037895696025966739062676073447215095843693069448537974044142841753296319618250680461278367308429618297221602313116199975814481841303754697165601848100597533019144178974169662200565739715487887508793417694835204511210260971776189730289962094959758764616375406883816264301678671935020765338015195020307833340485007616603916023548088200973356255935398675906795398933485766414460343073616209728816919705372154691454224972633366883068305297460868443550283847412999330601490566817034337302373783424582392377958389316335626274787316093416894857490096017169855065395106897265882249578943745643832380347359734038114559037054687503615933845914499399225532747346626683440075233879195184232049203309442208853355527108097314927844826830124140506909710774270435506367314090705525258594483606127357336763465263197265884455226160913549834180617229014204956689409200165943361037657163956550853818834083578885207821203689501650238556759957232570040138943124941638216621317220055362631381772445866827545337872360291313333941178080603127776017365780250532553971797271597466083877856001963076760942800266489803289078445244838311888669014326770767970224289867165275867953029270261701542788032873178340813754757008762102511040475413212329941441134770018928795465635816525323686330005553186253299444544935886598048494449057202014900813351878644197918373382632602793953696003297232792773402906589480008194279746464871011397366201653066849975385945137528938413295134533436851362075967889344676433147614575619486405173785347539490430374657541167558399447956689508317057734566828195551040614719724188595016211345074451906525320047267391327151103043744105657680288612976697911777244046935947447204425158217197326329404097926273981678536740430816041392056075643498441547316240118112850942555343257633562598634569475988634146361783562902678929959765952677154303608210972028116327016681912098682698380043410609226767682609054422034078804592170777608391539894851105381947257943439506968424335531597208005933562731184814068718645738912560518665162771953365465383247360011264961034648569743368954628021867447682378566061375491526186591056243732631362470032853366799153820610324733807321425735766129950981200444292273887554990793909702036628646521037023805042705597800919994530500241013811637316163160340490944069969021420719257936813217631994918119118223804642875010190696992307430000355266058879669358535197885647418379571466147661755651285665303384883028925899821507012418806463534635748893009346174217844088540272023544595851228822687819678871292558799403063549757974840091520161630585904468956320663852903222385847629959816241979410033416798567443181582518878113438726301997327803255979299743904385344904232081750909762531643991196251194362251869339790709132762498016852594539663025529622064160053825749248842738000755156827428387306924334042087641865935280124576369108375301632318732697200361398401303861139717219808430100176421201068584940852388089512619316902162258430385769986037992814466592108025928282118011494711361789631309983347881824970711568177143541904508986377991625066826149537383676593051167897175823751157612356174245744035282752168828241566439168911863563798048186580524019999509747323572145977354174494511968408588602032978893289923282842683775825899437498456813953794784911500925277757525992851580918674680709786368706357017559263827572414254287551868363184063085987346819070256853575532698481011185311893264940262660385126376440065532875697642197117785414449799757518404825626424818489035831712186402474989526541584582869052984789891602740081707258410291755398657857767736819976884468041775059526792249495589912866918340658703267833895734414537858467873678469380559145328071528115395362351787885921345609143740844335255047771442597627842402822397369171226224124269818798193611561283966670177344284489691324741445644441751525035999547289986800786598046941139804339740395017709072350512113687867794811989943179051585043896742647062962383763000989391803542303976910684662049153763825361812854019152956828098892467507163716740104053370816620119401146440076321766849337385141064218882723113880886429447905055873593569784741911907761639194564688499617286194006061277890431560290656695009427645140322916944031282332082839825242467148185242755764925806456233590258003975572732751354523697435595761379821045819339409547494093537174970945549649613683347788289361863312543281706889391327511625790210672111783331150067797722441700636115017006506118801932952139476678766849433770302683713487168666795512793864350280078731196523084114954408519398770613884868565329824280369270740803627207198119810153104100902809025822434103230004380493216620321288126410879253187542163303403976929206922347584145800536301576529370298038143988680656848227413480278680858895426676161565895485344461191366621311940367166635861668591894818652141470169183738532912878455044779024462930984829477902994662475526068556759429904811476710247747005248321763830289094067636828598063042321012478831633119942085413501727270924524365782918834635660338703063608002506370392814560927728239051452455807587507327591642828118139923673862313529084643753359131074233661490654054705539436087409690066247778970764163970663618256203361537193707932052407763092909249960039606859982084098273836179439986644510898347069948213211168267836451364879465394368381818602757837830915520977292693931684343994091810003284995627241402372245342058244714519923490332713781458427044019835036331732229301384059983187424649077449840849931264933857016915983517421017551393439122616088491962261342856695726272031587679789419948908352929032647606933056927520731729595896359509271217656512325786803212906989114593663504374900551751265527140544376583895977453103173133547428057901167474890231318007591328217799873581950544718101473097632461991655865614154034154163608151382826479556971946204542609752272231217784764999547474493263375214399651381507370777304058776701782333678014327197929023801356536181135530257913634599306695630423300750902049225271143748382193474611892747958248446610037870525357490858381651295586450763907208667251754330667731077752662152427706458729297132742960726623633298535650339363552180557712317222514637159176255290528997561453551419345288271212488497326955064415073814969757815455040329375338804469494813088635881051366517214474462893733434776073553241059786867390620265302592381341218154330052852406727176778124324976941209642105697560720343642699680532298448301032485817916802969573752964180431170665320476881882343111568060883384844710988049114745358975628706064421480359159007780124835855030695897800913786277908758004952099281744468418700198632984594060774494969603040532937658006006289192362932363848842372986803118422319514931632449992247456978414243477666165495112163709495254536879199033228858096450941638735042007269176523400083118666279502849461496770366639294676283458544201482448021966877391785453054627989330107701505696891651616324592191839978198327930840082129537056660605792815056431673400658440012877688122679473800078831759044424949543826914501371384366796329788287662455430495101327267986663356616298900912106616750564151030756396763448446642427323645481017388590451752199657194125174757241781396249926417802577648151904188238086676780746602243528766337318327539704035856192119666040520287305363639489241958419446009809808682196795055572264080512974388881529700392737505959254856045606802047899153890235941518684647433769159084599824592281944324251419275867477853866215178340894316464659649893974451097320504693422440735757686109070797704168147902294001257428782340057878252877272907796979420782717457462286433889633253899792213147320663012357003000543672264792266207781233815663051844431950917390685293204957145845678851633022402876767635109283348978010151093828158642343198575271992788329461546612260718456187157637903722412874788955036209339585125902492272816339522706358314456578634164307946859710417718647772084682077341004454500842672676415593207276545312989540715723614006964310766028196649545543399031913742545792274094759677490180349694746108467827049174789675365494871791148929751572020320173408668401839898410702534065814720960911535060736707763584805057540764317319102354616687921394538445402555392698011150855589422185551872455188246961645274692512187779107026766962589687749659986325676262303904486745513461729800085680847858943157639458219420483949179665206324772790927415679343284275526095789351762925659974942445130293952963104338247669629143387560980487688146215413419179026005435846710862655433185321175358893488641054593755735816610417160536531877240100514430292782164061320879103161970655388013917691376163944337776145111070123431768040229361415795717579510923259648347947303773691120838535221319570502934202532213033642557005732736489515465615621107073049101110021215124257266870140941656778904298132684225830249599243879791537411889507632824823271100021887317259737980288766570803606289266178828079923974207890169073248819051131184432384669681977663231233974680133433996709906456433473297400239815697730445666821354620859360529888474463541831632314511843608614016234290409479440109511957560305569506936128216940549568487347548433129133584980935956168582979556051555133632429473419704304591038231513777994971293398599685319580335076673158822342757289252364850422599973728758133816601161458162166829630418877324958896663719257092287204238699172317014624088914669323228587082425500803018754238385419919231575520633156919363461064865928734530171191220857498848654825455623791326679141071153632600309651854097674438363950791909036727788723708850039251381682070102300731787342807675936160747138215492799072011753906006151632872221768133799430215745001081871390599941858941159663902127546844495022491110942481615825675151818399124553700378921269625223559393130934006061883461776164550953116293843277454500829724074979047414870532158392897647599610055915256074325064635568642206536664814410551086167820525945454767153148287601284955918968055534601043695133223757953913245723461105849877777424618949653682632355200930199162600569428780495813277081278366883355241087298539407072190582607724372901126686100600474262367209864388795511741783895400431517029847111565954001290487041914700819297521746704188712156195981734126747567328982147766490984117122547718652089382987969843191916225502220240038941663639618084065968814036158456995563875355694228662500867612857908395522963350655082745947170130279281707297730060350575197368291039104209453427343772614844193129299305169193669962159405850967428829903864882070196654431300229397249427538967069589303391950915777847004652890276544101232861821903625111661087877995930166310523683769730500808293117320789698507941942286711290230254745653986029079266710525559756376264549171931567518169360510359144322785779957270345329518654629271810637236287534879968313283841949461933125172521693553847373339558379136845973864109044495153660532682789568753129585191319321944187454195562599413450648337363218009263128291963900132111405585605744975161967409403416865726223992427959332199641690114717233269689525520141183343708122378953742433576202805148510958427417045934892111025215154948059419489259857973069322647053605249305746073822229030257234555487080675285542435186006227832856052549712124879753885371391833431368071573377883263462946948401823162598993484826511212086083492003955976465213521317572549931591443283793010372703487295559241464929018081564060158727272544945771758930733351979392680443252273190071374589668856894274004116674174512533951429899930958934925809281992760858042332373257220088398463481803881787006931138110719782017949206224211801108130555634008006878373085464487299047566673874483117498285089591468579659078273519346189253471235816282254939545765177524428154990867767475683995092659796550798497618743016117136875082972859456541792350325731218828100612815115489099159004482507136494740618029956193192694663923064093260508962048341492938392308179203114286610798317037280969982284854143014417330351513606414202813240253757759159095007204207033277358317499629553274764090068383181730326984316230868697892850629488929508337766276951863006808999974895618292840858367953285535682508765193737527129866893721501176514848948673730908850361260231575907017386391289003331860609269740538210087435422872225910607062199582846267630806392508652915943494942673677280957765283620804264525740458439816593467344133604071615086355627118331717529096910227521905285184334945452403329321390585420857336468332673680577817777056842886695551684315686643350547726733063534721818457654426013253839655440471225434438075905462651935628161609322112779917860324980063215875269357629895976324572515234757861233179896679264270696481906407161532856460898867083879137511714744218509879893817974537541966929426683673156675737674471222365802030513278012065793837708792673946695303493895538576787636392467955421983530653277907659587437591635793784962716026603350149518478006867940650840965112693247826235381627332209678357670051387807749498537058093304849916820158709236139418019657231124350170685975242696057995627380025928717360426491275335932386237140129221574048750418014827855682359815868778213801168617003020661566219158859983754528639891953204616887255130533402280169178757060018404448792918624959405645083380100931569697896121439690769963185779046155694523871294035539599237970943212754854972236936492113977322180027194405779784703352283375021307473472956582883520442832138816077503764386634950390136087511794788120401361250881129226201522226104960721387618446409042579175398501665984693559442390724694512832731840813638239577157814464276153535494690311840966450344039259546926299809717282968264250197297835562097581893764265015303471722451190383092485793555572021707443841700881708342348401101075087856078742239616932094746727127973925367230347646443829671016214667671889660029422439431576332153483692492475730984305247778059759772614010799742124609262040106486029150585761556419557808573649815146320736866056246054034100879161227104046166446567820913516057952977645865589844083544663829360603611484428469067371190911770610230853613388244803857560365070198658576755073999720824178915236833803245705410591973678276753877484226080292194652051561227475311693632511130215545713585415259350805042147078240104264098738153016055666332757764561587186411779876639057059965406994801041177962091428781460719690661021384545799406967682359378530274242148034289957412738354332815323861750002493514253733797464172815001542765981702637895858699339055648524267820222489282355491697545864074816843660966360807167061707972182858281643651341671021715301204554390426809351616339699908998378981536484158332078692842451157991867632458502067004756109851161386602420430470833514374850660126498261671339058945988431222583335355198601468924432338728590157179366764747433460776150716652604654573064383477152644464180600367828772354073134090460865555331039333175910051400262833017224353641368381436823623066650647232409766037602748151991318272439625052482802410949619793930350011931828539036983918593508844444681997250832498438976227665606002412011176056500004471306365780529209146182405049975719785137546390201026468861531889691723402073043507113246726340408258378003291278989969716951873361874082005957623550700879209809274066323031272465500331264603343283599903344782539337656352115131913486995961991160537017184705246046651519633733663030464958238475875984728099274050342114942111204338236308558598249177814601256280588615908916796759842094696760138981078577982415069285851842664787937180737534037145778306984891542129696793501350641552725005538986625275667124884460290137425691910579392349847728771122926930202452554808078397094126957521006015443107540929337947537087830924777054332061226836697528503426305992830102032379257815297971314972625241897723168736224774990853779044998002111953921700113087633062796345372742283555373869673016097251535065839175679889607934760506120210887337967512256621383148770062823106616913947540141776416860287235803968189056386155185273031729790917188681939360781122306438134602509978459272444846086970302182234709612180899217191745411846779745993684483748655304137959957950606627790232344934244417262349268919201710214469972514918700950931290986417977693092749414336278330522327808937702463329001884208093097020838848848767954020879490117129994193984157887907548010193509559500304058649954552007095939517034149439710030552996230326420763123353669497940028754556675038564504777211780419448511014141949190286473228269341260993603893942011896998726393412323315997492957112263944401523350435498246370125774388324300022001099139232739701246193670160533931539692515040366456126798124519339848310954894351687223578670821001323420801918158953987844039358955556216772173101733638900966222109479535500715931295633200055020857971349450499142944365212866866455683677453264915745141875439866670970843987120998759154297108159764710923185861628256964035978689453506282001948605494284888798343432596184387214792297759776263924971081748708120064615912285320939874534016355747764417686568174477347128370754205574728839293082594347710780956687675218641908404111487133413004722868863168006271233633857690130619680562719474197819544942324850819936707065700609575498381215031196683871580263143709804343553676981161592182183989986929679681484187534595337743173093223523778988708899047360339714570059337012097479082427615015070548498964181876794275892920043843890485609117205042394007289856467124476222919808380338495709502380722346559048531604880620297513147841061762714483494856565893449987600224451071788469468975248628348127317042672035316035351263187214418154768603883489686927877428956147873091972500300645778393648038811137001857209880124338830398489623461620415981668467235391375930167909444443889681468133280810071768013746087433516831826844932046379195798311992594640815041281619464251268686708398482389101221691099018379284339333566457935571145986282807635728229427277912096430287385779551682688311959812346408285721957876414110439169156269504580571095049939718223530185757647913298899291602084638374566336631826725749877872394590457101124312085121336629020849775976738318695147618657705861635204909529973279046066314927084576170901298688390837806364884163584654009524520956753716854738233831079046182055779059869753903488048232666829417516392175224009592565333756973160143102253286194565506304977213045224111135688872379784364893926757913820078328533596883137591184832719561232688848857353488648323742773750499802559630814566866333145859139258025988843140899116049536693504173889523985779342340254015663620419966972644324528372812452258025626381999963253641790091244789285955719423763992949569356869117774842736107838077668543567502722348666149102234632434326759383354722561350018146752526204146867627859904790531592950549426358650580694797460596539033102364279467870186772770343818779429160059712767887686179920625052807922900879839793302106695571880359400465973060733912687953802875515408383083033162813193644794128481465566181663414500281115973765260808041293077094703896085978088633496236791674229804076517819374946980514576159190125231594327917649738939849869446999169989298256924727487420674441522824611598675177214237480962500204679220393197034327791728596782778031058358543424346693159616263878324328719352993520962666878692294842689185559892452127910162603204951874493768244930300974782861267582097642220964083956322816113618722066906259742136604246581281781960343010677860776216103036861786875918864906447955841514647113229995965492893230957980725473899538398093942577689794901360969331767944819608641274893209071666653321992368251285044194591926669470800594910463028057269207008849310656487172665010037796371180641383572164751544080623907109860353703663465002433888628257158394854208148027063788925229666737909412999776880296800421927332797126208050331963988194809113703538659255446515707813158222040366811414816678016362518210717287875880055002668217883513683918459813537193563536061502305730620625736383391504273967136070521093173193144935574441071493226719602392628609877587320473376645855096471371070295800322362367836406254751042826521065747900013306627808150951514929739257543500911539273497690142973679031115263882779531774938971177922274579104711991172505855047515483506649860066041796156549431013222252908327548149468993142366545366274817874187153414590777131626733684443514529689567052623993880412710672002629239830571577948132632629868712747816902451404883847695053148814098095305410110183821246671110158159214178643173232941764682265942995853955347471671792903017240685661554366411391569277415540737788070243871433886221513277045878561682189018466990088696058046927201888221963547010474382297448235438462316930862200610674708975857129804577223208156615473718534535396179676716063977581630790673615482067776212307779658369346400390588927887495952504867777498918671000830337033580895359493569039247682487732384874791545258737951315913246687114627589094787503222693620017033803336617217382916217164711894622458621602462883672887629251337597718351651496576360432034697247158622843117018570810606831634763034105565694815863651522688099377359341166281274299817135801927406540058748931604383136968703749863136291102910715379775451736814452325378288732886892918367129738046081898903161439868261074005052088885709230759900515881383256139959380410811486926636427094712661034740971036043965402044841636657625272104772117448351485895086477130451635573356324574342786272558072047031940832485522704395916149980530006379403118845654721769648493272443674188848836471071245847261897249917005088838634121296919448235813752950362449868293934954521387740715043736458084332671180569312262871759584228081069756908151020859734349921637113554124514429921036403606374389978971573231424519062064887470921145535812983790424443403319473032757083554981280412276365256973629577844012374964227354752243501722620876225269758894339098847779810018538844448318780934710373415405471962080778947079983696396338760533432741276717241259980505323278855079562054366489020505650478429477352146102788962785658358992413712358168225124826226879156053518283382637644745749117537052832060290097686937344942848786987415322146253578773882366355617069488567746723370273468258312478690672313636772124160277690191125717454653346775418975116214353566453031686080964876846626291683725645654536298237611292874552928959897160351913079111555478960512406702741130734366754616064474414521683576522731741707825452061426426958046825509825973901838402887347895368474886871534118933511565507252058640304001468986118571751621999363682091109776013084755146918001580907918946880382753939158328574204158494535241082366310802447437136525078618174351944538977746234981658300132251653141047193858967381572981986125908018071438167166594326477703996705339081340730284436585800042401472466270816163918050928229064504646531379581606862954215766420102877138098744520531585325529785755755758134828256044648724349592453102419669682203858606986173600818505433913751719115855431337328575648936616259972176375556561529213254282474096612461251437181270771293971368177917153383617048245435479005016439343328114276881996151528426478794982088197218612077291973784680073954203551078703695170481341341639108487585024516249688576796655993443324043130976352982411532313693116670022396148862319792689794139516013060239084884882500236375751392116548211945879887742921721885287633925808017281461961697765215312742560772789755368062969571632630408211897217372748897474709870110263836952071141144458786071728173059660112480524159767964427838596127798908618466950978319814820584183683712478649093975208854247690046981269515160645056221596189493950312490936337768163468166862571339544951124784036374475957876399610511876208642636504573930466513773511798141571319201104889944038188293074588717642201978435343665914974059823058886112501690760252819032657880638051162607629053710367506473670829453847377501565879009119400601466323196199122149652082657104665102452001938163972803946858175917672668605775281039222773802072926790058490212292294334554761092409840578351712480747350507222430099377302874285686925550639861883480556145614746211410741213863585265595082824435894752691379436086867700817402637802651712198247897895567878909713096855284573742690851309275488402902025733843971599641238103608412420379552676808014824836424580422861465300255814752593920385465380990798452873099034683388566625286427871069982276639650200724545452485335872495136375301716220116003468027071303201134898364259443623284615796787034789200312738679285939313421640279068887922680823898637374848660578824042074118153106458832830474406764915202705305414083442310486363125188729925782943660790537473249795252219738772344475545674636228632691552824230334986197621763014886066928379604598859257177166176892631842622741207035648506360162077630146062607899571146545817821688945642280931274645032138785009858502441620741631994906089784502109584905250568945630334266486132079986851370522165107178840991971636499470398115000897240219774961074388915654103318273278333771934525503699550555197204508399190611046058730921002552442210605601973492104879358287814898737383280256786819889020348335153780101438543574142434234197247739514862365164801263161719753381743259141409606236107064454615576668336225184319010617717226833480639221652319878006277252664281434908902457222452220013671016102479755358661986273176812212841121425643832886266527674756371113851207870952821631923985976248111025755355337797818330829976209901739808106591369500378590006630804798887155292509097028018673416491327751634366362094336544200083273203226646351021927095904304168997765176342890731143277118651243161509274874723134841896802176209340797672279929523848785725901192294107874312960480500715495466429136640478454322630751010195398195810124672570173988166168934071971983521163952388432990361141383441592836560064958460171381299451427415799402350049971600692509509527247099481860046848298515546518593153677321320082919152582140106144111220968459275508813420357222662882451123933593241851113548544102707933715989698115060084070944789111761916410575958610108018984854048700839023922617853891001550281515620798221233484839461822917253693981240783278310981629782912777337605117952411789200849319351644372740561027295789226219505535935693227248445595454037548759155591959112268264002628744067419706566224523510590977251817102436017344149260910426070878608200149225905459144651631325783102943483344429152415411525196954666739553453107452630501319825594513389317345612913139523053501392889248565633187752684464100097679162296401313204996033450203875367715996017255698300816866407041065844169061017830068809201070457695139797304253652359792074485023184518848284128941781686919035540504294312982912636458114015695444592936293940384112075171755457522693375983927631946045166604680326864006662545823370122780579434431154431477824971759864501733430850176330735940577675270580720269434823135168532485595271038921598383179771500433425576744094210050943532872022166675370236134561553766360015350579003519664955005138641913297791904838408369828272277526962052606503521480588411878437114689121401726177539098982428100946239202931786705183201555667668106981914380654609507736163241535683875471952208239766005880887337426915445830080805169534147990209131592675220485266997988522855837586043309600388677661272095094541777037955416577552440711611052620060052811185593641616935350071650727529579089100642755680681163629304785469584099504816619212050295815798084296626290767521673150172086439338357511300292827254297393693258495172307040289717015074232545504791458361009582445712374911926580188833034832868635934050507596492597030920217629476645197680575306467666239499738833088503053757831169931456180792584691553054417700935715471795939733116245089742832966099264531687309334723165795256355172488765627264392650732498909228730191927089428092123848122332364009009699527357794029080385587348625583581424313514738367417736768487701832176695777804739321355984793696210567912809654005229917722717159945959852468073485663174528457374339772631728628456995052459344791426302021226300369784144898657590147572280396089126281396607883175552618021735328241160728776653688745493976839792826793363363541352716636257504938901642252555629579612765872766943318451493284675159377296626047673471238248750204680586324670980074303524067909051323737011671200653457323235685776257979459571250518648546866424618265662645897919983692907518941293466967026303231657568387187652210892046023997890943134895439543262243572345667713722593162728846587958834718061672988038808193705405454630985165600999044640395602136941634070423001935786804777975947140052436067455177071333541710963491550497346353560342010435023610836575977980942516086309775873846285149618560147621528631479476714974058897308966594553011107115018040065461085475719752329156363261833429928007881634361511742991540714916424512737212382135838994966629044588900457979521737746668504686663180412625965223789168929362132285337033644729732482309204703404375889966978299437354984468136910975940503953358944415452815618013453072072474085679486270285566411867165091729407687243207682103022135797140794893584285039114633545665525039131654729251060986410645586992319095577030466168649039503137983856454813532505386081718346982380449520203896187710281266852160088966668509635138714618057362891122526916901094193766343029561365062028975716660185550356413796110310839937697205775237555335456483171700929847782854866120104804447889545385694731659629595639787541598279905222002575875540266964867237415274452731374130474534951706078984447694081187904036302515656354114623274296025574629964406458860148059672434987114758809528556071693674049062589769638189997368452862894360959259394050252133503351953474773694919637137760106596261030166407152976522198055003160791423374725867466178784759130839465918427095452879714266006982747121138854569540737618199492154960834623257635699143972803233203914740931301473523634253013043593396759631305737336640562240048078750790708735255418767831732810323055662633570478348228794028376688031764636569752599193965306167094202964807215891629261433085612792201287425743781128850635831945603742691368141373766209072133642496231940809206349939485865867159364761083551924390364263474117900954719268608137183554847103006107606181575635652002546471936373586675404685727345382425472455898984714479334689117497094831368349242873351075499507699269783883723968970661028283772395245049393782225049492125499781780194112673558885114681496919518671792199768307243386736723916923707058132423120882673338370456196519015683303432660201075897806618547590342230601427440355177792853665714336687516845060027246886663891004777756783059261228426484495602687853083458819911047462289576685378501472185100255765827497036572232932956862048981620779424008062591512468989389400144944697735810270778424121171155165615146556061785301005815509778980242541577972185699775963169962493216802074804644531937295094731215234214864759532323685707859800206522295364613318200195555252324940851510855362550003630338576257764737414586179401323101088627191382453306663560271730428002326366129206144492974652945550670703360229476232747161928062174252442273197936660542392415933782075251289966682028823509313807061333707478482990963225580525447715374773188516022424518017485866447163916265221424978801905906369681170043995480990788371740521237500509150498027299834100983553101298740753822834241176895013173251575219508229256959376012772942998515559357054182192694025404506781215404573307411777966255748222681476282804305888618611983235752295573939926445264326355339752401721397586400367890814477519540992491406172424872352453669521045231369284903071783441572203233982205552736092163331005133450662834032439110591279143751414701736029791851283441505816717107398061175867299867944838831087641995577220502881558687101601113358610096311382237369256319502862130386977679286615220350189422053100910432934582988209773843074801515449421422140363810459869557039559391966266863611913401854351378426802769672829218360475983184364001279299083827305875197775736009903690452859208664607742956587075771645764462690735227868426845492183112345251634849470134122899010694982709610230013400763166224841700387845186047925256408780788035291052284077847319430679470269887652816632714507175286300291140466248879069759937389316170250425209111114314773573387916915695657390416828943775681430551632917152158819775806420694961819673711950879032658088209854839389836824390341463789205770298816499591967875843216437597627185453351432379047041637655229150508162227914116044955163207821822706955007031242995636134888260097142194945870178936396541765525383234122478432560093851065042386050518526204399394568071254265668408991990376058801807943929548482805779427440882994343715949901564151346418839788095171647674908310105288739389964173474541159980923566582869335007072889846736085063741907622523686924059210032576484602777973924399015721373937399131610551987966062444301162284885800358171338848709226379391140726131692593942541294248967674980474913818591913614787291788474253256802890285134398633189016263851077164312945958224734810324335424842897769263098929422140483120110905015250367939405898737742621831043018972997148509524952209500292839156452406164903132357632150600340044598590275486221763974143043258020064174240276777130901105817313411754465119036620735486651797623638498589915678687802650348897032978114427056145467118175744943606095175627630151633819164855571153556236161287946386296126879402415699441932538945508678151285120442542452462652684181996703112439489447555677903723527677867983652666343131633411448426716573125576637005465627463378637909541604443393391454370676926586461574754781346815194278649317975322184873907074570563994281380848284927097875937066142704506846233643192331181830224082040336775800122629794164383852427160438356852587969601943000757343762483549307224857654010522492069111428145667185038465882142795360663961574183169387085813341651982927682653798232739430210766433998546560113075671346324203231147789108200525779529247462781249640039024375988668689813152807858186445014246078159241091824709272900112718821198907872929744681794671349463564516731943835158781463022313348623409899409875469902626602086642118923383987280534673455537796125516443871445519638564280473699731978528296160873148106287222422492108035428882529321456657421591744504908692426517448019591499003029958891416117500696023087097971394447583631818059279562593016738950989495627291197053893775044007575243212440496126669885354046880048952522852442136177391664246366195535297947725266012922878662111124877955739892537002340007814895840516359152992386836853113211547279774216945841195340020508137757942260182982707044884939863684568760473137578207317149678925129336235263510430744770713851542317995780316389203689579468226373509590667244558831922212077767512354019209022023035522788206390549665847443708997392431663721626584752754115167621159980925437326724100563322605033173030224644661491826927705691707987771532736044526223618484652068103607629301593339011665401385020256944711041240749202413154615398845316435560935360159068013720204897234592440231473163098403370014121512494928821251722274162146381011205822570339144931357693875646253810217863804186763295552130911592304396832917509465876854563293993866401426814346951265096671798762788069878339997216906909857135340750111410371688379973234045559091795631803338747079399878111123671063018256061968304277213534760139855927721637321391429259540306849556999818884158721312807760661983930755936828491872916499779635805576899166359051978084539338058940160206917397356379525016391541062357186996215398367441360801248099791400266500094412220030662909423088659259317550497076620037053933469723631013051806671592262367004573735898028150069134475423404770230296893237053379353529936922570511441950616655918077157259527103878712923990155240179564039363426477300406997617660139473341224299502358715375267727695556085286291224052840030045921329673254295974242524095807819974635019690023962764257816187877927515983262453803186321369357473837674101423956374733606089958803814846898886308221181373712475820429220465296711491708121412575202261393566850680344604128169741569103180621255682555032030047422267417313798039091899384210576021978741791464337122442155485473421856919857397408030916739216385762152396403109800877428916558891554189615597479784697962521540950479646056144955925210923616515074485406744803144315100047107732158762089968558522677560392643854301339975098532427619557451951473168640293389933387678172168576157146158414856709327988630111092822808281811091559165755258939016070041119745908348094050454609841380216033444809297394338143502975852725164151610488636979835688828830225504761438815908219530251335683863467492927973822171284468786491155717147797893426032657353076368742754653203403582350263967045150540116419906762829844295946277677057175607104201732361954026362158485538504814046743328509544469056831720462631127278188809163273531126509893771120958240327496914877437671128219980493779357494015855266367362145644140842814158950567507999121655684956275117375792015590285724632727355157998348381036356295770876574886315777160868140424093183422829583406417034358048665300674104734080137342788757126546911272882946205812695759957810554730113164875086611975816720823389829857687522659172108078651637625550729342666377939087209942257182136012322915183543546721955529604064889122455761261634806049368846502109590948526097482446052928329934211990789856112035876941956690397978259736811321292274566309825743071822002474142160879756001460938389674539483791776945279751620646993162790069139669146711484728528109573005702727037860530141871894761590979221371079246283053397385702280657089760345391536071391267820288495116335756591220544251562808817336964345822312845862453925178884813412592793628105674100179310984744693790495810648016940437905829875362975313407542336553983870710372132483783174729714072288788373660800344775747870673898884767758049212966533055877811650839937204847377127195707817019650912654706445676044869470539613299836168916973417189869927776814641150605162592270583970097540679208906057263298099641193572433382988849820213082724704788096483842303456650792352342352319887356612896872763999201782986392296978584836065608450776605296483497828506370705885113723575301435880933855511008698523211494561501580254419119800175961197440458074218697752654845033071578357317095786162142039825683958700104991524606866554035235836590116560856946796145791911249066098921772881424616795546439501071845672979335104908880821283818266295168169919055353248266781928480821302697512256576707796195147654982277609228373122102160291741465997993941386845821637586864601741229190589429051272672108999942278937595848873206703017469729022209631644118928503233855884427937719080381333097064703331957333315442490677814552540207956096124909470268996054793560031465827500622125633386382945930720564972948846776424273518361443997107769751456198919807206396757580451102668917816732577746636173313163619126807046471741390725293664980068646036213358909585309570817934180682829043287900286776849560172999031701444987827643926532433189921567951212254509818801669093774675889027635558791240174728540935773601101684870997361299807051676061982864301179640840025071577391486008557845887288215503230263519240022057016303538047637014599281719380427385853795214459791185929499806118418630574815555708453015292153167951037923901382674174581587367256026437192271063445392410625682403683649284428296512156541457394126436607544769526686443659763055153258379807298281573914159179940966602785572914672159543090251405109486075609119514574788155955477941377821532689118396271158460500214915116294877568681081897898101555159247714478461271804318674161482410990795114331095589608205356005459306632085122943501650336705932250303818130773517655192675737972927201412083620269680988791003403484796474051053917480384225150121309531248377818913881349740651858726345657832322628250771771157424861859944302817519279167153505573968568520432367183579765873194821462692545749609931954177300738509781453903817276410509337099836273843468476430553802581738230255446900574344138361775502983830049463235559374595792542986531258475930285444487223010862212095103017392882520333165660377620245896576972492007004269584715280854171719169339744438817850686854962565052638801845227316266849947165979728298443953343098623254789891207064634902223015745256323615404810518086507911755349724996962520758580871799753620466224911832682221618105985080964979274070164117348369706866101845475888151579759938738719255235492805444006733545965115023059608300310018193058714921068621533769130233118369266374953478719533719345688177973094914110136508473227608560264813480373881293726713984670863478790009156663744029190001272258887409236221613809836349593490991132699408005491550909223217718919049352366303892072500790681743303920652911458070271335340572085643098735492059344526327695137183612748988418970642526512581616729640814073460762417703793308095120441156655201258244113543008414952524830737010079176927963979141518743259775144474168487307704100192957873761483430542379866150609715202315007177622111178540956470337202196509335898857073652286058185747056794212594212461026161170396528482092656746490026839836297549089460727684136580397355279506720235867378913565108008927746392775856121305978719005989441175908636491810200946645642086994438761911952465874055598460250479418646461185808254970937857170180767134067973761784113559458570335463593310429714719698449852395988297032915419913504493030022199249885650797467376410001661012934048455044518576235490835064176347264366832575975187355633426112726051826092494822548861171985258587599750773357965460083542639518759524502212864287418766006315485529728856031173763090545774171669915201059769820421873405218792402572316025861978719063570703484505222997656835051137272504809452689298169205341939838342942674898005903954119775213946049246773122499550469479303783545302979799796178931841526729750270319384177525399499121916557527917095169861180474066816118658618592618140788091515660870359308315360227597480168982931724375859906475691169747120445912726734186443076661898045252743339458586827690562852191445614356125455561202722576815483001462117061681722147375441586972678096272377315198870584900351799666135758717729572014226279267186967620607320497136269296617774868421304723729702478026730956328360335061022828175923493732985553220182993365575349171607794589536557768486858527282452312324656004038482715445577343384787057958466716716137867342132043413209681678954826236792837241731645922438933478574619751015512740405411373668029743766198700269156964741998127671714061758077693373041872978651173684520725930767888536812921397881466534868591322480543251420477054262943251591695767573348894140807078630081432482915680701715233534312163375894386511575945891782975016553298570884278901241087322702596777120777414923606212416826271335478455641265468147432202455433099340537541227121564230558619950494189914768711937527606639601633582972305382422082281474264512815808148594211895848516377171503906460890657879040129042072295740615091858553152577899379021876103662035821781044138327812830558532519330115674119268348174730033940431486910584120932280747805883747263598015109066501951097930328707280180037252787030816880286324474515037919532894484634685389570008247153585559319452519418526936016922529199621674625730387047856922432583881601697019794644756763134385005762451232659792885529213125867512380554707591625144018782329290015797926207178445133145296379589488179833670613863095363272221138269736387228705263263654063340913591119797326579277791306679267259803755597201788955255214991057470971678367472685313647233225708059766715597078878075933429704750861920742466225365887084773771108256160819931394310876302164215793760546846262988344890314534709219595699065741618564399130199147002857234652133284550826821358682177092062276404623287579776842962325959178131464806124252123027593665152909307266562370351149710253960467913716360565709743211126070390029657816688830155630844646772223650684355563251935057916539891623196743880172789348818232458051879920963320523582400991324704386524324565250008509719391294562521870400405738922606781647868013789208701515668007624944345923099781432744098416734918080114158820929291840032772686286337574780746996987578843214785155681022401240269442304490900036833380634103074687277563612070954606270451768712724710140809320908102136782676987090099027150907637299110401085792197322229113607747177689006323727073997417760866562586083398220589450610408096056632050166226982129293588083692364512431069116163347724397427492338135075953047969499032224985237660696650006692261858906716090420328643947391163467959994354757533817454387783577060453282075085998906872942471323016819034252947028564146809106776810615332472148648792546661670301242497294874763611494419169124108349391817581312757450677646365270104254705984038152658880175167915652283199847094937960539429134317377641018273767647792247930759626745758908246725445301899328896338490433277093264430698370660689070669564656757067037738974985704936206790124332083421780026645735352554900999627007418756302042137401098811467444137720271689999523239740823384411068029780792629131594590029351693453042051747391369587631150761938362842583379961780043026327583293456193819706687943724552167783313009538256285240388886775116559156844809636843349681047942368405721602522696988136191072237798362015356605109911856836130722893088257823563297446874957527749114507051192277130317871469299161929042264779908808658289710650703174417841964954865737914508054579361741047932834430769900725605008820987140322846247248689220160463187451075475054315127320474356317311588954689689045607085086463692064034376210676722752855780226380015363228194859309735544953622415645083989492164024522282071646084255867754294009594343258786520811452180129151280848979382954986056537488797606620837755967102171198437070807150005092448522791832458439612715473371191108442811706199640851486095496105772022193006190053959581136471741322122658077366341419838028429203882397207695691341118659481364522780972781962291935504903595700825842968298153184214714052246139933254183550272508954351493616830337585448696917459226620695696993550349117188296038019749353199144430489636847569648544837571908448282492738045496653013229465048414895383940522159713821960909848350899222883064962068908991154155864279975878846096551008856458210740008626145937170787797200546839904626883852255434186558580470207800962047131908563279841987114529261281078280055831173620351251910508160901531702961967272090292527298417677428582615757856009281365360222140824001440813834666089461209857887046604761472825552902014681558318066010242006157830710866701313503003395355278315592077367476486373621714857894579429341783398272532793585652813278438076860693086405972099452915505890595532525728852500645927923656899699252127337778683007518718513384163166330271073496927582450899772321653390244435065643513831124360068886702331623943831150558405219293686057749075400914028568218654583109063369270681368983581282379159100374666200020797298297194652869997304176799965406792963030192608432358000894775558999957034036038910473368205519325898083924208813704849906161125397808023869074918939152536274111525020347085011321093846557951417013453059437467019843563560305709776302157885118151984461020021592467412201688434984122659947345768292179265260479616982470012638548388217601714179941860281535067373091302573802702998133485052738182557858247514194474283466302312694959776743857864319843839552089998413951924365017726143733930651478931384596723881042473228778467029366701291532748096166332616912802388230672394943381763641471864443380830695652675416431895955907454474222878160165718283388682631413699481833086571539173501375389255143402892010150828678653511717820095741605600994027725863588609280270194032043936270719269475080891842845035428716299375794475298505357820085641850426568771249744769677829896687312113861306357665641447892507732696892425564712442819509918254340939312199036538484293786250992690000024409284705985666811247396986507629809797309245159019172047729753901825813475384972967028393453277201943503794901672502897428590684966264355451015969764904223822158508565295825758803678460204805580279520621231240725345694716235773885437481686260036401979410554675335312799659978231906042262546854472573241348783395912030330476295656155345740651830644508213773268322014607601612353830202157233833339320145229158228498306046130443875284368528556922058559753408772642615398036282418542228940167507415222735563602717984743373449479199524963193992386669251002253146855556584227867063973687912157880017977718136043346872597952535743827598384154758586310227288943309652778435508918090733075338853878328588137256267103076828231340347723955533525643250988200608540419131511124181813562052774896362209889194849845169475745613851568329864610985551363632853857407456988400961122436990084652153868132263028380857159201534578405544063229932895523246269132441678951442411857524545051122443005736437477981857339578479098819497954295605238265477655004755374637255657072936487231963879075221348792943222088488526576976017762807735533667076840147033561076460908628529270398451681556633100950625152109845133493583498812188448860481555206852804591130652727502793727591757909197388301871480669813887332712606465533511091692379170361496793295328894566900195169535449063756338430941607781378974965840707620339427840724586617236177778697466688601163472317119268727904819464739236160112609104501794862596961747279757824286063207386350108450717359066044291977610905680470505583415589775173146220411040599332490804116861695083437002706889818982706726230365396192250635667724741010859238939519783920951921138105257475897446798136846152157422808051632716294143218307668121185532198463864260304341346769915583396299644865586893813797638841987151145951042068361880479542354638805874871587866989131626922187126156754390393771837284632644953714078711399058024359061986163753182885979724194232226232905163356816954715181469238006879786166211551171198302089484989020475046602261636925654244710121896981130931440852061670027578373291885240390353393976692772477448779507568002914842796420439642720305810146578782685782682714135874657526137376015213826012257259893777699434004804115569479828364828504858093300498388811368650025500339129629195243630120425178047713921530463340499763476347744622928780971973769100610803929861934844987369153586140316465465897763310919031564986196847002907972363832001678938837792875708695407524480355076882366027836168224927348850317515541206450589191319992522565228093193500268682071973872822446446531715422002945927679977735900332194208274374404199426374842302646865342518262541536846291098755574876104462403285562893756179292335383462068644679751419350243795214777459297935485063007290462641075569175489466177062842617865597504076882466413340146605823068382072229241633701960247392516139684756968015448465023613408850781545861169038465438050909133736761975274969749045170556592242303473467918613386866440660207580307206163705560074260140012901073719441654868696069580335199498712035794357367855974762498340716078776045176030126666240977195188861362810556462964025077737903761364382555110039642662333581200780080054829139954202649104217752365436423323003026901491677407839351001993710894735284568640161911051413515204777455625673247907194528376689973370135856717115253053568624645779510441954627159210063586940200863644840762349147160605111149437776313634269042823604125871056809838983322867537464168648190857828141787701364751296099542532635664256605865047858945607101169543147116801520574476216302656995279983973783359950280097324173784981399694864800872003905981585346592123667329273890967641167898717963784148076749795498676442948728341176244103313728849308151913075570043262906257142065006876434937562708604831054796382410214904284368916214031734155071627161323938366885038327967648021213939162609456347908458807106141044312821440008575789819263067244005160577950007558776384731512969723309773906866846979613775356600931718061697549988529046835969760436867235209951775013404956089169672563770250673553062492105666426290647947053639315447320418037407221552729105726643854483577521484594871170309439975869037225819049323724102258191450956183921403076887634129125032335507816154323699022249936515218127736295220189891065465688598142997802106757559869630072543372689210897138216616512502983710673847515576206640441615995903806010171487872458500672773506510226564702308043020432198441987064761562249887288787297183708450372379276867507727300142792025279979495314622878851148452106581774570634740604100461459217161983448400773497758749935473009148456930925372750258166372499401647267930986912449837807658069132586187334510837859063202022523980836385510796401025750937572220516083847072511737561845368832082773094569113400558555055886578736414278433343005782698636960476222605328333929525816918936860590178815443357699077719679144611707241499795751436578870857455085118450034360762780971264434927911781068351828586206579239159555363199273232423603663807242107771620684031022780434622698430412502584962757140557952561343208205665961032415657614819690134416403452277877889149230560876846791420413178455400683351851217321295905446297112479488054609443147116750489871934104619235325281799773936936904856998980939612529034210360115209891715987905382729986347614426701452499340852693000367897034202614174390774751966114008954915098207081298351071965921279992992475089953002371643919012376844468898747158772307872726381703380151814509146309872559702138140180416400239499097358304486728141947707467620734946598461576148862716400041170315625845074582821345861527967995976104455117948526758481263192986975670363713866252066925037619820345400632651986891686392955366980712249164072377382990793638019610673110326460094514309722322001506920402138990130946250657665796213810058783984350802439948268112623189429996742618413161555712887051990525166075828884754689955140724960983387736501667818576479227477137376701496017055845557093602090788187272001501898851698310220741914680613987363885490813346859962062574621133316520115868063470389729383992692099690468555549548860608763675866599225492548793497749153612467567775318048502335351767821317735706954677609934891977141199403380964263998145678260377000653923726259310056809753269304391546236921226708313877945540548389353677744888241809779481638287591276048491004465848325688353857329901882051761967108546143809016580910820925895038171619025770128045465689618366913537062800540670959591271531597778935565381195143962898587245380547172437085148282468184773377037619708396316676195505946001052422569095829609027435078433193112773837822413692957096968929805469800475905427191980242537350880249106482280599125209867956891161846352052179735662373289491583788481855190069428544298932419336337919210958730696367271005031422669711728278698159656810276968596320882770587581064168078768747219074641422104435378503943570523141292827832714856380435825003871080349943789776535902856771014966214241428017028702173061257105168275792849223225199305177999432702212051428800469678144193313404619264400045255846559722443920811716281108605276155407641471626066893806461319766432753322203734313711300563108729200232889593072301068719893097536665395494767337818568358203927579072002334301449255962423013947697003425650598635496408913083619703386523796304135262308595188331551959765851023812471199681630010715307912585451000228693206101681932112340910104905562923519125980595715449723876265574870993277570595069707046743885589875270801454021361593280853624677471768219681078535193758152940698150314672576776288401875161599950672008354974137070466376351770466893981639134347040199913982986429068275045308745714976040891689696095700623069357363843925829088860124947332807733053464590227830944206526070497283435766120451703338193034908137185129969545262381092035122149954014579575954127278220839998308091713776205311176341420279575619851108475682313750162548540362017760989066601767701648102499347668205331327954680766397880793943422205068788463200642980210075588306949259898285507485790216562366142629202986445846465213109493620702006279566211991202176266708008701135651454058866906001924933121277946492695249267906627877367526912797423879009021353733985061777302092205084292198421694710195639605726475920000765425407172374252820069975052580529862411147216830523326395502833727181295919189087489356877900129889720528843471246608028668256834309169670118361846728246476077188658056069798261250149207602336809943896246215166828097772815654848971459608644554931973774831108964591642749586588943116257827921658871067301131139941923549043441338121891613776676918241387948574845437790080931235703558350870688198662285513106175308166248481178017477817211508246873011871451287796176690115625036484979967617312729213008389815475500261553621887424234958245663304376757205286507899457232529418634889532125763662086034540369979131147290790288328456935639083957068554822303743496531633606468841314210544546897390173211866487870466540233772481045332736685659903814388545317501750879468215968145281834574337057652628726130373235846359004831245075187355408176392111405581759179739313110538327679643896708272339888718754061655306233433359178718419041317611327356611548703072185991700119579701807969910821414774698227355257025124977589549412353866895114031465813078723079271752769631001430272811694141675823707894054625157279818488507966199333860485283643546968006072139194377858122016508520830430462455726829409237228324586096532182522213786708036640808101074715352820412453599220109832326103911050131803046496395862510676580594970266424594109238523973250205540575306671204694695397621449110272816857061966253470384692680096632468503856386199609706878500086333278965777127295036475120052560138041797659269093140685636837229408016914169719185249153478189955780024023957476252755095912212710269768692158287140549792847932192963849561321133674588378008434541534618050151566061560922318931618631624234639278132384403620940350371788886678620654604450087468559253336384126686570046042757336263333143413237359550205024177761017659209642810941860456878908589805181301553950110465808092882982536844415710955525555302230576779499117704585870202762013783003468588809300834092268880266160850814846974963231352307955480917246755950644501026965779797046341082186198730358154826291744201083263199098101482242078022225812048852144953440531332516742228549480717076528820920321440359257300893053298130410018772838044274907967377574272004107981961314949625352908905335497710499735803279978287609195361303716547152010007458419256507843489798252902774239107688411085876019977626632725951387288093401778771677209761422886312352191077899052087588737423014401231829394003472911322049739323012625413061910491139595186924349891069308683985307313761188692401955579245280936492646716036979021120901730191375984688304116747253959325110084473331809066328763479456561350319149480480047349347101382304183091513480017980717769710311124266141033441825673129992044669099845889942113527648469242710046084176166337539569838355032321911967719649441004587019164433369043244493227505402186361968940159416942279149766283601827992666179975142288164628162542819124478977997335381459889870969252889328066000786768456006566451316428490011582294598045245082899717249184517105114704403178077478422725865824155324460700395815669859590235103419143892382662758706371983000163940417088077283554487444643755672036419754430837513526734936823492268857249848959371915556759382749789883165970094647492754546845338920200921418692813066631915538354582218136566420842305160830092189563741768123992073252411115787508403448836670884269858277793673430821985082894190096003528497972790121071840457326113180972067142434179110667464204488072299455033426480861976010181574031618100893672094498116858164976920132327510235649067025050262063845049388507328583599187116872733556405131000734277972053166484046529578372466406848342675932919270413784385251423308562288341195859435927910893712386305659509176050376674473626386411671968443801520928500250226755456590581866587831825176815735534354423413928765204161832185754931560843592595608928678902225303442387186159703191986282380502591467883879627644210736395942587376606617497996810118413810111529130825884239012332088555016061609505695814568558981368690251745048884605261615253351765576029091309170642449662643055235062510087943314003567381454918231102787542376707914687805609819827324543650611349409922579174885535752475463610720599845527549961466693617134318240904570556212351410064024287396834208669565302945703268713171342290578844787294438606536784043284635470797619428107887924928886786518027895986844531081541765777495657102983316196113011762527097463570800252830457924888218536064071916126607284089446357374868021397319876528367039127045680435471046705785208838035684015414720385923997230902560224281608762554789847551605680817714891635863975239034118795617935572622838885902105700019056358731440500610678436295507582241346880718856049998167521552999434850872124524232681187382501079419159750529622621004155268835163452195570538629543698829592380586609231381596932171409980432142875042840482945173346998551593921255178665873871458136662293944993039124510543624653816548927757690666276745353069052217705681858135032316619277258069702675018686256451651307612550601813597960634168738391709203786500567292110330846950547723394609603312547148247363122836022008569561576272733210528776361449050349626501873529425200756151788025874738998671059608374087867949546337877366786506573383803551494586302258302375349011224924598848777095440006670610026465742898897155435600191656779778731565034410324861456513798920123825001958891830305628703996064264830081258822260318522204950468126844783492109713332228591896535326495842483100360012346882267806526578181653243586063622260385502583491505121897312241926302364283570500806358769824592047458226773147871931345622872824139867257741553789778780384482058552405246419068635680154636410349379579361648597135104610651651119345448540005899125169510349331100651582196697649847709145739511514594087119667484064280969178126441100368330159248608930357045559044173458462728366600751016348835202549286820021914109523817502426649575586585436025827989121258108878645795223255419658954111632622817023624648035953277436740371593531024196211155879362085394983767355286882244306064023247323079246253825923416277165941514915385926822867722594342313609679819315157038370409973371231112798587852714305439439606414605958019281001209991509364737499985158227171151136830129684613916884156161029505553450074856551428879454450397551336511152353393699842248743204670615141799036394477309176267094748542661299254936281173089470725670970469832946300033533283028195755087130969403883468679578627908621779133048094959845635665621452939565469545147731621322910166557381128746111064055730633364889562282905593256307340351780590125698200371995316844823040244662127453154391108625057699059973669906070248890194990472627837542354004954172602459909855000489287286245074280929452114599623007370102885034527566809354697973764101990329642908327184389047428446817396567934919280696758635443200929413214266558106646095093328169660030744412808173040835012136032765655272792959269801248511514782486405618178674608332387347221256632012546780214729734869079168723066766643288339049593319345703203253684404289907560055300409940498053294322690971989870691862745559998168045085296910493948682404952516569112086171887062402870735282824942046980732827121167086531551096798120414031472804497661645533409183521144307364508659100798152837928231623203246931183611246431015897692929839664533809026856857832162956408305520530112378849810673577352808825642567420023818775413126904094526070337824106617701240691741681472851872454847800648857126127792944608008392430514029937261255975328107095503421593395092103617240780770498882211565102910323499161302260639394610495762876520884337207253125668633562652836756333223764589655387912384465227369953866310621467333496073300142453221333574200515649125616317766326806397629949106641807827868407025259012991105752700035811016320244815609052094979399503855873489904733671653785868156572933272467222224863046853267917074035991285025959907824581412297930852176481277920733286625921853320656771545899571400602640630201506469263605576142170554741550012360977217425603997485593059616465228460095812978222170028699763661870814170478585308334600734973337550403155878676283571773237696493546263701246339426985367489580926403043691699371475838742375701452725499263352554546695676625684816043383278714234578340280896771982394981518733774362039509568203882444879365847292338561864957875677623718542594528070315677401076295628098089149317196545957976123319967689395586115831981336736102994342143725960482715895723968515885730895828911635699303843787004786874167535652782915547422632030178699503386749138003085310657539276340328699635420673662605681421964754029985946569606962920544531194365984392046731671832381219785429375298240309455802461972510876126129973949231989050818950532445714709835978197535834789888578170190054927546675957992012400444469456127231253661882120101051093496936208256383453543622315954198428469305425251801393115873636310049765673126574522702868188631828013582677204968406416377670304610571366464855414187831021139639864415000262408106775892667840096873152355237729406269223500101900281801619588129647958169897535792005679898799023225558909021866811552401728129515379781331956284220407991142886896784914622304505425840021511946598898082941907364587612200681006436308701288130808030625322348053678263428724615154473846701513678454732631775927368581361184919180308336462321122986886909178375609930965269686480222262877501315574446176965009913395734543106653436042745542014910412269478570773889650070727307954879972390036924520907173274292182265457259980084904531687992736113745695409166312308237302707954239591110347721587326510688780057212393945888094118393863290980542791955303258949215417617471145712303507119830999157180262947932684732027088151986835434605904452797373105333614261810352270126240451330142998500886051241402152685929431082273746203508908556207046193501454564735566167581119258047885834974242329496753391293200267470599944516826113464493575803436662329261375270419618847523360390409305062390555352152257699257695275457265687027028154592225614112370532613058935132898478160954366388127993734375418503742391676528417544812863880516900119113681816242272706217363811787092497482501425937988140079349167989147712724126329541508220198513142529318576656673026462619543942839415141947844864518820714504545998924633466113173982328440902300077113673221818122911742373953167946467188467206397365095634690749325948090068052461131315908407655174268362589999517109976358498901765311199336698896087050356507618549982436815431290213471880623296197250177724848793496147337338669955515807351550472479917633281386900419745900305022268227121894668340549920868764442868938165331424610119720278144809399402416898292711034448337542037171337633914334504305367451281345603551282647075349342026600192969173558466045374736870461985357761517789513635406236920036836655292684106052708773614004560019937165562146457937879979433778025608240507040327006415756151476866096475085499982197429658167469571724647934280442612418385237199844965893579454751853243730781528418849174447055914816514396669355636643956035108605962719425041306188315162323106275377830736203831030315659403432096945589432567607901105642136736480147101787685613344417058078457001607132460443902244255682349126566156690956279565260952991680930797085327720298256936494828066428246238550567414434592783477555906811382496808196696922056881877343162615879552587759709275955154867253088208113979885449842625484679548731798943941923279264809951187285780189878604768192158870241241956086315206226883129264779818834293037709353631776576310987933429445150351430080527010546002697791955296012821907608908296200638451961096408483698956104968045754974380020253596944970321931621484653159586907944198034479216425608265816904930513590464183361109187712557248317746142182830807374973434010831989817520166827223866817104854176075474165092613788733745122890300067154704792929597234446028697833978067368004124475023436493788079861777850785823301888630136918077245687797736256165777828673478389013968038175708656756298148831036366769325365755956536410924245269402945517226097907348633631776667416558861693944432632784821897019745025713597370218663815788210918238640589812502035516673200936715472387998874773039891703103430990475328217450866296560600228214194931485028539312306041943394904385225572532700015475317175811290270583722233195299821761493767209356680638258636490820357938448212866342780657072380046259784378443348025130481858703510100632844829604664956993256667277302613700262177350283081832431808318564323784277573464746801707065295472910769195754498664391535100882309761740770810577668072181808726953629991049571050738487800457070850534393624222520854382823384196554611357693696140148082953647794066943936573845093595050318527861436482061599971306328780927968512916183993041853672651322954705266452294456960696529625458462697262488579613831483512821402930853818628191156199562675455358641174200554729822042266168189530756720987759013447503046188254472849935450694019443388955675759123349418847968621460156000753653043723356543213732685306875264142752292397328709205899929987331616995555306034382944904142863884988425446122873165173304422530462783168839720026995231160228702131571897256309194451262884519493677542664775342190742074429425583129534563710006398386541064444247220941252816362728141576130721384571631831945134410085000555576341116902559736760637023640066794685435224676842990428757124883254247881028120526087546389910952287382021857693079116328263604277494136582853117897003302951728765294898134390659516523193683157289443965799411858214413099296276854093532306480507223769788484704130182085876096547504857994173009824601863777393714070468668464140472392841669058902585876845072097983555296166463271779611715701686082526004749678738878773668597232107757548019763024432681517957612724835601263139333337155659805155893401056957056208397041219487023773974812174364431353839503509728446017789158019956327007990038413708851620708851849529517539446312660363022197270178165446515563432389622047850146602388562693445172841474340503924547413316686198800927379071272549234654104376036531387030301048870899546308040262214432315038409781468693973630778553090204263711730845632754004807327531321706502636790381056495600385818574963254040557281764728746086627082041281573894577650537681659335707123583710894417001585450859397940847022014607954791019287982580115329518224277165152553221660806252940896485355051502045395162663963730871083856632015535275393702858213793538353278971403107048005212673549381101196034881927694185176448970938547430986125578740991641726564438155345899031866883378402984060746554043868046395570590046412567335375685833823611229527015366386505841547608202262445570927599023087492446851335632349096810086481830754002873927371600208206261683378079954402424459320069193766621768700319373163422787794377830147119344156112990452061987776019786983320279802636818438474891572757049776924550083715179654732736300681734483701619022070003921838044907655402903273830505720511950273672537684794843889330680600352710042100279717188825498690434519186474870829430152446260134919691119303139581354754843273783122088816386796558506963361500492667123229137207004760328531574702578499812463610703497791676584606153170746653810058473846840214228998928577475575023076659166877494066503921216090709316029041263320215015031176003209916752238755332667688887359438811706730601782460457484229257970043749356862838644995313114744278183745529874058842467722244376397654085139345223055242845139994174534430425664534698561656117250964289258986782792020558279647216140153571477915943574367357366795405238331605038510177488944295755818070933685335657344058101934855576246434227206296715316355755954836654489797595863663907941824168548630363233750878937855218091312444836444870622813320179474422840962834992535440972089429536358783725391576628493432259953076590769121318729111212855108801670671048514822099741224136657337415585791431768789399533567384845367691797718536309525221048017387380808846205607620559199060458571979034669327031951415139210796325915429102722741810357133753980614682618680227644714376839105175723097811381873099294147245128694158879883220013374294669463439780943764087061311530156704235764107875435912488447398434974948133635893409735815250734560550211612691004419834003685907127191488474542816409004221987596118824386089402982294051611242893345270828335203893890337634608149594283486023427400288125351685341079449206805411358565121776043802498237230511894862807331288101519422591746892630525663341364634059079225768868314860101466364311807419660410785266660161749899707828415281903059910704712931760699266325202893407636724876616793194207969466837444093684210170178967490108833243861869909872753265625650297142808845321935084421792683267484418756377563897260068066107115035611721436632486251814829269684128884301076218917614024760565048939268619227207379359794399657120473512849436122871013724309273649964412765317700136128360421410484642255362539760132362256299087941220471915607360690789135805069735654882028658445205860821189658480192896834466751389329976077887947675224804928736932824811042894323854223797304220700072413313045730512546202031101093362274425198330163040638902366934958971404688422969435676218295447146446963670322107684230395884775123318355813216624378324744604377607693356985123520199884051845737129706395295975296086927806112973175964468661383981633693750214334937082890693664948656220453448547430470017026037466856524744512468736987278209357364840522718405436554190842344179871782412947340491319631398051547691024224982415741588296950720746797006292693482232493550638059526813652499985409842590310964360403560118645458392226685067472742732968680671209353617726841612717409452520207221380019646780345016338575156900327071514017252644526873470744911100410861284155913986565596676982757807570842891431347468197856685668248114678544466335135751152344530374647349157154906235388658580258175645846776575348866260060831514732237910508180829757923075420460891304489523418124537511346271445622018720314304166664191273394046215831386919450751215484613325901958465726862380414916329254841080435644125376339333253844286443355871136531330850696927947789058620813410499204591315737180073033041777195396592691957131419846922634685623347139279346807667407722140667316619411272100620489443443201264281489853568468927817588666213550439918656710064677892420372410204472317132711100979958863575580431342567568837052549250553744438881794865583893071506356953807946682117913766911883364267714856510322895720392583507936809782532983551375179492058893434709933285006581069566816662583967194866480532930358678404244209479405437044894379806940934690628046718444711079565357993491161996241498221217410677251624050172507476755980095967586004576150336303463088473769080553454583784585557268579903007500490738068242135868939073815520681515787078450347358670032749569651771787621298835800268368302586486270538830362652430829528444524309488053517242132493514573778836492391745961565466014706543738617066578943036927889738325265784211851630799652317499426508362724148015119374220168757273367328277422356532380239122905602003741586616553679933325315137304990966029068585955460962361951343511605450430813377985752609892132956093449497091171096141334632976144003503274335672293726307700050486291480109890911595035299031472641343957336124078908226013807254320600489873121530562161893114036293292784811643578064606083777986595899319147643178347290569112479676630359956508285841789308958616720598674128259896379801433627566059429010838402770284124084355257150005108915467216019059826916565579943500332833541157031753678209856726310611455454708200170007516592948207952463554206775247143013594792760545916615436541538486266967489879284993939214386359494213448001846128087287075192291160554035894110265912388379585016994772018558899504771095758338850254646220223641197488037181659406243851791655328870380489686201845280494438317062329847149022416836073728118797529125425033904706626199759367876255769671903093934359842161637271008728532537800592538527573683450466551184121628534648687055108451828162693159964559710899880671368857849451564732288461519765793416322084285110676755863149257920018397187714063121813416975508905659678569325842755125052622380542198519713188240375637881563531754436672634329102462225984197681711119031581350382359846280366208673794268027975771707507585021988259145421429971566622899118995343964699432434871259211050597701916206456921336151407842028225284846056998205641159227681983146878129694428086712882902229000738697861546440266653768526762480568086337916780881183557787575173970504977518649373279798729509179482475732760321008738908584506234518086865962888712007546251941126690280891782746878373174337511155233416683089604991440655184669579569285484747924544678655186864675886650405247670903281878540238229787418311447590938467855203046521364514096653759957857559476092760466730004034167021739651497233941992422918750942124304024595644469673237583128186437790434938928051635732250209576424602794692805420573185478703051592106798720419289381418433199495297670729957682874681496839538378246428567854357508567920318013483936625373350419793312278346321938454526356901025601498825909306528430390965187532012447778143483723303154638307478089710811385902643614334118279611768010573254508919693786624185030396828731191288100026852482640470653014796501712174985701966903121710345006042679519215053262126016950468656202263999999444011206893685870260976778012379135478914141661471866030167810980516340404746591076581548905601113914681411180858364252431283295259342148979217721394561343588308411468615400545902543634879668086374253168282818131000642747721149951800483526004666161245358310681187953631476133684552101684098569720049429269842246016551424690477162467422893325070112398410090622343013003955169399001097683558970950897226897662327963308114204439201314738672124667297082298940270970706761869840567406654189433298017769150673339723872171594039985135435814103324603883672012503638279315926537867280238727112033051056902701047029404449922223060818918855384387544875563286341077595838212925436548129164015254573688361219655509977648969096409683724439564299572891650491807752775962855279711197814121652991569550567588506761803643230238362338038173407504246714336317469421339918032766440616656627666355432943875863790095463467596286265213460186020648987693516639623183832206510628488594635478232754593723184415288439040946403850477474230695343506344270328316957095742402883644802827600689782224698237132050713882329235262375834124532431786890439115407045225011423934070362261103771902930661804103829311885453205200438915320897573183628276293976047182671991966460897591956139423939078735008088317771793124827966219808649633127206390463844055976931609063690507523706411823608209236421642200432237328659338488890261333992155020822378955325586813583114689387184642690818810215153202728070238639425455419513582223108621892988850040903943498222412899031153252100451585136623340303568700263199620859126072710652421641928991845920888272187884732289093488332871802761097551045930366324761567243391878231936960064464702490567879542128880859675650333628016203228587587947072480647712899878387461366259661891249965069972869357874074509497823171365506548352633016037845315212689432182570971491402743328206775685474082869371762451268331161584831890811829981659877322046363897472788787906340905043335230231558818033717327864464428592346619302779418327042431125932756471077986120903180144502380095371642306362924097103471825920938682828358651420583658156959277905599365535264227059693414346778348949892924920649730059916004075977644433237140179513312538690434232806259246649168236707026015745839094751332793118000195276231065564694191921375635509248268038943022934517124797211732483248773460100616448673436812737471693685750829758810150115724941170944712319875425385854440872605652280922237099993351745625596937677351294459869591398416583429152071823549637480525504337153899195333902478256547278019540666964869583418110891652741566254788104627308983754272366366613320646120157168156506851171657723604459739852888716173606014226042489610185897692058873462503170638845769818992162960163448018672267268122882517807603548332904413587279710619468902071286682875311090154448839475305240087949453662547577781027193445090730690356243883702530975801837280028416987712699900412014292776683641716283780350972606796419234471731448504869910078113407921008190348328323977975062228421038198049679911602142616235022211654036457363579795558263471657449550607759207254380866468424895946134989683197982004593059077869599259394478826130032956363787180812442795327552916558940873555978316307765824840727063067518303790925454019010869660470467758376406445664627856812293828227863014878758978202868706813469025280394871065004984150913957163978759494468376111454942105878429702989456605410791285413116609563958795908574027002165041664708179895797535800588963897110514536954381747058575742579178564844753247945946154186818238957528152813191089489158600753673684402494405112330747093662399375598143468358562648001946139820612677442056851757045521898549494870024123081631709093778169248666013749368605318638416968243235302187988481848231491980539789470043570436047961586558996446205179118884387068213211513887982761300596556170853262333070613158091311856440938674911517684301471482868613375366163430675526152927789876880116168738844231763829636360200305717564534456582569545102604147070121575201990335165039044550251845090567853250417220552584644101537507250131016046102622432771554446501570663376653588119815355215234399418528845952184533626174830435017479811930334899127395762106502604567858483167865438066153701260780991595135818124336239355634847277796202180421463977191724088926912162015589155628657836962080961321339459316982692292148033939390136791381454741284699272108619663444191978497144998566844282754925189469804176338589201727473471490368808708274338938179074453692277292638966948387136308344872440076556532794154477119547534153752478833557765778514293291646989415990752239427782320906931286315759889276361512038192711804687873363685395339699327455115338411792190306265696787827558061714078465269873056059332900228032721823373372260940447018338279662643060027907345184339973189453192783117007779427427614974024942828693267268898771994795884796747647754406057593167781718914672906946061434784627712686134142185760236158323918726200208647363602951095577558455051740612431207545444429800720659366621957770641474951820890724730904636331312566504393220401489340248257389904043896748130148705857764546150803920149081673980460610173746335238743100055041800157605460888182449369057681364101794760393048091251807894408722872704009224111958659426735156773970922928518837649194823140365994419712913528345767234734014534316080035333701191351416134338663505275344129784199927128481237118372756621290803559988882765310874012318226395515278711857474918006818259371960064465175456774532966560768039563017755308717718189730071240303775787355532347670267079174011927768566118137244697905688978597904276617723615424930513808581857236186771121224005920583229807381584238540239987913886050404476384059290937997912267280780435197124698228018628644676538990401473670461194920910059489404300351446667038076320077443073401223370993841682194522126705237863894558449448426122513155082574677839320935049895867046663092094729860699848875199408468229286824722554525643001170275886159463855070736019888338427431685586572356776805025533407340414284729753341380572698738675626332701576141162857831667134067612743455912661672022645494463050101617478830833337244696141622777747557024832054634471826876290664261003833674497513577390542935032398445895982887221403900113687870355463307752857569238441015160345222160621498582099312996350049124746177692711252243616505375643274348853852931083779588195968061578161522686053890118142110130237048732945574667913042727615854721408608520980556164554983320995779779931619103435902107265176979266296652036417696227468597170229364319605883123189053886343005036573521795727494695770378037535133699075870159126999391035067774341203603667112022568861612449598904537325775221960422401730768215952027861884177453548221431113534684999861486169786487026270608587636621513852367571342934349190448545303948171088029206675613412093612044796467318831725191272508615688617498981913172743327158667610237147807803863915201970389147544356469698730449148572663290946484704797098185042200302087465783616728783071906495278296567609436097800519910093054179267972508626867417353294302216190738548660741324027440670485849380138597354699106866977217361935601692628245370726261309827532871149699180059167199568175549176781317520283456249967638713446986123156968013130026478110126076132900284572194595908148074150307951768217327468570534201073784281535707853640983036282242190954088192485752425891157841844277051718305680810366312879028650561320475978323864825852184050020137940330337855557805729366792954656445323438653791636839317957260612775683814438324263551493628644193099542528980185139950451601535811695160036470683068388571808581590173266942913522138636924584960320130433622747885735361466376693229861712571782832301227484880001758011945517276852047214339990623737870625539699091714639429869039859268064140940735224994791339158814317752265106514374130711170976307281232218423298405039936592343262475591048434712848638313878130190045479528345745996840397735739032496599574689443379370269444258556908611522595835264301522719265189453756017012341530685104122298897973923528322326607847660721321619298177699298794168448873333863626161730366856929159689088855224441906342631580253986256320051628423685252720355390921420166215476613319689582813394921163883162092119182670684773083204524409561656412032558643807053162048291586665565680661825824801053885378505021162852569892505808132444206913645507340424990634151891725807063674179823196761773382155090366928370465973852946291617938497747658449465365399216771688298976107651013636258310827906485822205673877945889692570565416558524056417078190170360326062455409209536110064340841974009179398299670874629519359917399339198737892156323940587841878797618383679412693600096866280759259435029623147159938156110873774454093722878128084428794650837324455118004231294225369919224012556897701090968155947937328543256292147665690455968787228267185296236256466560756056143928748980939476636195760789265869074740681011363081857135887933326410073456957612045842761917512359092913298130904660333812362556833389290846608236136595240392407127942531299479463006115380777965797889215484077600698217626687824038733490235775387072753608499812506091032656107735091473233931706155207619942383776061968255122057069394613341959379539634217902920301060650326501423302246222624562214468439018558329406043454318268621085794384561929029019481339120952470630679936515983474000601277912192742583238141583201768342619897364375891997244662013437142194067147227446683677713704405948506276398113362268092159024424821193272844255919810732731250213060999628972606106926581821178497561956934330964061537291394514321531233873000465171163520024974971153302873253407033094022570821794025238878393686016760295489603730209189158899052876470041532585969368547787355385664159967568657915232929138177012419450913319094280058841133908636801720460346983388904180613504420378184521887333040608180576029746776062867627853973787194909900857270154044409384571991266821293828662391020119629864353570484892162968609150863539560965597633576523136202054650684948412825406231319944313056091271237874888731561194602665540617216444285290197712690842734625232728458051387779379412679234638137122773975188977166935121297140478403058426363970677409187816292155362828232440599299148118494761759074835997591817045396437332024116251193935031722695593519775718794718181015961097793166152175538016479185138635413862411300831500280401283363983007097920968524468401415152165987457231530662306187081242591704152037112809659846002831314504844699850120898443705561662371916298129420339620454077736337036041771972824693825729206075966934441235149907069591938035337707569793275064138249167528503469975723684025796567749871530448294649850571961754867716146720041921631748855803549045445257154938281525365053205178026534427709490221254760323855083590286685340453757406525371418776831228685279877976653906182362216438046254665940271841808836872024369070692703787508252686588136447692215203770544507127159864509681827601827670098260815236317912951966982659878777440606306025697946591773576112719344722612248780175768851999254744225643360564163376097098816134606947395406817554354117088446654426652965081645739762852111063540434548020611477547877202913213212145792754745940195281430112043144215291183236071101292994192426480353530753006346579096943756996087685282259566730718448243984224887621307497253041846414893639506811462008504908923680838660479740723947273690285542045100255022562742114351907052538154649176661564805353899522300039668698103701086391486826295395869685539235521446747575182568577218088510067002280061901934954084788157961890367204448876972231731718294114494873784083200770762492812513859803101581175888515598843249279144846282558027732309971615384916569554652032183038083342404032272831712363388938326306706316432268058787765834471831857570424368626057694234169674463238642835075975425116857927549244301757075881680955096993049488315301596318200831764508760411169908522390175902042412574052322409021253330977459145200282964994509620651787337824191529135502862041432226110552170393866280279480442588615802000647867350575742192628510651816318885091940529260619504108750526954827364948308163227426912334356733465004885699143813248117862117627178358371015130781083030006721846593939453118653790803938611554043414014637039397082174338338398104959537311755349287225560692404523356940400350812634935512950583694751839404344383679392605339613785271131695330478361925790527143648146491025430641736615228365263162400135734041294740803421485518175794571082956115527281650541476021514748850443250188833544793033103377149605348275498315817515191141271612639012722533690782730047483006934371707029744438316556169815648727413643789992315172877851393412701284541123863354716623584137990658787889541869887322401392985878794595484572749336922608114254436079429732396901503982521410226805291525228704224047883785303835461964447586173799383975776470768510753525785704225107819713475331739612459956162883570792177079331143935374807892227284440415079199724930216973747609859320173673353861351350301739676523089187556936897465955295024696640566076734156067733881122936764592344613969095752712098800482369963486532849512123603363377551845133358452483921177225589821847714623971724429655808315882634256703055131962550967738554400253120566048754338521651401551329412094079164805708719468143018137805383800550191402453794730002190290252188789170214331475087166885296643835311529447855966862470153454402072674230749173724131371176222584133853457307968118868071126246656827997257993298607483191307003404929949774923284378479211253007377626654620903566065307483793939903268828468227399283726125426136162701628759858712232655352888480984831152005280787721955625924916719077338795776390003641982101771352499738329235798134576212108822835025699623425098106253810065527277295337149524740924897073972062928920960860094684609039305581254025925757093372419333166960977419029747781210248822588157196012786936648532887573870784130728780103888930700490198100313500209615030796941630991147386132459648353956572051245437909161916472776167106683400466885375467699122847380951627030937665904867531398384072420966561820909640694887195744554101895141733861248970061291416658103622458838964917339411444306674390844450487508670292616466813416139632666598701154010020430055063428962874800680130426335413157090518161384215232945158064688477438997630411962493365229307180546696087928285463398776233018276360172133734658223799508690980970770238810465440096624207997630277855724836301375502335865364437094970886837426150765981056688015504185007001594540227056298704649976200381071790035237551027419450251244402288596436169100153941023202846375888282557209696990678115698917829100084735779470691292962964295275033360136984319845572331541601612664721254721436503421476723432026246204698055232673298801351275476987708144468302866043102672876660606202984772224092999810422604456799368877773687390776169528568901271071039114321510514616710945466005889592332477345607549627568840432227456276262548541257608654466665906072502170767507034179988063878454123407288064101628929444888538655017911184771783733273695569478532102058417835924151421065428315883710336463213256588791676406724454250943937142265951706016682404957134660490314169026835589734315166106980346041665314123110592028271315831365908385912856080518228484100084841510281155879512194661658390452381530874494305062853109985496564908294716910622519651049076345755306254974357603975018990443923958130105663195547935656349000942156822723406004239851391130830421601668134838749595374147462501871921957623169101361605683401515414178330833519655238311734178389348060074484448439050060822433422136896898471994897157963134290366490393015796161574228348445235126219743215684135022540800315609163373910692400854162283362790927278700941666546522526804042049293165602090090528670166313764593129886447635991101948756925739018181718487699528030901409080212146597291743716629668782285608095815613710120677021477235264906001852366712586965845972759704407205079313559143182310905799926258082656964349331161754167099270994593026338951501490957081939509911695847537187509184983827947044477479114346040568031867240109964375159933760546396052021181698717555205597418521726477856038051902531096423923948940445676599192207177492420747888603622125641939209870963099028436798155883100693586209472940644960860382822594119879731573652927455706024026004135017979417007265479571245798724728374629062884265595249865019857863294387793538646148318309546829736756787621892034998181122496682643476012820793764427531709779837376292765786193381759893939668741110932356355581040475230610405213843378139682620704867562936190221592097268262811393217459545970678559597390109300355358270406906198063824325019177595947089824840417023300879912853006234427885105649358556479410433594189679140084395762749636127809641693676954444832763682320111378459212979825521409017764596620855587089238567783506038181130144444343530246942086890947618846464443921378566414323446695999232883858588873303950003796456637001019100426317788592225786799159304326483906433653749039522355781113831764722575168194704162000535143605718179334346533776162451580295038600411142656675293836671586635660245326764011329265872293814147657795626523494332724539740786912274360617524816170988767265237561190284330732952820615469251801887690187024218093094457369516136890075654136824973191712327021376499039490183051473995308823552892847610887716844553528383890179064149424075003441315619838247351534377011153229902979057746064694803376003921095857499015676678353231164367444937337449341383990667380913851486014494693321431103645198706646005473165903281396303756986929389386472601071490211686172199232882567676963645835635723231174151315294876404676268147279186242280095563990092865712375178149735292182233177280939561509055521779374650543340152182715274796139265259157264053768653768709239095720972616098104124281013723142220544140402475126555302772268071098030412688929383809516232419169918661907535399087362657000342928072155497753074964916953188370226614233212303226402156486779378548828356189393464308979191416413476708113863773459712315932229925943122302786261779843570548734855377426225569524014834013541622671305468867928586867511948424028657000570062969628702991975784710263603716450547434535925744483977084635465623420803378253691894854684343685744341961575198245189733445515357327648364670716650783392912422601170557391540432290132375752208010215278214737444304859431394173813208628850969609503626834319632402644965404826675670341994188516737117432572191390035417945285870145516518999825139611155514143585444629774945510440668381940480066913408954502049774895748521206166126823486604094046905373406313582742921891783823787204572703597192764578479768136172546766568386234707298992073504320640922378930971237209562115173328486417762059227958724831097074659176994661496270260449721201590756219820298427078029480037396975197437110954825707145573212651325651180579243645181374536315419679003834802533390130838122030169423292334441166183280109556507893784582386102651881553618774879070296102930097406080617577422742694106589813032764596398090293872303976472407377609348277037610029733103490085272576441426985278217217333452151640671163003154139806934120161313475380436781789060217186435811029588905021040763123020231915327354688518932408366898046220652085308013643742870638000299734334785471453418427108420820986041103529327474819125187129499622320815673836573738593823315715178200865647449121781055120164685558946171818381668918346261673261675053484437303798363136401673936409795972274559883774431549189153214148094662436925202829160574969231590516930355972016507781247043666757907688522117951848775805462225740784135110182610594221492810715682660426364068887485023480142607130064127203755118728418441540288325105535160099980820428307834282730627033853510140354087257961603981797022304155125002511949621378046184954897351460947956567273687334337361225614407923857693358931175868639494992261851546258667824904793303208230398944257738106413130573110228243388406227161263107431617391843365666578291589019515543615896080205887083693908655618614228663340406644774985310341544413977560774374846180995401497841384207691961306639855941891356431111817179964904492486400536539912332330915897395251545044980670114723361560624575411286141002545332920319504623460059739903430523553340708947630916727523531630137571615971761151938054732634883546261623289249753702360822403807204139744180206798027018965319017513073527616205410496030671032657555109757541656808574625364582978969608647710974244421892184509995841553343483680569499016729000895185801905066339809442492577974055704662748807841665907492292407438155265948273090491786577120117721019312786201035985836652844169200610903593018959791490018539964851428954859825077077398401863998133911556092847821643841382641985430926222709711731238774657212479380256525048809432834776618318959512082270282358148035495248262138321823428150380730227065295087737805995222585938364889571614365546738401163962279434026256190140605530772272886160491548407657804083743430024344811702365243291739741537517187930388725490958717807756448831780959285294382928657096983008885213688635128263736210524099562787443349409290970260050406833888065936614978878066959888939743565014980135843953676889087029481392510740216771084795544855650890903816414354991273787329161757572526864766154493245474358749005416714510617528005466698239632456309547937873347558267684393377520687410881844752196610257450886152368677234427129723001660598032349194311470801764658512728362084424725698872858757600215571629675909346418530524033253381288074045828309854482311380996597249794429665614299564278800771996534248122486992606253108390613622416787891880103441630298718033773648623265884291827680283303144450279561539004287303421524535506508931724315858891848612447438582095449495340857063428481928309671436817582529173614694196678370861490630082339220832447891522532467650565550812797765216185677118274763789561277220111074231022905478176834519363329178912350893186891864456840574098031016250522117903578410110103299878038239342667011027661135116901291312787665519146534055009407636561840109583451608696588991516105910428666219864944588337632811417295890373136632119534479578173453347056698271988107030726027258458556706358701924639832544622268806881154490122321509629386226505248754151409444446612749646261412123979863158282676971593625709309591108558531364515035246750136609312094256474969570413407044175739144721498295373227060445262985205487798830603389465889641902194487694266191373220542627032445417976210984114002829134830319047625601072779763441540842541630245547367426502505306734099208481506303513570721485439062150126261978007621516100724865585654844976566417443910716683413790120485062222088885588478610095394914751776236916928904114421467165001650580180105893865573241289117090287207193860407528448686330203574067907840656080207403408810525258913353809692189518768540536254541710452818608979703948547583606298218967368651030701088022838245902711054910263185747810643413831619036545896205258445307478840658826429384406226645294278950364583609019705809496113677079800029750633470859887653202458836481876329257924073152923303567904025288756637445988031102970024767369443523535939034327417611107171620765462330900655429092007551243107052970071581293811307455052534265701200329504561872260986245739224823053406703887438326796732214610303427183657455710900559024246778073985091169736870250705347779596500485238747895659144884069560444484808218094682676922029975672374881302975851870383473868545168595294529107651185385057588025468862479596400037266768796426587953166332641757199446025158128914047045816744619811614364103508469220557349319857950627770092673220540847250005721156553705815698433323370595621129869252619535636220113177093297908242925924060483847869755880575954424892657714911671653260472887466224096356316807629229330749726796027997482833439674550874158797575372926352006376323904904860188894332293089743475446551034288125698114361512184048350282104199626878901994810836807120872065418394766945949139491368185707072754684552183934349467466648069974444214335377222703970571846367862545701385505255601366730656044695047987462509036791409624851066228005714068627488601386065823712389333436201136626036095803007064832709604839754807479380865439987546079270053808350477541845883073200049050433337023752306596452969438868038137056739134147403083309407660143181457582641509799925525700121573181316091877858966083944747321453803012035342840395640313290819932904676968137746749457942721098352851495700347392686485545314795029145048907794171667541958256572453146718859010275237162108730965618024322538449977489378271952447563074473179006609228755522350423276348003891627328710919603069614450367600830638664336109575530794831581184069023619869702105912306496761528573280777619794788704482290761576789199951144974293937537087875605652197646786510899156852096478467869128041610357841105510983469376441848441631197180881310033968286755923694809866211732562334113187396873375494896089546312065452381555615607631275465258737462489793839685443500592478178509258224799925000336972696084669837905969281995084856845702195019601246708300332025540292096207027504301065157208720870535705473820360422265437899025951401295122945544439275300566275985754158459638216252069673128527283082244238133197490886800151475309037544979042686113653121267248948338405325145384372661022520789004296545457721823046176681362394684993605486492740684503661556842150265001086911218776641443959961510579285645253545655941685068597135189710544625575083311843487018235807308658525241157360259879869652541019446784794271697385325340264491826259807665486386174595383321019172454371092985196721904191369926909153346802236432332420834243718562191810572144587948400319994590271794315603442880413510497208564687599171738407200782014924948697753687492566088422200478293594432151754915671656950314021338855107934992014776966171778551232159377939051983838807806348887085761258375848050278020820761257994339436959990259494684362069858546473643664719559482532076907878357602660365062741086872675320509124035901277633162024656459204879023542020586586005699540633663956712558978024288651949584332031354358825775847943976432018689948531967740452622217957539221642138132213485083428046027008503495002997694361768728532229132588746473341966522927471162285391850956346990342823149814871091099736744466600418847364701855004237618843778026067887270533080654867000802726924221444790601598519491520305211569125784532423875489481719969609770785558275118260240607456379161151212872127256854113680721714626295648358903083169403939050596091915225367784824989717671185165253168622105686743900488966010496533650339841532871827515927474877763655934628091089816635082721272374747877774134870355567440419945981524014696585287526778757963053021636101884446527351830009507491772500631025482994366399824391345380495586795878208078301119758650385325251746316908278914729183471552502827480539781652722649495844824437446117551304354584039990783225322280901565656137251564939707932021401002690652248693930895073528579766463179323487358883687421968779179783347934611795456275589974628173526599709503434413608948220782046454298209183480399961332595094633774676431917812513094402532914451738153203427720733975368027650211706836511938156820172961528470777726906333269346696803851276201019652081701885683588013340092251007303770961934550461404732086660996336286068370280308713306511768607554498718799832481076063129603150311790036257322767455933994049907084481300785239359771006069946576286602642302872645076662009789697300151031912260827509613395743284944203697759296381169331347670717632968681898125722339706413032950466675473339379540210660363760455011237113538508615454323551320942609384364692292475761879982583204076409182050412357633009547671426403712840434193549318455384443816868680270312018411478875850443732053407702823336921077951972814929752925700945884017334110280614152543884265907240303726295787252808541160954926896538614791568892628599090774311718131613681916545852710061871971248569957658563702038494057706384497581176037650032880882536914402033575959900524023686912326591086803650045383902194475375016913149590604178151163128551596691751535850383664908168960172567437808455424682454429854873348184909249676510508604487669165533095036497138346328738096318133996686484030461779323171372542308658392875669396416917623661990863281758137688100160336316637875996721819567479763287913875147884862306206630779015904688785747237715591732902093630997742526350155513179395414128755520397724817679587961144355436192594875330176047715619124178999504888210525453685735585645791149973400667158223613646600519803674404084662613010938702021756678568672609779523715696542328326372570995995836087282725722172712195623546564969322954274111574618761063008853091952560695773038655351979340273100308416999427544908790335593153127489125518694598746572580951673684524821066854049990500044303924572231095340592886729485897330941382542407879109661841017179198590917417737281030961232754748729563044542267978559580690496226275956476397656928520063271611921342144919483321908012228406682870947666357902254457362054112387905105200469471674473685514817775934968338723409585116276813448212709728145322631913227684804973622525864877403016804919210271426456305063176517871565738938472585777857535373873567805040246090211528346927962585631478959184241489978509672348874936622344751579964508247386464676487703157946480542130922337478288822204402331977851705830613863945164983987173256406137629093376281336516537518944199822356000028508024602001753971313983283031580817146809974865891735526258460404846382954633362199294223817749167334554055027185754936125799369199783273179100686101329544857831982981351714006422514369281689339254932448776035188999691820988568562481216802126078995728698179385191816531037453821415720548033162984043440410943148912841019830808267912162880229329072447249503409551016205116998348023866827554123675157943972650029415094584443216635366815924559705510266594360771489419458080266669912297799188449831306780331344050645204067657056562557536966059605142626807299319068674002031906768433911430051951015480713273515842603646608316698481099744764147672873189258386779665847504734837084382030595299737036393686120636195823857621300216744422380611173108761891408965581965688161795813586758079613727990369415046772621596875853801067476327175912065263377540563887282265945436846169653221481419357129515815704821502450466201354364933803241314890539454666939581149071066280761530128563029964418891850554557256725208934522252424508262431903464828808438823345356205883467162536359984703144274707178311005963134634766530046520694038579414731893335511502827991739996264515715208318977661822914688203882033843646916806506570003551824994152146577056023959558973501043220489571539320453688764861668538712604199451562502592373854779834565424045873456718394811422363887829742353168315949476240343580357092079879874981490555482976691560657962875512208030905859229827586716199541584204758283800186502747217550493045993360881068326613363110366627855372898833268776268781300064944968485106613683470701156719589436701461272572527133111864468723509641074799168678832169994858169928408989229771260713620560811803008583438015161299249851208593067759730169228508076325234683672844728623335721786274201438986169801581465006811634652687378578826959414281510455073562360074572862513593450079046540326807841102836266694098267759855260264453348787597270118200146777298082294751903652535376000722927903523150113956972476944499437287289953252358489137767309750936460998879152101366992045790851812183386285168915825322012698410277626171106490386283675771826939293262943735075977557155703490599169250843863641730598173700464778842360455804564954511633265009390410989255567362449520029088538528394092334908882460618327743201521260536461394416452910980723213493033825870071549290362854112803656776520003667428663511481502935347023934481890633861478238872714688431280142851550511539916560238910359207584717384419288645093420911091344561638284498087030056148165299601375009124760472421082185880696321068754501351445632791190399745430885658539074034304963996884964048588085436642161371496926894326990879482375786273110447386789354921429049334708705804387103123718997563395423184358511453516121650029951919770698804517064157949084850395097428287469965469488841239442395782327709078814419724665843468418875964231349815038813300430657572083090999680918177734818359063073136327532238731340662325935327914419417413685302835391872804856204533558903071518369276934716542048285366385290972184524023306621308353193014671061489831449360612016833524071993439493032379651894840431614775572929207600680951964810825433749967422464875040799998148409459555445015449136964853060094454047307686552445961670158046368035503086427777424648861092502729444438708037203222828005872995365373442657963385086611365218125054309346146836111822416464864956114605289108178203867039839859908135552525943694113921808245895067741723640704908443135297553839700473433067320701907585867360142918106067397855002617420463943156349133358501583864961668698502287062613594676278301039684771052767318210072403903568122156824339744098135510428725757034397798244466232230980895430339683593502266206862760313140173970699555155816610558812549853689539714610875811989462669088348654775032721659272443036239531945301105302516819598453832271023555188249827634926627050869637248478312639714806315658894993597495347416550709182227971958265291429660712760763858086093939626605189241307932134560616178143556362877186222690436402670823328993434103719938959180532366765088738848320307329975440423778794728388069715500571199403945791975526647313332982610103572399467540916428530266052339563462055188105757559648244179883319097110403039731108582558842726428916074228139873561320993848753778969044423566401332558797742249900649883964262552751408144959233205778700537454997694692232008381213619199926584909963625909593565421164637693504651351567184506769356139563691901737869341813393552050111935568518151152187615449569366489538652100344702551814545388520969642564309786837192128620689742252990111860832489152623318500894769499129087906795084809732677474373989925008997588572983847915100498312009262752106374788166044498518276025509523918032648569098007713185040019645556698219996791673216519535277893841867156423288288381773959396463230144778073157665250253568284868569803813132557014374234626091893948994152597559989602185870875785341972616739932987081497570348835803916955399506259771369905589690950044698068666200624492986223671442447432948825239924414827345771757364847363546213908824544319950074383731018903644443269599101162101024147847285420063580572973122433023562714258302403280302936784795350754186888777087529924041179955359703399851391882788719506856597140891623577019111920218126487300612734724479033217136564386787236025173978217083714736186138992020669919743755932041690845047319470733589908034562676108713924605393194866822018836421562780149034738409218854086435714760008239465378230443197468382319127592551241514135057438137851237657753477361208978499889086288946488491422026363194677597127582924789954336513918286384620106999808322873520807795003162690059061989398475650592703593788310268935408123231143623162628984572006580644080413670130748232932610300831369954492124705782924572509375032033813144273296514934065170624422321608985798115363235041099048244908299520200727158117281962822066203325495897882530531992922220879554440530329529235176189232797872392541096290799176307727987957932941419942586607214266631517300816330319400575734220881830187328042057007644348073127842596627624467368736704612785646375357343003389090232994087805181712100378701978798796717568679138585634444380849332678245781364321174261361790306379262643305174913386847224352262098436153584699188935928937486887850934861765739947816636656192879181862600013340760837458949822203651153534928228699346236500233527552843769394399499347246624887005415127054805428537975996729695070624574005847836954148909203430679523258975909506186949402080285502354070009530612266569967670969839214951626382928539902012691926309455039775928430554235723186585875567376441165715431179987324600080741571146787674759828405622379998760395730421004241618652259001861956581775847244853950913877150643664886136928954039491763112593988029008148652900335428046908510460087534062626577004719356302196201744020189510520590080238051312126879034978367351561411174518559690713770260737745012740624227868039057161609245349727101523724123072659037020050268215832728116991108407082002061354119828482780472010214087585495836507978263993857536404290276952777639622149568496842389491201030918763814824872293190755205257426655210821689349797411353756479631501371638965182547805523845214988383402317647613181559620762594024820398553814461445411631010147484089178806373478532775630830781467452466513402755748670465407513060648006659900163890867454086009691304564086012389097044279493988979530139337684291638039381938019877136461259131787593236175550269775009573652897688346907307474521920231728244476618263991302770826920031851376123581085673112775197283009564628092195734024578659264473013762144323282451547001633526497539107480112413137934629751505118284399176902646583187052877528714945675005215702194157212123619640175367473684817160004658260017017680090896209455035001910224656941790537936232760386536595790252947644522387929982596973272274261953275079250287033039608785746567497931499465402577563693186651849140575882244428495042784727210288598419908530906391213311808001423632827063113093211310411338875105947413898516331725718821279637536635407113829731444965096661901974742399366045854140185362431734833030105658196634706852397741163492907992830314055502624315193295389580768367351547131109928758821603437986750432991062738816286921728922402400502039486639821209679185517098862295292639431650378618116946316572671927191841127420271560434735675341101328009224101815706028648427110569188366638169751637761279369113613000156038843196279507028353814409667040771731071456861914621783085258918629080366519840219134764118291594347252451494168821919996808470460623297931755012182592675189420883771268905948527623136648991621872191938076573661551147471177143956296204808561236335882186838633719688339358235875774203596401875289302675261233959363940757009732069173757776286101316147867400735587668390959238159026027215525677797444574771652648874651496503120177843515287583579121441946455843681724728081817001114975901050553859708306275412297637498506586777649061627688281810627009369155192651046056959507844299903958307418416906726000732594129344328780122855660534585569650193747070123396147559260494481595761537956428842286828575555022520607670378518699515198933380885177229644059980089748539313183567845095881463108524317820631229060087587091911642071691451206894806897974026868043998712311170592496800004941985467299039403828964021374109154836986439108875150551340349427640361389975626323421264303229731749821468311466981323264956271975091436651898843953228589368046600569225904367607417083380013000847948130312311580150179548862143945395925054027811722035412051607048932364395426284570734732824667273364905252220217895341843316493589370729221277468023804453079867693645571274093145437519103969556117251828182750710318740131747349495335786171007134833155171266862164953185788502716228537548105177941970673099496504370673078853886481791783176039446083453383084741510505361067187693884001536464736901934056800393611647058135713912313475992658612014423981531335943550794563026997016431505510672869172546554732871231892795394194615402626882685644675380123525137520548857860687483928143203772025134753752305100800046506350380435884964025868084489494826628061266656161699898445379509519890674177005445417002282149635926933831936610901101004571927526101097520478092735325128839199889660400453846681201430682250822551241439298330981048785577321633067896392932379919158610190214588599600891468539855894868085843055702528927581201825193326128493043026803940039891536770898710014364029119781910122565732228375305277944740472926580005190100495418379348081962485816564662001521153068432609347562709579484940341018001347753396320416014275168897456648471367996133241283913977675632101305448289891585810453055075734361835744400812591810706367782747155871152124433768289859556764602996614533328914563704894886468257305430452846018720771223796751684990034709142796525146858908272182317763811746479987388482229098219505213631590255378211486648400575943010181765822287354956123254663881458541243424984083967471471186301723516648769711368082407169158264336454372934284100613241121118484693664763598003749626172372064651630699823082098866879763042662083627644752908697774576312409116490581875900879173796360702605416798201865963609420795534966582880248403864113545120752417279006476794268162560298879837207922401245894103980128337447962855762534102585449996562140635614414171849390054890203994957592544076391639035822525094095200815330025202114704743414727867917832276028936329997679831081088682409471675753833304017582480892054053165621227444347468181016612434756247029439558607172701584312268876501439213370850808972570095919263893590742381047451436775497518502225106363317439354352310430998717465855630252913004959699752632390936346198751095780674030673312017662135721630041449837802420329939416838494481779411576274770904045242283247213251885730421668764896485994876118690649765613859579336200727069032448160772004378434133761218182945813337107030337177374460647117900586834105022377100409631229258256575786907460564619734923262414436583537137088655131938058121577484685494994074796913261717155911628394702764820752035965861901580597420433889614513659831398937931176673013334433579512042089298748174913931116117247734452736599483619408591936499542866791852732239899894539341700313636881954964441430762854253920965646731504412905266861675256925142548040384320805061587487550044285427333281150076577356511003495897543225564696949104960528864111272829246304783978451042891812605655032910778334306761670748434919485643124099376116253094270024400008350814581868657404927390059530014817698205638797738411031707874361058691136956986754696450743244956563594576008940139128068018923854858365381796750952315325963350571680024737215574022705589261666272490716924679062282706365105124319715004365175021160472455924148657417246257364586636159898251097927230445906178153211055323333265723071329222897033006230804444568076400162110610379103062583309662357795880925932022068618222716524870907555900222402126187709618752241376669766416862857315993973595662035237485627941859984168662356974223008276063093927865502922623365049221242751112614116295106175871960221799169769285770096698090019238434790689907814114208623235261857555025703404110936191485626297417215176305418314671055584366349330031343327307922343678539480552079303429653606260545899809359136423746275708350621027894982851328039478206957141125679801028450830446706629437263863774396875214583661576580222961787403581659816359990053703098831255447775072312962698670803870283381643809771793599899809745646536112244450264467565677566305163112479281110712280190473537969536230222034135205046869098342802765425421992424059146127714379907986750807158311679566129978694625009188582657883350330008989325097959720897453084915966875772495486269551464210960660880883497327755746703967659924695351577131275672909652359657221280757318532230799572467749672538818415360529414171752375481569170666799893654112226578132246699255400208278825422477673627641945860472045352874006704408177839595038491108588119780827568687933236375960879350324891276862921019653249350928850529076593510354468587649905585083440626898912383959361238890230212491155264279115772755932470993151138783515202722491091041003085400545037416849828148887759848658406636223667538448902911979210776576558362775200155549894223180585592123368783672612820299096553617644553252728354572061227660693756786653390221602404291393020142051215907200513681930471296340082476645807146044492648831369322807422336152785047788885798023619301172470063503141794074910394755752174303984191887655859377268017472246424943218690562923536700173228129739144182000312933155938500719877481963269862048171936129160334525307684224360834792275617317508870073912048884298341770389420001928071162734607282892380920763097003411662390461275908670503320234540582145735389698397243440023256948978380791921243080575515313905218082509814620383221296763275457910004901567777019636464129120388140875337643033423009808586342425495532013478927294804031641746265133476968009235544410363828605429943974478894462983817944291541423165464322928366087789764725548894369011899754758440854535269341365013125109600382103943530590349355435834451276011958795933521004333239171648392594250228482370967006150417715367442331399361683208055104050370817144731460548579922621854784300525469874509797604626855630264981938028456800667832004494802658519423496068001801856898248089868160769688687042402179183834037085507702425955632287695658370324761923814132770860320569846877071089977833322079300198400845687765585136537760775786380975319158553453049956975793852615183469868818516304837916847513736791684096621042601579113551198828221071219505810584469084562264022737694314030456669095302597941530841685449112165665091553849518695104744101464114368334653694944101197467734779267974320765859394259852459575924849686306832455692424675528743188997442712099829346021256472475836804289306300763144391841932082869959986914582692252841791751195775425129595924074763894215676036098406133197494809413748176626195925320437631282063843599282653901654688881981093786832293941609243006943607520723349421140303364578396951203390698558419309700190252755265939707433354008134412411585999607793270917133522402484438948787710457091578590961331682592815364902830328760303813560038724615540657686311089680726747212431344805795157472895682932037474130183409539799092724657151656617075444081445440523751069094087717578052441607962308855428492156029824612277996638789019500176266307012382986352858149741048574674103118042251598555661141781942190893231694863987182528389611799909654385150492612468870169202065530741890250496923122498864556199537330733354312378986970307840019024945487433866296694301146418732701631260734687602778111428092699072840353586212054529389850443846663607010191775514302343688209414228759754917890729380015182878621042887126587766922220957434770383474640187228972059412276907295182151505312717016328984614744162305380577045938347833533012796408416435444424009464507988447104363774893382846140316893483182320595837444397571008631114330178697337372617800271516524461653702372686418821907789366074035431550121281196118068524620161453143633934677739094700351080181982784773337599977118152949782836998516960571214252361285927457668791305288208861458667621630435962953815633277905646476557865277523797014005005032108527156820867737806154899793488915450441718724847920381814321250920064544050825098833217696856348266183866925847786661072599005284682816820119321361389499070217308449667652699775234218900560192518998305802085916096004987484788098778224729112869101316880191407652753346648903109544420801720828502224553181697662754207849409015482396691127138509083234251857401122583491554022895687080049220670032383582628417984616301374307673232440852432226734417205767731424480817206666056798722294798405690395400117363127872023080905616911162864366888542107625510792628875180742027633729582141581601344241931049864264985897290095355367906473191163727211108459160113539366152821363969435589303474501776139213333621535633771691993761473008404307683524831702791659856694262077804021456310692916708994777770402848569155546082478095948799962833436702531938132001620080053018384462000602875284256087255423757508514129253387097619838481325834693786401084929657236609117763836788222592634317406966262402973045633336182145905874971625904999177092969497087313450546805756747062584134625668969689208378846083949834313689716772404165092681660544296280119179645242003961178247899670764225582159395115417705455703606978872891791426844131311374430393569090309680881882334483728868175445974580608685659721248341022029255133630692455487031976867428797045816071724020572180242636627181934527259569677824090613952282337051801348996164255010312383108753578101325686912229054224256491028786062457564503115673424504552189006506270440857611818920999795248791276828257316525877431154570676012094438244435835402994082430594195669813310068365878941317455297600762188147687253562306880717017522472211718693562106180737902910270636320605747399942907698170486170689152033051408630224174772729480039544645645745563283789308415860234137884999906412279693054218504626896805398196184157974242643055186707612115375067563180577649629445849658063258847017990181224360435521907110891949362326990610307938607627045170773883755830287191035978115413328062653163549556384100386359656011857725043647139209339275935278843473325190405292159548018385480531469651580768735555867691806247623846867152418008926867875455715802677507061198612976354944932648252971423392701874639421966489830178596100907054827739706721411821564143358973023007450976088311964120208457147541022655496306513155335527731020109253560116186580540171951065336804645361582013328955880029059983141515087197760524038304397597548276114164553530570909949052388639791380123775213937683482376788396365875840026707895438827510168887221702128696271368911005608530489007842202995057492587277711608061336414364495355156923985427612797142530387099453280573646895649501918451749148951456816859982064225341812377823893601612236368685471598865153500202109919744822392419678765238358688247073139101623011938578411857461648933415270768097774285355076624229050359213077783890121288265010984004637168138349903319215108471582633143141064823659719739724506391119273658716212455867340401928210904318097096501637654803820106715860516325186692859463655510645576558328827031396719149299465346191355944762072190715836757663131315765353722635394015790054890981171446132585724767268498922290194515397796124896894584011872359524411251624945228347704490231070120840677650165079544814717461933864576886201686793300113988307601476328080489848422168737186482411190851922941391083124447496480313796351884297468084580055110044892758123061428788975214199749991426399681298954159872048663766864963052625460321388782642985736435753331221447526742227097533117607607066973948200817985712471375455801976440307950644277769417761628798351581113288622045615428714963620339934401147591973603122424587326530348195482587090124230213862761351810448386782733961657552864948574000365463640561264477283256522013395706309119082293440935369876516770781397017649303516284838399095271677709341931690217643269551981994507271965067158731857818952419775581843084918492049598599981268853985962745018911730627725967712422392117121679484656431320482649112343474703668619049245525284925514228546478003982431807108413391710997787735432737803748686890645104322069701146683846902418419258439309145919065468216756306881696760994525329377507269107248270109368613344211880055293456601247939506609418925129379178015844017737647539355631520462677377272120314392679619501892806379617283196258567247860527771877657575366804128095522238298356404793550288082656649546100228767878620389673629790127208813171335672127832654081778168213985555535908811987483166737650883499856497196281105258299805500958044878607938841826442665510860185760449955438697355711936738240208402162426183950665235909110914854171322042795744340838996538705927645243191721458327752655214586699571582539101622332811206117508928446081634465049152621344345862231932338561830109062197504897488470632159495957328642735575612479606156982624816578101780820633654877879865960975552623541237250225765029409139248385030623726280515589753312348140493828763290553157707414550045984236495343163480880299382394174578336899316764853949692396645397936104650925385283738925531978607583910221907562862021708268744380946809085901046235789737441401378903668708533939821587443832136714726125454062696716504865216732440564143638742965204469824442100442994369258004833676243293110883636523898482574707719288607739661371835093345535893098579354093184805690213118526835269410134039036517060980778166224703423094474454023136810423779661024945627379788731808321586146138174232160018511852489788028595775379107147933571111318564800825812711485718876711262855485171073295584815090762156195665469325180607393491187759436875114012811890406831874283366402050963611460833984807736957298224979074937739309967252396022513834226555348876047010335339890649022260672940499380005507609226539843747200985076584842259912331807203178235930035887600539077779506724822397794271393488630996661814548099903610000702893608439333839001564822660255842658388045890100434419158592758581393438887391514269255187006822444353737739060310422814629740159375457242221241643768503908495064401788897924919415516641547564984857940654969280316736074602359874077066205183651176674196597476294546187480247199094814526916754167424329447094312956472178987814046662687379733692693472248996175032812437762859024628624304475151502547328844850748809918020047894045852508287323757506831582486367917411493225289256791647857931672764002940289231643006536525169988479350585442944253048959664382904273917572656784126553613480740505181516041407890869164484687755806288768278866265464101035915795913318943157500761264500887538877944685647084280819765848852381557938704528584916051627245582812554013556267072190268505544634593001187361230761301930880899144698066409292725906491445984042227639109096884037467086905481055817335239416803063084503012062615448405294781244405086562683041070104236268980412187558996445152763037826052694013158854520896350981749303160757292681009957827085165254557115997511419260961265805765445450126824075500028399175377227314419721293668660582629326493352540284452734521854309586801516434719809550210778243784507657424680308092823589400498612491934666870320632212634880959820862364781744750100427621437635505414063766245753653297307833613474395825508576774411918962459567464935916296887613134985864758455645223798436611697761865913946185553917741814886464146969963379897677489344943308623688421238424225389934479274492307844529779203177308922598244404290392391254620926295377341052638734850633865187896459502944392277282665970544772199864437790182890288478875193977442086145551221367025979815977961267271029043619506201110328247161381201591363681160453403121943987256895106564102188294225822182297025827323365814057388194188510780833352263210897020654761341428781159033690147101832480825464907540234679171576826074918363547434134958744694553946751052204894773709955348766291465546901232900594489329572727163885823520525303047002680050045374377724021445232062072004662805707719869868802017806782603241818966584476451632390876498415708244598124459025946891251641077528641671503290395651822389998026008133330899669271705175285728443052206012303900868833420762336294423167562813455404421301808684457158590395655669919019348302263022253067815366929886797210619186614432706114248463144847270586195854832148709309467929781710067811043762585852703719541795876396868636184715810041832626402214665331251223895245561834460640535911952731703043614833501725252990874270172019096788241915405801006036520971978127217569541046029502353397363380615667059210627787734364356470978089305919039141422927330829845469656907152377746728954236388008787104203807008990705877184156678898336010703899853250464995106987412710322391391426177646368292253284564438198805450130580430708021295633828765532414305976493122648423310512029371429975424074072713794063245329910395743577161756033818552553475453980780610661221286011636040048271438185248108276041140060689543339471906584260190831500541967848220019667128835096537802361369896003091439953534868584062183722873442666503908411970889615718087378114507807185890467007169233320275792337602677272286913654849258588270458963850392118836973652775235839786187712283705059276566214573315969935087048714683956711420354268880751705743704510263054560440423514894703150985038221777904882024200947638406839029752423563751758179258125481768970375615753270124864381255340103921694982238644057134443781491743270334700356477497960369701123602719864900372973844778933590043976395270356348061054532517594378432885234868533497341175967532534155407484793717430675335445507257080504457068866293306890896095872965360979382331088992486136004620593822022641980193740873094140471981413127123284268836232376299080252287317670233333985158092754542896094295148413001061091939515745363375347982749001832305757451372376339746695694880418098168406489653237863174896627544306032084267380781612335654092178595346593473650081716348390703703519530981881899073596363385874539159320207091405991707428807616595052014184818445662822572359051280901791360536267644952586608832214572099381833452757427733507976336986180904851572310143067009248183116858649635911159911384810809481806614367300055746059928488867463714051695450508979157551323512770225102429309987063105079865179756430204261461048936273597484800490908224912991289334360409790926865364482403157750741108798901314256529271444405177941108710355921086382513257476653143029961888593991540045875466154886130470277416886948526891931813483374851224286653173766223659702334126375574060633693469086728186006265233244636349574313099076718688557133204781039135841268292956226468698210463278532767312932098290259661535361750819381068362053652356234898956162211271406356840093000123614241208320982590897368313315405463665046598761821222012124817558880741959221568060585411729119311878681283355706496038186404459846935392454808132809292207925988341084448279481060775054411289094898535152554016627150825203942810888893291496302548208450468004410804584906773722423623861798247696256130192708066523573445246764182669699933681522187582315601596892884523102903176424395364772734505110199512926939284168340202903635457426443400742683644112714586237955273086653670524711189403537725895321048465985003206813743547002843706624225778117159316484854976489607783938175549986989599358369697987925762859023014072380673880813536451330914531361060976879917230343501746361046604815272611869418961775693896103841618157729222780003941979226671564904921549206657292167182864305087106793590353090486226650385689555237568808378380583495201729261353019774418005281655402042631674263927114795993639356462177653902217468839805209427875000215213524030608806579943815897000929205447163474491359107301894207824359865899655964780484787609554018904330820356746437008512246281723923513474220684159649318376986442419686893491207364471301223390173451745685816950564995559943046362725962192927829178007960863997455828590280258499058976873615841243338715059101614937370750241434733021717428963670824522657593002158337344585209386906510226262375737548961172106599957848876162984088200410064280209275806923006574774346362272915519445808665835924494991895806212916210182273234884428964844486873057560927823904183184131489707766643289407513236584448395577843937828744105771285311982293226722931417381229715553809795661848675182201123787305052767928139063652090954599229073661780281832636611249918154294829670051153474907689747679373898370391597031201501759198873943762119345595369502051360079420276944600619138651464902691421063388457641024082861438688415075301496046775845355864644959763726747924249916581072085787620925933123240076643703399867261517515912858160407599177000385525827399288686467556505085731613044437340357561822996742972330843087799641183499434261542544681440094678484407523043766411460447216430485458630792222292931425119697347459542295978128859259851189698293435852721922608378626653444592306875670357749196102901749308954266255613981477060918875194537937562407230432545695608656786771790449506186311718534262792510962081735650547715733012019144642859043871004728162202982791639095279038405354313610469984613019284540323175898085414903376311274759867393980208589605018021942070022206347322627275104640061522130679128923433744631182095953640672078624174699048719877062785290678561759840689651425470841791649412898963948946623382513533997415949637291020284151937808206307961572352419433179217043499296261980210151140021434825338255355124741333614672512144023489657082418965979100865990210763075559766186028030144365839907095021937673462709835470500252261447263672862004597862799324820421338393621121590405320439198511677708373143121668356825703378283956725453962961528044538453712916516934265719094464208722051043821685574718767341419467803043900041932427737805361927497506974349501195795204141274076401719765764118546804237662505394198630193611602603435122604519115958181379155461135615238360527337243080783169726316842281783184593129559930406216156156632959740183518824745943415511142361638129968492214323339173924286051662867597827369559446040552359794162697984128099683525975730262032620379250888410204448828749452948805363607296468819572931317606868757051414080952714006896504660810153080176744558563518715117256508955376867973155251839054165061313905665899902451530920112425384278068690513427023744297622152605657457040584395026166919007450248009179957366081358596220600634996491054374973297679819431051911608349892898840632704960765949677379522648896256607741143334473014431228550468290089207304719371354762884602472409738242089984323057751272288046776390480574506053665461207605449846811407601564526084156678461503600149676914798533500728857176169555161676428019711461891007663248868693013191012257235154020214819081340093550657822342363589487622846328964612568023431428814078905781510864817201821222510606520003197451491300738486471463746971570762640234632402646516009246110186386717259976215697106303603922902375897382772150440145085311990930083554553620703839317040890929474094862370211125631039110590567759650759270402753017064210271016554607335511112886715942840144786362400413654310112291015444885669387445917182569553574049563819243743278315326551755511455604610339439373525935289891595505847261341265882483926041338318673907126952940807063979173266974046096961075515958119762847377731070215796741581393647722466176688140064841168255366070983727363089070901124090944304418797373502644310510539620481437574657937285682623071303591961672654930307679640515661888714512337614825902825695842547177416018272646814901992442642159449017779490618506199500063702317563209978956754326519231980792961276877075849316215908001463407005100319924931364069785970931874608095195206179153786763310159494589471156868294529338233740033449706048602704997249965648351248769826618330791284203737456644723538059019296011949114948477299508380553354893567323986990882584737678435228401821105358311545453692173256037002140121396415561588283115671652239861758992010416557311950417836046859151314134017189048546108809053988441617192067153276196360558713117597008826457794488328217270375757877208261371992367307073225007232409261997331373484912410027486151890994347619524685247349264473189150423656658802445703588420860842253342678886000171635996486446670713022203160103327369039740533543908705282130443141352732995081055797261848339158199280342962012097614638425365322903016291772250037859202601943768881565912112361471771056319808755272980839144935509794459751805303362600352799043838715622153126714601475338803436617224927085211606015437464332449306891489471063319159508024272242102206861032988036954573796597288640790479711706003493563585291832879315967726587920894986960464738016297173986553143754763604856701206311467129661695234107289933035567570021181306472564584825826000871765034845210660947118926799137437181068929599099045723384770984592919548450239739069987932310657424970421624759488119656179613063926881035494046854413712472530352262661309348990316520540612760503025141618223770331210863124177217769280578186325982391981610899809504819698348898709264829721915217448432533206098076407953173520078810841390261025143961151487814554416905527464046928090369465760084144214694304146991423957263401686753279575302292368842294247591130177736870736488545829368281442744541396100578721302333098495909965058601032688911218052407714769908794130976513023325271980836451676460494944328159233871845936399693587433960976618196139222158478739360837745855975466946866019536473397127350643184100541257770594273488819937734527883930461043092597571353259191776491417229252460980483868495504038942485783469001598637924785646734362875849035251556840539240151922018394981513907658977443170010219037886804324029598213649153384507460811659846918047612330307217483119303894806005102407308876266850588878877381327362070823819362803325914092231671880868472318648142295563071516092924070151108159185452835986500535521692708622166228725756495156390561257701303077670669653036118393339963754318048058848228181989174789411773599590896088654216075308107410259527293579803541934581816066695940926738027444990840338331693108744430462108380755038822206007502097858385337511732975849251365938939092549540978917172112744072983440991523392413445256094455287888024250642936713968815244004759762534303581042623458516853136905545089729381140382786517443601974727582146821800181916227494630466004243787310661358125644489808357222055734189944466476336843031899513064343885911517299505034251484748515795732385481289098304543838894332373093485541885797641788086517539969375977418217593585864050213594973609750843963657651675090724609457086873760226509424231451860376371248411588596845669151017182801498569047723218933737999212687666432273635661046742594624872804769339226717991279516335161180099119621988475161195783544917241526519038816346223201880978607172557565719479395021615333431932810765819548867646920760246975737567719725585750579188607371675467881101179243197699103579291032086640125805806668629066527940505813415767177596544334280845191233534816022098208326386057386543878856735875756676527043456196345066557017050659643480745690675250613374958514019991225897400574424945557282282274992555493114430125605957590011709938041456146661331042691626618040001689841864621250365942357341786446842260449811046025811329807583972304690887517215167105905465728199922711641833593602049872675074386785971030400237625489581460695572959071223819493285048576650757355491973287977554357239293143618666122124447932476321898201067722936847935655978684126362780111278159524010535368522029009947545697914140068496804963002028139246066560951252079868974406337505018249998386169977471064775769174156488911737966422830782905162537309790931561743890149500736283890421547228972304234579542887051359772664163659546786889527771900924312272535473462133200380783476602209683656863416065694867768594195528710101085667135353058406661962594348987783114216494729977302068165946126626438982484225856635195689634952263536741196287762370038535433400924314173226148170822123784003596757005840197338220646179189038330001729287510383845658532606280954336848210403483586764566960752470496796928799038050068964792300848221984819775339935689602925133021920005736263700334346143390522630733380035554370879928633034509599451790582069593087568020611446893489387063500919982597491562845624330743156122197650865132491967610445556429586650614041547412271342737088483533555696790089994331776119026992533845705195860692855010343226954736354620373035614953274411899572454571635900847836466896910907343989254236103752825341313631807542910261218027878454220044275117382806776449039426184061881676626237179916060677037630621547201912075015457010115210366416482043498392622538485566272670824857429266948537704434332222913894449705021580596491973303866840999688806299350135912567431979772835552191588709995306466319217255255858899523510347758483723657112605397046817890090580106826621924607062858374717306753298134861514354920213250870120132154768403050716172750361418748413439125557785941417003090186676919371226078589610245384913696273205591187319604242089328484412840598520725676330086076897454361928197310531358074565977190341975374172994776329065615738511413922400933542608284515127270752377338465732006816981258609458405153732306413694075192605138420963959882793418915994836523852466031842052935228307698384054598589999495304959705292974510256776180578700696856083949422000331099222787907535983523515497816619546389189161567392095763243640606946694235173557040528064644346920194820987093347978523264631904968299774870387737579100553768605739036122417910564679328330764792689025371862404503061372717444741546482158213660640293574929052647955362225405454082982401968208359502499118477442139980148870568936054724259373892119057016907986997083449845305471414501355220783283288054311511661253925065738728255994129890067267728219457242846618134170028471065417421468408147877372724461339116789506624391950129253427261548180530754814661185328520592713587240726022937264338664667271907580535966689317401772773915503244255875963666964997908317912701725964811498789077773066901504136731572994618478788942532564891716901489769013955532442806046410804711304198451581525186759337911923133879141697411042792537694660004610078692165007391869453116796290610983390294971067100226714251643424027088184796618088951789865924608267556071305134196074950424645748723240525837599202050655316887725632367624658279364346337881189398648639660131013599571883922361264612077692061030226362794958062126791981722052713707295886895229282728377000448662194831946097119439708753876855583907819386019918267943080379044760330977186896108055475941419847801579870605674485937241365640344144757559662625861057957208680227636782638809825817854647820812869847752886637832011653487928966006785178505178863363967069266699729120392062230088757028417246317275451612594339347383721811632678704422995229574161461229605356324724060742089971690039720981368951777612056967137608460624003204647004539903186773145523111537808127782468991795632807653025730746431530716939641582729876755825678608353698868880919499335466758673702741726452521301017021470778944346487895155666025431915315775198701156179706154261962380083710141932071243085500279786790203007031133615471059513136542510946989191528353538727749960752205643957991674198338575528443976536160422435900127602040429930857514177619765466480156609578805765350729221110157675643712258750322419183366363696423712707708163333602003440179838272274207639499373425672605796806660246587261257059636140290635513305289513461849975879892211246263710051683448792274103430335847565189980884850445667266109762379257873352353727452296321084977368356090938891787857758849706164161191945913199037677571022234749053086393418823572029581198471468662911166825711419234751316930713319031544106376024207324597593798507362234000590972246754110284133723000841029459275127173273180410603308929283854261578468037438755355074870537393682937170170158089014673148668419897967667837015898748664429824666780087493026340636970887507165380202784189014839995186245204477758347153995609379300438096388918157672730498959398947723630135253675756320532234202970338957605141467474603869125276962299678238325900988942781192044105889146171438773034729414385382430466640132798569769659425376923430858113300121796908432762460573693647333275841340121629889911466942956074783059921338153038374304118445089386301606217363767564015535215528246523492782723412419138451157534455217904982228084092558812120364711151965590877047173035576049963519624733187282174940196974937390486189508335760313670097361091303124680080430217186720303375667380282694847569251777848924308923325315500905481375662331354146076583353724608597315452149042106340289099760221943581264369646756564967710683624411602519747044365095688842677288253884706416780658929735099122102517102880014995490708248663314484512334939455911773030995636824976824851568387147868741089576710742345536005188830569023912724904657640263961055114587203018112602093180362212398462035249084222540225050066931593634739340715219749340609773704119411068046825507517583307635062837232746681148702368137798940912404974363438029689158439156720427628954800274687928888106617702657647774288091893380592308224569784361015920695293704129955523953727286596218581797348914661200017379423705291706584508438023685878848378404171824397330721270032961332990532165875275376850509788928625444432023427789704678395580140137287778665631213438454303983659333367725811396623507474379919308202269636506415625818162981766832003073271889807793641304251034491187566032175018320649278142819360019802475890229177671281131042856694339863914675719969683991792968647951612073576096634079190935579781796350787982166579110948094741917914597687851197487293507086640162583770767671608988687048118615188902010228157914691887778970064358206806864180092776591912233150056604739910508066206434559797593642686985045835452650271534128299697998072736025361738430871848883311519854149775074423699980871780336281000288090441530287245192504914552249095907485894848161264931512220228769028815625894220341347543640584036200500427306820402605808358418489480707057509905054719260378419512493033263667425700558340300630671602977343349485877535450056675780935580500631905255716197849460380170126624206170657123096164080630016093903940159458682457951545873707026771562003224427192980757748191182732540444469665093142156298047222319927762593696176563301343291923417823205148374812962705269659467640921483695488292077840604222397030774614241801967032573714880052268661186577291484064263294599950990413136661710173049054791665930992226615485549121011289915118756174546307911057126494848373741201801086989120218988349238760506854025777790780849827523900487353922896494830829377549586786380352372234841256981550071504479939431412424588777790784217835169807846918492514336090155753843027231169025335390483526836738760918487686592240788186318352723703121349119607705033336827754463774794951136079934358224311714128341840290813320529510779053537221822415674628441972005388557389110318978704012162881325004287753726210462394263860142576517407566901132079022505555895417899118435396261292891438818806240576702302377398303299843728427314354493154789738847287769432674273976958410956992969785811115619151123680302285601662388064065375627630626818088715593398985879863892691476181744364378156893813539911569320955480707994192316245850269068008589956993759098665158470261984740770983161283215226557865841689169399511038259452732410892568697404162460410631666122563367886654932661320810405937677466845001078865036654018330165650889378216179985682629114224756139698612422248517554982885301333877228096744340586522085647143286217755813399859398070761774425782302028779486956698511907472889948983735300308876686785443064766928802914034452982585136782814360832954606501562035629057907415101369693960917122002641923327683352608519656182352172174491642174570444663301873534185740437242172005006810797921229461084068005008741014988455652621475267484669096097622854308692724043318598278229865178818351634325437976840258818463540792759730946938860779509445550746453639165378043236256469661151793468724011536863662195470141828435469478245055114105238117360850451645920255831202749678708744851802463145095878488405523365130270216709773546164346664347233032864291600434699403701214357192864076216831804948636315117081348687277350829046660054505927806736613902084902349038597130904928140155578005256726371923149531862421912105653913131886338586277313376361766457945984684075953270445553242286402931902860204914745226164134432306934842807631265220823247693137508536764001889994980670101354447261109439938621595736912065643644332696000503384142790286998282621703947918842103269907739533442771365753073199563430622622649982634077700562609790496348799726025818778922002984988612171424922848846592392118010242580114212286794898371707405531020311960320934909172638459806746450527674187737412511923433405599451028470736919855515162195730475345318504998988674967494935487445177463769730594290949841439028305147321930853693119737914528640232532173019542007558462407073305329956320342660525541033354609799035350426230844590846490390876967502581361325891209980992958025794513515329985135050846071414076088945712078294336775772471895471221691777200666806074866063862887871061941635602573254260684551743945990991037025415149308109186139504523303175120461550835194348566046372553960654226712156909954926512384083105227739303200414442554425960904343881249401222438297525391971150046932708874613495090713787911898698898100283261818281982738099948254333072215725585300678643720443905647401134890443362875264862217499982901453621823965046349781601068825273570400010890880633570089255938615006130253801571868130161627572306514348832540920158764653434803466212874167822651688552151728150006347947246131862348358504907173261875150698353105344064416734211359156531212447149595620327318493975567915550677831264713310866381232908557678146039908501296148776634342623081867073518625681914190470160592753820863188081850965779295184587222228520616704378981463887404935984974688110395230499379871044539203916309937066484487518755422578062505196979786953586362184668870337494263138265536202664530979115719356871967918962504231245643614550579560568175588607547447796509589331336382689193762045095994653668606007338671961682175799696891552566390801126790754419523736766411844929263483301552815755251961041883237174066087666057351546398737481811687464021254436420868487839672164373759343037246933337885615441787322706673068563475339845084352922308742643620887089121965310055618258967825294284936171098660217163875386459580722497352140141584298878935030403975885034724417986236137530759995436385465832623402470226202125645081788737538194158809450091465706252721199956883482017364464079732966162594068747105789654873491619086047898152876995097274283132388749391895039203016505997357217920309046465958833453329244751338199944594748983317733957806546444230728062339469751620205039472152214352439112962144769627394704596815358947846390025982695361479728770046356146951522233133965215007500896416947335963225711545128783864420510855414436550339316597311094229173295842710414696089159317153880830323524684911288092490006340219704821229905855094804089094725497118509798115572125329534929740045075066099191397441514441880691642650549959485233754142430714749833529772387491104217417734629393196644025356843976787737503626486581571079033088018630118468793623448076805846004260686459484425019638742297424972543736343970127310091594459868748168248744916537921845261093633971238249599189799193208016729071578580059370577764175178875576486579233618433117322217391264785910208234614904384127042533358192627688256237593176497392113817651914657477733345278510918937000301284825083068802248050757207574238851655770278773199115148434245328230879483677213367206523991348118006112618559322765610594615694898791149466212837803354249651574857272452308464908998313347512996505310421344817906945400754500456329052219264646993064657337386884284553574315910255983796254339192423800967006400170591476727476798942464622521352941125917492143848713635998442954047833662148077970614556719937448707055971407363616740884315561857101889920844305300542549470275705958198336588019457615387695472495432065937413195032759111866531835151699406304617182725178386685292035746355029088480407241782683306602752963653719584508391948355847733340068322893083160618786567699546586224127649857734004031436795048878389847238359571083014313649105936142854030157702209821898236004976802130399377193516000792273438361546835246686842808761146150481218184014337914559411510757030928771129640397908457036546322996472143171437796657204432060613592071217201385434213968698612445076827055760820398074610806703622500768692672189491265689053804070498389035755641039974178766191211597194703632184455625959650025154384607419767218881748676237839946534310073696018572029209676507355473608431089152322208835978560658463196273056119997455134512048437421813507800809133499537000477993933129784391098041369104080806983400084143434663747221679611918069633881627531192160132296078260207141409318613375206435848306846177958278762058376665431549233360910360190640779204148428774773412302499036894673080286223735607288683609067361319403858705180403583538721948966233500405068487023304024803350038528542713307504912662515202136683999193196647702034704774219651417405857478880298676764243621832940696844459152573021558059357325336062075898083375564061731253273949301186341496179946247823713724259449160141592461618308021366970279093529989602334159460283565221476799597600443658286043555086723622435909749974628480574460997548017503811224199901077736863926794927178747203036202338586619119324906427663578769163577397840974360422665403848315574869270470149687575592792280519919888492369100582416996720300437789067509924443761281444560624240500129155637103636489157259710952189666778067879239082050873443627030849777688671286895157204267258265000245784492043029413207588231044828845510485874559581585188178046719849093557440338497810616755873931785327276756992841187927451991289529833699503131422440987655889815914124970459329762374452689857847821646083011945396044697591564377745140640625563774416778541093445026591274553691801949787068159831225616064120195991911292561065636114648257485436502754592376090720952586355539888267809895763100884293735995640508544097479833504990888258545062794999897461549997413885661339918891810109002357804202426738814089714278438014443537437908667114525551453745224929837050358357438227562484617291513574491357668208712950149938086514398348652703298477691213636404737380399296201867356115021530014635265226621106696803286973148538240209254633251014230481660628015517743950279476034455961606797945320560890116610132389494285689646881423900399384390082127145282678393783295247291465155005825468158809449106517965539831657294414888911368891430578945024485070536487805341555946780318889434520859424017379963187034100162625972060121282268042593110793104646162167133684085580611068640336876844666655590762875744103470340024621809157035673078909358688148958974208688847029017723960490017790190922493469632605272071550362628917862835384211883955959591994758075664094719152967448757994505812434219095739516622867217140812303544997324460894670392913594224898129728500762208616079667774934414813067973268438954062214305702481309391171591962223004072627312047596902080178161251598486813126704231887194957682866347728304383555394949373204286487202792670265944356679079393444346032821109450583353725265224549788382144275609820929744302954142815652071886360539500289956358530902126458642664059220889205297390084325748700943925602284995357779124176521041160472101630123273713305985129617508807766530129638537588599077567515060617460891438896623006569760571102136556150472822082084081828880245563047169535862558259708923999230932602441296682799192167173529771151335674211157135124058948966204982596867686236977450609033389310409382899419559512448817999978529188022388549330615319621192108673756417328027268333864504896170058642770443264121919674701412543894723309330745953308909331914352026772472742167288346147288331292166549449061726411101953397040394554388723137014610506327864096003164405252212353850387096213995740373029906351402611718126359639789772360498321604463743225245275073771619483947905501002194622979526514725908702371192516546022625081758656575106287872216828557209597255049528310048885151476643125166485503537878858884190389091038554713938347905340582035040066828351695194400116627579848935940326121940000931521452507723027153209936587701071602439076540498604727342070962383570341976070401754837112355259294962838036395167735216492427081569363824330107343617213717153741696903657978392073459944758647179289984308623284472687790617042434124314040811194405648510564873419281442218053745154699154716868494127702272720254207064501863317092129116802546602821982426696496601771912609853891982205955487047324670615716290929167127018431695780055904428935731560118060330092321961991906413579131750396177959949476555474534169893901757464753593938275959201193360389278937865419619402216012752418864694948156608971525609600802696624310800082950559187512286744051236752281127588494412856040904783248112857505066208182387335375615382983310293693616699828897042688373526691138201786418861604402606464560232033674407892735965515944365055426586269901651689636529658791064562114868854831704185650058203304246016556803370334102284088831016909678415949032709793508622307588182233202610100340294438634200554496806474777877778265596826453194620085468921196142303990798761272653838673735469946894873695013447423257088498273470851689425203455432677081137422363795530704015709846147097628506382354123513291291312673657704881460733883702321836646026371864494831606083938477778234719242676412859136039916172114139392997898772048859331579831322598699654246489066189812267399778862167828626305994790871440938090461665680131314066101480204607030969647595245912762360757832940662073017054703840143140567877179529308842865485596361586542719397387220436816019070962371143304125525324768527072113037862203287707313218058892062289524585050235104881075583220870922322014975805669109752887946721070516027146152892537525673211948065157133431530472959902780744018850256137444326188863043055091037936895244354091860907881647098665477886601547319733141766974111495675533756829018335210883843810251482587167597647140004040512778613686424353827406403611741222390683384176318352410318886593242807503992915510517127182756780455865300626534920967003049640733883102455160933280359649787709836650442474245625627023169771887250350211339013121490694682518674153346644253864138433554020384509715421855420163133405265717337906967099320534433422421843351569668381573055259791646190448437713142774032869520797769544478797621735574751825781325221023518564332512846607749498729001631809007542393284853210811565689635865796189680791566688397823819954514639377974399300810816671351560530958760989755468911806843112962126980882366620471183141855157009126065583423526775896209574040614436633260010834417269883598538495079043128903991669013754836066825597899886374903256419667327921914224959257541996323066345691166764222435808932953804629273108073166516849543553874244003562483164884909656630829921106473469164303527423693455328187854804305831171710286578209558884597202261245777529679522042530763515384349929359456039163528665890318349301979903998667945264981744324880305343140101227931722168831697053852500112622956117480191783352033054602308138789565770522615269201192431026709140289701234576146617801813245279712768164275107056396262766526787692934982634999854135235831835067328039361941534018719512238600497939160616291889885811522949214952057540157653201255718026004003962987038918882585068029732631337538282882720674207184967388617468215636907840305150048287850713429530220597301100800191621584686683000948870274890644918847503984453348067834111072605027021888286275466932033269085019099177941962373516514586763766787913388975890270590757705452731839656877146564735174128217896601929144494936475519489295747329995837215742722530435603809405923149022136007265798945210851839919424771767682231179479856312375528992379904591967201456532699929556936094659962561850335504019820285859481704241098586755722322555238600950566233015938317334319174637056168017866559551803614626923141828028931753467468112189341232336173545908962539095132437108014687562331482442872517007142141939166881888254560279856502301707528860243860496648441321273437370995807061359990001075025913378152652406631652145471702788012168289866512479075022990724209827049845437875136492517001887406810044525720256351143044449857358586407282665520563552872190396120218828039607307583251635762991322322835690727719367616188063311666831479330360243907236754238768895294477693417651768612933340022245870326604846298086807246310443267714913616757822397867796749212581799834322380975945253782342417069311354828985447942197732997038719195518653439399032456753041790809735632629949882747707377158334553422447686719931501571828308946016255896883039334748729361877880035865388800373347900442526337907717823884393168169378197296036330279091006695334359587497346203868391223498153126674369968266135720168609023148346915641961017480604609725852874941473486945147064598686822439017067436433336553021914236979474669109432997786307410191801675959417287965857340902899536727116300757874815530047766014311474974166840344665859167273003842224994443612555549169086432179579302003145619470547225168681252832598206037531974363306756802945872271984790219929078670237911334407343179605089547612908938793727248799157979378419895442539937553215670231004577529168629395145738973091727415747369654178074086489386115436508239793885707001569563428343649506632247709581562886685857246470098218944735252751215235088233288552658466278354227698631865850931700318358127304498640616029975516423172221408606712371383009340744606440450328520540225210149620310352905214244500016524891338989181473219585262487966958736996934979838423331678942575741494068957634587208356593115385060845071591041821999619391646910319451095240671994904898520785463881131912721834751585243886623671684728186228769155546659490034536620591343624018015850055336446585966063531730510418089022982915476541591435858808023080413014357717969371360656085117788343356679445600322166861144735120700555084618072687907765427265002705607948328451836694943649309574831159683671857567421422196675883198331746205879186533935323066003327588482176756337869040432311914055193801855903255782639745522685542173836109094722458806342240029287150855882081805781334712652839939504650465915247335047570870145252976440924112713162380225384877961054977817046508998902684878362871776242537732294449889497086244846871928258709506021889629035369576128406396943025987323764850415863763718834805862444284154915454964044923502995064647364567049748257599591078032841198212658701501943597864089287523757503843429540067596065374449798090415690219669542890958802793867896050558653380510386658075441983895529663948047155080409555209370753755359627215591626331763116429562096019803221356691203064787628546763097379641420809690357047314978221319146281653382463483063109443671803202612202484994039027650849310105910462223763254736506574465966804594720106439583341425378715842096135417874279149057880724702027106701916105341391291029355635451865186599204072526862246051511487480381322120658908368481961417868577511613403886786063591328006292968643932024381530152949850256147198312186298969550737438068654906840764021202405725403075197363013129712230825190305449524037368070100979896480904801648620038810358762542899465417886043874781103822299007576661128632845019626994905164604863886239541290596281500005504073630091935843752099877423277398516326071885419752452033239315466003791172708184578180601974475125961900650625577946308234956535036656555684153041958827996636794180676308523720178632339434714387838568017034903350829400915128139917184292536346573461749305366245534438688079546728268883023569550898762528504311000492775368161671593971391757948344373527565256561087131051533715249506749282836115036763691477006680960778314219764013270076259595735278781090923952943418622578481250629904981591595068472576784020703811286462799295928401185334038836806484287334030866478703672972537259293175938677079865806324581599819995403401978705820391357268029279930933025247977686641684855704007705022147339460167948415465616518731406654350499281131907055444898713792436119845245536320462176343921166916660279584690677575632267705100317538676844300986515857659432164906067008968110717302471737814308159213663568319076514301715437794259719776268709510336872629051958845876479540697833844902817117469095832519460537746404149133951695455122815878108583381023943687739133909268751449340010310501800492059285041448105737894359479291703091718415206952834344699152475171871568603143661833836989079746247366308060718653851473931244747563834231185547207186366908954178586435517356510112330485578655196075880119885316179411577285353413678340806487212894900379688315283941935245289923219545436861548045133911534941124520471981886817322199541133793040874304102130836843690407981458740739569736208170829393682393380480315648662685124533401802761186982719976032086840570069955383913338966166509115130032280446331828057992471675039362825883401806189724716465817676511679139516118570830684162463778062568556583275474652936860710874438242661580141808287293018237504743744940259469389144281133126712468391485210178648557423775027387662944725573306656503844440270363430845184169996364946587023987365044834790716248807708420081261056037652994141885157459990704999021293293173443366859443692860480656846737707294124192599574706937773847795759346589892767267838547925558246216884389754244515723706341794562603683702655644553590024789865054289279849391732464311141721215313125236929746732871173911406906209926693597563608100505944973049495543654641784015201526412400963685218542494836401358438412907609485056646357765360091307735199134858372657278862718196193210479483251015641326433899507096701141150345325075370568743040028809599993071282739178469516650366592610668167694367419237271494559522088232148461068895987580157056162130768576750744026851101486586086009299021873837745038699130244113889830837081232955839679760297334856079114929330592054110469002584671501971360984387475280522883818074381581666029542339509470394304658183306793979651667402248804224065718511693920499031370696979743092949168543525913614454028331641310599855102817688742372569213413868384770245165422940186211696516435856554647928185837279293838484041549538451413969825152290894376152448711439501157411825641773874503187598376127883625734468617853015489161109849472182575953838947368685454255328563175467662856667347829050751455422506647627341077957399037382991168576160782128832072455334364021755655057985438841445166754527014645234594044056871437527487707512349370405471809990051298424725059919250207966509697816502750530687203181117103239914597942619140068453873444024234176753472329542541628817092881177187841203415549887052166878878004757971957863071627147349422194756934818072028035519301058209793154899466838216451364832171907309552870441578999141148097681544672745377296286034834963886468932608892582833937966913351092709530263408299365630405534704713856914398765219687690307376987355715354029388494250969645662037251862576287388738160629189062393109445017878734333781211120225568392585700773347970294793983057522012214683150123019237120681788892372416679493129911366356801759868129390284653860918532224459747757433596387611325734358443717806801520331278887264384110216370538256891602324345272956149791297989073431433178055521835224643267529364876814913900962137877892888542789419635408415300932379615308807856640060414518989181823926882119284142017709799863937048565470928096542490905705920146519284225220233586636026940409456972439240403620725330192995773341959844090156172827225083820389333499296411557294436798674766112009868875631793566412428458523309183796606221385979876707291027456827384742347897814661763113925669068589000237791362119000069338292120463618554999446024697722534800905647776219219658316462517195936350418467355094840382069178409425584038588431325355209052428472458167451769942141510907740606119194319457471970224535211048208483539436694972637730464802594444551591555955545807090365192278872723128307066843539045957243609579062295460842301591651707524943712339351706611973262207329028701825825628016091447784842009221804825204426802332934081931557096867575359546929091774216933785484745213107188452015920261419687044555808959085992619694699689621311759620397376136157502028745021119837372770114009822769424401082683656911569513303632457405816901924243828899109324012304376190949630011038589588302016297343250384211188889135894874981934776562186876208274979826936878739738664125894443459615728752764418962079114511723828405193023568482689863701114218871491112996902199183312966335811038846678538330688089945951365910464961860177843950500746750905171322457512880762217204782551933916854432845719336345809625896306445118585334448342192781321029060516486641438898027378388208204684242187921583099828066944195712519391449141524261622324099205285408172007558059942795186148873563076871631540066234211060548432448021147941802868712840023151796891028229584057927449533207379155881438092497729950016182393798229773495880135225167065821347466399173878476259078852570891811553591932070141650417857950019683813159704211152752792293776793537436477367449003805015417517179858297517843704942460871356467407948172920866773674249024996867063353957072120566237261776553151871324921999752015799048855208076695175442123847324019360883916328934990460340244533509885686995328270121958619285025330312677910200414224863250145960429061317427151032684899302921204179443513501020157183646935186431586243946133403084321538462720682116971017007271367175967693719691458321113543100911565517928741264867982749578296109390076116194620716428325211323966042582675667566472017336828854699587721799347389595625686777849130535032239321696431748633250505314534694652521648581904758136296207546855962694195248963156249279130047463840997602752202491968148307287786934871845948928156603819188376067582874442969663472356817680830596047554386337975783157205145752182245462695263453742868168642585988208747418808063840222283971953281282756476120529457136304354311844601865086572589376821094337164775335558036354766623152564049943232895997132030745037281920056540314487874929087676290424760217626596782853601565528026518617627403750068893186876636681425321856532731376092435876046597620436081422082689469398947362521904828803340171858775471522513240951484063679873717739983731637288728433383468678710997664038396546101113786421388209754707347962709588563165107158129429504351690884263154365452163530613585221152357725460221346242150820965780987254683256772510640581685137407764566720293075803592250087370387441754373663126694739917473102529565893555450261167498980302354614928052990259356084152453033645885162047603156527099241492829955201442297836837704210467558506973122791404659916380143045128226990804626605368338676362963731332495700796906990395953023317554424986582731522402056882598705782419262886344157248592617304854790333194505554996103428546339424173430586577688261420802815590908687406302391785860900345605652151263117462547610274958708880006546314870749831781224023209122142605251166596001861870734134628210195648156435370112942561161988921153029775225437457044127448211970677514988378934519152154964724925485576049977439575510525835343796394182617700971835432082386596334702458665928139504434790567179851609080218918343644193559527651087434076216819044298968867989762684233397586675552200967955632790249708052543584466517098034241256173563409171577100602991448484137501478721492540457114301177739795032887018755246488118174085424692988987170702597352953319712370386533394081667370751224324420585398768915473232617982793726451369264127365303899013261109149057580946925362920702853853525011693489264113786692893410117328816696572655059275709179905573482266999984834307756116472424307003145825023888806426577290126778655848327666789629924676713684742926763298196833433230156352784111850697389688482772834512626940987262619276965140816061006601577862443530375467168130152879737496875690073725056789053314826319306650880534660291983878883942432149280747442053617755178624539352092787715027654983593134313100646462070217390192681158819015412205606407061425983377383273217299784326657042526730917225025786870988034807364776321489017610206885242615546529487537207429008723799863023210229996371384032943279959531315472453792068821657006289746571208075792983178643030480606014256220621173600055083761436305704343274512296226568437432089574660512050975064119539901644715819195753235688171310903816366635111712493169334317999366513035944611068404683558037093848647703790182013379657873618724125919397879349483506550011831171531515832248930907349359482063304954896156820884712823098365150920541092867697066177207223764528244088785806116330348147969401798067094725822570390967823632800266055579880732140156345394778574504060995937912081080972398800726499199541037120183788533481297096563619366015043770642139069494315983574944100463974579276035642392068981351306612504979123891151472833181826918159132953209574773670617058805518399533127838726423053517688783266395581007578481763862019666790528949397497454393235153191588408711039713656831867958938179425442948977459605452272730742467071278731205493875334712216132804494578881390728134580644553648529585076336504723582225883024072430674263623084750470619500359290485335102727615594397220392965161016028931576455560572839103002311671363207389431576347436873747207177964350194098094463781282711634452001891352322956070852193694818414137225893828554907475461132788366852165442315882571250673512146181312599782821191170150843950313164070542970407614271898684567548077279882581995806100433853383616862621396162091896990679484728663821588487080701338618425297750707859329807567391757625421382966160755766821514704540031622729170594941324985956178521545492369548226561222080860460175394052805917741150585119238750270698678770936271295027554626555738615887959476632780030094462088355558276041803152005890049991776210157959763933014514346774805697731227001865891460021328632952676159827186150834344461980133006619544997898921745042248951807271633946371668491312694071896800210462616900743710649018599604075708541190802496734238624381595873060316073768125344011755470791337370556052612608677280765819286808930807053014222733698791636763921591961620771483644101378022688804920195171812876798971355316182648783090359750250800484373998462771390350315168373941921169094599395198825497847036354783550559353238700501307739292481597067344281100613348984586598432949705313408117499333314165070152305647650212625926452511516087388714321825682084523304051625769641362825609750272047671054615053137364323313597419828593314138108125757455429285180781329505433824262139208963844110165052575647909266366302545122215300456130991728265283890648104869648975084629729763996857550300914472592789480974702743201228021489548279319979636275605014167251859524696064301002501381582419757838117765321824858821490905138517037835461844948411986956878820922537349968801843162632057808760006298755221712136562467092752329550177622197408106388895826632115670754817418598596037081295100531853295356591970249075586499529711818176502178659005064841325174125438393145838178120951626570871074432928558413388135610010403952992035877269893398965362950810875640428245942978307236089773850721977595063649630749119386073465130552033983135778072434731213335622907560893682522453927744642074791043545695492206335954651929895385479882462574000381377333846093104183865485693371488510203289769229349955049374378265943811516682286220600566973768685540119532765967236179262461724693398877112290648061032182752369021340825435215810434853466036977311672647626324011315728507083490591552533080364367982726299100053870748943649564600565202173201516423452006400212131571589657067814742023720994524177823702423949676559508029290931697351113172525471104834062466915562928175793904862342089951058062194793876218785925983829411016407203398946519646964903418670555194835499199284269808710953049594200125528591277620278489764054041290554225855911434406469808239646578435479230449351096710043745566077118454946346177701276530087387579876776906181709186901811240531852310023401967494294677183523549839445565071124252993685830243965615912332636832431291412659545069942195561372420473239033268856496520897323339401158864841913774847440276927189927827486437370509527805781739250225443417980861099616903983735475213246275633374220026421911395624793203694525537314925029762473312195667817786657771482044340905494645160690975519270815419758913706865786969429992616208464716856741036311459423764192361822678680399048267688673153541437924154460246202611301365346655106037392022899550221037590574732168799231918054471188891043612204027526831226260640241372720051315928545651927480956480734298694472049336845633973279452578290209531331795145699894661900964975469131408180926228252786016725177075565213269749929353373435603289644223917713182379031010266768319696936593133076613357132654249163368478868589079526109786916605290814936374765379616178214472940837747346112202127311806244547144255236452938894777325105211690661652620582996626644659441441781649880022599067212060821228567175798230175705615713822630952558894284171890757482230167062023494949711343725276420909420284755490955879493117703612740295418103845123378501379726712658486709888072036061395044779700864692800314028433599528944934355487209359514228397808912228612489590080089165742927902196157643769384833565553635986133666146448301447096813632624550280969510272940649024537949694071676160665494795335734673513436576330969299982737990776703763432434130230292100641356237702622791840436110910046488786993390034561304195823709939705612745415623548417109881302665399047558819944633834362535234944250721545975498714786174234387360644645232682991223582594280419056769039923647373618261617954801560299202708850162881012456737605209098318071200952450989384019200972829133081613025277129725958636268033659643483063513605456255258910967017593737353461386499427705878554044929378578116924362684997252787502180305720148072435820094228816669884210342222141836907954633274674355449865467602429031456696527311014679476417833447147859179359337081548244429772675245028765308539631633689494405616771782707889469811007987129745285845062129947320296285102355593623239478875758813136767377196480164120250156650651238923288225803310530013935381178497648444025818662985888682596431765521544714769275531534438661315931415500610597819465313492820987233988044619391123560514702344295434511886325608327484976674442572444388834841384207926896819268062687178981430616171410756032450625306159726480640277626912041313779111861054960416307673197671715163263792141863821045756392645979771365038535687991876130547004864543393906296852395612197669454026132729655564382902034292831303649840302217473965117144809286697506872623510448352934573893698732302006121397995023908114547667640175840241077700918597793553830419493505298485197105828192374376200424250966094125209302264636193172633289764184650777507869786941362560634454829668053691730869832400160217443810876065321815886666053775868487040911321577881711905144263364012192718749964501691420616224179872434744480824850379807435258380669592064306312479748821978388409863221116681795010522552331716909532905661046554301028162438037584781480696626016294869602393287100532380461689996224943339163584310511319048507950527164567769800155632352160165605811241932263054323568295571831964663864698373722470275844581289793412370614458360239745007410323903050421159824190144820007624475036064188234115808329297924943306698850595770380332563921243327740004490198564359248506099154254363080093531919033592555763194366775694216375648249631608464110952290353333143633100000722401773593285069140189341090602288748572724395889395323772649894918851573989877160838399998530220663396303907387801335984552618339313876974712896701595003034940037893296316530343228780782663912775556913190515903146269495036465531625996327895237141113537118185782181098280348247412648289201884141899990396016339028372154042664090138971743832804408163072418700741497812199805618653871207994482587964009185921440967396808482202860137932082755225611584320213644747272938266062100339777716147458894386379764292847064529503085257215786799289619659820763885130282850378131746043772909647291830176202996989057791281305937920768477501463623252834242609071319673260503759524538661252986368039833565504421431772296329038543138308521633483697107606225525202411440030916138148537095250559451561560297781103765435653692094507493090064559628629833076549605049858191426361030129392963598120987210732292730877529697666037068851771374224149690039021977387758558123953148980887739311685607834771872016199891377448171595891203521127988309109336687146738561215702130211397638759921063231240480516915809412259360463512243709121272161982784986612105624325610043212684543940108252976661568695806089846107978776311565986940033572782611774931448667718433835926111868266574935330271372880833622851560260845758819929378276980433275043050954597811391471991260159082819203376371279989393619945132962151683086312443604295978920375545825637355243562159039148390420372659667717268612875014235547243171001243259165946383919120713844080466542876345265186478500975284318043577368743242965764669790655316456544299320727760906021262453373983115957384200298894775252649982199945203326180570977312611195537074074623753219306453176845041147963661846717864066349274440942572206387700987054634250057685584354422901739745285542278613969577193037726636215590247394708475020992157902365281743823725521453061684733244853645077089021614228950225665216534343092449991616468409833256965839291468868421627565711642111367782421780639942928452200211762314620837224929879838739193101610981772762632090862276590192604569455715806841429142557739014789959484711204469134225602640381610058971046797195661406753631083317873896151763716451991914069520573233378516380199167637448766894697630970138299158933399267065333376164237473325799865703889462910054005866738458452770114135151994761274816144034121873220610248868337612730357476218749207888951093913810408085976053881823780896166538683127962627804388140709806061672886659926811050897068180762256687187169896521899015323416899092551122516253099058822654900143341660212818405864686353452529545327866153963271370501414631556788655779252192510861326549450577079713894703643583612825432350885189700931035559581730744294786050831529606441498443821641995299349226627567719887875308426422130100708541560755982465856357091455624394976839618095296093297117856832258552945245872385441775613392862257233482285737053855841562989122775830608668795047497812449546129009652674815053820437590185827657170337007304560322787791023902174599737983931363044684990769100240227931067000133692265215117068822258458044157876295994175040453142758219728665781423252738777050733943339590861245045275839087443593311527947995629108196554956461685286246027501041878186120827420404366963579066083939929944080249364477960288291624611425025547769210515689507757601157668602296253800156272659928535177462329678736786716679512345408514741748799783591588041706256764231061954985074413771207212850756205677527499497348159835018242745985940405700347032141970612915773146003308632835771596394626177835279927282372007718151797181163744436267769998203425559792535151972937260193950931699809595383233081689403830875935155890610791659609027433098915518704748181590883958598027353875353114205453784330661895293405229299383226009134455947973008151236693676254227841112386335921402178208551975191465715485698820985993699196223745772293800823806686741359760751587950699084343700636251093600493932490478420395714572956500124648261085103362912181655553742126945793834002210303745733020496409743495202035065930813219980442021775281486460363790628020081996646384501673006671015691724380439783701663073946236251974305317850728281803862599008705578546196728804052999679536885048381260321808545592847519752914601744130289633991973179575170104186791769515451936999035243080730233620534156097455641431046383145702028413282204469635641696030575819207816946664126107199850111274650483318116771883050794068066597612310672308298068685332928974499765886866218731487342505669575600397243926940930130395079022538553093231860385864601207615519426598477294367128592022696975712408827277892504850947882135802300165402369190344348304297444045271368640463760853504891350316891351199527519830005372978358423693424760827015573835633915510993718045395804301210931598815059811368853006287078438079334457178709940723461738382872899299398643280014558035406569963441866492311347057616142993907071373490681395758666601278710644739121855108010140309841283690281120577330097601675791261802314948656633164209409095205954572546725230425232876834985628567166908558799212613430181491851067920937238984644336987491456610158070909519462707906261369869130409590814124258505287499900967071470980607816610919593710970061222145498080737956712049554665835976988536214812400495877406370827468338444219284312685068961870593953900400456759656691062247314096373310723298431367269420754658093426517361290434125049187898020635809632565428379951835725653038589894517556163454244616349848798904832031375584191581003794275814639547170357232757197062481681307153101116939103735442824631076285051299388104423092847679446450691929200578852874203663134040208539803319534878656931864201498848183167214417285219487950275258391353674522274271422643844459955384697101872434344612105249449681523527263714198930544559637916577871932888043377403596095883059129364734464287481325500399719587506679027454391128844467235391325066372232808719158503352404000247109250491309343491443805243524860714409155210258168142506693159264188096698874751703700785375377429273633635086953665398577595804419487448460952298854585827274494274559692180520452416822553971309954316987432844517559550872721792895707195290222449300840352261429180543289134933520802703409671999885552457959423766862861683539973893839100214599129209776767116550884246812223179725403321395825161537179676441669702899287291384753628496974750198561395608165528836753097541927831057043853884129886582026972540371662267181005664281757629166568153605279375397141970686894617386221354453333177728878486493769867112637145817817128898809287991352630503818389915800132191972246228790727807828839492916340053037236715052869479889036135158789160941891582645743806069122378220746988825875901393193772412630760732156378706216373659057763741611797579661808665783135928429196975757249375522376357762602968853331975694479294072214413039907800674548146203082421085937008717241044052905103796698963899114564447627408979331309947046246394004552001044032650909596952439702341239841024573261094383193113245027553035078806613125698641484170771873744127886448430000430750630962030129160825591169307528342766133042915317116603022586009360977123840955307674876031875891392679971314342332952529803957693872698752232317642046286201053619914240771958612519805028173222274652074376643157712924979401175110441936337229894003718598342004709806445830608339855110952569191863083918790550903989163173391628717539757226713814695189850105679829558279453757172767161791990697486090466551737173598107699686129729555606041076227150729217458665348832480057256230286976879821422400871205683871046140985980977323138927253035965034129144804226356806471393759962090430452982861937981938602570516729215760621229079841841583227595706516807151933137887442996248189197889502765474409183815069159972350981460306310112502005609441470836161635413120560844468124190201877229681716315922871446816834328018292910135644321612434828928574549180930741953664723881705397249159292277614987881134195714391189022594661681514652274016274055226876698950862326733464712397557340076382424046093308426256497743430563006589220104330220132777443050029442345373293687849272090627686500087710935793237914121663692481948343658326407698890847963322961265059773654477704147415275297359165820004905384343142932549592283420013742548308138395773714196699925402508413505700242078478229193817026652216328631075160271164103914153160729452905151559689571024359043193509632055342300064726380355395668962179990780867104648085161301824381985029828179782489245809618472975116685198109686272803526998580764825818013206236275891083102112546649571376506257082273960601420177853444123252542170500878113474457376464814407265210424596460559694246325373884816775905345926212663589463773512301333635936061491593035037127787331924112251702377414158592099511940321005806163914055821162074210500611008283552603950894874691648077374616713569426023243795542832094333555354769435748790886088338709254697624899717153913649219156800927582604734233064679712117696091525643530712776290909556215758657009124695987173461351841571733489588949155467838695714272932412268243527793461947357385894974481816516259714206161276107626750596470435470576725319775026853074250059750046270127894136439277149672940209977973298782123880294216679111471186537813421293265531286371898029287376180117897617517939218774239022087591285548914782223792447573111513086231291632678328240712266782501731006406789374514594379801169166826647875932640655020616000333091639668733231834714265084004566824261863050961955804736277284957294820149161023489153538074220886397353528083025702830137087044325900510280366189296800377737494719447760606611121912997135097320903246465118139416106109158868366040453069878497793003192877558683467521570871202886358450160195187291478350732123403170146474305061396596711124940401476387089068970902058604526631280646316797230761831775586846507680025074602204400185468803908486373239478502912364005343529621257002280634939886513565760636896529972214924024190245985916145385298400561359585799648878570038619147997125490058593149161166237067794497668177281492811622119273136417257239346335181166205928411941591271049451828800467247750176783213538832686248724946304193220392520629950056344735444266425908146826210818166890607215321247016443692030476791152592767843168813047761947150300280925693531245340082756635105367480242080135137735907178794818172528123506997439031917486703309200302875502960809702875263591879547232706529564482831298623050256189018294113200551365290536545986007386226874957732999983419432702719049687862800699754407431011739455322724039493958253429695701948178089288916162502247237161713063629375054923080463500027016344140600005365907215061816714062484028241145399243068722323367436933553647672528189762565007448076708126123039195256397926980989938639838240428216219828143945083103956796818434345473039429187817434702129860221566416126658566154485413595200886727980637727382810499196322543965114991151189790858519803625045353729100695454353536111077100215927323199558494611938147088663356912571360340180194283399005032989223279611777549715804782527542982680054919426867962142764918249306280254053001835355343602129022213243309213448811626101809485712988770376383946254555589924723380400642585719570237102957668819247313019209680558574294014633637369852107010612378938482994223959913827844075578512646586099560154424487304904285060782791644713553270137054820259999425176311411711636092941198308810488463307569167916790075150781797279797071466094160913833867570772842667129197992877665006319300650354409283888540227195718647218339707690205953383566823511789329499099291047156774599336327958047931588552583058979330224868465249440992207782320130505557921885813934716434720397119251140613270352900340734214843045243891860538162297062275205162422737174167035440955198748661615855922664732912344962328391912423896649866497175740518461898870789093455626631251413440641044098400875480235310695413519334413486929336579376673059973010923513303527189334522330011187965488438357719528564407336164742905461418863443368617376371365960815416747756872945371986850229792831886406406637485813710429234097369332388753347292364111279129874168930503947322463863621919384823527014532028160959904445884164972000239923243239154607877176059193963261604516206942969476382163244638366633379348536764797623740266431507122819583676814087572319276543081841217041915535148600745754356787395831612009145149925294734460314364200094902939295006083973194356822757989770678918196561071917131684431175636458250381359565750651493483237796246434307903177407649533774599767061344146588507996673476745210432919594688872778358326633424016809635907660181029045128012918219911871936738236792446695394085849320603032571588162239619400811734851690442712997547119173110108028242357411987690717807157755186624561749257246437271673452010307248906323217410485938678428035878442314886283874158183775528139148169384676442029546499987304192940986715744181887004076320040186787133160638096809377786395591938869059747601497534251149114980130608239756558102433814377934842826399590873033075171999805787864078343822285137632372570053376639456672111006966951587667810296297790954711911812994132988049559155184576277092148660403203588970923578697177233572082336236509646488489777132817201438886660524944553383755815506719369919096760450593239923183586465160734292499218845659751089245938016663485169747499451036159691779724412699072974481160246113309055211048926332745231126669217991300782953181507166854795453258426074715523610206776940385623669858978927593293473196039788797614907425033974777160798845423526813922311612776007361417184146023690531781343046006751091620552219225961551235710303786384606841697469082163379261723010249576122037195575153510787164599373070336839826708237510411887203703117418574525854126501759720366662832714988409164142416785174978191224200445999395769849691163326747451747281391773523416624430015051681915890602511193165401697866118563777108527961090079384847345520577386074898044153840717985720499331573119012636174124490947333585511034621961171872504738858281003827631392275114382969434422721639632296309445389198649770452819081983903858336883990197314786110171631770528226686343720252632490531635691261645870680911111871218447125073282629394286546524732705036375642704542324934950539545731072254772559131780921686782201233555454528908394383682626341556434388624384075908405094388559950915861872962288955603503611989002514321272631525657676241456539533181984499626247832820589598039454631314370815444370924337987036680415133411670889994148639146320175127459249953401512724032520366665005720212915608666555668716378230075822303984995541497914716063503233914497827458531886316365176565567297245457034406498961267358229950227464351677924530691169983782097519649798508266636697516145032009139436686252663597399605860140130946723056075272171136698797081401586157258559220104192463274730006782818232146436424787687820617365755747164780739640924928647537992190214201713588411965018560026003220898164294377136428818558199014749153708426559995897478999472340414859981658437985947997163001068082021622518064952037543023606369820189651297275269238661875145835284486458143303977232421965844807067077342070896517033463833262123115134800780300595233588357451082079774566619320826837783455349677349618540921715800597927456653572371053750676979704489890214857016811233193204244688089231943895698637084654217369935396268801958276208499033962683935004922037474059417025885172872260317939415183717104505440844095874758383651457415381221937034358456715492912771813702286716320953658370748122130835568711131203189291047983069306016105667238599013033036209588740115178484152697836210075346549603144650818542040860173875842318107735526676707016583403250108296169724152766162447132094188149872092010162489468184230782027891158812591799329567892314963172663104692123092502656345751811566653745273129084603611282319151933375730242220187741009443178876792596509444004346399524835336383209339853831599551085956713217920214698742241330516451383807878339400870459911847695865656920774800996554488288944019867356841617562728103966602718514422766201068912649266285355498875594705668442336467670830732611235201272728682471189431710299786917524459946918327176171699719862809957719348869612668113579422487526855392442586572070311811638216966535034205648447504192369759988228428590827099804823345444005049519183834632972930319062855061329409647626563656712198573008210414040663321647923942839888614158549263509879065690476861632520954747498777134330786201894327622984892106801946580850744146787698710894894380122921488115352447371423106164909087031939541395146664552220951511287628444117326847483920861851385204131716519671356046183236854090863038988348126522663952687220926569185152147830746798967543306447677092483324790235046240322374883556693899830962387108981074054358198952170486832085632096387398113530466077129498242130037885396477503735422478294378853439319794810474821411922220984742606929634872828591315139287723660918988321048520365464083434661406948436032947782957589693487505627878990129774601794558062464531624930049254881916927672856776813113665205575008312327323751149424629661141612010459410575280081604075005604016808962716453502263638523664764855069246272464584903073806874845207116758075158214276273656643386757756978793068466780000492385141011315006033060576931101255730224269855392875296768154636280120969479612436652737018789749214269550033088048816250584736348720779261409828562087915643003869385485054922201737957851002243596971001363073194470334522807365196275534943573815691417538700205186661493051229418080179805249527536616884964375950732909151859506433795517899336568058302538761446759058552567050840127385946984408794125402575913112328605410492059444772737633377611489882057557201657382958146693520137723852538037717372449997867838411622293731073387435737560913677919676570892014429442475353803583285365441868034849302056604836323475865891945342854978193803386168713114419659563412035912400820733515234634877545915897451044025723848182637409617371445992938829119914712177657578404026263979905054283794253462904852276378551042332156607344149303080459003856214121205625549478512287634611879766764792147536606956014633315759640201650234918556541300925500820626545921711897074798781902077109675370242354528635132080179695174511629886761881758927922398109186815077940150544198555704117398033847299628012076781975010460472692851184401379586299568986904455182662772850056591091930428382391727478584629976747496537354969465172086930060177274220831486474576032554736531686898488729063658250549873777721776925411447809552999824299853376649680723950944285138331588854658653495502369638037231243086817698724462425537273655688864353223763999769478118214317095165797620106968126093302689009705207456034244562487839303884408943377108919481149322744794530564708360454089867505405417866807003350794074931482246153112018748802414639651611773844114688429005584587530039974622341409246764619057936746152112371699945325393503367872767440940073329452858408959418664086120777449793381329065387002878587915512655673491133609343958727421059560147533207417590918874202306629592410581355889915210584351816466200425336648569635884583304939012308389020898315272179982579052391184917956457105235048407039604482862519198469770657255802859280559723054844056530512009347200739648628106951858519288768228642555804613086309475569149261716013906012811070070261374821721962395706020706622818767230054997529766824263868055301489755514069886122811938056583152717199269709128174399669850218535910207288792316148252076310034022739899531239762177075546756122159461638752705160173211941291624547196537911543986329148835453824655959475531542497861736092541528768802785410142475258652148643966832450377204743933604054925116012147870943071661752069273943380907044232970575274775831110223012652666261978922377262918655915819433610497529492064228043001217132401475330029221459852270392117318960934999322382287728637571934017052205205952047025410070889199454560781162245297035235848876071020403640115367144220498993307753320779108786364259449785724492399843872208204229892054387427273836946970874582908654324730181341122303069299709738074717595066464245399050235913254558437097607181431970573571349232331309205527554793619359811762485665756345453745973786543456588735152744385937760267206381656467071902779334157843190026292198735405996723159320330499040815613313257192258360086498970863597509860832007072303091518963766002384054882013931071676308832246093723534255902283114756298148235935175690811455973309222845267102048410274915447724865983178667550731364634639819791288123887686298157269909916704601117350921141661309270323886908277830418463262640127368019606932832102049090739767238688682589217671659439947897470076355472929477712066204093820196700866924184759748286540518443151192810189025808973119045678162181163764235442547008994280479697280509402907534583896442408419102711755321480494649532263100422748398743589390352322916371273260009257379777277944790321292212863301860984325134131826624932102421447015239623014664601153121773342668076491032406395932977262701466145485221756496283558532140653692445205518497765951172374385711933569615738601780575303486833282296328724082301125648383677060120058668776725330059120002322521863497582984095971701522327239058096967720002527481799534318639739906596826788072219848288811467172679729080055416910850953140506093279974589519333838257313615448026090004089596749009905558531049754042036095862725616394081693124942430461660175537487469796671565753049076771514495259267039953752830375950660780963047698572359417106597603308753161195973579773263016199092947045170385463549206212757732506230931589293050182952766385372865473846240645333893852041520803363346005366366235737245747393451642265752178672522616578548633417018132668153964006059979546990005353132539899709421898335154198030813952837309571852535139304514599396184370398782594042562243144179555559405839663944448256289336616820340538878633322426888219877552035686354119745089546837969190571560592330950399082593921141069719234603437798500511292377153466714438286070666026127599452739360171497781558635173980231983787026099054524395788170898774001012636640884727386427381225960255277709632586893288592075436294199472802361366013971957358098476822502733408439232336928318444833641126161622484707649061103412206723999853673902528582061781387217800221474799655943223594108678609204834355289995444328284984970180173893498174676195425408185748090049029676189507883240430162612326905583336692895357773066808849019907696207244529059212893319078603193962208662913664959466256348146125814872895944799108525204248877852030024152171661795882716258664370139455289440246472297669728445604449393882669112194223140672291956949591426120116135535248605726283806951034774322746438390139103820281685166291669434368811008599941621349660586624274774283324927325758131232199576612840288385781134551690151063145285449987162935541740316068114817484140808016594864352258512383308331168383295728194209848115091928803468530056751019204068765084898558346771761694677955404284065254785254353524219325706830924040394622251984351421341188118837315741035975415653522875635092328806196403847561855196833232854502073992647875438718466344199498685108534931466243125959495661947839554962562735364182589223960476710113780939446768788374644195321828769000336412205372834732942341279110769317028859830471828974714403761553197829282604726048642616663274240683885920848276063766201400245921034011040884699251559415889750933692058419847416915181669898065522525378172234673189220153705668481268022483277033663597681721456633060947287246427658496503655139974317889892627078212616476818850404450256862691720702735810373326449777713567399371283604756459849096974844655657157929540577362469341390009141714768699543146736828439649374902755689686267514304711069255311679483110487601610776427158271125068348632376049376842372273331134371511884404073503467697118215139005816628246514634598588508410012975602727685258866584932708373324012218423860077495286256172160959869508956757752969972129874421930752528218845919698973838822028673260031972817116953606179567895805057904382404794076800167807456365422931168278695977111727954620482280788962054865824229102458062087790105449618683347873610304930055584241757876587697046214499622339658717357367536364804435180591030139066540580967706195900528933772207449816328566819141447726051293010881168418909778638196859877603728769346552950023845508626062462262781729701807687394438113238884334851895708267608188055283207200646549520863324094007526643440915341964538382685468015372708659155595353668214825822638592153068773734339134651974772989057833639743506516531092337941339494452158155306469862718280470542131101931374870728078895236212664954785282580100092323743909615825458882451891441097045038319202272603311016039566270659765129155534272891374850749825961294365361752743509950297058522675134749126484008824117349502936355672469981563248315503968312024545544161119131833640981146913457648154438807887226965701212290476570827739681059688608389144868718752441755849107294849130993161769669854855939276301740260146865152359113323386468867470215384237172832365933694320555428124785166009155860068575834080333224429096797304504324114463801248494197291283791114826716579145298918520305720993391075724185685650204486432040449059638698279971043241864649345504023515548869217610158635217457363613999128833594489985145065728366568175057429296497477462384873816373217299403158794539887437877905546516312528501513127690629762415929386136222827385757484359639318587504565212163245814865158888879591412299649643680031357408710370404926034430436532752896376885326520625988251478270685211225973740814960157961731064087950445478532217271585666879412145690840132280662272640264544334978967946009680879793227581823061677322769347613638927537127349145874936661776655773318604373545074603570184329075674200138241565851625943979744222453812763114207312438582740489192510100051399955317049466547794303520136163856184537213654085128492840384778688077100342415623948842246883925370461828192737423184589565231277589148645004404229969729653409095886359606124130062355732397099758099480409778393300059052223115038148902891010142577723062054705738449236641408592609785604133094157925435573435017571947624215854264096814201686177500743960516267256734215686399300588074834042668793662181286278173068195840963496311285562171821050383691712621066314658858404337397368248713978685762268460963739586187757001050736642510999391891412765609282497358248218382350856932191472865676628631149535582609618783097843177464059619634221050999062622940675575963487646871598651471675660670617348386157747641884992088047810605250412707385727848596621646412881531138093048074634561186810066385026755858004766927401279489549285676841253751536198170725853835817257277557330643722295585336595112516448746587257613922851258228852569126550440263428416789798927938585737627672363189657569198805777946696487126569269225553890900375107157892754356556965823870062679010169624944264103663313282623574293291821235712270106337902436802391547199316854369339381687219178999143033224136557018008756289429301492343584414191054826741542961174980445584238699830861449351001297696163838453672636462665646326622937171704399203159129065409804126532823756707023872405687595215784662878755865265719635285782855253325755305640155571199400952837202271684845299038515750536315010463401100372337800881463031962331599446008698995533941363467485778672057447841064264184676034648128919347285662971838760652689150866707621309911274267557598974893500868354841695774305881359379912125895483892056390883204639382285881418448615544710010440078311622194411692963515414736397736001274372243341712974683872367362495973589927291957367903716535532339161105691000230572028628914879259174543727419247582426918293709929172489759716981305846805280425610309092003015587217977161613412977691064656466269456891860551271068134753957673981343479289527431293095974132136497383377759343865229044252294035390495627117171376793417488131734330886764421271947632287614061045667434115388898356870397571663657120356864257853651503984187590251115597983335359534314375503159951255113555786939961001394152599751643367509734837418566398715891605620287528240807546488548727620045809649035724465484738201186280554116468590414591790647329462075008041332787420418268902870359719705039641274334109221493412541306781738976929383416043136220157749034646353166986671866354227714531052741906289426455057522990119125811852410610149445923231587548902748779216909589115927653900741806075374818778721960723741932093859690103901484342388169283144073093165194997271294104327409683905310528255552351035793919805287122035430468724461949725685400647432070205061149114091758402647508069548908877831468847804570343375896221676698736630563192883547705466447462146561719750761750839551943326045499547203133581586186924611766390119830016593799247368836961749292297196087507885675844582215080483360079079610899610579969679222030572752926140423199307488385838866054294139028089053798638744967444848901980211408715063173468334109988263469972661825596333654860459741692448333969597754074694971613719857649761841367945772976864925012358938600476855776420417300249412528745047372478518546804239548680964030421173450625553370619128466234681825996487665380764969915225338201744624940821390009489121374582050381185769350749768456690798509221009941268440725839791105728353715677267936393325806620134403711506097692555900263987608850610223285299039561649068909615960929322194728732679333818140190608783947973933638686025994495459045865601315776412070551388426296397470763271110688300461485823913640006447345447286324578641210168774515249283046076331217521178092050340289614166799028972980420468313562997727243728122857633730766146444968950801385794749572249648926588512523742776668362966025319009814587905752366330079680246072811428189082267445490367479292477791833694576567501013426961796694297415092994913583197929810764604689883468326612263397725351455121245785180763996892379068847871840610299575572573380337148153421743107664049888052194398598601249110348591348298568926278889661675744626874939515862781378993030839513321174441450403280384847681573347274799332540573513861351559394060189034219704711079390432611404073607325151614250805408205191506164807988932839718675247508329926127119233927676009894884077295081125417599110675146050924863618398689832893334145020319502710976070994830296921825199432776019138796451746836740733506441667601709048517329639275313788313794176420115804310971008797389137455313243653872509954615739183919497796847721944810635249006185195705397596167807262485430593927149855668093745465830513618265066838305604039341224400347526177361728351938147543102099132854699246047336547379931111166479824515168276896485001906055658315122918197273621014975772049134671162442263558009503011017373446474832386138343790985564218182368729088187030362620175787244771401061849782409460614199571139067391866470980018854613236609521877707702188529028386164690277681034217440234458179384598350273805717082095651748088228721993162998733013505443954392752271462610080219793709132680096719072762822485778731920785950573447783969066506826876616216674634203280733952511553716093167849704445234043941284567429994128745695684610127760534111066120105316756085811184269994530373001704517224547305326250635553545882460879531428977793981366883572530396142217559767036420156375311731387269074765532738715787166237288559116536210789546037413986418646100870071113048857889186082250149305184129556414439469177869256623776763305849912625993883818242947911307336073500290003912113972002428222806591945430751530544998630409947851372370912702256209734595381210711450302907332392421085543034604436210698812451912573773830979233457132035377524004585768486771843403857635152613553174620737011629148569943474532406602419253896923881807691069708584728619538546163551090386281882200511105038977558274239935810189759979427524612508106581388224732540415686344614456310570869148049564928789695560070391139380491991450499442026830050057199436258474838553818576975051612716633645420270538522278325227402850104876035255368835474300874066288635054482863585644282733358377631894544415728960694393510295336147487152562969611024241365731023581069658735707093280375004889035107995596241342176288134074093640764000399024230920257921579503953651116221181201183549156145951518890382162532415493839710316827126557195864349768148086508413764085783751509525764757787221338084551488237422706688399618708912094288917053207849613107153793816289020664520676367748437836517895192202624060707900685966354934885316119036542515437379818769498444964040283497251075933094726426202287304843118624131006764104899443466477340689551486206708576218998147519723947469636911103749869619491297589884581622604490593982482713163969353751380274118897556704936440990086887051100795084648167154567822835740493878363748376397993708395730720220970392870874507148031331241873403971150106591280135849347279224143296572746295114507973215070634640020943379755214796552620236261538194810786206890214597973748658696657012515277136792667602291388577708023412106782346622822483765815256327949693335197438513369878870615179805422006764576080715053846256887777040720667473198794451006986818917663486250313716219965323500386805650635743596919597164973096215357146975709124793410854783296264195581098581798324761729843478448048902682347567947389262661182936558275095496311022892472398436778541778411375176994951452321397430202764752681407061248771934916871012610667520922161376388359183360356881858947380129530931340022145387922954155409326626100691793936720806660085571974956081505913111171918328221470291459450836910522871516080744489692788585641500599956824426489416888837219731251063322384911686080591390783585274789631319680213340726356661849596256768150181121034009813849603145323880162768983055226851470372368097085975862113568116411758605375546282914388777060528687366774621237725253080027221405790365605722116043160409391493556329900172131611356134168873151965723348380837927134401166721015305951855520873166570873885361053977668682969614938159021012304215451191376039401614951493842793699302701826238280497635864618186010265316944345868567413508443050214059887884331273019270290857210186223202083416691455137922369541125196019732641227689454238564567247408831212697910083548654796799615606875150524629590886846273320617765814235120234129855346722737038132449321423274179104962595427284959763253555924812685276948199236091119319939564453958557031885926564153842661562689671659591565334538952070188277612128233120523431872185293803099139028858994107925847164423189771871711437779877566384985297079674210662126061426289098933712290544268860077277368420872439348624455894028024719817303753147755020045648129115677037771904119536345283008728285588081185860873650916344914113583533232041520636054552624382552323407256539735443425760312403129479164984971255859860629849583218094914131136786612280541854475478853426044932687239136869807495863314191239190714586780814645315832102741696533010991565248475218972132412629692163008983528333790005581465391909642853389758337745470967954746813224384573464492292754242567249558411442268066505722659161929943231959043034850650249088058265563756359800151989494279202835586070768017715018236836849803382865278414658177651532179873677951184134682004413457514477081343586649041494451401335834994781876072475479419819643152068749898063801246193059779354879773998960143882127602276175833286804385043079241088058664678877044295188754606511530164911134432962089211522671849411036215393641294305159558455882864768344242483147870742590705042338665353424220169894721855647657318588564655187763973285173988621772451482729054222456793713713554403784542553505481295775054379509737327659604665537050826567187281795266109754024730949430810736716906344401216676055984659385000566612291329533958066551676291780341531443239800687206906056923489571114591948518507712782152552079573358773731555373752740722469355174563631575238261860354567312867022858466308157134175827043285728975519106870839026467418187329962338196951050422504214396239068152169797610434134428735314449931361698277412277218151737811629266671236064428764057102570990435179654964885088702473008104018556648643635875385402537988703698181810380787482937648107812811854648453518503358718648289406257570751576849003451653857442587298600278363053850458036049293405618502461045476160917589127899588958295380091559625279494166955162700288334745318043046492088852846631632308810065849105926958615931153093161652288341600430641690207026444596943625847542496209824942297977150364136762225081462961987916421598027349697117768611765728348529799186929556486761029808493034869449858656162262930736575369375248600374327511590363727599713388161304216751564502878326345080018669540591736293555847198098890166754224641393543800926179259595984709529459393120382709201091969756743470758072608565219140873529782818386604460390319516565096229805306661851961031644258927743089208141933279223776499553100388252376970677256694991402007984528797735094700543021076022109279637242627897344287127081556094865960571219671041297822389492866365421185058764398360866636108808617362166393047594585658979922706157224370427127963498829323711025069724632931070148654548234137823298236215573997569557422670697777767941532392789860689795034831528219133018961198001775950446759874668979412747434554393417076366990343869218164052785809686191049007087703693831163962501458430929205719872903227841324630335619235326438251818347634872114206390530930848228172934431700314044799616841613328011063735085756315946637205711422149269508780486884627746219087138334630632581768540005011534035406483619973548650483922377885022073458493397184311687428504423853921727190870236430542814568627810744417692705769186793594195844943529269890782430884449585096123503344927541687874265644445065388011037029978650104356568055492988426427324142633695578097634763523462247149325493216323185603174664142016769095516802560491098496371206239035875933168417035421421486395928765381917545326630792661188766965315048943016858495043396650456438111013633552500861035305997481338002961125390962594060103101091575085027006604901768005421189265496314594053277672937151173616174045142386902287033127666679308025502682177499286650243359993665564639829874470888422385558925045324494185971303725715926419893685110924132029913440257280200655427211241826734323408264312885877245806656603785430840112642807068773458348747932948154907736882233009497535435469601974673297019099173239119045273879811218760785280641811610838798257435863974186360560123186992985449603392531242011594284559888782604849845607344180484525357651497943260658017318759622784349123661738228281724790118348663090146747872854880762633417757462745917297230953551888472290890953080513341784363354145119986968507521145347957374702963280780974069921770818174860172005855127928399703343107724303330278624729623669913966058600442115049340617911734099261255643847623453865710752410957149718347239262417217935755036967363418064400122521058768887237793713386300166238614117094545351317761432177263071243947082522682314997347419651054669919164521512563086965483068917957521655981144655530687800156274727212478967975132870325497255016108937406411220955915813212863845669840638708508330958293103465168391828881089786402431064789941767879997114328590741978493392547312786779933824174857229530791478445248460982155753511579153595929397569109117149066355124669604060568778830228760245521310949561345879362641020991796241260631934553014590878252129282199829268837096251701271474532022466897053731917473060136054823667019308577456069184212218175360161906074786180924514011107430957542998783040182038310252604249958450318812442013440571536127314406701155008227929629662161125054386822492657169613109172842292855437336029886521447528407997950782899366105213112558109455916907274002507858253145540695798727573784358779619176954315719205581492898612401318111922178044287551902421503792773399509481710779770119888198596968631787625534095340756490142705768998194695788791153643203327164048293034130074048453863979368557360671086450978097466954295329483902011703306589817703368103003442766884796729717943424505457354800146580929710253681514426760408455549342186840902428578217600528584343350475396694881658666294951434149541738540334922282032036950568357390449513897089580978423891226399361017739567183529665016523092471773814800567944904198648276194252507073125237326161270454191971124356965405602615278729914882403701309401477519503990306077832915727556380840107337270908702752754062106784652110670840888247746503620181481103425010497454283988799879915778964132570765732153436875311182921926017115453575391827092034074866358810716803916297952856372425727441978683197649401750918477843462507408666794650339212766895131896681423313190188522502276573604927056777952387285351842446524885366421839190114996146629641871401477010439131153561927019184738938302228937767443743748054802918655550487298012606769705503693694426739694030586752630258144654470128312295414260517753215573711897648571456945363346090546114475414970290180711570972930165612495910989766471555003504812512268577374646630002917447776822477873045256004520669421887623277833104759079205071685318322281128567869178700412980785101793728337351899493045538823676140816568879813132247921874915374023305343482066923279633690388798058527890863564074592021105161100236750530138552318831516213431472072097162946267762066501584155360836111099043679263108667314307312889451700236136870647743094309493109492176493055021289816402467949454944946948004092430106039781304582725440740756677201588547245585911787834062337905042090436950687293544716655572735494086898052295822099977573440429532557619946465385250133993510960090838580579104520184926262300938597846049959327256296725786366126105950022118017072396416771240669228551973322739948333815343890976944274038450781906827672531744899678014568163740662275103548413720901545309048982023257786868788744560321078842614478786945022787047922274065954661841324122233955966141085088297942431814107992253003824310956071277953515682656494373784095837378978669336910089063538734755019514777935369308793229717475000640764649977474815499694231461707955346712980977052361723720704552827577161452284535586358168457972281528821262053846768705420047299967595785866051120786303049674407771108087703498655386378636249678118633537207544728752519258631773837991061184174990063078743731925147695719814755115924184461246668264965398161775180737410130729895874263665426780354199030997755483192301572278414030685632889193236581067518127602285715046843436914036883718519305255045886158588070139476783770920110798206197763126575870999385254882482594405092001345812987026607044938575480498905010180340648416255953628633419476754831181589298960199032185533884009125227977536342500424622291106123165125047220124485485568926993693438168160204942413243027670901962929491183189941344012336816946259477942196077138274860386950977554497651823180870614299402770208365190387005572494029297020351286549658834666677204511425342447308647698915690604621031671582523696192235589065090748986235640719728543380266868992894361630589574436237638111183081090766689596264998692689066916020224975985751459902295676710723581550329977467465710905733076504794103092915437703134090446485847102358632874040999405979887201372434237020504721743063488059917888051703259490132412485216820487627973929652479580827794722622309194258501192878964798693644799922053161099222940566939685805325408708706050594291073258072046454068380719366346751737972486832554958453816876152968812151627498651573643458177623401351535005794167918654214882734908544015622878186575493994823135196590207103140996992315902954030930806871405433850511157662980118870085401769117933584275135448671567153244901475751635587622015289390611251019798817853531855226047209953282002080505412921824199134485872523599138892930279368148385028134242875178159704055664837875909959339849792343705002415036934362659971799910365506950383369698621739771443010762514264225691801388541430102360913505778391577046358552368903130108767738762123603141978995490230349704508024989275127185719092543791111514430932788956042948854346071373801843309003445587664745100539560960562132512330200066506025367493761406697529227718997914404427048063921585970661183671127873748746055168337425653404205486014074111708573526568974115716630010312652941855341904072831053937704481332595341321665772209997327221113009179586481629310736170351529089894672868668924980423853291649693322664853968321742815219609761375193792724189162839413092788005844726130667354059773848396428475982517372916084133801859012047195475523684692721692731742957901646885159333826766966562889329975964702769166762035399249074741421202868136065110262249253161211771820336950554139496594714495577548259309121283264253523833428723377016173834049335473610569965528439628729332591324653171063739272016791864053007020539146310663627811465308625409981620670512593526662233244489062658858787766656031310966883572620061854957407501504981764135810524622243713989560854331518317390586575136805200058469463749446721348691852447334554863135556650782234798920384820619469512184499430029141368983179980835909375312548379323587171039635944771267361396652390123309022417424402242912282904975650298109009958926143513849626685647394480035202922968270746735726403924328253474898383526870847186704186203163204226693088983445203887991031300370490983440928316576102255109607395369986259186601428802543170579442300545779890150735714330539287133373693341036036108714190149881318885572452969671645976997970670720538127014007229711034657289883260390902522040354465758229016313365074585417819190280906122625399786993056043004497935521852686791253349676663347251316965960648162687926353733657058352595634286522173197401598045239279668549487064412165893358813847475506280851736633238352049491250844031449723265429972460312156387736516400430071651449844872268234000897793290947565304478940254949930069860506670462994406935074166044978644180610276857529133236211885974945686806486508205251616959390170073012236920296053257878633711229327969774664467465692313604642684978757650392261482828790194672735863810488656570224005006588537701423623693501956431385988915212440066575994699317814373377806720313216448452826349166519538238453212664815253572468485901999483546692515267584955436126305852872389416422228944541473034596599121992745216725554721668353324570534485052617118415017740637084370980145876972255629766513093787814119109358476189768377677440742299195898586609582969633067001613971991398407323225493534841813471034459103687581006857646159628982295074169121305517099127386596782286784287121857569615155929128871261011460368336742143136835150808772685723365404834014255887914833110600903572435767335568954427378500230843946583910562827287441416180931628036245844321175429312727991988990073465206216832417057702034525962181113242528846881236969366903255449536934379249329311038655203249538446737282555332764656927379342927991697009641455074921109293895450406805813376992792896689485567518937727850494090911803448077655069560666099110192684647836620887843227672158088184915539534046294785857400345686149553649409689106264446481939825133563821291742339429204229748553079098209337315506705891810574354083793659206394028978321411595965022951801544050110191558601124570930162486308547473621257668115186003915837461361890707702081822848914120702117084615620219960696681602315121328007999338635295423580799171378622167384732282878423579247121869042198524194318047419682561103110801489299430842181493750262379492107435521528346205560876943405743299084864012475095767530228550443147562351324387566821471238527496076860589040879439805429406579854941289835315742629598994695086315712936179137155842458540645001164390297171505638279741252587341050008640499998263224630891942784218197712213109902384455210758356454780690325525051909078642586068532593062871363950936299932087586255111339157486957180266672814366067666619347115123799600445928120819775228287446807123616332257530991027278206479449098121482806143692038844697022707198126702937150878177362516656036637614419155766774417930262368685186370819207459008488821928809791961858320841960598668709441098380153232716985974813032066170688103245982076719013652466084375498632811348273168240408161294292811100078894547242355696038836421258490678728967909361308160416341578217907784749059238753232249583467331641089991616776650116155685895198958576713379926795162644476404740277269302675873308124258728937881472569068550844062047532895308449404722204943611740059751258796273096069032908154074554721679939901724740570824199249033443439336638738061358422278077801146137721931203154201388034204051189409590396729955213039745876982157159600794471009877268526960645236713985614429204575291419873691891105666758529814866643522659308793281596527692172692025983748481040236072089969865319093054398619713332115240060650987467266672192593214097172748264239355106340532306216794587038797842972562183944980920181029215656057543857859667100796752164575697516419758295156116471745175690442276424641171324913997053436057543166505287642946856397143538740467606064348066842484149225933133787041087120571404307957423347430425809653613392897063470994322975905905295384028037524571374151419558332061531183046667762075901789554677333720306553883266799257326271795168396939319910674425808388544735047380543337386486933592135594693224232018121554525296774887719464976280349679646749533173437947069115486837137056104395680237318864651115513400972797403175424261639980235683199082203246802112378006120253506434283968804891494286944631278570587854027627816121300196488918615897467841584505050317113865870565857506056303992397816692303494508148840059863145216491247150654496480065012396695664470015267182044974461745912745724388876225885188276043863994169373525346928533606909441914162392151557756977143519833293111658063602732039041582712052036973517552071192126025421963718196572892969717927985358053954843427277252003226385854392730478116533306601622645091148156866936994722737099068034122946872622484969115628669306968790659446273474245900926887769428595184432803401004990597594015951839584533063810698646152739614539367223108131596521599381512613808299872370513544613602027744153543404476238562485719543077084980414715380372475934538273961859166892482335449457140232286315614154390067971905461182834675750055825835023830957699480361953658636116334719070192269549004421034855320385718804865506602683699353824187549981873639033471314752366209131135427539461647607393614409600344962931787184772392635237371541975161008306796919539881440760588774366861720117729920951730554076571257999745815420695244821684797468688617526654667861602385509105096327779698067309263718759195268504353975731921372412130121167620426922096698311620668223513830988264923467959574317117619485937950408165553469963332660036355761515998680981958015602244269308402375228079703075612200879340895741628394705528386534064642921826442227435830004365360003101507706302329276878775995512584583258877764897453026871774149433029821496130447365019086669345654021338529236374341601101337363068944788807726683546652644950890970897938808071391521261906165027256115696791957123102504632807449370987934566729837400411221043111194259917761525150207679066472328621349735214890510504979858962396937265034372731319078194943429353177919313454769018043639014324169785765958084041009409810292205303940507908768787829396711273100147607760057075608563713447018047040677369756860577609302310559561673056207885950196952917465877417094664091852717045772455752412790132097923488539737861709893790583440225545967531191402828904889052802161304530627561818690001205716507939496037276381330003401459159674331244481516663084648015384565247748001881214430732323358804005835888207103704339158158624438595471495137647185459938492406042943692188740740062769826652060387340899081758538804189377998967964450155023050411989794423267301314877111035036811250525184227992652537192529053808413994983762277092485360092447551602004800209620637318208599441972889900462202490248925354395385397574178819800795906440875191836374223938625984387027845067113741814497761712846605832763708510019527875790435122277739792166078623437926028735116460488996364486926056224015898823398690894175866035407955380076198634314846699076908381361986988001546255455803309566303688840818028240543210139271554392355482322436051832266429179801072017885926845040470275262382412164039230804915684713376648748722190166953345542751039921648833273107716019978914849038485976209054570596414264751136576587437892799278432096485031027166454671345949333229941564017011773657628351155308236529281346151111337956025757658070103397743798899767377264613011684239059144709713028527447542565005392845396671332688224702833922243430176463794164072835906151963326209671241764400598794864299830799740022036001323161245030163489445245345318321413225193818304234794239428468361176968106431105111532927512419907364418605320876387585960375634678173349634041846633015548209041933660152469182664035676636807084756991930878962301331494390451489570188688356127430422401262720488880147329679526498529104126134385043706517960914142619173575551328447350820985790877084909518696183774614361102916469152485708282005597005773284099856035674314889016591091435874227223682670092825194363572276603840447098205768707220696465476123584347704685566135244573297248886650218540916794036973166205260539997738401807884529052769366491416354391439707310783847947425117630525745461250390966876500077463428778885427042555734162511222104260475045781117269640593840041105154568835829825744983894014292493447888044096100970983333432416507337838917205435782424602363240148237702453298075290032187393601742123748990093844837343841952012455074081775807637616899353381450339315368685006744870842847951930840173092669329387573654854733144940051028984921997218806355728962753490528920660881511291560747703896456917854445484244850412360833294067640993878977273511015599646508099390623240071784248239789587185078973658739082244795791850413890668838062178374956703313010740349656508780270361379952832117617542536654293052319267112206074526566204226469623019453386155991921004540789661854430689852947435227188076758071869070399654337307478464482332324075517834842580597102873719300806517482356708407674956453966882117610943773964936792897065149002040112973127754579804213204550370536939466565824070169001414176644188938953258231628850111296909467131370766241890119920904656890942394423930119736509809697719325163921717178205987711849535081862571047711831612588453415419170999079786807878067276183432808946758025748399597785343600764886702306778582469159093719684182068099937652353669452670098692292987621207753895147940287469210937342430146508787911152854015381828875723129277141562497292500842892166064337957126284659253042835946427991315726010582239705660668704668226230755109962708177112853322691541641011876950012962394702828091938037843569120040008559209974069621423877967835484535024392784383839365440703046128267783939068781869397351620438712643979004379000646767206457881167608544961902222816107212415080155624118613331253184640018661802489125173634164153511809558055026252592775200884785160614629995590442970485660897196126341171644379218688736158163231632216444840190859341129269276603020602746072037402864250485634746491615962421020580845163565131925163273924818479975755065684214606509673770336928665543446271697637184547869557168835659450870536935190948257711141632841297654464813045670410913814173261755380769075365491060896336900232719769327424975407538968415634735175949406117028512880305677048287893822572379245923258791933123090210810191987142799019100445471703092504577311318120937333683541465064930673213537019244785751108309476410860620814329716005892580391042882006309523249513401799919412700342653760976487650874336678481366479345750470013890474725250775993331465443863532411241474103192219726328161356067357913285938047444181972436469292027774623918930089058247714945925659763795010759184138088172026666639328393911605497008336259450745444701936477705664555633293769585684209394079676800913013462291685969255931696557877816920532879488624644068347693519474305527344705657906319518383825614960556760442351751360963494667230578927868539578338307397467026408280642307480154071625509154163958653454668422655885900068929383411434372333354955926668340160180584739826789204173756900865741322156788240662501360591851502080993871161665842144661727536470914394492174578596521548194254791087223799799703535718809360771098072135159404789044720866259595415696455473729251959465046946478388401846150334746770028008973592372534353257572849510639372545520971711604321243918971614632859534882574247204355166347700582906761938175875648217717285983455980970702051424007345663033438629293242631003355504019333821972264642730752592699587773575948388939925865099175095477156893124779665344999180846541217101598263900813366080707578334356473579290824926804343806263059361162956992387661638099170138507710165250222632649010246768063859061728497315441605463616452759563443426818703449931968814891719069446343062860349268281207139295070078534030073785759460171553399536064611033573164976547614174384801804792163040705825374068735402497609452497489861089359677870585771816846326978363396052115881097123369800756246563748498378650230371564597998072743867407913193792601234028263255653705323420403023701385965465610194172109125261545679135232111231804488446541381013101324360581486377214930642214336239446095782268411764831149174424616890222096516378117929754381522307876270066343045024091656389508014710084759533249796071120335667038274662852985517329248617493049515248070116351979696479032524496836272750337627087814036582732744877037471633200851697725714598830412141016959755368900922037360215620526717567523831588462679896113417176564784258942513755970101014109008899935040486421665035700826513492901036326089992455706243995716704086908849899037250997874127393728292762554271264342527386068216320489508944987321763671494883909516607463746677131986429647925794238519130083135911737736634169111400022493927170542853285957520065470771828260107909040302891357447765673382176597044934002680896430275248292908508192811145757094157505331663340569182986127023545034746607146732104262020391332891133357610592161585861973964638808100688971934886658573449842890381554309346316925815823035179491312894679144684675864527295171962552643395192963771917416607760814571852082369788982443839186286641005559523208996619767564925301660682290146386415298329938011348810476974831774994789223287260934988040927608801109704914611624940888341288392590541115924338742983543337935205330684797687119619765626181524360450259766994448296824922901727141618063191243000777557334235721997519014037923235317999572147039038505706999526595604966663593880179102918023245022888158421213055945531734094007526688841851994834130057230136019754765044335187655865278790289047678761606926741945508822827008921007233909256536037634997130766667855254458879523697948915975315775639418652294851515345031474168037612812461365714238412658224914217512119307666127657126525826120252599565854513555939632665558064801625575833478779917648343645463849802736952542152837821683934903475066029147495152732806140422718485898342506508224460146286810360606447756225568696776810329160673530107730645124241590282500032347801283396816054039556340428933843757487207558535113390041656069017784428380947387209177755342531176784537960604659305161753932927394353395663706248744289552914101783873293461399398586592037461558186839348818856719638602871998185920852500304386778413033139592132376061398481228535388650942407138486636382274005218915095363120459601001807792598396668699055974147175592376724421372997274093725590459730841344470434242245661940171154770459688056795550813521237121512364720861346500909420515696791633902160688541888618581917465966118261268562545031096376285414671311033998880371743986945694265250191444573676994270146825599428920480291128086550789475549693416999610828788190005011924675460992261023797950350164446443282732425383080598284521107194756967007346087157566992146827561921939338236067058607139863927179185876227826586277257997302667482775406868644231418019725116176805854575803616563007805159306528272215526393780469763371447972787913966081480176697191352429640070833726759012156119511256203838419353186095335756229160696946971433937993038316792119917342864630633464621367957079801850724828259372595926803344046607281996159532789082538702970358319487841956927954943709334458507481257332935907623967431942373064639991636690400037699300444451103650962471308744701589718896097810597558113978051640963508837049386078378852075026640507039064264759511403840066666709353998489597741453872463071078750217385559275845071589827518699855418563060895966798443960960739776236612169177524423883360323125204284434627675440965577736144328216672214792454255892254569063853372488959455557224794284636006561630991072136188712669575828506516262201099086161151695264755919426473261568810857360369523526813109481393240336352185086172942098148639181640921531072237455407523277840954056412066583924390197479778040797343001462170353410517638982615481120580316107869913713956111450626027474644706289252872977526664386245084712842573566293021082721572633969420192756704401469361987047595861927193713954025576752532394696262702998716135249041182445276316300607182522634353719195405223721523446431643049689686265673761213170603438957406305724384377979086709696531175325168744471463080240268639234443943198195883508148318579527479534114334213803660239051589393482566202276674885621492467775035833493947704317246720413704213051911092930472218933560577147936552414329843451580366888458538843399176916739791523394757962085038535838631583270667491301494351257649474534840692271486932696229950731395566355000940498055551015425424156417082050760081365801132704891791314241227416053216877497768433696781744323186934415589780807602204219145065592281629977174608517081663492030111696462662800023620253143426004322156054370269455262095855487268283021794106846465917815183816855793328464420950392402207091654659873807208007848751412581811076052971657638289971500684837016208856690255391187265672944104206121566886853655660085998093493402947208125225306348609414622955085100460851662166007860429397028083181847237141145568563525546275179847506151903583689247944967171914176438070875525849752658578055091931231928774648664756920284146326136300971073636996305348856063191707008801041028636133476811636775649894142629225773346906831971716583165876335448162573356343866627781913123892275292856854415211947817018932224665780596665121859846527455455803678288198750932880518595474425499951252074754239000881046604143422301299913734578592674094906949889708697769209725991665799718053175377870861028153781861070257491911677083818403531814744499933496322124449666263695140483195145191900725322143402668473529702865091733778171421693543503289348015333363325054756938043625159691676952234067271836638683585117917601191182003607575634898915327695400309747951478920075383522714846314545102582955024027451241868108060402956742524369394259414711183365790146952727870999624254982929535368238937279844464240228425883924325710139976403455269596688882365599357356543638031186956939181072104474205731634991133467699769322660805289941182464785328427766199632958137744257009800461961168460632633901209487737796411466208139093998364498486562109927567830380731598063570175920928463815103810390395602649355018458233934832927176548660004350706415778012414714361176969380271732834570034452673986258748115224559072679487098056998585940300100965600682905884351924950625545760923878653983436164726529842662675845799608834010221756703633698519296317476368076583262273871654801218698390837559223520759881521808960765962342369225588676295210911171421746029278985992324496559369079561448552409026133000674634915404726473054175129844749938586639130010904529879515707430057461767208333596438493638749012702158677596804448407636548688821588698893638926922274026905446257372537523048309966061644336353194527344676506722988487010914391995597163200308376943705879237012382503075553306958691162098346551434798004943879731571713273567208597219528108937291223001784204005236687028709417300460891303455417305289421168463546127976251882345122864481859845135192424430800018666272259551847445006610964568805233855387029727431160317228048778396323817628316042706551017905547094889072201881440204544519713935602368436814783338663001217736153030289255632583662415989284321321649754487829938184032649660583978466375674231047850311095142472389284634007489528605958080505288392129089783668426962444319822845532804499996658783431336764234281887658510534914401122616663392604633530001089071388157032347123510066288889790685661512779572219581246732884547916319098527039863011069627799826882254038384221790694720411239010264392275581872401260354909521557635308519290851209502112505548391712969722863584966178188688506894040361196797513637590879484705663374839433790641306233238310600626535869517212914885436208340298929633562213587941337629204197430395971314816699426144460290357463335965129415124610861893518029713758506130055846265768316254024355221237227430806522195858136024413574252327604838971925200128360055945416165626851937040017322313019113197072625892791939399424859467861007185818048191058538203374889889294431521845393555104598161478542327801804398826351638334227124284290202359520085141670992692727676025980981834733794759415176279856392597328945076369817671802521571944240041853324994729558509160116310118904161673855671532241723487626704708159901874441031125179281830524917371265348388848871564860827496971975872792621673110820191377661673175464785271242907952495057968810433023362132090683477116428223753516874879841162608368019763679061318015380324750167408171060536783979149049399907281784764201267276544480820285662542512776141764929935604976158697300330511085413892613963999345863491320565117485023991864287581097442929979437557846646990248447587748326463967499335849399774528333630019426634474854052669403493521753236758277908915729582308054174185941193662023806957755571069650676870238313702158908743152288721223715135960240586748485621811351279701719482939340777438086887348565265431027897180488839838891468649138707570026795393968119517088263511439952462021593927021514102515867094021311839550696185492698667782257730808440955716716745418476678418865178141083379126237086471551660604977681039158598413491807214724850662186597211768541197887540419920624632333627665247484089877593374617541033117534134295712912181940058873636059788762121006502774937015538918413031930548199538226745359844870333984627528343141392381232825567570732040763671460599964499719419868039022580059480632854564027954627033012729782344690419710372904407648001166379508153125520025579678644707691354559897223705661533891552001806289079873995328815578862328880073938919701193398866467874463023248989065348413539210703448703056880614678199207458142914574435785022897052399865782847628669282119475955089733815245542805176152425481217543684991981108336922736852384699315442748463981119350970383973157007807325246660448165693620209264220452390676503579466721018636526709708133567920644135004888384451328111973952420505243463443058800163613704989733835471299284247088450074680565673535661549271325865957587521864533110833702913708400980288271297244015580586153732112052958426312239101200292601393699448064765621880586731994244578226208890909871040041989368550580456284070171144753191731193972057588609629448868705154698197838741294057151817006275361814291815796617930836353788069498861783709333265392660975991339409972518569815719999462434418070680124932377310279929671337449352474616066829139011760178681825060628138647656043082602528358352187058240944412623963552125550656203314837289577215109738577743869717853545894636128680897268820506193264905147408321213322579600176730754387164259544512860145977361157173431843332201649123794367486180813465236239693953969527663384187771062630750744510064050362948885279182957428839781503963630350292763068424411248516031184068449317013945779656052300031296256190243168219138002629966382117947703709061389968416021320432553341337927296744867716164312604687728687424383566172260040801565838328779524078637508030389524347169538781707101724044359277626651765161176112900447920558299688383384468731669712652730032111391976331054819917722211455698619304240412788259225475027956174694972697360058204111848327182226436814584847943362807359814673796863699278055389658016868553378949930719629639919516222208545492508785720664400067131027451272658251918180472460689394385198870742442312353837262031434025583646419069706473240150190790501600077948818309828269613008555823217994488000125082959176534909150845780416369296249218459268022696712673416186207835874276465238714805659580573844889469158967076966358341761464324323353117801252365047565449600736708315879610270222549291014929901124341040051292781737894707302823675860887221982677722267242391138215099033483180351223214846583037917031194155815972845358656347435009626139340761922205196894156981785648991512065524083607672850787328936483499321272735287603086208204706588857002433798321816582749297111342051921614233840230086344842171527734843161164818828602572655593068677515678151703259951943900934547513164415312805728668979927015207707866271987708504153860967860125276744803352927583585254333181638753550046702849699119197557125350398660918796904382212289358235239103285612284152884124683948329198308182988620183279101451316012376144450671813713070943357282027026698310202933024169018467344818216711130428950678826672789444455776263498782626657657936606756938311235855477920598769639472827549426553335149667483617513668826945520395384839107032913698377019823351626962082388543665483761716847540066505945271989422913983490447502001629605851794383683832602769300937070649289250692105265884568905192686444489553205135089868601183884866480702815009946669025336705019494356732435676157105196558695159536642240116781246184581145917142951573980761092901694355747869154075187066645403322790892838877668703355644329012079338852371636211963758484456890426123075594631947783389033268120506136713120165166355301580460994170123376485152776960964173468631588058039654788313673423731191810204013305967806097271291433575619165841360582345076228458034017079121802986452218978442563163993922368908394284556082551140916902725774963463538834983506306706171777050804069253338327301246362457037733982977657769295767314165866501140672808077634599313210392571046709703784959817933411897834276865686568087885221764631546682393567546489658092266926583048020173195394477128015990271240221488896968850385654840725779694851393621094215349864050305391005551992467317208792734754810523720631558252891849070244501272726155732296078981433185163607972517168673463663379242091767822684497923041150824295770978214782230912080184462590481992526584739532994812253347933783937032465450902720838469926426252021175195137650425213368465800424724910119981458376393667287228698273309210619239185707523900977832687317537645463383418922687688075689373173394129764237903530527902194088759668064279137439862547108914122717339949395284071976499689469734191423257748644923593776834738594387552015072033064924129118680675571951346696328162873464155426772624321674070347626107322827342137927141155816794514952409084271365930783231939427312229209653470179890122769036952285664431957125925500553582642572343856918129691955215397440749094375641064206505052310080235299285458946483598720585708117282610336544493799721523583088166720882561135159189790009957788829876603595734606650216446334719845478571092488990755499218588136844778071860627160546881205189306931615277202296842413151712418230386577687557074766819905474225778730647206684165828848256015832397275529014562426776855708003559957755369306850047186983175681833275144834014924349389280815626098477757481337589248957493633334837012054253178133867023683996680308721512928619417816714674378832744334650601935197757467555203590093029119966113777555991204718260702429379650955746346138098517740274833385138829373666408747623011608659848298913640765412514793307920353781997043624948254643349790781121877613859862635497465627576439352042732768714213322170454339369194710448432686355901006586294063211018945165466100777038285372557548156094468310036641141746930105169586102511572596845774024359820578927731571646203405277000596000442830902236553957636460025041907736567211408029333054028059785137953999331957751943535567912227330800061267552594731466968099728829003500076225201833567552149093738912218285390163943575772116203544155728585393428671763593339398058509424890326193293901242186026497898558689657975572573711563059793625877196735213876831071545086684425038148455379894709443872300710788631636442894332849253200642076955853660310385494290709853543998040505328182110559924198446143887982569184183031392050936162683577625656236596832086982746651104717164285637015334724546302440873214401348987592338776924675194609132966723218104568234217473627732617758905875756773167169360640132382936426658061895131217719171818737211845411847214462934995781565399088828139346242563450535071960264678943969258835367471721235628173967467406686153504386553033005968081090108116508646882438761185025158511465302046912595622996709213778742940391216453951147993321501868991648128641390480083848508202772548108215648889445244251239635656321894448713803916003399150614427805218939842511025490576078213091827976269240705858456706858151580898615102307921694696904498671631391806795237531895898009017456081750215502386713094783167559223337706437245553910956202827596814539571958706759286382620105305042654737241901494257818054542075934243997311092010289492681304297125924373913969242175400456112978602764876002067365015842272502387521207480323738173996424821774366653534202368232374273766703264363012528992614661959872707942425927299971147549859851822449713705828556717413672713801502513338659439890042542923114201968172827864825442400118663944873286631199400202200431270647854597390695310403837729398589251810371204053583254660648087691334176346394246290282948062210468306228180053163390258419018130183706307368227356159558306675362072406112183309752798624679996301669025793010372623213956008409194500764538468204047918484043534528414802579854266503277914744184182659572584303111643451895347070921850555006918389502815950788838782532107389824510276871856701268438716486823008770560373537642169533987402291477600772479014260274363230320460227639127503396410219887889235482175594774851951778767185810327754279206352076154850108507978917852943496314693979076770536990800396438110183300721142660010579080514502992211751996742607937925971124762847301064010923673745340436364636422497884474830666280534975273150016140258319308669430473820360401240965384319606005325674683417403304088916890247228729923630131617980830615739543726807852416325003026570988097544654722708164489414393775209920567932549233191576597320568572928334577442251114521088782942145739968761908264339294105758878246310980608784494656996868221425801291420243803612837978563877873496794403635686346593901718912465144596193074760141078512040692353752085432590177712259750776391607323237850362180529644400407887733627885919760527499979146241658496123681094505288694060436898856638152778245007807453165034922495459153113509274463967124263394542151930773644028460811272874799066025960462931273586635288436210030353063427682198076887425881699549109872981468454421639999852902417101534485786520755372148323012906391997925637448954739978742178562324310208197157753402103838637770993794532045014818652888777401282780492202025061421037640180727757103249760725942854436768476879977698633380324836828899671202355250905509083178952602673907957930933262639215289431957976952550609976975499886736126379107549235852975170483371416353840574932369775829882378778847406959078519000463475492146773723911867057454398533720030769817821070513565515013847105477523906189546114997974900892516434567018164350037786176375801234473817231006094589018781709517700445970085865713420073652677958247772782637460180758764562366227957291477368243611612638256190595430883048119254420396636667210157613275051324380837065224730370955025926674198800448897183930900423619005519287613154932600969648326803727533738595361762775392872591326150744240436757170358223110651721992836269879234629219625091214571141227413137276994338490671680260383878140287368329490464369075549939475815853416961246689483637415777968782771342237818501521150729198456872945984397782008285454307551428466512953035320890182167455089368138924463047502017124075462071781108697881985350026992511215547557220003766919503866398885951568304773995745446190024603482462182921073464553116324986727068390340384049973501728899529943665100698179910666643614841512163426777694648863422671570084840649682106727660351037158274872264243557831987159721564427566671130985426424931140037223282486040605750642245870182452714086679803911511871981233966533280528186621838303859205958876568410597811720692735529896235245231029730320470870399663767136291677333571820473230751060177693700666163137469089029252027024833656684232022048574482180474801663162716951761741117262664155256111956747264833817304677490382090747167185408965861760856764036700174499334964957213492573373160055485290088793278920328657295581879227397019009124949913438231141619608453898332759996601949623670655136903479961031779777778063577686537640045579066411024430977336198954274176365358989771202914111140411739428190369782173609163457160173055821190896692609142188341828279805475704827166494283111426467261790316938282162229174028007745470380430078059141783955046904915743094237957214588738684885582699856082980715513361951612379986520260695076397836600901564977452010155072073535400767661284785058613848159194101797257687542458372362091158595381183717665518293996825302390881869757101486870388502916895250802064544430170662338660922315251346977522982980045330242848725045329274727921858856472148432384011030809927398225072117714550140448173845279205697920166922701730230743272768385764165587375242021657442207486975899313773780669072704099799041022322879901617545641914363956731440501466392215356484987263446005646968924319693147711497114421866356029434752199153308674864512551955358426885986617429894909558051296546726216015955774268016313411182645825139352397138120446552900848216888313047089521895254318048897107323756486348381919231254184066551654675310291516212148033543383226993504375380110580820169371719595232985002941984143123213695603039891464670401309815916339773990899521553817172766918993945423932409198961670085302966374661038567184581288267719538755485298885155605925010802061988876011950223594350353405710015932249115264322533914091530585656722733611000034942863718247674075550893321327590618819433872343584037739926721830228924201807506121913100664118303812802585384488289193005965845759268476951484946706988128220128351364278997823726157609315238966114666711913525281434360916398346629890134618881919619299890375948316914132730034129708439788001586466164652909753888459650941694373517823243411165754159017762536186755992889536991025391884631406668912289552594317183254280193025472633887870867867150683379945747124843146827136951031216272569390766758449524303911001832079986980642747720312557486185694808227883006785362511372867426074030182544324059381002619286248253708443972393712800556124907273161359900895206179590883468365667984225098152273165751651654128305805998473746608968508365703586241714752406147964497558117970431403441781175601654329969469365605827640499441814963820588884145557991125919659570005130322976980506026921252410385230757661621606133613572237369578108276565464071404613330832686950567761459214224319906785807737954909009181931468856164618384934645524818561733686607475320758605173315952070705364373293667770101326391078688721008869988815759749384595978130475612974438460169795984575839522728560478137726748178019593687463811221518880996199116406913324731870350272950993965376963115145077389927696619625289876547320198945877278576601129048065751594879017224984790545808178416871211121273497487284816073356008957514556024331100774550588875610689647364850921847498885164430249408099763342688279071167828901458678042606995167098533631934360082798970502031412527642747608824384590928364532889884380953346010779744288842488485624859402677332786561179861094528872790980281743121225324438771908849745964272452958769280251513247410143661931773426230262811145957154010936090995204046245787011839266163108750750243092475777631646838448871065639911998849256940815847847713171355333539540610383638044599387115689143693875260707525841887525505463097221881786828721160013912614803199926318981512826753790146307005451677956216687525608716212351677828230359063324657868896053597638651360162892980440557657823906616751325323441612596444447962100259719908084014212008856924562158212310294665027571379204489744706056869438735144731668327998542782234351332443516914963140776370030949291911216968931867209715068488108311467539330793483096090793496878312154853261771374455450385532194959489972265540720784244849786108399038862949280692953156291953072304902390905349049717729580494092371033993602404507928080050639748547513730206374534634410288711686518336033716704946876639359680123390454833295462987402893699073124170379641948121529986237082338850244148854795992804751377694088358585012931053018156434054998422196450265737296658775045607495639257226837595602562735652906309758672266541336528601010401805340127827340106773228075591350599642883629897945611005920756091296870848059029365922245581024990936984202074587933508737077132751736108812137019478184777337895365136604553561501083858681099010425027260512878236296770840741594820711632534125648241155909703829842104614201535610489942834105609771028519717882677703375779205779499781619236553618003264674860614135568030098375246195255470155088654986909797017891066055753310242349434715958087392929123034631678676272321675830562479296633689167113347309029588624549031777954855844209138091304016873557456649224871818995951371881315039583535706666686266232667040651989645891118985081086278760455975488221890430664871364691107906728673598551003034996587886944402292803536078339470262133630023458587987304990529838742809188431407512242688846866545702923167507909994844925168634567017261136099493581541333425329828261757308546410410921112616516033488002313068261894271548564983462060720607275841548191802447311806080690940405183951064145142090196669040549622202941206638496608016472254317158331420659367329634916454406256013634056861705092331383922219352988775197512188006543338700121092371881645964125160745604324182506536562659302746401614892763635826174515677735143978586884832655687848984784342547556787626139825696002084704991928833129291675279181577661829998706154030227426717491195808767010905766961151079461543907945379454250801320620775169726961082089085409450696687607794454787533162624728121382291232462879164127434702954905727721642748779954309686588683294663058792130141092146163225429430869611959375210548595315494310566506859474089625881255762075365923419420138292760603151562595580741298449297628327357879964849662178821697453665628109291039322442444826990355963694598432962844155675318860142728836825054105923047007988750777675156442258590580330629762199516888833724764908044434519966029360631891159226747065507561074069573206473064767686998230366733541224954135609671049476064754987430003629274440520998276686485837132448090464412416868285182737180509556262207457946807134391274824929166047206122272653972601026064460487107246418223726352915888048183290953107792185179618850764939373104613856644848790445482638705677101868163117733435857380814213991783315924144468082804576405605959074275422474537632205128540901531432167408371446516133100473049610353493418756185971863629957760138540090685628599011849428682071446259697011948863528380118964168423021140098027945650183500536760747343799021697462256114801304880499646220263505752929473099015876487359156226210398524751552015575497431767086788597168370456449010600433966082343779078751905758371804728657968642892976248768719340560298645035755774421519632604624075354864915413980293143504353382922906228050547276206496238508279751038266159302933451522825383033980666566019930599308140539977683818845410555568848953210748270480034193563115677872328000877014439722927895481607556734533867482298016602547183463009330599531602963652207174456557001776691029986506073520195602830776062817521244535055975985716539331288251233919711553464492381382446899196481124757181160170994457936429286269462726961587680620086652107325719195799329788431674274008388059014461765775345168150704149661292198852508875171274821649608374335841321849637136506625313069201423189634190572712757794401171748381754902627649589755697228172631820922077746619101201723661921177552364098583189528446454319981175171428086592652952928648809638340948447044795895009283247535054987032275710665741598705137951271037964107303681072941233251654107619226833238158478592714094633230056960966752871223626535254339466621277387593233602617563928293011716720535946741862440809709457745736522473421737043332125727058249700539219001997195581051764357537475896055209589233196601913532109946594015927336585556054662730183377884237375215962437973156967042871247941640775585472212825600416282677391926256479882736452525934153254752280409653341505699695727638630267425336779452031490356503064888387736958852582683076432082864979762879212164141071594374799189014334809404110926328091912192551701369902790810646632878387024093355868426618807310239161235283675547985850391073418119662002188310911513654495406237713625752928732788240525759287960546661309370733580051600628347246423823813227026262789487115853906940003225110724060898882975715118873645793621495732944787263096642318077814848615612816376121755308954451484957582328946829878833886542397248269720141966932298204004692428028815509156335373319406481847570126528772496218647032109006821073009717200794057631973726935839700424664370330048142896061072525436488067156479586117414146357412199814583115720649096753697512251161727723186091854576781519644274136003300460140717403971800511543761134343784745118113280483267700115998068779075617953079027642232094724350584777206081806032971988013481022236898571047973782196045806752802441716190702874206309192673997535022871041247000106210096332870287952114807873792077639797417233029641272734124547544287193112666539131119215188207038418147145342635023463423036878056679533632500655456121976318070839420206811730714103275721734510193349818632087485353877737421856254256846518262385584034984489437675635599855102287469269741992151310885931810028434267834505466776352261348960067256539330448775316139411919401256161791213516051721663292853507194335458573040398208774891817703078722471001685446001732756934456438557178857520275875693012120206572318424947159412321510168314903090607054510403979116752084767201038316650934963448736942280246810862053453255755952720582830080540171559500772944808426489203802795318677856679264412014506301897479500228746595746416174592387803325721942179646794051917862297957341678021174366370770726195986766421472930508502214692594434380310091157293210267938202134651997137994948189893530558974117387106977214815572094473298090614236341129943694091373201343335945180820778060790976091065171511110391920601187562667852241730392911753554895215703511087348576062279040072917850286121811705836694004081719950453070551395777227824871723555903180103190691700800621079493318855507160146899222311336910066179048391583667851519988713773509706028516811496039618171944088328383682222887709698858018139384702678823292315996877909058368891346340709266021733200994885635746076016127134232818191672161142686694520776912306039890992358998602910136040490136302738012360519743981398768881824465765024936647722287594964613679019069882635034854410958059413880926787178505948012592661041237060928413587166883461684113409345884225731716943416774926427282166887530638473390070762318766682274143065465456805691792618368580641480378410098644882925073277589303348248189810068991558658398689536658654604721226231190967555540275563988106335891209170736019010434710576021394459478215740316698812222205306298313214335220476412883912537209312754517011098823801686416679596016820087565630870484950442269020674310145229935562660214640806741208478816634323086102214362578271281548961569112428317971799532801584472074116865714963824343970274517803199265974414492581375327195565677116541299202294272551608017942216882637176793403239406283256562356078657469955551593739194028402587501719053598856978373631137781233385051822643424374401715954991421035142875955777237738934288485743908157335574781842979697677745901989334975417605083008392088736890792296877602880126427825293359150804144970386951934600569888872057132369934678121211501976760587816485176939281132625150080228813244345579013063843388176630607941788489797690852513506902250309349042318140359257566552731104825006463929017447900863157857983870840100093835164891198828158069059643425501928860209981708300343709522401961609726805809851697431805097022320424660106288176675728100565720914018293160886585353425186800386077522756627449324119395780994052709978436972382917470723828228046491356670550549131305843664737630999356245869228165281091307401083938081923204310104823422404394329713665857435270185021464193005449699907620549121349329909316755359523134623332798089466027575549181748654084817099490678163598202357082301765715536162620074973231755482380749233784046952324075741361900438251884892618269036850668300153011130037555629531562185096329269240645831683295733159479310897603073225219774742381952071943882486254566325423150165479350355690500380472798972278871712254352368799967381870931882639968334638008093986627405192346639479414586890711970154046931339924749685459293378404492875818236453400792471858087012074224125596324500117358921523156337811953567240920071407007496965628842441527780682120933855415524039494637910688428670345933169292186669085400787307053741453963063961784610131198085239767764610297434398742306631656049637371826776318506840093399413909156241547657849330135559488875175076058818758161628549620946563364995953524054292028323077345824729531372820527278154671063321248877083213591272185878084663787001131391361376454139245689589979268563450885491308943169061875250456683509781263388866588854908633407349393152209258004380168992989433555487419587728781069622939736131234106451067332391736559280129685761022286802631282363795585447473488418185269888221731381941606629838658267375744771038847794053342745765954526370092993230908213440232845001161817649025606124359296285494255131015733749463310733202085492231638627362389879708624540630382479253133771028845931102854640337599162135894834799072430005089650993578650706351966165734422732009370165590079660156055899010688162532014562015333920635866331664699990664614980522306908197798644419053355208369932634670791512785178878405674344260764876081881961681433460863557617456612333103512930279808263673742415727229052894767286931026721765527943163766207027396095078212386888110372303567833049483399884508419306401239253271337946942702034108660085544835006963644853961999793766696350375333041911841045406453075319619649117632875342816440222585074897803335700197598391634875887662741762294473773509807987570809924649416012981406731224550403366954312759396356638368221410553993590626126563379287704580878976910725417772495459226381336412693491461472410865403073345502562052033937461882125701448763737978212535410603243921857399417739483639311141834145757671802361061718685031057744053701281124379713723859636831784487423381284405625669823069068989724799027614156109477653266011043529455055923285654682426954557844386126435976914705114180115650201769507853929596260397888304317174005220815379439087307153355153410230297433654241172999386074247257995485855475995936361487254061819814352827420437058583936811189086494940096206765325122399643170962368104617371364546854536104720430746148533221549085426719177866561649716909202752555509788662254539774508968397085952337828803171886241389825211428362982948008410904033850432744806157213225891330080351338091242590479005108564222742447063630400617419328837602492925144965697725121579224914306185472305286903274257710711283588559261834301976694413217636986908703377925229967826661331654174712302802496754647496046544798811777119557634355832357103229045149240752158008694493352875787120264173779453400662440377243446875891108495629370830893195571159251384069902834025879592558651071010867011138331005926992142714878051666748170695749292792051901267794713440205435441111397120397899204796744233024067289237986044428217274044496517153853977020078154386986797349577339727599935368790762497659035837424554286669000282704725296435694122254698104839290345918495307787069366779565952665368515444389586493572186472975189054637184861790655464380642254439195174913323515604060070778589054535868811312519255356265936068699315222474889143171510052419772452508557591538291440043122688491587817419580885216010752768742249880196741244879528503596696937709087956396767701906121476344191751778318689850994076104081333599510061723677449478604427436217191907537427245512094732022152944688933363605336753763914972142899783536731934768251948489002267898154434069709672192096961364166733318946679547066261314298392250979263879406384774728774993721242779161476736458715121313102961540796354766529987288561613388337969733419771610173750464353013462016906068415529561995876937330764302337516048232045050495056532816584972584187752167512575163846555218450881073263923002288492383169855276376546684307755016460978176911856125522072117967527218316372356209134021956085209788660135776638201717692785325718581044476351559836643518340084818227734725329066213036539845770937868932212263340363241157144266155849041277719421079269576236146783913046927375053163265590763433891270348411051299263861841407703215955606129242996807632588502327558562371311807556280627744316965775564395092139056150401853208735546228653046148699094926752536555472414005059204142537269148274904184606799462498454051982761211104963831930658178181278647629129067381549133932699217809951933298674255955237381871181202047539226867344669730644094043956541037125010420535380471388763299466098615216656344597189688208042409153944356870590934430372189264638229533375645463954673083345817123488215036277925705542820567707481516560078459265837132906429418828157930189080763991866620802601946835614114667926027371342812886196059238685675430388429163396674829707802445711343914382584037310001546462460093616567274457348374122205544537977677882783430941972630584195028443031092797259376037668066655212767577752272506922690228318044665028109597896365623074660817930847973960977285950646176817528892083326175097963677888395729857324199646409608113166945090938423756051180350270956176108114816944808090463169408632329639577182791769798514262000635395030345413853027146503157420097187127327674215991789503879613413531140411788998958445545038324035263005755486428256193119918658031464871617066306343671192023597553897769828344097718296931855220581271337810073320523887119285584793772743212792945961474870227851053370796550856616379705918513740244924914840457533092853438764710342876670442341221165871226870713568028898778929865949769102791151736208631833887127248316423351258735515358660681016998069393162959064688031241798998349568953439642475676230431192660232127229027417945641147978646097656922078458386171470263693119306459876036326429559897926174600208061298784455934404168087454073430680753862193644240685088309119793703513453420428302836727899563038496536976606899649000078837213184570534359494260005565069385827232902645821888790993601661092269949059323512691977269366050818649147382489962175949427827909807760907391305172606030145504610632928495530832604133587855226885755298533170192942569781072399414252552384709964430723182775110094158863073370859367478348289630704452601914172790151611746201628226531707855562560134757860514681451443523317385468806102328634073471654404033574485611649422756132102974732146722369079742999844466591328313190795582957575794498913771522281358890495290990831923087329006153073046025920697238854592466717659112081863545606263797220286281509926985255499576122540764713141532053269602724172097342479546660446151973118157096362910280470960036289333442529965943406860891503097369874336130918088796934635883651023986413157421355718278168728399489832091517800357982051666405955948223423974655934810048225471121567572175172426997525523880716801804415806426830639106819123931816261854187179665800016676724403773730165340493311308693335722761047677025766168500257647689068715858061007522296293124246585344680488370916684741290161214793873139775916524407833314965381890786233957311717146661788370552322614790337813656460671837645709600207575628230031937866792308432393262079418876658618503922505443302856685642417123818924404612537738986410785720820478785135486207800551147352866745616602385734609270545534601222149772282460358735839591473949213953635579494491873573893244477432555270984059634380591143897425812050859489625296623242279702974301864613583610066491347555735952301371072931343663244663450014333034778993637079684449187110986589912419817827053036476764958974883061503328333090401046105821897104525954919044819410550853794359817303907220953997814985508636281974430631603673421517697406987514091384818521662618834977257995189838393920639193808112535857901121506224744576198452612863445086331845919513731637835650185330524937527614623881630569793680901363702763071461900053728527212954129214444821374500125409702558672987143793199408600576275088321502443678084088717782283597492050183474967332392122888567298168126376167283941324459704971413128744206201746246274595354604117747428775943535769460480716536280032681826194151189352748088905645859383676845677348325482812395764043552114033185191155872933371311408918646406286345086643541134665388693368632122673716038985975944515204602143068067457664643716670304328471264202935023261027508680213410752518844261507526823095114295670622272206415908815104306469744786850785920506099605130453375303863098924704346327682009051716504014920058766394068903197034819975123078392775828497593659912510445224244446547045121552294168692294905141361346117961237537659062340568143917220450055866277373001416954971582059919895888559056618650260287757947398200803951110539887681215003974168544027312611760826703008292415867603951225813511244784660460504555376030872771733168523509419870742980320073364013414856224367829274927349168533582739845621834648992534559525824953771196241897129057786805751552426266644005893651326775549024133825196207681201672854588728519615234694772850900246509760896084343243467419867294042117869274094246783974574233221444607469082497398829794591735071102250510519653435280530936580314642348943462929932448609866707840024873437268374072997797685235904515762028693690555183992696296307229771644832625300153409149091630392177314476171968539260728240301998745204804566960058781985794641705079528438579319824829259201592783504319322563523328361906649450046681930350917079904680575245856794115400443702401094420560514673727121530670067239447345050708778670934323604639815098523238285715577251341544220256653897920817647803531973564836165934954690953426098022746604483037025247076580137979346035157161387388003265387717648832190999932531765030700662419367467697905878211455083470191363145419053275928149269240895539279888672621711326512754849634651209059425595302649059486831810960047357560733585982671222182852928199134785907362479569340767260529304452903518055195728336298826894543959783447085382227075762510079964470480252025381233629977537063862244520284253555066545605827333425393793456194972192278883554671614510313864615992575645011184445421788971314183332282322820921161722322992581060513183279772010255936711997729101670091482582441453945658538551486852826207046424407171983776271511746864682537285182829561645090615747704998482984576288353560438449401797434942104501753402601921342036026435477062755239536213639449424052223387054377960829029002611094946925701004220636315058670261163013663346032615022896511953654136007344236402405996805298650734768427458878422171031687474990288236955635621496667454904318789056307772592540179964603849890020221702434332754749566954453256697623541510413344377410877594729242997280666116783811650065142948340595107451463185571882102930715666089534180619470117896674792844032782604609327848059043105738587660789858112973657987349682599819471464045694241406129513162948337808518864178418056772683859768581664565734889389990779734873701718956611402076634297360560319334327902252618174838348230136629728502252760176043053009039331907575960617598775549211309515498580970731855616509796076461631308930587708102233850707928099429599800193425049371383774466167396949662756876374070296944887161105192730083500181510107888907450482147069842173190209749238668442697466556748282498878772411392592447297879899413069690455433649940376309479249608004664845131980025243050193578258466811103167298668516267291825373462020561385802056864619687922544485422027349523676632039562523245564064101251785767766474739560934038615507206463672504038242319459494509670716613812674175929251671068713930253810987288061841797952156051968860315596362078126346680579001141388582545295300029624554410446797504135842005854264500298098337065578438929075379822926564503211114277384284980114347092293869590003705875573793698264180654334114023498668276534149666430753633689696901641524608764285761639045648534848495787136630652740487274908587488662504250576928470751176103850525208662305643376960466748783913675131148942200963487997490675850468146745290830713483935039598818784094747405696021013663863170759764580733397391278607519007012607628226286895106869082303321137528944624367708540235081135547176122615096004122941608492794553256323487355948737621733843290778310282020314588706989390102123964444833323897722266479967485923727858186226859875010994247624352736190912755670567168441266647883769662828681348373982633308476222668643539352145377257978766046429184417431387387717991123757667531502335219299343333541988804654579207041264814624031374611370269240912853121113875023658711237559383482810099934875530800480810722326932654240255794490253358250617236505446651873545163580001271030351426196405494191886861330524237670195397425453492033374112552755637937289861110717925989562861094360392756174603847150449865811085970429426101448193161914301463384894287476742975671365773381115071546768901176721659121458601852484395390160716574453181985953844292275338213563343973144249445373240508606013865085961073102877931220718259027654661847711212397576770979259999779307938633525350208034363057554736073520745974886761336655583518744989488293046878055802937499905697728840039839914113368992962120429414708460310093250991802321752939843486975796190068105377970548784218115529623658853415740048936682738756101214030187275847324610025734104769031684119808029970803163631483799800866615458166125365857939179878753886089344260600900460144424551332090817235540133629591727477059838127318905348196393962851670047579072506737834458806480893632553648708147418048923326580549746840772010290761749735851616935407463322484529643755179615123101141239381949215967257735239513407923233202200118993585222789287090796258878261425590523998759557556378212496430654003324099517145767337087085226206898215787569220521460701933010898474617462466735977800544608491362107843420944256928306706937622336643171694757222453258361518885054893574982993582007567121571424824048242444445665839043108503531782676209613679978518609923812670316757693221798086960153733182181519753479231474993578106173707547845677354435338461034445310024700240770128191203077600724373084550570459579252399872904769809389634283529887921134498283598767822653711893773641000525005030026311153466581223006957340550701527674120490679725700611527699306293303118261010548254470086939950288556552000794947980950015309036036152684097899208263581662757345595449287474297691361196838621059975035167763695201802442561887943326867809829008128845113430181342158719446063628808060401123997836441041472961177227155087068267255045967710180332802763134195698083921756367876800771194649758807686025013247024682757194662994468960193994329355300183228855347653285389893475549708596565289975971788841143138847248524500244465470034373335390887031653074210465517240106980851549932607471021486950684772484717322519914973971926586330434927661020313652441690953770467107295722538327544558688580099939661690105700974953949050236525111389893817246788894151221971735040184578436303800910280865059144562030660469570719402576836491674412313863962823095315733680802114397301036839521483367811163998343796632213544383172521088482854974847358137243884759878681375533639666620991127320130438154986369460864284394439541587918860030631210402263831673375067927904951547556397582144074495689290574044923421473869257904063350123595971250588147442652937252203542042028180400222642799291816091033914804070326717425279139589097670507301096235640272871656078304144161690191675388575983077635922950634986839170024331396573142778110695436075269591266376965165100277551681612699980245439973072328410516059641867434162887459058045100304685023796643165235977519161017125220013159534508585655226297481487173921166078418733749643697691039851620271595070032294760563080318748014671445990406233733788763601867896679623011900953544153257539303266556532856440513832154574725127966025739410305414832821661681331499084235475665996694258215139487732078349709123406818904098587595375405127654478293974752774002110182673937869063915567316089876217787184124626526621409104150356073380316168735290508490204391823166093697341797498197822788255507675667354966930330094421489140009741661626760308284633514944591453238870821196053936564400681492527287516249896768700745703716854899454379732650789956820667092111468888686474338076790107331920526164757981194054136895315128083330024152015799863015873300090765848614275948313402298196256856714977896623823667259186290467293333510565228379988659549335448084274785706507399587055781523580870417376083184297220612298125338298145417707547160493104179035399806184498543097513927760657228953662127160749459254020598149970236229692572752210052478075818142773358845474446110473800176518850793937571523335658982502647796732485821582804066060503662855812250472150966617943534341073265273046436890813502178895011162113885231990947161051737248472963651515059250613147163995021801339717886810904524518253397650787220967124786688777582873949778157059289002019658734114570244350424727410332378948041882918443923969381538119730056241155821309204167940258686721248000927961842285302559218666260219048910913844111009817609180389711915352766240976719052612732170218938969893018894898999902153126953099301876932385124863974006070740641838120900219501128900679805697943541147560782571830563378433505984917958164055852117923904161459586114520811885331492377792096843585681837851715065269636268066825233770313436983067752516997025214276066566524311002792970861092783689690526511565703480200766510997694772769903285594805903862018360940147781765545466506183884242656340398216411876132637547640732206501520607281957590642417656910212388140949585110524955031014782196524714452510567567380337680957101654964579135674381543077979902116440321875618313185487558358392599212506592309997345781001812097932232154515566969731315950172460538386646535339958907399989209467885617453061772098231495607926554594344435843855212950702333411151375485264612393590714207350849862593930829778412070150831392281861072357916227220091263671292397539273566654195129000998078345588266558945713580766088348139151104093767807941887479335361935476467667139086448160527303262283421066689985293300146463457654143761905909132673119337749010259691061656304541644808799099358546666684301565029476305525434542231956639860617163147200289056013369804744036239154161027071101680604986584068694646666504415916912046599454889260069374702581762983899451264259807568845758509645490369058359979081989822848780418592564569467771982717872422326973920899698519782051459901871965979493959326362646526110560271267952691434093231909526704355595621445638824878820776899698189131710329238993764024740750661203565486501881029432123736352012552695474883781166789101762565211795921224774420005266133499798441326072524086311321383755937258902134150757932332257111931496732243528749419142115693610556330676346729561346310389876028288284181681151298996588781022140634674322975623108728253948235073851144759294843579778964243282074874259684109204848948180147954907179608743809015852124665971080998327419572938448390214057269460449348039541033788912813894266945834806641588869485374480204254393649160880923240788048344389434448969651320999402725426023445528080122053506817754735446433668253937179914194695216990392085938219969061107461597396604248506820238445470445409008532678254749441016428699118013185404472163093482946193026139766146380949252730172536023470143677014761472240386277402418797409653010744636752892909094637841760662915261730161290137297923880020067052790515711840796046788802488962963245024381633998203939342853544402702717816409231226157926812488043621344562223906251854971103191487704905000625623269266103040366873206249610167666072890000540240488703660977657586552724875359760945113850311131239135959625946506074586921117949170367202470646077317499582419303066716913947609942772278849626034222360412498279281521850042452089334844086299225350220801516953843451540842568811090728156922216862108336500681755140013319305081189376754696399072414422787973624670799742416363271728946712656434924798091809339905257616953384489294082609186766302939175064531375521534982110379674196731921224568407592664263175864173330366888686154667083760404673036980287764833827099705045011764271368415526576034662025950007903522277216840182210690780722501233647957721645048517121557692881799740134205495805597113556759982467731418341299984792075176856767595340593070238076688175866095472874270310258619479552884861275342348037897998087566616290524000608358316130657603316333327203844986510829185169359978806417935901381616280941458768880443460987579649045587403959755059173643820591359181749851540382113435989453867676499287483369145553809891816222841902173707963897079497874165117721493901176824601382683439412585074438475487354444502624962317289735850841467945563300446879413610986313718408390709556342273887491630031095489314974910194587458373831804228698622390682634236886224749912380462228382033391866020318782217917234178554298337075012458906821028003604630904698197876077440500810221740559133216468550595178007389700474012804985929423158519946624633597147895389135086152890430936066505648608678107524105209165265280690142539743881433551791654594623465322945693051134516585281418777139319241155169504827817973643248225879215754249102033918840575289258366772903683347816732105261579748902390763281890855922464551065939341663157591205151242140924402100340209870457694529465702029559726836284904001893401292394666143653477475736531229283902745461050636381173627294699839564870064196204951850681286371905202378533800410406366864599569671734169787986889086783328078563704351974369268257898597969471503613202187304205330715891456050702257047911572996302205254898591749231247633194430691101297334061417732784422522071919986287974976300959587469158117134093619464066376131607339630142851838579425629232861643062032540425041227502009722670199613935879983594499840075392303224728831386541740985986351569558482686071649398064093531502445387595773129988521685949083682855546719049204185803930012639191888103524626160765120403095133844623871087304975642793058747396544597982765715049950968813102670375003256361271723831197283292047999851839864988647566807013188248991905954494059275973701306490204358694384683912027433042072755357921053536595283020109214866166825130638548036135179400114123622237065931794825626983171441305667157283796311632458226514517118366593771067762641179274928912297332191011103582602300223569476648872093158666094810812440076642397499811761430688391297236211069094252763065259880865581115672251863003095792137619372772638492638158852414425636325988303498047555249803826768760208813814550119570528068097138761961174544019082334151952569739778591584410765264479962327360056701942056079027458603639688705530218224461365898240040198595047175321231772722195196837795274140005727916038098659888145959147216956310929108069195895277466807659236658865470756395619870338839092121973482661129997938135379141296186764869656647344968247893400120410004942481058606284179038138796868348991919495800915699974527925227214234733936824380195952550652758749337632738121033188142366572487590108511596556948358934318834221759772963348937577341959006627689808925168858634728699003752691146074531800463707569295629045852034898556844862647428261469714380219521338085032342984781024535999994674467877412809515282776421700474485494155442237925472506235421813799676369437005411870985828270416713976430015537789126231464996329251456055834231324395452476517007891845837699866780260413622855438555839558092655888854774984374508590543098067835448808189339665368121827142331677511992158805922692255062430253774791575748053532415824321425543697915988481318913805801051722139677430363809985766988590076431057613646462386055468153860343300656330403056256747955592367656329701846759427755889640185187115842306281426500514746949842426208338102969171047701121825705378814577267316719135080432294614693080239925914038334690721567136724880912750526982645313222113819710514572228204990179193088346943523141885944649621789401664600674972810096700231203202144383278234180457778825430461176506527818180901744342078131557933185026918242471228278988940090133798933567132091412175091375007394975318635946837894796228337230198991437640270098570007337161648400672982607106867455413158019550169462731409717890375584988491899974171521319021686811928414572935497357293176972098579807294536715554286318788606350501248750385874981204614776275438510438857980191961910184181212066919887133746896570898643826958282604458753463055710954594197368519090842143465404905452201649651852777600516300515503211999511548917203381837798664472865012970878236236776538532259881860477338686529497131383791999351075064380607817064919849029282385431943974573226012361754839004574129564341578378258422628801214320506060411226772730233704183162309739494278706255700501045614127349679488748675321802379065777121888145520068418004144141648693256811856316426039861534581348860002816468292157095921103859401576600430622290642592222814403500219307448531196983663618805756148780089379559849250139108948590255778460072796208382649621597193366988178414026510971972506217698801444961884867316601368693171281201589816984493747997609725301080849454361781073807816492441883692504527948519494696331006248662982047096265890667107421527028102845401815285376062955245978930029568309902439381308765437117245986893905697207010003910185074870209253883962593030940895789986261610916255708470396176810830271684444176813468376373788775646235043486308116647593800750833051732237220714697194664898817236552982466437877656153122550151651985706698595927812987320922197190981172954938602674839152899366024080082804816764372657577182973719301115934520850513572702259501075206104407606509466984896599408232790161743279711264727834684848704212911709457335002700251564403936139547368470735134817506502170886962757255764070304351823494774070361699833703167209300198074320388740050030366615427169335917593888215246359998405632116168647821470478284703169452430340618155608022824185596462858534466350195036519390119271771498032363505357719358057115309108058242234827627272801309802637646198471835574627630502955021798103467300944313026250108945133805242428248162346169980409195832326691723587511061306961188558571109032739739609008850835714608698900544366333338109955915845427401444498756143268899366681859444809096723856588774074771351896772767514289509383601843544517491857844341105971374826656972470647628946104957992101688585929930509907103311290522128394987408932015376289781931127635113653169368772099020217943281022655886105521495601693701825951694352257726544386112620292963527472915555162668086891357870498659323752915322137026954713270907609651413430895292725917694757533199628657388182460427389426123131622527212274263808182347623598439707930073108047973553927680643975899313482999754019582155319211634942843402216514224384967173277437490743338369427542558701812521898295824722161326674403993901611103384404970283368687936538202919132901662526801604960764026301509796470620892736644391040067960952408030235369238262088183074842406549804488344367576850872432822452470463662071493732472716341104563527589834272112941992542559581970431565558607829417096995968328329596288548120171523256384927147190415427865410386094971664357810170841726590282666197599014165428792331876168435223254894361102775596839117513747221859606463401850769833767678079909418419227859052032746086026509300522362429226474192444457373604157699243856433903022131556454710195258964688076499072720677605103154403907125982672965528759137593335763305982096497606259409882096588180320285490588061460315882291555121409888958464326108233298842545430856822261152321635816472467418161087298615641507934030045962490891400691990949549228520663416081086612998149631652169943333552178727320727153379236463517239422079203898476774661468216305577199257443192457209213310021984487481548483349721009992918339850309818956687658253683226300866256512744896629487755644283891360598561610138304434161154562521656182711046529101698931809508289258704844556633823932103451281604786303359513381553193277816059709021986855621227823235924043607382551337873685310660750097239072172950535811863943412031786950949565302786521619846036358790491451416524401477054197200585452685661228808402907159406612868707904699548730821259319190683311226072111051141547171741808673326028069319991964510664646278500486230265415469643707038239647707076788706452595309930565172824945689558273706148877595815003365943878972346171848245128122651384381333818974123656179574830177054269277454291358478385438779469441226464350174230462197653564456267349947339817066971132545413468588627698253851871744217665824119217017077554979163038627385557094235526777898454169115918173472303853749714270886351851919271161080604722271175971078973694938703329749136872764931142315963455284144394313328071128031570410829861617038893756519396913590462994721205189248668425576606984895720001537032378841144393205816430111488555295075369761660145436556715329684953658921306567682193710797299587971727924043761555504744037149758964287519226802215319076709622035110526680454365453088265332957457058204131555147017463707205359211976190226453057128471920635124909134435664174787022646032437529499528474044600985399506323918032350124791249835902100272107075548681444990943373434955114760718202081829342890711962178449120535504340063408928774515742214673122460380163660382898939012100911197655180429900028316872473796385220346399275556255142755677539526664779260392569204118050859612589983887311193929293958345199551353107326855181808184300817372634021412406132991066173725968208411464819726106116897906528493623763242414181338692523920331562069833727785252506842665756826869173045624541327051103082286986439261304048945190721687938019060496463965528127408365846760837945058769267133058412125033936689240191501729500217198129880207751358629649247030139610506123813392340217509899830563083593045545842307550932171390751611406301922252913821954604826075979559140131231483041988513703962174285257346244600103733417300640546524518297395386724507173774167583164001297745803634723093224067514493211828539050573885379987600527829372540240420790608715432495259002720831996053486201547575510242368463292062967455981185745723105013968369886818708449855482624062120607160325763442691245416630785460076435752798035482359894266587351587164433368813435269165522346443117544190114196099321934777099824233537345005760444737928349912134892164534923864263518975320469758216203935964551489547029417923522004892230839667894864191014111560345070586876933719604108096192992607569835495059303944889962422025951706345323544797697753044523419088605737743598557646588140494246524305029790236715746147840533388421580387246848992532778580190141138551744059199263611811831445092415446587392820631166878629435391747908090490882788530973003047266311211614134648500286435158051827052351581633998440901659369174582194883626383074835490445087258526203286039468265651415507125988244614987712302647338348801534582212964740158209130290761294698157132451606199486082575526808197868559607486402822771911254360682560107399811272519928621887657869565400252877706945352878284172401229571959184203129335247954629098095966150367826650132361637472362871477092038304426650973852844171250417180394790463287344353642114269488868353694763548151526955374549055683451358037243286890485359565158972042455495730023152821016268955724186658857325614119793422362030429791040919891166665549313704347816231542728003588789318895516527937317606311743524692923870484575518482222708168740695063514510901632145883794725162426023004718344388951845518578051186939726448303539649617814183318497390045099210005723372827175512429659482734646916042902870055495250485805879946273367942657406337547899959820835950395087625692097851987904009466702089275497803620829556069124638392012126164822928488679135953454134139661616669884593523998567504224026534685138344141209446645920945698976994957111700708535322945270467451232689429893969968864437286646905750844366039048618629259095179602014360038048215963550855228034249678669314981843827766321788600839497292002045131405456561687027350400664091601938771324884610936354723244660148801209890907642719447324903923356437697469890926416293691694701501290236355620802385895526316735960533472302464185739686731524972703751885462624744303942906283768831748937198202450059090863855881782125390779299237999559505374534501811893261339702056374527096969414126405743254158256268124434169923310546814257029476654796437060566125364472242536318746338815834797279810734699058808122687399116856354564418400470484580945691738267987831779172211818929407696961399399544354559040276624877671191089957133252165595326382077537496310760548706079078703269372619574405709500534446203487416366968147094145692153003865252074358663007400101535695892894920982590494097286127403771759387912757147590270357915388396773860769776517908706123774526469283313566090021681771500847503327037460101657287416433848971374911882097883764462977548336676939697013296937468661415148511706771647764739325193453583474410508079227341009263207680885519779602159044577631346084721258014571117755736150335247376630725937976535682926715429810320562189692629664133819792489559003269260031492876527532740470068569497149935439208903087113948694256740889803071385960624715713874038854751363259690629645696969953482797029996879106330599339534177751974097549705002645370307567719260224019684233168747512717894253700036089740835584399623942511358316502949018355221547798569687102029986200527310523347382004634842805738668253097945773957776825048587309727027629551673088810660555655649364387381930651900835720204257531070442292875122239080384596372944608787673250327717164444135463254688857124131987566091808572772717047673383546197267782287730225196789859756704003587327546072893928704688637471633499167464416506451372553763265378606894658678971104601140491726919195670524404215324543766764841276703570656606398261121709810361073256458019807187862012101441210480532879789831442855820640361416946199689991751242333771561044011103763055766605188581036678650289314161108421933257038397373170038888360458999656746884872176662092385726454213196854555078990702796089323745635651383451209165877204230220411134847209712800478637705793145785373791458374984410731409552370921881870806563846795076863776097439643667396199299983435413100663190606777856159286542428006057078173946162450365027406398203581049136437876423668796068541237321691460841055580901657074353060692238301739684099214341182904579485766617807414979509414328749390646772059816976226128452550798855861447450614226612786125531183724616421721099602682442857930664961881343052029606916595669366817210795866276047776229399637846667072674879951621524117794075591712302925622392850749193258179703916131263470482067725512154763959531372180291549056567204801826625004063948425506235661457123715957349301027271908088110379680188781925760510505595180062568848381902062683944177095055217250013086253536243233524845593609786130735547304827104815628914392909147403288615035468865049301523538985127485725995191852298128833822496576679683011769437142407125401525337358321044285424557580350291982700398087148178124826106092906046300851036245674369604239567125973879143606082857555511329828798865475323235781356190217933308566842020153974832631939755940571553676474077717592479052761205088637049682670337330270328336694097684475765366839149047168606623332208603623607693669870055326422128263665589426591301368876769046377452443121708987195736702240263581899115936465071485652299588190909410483443780092090299275503171421329034557418852247485564889315813717512125185015086024472106857137399761625072310751951335383858267082043963919008846172828920831512792351930093748037271078846182160113294425785424294064016221360540564910451331493674977947463913372865900048545290533490264620096880429078569236529840247429817463401968791902312569913785404967461652050899825599907346703552388315545895358097172189639755008978557829465600361143082561045150866461274045861333715505529969372297419401018942563881184926389980656684145378530793455570504051715439878071085204395376096644146416643033727756853432387486651830412522526436022210870648815794143604867037967057255150573619971104711774305114112204183894633033263824829164797712446084388342087721704031153765468253190731034399193602211896354431918111330753835897097144626761908181399423145459253996964667085739678735978623554487357458339260444276221468397395713500325828939589523286876413729513041851696959132520380060981233625906172484899805899281580513141462453915625685959109299697033553334508556436425534526892609730561632756980547476136603648433372792007492262905619405892570308499856360999022164070195175829069431561320711438163386528177073848574964143157412665516349858793561003269413257810764657463516332443454522458825322171517128930047039813698657258690302645472892061355340546408488381327973255484230289230833197828512310607678771631747694569691260226437618341751003164927219693220655556229129275911199573596380231047673221512610734311677893599052366277940656613424158020831912583990978908229201065896502314318263705090868213143000302527135030113161023746951183746191362738078103783640127061493531872485651644345538967434269875871421990474364621736710262772199985300568059722799898568237656016909115630403608105200285973363680027744097719876436515700413490311614856063577594225763901088436552449276088234112106720077560738270123241652890175280770881231740829647870756713567738949489262649746364475132725469476901714157242729162748182709235567352507229220185254296514304061878660450169725671079275535202979083778589723211326562853282880842104989274323507070065389659853946925042906162189533818543309296592849058735881989609164330441364368799332355488908167268808033377877023388752772399434998488578887105480437813715349130253264325436058914871198180115317586912546083321683795990583077805602362817493763041676317419055186760168834665722344832971984374942694334967063710098951616539797193742068898302972431098991654737579822509655460151774362861657211159548860205385933256355589004480238375156419272258784868684070630726834985660741978491056492606471173677482452072266656340938173482340603915912479488122845482530811106078547940542109759857542556155143131206701216914731135577005491992891962353296426357314977741201737973078886071620135680837161666074635236261615546382800663999205087586684146745302629857085631616279262122048927482340730175606202659250317789309630238278851303102589764274200776455913842267920541690345909426103389989131063965458690382519733515233276641856504750609932444348224649551491257495965791124944629383169902896698599921661745861641927019872103306602400015715951159120009425639459316700301833612049763111897424129176353335660743751178200685707619307909255870180469712895341673897098377207010661398390072344265456819181948291789541333987073226700823252335102452412966060299039319468881388686108985958673449022511336481008553001053891019938015676943294117762247724122239202823535452816933003802251203229616717786627663945786398109193446205407973459679477676372072972141381838739742197445767618378494832801582988328596072757282666944426622199031401485506365105162495974478900749645163100002790056944593991329102212543085163463447672776938807154481478774728398433843879186283256059036916468316672934503026440617603662969076394129634608135708254008048866226488623138059516587270446514281144114680084833888748442915785492790526074263407593495480666839909933275520947422252229877124278098853359599405759590023281641668376113099748475784170503502465084253640735963082681864271876296728767628726916752452277253377749696417102698513959298508628438428859419953057836473207197452922658434381218408624006932718663126722652895114427500704529440008117393876010994812756874091594013407887472689887322284869605527703740576120702805097085292384347102172859165872751076388247168906004941512328622825659083514827863455931929813909338799948063082915798702471928589768938067893804160834655258180621447623554484306736763633862743973906460141540835835753446080643293434837101652217206955237139785116240630211180794858564541699573959196278138603178389158188024533791013679656484077958335172458959775232505692475633839887924047631680289962503927260416773985807156012468817720207540563374632308865964356190738380232422689883461031171692976873578994383666050528912259258404274806604754809921813421775707022486818770642729520013144433436864013312774204419859712051910580962070156183694728675497925750502146763184401072357333676067614896556373805298936365522097726688124157895673951374296342214407019523341960108587931598290792235351976793000325447329682397095915342362263070265287870050787844907239178460262088538428623693861762684112002279902863430263571663013325613207137717870366931883737095429383079030597534548172547690587753684475477108867105336673952230636928194548654085404865438863993293534396974465458074063406513704018758206646628185058771808347094787848791281413147371466402295663539680085181539624624497581317797783643112935038594190934687588155247861640720328071313830305088081184633029689186365832399855349494577434249748938867453651621466457342255111335486989628219037201540046531390762111687740977677684623110393527079150473082722221428326843478814305207661472288421661400690215620480949695707709211677644984072324805997257966829896104119680461284083563237110218600235781414386502480649295774901948726631567449485993532638565532698539064924321410716904718229342108770610922356660874024912480539171720147442441534924566489320192974365110858792331100000825998090815743458748206382953772727858495069143367523754281746912308215001639671354154064224070513119891331020866444506854889870513352149112062358546195945384002337262143411235891028604073762329848046803571878987418708787639738824329845464835306876835221432590717125591119482162208930406372171065643982037328069254671869168104447503492308609299449795837019404279884841208413839489604823695555526946170986473065203344784194171979155653859601158981056917375432813166539471649688777926038920791909912926428877518518071330150235263145659465838458415564988476568158777522549506493446778614260864983574907118116542230949507703846917288915948559052672916731518284957151731912690469712101462535706023278374045191153563154998264492276695706836345709953617698971981247049788413403306013168935061688249059192778965067198638109924699784964130566804641566536595666124473846686873103206315248704355574369716676119946048822594778370285590125807018513734098894059868366233861464149747380723758893695871498453448103317244788048529388268900631737903958055973175477298209215037981990283258749313335980391025838031655363293024199150939239871703113295281926958298419759323330601819382227017383743511489719961021757988962143715267336181975494871498499594694369805027286200356241970769726787507280653886208207983488469443871324393908910768117669182266400696339998023050338708272515971084807605419570676450337398064924757367212809995121791840801532653848457811093271003322693824745709693132371878451629010782594590593976214699432635726831439668771163150427151454068607959246825158388754783741795663575500222166590278280066642253105283323394549077390767685033574436185601355118293352411907892383404910165687317007380584961891976645917563242023209718734949951837510282141609506804246312803689738224022965257912795405548422749463318057700188551756537867353292969815582293254646143409133879945464635568849309311216890036734425352237909512135758016234246567993724552690241545437121981469761561603684653853106316397880958034866025335131031968528639034164895813178339877235725776539038718001671005448995184807629413143607789512622697971680474396433118552451650111618400280943457071990156106522563970872949073302071880092238397609230663915136549387939471178982393437119032719966237121346224410295232147924840080857667151212683046910104302815488365324067801999575362788003292318596769929759474478516518326496060810177344571492722300713425325046892870349643742620891160251868892784536470786119613645548399081677396548651952482824088559826651783640543644983801245187625798924586139900198635019047189947039252605472739489976911632089491013903745086360997732290819076094569737167468574807491224933816574789897202976311025679667625028659204472087870296414819154764732356241835165098088315109614409258330888995265715388749420075044223698411183954444248248616086553232972484579932122477645380808410516233194038377624817872437377588440321150859023406566277795275857234322497643379832886157822540020897687266694442559687281286836435229696741816614305524052707319611448257266441007860127485950358542495717203132800032789220446368095165790009960785269301880836348759752606515728205302520541107256078269717932190593053594958963326969719530291026964401562893652737939035346069993358770342929888515189033058614009994477578686899519100214192250569649628808645858358063801233574087519503797591942508302265251023452231501203782163410639947073213772925007809829910814903747311368652604877692937069278932967750970042809932221336047317376807822554814627375010643875799592238895337025404326083474017761308008148663272002303047597105462451264183991317908433363995415182068972487930048862123651010304012781190420664889675338258588610275864856984642865133940614041664752881627994858427834862308065172571574843033221206167503674955214994286250342009705535665824804119267393203578460621158368854918353375235878377243416530491790365234702399967720055570966867275404376577726807949919096140687674061966437832018934051945749605977880079138709760042554700588194719129745630124460071671620062127867523582549082265497379403147436855730322616693365043360708435325239834637979116728399670080474225978141878568069117025124792703922702988083161551983531647895780861749856899253397896663271529019143252043656088434905965832161659856894350077441965173511932848022939290010860939577583731463727003049468900521034314560663979581232694611968365102449203934465995986012663008082555312279976643957665125908587950044508856923295953331811559772171895884617540694803452885457500843184419114345210043637286420799233885069977082858573149837192031626875337705776852904621806968476253746710002937887107382566916739253335522703314224281527513350135866337374988402606864096382920215326802990917153684757272861060796362343272391888658657356208961764318826967504896354846477835083651323139003504956218244088131050929304447517477419161562855275917348664948114882884263710889866510028544225501479813750247217963596342478034479652103177348388144955186385861474671747445946430487925069782256799615638424121271800000962745553187624140093125775085620251543117310789046155984832276463218833631504838741127073172515008273358827388616626345873076481393303369950326284405071307172195916889184656486458701408504307390804020519214557261859149885694011011413925002681229904645517695306157720399492065374488235398611097490113680173593747281543301821477707224915370705878909004149228148081308088705061243529517301096866336543610529932182578707718925997538307332743903888436509889861028742499470211070334449939800464310935337293999296274806921490956664979934778555989358959963122640875521823665180302322130334370768431475314220690334362087760617030367719740751768552698022981613195945076349245801655368409563922658294479430792541651156010234109557681989051181136112159811675071096943343940236412716339676768295913517434542114692605535099160024230140842930041502348283247669591145987335233575269262653889716754475629495619665976296891616361123824328610423496211140153379083021170887888352775772421630424566119405756183573737984386400918004990201383849033837702516256596551851307557373405800521074486131073834666699329503740819685051415779604464721448003529320988584614240173274079274550211336838075448049440964410483442647103763758071512046168411076844342012180494463614188277270793409996555370469052137571497142916291979844148600256373965563519746815049197828960211269116961177169767265654735562465569210133852113409239092939726862235022875710398745881022988876872592505394694379009035379358160236524012226083208885408966206900508858966376347581560080850466516048608949048902277604725002076710791009765039761894985896393713001166907909801451441055791242070886047848990906904335926817457797228909791957693246657217898130448397345348937300601054137948625506827267757625535485894827439731865696557331438725725565049139562069169055717626455830217212201700947133005915283326727844189942199669622148543230081416498861988210951315473970198871401502629607912472402253247033024206982527311952649619596809319486264779527613531186534585725038985000708172539374809330396369548508014159673921943020764777365690124993889863932506824506141609894084336704318426899700213910529502031639351409297230120220451917770571356092778939957513419340268060115061460426903598424562129817891488579343029857856619729819259803116385845399359931371489854842118061886273207405766882983455578674923442864562070602512712751370712636204622697898697583838559221476473076683590240710594538242134241317650450523778240436604901718183225153740123038973246125781446897465991037269369113172214213057631567050718942260413931334068556709540272036340779618839306009217755830697180578325419408132706959888774332499840661529509499684908942003437109943233527428140234601678363852422576713748058191142486795428264401998153054133216534362204627073353064644259817635072501603035287158477307559949642438059674374100992409083936889473222464095588880021375773970234398013499533214831982859810189603355764549340987197241152306396624262608107985604903152674286231400019365292085956753211751420556257292937579041385159523742522023251522878460189966512096261006945857475767616713445238190175079252004998326521585624782394541788184470124462119608738159698189174709910934102881604552380265661704695882620329584421302561420058805787477895365151071205303595783845766832124970437690389190700823209309088864623202856649418878281423388908550736466555564973884690145621136351770106843049445939568550979738340626651914500928522541488266725683476884533361608190823909194851843965854149059126978808823356635564998163276103158848624556976524327065223930868061213126831657858439930881513030664766946457701641474815725745280137839869398148612736296938934502430111978678276033565280855673935040927431927514653672026529637777325437705734955475685730269567812861690771767779087794754187455802513587926083974704612216047874621829835452128863706325492589654015514588413640459997101311583362656599481273467685172206470216632754955298934510391954632990488342377649433210851315028223033297550197870110928486032123915331153797316815821050105099865651541427173752051515329716829514598665108869891368878138976369940953539096088737863482963155863946908838796947470824439688389164535168088954205686571110150272697465460206914060114972733772954899177432805819577623904058488490677226186629571315124958626082589471649795437758102489213964321759891953992858344326419744553174187822231297099903781729555476892049456164766234671843088976764748177013540234476878316458455051713066683057265395323949010275373351062780519395215096317963942325970991834481436541113379782765338848024404010230249366652214682684649945595130547052625590632767107176217493789285514964075518162796150727082529166952864124837799447060696284765740922646862042443165028695299309691259264951589530843772861577207443260273590479020274009521723529904640386707749268553838439404824942502086092068360676128948359142032545616675082717030492979386308624291351033146807432874787919200694867845694980661251134542888526460180797218278552706089689150276106025168312976698566824710711147893391367782709074603110513709949933147916143750662168494426332876015937742816436993560545388297775091642123959654489723057023413686272211166765371888178209306258472762847556185377890155571655996081138453241976894682965931526113485513512369242555671609330853890770182596567457722038751915400616655722065397057431806009846573227253512709771077379265344209236247758251801839260062558477838308495989318116138278135857648900894567422325259046756604370024841241764306061204368841655298844234749367049786649409428750837875366577272618394167006325400975073844440948622477014602643667304678271062345642846989319704883232800031138321552423755269772932720937798924200111293537077919797938948601782182391088342880939027235708434041061673922506916530843562315929144972961194404648041589928300379054646833252786749975519601883097405465500793616349769511388781661394081015631677724910882547361869453774460722504713116889555861120814258961509234759940385206865700985763264576116643089143829489431388683314737248218197123321352641755753281335768250128220312213828021619909990425508063481177262916714756071133362268634423494249867528227078599381134180497707512742577428830484323263285121977144475343640366008855954461251774247649874703525366075899941063351346629226386739864098822783562458576699737099312556900655363077134879615284122545652477346216788174006198675084934534480435655965775881341925180550173244246094459887771457853087747568479640662479489639635482923587724257321808567975305593145756979053201570609035128381188815507823191598873744521390232485295162254988395179329728887686302335415173221028964399404037101982571971924284985835027914057315662827026944424303286916865671357880108674566807638615665830518016652434083034693389720538092212761133906852041918069492690791464856011653559522979222457541007284262975873802618273330262710841085898202992772647483517010509639491109325912265853157261452987732020929173025434452135647382442638589808942633037958208324582559007875251938372833031894329887786991508061260680669767766103821375320766657202722015313113965651953123280068784430836398940992701895384372008409124273744813547426885863080643684386868789476575202921946502993152942716009049228633671560545961195793822380843958851850842754246633185787950809099383545478473038798429867649802347848721238047388272650361661262707855646772306978215670678583538899869695158770728302137268191052626352272865923007709422437325793442018341040962671199173125415741353322527899078414785548687789803123979540100994903130904971330087420942076142853856587847890598247251690938899859599488569371622331790342086900946503178560662577306259013595949304059336344220981620056033162266396671950485740480050264214187631061019255227139959362778009765403198493671583810310851593195744617744996150546126797288425507184235469809825511358815467757315447203781575943756180049438563517684826520983434983500211332529649453850020231673561713797773994914346627212532868165482427774987243599940889978886516391678925722928524085661745997221421464754972097878528930961309428010068178403974815383366423821137295325836124783672580472133215286734135257283534953034600073901542013431653448019323271974068851001509703536609645524689650862367253484465032135773784131660831951231562001653174221063940371459515149250677884741045960317294571278318655605786133940220674201352532437627600574746033943990251841873285006506609573643001822615789232077386786146836287526548477538295472606944112202313899331962228486901080471928959441854823502023695087358559326092889444991851458601166635683123347199794954617402657182430495304577987618645781897537171281910945742519733148216511832022009298908384689941812518445706482385046314335841859518518297264889416300153820990544543681575658310313303224425226733763565270760630660990778828394642113678147343157321706453273840988130672129859521896759058705714006518816912612704750993320649075939853330278455357692781213183212610762655787810249267202261532638265178300230582974290704739242950569055857549646315440407881273647685465828127099947833716986909766320493091589032161669685756581896053390709062018051745696618928910070029630766122323330920222485236207452030185194244128910356292893085651843678287490769315027460085844119008332454606826161023630780832367597188317579132028562514184803394837220166109217190249128768447832892505949933723164553845102299569239581384001887746111839872916846599928301080715753453109597339464999790099121004119792645909312932103619639816581998587997425643076951983101391668340286473924821645281649299738814175772159352097240716448887505424533782460420414267892563824937723179751523056303946870766451025740991002563734881668147262116236425137521822064899907059882104382510057182622916264422295144329981740692283865640531789782590439886624621214055941754235301175998203177787374414480926192034418577798514861984666450054753345840943488955698277122908594847323566447691052561201110065216457946745137655553434061854079574049196273962416245451404121047827410931422625922858622624167703110754620074816860178664113605861864791323980659248717136502049004720037117098017071160158965009776869285187527139057627490098110689344598259101927835052502971373894900994811209014325104106198737573045012411615892332628145956571745607755868532907258082794083720281922881100624364404656586320754188984898336851872284581469988994757554542780143064765027326211842353325491502135837829821806397534422754102539802479433812140903980338251405750889287200320682818138186337884543145287384511588823453765932543201294562263410438834966727259965537178237792819454165255400618113817231564043150985359636798405449865805918474357772694671866895648005015815534964598497352708611478590559100533711748270105456895847892515867949509918453522409633067240326127008771756404071230965873880079211955759713801338081048753005312546380443178855288922518051965935652425618908556689462269683518830387336570983075614537356359982962036775776775788465227611541042693361973021568929919764368511210325965584963802933323645107058197853319207598450156594893000308736462072411269642551938165425894331918228162563402740712533030170800472279544729401939936616054152221349262369643197383552516761054698092511217115486842351116740215394506576933818919523555537435981640002164994035304309377057436598885553561320365684883775583237095945709860865386800457258250416473854132360848585714856487813004795309658412546670760702604412782352563008712569476777430286844073675914486337547170111797994199332147319103321664699130822585226429900973868383771359407762864269053761805475847652763263113176581470547797672042326407168571374677888840513122351895989376073510358858193216492378247668862737774394412733059206493357372865604146858576726940111751304037692270971524734335909788951597398837344725246223998609706238902667276567915409777700017005335237248098633685440704538102532517350864680611189593047913909867457578032327255264897048951837340103404076339823678622489865121739610923268008685390180515288519571860325763025321652954871765991053399281568195251221572331743273769650027896280886139535337156059838646095309971640057302576740835078740582547169442555916736846562653086414170991659115363813668831351709914831225173874956787152213849265683481388938759151757752302925215951490378537078427495516004166942598706557177818939523746929158522332884776098417644030825876810611369885334968364114133774328673013366081504395438602791074728991198615761375130554852969087321478358999471142175557836560513610326722781065437017639833832677748815971530594422495075795396308621925155488387620885033716118593292320349820552829300387760383059020071452778490875747100820489313381181838621085580409665716855775315125594789391643945734504942131029808620500898930348956772573400364958645956140228332197659046730648854366094943451457843363728862071430007048946462884745511731209388372743570884321525058021051176682106282707949188593928556264099325733893747954531577043018650043369498391797494195270417724413062498061239832242941443066139510508741824817389233362766677134705247223134268699757456666744781984129287291862335769390785359576311194212658097263383963265918290966045760187914353158312374578443472941465328586289036729893514241269219760109720033390794987635971348801706347629632943336711957870965754397782687215591496704880298487962713605600832737362609695833124481499467397750576562836928385655805305606950919149502287343267895730269264014215299743413728563419143509407272298653924208668396847402647141827688737274089411711924713096147840475348987089694377680066751732190639959572436137690504793923696105880549500816705837481877294338068027944073689974914529757480326277008252240000084742924038795762598737718866645677683325297768653036520613752180345837923621392395109307372884843949840405632622207065253332376114377739401224889916309696027210940453861775766344680418272447278732299576439000772868934897000230446888760712488382233955158921445124106114913043285782420413515369014825560002583004265670209628813468140814872196071633490380746513821698371116192078902827708377780819832283074585067762593039786313461767194236530001971312735166990428129282716530408862957275553385561375100150133329575602894247900279404435217868779702765161130818561293396781270800433796133286792103763066805470202573479695156133717844869993746105628170785612593095491823670985795763777291518147823299451960596281793839688419462816954207501918381962558463720998544117079291239345747337527342686584624522972369083862711447013011821979785238802777429389874730365465372437522305571947268062792727225319466099864429840050950998283795144951933745258208845836219565810860091394559271011536934057189633992815095125353503914502274721707296065535910975255024658496753112753475247912057611851260629696269891059210726889917515053259755052463810262296212202746274793200282022526386119853387153841693263117656912145935321479927378891949771186579460231273419792209596875430181502903786898868303165372334899282662662294336903520581768902140588917010908765566721374408191327420953569998397237418448120702928368163481360671864996230554828061132741946333417610699554926617494181939006334491539475453655497638846999018052925253861852005697421713933827579694127958693741018741695662844377128537979544127842002259513647029672095774155343746735480443076394174484301926509201159863576948504869908277519886802358481694196843924738969810763990039048642397243486155715640058875809360169048377049720345316005051222045267105750083614471156014200734507946767564295035621389153684647670290645552770900542025110420813195384394381826266904197492445210231672669831457933105093911895327834950289465273340083201984958723989084250767407398836364195036101655277741663822177998074794654956627484662316089032095372865546151798994661920054658178743491208453741587094797775816581913823720970303658622973575996377518778567160667207448227864971457178385755659243930344525641884472897514223576687837042782379298653279075024751564364290678548594542645436348567727905754623818573187662959596853739047626684903301465428808964593786760802963235741691477097652675583708194724320307543398476182173713412274203150721653304063375895729764340045663830239072654539614386934510186461509751509002264564353857832867756399289291832197139389826251940297201995140558505549109665426724365768867251425416768417782223101998482508129278437382576255002057640357917537209168916597535604674022095481318834475686003431409344389902268210279956242271525217080436981788267411999588908671904908238726170259436127766127594573142160266426406349531460886443439790620669896694441026329617689219293309852770618774994751840164786517175549933063269520795978047309600775850751835171639686602198491820698679395529414726401756414180461985230451213013980846326942876278037821599564104125042084638943052836870096000353939572354680171077946805044128622478397215093486517788484962270167410194964211745324995800342169323065682040130932874050585522534148586377094614644466957139150127178596705026821264716161652849956592464032669219736596944585816870740299831131189022323336851716143201995522257768252241185286277664831258990377285645629691026840994868981481815711296516334419349463467784659076415681937644194748694577073733834394024519824116304063659544731371945558844113475422690007180289666647076409685530037792020792762845323960175259993531445847934569328195059940120950378751101465354308478039842636552558338334879382236791649210328783602605074401132150922744933645509369158361562353063154034661015139908940645500499557755685951129911575883546649011392962064779011751779690017737060004693063233836683376998328010435537646718225923063611928212048222200064841854780723183802409266372954499086374532943599771781474742466617132412705339710263308602474644656468713224602848973243115769036456848652769323780288231106262511338389471961192199062382583425626618597363852833591089414433632989707303476209005895817910429124435866011913341306434136057116461377726351658402253716087027580605791346506699197386152329842181907216059542912492140025854177960610797444829639968869481812213004800900123748058227976825119611437162629048598176233490091237239128113809379189501332475188204546507752310409466578883142201605838521792361216465082949350700579282891872184707593937000118797691961763699214112575928248769949689420237456678245295419081876823135350595594362659638278725779567574684848766619253729696584626290198137003408653484540057358920755728381763819599729951962451583589150749238069254810188820969778879975452024818705411287052776773103645993912559729899028304292502079754861799749363886650967835211113959269112965085031469720927334440818736007271104235725922029464208237429411864596373566957513373223047146547322424064228218635472262276625598603146061880210389858061811697725401696852642756258957644305801383198982411667165324526672953583431460793126125841869451356328377743700037991880222310203069678549731682072593527740332286749672077055783192884634504181818134923720767094518959353891385598607549284603769866923690913225084245423519963959338862438666832398424661629173188331784748795870375399043887731576659989498399070652723821320539308987463597710455721265788275968144225540260819737606202920917037930955358906272793845046027251252292254079067903190981954262787375868265433403585308513768731859635920604195212662257456401176675926996975621350341317129286941630797558581635228072107245621275160780770515359753955947607738447421253013161586534366763518168251534565502452812919205199994315649053301593385779456404441969887705575209794439347112141748597949254940521104187901700539262191972989732809278871493608697216263213359655789254847314198558796208391084864544245200571701147251258833301595476524535837319259794094081525697808477231619592833341156947271157769766697537438637705017296254385284084714199963829197769903740961437342498601117902453933609408008722070420420873108363106983998946072039207934795161705355782652224156681004673492384595791706251084313545634098238157396594458517079695148077791254895003000786643107509741414139095289540812283881502473194284772043252200458834890778641266394501468146654524468690271183929489715193568455521420817670315673113200739544127350667335749219873204220110576268213366690603389534633597054413089554377635483154224248003970089221459386185189032228141797070567762961528947537466405482254991454031074003328403173544431732986068149907085914157652628441356254224035471517534825509622158413597831451459809605531374740608741124783580366229792690637803910604195118918427021433401408202108382719207615188127915628638211160147286415799003950492701673952542445363982883176097358790907843674576400569046289226801668282830992094245673151700804361779827443483667882014218441615144004139266436136561954663151406182236326887397517352072351655757218292771144233006871473241979590726632818913119073950093497512941390525125175195376921503058568186604150871828822661260977056730471538258867615021922459924647081218337429889599633773149116242606595581360842911740070165326954213366067903842713635282549507493656348928092453318896017264260126666147972457608316589413992697672679221857725696868137549703368429530540266407386309128013963862457417357224363752667225893477773722238925831324753761410449265937851597739604959749280500068443820251281164290459687876096486599069530188836058199263089005312393440420356366776465331812500743387568932431844410093059503538591893955378306276908484097776847464537586062445131582170515731582539506405816565380094551441138322585422761112772601275738350513272246953414384201649155195261971017860422272698958661923686284126318121950145506913727022369013973209423526156777746217206367081811049367302683792356676098699936612076903763563088416678458995319526074064292665467793785834938705199548537328981580605153356941383191095710396003521071781194892525463511214412208933127957891088274822774127685619707326047607991714487578852805179273044764529822067779387234838327242832272236640778561708423284672873105779756645957205950356300049590112521101552229080514932771272968854007022245767509300572526077783187429899150824553373361655957010494907185824329979431044481956727398014679606833721444182500712193991848863188118365694543524221993296848452713622899472597467203333743734748350028452483261812924432861266941128815013673911825465068644221921913541778927068271265258910961593711281223800978160954434636675087682822858459451200789868341429179119249173178676092020444963706781552569971454967474778365033531691824422744332703057021070951921133873477986773824611345923410165286228301751409109938676451438028110979943788565387932662859309257369885662750578505161588341825390207523499209752603685985905137644476174654991501844364377280746150238450850310308332370000286376204366829978689025337931402252644418298601073594132599261376037231692280958834079195973054943999172161705895849065969287174255558569959932146838901707770652178602841212197783455459860818656389671348996810159736221805467396553818117583659322587931029682691721771951777459406986086282057943639050794302287606531369766359161697113715323424187170156837132537209902315740605793211880717148407443789089311414085619576699858698142205735226343626937043761229223019370024407044407045374813624041788020872085709934136263405209157406215054850591294794959938732501636983240836009421012734570831551977532622615025220417584860890327025293750632907099000458492845260188074582021095335577871104585964826360774545359037571892803473049136709358347882552744820772118751744410993109649959665805079658707462580034288328798384951043256729527118618201040712991934178770732923730803229286597496980846152224292079065206367929217040651107935473852017921747405491380243438072768674438095346175409510489602173362754966851629662471644912670117885092804006544779602672405465247738877585691003608707541128237357661455160698028583925033176782638493317605653254314708697334491335364261627492836334418165738878600940131332899829598774705038401552164263394972376520849326551051097330706015769183179742340406604376448224551547977632397095736387782272279741065537525457406060147753003857432846899152560128759720230886379838187719041882804023514136061105221562174103381886052074303068290405036392440844187167526962176373891404245224616363202473322042373802095878225963067349813832063055082607041633543936586533239454787535437866885892116192575180376719236553570978759973244755456110206197666050974982141238322571281938751535824325243549734424761721126776712525988085857045237423252375249001568253462454747176262773023321567484454212346875260113121018910627512232512884979578581109488259635853962819400979866013396599413525376851716956736429754046720127689868162300181906755485748555985661659471522401160476789050058758295695085865743009759864519935620532606949634650022293854661374823194124387866818870692788534314702287421998657613453403943034201660895838427402880884706561662601666687604860994242052441218712647904694554709315069896017119536204698693977132320647450641087632512774978167134731971267184531966856392988478143884996612084798313301540165096770592201793028309332136975945474635074883261091481344211659729936030707645455520055033356759782996832992059847501713957241719954036844127714191922058364691836865406757046201818545773569047065894130541269501007988331646305796813187831598779374583476286080420896218752829586964421563895684518564986059258794463303246136560139034719023481251054888915268183192644742896217931588624046755262489570262272278265500264354657167949065970766758262216957409505745234871505109473168420086214568099963099459492391749462858766954187735948276074313111883354194540816341168156729641535939486336720291168437144555746645901276521912190497127924578762579898636974146431604926772448140591076996697965121717691252428789231017684818218840468379850073444953226619660732078999476948661012518148289380560867292309526262005679453426204133589821385798393726144906211885578875806095025563047078475524165396578119051074770146871059531758691525904363259511584739808787079265688976518223555398712332518295962496631063916826967532146300853870640099639480899531663461772011030084876651930342728886099637703507692965707843153127912158414810593717782451630955676532838816748606179094023143887844251682884084124396270902431690580033761359188306913238386881740774878478390085633308564756129804909230553198132450427085778888311776740464708721730455437478837203068814526486712771492147883903208970772092390363876402533368191724718179919020841403292398783431468195989242867735669295138000921875878681671091972261922405229572857291676399034019885516709226237709419171795961083009808114654297750954601513783191098968068444089862424626821648724565105770243227964173128615859897650112811747086011399178004627317429059820926719756328584302858109649306970347726475248449966756808310305225582383052995151142431944782732336327693674972375877408415878490258497687807827866015439430854463537123228809077898666392147168038850052504959679963100028494703695379389241408081961502545228288585633431456660034316792529432734595900849004152828225784280761367319345486047313062284314109148623480479033723177864605756959755070688362067704309002417262929893659125588595345956804576331920884084684577702818686185115721807370369392203158063348194618551993937222214480230526796753320136594541169747421789829612269846032879841321845519168643523773755158044454885230731810484161660730723399894519770792931697986078776519287780389779069123455221145804889221089949519315757162215448030604650568248639894626223350922579338105691970310303006396781193574645936782418103389287551499690644644853864014093347978229490866204887568854341650868109883317101342549901976386014024302194237079677902928347010415261506109453414261157741846555262939192565589066539107821137644735270213662765879709433172437095695902560728186559494779630673860508682299348616804363595587223408014259717188240169128322855892883070060827001292916223894635401831913508005697205525698006046652270249852548230633670070382648772769696696883891778928594050707322194258495860036777357972145672369261637108741439069760775418795235116250129301568337378155638170778834416563200780870631403589759298713098990401919524492082676659214589763199377022523865807923280517278559297481141935787491920644358985068118556279891100083236306440725921093142355016217992092227944819365068239147435416340372143418059905897552776975610773407195742889725649245773947645697919185347408580920642252599984902115308155641256406904986654699388053931596341281589956113050838503162538362408762028668933068098403057880815355804598872114497880519793492242461591601088672727381464013416067424643184358264813464194285903786975605525860671247746095637666265908841253206735611789988228543068276704238026284345383490515284465793834202193938346190932131399228384726097714133226116541553024369117344692667798596894422294890399507592963569065564769221228493197032777413998938056841031617420311233585925072594817828242091109796403109415983294532320627999338725750472161351928372429327790998799664018267931394038702207249011671111748459281062757993681637597385359855542465952198890878265467832830030326515307770249255091311661038955771794518251124204372224456723758183876810684583073005644419162712498953999105293958664938071139290400134106177565891949152751783729709903483328056661640481979407907157445210460698439134050266962464494837046442962481639880748242806523427196984637470916374487453402450131435418908714809888281898384064008818024787368190545000769903410148931477442774501466326681334015734527042059582935778770287963427521743175496064628119923831259242521476490396831624805007463535066661540246971162230196118729470378288822790282386280931521825343416168457041178624466455268710532802356649456100394987536115743007105392770113433550779881344506972778730987396230797798918603837312354087923117771090210248733560579105245980814510218775941705166355282406570768538876602713373463224734876117908706725144705636145168750793837335498004868618143275096463622598733065472997121363712116202073799094335108968626064078290159070614174916636628318739907131518481927458090354111864356743289896903421793936277995560491298591640615460734418857671842868731787583343494526025352198058307956246484751080299088120918287365868707738336630353598386051683326575333296113149801901508036870173496646733047511414243363324954813767403719525258374347017317518810096820882053406048686330835886544239028882473128208720436232005172091513766764977985082543730617125935995808879460987963290815982225691007070880063508413831903743814758039952044093941650078498659736179993575924640361404900256583961435926279597381719287742088024871250742441822404193519384535029214070890865633916543990018525924062784478980281510621597454195312949277058815971563626075413605913792245384298861120049186145981110979271400642329593972038122238632291304501548353795944410370446820699440631562310832268232560051046725412136220540258971230898308568800446836879308083837419049688312020960589175968319548566656315561069309078714808210086805815211337587982048222334917331922490596417885860919539658456026137128951226969787602662234693170096402234422093931203481672296242392613729632947535517044096517419599724859370711256515224169796200403370001375497822447428254739806753953845237030862250213693447805327721432349719072295428242158282387772221145210585385039191286197590707730757415936490302332226578508967208085471172460368939316731647417371874172185128886822599514226483142596568252508003989465612128708025465775793318179332116956264974810121626764620489851895721415644653721678419155010631007601340922592804820671639836361986950856053992608798832357203709062651182439865005983904264078368255680799422328139608837411112786884241583095571553333001780956783140953782394509972981118738184645547893363556117496680288683862222645972465891859463267817949763657912075381354083651204455733782398495126925462579191124136306707379466317069320676375622857218812527032240733124330629831711290221780986895177134742254276199938211765567782267619793027261324949584120994892054386009577063064966365879560419200556468752394486032369393913246292112429675989753811457842110348146052377111048904784926157789587621116709472613280635839958639478301076287487584624437741551244285198608924616433846035687341144526710531895908139644646964132543636105112547086155945328789261919297935014775362925564332764106188713155348355199892013396524552052231188143768080065097628103827200469907759990142848521842731639667070269984345478403303848037382143254800781407497920110324775074981236930023716050959654000318732580054691636743864269974918265563861724905197138693182656535749937074579167935418116512405726448352344164848913371204903105078918458433407485337737923153574560887409498106878263534594934182896543720131385187147836963094742026549163164139771408042357986624254067411023245543321955071749144659577705606871004846553367018832201911376363449528903961691561805689993792858352623307134078191037776502225549337496710488142496489345331252540710964095014418706392029089042378247824173635054104004012423144998908173919497814037523864725994662677847917620592294137361673600337660656434650642885604352569565992397157684169312840205296093308469698089504451945553508609682516512499885567710636169948773557215898886281210805607974823442955535174646722050064326271738374905403702440901896826344228490751449237253315828974609655075683555550376540815259741470234460114718373986687625770493892445429180986147708691363866684354854942801688423710575396308435198567543747541800745930486099248776030515542239461106387288283817588603778093752429825106318011494742701343665629500811859545153289229114125277402105055553076337591612139623744002677877726524678233590142256595550516230070041445218545830810743532656227327834688785497708980353316199535439828906071640752064773189503454785534844606637007950306590795728511638549130634182572553221773343897515487206755243385468275015381872226768602312940332957751855175498011679221742566074497307671078285927185536434238741836312106685110077523629805500954931362296211084752983227366783679572031335937296545063053248746421748381198929100640113683020048731769270924747612365671231707218298623602576009373818339663053683147032816722974913652740069507018704137013886338680809228116915507001882491239087277562537820912589878638403469664534755154928905321161467462642473064978990885206535711130340627009536594845851363653731925193051089630429678731134191707193144974765097973868460604511951526568719451823320197917693780650893625157764690641160442752824385236217502104370518507493304046370901059539000569153238707030339240878670017423363436797239533127877639582533722343530476156907902147926507475594810915340289973946760336889900858838730758174373081760042215819706363216752224606070356328261375300539865818360377769441303945511980697230573652666203023916911073437135012964911562672688564465144637957975648692941594510134020599787713338343486766203497364378404000871354980496437007247577100533176401450743082696085773439774374991040703493846755371228212959340329838778410404233066344264727607045534710002814341863187329380409698972926187068245960401796702297926996111512540686278293190063716165735281243043213548810553286360149262197262322087729334360255590044407419682279996381887151404607081407091854571097234542702083850440658931820098401281743618104504106453962980192089889627723807205831327184579253456118321072530181244494427341603027830152371047459189510424315763063865591432412972862457884658250673060362757718379314480246739610909206877915633842088030864998879014332945445142411907188331134041539525775989822822945478978184016362781624599977372284732954382400137731832533931467266750565163320921321068158889758259110016246913967766094940510373282103457250993361745899767559054702718208199522013001066560438980300316544334225521898430459500838566414623358381001649957478487177023783056975195078095982149664932805876247854399896078883018927928882428023789081927899766427160896002316955865586713932248271432917696082600540135435992746205540148859951459480401356199998614084493990581235701118492638060666556762615834053978437497990937848951339467665250713557086478024029471065886653995490238029979914901933304372620492514608329366816715896482103570629036036354055218464979898391808096299768539830506160156044235396886331928227275051306773690714706001054987695328551725813396983657343247823967995814510522373610432434739191256585087556114869843412297351559855781759502865571803709864394228211556241529581345263218048438367540425092120211693553394056107714997135544300149169397260664978817717805680167463243807762190337592799142293514160405757072525453802703263679659371320035316984265093679184845295790984126792490727210203491157204890005200835538652837432186681418255300770321565354556077067352298812138270347058637988236079684809029373132256910604715732396656964173932325435122615233715204612280923338358055646057366712112062442562691924373114595133983636442817708922972929656984375426604142800356956288925126334303179832854337809457852080068879958386642115958373513324263666138604740096787344930453834339404193957835285895659992175389167922915683430891141959941711675155666148147584656715203028240008134845447284963076269871444905792033285826992278014389226186805837333798160440962558160816713078044688847805981307074841608869823897664120730475791040029783638424713748005317257488596109544945331646666225769002691520703524697622774732466610429481038042658401103432730329440621996352629816931088980515383941331540706370048159063112412663911813541910539206653001065504365102274018473209294497593274531137305760894336537341203402561021532017132311392772184696956277316096965360375840250833682820019901287966568226203923173037529648483463179492655958902953516298762546457184708626879448655671752730675141275922800208799627296121360548541222838028188806819969145404342730426645986446854530532991120186997795544174583744657606188829428287559518808128066321712269604696368975509970052038835342282298539866029832017327925139334705420197338145293341800754241328863509091040842637148846218221471749628382590412855742352870809073851043715116495381579167706470951090110503159952478955379898077264681137269600371826312359748351573794658611287007414814176913030586431286615522787007773830040257224026921156018292345557761628233241314226308031096422726619041613121741767369109020940607697881399879910014023220353639976958237547485119220193647970134415294696102304079941262566879541518794262740168288328153545174924906671793276980803737315723166739329906138260504745870092498174572955480823576503131381503558441112495595504778727698287627417330816575399860098849317986155844076686596367118695167361325846318491132921093323746567564222753370404709984050603940665344711426418443274365436746581567686833438589782667857942652660613972302018306029866284458674344951880875365332026223754391710827145205322100997033287164120972350627623456873122827203552918232690285291833857996165875520660537951004739352594454054712373447459821236757724480553144363049361829260470962896996980807968283089524921166477554438750372740329469346435328064897758704671230960918078210090883857532230770196291900170523407359067362186023668618207116081852841828291788733746732917383041082430611438600692689854622672475143822765100489815945392885142105087091527653960093277063694293674172143400092983567352756620391235418542159121575579444090439800161184896320259945402312362626413195460479381611358077429770005478406407288405615175052186722623702108197492704862916442983639624060209669546236903684947732515853981032251781385489803263225499476369531000124588240549134698373487364254301416865773878055332087031169282244222588302566315761470524329886126075953910626689361168522953874455440575425826576918835245555691141858176636062576867844552289360810692487983402943599912042300499107563084729319052338720716920290773426994421056876304405826794273473527377488655816893796970974452316266570139418005171037470703309833440288397358304229073836855989497019262309520023488983857420224893829652292785772037888148385683457950823273054704644234734163714720110763240574711423771057690758777321926882862687766256914482978523459685114317510768544723308833815174296991783425172966611261591024722735692475166793830655031920355332084622759956218053317959518425494635103344072008476007043716316428158627651485251034044676193894316704147100275674322535449873691115151572097083080579815006046917494766254744546797583062971108468451679855428719957373535061813194230542777980798859878327121510410589867028875759576283672108125778339214847041741113616869743570613986896773017413747362610473728489340571964636703074059183405512872681712114182887958511487358375795878174141794621319916147807701656448440271182221883311811752018870083347526480390227536695606794874925666288773413640514206911661934372785487591741506396123523207911324127283545203941972511145199246582267499640707510375224204870105659765711157255538972543903567074316610160975205348529899798740971350853811192359644325850380070693686566640294722919649299684363422989793811916809367219919540905013977950286297837829458724002600596690996041341437153975832170672595124435146443405075291089992867744205805069986847945535583208111230008417491915720720962108810165645125180229080930115063589090787680950135177225878160966989702171834730253185193444874758302340767325226121772473992403346042314815680064283223136435952813496492788834575710037499775832113595911943366559658751831734588097557785857540182540819046389162076671247650648363607075671117836307920966234743621816450120508583444635228231586551654950325291821833443908002295834196246989144102300442837848001129448191340251076157815533576597372434304080267327163844144716262022026913616719730881926694101396941861747924801294400284835514465674989616415002212646227936320382712423749481898132484434325570516791002455452429499836848379314604110118483708894057981393562390065867539758942607472737028502357632776914283441379134661072193400879034992428471032592900926611296152153207348568315935049940611185511641193667547029017858692230542897645350861004424085873546960641357427187363971041440460358125934809827584786189435027699145340160180496222239704011439624384059164874799620399223698601993735914514791220398566529372627020019026636560540033789372906277227157120779412269407054709314794150549589520960506524317857622637617494235944203616954869515888723545664666200947888639980647298865775196981923936631873330396786150724106022851927884353511811996245058778305861404384629501311492862282768287751608276624544542697857429054332516816470578948833930451492759654453535042118112323694279473711615603360736823894459358629716141710598280339393703341216525554575603860477251149762403424178153612058584848616373549252915441368825198059346284126140170819470786546125773760412243830607565282039844136553602975922485107836481668437289734536697557828230514029889999892859505294645441889903775096312092872938774853106222952158561552391813034011906536852773420187763045651110628677516618018191728573024116478136794646486612877250628232589772294516057667555904454141859975222089115882473080764691822065487480803446476479815666154320666687665938667596424347104571150104199704221047299657093508975714494054584498548129173473130825925647529562933878068935693625155125786339307740115487350796741012221384759955197945772979814801288051081635498598097381794642983166845343784921378946764096856928959118458945828225269634538354389324607548395261924175150701781405365309507629717423195184983933663593285145014802604284440896371014290672542663955224411532312224695258103610777703211112552419535864743349808225155032250771030088556627916302986974016278468466139943015560271648639149391966098387917098920512762404366791564780091855865307817313751360132516770251223961016520577305064955905620162482313709489994864619072439461202317553915076882239487276229513519249669539931403423702032347830227186774811035779048182621502020481689270044954990896476193049001882653992063032659130815163932918790481060592516992570206964839332819439465077581237604978925058701133540422093990678511269567152254674576811513936268277009941899218378875918747451411567401653462724553772316949112836511140220850061869181832186838851789467205147860585436488872234815867899828127634030339384166630636268876614791960538943909552010940801900039710487050043524199102806380409598613864061273734837949258719335901387887120926932333164919615466991023702818940536488485756100445056903733861569215246829268090187468208413996528386738493251205923246996316333344096778472036819957832959930044924430569116708845121031581556639624857626011045191719485657638584231561691575567036344495726151429545337395375815749439999037690037692807707110488065610289503731359961788864505086274304382841394542453281671993335425897114321404588893523129287032141037646917802013370521690061887030047144811215447153516868018103419597542644725857218295117466378232512749878567723753909832039899074673463796131117898907468383964115264068309788338225197650714516791576807398449925086529427275225183747520622398512049143698936618589660258478840657268649961733843784628426263131439909772156991015052037472201800556591569057523459401079369737017377380659301652785503035280071208170159203836677304432520077841365452039907598702719158350262160648117486402410524072907542310184049843724942962830336903202345903786636700897161883598612506345229308568102494539489015482239794381572929373106070908813173275276193459513427178533821091089366744827558327211170994707389844690877563123607223306197471473437070029026265421158500294952708754316170359656104145480230691951012516820935297514699848495448525375335096895226710514428116879133771769727174116228304778753831352277425311723849651649116534855259374094208753661382370582631050461386444079753904117646708786194140043838058040004202576377887782519619097377523228560363294520603284781649967235354687167207493581954787209324859337745242542095377418429270673920792496814963551990277461799622403899708087902567430962425906992504047411988446404568497913746629030022471916208236802964501060360970607462030058688278007746894309401926821880510190034828992054556776370481351158872399567494641527455044717838324971135573724763744225514684599734159030772314393985887771241374558629170700675894375038801778442193130901277676836680199580870590880935946024125473398356452588295388553763672734471335776144884272494476599306141863406147471743013106340806968443494733894809135309575150458093700509561463472687199490623670678641806796759409188149022185922131275052290641377312019411880706769291278622462932861189782939704415323196187830374238721744733934324452827062905689405918462846767241768741844681138019159954693160602876427965883452707876109981042939406276056880842885512288539786362828246824409918672726128055269653830413484659479389457296865072158902374208152227259152350274906366485707355026711897663267939468179155667155771319542703577494469265843120543405618096274788926878417638590663683260060638164234640689207719569238108347060274573389151700795190065541499986137633355584853514047774338032501730085843325977157142474843755504014826775321349664085168149275450952845186092953117341957403589925937276111549874211908862413492101526903248765482787113670190886593670053668680179078525260596109563477182047896064019217968712192332503010495129934577073067417107289880540103558432148841684414669067143095799556936169166851617390750961497252620149428752690761570263699454366957271990229499221260903763244621140217188084831397106370955235436813065246181018924343498632134833805433029671152277654544282353126325486899293791750023719135540100461653469409824281896343302365399057138345600207739734243367712628271682610490699863232778983339492898889616467173739946999337115563346945699009122838873863036897898608167120106444536812913858907277113719691292205836004530119864977675684226367693040320397319512254219353135003679860633670595191024528033103036233475100173237553756436516058552332784088818355256366619493163377640177154187358926560764241751303862705750647036514011156589457642035925922351642269550161318984921251995324816982453505093785688584736609635181101525945750936358951143422402813497101630815132050095083915495250278099570008265889608715961508307342945623690363063824898003814077443902215643587057524563688773734266693177976006644173111012787020369636874215502626790627628417204961541836298351034107484643948390079684031697426158513158175067164592421194416421555298743526454877750806625015051873868930621022871324248844402996833467244838927809900455629153332979738651187501386149151572804126082037791215414742235934383540891885658157243724974288469777484641408863653784659994846790684756489897420855349640140277957485164971603739694024704445323371476140627686848959940278249127805337489393302878095895668214679142469430367745254387054568230325788536520938645767901480897643419439990624218561126426359326123015952402527632607795485476113736319373889864843049117823998797951881935940466373154181959946709670809645671971320803327418162058344451860417900876004110571992095213168806053930055591050544392811408168615702633739115028491641497105472214857780876640697227424366179657270383321891763059850257485768718686361229112416376799481160669981085748832198755461797048659460026801956681021233270558485454661749474164006414542912668203331101861024190978944443071559879064607890341595624534692443991936886798532000607971851872455814781969449428562680409423512203138787773651168551455880087037368108775437774092626723183471541435981521499401236851959151899624720578348670187136573421001788596396635871852100887189253653677010238996533624944806763842219875313271087523789417213320731405538775651191014459113354544889809653052795153405682197757340368505647545314919734382439733812124881134391227651672361133776949802722588018540631120357321816642523498244048055110851696227627977211618367197841759733099933787678047107001790531446547213950482070046651931169730453392989234331008993501078131577859234926692595266460211301785589540540897261664051662480892711080277584802299985162123696459040669881997821809078374950928919264121078633961561581975926150231060694566108773592299369750380557720027508807902450581150736940879052847349723036936267938210188971522302495611126320630171462768474037342761237125719288647004189222452906199699283327155224931176750658780157054319039490197770829249844388285939810047211494974501512150907980880271185013227080983401091563130784057905181574419006082228432872771033373950819937237448239107356561864751136620142387731836841552611972584813110617623615830659211384215018142222995833569237766180778661096346827779276859448168663091169484782866671846191876096650062786361171089966477439345302660148420935493888009136568998907305592180101747336872155781726682180200029867470781739640289563241050755030408546629865912412496927826558848350249791616931471414399209893859973509254013385278984869803415557021336223443261566642253893436587329300015888526775868526429249309754746098125309538825763031440739537835543726096499103013495038208739023779778979165895975174541404265189771999544574916573505757860516825195233525362457555230886203223975689468848612368883176424048355382353020460863149342540968734572276270192241979373305931850719014508832211085411381278241643722356521679449149696357823302993043213047224925520059105779710945621178028190495453021893724753120262312528099525977210666007443153377548818350349930858734925088374962727752945371891759657682031109256285510710134595674380144782251925913657840453449500231408892011099800480280040137160172512218645294558855962037707457206862003094170027848743930040073425435901116413303362024552679356405967513700586963583704810032184568304106266131909710542188617734498789573269529233341961549632956091549268066950700085629367953827299069384480817190126999612780061161524279546667411253744734824446293110123495991115405924674804060025049379254230355429898483684293536877732054603877167500532586782704455715879300810291305101552803453271195309271940120786990464364020563762768302441112673001967058922421826437385409830776349549019137666145223022402137679875878066762004073313231045348157449508707807096003488557931287947771629781165679023345691092193342170927322357932558964175676971257165039558134699068854405699663347200795521043145342926378990651565260802569291179895628827583135514708589366056244051427216361448962678203740875429982005691465353117076152336185282634333558131747998347812039693176813385410092124657211290412526191771667241799922186237845808680466378367932057383818077167499125094443114236686270053291667531822696476216738484357239148519293902142183264041394781133230499594210117781092079538795149877479245516667692653341983872482182055940856394622905220288286341753932295393683554318497363464434183939652847335208017331203640150018422694678901899884708312565962714896471164091147259717313156187719774764425132987490432457640937372307330797191868921210133740143557530753955794711366741134729569522263802068695599628690091043619477077971593053336524836327870254236087146817789507321036951546056425191949747358717877816608577837669474253259946863026065657490439560894744805255172364063751648382699404835283353807715869005800730392257319927003242033687148879523089546398946930000769193261339287485811692929294139337684897757091153990176408784291009106388414137142431468851761771451026626422840602481499624099887729005920964755862060830235338812151423033017569215966822579723619377079752265417049404271671032668544030280518499444056552677474825207092103385304764635498657216266512504053921987332486748838205746020377345046490765818255545539990384174603092095492984378822541815743113834825814972392123799878571405939133025541646747358461017647323059358435185466437911786902227792072798436212928034818770459846381194146944514357913662489038664455677904568661857531135675360997462269605426531831336885302323650126874204234388080441485250506147732821321508983801881572963773316761346991125515627117818150935295912765864565609720789736948779599945715758516830545684685197414273809153390211469403131666105178168564373033756525837265628222162495825851128087874523078323640100379045168936853775574532982747404567096315301031967881746048760593474145700213187482052819971732980355408177505540029181401938462490122172174336359121598171457136520632329883526758846144534525624144312246377929349754772663560746004814923332457580057543531436171947405323389327805208520335972540976184747771040538944757964649403860298495559943196884786505727225648028986605402838612368582020796747989187939814824543598866271291707566045545429324677725059248595516816041468961253325749402943598922622260877793410012067860080637837952702865304482506589233547707600243473969346536250885375127384024958400300698504495231193977896033487698489439227910657452873698225257951195660317615416552213884670807711806831883932432583717981761615633666568821869525621235319606313806470832805783971026365251646113184795926324144118407946815945228957375235754056834997219121247173512299110851518056279728072525315938312425653929588692129533605336454829751999257466200577866785270682422289704918202868994332253563801649473977879666552560647291267507788611497853571160736146947622564773102742049120289977638198537836398490031048882764361356972077178850749533843426349312871618297293829718713133900544269165909096856357815216196383442642631432396466531801683119596913939181412622909849670732135288678181189363523877008222706129278564703198600895168999141548530418845702529734358738604982497328724871073612041209158963923612455619314047091907792923447321895161012965046086180940490732868330303393850937046024589765844845491658497006732389873871892223189173914242228160656144188723314191973149076630095706537610972140493188279112497912658613038744287522720702942700683315441820971895344249627448134771022603537684327883094061215168413378298868548976798231225722535203875753582638527676407285755306387871541789080453227861714914445030546123885684772668917305193982861668956020954140093586769869214786414852931734262954771724065840601667141261017736490528247702986318181149874111265196694256584002913923764966133669481919675290244291053723470326133877189366634514038654468929405343861696351398765281697426369845383567061782709279940592866439718280466893218523078090039175550872173125838838537178743574828494427861449660689030607843068835894601607343252090117623841598792381136798508156822533900815109016183430391148850062304402932879996689306353802187975353029125945774039284969325138668739096115528394856010090517587375311083937299111290213427642477532500968876717246207341662352806678788953085036983562827798885297162631320644179336242760119457836875325673985076228222784803842765697085192386857594398219973879505070933622698855286098896986741144720514500615512050707743180426133261944887238502515680962042858071817246843130616076169242531387890218989474369823592611733809423796656808931775420995752531109741754604574331542595240637172223762269499973023957199523322120088931935641698267982481535079861498505612222927239630913026071623306799708028893335506542814164674707523637574602776022059548637435463911787540135633265637415594431276027079238282494437265836609663273891754581411229358940839158983816298455224238437491985539724689011452330367653176623353570924898599334732044302388948472226832471183321185231650140696924188492295998014263445873252433453611086403197016571709920039166310179321543731892716856821465626971450142739205052411587351384900557345543210064338457768101844194061319315970492101810471147861921771532104478931068604254688516147895571528392032960945667976263865499076042626797232255085122059038012872029416429888606855952275090502817689180611504046624363140795321215311862116893181907637247772386712331264787783232968154130342264638687917470371369873141286488411130460634215448794037475001399121233372905657540542867292833740266224489483352452094802430265123565507937879366968279956420886479245342823419005636802799056465152192637527087430830350695345760967810440434534502895297441803683117323490035419953427070532093451610789615892634688668596421285199353151065591374380744384643544294461425106067007244486095163229216080588421592471965712752867401938501323483748824094057595916693328470720624220430451104216834814345455690343617095532783299669474914597528213143500445077111358700179709722800599169891213808010639856655988375985219827026581415573785968489556977738940414052906299665308418649041078393703719094382969524168240212974702964362884572489199994666419930404036829363384846523241136937773368887529026610733855634568410730248680772463916565586560243210204673847924748446793002611654949332720559043068618252099390983310742783440902751572441940702134926375073560092987654247561732928538282345137159681638899083590844873885537596864231256700498454624764361611392923241783063370314990197181367142679387907525197396799713299287965440852978956251547230899558211180549647803614873475959789805833261943653890708909668288190809086728148510928273055116153812899743424055497175232696623003672476562587344657076446890223988270873358611149395500905249615348335906761016008899823718381943957194724453385776717214894561987225214842487870661090513400185031976810387533709870999133296804994497714158881079430221723322006268260925912218055661934746361762460698487603918464766324583947935476566237865898969588585059249233188782050522220204594363683553637981212816186013382288595850699424823038837511175310201554154821147992308882514142300979811187234606697973580739470558787565629996801218294806802569228797242399137035287111340676082499658482627851824328799336854258362040516743815490848270058903633116168730473437737401015602803334212497979083640325120258153389324454574892286414915900878521652629433684289675500493922852201045314539571364824049785527463506789696789503095638746486854437139224158844644906215283935506808034941289118040596023845475439237509005557718612899347127597101415376443868061191580659187186951574114006282574616760902719807734387172489795451895504897390620181736067184726710729743453731242674853251554452349075761715072349493131040807935471981758282238738405128220004670156002322981200967422872325376071525767699268219726870693871336439489367193343674800731823833445437059745914082907943966726204208010579179750048729069586194553296193998847078237795040142844404315505143405677192709291044227687604140719847498408624514029113953427605210718125165050786993220278077573597031131188070857605354648771771729671604404119344541085878296611146833239212826714322610039386135182429492285757168201285120460982606244211124139797878842351737291154253912638809402890218575785428129087473521288652743722655385164147179571985692986862347311387153620386314010548699206740391448339810181525492780181488975720266109612951396390860993188106020428318125552789764129266630928529955178945559548128158636298529314551417546094538111656256490804158681441627728343687647274197177065587231100927483242811468003993012218137162258859143871547937848752817573666942486404503475408137156146165042951211573120098844833616963542474610302264911231398848419619429928738182360123191258191672480014944174998024062859188877041817707317039820769231806591018310881383931779389319437981006030145362210085886306798447839511097830735786162478028472258623931285034567064188179421294921737667098974267633400265649590983066304202267516740515506888835760322189185926861621891107000157885417784034904828674345362766930127079172732794085103767020185472815550250766066744641856827174885941028449589539221943260561389422859126449966862354510458187587360240790246147986828058986855998642082135864953663922661332796167314107570108691061872515718956903323642053033029011239714807024503371785237677402757678024696797653064126216668081257226130520731609608641960366774674184529553454468028526850689728785130585244252495216030666212333970231397004511161603520293708026034448250861055687336045915680000873386575383103642427414981102397283622585611896546869011755935997541146566988593981245180603701094562466647299016084653485365657333109865891625911081637771596164514030032424323205285460198349612063626434300805634992352846844315944028620393281117700215655823727165742628514521115291679606762765502531861302018046024378507247499138822422004907177302860021008454771858944550894457932863113931110918398751976091923391325641023658578923000161220450303823806477759931015678691295944533644542119556790663147563634728587330756859937952588050628776321121987403614060800574040441226719857076586893786279921308732731115966386676188752511144716845515180658257243578959634841740795969251238185442834726091651931412306076462076321261240228667335714302189751779201513686946725029911441946343899924733023458778322766987634020249901901166948502857985748731118242903507893100466205158820464459833219525333130786396346748624444291027044119451761813970267578926936235562317075665667068983169037586880599946584551242091954162005069364628818377255812821688319804392024026752093495215322874395560652274845286412175715850443714227932217846054206144095151040571006876128049811647711700089688613222388099693427117270234783773794227296312840486757328413682291958599151321196952987535734589905236515143402722125721391825764365774489113642673296446335329024978550553539955338381488789102979465963176956926652975865095888590155002351034332067861237646479368787158764752110526466716619800719186088401492213842407516750198757830612291111684188056873857892603321136488613642480827718507097098836834304824005893985688561444056687221843892270410372326042453960103248455656682515528662634020363392795885028715390724677899426170716427705407996884428913485820375425012861277444641008641491906037798864076052599088617571622585235577200048337067515971669179517754872493631673779658362619810081087600283151525001290437673109769174455618793409106517853217547322320580938752770811698334273509231858421328923119979803193335584660761918861272108586010477832479290882278925600504806775777418226325202242398178844915033044237718112867270228341367325085813344444166153020924760484144208519704385332522310917491317613571174998969779874851452799545140808327105664161552353110400801490571240176615918466453451550075641531982723109077078045968862683452483381318157581357238653546207163997910493220524648728083364527563051012538002522428796567955124212647565137360140219141193963017832115799895192359544046266723824735397230134505790110824023753925544915052471418865450921414433445558434226114500710109936663553895860085249910629853119555849690663159202535308575519679524904475661086422798638109036268612234935768094430348006577137041036825773424874106692973215673546220619252990500043714470736496051013702930674260736325260372375077211467248477050282749092958119629025847608334448937701565067506411448886576287722331378672160895216880766690396981972080046105607030662689015387558717404137444742451817210395767931965402997737069163666861416038620868793203362790527181238766596179334994894084125649870486834889878808449088980003645849290610106522315834802401270409433608758785048073541661960671313091345396703974319165607438343717049829767274829312930004806402139286111760575170871679680372342972000503152515306878026014488449252834328583149874280903601434009215598910323847947202387173402400523388253211160669882756127760621704821423489550667259065539563885375666665243995533383163983144524818838933061505557309923213919917110995361288625518992208177530858792406547745592760769726269114018038827367278340718188164862392525416375248802771493448992325752207395916860867232812796555197308997496964634005668325203309957153742187879960139896778184381310969389647872291200844984749313311298825490982880119315322406139938540912375149437986029982887996827455785913300567766946314281161005446732547069994885624613550546583293537126295498487128223225149211797188237048034902246170564873756008516609793789647782303639933253407148288319696427937066933996904454032102757165118855891131222203515653070308315061176628109898759423993698034704339444949774026792474613170940242386707729848402366109979586927285335104157861847846319711170038785927040635451583572021453902200225396540564044834054010186265027368724297928853638564900889587737150388990788831838761318531761823653409771036020960753602928662258929179196391872459853725452073620211068731550754610701849110594295247363654790854469445844098455019146931597441566652894623901758356885649285379644719844220307982791889999882858015234434460793939633501485484430604269136858536629515965392700022496479867193713971751765883390377024755006178996631563587239258154739107445447948761641714729346922367369193433564507463697617588987894725139340916202362201039932772727409606298411418334039683793813791939689746430518352247772756713920268583192565721702061165720451586937291870798893022133937479462647473404517908310996924377545945574345839875402482360507806353537453933474342623663552687452318227635168000359515909243722500929003314531856314081687250323224542978061719794144661167993510171182290735757227003474647838748375330784461748037781792556945840948902865243252149754481511977080924090846522732107412103114984017107473448196880845214106729974421144006483736954183126623591783291328253791966311109669337257767383725462251228457578935327244508157530152232692971956262679718691057075710728587321785777617968657946646574057478154561113677226957964527300064565611739918561795590914765000685113525515693976559478469386421514653843820501257640055582080817068310744087634138326301848063256973334703861083227745016331334085912871084578590730033630358687464382364882045121674395774185862666288121571234226697787482793916803586021005167200566448263085264340796237898694574072197530958859242526621313351563963372484357392941943754711108234695447594735234701138550060303140792408045548542053574539852297607243763890813478422161971100929096982358012267784784146167015650548870543226905502732520205660180243887340884426745746254231181554619608013245254226468786042605486084547255429388015070610630610568082800639458694219575205161014480371192200059020893740770339317189199328231544620649361965614109157690107474750023842776645489188795153027594400493082250822004924742649996273135068721092890049170915575668876411220856926316143112639297835739852068251488290324528954365258514910398052616862338670836619389828407904255747124697849677708552865144845167203569048951917107671248502993271527010734924357976495377571462141724069674982278667580824635729547492746307308652876004926727229497976430514800217629721546304847887940291260515881267420028198944198360518013704571287709380168041875306777051319850858526685043980858506368769387516197537939841269200207739745076028610147788012225048454295218978629565634551217876450005972111247786243416553812444434461372075416067137021060710177312886434713625727733901860985634970306926670211493424235857394398927910020934536077234668868402406052234070647135392618957811797298343057709928181029273328768378070286447295486056805933567947627514613668350972974676069676056169497489181760410534937726087330758910250032161882153611380217821868203507255921945652456291743725618364083858163031192587117226657691573306757941061204493022194911897467752982383124351835704341961898476903504062971830035842620095202509092343784056186621339747636099454507948746781422994843003797127871627145276830649456389220560007767492125737307254976659071543335324936842873784990839605162890959580317683889858399046514127074322911481919057190860863476443315672202041146794042221694797032754886625734269171996707172465829631604338902472454183096105801184601159906964791341729177647449198822390723519956924276213867073179664740059713982400870129183182373264308405518092033517605280450343757706675300854243400959082293586388751671447653787189810561363850561063117540287254041102342335953176542516684792009698096403669744787034517504804363833020670386217866622101580663820653295556153800415848168359980581568755608176259387192499143534917237149036464497839823691842178836194289953776914846828839414106594507059273756688345248202706632459236069221390462451580225164115886760107819420306072925352350432311750198820880891499255633184213574541797849947614764383962776749872383977458504469387642998861159117751968433150217146982577671555566790006176128697362436702726494706277945476460531369154905288966081560654024459865443776613892372696405705633102401663762207587828400146653912336343153528860986749610143583721024903520420146620299299833871739269394124373078783475297196155945763792085664347619185242807249381051920957185122544996517245193572770115964966235390434923130901327843497099395137447428419933572130034643306953377701602291135059422340045477222957593849841471431039893900242490083806838737393156376284867269155940890471441984041376171328783525868161013462894763956908442532830910336045535616228704632286934733335947550302954247987741834146905718145884810951618339336462819624265740641935036111294851767139684881962593304960340720534976092392137280668464452237645131515742773682500363560346539513088291722615333244739732248592305235393779316677113951740465487607171508906170780421271288598512368140138725160645565182635990871268737839368749238687865777861145912650354669121715218355707025958061588138049967073041170556107950071044158153971097966397182139965491540433380344111091977020296642978873875822954960195053872636098656543442100483314168755971329923946517934568397492577709248758244614772274799008546012623657363983477158034834897742652846255346896052557445293743787180030434282024503504922711850796444037633441030219981366063310191884939188353307259331347731149424182268821500609626004172516757298594868018764623430935939549566744959608858560649218999961181991440078793982088624915298970913818000550762380674364768860768898605867546459234093032668110934140779362561896877453647812447399878336909269212008388868901070279477748618474078456402459850023106813927622095185838690312255328331020592597510279730328697605425404692838674412496610169048737239248279379393071478949147456268815592255822509741071933665701807059656191687484119220673207293476188611998147869810910027361919100145251488136157174284132007399096191822125420840546156784012221060211815986030166473037138769063016169899891280133109866338286224780238448477866065243285898096170028945863977656312157874755351889017660027224296011741778360184591987831570801386425013604900405376916810526483295308629925355486169140332111931099952448510654047739995127399246948901819910186627168870055517502210474411987835811830054334674435392006455760342755017020984772271356090818001996010559813803724251189729192298463120837696355791659557889408734519789262976717733024234207490636438090176158987184302953791281533624748641178183680547884532762850799475960663006943233210463577675062022105852212750116992887443592727329616792624004559024045088847041598866973392239118105947686637622224375548009009450698738363124235435893319323773762064063171512747784947829774393715799168815691132207445601696006878029542117413183656357019213366569669786887618550688265033821158511567867900737289436787592777504879617501222103368229439709421983306454840617530481746392292745430930996049605975531509895338420568730586229743893568138356837871339411070143021043838091170702116823704690346769268431365846805516537341859567420602504927799659542461249167643344620975788221812575475323192059053008960207387108072655713086467620166940446539388101849581672354844401079176573782941451805151561995886890619094142175398382577594231313108510136385136981874492879945445483814272239605244772520311604463993121198236202306473669956264195973440471033837392962144894378301432904235139274447296167831293103355531596987582363971988573064422233016849547097813952263223652897784053957082630622554802183688365469533897227158600084698228936426016222110051336406722567557094900772214741758227521416866830559290450910517293416501363082459594907134250135008042329277843491345071521211863171151384820794155684742786238766088889484214383573300064110139884016062079613421237040788968975669607437782424481476671813291396189040916031186233673600620413186306489385780055317209472498271883144676263681219039310913219949501417388175755712650329904587302613086478592662230513843745406076944282457872649727986616805098328451355703741820488981659719335090310561763457118200163168239509373954309358504536531486697033825642566954167431779779351770502601568985984699289019953808120952167118677564322153401034851413862356503762229910300111296624323336102623668063215579791933280605477035896098651805350629577199495785790885132547374910269974423891163542517922140359615046106195503085654395887264157800471716173550922179093554033163360351652392761585011965007613315217574520848400768602128237254681975543197656630859249311517836995109701153577834566429796811807378631728402297760335181828253692659586345655545758587522868491964316641248389928932727368214990707758354431027700638512370442891754471329416960234950086360337164998465150544562071610971168956943880704379687237438139218410721801979840398253081443398392156742274787636288259222172521540732565166243414696503018343322130341154330961368049700719769418444394573513865707866896376474671275644922032173908018280969197176074222276593504598252663569279196053753950335580082945016358927350965166081055220338437383081190782296203577824686349115866471023610944463771901213815901903034365025642985434454374014028367392390137337532034651964594416169229554334202739422632820119762130777115722113100287168830475161192224140521185895549008746469900884760969122280282486839176350148610484851698627714811673710158848933919469594052867472037628755052398515018454517306790690366065516535800201644191503284742518414245646515011260714481972307025970160012543937080168052243257057207968634185160895867299557598204120168477559160674648907795137422255684123770469994902348455104666457076435874753959380875003898872941387375737915678152107488539773702937193810534013064721327052671129200825969685779669370761509051269506028437775070394660910069312788118728633069116678232040927495672648310836299864808374616760049244954966893120781919055465834187722239996370554670888939081019219532206127029911160785959258853466756139998913902801676217608515707534327625247595945680034329833102345732511824423730590961420611023032931194324678726549192645851617403254926581315198675851336846944341887008275063292762811631244007115609058718835695029752489271680454827340193426882711705846612099532044011797444163228714527051552791451531774237326625140251978274373429673248929462133826764242063755739302992406481421999395107023990127426067670330517136413391960214776391285815634359957026069548874844952558179246581874413919113978052881049853580328688583094744497637906358644818376667401940816345417395344191632034175221271248588212885570236664515461749094483632418218559596378429397451479812988760226117756811140191440431632634570961204619050503878804071362764383897157379254629536799297154448284570367107202459836666634205521947193107333082104385810748695865264589905543553740393394088131673185695009347874287519890972743191385758914636167106782299958624529795211481513908601515642075509089987199612964134369939958583450098593788548093559086045084234108804605061766419294177101607561765859874086467110630212890671387815650795629096915762751939787329645167956188251584935676586146280380200535855828087190204656762627694460548873503021388472689278820549896209897592561328892337836413207865354275387482004090552741870000771957816315234569470609883345678170006778896498647003368225560389708405421436368194347485455626992061688302595370847154075548062933716473795083197841631495575382870399585733389260907525962166348527883041001912649238466957390554832362530233919988465038908711940135309201852062679472213221022762216686377563087595486438867520309967482248966527741716675430384673528531534112337326730572819556111610780454732330805613686848840764327785063233946401087129896254371707571621433079877241983952144568627847883830136399554986939612633780308073231168300122881375903134015590379563531702973927784165463894229399987992243702760502530800212277937966297591938872473528174076314624673766204168299676317464777807016303560990730046668762499869111896920060622562692686758185369582213929461950613552017574136993004290138938451472152160327873463447996065096190607225861096681422212307402247959007638373761186432757505618531408149357527148648638353732707263195111873413735218407957938349312370922331561901381340639762792669344829589433992021501491801292881949892507081846288572574554091198219000465902191534494074011179106414398005314503475949731448162488209031923620611160456739388519250654099536525093979628402047590255468673966019901794272705369165596665195353043293589127198674689560699186807493833441065976699580798610379689818952644872188501688500840587630976708869431209544127501425115048041891308286667628676440017353737242116857045790066004401292553032872293502554545155284798495619637794779553595167656324050823489813840863186097317204401830229183204946949847420060780801377635225294863871495140823567297265263268234507637453858508100061924806462656671863369521061211254616583640298873419075111230292969429525822125585795989896534060581130482370040202815382047210716037598022640766083635501539106252123765765203223841581399293494745535206726126291647422470256030405198035211234323496992384521834737553352496107938607928386473149913430062579426792212833432710139710758588274784515722004001868046343903219726691293867562493649759089335373696450059551199485437719924460532797153122697212871245658044530173841420525977468602652826368483631141954223269165282585023840294174600939049077162861683581031751971021614793199031966109096161848571650284577486418152195099960143924083614971895549312525012788523548303000058072941314822977032587677970601291105969784441492332430943602137200704245475719394170603851207815403900398624753906254487602368374895371618911609844809409125878323916219557594620417622644052615966956118128882093297907906560921503338254863751182816266744960735898297618518213726225107143559132959580788617090979150866431031177028765312133534461905187033517699411516257962988536202547598288051684522655139026353515838698578986430377484897971917646580909043100619924684683285708334985450058012110625536940159215328962065976051995442508294625560768796206280231586399948703587474415349963669290945539011053474174701942481105009820366088734183450102394448146479026783569361159520540362182063784774374989021555757625840159499614511828797706991525408264243299757960219818257335726694235653288331872609683155416375502107870545652869962419110709944572307014119566704533100809967181035398987075256538394228906627963337307841912785798128209471753020543882575949015543579169854123103111403908296460413681462636437368048944955167067854536859042101917090632675983348847356093299697940393463105359642451218292212524925432623410367068648869633022951415398517122369884027571185740973280892728294838375915377235002563528735542981357982001710642692994878603122807102262217675138950736802944492034536756352041621199471859623974778922143718544907642845478093530370040892958513262735589671080094304325751485948880473034463991299769162646372774726472204826023818852020415788270413569942707170927940454851608427332856190848281180635668426539587555722282875468013838989172121301603615843541299317154489739783249018358319296702379552129830891341129749127590584912853231019966817110077191619022187757859727645913320825849475969349860156553485620265528988137490048145371116610366452779179595997256605785381888203023598977806913417139743924274324137417928069595567274447485999821972720719893155763812557532966727905580363860991312486718121334138233091997973335317294263486953018435266821890749330783459940509864878889940253047629352136756260364436684744202595113048200289260263122181970219905770695969495276194114413609317258401206000468250266316590041932728705613161567300116125368485675551445111285753212291892163718256895780399436127262227464007632013603185453929155912182756778459084687641709445430875061982850611250411553567358843677534686733203789914892165898368439513279077794261865413387198866951287110025695448456649375636925802773031766710652250923614159912203806666736133578650641286307021605812336296862398433451774538864658983176418570564037099264366197065315803072510001303197527602865471691813634240910828127028085876177962585119257990547429367067893701250501299609374179531654584902025729193667716882523046832126179038049086595122212454858738623344652933828784226080437671691059117489215662449331187132163974199746241139879118564379697198886735642294554057374101193763451019557912402665441249490647726232975035291325781498465205642808490351816537211085818699887763749980499919642695835588326927444246296537886241434950167899682387653557323093000252155841491218070500844974810920050464149344311189310444064479738834202762839704474942848753228851286677796159259868666823671441650061333468772249669878287071803126235568713870892178057251022299197363822814210312102813225067160494008576431665556050040290977996011130730336801242614420414473319034165324138117327713002473806309080032916952876385711310694890062509190512112617418688340577255449147938893387431822457042954615389478636777528574240777042570825116083714775462447006553215389820346160831829910521605195607180924153631057124075803341125024713511545784300187978214157666081901046922110383610334515788080324085873377089092883006630165006885023401148061491453754338583509589123156989870657384727224216825185762031884935683792034603196066800082254506334113230549917910753304563065898168080894490647662634481973300161663085827830584899782192116134094618084486081333980478807295636058151065575773196468578594328029466596043026499868171972430871972432042377953005947625968063788719237234786172100361269310678413179828601357027779486733230911694443788445845392629453148479928498857639311301540476490606180764131047255322024020744174398035166789165972653057019095780924726612637181856272661422403872761665471017987852032021820407443173816670456131067298596609013107085555625462283143319638637280893409391175416371529459658508160963800490033420142694490628410049870232299200846707493872424170883899307335354774181778946036703747968451883745668605322259073515830056645566503500720801887774926186697145792713186334881211465489103134181395162279985595388686946382336130236972763991420489950932943144450264675368690352784784413817228092302831701041184905652587230324293314443626313314570324404765067991730913689688099972497676644344785453989974306596991917493230656083319917595438083510867987874413538747398453775083478513313291843466449769931257553172448645451079793771705822349956218408652190614638246965347325107707267409287599182492726734366809305529638767521938723507034626545866123406673254315705010765926471833268095758141881363986230718079343684523795783097974223933790292515058816940156675471885262800929506226191911483904886287135511611884622699678319462521597049550692832781862266814855540110908535331490597967660410428659758776848694598724610816364920027509375309158754253073827218847458444504275854957174083126777225625186681566694092485907670578147516457945367930165189181986740913178965647096950900431085181566517070271247657743389325888233432647597766186393741326631319009022353055394312622384102470739461787526208552388307424447067313479959880293688370471884721482306956257102660785120605069241697384517005704366541118914293030944719315575974693479859357620255857227786201689600579787712917198612049459776758035306409899151472747830731901751237753143328958428965629757075821224573984440831103516833089406652015476283008391576084200344269194100679264549995875812273875789413009934529482945003340650493874720472333728545654301207806010406529620051637818656318210703983116021944052826777624364906498351613835612804537261811146630239724955590010412353171831383038235936880242371239335566929968387721201755607188262266963607301313863017355070040574126611226014308400076218899362338179355599584810242452492132996197217103431894297799074366573067851758665523100102759040798300340670226889390566284518710707497642555431792366301651804849782202574038341042952487575483055226740550968097651520814067832986379234105661040568306995268907335696630559897955173842171710365552970097232660026537671197031543484854761249307407952255552232546957941407220012569712783889491139971864868471233031408324624831722068369704293427800121124475871783287395854045952568542994205749888411244550173796998059596889253809647228690991794773301445867428363477534992609189900364655169122480658829276102602887990753814745610523821608844712168728885527024224432565552783128256542734899154331794085138799868770034922044216444864630218211635781496149858406708887979699204775102925468411988155744260163359018509661629702187787083359349657608124955504558041150090933482778147285298173972427914836459815983261591084558739995959659525331546024876906562436549418109147900299587242569885298057831712970567033048468214464557042052737891416729876531744848261774959637592353932772619761521606952609839211567562376495662295284423630993745221217585825252955631797031993259874121877400021881279526438645962448036599598097354570438666473825183319787800850684592774114752124904639195699945812626488429069073397312728793745583504021145188955714693070129795850062457473789518723667995903149797318801104024868354276956662173135449587784299789473813400419187269779700672908741367521801667086156616985191880382535696701120429617961834879142981966789110466701420094944261563689768319547587417356032213496218137450918942845717400691741189342614327497167146059105491155690946751158014246161321947076045256427182514138243988310549247067808073549881502956632882265398710079206007312844849233645340704778560185211840836496726432311377835179019097580722087795639455303788575785434169411033697473255541861200132908090372089525248014948994077038716162523044502671198717211976196156956548737842054407999513764643314058087373131711382307404601199270167086456087449982243176081684708224424726964707693154924586703406106006841761443556680819421824078690188927711144497402100685521044626719221311759898539034622941267335057016665770330585448770100049484478769752465761653349300532959304204572053494926867842080524767036556848367920832028230487833798243964219597074541363913187935766162238253093921176876128323264026454901388976084526991919744999360454528738591091401424954224171913807516517474903184031316516109830394435483534881059983329249731381940250998234043319300895504792146095272538849839894933185711061356931380247368818580759816159509527496349979756640529151771495426619899563223094418561854644650369512832050313044556050979152822827466156955834319596160668873624045464839708169040464090670887761010658273284918115206852447603850816580812388050349755627286878981902689871464524804193690735653137008026349953579440541862768839853893957211288409138862837369733837289177758348106033805390025206029071992675126213476565215009339358435236812926280236610337355397617838368059840061156902536644021343567261902435204205803743128533036054857128244813678470361595454321943735818142006790028415537507006506040768144353329752736718073402269039641802944653400253454658590966003738929664383316089365752064976049607209158006043614262317539655716906490591952657317607373304284005745639173450681673715140668881256656563177936325793081773124043670381665857354688519691890012791928192693869004850460751875321057869829940211311603742879646220470754678277516053559551550017697462373282015899516252296224454013205268684846489398225297885282624535136607193137651113950114121347032968575129699510219766693892880212999881660981361169957148479648254740199954369418856127462534740205313117726434740894378006333834966199657942765747541202182935775318371212984346020275546336017906875007342314485771084680206063640355313204681762862571466555545318634965218678336759701775099405066331183776423138161272555943375905640357401710762930765575954926193396147965176526687661334642034161954985201492244564179738190825097139980928807551914613364625499839913373109287313526850746399558855989230229010134336439272504622304443665709487286052555359651497998895123600531312789274485195827948344447117332729016340786396465149514597083823764646283836779739069646389400092568839938807066971928288204449624876553279971487434165803327636423903970076080719593238498122345625564809264426209131096885056810373686383080856699889509119453008673647113809219516793806172091587460847869110046517090858522646329016440173557898472165145806541161496182706706834439259382697373576910633033135145269144659119566821596998043836934617045168734636773419648612474787877483691006678003668873317690997914265060829208664040604776168231271325703557087490874627132233890410715337492801168210554538234815995704020494641381795466889501489756533972711368767555372667650486667426259168027626187217232543253975825369350298311686259349874684396504009249299499478554971370066425753699230556246977337760025985284735428363113833676249581381944045600064610055683684098926561614197066221176948969643287721103077755242219597203557459928918875598660421739411226820857399070425653771113168463361601073113614347993791513064100428170369821249533121756624119975144783106387732629205999335690187193172771043622203518902169155148060684670172891527200174868924139559230247960332921394573669941331993065264240365442319434747675337620608500845911606063541151035632913388572189304468015807560720418875079716487050559492481147570518725222424380769761437619936255910764746637283973163168620205807451145534797806015426930542458218389745274734165639828296856467124586801268619319417921736376941527023491559869875098151106036215456876863779854503511720224009632473135524053767684124280596888820372327259573738842859764216574808623724973230600634869107121223556681045919776921571917438402776033433856001645211952600223143753764148426056824241369317556357581071263857096419882902196548858340719676981061056831774465910273204325375986139942488417233763555347641292040161825000309027578686281349709601360360275965326831901426978588500983345760924069331503707710460019972363792525051169405335952926933167185765823864485664941115193792935379199121627996234486340160949123185316734298930547476856924259803108546591050387135922926148031662010780001795376318833355343442598122542717758640276713209096967730166267517957208940095099411619409756915274781518833704133746108125805836814456334212283377163323903526934029114882706525503147513999806335611203902613424152943587773911252821251009187724210653803980949399552114598392660575362757709619820186944429488631419540416424734399711760402487344990722842753499994122724061752821713256974637307897677407266782458483379238379982048224785977328935652599797604910766942447345437922944759552483056369355546722635218286202296904749661232259798789724791801809286931623517819504731540336640538064677210019416576157704809754142507314342948294099209727813501631562416635459539742269037173224552811240390787930837581384262584425791556275592108402434564490087501084093228932515811804974197404954386187323984910442527598186713778919716982780125186474892294871134376125549258325228560407018336430060718936085038699382535789085559338486716689346487695788852383730262471353668543524555893186929782847352095312727596165549022246011457182104612735381970532654177462108228941816174189174127293398259915410761796193909647717686723610571359152030906542005761556938417670854522767920172746254449994653694617350474863897931159348664068042007285514765227362474761988765042959663605352685408455272982579876145360043778009894009695035537546760429983713317641530461471838573297096784382208694373041179356192471344599782885949051763166504112180896549486321895480553136639506445468684427027300008789926404175362793853622658424452748457174115511279101773087273864284592087093373228964144798318553881282307707220928996036866161277435117528711852210928067232567084792901726347727282187361018223676630511796255820010264308177199483162000874485449735759571024417010747540541150259382701055054062945301997908934888948958538333551700725452134197626931022328047793836212578907682181278036545415470434462168774353629791525894814913813008149706763096777630968808446447535924505852899565530872751091490224839651890402863352840434638736325778308420655134683134614837244622598197865387994693702130897139671796295455431778687635517560620007901222472381488826048270559596317362696912397662295902530092968877405954083783257885584183922367157362216483052490039721252679552561556601768438919409295829110252943627939077012421787948224193708969648523955765898534766571174581056880572398607264040158504972784809282223499354599867978645777566898479878957363713605752313341503725762979929661425633308571735701147735925289624155590222558168095818365443024958336361430612487643470276031372427986054509206368169307031664244711210495813221583421660674344324769681443435661871927540626994951720886527025754220360960655023359096238743307523797178352109221538235258740466373416029757208775826063909780655212733813239019861563780350167226314722965024280074812580605032512500205572786733538374933939109982076365714206940665507655171898191707626701492055210107523658396491514835062610241031979535106948742069389132308688497845895036265300971573902596530846005878836744872116365900503549414239164413640394836348006375163718478409455444503624013220150851678061996823452302716396366371531974604404379884187801037145825072905127956485343738506822296405624635935982785481582107973626635496403939024071627783452533125981855975519911691233498788359090166828056410243951706117871372422999728025243499925776443277228723816158196544559860008163092350800561951178845224574867144773197443967657953794889822857837924412119136766582431858172705545498536621180818518999702204086271199763930306467858049636214915709390072118156990541015930722258382360409039335285799905013017895269845288934931088853692119366794769768587993188149471377753623315256343945215364797873052303268974900294478005024897185979414753451338356331106299997714502322602883050531296620823489171366803387963904595520644080261708107967232975703059785833028246633333758141923824698606586841374027678247925519709535584936576606295735199408467137040712107755434495594797501543679192789699170041721277869624881238271666587121001863742793875944302999949346704279075647995551684172006130438688830542265114276867066897332254184048936200540907865989229242036936131541438091949827765212195492716704876456883223261220306663691727647654182769888509384395638741998303527334253699832056417123997759225829412271564934147969983215872155283899222390117807254307074703507606131059556219643946382381101293312538595748889154298693957121943699938445489678769707913050375305948648546818726477372760758290779657426286511168320797820897273103989881494435774790250213130866581585295578431948107177425065289686955466242089237852089771279472241033288088229152144676803296210991809925462423568693045939815196791567297205870340527458648820615666846153907514783777802485958575156362402578304840467636656050597675640606260501227741278177194821724624661980125041916981032592968362820089186403402329619621914669783155145563410868633117386028222638259585144200251455894997965226236333612788659161565196949964116532291012500600353766934536024981134599153688532085226653313334084686575363892434051295491709719569716105022123925965937248695458303084280533504223948353390358727583522043450515028116471195727125946500937819562539641989538454255583874175371119335472203535092562131581353421857889820010997439869266600562812219252529392685933996099576197005276883735709864566573214799242532332081734949780223819868342155584986789749024178630936926034893306054135599538248802479916166109472369685116651336335778203272606819804675606267560700486486085183563812143439894952958720337446593709645933854083904917881528111290972642385402118490788225948200523259192728334753115332286207426705370858069846165621262536772378716262782633895026463361424666940532117405158806492771019103145910217983982191430714669595104860404003689607223626846048572555168733948634601483508525055168431218194578684267464932681751378527210833207584530911157383684746721308394376573317905971078782328066743138696602537985885220338660214908386130429908437394394586191835559854049646324662109729106848022927069604704097115445102512019440540560854956411168354503156147971139541463351676575034791886719934293981997972590524127623322963720600678733250270828506612889408130836001390544240819845580082499977319599501373154553400709587445414501984778930539042197091291587158851794096754924297601113396162790529696129513537239423060086143211225695847125937140114650703337753101008931153217469703479042745737518643753709154064658143706022492064670864990139582686656911664361824224103071910187547476553299211473374274327130953453455439523946810349274506854937798319070441798935133735027271371214826273466293875418926865820713366066698553500616127610264400098373920514453825153117690159625978532755814306436531730563498733064075938321029336594686302860079518900778256733594699377879403869643283784862894548593304866740352041383447928895196698008902630329064028640258911138526295482679552580132026840248560982514596491691944378162752059816612735857724978780553206555791375752763990795579173002265379267418689948369768240322093640475295435404231577133955692086209544689027866167860385031205087464947650172123436283346858882682817287231249467311743280036018225233968246811602198901652884083153198676163609635323491017689266691662483843740813612363522540869220028123039871226943767817920209442774802259710601966417083427275733074230441120066868896461723568753316072625986742725943086469929454148105135132482673445720646677895296602925786186907441304472834506187400525462413388709002848644608524998916860097591012517898519650404315580640890658480249403808642556991084592102729741111744847833589249415699063373768783441982181950711479362751101661421490347716850113766871965492452500008887749354680740550776962072347809321338650099360522946789334901118593491590004394208838099790030717605218838782533846043759289648010604805249560364473482395882503315282266168526949304028424170432142841129408276980731498630705861630468760893135014512928616594837690057490641644956815492209536089239473942744717040622748862424785255680619525178925393954513764721905218745748702350605219114254027958322199647955033660991138028726169383600146458158006136052205943227646559203824435345528389460974867343429582739230359160778289148333932148540939160975729787538016120368954473891014597790080270571379208378551096896359895979938990527602446788142425544386406975019114984217212915506867088272056433631799504228455227775314741727962617852839856465321374897947096309780022015446755800766736136270941594978322663169039950957277018399874223739782498323330438509697047771533370105398330818233880399304708590993713478458236475723809784252728625565516852006916651418780657259734526321903437951652590546113031082225366388177428562336603090254131334631580172984263022739803078776325594587375348753862970821606996354941333281570260619088337078512037440712374819123072587326681550982558117428848157254748562879942453225499947440970429721117091983984275970441897935066378029384957594107151361808979940289452416628816692538501757156484708244833213427389543445198206784380432527935767376153369246148265577883874679101867821027335953486435112388365017972213081318057549271947919665506490847414609269342692296322834927339689352596801755148592368259466803754440533358783260948225474878632203592478061776929824920926612472777108926725020641556911680328426181095227125103331116113720348854631530449079429885229650035716939015714902225615744799003725693455090019357208599924767590661862236321852646570323488350001618110957039188837769523661860679628503879279650061135102252485297056459646137406648731825283481533460427924142646132234873144168998051518331298778834584115990714487204618620688959440472733544003011642090802790833919627061842848331134253575335538896681554600601445633240950333372102092747905414732587582386222299971159746257485811677354375841194554560429867706823604774246614691875018346947556952103668359300010543350393754092239677797659056582005080700896547782584482774921361300745110170351839380238050949930768772237639851350587864336936255187063982973097679365778248087351893483400828480849932195762539113113356823333752307249174859211105581076639580466195983750513767327586722857837750204850704738092803133481066122870739519137324941581882863460313192553544778365672974238044664640415539407404527734420836815009594513745280354155609417868683533098556954216441224096578193536453166843852570549274710709727565898400174873500230142310900215449452921451870325928185568329728503076178672690862966800938958966365402182589762520034676820164798156747780689206054742947003803260188584406639123014897706884184791723384343616776777518807563953805552240209920190195600727959163049413451970400997916941239749982291340794152623770403705506171333669236723951223905939635491971609209345388608758129576651870010063461677537075823657724919362904139495769979810584061402400349253141246938072769165084678049735958945793079640256728616581613455560007813484313360481926817341823214617710132412401446587025064496147816059920531384221607181923619014437243805021322713967860127304981207460496196808415358995634120510719837278798592037145655203565673284142471916568233432409446055128037752891663975990073870221878510567102197056489118304050788860082361898978480166688495467079703418928023990169564306417728213879992781158055254452329655920426168871300508837048239815977636284104433143160720781189631990019067839743773507352460374459943025836565716187186200732426921604077826319580434149179810739749267338352572408264191410828616727218758834604378080660221634356595780241825099727781352121765062884139778298620653965304229665712549102520438505093756890832504422262152057045625461637469012663727533589233147246312166978341161722953449989542075540268444012932871104720479788780598619178816538175788463864108252564459232887114764200162843435398037763757825503197566575366502803529217711377407313089155139069915806619887694480382411846915036620844453199941620963457748369453437420965387001122369831730373418539435872486338649894853208353978151562759316204968661232235526567914675665363651343112270186855125776305571243219808906474553239310282424921976457713367734202744280265743931296035703662160326611256665173242982456273657359467746322412909890671298460743204868086175553202920464267982930361743026224827978294595394193951110526981004485550306882994320701452879666164447848726323479521536057002026885423320518690989100347317292068313511593041078973130864822831666075909298310420029264866995116347454583801235854000846204541815684375596778820590447865144813765131170941552483023724847970076587892604825448779488208748660568050279154459855122471584542028861192458613815445675528529308942267376535496093551299075465696606848388659614821030260753683737057210180139304696935862143000332718879285264754699201008562461445785929254345814386794776277758148066593881469432569050475529043317054488754754874612468132105658044028943744318271903161007597772704474546248435846418037977873902465684320713533645428143075886171216039017950498333131974128988459347094528608686571134746121447128635335095674204798499762396611021731627463012510913629532334073001949341731297334501845317490816762956779104070710970032056687169789784765889311045173531923835746714421564620815280009770045764389648467361155458763045012642026985205736886654960816000025556942072066030979007913231291131332541495726767272074031293376411788848012807767005850728696653391089164253863559783873123637580623960087584257380632621113773865737514304566633492161813904740171247732976219453825769130049571801413547190678990400536227266496604424999902624740159474330874486504883184412261024901831098525900402359267794723103464539979208254430936776076823724290231821030143330278182259959564432883865585590270817827405047737240559991853260771118656479056936334168860814306248949362571415745505022831549737177327559074897861699128112152629350214787475564968123124537473274565478845905376359601661848079885638526603010827621848308009780815517453290823342603918528852367008449952476074762462881104640417061406442990620628277209238656267752415133845250177780875920631910776644297482848379087896636904913813421411301327281104372148628409286547445301326292550779839707730813668599908867632200410650021147731390939166390455353185705961048311483871582131273830125129413359144901711974919711628836513701880093565541386771916573273158715413819658857666212710719278054582920274220580172619129698440867720192881911179356542181394600769321677511926821244114041217989016961009516291517372731640843752966889548180010596770215825799182169672081773102518634322166390816256546228529026586022306944923175374991348765318328651140890284021114018105262385178060042801710542893235746877656107253919503447835617807360681735988589306385891387328829911662764473094054335696956807664376775142062339924460009824703413686705611591382750175701737338630015856842706260854725077464118281873161032611981853687279436265201510519321927894537394211627331622938097362884438879245861952447973690836882829902571419450048667443734024411141612077426887782637426352755371334217455508003633421202375877462781129670412193822620306642757520598075181807362254298502472120133278795782490818993486123909506687220156249510878123169118783822556289854343819671998497443838823428579093102853823695623380995499145531989612142405781399645319870057777994357810560456848352125315446344367627808244666232340424372982994911968417248930343982508808915394250873804391695434290645708615714780591196996822156495110607132613169704824678412524349826710306325535349358938020437639518230470473564336046292479919499976693060633597892629489851918522352047291615978797435166731320367170817204197924565594994609693951757769495161394467762921605606043060511910737901426207689891150183859016239616829915123016735816654034294074665826610171404196884509285775078017213325998313890278141795612721303856776475881188164756944269057061123366852267811799499886873081759760234148975402424679673151697125895602529272264575755459999132847970658764839731718599739351194070136832463263322831191031306318157033645411636830887086684483662663636573630835245448705704295547572971700997361993445478392811377041574826380076444954819750183264423331263397854057118816606815803989123978829807254665895619363567581911318859485915953209341604535941494709253853725229024296307829194615840771015665094103867376350193706213143906872632277364658501977675262010067631048679836069189798062463520089836831016308584469635762184881196939491504038355159008841859104434123573406170877483864294010399512473862728199912729919067593897027962927715038570223238041231670465564589308971154705650743031624571187859914610348855540635830991927754396056936421677544044882380903351080085833336216051607576663397333293924492500795574599336845263283012168216620090408617690666739607604710071977639868039106264681892654997129117709745844357287409655625411776214693529841620016176883427159402843840577261979474171878540837672753909640901158628384212726175230052865576286295081492626243474303148930040207315275698902435393053657983137644464247792886121850272847061702717693298438488327574495410472717913619666073506650297468667483211312722848386717069257990926143261765911109863319387633216628015365654634330162418773007553139945298130396800007414624441842912477190866996295361587312141214646795962052747701310321976442423333837980715012848720603465799459369488986325368693563575327376819776600206505342657582067816478116454876319057295215950492076643175126457585442161384924618241393876021169054704428794603895625312496733090657889323188871212049018954384832704064089700078614894788793524480699843092241560793994402877114473631739259517690688197347168044692266989216151085661488351590940087651490650998112067998843918216966348739366673100894873157159705663139127260183098199312126282544105333510757967900912220412936164787482218939056488917352147734112281745321737173073985509259048164852039294249304437159346934514997711980776076363733929219844518834419692436108783518540980837286016908610216319631422750607050900406737060607409653124637540765606891373376645282908767316296819605473196097850189713463727213952641672855301868994468213209823846484934177315121204524142128144923222623299961017240625285322488749248183642557467908286566563792161424953602399648824195411705123605558480759045354375060000770235127616502643235894479850553198884612600245942357407087355343859339520022172547391489105199426494122918916627695817329298475583759504209418874532714515491336488112424178851644317365670777490954710078781907724605424553178507375442792584415904172934263647692245532286168178698819131603425472150317761574354334210524697703811193370409450958287439939537479104452243744964425443092172745828513064244600304943555450245098487983311043354490056439089337318912152134975498658230903203058873108028645999344210358255382373912616086211092393516057148259102517101557099585157220098781190657797298619075208441656534465790984293695895588704922705101916814113381614588952868229674248864703334179845049755988490271576285029188630203058798661300511475060325595056874512655920930516947770404253901022037633602117806818741523771685656014062205346356971617615293667446479320179712015676347410453392658140926268791694061739115349246689732454059541811143700453255043332150073840472499661286738990783244865224497978165889164818043868481171327376186568614088807327694352199798945808868780660726298052684022195146955269736101666812370551059003806883078525521541523872458292210402641274224110881759226322458541221503980271887913904374974693422855943975052557311086123858182484014982310688610430860504126278668102516461498990530431498096711987708166728111077337401074347777591520947170476160432458843622771247963583954188364637001116109195855040738024914808489564289420698469527644155802885574701792521655290023578479921565986311903723007329426178618720789410637092516616334965857675967161869320151840683840579893410926654693996095106748561683204829994114502272483508878622917691313020429906857105317511595081463926763174014969768399654281244690005456084782601403332716627059609002167392245898332899839403361802358552636009874135265478492197262836961634258014453807509598616320658121601244877497101796553535432940810391524362935949281117214420763125360196131764381280296642130176623145764929292086035336589398375988673872592540192851568247311455601156620542667726451868890353115678410515708611636907286096908859953898473975241913892966213346169622117845882379757382388025958869329128206772711470050274528671491193375560905242255279604612124128329744280176121510980909622138888402803849272121492975774846041257820797029159050295198549435141544372068110863695118443300470326002954761315398292012764027281280186554396000908825772462503521760015324868114640512241856318186425111286615534398019569162077025968438507245895417252210339790498896564539404315716483044941502702591959204040796990104406865451778225199018473966657901792417978241515905680293216696672485957833611510674982471375405438740273646454461207380194862486672911530760222815968575697579016364303662498122447980481808394729936923998857755444342217234671469346462814441967865204472669068106827813537718066980877006172465441250192463380482201174480686286908421854532899235787111048242524288947071941086045884725082534940621847902953782323210433437017786473226166516255539870916582950289730555697186403298787770304602689835377910096294229126195636515095059581414698635708037361707445059992457348711200087738879228120907084691376363098175751090003632441440052979771716232776118584434487285910375015638985862131661936875892594656384627134624382349222595491307180800280077458235104519307057804495424043468149413173161314224889103893296278980377776903352376960250610977125799553869916330862817630596569225070624287566244514901304623986769784416067252610985905258757956545416457775902632582328916454795947347683853688895721800353690673945145412399855904701979631430774567168450458813816598817805165693429561786434363843075137780373262155970362169795330417586541652304869842081205719083429623377439810340978686912476519261429560858877274584447211641795829383702611909721731478903887387514836561616885036758588078718848912488102597593491533269000510751407783279036938435446427851423454936216196412550591769550254302736860802459660057807358757715511627485912632105398427142373536993872286960308616881553141167539375348642414978431825951578750479378204164172178754820447177988510633174290852310195592301721394223798942471903659704323003108507087049415329986141076194833724798830881094764771982142218050116351953814505231846200287287888199353533302243012509939083456891932442859598793004959688165247544881750756114367177723564241657529304983908356176820961156586363854299523800152211575962725902603202479662960159354000012717991104895181444585512426586035443243555950411016825542486448809271811003711826045341492432329622896427711896609259688229455388402770186257309450005836070658177065152311493381946908885639260031998070352535403257791288973454655943920000316312334331637095467448245005693103050190322285008554157007397566443338687473850556044492700163344483709122320963201796600888869708736630037173128125613110362576779934791793599780788004831272846785826870151707952137235622614884212644570736939379709255986614574973797833499520076586916652827645642909007853492309255334321900816710872221177882674634374019777129102707826747598771315846577522219552106641825661418809901829534237833962065982883861601566808215232242362713290972506385218644056112704232707168960199177402006846662620149386469542605473253686131062379683242619881304312780246426619459850609860089831183508541357990991667385826736158816130133046597887112736624326259284424438403317121540928733313686749492293192685757691075205073365918947477650910066287885989100405667939435614051213447819840259233095460979535896763621957612833041548965185129569079473572222184336129773701522360158417861028543834792365019657890361424883352496405671220299275117123776224457298786295734193827244848973355802040812218476677756415404513973661273552691185928195451033404505400821767242866386824063443833085569070078042922715344592147889910643191982347335375039038834159260767518225580217381215173374510411322070170276530715127566587177808179541909561560926119864790582136565158165010129108476571475682369365230676174481497647772585783029326895196145508501376089585049947490411550618104455353065702084343323314933595459589162406971607245408575622994240324055484167339808313992092215004063041421665264562493323310881425272944615653296178061762979983331095742125596029554216959339048556884002668773973559461278289680460168713515896862538241806594381251575520937004376356146149354781871440927785000858070134200709812573207461906959555056873711745898400998585273398041944545814008028680509272554932292551485145878636915371242625075818739782050893840156589151394902506041064790013961868418210599165008241945829386745825529431692041033405960570328377350710645416164249968243464024684346444820959206460491444524989921140450514662106969783123982807198735573110294620457301031830636597274250594175440389856365212144560500501817013751187712135253966029993419415290205852314412613024014825873683708387518404168480662418345071845247619110370809832275950363466434411555242594167076127895571033152812288906066648291321770083157545491174848624263396499953122064541262127274378046773473303420787326085876880930750770944466454287397109103141308717764062353121424983018476510613312805858575521363356909717744477282298471735180050727867241676022288624874454839993997936500302460097105422143228369429269325182860949598484696617788325195820885941995557943724783153207804961080540544822462712033387317159176523157862174197435974298696816686032954789683723578998045490251576640217341551392543152031503578086070691478239726609243711929150199459035540763435697914608057412216537805407648746281459120912285482634610159811166680524541726666696014135117903371513553587949572904545999157734623491657625205236596662057563517365943805805267305567166056718478462567930947490007006216320110050213083460189143500376369169005602355977988307115546101833363566265579141522175671903881830513516101987060253460381087946299048394105139111459921064261873756329117369632207525339696974674042561091675550805503909485434172089801235935235227401192731381280820886713788416402943039373643495789675079649808831910347512960414556811458283040162472202721944159594221109975042903073513024889778148222002412044627881834857533750444058033179233461407767477810201243865795210287976332300981946282136755528211687567725862059792543761221477077884342695408973171267744162101163925136521698876555512633223745237656878990846013729892454400673803766839329101116597172377203909256689410660432421359407799673421990393555532494753026808095265396362708032314780368301213380590172350603375254797495244074270372249506095679424819459587454091316966663295454587281350083096542862295917622139859398933562531793819114027924562170428671421519083781256698549168703254189436736182035882021923359106882535785836712165083637337985515445351732942671949180139269792523869499811320676005451867515284098594969240620125277789369105945668586420695565700265511050792857585835080754804956730949162165763180861138484130389277781600082688740724721733644324724307225891886587127305042603057855223945670965910424940846251909887706912362487723570910512887154225980620196671219143435958854917243625828791920547438060268880323882948170214818882069105015600608871535808172335395919491177450189750425089718429672916263370863174367714423953937474475096316344635891789629535589775082586288713557516265011822430441503562076168731925602792369953240233214102971216044114512820357151078293445897907718456864945692580319262530520909330946612304890912602805763002122599371565971072174012737683480867789753753507006764858251778522509347185828472198582610405310895140042848029932998642081465672063239141522512775664907023532521411218113110077560203561817257331108540611151859079076536042172692130649992253516067107965611472669935436253579498956465157152293810590526334079842593256943395246099048024633806443511168470309130801524729951905659168856865704153874934182809195948336923318794935666232486318163713174655974768585089177612063553415547780969295185808053295205985232940613904160965084296429896350609819807678359384355970703773763729375274223528705537922687894912930823499211462898618608227481723662121527691956939091940409777812520278059056506610444199006347857142853180101862022411107340601975966216479637850073823783078574112574068897333083815516167688817604968941580352087768457886645683029391509650218991043427294405527292005629476076775535178687941048279998902114541357201535296560512537530974309658438775799901653631041439369331959990835029503918597752766536409827426927540610915025528281004025413987848627049342919661825065207760128823156175348580038951387882194194536006265615399423700652480907987544053983055046476155173281683732926170878388788905302299649609386724657554746632435553860501742871735566154006094773647896100249357488569854362095766331573443658534021668466078327966142531055693458882646628879644179226168547613482235602099369075804284254686161952261137017130741373025135309848787810721660389767141187883606526711360956866397130479074384086276527292238647300067388202433673386058301659162311098679675502363694576886256769751795866174561877393391754370984648119501543940820995378320642870028549642709498623599368266956246637889408617201333566965687881759821786884043016431881252745650601386504154955226737001470020806179845783776367394023167518067421959321091681254708231539545697495187050681145775632048353742767866626641852613742753076766911411718721991417697682939513050428407156403309594907635003013463446169837202375298557294259892019748573418543641786977505344986006822769534077876880431586569106508331891599544641220536826499241066125970364974618095684765521513902997430408581147413886918104675549620587996779064527281987295557538592278321434000170844904966077022021504463192593746703035086436699049083579315923180773319606347843204501366543525152653121687924220596245560710412584891655607582759871583278480534718868212011320090498883866500273683282887894885066997972235294776367199231845390946645072635302719622313304513930489299265172655623943824534399545243692864863688890452652579096869437466982554219334127196303202606561759722434666562235136901058424625530195917549790601943046591188654689629419819858003165020425677494922884279115517806280079554416434632740251033675818417844229769506722055276724948640247395423122745199108963765174994330986756303085130975816147970647119161296979630454554181227524165029824743384332243188415128242108676859651150241378024266168190605812797000773085793071931900423583289538910372717514775508751222493083462891142279470487092552751745649630155010462312004222448585807693269092091773039408757251016251476465660037816625040964827921087734124584468709908169828696689154560063929474131142131635514342679121593078987599978086045819699775303918408653501890540241909196533541019626962373805232790219580977468778462671432169799857812161068498469782493241054858726862113158046278551049455661735137553730243544937045586898650213132504802774178474958495078763282473035344925470935485825893429374872410299868306505423199614726587777451210932280716731885174450827249107798004931590767126753397882711899245061730856855299815634071460902607867986740821520696380966419863551910596666175152879328978684105769121615484663233359745483476826606026389333867825795566130045036832360348879535812745513307428296715375617138484004651662412326400261647450918025934985963927785489163695950816009834918371593188727618870369482976488754641105090902233357547597423640052686558135577961204297565680378292932234647006474083090099312367382071517351873130726870556265315150496861396053242953578689470187622544920725620333520811704540806161961141968632086974652178460517500688866153586503641166289668960818327898658650000700407452977761315605593174830183283192738468940092455846886181607107932111485794133198676872997683944721721603804755815405443262066592424091570903041743712989727167988798335398248781387730262630137948698623616773303729558589611662170272450618330510846826916004529973021095219298343006268425336171737985792719005908312973982343985058713159930839811665125119758687710060353672420675534960468107703562807237815492638883463799859318953218229841841255151613071910492194084779653339619903247321328647270906537582604305587762690183018253906848396529176326514996835458829151103147246163131171890672417548365359778240867651168617630284605128600941754214883216515996811036359383128375772896396265884289044246849701782753030520964188326930880247708239566485622179305055043086743932974395713110667094811686901109294688852499408555446010934107000880376065316004337072188829333442852796101171547012863261740624182623899507013684310346240305882990913972920936662399368443143394892190390141221353417535814362240745092734260998679366465741075657151209503630407779309742017966951871252031186046057251814846290447958554132087000312593137176703930417817715043335649114106765189640797615191070304821857441672210020703774151095484281996556811214974846062461014594930672394592831060132031820797749920241138074446604460138965196950529520991840798972059041759948865929446312403062354257497467519435495514619602092356572652604033622504546680206228585931565965120976111858369873181286953286352764480573127028747034541859662051357215327837580054915495877034280422720005347520008220206953761578119231127838847495674203717182699911323419332747712464931034048647840058117311326487570555601873703806322046752098937845360969825905988075015363187307208619184781634323755683778660033870689117604813575819933412011696279915729158340219204228884197350758733878415835628899674843495292208672213161035666618848486947089780534727082073756048225011005500049546229024603897117100786259366022496820244190548401832707493648767841879272675063459063600658736165772260723607526241484626836896222419028580460762397666325836018940517792802559366803277939049755866187176754015935040113581733342131480917610490628197986222256669222400581794229256304393653355510341304129479563471507091753169833374939924261162608728816079161092230852522159600884122595075920689741382315749110319571440952164337220635223912535088923448478402021553091539665139361635533461946272173420164575553126480768416857800178728539147413490330023487944870834930902222681731535716971649808773925920306143876007676207270778720155386911789154778418561221040585853541820528189984176553756790460310718694099568508914090656486588604636435776040977084100400733809870568651226696415966816826876991234094302781920034710658281112811162550144778109639925547216550445905089924359536290347934340250748087770526222726851659905078472899282284220832767192904078916300377850508025346894072108029507982901140028939754286027524298256317230795523843418338075364895965678718309092794578275950031737511547553649163562177640952150349427826306190998602620771086682227016168971055615216471810871895199382146576139906925327038834783062724957004285671524779820333295889461846880486498808030281522609682355825602749631183169954963079354600983007483864371598048862983390137161567952793748130479691841484021698044592954931207840161480132743454683365976252513981247920832564111868898517932578614776764464422732712714554237340475803055594718077205355417382618500228997901660808070032468158824762101358559428273692194142928518311237781870645539479359671833413907727974219314091249575866078330479709080738682854213107385798230370324416934932264753700345995497340318756602805078038492726378591550769782653247824976633307161137508809295721193328881899640682896389263266204925627115382716212272708754382129090016026688791567181222306681558438446734602460670587673339761015388984551305295636092457278386249860162311403744839119542847287563080540114467583225030029640136902805990649715291952470682215599391109053258209523453428740555586684631633225358347208229762682708899217298848700147129702444821972346620993071696962851217130553944755618915438015765404187215082225377785552463920607601883916718407129102439911707203935960610607411567885000871937013306134478731862662612138712436656223263849741113047245500572154573063078476877048294477449976364680937363724661361084471175870425737319988013158841851979343707734207725391336476580159200322920190122604907580221681084873758693811763894378691631098559704990529765588657640341586368237961921829966317454232419196286256327959647875888198346616053167903499994012314015304367098978499824021557380299521815632230666996594687126822869734166372688182396953412814406563562931827850919105459149798797560926235064687833370785987500375726465867744359419005681821146182216509254955467764034916775925294409763918700424206858421759889914628387572451050664047511828183380534064384680388695757109357228552406217263938622620023472516554941002640394991014921139026102470671266203492156028234239983393409871086603952873197681805968517666917880122372934346590600594923482281316376294722276022299665072812472682870194225254343357940985056263790119301113771000646411567307343615272557286234611403403582798593170174694882939088168097281522356486471851933117299425872339214317630684188590922161115901084728515179327761582320216234274616093160920526931981827576374546238031371072481036703877479043471505841356398683399192085171537812544131962445340227045750659316335363958932426538340674367780692341952819183390918648975489311630832649922429562255800916974072971323110301599744727444348445594039738551789065597630062281901288446800048876529786211072920156832041027486913985407650377545136218959600074823432789255174041258866852387095582021461838391053325628522725389771717170352135855554202526327586598284569439009476250173263885856714638573764527853892561836011281050970175547107078576836540079902812274382846686974404337206678424033294341606238089198074465265594431209135746325011562843322070041474014862135248108928583901419037179110373811551470406592308076950200685000576249979646091305085877066055081021532706687837802266992015651402796498771580323080830499302145907823460645629409793156879930580535023503825791047833840667866204228893475760815198284008350811008333633741749760650134948449923032538856000517287989282015211471688014044004654990232280732993462782790027305867185987464482198715482110281380124454371432152610500182609838408715547948944723387807015342134883129959035722408569647519756829444468899050499298862607845037396094652352709400646464292558417637512331744783008876240217336545634095110545406534159508755288411838818828505540553641178887430925695262638147269214369070210951145988362966445744691312044159928143356633441486080854319097749405039179055883704164097999441916173592085279339682805072523991787605210387738596832990250411493868885225909175120738600010734362094980386540699329468721249230521271228162076849553416649812917594207051051517523811212838180728486852703237207635340455569527599562941966205857167622088319951977165257518652631357389983913455738370617599939035557048212455057248246582096873181337715894509376636253801097897228403203253687727615211521410953418031373968555265312242874746007564241062177921175751137867824967230700316187452265933049374618369989908882855494823011454507722829927529526079347933925360545886200096689156690220527057111235174702466921370140378396046650866892902507995329560886322857906029205581149928270292607613077398225410905300058040197965176550149082117737086376840471316779272187474447057379783810044614599253001174720964215561440366103044757293068493445587104852661209396379144256306794185684837045853886016658793634830727772830404478170250513051460869720142999148216922484620832289673930016433040029840842251478108766545993213283082162034576027133403161292922429045511134062892073457185654079925884240597420338975237039401609777495850204200270175539024966601567526581165332599684072778822701752366041926313083742695762354625408679287480436045900755684039152028313020544966971029407501923181073814361007302162178837663940647904571446211105781288732166700606835775887981258122425843985328819209137800192194668811383835611343769066213830790192910008806947130658871758043215704523867088802443157308302816560769725100409578143283678760405464610085984334849709312968350609254245953902821517283784345934193707085385452450788011949263297050241685733923225049573377492995951183055734905062390190944152961149599699082491206854523357047509302880702880382519015221845517474030563880176070096783847534986698338236724430911576392316136298292093217182792756852642728963220574718415977546426096819827662251113416731582940651968442363483856278024427016981756772843444962861081285623320774252300825623584786650134621026388493504711020247938334619540683482169407085823256335601689004738553935946206363477477107599287412629671009239886189222892818068807604317143932788410679093315978252911409304705185086865582655403293048429515677651260564238942912407138854919626980984786218945406534632584063129655201634580343531774387968711986192038442326808661194361822215942043925433023297998484136476814440317687245179918960928241120620106927654740085441780877141412021960636690847206083364787515902186537865114009472214502198267953138880677856193090889585930730548899385454458270577566580266268321601129715308062535451376220090470861536378214154361838214329496000104175195222186460380621160386469444945922996800535104967555880213638965070585105628287627863217636598135460503471595871799292153938555159733927407833466836186014984382879860601273985176622793029941137190167328844743482072558113530871367215392292824920463468963273549634491820546323769172599027858676897069372641902816426989555772883165147514240390090416366102245082349788957288044244378839507003902479405434240955912008011192780945795270997743704556191985416187639109304037482044931138507590505722626857631627523427770331891817979767885693409936603859617390072024445937489836548964373343893373145075056460141025844398312309995271923410221588426619397328572074666899294956178251764718033625757389495585378204139800083807125882349228873595022195448701054063846971085296369846001620921305044996129928522001793501664257344006374762527569481924974313650893852613158096630585572958804452370025884394488960892121082747670049179968940743154633269311765529065710352354971579189397750700096574799302274722783410400605133776879137048838667898224324941508516229091977433248742093774349737422342570958276101127793938241078986210915040716950538392958045495820264337651433975110660248515996286531215350341001674932417546778394108342008311239167878655274443091196635400956124085979290717047775857297954461039971623821997608490627522545180910168799333245375832014931247107416845766468078478234426524407743688134499903201524885652698254139019460924149379861328552294410083823681623688297145878100158564232237415364061454942449663411481176952071270566200059279979028667783220186554888064767246944324443609122391306581202679936038757595677367959867675547628876656488136738542625090033765031505322236277032426114871590942060504028665126456925066544250152573138199169767952575946614749356136843402194640950500241487191294756738348123343177641306595605014173387827092955604492356323973686885654570213493542491125088902547413747445320256042563333789925790589996476373063271465166660290511291838661005484417102972797020113141774734345373574173587218499654782738028350063227977330343276189395238642232971506771765737349978389124759786834782946748318349014460709228317750191428333504902561069437121521152811708623454284906404325054014475623308491914243536707269410142429888995902454465495103959274640163862475021219618222842171674150717695521137998146918265019408272862029859468547476427499302482276728685087669993513647910216499487770809558826092322098480385194752831865620307052565218684912179119699595189968955451653515226625861493354174084288591191569492193426119951544466738396250880258510245207538225748726937823593161951043650102344834278690678759049342692917501434107217772043154087351529244844676135877054182573644057730004594393417015775994228607339289956302910106934775560227841571253500546813220394156625919753854646772968379210749955542049124068299657123563830633150562616744723512160543647969712617173866665607370296556877700113459897076627846470324396722684779377699868170480951381508715050175996245105996643860755941432432185258244799598438847173961423852389299011307203848718611809017466298074298309359088429481102721461325269211040148245190910879892656881374367560536219107495212120278878791589574820803091493346647851077418359578363037820436350158489570924156118917347550684717494785086147214671621812621177076358874357168247394074317127597564777958122536803924403059344768226462419289174775276167588235914923980169351803986649902589877310649591674022618663034305578784856203298046511169383611790170833765769471908815852882781822554182478004719116627630962524211049695193591179233063078442399050889390923643678236803220480594945919848140238183170473485703548627490443474933697033020552079798076211837609282918394462238724224903672205677996848742273531355820420638888384349358524683491211403018980984597367852973326897546729727130797919363910696529133959703006427900868165972011709501216650372324945008219210613052784831888863586005177363678344139113686279151064519636270975287594692094586720774410778456222541216882718328587730482837259508056248660095086283034789854766770266590171674274408277392668366973208890385171707549527431707397670555316584918098340157994747245632610119312486464414546212535692142707854142849997118293490861796014541841989471233093831708017550736186637417455303042938317404886070918726798006694799468360282237908581643556929741117179132210788791973983639753061832817987815849967950105462891844155306260644851325904250337750094917155841093504715051594512429978072894277523650532662110058334780514791560836806714679194216697382102288541738749408633890962887095362127961072383850496400075954845316188491678687367419233609528256124822018601520521776483526647824230612356155030522958509869790961960570496893180572866415910235018208020661258133413008906596183414622666428174122328021154387751039453354092727216809061563850740937095901310216773731413291371053860140582556078748910330448274415031627600766525461161707553791470454681937747715535472962738190204687161126994698846085101467691651737600273355152061406229337330985220926951199605371636486245225391884927446189136307253670971827708034276044973345834228647337298407200324443259556692161094142699393917789286981727383401497753687054989176415692961418130651639124721036584493938141013601619773004594510198254541203078781106748213756908988592226300904564980593251562567939476882690974160822942796726152130009844517839719293698990910101928443793506390671506279011951858021722450091059030374456353861613047886608403705097778916771485573847115972762003176634522936651705062631751362334994630475578499535178801621051242074922217961455291774113348300642345244657328568826758092713567041379592616709971078907820688866136838882884329131493382821713677053522693486535827160371786713105553614122421990920341510040950888129547601938074836289381656460626056315602701782857334649579057077510192942536239016795370994127857615720236720496287172405323204380205577623572838368943604796193560850973175803954486166043708410292168820752086337445177051599597843739379433834282395264026821878800876692739331372835909678850264471504015181273577989805817491272449828899010938153094223252789487890917779781133226400765795195212089079571217840451437998708178450560798452238827879464203788432446984120656311937401299353102576161652507309469086007580665190157180886832036343620881710757663634646721035440559439505778326294340083253799218420241895764960045788175594993538886455634596732003967250874869796457248700890803924405388685074829388952773030545246827015354261084582837891462211991895368355832854778169600784023266226720473027047478925988944255605850668264282926818039796267630235185748660331506627241672446300590117927322359316645574621454840628365210478242388411786748253560048130193774332715361069855392515535642247303329667564616361469237176520585361691436429343902694319479758599282226817682667287307635144128101716265769020566517365442475190361552350359149643942370691512909019265847808840632003585603258755144256138365113962528344515106299358207663607786049535043104592685090194988853985278815086249313964712240018830845436914325598783021982357987382127938986852044780890474789208552909367722896056014019885468638327545243133142336959545567832529007654303501444994864706924239132422790812793470280274472289760487497496516333026011715138693072987668911276453064446010939837242928237237781755679251098869618863769154928161986342867758871057772569280964742802842887372514492987954400193610675165423371087406709813078541113224116161162540308581113241141807984454498557224523931165137595612752981631777950897773378187625217380742358211542045310230910411714919612218052950071763739539119465988951150428098597205188259495732934220249302049628538743305714624714815445170538623952156533951977664782001542201147976198003944915659735146448948681647741692478997977399945222154511257287490950362824356853111069469157119541844636344361625347335502699949127062144822610393569861716748494311414195257932248573433993173846675065554825431367738517437559724762126014810280536102834439041366142726967291302732652088039937447023333489064845158972318525684897603971591337307998003712006147048518681381624124571135640005574184529757737316180208747362937650466266159756473555540095777256225497232115583006637511313215906206959424447712825042416644292465779996935591019077429247188148002993142913756335881240996625318794969863646430316281585884529441385239256619338629325615280028000037943716288031455779342226090073617977709013354969696964940800743847184270854674428140111361894246700969727010941216394842494131245103597873552308157176457344721127240936086886219586191315079307116366997521002212184437239731623648631704046669910324279710786168136807429802482348360741172559019306437657753658340507616078449802315159073288445309219271765493748026522750870843680266693973252654846252693075298561104714391984988622228596391677956054111558011186758797264547472765348808150706419215967691413281392492907991203589963392578030716155702292625614054286150071941377981067841461952434746313914224928559904153724474099343974256180331010583747868194219819183836772345453851062133385878189076902138536193533043920450693747911566660513043192770216324026999673282229341746041442824144270288787392096765466486652199609777729573963790685324099605311779604298522412150630506563788593260465159352561537440790302654122492324679677194277615675173168190627928972121171348489377070863090403340108934909422946472203428157906146534884814725012768641668291024710626562070932430124459696033761274663385393858994491566834064311784001296629836692584185105040189217943722574307288232426984191883510551078469617428158908403218714583031927649932374284992347305991658556134750325261134348647914149533449710011998350842256767954763651677184036070195814111437166848299715239938094673063045733060913723576804487320869685693947993656756339498181279383902002619710386155701107718944266506575854218770442406077537839698880417629610963801291539192944547170752266951730902614711151144732407502109925845770185201165744740191966222897455541925915562124144122330516239750296891062952759066218078624375599802573504949936183955357456733302848105488021631539019038454076223732878298460950448657997392409867634671316626737360916953602410831698135939027788905464590383936023863671505738345655030757684537111204220029718656353473514813790091551550194659494073800390012443317865790099818033548897263793302613389510141941268308455192074614303492270282638672196887379262480671065509174626055191596300730908137887133063252428815661227515203303289681439199059397175738214243348797961176012716904742032012403120708291296476937171193756933955185011502820463918491601113396516898315039888027314425675030355923590631100000892325460103539197229646299050562639312682970756882617430919714433655475339247358015871038870642285221927320340840186388118546594962951441862925790778571173851715598836431555543755923986022379293630141170984622189843831493244779407174503901389414922628060334515390398004187680987813003976462639339255130174522431880014715190104204984777556230323694358959963142267503972062374301764193009316083634853138880125201125978748609842242808713920465085233473989699411573057470652562733241275282204977217101006444803537645586793299777132859799627197635020512442526300956193699622228479359068479928443153540293749331998784514179988989558312028840509433242763534788333517756938648315965003212186666585556099162669188892525963878870763516656614221845042556193190576590560393610283648725542025786908016527593502493699807121644026805828579797936360858488122297493262177007834889599240080582520467725854806798212811109906272739985516395941261197193518380613356004464443169510256037649382866725377715144877679403448701826945088020549533166931874282547237050799463956982237525310926795030311236607605093668379803905906411980188026503798224571349898522058515460710233618120422560179867244432525369681104128064450019990724779195071266514132243415395227384768335473361158587833840859822038284545455049793405332096334348096643938704408362029522886737371969078899568644436301047243625414993039117925337399279617031946116361506377220444663628268734653483134149182592899247710157642325272680934521504630847454754722685727731183941269927025861123459228769085243729609006652979577832728632948036315382355362741225078751101710660145759358962152732617293313345000736800962134884612594296555223684071357749341741646715332895886678750312084203931616330032017933154207809535423122791179198787669001538151376077338580924934427543947981411284413568024700055904966396152619933944934251364890782852993181968317688856429134268397777815477902724138562779486919562625575577392423836166809953466811260030804354408920505796802254324067544096911817118325215987612754442574946912225661299610329664488668967845741721743131771116029429877392834653468620008697569369770565041879047498339011265084842292640850361878568364442496849512751754654971611975135738022645822132792727552996590120032929229667957507817705500696436689632216378411464293900141203585566235018690890748654743047659563541759943215176830145965087095806563830472201081300933298425673975838016544218467068861407105945401852972604552315350721874433590746798913269154084121950198470707493130285017631741295578621907376857404850061914762244077709681532880251574711756974387844958409817239331031414159991752069581266906808026671893408344406609165003306878634080241046962259954373078541683328001862271322048110019100413618211054878055592043728318749400329546857334665665873872569917222574297352247345682588893340710140173820987760624681467782391701880138234259588262059183453655040756577972830582520978973404263398201210952888597765153100511548506485868475927217444402842807674511337108909349996906567633037777017161591545796003517989592879074966964369976867080124631614131293264133384591795842214301697855982612373421898786371817470895689078599702451400314637144466137239524241395985135303257248634007661528568144147966119651867178871632622437348330438586703154034769297977873895850022179729805416325001815201410038988230606926660356240747217339921111101219663550168472591592287069997237589488974959523111746020615551335937139639275322623311189844861415777580265624104166931370336612625050429379949637920008135394227070913598815182558122887224029335830404207295949477424180245739524946430622529184351054209508265490908969855854069603201203504973598797283925301369269962461652975122873214087906033938191971603205016467761498253084467384149014267811137030171473815353745689454109055720498969344227191025503613202995114603722270310290476976042219246396346885926446334445737207893380676064460882099351244286113793028176783953473984109750428235132527297100036314259150022517678077202337236724040117100140412601116007658837286646928562327806326426908789579098984073721127699905414229260821549190552405620411305067270134230727773126547445424632514655013505750703518182759114293047593309391955095219698333015955078628690151922101119735211380482522826628124080338149365804284869742525093123991508191992003222008790047444373445597454401392761823907849462902129154356612347455024400724448122956910198390541083245272082629605254540446273301211689938000862105887927497889312339677463609199681603804875931046193623885890765293565211819078664481228603856429956420602482231296994040931384814257304014669514157459429285316390760783237967409131876056351527206845993022256252559561049275517111885602164963823942652662689345588413876607309665070419639343505811213493050306006476741449258526332754876371695516466788139134216736273860734502761809724172467712022487604838617777856437203428066417809395931510364219609761586656734641968482175943803177113289864355398688205958824114083164058989879397259533928794687980138756863970179174918724900631675871990474319267963133651026835047176566646708467067790611996764444656584123213095554763118831462911994178547144360187497253961946856680599873341638163890948065476248969750070263160796445083926434344032388542094987858806921581552484470495190407815681037020360608035606895673189011712902354834164163051061444763753557384970480066949383200078368404004911077580252714747967137593092057298065863306015096029279321781298514517857792104915656448064919557310371661841951405627318425190341699312762562182202359057145420817658742091142198832679666705807667945359199012501784900771677485705698649308474347153864257912244592744388286561421820941429271593148999107933706914562039581065217037369336002856642944343251727308286051524752404202943832879768726738471692477467129336029945385782864081047998234038504770481221851493701663011515823721967633041727021473856108495779243505796366010307871550819529063901319230577956545937057011029423695264553950189902602095847743253824963757183335642918909746620323800946057466346959902918461691107592963247431822341279795247855819988711545933617194689718804784115279018247310885461345296966946677793588936935910476827758821473828254936738743351726648200409814099187591216717642421928905793949997721554014362668072526505243714960835437171924615148399481120066425465107417181194395451585621536947003175115100893839582880192876894051346921709256492988903338423475582893646305879191689770427710248954116782170730144509538051987225913507545230375544696617743893397328889730041079903111616508026959362693586654844629252712186615604586606105144012892271796994639906916180984375384238676209432706823476469905099377654062219514290325612637425071899548721434505936356960664944158201846300410526529635345099814147591865412262435268818900538795130864775917450138675205999341848388024333229391450574606297319355478704320894306558438221063045020474269925689046428753522969603825895348479855591771775650548625628746719275243061541674739544145360578811216167681112559437996324147715007216216921897473418053789224937433379021241147739959995143296699522780063883914438124688775400081867687400032296168671760383473482928827014905115776684345733368895711750738189700421691135613631432866737192269685278056854170064535729285284477907202539399294965090488388179930961814323726393802865228590502876048711434901627070108810137100800237238184616872219564774929086766777734480352375736483062300762991061587855123263728614313948506165090224118575323523293683487883676001032037912403380406095995708678403340007380787504624695775351538717039096060153016828771839833306291717334821941570291488123497790238876642815403276021752418664065066046956699725479055536831438949134755609374072146586196723371741103150436632725854922245874593517635217178174834757688554289890277296830453572949146713099794785843439253684269969717817042934666867992923746684971254972875837103390401667030024182651195235653259295762611656158012410062633951707030246783664666005799531891334872764216265662397791416562536482553563768494218849744594410323841549627093807139858260200534947426550528613804952384988481937115834861466106299530444996908483413403515320265956967706970716840386750650947328927171332203428963753710026878986137792316799644502815302786613570376577388608297691698883242285337324348888977841268223266776613285918646278261760211502596970340045934362721678472025379374442289945139307094849527319218161271220516826638320032276978937044807497785331865834967717934901301003150205968407464791474295224657683274835213646728342324255090570057361840325504263275658808142338486070526855249095596133932634192849729325346155951273602165984385420288799879599728742613856640093368807191196870091515532034664306721578571071051193145359119426207177017121841641244651905550474381099957528100751132779169391635378406389778866908594555250865034412469520514482312780204096324728549227632791550034357740590866732997219850115220767048559165525887514491908785058304517236991198393378722179198982230183344861952084778186514575931951224382597921698421891125389288553192997488197250465136703133134963836752009120641639447586293315820083224145379790721534606700862016176692925835359442410170818163216699763495112050975588953168417101287234880360597518598952380774276387860925753192027898174798822374830231335936632473423002893685855776679315232660778395024900676792834348901474190179710776771016645494917999261060649421936568182087224768581273710207689914833352378250465811784068915050439655243222584507952404017277086069935635346743826766821539942717986860448217087764757369657161113694733604443872637407287793990199511045927328653554037898215896507786113903595779329885759582717332969134632528757527419910224190694184159208331752794218115626687000559705903716431836378141218203314442721545684921019112299931221473317632228951639451374155064715687771609872410586077744298175069531797370038274477463558961486403279214933463344962473139415419015683439734960058476197479662815843035981480293849320960185346468769471389976699363194404993682906314854968978268881402207883464086056626288165744644590741382864136179468230722012869873790435850102322277939351660412425890231942407760526731316519928554537854707357537357286705738554006220646386683249923488262608853085329125704652635366916307263956007859793349236059817441478621829304381929112423404686402089990034006077146538729625141223140304153044388425779396956576510708123101142604936593570093561127605641172274296336901724269435642556116433404787758135656534581377295491523041998612258160858107846192884248226092076451730658994723875324008388006893102662367716079683287346331202334601226012316695105756566393073043736044325350237177406095524619585105289910042398698976131770024979018063557268026639336630725434653792059695476866576891148025991074058620922546529418091767109748220736638260187213927146342140230471571883096304219623422144376327438756254967108466252636030232577782087864783243418480061428059382268771561745716656104213338067924705200530862976919979324993787010569237518478644163773915777939192167063630520978328040996714905749698465305914049467858826995683390996952819161261267702955870082940178281502648259207765298326262171315177276974229379887967095100939149557309974586947529408256850599575383777063269465785638926397570292533447503249260351702963968895327598594219714541068677993618024351360080179336405915758248552708239696856495809645103981490063272361306750553210473687494665028867984633548458359512774545888919193455973568658061964886377574630440838922812073624230561940514205949045787293419224247859500584118070082045815107331678853566057342047716317490037950202579498525100492814861167674229689765206818837627781246046754699470095941702101243255657968166608279849816828635636182158817463436855927616889449003981166258216568876650045536591934248384827928141937512791221558632380295764807624831806131110378116414545062976074107457285174971977062813078576532405803099603876172497380864155975622296205277421866249796041431164557577022072297685895333347778159824866351325944654892983059640363226831634794318850405422850582992884273311030335434481676358510322194291068631892353386536739556697974581062796415340753961038188425398343773037051683469818201700500346966767312007777381968546440869818965819733989983816120882890310556993362309229154713594897363712808934197222443000054689901446397526776959345581960307748243468907855879170184078434720900276272668663616695090536231045852061016242527289167711430670686233219608944189615414069550454020917816854419503196117118630599274165271308876614812187232133767764558565095386715149637660167782144216100372193020510907881747003939709940950831996616775112853423546301180396198394864727674208805312666751315827899594432022775116343220804881695372640666782424128817220051846475570912552527525635005978682272582852410070087736194249062392347455693249563377626684576386766661880880707547125963432592318667169145546408143336694646593336384724494749552656883771075665964041337257182432406649220323432457647465696362951946773312942106939626211355108825564137309906402150336377076897122685849742897899822832198528139881677335558163666814405452808742229502276421384860519182476136602255011168553055906504546211926508949087654240515924328172771568442593341521239029195176596200499102243253194745700942151890912404248462626390253416838282066986066825793369973769221190157680230908915272806687128536047750490107027987434924260954089825537408926438161326315963812995091614138487842213143092617817803582153900205686961424223270111607854252865319073308147985508256566476656161352761771817629283311703088225872412930899370649862222136357164299734080275997542522327375970847338979621216147317082838308255172736169211670303936835630219112483603266086311639730120031429746171217429047443360809833760524431857444454236874953361449297390258787357750617747482772834534480641269429818088099872218278070975262994369910472670051330709898188221243449509771936815337822724311466736761497462507880431586245736025713726665273471299183191361521651030328483850723170203662761396930752500356870592107915042195720361282977872293120196772177307309996878291144722731491851062525128605367206688362023290862492728635064290553712823486980231701946644342742040669787050975535635967193370577546055128621760503858288453948869905783468555975601978945666907340240826059884978615875237828223409267024509004854195561611384784680793517800625087762492762640404394437419314010061446415640497485644463378538529155130863659648488492161123342736868275107999767989094133582449065405243765432243105587369932942314977311423357109144435497106290923198359921229902010039081165606092896739288349425989084729207614882510085785663919204182530130341980701067287726766747798177273256315179780125449933060674822886191920206509736578834342379737019843968934038455718670649071079609932686644234867938564769364063886060004671046038989227578228048808959136263646761898645156149170421780693087726243796885189418438312581321924741806697420113344916674755537305620651560602423484642516995810734117541511352707518620757914537508671499759987681742859120564269699577777424609382225828208556517127588596440132016793151599440155257443739866572209289502128785630222368426082153875243954941123019504470411661021436418856064967814823207142403576406218547376354043633091350320682877140679370186253840459186493648802565305842221473811233014229234727444726290823673301200064124897558408239105265660827141573177434725196595529516160368829359247481835814864447311950823326980686696985771150250606564085979903710370155903277357250983013768148644206652656815462444466197554419831029990580498779211002565301599837404914924949805506160203436460970384414415974705066375765207102817642643901052227734765665364979649084843293609423459242442209667622732113267627716395902443498017081250051603012887139284622938096983521215327860546915709127969872422590153872901550709577461803714057247932769939672477098621223879635743276825730110819955080184938359152782279940474655790366865621424220013857407829733878827003516002680578269110836801827874141579631566330333396934189075005189571701404068137131740531899774340090924900151566086930244972958130424581520130691520341272510517835008246796408048401542881846248449368098528398819939144735960913047872923344793921227857899979525639727115678470326268947559665488213437805866844893316909352357755364906947847888849902927934515016700871980138155588006814516436667599417237492381573557758221975067708299889334562065213771369819378939445349977490354234050420216885042944854628488616194305115385042106958249633316035238007439581891655578904925539379737203866225945659448130484872837335006670433053298287762630032500840089154625712175245531511150790773534066514535123920563382500897903077209450125096667864180130390580878609483564423343843667088285081695812638341210651066932258100556822358823219401470223576235014077085769925169545474128191290330432320717597714616246063052467667556661135228338823268078974100813117091107262582231170544299975174855567827318046035001323670216362114919025914315366651844761855307161035566747001622194973610039980580889586981357215667360359350194045853120692377915820596851909735909690017465465957668905580839605625677619999942962533096438105568825818895980218950248701326515819891342793709415100137423337484466500900300256064105459093054031686591004587626904724259677765304532402496208812739229103093219163414366783664299071387707647823410787126308563107827114091417982163799230567353202858062963655003616036872247913915567841738032826227440122296443646009766554071600838589619816537629933679073083597127321517539871606860266358432150482459343362871506358198763900495051353704694805083225134620245534093297842020962863883649403176411741364818511561013666151030610919697083847695730359954720657679385166037747097629024382675209190017748455924679948034003468305156306848271620169146139165807002316854033660697788053860711702930612512765583255816238431616594466776122111719826419477750661817249505258986996114289892864449926992164620657686917906665170453693590755005833198786064952464882026693247252890883960763717389471420522190368722700624053588378805124554322162828962682752721458674598670505181519402576866060518991079536116995794091174705222826732113174307696000400423543336871140795555504157647707270777521375253506762987874663786234251974074240378336296049763800397138863119037593723964169605059654339090540473220785691929096416704407282423585854194126198801180179548848837839575835665091824691963922295391568597330804628643711661388284029758540754065891218514598712169770782141460959172702545035794033663679176468522641898706861375044930039963727335442784944990255527442409747462828263944743349624908237996067038984626451249758172408611125959610109632215789318845924027166001371555005159394934042250397038184233034362341584221847008070687646085519247315410859085163204811011726658019453875240023183213569548058155376698341350235884567867185618396838172427972413955178678287194864467856215046078057433324303518809221125796138426361546960373763857227110240276998742354409991694382234604208045440953669735459400643478891942949309497547749414386024778980409272561111285735187537540640317666604183360027902940197030334985848420540000405167535456154821087869098241136463791010143376388679154139591815697488858436808347528730277461452155460981369780752444343009886248196811574423150328166162171204207870322744538527184055513933927494304204956176351997731426282913034401181503900600392941249602132018785323153227077939966460461595914894946178449105561034341213787194558351093390920042901392533669062328958254211605412633885480968519019900606536557097776156219964898526792519789163303691798506137812724289357339770213408713744481036757300162236211892405898261191489535044075702258953456728855091745959149654154921336479234825909703637070804017275898057478843795100776635926461394159085951859469939717117886106081681756867247571194676705752663199961788111693574997578699871276615051338601662311116117089869819092538807086646419519356466849172800367931274141570216347092599203336884531648303713586319782980606448974145860865627906990098758956345441806613041433929436443106071856176805731865726225037744767042898077891509446686179903930307244385775525385474871608884199721421399941164367732834642438239426825886219026235635325064439019447217479723845440783897398678438047427721166485495229072419369605103595118680607082330402766007368576646116861391386524260672806460219095229821527227256442517834763297088239609991239413491651569703479528199004433396715829355833889519881913465372884328245934317036601206662248988018108751871199184881573125457570200987021589739396071137250671696356017030178866994948053219707432281242702430087656107039210198777735670785402669576089713187867974743319662021416266339375993162457579583013712994626456812466681133325026638575450123319224907429239488804701147033707975369052615755720328109577217564224837624245791343834311361358545230682338330312737770013329259569316651437494665893897843746265172106946818431820538554331950895147060859729304552122889693304493617609564707315530475998694852650962480442829892027796825290700695821946769865900007238095949271390164547396942783892988733621410413391740813707441941711932443359241039872722871209330867860542359586060352329671038789619104551344857873520451119272054695135762043883329091407685110717085548924878371290921759254062519964942376569506396337356877364337901604682516057836090771391995659790029744338614335430151195130319557448826835368058064421215703234153831048609597398047302606418660779253418154048149441811775042332118282977247847339350272879735310383614243484715224413447215748595130682542112191255941250762636095090893940544548968866883432481418060910661583139704080698206558409484021726713070178963080066234399505900759491009511504127381134298046166793092557432827882184153875299060603163469748179232409497905949430776330642684021037093930172724022315740940832719101837125161382827584404225415544190456144090146403226037216416333269378304972739966112872951715037056092323552874143101434125153781229854566522630885883439222890834884281080617819154886885168753540589108188701880946417061602628738066411475165401278098010803853010128962850228324440210897479659642051642171938298556596032612160616969926103397830352051776508867990142224445670972322986837209849262341487132240854213264960242675771795384773139961540487699595105014918106004509726385004753250926025844988475976362837886035059400705909948005718033105885513462223892972014114308781577250545964477932974648211111872979914029172172182425583289048305298260772740516864784052356638005078977571743560541435132737618662268130134149647015525968611552924656728074757160020337531833946318093408098429515318602376165292006377086229944595369538013840311824855954002139024778502684561754664079505500739444789850319496991809582629279129091937353608111348918094101561754527176627123212328274782059146025281246541492984982391049243191747104699966033342044738031853186561363907341885110727631045942870880350167777472591011173974056642176459903281873718434984369706490252736066871804290425033724431448566226444252821437423939285564192869289835846925836525576577910498595848844009319915693801553680913435213394861215699953842939115884056083507517717283411150157544709884088319586068591448316088093025562679578807988892681717341063471585055461571429493430380395539595796421133916232333365376259653236121473252287079286083720973423661037793521261832492053573028327236033477559173616539591378521211634251345782937090084329041442758636782868394238701006343086349517793545951289279948108108167762527418340223247823504722764779892743213503790165414995646096737732297043581608355695399191861178650107575541735043588112877222546600559984166115326851777253085908262478619167079173205426473829447909715890599708094132779108733664288647796946381209312256686552197753907911110751984487314227642923340104257853481239665236256324225655510582588391193092851258098358621958350064798528387937203216577617153340821863014306938597305388017503428920459135613173717872462566494125595654126415130268808203036199550715059285959824341194580826331121662859047266156890512636711415644169201509845751866351878870552158043750256128761927017233106004030486684632375649747579893210797505295606990824913862416643144245945808739986705247922107765007511562130250530493632241990309405963380164148487388456746873044653802559219623305844378664017359064512394787997758682433207252097538361479104799140802167886952582818163804815228784039881857048093224505416672805632695804952872117296350852026965867342182115976445980325942643423360217146705255422536808782294417997728967988991888802738536688410123941751220957403885522182482665595874166633589828894072073878803966774189459355143145126113427756530295596633948181048573887626165435151018519662992257237408301170425370664272612873360385975642155676033525084958967730899897789737940148372588519778377460828611568320376732001193444619637374829173229865855007082664967376532780476996971701678460178800048292664641071867776485951617921103624656542616002174382754862937433605757065672305667830555355244691926869545950773630613901207315113130576815375052924842230362441816299032891766133827066306258943214853807737706281942844518893098267216149874143451964396015015049894741332875036290326461626640363518997861507827202898272233389948639408399881518193165281110478724028893343480999497839270417050485590762494894768834200558380241484264327741906265411216177278161821771767525346554208498133967927163470570765620641384490093605174215184407404706812906838638566668015146342292164267728080854679748131496392934716995540960942685812295826362280635225744253791102903655371938135417012615567204812974718639000950731164952269410816138569759702221259654578440981969644235045715346943338109198427372265439296550959959242160439086303401726393413790787779866941043242126351874987584305111446784877282927854283340023631921329512641244355743067105527631881584726310598825792451122615460169772358867505888159039691451271849332930924263564417785544141995169316223370382490462224209738217340107410652305325649827422986505146469997831676577062337704536425242070446689696549036130964678765015939965265841510175045496382785748933358634752036566203209605989140748946656988703570316883208126003806278630631712558604932508654514642010248342853086629650223103863422593339374101327024045731039926769109545079030564860345538452167171691527324381279511236026900104049597933164888131288849650925567627964419176196781973932798663831318593099580721208337045071222945237236428369156630120464135321002956195812355261370119971911591067980689342312282581662721377355924320854078454847243014653134448215641627148897581032861463154350390130771186819358678043156381499931868682267675991779036286305171532825114210694910692184163872341399756484859231048426840855994946053600427993739853725696524522412106623061046824796242332299504668742565409881259310556038248463983746762905694013239416058417937458960308787982124727334055392516134860886843738009889888046682313695751125747961716098750761324718234631630340568389013723564960394640910652664339297550092231542165733048962936685038133798471001065752275844658669998733117406925825055930767124517666960962218111222930790975535693310270321571867384764507119579269784578423991712672892373761814591025604992183745140658449283709503921862654169375367945423875080167261139699419014693258311022414873211195455291592310514253008332279935681551621552007736688078502430362078832173494945356549308330095046474076094893582395734835829431205449156860612456090694879510562419634142029394893198926876415009220056852841847173351470317142929723930380414042845883146021301926437058076225138216826368527053766257767972294380260312298459655039008325906349858581178281115259984521003485069678839198489188743755490276091094146434654764448440765708631128782594989453306646825852325788210824951733911712399073071815832110214472072521432440149732195015970391237329037072612901971021991906482711479976928025998787216582623960531391796160445174923076603702487904113157534481961068342601736072200881411461816196112565843909195668865654105294747617862349232340594777105616526027676660975005927039501199559223950883176712385078816595229474683196260858629207168274429260875419183549488214129955769624700172134057517420012633255392039239614345666466212366897963098531254854066279038394976059006183169217191852651802326128217848028025365444913930295959879267412479221660330394479155233646215958162662055501416961551258763921252684575735767454299119683793506492319408694669906017351621847691618723437428909761346259230612551850836534096327087654329325662240005396205480212267192678964035491638719886346094319103074251882576615762153790835577852182045304561672351997561104836673103750930236412853509586168845655358231246989650507519866327546936334692899899166997745218232375719971820267901549867816489380285195891626548279449223836844193310888545932418926698636912787780278829145396151399922802028160130942345471358246722663659014154888568015517628196918528435229970599934487472263407486220314547981989763202152249747951712034559864142448273950132381949640967265134921387172134490537986300200037413532898074936944042066143993787615839147832823566627356936535782169131780542355342193283450254760477024358533643447650439825791685857332103088021583220444784193147941562288523870007626707470385779291559912302732902875173622253800643022396676408993970624709508716334563825278992843971247140392935375922520443274743972531742952202464364331830505567969659413240856175865279015719780382656430071940810245298193366019577865427565157183438993826017573914956038725186607153529270386114390031353891695816381483273727161225916911140007153150828533664908999906985888992402050131469263802618847084554572203860770962036683336126387912653755413214256280962444035215449452889936647248657798266948396329837910627860285919186549766115074610588205626930375276652802935076557618555556113077744520094246809408296917563473019936480987827180996297877651773906456204962942165039304726726308601080653409050879568256361106577909989294982514521795799708323076667088322398266369263048282523047905231077335923551838306185745257997531605125940318573176433623344938116702717710234987476897098781606411468369153538536410029522857483142367376753793744269292055991788864975951587304851706097662487937495519286176390189156401533311667806301632937654680308492819706612553852837222167927750829716505567624935595205702184220207695264551337917132858861971713298992441502616313107590451663995612682855830545550197600037911690908251585527006993724851077747408206881980501886041645264689829981082359920179122049935612694094731054526173378988041102410573345440546485906264771526653938316477661604811425216155970084978612218516435709760047888447318449199351863453097977808236068227191757993355993789880621178393662397708614789089046295207020557206236266028217962717725158683719021589841184608106432104548894304823845493732197313012584315390637265897064022666557697248059493742517472904671343022662000468100052324395862498854175702351797879361206440097323287520939239829947102928656380882383893613813149890421241055594483750965493400240124689604436648772136365012247266314801096553185635512593031020848757201807827704176471774793295973516617761275001515570870310532654309122114743935760463680663530422553530965174375880384998402491991790560960594734447653645035316844080977889576930606402080315994797840971946930343762793076394109333724291392148780865791892433640456083649555760566676269385568919770818615633329470928678795008955942150504163895412470944641776182491855900391571272131174645921569693418230906970439987758020701761579487950825070298179282648570264830769940033819412560298691515469599697138356904574423907304075037757910640786229659973044614329228052737048645983346408006332514141657865773336157806269566051968914891228224671709272539554564586084300893091394985257660822363585216443967311623431113880083049696809343750769801748313368813442038330565889456480730101189977610528501677686039037508730918382707086946282855481373348734978533037125974693652185671797764347538187889999933006374019654556305257933448164974692095951686681584071942620939687157497399573514675737936301721466646975049265831196378302674371121468770098773743614725978553024765862148585034741436896642856828750133440921254947822861206773877184302523603280982893312145028946981854896208404962502721564499828162246295379215585862404990246389993596347435427226934654831415612174981682208729867105052988550783253028523915917987795424324306750338582161572038252289256571098610769332260526916903657813503606210952086996221191107163618199973173207696410644809237644618722113867321459496235139352358039030648415495506320876863046554269439236057871944361097803105277889494704520602849754476455120071668621066403795543402981688450593305476727549588976509608391101904200909832565035474630921669335907351904479469231778994353329753619276759743854345887996781491895861321507706827923577203431781999808869926798961848356336115327655919735664145376970880062305729463933908298419306846385029017507857695933135128291200333712802931371448298461923315114717220600586031840998162166075753281560322559576616800469592819838806106162517737249110347117458000564218320076706103665480817017420643914989364082096831190537681901007929187083500081302470964126175101569273673456473489307663941930965908601045075719101156360034683162271116369475440207786716347380015425246343565720917004559138297128490603052740081474809115944522260205673406658214170006399653745210481327358812089612581525888484600347740107608925097879444280017457408907807245984408519535365873024168851750253376852666683186341274093332897741526862345891469193065311695505701191372737338764217454983640833903370578147486706014959296765185640631963683443915163629238409897729740867562198503521584729049361165429982811052914884816442628223442690298369314066105225872297186963488554761340295067643077872451082107960487330634204619309065485277543037264270489677434910816046327488457819640134289140005578125755865080647629817069457789939511493169940044802802033635837052669147215508721738919088593135253581855136136695480781687667477417288747237757200276845894351226199339175455308463962805355923705393061439258672677464611449881426747521993740909890446410083771667345006610717415975303234997268472643994159815557970972090717681852836000846977652450296865631566671922655115992238465638581052994396122332311535495781559564601258891077034026828916743850947665189718589878501417164404201716656933733991255234422343455880878112142673656045327489032568922930436141414240704843115224604456468747754957708575661414812650697717955966879394224718527499347590491820734192136603117790894555823301911276751560166709593055442317535735543788677395557042366593816589677799856501674893719402049263764985810893869014211520752048595473343046393459096784373077689534128514890960070143967699809030905219399634466237039367761765961794550692781989675114552027593931788168932963296969932860035918198957350853633612571051451883016439440796785925895905516827560797422283032501980439604519135622264820450911379307398710056393559289382712957383102940426495282640864057171809653212444611060320988696940009676424972537503734965215213199962540022950666574012535193277290878280531543295163582565739245887967615609344563553895187876684627461212557634807724813370494967623793212609335013159570480643666231675781134330959438741208431750843375995899881635059739909971824919302959017985392348265280659382135704693735591645082730253474205982037380854753396622641234054708885118238427776527250881987796089950987797211362386726001726839223418829629276980517449005362527757701886434857886326150752336296888918338249934655414393729793077715128566566492745027269165869862493992898021210244446809146692869370318898027701102321593985542441286310745198010609628939919094211494109157528724492239164590012129499733514259465314414989594258953534395239691379958420420789568892402416858902350378518708510762113601186690100339978554263177303763913387305246901858519043967229004776658196770632853167205603563865418526926876030403421211243707333432318788792718696307401492857683329662384238893977310725730634459949148148695896881982416756199254499271605730435805036839562833543264061523509412491393195423293787707883115130465054937265950380313531627893744133218519758694872066847602715740255369682617716143658692917816853330776521088412043999753142834068847296844396368501070055692807613941960315972949248571400129332480367088346500695407733813986538890091835830929042280366760293737609483329021195241958684168036490131242060798617327643958247300683031666560809649855498001909746716834849962437292791837867246836360029401297972135645140753525257982775427145831921005238124776170410711312025737280707352823962879585964550518138297768853869234601109776890879287526329732184933682570086661653706715811707510238485873506880978213452703384976909931495806831272346563936961516325059466018850593322126475542396022644660467400574229019139453202163829667197681607282850117806328222923640012274133265061234771991263718884759798061312104184369040794760699750061614420942144069412346134178161934218505533630741835004405366197727968160666328085498905096414119986931773625012173204088164342765342262673064580657652174039357687921937045685496246838956252868906584484539156869598778034549656521079352031507846626380057264954311621172242862011763666328811108178686695047995041724004536618675013612801558151292053684479367444482986267964148413724797364982841355440929616787398249827371208507989087736908066791724293808889075738689024734004071863125575681751895360611543989371754928250754521991180559456282036002698201106830828682573067609300199550342858487387183467001703416564347874730151378545043141663751755296666705811674947478617317011740030269148062245361969943479496713012042185160417468597353317322492291675535156406687058356151929436781673609054461651733207012749048423734196264359552664370499344377772274630830805133608380122040263166336613662788509884240756467356401682462672232740207750472891016079094666602267486625804793888149586163194728065418927022420613640742854160477724788665611142728985609911069029515785468179638191592061576654521560362557038389741333063692433540871804856303189449056249641827855953149577578494349255592446770838217338315902274817977812762125227236813157835306492505628517006276562895520567089322995777233712089412270689628474270783609679522824380638203731791956767404714632108154094839831244565937317454508033585509809882097333397880351052497305025583701408322784108769117572401956059792675536614631605146483496385773319843132650549086868764922643990402118916954038173352606110625055502112655992803363165660841360873471342761450831784048152438418050478264316753785187609534629327612575975465974538587529371956953432795613491556794982764756013210407016272428685411514195675558510559457859039456436021241428848530396347677810942933941230119033769745107222286707676003922598223011004030249616250910602669321589903858395561900970820398026434579506990820073093140493245920120393956709867210369527221018888236780221463367010655030528881856426983035572910059062645625424873233932734046740089856858490993754465239274730156443286387061033836687473202668256589769050804883447032096350429612439452106776960872648453411188635897100026502704901529744523375165923540907606906814041964348621705115171196032463897532096032752249500757511144176788379497526843274779345057639126388348979958307650581537863773332911697663869882692645074451372252130972694596679876224093683180889971301509282846753317103107752605147136707119833082477886930308655192956218141507689021393786038293882936948774087052160635619811878683273107354387142482261402984193964000199029579891864994624984786133952637712504364881932862379619036690330950748545723034399708763447885853532204093626274951692326394225226276894527933390503051355644037265272181463079076113580951768421194709536832096314238195166041524275573953707718450613389786767109843972331817540847778465987028779555207499047414124179510571826474657471933289737673025481127840228752287837887679042889870735590485745449694466185209871628979719049498636778733316030423681509550600797336208187343393894817589437188235034653028033097196084927521451940089834297583075947346236057734565252478259550238979813984482646988069618186507837518173933432209579948748214498153271393771142994959037252963381838945649153825256111484377894754599455295517853907189972768559724604638134657394056654016742958926155676111700170007958613363933375067448489033978014549892719563203372581188554655751785814538591774791769780618550556263858405376538278283658106583475003442720214437909742187530951742398722154705142979418942515401336237737413716111754012190370462883390444550001841379790343463925768307616752868647178613171250256733258912795809740125197081302273307864754789291828786046458290047644457189411239151446311204546899633449094661280218463178083000753000887210953764025601393718989901425594642781223335269324730452916085646383587641603638533001943758713798196674185843789981077812672969626307696854308647742160227595344453211087033461427108549846858136617821545357329897384749026529667187660809147798323072092922719180511651493759478503261054545369971367825856799268330931502728610053525838074142513803465583863912193672706986028868912193343763940151675951022418553767677759978596592937369451926581918618372486554359991466795836343173668603001630726752524843817988540120991647183219375922115454136627009674911219500234936992283938167575789772465614060561930297002620108115923249093599590518599443244140656821539573950395154886036607209976280151505305868975144788546815134819134426678685267519208566066110522465360479051738287484722686298762357679410574564643555741558518773866518305434818003676435639725624563976296109329270611306556052264101150638954984835330658929120748623476346576788620324299392314709212142006088576499771776420659676013838389035327384609299516474689642440825856469930298715800567602622620243611271881159065635173864929994212609551592483653907977148602215102089872230625191013484730032917673061519838785151341420714188502554834356643404682211830744367031384370439873979060040310216133522512906472772634688717649744121206952860880795228400006676293142543816558064087528637678816988369106530226383495277077298125661449630195054274234756906116050153520466111726091148958102749151787119125475315735908165875355756049742822142558298707426214912936161608897826220298138966506199709862863542317134778355727107547268470899132055552286718845043939133316188217170635003014219484586307855429758213088667259863448903972990131812760868971303689720911669906579446992081168463045346529927568338647820834427983136847598817161095308762952053694541507612238461228719792550982788284173256919028921975434674716167501641345404883253746714742460953840097098860093577863693027383361036165973008901492394752495234147184604423568153459546090749374234511983887663506267692893581719809705280319039797569015789593775791758057546077545379395003587945169192445916514891872048171722219192422053742187140031945364920571334033173513804497366044356130673546860710145084119204510233051634619178609994242139045896665200237381956020865005127930981178669696286065978837845223413944298072794881081628017848780322199371718837084877306952494189246910075858970201735120304495781815326283987421470110345569109122372971341273243604089786280770220357587848924736417972648618030965112559201428566961347639545852127030306630989890450076430639659072296690985963311313910064310281712521102519109244038653262834136057830500519016895177793361416069978584520964582925473100401044560119987899826108638442981067637539964339801535678646698952784386953906391079903204189640236627563654452506753838100454814998386303214000827829826209235667658708750063687131781761731295315996886959098583586094951705036098221688733252769810214501920814190507102695922216857324377139766451640897809268319744648737418423361908108813464699631917480262429823082255498370286273889420331664409450396163398860941019539234579854295351606328491753657328944949162119886245967276348320597680166720396890833109238862593499484634990926836317279122905008268460996450107303265900725910245844877928268645855061317792704566082651525365608572565402492400880756402314903568158300749663608886547060692660228063180915334560013218393450996670043614835907057818743626399162323391227443527426922358680112366085802547452040571439300845284026333848454859544736854958406759694496728180881373616030459974696404256112341219777107696134383971989356168514815386190955364770130378631103856821610813285703463514173880162215275401225606952929833540370246866962615338792394720411592408035905132875153361818856637355660833731114613832817720687872336292963417452041665451540172401332470690423752090222955213507620398034817316936887920770115783404186186485329029968314494323646652531276078768432587218131858431002079248647340125362463526874541856271046831043430353089066516949411594880996393102222969556263900339820040813879492897981372182608020621814116155536743867317114309375207470406351003830102029160624774556230436019461447185538839832436034077593713515566174883692659775045751610448573343269895267453225490185163061195624387154400990932834701178972771531229122004089740107236683294879451012235033466264144264277374411551381944025259434126353613219829380465846508709982672521968904299171756517560955435679249886984532637206644265232616172976472758118330570247169358843554809031390797218008327666955334255825272679804996836741050135655911988393121126892503555306188930159339754818157663282924929206275413160132026088961847232833987086920792460730976979680444121457059373214965827421992791661253152315881760514602494103177093324758248606744693731058472047532132649366424601104648236709814221991245896886316324603012181245932881535278083592958343079964256659780857932912179231354737270593926059456069043280107135508864023670098714395791670938203000686813506897199396081764059239236549559551022917606348462199889133868335750306491541353971150343694464775589685035925856284903606599110118241715787813298831578338973686592164838004712276868294844866899789866015100254401571080070386437898190263748293087113793268573402577875849375044429516804843076877506761774982920625367594345636651876154111745511377792497982865863019726019317867870742809293067772647595049066601941482371993672020733550839126157173022496025904782800052491883953016919712949095245762663555280936305737125299582386975260644680477914681393196545422208902202065277146673847171117719607865373316974979392285994289633398466972941210405426892917737377376702663241499037121492547529136771297209998240702315158857205093068646296938572605248056999097641489990082283784706529276408600708248416638059062827351348026454902356885221431196756059049102419692218977653998486985436314407070479997169041286395374289989670538307486852657486484039740206083417634312132037729453946058795383389049717969056417433956002155335016202906004761072257912798566649333062435350491162830533991119449911793919475708667593539031129045677358357960061305388712523822994489671584195344056361437273113636137546461874631588521654801277142769914458533955810543034905227476380462760650296259064960750874456832716501827917106561194867179204855379578052978786024604524047166785020414890048075220704805178746905210597892889475991265647822467192626097342268763360704677272564121277229404351858023167772786896038035728301022353177029533874088582048221757719838561698516026265171066340988566123568416232595022338705346841002894168911810357193760021868845642211500086184662657346943281176685124614930892302856994082173334269939827427671771962106979802316155802177097172314314913788145055133400611432638820938431068847026741783852978501851248556221308624476004517333067850453533090509497126699305034174989693540436357846498422988326647760863538796186366305490475639552040804373015421187418558262957084702439377640946491597243375478967915974332925030471637985594071894724929165880181792367905747380914785243725332417653460537887742298822277493312677170709643019128524786384986264408120510580134713034627233700905696154512722727727920584818043848482072281411388720508646135434996628542329945716163411365343400424573399274482869590356859641903883613371908079067836025328784338941054911659047724905270007330786221015377201009940874064775606936930447915355575124154812784496064511802221937390177477928121726903627957163598420017913477740013596527880288798359123099449183001188987932776527823097797620298304533254259166889553410460448161033003217258853917296026687267911993731045392261073522800699666971966479365163526948311920712163888813767081650048929787146388404978046869900495286191877470055665010783802374214718362683289467498578465044468370458415605582009472321474856516533615385278090243710247754780181525473180904728458327467459095442561161843611111840071297372366318191811237748850128331374012704758595047846492506233722934269972537253901660651297943627070894084215113506091485446512484780421227990513969222291491383984965419801173472723665107304847115641709312333036472456806953711385090624063531927908167447018004650992963989329126438200286263866037431457086529221213326061076067120860520148197524702459398435459114344505043699843809445991550350946966939512035115406352991943887244507701702951516645490900976410051009688152580241539056749349290079554711408710976268398518645059599499193568582381334921567404874342365027198050852797153520812486850943144412342201132915764614907433282727181554308854967579813564018081475516071181572358796624852518126153038303022729695695690897981192772944838366406721223051507769358821210520555159023296861778563346518962608459542862654790896746284244254813154476114834208248217400384385460573535145568673005134149800512485510111338798726385597511198214553628001993873215582509056019911057835040016906521802310415131504269734872451565873217143000353300772721803073768293361089322512807655454709386077048694414982797846511681102561210152097781558322662593808144819627341771468517269516723006344183656734656953454183761306902371960613987140403111901419601038721521288704687164704302415388573722431725864202718399287076202264065095474960887792314717599189835501259941923755715974618421169467170086485768091307499382632003199167416587281006421308431969710175184054481064710324896885335591021111519743948857638077161204827782051359139153260947599989775776310746452954314345573295404892527263122023065920892042462255457492971908457754785716786647255157932567593162541333148771948453569244899322466729386268184028330291632890773516208899347609297284822287347679645659363868701061197095171922533955816720309707368825175908656277182292703187237866616087484719389351459325131813984856953355240931504127331179972007961823256150231795553353513973991851957013153816594369008016393125625421609603840962585975875256299238243749155163849663476701439304553250669484602929708087224941512438675443448664831806591355033523410765409776748176711822256440218595150790727656040383802381233211096119911731517908193334263371306042065335576104514416486686573577799426033518448044762307227642017862000169348474319086571384573826818607384084091504229290599516636965873875333888452797213348097951675160812885914640926882497222798587551133124280523499491672730889377899655481138223281916323958865076550252826632600507658088337949809174442937441613494648297890943790095158583519621853517950116567427189091844115458987004550286180787928500974822551798299211569324838052033705585616705697632390449535872247968214678279581994298856683562578320560179230392679805681214478575162529097177388584088638646820317929718043146888319571627161424581150510950179659752608465869449954255321568335564637632254370792298520387423328559312755834937028464518000126153749752964680245997986931182343522849094552804611717081378401125704787695820691329743415629699519548063445038254489457160950237547200154258696476357519580174456915850904370791389851309917567553387207566253957273983840708033205315361598303803813867950215527637902553041302751417463928036657757622155623893000740337069494362823957379534588350921022427405467912465183700140691739585099792014100956324428755459732089045487133618961590486450001871026495704238596058627841580125144520555400056356771875510745629100611504559327485197619927417334744949389705564038342201389411188893261653579713156918184071715903624112453524442744762705121543399341856904958813663796691791427971963301796262851427346928541041605939940736540748999495011293787272456135588764874083188623780209373958226914705437588068531003648086083989471997761050773783169027412798591057742216181058886948866702684096217191566648037132404168938604381605678701287920982136725809825434366611720866533867285195119863122069729735926048292478586560740826508622388106173079874896959936097996889274188912463414360461087001814800035627440883828059022689717752854293030352276032262372199655606198268272593882298983963082333334974281087769624255516713911711776887369102161621410114180528572173801958246991067516382934423764687778200292674323652502535827090014429149181874471632401497495030585308025239914774875728175875820896360529712142859766991152982854090613905352320330404728819741335690441954296993489729294554058596142730929204934687820846009444579168216967939038716694419135966182526898723134352783451686519442032681540431498918379352667175157316655340929899230127825231914390525530474027222625566383566874108029793286648678131151017024233360556378508595228503757578601678483332871900554415869623131363844609103422151567700063768449371437605640369065622540526127837031554575065540924808070943165522270774795377735868709357488373388617125083862039204954639473270764961102341807279914560210070518727813312747327651038986518712057457143003318595664487835103462157668583817012493663490730869762230519405374394981905534570319850537717003381082464184272969342514108847147984082152044788537827162294129437162282974591396979615579832514598720010073122019130209003218556567087771540629068453167042219885436995640415239315800650674866511962428746220226274351052065215751145027394743532616646317656124672274619520793380680993863180332309555569868546147358617189293649280452567503594251260328864850974153529279712335722396160414181266064305678283334509725393449571279666309511764820478424422403314667442366694302239071585912362146282210401443284987496395978795910066242987191442662877013636509075155128073556163590702919061292839593644362234685986784406362735113414476844454971620541171801920383197253765059158503044544744316436887292546309450594372014689959237260060563504546018586548149031533156040341092897754143614440559116656359690835471336790790651650977233164780405525388386845166418197277979187564882540964059978045327936868046933014497595386504878649161330119479729340529736653612672315362745670782990993372011632495069555505895299704751449299627018935795389024966751128684092324323394501418523157070344444131114033295581420721327652744114032656038155336111802130054435069001022506940163487677721184923699860161908424136944092110568598793470052399708278666774855857663814112480011581998349146655920329249879455730291662655148713397925508803622880256154914061572584269536575115310588811844639589354708115496433495472613976835085153928748321984157347472400895825152759870894076002813086140281462927435188654561982721635298447459160470746074196566924480653300539353330497766044230837204951291152175236993136069940680733375608597652359061168892248258480238313005600371668015725020300728422394272841078923803962097167832984129707451181585800754872792160545081116921137017157871932652139899535154599874656084085969837736048050326907165993113000088470271812507943006055911780178849823773134523706757856944207473995739269998036911311545471632074562678046468297989826221510284548756828672559953272149580100675406219878245740090750748411993443701572754985861193490215877749549504538747100995607310676546409713974908888054818706371608322257873688393980365586779004242978727616656564127024779059349759277853661750491411391557701434536001710455838732788561097809481475591076891640496351729402777320453219450949182260196574031905674814153431657695187516508645169978853824715716426522382845057395962100488443440479817588840317462108152716927401654777519662805813669766694572910763360516005371621508230502258582457530553715054398789830760708099445999349318852560987546474787584787602526025185429705072151907256238089780531201544200176089905024606098873673414018384921407594955169443819332029898569945024545406394220356608433623045769623537370846188902174166195854471580602851400812344899993630304910940721781545595317390793230638291967150853030705495197418717974793181293659420608423953696844562854869137734335410773320239790424880239885940046248799567952787949737911072095879493739817099464277469908860028957725594945254399231850506170797788079240141305702477894974442118938063418251872974639493456576197963755704835950692602475912660512382857071494220068084502455340908422063347802279719665396367712940558858880575794644903990813909306640208035668689050555289733347367229680026781516661067756068337993566507017354647136924994115374142494062085073960973871861637397534861534735421969211458965741135474107132107708698067928581419185928650354184438427221343274534637112199231361007684430627939331681645002911338832976949772197081048231035260092111832693852471349965856559715062114358858586639925482614251925495760475697350396416314514039356603083749079263160391024221915816843271260051978175994874749104746880286264536344751892763272742475885765025499126196858573200968858653793700022683696535188579788499107035599933577680759783901356783243973921143688814163695065209804938748297705900917765134190829274363508126087647191245687523674918743131858097016994520985627425687642465385394745598960804666943273997071787158870583302353813473261587908306260908789084499063363515288348756860114751858745467174139182294193742946684795997313273899349014186767092473466256432631465638056476704179099291125654470336187195199650728062365869791025824543192142787127329606817386382008111570310947369627462503264468702868842369565181851141803330689743890426808344827684593875875450361114196091483656413470980656593593809804494644712957976801508314528493761350259967963347856300871795022389217342835951204781062451589906886394120051159701596341241568662332567023781828675083970493567556943969267605882035718654724330729163281426284808929527954759967336172751158832702119023758211029323416090370391559860502576691509402341943792009427077379588728386148671413128168802733775087146697829913715232887299144102300656098217434702394716718805946667017157627773165948577759936142523805648629112585868380202463430935580101375936591719612549071990336894866320667481947180496043014147473361679054072845529690217683293544371519093414797996348090012240564535552160511292109804581013606279658627503496912274372768079524413266710416419086598116178407044521724518408226603775314368662128862262837677675679445701056823340056066412644691600362622497919668438479853742019871288715892049360252285558962938354304699667262547077694030421617829256545768939821853361029050897896882080365933269300521933871455763087003166893234796603940588382469579989754991680759526382767292472845320087872960979515808518674057433566170999986736204347368088771608263814795554118109695958991578076483037051815509021526918818487114594406816488540004681657184733891668783052843856734459331277115844886471033931322694346510641581977816488607418696150552987924772851515487396124203675055118233511046337455596088364536788369569545730837446388648343233377179270504611236765158150205919823057751463011837168281382263697994425544090933873764815465608831315349943112740013143151569663089426077658798621115376117124763782499636153688051879964011392507231554023390773810772569384416252991062906162259784535545019658324945802737223695951791703697568422315078089103209101406291863791426938371804634097233234892637730840683167909202765615303706418768703720517099931672930744405829786036311136526298447737625661395732128917819881894052700212361261751722406744453555057983270325333138145217084734511792955394830420521668268899402608883040710004731356949169614670902204263056901106357199215161172820258144587965275664973686203775984189901222384581007401306430914087550610476620075341646666409665896479168388896865204528823057993157428669137559525529188480271092652291272480065064333061869553665679215377684546884631984729405491347564636800204220054911496456043548765494966038893262392944024593969179714883754735974692559103420343292193241824132899236321195901342143326044320448020988313966894613792926594659939060843016390865037678299002769416100558405535951214099050025069015790370038992619419276885223902285030335676880033664542033220669051397486402839884911953564609572271402281037823590602851361141036085670028773381141350088045650482281302580837480134487202935676732819804827180278944683164376165760544874805940161144015758804832546357463265763690841619378478428500788361747648151390412792921882127717916865108689941176857991791308173399863131378097280142109279938149957876382658578032225706656829907092996962447816029215417323904523155335230700578173658840043433846953450323330614227360495258187043317396219558652202078608590490493468178569606826561412812603232539004237103288031120827602570078707525907207462829533595428013748715710135240858224121726250634227622019887547216080980279313969515416832539695735355695601602598598688038225310880629874872105725354682895762367672357967760455089469428404435018261543608236954835985083467517741102440614699382028639563024208205543323081126968062304808310191176993200464024430359020846749968809200144805297370888462870994242539570937719544042798123057156626885081728334084905115240425249005205841981695917101340346127964639030408321044014118015519400377337992399153535987214013118035450552437154692574214831275946080116453098054690172579288836092169466217439126078095677373104726595379658830142018019964312791970843993307367817131432224838099918361992152598949784110364389273699597277158667098588593219792242566554574896535527564371033250726531153927469641049820913988257765821540720059107381637452089782008718418256683404011396822906364776124108469610265846872790907643283050547807632325155824560982398095614732384348743501366774352358705390084037997527794647689377302236596100594216257796094230316130629065675739073889442131788128219046373734626932301784126185615536715840498273709340712954582100824419152512629003507036527795817066952516813495887418116060829340141545473088016485476592484761139570250399775967342073401979143582921902640396165773258735323786672060566356315667436246636908903429973725040488638635874021627731384049560990413281970495071350499263423695763457724973778850851478678473190784028551395059116821692954522246190184709803965135490503841357067505182822528532953579836655316107292729712964919113168959468575408735233236019260813499036639057226449960975411396516502261120262292133676632053728082561531592772055490293888058036421883757152899605306871131206557441949570383874427619313810103400476250072780958169245635298114196693780336962130398476956795427709387683019237653021348891789660187750579389630200632346067297465280606144255586242629186935318214044289838254075403622544527780136282962892408902930995361299629174746086907687048869371543835386696977963511546321215104467227173878043879031404028540847419240699565280601670951902859336424011350972051451668296965648757477038362098477047076303026986355085073338829984901075620076427059142213901108902534278582766194745696641155892030583468949870208746435919111945125369470150743670848294911024832861605566210401505332277905478762208720536513086327422515544094920229966932635079518295307260793080341480545099288527061845571238982560375768166780551620454874259379471444879313340122135248666807455472175665001528171728195448479817456482547897384186421272356003399467913793557280910366441942867211487500361854107651915246571339196930475542246413326895264714705460748354425489176451051340128320475875950551409491089517562112809374575153944929715557350539531225437261924257170857958591901899035383541564026542451052686131072698554008542006274139615734133988001340328538938352581338369171540741473383557370086411537645314459175392090798276731331770517200954176390605813399059163275510334585259480689570539033944499788734681169815506343362688097301858460038784790791639170032379900047956737731979859127432589752627760919262254572890375940917738920890427658906846344982463025525695544640506387624336926154238987763440064067209960265520708370805025654365165377699484058367385030955732195421615895158335174710574713862768260596873293612795018027135942808265378994266521227486780314790192946147198637870250095004092616330915132443822646361775824535536019428456619948834188740656258617650582646335933118243026489335337123705921084077583951289849416528044161999030542250846868754860439615373871725476671256482386873065545942749320376731549867744648740844542971179680894838085660181840706186020453519780071999091613431509950560226980926855310942105472518679217790314367054815573629276081792726875909276056350713744245272336034484597654941584438316088516628352636923069193602644366403549915260643065472413659411084817507397895816397997468167737050831024025785306209222607499287743020236607688985320844763137597459345473324890661433295453866376389865145772869012568798811807040024570831358554540279494206459766907536284962305581142268241764681348019132900766835615953505479811778829075667812766912393190347468110228469115562836125441597330275806463219829027477410266242850105736130035251573183429848686356637095402765301292801609381245006341315889208588414814291576879750550365606424181229881854442193780979803233215998411320079734447925520555216337757706545053986550511306227509675202823599607194579310768709898600711518606982593745476369392938178880499276156150382272545519744387223930434814841041372917536335058809571951138710368667134296732341477970745620318177849194668221653336855949654114608278837886496917805987103935559513981754566933259608989144783619291393468292918504193112874155324726170673967719339668794093993797570743016259899037348712269914442596165447547835305338122465256783691224531222122650702670223941837762583317785744006660566321088616638983686172021042818996573890877476761606746955884053015884130016268582473711526690395631105862742807240977267914258518884367925722697842097386580259565523459337230172008858633964739901097760587333577835451728714041326830845317665170001299391841163180725282088990167096085779070177277752319651308483570338773974563310754703346391614357685498013068375660345614213653715283544278523441730453179373135339206577947431013357696245847550290811555813181225114956723658593907715814452559148151096820244404628483171535846008886990565509209391468888316864528328240796046392514967423424404192777221196734062483308817051172035757872341354530764577530241333758068069945712200362762826128529638375096501283922014916216439085311262468834567209432400546227923484136469133599629787656322699895981418288475029066690359403340288456128980039161247161517441248342083084499671719920455584805036847903579362183194388604379718315284167263950096567410582851478864713248543443157324235156431578008753840370938916971667060425070831483745194370476048461060477126035807808656533639184483571016768996117447780048549968418670782619584751421563196099812342468610808394823067292499032429764380764986625184918692901122940748807767903484252401494779519427914977555412509434581439089377866845638859008571057739567236177777948526007615484153966065849265968923824807751557489466606341286289653345425973788549724958871207157590165831325606437185943649019112537486109911767223191185723038781694617024189023293044594536167277260283081618841913226828890412813518956256260689291341319520316096416518598770697691902955417110338494876519689254800325397009955683496751860189015848060081003111298474716519563964151312925625767737798613740400345391671064803387545424382121021046764127397060149081401521075403695033427796471102264212088610559547538880069855164188146351539689009405366504817400240169257301810644508639189203258091137486868963303477136717949768907618671000597062629693860833079860143079503165613069828170660043004716022947219917297409529786234349995666265971555568744138111100171565763026072362256056538715656209131420911244059413213298370244255637158256211092130076021339436592455147159156776230944815835802321799648412215898933927332918551905317465436816150373034296983873748751451023876171842083914878599106872707569847636896875719663291568570911959962495240694201458304247392623883162215375819037358690360832064331366341631357850172564449784603291175712615668003399841458860342206663143703353247834166580523557226898934938980500454361914471451631846550088508610372631466662670607909455267951308616950683528117817171652941512119715660616931099382161967731999682593684348316655698863940410736638899464228697179313260870372493578929228354128791466971325076138160187267566671848807163964900161722769016002369200374197797747369054425086755553449885194053695693540295569191883888038872303118646811766616182163190495650594164203113119404120062346132125036418648757170029118285599329849128072703043062697179568213755157768054694653499073163408723465745253628784275048299370087447144921423014658630917071965249631663460241711065188754531576278504942900940807179474681520713991679217535414445368355478520997280116625928905746159587686353349264558497574665315605326779394073442540267012300696834816553162881862111527672635582979462955426174280936792845464981642910026311649104096284802212230939167406960314809233157214195328954845327017703888053374444333765665736731458351744472273511307708016112269632822742933950418104475004761354627927749345280971367430816980707434654931894038130180075647267644219900713030638740661840997186662794877647489802799328035551340649439213563888621818697117990064187925817381830972662901675328687459265094774966109602635446141860475031949303985945823504402523535703252613270494944146643721547947749526409088401580360290556702910594999583962412973634636179514514260515259798321951457545466142949835292207304941664590182818950296071476119541872628348234156280948178891962571918895023063917632645736497775113523260502139773284219285505008305446276002154868531609766722606397646505524589325754487194143659564718516563901566493004004138512339379962756043107324123088191899399905877783874693103897161462580217966749129664745104267390300777030623950218525007915088637800756432981010814129561211915994032708365564020653059570229353184846084124924575409681685890811509070907145396481894245083192055663132860874501622196030931636741484767866444615575167707690628782397725257669831715145104019280834798716720788579299449852187039931454095910102586286367852674269780223438218755435816956348575347471734888809132285645504654770072284465774292903319188494694380741863884222321491401728611283667322327505172219155914036446003122375031248445181871505319528991774967949157373353516780022708689062060518927755056399638366287766302607739332221094908379083141435186559028795699105132893765963452195967882626206800417634554865880793144393268681298421795801843413923181339846282887802020201886641824715426621670221272048125819012247914194426988681733361926737737350639292213180691133744474931367450532277884613971061726520711857177025189890219263690652596428390727442408098469506307098297589581309453359707249673612783496571665891265805282689402803929688665165891130398269993995068161352537247977613611927168179214289750904852616646716913886514859425575588215518480727574602056433511745154403532062720779552522040026562214943335367408234042454727857744017190817376508757179439430014105065946276461145038371657144893198686508633377433348364543230866597106831999046519542824246367516880981338793965964067791854068568484445639225674278383702475554118912545785673659245068848464938428465690458341804937498843340841118113721682591795292491258606220759190893068147785030531617012470260311846035210305589927142025466198157897384659455225506241561794246431626721762632217342257239446315165843208335567237170144491639594765217643673880838031726802039756592398538459135372772657323742124865685284795786302759493989277630918991947696433531407888132975707674840725886315059475844761367241298223528059581348071766721384802837204028690620518194781905599558699635311413249200475718031179786858588206187155800746979686585713889455402738877806005224067828507617567672000395637089670068898761090114490040300759296300042640957044895998349833141725810833469004073903321795833366723565742461304463410130901288743795212200940249736600332587814976147921539314753755978195755555473032640783229994985108573319349865642340866367025965763915290265476663482170106143864527821647374479140193356548212071279066740576434929753617270701387363078046847166644441710446933333142244197092144252139768148074544804512273240757620610398874555055985258291403809125885545494861626484526009435586969749815432467547629503705224605609334995950426642301466719847715317091840786051277896788703188800355353950323119376035201288269702440325592298938740948223621614545853492995847011572763587986900699162051547596664530992596255788680345961632871226795025689910570611718177807491626283485341607531472099898126414244777309612433420505982483389687779282675419085937312935617657149642117038091177611905100318316302942067460511633992091796882785502086920422183600805907562937550875041083710747407624778965180064219719772566656500903277283860118192579462437669438528337931362645290659756728244125548685656793935520387701866023870330984866287499313813664514719955814850795139852585185677735575273847770885602952626845567792245542928928408023315078055695750190956707188818458062682633505022209253261160377095844633303753764964066659694684786491809519490781519794788806608174840779928705443128362074095157882828743635399301768497356792371264099021685556047929457265534268983097152110989887147920644159117220212128269161033567927707661757847724055296484227179858938884271016733609202123924046132882921132864506331493410166074982996561471360310332090861232568443530697177842017671413116080475395383045484040748041936938609794105966540244488041006494211698102490063610648124319699146395556917932579709826931609425451910892229389505601077281027088064038373689585499191074402348448201638095013567162921102333638187310976860486265931474796257719321363921145243074605895103031180476932574326758690966743438349789969525977146022512660182844659614400969723935528775488706005423685644607406896352399185311993142591054717582052987327267132140530403150741010383644608248939335396076362557209401663554538325692975267071263574329243693611575644232997154335290300322891741279434446332012156714605513143078280006735861151808650391741145302254212522208769662172917576161298093986620693826983529842486048561328961299679179121659989532276418199536975169268921241324150710257713134325300364932899785598589347851670393386821905117963133070552209089548882285562445003915016882161033367198479940448773827092069734311830481153439872716164387969457814697436410901965969097760002901643686260926986536237061399370808919103058368919183757413415125771027393262121101771247962494113420555170017774230260660295472612512615417177201433817251837659940719353865852764954061304393992974771578063722038175839854586721843171761425802707043927106643488908786611099937322845495546292644033523789946920326104041276891920137018419307399244246173612399394407269278288235859526547357726078653738693751708397669789508512333491708010453148098053254193361653333627164831007130717512319999699363658712406290816883929394732890016496922339355774367398899982047191173016512654344667711569492264151150271345014311751360755917148938982193266099588072996934519605883459208701969799304399364171472397162964880601332810510263737386237579428245732084211262387688479770622576907660224933788604425490398719092123692110796011489397668875362593884142247553264662951077202347523252758343490375510791963473519455166881013967932887443337253092888549752490385868143222242532944718801981065289964883321684730503599651330307268447238323535897030990183909872973850145861113069863645257388567152170276468463801821324172121831365632308296609327262732478980444753210706408321843303757724417262952862778023029224071409534515395626924764511268677009782216708303048896340984979511052713453495843718773125736099427168427011644871022511888577551422348283253561900485165558344272159527687467717835245929980053624178480352670627606920792267232388197404094631221444155807822980108236196063106693212291950263068520155791881073098654605326494296504024811650779270804208826657994502079843154721666635006001809700908278062072278663509503186614524807488427362156721108113175809730430007949960439703758016230817362011312854203940708744954608360624178955946201534345731985476043023476128888375278967576196356443317638398170947960921381033424424758557836723323698650672228135185650014264664016815951598885938335892396735901769820806101386713808687719300140445345800342015721149514544047504898787582219903269517325940540302251653911853539163914414943840978997588279038583474166373682546587281122233712777759290605195885127807884149506793441086579512689302031319420379804633485204649771614939841475376886040000727605162095991972429732690365548184878850166439695430840110897304450523488227448306324381613438420217725082790420440425125939572614274631779395195218738790019092951534782254051096344351407713785825483843547429106921432676984105287271315200449846266708096511084924154980826714652046128592065458200141514730432158963525605557383903760378903568685003255454006161416965526466903271537160126428165330047757961984283401454656861817507913665764566976201771314863134175017113470242898308249057264846274063995047348402541666719486987560705954719420873225650165874080194953546552195428353284043306449081182749498331007876120483550952004580393648321030697647400363563490490636035750482017867297083238121078377295605351208282455467384472036184831660490398317050268534009609579208438104871111819762718475696067531388611936406561975225204018057162282796439005283546038193366368413755919284098290033501272317106692079038271198401552715476426329577080544635174797178088414572133991802588206033033352772953773288665796101881320754950858155755939280255501957168339663528242348667621602328554143988162138201537692060260810811442327646040907117499358833903294648362593522364254767086857855603112712084854094699425130149169442115570978147368689167269812984288318325640463018119597604151275242074482375455126441827155845642842312019487860275954649330259776049747810377150273641042572974957195385063356882780539138840812248267687830169675440906590712490018024730182463356476200922825244415804410237311892842594802105389850399185652216111555284283205419499638454355218172951889998171035207219198538780686904560612873613094874009242013084625664546723489705576585748098239281826379321024563273274262513922716157182631617876003870046778021520028500222426589919148832507377524731224081364383487681150297106794998432962193381446603299322856679178135191022783626156960756037480691672869866340639566005622881907990903740225112738847339228917756396903525380060865200198645174363910649481616296976741492471501413598031461199436908516761267575708294549773752906692543726509548627513943313533821039513502527701170197020366344750178364552556616323546024780863431430476723221903505889468104940398474868198730205455491376246636129400862912127616745393414320880913357391776311921005028499543018388328618614753770212718406949718593699884250323896276055833380072681345631221126674848631270430874923236371317221486373842805106070597775474523882267594341885070548922102340613487689167549839351344183815653128579447964172180606768712561619363157216597381811130756104864507530877964734188850627798012834428060627927555448065008839089068000342746456850371894738760495843221166220866872568283569102340427086146891996049830702604436133047731713258430203762878254064399216841434245306410025344933395667746704238238728794076875441698818848425663015936053752264530643663766756739960449581645794569052411584009091021106518448612248343981912036010276280453588101697353051993929633973282189100659499129348710523438575125933515938979593906712422561992255045676221819024708332249341491045976244741059244588514162064428851362563608313156991811671039916753018467170186000081194062005598938671486408893415178474463293217294401189610835562424785046304939953216353680533783202871410853897096128656976917149356597866872740198733251379057966895937436703947806384560191724857754925663544309596409442369173101230813188611656925791667596676084108490760122928105969595070474607182602335975879888412050909867348230309106420605781056491286807063172840298841570156935900364486624029137577811651631594315784219393646613421013894706480349185210723312617954173350831422293880800960506112899418689822375712846693099687375177625530492153046098797461130104659285788863322434156154378660274070155956278004251858664212069007396103011624263838446128128733575471878244761639925027147334745428971138029836840349671410307931909642779162025545440555850025599342967883790608330006990861792476834620967427628102759500091617267591643660612845448178088040654057586883348081717173066892126467416265907117637873413322427031606266803912918494012998425349646762826642884009859996406938937690094243029848401078457014812486726769323778663231117004552757599776347065939881700148086440543814318109427611898203625144737064471289627702658526325571085882028306143557160210031287148756354116458576730517649146251133732741456350261172118245149895764425374658133026835082216841108093204866073022889881632133671814306057150850454100182598988896374141631354166881616890301073129245792850508010773323975380010192932456416629040902504492359321274390304914484550512605610135522912818245058513757900002937631356704052062235438134416654927421364116214135874091125070775428076644941506235551838628655259041606287971743904099562749599395928250428270662259238353977909186121295651595030043819711624650595271215496233669029804906513092331330308477004430489774305880302779923969207510153323563078156201758808661370404334540868856497320623968390046514903753249317139167986603549109178319285680083280618167552130189254202191735497657999470379902393872421403629396032544982161067558984545219314616231448494960100060545780366503261853808716270723984238707821019135167179990856982159886679972062526283616938205532529055638619532678454848830508897951480556266764300222113149715936304635480566243976428751352626688002176106553445940669414066411555027862209610192955529882248201476907670365675168431243830583139261359313163874741249780223297802301266189528694794914024842615805487589355578050767803515295050128376854272280190563817894311387510223144545968357961312931013049891251669672012665922301026586759275257712076625718062073196908509467447261009344706996602231225937312226815471519721708297468925671672152734351883059009193695512871948646774064870050933143548461055196044771925310003396592781955431467768588231457183412588138585159083576237459913149264367042848005359988300961424543295518014548323217725171971437968758837409607282751127805471634882297107833349359622000721188585533525112538233949858399978617623907174343593914668369472628708698084849956331475474494386428856653943407215102200372526051785225946359859950873695554962668360107754666931412136302946420620364420631123097154124483332651325597269202422702557040032714024619357622532841938974833328814276987349707584630357155819380320959670085392228140910717291755060675604419392301114920334463942680930244782671138261723354005611645127192187471445878112354230041928716188209178503220514082436174948797974867156107682406523526583959615249875495041472902217712527260012794712675660492929829931083614544482182986745555846542027220084228640900484401203869628577766523010804591233835583585910040555280311873116744313029928874695247036304575398821058484521113544638101259310169554416025051335460124691650499074185680699141972955641026617359747230052187340135917442673864002434267270611165536361622960926480888112691476402881569915765282301722078258287299550241176722461110957476836405624930035110812376005179451979027814721588514943657307047631364752915831143508646685314212026442270864982731810550834848699829541944849355980545738373305922764669658274390317830162048563309401761233214739380495779110867735241185413853334608445576239448111275022222981248211012384519062791538974136306301601976053582257672884422078548361051984920310445673647546445437147792445701845050088100847595623038048733282621794161625670933188419889259565933160525773781852640183431699809021518318756398889589534329711028947163459978239444137059054597633616972159205624240289907170066419477275896046464513103699422775351347802342275348989805815790724635388462867052494375491093003565399360630360055538212137009204744975628424191741455187657174554515231320803411620854664465934908821030069518491052976159750925695693206632458358296585175147270057669741637239762529863220873912653542974945996954460691224568116018717246083411899045527101360042237030810789373156330313896428791934418390280269415402229007625314962174476737835380055269432596814703458253092752731004894787126299796497873122035027233157496886182920688439867859783430137359896133148465214756501113925333697622939668230329528038498446197455221235902137985964941648134407581282918124854962639378508065772875938953646311705506360641677997824381759134587725650387257221043649035045746697352383598054253398916458203199002630265141317212777228455660138895388074778410585572992599744154603580662375014917790555671556799314409284731891714704848143325901719647991329705151279490323918684839249785425027192919156788187238384001560674806507434457412527510015181722684008594848488478717704009584536110090174811086434925136534905688721595270998212118186882371102208577081451198444746643869745254498100650831956512309234724062528641782631787992187590555166388539040445612529517495888317621755202841158802853856290289990188756178637743163245636125583985140711938930067600387594533729076821128520448979119431110805292051354577577381977905773430788306595222382584695220191193324842457628786099277508867012079072850050297874933920229816859341100249531137066045122215905560723621448512953198513253302191856024098298421481747648693125399292023864452213936763941494118084458726792088981829080838058785106182495631514345404364409239139649735767116424727540397295349980901636849977503524811415326092070372257418294133629795942632659163888179490872878178440852146429896954719960373663356888453893835736660823072224865773667225627325194298804313164227449592280279165800767005381582337447830342764504341600897335637523820780031254566576832112236635268382150954907164960889650924680256312933021536933850580447357273091046085341371409001051494331725951652875601621468418347222029911366977121219897616942115507415453297999405174674830097569561425505857148003922570759869336509213571671363128344658209769322191061156499912984876338871157221685119445520569986165842380033443542954132265215073890161632157588479161379986803548519994264707432665583901176614508163623070152706493096338918595497131809732155003552328663802125835536397816965374462524427958143954456898934170722228386467069357631740026525041834138221664824657454495874089749352046815890261181880071869115414053418315960630776803158152915540811014654153155623250983727574358384418059592673281537041180360821605313946710179949006033567146771047229539969490416621640156726694785717848829102252283383563244148702021316607878061649698244407057124763129432207114376582551269911296763740247251561171422413011547535355430309814158397774132571658507304248195454569359974528362173438716519070355585091207004566836527501728299678732023773967235019488316881277005221021229246541164447994202884465694255766336924355804927739936125116554439078212720942180766780194103672629697911953599436270926675255338489619011803003028194867942214960787728864685922565674569314329057692921369466645149400342534578348910778675714592663073396579191931870189302052160625076755161488017870748838802716124793715919672576502523268664805559462666590502442386570730332447699954869746208851129158471907804448044147903275875005742456958756292507993000642928679686400450521510545795619540747675747223219245586682616225919761783104347878362059082466433728949925174223763748616822292548755864628481110294988044774074038564167386825207226685651370587208133089876144099000336067657403130421459612851688134376651665441334062016924655254778966902297467625397603709292229483779084411388920765601866975127752119084630125021445038281108730225299059527754240676846250403603867854470779968627097224566515264206929595874701887406564096861917562784155594876134672444978445584339041401779388002058419875365952086560929030252845279488212999621183810517390390808614310244120769855360927974470191950647895114961556674704028567087018858567515854327746121589243922505611952141375051628453499875963886077661834588091358888046329168908332668192467525643410609632167416924039175587213172252954924167287092607624478278513933365612880876373681928445128887436629266476125441926655882600553972676417490658385448600069926445575216674920157987388585386480270173992761894294177703580947333211286712893987670114334031454321230492054337912543539306469401844959224934305704383130317185018948724137574636989776209919369581281686289679162532822846900360164369852373376028917358020891797400568840482194531785732942074392690369494517554093403763467931906956825482033627664475562852073790755452937545346581794099279264751760833737130208181518666951952547916209916625849434497719797127031189358460567990250140894544041148706301113209203986943970187651859631466174953972392094018237695124772810209989434974120056376495026445629234830579819610295065441848044289414640565757071488705801257899107181249534130604989750337318139520942547565959208700227934057862021874930487229822113245161275763127375454358381251384328387220521249997174538861103649341355665497336839672571888752617708191208274424746312469640743135836883347217852651145012583533704342078064175445487911603590456063301035453401567995855955550243463745602596828822868422024093015770775403919453355076984087955407844869943269331621652149314171556588077134930527384036729932029311528502557841019434283723559687298945518772763609948456059917321325854997754327304849954245087331507433197720737766352088714094956918751412230596512433349380942826216031730496302545504493846935236075226823639793509653612686584339879293210796055201905215562061800782981416847589835603198164354483875480275997314335596968791646499337579447709247923872414552937385977713116228650063247397384595545789103808583288574594582048642768125787593264601826900236408740054920080668423614813570561672435834536203782474503960343723252842243561326665825770025053801476192224448953326154986180990309290616744046597245679005189910558531576640111321377346748858541359969149410328377974868983297436527466443533336306584188502599489792685519974586597990643657163153233261849784577545977470311761213241504242191891129762628064919555821073794267169697298973121273027019772949244213867939559546648019607773194973020884910965313189192236513207692142044638861694778363782119907335256797680729037922288687034215651698593095723122511731955323147647849467720612077047017075950122864715448252414353745564927907011100975494384162406010890412981733487107504282214810145238614528018060865082130162331857722167003350229534291465881153529664428779711109863720307574688838805372196498718637899605513343492987029393639237838257145837919383413531744084906893565774260908723181144636374706354338982516787984325541978698602215816721899351979143414161463319992381815506514055904997579623543662253493156021233085733422986607722388170004130457539508123921041038128061824604592093955358980487912152872887428540371240753079020611041849690439161151322873579393000237586910283642563703055295490857622568802650110900461495146963556375386660169886883887568107779923618792979368622465283769939458058476552904077964177594613984987122993992650191302352849283180333099945484007699934843736664552793844706823260025040186155388148741055178381769508867067836831944321165727620798605182963007416635124424814340671237014907471814638554342055171613580983651903335119992854748744484302504431201172479700232199695982526614899383650210821627990942684293741889528593835325196007283479028653802897424680507800938159163640422775525607601258922516788454370893919781822621137217145870290133751888497139246935910232438853232152978736748266436752248558965882403106888885978328433600296443088525919889161480127625974103422338849218556147891268347468988256678910948324016763330243845504489567909218544836921840863206970221496365153457316579183552191482804651366675944639998181223509935777204955654516583498666892504217344329450463558487103285023904924063199555899874601844967805474876412909565710424222062539397896315060084072596468563602751838841771384425575640379038386175292491903282323995694894311457146849164377142342266144023477811892744564333766644474525076743618463367420463004517915353017057453646562272286320093987207929755655087556252009878938643045150742651318252706083834957764886785653215870083056470156021207882846014435835775060943661961014533890121644717532441012675200058580020449404845213310133121582740081790899524008585738081173904420728978950810560608261225406949392927624148702459531514735815654322907962197007090392469876012989054394227167074481241014405594339805086230036610154395464145497973738858230891962446998578133655955014611615095881826927595369665004237836919322244500247392992658126627852337219096864332065075161675689553844247388454121724091053633538443929736039297421871420383256462276998924749960702404618735704741324967681467846785738494015849871059523713069382975334651552983698193763888811278862807940830583394316336426399656721378783909525133269216538725056606043430005024638705975533955959354043407986038972447256817229847197485880845110691510545483414750145957780588420410914484896840847232898727282683375414094797492224802477272096275708281146912858803495160294562011647380220965795843805639901843253176323412894138792422457473173863760866520354045065192570084044264602983719879582822948771675945948214203510255253130310431946647262715473614238915813647180766060251664655529477781118175186734993943357686226097155010318372591873834339858672899932617302512551282188905769451713939937017103615496246804798596074875532743918049782363771174623799953955413175947037973899505932349638905499983986886263538176272001261298238350540282523721071937889128539179140041563864853369710188145265171793593772120003568697976285546507913520855993415175249349213104102141628447488358080907909351289117471769317937770837576310161413586223211371715757642997929510833702446997131921042234775729172215455579066850257561360411321342454898954832739378781498964091002016653182713785578829378552431727377051405025642644123262000590908025178997432643469744220946509172295018246320708381830271402370115910434787900622432490656034241408354243781758235429754039016482694646961792397499199257971179534682918029643112406213325885628763164343581555736610653221629822420182834277309615735410129285857077508689134095297970286338189956382885316722657619283603873252403292134901684709854788031523653665793635661829171814018897255423035582481700164629921508455743228301603045895023534673605982915681403720884149513846635796247970342238294690778611098845975362929255207389016680050414031219457422321655044822664854392798430788323643925148000726490360422702193363251823618468274481170577828246048943530314509850704659426590074444442800171734710402888856346983978399924573513866379373569768605398725440244077907153881727370932181172178414145050031478845491108067097651721845248093313342799703226963615861622299223755425334614275149723614985327649264156899706995261888719756540629693977531194593408355403980750130120845710418940466282555291182554068057552201944867791325239708170854132078733779628801559714678523950978798114121324800253033625729128374495771207533027530611315446990355430095728670268436172596892131179306859653732484417384081449179639968372429129634992666933899680668862252327914497965852691928966896251719150233713554758968294668485601156393688233340707745821454959275244784047784282096589262009591324111251476554250376318753059113354378624077451659602716955403137232962973060560917988361858998254738890790509188683512634453190965449849168006791725500744874117826434604701600447386153321833254894279083320916594575065748825506341960030198680203665966465384452963527912524501268629325878796366484957784930597665515320121760912180421084598202666839764986859748173076493247510066232532841600693238300215682503415671157828854973508540966472411330636778407738703164568555714545137710197220423464672544704519286492423076378138804903880980446203726282941648000810257899664381990139166195028409217383335208455613309150200508877563352348643262181322118069296890668834032294142086625743962130433451364274728333499187929295756564173363918757207430692255434681973800128011289326755506747173659539520513119305740086564736302697408569755828299722812455891006558251835401301626694728339092505499522032596705335095349514677927998153861717162931418209371935854776746402747705267020067912876230605041224844342815926068021951010822177894749128606288281481296521740019945415556672367658559728435262337238983118290828164399337023409500309272437298985671424597501622044072367241594700004690634576070530851568081794742302102492564096327028356549362968937405203250547803113040971420511835702058701882469905677098456918107325569092162317253846115800517044476024958703759439854649371204182651007698416692536277902849316986282049777523315068983949948306147104237467606022241816930083335517074163445266521780503694934695383150199785317974409089489713284426384359497880652803666077788359344838485880180164641256142241099470237884959556474015608732177637519865834322994209623960918794115987588560346986499450862711228282596081969305137324365570252990005712628257960732384128000977258728485221945256466672745315968945059778717389482733886287942591069793286386135775485791121590595319064399178246715477108114420417610249783743118472976534019406009086829766367028958767557968898029601124469693916798786757153069223001217529286193356003366848981338820380624086167280924646831308609958743250887529473642972559746666580201927719739630842660311279183002605251109378513493269839262592887571018980444303238351871024185629043684721064553394801746129992357434629511323747260302284308563024559316497254650547187673191277088088183821303640996649088075982392066332205896299852328483257077465136743834723922943715996863681481736080072134488354614084700870508350277909499518897735327881281136819842336035833754541661174518749647107101876296295481463225558709165204820444628442185271014817876652271797141838123699901982772961632457179220550400821398683160850144091877403131341382344057579112387399014413945985522436280371125146611102912813996700573092089413605786874306159193275305202147349755540032729175719427938587154809433188601154801944606732161438040979841316585699488415775998829318400413725199661786843439952997980310617460997875838178818782553004625173167671430138380067550194614635201501130343907753873549500012242807256939383509145729636666500385601465606523308997630086047854850159942123118333943279117313104909919392106291913864897204312019700275078741618477480391735945497319360799002167333914143064737860280741338710476783246205139649920901597730449401716541924516413644289842416141320596273472780826169554957955249372250303299247263244660472621773214720061461537156150810385411175719109869028768292369155185225425798823429448874535446989963566005352574408412958890899033567753060817403252534325890654269186759628718832393524711385113159002255061074492148240689696938858127426998062100430384415266811526098804747170572933276380142727266236434997629775540034110205384984871887569281514451538896897258517276654677427924770952496410075661802201062411654146316649678039184325647112402199826808065244800616262979812884253834628310497321087520122649328497410770471085172151751645984959663675710517441001471720206271289604228998898887337687369907428894203501712658391292202183070092320161656456783904329369369957396053126030513253343228691015078127635394075058998459100776872643936653406710625836980529787220773622180120514915558151691307836643419757307722219556766376478204652329631458280568834885717507740233745467137379669377583999230406446884738433553110962674659059100886110656836826699697118016381074816402892244493369436274842474436855663667194235286721789578072751504893536047523365819602275082186308761790782302063740039452579443176693503038474973597561911918785073282517388268492049382781501172238347530586185602897054307866718478469887808076168470247378516438779672749372352123099799364558139962748221869198711591382325479515193744110923208432160312545856062921075288390685945935143938941445236034324412368253517100640260274300242265790395851044695863190020299966249819514287759080081859297642243211100487210604366362568678081607824409549265669970472231612600265850444845212991030580104495855355502901872673253802345839081878715372545692113568441678525444169036868068601364733573938658007246396342645402490595670426634501791885781703023666906572880371386672579033470311059775182879409534778881552269793638389934483996109341055897984419503751624648500503440669033710928847704961683725119709112315289484501749882488155517522607774674216085889075152739020894787990396793400737538763800440512943178419444050160491423254347502610631550001043489833572668896897030927989988361500292147921688121847433072678352572808459954506289285149773865417607760429459232487440947403420274511783314876515476052024509343948130370523549101827761162120700955699830780867920927455724396932639199380175960538299572516046090949610066054471209591026500081278849645457595670460183640160709441802228409249636512442925995126276486847100573534567011786462874245491083364930647227348924932481733898803026295342868143071723173650105900752869231817874761517434739614917805302197263976854739488533299329546031719693019436367092531104066608139551141938406692415070498597265019584729081676698078095719955514592476030232078608515907583370831153028584277397131840556624811511928974200962272578281131964412758930364140859851306208126186679357934461046212157199799915172207744024919561225067270110621642689354028064306485085326824560419190755782381343721534732199938386613942373592686194548564858806880937517448722161695729412680637368672320558094457080729263055710540839124012766269519641217186320807634358201358672428365458373003636638765953928470149911205524812512139348424474040472193284754061432164687576668433193484708645589386334902545391952148429764476051053906484841451585571899796143826660459693041355008080780462506110967732625036843221285660997379962051145319133577257662645648372108723559463929227448179499592438298135821290878580905886929584787365622613924088767374221276651037916357987627584154445925696986301407138360568155859115199372346508410681394079171325229324718700965001596686794691405916219100630856130074281178154514799900474152960138328597066104963379360872471269604994157064541674200243875612374547480008859965266519380136943266786668685858387522331229747366488722221067625862638176138062151746485637242610941551178491477594434679319238271739388366032182293631702969219886778185174162016690302105227124042647079002421671126274506789235874167485551885133837132311908163606575023801996291638058842831020232341192210889194203141928063642699245604346682836631312121504928698776076160908612656366353411795800049534930927592717335254839202812563726582945133434976243123726905540901827500698513748820579618691386171117579676210798702168562854838454844602564304470790921847196517304333703408369349766324389626085403431929296365791315882607948258950428962999738778836057555125424274701018032741480543295914518261529293233591081286040946759939505233366010257100050088033249360188877292121319044918472455062018762495933494090576605577482886254838024694937079229889564637556791575588590672397115608858986631529082599445044160837468923275648189493556246637584000790697679297008346729508510051239241309798641028829332941757048595769652086051424285368406174671953928473353047239486148894966324483797290882248529131907671366995258180360006420678305374425125598416705587855234778963082084856449476927837608050917238492338465003463405534365325554668041431536480688156989117792077130302515443355900670620810164141111761809200214075703005447233054708007973584214500603558923624633389454251739585665176420178534537573021406670408847099321068941414581908866566931194321847970167881116603033302865114463765398219594409820357744842858231149287558081673534268827154686201760819445450848954166462668816799474752850318303600288516509049372277837406443968476432950252134349634232223173026333088668324102598105764293784336677158897029188950404143826226632257552430274780591429201357324349264999776206921690425734769212845293862818130098880980765786483575654892207000009070158967477451504146242274354721198124697262592114573960688225005195415110245145193210607953558944327626462294750155304655153497379563601657941651739947061184601609642671607229131733407443478495365891262985210473125456242465830780691578952686660917852590241452805530656550130134871154821504102544119833203695900726097467347263947632681480348733174183680008005668823918414613920809071442680741013524050001680089405832052593389219468796148761325727648508887601934628391456938617990443317934017504190590489160862724414336478018864377851386374613519588584370924640698232686915688896939160435555246716665708929291751010572006532733285408306457140237319643400569425588313712972340078214604097295568370722186421611144340062344345995794219224440854156054372478873245766098077486747034423189300646578545706099157192088799073195182008936898223355078465635272900686213768355129233033645357443485794281986119508997022445318420974725793685276109723105826385349224150105518398432188360494316733432762559295952381284201144224806431300923849772377736306509414588200031586284517888702822816693069471291813600572170991003029470488248113763197067028455855581024172090491342524622532920080486742001080123694204288680861832014494656055437863630741552456332844452715544926214466706307753728008060009219504912202633143760142746686698328121152356188632928469750930847626981896881557660303040702215646881974943434548377723378856866983765876190959117934279461575098953402913346049117747336056472841224452598987511665352838584717085630084655108673300981513458527762893088689225926059640916975486124815153582166008332012308271831674279470182043246761078384390493967241841811045819630302201883232355507868821179984825363287491251613828446766797890128937607142203603264618035644377489913353591021830071773882622792792976589593024446817406150383233040459165219830734579662182733923879642222875947546427773237144269229791220537645410051588221409896490725796910065344529371519644044027522877790028721956923782808423711979968679190290546742779105255943231001822312794502880593527071809697375343785712080692269332796392799160803347291678454168481768599800791880517074952747946507026398619052811325010080938280469214201731965302700496397537442561625815131833371244251404584604751117553416233655268692908558394289632596226326364615854867152968661857543961735697829339591454937012675506556693142404332445256714128726291103603944504580524619476716010490500046079652667769186240027275439602700923269135302840205639860907003710154307722069936790852754747083742500324025712708755061204531051663124738511487665473185807406515005102145356565561611363191743817735177920466754733821026621814386348755619242331069693164944985575601825833591594184621694514116193217327826736769635418304186250502116404249748500221615788582222069184956596717265006413490106528909927971034222013049903995555840725952571834727865855748956912743614408135259459862089528703680238476056572535403718288702734634397970584886261843026862302848415997383122205746206498457819700613323902023576691692939132004177211808361511499491163405588217416891022928533269449281736886367841017509311649301068821277694831119899691156170996554593826295912412986709359906620849967366308193055712103966051821669921910995390796509025447474428353031190588473489496454897937155862991698010166954849682318141045603424039066900793513813391663894367749626548115123942816679959754160959231402511639910286479190595821722791226176729616371898323440672370573443672817034942110524206632519378883318669129442401203981754651159393354126041992564788825225100997118129386362195189523998187162185509827000244581099940776729698611230036815671340340993258777108739084107039958605295548710952737953399736073675725679073533439869835358829502431468522360277002053419689776323730413621764910920109878213303601597274324813769668311760352957286753581262260099057774860296940337818010442018011768996527423454980891025334361434309107187128620427953789722620464024115963294964714274134528920002667195070146113240813188027305817254419811140056307362892092020740542315739256914688338539292508104546231382623115728019435274693081004617255238434934732570651631441439467472757709885255524542712384771317867283192713763330071135764547401844947134369645071276384946051728463825486149521911957438695890094053909257421306419890712178559765459727238414282004977362593932449605614539245745000727879916128850923963466365799382945624592207587648719150505406907343926318172147042481353540583199573616346550540938680095247086385449049839228878226365790778852842644582758963997041270396566753799709421595860178001285036278223642815954921753586466295802560878275533169922066584242133613365068573653170092952432015562179748342494399168240641131301136465078591970141797639266634716816308452593120910967500806892507344932116862132956301084422116614040941221017064407043318337747998658203077815558467845557780920770434032915701034690731094906231551428981568749902440276554304218556233864815551223439362255718268852445015011450448235510655383754802928354459644534281862176345338265645434876824315390888952491491063597652847391069800257487289240132212885116260219198399867219891567717274827724095085166104334601922989912150528039238090129834855543136192727852638398712658752438200013134111173876071355260538457790901285185162130673741612364085258175295630398754498383554298902752679311092781826393982729873208631686925813252248847618791261901372926112815442347746909611960585458094711147929239777009713251093950470385161122547593881719935129836514824200477536133750118157554058999029698453236099008320372531153181407897178527883929105303856794022587087112956264847835512895505950407520320959677869945402981757745798000135206385938924131604315963611485578963158279149792083582357479332525961461656302893511298258164715181107092739145531440431796069767925803058997278975507452404711068995212850301689288418226171782536360612819076061846661147203270593563506102587562285530672734491550084166123897397717941286125858147452372237715253708528811105585863960904629057223899083049917950959155650854466551146006273708748198189392976623181369415610721147176618535841842990308408106978598400098948572186155380652608271806151932828123820388749334311836639623956803087609072325996888582993699509352239169735116798901878342801689458340245905212665313698196568057510436740959423723131579345410507301069761262241396333335802988372278327591546439286551879476931549522708811404037182073700377216536945107758007709280705318120162942526900332171856404947549477801861603433897050975327612864522529736407474809080412371856224336909476523885652158157591818431509100595100075578480589755943847101945799694605934415161212565268461058022694697245517215953333632957311550938750131366611232183579250807860852127690628851216064517427293257349178621122339298177989669101133282377731185637026840759272880216274368973910743947520669090048156661123506438249234591231315678473266321626448146879499732917404240056830234117069841507442070264623519360576302632096099256411546033571629947614635162357313575893458613936584143421878226949958673167347991185092067046214548065712385994051480476929867128886980023913953344598660669765858166014651534732571916016749860406110736407025015174480586357485487697329806520780045652949122716824614125297655229631211882745738027289914247744455338833571547858811888632733339716492691420970408897716718403105546198572680763375271975632510734914057058117955242398923314624621594682376658806477972117953769438404120169167966208130999529653314078560688467766931272240265914603062915725628556224513577415469426361443687171790537189151596793110907663030950882140278281840337102415831414433667676203421810792771540388033678628834593621174772396508327638896880647449259272378237495717653651578159367837358900253422413656381500198902684232155314602985337818929580904502689873146630372249553699333804712247611356203833932743889611394775076100747294337267941435276942759936006014029707490203414435073469806150323744668346864325182988151818768468015237419011798162179149921680497009542359343293018417306591966900771863945714410946638122027491709707662215970620860200602462569235594103119894509877947872255797683610537233599649869538585472985215271422158303554597212104004033130206731770424339848863791788252824608803888816692480396542017966971977358384633506588959314554971052801792850090209618069363935269512767375321597086387262847478510219192528772520288762513114838323435370288734921992199916687762255744619135766201078467442881266133694262164795051948482369300232786645534711747991095901091848934344524103979870825890477770314919841640784901698670382707941633082200653073638573073234095459251340246277423207685809001441980299521984248648442451150854232792032552508608087493060784775876784817594604359280064684293972697707504188964607628288640729805563955567637252968237624732134352456625473782359697590287868961987462872426354559012390904350099675542010371146741356286122925198709264887733539876942625290852290950195811355528524887569851175365066321722965737248622509181377746230371325452951049683769854970083989729932032037671226156168321301369595312708622734842619978119152707718188692610680843545912775201309621090456436664515610848553971933671553073356907327490627681775344427796174518472306251265387624767823506732684029228739958327116337368094782222549482675640032593711550652720331303495539491148968439515789908197826600567412999852790870065277647573047512053337241745444331617534087633106698691804107283128361400048634540429161465827312738614815070503637518060606817927183760836687380746114913838467214745226597806600866556190940100305976742275118350077126553326608510113119705626380684298423140090875113198499864128003370477275896776495811520081067021731563650950086412753506081850246528553381121785472471985972160774052946365792262720181242630589230872330309846076818732628847522834935922038350779217636178328069547567091233662681622300962210899599015204298154615695347811856748078786691021172391226830089169229415188299563636793072674434330737775039194516627518749150109637695992158778811767358239264304454730625904963400475371344850092056215507119953126230626476364559736903909629314241932090381315909064719934744588043102960074457827229500263840732241090132608476526069968575804459346524532143008858211700910774272054114113316742426856450809638829921241025192966978687941507834418189774010805359711355005461845739104209550546040323011328268922349737286457428035792896811049066165947854555475037149009479789083292162564227591726033380905463921800188120337608025764352934394401158211211615613010970420511919248879448479042986828262884373891720472963037481304232778773816813500653631553995145465444370989117388763248679051663418121636431368820910342820817730579306089617839940581455635088234651487001860648394708172701059721371421597271188143901217750204009452297910295928288503721157016072219357118715610978761862600403066351060223791746248256303363577556944638572541433510896029280377546564348033323345225461798412083114992855645206636591624896374968843648987386993330958463552290283578511619580268623306204686149898354742123465684230085690460713498260665310603337799014891701957100364289459408875882797346291038677248834915214095199187961214278068047446092405424633252951839429588959635730046363484459715821147165811100621863288441750955365616397802120860100814374134967872661974653327131791234700657517191453586458357647269678059380076283797894100531616403968057205925337046676656516481833110376214671312429098362011395355173386347220955236246147897237665093712652611382251009151166851044829227581148516157179247034650025328348442654659685397188999395158127519181210972906555123489238827058503764891704971131247879090927589612058874387964523024964744854632016850114876294914653316969942930287124382455695878134514962567110169026211446486413583002958280430093390627357384111496784833945753067853150025446780725296742146796054157962296177138792535077848637310006635263121967886455983123061316889432374930746414025680273176050471695022045398960846564576465588198804203333981785991541003104592093738882164565731094567401254280201012403742618246980411360232013598766759933674752484318250492316850396065818001668769452880062139029286745827458861034035457903354344142898073837520049584522509723782410730456438735631253536442457696361341365226572023195292512236068120693150468413279082640972670262563651544627284196029805671528446945798370666611332399400852072222618197300238145578247096880057902928999421465963594059302597978382403020299996060932996774296815952053504232068468756897532576997356004834530925719505184916234907756043389647447051252998989133035818132188693602174670230498449660871047099172940001235948347741553101879350492798716897141135588943985517488041328521206636458358948573845215074808449595488714553759114358029287020809227167720239331630276029996288498644792567943055015859204403396842557589723117683078779328986493190281644016688373994358962656568526977779353626121543218757985934664645253220497962200547370538865139496336764604797578659029561111499341538865702869634637303569584368258070289061394597996617625961775226657562770100262533320043982647050299539050471877502171408947308978656728524704807507123768260796995038270563586171342683738783122429865103956961761506430150728502558664512599708412608870339772107695826130339154835474983937539580939879060722161329698989675293991032108608320270273614027781979632777125252715629940528382557708551093920134081605576924916840939960760871838961985460826684773819465912415927729014821247934103860348432255743164706090503528146989247257702693474219763192234063771463324258762888897186880580267488293074673281352190868767071202458298799520135177658936714980424940590620921616639531673882500319953229151534638594763971095184207034231185136406744454605369290454415218775528029998625597639318773593517944210858134023709495583826535793240504519202964346216619098522368808669043371346042286852866808701023426686263698931009006052072526511376265158320264261723206149890273003379294872580283833638383892256287870784090595755611160866795088146883131239504202916583807812070130462099443326103430930538627913512877118991579758284078310134930545840139752245326230115640578375079593227760664651554610799719688667696517859020742616618393912896581701177934131128739893741464268436882547546450522694641110625514624574630829688231537756735808711251992573128178178135647547853996636108015221319451359679762486100138307624124398590223074979125107920456777837316507413936363912970141961939729729199035517992575159261133806391220416420825557101403359147251922543630747951030264262904532910614333087168736400146456959964641159796425066545719947231850237218210362357598981998682241593384565542810213318020409125175776990761977176896891345701739903279157575703280388039295422289735849578478916222460552819059392040276101267849283750991144408335793551352218451214016060171891109959677736486022043422856838719692597147268189702747879204259681266611852360147467155493977633718164721195409882799813972274246144522731811390988511459184083411648343278577340143074433316895444880169751364568033432950502065841087604495707457083278072141913724636804832321351715662716505718010542356296914034215240557228850770425066040311898649047391985506780171634666777154206229980662966458081626735600640294291863120356756252485438931555865579555605835188266360003452135875258435424545393221392922084167933334542043122033091429506773154155451317827829782297696760834898085303639058747262570945129380539930601744183623061192037619323103091085942216564223977031186410556111287618785685455432916458030088634706871919633518848198608729524246777033093352207693861772336347333344887202166934604135559549175850300224077334261129093667526232848860624984609981185258371684750431064966332097312736791519697282219138422704455767950619892585395181796482910362563150249692048316992189055422000660888374008865067429327839267350404848676789099716477583698376993382438339851679906420334657417882631174441100768508880279240396046099441929036433301625151954544168008907409640935557631066985089078327724938081299676287354819339548974724543586914026610491234783155496835187757412075029389131764234376840895078798570619534888527055140316615795581138670818298240314324406858727777251051602214070098872992375681490197184013107508704511728199137315453367565745596199789732143436264201089006152420428004901689857112287283698898606068068829916650923477166677261922888378339361931764387543448789908585506961566011696236337356462286329789897343757021422475058993659014488906892628180178863568251325762812835258486272344876928068794391754353687127520555338797582503456176892912848397492215440220406190470747357982994271114428091982665673625580680026634465153733143403645198492056361532579539129299592381531205677013156968411151932032756796901966148834297699695754387903498872381801178405207699823523668885634869445949263841366139121492146400587711536220964881758316741844793368002806751948860607110179706196975451314554260557470463091778431093780782152017920277226654695317825260110660685418072141353436166277520201269422940353091039154750151671010006352621674874410600424897697627295941105460084342777645555109437671496120160973207856624344479357474249143869863019641060065740333918608865004857758058476234002189907546464751574660492430428232160039891120349630779853846320797012571060918943706570862347878665836666736874045129005554762756524573698723995388919985308276094084208999585884870262898589950025333017818961992309627889528210979112071747509298033275953551144912948010659702317247829956191716967309896083790538767778743213163539226409113295479351956591560797878168624057884736427601303217218647444915868549709036092872108488584901540530651572262592463089377653305962391850797347292527588687228342444544754690982173368853550286147566039780603737733546442038415369212313947533446711142905619033280408078090160775210849587954101141771863843728369406326939994233474176275495903707954562167121111702515424111807091668241407170056900157635074522650241142710839497831254885422566957201378960527161960068116153325035865077396290099806023364152963757773597344045172033029957582140045403677079671949445702453892958214008122609379833142393854420913463595003892890298654324241350343550122009812535459401031365792436747888369934162208537428972498506811534891741469047146627478754018354420225327368534973338228245662926910832664847773322332864728611838064754332713138029717543068053941008223076192796229351288339935156886129739432466152239759538092511801045618177248102880743090220459277650214790644649726213887267320410235737932027095394230244708825232063889542688301874245138489810332822151980334927359788935263326079003806633211174396402756760429294601865996656441366572983140201179100496086788598029364139135838781044296083152398281624877715072873852818030199658888278633437065885421797833786830452002570227583218129106752264071784978983354343341439088251763646317494704390307822953839743666709293999606061345562853476195791095862045269442389657828699442307371368918913783557761301842127877242418724616173183670595763660137480573034482825092521668754603384190106794279852508141657998056162829259059162101624892296705781204577683848202298424395158255676920334066534066180963122530207317397741002089913688528702078887583134814276794975802886469301730552971698557577323279820876004827609300880581199604724046501576372515699113370288248892731523625807495477841938481114057712663455632146000410134330636243955210126587354469172961143124818856957278542677166938188776745915988632303038275005229032108717209230140924537227927902712589997590339956120972539047033695724062135154300330304811607218704380094894896966423308244332656059185012643263374673602467443206184206414017923169924928891747900332835104515203816494555151306627786963397165894998305442540528039794465229964686144074099249033447759345965455415449116911931203360214406949141292048877158711660901341235633310475691934355773374414035639081150205802336695202134053769641995399416433943597074703779682635166304480519486321330431553836513913469255655913231646699586420220967199606657358758206034657593960361257251502815352586460419237462699606294879910638379465691061497903468884903782971683504709962652091227336917683240569909756356808530787469030398080176339162886986972875799954614678813758123535398407904622690776578312012072881797080441185625228664649795243484559662824531865857580861703669077417178111453426456016673638955269484639055148708759845573808046801210863844289236980596643656314725517593158405074509098221402997702260857589750492806379023267351531303050056950427885521614397133104239301326182346967557913524122310788446760917431154249614431571038604085720643568547202805011657842734202941525767085847065936111837665864829476484971087615986993654477202821690638173155470394121599940272084656270180496340440008113858821721753279360098425377362862042752927650261567059124033929689647536933307820289875876286695469029838457958271088939280013991955644762751406295941540607525261544729130495165275740742842488233506678405999070325534960586193454308715229431006867591330081104876988016792756171923948559524712789832576418552041997549066760140650147252376996929143985112442520445151190184433562070471434412346871757218321606348013574926059647794340005055272692166258337884778066549519848809700535790612411302891235772825672445633784363000206590418508572473830099396981543064401199751236272669963437871535690525114214841982528092820899064783856554983559188895016531881701833881728688381008358675105149816662497570891860597560044746098239512915315929960660771615383020462624455036370950970095099914675903552180847500356072933277441332945006942983109473964544786113020374266123997577967237994932046258838393551406096613649087211078436482245452009209783242982466916698881572224388895877835281675199675640134897606432624895645005780056919801571354428987989706246411571385306775933362325317912423946177395040547084980571295216430832730907128109525775049136430786380605476888987818756440175718829342876940973207280373062565836431287050752809032428140760572020105705030670934953462125482349005612444297716646577576422911398516165114032368732437155232909044269539893239030804004505526329229071084081004445257465638479656248923951907683091252980591516879720058414557821223835629264140227736513191018642695596027399870502909765584853292867654174178032023069074593677162014001067418329718490345436543741765588461377969568293908095256840524236834338790376841932338751154640566304851762365932952904010281415228159324634119252565321186339861965195191099605024243996232109720595325165315985769529209853397940847267210608177756778253197915299650593008385162131875740368286035555927761904278436159222835624937258931556788864971858834827685206323337738693748568427419338014584063614061535877277088833423634807406367450864502810143153662799061781273506929987476881239767528878118270458320897722481784624917185794928212950962025512544629894123551265480365405725121117714073636851828134392724331701874526258386026803325150028074898129255561678167412757894928121621387156484796343210581396515471832729354169274272950926481378709794337036463769837437433789317624337215471363770844399594977142348279677976668922567869151611959610713309614883491008384399288584598971764281443738025250165981467905647319934096749820722422974744910372925938507700824933265557792325510225339579670382612306575646448235767216059918669430601259023531342451491000880625816044060704345328755637038143281397751799802718309340197436326081038583846651690980026872784590659812481199359546203175174875407927858407924350503502731245827374317258279286080023564052940478114272818181640866638378017838384224696573174052413343502153537658782887527700474788203283913325238991112587443395938260066251366434111479229448197677571553650093390535069175004678837536753973223729322660608758542149401069926246095974688715780205903746178169096822101436915108922396170663159925859356140574224158407962395713721200701375244402729473505080546226889390435684522320393970655603514675814827380528648432920380366715490082981874895267443394356358452759306514559101647920640000122460023022692936434591198945256640583526569120574991996054158670746562587767233994853582926930722347411539442157877622356821125730335659802605663662916588204852137880100744830793008430273199975677352900899494146869832203679546072069844634382789558742920315528501888152964000631725331125427606334209790977755587032234108614613815822680180288645945701643922696468021185821899392324325954429098493410576462101857532196951268712896194976962140143366712391069615626470567850343820064562238040674830836517895471221943155308202309129131287083226612884409341554485993259553763232971210563161652179006071408755601303100182965438111753075836129699339816154743975255581852268217669521158979885135433136982266451403328432855552168132923467320427833846226497982640661955087611070731196865725542900077851082942804471542508904098130703033231306212608450665101222302481064382240042978316131259625261670759139246968223150453177751811538943347927076111285544690398919633158774782793206280166848789023060808270140730185968717145545632664730898508579404601101312690029158018446985520994680652979086183947757024180624445303743040925948904312279387999315092990535204795342892534982844336614147983554770022341340288102473446982923075383863403380170737213011912965087329710423317040116227828972679692584747958766873399482560456068685184112276337960578718091473330608289575743394955967613775889935791856691638546082183233227533473026067421555811508253623496597130393836760490234772077184088586280204730869167201603626664931491548529999660499737873008109676924382447590358696186336522792330318043797049960574504664117138438795923098885863448052983683092947893874521606351465860704059777274275691681595449401889506033505122786529437130355887645216468580955393804067345428357305406997857678798801101403284225174311765599589959673835774630591061617399383703367597450909875642826401183018387120061895487883789975041964572074434050854109320913759691681301906912691835757674066120390655700003941783337866639207909816469506114860883029376829292663269368054582796656146720262568662462968935066604003755371103517614656796866563478673106710871143176732295484100488918457047620977915879082143920195760865124981000267331696849229500752013137693070915279904755680559428345664692006112593368447381412269548791956350158329592386938560709098007523234324810851756817772352090136093331125607877699311222908565589455317350436053870488642182496221576675730975841167512478356278461481536707185357990932906281778473707189397339165085768139780684123578056644862950957509109377500676767109375693785934139286495524493663193261270481387435187221341520654902289292906437386637918060672187414209030470689347434040354618886915162773262806576331856902003675596235043771502685343683635515607454004502114582689605315614090732985734242303136095280196024602638910733645938461259701368316311421863692089694204612085297069313488743943325666624243395522200650941463417694438897328919175841842144979022883687345320347037544388491602934999720801926049161359014102266299997293406832724538920753312392725850451419772124710962336357910219786664268800610427666108198994057195124177909968019412236281156908105974233678224740008384347733758244884023235436394901678486232439893908243702447581571615591459701333499596728923152801951381212881749682333383363546775335467745131773583061393446123279416412639458790815939214776241885905179095332284116138492478410486750283870163526049509836772713360156750534146974796968737331168714264627197016977703161921697324375344859991659654312753071951107143650167818348219178677071267996971060516607455311055791865035284328526633168676346311598357089820566215150888240199090189412764831325711324498829681412224707801311781662278407209573147346328596505473478204276239484551337327673565433379164038944599932430762504548120615453098443371878925687781757939234341186457884296195335754850058100901430163100124532384776263676180875015778725963246877956687607240509514281908905956543826282083531900920090220966872560146680283939618068610549734732997654816921614937626300957425336926775377214680295186175001731943423963455393832565596415052798558443554075327005149089083301649158836486405874505894423435172225315272193777614499940472015878058076969934908738950288145613843021709065481600998432005232830920170763092032402651419180585346258951174414726524674164095547939268892992686657609320994180902062373102361097829965934039672182949843311363305610286457641953037796695582296543909810096213815007156900389664768672623981487950864880289849820031241899484374850642671927166383891269732771440662002243074812642569775826837159532313316490766627195522841587655602963237822777689464701030448282023772110387150426498684215365857961334358608925594712965783123331948837322143227093981213448910049259666234778598519940092480290466258773597231081284814053423005940062661978166311683661419211211737138244141121721011562151431068146842056716656507675159214594615731521988050050283320530182231207176608747850681427931269129964413594041057056285429292941121697335678697205979823230508971609337985779152512402756202956223419885859967917047665505609467930014906738746463689842261324131489435115481667866299112419190533671221996716759242559920806972387182777344113859760710521189937075356965265561668222262354495762910372214190974581060312578754259200570230991300745401592852985840656633714388171843402766703426831006781154753228098211686793304332368810418076926202377346961644503174544181592216779035485722526188713828763614306789780678799029913182857681839802462854241732384761688033448195066016534161104768197027669175605127751961099541626879406979562038587264166844885921320870660389039843052828755207304074951183984717092769207242585544279032838927304007917509338909545635323122431973513774519085829171758932852247621544784988569471057651658736421283164225964707165194375417904816748140125588664974591058621186435365143159469987377060823196263630686466467100625034251762261360706625108358778795794152190001571813628397507573375145315456065317595508837601322650368788731950128294476986798396161555751287877007900342441165245178813395185864028439059125610873835312722590415615300129857634665977408890039713202377139307352650317362765298953336055898522975483113325591688535829266923225052011695123285056644488923774247148267340950847977380604790218791242011493862379223979438768154609252936788646504754238707745966939971561163031721365004360336303315322061246425165308583118156078656298026065336054844799346985122229239120554367778507768692672229894272920805746461762913462224408524391866543559876681874372030564873724569396531739353776338270882970803530690963018698212383229386864671296291029341654129397237204562073911769767300230774830683575852603691267943968186395561823828947358334173011270717633392234698501279252497465344300174398213148611256193583827288650249729572680578694737765771738813564178307543533979347862144615512027427396409127408510452698490739215205651699771724299462011463225453264718955698195200197470153085209908952861681974481551528913359998776376656757324200248748998010399976665027052662538799776748291730702241623094587922037765218160695175527597020622918787643705419877884472817716520797621721883272561326408007216424961131141805059472221183655336199197864486292119590301725958622818708057413637744542997371873907849929300710493990207300652847236897952047272685452663991490277580723786375471465351512694915369510936774372515629631873940891283081800311272575636820093139405024210430967547072080372796740391814217944282507879288750496346426433350727765737528801809681729781083028096187282843113911668238019989870407613738903621271083326715052729262546264211397495823939368673826126234505685446547269975265081900361896539699655707127075837701868270375593053236093179000263227977940893552208049860902654057253555630972849803115872187860228839123395103695813896168658566408265588217757643741470777747771341264189623720490485134251067934709693651379334038504895738134181613650116159587157563445510741433436760660681616562221362448611771065355589088666437778990327718775585686303947804857060044491958931070404962253905563043077372650028781261488229032671969044221969338570836285838669267420695089675758419026859848241641532481774320024508634040564355925218154749349567864513948551603767113472963144925071474139162966679356227333982799909925457019428591019822017627580949024528431880894529110092891689086112794207964028995646947960471010484083467033804384256616603103902283440997384494902161554549533760850293033137135641621107141134943219600070923789744365630484729227111564228454690456447914977160438094047523056040796838552409901520879130938752572391854167639297280443919838429284875720246507992780951130126749690679511196914719710367418838121682589664246641029379883422971415972736924111240845386766667744670119704019237426636587529747521035733397431677700579052279407584674809809893878157949105642687731518520111189269487989226324364487801926883616366934703313956315386286377438266047257994998603937113105951545340610958253107210494260985895375065498691956831972788972814611176075217822446675147056359854060113554482185794568729626379969649535759022190853259525480860735564274087199426341566379510143888986156181056707955711769664302852301761796612556523849220695469148466653052024031579307301072268099916477846155034093472992843765069000057415518520305894489811502708945971893925825073273903177531033891849469958755990731170812051673845111380733084358980085036825838901030509429441912210489921345674579390637780433138331107741992668897503008533407336060061267257653879622917303945817297862846244404995597106013744535350596968599431997137619344465215955659314959974080710266866272252418637846777709741201400614772756944690151665306958616579923803750521414394344699698624389869485454128464316215668443041360156097713171023361025669960924179399029523251428250753578443001374793402546378404720482663380385306936080340145290038451585437299367211215945170080239755785334965646244975165313720602673408426282326142231165428744776731378600114303353893941369897296654414868296961679255676990558208881575512778291142677900738888264836389978568664026484860375667600517191626134741564277920310455364397536743837904444543262759121328810930792657041860447559119681844418737492084051616248187531134361738247005334972368335504963738921556472139315679136781590775076387864752824025433619692905908316456765705849203250155812956825810842355781539967303616703753920299696986291482571014869759121039528098195971479335039624633023185723032286052963969045136813111757938703438843880520209112439364623845758908533481150957838737517910122452914044883358886633963100948474952907272767892759016511344549215272585055642295157763694500616752117619018624180428864333810572163128168442658827137445891619640360615429152034488481131719938753340113847079816853908049474192023505628523210203684013808584572150443185245860090077447918956073493654387691802769450130549281079394607390634007297171915299109848067521564617436087166850023525848889721432727772103260752268317871791568783648855574889652583177508087083455904303529632444791065223915868907963761781598310022760107967351935473642975252614210688390912960329994615150990763523112495436177803236049762165833607369807365614444963721409198634567846001677154509976814292299067737114398705765951167202295230921120107107248675147679872854211907624975150163138546797044947883622315191969544692344636190633795339669260123228670376027085687571629764934187963026773454108779054530020243690642529717497808216812193192790040787893233597021319127651487649489202532512594313481288834262367253395476563356617608760933785382725069673776159353015396355674149916425793516698898995193645263429412691961309071787863321180707312276904070078888944325326428127144148542880260551913880645293501748749310432674047306357801530756491991761586872040333321466444057032772664625561076796272455470173599775137694054603321372033674823374143871652718374986956152303983125273804117565270205584195729452890755327119766656473570552131235143079319593888566408894307683928998903109507430908339376699300641478797423461028265519999787007238643204066134173631489783573362943381953929693197102176844545620315099605946898996932879757961572851952911678761455036204794308566976664597862569429802212645142201100568207544115086113591777640931388671020806630601665410493875466977430384580411272926920145856612934286932545214882019290108435237158711701408269311289428777639356592821196630848219598787128321728031437101562656698558956661639168522006316383637749738996880642981656766117793357021413220361008323756042939490165270541117270616632077319264894472657117902017263290371479533269134908753108301377606107182080208965052841051797962180701996098946640821610218238637924827484110911872481819227636693571911929291179844286283279923845107396140145834846635650783109211208285130421425195232851195254331753990185948139573164056144392607946889164269807958870432808928422162650825848102026465995891491795989973229432688751439992367244367831396772509713394441518731848693580064745286647553129497007951635324641834257592013033740179830031366394651428674116190329020779072521913921579480675314899085588868263765769047992236132923499881283657999394450935531334888398112004540581038405455349452969446163235226612673386316915144209222452349219729460722417043193521641951757944785133496947816414199148099925418977888003567894697910389841615496267307606203664750811126320340100684078247613055060949611661659471163962697544752406481637866000499775511250931994496845294385475985730129428879908167376264875606367383930220230248636435847390006819375705380677782680581991919133298709922013600210269142513208000188788600310310781025786133858390881648354490454556197968278798032582196093058329682381613926155596367956534434790748531092114550679729771236169306865196807682886496436126700134595740650564429917234116289706264985461429874371291642380264577256735059218103170259814230169974135561518858100353037423682140922015445998211899710474749295530982715257067196769069125526617483212076085663581427513042194986362814282806719969264651894259948888476914580547372417640370142771360035211810103138358621100805400288609587180919085747693634222428667424734374046632308807867796752651740243272582034490848416718224342912596853472189211749686315301045446238068966798628759511835649998525534438815544961794586096054584494419939835157965786671888274822579152736087407593460862713712821653262370627662812088381629567529549924651139000333799831485836352115121903258314070468233746768713235389131086505615433776810918072452718157466462495013727342473520934847320833492327705000127853642684520203727666992799441621348067840855925991606162439899969648039169604286338111035714324528408102791318334209998362138737363196784463268901843030450783496347562016973132579595831882505460203778186150268938475531243818033823576983337205467896933975018535046836053844783736623044707573132126545623404803278781267605089296603020530765353586732981097149720169708885297406814883889527903856174892579071071449090873488850106437413274106699228267378350066135524106805169527759871474096480683509626952412143907032968510062555218952667386794993447816376452091256658027382447507426130232540736392349356137527853497857126298528180385568414275990120065856690872361710521286033454127818591796680231838165456478524894667012097707051966538788830815918795817148214422131580553577111078748521914531928542251964256007566556525722555837987221666453352917026078968452271111473943749566741679451861302240397736706012296527869675856759089219663718184062736819876919251889489144049906140415961203653217026124079939786851134148656759593416035240195501701789000377852158448572768276340879472977893172858141995845840209565314473948868379175288866732754415793390898184866480093536815293666926651077907257259763803373659055552545396328849865237382325103039512432571308793517365057887702912654529210531743657905530004263495243968848940085889871871753824813360243324907780787896634349988362863948107864089955888202323534296647167817868921454024553853446743754597683232427338496794453309207669855190395501548573151084865243301261210588292410812984342522958576167271186900870040043374554708708404991647835176373317907662157627273829175509280158390750514557009477974567001987280663332787617280993201185806180326949394117278813912431331202157905122262793112138185738040801125709113648417875393030430866044771004945783178083838381168346151067031597664238289951219641292115578791231424365264377449825547918566344836237150213848333096943483715015039751336830868498223176423320113240617817380061259711880240511547857182312774493298605208819949708539060307337942954643551657029530035476469807363989472583594078892392077605499108713025307818932781487515638977121191485138514442560071669967880957179609945180039804947674210442041996120730661044030227604240802805874688342732384902760832120997466927200621182928591827927666385119954792658708469903665932497644256121344842340990685616610887967824217946587330211740845615742342504747163955090712710129782814527196069675844489933345542530021126151127154000699588708845548452697871834926202578692668612270091323252361780018800387489629798801303147594351899617423095697102262268884797630020366816806141780490355059093711760471086620696456043449748766604070369864850065786050385193934734635331476670056510564127341935221050499217563912766841180708747363578569040316190726923724038027080830830368761573515576403670780425235779555748010891084224582754379602663039109595445001100307402213563618959031919950363473587414376021012250398431672533553091513541785177810157755720035388419131541891723788614665115718999789062389265222901797726833469778847788213623116218289511172025604045900707549534103815460721962999462268078645822309216177629355127601321466822428299866421943373212208987485724750472273178927527706851075195989564237533200047284614880174999786069030763533198399642990757487780334781423360559785144842733161546007854874144624543466306486418398800940630978839560543734162260848614595419904712588023648388967477832479325619159733358281618597724607681085395560330014697202864597295212311865678966598869160464380610960629136796429026514909358065669028609300154835833830537103275490087619119350096544569263625882693569090670997394493851561348594467202010611518220080230021609089205855747479382340718540904694285647400160407522782192903136802560117188539014710837625283627454774955515218082193703455412568899094675530269634617367586914566867227182341328429420014677672576039447752521106465555551726195752162274226679329228513758189181193595678250232052192375324447218237222882540515093849033744663849350463946282630638592964475576455242218594035798990146059602700282091594205552713823121946405057072402474414285634553915638333057832190179376696849320990310881397895453107832621956833818498459366288142383599069217780356403416724207282432080226199862806353587999950760861777164431379675490438197341386251551948805840507959787468720165031007362343958420200092009199321900083878492758882015803970060769834282182127669287552981635362957855013446506492741569863999079874097817356270307540391520515645026818757687375955040408822994202971959705070966346426443158489268254802320033538928459199329259029316842983612018778170004716875960819867795483042721124037318672716025809769009905448287464787804597969816567002638638509810586415613308201364127295720394860507913093641021520246261990873797229383399313819108896934927009621955069652592355778313294713928908255872961314229609425556310715748930256478569881399687055225338280516859864636781511404931754934686862949057067793183918157285806383816029698253687892519791819323519750584195976349367429856618982881853542225805177821856822722003218478876311615075021050974943496763284879776719088248279718639624556513229377973516607768242611707964122302844249650266100131345739834859223113773467987833159930404778439754965041005896206623784946550271302933167083269373655451061883762067648627283367288209133998088086777933114672667928579031815380896290748239127201516015603198854150046579458207452491473661801170694610941246580756011589512896324670418756119885093654513785525453168087372534237178784625884597874592518669296655842217182247511945406939500046441980863695638873233092259125597029667050854309713136116388373416954787089470340452811358677296079543951530404947819177567481664190871995235478600943503960734970764808852312862023194552686863100656775957145089094784693666974634558951603512538390821088873884706895645819422573769394898372371890845729732201914966491240635409506364404049736923496232209836996782903753336585349264925449138172137953771914087132877014886926359013878048644885720583700087914235237139054223627779873807308073679913936925229262294821041175999322343363978102486805976912529014250707779686025897903036872492898731065037428289316955912300565357115256903506068362064376342988826844851638287830732536160724033544600259293733933092868872124300894643687128397479284939641475366607206502477376487898228306189023446948411255100842080802149487665613435136264146570986151230509829249723027916642531525281313144861541676751714877016638551239275868802544345449955634019151600209612825947246707699659143775190468234197033271668377865278463297992422722276888564171153906596292878021932387562788547947492266182017399290553249050796664186957422494522235346356638144312667242346865059875286484436908783394697277247920531237205451514479269462490210195083590791888920531448072805275511766892314853640904967399886893020407279929559391911455676510900166477579153168688612293884292011805945941620571846821031762008033897577980266620604251336680089903789598695817458739271191331816482246999802554220443952072955155394828983273189617066384236801705706715375593813391609017641668584592415869925641004898686045181638324692785023663842656462327967521845530595528154832499892328262395991416073467501028748237538732665042521410614679902058149604770690151710283484695417795675813424150703718762772049423507160520100093372179521764018908521224396270571952606312892314919167022137794608977810777356850217752904270673210718538475689140801631257374627744047245389049342345322683043053761309823169490090907421762094633105424799346983880320359875822765252020052293089443434381504081624999910586379926389015243798275939678068592011338078611926960979508733730105986429271805620208125322508899798923838419591655433029376872825538004608979532933288407886492912797419091193469455062317060350370763392802906908218323911847656305576102736304407045837269628539873255791845208864926691678813182960390535376860927248504942019896204666468953600499179937307578055429809597635489827211926674359386317857717894945947321309689892474658136790284954564644369783669375481529947540135443616902073881223426511357641548765057454120473920817773433407051546069081963568717353465704178817279354899773730473831622714754418111040718971001143382486092988033821046846790678715846976817443643926774156905834464252110187224052969343909035985603341595655188478252348167023675540435685685532687196475157878849942767186965350139037176567190228644370465925716759207899391535240911038158515570891057847762293363209332565447901601504456731652883738084736720532105061076966231377640399030687629159105188664233233756445520953503718001906599281425725687866943723951398653339472004857670788575508216172263675102142825329356597023373890420432444260222334182173204435178727615521147701414812238377388088593739123592559992119605197687960558622568389278159515467241351203521587255008084563352014647639278416611257154201216144063688106927001463727033941563846271651612358252376571136747552162138097552015015877692486289041004535429816617407635946969614830177937625297571941840036723632779005514074470086634307165708534870769896744816060772214622325455495831776298440869308387378506141939540800092563953539004424951274159910610334748286699731159369059387418210416328962838953325280155046332702573091139543568870169431261844078577562921983453389015423969921475205399495277193151102041150964950478237660339343843186890681646054678996836952173480226305846950598406325871453379999086968052196285587671182573900226818237436634875997675040047102618627683016695772863273031840120504933392198742242369173615574579806927196338661969148751414830238452831053966778930517858774555984603824305645565058260535269003716962337531068163847608331906718495937032880970783396282044263446007416717966746789647545393762323005977455137043378789258747935976945639373014227780014315906824270264589238249771895284445085714448067638385507127375291148899514690136403705895894805098945281870547510702689038716516123421203238142865019174315160347171184706226458737836024298724132855971686528802823914487290548772405295282935343006912065065724836123155731970881069321884229937593667013275784463935702583396401178619443571792175057152237733775409401161844940441301535800520826973556996756961379337680535690895067060648993282005738976702276903108827797428658444315106689738634668377495741909720933676868796492738887660280314298277397676680957948479479183806387162969264093100592919124929879056867406729239761974241980233307944482910413993776395424110110650179317197134791536592643665520094963683741598294522472326805680001096906675697665933589657342533718839081608970175780135343058134462749651148867505088328149502553920340823442537373012284229307952950055171800529791382223312723747581486340987140957759360169049936704660566734247664125611909872934638197437019426153020252778991448203867708911796088855823244119199895979210749945555872081592589491942832169333690500718254451025345238833867780655448858108762184365798145195347202638494821902570631143197949032062722244899527013226317624349176243137352508050644216053581501540010234411946966115659054709820240028012561069577494765454093130876353481332454292120668585350381207269696328823143065186196434197225369034190332695202707173967955730016653461532212096733404019385849201527356363858976421759057257050962116485130289286686664832674794714155510351791707710473184793922622113800692963819914950975457279374935901914016611869188006749894850635916493334462416790907157654489315118167205300965177039174775191783660935904155120228557775481851222275250587874435611034132863383000171773042196044096959870071201269496447346401512169648750846302961044112084446476822645539125599964809323332954519848705785634814734608271575057416186702703076609615848621183340665982544653148606815564798309323152400306159262474473406510375354088944185667870140168437639305741696739376166922664799556127244796500897905689414329421953817829133100360430283976481065943595132169819152294983016021943071358687506812746411057995971609107858464536636333283102161558418167408115301079950258227500043004788357954797309553968304590960417949251182693124885912123788726729549539633911687252358475616268280993531416902230620020477206512774941838082956943679327385963188254349325340586047140108888809624202026973449782763813705158036938705069580439383665281143537847017117534125541251577720445551485273676934507334877862119030665865283348215134082625704185565791354814435424796720336500013797904293738830568511145138043007485829977676071478585278309826747370334374156201143993780914051797421365091141388430714785780573250239515015515101311815421895843820810919722521045822613223632910556112655380639696177245871886467543341844305627582833166375916362745389645828754532914557012641901112022579088979815295989866912937241221222578716483057327858831476782940196193304905542763195131180672913720718600472171130651794274893586900746734371491544353310830701413778055548644134482403410581822472787069533976094261890552725553112405777816002592343269651284228452079513740093119466470849718620295670917275193206973517903299003590576630590683691545937422510710815658040536555313283847940105606742131019128632119115055420865288534073302152827289413796603206445971747800233775058771255901269270218050335972232209202936092344055780323518856538878109711021720309849066524900221135340377442233764288133433539031926381457437849182853106633072845503817204228440055017885187251843579751966484979328228950323251261436095831943769344575672549581287855503611401170462651869074975679107572872600311088518062351142379224428467711927278791292473240698037937893228005238093053025558764221069641052836036356215792467389024734103773614981105480766376965938648765273041568695003408254072161816980169935038250811757208113566961274779242544939493828494717407341189334498941572502051679687025258506339986526949852280728857087793379167210045840396705315861507140947292982187231140683335459848561716415746923277910018290910840889637739808733362358160104601142918249807277692648990781585254232758288572251797469689556286098407403134013371864625309255995873284308260730586422070519208933924994507441442346286732540592393218320918683137033058738752445363513510898367095673094443579957168325251134290004077629068346504278755787034713052751666970122291391549717776719177188866945126733726896909922715260033922572273539621608836777948284007056030563851023684575511702426654580048518740392921313111142620756675151110579510328603037137348078167069650825925014789393269050421983589393122524794044067624600915087893197373465638880053939766218222103020442696942560141639931645292650242122360217210950464126877817305828985454984143690437361201081135940371819398393124552720541131690963282447515071471809860610813612072506563261277656983963211608065216471872164344261095747299826592907878393846491276693224798685931294266265596184336314965200689544144536697796024581560249370924153292387487469408746742965707810446056762975960242602393420397036792349271142519085693454829923341559759548732681625455593697952543121371124419757178427631221404328286476974792332007854453131339556563399457465260774052616311735267203280551794859083125648540779721983779737769063074953996221141833686442793565091507244328988629059644602347007836616892528976080956127041682909480710148473124613688702436935273943778401197177219465559844124624290441468942532521167410609894834694122905432305088557011562164027335913246247064925052717107647967471248398721222344783470995655468771694240625486935167449431989904739734989813013679746897384796557543236249858741442658674090080264613820248821334382632912940149273983250836563288185310658860797386156763224498781519760266206153867361230976580197218897549425179901096784217386321812658200403432455094369325286226942718029872501277965950094334617127444277987392114315111930997048912624534344112137876368450992579392965983796531235693835628244374835912021840760720472178653325170317525932409659515507207555840498930457685053530834104228439837097883090180672051917225110196505615482700766478688207093040349338051462108911194335233423441360787934425742830791811867551957799090244794884548813513196046712734380481090540245211083558673281325333836525722592344870995133561093163752294958926927790170832594804614280760648771587934537250182986722855558027475993263252330244917275459704220122371667134667093163243262853614789938437461159295927440666386992329948750028364949643819002309418256191869212118571623001408566253923264825413136708845953411366104141027938900717552881096151860251322285108901780472210650393571672632933084510398589781780143725238861758437425785177754565862276671281528912578603890389872169992421333821803865932323112561058181052736072202563056590583166185842371642260211062476575839188968377469283822312030017521337551108298413672245609297435056724209585602615937937629368252070034989330452584603973883931819802122651490696248751250454700508261547262988503681568975780514848908543630552989173273192464675327475628145368638691013251595150939451705835379892143370294620622291248108537757044439869221540169575888650119830636491133231008865854067678628757616581037732574569762915317662561542430075068361052993340026570973878319998654164791526546548341164842306984682088402539006574126115404608802355827012365744197317667155150894533529211403841487650500102392705203219960015810434869399053779988269763066265553566447080602737810553118972961498364688144667048602474830744986153539638673447118927131214311266809524016197824819392104779414166985635853945986738698087032178091971718049422392775429664022125664214458317342358841616743358372317019230568102611166909772953919052706985569163601322009930297235925873063877660192061255686206245329415781958814037355609403175133467176183964235923194847262690287757545162726935537832558260599148086557984051451723927377525402173100425188825011638221338879879270022348230385347150430801191964147643367550256557762613212278646071454829408724923518344095261756216091214313926354364290297963092588980226771899675760116312709778108107525938211868276494490738373321185757710843623243918172667328703629311135488125554468518300420902268994117718474400854818278013530069036591348653720396880868729522065778936841464370470519639767654895286737307768938250798025759785581768974936614204566536476768183648296926859692705922755139746067699062651023456958353179113113049852601085709181296526090624904508842165880699029771625550330564066412105931736268299004114376928204797060252807692931611159558001405198040872402409685745618036933822735805556675602712691675057528708889622722057376908245372017665322080172419109136921820557082426648333865995755841715313340325125245814906962585435380329557134829858837294388768620670486740211036500115603797204668439149500767608507190820354386647401885151052665509367023437722995948537326089500780479237369855727741023783780759475773588922261027214372201054152711664520576967808891971879646250573983922164445801445944095743578265682536048280263409006179106409522195448970751773322767270965964699116959465858552410727572064431836392678707154297351353381498732302492548808176731125030908719356831509894729875655380790685363060752764951148882440407796443879072857224796323523575816942152342419397085322973628274882917401606287417995791392118625134860561407348883614979891665491272557575420704039171796936080135878872877082010421073074002824036256396731604647873441728572288134431256261817943035429631011158219424403240650606318326404622222252599356453714961519261103921140745763364407675212388898355560576103553364430980882830843927690157885411991089928737182260185139115529094820619061634966839658759398839641388014131725700627266715355539896474941150565685768803110405957893888846336809575491175835417459866879278580457888493110607858698682874383940893492233740444096071301979561607527298230867173059508722958846913755395318170345549238962772768299376342580415075887429085740857429541162840025006719191236370670347961946280750921803480660552999378679671181155312917988001675640868947366256100297517521001368935129850933794470544831793624732608101797684353635552986718389014310403460174564981610020977342323342326644252821764569340849606803010161330015409533270785462773098291665808302119537051102787713528178221965490751863056905063004036968676806089500647825970176956059855192852149838368201124038339858041034385178392847403639441149397603807616331054173757116603826714576442538185441058009994154102725148118380559444686733312761145046733171999383465390373943032876223699408955314960460954919244261775328192928535091406936011746712157053919419241134519012611967231561715449059539257190741191149931771141549083613604013798870785050546304837160766531256484931326997014966323177710303143063406608598430557866195236753406738447786304100348509051606535797880252099538090410721267392183769199200807991710312643405474540230909529715976589964546871210028169161009546383467553154083839787629677787145481756870880023364992155006790195725640689142281686990215896521210979247826932958987097702777790606099844581254865369831299471983809938207661350046595240435507450075346752582005216275483769434565007515629560390251257065597403313648770973763076905017307296826374778841195963434263104961907344219619927747294732047323861277838150231545915249843159970896622401528403253856120181725565085391947098427058204088929990097147194141228883475098790340836159125790849073782404623948555124166406516631516070724991797546468656054278377223147708113963097773995127872993349744969472166562572535106036260591684360669413994629905859692142787515659075202216358757130888845497044050671261095495868172761494226670100642501851514225220197705785703785542853920299641988517353437324623883962282984034969331498893549767892712632923868609808068233851039712777838684738252759232954145624245487965354466865745965799993277037640602202230880689301255182649412848193597195973961876483808135015356130483820958924784075340597198288907989217036086946007516884217828333028661647161925586650033071945857251524418729329690940492994032267476616027360822583506321080790232521099003887717345184110220998360194330835248087262563949004904070713472477214954163978148803335972129168606689207590970271768268421582307530313823657065620581206987186306318221580132575124507356570613351478971455015841782008041115028242435860167397816215560936437849293770269668963570472328597123573321026427048817404689214218244302821408951459454614110076035472870852314421588193506071502009410131249067261686175669533343414874376229273380145332858507522116637253410471804578842834103915148948076983439195061771467025267753885103312551135918255530286014114363219084951894221732497434755726127546549103252956463077729422945428480987179320069327837930363702971721034277369369568900078986161357131998816211269124155150823024833782202917033607254592686827527954304890856953183127821422284871046986695169230429897513712530165353821944106473872803764008914556429283637180267632234804847621004904503036873381254495152063809939625894520163392634225858838103176175989850314416352295018474810596165104804436885257290513401647363853840306421534276125565010279039034219048161748648202874869710893911789189523097507944391213565632289887843859191280583447175798529177778116070363868342202997551402708516751724245737237269627187898703468872493114019874517994039338141591337105576470047612379694414179513903164146653655889934148885545729471117882772261502357609877491926389489803206284537248368012725825642959943938799462284052445972952224122959690196970858267162619659684779036092299616478404946955704302208512751457290626284967879944398934306517804512614994242703636353886549812205963237079756782776305498932328539532685697509502872984906255324141244686836747801948223550216613502456357350970540733383880614034317687994095590845766334286186450034372926972399609839711867088172283457594351950125904634783304333832745909109264496443376409671712375993565796981041603543576336419713430937714867826984425509990553922923928161431400423622638038758615813815078721015883906069257453405634136743444757913830461916711137425662452867837604769363125298046185104632850048545345435526971910452532913781401272882066429829958263833509802488104823485610672627973570204282505253050338843426199516938944652597629148084811676512463738630719624600143592750779071017033338067833135051377907661670884011121204198693929925859516509829203916030472407243712569239429544747376499665698781386276146499457961948379170930204722271972461703081338887424386342395385710335229769024726768360753924787666397944036723874807090238817882992385917610719396466640790990287073934723536090356364122469948378828548896839049634694149787004166290514883872109037573739430710432750270045183302284670777845134230928966935524780212634530600563380580187314482367524364102495035631943137901640547709020793318128205456052504922001654097963753462346633500229703654500904881211708799288301694939305845208401662179302636960815284811168835666407947887990888315986847503838467553923413546852456383578672003524571798851081004819127895850013921752667333684574606564051170729465860379031161534824579347961749104729589637500023340667394952853178221964489441575166970711292506034396770483310951279972143759248459341932238661427172994127544293358720235544083337636752159386517993525442414011909820486924587423669820928066471850838433373190053726319619777168386765518581009618923934874976674628229826065268937810149173214212880768606529714171086773277021356566237473300290110752535760673966857447350438157048864277059265875366873965068900204027997743495161384791931408031570266706303817904174133228142157618686873553752277648738004721348996585254157895135099332337819257144486944744629124754784045786383133241382893046293767485225960208635802169188094843095727832293939046671394800813670088815845925250179811737410447887837084484141671229466221615283899289427929927245234216163292189492072146640888318893431752317258917243587088900337734383418528483743899663536173184742326923610352735727294662477877358870526138480513031693167419618195772505201454210765044240217877817702949957496920118253702582895949971916806833716322444557197154615944800979287167351112608562550945408835477265704891644445377169736202225012029135236891923636893476447270580064329749595843249415250153370114279163231209882108853827375654265681103654114175764118978928711659848735805126974569786397372557799519989627692434869338461918374489417545231593564609262257602147576051258774603031955698348451096863699935270814618940001530927939144926488626356464463310345508903067565329176342328241382855573606263730862316194885801376565258059984413511206386992890943767849260936050962805821716394696146502718384387533550597558217625819747499653672867192697640159264983735002993612193363630223847448570776030592795071314907745272661250998663087271173918154562766563996223716757307775236937950335297480845391720927646342375016606165311176799868062647259357907099645479081997432959744783782180433818354832244275551400546035789704087853028832361309207801297151779628599977771053507309503171031597307936214277489841389022627688902801100083960113439892042337096004958798734631313472180755080674585515957632689193217443599878408411789829038886906487078390294638109593632457751129995624807421373789858368597310574341088202715443649002818418185652963817498760303476838496539532818169026913220108482787704543305762744355328182600179686492691680253251477663720653170620189571394094294906545334390695271610821332779525902671718721664352636152610044173603451368339982910546985659022282728133080855822073327083982721221357707515926860945706198207071870405132568350798691800592387955368717125725404295404458294641412214750555016355745619793525778820026585877876305481131895403424286305111578165957558644994247532866808233525273977038062698099950394236660259251283907438213603329671576365504161770197409712638962369323720125717716945908364468688170677710217809390508538466283810626667247137808643615553432867014273256704140137320470131565075941472265265996363579041215683843555876977878154974169818738933573349086486814552333490711780442658289913812984757807304349773725640552911204889538149836432081985768288352722459560172415320052193788215361418345209879140380137341481677653097436783294566151834821325100764661872819344725424938006017984655979703360927600589588545882624611639611274943367545134376153204590799687566904397196094570870433065538795136692515112109487137353648684128432411784945169943051201403406992269699090220461934023088402593258141264491902631225524034144450574253665557655461139191646745919562263094458985031498900254452783298416396862798775455416930222129578818793857313512938129639100846577380806314344602981873176906425232559288690216105673193346046513696424217640004606468605194761639100729859322650915158663239618709666532468007601317028432552285395726205739127249696535752968924284384519170384412737754386663224799611561300930947369692340979638607468793120537191153194004249317804832351777576429049069879265631191962825260748163494305398101519100226363904619269121599169313368202342407236788184264865209001824793950785254493968033379764397340843968871524793149680511385592736846034326700199749972962199618003976834207995400319949643003595299519839323472127490718964129967440157930990089832999694252783808223947475384622505443817369721240508468683211704599256417457351244307894690303487274843568928108332209785852677626223548881252846006562470187555166570077364767267881335644475870372052378772738822697259388825330051008279775394036302315291123030516624076813369613555293714570113023782703471892936471506526359949396108830070712893332579222969966396777362706562738337822156137601223320913690175869252417788653193437665499269487882276942540911682258944445902777673682088736025076820291477951856775883432062813951727253505923894644043229143194117209205938086576271036389388400750992925648832465238039689943420669867823268006945239826352616486372998234925213646331564371735672362419873194924906717678240045458520595342061404644351724727141684594429086235352930601289557922778212100129606115904791445071585604318275457616155517111392845880273316883743143884982612040721801101826399430123394706273872329246030958979376666684955058227642034825234696624199100432945018156600827732746423217034982442015927428180900354268699198707255285203472871613390192829639685155373458912709673195893815951939555718424460408441677030797760190163745674909665797115711199588730226128356116925418335347749666606699115437325803942117983373357355248675519477879863827217181588427021356821834032384823337309468201364825392486410088699202236675545598976078174976146938683099880978829792876620974673927866583260587431339951155081145019459595997154001437860840481653277800800691101292915516226681126816115983290732660248788663789204496298738184746110881894988663143733068354696728638729634414036140272543579115867663335878561115347250502816546834885915093219946963863881984567625211614159259574665561580979086056665681698163115661447424605909316272923129112869257922881062456159477349945693648067324045584822871764903199133049678359014537229801482755653032252256369541675652044961126410448208762769695209846266026564597442840938321307423052887628656280749764234385787625238072892302700684539593934079640625801163179939359500258192500089947150150775388080497097864390609351392405921094439726200434985180778643184487732684143673910615066340586414982200261734312815501827200716938318832195437777332831734986463247409314869592650830199186264476099582070894741905427527381506279277901098596815208247565659865561259831520003745065636367853016896330245405970380755971502052629326789574587433902245521844239190388372086908524033882310449292581037986637834664612408722593942444812908106806889935821589592928824208519016149014053355617816435314085086008776993799940891904224015831173162633257266226370029428270468006755833201723297058215458029491416139173360182664615852669021525313534040329761247061632078765588237016734305662653182119606250339034279344360614342119594730471216851499900432507368496339111195235250228224542702228302696738364773070493754249443386576119474703534723414640743828192297279517248303539598143024448088863835380661813163271355250612498040752372258417679217207166956636031842088537280169524824354885191127516627446094754321093179851811661201914975846936684353888805497971073703713861774882691027688361426377091822658156747447107058650052346248527366742403482952577602747832328981189612720148972584697547088425558482483667093845952865756615207127255254387186672692621719568436267440957711770208484688963945719844327457137453832445927725475347312327444186581441148759604803469868767754458500144093968992207372240709231977666146206350732878337864284380231550457422153058293579444820634463576153418546844405209794983102531796811398170259035660810263154814762452462357004096933350735342047132677562279573741621676137928880875000781472307446243972493048106283635113792529001322813838343801338521786525682107773439779593126160563351590894858847449320259130038221682901296412512888257674455717367735023225314303176529398439136382474095135788198258032040481899449805516759350862949118127498433469275285431320046388480092161200595982823909404827839420769373868943430751964872743832658518278695927047997732827662740464913537628141215032309569365327111677730323317743742301252871089483737588626479360746438090243161061680466576284932921281128714196038485701006631818002082087826117067598398320917017310429374773216272387037246572774253287158784006152817117136671725033912474571391038041352929670240723074251417430725752980568786500568236520154103089422763336557590382682448098424357168117482056666598637075864201229594996831595918730201716359492454011001493884017991168083602157977622916323357809751553578510348667441549912408603301217466947743144495710783655007304969722728906778723903260102266514818322304778464880697288555422782304949641760025061800857613018989115113854906993128604656098157487466924614282913671337723163377607825871396702559208608534882747454806439159858835920765967719715768067952185037167758574432423222080105180467127577300252372392779288525587576075091774430098133204131980154389034080619323390908337965094992141501323102980224771901995189442082950478044776486742890552282159716624582436045448503804361477549089158109804544923003030608302546926702198486018473483295832333449812526875187265073101453748652007722375116852553880137350840514519675853035864786594967233243117775679727449250350431218262266954125726105102421094967820790040389891756980487774945724154199502802248160318217366448905121693587725764665807540240261827318019765607956061701270923860957131827341134543897174783851409498687044721680390719101609826585767299776694999204182919324000868864804328494831644931092453199039116798381136366793832642507768873658570349397684560072006905648035243404059956693913812630093621876831728986033340487588372512691742602901982313212411215576844865800954533196921424039496265364648435425429370248076936843870433072401635773172554642829678758696905390592595297278346175931800725586969263633639494815237461920157313519368007719453414713322608370286969334367337107818815792932884228287322689720341686928424439518662034067779697200153620789986431438823925826492761473184800697712491815476237848404081349491257878652933032635518033564914060262796577567001630222159406273643571292320606056086292437130213643020187811668386109330410858481621604778284014049457237331073906610889017325734650250283136186265038484776620248747792582482935587112694112859694909565670666266342288328352727529114370688250204885971785549360167657140089585342809320839177285010598999701014676426816117171169032750324598473702802379069009298929906061920818244458472130850352445858507545418541543935568034275480446540937866514220870545399056638721994069655314681728677143809419547378905455211530733011417594759423270467081610709460074467690054586424945142628639376715450891518128179943792832358067871369330641478685016778719375288415614714111289988908001309954782772299299963221683733153657563273607422532251624422829761383930023426362368075636896714693638886685243966038716307839825726511117570211584872573637578599270420368606188216643861796056737658681390957617784156299409075548037909782405842679533275346662499491824392992411358923754908274349105250492630038446535310587074098039655156627870128335880829148068987245613081048560796918196805190264452281977955590712384934271057427572280239471404984203476090247250405347928976323320613986086071327894121442670109330900055671834196375658260155466466022698025001270978347201553551717402129746093705469427724466592737485021064889710012276634048731723266774040416628179713976888893684942953257363193698973790684841656351739967738268921452569146245499243246599024717663705194639951741949649842033609291663711546328360007461360858696191749508988764545162661374385183162998643457436046607188902172983846884331060191875188825942338709354645322279772005464550585902694558607405496800005131829989362601870312613804079647586332611468048775269846212589777494901496758786384164266191818352996622361351550220132954375545424683392394555300688436709865502588831618560338785531504675854952980401233967798646133145233049063417373245124580250573612846453448057240285502531327851642009074522220469028251044437484562105209944992014613793154996938422948222484711704934020131487270038617909568470633945627974284333208721288245695950160488428098425066255735196148309209604152654109490086810826631280924937098674143382822304040239882389992230054374580562350215672531267706921664145072346084153464391502685097352335765445243070041102216007612524743554034576380287748858954037685586979338585207333532900700900887055299752785260878333290627070788264777387662020602092803618387197881941772778768449678220539997834014296855328081811426774571449439599171820747436818046805166774393661951677125831468741501087640646718388424707155000485569411023898180571636721530538519724466974650676891101849639151403647048913559784021877062296215632676113826549898361142211506990991092923566670924303218601680758628539778468540880018245495165423358391749957527338726791050984543315349248534517739559950239548503404880034818171987167876087956889562893504521752178536032245192850992217204035593895541340429357806133332197789605885678270683992038293917050826401385169979254343005268629700446276509124612075642588669285163439508052474149140462474971069394533785370696438790953406434431979454847199953132722372137211653665194643311111612191564043543658009593436944708792994482844028675388902992392275238703027822411571766072603373792714697910216488601833063047518386822698857467309956558383219428811863774304919274944095790698960888004430802671641655484622896387384815734178863999320458917438022407600261438714950017349246968907341326589273185593637838389993609568302688124207223387642194758086757994209838677411046076386634066694871256383984198659624410283583960134840417003204629095808005468243180587007793283971080129091462950469594439062893017314740580510619639377464853753685850593943023340697473518991957441520287788291378327132399211821021044473982969310040915952953931393883583570239370444086732400132641854609754148508116235392854301694722291107702669762734475927539385555209415405886825795005233728612187678016741642522816251720318309353613652794868436450534931996849935819154770908650099350151362392695152568699111845178418315212256336965986612218132904504686891031061031066630011962960508736717808006683618124155199538098523803327388490847255598123501385789932349731848889312726767110118018665366916231850352901741131798488268980753432035024038098534621249357546232202659608087108271977420956647347007545509833110610387574230046291181418873572928758169460239338572794250967224711759828590830601793093824887477338334689599478357720773486693469099635762723021217300668167958794388125178481699100445483646599635648030757688916559395302886660802968123749009754534150988715449584165780493136195652417470332604229149217585062987813936680255545162197330693947800885084184681478277089017366954268861306069768802918093348506998140024782559979263344898855729467707776680478541248449404606343662811760544834918882262133601918916069642002821587477819139025999948101509446233312718918003823982860956164647557232703703672661421566921918062601116655418098884362957628365973646699690453573178885219422058543787599291570036343622659862679194466164061865549895293719557380397076443224709737688144105725134427384675954688291736270672076834913479015701591170174534136810487110034730982203045358524557035273187705903937565639312110333656281495670210617864653265726693399044114889495211388726464887574190690510807264447656039139389034340017455605913846137762750321899308683150529113731582435414976711568814278709624693191495283382115662595489513428939755124479299552777202428815878535052833341577554283737463526450172017830968480189304408138161234436128530014191903398667364248372573476709691455224144419829654316815742190322424218565393594682116380158138810517705566769122080386119513121437700966422033398002087731189598240273297117903264934209925769930346264066992397780304844834556254755230645555306468674043744855005065380433705292419817156108619864143315552184147907177714797638872158068831870042397834194033671418969954692640984120809355870462013716297684809813990700481306333669056783656589341172568051743921654455260651400715318478741486885525608869210851021233952986965409166180714676969069083955534391649660369996500726097583235882800669493250096276616074485016597602225839353226892184382793573529773869555767161389465131583591330986043209124195278460898160111365574775089017619849873200828420715528253730729358944165356752816767450697747913516163229713932581721972532344764389902731454205948603548581998143251451276684401507131323274942929066884110137740939028046231127500270221618537032306527735336031161306400255247722085706247167131615286272165419565526824596732195824459019129277491250649580948431608990760936874502322468193802145235299714785868150720709397945535445093929483498827859969980995890227210539884414129406946336757856680098913704200440905717563427812439568306243705659394038874194309944021554459824052361754085684774830077991479239492927725569583378276161797446533561662445244321850845291809736076805053232890491334268147425750263106762120546140280466798841865944888432178816254185564431895709439255511609524780590898287073146536693124450909347114755440240453585573740244191372366432520955851650259584831958184901441682291437348087264079998696688868103013207505683278084943621832907982362544540386830918089816674736733944979215848636005170871053220901739442047482199832487859493022360680428301693026220514603729080452319764411906805707272154397078437310223073133595892007343903417748818689017234481199729634278367895417167406671210686693979687005804572485126203552998646271859833678891601244069020159556090884309931173741816403993097234644187677116848557393410689560756436141231787375485888134462804123657869155346736310018160439533708556262317675761192028848284047150172620159363218381025297572644790938137280805895616431718014956868120046597196013137682301210285751164614279721376752080605671752408637923562890006173996304787863309995085983216481293820498925473085485544137421145029655804088266492941771002624999524799024692017105068517994025354661661696442923917280667571222431101992946264972760227151743243607984899654824858755930441491328468822795480002514097672321744843021845663483108735294349283763550799723354199596339456898049382612436507628707139596649592068387591357755164426239673729145050434045844572326126506883119809514463368864075634652399943065479089991322344705737458485457100836495380420699901179878261125144581147485485359764175198094745474158766448294158541526372620892718550377286122555333372966449688082724554645394348153891476721619832568704117890194080201771802962724023837094894804407411686614097993987034971725616099312895440677910699790685445595311075287096079335963882189586956252522948945808020348725447032304568094037855301910181041736785408941062952763405050075297551149818080721564069641619423018816165239876741775120344858102092902150650370299442769493644375692671063958617319095466826949349772102038428568067009240323317289667381578119384603273162789863239806281487116591379408337225721803419109117912750123686642789722823426797576476999737900209161871216038422238174773075750767704530419174558392316856966432650938804089349680398345810310406524881374012493074436887332752750833117995870549364400128899785273953786486878127311986440808581613458357871282948091029479913264735979313391501935734314931049890777146926486571822227691308443017681056520095318384794796440275340484430992284361646410771004167538861545557398286045340744991973868792133217831112544428921476431687622849636209526614704698451284557380787587649347281053170636571168756396657927214097036116180809635393573194585878455159058272143937458272609871970803636567730835097530248243018043794318160485034563064404007755555143376518981898547422551007800422057956450547963982637848079558255685060444302146791418722388145948255607563925439013368078397462510838276933978392814608946630533078035976087201755061289098416555255236415088715009864047708163195288935649617752766907932869206907206999446341850135060739657485761356546266822779432676337594991941651771271155480590948501708657582991753987030578664955842927475249313535562955424628121951613915591398016475283561512012273968039036685486972611650698482472325217045994029567506863679243330668600171978054822089362147949986276616396201520176228902239652557057027892775518708718407754758534291285036408867390106189426137300047862769823758635330039812551556725341738620641695366257131116737022555067574075111923987002316635615220803461371863905055747051924243934613220455840621713185034423317931598697447181977496759777653340660865511975003388439534861772830427694890696029365321947909570490983265397811452067782245257004059018795391906777223915567089610486382477980920004087154028749539147709600311764255902210365287956018484280929873540106497693016030884213115030985840898789277425667445161883231185697295470150558667832459900906132794218746804363710602812961675359378011364023536157090771303040128158145157955854933648550920403786298773126489494927970768148140780767820315163583770043847338724323042816674604512351614739774592247178471185124608552590748405695600070203908755547871193896094444546942069989277998815862927828214178788288844430246433979505740576104215398304928674775304986701845552590166797756351335365139164374865499220154512082783086300581637859929248742551127617014596678727085511826785549213520978414807086020892067557842038922272138500549960313755673591623437070145531311101260399328547935470772704010629789653462445470195110903986360338536999322857763486821453931506388045122302827415417065827458629767123107267864694414508224915629082804096193922404750315711815027023630703663868910317121599579411585965759511396911992874884732744597474889124542596352782862238334123828925928283865095391309651297112603088742367017515069092865157424765133867239821427191802176324856960803035183126529540197560591261253347514879255270663972576549731271536448744869297788318871741174052843568807566911194933132970357333714081509202346913812339380556885898605080071657503868706141000503937233187220823956992311760413530303190607540705748816314659646854192953228354104765814946030530782178198558408539593066774599309718942437647881936778733825825374290857743671944374466024734060652501707604426519571792264930722700436285940717265443260870353711308281860744697424321249393070789378132996664806378244581053268699790148084397837531354324195893114182137287944879093783732353791508257153081003414087093289732051724963412915996596128992353031456747032881756622954973227770307706116035829805484734446924580885914510529777002854309359564423794715655068310420112565407461868574663029219454056983569686988922766062781274062570323062680474207932833743339024852487856910760178597037382048189412534376557570703824208456889857860345340267606228653409783115057447985388197240498403698119335002701478660645059286954064440700134770941994682261233447692191645053317699800965180211797324283261171640049389472740780391702710666359141903367945563203770394077157206790664212400057234079797640925049491183751011247789153142123114540644635627135408598322389133284349949480885105071947261136505167446321797665225601824690285323767353384613407661005870296456305022622934533445941607251599113972620302798318912012532076394844926849319567724246710739791079539496123460553415538181142448489394572525582870523193199732930708431232923823262252415825156074249912776591878304346537036734882997091602812273693420020995928608485310656265642589128585941228551934238982538802765858195349595536909870402553196486126243824660436616143793767846155883047741984004972208578615844671994587997715107862869162474023733049969971156215309823277255610292362796642224049049689318344574448219873887563771984058937030250787703487052694940353736225015249438047194414927728884505926347813719221648669565008336857801778049563067173886964328646301389405787235094488915708121552343424067084632134780081326299196167425663045706699929789013489102732915875631502654123466710288526663664207371313786764384491126160372880398402888110519741079026176264930986068419109965444323515354498142973325842713480926166763268182706608972216133770058153469939842981804995956788229922888534462034011399593894566733865486456182232715253278698492997438469598336213463623682343351907535507214550158949194502808660550435370900894956098419612190914502438627105654739490099343882531644308610682778882888894875116687035297881014315846862342023441327015702963361637886276118802953591479381853348429745996754751050778290279109656395807985603417185751173255971940157331525624160086228747219906565534094631102872662335414486116871818683894458616854710644108110613010980974176719158789420453840123320082867256307885865245668510008645599156409848065023834183859001346026739365798855970411187110077236800300596209363793743612077523054487524192886491750489630512920266936499526376387047176631597708040286310273947942098776460711580101367477715286491880265243262099398535251828317519994945042659318559140259327878641841924780105166697653227592173824556304335965450975358842013157136177840696615046588514955035906708394093257184925423629989730682206450645753049634153768691398889758252034154875303438102618149427107623127126203234078477623127680334169492141124449468408202552893164854705472108061663825375237948817655671991270779551024635618562915991454744036399816208509996777627334706903057024952605227327407633158186799305844940548442102722839509792090327120167198886800910985156165092963100043940126345046239889712557966232188623204431768325216067529338433126559362400721088352496366263618477043771541037546237441435072456721119033866105510392576758381594444215816986940816087335053227019041057143576700262205557585804405877080227477818890400061947858550484381694325495641290494149354423391370668801614679156011893495335434880525481975997662444024500945276028792006065434477784974434436649965570764407282464118617964475986235083231413973325462640074017043477556221111912423960010540312964294876479233772090039039859206385470939766135607349838336316282302597986037372774877885505652369840325818739876361155367426371964011346618698350476583469667830619525639433261169038951781797172639232599225636907853047920022867971315318302112537760920735288566721086514873875839064742002267626485342319516105478681603068391080942615443782732445048102144376446551777043112394312021265877937296070402055548346526937301392823017828920313193510715449393980506704392449151745697149928598107625026078735243815567198717194070969694835533797990118255879243893118285541644235503021927081371356487557263934651709774144829476545297743338797875071948207019551723175288695411510990427474778297810390962421381214933758634894511598038875768331401999122643408582180665884608106457196289948606751478867154367637971144598073516463269300559088172752528722510711794829787307400994154514562553554128300249440753892672912846122097430186852387873885471784633462851275889881606879221376107101179878464299825092759908432008623894744151680466567576191341732196141457182167418542774551155628978140977814667306286939642244319844725857803579774467406006556674683943970609447882882439770828911471996443916916188863048511111928052412863683290754171353386144619713153514446269223024562833321918812722023525340010936876577280279119719182076580334868602050251310174304315963593087975989034616436016976653178149005448374882688303972489033681885130571165905527120052757770633217135805587124435915258895387368934472732059989963596732220316321758937554513310214167160518459126898401653498403545964889184070210814883019577587649336361947935676299469386440262354963805358416678811824655298823115823205782340075778368605719951576460812500803818461773398931932633828151266915366299671982364336818270582115040398118424956364548339356222659265628608338260978268752882768273145510466762221946031386961017324485142264492098671511475006252310738428732315068118675204930005038168317607998834336559415006497670156817669419647071252490953121819702906891757080560039373721458303707035763255422092501758649975863569739325237938093999701787705149812622801781716224641296053592948485526815093435389252104724829234949218626504174453898060660499052541337297025573478036648832804427299293989565920266403457834300035182460250542051274243308432419629389652098097356483421533404875840362667978157664056157138040476969779464667984963892511968222145321737815830205792457511204792020135574629999329029062678037173411038640655153817261514181740443203988682325855159685102260745835884412989535801100993448171687794341470255827346507192434237103617503925105751840490680136251866547983662896162083406468641357473529614724036125691384997415044255663970026367500556476521233311829504746597739680026413729178064234620841060906869506653415105758583906568292829294878190860697426660606070647566489268253924494274961424237527343942518781233726086151937869118046099070887683515627164533976348221323602182960117081735377397305485148489631503771569322885175836598662677073444456275938629244581749012993993332342484917676562751433706045246517172642246043424212667406821440762108263758009043579958508431214541720382678630557611751274578015121670384685181640711842504610502182994384687069578261157327296390134567575607493328923401979535394278548577851008723683002075684034795169101371199937645793276322915399682527584743870660841355104900886084280018713991750046741374968801472493788971871664274571542540591937109612759766319639273391282424441737099618812877388681178255156488301593150816223765176748501449246966350177363602756015903324108580792197036301233433209820964695007397306158972128752480636685777174638665919346132665218388452229145013474947996095555818200007082819053486138363101657758807039416557544383825632337932519928313343291887882857239121072556631492090575298027331779297949939652880947464331729002274609226013135103791988751708932691916270828604538158664788666575657854370549825316401268046442260535689883877232701132516290627848150339823909825166640059835140916606657812972056827549338154439820609239138723103868593783059538139174900783805670049509525832454840328167982226844094038830231138899351891954104445046299763284907799700780153219692312774499229386240793758003440256486175152854612411962640940644377450042135095486932511718998177672118970347592340333261978307706906404701323969804984206895143114175254243604823567917908146656847413666573714628241785349733167212593131854383981741762224736297338958927000875355676498109875359174413909248023475682402101256253585071601912416848543236020612886471093735290378088948707033304022748375954177125250159850398148781995706137030393003331046565523838800982601705925467238389563371409995823083312755117290855098286316078767354658791078002844265746394311314669302231985433179269973978900052824237572529631369576890781376249869413039024912180414890181812707829451614067006393424434623322094012797129209340095742210995904787606035196648596163213518385039819062458243072767482724153240121707306573379921105450112592197107497425767619098783514825452594847099967316014793758440138575038244111669057762269412452741568850041190259134990463534735131682560571526325321104515202681357957474674565956241330577345590276525061344808900287055338486302860775562850924264131894864003270674171503135227356692377590423894876462199720659605313978242252363721184104918892838956715547333087889081214835984726192375595003019461533860541162485374973674543206076634776307137076532599251477629044524263928333975716876338185768044330864123972106665528168616930053944045371356367670121873449245064918032808333641084284044259150755153803242732356216750362413502807412738632301488338164431379363287385128537099270890191299818281891044353842183656057994014287255858036439974136117577559226095496622913282926855517978350584250005983638116277048449240002333130471835243932658561641240217604169069644798763158612013332541495686409333214585296307104344296382777927910986028804520423870333124081208904999366538290620211569678238549727054238712767976711352108267985561477029342600266545307709705315455960957235438637025380982366794658797634183095566937898464328904910158101802560736034104058769139156131283031673254182809321313878407378273175274933580268789318374721106097905093589014766678365472337507431199020690839004877456601338622243115170146639730561436857078835719380172311113858524723977124593689313688941407846295839724285056394201429550941501202127294086907505026138808677973256744468256212046202914378598806749261906864673728002315273929213958994815886530872914516563393979491502446546279605209620156174673960216137884980262488792697820717655062899928151946674105693335207742994192871680212709829523988690836903091476388287329161457774624456129396747548537170622680033323573433334423159468507189943439654089291279796041629472795313600868440674576511648859448364581348125508540400013939011292779811103055096836593242378120892069513231603571563887862955827471470422553389188994021370172895846761452675678268409511632710372846912351638582678722501632320813185010528381930837554705047592214465869272413629704460419138911159588339261953010998450315515316767737105102500857379290141440006460165380840081650777492517545045551644973493559582555630630369595846311542114057009014236030843899198619079363177745628565930362455554911043945975379415613392020355306996242952232310795379448518895361533045487820182806389887995018958813069867465079868116606466089446706632111895102055784697993773135352939806965470577866722911271743893045462790347393945781104186833349489629468985823282708395939040868137185258502862249912792718740833274732582367673468398912917767183630250387409524857752800519365128947181800746014432610880871421749812018526039067703969890574407905989375173495620079669522092465617418366337487508802972215781543084604947817448546414537430569468921074996876824653357361846049553844931924031317647207914747163253647520659618066482290072244861840796137014768605649271109998211988917928659101767439396120847527916491912307868108704220162198258694574023813010789543125812798602293127373838668799369489521921125721184319284744602639352959391000879918552647872278051187509902712191066166449998531093865499784830325986167448200035003694323392688547382076583346466972189193115303177886220244659013387196743240424435838822229003022573899729884905273882958852589218098371950674658534492525361151659031735657234534736191022018440856339233363683310302103391519196260689977407344905205603639462813763582336298546334969183754880778404449208591573004458767299726391971078741361256466346773982178684613601419867348787637907465691902103827077292481721990853417366841578387094108657374879218303693062618185378737057763400359699917310674739481556704226012231727940883192954655664750766117287281983053454149655961862912765547688861819443065502271450734581568556116039403914000695460062330437968347490995489902300590154420019192326415576496720538823154528402380373054064896510006998035614559354725986906388397507821406069078720722654847513774024138638644335746839597735745884878464453098995822213195797879550513306576167327132333274527292171711557067121594490616756777246477604882221613648372920462372484419091887052478064500155441873663205213736363845293218747181895296187420559362399610765791429416185118283969620605962566385091885335385638017230530087135122164861284919583441917697683716583694482648954322352404292753312402680123224423277980621419200049432724236668200848997313118737312370723295385586234494974083558377336793807774305695176250978857901227932451498024232075053334994949012401305740701477189044667226723619465353493723663137756659401042178873530626541500823996288549626569040097615191852914464526247953811532643723049872185170376241754415989027673654711991901399211792183900779711086115420549954336709149441875083358137677600968580184970397794931010120157795445962804862015361913941281276283153038532860939474266334326810500201320525822510954521344392330825688721619405321313170366335041737947116102472433386736639271903048183426599595157635238824696336229373952996983793161020143350026818839716152041995492511120550434424686557425952827431032132393629368106469017441807920337679724999638563422936155505282650584266345862768864933419986814442632537419067568196089351044611500174591591557341376159373468297685838152413102053471792875212910827762876302969417145973945090670795754056760002832295179836748997668768846580006698662327415496720474000690861703071770985925466340141493654145949273634768694880644353376417164659510123329530662539917549668349464102287272694597843323608407479123516872153848539660199614879106940282081985139207662890970403415006051458080562298401802581991097799312575075356557082601370464602228894195242284436288253526724369442391134847651986945060901077737719629611746637755407979490861609950154017337748260949486044152231893083647812342432725830600017759757243227736925302282080427389698581642370726678140989743697647001242102556747574907967234416581740544707059981925388978635032258969730301951945424963907549100129935846469189465260709848086903232787936629163284480347594288211656949017963289305381569245539872902155092051023447081147843626081435936723886566573724301000866046237712758999378556056249244699143104927938769535832595528496176187832447711724567877257983039789195542715206342382594483425383386817733552885142504100364337184695488379334359397780114964599792990661337006308109572064334437123245644728372483138143791916222891176389104493082605170268211360678349172450677778373119821597519212284172786067487528542243303408063236964502598562520245928862473558287581679426682260374194898403125203302496746218652236983215624110759532193449785156835795425599358865173170362690097876400536464856184694077810282687410828542020744505774657317056437373651810320562620175796985282026557488869576740623615203868409413246743790378012782924271311987536242784724238602544612766597059194246399176420476770649268642524369568403034869200224578047831092622933697519841711329584612307283134481368156011036024950524997249953174526370963004679611588110003039268667201768531128855869974145630282803567472696035356789081861560140918621623473185283684116645220881127834751554164670824301541385031339210157916220098716828103336257599206398797691614791166422340017379623241904185643593059564323966192783472803412328967254478068367004110765265970750454411591058946346864059794192935047980562159672652468203976747993617891672545653059406477369308137155868262702906416430772359939689549993122420836984192503413973604130398321242025257952140869582194750133416664282800573475499867900882853773526540320570533848634800488871565131879419183143973749984618104403996851636771137337836968377530091787794787192352732694472236033170999941807081068892211041966778215893526544538692409265850359841459798589270352736763192732384595902693568659265297200325359093156995494823911461008427820261155421182979406797882405755611074886835441022437826869990728322628451330483999896433615522677929463257890643275764133631495546709028836180170308285020768250416407961067661438910407807571920809367796089317127320096681049681494198354429831813078328533184582253972339851403546825185570753985181362278287752415920636495256748086742281482667959954809917020330028132985322269741368387676300264095040613533179905706709115556967398533039716023274032116887152242119730859903290418759911163423329167582034331813574706776577082322455974602796803945583207432217690441924345698277053581381932120890199610527874082983167960671743380331190725091277965854832824478035888782154683281496171320605614526724480364253516559712692784693064429743988693536022147841537770894306230791633284839040721264463069699347439988703829479290530818316621585730996714698228877174470488817921746499834878618098778996128351634879598689275651577956177767963325593425501875451247305366276226152339187130725089210234957674064648423404012588374361493490555980552201152522154906832934288272139531747725943043122616308120002378448225548379484614160135462816767792673543819768199991450846614472508742866904557068035657203366188520069442196344413133998383597756242634575158879817592096291603851522477065494025669774881021491142856383834620681842148557995288157202822864122776862189577279574727261190136487829158260031712351641286375970473990148308582207779260937764993956483860781392833834769661513740769360735598868093482537843535960593960278728003141478330638023138045664208043762550720285439709831889234823214012826136409679462946007431349634678605316313992027407537961350122490406652207140721268691548990337922710369445850337708799037457323119196128753961183844585250348047206438857275117283264446373221373850924091305098668226896073997992782246573547557560851222256034241029498055272378678074561687917055430410609256358395917983222043386872873749820802928957504741682750655456612237469592668342899451806334674108443832218652107499004898449089594010167662012279402903418965500350674229293262112447819690386535742895706264452528277582988816103591081234558920797937747735918367294112197989596059180619898687586650493573388827373514220702052639750279589706325446053166068196123877571301474558790120123484193407335885979441020784280739671223094910503525451712889764460179731949192364116021810778298469862848818794645473030957450036237275670803031257225778801467578040923271474061654414033172507967051543108990925463191188738294022204455842870450587342947058279844322835736559137849812230911410712174031490645759134539227542157290318259488991224761271862921165409718457360938556041572929058504405283517725007922744682182487854874317473949512317202796282385257446734045413483088411257127519679337727857012931022943394932856402694684273233814427406991840156171559046538691067269360182313904205494616320169941982485466346850734364312401777313995156983256407017385162037937672688585127976002274113197874404066282440445292519495440176050467631820655893254428557107688032372747100336155274887644680338524960467002092546755503189333675132501006646037232782258150142685663944002387919917121447188513957938864264109684002062840087317320800030162079914350023162239452607361277062980856120474074218305082043348558561452628200094379238390949377802039208321213051629829965827538719191310529813118921423175665647401666477697585136949958777024189441655655498802048836122070504416385252537245353702933651114388533210114119857280249231307280802379991378601922290484523174377638167741052960008005658615672141049196335293730679898530601531226344083483311757149977051193370690686411741492015825348590164103404430740927835692812474744668718424297370577533741373713713139473690090072504722187186809495533415930624270588099085898160751121506909927383765165793053088751123850648150140342374084828966181977670737948564381360268552787764194842857687547978505191644606850578784956820025275705153257136204261368128367119534008794362922276926784110644720191500788482612256823994935817970482555456640328448455409836644844182729545235974704513551724409143400433945625959512518275133337541331916890415817445535166423193339029622730252194117614094648558685716947340320836272483140675146843613465258282193143329254058882134889984660928770755198153859532579803383809473100857686756789072410581410212630236882565888799584551436275261395033416385595367706249887989234380406786191943910178396580447273701241295409242312981028062250775722660406551644537063657079467054775974841212988249318318437533151790287843681832795716750134037510008097292278805536330424759936958541944683440627333839907144946044219987742503220640437295987505960026646808872692965039942101336873313169906775911122334517899786703155021439012025627803691138221312498253920748686318403752582901214510798406893953894864304564935275235129218577187305428021242224320403963708527244241295078421371447825777347220467189756893196726241447056889403104299218589255460160200158191777221774592856150044580138557848247651673019777134224536129982654833954737615095515380212295113543038933454394975739024834994768467818651644342873497200291590201798436212894054063901467822533736742781953729795135091067337547634754800927142016689364799254030633156865590754240180229850835789567799922178292715115281007722802168372909587753049788210408646324285980058345311862296939666020141824073488271373528088275436957156886842396478903818514506522612808710448397635101665040856528581889863299331043460739063811469630602752581136053386934583850057643491253258166617309633157042163532448252155077989638264571792154044223767631278950315421121121751505310238320168820347217854295845619891475946365216735454261190086932125685145698954843086653072822450373047655583172397655647520293682934792372825295184529787259199593509586232349509282285047919525931731374837236949192435232424026602135094606425021926151237581679142315862999986240878251444928874177237816944380134806368020843229930513929942934031171516444856157379449896084376946558309299436315005341279587137715413126751016127914141985580865417677428989912564060273898271789589078230099461269743768190205727864353680999867360963555754349127778728452462411756534866961673155707638679266742522462344458862758353208758830084057128586522949513167727473910701008573846637141191934202799449502412365049289154428369408372076365019234239780174547510176990835858665042757418688876172851396732061446637850885697651760494090567565692218178173208446529180302804544164564317820418822639512312137865361851620866477184606890923355393517629459923749540326975785163900238848129477891536498957180264275834466259905694347524420996615005088665181649804606760979529559037253023391471164030005820805176139362270273476593326666844421252304011670590115302108466950866444543140646564541576362148742548462805110947156608330964489963910235957333890897526221224187088593283569752940346839379262626282651544523919618608194047381189832610157436666949615672999776402723562489786537661364539290115499719429911969506276643274130561119844025375357133076203459512463300366875912262786394940543668134777616145724841280732216131196738085283621330285402060204334069782385917704027443672210649324548642383973290860256359543603461211432019303079250853237635098265523494559878006021771497016202859747320414811685448261635912014163430656139670011643950534870037074544732753868210453885879664006078927907800813203939045221113431303252943795735706091642638242721040191845737658258129196064911736368890944070517062091866686512272602666468878279748720302426888016161621359987601515030368909431492891181526887647156787563189229640191968792721668534988902260225800452689975305634079965811035921098973973906717054057318290852141836276949938202056150247412679926924702385064363459676149296338012036447409758771361054191678726046942653811101980194248955326880627979940344925917042721069718608564103874228177719204915365579218154157777478559792797956620613391424360228544512736305091129381681795982892310923345380737748891682267149293911434000428982134722520276549006635674326778998633968390444833745338732784382921646246660136268704063357475757306128324804589225831568477147572938559024842522867295305650941999555389351622936854750097902441104709549805689262165629300323632294431356589263263645181448132697287334885476063104436537899402241900900523083871101988513885541360603242315733155473487468421478498127214519763217318068792483762539279515412572892766159964770312579812421116144352056784610961969252779710415213723745393301431650758897045861525441583648398264679957284559638376855232359129832929089412204757400307043959849022913240657273503811326044030913380704908573002990482114718926211175890843894810517104160230244140098374384250650711777511228155973594916246785056783732832481721118658096170235733154726303219028621898261768051858612464010555511197744906197551254677923254115221209329951749086693456901120114428822084065238478287776556553161503458446717331024101861433139238567785097288239277474184442697083848872368950206182078346336095510954255730902099089407834756093169998084763565781010815353969485686438973883829323642691238510203813587344082022427869863117694360839374998599446008466789339367874138626973590976452124949893135844196189544182081687225025306620900219069667827683739910817804475254515921966672282791132415574015788713036825748261089945563056809395769008102710764339367382701398669796080368449027611901439605297295908508660859760232615914616065806964342071062737249177757322996160579836477834778907472646656880012119611442280841632537988953753136317521628073851266483296892029375692014007350963051860832709010654501874581399393996471221307592612986091522891525485695752956428491168180710316523582042961108969996109089203998127007439770392774070125103989962070707197383932116968629640859807445317148260806322216586954330145673955692517480126664414686263051765630049577304838741017683406634384503022083233341046509807256550349013842513987654410070454790992688692080325880754794928659409932692234608812806121290685982721334356625616890819122599493898577151696086849584811552089662415315789349592489167074827257688064074561344987317516485315909881334087785924214211221512639426061560740644131890266496843225489418280861207830200739879196384781320077728848017899921530498198595733949338847460087961317836701066103480205164290930466346796282539031939868501875213874440194305945972248907840115333059407244662872494363636858960178566866439058192088496221768829296408227869432196645233376033013761303892190318821435696551198501617320076504214896019374090585909267791900523182205920444754087335081495311139162209912612775294899441802330088118797262056560019716130563719160131223905213709448550601425302187411541635441467569860997499071395359064556655492145449729961870829600616826548283408721232230912288993552977476255181447192826058729973173161464274845567140193610717881657675027203161111186922703520006549478330934330829977945753412216658316597884415379443735446490878851957891987633713917149013218358259109515853183205048587973119967142598003773435716469276520662965805439292717792796473966170361623552934909727038785113637978576339251623927215813344120629064757565713959858076914208900149769088879663423088129127494069878715020943886527068130831653946075456301850055431812451847533636200045566119290758370867857023312371393797009157406963760387455262458767557562715301548041641528773663868976325182473373979479007301254362130645694424886643560332012489153764406235025779574100269616100050759593104701138055724795266601164968395249606937969081017325620129518499443851841998442314042660209351554672648361481180671788324681975253160289812970285915594183594073724822950472503661863062227832983835764430355539450904527228212836182740508391890707093293420960258955179888492328290244407318777927826085652518197816083243257276407825698281655366602482648589878645770229853370775047353784318375532056236036052169303756649246484434036341273023482222959351126789659389737769397985388397480404154193889944525539384531982969130098293434271159450589697480752092025470380318928063473229513568602918085578760392204215902538171615173134362073092677327124097344501448165815743584643257209672142711425313154898909353287257082075114330054500318037587415718776412349424404486502949043730807791547966476787522383370561026688861514333140530625152282539213209173260220658384569584162974028216160282502534613071538625937708234057757432843460910610199324350578673605035385318556891016733759345097433355650371416797906307113327144592771608774448267590455790834578120313947199635579623638894016078853305475115401680097297399590003512055889694019355039786294929635034450148286809055883781198634884998488984279559385944830079812920207200405860361653341959381690294407464326683692875423268310443300046209811068700411716745418188476383667964345502555424873300226255734834007629874426017869402226420225952601354198068234574004382221811117290253955639966394085923543981546381873739799232485507198946143199304429501705518120800678846853550558054941505386410632649684754789951441258269289075515596813810411686746943818888421703997739121677216931969912688120984035589727982090827383654074645877223977208569607118761395502334547786845206964722517128469809069992265021593894715860803938221310250966992877952578422322703539703650558285814026039937448204227264059933560603216177944242553051552436650060750489158166623179619278932576873234165265548736856545465261139330011690501817762592515294892211252371327576957377804597887533057766504506365573811083773095982473337459345700376831358385350317177958396746973898384051762893731352439409171411212244808908369246115780135518844323401626953161961517883595285814768952170230591020274465584550774420838534968398268046469986763880138038838262564341170296748690102913437759819404748240780054245843463259221073019346041385666777999927533027629766223376968178263493755544461742292422120142976267812398100422642793855846471046347864753554325823328559413550788491537373614940243212069776582162514952657062902565438791610384374381182096301237131673354935026998769055636549047221314704106946318134848320375970568385704784993377641842227327214075581505874606662413656979187903481827087154748446921258171067126835505322745189015290237849841885285144653470365095837256704354737501975136095769364107039304001233232053533711935860084143603329332405050383833328112161701501078898601496177896114083383276465766531354290415343910349020778368788710884312323980426666270860470061715152216880316336057073081045802878832406570669671886361904005101272200698025967988626546890488499267139273442525461875844827983321774153663791665389489454432762021918219382646761382891497383243569157135051415291014642929030629015680590171129797082213249345031464300540041850473854785967482951211519715986669970664944619659074943184788245037098577104163876490015025126860010969363068850042355720082583604726679006253826337763577395355550258679188149170846542743198629535522295940283552431531744631151825670643830165960184492472879501945617459619302077725112725348235217647687398198894443248103447647170507651325032103814042832051546746492334950248197330672224828977492947012240828046143055009750120477146835840009474753471325096928809248050377324287797544083068045353878366951420463474262951357645041598266333693652123691075843995714616951903178205683647537726834814351347613731015586828365065784367630460370005282544174886179190354974035897883982666557070086213577846257329243370873520724906660281749672958434545553000131794150949174759379325916685944164019001395151898617022245188538408991630221479982059140711339214499579643997627758839996992083064725718342713447697903957668326838352003524138425329930340195109538733224181196597525268574595544196858103219250401972993735429069245536890656777198785866459410870932283949815815795665087985625811885426807752765323728211844313211799410959135887989085206261745130554363066058805511263298739772057633984110739970325168905771300095590996198345620896436311356527156167860276749564575517197253613192835404600341795400395013879769624148068653452534464833341768505511613464244472937344204294580299456519819202972187278592580145776851389495752042155857830966575675614702830651503771245516349738899567953706845031746530190615060656332533063879950305731427091699071695378843328799999889947470521659245316164361651843627976357169677650440245356350430791702005587913081281283964073025278574198064386880706911334639315158252669913904648220450506266116966454458601599668328485700601205111795979993923214580070247833429860441389741326908856149151622448459905289025359954562748194243856581686405065350734621056768963281160471902299171691095292947230482286464516039383551439689127245375252579855442977827267311493623987921552019906169106239648259824079245300377955942828181516174251912330847946364741041706646989900106974659500015858588994118642671646727739397791332280470331398976337910150242308541279456325163059074131161658048734222039095994181959180662453332657269190826421354526742759009507299888575990696240982435943816224818155074223473935291579971709963839455349675379285162577931264832593952486171367138125339507801657045791639361600324306891131785199710578295993408842154666883197810606747702094349519268975351241524524871815765836177365662700480268335821612138772749895658889083615924455769884211909900132538885284514077339991983452400570534473342640332067521783366876302110724070106370423971072326404260133391784247238279009396850793595483316892047024277799186016379043143427029441831548201266062152446942089735429739576530121815169997293279572348255248322347854230780443604425497000271424190351258698806501457224305813579235905022180981413735379285354415273048150779381496205615021490223978404004529186627209971125701300251061607813575059965276020567011140571109974000763084941486217271459701058001517464967569660340246444155782699089767130648597015926081433997480998825324245530230302682269276401826241299193328144389350770432588607444048126928529466928198552304356503376564422233489040312923085907303040637451858754726948892495623790203899120536465140396714582827043480889121530894942114675094295839911482670500984109457278265290769347094277235685208858088928916794100345654718496806951911688556937000432568012738158523594344672608809697924642637446699321429432697702738068827040470816053247601624676842734600846216283106834299909930826412647372534313837878582488631525405545209822968520801088335644460251105181351487242055826453886950580426760058946647038389476208314159533026645839639287926140907848798789680893051002008098185526870505279923928417941317765441373625252260818903373554988721094096961152810683765315427936987888592736117859773529631672901612351972042203632415324302228299284940784421108090038131614298310113592101443821466448674429080681525889811244147771484076581936540957894267447356504049770152511788028733480873717395547618494471637790975482575580734607679764783238955497969738657519622601370841251540766157056911535877199113586703776067925808855671117810250431365800099744316871975621680224263527661045051499665066604553603672255111069849328101828766652484046501376628571230668481312759008599643324316074582653349828100085563112704829003351208529820018441467518472099008503397757959585431365067483564975654386180950178111806232941447041159247825954174960640518476930803790855660483678967224912710277386276362832839929466721716371748414261920050236668989788290709429712531353996271531512491883847219237576190180671080726330494585957799747206278221249208883277995447506268187448580616775538678139113169795803995779076153477495376914730096187808838171895743314738285336959270599960552789245380729164059293409947705106213029277123454726913172916645303498959413002087176649850818336921904590806401043376853320850168938629331623046542943771996763045610309515043170006836332629221701461943322366915125605198392131266168969675063041261047693094251196842711632834743492358543617961384831376715474681959302192140772510846512047380525892974057638319236282280261231806430835022316557976217462335118698316546817493028695098465237267535823942229976494394752105847471703477424265279834038290814293698900635166575604473965428952903762986993471297854889652150446908749218956957779518299847205497402354822883746425089362298249938744394017828705994030875333388627412142341900750151670267514823681320648266921658790334781224432882882224067498381912314491617502270381434614223738945420204535734424912918620330045812757450300524791502021298522909716511607372728432484836443667889811814573611399588051072137653822119640965072414259952012232610945752040797625233170970382850722729409567237908863582111785432714566839435526930181894912155639980440089413724827522359979933412227892495358172377228527614594621955904954975560069443030556658309599132673363985624521596288265521176755773428921261437066104401105627458365841239667982076312801792812077476565395780696607722571941156862424930742555632531816115494366832402308111206685321735702095619530297791077270699734420969351351135845970230603002271111464179551442446612841559861500291915527505005489200414447358678043403900835248543601521794020608098228759471911018875428307815634403840843632386486436361071456088171008744969270291081827850947459839192776681524119198302803704862023575479738922402086022568516242064816918225116208399488644351115445076384161464366408486233834433708670066800031364800195837891469460328391410975591720994896927939122382779054069062383352104822668790466081127785534464754646289089085784749408680569691079377599949620510472870484843696698281964726814513691914440213243667413860567380667284062085527332190830045277277401810532883368765880322134573480613033086918255232654978212897527290750942884238474239648658490421434814896822712417591622075767913777773822892369080477956165039555281202132006982098856791876465229595818758663943745600273160661959657102239632107093206024131528299230791480103116082202930806051673096589047546975474856141333745143738275147851640007287893154408618760889010203070332105057931150973078313563252661787968240981395263061374386744591978965952095323535930529050162609511703494949650380719917164164755115232868436808615073582977191483354048378692405381362186041178480035763430061879717855944462130327949251032758410219479982248426557890275144980254722802813944572417291576744432254655483595213790611352712309775095398778955842575327000366430272542240859260921781567151944651831624844217077648049628383839527246968489092890415184521094057131381639570809866279479636785052817997852508266895120102608435454896728499055821761387265945983947851091799548026829653530724591261080715714236674040215927360778493354872761280180123879669008966686162004418139488104302600769656319493051462693190880041816031763166907683641962345297865995440609684408941979181707754800740795297827139355082788230548648506643246734171071153095136912789271730615368853655275958371543725444431940349663088734069957063338271959528991260193992009526998937601361829587294347285074031946261044557298232194260737798185425446499198588371941746182943630050431272437876519600625716313433596569075497946524053980937272287822294112454310131202182276923078767617040169918947191587016606243775089030984932834983881098482190908727110050443793957724819050353766239443733492080729201848491087825473518186586767333194692455197521976289517013399800063609905175142059030788185086964343178868360979135413031327016390901504480692778712187614824455398984762930355639461711042928384224553290477453344553217492823467781272063072245975714847547909054711716579610971079192809520695991458871019922934084027587969077446679382473221310345077787367230937688095683720032830727166366215968161219937723263616087661447902733749478834847510125483805610135520355048780810102197753464209685308747343054188951908068717309330639708742262081950114263622691930607893344760221181753916172141836080367649471458413963378651883295686235750759374102784710902593216023634928926436215533955604200061695170805170530355350375849499805735516700866160032950821866821539095107335143469346000884856270621070630240629011279838709481302084508681731575262302410102921064021381559455092717215694921526902537326939224528185495529003503769870221022520811517729603551949422958910353490194327735815776629033590665440376676127721665641548354972999878925700986668389262159686818387047943426988358729493534705751395744890198492400121662414916458166915366421329374137814934983872812798976050432020928205741367711048483519931277656225827351935977695735824520011759603418561397753264174151103498735193522604186789598231567704431614557905046428288688132442300870141766481197351333078512513149099828548812042383476789573958117695792297805631759463699141237508492535285925067602036376079383898447515426088349182985121501767077873010002714314998163647003524551565674079414078495910524697879213566360800678493399782685221681652563189162276275616608394405682470935852499122350859385782944882131493014119237803408832568505361083645482078006306084235786544488718781823834433489748566715663425376809678648302028512558941569683544045560149678952585419821965529565307362578952463209647497246170556092993645515507139943751272588212762330807335067533765977306980775825730250537541623450380689198089914990296318220979415052556909300666508534135050847827379825384703089320842130152245084891376302458727698468146502431079083840515790115408109864321632704411950262610031737017455852167044352561828165286255286594297941496019885563707947890818585687921717714717965731412294604885888865663974792654850184935030180730650369498477321969451853572120263659938849906959899824859853696957766322171101535200428931924586093383242898028209109433560169559234383936829530552655519160976012929851232894793196423520445343535736225660217872454457244143382120719743963815605629451340094700577265507743563712474175385876879355541625270910598037507451008884095341318902423237119033330208264908918699740779378015166423731171969071014905067674813320283796779244490058651530212905197825814803747312833247341673144280852969608552753293102863297429910057620836297116400213092656241867375058120411271995852586137597332757436914479966913248033530614411806465080560366670161329278067425380170806252101751639672185292572282770015981951162702552234673857202485379165610499495187343096086710087701869650395804652745150369494239153079005974872166120276209863149520513892213238346657600268146745816198345685630234643051296366178933891898110937047744072095931207190254432294393091162068725911680093784101236390162054947195486282930065277752001582743388033772812134000620088584465132889478880869707720975810602051231685647668886355408873774494487061027145729914792015513072292907676095695851792389129344097225590833140905601450252678701685702552976992227417624496869852043207803878753011718244043745003761324703249189346401757619043877082041423689334716119739751068789355839390060343438177736128690743491299150066281116823999859346021222247582318993294522618989184350277163245702028588542400369092668522930188358930351666987410237743900791771253786938898041380263387228058032758405289908916005546973304496508127474671496979304724471915362544228942691611002229041510166655819982928521527515026008349127614771904829063487076218060981436956353404384507884372479426279291672202039153853143140044872381451529738011061081621125096505557645787284053325150906467189224034139212718768824062119300298681572150615603342826357545446569264063846726311396908447207642108109913276547851402729590549749380838983455754656409974845266661553485720195082657704702718285380152917111451658495315928699732299834360574032868522435154445826976150445962828887621598311056197650158996541172288618836254411982248460115884644006986470344802478890025041398112638228253575949889327043567128106662207462136225519464045667155815435181553613452121104920306472707357113048841181717650614258530485586292787715544823223948049167335153590725099284298532596993854432016308909488718475539613618976991821907230044131685920258744851418626266044156969150726181654581150263876083234159763581171937722133358080687570781974743388269205643521328762334370349421626184659904949196020292878165543328898757524314100995001786064945542614595464053913274807428037671694350633767362631729976286155087031153179545236542777550471691984002430318582462242239787225304269858823409219665617521892950440007616152526004408691750318592109764870121025039602065006824792863341099935326889211595952139913641357868270921086005492426531429540301142477046256459935406506110245142142474619216688622049388993527362405147198458386398110642287871139698648540033093095219728396252403982305400368835072268731522052222177984221376003813127782847698511768151989234161861101138207112825357784612523503028524712597543387949907457343882469275138821585512774419244836934507007955891494990332856762701212279802469116375130684033760140779247045730866968174283413952918955598020659986819461329910332425400927288002432431237925831781089700023029049404227883981410367252113705812201247599057696417779796310556448482773558610327280962312156050874803149276283444568847375906522323382005562077703035193365117012119263734745139699820051699620924089758122942547064844679106833231415898704885327561089445005266482307879253292391403473435914835299815867187177365591244438696766275676254583858494343292977509444381245080576199086710107496346999381727900164847727023982548212242528073640867571883028114154210075991905699542598382067575710270126670960829850105865958684657041776606532178976234823328130123494503980544173014290543551717614367224244221411031796545826526076934074638645216475675778291543812496897174048415492313892385330716219511243956913373913788356269011751386739018368059669314285539982544146042197966501041008497688319870039604657621380538490017780215272063507328593842539051969136201480369410823678353559489511022959847332356458781129745701355513588421612686174409042278070258917782339462148249218504846914327138134349274062895578647582085274099811405706633603872448617732673919705386374943341829315827446116154003682201860750768742370974973927961304843687423938647218972210965003081014024862473806359448041023065217803269655513279960158017276443507399703265765836617973829180775481422097542574483956344859675653246605166613032812286768632711552373340051288848510573308844361160768946735087942566350710976412424647562635714361229539001466904011877032943409062092331118791637594984506598890098838436795143999410389051488278248339022963606083720833636464744092975177467137538071562071527960453813355870579922757741503955415473725495646382948063582686414025913176185923224010430259877248118420209185624484663577470330503791416682461682761877268762401014249039030408965997518504863325976084294671112241489426839800514206739337584751267506105491980696716700893014178102000837052392490033468938071979543221422630217961627996907354160664002368358109918055891399880323251502816123023122772633637755318789629147973601422214814634108247913976782502481807942473786321509905791424268894176773988921138361233730298521906602496346890636947830821515746064228454794796728566140898305666810522350854542648497910944346392470453091199472850229155243349538185156495573066868388797921160523342307318164386824382400240025910173287031174992286234247028243946612905757969301885881418096950693453929394224512533675171698355371954698091151029908539766297540845795161471111612156653025306647896708643709313382838121090842944610181467267506414777630390694323239401510408045336953154900029535172111053272459288695470490674293825441359746677219594150593725544271998635781615522989022563818256903322359930570319583427653494176679234174772175457345706323197628257129030035178202275828110889419367647641042205174971910793732649484115540925333151659251246490612212234511456488354243088588517990031332209664852519789366483292129010380837509017193968665463448843544490804225548586850718878782223325818394796594343187077464418223195265709549382694682592835166271995227547822138545361163939830237354422949858675253899574900697520255706495343990658788816696870623268971079960976068076740723065893189919053178119732684754566361803977114123840015725534904961813120878139565550100409907343964767894570170657827621969256878378557229042383560055397740728591321481427411964200983392689063384582971652754601513161235530943508406603889297400469209139861044079402785988401299154671947991358312449622274444112518912304132791480976435745530742394588935181021851185400476276104339006248866813759133340693081329204321173685556795918703585685594074799360505848855701958210877342243687703143773917460088336894843186948211539395254766426605442439222556842090225097863942762766831341550882311473453314713422227271327800974600817337679409570104281435894809205571486296361413426056790480640895880144255030365717467878716707781998991811157349658676446297077180521800063461116474380930542484537172974728288614944623615516264990806423868713798041319565230446704247507024948690880261090928014650617295615205242327482236077017352219993186825757712084397101776437132398167058551889380972332904713781550630308904118329983740987857459884656873927103118127917604738560885466618212589101017882133263076592542941205497296680514867579908143621960114062887809554392807590450605431427856458375039145078867847447451311184264003448301689049118988916444412398313219653079047795943581593877803939055163758226202530454787602308606738247921223911122009955557863646109556118721229270205798968709609537178331795158886151575213005250631907113294148942546981677002649163630802320274597639371652774152605063528047547469463536531710226962716695713163439982091867816620259820172119246878018284177801810199253035062790744941204841887003611457407724527817839317538961486261598352894555464732781564460098913381125120380667693131827435937768961299029779829071521923340882185768878767907422742989966098259639398854611090788559229081030480926782789482733537052052681902687779670928885378522506726340751666966241757624754306517580157389125598113027566010139847868484303518832771060639518312695880298356671355100769586055683440098569669041703403733510709137525268108959890562422146001174613628782447257349594523027481606477681434140965130951011765799650382654531776058591190356223748662866808494561227124466090285668860099959956955276019862166553054776101480218569765065689206951746511193831715609167456185906448790169434821830196395293139026618543964527925035045560550730024540692448891041414308501239450155563437658758168930538064981901990555524420888129421075114900386944332293935953446284379561685181452583551111808154183986684541957256783903457437816522952849266376395869036859483879331793307715265564839186041441454421711857294840306541569427958904943073859088294457969526220457104679036092999835955647060306483158476288644126983952353027884143740367702727997466924313769940433753654066476249970841610174535694131565121574944149354269397481576150409947455875467847946002757536656650026372531119187456075320564719397543805915370954951810018956372805476961722066077189463640477591019675092469611212253640396708133011529968898895231527643712624733189577382523246577163175311270256458940949196808652165247809093003645635199732264084991294376885729054021860786999524415083112378134064159031143415469615170168506601202478876750592459380276509321287771346889316833092295120540611952856778715233784628503701395893078112377607251529347384826402375582402182870171190652092521255582338081901787164230085444663066264198172342864697206561290966010567209969118997809882511154425393964009876569826505372390574828026178665294651205516815635867499328589128061553187113289609386307811718369532108242220254766356040684658681740476177300895297479708099135644183558269255229658776078296277963276048212199325595911577716779872404652435415767120836382188515978798868005799322228556719340029021599734568127326138876225663243479691205908070012421031277650886702125538338203631303255964820807181214703568648965936536592098623992765284855678623501392216090028585644648352031990281799107576500998504520787577712360245033499970894776125851356036194781100214151009767614238897988576301185135100963608919523755347051422498636795503023905486145130287334481740717066281457444678556220046221464037681087253823423236961241825607664730672972668895756467259567389332650883794948521921921944561204235015475439185168613726460411363538424125687082847393598297188381443354487513439328698115900948782544105271193383096146872872291623517756174844848658262834886212420333987856360223065667560408105223941973710067414277520545490349553090402657810765566327641629174225678842186888632041809815450012840047427697372962109943807452761975070844271350109444354498629510541009301384354209507310289504012399915709865742622775283658923991751093802252899426753649190169425762138976864683633249066775138781934582155009672856808110861341657869678427034550454019406081624570318681188528855247475950847737180982631483375626463732535428702495781062546713470937280968763249642982812503201726849284676920785342225050292014882591302913138404344810873791898587227455305127832230649485141138556051346442796241372823095384427251009597394658368661982154937207748180404741751420072807365159798135038977099636136345781941527259803764176186251311597371542018765626885424843295383240867034279094003035574242068678041481690052803524812183330492872107653649067606915347039790223836873259189375563909757938942444417781216294844023424486748981532167958571740318718719951947057754608786009392765778666837351221444869733066991804194000884133614557702770511746228278429925027332412479875961122258770460335056133479597594508410033498178747154774929351328657736078481951846513572388627596974204127497452988512417961884108529397561330413736665817703788094421948721553551443064695859363200847043100808849659495434624972338897825806857551951878513938251501201561310115413661949506560388250777286735855376787984533575250311418376122841532334533108005385219597229814919865558972861537098195400280658585017130801358364873574508881138382528332508177226071591654385358013713187390061429243033585671066146411839680129589730373086611547921081035727665241362384233548253462307097788988982093024967614826754781191693801493548801061029763726885846503413478840288298062202862059373525858074448789747883929966665898058972400640748095196964258181934516437931637663806560107907656821508536762072363847063653316221066234447605870985857169920780055187951574479034739798717647440187128760857064423336938866679059150325655426862174543279081966023227616034862800156079042238787484146650745624975134084574311831315095156953372096414535420350679123718289793358199468816769273020128713343562268024052063659691186157129688036429919311939886744502844959190297398174177812424303577914243933445889232541030671987179676702181562818112355767884084362464516804373424906862257404171959746841289204835941036294574925762819966057077022166156736870372360208504339872257127466484286575533082224447981611974631196172125389662429356924887033558546189094114523181490729014191492515842997607663323018032122961888005740610693491203998714102415129337087612246619195231379110887009672310524815519951193066424169722720745193182613655686681416224286873406273427134490337226593450516723293213187529029727030202342327627742503742112787881188644376450233893111424527136059867770511114046057258394405560558389411628098837288601928924056624189490249884029070728574911580638543607159426390123674046747336863547260624429733621069944701361913611872266618147530977528426943344552829858748650819610307495255757816039178912836951136799505597981691888719924019121396966672236979334946433227709894588942287387358311960578916626686358688249105963509908086264933756528388423116977695572545995455490096811017413282247656006256522479509476857201587042974347454988837023954686241386384439097078285225317218603886537201730083727847493468898436157934877269305737217415851041810096342853924631700265138297140259666213997969330684963554171226631512806768207166509802058237989420040130019050428467054723356340502048474048513510815569457718949300013490771884949465686531252477741394977272269938217033031861623745403738916757185600620337834199602104933186263310876974899603819997745310615182257832849020902161829149758285941581310045820169162951283969178367828781533145136625384179402195363186555857114506277527294689170375115980323779853235549190094636970268067641068074377138477546639633920409470236900325567014760467866851303130025351723344261228724048608720403726655924861707969996213264380560073047654036083529369991777571679660850534382920951954700749059885524343133962565148113500316313269874085660521612048743934229325246937544512599477080320337811622472835316513491349651073564012778769486787782165384524644434665286865055048515911537686322940844439213493454575682069467586092605303014515820190733022572617117802148277777261757023858213976122695433440251319363234281448679148469174401106794652466352827642218782429613736967107311845044585587410982588019730941175135628070240728561059262736121551998703081386039243953138562831985639825544470448662118526749073181105599752210306621878811912535765504925939132897035966717481080723932739045174816175627066538557086357016062647948125711554736298658236873614423173338022609124657654832709066666670378024509682042199988810748723198782940731628878966814509525626701908922406555427286235623410465481049849549400997591648448078931780483242282036177299158781622017389646268356862844645996226517392563511477445655331586629573509350989619253481065337888447175875710649054628022687753716953406579008100675539349435224375522796524843385910703177977112058885334902150597442164049721103068939926042674671407723068718181891930194079414346780234152056983141073466771904309735014635150543817878289100426147603035170731351480553487589924682954602958000645177766652200165673818595638319744930495968271146280733436189364823378244194057302017103698880816848395356572705587983860851543895499522252296632140976516525759768335074548526229752976944510077290309552943430357561823392119022128318723025124018500528597271677635979387182754835713840678018048866785451930714154061681794102929315983960482878596083902004722090601542061327910892111222117778106465176187622000769793313417275212061798273701266198127816001093263273337773118628522762127975294267768821848695738212374786695900598430455324186425824673845112554910728049510172406006630577166112653205373886315808601588700772501569355778014866854336096176491720043524924617358544509117863194768514909193612656998545296230187331602217266958249629967238388372684558730036547073367175172756106174018187467302610080495545129570599994287776953643882878721471202722827993566396508080577747279545001301876033633502852328744803915298577344637378985677467479169766198781391141736861198665714869449533000512718600706475726708418225025362579447172720401933026153977212567937356641984563732555465639229038222293439337098727014234408468017491218010497591194088387259044480219439113882857690566503595476188170135999865113531401676728950700162862410458690765998569185304918184133978903042978558577264063016503390905612661559063815730701086249490907658679915058986879903682955450189415504300520594950465503929339306615154650892565660520252558292739564717258357755774772726570965941254431952829925527656815989312050437212965254013441051066038228388323293319813574025702504590453515087856912987331362182762045986579124954331961472724695949297261269094562902808798476768327794753368814755903019102941853624742836228501764512222039736510410716096170996285633347197328171287387003455840994096764895525190499736074141847452793054010565644691796715403561438331305898016544607781879603384214911518473428904790191256086644934986636493452168623019876390257050642319116807799081301003272289161377924119259027265610261227262386347269400016496121201743789237255057788491835239757890698208690571131834772120790157419268302307468228222422116414598937542893710505361580539828386256010062956843940601849057948393622938589027002245639399094703621003475863033433600043916379243860241571054968897095052058905170490069756021414027673064201980965105628100434296853088336342390516054923857982603737314337373103764249456219645374563183703098321705906379851411059153950742492316124337760426417656746092638718581852518321175368109335620369775616228144452865171348314845457234780519776350011627941027592388178292666979870019605413653734880848523698233813933402439034516533657364457388153606632248981148056539040890305530386949609389217430061087991351393042002613921221204979254508589708097210965891542686343968969531107300666327588192920386427373172501437648858991740477905537884850678055134037776649634258062457854782196708663062415174969241008841999443184438437474751227236597728415185559283866703149072432403194485399496962016623329070116800599474449051080367631889380254300297238603194556934312980721172154478251066681703767341396504711553103965782255156137638695004311007943034901356194365255077750065946100608748630778023581205358319647248447937089574907155956182071623773976432182624796362786247430327953405960535480298006965247057447697395880681661467171569972378768875083447794032464853737037749378106400335983369657112079293115389394697389203413278406949764690488744194400583444255294313725743494659781113117604043264084936726266002976780484683789243078703453576121553025468066806012657322887637294639553590982446735267172756309341377656937295424560442721096443658328111052227386936977001510870992677088180952830250894349688024474481820128296290631588605529591702919878892270256738494410418908576363681410793732686116620117827666812906820574219703934803729418827107146562128566351109314661928690676845008601985724850265326907000493408483918775449011670426686324605750683765469844409623698995051412333052455195468277973560469675892409201790045519934948578822806621470632279912162304628511557932487073080653581954801083900073672073942449928442886176091222837699841216595658092274450053358513794462937111694193403176739414384601646316916736119770955178869191489800673676997532021478431225139551502358512869028062546502584640830034607922456963501148273505685860985856773465134998670086494775777623193622969067302976476659640351472599615000753033455493280762020470598024249262168558750186395015058330596483250141390149209593871362089681170329708011406213604599949619949639700947661629196230426140858486384369752158819749746704958234090730404657958744502282886872202801136316212431576049401756442086278124168449240748642323161426491768805515001877533667488872687122211382598174549421922699869241838378195131644268737340026717378268643774565794795732824958995964142244699828300190395122367439779689115486192449970653479094958281843356666990143795116174757418525832350656122512609573536058843586080352068627977559206604045760889539588948664013012059928422983694004431563202403928336912268001280288947620232240766124449807954282917897144999717398055774481204377671824942503805295565789260862833649520692279600348731596679844332955789970987056654835361189456936236790932524666807055456567644252448433953572057181892242754747234018312802805381474782270125613109796808433066019250787012213484013941531372733898265922150285974862493852905417643247372052911492787086104272124082224948971182211909530249476356474921374914891725884610833969306593857084806215996591489627639127032026800798320252781951819247476513386942398696532038678991208013324023878927976135388766208473361780898509462036147732986740910408166593608054005063989300510921744126623354452123599109838519266367738867337657987686061359795111657303246093867917314857894466775739998391142080210451504135177176043935562998596079476738506616732070463015925226440807160028583602535107813277286124523127183508646827218022589329977242954405631124397270836172955093346738154202798785806345117385290166271244938648764054064326015388710591399035687521388860030602975165033603077549394310411868244399932080205764683224598871641440701694699773593680704983074772388182355976352839852937047025691290577880302013482728369334471957435811876528853602536181775112580936145964783307241189833051734049488757940499613345939293349395995154779455861212565430224714515374012142843065204021387452666635865511618964108866686627287823520633748677094038004565486036532404818571410241240421249697830969082603710915892340166181809156352481759147571837411447800769973153219127982527431014547378216794223171133541308317248236044383073512681026563312840946581552733512336625458760099744830238200000735172347822951306388424004038557876220024665417228657640731158712908386101225929632568269454154358150857415338409484842827374831504522535652294034475723162783848202433744492544717216996964290309906527496257202070157236236249839920069679868023104122512553272465606145655268903178600582672911133379888762334261363206753615483451364096245752638619637144550659285042180813674702900098007690246006787228605587408688989769582930200018504929030694783901625607685413960697326826236392302771949099755429038483271850433133619828623435742057706334976708087581407712455474380609602250452799637750512566387313297294775137198551437928151556452099858053212978382458426527843105069252379118482289680290141517303678605639040983506669970741024981684931964331265651120351792117652052227752651752070636914942011569357260189142768227986998462078061525707417593189868316166805788127397573808811226673736060730229662470589322616316198943675296804763099165710131961061280700613974175826240541411305414437560598320770153101705341770150536307375071664954562687017096571133229977090716246708361796259227901793530965761909912112219254701000974515933002000838180071380148326950705075149862609143532705093360656128145974080131904132679367788136685766438507773760959789214021484479902891194341615532211598763972987244232896122809777775911711567959988762725440046162566999494298934790545440348170465811175876568720807557051378573000825501146526030604921928781416110747003121199054906496805452552924424411895758378765735384783838253661962591046030721701258600096134819597746735800817426431741947380590068832051144982412679572295563569036814242287495446696531680743379990383465198046794193941657951628280733638839051281303029458764105169473167303035916486105522622553812292287240042277422345916468124745861904973630609052656440490985363264957895455080166168148469759307695943413529021243594522761591814498407306946073983735018451407617555305487293833079951334276647341822566482845463368597334834603768806290305761376582878475232198976697625307496700177690922152856861228426475507864684827966127927221999360240794161449154536939199995711453910349688930417090468034076574361771648410914956187210783750331047557316111763044304373978948623942855161086417761057770666674739204763638541621920405950307137126097483470255302256743584605272313476554956776900595492195739658780499302902926194914352430643660403299290141614589762580388491864008424118364202282836117029744503992816553913640640400593345789510957276101245741727028283345925379014605132645346743545605272575739445346799220672614645268355115474305442063756159286379524180704732743664750551027967252446725897788776375955331937292950530123684482309684554057221145754707290449579017029444478604924744545484238763588864604705686228470730532048123917150409349500239026456300524151924077628263493156230025762382109900280047663307910791980858076236108544382380386319934975492161868078480087563484978370955142868528705135605869117447871097028164086835430825669419893258579017597536910978067048130078770275950329714321344110119935526519154135756092840017204730965202569234197713840969979599135374086850573058881620623139303962216487375181948016935423959042636764933290475427077053015325081953322912056688044531240393282923026393832148010393026807441336991462056423367342841975659054462911477675279202314376249075597702716498538584066313270160562225800895635879947037641788191912959170898770097081736540822267276193122418574502584140606181424036134311219995389484523167486327708792541643175748812301864298157185768601126399534077848961949269185264052749274229093263140939970811216996726065770448950401537343583907907301392083158764968768145971971420796554291314605380819395895054468131814479152438321099261887518382884276981321531007514272683771334340567594801179407677659954735165154954992556357887445325435530642181636106284484517080181880029956889857820704700665384886809278662219069867068019642436445854496568057816485471808730239735579170004900641490023068780476716239409881227970811800590019982456743290343997007533061876685686800287712095947147566201413565284000211534534439106981651411536122686136650465119036185930409681905256590493304574487478473510329280080871072421572313791668191020956749252983865176278467459373416234331728586319530328412175652743593233685625191144882233612602000531247605920435659339978392682742077793105235685975358223914995917362618236478322874775582969093138056386872894970756550646434682109029162438735817584546260305284130287212187990130927496215794645484005763962301414554822103527491101255271511059504013207030413333560993065824766443141975421793711246885059528625664264969397101977847094865178813035706092906678114252050060560068532599499132250257657554340094429184215482480336865856714070726399758468615557788639965701669736142348644062530372510272112128483991599506421174986015414827292475565035445748795382080867979622440373993889219900970163302318227986299925136166001538041191917294843161320150874022092745622439232817601485550939482730715709163668690087637265989211902249700380788395425881931881179886003071019462252499675797528240883909721756669363308025996133878719345377327704921583669896500337058386822416514521767595071012144918703624702465635699818212898755630729029729204717770129393502985321919882125916131662426055668891471874959461817813769614326504706149372657722829879889643474022211066376820396384128548948433797192634074814640523357736980293175620431012189207923412220351373715453486124720409621154727360137707491155046377463763871755652056266892786669256385548553688549052386003456401966977490031307524670686010696775557957008731008321133692848085197546277614496399393093492500567586350872766352167068981786180736393418506812888244382381928457550972877054134995432959366316379016556964725866046806329094187127278786106857121600376321614405440793193541748908746160798468597128913146580218051558144078036290300270106327891822600931265116665365348458187800956793906232716877631831953603963162232800319028959828288087217390228598434775548421979951740666833362307149373029111160055731670400471042955995203156851334886268519364361213293279072178091903998838428205471687948654424926956575913187964053951208885289180372070410888051128275485192451065528743863512869100363209890984512617747432376070592730424202146323852452014815274329702436282140400851449717188074303786677611482890475994231325371943296113310538867493542914628109657882003657433185946300702351992306706701841415330150754011609033186604780224961165482443604642715899391296334809400295411945829293388355746008244657150321275660585994748619847734145287386304013442679413435366205573257955419764495350448547877215204229779245930604421445994707378552204166988000480622981841840282450129819433614198700608130885599852412986746889573771755681954752398849428635868684674409434796569884783441382938502623699466851868296349525540564886256345056280099427740032296586190137682544338720598117995766253827305172295318949160056501162736390992132895716164020738385466595720074669243599709711583640227514438379110980356172245062619868112450973420322627098782297432043004167107317093307316951413721675573677507074816928054811835671462450262164905693409815538410887051816279265880750947169073904290378929808571854149124369436658134414551734936307001092118792116871078049877202338950044118468365579425345922559712524250425018169940458705825799240905165768065370409604903970383301222442816560382869722725009244388852821058248454581004919726934592931014912446595700216988216610511356675118193978076132635304645741104911479119668704851231079101662527340679812102705690304295552028824810428450631954100233222330977408865488505921996940583902396181883914361546118253550908880858664346257434348709131451388360837343249392284988311610849347375299872987686516544662647955718312673367928650783220267741361325657451164903324467365560804514264318127231598953285071930304192515243018000444003705410178729574922830978613951053741859454253157622577343140423716549241807866383172574720059059287211834058338477911642666164079786651866519457593280580082547495706972477749098350784780628207116694185696949079122497916787724100588469226784715317400436298213360880610501709499016092182677067330806576435586228215697876111846040675256950426733185613614685996393679555067469848641226621355201699657883505665500963263677133876343276187086314231052573900090079353529920752981871998971284691069837604625601623619376224773755247369872208401430894105897681903775677534414390685631198275264663741708337041548030734547170754066075489796796029932769444590585034524113424125543103331133656789340235971332337975029425371692903206253170104712480804552574000736304499977513361390391053996266512304736979353283282600458423225694809957904606452251002591777681360655387238415267269388040110245366462984896604561178372262477978227475699826692476999918201703118865556650025662305753812172296694613941776597728367153039170666591897028199671437179433721342829777208705329174510219314136819191330228403853314355868510164510064708835339677533873469942229194974391339318809336889106272042605304403712639942271320752225785178586924285093095748787035834496029777906627589044018469831843007049392933411385349981261912283609369993552387657360840439328369725689337182573158475237635958734163283181077660555363397022161689963954826681644502714288098192371886778989824006778387696217819359271435211225028742015450819829878782778499862518643312034449677244455371702569848832048233385099043881751866204683047009715480511610849829275561635813226353503984632172839919440641117357559384144037825297229779296892155617471116495594681662706923816146536734236633194017032150781353029865920773837869369836491898511484160253825263368167126115035032272367558720331219369913161995671544151331045880875682315982390918915034989337352178326687477103078466346453147576395722740888452314961449576619511446880437322206647102586994951477863870931812493176658147620490342544916165642782288238870802950344034150746958400896917681086372661964807272430255915091788493099390113305562621429636209736651115978328652100959213845079560451218608317779387751223290314748726004695618469936270482804817920540514732262254620087534980008918590895983818768929521754868173479686338123179245329407984593898679760095939526959862825728859020622935019387315992488091799350024316284906526116263558160943621552255153143088629942637854791211916149925351199515464914594743282440051701166029605422526983410921813369493228251589926378560766533335214289242159561265716159503864558095471546108625266739258711934706090343789061715534364343794804498670288082190763114168433340795847814081262717620228901118629182570774931150818980616782088395774925777916626053405533100960243118866615851413826171146389470845505737536807039715367667864596654409694954638347744578207050041591301794222040820912814566527287253783073778158622931634622913680076835040223916486967736062241270061819547247687209841502237396458066417168963679631217181111361446666807346564833573723193559622912897308911605300389834789411787508009110497388195108906891645631094767645653257178636051153693980384156936648812736702268720824484402338020813016055352440394668794905769942456855021419506625989398209911506325966539251289816756821940437999601045234908579762300367212828420730366242038968203226464738948481292807503308940032739398125650463269083155654206864684189770383472494413794564264410987537565440031210727974821785377024495636778208380791146514653762966915480863431902802587738415424711513077565314107824182089542755263234621776340465283445785494580259200336799830850768776002698789005682913628006304649473297793382044845005354229710525981276481666116472543623024963220162465099562331438045290150391812311608009027407926616273793284389325439294310707997605669981789166128911098947120342251395447035970618442005900867794457331715835561678820925385381995032047678218475013369643445949935247144001056415634932976084409517693149910606153371318635988715024220029011068865200975910102931328459878139531147653520279296752973007859398458686923529151581050346579811769610498958696195721101849078205973001989468061440258755963744151598774642184239048315475092226605966688431408440456179375429059925330327394598893724954834686477314990937114891058809240752213330391118315128567245871909024550127797765176665359327884532496861380639939579980971946955138041728581490589867436853853951247111237410813725905079878835483444493980859292367904332354565431284937652644390814319837961241205666751892774267445284122179737468395814252565957388263192526070027490518531806726824951204576206343562529509756262163871259202229119819042450150401253503567473192576308743130955281166744348995317442118867912906823689752750399936307992239049917530175245898295761960922199184320586167331295575778516760568172902890944905403361991528041218373855643939166410761543521246582371391480435555391033028888534782633912312621756482531310846985381390962160468085884167843135828989166592827547898671696250190890491952787924015772606781872182810434055529201378346193923086209735919596873003883704112800045700570509304275547762526563337006579720179123063949073213747285894864517129131149030893589784794594017583479590900460386336953309393185102312880622695755346489559336157786628987737807778126419954056146390920416768691283422938101749428625598229227296133340417579406259938550411763457951127683059252708965201450994779710895596233901148078767512823547317450667295243046388506274834966052854851996909673752795137517843493206330502008558595809503484814300973275495049788286024990033119977243930407356158373804945811375664611481817547096578072333012990964645998410247247755196701609249016532362279856864655419057170580306393642959871426365008178726844694048341835492428083639995415941527907968010985868536835930219733654349281195664523969032384053176710282943822419323589838814720667797875941710798163339390805497547895763869135750136596829199074251765948307483185302387506716074858698247397593720835062302745385296007643013876788168210779351573747539404428307797988450157803409181153186271423408323388219575307676862700070999132425524770654202635331135950435367004102913569249565517016632424762291227509985962546837633446451761298541373793934553312365219420628882418955606003871978619888459645935798035765889867175342095331832844130341967610032285668377248628254551928580917227107723110198230972996744858870366228227640471977414081622601722804754601113688785407673756247210362351949938868991899167989867106896933985416084301931819114720269328631216714373068754679574548722625672282771734695502174994899868361870364962915469687103692763781783924148125321356133088483868967339686143621344839353575602466111476042438543664344050158223729426668486239898396458397789295102318176126646195197000856019199122081612696576610702148182488886156905937147940498391880335553871438289586581485953611983589383390264918029885717303414182306193159608765735939496610692724571889452649921268270493583647169531914333184275173608744722369443016116890880976533649911231438357025673673344843775163576729556341242100782736609010052368987458947793069604259067060089127485273189509898294465532665268325062646892330806951244825767213480187013065684259468332501871660730911983390312029673189003780642528668261358598540710761203103361407955331587772633389491736376924143724817845714921642025874428603314933885253323325533561803555845946765528808124413818462196163128939800280075573197522394944948042342745372620734487691628130808842532556468370375518444342128333770752216105696219049113534116521769720763741361087650454651330301224753342689137257293191537340216405131397650597116745087441988216789894955748554285369903472787311964598269813675664046983077834561331821166143495842476149043349785787489087606029554564331100860045074464872019931964794438598873633718546210508306394425747124106063719539672355527414766260619759962071395139249418284085555968477414681010175401896971985046507130050624643017582995025149513396162823266006847983805765489327203531998890776461844574492920397297772827285240237417699034159686956966482473824210181337045893123380388928685386802294934477953882149423316163341732024531208741832158348515507156508059048646567082797223301083432353820463962608176991401981340656086939438084976907144738381693724167448995383172600337709503487373747547593976656646589386925205202362442426955777567422588661806160711598506487053637748251366777722728722961971476751041195401750220637151511020631143607503721014114717342310460031928722538099385262246519124475632253423695991584881784655204684743817598492809038582442936525158054601570482639480903155582449208761902781475382910231038080161012355480039998067570666502403315064986495837623126447485638904714678838682149511209164462117206199332351116089790797157818682836225740047785930455674144534490905554009664333970591227902457500203917084193092259495191667195708548776903009342542270073371786665017431914912193048574958299116054549039797470842664185006419466226320572828848782089001070304568076024657573224884881684211242745054402518601326920517474952289415312213591539441207687447653507734675509966301996192829771846809545287569957180713024862614702204994953075358391825023071668090665814604145002947968615067931319530746633797173696703357789390477160458584234319973860527940846544631990499302082854726440181379751122209409503654578233889417722318262997585043119962613962739477172505126683846965216328527476017078046164408733492241045419046873785983976738167857131183533044295527646501068786006363616454216561195164077419707316252121036569032790954628419913222403613891591221670998947847540887661043682041674614652092008054879167175566763632448521640926652315614636550156710628470722991040811088841730390517702554697166122144627060948174904777024740448612712567819465503361995293925151013042654756717218840742433692555023521060782555042341898651652534367503677141405614528377108320253988565953045582897344799479030598373043334330666576086390203938855090988699779543622691023597316002603003381325163978825925950346892184655402836044921377170081726947113083151013120892230915974814183605614909068581940185209103353969958359168703222545846482312802626554855743179614654880893496346721049006505361464867891424976787446412217607074981834288065944075279558336294566541234361701171838912621041923401325527792244182014207660299177975343621766168657750276937167424456581564198540151317994517357580382011509653124890175156072169042424630882659798434361812781391186930903039514820307908102375400053747548495963353724366822735007207989240001110780983119716838073930408583054066012415127354223341904092169153244084056276970675203255735414638184184739355863328122521570017995470124099071371455430679849319377948614588732421063701674102113213107267890124955888514314052106005517991490305033874101868940137522232730111989644427002374071909099225098011664107997819439368791729484378775927436933762095790180869328305124192788534777656977257155597763454404736320718654845110340440449764902629586802652877273191278345644323846611888977043893993777442326836201630875452472081451042748825559716280691733628836514312309204353666783759693266805353908999486909367676513075038242710701032695935448413071375761772450475651756622189772213403721163842555031662213434583048631188201300868934644876108787631450374146318539183733689653080526502677062195609235739037110297730814407686463801036562728134111421809314417421739129527598885206103163586617104367433437610775746659803969050725015856746558287611414646996335073393471892654873104506293887133029722708297523987890767508505607659199563730968177763375039499314868699674705342372177730778833360697905458451398871145049350649275944712196595571021681614844824394066477057453102960370401309484998084138656924549904845903751629700941865348625940855541927823689525431261309050233419416458806962611190015243139712154544186398755078111055468525465395569757210956919545639009030264498940647360060002733868696175746557205811900097510116193585296753572240518978611542857561092086571933626486931399077898154322013618936250891386297885191517456956524185785761102880904458332980395270861584962816368500820288456805254027388904347056250432710010619658638299388207398967240222082812360471241396057959566591204036649246815459813042252068097936516701453103827336829404387733805332616829899317961776813126579321999245209204569278743013312221462523832271611091383567888395280362758874626076624615404302253687017034372238388759797183312475176775015387891838626539379671938575188022194034297652188549800578553246294211500335127899532266992151093465411924319936102306357546140733875242936057314594291917571334543759894467344495548295485237023057204296173369601425278243303714227871069709815752396013818979784942814943264836188693888253383304774388233664945258232598531185630979042878516148466391756714207109448682886046897326152834649398412282021746175424641768673240536413167797948776271589224305690123045259584800362963002323729790605880825926189763713639222265866341900217971151101133681728600085938806108548105202884669894578074022120186949508843902467504459094445680807515442810364569789616603447966637575750339431752748428067217309068829287871402700952994683075431042460993127455152913824208653905952416984897744070647413394614238898578001251066288478683793160717572851735887788512701626034206016236712461976208379137771870747983185715390510343308338082238020112760285756777900905857495277635520343941716447580493341012424334423530345946943424271616186607675802052633343531440712586622500505916267085342688251640580668765413485709996600885019113666581344054214217859145783106191593400253679032107932872269263201459541717934903161400092235517011353032020891526938033329587098571769506904020315737946901048351106893111413428722446591185675614049244637504127658778973075772584465827994282955244793323703765444107451994623410283877061069982368247372925829828364846557735472870701685053736623830540474257260478294684254261612915596328570538177829930432521272730763100292715130035517345416371415627853381325749134135233165935444933396453516867196890651214015399762300304464051158836978396100244930781047517626331835372849467533492384978984433231285285906084189789247739780422789493045950289036992530019605672598470864075127822359846637519447149296729810960743952405463958926494651514272395184779975062979157306138148167229634378844651104364336969644015974461284248263730511203191547509963647453228249494034612666441874576604006969381950885770174781925267049472931247236512515968305812126381516379040056294543636573599670724527198655129619008190073710795242254622830804128817109493054353049072561113762418509325741694941281956221954091596211696212572714492468124960992989676312528964414518318077267961482326181025532003257824333358962002112586292050088897251579599729008918163416341807423474991591752158828617128074166568394248331887305611290862157514735276411613642710794682629682333113920861877203095420850480358519784137332867990058212610501831163565240283708931340925450482442785496421210411919082758908412115705360137097893481494747266917038407235194401560683693723428425878430921710665278761427752330196807996274408555143248639466100745739953167082264181648132079126249751637549879178301286481863045232056423649257433810498572087531977653048114160226130747570788567845325859764133640138006791521277528376621906623365258022755572728809838880105142698625618511337420904821681371849230269469502806271413083446703843460332858343583151290050514198547317092877851238513419566795555479825865223038156663747008586941777601614213622076104143321697589839727465761396343270129672710915123096045895359991532153217484737557363399390506834901518586835721263442806895682375624962412505303412738295725586929089575873708117994734147947672415878398623546540543500102706353364056058571570743061711059772065560543575187755089073140304775210937484035620825352977203958548223039436738917207316698349832511152218215417022452316811118807580521177839867986298402465844369830934027606403145438030610814337051896465240989908134258186562375733493846402784737786567518779289397469674989110285168977139523652701684208980477443271999551800082157986320712910895267046946552017545625540227458300360826541125661101477601631743375226931979395412865990439919917954048603746444136077458985704741868930566893127730085821057288316577892683695865117932358685840475872624566474632704640165029948233591837316616586703329452981483542369970898751211562621251434626042258572347738609535038667658567947340373681800890717384735199929371928374422056556709964668357088008391405700778779202252784918659477565537105786832150292788927826807309066469466882186314472229760306486221890976485312717000125530324759357424571194978838517708430630903189544373082798812860132136628346825793120505078206609418452892417485447915681664879706009081451459877474598684959799023270984130814962436990167494052649566618122877973904293595597308855473883272339202394807562973476559427426517759095336062088266205482029761757761892686440371339026188931417450004999878218145198589415249251898341402942687172807867482451368521028493452275910692080227489299220668406678458778462752593898175022799112511758667069372575933405064917211375839741723228287938663961545658761219810227336014777574689776297662687198990796226089340357847913623250071606355275679730539848140719728190642777530340295735819979224135544583500246536587624870480784699177615814601522891736028252941564120074941142946153419032264741676567699878901461945623811809252297127572224688686182131450712588710321948826101059846335257460425368338450581260806631586344324513690393894673418217284236128190206851498339595524889561105202961726111530491211536213966294775591338668876835475017044817039871090408887543315455970068688827454472679664618317405210672158440954464865114906416543603726573875422667907201411779366014711854427320787766501513084874415199718087840714667820926553452127389529535559326902832279081817397280043468896100168506179739924763000086347284880163400423799301391854437410685217446549727056960832904875439798750947048175195128059801679105722838182186300298474886820239146764826818935925588706948252326290689730284703841278953504596976089093640914183146551913959946377449427479496367816208803127813857030109234914780295981319679161773880180140888683785434363075361087551974593399175941391400793188280999340971037245366737976378928640379508148147137398794357668214560675367513641520047998367613947988583589697461936457253113927267609705153957444392594170617821573134133498396177631842797796551989254313424214785758409815098771140535961450653743030155121908982396971917788682148752061300788848714863071583106913699557599304257064812125615339718599459951593754498476468271982206820857302927344065071702042201560818927224253473985481495514693299778487890963756759653195145589873080296904854242302490269318277006151082524605325424383363336086244302988743156875368640576973499347065053682392330145623485945315491857100111695006348733811111073126431456460721219906608973930891393493875408598798181770965737246086576013828787229449207437848236265551520556264716451257926415321479568158342224381099149334892690984746026908548576526066102228898176583177568012705741801091824040425852587717317641447301123044665911585989829843807200676314092371570534174859566082839270367591913244722238369959920571207287967365477602088617728840630797171653872877496068949014944084474312448351871610696223380701120948998046136558478324029314584132599870738185462847134262254642996648196807899803571952885151843535016057565878196623868017852527542577669695183311577742444646992440902571201959812948292230441783290988473378561368592384003943142679899664878047423915016397502823744342706128639797796062274513066955431874440461280999613900866804497443460336150505914660688062938600716721562606983493708417492356917250940066510283565223128644681112712331320611872174711572808798507206887241805427480661534473538072763818780128385208395162840613374771812041963690472593687328178679371652541035110651727729415615747608810508496728346274295936854616996151252996049511812961797826105883254970122705096263936372872015468209905567450230048230233136200639577896731376580567799974308663429636604678299815602052250171803326579016143790147876696233526134167632731849647763255660249628438710605759663173663424211256794210668728594321043436181839310425067644804817525751772992309481739367331332381635869467563802485427471133163347738641335729514657491156779025297348664073633722489844546975287315000942427474688543332959235325130990607138508798533156418632050151669556029520863236212755261244670613875341665893870273911749127481408897334212309332547694250988467133525621471881150557488856828175254678606111240651400417508420224961080799428578096019003370794141562496783198678016378966515957224536682211692687301451730921550393586878072835034763056615429072562446250769177549953182233793074086720901648374582882901733676997334936873939880069455715043207050330948875952751967447711683797688666618358760909605251005798420756250394502622308694074662323146773661712849221704545375752019510175379986278901794156922135316805966194252071043628265700168365879110113377520263876731596720686871693273289860710173337206676572015860914684573887597759856074258158451753959373431268643625679130742306611860807814896888319170032881889516036070380106488113421249018707502858788948144714589982657856306437305142627808266652528627723432689242236374751135755313322815276942690721144533015211534528788548425298763314293803967113706301583150051117857317115087159435366664769812713060304545266353930366336286862447628198237911588666005226980407019074254137282964196153009976387452053692455592300663854072396947983234345371441496319642689532500534169261280256390596397191804986858342294914281019634585308541348397591495532852922633863602562743216421216706331835281062763445331100296543843649387334547321664144739168924305079716423048208098933468767551055128516470075671481123646926705067776615254696787881790604247641291831835992728742148071047897312210586811617573218534162111814459251537819035313863254457651946767979261052390674344361917076355193688482707023346947702732808452961926479237482830988670967448560322380454684224963361940287919472212270507894724087915922694601628094512416719894889210128816991401228758698073969605560140586762364801492498438951671327156817113607839170493327017763233465541837479382341448121893658710029847264141325530719117173885158595930252791460521859753504962658274178348763485469249623089539150506917660373593126087690301849196296481638466153844177572736407649395609890104274725113161984154113041917363073327660578912268518201994301175719118772255674119731241094480932223910377167431784795946243030584321487541877201823931490520192522626868487870252008531577539147523871317073045559367545958702595785790471834716090987666949590862151492877033937205079937587977598450505880147889175922940054983626881407484679876595072732143676081570981068569303185096385427736516294792781582036308471114079401917968882015892865975740631999989272785223487047434023830783823317972101577964673425252572313046527675946589972946028010295777221771310928221336675943035845488414390728664143968993641813578341508641877778566483054504624150260393158203628387084346814240429476586350194226803902510635229764001169236845318456020210443798848516041420713236232009753678841376878387354704813017715626557753574518210637541512630307553423859413302220448301075975800778378155441557453331377992804363670181174223505024216481747134200350875354751079908724798249110466776466883911682026260544207950926375654654836609799999301174837019379920071621453801290756708202047416620123290402350742639433277093493974647429986494828792391596782687192227704305804547257060181918238853378413547908317000201394655693586790184076461987263457231174711788787787799729306343846521504934355988209499634577868353045861978801808168672442782965572155122757864162070997474025759341490411224370954794100373877039159785901831432720332518331588702060510482799805113095217911953477723745938646882819935911339221688740639532420795523722338230881478804227554918762041006205538887164104514728658532871421497870521000114035051504221829909632161077565214539891973381455384248351390745760424743923058694595343806615924550638001292855317470415668868744178196243174464728454191852969591141656219267223748005142447337241212085610791124101636972797237671367834267905881997070623056507708712239394835870097616947040176259708274527938796874296013889490607629001643786351035104281126298115355732755196539241256027367033891673441566766209356344986873738776969825208497767942225209279881306630649176249914363440091657500990953815872069926843623283341012250917804074599405508441447619468054864624988475955613923447054551962212743959270790844773372236088718679354429815734059990488083010711387835202621309294093833437310712313986025980542296641860236554475838349501295641680975654296601660392085040043531210794042208730400751173448009372240503932501410758194556887730867652452817474814914292989679066298490554654994425633972287116834134197887471916597011845699097983097264452873613135070763680671546874119973140102382757510924106470271077648925148333311736307147626396455130788792813105850203512594606696072349348373195307765199317214580175422597243369918107681929481329157993230186974823349411200178186718832621191023429339224348333566443877608001395611857481406362177897210701598307302952346418428145932373754394352983898644329686260751321069795748283838816091623325450822295547267798557565243989198661371506778115466607864220348205329949424620287953545384148255673532974895611494833569354548085960725956741649708077082416677938033737951947878667895029269870681757174627778712459175394031392702822187179764597947778675172650873772597231001324226819908109116488246938448632999114523349675947165993132577926093457272897500324185455214063701367952372469676021930102311572957166120459210353119584174154094504350383511850240827456408295693949457926883977364684076335634875707716558221326986862939193669058780068506580063087406021711798726018670632511088757726975735406614498736191817908616116580307176281599318187356114796711273421700994923106502147759054438831240348911060029877191868887284257593480984139767984878539547964573289067923619181438046758986502129675738228221612707689127967247161671596827810933401757055425842191112520246205042853000681733869424414044872964045885372538124217690803103312076257565629179729359030776133663587630682034746439625371988955870813828060832725438805883926627362148067579631794532411861717588811574389211179657525416211431025290076468709325344236263644233183009062834762570484851090696187392699741467440696533529316738796435152281245820053342556487533962536559248039718096043610862965415309203081516367971376095555849872865727652407497393075897854542488081520316500924406368026338875885290425227865017616947450737955786188939570698882748774601788649185420451373794849749832081498124196618061243466794274198930643911274060388377081286102431034557952039586979065574971361482359043246099149723757135182952198499604068874534909016368731292795654749911399762067189999146299761024715531605081726536760958004745749700444786382900661973300999872574219094725091362455994146174815316232697975407571873153724798337315645944960056228356633362332241360883843244724902555336229653928925618244410252880819462535944585993694272865782008126912571316534741249334478799650444873670313578968570179871184681864865525593868891796270783823690411621073222570737988884729959015802858379075012024597130385617834037570077145880771533206364810179442633468804769715143450799991493337503291371391585015080648871703398271688026116634906971610010012144977885037101876420986902620578513333000026783017912139268536072311487332136569515191017884694854682052337109652652289047250189852157506929292321885280613062228952630373603230954308979807622831264967248298996701969165438821024677126584390832282212900559175401600966472906284609820692167387770418951330609025227804062759145549725006845608969680202088850242916067907202212170375944139547011927102125290797992196723149316108359981972324211653597546188736814313928890386155390846819884831317979351968023194645878965375367721435339445886794145661567715522917814022990207749433743115048471593967644622031900046119211440505173068352279068984101186106267042688788802971705548980670286693533281792897626528281694621089836481530752160581346372835602317335383196416570089804316049734429334556012902681018976406181457830258998797527467294673294334069149223302022917235654464137037103031223559674251873294475740335819449732355797147662945700766676202504820307207709550495005764201608093078240649707750325339077383421507810120874319061601877603980213464624290701380767995619996446490619928344179094891066589040780215304395170053050670636035908160349557066968092134201265942102358443150711414244268070719427746375834967755531193329522075878820282349330409612044305869092938279335387944777226837212084190620399882889625294103674870043253076379490232086671603330448130319692077696402264007060858070058398622980820432606490100754244798325938674017623974136835139851721765541413918425584080698579505687940136574689371445050819708463321604340583938433678359628846406054020960089833991928390109910357832149297874807544327594748890308007929526999021711919959127020365346522388433653722681481659837686360540931942616625660589355110148322273658382214464158818960785007734915744484797124538267716819786157559175829968733355722980752879839635239101042509642406488049867594097264155859710096475696510873138403566999909239853864121558773275154468295763395507989260898916810176224688203035945568305116806922870614289546730337908852276790023758725568879269309920905583258424175366741690338136705417818775893018564036771388182457378799853845657522385308341348410157302188027955842407630793778918316229585295593185480559413600814528377513197648664930353685957178643828831658346881894472343722395483813901519734868975537091571123460266172793799614240258685091693626776419108520844285448225801298374156182956333166532673469697099619438673717220140742269393265404468112936685125333548670530692415515727171240631129643920623451699832072196301352957043664132098426314640520845504427175678155206529264761317404008752250326019016865835484909058975964670402264374734448329369686432567812789104259711630398239308372254075770975884809561306644932916075508601372385310777525186210360294987288108951765727872870272720047535065731363641807437309311824775167528419669667238466487219282353456544561269216328928259007439244163213301434678900979877379805366645611260846908890159511023116626874724457952179153021615326728180960990144403329784717982597940066627714722237520068308711525191309681607149798162645057183512332345420460381957616253871388318106397041102700858958257146595836185088202898853811549744038279005570196272280459193169004130891581720226222770158190101726894378736812372906184584844709717371400695245991744743177188508433220523114820098293387010960029163264795323625870537155373751767046112527254436604354982703859366700176817400105802238790613659666704724536813983573350104669440954776341180800087256159662676823755942245235722903185161740431232677266834569086467816050565873901654498772293636989905183509384391103932292617576690598526327870355924881322317397317591420794810824483075842173936824047472190737160363609455356025092320256172816972343128058155699065534970289889688377226888080020571363190526032517830546894995294016549996084297370017132316791779767140041073712146857130495716528254517832453930355433246960491576938372355624935579812624772257140760223013129358289201192988470479695909045780809891668677672039040205383150126506626975202832310346354650746238690956531162358836533003360789868924122930111568690910003679247111809002690250713152138938780896262349962882900576388608904552963029055370117136743353783514185778223748409446590551275673390780584488601894326460608381657963890405127098391885339204971153803418787050969265711182575851803124113930887886393257116241479855604765993618797429405177276174429181195288823106749275347071801517332511017362005519833914742525813625843294537204664321322993874487045845787807797426790646900726072961906844202532304896932134965243928664743526945922077566783189624599993971204137977360497108872897199530835462284187164004531809961163826234111197415331606173656510331062883634695431139539281525008778739575388333006673626456124797436483030369736376785637105368668053867346312830682451146812978739949357290588027383698601436305488371776864609475628005683016491161555979584773590457020013409503135538349997506431518120122472270968356127729206839675141180512212844411997262261785800045630504860337236687446870880523691296554234343328837792628584986226308966483534844870100223626861800815979757212452044428178919306018057079205659700646451530767910605055728943634540385790470901416042034650565309613248365086591333641947259695840285885448588642603369643455291597013067250500903609461437834645818064411049500416819768006785377474566372145914637874058118274713332515519628509880679855458829771645281455688747436440447452707404693729729921423296221703241854563291080225936488538752449020588801552016815027599242225049578810971421405453638955498544297756174971562888158600502799815646751043853442149544640577915787464411768540466409959565623812638916285939574502328980056858997152115959498372900756117116053505939899155207598325975594552148724320590460896831025439113496121657949291636536231196529877043580989821629476122992283454030992747515491633458195855855877589911962749786075171116980132315729419930422609104256277763778268213756580711610131362050898491585935218267889490688380609846215609193299290381609227300288304179640552012615364085067391592488642351807404208247092102129869323984265336399578052223968390211066307871457392421570456380420440473067930732036487395619167736131355306506069623524330028584654270437394371715276744952269230477572442595660703424164616778021069778865206175044570858488441534515003402401131000871093954767000548654608060382791697444806312550354705112243290335720669678824680452404252876746613120444244679407597663640835176111670515471169154544304955495159490052288623724199860974056541218384311455016510310314720873000854324413671673129524479203412109843600332603835157075163266056941962055303083303395461440794634946255349063949862589241768575683425705996601338798933558526849721519684051461101387179792624355330087779688642643394539221067449402839026009617977652444078723078979681774313467824605770187760401640311108700756190510782131520343404135084094960375226898745043450696863523328118964565936838396217760818198735177881317615019291858355053035206382705109267043826516619676403647903820075871023760949207442909657403175755142374249041425730243113366336542542589077882107632282901648746864347562965824464474913836117235982625815294100918617921936274081529622118887121896318637730498742399441395191069267953958044912215368667980446029751540924818058107847898993199436218955140985401124747304416811098567722977165976249307462399612536018683945882673930753579541494138113604590994737930473007412035142849008861391147688124287372531371969764882994658228098692657656366579113029765270438762011127489396140252807173311678855955115853996032833702701906774792095363710150581838014796944075988939260440843437457936449978987463884278487297782998009106817152337185187743958770642500716452163485597462510330096579087615194532636682388643464100963469453292705089710198509725543460837691825680678582105793244364760085559090081413776927913302669873813822012677603485066690283941413463578230094223230149784973567817762574847065297044919140980098238486075800603668817665105508842576878853960753940413588308970414173870822118375564544354024366157654585195966879147598381642259113706274716298364381956557059849656472222343149997607307508705898234917298650386329798526757583565290664048436508489498468736393203429393891065237655979043999902124362843863007565050252403177189837372133090141451298988927291473589978955715390506259257609705834536697476748518745381949524873792636331993036916783345604901739995818145144637381679483711378675919853631406737814402637054680081070282629090054390932808725589237995626341050254743196463065747877012753239774692846005827174555096905855399332045562496525905196569355942527947434951001166366223534592669967993455239533180353993995787093742736412179301282201510176640788929556093157729663044915870981829164860487302710223127068177394784292242151006376536111346002768072835504073674633041922150285049129126138443469645491139609077036251858812229421459569561658023708731965235720815051400469897579137018771498109005417160260834703261694475839557087393031873063418727345093936868646303475444670344801776728326808510161422644539743629050499457185190772446324568418077075522528997892214114194413627611558818207554318978021182905305476162706968103258276572513107058400187119916520638231663615699288483810895712358405404606774062211313496729007352675220625102761969504134575005342985864850038999706177748895363175215907013701202125528718576250136718489553815492986565883379321199781261108826785245371465430670356967564145005056248767626897680604110236098778907766881475070747091992353371093436946355434780174712436784764773690030161990375132232583819173231199443490812934208822136281628424853551032839342927916932613870675243072930633511432684540825482149116457967415745153796014199916512930876822363474361326442230112706949228619029381166882807725553656005918464584640222957944113135877193710124747361793770977932440261598837774072819523051147866808295185455555330546384550517842951236221433863056215640853545922378534979175730590177751891920117743767716229561900707980379457313291670056552430149665185725683973620853447422432543189880794442687614663016121840578869977046304989956167260796152742287736327270150123007560035876081899505151346261080937617166705225142379553161536877947991088178120051399711773242258636748836338816304482533581567458992082462235220080572515617781266386241037047858911285005189933017869474688615719417519772128514089437182966814790671131977353904945432002823417065502759708002194258060917491372815499451421335118365486171203789379330790225189733600009804055048457788095653445880550527849583910745937259818554663261167961508725668162897957080557276424312043160050487016010911198219755259951912682626348013322886912753812470203508494452687879033197343037406708948424598554702689937581796889468558181154447103753437611158577160586487553673738221905519634844152075056870988748202799190887793840385764740385007599723783479773831213725951068882008492001936158182455156276272428798383584751685628694029712498630342156323723547976868420900766860299992817704852378531347702612830494549848317964205150891771354761635332800910417568126421789969423642984457603313441448096712052574965031622695610984473828420458083486422790121337715514551735229173335675540948131145573602805995399994585463476138440883924442803355796638056452795720774217196587084009229572066283612671584064280209668164475854266253470382810567382685188572591210836382227070138994179955646096520799452378690289635658613617579389273724266730700730823605156424651518794081819666043717464589577989253102654203342789882494838701313399576951530774402699147461335769416951953874091769337265414778879916986253178323425144910913572131068994999771468355445294311043133186095939163815577093624521603278460213386813454896027428808181926733816136231526647925144455425081463665391726698740415446685689706172494295666358100688733244819806777990664323090574769600818939908072536067999635317331812550587063590854550590763701027898099898717310311633175143789621175245762944798755173212957923901920713692062519972991137645541934202040151695030487756775324218201387351487136001897540514786833483414324885379367215813263721226186442174046792263440239399725488290097043061573170618642406236277016597074665395737370458579324430068039345687320668135385251342276344931937735138549011131277710478040841065014088186449787881640100487753298638791072792712638477907355418144399247977418646235889374626061596444677758089727213399870430167607481780549210464119846464147479113412080950294448652575406444646145268935199426551006617001283644577479948527275115663029314780096474212013131908492958466721667616203251073257491598969474048394746031221927281084811132383539880323390835969221450796411326440172952646167046367636710100586634245293883880633365395274847966753375598813393840621690651419151288909294198424656503881046090043976979174456587191810789631945375764417338333754496389672216494734947973044247604854059820701247083549114874077792775407565707721585421752779443597458538398778953842868129611127270053597216660263164095279445989548218677276570657907127868027927553746067694609089135610065590910635429744749323044486580008512328966167622457845800478047268510522789489139627239239408021863110674564748753524990186392433501070569238445572296176008629103839069145962096183383234906794938435163923843101555944961368764846053419685138462466267973380839162202069971004969978394448499748460776791138516397216905745836952747998975313418798782189932920747294853565833594659733380104209351095019737317305343121093329646747847951108854444182104021648988452665911916701455002040121641313754109325512742840877363579609636508824833642543441583899506314734434332728196850546233208746109604840358204891711714427585914943602744771063432549211314860708961020942938726826597031057054853047281138473683194360411691690102784230852108970604918221505768071761803196342768303935248673847034800552628746017055366241009581270744072146082684995891914761184616738242349688948329966530757275947531799539284328227345007928326433473697861263326871264335876949765758256432272574947692213505217849925166900177252848374955161993957191848224567435982372047134427200104861326282152158489643538989477794624549323689187135558270816378983217614385472638654061217219668714042127171472953919696156643844088368908148726785184422162057028282015349164903241096102118488093999201292918280014966723851677192068946126377245824933151833597488794424681364617305641092224847817993613320895940713324867624566104585274320095221509651414911717255389119708659245760746098925400840419181411965001840834061954566265048857106167598399587611249267394139637398619634193261043645475096570596743379604366946197695865472215849928826033533186161831468197659426687152796320929722021764516057337233839104363703813110540922103671726401645118893814386707847349329668048194947326199539910255799367230212207842751635631099114378464789471176766474157958009776023080920181757760958660063202092288991108860085604491132563062080089357230374078928875577794707302025467168872827699927700057508138492488500793908234789482832783897509763739982060898907198262331296086535806851665957643779486998362078028708806354936480039056072093048840220785265089028576985855353868818726966213247333627326791363924107775362573761817847871270553236380116165674044562490327794141341588599157409520067360414245310407799303975073007262262229391881146999502610525110553888808963270669103000115366976835318442165125843790524771507171240388960613616564012290171250377944018387752378196287655306524811001631749800027541423996365873109570624503677723372449976584888453862902374516366047378984467665212678773710601022597431833517088712483421077551543127821058753408805733813471530387038939484912598259809050514667422071823830301238541041988447394358588977204395258323499973192528214904256052570982088229389976567827594171576953522844970773577899775252496358346914990921171932345324445758374646517185090298993070332377335507018790127653211955161881200669165416378677709286061264972218344880305016244490100359240139075796517211131403594358105239218260088251792024123025106366569453904287379003407992570656987857912952474295469891805400886832512845931755877613375929040871210911327093135871235275680796359476176963058121841111928521439092078791116722158543854366592149601575803191838727629365799992234690718276717932898152601796187951471096139337976846255719518750242956162094144809219751069700194132511192990150930221822140275149697722229842216789398780480739637960269990960018653404499621445312090225636846000259906366281002691546017973690783972231739654612671781809898138502988743587300403143903423200250329706753468089401495953838865316514111288852947076187610944807765568701425020052677040100398172483058682790530103907789906948096083552989108016916747164548200174842351213018009863157320809529325564137534367309194453562460143934857055454651392720942999219682919808912716583512170335782340194500989191849675885662664360165270828652328656934189727107028284654320480728642355633020270098414010936671949822423129237740264900965362154636976161600629704323342190031184844219409892697067412135058086560082341218107500779218249827836091606195675919771331653008943055966450052836475749081147007712155891954352296241508045220472698784175120207327224925029328855390607030370444239096582718216468456341458339298938269751437046489675316664954628119014704174021659631408157286253416957542862365976193760561959564800015081792072244626643376175362585625054461635196423677339621497670801088498753869033569585401421083195223589716628891481661086427953217579628112482651645940585463969521772098805063238485947461415235871229633513721375175948695772294049220488023891483632381146850163721382193992386402925656671498179919883680960964636007190813898557405134857178233144816040996087393523512872332396929494855743590414167778743393796893462587653277675072245731332157656905775717746307969954560979805127691160234832532888498189904469146467305683023149870332292193173134244319997554608817997812679553696224200078742757272196418527796517818150718745129074529659160756287900324537785684222790891936562771897866022021684627317042113298167273975143129253884432934261619168045032523911311467356423048233607590065894274709589750114006292470900758362332951022134235149876364261439841937163320352144582819554423444172274709034460969293592041876267563274351514083031759789768028833187501196924860390149374992836629279797831515147930212491030425372307800103082169746078990320465745808555583335246539461233535641688046477526609151158214048843549359693271011028070868890909225435712136335422745641800692932781605041861626736670135344907817627305265875562165916716755771458696266945191203600150791880483757039112906865638260195011871886740820038984050524078253880975520496008759389594012620095383392754774456181712817112627266753079591978583401345748886079257071225028209453690450020243440634227561227454423333857116402864661554371882048038840101236282315362247718868710312626864858436576804088582059452028650574596835809570100513930923302418557067421382137685278316878160821246162825357229578949953659748248840079942268102619917616907306653173083329204450412893901765430160302371304363962456757563891036124000130250148558673917597555070028771415464203365454725609527353908967591455778825440789357042072736842753799911941495399022316495045316409088530125714159868467940234143939849400198049212913807618786221052607270330600340682785731438471235130621795434295403893327716678058430702568745074947289397234086958487018089472344451512945245543157841439722683261334077165318217219894112683653878573642642436375727025710537114407443730603014456368055313154129521164614167153585327546240371236157061098064073809227060830273839942280506329889354562705460324335605414322231316141435332409297534574554657609703130824264584601521756529609481322071529874800086464368529364392671132329815617365703439166739746605132249682528559302603191522538290655782581266684721903636014630900908732328219923722451109796165572420887085955543894846694111350034637771182213160023641031257843689834304775857454486401293243325272710230736646823307824476462248630483144313049111293803187855253250056155979152988687844359977670335357084950055566237493151047469307899573972170181362186708122890743773363673961596835825149046644216473515067131704325753172170710640735515508096468945046860647903975796919967054602776849942645442583290744319628210431505660653390847168522462850384374623791163051056786835330035711044849383016905582635356890146708725568848993881251236939843263595322048837631812213187765649881386055422093026393409965500898470466839724261408988105424928720163880986317348211127742645878994915968618141929879147614882996491849570294254657871451028201031007914172487812095738100557306009078054849604859727033603373274489502892251107509371713133774931113188688462279590805785746622826992874508480903378012022663815584925420156442975913090096213317716201106182944287741230271012706847848396338878207507954565546458596446446884242316676297702255443762641964988266317554324345125500416014408619821242311730173776722683143647162019504275075841629434317130964429859469968028363081977290313628395807770237607306296968213752305080553876948458681884702694161979336114278492688943334498628994108099351428504010815429082907482629410021364538531811863446661652067540217098450481085848137460650602130417066461598484604987397170111245469257580233220887340575220023471853111089839238746120367943867644233965221908737033192749912328726459028584617865099340270049428472312912893488739156034153877727634072034468432721861908122934474374104585978628168269747291511101281561378990432655304361474971626457011748760405188436755403103416422805751020030483710233077430617239341695749354656066789622584496363982789910534574921053898791609592133157295290228954072888267306079196136294882104357365488001213752815285350874915663287615043349873577478517381817733350828637313577662102712213740748999635852110759601724587640602207822422518685775759027120735909481859022631786554746035595999755642031246527102427496917130059486118741513144340803974380241267715553566790663603866716796457544344353825827298374510889714161083579974793016528960397836641446465262362000100277078144155513418130369834229392387441460271345492489564036767735725349660935366277059653602032524876399979758620581153232552472481262453195734444234059334235374194907313314352565965499180541112286343808711108320410971048988668736238034513961730773178486243118929299760245199021424837969668965586590993212194076095823164196135612879925206302834033543428220879089936647341545099145181600523251236887407052744101502727410448060740363267775357366434844378460373343566903479165938308982923272341671275147970129506315101317460601662988825650818462918929799044510370307952120256891905130739592810968955091101983442199514469382823237076269014279225310182881956437458004056933708543835527761074278425169853509461761514574534037890745157334155034560528277616394663254904758780257007643839926095153277372240038226349860209700875338862000439766772249040707599661270111363537317733913936963107843077191981230106812957049856947651239118434138883033763998872623479891355922399416725978123391302408148234148393760091310162512146632856120292719832416560380408399615714019124876255155951607700606455248765976433690774965922200910060986561374846044691087933007698969600366998804527893632232619080728731510073341352228579021205683481866867735305951923503352165714548546924393276542716175792789805414438495393560275261119946873210074802609835959976722961494899990039810374775521412149951924464577814382727527560885626925694253344614031709634741366586391086173434344647309625793052404325955347588022163312977369788147177485829351884661010005088776005470558355775514812603414823981097950241834879942089423121019407007944145647997581716157931471453867875606398373543692422343961452167053889939493412388723973773331543753640907115963944027897486991285047994628464554028173702386640231233620370264263204861385568842093062607685459890187988074296069130048155319689813547782674088022282857357779815987659295323053970026392575651985859781773816229919384947364379304925787124609892585803964498230873563174089301781389537330191171851546394821925212784358039943066857536406371076488805235437903865910933826553816399819457723313246834488275377266375415160118752895769032735925041787000013752883591572520532259879256988384653790079467480736082169417883106614965915584422982036145136423389098993165887380695257792914167583278919482161555872042894888554625363902722844353144872337385599318945589349872434625583505676438835945834653766794552285080055737632719418773750212620507038472009991235592092199535220322938769926283151545673707340591615254502430955849812734655984356767952694139638993107349101214365062633549001627863396357215023083655661538766431391393288751442686157912465683327251832128722912033433431877178343505222119351777566551977658089873898712025820986189567737555649529790213708887698585553296370417157437989423065978946885962807199602833981044824381748969383478570020590165465257207350752068717399522098790482543663599269457802507335618421308855867015775633102943373663321897202180116055767549939256382947579214732952792434910303365458985816000837174624902200297558206114332160429491730291591129102540636501229787090704168446161562185392576744772790426225011123096270179680799186133228686697489062809922546392980072289279495412630212130401607983952947355270027125393128680228376177336659012459247681611330282107123145592089602457503952288003561092682765212808084533604982161365895205914832678980649498979476582523821252358432390598527442707905082689980770487973083490654265229078232934502658810815024985083601507771364895174681581784075748935133095396601140567841430794483269839930466802487730444208010509573902420080183185717066388153200508973592380371747428527777100467250666106965676712574993229338955123923229277450498934286676072677855190508016682069270174987942781616160119086261463562714450258806220052996146856894830097926563486546354946611244023413588406578451746138697473447608802097143589153989664929645847182090733334391477143166880286486625068518919644368410235651556336644004718812634710843691731924015524372797177346199257680485563621039580949926403493217501371941438652799667948168102218017905046517795934193651273182514031379340333159463505619723906044568340004500085527202780057069368952187695314774250844849404500360335843424051090561650707530727284831842928761207006159569986673887980792312733974806197839252269455692062340963982710278258411496031137095099587156834182846878196660694736925232792163957085127776453573648330625044998469652770142903049262396763483314940157745784048520621667569294670314479199787334204911956762803857457008708505364491447260308017423269841619374950364479417178710049200426620036654957246962823686683848089681490409186616629027843441426015599836831663303238632892102914689921025427197788241857579223533670257134588541449670321385009018219557221667061188791041137054755547005972394683876847279577982933009839806953466721926970104812672096203695916872948112479166160736588321103739584627498356205069153366457863378046055376796430648974916173048928696796948901572338618312047774872693220773967894691692246207613168754616051849395056358394251712251563874529068926974343706010059132384223155480739475430211676099979334099423119538953710313006323578287882097836282070189291073008558038148470092314798927475608475339358670780259462711255893242724635796891784393428335808760141294503300237390870564953793331160970885332637111856092715620661949692863577861124748800452223672732827498577869063077884655095888847846562584368031362885464013889106263071912954569256972306902791976529843425154662730653851824249680984261424287238492952614226424522281607762829353971731447261116602596695860758115572106916478533013314140715654706386243090965933080001553459331562133960421896623447771862484080782546496148710394548244228845458116821868717592387094681646743591393975074848044181293357695649963041122315842609151063794320045907553978740910894098775232130804605424739641060085799673089369960885340804391280579579932554567320684956802608926454932887168314785974704856686273142478868692465480069023582770038386908904395123178020422352556334304075047389812416014940385756394653376807057480493210649428538921165151207275669149265438269502351504330445655842491348638166431640637726449986098924677916238589815246365213976805674498419139323359259870455696929623986810815593691430540598478007915359586641253809250780271555254631529803996632071191708265136667528753263225085952140037357832990216032945087363730988713621104211607434198331101449623924956019943067147916130134658558960742798095328442391950579925309540541915096311914714980838291363135968710439823858178621674218105482840344815963076819229365069825714679164232651101119944871166939065977036351065227034356636018871656617520162064387094541558369934765934798333699522793798180548461744180509190409077798164852025368641444260958454075158550700836827746496975086396769403732173997759810417325134134886439971233365879048699929189386829416476359457524729932640892229293605913139940457522252536203526698958679912644893887287708021373173572993839782190918413987382701428981760941111346271325057366999094862030522909767743579459064559319858374701638182486275477373469912890031869485340503933857022910299531811102201122982929426242922906029556758578929217689870626092650595503735538617853262274924397098042590971090085263718128136327099616392359757195796433522068931149163227171296732684027158030986589991017085594157309966397382238609033889333068992276467181453644238056171583363208537850677602512809172832099193170201901081237510301676874823601325324099270052889917490825007429606353834965708965514751036184247102890205142025787864676908495045340262063554493739435395113811357574567957153525048528935103415453270257301637951221964743762981430155674976019309156957996012597275070130450436807007595799942851851390719217405512366569045563607379028015546711000358994146383595429427294511124851398293802231452909944667092648738412825561194988086445815313592294030258929237883781966122671878860554637950129647825529884632155890580240146263986267470209659358399263675460015629547193710792760521171214081239684054463859060374721932870509335177257157107054521576959305817412108783267965208986334290397961405494706201367809827908482998934338161239433720654213735061661021311310611677396711642078239365729478604630926377128151799545011418486945223181406717908118658338828505754494842672450873739664990484722260868277496491698484602196287384646753450660694336680073997562633353996444433680915408565981794034829588209079374306982777693497757856559971312519522253665124551191634252832361485624634185269330108819626296223718423125422868914489125851580803660993196315058632718194685395301687942970535986278532763366760324285377394210221194742891986174297145682559239677666071846042713941178256668327949718949930010115630437747774001260848152043412079156441807036625459566827069028732398808094074793804022493636211613177023541965070757640098390785968991345914173389282266086828777517310814199924973648182898375091373549431050186418498555559165046378593824409439974057005226168780833189645187110419527253660504619700338525984245649001833689519513863729727259281013318164622409995749261781312876943068532041204240183675371063825375088460683627716280432682750435075820018322717486766426738600669095446995811559590595780867537923235156605622004683041940932631553469835360082512895802564093602706009659170397165793090920816419361971900328848773269702079674478951593221315259226237341417030794256565779773950360098952985819005463073138930770384348017793153747674004265545907398088641892744584667120589835965444544454431767947338053832256411075779122272456424196524895462549970120712035195604824265511327358088062640587585772637250494054610453325418263525015810263311665256233226066655357455552744744990829662424271398619473974729407051394521046316995506944935193026604348652075304097121362723743188461043271982490220788286154992919235314952852430059312496766289350584935650920536049463504761585701952815897651749372694750394338205154962911725044757673106163805739451004987423841389304737046747610585001854042135720860741365608784782242019059350227838591249627098323410636559088973615955297787175729439732207261147353944607516360790863988925090706280137992320272483151316680950193298322099015235590806886843539928466192432326668491257049340502417294441568986446927601634436946117453237307507159032217905165119319309903260093687356925964776560676519696586604276220829574204849389584550808704602363299722712147473298114181952985160435189724935722129188006760867274050994716090308943408730612235922229603546444614064047347932310909123905640493047810567802565320796711594580127213455373004965935510806846003617888155184392252926332489916985624225154623213128976394599146448864808459580302332888649362462935674374121977615877605343840794254848539133025762074161318945972666058811822168908439078232090062995162707194120670962768869914651323131004816957456421087475331340475626652690487346719543265032578660819367165542890289080141727104269250611667860805673080729566083810307733904080639812053583032518665219727366815130834716463653675511918663440736278902672742203150737488858680425277119216505207768987430307725072166157104690882380856664636362350923098131741312749627355929603691740724162043681863697043521102130010356909100385293559346177783166904663845291633567546747540846558662693127031838010751742609342885670582155065872554798640232683516448296791813393009542258607584804736482918107304761296045773192537734946166011735561187541973570782108537047084983504017509685331174244632391209474965514029392072622495996418609879806914236059406255035329857322061265667245783382561365630245893037084972302944540651269745337854782027385362690418675012801336442989488633904400761643785897840583092857989348400438163339339817300674149301833911214472435795070090573625355046357190066199518931727862119552806184438562057145755131820620568282326119905661675218442413151596685639145608599661902327615118893590839142513429229996528302563037423643923276756338494947111823760245691625411846465960260236227930522663311895521024661954532466472375694964944859088879479019319224640107613606589371423701480981507919698237386605832324355406915232779047363429886864495312323810964262284413930058091562341188483355107630362525350272044074626364847818184706780494431160118179657381042780469325293526853275663090127086530222063985281486811572671593468371377179791217677807783162438117356253014757181217412729711177363446227371377284567003151004204841835103403202276283633828232793404260610406519392149344815904376773674804250865500240700712874908886230929290243883332514758890958198932689213530633653808555170995604431908419185400386493293515025131831169381938829034628575514651095302838529191231728574840436931688088940032456463330127407382339822018249721864369236769239833405651087330697216061578402036154827833249608452477222835955517853660100989166895477987772274882140722157419942770899191343158409385378977083872651890122212959254107497595062558288543798641432112772715754452722217293115725383506209900833236104806519441943783856964731376024296665322923100411241425912831227070708775966097809583318599859864154689088285220382005713220877144352357322135776386982946557325418322394426927535113276531344126691513071751466295665456743307090099692241358124348654308947027735921346666292811653188535248577424803872410118765206974365728428420180813157855946038304390454992606208334104706475251256303876859191108130339142182783763036061857412026352412496980348440800752767050465119318101087643949708605424219166227592515900467210247321714187506534134728655554007525420621642369373005742147791098480600561260303475340125339883927932625556010274071972251671751274772116911546398546320792509186028638927958468940094362371421599725404097229555474931712421256019588983209576993923010400405622851068311824870822639877788759896706844717936847121545173061048375995132866460710298572540565564614824346243457531309378184271371622842970448550360957712717100089734352656095294942950978448915722666007152996044303170268067618524910381088240720216662468040926517051731815172686991628300604981286072215673375516117018626929492505044250413875569068064972071812166716351775692243529809733854815871233093855129603628260965594661495867245611534198007200167470134316504937145064044442520974831715287505597793663035102346484601981686761439305238202415808952827180444848676702310817036364055395140784371009397744616079127724868502071394167634407795652109491224580867318104138698242751431324235485423021531924563609954606680722939146272010844855602463655290421042910268184044180125485228022869194978394712289492923322169095885608443569635216740801448158443843875378194720861332629933437645984981135372172872708673830341987113255966716838953418854381948910496486606646471136644764505904583173968971534496885684209569759744006324740342636129476509456202746560549497905975258816894261532456860165041874142525312640385733312035066419627683189772194886026392851641909860276125192125939932474096863864202674824491559571209533305806360921004160245058794949811635788080124649206041048627945726151575423597019405390706535873380133433906014529610278500877205179046767912579855317731037047829228597246459716358180862354235032744024990362339007023815223054506772253739391341296800570967908116113488967005336809646211676826895377362625682295432378289822041174333142222915592256707434393852283165845439795351510544892821395676577962432090679707908297695392484693313237783831246191759241741622543301400492572421496020154757597139678588348464813168952084180876778123942744613539199986635634177732143850166789813284037829492053372978317188797418672590029137179095170806147713358429490447055211622864605563467049911460695385902192582299785238860964366715581315418607008009361640300811991899772470773511368198417910361640374055676377094249429734423433828367669332556953063320709889584891996554305362809352203160917576892153708057139834542610962637521437692770309203477110675900414504135141048947523863213149997459459013956694828929276744901109291383525304163754945826090808459334320057647047474271283921985126168055011614795836653445810183816398014131730429744042063439093552763271537072536424260754566680643452878918222623481330454327768552093442657388639862958159695636545771439412344417853169531647824934553054658498250660904229475707331936451107719624129873219365644876221087349228555042619152473913038183863976267018218884504174278973156910296794574597769065230948112561200107940670817359287620982676497132883187623367229795152539128860186364199476817000753843946922917439163493081496796543505207000282982020633463588475574462305986136796278044269466987049964718925066638555051994613333660260854296858838946657651770767778591833527099147491284569875733349977776968055380322155121389547777530918506887863918909987113717998094310633772465938392203016112207730488888992465097209809205732468095364463960233309875797568206068623208596144456629651696785209712466322837257052024978755582489246849517841226954549600060287571026523152908540358575534635759667684001162977230245256436633649032928083037990055468661763946973904108194673236636666166280442350158577741274745473361907959314566602583220332401601797565237214600848735272798447198687056635904038146623910825407540097774847401057816679604233958069052012445124143416918038162673913042696954217074063741663265028961616840049577913451955475668290311152125290522126559522382315887771902991268446444081617102487963275342723264503317910902348113102963769294665155794862320961317386899372149252880484220653933940595949036059195294735051763538602229296298022935901605855029310307731131704695939086861989818800281904079903099719926169438210804590994980404664801310012113691743953160945197295184905895099207821393599530485059314570433640623134653750549274215425950978783704247095268611310863866912526620208435462757574601611873182272113801463816351527350177721354440064303810712484098554336261360030576734035230544251693465492607901008730709488307520140112206948602620438894116703059718119724821155131052312678483258690064185127864319853704896958847255837577068927535455158563486104297068461902488088324279962917764856297269874080769403471716757053328631513026460172028373119824216193556249987529083137393014953061260851474857259351358929617222760707436244082644798341704819702064746213735754132549560778610506979702656390259908019680348064672458657132699696639990523033628164792187068670842110031516291535457153865464998188827066954792957816063136854002995573056658798284163144284897224528075068622246965801081454061125163310926222083487339323973252442338331854912202022506458547934801508091592882046212971622974695333778821274189701086769312308032853891490120490573313013213917223453938632800456584876174805273027218969807621390301714511100744439695285974336155715887987204650095211576637104493492218598936818597855273376390873609524696615675527388573261029480160445839323869065983785910767655989371499343228814274211989392944176652261545484763501549099109289093900491545070055033304154579047638473876073542403379204112939125659473053012369710889733395412679997364796683341802110674806481147513325117749989768574819622186207235337970919113785220060764567171603270912959424013919860003891914613861971077694542946385154981425733954841001381173132847319458280123985929444619536566905792957887673817618805478113557783813064079402084832822654551936065770678647110840225591706739524109008917641564845572180200450789376351013163295763604420227870351925485075750848274231248746067054766394444127047838636142872054228227305081078207185259034949759687716215658357950441851778882799709833425665783464827813691748276818435512500957575318917166130754112497168774197224659692414943840201641263562774201664618940939078800141914106337173261261382000549458035445295839401815219819114940429982817599652775511432126539316778445613215251822728622526488705937748695713167866536394667724670651333746033616331845352541956544298169017915723064392622837506718970792297347712226751314722855414417689774230200701127610024583187782930759118920835726936909186344394124524023905849903597956224970302069331603219471123976981810985789249045022932334024100847533401347511138754195989643480295847805045174199845507927318191836069529795504535748510888860510797740793336747372015383248562637812703778127914828723396663398204218634668583611139806236498071349265184224331840797501810440572828699632218797115791591048358046770080726445501424429761172747396565781150140717168448832462308900406240634927580895227028156645226492598208057048092135400711838489558484202351163171603128538359826156653207142793811363878138798362990385225142615054285992639836774083686312427337454242556951992961178597480968247323349019219692414587994505462394404766102586988600389040800267780615933860788839105698442497809045071638794027757105594861385442961614930137306374595548105046872761404171533444140553842260811348762070705357087374097547326466270428757190021164565722405046674629812957394513133902796144966369639588027467670671926014119649789849208365038354769470972177051220741898448616429573218118196678868289880564253921001128808878384527606300668259010214313052548769840006581213546114221100785350348325512886117206837600474367705686503557323670845076442058609971859404582489735553875808315409910996526654128861694260008363287364156225353965300304172053783102679460947643893580381517018074149007057397429765338586740510146338617788846360962863581684675240578217977743422917421917717887220859428594013514524577158664860147554388437282761623083142090471303731196927544746310920811320523051130053867381020219572967436730838359029536912299156538294294271338407721154310867877813329819631951510987730084764249827860245453951453591006087296525013148923690111546532880546083583700499984221215894685121283295075266319653371412636711864216920459115616821471379630815375130463188400371801293658980116938902620564277904827059025560864085319327731718851531964580391379931138925986207978458691637745508201080830022168964243282688244175381173667780828561521931183335803041875093789373596505115510428329135101299319345244505574703644497836116367099339195533087836459834351155686151702616213223149747747715245490513077045706081391332102771599679517404686413068290157628912114971902415613285807882590276544503726147607426613053205106282842218862663513876901686171541802663417819175596880860021430629277354832880662722082539082321517306938449886247276530150188034860016063323828306793751564529620238246610869836212448819473286736552653340659802074348066108041569492980424389407513259325853864521062682217622620891627276442214687116454733150309561984044578377366262948732668768254370978549277393650399353739713131866817459893406517117500537062266326679890978840344801554512877966927402191399613582590406063466519843394535308003131178076182058740935131770709142116332176552879787787398471692719855154218356178852064799772061918698244826128955579140997044884529143678183354503809832571843143128060987238991236848259440372723486775865222843968859695849949590021788759075658412182403492188982068184130539756747040370137818587307706831432178921544681745113383241653774790662290092805146258926454925075694878632179209658818552383403724958959275902932434126356074533628501766342321881352354239559949984607867295214711614417567120005783493107025853270963217850662358377455740965105015489452679833184396253055577445883268137163642695229215726552487546893500246062064492690483692024466973390852320818192214063394370617926608494498005031541102187547556521059510406508759851638670379349994500145784169617601922554271633424840231324450530437457526522196647746065945971739708644749740065819878277160182188381054386853858300799651632026261822057153385785653981759786542917373081972188769152878523395442451490430627896649394998551723994744141971317235449576929293313095583658969298375365685048885722721882956709413395073543072161712874499910383811587877791703183649795373396932332825354714602286119052131422727303899496238547383508897296609823388677675504305684279665679176903887677033222943622098135832910987949946340983236322961807603041581874861410598248303360184252903299542582371241390684998895715284701053006713946722924659597147868991536104845050975291225193032895440689017214290972021407753524050579896945616315553926916563908776697710781887208907330752613451910520339675512701202808265720461262707380488339274437229660049292805255902539690290059830900728911546710385621586801024610019335823021533103030537337217837396389195419979299661156853726034186390023558494605514339054484329381155246532192297266412550393889384314986790041912137859018238728131772184563504351964015834959442682296303229989659796804988452727208169021179069945377666473109065012089993035486635509828291109947965197369159368564182328022868679451716409007514634870801429505225485062555111653829805743708789708514069717964433143699613553184401496211915037615092134788722008156980954515053307210533986460189395838045910910257477416274146721417457736564474502318932283432318199406577192450683588516680147173665318871849437986141495467909984078277096921229572671186176498388632592141583132029460531043638371146156541994238578659125565436518293419925603512137616359957147191016781811932429052934022883145392449630691043037150567612105150488067657049528991841077708997288958454133224346572325961514509960288116824339354883691958878728709413902583816603266633927113291624179560312051533683764106477945284606513883189426411577034389528647974448311928653677858152465717727143968516689814645252882541771665544025060206614986349015736085273220371255296189896146771585627776858266906092134869398853755873373568365792938549908060765566746491454611829554237041384877481891937666299464433928647306105103685854464994780005537477496019412169579070980637634054947447780013113257731321976421832906118766119455578511412393506062915848095962246924103670474029411936787147901736038071451369613906814751354460154058809713395126314286659000177095583007288445978943983448524116187076579364580726193582054677571811310846288521165230955771224235770827550239059144053075055845540617115612048200089808901788428260464837028718412277426066289176652259994023911786678435692180172937467711409857615340668486107998086862506575672427673799002075585706925292125921167455417212792026230166585079050144329716215180753431989473304327173290715579336395631292677610342051632286261592449280412694420203990685504860878434588750163502747437064578889496850126977070940354187947605086610986970916300870467724205730930810360470128703303742396452433263602710608545057026972913384545602019394380298579615187032627632710335444290645590543137220715423062888760974484459939994777066816121745384261964657681170185335831065177283434130443782000728004120472748771608704940839850032218862258757405030754311203164514413960145196667570125945267933996469505473315814248646527198116033355398351804525641553092278895160192204682031680844991275984806976334776395735752584304303714298757917170289245548679484570728273169019651666456178592475503780530701139709645126472710035044069805402405817649127853453414455935780117178722717560438611469297017564911610298514405866278421146908805686705607481729399372622966721032322386003483191500467080207022393642681120902068876473810223601238962957766093261507084290813885213926723047390017850557873191048215874113113076809366728920058864332627440900899261266996805676127352276491057865158783699403680112170899191627073256758852770544479235027611853694366974791114646887633109109648760880111557080154467066309907735225012557962931608500692222446789139270019367082033053044702307847878171393819441664119030663407348714030873196364160826343517191935934592685636924967965075858982723702349149872229493816938733525818273098148912460975104217836714418349803838488567025288741733729341284828833711861594014062459019032961896418040698065970736795782556012634534448294822027576829879214952527832394411240237575007112075544221648205598997832837310841294554341247201254685552580213503541320747889748552077874631275810572663072544915009171703264131765802391018444286690056621391197259255911885415518610167164092118208587688624356622044227817261128523397115102733325170417500824692214150351778244368451654859924735568728603738916416080377092658505578100962684798978196740210121690138064239148449323164205836823545565517387720011955617842838571002741888909086979344315787388943356920676491714323036809025288288680317474457198981185123012711859199291036732281582903537389076654307112762672826542278076116508734829078569382021950902059888656569068770515747967739710485007365523602234309574441083444283276606257699961952250142298826657942182682410962078519320906306881600318772989309598066904009499499496334073010760768115742087791739566964863817170554238533271224464593266122875405231382927805164840780397952908273312303691597396693623489025314250857871507817130612999078968553163548721478574936968313306994537097066049920876956467680317167190476040209582984926752770662173887942038970887118159854311620745091778990835787189670250532767107320339973726818742738945035282521268985928475761967347473984383650099521698994528099507113434367605084018320655462440289172433332267740072965159689437482770332274694787332599159650949846282514066528950288113110035755367724795082292453358060287814373250345654690480195643084823968949203697543373404050611985029419956759197903837853787788486268180290049595940741203029349455636832686195985859290426267299185728036596422463648970554691094286167280246673865646029865436962471594885676256578605752809897922704345882451011005019528633455964245829795572657567698061116050799897426207861094763931677146095126352913077347101545703960020133844413531297341262050845292976947051799383778228365991538354337772141015025430259834297317380390624476347470022330589048531546023383986014230925368452107841233974687229941917678620758840071933115139259405160199653880835799682553213554118966229085833004768554991159031029427094850405664875030472378254672848126924841772935006276578013253723958866441941398892698733462965455692285137846456112019188151553564324181585380044714757618274717631016357283727428287115116838587264720657458458828833914501137806548154444552105913528290568233672607819117129013538513596117933020386645377627171840091128711701125064324909138541456828284861873544359298036607193912656889734205816645257086502966553258226128460557451577714012172549885868692144575914411310204300518478803390894466481282009962713782139521452497050552222431867938883010496566456699604860982663670869970469102070898119849901856973360325790924241286824191450443504485987159650414573513395625877664658069309503006705304989894076470452677652480953622903737664381718130989573567820317524621945925954613066237272118778608569045180449257274258673177109727305085717179487477132093993348501677051473153664888205863165037311015188480614071276234422169425054437591617971835120149686697344577007494013661615786406061836463054697525052790618572078444683101630848634889408346777564688036449631057548880071328364138012921194485238630727546241457153487495131446988166200169042935022097823604516614219082524484990824589262244515295922941517513055195371895017312675674643027802585785398565169480509554468793926374952694793566222492696957625633248025436868788141180247175076556929457115635210482411695189415153216694390271879819319203429473826624766287078538195636019126732047119282993452164061435821711894189393647093207142545078072224682407895214747327446379622455768151380401825151616649569279029510358206618272770356526860749376145342030357685509464274033667324119756545398693432999241861996066326632321338352954937891050779241984980324997461042673541014987742199916157210300236472172430926437855583311746183628963531846821427297701214905419927698539441112448285167482385932408653466130369683990310605936790144966174221024893828581944409332770900985114857538456612057664160824845147325789731373207960869100896140427897593769122138806324194998358312969228059866232837648494556571179298124604002597752407758256757956054039312283776100426567569733281453696472622410746790173598450093266318226501929541776432964265432665765559727258358054534590570480510293491911920114573015926543607504959975121623786035042824169776697543612604950448648028214325063925946500667298533134848145747690689138919051704265158570447670163316337578071362029388578338106747939349170761665228487512744700708040884008068438001342863799076615014423703534016756057709913919853737107525314389205650165952044805036441770745689995562961535940544216802278170341494067636300740644073828756378654486815875430784672028958639005611531824557070650508794586252102905098977507918196149642778650273934500960651438252833927066561608390685247485841881565998556706082601580339091221322266716754355821701660350816684555240399519460227522634193340829895329151331457512665408932737699109206408154895380377965831976775456187140040276321680660495947958922664996608007526775179414948364367262785040941130515139944110549936086627803493588871571424426117432783151827388249615708724477266906760913703094930334644208926441970587193936563511422088795466168453553106609919415790206356363717401601239215527051486101598055838686308814547857527205010119406415352487321613414838871568429015296351840878466102305513069349443885355778710830435690938259098955741216875498015192050418929057790454743658060865008415943239461278334555857921910807890788922588150341139832336090488453614280530521990139190453122046366752142734726444400847283354635303694834669610115817825457849284352202067219663939951877233763021658080969983061346798764466086931379690942690580312575269537086802327200315630368347191892316564099106029514001082171693252939836354279046683125862541061008218421540091115476799269701409889114547054434038505521872818939582316720244045222342711821664081203367845855312840226965403625524261748561131490743339046098870409229000359212656993274760574358361368066462848345110918517432450418461612943224435461160660933906001096219555565896074004582482778604638117765303239927296208997808042296455651212611179998745779470339451682437537500716084195440959251735459801304874878220959435050048494211846758910472202253247135019544186454977899428417362409515902537219614114334133311674755631717046088403208793344391039655664089987336988509991086615568354883227155924129796649897890162102167496504570466195967889405918039571950737257595687811391874155996130734124153607130620883847054243923128185309376120604487110085824200819284120481509332992358204791705645359396235094902028342343638615417856794071054964667556571088794960920485497725312545708028439984305690306507512957873697334472391036690481225659965195927923431141227766785852003509299813181980808103856798472786016240742367601687948108910313565646227097322167740349080381179382071368656989856367095782054343903340563500570015150503273069642742674520489610094480546230329824226239030708586675898692567208054275082971116817991126407827121347847198525001123825740631367871209237068401561712558877616035386034534432081135393000624523927693429161789691133548331835047484590167638008820491205268846059912468444578195307790022886528743016475046434395608919117119084801162595230348984354763282318070919274347845473579910266753142952287370837376954909742865891796041498788287095917892954403693590690993049541245255824942617669491540027079031526368108731168862760201784451174356477470531042167906256222419837436029083188024087099298789478268351755796313572781913520152655709323478482256188605200423075022015525191190341297985310233304811828618532452035274045320496815141706940277437387355307031011005384111872275642015859599463181627337891581289384564414083504004984765080096836563540316935855258198298455390735266656542938887804767951899124854312827689572350411124597010479035464116104484138204327294784664541643027317787060094008621168710472928662155588793005551660471291840491366225886869300311053350979894387306529628673525517606565776386685307485418027936688263841714657974051696303976430780522241165681181229902775693535172852125507375803796811795194005077851914137606548270480879723632471686217696846177443707174716820409694349890164879298643076961792013913635401151822027060897047814163855586733108202936178558664311489229754852185062650019905301763845815248967109925263494560193043686943830534197011132477647919924648722518041965189681560920443095057677430198550655428064842224240025269618576793319592047474067453439312573922321794923196212507697266545489546500511925353285016651114323977790800056591292414693674097713872981236387307794896394625793819146823295313799030904444522192476715212751989241081845166387874624014130322999176262996130420715305441766924592758426312272810544306048226125698503049005287660294745080258673960549902394064511802494269477117891395156588448671637987951636865232641136325927776059878516798506201406701263770936959172045204636540040680830873022476961441182713398149985508164270042931509700239949657941043093078635099346050823792681501802121129687544842710103633486755998444309189328785095411632815565573343548497020038440711760638678691973836931255574916722689567311819073639653481947687171816049142330358632816997934498563709243831376159455879345286118257897371697357560244447673987716528511916962299808899950876078719485339563629984763834508869501509431415545947567488426058788700376675865901109922403903694911227303787771723284646859920017186324476969594036166652124933891829801942513160226836790745814100865285426315848368603031786361622534932918992039485771402417520410672216251763799075889955191081765461113398960019803314754168695536986102914230462371077598144977384037686670005497439041377288551981270264548884082483885463248459402680185145679930149572288399890763236229017293259923542973011787600117726874260534638314493285109102572290160672953410033207022414858196503598747963614086299165474221242176538036270680011145125331505176852556559973548150121833571277576326913982980138235507642201549690696013856532286645200704486846205264532802751910878621907676251732839366190406527672380768462678284964499372549766731767823484431560402570128579967730270998375447154942149730814043651635196363542642518221399664521823604320732604069969503096769435059963255966401025807213639684306206171805766190782581301020986547945254285805597241339276719977573483684932518924297402607108293646567688778538277205206455623602692018993386548801173113870623793370050754085752908923808296630726687465329535638378003882787907414912976453046965151900212632248606284730985048500190132811514223414944588066469550535268010809684460476525628483928035155445410154238743102371852550775500857978095760754993602824009786154043801510820062246307376354107793576363534829544030710203852748612950099497963265148872124541251374220528099622788448770853664697195558800764639091646981059814896485317733435526016875641015491985483300476261997947656405319401443578675146544311193421484388724938851062439085048490775401033242211251286573697167445333648744032144499380897066547283028489246541637765772833161505946107474443480463036802343567524791462010330602026031175696186946551015039666772256236984489099184832455431903426351091613332222136128438797505703491751317107216767127526612713100079106464763186861931336924207187660824384644531980377769673342171424279180773707073449524574962805782901033641137402111882728813703329076057054760194806433998549414683746352131335058006551693780082743911019112004309988427731882955125371995923149898187573303891052104590443684017922888365188353515334737178636041983274399618097937093757882672145314614540696332649111753287659441210486454511609259979725175925939964686441845625804441321629628378756659350654463804794287849872910516358178605898165646885690436932981054165834130522962539920904578796414341909935497544490346249310144436101828504091827389406929780683357305458893892574802987496416593173913924249713529861655975590090620183688637762341972691972454530766107876117067360236390322397653475613606965264812154427691259006466862836105901106373986733727915758725920977626338284084955185347387680877430238176370503401004891707467582005926649258504571161585971561121692123686363458538800238733646381674883333890089169000264497998523412336830876384361205823704300644483389571024553233042945395180290761173713590245763327431806874834002704300687143370070510436585737610712019512869179235854031941473971326029775026177520864968906060924035010454167343902789474012023520544399375688206281367719290622176638041634980729962831454030874548612279641843488332173540563958197745765302900254476291514630595970410033273898319367454385630162561569020998157353845006139192748462189684657829264552327049956800883657786810627882614809630036254380381955132609463107586559967701611077302721673995435026493405173763893302552692529045658681734361631019313416655642577382643925763625828253186803118639966717551172440283232275620927906446029012821832271127348701346448315123075535654608192776301888303653571764012513781804689253122644518421490634820084929064340822889906750819324072052929183113101494994443170127347971407028401558191391259852313324465823244545916558077390790061022958080572668745006029216237486880809083279106356912631942665929206129568319792603818445135450663493527305506764342103732805188649993367107037809921187297753689895336868171815318973407509450724907039752497513344788547576398082799870533550177377982990939405587638571009757604824335117012713774146484006784624234153545632509197107745166923592848810940291545638109607775116049849573334072540329593433601316146270437760842321691103472441804292904769474525256697126247480708205319602701708437213848712841160043782055437396857601018818705757589724233046080952003655662974447376987513208292887237099637425770452840634744500279273533316756011634658398801828956078136411278763861912450358555638223089378409236271627382617304441829361717378917785980240311715205419368705597318347026249509155968508355289432836302212002760484101887277363084048860326361863667656399862424817766882692335181317572372702670853033011308281966624728289205069903757052322676835790263524182526323976912981378406243020463907609753766072055362315413540162151950104374131978002932190873874825501821295785781283581822818848434982684337708897001540921826865453349844672842151767183065956386297811998766668192187353920121163640342313327294706129086222741732823371610398812070134363367052978054582523617136532654853158696917873625208109475738502236610075589798872309525370306069774452915327276428367927456062698627060375748133359928400159520064058693629038357947321792944768623799927144650867118298068775320751713444325563223620699698972095739430294024648395186004546358682972932063424497229018504821638301074228274390010308338392741537234603398995381418172530909396474964888373822125880858250316170782058177948096944371069590336036752750239267959378770623897412204639842551335494638278632402595818313787563580080529823899424584496142294094316386723943036482616557129051253243104986337330646913329203580733652390767250387306015061694605660013999320076657498993869611173239982384693444621385103443208724214211217031205737883230236232329579666690155125685583806455746637273821011378952186185390524509031541138551923302750164225007447160445888330154539930982231001113524216416301290116253209026830145825028626274898971881259502161932581692426701734833670633747898180620036528728016114950105835526842821175941233535470642284505658507142232821263001262399689519012133743141173159123138365518344945645324576736116693385863111356766011025324995746192806653506620840214384278304808649641836327552311818360884132450175773188637286854714229745244381460654638059285949008550835375841278919011627987133911753841073266749346682771206556146128313968257890278990140923725965808229416236060344254445626834567631087883491877730962348988398484078342894025448392922503088477970389941020714362135634847833035127050132005713866594755250034113287275595316223539028751519556802259277816046345600090544446155106268455959722737105172494446999290538625031522462157415688727244629376436701695101742570699337294932466804049721926036346440791082835700225595067972263499168808635153575733449290790453307719240682475039802468561680696872803657818394714034837651037432044463516289850448797288466335169884137166603037718011421972461233445837187492669160937117093704231644315056254759067815643072728976695559977762052353656306932134364578478724903362952038444755538192090466747482907083013061416472372359855212371564428216224855319544399634230576732482953375552119550919070593902576151189892513141998440939479482214481374278852690542151745708244521882071144324411216422991360993033587215994856549709349372235528132304372688783085020323150356602963457677617475122096270310540309982735237387411740142821024242550156198620699112383475125278675317916204400630675829733781206449542387452816124947384948235700798781869341191724542597112271781907546272499431517986909309006471533137139650377376944381587022745574761920693555212154839967827987206226812466721504128057131224344821784543899649462395481782540719658532566555037137529696885532905412149967337229507867066280013942696077811916857093994266075927606186184875936983997206570133378884628006124220420452370430920842962184821171548198103688560218154618748622876228186667347361807435238444468651455593253837159003807071292075331971093913001299115538226823312191773911238614992326487042706466387383113118023933139537546145854511693229658105417317907790307954500275996155684292717878972562649948453693869747710952947151252102873112355710231427021144756351354642392575609117719315181826552182380451619807638827017302428346508012379003656961485275624834139280664104274287534138712851364216899880701776929688929347442650689814078246658448806533969468457477040236606421142453414243815813983124406277507565899034220239151639541039698522617636425121493118603435087835689011825810585466279233067303781616992475998644392811161826629187250349372978462202124003318018311203649504382424407956050569355051353838649219190736540952259645835755038445547969364542036832156350833000967798447786349830351175225112311566493194433227671395119135403777692646529643606073816915489111922199880654753091681376519012278764069123245122012470671977414542396585267727524679145995849529705826482019706380959332144506313118998481862326060358867448602744263704111386500345181076015098083026527611055515139412877795500182864946570166488146844257880061213391805867305961036037088984754747530080678338317264860602046973437018148602162520622957714586865106430165811192297961884923283272131736597246805201249242767817233711031413605724605036675698256968476418511659762688894691751770684760693879112151416553091532913862197036563341231015058566921170126256493702779767025208421821076680756359154540121401992627245179471464848090240867748871304269898548502051455648726557195096107905640535576972452484687076312977005189106596508856490550517268901307787250267762444571664647318355875188535994850405698955692749623262088361297451728652788333679786146030776443988111464633855794133618918081275331375448481690373974625826707132550251536598304020739702617053925284936599241953875064857773051464154401854502107527768868702655442796409363856694697442470205285302376940225548725865502041301298148232417749922124897757411597749358612839965704758734979562928607041765847254297673829011486587176148770935240936271243733657093230596579473519326183644308605791946742283237977007273244258978928680356745504194827107992980337708656336393806972651038536422869882151826064710975100176976929796775944271628482594161626635827600646007763810271317265441941778076987944477644758339546782732888918281455944459803638562533632199012430423023848703130014575529569675362994452600402804445224817139004508917063598805011575434264556555729979711493915686986474514239817115844127499201857741157271086914662279263366547704228523256623769494805098541496450722395784635105973925404525806898064352824164566320093753344899636221506580601342191157712868466173376693071039618062970655736835018158561311933538740662973435627971837897629615283066718993597589528135988351029346755475526666908959147168178112915251622542648783154973929607231239749869923461150148570161473448389948778471026677974290974414879624191457409131945721979665557483349879907380244968682719337591525538425987788987949997545678359516744424691954926049927769571992107171130538246367001249383540207092745843884653709255523190929285604019743350909576896802119425180186091921952402784346268133543064194366295708654349127260151147772931955499261851176498288362328863229353271223459342970550956880971862390610896438656256727507042904175871119828663155036941228439581660148462773847585528090728008446321610550983435477346059313781660216682376753506736944385527668249950673127238732691227084906407141432980687733949937322108014851068908849860507165548727998672655925077195336372529622710406073538083133701192934714146679443096141772665261623777461345457821167511841194752468266910308141895950086302463529535633943425763050307503400020594888580330034038314919288920906617560545950842620485465908289116532033141583602521564711773395562462428975848407376762365143712803025298172727307118046264608790172033899296991154600194951912278908762030167128142184296927140126927201971153595260675346623348199234569257884694695341154368730832381758960869792537940794308198620035892533141247219061704682267773861751880630678262636398801388836719959953906410643532250212084948117213074516247875515823058011956362526321254901389253792129824980147959212961754438136584230628618737117138129478262375281377946119570169284618332640488869566910562067198144834017216895224306904284791955613924272197079973601042670020597405083836246944267472142679884896441699540750986016382754957157840264171086770535378851547592445518147636962152543439931596559124792308702080920440907290685013865745584705670041048768989936321996623180441910101871088260770656533938162092896425277212227343855753264816225175957376031097053678859176206390580806932564174012226805682453599348323162394543180498679697969126186477069489645925032850000429926067496118188660788346863790144145048843537400954785494673464436035348693314039782487849377815038461555499587704094466493904526543519877822512179194376963712809984623903966417531505695707254775634769945308220845740810348866410968368363457969020196580508183077238044058491234064543595604503432591451723579035310602338843427546434193746373178393744828963300572027694662946740909348740685794241308986637649325814004059458943691567915122885470975673484277515892956434196468554029876717276830853190302558024715798883998107888052142578071509498391942491790589254008003465457321236968310988662949392056878152759840499992408295579614071631435162965863414569678380357889009703682267495192945236301858602009336209098718122428189536344611910655997545728018313352240156041111683399810985049252003654953359779915403976575942280690404598368119423106638169414073397000005002070507236540688743712333926839962969651802385504513854581816130116525514708060560361188603216351694159863203985264113003380771121876197270966156793194092500908237128860737972996196873209521037639462817084324473944927524275387137950408167017323436026140820279554934805997947264898007202087513239275566635365067698888151122459429588457666116553774660023686157917761979597373257780863656209326297619409803561279721192378811750900498744713132627917857635560357263771333028888785322259734782025158829101046722687693460457337493827630922120147434305930621470096331745282580644564154804156171438490911880713815812241418612558142517103371044355249674382917185791595013204311281379205548658442207751732488270825696672834906632693737124103845353139992564610173511841057833907850776531268450007255824775339298010016544481620451706890305917510433179430035573113451678779393213145070957149556649984468877683798856254084856436408995974884926464456815829865673054732430081306166944687814852238936263143389985878225551140187763791509284456887062659558398784950119388769530354945719160019910295810024757004820069178389273915281052544955377393980147508227568675056076819912802877858311706120832319375929022669054321497931629863926872055708881050870887409273071689821755161726814313365727709407281522095524939800008265365026775374622693017709200029044015865637358269879777648868203884172711949069402394583808904503442623833842844443267162313877608935239315387176112933694795151595051771438732649875808438833568837857192449156437015045941132807535974609647613000801063241679157068151730816915728295492494135893973875320622412915807014270765538420149203718754022854312908756825393553529558575399045759270805747573829424849024255355523588001741810851675125065514330955668222370809205615533507820633364711676625039812981129530562067479909662719243423515666975494836912373601466217637190316166067356829220740544123597763120133903794210183567681305405681660677612611487543365611219866074663086147744839292356748499570323959910589648341628443033219321954638422767479742966237238683595144059461976189923204938228345523824519039336956682602383954721817471801661388537042934217680019524237340079281031042767352139161845931885430810828324312756710657664601030158478891677926639987095376468794885785043982661617209434321601457572595696496438043159993323986774034086646445287240008599847000737192714190686922438773000297238360610824639067584310187855282827405451328356295636531302583108003044188200951477856108141494041464513441988651281075748286147766082756899662677187121018525513723443208955550308767514357649835550697950043190906246285352464049150853861908969073300334057145800776035970693269483203715241629665899954218656004186380427827476409585768134947728576472410656179333707676400837779247468609751478580875312241080106239768048112791293678569853287384598463663754913084982470046940738597405424489833069374414852739264154454045866214006857662208189309224180294237255235785082772007262093084994196478292577080593993968745800481658859337367699749443306674800460890081480002212231499614467423162867126425748418262536088616855738909540164221517261986896127704196557258940323756316032643568161610277806830795456010149473041249149657828980797178472025391488776047260409945461624960608963291914480271097742297651457529955279957248081659504519320976465005232803405671684613607592294065721353597404911694080138940160100013311813718535846748587780907172092153941602871154900237479173963018808847330848493461052931783850017331004769742517184745545061952841822306881205989122973793515788642087617714980523588468629686937379783538683256550529012571841693351652935851900152439164880848493058247604650487570983956817947790964328757704419919839107371665677834228969761195511208358829282215581258482742848660983326744454142091716804568042652781568230520610049882726174178240749208084222722821829103681675953074209215798083212254310815955930925453541441795797614130180789198148010524578606216118419558513034575600994269132027294041498992422212113991116454497193540518378174421677693140145863064250238306975481740845649282946334306057106388303147626315244828903840982337531644537336714480671359825131755359058164014980662499836296476529089424790704241176524384321395226135579287950013767109053517039086007862077443197108997085037512550818782590370528988373094978082406491072550516064390749727283410980752004668193581944077658342810752943926724959599698337105954527888166835863232498748369078631183795390614372314016664724305926999239561781431494125311352994907340562731812016268247303789755797905840275570956522100971540484573242004204392986938229469054345415348349572050936333287931510586222463427023194388919639123708594156985827921641148346328846834480759174562008794289241050750033384147547558213791686898835221207123159464939168950969969057406485174716613801118341578472225116214177990443051231425772025887863394325923799791781411729662883651685525551210915984096151936526793652742512313914215036477172626180759452553980180148781603437075969362658779123427989454507468771345361759168336401723710939539994362053780409294262450231960602105925926430992860608827140593341018139117813360585244264638203096623483559690540506214289876139393997533071556804959494813447542010591876421689529136323352049028045031377249576126517977081795459407109461596668346899083583837100095744673387335164843588297701790021156505867934227474105234265944439280853985238199814138978041912925062959006461275402094294069205948921415688963697878544474525174763370070063020382941766046280143965782738941303413653046147291735684508566593214841056634751795127531391743881424433948449444924443899547542437631090885429345418267485215752777236963279318294753841066078177139334669317529851150581759916654678351227230585972106882284681234768757164489172392209564178608796909638846268176706504094827107136140712789115102628669108649987556350996007113597712330985051999068151934090251185534640985240857019253932795683296161936345396084221780889960938340138460025520550424076258371918539708854842329635978575452378337738374691980861163747973293709130746945789351080276919240831032504008170967038101003697857895937037452517761939984365404965902330037178278335321432095239780531322690442828688579326251737890096660536073602313809116827600418012552756117917668926048431180450692292957038957648419076932153351022202296380362224006205691748823179733548361213281327393940422616873331346374559251414550770950495733043523821256845097977646600873591800895166770685146713821413208021421230203046691033624460596405739930184792886392885188812641001994307268414617718453349502699073351016084452198499556386004326418101872087041233759418866540552012582536612929993999144400508807369874455856778305480281148785031131354159701356464604900613108699841377240561858454894982861311682695624115859962725915966564906234894372394258161993278735957641461889601804273077056657488625295676284310524330993696986758374260042805774878246836984657413608414119144708251923406109501021739896001442281736458794433447560504378138844221049867918309718675206443007275984227187931354422360640493726970461846232097205882393554759274156973614463088909972440409467257739211287461173157185422433735953873220000586652719957111406340416478628817209171190643991502329639366178922114653114581884501445499724086559185200432912338776881703220040492543732294075251854168754706857655451740145078081869921576183547967733095660830100848013982354964360887433646509420557527626436959761395438432284051706982065935169906454362893469375924042605312695788253991899660862448125250757688185993750483539193056747861666798854582396968463344720633213134356399620857237083293218177101641308658853337024670395942997097055123310410595852285020143998471568060600158975337236248722191664229382913477651998361013230667733289076509706253336681847756528121797447555206145756741758029225643048783768437774155479911355080169831384951518368262855481396879808337050571357060345458802619497811529684712990987275814617033274918389031804198074180657565748053173730397586734447233138180561890584157600076628306854460862338009557585152598516416357464709894917780879774139519394153726595749903738288777125549237115739190811429852193520047573691120969479183377687060557284381731254793968359434351658186303894115109462419209129599752597625211196866075030178544174050756809294043972701699167403632858275157460421532200378725216471156121990293807970258111247334773133099915686898877629634141170364095280188173669669929410724638903674865142176239349977199447272689566710865119471935129795490134619377307769815465418794478963245046269689398697450613743963207336148576812782467608936170865383934094928280004605299874611339342486234347320414042246345579816679751894529610928580726253214190565834760930409494067052445715030018696598386638654739589913981826636076466210549423323162011504878947659686821987561983358754467453424787469231050623284618065916736327915090806573260709779729673428162232304898321497973070990053744618633043983773402452649220680879389689837948523278789401315689336397575495033969184258225670258509372556855069545193784553964766141015874885473025760259836082326809825500044571866371152090042108520047755886285229412584809826040622740754660593433325982900422947447506364112441642880559659262918326377410052703705393685051501035518580408561932702847585361033036193291103316718456587299644229644801193973426987274844175589151136599581985443012282862892041253561188302468513166058781922183416233947082842779447661173038527381490597772813560858867576501677578537057448924142845405331241144898016965077948566432467047441034251353345153211856233746254855630929979176833519894998198285019399065284145042733704114554860758411187800699804703845073690378561072608779259611510760687022384020187234010848328193930172031705929992679294672541027289939103892130522918127552794313831014869328740201802716009575904964109344371975546847242130302870897353130114143634452794834011807348891616834433327827164977025324752644941386743416560009967020505273531276326074939137452877047176621857290035496130319500113697730834761949879595915114820164702164523999299590112192470905757983026101426885492831890668450021006275789619555537652975352056901806398091661796178907130885534234169910460233701356990738289685581885160889616403254630366119641334456186137647758399461981292902354536725255080547143237435559106785090100656108583790491405671937206842639616482825512345605611788864611204088481720499457393784700054147009403671559282142574380109440510355712017171271258301900172428172747361368134032559041010728672564424076965914912646997840826837073924122000767511142225128852434606340022337624175176306842147454110520860693483122334209811417757984436939825630864538715884722837711862105049733090501017406418887258701165727404609265291539357988653895901588501003912080881811311653589806873971349064352182291466436718293481802587947970912774133803376739278829507854390207237095428031291721734025528400916403366377577176717152533062254337802935461685840056855540907839435898166151146404278921069629933513626142247017928875618963295707829298685143533604626574773224382313449090915008215909653657108748922166120184102449799164879469502867622348930973018534651063519276942942762770583196044187192740969290958992098698728509486355729870976705290414296462526605469585751719310174012809184589115630207644465869901756589244157463939461176742568766041935239110451685615380961022533643672659994898120267486204487149271322034603969029680355797404811846992590427953262613293243972362159125049569647572216937681434103897616985102768080382668182573611712523491951899658697069918267995490604578386624485905695131904885216579491401908947813149296131828611202867078143346700896106250634451228216126217291346087628586870891459650327551842413861340266649165188594944242980586105126258681018283384404882166197115991877992143052385763351999302256816438853647688808403340988373526792764371318350006988564995072433805197292634749115958320345121808368730217623794888090764973366207645675372005412126796954244491785841852317935828812857333567707483693069836255246407647309364940594767273666699786754071627365462926273239602376926481950224215908637063498824391324175167215629729712889184320804283409318295174949374677353783382452975730650836863490218204162642069426109269298714106193597612556233121605490124803766051479236869192019990601681641072093732798721020818932070152878304975294636579870376048441413020125243677565273096508959843609445629917781180584525952620688383689546133718273867648746980977310235324121044686090140172514661789839546509067159319503807493514990061264829585860006488198676749958773117790416831490017014844705411329894563051779874713250541766918305911621645211768982761783546439965980990917348395187463888631111530282359428204412782777821524076456710599543903739425567783036311538469727244374891597991011286891165127079705318693224087390751036584212589351849330393395424798971940569504800772322382574259933555734172240423828074694070889921393092944521121527199319727505455336219798956611955675527915026017098297487353133584075519120251660969333445689478441477892528540639898215008918497780383044033307213423610574168310881646985865274075160456199375324267699298108170592834198930875821502188286121426548102656983362148193114977930250367282365807564766755963701618674567725803987207486937646244627008972519266863557193823640350100768242954868270565837103183667801417366763523917390514281502600303287261685483277829681120839514917481084618203364389674375707049203605604162304825571183646787965469423150819866839789741682800754522791981235661000246190772893769071677883323644172065414570276022601703442333979463965654609654521830889001943818079048011374175839115825368659163685768436148861952596813238244299414484478052617378099321375107242266849126531600866828630131371504237226355129575967337921541119458842590112017223405101101237618060467799021256054041440486793082909318394471788589986239560836260251432739355242868986094378401237726236479160611043646647233913414838787943964181544668564670438248545610268557653054474871506045517296850060207799068622996528886747497161200655213401870755983997552651283794164664497843960317393421922059320049544886448805818953168988328787419327249883552616393390725883221135629375050896801847044826697372136471989884741594226614451259591508401994180230876724935164951441143441740685682781894063418935345276767916348087004989088279463238034244198408284008236177840494242134388793291360408197988445056564467733055615550903233424024084244771885732349344385678635491277920456136341064885983015157429517973010557634669018767940560165327934260651462268055177760928506458138038897268609041904254491876720457067649537806451418887076148657625289505706998289811774246692554765001967595111193173988118348273177703113396114856842776976673586192790044417598445081410579046842760419717494993086727613860663803300282937653854810766291018039750727040111201444713520636323293188238653673735068992485537910107503851049647964997565825505601454077632646130703829823054298786152796218691563530363702302189420263778230182747743448813499300390669978133660650693006548008393911111650112838139319197304632234370609593849673182612432683881485300729184601976688070840500307343208755106333128098513226590646867329610683258000891012081394802783377229195716457230260440126375317676433417978230565099143309199701940445682570991119609075536827630149084314827682147354622776768179587337142125977949973497024383658663896271861562441825334062333814274635427078057600326832819474718363710485355688231152582991955013639390459373557272244887509782478603066425744807684369934798575822732194706101838402259430533623614853311504125092253616080465648144169269163678669177758663134761069943964118078750575865352486984901295141194334585042966437240281677001854732754161759739303210114015024477052137165905383161364694553492275494165546822183367305179099197953752915434685315297341168655639011124003620346015259051207135184974484516125943311793259373868418278169346054696508538204232719238139222494602822791014776751156561043059375770075541534349389152225492296815979072488740856589798657752920675323336248681879720285720942745511087345207229751899108438948028284952428633410372776473585577920600328728403204071683430120386153179202245154400029797846887735867749718556921712631310319235723841049072546085613664097435996038170296322103193619471530925255532912315696622961424796913420965867156125828863789971345997413605138201418403663398102138969767235842038033267239864156390574255120874392954819522426739417913599774635790211576602709168806650507472611355679606076655233294975232789216841519534312442319015226708249973479384028989613827714099378055198752927297197743382207256352099216469903022177655224986160605852005655179711820870310437426492640981761705109144458867598516907446140942699927385159860660369993552142845671859242605012260736180964064607217941904658537191030982644852408535447973525585559064340424206309842695371022010669302982897181937319886280389869030585116232159486391511049207563848843767251302070360623713095295657523580414088968146633253240293892674745584959785528827195076061923821979641882955020734002910923657602424500799216567871812648563119127794277817364316265384992344578525739897382808812406172958058928602279990446863472180073438566107346851546380870856357650470962088424496874057022024762690535617084018748868195904547451949860722388312337028803381715822488840634189444083728311911970555010533130547947545772367209176327358597695578411763166684613833425301111659159882291094055693455551396138113745190432923618102849971773771162446582804226660462832363938341250811426293953860497881208613083222284525240325595842540320862912082486397515323418721734030152967805882512541005919426566392892049621264777716721180184367409493629383019704760140564934729086717904532067860660017708460862528690424484908005242223855612983774104760666655677665504049332932485757142385117653037688590298899240327048173497367839337321909572266133743145135707329931920095656169162279959296218510011724716322066151763018390339095598968233983274422720776213113518233009155793637848464637233432750306253207622510946946909475209993822925528756777906520353495400901124081649644660824464255331612099970023543709153715267996460378568258703756748285334581178059313748512356779910654568417167736097418102701834370493118283104080419558676606216575778436055043034260777755322838729755230605769609298760950343418148475585535871979809653359579702592210882877335710899408764193598188079308727108603549286671913578802000535240424420982699273267951900080673596424254008638047523956222725774614902235029444813823204528424208469867475327652699716332054120883700750089387112349973465887021799890851733596340404568638372425918662431337198957752493304002262620446223598777067516850455835746215156654111354395129899969111514332788797046076039412744745540633954785344157405294474380475026842187804181704384895301737529625140004415683061535936435453851340616994320785590125299697470090761534066205252265381644899473180588136874792310139799780502190731592965282109797670873009364021549514761312932442541901611708671689141352283827549494244263084002278562738432504511726455509771486746103434348495426789445803722561165313002903240937276700428329145966369003361080745829474454489337229550186258185778509811275050888870384621153310986627135989672511859906122261652342408458734702646552236406314530100598001125821981002105040234888946357708331222557455849456921797277480620352422593277079863498698576327831617809476776346761873336064362245032451474557545267406241787680485857086430968040689007416941131218428200680398998877525748001523129439880938925536493488415204632323247355215279017754533049445407469314668621869251611016211699495757616526768591680549773233788892752985338959981967657481326225632131193662908627896591714547971354939599608057052035892062296009848437319681732605019952521076255438260467361957339215489737716105148667131607348252387997836238907785569287866721259563914676272591773988701001855909763818032798138091471097352977844896836908019234312997271167560187811713422752635170328707671310883691650572798935807809727710824992599719510405412645006744555652057896992848972666505687214549450529458396732765298022194161161849854465364068027564523451479108282753020625742716492927925531868401343865292725887339483242014645716299601636294102501588283934409718860180980286936728823766753223639450333713975709044605045533795347995831933507010515270051746911273724455961358346394721129010245190439020735162543563130553061872838509136605541567177136078928403455336730043805859248399710266575076382967142420711326993807805589503248080852354193838891704268465938022704341044090128473019077823957712398697199659500189486800480352611887570814203142698148382426869056187530435006617743364463080814323501023996637882636782795411332247011006092338905574780173044765809868378918087198679489609222606444989881397475238383928523509324716649304363581981905675244149598173284924911917309090680405872189209536852831464008224983245466657121942316925165694171132814413266674569597271912333340751420110281430842819522757248675903526408147975046776093606017772513517545043860306056704448461578997385883486599680354901844090120559538385897980806811056987502188355176930213275664859614449960604719712028379871644409458479079202527664177353768964139463834252074053698584319557101248230311833969697614270519308939773236069241459277796635567918460991904677406564974638220271358031162741888686649561229504832299312400945675171798622438763509996314827984633778550390545146948078689252558225651084418751937304698664015022228423381621835923838736058555599418783733839213053431259983568258998338757794269763767256661713394601222467644426639179928435100899812642155639403750588573371118631689263193556436061353839218074977824132663070757915212902194330666351348820142808882663662112862167706265882161912815496861042345431631562498872253412639772549179768534503207411548521180543744843501459389228907722020545882989471742880705821425669908354093988983085039957557113292082720855174153744179271063211577488904303332681883228664354286244077870653167678055005527180094809745700158736898758493351648092831998635358628380926821076489042312845183497858917140808585861902437261893251084335240406878403672314271212923646824394467215416848971358595698301415511908619245043169776798190643135495175352221101736367345083805326849451437112831195001224659497903356215283520034141312371233838782211258691282625804031277331741784214090076239824535200680706798894571905767391177415935465691038373275700018633094005024556939380423233783849153676431837266632985233124474170117359270778458539128590567730800607715346124226389285176184926701722441238322409573730096772543686049256838225202092826254567140737037272633090236154760710837677805726943688748625115841855117480287527875018218308702603985831909162543176559756292786921711662448937706612488437776038624533338417175288302514801423060474376849116419502650555925785827594723214392585398663496344121350956321037066312582654443148235659023234240507167176720215167962092766990213114487831474058846368064881581931966357482630174710305660668952558423910663391951746643491394379823159465515402242774248542861727666759758952426106273114728792725116611781553043522904211148099497340458895120910619728727375527540884227594368939100098037082378623148726967755939247392116739890521696099727622636578527009963823549300291221841971635525115717897371963730504178083282720490147145920132355816994110238486911510729634346999244964870627296123838130565769389359372784287410475876868007614807913002486428965523810628641338571649655229930061239260879760375319076705873654145858181247285548360144313392165665657530039884815408303095915617622142804773247215969657701300643187571657425236778036404421144446008343625691949616378121143088629008360749737579949350079207571107756095377682659064059973745042543713236176391872476351435939575474426757356846334140254294207592667027701754633836358267760354403741544955240802961693891786816488720849932367360102008124309332337567842535997485606571737386256639711592574552243591929805307870155598058516067035976664349680393838932234639190905964357793629351214975416053079145266778325262910152481014422808939398700940932566505428252476733404086171060964420690448309900453192503501861282970720515441494190957641399670288735281576007747511901573930788041820597020538778499338129941352134040708120423239153463021942038869179179802608492934412661873811207827331536604247540976239047412431369697327349454803252446371511705741279688228574157212168262951953891396843604902067150418268578879714059757780328923096118439949514669302001171389391847121543406322449384401031192234747029757214684220874286958850530290799491446437739324181145013022463960253123473375543058410455388367170013502639788370799831196433782923327423781204737314892824841816338548727508331059514946764122544635178233022020814829255599848091178061588933497881717982426449884693564653138725388784955880306775796005118353808056317754531415608637222453799542785944850179083960436633286621910227238098970058311700618163783810571491005595923363445501361499577450798309223151141681001786349341941332599060886348737138726196618332519930821259084714396336560538237433293409253367263396051249755439890026243766926349605039971610938182998871825112671192247222719958226595442649792005655369802971610736824827675316230519272834605599126403794349984919256008267836680091146815577581906535890366269321662811617294417535492675769881015406304187351951243578039908389219654489749819084596784985949749173301354181383329161247422697901302137574305072985746724466103986967025753466251520537046391715443505598738929523219855796724391096156562439099568124899366336104006379542586019708216204738658113280918486206070293486302074894311140307558185717175304978483280368667265467652126472401064000173957020260563830315403210728227966596217469107737830589834661261024490341881470366919718089279965168409908472291557235376256968928457195452846522661041113621873959808638042235297190320118397986547125649938190336811847306323418185767333711024458362311311797254479840100137845882311950649410110032706841770944191050266380615777000124080689624745854581784336832535099186465828570249822720876269804433347788293700626731280397885869314256238285624789201034086819111291052877539292050805111233484506524588431779662074558905040806081324413165371062456939986504566409094229019988857496679772604254105959826000983042478707533604600398098543257813343741269900732956013682022771476153051762881177695456793428797407579369273878856319774030069332823891613064363625008880738893668939114898817759799279834922211275064642154471924323396858704642957932028332996774393884427746714416472679722777266378053580056808810472319406952537776767837816596529655618292672068798365967393229736143844436709797018520093519026044804671811529022732632927082111042090132513862120544893141123123395843162621693026930143339326703128248227937648525419786616599866864757395179994673311996613152913900908341668484081654069311753043314502348783014972432003238481416840755626105279363857121958545835679597086399026171041928966375967375309001408743493284657935447114674849999595921008099093577747448996948539205455424293616900555563074627534104014005441139635962912843291057290960373776220306929490128625623879225077381677040860617307602540513538248175296158664381440438454447830188869301216402291830931943819657981686980626931197280277249290464588695252018370606171308700912613066331109879214217151422423025752639096948764066085438197756950674633520630269210407105929716032076374729415560667898652981038745217844901210329830344388672276918146969342545643972596415335131822339619360711690696893690577181549847058589587635644330953069370124037712750652894333737197674112936949148032429936883306126405730468830653577144859865493340957690236023370486122688745129180639631111903819967700965441036761425050453775140704630594091762683978472012589464828275314337161895921581658838973322087517456789655126929196989893641106363812316665394791178173736130145355814052772337728477478266887139013066893078276698328429615665298181277145124577714485516921337842558683468819123215224720165300389657505204142042120600182974858865694751930048865080515051565800068008677838901752619928928937502030596793485153125301363585299734419836529938547585931571223872207382448378763421818532345126398564360895214913754311536560995349607848826768092240659448451336768943902555939173381948397749975513588331793579277663471663291144472795507312157909552853556142943665915343002396660081167151793021255563380704374331041789181622563530978306034203169408439464900440230803659988000173105055481588802640432477133433262215545322492112641453432022475622952878923162931671121615623688750178486309690354664561128679872557877513199741599211519052211753088773020815166868994661425923392901057879835413533892352884280758293668458365573200888073175001861798945877671711967195634069971461718784194733483591301149802829162914249997620525483191692270260741801548027062057283236731015421976257541225984415428845503058863656639149968358188297275358123675077821847131611089495442105956669672404062147689028764630231021785404544140117065272467156570380423050754948421750885445734265993789303190308040231176489570799312535064357941267396452439028424957280256141401937784329885721956169832840489111525443293212368325131153605310506049402526843125995020982485239704157824873375169809525791493441283018482709681065866981381414699966037002501367397958790100371480852980737286595977242879768016273470325125236057524793235998662709869736131015661079327012956181714488227611528222669481025540752594258620272626430676705151491883384592267677511414540701427183171271605290440895950981795977661828856783683673442238090566604931317111760552615732495757055362457047202408493101925272849281161853594144546722342685033599507358973813672217701283074724833251418686566648263726222474048241411322913055606655406330513511510416046601390951814938270314526136669978933435749453629293965193623273822690929097466295411033155177473990749187951079257362728335582446630246772347906921059707521035307571541158992416112264579782006639162725105382852027843167773137764209419982920111934007019565605396192823587702181923750698425292330168013238431943613381145470594616658351310695492635144220431692003994114030591861198470471066373805740281696697211489126166232083723363890170122466541489977335767975333450062421952594670171886386422926225873639676754438324915041900501305871065365234149981066215008900531379573457675342289798622434610762346220885453441870098372951267758427781242875985901586327166924000172245886326895539283492739709615077501938051355275835120742076264155477507077034316265490747675227280817078802346072915757856480789482565058412978774530096068594154750657866727164595135903435453449541336378951204804526354607356744092997920068061978088484730676398701503963668217215458044344572396665044026925210000668663904270060690721863080780303696557406998490459618074814350861077395134869234234756097411310585176498668867938479183031310440257296890255369112410633921582060636301451399430209994080614507692062556000510714389239605556832266403604829486955809171591805705129021985956013712283982883152217377327704470198197485187955781793592640766913116491116347884317943652313863018395977529196787125374215175584278183324287530357560908762621195489744581739353684109740986504324819948382650230448837858497567279248761113052204697203342686890019629595824457925950768498613281453354280551544221570357305080678750617292385964196678157825954595168345900793012853616910694566632663648929088061758296902134005285638440037887078464175575095250962849298147986708645686969194625693392887617961792838402161240054844493655200650952876877533443081633042691415114108772737151811560947387639208459422015333757329669767941656878789195139957205545839974344568418804646216617478029292894407532839987863386967997514602616836306205830544974976206820484118483833323032666377208541309703162432939881432849305187748379126692358455850776204078510155714170955886073327359931129125549449526127382534575730287198747813154012960108731796541939145988457416548073022315064681960817292901969097487890376124688544406565150786752904884254741964792724109268062374694290759333672813296931164611797013048161992174080830249794803099086027179852126980050804122878265497426590416581989494789821239432865790553486385965686727326284807992416742094249934557038667925755729095748437042831864252063551847739151538599773748520809059029908098049108218910517350456655632456177168306573563471884998968348400389865378161134704762977575843102431930889925582131697908202338026241242563790965646745537828586105169469721795648128300310655321421838724983221095606517730220014881392786793691709942702535108584917443208636487106713167452662230540134457028244721176628666631561250443728987742606339667627623449005445928605059278052933143041854528492554520117166324302677900021724716896258059051282380409574719734381489732777398276135959385217203514268846270928682808933580440747742870941083543253284043500637935114103723116773355475374047629366175084591338406692101113403499143506488105883984065904119693845473062772981520886210357463520379486120614605572863289399909019973795290176525050003704413266221661255156084198881353616434370715898153269595974865388703017703531817964510138373458818046214188927487590399436514216869710261343860309389400752105911167760457658132608635144984281453820987002364746382603767087875384270427592076528498282948798704581258945648815741858454168019842553420349981995393051787239878114428240056957436107305112703627927580571973657889650435495825534659563866068590686943459139070706235539690552407869861611036920631276867551179311547281267143640624579397301902668470354648567026433428287610822312922181002021717034507151884209817263941391859589381106233385553935996986752401455283238703000568928426394449830505815369592025156850185800508909489202258620626415353051044204380831231660041576256200076556766258673292121055904708165101812295176812968904489031736622646041359357639683417578964988889396017030706400869669030721756678775507650065012764532147553636174982343649459333944723833047319665964434313269441546702409762995303236779409752294851169567292685706478896615468185196142635638397346846021732547800226933121625023892751886354609742212408128023290038165854734335421930944650489916647035471557762209002299636516988650361054971486672129231200766174384602726098323949106552711791269013697695756183837836654936177087394068808575648746863296377373864484835217583585352095773984378818662168403425759914136222287054007225143488562049791959888073248577469418339706887698263340476829209159471341201860976916445309727767054754195414129018423421240914331298694651108227428471535960228539292587220064198394490142531574875661661407806810767349016072163663822706521379651167797382559658468975077386833162700321463469328781410591675754405133535068016584771678844498704330736326676041936526912721637044208258256925912378909867558561543775929313144371627801830246908752043305304344053544901419963321728163643547631484651691302066865940200859641235302610706079415888782930802314785965715313746563651376290910433548964670352677188283843939274469004650549697338992260311889140813900442235117133613312402117825094555908440108845524469264792745891700827396913252529013326356023632225239779156597038297267310437743769728521164163000433112697394874401498099031331949034725328677776928751883015662735323357234807174473870758377413214398429475582502045818808239932941014250779209650685656846017986734144643503605367410992556324138164404723916764819549016830013611424803229578949750823136697748180651369874726069464171434337718997212764772955139501410203001143544615108609052277590781421989973575770414843187377886484473307626744763163388850570964153537007616131005019678179645542417420993163185911815456270724457321539492553914723865348177603816962660321671489271735026632915542281997968857870380228435253567807661414567884891549517416071989756417845068826168552644854748079392281762382991346881114012249102279412599718039008576861829658430273419007424899565415585674985697740580385729437605682079607009336283285812937791327875062768660394536139668824486573548828664612628854051728037185575628957581570694832831896374238518492043658196099180806889373581583468709875148820382271508738409224044875089175988975368997277967176767493305213352838123369507617257732702934384540352464132529323460130254891695170949966970978953219527740682800643172780728176318806921273113119387124729133055158601834575020395190517278094445733264236474085972238714885503086323147133569291004134906333213070505436441849328799210837305701881686314454157267416144074846382349597229725998022308707871650872533959237647064684711242262909366254415121085050739347987930096115794503244995941536670293803489298685714776002884985712108081889460177885067417227614896856783809419836485085970701018922292847283564554327949437315613301679442178125161571316690106155625701099983439107029570664335726959080837866120564838181701317591098230932982546244392041195956294848986969681210673072572640852039223745694640007320666816226769937729894769057927081872655056310288691009738504569730841078051448355219476010258741252852889328151131630933088159195425310508871677555385342503760602837100670246565316799954583373961101330328222043663323853448400833070495968355787162618330363296457669001582930735473839065702897694195419452830670638223493484909672525496617291706506933187625210161669952738893985582346923988938791639302887142288277024006227714111997818669874637633745167154114773892680882944322955727106461582081376276449960941329230102271238329592610204984421407049169310993314924395691620448865045151699450731840145524423289444694087195437114571992089845987322941652054269747353826574117892437827521823962187153452758749289444946902203957793147216400547540123130278503639679050356514224948691895275940590230311467685435258136009413673547938249411091211946176825262161552729467773879763921949526034796665362929008158232478030222554670543951155562033665311301023276898198181051416956430219890983925203365302057623965221490291847555618943416753950276652557398436413661619519839499282625823057905457170357724760399088112066882657251417307828665675029903782296831262991279085997302192270025693844934371786614820922674987805644784622873108232022059730296402584979061572123157440570607628034059254579350510546297615814730911958400404515685045327989369682759459144180432050193536438718709684045015151569872370051126658527310156489995620588086957117414402626423515749404199498084732074491076483026383058791694263978542532420940022587843572653886003096969208886089186468419924188956992939551166822229777158692667319472937923507225839632372060821670360692900268174602463842253651928232130053565281299275241305718952882880486244750778101824612532105484665930458202132222807447485539016629901495555338182269755375232253250031648426620299064364918318831967207992476218774724737086065425548096601345347608159647733732479112307448009387650512755198111476334380334289881765412748360606179050842232251222765647889145706549040176873056185273820547144116687863517164761400546260962507092798401362702916697608045015099202251566315662586575282070535481539201363080978464432845262943416036093968698921057542686996848751074521254117694603675458682857852882548123311791123763080148261285433295098385122761763537960487313267438867662454490048945322481300607760001387260018288758076566513918471814815421256711546915779843848843740703361016791909000180807591610110749072796389245621248486063506347625435269490443113459152758202153824917018155122526872576723070301897937916764891223368861422609098239606859692878899467396194658246292241996043266631005585674623918364740038077752247432626896443161291276124579405858559141600610991246377787815279496912391302131447618180114301522928351514748014030361606382569987360173825638692011934385808373127253564695089561565963452951994494175176145054590852906996472518352874029185356739556086352698448154801007772180531063864099589240070040139995650039320098293448510000436764154730914848943360729235941427933219738131738514609062019752041008174578139046203379922784587109154403651913605955373663770433583403834424856459345669702889814373059359606069177537566936993593927357605021283434826166628588183777751208345680490687479293639275260272490261478330099717303653941996641454540294003770024632644748673428748335090580493341055307547057914092038777084480613428658521932658611893804595158885688616352848338691487251522463800875616966019103930362220575496312042349201146176350253967680011534001162616686885316461519087674643441388815785428773758496682219477714226532828647679708844199300565642457625234180032993625228836182571636618820731933427829517368861347573679406850694787790783402197714565587712886318867072072566156917174788745419266518768430645787555993823311140162354004926382007537532594966976175457886311637464810470048105935252757006381881800763234830050686254973399381295061159753933634730605755172559621272365609446358341314851690536221425579427830229189539374787723224823445625941558242509993970626314402971306249407410611046986383841385056530283959694601958424667327467706302895553043784449040469396173290067916446240967451880732057773376869659206397794118766792011760563495648124111024579802387502994434815891017278873854462457990908369971482872889874624643755538694316187416290298689556577320831919801648223629589151616872396236330281559140045759450113962709676171118191558566158500547177923705160974370343573491627341365150333267399879737199493729356232400262973194075127686916651381735294357733846530145984516746843209821653062266365327812236450171677907052448059282331419000120132577356282742281975813277294595992522319322767146946177759111398626634616440593464856740808334592593599618366882574433170277188491775325561735033926633715156437328129409471241961355594170253381463894257293636470574983733570028982154716287254101477374363327090456564161966268665550418643684227417852096956953919578098870056056784929735422500901841997638054481774322282567091070186567137388299197571844120839995697181370849165879790703064628964399294810056305510426057590024422119116442837055761573068517830428523523748847249183065021164107533521592703802314406095891859550439265865846926278397188813661443580922442868401744247480573997840265544767830150413166814026142660626981943326087013039803800549465533511984200875189582445476553767023615581587301682964665809951691800197093037559579132654440879823341468334636983441444009549486778316453574131127785225125558142301103215443498001863734475958315986234731568318025144535959344817822574019444009354542210468312680930851797149127449882183064380723782785944379189349118957460964430523943964362392006737671976318468494942699338979596892866982751384445684657536933337302980141594043262754778563716389779208637270528417863517075234841556710946001028897128567308011513411610534029916108899919182237503701449234271375667034878369222020283584252548752824896020188564116505432862616248331122867930058257267082611397704198449532219595089325460793147761308994844771978228746238606892659195661329527538437564781152836453228783691512980948230699138107336786851928477607861589646285578763713496129520218640283052504393428817629253445920662876731684552087582388343198093133691389737745499013163199022667356250324923483000106792549561937211010786408468046927582099587565592381525752145766151210320551797189018793037801688724692534556675472218896416520784262155028409176392262357254583084440285538333559042943906207580460455669742697911440010414032916299806619764353204079364762434419160453785372411362350827011827856364163216518575068539496987985734376443965421566074708355453568962755524985898681099600101550726346826788280886628573863881993546509201046091443668392343010787056388910984544827985698346102955009853783596150497573627349235840139203185666655075363094038041568928118080198943779141988234253558639608989897543746103324284954063819914343751871498692583196680745644245491315110164256099663666130124691646087968125130358918666479574297012749123044757662159816298314533307665715876171350826700259714260326018890605653334711755473614858739754011269910558203758026732439387911105210070617566986224563146743815729786242944676841533853064841736355787795282724997993838194988510845000355520853355877226864904010209606494074216335222834499776468749759995232121516249384681001496820156717250761180954769704570791771634907491822666801822673312756074805230060919175925172182527306015741395747871075653715706486692524682144909722314854903867550245751164324442562892841493441482868142789002942703086434549749770768407518902518416675481241358548150301484305201394004014143183514718106582927973264835680902541191913018995390184878642318098312863687731662335936414003933174999949759737786128080980384456228894373498267543923624639114703267749831901222675015008932433362437904251989650932401763079427684847682719204268315998193499632573034872755210643455325026634945186247554258604667676901103963307419903559813422444000489203620003185348588692984070489141518724407849271180188832293598428098044365284683442322856403850243785830588203932687868247366500259633448680729629524143211117931655127270055022238957365381307328739348741199111758316540941887393219686936659352771294358999103631122379178190648589873807678067266766054015085127580589304324949491703863989558186816526291025257059048915166420726593237254103662889028648482184261068669507870326706272525450525362676863261205997788390017392383078658274338458224371868415548867609006835217974520053676270940823188407880164441612202457395865638208187287101002372984712091007328791085419542614997323455278498608641988105516035176659795280483255579300286165583084736727235462986355908969149515884447154827587645176787352816389559140249570484637738837376279709726928276884885299973046837643112127084127315726572350291838614423707636345413270112569615500247916457001299411714209829998596142354382656263388070467865224346307300212482030214214060407054664570527828321503806125250206569045990318661850690173513865689624648945206203228081385469362773246465321248987741984025501607202851688956902949029276443310450487885763568155739572998669314522311850310613554904983699722291769449759742493112985093550327429221165663567568869911949189888925026352321428238440575964838753323090060387777653896340273635851211696043950025864716150921894865079258013105712328047562235015697207198444465969231883812575058354645084573631221342761084828462274392885061214415984252879158992042271342047343464422317714261322796748753026577976110098265064335450913849701307700701868847604992381518594881301671755582850819816818157963109488037217532040497341730236239299107929347397804782798079786348760285904535463348374357890474594529730971374141419513059182285709720965557805808580148520277656157135909116703855549857310188909882907195678459334124246802364277737812503546387286270222456307443769190020403429691257894400830076183672045930794833995723702002630689674177329149710482270731007061558136291877261626076900130590419204660814802878136218741766377725774183362840393076495282532078415658163911832394355674684731948395871859918129900647458633204350452784993299701301720022583143226842213384249400430343193601639842112017008298730764001829035066887029826351063687333957339658339205632894394238967436244976689814191570234005075813349528531993019975005901966343852228965385922390548056245206243444513689865865725835017038413754046334672978747140832057648551005434271311949280885108097267595188637170183721585915219547761346513290720229418783703410774771235116349005346659365709278166466964507603787110959194279836868327606240478419200949989119330748450506559951819949113062953910524335940368903860573383733552305232268138246037144021114844043354369697917681525910670068623902919618698898416900710369568324468128691055461158822283027537123697626268049338931819772316433953515993498165058727438037471073944336413855757568126784865531864676257198670164426577882145325229924208068402407240191679144934773203409113956554072377352257381160759447125157604342588079597281981574510090519154694743935838649221767635724144936742987334025079588834862194338091194577352045790643146085822321535322410812313851140631683096458116135542586662180569523563204400003166466244711882651915886368019791787799687327296764336965764998717680588276077680986480130750335633975718045919549071880708479705619029163660855594953803427453607282264728526004771566667145844285578025028911343222647875933161084043399316109820530924010068371039351540705700955378046316941440696598594298679859455938196469472869962259725631061543001885013217203612354980541769271706717758999617614371954763547297752481442159146204772118942022694388275497522027145677828684195003440976954050443905722410554517882819643610739777734181038788532804464976967428667115605007863184906896582187799141655173055990913338585142280664497869243674154228428532054717894765002485071536098259374860356074036456354053846324355829092573870998637994551668100258214607914168923366496191555948126837352408140598449724225097465780924559679027124377788451243988410739403233381955168535766172714811066204220859586598623425785447097829239521602741228792541018580103865152688654389833476105240994558924078143609190351017648617240507902970193680175673537776812595178224068315431990693430218635825502683695918030620696261728895067662203473944086234268789166929494552307377311106782543976435490983324390725496421474881281911803317179319253948322967207089490654028313890964350320795845059261026796490202871833750069291687590090741163415602878607541263330521716425975121103024091020970313153201513268520097576398028912185087256764466435676463481012266841086751365455447477575006515845737932823681751840239912000962457534566045253057068929110934511252620338512628052421143168299685586397376694235152579537940751086467163366175543148571132403280146237793858255093807143306872578918027045177661924090373760429633312831937566053922202349465570837628002149794464091850623094767842463628127136727868295200705354636067229884966415863975632017763893511021308604149855196108451975057753736691858634531641083364590191973397690341148123313065689615450732376162296045138046326470013790957571064344851415856251778913180388581532548981757221798269280485975528590128265705759829590505098173275586674293221003383017406843610834645886337773825229207498669861844101864420161863415739538324742041201122399260444278676706313092200637170739568361399243615557798053538362862058429709118244393539880075444784065771233510668121074550773367159699149180875362749215887772495092027153262769909041241856306393406204138392439517313260073461622953561466714582024497966233128290765687530445584605790460343818624726905908691747900986151788131262861819610668743319899735243845332167494774734402679160182393907624584966752804079674477163039224270629904526123473821133457745264346763803358026083370464018753411450318052006020177850706903494850377154303206799763525785149219421853575465412006420148220640225229302381876386522172275490759624581118150700922583634976021699342198449513430201993223850041262922046944357207858532183410784838162760179761089066292967766803126589000710454774958752464176676098511935238618330856196438313584464274019428838780994350823633914293656462193022851986233942202965195508988518156242341191734381635324327906536932053021028486228371642543239595076771444072342930482519649683255759443517306981722458272748940372642289641898653409498091828051632133319349634285429070473818224213173031704303090116031734403758217746707662396626940019798115425089128126341864838245923758240578657511231056198716111175480390165950124004265183558514282211835254526379216955124120621654417951022958016274431440908858931315712328865947175479608485871594527379094035595056360535474641947089790996001260823410443977190611928687650126964385610224760102338512958376789499951090703388088272852096107504213154852957492582734521801665087479343640014963915321318123242831335865932899355229680507187873904351875419229336903744955149390924304290543787409514559492632266346181545534991528986039067667826621660226592674998586992544519247923188112564757144239282236212498634046735332343938931072147855665192996738112599729211004436548280807318493058369446314423701500618188081315985586020628322302229185163145076110446449948381257096496094748397466778229082733251359436595606935576276960824135041670611695955165683029066609380492931718528078288555472364578346579125201638727355785830065507898872056983214117203172834992593197889616547080165972335495928776986344747804080465755308231647253846860159126948696556939257022205930707241222701837179858281600436541301759506030305854646600711015841857357063202364771638127950595579455083175190933655076408121451664346320548886283288580417401882227956105490950267898744910564009491479009347984931612592926825885515847443849789904096134122778501781950605745459543235183613030714461044410111995374773102021963852317935988369040827332798932898250392916667687928885223928372948983554848520025866085529938626406594819380151152499110905822962007677387523276678615020375759760361312042629940986058257247285020969254763073409042117500040047962360814376415410297988572475693135670679841105621802500393639069968182285791594941907816859278025214622953063500602578924769314424823795246890452908841948929835816984216836848540223343388567554447857931439761377740245527028476876656802258642338179937045344972316407997081970057031717448092445831350837825254210283744086918442320560801394780619601409021195730071987831661122944274959791996160407914356540659998286208421441158870268607204529807295343060407980561507532628501292304384676498948776828063854569827419592448813241306136604593869090450303805502070962507197201865344601089954351534738297661977079732504471465707063391913827076366231200656190142815669584975487316258579464187115265698643139970468899996758718227667290388346589003902810885272460148823639841205983209698870670726705287342032972893050365452978142753404561347907541073441622878347145358951475967162347755545665883766122591218154197538779533800015273023276553510423900351400606231209158605076390745508786308796842182017232072899752406940454634221853217172740020037896260484494153446465710161570578144894949900172471711223206893035709652879282065477437952130342947051931579788863985219704936762244787372343827906684382478496383710740195718101897139041308671861428415009892047511493824781324808193530343400951289055960321198449747622351519908711325999512148212982158637676323389141131904855869031677273350092111040845246877971928195437340466370631818509056761027733650251140949554342743826498455141700557469756911514695464612897949627300834267560736731378650338204818988466698810361431947952851229035907394354570228855629761715502560370171374448562942930920362469411289713306927972203551494097298492370278651333610744118623946504206172465174468844300979603200062932351780130179024111829417596829317913950045623120321000728046964640698035955117208222114820814302665300715858690982058503939209257464417080230957102615359782789926840257211093045177787684206624388544599014269093043820357252361041019021512935276227659385060051815062998371971064048719929201695895543641494768923789990680537367899709477321137994848738585818681879571522690892650330263060520362547567335040035465767912981071025824465455869582977407220395595137370149762217920784959670547093460371647476386928802679247317596572809314965162394837984026435499661452717576789096757511339961779612079887014660092432043971545594431650552125166245709001286304229835250091513514039989420102780698758170470487662263194026935255509180977047701503266962867665355074610065378320957421289962018477867402070988326166049285925766139299186098038165457475777756999978208400916237954330568402404725650917675327610446246604762953204268556556152454226860996389965396788293333261764687306687559649346526639351248451759235207099174305216305051818199413097475690586835944101963474314057441432640144105839708310952959874129521896481947880698407093349234785531715488539353100469395426698593111691708054621540341721411626975148973872927923295757839249417813163307864320241470910820209506764408898060954799192807848911552813734722269454984858374254156820942647225758972403239594390357894160288127015607937541350146324194614254808315600069470021763094889127519565313100255733294278550003827006104988787850498930487820358191460740330129741597828333184293510595984578284944784657500426063699835095818096267511325971198136443989371879891518114277917243820527031391701663725897505280770698003296811429078449853318653643076343285509963706584775906510802165784029419147717925543958088906614192482994979775553889357213444431458634041670475950380158094172523194663638182351936218391544619693199825187741661826252398742322558797213037092912531360197544264403050354029164638469424409849302021453622921954357483147139120879010590810331106540462477586158308054459927065242097649318857179264981815056457871568075732827933703607141487840361073725872804362134501840469880607179885387267045865887423628565698085882738715353919718336358257625580514202390421169933618133212662509936340000145077605167097275953934137718172803314193945357465667488270436145775509127603943297870931157881146989986638491081957665167185534722688852512168823190938121510363915366533246241716394853387522187412989631098617256513803998939733796238011176802801760823489452950825905143493897142156097581404615897284868060041884472862709652117219913980317117900777369524832567257066773499675758483879440579935982231714489247307629661198730711854754902676475065086084228787646892046264908949964789230148556324949832064108314153506757540413827696995552035540373586559719376505494747704820030788612227785007347820934448120552357915002997877899419398407599371585556115651781677108555533678197811150015529706465895654777908859229805392169565568240461723738350263329790633007536367535091819375863523644010013578606118923329498082623043271802131204431961802993770033440548006517461207222260590082583473135721101703311608007048062783349662099152886912240264618219038594400982711376900265257578293072318133322039508889926525772251018003530289828622668633783758016620774196292719233425709857261605019072064860886645207381859585977160972123242814690194855575709955108534263290268100908576837852655941290733134449289982132271395101109608999095360545301139282758188744225740153379711169374336176763148570296245496406752810113351444488406979080197396898704454543867492153045412393992502997483473728487574985715903719865444958870551113018744676669622612491452825995559684212352463629625858272292681901178965379930792757063727489827257519974979994790722050954889423494419080948113472884799534953350188133282721567260268041860488915762859390824200421329814594599091843627411868825030951129720876069636879830120177883350177579900470942393939930109143758732610816135927988631405641281184947100136562922945503357556246930785035464384532975345043614592321884170126186942225485277456136421263772934110317808528481472698749652246326849552560419550860173286916021321843760155815321321942390762013364018486932990042757612438002308824659401978280271423840162771908516461867215006335826031512550722913621845975975814543276942855790144456864355072961387205981281318970240729767151397979908933632209337405105692660111651597613949793191936688490222306068277698632065457823316245178168721800251090224701411367650487977419632590821183889270863116158886193301212768543708125439969348349256194482895896340918508962439308923357536995230600515662832578420444059139651850965632977736139554838724967958302601406900595020724593167586125704891962379648996862674514886641777114192812234921421779087394457840032225780549200288799471803838751183224376429515975300988862231724094272737434872436984948072598315426250834120043697192082124135539671068304176508578673965928369679120978909882917468203269757345557921294424539970860927899305287133687685868222538880811287661920922127868084810384976994905866477474278758729017836806211208696692084953342787827444336418582378153724752835532473814167949733453087543448460013332677288198180405776622317074402149125064894311856890224393128937268130592481775940122889932982198642961676907550559384453071002015265523456055336754956200977536173083567789216728493501954893095905751486274279554668973515197537685824287301577368241707944107291805678550174661581892475849759493595812090565842140162946923407260809995011201864455250463839047675502267456526238091450702598732732052171095668664344837399217329485094104005821450022921977649967350854521740603475451603066668097607646437539775592056185520691029516496951013840364288107892992131469240557893069409348711986933895181338645813404444341205589929353909147019665123423811460466492584612712041261880492325695437388371965255749851749298459068846545251123131833346000343650920663530675829445095069584057244897456282989177223202301698452266500701529436006057912002628146198772229494231796359502265470307798789281296805282203493975212947339419330268790118270643478916041819438041207693047986835209353739131635038391706148169887751780505563131536151805285963036694674998873197944193400139011308306277663779881280422059644300249385865013576998359389947701077083926910772203883299906084422144809196297477287374359263164421613029924012011624573612291824937925998353248257840173175032767309308442108859730103735733099428193962795404612451017809337880307008896849194825448471166532796641755197792790012231064305427127443749470810102856850163800276636580906292391969844397094389548662183785713913381492251624058145391595982930952832078329998831735682889242456348099004925225315583428630444111912771591183885640302107783706014140825692564334014560830662892287679157510282841511467655229022011927540478114173843518873335878212549085288780057431691776040607757287004728467077042468925609458703803180047150778816371647708631740129787110199132441789483249569200168446603997393708851682238589520729804965282356047606958828102269093649860610874314038055461481724763924955097620401988185637334059178717024323481945162885070372524512547507196247122511209520458979341557748207056219895407791283188483164240703910144803233466029169335200238217708422267834208194056309711754732253400766108371484643066728193348634091030727629549673959824914392985524799385253646499694235489125774480244791860515182494449642130760129645859060421618891228913340078480235841651392767784064635340258759870055124599369957888044196752077096854625615150452370225046186689970796244294578463994775767648926662056503398223777362147660363486992931964471677915970590235871233858233769983377047013405834411389817658159991886608088803340372224991910112534407368582774126848821823015964208838484875837177172866186841470690898292205499429128263111306227195576445575485896957653215897513099361285716726264182408385547686206429601413849939127036431745281527260526271651302537511279051149279461214248652632080982680915456761559055647541505210831369623925824993626350727078329204584242397592239129657438920494557086673080552133636415691102561113052855024293883725973864752622961661677779985416881192915451286394581529248973081525763645769357126892825559047909097705789762434656232603220101455055626350463676099981133124545093761194679835120318483654728139829913884003185490878540767407759415160683485041927180953545701851094849117110125273017008259835065966896945687849197887895434842998861453362778641247334056733306238791637696950951333520133224162198956103415098128430207358839654595007528200741039448754331028461933301804405108187980411096262969000106644611740038602086221584865347355256176816666461140048449463039330571705800389382043570102451511753691826840643595134179984612902189646932133655773375062321250093382823330088337675436345202473924530833835450585556372667707196132228077615564639481703577382910106040748669210712133104134844043598610982624847887979210971538012002840594728572496743108614746967883162945933155867149841650716727790753482790358173411590551327370363780602700776262958829679369502641688786746671956889776317902138938028061293273674906725132985831815376831274391984683312150774060807802335543938260919983484984854000612463822574005634022428770876462407046379190483363712338395064704296178065177479230995079238077881445998067516468452479632582657630744352397310126167821437642738369353377774884328636035215853039609795855573511761580060774184842663400092891922623978102956218354764483090287062022025798935972540408690731563381103785151896562240096166237290529402832237810072948435685411950698318311853525422959640157702433933022534183481638914159878512654557923559372626917098401864587831015979222004304555498739470141603246132766213286140349330774005477875133150756932899758951034069359105935390418668542587230330791529525014240901522411883507424502173902021343541856403387817528118553965563639623343000987424917703451088690448016266374877272081668913395047068510303723894956263519260023679399927213436332785094141840011945895746844056870649290809004749483773352557750862432462340892482968118943221053490965604476109332580119376130812449889556744010807466979665469783980736069620472926728256750324469297182758908569093027360684496691705528233972225938402319762756862601243346822650853409628454119339661352043858786543545077955176738571741567582339939707054323496504671658377878766977671794395378921686246213188755711957620616316119255817901910739972270145609130873877280433073214371163420732491455910723966167253919602287023542686670768353604068155591591158708912750646315658555665184870168175836365079995651955083924298601039791644932533531694903588617143558918539558123633494517468357874798344634447131071664542747189258246315381255759223738925791717813984730193723629281792915948146212187449994110240509233433877534603809473466802466505085592824608672900539700133863982701336080776703871473842402520550458237482948674880796888380888316782837616580127045009219559594016395732086720531556978625001955870373156964338726799645179462168716733916242530596887361448216869013873683559735116909113969703202412909899555364651085405961960079173734322287959676721718005673805726479938617807521318341828086183460782023269436468141121136515685210230509556827452013171124912260223643094278718619096497437826266390994610099345159999856772612215362752467948373708969863015235207831845277572419398646752416909648077530005156377313982356575786442842729898806812268010464893278658680335736805015645557046845507870368613804118305561085711926250957113365363202012017959094888853158701568890148065075373554356854047305630473085763642002780726226178304249764976148128200250201048026570764437303358918370737645977193765585875040015268465897105418156528727275038206836579230842110409068722099780867647361122484706947934540628528882064977381512689925518884142000143852593066417756663426599129002570392602860565239972162006575438164936267177838278708384161683914986142140811700003259435266532412034142706232684994936547640735345112808166699595071552054638728689571726463273713333906229797161825724797712523968592217251623516012280688709136092461234948940441780871213879701927301265775540133525235459186454463576748453586114624264730182045220143878178095351448800570029029568440629002090742422954062374550746878981264663527148313842700425693715926375793553574854875016625043312297243040718670674762817488009964335067281788755758119687808848464845358481954461221244465486741888250836656540873377653933605133528224737313504258611242502961768094430669365051851790881357110519557681294347660040625631571390004420951481395890271481976880922332497418240051369245725468997357183328024057707965256477303222665840827174032140323435175864242302229703841427431742620286735564806517346369751654151604585200324417554723094519014925226488868982143050694061295767842477112911030923794512056440848247026632539027475392870248741680134241979450656571498808554924223573961296837209798916225276408559535531673009376020986718168354159396061531253871284126303371187026856838697853424659547420980066473949999156421996349077310360291410723293997243918579059434612364971453653786404750222491330967061610871045797910046016396285297651219784895695517412402100536093879921901107512163310442964382306331726724338023141376270284935505939786036077641780722730217505823598249880781172313033053081193669333732574793470716996906932018246120726535351690700880089339548012677344358682127572826285613235780841257044357811469936533345159223689303749264151196680566267191576704647893375436263364448497164898571057789932154877540396725721129356847588007955687922924666694608850715222779240207592110264696173481729559841945672011471710406957398990043843009703801062196950322166226805074846572553172752566288798614497722823147581671887105119455457963381024126858841972358821128387583564217622896626346492224559643594233102012732211434285894325503345397829153771605536741160064127626583261616102286968606655187008086305913876927340573149909594958601971232646797365891927801875310887641126240913196057548607153302206193197841250135845724507085056858413953013341371641859584680063833444360699901966840924477492702661433539412270740488793534240545276541107702705282931525129188642026950588647154967993689415350096679680602126976766735531764197354806138204303841757740070925426665219215005772692330989658346141574448079148972287544474512430310792478158080327559448794019398733060815470205502835932241868871177015409809036124575115898046134972116316376684348986482433119840987363322308503020920831934056387930387039843086298274933621091592652923675172010553466488047184066505733220857585712832028984562260415613838082007481144435582633439136913027349935202034968751666815060911165363426426364719565991015528563829685515233475207233073790237113323323305200913962309395725528685060755368986643808403563300722090047411370464323767722974053211667479146489414153001922492746562779176677108817832679321739168451473995568125601214725593655580051399541122598350130101723295960422785381473667562388437698695360961240416662773784954035482863543719385464258416706420812784343221397546910785204990618715204647408384259187446053022639568940197488848787822600639496808804664810585231530956875176545760813263418743245865972952976794225016740396883323693395751330339958695595791627021430965799241950430932596654180699393550653573716121740595466696983067499942482804201905200502547332475683862150194939780497745896673226775093557206613537927749590723540287437712116846425577923216373111432273950928426272157330881911325829537116715922557222586049397912540578976589755362259933954511704122260188435429968445658275813083346439639139936482769597423170539542084270760040476031262031230220588061680172991994654580447182114255326543439420461468333259370000497179762314280574453499268565864899842595199093905491738554311346055953362415523789982989209522476041758725381106885650269311603439073694220210334396233634296886668585287334856889690521220768590443940306930548236522807207328901324384006960614960006212186615162136211362265799228848524620157798800043009885476854640553189068797318944687164020735670725014683795609813792681142749347915679860060974832142837322552468275845905558843570724710924670944820527781034285152339239733532079821887378178009802178753676576162727854076890772597462247361153784295030550852054463435528158414161276275568274577799069762755470773492396827623371953850306926192733578304695265632579713379687058627813323597964877474085551114678982176111234296587667040433649824161766377320695181663937744352277835523068629740563467875043069919620732189636719898516964431788268495865855643977697022789187844102618404957701456012823454352492345000306525746176229872043259983806061962011890233448997757011057844240432591877180210199976725195280558915950987389834201727717392585794111405587668910996711082477312500328773524561003084689332204468850187552282107624927004448869656181854493341734112786390657381100170614176950491493327692374171589805544969536823131099690134984717745794271238791622625382283947396437512129567020698812564851210388994039212871252664968896340479348752129718157103644572428079495903764237734670515767454817880818998838492236981831196479994979116688323636256551623313799605695519093020712357250069521269728328046387373962721200697413276283217313171324243457445691306660123609593340985912030417297609248609432622767219734698801716746349011012828210053961329892346765893129362404206025745859414953903965532812622771645079899586999225926609298990113347895190544665317304106638516504628839323468628261540537792714794103162235275021941262274058211224253977786226110116896207256628919740136727513846145676829643861411316520658520035805774091532111067264725392782950518454271569564125747159755707693510250867617684260823740313836423847223553121090161851826217565964568592196622716523466266791892025032674726888236242886693594506566526671110228270129608226383793218904413712780784109412173035235750624372617121370748195685761989126975039679519229837406563485296796670648244897281073683726051661480573615991971163696510086098195994678065379067776315258328587516606259722995914352927307604391262444606093666157895973258237218737497028907925624307461511912700641212149505364567105117026126988551671744638732763953490466369917889925160493210675285666846734262523850336418208071968660834706637096726790460078628415685322885273534972470002893358972895003349501277047831270795685971049813228649921484853464158885407245561060670636653169729979171015336557057868353668208359628119443503525147552074103538040684824863357050078414392360196295963142415364981488197170621518985811700438852058860163041032979831444583779804129746884880970609424191323444678998031608637006537994774320863246040377334401788749336970051199985753976980426430865077101248040069719315111307081973811034983790860767403822697424881232213152478941677319847025269979766840718619647597569324549762811926219922791905604894135480064966617772421255032474388458709655993020540144659482560713726443133527709680727187324551755140611986475726685425186147506291017637350091339732274446471026166727800326206064259290776619727497109443186891566307284887127137815165262664514020485622017478055954034556629418111561901628448076479455296618739989648012050907305209881150622784445610155996815533836752602456296653689709654454065021778076483710077463091181424018117248638447229787617716229767368774256518159699274998665892818802948272250229522155065019637751436355038610292869362084386589722922128829630413450244398150550657400679588033815593501373376011313137809890796860818375381588173644629481794312802727609604806362782965085520635879872822840772628575320603427465713422879672792572676260927805023149205620659358325141714913061581858485960889573958807351510143912762098125794946271181809723554389897212338733935795673444325850771282486821489414607474952981240329761450426278321395102888116523349767322146144568184514189017639184548822410931206368763123489004292259152554856375646685271521264589311623385643920477868809189945163490628741074430397355512922688215118939509061964531499964325080678550722491744796828141072408075349670380892719392860159185550654445794701244395291096332061338727920877527348908568821737772638809041795830392763730106919019323275841468505160494428044254884373323596878303768002935864402783935048994526668918017386641958551715755535468221990205971934671127017747120378039281937823963711721572152338653209003498906719309694834484938097743989829490649455788193907782317859331660942481549304292530330461809520361524780245391035581265196605251070457182890371237358123620344635735617355569988823229875877027989128599988816814011982999460147541194148023832744158751721241508620437360799688876966926276622946012240283553584945953681552120127418959103776452766441030412996375849504904702529151323437366188471883572528947534484876247062928377811036249938225783654488233189262275354564618973424905880328475896029179352266624968185176527316012770957184279510747997261049082287723813895340099322106388876823827475058537264587842347973807193248511337024781509159113875631518803773374541639785019481777116953184712822231086447012077555941239500138811829741411331295055349028161547864397592878697952962579823742116051757547082410303506658116452257951300110552996125039447033650188679633955478090263744603922551406977392540888728011431032868174947019395862784602671018252392542491658910117105791360936928350140471304634908574648261321987974378938711097062311391814314071269659505805250151370453154987227649894608557106913052759602776726348229053987680703156258611623607261407868706650736741278748733845656990879797315638739552443371954152184813869463116332607440968858185940282075807788744137344476487883044681105353835887058417775022867775064387262831023307521095552805249194868960584261738817343376569908516108564916202849538230844172679171761643895161262447846103120746438816056135905434469402492975800924747668230245634429655668799637809478893606401307114571735839536727876470872667229611873318285826486324522115324036978503684983015352438284200891846037619344807770046809884275180397113123530304145652657254878949249338009357900602201535282631333233700795411085154283671438036738419071694931447132075971684544831774917582635908439378554097855572347803069652498631726521650416242678126810876653621866045922491737049026759419033700327307291684254756035561869211931388423974652583564823691682953326347562543324118455437039266717841408574412068375462219509919909725209100512308885323128890718448374918282811865658681934004689705775122960568956306668241733656633785473674552420495170835635888474949583369417561553470830119647119628324303436829420550354547319805585655045509272163397433046015438231077688297468950525567843905586907866862222767676026593922902371824174765094986930950356044107476541640235321407902681112488331788496655480967809259768025396157584463483367617302478824014198521838294146069218709109327820440175179279970951539949394007370296690716364708981137254164420644535673411297540638558086891717081582562848562403528949736597012567422504641873194149488582123970100502308477685038620829999206951652314095755442397784775590996252337239302841831407664629141031237581718653632508117128212391883980538400219747813496919720266439666772937865811101468015826222607266425090276255219633991149659193361085912857994505205846044331362643732521499903523092244023267801651907321909912063870859873754201669119797483067393383713100927580121467450372453906127221329385635530520987801092503890818532718411389705231946889880390678039919686905669644718053670837560617182264453937781302020490292726702102434993400852578640967571069624722354654817899210377572197340048126776989791119387083889120787197850125535410188376445801579623328452417872644869705713853992307108683736005348962672049727375624030122093848975938213361832479193406131050085437227948319878204211458236343803455996693704338702258223604899988331609574594710940049871516833070812475411568523253078058283781275653670969454471016821434197633375294703094842672369655418408747525560944091941350997900039461803618144293598588622874630113364713919942583110797956293612041465262487501536695563608101472276700880010854429860803414400541511840766935205351687112893368476646341495521275999653659599921870647634379789836585691575852094961690202223223623287062443323657937849723180339914997103235263442245799394662723979611099013344401285328208032819667494047554937544347902060871866254896265840645052158872309543225598663473792028171544997679753971766188692507867082370664427425273448988793793443928280890413186118336484805109358536963486200019686212258843219059499733785836201804782135043965725347910302419132899932656850522085802571474992569507424828852747030084567014039479952167088743857801933654847766901097119632793720777478190508821222476911802197022758539597108517426612195700774901154080755966238495707218902755364844928149546011087536450945493261485339371960579694726354436819776062830769621007789980679052159042923171920449303835415696355470191037914462204848137997388559446054738107046301649386439335107322502609365086706742705764411780510133009008415179841703592965789678413591546244086655391686256879159798039136511887927233737202235908492741477658578596735242382227982812991877773551622818016805005409265611473336460479674044578445484516162743819434398028443294379884303877846087399983200447006094230198806420094145158742082045777742128307272413520176792833144747374510423296312503259004829272829036596874282645044764266715576882121065606222603253538851279914966938239921811167646543548278834951144802862331928905919270880138795441233523005392330700475013582872873402372793004419316514190640171833258668112272481770481178371817298911775369157300000508045251889299557374382718183980543943073666517585589476083740874499954057631223228001306370723235536359598631485929511105832044285313160706729181258786562361847261433433813345576327519355014228948392810874827143963987237195735338814127894830902347491932517514125889301449161066405562368816481148181711765216471848094833730117169124388841281368578405633446569033071127932141286006095112490686714053199653684098873555040324154365413508147518539910116994930731996121559913271559026400879445085830911030587913508507434849100572945314474627369526373109345989362150998096440568143213744289737101198781500749942726417611936582990669971455155011149548696612603079459987509856125270808736864360818434497259821118786981026822584210452342571635148571756087629357658250865973805517392044989816351398318979773646981196211928136446265357085416947816790258031835577381751270978645424672477487381439305802088119852679132651068151176477539256293211180268993760085200813437339008290290936729697140135459123302144838412917042660400091746656162056234110788220583034733084129819376829978353306858919590683495366850517600528702611922648922970663193852360030251564252977235012994823771296150048376725125382219841935407952237006573932842680643055558418594207727402879310922330182215260052762304814544808958365786818449280756664391144102722059769549090682269801430255223608409585543882549719119279599926586386162121532405700316292527648583798770989557468595599969363332191053452428259192980017919799357507148516266892404547960047943957560187133474995238041387308837872792074091961326724040578241389263216339882592388950607121388762252628639553600428559137502831000928115788446308349840788464707653634737112798915412214679151453199872006555565816435683909875715523410056472341173160103149865637422162650662746121281422118704192460514812287999977026166218120654501246094889977406813876264987635812737395851396512727599827446724276227626060882006040404690914102753233474714625890781482920726781889949594488940001142499420023530527622629688786966662191686968151950205853956708417668572689932642778593940362127841522932449161866361831471717926822434045691459156360793231446056146875668051610989970883225530046363326725958408799679956069912495832676608385720623294556209769294495236516095885447039749860240473538021170946434951187910813065069609621389433382766198075710765963360235274783454809935737403265204557680089890737502851776877687034621701174930883911528483997660359138921892033646710467203887575281129216127513971139812460545508583557095115383091806518038746172526664538541061924817695193950219360236792258300685530577538844122373385013420772284081437110499243036420296401784440486625497212895670608597627981592874949750458856956534020473561579219203254434810759594042264446711515226246968472654136583388341604262038042623980041681575719364985494095875862972298012352951778652479661759827573823973690742668539460938155761332938717885047014791566761616385048711289343196446238614426385158758241646261527223063750892671854420563515054291367657232350699258035663468748790707366181691127245043566453619951746703003873924688469348678440842746075876862929356953989676461890909731252601912016802354360455489649733380798911603388184398389113699194945859283082464130807163841042735659188730282889481593097598262513473511494664668750481356702607227680265517015616313368651099937929838061864630927548918724841459892070514204885510207207821378065901184409650686392015550298769972058637324623647626457884082561118532108565966465613579544775512478924855356618542520503834137503846479812290161897679872414253846846554928048595349595999760782341436082377481665281012991925500904978771616995992909868058743854962865357112958660184565006342722680364677978675342224740908896559078861850322122155280182189009751432142436416801959740184560026989314706000604889504367903602826327413855832515546428369420674495255088385502314279826686171923485875769147092331086481108815745344937037580149295161544728879081037992881000224021786305445566574371233969689750926707352575662024854156446645344097918578827544537992546807109054569268876057058877403018915381843874133697054421549013298158070915990266524037125586657474179258845941862272639035000115454658638363965116119051968318561621399290415167666941301267228052583441377403661881289711080047539521306732045344164773125939216297133408670492351318312667497112131067365441690875628928582269832601864525578617922315474925163508779026946218922645145136077273722304953187852592901574440661242819109063997216532466168739200202858132001065852136922633986685113152927957634140709257449196904362894109508638527021085834858308308094123583605071190750615311850014028735832478440305316070101783438490886904461674410179959634292596609354753405252677372119185533352320467290186105036924714583493680539963951542943827020174196874126358329850058557860692721215769034812442597988786222426259268735163545946501946165911067763414276121653681723338387178193296441496918411950984595041503288040597874780934129363793080879912129413685927749721532296088082694726490801926434576079131761406155295651328719275249738485996403541696032452813138428460784478154654802031996374714163645235169238031380001684159976860199417140766814287629187396900100466220223469104174728207732732774966670715363898186555214771385609139548935143720986813659821459522501645941936376346811608202072979134633309147995648305895730670940559229297331417403377371539227282498605588010527158048720330979222084054356777561595467604561608864454515919320955704633109223407104024060302054991344533920012853783213985467422666306315088800740585616367858012051973444476189985153284446690807827158185559948127878507542213760206483303552798868206824844585200915963812782447038496834521256327873039423030513117671168012938746221443158898097902505340243587392564627717033527662639544247702123892611969133773584096433387168746885928099324888540166423417952602930691745621987144858839248552691029714419259537036407015717970080476574101611857241395648812503412160226731171896830451048532978892417992239272530346915475733807839548028543389525590739512779259086371713690048781941948269372232361816280347390386008943363321981888280300853259413982677737836860948698169784045413538258275718079624427388725104777306822592482361403639200324053481500403397088503504686607939675621313449551347728681428075389785429265679627460561013724095610585811205919221409241111657727875456774635216556879353802347061301012557337365750311781323065380061646666481885413323893119260316663757498750119243344103186266410040556922043622173677886662103970688578028270785762333137904010388788914537488145303004206869057194092349903314286429402205511681447262947275611799179412861827467359298964155410721509618739946203177781806282073798795269699436403314982146930358521351388510282955338345308134166088666195021922303020913005221860179431087644482822818617192586105045627729944784287316882052697776924181946818469469060896455497008569486808206777464724336755289601391890088062382303933696688345515497497630962398196267255854856630898674644380521674576168922707160054216649781108661947369402284709550258547011630675339943451704205440456887252160181578215608627368143123410119620800295773380351295551391754240030983871493753217552929548188912559338552640936399056145578947870022764644947717873119604457811922259237579921974337718763504487385351348312398709443936685398371328404619139081180574863100134322015565542268203082327323562640581757714902560852847544584735811629737795773950463233104908002452755300091065225579025512625876883860203051801808678413038663276350503846455529325846969376223181269696474916115757050568985258686828251931015845578222074064758567113182857905182729162923119995850225169127003237682286928377258222608578326742768059237710420277620127535669838760051453690689733132240703448884608504829693071934356148199530094126072793303896443186475084324146741677923428685030676215369068535627222107864262246897934725543621351522673989748841526673319766411226040291234113080037123108029697762511361429401122400138458182329808477906274818036443956094509298717866629822246026115159598076220451239046293897589761841651816347766769426456892171298712509567612796818195765813910252351677096448386360837946746117295851498929748011549798623374032386875388004609042392991042211570911977949118820615101355057630307764973611239512320479556038886586887042438040295179013838071908289227337152509888311822273816671469289312929266421519673266075719645264046919820197172301945772061699996338822129163150371333816980869453794713015832716607744908616001371055671824284250248493240339568190329165841453784777561186718530664659339914650386091203078517385375088381488006583664406640727577332891637670867450503740977527934329675184971300372415062641463094620362837265615999969918609629128577140570852922205621590455626116130656394518124915061148727866914971891385957480601234560908688270659422716355588256561482851927902848768089661284735882868984080756585260111192361337153623159655040308611631872109744590190046037156272463444043121890682995432106349079383953326539760057780837777174785208358205084305931387772957145222582521244647904662033565655007066387381392187119542410370363835910503984536503273236313577339763421102980888553614998845207728403763833634540658117114423963471586346358984348215841246223562594181680454461787222286708731725071957660208264139999166510807642434300599712253304138148876019497100329504593399889500209181415774785319228378041379256590446999368000397385312412378379707863593256601534177450308809409454215527180340509231781307819874253073894149478160168681427061587942240157804219538520504542411231728342584668412424695730231883281528633374107571168443111516052022283960621425857207917493442982379542606563741913300881134521053004206411994413662271515418842149311781343630513256977784579281815468628438107205439299024781325613460819548447499051824337281400039025701304627104527700344668260390718200488321966397113349681359467607399425252661598697193310844095276430449166142335432791522918657462182822699620254885105592387566124994111605628320417901859057978073721477589527252278821356357278262438603807078662863632445125881920113299365943183633881720892455909939697228723170999851326870323701519673707567406288636191521090312321927184214979509425453430644967219681372915800857141639852597192027124455599703212873374126478404244513658092476800309478644669438181191116638441118049897934728907426808071284979086364025600412798941124245571835379635248870559762336698729436750156026731985434219889568825321102485771796748434464856326834437288283311578093941781515079607037173941543452669950094118137170427994240104317875411444801538757534496155662256358158089368694721725245306003501849564277957959014840450267720890029867907937433649572361017790792607201213540421227766307378389144253197060868662952774212969672077995589545651801641829174523268675009901400025863158179709392051532364925241333105440398788045927821811521150626575581495242966150549395781718411401849213044279619401589739571680382670757917217421223300298021130174437990423141306995669417231580380248953207587560924231275267527954463403937049679058369442533246428170921104809792385677626182537892874120295381105507153934447090789713064523504292221249855944020001893402093769176829171974038433061443606448642618745268534812702081338227362155235754303402685460409782490515490117735064647605377934723241419363552368899717641742028651277585299076571277948997402259180002713077808600410631871375744773910092748205608624872263191546891459199550431243378214002615492602649334465273885458683821930536816071406140518632188729006320469086736269739800161384540880199389199756556145830687805541821652425857606531456143381001428032296352243015199724332808008833767033564274770558935663799846753799295057463916711689070584729294905905812660034334343534793715844803265714780178242023643144357188563095736777547508359894116072444550461544195449586686055954253110388738673544594882384545191418111166115578825471487010724138235830356155905591509352757578013639779158654375569803509130795375362977667366743758036381783109244869147011720905890152831684038959908721084939298848150825682166638740650640969778034509852466896066767767577883215141609264764803881181571069163787820333282478316763728848636269964570969671909607846490646137545390140939729578423471329873101136553438684551152932603986955405855802984890474590756925642929988511478121674650608287870547284211692282045705103821347592622222082553290667210115904164424034948097922834153524988460485432287908642821833712168493455334675074703684927236000181486598717727891795901255002376745831788294952311324642849822933263404632379395276534985738198614884713461290369553470291968887020246119100750601260005514496728819959706137109326869562526905834820120251822476801992127667680215672564437866080342019562976690836226394600006669179665496497383786635052777102376030271077211258356831991180548909860883714946758409804389412160841049698655237860521053747618110813100593978500241978850765918228927090000015229325882363309661682609341437372120831962779475637379836688293423158029675972760805117527436277629485515749880191337348121077867321325960175379980999336820616744301106381945478026799873545542128318564704343403420473020801711414895787534072552261108723908793087243631993829893011835724756514300295007565110739381805442165580218560432309321921026979379139075075515794873175208569273480034632194683270428051442200789441254681180826330936231158286713721304660630734298784665115819777581890825426157956415544182044340432681156542016342389185357164269763238198771671944920258957347075497237169364908956423842336197147471530236604230401396777567031110118157944593488598299244423235909198654728059307960367431324335150125072509668077677666104006379298565212488440720513849508918957491639462979762478405288608851625451703428387135523109335755832283700153106216875202138391848296408885273332572744072484466262939084899919961461726496933992919326831715818658967407290552482094406738330640656848840208029184653605374379329393379221891140057593105794695324665730902478928764899571242879582346081618898287591301383057762662754729658499086867027071764804935039444564367137202838212118226567334105350783931517717295039272131587602936876345172423384476513451062923808520654780028466719593928198990093299033097888983818498322776548354260047950062409025712702976850363801456726766534041308822787318619063272991596052127089779670613727774401083582282339250480511452375842957589641216311717823153529326743642978261397237052316745808251864296954014597764517822795814035635061837964702163758422991485663922105718981300656700363188344696403994972944941372762176769449935960888432251452197043095172109613856959797464081254481689878756315052778607677092430817157606805380191429692178332615993600508675911708256051351291951606255672501542759194754924818323394625557291691529115662849183518340217054290106838898563311247167453022992448235861362273069093761573526415424306696607958668948738906601641969766872795671211320512869377962375386537939054199438676830531891708554662024354005381297882512332577567891065611678864965656262697114406896391317188014717569265943846570779496265146998501997570166032446515204762270406102485299125340490368913720031865908717271630557600855632879072610299378152515868993339568750968141630412796979047847141277039716944683991911426647014566864155907023966418662738092997586587746356418830042167379593464388662249240668086473673150857395469831039090689418967278409272298819650742967332386161386649254175946131865835592838028673600099939016508250955553784425118614504082525086749288878864889359118344798233281421133856936456451429743936978946246130371330106051968439340182127163174437935799388702472925365547388725756376295937407843551973518342683016649643167310556791035865018114373628518195246817189182908466820448759878144658788836100405285770885638749372995538916216731718321542907207126730404232812750944936272451635027183054183709924346902602290610977013867132435682952969243936316604893230004013120599923831403142183292617057011071807869329340889428406088103091908121106252761534588710752833614926794346929627204877428262914829185610895756773947711158693262206536507732256932688482773024103333854928283313774220217967058003246689675851011950316117875867320111201226079498250920015640997067793806476264315087681606155476220072470913622527772468033290661332965417130407705365216001629111695530668554843698226315365328855191944872835996309992011040318190178580464389577581412707844151443401107387969955990770102117154857296649335853058076650311193644608920892174895922184827709277595036652601824182119303874364609529545528598713471811541281846512454614616730133193031013953416060975643499887813371004444942070905515598297537809758033549764710208793328788245457475974066300161255376083680308939892435461290373314124910042707924739021040240117333044800366730907090404492441989327471748007093042025697566008808985300318038202686252404023111771094069578380711778563891082114131055424396415558966387141964280860242149526964137869843653277382400148913806501381935974972019536428458992243971078535754038354539319525770057541478608200131472176615959244095531427731789479433132105426408872482857679371406870729329552264845609886614094956288839848541617129119163676835314082820214062130141548654968361222158455955913776077457230905013886545156871271875005823851408600399109495020811576771429342861706337681016351839975432128675881723675373646107963837131985713753766290701423679838705434253441183387599838275471052800656441767705949601610120647172674844399210414048697501841795189797520375316967328432089957454139365674033887550595529901585532826340028431014663019216411358458673611242412209309994128413255715984075849860791428874587676431079655098149499613926377939766884135305746938271161298074353914016983294663363833907586185589040943776020625270419991995602085735240605131545411015342513533573610143532265153231176520508255376079832540636325705092311801409968486204816045205135733065981314141886825032746578999078866856607758354233708918977220780176971699976579221358368438212503745799089463494869532209108181713711377434499855329877717460990429912844948585266667670751876013933076712355590507121737144035714970417678340042154505064689621429144023668068718861749711822917777270233942057771057616082863216217986849281518426937326035186258022813398565241368318936498413168076329539192358465356904843184474729066824877277263222798582987916031754146419479048530559830999053828055147911449156908440115567356355080930095967439985377412592931327857629544290779092787072617260562705144011769259064973183448319836171155971110209546571691311493377255739659792436106656766302970898788556521768232658220254031774319974413607052460939166817583788676929788069477657933712326798106308571618472924322508753180585361291498008392442014005723023747074648693159107661698708351190327406863242472894057982866159466899830124934012220623447911596237798788727410870838573176405050961533287946013915016120875082373824073455662808542359028523222055189105401754062170874808695669540299816034765571967584607250239545824309124471841910699556930084460491236414202719960145600427031763890981722012887844043513176006833428556394428632196816892707992905435066009679771115010984313616555728021665874317404424188158193484397977839764928049613226596028404282308369026293287759874238177329829134502308225619448962620295359432270483733272390369302115510828983113769474985765500524000320624757573404496670316070293089052572377645823351588530391924292575717026493511309331397256941819048600792733922926262478159625159264347275871818111403127015606883598425255954803254635991607569446420714853499763006170216194771763476193495593875715375299680493619482869331913764830738127997862192567939994377016441788363047729070841987825775729996398625624297021845171999581793066893999158141954617659532125588429498860441896638722356003191326244959657893647614605866660726428658397006656032598025245075898468086620423326856689615085004216499811646863349234988329012045027025542869611533541173890486134343134944817212554357112948626330985895829893652406529284573977858231726409203788430445819906328185384959816615682803752609125357895003481088843380307636764389371250177072955602567808175148705099829479301853760822857933275573211999775094752330816607770305051384171223445637893907495798173859189766946053921650557157447610000791825288016212638768578211889060420106362551633071209386293518656310529228308916266352830055875369508389973936799488930728020739137675216255558958857441872452568444715222714448646043041507283363846946199336199201679125549418359274086212078726624529288058825614020167867283879114398019736876082997164916026093560519886881007668683313635483902409757932633081590282521401316360775976892159106126223414657593857027376622788173990329147138367751952315092967992564212400574374077180705464303106587457163363710707206400670177036682859716701405205613033293092894093877929956264434752412507231567687573359634423390666050459903966876792808972543689490859493204678055455044557569069652502312355725746604956343876608046253704950074609223270575106756136714386717324528152202174161564308174725819083026577590678638083615259452267940799368116296671368357062635185073343624872662343302269478379978763968135950154333145117732577408384700445070991279781510067494458961242788527015298985789843565769688107540249208090744950585986423516480025646949532418939133368408714332112392502772245146395926255281965536777702747636316891949270203347900615108088127149251277156938987187964556947927284239563683941001177248928067742996874853402191348098479277974859942387798511912990184798419530014846770333340426401615229644732885107152465614348975961881824582833702140782260597914588031340696243981117581625452613633059429235117805209581103178283944006695419100669228320698612524415609999188986064042266275714734002348257426187318420972636020730558697054612255597481495342921587883639819594534728283266850054058122423786924451554800299506544702076524759809049475938334344855794796888200686426541571758686813471318765854466280007007578516083557650269552144150513703064047297144977105700135296563048144149103586653524125771146420306412328060450493731644017686662131117913154569572348268862303773228324543650975074945172517337168171359329511008395124583517123002432997687593226276319436803133920163669411355207578900516834400537541165290803738093599629351946838104944582855437022311304413354339564767918526066661579219906928842914394012501661461296883007764986705746435418919347997413680678939477750482725494498274452579218606937267071416495555987197383121429715796481113787339469140364677391746746874186737367733127326536078968892259847003871810753910094583255963040880568308084497296268421699638430642188952327611544702050006447365338422830332925042312150680372280838231263308177571106835956333890291005802884219930856228759882927571939010132483695957730976503852833579745510922178786889473047854438831345736812346447418457854326187821163096773710547324631193673934869259672309705024491251010016929546506787209412312971372022055341160641273709844153496659569061936786191038367463593300189481554557447698852286782865095535829008875097960712336569724060638922163091038542689218386775439071157523129954002131283376152128234820758312763504287930800239229743799758483305110953582345778320736874317036098842370655425303465818760064504603407528806940169441671900431218298278481135868354916396098716530077867409529670311177214080805102855427404461555737338520461719504328175048881861182071170916057925684321313657165772002302193065114707573700346433430415786664575383441906598889629952856161318294347269892861028379070910838964045928573593987510766663517492513838681802977968048434179380688755284696125646762731094205502665536316422759561100366221507707237964805085066810519616900129840256913066723554520073185366983284995911971201169612349179099236618094561605215006501035965818677293819027555949158800883054371391237168911857580170261163909319039301747538256866429430355725696755507766700243797140714406660708637118487011037576487698939119635711663075739470786242523630096907108010698061043206643001579313411734050504257284199980372092950515156349326066799299069946731026772746597310187056266857700025284018083500973356152305449311523527261454991140228728274041752024749060343310490801032856037732564122461486397333988417118847557856011725548614275800154001921602866777732955058972293178816107858779348936338032686878510819145590144484666041415095546264061475607209394094431939297684531310544404351665604127276322618111328340007843463012713567851450959867461097279854923791076515215886513061571111550323834541459801650828763817632847065818936364369518853119438188202502040282859686252532272162119999124872409327125311376256809118012125991845398896941588183816232512636238040502104710361961711160027758160166476088969904698164527788636339990529148573304342390439063031609675353628794610334013259403205733768881779112465694337516055248892157470859724010337269303740525654717175706386978700735316883871772825025903385634682104606878410539021735519736868193352212690902035022716438674844760057969905878319625321767228258648322890078916502171048746960193993858224572973276359059557426049245882383293616369416235105585908189519594419143091062386729389277400739930962844110880805512821328897933883473968462152879453489776075114336037368060665122471999380227744895185446235637085868500744252588349410094249185419001080521570417545934013147401647303250071381275402546304260120847881115590322725492039742778715075787508422367327872758655201387248095845887526462118313716830336451259624539126124688417999865469904609580621509598602428296672811597371817517171156450445232585505434822127689905727780473842187785797526298521107881751374613289399641283741386306015019188857040782198298053584301813412439558184909048911356954128551976933341654339399742929359569754753171616699150442735151396497019375603359319539390084975791500169695504307121617154233136728489383467383887203313587219588873182551229956890124305146317125534222914328158488241123872836523065095226548919106398850404638452326158243655186626719674166562206676389938515914448523916599691027845744121203274564201053849184613083865497746232103470569699836869950244963768111522797991089982158586736911236790413140812336363271366978665354469521951176562165767468996919807887331593647007004794104521604846856203740148944121219031432475936315062097079395214056201552257387280622094718513333695689009925416626357558729888508268379782521089952908539307493554677322294624746001023965039147590222652609697449403095986692178945957294502233745400633704089770721375096572585056708857329702613239082773694959472463048925434639883753021603415729867756729600944114228248072186359511909654550605857797518510462050037260559261686617660587948803420774109181755380049744678557283537017670701354779631152084349514401884784293893395337394050747852885878022115159217203244805446595465837460853045316506500133155326614855118471469085557827830895898925152837711817273752384187694499146605600420099827763976796096273558738148428766017132585726405120329682958219179591087758324063978511593491677585371323238984962812731603756826584028820275886954158082933625829441226700962375924312201072095262988888939250547134047312936525679857838288723175965942875490948003540310122415102381173222216192652139151497899388558794735143172170091522475928389819093245073341396589267689525059657404597261359162994475148804371010019219582204439299029681400974175705287497632918650505997598035193791675496800213296219067718290766068031012595484684246344076544395826648301081514224437030508344188413650379341979892694711744909868620398362706326575225778810310139257810768934597081863142117784627328424185691953252918929856015871861769653715328168057091051057350107647492246177969534341602641602329221590498991452800622029043156046050612087528702743819201361852976146853571649938863376763686793314249371231947816840634688266834149981138270209026863685737256579670357462224964245960019963859685790465291425299529064143058561307499774494866743405403020961374537040832580269165266429162083401213253273797429623339672248405742348516782663129278482423505004304009916607173296472626332401280894066170152803683955491690883566292406961757299432951745202307132104288399957655916992915509794055287596205445911048842308788009752364877044421884953757896480522380791164595392698661295574195874015088731772850933245771454587384150868914981669138954522298634659262112976458225602206338009020892170442614252953599070797208316563613413595482681848636661420704730571698568921764219539470692164049845396014994537342636447608283648627990648092178298739529473574565242845369998918127071338778486189402848653133661148490115013673647380951324403612132785865074714509931479171314479224097409698762656641227053366337624065931289615186959122046822926321135565389881938722220527184669432429552376648282449073782720886708492537688822783222684631837952386524334098143605991730092446815022485594279178586606043491930538521004030244923317489770359414853166743616191650966669769012259081834053886361476259645384383420097359136680062515235366032287092395795497088426444992563850344331304349464267523691176811110237480905413504741757874978500739999071619753595855668072554994248442811523829969726540993164333292940495344939627761134882966073922705294535529776235356454005644889271429716479263434193030963481301240028234341760286268677884184895766257706511720462169680743124907145155713003038862437882599254001448388401596730236238915148481607862552134086182285169296038998826317511298909435557289878572233080969124043348303304409459094744944839926999169769584799355758970851514933712099261325396272900596485073660657485140484430465097463487395143109110205422187762749565056509578171537275048648870714661526970131462852976914936162188783851063623402507613070683218594280444511032968963590083233274084682481825880043061975635413176893669022125765062466475421987458451874630618771073958831605665760197202710051619344388036975488060150476246767618625272908082690718729215964297288657897899312638281128886121047509581052177480446655775536378928907907543516510893279996274042158508833871885846224340395103815883736321269798108436240135011606195132331951613689565234802791912803393217030692840810973944493436636288085797202110945633912098966557846505966158333703214131098988714013601411064611014059912642713009345698844748261953310270904261827711705160766484026105102007566164522054269706474434864586810457619527194602571210287592853044726252247774856803485552047022451887516160917562164176203342288531884732433840697607455973675872812669569338251345728044092776562998268890407593022588101533015266505415713385203012086499153031536393687544068990085316292047975879358179151550308335691863702262830743207700348468107059347028610085301898245052243806401903084452753509510232919858394242923825462216759984177297695722792376336120144603524184838112458532317710112114312082578063717514281385152750682483101305817587807649674591256156529909947596364515165197048727351540801656977846089641484026943619292947247658127489734126974124942897480710633878858840327549214686603629913785778741254919877937340162792470469911331002572683566202549170340598599803701582852805626340615901487361023094606586942057504434868435962054675847879108468369866874575757507030510879773523606965630919873504418358635141594607771954223009105317537742826791430799402257409384336943068020782667194937864214264329670964337657191285696554920670716533119345452412413362883740737659890005757289590790392554519762249935951996348417974044863536378146468531996739387717830360889595948995848034798534353157344976022040657423845984481053460044596393847525953838784165250835295410922877334431020585836031389517079573249163190979796748546255700846058038433933927936793879605967020793881786506756869881024016643526055258823476193682361154432405172959159286385092630544450604821049753698451375749689057766095375584929164123853934626378902800930258609316943912330369508278812269078142617941020905696964916907030785623488656856988045026365395196954226555784897922438315772594317391240712330142028962612307310016067252129148044626671994980612616140563976269702105868456930606767239715040906778572998798963627700302578606711463936521632008133366009547738274506657686823027862987089217144604099895791155572557390596734342626805360347109193077224368093814690501264325870473509607238381651108914819657926585864212167430449014003163798894277640961537090606667247486918892249421506936225204753884835168047706662620992605730093288144587126806259078424979812309396911819703026412348990441892514380941436750590084844443445472473942630562501042956412297245487089004791857387482403292880872975601225566869958157819021363955992688957926626901704410023546357999222053617452826293959152418627643742423760319643764116547205604827815450039754738944683669149052527188072699024348361922232348395297311432718749522976717781282613086967517609307528237130035968921195634843482489122482213274453585338362841821462544758268862113102103430760425207158143446271560952701118534856224106652955941373702067864524645919832509405627813872169178090865732663561443284643358300214067072096553025133233144277494907923497835289504054102289767445048358841974896406330571591113049533489315528680302179354642319935250210956550899735661383655079276655431995842920767053268522709331967522350915997140314600549775011731302617650093439646888341611673033690571343315519084501055564404840964867230946640239648759860536878649401645363009603157786862060762556512236922910070253657947328228618481780609459855763167634212440116993908396256660192499777251884980323575284059080968549078562125167165115071110140975380026223806986316145934443681005409448212754770485855207164702945190726170377420446709108339950984060703542542299020174182569735038329301942012284001384693693515210929765919683393480716795042475220007022762957505639635866499980687433282848733153584524462391757152908946161530937139319080780798202867501156039434338909978074053728338634811925343229997806537302885834517892601888681332105243130144048425182140714058774505137042361196445839263184919455419275057877385520306116218902397625667603378631598348142047587579379267340096650947389555137986732497617622857922307961194322209812624741083098223014275879193431342621551262138146594764591242771836137670109602541363956820092797179162274153308381761796333359999888290900354001868077384187774176977398414232268819932894217019404474437226877058766212423367328573486969950428762773380918075560385827049211264741687184358569357390820540586473464980035594474609634044146075815089136695033890453096319599896366963320820682420903899080827779829239788731243901114039988781141972627746429375497481458860762563812228661678536978429989167362498254407540219880886580766809888120728894395994319505261036719764697566935272931218372051729595875514142410901168384377602835157169031443716710738647861049318230066702574723501648104089740807481327553813192953993192384156806931377921595749961457683653003998945308157125868637745651107171665173386058578855863085661724162068975530870410940689047300525796608618469999451129744900829163490337320568942254530522991178976012164335319430650439205263457133170137531124264885253343066728515873063743300764966355550211749323465358394525963115327654080817830340387827899899769928668759250410917088548613522760644697016995807723397517251050881407364004895951257770028482113411943686845410679180860133639228904256130543906923664074713702560300387639763650031971075177575083018755393837398657255191923514292612984989060772901488500387035645388285657821097052214716442207601540708248652491606439362056312454085273433855123001668667635636761741754320144706898520938499417721590283434689917611390934392433177359749071610581626459516633991528451134720605295376270440854041167595291988197514192566531234242700425996864063394916803555062505078826790890029839743743461371303945988062830966568721305189928779018620754041478126370085250845513589593824776315090044836272693850892027592635581674122280670755065795706268634236551536507035102328334933018502792182152250047980311583566974700257516775476536385372045005233325445363008084468024921782150651107718013669486494685924530675018867246994963159592792800013143891208628528748094370945334455663435068780651210141019881227496600733441787361384200353637308120774541959100470875989985149890047506599323356441271139740306880045242035552370447965857707164986899927144409128628335881447793970876204943644569397715612556592889304221868995705478678950645306713892299871026118613576717449052831209351064379334330554106047858371156161486947943850380612902341648141843960801284100543323784067505320247538417218763168489211734567250784603749195476066739566037542141594807722554430036738646465959799659792517219505738842235974328555090451261752011954953570030540487989099698040875813586384156673371420462584118479934159304500445258463834281832081134123762770123946830125450957543220595284488980379086626060434232378679478734133279571500029961521751604771497690762598121703155255878352604150106027982931812259020436197250088507764657969161763578768747793219584971739165142855502707322641343021277118301299139110854750714609907062220973791241096974731417812525967860436179328070551065632896637436722116075290795457206510248253561803735380633643011705639313572821611243090365212355673143392728857347926569691686779556548398750409181880604129728705760285654607809027397747003732002476447505600146848290297459416242164128010494556026915022138359548928002405010656274287873127213368000852108782538028690782138815355317643652257860898087426333586939114857595753981484628119847271539312699653860397884435322309332929220193931020451999188250294703313297069198025676815829257506619572975332671440112840922680596908610854252999049206851970421204781602763682099693523233692356827903549166626714065573886850594770921162952639678840066600652353123471533541401378514205862660757108040041709490622472038696328519006455337680005546517523096102641945886714642493511121527258822073985407899847399534063595065273827317178915755785876927963754790161448865007911368221539175771429932945740624191410006250440620098779213342930627858288911094916207327671954120788567213864599410007667237412927205322545012784394920452354287125011750270582787273528188805923202469306069091140229034454088166270141085392439869656967120781098640594061100336839081036236868189260146769596059987968722416634169291929187777373820897294834465751997329601864029481582853248040356133016675649901190597287408106038421652658974335531606085884897690524727508579075874933464069719614423333145258350630273297975591384374494739266583669356032655563020197992149455980319995633065296561210922698127171811036052004644769411802526402663254223045508828104549546413580789610353509470740859171178039400366860569995693358025396253970733133107772851055323281071364606412702906595862389733286846590503899765617073743984834026562298609183761099297542509855617146940614226204858824861932000297681466953307154785964669199453123862769011478180552934804042870187737596022827147221131450753542898799293430623988373906927563815258856090308437442644770203272811716136591396743292922393150414041427025119073762188736585800526537461281150558973237495042351634591995380796922056111020621185907822215349451939618146389063262594416189987500684055600554996763259107887611755838198229837611368838783155221531081321260897709746841654839319233734942506248885906839703363332158734251486049212748575686807141320097815972120139495245875880299026738616781578006099804846194463125390769857671865608143700000477956171549840133856788241466867902282603476373420339764839512487015712851216840060469605917642361660104325546941222863802293401419429277835986133853990195443704581022676161504650521029777265404420448323616435735030248041030426362823747470014796886115713452918625250134048983456227853100700604757106096018907697184187762195140033895711049044114649934490534255173921608062089622202419227070839263342079115848536002922492884328784646441758490885641278911626530238204789251573964961615898375586585582182085839878233279723735493098312231404577139309060080174658924481825701681443461716945947363441908673666364676558709507449695972392172488428921841497637094522968654495522181001568287464049907780315635147187553492445102166938165011556587391324794056937214602106456822886316364183731466396798283513754718480629429195350466657798471383914275362528372562601023306489474032377146234903344148736410826789480007025230588574133924311066501277718997195743841934794465574969966332810994578224132180224765511787405526136955305412488248323638275702111309411712879174558443468547736528146345231242441964181928174013951684169805155943342600342246809533967590015424977234513288975703869241632925464884177982707356693852495973047416452804404071556664850838929142821776505484832047523116309400528247508865437750303262098771979296879095243025542916993753865630951995781364439787564044726070971374063613331002337935120896571024778943761404425403169581810017322736399241566489007430388125649295334504774921643343294992779516853780492583710459817720703582889909149437872993757630088008414622803329750762950650274049777097347729560259067032913785714033963528629879233679946463883721813999152684679970667282069686654801303818937070199068567301134836568015665296608367296213540053201802296281871763341766272362702532843303212561574372104487397840017317630739818180808369738450200621746907854635149822310108800460150291062418372084403350131990611394203835772161800043744836557004096797138233639225261829947734417093518211689780784390867202855773444437822827410866201749217869075248200734418275815947298692312232265755761960675768293849207502067548219299575410405221229714583205934629730782228551998245659218878127799354183213537100501793437547860894712991438748523371905596104989313570429244522142263118069841292685241157726459598801384604721487600898019199337294225226662529750809466402546683384991967354051217476557315979615505844277248068092293281510756440493765295656953832922842309056439860365148574595668130234620952697024271630999932568000866095503796986930403199262824416416234536904086861189423802558461892560696694404138044623328195869171310860986566701165722968267212644598269436258838442005587167443215053354997134092514290403986411188940800729627585844454535568844768399857725222948028125641102458657673439676088751161094378597471018939935438903294147582895811012260365391588463858139191306240479924712501201316894634095642641778950328726711712332096773982429877124919368458204327177588593026473584581908828530091645900123173933396867507550903309750426899183161715083261171870697652715771133528331608022567033720004387357730571175343841304131568854804287464508965619590320590365042180862597026456670829154795107289266318690690519796401585865584822725897002926412187484269189342699848095403616644460528624131441662329023721675951171919611965397686591558305922184311306952976886099242524245390544002244935954632135145040552751014601250637853302623505165143225729643101004742226597652610140150134741765551141540649469938890172825068647058402533341205529428904576676871585324926692756702809430198858069501683420302705305361245549506735345047340903968056568657253950971736695435376875479249072600884760240671535771388258275786595637549414530064892559179896536223216799495530599313293560304727940908344566015991347697711597477162978001158439618850017660220683226826128202583630773135161833097566769013787965322044186143026904715417972106149254233217605919394968638269065905968511895515941447997185788453808357850362755845368632483812048698959052348483433437256463468866066780503845711803095222036940194387903516289150075545809424481479403037622132203533716591758172223795791466103911409680713779869433820958288597290352404766300099769541313725513309588435923777276054425961644234335849213488807905003073784153544691049638095466843251933499705347922952250171900661541676515737924114180817182804165563230035424108771678843068803740424508526064336626198393068343564832657169191268418324191939796594485464641216484973067592168093897561609001458039182087666744380504902826680163342158310555300272603316853342779463202837597626207432012960910314585560252537618433341159013963697927290487337147679277457261938021315065175803997083804671751875249018147977505423594443140094579234673234596990679540264628933924584356309406964296206241812378228489110773892203680515663624715899462511306380182856689907273991149978699039525878235428814026467037870320283397767110041553902426688341737709162771133512723512051197942043983512150321111625575621895204412264002427772373021013131741805250367022939918761249930527539681884088824001163694458581579599817564272985670890714449401867781482088710279171497116839503457083205598326126408833438316844793295514494976461341355268164149921634804828864686331381346373941910648528945907097946043735040814400309223488834686480482720128822619695027298546659145666375945118861838117394012418052406773772222617371313148176094188044944854596329628135719868586054743710946227747746259233268860509054144002155998787883484845588061210493588849829006374221063286311921134811434920759314390087087562918175200260177476558340206724808560057139396936730557301382952185939380361904297440317756375040532403507318080226997589919419918860127050987310505526393757241859030422716548743208475945453904383675362218990572668985323122493737501048386694109556381688993072976995365491650790532841324314640174168692910684116796011138859663381274227493235322834169649477187872598441378622440453781769829393377516814828209593267327923390298813936207557496390623622875136420258221812093422427408980100195984598574899510203346376852853203632930726265761245939674572904580158142275595310804368882882113736439990468724028944472248047960689432889194403444393304333714604806514850246262739149312580596849239233912322567775261023291749327297633557552460292284410064267881327327355480764880209489417563004590227273273190235910450505789306910729621196287728690813294346430507739652187984734956533148663309437687782015650360505421152539056269716374544284238988515053025711650755049509936089223776749264003278511169677664449987324359458612501361116734121979045476470490722882240906880971635001018641303710730830113997732836167626704630754590301677047654058487462950668078324884379544772902355053170292492004462616057239066243218328767420712118244935341681509415172368349574905994238234092920285359415883084364070272976773205058360436707139203114683144234790662683653651275381862304673641772404029980730454909631869390353554012536202368136506903870335106540677115061676028296999146545156759765507830323268098846500312446282650768662972371359832106293453029241323313050481880984482789390293226877293048806215801166410411503719046526764436606991926350223429541685492802284974684677397974108304850907024588466877028615867407905427348595893953402287366702249045254561182794502379945011182133496298117761419414064425808212162502452838946641044252566536121245979895726370489134213538739019624516211519253346462817496451969638568063177081061954194787933051155413367004773718327135335986892392471513573844213524693174685847126206550684577180323520429824121464683515740324442059439266180692491611873835322054243872090215662930532993572415879480753026933157325823990786057081477879369190829568795307239556423628068150591068046019963456191161598492461503873348219936920154509057187098492195506573057190244093867638883835441806226069263754350619348009581292739421381231358573637387179118887275461577636276706316988515809873858736871484851017514469615257582571562699494010817429793424267263215220653765351781508788686231609132481163834575770179949929006243378475388800893396800179013683601129144481070862884046083605016269137588768292202474478725063177917597178050893456896585206112007914170450834660006170139710360287274558316712882842664390689982275283501357151022375686973553551837894907475303601889141888707091348807427810436497063793482321167051495995375406415130667760875757513384871283037523539276710810835774847573585506543189189726779461576056858822255928980471084195024882093945883216065816993363533970799438418298875798254432202568405419322520365594098465205917949984861681594731940018832578215228117160447910619098381804376449366189833775419411417015515979102821817011302251209604945488388026435804715149590772903352968747651726847793049303982703657927587506745761128568512392294004678036973962534549054900937415221383642803843211345359534439154427902505715682261720725064016846048391182550085028115549981058136066466916792104216757218302828183826622817565126560278740147713123743552544408561349436001995801174581821344951910021320748388231212595803532655055408163419916977468977052565193243843961240763939901098748040658971530569940811465784126582286531722071204971339141549600427381604029312000116717489350531337824318900725191379249798046509017311421568325889575826927548312815428573997660939065664606782285023288860445875480737651058255349675390365722302642124020498034941920342004161440360592236278308125433907342469708765266714927953937498226330731701353660343255595985416983437191767362117366000855376472790419851252766635878251848024781974120771862196737953809018966163849844439004886945545136889434559063786610792930288494108112101576294560939861891666961061889334246757463689423105508421813971411960710706081822473930719676594022460582103209700793681091734585921580295139593896392393244396748431419443948648359634566635684847491861294002997241701533798646822261486139880485949913180198164520110937662073964447095336708595776837235094305390532329310064132148560697121044355663052306229991143837926935630956538856155971112077711180911828433246504939591048940955960301819634907383162088861450777076135708703543001616866182624918304945914367546932863624408132579457803588601704001901769214937058434544524519351198257542722722718114765559521207841162472033256087273329162757178745523445227635158192089222051965485186474258005648872885052119293018218882935478265421965572729011615851341326297141867531208321318964994757829651164866678082189196319018225806062415798565248211089268871420635141151652341017062249172429800429273111118203385984950757834013216169040398792994043090297579444649114224400698819558320410529126933926347649820034151379810949565283012079737319302455153076741599866855526429842927785883118518870245349903579411977074463917269176035196631362145005259362323350016851096783592077579384881949761740078218721789310354986826476254906218484752155267251888914593097710459826086219268218505086004489960932187081980997125108928861831500871521782681044994226655512112534372814651181322516256881824874992133311801699044286796098753148694759620522585408247395696594469978538485155132806986099074817191445661794362264925898272951202020101813751231779260443315378140418318896805024079737021591151379229281932943543415755252596343034849897026638333290199695854136229591124875238581804229542369065448177668857079579975889327385709180344796365326320962745379608232242706627487185948928359095548496341157713630660315926174296168496161368471350262135631248812159462395313700570391661837927772200955529024494494875705835248558652418622446372686094148930260817560464936919233114988013313326200213876430163799667333326216945769180202570608750794608574246647454018313780016155061956134947965335236072861967814236155033416981203972419511761207687019512454909884825677083022736043213387383114762671852315792439959980405838343584621856457586782185964683250058701755320136921614697408852571713503067549261228844791016507170783439480412393265102711739429467707448111513559873514331350144133722885857636820479885873908306819908480967278411525348196936466797326654039210098264483647253378916151539381743164126232866231380859058202833042757804225365734178167265701961913796237984464723309898197594038755856390522345519968758605796599572926897180588812521986306516171215174027837837251038470664686789465115566062941823268487643252641368944006566268511468890000457529659672136530029805231317435871585011515504164769933709886500647817526609041465251091459551423759502317210389379815705398848985249022408897585563158875743047560280438978976758297720427367288674115236057237383610005652841233094900742460092465179462054718590517354579601815789647640809856534694342547257309821885375748970651285049966463722232521299786298109255414276991492467852043127947030342779203173570394999847366768947410117288188522681126346620222765877492536528911357363054443852699750524183541751239072153195510684359407571134818238960334208818049856700197552411348109853406495486154669062397314115892562060842160093764388132536805856528264299449986797694003482573188836336993550763508785429313685330147977235248329425372228605503762447254149365707610787971025757371334912960940488276425191667897290936483818313009614723314631073706192544675876937683443753103906511250957551988996930487387102100188658562916781607307668336925691654021097199619895637950675548423098078893177893117240597777357642376988143669315373531911952504662995571415429774645775845382047872419037471935965729059345266791186970954711267834463113173683381752001078599846811983718115870947779172934447936730222322787563881470490579062311846791477498130241998332389874644170939215651967094397829459612259109787983825603145216125465126053694361313389848037711708175796431362971496154303100029504280570191825586795438337164079948188237024581061766508963253041880510186618394430962710121849245107410614466473644488631953043871032526728245481290403695328560591591208231435440486174488332849891397678242106434787607375577757068935412258604101670172464090602179091401135067866026822846514989937583089971517117623866869406101915424974981342100357446491247325028183732789035953851428244582114515120938468836012291661092008045752446080406882763634402488419679376615047936035984644350583282651119719055486797187187567858672115930988442492010408458141155215153842124481931443228877180211328631932908355485137545451922612564302035166870866359011900215608887051131376298398161994720626373399894206558921929161245824773347535421732345260370235347645379842602579185912989118929174683624087967096613858078489867815237443635300774291139010425094883356974923104685217652529621054098189624871328551977179209980861400704703835179200180489263594471995930941642751294323915085900340175517742942760644147389325614638862823259604402076137845901103556757076887810287772588408978978905112222819148190099793145785413298897225593726137787733682618825143337135018156896679164014368221425954745460765084539301375408854076581689285887891497403693666279822143998735285707705216301405609236426314048482104934110186593787875022639006900635600790054437906789320260586115478640218966802328256047575500522490570611264053301665486158879412560830828568594921874718643572246441981188557001552196107085044439411126872445152481577889973533674841764122973425180150173220690549791947454722237196342522403379068500634369678741752667741501955743871330554002188252158113427199491815729494647706583012298673550321926654660348735529871500142139299697192832693129410390446683931418152064287709077666077587137384095059910243563240636853356008638177973301678947448363547462087060982637799032114288449599428393269181124950856471191285034486908722940623464549763650624159826375801265433273820072752670154150420876669579668673169819065725360248468173019443364473620406252866406805324160789043154253827349093942942086904580159077301067329429374407900371307031130325484847988367262559869455011755898291376500342308097071861673936789833338586265393398385896838968096371321363652671130412099685650012201041642800818156265064587939579576298848157099045761204511687861671630889483342989744446582659877179094192689408516207089980261129312216440516782812729449554424793410697919164924039547819163427071613985418162948390686091144458447964696036201399258749988250871712567636351123029003727479341137484028032329081602952872088983629642941691110876217892995555231477866988813511275005411235994012301033647078517879032336093874291436744178487591419530884606682910150407453791453955716684727617404743584465153261584502573762608933498743545965069305733942796112038975375184271690328112299348005694587557668330261129472333626500561236682628051674236515589218537670790742157927861715039007703462820407874845484957965259462796751622344468777493364915892031473653197501779050175816338498278631978966433849449966228185998836912752338460636252164558089860918322502760025779507909789798280258346866458969854757692347130902335319408216451977139667021696397768871110129857034662603762725384452666340727516116448831672581358186567864916161184224872988751839541534473609161846879887856451601772129277140429091202058664383632260102882857250323278196802101800712327179212895796549161044313253581111107528192531480878318367632990421443128457022724483171889095382659692424257549080260545746682367463908414833936500376770220955528602399106202663936851690772009556026346494227994513360100755230910970044484357520163151335901613140285039380338169592446463007761881938862002713801079781930017470186750538108427035033939632620415996566482230964423326661305366688105845178467945717596771791804270145417808358885936323634343389948088571832781631370223697595515554989480602253783448748482737047131582382766384021925094173117319550642619149153247673040360536976211772916308001646166995394872037239157718520017545915858394904029602158156682074404804302498544365469189701268164380639729086639230407438205619913647356484232064365251968171451098330022255925294386889444695652794518909134484210298969921922654693659941685298268210335362021145466633408691485341550635708722983273149740615927646783738205681299434282472648612105646282300694296020741348881989487489629632623325012358123241319462984795874328315919094809074637692966578988388062720995585309419557352670329150689798093977069788966105861361054822419188580458277543801372195116168769308769897709047184709364429464244058057561354253345366555061725722419866120828164461195969839885078013427848278734504828451108980909268682742107300715768821777168094573850577030206126078601799838564825156011173894836667561636029999777645417011843145671295926477942307297160006943882061298034813318126853571828411671492741009500002378845181940636910484424523281326812312017643208792460500892736537179226913273407318266730640965534847424566949678266302660401232008508186230610466703020175213964904882237421539214652633900524095087301357543647424919859878496175729169953299851241269105191227739804107668004337766660766556706417328809944565909205753961900997659728534867893888638474304114197448974744272431346546012157945111901902769015215635582054849513113368296349594662154583545462573134942140260523887242728931684186411035744819990853748816702850817130915658927988826828919442625371389608169927396123937692024619022319500531018176263752495723620064397586834499099032424927368172237706052592184515652565291117622049741371877076605500728663825922371536299774659851983466926053660869632551930207124757264397003876293024893918005848186820157659076837660800764085301685599100104827904084525090216867142756244322325557312713166841117561058155917877268387097733687292749380927009764403285070674166791984372165888215447449192073171332276077229924636171126771747431313577498887121347227179441364067867540186469266449391576097385242094104581908392963781318596054640223378575916861692059917298475242254642256193083795925274747479610577514771398504109069779658801522824929002951014834380642067795954886028035394554648531518923611954684341643668614569818482619992035761409000503120019354701252537853586843090752507020284628571938945527317932790000661381640489128105392788033393932128796712223378824100787005526511423839808589899858022068456126617975037571578260045955804287123204995208393827912629422617723407076025563635475867398034052907746031314552883498411330158733784868592337362673023112851283788400155023190448551724760346751111625932446422297160098856717741414639787709824076090142849607355615331682164566518136703822812454047736985561351576006990370560949859315012596115236774561924998601930546259388646953746196660885288282881906980316270790357370321679173381004523635498702309739827320795849714982808307617513449241853415559748526420475307422247534305874902855079413060148283779395475810479041972105302737233424279802882758428893092034073766180638840641909768138986640567914695928002056746510022339324566152134880485213211801978062022120836678479094833624333964836129312661855917381417033019170717105086823327422621326697970392326837988644794579062855826365089055400739779669044199279146163202819979501287542572158000451740699834909971937511754044506243801938708093129313235844968345041555023111322809726832661381427892585439822301184005689935178797622461485704599266670044779686406318863253943041439684079197283256611826781264949726725283029156064745279088752188182865536943784569845896834990196105359483526671595823602187252013158631388430870411803995934532373083142915049200050151661086095791213615939232426946316251991278236117495600083206587099582541078349112310999987634968126336879307080494988632924961107160024802626187610089641252245091970394435586944287126030919043101734243362236818667360837493617246642367634105144928948338365355704776329993898607209231856820469640352056888346800978018318763618776585052068211972557121691486813693346279172242980729872311796407388816110175454554637814182676520949790962883357172656574771028010390074068192586652704118630727027991549813697197432370896521591296794301402432445519916644637456855014896881028788137073829415384691959780764017578840505200080487616792545485233979494854953756949760773452978659098061959698404404752564008741162095211281924971361368131764473483325305785960879284686001329235091424814634199358887687486081455796765263076492032743648098580547502789287543093061840901425784364551213594202741572244959992328194484130536758780474937487053590418160050184254234150081843298910948692791416498293197573447016011401439337998287254936364739290018295412492076829824434420593090537160020888272762089255045997911702822316822311477770887849707293639884614519717053444108775105128650379339421486245211536793664196822066142426992866867203607921016802365064013174423269040651189341274234170183938601643915240106079047184114755979585795603951304836138069087149167558224043357731585264199933120392642305954873079888023318651226350762283621276358098344967355340071172908140471598740131521122774532801420707750749663018099265525589981291036800164798384431914827663572413505478706035039341440369178128541270990946710706960250917737608907715032133431893005473412065613335807015945609538918588688954291527919368012952186601662368922115060047478982834371483226211400790378971066585428097613045252283283344375390425976773837056888044529516458266881034081374962259571202652807669926695526838210846709557606611920012504186333163376524322129217108868803305559875523127194007108139887040623854589903687741126399143327279089487671216432309294374063131132235715444592811770031499021489914518546402055603403506518044772848714471980919250671498695978033957819270211421125628734999491739442661489655758768222544323847385402376334500131519991201014899240297994714471472897437708183328475272240708196960583457278159699710911081740180579867610985967984252410811714990485178062926005641847797440665684770530590497137302981043782689453987041768210162594901314058794794599234266635627715943830177412972261878383245345165158292591393430870619326580807407295758454426622728422091178363095174110578599774435227957483729811771919403456359201703106546389873660922459056634365219195464476226786796638243168720619232155326885956458652750890727623465621527724334046923191030696885331755624095289179641326415051330237572717307988984831189398038348906046575320848952944121047150518438113972766870851600828604158265599096631214878363186344013413393760597790532793584381250554079597793812865174549669632919302222814379915184236822307999484713958506731316099446208948752016864415875172021787339254209571248400458342275496764395652128862797464709011366655970240546482300760395901148168194183495753255829519327134471374410505267650591820316813638952726165660711998665330004294669661283314166965321324960824260995357515784282489987625671602510588611851648675353991187830298999489570783284312216573182754133098628073320061817761914575037798771514108770722043368780063331834847563057021090894599727710556544382216571617411738724823861805602201201844486398928260460785809986321202656572456051398225729801262076066470898890579133866855416776291014944499786181854429015147036977731279074381667180812704817538619253316019994270294988954057568215938822742233526483494212760286338532001579416534118949307432819614925590810005401991699143379408861289809682192014553491064812812270096594607147613321292961464603716971239603866093841217027617448552665870894500774377807703320466245552757313140728358425490526647245508537003314137741347744063437088177540247773923199183932287169266260881918420895922010165231228541282210163425044337262442561105643391029093524660571790804432728182034995248281707456127408337087941028661752350287094835262146406328786545271500321516298424792707204571284693477391783430624108385476009361432789869371381095386089009461767772619737774623941758680527599789818558735123284605089343408592119905789879884405004319494377184916819098190281341389943400490582511715081381554918963665913527685190116694850646487760810799318744649420875818672767894092595949798914378061727889548147732688981047218090439011309918344243724139186146052515209550292835366948694493859192864623736781635351954812459297330268278001370562985972205690197081193569317285138468235560883948218334727686595388766943003606188559554271433306080666865063007804431192416761674287966620162350187517851644433482532315135302633188202904911050806544642757824335702738350426499095041778866279408682529547792098666999237447524880280251847227026312097624756724535187814112347110019781833900918396059888348053666341487624588548548788166396196350592065118870202204214675496889845027794675713870270967612353755146502452845142859458766734926085315630388445704616780036455343750372734894270604475443237303613510078874503869271975308167577697920601393421738220180112695797244457743314705979652305319554583006809468316871001350442919955866921255115802388169893510192991647139059861820664184405054996747544291095283565443373618877893693953268393129362376293752437529779935516636715652676614224956319429118693165001755156502179609558488235584523682837793981606208695511317772417609489811530298399418538478566100273522579584648992329239690755992162773028929240239160592495434061354463152807097221500429590521603879693460997602187100063120017233575534018149675862683180145461395675693913833583522040230868533205785786832775479837489843508006810154222351871622685453552440320180908940787904266201187000477578713385241254342987736696279241855123970380777265951011625595825274209762937127824729140087428639094643122937890393229719697590129491995653825898349189492297520554043659523640281370414132337510890553070360345999763437871425399472695063951737317921428427743134335529857237855091259307185916772574799598860238207574922083300990196079938067250450766800796498392447578121995993423279064541722191183935051651789206543018402891807636682882788178064808129562885282402189865450476890740122973351280508377119435485717111302939435570163837866664283846778496031102889158772206309667529182528976740683662891140456473314165209397667671629974292410723183701858098872273806751027287198521551256934257744562556053118548039420985253506787141625710051286855043822372983702126701893069289192624201857029106868757912729972764075504574754086314977662193306417419999128148122878403825897261973713864075282209259532539002250438353278105883488342513697887194910319344484339604109274451712509238715514249625792379442144448354598013622443266933029292374876373421531381353740610588546237643225046462910568463578241839678987508127433788717156908806766187228437510897662799053980662406882962943320635955544126241329974101208357402748565467173358469055143488708528603225189684882549299191098560921444598945542123610556695767862758141567148863421067728638647450578328354512794617557955347660008761433981623042173117123809477901909395615004429839233835447173000470870236293965589256289360250843469517279964776321133219483636867492012607147875030371550161748661524932687787775161176687061998732985350243024756922513849374675074818615259533479553486347997858310825403252803609687126264664692406586837092742652946010443743181469182693911312729081565461619679271078837802522511808790843243273805705090765857899347769922271696433276147230703532926189508554129160898169373505693629368540887924926888637352541129713877621609917686385709567762189633554675129385004591595556171871818894700862371139513561768682297056357272729390286902875303500108171328398707064907149704036327430051356015020238546745495270866464774841835466410797247751996952947990027574893909226937988436119713413893163479681705354493963321553763180870358390550093085042587655369426383505575095234684844892847810166096798192323865074723318876679593207052539625270505621337616576716637317742849665074068036282721070850283444322232595367863413475037815777727061219915763864549798042173219242377323340292465976625098044044392428352729754807010028109029820115423933861513178688013845093733482671826463028319406145759839978159522069919923597921037436613470687337058556813832480666896033440361848961055581880401576201035169789757058838124910935136213096267133966389880525895551992052067618740451965486006922116774219615724844686743008615921566278177542301502605529085943183769222211557072604363770385370775841433357247650604968374609262658293955980497445482072231734083011953080295910471006376553644252115451828877956115708146230566907585851352709637776990602990951743236485978135170311426694261518540042826081752420953638913016815458190698653749529718485008995221349105132795686189962142121177516562908802427249692334151074988081798312429687583463667734805900062768587489036609820952545433617216734544760844541771706426310356704909077451194816212588964724002502529754723509369967114531845367432663752135531915921639572361224268355904708611865288827092872715557427040690606101006034336055677910445988181167865031617930835328803599139718295705516863562470465488388857179179006423024493332820696327750413131694412872162558303733248325924897137135595302424547536549534211087886516090184873484522874050690477346729656672081198110851079861423759941016503865235090627123084484582655858738049787220952859504234629703147480251925991900374546825933298609730069821866820956154651490062954422211012255695631846827225994284280057715987877121099170688846519988781031203399350314665405769644332857491716271204323022024489097805128900104111575560626620179517699248789373323684713048508031340787802832355761514100317165947154529561579307856351237602703580950378804651812625589235098367284845318660064976062869891234145969361913389085202393470433432022038849364248082454751254376626289664908558733332429730026140900254612713987974740949617599967386545532805571424587821315714870929948049858023534996945619839223236066706060236739865594355445612281428839783051928749191990447619159289536426609304126779673545145817319131181370296439005751789467289367444477851428276965034971610133404183014216089760378369113856876223226166310320554448863489271188720789896101074323381585449409657266615837457100912680370863526381662313002827897903977611579356461534599407658963745615637719119833536407405084601030640831207157521350705817183678102172286813006389952689518301773227103020556401454600504499566547116275186225453370202989863751811742668841622969578306078423876965452852112030478419812738178744590801419387837740999985469153792555831019874747927863339360224310491388882969892645354034487700060398189257745846982146964547197265475433426084117959103622670046179552974204156341311940286585689036808332270932184880839032812796914490032534636666183142385473510053549479213486727664014771130156759139413033822333190405097230817452194095677739292818559099985638248318282232816897693469607344427637315853670092290734676771550910508351895918628567377970749109663274369312121830006728385694720925008588514802516166139548016686230202744291030716127342309062640768922973188001917701787530335440352270382254641526262246640813959559021498230228447089897144195610194199350415799386236859031717727245800648225708701722672782224364480356859744733917573840479321300808864299574411308450009966971713065699841101730333889256866743160259020009535060794253139137203113609176677287903590723265284260723829856695890338163237629242340086957383183459319079601545621747382871157587806832801502167782041585272373810965866799369767305475134475882561753597492718103823420721086161406380053637850586341354422583515690072024239498859512659929380758427951988015300577726945287668898809087117121123647673884613794523344850249634698405752194070989398705955345606312034336074200813479192832122730569933409152025927752006453785617543155056090190369862150789189091469561693976833844020653103206257417289940800151715192043077917154936832745481066372988259854807092712262066911470287123687911580175207610904336763445036109392073554396514646744531711607389381337259860165511105851220381094606805917756350596360713260335275547707773866881590610159413902923864189364401580177053354574147626899442718362492882912199696039569286478529831909095026743432123446688971106488296181908457067699534675822674718249818186967329521479347895144871669610330034210840063916027218932467618730304939256661836917895576369394289835469633950858111109719506266185319343352613669913069484407297115206531695590867017429666054831396477758950436012394807693662395265133278466391455408668464487506326490488820118930512691322392334836310521077364246212424228218755385874249583946040863841087723976668613312259352888417300078641508262159204760644477649079978031109777066428802731088387860946284971212137763313564358779991389215833305573048087608849274847534824996915867242104165035842494431122093573416979920576776082736643488070949620321714015578818570252820063997257552937480469846885962837040899349412596104826330898135464436511525845678129795328798650023684349106847277376645285706178884362684391379353411976970034579447299230114354562795133455093425559639156746040396020758269616200307095160190874178435663088936450497645815106598678518850907343362060950249186137948976666650306486136597438466443223271256630407604130962706786285153689491631039426761578198736281622387151789686830535399253091647738278633414343529502938328641809579945101020691880001453981351625701740635095570413861508811608489957513341675784527989993142791858500647480576251844079596439077119617051452461451970736023408786085826183138124395368978585712889531474123984177501324686846084379603876136349402928795552774460141857321161265944806481033707157463156378458464582824597736164395684593357831817034277167574324802272468750805935523320644179287130132676356471760804852717873541484944442072958931686673250840334201690391745667326512798141036181618085525998139632928545129773385108752861028026461913182230474476869004826093328961089127033752856234000412096807106145595317855520046487000796103097058191766663198312603097611324199893841150965101457951739731057075149616958398232492442772386701043672134992470056834117304333351863084056616271895188654149150465954217291840500699668025106465987958428980170502949989888877914985205333296856578169884531039219463223864390256767422407529211388620862547414656509157409377622332931128286933574192423200243501892987445256270349254560039204339523140745192879385976233776888089773211507863141098647424604285691922061465750756199952011380663315560166405748461896048349468337211277340563710585582314627077905867607499486267553371801048128496409152513535829602638321119979420021818780240512283517533854487749496999854639292389558491444171520824796717162869342671140827364085733204395446093937455377999087787666948351142160803142021674591963460276936134320840956755929986149087763648839077004473509033971574574566370002533259167446185823934864018550344597702837976726891794376968214376465530539696676808774881910317462016297714243018063941925548148563783974499277738883877121895971931642352253346560942997349533137767282681499129104079333526420043012964591680009097742240421749217301949418718381975293480621584022618124865223163826176975963923351418736734938711844844886333914032643565998827932746556846918068682161385226594141800066292032208411502820624569145850640228210230152179923918561937243117546593263715098602079197767169621927675338186518380172616637909367289524596385063180565602251623099905400505434177617050223942990768833443546038124537681208056795507197818526824812737030363419967927452749017396014702713826327602104421096011678342760595701476102256380160410474063182567041166993450296389809764906838510870834126389327452934536553084095474219695465398207455084749012971239738589414780234760495386072616819682039597121538494384674821818276807379849270844580747023355478136463665018239648415263781281521460545067029818559459359693057507747147432751410534995587630863562177676267331669140957187976841457580812173588492487591568945032661124215185348858071409295215887786382589079320700234299363657887212166097817971882648053970866637348868055687023864929651655708386215664276850594218933990659720692425453158285679734505992093092421894445705562444613279234451004019315538137216579570085314597408251670367428591840592889313803505350419177826263835433584941449301731269002197867738020426757500118117848050023738303590062456209471426044749394564985889502606096835585569573235929698261331125250571819469782421072470563290888248257054973921395343462308987778682336057124313555717903216813961208169150471801591517196876369062889001291388840333234246866664817113103419241072044122256602162532722658923287526839396006076407300984977414199968187372943981132543064273913863987761128325656380721860669751171213663298254931180061709654402306866107827605539919931033902362954900813396550618010073688440799191978526710521788249653216721828891044414313557839932383139015082592278787330494658437928745795626286928846142562400562018820083533523760143913757854807241512965714731663679443811216745108801595956084342545105304541350508373492906762610064195431321684598521879710685779384145197489583336381428933542298085796281505251928155604560627721871035591767021460038086907136584466065063793108588717438355172061367624724713262847300913974545486879665219277880071068919980617245429357539871430251054588324512016742606440421982525488244062952967278548145535508903778216175814043864829548366558197786297352901555941368483974939392056546932427374441776651934393930655032053487450887941200848871943009164414807860936753561708396731229126778535198032245206654700294597574614474120904141386693486985548032522415203110223413535491014282488640650144428301993695225236928233633072831535481587463538228904645090625959453518995420995919776759279829075021834803258469649634511906280414581617142235101147702858692166384593005450153263308294457755637135252594090654133064239814622249907565943712908082865327471835874655193934491661382353142742318631734439061816332956840879301453367360229539643633215703658155450609887716900887174824479175933609699458017145300233542910453068789224766393263179404362936601410468919588181422167213437448865094824120275168671771196216297727339180683445166365887465079437799254109025152820620936732935987309936238175074961411694433435203975864014280057540493835125201651754561152041284071215698677316741639721579393175509371985239531705297776859914262297587367960299342529784075832528830350341429951200109122043183010466466455908208934537244114851586666108148686901649503029336870747629296281800187126641874867968152758529255653477972720923517938937693269276801326170771548848216994990164947968697591995545942519101232965972959073616261068750315547942836165762319010049130732356777996859627096839577718463192308371518677570598777140368758644790569554700343334491206037215856777279912938840575646244817319645404739156592293160396250902026401663569909882947842396318330811940829986166506467854760654774175125061094731430770537429464739880059635321795184423921423053524579908204581520246990921470799427651138925108393152586999444761561169826597110926790762002502502413623094398104283470583426413985577290644027810543747795049376158187184267832299417827580517627152418152636873187467930713080986086314165283135874149302987673781164037318870963427375648146450814733989641548380059302601873497388668937036017352735594668637471057005198880806159601246343499510667195314201802278436303679522646371732271408844693919134336329297796846064450208652112263275807678037030185957902822556893362732440026899059329429604633701964096230842747571333838298014278603757589532293199076945701079448141480166797221198938349112854609331512421888716462837704557327515419797839851569623954590058237034868656768129621228474898460831365988577759230132825358994881574301099981209142658285344271822836287339543108704656274892645458400599888195410963325707045600903581913889697772982199764313707065558222796463225463767202471013664587668067644059367023919306943620600540301710783918113196998300598215088848838935376721655152232579073119590739005676734921389850218040582455308518343224552595982315534929908470095229324705808157822449046441150489163287185772430089419675244694609091240490171920061661805013470429531160264967525724548934126321329670941009932309618199936089721396480936308190445488377324561643897880005730984408040559105695767856135388829800861145724568931724002484255304179879956158045174778870160126104543522373931768319638443111599719373031039992605647568113441498371742863300145953337262566450123294705238529493619789300846423849245689425332033162956312319537176158700797681995653464800453402333073088886054231115235194974717479963360116605569757357448756085614338510912210565970124314263159092373831095024050315513929579978712844464735932694089123713972899732874934515156879750979545475796947771822599837565772559613178731417543692845768928278620017279459522872530251622037866408376074187937792486709387343117207107273146626365400590116361925563432062870576823280488465358095615967636624150744107916417691667946965548629992033952588616900473583181039562473457862466134525679450415217860362659823340578522629779539747010299310961626972469596878211040965640981306043159933968730936899168893776019597920088907274543899533878290290990832486077838866947356554166435548169509344911646199947844298003929957952648738402013565885298874352900368570239013790740735004832540036372627960802260631581614792069573182674927471982273876692665350699331709955189905183445433929390808537992134673202036722766168092077621920469569405135819706204400415100069272864571866917983370546040655215919241606165041040316098558415572928437483448640191260899585731109964360292077747180345432522625561023964285146513923880027097847311059449838871164750958266781071768475582091512478191365457252065947404305789409214966803897238707032941818471859278101080118388888980311375248430045841150816392621831457024522533018859521527699441010210477258942443106264120459987621592657668858096438978685528141993267073568843186721355064945289661520291878441677143592682451581640256619530502981506781688020389852003256938069599163660584381019749702958710241690581663090699047771130064564372559118263354653706873069447001518425612844836843464862358551337645862343540658556765896791954984520207266216641569531438056189018348870012782338986919027421730432785681341953067926336750049250284687314541355155805215013129026568240682824251035158732981683889897377045076338602021106820764367502263751551966533062526413560579388864502702816370617673033762374291629716706714910154180090930509390906672831112358231591058545015774409264372088395665334542726108801098175678048406139089922166264490434157541975141831836623656353842251928857994914317714936597609076302062811378126720351892169631160250443403637620348014272300252535920913920899003567927225802032956647805154691507783925532448019330480789594291865597116149748125741006402553012479135116950329376965813209727202470726964887050145765246418536593046461437399677033608157484162100714684484813605948335732031108222941688574170386281466680297000305199487626628392366343185610281382049137455677129868620365191140756528259130836050170439032416310780234119569670356179705253921625203089758805030315115346291000688741097550932061742719603938598251872834221890062720214420542852214808264448861885146210038127480143336460824369371410911322957009902279900599335474249427612286699204910664681269532763207466371798916787208903896731296683959710481824471353899806083456843494616222089094713439063828962818859338199110022416667908092519154347641397047046820869498082253782621005063059572820856694597759995355600087807014446285820857953018507408498322099324767964715641014151446082357707932835574476772956657306094723747132476970372624747524516041239638110717711075029264119413396618717400916126210803733958075023553413640154911963902201338767855450234983204630118092560167085934032959422361446932003166140848938980788452195365227795335772420251979444165370974452489837266321239629005062776767710028728441151330030445651391050642009157737431229633606695902382341674796211230313089221361299585579493964730020891997149953295974791227276462858222661501580238590589281131604576364814638513190346242039039379454886995513048045907374599280197239348857058425089144562696916623178668404107481397926318618094810300733756950331435503936779058150759491127068707406968174464848820949749299904971002929986052729988392516689716696090034065533396305489829350739351486550427103193228251909752805969840509406954264257046943278221544791491728959137671547490595946127555330705741679944876689098259113183863707583796543261686587745970835562048535452308061634565401016452258596731881015225130015016665172762405980528929335255466644084712452868087715856264265017807464657349070465771238026880374208542613088086999849189696510890770524313522133996511963083221093318983251423433119174860113029582809818750847814205977059445773745593904757702179806067699419112228073026168981197495886928838531985827134176689147943595126500485132312814347384400398693316708220830101941004745382028518793871896484369983289304067914610525346041198562065025532869818501116836828659912264207278600329390124131862766501252380986415961740754357414875832671899959532605089485317204868687166618653973621046855116664442796932675292246969272759738307650122980086148364621408318691667241629731956947052972101401151864560730328931984006182392060864320251196777956943106085167103773204331013301928375620706267445020530073711322066894416484281660995550747145163723986390557958791627224873678295721631657258745351844537475455209451285798837231061108042701635406499685771394789139672697067635667937037876443107593725678265883209976024618278891912105739847545829434107457297101377262172171408680341102200521197290149892848796012207583777134521147466073906884238214335505580900301053989234617311185579434702145566964038119802623272594220554333631487417050697754277592938529815216606179451310854511602376664909080026054797501189027868050483304157418036717576437323247270144832110891621037373002603952191724803616818214812427068702290917048253603732902530106267230371965893935912802457019695371348150066634365198788516881851169910498329484452883852441827737035108125048521584403379705832025379531433469386670935910288208872848153509535840524135189852282367089198965573159655650733676740770392613767497787498149217982095776161911112187473049386191426863144888036708719923290833993050409470730812557248145237465218196526451859552235814020352394633428962372372576896568769110769708586282439308608912968838685454542261825725646970424085460891770570657809021356252995744558450594337202097339259685121783439568895655575871375504416479952269414563775683281468025641866646226143665129354790006017648296140831179188474915863109051063942484888677804630488583288770345495861281629410557388511102004714273399039218124542513695226545976683211143266044850484847982029099807966113592021169995090379882426588047324594912462709979198129871711135549822706355356749560019087502291137955305364659065486407064303023403370188278630695437023472120779134038225888165153487239127285629431931230209190366589661759083159925775985203228813125251140633060256328244127373364186805462770078754089610506693966992308479276297254774101800630650710753240767581244386296925151623942368851187733107277436893820272312061319660893703795729773240014292168086077794460585207289301580399607024602499866295727545132868723847326169882919413671632035688528291136117678157937945634542147038930345982431338247135227971446913962123086544812506142517366184615560761555401054677395887640854092031643202082998817645644810430550349213279812834980754931129993289479486096297149824110736553400212013088894931625066617526634736349740911140562604648106160894063979030037818802448768948247535564160537361163869499123101434951559936709457146520576684703866390848437249105279574945419169146778573176662921629525711686796904866103668541919343405903212422789128567734968361880961411701089632957659892614646318994677623373797353392408036604842719422825058901613407234768387654453584569165756284347313521328922183993569362473231625111264464867695182779912316529406068067612919940011789485792631825599075643060257590847858643375692080610403516807838234640693562553551857396125938016325597012880087214123023747795341007098916498256989246200550810312280130449925298224616925516991497126482758652958860847894700860311856943970023740543309348376316003927147342954966079885016310502000176933150648515746448439547443089311115618938178421131882781696558939079973577794672507450075771110048900436070448671748395565397409681808878069061292051649668280321871521279735842920747442880859342268981875380379158769396544299319902218493922002868013702356662739211838756004775065179284620903411157461262799475068187672287302871093063433012125580748865294453170984751154320142459194955905257367184220717903887405459728314581425103296664312563568624930392717064407238073502216717861630563850906581742430681505073602167292140550999189796849180247721141815499375131253346201813986510380010001382727869915393942687295943702520929463406437733490676039782780114447663335205858030448316645357746321615098248968305814633545145467765261076020731561638775922564832368906278969943641884397589235502637073558443708246630616835338284458057376136373788830712858974134804951115714585732259386711816995665980128592847918461861871134219817084754233572075032301664959694076941034747048773705276122702152135864828005683268888354571074872602894537484144363307121820156068636734738873741106552609748518110130593192972579681858281061208240300057305756470819490260726908758681197689907867764341713609447537264325788807211656065250866375065101182736346689045484123589347193091424902681945538876921614442548341323741971585363077462096602902914230564859037813477161762804553697965126912574190073550224269153145863962426276373596632433004349168255604779161755902572602613615521599472383964419243872584151815932938732506090773734444846775121893043047827485050105076909084097878177557955770303836553472274617409229709167009088069830389734486128740077028621230648040855283086033182614860005372038285491980373413308746606065429061194408469263513253513990616305043047617872014680753490672922782404225671761888080254746439669885895710644114267805805754815148927420769868890018356393510057617992596103086110374496768113051215115788746381786152635910950569428097216162542675906458640681676734368411330978976905775773062547230702094374613642175390505393288586662398157560297131079537941229323129497312361197431466174689874100434520214493188112399304281345279405547874142852934480542476490352342884219219213483963249647688689775667308852530465265062858221912866649534874751865776438290393100921255258754988578223065119332882514753579144188968624278298519373340959426531035391651663671891193044345108736073443970292818941749910874503774321847995397276004326129071237871013745590368234597509083025686877685178487356645942740990885789688221056477872562251449380487319162026358488235776593192390550035999976528894737171250359995725202775298102920609969192994324162180091419069314407865305861083258621129864687278486733654056692740818703112497819019274291494760528808042552769818558058594872869165543605554496189729580918361000168526073275405032023399057679412395420107985229522533949022547381427483379708401188918673347368588352473845307573916611772813210156763489103130968400570280228880894264918840480862045595814507089586902740668165396236697411450679594352280397821298346822539463020648856234341587999416135023611602150036372276446570348840096307172625931720387462756862401595073494266135298098321991662539448870225503110219716862343629946474346646637496059360208042372525633811531711250027931507491759257076677981183149282033065131864055377885725116504780173868118299687516157173796270856071073954075737594211857422853397810176003327593972116256990406784428008938613551928034384085384499111797171872097452013379439066274071047023153972429062369100835384854118594000188008119300295720429719652821855653123281427271414915015882540597827171807063254078380222461695991837933895334788663116174826058856810977851054448499532716018995175927370135897582296712034147704580526997087308281035351153457160182904698938228658787324616942170851121580108040010245258345749008950606601554764923023853071957211104916952537204912197024873078746543543071584253107873378134782960940793884872463989043834634826764206272855933005656318666135981495907308593308255310991626540429187438662644115839350455676469341987358698924512579533945109086102466703059064208245709283624111113628410566738962264336391393763503018113030093575773566489242227186453556615808847890766903881193142657320763804754438853220800194208513808696016214472053445403023945224431101927892147112890424851068178611523343318223158626023460455961500666777829556616141992286703418090190411219481272779661436896659997025065583053335361446153299536687424046371263735008344400754381234395879163374598491582891636341159407044599265230122188097471951477444941980150331489505747514940029090982752567201811901274847360952803317493551678099382774711593241220491590833603103410930926099589060776314321645748504949087327201641633117042355850230706873887948154425019702247604892704106148410625590696158897860720717558040367208576490239548911671707719158775176799945340963298719744107749107252068034948112999372008158771964184568014566759514635716549598611950583745234545392252632210573683594743293901467687563705296198006342060225418603134458210237510836938215754259615006731989382337106624152451835716742661552230883846196818422662667344340124716674572047653794128924478882175822383034518684359876808434530576470378785461717219946953974687306444757155158606640384450054175941634337979237611387660817165549779576848431814288464968905614226165605997539822873211567390447152092642792785383531742392773254510343076208176135035130681834747241701765369904209661558890972595201974227064722569466912309260502764527579734236032446412767698824699432115781740870613805354093684511927262320433243550167130076695120552938838743215009804722747489084519708128629711459787179833720189119443139447574472824202941223856751547416727468497422997221477310730344799541888425408965031548292131359137666394022908185472310787480978058872582079384508830447348252384490613547257075588582183114045425806965790239013831033014940032430109157986648452866573344846271932285141014361471692148222765531313329886381063019399088883338789273644073001378181587286964560669137619402125738037649655008533822179670376961208041359964618551657991634310974386510550409935517533334069240006632834938458034990376114887657736963400155679103834542543932870346899399833888372088459743372230670362530513970201073413151284430645852837469434567037775152654379658597237675875566169413398517091701281399510744344232909712525033604477382005775075428692365650538776227653402139465001413454863864021671612442129482897889139769456212936459691059500555406180376169432337144509051293903344541231739693653457791548883094075448996031757478403062546059500701755394596531470040413409804501984785040817488056787198144019187008234304218221533431799834861161733842064105968821941045044974535010706159352245022098384404626752385695879172540745029522919398131911347182667245342666226181041537387754985892352533757827703350024079446814650653881615667369974100919104983791760689438094356260572176315882329527150466607839607969794960582113680080551658201508652780222058332020522926412192377903403487573485335944043204408108768031559156858059939012460021311121118149567701012349707727888817294289004986285148229992291090188202761232485614642199528155917608632902709429951997557907753094519210003286647187943531931788798174603211307005102487593857987706486891648439829838833903763185940937485235871519661601500552706237690382031494496498937926454787217915058778783415251987612075447399900200423268871009396531403451894567850715940944142986127671768433171956460830540277171702159520910175301932806618009457003484334531002822192731432404003118656856527845537445169421933660822146123604258841456529168473027045208973931927934533584055503234192737609116711652463198626276610807283858768576468582686103675523970097063416626939323093936039630456666678535657987671641204485839071287867072036200283362207284927126777385156529921098400948288250228365284460023107237654181640426017574795904788312033793258627001368567278243221483446984466259224229915206239878378967785680617058381085485906277936952315389276245269218911760207040230201396753367310309671063043522952122819293214288444732351127585264513677324540192966400403187584930478308907710403182254475668519530262081569164520638111114548806158791175496513516833162264609685099459425912713174292248559792096679925667161688589650820676746690631331469243395346405890227641415616077946334886389800868282511093158141493868799282282451619720700493500257744548967232060097222225907405485506362662011606235516079780575902684486883860688718442895760073285669715150679257753531479510698486247383846658840941208190172044092034380142211612697318451656868091354339520785213293804236602908191784278173910494558764544508470309184613068076330289715715416839446349122581280050643304918750559502095085878872692683995412679505404950185625833122410420546799625124538890483853662982348461822849913713475746581924918135940304471888366695762263302625260167605693837636097362702663240708468010793630376014472367447821576912674450995300376842108923176647981334393081432961835193699781213764948525056003860228791210076749740304811503223010496949120417524865029099626229179440793866791077495371603678996385902792917975601926554179449850235482972298385692220526886403846815434462301598299053994528326016092282424483119451008322100021429091775731782835703990809647199494657502253373721383598451246521657659417782181760584467121495673201510245741131245061783776417537068950269695031459657442061974944539074150154379798111382317553854105399490817645844277570330570308608467556046691865123330368968761424875952680951659421936134422259062967939056187132358114005407006967547978432213179864662556380464360654295070274114338131086176606669559458249801128234391794599673141778200113898914934295784405978754872288958387132995311972603644628201246831682074405057107007689766111308611999900520242681970353107060073251288876313943090861937259388068143785114666916696930862554299528180385171866710972135399606947184946907828409781357198448602348500434303592544454931283153086758089229992004295617554995921868239267514233423210716878422909008045386832662451022768571907110650736691925555784110354010114940730485094897575505768941851748269867082978485760005879570183696283076341263127286999009071202759131943517190941495621763286928200271752229883457323669002232445385859169768449762311330451315404193457432068368062708389700699368016375046474319145343857061518260731756255697656200324148604735629533317015514518273978476271807844691509007154898073542258323520911960745209536739050632367052521767994356166443597576535810895644972471419092761307435919033094985024214585103794230778129986748303695777093101484166389903551965068767699968661881304814002003219895554825188566086463994596222924444327207440672203735188525658505248529631980854048041859014346714053087569647043606401953584112904457195983652936913819905017494270907085721474282764180614498711801780357773699349058929689152702266783501182630048587174216893403858591291206190541026709468191023727164746148780993832529238450030822195002129413590239869644331519441354900133164765803509565422891997101681786034627778959418684582129235217496795119598373066865155597888327142302089937959650506761433022109336298339649208930862019868553338819816958048873657699057759004928825701060727363695754533313942834799980918428080832294138654538106199485540215044934749585673930807027916559622742787081876793438565726758547452503980380971700919750008170870522937048291813996621014227811909264824035531865033196304720888203350390550892312207508666582467693848481667565987795456089908146959903007259547729042219221294659119914642796061259942114914408540653246955465222545141107796660151236814822995698115584473393454233617779762983400157066558855971810548584068374818778221811901980554814533588366762437499784357973945426432920436578118391636473639074300469761728970826899963043538035033831998239469648550405813982701806235029954855741963389590495647449371660210868257434307123568554986669152721839146744804417198997057497878157163660826012527500565172935395581171047189137216058962719666552657700430913464999250335822957247871555322213473616119580768092592143000764750659855372699856144077306416178589340715912331873088053413146631333395829421291947138044179718037617027347065054109459453849017229912315197525788386872736212607470149142361204186367456844648111949332658635108726461661723307520215107643163878549036771215434616401991179260600251084768272160431652964641631468215968377490198341688464851528204764142100945829763783801625600320020661174777328992644628036874265419189693540656497047872028964430627111626609717300800224394820491265549668596568660088222820112467272632269233405939724434631360984340592952570410647261380464229359567894796694693930384252192219439653830900501041601121751654746920887443735858052260961952203942468380063799525065198963019210935039777984660279835300002056110102380704026992924858233021012701232095763273269388746336769945260151480506694455631023355855790049981950702190127734558380844367678648707246295388034645708372008410652875514223980066560935770300251222680807561982186915483287414601706615065826737495665815135736471240934219228753714824496296217414752068912387791963639011687691729336383914889282765772589478763874145087120416376151076041035764346119522160612042632017428805816918165329827820096737699226600496513288911935638030890077188442415068084464036063504506652694173370174291604626233521347183989754180930690336210959283751101651465166724182286277540642015220860731646707055766162340128849234300918091455935683475523797258195822094184242273926969353726769335698990881096238882072617957203653796055883897280158786613331482356815299091389721533302553910038439393238158019878577169525081341361232008464029970124135593201534151628546017965457211806233776443069291152730753572465278703084724265034405514746887407425043405491567192484518218253262876575425818092531491778006688829120271807353960541685648676747624456615432885539059532814973755270708782419892410242612107732536944609867467004421510894623430572261685000747557413618262294395399274463357629412657928613200241724443826336470992076958855367076596848286431309228507164275787837980883410646252592615542223344152523343897755242344115976491691954630720109409613980339109141656947511881256140166851633633924223246198732089650501811719066021821942612305771254983895832491642767189351825386914363737104436055346885572023071957798081742108431583781804682326560211896163001762582028861365606983023390469708808942705123112943256650425961002774048096202730876643527839407166706400542328303070464730995779959232838543997285509897041572127091949023086428593334086588702223998954991419540761528440995403599921485673035546013224134467535513997965842550533042445391874182612682529770462567458313084963821519429346861841764781553173837777413529809502814536228044113377615569482673381356075459812127033147708774490256242974590045982505640482812453825801100587412941877391960049641489753192599173816136311050592659516367096005093296860686626146386301827608123164269305538375608083196604603340435524130244173552989643162239886440111991541524537305764909290092956172590994959377426868647701408665387640851019125789764474197350098189996562318122381000573271190213218543378175194567582228710836808390535265959380356707647595221228626128730506533816481519009556179869878454823599913424687794102202838287873108200448490535683756173545583400412430797261230770153736234660855136039917714679340766622615696312867453225574838263217345276995788951670123507126350392782597101478016742883521331649886184999659887165707796442032509161878093345313585435124957999119071758772286109665736239049823308985408430651104333487307031182330057446228069900907368387139331818713871692942285443098059043414723554878050128366144484113567842916173856269167192425395312965589587195631283176758490193441171293583956637214049118050160229233819398789343205595036883237597367363305365715521576023770542892948421320821054005675601891794311724738096042543270529887067465105652550966177541232181620597046640536754347550184287000333513939288423611343504178871106802539768167033869418937125353770250413355171838869306461864790813818879166597869365935229505738137517711071643106810164483184399715960606488976243763816404974902122504021684312674183280054789259235419959403662561609661361818826681195395963311610060382710493150263806928070093507347368784527905013079152370951382119579400499300229053892224176163728132177067262631792279565210054452610522786495432236622296793627336618426202138580275278623563503782920014328302179766961117967040943637728911743933270503290609172819069180459113378460926656118462880895065634171143262173762005346020276965557167216775763717356355136708691857975650092396545317898964118352815583919659651922251649060020643728072968382118144051660735090188722711577373933459957022594619852764950770525512172527612581708021279856184330565715122194507913811208351414163073231950879578835873461320581782270891058779584564733019410146343442401269789244096296377345393039361310715726395090605798496173858754683107706390635213574580690068550079811230508912512948820430083665121815803326411879189081449269444130378551201067835977662767469758392519381337404985420628804080907063547711365893737679053932391740394794044452080932094476030177379673241602308421107445504016335717275456954403096559390908452625818209526343578314605019490376035403193851691434660702001895755917333330302961265674574423047582083767668045538405412029355696260803197980360506102220437695651932701415171326425046194256994490940021131167662874706233868010922597718972682697081321677959557377209104316166897495155274013869170548312957569627507894805247560579588040801275276726694965004121743914370363724246530348941723450043714023840317617625671467520047534750270512381991857392237824225894009876577287661798032736176491318968844242633859114856648523541305117599128974028575959285624563155208980893245459865118345782725707800296728701572040028848661433990793304760688837928715838846146787137968974579137184903363637190194371155364030073023226445731415347985394026165075971334579618014465707202481961625053742546831680822780903894577658527906541446945352319809930066879520068034127283702986545313503791569205203981027759614256886562478141741468039805714873674331654926284111550998166483603310800346704702057795760195483376897408319144517309713194548111557422456115789823499225008143869336385387062105586071313859856125805006627763927169959302269988218556248967931785233319926546727998605458973607985948834366720050395651621295885631093544812626687947026119013114328947989797777239314127684430228049621279805565708096164699986964449779555163715503217911058863239114472527212169441027496100038340889796254755398818726451568532951701168055531571394752126374892809621179003400697212096031620158208953288722155330313447492984767767617765831810365268457731377270095547702843422920636460661782828536453646305980199310879615904457520138869001815066608951029317787832127984054870667934195503933958404226752349258271689631243270715902149424828766841479266243620542047296599929324631458916743507758123967828726746705126507208266457617179465017142858674359178451532862590594406315533106608853727461740639250144634759639705767908823840163661350962260634191240003314403762624667330961813232095397924539891551022995587529435719377706933543955508645428464870077475091703353151905435053909139816037096865912666292773544471870924977501904132375893814282356496014263619733033822581459937737528745188149153327877980990484826877742842603378534074295378507829556674893595456385418069011618219486428228498631510965524853563069167927092691504983158323302610549727747304845793346208894677127975270775180121360684182401145743875196319814629199511146868780009332931380270515320539257789580570463628169432018883747355310943549382472764203233212109504035999403990170693326175161653138152955253724208132144957434385287551517192797172703182061557695447565194758903518677913444464415670986606536189804820590732943243986769457220377746502345401500369672075098117543348248317096712751019699193953574344458309795226169248071913699056457345170051822805046973299883439884184053019780467085773642877089561387139903642174440261456842547487366339992885201046079981687309929205337022131225406379860747960738800106576425430701457072305325740554140140240095637574212232925597005029121596211308668964278728010345893606227054310491266385846888775653093125190856307655315201471156085024229486868070258111716925401251183249221038031931307716566225371786652490363117350897971888560036694646524558106656847722841116976149234249020248690189307621167599435388868220707854149634417441560001148217348012448797437168613355251539612311950292404540712519115982574051295604917174677753313967497506811706756008404364463506856763208829990275067181213491974337233634692753945446877136092318249250725774578425751277407352835178626086864645823721833826613084929415734883616556481315204132929168176489752902048778625491943760726973314845844930406843692733790403045443015552259838080580719724434787964946100668014148199775256475850378234067797942594112261852175303370358648106535088884850853162229479189747455696327061325445148056236586472298796405728002377056040106637264361872239329390139511835167363129254927582516657014292933599930093046398060723875820752135959717417527377317321258268461053453366769005335382716511407408490535985205934088665499978952525924383361228908038273086794013367731368247340897349169306923500332288643455589528389378908169510032634448143588474422892851996768238170606740095825320456328911363865045486366311021211058234780051823520546050999835076970366373988306230580672743513390543697196947584225439958354268807719067813476560993039129163675175321441823318551250460154082451410041700182331052784359257790278385831862106552594909314286487404978481356392570512571522574812103019880391219548422754713730403260299592125841702082904576539619586335645778408122415350858868040133704979417201885778115062340861207888163376984488107861882292985303121791794280303307343866747279836290934364669254470160377308644771888351085413912323800311214113842369626337957081502965177447893568975760288286181334153791093929349359570156883590341651343516105732909690902937475323051144463174311134697536049590155429329112048012156171302418529689819431181155596036460606095718345008418262109676942768389819430356218004037731329671420026595343400390397913640265988169746970291471985766438856206484724357412567719348690075085046247546178265334570537909949967241442399737711483108254316131251377962924466656620343308037631945333733454393925418558289563269883629315288500393048528214680384626626203100623680097545358978691255764933595534396043700436990688599088597370580063541012529423387373169277112518589864087401226078965643297538144911130363456145947104947873295102584436267700946462553550874457948490878669995060141787830061527914053950229239697831406093495022375236838887291429638904137556322119150302669676265774135202655137990816170912872636806134780936176986895026224779725927849391092135043113697173664584483203310532472425802360899660170115710072684527097960064846364323152103324884768805499023306940768486656208039259125809406178835231072944554062997851745024799924167806951187314874177814210879571421648261734914789625613806106122356926960525619425909363179369363595553752926847169891063729901400767758630856329220643328495984785228067240436135342509804173818644146488188817060466188336438359769991288455492245269204476007687297326478504714412211461326036877208267243393209255221879886158963384022275252654612744598383338310744076158987848276653439124963886206392557620360001763323215511395197279930443366260851336051611546837400337938954175711259599717254707468769767348018532850758316189787479268553182824395202541269908261363350352318263055917001609467504897901311550528375496458950961964557074443843712039330127042112455418648444303338671754099643702704917875763402533724523460201507304798622190991408515341457557857521220484479646666630357962301603424276592090901285253143656939692254788348252317540441371015450871909694087564362401219944509941845726944390455237403366125951727218981390822654159706275925643371839932067455311630584868002603305772401886147785539763095008376739872696490275460855281472553241953511419189782936793066816553392861983487803796125875833705502244420821161196009677554432728604478955472950992364812293562501134606021065363945109120307547318302119562625719870015285585229793137503300758959250704830175725764818604008082017286712283701536630621624386501829257055110627995025546465706117262228250258475171921455538019759416079210457571051806182108732533928290326143101007763279981586436338701826055754018352828898275657424033364792858482448798913539042236713080476550059491910477590633520303501699729659099532590422669960725423429289568223680952906718261863884523373726854899678729963675825499793901456386638809772312559348473075986332791359708668496916896957934084780476292137033062405890603582582722849319772041032136958202632852018326055086419687617632929775193634931867624651950650029371385442737663172632924214043271140635184526686399472868611483706177448767044511964340518426473979838522576076699609368207462646968284072547827623341818946128072822264155096123374758960769727425443347600082371903492919914894577979817144538486433174808126518484389408065175961060778062640481313428548948069025580087130574363881735192325537497568199559396069910925907547330296893111596633032601949310419232896562619972386642589092306253936984224083715616956478415017908195909703878172166388501773647778467119428251575368525732909454622391951031604196119309056751549118189449132292463366195060966623828554812285307213446038689756896687061387969617884379077349426857508328102548912873853895321527172386449126406251137573237551788167595653529331343296610397842201172145246084766897263155442143762674114529067659363910584856005460881216199977365234844580784918141900687737681590604128231849846615136975998961465653622213668715797270961430307549836609330938419254657723340628013927889006047538977038143059203871187853244617508953849919441588988653514513586067500957039228717283432726107061444718021812124392386758481942780104952842895700829656758315045096999451271134203323705857513911568168717872509384196139318222615478048602423046013201160034281476726680135885838239450390126685780789633535550609026440713871601154529654498230743990419907193674082480505698580447395051531476128540846917215440773252464056007595047891458845223585435485611615286202420374627235718651414928147786512637326750630747702913632496332928559278747102182008561702689226254912504718081102327056521377284901077665919520617996822410435754253986990833867164795870320429364316756440301920290678324133794161347679387890178373814637066913287082850978562286924855982329688483482417379133722831353201041462510075635200559024962087424876576957877676353198552163394590834940452242150590829773070588998174668565042477378508052295790580415410445878072122833274657195794343294144701707981577497185634118468466369876206281216749377601279870096771508805316323083428162925470798219597508152992607199356071227278427350286502211414238967824980957388743463615368801101680487831880029637154958510886566926795922069348654370690146547405019475483259221230704584977744787407261482213561003754935883788780075130037854790816279145085638680054123719965523543203178071066476811958009345881745925145263845558522828390904960475554710302482052426700298679152010268369753660166890250007947074950018012547968634438137580939734747944971661765717332613998756873048440308794994981508794573716715868116686546603077114123153896618194253058944849513292669686899650908030646294440862711333501555470209576011856039339606598011568320274986017046508602989600118560582876402476336430037006859084732334691773375389357152105745900629916320345498611135629153017094988658331859009288717071566274274962715062119100205474865308369410705679159699926091700056260485836550199845979428236679526603597181231248923105977422499543261477580830196404476729169073413650458606533290740917481787495724746735043528762178683336638309981055764725769665357393413094395572197715460902590605464392893910154519514725104392642667218063875654440383824114376551281889144354884584867558571374812148616856965467008182240346934442498992522850498035857849021624291676736075561504910310935840337219339101379839235398478632032491364951444713813040996610962760475266341469574257786882568132074233731434172335556202589342823793883173553847326609246770658138334882740289913090901086851795064803583032777084722510228401229680151684800504304093268280619496140205555029996280083254903748531968703860383606835684250482599163381374347953600383660824840536776082904439024049101145195871470520898823692910250443431369003196919628401417491140718011235224618495612879516385821320728749678944401784149492691129608935372112640780160641891966112476516986805591952984302007027839580444362420878747258066779966394258192356073644777747630752948063553962693151422346949604669880104207111079733307049544385847903901077163580575050630407979327685664426016891159784212576296028326205882760741246778638830182290235882906568144232005267940705718935224601688914264236693779428446743832090124862708732614852883451555406055357190229375422693399595174396743350689511979112051616270329409815958885558793768049953039126922174602643573543697265305283013360971230354235354794396604293740553472291682880894895185152922095148099418017385052874394712380921698096782724016985974283013235738744098122247470816330388287196689376652226760948140915503908099524657850506305728985404150189386332035629754099327223217925685476213974202896216483133008580063493096918421899393722923158437574275693056672862969360345558538655152105421340228410702828824496289735559291062855157417340460886643255731871393586313882726443142208576889360012372538155929337553734726694276758198997243069033104701639719741955887681210612130827328806809483328371111082167437900127981734809290003901063206089205249994632623236134418716503477395043076879782164169955992394028416441199595250280032563524543022725748953834434778690615695825429890591165803724226230065129859384444575737327538639007308125912636581914835635891354824255845995843859492818253836956557801271637438281237165105396769921815179843819045122884977566003496511705796029017514328693714028461069260492583730131449307142106233559558909147119325447373232920373166877817834263484135746243935801383124111313622798871733396304211834580460187325680257336659371090419080106050364532620999379170657969957305028112888991142977327888395619050010404861914549725838816168308875101875033666549172927144094311078988334813534807888642612317683709327177189188063804040964351378193562630066821528177248062045555186980532046670418932756566675995484100559976965531015079819283809127150968211892231723115673912652150751050910716626211876097227171243116322426606146436822145194757974070584962241300272625341232840398007553283659554064455171810898702093690708121379807680813130165130087159050230646671198821456441565620235363528937299181755581915046603359385274608098277782622301519950453441144228397742779069194067737495710142724344343842429686684790651041071377925144239947870923111186692177067708797112139166578130746981527886749910895035249522804361736183400088168686824868682925227945717527127271992852581075066449937329030609409018403006909222137418544288310069580627188137434538880173337856886514326112021844711704379625212934355770188986390715263211241765781447287680290495923043965483555553222903796108424108200093562444582471885777848912143453526178921223387067766883839899947953324542698435025271304402866217106838775388617490055957042573628427609643566979497814875024577500963885383703350434223640180735272506884897615099439612851799871373116288879243273935432692522979775800780884265224992028491028634215139013052816379663643967370300832720173451881813105217969097526448649086599958720710173111432471558457719060370742960592314673892410818554289569285862786776954502482756369745920306578076599242199429734641017645382241573038220384175943688527076490240472823051786161852485421559490519983760845377883961870520250615393537421173412129620034444563857005094534780519176497637231007228753620316325015600049373481138670060148502610951427042198260915655781531536367234357699424440444031153057143875112859272669578412281637292644445005478929084095144507588708288407079909043819740246768167220069085356562043545936168795987240208292323927989839861605474147551887359577615412284560369230088381526897160199881051506432847203324288307732770373001517464858704184339445351176611296220222498423361207613376959726655276016778708983267789220324209169793223625868295804943902800727756551130900085309524235913232765005927996607879564308389242200414437182040122474515601227057500850172226068319303975420092763608941346107690470121978783024622935731578970960609436049721476026208503228371888628210074015181033678315807821403187544954765742079677737402214187219817210700966306401247804706910521777242227519942359393917744286396398048113110315043973144230337107240389028761035863879998449971027857755929826624327094980453355856317382565084875301645291295696612478002758314262296697455478526022680336438148599788683796345580277782326394324277607819967739486240310724185043604132065234184185401769366792716017538141684275457508028078672120635444633903867021296944133343835326922833234641556367852147009104840499074234067916208404077482906594614795006668298088174471606912064488254634796347346306771408493560710035262654452913624850094839709411735371779485039455257967631079108044017665166851960409869527479564494744475775791801975731132303749807589234942152963933238464705881066246668600188368216732060141017958810751750404595354521199618350957760991706383340439549811655037392046122970275758766200634742445815675536346585738161616016626061131865101997536908458250599050475271709399048962029997817270354871168430479937915388480308912050656186524636357965018915969050046579798351806881024006221571490454716223258807809886790509510893267838689763423354536407964993292797559560259520758219830238576470937738927413008090098531368963050718655701316337440392728214924416167649620965669456606324534360762730054506236036093062656541525748521115378627983553216545402399819893519109981408322393306658106477642804552483543052356143323529875872520757784745125849622020877699485799868034540766103099971451526744572689181321775084969789959858274143918665356208862932980540116599636853514021548087597102304900172685610964654335416759041166790243642941165242463629659901742107895159809127387729052457755426053321883376875664771627226054241798669171588038800146677261350884931973554370732698679828679015639149836638216357833714095559338058502433907704948231006022834602610790193458063860822302659327180242653052008385472087323139469631527829887061044670504489066947930602147771296959372392415093739700926249118171612766413061383059118063945433738201110861545134275105168758799932402407801324752845160024868402257920132651615680770926637768838431130719030728079590571821713465425605665672390526593155675366022877387165687981558832184462629608663545410553115637431587713073186694136421152011199907799973676542007696549898242447219085589827294622820618794966472997832665885738359754839822746831763835812904896129292073038989530990576318334238290569845416105835016986746630545139613116378477097555803786010259271304640725515544732104018863805155227098566244456419121729009170980983518990277766654939801393288461209354739102396862840965171121732943725651314229725256825750732710155871588422542571585080182709867937787205669954952870498145383275113588821099879306729876817479097753846485238610015793868441334017931438265546450235454932199453463794413077062231935195228883809416465882709452197434329138644167414336499985328231506576425294603825343725458033509480842006360176578877352153721541480388482873159267134208887180661941913625064626896437542696916998061191424495459690155996101034342875543441848986340728443013051698591936029115774889620765521831151635118509983740703842966584258539796972756362478359290553890723536357802335326685215778625045822627368752194123224647663520632240977290903139486382539741057928646131662786420236369988038678578703014152961769014346468830761207501270551067001486483130094563789159013640196307005182324394646894142150124159929310535717734682237904857212622154837133157780074964410903592877901361022525291704687876061416522805912188661991878897975562490475011760409773423455901499073938386021666532884077173535827806674892155071478927581472368856752060794639409445960238851875066847903645907642556529671899669235430017988583383770321398101946098301483032604990201856170353177204309583843761686586400976500368035101942137741450465856863760657177279939055394297757959184137803897527120161962085634069352707558368666249997947550753369255258344038337250990498969250982023244299144919170050399176412367539856052874815521515955865211217067829153530632412857883810327031370341250997986450016485229486069994546734276506711620853642282941991251164645233055810645014171419212423612239035181812386127840650439710441049780709004544234133564072270914368338559745003416113558286153226745084216958511537033973731349593601193187490643144578439605570170440021676292993957783631377940407182000047012973145271251267747283877715536183890263207585970638595227366912972475439572971621584706037946082777925357451475295854578534236516256907969396983135585393841033427689701072769842866996681914103733935957797638779210888702870756056708912993800046027631307360308668816216947525932932466944203703353066162782611163799354090292734708015769390290906097232057534306801842091501627035084401154066220419581701889630090235316219460712511513700163762946850542416287326380984384320050005482861362449460874421571259970926024483567203513087504311947357005460981492057750078222251708884325676790908331628567083822390267529868003172344543011934116193617773321643309456123414905043827163512483100537887263495284396560731869917110543569819946866599537752006084915028023710310226476827079599585668361858481529385688306892448445081222611742387018887208165954739593645052155825831415927230455567452808655784593497203892503452786717336180959955924189228054222680022984014485063151307447537302706526967868329251104204396092414858741269629420605374554258102540771376947537193162786508708298124624757020287797751204700792635782403297796326871590379629325650086676383835419383429941931547328783185269604417141500006667096096161684426716513292064586154670038582463244050141222989300297112898541494633685616396287086699802733342909096036783713684398091373977572045599468870129340722965531549975675400933649407726751745516033508299557401440108229995536997779103001414375237367805546467472308041625503219817468083008172741667103223501042617607974604568586458851946028324236934692161891453871263508087967047546088718220116563929844845290328116747518337797673876464588340286714707966290229404343392500983496862925566182015533155155084428560401521390493273464575855874243017415883456223288347861386661591562413576271180904825233806850497617789658056962307810064196049807760885557634076562631574879015732140708677867329641973994931333984882512498862761060869615386894426047384654406340371126573854100265772799864365477848126220104565261141637927273374311169084400297603265431320170088640628586716797111929319935627608053915110601130900315303082346825834158006034545362373684266741419223055192862274026778777526010293745737282751337042158272638409316320988109998691079163045162013769038721405977875346294395662526135343811178943546227151843539630896580213413515152232577709143148078927220764130782234761116882872473230257821267444801224200354444611516860266045762225664335103433363667447400407339611771834150096416995557995718522597750771748793852856861938033724855854507938642181176777759485850629047980158939274832105530819247889153752099739202607289095721762417397950740417986873736293488024562211514481791100465716019641927818555687423647418982445737877941393839786763693539124086789911515683261845653827594673413357083584294124470508737958364072760081527480401129741499355320722915038743228164025163573405859101613371563856513668206034607813007536036568010498601058317734592357989949068131529028105361687157153526680057391535495191902365373516132013828220989891782563881178479188573873065150355308463446955462542795729650716393640443582176758575535737906212303038479916360759395401422429878018050186664335743186764019817100099491491432918259630289768424138910901060092385435847372369076481449534496779742934658322834304742482895723076587394383498751049638646030927231621339824729797995594855477336805493920327947097883769519584435576886297928206067965045086227226596081897147505000103079722931871308530299929292901506377369678169107861521994005393143501970304079324764367344828172407083668003456169402313408179152399573924770815078780121852140148576647396079747052013035843650029728430698334282515774534397494970502326486598651262079107154333601332098631632866851984880512459799342855354664419327686410953558581437084266512573948366446296608940806496280170139149145070483303581869770527412134510708677915761191192301492306806462764600600687742381618381555439292457781650660675169834429481796254789711935766473348427907787058099918929334468892513092840644128649804954296291909151567432279626478740514371936194754847530094876713812622077595872755965821302238982790732947738360016439176666734189538277285056854058697234995317147673566563666910753648732200115205247669796763041089569837886481466239975777470911952725456805207288005195873103091304027115196144891266918996582756981192975715586570964094391249056999737486217684037144368392356121705787670044946199208173113782826090742674909756792963417396376263672272243899210347899164666914917439773239899564265839942400742637907584957331221058763515084108586963814439917383125273108824383566777373044999969745976242081137129160238961500914322983561701606942676255405181243949451740038711150605906805229047161024557145872746237941507275041438129798433419303566215354091133829467808217705110420780794484060355902697059243770678952024922758427957231547736348463872655118557834859747378295853544657558113989479844061602375167536737602278899915230457117626903864006470779574761487514155277288096612736918309451453048527870762035413257760976548904906844581496650157255533740665817581941679515010258751372158373962691369253401328684073138203365374077127437439421891241630672634610129523053830027893166199967427784829542512869950149862576837733365925795434187394066390274277776062896457880617973836825867083388101501735495894027960967683680034419696820963955416067377511153503893833911587168987674723552490728214142455323674627709403069060778968553433745550922608543028689935220928413090018146296368180215511934101153102210810567635889108622218568668202909628959073044474909878820120182121147364013910275555277822981273675589715130022190345912476738115047925570493897075436381820570158319313904800991104096379578380666979341850977666349854708935162750062307734944142732958823523044765017584234048720301204385805778687433534718556263765687494936713611856602943441773543014768066842394162631428051135877946210558909164885750578787384893153341001351573903705751950202412933819880970801063715239911859012063077271129595163527577261262268604193775661569238322455894406053248731026159024356947737554281180266642507361768709051946447567019700368871639934019375246053348127120881736450282791922696821522050239909830006021408279870198450830763175873720769793502320037470188664819765817970647467270177833115801070778793643555694361027477491529980925225792179957888964381770302660317051105406449631782938868080940704220226257841454574594304984081894733796162311195346282417401465406475609721670370584622915712463008567139457347624642211045890429027180162266874425607703495253038021322783943611431599183782149517392866686382714171653195587150059504200436357031154600785237351857051958270223786763451530192032084724393338990281050515599852574237977329317665082472131732854393823656862893606560784095409600320366441093183751426607348620068114799090412359851411325820355827958049790876537465490305252884548467729794034381357193414760415568413019967766675062450688034581708600839132841551462452589664503575673846688261450237216437224049610083562949562112300183285239048599925819303777330961260917351250851300049566719055380876381306665585468492559093459609832397027105968500710887645254466483247124502344730710648505529498771802350462766420988226397105355897072196282161312994450891311028347471160857802218372169009832839864448302961571720907488396046336918642489867311516035140657507230375690876064532205960302480719421528074390061556927671318716890887829804006684799663938301734128625920758665845392758929399320730330073500281882451749553208090812912989865938581156355390856215811453936078994110222004352981463624171148719318681420710663775868920545250879816200588681395365264491449701026675112732420004527387139853801423155747438927647741420525431487579672345228115133920373324710524537678835511754961103697571436723365680584109806170832004027552676373635052815511956491400337140693571514620044328005404399593990300821171515131764181111328519883935813040864190439885718145024294561144867832474416593775609141430630065762317228158283080293282090853044945590202212559361032080516260463213639376016949327576124103138597675463880889680559314799281436740057388589428058147593526319897030351212360754600727535257632404385065465823635713552727492847187565522156737472396641165353342974933368003349876648162588850363786374334821919366224201602465850206781351828885786543390734198811882683724360932015473266635300273659394075285228027201818862573538425745193891504139257280783262363257879098779698835291675066309135447978961398982421413731076538970477350279459847459111859107678544706875234368768273349341783844019023602083782891979712208110077861578054394267432607583150079542719545916598706977850189516902232155793757802305379465135025730923403184927269851612925349447445640397331885299424792712089159846757776314308113433282767244608808028942861380653412080470647668859329618297840878468068208007560559139599128074253042127560841653079094697623528051287733201691419287142298480000278368943867563457389236835759258410098650667923295404620135402966596327164422033821258468784590077394061006836583489377876598020988710064196389082691208986005885753961580741809190698529299840697162400808214569235457709628118134448774091806209447773558089793191743083722995819887671441777532105879309335742463170055934610228107910466653903948927286818768776205751204482264434258284912111165489770834542044648397237631910765228959475573984142156815018446984246090549195443809164377758129363799667295733295939147623233774304415850658142437433144859754429998560537593850327787956159534103554922700091516996510419839588784204527069442120055695528998253213402451412063773947912010087732802946053884784365822321610952829052362806074929619572477623531601510436039770873339474369563979665054484490102607023324406167312231521939284876677079253754324115219724218907564858099175764426681353683058533234321707409144876310336042156836531421816090330836040914775791488311588858710103794369541174381261986848096821805627509294585817487524301594951137827077564521688253293346982214729889864454058238313593383084882646892730236166361326851241470377867761833626671273498239415278206978677140895354028864092995846163939786906374159446609314517454445226741674363482202194194316936905295475400782387015775028237472221942579953538077679602836806475291356018007028648498565207904129584772773269865888894287363130446853372928011910602813855379816113391186973619339928873446991696131601741330915417749633634296842036962465102826311390949128819609625740737442730413510993273530257539956610089418775422609261784541398095742673951573178078326134048654424594631363439427965336558637224013184598895344203555897581766542037561125357239683504664269125744478940587873677032155868307863581545163438258630455076057857967076288212458998494738540741717949202292418713368748216804954402638963686214976121337920686523958182443557696659357335808522806320149059873445265802020838378407122446793105753806084888049924857279697148325883977703137481244456969899233533327885595922067601650428079598862970177641701848675801772674989163525128525201321406487670647032573042207081225519147410224611397824973555144782281635631455695511230183757739089312989422812530309910588073868568687679736080315839356844949217668467215410895501197522304792150807513528385305804226703677678437882392307765432968641065242097841516342382160169280230286661405820343819432388674083889859316135617088704001734360477219163325265660301048278270282888362151342392867875201473366546239482230420535323210369131838523536351582951494718973484127719883323314002002782727751236898007773812134727438044314801847699953771524781352872378897544309060381445114730967178650270687855765604907415226251350353882396922679709501595116419084387302150072303723593762489215596915058444802208227519575672971188974072230036871877389153417459921400648739242032439223542794431310714176867105743190902831649348900051887731916965326380182542299151670968072901895831125157056028780540121398414333862171704598403932446818683896377925606396804643671765297840495269923804584542087384112655870253140327286738696285465242530077188250430654649014839394489256349901108366185007723394159812409959833904447375842618840303157636596389350414016844135532185450170615587187510490900572572605525170831571203119346194088223220080881977744079457281265913518161851495352773720339466862230609750814825232811057088822217132716452472305589431892256521947269533786474800898002462441275904013448562020275258359566561438111578221505962882145719431313327873627942391009988806359658858394335535822233882888683745282912412455648494630567227469164384590109095968303357976738460586681004834243505057193192963246950603635882554483497382282837941167289949915979911396735997142340842392041990333336732489133579053173897719224673992826214526593732460954598193757450100271542786155391914872339864955107575090427307467506093855551740004420105972936284449933965453557930677598136783338999159126534602167997812127796019263262243003835038554807029497171180632537741968819996589780601115043929682764441612515154032594900982623082505532490999678185130805168645258731809297225064072982013946725464760804912430915089472206108511180931587779691670279314947996421632177978469113586382625221376328293892085629046964311836876402265804471459366316054553692846353963947218785201504323471389421146357171535312885635143997672810701167224570746284138181297409206155627652392344635721392231874558825621307452534164686120412464202847576074893825915057828892485442847812118559897692210889917219744938946522438157255071785724255517409848317432889205647254130586185507422502493922326175404983244691146783497501445259249116412540289575037557128348306783099417196857349608224291635154229555731381445238026657317782582885016849715213621905185665662131966601638768552727170415988966073360848224189046483778871366769662397236714206028459841724554423676170893040605509577207128847323628956405891370086231285754381833459839933939793740002092607613609048408276744777795864117707514493484501142562358940362031973411121674711037633920107638824860310399650703973592476590823333076237036553760585413486502248755537875834960962858165681208747709945306523274799654073021506046372454473266664927951206545449493794182728064505885985152144683665688052935184417091820082501856741838607304740047159323300984373342046409143432727264883530404168809374574228113695223170011311115149658646603659112606202441054554967847581587453785170268134990230634870647445767821250849960978647220578607305510062350710028994997499554870316768127347592535878072438479606487316009989276659537939221771013386254222472749760300508283806237729361600820956686943678237723532629935792920191031629431650477515602372944648369817742565471392861877404999091796089948722341234829037804431043785629322907736356081756251429285140868309433674190740055426645001724408286629230528535450478098169393732599267715156045566079127942311856319464200413951908505190132323797354680543560738059113096314963897614878649270743998891233809914865401137892229979329494952819678474913873594622185312224183647760267283783353931852940025580236224029846598879348561998967025883376050639514539648789936096373837779064052334575618753848195729612091684402442386793691136301601523760181282780888231010521880150754554072746802059496551429626322186284106083739358141466358300122568511128400327286193715416096752701461362090271951397520738899294155111665652481895015700590073819233067550671046569333922034680532431606108732667244479525397843085294815415385084451173927353586321307536790899721356343993184287836508681106658777041630668330235971287002282047474017713152876552715276002637440894545333840847142283811815101977764577935477440723612516494976091914843814147690256615161748292680399068774459560710080980699761888051484876039700072406033074743687833604771892464328218640908945741624086913377639347213197587337908472221892658671071126468590376551148925293184180514017707371375215224415006863371566385944146693098535375550094883628443581331692432414411308848252051456375931484000900562161145828510343905581345431822011912299758944807016861106642313062995632061102327826836466984111446597252379412192229820097241938958671455524009791003765630921161619805003120185692702952522285094102521444588857646285231216765993725285343091547194863919713485276599137681420487869457857071211937606885990214634839225864446035684428220676349729056284679754673125212744913001410645712065908285812986715430784924859792558633755100266154505624095444437970390065191307654062557181096926856433693333791031006173995142212622604420024503848824372809925884632581940859124366514735063317532634338171853443507021211856685816854812830301834913245646936621489176767725555008132246431395350596210711881075555602648551758355704533041328425548414087578266653822307908422678080009742801663562024906578910909000707016259622192864679699957655353238826174510552747467350188306258206740724458639249176801710354843135541274384861524322915835645287735919481848240813501301883515725765916470909098360546325154019853939771677752111400700061473191821774380334308225686070824728418151264399729477228596193280566322716382595765650000476555140596864689531675394546318444363550783407544837137390149738016408856494928739805157719056445563695746114328845435953484929182470478895103289852368593275569332207473543480160743663533517101182843100086234128117056108387443612967942640203728985785759435930551708453875686995137745135233401778910922174517987175798619609210437391531635628758757019778479757244002701154477392026166992154004325565853540219914560210478661157633559136990317595079914716360447513537624193426802023305995929150114354649512353504006608816771607116840969391666405780985820405233485613048315408599208327933228679757855029262831407987444500539734709101826606415205849616811348829329806015486210879339980887813121697303164297806807449247198159333598768698078392508276561705532531018990575777161689948880325135599007924378102765161840980080216861222380750191132288903714293187558809848338405106837259327295806840520630693511203521801834943083718205240891990811104529284896933143338121087345103675759774201530264155977888080982299430067309266195614803379708761400979048240894009834354101755196024883890160231865860774365915741456095098448253443599313188996348491054138632651369676362556100456812955951658181906567245056158779607918175429350434054315253821684367282391743935173878455269097545697645872537455770503452019077780306999717325048076757794644313606745602620944468010798665185055876432336283553118095803968650213321196545181766963764215612443687997431339220943443975201201857204109324950593784314155275546528883636528492493801670979277797469512708470124963726351377676774953760291487565349761777622375120388780589576588687678256950993501229318270332833501214034726100937240932573768592930854947597262660331167375569088687591505109633508021617492795899900639596206007611275050447074039884037968878225800662707351355890364803295095254834394898126975786576114563428955284568945800071440507390608738937511937976406482271887741992047014751149272791937714171750571287759423378524959338380104829980358642705385493054094326895762254507623161477200153860507511779417045550387237868537341777879109448437462613451032685986175504692687229284308108751054497716856324180065391341918972981652734858563260245654103092943159192238011574298826378603906003362895719856706912462246393364819425983913331619442121399794009742529418607441816023825678341004406949672301010916363807580807366001518894411351287982993751615447456658315887293630338884875044131904262826039422575060538345817889523572374251046831095037918153174375428762092466738018874489421201137176497924155379172618540845402033339010134573370702003108222411344712931446354426758971680309594303732658848633125382610962095032890313510124465626486683284326223907500240135019268346892686387814360279916532375583464421308117212880413311254367670989201183297699469687394995859680900613042850784360343108128450831480327205645330372065255485989992886599354658169816755408712001721312616923699136287583880918689602298576227033809093105510487597503545124970009768359921904910196236961288084475407453998223512919950690463208183632556271360743036898364084561486330883191529677163986004262864707840239548157982054863232098154917206715620010423795060206122013345439574767299420690658259498425153610076806095541918560738481920456840484807992647168349434762594423187047457553168249839650511068794106857642880594750310317511303395264968800589292306244183039650862533749863610507467773145227012111447128552702672661088871462110591506881565380258940330397832307700940440948321251523130527435590394622197354745943492614908117748152815265306368415377426876050985183562519596026376544084550777951503045714616183488614983110885089384499547010658492622203406641564870692977161824895219357176502865257958899663634863659888487687708624148549475106611050717705601438099502981421760138471343168848186732670609229500295479232654502354148692898768331700306429917376359596154266336416920187519547603519399465946577111541213589853779273855439787327862688926789688874157831646954854399403241151963833871418160523123999239484619771740591596455145114504712778210338613394177620132344949189190160718450073723694037213997034630800401925500097847568169864211172099867360276145987547210913248090144328630860989408030874914037910136127318971251129069966051867328020534719790881891213354225497028691280676017760308198219640502522167416297001744603382132364728049424008826523988446104137288981672370806388029198802720312481641451094168815062656810955581389562754355649317404930058972919653151203790513352516398928321855422021113901859229025197328628595706367946001410807071869714992575310083007933749308055827183197742237556100516875147474081058970453733019664333965436075656078758258056588724010720005713446645108520158422225104764781533351869256242954013395874834674018167709555178869684764498643324723739827278136461731941714807842189653396126720327743508789658687980656847241643561019230779051581229329407096639584568157996706613433482085035562993109630519708413237764963841200784369398472161057705792771592842195460033204434107064189890095053170009334621710285839065322752172883477564563496247641580012276336485350936124795953200172445043859215324072412208693359885566544575289540997428981482728593150809999305557879844260607598280105985049203745474214066103904233272358585825746883568015019666397512312678893324620677349199932827676152463878963767879709781657544134595607929663324727570382391152454801315007028180535986866734332351112157067398722545146196296362056525948177062501950701818410346528343401822240128562062540979501116213002307200957393571631682504629847630329473067376333192244954241448540119866802528148387413063637683014008976178950714302043988917302838798936664953165802858883012246234108007303869722816913033902877537477289994782660334585821685046201937218686475894062890858266044668300747947105994103282925801219453121191633254949231943486142875092821526902198696066737853815322618260378127680950219008542584243296162529801681263567215489375118280495113790477093405814537339833663642239672467005828801449875536042923682887295986986503049415008985886037906079980677168298864387781592411805431976530202330008552616882195207945088663813657606848298931036463470536441815691615779491827918031384574902849741102888299910607797375311453902803803109439690081460459579479094036810280905413436702186591012086531011959945407677180557632095807755940458458249795907635844158088575383705596889400762515744094220480943149674333627863038049334549325996680821880913355588806400333344641795952043005816933937000013503905511488851500402003071303136699774933101085823133361951024706101880507122074781972650468720621448574038096691851433612791788929851173098879465998735025271337282239859800798710388135144111680202589236338931278996968570971486236382082416352437777305694289214205596502768763007846155279258402765885119154206890388313091526536395468044972036585553443702930426626938017496290712860731828206825910330405786362961689431061063833859396324409783126337219318051658660646219524737885474465255145159995631683822102677525522385556855296948115910317662013448992230292912095519764481278798151731146816393434938412776825930198086209020474920413857857733858592450097191131291675252421772796949621469983498242196893222960088952883266404156893858684901038374059165092550943724737960326057444852452789400468102481428901680381806497341888020674479855879672015862504393398804311223895083417831422170129938489359102067082362437100497878004778436941283307069759142364846342565352869028658208189568923851658028927550461212631737617712450800178659817189595385378979404162584923706848189172724594544731179282137521451250629574964440152048826020466525204743475769818129116057453268844434173599748290238029433894787415513308152967686939276531438352988166818259568292836883314724843940091416819935203951815828420746095013641747114683588142605363917322615839481470361633474170821995440070620102387045491990395051915105009016678621625833261366918762467860071992371325397815202469119203012040241062843958838332964937146752806497669990749933365152534940504436016703694217266439153339340733439381451099334224352661748804052585129966143669970183457737480959686320974905570144721474942946303166950451079330519449927778328133427349747238218218422547863807568883375088792824206107741622352609741710709686655524197208704753079756152896440994005533524400591979826254596775851292903068381264424984194774020736279113742235268181280401341990025349300272189553914662325614087123284189936570027083605684100999017664694410458104359253330584084466366484651070832295997774249095388826796607013127208580904192104522907510591269389504612142736612576279085292335485099054824283208654562165935284245045535089740870719964261299447489797887388150002991134852563132356567665896289766325822841803859838304398587766918484974472888544227914684093451382833945671391496246841659425179825173850369642290013563797407184704500111009484702461846149131046087601128221848882671544692938314711858982984723160586895144562802344927545292872625144971259026461848522805020234299873801086425314259740083832773320153210828398997960885195262833333909712331337598456386249899073043521850255113250736735645132915387200805973144671762125529771951322390700405885868250285148764223439182058533784256329953814324913995785733335591231968663015129555214220489353051569242808034199163127368835868205376160022764247348636904025259312059941988212524119215693612114538698251247391598325015619917991906326025374320043174562582817252831396341955852278292919579276294303211619639890024352691224135335686334641471110925201552738677165941675964333946963033210651912914821311186441414026971705259234984847708908734087487630262267328570714389496580435900440734843248143188730045033160245247326715373833248007347751175794099642127129886109584721521170329645914995808295629010820785017690763044564731848008198981703643743552760701601824926875442210689631444728638959558849923999992049743495584763744041961945607558860827276065036894125785895952770889979746670587117875448367506490324632832326801531204352765462291940276012635359419621519531895179901892698658073891529472556096444404131496725404546202128632205694956622894544866318902702917420013472305523176403452519793714397488113427809532551879935696546195116120319396150951552782503255559294256802858186724339970313845651043687937127993132082197272682820652257721626496933424982662321732699857630348694080331665779212477492764363540946239791731809576642056121883301731575621103486643874094935851911048499053415149452585539171603268138414587323296310628046504589432648275520010755609666082787848735830111626011972023571185753701005421655224818886856845418188169223853804706014882991227786946152864932667715391515639267176962424195929878061981971854330609566452642699692393941056662722131139898557397713374725358572654016537302977081051575698201894972834808363849812724554298773835735900147699825495463464111439468440061057702653163724320054442331499988623452800334632679793444359708624265256071508411724150974497917081016151903646758757990161087256132850260950092645131190739007585275646583740126052628672850466658778391491918509038252801851437995679776374552701649908413933078980004314991052503830804877035549736859551479611126350171381150762933419879147648921632208557644166369404332669239857036581728431751644884602939459912961612989531414208902696058826205130594098398459675041265286099171343730965204874273723182189846970300253099191628593207682286977255264009684269592588017711775265427768303788720727161740679931471610400748502980200160373150980399819473267645503186564457487245546753102653987117375542732905601259510412664124958337152779229747049744195822767550210624588721719324189960353011749353830598876561416478526460704736420010041300091098793852000225810664608824039043941392808606937675304959967559884336466336144212795314819638202830642100465813279950709659768139318300751110896249426431027907065343262076606735470588570304348556210524409126226507666831343466357064549838639916949696082161936581409345204188650613949332983634371138362739305756697049008664472792581297639027170365392255911327396419518997971159469786073543840732680636942929366388663744077879691048061125944599216520940040368942056526912720622016955159995504425747489980387812975090282028451536885128093300240413966625059883371674668983055081171671091782185673885376429500720149648380002388796732235488842562592014017616487903988687667233402255515744207381920834737979623587788212279331912794405081454509029639328026638286274692465302632933672065454619371491620907777951748467565819342483436626601778047102996140248291657250274414333496017735303660670639726179291706240439986688841053816411396358253902253972021796328568404249598154031797052114071821058990354175471933515887820807409656188667304961108705330867415660296042856999523011814979065578694475521005584251165784303979228784256603844238121682743621827970096105913824234667657903024868282516880249662282019359633554083570115996833883995120738796881589462007063472188349314699431007945937930993931112354844190503163884744739990388517411818103843333442758844803127302170533216925582642680248970137598341409881014069899825124315504285293315291577008741630931740690459176263295486122968246762811270182068907662208320309874532650155021883087106259244723777835980896179841055803849763291143809415682280871041137177152266028411983614711437993470025380073687504642700595202912990388341686978702019303278452040418548068894802366741991577081197955953623532466246588156059117197435749224205187162137057696126515089042928512838328669497516457097259555363271693273204743382829513884892050144244487748157805415491386221707811861148142763341139211933239106414982945110435791448537752322858182812830148105452939207964115269756011052770595317849443190612480733395892194651477918232010499787530524275742881664707215267647404756678984053350511862630304385077293993825355281916578495806510072111769127788151072373316899424908995410815035662788483328275358966739499322176093484574361671766861948370621551497457319998260453741551470367323371366590129625219031112695814692460300348694060437639445642710392734925830601938138499085728557880799477887401111680464999529004594930624193770025748622169394554695832270269647178671835717588018171948834423051857153914528182757525346755263444855378949859573594419948711208164847196002256920054753677201533470352774016986229385437557441064623974089370914760167506649721959857239790709352255583976392922965443869257556089343683981883990357598045614933117595003666941503845007318310011856661197779459798672062442198497969230355304288316682071642511868185294362539637517699033049446824639893858219050154060358478855469796327754847551494585402704964287909680117452209772936711202282454634542853358098841087878017783956273638361169487227566215240810224314705414465057834874186782601558186882761646611353941367667444658787580966612619192205907189450780240430934132659706429501708115872729402687973290758175905515969481294622658921794198260357535837308019483890751384044525064120005827134958919543491024509019649113754019680958669330068258744173685650582921954912647238482040574411667590973974031520620033981331490988990599724616791767689382767864749179150205471187383663290324584851481564926309459757716370914575702201212222755683792237556658841150344486791832272283348910244511526582127189719565110641087751789194815502955917325134604816825826908406875946612536480593688617384434898475808306438307899386472415747978354064969041372701132216562526761380320488864676024806908404864905596036855876389331477722509943287004173684686468588843279958364400601999023759668362704693593297481100927643486480505364549776218151501433062325086772412553539082659447995694516686723832311002101679398295004344242913085856798600673222362259286318917158758504217235529850295223111916238090124556606091426226360531092789786227872054862759774414687665247878668592872326778272279525126133372901770422311306049560142460286458392750620460995622516036974887129008782225251465030183066006322170018448663518855920740224679077939380282946575323693019442580505040755039963185285705552510569957055510744243143408511288554306609358901879142236041562306638171045637273148171249939477229453342615736803640317981717846440506455724637999414227599808605481158789407657131568784876189143366369859013402176548108369940064125691038157488381738751734463289061802016347162347407380634826515008960688161735299167323273512720217879594592077779287403043051386296614161131206910703642805532812402018222503176356683940686399232749933590733683419949828962861346903620300936644132687182183984481377942438775744160327943642878054182315852446893273268613750861055817164244751289885769733094085997390734179996670849673575127313970881913080998867272549098704686110650320021610993890965660387376710828622446102023932988681218256211351904186418247121444966837512202684787936642477694163345801105862752130812380474927185214714790668158425823321702566629366235387581458359027987273161041192514592124970325237120852592110520977513545921892221887390161629556257878956426857706792314113685071062264034820728015762142233640283962220223179604745164480002772430682231380480856555023543274523089750167735982282032508418627977649292083803038827122447487890518798562347345640215935784164617097564620300368952140022746247836071100102986014496746480674732087532528806868436677992536909607458406162213721245183198011474006949627704081825376573635470611267332407654577597737762222535286717102349294353580128843493433986061184414946385116666511259623477360084675879420601267581262292372678298100901837587684900730065262751579364100272628624731734592167262403460058922775263679303152267466321505880567478056515813767993318928172535234819856295469159471547641548960663529793851615486483581546403182862632894146366560056037556434590870041920561418597369652717683660645064593333225828654790713799216290629603052718210756460147495033775666090926613329623892190007608102066060102584640489216893687329697631244347107176931001059057154734551751406621198331975378598015489472689171476066447273192137220636625950003397415481855290504986968970865010828670234659862079687776378719121308636671211228079692006019297360776566794223029316791522525139286894776206560085364655723465664606084606295480169951601130615172042008931497194224789815406402403696887442310825844550697757292744652627365649824636417700676477620230819000949212357606035848600181633859861618907424028295894017808705033237720288316269080420440657915921235553912572737893620909917436940221377523392090650198333926299784633919560301428711584515552112866077715448415582727108896292528055401983572451195151033968401630908606280909959497965503417885610580375285544317993429635906872235584577367535451070562008737907725481320935015845547023712042623461645541068399880002232948763090442534332595071912910194713878043147191054966470004568590015701553812394775154912146118507160555031480451199151615262060687040026860507990280513525392791595605811643430796854460210619844860170627965984643519398229078468458019890785273775564003818166313335482970303271598803407467123248845593272237891571511554336324522025490769032315174372285140878165702363449649834052067825736211707733911916937936299646327809090553917170333252435304361289769323334224414839232782558657020788691079304586242359696877783351698157263882522473881001247688528194393671298560503081132708934725661414225403984704675823884859513760775352366551197996232125421081435011963786330420155141769156385238649246164409001901379736474817789184475235649411389780628868231440659638852375074297183672744342222052490842264035714309090235322450173243318915536952706506426106912167222503613730723052964912135023336526984145066699401624757855463440845988993880475847806610134048183139409349577863892300998916133851822786891481332360901297677589072091902371943881090138249191772325688179527686279127458841962866974976733859072007307093124870613872709935532477433611185629980977873415785089357549730275503165918359007093383364832658514019757465082216124999740432971702567913083754040264857226561573336169217884070330346046558196907043616815785669623282115630136570810821550138570248066708009846959270107701026541057898703041219226743868038152482202183679824073660180605860912225264523771583994879684375871545457550693850068957033666311450017896286149146330207214960432142225371250690320614016338338589921947547147703823418406546149154774930179171924795117240245375300630651243564515946727191670708300232885140513776243922315732913769779515420827456705919077517560676931966272389943101225786902511310006128204005233993146685091309520116993196844960167118167686900864956241108325698916327645119112653275324622274520727804450183037604511348741551967381957602119095293040662966981616575347880609524879072831959954162548011158789938360594697184976071297317700681502675452631513338114228366670504122737361090516304792432441851774618889591929939754243311236177762044917557716046915940717938615463168863254836267277381945386131869750463934587098296188713366529766306480764450582388647133628801212926459224940979506759187388666112759333679228168411502303807893356263157997012021696127089022398651207276912153718984517162666143721544515500749047672221471215928799866152896804398773695384193468657309885321764115293864567692281205597495477986803849930418943314041334996568211538879762736533161515056845605913234516704729152019390742438379679994911071521286704186923411549126951251621446253238619671708178254795188315974253072999832858086372082692002636628950801616146803758642861868768392893912478888951669240247136160609947284819413423307933821481124591208219840529625105933739914496289573188558073537092702707561044640529532924392444956074644053153532622918240450124037879243395273890826076562910673689398529535130903103774087751248114069789742925858132071132903565128551111462018308145490267104152854065163890510254558360846648026384984361473528070016652133501542566593641305566080821934856614529738738284103511173669825739561236849471111419809997423692611104952643876444265002233245272488637070489304467834083434193121184575036025330911084091303327212081072779547080620133401558159884343778758203864844097064930898428013960393000744362775356345522965691769262123486472234175854093342536128629263184108898375885624025118103332850810750468191956920915887256289241770189413979873737041484747768248027479187872069265446919129371389827144326532514319830307232821069843229781413156217754209960508796077700888929300897973127896826029077733222124698217161546289976217653248178815517897916721456132574783128782614961713474885740358658174956908116747751105843836050053532814221253760764475374825448586670223646038825871551477170099060050750568863558424242682505426882558864053833018226733413165682095434712155965983553953637609103250615407572439546896299855107542542712199562738968306311835943142183753029899501651695130069202467473824065628869543822832466619603285628064064125917609842386523566600817780041347670795536352181937537134613769727531464263531515929935188382797444399376949938396471057741231668497960478898322790541616589050290761661274517042071614433878094567146106096313527519677440929946216169610898379270516159989876022956081678339016608773353855003403563893255157122804854724493859689252161399584958178377318176442526449032506105279539386976425815238584242819123095276472077125904711200577356200979707994249859864968278709933996639683358008964910766713021508228368590708851119464707335238766573759229826850852503586736381416193657726990780737491356482420178850541292476316644050072958385624055872742246545582199398399661995941128483126559909153391096314236485087778121056419713735765150111547799564438908192414436666381712966935762156463071116354760206691075192054672031284850345864005475181157888484524662751052280995346279966968028522445910976671215384590438018459412781538382850935770978300950836566557757059196291430180214605129497800192031218183020986961819813690373692588302615993593937032325131868080042182115775168998452524459012803447818460422348720490750020400338159504823371813804684847500824754846029015668975657011837518216446292267988217787691687242259340111130498957260802479616474519863086297055475573441031791106241861609975072617531586845291500256792210177547190149697678837030749331702626784005595751480028259125736753447555649598449398638090319765854872177158204503803655654961324607980776398725065098051119607725604809330042591545762269094699613372218984855479493314854321974051519950838529489042818791497150305096356549470875123272654516173176485977115920878445321432999629125374292788116251823475198633532064382827787474168212545479777276866514962432695149590441300613379502458244273447381176325388670812204017301959379885024490295538603515419403250256168451189153244329495159318078754963205820568483050844017959497313078487202230782773132996673182254627891019356119361398305949297399733011729131024167925558074323020265616474022525148128690040744009262878634791323107457677255547908231677418728970304527135870771633490096736866855738038983242339644934395339534561412001377284509840362157366541147028512807959535649865873580050254315174107601223921063517266187342820498105372652797998444216818685971267677121650924113151518778907423258957451099770710849699550213617547683350232915874746476286665085830166886297154837165804451226983305223295708363959614200063707600617878058565729555692078079558773625946102308004594632572800057370718618534498193524132300913826212371369019899726197375317755608128902287702910727404053630649765736716759240712104717265976410710823087355988447924190860799055878399098334818736903283829941960982716523684352192733221335581104894485075184358693873230415756831818726256628874623889612252281705137084076331409455146380237705833450223137539358761295259898475546162051210263202103209475782752473396347677233975089285157730745654730596162812059705352163440582622870371854779718122052961696628432201720648146298917617776431575347561295792116566018289179584215145893035934575844552810395163086735673045248836397411059037445973814452540955402837804196868532002242081601443723806962688506455284533209868812247378070782021185848914143300375173625993018240715089354144510161705936614809816980644036884733961202028232732323682623235876667651459383880651706376998369161820543121854451480912065493995963490796231950806613147907380226295525483773673253288150573810097630003615494084898781678599392212602684176237300891775740902070600547139810867497598242621015164363157173096935350839639560464290496887582350634119645297331090165371825397269977362348145967679827419983656033475430141795757212134822312965339349110984233737793930089377699602779849199585818727137285430229740906616583159262032697990311699114272699321909261852070094703421856904442400294152255833223820614270354137245748354959292374425716753748323622766565193781909663274899589279499863136147272376119056082602608744214551419883235430557653875792806359868930856963106255755143923219690590286007802505411374321901581887127590646895541969099404459342048352246736329008747520619780576481977071091548336514862762554604380881036338951365522381782002522815838711758968680362171906410164626158081794881452828814840807210242670346185134986311186335982760387144755851462755063335889924743022845058885941186496617648650939051199912114697106842981257135574099280945285363061351739847467617474075125246823862089318826788937610522943015129150655967227012423614211863954973778842454234964587095045644304919432750425914295725403790675975097154264531102478198888973089304123306839272077956023521046369358716282582160813420115492849617968997939509233483512506854217704643313590394049183195374916282627378893613866350345852334819421346676186924284132656865625754222797118099758283475075439836773702420023808031704774265398013054911920081812566499586065893398515333536085062739085150652444043633248632495678170431704411359841675950216049193147155500683014466818577878324360337953179361216441456290194184752399255977838961997774842656814272015973008005596879548641550228230480429139651576325393999531959003861144087827091118508822651817198821605292523620902436803344983815094118739357900530040651119991106746825778386658781876796469229870586031574605142074495145905600205089458228672811928872198741827116575972649184484422979683022764086373169058251563221364359169231375762261950547720095350054166664518188745597497105885343968239644376749506587892536141887680142957520649716487225017502181455372779016418824634574556565820941449516016590910299265742283502961765989070859058626881123076355282279038853991673496564055095423328713756101081741003307394127690701780145024547418925172759913834145040742695921841673556409591105505968860447451262943672287344121105170052430803100787873087436977896167578663977171401394408349309844233391290185775192966764670997936185483942145160922564642256261079665501185157709610644820205716561319278123364174595626553010422267572909594814408236605160657412584830505449879899354260433272931916858188294100913020982105547034183947357755397521593436255209271388677653712919653742033650143917447718786793020955911957083486237258751178098285177441857353037911624013359721791074154704437116738497424588115516706530655456485136173784846313790373114225498668076792473590233332991452983741332075753168521698378399605794255459074651463575193679857735087106487661676945857312292399415573634016436475660070744094548444818965536798331563296637364961985764384587069933953859996198371108258268232641696522802880579733739655057707984566294972667838320755886712198271937583922212525475589465979456616011126338428821859478865790398541223890810718691992672372855203809198932368826065644035917034613579636647295845694607479037448804228631149639012920983047003543628207140381873894294763238250896732535899313298856006491603464917661002750253673214701766105690357069483720264280892182654921183630462492040751420731139566360131194442193727216885208616878407780359989423231370725763315504183699279799684322953728210337651955518852743918812131214976262020848086794065293441851919636733032141647679151860646809648160780174114224272010434382822893261266612531417838714495834071664201426082667386846025403017722241421614976903271822244018225902251498178739846815213448593597663774959103914031969801352433654651746542693293193893323602188094164733459011740877459073815368992444565139574860909791894895929809874361554057829081586915839610560474606756821725851732548425195107898061368948343168026816482017453593556587469879916844430392005952491975242725105763603278291783744175678177244328539133469494706505007083795891476682157550877742334072220166387158490375387267630962389671439958590700995526500119430960567716235237195923098924087768403761162793754618926328573343051718081639625572036647667989716659386939294313685986778854485349189126956087320015447909585727048594179277574692993814602381991806022075991070636566390347720070659645178471594779576695522384247758901971917131143864040617685549361387624447199933663270407799283110539564221840207420086590010781419261022917370284799628075882528667272096119810822042691772073858727825892844820597778395219260083424352579043469811898059250268899362550619193834255808657940980530352535976492927070296330301271405661443288125289421708770820317320564326078750084472395611445745274942283616334589314868468984566185492259656677783671604707602093230922502817704232333745375904530662258881054522352276179484252432182038563928332472073084173606797240657891392530065148359725606050554731594367798565395315338336723653152545177674215124469079631899611165927080026625497362698626440447353160613017620260211931086407001403786650998132694810196916062126532601763105976993181801755068100922772633973156488078294907676461148424775821039495584375303356236199192760076574316096575925097724413825229791117390628614913979536146316164520121949733739534808957745658939935876423234389455133706503293789938930920598348192700252765721226212056229712945503022934593198976308319811820686414764213311786193651077385589072274073822688994283969067575558754547059307953790606603621184206972084753892609832203511290375346297082204524980970612786968719585414494875008582548265040173894261794816901594427870167324754299129704368574082470765027461041232389662710770547062598844242565004215763194892229328440033969752958514972680395830849459260216173538867029588156555345631645867391822667918916449885476211321824553263784475782599674572231197155294454242636764836015951002160138463875059130265624438959086452301383624919989562357874319249408204081100085312948476690185862749972124935255983417856103769800750643910642208914145637893196309118194660172914973633700489242210202083002269266228370290545877927032632988098300751964222086988705407553383160338774673522095700779115395239899311097254632262690490015601244466189834370483548483536242192334813212765689273154338440793650833383294587927768229431541673080602775193573284274374745762784317852106302147300657192626996503643980267138262208031265797241467828759646056384391035963655986495285945065380922020700331151996126125085446688599751206727668882305170157781662623826287774735784319415349069021939888036258830361617141381065036588278204162465640354902744976321407149698315411177711131681067167495481911264673681800739751187619168782993431990670674541348281137720169799698775653066300809154742331346416379984101134811435376310424773068808740140555134460257752840228268933334708968834727954905528635787845848348410645071103361828810371610887180876923444766530537145232055342396529898842037833814281235143413087740522427561401140870615614049699471556794865154108988460073979660823159849552062663212388175344793226268713477688027314633568111561808858866388419843356505043468818585985844604753925631672820918482113599272309423232679068958899111036634677580869066513514023302500541811164008408005532633027460916255567699609399494139682516861162622008135418576705661317415545124538111535486539797026205642505785502278712973758887578774382144281209599636762638551265335187274081125194775593216488761677433223964350105762182233531256829981175867427577200122945194079214671295655058200379780893779497776673846526870938577457204466913729352066429143965176716784707696866081873936198142272480568605913901387894020393910821642388760373448232497763649006016630314868956501045524943407686069926075091036664467935015921518924236000098185352594058193565342241158893341834316134996770698249244138406015769642368926134304834440943083475710300656487059288913352437251038818009047505588633626768805133150378460096061506339209160858106420605539605561834408029674050774687231454394273645679595658693420667528657904102280777386331633516421595500355877657966575935655335112155249766603536444685315627968218430910892766964523655283809947379171960423836455888495109163597966232881675872216178162516424594838653724390704853379849787266635943096603644669751164610687026967602341587158416530815522501033113491706799510939789575779032858700523994621147697886258598844344707493033044489205376766980028717839773654276495773933996488856369474928731783125426134699012624642971517884804557078283900024644978241217052245778130014211952942107669898906771386841658638347182684019163965378526138124296496410149697379749198054135218123470140704973377953076131518363615743648536193090102251277140801924791775908935772774021181737522263756637194074318485684348817566468694244799553297150512676556410916466028041505971363227862651576250037247503484506131255184122576549385419991308758776256984935619817361304620790835745377579547413433926633962654030223228692575319757090083956170925095426280756542818474312107679187575950880241882557132581071757926496117173129588455630483403438386650116002025249773597850556409466172865480051319085827750310785100690094483835959924857830133088939733887612382525966245466599913601077689941425817096807079101072768143999804355305701840205521017915010061032598093030609112948366015565947214527517675379048914011362971686410040498614949272375872944661501688602107159896085708105244741402908052055908113307732241137661522428807842158701579721857865889059504983698084843781741157673473090625237493600783024939832247395024341103923546525137980817849721343413711738982438797056858135976997173045419083779831688564803824711076707882218094258908184277753564140877161254295535200721856809903980308765164693178814935735091779304258224359461056644729387595731149621647511685633992228453582381424211939558229914342450524601890002009513621862254973546471126769289789132000682475270292585450765890692785050056225564550375898600598218995531194993873185345683897088806151865541346791969800687091826852276652760198091011137675406871648202099396757431203098430761395386959996414595118436411541430944228759124202060277860058243403333411027168891134506387392082766950856789772289729164502946673870494089126496305941777453852325915134214004965868129177826519732848907853953800831727092321332063308181921411451358994749519770755573377311896995221581286164112862989115319932594675181976920063803620734480631332930260847825968536290103217152103273274359013572437439990562781774129588023802348030041096685800609117813836134527592124987528156862700406373556639059808169307016830117361499168262247935920883037722530639012762754538979052643242641721230449160572366866399057509603984923403789979939526637707101373793483730589796590775133637131352014492744682556138827026992541008758941705986028216022324716897155012567296508605898100783286464133809257171379585536182046869161068166481858078367648421954977605531649347723109809377194426308134947276613847330812030430360280745372822335583153731215626531325906132159876748079186599818597105695436165471962827923122580282247135795193624563637033738870782603534260428681092325364932444580267008362787106218137278851953358175028459166491435536437249561680625191889736364796662666975162480627228454071526842413559623351410003263781338168091008659284440462274755732201822333317313788293567531508886975180072893740678562046146297364864374156945990266546898723355337962394124109654935478913439034587261018156472135524423344262714585858863272789436876810770391614651300105152101639272174676099310252216189173923009648206739400021461625363456985695804506976058189341558821876151041238803928520320873759248178792108126355108124167017439052451634427422163681015308520867538753149211895868904423840771615168254305800580974594543079597840796979995458620985849682584722220284280708593558397842832947016040045493057605337596069948599405946826223912579207296291459176530928131626521540760739574670547215251439735271306685115258697807751208145325464615827856467548453520971230605989048622990263558391362866244530129225126805917051759719496884263100417574267499027418105151870389013412672770241560861170263804482456549716752196847288906625032453608117246209208873463022030944252801161670656147110549099138447552784009466456117139719426650668160467552335788441891455261023304159029169388007967984593040591233219212406007385472128091386877754264506607549599755996048078342861268037114089279755620708856602302753501627720925105724178429547022293598451866436183288975581201575982096344912952425278187611540067725624599020044489014001939714330012009089669289309374373106140370704948402049875653844371201180168394482658550441225851400650359268649713918371027904932314262912765572420176134012182748533501787852886871948921500346593984970172735665727294049121482281302346737197519537463388604549423429137742258845258921090468495998694157941774820149172972807038374352795234537253278764243016937634730833769741336178925223136788003019629961418176581409027164575988952976205959821858284053029680777326704400141364289208143874446159520301809566737393082792792816486515105072129193349911442091692018266528430758867139605911414676858544837088874059396065230659505262295027669009567090652047439403559749436383140289109352034012577189956260690674590288026141111454987566916963129024023087038311454270436992130943901876646947594718598038410782482923249473171731334371249469611342599412202321867885494214730423496408607845573074751609510202602456355144015914398424322576296415232195164032846741819689155479641465409023314356134027926699503208911513797969183387731507543194975996424996509228291493178659332213356320550731042844854291139434495545418991262866448449951783724239163767982069580625995321413455471569375765105028835902009786650027736825961367997924129071271040695185011680695291670377108641835913203616611771431225663148778842172373103977058756990962127227831937013810538161944468814894805480876519886049636747982962747923612253613412149826498658233197697693741857989851229382148316585665803281390129698243940196172627831672044013401506501651037302196734699375939124001217874615613898119638544452576474882316513734013182807328224261548092941705790036369093476089224148311697344354687663405053380444438237531720691422222130960460759623141206480479152311537802856502643293897623009795583881622072258455704609287286101510207256654771537338768330876546227149977071567433706192374937056560603292049679570033203655705666444095478402920656751324191288067414590706221096751018541363368924004491653108494222266658850054358414602766115369279575436090996930322651609401954773734477401576004708968858181927442166133615633892222170590539248522549616904700544233881345381772246638698827180307487553981288410641420651728621428781174586835763334178023890621571539148364613056539278967404797855152411376106264449952178249686562991775121001578279318442662175109152473695876835385544262509939325601528851507339331994824729582409173237856166537985075898118254549201419069074587101106830213189633882388322795271085194997664582350169750425880048816938119203022483021976957109777713670341916656733836846219811991695701704360482487899736386824556922341892758971601063212665746130409413324687645667114138075360995370111435252579250934203456708491089651892577713281521038990107444179374159662619305034715775865955994734343320609493815371205017479686900141230024419890259166271956392930952621990334374721393648619438535856512086240544257192742339444813836809436686438423444640175919347061036993261070196373778333778975703914964237231633553815506900399817296364921389985829607605223671284638824819434154324442890765378782527368800435798442218559844304062501292614918995888361394652078395207076851001374080506411270336404575181947795953764921462523797517267083444959152275835829998511356510728189200068035608160929772193779262130878210974765504991035220803582204599327457420777055191242651688834681727892935968208440502947176063042159210766746038414672527491305328291293961006528582700430663201260490867907849031203238505246460171917418977831264848585685275965832555060419960158562299292790896974217840540582724831235451647484361198215025522626777545948186536992682507955074465002838988478413426484206432078850607606861662836194808564761666411996681173110234641321717334204214879945105239451285290009306889971104970936543811045555613454631715861475596321169781890452487441985991828605331394648856363796527794808404205333505684551361885923589053063699976655467262180257845739663362451221782602701248318728939939642911498952111785101441235269060594208600904595524842415860313884693885388717874523525375772904296690288619697360867922492633199350492335115600131876020925374931627174381074478319370313262569439738279993435764535433409499278071383483263940782821499733729430845181984740904219090355467266166397905818268406361583203449264357520962158032023416398549781028485441237101543871136971235142812162149139407615444973612376989830072196448614851360022955949523251858160007424728535193018120486723343640319962609092154920717935808900019303282039687035433877420290518166510733247095433905851411195740509512933509938850761834230284116329603978130894777565384570171870595198969779122395015900534590255375562099527226074470564105969626800352785149295111476095321508969223036270694064471072312735409989479503003323103146326140789899185881570410065965831011554213653861162014819648470822972577012109677124466423718513600242983596439554683591236426268971178049026971842681495583051822801731086877415453769220780721694701176374458512686292949993989593765132673641334721904439804414213787514848037274916028855967842572116385084803786686847799067791084266306580817630830682061108759183911719859190313238284672205947294839530237721981611934057275614022731889759927007787739195708167656091252807560520905366004470864143048899905496540174547170152089122778681094638987135653652188994577970118606110508281224547728653605513395827115932163693946851016703604288514465208300041972617394646992574811202595335889364715043870323426942031823861172478707043381100344219591924940416083814012341259627620360933725085507479519671355447685606230207722812650765790464755372172808982792058818015200583232308231481742488929021202752991421368339978796980344291341173872500779928274111066756793517192583545683863271697784273535423264556188548480993730803813481459039169234942377955506947603099470484626099426550490979076585124880895322774953716484907356992549753319459415649766035848211362139640142740695369238395752427221920792969475979067375672956083656964766738257052944233432220863751152304421592222339321708077694658944646993817807433513334684071477550074787450629264792101998976888592949842554270863515871865694643904590817212996327372835514173142980367493450888767927016181065415446517339023345156310692945068364297645366993305371688222213421399458621382091596353419065482456773815239977253376432300931742631326232787594891223157310165238805984163007111774862045368037573344339244834089406235105820581999340868451501162493470082582748705871663711853694437590629725329212476120741453431727438226273881857443584042192861746738204836568557409626321236980964291364164234419453703822869102471743389199134153361388342431570186068796938588988661391898853187570084028659421148029232671732203045860092474563283607095624632663452124002029682882026062707545492246130854924287005951258932223941509880589723933390634949420148062357939630466722113238906533038906975210995203003538855671199743316880475188723203058660761384138957521901786896895547736875799076975388456647410960016059582537581498487613414427043649587328123792757438728354999491718759204016234924401769494263768170564393279263189112973905877862001872082054090671179721371264464322813022336520117563241132693431395605158778996661677585579451368429493943903434808513407592685462658514526720338945587998585528891242991386671505369784467817251398419379230587197370944601637111287324079543011455846284243876782695192830406950220452932763691504685987939158592382602839816464376265976297185919113970480670676361524579211411196416968305918701924524008296715474801123520282546439352204715982635032881597300567380103880249474656703872222841048276711270926220379549009163231746137330309144331052482612810958269213354044078058552331314283375297240251325215567060562495828626226286515871843223238943130303774095971056240635421156645560498657327370229144158064999647060072067798518349722094210735920971590490741033997267571296974956767400690816835908451869635433783595102621601231826608192790729246169345129694635170262004744837771393656495438906774488924362306615565458258788518301466313226696934987533650081250292905790331071891887708828397607459835753041498830912281056883816996513551239871423564052579437036731001329477681461440903822817627582409183776196412054247192115981253537314587648025250832079412397333297760988952093926283927191726984255651792655626303243078944916247043448811746948554772791836082090447142846841727670854417029481125161546581119966531129717810382901391335546141127055117759931661605293048784702619466638433372332676138539822030551562456078664454324762582613346846408426122314969018335590850513840486359024211419809775086492940010477445184954847354937830634240173669504117693480115391905537279362238600996063386189948357263018846286151714533167964591914118960923671144158402771153898151348105209201954084502453934169105788545121637104149794630148347901814305834744595534891679456563966611079776763455720907891287677386309664130088762952196458171158394519463523850041991425975796778450495566432794261467782815290822973120057978561968584796664941353217737998723623079971209375651940170379619655696799435984643567900131545523546970959473367835008129429068101297134867607952689226357242565137381104783467125850995867960912221376523396521991373407507106479522732264574477901038472939231584423372638834189394363225115261643049872676132233341353699422364781658710097105498005951700306782887192934030496360373419158569348633733434961488070913566127486635578059347365459509578575820177165473755112632605231420088523238210183163314119976931023080622348730316331571884877614787087748966321184685212522334252114386012119423116251774753860828886526866429785810928223513714279588331410075140821250868224620738665733130283634342509885631852657950089723171244389308311914370915168475427504416242544393353740845787006716861688991754823425480445219421178388122489472120842198412743018418439154632373866898833961354371234840152261663410642460382801323390040377192925036606975192761251003053895629091934601721379563351942865155649730506961665766193289737970009354436807384682785290539793870648388506256698861682358367295176237615292904339307150185988393798425494899381673991996464539588109322191535987848817983849633997747027956465260588541501583748199019542957711173329351338182465167987295783230680383024893139621306297547147356889853510832861126064185459635859961124015837313975601466378259220897150137502616965216560324972731104308100064300206953102625832137378675165943793803487325058108150936691560600712454953789315362469971410592104566348682365280625917526150524794827929662823294415580712582855808914373885929973552943815174233327905179604339767890643194387852460655868623521724021833832615377897580565657188313582547172684614710794711908973300666616677979765093503435793535768692185211688192335456402657310406562436680826619360191425205456838527669783208225158589868678192460250088883813532366901238583147611079900248027554104683787941427979968703193225283597763304288542918611332146542593948329259584287396339497704010311523174382796646283566674898355910863135546472275628094997230938895474005663502308651373315321894920097775519342455797307978622585922214109169247327716722911431290142673304853791308113069971594695778198026147388575598425076168655042129816230789022780693095694270525814686779891882178779925384031440340454756715433716351152705533649207790037958681250842242525844917909655395688209009949593110195111530787038710367186691783531504174061086794512258402445546981825400802888365255450583691542898359184608951982122118276049577551017772280440319081726812985816854130790613950420740478574108691992896894297291332921405241247893282328128584813630513493938989343443003455656749621158166348270031383337178697407089435624922750057312584245256677870444440359958797395955704771950454547678722220718848033580353926919246826297644878069648762078191863564787672138800577643678611315553613665353916677892577306319954069780138662549045769600049647641975208510374360077136155743028797010903835939988472550794332085616830602140811587014630421192201155164070767681403795373369557524301052434167081942908546803577404892194130948763075434426723885154799370704991285765734401823058853100052334429496355072660041984312545695592954390453116980898413858178001733852738733406363602106183554197939892511741591642779763788199585494562194350893444274092178531712194746334759028070208315300364494111378679325179169331688511103403998303767014060764754207313457065277114364514083013031775531687216530122965912241287419469815899122160760667793092771267313059289691427574390968562913516324091124748952919313167187623586085381617827736090939578577235770746070575910855697148307575510109731287030700790938536753496963653656347386019773732299183519732748362672951040316126467184344500195693918542951799624851659510534105277968805575694980757168632415214062965553795514596739326694196995463833649678239054216334854949110417990435509998606059993337633622725894104774731538795840278775736777187188944585719456220581194508071345018364575994218986930181383771900964942611429764465961169084592981251382334320882234891952670634900639309060055114381699091369372995660963053308732864688687028283413859184066984802498757542797678678540359054472304185881744978000609039673161237421972544778275507832128224359183189414390008089379580843093682510411392895590262009341028142910623650020132575755972098888313901076456944933383360209553968642728218039770736192718969362030286456652311003046973776678073019448940622016148742456318728244108706761775080654296276942958688669399346387145737858258300069056763388548025877262465695505688795933068737641880312277310562531628302906182863829219799758506697462940970062799338464808522611552590445656578344609359218526058811016965688356995856756594490064297520184663671513439203054261235498209030370251644623551344683279889341509765407437069879269908566591772511064151935289083239338364743571440969708521420813830520800687312997297592715571237447952740218926646603204881983332405116266112577731458129253628887359852168315643134548414282427133420819120406569521074726396155433068609892159360614323456736747164708823056759754675272453061516206244494417769996207778000256700921942208418013638707260317482892513079017373697279169992855259798460985575794427121504420070721966061505745685069091514149771951759574480102871109667922131156822497369725710680524659739972676353120863256949091784076680463021765453467848956225135380799580210609896851172374068511186979289598811692891366330030735786101119883716394123911920203330348231454725910374877948484542298746398979881570101442949761444813585932058234840060216566674895655461170542001064218945723967275383359970648323768883241982727029512455473571142669975733710789931077347147287303784061658717612792562918548293966216167155704550658214702355662812735976410002215626337303220704352581718054590715956453183615273382092785091124620367795596978243623568250597894384860690433388952721578773659335572239124039913725712974836536623512860139737232005186921953842805846767782454752640776328560912489689236353755047716452467825242549431976252562864020120877544001190070063518573490346588826672459758577807525963572407907014694928258463549379131279111398002133361017967375435575253837085371728050737626481811042417561275388055847659838261039949635585826054333911711246121251671172652441751953302068274896195616428345389021387719802561383137669094293328566263008693568319903847107813062730932507523350024572293808803972729231007738031900147131148055871186498261198429203823923653873741765080291610499471621962948639463373692399621853418009558260775697429167649752368440132780222695929055869446874365693460630223265952167915006131034583943240179420430621228012863181746460940257090780298065279631504105899314384534158734679522442314640876484251493770840326290731108679664685369094183016448064543101396597007555723119093617209187731667101248056858503372443839899135201423415157701217939131659847874490571517935007371781514204105036351819061398462649961549783220980624747842934750642215696255965704853584048394763958279130803177348266506680116529017584082553784584782880223116741708190321075393019142910812917239601522805339326464593696529431692993428362654750506528385903638384081730951329990218040369062857884719801059943166526626641991323747665951011248340514048474374660939106149146576499260734134968336583469598633664576926653799487027563909275836754022922863406907122352136186880994274126818475571235750397668013520521374533631703048499070841252000952901666722084579555448699523180521621147710165141982085833815437435811565673329557632113507952315875957772139455460965189883382296702508653996248430685315647709867800031489743703375628237324347480104678546090364123520931307538722599726475631276157070993420527413223443020296468459132812870741697611044108232943108632550531132131982329389356002762134081401680616795578170140267155560434739711921839954891050878598356300936921624281136548224593689701248594658304689058753610586476744010415832288476005904178306819155726894716892519800693238425085519692598720379037647765699764164326580168169796635402635539762878242636299926210314912022865039338362843664383709990977362445747129139048751249406730963999324688806428512200638527184581247275557576857645546066860125016387448975695958987402311041234024244871249236352048226604378273808036784295326523495974042666354394993058881036281053994112258301238089212857749257454385618117574035923685071076370586548428052224229130583068084789379305005487287454782531167339167860975427145942587148499908718930083989187192833214237718394856051293373867444674918805124438346758124375149257829590329291260861346505802138606761536361116031123077858757044824661560391148606625245769806123836168799366425974290291881502122664473991510976626846708145109257429289308420374674044000494075129444630322075364389926810689664790025193532091719219206981485115808376392533571659228612123017426279039989347699311731384680685302715497485785558267960196351566768203407723845588543394143799646836567391147732833407721482364546095812531038717048311355937702958189890214389582188742699654809810841451698753044592921765540841671800991449889632486682598515065387362441818022773028290677184454553930663859562313864854291887654240781062949542542914706686069586165645626901943910064281526283722652178239316033373436711643535510230262133259188775658069939076072057674369593171770730138523289664149645770312217677785882276443482582739514834519068048307352530763583424565942571476977197062811952543900310602011128971824565183389014573885192695100688811267148391735870546076483258583150537719081797669813196574020981253164384437844339868731596139309116513194951733474281349764210740247281207897098083217769045366151609900951972597885539209090520333466272149612494411325390964679777072020403433579359966246357786783578159011355666288707213840920221764086181812784051890740383953305227962644206827352809068763283966171184441707601247730519875412933131684091678617939443070617424305031071734282867885083192775959296685249946460345281503847976847453811680752919001370427273164961769501110941276224238113417256921123073223328745513018099901337819021992775501576634874539186853628386956370091693466607457299803539796329893925354367296699671837996108867643832591856531851166550721524964372512734722577110969483438502988569753012380683534948057610452150605583420642586173594824359896382000026247787234904457109279572070727975249390788351887759568302480135145664765977160280483266478918860654969866403085777872085017177606694243492896907741194021613339747179254311456649209503818459556696545007772095780559599482203291786538237512093340338259353812299263441646969116007517688339834090847332026732536792532392812910859006641469483484918045204960940441049779849420431724578143482192501432768606480642506659982955673864905796452765298187575194527708895610442988575599680860216105552568166507766976227573724889066501337017211413124619910979307041744325479125849113802651818692270356861446520817462181797220866042181355255606912421415438305004479586289896054902618049652979643379766121601718098455999126041811638008710028473197660132355502944023463017072756941278591546133400595452052362300293598266257013543159684101798830033366255501360695617921792602963128414091950609577219050446205127078709940272640581971537745925838398470162473305774445772099395838489365786933256176793175334438987460734144543902596990703959910127435707978160400133732387817418320591886371354482259724481637295408402526449864334676937323245627589068222377359270133365477705933638958246072115446055724684491065789912895879358505962029601369459821598212791312164761016378058049311651777034684476387872488522600932121877769054474431402199017969771752749953145202630056401182514678576748400514482962664234893071151134844934369392294340116119825487895781557232933089963435610437417521560858746982003589657201617327220186441093704907814823513585819963990181755064461187223594942483722501587744424083282110554378755400279497932380335291539986744272546404454155148042805987093732660793855926335533419215427619999448213611074385160626143034022284973914506143633931204113855941232743222878682136017145826567768619842812337508565158563629416478812622849196861009290000368797326169773630814432419417832412696737982992594630215176599412816176324221330228434519057468973916663786379245159191402895622459668434510062990178444832512737528269073614289233549609008707602753535694560954103355267198190746339361788351900179411001077432732256404183152931185279605617278912365370559655519710192286873817819751416865982713376116892574906038070677821596343310149807836587626282099876341985818203980539694534882189605551597726306356633826546926691567970729103647880573207312829113544887728147162762177238468750806776484916600030390574678114593284785115711626944890361483200530813469273472635122745513240947109446951777056238002534030137348126806137640496013285434645060043918134555566448450460105436728184961031290846632779300413168162821182888963936180119155842868691475222095767312926681344784816091869572335133752703590183853974592114231666732655772648329685955839818538713591264181276784994127618633640911918906420601465086955235354465275599628785959280919655705905992692392814342018369810247999466981461640058885962993511700941995665346837130003224482773085056428445904778416738616039739278743551024937710957623208943661446259442638687265073043898384018775133505245745753521013770372101705125829642066320764795928686012407025654690774308541994634077306339991569229489768526240346261901059429674719509747419931783892730011346482974182036365906006417574238787364996319324883518857627298175678631278883064042595213702807484253843585031458948032226480261749341996614289304508389556572310275092066090431400529693602957595255637155464958264933274579883663609181219643251847221342952139042980637479375282323325162236379344984905738125167081640312569346771569914703335280774349153274241140395973100080162977617648436868773274950777791402411416898958096462700710233637658232387658414449683164671896143858319301965580020157605081999674683908852703903455013112242444983289322238056163072693051350173297468288897285051211242055299628762773483422072746497497016347343445438559696276875624386008345347608458951254276558575243440948612619503127942996180585798303622843526087832239785608966169170378451877994940951219535340735229248614446354834269450384605649401083932916074061427207845366787364525823288134877000919077632026691822006161007782682255621387262576369194093206019453929137217593321151016188623696424598922722414321878043460570800451902224125104092947062532363065287287547111934311464793575032708212234139872526429783350341445428367685341202740152285634754321822820302696674592691046196327308283239358368025785759156862730834856782596661256893111242804594154087611337386448223968652343938524317443200949834802105728526197266280559201447319444597240794673886594119473551461710787157802964918980234031011894159653671575260283745632498489873285194602114854570580320724649032443067943046087187166248597948489432624345700984412207589269540954162334011509404870980198715178717758114700761168543828856864571995181583900556884602701575309473443169218476150160729469482673173507305520089305448643160463345809645862529629773741026747074010936595415379835668770533108089298335634665404181576703028677012389223310378614024023443380344155943142615534491121536213873030165554996364036432826673515651228152560884398108940646179422210089631349191559347847517109909713875875738349710043627078735109660326851226971164378621067445379083588463615563031214297447681321512118178398441134782298866948795919423851477576569852141508191860047362528400553726333952385959055117411627605567320926725175096891009663511420830666617886577467671459561394690312634382429916106065835322160422874947484221231531072679237399340351350481420261213413367444884712201115577396608682113158961478450648219199155682255163318750827649228650002536301533395113123583357639567307928400991110377593144621325417404162941629012035431664262201031888536944866603668586013811712360799942074605968366810427812318345923992848754135974784353778633988019970389140494651512320165962231762623913899349065685671634265841836128471102643043388190822963489155027204432404919651580279001737509883144601472052474377295890347186316316137558189869460104619032047175435956545415884947082544033076553457449424533754558246112082011074698970313463713975374931389353720711395393186659275469383535242821081613964168949284233902413583133336240506297734666450407241349778257139681340933417234803675083846465933584648299494722165331049779758922629079060665549733275297515832059567828819820832384766227521907463139703692880431369688089177345982297160539325700255901245368161775402320800083966626905719189429406351797569624194414587461082165106989816182342747346524790545456076771833163337934233883271267925445628860994231316308709526171208113967534018138472679958916761297904816665598966072253795745612802366002033087767959196110935871433501427751241279391902121005362619648974493512412127854469801528430092579484157880840672674392815400750247124946668119227645306767106175391030469295507863250248161478944092539714782706959069619370790109276465205148589574942479015001507934754042088643412506414528548726854310778364209691254139767369527848825370927561657540921882130627743771419227962992120192029498858675399243320643132992598472009459860759714466430684519071862197867165874226819927359003596055687431246523144473773145214001759098742303891514392686695538721362131895037657210590514661191824401248618735006653966966637904181216454546326369482712753417000786593031096867245182632346302001520272222142895986477409782791508554192745195790832551005464819886268647725956623742454517633733200758865284697729601749905691072452330904349910761845116710152946909192348475274835361355611532454221751926612354044075851656772905706666881442493883350714276666097157647784671851998211664537724941315374235730622728974955804499403280411622779273145277491682218483439408126135230591721806947893917537864668309816842088028607278666054293267831168902929341748731040486118410164948931514973161761357545071857621060111218571751387832770829806675339527700124762072058495455634734215914306711131957029200572312569376247303626374947845744805289172112715353362171299057717253800679816739335429150935531199883716044443844163488455816321790373131758615685105206632039200563437276426088260036925453785605384227668147646404020499928384509166077842911022323414259023769920983152646289224849857885463390533735368180836033668230904560190574770890136396927214286729512130051647616796738478747024454678973101504671250226790674497921031267885307903606427690118059642102564669282183452785011237241463102866355183182290085486843737450797267023367228437067008220189150635383574507499961048977395827141902697991180744133315441110799163821459285523818419303625025155898501628959455127940957463240612092632337863533059360238151168595759221682932505787643167043704663409486232957371737089613770683777982744788999629451488475676829916798168563106707845414184879225837235009270780211749330886698385710673538029388764122430630348139863973698419160681357307776015726224713201795619587590787053473169863558744192904267972228923656182247320086293149651335819436467206435283453259732179723375603545012427055041710411017801496109818642467011968908216735172005668485685775505288809866869432310936530147881431173137226595581295919093779580789429720558262415306290492723366075170853317202112582023411031461793279267740020541839308447482633811191362763978041014299730659162864315982026865847782015304854963224048057520645262642535144319185316578065890568383784844697493413120110545601952982547268374532874145112410435918749240813227090456123341539754928409516022031736741021616688628731923275793796670551135710379790001079131281743775537169804513891445889467621520519802246968238854128642023778099189665020615878276871789151928269622267423227318601505378974260451164417439161220178255871394833829273720069629551550072920826952700516579388766084237457116416350380148424497716332176065882409778438618137747422548612662836516584313928699447183172863154559243829433014012104540180830126304271743790097705904302331609515372759690635991654428674544644055617345191888039672127346852229639236579125320877103840980222153969941039283195138359621781408319490751694118469467202040941137357719641132132684586783334956594841488048635472845768417964322412500520840405905596716207652772273979214393906499799808918207473861089727134504573527438258574914815101782127936468438721257029267635660418703496959886707089107192321092479985318178791096492770715417306881087249478098276540583013809808514570875555238919597319590155686547599808173399011528395938870740105320644747292645690360076633158413459895447671378090818600278422024450203712558334294179341198602944750075268420888173370835520741437913534957860227760051921308253158091668401258933689910678013028731948893048619641301588340918024309720209012309409036279489092460591484016246073111925628861407277298709545666271276954878516634792440691982368141252868379314642494463289974251142291133116896606811461751654613780408657461736625505055674057661220144013829983354641887105895175889022499792357408364400994540141324346760192821721603211354742659056331424518483620439540998290518076889778224599445877411329925782673035534336829917825436817425249608094030155953699598864107131804204735951285272474316604416351283874682132917419811196406648344871430165867569899164865038166978599463606229275093807725657169064499925067654531436124452445171171747063690557894336975695158743581070405101831418229136156578001483796509711499153571966047078567527913462182454751136127433075749103261281075173312192649530798081887939305723016679123376584891134795668294710581634223025631281636133261093968338617231494465104845994656834166727526236516682088232882503004534259904112584156519038801027652108349389349100675145342459907119309873977311963841740620424611989691044076443256137101156991324403102090477109737065063327004533864218482053675037894602120395905939895123284626153190782626873029202117621393580380050689524588908508359925088164399705579329815089929530698779885676838851216483239974369923855766414570708411723366018316928460249185010355979885637518944841829228826451071056225192827428140201775204274750165155280009684029363583393176815736603501800450296787499888308152132462893808653028180064757817714115455000356676001310428652118699261466636185730170711432622786170644336563325068383290443295429786064771585104975460845342317190737778504575704217653644947783121054773066653569364244780190372955682536090101294044567561207086338028754351492346541582485374463435635706224014539978018653103275265343422162542247969882710033996108214755389665701588388754666924656021616512707750316771697152442879888950593655242578207994473738446214262330366318747173357774363255871683456915451243862632597654296869117885303518881436085843471985051628634865270484113805950923176327200752698896946413943917437759792059502801207193120746553371493542733473417500334068076506538340195031192892932501546247021232130896489547802910639684663850852575456006617883035206252135479181156398170233277221320473331554920976157597030778658293938039913371145982811386536903719820884859584974353813555773282979761856525065668249441890387234547001002456437734839445048265898197104561871348791931943601874035677140550401636625655024180122365463354437880195392291966028668129504160126318721649841466917560660546940670358495194147471085692835239632029175119116186698773930722961296421229954752548594640351936322431951445983069134949299927425594991923451863510957229243870047426979453979135552480589394602881270942126590468648864335489359558445402145895954708358573687870969085630765832524515187336686833300610035918228530128568767478801506425153166286923919765413747027462880830816581431704057239528623756635882173850113282248423295528641964876576165474026450516872519486479096921720503470159227386026502300502533529361257518447978904650893489777058525612660132101474397123006479129875042206483888007650631592661247621884166934886387328320704909450170280614099631459992783720319224276519433688904455119099934188895020928876774175516702442559294914769033995778205144506682738996153174157481671989110938188861172018618884485949869747947967411532031487484161210214526287435311843453966143832446502124113750311670850478785327998913384845579467165118406208359204258493058820268052773413688900757729062765761669301581903600405338233169026310328075672906239949739918673936557903797524734870756208951525164699415375817089771604088434907630804971062393633130483098999739819328237504568073743512295251566225056639163681240797717421356924805271810114153839650672302436900979599974924503931128911617302830073231136031049315312525866780774554546356948838142180885667844631113793723049606171626588420529811769570801169231144066941676627739641951108213935414502275768679154326195255335699142872221534029434197566811094776522873569425118961670506669694295046263175569260921170665633460433084969848989728006107718954124311968698432944671759928682331157084079095743861862814442427852369118781995132203064399748108242237084815501198000653684748462337468581519597423848985276203327004343456486935940292804792552005511553905076862420144916959163149372521101277608179256669842060186198021983073198401475074296862706702708146246107748884259473116266971341945886896408960365849405978540200363144656276114401236669752147066735121192317203154641708947024861278442042725379481869607636537152626196132356534303656679028706437444927594172303767645615499211740922559785908628035878763156443995595117537676275043474195888285563023108411210304004882942964875921100555747549132793950621442776185412339698229837657323512266828067916966245601366581848807950660999239793091826298488027342672066887306621218632549291280738915231607143139163234299173926546511948073112423571735838965756937081851239790659851951575831263276668814482322197687834126413898516683777682340617700739708974723288320445550710981686634686613986555682756845769315794360665409078684254636112128913510763255473682182667244345102525734964849488229402966565750730453953197210477212069929457999083205257804491631973724825514719032511160476281157972743934223298346887530696633149139888606061810394236873458549883113354161943766483836463099729383027346649584200681959936521138328410130172505211315528543122219995580105141394087071078818905297557675923391678218659898395558184923986015047911741580530691163659504530361376510227922933242996012495470772874473702564872169583318321484767431764342965440094327044809482983701055952536563466604696647946263001902539241957505087933531184461027851350770897976131064377401224594885643805633711514319970894803138176917039303342386173622002634546307361264787926919489737090887433583554212988177123224487711325067625868885382703043616792782666313535218896274812311520334451243487712095434108083741658812925648282295353779194338698057542523483396941443648465035346532329459176347335064405633068478796082821280205809772556600477724985486979725278520931374770732256819688222398962069173197435275621144237453575274223535491967983134848742764663882341390679232813614739930676648349344227255544787803958241632861382940827340460934699799126621323007515268936613786540073979194215992313808870745057531007741841542558436082342855341457128136184513498380422986320473598354543222144734085201044539697998519424934388397901683180016160564032914594449186094050148632973953797988130784753237209914413825141038164243815780229888571113427849088337501637761147146703234295953831706780795736969208397412813944109772013512498646468157157938813611256556789304852062078056020106298911563080147198745183725765313913430099121626127698120850021835626922874076581390525579740039435885343579433161182812262447638625209726211889633508634119949970511574329902693460687483997788433186051636005642832690472960406508391654016120842903360174869842033599476329939194667257182611481190633854010928198964906095296937512667318005539999775351245052111675360788047237632252226974254892261974583480621174663572238834149999866154389481491038118626234619324253336341703069582247018846420139561334114025761133238239490059358243406983800530161160835432992017877213644621549969295430238528987998068416587810791902525900859857841980713489010739894864978749381077026037476213463021540814001861505449525452904946252249364898969425397344641531905693975902875483922949493501066165611070121713222172907249806748878615640244950871004786155341687797169475935680168279645749900504370430694196807962030279850873648839284018573951169233207606602438585374478289905048392949540674351251939500736945248248446786213265064388129963960222004951327720421700755017648316537603921154296924021442146880926734034723753496874666425841568563762957471523455387765276626825824467143009827141469416536767696747455325989391893585535639789802375123306868601822946988952948775331526929306410379230410039193207128531471948805813477591829586412141064367906273540347972116708179491926184078644722149604462191965552743212420844629402356839660921077144241487050869851351777514016638649507114011975369060249869615705572136263878165222408862533598149805923110494109824472873549036081220473055260826346255764973924893792103647014829213661079783167696972487322454530149471954682998973443847002771724652406763238943042984149102965726439624872560170871306656388492661318721123247855609359502061508448210764629786821265925653202376175989953091164495126837012401654705075165673222725589426455705266250944221596279977780202808411827625241952786646817600107230663355824864610444748698350270161640598362223650296904473586688372870652536031078672003070005607112629855785054132835365368637492186716742278425505735513904062503849985018023920567538949816103688404136368894652421600226041502212046590399134801423219483415055767912242551030976767027888422317945280213395126693701318764320348008351265224111610756577656017080983856023481274720900148982644394900615640099749899431452237117374569990701385802007935251530341485712032265087354026439366303493589179400446799390450002800225111772151416642293025066144821900532354016817956106301524566957655550253943855759251440186079947654291732611352197123974482572331632585367760819794182831162005152358271818834549273879957806504227310451860582974220299869428415731281170699117766594641425488383866596658765932039113263520860857050913361692710405469210404053193308653936770607216056730658837979772228276110679409096546804186668355243301592699451978005008920488760951757818578036495497089389903312156493205187208577543072376810611612658636200388423488796707408834559462382969835365958703724175369438881625797953859969709075490928928183232006460354896011124195555063593561406851212534855289903171439146985027650574129791512895284058807005511600881065467407858230929977694692725367399298732964072500195183670962945716966170925819158147909347625226207929006772574554367253392090766692641050422764029401344397966050726088155588324755744465453869790313586046065893572133392729376025319186459283146995422333172996623421927023417653823324544853735135163884738214453776985501986112524565749656387661416134080076995569700287881868608351895383075641771044077724873118164634160948288316326711527446421905402697036828033140392647442243459666589138654021308155108420826855092752018023917849491545686055878117317465714753233604860979726739405025953889570386966868125941086274996590636409529140982898850062795684466818818743806132378383267806090049755097478252068306481848900955658372003680778947697692006227846180821761025614394862575463603923769471774656542913709763195698529018100725683578204095645353172877181873767705861440613323992609593513982015686752392333469705838382624430742337288498267659483725942288053336950105848663826835821536075506380939018022590462555780071211735022714111791634350537963403053035855269596381589918234518287018750265219548165110122056262043788189096971933385747813864172477759848281668463102454356856201279640361772615030942596840842655163346601499366778254108440753173725222171504876249463020442162830433239375928429497523349276344614503075831405614261740325523000686351849602574929313448133871227624691777912379863220490426285059564302599493583363321199229281890043008368988286268898988479876920963719607408038066100154453947440769354893139431959650998937938762033631276126147625676334929141592644478312573623993588290614242914914054654329380783757872369428841311650138406660779325435155558259988861273387587270938333733045246425207303017609013120819902808057814208098548391389546832292054272638254013747119522996866372044954466725963868438324425944834226960559791095452849882517575086891937386007615960486491653975915907052886991470840121829118254632069961441683709651015427738284246926340486404728656090771961008633702393824901519646284293817482731547991800611774967262198728882369328071484089635647818163918620160981094887083318127097629537283217706736080449487108296392731203488100988722038813168323315859917465989018156238972785877242800965810811593166311242800558996205944836416836581051131444657153961764225644341065340084218787789148487813214119060739090833996440199939694610203460788069074206878061364124670269462641614489566380299842036171230362992159700872346753770937473738749698950039152912614293784177884236994512036068173119139768988421493988325208112593759794874544697605412649615408287386422682748103567366493130374219017407615494469923786350424375259608252965118824449299461952783754257341979513875515882024891222454752411212531722329670079196668855296498874195388164766723071160589869935119245956433270714355435065516384421850083507466414408921117735097369025370905935529655494081336301616827849345355898143263497019292093577628126467804828603988285988123639246712929439969850446052129043678343975747344319911550880961015708474897645740604191766119518788388262475067727620044984061704234439462727898348315935723712878434258992171812797514080030408199790315516343093130621410751484855827997618365442683718441213502405170906258155870818667812079014857843224101450566360351107341834031794144554024493527925208526523875503922519705230391557000778087095044172346419686361990964084780063766038561399519224473537235624368899562653646768541163774761752715626036851028733673868166093350071897801143531432832896692620702899111211977747885696874491276808143322914717902066284221284602923109964760963551051816697907625954583278291643237891464954496580655289428429175796234360484688480611678877613102309272186996930265244951827734756495611930493262997856305734159703777934109804323387240651589369695595166272663935005749142676939440871039389235667131638173603273276852439423948846830759345622589051542569352230148679424177395872349191803160117054347342424640970650988385287003896302702670108132974158105968920301688058135996589837073632206237932500401382654180560365241810469681811469926319194009468039179512751757514767651507056118743530564556837083082349835594416364924272657763793873831097153925747658479334411521706989720689080022372038788237553688013088146749980604209323468559382002292116502672716423201545900992592780752087859185403486894541484707968561640533454719148202659808550008290246283431886412224715181135551571554909350192096142561556984009168719889183774798156667386210955115342147624655398459325108374272442849327653337579817568862239552938313074115487854034373706213871959475081009508760140573806091441763489627023579594564258924310177003619197600340014827258185315578937331562907396194693273640797771985886403661963776186495945039058764178158378303880669988327874089433490188777548825080243296483932313791599936456707845429111642999104999315398542734351960684861897685514614605348678438341028387596272107489135007203947804967305606056506480983941401662615293695962047778149143575402848477115371328758518114087360537557979944962275661215260534991941284639607016236468344248656580251794749473555325999511165700412655016220770898445904097962274389449503891373968913385064296990791128749362025815327941840226319643670522090548354427246374733140064799549910240009459294408736846261038758610465616714323054318326543848721145309264981499393469391202819912866807170460347915303723537890385272799638437812321445371015619230037602166850193527749424403858820380876722060813534111280073257456574774710907978924514050861431853474691687817829221914124337506418915826773801578025952835951652877408160711007500198420143600137148110963022589195569405864501165101537743251995877012394298792087931482377231193983681640901867273264604090120531659089286881223992413970820324795231373891343860184138792594185334263221341375393305559338045146807677002010472281863461752033735588114507488709820224424681393017756074226754115271588493422391883189774295602734529776251400328757808193864345502850824582738829469683554862922104211953689660015037546618275201803999748119819445130413847022428552222799268803504425714735879700826595256875998392535474525090868020586804490112275213801275980595838205520963136807091657104720294991426775419919388621068718567684777194136369331060506048452387615923684660356531695281248677250053098907484551179893842163201414259604523462942679952501779713750365581973872563611117754744276516237105446558984974045762274154995775323934592769403515227148186345611862998669095030691039813937791923130108461537618368837750931151469535947762235366200375388087330561236680739690560451171918369707323760419250839923630573214361435677772829807675370651941027863390752628424830237253696615071189397344549500316838662157159551871753255289323869497357994614116940289304787601531630557593203925407950603991313558675915904617621014358980581950722750351823441816911882953235931132930379879786742846238790232533575520660998403549140739007912422885506082593539228454833738069908633235185895071087402331137995971955104803712780182267946159502462120492100484493449345313979190992526862498282283686891063731492796663838118806021190329622112897103740551751391871178502278421758256657723644157062864643453251725786852513882021519203637801900659466788286359210568876848262402143734130450345836466016765400951848709164134760043042927811824368037516496424427260787306338564770032148531240513942192960807528971776597065189919712956972039557739471199870792614405851229192429462518401484493194178059278147482511618086221140780919942401184422808604965030168226210342288139998210910588957589800218628213758107724816513521952041143644309183677695707953530921178866538622959815981934272052620306744929267117933749026055823908336046622804776031592862668514856948322087836753978633274622673248392704415130715428373012493207993829431740639553480894755043603358605785327358347907178301730303225907990054124743049250405790940854253162683510802616776722023308708668138923904200156386173916442702521044837319229691481141076752203301698265133911532560871913191039226754512654630003854897526278886798150172570963928273787207871723903640276922485153093703688145399411351114168745438962698976267578535615610393763289592502384058427949506866162459637898715904693045607005046552650421922926648311835542555593162928104779367749772470826056248536017167504812886253347656249596982592565399994287437207786446565968325340288578747002382769087645559893644706095638114752767795391215528829171318304904612761276369905149258397428588862878570486311425732585135663372311771005043749156315636122945444772608549727398441398974698413132102872050194626304364270260747532530939825962464842762869916727067660502926480359186853995757826051751396166062019607940703141462930696406359551082657133028071137734732504627658531078958054271972718742021034336442137376233017507743271113793304475807759305491409194576104855029915327604007099191119984968409042809871201054704402517920925603410713111801349916529919148560288335952725792181564313791770861286577596177692721479588339834074174765587187965929369757597618243867480847026767349514507902833953283236570804393339002212630639829141431421111849562563865766573790700829237994440477201890655418874937427380374219639232791274663055916149445276699384672967640317846586274590015340989275556815579754400279028210814460354354877712032270540743225020386234239784099342387608006974014539635794395035416707376963926605476140032941272412978518410881308693920046618796587580193503255586121582987212756149022627698068423084449163940899315846667284379768913912261577729969434575865338118736433253348780738573673784708249838824537892531268194535736915195083674540395238834735466295497965610155725170468476670056004079932999526538729869770393830458387206876139942223246516237093889406414818223391675571781238575845032926032288704511501658258435565682438013228978769340707895073239062239102010900362626041038899221196484339637790540710518274121296031310492770653111013497771767852654196670879297316658368973360781207387494572140912370340496084763637418821369758978501005420141176414002796641325885363335173439834342304522312088296506969661736089526867252456929459076415449604028217662185775677256244343659008368852761035716421791575496892637553648428453439730933306996219883805930543483043444467114609440521832976280841345833652993597291654141806904136588185451591709266859459041551212976858941837397589099596598067226060875320600493568707802276901352872684470720461297306093719370186735883855602293538457657345655393370530144050054727643192671637246436771085691704626119798725154364170921841562218432394137432869010389012188901179107310605080004626090448391184146639325555324712230356535263797654889002793974002506962396527022041044512409607411694128566510190922039245929140250170243600601374229643358239836723104244639904869713292765440995259982328316858420393466494105100978262162870293795195185842023346976211096346124376242423727446467691176845858554496095536151419813804526783844409968321097540879745166543747990562735384543620619036750071895553980809140447615152309741320279448345557983649539510916325313156888880496585354102141574882318404790445099629112011367901575049826657649555306756476164055788235119385040350139528631353511100221372917593628876356966551528446126969396811072330805245207033282667859135632325512950415186977841419288537572762475052973052180224903155859512814047876039959790238907414984347290709547855319795032735724282347856612625583999020623735961069537124191821919703601949894513739013956317170121217998811006224544740534781952462423885495992084624069402133219646162605818495184396309893341000394324049399491213227645815607962064038615881874704253750687051285029198882048041559715620967122770199048345283802081056042593487080139916501516785237097498527040094500282681645034807678319639355755583723083740420480455576711332338413989578276960459123618567091365619857974490747741911424809635593468753641548622007782966318805344676233259275595375799908345852475141835091448280753854897029946159490779726232460850770897698140820175093515087870932382638173987087810027187722089808438672828805158450065770164392482134424885544199548738773054507943921220777738431062627873705103259630205930685025484731039510342199397432594347169241712312828261536324604152018139815185920719758199858495542180230235952339954920777236013658844292981962756037090054150740549597428986575072216246595331279432841053040418279445334998604200729155645524719950148725887888217027255884443290316137269234800887010377554655536584302031944647952159125381982182393972631026697774980030567663126848379922491974917482310788238519085193980278865303803762043708068643925059315503142431931245340923233113969422902152055038048958130294770008422238786839038192989471949729147519508810687489087489850089241779111821233933584875833389323772727904716141625054141901681319075314952219429935306311439489131695506130708077679520964165978513748941853451906481113804860885135157981819042030798912203652450520964690002376589549537578711444357839673430122228418722736133021248644583440314902669698003636428457640969722510966585619527784735417617527091342243199007125352525705489691577815097872694305829596888030494605063079771054909511767048910665993763032133155818768278742584703236568131353978112913369762966132178977844247324476219328980920567731431480238134037048657155147372401764140838863629004206044295037826541432971749769537822670988611410558843064468524111798436662853930399933878155770211328355641314208865337179401367448488213859514235640538748063568567246130545506457818771014565658412311981820031772074068651700083157762192268106502671704164851145174786105122538346167234497048970505367473936094291317534084816886915104710051761426216196386256698139573063869921072641749668934188019497791179436561060841374377423848524792956971094223746838150127363089600328054416365248114984528267128826780734340430123400823669947482672614032040639969159203346131189136656929667433158107464599269746065102998128256331092787464508772845787732893904652904205010560771209138833866847354009275854923656012190057134296534053322839235846817808272494793137508398268071188951520030719186572513229810455227897010745313528893278785949227814265137009047883382048236535686565850044518611194945216499227671422786148891602536485452948364295279044854719514192248916114148723508560710568631648989938210723564252566822035921480777289758035576860574416202378008747324475888043653286037663542998876789839904675757287002896783189902055746303135904790152667910655774170184975068971425619522576721700442425551183076511282591232261651101650525552396511703091200495394146982171572368157101933174099607654285279357002305465037120167837868677305043400206647664966541008850815315154201147793402636695889852903153137977026021738337341857680215187972952665194214886751030401601058051889033649109993712995941671559997316854922590782094788864722414729051350147548165537890804365606263247368200001893681728759463145382390889722089660310906566301823027153688885554270065192985507639092637660166003964478577991504932802512494031989698447516303064605493066208388126574100940770424162374849146780735958496567853118897612540082377040540212869856209626173283312748505160784183280162767718326395363672226866317132371297936145173839983908423385842109353859190970706920118565936327200563921943614293219347596003608259305757402107381512005412636158024842746561508610661756134545744682876282484303701828469701982772840223460833393218109024962221130102172767146183478893341807245525969519085855571871649142798539585303171230408580517076810158128194499209351367738258694940854914274467239199070407598969909189800371466435999740897028320362918593340831745520379051191831113570438580076847011293326458090488276538877669881459829663954798716469473568961129965992337549933039968830596704212266173694093488987117203494595654046757643293713051634238741323611185349364607222621013388455058810437145137287459543026371317784198448596078694158010136163771447446443256951222555224070070922676533582827790067154892362262906663838642219307921311996745334006790335836848622459710177650601385317562487491079206954179629322226304170848806929750777810644966696092286325476757138896733558990552095084531340784002330870055635234154803024874079922933457769230160135203234252323654686904966851942370150094837817431366840915919599208474084914754959527826299104096147352915041039079410810877936541665661505749945845307265389315064662605113619763196079527569255922974515138798507679291652504066983777403685081248696122892325448693710776969789611531545275485048754753063642241216605628112178802436918522110451968589103559939187593853163052425586608159947014248504422975024941711750500328875294049793291417863370599779827976971364129596509513391451433398655190400940371905397718547873017407142792606699224039914491401073141804096766746722294576955505878516706059944916221354535365610889034495283333986093623144227820142629552371436934419943449404276815682127761869348088235212628902096672308576697472714603922192537418883920191480988380864308022612203054336142934181749290249988400263334488235311842919440399186620581062661307615904057779042786588229992659289868383909507353603486945678135639359732644842795105809358248505464849662656205666766611475019340385940317313023818871814571268363144026576039443837677787041811416428688443856659084617993729021465240580125549035922213960421422238252761140927730760779106854822627562549331506854679034826714952832019061151950651063503942954206465953928062937035146911731606232269868922363527520483900990862192270659969655008838069096691441260475543013142403990190651411994161390980198346490091478147221167386341472821794387012905688778103262438831107978221143278609865456330798546115840398734519883690021137536354862240395420392234232613661146968276910404711324435432828931515578665200252064678294963457577609005619174163677749666755703294475057430618359035488930197541708804936147161121770771037636363917334726641076409454806370768372725915395113480390725069886881697039148524085746978156682136698520659168904288408616872317695175544842807176396974765549862019250322118715259638603506812975893451054111155310775864610902648080739108935621451138739438971322090031950478187097378749991035548358482115830073766894766115583504645742329195924891874637524777050099956540583715253931340649643782724372537885299300746920224542849975780580801165537880028373650090499249199690248972762717074784528387928295026013588326505097295905770689403570100615765813279796278398338119615989860094791062126041747008207448358570049825258040268873450817612082838956551434230627842438749546512657978839540454712297493858621766318335204988618657157389268958714093491450542444403530102781440628441252887583887990832161252432713953482764309417559882791653522356957885464077344269420054196940395874932878174139714024233350921798330426661882846508731537533412067448439718080117611248585519984288030403887721192821438193260645407621404807617206364968141706832399943173893284512716314413921579479724168293437399467475129604676700271131496317048869783077141325232012816175513861559747489879898729792408186415485081804332196295845047782612966380885307951017060935834891600915468357503807694940870805856572552223803458693888105370383082904443995227658535362822445953556828160758780042744617127055885204804259474753792332872749999587330751988055167462166668273187029781071813805238593016139944766513824707960054348240566172706659213659823975936936964722646263146437330546692973454010268016120031954508156228014831164827029332970116787511422852568613832469106434487949787384730783094318635934062901410892466377137573500197062927966760677613558875148838096998322040814291329612407021775185232918950177975405632276671712541671129858223787242476424692184382801923900506565711014331794864633282768598617662483585485841437646020891147347129176177672343453594893245166644601364987099489152574763230201776091039523120452426172469561805820274237182671197274553403567888852256739862465619491187654883581464764876282693488098378645033275076899365674087333177465601393686908769729706904776407777645410305515734983235614523080932275482329660891171450994048686237497843084604194248779150085731473065849857011505815327010987512596891884842663315287197564481958766639684598194027531298181763343219569477556527574493781120164050830903532286592636763685680212969115461544441717316886052775675979786711106932366427400269005202698036603145164056808130088581590942357349249830913070388897565785283029262550835845687723770487708724194380491613147905184684904256150502505383257123997371570058011141795943746005852656413917559073617132542290667528284486656805671735878166083838766790063648048253531315389311772756601042714412445512283570034145632968838504305495691640455512906009643320026114456694238607469531261946234394210713268316821912797515276570873717915200601314140733343529812057585218185115873528955768662832010606905840068808154158574658783124124031359923827377294448817250090792231468367003990927980499085007960138007389239097100495101073574910759362774382995657857240622763520794994563028664047555308657244861363693871087530031632324568297610420033328836850612776741654236950900091823214550037188319024021498843885587156333003160738401959103917885473656061596010534029158779983118283776344966060292139453063031295323235893539677379644693065312737670159264922110967523484784389021984858287546720847936953830320654888529552061137060987710397294408471943030661665142220082346526574711360106930395255014320384584036984863977685192792257247456979445400805713988557851639873144590419206221608129143550569932557538546200501486367415785675242834570758173013070031227204516548910941871575551089063891606629003473887046682504497735351327377372907277408345597414755404636705302655579242906896880487261177385803694594077282014567571745588069342751155387847903034266838693544698186828934254200552249408758478598470620905886294523982124815203795945188593747572993477690145257793850095860229281550078299101110609688753576459415372956087858743218680182361127420069800533860698913266822226602543311848832913688689353398754774818323603689448726048917889809011477832505773697815170318061721864407988633110296704193094796815688482719464054151977715729603409383321618470892591551926457810885744579179749910698699881911971308100923579016955956793338424626570987661622172849315251724954124599395930617793551823811101073240837573628682626327669972853090939406209531431634291520873256744678647825796611351518709995553094085152903390377976316388548536899893992194490618154179322625535773147778160971847252187657088150224625940577350957005425162149357232696837044845644452730628470284111325997553505830170466746774496445144839212953020486714835039896872033788647838032292716646067858163066005304758375828359807562053211397386777206946906058366338406861571691181006151061314098065743348196437075427039578105746086356510166053761845264476542316675500318504568408705216819501471983540009867346394274051166494820660152019058551675950742795202942964722097437992833825738901556019133761882031550965896146832418812632918477605460094769910936157574459388266556604708191977321270658760871449857565670438668127259289356187991437939353153824665101205726457234288830269990643962028115592609722414092763128469424738864438810687252481306037126425861625647796169347353048257928323447330502459691843033608671121201974273737417017451903753506194015774780682275715026998799437380397227591306479340518398752528343693211823574334281407702598253679031020419085184571599081704290505345356711894909937798291329394180360711207955495067263525296064907958720745925599945714791625289064576581102989645483888587613436454369337416342188006072264343477078547685021632054937361194758856440580679096964247054012651743449074948880116444766024425996899636189800994737470565246807141467512451064132273860285206709442059645629859394861916261617563366075481576427591774184744452838641086076543344527390342296173119540047780868069646621388856376919682722531811796736331734631887091940772013669549294693491577470884840159032881370162592069435368646569415657204219836917730140531792309872924584923804771949405812832943359400110887609118708531074813102286589088340220961348479802869751786592340882032451952775130757413927498160830288097472929499047924613998721867638665346228037752076718959136081617910888214563872523240327707461199545640031421578199342826187337136384281335800691347672718715380426709633238606684678466027197286773711604345324893077263713147653321383103574910776919928104045462950693718547554587444306452273624374560622812364636135936400225808518815226721789927193561554335664258479507492554336561738762988433686886961413443668549538223714525333330923058099737672849241001430777349543773480307573625609531225126313420667144322900711643075995900091099667347654061874837648750474751760182634564444243918390241239713388661992832068806688911315819183778545535022822622884138235851069047602720731410264949288139887793325522740840297888599806750644296222490559988785928919530918830891595371443283128566997523507432160106081938763799675233773097457669273933991159747522979087870757285806263525427682155006616233131922003419055017099322384060876313255783394391674986603524822097012151390991647641603479763125511159134665796036265762668179075492072450854281790857633714343517093119079341893848964731566509067424461080367397546219008239867968378157188318446495654150047495377992163044101081924057086264547594828421305468511034148365953931095498768371372665494203586511726902426361900815558236509658607532566441027291227841790196793625583238328237590839946620533645224850795892561354278512868694379821272966999188505710916929190994549179056538836575977478627861791813020082078404950404448502078269512674457059044308072090634393445374129053223250038131199393976550521893507854573543146042343499755601273137938174212639226934722707870621571327534683947820610168905038498089385517943052999500388276510294522136846421961220723093404333025509854826917340649490102826249695317793150803534581838871890229101136913633168960034233486324486782921709860643526443041940329609592680855963343593903603252954625373220497210246593387624566453237136547151131691119474335030204477017902014860331660917180645277318970810667864889181573343145472405194024034433815294389533364261268131992441279742445726556953807771435331861322544250985379997447868763650442999744970776169003954935560253079414918650580867991136237736837961361623161119296610940488769992021839015525758268646698460942866991693773471605286151682253142923878101119011530213889152683514328551943809474205467632011638225675048720586422460475790499666185516776446436140792030501553329592651705917662263193552506604419375085508666531808396544760286713745199395045426510065086276183122532426784872415566158382462897251440719816479003936903782468423654619475073599113036406649896847931548358996177858404681041662592312348925123172776108107647264369936254790622669730013587275953971191107791615762964056637537694123480070905224223556902394621270038895889296342453061175297463617271030616416691275831844063171367688103494450240450164037065243781898664396141984710503426070203548278792133602341396958583336988988363411094459743824744136650084168024496171176955897801730984029417482266664535702725345266085174046131173861427891322935623328691595900406626681967166932677125700954112930875932554407693182692636062019103746120908001322855695500185991022111498828237045658275462857324613301606803313976922422634251715891283886754357224568357512038709443751785127982555243217773311775596006278147207001305640186291911605120847157558164950558894850726290511895578355948203863061088603856274735583718431078250393329052668572855910543597898751348290247845400356370520360013428045611018687424858945341898759732496792354954767134858756114417599497741568648936073988170538756280857945341705251953424802651651053098318832453176544708530080420053031549238204343605586372431142056865588997488977912064885259520890652969869443697287191762389877948174542416059977915696429113808745294945574073341324922846702535370598336252692207454453711372832111906313008656007323443526284828763028081791600617414797182822240025056231076297479282196838352284553388843207356808943112390789174345516880082261481561379895247725756311150926678918818592305072006313659933493496869737684291077365676881697026798765607448915278180955720182342972336570739943103074420933115664828392487327707752259336871587707761977264766362546984460388368672276559791093763597180230176467959552561928011284352205308021340487080558588352501438145371992309374040322216901418560070640554814909401207131648426940943256308903758715181597827988355781362526376595314433485094738479025596639310051250507992072503913332160108937051650303252173268240382274688694909966860071591376708428922034028357879534343693334598628869683382007814122403040930361123525894430110689998197826170284635912526618865975496687227383083819357608881117989137359811872635671783109174147005464254084006997830887870878887859821887953556239293939863648735858109285497138508659022582631687085370111942367269362557262270783595154823563295965024932561241208955989424855042512352584790124622850078170487098736479536705151302840775713640767432717275427053866637169439906914513860062533595583856470542826821807275908035395908378380557775678535385210849650902408851229069862225477390044816774748476755402766005004296481848914573802585145508191917343417556037378472125014069766482521767135561208288246226992414191430539752178988903621122144948088399008577449230014656334138292148845979695615697840089502384205568193312368556734374340894763514366581627944195381360362208888156175303107904002200497390606389050533108205088199399422527903489564096813502484095752724442524512879612008968964746362593634599551520941369649873266514651634280768559838751418700721482310260463303184738524095315669169634604011614620975871586694936693149772360389279085049238856339233089735543492485376368045623443467546534760155483211484327097742884230447557833424130180875065965564311930966058447241887866250020332624804707708355730178016590817858166365861306666519327553339744421961166362199508723256003755573673447770756259544185729958793064276577488349656909555528674143590908815595609206548785576009862105488784115362964477117263188222782327444657409637107443557835536298467794801502186622924493129537126057507956700904200389400542120435763320558466795811089696786889807939239217422131776085339827806904624274083070429370759099937686016934563285122669347685386328544994429214109450728157687008561261874075503763719338042237292452282564545358760281774781008671825133528631183914253098887666112484653093022816677418028454973769176326615797892832667232605572171429193399496344935680050213628435139670725765195627017294941613664313551178949792544654095180608614879944582322818805871910455638802805528619151887391929432369208854019645960684774288176973244302579715390326447315542106941027695229735522611369717843523067774195358558520091712561856120950985269718256971016080224248693528867243247861967947473430981784907301567707766746722943157434564830028234992202280501680937332384993879848411377849641724846975796882747164761175853204655764806772447973917568632237734004681150000392285241300710282084204767867131734621681323086764772015375637261636289567079887447130841987282142901773347230849286944161005345503767249569406687454992948795291724056305320601162640094823927184989445581895348341299188857388809622841755201942482550996669297975069182012772655890567461730413857271273011389925195764954168396113569518968886361672064068001611023647121993140535336606347397558244757013426774234618794665066015025068623622623660612842563725861216026445161501828296143342838728102583985946085046912072936047228644498285287729249453918387389911996542674102403832048987916983453753288760630063089148179239912801970994793693173419024368822824910669481463289475854935597943529550707354717003106468654835435339139168038612929254315551981505613070384248721703880385982817877652859123047903795128621402072478883315892897013806342242770030683850602685258024699961098197277076754200939992371197506117691733177046184457749613947316246629959728227190120384524509174269457967297509618168565408691303368906879515312399815486087160692494492149690088048260478401775850093476203445017654659816659581070514323103249496592785740428856971424675676083109699708432461879355930156010908351151175174933096729330466556195184015077321342257156548479662953045393326105508136897043566375341431921456903280354462521422371371311509134455343331518014565434674659098708491123128356535935167207152234869801885467039021997111034204904361920283469082653780853906258446576808478175368041762022217889293330864408621534318709419775163504574644716858607344789159088752892305326113319609508266378586037247756121232835915432388624125253716281811336087983716717261267763014146616518816621996407822016090795715632379353319192253769650334550597923890199649475386530815727858504963743978392750345108091336921171416881227607833948140733933657843842717702058892634254647591068925896294026133564736778079440364541339040312974028498030100233421875139249420465083801760072376351022386968203010625517377563064906990323784846323502383607364729936685311961799294171644604873460717194007100840295720784442526201402523211859626385055227903900330696053661302115659330671181051056945744868564442965023221956789043598649256089411196860097975951113565289762219536690896885087762430507301442040323888939651510829620187147958561376819630067697388255186640761591517529338227849772971315137363413070816420345685824925278748153481147644340994430593112977720335530106570293392548766656613144991623053854748680896677338849353859362533665182467536338537027402076985844422413757919846657170966419111742358151501587504246544428293549451437365925635681836490773171050369604264703336430477315375256939900191527520988532333457381978162911422182488795319297667176131126457982850494289917319280848629748758566778094290760019367479961433407176693354040204678947606372903873502498281884287124709832367944744192244155237462450023517151318669347461271027659548291097104045480409219293386067524450770958400982415592229507550319558090334869077666195540649497522167379655364558750253380803265362083171302445373046801818353939601049418311096632856170040961344569340049826257926243303013148239796233529359693644807399521114810356614988011387580363139591530055632676167631633843803044887619756369932075562454865540244391813019969124997165210906521879121228428747102762455330266719067259149106413909221325910231994548534003297644877933279940208324861128117847883140833964920355131389433133656789120732523928790203753076429369124905235383856210173708379028171102090924078395885291760984124530622505664696654327478670054595275544634184485001031853511334655590203790712534240502733703286757943547583801936954626439860802691001781619000384585297675655961985475329952348730043593521745273587991990771710233397145344017270743722910495843471599340200176697085991945376119106142490522652614469065180548693469948647482065064041914237019300313073377629699958901176279792529603045056218480829596302570469260336406254573735085469666866759792234955750292074767401163243430109605648404391406337548199476771521711275820811773317854234836037859857015108746809778361791887978991165831059193241568185240375225209330668699106258825853275346066261892122265881048830750508706086730235407458208521644450843138607764510070188763371876186771057603420297885146368352068061760660892832682715525691449290526483817827216041224740489329664685437762555357848684446527543159831642987070718048943239387044550398114283223567358134581003201078746649263134828218706503924077871831303509350810933920448138766132063212843927468390501082010492413129962063647363542361865506310437808376923320810660770961133316921687366959597097809631207853123612780200074059402378302269207048350202849497379398363908266157789692583722361684401151310964826568062081830930198854562402292559814651618802481995660305415189383278621299551229177650634751976570789018178656789731526816193643445974532505856711205211286557609617917799879673856480152981126831856105321513941797915450664690200232498297723294474463562731929903451878492143507109798223007169507633968102490817930737843740723640945528458117629411612716070466842086801170851687728261403176350873482552532430103223516416580807470794384405835674225646737574422108769042896786616580893305481259962643075891115282490579223407779584668567242716967158649132951351974077995748834112389231493467992029524618934865630460869056943719100110745130095938758589423590669011656845838397385291366696378241264495707398160064664846762259340890499267427797371523508470552040634770218552121626606505281606989793654916434647077377707745360420057305901342527949269379528678226522971298812065385164346140594911271867900373300359217883420107222127939650516413897233977235943195096303329250870137214751849367768920852596690780448222784307855448791853098199376114215715126327673205500914309412473702978198040886980147364677925040435862039162149922627536426243160794529271507552195947481316669119461964469675651873861132916736024438916671998612664303731718455664324510454839298312919731806930853914743104677324620412047415781908314875956997682356448456701996007207939745624039912995774236220088471904550630586514398052107413750298807269839427259544673828292458468175718625111497226945572639904506692244916597651473929498740882170210024406870232583496092150925578710290912384369310955375400599384618128752685575838995438339228420061126927404067969164407123541050105860893088494120509799456849390822897372909821124540382733408644751179744992226811126140220304935954885725130363903336139897194271101219670912097721360095607709519320916043438914886446515344092871468974512311535058073785720932233971058729678923181939037708615674482619938308040183181919753473710989291312801609665253904052142608478064125460759326755789934559066002010972253597962458381648986055100890766302777989333941598407646107071025942800635376880239047034764000044236170755835403840470745853244784120985172081884468831233924290552387819529171094167814774326034012803264310329110178015298013690638856541958911615435791214931414862542202208735413303019273540893788626457562224377975016888283469985284126012793177668785912188841881469399997700015394910881851293986638030935195666122646874994082488716745910584295913264197745213103112030327267449945748850085670066502262667446706865910474718439414922615000906625726845001767834307691444710844703970845150223737210373157749676107517641551938407663480165968999549706954728532792365710095660678873796706965812506592977619250569389621411184500034458190301352805162415560222667303254235110506485966171093864154542060123825859679820692036586094819111646385219042907884727278116187422981886368635819444707962038333163288288970820796391540180731942104268159349826841436800115947047873284225398533009244593340605128312196106941637872647772239026125900758184150603584553729159482228378210687541836436095075431861282015273103905181942010620297037263260103727136034170616500034912686150808591738529038427134262417378659023945614502566454975890364537124177126726240686645840328935218037166692724261312341559942936996151731610121347114121331375491974794212090030402442421127881836734319604061152330123847255601894675153456163219000573547784275145124295334710038135333670305301535126709114028786961017890386823841635794058936153405919492829141772251014402355116982607322059736423874353887793057765294570299749866775574734851540117510713622141373625072975847170042098475637866850035230681375971551553280333956153673561724482094319188404497587201275876553415994113948630236720552654144565135687185365500168704722524630286748410349627908587871357025200173520078039009385388921765527108466469572737163116564569948218671681567977818524899769580770729841521743707951187441243591937844916178278525289300778164456606153525125977715129244796345864033971328878895629806330687235537472879760142790566181106930764511185238565081400799333842488794160597104885977837273710799787721679035489443473417759353618585970146329214390705915608446471027886745049682970313874975774011902450956637525054883572420065576495054267974997825715510992302633900152516123937616101954845582172860962724929720913578686405525491214354679757506915192080903211351841271837599228638250233861533598812103409587321689566789158385810249929576966140183750895547099141746069980255672105846467847932826651205839276918568626317162815553405183996570412985372911308539538378408350572761502342027673458901778075060087718890840300649286105289689731246502161133138650158160767432946717789963673463409318470899138096307602327996753456967247875993450046314630767782404367528769642336820686958549935700647376529144413744476777371377007436301031817020153477478189653045000790343134106264076086644506422579807206202373627955963447495576414087151566884895392907190020184822615131264188310775559308124640468218062474093527630344672526398815641649569060238068347100641287074397696754035102742378253117299793984687293100085375943100270623239680870005648024574664655578095811348629036824935805258252670937960194312967780933287425166553934245430436884159395689001185125030573502230256686556777804647609946476703066092144284576257818428333468522197984795038072267677657366155931115191516272938434389408936669295044383488843900979491118728205166060718944121666534581419466650420320728017094922900808605744969477370867388105377079719945199589885064485038067159123788896821348977901923109363408714048246097497670282814179168296628049882366302496688054965650140875341032193305796206697204263552669085625394194693491560359053639647922084477458286217150677414775149072598706771096713391038023402419147596319472416035088392104770853391929043878844345545100423480962632900294552316496442151459747053692236795331699278954002749401367492685862823032743701855735717836933227447602848344642397340833511653982661513335544339606259695973216003564085722791662975796358619531811454442577141114835057804682892168065558503210900745062245554930775679234315353918434637652559588923117311386030280356784127170146721684414202316080711215367669535069141883760632951314569655254848583764608053325989363814718349260265715698836884411453878601033903429471917873427464966822832827806928843883297863466869718683561057873156407027863869128487257841284581691821222499221255135404083837106331089945840326214420857592863941700567965199080039071245915438752661289879144315211694814167778391978125910379241006534859526029919210557063745697527027710138816317649162545474777948120760074602492688370557289140408383327600632987402499435322453963856187759782007784916334537372707969582817512670312099982126302201487203111080306364332076452241295807817461851205544647464192884900293825614411585809485636361096468165803691384235452873630810259062766684875833564478474156793386588876865233577017368661974619162603612874166833241333261795072304412825727761283522847790466689440463117768743614096998946055325488673930481564280163444299812757429464072156109611014054364161959223836600632122243787609740518525847493544695953430093237768910085909665879779442843811530379824828280678548382813242272919962235978325704767324878342977980765447168936926488507090864953543953491975630388739986037751702933238561632426334464008278521254802040443608289937507209006230519595767896191622762784542202210201270064441579752759270236558775804641453093809659932281779550094635177002778734666239509292712429672898201241444236983139204532800660868311969971103757035102037448008557037622365232194784050723723118760214835762569717458793177457389418657164447791094701799128221060187839701547243084094026550334634761329375933926643701559762916197157673090434816379154493267712556380462178460258971337105095776283880424942258117072698102025151143283533726951539385367442536973391968411719481155451346626582255222495537294507465520726297529838457661204310440956645235755807898895410135456647737886081080003290785738656865597080244664840384799823313192714887290021343921267763058140634770620432108958069744731746580292607369197128850271566154409044771791034175864234937828616394613440521023014096043840180968296182730298040285565978141959056469112330629448043292620265702458260541638973352721144951015493078923799949149332281879202538319786004061947660633396861667418852641935558482233195569592302462220150212270165011079719845163834705947369733753342049544997688772531971601471739765550761217548036199831861526695159158146096401316293567967911088966821307453584518869643412737423364536906881506363716448403066654510601592648045732341828855173391452989356677338920122952008473938130711909621726095036360279113295124215331223767000754925308590419137905219409233525741482980543591274705337415402635399152247101394073077435498623144048957979062693427384757606835450472264131237322953963553489191802323725857942626559330812047291667571959991303315438651888717240856806552166639780141093580122723029416590773956522973899285098069041896069979399596617401863052221615032250888468919514099355293869548530482988369062318861830111129076583628573860345535920645288771805541530543443850339345722036633062524927970272497773331317325385744558104893165659590093862680514598291337694819956975572140743203745572113799983098960865337677111020073796111613199267812822510994567490140753519820046369482791285427875833066951423925939134772390852800356809183933087482798293796575136678945381993920625851751542422409354927593881798595210583143637784149208662320782143582545349543313216950146447602723160883242313317556387778818925244342991269935887242029310633473014169227775980076991395878122713147060481696675881969830824519510097188579776590433085899178742792905592985499026251443169939272225937724278392114660178623174718775776337587869110471356922962922131094896829768217539700129246948846553545951709220609032701046935077911320460039485237149654207292675020853879836276466991335460769510287418599249199060916665667749331403126711441445756205378142633363466315464896197915571872092283694161104441252096180078719011883947301106201378647610755413369890761527798307791524827413517451910458255674716476633181027831255274020456830641789348973266642186650502313403777694718986741192019419171786183308396668065764274989512186736675600760592328311125379704832707669097002566793297844622657225300846900038148325197013264025971476636859742835894292652284220470882089578227659190579222549348609448587976945823652096695217816877935595002239193203535035253346062522706996773936556115693558427368397981970555809960260759039200804350175273292263961037953312941526519799674499710499936422982031872718460496593683322900327105561119705922354999693923171408540936102083317342972391904830658551667950817619328027723108031554345518710412738060226846199506318630133908168673043932690110405932456306034368943021377611076413739909389455487803061464767821931800491700098696209523708465283661632468028620325113210921143806717486481823749416619115124394806632764561463421246970231163034492023600952128702314441561501927479154283768988298070462987572598287445995105757488038235674256887080205407788653194505515901150357730421070277791800826451262005439599089881515002716031026490456047334576032594969093126385628254745430418471571676279131491872912239324930629576291857988444315456125927554591854911596003302351766447702061997096413487278524489258013984831660121059692071070244019848645948700139099918988054309715450073232789310320084458554776121216384345273431627506224777582860094937747219824199807586107470636958205401438808128581410060329628007110879545074714112007822499750306343957871555898440760989904788051017587192257030398938998792193561729045997671369442982225082591879978025653705384337376497607989303241499044780090086259933637701818565951903117136253121741235722954081629820299695414559945834167253373663941387846776658494067138716873359392477095298848830185294837954092428171248727525733513239659170795066567265197913052087336250631541312032746405375890365351124872356211680494950025080940355008657361452874123902771330994242078351380864210614076206855304884463884657267978096714056662536854191005226294842710858077877305784751419884096362672820087794236818675541799885691904011776966049271095212921192533625604492846303547275624529230681407194809178539756939549621486895643885010178288582938706787237944944622999985191914709628247907254014238181671010626662354564001861060737135460328904983655468706737293204099774938080565408224558656246863160990570224211849341167528265025227749168861653075127992951875055867735584071526944326574290485726279213939694552189389844302683927407837066180721361369481446442121671361477557553577450862900484223310215491431104222007981888765491959921558796277108266124416855069206546255778316256248146857392565237200042570436402176486364620478933279346909751682039580051207760052406950437241946625500783499902477779891881670220782134126188781997707175048458305189338652940590273561856978135726698422412519214947256871042912815892954409299334135710968310162914021695517226466456903095529246442844707244825192079484051456647120601548658148577989253797852181530166724963821821359465455281500965226018298493482958794879798779143621956162503376214922302414153644769713282658991270042910038102106766163272101992543911573258739417079336101578021405815138109274556560368150467498626874296519210301650735635117587534670977651601512632585567303221732200385584001251584220025372201258023895382516394179246624550183363666366063131360789979153497544064936233484871392202017514650153501929290130894499101386547798599366167650867602047394222102749448106689719106513916185653322422832095734413830699170712519856391158926024469003697821646688528965278867780562025910078367435563431115420877390126879278100340668889865412745862046783350594476691758798376095236911039841739760680177157900165621782005785534898545710164658499489271154398357931303982166899295411027668153931445077107160177939988100540180197047891229709517004928602795421411068209782936834291649791158829205675970541791180132372979727559727410830908695003165985035275496177447498839492594690414521934065710729472693986436880322793870750391007562799861894946247554677170962143697348576597447418478459656688869100920548990489622100940789491206222886956205081231443062145806602065685325466888889471158770125742476052867672809576071371375001141895208830955643815627656070762365212160984317842266277595175954195586446220715973955513509738000596780473519172961588475696245764938458136700734332838066089942153442664017507159365369349295810728471938854936070011516301503405498787929987671088888590562731215940585297967820686997276615471117996179512915369564326578085995302411060429865357908556274431197419343124428853935317086230342627228469492548110718743276017757963216896310256707088110290283273663599938778512685876606854153970519460003696040600392968737313354457285038146453764755158243929199679339067303017077764436410107342568552947829248623252520492574269002057200672044474201656468469622875995391423770343539955416404524504382156762643049398999368814161021124860521155292532633464414916617738451801706280858029752285356673219390967487917242784519467388042446835898727295202227352806270627502023992563083294905307821059870214992928846573521433881143862353354957443426071470309614394482960218718587103852558419515918346895361119419977130883073767095233272071060397072404706102860986579738210761289513338896671454030344183778098052282119225943029805647616849972746272499794276656499381123473076890711999988589510315301216726361505888338125065628080109071413953889338101019686140689926134378598842129290534858440595257708886257754639224941981201681750156360803636820633611036318127680212944138177366627917652274851669912452436711885257225031833153467556295524313093447197471507343630735633983992825387669269504320665413382186980486935574345737253660560337122265316599234364938715192707003312187171572805340720852218703302281847109270967607229512505529014918736174879263941056606571964144176941221529062886382958602399328280316496865201379772643435162979411358218144839418091481862845988125692558631672062691710238859233882059111111329623184202248323867636457282666325220423548294103870839623096810840284907712489391890697337955149245463004891518080849727885262464093271054627822106485269371443488374623698032139644590078779302347590296165509798993710434523264542693266226268335478266867424436287740113910366055285700833885153056526081185300851518748887375362247597904450256616254832222880687305102282233908808525893551704278011919791874530268342409811819053637052224290377344012308091616935692761638689800319221617558551583129416983997132548497577260884025560581284099883792560371208243066096340567455614600669594508053459966010311363644284521286541778052871096072969487564702359976654553182977743571671911069095134690890866108328881954518675412616910754457624443717844287542770305817396807693943656552205989462093726979142037436701333642619470647213508287949385402977996623365927998305282234726528521842917964504356268837218623230890500795095419510964409351080773120998171838471904832104962293399500076707867627370471277229319337982835007708427534734297566600687720412567033946935708645310145456735869479341229793285370478659997259456014964919160006390868275454440262040319242081224658632291661612839412778476566257440262192434607391513471246435827928513773654583471955303612660590842585943291916198538481872926098563600279585848802482788437045686855244681620598629141795892177390271800624112753429241929286155885296537615610049000288015392978126534486118392216193405137635055295625700899587734168485595486841421790939022406382434979078412278514374607477517810305375363995837714343201359752824715437070804682374627310039061574149997107889165112144629112959529995431059726081582843410100752450270759609088465793003809006960657138296184200577586321905169569017044243627151671428584020517317557891102522573832921569865474124207794615881198422131817179268043808448043146170266891214097685852492346799379022211322560048212016420549094773383863359083143156662537216575810949456756142391121979141157806836565574166797976569661157637545087664681225581108464417994194153337212281053320948452816616352872572021017974083800100736340890800281076174429278630022508022268072335191974310230932519756031545887373018455666929687162212690619457488739118129637236113475136512356917210900576254037595542851442474516128168561337152240310010992951522228789405258504508742022090603804550735077162167492574787388422579861326226571418879405106328892509933625030583260466291524445645152141987069957478932201062496735497593847736862781999129013432472595150601859046397370839336967913834892144491187302374267820204941291169206681514556275998871093425608212750927930389977972121280738580254699176851625417589327953662954679906988619705596631595371270904881564561664022538574274522593462479447490782585465815797703592467109042852995649826341362919616421049452784862896755132278342187499510611668405190818492656847025105793087473034903423133464353214447855051777707287102259702923489472010990398358992015626772787518864854696354885938406790433033111678596429477187801139465738206049557849669849360962088227328781285734323548400968743103176661656131254443344186052421626578863362453393403995048281017506952727509561176721149645053601619354332410510402075469173677012827873610254854310598610669381226830402873262557360894846257246573869303571855865808779000364346666507744149997862837941069160241800437691875701722600742674380999928388474984355853174942720853326766745960142854065780645110327910292641503243850641652652521838938815347024893277555695248134291408657974122524831093305214796049984930494778978391096657219639399227124837726736203074920864547433308872177550582282470371569781304657463695936573547511421725296710933623515761021131679055780730849228191888655694314363295281789006735450940891859391183926205009141850045555032296874933423081789471693077980187237544229667618164648158731876463130811348447611677930155742506921561698114054652307103836026591485340985620729134672486951920559521092817410085640516029037727460728676311650716001480264611365436601131425692627867006068261584543385247631701913225115891886053820100788787011835021467254524631473258007359004837055736166324570075946295328089494220384144707729079087930416195705524923096316324537570582313664175185081057971733273177156324030581309307140857363877210886644413162648775437297315356675160273104544414415283650397101584644049511737206725531868038546353395441589658588167866107075037856716101128371249713804372296151753601130088740588229267301325707827304514205271587835442801452083577330131134444412101184559904573662513741035986219324184868734430914527436143219163864064451031286786590337762458922021462659949835001106118626446230028433783937370605681931032752354834286898341866302027800805649431325556596370881306215848719622401039022527761814239305602446395599183973501564225228419241945864028714357482167530047857597656035564352765450314776931750457214448985553644356362862416520181720204306633127302959038307194637980063952024992781213939075493082565737368401731306475068518008427324350721641783329273619764881839674416112251823077648763731956223352204526371835254310983295290706050806010726287638908862100664202525254793974332960636332363648340566430711824058675828764830618591843953990789247165551878045174705372615478356722554714700258411277298131344974920248762634317892275923516907203422358054172290055506172679333658395570589354565439006068164232270985708096188249659024081788326847976868796968276073702862587472492737050107639018050360940331209979733705541185487992855720936028461162184546613948281828235165188952046984225609440453688066505174392717699681526993503911576047003459569221876780961468934464066655589742085132995151794718581339744730425073955342143551582406783453700404644261600303355725406213425556060650701871903985228511944435805202210285166969267904633781368503528789220973845076578060933080805048191954792269226381012868443833975631056674101684462021596018979237052080382713326704807468010150906266106957906267449488701636174771333452346771094474369004643582798927878645498845220489158118829167131494166874853790986346056119555798294091117572018885460234166098774609192391884911965568832790714759183419123854695202276746862586360793874963897251900064388420470198511251130456785949470954737359673897624258541544871753860696808720866808809665443806834772235591817065198733218238334540961649691814759726535505336509552999311219792069390801888091058307401844315522145748965889372075531977402711381241742551878571588058399377723823881853285484729690247287792692565441906035942426790352069782799659329491083635774579993521167264305435253000042567309803353231989043011353248862712294134244437866922441653349160272332658541689301378355715205094763531232595541749257157201659051545513088957374236145894930194755141508457639354411555903761426613621227851285317833300891966302192530578662046975883996621080286112066543927839643276147006151176193955757753881255689213144602055353613111540874732364791474314911635817744013367158014711571692234012229776611176986975103996116743520237384395228129651894624904558113510275729667701155330757295496902334531221817135728862500986524080954096525849755620707548116498018214419362341587844804883466595175732354807036808712661210080988628339881318406003698572538782687498864407526295464997183792719789557391997974969907883425227548021445652544784062211329434307484826960035609710611750787962141161779384005274361544960371942597047722145843717228732246963021297921851339498915666730556140750901342869436904202461817580086336752061077207214080188595811060925492951129853681115141057925109218946699335876696663861350615872970790578970214017691338903167290914660879035146687531729679810064024790719406328223086413461326981368309349492899319350420569212058914779438888361728252362786424353063933522992253277220752635720804740447490298210768304741138078437654600568485215302662675443283604768920046326863434747898769866332522790045373022934002490487239518295549035589451640077163815006889806112943894573602418121249337290347951646376220946970400371556092212015684007251978457375445274036492788147606528339669017468094203816777727979260277710425128573880665920165512378433803711302019608114849953854292973247824626304031542791500805050591104517721938492551751782388236992829869674651941484430693816594757253220094689878637018311420374729110504361499561306131949416268625503429203224963310058899375482727227485941844901157136958838167617884652945326708821752523204499143537372009532783904197677565148491409532627369769697215406038363841514422149801361865783842878477533669857207999625423975606916623747583069130248052729870218167350257334290761737848768483984268720770237686927789888486979991852868357310897654625181572319255816977908454145292107240971136201798587385152729321884909639476170646398170012672988983364697142970962858843223181555604530729293466570383877967756553620478642392175269481923911895966991430546697778861109675789573980785516941878952606172723916491407508887282778813904645988999020259673612525657055666687854071147419614152072845024110363548127582977230248432156690726767479349932853909242998183585329318233422622249969519539665808307133461271029059874627559685202824176600547397894046401789606963167287451840603012270755141023946641596508912638027137527954234546681054301004101898894212254585816681798906589269679968632568101566552131474180535135731424079941725203396336190124088030156764625918682389571997774476885803630454087803395711779108285923643555897759925166254514476778750438806134591944813697760925128654124965885028291097795079346660585474087174765982050791958079364193722570283399902277365243638149227706666376712080450964615205152894095471861836492817297358587805503981934002546930278940512907655706191221350028869916146643571760374974118600992769196592575365487358288808581996750150500576844709445943670208381700246966459723115466488891109473743013587783035859761994425324768261674998679680713405110053346163075404173925478815695865632104870680629661822277323410840020759840013330959029073978471312913567554776647471402672675777815660733337602810582990492579792859315105797209972523330454298736825594756138007050200142578076861614478875040371250197453908372482624650313614496535189814846570506511577779906384476209081885871643058584952190541635387465237323717199767808236593090320009550944616744006078491039384673190412520458980613255920998638478811578060768812997389928521991979021771110981568235161971431685747264854931840997195732969635333165319689047621777597333658135338873371383438133287449022397953865869007039685092979129457454519707159829976414499177150093412455977328948446947591280054258370480534676025478160797604565885709974730012454364038273237164609538749624322434497928443396381866210478012745421001524585170045040814384676227813083179326225944340766995593438068392071632376967058107210591424811867024862569927315117001179320300765974033234485554115825925116612048058179759239707741269138082782355972707175370035435389444756800360472330625788201013020873247841568207185496452654037190883625508049746466889686620540694245257817578568501785290508688743798960773423960539094787988491667754466910329904258240585233734137104929774865510967881091432903621127712954008690587585075078051235051258334167437089825271886139236574300400363790644477240721344799775146123903861619743158416197582262219019023262528054948679988493830943463421714462540151038974741190184325297958486428300672429842597418293647002383586784723732317883454723678595951000558376470319239480117806162088494553990703646944380521907184834011304104841573109407041362705249211863354754217827414838436193008226283469815819430612151943731020433885847950470339457973856026924809143305564070767772186670909267290873017696880351263802194858968861867492508315584535953440746504217707147789582316107676991325613392868221828794060420779084260263121614907038842756386400557172611370954176852725046738026953170090319974732730556256084123965093266049329846589327858557303331587727555744987571332982898271279545518402348470059814655341586324317499821291962838646124805449175414143437617555090227295474229551855633212721582807811159247925078560523090042883169693039751433004679727319657805079805324077668223509298702569591140078996958041779709706901149765906945112291350958919156956926213294088322592927571793505315409288756636022129283933225715356092613198105899279274759267336160083954303175305657574929949469371139092721466926700483071374787684268109762554042182112444146758645745574239117920917982762787946577484912485570994592357819133899839438303232548090347725972409153032645421805961078764550275944066380626548912084094924171683448943804457012386161803978482108895648665692848894324732119270002456881021711586656260904188595865113244016313244577504687495863679460731301607667404106748570885571923233463768029382447154323215031896231022972689336084840908593049135518914494534158552500773243508983019812205541001456966296691356779064927196211405605042026254908589230866115831795322839270246417794110325318405569061023962284280770555624450059969742034055469015220933997302341066347743332687698373127188079822580241670006243188729062671158203022138906582567516683323738938573508171039039070869107718984439972024461438708095029232943455309648377390259091975089389784198075643735090578379270183961195179626998715889180157362746178475672647854803712894861488035186165831591271694145196497622610965421287549364701896309812572413958410912392647318676424285115008380123598317892525698395753178345261471971548044783992141121647880436649310231664024980535678324662447847294184947710097765351302700910379486464649385515642068226830834320548524408063681957075813860839025256741263468244903218880520067288591726378435534056412937711602229240742481145491395606440066839322029201053115309570877700086772701259587268847428046921141685336018665135137714806549010743416864489829794958155543633012684712218056307613111282691003472800714294663460958929006244980725971441711044296038477198797913817829620823161311487150689520653416883498896598375317572894135874366155210263720339663252548443262692719338610856337272933303541799837258861281618731172633099125178019289482671378833643047202392389232417822715902572737572222606524759348669652585070252927905948942828392868940365545746865216862789512281259905681339402830112552851076005120946666066140749831332187529097296345427110588774273823080550886204079218026142515538157207704307411736182616080744921682645978832081566471498066546020462641058423084040997939389945091283638037501251268818464035033570489846177407037363147821913330051752815754296953714082549053771497837198303118301529683600485229802471072571372238792743078445115109271838910974606095418006390260158770791311578452762028198061947519687407191009016752087651268342669968085050368377686156529007110108021584385690484400610851078988590576242590101373217362455386932225189139352492378467260408775383305692293766540900369593223484042123988370923013703190892587231865279795633435131092996455206493479219301801887071831551078230218544104213211004243503911998775036956339917920017767380292831947711917029929578173608581166230848109889725910791730913279222338137135498082545689032316552406112837195381987639842948254399388794232959662076528773771913305563881752401301097530333406586919991264421043317653031912072095030507216805306058126872983402704016516624588097060059255416178144362858325930252415151271162853412664064996919449966769451284433631244133659245917271839276105506087395226461839216240519591976990102295359265731203755767487454349851896494680465510743719053828381909671126871927756887400338065728744770121551284498352706072863772750832613706224090484262744696011268387608989670940208258763165667476502877651097214544711547297107556701988628605478206999030626237919031131325936362326996526854552099794229025993357118190412337793482573933625943074231277530480365242589155453053276713574137688124360028145138324992604823991637947367404517554128556536904237287427720997932037258142477137009180537276768596057842250011247090097967728124733846765814595669843433613181048328511315773192592093834520260611781074066869179461369504385414872892102255018348432739037128709419352954008628899733525206459009895299081389315587689224556966743103533614610857906078498088359710959517914977126136027898269873468855088060615011918710791463395466376606294970416400195515903241118680837338862395149660597639590480210072694478778687409988189864080058561716542282908295897587317405008629885080009420385091561977328581327831331838272582774169819762287742307738008049704159140187350351338192084319325763856072277153859464769527135296014097589527753856351914344050723264431164010811316183675118290437553322714195663675750288548073624683384388352577990875891826582388838330935010508994839079420254663779991764124259781631399055183904033190923200614187102751155815820571810861895648431235896135145459161602039686052169556385844583283043478021641493487945565957250602712872665804513868495066781323507347982465605127086659756174890059488002028101991952501700354808046197766787659994415243456643579931067201545918465913040674624963759682569001223441185647009906406152416220359774249819630359799404569296956850290862197363197325735450006774136399110315160617663904387546783249860821193836847864396642629265936904394681128716320927502734097074172310496892485558382599322458837624782354466389182619273817899633416424483716449464680910910038156798249111318278673514713772576812396299554070481735175682427448157462962915325431139649091762017602769115533850806598733913056799551161818628845064890634910798842570226212510439951062198652334672192692428678409295029343892841369345656488234561580412910961017906768108694903664525731344245331423481385087879912894806478232099058570658775423188022114948265230821725763724507087403363086219035029468567321746036208140040391853199534476026476643178767579103063007322044607085520367421691229886741104984270917320773377666125589022387484576370815210377792637671577979222984937638689281456931563966807197013935071378654869062136733257600795373801994923172553911286962687882506141762588571718186148642081746292881181442107316545337000596583764579652858429683364451635728179694704826088517326471095570485327567760496239018160194492617993949254099446798786929244518081645294983624754661957644316364879197218312355105800657925237725101674751594702724117832296222800132644590699580855969128124642154863403940875930845500378079021821257463465355941148211608969844460341587498104387947540021889928254304719992766360216771532027345120675799045920525458668681710700313010985722816160665825930319922256627421923590927323494007135413669749802168713712177575036267922331515395654162972711455386394188021537342200109305184131880797356470056902997646659945576976782098416796333195808304122566790163529805268625345623402882007863979860630252699679216947876834123690458827516113226576236501464413700454591065803600347776651809460849611043422889007324641329330173663072086847084359734267982666381377518001566933707249631113695089770123980250016641965519881852752643600369962574484840030777725974330413670449056079022424710085092003786399697473115280591648155097780537849137188971346350850632658580800077120823070890426048717334785981295618527778315674574057390369412931238231205447377302464433341463861425431626561205339933566163973931549990545771549292372475781223966513754356438980375871957655696823406041119850683292030624840280395638559464868360688251226730112359094994474660725687332111376470164178398250604003205946994427548176438957312414574377576827435670578546580328771758593647609271051308442643860430667492148636780476635270707222338062879860873605067664410912062399632678975996397912654631101241386172302919239068626874172588429373600293365673484279167254539352745647395484454778584104671625470789984342536583850954556635185264888603900693460783999311687866905541185449984277699755987832872268358174027610302818281609774063575948338678572156411458893234740531042599580618521529076927807361495122289681864230643244350417556868073964448388311907120305724642678490623298096850623400256306263586353209982446259695081402114491276158599904905493897843822775595515304593586238112805556616692269836222397836833954958543104043773482495503259551729873553459106331590555866428445153786176669216030686960414590005109354158555187469791649545961944419523843579191711746154859852416953166509343209069044455609087216980336422401026171766247789854242167206481922481785783156775569238612064605122987558891796516560772489014693721718644061343807637852336724597087848570194357204908421178491593229409847316346457231403975407912214780566289819433514778917827141150650984292385617582637893865039442025763990363076943429419959367351438160433277721440287500231788451739113019905160896117635419659736270818419029697493743926440458665065843027437115419494172510375273547278118668934341350362331459061405741626417602992982923664679848871473457872653804246170527017306933283624656651111382642278825652415706987095381139143808867326346789807005183248736452396489227355859364680826569827015449411461041824482884718412014409632758414424629339465046783639039173050561437614864696752242602839756283934922685567595894100794679692089483099589476674169209714608795976190335890210480179735063535084651614914723631915949063137584209817261493968211108244249905408923568063575111665818643569471749474857847422117820808159579984973987112278306822428127161219699373305172244128536280271604750691512537908624596637314263103081502460285359147360945200397702423485102601791879647620200884450070213312617018752334214268941766505620816954655186741279392139968375807928575538556889765538159570166804280240614923454777081094202879013806754890958799615421181116081732526777788189340265597481203335219410759242616599100362390098990738733618503144387291032585543852516485399052162536229609291540846718307871723408195006593048845737892503086684127034753748462185401693105104280528068673367889864332582332780936803691105261601695871480964037978792400165652387417929068916110096923989229180507976848094286758558231173749713711228065922941410576771739754984177219055368667635378975525091747381555263035525542999155244455736263499846552935976416232122548353016169610456600924856146955769090405741375606445966255326588039900901434298476638394895328090567799028857938042771158775440862438207811460103890491922810486982066289387608437281042249138420107669848020901030915219651213434746965008051648218724116550069979597090453523347054496420138676256534188947525900829119701986278739070065576610451929994555709893332685956022483531207414434730626024661790834411139503749484469458282753889830017314775000791259512914514965935495496303740321577034968406377310689354307404850750931634274427556545210818016355649152918285496593660592565307308015379083478761927715265323868239431230521267525538572714992744031086285716524212396569477205950960835376063078929246461936529609863265327863639770105695344510331910582463941228616146723072061001604017650437315530933944135876636792979861459855333257718558224748911127388670643041337820055303132682902440168148515252268891871633341572928996825427050959858661495304538585138568122428184227161621500751976646752040852117614316200394620766907910428549920381808365028341584132872989540479046187738364753625585053167104056372615758633016901376190290495934479999015352264713570141873391010757956328146315576222225678219411099473992775238330843798756390631727967328227407334749917969851044759610572028655428840566821123677265531689297404119353981543653627868610246916393730809128578221065228973351989388450008961380166816994813050202463428257953402984840806370308390058556835832389757018152590770543431542009124368530912519365511412968615245204204878376503311201130203702647192478560426163058829569855283410629679357891986485731629339473190126052536548085978795118213957848445057408411195947337446429936092726820395927741376665723604673545459634998844488652686085576596504266530355118971371815147657237230639219523022804645094633021760540666899621322950640886286020527301329786523546297481752126311809963349176029386998443517763362851502735543427312733932188817734272618539724566376309448998428129866180329443985200727975479616131785615890141000188441296101230988621364788326928441143982714675091082611652714656310564749628557555133116009451241445325652785019112760755668906408970956177933658448174788326975830839482499896962537269424313779509808150241588056263704738302400533205315273014171889091017262665735636227711362067191616474682378097828631917463949368495486248378335880332683782299773482307473718973861165199958422516946462401791052416158768704611314774145758519941766354043685194834785219894503819952155824879083168337474826995641353834630480419386864363720727119297133843694536097684279249861387007411494291668336400377484310856557536893611939569378865577323562698442362131713781639551538748609341214152010665615210740795294022320280792208933075306293496644660479285557589294254815202311738725742046463458998965845847814793077349389484139955636362979106043935742100683702584645986458857350250665394733173495518550513041593143112181057426134597049738223588990736389799529053539801928495375589461926972115268081453956249201960115467506833434073246072739568315046205489153086009306661462211144386219062318353758555902494899304110623795784308567315175832988694069496023064627893503580273601304781098045289305488067197224265756498633116777542132239373242034187881330698478745736194611806723084782933491629300226374734543401575154119020564316527515875467800070734472334949503250622054484576737640599242996182749271944093522419323114555404631711231041773872328974584154251023448741709276948899913058075515253507579592895594442595590554965560169900758935485031334732008391724280466832815003774674871218187096288682006790714829704349178803882327561649366496649060683761971133968335896357336102115431038007499675676411544749484478409209718716011864175919579173092950055074916901987799948742310248501851694413947330815018403909743830240970414915608501713627101761668635588930455985214573527541108926852356348858009947699828814724122344428805338491252921285863564337043790853919065873614611825989937667653087993381033531516539396271078054394896498135171817470165050690469716821430250427700711721261506952112614743116049938296065977832115898247409771258510215424149960977626479671661596061058880692218049487331734648828018752925272807303384772418005470118610994108814127952407937859881453014622743610824577666966923656618668635323184671208172501492036046781147661631107034089905880625859818999921523107005647311370540189191234804873946304646201891484804256261118839213896841507403381912836877905151228028328133988559159774069803923540440407974437146401389397091330522840045738775864259391552284965964169513433961954784614017756731696879028721088163576251984600019243914746234496764176623130887705798142919023200562783586581863821174244629235251183230917328409959948635823525650295789094714975897101834175631081007924314825376294088795952505440060649079109616364911632796567186260099937240378799950613413920856918331941225543541780013632423435355567124297313848515672933914069801433015296725078465288804262043504885545027949212850854502130913336110823378185736319991734376115797151454410477985118773122366809960308518724864114819691666361756626191707778528644313551886715481861185058805044720154917418592931274381901181903861439952922135216349313423966404818141657095636603078235237572518131018930251942294683632341855526658211119609090985325955948119759081614717231540414548021986992041288761939610783749918074604606076378753216857458484040802377311724494266128351220937883335781507500524357688981291215557694195395516725076119731303090922262831992165876155473458513744970061995624560700693813292264647410503640421851937273069153540878506504740135815054839729990705002421855584367220581176597652184011234734506791663696757182412844594875503773503273276908742033661186723658721484764735244477631088366770238969046971762426886417531133516612464085736885349361902034168643099486003561233717697716598215830509403350172128496386360289679594290825992174270725240774936908553796146019681585262464926720533574650239922062494647410687290321223164893758874636866598264952340251101301609021919692440503430163007084509894669760996149960305472794371485713461416463244100305447475182279633353487631332484407968343086916911322732179172614729872709084085079509253175479589103111501229427282428662826041497271114554088796881977129154671137476083801801643607667934790677612911815144040551924396478821330690192049001493081056119364266988179080381535264762173581534237224129938600755827239411085273362491241462548835226173438574077806966321671907605955666450272299898120104848036890272569822699126114617293378613627491095473534753140857191853505500568230528922231643091247388071128962853004698194069998461936397065905798946936654494972166503700983383260081736224131367119692764390648014211155481557344020513728750189387541889243893394409493210562254033392203578179547744327258736892720639360012082530572696623870248014337534219425837857009495423967585906003205188098757532666863667246948164959113314669138378543512771162876682376618671846468447806683338066003567057656040798312608537217405053385661993614709178712678739503146476277052317785161485165237412435539025624354834739503146703291312965315894913448419529032586943148704421543324298000023352686015953996840539748521099849933765672469863985768399146825811152554781754703552934648929004064842948861798049464015506389119233641960948856974633543488925709475094579213907319280191590326554031040825393022152562765692821083404447807267082658261536194277397172162656267100661491754239109503618927038384388538696784864922845989185841685250530447146858531024450329768283545041567873391662947360342269178964330230313514362484727496721770729403189354308431482320450108542002991384624944993718974033552795129541249501721757987730833900853713151123946685167080852580681193125343891776628738867413104941611809896570775050977747475192142732931041074716297232233626559505401469247232796747142790752812182752554518000061161734433128909943291215495248200917861625920277531718413730025792680740613182532194965475442906932499761207740062841463829285395824725913803439523986095957678222503560101412538413335302454199550238642400465056603219966891320067004113579048473720503134318868236553153480146503159122680284046291674226609380078691019621534677770218861064702440850728054475597061026559047381153096706413810780348923815933850139654180675519294532349715804532044832339967786772739762177372075713826521405403278303577615575078677274266820297310408229322834094927315899370563698610825145347125396985350463075596065436405909940380987251821366018131812111846113169985526306047041122023254190002192970144497274994622603733109915231722504650032318616636809819220853798195803590133643468713699222082219771488574108934997477807725321532345231138903401759716343293562062399525836786057066220303064652625454467483500785018918257541887805049017785885575413843418104602595396897394726821569870110148762802264836066622293323544428502868055551369031260541320675117513823317564490604433017260974274401182978116566242717942956850599603577778439452272727635571987428859631521757321598607666078199303057114344273674763682873982707243398027405367852687080616851856873712234430379138973856027973956630955186109193851957122336557487291228915992782427581478496402816984644348131240219402682094952224936189379580802461924700846410302405928551014545863078741911390760316125590528235317350527409604637940170861942740504351731269718089086790432288630039235166917162505962355039904502393407897105749696906467267314753910417265996922989754689752861358631385391023661458176460030574996459603659703995437155278859105708985507158806104011004171270106701034866564298768183944210477138835417635274656974769768473253873190204142803268175866303980044720874376299099961246621843008140410989781966780541967066817846081830558088689242197031845598890067772265479731928446483665769534773571990043019106949244130174036373785719954804880105526609730738714725934195051137767509878611937403519503759783654204972117483987597565648473317783196635632700684092332621811864142743571438545783744249585269983993373567402069782407134675961444153914463806129633103315436818768341802920716079701529049963183386736590758987943356495489210088176347668874143477488843040900763836365244188051008581455700754324570525449587894523599098759458833033233952150492648408669246559943758379912132295241506568435361243276170346888922118368689211579640771737232944423734481827638259627245045776950412804291171228209229719650369607559933107705010275149587534859462698607160514313669598085460211230358012618910214216764611153823603198197529474084235861268272537455964679978866558759157136697762808004036590461043546335205466559444161898081050536371093324939922673268485462710326967354113245474791015431420239676405270589204635616959109214456770929096674339637825542905106981448933761694379026934126118630023479913706906603895372112207595710851626039743324944549209987588494713627523592700180327646584410883349995134484517802690216450984932912310200650821977079051710911963927095627786621893435325574277628473718322386560699840178474171000541764439677688029327580527906616388188942466393929157206073770558179233654119268442350151083856687034585260797751214269476456331315569001520656118285120565078417589652121379259072698558998070556275562611468095586978680817708157108674674521552626344650343076834767265325648753150777528173562203386867974427899307648430306109434618977007921022287150779341569496717150861449634190082859138242392146347755561054915938875912203680452439047616337062827922165624543273962511297060972199841164712609813816791489047805064843284240071950644156957621863815251244042923822035709838859774998184123519206312096584722131005714425518297634223033405626999650306325612270155152548211559850937382811648516871856867266563518333319617113442355853676378470463814128423997133062681434020092000959695404078107168234804258888716538771802124505897060292986164500115532905186092332664859831573160015107675468229440914270141351805464636497490141888352861230303707333312808915805048019299460568973946721687607275875220447168018719181752742846555026112665625140370386651562382595864402319681251021904902267937855829983079987342220700287934107363405910182112627702453070712627709691354695963800966411783707585465017572255164822020864589306459867467431440438356658279063142368580723796071558313672919384070715593996489343109606099390448447567421971142140614970635714841335370058518252928372287794573079350136927032456653200782436570669436719370213111701911286052331825246300966733396032467153754213100758153847403192736486262893544779974884989741412133012975109295287524886356282694581414313419578358797814838571586593568400361195483875442433261128500832343378353193824908837570188339486779299805720935356575991782480991888232892089737710084419883129032001509048453553038910677109593490645020088999848172009462251689125424703787099122937980652277084551031393026851506352839976360886667020439854517798779885720506967299805536687364516282368385575542017546061331616638560937427123738958102748377875921960085399696871806028465848082289953112935353749395524411247661667103582936953249924400546742871430792331397004665927127161967508880970458268088651819171593353365848375263138260940930647154759903285878094479519041232469450717809804210755595992481107652439173647231036676356008925509971248466955502275959176391474562279034812086906063793558974753224373381716957768109406924040452238614670960422402844112992770771745845876657996204289434508123110347688472320913975530485700421976128777043415744939165610992938486609156991851522394850041161620391640357510422958336700367588363804341877480645555276276766634500817544279438760349433647254785269607203053517207378520422375697271104830869688795282215331407819417416018202633953946545495803348945892170777384444823624429321332050135395517364523556072360479537849900262455358366394513242578300799443274024960325942220268011523608416638845314156595423128378623400381762419619056328035845318134446126409443998079128191427584687110403902392950527310879393418097373572245211934403068784923205676031876635161276378668922810809610932464121429481591969410411550672919413537159807291423672806883596196965876978597447191982754565248634856704941087620193449052731931175065943192696547438345923225772293657613787659826473253193287227997618330239637708607701427825050527135521524918228340763220137745560813337056611684204360950239733138962117656796094421704729772931308647284424174467898317771109664515145736529649783329093266910862095385278390257269333649040329778786040658502368109681201912237416566721464055408443314832758932210725829378759438175567023123360288551274477251305051845505062864402087277225036168449585630412396725450586143237533632378422211693284310926833896804771068874492482065289365133804132268667093017076244348376421861390255881024125134331358739379986233784589875072030377319873028474801826562542272742964406735493592954786947485098211321150847899878412892742593203196392568776171416427048299849555416128824491829922353781130256520928250167367388813602318786524711455046505178661158758877702317338385558334905994211245924177684720505010071171386770906899200380116088649209046597338867003087643637016391148388689718811930321537735215549996766089817682334267798448297399120966375979224296473832683056336853867350922718665509903867033447145995017051794209487458845573201236802816196597435455819793835327045696247499793483030765861632117974985730324594631393180096330788451358647462390582268640968338492224968794926795660129053819410640909179600526095040222761407236255790578601689677083091088805062257086091540246308746478761659660276160026744760774613370906179171768926144718684807898497626546044080634961887261687306318978893067334528147349259685784557984918940331219595856021092126038331281051898393625819194337096319057468467998609196756360706368665489531083744097541135888673080058438819688455883666705511108707032660380700659111082866247786541457963974577055116142299794736682899758227052873464208917757991421635447416432864402531910620666169290785862391656373446482034536848329123425005615428685009025335455167298361154710550914548836664014288905253317003499470291732320573787700139800085538480493301843537215259460160344067516492814430601772795265135514616961452951216938819941336902969634438999982779244280948905812486337889206333254163231074703800646682038816672451401904850118841311861045958880055259394394067434799153028181272634659444961088558946630068914157513672513638323856406178277922948284031629988023880373168333128973825975263971290902002406240219153510617006395008125834666524996772817072982896479892550504357960089246239788003141839786259419352980834819980781312636622842424016729597966826173967225125341330274050885216939209620667537861592600609943063616288082145450240797737553353585218683844473566649683475882117084024557420370718864900584359888188789077498004866305574678986133885910525755269760063533379624046496673705623210697625521886679223106224918298705333825689380490898959699599708872122692735262246069841507301585388562212970944117428873692566760867190334462600667792080672184314497189283693720547422204316674715841571146707415835752212115553760013954198178679273377450869431263852124590098891812049737870182814568484272191422031260485285395587922173740141812589691743462351648077984302557663798116365089727718275641622450683128137223227314835827168490499789865457502737219954567138187292135552454172996817421374153420793014488138493583671827456613573201201295496008513378974817870308968217989893475393921540991301011302194399085238414110773480666238388475735560654927272931873600771399691322327050946498392886412367137255578964035177668379113171784795536942387810567741843570015859001118965361086014774905842502961200648422894746909358795571218896063976374685081792823844884052665591006390413927177240495761895419396113999167622919681424962963328563403344651065966510309407516109589042586958053856078384313773500479822138716033352422297906815725028657647479192249448901339394306054058608492414371293248132139587083540818853289827385451963998320067072726444949737000600890835183982344686261317519544914336450583646719818452346224045982011761109148097359936746080779548075749723727402117055813215650707036777145375026815459253650007523038008351686089729797163392934212723501185395934123179532759281307437877637081468769206921410261584474382469571748050939976338718452823990183033319353863116538554600990898989441809968816875627786229995947641554017380405907922959598834103474516579634825940246414756581970311831761865386596829447372035491600176506642530591038040354895132560815150210803572609977465852952084449104231087495074339519011320979821149816662815636194644470457014739089338058251154083737115082920134271462083067304713507239572915007131489049448150875378158726597272409330128444465445563935950108052767826396212243164163090746353959388406648025250621399643184476472589267483661585274934456601495129471179901631454212773187950155504947228675141150438169442183359760846354938015421199885664868920240936018028523538271421399326245218016596349353702049188152092184847183167758469884827845302723408213818564564585255042521429538926427135791351926261214056513087410649001512558574849419861679118579346561153676891061759074660016023338596319968351352550968592436888572671820483190124495715464055864297405104040652672175494030584605020766193337313600579934561424367596825372763619533688081428546055132967519060030468469684152338256128086820780927007936352706400572293862630380191524351742180136184047480624395574927509817491514530681847583805581719136551229951641370667920717225821137936245534105100496799470434220721371434306580290649227105311035811326848935503102964414016543256295986246267165244913024238959976507865973428778516314472097247451034131563948495846931863430061849716597043915858380908014732567978138726533767445191590743507556077413235959214063733480507382371716405860368170661267557348506832643453207923604959504693358458336732272843934458537667187577783490524226236504252567718946575650037967842435140746284082552910872865088308776652015960094805254161140250624914537893680850202216621017509549153794341662900683377042237323955858027146440324647780706168259469119384142359661823529671247318833348005056431493849712947771737031180352568542411896766016096164680412429996471437329494903873440740852179958466366510317591563019982601511491637981534201879830720225584942423832969134323667547213947891958095889352183082881788739342590349208973206787097498845349327869947750171875725569020909418728489085574687301079702469819226888565199482811101392434086907769159777919769839385936433372383700342456451805222080908983561589707482488901934801029219077719244863793005646208124716670335020722908790342263002085529483411024548442116093004710070808674693987269186009048505112872949288751781780801550618407184662566856272479230283239998595044235515581365292359195435637367613392064483007264550456549838452081851653700772291593344079058653353824539207226731729139948532825053278036854724466411296373060453346981427601703194640442039949594720539475555103315157571159195655189067867432689457589942828583596892294673000921448589352370218653942124753767812138447041178999086788518910151333963816551555831760739147313186581640479125434537640949766857184295847823178177229675209266776646934978722295098419233381621311211785242858471948252740316735493891154281238246212076817392023443582038090390278500376507765325473735677848995244491287506559819178308787421826087171877218452260466400287029019869653426392304834051416566230723940762841989366606335328967819142589456600875105495436819854896688964897290172357906770704688784639037343559484908796984230777213495317448425422299163699726376382318141286245848509266303930277705383440990410286673748276496145328473987670188161620336263812860826498496550397405308304662093932744792335719086873771549353220727786403284851810355008063990993155369020817703985730062693950692517619415903463447170696785844711019861694603252665178923451732104358677810033428915649175379665905331355239067103647152092850027835537005273557412131246544615602394534851458272385371273150389175256127573009682435930276787262197482629320353822399527883284930279170386465091605559788251751136805321820451845381676807157429269890566709944480033193542127509496361857889462877245956019117288409845487891627348798888707838549150288065800154628090927100150729517514354113185382705694611809756153885491484819502251914058369965674655866471691013815033471610058549615182835460930954304637781303375187927396731925023408705066384775052806528516915599813080997242343652852572967137200105165616286765862071559937581979728937463665393838449134246597967453832023870250319508402304392661434112732360466293115159071227202880649876721642237156893682976589693500375731957956308187031405050778881729194237474115905792989981690910917298106141027631426888633875280955533622905262969030298628067147906739827121346130474570323675656625692574775672896300536458453245510905897814341027165843944601987638286041522232871041342689551495041827850677104068065517889712925462769305389748624430857608168236616278230744069035140453075858275644158625321999516686948195998502802870030765696236439815636252969785568246689620003763136445872704887825889016563157061250385626348973555508349846071838090842991644251003491948611930667327345230300216996121764478590782034351242403306676796216911323155653521153433004941802825681977536604748888003748809699449917753399785557405995070560631213647891913324416892048633988862363058838826664844394412804142303871127637047910587211094563698508308087268412660813206738826330964711304674079567519856587065160147815740623476923751009413061668705913270319757792237043800326313122520957920619864977392169173860965291336943843825700880711836180577510622718455136748963546108115589958963921490471580244443615618945859354471612103514243297790519821438724516814556129699649472676274522403614454104809379965611450320623382479614171206637530871432012526247591535740477310212112913025177845313538876759366676367268817611192121089918131645029950492322383362447962266009401031549624855811966066964388174813071959989441606261889438155776120026008499206444683583938983485189669640443912460088664140381648161715798560484572460386006398958439586330004901068340601288608811900402712359516580098948456553035415861333828626374158572489280252505855965962549542086287378134064720767482529429544596405450111174899456369724346233271740914572283103010242289510165461496272345340300332949459383566643334155125072298174693048386655961006912703573479678925207244349305335222784122960286981464806363843428897120016724695084503663969312134262096921988393078718857979837998393439471773395100470112806971865636055988494701295835261118910137447183412297240006726214963119311800792678028281507399001709098962397457171565956712822490932218966239609036499805245384351500370193191874357896918775301905886694180911325319040032992666288920686320278001771493427371237856240067928892253466516499023672218995679296585133113359552747966546107749564475093335398245107900792680444755337590731980187396736854361710445472029391720134307555284020001648249737144813620191395569337683269900309810553322663845563003454135972440272720276422086825724581070698918222575622890611353648014901931453490092443493313024953827671169614467472281901029264470897552197094595246508469749543686372427235293631944499787514382664655206813520305580265464870766805532758320284003695427712271522712438701985611619088972919538685439886619144394077529781984590903645644892659225185435977179083193069896581714688332830901522450220111307040223906270231506534090954418862307210496953928819491913070101849091253579552758261751090772961820411736811537528994009127900899945561657041230616473096103304924616863454150490928977529630886633183060781805491102463920208296119441772830196259113473936817245435156329530954092402279280659339952317667245625182809991566556551094942355550832848153177249546206166830392847125343668601853198946992368378872178853783603947759893931471661581827143670331213692395067176934249077852307807547889585337291504123627005261304004654317464407636081169253601174357530073336513947825787305791378601716480003106275829598490520716348305392779436724035768995205188489333582605991855752530711163374092690733748392681438796547971976921674668714876149463491246401479046531287667603601807446383932173213111397952618709789145891611105642641811081252234271804532196684030333617576389992746554791398250582828062100716755104601715193233984064756985892774685155119384798112625737270782478117145504330082971721112410510667026950617109884673615237167352421191470839547503792493475834349260070512207070309173209422963197432474190528873734933297103764979875851618126796509995404224889934133506739067175752556584124230065543709398971644051140500909965467466181782392866875808744312393489593983140211409041603432324701508728317645452018519771647446830098489594734524278356943325688749183806165009808210753710489949780672734620320655897720772458655608472673034532390709346659033680486648130549599610037611302137901772370801389571353760705082996317838243473298404527840986108393523546017641920691748172367676564122560506498884340071858018966138894771338867602278979662064307682307376581975743777335513874457536758999329709710964261268141561823411676090913861501724863114533130355987413575086747467807548153464076699132249863852830307261862782852234664678584834272129594198999213945721748783988568416451591538521798972905034446030826759124102970107301844140580491396966946117959508715986713993003278461892377297203090139566571943960564864956812198786796640451989884754636656381716227303957851414859113774283338646821357558138883452171946033524642662090580639297668567006599954588823017454451143612447285747071779698720581998455794439615812631428769486299251465562606883674633876406702575245119163141688054100592062663199049137315437020364924361793268053824130706323010505296519182010603576735205788279961390089857434741068062215931234610932381864365526404310481247998546783043536499839170397033251824676497558588556602990521687065896855058858776693863480175892236548325163231562224000031618142066655810849037206578093994736002523058776815192784652311056825391801446564910238802590750723357002188162528078525272743864862261375075171846440080580927495088366771196097608325513039780431665234868613865404749630759846859510282031416684172816480555609348301554903259468688173961443445964471218860905790872238843277333722627568137419154590473398051610853310754932621437713660607130980999155923532214837409567767667346275515351755622654258874346039154567793222692372247041097116296763639150644385585397230310584119925372260542879802243522229008865190514944199625740263260953884821011163116328285351728245480617064958081116640935054916509873921296950892828472259400323983165767164698299850284300885690644836106943795214663930509441971944743080410238769211907540703413531793900450565290989699857942196636092291379827067998306796560889869202091575134393480267670329045521618056582194678188991206290888817923928495076934956991868458313303550201375184459945346689916697455669211763216367556881427742984715060853889820219975160570072552673112112195908054453976598585519411371506700899224975712575448213454732139899653802260408280132079142077344587947683647069565330271978147279795456488485997461871935195787440977938299820903001884094841060012241949286544105344204598403299796390869094562739425084249279747230098452131680089177027617103527664004327213989644774077862956014086599682195488065875487875461738647994387868881747327923221553634177805232894838144236047046862869019041706481024055430261188550368941340128752700695416927426669425229319934911348241418061737617982379630204668108287944995913208000221822968809216029164714906770718739828038435616841055765171092187086330307151976698677224657379785222419992448156853340099322144446486088159593087644019948926347963859685506524127073760676415679881146962055410831719409986428573973002357173253530788876313958573699081203626298181903525019423378217757345807695336851063939770834265293193626553761199497096554372947570628851481417176424492617516906482905962749740111244013360646703148028426956826528725933299376369839134395029103241082184534287831572468548530381508066986887777270928536559106149139629031511837541519115040488370057412360525381939163841191803507947269232807229533562666177532559983660837802365595067006767184449142157593258924380374757069580345552135594904790623600158164437910478231426650970770975065176208150522585809897401397539818639683450081506278687574440256322207877442076243750093119608418127757161250088434772760259619650570450387096921920924575684666117346034187210430910934998510321471843405118767037625548304334543584087267458161156495209044634822827821262314340849966390711792782008504502657242623905949450377699673197459881589223751967388849462144899984813396019717731900199392731026470999090732730509778012230800407451032406771608133021834853962668669063828604297420206227053056369991967101045374344389350274710817564452223654532049310342656399102901930675207601792326682638265111366536637387452155231954980228278850953868598083756320567208225291423094820701669007055379408545203506762344316052847979072060282574077901624000987405158574309177422550863513237580712786530917958344541070463449719316453918392914614253250802902610129705067495848287757525370017669575548678095811120181186466220237118168154081831675259990441106256815435195198829014523945710910249568100779033182962686716417326822909866581032099039703382516614159446817526406161768088181059285417822138965481449309557279580275687868167129552409538986866340268809384543804208694578436709440992930605597868463152901506710743202468885784444229325431515579362514350716497553547204487762421667449149636748293303753514032000606214415394990263553801314757036594322233789444382424850562863128079832444007656275210257329454225117895484314293404834693959252289110512916646931064481368680712383427309254251997177685066112143321454640321406305225378415941074741423202299400648358381386179782025526439186806425306150802990301843494023918790364868968584616043528412832563035070601321139857092178339043898580537284501929542241560168756121598954092025151755809461416105504462948792191764756152673995577280949967192159522657461631527007002100252355492415047640313532151914181307211469014452953315351783777112768019581897534480019376015632320337500315040420494078127254566518988188200703246369427495791656437307837163781749271176586663623453658138324495908954112381257355269807256198254361822783253442637516442127261025703411113037571363968516737806709721308704015135863169096714803913643347527690265215663933986640746439356941826795549941344976572202325971314149686622876113774061832871284082476540540358050797823044272515843136349558909811271877123893578592232171206095569741657661989982560288516424388164955360880615826615823716202942444350908450118220240459231432537652069458498970406482263589335832183341801611180026508160317208089482334282031291168520322686848778661966108174108658732556443105896296330004226653662472057912314364558051353173372743484798657936599905100288880808945024774536271499123279474062456064828620816098070630012627868275327428750186327323546398927936395295789535820553626760705579019024454023776666658721978392295229518109087108534776314846545861891394018042285509421815234104016870634244617576318610022168256921337297699970748551328355111653326369748148462663179434417969367846130799895556617078267908599593468925783024679818482277581308500770021553946596161995091668741535289691882494435741500409892304968075724155026020998174544881289748727741271083160766952265376608454626022300643089016789280828631403602099613624522000191022130338044678862988463601608746184345216802063494788197505459564460095662475313938667148313709529962728745508868425576800211994241535265328627404697488598654794861531574009346437191866339738129128657152034074447692291675257296574904816526080132436427943228827503263046257552069910584148221256542024348567120466762097986428436897379423106801050841904627478262214372479580282783010808238838389374530945322282436274161059128221012784881172238069975721605039911402121191110221810472147499112995852308679491058573695119385805230299672114475684843010326950961545170713032902753675045386762026829376204741852856668143487130168466343284368420381543524821317462543893540116005757916314501435653234582545889697640016230067197199793408912965755197799624960505571028186253495567489803955914697622304312972025867635844858964419252239633880354489840653971175580273925526023225254089119783586191938425484633704764354215238087220355666331524375103916291423662273984438819682807389281149206897482255123608743310396552576820191525545933430566413716475102844863643527111850784909505215181674190753538215066767382575653186565114244031272817233021498659619069400455827993035475664784310565153487019605272208174238892034379908766088367232310164673006349749227560153717876690069680948295835544716377207272284122559381670360171004604886532329505472945762356857612662470746668682656529619168692152633595082157101087906369424733954474915296490627709847675092063391516071395894227721275944537843112362123268748520652151741590916485233763177818501049924052380869010814995298468386786866314785824115658730982064625419488052187849100121599991990268708908769180163248690987087721322466707536425327494234665637636025981708490477051515125830518281499892847869920281053302293771124223771769205871560573084716015066765220223850777538909480772291132145168754734606903073649220486219249883176492189336376426998665054630326193356416772917152142642702277406224296592979642638352245415236342690315679631049760622336030084674909447287171048255913251903045030639372958601737197022614545294180538849890020987570737400956029120384865981049968443546866164212253944994793204066096219780368524059538557546703983716827169393186337196947784251376455944476922253339623056301564456927342613798386600515845857228693468508876443651862566284768240907981178206448428796742443259702058865678242961309994148532498139741042450872345507989867784793441026675531778566058403809820711765065099576720432347820160768301916193701509283792846723345280324577921300596292721958531423350832514934121496791989487894323915216816325671201378617118555078006260246746154717310508405417641251715031338531243591629127639291356776563173008136041898175473150443914301541921535179642312690612176081182624890978436783430410246962493891055619360497042806191429757223053527952620134541875851821491045305802102525100994210887687923732388181094405526594180466416503496323635015361650434590410605414203622311327335050840297716732901623196137233397644745698083308907288997797446688681392188504680484284305222512468076642410524510730187661630546587224520672585138097617737153968447441237122443315513185176299066102782768213140753092659658393063711234805202007700479308070249933327802959045909712113312386349619265047706935977469159879830005411949001324926907091834208121546252838033744448113254611861714784889785584954510408553353826157702349731371011845106255770087440025952914548104708528430169156904938817829492849634836651102914579760315617595721931837144714711884803356119948553064077894391728628717402645626158935866273489052052272755469661280249549822822336441957697097204817084829392345552440569707609661231086569390852327718218250999432848615871396725105261897609731415030483870509361274731785172830300011710482099365847603120632553492948619966527537368122691697549524733794759602083069964557409992487215850813403937400090307748827402388278643284777631010026629646351658917827563289967359430370077485726358758913773830513443791448472514528805986564201503018475394085379312614995884203638470800320381599793945106275797804148001861157090877131054881272833034828068078163047226734117209329844939996834707182058584287204543751165970816341753773887177797551437543595658157614777068557597249345178873546146653708239079763069348664049982579555105137311590129159436790918088108465024653202192754100391624619484569889171249501540605582683431190520257538170725605541324907235159298834204213940346021382249602339151034300633744542775775524190142988447580714379919738935613539374042478159656360786021166558114570041704026863621572100535994282462459718668768319542360991060078975890798906607591165224885719700193059011239618273498455916590049734377311628634760492868028953126491267820117345717895437343228536179308584597502941742971261788282589093402553327737533715659633829179032781429992118127151353560824537216483205468825128999954984336809175047461231421048650090371756311615953182274291927431887942047105699398508876418209536992432675290419579646228001290699316927438845514444181257366224769367534059815684057012119702794443031582745630475960334709671925269991780069220551358925667505138130583218079995091029256958875671827058308204433911326158202633821354959761162708988540876408697320725110447640681238993876677365913494452104018959695554748555070913487548549071611924352385215873229358666266409507381633487244514240689147069857369636140287766573998253666919030740035049797748414567571109886741829436912923268050702909457397106642015238966565212420190694106485827589851713221713751854847727947733503969587538332278617174489892323093697304207422793479109748636303396285839219655821423775040231732283143905638122190599506690151168042481393633745882001750005138344961496370157362502363905947614691685595653534128093687665709655986173800456081105133702534259892464012919752833956495560570686950563281572861350268078698340624915593021449702419095442423437948634219628379847611953878402889844648147596640861536040120528455652726277630924443524159155282030533275966796071388997661408033278941229735856775510137082568887487010196274809361120304802975798757855132978423577263448351017229241175549254962160221512088246596039687512846236512050637929934714944408625017938635976369211637328759825052472082520494917604612161664428660811401171105477376330616562325642867639633468497188734466560951855393103926914595551796523852668640905298710775504851350263168353731357686369819073894490331348796736989948839331961675957278497594587174987450257307243950227161286481567678168078838331095494187994352172655422046037429056813988871932965497544985017898170836571547842399682878962819864916560694615738074152449841412832227160279195254774949166260723729668085719017582466150791880049928012448584832648050378674981541120522150661888714828265944055402660769741800482658662795747308687646314913049392165951498972613291394058743301012603192527918352977379943243733279822036455940585358914496281972155809090002230810995630008073947137712729498767375241339837860768348737391749421927777679012771734570668546532750655703943702358533952240921731989848191704645014979538738516944006790824665161073918083434293984990565090775328971848327887328442756895822931791266675073215769205491777820603606379697400149649999222575250929930788621594876042498203206762461525959591932141884177994744735426554648810074159663048905632755659291331389519105535678361954026079494479242114075720930045333139956567351970736186993802741401293669268084724215715662852233735659842952104487941061614454506695135030504383797496773224473234299683886888490484893106576126397408296364543796837575923082044560908832698942823168840007070037616311231691919468144092387817464021451763865748368717023724752557920536550000037065667830211822730939092182169432786250081575726779748673089774593039938260714889123699771053729141440088283064327337150660445787847526194090248419032030456937555835642693893572732831530188772527748692803468976271940673215527137363149862955692702247598538873585624571355779017239016717656885898623808469114507466663874983131160829304847544121274635076431176600712750487795197513984252269040395765173072399809711054781222953567430321448468621912866819526923336111059800281970193611790343266478942324563608446339384139698264311713128490805247992320034534387693132163359162981577441055122648671391690994799806504776647395904837376744005692332587471739084773414523866744206192618030418955771730575913497377020110468053220827252335093730557358554692430000398267948209021906165834981057121181642036376953504722721480817853886022581285043635491662067187736200670657003345885311806456897678453367434650957817506978760483646912895412768466796182786387936609306865701803188771955478999298237134870282656711975781029542070054383181491840054572464208680891438309365737237194173851105209642720656331923060094053406962432275157716200547454091232777583423444370865575819588368911475084423211482284040014324110402220552907642047861552862064963249572317122209591000693699455690342819610412013448833205350599044155324546412776436200965416420116771892435399462590397113731455986480007635662023957593052458655343218504092165675404848740941604707238328745765528208088657737602305193937044233372212771995339774166249429978671995848752221585939861631342624408725112249243638329704572277094268837836630404144876939268576373517791639093597374644529675388144089460986410462214939349142489604815600520602824910610450124195699188893170518745994147519380589076456581450875865171039181133167077353518510262909320002142446115936594306432055774567789203369522410756470388637725139194933483843440452505242626705294556802022160038591006684730238828714727231542386661406621586109635367526824741872777675233038779051389651873549756629905679436707833637522086217170203188340227918833460092989791215935682279961384005209587248546789275421157873272635645455292054154701118739511162407758327501946236647885059046795355581204625402782926233436806493564561536905047437838206922283463256423087348789515419408284947438433612439751388066429365196748107958852206933185156536032650381980685583965383558953878830595072812220077769982415170921195275940118585191279837847323202884340544282482976692846166543488062003637244729446718948542953369507451179542102171435206738599991085908492917614492650586662791733453887651549199359096146338289848352030446403766731125659763884977346041592590326038445456339888625317042657171650032396903516551462922887203218705647309946571623765669729738414537878606833923505450010955228003958409772828910533200579582114316693521490466768027503137543736431361894978245453664316769103174186033341325498753914037652762614662456162021315567691332109982789548022168789897758150134509042722260029411264263335152301775915223832692519781701376007187972441112562668847754391442783623596980624299838498581337131042640681428694731931345416712025209563509844248140517159877583140985874063568997531455034335525379132407764482738951395688731134181689173652108544684617405734779483321127727870751739333699875761049392233060331531323183874133026534697549911280692373536233604050571413484014778609148585183393435893148475376624978086637380748392630098907461350176676330870710602134615003941298499164505979449734897289249197766507807665649278274990087275449337957612086199079270305070209094739083099489843896618342106819977228105984105878126371008040929761627469137097361700373669556411286604864628823173932534089366362723583828947306562334119051418204032834444653079224547295035864094900625106832233572498547925971108246063042870300739061445045026010437789329170668089519408093463451814996808255789923813206496653728610283938085901009359934805970428886005847432854515882889373428203478091091084236713713122195287230236456506327123752197976326208154669814867911711072450342680124362598984129431428767634157985138890967409951667036561896189582784829147104131771463776889860355013270435337287872272940224927347572755156016556690768592015752842936403250273062285496619228754978060751248989818143628690408308965164066583750628665583475833629369408222086600239086063453424794409369512569906954455377238257669035154456828126715308906261432758214035191672140415410861234548022615685933119833576424065395064485825009619754382132104902929694727635102281073499512051636598462557710638861854620128461212298885685078155351871719131651276307438129726631509186357449156338803897863711226888975952111235636428271679990578782476149480751059146149560681446141683734628966483345835529083161082034241425708521119245092259645937099231022470952653249917041604132920711957371914341789464223015372970186684232797650234152625830580235810335628177600105731776360279173796547774398031761235472562076605826466795255999453888927877146364276543829980502505308476953785627619993014381508717232711350636634659000774217911200586125148383678014006869238883568433725570622245427095030196788449847408412702041457408131742895657975620301588180888393248769182507646774812561448393115028301147967016660770442151428015016703777068800883654119882870717212718807582421515732983013942476959740195286476658385125442498463487253378684441034115507163048918490778263246156335144144264395707518088944273643009630558104049379659007970654949989309870479406490025769900267146013622051538814595400680410456352819664165061141595122792948987594662659643635318073022430486002107346494016863440466539194910968428961621223356455547213826148161581008808662743859552692333623468635407955772868854950820151258355636544525303903501185339477027345572184702029899843629004970236304339736878391617666044623820769268565198357048705163142060085826760115336659913241949787948827666658349369467751308538836639880056227725575366699868148714714387572030042305384640878437560133763624806734764913199340818521653307485747619026890471888129546687371329352102302566550075525595284217924297893746294508164725997026248216304024963311868457959920196747206021526617553943178921940448335739732351670316627582421826225032045002291930557631711771482980013866733439643640367603662836539717898263600366250457611839233204936891125818829821032898286667902454368221198967378689805018461818186961523832219079688996417689436120865044576343695096844389129784060169676958347535937352672229534450601611051871714323807079680147164441393290620600174421447886054579487338214716634666407165987044827735980631501848163040427680585330119749896222393728504898599204287787623570426078831536672346428150652632804769707967570620235443740070441530975631537406677748693379034307777952939386759263018618367306205784561129209384909214220284459964037428245785601263368893935361140912111991267329823447903612786361780024932300910474311696356960007102542643688998007154093609837098922056175494406807831484127223839918578083625182358814170209145040172607152151792887633453560811746886714315575548213799771239256528125190450487912723537282970281321695412766161187394086723097601148336995036555561492071205161245923527750730552349116467359363066001950570206697082436058328484916350350946365948587125543960531375112726706086772199753382388765074728048965836357369443615149514276683077629460291848085658146909524703908529680490951112086804050296113864384267517223014245739862127389137858351885804329232320183804737818814817729396448715970676844694874913891724565030296469455663598944739862759731092709532896511708081007476570769096266530445001610872371585221667792732934245925180052555564792476971019728260413001853606489946480089146285068886377386713416228057109070941346238091403680699966079691617032931747432907467557426373301476911563871612906866243762514353680078372909417339782303939713102324757236847761426388521609137232284617494053535145834902319462756875314488692019603315489499299324975816441765502025063371665461023640135208715207658027072254390437419837205375130092027770374184889766690148805524295360030710583966927457808489310195905387438021414513565758225283350903078241358158288460416061812204805872920482117708152640416427621164370012730159703457776518925471928468323220897802009725077227381915112595328334006674979056240629089810509899076219837211465451499368677170924243194964784135632376594248151738407633856498459150091080192067534486585209255213037082499079844583374000365538839629708725995374563661949534431490681004533071477094142490568478971216657844754084449399644350468135820176309723343561078424968047983807619992769771922444755833799926706183420446737806958360324695920098941397550400188025476920346221553838094250249444873000546307416755701599502014134109483756647354773783922407409392194674069002681954611027413978060247495750492116151764119133895157855166797965651725801261447831193149974583370859391058317751319445667538262646720219082072962223792083217213034199016199553141885217659742910079623692995359240683252828894949829211897797360838155345702410947308297052740221549353491732508389535904672640383504833535437253102958411499649545341605033909300519700808486543301054325635866309928778061684676928873827720025413375742301796101288132875789612413571800309983090449716053253958941320378330496874870361834749113713623056549682674259843247414889336434904326405758907804445659311447220458927875106959394383967744765910362185581939720429198252683110431644718946723921554413764123121361278364922777042450440472378072293836810664029466164492449287348566569578326212507677144891435615377691771283511157783853101000767344731918229773911513846115866399199108411453925841180867403063638099840448027938935883121155383277782502257208032933082549684092804408995520951466699705265353270362874253160385554828063368931384537689829493280938367874497486011277526685196682505200037589454875730590498109265208940835009689101496816951734657347289081756369695016362735297852589627519811623743078651220967111741370294277424128821266054253088038096742136349313737740960266756748047439706464549218554613673579176312294226631954976533797960167880562095549561368638194316271378970090696524204989591076668883707418579014655624035887792605566002109166796470817410318368840020291512857682019696825124919930795161073714515339664039718254720115310732784162005932048290206831470522539653065731524765951824370340820595105356685216332464068787605439589463867515588935702768470608635260474148208326781166424177594885895016208225339310364934505932050187109653397251309697006637230045138597397714887835316985527948944772283294251781792059414185723660360788803402790267659305191031968650372086320968569836890031145189887579506983802765454745466131547321652845605989209745669373457580785828627197367813550519035409866548646018600080458652073932606790974392103192648707424834381015709770098988132706280960120482762256164374219257470986308020920166380017002973154994572602254850179504269787911116936024010147658272198024978752155615958315163100212488665502508329099504141864790325332663023528528220316637077175901917890125408106639140860615058304268221850500454426201882756932520631001212696353246160730080253721057839378257480535037553674200422316258856565540661063295108499667830935587442965380807208417106889801561439205614490294086293781681835707349449371450905051909927614667040684134614992914760665060695759289673923023643380738343545393072874662388252032953979979174662326369706833124735606015759162886327647962544515480669414304706785717570386573215371668754989865793314726577345177742880962134593980146314890409830301749258730635731041237933206089152586719985040960572203879011189139864508025276965794800302527080811666178386869303386739742002875598589512969745760509041218052864724587378995064040720135225376298598676877318074356112828538471766736814814995084699185321913570691262093899706405184384739121145847522537359695392635526781426053850848619543220604124659412767385918449164656225047680377617812982532431032283715804961726109741049068706709363904933484101518407821454345961990364436013480360094208186706722646076474415252217434009779578599011444385293257052966256244460214296001126759361393690134346379439272166756995842216347797893053580677488744332523432061711232929672511873433245435310084187753571669678077964043305536393270266699746816803104345098323536810615329546601514265505913272084653724009817564662024316470215184033005344360131663876485826978476911661121627130445196805190050552611969318005072659321562011897355216059826153669118925893582231522053986678286463779229034056079692916863836886060512736711135532065952858387749908505952263494311982366543082321017182689511154471593817210742130055051865186066357549262806522273382023262420902483651624394667901168570589797066960121398389690671586940020217060357351351538400408002429133481192561308865189642577635537114868480665643706382111811737296955147193764615643314663725099577952139729815152197598699299757550577113055166523097946722079456629744093146667161461942898792304657775012121814800822435009526146288120034049886067263208707251008854519566313362339499767339766049183508740895286453847423110555312517378669405446591320264318167870105965403149319491577460381969257255107041102642493210207061075003842756127487574836581983613880793265279533521180964022906995281397985890945418828043854804112970309122249781515093997460397272784547123076632144402631737726931294118537721465041385498319800233674784933175576676328033648922349608002499225022490944086839273895574154601079755591157138517672742978267772452934838977616804124619311783971890940269312027492609006981105350062953237869333814245757570145055687111115966753214976811672479481824279440371790956710716995089179134666012139922939484860412864625373428585308473616532649845269612436282740399813007675147261055406218550333002105080506890426718724441258914987172172154470999875271830169018346077646711039146375814869276580188739951419337678948040454687059194864618714546588576449005384343990965733969839420628206684326720525867675115737249625264733060838955927987714675031640019893997875351586666880007603700460027862187394329546738676324101877981134415641111701917730791159325875396748650029764007564349749999195117221738283268397945844444050410499483663687908959174001010201792270049312246483537894387222537645889444885189850387401526521056721133822647510043675681877802066351995291536331744501658798364737597377270709614736942782577150071243876493775859154162210997695195161255735553721911136751802271831377672253958782398467045404094052728417590414552700600036683945618408093375642286947755102984418464727787312816146762873405674838836571736403929258100314817836831904453556376898703058422485437361449729682857408652092465510936486055888270739050277939850706847582288429017223742120570981362254692261976967119800831976941997167098196984599997175903901742118473144173189651228299840090362896635675798215973160915271897010381878335256042395930315611099260348399093587394109487260845300228670452015298821972153617155902814486139779959828003321426035676639675417122062137050211603963774686305286196910903302464799939058529340164925003356080947876391152712809133332125239110875100149482150482187137157995712235410000997608054332664885354609889682368825861537920044213622131990159736790529113178563166706119836600973602299895885173782428937812802088823549364985859801490394813036248336251784036171359027095855785703040330666864643316031519361471323865770043714615167351636716252184572317926758941725548112789446195504768803980706744039109265631479795940194024374794719146168419812484714887383320034887417193506645635350976039379086706375094652659601173677401116912915492488388924502714081038524445401452550665014176460507543223671802194458989581998566121562253317573282213437733217180231019513839414377364498430867545489003295037622541884878643912848662481653783322334273346093009006373381979758756593233629998486638186302043317948969514855424984457421877527718162218078541480207294651190182632871597766101426221680811800005354144815794582699490673535939306972119022840309747104117376681273046956877091148372445522158914270542490032417977474714647265409460129814169584191421682137402721804173159429754035210043220935092050789425717528475513904539078424142649964610908218133326400761651147596701263979759663295811302499233805459831165654878603625180861561272164259543839834549862508531923125102215921063427297890315503746625684910820281288213516160912457556314480905185383972666413304852188581759177747501781901684684094024768532212653856353877633360669834405929172356145416521351290988581402541554859433501948705593900279262781733680597299952704636219787490735623562127122002014709478485976643021165053990413961936244248848957068173311545754679072787860115504589694865794296116782616330425736232264091102280795581215298982061262197964096676223563367099654756959454460761093047584681618291770621234126707160893273826459947448303098668862176713633354045237750850148600627440283841306339802461293306496083446621160835591486631235343462076914764170894352420944379100219661653068359296978673392607948225945204202981008250015622226795078088696132987189974455892346261644746566073179537805827209676144675578862504969350890804892852986002204674072144630856778187787735675433055743513880327268292868220897500798350885788148683071995817357015949616749739966008326504568739145799391305388963019508508571810047522199637152253664178129794515887221767704112625504412682908573785380882408971599403469170277349599834225131270017808180124848948177013905863134729459543115144841089563431230009995012544053101996829294747152766571208665707191943760351108798675079979533587514982418171721252236968386238922265569508976278845172659114641849139778608700561889757538659475478137117587715895395872036914113120225591008634551305510881433532999260520886799204324811473426960797780648131970765009830599996500068106668156748555890213841302893234221026476561240343849677416654768694364172949899809188648723741604005577719331460033035294306468951672639485985936646732681177055342326320240295294316380753680854635134253554703229747500301581265118619309987971547465287558309581615207248436274745336156231740038077252661540837556060173664020174707629886524383184458712004675420976680185266105728202626565221962096590041646707433098627416917241773515111876502579084860862693754880755332687905547493942843960875988796315344661616907208029211618457435528590955808984453419762700302517956946775172162660256471324387459520192751366772208364388116428957253818961723150322597716393331217597842564421424499536617953636411238245627724507816215656790884973371139117395784775064575662321170599397715145452332738452776136831578900589195467963463809423061850902210432194774815972994120117458068427952731714755022530521178597646416057153826581961467216548100059809649536391034768032717998682656974338132117378445859323334038665448317367544529076011069842812941154338309376014446082564254210602557707476568383716868400356531018113874317150490026862033752880794399252920556960784896780703465613705879158058718616619116227377676724865317630485589319044392035337054566918459407198529412715941401671246911312316805509933589163692171265846701862109360027337259160696444881836544016223859997444408410472826083938690791307128147655661215830677544425493091567034395484838494579411416277318156533341749842942101787036364323145518328233513737483267244164005787638158987874652824703506344989592068231067493838872078200120624942430780839909850870733550459384070351517238346392831868121800479487128703522103484559056926086746767515044324177626172054623452186152245328739462026378051353982126946553385889547643343169869247490019403605625889687617864508559013599261013385023748405998789439884577278409241534215585348326548555259854286027127100751922273190967515575650927650412707323517728718778927470874330686379104757565390951667227202347685361635933564665219309308162574214721386024261274727881117776454977152362689513237131522332944461494837717016158355125204618522514148727142089509705023701094487441335570795102862021211622783403837672770806775447320610429837746949879541563579203531645789543790379864456428056655512308416349621932377840325453641953514487358589723531660299336263289385022706544212665343456131462103023395464651778687780802397665183725283561663239471597315062388852386859154075020681869163779239204208891475470023988535643473563894088093983634772610007701680936981577489643151932708548868415987303043583303009441973752045164039963730597248409966803725409231451072197953532207046905159705352352229720387015977902093867622537539738190565871719675739455801523170223967430741923897655611536010341087178251329468554896583806240416917004579526837479167849848084221460042579171437502580917215110851255229395030496198570404523100986308578514059929717216806948100271183926789324711426175935812792856865586058060461293582306119821186185214175664558810098221046908580965703205761665444406702822614007206113921074483000986826316895946907020335003023114629286212292982773805925303253521485669855440804907091418126374020680488212873378936895854985245027347499240192958391450811880941936446817896208227539705641371116114178789406145559091296898399205012135993492735669669267915318396443489437686233065411164653741050461063648829732951029385644044103433096434310072305131818812079224275289728935647058666356110370286867652868478884724225184832242157501986000535341329899792666378788111708917693821041371877316322528436087730965265381595751267498438795061922076741642388532678877402177443482596242454984548977979501387346687052695750224229824959654351340258394360470159913483453733840844610670977649360207235875344918170866741336520885830513627000856505180578604599760025247996784549827603067269415467599757287308014302398444299705481449562151987034785900304692561434646168187202358297145610128740849409005672229354339567615309175575724005588631479823062042553922120856137839614030331767013414919513268607839831325554673860991083234635293867640890935544823559673393218868099816063803574238716917235900226173066577416339067740425699938051497260332215726215151302401920692546618497631089349198126983421772541763834333550408439700984624221704363231409225907330523978555027430283779613320763166394891860134940101654001703757929555349547085405569535124340842056888054615988357249945760669751566683926234557268567816766210525264995458083633257398214951789546812643846705866462631681958582191719873234493109642848210735688834848604848877710559055903667744418350845414978694411027193868986838115700572840101757669035905090867891160903063555249706607949768120358185685223603020332106909845171754964924494656671143977912311614706096550916536871487587107557640534987551849768828741951025838512186049373276199051010212121006509327955484564945753259544765138014708894941650779872089477671231626118827905264745757402829693500597407216876371349885592570349695495721564884530386532977054669288454699772903415704844602121734006487743525046365160171274621400062397394429090600887619390648542666241894378801284498864354560206873782967778115641368196100338838243648469920094899707565564657758437693565299934415542040129065697412352808204200337993275391490219755432939537244215502809502035272199719506334785024890548205333386767998285869194123935579082800443737155602754879305493280585256669062646530788452622274486027615946368726476432795121753191395991938173510101420634615473566035939860721236825269877403259373915707008572977445610587138704137960504338418428646327946875354276914288732002681133291566895810201479798641384091300037709883306876792306392368673649925776520040375738261833281715019380444584822233506439407106161956562758639720861015018094430129938597724203197310876790568004939960556358598835050163348222432890517107981752268478424700998029355604131831062206000576784959158048183960930602199589834830287062895492535132978803638792146337342321065355353842337323552661268246197123948525532744217776943697217246307175215620538804505746344694369476544889492907033089294342733096476216520460230220201194295601185155414927198749548545662234833440978375263114883833939748791204782204584010873891623250655172850437358933144876753511457428793302775517878731867497510871905958054721163674340415810587827495350204918066001828597110947421738282738653112089170177182042101947436360557503906669566407471565011091370259413103397614330045948137046482664361154989357755431437777602548686951214398060521584075007853246283795732534116666896272817871357267236994545400185409046951534463983234436378452457740898883142025109667549807025591052729271335191414973499436983985720050440452687783494787067930195952148913514870628433850762131542942425620804017617824656965262926306386539454254939746916872355031080345842809536732859358030390022802823582395682455138933920601582100039960078769143084350484922624527200025217136421419208702946960635770171484419159859018146979505063594102473117960081037416426688384873317441064553892675860546153497789339606855175738140223465141961549681181530826468177717763733240600126288252357624147010557671290876539258854710472906401344665927164976883552489683504588241726144994436047915162779554996299101921298662580408761470600323967881243668523404245414961981552934621323312674982245415814367660963498425141832978155831740911685327704629293914513321965901060253389998219199071893217873044392245180869743577305012706590543741146786436404600982921370064175755844677560242325502618976071868139822940178642545485837538205386175719927373786003953518686554227214594665062790415762333390513606270560457276140926834701224991732322505401237181809559366588530244785112605869710930962823134262042070106235583003259939794740154177311978778250865849680711905335521600784065181923793704600946857859416667203070196996667997454295020397492927312425479570072027091197098810778773687479976906272586818930381714741764494123683928780236963160351330327283785854128699890753960985259362897769357003488446494778328401312129002953216439847966659970410847853521446229440974543390285285949050659317107580143699291042097625512023123196853981802675646487306959151909966456332992565918655246813289099081076126767335305227676579767765395961436653883364372513069660044500420018117187213401969085389559264879262268817468447058760652345422602301852724202501477216234563347386527971660028540544691262193086113256780825867544372480587956215137743272293098834067121203670405706911659297574284099484197438726904737192085613369827768806303837458685683162975645274067695289722612162514126919800508629291341346067252355117931857315287156138718421362603691264218572671826392004387126200229369236467576778340963353230375489523292927968153378571460421585835547898451782437334464671023350769421551438049177333943246814575378228204068541896192730985552796318969684801704035504626048674287674116490592056542541819513658720211164468127043500853525829975720290334129682345500434806561133353202704239134566858004885462314632328242755781411065072864614654826699259088105827986036473936327329644679098830368026220986340755091718456469788159891580640051024642960845303322716744413908167221321794556966470293019118325955520916735774424629750869575682633200559689748785546265302852275126978947642592451677442157490410498286693560376562943690297099432241140525033103671936711909706297800424685849923341531250012378611500669054147941098978095138464579874363964991080681690107386823683173216097909507262652284775261561635165426605347100635146072503966420646863818266252340674406855414848701858603664907119219455702584571551708156571003132094526116381264641404860932171254339000129016567827404886597433424250312735318253500699277925904903326827295825402656966528856735146314695903867394431868725251667353286693489278599581692742955602452451979601076244040287874984038556685278693437361887539178466096242239032778538402225329776097647688184248091497360116968413896942462385882443348489670795548193757087201837980914365239321881136858845648557528219665118160749792131295700018458172405435012515420558295788061220514714929376073947104358926351862099677371634176696874522929928698631538826449378193852453041724596692162248431042389572985803339774405073854246469483316332123899708062350559313890942457861128099859373696595163615802129304292694930167117058265853505245124086801779232353556014230283474283668533921772790463248990420769109874655670256604905774072363214651602587117079038971831081955126834937332125859369557253412081932447848876296578941376441120902056022265928643522353877115125751301268284597865053368739362085819757643492325790037649661185519173462811829903862838059296110795928927555840120594318113067990585492996220650346323729159310690065360182227504153898449875808317105034007426805981708022062810249966232937030983580890124944395724763357098036497687341009370115502153299874380270133572725256966161656195549447364230178882222636742963919821905440681157938399387026783530722567906322413492211811519332964682090719914554781676965984438061620989889450521604650854969266215887142051424650582202997216612237934631672044436541867032610672874688894067105548333920167268057842893041231720311827220121159436877801697796576898088734117998234116292681798373184267810411203995785146995874922598818341995991462987166362734439116767236437111692042135481351158357570952787582693767433571492865563566922602577573852604357514133576804762939010600406110974877574648840354326296823335826110530300851473596338921057422725420242396329088468549225226059098159861532252006640736950630892612253465526049265587099998230146915406687689211264116213853936808894392286061995392915149758419698767426438927503277325691018295192092265477517360761464060828217796324007885966837902644542246111970420391183029794993266111892742410654741703810295235464969432189917058202493887268630440991082207702050060240662265282780862080896682604852869003415823836534761364321829526489046185925404958944886103540573783712650622716566306393640387970110836069169529776915063656669935465332180299104713003448277871694173169336359076757484133610492984656594462344704160265570154116691599432039260670219862866095304818483947088129179361829026010231570242348830299967614676267154562373769312996703597277858120436620732587159766645656534994510586435426370679537676252224050649592237552557606464862337403704185550491164208796595300101786077467330282632719755579946206781727867802485917702457366860117616704963289419741507383013477772109850589905082021510568127923209034092892312997476920103146497375931722676472228064960278338447133065529464167370217930640176569225213847397810458729601665062488241381997015444194577327628234254051985901616905245909938860808940243251626503976564780407083779467210633753838911108779730798947581543491226441648648268050534085228847964995108192266440063217050568714432568103412147243446192503212310411067224124563818476761884634119316054336804338952251893681058588947357431640186009597599354409718298612007038552200116560842600327506721873767420708485681491904038176780175108429724873731506296368224507600081565733753936429834800683983462058526991953445040609731208780158458507160319430194753848998082273217671414739103260099900616673292456236837725556754727869216181357814339571776584594858736114079697945296472660000835368624315889273137905043395641796040572338029243438954948156360173465433324412448146114129668819012945293859249811994203992177112288529712893892474451351005135865777828376050903313320900718516805963456204058129147719920172795012246551956128015325898882845898658864193535691932716482607081755824039460134165382424901297222962360098604368931287286006726528944992491991284419582203180568970470525761506351891361134000576219992209579710613116000813622663399422579776842300334857529818603874128100517998080205832566241340278305224348137509744432525648819538164655512146442689697487555987138493697051210353153296015413319847356861578902143273651699383055237459550672342933587255239054513998269215205045732997483468015760404418345488367662827628184921429485369904429053728009724945026966284952845716315631716667255170510655936924315035792714820679363798502830220028024917149589915182060620537873013118903486574169645721108120481390866008688609441696680127849125659835092096932398306003949626376435751207601267876133194138802872810649735822549408427883526584267973432763246547699625643791327075675181176789435396791814621084703508198623208208869661830335893202629492884303372543309891790159641214610392707798889918682717324358852843274783948064283835716366281107972334984014676545060070184984643968482605444141108240598633289147893351419904075766860171823149387114144600240696333701059947335288530284618806957234021989869056522267705289836129056381495950543126711579318255572960482093213025048833154343611727852208720242609600896044553048814875414365260459277260212883851041828686305697918293441966575857271665723486671382301127034850578866669915541967692791080548470022230585265322702688235145643248422038757351515124820139687448159297254653075372690790480189747588576834604037943529759843535551125002436645760026790223919119005376224911279544813833017201992242002842615502953698261558809402923526680635377813156514625738560240216270456075761642171787945801770799149178055379697135493089429227757987106715374681861710924148497277949610380908349853724689775424686875002961357927492430419710719890773818562060700790687608684286503632639537110766005697676385021905525405108060638075942434205353510161322297160377430583671327558943687246099790808521012705129496821160923386622043519647180152911902739978377547286243616583167216500712818568560362206524194519842923701415746710735162766995781953655097335196417567362667930285880472249062031937635209988688615112147105662274905745775754271231176294224913425461501834468873652016263793375286806829286515892328531573753284777916323417473379957722955256183380115187314974288219075445596025068263415860123266599710471479712541763480144535753946664762964204446591911611053620879638319716648521712100012829603418448650300503419508871364214913635512042827206587161914672086906214004421611361176028005529168653238318624582371800867128957493240129143558665769730708905235801437433841335246064068079116509849470924033159585915077339331973447741782862179601629505435814383901906414631458120885265403990178139392564686657904003297622665590407928502147505670738459497520050063936873722873040926348635486001098162496791903098655028036288363331471413250567043596755165763250814606455383859093856057489780074080892509042571870980507043578649434390047284117924861812364760360153951765968497151459308971097964076713957532813500063735008484768175868687651336416259863643827170946801405398117872097911355949787863696078307663659769546113409244589672436346005152901046937586790015232670325976122234156412261505867557301451939507568153602506258735945831629609790704605831043502629884384598999329262674173195561835480371238086761891354786897004787294886830241535058127172253997168493866705817405624236747186476727672251729378296141405825425621371120259434960477999976510925963465050065394928780418378115508217272069149118725964285649786036417224559343895556720670674530004848131474757378907752808006483478982823437181351572032321084663340009327265124315629193165007852033879871322003966985396292689980854079607579383147535664854674298930262636307659485438535482281688403551172587588048000577148647356587939316478954350224648857414333615327823650677448224555572868999551049703993043630227397465389804175099119265984201175830047067282053839215889428175321369149792155522511853420891881655078154077300635080204781106288054395908261823941333211007647455386949554069881877070645287912772504292453866505689705271028608732268375530874187758057512349320212445146052645118893776404749939669550361690529980438716802589913239479490661631668593696351662382664468035553158689039401319378667380978157339527111092317716971372541392825967646085758503392328427343315444796984505367914822034012211504751590673358665588848175921107585525851609942955540967725926008067426865295454860658207621922751604670267220203525953458445758053558849335498270523597064013556573884724980201283764199289980367051988849989319519765996351946595766800256264800651876238983710455996343629769029757443725505651347007773243768740035074154788725461318437266764310997230178578257127029911700198459205368690962844976126353261118573118334017149986286520529172762916666237350108185274205926077399467622557501967871467253697231609208720015152040132690455403210619444594042730482648692212054907548325996327177091535800690762273238092334783516282231762801378175017991601321826948809008615808601076982834079338049610861903901269158210388040186210741101308838976994592439590440824211839697904714199886296330812999379335676107441188822956434143785315138756489860434720957560054177265902742459297521006659689743901338628102522080978705716492723745926913040730914134669930892368884953606004547062528610173752312404503066682037687854165848406440937729599069395020512642294113666523528247267956650193344192843015655913612165265848354961716752265428222256431262505458955983358357660933617462442314669951162555630235132913961617194352386979316293802702596896598259774026241313429545187071196388340638045239631539337944200302321038880094177458941458072485698378360799789311802142973853450569383968677072995526468674562689017777231522442424203952609196071631031386627055940930630276495063419139494416843438457540443551492230641435374134277398325982937623949273861383745995439351084597799397332844681817620096155547245217675973746569926826737706355697937864802134765931078187916135035194560141942813775653761315327012326909264010995913873231358824376934820693520616263200425154732860039249166284899799662735519626706868320332714296486336524866217678821327973976330830095188856686631620551998957713530129849658622097002018333246085788118689079183315374925350953945598299033841275626543141322396543910005693282058143677476171659231231528395508244179674878200330220047381674327890524623580196486891829485833731942303597975875064209921360039373292989390936747382135999530904659102569029476311899393969420095415482168811119239829796123525398151835219808602097372727764734380629432918538888938029388137944130365659191270005424227575567699799045097625826159494188966135031717707342005318126880755544420533071485129401546973232373921529201974518601445117593375169098582324056948219912615374565695246328016925638845465788332420538053006487610042079809249330239249090210196013989418407850027499840876065806142202769259838110159952942022070223574217753990670380791235200984698850826643748988691164976182616950093230545105136253857723993472810555984500702228828289838053251410953957339642316851461516798145041058375284397044538508701590537655569545276739506453821994418891247656373218398208578922296741700185877597009081197213363239556520542855031355123196025564943510270467729156335325625051007835230356752762153051069056599158250420505229803245356611250832081116164691839033401442153931360718707386716308165108397654916118154109132390665716243360530308242265531813653394785141673758903887035688942785820645557828921476307641262124645407131062605510590003842040897297363747320835649409867743689069491683592157257339920821663193304465352723312907222517123379922344564659072789151223407992577794266714664409639706914675799266887578209659227853093868532745443714936185401351865309737234241046368104529287727487318456934042443269705893639198018610984409909052685737464280640080393442543756693171485620133271195940043621586117945221167702714359179620856905256093451534556231114806561163864014968549943928009864206088348827463087500246950958304152708593013935040189864742529172222827264785075268336710817366448903133386489088400763497827726245418366718240743097206038551262236656305371837964983059536279721639237517438247645121633063013289438679958213475453777471764139074435458813441947834361078789569759836176935672801781286723569445368667211491425368607631903710547293828322303627152726122954796427944213666085303494152654365508434426484494088971804450800009103513627137909356566465356097189595972924118785037447013157058642422927447717869640890503043102235092729000067454340019655762136625007970143151143680352968490501253545068258521439047466114960452648939249806662881134113928920347757141878192045959790570118937353365327243192619305525155231619716896610691588456800604271887503273297604956127809027730808105021141447978886871667547200971524657874871959986062961236990623161896901122619499018712262879727720157690887516503826632068987451635252493894283647847807062946994298706168406412193754572272210183260063613333395671340334908856998680500494103332047461253220106790224951470782942802810505132586486668683661971915249236865259130536480944518312744627069484843654522347298035761850455942586680514424861524008811301198792339674591037346901395384486354984964536997728391470928694355190909215988024183737424096634313788162990292191213806976153777139472371336511491546276515050411526983169873940680341883825444967726807772248544926615959578060603516073553194909321915153146958367539765801099475043448292985899797253542292029993848999009184896285393399338895877182649270699306798108105149866044258199823745524163565961692961049265510879585040776352552731820901741971326892527972240241826360759543344304496541416484109022475952284563454307539328720978979436109413203236300478593012445140657500708854799587475853636503924523079916133667776119152056532652052140364871212605357422691197816774257183032669915117991858849672291874934249945381218824256223614986324549564478123728778585775507940190846760364806839908334043736641331328223839776716758876947769350729519841039458060694825351745947582640372415321563139029341733760542415119366351763668415885411760952274737380979504788767173733180968116587424549724445292156682111014384968501578537101178341468528648504473673616893635332319004008014155729345228691190612025271306480799337513013793499530684088650308082106610534524417610637044583785805100827417474480097464590393888138840250730688321701714142774304752345108530282417838318055785902535874648060744506056512558412884383078315215828760509341385732754807431121663240335491712241148766671797255909626072313743655743372258925626759297389553496782340558523061155428863626888560598029662309809918024271255323916871667404045723681053831479970101620379313112064387559006714697401295622099937893560682809107548217196684297210340397515458573897472883623423442541581128117712547501596217850436331029249292656663293697293540570405776656071945400504355400540720210828286685385826526619511079717633717253115267485141783860950279575213114942644576977012810924069543797281385143213131517620987195508820270032962458943681798260569183246375908484734099115167040230704901416321653649715753622478492943434977600009657310205121030830012136807990915724188041225751463274227106517972372747782814126349745135342164462863088950349302082856361789939639932728176404847721198123568580204676460176100766303986453934714325103371130446759861025193078698836642962039872945452592158958536444501710230245534632766388019994789404571277413668345760736326351137394748360913683208605339580468274571360575404843462118220689133681938336975076042335131927643322860196188560001793954704729058329200606275435471755001425712059498892211333328344718786952843944453109876712344420971617800408172380065314271818407603304601880253492256120372089810513628220899003977608333459154253090320498450720353745676650041599260033033602517173722967901603130966656143520918023935959552312902557731309876712654808339524847377174376677114749465013129517289742961908517490322263084699782708856793081870264476757726809793911106517402765089955392420977436662696985795403418119673888848641612104153279393658584169809423170893977503917695583057958352386832144518667878731876366478383888212623948293280377484626195297412740156958491660762491901133048277599582800719662195273551754115117675240888930256373618463502358350420591042982868928525326271649056137171537131160592765988249285898468947329655025769092372878025567983485751535983544155256778773345915340086317209821744744707251408183535360811319816773538341732083604860906867877548349482819989419212731939640996584154978886979497851122364806791910572624246312476094332573333944331007466147058567047207970449017961294969728234746300311765989206440018643614208751345533938133906708476493633422257889685511326461530570319559352950680740742450008411816052861409629349609492231676567584106765416597971519162061170777154539008209693740231259454911223317418925735467645333850437093244948416183221036973514495851784354206255191202688530432107773809639314471056281632460811870909949164664339949802171840569633207992073000669412530234128540102905626819813676525418256416314215502309933072942522594713226858254988213432511656414514646688813971566173881800927309347177037643941124781793308689118850921057415511839898571792459436651686398658954719571347630590681124668500513168690357357174058797634138185797264022193884158846936183558680981555902283988107620949308749387209675560005494088186398086362403011130318662446320184752633854708849549402581694404723732203315953479816907681519073226647522031615846245416910286240410566746215247256160402780703581153318973117101882817078946948220831344317286111243687908791519728284288210757104263496404908222604849446339333894037833137848578642947748746580066796075402960714269319822485329772956354125315726615930829541658168200177887284745551602766703605646366483358093720180714720480850081081895571859171825228214200420835420279231462438062664819201380912325155757361864327931452034155321493424520670262375602609636233684733406871883785583388035987557558085550870453931931936186688677190578185305527382111045570945639735876036252613694461614244319690326506332899593004286965587590124900209411429285176464431469592193814531653208420303694046021332294610087485158189914662251587403133173055950859635665522833236869012242696312471276383866708316968102321903682333357535499600407524298769300954509839202747513959056191752404662966367363920844407449407431745245350863903571232403538107243015683771979767187221988129227137524892193634828901839023865529919542951135560169092475338973099222032467343440675397266066332159387543489854275664686989741790566632661247294678002849811002219817668699358865526702350543320040275052180014703000913097675340540588843250091679557613344925161766561987972755455452526854763238066186760148417599811303603884345062241278375337477439928046120095574102066378380341272815481351340557296968002484790228802390786359328127579762188534535173681333701344708328099598424942264298256482239266227327604522916748705806275070432951741732497437075654016848825606670411104213150288913389289484758890628583060536791036925375531129762361490719431074191897342551472395385497515858959993719897035459033874316563068814511337710744421782566418821222896319886038689524449446328004873633622502833958267548258703447355486070476202115253822896129697739133853147284560606517032896346285362621318749935191918951165137577332379334759894699312655383884966460625984966272731459255010092861750837493435131484960986199673390085915582972741593813645319350494218115706434470620110643006004009177193056224498443182461378981775560423806109248634352391909768115972997718077579234389201747788617103365200256772885913643694030674251613250634128134702349173143119708769706165173053488756453940825374540327417922907655814255395335665589424605181830414017271529599845821302209398629988146867901956928217820217890085344381847766674384827640318607650202963854826052573349516084940153510708355701072187837756488328658288376092664879372569422151545784026180626024733080867456158099321953287722658911604806911457653650779975287316058158334112414207913024583068210864564444949116505144385402386236552327599986139263945577744260675535703204068534042198878960605968069957657372998749539276384682620523448757651241456940825881867981976910445346245317191728079290176723704414994402261518412779262666206718641303868556924313874879472190329923509159554659285982051610930377457128282237380533075534782898624357989464145548155810571617151812863260998711205845709986953723311247026066849624418116442371667499568908013162327132830571508372843071918957127594170924875759784271386079703474508768410943288027182529700127325402300611599186650712195327178633876715067570694008350817615530486479394451834513262765592608038286429953505733928304146716797598942715179492394698331993521190130960572998310431425113466550763768263636114713897142159437719215257036256095711758994005021960045795895597954022208378871087855113727279622071106904001370848176504985674990687361653204797197406402648130845776957787996205469092438952282414909770976438300597616609808038368535043015809891792397948990638382752964257371326906848400680103391964952898917379239495469665090799314313311228381267411552743293900123588489496221808112550623751955403988290713303435245625650132418095157818615525112975963317032753520142174058657481917883404224658626472916419581132711275035214046382746895866646382033135768738056932360749335503669793604437954977015916813698199401396417703481569664952361061490864777923472583133312306295055667811249738241183608411589811814948044835444498265195778670725715739470185371537189033685578427738370467895261442413638181666221095210829135047581891582427987331893330758531460610976278180789116544863726177177421946758427453998347048242990875900364225031605845798175026093314680195163972093242630827585795102677346373961474897394452400387219592402940861575110526870569326807468771248115992141367891364105194154104590321165327590510481108002827761328786517817016888449532421262663689999477124086565689350690051398185175784269268960205657815441225546193205258387741889809739400113181391870711062472064889505969943667569061197052820166858203446295487488037539493712165999573255871305159212814518331442435658377511663619874047970971900197610921053761410180527186213147250731141751557267486803169566299435472134816771468083584747874318862747394644768219701445803200437977772094541579283776796597182642470144076788002183280175741423635384742685993339834019300258074812331348804672897552695732233410577206619974288935934533474427876355919026141561713393756147747204386178431434269296187701681724973123923396302127639058554211534209701393436014810801938710229556896852266308214865246701911348222439376651196134538362793971745228502416168351286377171156323155468540343087294164443876318557698987606914468997630167851349311532911281561123843017517067384235541099144558673396938052767048026070600563937585175477137119918001688194629492664743923656994229991178073394649373038560178356590885831464802204537184812624650520383744528298377635997792023375347898477446546838705514818689081912249235580024094431231098714274071658218025087265667186619799019905407016996962706823300221961524932191144364076908869305073016165454646585507943785792570647205452356966323313813204831760223480534587035393179717014734877003186832846366030122729128476572807077909166780815906005711619602067274461980968706907973857951678216202659355742961231506266076580076335093316798134906409897691120912203442705978107094792282940436213891150595731852572593598730488353028618013508071173265533106624185460429683279331001831176003468751006880986508214697438158546208068203263287709751659883760531779837448336877554044192365326192936890920510248749723193927404074533654724744333101988477776511100991439853977603965164632822712720852664225363160211324263482642090926113566512796836242995291152590863411756510153211386930153138736701999882286117661998300855579505214623334250399278544147732950100134336113448721591389247856438397962747071225833716366943392809116364049631148911184132381032427724104597564961082758429433472769960129124506344887024142546170205204000240553414276780394321806258341645607942796523992175018146643259889276271149827732287252343562309919697099694920930825536784565577982874881815515322352244509077428704551216038722637738125436798961806749279405914860528746623471793708641776008838168851879994288101767867831781397533698244645061914145260240913696430582823878760097055352458076890624936493798323308022722830628575565031595622606706969018583519636939661634488631308538712180676199757238562688652989176757715039193592307962633255022641141945850315568604394806531324205955559462747390615359171232075921321061204740240822907128275636882644028779537362997473540844511464169008232689644482253568182557328935239855179083179974534325463128995093637473064593682289446988560086523418058711853318315384933963418345917999472663018182810321346860316124950128211989974506359055033109681215803521561837317566761842480115123472939399886778170387233348961001777423392804816594301611074112613306307847405535770955214476724903459340863219472478426350169902577203043988337325569490392375990133621711134137482818291217804660076881081755618494678958041512568523249257340183849153060608544312533955771000972718374281983036839104627634608650834838459703438978533916289874708241794049527772522164803636743109146723639003253705814168753091198791460177386257055419262408941630442453325777666788214606095512153443267142751593037712306541734437289366283476516153764505714820341435740426044230779420769392746464663136774416626930631169948122757834193064044445905353400260796810296192795970751481000902818018393532309116536900890586402826142274928327249762849457417397910083752853445853712932159618202266027510382658468059878039525126441540064269330105853008948670917771112344757191772856930409010366705743956663424153828849456502037223460191456794239028552560171124541159618999907700690843017017221106869087575619461529839788269869461139160201382941678552818979020924057171344262678024110253254655378256159896349805027649487173215894703891595788599161460605384903761729442586670132512580401831699632928288108315093257993526352202630410329220894863515718706995849103034637807919904708214933470426240722851139997336940189333695476132320009247471224228025790166837209057863697240656189884771328085394117255717486280658789369665932066184462968695874875480761091449487515360783845700403737858998394690774170912708696937816919838537466147366790847118505227036941557799680781873218191269590099557570095258682125999373370360905410886037679319973383414443093600547585604576819153950250214324065982925441645192264510823284137805168334193262172243546970551591942408597785499854143044000856138003886497405296843848874776298786374895915918179906521853881193197129615039739709278454851321668201905380173596593754918759548559921537842849681939541863091636096549119363658002631164779331721278075312092647102732583516374895636422998152182102175771150044094581608303200473081140862035932425643145195762004071520228930225932369847427099276624722140385434516615016412473244900070458873242846478396961818969286852047389486091404985022521931394788678170499102773747317470328897463002991968036672570448323458147462108215975668292433268886384749663450424437090334401141830546592994762167029346118086939095964581512023912328010354315129658242703727924840731183170328542471966449175996199969010387881474032902284299247204630876313451466763131928463057445794078299262851773604660458538012797480852728378503862974368414587649867951941930290264760136475121434547300826091173749687467926056387280752486754116388105640709703685449321569796613878974184505057246651920560740808238189532989717164051207280408912480883133530732356941263452564861048967887786474166906439998187120093677154573879821695056749604453402005952701297180090066823409499695447249944989899272219865613707726764369426876791129078949967490357948525111076640240509663258669896746922262901967583803853863789140011881974797656444622544436977911357645929721841907278225624346028321820491959971498690193073748269857011895954792807994857436362715578139323972747982968185546136158376084712607207353579993392367766482948557337756449378391467203994091978045131035485259914827223855380017711147669692567938239738802778943188153831728335930304636208786730927340124665536485530812642691559396346707149779879667865697948349409469195286598159872219837037837270772319054734010630375167503516170776320674869556970176834461709764714760045918519344178256753369197690062458569685653590065764015957930467298200106484592573349255100766954656974334496407416687501391471098746419149240809936469904876828474880412232057412411363456477061166972672855043683122995679925835526163495822136860183453740495219819979022175606327709262164440583968337555105728352638075790022404386618311207537513203680360335466950976609541722165389516874291437586514601978467103680242809093937450094816833975424707275980476347956168997791548965159824104026285774010625220458077098613611212947028691651976210786541780065000233902188365791782019480842180952703898566202742982733334395455755560401912169460952515470056727895755190445236030425114154740540848020200425535840968589717938450219703151463914063215926629513160122631675305502574626726031542187364196085673955881699317154317812759128041091358864278141226802960834755291548544792226205241604555793968779695598158238352172525073903364652565861988470102032575758557730446683510849810291114058867586983162794088068644958595573061715145235086795489320431126426164171169767694610400637942824796683465916021933182399502809348499326700831684723715919902706472575323536226204895424740231451476218256580446001702045359251575045824503920603745556247021786557148187689772913368136430845980976366390716894845503857483040920880552031640400931518493674109485598529586560341099871942640238873001233230603332990085567114840156886476722170436100786505783256831673109297353459485057106356956728570610577558189988429975780018998251846784054983089376892525224860422216738413455660401552680312921870648707512752447609616389143029569745066359524620621040919461346532330984698693195506497712948195936811645927339337085303303140652992495387229167675743193462452542824688579581970549989732235757870607149184265803798643410671621389033081407461362867596356832800245210738332321435198027713032944014235641594153664531188488925856685551494657884994111362668497859156309068409448295130941749081963066779443323812094539815766154082108749968650179302259599005319493151795672870768819937800223107482341138577506718908868776348252635815759181065539901875770465303665864761457025256801059377608104389615352542936002096375217029361990342071025408424844543099385083406068364559253463770084633135878910396015837212009915838712326145755250487395159683330438614478836262531700129611898379673607987287349830082502735704104121052991245108064765752859062492932828125134131313825432810139772636861680850100330864158268080183972848000526039050806550067531362200797314539088028151305109392179257335754569392919656021730017015871713474949600662721137783429483509711463145564072396288250966479967068270359629405941976485105503431717835458363234483616850167209512382537205490420239670058432257993074291896092237441094546508859337553197123237576510932215955584128334069795038280072648564302523870371112538232901659192391948822888581925719524563364642799596915429929513771567935681541643960896361028548074806607695760511574474557221930725952152843097571368904850517929569810777433896625844241950057204907259901668536723926783232912453138722938213778311383643925890742207334514998171819276839251130561247179396669294116981513199028727924830909364436679608172393575186795600107498528259069221162957437556859001220229475789819345105583316046807647249427012398851246909288236007670295754047377785843152878238729679117895860014888493362711067601389076767668757404318672131388868778717193772226806138772237985683389827352278048506830141569576117657630565560312049823538477825308169129439283094264238297240536418194718366219213855185953684173512428671489150574950611945760822063276425605839761133241418791727923773456170957142674319019971837358968548512436447556539438540511009843297712257065872308378530210427149592002508857585951729129018712768797348173542033540679905056610283373144895842359772045033930275339208303756016932117440214216549052402970263727195027382366109259133327941930396380724087924082969698509003674859838367177995512441668483139142928750982888478491636055259026903492744245994158753881090228095631482713852621891580418074090649587738452581508130235023789110486096115336984985638620935880882319030532572082734673330106508428449488353913095009488976069828338538320487773477495082087511949487668486324459064246918092034330055113492370532164292967499435005005081367259059026148399484517192554945894675840616951136999157421607186284091503145175215279717023897818326316426526915195646761658975318533021139911365369724596837408460485771006759494434052052946968151368988677666660424775622672883141179546307533899194267700250030152717104283113401633887783535917652985192330568688119747536066743247308783297822479877078815792026149278218333214213295306051802469836022848048700426532750555033415935255684806136030702441982262937355150989928682604530450868448435790739390033583252879682676507397713090329332211990927132363696262487538820292759362098123278015451126533953654202089878558167313582689677286301615939888423847888003270234251535686902450198968409931852948308717297088952818027536021616069680656763803544178344231543325692629258214316017639106937667307624224312853623345517209296808178873554763541451841489056997627372269783984360003687819214224966338945880596981273642633687927766132941249706746853817976070344330916710014021497043359714579703439649225921626883488817826038176997614168788574310311194177868946003197823724453260525060006178816767567005135418030726498342836045196664190057147628290032317333294022852807653401310903010524526120803275250126112156508871769787753375898110490030228128970851113227141471677495010244243257494815155256311481670775181065536173651418231569611240529676075228072030907627960977336342361865896313443204318307070299763983055904636469323735068177602395996164545626247647999952942987132385201179171684537376847521465438017206219386020156731892354965013220253448629370218454070933531358113480006393691158864948696001163436268792345921836592493079799049972056495729570260430519227100343609700129072461940568256169935218122088873290996995441430206575125228360988529086764739086423871950775168843772768750994542091326040258586222215302860756801840754300143277711163771953167092221254442552268423798852965264384375496473870631956694384825244290794993124639143497796533315505380657719113483552942035372006074565276005074104156775419151984052355899366829416455355550360269034351025227587001279898038715170968574730740911524244811553557159611124952685387386771526977102027547132851688730073464268848475658335403988494337233275100737124331818559800169328770932737039459267452324864434562452176452499673626350828008162968474242226500306980514841080990847374883645012191214213058936634951630228301959682355233230100485969952307639904192508589499869137031898386456795881965971783840375300103073023548768067293551217395969402530804740515762848247403919408513289868807308400927485437144990610429890072668038788536101521943030726922681246050292805348402812863967655644866427733428265125512670093158129573242275443660895733141997849036812252206922746196390454154918231701173878473537248597474577390388942106608826682256851398126268385577650482508414032415196132667690088730612756422909207359787280075788772843777827161337446706668677718027314425251602207649309475461943078915881985996317800010818381753048562041836329799568908632835973911842651043787132469140294856632965569454388974216330874135061182257770408810239718594781253562345006442961507274084120350048629026929815489033353687575156260713065560583056546389609018964624277353327066191565776195519925681329074117673044233990839079336082262519828668889273944405144243233876309829192641077445774498479161923858595316852748529461862242791025521624629994511279291517124206898903364119819649363527675999947925811676115956592658012233435770685202677938257414635739754729467628594074060474235970766435206085307798632572026144724648644399475224259606199255827841042658401697577617226021212794855006700241270164740762363824429090747186179657504148549879655526798075811658025487959440748341642132174485799597552627798876466293936797111848376366503507817317447350575367389946359232269653643935718101896143548807850073131698071441174599629195300609558754597000722511224132779018424994340419230545735667782300574745864772456845943745295011943109167245574298023806751411686917103357111076668671466628736622395530045846176933332804073414961795712580950893642919540632936211441022406213256621347547116175165494807842879089533505927125847357721288574146797246612752626270227713611325641814612161218577782184191688686475501990025129464136556551074734501976672028790144960561900844736121594556884163206562093897435440346064915839753080559675472281564028155198599059813349167092220533804361119750563146629516576095173366823218244671900607980974460018581760773747676106831239522991702225958445220460101785083515428396182240096541350201433789707654099726355213739274506924805215201367410822731692490685390734698423361268945314564412488940816528350512882647481871468228973407355330100450376627691799586134784160580617496895546736843689740387944196321479018366128961971643673693700484705403177728556604679607113164957043234666566458862909973760229748866304350458754693612704375581876953839761714409875744648977869021639587280821569066868908135637726706510169895210042141468142126764323918193219806903901695928278209283705266094567353921393800702021365130064559772902670787139113812833470933239327008761880736205308920331517968583163650481105467635693523617728663166515518212599268576949763422616631743109552713473700017296019263022170679752897841207066114988285478753131720050694174423530203385566311350916116987041629202378992373563374108969977706708046537933237812434113790159175166249816490650184108054520333049712827686492685298349110972104275814982217123366057224824960952415245178195371509988163856526952397839904446414492514027470763069672132956990188958710070427949789495001340605179809546163660723147723654780802128308342189317692608421298290569936334986546023455159319313688011528593099937402285319757956269130908085705131652502985120972208696178085285552439469942583728466618067774913873327534917579387622946282514532782631422339726429548938485010116937559916234099561179249177277638756842591702244416751886156195380764954243486136894408332446782334039542798465251867828112752201594875579919763716096093829844952423421897515313103077789839381834182616291584685518084938079781637141815689001243381309417360741005836762938146562626811401605652820046818599558442332280525899062785373504207457194946259956796745816034747470120253459909408992629521496482758927806615628865186898518472372579822216830069371712857822769174897181755894275254955906428988620661522104451029763460877066216849443598772213631006724233381130204027811909426803603433005623699594161869739024529869816425270137001136621684549709891446645447835094461790781938705287833058878315141062019535121030002745274487085266914324461666480688389317073066806830939341871258407670139920032107016264090513848318626579172048892836129252580582266337286666771179067727032906639614857176116385052704157317037241803675200497045522439929817690501225665429031245107704625294244044784383514274598757323387895525368513941987627933634637296142523120549838789514137202094154236253261517972049527171167902176347356410281420591889278515652031027739181023277486940398309638060799633847947803462843540063727531129710604590662947723148138886796865438463523671067027882129602820890586056029851378280029922258332508083145268828541236948371510528038045746802735957144467810490714234926949974830680827644019037367264757649815649785411262987590285418301024803971690301765082420498505923374367805707914472377250414227875791516970037796264522833926149465896497396978397321610230217525483472648949697960399849323277836943912671507638194185235158419118388073516382622212091119439635645825653931788615612177365533031063046976686749315917183691632435071668156075565664110696761198542063039120715664801770355395984977393001638937948059690169225666612086527397808696121876126527806195733080959057210127083480274062308249324474100675780401246483044850209822859727009657426240563254330616917924261169602262985251877308427536601856587574631313399712073939184351924686128421690611774637212342736162422799378308028263983438098530736794580063591519767869887851444170224392961119150510872062678644472676503168116451749177610638648778092832043181280021816389652253504994321941593024941918660929477461529479678163034621569960990493279702363142200119539719596087046859939077661602613451208057124814118070018199518979451233413428716330978955129418189008199863004615604726717030257920546918846752438629029942593321115884041143323492307020331844946201848424693049469544235098478714437205736756419776455511072916613462317574382851926233782904082799322011715014223522522524943569153756530479924827640878076911909140215732532477045215565763406275919755410231608801331376812005045841032825835075458570265318149207462727908283337559996082237354976287093306708530623876005640123014811426357391566058822901372609991592485229024578606198594920758222766976451261772268168233198578421591560932797260202353336657103423145496160685669849139625791714767826479549139494089258106628418709914366442792856970138830693600517464420903863434272744919362824245440556300051412532276155363382924110552431898337423189585473942797350565952194734175510890974084411508501561516527540525065795172871615565974631466265001271730758024683670344626011265840838183420800129196957323653717521495570946098337387819852510354409469709892085163971815948084754264438042865572299179665552671122534261828756458589157071961316397816588989452489451956577886034183826201321600279181899383553228453485452848363922977615649536775059881541394667599510660444499704809639519644202634438645645992439865752064902806016017168186620112244228441513789962378896758033803928724978403785431768141541909618817030989202606891685544702687277886267557321972241075745272221439806783674415263289631666991247631158407140276273042999375969466630439874419785287282419159089820709955112809902576960069478767666914001915384921701539705417676946352406442423831902280242863394743808339346558242411015688401858174663107861845708800716218294822909514794573492442261267792950964947557463268496627375018905954784003375123635125495217795601026949845009066849992461260289128549110437233347980670597669040358737888433545591672191292743361932093496078688237098510596047105003222006620023515552942429264219953381006867717323747805755786566774835091467036503098841746656439804721724743448140835059175115506641878849237729733528446173618992040468646161094364396042642466928100882300815217143559154789379894039702612362029294441016934485477650068719974153698106788620837984586695271166311735151792317834088443306596715186125591820811921016349509769407820146384725711145271263731180433152667890679381534898125629382758502793269481896466501951668182811840934882367437557743003306470052344467227553218038008861171895286511921961468602649229914745664313844704655706036915421219959271048310527766200402532282886983312107402720699798091731783934627717040775906640619319560834939740889489552825534624917638094862131353833071309626625766778224258170092427984582748310625350949238169054658781350503452873574413797560932094616188561453380097275907863740804289552352719339818045329535045399114479204294735280751725579780873818492350446736573637418792883506281526706024732283179187704701594625031145868119602022428828694823036045520242532140023106932723672925806456333084298862006177228398731214038294106127909655434541262488068037217189563764001597803686403393843766028115686307344904897032814146058219858105906974154494589091752776319260082677545259790668588882334081988667835124169069869436758122037274107164220423453857208654120559592575176424088499976158715257588161262176440004664229646703456590445967510814236160278129901474507366359363719296862630533673774201533189910962397324212739537940394078788067246035776957319279401389579017595625889111798313540140879243337776514991447926751025060725423254637896717109991521889607190345732580232198823829694158117304739545781994626577419231493937435781994803314960782663045730427444882984726703596443157783339475308972400238784421376774554283243646373714888145237490847867804124619359805294560830006293852866719938852366134360023031882188657076392856447016403353001142284934223878160696623573153204435597346861846818173226314595357362424854540755783806288995589596884084248344292682364219387262197646069660727444145732046207219471457998274028323616642163639944975973984211940049340062524129809990624670217710645928622899561974145688265858346071714012281014696825255893012829643115097844886912038619608473200294672935254802701678929549370814097501585351332910859677149794291647151544187457291143417039935874176385068062722848338450674470785281494897765832888971236971842070830174657297973383070979133515863933255057684083743063063349218822662322220818823003208425371569494566109821153806711667181114719296017064608428487543176508962727732393026847363231738618619075003798482229638888557568591320846925485493255918449479438905370920967010141164540644107666351631740391854432340904217784107865927626846171187322566954255430290096957363312633583816196751305590252906955376017876237439630655725021709274890966225255782180195527064541123466306026121311129432488681136838406350523233744844704455097984234858957450201894508980507867480983465333588745503398045490294068630353882550150163955269961186968692737477264964362364738143099147708336656632112626762188645188527860594834695906435578185327608398352914054127853096523585735929207548196561561619284633881191596797384732784087711714031430797683009330946929125816580805570598151195493265296617736091663012490085163072872759428888449731290436038098024681902518391414232078858348822626986328286689349824367807066504168613607243135867806475817239699314415865199833845140041056605402785758550309226161592203039385905590775042674357999735332548940997315982611663152910206619533082489004850978828344496094380720221581485961639077513141645272697008514354728014758340980785793745062256959714951946576827568164434696835703990841216101524431081404512937307409117879991266047961606995059287955284765198932565815855809269136069071945588589413969064554537010375555755988586366042906520409571006136270583640770879303786656464924816809587672547634187773921225403325804190100572978049014032502626041159462685793508792078431092093602326792340560305582709815020882014220800505537580930836528991041155946813262187412456242001618107974819796660530105816033850127628025222339556414167757972138515468353023049503196396398184511399357928062633095867604920232585069560404209261335820798918228828263132861699754123867467092900447340705564054960606733482092457035573328350476985445056363163447358007257548939958956195182342153966853164173058057742162691054388380576959406066609873822413415307505700392060859863046316980849649816304720062879828323556140088067853425543093244624183705981902012482262320610330688394177326324176391885330500197665179589025932224222146328979242644387294594615712525572332142292440368516901720669354229708511326966269718926709058701000479633203980194351216418835517978917776298568531506315328663351318276156189860488750691265591399076450128433565295663599362722394491071153316375214211930061674525932622555795200465071042206975716896686234097444008022684544732340502021653124499684735722026905253275291592220012257644146639807744424190439625665132708469701321447420288626255933408011233958512820475159588143634068308381265278255635543388404571935456150109244376870419860547896565268423047554181020784923467614113706746212307495996203347385363778616585751990501628435794478742987351376281078736014381568248074088859909970083668171319452907712010570624186879965095063905042504923157549922315772440158338686705512407985913398354290238207041372990452278054305088882709021912148629522534072479495861688139068551586482689881886876397999411376346819005328660701312931717187557458288163834569296969322094803691477021897029893008946014088971003800605575615693811989187387454337986724474761191716973080309679656931035913363262207510610351222009749469555335452701824605223736922793521458500686805179952633878711754579684243516065740873866923249803678180003741687189685850830335523261870318516990004010773621624424620355582667132251623298012339865286545079531052044771928221771324767519628242363088255753361959959582851668041924054228810213352181260637227378046578856125684855491021440582747590161631436405935654728939576224507928275604358540951472957995173244574044277922399608592486521060031343157447348723955183589972275418491138435480784962223701112034386790927630509142468677941555578748915939640861127700438086817948979388677094515620040347004967179041054075953078631979434667080428437699649417472667071288670189742969237028906582482704000095138367292841489348294592079911075850955065877341958647604159820285149047552715263622801805113181040516179917325190526003196028722594776466798891142220851944403182743823123887842640034703630704923273139871708782370364838167335696363758188453495657282220699636794364761735057765549555617832125836643402808691356105797181295803855132967405023680815789654295022158460258879651223975754697223608226486127470140861642068587571344079915031322211047354137340127832262770264434972095785700780121743141661129025998607681340424900391033992587639130617443098956432988194150465335992947439687496809007049983816413745803721430498353572877974227741151686731161749626659511905590802433626490725779651822168512742118712927499019632550520742486872021908750648539240776899839396936775556991397968603659036235750946263848032384779137071460546088629917461227062080451688556261442592872198071542407430198732706659256268967785351781812650252501739342068015638709364734359558289335770041907311392040752415615755520398262836515332344886099855999712756939709932706376885833879333564419789397209928420920043856869055015298695522518478935531562466577613753532084493516710533715554384586847417510373580028241438758134328038892447811667093780263058350154919189354090335898421669469322354653372780257001455023871149393923272764938530122493418899484348416046166481285152906318337911607292259152601183914692790977163720003742538022327233573960175010455257954828268413679532465981659479639194210554440624550413241688973317692496566198784502929513567249263334991828875106082425754148094540959281698138217262900683663559477691576752242796414031208443790226581422593308831426706379320982929939677534592825941190565277730478610114894838976711799856268004677892452314974218996041690186167315001734531341227973257742869181554878739262140186482866603778743509380171952699431236331207817509991168453449297218244221105853014339723525030375496352631932364776042572423778699103758785134603931648373222000550435768742164439507891324220471191580583546005376996998853512947203267985023900894004102823285317330543373919892550103058193904643977133147351950674901554942700426942838850890755343005968908264797176944917698833846815751121252438751310180572073917944117682565647496659483707587057878709341012205250810680655328010104755191646192689728853054395976494454355358614510499304623858266201999031559692926813499608482837253217736093101811672697427970378811701727866618573264543341874113115341480401385399394550750824725312227685200772036128732176656421025433491029656396822070012152883278062815982653902291234814787849798202052291467040496933252219500123971213920180453223457868101582025247401722002376767044330164416721989356784794211985399146810459078881523211912076602816009564104264075390325468143747353727228294276940774427629112099079463301237034440769540632846851645448472565406142170312442197805701639997190989541970114455545301012529410016926644536014104891288180782935757942731135063639186936505611778314489116528349748031283112412984828763727930846010555283790788195612679541422416943083319833492911673863679399402013796952512299688090779655842026731172952433278694257376190277700431475898182762130889464899975464512298994354013089164708527832808188762328860127723435501320234082544630262803837049545039484904097204776969866122286716143643982735156215027583349774372061342446599630066555975443673403123614242941930194619365491005614309648446211178415311866970780225518616025293850696261945067045465228676953722348166187743740342274564519024183020089842443198344955955305928903674161888307683565562653834259284917245719087454998955375007296216109886141888298579296117785695948272547550340745275165506426957423458941059620678408515643916872052152289893056240433530851916139035264818254837378693487472668605867245113538839642921538577258378592047471572810876163599045633308923815475934608585762225111264146130801820716905302889974399569592530097771359877795687560379151804053865379619279517613032356985912037588965381938292055512397556382059771898397242713283534394691192878702077743457726756185285718038757291116367055069544701005228082527291039866149999035374311004842398898808724135959874106272961190963439048580779721206763529823282605350937375014148271181003956932281628545833917608493494350325682104037646555696574391897980999396998225584385101562676944122995617773964408191424769423933295320594993394860540493807742927600632935242928712238632630268154699592104659319471589028093956649474264072023816776928994923663459082609004770714540239345820946056222749063275053806159756806631729463429893155377181426358100871855155648989227823539887467579706841512601748862041966257372549591582613267036086206856106783083926007789683750559716534709811733639424038200843493986424382603964823550556917116404808740811446378203969800617091694242644831603990978255782433932227596134558658159246423499356060366485653854079366240785194155369159772171770626584905132116281059080727424794593258980561584667003388717567761314491442746766641610468864504722584398442249594568274086842622964154409276083975973630637174788829373706166403034544286370687492947878028588973829020028444011506021217374719116632086217703130806010944219867779083117923127125996899702405418221025699484895584786097403106735947755568996540301957853848897548456079584383990009108290624969193040707764551058832797021407910932115438817788530442949726964769044293660388534795787784909634728065125421064091731597652130480270298371277568385509837601436678442845304681144731375173564004610757687498990681736175894391727333220503648921552774468731611942035890763901807181071562923806738815597819383181024753743933037403686658646628643163378621912303474599971741956890267358612736186700574070804480617310624653824668610688529883357982389842293805310910072626320413681030476385915380988279265517901878767922128478787701285470179043742695743103962136653298451856704767886860114063849321945182518463899211690156687603624080092064173694545516312007684371575633139100466598453051676892629442063289597432860554735221445351549765940139337743061307386831495155945452463751776749404563566988857997883323099591424232269009851269166809008191883832581823669103857411880310631669145328311561599075882232835424890325120061003354793864267295833557587138992520611565658700667148792503173359365954709896773165605786859769834159110226884093657230041167801716934273241170700737683235289941296473912799597727984226248994681991195541386286943572351608738392959476526014856232410711606773524960375405045982909324601838296638556937530715792416782607528863301242828665941395771062803808776632231897542403622232089034240875380994197333916355493797069130821294450168619610091294077451142739345709893529386731970769356524662777945601636818750252821176250872194438712630647439682169788064852968903277311814144466701397875801332279264105187251829059060557825119575998368620948172947022544374024803315723882355290356632875343339210576201066480370985138034458813075821634871858929626998811419742253052061664474651624659239923728581241528296816063542727394930192203709279887135437461404083566837928877315535315499471985209776839196952528611907874795368820230344888448516601834114633252360362532802994660494205015610917893052820365846980018951313993570069145609013415311972792818365716540949094777323487482779802665637883078161036243825950107574581620210360403993100116945402742016492544578701554603352493261866293933288075866765071023483014212325247899579563335535848830197919485868567668911568106291894495592502532837858190094912433597654546220740660766244991578290428219314572240615979875737504279758113716848072729144566454776754765589489714318522382691011216667576422908322099486546802331125048305287597561214936084492001351628098367872988846323070624831861500055651639572699488434173477787708760430975348245133428564414960485734520525215652291506001061230780253171250161765957230628207106568760715505842279514256476690207170020676685904539981157739218958313516220925266479532598081937750102934188778417145265269895659269427786830456574076035051593454076426868446684733573930830113706691279299999105036542416859492978578922407529613860538445570729630402413829764380570353245495004968680843005009364373854459399105896700671485258112849513724952073041679786818303974013095423735595709504888350950815252678828139740867078385112115854676904592441565769307022995220855201247256371780916339038793794306091369955215773245348603350064237911819938420581255922200390856893110588384990873511851962014346831287068826501713472890384209477165704230347487440371220065788380386366268470640474723103989847826792712343032524857148953730686013465543112552909769538198394569794440910897440646365973450212619969940289588832125833585273016201441708509892133280155133101323591024887144424298821379211725069288891036325804409094461747281766876126616607087009817490253554278386952647924574626340433909294141033212493163285957892768241392810795520837433881449362917728118575096537065229879075062196431598987811525797704255080899361830774438382694379744715212116735073336764533499853008525150613174198590886855206899124437070010684135493791824419673335956048557158878845189372335434727291816485254941735429537317515452152888070918207523981699649382255699586056514601783208647782120365705314283807610346232902310365744379059432353963001110666088737836764269954429016069929316263250068886863257070762950678986041764627121238187103287945311718284467155416281169739367016907547575906067578629113816550671222728736895676741363272920105791819389765164860473994924541767116220578621214511927973602821340074080070003153484575734461379110873516084262230513002292623283645336647800901579975285565274204844347046516939904388130250713587436489329566107000353364425991894378325542424525403124280881535797246357853440077043665562510413122061128251848292749873782798676283262515082504889258532913526957694336189280044268353492885431234670220354066345393959467320549048093868116632438095135929038554540658094330182976365861690996916781785285172219182207272421704181181205112930590053643408723469001593523433473368768327831150607938600120585612931956352434033927828170735062692346937460778801194978036388129898494148888852418460497682035307678795506952401242177037240410074686856614142706096271408098040879321829405202939245485475965546846217005410307841541150031533907860433395881864573815935792340022138078196413661147801378460207334737164946664174940333981730952783119975987404489751470685593507557573035977651417907682199358152691961620730755722920099236365296539077066090622819072349423444648758455682878096631758639695785988962926686946793864485080150115024035990829579145374440772513744624485482807895475392227760592722245961499944209650094878317929790188545838466553129073418364502627654908294430215551926233354052011567935467271637532718362337788032599675070618067161490254980352924134630675128030081798504105240038149389108666757903007810010802634000374412541457119678720078497527982038361970469470131606577934683344433863685119220163109348658812731210503950519497891005891695845795367583939665034792491933802840097034421225082672060866186557063953611742171409542796873055020737785290497825110071114733093529613536562930725464422158333620901987548501418103992160938587612206497402652668566349381999234642102338598016438661013350838860651249315435913455647666774308146622045364078216533998123672499332415927666661588451004074271497512459893969213883625502714886387434343693178860021440954273828567863361593293353085525649231081476559229422142919125828506976209508080440442117681216081594344361135798885650837971833175687324999238579505253944179153897055537713200846456691400286124751818163621833819842189483856158827502000492660738376183274925481918710841483246246109040694390034233868348255273498912074733367540693365123792830070726325668000882217641538815373829641048718036015076551462828059692544911074108007825290946633225121901808236542255016522712565425031821106287212263000069343677066634654477522292023751776975864059175479936779270146360370244818932986674618120407097985439396060198074954276129500238629510038664367054418538775638856321167715802758268826305069639835972182965847539096123320459247269963120398339274149365870884472944526842909196388680070284273229013646848340154892423992042797926468371035024839324169630129179166172649231902801182756348626171356352337412820601377278037297567318934056644102402458751503160892151755113124127909815037044886994578542959537321749761191333121005540571292720539766619321225134773271009760145447434266588839848789662522098126154887690220098349198948510493489130707345676260896976701284961566775077317564255084539185867373327840466897792695565749290144378861976685189475767844043260207978602139488019175944735415696867798615573605946708443495928056488717205604410021632713334693650916865685268763629450411708535471396406712570207626555329020783565912791131742317113198457255844442209752876666358563103867538411148264304698661916050900196562134826608860291593228908627826000515352020725208517289008867721630110601464420052109347290325022625131205188925529463482427994285636297626211453270685501830165343181602592806359604406624730106918148979450368628043061636545600392242186276511934426938099345035626541581438234388305028601789709371647938621637609363696390104065229522668823503800519943659432891456028714864419498896376589767314082863924349830703915716326942659275594720098616232250949126764278144574634668844739309891834282935269248014100005679425447431236489711492179428765250824851858958596096540687880305342455392822798227309514251144584657843785220481126359773047875559732865534253314464410257249456023491151541170502715210501337885345074700085933768694675670973217283284013569461889668944842991531508300057003053130625706949367971167266057100264402963057665451760078208480553666475866992321459063340583739839360122583139242451203469049741697436226800674974652316945731361312893876583735371972457820171918137019846049934373724042070125560401689671499120527940297451778767855121839451698891050162621865878960226459146558625420752543167083700833769791156078630680222557768300042604812131415795457663068695651206850463628229866445646435526980515807831799783073312051672661723583754264990560214765415612095310086666886099155801352318787371632122987144496553877384121732408382538433547904339527091210835952011037872798847206330991222238897590315825197898409061124852547118937226962837005914013427956235943188506838353833779571522648157198011560219676828759916724364530037452309794539150407936198993918289981814046705232643628719402957244355468550005120017934251927778308765146358370169821223175892094351238646020149986638616050215584131823199610983382360827179549861669372146538715917280065709034229273551213329237901032927820148563637441548688134855922406064505918872796433650051346306085246745120929125457705719935838371303123915885585465812115210814805614795660609215008016374188004379817323034196322660984102971792528191028267180574306677879893341983646891201161015507121275105628509227236658531859799326497576821592097479682145300923113719121383613372555526767030857915255727210260517002765204333883688336197245996636325571701334624340967896995769494483169591624923226620567382085397681751661521692765684304680496616442951049984732164405744335952197703345405247233265241185035870705828453423796419075627134703437915979566939554580852205608786057333085625155268345325382220411694045908930972085830840010232089099401908130151904012395737164636052466170142457969663633227872352969218491126404914148150672244513577467984815037043709579551148107858628416765405202889137093799385062575168412158844960130621320825893896272489759213257757220907091665869657458953648094278697678588016944668279559548901722042689028657380272486609889962038852862829640769411087646868578441506579391414803435838472510015579744966487877595677079428340238639449104223817371268595562478699116143979916428076957681665995025750126563299500669700540885674982887022640936766668045697480393060065687253938834175371800151597031047885330914258824118813642171188411805446907278538709212604414128718741011383172728853813320635941265444114879200470378751546981154892585349750864590038122587410746131609129605509864237136131342580486974525681518627643514988146972119466514646651024503701112063251911140428480924911659277779266384561024220646147442033020452742364841060125170155295010320955431634254710816372115532064141103809145751194378133805826120945505390684247829358224689839750976822509840600331878108124389928017713022961349231848774321978708262220369497894038714264150329081589713573237441327613953292544750939043293366245319470328290316717985825960578310568646203629229394914153931801021625354365687704418334037906290418621894124243979391321645211599387992087733379999867695322483085224642295526097296514852833633574715065886004302870220135329966968642599603732597442898095652506757726952470267695918102747322208162155632628910792555426387945585119399913525974503056799224626609471290240710379279012242426078541189703052561091792912169551567559315887335919660566381360809890050944844121048929459115787412704132888366300914781905027249129783605066113197041361941399288291993454911078223624444213565466855097676976968807763537674027297022340330565519846403762939616579809811479524163616491292335869851356834976231065912995664379416339285305510815393953512992112361663500050820539772944637114712953386167947639544680842114313346345548664699525749542932734336535305498087555511817934085401071703906395448118907211194699602706284320400512623570111794178881138032259070170625774160261711243426042703322040029424697189025318512051613049029074085926804971704926898992137348792676475689708112339052195403922276450339434988713093377663997957395526045380604706293395204590024431170016524461395879017536792938350474729140391873976521732331899388298064621115766397671440105681441857879663107744604382665134445340979295032338912634599506962374962027229579963880721367371531904948787013037295653771520422230332315865452032839201595326823679211343205369291885107118603718897785432584986794702098552406596330935369094497512240352840123856307425022997361112689390364600961090893582336091203233653274880843939219557119286745069447928730161414652135479802784992632006348586711391470589847456770450564826845636448770333073383858346935863558760686084290505037795088773567632095223675807117047070828028378004490034583352028489098937985923827727433020474894545117596751769436345270286098025056599883036459758633512763519758886682752725472637809350135054518337024389850900278393487226442442949908772189023234606410172346305390089270065474531707511379578922877933264399033614750164430636615198363120020106195422751189567153550675994699201333493577110771718787443789741504258232875989137292528598663450117429142329354543920574346049027447021246930188652728835650661020619490369024311350602413301628690885629832147247151837798575945418418236080595082481291106560049910231862442288277023269475721572424713163221023776030781340716386746667534882274386117043641980064702834459894654939482959487597624659979529590414685060774007972844989960238281451853326281712713832598509892673569567986598316023501852890172092778205332165488264892689330138023492517228390634457873306541151429032324712974941648299528642285273798832933229148615486876153229229852067488218215895589352860093119789825807981636118938302496773106607843456715393776352115219318921816046383425838893935421231732169483046409005359385419542907919113533983689198231381761593674842173005397833156094394287152417851440477273319426299221428990779330912297185715913207028785139467113075448383630973546763682848532910577192498617138226115442116628773547729731918914374610487819334261291473051025895886754098850755788331921133134511667028585069345475002282845820412235630341249401428158661242475196205602766678189152057058043716876716760212292828450495908797658473945356683346496694243547510397952307538166123516886392397471687278036005278441592927251381716421637505285439191049838560591475874764287879257504146806566763110078222191270017910852148666334949415940292015675146406463742222955880030986470561211068662845477844083467919056467262336898641795573710045868978473808460762181349500362458786177487001691813655356462068699694238704538239892488845907550321804075655649849139329396712179206181978188646409116855729850085548146334531141243506385264068433363339599088769505392112354621385316311213272207315373309298591086279900179916596997211246192020690966551912139330535858438646579262016869994723075300169124614920404185411980345836497406002036900519065970249218659634979120677344309288250418783829247959391968054930857904490907940825412394842249764569265934052830369702891795781194138545561088519984533230792793294005844468247075785003121277026572794315437858438516363079176231880543447466125007760156002211048680189170870757988267878690628523264116061145204002199122869897470841144655826741889866421233379295521739913303590476996040449621714952981357512135186429881201198902704843197807759332580226072128253901472023206326115299946409157487164309938894764874128969516713819693518171300957387170539867458072360137264126843853429884518033895192198814938567564167475776273532827175373790729680811344005355321638806607734381461974563522885535214398233486101744533880132500495678375399580401420999228810873942739546566074166880021774072424313319733310358902441578480566594050252275763235651657291213963333490113547224606490222815761180377202190887738990267348893622874419567822005000913674031894001889026669786464360343701186009224337413093741908666175553142826151298457631474587437129382522708289994372540525552254518482400345541743460927747654402771118168643302625416327057403950305560055132781502771838994890435326793800482053161998482520832080405854639403318452018568742353683543834671595970208534207402441259483883927217387897166333933569814255483298723626126193826576349345361078906691825744397253226530653407760613337508419143647079149796853689271856878259113942357319360764489302345214832253390137839549515127546604369264418956778632090696631564025230023967034684822310579255664047965748287131319329924923334821911285608966902894674611973155913289293353570576004537839574601761072934950817715004610649596252813304900235148633892504160876137731844341355311454708398534508224879704777298726900142597623163899058391565564031912473405381689763461152828751862251291780115124741205794660090408023550076436928730620046330605415001845845229509840541687075701113442308267937446021482256586495359846799489944023002342595786925161042648459630954142382099748256227793675398742360509427376124610944614742050256431294825728029526918214725798906857912776216778231094259148783886149994654419064049944568443927212165816407218101846223692077119760951961079937950407606798772733749688267758309928596152138858237257104539681468826775650537448960734938076748698814942415268985723587802557301298542892517847843999441330287859131777750778542286909415646458922049300676529419136911912851529208536243823456934870930014741079547970999947182620474912223299817305936836005941490897632350330495330963513366939460084718955151098310443243342634686930755757615867210245947107283330181803889290810050670744434988131076298684075175890366851508658964998520152210328011725834443417065824108027120971592464897964739618210816581045630943632573018536997952340052256056799817333267590682062688931555152804465972569604449183013463525587509965510518920140672509347718330930549742219145758499053329556177176984125083263696341681135635573144577296035732401436807269631574663202860385983712100136690449466594221076179858610355427844586745894710152912397680070460064644454845721955723549557568155584738605017780798250689273197895897582501827150816259768136262831340531089094531425513368078248902234098986586196421864529644726364338882427155467673211292896693096570965567291092167104251013839434163477360293412010916295346124820068247580130249614850137377864981571558430437574429934658498774028227061054287190581995072805763259842966553919230314763488523163035137443892793286765879719919698269895834954063573697023604124639000789531469850542372304978197325238281041492688558002552779149877989799569300536269541887274364594212220915484136228322788588262031721364742621853796816325579560619424604355892397741785094959989759418466837624708853038945168208042558246345182649954447346356178857777656900145249506108398065574990142320305456235541680165912982449143266109791265912194709879930002759942211207480939222839139309408613212044183244896580852129138516591843954244820625552144717782298633495533945847529953505378924071300459168176997309565115153694203840121819941321194590569614901920931213413668627363739635896117815069315313633527464353028375831810568679460178649172131492855332245575709687785506081366175461768641590865034486104993494280686106882774016190412227266740395892698429084663438837946430915482219341426508901334215902407574556808782577233723731922399775812602182162716089640170551332091753117043206887955456729181284511968525303351008013092302672433987046681505996265840511486261470452702815088295854313342976405301100668726556850076632419069154389201956125761793252108425427131108626578216905633420043247619462505135027240477667306461668419031815779078331363151911562057441636699306350293796971173679725992956588641927451102995517919731575740863943941901398613835633050631056072994211899023223254911096416687920420371658680884496563183971041232616075742355217705281956243541626047429862117314289710458893696094439525465953258229872257760102979672235416195170694211167416013183348064774199240185970297705719753248337481716472415537224810577221292067555772980507296474936258270564660811201236460586706007337423869730141913012147229120524070541304942386674330264171016890620300677929878521735664525863546628692487802995805000149434219131038906844702739531408089049571029352714446862832444806990334241482073081436845675746672466474145705387793281906426237006831285492439559140477450678594681956664806279166166099357517487217570717023666144306415664236683915774629928069824748837221328569980429382092721136643624342287712149504249088752738782577392280450487602207772011337363186722087899210305336311919631454556730444553141112065112775881940827209188692300471578926280264168241247593488613202562708420607792207555495001595818741609116925023088743061850049769299324972954622863756077135328451814906910246191755710177678205394925364443090035204013076547937750556997228013927247378325112953699124097770603644709672827066966585398265978093380408960200059296444655814542802300080980006720142197564702582895857626431598783893300626142005500361623960087356102447596668580224669986969999896926839862892169183178673491862099290688733375671762403008910352244130536332168664984818437382184172630021981483490338612466174759028105783397276488157870594314225955084727413532206620588842998083027038724732180969964503861655790259453060215730231667688476585248251528578123186565457910553717991137431647816966646081265245912128736801302971395617121536912714820127335189205763003698949942895933615408130583406216741155313085257099982328528437076904243175077788965821912303174113456642508667620177573885748231347087345252232927224585105028803509699411835995024532667546942574168604643917290477372259347643785033386965217749129444933718825998378298274207201742545483073761682010450110341871235587249535671496190617581656084046065385737384444883252575373887994405268404822029546806368850509938332127328125866545515128203098860223460793921440448383554780614805551905445945416611701889980615648104957989905308155367680179049757820888001846684811513828649596984861675894512003546070889611002838289522808081854993425115130706392054296748338230416243747072329405298933829725988632628116096527133332772858475861291170434849048599090287644380054059367119476297086408472272622486119905312633029178479963082033814624330332159173715325809194869048655430821680859662028065219636024232939355336193350111422456121287702933310644114546563236936729450360090161992357120955799360458204107730066394268351811784396831639208447280380590189334588391836246962587861399501217366313968807580203160007535022110026530585053985494367257674716093384246846955112196081642550189770796090956145014278417229241227708742768344765702408109001785501262877317252145188732098860116168260211205124853769354551018376663878467355130807231810772953068522399693387665344012109775889271924881803778653519331358806397847928155148569411669133585146532697794572598263541622623024736082281705964352022635835817961110840261904632334003787108487213072393106515920503115617428743101896574424434793262270863449674316684707231831332662490270695435390276861448682368637669534332880523202295958306392235584889335240075474271259115260247480453111737574584561670503104632013374573801655512007321632955173106454212703672019495354314536073824111094410651970859235314676833526443695008538395897470286262146108849116346462423900690735681173965975881642679278359363761265296038482362532860937138207802968525207932111402187149289777090602406093636212445350610815395766693425606635520562104309694494005588542276553744438583803963182978081475004500141652831471305472366822779360432109270469636535182573851033281337779346605137361372257226190350107364505799894541826252995498082533843605674716959595042510950685499358811405550677374630302752224349713473877279499194679067299221010111460298073931674559989562283673185829107090614888635557350953726392680343880578421068608977383556856457209637010218531646250364226827322791623382898757823366362006702007207438168341912949176873904737102179680477881485034737376211840566168777247530825189232777920081293466004977251706966429896789910866690112625636942604963744509813762477426834576535506526120761141172293898799273638864557122913762054788084829597662889355440224359149785135899619246288881360703522348869914589192601515264417354556124934340908882397486198434124853559286989046982150482807551687514880358936928713093222108338725225076798995248923665745607176164474304201345784716815903079620063935262456940313814391097454107650263658921998707577927907355488180326837683331849567237175923626068976873294330020331040453600992157628165040332195155128278148350698693540946729297047017639398492577266046817877884409735891243350132569352028378258003503238029378141719915288046464019031925486321199032287926777369742903021174869060876926762620227575677274208614853650855316989168166861779463948095636656770055334900103191043568301183214720903627109262398851225587171940023725581444321534350521635833733796446102518090141983748311013873612343738485779752921948650969614198188698660394495421502383368139569349503977479246669159644100985651172685655273401044758203670982851880638714447637889486652550987023881261570777110857130739975943728437530248858642384169108100905688637673063797260922602009477796350364916222546625649513825461757128757661400343369123873039289023982746166292503118674499921022667018385378163342980977038809752343152992888708958479941989267953027359447356175482777764939136148562876099277144308932881006063684093212554803022954089238263883304583345404990503557327786719560292099991511269396578278057741407007112155936010026624797253423112179815758787976572587851349733021310525088998323325001454510109741688580611137944751327293473058702207533297870142125236399761215029151067485637109946663017537340298263935966578540477507302686478851795401991193952046584886271055695459571717676803905821004513191817107996960950884662438818283982462076265344288882043710094543667045408299229183493647439294582930879020206328525390422658003350221087857945821199388997154715499735380000163507159926153526790969284456177902690725582985748653092029237047541321420963557443728154979631399252913986068838641810152965163294091509032443630622501065891160449240737244851127351728437132992541459668171476039323210877266799285888317704209553225588401829038494902150351014113254584070968573262481802393606322959309723369745373708601616443800119807184206980132824614999543298339120579508539571510917509149805884490753492856547973744244528294748496443927883986615506190988921752781473512598134572080536475827871201816748216459270869268627150862878550587606667387512446494103270990629293532386772429122258662511302302761115999062467701560784451395765780504167481132952268065049303384935294773925942631775431961666691513866981578984377833902303376820264861889833994336034547512210908644952256965139054328265681362681184151272696776685111024395776029911845985568465336946426580795660878465122040764418771092213188298082618046864876456524057579688662139825833225080489696400422718437863128544426921534535687007946729694023181129946582757315578336621743256302708950566111965468465246256418915673813252781019320608015427953255266350062010738440865700240062801118654510042859825123064689719227290041669512490028160047554737865365817441667320719280745131192435255934386988431403325598626029770072723834478123225589658856889593263854792093885083772037985971457004934311167267253240102157392903354861473844097346199982273807913484602717132597037699996813398459517496358873220128606360063249538353803771781119017074257660865033653663404886581093402360688543465527842569872751346124602065328435772543708879419020684137483299828314849698560032313778799601025659424689504489404567409621370989897896014530974384041607769969072805973593552589912864635627387716227853921635961772273982868401922581762787515731779125197772350209019912608554743952720344558813639132948555208073924039313067281496141199585678817981738733967350998115655280893971801954153668195113911270680216416559806017994890676817623758716850053336819557758004319948588350554553810216095225077226843407877249258503247125234892935940182630860743043296442125145364162537678879735145915706572217728851853710283570931417006006357249322358072538466285862898367692739502331424266351215773533586612559942014889158141138826249137352359943138083183208177391236453067623274533491255722636015736676334081866180391054409441069220827841901446116375700145867060275182378625453518831220377539293012634492953353662490081766544705144320757768375727000940187513130471217715354772743778258241862310096278474864388777956578243127118172577291636979198913670971296259048959805719609608323701752164151024282760552807205666332390782779759898672759121383614625412587668310200504304358769802187734668827612414401306265625010383841239776903591829460148209724790368759716030791829294613854066949276842018150399080052430667163586939801780920532524698933780167228231332760405639432785997499371390811520799210463683996342638127025521188105211939947702348750729726566918338651371955917169886280097802487801948704839672862282350832395244492857006863736821625573620511127519842914293916052183505125078039439422763000501714900897792619189980278423365633568744714229300426368501743218699929173581800443634431146497591853203523886478975367606553237505384362618469067615891682597875645586438032836386813242829371534139922071843963802858025359084190650930525525193210907062578890139533548953626017677885430299607103535739488260108603973193431142847146117390062682973229786903639466433441348113655365828545219664418578960782144625044649763390225437881199972024720071328899478528781078549652296630132383570681284739037203399434010814605030435073713878623717722854295225999545329825196324081115634436424895414898516416599123473181995281531361386881862044874116807336373461700375434514504341071795392208181716966233449593787376706194260662241600406865312909916305917478516515725809888403698993545493052839133815148478340316490646719004432776364875048842885402162875564190066966416885760101577099308353718634192233752962469298884923968017131409723232522767461051013742322364324225542863212105012729754896805119931899812396012252871554486387273528588180204421331281575380883700335976994539623602372421081414430933798010744682858206378324427335209943890623667573918224640136902136935064890986491660484618367159254440031612205069686329114599066852624639060450040133225586297262668508502901699876075410957816608132470255819801159806103847799657630537704155998750793982425605748041384108208727120100847938685975343985157450474005173907503946201364161453423760096349095916318243986490654546957638051119581947989951297785964451664271603745869931183442414778949611641615329432350340101024348394866582895516486439218671130864622060838436813065554697374620406069642289720616377201486795885408290717513615572641492654690989567437310469495334305205810773331457288560435175816073239549304210755782389660948693782260360837198483165534578697219995424100718165777658774650752997956417412663290955624265558215898266181590873027757560587930868952519992675580122056130927151219514311586638677986169630298854380391788104479079173020683761949109407649592092831655589230271379567094856644314233002215296730762972571153979537661196110646932821165585792898449925504621397151230596992135557938013617338676750904216827923881197057841374572659555482320615334566575639745653295743353539880136809701583333751930611401892952762839754754483801952705469883746592050942068736883292927793934202234450472194587081701564949346199592591755889473677023063301075509451480984581388858092644779596922913933993072783933388423206501003929530361913443958819354573919292736826632760294471488529969663102990653899839572075089885285475603232147860007009708149896191799751579862369106612053705418343555927637454009690537679002897368957560188852883449441566622141937345308538396975603486213728823310704837890628020427048921065416705228641880288852857054229133424851929154063924548265443903313261929156292189151881488553522775089315990206850701056206290696298172872463763015904898841030655342218106051611132206952574849113153574858977285643233544332505748505633986270078606640412464351652016965715247694900865944284521691964499194142608360515961268556601395213992060030652107268901018643288925618983427130372496051425751017964952527934714451508504379968779231515567790535413721121181844961268165291829400504595582190422971955750696719705722038007138927543857682078854306259622652748909261578535902016991580064010656903908100131116777916283692168618945900479896475505920886403571932730148183986471510794554542057396689711778627293767677444949494938677052357896321200094441093881595445475105705208491434295778349041137026180159447139152185797066049629284666615444554737663776596608350294543974198731186216012482025686855245375992958262005439782524868128056310188494971673312620991383159682260445267015689915880843286671764379126425534077584234079213693434696475928042100281209616715931690019091992158819063454634929973028014724804527831514689183993373825566953228380587626107553455481153754985088592678543525701787006765451326056156827668627315836577810048598414758021431309015081069513291326882469748610868485059470966368522125169423729926824465988562394311937997510427127101145858362700096258903368221280782295345981890759838025822137755936246504773558995945655386760508114782101183008368026340642435577231392805025961415335339914008445103136920502127173795096547305919367541453082345064258023969195834185056520442697763053554038261345825634419698493963352394400696332279904003508598087801007188105542171369923335936776452268731047409995808646217492246589640953487893529953629338372135717718191443985509495368109277050590211026677900968919215292827484298609491690928950643473255867442709467327154796589646697390893013851192197373310813278336407367912615838852727339316394774926886380586125065346730435131530921735041134859745133821648943299479779422860896267366630092226600990928050030024522183267884354039922539570358805677192509884355740117487025693297531500052975649689211789127112974712183205274698271945548427350648127895861108045494485222780847110931359791530978516954116061645485731730771747581407558164857786128721658201279797766972621634921994685278976496515176468985890127061394752614719806257259425588886849751472339662253260855351949293239670164622428674110490960773426546131374442611393798718877838774087879620029168880340117537167987740135629984242066993382424752479417085662144263204012240588690989305848170456321342167432748577653672928308427714879776832726506401234360855490913509009378429903512414360489089679032108695025442929539183130608623498821081354189595686793264735532434394050824375692543782726263291810767330752570889872198633708093690492571742346463047739771372750406251916354084228787727723519782493857331178811916258207010173261942442467773313307499546724880868345647154246668265891836796771532614776802925692745828612065646512616675862282923683726821817872970191832175357100999882151671291801095898752207156978105481832882319862852913062668777648196558168289227451108722664225560399139209439961050833640612832730709714323772810245086253459496080420977282467150553461300822532520683757924878223049378390038089560827152775794742506315100176584851183110793702041612646734190897374703344660986110300474324697974639102961945656497235774117351523783580530262132942218105302602053482904205169973854500525301384955016683518230448811298880861327101045129526783785422821430053091375331862029993848764596028154952238069415027063325529466789471369965432069879823605335187187558437848503376494133796067397273969567082613959845117009633414483693996663192684740486716583000287093148568462302270661147546673139845397199376790768277277906437788463094083037028659909157832241793567187360102075511862690674150990964665694934280114940789506967073356326848494345784983989600131575027071938837188130470403775513478597591805191633882545183441493222421066962435689270043147821158071974800959831510860192537719046056434600820540144889019393022743101795683851804223904718675090264907723992250598783408425470223504658179324424307214354908774105029181249761793417295215011088211358121196399701680667012495447975617146258049808388013786957298691236771703763664180250380302997514601562359038470867132561706752565126398687837381573518251869480655578243206499731527137470398412794139327211415379911912828070905419527573744573283888410544980556821473322011756569178779538417968067568660129952135185857097715266546906494129030870956133408279323701788585244905830567684088295996466046250268480518335114068572133771037657399981196937739114949185013935505584294867051389945794750228974217931407775754608032643428815033364813164253310711865092164333217236481565201796663444649156202793286673630178087302277337131498870742396492386961159049439709258319576838636464356590195427388379703979475796901945629289576842712182495163560061564240370651620989639639344365967691942421480325745689963050923943324501758721024360016897331026878983879765618726009014465905271432593807812641456598830356676469976687564716655019364470188286238407295696331083005404610247141704413108586377668420529200886047096085601092339538933013217869449926879469654633756174936297208717798946056135049905549760398848490403483893044856890604969624084558075241875518076581850972960401972300206508849150375492296902639085090668750849254026807296771676928996378373691463348773219984572103760784588422372316162566550194467978210728959577145817364931129326390967786132628433092819033284286410848774754612146947062457338572422868085069678292563691413587918831987091163059149353184086694456800711486389095485647016753675392990921525498584307691868220075878239774862255354111664193803436243102585889508633995283056483018345356906966573678573707524422734777001700501158588994076837545948926190138064009378183297715568820301438177775132795330586785706206040850009874785841343444995272800506365530564513314785613853811867049298079011052730653645842006227048263597412048410224686945664784695513211380467301257785643329945340103346832830726696394210686725004165663182081514717655436439176473386907442147570615864544849814799292990127687951230807614629722294456144795112187149593716897350215261210661422229316872031078139478821934837641065089378410859441581962895037426839475819594275170569790327734283498750311742966364363528051849514660784661383321310919735841593846499096273057420273359948393843585947787444424261928754942639333308331412944483995064246521585412827447429296820645426703713782580505135599822049609270198626050789679454828056995441585640721588832727546252023618846519878001188270177127090272282896270541553288412749660887530914577190172642178154575640921520276566365807650765304910296691148022032115907495536517541390977876639791396831255356542018665387041476447180765547197269392491951766139491971715973009561295654095511463206676451100651859557115930750951798545734879111399057679364982658045046265928078491594013498271548552441470232975411113991140320962887750149044870120324275473736207983914164655752847449655760522591802981746944075925488521740015465276322214699677901125011557442375502961057021180353552219685373514021878314915825334900881099623512011585604259710992922328602556708708297636583436789453517612330715861188852005358497421955038488645645913872958008089941414940152405782760075504556012326094608494377202526292559491189923061125163956393713265794520863272956341431597721553749331894808910943527984286461513386903014059884270755094378744948470715935036669956410936582026881668020137292787813487608871948659522527384933282196144655653111760650005074183491566722674095489547439656202937426559581232966661472678971630145674465999406693316245972010000940145304814857419846715275641341141243830410816365915985847884010739563308253427583089507404834830693463431716219696861828448431915307359997910406953685958653700228924913016798877707205318409735555730254705616215264898477427033142822131416220339401926580706206267316650131125342526111772549237204659803430530673807112376489506858188609858686443071497967303228837557039676936027363751207126322307724119343043576025103749985894722407538939674220676206767666121986200084526628704306432708630756398081432103880199816247252499812090037883038809748010143003668635180125120137645667860928708003547404512023316558956711447096954466174380796764882837483829287544643811748804848573032575194311391620906038268624178696636421922515647156752994287770316284463290315345177550273708154315337523494393398221393631022163806051418032287920372797061545381908374324270089792407497360087777927610348006387050579385176317990258216652478717633452751326551615061447936864183482053335639824243719219822418761767670732768800460558041347118060339074958982935549298319589456225277863416846819364790259017500580976046601931246655610808020927407606445301167511566587533120377416557797534051962802960786407612345097384103224918255353246673525441635613999454365302242465510385270566313531184377321426601184397192786987422847140125333803716579303746149090083204928213163253308403828157626292222916245372884314179980629995679856389695304033858516450425362986581836253134461301463706419760182367307423092072605077660990765696030281783827795299055387701304140721299659214408259946809188479184833411486758751383973872008465671114398094805426130763529523934012579821750583166443880594382894341073967434361856241409314872271973854308393894079307616630856583375138717006895798239533718233587334961060819734889340322460876803235210399622789087258857194099826546177586932572025227106987948349380181465155373747678218205424174807572360315683416629832813674906888858675538673607882038316096728162151121880757373078091873417101847587441240257961426546348454344979753008177324398262555745193084159160272893104780022277642422342570614521056531249568472125936418309702728251770383725846803903510210632324174030355810287227271923573755464183897394035921531683213738440284460431766426115969282748486658336656300868487462862095878315893685872389908426078592083510997021365487954707109818347526802754841743373304430295653877709693957463612290120822335047778494319088005596703613720838808199650409348531332628246071153666608053047246873308995477275547988541623793533379618929456998838118521305414193048686315389770407766930185220288219483624600504468868392984398355889983662060446149641746202874868693366593961909396446907255259362412335056253011784894712493320870960241835224483292843657966517370869492751511709499012092465945017787343788015958154281513058270121117674816086488264161203954585629031680129028992201354219523894020946903846116128396158538290697027750871844736416642542631575051781284858943086208151720204011606940201989250408078925083028550650991828309890128350771543117941459818837553247624776111851933385215530888578162990048847495571263488661035535161788779395308532941300268970061498532158050353522780692117747027431744409829359253713170974731794003734923701431756561991964710223471322554070022143406348927384812911659600022994457201395373881397116697301548068582266144119460892809696470588558244348816549058047605959805731425924420663328653374414454269854093440249710094272492391232251374000296493617791238272496428931043727930322104555951710307178099224869452524846363241190148915799470552071191888630185925921547270460386850299216369786830273501196239411924829483128534937141282514924890372541352346830347623866894065808562791932220226707295010059503567224587130609027523598212487923800548549982202909644909431659114130644188872477511678122967790258639459143081756604714614932463109597154170162687871984215867170626004814423419851898117617701234337298003062360370869347560900110334835549726081148745557884026516392071317637140927410774063542631223583337189133214666982529953064588697197772874571333292375646707283162290365134773745660153819719865761730453868622919929860674086873760171908567561255818325017170711646558916310974488221527045522635013272001422415762948482475778157949327741536121656162717170002383507679238757686890166735754329177811887682241133859547193933913171756929140250745941681924029264360373294480835488577172056818822500815670922810116337075424951629007592268714172299750876285392530538663870701973413135993372105936204840691961714297652175918476927454850531960519689296413804940081057620287595365873125427948216254364578143409340199673092416833206635398850793344794820358591142494253053322174154050403139918881523422987276256572996965843139787434758123585523444932274733255595773132107827251532251754591458771514320875318037054180698598638039835173692142740688616656723027566920414641740984633319050925070966452499256101105632220082179765845136607127209340163157793262387525036124260512457550661217830932635194199484936231658054154615394670928187494305434161827227653884642892177484816355472078029884833796666621780967639348935026467324529931694109827293696711380917788797210422421747874300824583890855958882125223266257391747788821687987654829519376078805099886731815315019978149350802436357070677420874409885553886317013408369340699144227507904511522127924552979039815191247136653613009975083767514281413716383691853325127114801933310138874265262964306185223747956519650081682582174217012068156424423211938385264052868069974195614860966112349074612933128852424346718737815766229194138878208341582293106130103914722257145685282441237881902987742327973204945034521043306027380045013997029622095811223628536635118820760654234093793790626402446495083202886486658263726945687260308800526039125728612767628324781214599689383929281946045498860404334949456683137356466824405581561000048378629367587757567497650098526357520007415154241471698604336541908581915727901102144799424728059156452326789560716279465542558170718692751099582617013635244559954273680368523856610415692250255688026060431765002528079445856752394690332539408777551328309305809288969327108883526102216458905558780874236553324261345533755878841756846722570869891341209675316308341948778774982676266675776946978193580454602972575419126463191418542538074178865910991650984041507606954786707968529520219517292031964011345948555331911434591753839741319914938362115754350722095361544045509672122888647053205270720627843281644775141047775343106144781735819487716006095528976413740788546251665436405819272681756040379159734059628873434858260227474066335483372845536449023451310743475504673192189586209329887177656719803551761614487242457981627901932038282003417776329172004057126582666267330872378531887442524500868789903364325562303581433717996606630513774272602792137052270392973133441615888902229957212564751991471248412255186127006312717134005165768664715491238631017688138438493267956928277238079022555676225892188954405815123508249399861483153882613038569757788334963628741533303769963082119076991588653736249990870349730455412061560332920233452328084581933747411744284087383526069962001033826119781751871234756842746949475306040156618506708498027559147943088852002111541463726015925063943151320681643594645270600390834846069561751216881618011616035871622846329861365182616715898958957593153150166355568510935661250961833983329499174064659536803041360757498820197968441951275640379030267824442435268376738788968671917358017944210090687656966530654305711931455629797030252591420656877912825640048205837020640249892130389315741276362777829735514093307898266321451122653692761899584021503181029188271555915023794968747202832800432073654909703070992511550274900732614595998984787325657145379829827604483782798282703804932294111613328358232552522336039225896648689907769647453005532731455454577673134799508947420841851766455747104082805726017180402402184803284680385512010984203031027336670650307744541599126552566647810196195620692674300813709269127346985374333892254326413423045310639731485184864090618408455550912665029752412396315950190718395696651316780790812692940838098019372630967363029231843841799043933929120873940688859092646502278583287657266608545938704657504849782182542633356716419648269825310325496346507746614175770969886011319097128243225578712241541394993845331006622536124817990213047038405218101140867617061166768973171092891711897760334744199861309890274667445906194501606946230571823381510689280481039274790420505072283188519165925646748136783028298646776675398269743574241957229184042496861605177102769508486608250499373278087042401974509139820152555321589507220082012827415575670063473052961441455430188677923892228641993851104085534196122316510380933699769902231987177725929991498611291403118516320838153558612791977698811327221611993246933301696979793251015738012159255941508119350495303132813438070753091327259413972241122574190357245596204414993724349252700082090087459004308423900679946095070507424187877151368480065723033995166881052444635368008943649822429348135364077893306497959837613193521967714996001879302893821141990445537968363054640668662721786404536920213718846471731541957373823834257323795255335879618410478328050480056744239987765376619668659508722778175225159164542505397529501008036921547050889620840906848455256745724697702401813916590699266393136432883228462470251378151337745602997296886208844905820509331827044272858770200269350791636475615268940813011393593677564094128674800834701654613344356023089586049417300389527958174336612833169738117416312902179826281640202485706927128299226538609610505866468534141786362514790205705966070844137605710949065794773701894809945043825909532043223931246649035147085988688622807672607199174538579393718353759240525275794506220589637410206620757275002639207076471802691110253074057968146405784025477954532050485436773236861663920870931206003981868097083088831615410112262317557423179464819556329938701893525071915654388955974824732234401741110888589522518263290404908790069109712330979635335512474052263722188507667140535789394591784978711699726266586548953057300038614340796047764912393015672884901458530581576983779511494726976670514491722986652837423230081911822445111696609286072393682653781243199857678787072767979091265874399693320369852517067782308534116086412920379208116217593772260999232294215501817549238444689802062941158193771786722090775030036593994692380585809625058263216926658122257945797602820702168393900411492772685000412080871371603141123411558079211810867264635279293250107897593206445769046775938012029581200107607756744553037987327934238898094338573732535446720766239349213598099599093612465301313073367182354878454259132545103771005623579152799779916755083303541401820466148221426959821561413787158545410842126249329720470426086555440762769352573007703506743670540570462406381519658482132452374241786463408162034443774776690382190721083678214550418271055132677959138910732138856964011439994809535512273313135693774445871961841407312240850044280167678894787741536247570151152441227571919699544777152983297553192288866642581768502253918737188890590513633512522214072980771929719486008508024081684122241058806645644591126269243175586316546664672136810799860327056796247583752251985244363617395502330988013929388124150466188927269969918030571434752096804650091053738316756647661594171586758517137724024080479751285061753980929728280787031714445712965579542799176480104312807541548764348119406028645522547558122796883506645675118987265557338026120732506798602377702145956223527773581533592349925702862049315293811888621307756328691540619842718258965344459774958872951301021157318300844136346924657970377315689943826813897353188177208368389882167226029896299292414360809759487338379480879741603263160819864777381685889642175645840647957550056311954852435144822759257645828892748584608653847290332262094578492531583394797241630414394776778879581011032394428706341145574783005990262282131840448262624225298160388337845451962683589781850578494892533645647825272432324795274185618778853149003197561281572119514567320667860680576374061519976420732174404652051160670476520883628965067647599566164215523862808182061441830650636866915792358750967846819576165398786916464947546881821261376305646913990707753828402532458328551970499167307051218474436437669286436229248491055758452742518419346394433673609198687301391323371157372263733825369338537912864803118316871717981668497750440855550420421350678699407811916182679503011713968677632230092868460832923790513284155838113870721393229303890602930482878372354485356344872997603087356535030863389473985144182654521231514186268379169645684586638781337713476716963897479223070971993701283525502819181625040029538337137313314674089472758113632943212366831426607998989623681708564359538091857172955149308974364136063934547660974064079835365360642909044810607147406146514011966757494907233720852763485129052022069695708172439228063683202499375612993987152443728264158232657415843445894854963679404834247919665633928361127473386448728612712614367735811956795213397235554958935417441612636608159261948011352687417503406744624719744618346566943182078377979331521574986006582969665666486378166764104406266586558671359344379590255831226370515015231579560208055779183969297422912698026143578456831916491422877097865898496620894955435625113413220641394717647106752795604836643678408134648301370701823386017787806089126024056224778618380545582358286552351450255298391497217816047653381524559572712756202217353597765019047598501343390198295245409224631096708368411766705179505579116853398532162344914679525196969052101542022682279524297085037872443768854952529811491995828200862584547872932610972468016056411083218375146673085636443031132401365655610428184132038359762113881582533122096620507833404524554337283109789555730357437497164056382019176582529506484427570325397358031056581729938744109716511253788723243867456138075778106410617107487609679738707891901357063698738819534952110131017297739195226385832794456264610315229694597427338577749518940253225971935831097448504544311871271363593290680305224319259369748289558673008066778593416892702333589027280904070408353303377051269644556324061029137624689729413250920209177043573460941123336765020797990758099859056608828925506264722214191825334277504099702924767578357615222836113414657796517774239891808403430810977387637310562595895023486705367701659334410455071458026888461094061247640010371074182888093374485285963025995135483635872974977293224579956289499216287600295474774180350983478552340068268107162797541161293087202478237141575730442356916919817363668593801262069767409918240561112107900394745486738041723093616681851257149955141481853774019722716041976052454509509159607653253332199170002929385403875460121756445863662324000132937364636462057199746208594063941607623752244904068253696081114954978804226872638693819536123776864925568266161333277701335952367276868257413859261737536568731995716253237207598223741972779936503737412750581153359807752307338312659870485169343786356231951305819487427847026187361037136016391769068187496689529254301401495154714183431467201573970966775244075547122272679414386700022498754112176398515157110481312118914437213811500648917624690691328680969237853451590303861617528755177050869165853073630271950436062197405302232412459029862390126275604016358750619383793493947943969046892417673539689540882063570549372782057136205490656330092320587972910734704813705745198969614302194795275753703595332883529280541302471667721110714576339890290133624910669234455914990023336302528319892214739363744336624948087843454395616309769957859535366481088099002311397852241304855434562903077704185740561341926615397223041457294506438644106714718602682894301667525914728515232957330060419087035395139086118064404369376964359516374036379408442606589606891438034682843494912512313410752008876034531199347786507630898705891864790945981960995380876097281301727986490486888150482519674795853142875640364768617325378673175764863675466203238205391848768877866806778604232200227311396794162242163618893448278500825967247699963898461866870549241647248913329554791982225314624009600225924977457215032229229926253893421421752148237709902649264051051338536226186610851116191811458422596340912184679803818294831151015085337162557295122866913040154929526681326899022812641323789029382341240916850206503060475576301595998475285623620261789639190864618191507771556831460405787581029862075699062485098732541893487031516049131208067323252822111034550645155088211665594690057108919148880693338477919505994536689197839443614447800071374676669119857439907062029325184975186884677237065559590043957615901530413426556437701192409631034032518449465482241833906394824240296366712918431579116419545030769171940770298276515537749979058476895797131059924955075670776704649848097102648198259694684769875875929814054384131652578146017192893390028601086017943157436008306040989868704222074960867512897192775382026078482224797114745606835615755443875638166567832263047789850726528738189998816121899902650167479057346103660894139032807103050911056417274850921343745093381421515791953947168776903879740920982034696558397829334227849153780634855362562939982689041840179042694716975951116475878574049891285750461343345808584782656990016179922250685477382260947987186085602974330288121015848746612628635221263496431613311090559955719882985563063325978846455084310477426162064491895774286641241646709109349719311918492178392088812988367931675764312212149400215862015096767837702216479755545494729389744283442092252362776512787147748456726809383384501350524698154304813328925703110078837408335396270199525716439430690220799282609387149963027415884916811024943292000620451711525051401775825971604039482102520897629856778547551500381966006241728774385772041839673512937605445365882155586044831236196986960619760109352487442463830484591863270953928083000348751383835266967067217728258515759012855578983482105677408057707272314249256685403824491333985127439615542466336903611750269506309419024011093340509359676841923745816029464547825205955085536970520223640316425132500617599585726968749640755936170162575077245736478634740364747579814488297586211031842997508303388208693835527488021997951702081988848027942108367648843290382265807947719135368614558166590416702220691664133528084323481958970107533444675252741295113963220462141767796211478044918075683697006602134812889885683360663325457614893499696078009630177117792885494905613748433164263851401813375256318536716643848303699532744808874154444168429658622561520160655867243964706785188403284650473778888119012808677974288740400926723561842229846002961769900744136490982318523921571157267729223318138139411695178896282937365575594339668160066999092852604049945991042410346378695622228933389700976840051162154841660306202224118522667555616065250831610059745765503725213419577920837032810107285750673984605185527464896872269679470868998477621413880418695608179965083918476344476022620070874501938475137914785041482798933569493682550442138159390794770631422731597111930354863019591644010614317347839913468995699614693843058340020273692786980371954009040538751342117353636091828636969835114415117792362330376430325727863056512025140221778327567406719722618975125012708343497739545641860075635409467021277352680190283616219235316206481683495998866988840076427488378350972191291469845156967443310170995112092400777341495903568377076325621312710006539510700912568188374959974721364161658635665325094961614161153078876758115499866647050217190325762463297736369962385325789356416996300917465827550036247750395310981858788889935753392123968131842812059676709804483001473602891078865743540509870801030620488070642987632446007237066693313429565985128589306050239952638074740632270515983551574874239479792627282322619873427021521601610539466595606577186492612345115287377872687424819806283754967202772742080831893702296237750329421449484800799637012450868361590670905686429990389530439148903999827203490982584433223484206444164223900947608723639916791835508882097289720831996580919142359487382120066143471459065396578439352764960616746968639768331452853099397730845790152751892949609945312706439548038503472176454315095788302246041599069014451197082456324313435520021831114804619970575742911122462214798719250799382312928563779069317191037392017303869861118718822326083769532737717753844000222764999402594756603915665658819778626306663296114426174510156631035591272542308553279964785378560763492686633820083484674442842132436511995183502044554611625935325835888657916041835489875449560770465201046717299005833842541120161086244800210389690957548210216173857137002110959182821202180867942702138151728923930002050859908732323007193608162109740484554598068145769845683400562870313092613566282256668906765930559937391842550452848766633582777496252316777618889016253691602581445505469607694184432073470104578515744152597152493368461217779819663595209986724583246006660019347436945089058023464029225989461991660633405743664747007866881332712963251170458950820182307928436450652128584927727579037199409553159163243203122566137301307801249371853878731516720624931788100356899419249761541893341943738808187461000816374328340405368574160179860597205779364012164940767389822074342764356792158028877695048042944123027699345243124295936009690047088705605339034573753078702984978759335716750892239364767322420997174249368405814183828548512244631006854304315607586674539272829692604037484695909717367665653985694633807071536142175318279553156191030059410740646162388226628481724384154292442123237078223266642191214819691201156155639468412538853184551774716135541187834872464764847345268018431381937599483151920214270328081263857394259858571099261712397402449470407843861845928040974815681666632248063477654005815280673400543920352867724748404877559027855863715373630908056872533409359561981614438749303565534472775015762469095696188042868288816197789565971527096164122620054113382176460198331413000929614638694195498394324205911711651621281465913735350479154399962959952823062732572571241218750700967524246592252102976400463361635892848322995788343250838758139738564778705468764860313235223590428606903718086090850139050333788342819033133997270899283677468807509621831766647298721371096468026238286650962117224084750341463334338782030553722053577835046914620630587924133626721384976218177362276452849363578439932212706711241866131710988028098198071558930350668755996753979691379522667579605140642223341049474331340112796459494220333802358462776352422369976022017837128197631267617777943992326996662115433789923274759714614507289810178215992113439702949612119533196582875005303480314722993659089090780240305411391585015295201361854101358879037442610751879150812416442431702387805625548427843288552679553858798797146882798767811054709584759926627414871684428161061117061293338650012365185909474452294979099152609282405870616696597135977752999981323635006692528538702906520918236178181079362835901491484440913835527669017576798116950152563997327004310946210969581696248747206490030257079079443905359128896662476650921196829558050058245890692576194791981668604679303132555961572643321399680650872393242083333106271171081074446577190086026276212399791621449855055081203379584372692522588514491205446864589090621475074158927750771788589318811580164591245541826693124654698865439648645391482688702543392528075633062622886566293237455865071588838436464815738018796588216936823385429073795303650071238573655492312650791549387383219293210900165815047459818923704873809231702196810419395296556383501776082471681098834920946033688622937460820545819930659952312579746588023095150989407587144270407582078198371260300135848497624868426706378601638889510417016566001875954938437678959373206165327064662200841713806009163234487652759454895300440073903503961849059603833642111309290292569249286983998155282150768312824019947284759979184527337637316496891175527167066737387623117081738373682560208682848001129536785134826485786443169355548770844557864246409283886802998222962210371241034382918592796791602898818099763150364508914625609484479074412717442244659466901222189576118791444484384796439850981223747050411794824704249273757656789212942326535991625845584394681576829557492253331448333407152637938883838660034251530389143488778085391140144989572725919677752339352991536811098021052188479602240030954668909033645064555871910679390889104235226144259577350267209603825100887848090049045931749604566741112147771475098951704679630005522129602628285610330647537668055883710049121724648662841842241051966836094357446896937819744649471045152662710856130192046896570877745802237018660089549888085840830138483198044345715285991797490142150497482453001184326217236560478087920092528391144744920987103983979268935172320542761170119510329271864867827981519071472007608316229398297703662403883365032140931785187618056780659041410729709780644441816560806861785168876482059558869733574418732219832070543017422604506747522303444614196666221717886060233528816020151694056203060858580477541512011799812818684872235389597304949839425378185701090448054727759191644134687635214630951761130623090078723830355554744801829464329979638939492900870617987183024378547723058352086706204210962213106812141065117898195626020197794513156837581952359812245576370795953222746001037740015019670898167334503297189351869516546335513430583714034356389355622884686352902102100356298342973315340659250644274078691009930099456505201456343097462930748451038572193736304719956827995889900947658601675739902448051672298698447802064141368816773375094358698580683474464067853073869099587196540072102281918807232234029015718504824268579321037768669591505394944870598534567238306473415646719163559685970431598896561873185433514120463262902096028910094836208454390448093824847714071766894829652379701242538063907526776186172309679262452927370929469116769061994303774978755010229506662084256355405677935791392269217767914438416347381429178913523247534761499618806564360580612916792128559317505180589611698736361589199575638095490724701103650809579606823972768571203011113777357437911233439718183124773827115362494116987645526911740010795931376555890868752739325354002794537810073393271446836054381797393677419224359220710851186993981280471658667787803914404012229932194106735247288328999611079144619273240778037499320623851950503475576033364218373042004660421288686786027581838314118583430083203108619399719153141063034089031668102162274915431012968258987280385406612114353504964169857657045125141823243735466386211595793110022917571701665774529958664777525134003511395288853303735138411432111998853870741908971856361690259183879291638979016830092869296946365203125149986515301509187547403376555238755816485788235349883429043065817189362406416907911905292615550306453615395742723285705328299597564308961424635032506117346625303356106361939174448977385558391573143612405257306653258584461966976101141773571034813114691229141327543906112078543347736184027731870530026758703115569927337581358943998914003986459538049299816219697862584062214581959445082722643680776553407240894164316944650402952413181548090335005654929630009107397251345965051180006901853903867960591690805504209363264705106983906546879278668269029307512826043448240113918891336738939602120546191108245092195124553177738993061781397860194961648334231448736582239926287064289925032396394575723574967508505258068054693725736960744630898964415521169714149714348889798780930132598221222744924590020148582217022701934953773131473790079565994530350076856725518054637844825602088487492377645762870003186618136732957052451816987534461443503109686280099738284006488229764144369886587698036800911748205619059630287528120489321136829015234553565050963942344235238610379188760237571841571829703684221295679868644267811906945506146837582461780845014354558314415022506165979794401685609540847877179308266067101720873779677136991014041081194839154575328078501575591597644410578068845055351180869776757036268745811509967677084476219323257764638626329438858922736766793159973687295460983466462743511228183658885282319512157363807655446019686442974759408759103828840141202537681458897582258867409238178785611219854185547225211915906431781654172875898952415147366497145038904065478568212699207104133218673267914166482020382410331530935299879812422421455953058365790473745744648980829766164304062817886449576222348910466912782198427637672378774137691328529878895548750374023195637605200000476980204155450015741953533478784140872772879042826537034282818535371206353007360626239824226971993359315370450816732673640605450137783214154959272542614471200387045024542512175117874134852843067336540903909580806960675924235457873170195162343053239733107315066499915493436265270216234950733571132041786821479297952423854663534705598652037855703559961704181176342955780468697402399121537121862016980739209621866492122499065214749226375877829627454517692979284975915190881613628955417581999527508068249935599978000459983230686978983634650876670013782147526922802367554267181525705063937188967048480824697004506905363808273199161356192394680918121481121808452357879481832756057855230034371086661298820922060116939569288362892599804693603370688852676043659443914591899228612062712738352404357588866222262409866199548876192123167173199865662698187712066869038730182492834055615352023496567814091984131382854460098547787908631865161192623712026985624062050183472576214740536869581534097249086784245374201259314545268224685349429563300988107719873371259739403385078908746057578001222837037723774599284102539055529652333021646186411938516906606523963481219465125317056588060779165489893943503193403385003934382104862799967929431141230121994439817172398623485141640180416360473584450698374614777400889606377729415915783591083820956980402101225655432702036808159264479949090163119184341288483547861244030346312085810305260683060243914690352427752782890354976892132069204667514369396251071545202675850190694921813597590396075820236146127578629649920239640598341629195657443297105467039213002510629618665820118069741191827420059995198997355576416127401423365384693885251393275105447699216885959742539700050730854585068314512397445342603329421191495561353530605744868166667090556929222939257185862230928959165985563183339634408051493131368438797170393419244527879936005714089905728191322726192703336149049887242950775690215957171709924213934138895000082307410403562054420833236362884871007785811495296464055748046041566575008086860720178862000241001273782625953461948235852988377644201051443342470128017526100355232511661017738964743165403114416826424975276917343313089486487140575205507971982525933038214687573147034679365183604089068954502353651017022697749116794470552506177033839845508843650732068929502748034540561745168561685216826084147668821186744017186427451103372529876667569335663967479632019631504979978438468467846049334207994638335172651171373029491810835723887319902657938529703674586327168114598640405566983802904147154135363884528562658713244764492425000138468109967859062073628913098324635208185140425208670210913095439904709785417495650738291067507405324070127232994900028423210951179207776581931629050085219829183837699270530051541833565627210892885125797862623412282991729779787551262416364664848350793776685571504778950280294330280043668113097339756919695209721793770599093954264538100054126142349510181665183534414957276219090060997283792605598145383687751678856420433340433492912129306747268318750449926861076080476672202239694582478170085441098003065067856675602112858404039553215224770428679318033988944093719343369510914820962929796689849193031264252718378368416787475214926542957753062971743714689779237640783671400935551443183603243995480979961794451820350666038667774754535431896011699885273128066675400591821596702655127388052573054323560934711557388684315805996451479958250179240983904581652956829784162772275743537736769790643316799964580004984595316530653045569597048988385131630368136290004697785454748190809020883333435906932890376153408606393537628978685144441018351465699553747494135731361752555851671175031085630002800471166913487830801248808767294371424808189387293182776800032375630050165391529412390191071168804315209295159833028336260461545263212510559694416155188290048019923853321637541564849375149800824798099310275626164232471594986486097801465820442279480481552341919508254141483869995680777879650936465679760658267166468540214222456515322573500821704259598761127924603718854413975454003694007265081916060823716953748978672968918514505440703915971444652875509973404335801609491528002870672178988034626286758715374153719082711397394960510578405200834639801562909764560428111255215366068473493477340453660855884740136098084286114953320674920268566485436367146549692622314255855545245433433894415585585840628558234165161084314348767123611383862253235717468364595868760522572102928666768986267258316447861149757986327045984748580288736936535893908575991703173266061215943508336512229141459864043405788500443265116701480619382661714444778491400578154542549303640836206162519425464328916647879064367674776642435782487544935222438014708219604837557593294769788624149080984637046943749900238694151222646592713382258077972134986366744791245007401778133894271694635943255343204201269009212403309735582415562039815734712391978950027192417558287491888818684382370850854421163542464894102288527538548879198624569413111855238260461867933487875752934018087407239464906190639562712935505099301288217416465125411280003827263797156728450949709812620246912799104332609996429132096604922085567822961847431447865874849084209626661330758780337861864214051119003937860800909000712306095268059257960477228936524861665088568541922004902915371262075088304287573167456650577014778680760648905503477752308465716385034411684380115639648403531433335182910799033051203061425209374793519779675190600274173451677763660869341201100431742715396961884270555366638462324826679508836668428194883077060054256774702667813222020895020957263174980909663847790703020954130404096891992899235056676105041816639478046455909049173356013324255352085912514537308170345234971006452792505693938572501428298978459374619898087334141420167534484546282146843926533456265412061687761481393515035172482332025941685203618544211911002479861550280874749425655805010107333858874707606943885084575048144545288474936936688380698573462560421363736194872105517597734755125745289304911904953997365107541829841855105197396567538412080911466492246032036244465563081789779580228716715660331244853948447061262902881830714029683182333456099157796726159452318696499243640698717006389387938880345312948125859661199957067048886384349137661199834888014143669767778552540119115052419638075080209019674835184155332799753531613986849907864015012682765180227540989010385562857124929429583177859285972767610290668840642707835651904659878427718556473468100325960926999473451914772475585243417052735704941062899990311639683341243653056446701675973008581082476729935949805881010984787977759206544514738351365852957408071344651711348603341800495813368539300079937172615807501349322118438773584132206908982444740463668081394335938426771106604850646419318119080875882469355018306137904784605517012598964248311703291704579770644982815898740595762484003381297088208257978132718189016513283554207681087634561355882526959099304066355405592751125632864943506264758090561540019789921864961803454975204608668453668433509051375512643878006075881230032685125783826151230200354960591340736151623074910834897287505185575206659843259004803207698142924570745933278289046346040384736266213295830903998451961351251361400765310716736880823378954057612342141265050669377925112799134935118071467285669640872553528812459479876232249385181914892509588679056928991747232918489225015635349503288747188044884338259543470188853084996809371691156421664454667835912666614750781381375641575614030482806793340180988950891167710505047083297991789666197243584147674442702487771680163820813193148014792641250480274974051076263148318681514456445845740649061229409056881993972395283291584728375637042452946058108066911029633444071071556669326025316105934046380908404588467887014593848926425600054371112096896929528717030751140307301900886661913073086114567706447691306678285602526097900447971268091220862397973574050602615352435793197226904809396824374604127960119892778223195886381669095725499899702224839407790974721243886458570565686379402922262123997920322067429073409298588520488614027256641003904674701518316999450887940474095388217015036537955060295450660784185000534750568159518130556195673045878611592427946379845350506214922239759275748036650563670529763162878954180078440984216612169547646991503988892822961003330039795560130582823035808783922381029678497184327091524428581573249953599470688606804263351827458292288918275270439142997670584276604552992696350678678240872911737510871102693485068799522851591631676810236927526795483978960366629975928785178437538784560574598571061082114783870432945400676963383158008474323484520933670793195505647619620929744390942095929774582234511142168803156108732993862168543842578766691301616326929484909745456175457212570870692343416418843873808613284332808576737412166757549438308514486499983280253198159006231533926751191937675842559384239605062619797352112780656435710099009229394491616844171623369294909653304004757908573207628871338149387165274311154869232161935830797562824416678527373186957304440091667168851535142225888947086031251274969959989398379111282313161476045939483897825709089114895017530105299377645807907749344859806610820725200010395278356993379561633693176677243245290109411297997510456769581666301402071099229258811068697112665678919700581099949560339936732098205991732990499291666685957405730795981368842608314504373544977645071642976641760671133979504476178205284689894163945503232988616118382518678140418590264103248674959983493501325522974008934360560067027149594067448592133033798278075465889973971666412033948433447145214829073192665513253944210039846835570070853051038851360049761309770961179369065023922129404705882703711681679291656806939696907452071394850359566657985263391290422915067686334141217677000481261037397582072400770879514010921564082278536963491829710616017170537387898902248211033357448866178935926210456676638277602569172912859229245592447684018001131532788552397735384713211111968756753078077528893759163612938877031835084433707778828463442867742439520662248711117725843529917903364282082266122840062500055317814796671032356009061209774536465972475100359844604826208114040077942667889602334828846727501753243192065481622823711071646982363762166969013084417650570222884027915595404727789008290144298218642305868015464991434229184383484517318695575112622497635220341015373476530948328980487532558907693527714988640328207505271405873842197382887050056188249713732162313646101635822877126905955124879602549687943146903606180379740893863056676192106919380698388221191338559983788262720319767915968619429936209368066814254360861675373905454259652472304434362996186436972651852348011366950979918076634359266310238526175438034681875910267641249091108444884011689753253464575705472851719110625509607252682736462939026127459572423211422008718734757819140185014005634225406220259490588580673512028631834024086945507725039215017563476053064785072278478912134611495708185999749736988416437109328536325743658313598193773659495008942102860333179787484191293284913751296512169071490846202087667004378418089866631782296827984828383047881847336048546883233241252928888352695436456140951887831849229874018296439361412371281914465964945706088827799457384093533670149483061633424333936982681835030266386519715476277160525734559101665889870815462168570652650191971590586505148053332031804830706727073860688793775723164172461406232529658497627107412973665502191061657722283419424532821048092293326029628655878236613614620773968972610435181897207880267933786507214390916948230682248132464744993664789208952624279939876736718626213018820302447754781261390667156672724164429344854180691659803014872748133731853782212824047388940958352036359509252703791146763067365560910056588635803811430916612665660097600103145064359604607724800364455859929417505684330839323182886236972313968864227407346147628150959400272293676807443207930095570623923699287903457763097988560503302928282057792405396803044975710486362826321717070636406072919034580025405142413282490113061802381557829033993379708939472948366173805474082006190262195331316939694395760341668814797081367521888648891678273106986687385440550729563107332093506053745839216284938794846271813398931961796275850752086737735567154825924264615858322313600750430318653274458623236305624958428422585783688237418780403969516851266377382866761895929582462710180418921800023086902263765708301310445069611373268311532284091224342245996921469605629423569491802597494921855823273947742430953430387334818588834402177140359051003997358460417527307289788256967414129720268248743290180507146622069594616336190515236003700148701874640956337311004961894148074244358544284276620103272783734836742147200273965713747352843190764429890759564982299304015566417794484096950422977350353224785770202940063927462508871192776654735919129215981888999979977413330237309345284271877225306113191565082468520346710991132537500889354031457153126851070297897530257086605131523547810281409989650929428191082006940378060612317060330848092140070088695484561318029107735339412703381484357523439015199573302256396613628045411881311019830461857167472466968784971051120806751293399171524358691623346269357555129504995927110211995921247989184782061276009919503283091515473915375095156090480184355189242672224001193376109626400903811996785920234656393678141435113614996597870289089778488040654071970931111254268541188079623213052998455439606270097961105667154281810364122386235317772451013772406971468220888898227916400352579290992118688715094490395877723680093692480057375283316311520971118505085798787639029968516355477399682617415177533596874989890123419770483935951266298352214718529709480671637710824539351961299801022755507107251827539795647120128145290119926877552953744870676080371063615597552505063714896047085974044244105318928978323934759580907605493480962685442454763838546210000885442500515901821907933193159119147693878132298683402404206096566442393542253774592614889170015212804508769080366664249770281415145891587800864551353590995268708352762733523912863253023135500598728659977689242534428812079615771256400703074226550125496809064002834980996666868020086613633771248525283623746405032617562400397662477515359493291749154115398111452283048433688278932987451238104913795827018076396729117341682215144813346933586362308349825970122597889810113781997872344907901265162520325479108631748350163486014740034658260466926980842427271207368843979978618421252741831742628394527104043478174041922231104289089042747561661789276728217169638800142552073144499789954190447899820739495130620430015200596159692149618586802250619701795293316903668604036413224900337944472816000269167706972289852459342662789436062400683549095313386248424596633231884549307151988034110826566087380663601942914100022940951354471393117946881522780490855240524629074514038913867748133073920206922820717277474003256205174714483912325856239063994580975527396666341706954767050846841372548167767298737564492497284847487630420410589291909240113505351405379496444853036614830674147473290447132064152897775918211744329258912636161318077356108343014257372849942764936881412846812499578581494826457327143650790947697016702455685060081574916888858508978979177072054033457352620321648779950883795948025698014935246442685251504861303422983901062948436720579906891556130052655666967625177178809728789124714382730408370584620646930625351809334397874466414062237402115139366313246500396832399619838727425806968333652381457274482949242086304709937258551134924949010986935352958419932835502781891714770954699668927183390953754822037683912220627579701400670201016792171466392180484085706834889444320189248607317144354320576744161802427906872135233858917929186417105287730087615727631486303035350586047481221589299145277864242025116312169810759133520459451230667649299091094611019132041205113536554993777683091719984364435482842299438749561741978019466894372929521033185268992871279893898884167179864104457018927785258569364899761359731057661329985227216273979365373758915399370003114042616945539174877297495101734731346501310386192338895910132138398523784455776406479648821268507113010062054319627630043303303342305849038400592290310358234679229270468645036060839735123925215912062830648939931111951215272888079471765745746100426409255762976327432839276039334114032898758463889677026433505492681640961050511063130207585502627367142564226330369202133748242097850310041559965308994863986868028255002911870059714938502461077877291890382738697219784947016955357589192287589754515128330962207610179573080623282613898725662829401012575116183246782412568203990546798301065151361796781706541685713330847163306950885642759664788706071861878304939390646049976658757342879280001482769788833775135822181501574474186058640491774381964791397139456356873052686495343185855694478631423362466218766311134551465991274286960803439656817307312099120727497843635799585938978487924776311069642078231650288592670047125074559261228286131802961818877082208541354688632531985257116227639678169989817045595912920936755687167713013749289425428040387558105807691139655788384873852552844221744744895767627209591125987209009505991906826445838540723490190175384210815642493601454925601616621023358236738903675355702674754890014124290382835215327580242505175406237371011603778762754886674170198670316265684775100125323729686046463847813681808230235377924095419203385043808362709040830194693228142926869516920867180493282244140075738593579211345400265263002150879585890115124663159919769126639457563050863491834265024510539479301007587832036775906442603509303201580696168601729435892475999646257500953890202222022968279185568405444546088943368088912721377281314970324195983923009883358431302321706407625581951384341037654867868401350423015115168801328972238302245096967137884129831808459064867515704355958925670455437072545420703734186277566891432710944738244581974515851796905322300138640865924138178443528652501220662865912098185970353189141508791695281628241837170247211693806016493306024242740681033988533029586644626591161750264586664334389812918225421305793433265674656601834926027151032986940215367494503266524544072219901178735636586690743522936978929552715358125165705698700166552198942591028759173574105485675751998222445855967709030162341000579253080969192144680139777065619555138913764029229963984905343697511358612286166450763337519335000686085390680510561141211806747247107177789648457779364483034867868129651535229440737799680229392356854283358149846101409630662569205143346210128195307442816568762553754651257056950108743429010793565578406390076078477996871050658105096335353593715795373979937573378155823389478660281300262458279238842884320639100348773648537512665845293696884414335098998838771552326569317093278359001769520685842923958150683028493306396360716415369783500324074054014420574358117241554940638502571809993324180135615935988518075573927571178216497474006720922233470008552228151433736665016197851939792364135148652031157125384450872213947275317416756915373604070718031876034075737036216038082492238594621436391337048526575259898006872429085861575573303802700784423431914925367061491726021357631948285095748490581470934414264967525119683599865313842976273069529884627450196226927049327866821069233656436167100695142499790951950129819974537902874570792841352157567430295044234983268130487503585968134238410660933246248668726497441496422080409034608930788402897264824619219357518725683384494047265478276410863912273248274874698877314800457630964531187263322087347165311882144242920789360542175977588092079233462881598817258490408664006560653653748984293282670554399344014199188275849641569233189630032029909590739654969060271674286937602849664963031034846136517183702770404044527917328870992544742889264242375459739554856784286010444241636287853446292519524354127964289782630644573274485122213986090064199499806360122070300332036414359700387941625059532492239152510494849003842441478431332317416085378353495251572250943472114802482407350290252049124513581412974454242092410420441986481795880351941100134404420185155354883188268990951140735633071509445266289720830243993295783214105207736774955790347232464515682914925120465806109618654524560611021427184138207513718368745820158341499647472095290243786396847733382645681628658450364451051571181007016161963066563070437754596031386891458969803291198830666596639196653310658412371912383805952052686953928510116056730216840383175151504539218698174703635961120303505470870934958895498543804724613714361162834373528858221606656557151862545775569352795739514567761072843583484905118729622677232784575770091350253001832546327214997256547258579068644147297637030593239417125638282371754503060000717460140819799961720945457820289264572212103539303012847254978727175685827916666341191526374620974788263888016927998335235654529444771217743817743967594411570678175225378903204022168376266951840701348419082428871766228841991335806540966743991326654166496499599651105674666503102700150832392709764286949864233828360746418262858757462946277164372359238261905783322428399789164271486027940183533100000666958346542864045868744322575936422550160840017785406865710030998991415255776015236491313642257441794607216157830465034931360872752419540671176654898270178928317350966149893779096561399743085317942819603142846667752829469480715596887788884694310359318011432087240789443186831738249436005125353663357691708977387164727694330126903747993989582951713548441787751003034010931149190868949806618629775763759857351686419607819109890038055945060869196047941636241151240628580538317312371163407596953535626008811103070025799877507298873452090910497999058177905065772509024260984251545997373179056817469558961853846465344275309269317246721669132080304139936860487629543554518689023818847257664596473995391389784775264401918174267726194604698798694867734583224743562397912519639847654427408049222524857570560195554958124779035828817107259215997425293511834505203411672962378892693497921964017659129275986362475264400753443735953885625469504624291271397764646343400187201466099318165539265110197501943442766160260240818829322260009696249189180057885825501077900787310511888969283268842982993277632383287697035105248789146822679270649424665572051218023613424595557880415255773020120563640119081098353183475855731554322117757009321285768262969723745443938462273095262313891929708581013756038300274335561000912660783087456326779487242335001519311105474029565692143598700121600972933747864940584747648361130673665912086370809698676232776687576024392842499157478694545091301517259414606386458739248537841883832930327341142356699061876919758430099561878166727994592579583286614965458518493181375415220446243434230876053127236540912985820993865560633191032581797286390203153879956798068010245729804846661472544972960236283228265054260966420045590961968644991524970129599143639848688640874741500076565682614124493911391153003393230228391506979624441158703379954399758664170624344492785231837182056637748085082519318698578802028388193070692007344974104540537892794792197256752644182321792635542991230107667812473547858016957276494171652203294469904966203576823110164429094575584769753550149241513885168747462897794940709830312602227043739235401158760406132080426475290449039968508442997423971060432645275664441972497161897820175793188307431619111958292117796075966253316972002360998694991724873077509486246235788519770949040973230447812305786673678398621823567757754281679097148368066180471124455299899853378198874609351516314274796525002873527913033084543434870978729006905765062926410356784546877920012518687265361822615475860982566407762729205677103850430450478846431450330953040121525858790412906477238879690221018919323688795838305127861351835029538078661266142576774152802690263850272032433111408787731366868044667770161527060296780942494119356000866191937660408421614779184264566860633989768810789498919994352417473256771738874142769024734193861239426732819519126207111443449690487603761444639743230415597762999154894994722144841756768670241405377193662901793237240770225125726377345738954865373246005107088908194223965077043929134799636822882399890027902518426484214316355891818731975598908439997832581207549370823906933434574376681817040769070401125102498596616843912658507492858755803987037603124084965907796483075192846501893258640491520946425712559242207540741916262759116210155123430321581221487384223990182618384948100926576674979092330352941128247913136910906416306872599270629551223440033440132893745147965077668898848895137530176041591108297389909681126677535305627454658730321080258716479368449250198392956093839087257838199778386649683446085074412269803627334141727246698152863258914072992089675840365170236386364667291298998600809610757987783728911360360843548959629246507506485085222260807160069596245984946201299351467041138896570075069464754569564112645446572562604321861164354996023555532598657367518313591731537522850573062709754739635565272941414766581128820633385617196367927484730678645293173012838886019942239126308601169298886937530882947374716556352404734199580618495458037859721921668886146390771785228868877391378158408245995073100280821068133515942391549513950491017669339186070782654304039741161524974519832101128499960710024441819618874490074857862887943193495379697812264024756793905174552766377175022275840933506814005361645560363360968991103388309458531743697401836303922120250118496101210391471255769518440242516309322225014672956994899764461779244771319411560895128660548994660187020073000460699682413343371847454068035039100250877156611589018538506276301998415026997595894635893541756182231143252423129644676096134604337050368301811707555115534946251078680405620718856879880099178990234073510998529884240378945541326780514256916381601311362105899120429501687636150793937972465618750958927739999994089365418209926535301777650092120323843216320665482829032311148934951885487152015406427118814714788359743337660307915169001295782063958081403567972614324838638821140969556107977174382838868939242876020616210768739164995861340387113057635540574046305293501309767429773915940684358279988012528083280634580855281606293238826130348840547558205479733285241365539185918887253254816574660298816501089793167668651053658560013239145911448935940238021811028753918319345375489046999868219718838550807063926952730287180291607097110351824254214289387805465588762096949413999254540999322013051984325377634220691487253487866496588966880856683096213942143762192743146203669930546181764801203698261273345073824292561581559859754207288353659756063294288523662603090569503310651894803158610671256224466412959876477640174964488865973737536981322286465317214155239355564256686220809612806901515765819395725391782775650672250840020115283572260149161267446759867544704975299512127738396273160126319126748244918469499936654703774478606171807420646460284458783086722683219230306490393633318118189830708715126447151759423945173379352316650092166648670914042712700391191327655891390963766270959310426078796086563702224383263910593551698569445949105968718639080197275377356250983078433298296540905817530751992222643033938217549759702542873826921026239879948342421679798970945259150354721857727395916569432471794192752251347357735065741291001009258067830466995256221485320788877348872378953039210040958634189688232092115446917208213510997957719957715977708698235964100268516328589671911303297956980863800628536352550004276710454851971054724968155275519456535571269228389171369817726922632244975035648789343407270112359276050419168520734037031688599779826794005976470082467752116741275915860590420709505067227262777035356638525535593246962682162812218552906493312621379816175790353555579843459388058446045381741038016730154796579583303584829039139068928073015335625079009887584556988825542472092261220966160730850385686296355635243230861101888997029623082864915615628780130068753006856929181324482996902848284268896341970679579534719785988495121202554196000197638183670797446128382036731981054736370504663333620986013353640371423667354275867510176814932888434947232588674372313670083310053016114153742941933894811960818025598823594256542285581452421605205095528729128316358282759867820055695882380740123671485527105681989617962517431117709340429038912896682743319473883023111924358421286756552409042928460683438915667363624924675452520867076506610778086258299539984145097140053241087561927475796595728194724130942559113087416722404556734885462080048660480988222768146003532304626335020558418586372826311787642203962267940449234143459309216182908829180202032368050101809529320887051375512218163499961627770152280706920508729842648851032754304624932572006829740013751612279561964770579500942202857001985843085053284913018186854622223227999821451168800928893394782005986302119927372359293615973062974558044331174759697189064145082231684408626546114631397575019371567227328429043132174775757249230366187593823629388560114862722352048665439013932421662134383011156615469179846569940476224160719130760024424294714041935352193230454210925682254146379994723425187532121547414506875940933686857110982924268354653743502143552997498100200298720883702576790690854957144140386673057280305219510818987350742867737625138804924476068709942100527187553516614204992322930705593087297197804336873554093311271566604163126203940957952830569435057493005434960681751112872428120856575650123916745399753641453606719361706499947065863805874557752289672120050484608413254387281239764607026283293882458604141161641571552986383325872360818684039841221809246021220354575882911412002512710600017502803860707656736584716229327501761507696045513903798609578906284670112522280719388205434364487578326099838693904612123979877979339915286732005100325890143120884490676702633251050740615933560093741516567197957428545550755804661165246267411602520733813106647061621679651713924714250769093819027493556353707593822914556503609446347470357318315976792646534296970015567675650693195871259523493086612382311872439853418150517097643723412121561289574540620682022133234982454277323761054783033792002144009211425336039213067723778071368313243100665620126934909288425453714429568959680350362458167019121657003910248621956168603093576820344917179136356871960333142720269614620181047252764108291958503749521361536449977348229331571478700652802961686414977433980483795862097460488430904836582971203298629313357624095800097401549910011380360996381658460197861630213767864883574199500936598443261941376384795148129579833604212402385094365693332932974359816537333743712951576453074044899908628280545056528503223239327809771171300892047822440783948620633219695207153908189018943134367317495892110762445282077855026447912957901021057862384361583918105674563800161452831519179373971424857699245611790992271849730390533099634049004031556131060356950162978343493003707479561690315253646854047612713082181424371761551329467444407727598593958661144963439711722490794857476974196795354826677889277388671033412388133615046188293269013247231580006831852113488275006288627251046684036561682335294551205221589959986461201751149383184846024628407957086512836480738869717496651992377219754412141755719122168273637363499920895947355704570131018575009279450211972070365940482652772569998050070497156839443881809901148465636914388994114598837758103730733827754733955075849035211429957674453694891371441831693620316356304518149863136169500314938693427435546174498441682358390579229618962525224576710212644202545826032526889369641407948705592555434675264510666290937421630761702861303775563240174976806069931811672940562072953651075582888867787025749605508993477611013992724772773954295004347673821168184622895109685082952025974973474500388218197890530753116734200106907162947297618120281460323658593179153614136952119740950991370150631563877371257861618639267230325776363458046247921653243753082137535938764265599024545921463741615990843949339447317780594738158748753999826317025746302225819497442566940816922184873231335251282434637990729315925071034737509404461597215844209139598193859316336020982165652698313549665817285622996575993863998370581191921624782078989669844908971943481619674055781175544682155579720898000080818645624687126242562400509700281627211461661407424443772979677979108160530902152311397814591928710546908044274017142052773134890176167051609205461973494438881186046900218419782917643925992356864046755821461724093491962782463469673215462822249641218672264566686697171093379474108312843921257919886890875937224103169846702741655557815591050323951233848624489820492061569135137832542018149873959379674575139299979170649285566737844646574408962980162641158252599527838461459541542005826967878448225653552191885459005315646216358274941106002155221170256107111679087091478373308183535599356654454813216671954457452978213708052989788924547353718440687566596038338075679274589565969269082041348232878132556693791309503818073663892775180448089995259554110403381439595584981050272193152992803739257092207032420012997504564896531234965758336890663794070536509708764176731930186560141322165581404288183593385372469219662819351353795940907332907484397190563612184961249531789611606455914670548234768357974648970758899104905901949743697541387538176916368550752799921648573397456098658981299540096846011359448294796647784559270107273650990626335746313258451784817172083375544727633097526710268574879611113836296991645812540823333296526091480114798741474552958772236480755235621995504674944730691257793760332457243692722398291004437988527780125935187255636758850294969663441903430951831948409583985946759144923059836036875604413672812214750594207547632582568595309215584719124521644342149912923536552751542427756559798579014082703745668845859254263342919794961115077343522414686840548407632429667278152740172390126902728129690720512459960789958166462343184615428279769044192225054782317030376584682859357509092302336212050321312267003617591177912973772339141900815473488445478026157064964154178873897512481451462156571374534175068355459977873101240144921812730080814607559186371742681875829691259307981971600218547740174917680494695505801132825285917327507451544694267511401725525778261016040755094906341763319690120937663118149231424233441128681157862346145074427104655925097331866558370790610216976973995648745377931342157647090500672786024791232862370083017183191893087028018714552320205282542286325591870687171136913605834454046786883364969108438742251198960957183466592710218703179897006725331501044054108031178397353479279236635584852602062886790296316560022737267025108238682730670258544391939039369531300718009027435129357798868724573029688627573548601340369086373050673397587186510498455785176963891236943988388408898079991494977210838924800549853048660510485519965963311626564172893871796700041957073209483747642916469655666872620068792492112790540961028782323108790268748404145195706630812002145613351047635414982422241479228138128796196771546885450813168329661629731380885125410937500187026496591462617793810845388780217565569984692816838896648416819203146547930416120197228236501437119128305104540310872255662251807534620414404258273615107922830152531047096668953114555089742394059174650229686284790367667245753189391338994347832946444383988289880902610583076210085923016135734372714677518715137862533163205123877530435587697943908757749180942777771902178526733619507349586378291022645714200199119540068650216705243884480270670923638348583000071852965230518380949824158081277455341985240835847813176968257547494415936615773470945332509100742921688491443937653033936070323595746195314180031890651730200455868022323208604226491557769138777647828569830234660473953040118958677397360473488771432308061254535197934927299095565607086126366226660064779786304699199769112743245063220029474255366122597470598890049400005592188218441017691221423535189814341714100976888836432684316431773176182761834081119060634924231488264703797045935155727614600170479761917521982113769104181778275213468199212984126532249522985931807635358350389737351229546782165078039035739614408743964842973913890354539059298149989435112791263275717230368580625635377818411742355318233403865394700320007413191503920999047723325890385397920249351364026172010828721001420789900863759741021284413389093587014434868653045251086268725567997264314764145002492698605778179266347685909916875678342324470195771348924050874594328575546440420972941674355078140977829824668074289872161214492981505475001378773914566384153102577125854310015570146239101881662814609402043169978245969069842939859977945960956363308794732534206142426001596847476487012173369318809256782297855834144909875999803264899800187958095555027064520169438375574726128531725820875398738012937346394123918495314715787416749252142700289138414576545757047740032908665104657521161805766929208667795386343384301861543076566456293579886054942148297633710141088117304341359444092293364453220168013573972924785888485176722470552278352434041227059559621609054663017011648059972535522968418186341285210796031638402257374854262952059148400312454404594353824545150416622653909503400694834636774364464106290672288282661367385915842994865848046870597061298494857683325290297903216057452655137724369272749052901630927976464406072572042800647268415578652778290334266632755251219759061228741233414073169255983332479366691779951273162649134784069433858251656846953697979985655069845322689818906894306786340598020238250376713672175817020158085038332283945329321534970141610010033403923977467508132016333991089302941616377428253338362542387371367793405879290811073226586201518885029701906229910042578074792331524967058597370813349175323059886970386234805625891346916127637491528808865497829021936575781004129894649224680222649874482553495748340649363470597441718761921273490864043362379003759516622290063905054325329300755721357345992750836820437552987824747412986833533931880143224214686525306063634830656733111196683734493198034037505071552546733984193399629640387076597629342183560808873926799435028794369534793652899276436847819766250467520390280831816782045608966002273951209842898130259252557708755088303804140174471798034263743445895063916317840672191746159818500545140601304891778805249062366590881513581198022064701479060069252079296711858516409055173469630106678983610643152812829328809099526391810891835033581030199495186864294391333625074630642225590352657946936405892665471117477181609048042055958994540013713240019414803932183707703615995504440129316983102602427013951027990066445487164266760408168553129258715945895802435414774482140409571540522308305468223188179132233896719032556147570247692632396087509980506871457799421772421998702989689627207323909656342114606691110481858175834728611428140320956718674967837130803772771475218474556607718355090378532182666582019747049121161711240612330008801474757807913251752255974076024277984052583972568584327681934092401793420337791568262641653587677387622880041609973354692359351782908659581367213420896508170531562062140425615137883400600961772304940835689846995072977270435665291584086733351719776524885610810030538414349556779452434672359878917828145793822253202650888142547905570240255287055164957276470423710588926988946490046274031464487131326160922996482168067477180097306184948479015167132957236782579648043707439649016152615949619831594062973156953091531560195730433875224302408481573730175549026882019575571667543928397745595761981740131016528609030990389323214071346722649678570459082120953250592165670352863119456713576728540237241599652131107007249407303580654494791625362895811992824549552857643822481162204232423554645888160849421921653839618550126667992626903044551262844684835619146746472271785111282840935809359626519218218446315960073647636108717939796280856276113836130865631241526580720257857728934230479546230844305886732680615468360644854622024220751466561435098306968371666840847035433717168663409705764573762011159929146047743235929572665103960439509670508563787501277601712410373328562013115220465326890307803767725801983832506195863086037628942984931975214880314493945529536615290936360400428693224475284210843258580838090622867518135779198395377174419642638855653266723734705058631891368070119751703143885593319761273544590262009190152512111027909295056607688376946833901983187513339620515868662721587091583468935779500611768442587357918603558602273894387741979812801554334454750284812535609860489794584829036638222157003758393045919614813868228794439032265012585513102873952054031020521056103851363364890442608645826716245083625714082202974354850804054379452706095990810317485325611953663648258330947904343067643899514254471520529164958222840438356228036806742951612630132293677622707534605625189039380395837616633601775290610245003854031156866422613000863859338054430089202620652070420791908626685528961279074561222597099232124444313411209336582632596139773012209170775857429485015691275212643116832298660439481790895732036408763535664765835416769543330377537091640294268661591385560008595600760032617858379057589218006440656140901344936054593752508058931658264826949469974519787504883729284845023586702901170757110344675064716303788904496622727091467231840159780925310477667342050986263261815518495906044402887897159582020090911787330369897077955827420417457841499628695862303394738250108081575967492191368774810768797693582810156321540607721914526654480391198219200547615726451518724058566373892165971339795587803247621793315725802907120051742567033119760175238147081196835260670241929039568400782397004546668342220144602731674707185342123763361821143625452243246257734548659620968795573597512244503188446845851647009237797338599616042984020520279984606258734521924959413396629544503047556781511781191130963372852289235017609396963668376830294975369654202414285263728940602430076531458231444451267613992082194566623498053531695232581885554285349084242764818674916878062186632578568077796110559377023953317642991993193635409952110390945207820638810080487365077394026941576235001990103707040196954659297255480740355571124359769434433148982360301682740514415561639797018594948618425609607615455912338999070197749504191624385430953824488859583539602308990616279328159722450753678941712433438754247926498623159149874214547793737220515511318991293771566521342804937019265657616534897213966133852095250789894656577374134047389291082497075561599970835805493572699145970361776619674275291564608170076795476801862244126918891117154263550353954832105452591795674920118345495543925476986485839633486315458586575793907986668422362413837026234861549239178471214283375000449863632964790535970172797497875771249653332005832267506120447212342182368535376418243742058825871880278659729932234088270291879903763836272355683980990844459662253710048842028641492123663338541225099044965344009041869460623358163942332875606438487079062705547461684974523577267093943421927227341389629393944531580431637277252546665584356732725093639015131975548233530175444338854479175406413095461574812010664825397937790149683532353010860412439713085984014346469606199169703895599848827917076744007399279648743850437657236900884769959795994946811928305273311727008611980586480774899764912742940703111652486472843218248844295721122052719185362466843320678554773602640665360204489557279991912314498197442698248462355168221920234572492059934380365173737746631389233266478066192834082589288783190066298794518832818693415916223023156661209877637764828451428182761835371319948422030665606363232139845061914178094274242480414858180896774238277831388710123134623234933465826870950401305266275904255168759762809953831119792569281925686580812876284527002813462917931083508440664862612703524778640406802298966641022543328471257799229216925327902448609864209233547878759436247552422000054686845382235942428374442644163874608892556718989671969526625115725280992281498757203601440515463979809617366967938373965311663314719860410892109939724471817058618450292270632381500106529901420705690894313271403987106667610623562501400300475539080513410779696014349116458540883534636166947801989229879042880631716436666740255166689010739402240691218020321567815502731748362189434010946728686312144967869411588040012931696151953931230540606013711142512168593316246776316539319597768780289773411333962046395171797655341888951617999161167145199426770755790608100748487467478324628980862921138657546135183700085828114129020569314331963730747966705171862167232969417334712713467419125129128715024671620236038997002130971126107284384982065515070188300171546348504961724494347691377372535417955577400752054888252107263746178909617017014929969819248122713503960732647203467452664842584833516594829055705840751368327291899311043538903855362832355514505741160414204404036542511965685348644901322219490851466155795895899834869894779479725434656993620922443433238200348277159977534891279984086237810324841756383029977823138346889082536018135688602177312748207840406635704759942329379239521643552938733485108750372854142595472318868526274023326294652906203664387013560254167547480639966487200903183656852750509794250576534491975651365335348039011896172552622011829763268320664600524975780325898602856394491397281952571611567238786308413021801010551711930343716117682175971060027817535866171192904752580257714936447572980472921211696987530240540399212640991646026856968430420418821243149573123374229890374468054584055105345178151400719158181982565589561646124918175040595770052018956742603464729965257718662946074581564686683775756541366859448893228521344649160500346090345148912993395661193831801656514319885959995102016399534962108664608456997935296256026002649819737914130091907812755063193189683263623376601634663563781940893475509592688705798998482833889302597114376602496838861259240927098090445946534315460709343599575488144059855691925872124915149712891904586376732693921498778661353830515722659854138250049522949493766195023832476575844434592098617246005790196246124120302847341505575169937634848963785330218983559548018979845396677938780961612834198376496125874131643660839133809497224601200334337245941436631509651514706566372084131473196683569791067761900796481861951635346108357198700072567605969925173011724088880352629782217957120303486584727041638032214977394432730231414271019172538941482416230716916644806720424486354401460794899181374824142327084684790819024682002858838011318808142374495843852846514964499961958804838401569040962919952258664084052957177615513956473736882197414659920429334365797441566082482692204008245293800511435365337127975059435300624383027983267150841869068179875010824290323001039934066586339012397684575655860556127888162765092522293846538553420215713317051995521976051845747210575384038371578671210930055514473248020362503029944151892895646709679256646475083647211959268361509643004818391821224166514260902287508957506801923750272104863533019399766925229554293255176992821957409126075952432629489801385697884767136244735712432940244669160682034402757526682721089946524057950930768077412688825794634493335109905397593863605159023123912021831559758960593032187660247875945682858022109312253098525772695228009584157025460747280487679855300150275052547780126504627467040399821841015804626813340240798896322800664391888798652926301379577582595265180417400926218834194148648204123291108070463159907234678857717115786712077957517493750217009822473008024544299046387706197943114257060845340698846691280550799262317631324113356798746768816926776324498484965990882292474950432959831018570533319095069862140926383845756783471390498051474858384344597065682922067286149980170669911524460803447013143016238209693886033054308337725549688250145339494837964872282410516071456717722884538087943124497306630899418462850160459490707343758895284659393981968180738682806244947017122159149984153092239600543100189961073046115604010897649914581456852990320201700914406978362768199195253614251231603181605931841209283573332279281000498189588920702545231881815105265340264572594953340190450981149374616142690151604591218393524360182781757363828243040776699525666257222038679467456183071115352371738910247952060819472794185803205798379933049806205568861893556147615854855763866093208415598529217681404820381600851767373730357267976646183432659020273777406634051594394038960041293799079749446744324851474696059311173765855898499593759264276646935372037579540384846677509302601965873993935350433961920052694478807716483320079473320023783101500970682531332170652264504072540175890647803878956651125378906253784878591077032125947910035059104015977259707198191414941836445505035835976682869940636792541612436382632218490929949019665082921273903080913467487281130599985251880455299212438912178312242838649803919668299137226210194727477297577498476797226528941053743507831831836033130830347492826138583985554222694725781729569706465279889323404530597861481365018860805708736642208173312411199852433423742609478946451935200764296391544475771354568863516269178216457698654576772674651674159657855401891570049132110030333280649565091369673271095080987176218907032585552411125023436555519640332687337015103214557574649672931160843157392680714159054247087952640126086425050878776772586327587996996903617798580416018047637875432269547209861282677495393208913060938751770722762873442826555326417136943118492012356827739066586801166992685194820636671034334022268416142667519150457387926643456942446442005661213721615004923343557990636557556992956332609116788972309787497632586977214201079614648376683760254894226858708898004302846952041642115759076836205119416449690295388156717211943145465374015112013349384047925044536198544725444564859223069786204685205237962223617645075349439109939061202359564800166079802699098974570871270179535867203136115908031428873056326527340132888434217926885730781277266318303329109927543439497888690126505490650698050560357138395883864442361563328062579751147510235171551708575805240151417334694074367425711422227255760054699345996977084196606463463440005621966804650442934390562639589524091917064962940349420044689794802972910830942240245261563373005997455329367100000473755196145108348610239233791982619546474496037843259500127195112282860577830700516136542766177897950209397253536662662401427855354788012541438144214099042191708676738886345768719293360149833363521449434774495668146510990164652122389328195247933270050171134752809547029036870177941438519600824704424410712600086922472091391620593436616086405622160403895386974632391814209112579083918976056158402035443620901185459783561227035901931286590242261090669296263775819253674042042382745910912978412171568010149798264814969573159040940649895362919283492269508116283195786964692628995547533362412881650150901724934720381743761404696628683771551524500568922927036093529242017482870332314067780807106026667962040132548676430268488561520830716268074717180815860684182004726435164973836958628098057060818635496572733709959926384316429692679187539213397387937230147171282040366835756146737937364033001269147340476971215856595184854716249629340999889602658576276794348496166398152235851296156099523586575553922501094842001063716741680096591004710698259277446463957135379816881301451091930931494398925237291224647418416130501244170365035496585326313352992994261236031987397209790868516325375550135955843380104204142950710203538665026338790007025755693779014790129069814700764603628121592257470410623351251867740981957566587132669145757439102755630947102592315267574569128863633691137659715316071364954948110319877012715391090882667240943129380050797409095494767978699072687042861844387136319228922817074385752501300832762384793752006296895956565655594788345813838902242428121005517104913576085593411598020027092733196757846554271431085670665443603521623791296299334219149011853373116647556346128117196280975833587981860627165471816460396355404403033066192934517713875646163928049676371122252617759270473481224344162286044367650201835357386730543969576612226536806413698301923321109907194297328066579220508594054790324753286308100226946068125271466414954049256140767050914127946260491818673944174692329740699958367093894583693434118564705054727344527311135984731748874220582098045835429206043885737595128823683897665261336000885005930793683295439217873072334143367044034445183475561269716598483248872173406228921372959279070736157873501428598350359578483181366795321634027225762742172727717850389164295952987735526305922597811848657858884515485496722728855450031367702883169787814277131145283868759954999860928759131178255967429976042484071674411093650029652150353345337457824329240356455138444703561363953819945992478114684189112343112749755753311058882754695599353227585303209774289886532611210001921577277276501107150849306082063263619936676342562993067418528995519014059317037458020375574864272357752613563980412208714729300573868030608920384197563507743694710865458292822916754509647140204100434855288453715587185597666229914539145292784473776882248149859180291400666665986214057249712877222538383350013669827655687996207532617589849494549169597878315748337147007413615014741541015654877533097541737630869009070338329296911712422964922065259166252901501543055439709127069965713624695474546448557742646372133344827684728628631614711791093888378252838100107320279339500024529180253313272676574033949054134997346301566368635818409097156694954387571344005770659706807187512104657469323920321581080481514878975144757221257841566383301216668916024762421214296881080703627160134569704579770547213911845398683769479182158196894652417903755158797989763649084592445750887603868817717841128826759462544108086555599227126106864827496727938880908157982577252972060139400971857681927146114481388914611019227665672795237957981683216108007713464249135781885386702381481936957768824119018629483609860118658895110422161756186949171008751282231622070975398812078417819980507370989312695160008544549298713431962398107060019459584524962727330037044906450978824581896829215862655303563196405915340701092264671931401291249930448431743608132801354243807002905215896268164935576469989216421472571098834078072978125430372609140217489713972924316816683375687033517639899764220601446938763624899772310092920601328174394266788694690970538548758928725049673112254804049270533272011101753208708524402106951984701020863526067959215722740111785563987647804792297763752015601243137965492314297270699362980707475586959112055507036165096899074300038693558089065327759993009586622904287861183244754172490852840584399085207659262257466733856399652811789358905449000317318511092263745238375956400758509799009466027339822340945878394320024416995773964233385424135121607267089637851081096686482812088756020800720495082867688762560993919801550494934150240951451401007849145517459722426882673733448061614902531388367219806074565066310734497222672592896368443679025318354746465660810721969567760138482418240583106194116091201700610739438067008640561089378855082659625696791706408914731040286577884482031723322038491649080251407498551845809702957303360319784737988475239524924729522814058667771427332446002677468551305987761748554216787839090132509495389601044047429332177934113208655905315141988125112264743112543279867820305233739143411465705488266586188905084819115675811653913701871376842980598192165561513715812303809822140659850052644262079144107366573587921162418193589469605589495954564141197976493576873070159249150561345460748819724666126182876260044803028476829662495476719035608653630573326972967327222246113294063339403099269976315679857173544085458229955296487401612526155075995660284734561505874111995247433570161971151796405056281073367265266181576524234717817203890662935492940312537550576795881886908857862168950906649086217608104834018125873433982782743588627179278689840424222095547393408364296426815142076810333852191288672246340289162465907997532982564862904262600864087639748360273049600914487672556605584862409396883777874192946871432224175924600970505660295239833115801500447033196524597620877035997979491341058637476325892140772491101662538560966939733349532783669717925734572353522680349396635515353727580328924330964519511490742516931715667703311859462429279922024619425140081192075113138300295624266158382610724580145358800383174036251118431614349825533483176877755636806819055068902167638924124111530487339278050026731204386082745787352269432489498742355029003113837630017944464400508129440133081084994504175067607199116154179321002247131226376715820583269277855325200669488171149586145243706000025098273713842929754769266757497631903379955953143221166858551594269311347165526332529625149274967246138950813254888413516114061422372735168612423556632091411604976122336439051862837582313439053721223559709701103481870115663107484689696378406386538719061019092441867259281100540873724228471380677055834267145509931834533960724908286557412645413970573865999853375359051662326231679445516707053204344094960466240726001192962009360975359574110965823460164621636605731652316713872890919435761034521699074270972475760674494327441508827297332454411548528028607250464644765908343530287292695376013304831687719676707084363642208341455777344457143663224783608216930007624758564924994287173475271697987080878247616475501163535976412560210472580610671503827703942821157211295039600058277022559575235023833698233944254659623119295565644618359855975045631199083840569404398109789133603612160851369867491409056249407357454025213332501363827506521589275097315758828528991521697542370926421731814972787250095529411075306107133925782117993728309564042771614735670981352475495083846233767291252080847971149192646361365813083433951700489640354000114078533776400251578548566516682105917694074131180125226878134621761032499255124425104378195890599320321781386524549224088792384311288883991533020887816265077887460412776926213286736583735616759973427708275369269761408779690027477876782994661283441570561196065985993889603530586190575946228085494978909990692160342429359962202209030120536362061851723764904948359390998173249302341070324314065677225016128936030251401386682505707111410080450321397966831212259030264928405859520276168757141303243962748052717013477927164051416738495131303491280333810989375249474774196013582020245206273420736799768126343226341985757124247947859794867843366150989423021932956987574203791017558113712306959208864763274373764102183904741732830264455168708589325398665805518702561943473841122407464866125099384136458216924041640686444967846410997261536722046622439766297402887415342183006320988491269736965305527259086179004702460112878367431819475636489899460425969227992504793369338820813409872893318689967935599471820749450989288192166951343157419258772641295895538952844823104521108999149527172774521549299545873664961590607394384832316605183265254079707464608803679348942800140874273317485581494576485199672574212291229963237581454345244119875717498778420276002476271170110338841454653719915659141035175421704387624088001758236629160064373340413504734964782420046186390983183711901688949041520226473682874101154720351770670463385699547575174154125988486931266069850932039827837969379217783832283624292913536413552221512349620267203104480885801412114326539159586751868076171858530674551249160598514513672632595529961153002562957890864726897647271315871440636744228823281289109876386333995646579145078225580221901607100331468468114352859093534168532863362759321483270687087082441939597538562661897469277996523634241787582763059766687758798173739941796626104313433745105743471134398100831205373551185735294431199690853974914062318951843726201373080542543485817362230988513349863740159572343298243252799641545629347224376619473356942117137775437549576645638873902438066769549827297427657056104720614014658694632973611146870878546304841835563756736245076951469303402439450611620967931485345816517324872755838084636554807413217312789042451109857984945147745580644746930675765162313831619637485795115883959958705352028671038385736089489395590492229058934090556621259387812621095155997086214991442778333486091214501170261277477344993866490084119974455170551768017330116315593907004320556012733976774291686384074602056476452075708187966023628803248990463226708320632603473994459361921914719386780685277044959262819329988258030895555863482840415097067199729171356503021383623505459077775467562423962184889101988389460524754838184336891564484173152427196267852410642788556488876468490998374270868330122594739971141985028509828575344210970752691723665803709838613605800882848981085672221193256853828292854021024311251793053499378251106727899355683314645166562539564222483352239733438449217109952471156587272345423522732680668658097344580319558469277147811735032925112627508831403021444906827399759635499160522187136717094375802425859969054905523426076015903078010369816709100398976295259508101806342959541672730619497300186530213329150548148113437016059661252777240687912528044671367718475377034631301400975719194233364951028187879400492418055790780313769699658768944761635385716916120709462952771674156502937148102624993036996734412744509517775578081715109311988368240246752012404380022488917769846366985245706804897706698983795331308840457986502393995974997239883256014555350641528873377162720343503120585454583155377575240491218770248929844562958339626516841781218857228966691168299280064706572454279429839992801427822227519190305625811493893017755811159882711138522470644839727224181997131038871040562921835537767512226835300963828798799151583421089454395618426891743922620223323627385395445507745885310521822061466790434720883066924038862865489474876184484060857416632702288803927580283314447890591566991332053613364740989266267869669359137985979278758122423279629521105064721854269735413280208509345891384700379587587539101428397635201230484089672326568466562808194192158397386036634391473512516039737007982617733405912033283980710728082051469082753977445854422442673876251277438248899681085129481438359003354104140597355962264640109928871627275565218433146427072278141587826630996542805921409244295967161499893409799272999896404241686974130040107131161597849328979880988188947889144526854421530072014065397245940812336943270352309146650261486065034462315680993959947832962202919431995459994036835070755879197203709859731194467845801185085160475539798174666726218749916732398943563742500250955716908395716915040991530780344617615785405284452071628806040293488991074865016082770773851746664142972834282797158772508631917397937672381496133577754342385600827183906353518489585023292446477796067360594683341293562146724506022696267637058344012249611674204959354719812143862647143717495621585790684030435324408248089567417888355405378982413792901034326475865465496262150289055282804426590568611350085265464285928161534753275303843996627730330706648488922211052966823790837471955610654775134894973692566653213544665301105102949201956707830513663197345821436031970605920811761723646472441381069810625459654951659901785011361848710057255164999652060971451293671002752359117239975836117508382362426859381988171145233167409113293390462530867970716406167029224304872357334295343800897112457735593931543926410946980945873181702837658894212468316558025429515152574254672747860410519619699565546935781373698991548343085105511964506701686354647901005551730620798760028145174957503113348750256503245229992578597945306883084830050240832639070901106479047280456061288883733419231866331258172140409855564933181257970014793498601806650525379915323699135415215396441170401867379934600552581689390882109381126570334610083966345512074184805127563059430303527574766747852842765820495424820298467226212275410250148256271962605121900747780165476293618913109356252720922810139340058683477934304439655134303491124322529003318822105498202646019684276020738186220804208881362040555898123609630430591447691882310840272700153186505225583692548915991180517191560675968136792302737442059651360125803291848629447778779482346553792616152036802568291491296689680171214390962723339869496456648286569711615259503639184525619424547275414474096681923522864329152384027052215991743892136269309623363703166143075302426790717020454260644917349153399566214461938935102074777565867390380526717051249188380400268997977140991047207889742319800080887743614115350339490208168038985809921955779192799266673854661045016882816888173757613368183083722981506889867475139447749534703644785888380066206780606713466493353145679040161651273131746271741330639471833625580585064738539502048512146834106019597978254683216745664272022108276131207571957866340749941357965790078336008047321022222012440052083890318904644484907558485169282029319817836923310357154752555338983860754610747756326047605847948155035090121448755916850901656375251081114971525414829991735455300394951964913044120033127623637447393941366972598521044284482114109861786227398966219091525017149049679971691463413506535219158648191639911882587705375276356763757533717694518843890007884260171777146537247199117827060744629977016935287734564276833896627285676314893726747188629122775252288011227358035919174819386212828748542741518885288483667859372035987526777263769828915506174372503206885598911430625183353081752967728248873847109094639565472534678009562125820283609179045129034487890798294095697050205126967018381116377070220917047584981043168808317401858639130756343636646470456854303580144815527497022530538791482340807858532732675484725960317777245692115410937803023956095450811199073929532448893687293633011676887619363798148246587204572365044810994673903013010302089530287950647690972802540292624709034275873505092116810664301756496252378858403096321047349424149052402519762587645515025936003929365573691765510383865622071450876824302108885560730873619132242935638900262711223785852150643792138079903475439608681373021578871177469748317153808723842472190607079766041949929124794452106224488470933656559261354210105538976956160657739399084920605857020813882254092201684259325555166106328309202453523721256809966953778405803580634147056704919730915346602977845904900853738725673590481868371505447812170142175319938676998087934852985888814315782500460585664944254520928999693659388476442055262104665438563218078504203835074612187797813814314105409628007014246834353101538358828731822537212913623505343234763522880130272417397489786405960292198995770733247393822183181128698117326812135190793736790709542156697385641406494843870743911334308044188860261130520787690366812936461990334718774347056695295953081824571891884268421782824801762067356423996216118519351416240358754175731516029186698616201449129172033375786140999028605555279897651871247782266699529722150813446997826610488046544302751460106073197946487556738455910648685126617004477673047080510285746042586408828140532804562370097025309584358326833732242896687086591282744550595810334920511124173892037063465619335016583134364312887104742021370273292350068217869266697159297194160234123283552195434564535772611460631321128752295188298934979730722732431626603190387172226527665011476708248838253759351635336862741020292656716068538639244355962798406336568524584870542325361534270795814366160201654738631249336481841162674887750870384412131159629936412773755919948207090935593000039234301575071141351500632891942960715854297462500031406038965240928920503243536011415471728727141619201031700888524559626693200970013638267034320056141881820322905170730320746178994553344737634298266651891116458905347559008884769339252999923179105157396331386857591740751764937906291267775647271878955993751195189273937530819386421018648846222517248199250361740463839954977730988556519551306315332209649196291414955146009608956077253492151702880538640557414630684858376138841113117712099664759777927844656501565786468947861980394256667718297948431308766845537971208675723783285524329577320993079220530187899414418001975509619488867543671977850518266063246841080436539387652187899898236454926044444836527614784993431176098573735718479285205521040282963113767437995741555453480772859144608720675308517587316833738085268228155617333523101336121988496464908944878653689246501302550581125620045975431238732884721777702532553101273183682445078613797733257424751720810162267206275638526839829448220262445403326735596992962665981351400897273298559846831031626115478005984516225116894378839177173164109448096849883253656013788537193564460272037694190364865097729591887257898693921653467420627560198694885558319073079422197267518379535773335531776003653883827823435779908951802883840943701969667625162224984250481008266819044845603912859467739781270571098850162844366648241012257815578394850066753821954557414569919231926552708857802369688279748926146726871042187046372047777696388101910593774418290506224104478236187437534860246652951012042839015100663003207396719238690259775112373178140631826677628386801879234273651994419964355450720980162977136551531567114614478014481802050661749332324588205876432476381139679512032363605506491508351962254176324811409218562160004153480769114166248667992459764606358380023112589428139573986130500429227501687212018064291061732555907618492874091757805526615085537123239894272389208583873362336654979957002526803335807091180449883465985764284900709527903777358513383520243719648345257446683646242813211499105643107512240246166029521280588452714487793642228813911940591515571390747908247481652745890243235234950478795525807348662490708692438097638513201382808900297825441018967645973445152934448506195509879893527206274044069761041212097928208247318533685767007937618894147008453509830012071134178409483421303329599211783822777815883839286688029323187680884158695981864926694242595021476133817876053438138875809271084129013024535130011448568734138858804352557733072447549203100188437799579346162294485675160417533547230515770587671529068887096342256267262641513587172450209513073253999707981813527829218192099722308813836783862376842714554579058486550978678623647725730064262443308606740928831071389462126125524237061858696017975788538084590751785529523736337377703908453973056483759423504901103423675521674273986555413632751629802614878910976824823523786505992528392639037715610998355642497648931966040817303948336347390858754331811305317732542725423177942535125129573455202174821548304455961986682630041133755869709967488510707963805637592273351766793567950502130272639206433877656291566239558590069019540682116039634660626352659163508157588853777625813392166666936304737137192084163386339842660579424648919073605875127637608410048357182826514094659531730725075439987710465416981117104241769587454589998883141128395642151585679511527191794579307787593300223252625759369585606671215872144278424688278567803901798531379221787231126581778626437855156662264140073881846665020125999555023122447089094446676100935563619249411015124819747729921242888337144758789901915254007022186918554696794481787456081515452212930734982553290715846955397985629902642606855450204973978283330724666745236289616862365391715668212751603737159951524297981523144077865394891548247021752431128471993275501361477365329071287321140474136024979554750526163505768048629959864101106350667110632971965270712778579878355392004130878750822212743846773339216317165529146361402439973593349086020237193619395317802453324348570118004429790312474218378783647992338253632317103621126759127094398499458760773622625997120802125246784831393816996246787076819921149151835193509981600235891495860248105375879048953661646614285479872057320404661776946409525315986864535376052249061810813817254674143033187116072607008129478573659839010641604620354069811879163012942613208332034696215639276399113372404131113704934555281043190759323725117855937104758109421609782715933662328478868015022915607100823634289443487958704217851526236719442453727752604338141945386654315331054816681620368640528491762109374143193402043423366789326203134987109459222216873687637175742183089451728753541346914596225459278782482364544666976961375344264214391749900010457371727043052879635224714266869952553225232444375020361528339551874283528842412988815480449299984624763985415770612889080656651662576726992332406238116421970630250086935822129531226151714453326347633036646905656527160350112977412903027076703593794098710846419568516094430889825429311172217743647204098405645361969781610849700629179833112867797288029678095303733695186808828538912971114404764184868036327676838455228275770662170504152096254499241257267493944412529634444068195247549827152044830547283529209186932480437467111412571563947657898239399587029879364458910024872821150711831866792115136905012854779797151939775027060297035329737985394331454506094276916289334305873153332734016450757176066292929740536769403721015526178081538651231453500640324543473236147043284217788959035021621234141961219395188545676468668748764927157038824694375325330803750329592314154007779360749547695028805864518400871425500550127564024205647974832573664441249535214016973164274652557047826172802597962619391233113696990706152065857331544364096865899812647188747353809832635246044250893691452041067146227624560852316453348985935646457898164235696280046120492234317168170021577060291883271232086531056135208517220507866810793774013141368484959265750336675360313566375671284463875025312940121134646251291606128204360118239318739707789900140609187865913341474251198409653921368637897720733791219609017566151175810007152419635811356617441049500802473536912725765944811802802990896559389484012130115832454184260677945450118963565976435911861310726347560848419359363063160701391751804823958937471224727488381967519404057866407726154124386284138614633344141769307907557931232103282079502592984581833270295886840752903130925557821601101605955391108148419384391229794144142920786304714942532202279447194421765418159526392180859825767289804004646294245609259211461186744816748222177146915909873792023530901425449159012402475048149425355167092079314031164953213910926672012354426033346290872015435989578933594966285036996885685923662161324320123645336557772060175069210343892324493026818179730357215809642133937332522695324893559723123152895085573133699881325233279897956936579260137060870977995573534020325551415519288417204861380439970592304729174690825646682243048817332175109594860531617084448640037398777953031615712572655072973466457487846061636860608510143230833184679882482698287113412908229389203929053121145377902619177420562516344034124736812163743968366814867737634369745542339320119590455644167172332408402175148999149194324319816386875532869328781202111562601548887821863987745311576782275713702951882615421514062050103624650782401415387198568980125699648890557987444892743364904902549283318130799556488139376252617280288904675883986936999626311056845496852048341553741586435481398661839882528503675247502528632372367566838721477455651562267230003904758797694365867539650132986429696974003748373311690763320217711902964155976783929738441760674220431044945873585129226199267598639330228900570937106460776440184250789655467302348075990616578773346579036495833975917633160343526871455011200105791806141342801258218844030608931965067674604992293675218937553565358500006046607384595369720927209813482677230013676709028260025823791100639020774254414765771334591536610116528591565948203245027645446990321431306913885666540416218827178128252767446140012581427166617107873621587356225689267689784944922778464178489444441746441481498863157678268121381664633347504698715237399284273227045796483656169499775615760139930096101779723333787873609776548868426747944705463105385623131300818652579360238039991031308358860515393649541994179690400696374276512318584892308332947373115165340488306217742293821239096152201834647218564613473931664725982957547462940035150096301718574370165104670906802378969491176754046488681306930625315504591747853499138528494669325069039053028942079326963412017734148357400157150284303303875121265055268253176318647941744142441069543301211614635108956053068968369978528226293488620112381543840190989108806397057914439026450555287677968201308715543418634258597042215865845994017409828881241568000758573793011751694021770412080859004783785544826489518643232839882876965565958613157524956914994690761708336494627313860983031316783389793621030992618468345432082995201707673926448532602767356021036004596537276489884095908046277756257789151021498163883765536177706503650351669660857599894948692926920345263854246502651699386598964677816554613795879164963003571639133384964872333565411023818565157809679038270056732303286590416061768915584771997601352638414592769885538153739420667796209948470485993809991625448201441230106057330814700654028266910076309132739366517719281036330496468564362520460373899566143382696763642678393949944335712712856636535766489193556702710942976281397685963095409227216457843719128490125821718730920275696307797851650018949460408306091205908267280972042837066196130651825277163215495732086825609288512801963348332785095211454712257298916741692352316830751567868045983434655300404444333984314585338947256571921121105789233107835306395051914419770118722511586954806627737961254182410082159762419874422159367123024161585412167038944915349283052273229762583454851913392676630084884968589573665357261943301441647579053393298022259940497149588308115088098495208526568742995508699299934311521113009887503135709595600092580831994794836690092409230848610708154975175306326978740217441010106282211264895755144280189338352423989911010510735666005087253816369611620303467518441180034594280005218439267336811084634168854803107488784948672038988190526449818319839113350462679588908707495722257068681789478210469463418572748530061457604478547138326539408239183247851988755817956939379150289479779167359321160227837279735887340966249389554233705922844956889311401050256692449885678161207919515497761263268873254539437277050853167546850364405452446518405919175723324802676285037908972132699979859432761522412606881858417424060875005047273682604951326719424264806039127526562348948775811091107508671188342622692573618377453144305529573612292805005645772675698155837875249633963465009266632209013255440526088753179819914563396333217224504397129395588689054516604632060113552248242581909231061367454356363151852547434894407065077006092375623221085834554949849792899515506002058083218850287813126273917384674764309851735521897640636032015174423934303243468443298711581743884935084657262525343015892309781086405862197243528770326141784942648825327912568582864036359027561189469620550075741166822922436235790378486372181133354383083038553373201189755331576951186196274107967648111668312684804801675917566729429462370875555641696290579816503366014613589618446130142674986794076107757663724915423192031257244603954587663053604112661139888046269953099092742742173378124230905750311724344106235359958220594399309243967827400224805069442928240154124743724515420948998179270435677102516101155940611893292013373500749354147207465142074254676958120434208155840754998028628607210154191933259579699212054163292951997989156729415201796774518500860194595709375914881964411876113493678016787588454714113973994387240268796094255712548665525832916149864850588092199952037155925310547527949092992925784376979306321024292079568255066640762364853565884000058270618851966340787250769562113002692551508087578438106000907732308753357223520338230827927494616206829079831317102139582855659251936979682606778728344787739730401175512427882654270582949043904797639575482557881001615437909829631075086937549235765986306121305952078252678594553590376054105216140037338861450457592539085992186463199047546566064414927655904487962611172059835901496803849532858400442650840554088110640793213926104622795278488862243739935587095420914372818284230600711331320874280543083340270153638977326346401567163150229124980701850481436114541673347623966842630986862438504457550548568191921287735794614715709591864407732525936780525637037773959812486194366220042437731707715609579842974579735905782454286562646053245283794557831494462453384290880314337044183987679918021011243507662961250552068822380803661860325945371221481671467356084734728207073353695384232775513386377737072746053296279813061486142319295818324624204580877524924696921755217303258262511252273179935188267320502428080987236294497520195146384609573553989665761803170518852055608159164675010796804208069070825530894639510108168218753229654359182815858835811907840391130308941069007766421554645524230349475878273343771098755521921216300140521021610297718516022535115436689319626026871407656695786269130247866873199567171478972859581476301289132262687497630083742715843686016691176234139023433544938721452463762525503266818929892260717448670927572210276656369959133466670176232962503293639040804433213844661579867721249256557762139230700199900822475107484923123235370299693811608961568754357599256045056992528762370836877801025776952186592248770894815747356352981870086111918710104494720710312677494139634892692486770171268301096794512227684588572543089013424169981322193574007753688609683518515263757861768738085012102258469467401333872290360972362348985615601459114047723629079993140036408026449220257126745543660704445674541985606597470819189698639538172433161828337125640183721214364587140410348130176662151357873921682667089522048806845477941309778174264274150220199899105883626843218506411101525574907213343909314031098517725151475501112030996455682839326290216282509557960411320738389426537248014947845713082788180475142966554499992101922099961489670526831403381386807495834506135923510382174749390896668051258629314314596822916403321552773022472822395625783982057771592006526086302803192659136636724732863406133386589064456870497011514381373080549118405250828325246425239409432043476009531016444642191880454794044568967150937790084050001747483464485440294642501410442444369324853962215348919288701515651113995487703465177998876344867944935945268260338205581714747895099518521522011104336853886937288032809846894587542559016364984016758282588570448539386846755185713090761830524445160546883166121914940047874758679306455466184101351427012862286073393934759767006059069886959233018790416927354078115085919727375285830034071506483528173595646581933970381728769754451008524298830376316259538319988386027218286431167845203528445599241815574172032400544926481821043451816406777710459126377760670781883184553756605733844464232033944769306173711665030098995869029576310889016654320690907908851460122115396667507992846527432762697332717281115512655399359413097899104793824072315459889501995299779701403233132574738410505651044519285920136999474675730236154229623476089806457295906930256899028071965505537963849767037118267275725321221495318558295153779747569462506740647912117043354412769462284076947676476803350606298358963760647541994324817174449944111404165333664983505587405259850355808328899540947507893016587687661897477707052117743590678065201120173720534823599962147921623847669867865403365864359148081084634001089238970941770296332161732089641027047127666232098694185569669603125264659819114666039959971098642005714481783224209869614620442988994411984368781592161126964642714414619359982903743901623197698216382046906588620779414455708733553366749850453162911976033766224873217705870289699823502176961288843453106541310617751227957483398090256943698562356395135816920706124222667802929177901911448012543798185027441178816270081594826517163167435077786547513232925299912143296245289725376497634459810807341178076876642674150770888539787335451708017649899232296859848679301520079411243587526765854622678781529825426351934466221301817424586679986270076415937929276902940856783527243816479773170902162191248615677274239943146178628430599622645308871164574002470071518375407070564798904940104822178238399345568628355858653834302290962330248232553330552667124784865323945333831088254809322988258921332955400022667019146439494055871163590320784139766648062496880589500369843697248700388538709402044570036845098066204647223370843963398251019967299703282065849500028612332126067205395878481020475430878685328553132920917755680337489690035464515140104103031089161135558398352706696918588778498463815360203984247214358348201810346466279478400269818761393653670995834638992294801179854686206630161245297325372471426350819553779181585658559518194582329480756918980550705416837330804826242899927200216009175145175833339379449463871775956634419134359578779174405265251748199209540363563162545286019654535681562184426668328338440704679913563512437364732618330770948751363398962203587038538961991820944094739435046903074932791941901674233078224394036627143839938407656068475174123756303299999545346444335866392402953703569050521757208916115848742854253069216444964172448580730347337338064109045971702059945687670231999709499690624445307058204920760915304795580861355794524232125748808636422749662965183560599935461787376398183166684601529394372984436651339481125978490282105821821264135573296049523778147472702131868935892410708906566945840743192674354221401050029497822878457653992076501711324390503216808390997072518849033915025544153604207894676957124959649748074663966164809353794774337843617760393234861166102605229603292335947640214510734586689273397714003749956910129336072194347035278747053812876784394713371074496219905392514948605839880691709269895021272546588944548267909744604614836074788598580010200482624717938847997298041138849517319478210820592657977361015591785126778708149328595348011057877894830674794845212459260788696973283786866178575003154274361375368286862588790502649683878006915365139775204615298232566232045330396213337103100540434034175066191319296079372461155535680179145257182350827791822949827341222742332141709223803232047103473044310768768375074677188778595287621331429229021622383942979216336030395941665089519945464370227934621837758834685956020634375955586502818445993930570559388838220415851911438583526452029388003455738770173209518473681799817812808259480829576250859940554177837905593288386870450115840026831609463640559541407673490687552194127905527512236657788451027429614528948902201070402837626012115111753027723207328080618131657394928611739287532656859081801372359577840185399900902317659049576885963514706558810713228593343140990915477707397927041740180178552227456050482862128279766642484182424757254970040306466815597089740346850962760829743591909656394334914604649914117009941509075851739681454503923520885435162260577522839570307074464129677596360288424398246036894260418667026632234302532355160618270586946280160114793582850979067335442996936992909968388793308497605697574753129740974629797867804873501547696543904824637347147998474069255212028288517791701976436674342258188178930322963127747170370287681581625341967564930688387954388304857212562626275344593739841978076125277826426178501112076844234099484753886520600001126085499685490813317514210649001040401120661084388871362247807131806011249650959072711256929157091652653417528406611176766223795790951035576928518907454257193242480710613615672924422450024903015484725300638053353007572526850368935024704015387263981096112474405496781734632944478754677976747354059109158922394465140939708172536224279908782865675306036453546735751293493925290402369814413560972277766807763690583815235033674880168513891032078730306412957858656665277673919563053048977425011797246226234328783082665432705473081573904679565220997250227828663797713127583811673235145668075311374739234841968381942825808914994581236363240398109276228216027415736876210496531655101091070431408548112696941673890507593167301958712869081841012077650452372705524425537129022171805639338232457958513246819530385173718218679897344943520699400021128018045193894344605736577245775796362827984353244828396399143073346254905794771335612796868637622208820079027972180091928246386993673429811955613982849806438282526298152458020161680439690138717977307548997508117886847566145172138827793953646825349399439405283071451940067522639636555297264539056252597290979830510058992323423252273776586781793239018392083110677925174625497830899377003447958711918589300887710647256089877793554407124237595103321388157366314043217253992433638090657461659769937466697562276717322338843585748686587811046816362675957469633332733487773068337024221936573324577008363118553700864157226985151980025497617049426748241693415817403920116108853795492400699124728270730641043381899735395465832715716844164989570441634995599481179704774579052655799745196068114740246884845768241372549386682878015135295778619861723324238107783981972732243340622986239094228334030172477878507661503352607904541304603040838203925000358036105595924611128226692186791762987180572038988171738615467470252030935340532375452714258869307070048530678045759931683206560871960527121571332520250294441922849514949226938180396165684319666012595734048789382773456818229086069842602522072001654432006085636657749897725337390867048358460664306285340152110759941965369712421744246220530573514247031684119253471543144248534526175759492395103343077652937829802704208815965054479874131671842595653897207628697104305953130869862693935645437709794134931729777596225417031490238154612147947214541498233447715216330925196020000530635026083416114905487618439201755410356645212554651486874014920793899377784563080324568730836864081550259341252475036376938921256620398989802094107155244915708691286337110919482945970177480832594806245561747754380375393000306116823947379553209432019051633782488309864461017617217324552165859443364652423954025155431997093593849287240601463705576830413751321071240925368123812534699180204445291675231559389078050709158503612083725221891814266554029457952738435437578464383206337334044036129032455301300565316252279704027034245251669542372436690172127416752055427228063803830093294725380520215705995095041315484741608504537632784016732694368484177275603460947098620043013745452953178705202828425866425673403769597811936121291949540007012434056654293137116665447220137984421856492258895086293096978445946433592021688032081169100508179677718843007534491442065205590785717338986603380965670197452777424423965076598746226764820438076358186382436198831720896265304078159032312934205973908484872690700632532695405195466011973567013217131183769734606309875944718988009952364359058396103204630710525339770865373363568796678574924274032188618052287851134085279236251066197113106367573687251381081245438454894285529529367278828770573819616958425258182092976293352300465656612230085634292313127518287551714491677573495893755092567133346898641163430394020674664743414677378671781655563937895392988976263094083776692573630986604060110187267819177528758330459046964666251298108038774611650176975096853505749026939809849280420017211885153648984879036616135892386451609943598093803108096067712724772010833359541933719791816500680134364365038189781930339540857061723446299386843668950350136299123202025197085665195706063904567736507279573807828762675331464302311583810842542728572890139604206042818239656859362825481135105493104093850102816845227700326519393027617094028429817909444095450403605222425674626555631615585392740141797190989465309584528633043147612153370122162381404305734563773605637728701844492941093052367245164118918285251196864981167655976247164981998031750314495938351955558151454216254808855485233137801451337420902079753846145924163467989591799519332487135545123868683750710819007361259923631213130695676799618736256897087289355034348357545917447916408546245400452663506998432635331014723203523349561452686562594675303203000020820736402804655017879491203520774009195941032108690687456723041777443684383021256608669317145745394508030263383128255797992129467771870952928593872910893608154302856093649008320841294173171941158370659466520649286131618316574737845504228339736403569503946657572202302044391071246528652330399942729149639556086319577279759332287098689448622668168761954423950911869313714227588025664646790229877008757644534665750698175160183204560672350716722691067986703701064292559782397265711485968473961788460282953586461612393095524171853585015782242386206482562842877904977865839757836329664239474734897157947593337657509935189068171887821521761642690568567035405509117264511772268923811151523149593465292484349306951307236873094327358797935470760097328213008266902099191311289706453292649581921798407880158392375538088691221769191254814626048189337190617665262166991255803674654835829234056798643626732155730870969389591341749087765903679160423833248953657006116727693016175279527379793219683620733967803197826969623550920734202811237214365723268188486107665441760533223649524498428552798348475373729055740655257840014637081766916744421758743094256033604244700453437040891672484425389926082188761116970240541759989731284889370312919361201532252822373791318420843321923107442596915481663507026167612883196725397991571341818200213912899050161554355241772655593262043878134121837573163861396385995331146564051639016232552255876989199619307092649056830984939067879506920255936520915494704677478716726872253069560290552730131664662850169531790181211148755929122165450328101367630824691884206907753855322296396658698131591351020867532866553696731728621421736895942643637120757592663513881868518644164960227155624566812600859021649162222001713144822008230847201529181923637357484176607153162868492582662469418362660527009528715731531493484064322615302463912962793802697343515506153714363920631578219560220004381144733377260877655467876251746839699236666090229581009705023809138904865140657305138442587903458833845794416690775886206129784617484373382616994366347736041584370091780585965632772787513139773066148423382904705462767766818568851391228892071483922662922262831136088749240884902181444843167010573654469980831040093712667709820571965078596800489832523902397011179210949477608697461423828721838414064441185741384129631443768128052893669493702587601400864957331044371850233450092581491647055964144825998852983029332214729020587996312338200451230725913279168626503824260492998622121446999155898414664127036952524933637422199533733054414959053407943881910555155186951570705876700127890153019458343623126209806928811064576781964850932291039844395436000903005484440069249106092365457923322116938240583732712044376958546784576473794731322020802766085908403867784385949945399606564341626876850168616700055042264155286242847593048034771329629868494385003885084084165777105195352285189076059906330505642027186418345914182581251801372465797791185474465716260339970834148181343740299770528236258218836103300403582565717192751131103524308172129689046914482815660532583567470111728811001836812081058712360118169873749025115811896499009675606835863597466262178925415509061687811971966307659504282067876563325679336335074144373869101845477090098924156630411308793888276178521134758262191988658754921226989167261228780311775028258043453314852274034178671864458669745409288939482684190319304716387881263695614258439179374537571423263203784744283796421301873025876109950664091729601217815833609738201053505369363300525152903401683143959674527377893685847289031878833145362640173163402113672254282232109254789802658062777989508465794075400702872805991309377960272765663765060169334228105387673469137946676179075261210276215463707241286824914797873617114607480794084239836090842094931795003351742701296268432751047439116434198688942457204034328860563474694643314631014118010223661027024826908955624262460643532554348833804794333999902508238120069456020495364979057409685167563447843688484455491435255747759513354778506145790147683311570814517250177736963821846151597051511132198133109579879921661049331863833021118876546615370103728159888836077103446382458240415909131928100562509272585920855441599108386479125024768025827781446498094747395711668456527121175557577612623541391980964905716830120246514060168771011203771153179441712784314261134153063052969910368799681437624751625283558963932778169797540257754458298224498188516984472484859200616380588580348037612826313657607698453035785797357440428628237480812639093290191347260198620731251881370416225129273580023778029307359997164084108365634320873213026263018765652700359929537899496174488108798676865419543211780746528561595236257166105568900472139356559453360775739087052005471117088210317213257957693269662697815595064525593394396001375283837923635346051910155855175211072333618713626898156583314810738448736289676963821500426756904646403253947055942728970391333093091568062205547381279007207349694797443005822774401249228560850010073220754387791974273302182650082048313884587364448314705101387703491243565511572798530387302107653608482317592216993726916348565423736722111408481232912701023326886929093099490142351654708532733880163427118215751511503516525978249038806870154133236123940264222493988370173343304583207319298186254630234213613146306186305361435682859543240388648412584658870794965579873729158527815276122225645618769209277607186205488563049831798180039449957928590262951139605721912483218790923247439394811287308771106178134490125647844057996184257065894368571708610646465529705608322034326369198234920608263303981069216788888530469876269490932370803479208618493789382691370176628611835794966626002485978482509961283322912844861219431215513263662256384026366223357832428310086770913601593256950686254074513810088155531081670179143942553161088069865739214718977530239873807032752002533537756993869414877448209570240949114434569227826139116506337992601083263224262443798402902021755134152034736558706065194012723676768415724874473968449980368823441868616166965131829550170216246052237229262077510353437982494521591536073166507532821596940645470241329860612005528176959929789135480929783685004782065057100306362698356849473191854717977258717564759462026639056548140395365065021420517827976675073875154940272857549423318133022377315110726251308046928504412327014651381220041131544816380818264684192052174774560987736906324204744684555743862971577954174729128799142080304472674166579096289750266574372358734785972342521283996914764694284739720993164641903270426982384107170703019020661359986451304037356730752357403127232720242567959934333740642306569830506591728959885663219878848287343215843703168777515349053350151072900707541602313853827946191700524958975082893861606833952796717045624284442485222803396122369665280400939286674575510197090813966931626850613188875787704444779105082662899444003354411442363013600102455205081942766443489472632240664194270789185032448817738968701876333555269220335001759890157189513526770789011890934892099961207277769715713076119392676806780554545960681945741593647846588453874784853093527992697273988011313794305726803829359153235385028004172506198790197527834918055996443950004184194129361319704830352503642817094761719271723237182472576468403807602310651392849315640975161700899828348826368807665477980178573080013432523891096981923316671736061071237160770766063027243255623908508920417291558369358184849120601853766451989676805862901201095077914290661189187340600917149896847861555983029096147920047350721844501881292066600372025996744976090269909798803843578622585483715379231149740397541450180394824157713263608041007969092088079055034819700344041213257179819431806467279466280375366308393564699370755643719600547446429052418173574562110343256399523675407564062774589661065543179126820191282541833449166297186739954249289755320023993190895361732658677074656029292178827349410835223716229542233365978022138720316458740741649518043214365968093801087144518519672002694241393927216062705400136139193314792828953006616419389445313297378318122803606096540504092538980230022741996543898094425671657253082637406504722208171017836474626617289986210497064018859460397705841884448458679846333642888427466446960402251365504328248361474109990255793013147304107526841795050767580395748884165339005753166218867754966257194091784595043528028532962617655866324065278619129347444987923310601356973021704684509894308231704162455399947514370272403754229046902077423428710184206025543532221718674066968385609538965633721569382427350608830714825271311418320658079712084480068584233971603630996220600506710730636073747112352819810838355535067224606862043970406124110044403850812908454538144355720816524394804177208363294629225314301047746729493629981280883898162593640012560731384746808042747468740693961898808570202443114689902949758636466184190325278932912225393515707857545917640030692304227437110286846417901277136866134452766086972863641438448771403296644286177781112165777945617293218242112319150174333049967639870815675832515443810055616754645622521749911253026663405026778314587314745487247975071501691067507153455280315579140911145034986012460511713489934553780869992512591793931228105108832248949529741221072392682177180503316983704758400883707246119010424471752521341035376376249221522686286230464405893348904127372576605443632549514930353008418438470915123612266470956471147354676932598412281099838981859406123668412463093480381597091777755715141188422203003595524960189821361014228476722771905030549092534199110097854539270884082390618221895752503618549739329197757996012901524164391696602133458217949679363350979324590102014860651676280785889147790859173345593185521080380152134980786411387276087256554309248920047038121736355426047167354562067225688089439498350143247680936035655204218843741600061834435276731572277086123763782744516633826531584531774536151040003319746068497486987835011548571865781730616913042717058656183327989127939409123428431250962352690159534875357247776067909808771910216616780606611167670513431466447106686597504702269768247284721983017853458903862896094774530150549342081840238249319500388998725384226510094347392050118672286000533412718848501133769420153544997588334495150442303114062769227641733601265068618163568340662874961718178076757682479176157969049510184353316128259157691472583821219973177220133731516056881181325592687130989244680543200185871125898983674728813712423107367628565921000100039004715019956246545199998258939140198695803289187308065783147604825709284439289920514016793489477616047056240474190977802358022293906709916717564311303156764681106370601647175795070403653998917956068959047598960568119856958318286649019382846420450716232781791414087636793068955564366813528997924427297121146853739967044167780735967607198344073440299743624944712185468172435309214334640722487345806208193556269113346048211327923256951840108618096899146646017778360084380584722296011535834886547620389962410277827321099510332745646648955094796811108981867383757374078386727020135651266503735234362827261123751817433637430746747592105644707559444425068160041475964160072200175693403705241419850113803138564124923860968691231029116457802546127933295928866697503827886328910686249913032781212433630035453460285001324065028702391288528107583118856110732601000846068344769901803719389832722229468953826989559768941697517222398098108203793784196971239460379330011426371245891433447653977218604833667693925206400594970689182041077182531949438195260777489019561924420226605809434889151893125614124543065060989946009104119822738874367188585659468206981647253674607570184237390422424125416969108528133748233917167700862683688574897833252861294420251770828105675853602097939172128003321368040812090463848016469699608194630439782783858613680066710225604333632596429704267052359537257561792860454071516292875896975734253143180305276275825765215673632426423116500008490114057213732926356999152891569570205507706547650540266612899003133341965984647164116544602796452921372402325681244550592909393242834179215264901396220375670972248875783547852230689875276725149341674344764582449689234149806913170658316501740466978496294331081276834444281416579940888327602371644642051622577538145672699795609314508709434246541966520775161420012742467006107229228406153917357367845469597049612473242498364403130883090628556966263774305351969238742155975910998253766153141097219778435017025508740232748450701830376217862668604057589867579891765499322219333958785641238679351696093290065749152920337701595654886930596219630420815004787440728278331444270992625028464998081353509410778965319162149695818526991270145940292871784920915524750646924512004417666026070617150395036265498963830696384949616308571736794745229838683638052325636943019146396187544024768102708375522874894835342560420421537803338460914007323240237932084010912019737211691741589408030551147013338323305649138267898710937624944647047727657223856889976955317239960725807493156891513279087654703378932171209310825094942846643679802878895661699052566170727766141960918025972109230410768116738489222971894639559273784817338924319028250705980088045767483272280821991593144333206242131480139918515981268868793896064617932343691589560963340320186401523698728905407919035638983794617000218643989738693052900268588249018288348011959176654256333297956132955632292850938257056108806169346766271418298876361713772876822095109258969438201296399494713741213558869330323136248898527345871920485756644062723482519674685016770803496460436177721208773922791341622096567743537211698262918824527522740561491688766484388367722128814314923306181034537092126685068677735189442183192057667179591492450318562997415743241871708481927932368995350678858212979025025416605798606952767781298877200521174618564163454031360375847515280947019833104914350846279804448036273598995802751597182837135426486657558196624753719650504621710969115873675986067189451844524271262106396967417634203851187755242095165872815763899198683593938735207411582466121416455824159821873604346372868673349546946648211353801597500065657421319027349479001465538964709848263155418476689026661468675699992022949674642439150854627180569005478944033159035480260939374859311630946121578582556764325576618093202730121770481273115701996013561380618947794112436666423178244786307556790901630062818370285608667965393440336483027950019755934133971417480848582042113331920823671785172923081616792121121236959335116974003907375992187697986171853714438221683867451704095030958694637562955992735008924607136936381754083320454242166598664263487166874448065621455689406000340248368201800875543766510812519079290468245361884840304847789988876602714251819929020531871302510880743019988664349158197573579526793858120092782352899714533721230058751511616247652782472715613230731573671680449559903987503583840853774987315343439938889844570996227843814612841823708409951163490166307155918702763246157371099617846554324701212924026091219339531917104925935686774581311980622270854758923068702060369236562030303453035415861638696994482816141850144329293070938825325401419902402185038160945977618205462564457042508932306306472340190686054449373295918335766708326174604043279928529957961313898020453256412477706102942865661489223297390993551952825759226891683739847172862091464148988378662924493291461550474597179108731060983036545877236063173840507577301372737046423880960961499270749800150500983477222219310461336073639536134000186980758430915955041767916006095295642007494193267725988889860954856078478465393961395667331911559110825559677100641909150814642437318030462497279693989224849857929286188963525310905102143637491647130236439312094378919210138169894153199095346648969825542380387124741095907236014159639613681882260701496749962388211682472504835271989472341464943818837199269885447932340108408257794815264738884242150041087460522634579922175887637506948105434003621559512840717678704931692594594795273903127091761886378979064009017057608823462085862727660846319887334485533301277800501515530027716683341072165663723316826138845694123699732366497552674531896395781883104402377167463221575461925412980552310744095900206405604009955665842428821946618338709865375975249499329889709589946893600212007627246099846753943649052034275153641163697811510862004166752198383433434608483243147800871681308700597329691342356041783290962039159502901557052749190673420497429642826816950431132879967785163829167059670129827497860738661232568589400947316888204114428023643743110690516224952240960202174251004784967647144651143485210741423144380431909362755783580448414491815539599293685036535376651956786404408405119993029504713177079961456611991573516069230363949508159405092455625793854477844997001357059384571774765910239999577114764903216531169050291179020457217985666141102422465293518609672209690321768636670319502953270079948462500728779346251932139612273783962243293440381551644027700696549210833979386867516853814459447866730659691687716829304756588782123114045924248619045369304926476431062801055352165639705976219946555483285951904946525319738128839881438793566756018801693039773530195759972668895872051843212390077074263517017234379454599773938380375701517164249861890647781341261231925624940312466494724928228646360898407544909511231681405675829730302436974578736257081214501830533884568478604126791734131538257195483558974246424567930311877999476924366793856913701305979099185836524900939266107919071425149310915820418216279518690467337128103539871468034782930580844600335925547401520996254182125329800895960200855844981761470432244721864283629927996840971735240035875429424128519900987122876562821564704688405245559893120051057139287910923025403947944228683214684804366421227819949150294093307069386703171550183971888996523174387841923833221356335016708512782021461982497886565757396281290375315980934763030293244719317056599726208659238994398585914251996938300014772133279345936674663470973444001126645739627462189920784105684667886318392568758027382691679576481378950428893440816192240686056787155216801090994788339618447692643478372828146741256971635179571010046127879169625433736979302487564799674571367704845126531634437464251560645846803194951912728920638274077107872258596523247691842062037712477328451536181205513998429436670620264827676313375581184728622485524422875866700922054366635550234664760221609650906540423205807741968082505205191220031125419210596131443324729811945337121900563700765113009409098940861394163384692864112989057721368933318872554821894226499295230248442422440639085328166889201029142943697984188369204521764774598742585085460914273535861526996639176512990734299919606939336406582379529514038034542163330828615746250510514766463909304608737713883231848824583088857306466602041222304758201915184817387041138829901162634132854613341839530017837471485375378225932752800182640865601601348948057970992757930452318769722168460223661619234575087725474188153697259523995209083683636354350076047145301008155764255180289665012043991741857152471869719844469629341452779216849536666113386822604468152282021577960727809293116290628424128881197666081168577461372614403971678985903233970605914530727027644042630724413533029438189985884420561837485455009788287599256650847136170488063707845579037210149913986270829838340386475405853579936132574555700537626446648109400463010290272179080110261380342855503095413003683588130939419070040414662288732367367294778093810556402069546085351234388866929951959652978225274957388600410341474370216754572572223049193704138722842773171898301076852154708420697104036796074789025950349375930758082724820347716275297931893014125298629203685110068468953347383900569274667686318144804889877494393638129084082591994097892113734319153036104386631292586929156784045475095361671390259207199453671293857094635822978618168545592244273797625280220329831989547896100832964798198337106752001075876563128336289385394769795663272177940939362594991761628435491667093367486784133418544365378282130437285247498678893858446368606148865396166213919316083432515289095620315819299679906380627819288316139805368597075059502421457143017582000751411952314903739601403143638040573667199519595509947598114646204422558426967445405400239776029577626807812853357117782389305477225449253461067629037106906410381304344736260040857250917495844235892713741106069337890926959644406707313904945281186295388747497433318761562417291092074629803102247649648528504331908539462387754353556244741555107228476161019488283151167324367972737216353240169821589964492265252190675287759034887026511855094059824856625045124119678631870576955926533792254159522390506865099644429091361857794468957830625033456356753749339864972503484724127473282566058679753796069738849152556384104927770370283843741087565936776539732290328376677568847491237560033227332635788373368386560948858808409979895137250172958176644240925664152866257080979157995678963685438372387188588205576271458183263865214677611779210517425714897206713039861644980735072156022935713782622484280152990057229964161238780915371492127357490374550799074876619700660538124235192453904192693568566440725087463143322393039253899226435835191805490712590352525983211270653752428409436380841784828809697902867162130637159718910668697843588965634107147749746431202658523884798740315475027550721125172512654232290552406232859510355563609895861490132122135788270512552154215739128817460042157531742845995632958459752241067102913994763130097474303096888798980554035662410361800729276505043766195286689190063783991833618466873551490895941265656552327152036115273446046084657178668953684515556823269236549534188747757609155820505953298886576081290240485519125129123532889718947846883526137426776862990077294573754665005287727670939620898927676990894866505837002963424333454710074931292991869500109963154395784764925135455789327442849104660540949539022813131082690550794771881038502098268163222984625749439861844394232929575576320178618495154330849917376253981582391685800554750689241613307120264302715378923345227888296267159375670824848530050433636636665576867063356188362927164762933976765534599939462767940791993560945023890880076610322369984688376431004088126078609791855717918049062166492543914404470472546794793835672806916360575077786643655844223472833187695192260972094964802944066777844317848805336552129962670131967879845132624936399952360865028270503395007636976568107435857541470733015229247990766099664220194569236802180261830480525890589121653938083482792910818795444850468873932338200756426954914581517459849637238633131369240020296194001955546479996095906964660421950020516432673982369098970774021451407295580469534624845365656393071596623569835738694684428561118858142769364908330309751566453406710170718298565511075216872700909660591303089119489139688976331221750748060521488162350935009977176786073344849347079503378757336232411414334903245610449134483880854689801947390516397255650396803888239795250618568900571352167354759375314521548384337750448070453253219474541742290240828583466410206834045426297323769165693400009256653264968864493328781152249786489252525306397799876989773055056587198690769253981500313788303835911439552640540260045732800861057497156411687425907055695609853936851258109901412463066814695585289811323680260835033455484614303778751199953242337629780443652215991827116735702834832831446856900653540480583309132210212011181355890762626493642887089084378006360276429687466858021383380992250626948755939410698550064629135857058959463871698257781267334308401048479740019644204956144052144708630234770072426282772464340784836204976604658040240001118275684083655045738443214385390412915062351171955739143937490587939107359649754547515203958096532048323150468432001598542997666609031034159214580100052626215649087502279846051748427479863237051023823772910824033893027905704755228014889695438822245649348499951853827896669467244909853080176923143692907102358544679838285228587480163060529162284523139140006685136901177078993411990883122390263181419669727172125380803019596197264060234684657484549722719709316068655779755661796716220309382374433172575551537437972149973660004001448734826044486680268021252639847869943423716836691380523022662133844649684279031825956570399420892290989038117846823142418800572312566551789260587132752583459918645355329255844648912507973827724615504044390826825628312734815474645774166817690693157194092083429217323616650535177293946918531996014183744856445060449366298989019601131463740271518079098372322567471531131786486376067097640655987408373019933215949394757692602321430902022822355541492703355300807483018343738452274216594376686783207953627030921591251324667720508664946722122904357290974698347104619482659635803811466929695211799317085515253984226891517052095428603739037053748990119873569495099635882000273625830314629988950094237393597545632041223390020937732030835987862085618253244309506046127584556553669801156095943432577424814556477902996977428389476470182586324672910881396221260450027860716299424749650578356750389980689857398003074875444588790113210147629419785268932106803085700830496138385385433113396132337431468098060100883193237586397736547271688321454438271458863905187930484783056090676091784325371297426944892603199015039655743730285734717363459731584439856051813470347763639101991459417464452586821123928952542081487386061367015100943771907311951337970410820026567506618976081320973058905184249649759124449573951368587869907804210706570274307333765665538453501293098409026247858970041421902221567636066609543606711146171429382363557845187086834910129751469058872254500059377586679738208970340574847151548282424480714311082226379938050351533172132638204774750399230476162451235028033666322146720230594753824320268181133838719868403181628368520504976969523690468342927277252407302310015702697024470723136019775658377811201981462150718335496841551714488729519234537685267759105006680198528839794912595362451900720549697819286695442181989364593062336207433801508371496191002852681592636289197041626254204275706135526112580917636162156526056440187886299951109543286247313970262775715571047608226369851760855712757859723910804873713935686517713567277065104674485003216267713941044351195806655625794860364545769828610162477647730966411644446005949197927126169173281809682500748616796879721020422706410409755409159079532115806857764627954231407935567266379933363603459435164575124733002436811973346163835521246406956714414004767596826331325112798994952198039152479631185540927934078640829470753651821196798808370181654840537531105387739117065638744919267115768579821650506811856481973676720533392604314008807745058243761570776324468624505755571526988367842495103551249786838600930770051558056602531654074101863335836361691808649277769455849054118861583114505275312126721718798217697681004060421495432572016025612433477703031370429043775729068065135389801678020834632164955445671792743198242108652545971285079537215842358566438218773462185481886510879536017568263475998784917953370604249735026408891315935479028625637458163462823645932262306606273443523623464842358427591861283222382794222378363636020904404437500113364348762500136487357149341913274018697920795368308843480975985114544190301604598891965256483606042284173641156713088088411545938743016677908324929030627021226684637020066454749402180792345244230156338495287351655173826798596510810504550196150003445609022259524638510731716260701645305011410017915806573727334548937597476721616612261098123373626313303736192706711306998500195854338200698239528579082546714105087082513485872709547197140214025151968612384118178780188160653586927718863396124735400576165210834967202389246627068927477183089868996278578692584844724532431925288570961014629964076414212446266962986255176773502773053522427853847397721953729102633763838808747542107212958362943555036905713063510877751637942203072002869324817569886969625748537448170242257388069134281908849153615815620282421626229530341675517359285922757343130491805177084319648416077590491802469340156789494494946050809744368476912863815818140783136736274776361989984422428162101651328260407315500536413940002529253433123018806619696918675316624867271790361693079228859051015730402740306175085489560599587343303976350315395746161285848166204426712567309298372992173918023699140920316247767917037265536136613594055155229006776354248980421873144539483743677724923505407290240207141745652164162448347901909615300240704609338610065798475911609377823278409223764362805427087684066023688976772525467826623857759189898935889020407173591914212518206753297125609528235059852880032129297712506850429311352024994068828734030863216552911196611828985524701084482748124467165826319781305846731516481610956649009676542939525177070581922195433717125268082543054636941001794179409682579676923980151237454114225098126723649776029647035335620341802236839992354425686784706454860128175137851475874319613131275682024326591537594256747630270037905926770568750369386503700532810757714491029402445082800793340994431536746563691359347839672170920334489316717016089394721845059348410247530522947466571556002720160252529046475444671284015921621793068928905658819230870345002127839232340357657607928162644177670202320313968199129034649092635614001356141779497652592313573092444805304195470740427983618184824796902526838499983485153352921002740265536400621125883177211378224633408261339595050651464253943538663936597453158719589184099715109252832410785862582055285836039415305339176165012274121667494475363325019781947648218389111269775231900664564341670985152508201740699690038726769800926092886749041884120508537290173581551911635438708004772966505990923270111806051003036939334491760649801540333870179050480342419869538328826219322608950844607270187205796732657976286827022772583890831333467923219571420033153728971748950662563714851283113918983458928335905078372193245349253091710121905624113316783351130326398553280328331467624787921451317609055972654291812884819331435604200910628331821279596776654948825046319349151079091784840848321842612680787366026068068642778229597087331540463277142323099670452958946436967092037679629721603952597925429050256463408521463304391615436654808302472482422263760026395223622101315761714174092374502201412558684894450495610849786893873401570742832453789244923427114821337824718385196917850631182045070382008831566243734827178220970883440844460564130133404557255907005843872018387561599997776872346200655942295697551768106740000064393992035443341316215121375689340286198853894810822824929420823690840574669545557693043563123931052479671174814031820855966257514110360915402656550280288419104604474726148490265949121968361030694887826638646818631898978781038386708683236580894793562743744770227079542198140874798673458739439859451058356446254020526371485002704938887349383100928505426672722285548195988001663265082178727256470333295697821901930501110368661956226556129769874997815624236077686409050142336528718669863385652726244730165879710384594524201971918961213888937607068679851042499142611368327848231116434885359188345536955203067206197869768183002488271701636880203474239708284678937679398792531437553253207676243424055572769903166688955152447212389899219769536879080870332388642415216698373060498366441302287704712900054819375228464192352269403093560119596033343323062645137017650003807818509293727705190642423746977809706242409336533722175784791969994946070272410796608788772277903935321744710922473417986194402380013398659433216895978170685179551826962544903491234883670210253535069368532507688803896386928398283032726362205619187644077209789885073129650947269607767609882330383309977171249412765029104625065584293564676359200787250836186961650068382274464994672098434361334723045169497398496473719799111947670817642879766521466779743881427751353834616110805122892403142796674764323063954696066768778352779546556123144238713719523493017447529511543341199012031602573691163285224342080308632259690060536023208012072746686710766192416721462746695603480561631355114983054724781165771660111433619049240070739747097207954085945013665037525703621362513503493305414550690337187484387958047352984368965817182083954392916085136187420420346355465471153063321226152934596619577953957458325451859624032484785494367412089095273295994878891072690711855170784128128995484571885334012031291068754269782964879513312762616120377020405264132113152415941871386481408072412048695167478181907441445303561759618612916047829928094196575608989597417877100124507154406343680915263270492064610447521689221295192383636052812559061356702072620199734577896205570931062965131994721245898772817007783052062275373101565103728748924630239678432490481268764679660965177204338977070789296808542831836528402320334845575729379424860478984811616637203207661654331398058862866156349496613344101131940285537039591182369692246165613391360837817794655814283738600616535365478156060871703264870805147517355320276538117722109964556005325414374650130944953318768211952129087918952876582179709301270337293039605092258342834124732010960433029544629526128789129717687938334719945041239808348567222943041449948395399209408960191698737754722128683187900934535078899570449974381139110796774868166505098418633273898759774166495522403357368063766012806268704581512374196322302244757510673111799897158445750699062033980089281936177206141336039843220291488010671820225968868328058100781671241083589443311832316618727823465907022895498095520612158082252845713443700311670970266649818555349765540008013415881256056733077073942891997565631975860422667146714519796117710868240847169457435350996105227854090028481287164593216236945657910621511132026309229972648805206677148101541619849950999749004726342851297029384240633362583671022426989726194944970233750829505512948613259311049497687298692354062869977576335280127557010709585861693826039581367182388621841720913089191757876719027104121831267208566046844472130493773254299620507372750463791028967552454859924142478999697417138424197711100740107531115835718040071898858723858266883005482901318267670680194189688367925269911402849204646129780738849418822484221560519693197393609979062822105162276195212040641497058645604077486214658467615414607788779623807187966810392612517140805597094885574550108053301674957724144728509078366533158910322354329246077904420992823267445610909673208980097517590720476689546769790288034822871347511259132733283799457776125568752545120204608054146190425579405733416772272001304376650516660763843417052403559547544567786739036982168299733178732319767623763459034663183186041426327189121648148397070534869731556055189681289042628511172226763441652877204234600071876888617583903822077522062588937510341581599002565539974033100403974543595162267986346060355934928215883351086626397929906496497332414705565063326339647444814129948778894690404678310976720528940298061065038862782296774001030021593578094260737121234063538083090443899231761089216520655489682121062262745206854641058267594092987373995484470872045202867973331147067848554834310804032127781297550000591379544855507026567167692407451358003816334512535324501876018168706144872079725399504992683512970365335664762373315499514636858891229996471230966717216444034775644138041161122579221138642045186815516975107996707751014115810177985562476089258687279142223306809765301106803026203475094640562423441134133689661043559508607174575779390247078594956916277296922970448027534104794952983781834631572897690566481903505148383855881473646257683773857744410123933223323509356071119576268769687707833438442448900196055621612986075265262160120922714950699651272472302244943604263388915143001071680486239552780616449371192294493265770576165291707694517413969761436280909240145887238748955336547535540963749577324608894952451015274611606324816660974065628234579938151894384030173672281056042638795162524110974306377596694856233636980336152881927365519719421069567561007482373361848312651646394250943620158699343015999367853363389936584472410136376775480228239495288103013837329601084379917362783538255942850170207023965580317526603976170134263323144555168531945824371896238047597650095020492991254465382384466694779804473439990896358597050150519797631324302259176081278515234318569294030345842372325748635353481626146093844958936828653639968596289946655808146854797869298957006520642439194385224944648566427456889769469175780246092937814205240569337174700429496682228411217202215970513620945643477845122447461304998309523974149269481764637675048717852433848855311541871528868200438917259971207879192424455516411783134540688198770867086115440674080672317714981551884552235921342504506431665115355520678196946303104149679040754026657216901590366661147970815448222953251194265180485695066659265969293698826118833334824932152990035405701384901117755179784079174071496844526448465230086409751068450333630890855060073406743724012145409125923871180444457152072859769119167898556531121768461486085733370515393334617091563956520680865675469127037051073359479405272074357957154479125888439263802922046663838610651802526041792787268209199181130136837873812434460574551179759905046450688416353443469139859595824215567305378080559467875623246282896200610547010620516720107220357962790580265982750607376124896846501798322625215081360966004026942271723434519709305247684167270415035002356797130657635020073282903463585969509516872017403807535891531659321227140623975945161462281087895164642042928315328722071838461560866286516432665007509871364755462808683016937208958160877595521849719495019046594012903564442869246145480157119318789077059430367014611321377934302955218813457564915538720550484394828428318833428919053562689737182040944643587991183086527600094327045549431421840746531002011272881501922115083919957659443100618904302047926998926983628244939517386318280328241246244577299298249050843205976712205489704526164970011854835245603391811132668301027149451620113639439578578251135232147901988935613688274875389057723696588780888842878540606430776675763246143393919578687051808230279085983045355703778420475788258250710488436529775692430074664276191854680697422878230374294898350740580536794008147670061522772914124983119479627478983605959021919324211552904382247807679886983434855271548824289012106965562969370429195490818306525106000921323151972307739714008285627817182605439715147419115552517695157972253464448085648030742936826552156893342842934681580210990192656854184175861619483083980521246210860781992761701080940436002421179706012235164960801517918540683001462364495938377024403711307556346054159217968500789312768239280234289390098042127104087910116064434430968078759811388898938571381046786297848371421491889761515638918471088933098555854317049378469148048756500982221073052831074330756956973779647581769045828320383134881004925248738354585909160576454306304454168209906052554005589540008324605297528421948929030019667627541918189827312743302055686497564112780758509124028400153071257801974848597106210585313907313988464298870194109417012449156325546680351230057373067861985249410674296642195694276839509965934076055961750972755164601607415671448016624391400012017047301460700066622681977334287768355417557206498384049983297241668899051364598886658086131029830524997147345904977070251681703137666350602540307234493296660954184744382236703773149814344788135245575355260297992600297679486648811985862555152337691112007076852464927251915509903381524980405858225390687141599378544044268182933117739816587185767262742355141088435735003364384806442270304117317128608403789821705634841086457979575297271025496891115013715391688114596115829059208962572642865883022241596869091852954138916044020511805641424209763693893086507159074410299581171066110593869094046852525559817175498090985340041765400380065636618460545780784601271046720475483747877767323324102807211860311067549559063514451708174050742186804447947990435794657316531471371510141368026637838645655047832777312395881636198302122529208865398367396717130608453402034454744795087504089163923688541551819327972580135384478838418328293139200767787096370305607407867483755862814852277587867816297506482236950113404523432815326977716149995388085168787029678592191935174247475023211001393741593450481674964224432487028002333819072021507318184242259061075342094884731425042076343959820270580567833594909165078140974139704816158661727117644047346510086685131786362526491027636477133671016094437673332964175866683962087066156781908719529136506100857921316529301482936958949233175219941515022866725406958510614361709878864611672459254750127913792096520502346386477598236620358326580510972291973571293644921404895983527377112421726020084267941055207818913035518523282914358283341309326020566186299433319324013818694742276725300885985678092547900175128347967451922427277938214057372552468876875744870312468906112446535576718828912904855775227062829945646077959309223586025612898435450393256852965862873911456108421409023606027699685056608456986554806245566958243254623786035763137201578941149189308866069859604412591483451053802044548797484042515001137182644747905423832506440287052575610380192963512144109204462501545937515491289726590131759138607014225401576652154580653227496000911174865870495056253564563541068126094301542542675752226840135089214274458864888267908741949349877817329259575780520704830473874034054728837785434574252819619044799819899526818045028046009806124083065769753610412483316503806182518696256852126820611749960270153103312374592807435695141297119167470081165510906723126372745197147281014105277206937116881771548846630703107821675295097598099685836772598073447615780170794346039296530090627942343013665859571803829035061391145211003516763964065246980612946393685448118572908770770064593454610970581684093489842210890726444133205422991182270929419194593775810996407931113774037976070063911409267864712235222420021465391334349410487187252847037875748792760889366061516851436556675791328505442999379505008849871396008820316896170524582495227708580342541177873826386030558878094001722102717736673841036640120724481200831237528131430916956533718069334492772209375290258317473665767863628040625160761396147220967765598403116692254442971174735838996605075038543683433433339455621384843405675157097412114623939023240872219091746867737195792474550183607456741127715406770812240579986985344580849037938431588709337873370450644907332226205024245824516519402658300762482696840821294033187676852568364485593238646981254852921580013977206629084233532654693299118853244384154965811931122331274070550255074043781000591062212375411795380252865888139705671942435801056637832961167510141658869018319737218506894796114246618841324773503525008256774162433501341135828501281680283816302611908152724311946781593756321828360692285302521332702766509468211680003678768482347962656910353262553682330183366075985699606378845945931287583991659383639045165414859994858694180962035095564811895367480030928056965826644304814240790685563026249633717616840884021347630572275085411983171320723990654431842383466890292827827289763614248898949799688508423736838343768109703023054926322826296421711352940944490864194788687001086139513760306051095598490398367202394139508668509040880476548943475487039395791819307452321739626566335194433451637758378789871401571503583245236976116124530676558865702133677318379039689410016101078339663506840713751273761903685233145413192909190205386397209288028117076711438446318673462868595474513564013138086339270007470982270393431455966346033133102144607751969472543638769021299203833321916377096848698176772329812434900762115402623471374400635831794959357622594512924307293572247933862555709060366112015912489449287980061208383494631926350261172389184412044404146749065653454284692059525112056283453634166723868640188076263637444995273820545665509532515857693321117124719783374093746737035452015165821285086850630979096240184250675735158491390409764137436903935783515591684528639729338834210181819263889408362030033602686560111516492315834167507483433937428784905974255176242222368372103185243028843080024798646679089051516364869070963193083359189707933297307195481278700967023695212288186866649344726658254084722179036123960929385924992278346613103179711738574428238907048027140327697482420993215478519512609382871784400335088342981159742934065874914232306230051775192957173671082036558467881941934758806776571085436166598797246009929342801183874254598700525283732681813571627569897573300584041487739002810910267045689279477652834662173085003422038188829263349887565305044650523141093830206668573274590820331021412149844141739209981059267678772449630245406681774353623031338197445011687572982318818579797903536611533639005616376105340239851373123883470274874874518789852338422873061744753120945877390475918410141162260146276775096409547682755821148625603401422720712878208615455463585903436877082333826223010861470897073959962978574235121320801615527112304949893705386094221832897312860544935880079696166167141875859209181208750143720637027296543850456778820110542547700393183031609012036279222446613092339619070472087414032222632809621181236682540452753799381258729620636256238996721328580259400292837319631588124379362422435163916139409770503341963339384380554668962869347308812866280999109793733788480973732126383904636003396578727168610867720252475607118054168679314877527347888758661453507059568876982625581564710192567017458155837326445001104875061643168792651109333197465621993822582448504902567493082708745742723541521803592396184236841022911502754765596003711690973387266453516699326177316072138598652746011081801992007573093481204612510455687575969819971747007072435482326390010969516379335266769060637040861913851770837383228674678741453450860384387866371879227629989933251338656156804532905647093975205950530657855250419944927106756206223148290603560763628866105725882884094945337226739916184321882555881554327294978698991399873159021828999415048624468602352615233052917666478187066961713210327978112054042886399320498682166824029538736837976584036463083633792417840991738712799204591709060931143664662326308775535610734316933860943233009417579892005873375682619219752713389483943941584379437411161395850333665855014357363889283364617554615966683360812791134072957861611895427930217655017738259587986927142596286516093247570192013874953160217000118118353673803235648586097047340404828729610413893904434096145840786743708404710295437394207534558715863630208600731231445919134687925236991115663633949101502855577952030512141113157932661745135258366347837398058233595360584902186808558745394383859385040611920141230927907876776081960714897432413398885884689200819252071121799203978736025734579070621195060355824257658901318322010992656598268698132915412362834947666270104371536198555444890587448443634273431910393350523693272465628544954869028739456708700992582918294011678033983211141168712030384371596224746125812104496229380152041796079196544395729407502560637024504669816314538874925146026201619629258314756643185767018656055951919423490822414668298196345001825220168914116602025576390053904585245938171655473894130555494325908841025951231320976587929381191386482581594224121328423917259383811969573137607858417087559608259599235993540034815258873590968821284269640256484103333772940086725502082988067202233571072909249281205189656740710196661027667452761682282125712156608069317261583061152737537834941435835722095626222760324454300118788830331594410100847260477364350654578463679721953224132781956027313736581726355370262538861128986845903115666093700087597561153647058226982992475939375731124965976389483405989146453922333608534104342722198273963644718880818035125740581937913854496641651129567186462161016872692871760159659715076595365829487807834286906512837856784340474678059639674379152386573050261320916109012536440873243196612981122394381291019778747120397929338298335116328883035276697848263582049403329915721738516599367411598546297447819704557319921742617309926557975889328296925787780255493072952036724205643644163806172268237868167700550388690739716154153423492060051493517090992354666038315509603797866074061333051476849090517324622773521907425589544477381566274144339205540607325255275687814401057351713102346598919848055920860690154425348116706455832805424254513091761657022199924140035275783205566032478180845788118943989196650845788709851300354327459562827869302121622360369969579698612111604884984966161649545362714303341539114726704834216728307707469484076941209773476531936302323780073589474402392213489328882414285706400020268464173665109260156710160423325543462197665307012642433958550079096681825551355484663237930984587259271121550693271675867041205266611235189235074192696825472335748381388302288864860922251456075319963832391226603852234776615661844733939494346863925736090270012763682975002085276036501430665177260663989968555893847316218042628568846907287283192292936806800303410628288884808075534657031959076293591950398556910665497959219562057761449058633420669036219110633798527031637012319516157207638938349005190160276774610459754031244863666690615753465054938454573836760109237484721532807576222202016140800931775766604672280047017803030060598693797277199386581401015973253150411779777583327920045583822565407874564701667435410518188090069793740386656918283111376699945165560501258618901828615340620688602681997852108443149335654683658000637967897989083683211429196484256919564232927099375604602977089029728597127862704458139877122011874070310786585122306849790281156180799994049262190052349058583034953465673604417039470052131217549940436487106108132611489564313022627775600623764045881313471124568803646146556937352668546318795735850839014925767165704085332138042881862530402430471387751450819257896001677673991827487531724979895257296315697076256565613931555821957525636893062081628677974945577761251655184197710034821929395176365977689944360190077602557665355217928889350876696793311014047457912395335636552048368719210435250533635165979840105950175170535093100259427229511638620446235737067607457260491732177849138067414358543330042984549877397121953197763683909071758120146419672487244505137248493756008409831061840531795245855987869747360352698825720020283217462415403076278964079370028520763387587675793001464660468453018186329983285784435508330600258152981015710168580735554288689617909581047761805829593320522636854017750461122540899694898586913736052316699551700254070112427754043950632210941857603408949625721560258720901245267248666345074951310566038473529371291984672432362867545122480915592113718384532810038929844406235517872664721886332215170720333534389350897590091621186150206467545443108314745882910470686386575867970968578395496910256517228800264805246540885873551351951688559047218513974176503753571140186373767461081328925217033485814384564204224640026760488553975261611755847706259066768332875504827326546418582354798434422870433401277384530655333945738812517074365242291625691667050700281055949116623843539098514302517487070869120324708613677501417283181062354371120788719415851945026609041569643742727890020458702799055411341189246862721456390376497053052338572212597842086170719710576964736828481276712736462148349584447855875237608242209783039231596367307232564537993818825051829465807928768136971728042669555853633215056995196437312014579642570377447766451346515814879098135134711939363361166537869592615142540875840090198762608979566883899099027200167843410975598865139918929582863717980309754182628355628712272267207858415013578067013335185155480344962035442056406826585052703910569568322223350280876812804967649271906149106546384781843613704119043000548219530172351426849256746776281985302776100137970260109146760126757499857398355239015605698102526017807252267500029703459749880139688985550729272064375623436384370276552174428481990668670449729954587476274770014811066052700866533222040160745473012201475876044537733261879344786535755262752338778110512926617249400860461600899108177003473398220382170083334099780919259845040914015885201836129753060065343744717090121774067316117598002528444054923134496944848984862922345370509052936517254873453612543939126415685413045501421759466796856329078964407881123006142057342648745158968026920372077881973400685376208303097870772561686263163601400036157598376998570692242903623244478740235627213549002964641503183193990119819623540597212904812063540360259468241537361737944998459758256507773974729080690123282733213792643280603349511076976439771597341619760006944012068223725394777329080225449598742355797958690216428620819605693519862174608051771522977018693061603163417045463223669676989505940756732018992332999110584909715113929260583490088971107199468264232868943533191117396355204799455158610122383573771478998223280386222942888322902133447418263891101806478072108428401511356646941624230357260481570852698045678571194213574173155056478372368015801542534500062755847189156709848322616901452249565704628253739055228176961022806825398450880804256816348615331901277430693965493424503267672358054962476725842021140365006958442162757032867001609384712622665074081664126457889525185374971024504648234630156266399118646925776246046616008885058926682115885986932977827992308174342360109075821765962311594390447916689924682725007571284898147265331091193427623374991075805092069895951755943472710386810403713881808313099735900433991633627657376857978873761340805022987699175044516534517372037517601401682617264435625512705901083991997771518478783675359344567257994990255155796273840670196770911193995904696563449540448671338376107451113643271370919836585233292871725578054315550632122382885864292021740331399978765023487810157114655938992845080447874140207288487127676610893730251416962261030560482765085271558610581181154768791516994057216883468607408827875259693447541013438951662821601342726595660798543409326433129166553771215682214428206155307791653177757396418391645314993245220395683341470782021615181784136142090734725755347541284590588409898212436369610861147915507432687002786994063246432891496756243737405269656894072930979213476994533734832446378854311328907281925491312836079232814968047806604679016924417757624074755895252839825762480136596039786728618999828760045753750311876559819174732686294114715469622978023480760650709247416924411585605799926195822141634275141294907932592320160835506280227044086508247112393983662717603925518829170841146401284341689536201000116829974969069532380100445087332643128724977350876420872563509731930439272236928407135540271546158666775553450048615611281810178804574060990144925853701770574690751092153304788183295805871846651265049835972686058733248444117589779355192372429513405037290430798962735618629761022926840965151447361659826265939345551070949418611690372072393117217766162879176054349930721274857800933574313760838996664451790032170901152711684766598457489791241102873063897017875169486582113556992647299922261331615885163663628602751298996879776957409204218595904020568051697534067124659357467401197291703489573839934683320500602366227187075017072757337707948009900090859491345251573963622134122516048012066900097735935243828830930682819917496375327399797977569068357048790638907727003140734459907895137898988066629173013527363945633660267777320207376566751725977882282432390413283708610197428826440135077337192266638663831723500539442028655691614163362625820380907763144310162530921777636572894438972097680318401197804955218288985676245034614878806084010667574718491349833949897800083529472109255268297863919463262716243041835952628865747594602497570199156187460853824790689911415496213234609200276964837214901535695714096416152623990476660256030852326651534584436901753995465732364998151085149761111836614492409931551938791553515300905748297671523716028413889243028567946435139736402074175235139203953870923517183189100165201124258914193906547033259584478783352564577080265605112878693594567090730620459781969765064830631911350186517791271605657889577534766104643661173201629108620833634478467147079276229778590876581880941959008565862702467223452898692700906224384744384951928714809701697621118589614441919861835528774891625305985761715903331566333862619135650320681959842707710723006817848606021812568391851082998579883802626185848667799911434615658573360141508488726400681077759602778218706243377757508979746405010016810178550431732311633359368111472953922214698601873883536673386514355528253308599541809443354363115025517188634681206567965876729540859355594945958262120314264656722889605896743873656152955065031305743916524045487638088595384568983639220472916539648545205429079053888943312268792227884842333399994825219088975629072329799177478016278955514730296221524511489244298388359313103522073349375950236113968817227407363959726300392280718415247286581070576558373376094436886891985344913771830781165308718511781755254788033457922960210254850218021141942815351750729363381172999528900628033645842017631998170991124046159614454302013491120669942364080276890749594226767470934001645598456468526081931319516710716259728419946269493264287494980353919238201480378872020712556814750865622849506414353221491069799085214487188039357890219647334331629133599433433439885928606877390204600397642403689150555827133271783218007924404167321420799135284989422070174624763075801954717733967582533296255437500523323978862494877457310312656893250368181727861514937767095248110973931550993776709503497101173202636374384744093054469672635756713510487776731710593390735667639404829818146241330100591061289738323712771907698039246424232917530117971826766557079313884388507306556001037317120883971494305994438982382408402112828733411836416147341407816632800569770458286609576008031067139651763583115211005899899685195792998742329012645356952499616606689098345564880700057108375474628120767466076444280489295345339891008259129472440371113341127422414412614319942367860643436136422116155641795422310780000868025538395219368553140093488185695919700472200787389938534078087391845190607257359352177117751920492896731021592957630159402339929358554035922323291270647526763721547589787554193755495392372431586653071268625018828894920308463311138143985233788356788545267706565197503039427854859950782380082069812886079625883537344671802720364368617427062552731156277240202651871240597871107056221882220710206117639578218325108480451657375021039541237950071524074080754364163226786325593470381594477086884655116059182055516237729183896976899381144905155971565636113920243634479144992554253565581183258025543861335358492020370927017603948804261195145973094745798718284748516865324279388648906476357845358094067035451552208620912333444579433670385144734571495326753462601892317110875321640411220038053329219311222347391642381709931637260541812088530152940763332334400472921717098826479960477717506412974446634903013121302722464170661474109169849318389409851179433676695170239705799180908536507201300490209807837407555005564854892430933972067306954920222668653153296157357088332479169709739992659945431706092535144712164115875145349940065206342568200882828456459228160484642817181654959132453756768846570258993401999403311932075637427930660147259739087033402329759298297313769134240119677050572380534789587620134276710400001661886609193604236257860736207215752152628486914351104805001982027082207072667730352234473559301393409988161312090513749474024200144164349756144555468864953464973670430120566094829865491065378801794861362911327892479866432143023026755439326958176154869307160012536612689322405157322837493203880852746206915393002732819868139153458428451844707660608554517215967587209385929617248684675506467636258294641997439215515268410482415034726526766986173878134297634872856885141463609770110359730287063270983189917950191157190622723589139561740072079699227399314457873558596593282461480521729628544675142270272789220442606481242655658054988272247895232731262143124837328054668390552273856415738789419318183848688472632383021018126250300470094495663660052781146141550460483428567829577597196543792058009341795108560164290314344352596988875222095183817067991283594080685679586250130851018534298458045943728939097225909396137342213834898402584819439818670240119196760450534808002843531637556072993766029636261596787568643231915152787555621471856761155104754029213398524960832183003533816755565163532262231425720187132481804135396706529108754988583808485104314348971596943208771076150111389612135152447110296296243672719160254992342075025995745638521381268380440556296238239692105062288172436172140028863428808410083725761740824672848632586630724507046127296200050494934297693478655688976618118295068580249702797226216045498936369585449285229023554149422930353172930675415370844350535768814493729225670578114031629650400420363136435604472536559306940541016084422913866495321625192773289901659127739203794454567070281625590400680438481883008427472584308435204961154490652914281374637511983380036607433762246652616724737152827750339921781293456985249287511283102012352172704918228151643943388913966297899527256144519368686248039084167010360111727515219305304588894103225226004258076566405634536076022042101069997948485514325699943837393417208201415029228495067405326001557982135128498891181239218890974817645491735514656373344521898508493602963332051971344461426034875599942286758074870958262435822484588683418000572834780241433560604884794767603070141426043781025780848533517606750508994020192972044197935946225839859891820305209191291983886302820397071603100253686494071158553120072427222887314037615453618718105949291016149205560824339329736706090825352431928865270070663982461397093027851903959687980604062667497218865114282727918070047247358985525251786680766956245119558970590795857964399173285954825670156153226980306525783236638566942681794498802133022140428769313958883501982126623607996593968286293355367159562987761205576191507482152898751841497622138590247989116537277337197309543796780196486153391087728438838637516411590226260299622990439964082589275474717178878328230905798901069595224290236943945972656968106444592285993393999351312196322590966822174950223428938799303498264072010260527255151218510772917223019966618470410080801127825060826443497981182401032576204267068459465417679323769052871218905689198550306091482700747708310021100252789610255101976410008595607510558121263291248464162187874820239212981772570410483783957690494004514946147170087379558342303328859321927412549698270582972171439779700108186322259560090439527798195307141802961260784523762579193092228072301109155395099376869268214425783853432192634629259649955254964508503543244561056908009489562722411461061074669078636919902399762328564252926082729483942718359744025288189393508148694699077465438481272431643073166847078388605192417855811697566229350278368108318711807754404668652692453544904011494924096239025138526433631124974499856011008979245601224532321452498198778320858966749413572850154550177036075878018200554645956106805602767063666649175717662953780713696597635264292660475519870135930613843133117611806879447328844057754907575797810781771956588315310902856475511193693886317855384152163853082565227169249658829868183575856044739922973527681881246656252866834181142531658438010729766578494442148474252188539368980621764425921663913552713532824400239591413137682509602726670704298009202894623762777579326815061671296875660002672659155107787365676702456415824843380592849036543837569081661551253981884015007462773358751784630099762058950695276074931898863162495707904080436870111123716161867933821964514481539850362200196314652896727837182536281036769963946968965019625964366336759266516319390009519418715211508471446500007980402896945174516536984165334715933861705323240288860460623531881258002523666292443880577667113162134908081055144196707478240792870142818795536706284398930028246004496096182144164505597453423208442362661772607157856544567985000776217201625239534128742593459700015291729622152331420029949445231226954174501885081484419485647745620971209144396987056451965407099067409339983378879353620741919782386933920950710974317088766703258161670545517194538009273551861234318291211143611158909154185443325363527158792071957452828456968683387316580085064491059095751860408146257122471024819000889528708198765278077158553967317242073690025037616629858559922323036934524386732823368001180720356980636084967974337841552941167757762614051379512572563185554653166672607710683852254045702628616141678055395460851200325129766233902968633925176162490732707101218337715364213410706196891943734049952937844152843820202291465324224378669545735295720206062482247817679754160762520015336306451286753446742451733741355068456434725714758239478193386433651378504706805621914665306774936814312911861873117405593269724393301898884584314292596393286827280785785114147163595551385256387978004056797530276336444832063493970723452074877601689994755065194803007568380251604849802654564462274391686205158504570959683576933688080226016015493625752268572724750367603167444883199405771966777732048083838441062470634087979293807382985877277999763423138883978516575195544803239610575861230592855461564339003595586763042731250476110479781597001592667679004288695440680097048064047720892318636417932316457390722534227282913836518858095889642793251940678511655879912865551157036494076718612072472162435499705175296073283832894980307740568610755472729237476287290210167378742509014960191601280346124675005389965199797191337498081399431645874492035250653574374942457081377618486777542867137073290174443268988419483400695126682541252994140744832260254591803962406690969321406601933672416477381086360671556733232074414047848450875414324271531281441456957286340436136079131697046012492676486326009373178889519927087088629373230098402553437637331785591573477324002466822252152578101289542855353726402013237427173117365261684642049231733223844808668032121187068022034024533186832950390127218125651564618421891316567999744684377948794709722139543516127454294764912255097065313827277440912369788428146251776191842388894960333105126076942527697669973546286337603686388630436048335784632253537792126853685483308027609497237944042368049515721990352086007123193035408458120944297554288460580234760792445297075187928446428987709762984455862630123616447513005904395716666091457782112393914371411477375988518261395580100382002870422092645528915629449287070148314493341503894717289373275302386094442612712674865149851527877261018829375738952129198132006001775417552641714189027794012851366367811446567158180020975685873148555907897413122098972584211764934858428253429804998508414485216185072930782825975113582595818062397880854251374604192157964197765030978030765455302536968517347963645407109456930772599495149903137410043749050583623225038446250276830816521357635820512006757205171418967411747390624058453794077295765806384114706788667291096895048285205056363502331820040510690523130387062421100772727492314544374304869465538869228901515885181158984651521549382175484115276834101684941262047922634500879966472830287767145715580115746174562345891599782631047163944526598002133371788538442243424326660740621720588503321991024346653432578015685297759256217239517086986988376506483764164396793617693885056085024474484322048668570103049928685459881292762081085485561493607158514743592521589006215141301741494343350293375277556950396587780239139497626438169438173978732263385468851873310647890975967065093803573201688017380249374478838211842860935493165849589399842163231351511118595522302428367337302226278531565716746868097017880523445332715427487906966558857887807728106171404777322192210960796235344180592841730792384764742194654364720023477117509815488905907300604520760030143797902943604427870710496477540925457029769166965345835979973792032723256371392931777381776859364611941212065724976513070866300233110602305235600104312432566132539162837594300030968117917132536365002422066903780340565711378626077279179141264446662565082830242367818301333865188703758105972625184954189547021470176631285971907489763093004549414786574106980336374479478253842252177517504305183311882753850760195322308046153491284469400186557975239129289037145441812487754880104766236323400177136165058080789023275979262279079681090771091667480193340813316613856072663659496922471779738308697757762590389694258697425460061099993693234789117851826115975385019069706230074096343106076292100572826976846160226403632750125732483093942530337639996936409628141801837114453427337956792320376526842375927451916492428206718449112891900321049520121919911443641702698551298782860045664724053128186259158244811745219108028262823902303114249447991631664834186362328468935806875144250973515524645411410903146725306992858265237536145467277021140307708989316294196345464964532713645369467163734673669312942201952248395467929390887727648877720803299377093002964218357038287762774425300880287082195570410852779912642359607715036301074966115341088211152230382336439009936625853888007368331828718031533276981024014639900053267640018062232856815074239945821411302525104113926884559477644023518966426684842957950721148739934545294892561956881080958372407944695535776681073294772854136110710538748359316534572970441666249414364296063282598324010950716631521213473312356026516646721692906351779587159095437522377566308887492945719545562651251719567833807647758462008114416765701010234637248895615032375421483744832841207186936368781645021474924101184935228333233422444406467619535853711451951874374182469739796414589663285261663193578339347128357596820870588888852638810088138652941871123300400116327114084600654122959170439989929406283464964098853132454958242071354560872672421669303070076985759765645494521261858094708031715213849454686825896543051548066674242442465545254043598087432645176755877456188731820045353546228117559218245969299011865925917528850189584944938588674321874638389175932049723988979249739841322208983946232497259490997034616618925738834114537035255375325733749940584023802297752984894982405266671784083766169435561029484646893141860249623822133967019306229446248643562002074769811920250304958719222309011916749992466727479342016692033994696571366236425477786867544698506958426944803058580061159405127228043447935977510666656759340098796249315289894669863709414466869774185481455159841945665069236540927873844137176448032173211015233447341278602549823460360868675937285727767076711429586725357402870476667476506197107306171816916406797197021404351446827125598222411996729348494846476978171564774078007433035108124316670276254355813716526445107479162331814719559453389384088888250661414644193300829991667490878924174090112893801135819413350096727861313392129527884725841768806626911509193342002485753257367934880041996970185845385701185982329159944802411567726796682673918920093300679128959084311018360420479099842682531158220882108236520538434347631356484249765168904131904413165554924575243262595637234717880845370011986356184068641999146574289780608121381616360273201936831131620900924004093715997427967820588660515028473796297063834339309076284585187768066966591337786201469188969464445360378755062956916442866093240192247901731725430619829126388220817527234829633980344534818612285807026758376622994421084799937617779880683083422278034691855398798078894224432346185314842547821542063837712330264033395571612755933226921877035522723064130626799890387555650063319844410293910807107701319893257424156645759069707662518646015019063369716853598597102571803207551132700249455210632723953763950226354844635879034738169176206979534157716201822679459206808421644827756627334400791261363260182170974113408498902795259829471192460381652821561649267286903952436447524581559378736804504410964218191425608799372005217402359352268798202051603430034106709052603702927584883136803718205898269992281086762136528074009562055667178746358590719435481240685502061699610503973604266203541086093780811930199517828954187359366116739127839544463626139300918595278749548429358958459490759606405947416154160245569956880173114080231864378883910536979634229962982085238563986517908558513419625572031068109536009226431238806039249373296895127334419223126095170027295015679734036443886946951242540320222702082464730031288905781442543440473683835523966484563380902046311162317829674542802098848156808084535968131862004499221419685303781561739233879705865530799401975028989335104838276388006324948828221981887785597037545043704781424357821643609957933166182236826639548588034565284526733594081202266815838817296796436276591094626956729475242070088596901586730124738082562696065383947024091397960723111191609246735209686747467860620245887362236296045140375235307185883129459058896859892316339340764058118861927462806433050869684781659535350944598280919984933029009532903208859878944215362038759540098937782666173669281747746190974681784551741909458927236229706046150789951573635086795076101536749479343129304609069690013925538698756912897141066986406824156497198881087511033298700189936684381323771616101113856987824035345886159773327690735318373520449804358043707266589934965596371846052449101153330860595251617670062394030996467766203782944060554381380054064881924895825620225727192566369712498793346436876841639176324887253887260933353751021054339246314764646592376108329374475433753824495421087258592032217961618953231430308131018217928419028046872074727498674780138234322892626946678365743999273193074825861587529784615691088782441927998835112417094491354235135212438631934414420514212178381896002735736507811268495696585064929155170160792964808977853675848720399152267311106043759927132564920319314772161917670318119253092733294225701264611499295375226160421020562793225874810626884140203731965899788958923105301032190825156410606073513158243180892677703632077239596664816665515724544784242465630842665063417826503795926583432741058079244545657157501882130956733461244476470384257155829788305444392751575449159759364648496528483194928530239398523513964790210798533573523637201848380692914206507198827009560630869905804304753983225816263924351752049520365062662933813417937069310283855493477591769497080341004325416172818366245007586998942803860398223309106033767152601175430842992236859055491323481659008370531095769359248950603417502524338535613450481700110173744877242538480430250402556573101438600676349247883271934357820939756211211680278668145023410154461099097597522601114905403548546962460206163542361351634207545696793465294535749377302173715832690868591256416735683909355551583258152964938325407370116528827280152825697470261632942719127593514317705853022258459853137864293708031248967712642363455878658634530601626331769225656958464998060260969381470232383842865491958065588646041630136149226907909127487288279317670931231594416840390821818779718807140442897811921258242127791647382957601064508236591806747722004735761031282881206144734369080933922777331603144509805797472901393595180599935825302582654215218101882391538710479274838295184746998902794410189865529840170020499968256234916161938962681909800549934236416468997217057113432195886589909454865186220986808902064672466384000924273550237468882905301372875954769132361942775743720231129094864880281129366107649140828271971920676498357972124302935815989199705775550623819513075561536068898630019001597544987208969454751449388089864306205139151419179059576210342130008628945906357829180768466844696509972369745554408470315255412164175129782051494345356844456679841224820426662880926196329130623164865450224772055486289972786541886379473398808085701800918559411479135781230722457273326294795823530545307382197844207686348101545501938297970583110067701793309755779094336532501609016661040556565325434292998928802399417373114495675745155115720664723171248070665015861707244773790925310873858038892690335396625874303201072395416052021486164147436810543603220888060140055401897827236714402954515354472245264525828942872820596158513758044424587421052426349996884417157308175804269751840970033099323528799389946877325810928950085012505657800112139269006908118251048080059022696616519001193615778526046873817744259375081465320207044391923041190578740647192987997437245364131297179956053606272401069308951396651328637594516617775272035834613527822410938084608832747744518965084144792513562889432925024257509054483786014626631253288176677410211249853467659566722601127271593756463205793026612175879260615545165893681389214406034863823191984081317575743396338144652038862280844289887637944645551349681284294477473524613589651582595678909833355271454344946777787828666142527734374997779114637922148013722448508723471922175953429453052208124230004924047096017454121710890050930864483495986471893546343267743961001845582798110715394222550257206160133807786343447792343887545656012352781822563453845373313020320129823517133896635236898538154933811564738738989314286991584444724243729731745091988697554068204938076104694454981615533457185654716585102293023250040540893528561780694669030129844959663884754119902067183044149404874440208183317960005316741119261239729977625836614884367359204195868587398405336492305278874618354117065066597458705034538012951238647286123151507848457018411940929483798279154173818508127139471607629725994794917290445835480458371505484317988028991725033179812920106847262252117502097216615470003708424598499449314489854850090009068707410426246501609677727779575503647168261534640553260875495953913375775581712452593868745544874060586975134541279402747552518950872278733546725417122954050167484596851886189312267773106881120654242175985352440423825881354259621879828321381358225185445743178844052015131136547577404435796119429647180227771027669039688149369042166603461322541838569812798096138554909991648968838803501023214201029864893560213448264191059034818407380460887394673389181940193459739587024289367769582958895775954909323134512365994882719710282524956379467064768434608380561555732844736549924605402731142793777609858205024892152887127636524163339125604028714798359289522058055782893527702227437416114631821186872093118968257051603971504246449492864937235620830041620084145990206369534197722389994805669872151102223929860316014085012505322483014533105696299610284116488204045629951573469328178782634474659385068776973218790501339461620080830733316147363331729418931008316506448914286514270191016256369221409638997632403958005946581612139664923689114052388526325740825752594492959669750503391043734723106333646654865259278014814166160119498101693055506530668048215958364493049454578098878808662999878856188071198464515296748464527876438408868711445275678079356329319994638336460674077673513383625746677317069431506076372606945813794138455270789618395818156549008532820615905019117255227911798441873616670708896780995264349761561524419827840481969055044500157302103855657138359252844762775993641843121389473218731698377573595390317641194856470580039734224732416404148950783665753708533808337416776071195579025765127479358576792837603575132971825523255290648161158672914681857112605178891785630935155702337003638849035897179200621820548397047859503181478722552386218425549986923228690229345389420055086305867626118262944555613997867223930349572371824359252775559940813492023125486091846132251481189223948137558532680524356546417647392640265970630466656668539049013923771966628407500427588941080121165509464711447632491515981528434936466920852783692560747420404613149483205177550325116334974012493918719419178730050147303143572940000080379080251149009406240563910038972669070159942895651166338827302817286036173259080926867821153915211834682186631134970256735700805705154912322875645907320435150680792010765367547811594140140313169806278738115650770700569623893350382741447492135117793502246923602451746125364048720274490958434205689810576752242293986650358906774567317397980395295723783382393471901614186252862816127977758393681839880467847996201590608698197485576347461593584886400715195875220974583400433950057905953216441055900001118701798832444929637002031425259831551934372858599850385228547986644869895360082548625916108513974437953525426944494807244434387118900391521148792375360484378527531537712011658872929297001911555332423681225966857479102855132295835254257637698901138061233142496489306171731258569728252872551134076147110031300116213686049634989092611541768339343622965951293249641197436194377338605596475422845502249975062483667674847578033905213707173647814858712617356504556969789933219565307419729056097986445548810194030484870837493174560426150208727242315701817097875938867807602630701078109629456812110102264605447928577503962454984578381786904934179340358588713656572496977551702269290485296184228563435674062941703550658755322582383517575417189374023307946724144647394139944967049190127096533815787942627960166429121902109859661116704787404018820163463265972602836294360191200432914497991896528141194644309757283029075612046590461043921735506329202170704988500525621097778046612851575679073960514692153652793295371376615878419242711087276545839082158259245205737775267210309468828387928461412417612505855706302868008637227856320652862624001098352485886305712734966896015972914763436002117363169660000957514401264810054806842614521528768876925346858477200572982660100175935935342754231818351170582226791972929771612803814951972590587800753648011674847908162694771752091502965725217703093026835389322845548446734109551526546511117150073603102916027500463539445144557151979640981633773882330837103668409159070427058331821738534088401540988469922886208235250205122317293843948701970226726698273237992468989456715356927179886128152980999052028074899292556962881648514522421109260207657656798409387890662245483591037511526627422397383851018280527277714494282596722985030383838017401835289782277418304823183268061422154278937793963384759326131988615936142807035823937850327684440747442935135770238495039659977628014049725230390057494902907921298237248905093355045420185152656194988808758675863804836639749723747240375486621108368767660602494064421791628515336660912637936514024857226320458527771986533352104983299029094378395913000214086088270392382051760380177874608045821301429700366531857386437765044241460344897314773239124527241772641545681095877299075163605886488756714305470600130956621890417493615497246188617429172458809620479225220339071436163189319433270741670408304310211983179634187551624379755174021394695009016523662351522912215523605931959895187351931688866769655177370380533958234957397810862228937163456870178311424802104692040804532600248400045620645791072322530309471550704452848262599836942228228341530462554602613484691071200195661148400375426288891432335540183380500582015386788695968914053314109213345325727046350327375632324359464263334121560830892691233885702822154725191662646963641901678164849259611141301185789874723576846434834359671536490984331442542188436277952287321833378126463405775579585198661435266353898517072183024310086814469304112398552454697594686559880373499486105185068412783115123750763664146071878143733287003101179678325505243305313378342713164265814507816751268311649579875165735042576910885219518596599694175482602113403675822388253513650751460334755284643878615851609558666349357630706126986660763712843934252839628425890570829084780719147940155089415419486765311137646033752044552012228920349946994491421235408893809407976626511738818413417998261707719510714100219823217140075091196699115603963196987120839511124449949412646081959993170040878370588772272345307848588064015170370941958844514432674094886737805846965841090516997083323993101855978620758964915642471599227262448534954009941520530827237249460651047132513968547125100904396256299750721946201562988617252072692631145633863785205232949464213266144080713601117657044926112165609262478125408640905582544365235713554702476004550141795407364047206581105468590223353577736548460155783867260835534016173354294702924065276992028668422858759849472477474887555763593893732936912011971462075778520500847835448088473704391989103912243295825709851738966613311551993491537318967497051536059142449270186599599273000590003238117504066792774631346763380472236480532612607685868808990715095596728598767896222497774456310955634035622215582826370902658373178109646610134363008582616527329679018482058057962135842421030410537769755761417269178990785871049772461369680800649496650289899530572547023935773765577245872026133577418358050549053350469339357209704963619212068977260893154021103260497956330988217406626752843555447479643078229786572734554172868245324234582641540770229209015830221854511388319512571573418270648830600612314567867631363492582765096050500662752933516644996447373530558620201261447254233713509482395197625046810670881054145439278427347563192677474085003470016137045069262613915063685264434779542578691790160212705172237044689081007249960738781310306726400865651635655323487223760337258720052074949177583582515275299242491265719570450172941762366652037053873932077696529120817579102709454880256117996623077118911504811845976312227619258767428771688283061889073954252162772422690312908906236929770181335810152384878841891305662027268121638402733794069452761061132235480484381000709809232631364243165969188751148533569280007415179697114565718834599938440638513978700223090038086554363615792720210302302136421329557915235960057116580075393715770885551437092227783150816633345776542791928851448060944751029770865369121929584357711355502922215191702862686032638632533684648148515883053637055930593636575368258280141641375447463959250382065446154491047164877412723204019554178344040497610580539586455281704279617653517859981651514606324517383252748334739614394799020841739796902484952185513602729343073710626771545986838270693698984984664218962585380215439854008280638249295087776652202792965579237458761929811771979302891520963826429947349684437254838681223860705923595858995202593133586066771649205007669740066762059872626874539774018063479087705085474760669942252187430238961230210588365694024812882138646972015865189973364355297645247074943257638124325988312653513142335721904494926639409465116163663239232861583839048963131906154880599271384366798729693854968907791580841552226817281014318058504422379199390227941721561518563648579207937618088972222457771066819688173904693238135966642834500849786106167703876045122293425795926839864875856772206836266227304394903802949798338291293014953161271546661363219119238162521230924048559558837458242762514626723777926586417676043136973143691010649793996101852703562681580430687861353457603849553543217439920209121137305117099730885913305062835733150623365499349739704239031926693735246418737327623248619493584927053169561758169094378186919140932962820032108725562606487344401659847063134444444831069459617324095882776921787163584846190160110465658225271409680912088275889888229646367588587508227099108786283324693032402847812289742992446643335512961764207804017854200985459944621270106183144324105246296021904413016398241981779888547839052296638102083955383634792514319761845483128282813621131296656389335562822029279549693383050173608328436518293892038154156315401694749404010670848416845637441479371610443426817382338095533220736396696408468974261604421752530910194393400771460507609226305702155588312004137841045334714644363272766197381841921877879726300576218775051643051548264318526736445783042332720723460311198422582760996582185125041000792947441966652956969845883526112616490765100830721552556746711541085990633817339037242470418753417555393623961196718427412277424236067389263554292484470428065622022881859514884132422605344243439924608983943006760507953699493395236828500057526638858847942896767606570612583458226901589621555465879737464164126978813088256488743780403011799767375486498565961493661625164779038089730696040907395002959170692211999566433642539237810004889612109282773614352637960741986299137230764532003230618210557819894587470667942197644969073649779080334235606556798720669848715028177592926696535012304399263471259040541636031450131559071042703020777724122782911554577751384498152534711880807533045454166828354050394695794410028497991536479602080928205438785218196626587094822694404091769469721366579653641209107357486488590902043747682928948536080699087663922988239862835141117847436407665157812574481856260342632913003421069190844761654804711602274654370055929133079587500664303155893228332796556639172735555971565641158977951913873282115680097002442210398998436819132589589932121748949245727811424812159146394795576533561084798883683523982248292614306044498549989871410165800535072858593269996386739418040429396183996609622803178909161299078950624546788862919711419551236508550616643872422670806641541011648407918680866946384611967557799454199855979095417374722323416453981730870836630662731936932187714688568826378920804779923550823632136587586183990533260591851246600861784020963423017188585012208403797110148140000706307075316445673284849381246562296196498676056915154781006920943236889150117288514991231589328582166803982742405007016460126739466561032269841058530730376444465034128470537670570319861259626838701791699238955584228527270458697954716750529200607441048468075917003984934575723266414085971431008084919174330530801620064516448929191665517438085406183373751796983416340536417988620839602383997407351826644820924429239398994530404861275574176378628967372632684880814469687980134746250267097774901891998736652715144365728833572278498677681614622910847386043495585981829587754303977404293120177192644873207683838326884293343700846201344092793392328664594717662477905232759619575115054594249822048544772806590450352112298559859329670046969609835655206989569109004811151097829394062568045552270313248996163589470695305085293235872186387797093905676622433555018550501028717336243188370141977387761645876501480372805550624378054741895513682896566694125010424592393888271355332817697327088544438264793272698932515230794752700643330244801799279227677140202523489657338189610341641976492684952931375826597543453376111886055939570082610298318440954235658479597589449413690023106714417661907326686293077164703702739334256694009271721787937803527236775389405433638214631272397753091463252779265958595083080741155119635971438937317445891360981092061724026847913259169856849496246858532429049101794688587940758724874165402355554301412693073196610961604259673932531299160894385268720548684175687698845827883972098126594061872177658744626589701831108247842958301697994830899897523921659472931017327673500611709691315682718610695264531997629332490107171207635486801875828898106252768866707782639220934476173321769706310920619731246447136116060990963575639754529058320567548253410462147435694804261471809502508467624517914223058092223557295949120742669340097810398369404485553004956618202415439147342470167516665676802988020674430888856818571688265230010923006750165911285175535349929894076054890466699783771951555318414171167888748954487767201745192573549375828291398860146269150194804618175807169963065049919157103829775708146465951266876540949179178497559044091283145392753910974111293474905273728842444736244640242915956539075273011797917662948864287233974046149647584773807466692546103042847990439628317553643973925954974387089310054208075827347322021167546904609223439631468400553160393138263531813754674611356270473040966331961164806065109947551601303743027510788575360640495292540132743874485866099106600783380235968909542778272492741582275577535985591961029085418664665325215786204182464019900041723838087809632331134651124219993006943651931332520537652324835262938857530493366906864806944019388562905986351230144112565801252740536550325825257736256770017007614582170504594051703398186304287048280244642034010041990107750034158218477995328347066913857783509697425643384726530011872506347036182152215220035069283583001274624029473997864485681762857663833417262548939178012372645394274899273184993934886597550381913893990984997717641265185918887640340666611397903582030335503524038153888958479081330038622996157454736343459287983927821906427401224015977483473946346664924181627354095762398004443515603876473415446322532648108443717451589087947633856914794215700833384386618990203205922242303730380936237127585524968800278250282777563683449081866910426891519077437730341029657571035458235417729958165117431282791873934098725428782249620048134469596398016350837836997440846566222864457173157185384763413199813476875763679282219252170152624062183637943045217086621185108924147848858498751808791545278895561626527090481205677917335567569357093709236134459547767877113665729254200172963344265895512926743048061708563653789149661602610992115788717574438665798280119773031538153685678537497700200714434473527281078033508314544191408191481390943476904688932523901957985297942749867321027229339348332339114225921597972780289985087866653110743918831287646004714116284303891640422417898735324756091150393239833739088426360663203934334734330070007462329880664333605843340734788641573827984086044409568212033988414175036775515929115251342223219139100826950093205468037744540111690046133388425846856897642589146669356453667128830161691909356687028848837783089103891419517081233000224236603791911399499641892344174961355078526069435173206346651705237322755209789711881375907909422530787933022108416372894497762652886903002593949904176905832223605569444931890810127716914975123676564814513387430574816253792884891555344023570459917438360556247962139756463511707653171800072067700082740577525525272123393690586424340403739296574407542643857485466600694609607498117856310086746896051219455860118636312113088047033859568342021418110277692055144299222574864188185891680221647002432023978316687177610640243735718385056007027126596014204892626583065494889862265518805030559171151877413533438981731200526022665760007399566390091509004286231498245913408905034268279049522592496944971391131240463367807201466558288938670872618195153570722753203544953588469882770963541977010050403015018882128217406210869092834359594134178074451960517589607823691068233831814240149873761068162903807307660833516779237755295005477785549971072790797486751721163241036298315800794553474111666232384726260200830101731735365977585562398959396948360674209602954820575294114504374504019396625140248733110416587377987978732109858907674568683605440267127493014931322216662985172429799092421698408525406152088898417458028446224747159267682214863819935319853843789714358743676612840384019702860211169715776614750905433880582257670699033390764972839705848725172363944245459548423981643916723496269245685329840457297302619884643606370459746794913716617126708479591868461286967186576937022610132341962360783215097184180739809365936167754645635546019325229594080424718914214429576382561984153054626410093973314971266746470689624443091862642104737141994415123405344657257653262852307022948836429312580030380139999308632129002662372530545053753587579560562700757260809237526047869576558950308096716347433007073291265948798030358768075160884097696627463819548443148775515479154192112890185591164617854975633697121964722363383090127764279533193568116771733301234314003254501847807927694821905784353772917188513787332955598407958161760170699384335290379761162087483631870247905328225284325692532423523806482905293754736178982070537561952299048919551624624556696662772112526134015822104600444923725789196489998865318359922146890135813217342712104161917411878797240176099301660988675840050516254898539907320976143611387952604235444186318362402826711787029778263789352127764471636612902382055342320408927183946648886358366937638970769049059930270109208818184393135182554551370586074425574006496165555182270762807893409998273492262305110482682468572069423631287117009191625369143974046415269126054268899674316777177396974075548701896090309185613469530912327617915999637495559094796384350083361562080396897835298253839298533288085365409456786232485667761335120280661248230820235720651531349305932939004685822039630373110161261478920853465251137503311105010235285315498763681751224088880786328416244374741854648598087750933081299580974286765069235147866197115609492307440114502891532867405300125386495452167700900224302934587937003076761145982719859843772926735341175454545886167771663904548122678547899442536064793057456470444406883604714254240217996323192370676434986090610309853466461586437361544320493205109388061537316245290109108963032515807144777960350856363260327668951347417671095042890577282058904043101125370562925914900136782024207826639751295420947940596195470158127220786176003357465669033233431354027768817283755357098775439099108727841647104911485906322568100128334245168294729265319495863637262984385418282466886284739087817519976438113802406757054011250720051380786078791055243230051953557004636249231480373711685555617397827961806718700699658572202439892242935061369892081260812574350740809803146971237669703666410801591753713977082767587063187524435594363900108870737649692638691888498787583152353882323784872479216658100757946073761471230353234420224080289821071144813438670635423582663135784891704781859101335574661284090665120921280527946626712383158018320446139663805440622654054823090404617747264156211767937091187204038344970704319540973722813741253271413425347585559873661206837813215310247919202103268172129728410957438714282257559130867327905955555349617045741998274219173286267032195997719502707435904855533121898879502370941883109311468708783126684606619603382376928255401888906116510596590673721488439027175334770654361602172222082313373420304670584969652094396212882336024798480117656918928430465215775991748621854629546307136928722095985381155311504081692289985907003456089322540751814476941536454016286083715693149509406075130347864089394276210358097539323877112513431687086180612528975318776917097116002334050516134617315290846449139466212746639095979405423755556858452187754579650257992285275790139903172378819163154969289281453930466202294061138607767316844678054272356961715111245645217192521753941453112792534957194763472235083295096415085631782008467683148914720129588626444992422359133833498588258260302601503680767765996806073688441778630518867385265120745807142439979284570058358415164835070581817031522141667298163513349314106227650241034954786611578075420194686430852406203945514712300265163412813486626704377909019153391865742336721915920052132938982678997389013499526400947958073085543666680542104941997303606605444023070856761523278712849321820693388742078996576823403169179887293507407970380093417353653749034324238074623109619362251940073180511881668431413335625929448916953550165518086300832359317206652453695743936295817813634721034480632958081605535261827717408866165243672545833893898531432939501100180750386049318028116880218460679015861071299844711087881594052663510558145739345493880359392147517683164581990700784786810947442313737590003005659705903589058545817923508141128136779504870257846439067389295180689131028143844683751119268653076785287243083085021779325227635670960466031930794829598084592194981165415966225991803495692765691592316465555396985948224444741716843984868390357683006865868305397903860495219229585046694766819448943586745890687414258469908677306562729441352464638221358312269829178995857259385488981161153247719162430055475630463241301666006335721148372649038599730099515282841333087308410089413316438503604042151631636758746163132628295377599838557721601832242984221030545889605193535675049424396875742461725279924039133478976334277661270570624294330664844665148070604283602083353046714764842119004230589172444499500218664253634281051435292900147877700484086042674974415825881666634478551490616828678035453483353152184702043826856196183798058415018935461045567405029014728781316786689757794741211373778392693380045048220236906035370436112824541138380841621385139931407573389107050251008547473403127850608375541490870284679601201934464827510683201221556446222027296242830512454657543653248290028364936340279524939933328403096802505893997004238479572241753823368409273308942866421863250938885296616023658927201437931975552560085309741837857664268642343670459751454392373227353628783671614608045686529025426134778705200803013999053307425407539658672608983793027027647440555389429682147896665306247535577931055645277636665839189906280955608876441074698928676494197350949463401266377792809063354925226986082502297254296196887207373218417401783418439777608928330836433817622344774171183049101673057406434180790558111131115354115138172636814949715371722899425025371011388028715965517588454644777961648547266348794592556740610046706150186631801041536663583973244995520871140853542529156873693277903733657865087110870500865211838962811696036983902094251785379073248009737532777237395593376289817138742076642160602282643786682293399798804651132259420621124978665697793460975716638659161449226613509873949305849705842443422436489262145734861760080889715632840847986617193916989283154212573786875674336532294398789007340062676053067334056661947578157715636978865312672957054664888799431370040621864901412155380377343257019997734486587001709829171255996641181982514897261069171661529442382027980558030622175516066559557047100249688972044621431175723598056966779409236606515540119479709331683941874296412039517378040541286374722763202924813267664857474144820672641893395504702275613330586796758454333030853219121594115364207077104902072274138260985333052120569897778114392894318839724774980608160294626520251108211572095530569745814818574367015905231727403191228920913570051175425284542977348969804261248152249271969712068597764961242668796602565746042791658199262025523983332790619019697316978806065306777878821912443814772344813903257787669238342259416015974796482123477587036999536903293918056694412835474944024432354692963514013560782081447574005053020584422109763324674940282121604169009082019525673736444543650004138228805115657225438858715497813197838065646593432988067869501537349566339904771304952044640708115800585023833372849565222349169848365616979325937084057234406067312272344202781948589889149784268345594673695095388086310577906851063200052866831444347870895159674848211031593222972240235044409262091527199819996490594892999664044181260315513844106808177518547830710124029917374527378283918509238152709501546433914368603285008645208762577688949287195371303882892088452024129374892174931421846709419635239271831898104340678898658429282389062580397459520961282964422653377543361909851952560009460738636222875400120324771003435663328676065904602189022751905128168162007231009553483559227641538658669530352553818666104382948081242735899930254035948631944561000617334719079539471975634697002012539111861092660728503308440380312705096654665749263290166902140943557002715792935186619076278460734115678309990011092053885085261628455964898998946474883023534130264614775140609960026149855771209053458354863697276490848518808487081926848544295842837564014903347640503345668336626324094587529270206001033821217641105208026499143998160987964731438428271635635343786632650928698066652114017167726905096162265755409573253226018061464891726961832203920199761240390598854170359494794319835449793377622386420570783037563036635435454631831990102528501431219688141641834043143763359078306147077316629820688307689523843050732684274661648545596095088314074600523243442380677442974486215446176976954827285920971266522733623770751477404426165438900429685911629400260338500640636133377126729837039478378453301989749111259847933858453453193736153818032395778133088219208179669399002929358792714258073979266723631179816662057070540701835178563866523449248115503966817249035170352123318648689611241164794774333860223356013035466043840787839492279301714411154161420244529957976835235255696431165556161277663317381017002974398686932072757650957126654433605171090442971490527655580578299178646097118040446514427229389141196643323507989765601165905549020183803742686770892292203744020401430225238994164175222712670726003151731357271669002884914371687116903645201017446257336432371638951831579811509514803153719335160120413366235372953801852385130777862592166179913485204195066859203881616386428393581775821955046090819522118002301051830017134014643507560749481641592066436854724456689114037536652988170007462182850022391659253594299523644562801331774264987650123461412948116067729901317740794399697405983038036283222472624996670471456607706425249841153178703889603264302393578026759745754481145574381994844661837978370503355153038964285605389852755378591146194608904591073001507856805382005368194337890176698901569656446144011812587652278510619024216525673240324222951117218331891088787319836859502565580922236131428364233030001009154033465932973895794046127406225807707977027674778370373886280398837342996166848575680351793617370240998155014659252261115166260293435394557678769399888385893388613078385921465584877412485112891829989365768556944642139294801409820745082901266231512504958606314426992727830772603893642992288291581456139822710838455408282571010624487848284937649414069682201128353560047447467331493771320169422212379240752768095583877556091886253290683360376100094342455618654775908992361839024717720640821310257461311066473577020217667487621701741826660206522129815666093329270820254007710499171729176186147313308692426237649420941575686712610949373635048635089291800542251914860581948600527780343131308002836312170481670007962336228061106538175631802395753763287694813687612764365991259502608226748035221567483876961790523597621381373227116623993195954363064951325135165014782282695742244789949171010526053818423329622902983159422318354473635883778582572337650479951129480139640658928139250131885450505517185987358363601901884070395007280129203477289079120843645589093752540787599772117274871249801376489144744797012792287468106387052160863979996430533848260969730863257753685595896075717811966830981005271827294996055530548522427164812614958083390174505891508466492047914072861265533771124126043990437939742737465408429093330282212860260820590783874506408105006731605622857905356588308584160817830175183049443444564038346541649032736270298082502506521121533220080970743387433999266330247515047728508181154472039609897489008422656354151464778469596529125342357746493498651504599687760159836753486304540696085114107953572534484703577394182244126598720544687470308241470544764884254554497055443458699111004298906359603081074977366811728694344778936527094520996620909929564984688626994024469637702715371419183159988286784735797547998631871387805360347294843801658390150350182648797052114680302654143740941223873835755502604670004363536851881492517802799403488628867991855639422000462179137807318409322718366295670004643867470977870672018437576772589449462809799884254143326928863458150722657307900494896094010719418549797418397638759434402706011041359719351772198232541898900288540442468621035511240258149304371926414806602156266725710356255245505448741351897493498427804631181590612452984045611352463158103091943632293992847181727183541440522226043357497762208278228349769194791938888558411535333241664090762925286218505325977507529137224710977018329641325635620643100589737533127046862522185675573176769722303458102422210106432088462318894441800683057384588045909991765565020309555791308318299375829308665711978898920999676357190892169950435566565400968866096127494935900173370573323766444950695771860252774909366785694877465778668657801062076711494743557980283368743348646055308086681165895664236383149633867037813047502576026957733666839635712628601835453563739234399199229627249982698875707183821385334233739322489960559394254958710999673392323454625906291889974687096821631038076613061095124052944914822362985285796871489357416877173019426082945016935802963811014505188125521656214602593690878268644409343589087538890316629083445142891233296047117934006947257455463094397423777010514343248268426949118013770012761330199525021078554912276958248592783140545108196606213562011255972703596160615608385567884235406234018724395510496484810759423177109082988493180477088214250729650828130841124748968714762128009881263350135200476761817384716831442673944940166373049427273637334185861491819349829288834921386081332590285040901505202341978509590491867435815499309109728736864415819640810272969963233194875543465823095315888060498697664898357000025142183836699511864669955330033915260040853248295371995345557957290326525364021228230872770213349683921979468277800070185723571787301903779396088161250642241054297704714799320157602852491042362464304124093218253818369167428134286468255774341138582175340375839757406469258773956025877198423293589077995649276722554166865273758613468137246920064320430753559674725501981166075124144246903992689687380563449264579641155938131290142868014139504326751202100362334375409337883980570850706614102571035164636827899165709977862421384345220782860254302838111819019714847757906490807998928264374872602136127574330073848570708045687121645512618297186196226063995196812718454809106792816893905226502216526957471601455904697118270121151420758293944866854796459478923916079598065531715015948206500594477412529062751972202874981335773429418746098007496516631432742448053059260679689679244734666812832251538151732755751050786542555761571173234252927025952206284031340963565905676807720736853528471823302152895871768499867625856355816983004259152563089072360714766279867824577163980691277549283040414050027637984262319853396593955206530654554651696644553697637568930673059457322347031367726188789690994001073090901042724547242802438377202132908508186405984648472053391293824992772409340065634881619893577583066424479208241863787581474253416764482247382343750460944511532424320102322905523009807741912735699892640223542477467084118635575911893369806114576113539197015324682058038738903181187315816402368139874876218698599745107771745014099849096547188030075172546657486624327277006191340658335957164887476816488465980514243624304768963985167201913824534746531041351160075730258350161641277237681656558367860128332831402279115604666248250399818322798443894813030922414799312497704082407966683838021930183180135604831941731597859532447367851697655733786010978124698494724112331051347285953379267484014060396018761248540001096961731117866066876967689155269505768702694166377188366278634663981804124152104347344120635513655520368007191866702278417125077960140476690173973201929251155258851316819357438133718926615621480726999524326465341245425928154377039469013467556578061882037403848558216067126974289750697547217625763384242465898374783626773658874844984401334945948534993284287818861380404556702296045481956038913338047979958690568586140425170137703074342251952094172617456957960005339521966304807709293892370888773543266609334008192418843453376713594236584726097435879459855253799024199185664359448082371532649466231393095445273377310389522188537768773716401796719898126243349484377431005842322942816808458422772008091993274586250874302291647861356512505433851857681081851202112970582833903790142671187486094218844315743169049427931435452176062076122690146832673996221694676611720328781434391289444670974471006042215424751148189630860200052551234112248642595059478572398851249453115097456491029251263052978247188229939343807562641689944181979964238567982629621319634769292584123236749546811215094148198492211052014400024464869181635902895950359603978580955704407598382638710692665433056076804690357398035323509496965301560593727671745878238971459483571686065015962966472830814061447831105034677141067147527890338889375034482111050354850240736857901201231297412393962503414955230658021767149966793259200998217097352708841212315657543485322364130386215261583248443387996775293049319469423984097427796098812953398275239732178351481423667827054435374969093698290581537116672498361224817158831196961376533646590319059757024183136782988091796843673284680720824083714555575024630920657534813792490131486885701293804584747084396757624287870562504277107065343451260242878903139885572086781997423236656451866452283414272915220344491802796433092112921575137507132747853193431721623956753329080336038119181489363011688516201826255849235269766932993194114123324620746090272491620068052125022477438648900850766602301460316166647281216659393783619618676133024325780732345628799984806439538776204720156757153491120976921067482903855882129706656829082706403947137411495990766503994446232097786972124797828939614987789931194810563183150107783102678878924240805318776551001049817220085537565451505230056616385464931699857747461396847299063666087450812128406952559841229975975482144554939121417084688836489087456168321183074448530432545709937049229500321324199847168305038563768960149254853583827558694709641545736618000749401867323912287348758792494089630029065039031401607695196930947641986466882356693609627725500397428516849913035625407532945199553267553271562111900253385498339545332391518151753349016621558011373938420861188513885318239382571299623143330971209419556995736483628886528257453567045780310622331703479655090545122217053933619374392663095236757116192484444080656607270155228406396735277635872697074120192417569267993323484205286150198996383230965197825662358729360956793965639041642016726490405762258970654220688891810166104294025623246331561139667993412293837917051969243070383596572661665033371489122752392783638476628044990036317967504702134288949589257362502074494227607741219753668917395643187013574630762419385453901390227956756251877729028258398127763311656999333142241034856730091950031402498117027837096990507993893480683403867919250020874449925269464191222937842184179956998067035553449392127054213207511244270083835914370668778355825734463535599897020213596925894296145934412524456078012663709200948077726166995316616445271837053273959452654634406987488247678216185163260495412806163489585603200406507912388402492935512393907722442096566658617110978902870448655883977326235172963317809766139729553224855638545719902003196929940471624001133379129515609020196706253092446709249469015921228527467592510183040470135333218950398870826727001907142338666622849844084996786995782713422967874263998630224439536725144402631890513111292736237526881070409623307035987352186788973957418445361695998581986203898160951514851936923773379216164471142466592961237448193564165870046763478112300257990943101339765199254176923751498409508725991939185603759463705576236151623025313202879853002948705549009730034407817824391372656909737040247939412953855058914207007509625292253745065565238757797225581164399664464540200744639576645949965222884626930956893197554938530565431722137877969527724832491494455909648903876084230101083693126126331297269370564465108202417370781285580089895497708652169861948484382622938296379139770171471146058503733856698233564187147957174165713864222978235948245638843172720083262525942173259496380378164886514536593753919437210349233104810408579161490950955268300771592219528229365188471964876113456447199287197888888027971259467804845963210408846977471325207093069462740282767540749969459201177462761279783791720035923560967321181760991081375305621469485958534535067727789904795136303302319000815780644359065137326128815086250183408706601404637728921641261819854202572397192628438430241794106403796139758519332516162903668454392999431844290979916480805173676181417450982148757234968615217071816961210269453449196752274463015431605050655484233079148332663264774725696924904314186068418248903972891305798925648673581269144008643136261987875599322617960713285313581888812269515337810891183147026271970496116708621154979699840966710412454848125405092849306749272889614423539364576455325273137429551432874288565436655104744389247220052478047327772496886636456358113572365525509114627048905323094532315007594593210225332837554461205984434355400697412746123688090401456320074312262865948174405236845603596979320118098453873591110150731851155335718929448587044478668370789591275943116592165821557240418896488966492522323384877375803037559355322139649568591982509906484743450380245910032825354217209739435470463397866944036487000429022099793371141439400405463069179585674147769561822680658296506026516685212580004319125984587998991036014586838484798340039107163557145431018651470521619269950044107140724425959384677478783205448706085047904120776016117149850436582942805365625739009532458975768755761945236730257790690578275151666696259518759078751771188346243888946610705808988353070046986714938048663265019378611566844678130479664538408849727133479316232110174559776936256550437979217350163311532678332796603994433678280302311304158697189316876587309831576705328362474374177812705682066424640115756385072199121475186233204399225974625379152907901574116283915659172988863628423950765652236774798652529976958507134306132363423863409052688095161007246077424710676562995018546888390829583570810724639118443075391477455181442908059075505499357220127393526990004416924004804373859327078805841208508130046218602557507063061167267791655135170376849037543128120324163913721068280427036169883848714247558085092784793692298183962563699642641882522069682592446501602699206947141813254309305405740773114497732435578019938692447765807917922614387153321737644742856878979288134602102956849255281986978180927433899123975968176935826512879596076313826024926376035721098618174655346012359680066014189794746437129466150984391762945142697763192770469922099053420790001249627127062808318016814037216541876252622845715606158351750890726016996647310584216852347066439361866345338507937591263714032564750745182471140917466228039398853112084182564924987534043114055268911905127850204193412524261449661807631684428929993465194237110895323187877619717320485511567295825237942595621970321450853556121223143501361451280197672171692773679445078994177263194243324357956376133419193087865806280139165516193942900517478422941826266683591835575950289987063298698203286641719692678181861365968894112172890087455939579201650714489382658991287108950332572389440468867834536857649420222328565221981780715758621111745666924402239968612045447799142427889919704718671574571721066740696196742863250734314782372668316413023232435924004181357426647404611241718816006186282210352438227888799160694590509355736618157139575327538892149084633712249018559894110060976717114642180104759284149910662603774015358223230528961921689200395222836127253167458392558963016980391399818271357581006206871251987700839790149875734527738447079940166506806266797789764522400878150257544299546194441379376293240485099319501582212177598518869002704940090657166548325122936196278584341520517578011927686525838963537074989126987493210712709038448306760309462001473256387984152608993355924630425566254805692985779846157110733514894369820248977811241427895552366639145608495608083218569959730249448176629369486217923405326181777579682042647194086494923283121435171221335059374162415287124760160616906147811346488850516667861392352651576260829053860844344089198878123413080971846106463209839816755791122573574005750510619192156607134401688108821102271891630710296211578502019459310842440923547884571016126121141359391576489525226956611996266247421704547036846529363168783091381126762507280338518760107457985627830057689527237534081567766912684096668088171639382025906784808551149729173984845318418978627900654465446866118005369120683224397944871582378130581703072547713484768045284102976768544169969921356173583768868619870397928389526430265982999827363202408327363380532030851258661585179211505362055084380512210286225591060200298764625511841216634650823011351164154298111304663462498992664923884498030512037727514517764304403458303031750296574236333254862013802714488234376365956924239451007009684137821305310796797526408730737304263634881503216911762530214055722631714729683958524083882703249936370307660815383167299168961133564502509841878519457237582726487445931852599191786234386009782135546581210912699150863659287671253094138683547752351821427085088653876579179781666745430748363214943407049985856880936686685456663714632942101714874562128112825910696540570528995948198746962471793586640472688923899394124762672575986566682521017655128541239558613277019690082093412846709374344950781678238006645128146392898432465950942783429247815552325204890161410510109025343471866701016567493105252962093468481048118773820935176587425656752114419194315768421873408386388838262419876234055800180580928904427789354725507472081812567385639317359564956903077517065604812750961706788621101762876658173548861659286229293415682292573404451973128988676521816599478733621589898564108682074463018916053019758108673867981362826448993828048496755646205127705545271288949381110978509040446050041304144631764451885633257626843180687683932729006054724679260339484344753327065232110282887393938759869078944181747152739756746493487832670621881842808019444343809317984096094615079011794782081646254157195144300504062387637003424326809068917692727107128511672903536962935149125336107297996271487243082105015771672260524272834364529744791283227030513332780264635878412159265845075112705519048841967438282491822775376271138477073906864809036287624336774372131391321467355415085781649393462146394796458080422052863941339564088128776788580249208797455429612697640275368944058225692512156087942810275502382421061552348533635028758555978672566774388473270525766916633016832847233908932361841535598587563299587729834625497491877368402581175877376833501158461883547474962467293199038455829598514377640561804764642260140543428897837164294082190117224525557231154418636057258379341018178934000423843659449351799397225571387104908680122556123093200410580684982990877854465292230744012497643520793227926043622290579725514351084616249919100443837012487150222127811648624130639919438024848291452697866071053402947551788272281406112128345053624496538642653326914100275574716622993900701920943538052283692205650349667734524124546554591781839432225994337262152401408599425681921761224913569821580100167042046766013564244216966566365648416355050634520459593180044884272669818877391899060347419716070620377665805723181328702467549575801168498252426698859512216613715945657156538736396720708379857315377168766403472804009176928768190464882395211079609862522181133011482957657795594655435082206663615241810730040675286595281208511556763689140304017342798238105136455536846957650213938681866234568033943693280046530450451710979220106796994417088977388112988515387252366199330021383816680518645303558566787114484940463649113177825854814212824264369804292916485868145968189606458794675712655701762936960145515769511298880781724053334181702147269597342427955702429411728596582698036427992880344849103140680227991486397960670132359250333961249999760877216817511578348278168132426188913309667082008034400077907200266412285049544676917270392780349398135773774196897428434986214042999334344293511778133755294073613420164394024270726336018668169468985174410447433411877061071183873173501613837616554601216360002108763974418636692803915787475023743788930469993990923725738897997502461253765945314906490040835154213886023419970822212501338585436173972484003563755433571838655766637109227241501979172499534058621588212380231127374985316583071025239922435551318512940090476120863318878168695616069662479839605513307526479637334870511042306891562967463837249523624609505863564293702031149041947730010420444354753490305435524484877341441880454389404615671187194296232840383857360688136543269964222329012618519168716069239534660424881754363959248868701058448331511594082679772714272508605337110472896277846242114658146945054484507924562946326913547283344560189952717424620748646077486172397759531545074152949204250114393989017964055120365531841614992281084015940802660864316241094406490991655627249170954280536942130729747834468359139320186712497891102728065269025610522083452401903102261173842128659209929021791963304422391375428131816791553051872186340583101174746146870284953468908201811675582610696163571556105573549841701081821876339232730336743510555036490952471217352213376773145283350914187541690834706715962586547747017125581409867304254984047549955534940577135568369862925363184883819524661949682427917776181644203412209128987604094141709672034763765412699297758021261857494066110361011572308440096358068100824132477415749756269770845621683528904236301240088463944354667542808883645191015976346470948072609893123867356909592642772227081297912654087573316051885106696961315826492329165983818498235099289416186472042106024613772725342645665613397904072273108737603248323243210933411945570842866332771950041290681927158633683123303736761234342120453836008778368336376849920412016485393011714947219704457301524848519186805787915041007849099766726196852493334787284621714190417893894372721888688322806528501748656551027749263413572726392138222996647189260721928780063818696157631766501047989372843616427599936213048063093886145338995163723544312482762434129280929250971800166686131751814781733225467107537701103169863511945599471503287854627209858732631805403531215389920462939450212708947076236870879250013086007512901820890999679417712165121081806133907601846068850112529547095673174282519845431388303125204837361787901039736454396916792854105595296604992772191641057950709586430497091605165582160195677538415356815550169820612611408192956434185106589554664603385832197205227402623360840433192457983253155015849003383349552013923663025965298547516203418678339178469226741725803583827204616911434050064474830543501401432394853630942501194235890418579602992777915422009236744712747847079869086323189523862364322326833364489903770855807136697905209984855558483489782025922810174136774336459380700753038489192878513571802142961232037082356345086015034468521869306077009999686507489606853262701623697862813784118969195300638915319095467086006317198797290989357504559818303656463986625299002833983404689011734174619473847717775231592093493425245622484339128278597222164935689931738849924969172116704692596093733669150309883054887656924173277256671588056309884437427273887615425711363907094593225290948339219174947796695419846055356540800254114289778720916360683414607706021670560314966518332394604885274366243463410266048593312083124351604060677444905820283757955992067699519700632462406736308049572527313910369222871810820594116286466544914435127568190781259084743989785440051525774960490665482414371429957758290286154496004565801269475687978391454139241880961113566310383101042626126001977004812932002551422781631503421407461880792990066305909254898872151119627446691052128655505761809879302569181932853137764328504330792375962944959584670730915276915708971697683253128887301557967285412855788558283367657767026894352674753058150926054190349148146530856155298189666010363010189250428784172819201719681261258244416232123365659718537633954308675474432772854288334847183023951377663123550486181337928250815575924354306981730478888970557760659721290174337805957951922122685829543743577862880641283628177541058544804555562046755570352182680872370246580960272674914384367555147727439890576102193371878263169672418560941331757754043760246107942570387427431017299426962668176738247124986688250346218675842239802002080034535965718942412359764020493284992936782455385728779614652311506480953736278802177172654563868479494727462780040288520459101829800766988241594229352919000654341400661358647441940066412763071474844376281135513348815265680200689545246123979658704236145894039412482471104074460929702499361943983906616979523965054374895200455104654602342778312120432312488512225077210100591234627255744210169079023959375067278054712409676691256394894888589922460785427582777785983660919660764383053498455709752139787854364473543543660986265185630538529161126729616576429166977147252640738865612922130573999620440290459969170356839711055823786531850498281352867029977518939213215367511023112141683794560170369681492200649667811374655842738252280210430672990741592770116757272555133470074238450814705967753006070367374397195829820310560261342499285491585920287695369168258810315668681380250005961378073797751034993039595485417997955829786744195316633265954908969580691191158666519302750840860441473702848894328026757549637594828401364685937193944621971844850584265600253723993580473699897618482210489676335514277208431941285378729754610819663393959316802639686946124633138659697152187717314897470888167753638598942700066692425365628592472150365628820661769889122195508874727554088027010808238930162661024363239972528677125044736607125216704179978996106654522939238244971482168188879783237013172264290266937024442068102468746812397126595111184058230843871811437823264494967573983305888638388160036249724320390470878190164465747137524409883824363317581764795555382485294709761924079040241318741723073270825114043345312200727709823374599609036300919503495519891555367494217023355718308393704982506620617955742687053669351182523131613542211791273235474263241944351596652910594483431186416349742205393469635743677225864220443508715830464368624701203662899940242891364311950184948262408927987112712711153058253103676916259105299645669014000327728775918205130516276068436259489143513329513206475032909516824816988680641232190755931376083786381371339246927526189216578788538324956380636720231385347200522969388288729457954870078015954982442631583706316237512285651454002031306282991192381475034175207426704911334881676782058162395182973043983129422521938262759305266661782609226369539360897198266121472182697392513686091638560165259257687094931928200481588222375765102477239682880996222919690888271224558578646208361769836495781240163681676650734574370740184595595273009991887915818710919249244600146928064540134110818067448167257504849143889522017397233649475509600377421190941487939279185290854252345377410856157543370108912895540774421890457567058408305804373276233983703011980647729166707855901954643773175406102864109510938138973584040155787600243709966749668013621915900251105803256228232953727218743284596957003491059757334904508632291454942284613860585153533614659647046198566407486861405834772092432456260980998712037866223442635298961865084635053235724093797107309067140087604221048716635907986293343636652451548014760299287795266675867104220222100238379885873406304841769116062305677731651732671543928522902317490351979375235772345920493686769540249501741064985469997653115297939397830627874407577938777950142782902088412419672561386483365030615258590872624133710969422533900950143650549686218003837813870178700162693237995219384084932154701215690118454830738679539710813463947590791045394024176533284716086280507831383692764400863368305641068853658281210479542639908399995232837315926286151336383542167430765136040986487560258996080978643051703320596555886708380879850196516426148653778727635941604348780209986317627870828838917050926231459110040253041067897887504089747808417642816207023425274083099928147908669964708735184019411824333260519782034842166331469345826899505996895239355800353123285912085447502767637567103847115127441712028101072611595586059447443238468096702161520173112805471133801345868358261768152651462112495173221559672511857090138579933112134370430665110407393046278324505365844404987346867602201250951670470703933279847816051612972741385293592568215065294801659317989713798847433665528589733222824586821709652361914058431106608530635087033214779027365244335004763565892712670732617682722092018712294431692378834282201790322545483009071308481533092880273482481908727572930443812431571320057215843950828866362188926472552608046997110485668164759608554741190011983000367956084248325054700850553992301013703393355085035284778993038015454713573342867442795310753258415976602215333310480507711196273065169503290619943054300256955939871815395237422282777780116246419112017712648332895826556050245203940577285226630878566447757325876084192490315126380126367396892518396935900081373169027583892508351318462623286682555293842933884006447444969404837592616897769889916408192726941582062080041011163359026027666366940582186400353957769136620776429880489316690396582292581181869599561974569182463833777893136019412751168926510156909858314373759897241958399182459889572493750487685183095192037547915099348038658947979769624119308791438839841081744807309651333955503934468194810342990800284029737693146128813106513885007194962179746364692938258721424554760695376851734550753290434128449430002977897520675037606301640486231284696281309597858999237111141533505071740784149500029010561879270565206014330123177026596191726804994788586716369243628945969978069363635681459401560854267680825887496618465549421912495223795146659352620237859946032621826392411661901856904377316242290213293109547933410733927300284820617770797006629335619427259312624981397799123856046727440158735392733970600022955755637144106124187435289787393712297060168733929425690203920200887283072852337282232325681615079737121325642934132703002052578784653189703396134433763935224465476994855549757617221855856577604987117235315415568844328619948194023250842061654464658125657891124937217885686803064136031441219578083610989291328056512818356250128229290163223359042572434644142162825654416604945243958258676650023857015691689193044937173008791024692762490919641153151198759790884012425725640551451266850279534556847364448275275963611664201421819215406065785183081727776319810681047012720108424685096439060619651250996406192157218068725993944079615297963008055056676658621816952216066499238928874440415226628460825146888694630695428010696088202366071751166290713738604936428267809807225420155026121845622007918021222085092223009610977181201740885990711613637217060502191791207984330552346512012141105657043084040856770675351920999766691396063342091676620917328858304480695409782558441580770577893479349156140445917067410924075524915606481336849281582175114179650257252884607105585270028769844645778734036663873160095754567802548845890941252958149077011834396499370160630289980776772165914915161957875728314840685208456689885318042119311113230329897284553785678089911099881792128855148428423467229939053036707554630269789573676113332585676587822969977450622128918879079415486773715457718074196449383125300353817060368243423619206372063335644712518710804073593576320153230875345676152931676721775644675420113987577977808070819166674667201376872212805675248567909559464467949518977043476207784067698891340884806031316431579474626730429408708566815608869426577907623433542980120609785342076549877834033650795737444168293302903322288107215576108433831653531835378589218132810772782201467797886469164877147995753879922569542808405054353980798873048869512812050455037223493253381392063723103120479588970112313577546339611626898273124057565136996265942948360087836440691295017429270760581360431408814770559109407822917746900235571555446718806721878592467075627037076572584764327647685878305436364662125847936133154302416760524594680550383197852387313104172415534413385540472711583000657198452439335607998678564056327672489681086241926152629928878568952442104222970165202269742732586808045825817496898532358982285323784070797740137736146433643099633982371320795175822817160870590686686747261673052086354821972012557060896150205831757104130658454406414682437816049061958046975062373013963733082683598834785608163864792605777598587420023866702997673499167828758570374614878833421589930932923947203788132797663897464744890700687270081029254245432437055497601198532712607548648338956284127910855179059996754295023265721924966469318098728311918359052903853642205464691690251956949256985187066490137867929251902180558923071847981369838221354791038257818558763605756638604463912939827354316206554490272258423235918312173041572267764066432101592469006059646256557467175247291513199623492647373799473980506175218813938466915090037628948904798013273081433900212360311794990097843915946352108767518122791024162040296617741089761064906720342645099200066560518028453990268230716364945262080287645459976675829681187046541982962845537245222169808234900913671336048772486519494125601171796416899688210201166733558930094214882552987779733818241837865798035073495398687098266639959576035836276069705237877396085531124595940017206726869127585622180137119976686470484364236547388888882474507888589871326364358133057680792492094580525882993422243551742595285379343527288599839739517837963756857422335373214348203047490772188904071576570919233631639562498043200516720808007436787314665195044830811119377045575106767630288179293110623181919829951865212080164065098627309422183976790796544633075958162701499654993815245519129130286815087117878986323849643969226906795692902929444425161492352737491181687177616117298455090720814542996337646470135537071193032775241070575641969191540884088253716798101945723643874665182343930439758068904094801141335030475807501788550777385956159676638687755313258632730098240276290289957826283979549733463499245527935200334791685862944907947491120044196264395887792328153727447511495942764090911992184609161182140196750576338597787109107447811828125082397457166162069338561036247579540284274404799512637416137149585604742028792007613246465014562690505741348084004370795980850823427079594727136878192525828957776970873029669194470649298489445894537924409716324813249479000833676431363329040616748757683655773164195294208479539482481661535509877042367801758490022859076112459733660293201111727000554593742729091198112316134125055825621536137774928570276800424799230667049277478820786505235438909725192885508945310837645613530459381755903818592700317032027914524205897086719988828566722093053327199371098422970177228426273871244062867680935845899996082205124022212808905460743298486653945931395302716850547614103127404789298698222394501361088479158217467170681585152180713129981595987165317972589878054377848551203339756008348530878947353316873365998151389625304001878880917564598777655947265158897041431643960376037172396190107875465677838410317802710219780982450725168238037246935612540581297373840891523798563272149232333038601904771564795718647435876920184329886901358378352490674698325231518817345927218946741660138763537552443889049818285269938819483269461700024146083033876265194002270958545420677241794290005031982258107807896626712100653854848577163067003590265465080180990547702220335602497450519452898483781476799234004463951792843948300393819509984216888209000352853152109124386326033652968153980840603437725972751537237417001127024995307837318752776404872092253606595772158330508056824492852538514422383188602096418448631697445826041924327312791283920965094896998270431366107239647487141382822088400311437173719153662475018987890474414404776186159953182474936364530465077206514789884892003803563232146878050894745172936649659003396496522050454666601914260341626061884814188344268844715235276033976503683864794339642412913965959317857003186291353264660544237517050510159860560384825027432407232093205318566837339579626371121084588624918957152354689789849078423473302510195478699078105061257663291713366131287208702478259784301301606087511852986827916898432197031849684325886893120344288118328342532420068506820225539325266220767544122542038634136783715721545632595353471213969665582723248192044159736174694916216482145066312668340647037865628650826474635959500790467571261983934059585550200206928755866100984285453934978067113546336850895438753594563187682194304843537375488781727825362428950150927038102723505204305831967944814759028789975389980565732539700950358545285189903299433289234964688476996943131209636280806800438641172912529223963791314711744625198474730452953370663740817483352317269684943153156445670936248753332811034563888689563785831476361034881156269458058360695582107187249468260285180596146486299873950202392472247720498606959063914395203821165145293162794752811604248427085295781305604785016250223804653220158281400428129660654409939796405223604281818346496723606080019458744451404910158248067418233528030732359481744539509252993729215555061312838148846848494559101902141415697327844903667469998561618767189832254597853286744301554685960082366596002448631939910476012386448946149103629527900203484690050592588132202898449671807557461222413767387139983367123328695779581180215925157960580123778494553150236613201428129755271761489430332704885321752777862256386282873855567249078890562112113164560916292258915643049224726558052489470191135541582888193175461309619519552605157861455348782995944329739185881647081177327401620784023523112203029054972015788448106957775279914632124019943172360141065109868217683767427414874007440333525558920725056635565129042610079514123473302816004273061085215648080070577320195164357588424280563832068538280154891580595405525877047700964186046568202088313328706766504340898530346041175431739057920389958535294718345257137438937316054331579749605763316253253301076493164354324584203963760413783180764100267965445603910328597865021154204458645506244972714697540806122121986397625938033392567743688303294665455526771840225573917380188285735272099654621723585139050281114236274151860677454439877108155904777372269772079308389885044781736167878857324737144159716219664537262213202520471270901283138944074888812004962826843798992313323105811623484201429791346438282522131094273917235205286218550018947274497760677425661566840242768144328146284430033625355523623277075518211559683742526661586717503704563419723730929467094583923488490143548046109580500382168705388961290372589282414819114962709399034185220039314899682936599008875878363661613767906302706186430572161169523554472749109424402441179833015423870303899316801458437048571710892726028481918871974937526698677592791682793681848875301582359841234920631463438784398489209660864220860882322189288492297837723953184093316697599808873215784509923031235422038281579001599009381670849060689943422857110085259958906262091814868476711625075589874176978505144355852772277350353176177847249737287867939945358297491350071840192518353472667589235834536463418964319061133584616440901528064485691491519766423621755079083547162038301237437432313256873224473708114741729767126746902439160211810785545609428457948337188233834198408518768426446029854686919895624244137807786585970306104681242404980311830840326626098645816143951695255600977592923857609199867857653940097049570720029314651962581881329337242400481320885096052453196689207168400350366470570470911079486250899595089264456114407374304206783811878156799710791943020919552079724595656277042766336829141194223976345267500132599444745069907371456557389145397446296389559294002020112297033297308802921106564575279161092104432461573729367277054051425689638202509702408599217161683933783048163493220192148365068283597581196063539541258240423930184037396256161112654128025005064128527206741056363855406712859657216169600441617671776966809938241492204113451501300703806681152402679523877935832962639699382251502977725248628556892001515645426961277319816992107527477755715390388408690946907398245050957532653600428039312160790490639969810370612556051062662296314082685332316752402906036507269770552625660430922811403180498206681974899247032737138454485645759726875086760983104254794689576145460349612426652820732655336385921278267806402060337274190568234367321741780010551066479091296518983359994963932445280988510678487200114595306230210527635727057592013458199192866595626344816896731149286510044453751675121382264255345909812226418102730720670643346223431859268560638202946391507551596151745046874087565053964369787090515342875686226324426202108548955443947421652388479025993710462246355656804715927613356972537494590983562371883778496684892658124295253116327656140445603071562498071177607996227697135879399657075774741739252388564753122319697056069637440304085215125813403083408849919534488735915449648098380164907414958656486896786855631442003632908168272687460201839656312825306798021980835694486166374082416829091648621179353266398344014573806951594274451936534252094243662356307783457480094915096612446241626896819165664832663063775559416187898170261721027855510712443232667434733245206371863968071986340381888913299438287736045358817265590227464643040632067729052521189217296634239957057856669097127814258190942333624652111316898690928158797810703760594278140408318502308628643711564919359340283539637961247614403878770344402239457391952758950134109612429262279192269208207874879410189170044524615303069609966411948916631590340389466320517239869569041725830522268152147341686612094398123747461177829224933744934884321103732354226647398024545748380235819600657424404434125616146339565340707443134300716444208383247448528897524005500469562716656030404608859847153352015028557148171017955600229903371707175435419358451446362243163246069889737722087155690935249946537268314989534774475041945226450683009278985025207080128247081713706929388233785619972530435211369122901821103972882922147417939319711609515068929327850668483444530398031698201099556281598383624409423183612105529921437737283804936473779116825709724354975544871081918455673579945181926858239581622871259649581513695274196219818244127595218070836608643926169542547496027709484470965732075643889707121547088463377903925057811135453300489280045876953227332525026651607983898280541000709855545072089679998848613736785766065134106266603608147361748208540563261485296313670336719151188093604572958856132278943434135884195709940613756596511480043096695315761814695432996281113760930081102106451947578248177630098113811666375423043724821355841367205050715455938842237714980376893868337461555349613069043792489199950749309006777542455807614562289286974574000388120157569269523572503004857411016997731656021071613939622265046360509380048329242122048022152571316493856723453023481947623546094460863761125440682780576270238431111295679468059296745659384693808519336065785107456892229924669750728615568223517362191332330261359026249871911999351402109209316365888500104662571296795718044339237499083662120505574962280311038085179459682281007638017793785904627505897786795014780249561444223713781891069591279975853926416148856483440624336511341319393168419187652851105506076872488368045966343418507727804569969330360386167923317592749042712424376741055309170488190777619246506033362687125501386943758068400448079174445503364580260967134712839146251366559353297388876640271574612398436830848312367383577468706683635391828094190883290013702874438688135351913896215624295138801197921758449113011502873926571969212102608456572262048521743858286991486130863180826157067859016060272831336972490201503626673432227611525246983450804281649469179121827786417897627951572105077727882161735145687597024991735050406144081228370958982622233206951534271759640422334366454175500400525297158017632283467853544630511670289150159966262025250154661815322546072833603116527907807154026596818400467599450174466808054062135244998052250640080477692202757147780546838724089654968016455308160803775396058229208724955739746503588384408071688328069832692554341497207952078198526259399420046870250611016125714938344021866531140332880817588188134089246173471299934497412503409111152592066997473956567663740879396662810196371015610714058257895187174961116488286605467619837568320432581315669268106404793895472815561818025718425219696941933859277280435203453537977714923350202376250191151402370333170921485600521908087572425129385001068977396213695219694465147191129592593226467375859974750750016086741820345980932971107844830947568681252586665338131020702108448798832196595233857394533749863547369825076119472097163048438542180323039937065336509060353687092987600135991404146449543157880462627525950555058944846315115310328624279123995363394657673035762622162225315844440303085998033554847299353750013950094592599463124385761918683910473342220484727236249242029813472367976895241689768956061479481144336787600404707925895195896038850915002562196855738135307602688650931240066500685634389029258603318814750788111665809021082065223829281779187063350965457336549701280294236858826013984887566050696903053971091941413983554785785364443111293586835666909659742781955395886501917701618289558528314921283222557309115587470823473830926015086029326687565897974766644629577907556812576831146943324439861307015058134678531392232356852981027803708940371445532185271384405953342450828632924679779781429482053406016015908228985294092927697643398518134329126779628224299437940888184323459835244561264779391321488048328278364345181419399976133054267827037503680117578039269739699991871884849929881135262768840389794106947701382535424113846902252961068524043410648928140897278577157609673511741806973153417951035876980109206446807065644644794271459652133481518777449035211583569611231224323856151710048328739147717262410472402428457778052339979438940914877775787718515258937961747134825762862033880375439475373903726132302602730488373112179060622817709383943354233021091572305369943525469281304639313462282851360518436097580288137524358949497922120364174271594400750910927441627675762065503899859526298866438217362378855407728542729172919076564823754300700548999584563581657948802068166549971606028180053282501210411815120093825923820750298405323249026717131566057113994406261832159391330061170290336145529318606446721949742659259716578619990437861525844421735983270656240125590798550011599895788598623732818826482959872715456911356673249411777723206262330932198241518207572863461486153605358423678635400626301914177614160576250467161986914724254625176025523434052805432416767505082589158348029530504356564629514566855747167187083583838804666870879576781524993915512606722666165355624150153849955371958316490277346029877902188410770762840017586161943555306376355463379970951159999535108823120831278487534601713332873779841397420278958855598065836393512122054854270183077627130408790048741216331762829445117145646046695153491349518993609748615308117847079789367190548368753499283299163467528422907194043415082779701740648467681374363433472713912536972729781102507547201604247004295864104156017423444831771862489632677648181515044628448081582994277031954608494660646530255874528738156721040342366206664004210098665120237333252796571726840326821549625442273323184078698574423750048695678418747592494717959841335641697746723674434922054313055845417536966921442811199863677238724259010930694323522716914524653450334203849178789774615662702658519447371080954451815549194728256643536620154435353281921366870410371044928057674890147841429191939643208199514854194374004420820711585827360943366887021790244091914612155483898356296800995407794828964253169125235611299169447793721057340891668581710552076353880731027454890537275828306643777081438515937377415730559556793422578301417453073130860055086023491830327652247264010707339463143535990590316088653731057526153250872358066903392663274420316376671544189015306389007510737656098620606369890312898272367442015861636697920085395979451236330108130758002229267735440748724461520755740821101676018027594442221486920669221066962914099108975433917443306450741483764498918099032519056396213880537298277703032427751126250390998116458269550633300152513514167596136282062894128797715756057742564000118047767120013747551830771708280359419822062551035327212802728509728264015423788677162873211040762827461057492273521413363128967258007370968709183790836386090127657438840315277157043669908421572207636115612589165619905098218350167861286155564437240111601442149913523607418110842954922280088662440463671583101051338135160402680965882124209586398304499699519230123974237728319973111650312646448064952449528128261818758536083054580904193100218596191103777895838496060320393123226410966433430712178749428368297469714295462708474501870949897819654982508653149302592593594864980357841391567399756946363697226436778884575219532819434603438813934554034047734252783304740448452604071831199681769823138094251336864458990061462245523846853747530792760555151889359830914769872257917654302133023773945954405647592056608636349747561671966002718833438336055125494547831298026838939140187790418628434552135337601681517856593192266232268438052995809078933432470412854020750651993636731795365423412615617062441839713886463165036325955434955327616988823451615673321853540254058268340819824979590725750191115752339597913291854904641450009196824933197722791582122817400503755179493397697744169010141373099522602369274208189411806572855508429632871074255407211838945030497632581307121262085622577075955908377404110324043312499871071512451272862469642252644974069821653887481498738829297575909529364785681824022982345675195687360086556660509685476464597925121699077521246911083787367190471807003212805459805261329786770328035181487847957196313043119287358183496468611868301256351650941115927489202313212091542824920170915263750293616688092255524798602156354116685778657020286908805796366749440325368620361878134909025393895749899984833219885721121985621423185564738358681007984023567257811515969102429869646840306086980395337757393771525141734258632880735112598206610715322247993017738917780005519808895359188427753275240454699397528507799199847670027738416350057500532982924325297564975671435156844945136010996851469574351603344011580786866843936874293772625944657473884827038010494282350686102160310780048673523467205469512485032445228165356025680530500694535295938145516194691605260306195726443953686842297017517097569037871362013354029528171340994600292281215974622868504925036230659219011423721341251295400831791633972024394633214302390232692323928570614069496616875277811208752657589457580236120106841934416206916453996750700295658825722858599586830744685121953691349527280377407872071134483826718177534358519770454440839109774298534767569293890990363437919652733055080617611493953194555795134304143228004661727937313308437058181638854615989980997838830549205426774935804538381363904842996914585043415155204995410080677396511837780813375094022168855063391573343068495345105130439280741022679331259781492782795927016941629261432335284088266984767472662932146604187373282392785909827508466735369165179128509479405900016129179012485972578349072630239933033095533132591111707143379544491528431263940611366048286287657431955578115267908409538427216221079371689336433345483699055643151062858836172735730834296608047935935565353439244127584814923992686246056815027472847943377703473949545464138382977990553614086154240123944673435302227657796209039537273598165268006407219079688116349142860271694802358387365755917508763738359348451030562298057221839946076312257695076964141060961928713661404375113748488927019962854283952723565769296534105160821157139381513578045181792440692772178346159668939047148946044434945567989717255026896694837798050934318343826493742254877849119638271288585314509722943276858693523672076289789950211291157879925832344370591401198738354237674959861436727141531660284330710554291064060252664558442014996056189758828224027441556841146648380994842944456240122409064420069955392989198448017440857506618065267974836415219647811083293920677722841332104021749100306670824850024011281708605895798907002823782862114469130822360709407722275636027505920459191836713040697041153311352344501513431456927696389758413600505035984614517332094766652937763599321593859293597688032040930266725648749679421150954274206529082853039792035696069207697875207263268036539677110995480605212703684036600300980628040923372810222851875962092506136238718357313390075640000667688751250127917213315888093799489064354301823323470622053456015772794085786574876029010511897585643111353443453762559713715492966939247063673202044535385685219117055931271450632968325175763651805226635919219605859469351092044986309581901520064113135934926315064096584969319269259595238171723266007951611392683071379046865020294534058730921971439035299668005842870573708384222193097024705663493115911091514478172199202172867673858215695608778626215274740844149052337994148212570681685874082158929397494650097660034651701319281769276371626357966825172240955000690753681304979857062198673088285912074040034696195558062092393251048813560955299327845951405775454093510720933561491183976718194996337519613026144903840287879663481923051001312803207147534179731461712483180058620381024839488084345300457313700952496760677091152225032060251746814347762617409502659841935504431630530153413122571260898230806527536624817953767497089092475384744958732241581597781815631385819065466770048123063135334003508361418359822905623792654681801688184906632063812837858796529528727456065240506244014185781449127824668966861534887519185447056028174073669226155005978987390543667592003725686888987872554259600964966177074620686792095904979715049709530819981661514862409166912296662081987279118398267094182220352983773659282893487510590289532565494710635659086288908573130315476333361218161482176309647999261262686400493017151991488450707982638456362709080553773616535235333008055332109004489053248580363944925238986933203656352561528524862342693937493504886711153610206805011954767770515458199073395450424936811790810365096822491428370709121449530271184967413363672580359629220246396957514241465618742630490376091162371646082396835713272787205276117351321706233011884646368219648052646370168888025571809932342825134033874678747507120194283627400376097874439976613502310751371730964984331876700188970654971020163388248591909944973387048241507589754269559707222249394926899040256480138595115538378962609745305313856761850160002934429131609184830195722807049242821516133606378108540098772936513525586814819985683994609992155619636613951229264762539175562729110726130730228337262601977435084907993875053022199299425154143026672367028848204237867131145340416085911369972082678369027837922959728097306726124383583548999831167195288662068316868105785612240342654997828901402831940408403748094893311486439866534966833595165596978992727203543147587023261834643830561955641580732749723446474475574050410870168338521513899435783367049803145909855760910547732924438739135875987779999848377197335628660865716592117065544891489911604102700909300855089574414380391096745246898158557665394752737283437780467509389481162034167043514482544077572551580811058872231032015850203767187642900012760693148426218801143618297751150950743503518929230030669228240552420850442359548290857156469359489463161403118421494318440781472681603898238256681131282925333934041881521544037170883162963759498628112771581763761345546478685026815845540488943225173006218649972541097548201480942801186052191011147909330574919355284247872270615963885006488404137940690140454538272370868250056206817889509790997391050656204099614892644418955088308371977846475697660428204865862058241171386165793042738885834175795455966218520876536736474183965311031246000678242731996434235865314705787970854938645843610481906296885383885172070143005289307432573768868806056624867312662762232868960362768725310184947911975085993157775449083314506830785148302835286293665426595537957429435169426617066342057229507676813724118667734427383725203098175263909552986932213151933775983629297944907115116927308140736674184366359775783168129481871934044626983397293675805264922749045226763297937064354625574343055460763428526554034607249930943503355721380147095482804842497543434357424607702632838808416490867345673782557429859116529643056929356836352508551678314647306570938906321808405544983409815012438897342524245671979431958232365976053586752096012710057273812825532944176439985837625356969677148433504370400591601912065946275242959966868042802345039259566254657641280528399102191750139938425480684387459188655045519611931157681722671903374282389037178539023765770915904315958237424426852003769613130292655557088856434555919464420216539771978760203666149626509154967323252569518539223664164687473693651896737444740273206004497418128768303834716802359814173443428480917003041812859517693123834369653720103322538693405241591338614748706700061038207844010881953324609909777882663085254122267250188323084766172507134359425966813488589357893326919642620947009622863013990891820670754503786652689252934398701444375004617135635643086108591702041292651604018619894884645771421713268066792154138869172085197730231770491502381589973144109882271861044091194662486917577935166595759198220175214473232835458522440404896730056793140789879456778737310907523508965369606937195526661114558844344102690123839177038732475577774834188338155904057958224598175816734200099535456196297861994228463857014449467496502185157834399691982191329259161373309237459254211232068855236616918166956709338166050715582925251436069162096491304400269747553202746264758514223733480946910593430766719088021841818075477515765604475717706703559804939043088743320994123674302486820121635226503841868532758911011618794417098220508462322569447272742526025438362380029068221132240671946670051642724727389876881267119324726751633820044057424494527282724465091949591707709942937332409228385092887558960596755121381556765652292607367380644959614295731761578608175452968709406333623503781611380623158559294767986927508171070540829813125828829156129110351584610048812206907796998862492189321017123445054515075845523138679345102452577254746759278675009092425233199029269157407078592023148012840330853612108316297136982444017928850715991741935665992359822580468699661550940012706727083609070491762620114120859562977046460644976349463407418021621396036679807392536488245443789280349477540261071092852673443125592661107952742737791856890419017148747116260189081168016346350052400671737143283925842039640899056597122304806645025151771519296594184147737551585402707292200191533839923157455382543444433033118856081176544791175363733957067082892470222322729338218287781718749244557095406957731568110610607510455699895300871300614331529517136678583790071173924700424572389307981349675846339059309909449836695437155580449292647942578816192742039987551633051286536129956779242955013542241975094982741688696837514899395109301804982017023381301559958636947883524784713404018668528095264649802768164186076435659946746408515674242312421663425010421406563314599834808488950512857563423898300286902113288369981093298442300462643432069078133270872493206252654426491733469815730352272227094135462868342181777708530104198912434680049651780223792847865073570920693836411598550899423874063440676790837847115382616514110311943668897345378677244317128577955614356382542377587669386379541590073919124078542097971809395221748908584728793668217392570978060221878089111681033319086958985455369564200662746248969260609176943470335676109545357932648865067236563442795968634052902064171544450778972973728283202097107273807071402189928382486509636340367263089976185300304713561687986125486256588401278331940472919495893882043792155210204695360728275058580013955790450344734182047124200782691602988383945418734872120693081374821762337250659374075067816134622251335971427690137710280432370127307303423874416251223616821278254536295674401420537672279028359071417485286084189101965379468175172130436967704358971334823911037373121182743867565435808576057597159731300212264356365719298264157315569563645026379161634077698465898622510849805415423680858620685488393089284412011766266698254312140802319425640123893149330754268934524228257002713806766902670609201258939445562719846237650945595417442100731925599170291936503719444173402243850905972554834713077957759732907606645848784920867529977457621632368334007028571445009728914468053990120701963758365978529025912890669631578603129649741973405975656653220790264285863312315301919167060926848403197338204901944794485625977425438646643342068391458852356401370134297753255820631546826082029167741999918739820826981201981992333668296485735448026569421135875825737904915441928137736578535513194236204632079320101975374407625691394760065564089563068845788945762829465681399123820078579930079416266704546103657187032649283521046150906179251631356500693730533786271903628934294718333212511819602355614596740645594695449056870111169189560633834446265732875106040708372899271636723440881744031310196025156977394270446588733217976210951491713506302871782410543174298967091240446992986797480399087172220808770576857157048097044591935948355932767817609949489697471793978393144183231909177294777617739866263780236376378973916334273354504314569613946100293243742613878358451873581609042643063198514771206141483619868601860680490212065796634437486013594182954079083885002914075501449462955521773836079806861237294014344230329763585745378874186670568133297018147455948861065521762908032135083380926730309973442649426518785686227991504054902341685114054586021149892206069743587869788744402451617977111980847438007133811847571998318362283467425452060731856189026373236036698278535129153933307352549739775303549258959179590144229280504271285387422587354227708864522158404626739853996810007535740731285472200319791866897536192758107665380121603370061032898896051121774893237418340115415323513773681684878160946815052956268327828934106526861250963571472800923908484086391963419940234242546956477034539471297173696984676176704789798469045236058750250746509891906828229139557419964366901815558567097639205252296282900802949329775525265535793840061998312175721427936467213372392299996596698384136080187351746722603829977295417154712753315436822160881191839908213974556618350309700911919903110160511810323306283954417603972550137745040293890133938268659321453647167075810143165379347545488321501599655046013009273094486957092593994809434525186741138553319690900559161416467833652702318706184868353094613201302343432036769837227091536312933532068630088528578128346334709077306974508395528070247610069137022243804395742360738365702850097439949312035669766262617444732248442458801433588953290272735184071026295691038806614996736104888964008241687726454879570541373349437434440697757422020492626167890387185114472104317625321721177034443230506317114094132616407766745479198280374501231238291851728975736167879000161209344207117001459517276557383295643727447143530823106335936953484367034665035081311832537163367933776614817091708569697740317164095639110735475217959796897376714761147112511793076933920422209790585759249342183066058252066689242800545535810773595759459166135227692158520508628274875069878281886232385839369511495836786111561209271052445794984762846400957123907469077298031328943684782304226109614717779957187183215899092796568748568955570562312067744944835657859817773616740027257519859563532882369969043632958603179336434320178317102875388235947887898790709724645276314950861534605232336486642534335010699963339622934941722921491793796089832719563483589568270574830077893671368869947799178773536499162955727380253025419194615730665560620366127015010528373342636690548884395253960868697334476686623730400636683076309748002654921462699104687971471739038734857326674791728569050002096455328121640501876409185239588185382647107915068617615895084510191744619191351202818141010765933455858697480407822668524098638732490905343994009439143071155367052993520140036622978254551032091541759091111457269264976212528353133447280010859549986784683628895042900922362672825346380214808688377783792984319116195731483650878225976918449886565641464643470194129842033510682606663922771557687125584036044036344219615024965817734722784194513934363025796000489599208831458188030033370455725255576147698978000136378125759108201389021345892517498295605580242410213849982175491744743979129635791981603623471449379802319666360498393741196647805407137610004542314267630048747629989783605895135995868325815805370885739385539797029209427144909331884060468678977164887131411420732676764570697483512695367748144987445239462898268789633121515835562904208609769447603903703364108520250346500640575947447890675770079918395881255025905049766416836547642705882991085877383973065592219931638604766142502971322674740227927556417264158374370648919954027742979789735214955454033588450392165109665565899383641824759822923074736014836524653936460788484044061176108078869006931678020934347397043052869157837267656609465858769031100651495744609521881755226690767866902133468483031689132437864202805707852657413728702498755344192945065443267465692763563534995532041134941136629211720421876218478621539895513822063264352208407897072478993346003719106443805680680570920259893304690321397861564860272202503509481547116269578709763493704645244222686070855995466707835889490920681848028019002422808941112687824431845998205415249016872023255442496780268839697703252054299437385740378419801303562123263772978487757177823682762795456338480567179778171903002594960878719896571906492597784627985045554841392740698922962713227943828699870125083109150742514719295245574549307370290095079026819079863327666777449105608445408863422150211307639110737524600065113732592110887431303375359876683763336715348738122010347168198965898636873882259199616717024569838101296617676929862886682678453431352000432898600064446360038678290126873008942339149145575713591448628129754922481847894175260437596308824628081122065515664683023927767047366377080940331710341174810836665463661169530688400260824523246029556763439656422415716966486087082097042828406290394724384101171926039592156605122374707746678822800622725397276713716635204807853806744422814454304561768055454851057961728015870074522171606324202236080805379761210519096242658767035272411005513104349130215808758863560645058191945420084926759272493103919416941014871985671970316289227316994570268713888735017052615909262145847835377565048271509310111342626662110233684693340508811476662864949518995589459058921756742927859505998564937791662627925502949508553694041722430988814315170931280763817748911857940380603683017280953990699263246274320102251412583444956823106262116892474239440609767345157404359307723075344743475837107979385396279981924981106825337242119740950979545544581692255227902758630286113491961118972931057081387756104275407185434677837939291345849058991072969402633111613160603481419840066574603138680372241567535380843085315460292688577499133646710499023418944630300443038661255731841915541600910821944289639270679051410445401702211188594478938675852525747780979283950810662129016105839311364698235982409544898974402537133230689571281248861787550463404186170027748855733988997527104908047715271822559420303971570739263968896503067795054677244904514111468872964994659741864686805514101658884657447683046793769816724019993840746442187940029597035331322696508492664146970663565827745060089674340137219925401678800235977572888824246833796880629587731614539744660220267673767755178989632971879112192173411674241028833699129767312830171959212035764222371532411348365019255712826339309708567192932875721997238844445797432939641007950192601550002712947488470173137105399955138255901824710628158256923553297264811443302776579166846294178206344346553915819675548034637913109189231531713543058316723513466504517870514848779741976083352878985862698099447023054029698152672772729211074402044282367138955834337196514059593462824256408616026517669881550154578486231896581598748270787481348612213405961166885621456559540443459733401741322884188467317063653218520213009262634059786667499027275140397174189216738638920763152804269681243300038676652593212077645480409765465139645906930926782782882542729732677069300082806435548224794982620892944859832625480281216766965096764870440721267380935866540461733236424710010606370038170424189416352589084581866730371664920991910058408978309694622477598050633564190817177120239761826145978464907963235336969733792702847902485453529566266032645847869506338871710375077956508051043791716950470078651774399293058680374459553231545417481888358097817883391319385049967677469476784320738406665827826593407257316983708455149565007943178903563378026942716599119800724453170019717244744074302645016913638362565091295572377973358261511810704943571222638742422577481830398379349623257685592878168319862072232341333243531863501885612672954825384733354800969949110125615819209422111506669517252659830648222149051700764680613722595252484172339919349782959522219884093665976953456545455471184552616057896785055235681249223509118276179574992820638715547691759762903256407680874106640964129720252648130039955586820561111658930795653244220927328257933206522003474806048367366828264202640614436980074677704717420909540432429485891160136683355289864328311731851541624592351600902709668191182682986585437393706433503488853383505073164572846567723760515844136316060545852571713893301920863503872147407678834546426040458384690078079751017138152432787226648890542170583390301280446647568615144306769933966126866286422185066012658218738402822456996802744706151563890162624152691240233522596538915858311958772648740701734611629127824479254135047679682795416247245405435590590685379400153190833644403178859515717854924536138891727015425363310803446744200351667541458250298633579948964911424269875760838326204643351208946575832113492169627168868712017128045876302363427377298541261960549446492484523269726481154640387481106232181496961592289503044423840033827916478754536226083906629680662411409311264571073116613164810922659716462243741081646904031847694673348337117111958720341180833778152881345875461913432247068589850408295520338544892537768798278430179417197022011605278581287974608119167640369938953157161995983043109028246578767801106151015202266427941156381149928575571450928870647432416956800199821473568202697219238242317884785129977184276586098254193036794418848678693650174827230211922979098430793336810656051743228002935378519039220286478220805823139901785760286550869569117846417210671761038342061741872435792023488858726165751160940054392997540995657491424847182334286138973527108395589498208618240581240414990966725161205278560727738286608881395444229819489104148160964791160050986071201731802693072377249785309622254792127976636043406461281722700725215187857837044049467930461229429751562157433422949209094583927705469198835699772916354080621296978124141348484463291655866355915037461646240889648531693451962667632865062112655141325453341458053509739076072800968173003900049176089787066125787076743553447554176104492733328449245016823168471794474580991983384889318342580977149467854814437630741650563414776863600995501952468109889826140586695497916617345833233791843044145640399500585806938829122410172987161012195931383685854799435863679085234268976336633153146019764626096900376416206567770946674831813492527637871371329791825047556331726509516314007054061744545872447954262915419873741347091552533619380762405268105606805317554297300182954719127586349320609964848738041412967861912221318890986508408361982186715432809716133711641616698192279035062801002283876324316243932904641035463094719120383434060654705890528613366974823946973602544070627970433042511741220266602658855152580827698111551417417257948214668253829721752860040955505053196468295242400482906761314609394505071523894386308951477929708102007867367973255363930111692704136319760525831750087709584721827693041772894937616642687382031082121771017502627737308296393609862649231565143896521403239803469597669595398459123530818416485730759894345847423209260325753549109397256486334222352212353422807305004658787113918769959364277745791347475621637668313530315466008824907448891182606979600757444629657072469033969290967216709991249786565783548036694089588296060460299741062630960467568581372623135656119845492563408727390578160537358405251081571235876501917856052425093728761920713532361374493313185770453270737915538650526445703722592159726016824064245552659209046359185143994004811987009466481011486775689767288113920390095076181102139414807789317239502560091656717574679924093536439222676815921749960365964558131968023839436291658175667905137876614803190279101521786768357978603151927651656061542333133957650591650881471116509700116776482104276703565158231751192639670693211351240693284974984256328447341671966747914759088429550597599629439745404690740984064197799673371076295187409767263237691078255794586131135192122525871841221756351906760669827072156223359841816205301725557373563096561335908580813017035673345443970148069564036391246833314646234484795153008088162246103953315977422693029785631480656661005139039763999569953576369226449799742224090984198186396037770513906798774058244939096994764222032623846531297807708536695196875382442754180555356772113593088930538647749460373939219932067747959883966685905431593409931875493967935525875886410840937076977645657305406128079989008667011382777257428742028732684058520814116464715162938295609287400344063551022177558982267515151656647839009265165305256134072486960775674944017946543342754386288022673786782177341601748845088021766287366108171586008757617291222259915196441721438774240950146584835396848177897280596354395024185650213929486954785675644809191012565812776316518398416277302007239439331180732988426276871381749036550790024051624236770557737824175976257772911238269697312902932113295360015886779608650781487203882782196078964956883896558728187259064524163497786319004268434641346268127792017997484641702749904374139351331616052963841102750309549498489337958487111530602949944141730948095576091250090995470543802275911339710333103495231704120204550588806170574024846159464150811840015773450245503236622006121419997695548616645591352797491418639808046346680496022653303133525092407306917731903416220545385619621100952509521568067436682914891167236932183725598875004064763203791502837621969775905210827948712189155742997499773659224602874645341568192696747361448161410212142386370573836218276419466491108271642395796260048378371583698953159303484172685392150406311525708913894741272126369874169957305671863647458214829220412680198737485151424880066000469523866232317286325733751213415309172198071398865595017604334236281384477984442512350922488944454408373783752928404799687330603317327440718206389359807865622620025864070609494081346836586921843318187765768872545414522124659138547558426982358701846933233177392175964494679743135128855142866992652103459759778965135906540876739492430306628254455060087526977335759782056706352908307676182442584733836834624864697237698282619681287918987289633880086385241934394371711816075812602605014204280298583295220436098051191742327330970426246500785164339164173293892773597650866699848676579050111364543648472395000155160013613549239011931640265007307611443768199257652454172297204726268478825223409864545770458286738871954531451301444822818909337256709116658210752198510925914296169146911298950170748117165755213991718314511858663146066291412484031506124590029568110208836861582108705677746319418054458770193835800395754684802609469585226038066629756427773623412624481581071767229305522113313027582632226286469929735216997042328991705189900108431113034121319308013474168875540724728087675308312469066380288390137097445919713126405440726481296049355739261022753917911914341657121860856274409604739920840803360655659911842977493827515191886308742131224542948935725014423620585968653196228502773641235347354996368318087288425442354933742932656803386970998615704612585588752667123475420972222089405810776211526685654003265027337538497673793747791135604192536614642890555414568945321185880125886880300527479009565534371383179951487709494491821446571031591549489090276311806418697502602521158475784009008616249419316576223153594943359101620503779557670944080711064459881093497192108146739998017099081414876001342667086915007884024097241311032744096937823459078995309422366814515948425804555435452398829384511602436753861822460146508593226256480088803262948797836773732776738019778977500684061661841577431896715482200504133419923072673139007266288738707277683328451589370464933386010426211564609628437047911252601720252771905612642857658316255539750549273163018488584972976113384286914521181991092568912728344828940541842365181569137589727034543492385687694795702888816920673474392067294568815308322172355954927771017247753349207096332921702959241308182261568390366744233338594620835744450253823924280284450934444452400015570096962882790856731000940380618124299558018375435020511402993866890142927886368503342911336673777578599164800262762851033999605004782171932812778718899023369163204373209643610553235907106503655324649581706706831487322286900259628279764995497797487640474391723323253996169870806544807256472926741575163913920690886161021990338169351526862015293061019044569503455555612511641335924074842544791011790175532686465252772038381109309320436712576184585903548483600674262372881306882009475287877072998792765784212704840759179151357888600408897137802878552087471666196373443865869487974706140121731613320765030485397301508501948727512120702255159885842460027720923373416038011395241181902610316226446866164154075989250521062861885328026814900244745257447148255162629926004937144507945939959823644427353498825202081899987708658426701974982314138746660560173532508873258211925633301149995657472394117516980014235324504407860158299266375024635832586007635850414819738995642984962302440393538074732408353569663276499405126731399425924703844556964541987912924344852695231616381717759297472633722932630097915201620525217246623058163803234938243150667551709911288478673185055508876282248963662368415871669549332415412726464667127534583650133706545135297852526552077206348239416611495823173650501284534090105806521132496144953516896865070635724631306634319975700520750150516227381262540995256216012778332304625602853164053190609914207645183653502191669596993024082525329349008177654990886770276175672069871659718057803380935668327688188041423828563616632563514378383043218086547426344442094080107953682521922660782033711382642359804037218693886483106406886511070088635478704640936987746598605033065422039439373570944575935997068562869304233659422559889919078832132379278034231899608921706020101016925826961233022738491454352655376219802688125117537790328501292329109233486407861749705772323993671492206240575496671116380797516596821669332603535116284144744473244277522272731797319688211964671698221593759320035945918886832896072366599842336455687261307758768788774014225454202163373042421272233051572565923903880458175104505024969282698923235562801988246714572054809631600014142225277639773637499544390409671039074680402329598014830151601723304656153817840341386176218681765670294718913290827371300726280258365200525036567836684543648246460175004281708375969003988851615675495772395631663289642289561088417022415287093234473457689957578727723832496344650161556808368394825828090921044821547812692006738336104585071751275823271421614361901815817147727782521082836709385337724124389999368403245508944505992957729554732536337788579646825403364952508847727043535179233865839143522421465749105507480793117342255840708749898513833232374120991799333855863202591978921609565245807584554070015497513316243266182804766584314375580128589475412130657641442681437619248539769969791340274889767480111589237388319576073123424990558258952073061552142178471982021517304684214752922242271901677696259175039712744912064949466919708327105265535953778545808812593415542879794262081536792813254008894131863684241840273499819649121288958673898111021284984482779870085088300939412945302612085577445434058217210265490102707230716417823035027893123486392782211903056053706657830801405473994097291621642665293275864755265419060350306155931750712393728166741221910970597941385850966316981274190874616944820477009495508247200605675358919754147694294721834323168760381787614851864772882293930133769114896110100449896968351405249545624893525052451125095435418115720926671307756375615329927901750732679325803033093385116603508769620483434488488447345058900635534311849231583844321014406563278185384382194682175421519910725962690221601842334854092571757166951362043687225731040758952058953091284796546755067025038036090037367452574583693255090014023939898569016057233682185895985479697230696303770206843756187828570711271618752256686845049724326388370967562088992251628362027124716867511444613874831518485503480784640686854011368424230538884072749049150819602532086837691614070454087161308744221225364874973573223327934990872497978527934441469812615082319973756906346262781471791025670526891945908616103897358168614858961259420402853097214768074714514809491450212659761393445306498799112755709285009136153522094976926304925922636113349271676120253968507880143309297528560146751628867606677280081597357508237226687414089546756503722113347268210154434792350960411390782386040810825848677072180770858794537608670846851340366549800886522240438085112265760423742440195233103106921868761294964376922679095836464638795025611417486408270138432049283205063885134851927197063534200775352669279623542484632508453578902029606108347479845708005313197486412835561338000684806742706563946068107867671187979872472118300884813398424699164049180034234343372783970454442393881811452006964955602543643844054936411908415957385162233105180298082030269103451387584305734167921162688154304207782281988598265387094466361498716480726297842009702852875171499052048043254017919074824895320269955964726866842282844765156639818842855392336895358463486652396846417274505338731713892005877548460964842155320242779099937290215536166477696015906499785496498390849627431836658762439948194000234433457492962177097402273529777480407861400058414589461077342701029899012765648558338500927690716547060037545833119729403807087796076641943915848278693166331727656889297527932757946932198672722042949625236623201960457910415088046249804391601274638574990356750330098645178755782071243200532816223173026349965381434124781999894119881570142004291402770411788147694628631058860635256860800275427448664103131754767462675319590357267154112705298207891432215054259025757581817351999655259496886977107187980144632363854262476342846052036092287232329350444060997222026872764949719375726677346083207312239110959294982771818234788230834415855777329652943337469010967172522629707590202589387477623339628133577838652167402694871601768083615280670158009424820354932503587604110769888682192348889456833013392399672707721598566033929078490044846588116033007713734142709115863357231653743362050386458859375407503291817834672317183260956733723846782739702185440092211208827280175430464587442081229420578417860896680703123110059287465935630487192143705493541233564452611721376344282411767930822114882433848158990251958169997579998244303389809202100414018135581691422458661420847178321132715248211046806382151395064906464071900710880929818217642634305770810908089580231616715295306620723817322317822143805509008066316454945902868338313233025183701778303688377445923140294950865305303747618027572904627675585139108769885237952901073692940098809155725194778939201126663348492639292844336406508518749184613820789268719600489242917788929233711753980385820716985651598797822655455804696082390020736322940610313421022818020224782964478622303086840534588238955818791793753854492670863385156608781689578823593847527500521606676037068613786995801295178462761141175590334229976752403895040040976337957300831576967472171252769239789950455526031935764997778735204889841341797496692894743251674209292380061509972994188762480549616484837592760912265070065906103817622268162959929741275121614219744662413117359582012832687560609805864494350841594508150412935767082224464632627763157608625567526391238584123338154060867193571407467607003798646029289910452816343507889236032262653259221794574362760420694137330073609708034320441304652483593893155185247183455706959116471768511316404846248846601089642672900163405459699628885962399553637055414797130847839122258513402492036066491843959806327112326107715520462057051502624206936772363877656159286689453105599364752027148165732163770970706735796270109019243146334801056528328033425534091410941662714548536839745114097703284583258296643531132922789951019815729957584061036668190018087513971443243734826066568031542642248118771165741187510753946429686825599481866680001086279310901376310888634694097831128817167462840030806163261368312873196753999553486766515952415676184208270633830484411617342029827855243644241100023747301357244873385154501907290055564581294796929828219606726488476083495910740195589336001316034691395096997890663731563994864714771741651391272349482781167011692620631676714124792899628956045742398176725650613458227137260925989400631638161294294227154792199382578159946270010501193945254799952232582267813522782265524407474550135881532137067853100025484312420342368783291965061534545675718865449996227552386849093457310616057146146869029848063892626293206483628859658566925883886715692092836074981203644933791728217109892515818473181659649482189203851144337701134768940959137034045508148220164944758342291791576152146865575782696733501871360662599520950870049686425924870231602576557445600436488199680748838703645449601576356649350788356934377436717081725556773942174697151201102317076379786495007843441029227666380420518036714694048324129203039186638762206294480990048564621652102800778537501212865071583201573042835090058833561741423562280718760260363734780546796071853198848860972836545901241718140498861062525930624120203397847665559759656579422543037921837422696980915246032868540379298201786959152198849487231351788071265617109371465494461073929585412409852354095903538836415754617467066012870645788518404340673893137593753674618495934710725440390447014164330053953805678086330234780075804959767640680745114549178612074088723342646892568465219674623301686313706559264608140673684192123879560671178470016998678982945449896061844828367332430986015132896854408701038904583425085819219878654710817432045158875815661472208901094958111909298341153408544154468168123988160436949557563746490262846458773117139325163589374695707466198159994022799160826894168023648004040671752213116343961533669900682466116933376682885007751567570452734371283669050168207351365420486495543379283141942536696430330162844872386534095461999392605818039692340027714315479274890916656935238615731496575935326767439256218142819176196179189478780443756378880563936570840184469244460202265163662057817720724205380047234654272920147828043241970345114266404815115238548737219117732081789894618842428505688266300066800230915419234274797005829152121991443003944450804622759443849931966266249789288533824904263082380410567171383833196884504131355902569519199070683705179881425436973190804643872272262645294897975199272671145809906961709982877764914226395631975012662126780479042162814749193427239910924080933871932898399571967304262009704804428760590784155644726617024218588972997478738122959653576256217294523564754616959707585851706722642673570529744969969086731644360428643844232600774926721103051597401901683691239673835285996267458903888181141878999309862298651067892615505876968551284041336844748566992383219956144339704584954169419216946817520793377381586971164357502384695643458488318563779516163224641485539188676938876720021654651713062796083533609285048533155600289124816436975246114026518384545334944441357187579496357461243852647884890304409835769235499472498605634972128976079104599523019496357452933661951240651128513880827502148159011064681660536543007377175146771048547411545323806728146557289802115418441141211345841187202200000629612989844892159857665498991697779594983274895123654355241927692756474320399124013579511043630625439700122037251110686971529030262137852566754514732586295010876145107537228608403054988148470763005161231960774987923148025029273112210310466310480776465292836580734520712787862263277675300468363675054845680324534016874216807936986848195556130388372549451604476770954645428256068041527305922115488458192646597029098012729183417186101989061623755902949720950168961006901325243276911555487271951319098067268063113466078102678708526162508203633556620148364060775709077828093760827035995190091554248167335533205622780697098572525628873934931943911595830821317971506114151220743391580399063944279035194174398734825895292518245619174826500913867827560176348949747427224786828180033246609944714813819136687932920607660383053610147583289050982004909473205743869636216443018749353781481223401491779774796873705260892095212226442289627713743568068328332395818782955275955741440077534985864225813032935023504895055820203609136269937500290842440912555218307318500489601013982793331794366397051100147178161625193405152170499220494901514256702325429897118292444780379691411899424839083793373171908110118762377375759783893995791915348520847832897462956307940157152140712292963073907378708842900826330718170668207871102606738120690032242309985647649637270743813634296739660686497102975003822948382885897985034072435155051736068096470538590715931561793674358432071923573864585444697650904990223111369657377099996137790933949626355098307014080328362726874543300953131592782365359459347021382751505450911818064993950694548018052692058818912539985113864747971995557656332205587342423420773284732119745952329727520156138176264639872061156288617084097170516781019606110517939485522860556593723958539709657696243350953591696460095048613537337809407948025987780721765468025880301519739621802536328081347434770780537210694362626680456647378047854397919600345241560253256266104124383131108751170141106898244567041075635223931545248290141660743436724901081429795114376464644698325224215192835316501208571287832932059705165444129904066309862346572218290139187566199794613580117792726747024271421611764071777105908083242978158716680786974419010188751991363686696937263469258070675973012218713898213986351679270080232879806068960474459733400923949418927877007431825311170359642686923504384125398593140556996085492342296742051447547188034192851553394057758635515813850259485929062389602544997627095299293128731414167558454537230960560288155199936659134946161853770423754314373275770293777994467357736857730637015574193523613119050992539982438241463678900225155206024383981294635770887745445366559022817976189346051809433687404970133290543223170077141737215186490052139329322347675037043414699455029362526692309712912307786583434855143753253216090301491983779398628195292734231548792506341150312655112777480322829130553326202340118418949182525956684164869631610969184109605138356897540664375985760067209416875884238485429489157385210374055651621415727144294034661176684668439153739175994860114290620261850091576190787385546376768135711470628076337431108506627819289883504996952918309209183550118602282906112752844361640490956979539802731381085865277780831825308820234859204187557852997044407297799567390031940230397117647859369903191943658908282959535193762375218274257392210631802091547974390901672130258392397503922886170302645900567527085168856707983077523589810730548366674626040760980465604151039926809001624394075501472496479608530138791943680547882807880634587746270821124116421320882030084075274122112955452048958549241171503019519549856964923405915901555014123249074006897577606755790095480103083208390786535772320046487602343832535193853053232432870948675197069503031560464218848722490205172600267732818353447989224993997356617805773195557968787939999147487113053147935232929301608136788177600541367306418564146397175694314985798403135632609157715844549360849661236977134233932326836925462405940768446782766725949299309829673076769028121190884808494613062758159400519814384935310747405634057884313619623375840469339919211272620615986571259297019564672087809606212138017950692699457510669667517382650451180886473152827814642142457121155236890486603808884244238570051761850791079540168389842419633754406204138710176624590184456508699405654147100352265769230473177173024421075216124684867218574873368034317535459515362100933808031592301009211315653411297588551849159271622840519054456261223332105459795369906596072006373975533114795808821235596171440036279371772302433516952681259037240445799371505401311083138371382516161726645509214199804234078276969046469376217020466985726054793980216001148124848526350996372279952180494545162644955557243128940689459733113607168533207340034422073564143807839458164992826552615170642220725566552037479266799788906004821076722217087486323104052153178636584734834108026163909773353359670959873307715337540167563310409679085714698943060954816565349549502856912870259219765888358575133581874828070079284627986554785996893295499360516864128173802112776508827227926347326178035604178561089226804571910635868590426768617910870254315085075703183368626186833489225422011307782590776546575745091331889037535360002701597276362028093482996426543594307114391752974378026794358262560755362495255307580820768829982627486692694343398043625670858528961987859835160009768053339486292344497434106678933773470485173246191108420947470170702240274755460107887814645249359102361406014677228622158076734955263701157281476276244753261038317884982477034128454220997324658950610908868817844593838095761060401071966211510292054014986481483074217600359180049737905668103464920933997554027125117993349154359760140995947032872263281114879983422604255924429896086891263675730895960080953603471969769432905099150103860003555856943395786375829290278153376614693970629238280570731461648457491383726249213054976828191905813133293239832692824884036787785988314778502697345418959079605242695465350721629625229778331687000901989122684970151596004569952136829730252526817547706829413384602606522797931500327036683013315069724426084003640569270001246477869814867862096444706349549818419505845987825018164922404376230525051657293916773587488925699988101802896979212330118709582817200404982272796389860571902873087078451375758375601654324378168550504601384461822045558552591465478191826446897941867858200417758099052198962696568478055452734943446085667936715336712093907509786896910371882533394097900468386883724236602769892333354947840442507500573381944100198927663538139927662029934217014898773002028945113448969713466464179744377927574726578470671314480316719117410649247575006374833683035688812800059003437552208305172379168471413784095964549532062857552797581788732558416158556858739395781018068681198606629832738786268248139719470653177733453933861491148318652229072108555308448414703477083972256522947994826654113937715294882705744524310696472341270872917521559816012090018875289907465225471363078997877426071671116482691977561776501882821008381924388477953131950913576173217253286376002276872062247545094231422197419516927531608636501032414622604716971785894735022260571276197522244666540941435471402762090063886795295407921644307459147750024082127898659605923361839717982265153710404536466309940690025208525804362858922159020965012823872681149324407807177503850141700106353705092730800881360941399494685987540537956484199694338661503447253954357685271040450523612572907543138630193779231867593430530850910432356716969669739778224214625967858645271563163390532923754409859259212701031521057406787606690824957689664911532298900997239930772059361260384864187839682238596345783451756652478973398157458491575748369735926082197025900373207976565273588286792041491961789911182741837508581317018535052508999665603440939892302778870625751317677904260880479984414192992679059297114094452891436660498910905590225462609119155669991196413690676294347302222925798507891300106666949371524698413384229461856496951053024957015509870702201278110629539917799777294608983012463280592471317487679690286719594348832004121628546275811484103438540452071553176894371578134989230744587286419929864103000001843334130247616653114364033975124450874718714348171140671375980884342053702726365356750988042732869310013224346397417714049579805069315668869795666607442482120133701230829995871461552104410782437972656053111136578416628051861626456893670908515065635987880492674484884846605661712220755553723289010191751373545545235327836848969314935799944048658552786779313142259197349486915892760489324494999773214362862560971572960057868565408298384093172818444219286363250801808891560766575795634270299243136269055093112487761707522133750482573582577008857000146472297664573818092305359167665485884004111012710221250534175634883491267122647051712926734618834345127505443551874664531472448408595531435202160570177960941688539330169718605428003932991045576120028370764105061563962058804474399421606781419058065076809380410228455086657021072072003375467256856301274052292419723796894221911857650642286675397904515426370769903611030871374666179738243196446593198492385040237098669416941370833120409066110466569886715497094168389060472230563725179867685886456128590838251481367177843424918188727952003064947261284697022208652709640458540849993783215962229242030958950776429934867116520170498730991169488496001716014109138535513454987106749025246895948766571882218141237853129936657496132197450003932102808485674559833659436809961749377031008595488466645075962633571754473237080328449573616872475638268791174358945156747875119374670273063978082842423867369549878193606522976432652381562491314532524485053550341172676803017086383610721833439200250600231314487133653364379250260484342830393871655288369641005746474609329517178351828209136002330115906510421599534560418823281642257498428013132828973209476819392740486142055819232518297723325019395598264161357476850440781105369923159437877607060376637643492232723191800917925703181258035683706987785879937141813735012375420542631999552644641063640975252034604864752211455105467789889379732117128950807461810671118480205379891621784523043541062223409686842843803073079965027282697331006605024146373483026079476937310683118334361151615484534039199342407796626657162576053909719506517982841788965568319302189387636026701872197258418725383585947349032208071336408452709175347723811469386393970826386766333926879018282012633262063453959544932665731579363975679016133395232507241609694378289819237839223129333554899552719945816673679887165329840428458189009537094354406470838101865721715924124632559666599842008347279335001624078932107046055848666820297160619318681867544573109868061918795000907152132918771292714408983324857157067859391420864603312719570784627278247337579354001965623228832375896317419010129297568778960129863716109767173394843371992955790931468237451408216294996858082841518032196480904876667633743572024713724668506635080795241404340221977621083875161362642583275938428330323721556079328570991777434374297862013173141000177679612730886899852117872630382657501591702344204262457422485294109000222939458903477264286794814126574850091123871356403720037619443705547974638963478844720065472542180773802398865965906501236080159837540917404377862854950906179644351491798884865749232935817294437204884222001237932583569125815786534295594627431480523588299583916455457157332047867827112830697780221520692461704381182962632393394424907807839449360849505011964041629904859179383200359213267508028503921671473053457530923874128827110304190563321337712861064793920423363750652631681132456331866259619957317780329566769830885894107850800610995378345062990670665357220225125996474741151337461318894852508117145870313587613418426930012355994169597950769200613553493671255408838079884643527142850532807571812586640430627694072880398983980250598304663744797989080754614673993071756487516410060811574310440843892174253057898692667827742326748023276860031033152363574177031708635469724213224785001650137109925653410127350831826692674990697217196376957158787744144818529968176713356990149570293700743083749724399768740220980536673569770198039003981190418066843640723233292453286018498625968360273135139396138899459070593536972500224897931158202152429442638033425223222871812651972328136258353600191636785075520492205806996056149636097195554304154995839766401689081570056856900102978810055531545021478756884956507405593189920410475461210360891341910304291866858999204141856045396202735093276219305903373171908228323971001098210124283480499063829594680857487693071114436733864601542797324924056584736533513850811145941486703400457800810772600577529776551700275582529191451084231675924763603265576343400364710680207700979135371470042910568993984638363770522388518853317690881372318553522062641500895638976342085246816449137957917017686396525732053278945505672837777849791420448790838964357383571490815355127550070364747053530587106330485482030796763943048412555547037951522285401979041918846457967395513892357696915010187493582335671578985563576570695371791901345812306536391137368294319356713966263314668616048576692358825081876467488535312694729283148680149820437659321827233218024245896210623185951002896702431986794360025926713007968826983452940661162901132966785312092876547465655324149733811305884092347064088388895286670730528463080380710186322758395788642757160913071591216964242149091523474339758006722783372888442659832165126713493809924999987430820464668951532183845376601153706442593514100358878241867544130507892727530009704417356654797566126118249561460164189437808099014714591880641547031912372050026638313726000456390538229764234161591968075240854873079543493131152222995680835240399956258392201260811438658664813823293814735570208324627674116965486162253787679278284729185449453738894484941219853540941562368175873386873480116251015556999866704113811458326225331857301573284918484827030737675724776501064453290370539355837438147622673479404316512949192237454847872788856455466628335475364539307810923533011401218620060146540752175152926558285957442236829938496427621230201332715606002991267575937680013740911952449510272229632377297739824492711043914162423702447767857352164172740109289140081720012084146105367422966029616624892790897916603796002073657352965709491539567441050399870139366879700464656941577585470637090236991253027319025071493565016072862514901213358754445164794969037927812325262637789059741286532733969812282137323783921695237631943401985954405734204800836257716487419629736288210049123216616609810608544206263316065313435616113440768668099047252852017609745675823013012612155165390081629770355403001130132689770183089731729541936939749034687694060831955816583213658355830290788504408675104639089572742852169665792120076852594758666366355257670186944698909209291358473252317364136328940407758239600823043764205382496023723877453630819471653624207356623080237660317047617069687496956465090303050519855424046741268370655983986777749056333673515040452291244195630279211017870214181813663939120401441832339591884864854633629358721111335282340612646107077059015194652157988701537611179870640014629375792876441438177565920819177821113151616931452336087207489463052339565742624067317173978624281786066344456021900215512837087198152768459196470145749089557783229358032334358350709586561188866278078578972368203139708657268449149372383077064088979455114408997123213893348283621314422316844490455181787734238691523789401632735446503790331754768698889362763165656297292408434589427393189777452020031784476305931675949969505761007322445984709409796173990126589815694574713420661341627306645804116997459482002931720022484598408748299936338278723188193559841891649499706479390561025476787578825407288737827456492414677694805456417329890502546877846931778033389488712313869526712623033921327673918674351237117582075072553670304307099741557423012524539431701507048388270241943123689303523363765281907726002997491852102409176388704421561695169338872404127124753265202995226215575089077108356617851419089971354439792880268753804028333888574727246238794213336628978636296226287524923724321848613746921528188436169882134291917266410319059693678949290403490448420002897041417852551095957784609990739859785432230798471742298665346207340331052779780494099470678198568087846591984234859975991567286497872587423480257898314381108043306064006830874184088728244590556498182508590165915873235399336168855359909017495884293393888014516789315332994853549700121199611777293869819707643108525474583928782041227486002009917253004646643988287328830870753142232618706277413562061093010260530251860254301777403514199539868493259470371741737091320366434739320289570396673373313433765047877443343230564439941763111121194818229432021115392108260010221823221921087688562534622396302990059349680565887689188235915982826760868717513448634085358276240938741675419174967626158872393753296577463843153944821380306466790121606993328780669495050977799207867735867984092306815032404132472050379492812508935826994399794616738526716132713902838622510532507815192140067723350592523399053189968406829615256430547502205113043556501470661318628900051705312379032151377451724906514428291761530683998042837726918065133333635334344446562572187966024034017474685932062868491970775702408106103213392291003316634450048358558255972072248429920672083077014415881726178842425028640880711774952001355476952541209383089426375357011269416308060397700554717229677889414827473417885605106125062741105289354215690524438200615814881611751792585447210723376236243912588643668852245457069175519412249252349392212673282069800115385278447161876243679718175679302219039375102037130250718060895966810397439531300313496037069584711579545182908907023906469846710075835826590555178295483694559964040113488533216892691637050156877123991321629534088971117124886674625094826365045763139187557666142262903629712332259505496722598471228049870025081020416013441353640441792106307166760274275126195399444245482892054642710551479786131973853073688605414291489135554269617291900784135714596716804194686154033808243755414244439333284364292958304319384071701675838448007991883250696036921299401492073573018709922920226374661353344368493191428375289835738786007517822815810547022105062512307198903240587770849198064898070539427841848947752711846832325432206759926881277712094031296623483823465179258398334001818944839141507377705497916512145534907841789754758498308082934290627213842115084409028514051319865156357179219155380152498350473566013593398573983504593678287260148858651579402928551814308092228379119369519825882541437674183655989836841627033178861170151035332174734644306293208271164929435589470740292625437068564172968432903620288644657590603035310415374180887282224140297843812438086448015941097528141339457182146672545314588610969512869881605712891012337640331532403449075217895108755876563953288415143620364859238110895070840200299798823441687767467128560815569109952013455536531795266335142377918866272370052269923983448355577206613251558391730987552961338454537190134072303577936079453474970950327593752670711204439743151501672252602504726895595955833962338599938488291814075159206184990943020404287692101399164782524481754285622751785533217447830165570067971737369483213915380878991412466422893627570816930707814069220839930332425490103526503537307178663345464583549786356159845549925334813381352480998483014089689953617468682013676626415018358333457090607179975998478472835441537602133851860928234748275978346397971232910371253841163004923209847725077656724617990538396303760578838376310427962094056947291834976290514678923135106311612389623615461980089124129779288271061482958837555717042132749202561619105260849061932167975977102366157462976730226661889957853943983002472547153417182433968759824915210999514634584956788327681658763785186235574952819479063357391687276745321825113046890399075017060522583657780933219341827350733255226828999712107133668496427881252188261773363110297651025876022271693235622125454767635734166372590940549803571746117600676521424114653670430401630286887431817242654693852494326602450739263903658613768461941388214174632966728550709603355358878492866583143926563229264740191316060408332799501732656549563926460875279573776974177414354112264986125286824664923165170918990186695755324721879565202032532186357732544258507225986056464631556060229452887478257279805712874958016843617490522423488051832192571656640587864839969991601622681477076396164771713211387497854501269035574841361022728956453946699185896793244476780538877515701644603146797003875156090491663534420630637138637326250529356065809103158635742677721337189000306198724010760442452529054434537759850574839026587749320882313316514843813048347202744933313998883700382783444568587263251921640108329302222361827236126901425880191315620128004417532794950374764951251863847847515469014036540373797194150826595459455034446109012520655222977029995328168830286474726029092327736677093226955705082084031764684877207768101027217042695323401799282450059818144672756787448701218544948461600174190685850090419794914438244567376979464830827184720872435316896067368713632597794691948451741714850370179859375297292265611234902931904828459354971928491934959135471808330256767611489411257838122819733489222236432961534994535992275520891491143439421188811183422176772765197880717450784341743414615798820859027410223074592576056353313423111930969708899785370584065036953092565102720705710161972249743992197813896599934781029128091248903093658214045294090064733853326423029873737591046416946420367809080283307396637193960787792307720617945638007873698145014657846771202993593722298540362884108318103828135485936775949283766489435553727441862808161679780254390403981109705227906308689893767239919077864184161519010339202196668009611452746555221571619935374295466762873023537392242606515891718094508117851225286822399770515091542662368163988872248438944194364288321985653756480974217444128608409604831728138059291332267759620176301276136521024136794813802888802793535080105312836741158436141181239576167111952320178057743643344941343380635737652213096396291571175485573390352470927048594199446671883098203743774152565652773748909615259727035087023933999414943888282603209762279861470011539998312568446740262152139574553856599185525693611301124743796558586044772625121082261360808001063729228612095948842898273246096134712649510991932620993345897045274062937858916391301549794019679726303790535122265192835777441184533297389107069064458435643982837085504873587760211421651623321953049102794344963726772296425793347094825347328197370890552772069573609425714139689549905968980301081250512775353721051401064713316286845705229292804902225693430965972583637594772302036828106605338556477346603766836865021113396421930348461856245751634011148490404643737877954960681448564468469483685488615645129136509623656240122294517233600049438404794897167714003028866017743511498249878662570584928942014344852118451864296759334620542870491438832902579693819190663752454580541514354104946863751169952917263602822074239394309982084896733788252458692736311313149710748898520285959980278463119758284431710750484369573249748582632174119583030950166851608374424341279848799768961612740810614884618328022473084105655426662287701038372815898445522452274937261589793932259492869383267397939046775794813083970085028160457895115672365385374222441832701020457960444222613210515880806018803677245275902697423663698327220678945574018612937111165351540956243575353861439521942302974251373179320053055035013904630893093649328162558176124577241441044814429572626513511448119718319167088065519789135786222875159144095032568742849637590058301400680691003888690642048514516628471585963762675094478681041893210542205687277667600826706174466709000186812043290603383143928493132480983659115507043956983700654059432659259552431748262641776449157095823851917932268654152864042369515432565814335710419149220248903757582331381224565930047024930830886022667114590965333343284574731860716147953299014782162680415289522400904629211710082085120769872745706879757859865823813857103418076926091127333861496860294051420441552056326920509947462936759394622553575776562982897998663644571104453852189907812577107015148179491879644388267462852329786306871165358803332578364956286566718636628435219253467228927268324097332823603626721535585288433354799420479463765950717703922405414050804001222094662984848806329715220762253131679345718187005283919551802512300737583365823744552334380425805090640321328699709750085530852073140944766124884628497320613702484001133986046141021855434735557247516848032230355894166961762632786873636785140204229374855173559064437958959259861354029590883445945623845918909230458533659832426703621975734545506104743404177509752901313693880328593412388113086255782225100264762471068006720425558199880622761922384857207974509381199638455402803481712959518842806715134721563910313491012762081333629706031966021934379176907540937457856851447252217796134360601520072727779129451830635917899356934914312809231966797787038354834077196545165237818781286145244225418138208953901949069667939051150951341053604172807868009095111309476998436639681138886463591743262835694568031836506211393105123407821628447044566749638116528728236052280889865622500771065799005379173130080886647546806907323556450325096688042483612575011971811769521881761126494760517019465848726673445678364289607299735126003609500498891877469033207422339956783093748377632469510045585856524304066609660042713516941167375902672419004138882926678853772672649580859932464830975573527693400285038811108571279091721438362913763733586185168600055341961965046804704967386873515397194258815833134942645040761323840017514444726605141065912290377370394301186148380223528051332439217802736864594984419788636410105525543759650958508594922948120474432588457886612235655138323889434702676523016371378639088210318389579830991923291858209995839310664321811055080454716003712496334330491656064791657899521294123381258496509869730085128861583974732062935540550938824196787003866571864664424749358263712236747759717660634640347555399400844629710993613659306566415867701749603747995502135141097504718653592396366997995483594008487088647287429997704237717562775022372221689799543134913264337785970681110481072807946630130456014117230814286317013002993394304197312548043760191493979434629298194127764635360247566996957659593697704089595456842227439758583535773715683933697870525074169399061972899721481505913305837595514079645896386328166576802648949183760901478593868899494788710181316707911768328911402264313796551945362562491285947636462978163740623484573693027392764040531314925870955315592645333525427133102402248089322921298318866880417374177286215964829948605120115476549023181131769072661032592240631268346551963223559117007118872439279185973340295941894461862735522332026839015183984836234514440014516850183402788314375215088711559473845497298919074949121696297299127602542425659964520752425434726049321754736573915378278390451145032920290093379528553372628297254596478842415645269176426866646019578025221512314680195751142567318892198858812733326526748083206613905257379292235177199921600690125828804325475038226544427077251268094589311791337684506466422045949151093444217503077641793397139646210045743063873445129248724273914432519288958730657864242469520906918145839785418772884259049550451705988586292651659222376592969944197000706869670889695529979425920768477803674305547486912702891389630819994802401120717195845020616255590850091674134995058873520633423465754427936962116287832280665445394269646056522357534919619392152517369614498974535001773104490609377187525848774459960516215875623429347050837407125780622564120667809609779978304979753363026902351880840447151870726902722755701876936817494377328847111084594968159413753895544351601628736496806586236135458314961496508211219452535561371382743393099910491182484647334014853902822326966403860360113292028745572411253099037954933230955807755060564515394397064181339460338058506081251663814020345137612406669407413959294992844785180365224507867864349120254094732232914390888507887577624991470244937999807013944202027007763356254589413887696456087131335299793549025265430001397058442805434060378858410123949710690332842110441727748811819677047693437866639095505619488150808605373766405987086117928546630304270991016762278852322317404006597139837069254648901019842701945770842111383538719617073510065020840503140261000451831870133553010791890176436636897146568981358019919961641627771072368448124239475594235989054282823873762661852382637920780631125146965423616929132488917214728151697506518724410141339620969382345071415265045391605364736117337634360202617723994409459374452007808981512726174811215022446168262375673980335573646102668949801797808009848119101892194521097848087379633469660152089163332378922795672910840319546311002659675238729708237985005900227575697395765260452018047659211359698668580292216760316713039171672992810600909350269252144907896722079931526935198153805029022526634941208922213043108734427821306862599674793129153030718668438712967108236894313002451085132923767640762710516660748158792174283152802086484108731131557099724905685932263974371326052533768095520366228991627231384118333365561190646937901826540394258859270462470244707122487081780247992961494852284281923493538668261652171208752673821383629790790615768420557187135829055094456104290881281050315871920214524942805402985016195890855791059298883605546013006038554165155695265725034483690003876338214088663050661361000093980366775183062404874630376605555965629566055236898921580845009745653371227477209841286725209881731966238014522093319297107320307915615135756569718961626633794379122562871984902641623859739632737606370898208124107151730213254429148700403003002076126739462824777439236846214883497167303568339955889526575221065621380488139836864131309295020960854240393169832787484097553961601655539265736501389562816823862917137892816585647498281054143450208608449813057059248353758212053349833748608145620054070511288189797533877769524186885282636335425268342222217489281542747443238645348459456732488647692863002887280250275252311157350522223143494788732885167159816609377739567609868448422430547360078750008137032538665574763782559084735162287436212468829619303439064866587428675898174975716141892820496080661039431697442879956776363049926064461545695660664815911255058099014542183881997378992466480273279137016263287328708452633808017188896182538659063572056140278556378041813702213766597821068575765431177522354818677396804611770461077596029896147351243116356313751204815373990105549628969918066846613803684214608625026659980558336248191731484893419570509491739706971790318651738446791802666378428028585985534070328271886030360583563029437338465004620197328667250947417268405196882680464430102612018587854459805208499371807310670156350907553988115821232238497933407950536253062826270370724148652289148638377790235890034119866007741379287320735261697789286665745199592968502043366199925289488750243662172844990315128800546878981261101887618158975123544295831564210551660625569610204636447583782798856988202976172890807323396399587533175555697158642179721568470768356938402935457573425376342051933052681760341054888107541422802715149006754380246166425181190129673724228299408925865515705022602271187693839239455359973134499009896839010032578932144940147958332627939157511162721514738241874380822316294355820358124523671337357130587500739433260207462279162505699256866583239724071707818841027682004856912998317116839256188612650541160897625608899477295054927766679307117162472043693255193440373833086270728110912946714960633723519495289452525146419036137547490556145261027956578776639506324091546435800938411972680239336939604145559051532176070071615052967949523023390709688640560019381722027470506291460024409556152057876391871528565167703565404192861682527425353952513693114503484074754828753509087108810076776345406569390155434932568403135942210561410192487920295297328777256569211017036183295466898738948495087853539093310721174510132102053706928265689769239121864040870245581654297069794897990913257358662249477744572189898630442760351435385728515915126206642240506803196787625995807880324566548914505233630384236630038911968466144261423329591219781750848553659235944480892730896714018752876713395954365768252141344033711110619970946323366792709896524459467007760725780910120912240720574746866113514084447569220191248271006398937980468152431642572457333674887523528663486483043193298023452344977342949119907012510643937305956366627353151427951455911103320499160280324946912005578177220751661652740668577998260470253541200942172679489539557695979627356300617213097117603947926811001017403289945230153820822516866553508791960632811551448798486161872620603638461514745148300665143997958201502351337727224481796287793554503858244478915200041818655352748612895021205553620487790467906626226855835868645425648493007950734773199509151477932525308093786724401238646524579354719549758594626111317359540125620369663129810688449894722526634097657133429113138076350726840923015671419151609027451061539272427547285678431854619421523189486548784601328454648155731610079601304986184316208233792657051226064963781850240804875161639935270236440188719721342457110026496803877700146364973071818625902899738027472318251141582017198689820675514920423760292155160284667044368231900844009273230621033302267781468251278476004978211485186969211091751063595319726821275553188283546601926831800977632469679256030889747251564358764892924265404578401570687173500932127836916071262639193656225096448739227843375005659298274375141350115308169345952624604552738216996549168682950212048907842566750623435078524400712076240018059237277807093062369942811712786745011370544306665255053928254340681261206291105505023096970222213531250981156248485790916351167498154541623083963171416351572859856941110703379972191473920356542833309114451109401867527519435202556345403779933970161240358102157419239371629590316177161485294336524773939059467277044547839030158601393072923029494283292206440934238489169794072436787137232502188838090333649125581386323662867082641474865383730954693154485255497109665149222558185184024205472148770507784732493897658693493732622884777448972499638464540626877280038050610150128965258849668504959934450313315545898480022665050096793445795040230229580204411005583617623155257968211475590553405385479253977906924587263113073365694669992972485829881808419958370256944034532889448463421015513704697491412357781281885334413735204312076228579405452865060126793498568286838603618261656758946881646765961538683604515598480612966881651391504078690718678408861848992500906149042915744607616096554498970317287072881173829132448145812716288303153643352251163354945686030880699402866151117441321991821437743229167351896545214872015065301715034885471970608641168884141446856921421828038789335283558249951500934125988797454931897675048960647852325615176838518066408521071851366079174801385524880041476626115674041972720148910933686551020662620790841136529462086257490524675706750492625318838841004271274790111060970498638785753404936860689067003732912251388470890370666167474788756833803794760283852351432975842312420003656736298425983675105572726672565794826026954596406576444723513115935200253590031030228357076171898501346020342111493309931592247752837770931982613214200626128435437267020615524703191854349789952159174827593887132026265137791675159373297012329913722297732091393145842248133891237683140829702852208802132316954441589560605473842272560154753839555045608496495751410586385512402168133096556425248822991511157671956400624287707071302824311692053715389528965093338766969297959952899341278147564136319124975986570229696713665464883718100011105339898920987288472230623656733529156083639757990277285226044745051045184659193237833275848198132708645613034584114295664790928038991320286958941557237821920088615012327273443025897583050263553582567744496588654532919193241463697483637743264491838219987429547963376020147379762416067633087324628420777163964578020550535540981518294910591548518799628364738027224917929530814029724502755325005836005133160320120015984175575889906067572831011370229924604979090850692162293738014086216039590516870441029633049297359892171817400573213619484059570722334053037952980727740258675280061640565121242010369711320350783041076790834557793506190513568112115158116093431817489779322818191143298783438383655950661672652115515921133623922540767557615390894302643874409835873370021044394965782726689565021714033137241840264101369844831232885824317854533270465158226412442111824550585141077921558332518444568372185707265762480481426129818149710852657738637877343049022987244788025748360481818982592182831589476108193404616812692636837067440034853460144995167065962883673761768993943071286665171899407018467218827537650322520662534215784359622419265524275676086391556469314683493253515039547912575089581879440844793307749939281873310580487538665836340580797025263227775804147980166449397668275828343769884229044547680845161585834619153239982473096993975706630792817099240296545422806535124861757393024242514746957350797926078038540304484772605342723849402191225929004448632155284416574643102571898859136842286706158217628060554534413927276267314431297266837252709931183991289467823602558608715418772621089725773891539395690688386727138087508753307115613876204630922246141011058529150233075548191886723386977988743699285389381980442354761399509023942912416401686357530965597586717946375867460438215178976998546304459587354284649112358802640196458277788776596915303784963577679824565694602730094807267101353247902831268975081606090296668991275270392235658268378517312376708055187879717192269868903993669555315230327610550042689568003021788651589888651699650748401385295917371439008456959110297129299614871044327043846509567521489146131122255029675867180072182463549141907004275432827271585746091785594710105343655749382453488698614514993812398521246217298624176438558936994988649155658978835328059250726901728870139553163147365663610575884828917747764099305702090394422693187828866289018615830759076855408848266244741003882746565181186296423428573776034609138813555783375046945531796157844367936398109872305547072017668806478133756864466000917757211380638714713496804063251410536324821364869034243150961735955540387486191512445639369977824374310801335470185472973811881467613139905458145092519523569467032673283302960799028824111028108674128595539605187680207759943312253273435231628776185688353710312689629997924940321718080449929268254448965907222808321753975473231385588092611952900053881274058572898837589963807365183978891857425218541976107696329046361778685517694331975140737034741025078453581893944998368068914564938431729969783304898356132084978132567110715703329684121950556756314101081424320021099009552816722699996953089035332354853147025147411609998021847662205510047872822413327388818627165025207106334164714392756822425469497384282055100918597805410716933750869093591163706739996515962580567920142955829935418469090594163407805873703060626703588540741950599273123249303470181197477154090361650618061481673635403075579909250220729357489762819129106926533534026445820468559794260204478602512603368126042637688010213342835861876825503512736946493979923525961312230656821489849827967879657719065673732760053961145334752471173085563590039327287729896235851934017507095770426063641831762442160865290015293755736511808305568811329022770878963851836084145695880497904866518233372143095909471015812967244371905773795137137296573822190382750444435086218393844139745239137482493480651638510582473585647853184702945424679260523399213169095894104733327527442975559123818942816704045057157713820310246936965526517853043696138433963735624375992530222039061271237235924856967509664652699391345260280384792029066233433257443764828928694310525125905270387415906660228010865649223614131488916373562344510460627767982166756795380619904895125925798923852737746565817516935136897188907225027902841759350294085703470166409343282880308963920038505296048941146605758029134660630502509150322988509717628633215135279596035419252651030492878741239414354497547915738284795195212568990855324500200168357447749620775509237215550029539247127344693192226837792131103593940767370386873956311535449631722888079619778938619279764871249039017524242290889254193772987776035980438204320907127144523660130398072689834079003525890066420799898879958289263261609749866286144058057783315380350700321810858636076278600486487847824946045771679032113243555825169212854157264262261295877839740038311801179930862756909402109642545315648907583381094567152653631320915936141509196989667970795183921383333680769504626602810357318382990645818208809378783518032954930950534841719860992714902827609920127329301488718460269735570942578328309212129973239583770646424520758385969340820088481578167274168317089484135557891734429881870142880605760385392454857153274089169760270194727108403957199790932662158066571831477950934045021320036228453092304474457943747765126744626713487716092282478571765561732567201857966676535148632813361089264500426654603161616612628571894956864224105142243212992502465644029084008402767189043223829703034997070828649974054223704815925670214408884755592436512653148538173309088518331687041990524303462900985605773242045707165464141397850305193772255932144113581029738302523536815237390415295024600266141917132177114135616747920587916193258914385915163548994545705446714146097819626300191922569398874652624684974732912387869961046307528257899593415497337939958385228171089609349659434326405998613102019179578597382132516398463207936422364792883064995787461255439477084852550972317898172029030731919500052596393653960098017543289993704720715734697081639557845586693252756505157272174540259614933499053625168035951211239289122172639901861013726732191632356200717604070309243087515826356846655221705918239932579814926087580277910870740827033049148462836889513771641913204864108729061088672842231062201266026559097294617335911643386381030239732212497741016081129938323692582683733140477678135512511876332187154737933693856315137139830344380695211062499812992029783109793387657661681230149558374572446853121190947684256454062685392712175757791484211061615908495240941169227430651237641801292214167160892437138635676058779165258905313842272225584030607160267759727276659126238281865290185972054130149336424155571692191948144370265091947385926913174682932096139735484984495407847305931396087796258388180541095001957388811412608337034710839141057177910096395212493751249892285825571407495559000248681835829134651741099512068230797270655384113837924159639207764663010395639077187379204266782534898626638256429281036046248383550331980633109022326592524302870192559757326517134417310313975360423359616476085000057353056754386727684057325732911582818458427255609005750703863591123176041874937788410597664133610454319193512564902763826073698939159341148845404233869540896911008988530923471363979108465009686964277262927680445554437700427614764355587935955708656919730149462833882000021921370871458995763080077221653567782631625911239141393924326795649294281426491904363535325631764351675970436522625444849663756644262253100466662869537245736407151178248851876655216392195165345328629135740767937166955709171304084576045914836561198275336268372654279805296814665709722737363795446853256366512335675536147422099876316422788262456837404991180317148342114518805253458970435485727581662256448637236976770614498807694791475532067936889910417902330184771527174335670715459461365746983540073299948990038292509275952332296873326832024611001609049443530591016521716179666243487393420421648310910267516047963676131840920750600066629686599852809907476016131660725971211220535007363772297834916996102132724024092703355248910979881213485412206697785182458829897931515976431724982283020849697079139697739297938554523480227785013468210440268854806639927699423543355790688285728933834004078049728478360756771702370337753759015151378421713690587301650803070863895635569226340399699633171556686131746957224090466189986088805259556212971854454451961035830532770397936547039312993651417615468297040556291834287110321717129567260327588753892703106057252350381875181435628135976157333634497601152690010955853783333087493529331778506467048376406699353511777674815294007226718021933663838297027522436647989474742562217959134143978096451414483316077730164876873569819035046542780851620314517751754426863721314329518818599683170899741381194098313807260298673764844315407776828881665653221706039585113353475070368845254518146121915482178721217531032068278502620907140177960418984055572695927862355886895664679563182463155799178946756940716573376225512425708161212675062717193398687672732803516554788344505379261974295266651370508511567465647312040229561946894787604716147631485752148790383235841406895259126811407049643282345041189750161873334136844809948406064368028207017542348339849870374276546857504320033981665967100848679113121426721687733340592513175748398444210138119489104848219683828786981583286948055680066852133909572105895064815411432137834495144322170464198086514706250281610016870920463045205205488298222532785475804734238652353595312595409666859439741982341766798003985996658384111027251603785974729035404785611177383809559288512134324496766589515596477571962085177231892833547604008630357578592651027489726500876081753129982672681426250872814275414264290975946613454054559666678864341341432560029747128234940563530627472490045845548406702770744398344858364626558777858133781959624465126316954231175147013593993789308866790424225939785379806634370905870491958677504553531590203690011064690290709349103880711164612891166323482613057105664380662915566612185355395546891511202424360706782740257894920827617501367949646664416513632706323590485058731933005142402405220843090018923597039741103449553199483023992910357761053909538002410015900211360069905819789233862137091504345592511155604122016246094849570498708792788771613027447729751839547147268956365592399188668859684319708628205828793345600327127393957566373281820110010964198058087686205444002472866007900965436319418624017011592904414910624040059521986966456256563472064266005080546141089186544842384741951592504898487607124005109842120659884642342813979564290802571504646472909890283244182644818445161108289223681967919269350228930651481641151388269613538162567427866188911741864182363179512305303039689516892873291767447072645755939817461091200767439148195929352940254805077674057650875292739980235884718802338167908415083719840938263572592403766570662843727033761487759551825587684512662648096855368935580705917426193426454496393243234083486252695970831498460342604285461410697644496119353229301510020382600616775636680237446146532854555319689300847852154159540728121182682081059916688243674261313357824039589518052132218122640832179898274405166120529923081221138170726015722735366541958937025744237461757364885977790944653864829876534844382174130113833265248886400768087599486623669046748679179419772000372733853850759996943588201121424107815076325588987853192094026702536647035109258242510564135726639703866663937758254547153557790982076193805585785521753609838502278403094311905035265966097894394918753165590093765430413537278258330369972163372182517013830863172819269570876261815379266939551639261233987414183422892777091198071444067885009076680084364187072279416265027703739080248587838527167351111380083738786640355934521925308848537458361437580034030541966198706297450270837423663738650614112991567828776229663967300611473120487311304265861189756431694749006067635788902125271203642041286407453094780167915843036151413533297214051447747637705285356662748437830446922118799376835511798464761098467791336358220991284788293482987178395881301813899424684933314727273886475961502311855214641920685280116691906737990871940538860747388680286986781440465272190267401373500425784599895430484401562365092728704573529462764066976350627306356034559295576652294012788315036119118588425014610725927713553023404310944713940723398777668297598446024404969740534113560505596793834625372079457873548612947194923620055249770330889798993159730150964091560107452161985249899561229223608618803268655991493675355667761814366388621650553853182034128712959699207062119837954406216953785381892498626597114324677312305298186934829669246379030499302561162111627592821696590548481917558808385950358620642612915304271975060612703888835008656880305887362250895692279889303807113661695516363614494502916813145027564005866761014592769573957898064698922632254905518141950789754691007443605709737069442258085278099491638600575862510508004779303373612154345561482750912261051011647660575856045088123517896710730034347933012127063419105192154507529329490910052348333067443659575429333684132611653671677767533520465709449562148936279630200130984464649480154507124254288002316750160600426071302901650629783376355075723034365330315811799578361623803868610050020724149832352516396645024531221531865551152213727006594175090642665017445371768856607715143856151511777450741866560895034073696806195766797362321122613405493623059262379695556827999942435635453322814021375855825986540031272293909172067164482944633332735108356432887791517329379079299139297331451359140530522928038208824544038752328460847857369606391468427408912289474094582568640609024014865143830384498508874738500528045868642139096669134255792671987647406906556352872236837824265007050352024185382147547407696877194882459357710323059360129395701108052474088547337406585896049428976978637230718577242555220183261446266956953402767477005869076934037145791885522135221858373191612376336096165244731916553078143155532586554185795713476062336120910924452367300496891115341802580919292592158021582669570172826075943502620426862405420914196871517492622078073161859468440096127076003200826595886700112541797428528379932322718916466376028575733294865114148248548544808883720068663347811954305676910355859989913374548486954183516290614798001815280156735301716862475275875774858771537409722523047195723457244720864293276222383734166637708977765258101307053617443459148704399015083621744714898392135534997565375402307111795709136099392851716487643523645223365446614033811906471319733195006605413656431340391298309246588373323615459289777911424431270929639524070568305694287514425815010744852349302055467422113981283264742070788693504642322786523206835556520479593381051302446090980973065371268703845895884252932518766199168506120481800760856793339299840848806818833255466438243911515560565687162258297130630656006505972418270770054019325744040492268631820433264761959922931066931610498895411118502436329108164863767240720571360210937802973522605813495518037177580600052159639114980002378841461714204599847576111176454126178265746328810161193201110151673758995973357124539581697123434582310198956209160648071232680221891403309729948978404342857512952803871866370168115708187027580446822398023950317274601024722211271850036887222583420747281047322078819795182183280360664301896845946808462466535431287351916307141987583207310767824762892896409685490542648651426826219568080891932612664842006141685724760795394767745816785063334559118488040055392087513922586423860488878803174276250085047909380634797070324714087873399151032929863019776160341606776683786056786822087199259506186413096494169601847315835896223418784027942376588917458937628563978685303785977401754406870894933906980607798104136676840289882232299779553944928436686629077231114190692852194815516923336399665800707490335077806757708637965111991923411328327735096046149235715088603285312529443093232025424644820913877631297182371211998773640317044317876993507276812393933111624556562316808407082492942310314995748577516026249076110485562628391204099092895685418541877214508573226491636522985324941208806073416373098816356881998855833319287798878242769442608598660319128972934972702479049217387035550567243660513882568693201862752319701686498938435809338995762718576502020677406673481370040514944105215989170598287088872667945291620681317596775019287934302026729440442546697768939325435209955668882070509770799372112828655259074409827761256507792593319096892259234599860302971156069819469551859215322236630844804007418965790120564759486640949131685224872314333243040784780739398143498926024524322449211539119862464408781666312722177443873671599048741419543370146861784463838779097300451989436073791007992242750242580556344453249093210122426195913875784686521547269374789149658785227283307212166459491215844166082303974225916354684875171473109653695860187917349736474489139752062407037116884297323095027937551164616182904835589136041530358441716452767774460075300334684506297413660188189893787541656257466458808307343762759970687638348484489291405028897654008065625413330310883501132847348126046484781341278604292320265758442857839957978804146222115691771624282997175152500769429979727659080117047522149242395326192469097732534659707562281974240305311628186400366143966674092402770258504231521187866579879886978384287153107188268462137094985125306482838020051261777250196992415520592877866442185635891271246666913959948610544540222389532415237626084792987654771488420629006110144743011626094295965041139279468383583323049060890302260619932878081417528597485499965691143941366594488917053496452182705847130941711271867421601731768085516171090086650352826726745692597810118466648814508632940420201318457746192281689827430482203794247288904283839079777941471183895170395174822304636898516205983107065182557043420414994447592009765729472326788151794396520056718710310900977238839938990251787575479206571586357878370458444890596657280274282734561064713227924694626195780690825516012597742025856115079798026839536576609965071758159307192516918373888750794546111821478026766712111861372503825323869800087206312406016283343915239799480416380630856038910855626581167986610878261410917484398366909411154840984469720398646704252892292197964474923319915870467103315346021552767310892186438724846760362133819714103076018722138126926404679771895273361264146044224690179458210020013182582310892341499896874027506592082546115851009246878488069689759897890988370994215711233047408655922384697996053230406461900397207577517562976334990913540160098741978547502067845232479958838761779703365451904995352724254755551506579411463134803545500231633270906518719410810919043584808928789475437050373165313036179489877489202754469778049000673892639852162922344322080611524006726775825106559687828935507990290380890228457469483656577502948689729712156902088325320812564731723801361740695790548424739479156616623682077775800199420240868951902946206943747443949407699877596256849645981552439280098895704515636204997614380888155372088823613959097538135595852421708086336508049464411687760849666975440752737604659507620423377236227910217074312821724441763828436965040928949742549478543098686835887301566484966147224520052324538429528567738816578553899310450268346262369836551259707347665180852124778976302285238539667572430779268333380516402306334759446844426552817205576738247140684363279434130384082409374853273718564121833635423585555947905066687853173087240804352912932771828966065950277989542021021825402522049106742619842217571961706097590352093536910816078334369571142762314389787043464526131561468575678530990449029580556300045043914534711347139789233227093742365673255234645529254793468733201245618990113478023532898865361635563348755956208585427209301424987828748910725124022674668960560550463735845383730909843372353352550711403971433983959779198925174143835849089333114684478595728625559485615074976385118160299451479288032128519896057818713085632586984019547809177882334424060416778049974977318490666290001338666381274007042888643902308174692894195692036271627062009994621426524022833831839645316133729320699903715324572290653386468080925236267870106256031259749940800897420621015318820929159618754322234305105302848468622574494315256064380971442996633513038562688027262005438290130536925882625289455200347151206962983945351201768910329144688066967597718735187782813227568952269554639515527154262349966589302768896850251306448514480316336587152033542349682553430498606028801616334551802641937178369923835910522692187745806388163924232332486497922810273855991496740900472654440534321697504582424856606704383462646117300376413341640589830045096756080038507782659155122998165981730496281885216222319144724875847875580623025990527782067839444344271175749394402579667976130993550276426879246295846934633553092148569890958304367535612304968325037526994898013433048284329368921926530839221231136942394283800962974832011487492576135662889085082354846231589256204665806154793148448240410139671800124661544352020496166450534348959798695288265134577781964944120622635159458643934458150405061394780356631315519315385609008533616989384534414470067061607631781670557806791070378773590306711400137479918305886600445941406452355794140415579517845807078215271596557831290872163984859060236371445464466111133031017762288488174461253232077274995143819611765986718545578078170711942974246835622283981198621211588745148924990263943353547349047149223506533432483770555842265355555302088777917170305803867278823870167931955179795869549910341749938805675804229807043261953376304120486284054233139012111898561406118195690410393637694981005899853939742802969857320493888826791877074741108107666125372118995206106813188730533732387989673067629522505065044579359369009481307382919861866816798289989212989744092551269968238034804188220114936794608914630235243529837780230195977712509339581636160986055567168667917672056595527146881307877684878075023802274335325982749061087166347610710802687213450148325516705525830952335744952444474498794916195536258808515632361909218456772593577278855902286487542967690253924450040306208864731848750482241172199714151669487443289201623884451522093811326083646294611752465577200708512432979787527421392009923311559277340614540722316864295819027850035542643188097960160069142451792766196877842745653464122052061757072436375488355593396189738219596635383897068098329827487881288116564387762918755933983834561860650190817290639341230173175638337173155362202885412684348153569183294301309328736517787881782898342659555783484911553982717983493314495174698406205034344183696605123865592052230178857274877409995962628446556171504818749237139587555401898134443125134665804706707268979432442298846628553326788134760520261065270218917117753078302710835975555007304911100587158219630991269416175405141213577233132880941150799399604295559666474654626227080951151333128760420004210301655517515320551424971291346273867355395724824766417864963789679531877521631500492899430541577229623568469712966242259649359078538892025384510373478473194140571088535573715074031254590524036569138944145127696163295775885338496959516430241549185453559004875165058058474423388374120227683579430804887917703564393461876248011732125623027941082379032766996348589356006818203846470347341832244599431352662254261555909114942445947018604754793584706301245566171158502414101301656139588688854086184547833469332732795136189689027034929354283154218927122327389985213203339707232460769936833706223957006460465713130609719159247097963544560519605677563430600080657471912785214508492222294009317951431225198265970302590274430012042873997053448166249004408409244887017929166407738810961110326047511882327809768248867116747856977511399322146772329531121404010905328497976379120565570669964306850886587233938161481255082665933167411550590746135183649486634310404315376641687665470444647188209308096902290460760910625239207067715674982235119600149204140753789949033950114095577603717577345221157071466355972346301445994032948643765372641017527314895972554051108323592692266680145370846112231379969771584618095595481136204356807313607932029019738214390154950286118337168275333819136857093580461658239994321560332220537958258387824586658356605526856811616960378453195897470366479969412144775054499136113157409579342768308290989271903081839026681167945960209452618131607689530240870737627782079854185555117030823719301773618720624330331230198341215173288765745491766915821518912862590222407754025085706988687422024022267756897510201013466672419803693485655590652499180006630596508116345510743717037162410811850019848853297386177606235871193501939707723973926369408653568488970911946947480162232653626115361295515519256825952877683285951283413124229964913660216043968299919169779603471820291929599610195432441858495581549993564827452084283308962317611729984651985044794533162599171995147907003329484319518031381082147944222566248584487931413890008910790850731722551993362961713041153958994054745618972634798053140568190274180108198617887035441127027032794518630587547665021343514056554004244501714412845354309101366265308589732730809190066669804219956264909446275664934922817683572600243374529450991585876974857547624878051201143887887696344022762634622658507943154014879664322809960933559009645315176935879958465020277438064634753842600939187637413952187654901476966831666029696069897431581171143548104866853714593878911876497119736964714689738326522774313178330419591846442507256728968745119018806437253363687445776512577915968997726209437781686706801645214404393291556447461072738656365753201646149438423373421693346948052421960027488342008251322083130247883986757272572671727660324995298578479395200231095729254721384562260447794426872141338835667931463305596688025456715966487712666893656578092873600248099113805482618082618655895783131984270527182241484716216336793604962627297596904712889834995310097997373192575666669940538305453394815970566528793588598081352882095796808605221060460840341903218012762078921881639218986068290805334672431020692660268114281371405281515484343618635640289540773078650677450326132232834770978366709417226529279877402510745542363209622558917554719832336648996966998465081680534793229476305695647740196358329093202745388751489424959294594995619180526403868957954788773989862424033926439774466138653849209437635443667180123047126530725055675624366991958222543014283054340265080470321187484598342475682000999323312995189368905763205658306864404766738044557391625875172218116143987556198926383236127227453001917988249271465128211185988367735677129857929605646148751980233683841418644447776578551480217463741461676940959031074894100101464937001414502954136936743295082840784286520521025594277361204746477994673100591917751793293194249088653590254145824342684767048583904924902465561441535473882243894729209722934158023763241020397186406851463422857897222340549180570031831010594150369685646815657796164567433753472652546806337454583345601034963961926044562708508047225303643386180679292491969542466275237806588719215617464921229530478899176827692816500131262792548199231863519177477449059383771697055438695498794646000671942230110045762252552674027003900570403647656054209039242745219038363657271922614520129437190876779215363268688621227554699387194502286087502934576641156354792737978123047441241963502591276074126764532540387441363432797103808603127097689134606827691904497411755346259886396611742160832171458815091310925638746095138991133939511847238822985193209779827512029286116059666382590350799766826896727363195751277659585386372151828319838906287419786860824637899756035165881253155625506652955603820284304198217170994512841617902153308765685457738679215703302731135148810821392448134242316851205266127107138386691730147211711222245547435304108424006526075301499628724235523115721526038718584242731126484739660647512773377573459499657957812454984668043884095568003435143868052469978224576000578321423674547617199355709138570789679888397936694593924320891096718426019817429377560124463091898378574404189751259352040578851516509840869929672362421579700925653152286728253890993258179506243520337232892812878555639598255863884843424351386986207874993387774437693469980502998459533216818942508544517038797186960259540622329397508600457884821778258947828791211358811714912156233509623726131750722876324462167363629006205898942685710217788223032926732149741490481957520207784185447013627773813976164266684953208416209774662531750158171344658055472672962872263205360476648920862063750421630227853453273785506126107766929130461541781828128367192603438742773183103827325592905358068464274878694590067350034441775650706885384023936935693352767880723289680046150926253067455201761526846351293786445422529185949544913063164287218203946062647305189555307435924831906594152227204154449960234913431219423281119476857363377999352197735687118727638729382463205495806596690182850470699747702595260691995605944339613450546595967507934728603994310815040578212277760924369220028796824788634190206531621080762506708927036825436633379491887537333013316925184726432747485898395210744124161814408828915030565465226964605399704305006836473361599168952655998614394919778927898357290287581493358731851636631434162473349542048239990153728645253410565136422076357273403179670463624423719722815869817407243122126752599267591100563419191772074171146538882472628279703555351646817882126144566818243181690227013084324130780108958314911200665620029912209300876819385273564484112654219438474940724368603977310962967961196064533013186927343013702205866802214369855974752935287169785720287146920595750403735258896650645510177717793116283251508493030012970857948132215516542072619377805962125137722429660255393641648108670232792026757560239886493134686637244798433129917536257603598566571317442000294494367027456790245491116476009175935242226628938526933352353787643363828325002761876310248644411415451349674072167347257258868021292429732598138094418798649849544116897850223656594273131032274608143843710458356563635638702821561807385599049748728255869137093490087633274687954053767950346986355805691589128477989147601885533314226927677105712029431723556519410645698425153845362083629534665777938527674037546608804150581234315307814919361857700572876884415701836107721350966134905964172745780643559235222430420173926783120710106025113476688306988908600463018884723193456571090839327593232776112750485683206190357252216767157717494982221988595878732679055105748330158002272885820944277309583808145331202073513867695266334570457398739228302057572541655901267038489240817670764456568707730761695153308195467590994758475020170730740645951658012291546184618650533715858365550519138398074519014092143483966220424132318842285835737107677589878586037002524283319319980164991197332895816450935150152919237018541139299832307631667381832631706012428630189475437499858830825244856603621222999130927585002304537244417947183238144475138616080941377162381508431729951302712306190384523658745629079496202420036869406124789082064057755578809932326558385831032428941196974922349046799006034691373071132675665801557806135174236876123977149199995992399314584226394389758934981955938799690108534595096398539414075810344767941753391826492938899652579375859972210827070460233181375118206465378946192766445669303494129478624779423993220095132055180804719240544540952376192590029464215004359095946343320536696652119253110965219979489978963549341798016286663330424215045556586826913067046358108301358510205805187174142260337264906179034866929065660389899147383146921847484838186616266782636709366992380787032990459091269938768043047374829428866646991996755962653764975029829934394512522608157876163368146612636638127059932243118026673218609980481745111231760041241626517112783514437728081665780053882710147083831865915065999073973724305349988614256469605095403291650448891218469008172779403729598642906166067832837806237123308411462760093312861921882524748716277225003922528547307147994061012566895551271543277107834950285306231988526865525538959010265744780180256833465910082814062983272049233884540934725394343576053102638134019786307542073514429966453914945816968081288447240114856092143579063351205896278519560049222875089291204673784880350199385811985801344825826338921799214134564983791039038836046897538878810297823823046418434926960783512246952138869114368221050364558455752834747083731474515180135548245961585772218063821283031974034625168010380915231863221594048204645483450430030175855959722298706290262935926601352550424735921077746459205589744716212971312307695226595254482670342222475639594093207761008090768045954576068314048509540422793970705588153473924579362827963540593068077618891953240550894959606123472438811198337636999490255791073746201599493846467475944963679846509016621144405594755173043690774057787504088086903533131197352694570917529791783387745893466677175147377875127458507904246332283332143891090196685636697431621303960775034475378317164246917836486094560105628948795682463861596384029442579781702813029370446474592694080952028926221479845190280956282872769428260061819077066965521587287787334485047191617686165473937844876092687411458882433139512273059072460070009847921742861990414947884821026054804890118638978154784491786415590829803829245944131353322197531617455874526644014905701810099475170734166854725473159042702612028091429544910054623967545766978936876718550943131524225763350985339889051904499582565523035106394985276302772281737034075381298325172828691048285206477019917942306929227686392937840642238040664841716502097758072250917410320203705704622702533680576531968092303791570815399778797052387460173226501307570170048188610295827788822501769555783392679824222676232923928781205229157176005140533099667427919177589013485553007279176153959185256672039801851399822387582273565219380463449085062617010131562215706526261835602212874453915467946039544818683581199054284529117440542464282980333443534261449494830925387149125450787904746380932827130622955123544116228718771339459552541288604356869317264727895600919022511035489325567676804585430286247259109370038767743461928868296459556690690172548032804806174708026532164661614553133493848030402822075169767071666514074198422896713641326058184869733297110585155718913521521878476428702874012906234173806408467815696634464976880799138585446540594122010006560462606892843008496750372207993352343604095047403619409573586092761407124490586378037536847731133867670684324821076261575986868368798933180511248535307470710171363547953079153970748849795185321354409007136329303301909457070196805190837904030323192955087825719234884641090133110441982168809184725355765124138305673972534293641753386255634586360985665543032169221630139118689173722900602251139764222472975370910481883776025549723995382019164613154465519723501042698785432440154437529153253054929416603097390861226610830670450175312636754812537347885143844581564876210074314773350982121615089843567001583424763543525551986742752275895855224876747519897172780896124712378217873049260940891838986974861537821842271291655176853491233845447228598353415145503105599101700536805665387395155978158490056054415386060893657760102721039552566950449812766544039434589451538373434300835958507255480491306582440975271600802894100677750908553590740197878321824187410410161106577579639316677046180951894745699304539738900559715559165553024475109811081051795982648216642073478310195753288216292127390681923982971069706730837318598902830181571415176616688321635083529474560861777391362924306096997729123618255175485212256156001016169014105500466858491896117768579481619809450854080330955371541374827202555081777291291659910982761634700152041306254085561752108602317770435792935068189220529115540433235656043743237682149639266661189973071485824711482333009540703785766691667671232247050797124362466670189763236337529867813573888157441109041674704729570508664527134823149186869986713937280315743598324785281921391187968526653123366375133442376707388894339121882186788722159377250196476219651953833171693368264692632437412125082506559264926277652363811062417549150255869229379206477399488714606096564346290008683759891715353051693652704129670998560007399049816659160750398957979508320862560161131959931385231122484076555976739618748113311878081679606612230251059053334837960297376397146315087113374891613514289376082147240834770666592343539126530279917713755092466511863751475401095865977303351125316216916159863063146678356662053242127803724778568277992414250691021018063170925695943772473751065543203399594368243836177039929048833671501110531986637992120768542016354077882001808814897167505306761648604090605308669532475995166057412859610898368120986297100303203938625559469660791070006609041945193201237894898871024761679497283279315316783342319421807077657030447330216297894295411129741868377945268720054944277270337608488220660079574034851075918567658699591990495545528889430496985912037281532687150597866489852021049007745844219121320397674047081004842266460101121473319952261224591048421953804787053811736143857834451023633749791480438005763192240869522177653347366623592169788091429999702160250813261504182574922889881069120705595993700299938958042354883226720206078132450741805109761344632439405933572072379378320515578288152612218993664350585563655141660062629823326104665896622138071468829295347677831908725484421437133667145872977942439102865022534509393917855101967117970199296032572188365479679697448550104024424438118994042747649903889873221468071550444026550486428453490007194100798002940749913579059413177582186269366021842453065214531432122610071055966349794048228215090930069430195777083804906972572771197280888069812235196329134336905191987712959683351377175150678433993312888309713175783010275144283481275037251517773525713697051629692581334944373846636860291993482130396177209469717821112626302816198760230281197255717580985301999173386134627584925997753433244748955575922738211140212189742538470128363954697077444996924106514791975996485917864038568739843550049180788003181126121083338196702879746103264439902533740008569549621320615581486067440011106522823734303877185777411823533977574754492721688071097672168711956162650217699100190554564046835347713008656266174717649061054864045397875528028286182473654303809075879445966079290971901578702889677118855513209552245137866016064529228132556311271838939077569888252663687240769396659521050266997653637195906598361495161376605600766814110151971887011854137462863979177370935808722532354633618676611888357470279166406104798728957297363863697848494575084916119425850823552572169114258645041426070112273955377974758209186453229723371900347481599722666718817754220362905266528793057471636907945496697668029550442845805247489125674980808330103057558331165896052299695002540227817163870899251588478982887205046889508735254354689506743236856170193381817128035183739961237518375119580078956038211588050849193779160198036507474871194098965654571010400746362368156101490980037473715341907032583932196127131776239974118891317767319829054827075067754665927240698781465966732576870496651771199118584394165912032875344827745332661041651411338402943485394390093537405224015779337301214574282353924265731047674662454456550114895878059237658664691594215757545530371718715080201805212586870385841218780907189835046403442740325087681685897470405766870552183364150353027701487913394749643845562298164028683787983105911617884704589706133803431012185606915192956283454669087423877216545201379564476168913650955096143884652934400624056779606591359803385932812178829287648648149470474147928228314826796876666736108885365606961053157560591061091786625077440331185405313875761997415275960490409508512231140818377230211108771943224103773745112966687524976424310847380781684984344072330383621007530469627818883436546610083307610994343407284156966372889064938779936960627974366320055255087222245448186110907063062719727275911031226852095837018803785411295169681186166492752581107084056287457133046770083729750290532184005032367996792610023235880654123790169533606631256001868291026255665518555378287298361787233946339145605702776101212162290403895071803240532962155106576571350244700962446204067452091813253631589172501153222749242132359383764569131099604178082834326306951798640093083156522462418450247152117282244864431878444280274133333344653540996157519218643958936846156319784033472089718452726861176779936923006918535128418963887871963706507291789929382145250188919412005275652145929499194099264828974118599790118612286857451812428490162753429300193254524754814979940706128416520163936104030455416726683237223518807078176462026311082468436261312348809972879276062242143361730697822817460710270549427191582542904769068534097940333442548493355961939858931183872983837581867155946316537528027095747319972834400631142834595803255563783639021906389585958172000963178010173016406213659440630823936060696286047933068694606918689780883116751900922082814097072997556292148367404425241408415877942159133298293610251255410348404538531719153471899898571490149134375280433869474316944911395127839828870271392810830908394341610254673983280438861971272151498546980467186831683883526390422176746407216098672017759750205407111125521881776486106824095540112831424184040279449172986926850028874142122995472404760522990291011885959410431572668351666724434328470330468020818893174868647723304718951018899497822501272475563436295195589686469308242367588912315077554770941393535746614292314273722880322269475856433706360844515444601634062448687653550537699509285001550026173232326219207862069398678973040571477009284848681308263680757244349753007207790997229727659889759423173144672199122784722871792658892783566953001908026178418893643128917926365408173961544938646524927788145481104202853307971127010185893927263852098114294283154269975509261562701963529556572094447200800376936377192180282746520600145459370659614692487960027613499050618564979172435354980545747393792330792099145453353994114630268965710259294121122079192127893008316992865114669678702845419193341783720138432673038440424586051120847273144516589563213609207084909130128523891631510239985017539881618101852940433667343572702448665229516417100590721282334182110310520483455573897112224021985552362288803417894766787074981253098483864380702379390739773141730841267246059644544631206866376221605723526561057588695468810734923157535549222039375522063337767037963229332768267155351512961287841898706978878930766794521210795172139177817327702869645756949204628005631047399114623626209128864227145622045194249436532245275434299845624755003180921610220209347919237965355462008952612998474035332895274521698680163185530608303118204240632913598906079534130852325291632979938788987289814646970948482101831351232487405225158374008677582417052662310036009053193995688714656729289669712617950004486643570329866468922771076653755260259758230477610137572284007355098832158328509943726992550811430076522426570002374710528878168835574975143298981843803389870794670578429786672620916780452752304339990734613440945215126764349931961537400235900973282013159387339022460071843053239144032140552150002346003766242891398086293853059809682743735795090095342185789269995373456278645712000738496146644104104707350481114730558844015436681332011997440157969830773573637343282968807435633381741779835596912124114510179859385030734386366066835679780092456029276860535525383101043513620338738921634295119389831421460058933031030254003365712030495641408721539925258686091935618622158070454632202757238321513718116352662000145719924130470133330408875915517340553892054560769641763350812120931714123085838426573879182783418815882079657996459911718536231026953087638667512242654506845761418203482832787881112405278563415368297763805425166025716232085320915715566621163262070494189777556808854032870502600360798024106487919350163843305790635137759548380919969494820415132396748285619042112565694429489981224654068660960211149888083256608221016606987472933773654851447377289688055116618695728661803246263596417528979498532377093326880022753664139585306412712901639182986146510271778057484704291456847511055978009805703183359851950435949894084452008755227059007696961652331504615365536968103183286458589150028853996297158640382230023255659087866470050660803672684463690337862288204603836907552705697037402802030133901697532798679444403517984064526214422125204628239749257809784359341408387219716158137041375720616826641913012912267658538245314100153355013122125102057771368934873136468089116966853947834747068928508298834645354093832673031499324468891365560205726150628876528727594204302225638547212095439902445991613796288382861277273216664927728227480090637603092355367034228820415019986235631076631982153240548092153264561517428460286144810313286323135950072088582538631033384392608348475452537362490763108105648093721380952745156514592547758970490240508688234109148603965378214994291785990617444180104672111250632645942395131104182033249063758062712864651526567465750153214366458297736472384612716237559757257849713449571102488110665732060245382210354763741608799594267970043824549248198120467101814732667983513036724787276085028803584402687202182574328433802884284887158577913902087357883779235757008559940426839593372068989868595583970501872142688716726960464241340234920753598189778223846120253831056733596238103937992923071789720549629115700715874849219370646855809546192205487613124303610667646448707427475018374282468460817970750728331680981320395122619931007815726759666650440181187001813535172503866253842148347491591044557419827494548625090368861883603424827462508571293620773146589643158997626923160232228319748342250100539111084261893864099350163655910759535084936940045181711461002848755132014066982307613741019215093060410381074194222918435436753933901993104295291551438982580032823277784772371658100040124864387046868790377213834948434442859280475769930800613179548694832792401327533255919031971539809099284918702071162383654753734199337727433689610239858914164934148826807230740709377631597490268627579156947774082247906466454935935496996495369388062688528511308020646946708498875283773059858198996248469775157411139433092381422645141184362513454218719018660890603050739071457336296476950730069013022025592842531237591787977029938077728523203792539824544224279048806186340321547189505313330588935259043097940598909762274174534206456828042493676342274701857499386754929297305797016849766319270240433470858784383891062506913585778707157438386964970855996302171680705130237556868936145676256128964519291590557275030663554469598124649911388551928455557161342468201283997894689160064305449364249122210362459226388879551554110207744713452157459357295738545836713274823242996173960663748129819314648611034309085454418286649725420150407710371833251147453780256319899963107742785045783456236864246774104645674954332500348690206951785234594166041427488644701031897710966149388197721847541698488882993588093044676348301547860513856167849483157135541740615034460272156900745156901085745670408593002277440211126029832607896141920361530972410027116843142476547838006130223710794696999323366550750765405647965481647229322575256939168340128692749787814886688260985558170484870033348213178358522087149035760289470844600992896491535185523061961332041646980015628909219322401106503620518133117287219385249565068373057905724146139345215502791181119863105430068679856841576252190291361925510961790522934376010065278466277195150568136095041411970593350321687132673786688555247281481506934848672679436654451058644761584134132335426125963784209210069517679648588391101485216375761674350402120572939108839252197659211422733324203960450855745383869370217828250876624077272940857486516161530542058612880883745945955499457918044616719202769427166613523181286673568154645665170206172853916394079045567577512627880468541043712755118173879645234950304243195126186242047559637959176448358051211016664576929520297165215064723692229943912467806694467286213843029746999459644872723148520398279960391784873484535178120314490155228542926154087875276196573131548321782946320301756316011921815240948468399837297431908292190412103333422178736842768741054444709420759042989533281978116345487508773762551550781046244756999279561560149516804812428469545592299230529069582341133012847671973232523663174448862520067172353584440659091642875689211721234827629105196829777942062811939452306865419791985761566435493044408671067682034644806417268772174924795437830203256053365380270059785270025161125000113161375530072222222234927211133769240233754415952844109434143373683932592392695338523723482113581390645953031561203417080599649795671441633794104511193727196643990509216200110355413522389465751716205028824485349248836461734325939822140558254025167437238792646927135278150039747342567881114782998478630692733015947557141553076532799105649513819372701815479340723136819633597781248990021305041919767610469611194116962297082874804536450548960122451949870195486561163567879083408301464172455091797291413795278655706378677440268586533477650634722072841233617146514284949626922879177659670881728903419032424036766533197931591457774371461972973840883981710086819389500233627398170164581001272302734883113296321857268680546682004497392934843468386574374371481588508686580370771604515598394982827502619805113562430587691112467899165207015662298937560494006801117368344606965279101789663043582651644313190214018382473973934167942096346541495316263089477426818231608511228792145584598600826845758173871492363351724594083379920608362600135709644473247041563382114497788596170861765534925757337036103471817690879179703975208267672947758154367704122624611065236629425742493524148685162863358480130174759223691001628662499545122433939890358913843747270753166731445944975434893546886080094688782291899578443944470419730263026674522667747660125586411545298562456102881257668213042912585130430441622687185203589582236147429919148608415404355512016776203225830640414985206496835764983634938034068580208165952861327381697886742135550950772865448717032746921893914762911417626153398038935394967257021536562193273357507638486680752048043211366451074656026348504210637286771179814618441420344315240197043822117277268124462678859860078226776649709480367875920277934030566972682317837226612677957683437946760840410823159887134697753523758834316315906030880717762739105168821948836417474966102170628081126549481513739937876577573524795561865042929612026795125320457543388672011031734231243776514940286126534194045171909250369002589706852570976673464437655642703703618450919556008183229631575444896665342384624213271261684177212070886371483662857007059083115332496751499551147559997678979076775963299724061826992006390030038796687171577033445621563557230499268919131335792338931933426316578799619532349670531535102337528208171804105275013915394201869513363639183635433386624562789657062847191674832483209015469416546458653701783629432541620667848850432224673067339404659648371775437276628281332372168604460812611981575949512444387206987764962490700436975890351220472936375853196112931084130160877540937162682203261481347988019040663353806917585034987546776009007332887830188890216554009227823406647616479097267769659389610630447323732523554481397531529785951525029493271286670365282465363684005437807692486533028171795562522430249957704654337799532809186506752378061169299836091213729437149697770261662723125252803374448538689135866644165050439738545517836155302026343588936839672584784378653049989180005738339652900898252812582489994667408698602824427693359768006928011943852792274836489040013725663879921138584192074104366348469896906449327768333933323963180844740403391851892895099440892463327995400564227671281512227334766866442292501529085396296551988890897720478035920840435907603136199653637585401300944921368722347252260068056321036118171795993670647375174452387909003790550213044084021923165362907048249326280131031459810588795188581388073436889474743996352735212590508446571622160294383626162371855449800963253278954190478386615552406242237446540332525145210678340517848845072026194119215582251858626106600947946545947562993763456514821400385704063456285728452798316936937761070465686746605798300584264118012150942740231053295019391072712007988915098041209702854808248408443294210402647956362341458087017503878578319653123649804929008468348700645039200498759185464683840268780728121527682365606603097361333502717173203822547412161291837631794295855404900809706044713339603508462764698224593674997961667036811213465422630027184345209572227760775451533587882334402070804633337878801055639010773853158655382409560704222122157450552783532380055906561137672360873273314985751887456941426683266065909296105228229750358555720273733228405449819839014045309267822973200106537880686156245543564817117519586276332165140536338299472968380973049537817769784278607777863600065279488100261190761048350784207107500677471121998136277406804268090232419662652300957618158420770689829383946870788343473269296300480591025454272690431556572276499066767843163139841866688981038945294493044972993322902384548050561172538333174522734861067162161762779279066392922368999914000488143039094514709629209531714856651638457305377248094773663820919345947936563129425634903639696671464586940701222425025108299236188469484152012626826439523668293444810068819549009530369829290537606258952961239861711730084130203982030890210127508810856584739768903105790713999083010411875272973441174426564765425757236649347790886813360085070122783432403775289402836825595067712621496085710404446798298014487153976061321595237252106502605830047446638075867065545784750863161953121509807743083933450522871036775471409811375800548889510374486791514712618736754112450409212537470764376811063780836291948326585495505286189168959320247631757005793752534406286437526839792470098861018814278760074069544032534168009546514210725515011356549742633356825305364262783150557522255277231800029099798736327624996964462283101819701164401305909372742809242648925381457086782090591726575123995341275063892198527546368999591495251609175144477968438538596264552024688919233767728386110667645607450615260047542856723697234456859849580688981429056160778530085512126945016734921561921517429713727484363121588701217331144107553613175739889027771301162955561803424876557142154044923538703527395293448027914762005525857660650630186225808729023865771653530669695832508733366833925446281379102321621366256677558502080753250182512866810188238812380134557229983920683790389084378262094622393333629261659022191849426125242446246251755907480584055477083399690679786130576883392188609913098688164368636612187314215491266814790551036159681518547945201450676724744466014184179544515278709335787286705944757396950444230747271572048492931238143649530301232981758205196318196025749782588607914243664944317726142541423021057327682681589253474151530111148243004723221837360881251782521101238931192598748834214766985465570365150501600451281977692174835576396222515808631434702474440846467361922865114816069587048923138038756389534200604844022975726938132912031073372299279545877619431219692596435371821702602544598942411155360180420684911445712858372356556319422285908369780069202043696320395042645039898320622788379608248908082806325116171455297852889467321258976378466636691213926154382751090153487679102115469778996964014152160017179706887493640578373270633945226501262453810365218687849291004941550959390001902348362959184234830702336065636636972952930325166917773230829606348158910710287287636574909046678590988426656139243818316155758935584305872415022400413146290524241801012828753373671701795301889995694890987825924007735375847849733534025521645387709293712724783390990631298349981864404208174803267582127854244313971128249372400388446864616291273548724990589907500916735305261566899729835302905044673037189945464904200667044644569814420527213770849961895974534142457553636149741986542579452843156412975903422216605629786797203012671822390940396962831014646341165030641411632899654595958494695917958433644094018601410997153705671198397572358463550810122347649152614619718548589757658353812735819015677369277434439338440409189036849203353678838787058141186076618037693458789794972263035702907331972308330186623945279432924730235088166047969674847427266212507559150816690283937241271520850002276470899334230367805418072265365769381022484808223119390023728828530778749245912491548335462591600728226910810790490039475103245389705786957870787081154795459565476740482405042941218573644137889686761410521202218961613359968723530073962513812236843681725654312310569600583663206377594535779354584831093322364577561769019509280384051821582986435445322534304507075994769741100459129452390322880938002531035054881859115210260142610871900486679805197564876028352847423720511734472875571422638783636960050972936392794758491275846173914192189853800040221078580686032841964775178011123886287461742227467618452746867836528505648124813373838011827279244795414925671774877121905676267141356426189018260739303189582438106410867210350718676388256070457117400387857010876349449475037828230946184410238237075098137825859990632202352837271309350033044135825955703026413690336199491605148073226228145577976778360702411202164024144198504458689066562174609698339451556491466602960920487044017639961272070500880196896666079233117085984315010827472705108522909850428446864519687818353784561994091014973811602016461802703321004736567187167508396334873922149114744735728762231122763747441460410119037814134665345202903733145676854198287568499534112538988689262743559281778072751046173675739084740395300498245331092295063048335581074249772839001643004239215398901595865710344351631832928184839326350967348656479010987986751062969947126305639947357331666605396342951680219908685818386917405153691936761865479856508013939878503332897709873620836151000745526856613180957966596271854842692608919194855352195489783827511441346603274337035870431000085306610821805523542204600868261533792941199183545200501687957120258846725967451512870017491041859997343870729831864453153337250092730814208251356096113822064993581132124264385920544447570030698739937554810810746043245433131659677978913913913284951083709617744023643985573980898975188804323384286072476213420188940599551622654785382289111214855770151616990634408954969631407572249261547696754454627396688128863350588871319448314195348432003435832717836788693883483164640079006416300945684354504141939914450808017217002908651769364648489395258032777916399966201024774711633107441789533860329308097974473575835054399779986339657312665017425811718307296284306160652031665917641446364119065017251255657089425826866881675103833957961009405274965340788063053738412663754391311331864032660316780602645810794602556112028952661353410537889760532541230604629141967306922550492008791334313211754363366482888442743349799417983133241409563566166728919957320190008664277005413725428079658701997229579531099122527543583010736120506909085095353475954222244437888328638578548877261536938910848829615524634663169062777469381904984280296616105174451323415566261523661869771899245492699380415171977075697893839620175008211634544648550579330276731072211639525111151601778538808269937652237773846983112567790946590651270113797063644281485325299894210133677923596298311236061912957739712795954444540420255837089875616802026585262638648199254598186790044255749238434808043283719163205534766666750178297574575524354434295845458235284712708319671394356566603739115585348699758993287663818265732534593940854228661056998242914319151307392617364364740012728604337857005058314155690771571008734090157909626231775869170289670366099126492253811830762428181596430114090564764570406287558426758985869416889125021423331025961016520967268133804516633527462516566991414029194968476644147569396307118771030722844970655433701725444312456860654386138169927404289108257532489613870035589835073305214063919513822634753292714895861371826731706601000576833866640823328064721066418262440948135162398208968503677165678998369544258709539764787497981877760188944741195383987578385744056595603956790921492203997157888798819638922020910831751760159906808019549177219009006366879792443037013144368349927296462302697073627147255388706017355714346170539740937817454187432110663708692561361012777255926100543030702574915051208641349695893232731741507644903899227022515505225714685711617100889776965827935697377986006988944075004650984067294772584486485606763847665349557434436662826110027625027169716100109015661335086944427925503785213697879545784708418122295132625066653566417255159522998515908569526239432734802176640612949000634127685595430739564325841493833352522061947426037805846270830997481196071470443602169435163165126989889329507067159365035638181160053129672335164093389327657806504064647355053597208774757510401252967443076634399623128830011097973956499920279147680415103947622044322566024133177793987294327678972027656004984488365084031330555648288178267784670426677523303941102654099237926738157317139767833216324096695848976598695545803885860174426991512638629715996616888914300122855549698471010224015163497812925912297519472890183381848279776258284957802375559543253481161510972979058283837196090068607129837755549055414048889488691683166236620210233279218800414841228162528977075319088154729918623141414322333948558273504360321812695021934123653444876729777544927027477541198769025841437012453322572933511380848529118687033040705533411064906019355443128063186076603885234201396978569051845002230164847517050964703910669513768115869129786935226516753787519086883933873633490875826214707820641726204706039835216332235763610008184875912279194666669422240537550336235391629126843252555128460279056831993432087313463723857750489579569296122126855730023413163784354454998083648628390488279035971432488639942184827008122271429788921323146331830456510029415789209793183906836843458245109054941516843728928484370297373137833590679787685021465779611658603276871498623451528003698653289998165911912331886496546584983999595918199518055984826801573280147137590200684009470289134090670682783729633025952869360329050829419118710253041523741684854534425878568057992985043700891979364659099067519163101427530845018744193191761322308362658391869971964236022272896425563147183860328949101643872477212514807783302962389309151914989467875928587893231141901503316655653600273229927429795827983871596377789515305055205002954187837138531688270476912692779019845341440843958805590121452888841007854124551538528725600604761053345485770144556510580516890169664074127236367713462961831111274799673428530475535694573021430641938889859385206814226191828770383063124448380944961237946510161729104394111652709191162369740143385605951019024635416664826379461854326730920277116161800333264422002940662168805145839431405250222394306055350162409580948175823502188234943647073406927660709363276876384084920028832208001059046043447506800945798188687159907712885259736590964378723496056750476627622405751637446977729222530797883247461699664912289538914932740294422273229793395147483039542351009917620572286836056259405447732617578660233541800152857174165059632862074075771995777713273274766224860988080663839552818420216087550997876425638684211902939283246418454897274659234976176676441596695742847892148375067139093752106812475661702553666590898435170695317143022511363732780761652363758811311381291758927614976279502016696342718771663576657965013655489931697034268253474302652789428315600734465884964665968252898924098899916219203830834251912547431778217515717439292510618279222225591026710107978557344389304377766871797646438977537753623927646806384585215134144779564655973420707155129671386692768997435140985604325027825696901947879658445589674761721129900054950113910187650306025577269283290195882159373705376443213378952067513003328951569321258237688450126441489021367220691408211345919981676150546800943006456603446633968474078760392074419174662115527884944560647348337929924462568231258587882134451450039443880411579519640548931373658867301229562429652129391044569493633937948452607036915744537070028406123538918165847735004862580677178251984789591953277318542625797178950955933965181652955961152983224260981279894293095068342378319453471910897187937980789657367092472936656300302934782833669407844228661478152515699435578219542881553790497763897416939980478073959819536561536879535607470814531275798632472114434024831419969500175627457395292366001751288687609561895821715214005998216999030661362797730945524734202990070110072553801850026643136985807109979470593397553609687143489864707213112638062797023676692301147137584386539725417587674750884096743297619714173324871193956814420552021230058936775006836799684675764351943842031961664851668460612762574223136310879185598632892564710652105962406759930702803256860927605469800260961896807782397982373861097953097072097524020447186432417175429505467739244281945969295183050671323356392962224953593522814204476659706703944877172337113971546198781647227012949952923592894961954301141654517590661567386619123926669296411530221248716346915863732773057143563985364769215464520955751322728167081420870158141815102133435564782422384610308239435957160872547788385255872251586031508267978411253497857192719328682645609551666586963862680631276237928433893115691804109972904854804774132183100626609512276123589676246414028749759662549402615506593011443740355410305197450524026564636976899417859483435067515721030792279231983875919705733058719769757955834217324115576071449849491346181756829095370610739288178674374286760119100395718619982817992114952299613236610924099481922765955376940040100221787493588258983300341156829475797835319509312206130747569218368388110589048370857973057612982515141161366078721173542115317640503585401002092138287918469121084331598638601817591913696886884172217346178329537841483331937558227165092490120721575054952681151793381942692599648634022273321601775699661273633740021223533491633267014912369772754440293813214405466653961904666185008724983104631412459798447178232825354047823590016953975840334102028131129458023936021044376507353972941287715890263495647779387572440998330910440029664542995698686381813233033579042080756931812468122331635723916427035461028720177076742441648358703506314380330401634425660380257395610921739982132202229982307928210634266094689739430309440304327884324135141868536338931648282845368016583786873633925207134003390143864015218420255318292547213723310477599232830001511366043886579319434210013183804768018992902090577973677929087786059573835050528408526153041202969866533744897964799105774987352665596836042300777260263568261612463340752267669745124524242885226097671614815297573873402268041899419924713319509690363285987681991732686421134971067474622513568139882010914674642557683472380565861630366050364092015641342816900877561363375798139796198959698509492612132191229319842528403497734258838465275266254747762032858113325326921913276443934746832849910801595005912629246287621575730827276786138685819036098549642459367364794939457219810918391735605253274390267637594352082364045944213987759451371925429138956583162995525112126118900227167201549403399194158031195151694246517604339090773512063414115203248525894427332686014865002044006307658125130114897096456631513162069357802163404756819732166187986847127864109861464067519213995890739021297363605606246227065663363909362079230567717810610281137547124575842209116045983907524432063217283697141418138597030280923384179429987144516519140266024577034582495420019833799955125078495850521018587727780653259969260124806412326054675720057150896740127090992656344734523709340728495337194956747460702945866848566231371210669491857376961544011722306072339419910437419432715475819744987934271596628610087829132654782203912540517994978456255295794344106078744002276583242375139402882414316594331543499728390358024080692985633605702867951551420322270974055112666243668628089123445549550800688525201897832279565211016738980481431061594126824562581803756336656622205947784847010833585190768461669905994191152674557092774518858831487878695014944737262168476487623827662954820968697971726298344639314269661955904603091052464934680545346084201246055795004769361816367392598790841668666062746597841103252262777957213491504684707162206947479331851588003832583324879771406932854795621605514461961206502899138174951016647659417255914077383975062722238096810984810561175229231926942161851117949167522800585982104608802638278144545395042692957245670583986965460364391450306036014291977928623467122501720772924553772016937562269080003775362021566586511593507180888618897770123897257369318615712565254760256147774048345588182600446612042979866344819238093792847563768319645502601160837796295364896921704864168320962832909909056302935653976484278989606258158701181001593862138990804324269696117185244787775285851167694308982415724493271258038042483493836543022505011776886666919893243086831515051884150513502648171657215361728046315584084062727924702483287808848240487306309074590293105209508270372173240545699230389242305014509970082966475573301084824905968592188069773498640832481732671641505805343317514705519041932904626438603136157273668288836132754217277229673604163022640738594003951918941049669362849977694860750888582703831970827148552956070158266052361047923745274949762676446771706038551282867885898871322672115426290520359335039379184995680951822214716475082634981366873049209951532126091557208069603391592171480174468429749840969409278256569463196804918323293416753525156975195642929478051927905909776516278197274376130452352025603084533230318343845549658476053243123626886124982452661428708120551936091069222218976564245128229568378285955074801644051633479194184719532680421519026305029455423034865050565729480471540962206479520281230974633798892833960922659239138836154914737678526838851156741347652316782469361337727554511975479431404037789718746285434331205112839942539437458878264685764757762153819818090372212257699076151557204898045513162659820301353052349000588300023209088237197089959341842473207825037122077887071015195181546924380903504633570568880950712525304141444659772875723680829263882308978739061330071032494462569431471670857956353576034911446124054474001409835545476345774773249673869560992980825454965245082974532157252998697226972396836205002484512132014547653453838603270815915267578681785030763561096913196806081975183524860497940517444012734819980321724284381977595940473716497309832623696100041389002880306753781111252988066710857824375892946123844254265979930886191612017774552753403335374370351289777204390861409594851900057381478272479556212592594960535900336621487078672658033505166729235305142207863761832205808734283071214505514635259603242612294535001905967585287338360270615690224527099047033215009973995383490721307641934090071539699544011606545552359917253574571254068763662159842878856674298700678554116315875676192137913734674422989450976467412015695164651301525181660455932802347348340665591544872597360437090826504973869834541383977610652572316526644028904577694219437782265893689069774692346490537635532898599050889699753063296213069187930656317448212756011448477825170585578987779167814697661078723421538425794182167518842755610901102146525032116640742774315587600542535717690220229078497006815527666421300115312615011041640928056830073177557373783063700731637482367317941609664423084421115840726857255823886660429027002190147617108609934780925454778676076630573055092296685749352597717858559047874549730305966681650908578479501739837522107199570265791598354144289391028199441191965855505034404432382939394654005829103682911659616889523937483489278753262792584087918869525049339607767917959998975911213124494111750154039221982174182565300239508922127173351513487314724397329573008859032644799326441692696388748232001728763435724199794603208253521727081874337248130304956002296239905484310711879401685677243395840178289630792559157870107884556848127782164242696820187256342891310412471513263613279342143194519673788551753184451825148100354185557784205659956647641032592553980456976975585067212718336967035956690140803694145918288347352055790801336323406373073437382056168067436234464698140432743219997899996068145553202128739050825194662894732648365424891473014544642727561488887862191657094233073256576139750172010669223402909257683624110676345355603554772171058193078011290707470920889206064889666159236999670383415179572566134665651490992826816931175221789761285984110913743528952884946004451210812925485042765145518219049393695529529077582541235579517918029893201559853922162614837532032761185355846217525368321546619587303686163755288390568364982129325418310388669779647987228249525761096734897466217907595835731778123597536614516088938004465879956017185637079002413327268652232863636120879410805980449325552313083639541164807747451198857430374862293069434701925849597546186922583433688062148772212753544537605783328561692975752927361834564570469448725557944340890100462004290511457842600993426714741088505972629695143559048280438630104995981491922436055587466000429651528962871245154114414210145316042113024914288075618197954269158971463323878331821755840317212434452883260221452169053689540186878736643200484679627942157136428338055536104706036119856199530380330012128404092859563024834926089902444074010849175275878107594268844771607591268978850425235662929616447410994678845203732939367113117644845908657051337924652435764716786698459315797123772628524907458358674351111624930681336594440422386898879995623934420570059189149266467676697709684856054882062358267185967830451687270846380818318783971129224890017180403294039887830997531117192610236162934238649441500015815863695096775803520953810067583218502980622245214549874028745666383849741806528897312664169688608114840442726414199090392245866246838364845582039275436715686153543237535401123279037296206475807166102163797326384523013446499156815380841860888575854356648045509993357014186831894848414677272043693746274986930423294971509369774901708267786482957235350516399960131389457562271450014293270980912973468870072082377206853643367249512546977969742542509469743778007822062929997662498671135802946412537842672725726763708660973182587260103652437009437020418263832779953499570336548171539391042405283947982112568359250305534226750992878894672270214014049481204129117533041064095080766886005854752685786786978251939775114081346790039723987247805853101135155073896156564133171486220666627377445016426411848583842987897532458680761656032811651898541567185541979744854900192223182053981589214456940334651872015479656070076544124570791317333852908836757637886784156973491920817313823502136691946705330245162722934055450211545200207574545028531925103641460719539266336629521935063004710255294414496842735210538731412317869757604448051501187252250152945286630557076402978396717026989069159491618577054787066393979551580715948962096731422193459471649596657590270407467688941521005459328229136292340097933995643362206514596395810592000189477532102562327087287212871462616363020803948154178508361631597479149096181315069221610419543978655347200644113454780200788624537912473858954599550686755838646072405923301436802054328216070807533614364826350169295442943763986084982810794789828118787637338091224197328788365022366209461254979215467281836037453184004785690600231458768044597012590316458570734329243078007796636179389139662909693484671866506343815570604852648108266859918299588753351243933463885442174622595439932121257421179856800020043625577106070623579152831459342827800499797210565349911106674691780704328687626108256556522527421785617009803192491765147107432907826278640565153575693297953115670939899235863146845742029206020541956388155417320609988643470746873318467490846779608909219671380182173781042365115715477215790666360234871521799073547186214229002872648771206519153985652730485031144594725909919636867899443935185259152202432390422676317785269711359972899642751138622925539655564479666621843800452338665219367339860685296914581931598048375849320275992554255431495675155945479119701872204654254306503856239324131413027866843931920434805111496396258354565093622571371330023375550087030950364295428321090641940385448679446368881926377571265641676733686321098806275740921711221725645437774919470338838075255451967956045805089646810610218467561387204234802910363299161026417178856620802677172213610797650071990760384831930236599439307369500065527302513380559916009346806039472141695795720892630243010966360938584944665773145760421477132744171732514511679363771937831379244203998406147477849830257241150796150642871259392131384774432072368875975338601826634959788799746994420377951630666947619357029548808501609200549936854604226649526458565594994831299885265867976766373863340397376781212249082150262316719389561195469843654135255434948131785919074073824259668040180331784330729264951267854776106685395224299663530129534710475671978408852689220352304738426391298138674095075582571837402177083601648061989309798501028182297911975428834818644667204758386412338937290299176383683405714880164514724133476978194435657413699640425383050183624244883756777682303236074118587408190146414414696458955730939886179866895625403081908696056420278480818945491904469059668950218228564860898402593611229230341033137135627998766058914197943553194363044185570332531468941136287727851172200040570282235256627253287260431627073643166715396277973951005485283440743877619034460108347708455875019884153470444437086074265404921055049307447125621211726066421049056978759934265078816013468166418902374249029076668443128225060345676179763583843715085334970240265662221920394744677750336026126692423853213870038458653400594554129309987388654812884613672851277081472679611411230386624449992256287309824136368559630355900714360724896175523225339467182607725756424236028501201608417282770832333691535054909905947394528954904062838314962000445654459553379273748555802080077436904814036739826737869324176334449566215470811746472275917768768449452053327167577964966093571352528940263115086538228000962880410385578377422899543576063637768656934402754795114222128380994265740784074269711531093024634118190253057402471326022452401426901204070427316593241698182565441581091007194981953210512806773058366498251923776985391489063587186287936017543940070970660256970024806183578164069042319638733577431451257800561458884666350912397259517262963450570209382411611655086236921222988055851926169841108822167015086876770231384223378159484853308138841981464903206334374662702439321338791211443481385145478762675581225760840906208452990356851068985094271857294683282572768034009296586496136678334464143145432615201735056886246645855762134070562344691465728528502677964594264927977387049342978263968663576886591967740240036618385593475338303164732222718497949950661712196663152265304021390829777177143953018613709268945504414798645418117528429735628077727278920391705305977816563516298626384354502620224293400530450095210369834501097072795178129641926384016507708510915266584106852684948765620750931063573754223488530003768393702229897084204547567947333527852360418452329898891771468303946547524485160781437629682615134289031263395954256835887408238004001960239003242744777223747566402979798730246160049462458305269221391192707474011876264873309417567063306415615119336881051381416861075873049385329587649015977676425722813203658308487793380364605419599548491883944780341272180840400209305872015182464792251244798617233496482067076182544869927067261566867606388991102399711281293588682285159181566544250722889751826205188074979113337132363642662165600795273700935811941909108462351317462625897874123568338567019480027475400915284473598745029268159592574658535065307419391488047040361482058679571243574953491463069694145284989292778001106579920993217455364358928272964061737737005746123863214190410529118879542812197979308106013891764316888059290835609130061403243382994931787870351812045176947296816735076016721282854328455364620892014140541921777861784067899035848194611765851172637306833670116053544072788094428186968742091664838326009974674333491392202496732865451824880118922782728816704739091630536028742270562412675885637866058517812928636861036714267620460446076413845049848368455538155701720072673495556294109104054190607296552843939465217472698461767635269237752201694494075980543801663697285228077409020716295686763236314821180757076793457604046410090438972527176841296423957314030330451492459102896902240184291806405505844177420353244928368138254369436483027897903472401042471634979780307127168220598147518100733354581789343746453813726302432931104687207316611348587789550679122536567024726166913076678868684673245317544136665878411916510691978959515415030266103990235701530373608999789946216691301480020421544729575506198505962849836249190153643371482037635339626312677944464868050592151339856448168459179057063699326877883384042027342251659856274944821983336007294901698323196505390001064805400286499263845925840091296549903685023505941014509922582906805092769876661438768759796390228383643036054666240690582637210757265099334536852866060920810744805587580057420496576645253987301349334528336900309599121206333706010156446196838569081345970534912210430473491746090613268032823924543963729618825269366466132923508809314459068889030195802318054642968202133500802408298689912805025424511549712703683132030342174032942724754089449768458172628515308591251780932266823818988774325398311012737724212831829740622396872479496643042231180813071060535723246882402550720787719509581259915690814844380961478557667747613842897439690590752182381122217678926856946197304657814068977716852562104465869900748442799256476179000159593526647722168704505689194513997018989135971027038250431277075817941801620435149803014686688906813513399155932435033073467730372914101543845248552166758480972242329941208017492622542584533733276615083090082060691370724286133970528674704867681638756276779945910832638551847658702587784162513470105839757417918720853993254140452727057597899530150873372038990955410110998185862874240642096569753276128661717761688542594186307469920825574709289999466488801164098910058615456408402131244381032937307634877972072857829714140511050011518382303135989455838447452727781243337023665625040880848971310146190266757651528898586114324167482567874208877062726766344843122811129888387392918337853606441280533930843618740076851778870813637261592106011894394917107508869223188260817378631940553309705053583991916005952456134936362994518244300779289005296188643134031678106112478690297957984546815965905757446550558622079801345446511948559393898299945202565881282028984959712622199662380389606803137439768694923341973480326280405902049307765648980554940697987928942313844563891513191861875250172487983314394270068400133781555729773447904853869494564476008415312374407033794547087114310075023325961437128716393980288762829960535355564151614435697463666263247432578427971975718745669612266937057486650499918286141046110956352928429512909029677053360076366302252566855477657190999061747865433633025767279557958648640899028267662997096549015474973263575667529407540502864294384449973094418939011243552402184524020035110787289843942042808531354635410810144694553877804927714222289383466687566333233672455907255679720067106088063917853010740801487982547094976430001185657029889014629992873924646597893801278266201315311654746219347393827471166262431827910961007952602206112965957431555309117687986533405839960481013156942562378807547348409308555264561666398804211676335261930103443585699942869259713482709542770305872471870031000923826231621461257768074004573794698319126805464898825938372460960457878806859185672847934850719256793069950705404063172385114562688304342295152640283425850137503155744526995761402101983851885334074526244694724562052561944967416625122307005101226125006080302411372082846596234675170021933659705341057086790952391109362227443501066499569239299177804401167787873182951804168426063489634225370765722888418691433168551094493309042841937315040607668549283529989252822837755691350655694395699355920017812499295435320145291806409044767009576948864093775696338470955373014588239742008764838369535056600472389488634580371871176718487431070648382712503962170749594162818736180755316707143806520257457482304750718542797229346348374731130840735489194668845649233298350287674438316581680222846206545068748749559412968897199266876091915759551330921753508917145118980521336702003011961327335491984835426125722232339753185189242707379112678176741594054938923222069912073954767700029681383797074863779744820253807758199162514202619087655877605415854048016280959959946266631364055676967209037157500688892759613312482824141983667149243328821510090625445850756158948275187904799893749766396407649797921035233730289729300224766615772913801926433340789648892355640289187584538524732352463992000721148675004013822929838002310376976780408405868332737592418733600331079347541283219519443147155807527559643160502882130621557875671771348196960409122074898601989718050914696908714661368754120443349888202685358851263040810962122172525641763376113466111233108410791508702633466244249368347761816187247091440922519466659510116354982241023855248894575265657832358153055796185964395841696412839232833848404499076903896223488943934048827198917969297565958087913477316227482734406242180832142184454172869564120343927265860884635476287646623589487087379133979229639003453211040749726531436824115377803781870477980999001615778045541389545078443781345720630496175087022918121648704026550262016914874449432483404078882293147464604066936399907293138768528757053731094964188579907442950331921098171738172025058542636766459505719649766314792148882800084240451767865854608453936116713203503064605884614650415252386224486148444606164483832722353194993764678973515876982524619288922061102538648817611263901991294625718245143262406282249648587290456745797226681493781270715613501844124348558619623676376814143861490775252383582572697545472778237498737002863037401952102899091593900548426242474295026332191900267462144275234331417205802629507798496542431604424038781859268328704277535550597597077370387993545755529425753846148215216120809020669267276699354251804681673337760975824773068308036129553648992591088888809524687043629353438546575976062100332915980487420981796603551504699069116969936392369100415167806916306777763843898727090849745499685489135788460473880524416519242918894110781250668846809691386403026170118723296599738135646171960841200570899207108814836103011645922280088464749200062049732960033386482114336985135962812378207617936814882217612265329977440692725834743703134938569527046918640834068051130905153718894121270661983486798440826506318494411857561795655916465467767377361852385433091176622809600606740068630146794950860838727018019163525835010205498051630592590340841421198386439757885430901837030376031904859927513607535137974867397209263900318582930242018380164903715434268883041407875859796052595225621552788236157635412849907803071146549212469573559474178036579623497173022590395302250662013710214672139923460213361610951947005887018326124708553191655876713596368262068305805872007857589534388423275981372834148661123981282323562684179185594130715409004127046794793911525277781368279203277927083413246771564714911404153309091052969706591550744246772607100850786180554564350703345265098674562021484016249243490583082795762686092958820025310794470948752645741170010664556582967265048278517893090892610227084830565796310119275154340051722089337359288485557525342614796873485971569350068794534000189513633087091103474778136213359458465834069522848944202476052671922312006360943751852741868225826477510268243712765116439677059935848694356919862467212197062374104622739265879828404242776267154240793446213483388504446213764814902702910670285244963154260160893928855349071757608726978313640567901097411091894638772587212694614280379424689719797956318160906305346732055239655083664275271588506871165903116250454272265084422098419904982766774313204187299765701165447828583396180962875297655890250648373387112905609658462338365884319594285049036847905838583441900605489770243571958652896543898993464686408952546087167343377001428073671727097445623597364630661450994350740681613468361497692277527032731502889474839315843862812029136320445433331092106966747590411181650292142518061606653428443749377491023779716515043211425989075523915955502249535133026077054854868703275486840648113565529293821144044307067329331776149790202229157259590834129412032515859535021457215534565312147986390678590804934067340699941002570757945989438718329411565259723262546481960312155000146468238743468147029750276263706236479864980383021384544231512085590829954133906770135616535840901216703374456945657925709991016079280019575815487818347356891865741536581263226412412056736505374823220524921608042690413700710448995602182944169499635811073508944249619865710511098342147900412572087916796328500642593487777752988203389630906217076028885354188632598387248178089196913969816964380733309285708799653472007728017249729319824122710661639771914483425843530016410208366027998134844247093302669602957158741323478552149817021780311938670447524623295050617804182290534928030464908129173141549345939467527771750356190018270707412553055017670463323421791635555813234438642906356230574886723207223706219688334198944823782714846055765636709951530769087641888751157169397804938305207864537686316448369640027019672541715122216886603670989766595968647506125445283020927743930114070456164629367988741029952653374119701174915885548262385721387530909082271597192825352039482478551580081130772820217174728858799071300350610207393179643113547308141897545696719061844299506898956372378813378848133322485770161030734907058452858218059248242968287695647567931615811249868931838955907531761993476155601235072262742709788999801811780016159158876631406369755773316686295244927185026892724802721848814213843678822175726110517018853042635132635919158078400082183237797827619190971750829009744390487935293147421673299374617266134425503660483212790282540051780640893488840911113875465277734376017218931137118243168866431478658832046918417151807199260404239632646577413202391452823970892937556419734891054672032187345784173566288134490927303196474011507196442687018925941712960007432526175090071819250874567531079884438008633790264484677447208415484670450726450111888001452773134258965743053682700979159264671436898914691840493919892609557516162644676433900907931635264081431643420530545469483606395551235171425076207414825102486427675196170621330921787658830912979359183157478012934742757174906398297776449174719685304475137149546538305034748209726968557843024089831714575657225474276392337790881682205760353643381271066952010237527492754789668790958023433136775640260883601800873992637371203374707003210603067647039884332272985863229342255293569265039288275089797639419258590111908802142626122965198791452417181568862331961957736080814433839487079017257552579977371478582862658247474441390325891934201530196882815306689877666052052278285814292665176456683754845963557934194451239912750695186343341683078562360668398083424486933951191376792083017615993925124318816335841021506186844406466674474856161014345810248743353694401937486517617807939990872339493386350856893403172052925377687777332450111463086522319578218577342607598002316091066593436920327104510766637675469617917784907261031825930127213648318715692285449906009225992481540388184034838940246299017564584406005788892963379145917157455441247868969228947383449679802889516411172319773240429964872940557815770105266187257944240184291657484034848773671476649392510155125320966675366847929226355507965985031918906975063946823645312965825467887761440909654601711407231202559278121245090336600131089886211474731069979539820270994296498739326008027512919784845761357233659573270078108786668223938883326037200818717797204916405426434860152026809203255805986185473620706806450539948286479251734891122450035059594624073804637463591726952735460562131297069176683388524591269545693324289217489959375652474573317347087024007821618947914887772435050701481290080262747766967455780306206996437331792787722966687758365544628101493186902303221092258107863996745683922208442333807745488720864767221508992785885510585882830010568676234543149282246603922449807545481501709628540020311070827290855060888226682138447933282591010404191347887714525692255971778714614240337549137560331670532239830662394159055630477639097138198056350719406326293578936535059951555123135899681678190944337285749422550402633299781501540488490676674178707154467453703088935602702375280850620134069417690125282580582297572449379680637651515807958342093519027855203303029979318680765506663683431713728075874793872132541828319850701335373225507470300427795847287551436955603501445583050158523863510947882017286707680484511101984678008801087093590983676495280935300719521839762249588481758021369885500317057603881952188470562485468028156666084965036471755733491760971242035110533568738736867455697225428080035126129634881092641762657723120012762032323053658357329897853203752134079807561122258360379946423506090904453079729415817517636208623189405251823480929869211854336962567636074036909254716172220994802171595154062537698361758984436251763626065116017839850140470073982026372898307814403616365599864504404464350938954764961927147146187425610354925841467822217896561964304566965913149452748899508060992605413961135363256773479496552969443932557438226221836056763891019516440819973928747821445828716456444215289127366796634606845476692146952884878428366839132946969375394159735894552426495502607686866725691000937945480411474439148963522468215342767941177577444868614281830085755124045803018552871742651102210431688065990404412036857594955500592483504245757709493924736769386240706954947651868954717160502993234227556450218884569585913798225613725470957152396261944490696232335321025606605130104098342641880077382187640686958753536417460403550616486986631127635363694131459396720343436730997932336906311933319555079722572985713114655041115290599621554117667688173480738720775880944891730535967697078716799882401872102134584555215462877901349720679805081981396564049229907864394440952017842091809740793252426626127113613675591094323160609707053199066281658835908025447675722473255847695929444267156724005420130522772998450339372615342314098004565366362395718669644302166501137028957983047701183475007170870026729153586929024697264472804066995794414941705730314037435627670828019706776195400473506540195401772969439955326715843890859794214529888966336560331604529777606133163613281028412805612620444582525703503163799011266014932124702870116782511660622041870089269731215752797505635058902776772826589156036742424770059874151050650585822907735259558413680929623494799217408909871222381678140986452700285801090684289573929976644502909047102756298582084722565655042745456620326578185796145405989381747352906643288818786118067062596178591691807752304881607759131900978498552697481491008245998132975585160165264894929575482026863647366938054954273310629117601476882307211718397189688951475770209280361588712991689752930143669016840040027958160323960227732402656915847227479609990522706014545394438117731390597384629740935179558420794924903887438223782055910157311752153267172760441961663420990012124705236909848098198071719231358886260304789267775277823467452397909128478511982710357054349364416547045191088242445545991103764809319889150821318536488483552994854581945509281335882120048585508494350381305194365050281901199881786307313999808959649622461848779867043082163062455960020441992144406880887118027024180864914074798177592109140193834031441533654134417049245147560236872264336141691361273212166028750299746631218870693159695933119389618491898224673855774689726032002479368653700101975840166444091086907025386181507804568366237040971223585712918507520441575930776617543025181140335957604241073592146189273300895153186338453134961250064623581513816297534276971429663253958610068843182360767024869891799596906171855619062151066021894143611627994714828868046475557019934087252354928096299005362164885708735980985991332337714224879477644070724128391077528951995547883687545394295223832015346612269238900402821548259186628463266973964856784994732156792267199633500827412134669263817269688533122903580090544542496356227827330181972588828778074757240547422533582676648103693727660960878008917091598340861756096462726375948409119953175412751414891701272693336461541589848102147447857373537057781058239107042037685629370800090989332981975201998707497545898561699643673845878749197295069526473217754584201276529349596588172407738600701125132278825950824446242903619517069158807488748306978854092778468153211461377407664976581277903432544458209260334660579880256447883086653791490460978203373944050429133069468662654858176076522832636764182561745322457154678419729334030298374533182463142531260496780752808280187541531099606433140880089207145702842566870465208853500206597328033988646119339143863810794483829970086905966658928786470346668954911848468027662069302118572596210095699057669265904038856724343514440898933861894502126558741759934023349790119080872811021367112314400913212792752891675322398496586576054644993235393805374185318086440449146801099933608263782091777545287304159045487361723192624904400408095433238579421111048474527158864155660501711831181641868210539429135651291905834014393688682328675444251672623115189513598911664021766531028042923376079431216529832931900291049043445451830373001054589712017470648705417853700586050452282735418163404047877773420521581657756341008126580948917913515562901541028084725515922803397123516871196489899112060440298915518807652420249599400310704365491121312883823262427106974206042006867416150047540009154158812772313897960301771390371229743254215183505241145919018175934402145776060563828290531555136947827287367048835713298189397152629986561539323222876757920674501247048741883656918470755017109864548063943319305833078056843082200559343409591870249612383445107972499773974209567119926356464711788678181483707927613927792452031010862186468475068696878241650500431931558612533374908969532328330191086589042566442538427196233756052134857976784840886254050358523166944541028510402441720848156989285319025605162420563960932689736791901154295988866170615900517842663463454156232066229972571818110285438274865876717004071695644004166676724792305518680937566730283306145144744495457906444196056381802346507331486363469939612575978132393389382950096582646762710876577217288911337987746581112641726383149809034055994629118671477515397940742529159961490490766022089980780406106468231486701839891081881636852360733691603781355445181362306506571745256381567595853060332498979845312911697185985286393564159524739299549479510431060639754662290950756314154024765781616833307847961658044189865744121808005509165862735397264539750023183639425369281216343176748448221839529747557661045553187482591681620977357781634076057576192771044486454012386433072018466834573609590909182719811150545189992991582644964237774873770545040697532729941328996325472473201644213238393103151899758434855465778696528988327567708601713255962295371478605378112325575199202541129791488449067204211514411245314637959263526141274458539778310762239047203884735555021546344072642353189871923161734264261795733915401237589404663966343281379179880296849884027214169987606447352223952273516037248688752659607661091516798566545321163521781447618231243727331111032947503798435374760615430878951680180806838430502681419697963098761643631898102420539021996408479754674492673750712046992176165787927959194608649327604291501565696163024272091762248294219517638704531415884040608763442003511891493165669877906418708104743987116451572906051446752613709916535610925826345590266240854151790676677402719757480317514876817266857506957039448290843237259146959731617266034405597174956948725672722907914397489119088666587180692078821465602511190527584796524359206860454219823784522188298358805465703549667270374012418231946751133509600331059679624498198390940706854826363968858298485933410788131560310971395344442313377583736102504325955861915851890653274793750903351912524185093919880335900790126857137249530918558376427418691242155694128048328783152921330515702703585713274529148996978374773040213475532661123148403198438362740331693851794278873909201281075203638567802360539835462225422526775833809033937029540879245070775447506295173168779179093199789830319031734429761922531909828367009644668737832818463026229500604042514266047528817911237066700373202384348210068275440609233583808466334918601033146934810642784486986480396787156856085324336989705773592807078449062617525230338372832039681458923756940849402073021144347567073419610944559546056199130303382819430268431930964667021514854334218627092323671081572939815359493564611800719384006426646355750094703559845329632223124641695805737142103347187191039910933323999512833595300667056365461616490030732878415325909822362573627969068425308577220461745204745847241039799797864147162795517593304566715454271007033150394021158309476896026245770105403020145115391126921774433786499292795430239320371261583797748705822541434509418293060089835195136994873942615638950518031021201590915157947952166543308257122999107280030077884312259618599651293939178910856988064242244347813258573211848719215121162490085083877484228652896625081791148820891926893571461200074448446852886533607544880481443962813269827853343926587916713637335742767243048678334774202369106428899003599382166852557342007910229672609828962940588365739304369527505344773137247451591149863505044470968563602191626755985080901616541474832766536374040352671823046373245422364513126666493661811126630428383012786072079573240742033525040992647044027372852119046627274975371526675257024394135709053917204179554609222085366904080895158291605890758952829588942983611899690724684017911918107100563447797547146712320693608377476395835492932065166112086280337561838001594527757744542242776751234031200626447921775586301033215110803587682074565402640333863012708481957434156507434356562757829214267239565548574240327245518239168251566161506825773012820586789400545753977183465307952519897075875322021907762101399378455230152699651450333922402998289475202396248399785664467684117850357427835239553648173414718863428243978510737946798146143842669406854075359043443651849856517464000326267770632375131642514534518351783071809304520095090488984929346709583650314409159054895913518629357134759272292294279888918526989037824714553275965379961080367315127371207268366017456326863235881174304408451486577761381111754083419277008420900268945712434106961807039900926006241165754543456919732090107726809388108798293279093595128216027728148769309907363329794924552779619223724238722647031665824412864773152359883030282350867139751151994194513145969381024862011655237168414143828982206225002645985030818518030186061319048641247783582239132027902134800052664006248453693987238302316734978806957034187722958014011095343717424267138695838629022681205865273893703591102444503627870026186627218796592804033145768058156699657143629793019612225368108816125047209589853056502835650809330093626931868725817795770987781816138804063218005054345696703524527748738633380066101348583554977981927324078413640317443154119683469453905229451226117543018235055062798180517456580694593743818557281684689236864078082778113795983100956187460177740583762339669113793976916537476875046246147887469227392692149616728085186488862100755757806649497795096542061539900238052812700357094124535385310462118758918881696889662135944566828801139255645226304699339736303590258264951410921523587430458767227243653163849849329939466986866512775098536442483416403455531322842167848047281360240844385828001333042884732264453465168241338221528149357975274990082367758082444075061352081822002226979462623773450775091377945670398326366460110000915781901376697464552651006912194728827143716151325404903211563403229130147630901299693696321884519647108780503833646473359926859195501363174337120327640985066657129830182462685471915737622588148778192657106887373214110031889515033732563626820030454053040020031880812964229051887303810679031933311551850644494083407733609120455920043895487432079758347857609630851966034775350376763904232450060440166968871164879898004390264486197146352841887378734813561087100788567290030753489628357138358737677229200849084068161938821924132101413205414694604250111472413656135535565005153397095533966501059331510805157484199670710359804342267439637069407851059213057259896377197879447729991951857053659195902262479542544130112900766159260012576958320283302826986993838815916086514093054088672013216661775256541758869810379785216899963819217103228116338213744560476921480234174133203237635285784650284884375611525616129210780235415566885299428269762974409261629046390656495068471302084881353409165709489558120522020322239280836896657948823208226365161301555583275871103299546772630529262363749367292870840843030478284160641513193293909531043162092869319774030992959428430940514418526020145103838748797617595858227069757237680935668711833549090680552894076361635724958807772326125174165204924561261832482016500943722461397464704016424567583596041753984999915718434271336222939037000611706272736466081875302557300030265016486480430051877008743501103321108462954442456301237913087874243342009603486342843746952206716361526398184489336858849400511660151005169705682383229929767801560290808274463610641578806694103998425984645800609130416096475294097172078519429237500701906632635587324684984558829727145536266159266516275328717224075175379516672869843480371209364546072694100353302871522028714292099273220604954373791147235222245555278386147378207211321465335673357436709756789090106276871355160245102903374747661294362509709326249018100995726639359115810273682298502221294057593792493662407907025892209193102525863894137921668410113650444660549210319122748153231404821899965189022569016400805386716608046576579459523019147675581391533576041888127863027956099601424083903983984023655682889472240441219754379545705266914688388017260915508093072455217248463804831729951200674566657799729265828855443321379425992169489988109158408999723014349300354525250679345941102348680220745319646489979078371173341919364715581929318561264228925612050334322910507744160346228959862021043011209287410398439369719624470752522850133164538480391604099823848707228915051679332723296371948908432560522151554746671801329324813694940357467035191768271891635011947683707130993105450395667000374435487229198763215463664543148876234318549856975863416583570298834226572479778227754089110481083298978111924949085892851120106902328240293571687358329939279111295522679838364136033859027146561931780860436296107972958462998839644917034010223642706025610827221860393030340141953858233345515579569993992882599301113075514740740405473862634970629473198775009808326260652289989564858829755706388198835139675452765988200413106020892104322418912386978824210660038328463141706662933406460569089645044462647598798447974246934716522281852163920550892310800702510371841285542104800151605877457230827268709032108025342424645675116915846317669633375472079009611644010685291873435690934598432505200928378166349521574071563533324685683739108395170577406035490099151682041756562817853956414293677665421239466658461121496614632694477706845468804119476416718977256819824297152912691329366291618916019298586772716981891863836890298683102952491174577669402174478278052884552006994032371858393360288052764231986579071848536728447384085011957504252493879741434076744942266058360763336560620666442728077697136932795486643060722281681339095329648588147407213747780891193997960506450367680905924014186670659558814297940319015354748479080077477805474398060947851686528255676398672117213267914328264093202979949498719208915892485967612848420105052099311407395978337578187146632607373675215455605121696762906121034357231200121423575782356162706566016436721615417625287467010247833747353141504520404812853267277572767932446016066441599822191001528916916498463462320536427341910465834165294591248462049805291573279904629375496850507728480182571309461110683183421611027156185512616291991048892574431067483320958266897245330027204572564007823600799280416654090184444702492049896165793854894368844673508287499203594140332091034630857893070580002031561418385331052453536097731157955541812737176436684988616750939619582609107203319243188192223356644549135889382947322306078509242305500823889004051426686385847483075292534399515260125390739374693364670484494454767304019756330316163008817678002101154300009708859661113965659668066440764144353973570403098645631535406771411036833381078291917303314688895286317561363735985444843053918694696583213234398501775096173621666354290539356376058171076268680662924618593006153013104729831073537083202859236542093000958614262727832282420161620428160509979529859122120521988341115375158375033801199693585125882896573009365318719554213892750669965655981550775763230872143030065371592736156353341276982256706178242208340457737870926953246234270832622577287078157962295193534764387380247600877173713185515668228193263702046541239947552552725440522632896833386582291966889312602265729107150048588972175880039870800319056596668284910672807133490277241871914034415312316331462956689101127935595444750665998679941032709289449494892123281903353562977282655149694013309895130002372686874200695264674803250686918543848120232361476246038804199518565560489014034546152438655203775124767967211096734863519155284632992113385961365207210797504068016664461583242520272203048293128397612688054969879477234591325135437320550543760486782663726069241755216925769158853819357998100376650226921487702801278523222018597547766585168321022969148022913873013477762179944146428221633353960154431754474596373728038401409026484476392435821234677181548785637094436253220800572262512478449719154837384931000628113103283069720498235058804782714986212005298185945426750065111799966310749886149334985221932174247218620320627807906380212426218815753802126801267927595517361994006861644196468561460175230814623018252904630386239874163692681353558658315592832174698921074133589517819811749925961359101470157803351016046446437342860716870610549480204615173644324363254101493487887459937935484943074283483432478787290883514363774498850740196209779361447661331644139589600382342488394958572441326647867715200765907230121179042273257160199938990637955456257870067549594447963932468248951610620847883251444397778339703030855369263101114721876594155567306499635871090809650718471586193186337239253717781770210595287754036202135108952401203955623132483443731405335674848090658165673808160430270921505038702022887593266368374126645509315635398370480312716750086706860397236193824116578726057829066561498633428779969472809762001362622413652120562407106174109302378731118328503080818469632549155937950737114958309618042387516701808401430886209924503143737534079195738612173506987437937805366203413543641498486889837129947295639185433250778485336776948760464680467769618073026626154507299449463923315682700212705785749526114430145478313815975382495113999328695026936576061980795464007239600611670386475054877173718275611119682933654511189553226507907855723292369070575589671181057941259473083600156452091893774301111377259938611686651226087965401337804727015870946611589152268054334101613563399194829146405158715537074708285464953100961995169226639491252478490884026378893126203343062757575362023843520247936262845606225887121689768614745946532159705207958638154891290299105080768316036849106263821293826393997476623947355659913592038685308793411159212769686323520668525678973493985727708089388914881522545872958789437074085368091147944141476280322053036825234788181723250040195691584850614293552218231302693068506925812426510094145641040420709672840527849582689951057074595304327097884542468212635393793122500947381154218084573019225268865299657175779145239211440884812497408579230524901875925370871252565893169480312262229329161033705317611870448520521687595951194449118410593167130124381068717446339853919034516746112468535580514316369604005231040798739567120214993183772675812926223338868456887798886096085810487913433588857326152401559332455660291484290595577726543859307674162524332082104801588446950702950192647638220348941683377971719089606710439426057660214248995596221821202272186377940883700129267981103554098773018843685111056856438094584873691224457632019704055943170639901913805091937009149801658757402535500878331411369966828136013122273891987528920898192568486105113023329823096876892433951369345474551107323544527720821017701005661216020990933125595499155803421210055546111763521881120159834095802659600284173657168411274156900825796202074624294506917235403398108156187200993538240762918378048354942422524992318681429612245845962518611848171087213257255290381896034209630183187708762482461173770425225567918692681731516890190577349015812165809290215268482820349530487458541375956492781222602800291169589204407051874346057995884457933960359194002941884034762278530144362511317537176969191373847395991606446808424044153678177987241092678083935978113439346383605590088093076536421008899638742529727092579599026188695611512921553995713740838334280844963932424184044510714306797566883737022821705196406212805753699331120191645225223210215096227247772005585445067520122656784138421946523176830629351638424196595774747073423809376238414193346190627004950347227575107354496478133738308762028317196868579011687878535462123755451510557725230102074157222322482586464531345597551173948614934500794552620466379490937689590248065138956324476145980166331727361056793581027269295159841714833577972732653745604876817812226312470890785888607424150239157348623440479455145118416192278627861002935428120476630200063488088805049300592508668699845714776159802315027741310964599291254237189267370278448564786633460909459879949353793238721468086107079809993178309798511894409828657258580149302501830011572470980615479751472923316621588598526118715695552075385251908021235114732477217671787004092394397229675491663346468668211034262936798581491176532335739021916863314351956322422568866550648180824103630081914504827722101591921039385955370298335774312512248306263562666921522486588395975463545940859967738644314748291626716684304716555578209764303750931955449561976699345380693345154065695254188533644700903044891424332692615979303008475070596900951281084389503292276762270728611242069429447306013613055406254870679228163418559031384775139781712300333665642583420333868367389213515466490196740056680365325405010849001723133579836662176962614594066995526236897066110712827357792592026760176211320490832916769468103271855064171603804997906012584606455993708127250355530295732535381819106968364034801481907834594665504635923429956329119398614258735309992853450679675967427604565313387738843438183906935326604529787536735506948714000137235789446403431745829792793980941045408076845641806818076356666215422932588526112748281588002633019383297564950102626394476296269657476163447827141267659340870728734193105302539101732741808065085738336468278789919522399091201587662964832969990844015456142781167000002769566615479724899427136822599500814244971254105003430962720100239890255325500685639814326098084797765802784918470419339436195236677637150148035127191922950054943376406840378368740309694329545769141149793890353209146949820134844493036427989417475798422738437518772541048299893147684529384819366962998410046574496583374208800239713969013574955645405911518328870752919078112555431424402801484983354698826382855084844849679886942789002072975768018682020006421947986853922560629205166006908104631886482206198760125811373739078367164181535509627811552503460051109037608532416486751808125683576175059383475142605731939068653164452382430086719662913152012913462413765020279521095230473777926629762825949113501165916607261548711234154001037359836074185871937021996505958237564262370724658033485062584528763058510678194566343172610533727733298801798816494270239568362110120549596625535295613569568269085153096646740786580674739175881548280069167002374671141360962483282741958011210201709243012857983824020320900087706298040447507138937495259156997742715142958109176240324336496633805802409704926618153225142974766317737423687868217717921284366391831534064426973556044701998054486959295127924755195272933798709428167066600768698128703581544844469051862510098920576908727795417664446948323871629408506345676917976041527170674570697185959922904569164073993109503990358736056982360338369521665693639052578609040490891411126673109923798253215070398381826614435111308015862267615078864640250684765198351052408016793370727934410315747858061030043824568879119069363774924527736861728435039275703276836833611902302758445984470774146064744510288726162391024027559902593032507037995234374314373267366214512248802759816335127900696633267557901811491614835518428192549620450759462993976923704605891131462272131121453371969341061002084253581636053898423712591339364415102547434402256156249578190781276025831331302408292186455048274399901893455822307143545165168017512680907110313678618102859522353831738538833278345013269183685999199799367897902973446914110295508413530266243128893774525566217919104311921853612233570675203306123621599439288368569647920513226450380815761053121224493008651871082949920028428284654459099300783574287627898197357588431064468587255903441514704822988560051156381161210795996298190343656026747683859667425468315655819129629456337416250332109079262983764182700669399426113208678629830934946085574548190016397086212215345386985687116593771365558468603039273025172136312295452647582109096680418458616884106945570718993501519905266884619485282160606265463511163207382455098293665995856257500213962585665095305844851796768971443680891870261276997048803950747635077737791829072553178128032735171478506318015611963520903989404392345212952754270614928497896295928248626213976732901908524697883087097989358802662260518439463520843671262360755774802360198263205241258298958133326928639576594194435238073992962463655583100676214430913516489190491095930984977950285200406685411702010042453012556536530711130561513675422367887129059067186813221994967739902290501590222366896042705069028962396283465257471289858485308757799549282411067231715720444889892522410526848268407970531068244414220646911805091847246307179702563623696192567264008787435686804882629757192830981468120428652459613424700118291228350239986254777927142310829403593845356644690638313301004537492702029805194812228075068254023284742521544956348473778804219549097089590924362235193031514280338355818713275036512998716887057735136864116384970506571897003313671602460903236408205992034325120537913563386794835398480373542058555244654384600788665017167872149568508849508987659299330515871532542116272581411620812153969687980131781063678810652927661322470340897804863486877050024558795421945243653977730547128632135347884892395668516133400691297523431405502091170339814589101982798998955955663479811552084070020841069389559541908114303668933547700288591258940825838293063952907073845313627438746005091570748823763515486118771474480442364368293954836966976202614028889237166768481484520175511529014958927806531642328902582699818331806447472068746962765137592268417477042976473170194442465507321176308353609859942688284787974087923087442371800802313544434316637041205599669712248829210695044380140731651549756958793657034026577328665643200045311393651819175022629640953494524016800687387103237312287378122422386232038311464346463902623126241725011997417148087378439932848021554633123376435651964054092327194640460161004891601860749753695461906141371788249462595881218594178122103159546229456749279884526286664548768881204831498571101637915569377356796256511452596476723824505800058924398291383627679638689787465077608350075843103124542479263071092630931143000753166611706718199690951576570792632316496817565531781080645965628212578525069082384092296398137586105381522342454093030259155446479021936675758226826691579779575557991776722435044857445397314358997116912607905794904513562490843429434270364727663462391384544475367228603007128239820283646559998923304756104284878745118089388273645289365526765693047557714778731427520373277510204340555988259205115479596218681376013934777615492622813344912962241077143646225415618730974584838390775781092852857997764589683126206256310709228205405177642376423429981691119878064366730968770046608983918220857261750119285491692149064136677326049206774538030245747030043187754828443889875640650457107616462773198538497296140556688451375621431606675979073406721952887556785876120299519924431839676121851833131495186480336880309578832401716508091568469165811194839713928265593434840030687300432062326135886020848844718657447012554606086305860092976909079098373297965004546893425642516968741601080435494978917301770218573222836761935732390426677009861427746231964953043543898068722745569069210293569543645863946328949072780098556227462932631820931163954608962589471381946331031573949737874007321378642430090939256118639081132515859942790160284123588984765997856012691664808880221181381061727528727410061445551795373723199853531340456996679613197763951760114924948806160366439820829483695873595942713451113542623368965405810331211992963873945081598725650063661365542946475297501383942464119338807160175521713505826937886936435605990022435031403445206841519941827773235026665953338076106465327178095744196983914644970846731000271572505187251383771335541356190537897434052894563355751705676894517684987272007097063619891225680794393584892586740447784986641903878112957822736400400216999374527352276245692719735716463581207827546503775703280566374224054219400057700812107571147574193783201020649841724824169188893046831663220985698283567246855061116994648265354834525697356363699272214611984442776254229175836975791401671840356704601674663176896755475981826858087358800814464210905292882375204344660061940083714800350540408853634762589634354903548670863511574985112220839119366917571066970022646890957714028892251240393802589626927744661403810337556592732055461272623961306916542287323372704985407182575908522389583825796852274218603266890762674984185355745916817516153157015006393222080609788285065917009220272439277543820383683650907585161167487982676083467899051940574725646829958294744305640217324996577807559939002669148732856103788181963718121293112332737115875331592874261905761036489941003130708364668358615252377224323936604934163248797017011879477875909265939543696855136743115722983876096247177772176485334447499955882723393810558310622616729658768810153697094818345617387814509906441402587757302957832325638806017736332338985096136219432466849543343844482059391619920335736516434157356381361808146289525036479805689486437979085097663950874156566061730449014702514381698915301183238453916852535808088985552316080133341305537763803598203853767687648940338798528689458090846436821616940580177635338336047251300294985515217375113214184069654224231558778001142320509139823535598727991084111267781022982729867764741448047970249569360725556876470205268137364647777994293037510313840911036961355572053819770885046574982706169661045778168357250857155753355203819947056800926644635233314744636476347323171688545709736537723319062945426880967235610413225663079007707448492144191713827494379906740103798234661361982426352087263547385140882189023576185648630761419254588286635734584097584742935787283658946964171693022681266569037523616572670902547211710587574249193258760703334090463119704985145193791293573896868063071178890299498780203282123831562875049494891052506758708319473534773926968778298570137115557652035788722174280864281539601723862499782634929826217354299587285032266893559997387157178790282266160442172689980011563807228669489456188595140301878653029386745076693949642875350849512266843178884723383110545885520118891097960021867789611779003098397105195923061901509142304599653025408267770026567982054829556727478670115705295838836187846877875939179462193338454433232256133446473862350008889749192658134036442407658085286486453313516708204647828103832050948816247730453386139701049694366419146770082966585226031815231628903672199789779346192613242084296524567924191151067993283113334857358774450047529279040702532299515841095463669544918299583192055684192535550047823786789246376070223372587748118092379916444426212889419639761410975371598905226038973714835996953559572290601916974023364840907109357560771756855570266532566102841021685843649877155284142001699473877389094497934794299314125068857684227238637593440126439342128672299005375393754359235074099841913287945433191204013733142219663899963945726621352379892892531226931932381617357406035952292987908143163122358189860397424704563531361308948952895288071764054747151218031341961490715038689752316940163151121693312786350875342831629315711098691807931915287776184157915812426491391618559221223926732401479949565787159262559195582193595761014672821311797143575429498873737497230140470276854211074291064301025227818214316298763021609248457337345700772687166414548538832812534912330680337112485766204447483172940150968007213878185072526167303267473751314071759945988426619131126816151172868192931450812375014094145306302022691864292378324347089438054837472210201105159731274996891832120911513886651164865404212975138808282625692264715828895431726971726798661976305240911329407733069942207786923737481545978398894417100796541386871675945936473715625191560014223718953523819725326333300350794770621335270341341708552725752682257905757656543336736972390234778072726727493658107529989152889448866008240105921290794306119452982606101276134546497768430473335030800310618983338241132855587546295643860060011798209465620549967647277329771946734960446116321890378381742965612258575847541160699841468179530848052805245760406223310170977342693935349665462320234019035869044717726864458481727983589241544656489446063136914353715674892068193628364243063264257598263387535580130348833749058648094544349045891724540200606593300272971868924628138049894097846061422032355540763418253989064443366158376470508988560845503756722455829080372298676582446226702968875331845247320322543040539508937569222532377488481873412294889638487086965442616268901199069935377497783041621788388367346614597209844352991802493057541418858795988851040613097243361950361521334338540239844043241618877470573345425964725154349706315218336549374075751304890360490342431046373516420653142474504098048383684903260945400517628512554332783224598774665025687901871295365880656115933964681290673786212550235294837812103986521444495285352059398376253424415348836460890438707480149362031299167995973263102193889217784476887806817314707793138242347652267157258937227970768202252820128695358169263919674456595384866922686872218973483528601403840250546549929493304705261203894338306704732343093346293029856803926796888330552295076988824970541983238559077990747113194145866180248895890917771632524630236607447987447168060502349143628448804428800231645458512189254598181467938841197194405044275869778371915630261824825392148691937861179042150386242245510321966229537648228944515311763187525968899687953095737008763759921443390745648942967574487274643313294505990180758124182274118169717868475576567736938327304419871899183823063346832006920043778094856605705822814057923075891894331505642190229005717745151749480447677171957880220753092324534613354390441928091075660274437441518437885722724356509518403795413465589760433437579229501383828145977488770683335431164507948495226145944166177946441168862245198057408181765253843130199363225113337760740860469779069640743203264636265037401677149177022379348464020881945240049044260096477099714637648843388406313223009468672171359475639373530177655239633166987310138574082032624521892518257810900802142038180926181032108021269199316997946844322038584848963548958880225116454165282934816130336242861329732042302850419647508115327588490085999255779075980433307708449819545480155225456845731060386583057985380238432788537998889250666304311701453782213476580972223441709598564418735763707234687600808786037862953727067648139502159824604460334797579453217549574819824939039342617077206172505304470406781836419296266069462142157259878357966984317268109358083886829509089368594467671292641938310364325972664476049894272712245422620892186329554800761504597439307922217140628379403103559455061150307560337136719182793386120823105043008252054168136784722372935480643140388924406366139224534611353125265374959006846813177561219632667293886558587144430624611341302405708435033659062133014815983396462617157482139550845583769687063778174032832716691927138752780896011206347298390380871644715251065137021174936765243981859585840250572875537755433948964700270701221589430505137598452755038225588140544808047584579963478705983333365143579768002495895682507272891623597425839233414607785874430351813747323306718514316391138258517636232732100661056140274787574413747397109006713086967655123964784434381630962385088096118386131102832105065255683043579010641069810541263759554352987703383268720564616447894449415025916566426970910378733921763310504947312491780547186010313800456388936922904087104187508301853812674423481369014722472576448998103867018091752894134807332684092093645711513246383266439223623073384968251331882799674239749878878746535859833407897382672184318770929486488988856848217283396127775940825580264405836038654281934876922900424537929642065859501598867209250320380023144716435464837409949616115531170837813748194936491105121280771242109564985705741293214577335056156468189179781648374198701800524289262209052975949525314725364903560866795606285300523485370484561483775546629650768641755622542031330190699012431648843716814295941540065966362956291584929114707114202754840975769956090580528028826332931021779757618688462177744466569805484969521350993193396929797516835204309268766826327578889342070703940539336477689994449511940634238714822511368923736007764904170584748768080681430370718458541109843175301040917743122743759930166447232161922818269938671547434253474431310561429064079204697459163845292034214666341067275507668719438424930247059555567572266961012553415561889429593957494217522870131773846728429323456763564103871878061124237883676942523000575952877186614406666740657430194244191145388755072867088447032838557295523685165874309006505710311294467020968733194409766556666680400251083995999124793085571285367218226061152372093593641033742976107245505860828879013435023818233555328276562443474592517544422594324725583600136693030634941938304550427944253153708858796267358035301599051187862358463524214306723401298685620175678568882725003601091672879979431926003923953702580654913114182587979086439827657831535902381458334247670063395400625396768600691909613782474388259717538353587788639401386700665630651619412473569466560126767989369201628197343377837847481919892085139674557399747054715447737193690496042131592992410277704504682223747218922697309325413190507076371830535667203665075779039077706847314280701359194664026357475983345924948367972717637882979081410852666070954938576079417829260236382624478013710615510124383024183199377934175447851784379805931677904954523172376571250946510616282470667655024855833921148646598637361361389942208605918836143541455904548809308141931721016175377425048320395149633488113568844548861047752235045223277146001793758546812554489193350893337080249984785119220046919294974985454881138844116820962948294477908050615175297483920541998958412506460640064687971322402370379194642691879854449684928721580374347080179507156116382717613754937198486841608630824481794021584551106668492434837102586732541179514544470967103642400530522004438540103144198082149778322911213374543069566811285759905541770792264265824377953885120054580169041700438070704066303858357436072951184882556335474537637587550186969895950851833939157968882503555849374576326143852461605642764744699367393144678275004812884739349905187619435337952543679641741450498145039950408397275071001696349090221508196438172770152273026517025891750902653632805850723861162356447641502985742217039489910003188872859809550260061530697761731906191705325942157110434171507360901639869522319661814291022741862006785595862550487643478633054191974538758305587269153492673524768771679017486911902885599385711938261900276239300956064541031603334700619343690529873683819312391686854626714378895557296092675408770456941831901360488003823732959999226100010554790544128975541232925698001265304573057669549123109374589324816658461808213798937548962582471587875870949447179180527624817758498453743293290540711213934260067840678905819757519137149429023590611376247015934343952598707991531074760865587693858174334300314045084477427527417967014054455855780147652949524145219422473723714667488108672245630959403895741896909466227485569982616782364245147231251735915611077833444424949525062277669863239079382507467036400054326349554469146474406770893989243788737900200403813725256004115347807527672154265116936614313566975266761649580741460686962829242374098705039017911628751550064832725704952047904994758812257788279418527705396782533958916472126325610187389428316856435310369574636058791542409759666813763262687767603273491209243454165184570269200312862057208098698598039574416593922944500748358545061356147243485772338983576015994243840333350487082323479452833007198270386774536476126866864638201151074394386801402208174901368434795537417478370653231223046517187845334067510482564986788063895383982354266583450580365096500426439409543396592461990175269066478262286124034734674751310738706962586813053554128272998631421782456648029629251878306952998019187881697021793428147522367289280062510101270255245885962962199841329364290466898051163725193840379437031906494992627354270526550810114680239498223763893945896638152223452829198627234129737522847142262912160858085465929731980667170309232920438601449126514990950848898607319307963572831994761093207382424412785028701136542338165851825053621091462988903171636796744096496447883697943003227186608071199971993742747322753102313205143108531973357236409453517390791234128578580090360523042177042201359699663984732827566901401265352232289228235159463405414219920003521520193958857193449496382582165791790532218533179496282146096614445213129323562358419202181942474178556849329736342323237256832996121039176624824758996137490041321130930881608700472337633321739928852083226646749559136833164551911153900855218078019919008230834149768293775307000355477401477408571185934303352931542079395150617613172926622452239507148820457609068873632397259875587936999482833262646105752697290740215564071448744934093419514565339518687428704413064655089974601099825481927207180699339733008962168659270295242414491275508806455422094900183431040997285923506214546479525180325250710010699296466606910656793833268247775665145088275828383124353109962302005660072803382238464701955058595562498864320431504775232158350730867452460628694537844037721962516166338558590174112542387443484749315168769890818226378595649675828772746576857088570265094967511432690074560887155567306860134020709222733121060320329128558276224152624283081893843671997264889612497066204926268165115229195008339094934598170742645727903107241502601326684233845171272779950379547079043998690624617284312948815159561211847354749789354675734517451414804053344851522095803738671531180645933663799980216746016775205201391313297567188643279226916695414869522330426054821298097119726922273728039383973106564744777196960911339232303246642647465425078380560778844259844125257611235745541320129552776989485533777000233212739282818004280097858931069333857715586792104041172917968728803838151330386282378840711514890460259456649353492728314379303807560440543136065587462722958633565289443641932827378512459894279943418031195188570202573833517275390310034466013387923624920921327885820799185619010239606391870411224884748833245527104176710306058201640482183550371186610491103561913111790256975905370388757244318444458726853399175957251861366774154365296316897952097867337828534133857891270403913316795142396729196459335308088790515620043835933616494628382782871476076705017241276739970174822718496371194089011969677513196767624821467771969188706067996865273998007798900117007485193806140560579789332736987773560031756054716997481753962471529887102963961292161574298343889083107900268737020380390197511533468062706518062048016614648738485316570401037635849171461092789397426979607986166487667987711004496027889743148314754927751206702065339949409875679751164484645962397762714712169167873703858256191526820731626198965928188101241325856302181947066739846226266448651643598191930886273503895874546288154663124295710907685390439433416864638379069014057984084085051755343696465187664477084517902444583525603079761635377672683268201981752300599024509466759730982920610897318399519680733034205923182606624755985299590870894781390322165634349570893185901022580074213245430029459045334929002150096710668722646078268281651101923812302036582307274082887843691078551919854637005815880328388838964497265280416781665498756915086774050996634381762510095881943768679937261627720388101896086513621331896719272630969284517007138201253082272240829330867682948837252510397142701675594457921457595635730587116067464773558189623721482536160344732069409776352274592592830456861463938055031499695349908596955497502943476133552925449497070897483527991493418047191816356528294298618168800006320749206822251666064774455366132761900533121636771206695136423307965971311245526287455689489606451660665114592673759434473166209918737349721965576699691512532830219203256598127584169264584647761595806563201528661477983518052077687129560566590473147537854986694204640538040103145586621286232692006636456292890320039890602247776534770342501409593348104640793311984648121593593996263509580755470094981567130336949177885441584409344446987495009017249826821895247331453348918505589420032390741280191019164490073603457633763332205473766161817648697637542613314784343924032046910808011156470687152676624838984068701968737967260154683558313409574920421921063961485735692673548195449925123455086124851133825775479241596030272560925060649894466245931685160191253468949561801256567978916669829191248503499773209652027774466727113633120036694610558780071321137436039694997221376736917271168844171775220871105787456929655941917234134200116308779191553566455505505239941146942362432672242785613641366879705009791943324119849752376750701689013358125422948729543295324084262790649265906045183111590828743751711427594888590762925374871330183359939247847152480526807576686013013541255530871950060983888596544021293905571926187302547486255350766008651884049972938512263053201195599317491905638099218906391822897663633400657826689579975628503465680744445569058825229202094596545302167599638925350488597396528318075082110486072424672301476012736366829552761220664421333528634694599412152107431392863792710523818969732997599941849061177087850865162534653719646492546355953261167192650586857925659826592912473228562707023912626219786475185230671478234363423325029464247851584584216234667274707704205453356769192632524500306835749218162752700368063858115033120137620841554709801396636765704272510662258201179985163501011870009231325950030149143845086490873970727450604123516763792041497707549902333403786408339243994204278921967537540601298927977721589453971648636419416153212179050774975694344416861806660223456760677063353225055304443511706823211546560433151451875884423704399324382375336238608045010195549265554360385014823563079590507009942563195094510077986890448771043365813127531508902060441381835928874729090459224569588739918636470761450679728498636331548751523590797656363018573334690349872446633209481132703406648463689723162762960549972218611020269820590630167090988595889338784434979970622676491343781806189279997203194927661885225443719907093602548515512074612273217738158685002053102047973305702375060940421076647433881281089993090346224719684577256280183005920047366482480855122904716454385845951885073123745599623882664340653792522372497807626985152590324103233795707403235055931611606559425295860768770717946878677755878287338735638560165421567999751399854951176569501818328900591587186659287494556349357001894402850912252979608549973493498895342100086473958467696701973756909524496371500963081301488431070033899458576705575498794765572182493812556483696420750703997790238682340215857539869022211491079821427969314702352931551871380744661249861961893407813600580214020758692215593533645579615234677558363250678646045807234434189892183972772155567579933709913680005577508396336572249526555581401406375422675822215780828415849797471463543874413293917259669756610012419086422344658044868956703297668003226616775103936554567187647038466501451550885422389521181429246016528069881053666087594569892674454389686344545252223302378575227796795967127850355237780371173764691603010683139636507159077461941298983194665319182213068849436868544493454897429246295136175695915222165005095552982109379714164622234737847624431061893655210978530739537363666736553761437604924406373067875693294494465695848560704795978125431612110843176851171676843969168413035964952692564381775456666094736918452168719285699866711163378970198225227441468907863435746772375423230778668663163869441098968328439424354970384450407627710252590514862018504765553256502074600372834673565071662824633894078251718717222882122482011099528521871831541914424640744825434755171992689396070799661997511797589094354787306658043042666126822882561198973382324822976522166177387765626668476824270810113334313348501438569492588198892448295282054223839322681916339510323059399263412897579972541925601019189393114304893996047846632082506734981156498426574039003213802526567775466483556138192051552114613372678154863732724622360578851341828210827897092888063420280729026319008465872383030669118173412723360003743644033632509160558971802957419343027157385439681566702052784664443254836958585897568990939772420360536889100441547064839710257968565546550408637384716526687301226084419068288857691282006183279421679086728708216297209021546733263236738977320634276995775687736814136078630621641686903881354772070526185200675064442231195829398536499079427726118170007983245982195379247286918376002281541385983197696995392272806224898422907124772295685976292953993873098153840106374636545544933704136459397268257060905059709666012989159758856000379398704063673348100353400871721942283767391991444013062278473916712379559294889091687474429294872143998557012670936425256891184372168499194072430053048827984483324310599093169573870860041260081928356494649601532147178756024283903111676924541756884931246036320972808833772507446482552390080193253905338033614661121428497842913201907340521876761708033028865582020508872720638920013967363089902172767246187480200944692424858572841154687118447993207098454751292569735386166442389787867100851028750480260095026482909144855659100763420319325551436797939112864596511942967612107807589402950276704315705982847826229924195096887814991991916494563971532870860107549509903059959039044094004695411466635200191698296342508024081000435521683500695808940392180971613128157342564783496486572797895757930075236641725638326153266134455833811123846345898961016657171337951877739876208215399069787810076604367972578648366236984101056942665519351180760223602128639223351996064512209123678078477523762591201642200918260782677626761116782767722634639364367766129981586213703087353035524422419444997558007197270518479773362485546695420803293246163227305915949184863314730048838655661065608743750333443826582343981567899472762251033372367940668523105914562277512351204055539855228311275050212177115412143202596734600380603392826216655853013935171235599920417058314846272634356537823848932553202120454219618099478803350419577035622401784480602633497780208375681447370037779870552532230125203504392853879349587193912649579269935395138515171609492154250792568187058457416161405460559721923963424328672443716185989195740349582546158872530909378075656550415448269544750888874167041730330229596031885894636759825786579930983929954075268441175885471051183357655886146426169597521479237161919173840812481445909017492766089665191181824431062960426954777521150160464061235569301845693780374680372415226456121259634618087951453029104876777501769980121807227887621763976752641750309695914100043944609883565778093626510745039855033681768478324695001631535527825860212336225700247374478225805836326589113107940215056646460008126806686512462332548983032998471735098182832405104068140049957567631961030100884901355426664440245048169941219891246739100350614550263594557482298596199478952770964073249808908415489545654201588391923344198922265290221376427132244540333627604008161052741088608531169247003753924813057732259332443006526165678400175478212258269380710991459498923634149345392069039278434920103511942185671868391299372309707125306165189748822289453383683898181609664156010121610552832703500164522255866072409306857498399245531415598647860146636289256291878667057215338793209049058327067008258329764510483283819255323740277714614849412353497405138105928745836131213736117799558113363444804872959103757393753958759293669708726476975948953632878601170626098818084302823908125735499514157868942756503286834276020212775500553864976674758218408380784504817783425914684734241282079881508543157046875481937384730772445361020429002315142025976833847198154282433919016611213834393480741166132531719718393508658948580896877274840220836345941470175954264212030269529279157785593587444570224248744289669213161472273823423981850709357547161776817226159097617194332323561419438873391231577189900802259965713049987560934627117472283297372820808083828544131492289692500534696549835549326573171797231969631181710699685962605098037512722634644439580157375426040284255666055614109220755595920888447836888462570170788228805283868346298752084604770408686954852999555289465723852825572940959194270387110740982764369395361668541657100433048828633063622709105473102291771611812767984777871969583926053644133844419801298118712381342444646978945454956441024876020411540507334412991159101425674831175509218931998998898908354638720941151984728486310203301722997160487799732476446551843515818572768262348241101194774244288737891598534117435670160639384120364702355183075761689102420253772993382433422801018918731717929892421171486098225949642349334368870698238011644619994994207071944233136125143976795945003140026563944154141252086968627121101821265329086054731756213357089234743885961118608773469149638485528069976538342629049500112692901220867104114545728585150650113726489112760931588366243691080395591627181307895428119857197880077370005919059800582136251162269162391624665765352842699881178951794795103278782708832976167842267902766749130873351349497581068243111293852127120058398123798009668155728493728346123308168981052114904260256486211725313060677204066592607568466699183416124737764224504897904531763260121347310589629700863862663586349000799524983945943768365274729948884120926441494716947383819723939975047880200256162788415087873405285660753906066161519108381488093819187997055800063098783319378737821643649017870917580127948107131038728166990755012922227656160124033507290135320142834082510889342447738899659451875473499595430042616308622925272043493403610701040173626754076095879927674883051101789659397950921123970221209376292212145013889476019107477897366626545374997645541678559318754984473614498182658390331763296912673452305773121094925234861308457744863457270563628254970664588186588019886063040745641755490983969292145958324193124810192955466010995053548391843059216300620742210847539600561950589152950283057688309567121885721980451528005310620019284812371593087113611110072530008865611415412856031951601645133936873745827411884414970312739847738435405251948021089682914259690446535982777876950498961359715386324340042637921224105792595955465896786845446533947832532969598476273323782855712702228569497988924746704239265570336780833461392624754853333005879745035054906276358757192534983677324948354441033196365565952244317721490619464601474193080804855160902701565837613270964921876469696956066205195475459706599330370992564066933707382960477615755608449817552828508944632584601195526563525693112572649059068455348085909502320335244020697026888530284341200406849615076728676124091783207083580900816407449414441066694907201995614723723571918606126054522656193455104494779685574335408479932665473865489270734609088038771330145683785225536500692372534174831199791941666252921023226231929565032092501043583031442118204324983167462223350569005239697712092694213037669721714619388488266424534829005141048234560304469193474186451242828156822872218084543321424735766654938903673687036624528728106716622763207361788616783173229060704844723277956163624306911958677059216937407575630618890206132374827804820916822819514120753143101630172333605340738599303868852756636231612673048422876886495835130486382232251357514041032015293651554170260125863346104605765035352967811871771575345343809168115377230349366850720152132137022727200229530186138686980316695554731495865578765328572914040407491874521393308113507733150745834360289658888308525761498277586231724792018695354827282139813440323112417908500861174201748186486919591600845786099208766881830940390606995720504330875415674644634181406642252201172549314159259804748251943496276247204571476895625594087518835270525992349971802327860966192505577857872251991056351723491434675718667883254636985971185820490816230165098661248058463876041198395284319500968333648284787767927263241796701188023849774329448887308299993028682185496416728225244336300394874570673710756220067479883142443065224388736332560585664615904023921980416598228583568781681617911643345302128369177779908026330370802500615134818450563146501029043717280195201529318542993341266178493826348349647182929738343898391914915576946954488262801444923123661372549072213324232222317661165249623352013446305600417155610342557304422972145070810273261971124139062488254760075129237686742993449367470877264965871304853066553310911374819842163388929882576231521699583888784322709528961683515811998957357023217384924503775034385201735243907204335593794229683437693795150993509096227568245164948562617264673178392406871756494921142667352737495850707453473861695840022939014680741754073211626641639278662429207024525697413762875558607841686722651589928123490436126139788006904547015560425380922498692915902943243199000809059995836566454868970230728558199381006295833997235461474043847016293314579794645967028757951430194199206637680633457716965153755954572971710630513157324111715248028080272410495436909011546732942762510286875346366510283597582998480208456818208215435643082149335356955380345919029525926325251237011556854286351781322865888992293927521159080247973672837875129574809212715135913417133883753566027506115156254854104532232209948875717827667018627735489451812673857412185764497391119462278203404972788906086105331042606432596068889171110288682251950690273684657061034068320333939437133737211352371511346943152209573113705441058991464176970114601494945948817552567662451571254465559923246504493496504305711442850822064652666451149488051119534058612355948259294329652620424401434884907277892667151222148233217691207655475017543217657574328449077709448918760811285045567924353528409220726559631483683606552401811610707507010943646887818112172944951102305582550692684396910885090424473636632547584389114601114793215139298461858207155511471217808304011348147963894673282218899494658262932982787908123123182457272863189005763826505022846409011981422046069189490272281157018286767284127870118582869999264563419007174244407557203021781301551443847296192071184500920276330211702868963386578001129381193469035185924298932540793173990640771945859477847353911927068892090295458297528701461965541460627946772372406904262562845696531180849667289076124076858962817380043704948101656072090856057507003428011950151738884622261017515608375298453469669860426028582012054355594963040835016788122729781370133428751131676379074090033396401399324936161858251205899157903186756413834615366175830936726802098573646651565671749044347093253498789707220768332823787447738918521608153756558574144566516452102072222661538053074642599274342213876347458490276678018621592265972524715591830863231015210427182115060377622201571626125690048493940400577707721103873419284701547093314543881120079827485039254467595420016024063439829684582914202586614091617281758504494017810686272644769984002498496244396562352070731164066313683374788709196035511967229112364334924358582600454222275878505620945527150286456765056738649911113050580850697992839723558995722518804478101484164271183189169943384781518541323274347753165880429582798920059651558292510850991669489932264529051190609384842491095787704901594833679693346520390474289587864158493408646009733510480140642737134019493127485390861620673293619445214276765946361434735317310226685198386412768468698452325914329241357523231796282431085194682373214957330873160422821076450142882590480941287563753723571974553220374959438355376786292915641065137270708590010899815062407513044191856257812415390485265082731153088832809873237989409642511589738129180850059780010640358614317117159757074965270738816520380397504322423508876597260754709468198911154104174697715195737974117771619057522124919902854654194563424955946310181704735018065729229473199882080768052755219828045104764166335607672806975811543848669884421148937757836384094412293102641756169335731980319430111853480136822826453209040697976231142622609622593774501035494665399520337162124646052244774794125809957869031553191057070575651360766747373241505489182235906643430608130687506228290281963120569630051576607195895010417167134159935089106655221877548338351262103434493194925849217547055376964370901376456482615600563667362239328040976444103744820220876282619748229136978064017748785097878695842843045292210931699597949261287128215393911934439564169910413408294120867236445817212357806098108475586040406381564716986572161900547246989766720761598620956506194585228270590233157152790994070733508183601948595267938516637565280400433661643940754435713302879946474227513715519719324546805258666548783438971766454436130790324020182231163890565731592384142566145419967479184930432503358679890011833385261309953796140331208828223161841475278616086683691734662616695075387324588115579529812284704243281763580715991333809519318031975353731600658547078032870305899682167588341854501378298530221197619205441117517338829655595016591758101402479080654206444812565795365766707608952588312596974814002880885437394066929280700765320447010018838917854459365999203268833373611254336121255311941658394239946232135982172991878733549601582688694365685939067114837036712549626554931572964187849511168387735464805600183286244374872174149340948690936846556068367367670067493047091035385379654578340005204383227516558416070817284085467239427154690121875080409389484554613747377916328170916318998489966235807966993008137288671185414002963297129670135860136461406382655200298862373195399087656786348018621383558424771923889563064789908023725797766852107855080340441755393801360304121799131092426542280532137796696875348301579648538685145589442980013282588298564036544665852955600086199436647084286211009329739777683371563950423745053842358683501685553547557407914916455761275360858942787461279445360767444710094279654409471350534034330751709805673462106944970216139661928788561001757880391895653367868635020753076969344712977123017443025562474838794621282744805383995399851546123425407119269992368920208823239363813841621048826197306336092567779709143228789185597648378935263693672384907768794995260382087909724235876609397207385214892192616796213112731817276737832933988445443016153393294922326571820755000535178893516412717039582377814725529828239317516516410496639543762800704273131190264632355053756768149322364380031998538943909845402816566676367999154971208433298144213174325237127026113463384219753165056112803456784629245940609366049300769401157968436805608876026224343322392609812190781800515831524135609645496021221579951474927789763613242123798540171924637062054539034437974256945235181332273454591611537111955843755286601563078666372353822307751123707234371445756442491029739334516141259750988168122381774108279305021646171819330908311621670445422958017211616258749174609368612560572908869749266537140216873800306134516789465165322158149986812670804204514646289625651181374786010401332567089205555072085674455964203055414387929879232071131958901952340867114734029196201056839305757161311922050641031595529591112630599420276551863701553900420152069119371718922344409375180898981055444496338106504237724829010707862136603141729139832665604871233361219853286949345566614934669074327568554716013624767268424698605235977619564320384785562318807590897511976693028382397692096545370607062183919421122265728057982588946636940852041648541533717703307329295886534922722311057608904654315646231464001660702512762837934761650943553644502016153431448131785451820905112265702169829757597213346335766353028362952415428270247463750899196061557532281498863172774212603895119556390487291693673964830628140424355975498216858234770693689246403477437184790798331191294201065381963588284841145924512412953721991719148434120973024551297927030949410249547337847972011335744204143616077573294387621596457294864576310453228939861150583153931167588684317673497910361144920102254344141083545516133822504600648717778549175388146547066335050915091314363490604711805704943608867449441071203698830306856956045977257668343601114154753560373419547556979551651533768968842463415017630790240319806238557670536410764871726575486942415573627804605124063988151608668136181911508275279729577539408685060378129339960209290963556563177791925460690300804779502300082223568099926685347292825243212924093275605571344476630095592279260653194042822116884095458862684755905584133857338709526514895747645970371448083737351006556873458834232582901274235166935249615451554797032293563958310917368959166366157713105432943465767737650293954573182591190062233586648064131550713850781255024996444450833092834722416503553867429149915999278674998435661369839834700008903492036747314603467801620247753723570737839638112936498982613482022901245746535342722099280885696252178460415165825131123287609731354754568637966025739137835435605410024671878866335889997034902351338062355208060650245806308571580186926994618811563232475471949765749845919566378779194583770395337816791087144240303954317065921017513465153877438868760083626597675244230322427285563490487126196201386939309621514645468442980684432997127527152992489572058105924193356153125869949363310503686891836685670870414138582326448597117454369560056859198120639025789649447608188966662226200435968006539592947341338394451254709645141268429269292803642798601984389949439895553121418174036653647943368676500667165422199515776239648332918296620443528314724445660855017627764985450665180082454818527562266538819824128974272449994275206011666398690187432064907731660748826853727285216534655576136537193485973704754211156042162457514859042360223630469773422396380536205978058317470149063533865681636268195187275488489352142847656135540974231568660823018574586903743513762458038057173307938047272861512130983603157490830042694956619117830171823929070261776944929000639643710149227325882199372213224063982897846506858250125584410209148072524775554820093952636424040399621344524655273233354187303588564478850473430639586534675600451809776551811876406682662856689770212021820858313324021246589148289467479172198944906048939676213915649374637751723410889825365436379464894808066469817347219791036805663814208399625731986258534606312882302861038106709336461546916397761863778423890740141699251233008499282660379412653836600354173302990497051913079489353959977814998863365919461008762761210238388368564899443288709857174078356003291402589242287113417984010146755197002799174838928432636215691270747609669632242949252479027417935506522420818052556158497299608494372791506562741817291447794697449835331955046176356629329332069232884391208353565037056182373751384237833435712729450770095309796454689582359272700798632454616303897471273606402896253476089810375379592090826572867296954791920685955527059800110368965211583831582349094919731083027336857795535727928400957604703090383455688033668008362670337611152443832650738605814624831086331242944134139744725001015873225532645477692632108800659145248505248618561092136781092818665472663904724480309953783707878291869854989407508056387468602658169722043383415022220861455274575690681870987245433095179309904816199366527427132327951600937849936739762080017365837077862784286486719751087843378085945104027062201811932225499304459056339284632100353148231083393010933593303585227565958588403163035783034129480568392914765852300223043415156687819306884569482208865002164653997833265411447106555342195296963628082435173893276271850410550932231224131000598848018352892107292944567612526472790768129457954709903072250208139801116695267088594126706883175926427911497633915927462055893394643538539291208916120335177783508929433983636938731286996007038564090579536725690043638821426325102285162692987704084299254159255255013840088552446218447094010839415686221158410512512426192486521259802327142498347495776499552042551734327925187352817713070557965054578047741545399061377431133596797654378986053908590766449341231403448899827020571626266914119399254182985113562892268825579406990919600717933873938443048116970254915271421262549716728492360588059237705706391246735168856090554530786921325734418267723114628732350205193143060575542929702615802166379082904969048111320747230691917032310679969921792155831399572650149782427146714892227380111848238945572540687776244175254540052819842772737101657221886021021800074386330533307115988112018298114254804977761780111398293749963283875232497865156489759558389860341787513556333004158720089145372738430162326670321993448015293747898741173249156005850272318319233206960880628016817276388859641473086278562544145611966998715236274563996883383701681844315758689379936692770960425278794811796475059053024455854207369704403385148518984998461195510070651804508755806573419889879048230080099609936926754187173784486418735053090126333720520972908120935638395102722924020437789946973405529059876953172181839263187938788015240219660160369290283793071966098376118722369113201422903867830830138356924192612759753367617275752638777723809080017224859528459778525936179919764970055421722311895169554261040362850899586164508348967883354600449252471595394151206134024403195176304892324211093115783955624102168010854394930562905557165436305993082339227701681328539641712909815853870888554974093808007114063891543057193767149852683518287044053209339696793620392555866821942470932474605347042456592043601891489275713910885805657738270445531442274143966639553113582567677283688159825716537975758763961250956385680004144973480858551188683355457585088334858351033544904488322573872480884808405960921000517662088498362921437822140135041530675311892274847614838821871125368613153949761047676114950459703010291924293899365691485354875394336990958831953436088055909156692350702505655556238599492382904675838006563788717359161709843277661733564274901983199726179065322982609041408062859654907264781558074589141160404487780615935774353368267780951679666358015069950668577315869158079401294622623127367260840625915812669759815398075241580158965381119193259158817793132497996977893487641404779723477755512237902000254631541620530908965877547511687537421969770837288510763720069953321341011634068350727321167884346664569044389426471870616541440813642409558326468779154868182584712793192164612995662802655278080042214590120828270089604002187820720855224096882717466182954789497741604955754573943932773320525167378082136615835297698553953313462475951365533738548085098377430039268096091467253947334241490471117271545707002365550344632414409496971010136241735165887021406674219018936542131841722957686758817746100636165247691116806956660912112735755588478634091784324756338237901315585358133335199758518795316923626903301888976200954571023516636139250917658368563457472883095352365762610760866484035600652146872453965843009719258220410299210037417927922083668257139032710596725355622956373242385103688659116283500453344916569677899569018352443441836389101520938270360234728523441696624433748522372074734924515119818115395780671577263119530462955442778426515085419044240392943999594567673706406952668962019570032017276412926114552750278858336232304497350548332725199481629454480164722229786963360964270304247047270663448230635650932838386337256896710418744263654231657404049952323081139383095980211336687363501748853511924162432835284140659612588503506525050885980492852367214922759880288905280450110418439013526478065024931259993200908196119897704846757669166906847852657828484960464889710200283096359055194118193862158950364539966879685116611398306957084591493936059056549253105608003470802070939258530857243575955473847081748015331817205776644446597398013402413592069428328984829166769287360316125087593836351052193276360996849431303406916452910633551106397658270023373472243536296028249194250957514710608244394711140156183633167510015550431540442431165846728438274491454064629372221916263394153331745548239436570794125772851264655597492300420813463580626017654502466291202182659288718373363179777898268862568830866785035367558363939689691401343619867122610948965814170691718366465418158637735375664680730542122519725212431462528968813263215114290880303589488135652993193987861083899744884790819940288717086782357599356995933927806353414408219145388598074196623742403435085634958825285604746808562488016738836299777712052377159735890324872037593528501017465312960144542646999892445349990055344114526327421808568769789639538832910198718941003866837076370078141520294284472690911950192557776018728180913112527471681710537357611616064128196969340345979739356263827951422491228552117128237898180773553864059275074547252783153749781438046057711910794857791383097499950374961170083255802655341588434642607577574907572176674508540450461918703579353832172588717577399616557353075626506455226305523850492477732234918051523092132164526742226832532681817248705462577226318512301828373273554791207657967079531721813495355314430220051973461093110549695987604791617964259477465238867242261978874583048719417671165203914074734227532866476553116961693733804245208738741898903460620581442265803182285323236242147010941754446938207101937817458269280340392557787120437683090726050124886388217435731512801912694659499395676079197503663231253204691274272054380458076914480045122802918308957864883756221762086107904044074397243934502958796752765960766364337572835872945739079905105544531755184454051835871915789664108683841249447633461281570012112817361616923184543129981245428308598063389409306626615206948458368406861140400765304684808446938784022229546344071916327927506701776247487968703224797978376524257977109716639325886909904963360362092684791250927556278911964815333475686389310188511950023127993273470816397464519957812965745307645554074267971543907809051283420643148348753584850002226981058574659838045089835527118903767481278286889055187978132056115469168892214184370834970082465206049035583449239666670695091492908795812443414995142972248032209165911574229552123386035893899644442750387698415397669052262095634713542953654292045602051498862948891960859245221897816848774152257090308560840227954101714026738946010597845833427986201178578999000691270763462593988393105601288650251909025128211330470789628927431315831762992108862281961890076540238603874821875511664319647240898776104088204372674966379886727003547009683022617333993292525039213611660945353639110031236298371290509490650794928914563689156673379513746511614606953874689452974142858549863103778372324102237309100383919017387802530848396748435775113960999034722821679671606267408795604155940957733176829747303740796602792964529547110472596314453265481680732703581255425971032214570523524511062303669563782406771506961213415780745469281527514332923411229064287908013476219148049382724837958216090225625064241135638581791402767718192706317010711105463630240718431288424286469057655607768147326167977579448275137450577941362052869338895399992175042666520102142895597409452878158242563349502636769125559510656512934389104516596617398212490269058299498549773308900742269590495776159973301587403630622702435754221385272237668021608584607324152997116742810828756292391568304891186302912165005979973475704440507688592236059906999340805298705337761869529862542071185877394963583603595212749208593933389188824192580318304846801833747203280106959882831216434869124921246096854611560715774214252010020178481792013871245801794393413396329285616666613939473611945980204728431404806697577840138636194033184038124125700630607796332376853843545586503059619277942142362735749605360935612841563313131832523463777843778460990628263876798305627996091485735317175264230725408060167647159311109326737091167046954629712535132268946619138296634179853219831133081040019565474806992749048149598566584097026107987654287574711256487357060113440948762062432803145504814039885781269587919526335525239601749783898134782123779267643879947377329986663407554546921800990894911481228779602092852007055966055610612343183357138414072701971100701666177857540579629001314142658556879850745909429640373077621422029803156410313954476759595671361115028400457941434314465193310359319997668511758850195520353425873022457330310290292549043226414515590055658584663151750883189501070068461819232741433446971886476610211335047740484244036715590539266568964923677680032148203518370285117684166514795861866947297620911252112111847819291386512138920099564916368820541336836664135222109530806726445082082443567694189558196976633819736760834977351990672730098650123277707360799782576014371553140316447542389447490426270685170096178735272406825865456725796741032024286332071424442713102432197560130611618032979911066003431577864986303738921004592359058830573848897002179589122163750937140137041685425755799978679848855315191231582482501550066238248549848024070711548449429797479535170323873120130611997017404094167837537464680179108807365351471712485123722315210492788641804278356793156456515960126116538918461036301488914287028115593465427882674278114349494421351876520331551768368881015136665007196109548362440018487297493855150492133290339466020097389595274488959926515408278441745021646312738847365554337200834256785062180312640474212585375617240965890192021606673917749013348653952152511333486756699454731253574002917580296520972648302789096812831161042058255828729969499175105435728455433631041203483382859134034061672241965708069787396709279560402233090374253270253795470182733171371636408721478957564860603856096833200432624504648935299980519177133388328513105340708321297324255440274445110431478958926029802380409181833298245870367619525065906651568431722589696590838741789078646640961438789441164992948381607324355201445919727388328032544000437434007201903790170065764367874297643614186012828020219075644925951188210038261207416365662230319833620620845401708478732477409708397151996759696605087462750250829378515415316204939922644238431542240909683771278522758593867925752038407970524063981911691251001954864129736243122270242328551940327734422195019521790099781665924382543486930315180277756825814693345700608095860570873681189562392831746777059814960646112998644040613665226059525481834994369289347524873776109273227302559140118383605831810124349257283097800797030430449906940645765674027685718602449193942406036855600838575106202335638743416389872242724530990990648625358378397369699830950420871012803318983243322434991208954059038995899277799310781235961002290129833725075982786149252336154791865733652312466276973071499754256228633492922339119414175406122504324800189257010202653099695856852357544899425801689556064482804972653854113010043436492342257558153280347874627186467831110219676208931525352552128081150083849553384450511549521748133556056258242478784051267839958407167758879150631504066428780310888843401295664467447077351820384733606280031369751391465637521954475949014770955899868448827310333639114713628244510798949766298938577804489097313563348837123846620260197467163766969852492456373784180261356831025603166466640572820605000933415805424940857447799745882116724619409481470924943610463234872699203463269401107159711698960890671128776166820729167758234614399319427619388565714999495579076560075621350646876701677667604271350387230078218126023937979898297276884644545435943188504400480233265385081891416387426829234031759239700091883830468908741553729386367474554539887378249093623856708136696786359403971254051013363705768513508993591487906777946502697015304826598929910244197352103508582824908140404474919816839972608457389025048985459692366445209295881430952640031931138321024374374043101693968446474323158718893854649493688059910412365861517756110642365974840729729058951480962711266112437872607037155390640245913303925033573065245362560874012281123939076002386814100489782357016988153007115707578018682480708883894173757244897889158477031651604691295085904641767723523591580205512971486580788512515362485878295091871265043315473232931502641013823902824040260373149223269259586511285988304407178580038109365041775559741713024085053898309433491202196578646973492301708059738009896593661358006018545544726414945638584514341104552314286468501767661125167784273354585028949959646318465641249711148843870400700733143871067939676474564872652679453595332274641444519000905315164293232688383348769420228526988167939498879664985680645625748947634349582883652268252900228214403300102117081197301927821958963513356667606658578467974431083803544084616953546023039115164055032741820185122355980034025142490444764087854511484453293895495628796857368606664481695418196118769887241318545523377057859422540378987239613927003995324034296689463154211359739167303350945351161968873010440492053546678385587577631827711907526115432437888226738547400051332799998991260818544666965535849008407421505304967107082878683094118689541250206707733303579881689075470040899175457085292015203321150839341919549663461683864197590471876793988410830692080833954738997906709547005487961204879604376238720504722494324061096851104905148107756664831604336608178335609503463202537513974320059056022720055628302749370822469393075961461499274305872708293822937856981918142978943462146459758131413801165198182999329489666557585975883003834898631403250828498194982305243123605928038269701866542987403055617318997637757099835145793900824259731400175908725176713783140337338565640003083747178702321674284006574794311113752099892036205711149696235820266417380040138974189511752130717815739136172041218693943289818317452331247212143040677406186205001998980368326220920752406943907747723766150817250243375051626042738413445390310978802356415935042759395693915426846490102588427865450733199641343712203668606533609405018571139248529937478375025290369663589977035225874667945585018339512055816397591660779634308618018045792766143581803330099829183338197440302477023847800954978629416321423529033118661040562561382444751944694362917362923725768358052940247768364848073948372707510565096734964637407635781336924856881803382452263101964619560997789070566400704698989081616150119663453860713103210312675035621810014243470214917901872489747977011393644764525210092249711766276617196122298110136514518963386758903084192527649233222853632516482412940115411891706882712998589518055476919085831994729579754924271865971200519405674821853082549252189640231394986286409151467024236089133252153129485614786333922383500279773634515531836032558146305873253044678035261598719597573346554861340663812955264837901893619657163082552165560714936510861738342105565208862755894066653862538301013906434467274117307869115745348243873970038893056611849539357403878249269370265096869636971841437256974159845211391426348754255494198279397481328979310384473571715350463768339953606002039588169300051157616110613229686386283877029054933978721988218099269749139964592016006983871163129904845348546749592038842296949749380700852074364611211852299641403259985516901949990399705553337680252809042020540327538691236045438419039806356329623122935759876353592087471818683902861771945657975659949571468796047572477025476331880929473985420975668710127873010523530072273851804010728881039778295809015486501735783169380835686925255711580005139579824614109147870186437524667587217402766584671548221785259959543561018412126952462984815431434688774400766006176579365828850461475212999280075252037863403347958037814166668520952751273113873135023216766272306955022940608931237491460331732222623990552014717682533533775614900288457495710231554712816102549273311576487722818260554078809454007381062901260028321183066048131070850050357556580582391202508138261942365185359992361151840652515130086798284971084434093923304405252487822216345835908266651851138287524198821148049032544521730960175562390782542027159369400940527731323252593730816718567480750925014851192201892200768217421620707587191690165873846088733186726784237708681856389672920550273793978156923064678025912131817879786133248609063464395022638985980635392680511201027146901252047971819318993481739282129381739151204720552161673807571011863975719211253624596469722226759463470176550388368999986385548955273249851088305295643295206613170722487439723299592233136033712423683507427931695348558463962175333687240222131922448198868571667536061955751344223962091424261391495663001062494822427675487555708604248577093539593079173611629695747747544482183047861390992481870035497445580708016212218562301995171415224502206918097485065022164090012384934869744857722130885574788374203824320492334618322854168613563601293554473437829489304546742011840824411173388847297347524932633751620650912380121288736480573456504040078430032055470260232931268549733343407376237395252772515869058204071336833357349018092274397920976351579650320991988606778409246681185186100607690313234188758239575214666552401886814293962316927981844972067325941287447988688214503405785102761014219239105499240533054392125643380321751372091180656030998409832134220484403369102354336213144454059340069041217602072614084026789271088738521729844612633182647212429306772130106829285059198944922616257048200863834840880079464215122776299891812977184009851641007312362018681361384716794621475374761510804927195345573290530047921516179357676788785166344746956058208003591137897369595725959804103397859575770083161765202144614547480995955862693591019268829523000929583689412665045170356281662950327830114360974623814137615717439643626222999722881730056426989140637885774570483602415173759995959998000676794548716364634408457821405518346534007149848845866039761883664783712163417155450991590881063642083546558777694088775064438556765514719706969663542205798490097078539880857166297263360110496386651872169233532803415571926425832159277866161051333124109156364975631347863537086937391147389953376642066068606845522415250982437156842164612488495436980702016414867514580616904585137893802162868373973641682295238047440747065697763145769850428800235523725171787606281574619823523123286193801343980147791101180732224804008083684782864434473576299767661096100980622312982953512853813163851893375461053204482864431393585519662399567761128511858778976635925747588646617378777519062322319188502034407559806522522306466580280239962319706489372004920354705216543899360134644944389547944639777509558031362093551904824410421182204695130495376316496729355974150173785580697090276670477265185444205607602903946440739445860412066866919634692182751191714651559879888018661026966801453226390100402974808507608928232960443467286264478215642305217501015600824825282051262394257488517067568499562906704902512264724719105231247249504314306189049445231977972907304117938660121340027897599822830166621585371480972433203928724859947613803143440773570944814705040839175297078923982922204167294780913104399263982612182417205947135898504346924617161657008325863851927356288457687625635078456070086611818684360318085176302444330430618111231504515031445805196810715742805454995011042992213283125515848061971483803614220209550081406818489446894541731911163600307763108367437235577827132048793510289489654694619674661654749543393504657237738350460085821399760316609171065989650696984517983003396507583370427374367433065919624590446059072930484275648022711259905285158406795899827062143759245504128759197032054816884874577523989188433735069236882926074442989332837025685308675092284829418805973498648532305310343816640442803173891700367347883285478611753996783122153263257555505223505051463352430121775744252320119496418975548809459119172749285278057469733271381329019584851508628368313643932645416526780640462359789064869438147767809832363101603647384386702206421507046856896672634820263456127020172778295725364202270745989040919950937345996579070703779290620039634898908990903328641770826315319913594186274907814624037963447388071171202094170192151280306570594492947150279974381565550179474145952845610257987050611730187249554997918429894095465523311155889577193394724222806033583506693838911259180460584608082096115481514748411475634196230047653696058384286186335966218510577719548873945431977010235177639613758014340772551715199403186411601875812601100522009602601632194780902254554642093018323064298435882275636689733806962509918941843821067087406896830457412178606132979445969204789788278284862812467286083093832716462470876045267216217864789690219218615038988372193419747257489067917092782452605637876568147403192950243169425825982739502839537096153612558265855736360385555806367369019503465790424854392329636754268848128657464646502371503973564074822399116340175138158408925863872359724700451989826898817482108986416571531503956105476378793186695635397194750540443597780323693247494710977354950804427117122958363010051303729328145832961302025714477933665329217955213649827824935592929952675182990227000955453018605568074259387095997606142630811849720453416249278622915182216450531331961761015906075090409469036561525182349834763195587789401261338303115778967847158798207911430657545865228515076039301495462918124897715828211653888951146223936621384462814932240617814767794022087571414305765656779824336029425170434404118861443393076306571355567789000630460669745568229215488918397668533456589802785794822580311911160771670321711542806712772904981702407445294288386544025466254862183357568736891396173460329670774650205403901907914115445666352023734661222167990661718077907527786280576079508905516627418675491386449717262597138933366491697609003914642476516238281627796789881562933303705490219835469795316328496637482956056933864225113091563255086043970699547599973407824861023470727595030389247525768684375086535633970083053517973697209005780182887278161660207408943837766966861781110624414417103187967929637459216676516480350232845753066828224874377207895509980947529672788194316503921964186873669413614255342737470388169330192925766881203000126436910376307008490167484483451974828676791535536586074276792736762321171826724202313967653359750868473279368811059464110909369224814271218497016767135131244236161196227176078614006764898762501975313478052410219114827290737470765527106105739353618879747442676712843428095361941783622929092412770310091668604025440323594766346266258581357824390562793795508557128504116740758095158109117091784582464776282055362190147560547312442691832654991571255679721365289209246604538121842002049274395159599161127007811320107879351367096134335931446959299914696441387528224018386431684069717045488683946405037403971677080186534787953008782085551729880834831391725147374452206111931250971712131981690305574767350280142576279151761038453935939876800409143709208024937594577046097960204167046910974264455536310918252367448374782486758146089628169613674474693669134792865927201043938762954709391533726763169421319137503382803367685545551831245269323602532135190852830856706527734762582561408892441640860993956481566567443161241536408241890714218040705797641477075343967810614445832402568847855687515215243226110262346258873263825581565443192348956111826934361399469564715114375573061131824317170581366950263059860565610947097555916818668466165020854862543931572619630768956027230876117379565347632318227363157395457565819376385921935075076147454964674339454069054480506766668367330866468655476682165236389541973747685877839668660857853532044681401596353552862962420295663780670499160552265567794162431403350491821631368777844783923913664000362624500934593731918049414512542528102534518025960690649764773495280385478317096930431012387818797809506005736361406085628037117354007625558047941136346055939697843384259834170896771560744227203699353553471217338230849411745720768911261273603621637418246177104368939395373054249281669354435724204306764198321690797800101394776081916247098710907533307217036784125883412331637102454921308774880105330473598415170421310844924215667513048603033733582191686707035144081314820189200053464399598561370818436946095056354450112012733161894972019138807415988039903534019571190364500364806364529651620930304141644603158427025951115747092795685921653509141901389154586915434285903553747368511570108120783990547403535820052111009126547860672884506592738061454008962725211295259595455603756334451490866070174820699778281965153182064700246473785234719434578540140283978432247781336346786046451420299900171365236648237338371289448174800275028641036541642665868322550902858233166214896855711372984994371984728571616952018118994882406819605507509326112993480905901977464540645237543226141511305057112806780467959821366144749743439267195604767862736986904638107409239715775044542683558409802850299750478258252144042944530988208344508449332016914327776811100975150946100073068596228150944431364724047703458745170751864598150656896791069777581698353377445220889301967666397487878913720844173974482307660648506574170008567424669699977837407081592592734114145879896025074076978734723900282879715156595380180684023493609242958791332127052848902463307266254026821446628085116449360020128856027758967376210088688981847895645995897264133565232938565106058782729824983282406563961145195167140233071350378137185390874862827525661867360877635406770034182899551889841832065636031543931395360584243853321577964661083558844555736338668495142999712766485140945878660266701639915372949600335043460742149429673803511897693710130584258253304035679464101319906293139994551256285904344224631545342576936881550890307498813967173011865235397013675811070380757287837976145149221082138120399871019572542047945127545314551045448078227299087621748963597950247161319733698198162212675462621884568404306260307613903417277892353091917876747304958400916213748816867909013063129675735849125606039631144929314061455019836278193068000542915966055562151649666238306070341941221564365699747304207152465722781917188002792042304094760115910278043424578816636839863187488773088594125047386206972067783610213418035410720791721127455822354199396857310550374180036322150187485059382903463469033394161376400497066802338449156254015215569926301696924346692055008526385664650308818466503565679475384376777329040938499468693915372937946359431791332165335611504491622170726908546741043530137143366155991904607583798362206258829379202200906793285056714222040939207272966615282278087836250653737306234365268537208583516124037213557497873701099487338254471132646949347512740162937120068381793988140484699007886927412758955350051553793543014116843471072031849393429091294089268051089044138563849418889630834878058541800323328508143765339309651914114521829081259383878800399879526532127555037729707237487902799000010086039422366373633925945220164691678936044187510368854179118070208488369906308435948142999284160760313452006678257326136057699765250109969356841632328319883792603446785107678454139626973706998347350446611249548032730616207133446712946152996604875630048778629675706675298779286943596720856790987993532577403939601788748971167437467074154941829320419421411322711620774897333078305044310868908073458888704607593337514947454801125304374693992311023357699889269790282323422416227350851869417166336522091825431107534027019836367765385104358048773199679861054695610692834737881171310751813215598321850743738417676581947979292954944405077137947145793150951096695815135151374910745521739232988895435213982023926576845847209720357888354307849026512209548040072002205764542048041993696771462377302361285147749860447437514627665911132587897347943074529240375604505924714453456840342492235725957019279804440262975190130325455779821672035641502109934345564047290902995871199728702421821910161075471904954663810204940765014135092639371002575271943430184558305458450066098083466371973266506852694418790506813358537789035945821909158888339166947867721190159547145788033718125236942272069624302380076492742546340029309484324989599047817437504142556851580018145111279610059534438086400086248968591154562436100818679837982154181804441832766367533920926889479742680245136275154285339116913860149244075196876727949991010695109220724018133266372294934298400364858810577414156605154726694977218209720171539437939193807272993067900035144137689215490174787111956900121788537165164225790039127778639046648835328309505617364587870251993289562344901477788406957711692901978024856876925031463406533063858216621897093285550633180319316830440214395187714798789008176899584254042912144688827436963714422434545502827692579848675632353818873225676971838155107685813581813358475212583602365943090098586295049525587616432287326400586800295312092111714856358133578136882649199955417429365673696580325888182546232872196131163532007466715681182000769624567162534851528710375603529260848302840734321223935944727589836924510007984950597345710238667359880775767701183979001569716925746289587488660998295287064503560378310694279040116983621705353302318567218213919112010006018330704634737863751180723401553360875841587626207213791444987347055555912058960627551827181289419438635833773062711943575181392292957344489188654923789797351106656989132129968904325329058019442406966917942975673130804790054371598596580163610839317206057174145945335747702358034296798505715680355139943771688278015377679642637714488424905012143723678243757002734228341405150488520971820028844097467741780088279328622858963191002756921017793785983647098835587486154752551453832527540816197501472976747532774508496452708080890725499129624338477659971231933518533462032189874833652516150145547286522895722491669777383163131616783817010278929440739296547480437630736939567637988850575370913859799129129797374141691410194276708760025806633702240654940573837030619739043240597105894582540836723984403685827995645141157928034278550052954612978599432658658222334486641031872489626393446926932361906885951512796574359496985495932208154103045623980171064019357631316860454088622932981287827862096022748461754353585346656430749144551856612167808577768984553519662062390764617143572010444199385051614574190415471502727914630349175736643009970245624026626922857350209512609036415191609332936569827448583810266563602123368478461689561095817291791919700861041057787158650296967121460992091717859839569925845484876938302580847568935736117669800272507655866755944739670806643147623354680025110338416115659647079030597568090013342215401537323310455091770087365486237740110211356038556577998155620547850260890366221906563691649654019971848050491314480450461109908160963034918795638154655454673377521630807625847574736101108889790192829233533407251320645816431979601532629722298236964977749748762316499909397376741495192067671943469642111796183574685080125496004736229813127064567164180380432152332803393869267504607421597521635083108572433392156189144065000085402557814968406711600985791273249475034524637891387067349581768148028797087298722637461708965998651753079258501481214541004133254323620166332623434148739384044296329688860489148297838407902510040585634801893142717042593251502506176379293101655492514485275444439317195719968117701769861173516695952583119914579148657320726184106466106545863732294433944572115251585232629742874548315363017666403136986491701044837916977725322466761371302480504972881887749464665097606822455422946088774835660801183726306944438894732719843158542371007680511968645993165783179787300605150737094565194656688270616425693727581711254098298122096188819034516255401517857220132542838952884537301579675732095507169553512025456188444359833964305206236947757829449420241054796860637582314326183116580951807604797888923178640755353200219851728875027493536347527552781323039109289969024859251588310150608702347452892348813924339108950305371337923675782264443724388654856362044158486814296257348098988109519262204264514365651219389412585141017965293831154446084149231257450019222379351001873230832905621716057880597807911717876786636009730206179316126860629048106999734338045108607245222626642848973313457272787411937692686144432940217806766829083911760194238370605639538737599122395405647740788227302217240603033379819267381474623346448390431712922245284820663059969485979992701655941788375977765859863246442385725308088390929724155678354630387680938751995619152355640018871100779830965794737723309582475652208786520323966520792228502016504299578636256395178835505272363794848463183722124286691924823583019196562362193310605826437852098262047682201111737517149596835529355187193301807009012092386884553193993796494334156973136050854309966747551569960711283599328907248266501949569212397992973369049785975946608992771493298215829949614799598851220139980522024150655929333447701017359199969915371931329776073207688001693227304095001436982885487944423922643456548063449216403570428496912931190733825922821468616056933096375315319741028934071882425198236871567517318754574706690975743918399829268204708451363577155642198606218718243598491169007089210962914692271590258043269203921928604375611145893454136126986038871396009342755696895267769831279322137942461884699857388656519570018316554126570018975564086074357218771794299947913313372540969258010037397426452316216235302386703713639447204270297758532510257860392734544072289139707770409363840464957520777342998999549168199982773091723617731062339414374165551699957912288173341568014480345178609436500049389466377979004614774912811006703012533123493906925566333922044771348385353958099228499559861106113396760733534242583917445637177735546877089192627188421049073752004874440676073940019127062322539929703510613085718336710730818062026086997897727908123658527038332563074642566069570759864206662863157488969604425728342846609043895367589098860204386705666093626828593501468694540035552594582018455348996979739151013000886639073283687981716283365569010776002076217970256512643395634152253637214032434029643406854483792075664329797921198747046597760919073151963699982353863543837549336288515064435999189687826338993771449004601980132232980245221940705919986264792463199525476338531435517691626105174312817937097581761271626327220324576090739810354456902611480324821370000843621299098240960361386587292078932193871671613921239684087519234702801799118910740841081102404898955440589871943965822808325200733840376156083774488296920424022088141012780556743754853524176161704999886112169510993681233324767475356223119219658824263190005208374798890258647135278759434066108589224415243392416916777679432796373559150981618927759250783335238742963968027918362015175263668369118639106828367113612889151690661363999742813958148707278139817655471636601939040497274515577512371798607956212163237056597035915472376020337285872124551259564633353848353458818430332122955990889301379167177468982305545740572238485570570513535501106516608423611162887357825431640551928851342208327650533531214827155810372400990184584367366702876130425396706044704813191690161399508244174911971751572356823459868977475028310013681169484874355138979895497949704185814801618768273914024718349901265853070747335467298239803828897667472942238017022008546279955357021146692077341778348894249902266420054309123408356087918720739688491953223370195142803109415545740037264053765933502786079163080807258239947368815873532008148391979005548567562132983568856160628519326331330024682594213088898470472703439966330973843317125116354756874762636755328614106486440516177831391826156645582168645888982484876790920616935787061106344137729083512921136211840533412256686729425906832557507534357995175664570919214353237946828405916803027164339104565304487434236676501939577696129666376827712360218313126091591704680762772560820732306565077645535405229050591756274763359713688412817433202018972155691308837134256464821441993672831059247177497366174274098277097191010350658165809026279366062292128876304528277380276619704867098201414449517987336659153671295602324078895929178863555053829759127762144106783554713615548651070506755572201195548577354977098778573920420437125852737824911483310287221547737142613744982640407104483440996697147781932261129744909641584427188664972637364224870424476626152950277417082103696731081272648176242213562238057581414248740863164771918646235607295229223928045822149530708670077439936510482747695053444269073468826937938088142385738431509339882296302014383452444014187409558621128136490151438527067463012572209950244533141089611258849344659323728093767458764593218852104418965557680225691438710185125532884501024355021687517420742879117007440235126838061737864914902057974325591309556499724050976215523253865170663182935616850946205324596177661630098066858595011545679759350506629300352622831278053051214041925515357939713623163661726949945370270719094881372038412144276863159273141772055836647152779695270375327152118847122598311494738399921569296592420055570112746548172130006212559869190469442759628260845538663774466654121243129193094916239017983985213877125455765135680410919218731471580687394873493826109663689318365203170231585618032805483763385376616328038966575095853437561213929764266659676763276282756570907865074070020536886872321962932551123153378704510593267867700002978812132944829172018325644902293147442680028173167904941148807532822726302340400357520845084916483504492421648080525846337502721868963489109008604762804939850798218087853312491486229406927820067977651289719266103730315743035796539503574245635581858206764194163986695370192699574199923614105160337048260701926083385510798072257009976335921727136840562498053789332218147100249293556937581348811168170684023321578928336956418056100429507962943803768850050289756588682833306064380531927700010322393368939300383966307576490283109129966391858115090153899156273694432341058615981501097886133302637982874311953668511456675259751524743309446961850766051535946244127168138532596324939461435573229114048320777561087295018457568587245639234183485486427217070806711736412113866755029327762389079550057609548889022173243093431302327549119238281689205438969059944126012612637626112044532433735067664913264518053340835080584002777841557853355418153913684719440565494791648279223231132464487514097752180083904999327695674950694176180616718466816105359812669255708226719818902967151023894361460725423980732341523617730242840796755494590015533775708469539587061551779263740789100690066722316405984547968466439537910229602392417409280943736346050139388249905506619572323055909936514387673657716938103458634656419632101726473703535010165732666173187745603864565013337263461043823612884579004231189007157373635058963250990423055176666670989225848880413983584322693638987692889251033004834616322457895694728637692480510699335028556105545726054539082973293798704496856196887452754503273258692942454675063796128326113065011528844967860590782970878969581054450666792389946541819179082748154216140296591627589128088576298807861566567239002356444480581831706852390573295074658198368258499031529886769200883964819390535094059530681035849248649183667852938759289592434554887738403514161593113057186682798141178179645302380026328115628100509034153993354763966978055759373644866593005207514093856671109613977710132751402216611083424875721548398433378807947433341016110021651347197962416130113981926060056932172775738486573329109960069462683093799597754358750851299525157610636624818250749988109025988492048203546133053631965671454373653842960098758605093064266574115399177256277895931271866552643599023278188539506924186641925605035465273997357146550253025234908389638942204797483813534848032630859850388932255047026984773129462315596004807325207174956437620032929104426846025210430430967859933777491647892670400829518444575772609211509200969777086780816611940365049293655310209897999146754509020435332324951535171225291370483577053154645089736311182913862900319650076078438090094015720285786534331506103638462679345261775535726133117346776058896205723355594662403269076389642589355857676921598951197727919055846373254718183621400455912560695359840257086597577762014650102690672367890810771867506103373445073052434881206316691961330257901602251083332424180958166366827396482108565391391082118911086314131362751326809057050709814439783564164373874589168816884098010142775810268991172958079975411656554642901020932060202957787845032902811013922575837732678437970747128650714799823867313654559616603905630729302509771608451726738979045518791327901612769630942898398397400993451389648996397963774543160820558289603070909475192968001794480098765708333726363594087274797526906181405622447239289641750007225112007501457825836746576648422683520781320166823995200284004189182688301691452148604575208289500588342985084034095448266747224048713723274348495307124827379703909259667756783930868341531579880298496126634161087863351115039167984034740050101343316732737204596331259707850474959303090251337487588728733174554842124845039073367989215275904302331519648599058525583085315581022414117620706251632773606131455680972421348881550897817845908184220945742132612187411056276769284002903675804334765707986128299589235435348577198827723714993862066370157327568501741549114059150448571677360286775387941615130023835263846691809708962804266946409035596561039887771136407620074249315102396324426644772441403329445585864327041252616916619861399607621307526463534235172414814123287660317290326053514484728370946038093128645823503140623198639808984545995033134441263217742115457010554845426220447542920783918946432583451134863365118488601972293677038775990369923681551346161191815571845569426315377806880051684299919225123089769928268313733853898308282057361199289239459653182554363682560575387729450888757994203803544915733691883089990896221877511750614238515262085463392141976381824588722347203390510209966356576981849803385223268745913050239185004606249243948011105596220432386587912864100498911551931110533696250059940668992450132088694327595983978624977628934831160490366113309754951986052022848994085654979930484976980685793285563681908411688275951006636567805520195119005705971050235221487324744125105563916987040570618542645144507525697767380847707513448318291699427582391047565097438847381569831962143383138251593392147987009150452249471905976272550254535967457883449008181291818020438856253955848289285028953903208847337125298994751078170987102165325556672058717349697227863200638055557941267669245505077365452032388439368120407876562699744501335910712172038905908273674718569633394101286598616654128282945900060381019074897307795227806228051851539860009858634085206301716868035287082465168589806072603772591436290753014364773322153542114867882391346105324911054905226301444774903758210891454338225051199875010241817213052417712146317554414278616093259847105920292860455978978329029898375984851180110855108956201743288176525951171036611077008116324009363221493273773977924889226096949419269691646596777771637487006589322253348828458196611275950720948485225887409002888725723806631434468480183905940910150937513705435240593593698788182810552837084442894443169061565979060808037627886531845623908529547178860767641517618679778956650524700404946242063424251509494346892744395362894388411809027201635418498760209510946985196976860455983239310888965745510725880077113792923406850832734116550395199363859883393844311562896536350929060195154342378875787892988766253618075541654234743509089328067875995855166206863225267981853487374690834788667763972229093377939608504439316123884797716429494431325330386279335066284656523913532808403213664511726630767941618585650097551580616487524202742964779166228603315632915794817168986555475919739817044452928732028540199466689208092657980687172692190836391353479400899861744816906834959824293460630978580914202712537058476881283428884957793205085405326953337089001169286858149522833306893030358048214386895127341436566661185445690076843802289565199260701780671016749855267145446121190251057818537400044361678135289599566987091604424871627582248302184068810892958501882704730856599808647342594644906554859393345400755844051904380392491951707520407057561418333538380518394382053189844646096777971039489141515112153579663350371026655783697539226035786041954094317656394290279924221727639861796908451123258093436754193187276120532675404883001125954270021659798694005434746390816518976228763489749471599332495138554279530923657084125744875475989238065519287679443556411434947116601481590922688129477826541044703182308151069357473347377116022595031578941812621565013951707172891431514622224205864226801047207232834871500646146975104475642548561064913779893273719780642084136368619364849867053719553613570379644310293013489971586607946787340415214723358189626407819332848740259793192555675822752154656795637197139442345086206190358912988458822194531075602551186914957714942308841491894459528124720451968756310648054552162819140489831098744026916521007354930272896282530773615384726399111722912698061565035237209524448793627731873983824371346729303729047791346925807293776140127880758316477057526377299479709803794306508263422117337054544431029050326740355625996281973946840701688245133719160420224875230875295131459505045251428868045896697369719800420221905915636274848088848864377282816258698235435901440479912453873044658130206854100853581232248511098253910501253367055480765240877199025470752647012046300232659654349471436406241836160891405459321781284648434224225996352779676321667838815132053596087590576335289630098384524886622907426164537439883753777267642691936140548455948687411786539738094708562482376213216022839306538080147983956114770478859770535468951509535884552357400550816331825531645453502399960725969644269068327622257837204695069141881185013329823189764315138069943430373062801124629584051735398728227211699670648553722920152833961644863352041981343934955819517594888860488327177788378978412714068424610737041063544786795888566979122754871722535725247876790868954488112221666956309128108269058286263037596102039210922033110292753004833309687835890202581868365250487356897385866004530330008256637686122339447802033344999419843565148099171053016665292195936230597043751482083415785264281918214528394101560012874387511913787195269189753582500730107154062473094614493443327975737914604546396869183302160704467146651420804733829774959134149398237123937865388369674963600800121844013556738249706727054544888063368689641262627678827174647027056176424004600665804572867811439244083524610267413377561504575946120669532221977867291612015645488345678290783745223836852614730265350093312457105826738320423418444721006684210826147527642402616571196732848134217539254408222354520090617485893025032635448934645956356099037107720347856937514723439083498407123805076701888801692910435630595639356413506647492879271297403415063943210414601129918799975988669381577166907818317063188090672954395259705074788902176205776961078740385176931157083765104154093548693555758464228924800212026014603806579145627453506686704644759216443151358261217342462051482478984625607988000698840374225129362398466314446080900871228569940744624565410610345654732774555518034298559056716450532582308622917533249369824612370140290087264479017457781417243941660565795848949626195466578771404280776449091480633245178063344954608392311235221734189938595441269220153961303004127485609448143745683619319243267016286685715352274025753712314097784545900074696565519217963951014292697091307676447591185321507891648829801654945733734910072624845586792357217207234086173093110956510927180248487169378603770053076550104079006904932559430912424888886977133296068941976393730179311959334677751554465144934827555175465368557958049271950014880173163623519597387846793422595802223757383698546019706997911608730291282642873148368917891722345336753970425246708087028415692880187934892492692432580664421116466875746596195165895852861636651514399126621090925163769828066586025569492989215779099793821080636169760744657746684777503083092813071249605046803543833858684511081687472515221460278787633351757931079680419314966680991127329396167554038784720770194416103326613923622223621247664134875802257977831720300544790325646921450297788216738648716875209217304591068562773230854671974735628736365368860679589609063434712583793191916959225108798010137063941178172252287675645837612289732901389690579513768428606005841843380120390239141129720347864686983477591140317371484607571374378362997105322117305199971647329021516061325051840309808410201933134069281918010628914098867743183458582245491284340513734211975313331294164032854959627285327419483534235203709630553060349399208692136151802843458695446882141396519539488826525555159335524008292677006180987705540039209733281589727508903794925095275512083687690881994166861276769373468187739277476740596606368576155959005947548097796415111106307803666488190071337936433165980502725825779573621326730259743752889310095535464619181991941692261715765891570416576871714978767511799860591712694201092891718419349852293061244899964370583847153401049989563030689450280130678893686514956917851968434555423207110684504069798511763841745314088068550730278772814402509695774680364258062785023869530357195650430150327716433770320297614662223831487308012756376789476457989788449815637860970644091984441725555758032919942460363201055006324399697660913485758050489212033384265072230664326640193696131814675165849712220077045178967799625136168805755961079855654742005290267435893813468046823682459665478776302269219902391136111153369658722824573267956555197863077649511671237616513251784466705185803605139238575202911404268923800856980716353832772126199859397945999101344300704547582221327203015723993515543113541908772479803190428292397725326066387263988973203289693524366431584914251036311605680453499482185067215009917784558342636084773813927572873619875909620450740281566143693982607263531568205129817472504902476232898145526861774967011613669011242459505636549078564022821339966665959941902264575812775903651918888979556150302555962702498234882498934169909867676375430300347539190340767466596175439497580052330082248537002493902610780267150115393666343300435385707350513730979156612509524717726090098992090234139894112973853965435268372334998970625665103106059893075453859408135192249623079483242003703862586821832658918705549315907007196837511376540308540946137041308612047051123435446050990131163676550484337842425744786402490122461487158164478299206490829640399570196903133072835699953004961659032104917503191058921233126575171888122306812017679116736520686392857676296466106054435680713335783710549276443096729872128885500869291999291375641938805120205411568745514279957577588793924671033409909052899959204522076863860511999383018542011984080223482806047443955593222995067789872626261320318728682961916528602956754391290054589443236310267806474596464163714542072930635585717532330837479956544254466210078775704837063513154625467792201482044821601177946963668017203029504282922848782543214747998425412752077301871797296025242264257930842777259535923763296640104378961806122658288742594689828577321267410122345488014231790883522405271155312664085462627042248294543973278813237538780688361871662846581602269404056366367556319657959775162006974839100970912382248313350493586452855017801572449183396478538292171618611704012642938536793103709793218878456352559241935450362250625089914111091927406379135251159968040662138568638583299353723507005657020444565514396046590222488553691780280741947942936201990433576657939160853798323777166945545517470849068114925391602060914694209218817956986657568938719466194421736527104047652935952623915062803490450404087781488297701446659235614387734213498390548029661632529959580364561887164417923656662115965989033312021893384849996138847254211562240466644668892532817767688727839872118942716105072340912738116374844155291726215746147058910657692894564369825204402975996957367610802870110265194794207101595909969867453661329596380790734851046774297916484063707323943683665150233265559117585892980874394949234777003648140819109497815878129121230458729509453242596476556700695658686349402063358621981123493326969398041922309416637236955224748807822934908444475456125087972823223248308970584399665222498715721917651038914967795411627698374261984733310900714786566575844666277400049565778501580557584532670806702406761459476343727570426933116681615516886442669334192368370181577589949069019852291318147054460029096882876804064364808347658788248541464572603896827921014496139937167595089239132085964597633776330827718860878209109841116725441080115516810284692776975002803312364290752709597685550955142519605017742347425431532112000715896962790690758790491221741631164209472608602465253431429602555842274336037348672294579950548184726022158141380503421859427104236241934556812248358255327567607890749037301989242782174719631844390072991217220875877949881287432642456670915055996550998680743974530369847836417480506938129915381413139904118469437435436688850688039097403806103456174224795544920443302047028217946497190806669381180526891787378957160520604097664389010211492896801373857972915582562625434896432339923642786759962559824221486221570603916352984027090297646161107587694616040652468397304443570796192452011791603966823044438657769134204372091627806163302702620503382590018745599024281645750185832479738621343600171827946488349057528173660507141690680645810851016215929175239615994323304030345275808810480921430881796071378007095987534670467261563208594789617173541434314446686739714192912662893613443576344135923463602820043724103169658441700146651580758401481324512660818201315485028887361249138751849132191797050014072883438322326066834856615414257087846627544862921201262032006681212274021951210293967151758233922972963036756400783784411178003800415731305682061500704964344559324228806204423280469149982364560561380523742654668449801401630947855640321448236464914717158996079823615566257569734878187875907538453125952202757680352383506042760022278895742408451872074552686362053460011413560661607799842195283943748695232137140912071696327560748707332772650837428224239119882956558045148923533543076937670496343961879350112635170667852107155527733283007448584791781531283363446323007538144169031358579241074316238417402056163529048670843133198378236801279900491799798852293565906670245985565054580515700499044101643522643717568328536394456699339174314689382788479633098935614312005707131532665364444812617081472851093379211102285662051335005778069922823647046126100669291570778936549417482850222283646764679032276480275164469986406884467008155680987194407027600298843956037890625070302194037890574876749461127716362761337437870785464270930068348707946228260216361221431661815623594661627630201354331703773675050923040813854999632654620736408481979257347531952456111986166490668616387231691883191602934052727344028370762349300014568251560295365994983647179914124177666958173446341929445406057184913573173217890139327916177083550331054819397436768326736372311939555886484434058135735258503523806553878030555491403143005970886768602544051050637033712723379386739590347719496770862815836033239230119303078137272123284310991850478494117594348532255922344666878413807997657923683996496947113986159838410190100648168609624380967116539453904565481181552033241637188399369536311621374582858477461434859708876428236807179330649344265906369599839630747184514608903068731737395874249881834635712031658978764686291314930492244342008246580048295655109994631852075218067740509405314720528731557684244472693869762726017134987745134964998034426614590109247870214672140968573049223607962985236936030128935701511500755029472907676517309172952653282981679058057965655660971432735598458242574389408126138278305378581647628022469678908896242726697599118330165287248442737901404688501750679115960659063371494036279768061545765617595553290346911541970029270813438219936025194914340411313852823767656931043930200305035452027427201946111054969326952080968512153879288692749618075640994402717299464119438979280858431838054125323348350316280665043467415937961947050323632667295541800449651756894212097183450544820072343083970615315443216140557061396498290224015904960925168948900330889515904698233874039027689747164865019185041655745933227956634298989173004982068940610093703897673121159535303112168135801031396490959244970005907323045853835052373248412507689850970379836523373792858028058153626669026376654679619244207193754300706838612365954885938789207569833277776252495906979966970953502034355169823348400639577254380951697226055622110783775515509457253998531134221629710504233341389056312005592062237729467089219078776511371480595486427207769179926693696035469651206584707670744475207101571176019966331197173968571344257067892748634179571138838761931680306065484338240686521169652060536778415455875522109040508031168712261485224736832255752928925208690134753529753075815357411471379996393943205205589485130805994777369880136861193055781720633315552900855299316477329661071393154287578422395910841920649901377123732059857390658662846928123424611785550869513728823517411934075451389300537592880841098005060560351627666876045025801388069634228462269856980269623505224061639588342578055428933502528616243950112614261835097476595499417119110474495084095379494724750166207610728013308029536379035749527120317385785213443206748729100673545515645860813948320722546757654812730867235402071754805247098681437660903902221050709576360877259075884174186103963108876432073131665891029954635567818173357914538271544014011458485661384242858277097593713518434533806022218406259509555232655924369468429837782859463806425069928379447646897559670472992544880021478172739327795125215802109183483643443612803052197562568358726884791661122186728621455906243089419712769843000275317673812895034892912204762735360582759233034478128165183506319101551415651865194263084558591809961022324829599154176383597924645321906008612304920871919990061752035734197783177980823875066410326668272974609400745631757865130431804936749849134074150929248517017809555168775462838212772365519561693102042442816091740085972016962806544476403125206036350832803315316343016488572732488341412125781709385510069264331843178806471631165478823645598069376467184554779457191327969726187132908334800651279234677631725877966228492573440539023743533068433787597563152261168229057340125142436188114241780949666553267322089051522141100234491050108684523155969148665445018388118464195421535561235361406181987249380731862546281593868234492296835792402622716624523050621372597249135988122311982151745167268312353314143566121038675476515769558465051885894114373702406259085205790427103013899691301590270395835060781989079507310233373099720354069757565971255470295206567181106679493724502476282263138843700347289954761473301351682515696433135593156578322773329960945680484784725891799479525215151597057045341052622488065200189825673278723456933743529691378504374035460564800727692800783907737599161321807446479822331372869687009625415629437065149937720538022301674114058682035492001465079214414441332297516892437362961340708136322013268995898761673823924809166801577081689249762510371408007404866765845933974463785576591845179956024912127868485949564554810282807361509857978942383893032946237173622784815547029671954259847693784666052259704289742421774974699117223803071833698093307446583564340653602220889267062880263155433003005753215288106221286740043758534749752884478179098562965017398950755876623138605894522467302072831713496953376986723700960884491769505090537062144840205019651117398607760164803113332297028197087328133675659883369062337084203431406849708187125146977284204156336536357040047074230649156464451383721425629613070157166179272793440270083748047955413947082914817153815996099826579780765383897462497784694117583197873089911524440287911458140379592031298347701008925321257853517506555920301737691688610700113803492208394817328997458088619956989437526820126308239726583320750381262049698057220321880943851049024877333524239086542549241143729705243246904878334976831287335218284854895588556337250643118289294771584640686562851187008586461495437046504334851441518962161157568978233216744956090695530980080383194571539402861090774776855903486971986199130832906094544340792658221441770934976436430649428189097071555615015161177744448185273181143905213198908174316188875979428590371298772093344508536189844890565093580100904462130473118575534607945163869652271478718255705338643399541361233803452311634012327821745241885991894648374188952585423189721052565285296262974394573892696883763591354011412656822286036153855149839987688723786986914839265427207388251689607578679648302061724431100170613735278362063890204169713625672797067204793750173969614127924712049556270792743234369087394678049458157919916213398711440973168296542307433956617943392971542150285525750689553597843673786519701401508285817127760239114035694210880392909030810876831609133677236347744833026464426032992895919757383989495750234419274006547707257376526269055237119849865593805066056306997425359080026402124237010960400936874486593931918124243798450437535057371033575176745834031268793813497266627252310456506688190612138096487512467587894625275374853048662644331085942998037836844286780983210220275325500892291104848075323468184352343310250280203200890749805593912502406973616921934214310369047900700907060201898150477441137236925100773388466275440532659133357569252132214094966134872954199087753853713927660382316904908144374116457208221004037716231331308761602517654291041785231745650225783524206963187923709522449873193450986469659809252025506391236744133387199704110525197499774507722139399541465858007971828099524549900586398770270226131553337486261954163556052038092482228443784051913375248290220334050471354555337942157902388075914705509668619719835709441609193471342329420580987214619120351470327424447735549114085910095858121908138611010603445464448326222815390428028727501994018271397354003423433163344757376939419511632680555794395933893431777198032170995215704002600320104548189807364959771208640696932255978713724342006040559182446245849760562029725848036710547290224911406405450718833816832585330882352394912061589832034598436321899595162690758736378713386342177087064823137919136657780181075401984225016882569410624656717838499452870404276508021691398226572734702934568721058589031849312259542547627930220742682121004386939697542041418385876883948130257834535354787660323085061248942636481761349355351411481242344251800735360631843680779318175681922976282874549251367465630281903650334976280294262058967124106581838646515614832374078232632851185300511489150243103505198910214091709224285208484731311932367611035828040082499902160559021519837430890072619968328626581838747754256464001484024926788104575302766839313909897834553544586328013647206634161701493307468814278808557649271599338376734411746568842966742910463444738912637967951324105772920620362119214712400215140545328954367224627006045651243838855006338457849605914433820764392254563954488682821987465041293554249812743129708347777193964920270619551697079062745736600010115577912006291525823066921501086735342619883111768302264331490615436858676288522182468475351461729736922533367022976408302685480038972981375395224713501668570786263862894421591453172042252163759206696006470697203286505923608417790728273171186466925025826856511897201922540555977789940287529713379641108672068013981015231842817657850266026217843986071016048594335698800666306321259797055324292335047242491997585202750514898881845627950614482473249350206143339726431382389003282669965224852008699885564207162447708161065834664386144114704018352609175294841444433418018097889359097676348255186312601321065217763490814680951147621788349220783829877541249995758140075729277198104573004431062350473955016481114989612743512155434522814809951044381944176323058196024166950408303862785813950919424058964549175319381826073456852650176071825152565668082045416791509414380364616225873807691383993473324465138343573537893584827176917425283105835148405046160379261294041591843577780075920972692065172958193058633026012067886133324233644254019084411441934319709591359968439861026598136485937188282039490386245700887375708171843454451026943921127000478367844162703679844292757810443864690710965709692082579218926670573843582540971782566754008680586602046926903509938740641953035684374853054168153759482438287555403262945795796441501352243490908319941083842093631568072549137241608846702326696652163832815063432721992708203432264285331090814555785814879322756735364619273317759604355485053905333993976449932377155592290843003676701387205744468838430692843714849652863055329914868141529516904617247353887453894126386031289582573300562579704557700990588286844702202910020035355089613373938392766986092057789965173862789029619293439858252458184556959966425995162165939628806569142085405730668403418261602912779116524295604453539126147168871059357512826263216119160683990168002370737278764413856350983601802365640202470760544708489472312137421360626505239625311624393904291455878101096376077814600284912974012703839390979118387915641114481271379167609275130150949957650471858214454739613811920371618240129665248000988008348148501980296766314565130254785010857687792480981065337426697463901457237217919010385613897154813845483498388129600440415030770973915653870339846296280753440895335372466468587035490571721645902147757668914336756416098425836324164426187024724010340865299503306884884965412129696775868562670159131396027440771210832084871329390199120478989399141319036411098682314336849157799280968279492149235326700950340122896321781269134927432444763948362430672385574037669492434112606735383971348839008512481716772284592271909659950227364363058453718302580099101374091911121473693705746764807464594673276323393974917507125223908399173737524902319895461133858007985259451129259842490401624748595827053268472027801293201494696739788171618929006298020530138940573849452496713433943893213174760567380444127519966021632792864000418650124648632401416555486854821886833177014091151660693296163885358302580690489873244477229784469391388211760717766620581332685364351001461725230887167641988408235056537005902866667466201671573081539751053825696378601750160459831331929409558638131087669445976061131202029090647118704744320107183053119705416865897486926178144505898280395169146804604617452584193160117987834377906627483669753636134571093978400722035452348637051928712176032723528095480454178806772312208541762663255217728064196393319568388795388154115344321045801942862414328367332646442348561127622150982046087360128975126058046087600450869581345996466834035362013314827228174864425454719049087155046165870968954904114135395406818429045556947793325714646840750450241866861169753905009814502167484885203316957990100010021954164352130049182771877804976999980311927746351634259552296590451366871842711166676142825631138836327774268760933117013449353125196407256030212080667495388653959843062781325044872964570594003896828702271374435646100823528746668794719572470428904602313378418408162921188189033736914303400656159054288275391410561581023095383450395854101603144581650162225332020865783706577078941724892387296292715654469972894987625276565070609033933287492685393727466513053861462121424512826674860360763206486827454998940906946750267903856400044150078517723579624314395031236957011454721023891317597969629357685550594798618763151655103065233346373323819466368671917890921424344554873449716172929277980301984936197621784617698391829756683108424493546713430484274569008087273313553462027532491427224639533061883017175858183002086776336477997616431824221851069658023763742610832252340396677119347185907359859827801592009706094777108641759432989653429473166449043271191200551861910470314196683087284966992987605587681264773638188859138850057342627121285650496620383215245302989145269292134850241223941437160976578621859762102001288089977149399093529403289233119954115584431657305017483443079343481901061711738457880381464351056813104538739268751273412714564506281925335949416113242979986903213329018797108072475196723183612352618501227641757275538646223865360341572636028140394060021223564040230666226252906890643919073814649947047153051132029528641035316616133676373539637363157446460289298428262584114972610829445134008657177148336551043127577601927919585403381132144213648192052769991356181733041444885549043592028826525639935205041094411923156399423919853744284809916475903841501415180982585318639638584598528910628573372230623298209118898493290867244387695799815320445797526268482367128838499134570160489887150993110527429208773251283359158633827904200239837474844300414745299429818292238710310815621967800260575500373210340384987312659579980817932362230336583853347894650435307007853402461610842575939769577798082436748329076604173138415220236908955361150059403908817737653790611023830849144227034048878176566278621167275016959234559237012147647830324415364777590408949448893828039562570553370531132712152292757812229993006632940481108119844300128179724444292734898070385417163181550586423412052717905921928378526715294704396968483707054281722056281220460811784369288631830445555244066820977616971730675955521426020514960749694997772688185000378032800957624756092750801286622095253621202499955619183043045871857692293918812187705464680042339642667016973763564299601995457408325072936087668925131461559515159487748144048685366012421314508906822621907304166719094241963752623158924609328015541366157125261030244119109946374463431034697796408557680194243682165691356802261056895429717021991443346365898671898754540127190550278535533164531145987981840974368152867848466666026831411350189224718250714153654105980732342025655640523206818385301314911801579859598879748729386404259039470248042929082717283290504414707848401574596822059351615663604688881229901217899312631972946530288116293615655889194906542764009460848016091161135493090953216235854659533502203638279080163459212253716984683151440641485790854980668663429403184198786979491677126083735780904231844196891244149558939767365965582073467337945494517082009960077894491090800747194482560032077550436644237627286546780581997005739487105220094237035897585603492617262183015557335521805988213313642996148261381453557716640177399751848603146979422115787166042899119344636214049628194526638992398623170362869984775807555352669970941091312447796380672100537592927189759427743436943516125075958994891620100211213541382448177308330155929457835659002926569255905745660924017880137485756299628528451919724571007127745519749330932515265097889754018673959342442531557113401477614989576084656561165545741394114209384918806659057131200848657584698517267046769393256422564812210585802560349221514856013033057168954125192575789500857890560888467950186661839096569027919450634940754546256545908779474787222348115274737973557915130425625239328671616293193441103098711291692182289289600565041396081206694579387435885750484266592397552016769632972323334058631898773356414032536779543139328382746490741427186230489417598119746592639811086601503252688642585760570841305492980347217039216122040054109785215250222086430489354861401674230527753713899946918245216690654447199093000202862581677419172663326187448173434732951357172995416799385080464930761259417783296080368807682460116190905142565570343313904211876422478851094748310135207795851771355145407470723709990456231390929607083371593151590091007001477189250914971489318612417648877619193012357077747999164650904117350253011689130521473235646678902232012341721882514108998648710196132036692720575520835336000991350463418119220619564190055857766227164947005411035773987371458141626525614906159711136895646097662230639560353759358615881964621147169131080452638234956941794640973884734104164064365689263671459019355844610214172774292080475784939743783970254779906981771646766758711873792183014818543921218521967682381957730606020748401511701304046591217597931587283400058623028942590477809713972778193687807742520244378453754167543981691847111809521664447898464296190186932383595535694513347624886893158045875060790522970668548715259839136560267961495322064185383186700144174618270585823176083947175775227416028976798096143679544784296441051742755164542389690566059376793534118312975532385893363908951317860883051470235465736230409871783316674272663056887305895796503561667692049993333946874315526852891687332295798345270530122027143965446695898897630099511744102876548023793101630299226295178918044740337056365983639537920403201805004675379427562645965306167987286065495876856254574268492550776140640901605892384558351493935914475876675480887266124167867612879723842547253738161860524137252789185710231731808565268539919471855277626987313598204050977844616486693359550349134932665597208104954825193742000637264244726497078304143598495046939178606959384421558156309359840650720337820624999596880201383742557434733789148535206922501935652777054658733584260254872681661585735390729503020684789074574074719368061218818661752176272853315791471091918443897310604441335850259684624789966420045412819008118217632798336217517081943065914041439654461042722893746075178230973212775018541545542244861251804681709067305599106699761407001857686268537008119252397244992824775616838000342712090093911837076389448176277795076030302327997152130331022145144089939273907620536281613445568500353178088188605101749684462490544301809680289395772166854243875101203626944681470251403658520862168812026358049604656244631539453044286450640938468075293768254039050044010590451541075282832889971266368784368119411165288432953951678207882692431702168260383045604458433795705593899140442116412102349453425131207518130871974487146205796714597982253897015605993162425056257766980959280999812334622843194784257599000057798631788436878301214652644492728600751699979897994790426680400524286671479822102555032315476502330327670262440484014260297305161947099520939059263837433309207058146659671585293986762989994651588369170206666768278638634661489242925958697290921895926199380371869516744244035331037901462014071900986855572150987819606503008153718102579749601422991041947574938074066913943993354137683580532061897625794458086739545928839466145488053828491528205236127537554088512242562356767509005190032560265131165818938964772471944125844940513291350178564780231763058169075135072483304393447397293969059295656753799650493649479964741925664321568831226436534663351797470626007455397433738405792414854383884530910094100442310331878706481809370770956045529436401513522764013336510389595904082690367556167758003430392262306105294680592580463142117779676981357235449655195304488412305168043662776538776433451861104003381718641879670089510857859830990927950616034021335357574909412875214781638388382202214152476584847593540739135593055472682834654091953026506083504533357616194035339938297833484987276836877752985109423884408997705990199077896064782954495936676595554252166580283635539109651526308426172615412926894829145671420347797553904818956300073135044795566502706164038479728553413154082101116384953255428962620180277164435192848499430444694227446079330932704818013902806472113713838501133482563714286959890193782710013164941028963780628024207362165957416005613906974867653523804655572750169432719382760741467918118741435956018240452725532828479547269340931006639494667152063828520971651132512503870519101508542212658447936967782091936472277961641311987585839959181511864767976432909807116771620756002207933281952950733994530545090605328820722331742659080113353380138318540638954892951588513330192669235547104925957473108488725387627429254746625713740790090589399009978563421656003268232331949733495788518063154192904113144990877322918066496267109701789676078485217844376562702981993306684053541062420457280836708320769755934824098795263059463335145212905655172468948385464506670693953038230251719484024370139527635532250334835350766284620212689993303687033493936999823881225180810604528731330946924095293633232120628556174017181890995444799132121293697756328500356087414433163769040756909231002296122576226674691623454793121741288207225872356957222776479829902296344947254404301820658843501843439301385585855156489732693033259299709038287717842342323669247616354963483039571375449715125757216600901482914085379576101485813567957172394651117767220847853121828617543826133252675367618072539783962339028106494587640230810992713660090199694543501210685927827891458989465707020022238203644034428342140682915305969953349456654857779325737483059065829956579197706901820779250549145611885375342856782713527989807494195746574068315074033016415926288730509460294030771855600794012539366222351677722385249713300306185335631467086637084460328166293172291636319869115571582773524173829722827414527267762901546020830536586834196628945006858891785257297404984949116799146760946153441144868349038260075380940879041687069238661852167410675988481509540210795727374921723807549899862850326858905682194931292214309638005479524206676450462824735317365134752619900850352355839377272034783001686981322467420424460700773620442049833242469275143037569700201004054814658236692104355571648183329920375791676341777043960354645319853668910758460287278295454962472355700772029493074012504172753823406032517578461267829612135318326453002761822828665255515914997717660983323922669237834449204757098921135497089467480738281130005179496845990844486293994068749135461893482120318056344720992050000513829835321349631068104796740670281224096170000654451090209001237717022537280055008399700693739728803546745139276241912187600827691671836748086752091532897108394020244217061650990400717339646480383892889099208876544319752214935340473642131019570257674580407170320625337589739655613302414243463134378772401123144012425005638160778787299644010319599185412702283579604541077836371947788599764355013865394617466138360952263630906866446388744682116199587052114869776344467142859461776395850167450202553831095831321484517332219231313958843349076717500885620015150242846932971839127529675207288119927599226406396126771502862417170605002839609218630312178246838987403340873497767375319569328235935751059131720341430127976568402393847730223384239087954867289802863539152276875250484764073331713726387693065396593657953037998038867934750744742251646576971091667669722610941480964353627208398593677267878719174069664541980591366459703482796492230907020615747046734147465489692653313260277669415467221300473612071801340829736997790671514730514281955648878034617064094397242957720529522135145474721869698158509808717672946620435842496491765449929004534678942765271820604525421348067760892213056231216506002423455289891839725031467162699472074182895481428682500895748758497987562933626581906050701521022122339721734228901430759097306681836613802572448174011248685212708815678444943579010555054952054183574225080103099171129426223293258233925759539955070479055969713524910044681317669761709795664046429442255984626616237432267301860506248531628245099424094039636407799901311242614662370249910429434476426506409626087265792460375429968991485917656058964380080545109370739695751349663506790311974432540154629851375658476795497792880817115261554269088480487503462038254044532988624392231134934823802609595958669685050574083492623160315001810701255386412637441629466260145679812570781709042733771270973561638804609854068367873264623654178224843796145715348111811535766240589514994989880373785241997337612936533476506173421346374460339869608218874810189912257994953683954088323960010998390180636254185685430803544881739526591214487784409090866399990488143220229358790139278584537330012801178423524253714793710056786504993340142261222284736503764946636711478249706933146621238767242930360904288717677870470553797700179414613286375068923160197505369065562717709944675087945713060789302905992379136578205852788591482777968526719760229728819711037641219269414667938444116384810258279861120508877200482941284635772171384072730012777997025981280983558265180926945667421959765413463710231556482305740244467616193043318945166036630219555296275319180230142671422538578258589171823955588598559696840196012349261145699584968543852000578254087716720941900042239352478237419805990324288210368874000461956845279716311174918098359333845306414215469922392265978933565444207588276330695305833693162449650754797176818180466986555507124666577262854850505755434179556216268488936733897206403183187029226541164742413974412512773775026924182580484938154651372901419227937780908808544007307102512032628277078077904999398113563045989110682074655000348507202878230667571870286188605054207650582114661699504139849153597217315920189506103499932772882627976473282974418806415295420983590890703324572269527145897745281413823052821561537606076530721714042511505369776178003700332069466977072554536420615087545433780408119919358162788341759681552082090534782518780518859255169253270997883605874640101312679293327699106480308416516135405113507446289611694531724475599441854182739536078896876668289542084142057224043819425760839113333260418377282629953834142989296363852689297654323783747883058777018076712951047731442778196928881552657333599435224089639325347832469275640247167139092131293017300832848133446276844442626783054431284595682433586255464936212761646479802596603316691902655481476833663047474327221332514344611638949586904434050761968274440739304398611133508181067609382501976763785072793988070791007665690330669683286216796219385546142390207076481796788944232302012424085001956841402942540679019197852481728351096648057082650220526136994741976987349219341148608986320354251084143863571584724821028219416570285168388312846360499319946897724081695258375931501198911311873874830226624070880743165861181598966892497699523997082593815343789369453094899446903572497703325634795394980376365121286467114643041933742427000661003393244522798498274533858812535069689643140250440284264822328652518860741453408250427421207434887493054199304441449198041017630575420709595063006272514511028932477801034652488288584100105467103825709698448707378855861724953532450989129101937826024793060778472749129647173910389598087758143428770067757214630328295942396730125039298964780494045460525151247741802191904350099788948147718728146953455059086207909770672824166040954382303862080801896804151634079806533054773199524143170229150906961656032328155343611624197734381471933946675725765027576122142316887575104009748818576552787805141699891795224229328698589490197895394025356234374080150693519555632590265729410966009668774282246437503303967677605330556399435238642719624968724798604967976784254399754363253045553430420693276639471833265957676548658755036606696472254727983866779690571185998133747668812226266624171932212994173544741272826529881714734298767871537510909336933546499597021212507792524431181861993669959064340901772566116113965564571774887720960044966026081440972506476738494842692374044860993937443518438253419273245608257792937445138664145418382190289125779762608498363329402938199342614699636916996337856215486787253965558706698231033370977495188714870426054996557973700548856943510006489552822531308290207750397169419076516373459644253925206458015196241874008968054598506184957646559377418277750488189920057635097027027815009773235074496676973016171449356005550291670511852681640844558665077032517721967311297135541841377647937084215179168254213988027490494570952899705616747955301559032813414131185474115664747540031112670450802057206355863634759235615986774047176309746794088117928255383586317724718726485501244188160056270236080747240839763877270880827737340214268666491571715905329150987758014750766602762269919917058653303622714284156997874260729553119539421202738108353401505315843315953041552095065952548927870874215924989020432405662174374228196688901420630579805012584860539549501861283421562553865904356291080158663320070484229955809445265598906045686329222531953215081920791379677360199853017008556557689970554720065450999491350086301145194504247089039060271296140105364816122218939290137627375954668422895208705529147774529352998832989667212655974087540764666512504155342185459472524936623888828054589126048682120642212564841001958950854854085755767552606541834332594306282540066682002104650533427713735611904106551958078020188723742250340451142643614795873527926740571543725053732055461779605795317457722429010337412049229590057769104510178851745755213365655678867834423048492013717685267752069374658993766372897345801753977615180804564871343626200362097260827436685916214640510246120324972890066758775938280190572175546582793227940268157392764580434133561579696263966584362384751407443206617385657931447677809052730773682448804592008953336609392135003624799110663293044438111857242302521810321081225768163536924566757168646836645346617513383510888202469030935420783230154611696005294106536173462396700300303712341142841378497305178442583252079733471847454247430744967871302050405009147857911288774412064473877270206579479001315388064615150762947169656718922488912931153628415996436489492584434863810101446808102586518942842751992297257395194727394682727019404220319140570461623131007298138046608731383555367734059333552097743754296138313132795392342856743094805754664906790614471838223632648836132642364903659212937201745483654507102054773294720257345331363415986372045043337001887973837258869972075430170473050243513398836745748654443932562430064104235165344853762898807398930837147384524254031961792660436174388631268039454868945397864558927938496878624636124837242912742730456632742872415795353534109334975311955334962026839063631075285082951929105055489277762685558297746470307830361637941953073750158334464044280747746804912781221168789797946055663707335741679359174314988990649566381715456038694431597090458975069497889681118977047971130325100752046598106182801159148013154716247841930424680069236036033896905290593957516076460328007899506177366019126678594385625928529869500474083309928012785708749815321004462915742484365847227053949099485555678139352018881990437512255565987704779517874254029055088340375585715871382787384176741638162370587953095123521087160517973525418806134792902670867134738902464277077124461706081850596091351681358671075915058343983358054223506743702569439220973617540949827944260763820494439691588577103686465584286102575532885327979652953748993833653460728656564250033731260239930043860985850516184714101997220159337150931440980661451683492497834546786089131571625914658544101872066871651831738822861309134196421568227680906944803552718282013851238850104217126621220035007601538602164959691231284866345081583712680371674095568738340112422354019354584742997928328747478301531462818521400145550639073020541760095401245027611151253668799939149603253890628276130872276007052038005324832926488054254976659391319053521784845939227721946094727086769018694186075448847925671441973535147388312166522597924815588602398036685278839317944698820911463952966246140689591770366952123620076070927167831713130887078985172976473069674921951480009850731519255878655094655234037081396757281902343902847841434025948886580608394283380756573835257058896986192396013128879735168335713361030596486629242281384429192040036337703821442783605686667744563094644477775742434701109092835548595013931462645008656240226565120131926278487115614212870852938394338572442206838534792105941935690533628148654971534406064908068588772442742155060011978412095031094602182403913383510099069103793959101910429403992676129516262222528745965163679644139826714518358377433852483767160190985807022332512888649061677507929912889968564098419600744258898240705783876938051045659267177922448398429862705999007335769087058169150756920134188546284606423780373948344867250290747113486487183000731867173415940424244369139286984861971789717902314848493389177523151144392212483869175576560034802316393270209188911347419557566036020101235295274575448017987422933660217496148461791402669811527495226227556787944299073704186148220703469825662319224251694627501655119242048904456904784032542300383264214949695438104239077753606204759934039652314363864189631344369949782428404899789923200974870633324231192112849182276596571543094837465973783682562356860264930771793947649638405104203971509121654435448065818489996086111468800288463967775746242884680411716157279896179831333154805839097004853677738458786445624769392435716887030866354261732228840029853615088454788595715388530647343116733622964261870904831513155396402552178880212746747215827829273007718553300344580224818592986199201192988428026761976830047374908455578241617641622388968303990084764777374854610743341219302843755329559280409459150060159764942399493191034081890630781192950970852389005028920894189028337671525899681112783282136402710958484050261448198886676632246329794819227876186054439217580576491341532845454840169367344474089983548138741933988029844291404020437913017939512833357927318010058705991471948536334631501691279797496906248846303511846059068092962589822264035064970262889969289045244275564320536048924541735039484662122305316736746945532075329569309715245344000913834136106339512322561797560693485177940824124728595532633920454316906196725128356939174208528674563032709065470675844689779178026956219781511873054198561022488917127264223533333548065773008076841789269705026895175724449932942044712370809268484077220043538557043545993205495310253950565042542004234702786689596340093022460373903247766601025235983240748554631033671566760333341903343219014152321153875876244610060990794308154775782411017488569910962384409421481893456152178866119164984566574384636746710604670772905405462097847066625612663979039064624821658567800633782933143364643351908238551688598412355241030362047960418358755893328281669886071009702570220949765288154115842933648187350860003307701803079659691021329803855667238354289189125456520161415704629918572293078482775613458824384603654785101169097010535587637407172837612528634245880464145948413036617462706548651384265946040577869748170705704305750841955315399416129256779569368971974856908446099554216349724106685049498777591383956018488882438727056964661623085930871721628103895793815159212254888559293719150503335565655975293036118309855030032909358992578473211198709700714340659290474152816060158188133013301115015105536237380224965692500452093026851310680897362231154202373593469264188804605611432389373924368967161961936487589748806510328625644608449871616281273073913361933980572907445408347806493578951105975342707556607827174551926727334421443262212544355782171697871656984876383559674239935470781938436985297655740969765940862031981174743573931823586482635219929835592929219569252481437738172894670504785994399163662087142826863868151286084509354506528078148875019434349051918559529058522045835613476006765444687625899062180235509373124173857638188416538813530352785587948412924176685780012209632409026509229604581034181416130889495417917024082983650330947205973843135607013640627468607582770912675840501147587307440953520131469898435042288308576695176291611626296933352764388981780294343017216687655012060164620843046894683294824672034040167964212612263276183581808720850688235542434636126375199711640925355582923416152326394396067174198920393993394517566227669524776152662122679181394009286190208836716062192665109868967422493237492092108343448161452982985621051102253405719301449844644672232461143166307782038392396309641854626008619232046146946971137031028424207454932031063615731047872365117715642714441691990795852175300304115602927344257421794618365636483116317648072398960640411081964235419944539706125453332302943932000461947786450172229705296709428189718141954901040305075861758152608813664943253165890616974900507584814989759604763768304714420461983196225821843143996012150218477194275710136984102457142443065970788608948112539109127846369986068699131026563652322541895975547566512117175009287400205188345263449653294085504864338715552222449667685393149344415869068067649079730622916138261443243045001495605664351380716844123060405743877062777501573881943070538751029394772061791640724493694320924874204857251668638823854061395967418422945598791978192044591909743190069776506558713360782725707920699090916121231294490491852627642802880091669713047496976803915586938606165926444615718074239727751869938648742377975730129398757433499689168481494583883840748850768865899112235728003706198605892407243777438563798832556172692226102057711128544968581591483732261895339786065366251498778430851259396052520937746722617309940912920447431926082405653611378023435197879247052690069448143861314222290639768327325975250614512882374359222940866816516851375701718341652847645480492723017099376979860562751064309896987150197469338514988055705152256810276394294999186071497124811558015420591372834996442072110689982178152902388758584354182253782918640675185899046350285755362680745169713672593901087397148233760942843079875156839093821299006435974346781907819479544750338950324918497818954490991494369854616380310800127420172012869892538731803981124842015689431440751399848564725325042689011413088744112228813838701116594872016826466385522121174742199045551298079543432264780531422006376438154937489729270643615468464381400988876951137091764938751848227036942321823764977536987337103332077477360490063667556022987259724518901944352663954123691478172371590838292109939151690419490002873474190349120085593051284190649971033083916036198054355950357764373835949596281418943692109349137729751595487124520822267813697396189390100376557656720503629063376164848401701039070525946448094857645327889363386383584871324093341223054866714406679119627541265765066164641405035835042052080133505283840961200245437338653075017255609755955120581573393744102287373787497822736446477703855271628028578247750716605403215419047203154010235512296987134875448398260387882334622803539422612463687812378249699126419254743728854369699642880313994277100409416804772271910919020557902608845040581426993183286180028530069987232875029141607167862444688563411772038075043340464307288545561665392640901410692780130217904275021123876879004524092526504941262835886506737905290252153541682663207272436324325150284007886643014334120340772586182550036037039363345588018997614624422159852796372417469027805741765506088619273592054057486288826579661581140543630322694288260251930924273984806203952704152412237849003197337920730505032081142307068648169210584212640544993443454839158901468316338316720152800690986247528217285230510477922779563921338252352038001581299369991070118814040197153784642134194298583161967013337447800391019717152847344023135854310940803313913622502579909315634864814302321628934774283764003500904960368845548456120478112948302608342388052932065663010501242617514957734268162406559336757872057548896867969345194874986774359674305814175649160185606225541035644051092799772641061294859956374621782072607013815571964656100454178322951447612380133160833737232449079205049586473424535808611080747124132754833361463989976714501886539611383369201390355251350524512927952399292667058555453692402363576811448904349802671838019374503787760569395366441044339860969537557141562378651265411382096450266841846221633996265420168122910378712951112946276080198773004595197979422362356400772115175489296644922354935912818883012180591090815261411388687205020997493131034037300138299639225846870175464241587325631047823677015081086015272061091643079661555913802149358572488135432220960392165471562500132491793494540177157618448533880742148532576415066934449211241621502740658837586999129295899596225622336108786598754424142412972182640694931785263167432763429231415704331886857983096764299191882764467676372478191805681927959753655424286435733565846199434217040314624197848614347771241758050108991014110250617856988613185642116736599891730256719943632684241400581532284099057158989104599850336566222155013854835371539088519815108569536191679058493644707969616545882930279792007898008551328321561368747037613685566183471804500725153983917319350010297838691691790795621723929480331180645969719821885644188150791601593636766119794618524076122572305992487333673095263677866597160269069652449937801934169875221943322341692959355486513441035843486846399647419869188519964918605819272934486965685003250582289892546011416863480731674019829193725441626308684067662829346411109750119382341881419467035370689039306397259090233340162254322505397348489310902789096097007008012725446853319622614374936236785356188126472036156316969235531932785845443335769285878889298931358398215920876346539945832513023193976595503296898239192154396526368673692117838757399432366276391163473264998317186581701452806408061609327226904329879673868622367230372404549713805945820955085620604270568927882912985805028289457530501018028004369346117318322731655219346557447244655747678101366204931298399623521463077794841902320665477940359147925484747368513808102280807790639690994024367660561354246061360407910460904173408125608835594426934211391933442195274332465636296773353849486361650666204359437600490832595667079317311406737417143131386930864770870323862126932515596940130755122258791250432302111628782164093695075874470032194909755790459211917242804671274370478212285995012187547490353069598156768082649184955010527939100452306742456112571070200875838598477341265826143399756878876550508139055160604427419051958931977434966554799257048793895069797312625278511377782588120654076985088453461909724753000309144571051222799336155757122949518051859390024998620115114845114496297026387216417525363544546124389084823221902360045108832102794859372253261457594902762918244419065243764416519375681596844395095726675071093217966565152436966518148222770000584224993352675063732930980363155644533340039207086396564966395191237774908094251577721089812969327349981086232710933014522944785390810762043144810668305592875467154371064240507668094051857742090666519848954130598266940974456228081208556496368775951387003783043129189629051774123496101996515998926042838577347667087951496229094426455060497954589960332856596103128645774131436772088586744509733750734011358165904810025062863498131960203304134263762720384973594702020460952557062174233743833686850006366327911045377321365361979587322337785124789696518680577490097510435728332802895424659449150614882703751800999251168388179716319020962414654526843632704775663530121628515773294186519285263548006135845847316289706706785790857207457025770561475373423961979428821509753688320212167216645095090812257581689946611395087817065341413882249029355790594839551311888970990243587617244231732041659363807354868175493663507829222675479851898305200742921531471961053474256748951263765740420603922538264276280199513594843052206622188702925499056862894770528095026619425199728116257609563861507365663846624707644433610138148539208347292903880105838327219702328569701945135659785827699788017223994663207793015513256480585152847463709857549347585857305241748660382494593338973856873989932714260355097484814545258640266307632611101356037046819909570877197055111075777941442008628086621002841686312068509868052778500228122809713447548454234964019948995204889388574661842750022715211443169819261981855916208362787875573403427668836614121570647831969108056310070993991414141453911248464688143378705728188577544183872624788129105909475818114980453784731623065738975010550619939811541137985665728834175381210013078369004154338871695674028108249218265183709153704786020495957055649009214701502578814977104977211268265044360049372338667862690924611670051049274535419152937651611666655914228329075290124337516472634126678004273681075492560806176894394777724514249585463664576267905131651376788499448531097928899040808607298350571489754092010299809101258538752432485139617565499432331127841872936309245669019082866169582956663283721049691151692909335128558637338731142608133919797971272258001110994556556024410440514727104216794305480546446023390536538238967874211120404426953071537246246529928304923534618472731918202617135401342747037094730840975358412316772279036830150643152908736333696175102346606108883618347688486735381454789876323376734067879094926533958772311325599725831036516200087908857400624116084265462147239541481573118283608381441111329199111103819725524987039594348482405243212055078126327981001609771367205024527711041360049120830417637385562484325177083833041975607019646192566835843131965560439244986136505783829056818487757597786351570276375260322411378526156557650883333308203057953483418916441453107373108546785984521854308780873654411954918312185441646522400039895475122805839496267924301128476167946888501151580565980688937518199332059977438472129390225025267282149373925429323872627907939894890594941764462430956318361320013401362945554794487784495939537955371441351311630201943459910252160071725307808818385031539458707877885522769345388616320085370426795491789847758695568402561137978630893565555164045842094655476568321198377637402660570137459027904325652263552791459023548111239520307840818511936395428496304937044560411496012231063937265958068477254844899633450355363160522678281942266179362755942204028738174615197455846071733088471665571764518099804485765505184925562126637740683413998568995482798370365375962740159821827070069098230132963876503172242207075061967524904503505488879229133874905675016409512473326983233013509892005015570713219142124715302166291737566534064834441873719585353042824370173007745499303456623500101873768867366589798922486543133196149808988424626644417844141511692171300863855870731219605819903107189207512763341554050289210424493571109325925995347504097295479531437227844771151773899160695490301821435783217730821144707048165071721109160995608721958169784415028084112014997225724546021719940744255724453467241522194548212060593743645215013634690389382796720004818489791862869150047321974656288350516374196778474391916909807785339431191873508427210837512792566770363728266786996333020289977545808453666453608280315304803570266216822092591931681866278097462314321971903482811096267084430221855545171378645464951438693592888507764343720568970941920688010888931998531603893326707750146451757931840080139380019508747196613242575570969068590917118696960589400038243336698151222723965851400701529166573318115170390861553707656947651856860895825625252739866584414128503005891745974342147835657349651639152988503803764807945425683679312463153444143160893929912064295576023276023061114919011935463726987932495399966327008537682268287917972613667674609552203801307472269738646945197005886040278833331007362391373109441392603367792348104421659678727602690141961462379141286831411376250387252675166159243790916296552040623641563818729070443976784846760097769834471534724220834004764422568499831462893222718321044756032092717296262553203477041595293055483631833676200768688956217505914727725287283339455475807034110050492766872846179397966732150377378939717754031331583734903260269706946868006178371160255607754651041096399389007220494143509748092970899378745911324178918780798193717059676113542047298238615377702829225452798959131772317182437285503411659842132707435832022648843919662233952622351213254726476888502618339136923291427415314180539992979586477338668119519616332292712018047633882892910538079679709761430467961465075985868615824065666254823471163290507056963534072735058886785225927783407887510250130676457286178178510367777342444153192197919334263427925243569107293985091973813334794523068333794076985604511107877238135376708613469219305603577320787622727724439760456162213450073726639442591554330695631362321775295315828861258022415467744831281099123578522841207868195361859098037806655696731089886264231610166672666507814522910205583871629704292471124282295091948534589024716641139179069383951178290957590257907963806401833198550957213829363924141196018278519782423523560509354408139365371493015640233066965332849269920273225475992413006738322108515192585115452758862206922562996381780067009118047755495108632931632648369016073080373708058951635819974594873902513825561807508325718732915282594909370578666760900637300005556350546674774251750477835282493304664835118280790441429164598635123914375959783625497443487288669765244655537423417388824347585843697565163334996259542734523830668425632407156578389329347272278897563287186546333760882781702378401178354168728057451788447512497574098630650191663885093226224764624162125358609364930872097260171072548065977373057563550398389154407540135381589059647875343087554260139378888855929036556650754917660986899031633335137306084637482372842920254748760984479206350042604887676232098294171737972206135334614919184470025062260250624744395271562189051421690033356304554478025828495567986368497283093133631041421739718983649419344324134657376976411195995292456851854382515569573101450443722895365571205663123179877325681632008877429641773370329752978897597681565766219514190670592678175007385937585118829992373123076686997052411734375423205558825354108970887520607180728362595730288516226182587437402023462236366375733790285621255370844279219439666892874872833435383274258287101235913180307575714129249896047865115130536053430046117979558779877451356778681679172666565106491223111742903736374414607238231535487121991516845161423340695968473757108635698791788579333201173652062923258312271296080351216787063597452400770384730960534278613053021579810644879577136416503418793224985177109777296451826178833779352160505121271966963058315224380866409002704073731092056460693560060535330628407379606321010077683507707259675759910294787556424301192008818143670040857797894989535758483727131811984141650027348225968759872501579129886066377401625711716952865150567958419833695005795877878005436490245457208037140789846549205597167481942645521352646695670861317296714229217997382743062200503181884939822193099115532132490536524772047024917581196274818079907464982789167582835892969056286165926863669036184534712593407970337495815396075814771027898754551303428240870651699893293789556878201447860034608416757025029668126004783041383804046321775900541444166001082367208054266435068765094417119529068851887307891129421851043382173253913912968544270593707213566192784282668897508353237012306915649438600344100148542087903660015357378686242794320340221134161903708398903856833814989297147272054458538255322797046585663486630082816830136273055902515200616115192986277668794612381005411109096400321101668711111020814109784646291009683428607400249776741506816752463951777535668566709562207741406168744698157115291582994702325800608891392353996496589373112404573508121288845421583955300522727349576410921025851304155422762070051164455710239493080560429833111496586110670709071586072128248383479964507255552511309442420184395313042920042510649972403482788651791038827591606798915715239618944725494796079246458401143496672299953683051303548192025775922895592290009182022029621216696792069467416361638188262077827854027950768330643026795689734001664176135953603814643671054915550886840353408299092310891839748453782561429235284646983636622792537980880797366307731196240866157479853585167583767850572586786816096641612534965653569892824751301364913265269280510607181023595726106156697665589366325821858504803819519560197140804360297863893830818417584101928145217572933002200284160313496221632209980043802265903988675700366765384705205717683996060580255842452634717317631400918437452317093856398512522489892552576462634149219792455806960102770165460586434653952808190100119899942375962113758902853855602200747517587066363968560704842093862982851483846726041644879560475336483556722104563147291868363544152498228456488035010952762064520953488658355508377052941089590724225086199073526996104053080799377831693974515429271018698619355080468817860280442065462131270123985498916318751799429249138503485231052019148786459738931193166399336075094146267992080630633034046481288001345032992465144364958645091016552494893014074016549179160858684339033585315008621696855715128385839679519748874213735877802904483836017733852664020026769223439204730956198169933085714334137853729530838692923039463507905081633173576358222332661939700697055687258720799799900123987140902804279851374415279335124651981408510379816189445789782820351023922239454179488621708181412380208076278083637749165315717357379927292616497480230284562986246870997780235389288931231355395900603017955077551901034073850480430792239514205661673328711892380498651859412704687706833875756414234017851449205809467714447046308045970680452604492338507067549262446633551241481126337861016227525243218025877578837040533446726804140331683823537819473774975459334673427833084711901562141274597125710555886616167139651364377961207791243570623750398254580834298941565400250080753564146259494599984345599775444398772492566587098734262300643003848816080531062318788638311074688271802676564846606711447589783325285308533808867768640273546484325967571433129244779622942588438155772105831287313815581251651672653810764995727593782439178259857058641415968360548406981796391174436023855672692643578455252364670125053313347869528010719931494399583838858770330665835878799531074356300943788762867471724498333665981638163994690330466955536936919208941752518633052372990605107204332176299465194935704735903759569440719460003766018081652117553323196697999416567008826579221131873875136831237605709343495261136764119654613251633901693224762239664069850667235407433977421420771136401532792565877097426054344955205984725554760388387888658368373833031661704539715805670645719708775343224280617393983987638860223804318921186259795106123165043424232468547750278586892170803766528128836901741809328517502556152168700739323205515328588716504123282809114785984399507327418169315168509577251050634607590359208918706841874694785387126677224319347631343051118093405406091137480111497072879168875910696318676871061749411211201818596227663808148912525484566092158465898566053445847751169993546580778550573649015761160043316858582506481777746412459288539475127202353929267992260177746898999344563344705991953256700046399241766841711302990472988669644550965068055092851553026129782059690596278462087339606336629220882692977651787311988804061561792014918653683480236838692468779309351675335530639446161714523832156526499652812367326373152225279728896393339317232532279981511217517953942603595742239374366610215711041980638385389106520336136512880956858852641332265043677915788244924037785823924302229680866514892671487420791814607322267142287503007790035635366356056768043826516903573048786078109759432979679837278790570400996845868128600842052037971490372311520080491287889522744777217605266449529474193123478450522129238597403917556878769937242923823068528290644956718605947634475881903366866480812408078748112758913580902583591397043653048413623428487408636164844751190596976164798293606469059388322234508795286710643618110701090641396236784206244153820267561475592133096486358564131621392709210441109033456691953352085754164192535833041962564222278073588475920348730814008464253248901244060781223853301306326324888196905151427178086256145824876570756855960474913650334109519828061799211918833143898463794831473098105349001730166269979182528286006749047427239093737270610389915084359524294090095195783060325565574312760804451079867974354470880295584487657451705280913748723900591709128501006413859883061525803545878158713837219423467908374136644045146936095622776723357834884139846780528140143911268719910638654396721485514051548650584821292551414570860957899216216688392523496126909693081869465405080797978886256686454180666070543235808423975636446707553594356425221362247085101673411409016501480205379129214285629703998901066503860918209909659657638266844988558511169210079262879105332100576284419888545251826090287854352685918035349061740587111303560680927536390146508959716149616834979855530898602291662809039671829257890204027944498486280942269255887548813233729387214470098571059274016030873689459513061936886680408927128841676062484827463697131528252465835238729998876711299796214111679059118063672170202128310429398113442305018679645655391691014135644872663630205494660936741175990098061357048192793006074244871377993720672133001628316137316525073612791464878118618253203560883118575132432078393392616593721471137642896789334462083883972127755291202067830206034458142985787927042629249759874272079800805469682234319272996604532123073251289651648206874571629682880492991833724863011229907468737036722966448273970431001278181285130653579320031233547186241919852143722918007785608418490769920578790489709796142718081218449885051273346198513636860773281595433468288613377596133968624713509936667939032023248354562612510871854078215724571399403410866040280340010918269666176366708902478620819106842500264788060534612366376615113524657361826630284751596910651556924982463449732485913114735425698866636428513383183980661771482905815218915490353134349912795924733080271792071706368318632083743736973253468771063310146553129092127547643418740348939566930305077841210330610427362269128842089899089388706477981041094474011393491592172107198679163463692854825879753523128925350924555670565239761688274042073901210224072294309185383804895981677441373665473102375647863297250854823855079342456274500217336513224049459187011520503429138224323703448664364950668675111948425829847096582687506122858786516197628234019213937165016338643501650545929856257171274526884728364690450119267103965304849608300234807449312491696343147586894297643897512792302989880808101464908223094716529677667523998428022923321861734280256301294461486044527862697734285359624263585368544689042122782794590936708081106996065601729356201622865109449138395543577655049946271874400957296169993640582596305555663912177300401273967950980127177712777460762310891621532410283871556054206935358008964886842306551756058186585412850048883058964814481300697230592251807802722809995330103638439116488362863845730951021055776185030917095653880374986360712695372708389596466720475154312062962421722312433139670816377306580823818207303631441361171532861336700404888895691521598819595642985278249230903037681722742866382358822072525517002021426138565671941843063803503222790502766415787485259013399203445462055795527100690082059625003768286883089071267527536671445201656525267001511999692519783552091799499469143421660936555015704045081729695359417359606338760764494551482488608590893966038105781561244364857451713861247949008349815468463152121049348419700421390294105018794417464931830087046870526976204444694126147285297563917744550581913343539764364621726139764772098468197112831357061741135908770090510151822536329933149664093132798348155928101320622172663786697572874417512082774546225356015299313129530805563073999061354416540365348051505209756353358689545893084574484602195173484871097870045981235530070011905362317801700052091800385205572428671449293859013008847641394393002076685615889688447944411109601160173765782490108025707082402102472858185924830013656191424130522953473050439852850481057275772793288239757702162817228581517343967892738107013919853245616842590581722531500352691838443727600249043391187208430132058988465498060657355646014084650663242782743609398568907184969414990178359368325269501632957056486842766516930967469634881083407640387351437802595191344642070939699915174378618372420480535280673043171881087854803057229993158324021563676049955445730559524336805609371653431680748756677266377843466015828838818174173473634650308149046725841017698824479020742699138301302275715770694962262053318828624873040513618599511970688923313305967571209292981842590219554762781246157979828889111740396380670490367608971389842590626911114615416902812235296998666765344167373611239117604450367165235256327659450542781431064230839663307913976449841791215227918054101784995078393613315380995960454389102000369574581948385369576743738551916040939111459539414201242376808956264016628373168181241199286759835425985180244425293091542777897580109160760562103517394757081125574967794724817201968715003602656635019389474560053665363524749196087565590087757027293380588412695716678028998856975010173326347810303436409620143402333742014569627260570130638528547149701219546876944158261269599772988253512657848664261613648766911645520665217939100598971213460018027319634559815426912264521525113432693924920250934742216161131105376140565740764888283307064467808849528557698426016577765571591068227810792053870689306638742235148191905019050405438542036837518070674327055656616626878946511421820286215190107235882865713128680384108726598754935223301312139510184557266631917122333964546641696791855566670656036053546577221860506367780078326503783476171733304282236484216760185008143396926280833501498631675626669630663099072029296543136341759550080553012699014450965217579762717695270063773968199277403144358289425422909498243754125119552000260726513630402707093891398469488646543279956565338275471563517135808108115590183102288245236822155337920323657595432272176074147895626913567721125158396208184146265006939072984241346752501588207383891474467516631436591362512816014285311322153034464323022524499870216842865530301278018934878944898791959084746400139571913063851812184037278827369913158016373606275936315121958858398353323366673512712192808700671806311685694428595499924510846270433069750291651745934201266137333633168314857573892768518332600645072839680025079780008845570951428192979844836586277529731708584596921501060100475709413263793555906934418942007051115566100786923913452895228444709965510836621920240826080871711104636299838359271855396109756112234456545248602668264512867811462464949155648667929459410020288665205897641437171351633808576785693479764154739054444228042303609983588650581867108926608210931978660663213454072240943528113891070028047733417122164179133361447579082783168383391383572428192692613690856881356658332909949836450401989491759692904668491879241222337190039145016023060128811267918505933154858760388709752070503420719556546398674261592259939396812175247808114616125008807130840795842183884607265227757977597772469361310905926924548084469521553006451146943702724313956826375581629050386629608363787298753306845034322417108471296037484075772150348117638019630166018253768378224684544978490665968859556531456840891940556460578770108531154502633131661917985381534594914251399324325790763382688366392908490860907741269787793845251478917108288930879578275951618704167498222312784013666409782573312784266483429179247266111382401069721298678365062110617220159563982286192975066281902918280996851505235432556013774262239546978965878058902725364295622063029966570000439040030501763146679671488969661129865492066888997152211051171818021026326725387328137385886930030527384670444820672803073068826570834684653763944365129533420665757020186832859047023006420932432214232362213024267262826903028036784213331659490469037063418715570582602495599912165656321610820775473219270154593747369164118311795236718464258760622673013045135964570426997493920751670410989234212558649762796656006636168762557316051348443491756194043220282458362617051520438413523844376745982268739821585353087511341717830505364756800384154996724382859757284498300716335303349799238345899046919099824188138531819671568696155954009599901289806823339373340896871540440718035207624703547509963575508330423983506380377610110530702456141034331005076786600465034470677283301203132802484310008855600664197673116201775763388981694085742551479594208467531910267410298604188796610390641222239285341882976852073302580050543124871255218688157007065457352999416978246661997689028172972833281572126674514110436844179511930044807299230675320075615607047424817353705242895456149886170962782652680411496600753302028932268899825710504081353193984665658481051514581706285105874900907520707050498926207567761286927463520706086027311050210610445258405232213542279577652283492063288685972819408232161127730304990308420432813744589123648278869912410283655222184595326631430149975471869951667080993197975524877399058293218698161718996774159549468513863511229269253088679964561489987387116501534593791849258430733811947844185311073132289875170481736907394254480835073728673183661103458656146076815120032915672248352938329995103895275810361516130998657573377985062589310473276748943428923423553887926605582812482360731768311059255991041345940945637566454857820370906674892258816531387214331882352339149923109363987635706526272810617688363753966536684065423847487138948194824584178348488749338591375241271514134006252069342628755601357586121072903454112748235135133182530055538905420161468886746327718854115651522732606579400595684941677942232127236152010602187479755494181580839919229729142177740291628193193592586113522353774018403237155052833695122179280714264767564837045835556698244216252105574259421763191237208626283067606112572210368221505346974202656264627187812445513245906772079172204186928523044016615069075928525195637798152671567368152693341171294965869353109568351237070572737911256094738410275121503253083720703367484218410615915969404421038252592906026354795354871932915583787922692521254296738408847802236446129315536206968066624905399151107823331508382700668191774553324648021977498408530313036720355646119271640501406833124790037085923385150086497565067435336230985737190504673368860985426262608669055450610984981890994035912440902244378868281371542176429380293838625050836952854304314896137083308454479135208523378395691312772116113098671513938514944166043601966219655928461159719098386377156037900813879869747752091053395982629254542957894062587158645689497700322851095476788511465616468591340128733749343692536655063974099052569938511176395755868841992984422631454045056221632057684494352101413596778392192760099935306303286414762966836150076257418381448291576965526762206947728007661210620715837747216662216595253796218432107425063045643149354201740388649165334791094294247986435775219767393573192084632819519405406286432341136361408395494315753123608046120263725205903242538367329082703579775257665401691195816817905047206177443348381020787132052739607075467973169921043702408512332259367405454715762253921664216338036802774945254777241260749315940528688986028823343247717471489086841411440796061227537110397279428808140277359776257597365550244495425804316768175025485526096295535714829286151683383276725310185543550557733324545843218907034520964569750075357105414656591161158978345162924218810739302460848744008661585038443585623994656216099662133342860566216746900128178996343177531737918595919634848786898062358625012213589563645492342455564591985467335189070989079595316382970489094272492247805289025555209463572644459437341704237000245751438713185545607822339784300771235992091523257413127804247846718286123330380414113872838952498021793130269034573157315538295671190091322837830808321113234811009417681704898790085620077329901733549869325733048888424759213420153938698522632072709883237013171519147330840404534151331654651214649391720506771238273401096195276218285699418269993513960312474151185544760368599389985864754667194050879864707678884229239637850231202078359648478706290403205495192816998117370961814350442934529664896573437106955086490118555519192901555119041668891283890920817942133387983174947726910480163722553053644718542122207390538996796299538294362690212527296506605975642347769440992869193380532331326127438005552855866833794212245143562606302398663913460064224375627740087741371981338742457005063491830961092523122985742782068326181804031281584937999824305132899116820411108389842218489797849393245967116920361240819983306629167915209615293990089547202874697970986510004610872247746692681178262622911302001451607385521731693945117485127641126126242844343984515197914079398685073864334206341054105745800140818792392088537887429379716950032886734890920235943114310221108135943568409196727465699439194979602291517654785319339696159301962092243098582776688144570890552988540510403280576306211611756211159238284600852331249715188678892001215183410741975368491457431246354913544630648525596043553828907644333825118096864861748285296950905065436555305575969477438382985714167907040745106781810808479397612771570286349533073285585837624873730745141766035201406624239253563392640392836370857715032364002892554450727064339122147857084393198458814727133804319455287998352287723775141461993369532709318892424914874310006417276679017523835259050563791357289589828592327196970015698166054495383480277725889203766454334843900874412227602668169766173281040167508780706118172109514019608776965541914569299564942722493268639231692538738770963959220414573430735529201139303244155961238644987039379101815853218197967897392873169340659575173408451525385001627629249513442178776818282479776673868818130554884611488062918266531240282120872740218623794213729464935386792828916987643921587753943123109527896648056918757369241682376853539390444823546317592224835589589701720532938660556554051785290704411383050118912436290763968424170552858855346549865152463463557517365379503180752879761717076028633774210584565600764015757068781405539075829723101068971417476640283791248328011050740302005794306902570620376186176214788601920929216550356287165559434449290484378144717551866544158277721742138105162493663316451777764530371655651185683172768799536531682551807236061745803454726769969390143634060058446905998683054907394499662993954513400319439053424115857705872289485187027011351550295895121371898802398032621509873607869776777906206146843504616339778557373008735223652297318364248218177847077358929942954486215772792983840646540680678111617554963813668979850145990114762383829626991390956819493636491227822723487398219275452227099526922332635377973075733840205151344828817815485290382290348194936237542697621717174338443533086475611531236158874169107606401607180605753805300546253821181732100691063739845441684185066803881293916888738786635626634751689910235815275271502735425718733746430228723377425213561283421573894876621430191932286253843301175942852088281481104053595983268805084915759542133963544875596600868404860090348932983708767430460957296123698070029417691793287074869697388954011708577141403300433894786817206290247008434653278608461236428423101000274275252669820448376515326468739525877461225051971222922100399357189167301030805219373751075079795276653634849688120524409753698964101522337968503475716037661742118396330650208989637654368751756777731115736240564036245581125441368708191259118453545962320601447135101022032720158460479237374298608757909040203765326717439886629929012652539419823982281278386493513071491859862846458486489653090425541345235553347410247557187749860895121921299294629617805059669276670900621241141007547080334693752303053629729237977911076335272790586407816435792853716540972800436733828961832574209938332873869027216659069514624700042078856447367739431472511019790887384858699961308536745661441180229396502770584239307432124130534579988739698575607287369277870719216234153839132242215152336162332018732578289414480987039264596120749088601200340800869124534063212525016654463789763143840706681546144927223805448964652048614297541348023039123803010138864911184623389413493853084237377904032853523296870195118381256723911900542596625678434508092208534020002521329087892215819683112228250891653995755361241929619339041463131227591819051600026714827570243121412925891700141551373994702237678843625446269262742404961174574961241328645194370309947614270636177305702652021928598986201998467863324827935137104523266387292585186761790171769822071618728900221889676627103281227420994219057521828012350680305162210405565642888709531805522987572146594790356232097720662600132571756918427413217688336531541322538043669215204139519593146106144098485286977884074102066542516963904207928360674532340512640873539316724890834767753353835814198057624317613378536992712594961479861698591702728350226806116783297686532906368801631536315150021680045142675718162228815024082900474627292179996624973849397255982880241518666469258124010515842842933963173721094981176895333507836235885519354959126820730860495213890591215530931927077640587645335208121347501586158672010771663588359933499382132604602009042018482655948598948315795926546431488718362907304487679230542459868795293820755915759043061615846302070795778510969764707173804021715714285101216174709151592277514542716766697245694474896112494576007381187846678981536499412199929181166934467229379948233519289726233586448813691766371730354518915995398961356943829339991211973308265633853997495217482520549144040639352722246605679947415248182937940553588452955010807548828441043497466387110600941771907648488022316431006593191287992618519380340834840195004826303828106956085773341189532474797269969357808617884380661320005316226959764981800245958610112516095387603840782925943012036329421553643109271948162234059377243819018408701271176475379388978495142421207917744941836778452040313447190830985776522584805202239013953334402331623122601598282760810806048572947489406116412608596615447738550010661845042949453485720753543407134187487651546429978760302827181097934877195800497817893281988888679981193342850730839461243021152032497930085133938364310048973668011553988628787357315913052308238289845828222366987566983772958557058786879819969775506700107727534515548661663514929736956059014597665568773125729447872152986782968324364376317770816747671414531246425126223636179934112815176788511402067820762976083071452402225478022237913633121348342694091225379372492985312706714857509954019834929492569790095241502756898521141966781903086553159186661788480780243685317269572476780633204761754219133195867193814356728593974698772889864843236074639777776379398089824304254193824398310970319199205074794916478415821422289416235897597931067399777775181590556429762882559140140260933442487150854891215455516631003812395021097820702385716046162003251926982335980154688465203066748971267840565315972352340785385911750619735580963034912085930596338848134423410234385996736967149334660610946248016272970587681282136669773466474398982054730150097524526580695889692247107035613258722687446518584921398056640483383169516594089622022686561150575751097169458338346732783733383215502547514126948403104345999331744886274061412043042076609580892712887504068707259928433175218058742129595163298384826493081547717875405461247396323460890481269643277050640075124579047089596787535276439330504800939492558234679211756352457760649407834710094234738446144199467689294139256016946561845284973746038634090957685670860569102726481528558260222329900943253625238892056185672151663447378636393000333398664504470376886663968235071061685910304920576012171328509523832027286042767346103292255883172649672833341539397336962513988773222196111152410594871528443828746943038441328560603920529343306908386965754260377784481688294389977194954088690868260011681860028228049790509412023491294555748748776444059802397826205141129157629438637732775567265141296469945043841726044966680963068414837975344614458075091186620532128683845761974509975427470881427788301709461871071405433323534938163541500678925134396479597221154215549590268342495159954547854576347868497623291766412216101412273311689229432682776043786633887243436487672268137763342400597502730611899359749936444746860202315906714816709192362901802687848589386522253838919413632905339651044401519793835607809391904088842730498197242310215118946803487723351754340815651810314536340898235109840862772918103315375517250652097102332993816547132393928721333736396354844124913513480313649761396386868067716551310436516632241492225855732818955222673857752972784361082839441735671371066521828257724788578504456770193127578348906848419478555268835058669070376232729712213731355778031475251109196228204944628369085776785100799488153774897518156676323132580805505076852713267424376581651603972144617071523381950396364304861283258902447030389233207424561736509138582206427585559307974762856626305573324520776310056596651272421698829610494934636975207918909304842658025159079579676933658185634012901570889047626724669639587103454357673597612958401426753050698328435872300872072366030462150105332698457123538753629478827381892600039783762459554427710306379051946646327292109118925992559803824378180444942362130124989152700788219048108156058392966738083068893016264604708051339576006390143392260784933898394058406838909377800425514916185615679027750428622157045766962989566309329493482646973978625896382907105566850433083442575509835621222128301584446172333978754785570049387301952811488643936236365854103662914333474097515983320078157488783022197810007212036601141081804991875986284460942695307030719791559920337537835485315989957634602638600496970322375523329465271030376121661715888164605989883760397244945373502102772172629749816291905747045187873160248006911068291589427597617974744752015452427953939267170237969732604824344200818989302721783150398441914934565570028403620908801711219074499478341852670985178988742707473603952372870977327744135404811914211027513841821082778700264762560894945095170210519051633158225993975907315864409527413455030726323960858644040683216212172410045235898710990944340298447804125138467073484754257041949336138382073709193654850483270008949391493056774288154535148023389356144571844639948770142470917435797029204852542743161994024969433717443331047622672223155191474454465106369196126889205572878966917677134195926875662664478793460201876453656526425554575388199839462607083373294770484657106456701939395671116536680969360893136469153889742680769236555543882538898839393007392525855880048205681905791015837711690426992681274900144079128512681143540500021584551459938982881836154635262567122546314071552718103123247346457695462681789314845854199778866166266653809261454864528726842255870294323704376498863921984075076545829837112842955671670825680988489516954699864250908728859655354654124004604948905635795613048733320679409522012005215952965344893385599264727786846699906524472582039749155213266805802416877192063758310349744541033882718617516378673232864733932101120096962428400153447043403494203675429555933565170987828664891470780081263319301873689581759167255118718755795645913583682008026238849798256494425599886536769221479556177327970261028329316958106155828481098731745232453376316843923402364609038022947604336637591081341754810160156331880548830722127091711890809406575374576456568661786885837498861659289545886437001333791470328315996958411393399592914413722341805264524464197476754789963654070083272642863900934994406348135739626999797585345453840175045462322413684002347054970013542109243326399359090563239307546200506756052314977596273239487521306997761045271182653161769267691040291614132038231631563143400973156404249332820320822703587655677090041701765510390451518772342236116047622051780460483717457280116466301996795955593206892347148668084312004492879767496947841124978937417349917677977336669624147525351242392351838463556418303131313825729705274956599961598753503338271849693767076342395987877303100197759374338740493888487072782708618157893523360704950405996825796447332862817251764646334054821090503858834612141380773529906976382759036792746599309945867478379387420106905718421070820273759560964768796014736821580239571463266685748321149018768926014602565258328714030768390025478783845890140768278184103056251788813960642107521675037275134967153080685598892380298692291489791084124408911519825315873256570451658032834009578487354828619077557064088008511425011381741155979885728802656608098975203335917715023900922627115540106742484322600203504805648445144261788044485802858053323274153139297592157727882066604169289223073636019555281067538038727873666443315319526143059146502928823648416114266165050245311568447884095031066751733691579161173492316555768224487631886321758677358510433651917131406809128445861910025587773698323339581027611113456895877330194381625544271117712249727040054973876278237389896150000559132864630849945791500899304080657533131799968738055472038192492905658651914129313232330428921749100854772873333100307424128581546296567616962193111663053872098609859845539896032519050354581963552575118145525727015093825427810365303810300792705584440175499186749946880769634995210634842435352698274319264193532092480449104489853386748056452565367985232664735403069354442605362334312620989523581389228111438044520467318954024040927228565503723736662044224676807182820067772443301353904820777334743889691587448621078799608437741792955347784416005554724708653450482174612594475781768917042178350749667311944999269907465060530756173111779205666840753712378375174820215400658329629407660873032644166769421202343399235430844403409528551262113809902949547340806288468638280508059354182892578096875441188172165477002341779307013774080318369903836735037797559122889192674880785757643768022777251633318093057608286581616015231378530663364020710069339911115920458150037422513292004618005801580152467517159569458438078247804109374330502174298453141574630174962176520397627946027532592738293396973764637887802123532993050802976774026872395715304390127811944848165290401616971063571906381685621108072986063777180856886928775295951829286853726127161652533270069199328398761502147809360717976092459232461459222869267908204970103321746216985887432004048230912877527260051898063961018986192770628404351409012308185684814937793420954644607709740177275959253005336226351034775608723619840533250383485477550415562198024959804588728067942389745269929187745377959327573624430695288559714636159994451994530912523241529264566006226523872197807788045099335057522062702023347129171219771085687438217639015412278035683362940862326354006523975012947618581935836222606899509374866751227927463502426478514751558865060315498458693098994091505751956007354604414267432246891901870656554730206657622914939412916374222067998394927190773667658229812426366146679184190035167284326897734930653500180797556510888585504871410283535962703727290915912571088849615306702061530309418332364740777633725163390998517102383589386353126949562872571636875396035096624799659670589314473687020029213031062789670174780711669356204940980643388809337424843624389276737343199743153023932624789965596070122414917509400798832878128945570432710257397470074358334755897511420733738343759169848929534269921776810476626990838024208786592705053210373592613906554745194984305639343940452307878708273225441912777028105025733174316434324658434205349857743547090070130968339060097394578306027635658076270177167824006291136633086385851024658610014900321292253230686901481918922477659920492176661537755035261798298466224466481757998683844683804941233069795803072535374896453291594859274747129867965312239025570255860652496880356244196741939402489301498294923119612887393062052197313681377713568545949796239453918470854672152445792705527447397522059690766195151045222964062630187092259369971915248924461778886668990069723270453504364785983999481453270502300330394177343066424140237397421033168025651665243017591943798975829070515636656323985964362748925172633545010086130168034637208919876962366908208413304620662872040556497660471017918993411542624216893855913491815100870153460332001219326655610592931512278698520664464004227475026822465649709875062936745025109689216271605344438848858787190543626587816405917270886860269189210778706802410057148935223829261604980517179129714481679684895547211687446322585579464914446491413307634315220512623060490095450476989587506912658841925711057870888114934185140870667796210066482082889837633389370086428170012635087549137714578202126248361456118596486930510783543114286886793250138528087410926695654477626809024995079154010700937296089850288989453590535789189821334756013387056106972140109720139513678730070730563981202701366748750277009425790839269634685995141620367333050078707046816211980844058510703714341837606048091948955419153905826435521442956204356674909205536833043612645564749926338899999352383483529112081950657011625265397995541653923396204391189561141241502908978341264604338979685716634943427647795470221492615508060478981135980419177270306596341538717697155706710655014485598583290209141810323031284080547795714569533081181245257978497160123575666109355587029236397521893644977011171040467351686221763980785144823492877462466476285042697934705623276855984017500586618863206050357050429445232680181998362019267126593058156165092406876787112321699090324452980392707251237275674124770564078057519718680228148721793392058716022751141338234511495567733198571655010145209739137975878248257972585493265582118006464954847807463181843314594840530433642389672582444931714296010191270687979859141500739084998969417548556697933298384754481150645097129608299492335047360438156571613196655020490330137705209923441598816726600629864851560152195815377745615895681905655420316909729982622728753660648915231352567743112172678946472127283653682701544449580158388984922598211000584665353457849994597191150065223679205205322810427123423353608423864954523943069668274916340663739974082958191158947607957103017540587057140348218141840408261275536834785389866407188753320479871491801311108976493069623135772617795946890445857904057110272166795660771874828550502236366362313237916756563836820083132616765954402924073700855200624621971695073551558980058676031394223458579272685619586709446210456958968734494443502450297688793317715202910243648625248567704016590561418148442676557885605732845009081738522332332915770136067815967604423730888540675461389901749185770598609193809852243349057512106613021187523909548065418272550789753189167974337111573851705809634203799631399339086547988005847283850320828497314634907711338635928761940437939851933861877722744661112460501625364105766712374428233843730962491442064666271527485808976094085212223769175663172978658628188178640172297953079156285309808116855981083704546218629743314034986425798306789220338142630319747515917422154894482559229383753967671462494967940780574522324289350816931621400850947349191965620813945461763627162029773212525989010905911883970298735309733403582074469362128681647590752307257660463870324609750192637458594777856067679298688552164926817984044008564928605075331835052047948104637232798834949164838869223414339607061102083001834953153122450434785682016191100519370773044689843226116557922271044807396524151919001697973791838900157188795015128745760920497108078993817506012889661470501238569976854696612865884892599839963105599056437226226456117307596797329928771933324223219017864704553428044187797948674362446753923954759646640058436140251752633921195696210520614229948062476078872591610936377252117406937085428351713433122415054553085301262498634451229045457649681703784927525168450748258625380741686206956522378505742639351768766941782294027401795266886650991754745178162852082029052309824375312542721448914509575565951502686667118027120377915716232206170341458297021358858990365741082602144314716273890106401852429470981308082946616521724192273524343040930657642877096843063628042276550923187100380434662809673672268997890724976591135072074968599165297768518217196386008127820610481845628939629613365328408421670856550780480294959206554103116546972761450596327016470737891943853185082555532302651284326026998180341604257526566994060109796313612259500464166476187171174770740131979956613813118605227274384552939127187580774854567112379495443625237391195851566422477449290087039705582409817971294155556517537688804335674780151358511593613143336130693175603407643208452142631785214906076369412708706795766225188987650911096505464155829290812382264282788917001310756344995911384397726835498663986373672317849650151751919270552777319950283981035252731430686827012841574215241614231942437935633676414882839822001305741876136743028908973142302101097160471322703616110081308329364747183702619574595821215152085653441184267761034311357325912751765058392897566685899216299327578849041605120009387317920119308623020668698212290660360757424057193094984060460700009671121134697229236490352079581993058362202175040253700959457289432677923363384452666332591198290470829600825858878411208991652695553098267296563315364843014830971277133736293508328581385535713481861428153301648848090967419217597543881109202915846129945767551600824909095724292508521092411987975637859306474599804063943341531913660848948603076982695478331879722303065442017257075108670915211235083511347496564089128853304385645327256337721816117101193203956165320751171352451073541821467577889596396190940005083978773222514114724737239039790807799957659972429144936704020038235586397144844261843824396138094418275243688592455970902415268278594091567238196296338790296478785587710904224684467223228264770972015254445431752144980515471864701405693259348093492712167511310718849155366421640937051195772433695284309630496471036433533060068380664789964966712452923339586823328080880940782294579491108642174493144743224256711855659286564456033538151634946087141458554448565260387575558951664894349652007836039204465667228854280760786604561792983029746855430691337732778827038570314061937467644836062456161477923090383348742005527995297816294175440980486851740675845060286963445042005738571698270057539815953633647598871862110152093204162609896811765307733526039483234991742885477519348868425853374009326491973018446289942878165262179870755661427865394028638219629056077796752662103611618000837469218074385515917336454677928669985710707067727470743870931971244272758507769820957335017689083345120151241689954291375738278036577136104624586716356056590325570691370450197895896807236714670861295954709773448968434781638952628310247475401074040554815049604859657474122727502459613255037314418266517142568686141381318422946447457493276987377661058407680309997661195867168590054319930099576630788145275762775212512948352266081014089666194269503387596774467470830205395421961615800252146048785388242286300317787564289647909669350665303866330549056566131257430785548377620064901243676067367771560347196005420155156218638775690238491871685907930926526181774220805400827097965512069063994766596626170973847441737185721658060498302522325851143353799965380844630225719806059682095049930987579168853691679228081772226414782064238611582857364270711230205059649372144256324151004908353383887632439106566934571525560972685830865181715331763825064406262852770527561576192217019417513862795476703637995521690213160186536928090389155324916079804488764230474612905960919947614436386031974953809282921213160652095500146531501621580076586959604546771943706630967585076715746123763171799823092868098310615093368290821081719568775484948362345644243055183950881387230878814559958053104451516797308059320937579248623585959590845946875966107193360737654062883243651923666176434020010120996308250453514226691721771417907450769666979911674639674443430288889315457744607023986784798634635181896884185229504162041651615992629743734023647219656153074519155010838977743873079963004077385236849332871345316441022697420037413353615588683282820987240190179076433295659855767276372356095833035263688602534309159361863355467979909597618692317272389797268396288376371083472528154294692617694592110528096801109917924881854849285203107680829301422762590094730337616056069022090117900049440430620922910877802977631249130497774618754197995293059667802380219257135258935738129833369904067643470863520705024624231698908756642409805072695770765496234979816020045626228199791948528796669365886151694699069449196247147785688270423482036487070748106205732875376372287397164004608260189401466562082355474249609801826431216150973008777928117910903808365838503591506659269740827474149777542679138357008243939279585535719522384966077360524851943273322598230058780147390069828470774125576974055249455491232828062962285575112538726256180513391308341894094385546317836616815123740388715603157789582855319285075942169115092925865521985107855266867826585948825035317907734148905542999909704460581702206972001549291602954685366484174397719193506889065090952609789863757649777449413481803032211044254209881724376344292789313988130558739384349033371896138145268308201253587592324639236729526095586437818420426329244790711051015072423869373032208681186233896041470868037442770211078303500402403309622933028807212897256655446947787100522996187048213099144516197999664248118942386222834200778027993093593933336510800702947011650090622920192534555334738497034638231500470245897027450286669608617919094232617302939125794700392075990326422765204573198331732105573173682267882754179598760500072522026267251093058295234892469100757747257673293795980146960623923815315697619562998980427618102783217841392060475515926248331359470743866711315242770821618112309981509963021128223563957124024859809848008609760442562717039770024965072510946237791222280878383118713451115066473108233843379565475463867805609359159809913888951213496951025042299367241139805853633185276770658724882147303963827207708155658392111222343116837813592777281001048881588397858382821268994302820557275184057002095796213311521468470654413763666221664359568673110196551064657832288307650420246555724576730273619292839926439631347319218338376039725025467393682882632049596758670729904218645202352675170331658881136767077495275529760778044805540624599397872582430613739585921189764279782124816625134068282153660988266843675529120196447505900098437495106902125924912313486226996901615645726949055262495718530357933525635683953108902500874642966153993309298498810327349262678144045363095881949767110928671527845162463424540957788678229423194022487566228500200829077948093045109893834659033398532740129218363984498636446069091683521638182959731505003275303386242741724360302812998958800499731133876261910489236517985638429587926613116265528168305080150930492021264604201724646627919383595090725910293196389430147429308694230275860621404182653407322917224154859691357258755605176155239632240557052865369240114122046171250383161951918376661588471696518736915461168559431376308871850774139667549080689751284509118789429274712469420720850388774909580643761147569630929061919256471630177912631703161135657423730062718079577113016308353995649637887732982860555351153856988335257049850803925586295606624732840256488551979960174825035635991939100736094316946904549673540237179342683452036845011828253922254581160139334880165908919663957518597133393830480593539743311961804564416120692980895899591971695519970201794372629422300862898040570074731064421499797600026255071793453394638619306807090181888189488014311192373782077802472235605045614742910709382163560365949251753152509394208876532242764617133001028965413694891315370244521773408963939139562532289598740946939950576615607607849275341085905217430835829009022369794464159912693791609170071553336624852533446347638215765016883547147037510877884481362205056339432338182138665617808317506397284761837646777924034514320342766034456360010245543540863941226683427643724546438998265701762992457884369405957303694489600713038890107050879783778711986206501216535164138189696856752159031516443243646785241090120681725879254092538942163358153247800358078719045761220775852767375738287974722132854830602496707036941707194980688149428604856258855663545051054013270186189894247535308839010303305436293124687265256307460032448752138780831935885884805428039157254366448662966811345241619089358434154972744281159009413692090564592652032497114557910250193977846524746420495789935254794721986000660090734738727315539142480628744621431040233320713401107124578970749459817941485859074200170344119673999978436224316541695963340688968779414824843808520737844667122031504154541290904923607992734598777917400487075605946720733795335490603670500413168943911000712735417704130476012745184834467050898611443790484128825972869298234678617545909089457138164225610272933987332128780612464849193730908320676787411433162791841945282826381449065050321537466142570370701330294551288451506685124083206386760714959052099766656532429872651933591107925804574756994894698242231352777471410021477058603741513917235730050358075232441056827596696847133666164613883591430701380890819713551369259557642025124956312415360116116811909788893280465317358063616584544085499395583260178574891877986792404432940375220983281094794440958941754287315288636123437075112101236480820776100221383081587498485119154027067585479138281171947223942201400108973167554306432616015955096832920031426905139548760080657621218293775942590598115766546508710382398458924487327360397479681405452007727461876022743648324097661681943955327695763234806465788970848826994300785019680040042506010318250455487124341902897407835967158282961774676171323135861758112719368420795606729286920009796638041676790876942654389129203532279832510902059528295893355875691981650797716420557081484237876354148500473874051154807637984003333339650482781566103163007656296156424605639868249134466918949614917418651786758861364325149882469883900293181060149170092115330199273217738605698095571976012609437657678459334626362770826499407034213685203801200810055964565158624614749917191863857230403043721276376710219490972971603604409936714229348871086727055168368069686674449137785037899205955991983316553346712457824709142908426016706577133853280091262184041085630863098768367021154342525287612720214454560115190172186857340089368683311462459209430236836032003053106996763694530537885531243024657716332563173057382277505323317083541319391120794191460899256332996617233716646870772909055606437578713993785905551190268585143739325392828600219283439414703204580437905997804929723120297368010761361761400680596307530378326746746821347516508465924566387458171032333330207019730075603711624172274178313754181326341967218026814371239195987183030527970742423645176327059053261345986283685787756985455981823495067284346648666986866076816576296795773156738464530485513460113916583701572381357990869412768080289335134819345967256535398533863438172535375583888616862293093448470071431921436533219265132665032655882609832413965305253292775627437142187010098981306430413811174451169189724884961874723747850742294526510383764859864903176047294792575773939520416389171546788025980592154613958289313780830034040698145470022924366434472419355376647243433142827330164189199592041402613542218055289183823267613310445959824269508287240570428559392355411009452019644632619733018545592046530963816920125972512741026205435727208948958906465354979593485145613429813076254995168651828632344254706528393230763193885417422108016549500601734068192636896863519985441270910768916389782530276108954890853365221078473875975115880941031719401180312910489994290423460900686409593048279281717915901179285157154444504447625511493990977304530144311439190953143219334624581704249901175606213231899165097643568590542584979233465379214333089556015600223499543760849260664539155723735504780716932532734094077626958299529177798731720262480403657238470692656675106792868970242340603536630943387213443864647908901235817141231655979373135331792111614742631296215973538834113241595799985722161026557976161655099405237609850805315120131230424901260673744637289504318055141044184703413847232283234000857955703036257379443787201760971732233275768159724896575222882798714827449578295901943851710703410502938783705908182381831079683103572975280599298784398616043411036593750076572841072949063900191005556082361490226807895778994497599679849237893289865905483845376967473708002720018380500940747436478061893184469955707235442902634557124629561984329689142069544380621818164749883884793553375385773825015577087452346720782907053590637896229921410950334766261343932691472664790754871322103084449898627822483291663801948126819147774309949212954252920537002347326559819947330964190125892124687688279975709532864006365249575125778966378744870031182517974863402689375254117272799110625703667171928413352231645991109655338026935644915850500233417292848653835148640906794753899974395813291909659108916789861162708003907755285751228262011163959055632371349493293031841764673024114970826733123451549748246526013116468419281093225803698634812795881309592543335926351369989091279399612651798488277372197873989430209713757275194155777370731327960635832301926272874571042925410127926958214181894163901406165847325139574356641611172093127713699642062186238459261107972869096643656733712137841781676379065804654395921109483788251252202263787851290986931912509716388091551288253150154205789031782731266945615289280696509371465947746909080835807009388741116781366022767720952079981638423086845481994301088665071553471235319429702446868788844768277035081817792778368922156564200179459320378561673783617038481276146439098629120178759652678804413756433021101393962646474422135055984809975520201756571165428342736433703657037870401868548382502643105297599284884437859317701414954871066686758977186392810809063587702696651896174809618169972255669816775923353414566993650030245183584320444219900319689938483296233235167971583014752709346017675004400825502111633537537029799887453064128487372854151055238479199474348998830342648704408426162053291785701649279070553362847897932914477310527484607354134589041741965228171960308540764961500051989464824233162610282618514092904219149572712632446296197718402296299369871176477587267371701580109255624403712967656604316238939815733004120914838236867838294721254005389580586456851479673984751390674111125477607159806179181225305810091792657047340122964869357199835000605970588098427334482340433897066398800657893881239775031715759499567290744837730357015228727365132925219971258461033457543922517237810365874607466219110977101298100745538609557080654918362513624008733060626188855661251482185190739769073443401703731608906109646543602639991287830315381575237581777858932216061364740495965496125149793963607311767402935378428037228239557622880660096502890794533802703421231100849233182647584833320747229769704081984949038643739762469533722642423114681169097601275311954277663355639661490680024313994730531464670918872531835396192574157996926094568683254753908512562728418880043305150601692270380837587826487893282393046505538317288847060245286107790638326500723678711309641892875612266977177212965571491027681713984551649070487635466082874643079920117502949251947192464331770313826568277194401966154727087343814912096391570189728590665626856052583115524880332731243340557838600117356607421244982087389169136079102873652479468808448649501057779055817705324821668783573525060175796444483280507645338608782178302060624958629607286157080218126162897213199600003837316301794280425225909958506884240038398143570831551607545028038957047523722037602372432382967427241228377463658872619577911129698641528300131953111569284410377774640438127749817626062544627519044511653159705497652443158478366364978885275936336575952242439134208308294262410658394864657597838613058662013556906910360975889020515275324824148771668416214477029701536041391748808773692671566807671976429477620602765073751229271686331717790925533984774441059485179342723393072043486146853213999888799896384749485908842556230486061504781497748282664861074439552787357791116572217223503555332755677162591773999842392571628836266529737857005435792352712149661782161132922400961526922175754592708666391404605031410379230663104579174662038283259305551021762393686737998570773946915816754066251981991409277335363837943508211518278597116563967446844119240836136348486714347646865833897842588347356589542317687631951683122994935830519016522458558157588511008945032072988599692006473575240199770078327759564529471637729133477326495325744731076870162026727253644784081287940403597025337666141536374095896266889475217310107631092494622683332178141319703304450595175954016272108158830907132067248398406619368885943368465228374010410451525869190049106880888558400027235671109750961381258880178853524144738759350998291878298594355326207841998141923315529195318738056449415846310821083433137666752622256665926767637975838110190403848683690494783581937659185927751949960942362080819612206651315152824756862919933914166577598169479829329524857512657352107167899219602170980444783448302817302457753899935875047666758899184050318379976839999765204956647639891439805996782846343375133763810488070646622643198813491070815641961614447084801952034327882365482029045433971696528866974719108962025655463762678331256090382047302614648722153834164712726603782524056410462044443707011137067629874553997094579202863176109417939016875019507916767172188992071036825476550171930468076021242821039987612030792231588203343683284585447855380153317085012336976354429141591460262406147035735986880756059033204007839351895339069795356650161923234093207395218851271902593301618667303676645561145626603973865127676172179839592130380922521027740661621121650322295601266262578907820673861100477323458171454326801784618076035550842702344615270508495173763429036222470837577740498259137970719544201118491261581315826924601560141402288796853120872466297150208316815360154114512325513029603883760758258164387724706975860445297657471562154338260536844519055849103861633918455539119971315597670199136372266578061003162435526370694880201229880367143316789181030492142176505971405084998734352306552576962486075300481070545981241871635961594523137896527399933321196080432762989753397802474853023782833654160585859743874379838208162214649985450174045930002756868340747378612920972705757734877159927750801434724361211459845701836395787413516284135305937315471779580090766663608526403017988476797675080354108013556806530481646185572972211832509398452405046975966975931203877918487163729147511785342089029152316136102868909195110374401882910790257188580753339528504118132898124443346913707154681700072525332397847140949928379874089541838916769757492809146288134074968104918160449597338148443517515518889696222138283614935783422105019594982044536748901193478758253457113044086053217379225067768976103497743393001650125532798050239541910050452563760231612149866204969571457284372961915210579516155537685435216169718983869528199634611755034202400848036857780498069909067317612314190736265350877783126178057201937200405373509081232221693532173696186819382226371540928113262991092099207139941012846225377275858248887053896748005261875091021432858264644128899209650214811170811997526428701500415248709948543413554205477142144238654814092952348838038422203751863233392358677927348921109508269119226047951867723508953069241083773273067017049416095891057227400543779463007651051618353357715603454978144599614028855248938956446316283124034965915141718732624657975580496404894990361359228882139916967170861660588016961630661194411158572049200656773286993288087707362411357823993902143254540528304899681749135815257399048579663413081885658812232209582706762072556728626930227521967533613057451105872709532504076744362656089082301290214232680000562252771305225931411446362144054634685864409089073856290339018455683668564858040983628057672157572363529500188026960077305524002328956702202769601582514935961495477082090114470287693364368650175918647633936556622417331845989846437350555921566094078639752696072715231283100983978494157614644341017901264373260211157837933970764195571370768771329435491451937330667313753255917556539805841023377434585657809803584869282529588759749095139398468071582355686168694989961306166020690248740997507335935574605781521748725027874156519623579638008343854354965415868580636136499762836287477852838112815599342154629989208522024884421997111006817263473971569566906043158975466103696178261907109384355165736573114283388072089956295906495557518229949410254551515509500423936541288670876981682700406937280965854165378828779783662277116599837601089013924935699225599875032782843316373421106083684256689819145796695765369726195282802778102984556283796125559597159187199545305866196019317824359518274676951157992819529189891988887475059974964813111594680809468432564239112190315884448063315365859277936564252342231391063332357054418316943325979317950291435769042137731579946369547286147287709302518734099696256543984162276352710880154441250474546140572474332065747468708448863509624899398373902884380403042227369076813003392741777597646689198468138293098235749706881155801453108887773492865707198748660848050146993656155379991211393890960262319909679458589222885190015380834194918801996789422596992002217402888248693637048348837385074023565424250979887529420107796774856782859121714465938676521450989349354124441390467314326965452695915166478843128109601583856930224704347853437127996193323049807043848276312612118055567949567467080488474867443267517154346905610382031117050457995623742944094628875136477753295252619132960272414802514726552400947719625685789559131673269685151574726986756987883616150285759212894121358364752001735854585655769422988119628809289969923965658482787225691248427312716969943529697723936173506436176865942542503129314794251268754663494405032357561260138282392595401125376620012825805777807201377687113838112235494536981090719827500510795725632129211858963962459297287446266006017532082631826889507829766868518173045256527131878317772705222135460176966299166457035240268104939707986270178114134327394187704256257386812488403431491480922774980473602898138426302539386820035733955380612396948100317165655723249887458669222136748485465646358244272023894115976686713839466025585226610566584617337120466430089984420837624378064345240346287169289570119651286240742759151880771275617782191177299144326368044336548893591551264424784686086177038646242786368467958375122117371255348951563931184879244374500704198874165880737315907758267660908434749977243687852507354679431092476090337106199654173058716715295549127206159398505382502015075777767669829569452455558845096755154776850136879715378255459859787557682979045220941409790892498952520858006892888926053844055715890134662648153381962211845742741750607433025063301117115435626644790718529802122843298605410258384956491848911824824987420136468423950364304816508957104275456159996687337076482103349481126265910518020177833412661235089593230898704642395603353840735936556014674765613897006795982497357676600347805888985454109942292745042872936821577667005741968334044344071346829601359473588488262908792649013526407781691882550459577895146643719315661022275972115466296808013852933000527829345613516308675882255074808865792620748066032888395703018828307879975558109934699875790623321545197628570287941482158038155070661042646090001405808052724767525134140633799355684560326434042402083885856458472324711456477110114939135577019186475946827526901748398180499299600976464890522528095260610664453587817438128036991893993137559558589995069127177197510388231701552395747350457031623767031587731733616422964061814221178124194826686552457965774990305519098603414582154546869484918064813066974082510371668385193135171554468546716238187003646969331741602531543291587110470267835704688577461162092603739804363718730524080329554371439646812219211705140805311275196578343736915630805049065139336845299784399788747211431517091049976398549434959882904800232929355155483064392780522466440972687457686054621026668718197030445902407767443791363523101371836883261557886015546989682446044430206161769229126917941119901072319756493560244315083071303705295909366381086007932755743007023226818633710173698020666277036716585391310425008977435770385554918053310742383597084854052483985423112670482466617991112515615172787048677689294222037359367014196175677880440917142000678787025169215947085718961165925135053519957277969724940313472137933138557357781324312770218618375547638975970280607341907235866793034351239870868679434747975137826088232976040346531046443612403558841078608607323725377523140649446469002124617144476834278244469601506931733828111682486202138048949234895345278978246347519171229016700101695646338752660673524667897412823161897250992703474962892332904492717100235253981657845170922713948555246414405140415117298369610039252396177592850490108330698808222993570269765450485759146509758574895724128514411888692353399764389756788929254928217649585292408440442706002941013783925542520671240945162835757515905368470331020746536419809405805210023828712364575349196731502182114439325597098465121991198255066382645289113173331129309993531743510227842883013467470048898991022191466521151934946454887337894292306611771751151688667955897605565035187585319473185440648019070262715021650635765859606990077340065326818826867880689628208066126586018383888974714339807620412712318064264359945942946015457642470099477610740078658281675319707241305877560629050255890997701834951558561968037991996500731149516508385370260140757648430047799931030176894805156285640047719482293658540653465258958492376268832934469150998993767149877182588243545142540654060780043571942509247377322300109536811489022680523154681213521922366629118404407239254695355223996104644285653184883909857404145664450265375234045535309239062621053738780570366167760564496338348574080179469671912047663423340283802753998106144825793780704114100238249778358411105194924864838183114519409976028838371909824785300297344267862472354815395251907240206916213795871262496412976456388885421261044371180971774894810487442613894959715127856979038778184943406124908782424943481964171214417685266215001840283864975220065621436776513525427446242114233456159811308392394317276228444086853324304534902751973990106464250754781115279253478915062768925733256591667667598633212518152942390766647836682293706330116608226768174155964549041924356668814204190041774090683757193703956158115262718504401092381547761516364908582962418692416778803559396188041625283057981614504991784236323393265637085901882098586463713198702101881653974974905235247822683060666546537140907659121564190390275406535257887083436659794808918255373919569675887263397436315474404072569755376337853300504887647167916970668810688083319861510169866811175701681785072090277927579640875894763373980512220148270664880608451634170595818259657696482237074997069255173061049339389857992825606817262741274225679069564630526642747093157558647035245955916931831500282766963415269648644183272463362221076957746805285766368278877690989201133712116186728155691364050323623698894444102159943482563408075751254210329832378523008005612410818510663958733444359302971599247250994371516749366510572383845407902255355213200620893392325620328534607096238755299006010274633053677436731677596409314792917141459165954033256861822256492670568543008386485535133271367508377177823544381625041183574380616078204615809958871669818657530686028578162664092494707124348941478484596394152285604665671897554924952192964333273937560922656450553184738629167960918575144584991219250876100261500194358213450449769479550852723137706388229105628757049123999321075088694590399732809645321652041877516435688980654919916171310112689774096309083707981415967380368875625384812227418837856278072869310923595489810605609459231432379526151045285357327145513321234128460036336642175137286646084228611164406026379691762824554293335584214147417074465934004804316919790413225804803094032669436742091641635301012549354479327339780983046336548346635578106127119054906224027994968924737409617551254340688687086161314362342280243690569019117585949311802987539273738378763073077307891067911186853906486168098989245536972991655094055029750349258875559763744284317785754789415169618114062883942398679745394101251048678222018395755610187986935957768032575504941822376326268759209049208434769111111182952775095450139600559010469190400083900107202550248486984832065368231261998278412368541682832456822478974732776172064804030623347592382668272365763801961317827644459743164519269224664902974789209315029164694572789691923290669149104080132986236958026674729690042357444471212078379016865467746185783663118826234547071609245099451180221361988389145463011161316576377960570512823379671380566485862345174136296909173319266565406215084041821897681309899214330017403270559700250858766965069581900898278622794421692447324606358321558049480701239262333515461531898870863122304840027937310415689785072167772446700769530165743228912696019753343621989703117608311234463489310735303266434821265195578482630362287393555525826840874535503781766327806807275065379834660819575803343307146383467981300184920350890713457770564106940088926753263573515151885354073010515866270769047195057970884708153686405633631660418782858243193289398926909851055605370182381527347788800005429308398865234674981419963546629876295987698764178532716940749141314791095949304956495986904817977136530136632012807311677425999942985277687808276618076858328191860645166306776215968833407445499329593647903169270819293444857436572292067889351217617483393095004504723426601264132040928702440205963144119191542045867632103627742023890964801793510024968113813784354723008082154489082484409653710715488225838857502627223471420058988878294136401061782832770869054192136219336742940734026548645900010951515547093189282640364371973101674840921233394513759867539090338215715392381025494250965813123157195393818201111892623642424500816815388495382247561974930041616389129107402029289991627885964367465234900826685065780376603156458179321382033185420407610084745804278000389732081144884604680789272692781553085336941992219490353876460772766447016787041305938646268113368083001139199952523851439309244394143417726614439574772091064369725877163387521200618634152890972069233935140053293576457643132331613055407417096207998057369468065074235028779632689270603388365102178269894547882324660971264921003841093124715529743176793803476798888362581618502267670797842167110160546083562680731273483335066213399615266288929836108885560638890357751807921625144319350584025603223137547249445935169862110882670154928580475516860755644597731447779531782047568623392418667604882401525980946334918841058736755360688709692380425794321417906337392132229229822091778552946166058345484843106947734237352307841243738192211682959634528378064131655659761372774144947248248473509355510703444577832216156123573426189223973967613069777124063680832099856209080510375068327439233585663089364424107865990156132260137462958178764694872714444653822157195876419577019832064842464755321133239988705283714807320947161226860089245640468905060841644505768098312646788292522862220162986329379046186489567478214834248743002250805898801527377996350034180349151619446547607652908474350018842025299070135960640731564123892808565050464685377796105426169226717570442937179197041045221962185512772047116396891155890401752492324861087613801189732600749818376644188150026156913476494737721058440152714683335830880570712206158609193061644062982330654851692292342827496906693667435465369471685925311855282585425259443767005877435316458354264419383472883348536067299514834372494797726126738354038030131440249904549103487799973491120865780302323315965527368409011547327380449407181878059467931789382652473823063299801727234217624853607181518077308211787739606366242774839273342394868689338247194427279672081849713394956752021930794013362221002740969780221643761113336731032412153438010727107212647931935943843764255763501882963206042918139852865426655713747913022653173069099458985418697565568981951764982488463336858191469600610648941377746534147108786834423341443251553852852239384809080277160257735560355429067733908029212372208185047626162236546568931498857819324092895914284099906695579552235973023110950612060420465035799170038323630527831624709582352513374167237616872087282521158588617062736996513773586096340535688419041518914418259187992716210005289249628631405800255659822840464102573421671966189217649337052886894747178949120868210362436317104717208755013609372110055924468294461991373460689179311676569529020470418010313363682200008877529312073221403749793329446788805010300439080980256621083008144323231997880895287266520045241804053377975451891594516889435715785871745760982182907254285345582966971650154535548710966735635946373880919999923873475018146221462561966973223090176733472244787510125818617350348918606544811654238858048432659820512538845363336133967418913985938951607091399595601059268621299433508559012829232691032424666625744323172255985733367067853148355977832575080992850626555132857137159882852568025475269479222611245139395107468854102607607212218582056051364879064159664447117017842923019492101278230767867652762302290491472193431083725882653956699475681876739402156949756750333279330267388955449852890284839809455573197174474175280995233974483723462850024883080022473526100027341796446586848491853663560870586544815124932276815037488648482441642039199270368135207894239126034581522397411486403044729626229068722008992401787773159928452261947357074632597896142305873607106569764240521482652032459720406903413801776822375000083693268811826332692076999241902426605781878357354804023715966057644002640066297436442757020084546705317079335292975792837211383306414105082074824247401911869675797962685363458210244580243275928403977836046697003704986316923192317296028980184171083839255902940970097650130372024916388333697212523636298173443425239926520307017180283606013237843143245798902542061065986584034611691185089542583778694388174152157920423305743248720921096883354908712970083229569627245168215489771757180680571791316807834527031726196056545700129221093304139210211616168510601904473537085162513653752661171455789210404849008504534757519332044647298316533595372890036190401477185731451239031199702362285808518232581954838907062249651216474181982305790619943161187373243581243832055018134297120670342589525952850299678644207725483437655128128723943556463851891385977357000401444805909980158665782717257484083573971040574907615398028051962841753996634683338131218899940912774804396551110323664447996416595260046587314124096509937516906246148500304235007018440286918041186322891937322533157000326968718694184899828586703757356880628853712612152143895658082734521028776915782806848294382188087056501239097111350936413059112999269363607358559855049951382156838886406719542719945410015849983107365423536790062454985921512372355438026304764482807851693275240629343704000181702982945793428841762806971646520264003119630482465478308301628053158074529615073967578033706040895606069596115561066496686461293533095712023135147913245790469346355169645377986791410913061875737524764421214053446625176489788430555919063249135056535129312864134373591752370955945322841821030667065010949825369712359929785178815365834682918896564301098511746208989183130215937504495100067378662426589523360770059661044111515131030416129810087262694137073120687511374302079456658260156351557939686005642927218560880044709052435728571460055527482301586828614662149347111525477433425262049167095515318328464140623378375831828875366006576325307931889738743412512746375879343601545184358523637915082190840791884875830802669251612973688109713157632686226527987885293930048841128134325419184488739143175924528747930649485565231980769703856413967168339518029315603854078702075447545478853670187367762074920631732274269604039395548053574753022206607783586527779905588862448312068528151546601966490531103284216483161497132259457812143744944977121768616429952793232923420486948980369226834119971557318304714922335451481972135866192841258951247373185580010391155428398355295505778873841779185439604702022302564463712278001572718339648670325516163942167274409455425370533603550398747037266789776660360616358709527236443800325336459062831001323686669055621645072381565392374123117375481125537749638055347666854613721982795959845374758252562996676783509111683310365465712779084589138898808082927777013988925971570279636363364373376499292160587718971323239222659009263585863891860370347995659463210277507556945251807411847787798652647446983353358152484220935150878295673909243651135985086349910374957003652164782060590387593886284309672867077641585511964018335925428874394575257296352587756400528582512493158899426477287682996023295118988776928211204700523370020312858289270041032775494137097940120440623037096462468333013147430514989267118245245935917972806530272001501498016020904889837319491127678834840792997310286657240879681202317757666986675683828267959581843182095304313700779006077687282266547131985963196907480796486786773181773087571665784906996294322571390335557127074105016968517102113932123347282759193273311407346000129601471282019030926987866895222160373074839123358882284025451001612627261168037061264535846298634250346099207344538070277615177546948860548535762916584990514329175429819206141481970070403449912297194396802822971524955075944899018635039799547319167792170476315970148221991772927380370652936709731883777119754201143104754935892092037440683812579172361838462463244711546848472425083482973159952138393184389190519040530291124722543135643015232714534694179738513577346232210557387139967512184064192330967652316906076306749992421065395713070696816776025792506074780721354470685411112773129653612328599289064104333029520629679437760029284367218180664049707254977871847592683848553244129065249944739009590939527698489062427782001381051687574018913141194506609453174615716859641292625346687267693044023967877882564649764587340540840044956367122043722196922787866934848424262386501278295325637263497090883512919904903069975616408439164680590460732929005972537390324343176127523931115623659131513477929630197913420109011036231698572679211869807791414202704425407064944462421194977116927030806627059437493821547494142732107863671601885707593587934713136667005900596256009817048663326194658806143013559789199288453393984032423400918773524335168971543265482710437457527474604158909032346511877563751273304695835550689391900603686286752356116800842726122177757881925557544825063967857942815217635456329651590943342339454647671535716451649831239511486967161908966510960438588458182908134928537977064801386602958420736230101395656963675045016112937182535150160340890542071687977187905621679761264971627355184357248305971753270649039203483488140036433984481793775736777028518755443511293583789417214850700755767482795822896929073777655216919717431643582361473190080043452864097657251937464336323832116272862687216926045296151978372299656142805178147686387330478132923259995029695500106067544766706449063066775366545975502483736837251464070873659868893004244546938100928582438746577513681731542688056773661238328346009796656047363531346511360351343838417490572733098079210576795305941236396128949545167271284683179806165117635287254664136825253943023780922673306319164266040084669816564951971419836948271719166073255851758653962438232495913425957901444817615557638519211589203881528210853420158430909966249942738083383284123294797861726728011590926346563122163187280449588530640283744961010356582633223038627803539232040811450363056313361804729950929930348307289743612320216818178864649046830939657579618411817550638567579736534874141740982124577684438103639890582556077829973439606238198004487277225037001024546235423221938533547418436347068517208692369328616363055250516127612211114345214036188524588624478970425659803508055913771664135566428726694256451430179816861017535164897080261230177629394753176319015198879480441187603559449270156697535073869731184300373212527156152640612290020365329960430770851473356861712073576216482446703576930097085020581687621888524644053882735797376241688475977938962142840176779180520461249832048853226704068247950025543315434751896163783860502932852987671528459462886726498597358049013991006996442314718355883986123257366246987973792954384210609306542539533652113924505477903688126735751802738521842479919491375499403620044058397413746222368376539634826343260794493417139171292175520075532533038140718786700839866957401018975059445369098194357831752627389734909222751636776759981447189441661398591279289587634667553422692391833018307564278370814043396391567071302966700536511244550981037043635955343670479531314593011079346745784681628286416285813375975161600985221528670915233420951498783719542462438890990954437638873803607465392511793533504496406225587382265232493278217653561401080697965287341591865895153693787186437163153636079990709031203593247326744853422685232833637797578505526899311965993791345198575354922885353650440308552292731331107526203980519944572408930776843826126917312838542433108388073886079846540054101450792196751345097731743937479299598152792949191221316872397210084877282777947803029037492838060221370637273011292045866984363200790739251288077938099797756107957932453665870899971677702457597029949935075664687168328347408164123381094209308199499099370482105030644192612714704726424655756149985977531984330996239933933447189181019861713130612823403398333989509201970254503042152165092428856919096918854595200516310336149742510059537950856239795771786065735071854074886946941027429757074052031283859543846609376618776064099780601178505002542990731120642219338530567537028414451600525661054101483920857692647878633002607476846535531747860867052822221130086002874347668643758153099354487351702279519940704750572159976501247479558683904013695155005874790393236352810729830817239507968858085036185942639719070058336531485180188054675601821578589498056365602794225264910455904452885630701720212192897252183700284191908751310383041575999128421523984589283270653307104490565390549985466275141210822736924716758057549327938620560914989685037616803342298417043489819844385618504529841417762311581274595221690906935009777363504558965131196070848756981906848107875512053549456290818984016252351836541220501749526209086527340694998768861270083653697689297062891463912834068877217018399654382553594797282207799642750540257427516441758146098664623451627173235622216615186282160731176056825824312102211413006826838261913846822245546215315789775640429344085724038286110683091222882389928900021900372577923668205012741772396218827338495308626588306441305549445915157976226457549825199343027043210465290317690142500921540868296733790570245009109745280422993205966563348786205773801284640292032879887515046668153972331136270338139834478734000942196595114854423260372951015254763378755031948379054410099990431545997598822476052686769034965979329153358329207905925453434401344978190737101320071551390874368305352596445769159429604478440690639973328399366781564436196807982663145947962745774943012937851186369098416419580646251115251530216707076561910866953803149502152883458036320595017458651739235838230475824655119174378363974896357677255319242836812702680714082374289841641854782996496678870155403576955722022923173939900435833005764449609148992586524229921575281067497882525348227570273968631282924276066739229684186973158482356346929374914363199557543783681570407262796627111330483881075919272528809962184260891870212459269904897380697451982108799592542586579537380703094958901883513322384114837540083592854977613815632142928411481221460034489873088710083175638680242116081862806431111348104849224894789982708712331079632956663768796490399096120076638770653273615119401381041226677849027268488466238555597121000765792037138977331574843369323106334813867054154679073679591444176887481862014050275530398019285407548497960583356220845215760392151809494826073610981064549094348137702875745684634705122595153372023666426871710809413312331941223431010042133190373569511877473731440522256375944134976875625282243576318424873851159208988430132735236962467782160248074979542886119491463612056136617182442505907297119138132604954795289108578143156501075607755127233217337801377658325016206966845304202889334921468936325216437932559060839136163054416013609975488909781932144142762883857519128334059606493939159866912925930763364097696125549608937489109109743272013689403112064434834209638336526697856666557989524827705583351670376886142618933938819012502426499973907928435187456142346680297903032399166429558505900496835402326138852450154136990310627698999386388780491294764942356359129302562827483756116440284951582581102305911911185331616573782435369057612594392313818894787455739822183568082647450811873675093657021283101712638615685384065907816802203846056622186551006246647291456058889776389069815181605109998349536441869917972064165373349592698444087161768356798783054400738210784587766394106405818455102920296337567845641391156130524322012458260004862789730540888142493636156442375885743042549139973307466139883209417171335990054878621302527754682883418016432308206956327913542105565181784693390505076052547272694676069089989122286231274936852169493764279285768888830412774952804962264668282991958239513829250863415068042151008122820968475533496536268560043374732441537090493134668719597652184863252952512596560916149949193177693977365930537478324831133776543274551137810365655056650018645454736992795700953239793828037116352771343204197149543468798548227389961157300963309259868240947037697257546038006556465368618928148328630944378198627209997556276531454852103266745592741091847315781961965446495396055860952857338582599836541964495617344238889109133199574614951541047628983593040989314011081897221105831910594688141342405657729812215046919019335928455009512934031204278390101193053828728593884076038004092525877058582666715062117815193449080927353360183693198925164966127255681221303259618950859475314358739181099565033630421054292789483286105575429093084534720106472227416272929551624246073619349267437928595030539023008287340554258365109295460345693682480935668301361516564207556827142710084580660452828292212259644702289961366438893348894382190619321596171914872301053455536241776592064558566815878167720072616698485360757041059430234837164727704989228967867963136385476264737621427108448540055625759437664460090902693398820640529806472532016337725940883179847620512424310231653391448299695951395099632338466794262591377379985512610131943122681518832291478818852191219782298233375965248317689631773855415870674578343697895532970150981975533179886719558713965530915466880442207804238564729644673062999015470306279579364108320952574541147775463613795420304038178471616658082217803892514774202728861777456653252888562463975888679372397202587297600494896619570983198391250327876935461249075346871546133869031157375929585507936427917256751396129348286573917070359735076126520805067096475428851933790578590855965062446332713395494599148587982659895118493721134338881532624027939620528803690118052240401288686953073102704658646316890697866320925297229131537033619470444037514346887555484542336128744698948616265273912660315215816048469397435120652172700522172736920031695574167720530575274677061706616978819769643588427204915259848773375485020888221996601049843321263442367928717205559066358952279833535731685898503849932300104730822330086637798020273536315762685279095837905591434708886838301230409323766702656936944841808782696227974357082152088216459997495101213667575471648632959964509239394602003551104021347446731187451903381081648023687778334254599070690298089020882620286539927454821550524476788362363435046424381106957556029208307538354786217101491683206350208233440998911655822649512232881944305942581748036631079484495174655937970921711240636220778715097954525881488080527485620702378827112955163972955268515904436079357965480548477929744686942862588101253625613972060770057019351669372203845418757698900651784795879326613261018979801885291146851378995850350536514467002257274300785236805652192671093168273181665793484442205323745859407363225948167183631761043819456253785440823114256221249106219649049857056683712235011586278849566442153877174204983221570114647550731565980634375210223800629838064709017817524168012669854982798741285849978565629911554418539704583060108555682754042996332676597616856455842535787974177974440469050613536577854030595051489709475573749978638256299610112026927360644920817832602422994679683502718370346232362719235373674390578120551800329936465076641946823117073296712462517489473011434440212605189782607783681527988534038017264434152832260502838850639784999486064057656855721926032356773108717720890522605065420662703604823760908206102385431223755887404340444163560764140134579471660309092967814301635508719522202087401582477610136874638682897709135130274892200201225479760859420235564353913358729396469206443202131395747842100811824729795804237513399941182646675301096736445095385784946917456800214722242665051875064410773726695839092305637576940478875348227290030379866074873166294347455663210369072602130023246361594303982532548854312443275160612216708054313107807102924374613894511116587915244296281284946154280550337934579485451763308551353718143822543328517347688571334842210000145641474683508514594069094519499944033766551810172416374119049926145205121064350255970420381444279657939536835348261890041747322253126156374592000690679737390175153093227929728758541849981648998129522641370655321883102376879363221576176748187814381813605346134829677406938007502951072436128928146218890607784463367572947466366485427763933543343733639877173431629847313761368677782101882358718672128823306149679040470516773081795247446721078843668157139123420996646939798435981641067179712751775867858722329242083302055239011779888245693845810127567402312248079224225747678153521703306672896732526965028618254753760844720173369582684048850880220075811701448417761697092078974193821369272411892428311591239241900063633265134462893712202095295466443661581725977015033199224345055622446635418813358772204211661761619800523845091982293901079739570414920435107800797910217039494926250206501495481003818273409521754810565411139020944052566135751337159186378372768506908755061450517856827570422848309398790152560730191031846955573299524676053640496213503154483540267775993391881969772312515962599858553584430245967635133754519987958045181320308625062435937438459769124667774999551413232403864525009442121614909249775261437373065301736864051582392565007491501470387537189253522192022734070391364067848342041599653636711680948581589695835952251103341511747705937771918425891769553743255395228618322543613225840273591015075013936332576332293539877248322618494606622749859578241210414736569881943573397803170714781038231551304321169823902989735236391390707613426371107079024700397258667401193030607505227374022107028490552242998895590118137161498085799776984239317333408953263302996011188493617479053006818161468990858194752613575237928881584772815984812648067007729276195854356056990232840931757190240305374263293115279265697514768575274765802291138401188439602462583994789903946882150442203265886546448088211898291692649286561208771700450569098413892684319399623124450295548392889547411696901121838133096373063830920930202965028357793584660162675403063735500124556758321544992838256784186125353171623428575402283602879405673673316562142770124471673553488772119198080025003709365419271805759987677782510117001941417968850894562620832321062805673147363106313096274107154455729363467919278489010118581982596023033367364598882585599606914968978263717965306868848757615077347191169605778761468139669505250799210305262635236080047314107959527237462754138856568629290297913717572604281604983721947390869798017514267767773905604839379913157079117819850322961914931787239329275009078455795895108672137188255522246280645345276852478088355416705412409300783668100645582181609299734070115666395070139159352288199678693572608603054127959096366897331044887472682077573951483015478773068163347981075680250473711057296946325985261792380818514121359339428039326640268401323426844033025613274225915745605368159943138916627853434585016400612828138559596826788305489261121399700067498350034023577146110122349505065676826320111872408506997967042284728765852091276608874961203567727382305231192862993675690127712921391405467015476852382439978664375760463239888951316803912175424623376084908781375477776735154710673993472341933904844680630521867169588250650719642473105804668573052708240653198391737977794916018039547118860444802657503409612174598319669371894088402942030519084552247871190023755691860650296958174765273096426884067804814910416625170942169854173975498202835063026078135436174528310970437675766715170805899769988004889051234055442975015162299637557661368650845856168823178567434897515741675238178527999928662717653024529357375664782624013120987609909539280224932639129144210253253947653438106009980928671937047296972857476777421578602113080286790379801769612781642391537331905659835618851375364975492437069129182237835439442853420926885012438490288533838690015825262950718388082799530762733230022145408290621447012342561461115366767589247519028639514318234362038243748931737936184126779644297429020533696618913475306810814264663049622097405285680112590571900877238646969037944099399304856095796319067501489617155291252267148419598373760730427570746053616166812005951914208739537471712224014597586312833996392077559711351768275101389864605628419322538727124924769000447281599384972585866280864338473974088900809869262266369548614116124521436760677262943315306783194276542105776532529232513138044241264179820007612550449588139618370280236471287250154710195739794174776928976629452191545463466431209065833702347936180092604764881714754525966568962363570899697861081642949145201440690841886210928772284569439976487805850258920191375264441594169890997223307431625517382150073971125378817778444146535397785031457006070114946513171724807557837159131419572306164861164179693635996765187306417241583775860918203688707973838328898810358521698678311479277238545181438005623007789823359113885101172578896972487453668691381340044122933415418275118103806105609023682911745549445528655363405129102022939457997561508023589395490572984111541280795621466900303862337986489526525296002662112274301022067795351563562427524140675811908611856893227281607472089292012919695047631147013540624510498030654660047754031024284293457851852493919152412956163241669079495941643378340894795806018936891038747734310081546724747511871697017849706985707384517325493256905918439472314038147066840017896343528551077322363088703350006775110583145187958943865740296985043906328886981492567587011153206422861430579661025814258435909942284273292317993266444482582052561829553364835987595594971845371371925124132836995516978766231695983310331418604080438374172493573172060369148401198934179731736935756217255067371441338359136778480863008959692732395686016770042264125924732566105059154903488542598979578724730831163555953874916146679938902923359617379903626164602058914519424575820028629731021785921485247177923095378385036805389386795621733586833510460203747268381271571427370137010755161093587927800763571424104680027466841039612630932616910145539954676558321945204137582090044426988608906904043442001741741344284902368469425273088677308147299058137628304758830227401046660342545050712009614552573738655010237423768452380871826645462238632138000238105321341443871336811894642832210623452862555299946373385000621378279726376926398754053901944861204825363547490535162298871357713766748740447584131027752038436070587941836003924566351879037134244256863814077196850001265619580592080752678456253460123908278872863173244780414303486056967019423201047900561060754065908859181729868350395944482686407345727481674534875389130917722315703383456712412591329581339234072960539581655717558871949077817666094972988392851517002557339944917296056132924939716258557686776622115169152636616144778397960283595928448998229373267805715713782849572161829013866822397575914492797376893514689963150555171206935601271962757461412977039523435961028428209573635233021257088598692879822381951427716743013111778809107676327302349780501025563066317857498138453853893075347281138210849519901229964975359123641143684812579611620349840456081720666814544190515135998199204080177268320353913751148223072677334602267609070215813178140604966274738571963529818676513064784547407646336754047001974542103694072218603242958857777184053801408131897826734148312453917487386424173477743886879705391895987088893236292683728658073044185150926771853257437043711280647958867034975240643026093937004638029545368564363116045165471242907309989273724967646407774970869462639545204282629568000987493962830574271709181232547679976495647405151914449142420293887083276760653388468470687140173735647517323640103903695308881071778178258584061804733756589090107771514958306218369948132064111094722448306821748638323257428137696166625116381030128229152314832364640141113547045737659141803905031393207585071502796011333671064649388129311426216816037873549675704080608135888492584821396719983774261442214529465207444900513109230269698185659928021664822548810787299153233820634009863410815455062071507850445347027763496987821343122402874866515131426132744633458800928215050594520019413189255198911912695529982738813912536210647855865727461893865558886250820689975036315432729999189551429551330850416656189848610522919387480850825480755661751461054861658902074796453129024047724601859182608136553197628535909267487902664351385295238039463779882942648915732467596894162139979268665666175315052385891408604964260665652431995142007148559122252289230838493323683542797922963601501847022022625390693097759925703866824575795609375473562693338520859522626688086070720283060687338605744913755731425639185123266810805726834199921468325340555406015913492946622655123627541464660391458576033857548653536652560321145089050736886702958662535050136746555624142265868296253269800288125494902383680236685249202922168057499998409663028700010999705448052297181233720945283550918178883848444417994363850651341595838594137417741758007954806925220178723400421891889030284585953218349584567733567431895514153089299874945568701596223171321599586594340593872654230766530931810195507958128661364487098170434131686322555488838320398704354292391586187977737562586968340766283535626558321196337031738584706913954513268598074325698818614405817008090179575522463013051743764299673405233003237465510141430128450047893005703453263567016708895834902149176873733044681380819307812375946652323643947976184177755989826600592543411447408453938652217452504624595493649602110584503175591539683454564936528685496094805693462125448646995314969426012418659875379865637370560329429408588112026043696544456325397295141793275375141514150931706010007269942597054572193743737094137695595803861702304866816022611565469500809858676545055414639448432203055851460037015079685034046798552938057132697484879902989731544334276560745694160300778119255872716933920400881024560614235058807908206754312633002354292165305991400046332060684646781735962608489269391147883921584116280367584712784800944197075536180883645210699319287090478622304644460879159933135897767332611952216137636717391384101909784662923819786352648441842930417714045597016633868553375258727291343883708188347732368535898959116486587656193203451368822899017811551551712424182134326287570609892194169650654277435359932999789305633782155176278203766397550938548737350513878834904734133191145439699513873955345785445333137958268118004431704597072677922956688036345979447624466766974218244145172742701340349080522311829648872593193132317423889226789252825887909561266472969155217076925736329109459822433917513569346275390915575492336938310221039676982833644953727315379339189024257860186935519218632827860595705191785065833605996835675506405983214419717427047958838478443999483688753101535067598448225281747580056336114718019963063875495821842866902527629194698285332720843037176579554325864241677866707571420541346682195682487404975296704272721176607144678730156263012612434002364616475031726293684725081743522588312607967694146413005864786645642830399948373452349200071366244124592368515923900793455723614966872199816326876055356107656886253291621959457067818603267941650234005745821179260281461978337909161587703557588257797707010820506404644118255685622138072348490889998140931112491609985858840432806650118199457414791642921216360189155990119470808553333441534936074085274788580679207646913299821377615996685191065976145770628788398817840180177756355701823986457834469419287746569865929820160185311029212183339171782132243689793062910453690401185016350442096679483005356774016282350520194797802700456698986023043379663774873261680350079757132588305001628452802621159899044147908954278689588329383550751574485753777372026889204706313183034537363760863031304607293494344552986034517198479916446607891733781641432789153048828011039947965150749456367438104068509332539615756873020424749622071617208957978071783745561827165630997722692606152962868004997499054871409059282314430033206316895039853416022542952105205003614036543072020052334863297798711427927472361278196542105337428193297184857233435607786779271334192721235843651317781922594635970415882458999519526948445510266835426539025643763126647615768744626724184956999701295087877663025407496685828406401341120123900914923271310807967124944047737446658228553912541664991273834112609882703984397035115415303131890769750116401785207088249018388970332764242823601362786796976781578551796790863006453138329928113400196908463706248910081109008128903954375643651022161523364082818107774747174979802052985663463165422876064496754263467927944263701407076843066821743198225416251147136735433562627134158211214839061925754950100187025788326547411088017835950393429440063459463146051175410167291633691324824328210247143931743054848111772684199843731342840040572676803675741908225407225263615613684749909415738993807241188722524693293404923761464430977448904304592979945175689916736819548419766549495894888206238788538073222063002825499481765533812160876640455559323729052955650825248903956866889605978311610739360963573626952379898233892979241795513808943690803696444475953495950108470257790392487519149686157176332672934302548845193326868778307067047320943105414861869595915231314963515241923303420836598266270066447926111343943275026074972832482450309732010748894026271231432486343626730457389539038091976871969148356300584429903828022172643437727531911748633175782139081391925689493449098923138806928520098166041283860791885416760265647624862147862115186020578163897171716549972996382713467773431755133378435126653692849147423924517148685909910672208248753795547316895670610209933801374473095394562192386130969614267183688948249103368069712077631454612618624210702004305383005205989185027770837248961099544427270001256675353143432131472427661105224968714787198339031885419404982566550705615584283511732557279588228117584166655576559248207150954400480288326517339286687788160370695704866523450546469833070197231174833853644806797970906675715716580612758670372578510773326788021994254287749344438706803324209075559473953058002192050001051088255989377069299244414051223639832680295917686621632996025352409753812904820175691167542136131880615902557583226436455071910834684774667945642538170390844058268008790645927502246192532209472006643968165754258060738416552841445339539985352599920468746404459639603306628548511179691995633564190717058206928974086718629848470437000824496437939487267233522375401219226041928373533263169786457839531252932627715548474259162366983253321792252017714050309272319919495396500651571096355993430920784007003595528854823859666081239512511210304203603325633017021882706060291088466188952285119455927395923600883774181995908061630236107093888863078426653722802741610371071901074279525289876360632320094879135339159942913586645996420038088339298085516647025270812113134216319692512329205519437278801315474262036297738124237539139177960873114635974974926116463342720646134256136503186569682789240264020998302335674027210587494576132134860306583002732310288331737481950949359021979492218959869135275750896661505087529327108417513231310516560021274698590518027685713575950389687754588101723355330094801049772918897138253111248715506480923926207476048042668268101153628521241793334170308226277097810838360898008634669397542260944096682336661401724079674329170073505144053395914316769953329883556845963593995948339184722901492458753431177682790108825637016672857378976754570750603030044472357456065670584040719662387864692654694386701124645573180684425059337484724703596199763381279403612720501648869395812138868305831180473929649181372547050503704712426387472971913064961965168399446067445217818309765267892785619761310966236233460916549742881807051418763714213180252886004935767450503152135319393682232844716505656598099953578429394308920314894401763140600561672054021812503187555750482576433793172649467046321341622403447176461235388837570300379374305244583697293782828590358739354371364081012545498645070628037704888946078889247206806140141839188008937483218536777701425004822749045939267640069238748143722751711319131795931617528124856333051844466044477766204207776289068106229242230803524688101917779107881712361136528710861806034778411511105989950035637362898055609056894425494011957635142744883963801507453491111772296828285290739669753772305238162465253194416768475646621040157445895449526079103832670624253346935878845808672057695004825819043340575012272896449286567571075487472005116712212434217964862918162356393480209345225570856082649307449743788553848454570896764508900986746713178946232553614713668625363963056638260476697715058765902463704000745747684935119595317671280706270155597742234618017719527079084526849791608056180454913452561349954883889771511769936103434786973475411064959156813175395310135084236993627246001790131458958115315594110666266683636674067707584484915670828137143378026947205109738483179278860427771082936549459253589992673542977389367294443939250721095160239082464267230260699496491158753169600212967348439709688056952257353953143555504807104750354957370751769812231866353858931670071738658605655066968997000417444080026188471969848067063881037601702493971432308005879043693543063607368039966781465969820089222231118326955310594650154600170324800856287726350763558150771431034065933535111683262394724891454815862805102945100389500677975833328427537868499901679180097205386816692264181379134246767639956134446529110199434126502265309897214252347469980526641829795626513111473218241747059018369804729091769819455119145198549833122585908247398284669086517467669135493112321111856871625434776498969024032905372006507049639738400259732578119459678990464382197182696854810096606665025736271745198987043104897759937666475756715321211911462022945106757040520184278605603771353322151652295722876422837531753898588720996722710687395449241091119563290314673190866280759263506735454977231202219560429081615572010040969267544505793045319957374740739675647825168478413924614030366290201480708369046303986129006921814817944247371755731054642385962043444962146464992073539006113081876770375174842674032645403044609737039391094399633469272123032788475559677580940011564807723132403055667039123477292737534558441478342908811237794355931183566193428037076733003634847241422201466293707948679571543370357489914821413168304547676274981519834188290309389721667752714578740360125644438134674189531812906189969898190990798093860606413600679317021926132531135234893544296446071199362095459163779044497499910699196698023524603258136758128155094792608753466774383674088000484674158708181099507637141970332071305032764593445237263109443637231949313627159818524162927335846239501682497460317282578625551810787333363720347795095652514605285017505974067638400391051338710136895858258157798966956485516982787918594059220543187600318821591744109546650475356560979349217055133879341336824042602733686130748048222986138923331416874760560234500128083887119034994254796942043786869181888335906782030106699978298472162541914898193845866349472759829159884266279579319205809851882021220789409570414538435346255048709113066495045322808539778377559715982710152847613284046269245411576831541686298262375606084553468553712608593356103060702696821400889555075049353394816896355943213439315219268807640651587761528085489665936425344580644334580276388097768299791494564035569139636373650195629863580290551730280579977046147442573408352860981395383457296894276772413709086191199482305269857139121625933059790263779060703099119207485929452025413671015148949004493045859417290032627472891411433895247111228899412107149581456783363335604527896104217947333629962719760307008347712965776292682960005470381307497222212093923975294226372718704684927471497093582542800786881307489157444803836952506788849183501764421206332907108409715007187536197544240966998009616864793742830723059534710525198271772211544336750381942730344065959225269287162356950552606658121790405277426456769174632377148283934868517063772844652188298616457135243508336726531596532157490542427850438697317017326264677429289490449226341911024671078090730332876353350151928398943386550424761305865775727027462560786559461477508425735885528673119234448620257037124244691797214780061782364178635927338638875329019774420585663700334538355937550015633806639183555530413917423948480195785610295645055519808866749470341741533656902952885193177227412049880412948977336795660395970639208161026530379003070433137231490110788701192223088972450523770774707286764430057226734163348104822353828788529487941339191528464860257944966085087205058583721081140929691142525612705795598235502540513250494552709286434389032015383125002650996114062772623247260685006692475201860352535271769895767637467778819378850713572850775092741442507445160960085848740764247113646993483066870962914401116677451795550031072161464496882166134807473835133378333245110771431295891505154896281576223880176611040497060841371039195117273973878730600406073333991060536602788573390810663867288124708422738304353511867575660857990781069538217022354776733635250190546133093602281989638683018569916219825711432961463579908144753206468622176594620606409394052337546876829671317905149897223488108597864893030486795774737577870532929771578142654874873719476599337931037072619465918732207751790716739537193725080103962423436418315608487944924320048038127207622707784823624055659573569634416114566493523878783961553387293808464049512262806934374189789239328528946854104767589551024689350578897273196811572856251774978449348417962043626571500470846591185712714928562150094462444807280222722459209370525963726775848987549469397544810531084560318195468228455710528353647298973555824493008957208069868787921649716660652996355581051004878826795344013345066733253372163110752715219448965809231110639245569628145319805806050264312432168586631403284465690729600901203739430164491434591836815130083720187897715847593133713280449444058129442207134836464087131624086533675219760570334596161611166869889656421322950924238053375820200360858494453351868231174437215014000015269505861016349396577061903643230563483299586576969972720919927035886300539032523098127343422982347761606639472244183068547666846506449344370587092029100906509233314628646617285112107393011492921044069089674524262530848499577226247662992335995430134321038259493666184878539134597860737234900642986581668010024720869310497545670123001352605487893052967250624551950596117988863723393226356094726811770674784435619008973039845101488975008608466372893548324731318195122856141474762755603068992251359019045964368806258673041052712131961412888365940642394512680214799297429120957729151342748629830898350611928457529894585773040244062728382785393561630474515340912278521393501346914680677399724510418702469770327945797047408447461210304119989889344335471283238599511475938529002407159950629159781558058372560939989747597923372082430310353962135465876060507507684427825563383922848936591123925386095332849803207388714965120296117802629153302584498732367295456710973797091914228534907894332961969837792140168059632917931643003692399841262876506299945803585692673712122445747024612792998343167803153138230921000938028115445137558880410410499282212770447825758075018437319951991639978104601769466746945656607825280604778149909073820542559909313389167420398971922123889654838919299178490948072312632993363613358457887042863680988348271474868681020296265092151521532937660113565229829181298517549474200824062124187861107204844909211039790364068704089958091953119510033200349141780485214779250353992489144266862532447968672919039561849746905930977361813175054799320661959621652512841537601320858347220699181050620434565576750462304078589721452538606472527812290864209970520008442948181399704752116944613683850832230206742858899222194342950081357966682369133712380167457211605923699073455736694633910590416981398063401920075253042218984478479036520166889977519574926871893147054612634639069428104554390152987100926960268074086735648084336169504965517514728872686493136780581601569300985816799363714439415675892424735647975933955949424789609452211627254883172545765113329320513988775190470692340309645445560218642678320569034394245890071854080245747461878223441556937786215393639066648236993199652535324686024011354246805972988989787304220659459706539429053616916795898383630886751242152133060892512221899596335137763392773395462065949618184038932965651974888635630920703018818326188807702015973484639280927822689049927339338654940265955665490482780364635405372943302237911916570992124954017566760733460981131899555737807170684577743858334562389575005517691176422735544383052003296875617163730132144858661029536708421348164783256019790875226758922240475754983046435415033221255282535914964730058561914138873413960625439817757637632555998984186952240151293291557416886145639147699614435710211593590000612680264079254393128638799743866436625954608849614035378913729576431439276313646363582990416821776618102375271253548618354670471056180780997928191438915927659562213069623435964459470287627265876357935179506608401949528817008575949397348341188954931836972720657852459642494170029998513392131991789545462719655114716258173034471900143507687917299680204267463380992653254392872966084247626992880430105540324240408643510166853803789406170094329040408391602578056410562617947309682932755390513971732414053495877536241597625169914846797669554865666329709745607389174723398180292679035872947755867589613508355983194279460101347091734956314610993610866848830806360174755613269249779579074627835594947294198458516208421846615784341018542148066717710094556839451290846636889001198460327867157984554489192660556930957979035504517320936945882751949299460785958309301137140799303492340875379162504204714269127967217746209587303701950067730424087940738987880418297592483640369618092689508336723515292877510861093587292099630036374249734526233205694875759073721895404036651193248018407634514580086622482113399288397610687570104395140048638123901536357497233016152566090366744120657519223860653304878289088909422111926367622717319776073573530650972852287152054896911755986025200822019834080151092803272856643209318603467242541814560048705475795734542966612042658845952532466648932443083200787703689557578345042692214277958339493164499877417873916987454713639710938656408366858625004073057385523907161036832973861870795519291790901500645804413455718095527678428720564765066272024743240198510408275827470933718844242439415380813650476175581927790089716162762280258460396726235142272169906790526533867962963695654522425145832478757373383629921536297873333644135527829710280300158691203786239694384105309055843453784532651580091071202204673846527650148775986414927189737776232450395452950950886195220780345298403250046966283088657631056998565062299529197292181905644357968203730150411675529420205770980177754673853823794222474523788369625269005909785018431189942669580408993719426105450680830572952784855083023690264903059155078831147113936063688876269089173525950008562924584183105478620890965412016323940877948824370860887204411596454844169665668381219157855910277555132444837547284905081004278565284875718550024767524360066302795447535374671527257988080224010710313816806842505967867357445147648517214601674506324093480353860925235262590815413650976218514438245674633444046188280848509564897817168712229421115335303945899071199748673523343668839912314323895670210620975453123262553200594261845103925374867690604592733613741385428199133223637002646427400556213332942932262095257953052246512308610235889087355515656460682759117274557784205271332822449654486674904292887810653979092138804679358700640716998179116789192231844995530930929643567037311888636695995059370483017088067584125895953489267092136782963007270881621820610321911611837765609259769671663038859315372795473143824981066567768701469148771327200364677305597690005388745503216467281024095706427803775620642921366050691692679519342420959097823820545212443307643432735103464501854760407973280225164311247400762305375764410604134109802791674020725951215945844991146330911139631335109826349160048306762323340613602435352307235451854998615185485027650812527438414312560276518919663099000873937256900322050575901183165668798717699706984769902949373162855180668677719971374750953100457983093065420631525963838548453995494386079868362419609848915634370925691689920585585037090085955115433764441271327110093565874979680007140271608171350851543575706751193813660861636847493505837017830320126918260926949916824354802230696609704616936579164586619094943409971065464122748670520012543864666763365875758798633595124863748463244518453237270537454198413909486991603046399494658707311926018523472872781683228695474055064716419942196977385054697962431324005211551278541948040164195029616538171376575209951362339715100162380320791104970663852095610607004212458171209812630329908143950275702229562369569675905529739948215991672405319892263611666397067715680291203715769281767419098265623365730555273698860885090585172614595344387895450712229275004091397530926125720543909284416145858921708534238746909163219651549523644041504916171177517507226852158426915140437607354423098654362597441595448324388407410541307813988657099127653173038536756100386937023131400099547281563947310994529418017268758713160796694946591118327645802322000186000642535136130659446034409448099193296187031116257375300041631519027801965628560277214252398080851035233925017365857987812100380838675457123662543384228449578534113442361702656681910187939666809695378067498343047956426099937204706193924086503365866220372985979259901419075582622520560442149592859229632732133161217400781829785746406626000887623794369586642806233563709727225263158583361847522680095473300801847695387840292480850086257799163351808201404188000828901935014062141162714616095260019259607396328928107456249033989060872983716192635481709011436055568800738952335527240856379706367739113240111788063546827059173786826948038067916158180219931674775948239180357408544578819606492750344391599652190283721921882609164542745801523586251467013165633769279032930350959623194017870934919786422945327523614606567423993690054768607093028961666648206016100979424278635433626307273736652101985585611039719062491800497602603777291320417299711121279496012186660364526060897400992685429377785139218756352951794310933414008376496257742656233029355759096611131264262162839407227461136319329482085865175594729461098240385210583859350842357036070202346237741178925313147042950907804860749885825457006620311570475357102254020308369213809735741179414882701592578401496057671474366719400240017664640552392941377986016803094446731098797893487013776265862240759746244129779993609823749744068377407069764370678701133261134146315968909715281874501797896662093194889477940961267933327127435009571549588672678661461413923181658685561148291079863008677726106484152989173363655644277850715367653340238940080918857803658260967395357034542425674257087333080775484365508384881096861292931840048960238356974949921369979708553886977148800228951225411191944718798547462978899672222381028012617966167047889484116700275254142463898444241413521769403142892176330851158612792934254855002344537470070492671732249670544127011873039505603851113983616293932649420452242778013563276846011113352379438970016677969642310917447296251717954547451667969616985616618077577616149631247437001567889839998145528992197133286623960990067650919741023049985155320284431871673580785816203001409404380116110442762098680935946678820055882221770013928935428603557688202441356725147677031540694864801870898633140804826843678032457049014044787087542214201253314972020535199337567201873512723416771432642116032267112683334410685758875375555455830025826352559598931146995067673529937262922453410275583460526397789122015047837737679023364371662291226694398875719304562072166190558017395831685588963845957932901578464126368791778417334132430775312297478665302407558240727954622396152445416661810936778830402801710608991676765692041888926155187805444056647542018199000452815417287064621101990797330163845639886736521403826293831407591015496379284336246979014036097403194960049668665871580403978339103945227432066809677806804997631614370848618122407402718199827633467342718189851388698952861346972279256217514437163079741337849716253841443619728070907477484469248207377722948135218043298229012976124186491407794585094964455149602151082648471706160711313413538169993295701349343288499842588307778718919770984407997336893468382675405501783320334019685058280167441937392951056264860585844036889494670157277495081309968236051200440799609575367274476046343521688065431565421187112947512254824557923996097286558565045420689620212829770234149510667323553985807861800630471206793232401463664904910559241299639534138838635620485026902557260127752770651281766792560448653811749744314428090321425193442854242903388947692163375416054125733421541284568247051387495021673711478790466370385993350858250715212798005750998734350102405004457201703617031805684297737310643418284073924399284376915857520408489363706461497474067140350547222298783043053553977568155269004190832874544161606765684526453911206386811301402660783529666246132258087477341531781547021881347843403374313824471607414010162316609850660801077365314589527044205527854325916809483384353211357317322411461112738216985354825967465481355772502983507129136970905788896629651668736814270686070451906801944479417549050443888921123666306317603967907477667186876457763615921273988424655051460978829344441904969405484289897629824751592985823560119490987239495619866827629356227200970149413513123421086915964034938967571018424463308251324784129012173267912040167314886697977589844366105468716829345951352078946283343109350734100998238882806440510770016886984006646344397723524088432753432751001150162238708770300055230734006142091917079715036906176782371151708159678602412141129459972848493743912483284270019494963193003341182067908403400545783995896343644037878791342705467389356065619575568335686481894128729950825049375868054141218316428484180153287231018557030701230617880832137447262448902256102460272611576584943714850352078566179751898406012852383567006410141250128055267328679530872440781921927483399905147561402074215136457538303045661363855501105199697176749654288608373720369120513867960840972294002838982200349475011039993504723391425987324545542385708981319145739055713063351937169587701005994029892406773251032905507417982815999351593573948713030866175551349245809673906897929927560565791233439809185547126297780039054729424489130531251684725729208975085286672350361000776315636379243574450428146060486919170805809393087007707394728052769420795944377065073348376694412240963419812124425983117267577689904054503313645247950850489084995062930934364302415650678636751963498142573918234492536599524291008548739094086510563968467183914887752587798944733165564688666119411973374019390462659428482621748806966645588422138693536590051573871807435556798453873046756028177301513236385064587963038527880974714641697225122538924971346025225184759422543024994790335166261426258749664514467109316406532109585016182214185081955586157196788288193390814176117365056238662949501935715137193084028370491727255056675372400435021558171534581065929569569257558433328601034015489490470447543243888072640297931552292646382564534102193559019192435596913387543780769027728329669793182243325378223133074198294167208607078183330621088010965832369759518708514408730292560145708461455864097893351324008394624280841955396020507580144609426147878837023051068553960967262289570185344748689314703941172963984739417268041718267638098294959249157669060997056723371286234083260374306653721283168676668493542997472319376570713643923126510627776435554361964691209362248015612839660185048836702224934978278539449933096119275053618226034945204623173204184251934525256436522235467015871343564585887437806299428903299043369712934417220395829414997765967389707122959481696359025726649078774310799887120158349052332536672702343081137370154363860360356603970255633292902443696027974530426908345933110290539428865673870350793529473749774187782645988649813618795313627418782843939923938430813802491243278347178794079762787527941537463405401695549993381501500330457073438535967066518739212977982076312943300662043307421465855322333220325942228467985681190551610237978500422606742733478205300222239718622931507469361653851783733955701678301894572738068934486220881331683077416865949505911142119076252531730493304397571688296009681918221616838557019259400362380147747072468115212086785501261856576990420250657449373021924555408455945604828851919811544943276975862391415714772314586073267583756875375160410621965201521162106910828419355192569947627963739737931580482844095765356179985019720257545959149905614786763110211495343725891577546767172403280855047534502898136076757782939905504157735084360084709500098834223192027861038088788207429284895103267445786420127922057621234741951086024540049305032847111374806724300095708572080527777691818650542023787395000924291882412147962036285613256377705667809532290249448089148578718702453912467828604022552218530812259303657407283903677744036269588259227004140797552932067249172786909133083720209258157099377139145385540919360365736008919149276869459557992851130563901410457539964702633236963503747546450992308199596498931396354447067589782480437599987080062590263256231386287536813498424278163538222877788026622479988899447556285845101900973343543747045264320196862279361007951095774107881016226580774870275008025389158537251477114574850223258335402028692711867186394955526303060391216339457785881416668557310478255560646092070996566591324841088877959695912393995024499327824223983160117519278666304850925161366346945383085428024752648359967370827227797309422490913672780766510633983150913839291180696399001430478408469038666317237613238437598194473430949383111036199596695754458983506763481923040599822647845235926472738170849864475855714990255638174766303325426168321383416884036934421936319141010183656450885106567627367945175569818752117141859471421170182268010545797795029646261018163064501019562364848713969884921103226401114378969600406305044392393162283983681788311772891274631372534440213687932394259284772377574404513078518347170831132003601675708103073805903295499581308146931228319331139715398502794798674321132334724419178842125461801303317603804051872873241809325139238467152934949740622797019747155317627738114915113105351807197436713626409664528808653804568242913764647852926635970808139642801442293643277326282166431121089681287256155845238667437288284706948546936843691524873301048121653434134102991128784404342400034032110844430776220069946382897024996194630362176625026962809794176914476878721464490038322882612056597995494840711537490882127989400802688316099591150202867587204365143096548249920093438478856673058320689884473352775739384831623867731184167707941461921720022057741810548862272625427964583494104322887550483248572829483190232249295786899315273170980939110724569670509740060958682624065008844165503743130462790951844423920867599959090014430416623908528044098240490147757250787197416500260425826479006491764113622254489588302456386083464636813384487516448312517657302274848463167653199189576000894674605953674327766850520631669629407453157006076927995903229597969183790491132481692822791689940440251900097287902326937804644609180864258124113275508583200004347345536234799985962384104142094834534251914721891780440258066938090084042759748011469766097176960646486364402023061050727234147633510240718703031429039365090926523718903607274065671842560765562109477806376871939613362589045081001401807599714085078269002590567495274761865046962943851353268590355756969572360072660686644252566368238022303946063947545662477171433099812087234592519990423465309760299813876803960312377701242140043975076227034617675104203041913113965908029250566311177078164278010296427240765703935543989471022283849567929089150289954950452971349156239628843151507673208036441298744148387616950816253287906346174879493384172343688403397714458098332988697474722074247370740599448900399105410065105219913605139321082174624252936093934764541093617533788903210397031482270523481970678621071299507160448196865702507611732797227632840235343849708078285982168943880837892353807043841171776870038109298631003670718245176694269712509239902096270489541464660592444835942124228543337453879510373353534132158355409703589630668269807026725412075344735589407840769976821320133495592127965504578351818352388064634679268500552254246030981663317483063706330042219669202038960011935612608543371878374062413104480068200370256264061974064966445430921756465909820568888647591568403021833440202056478153706189331960929359734601747455698727249743294161526269906047916961025893829915775063303877830854567989613075632481882814634364808087033562643630396163249367835190076020875892446039311653935947589033737678430195853398273560491623622386309559496351738483665276553325034436774996712752731067756255781573117821681378137404255821376981704532007933571523031187592040274465588178472507867501462803618882289412887017158350107443256145963863927829989009973471096757292215725167908543403444427512138642067717628528656484559269052798373540199438790285826169466044861486333280210856578468003545893670713916412662920250279040518751073605520907034862778745144649735688412500659813831603529343677383942476497238746807241009178439475049309799574587757735219655013797078738766595863767032871294316583727077797535954214204270902253196247577612260340939545672343275790085873755630629281109507969578389380516923468659933987247916347937403454411119253814553896503812067287688556051981853716580990181288623774596785719335969063004915704043605216846240290858415822202290359489003525537022371604070317797611308320213876759898557453963274727780148780322436241351585849075423602248254224855456644936227393358118699171453335418076243732986576995226999622868931220927954521792061068807229561583600038385669050550686343533828343724507011184064129114035240401998569614452973336441133599031417847736129761239146980481807852081022237594286414008798963942669206893194021448826883208154652385149938604428017410141175835076429170952079659682923328272915199300704591040560884583241696450560965612661227889969950860620284362702604967356430423308889650876080963286263747969120019303386105009859756682696091837474915705069718885855797912951160817034490777065936170160612135192064164848639762959582376449108372011953842437048638923118874953161979424522302779875065905483857728386179621294440295984717599529259332235281317944664236334160083545013363893718791426723564917199144993980588891368762126121748589720025092526951678445593188145544837244512706568784751992206662274133894622081562577874724902469848349036897093022453282469068774518114307078837648601611461478146238069706741037904219888523053911903706529820448048304956135318080707847588354641955824824705753848348360393110517696326672310558290836172675779799107008318380634263237450276419102724342736022950982054626854280011467760329025580913271805393845110696088065512508807956356044347654820157974796036253878324244931981007815362973547743503115959591207913862940656120507535032411706086616490847763753309706346155755269734303753635584779560660690976701240837658668749443643154280133581925657749109760481959348397304955748426385790166019033830378484209292240496203364009799513828622616707884039532458087449000201896909326421610563736043929169553523179403672950339504205974592170516748760579812948943167917105166233901485043467382772512423185479358540595994441510147630781324577363324540452312725770439078036461221196920018478106605249986951188888028138286849827582106950034900443194589087292539734358068186808625796900977872089453304746607309037829797077538759889195802527137593560449036881849767042455876851364367786916530878826280172703015334906772279110124164683772350751953700384015355537361869311761155071731430018780540101099242920302018631596021209805914027866705175134896232439139937692034554367630983237106117104085918619154977842883860764093260763323721824049882041862527817663077775807126648535769677205679400785030013532339079207156456236954450504168512584339669167256645391035498971888394940880537017405477875255305289051684988700592771235137252224520318479326619097439029618499717635504673670578312376151146464060385787924517272385484805621313351433079223807000256367050800030769031539517352134476774587472409438658596423783960142630873089096468443909490929549688216459530637356343836795807097026488630113049840598336444900247741825684330719906021795322615473119580549772119604481778691562830008461130678487374269809913138965650907570471152870274467303700722404256016814383443966578825544016094221299396879527025771080242089094612013846641281110722749788923091723316957178107108202257385298754929276885138493358600202585532336558825863992296852437231776768668403046110843561455892270650832673912707280844828871111788214875324053648960048306307356625773983425496865947049350250276331435943635880631785454651603804502873733037464175283442294683301520190636350718774236079790375251846442475196121316341974717585280405922697945727214232424058165766387147548037174985178353291328072016085037441972980475634914416328740226976162576875745320146827250832538600132546912075857311122020091653613031074455142959304542222497363536890461913128720227781847576785764886859002654307023397263393600582093416375757097554909443039091986731597111016057409097080169393332747968552129825933314476621586223074894407302360109274422226769561357340372075312315857459907058680516493869632221127544693921060429685362582793891367807522853686373268196665081352742375749564555710367839349455369070558370908087592133321726243375526080195609566682289742656060838335486677221116060593267508023079512912355280372133530008664011876155159135403494355781873741488804357611632994053527228498283527203602931580603372607381937535143580252741886800722539758292207730433371430352445726387870160361021521750599261559861429093576072707348866932805448019308896531272240672396717046602979510337243783490393299266765305960013002144610048424019937944464900993602640031395591782159298154723590738836582353585165710584552537483684441388177492141132728331963296003118273131178697027258993303081338883671634825960509542268452746717010506678786596002523840373090804741262078090441839961314973154648685655225412106540823186720432220310020679566644500344074347441084206488171569544479177538170374025542192927390906425047982831846526054694209013887162109245975670857197937748933726734338392960794442325598622178013823138827102708234080162980974153110705122827623084290247023229694487099433454724256979817088029757214816086422503537503944807587514002952636977133274909182695403437079890999700124745224413051818624119506488779355379694132923468388599991840574058191048027827874090419438029633612980234738311715633776285970716953794884965221463214898264152221125152931307331334106033670774440272976142547557990655491210470407361713867318712453003562434199246027350691999683267299921587930752417467121235996003091589564724879561456345911026001904981807977617211277641981659620649756586957036102341380188668427819107715639414960060862089207394103316442118905550675496327226795799743140886625127233392044436754778423107310866408791394854105884772925577222900239800699710995988143681820986973198334464946062956858061711190752610645933444285527336024707606952315207059251126560722513611127645912570517423344537030201243537056047055739298108113906544890209272512818987692104443960664861021859953378994653595090562353895261506542383884967435586952875058622129222432904309908528405788666080595989309515427181738483556054091934012628645600871072041631975917048468540982078024302920521503047328942830890764890766704921694912184219418957769106821488517121645574095896136588391702955204452164061735668583239953202987776665066972108547157874999216043954884260980568074857263132545378786849031332385592872468962226187475122247814305570514281649678908612650724402070946751190436898653807223056654110597922521680456627234347379590695222838647404055649934393148586241233207525984066461757433849803775872318840042265714677085005738904703929889032531295162427390744095815022894755688528426525859470596209021811722673594321345097455853592776214408727709881207167602736460501594861556034386955616233063559839708387198399496106164036077352701156696833549727577657799867382599248364038094197986854372219686719186209636500038005916492644981872470457327720641765196080579033494956473761028827344629897130235693372778735764079438190300561714488221978991586988524249692547736954395397889264390521683227445657252944215366946128171076998103315046068740905636628910757751988538414296074436751354269809282793243879948913624556856684755343969701757049181857851096090666541796925769009319451445883784793519084078745290449880044528826361853193056888887936368724174625604266263124828059131946455877411074381911834162599454654784943169430625737837418320072899938481260555486612793285016874708825559869778407245833528147865345320528035723652080494745841116694635329267586821785879522034931506501589297839361371489237555498627172452554833110160662574112249169603640866258563679648926648273913081220639363043915498857606079055336522173944000702173436784876429450130542353049736666269759230695939871158863909285298138519949759321422963419336569167606336108069938202231645718942590617207065798295509112463624594807386099011756637522761259864393931445072003214665088934146620541651110734195829247260099614039300841914433654362328227088908949141461628857352927760314141464836749087675896616726525420477564911148215510841393483655781325072662885895240248679864834073327549314129688625131456252647381104595790381682748203506520365447009839470254075761042937706984116899804210899007926047547106199109752716934507080319977284803638291898621659392629244922108804792325397886374252918582225746551905833596859983584192225958309659117225878951819981973389502974058541652730870517117401609326140395897999796069699060705004898727568124961843016610409867499395602114129107207892540743656139796992530512101494292415247592560663387928415665359076846320823867457202595424959025887671561614966632058520998236346809551961752921465948187847696519584247739953746106242285292582482499329830253588096961362357575560530441583548205436242368216721665406095028999378472412772445411558252717555842845165085106284586692846196555427613897331758479075189849218814272297604550124221629210833207405837080703184152277508366223089896618037701568675091122016516699556721702244883726818419730151160090590816807397284358289892382807188082108503267922002309892981470220026619566783850596958089655765083231370828772500967382382645734213894756406406321026162480750989908280275838600244343854333705735691510877785250059661293085387308340241663638585196638819487861968907284683172877168979394226285946604876465664142010787714957834658597883527230037659600058123487148201090634221852817811266422264993873686902127737908672624151094105551274293744605818349403979507675205707454561086555735366418706352010287248256511619314075614127498186268568318896216172444772023170141100836033827142278336301854515686700281150687606670466689261737528758165562101673912068379090752889902305526850599913422918397485456769912103940015163210550214407567030397890431093121196547652600756266298513177543118493137186959370818366492628553704071984796558264796092707323904058771134554639826363317375825628663359462850713385131779773566102469906701967960630332954710364944855585152313938415294862675633580098626956343332124840734416463587807435696088317190375070506316701061257639771128630204127454448594981848581079578888212492916955227896119604193336136218670137118514629172842825371892441934713453902379380981469184410124909858281082057780131890241810390555333031823757868218690799942465783831652098592846028055754909035183355254069397366491161067894056076000256116691158952732651084659107432584207333970877878384874895479145474057409634770703949185631250589915103477308463372903667037359252346392844645971335147295423499890544874986116420826517067019153294026033321959858742562307349019346045952225527721839016198328987215149575795136558883636720160012847580199742970551556903982829032348958173329931488067843233326428343797977673189710789735125837014188285898455542323335636558296293181230853546504601698633065248434215357518491735065163503523683141127499676649284760406818337812533534343747071900924934946093811148296932858581991179621384785863792794259468319303066910568960018787571773918194677195497360461067836988928456046403351409371693155204905274029273705120621556500009886311809504730455442827163114856690854855913740853137707448122933804477692190717344408171897285159694112877910481488347275085053103713685534014680306540534602579795711675563035795649410120382300947592906795824316130743507420036853677490930217537784018750348838072429750345536702217070849180830697432089476879811961414089597205126076711407599799401668677616177950175421578454414050531636954169446508047110341823488334047985594353396747047761433758117212671741773304794201144491430989640677053313890758589949827564004611447887398382248388316985500256600743624713534436912645311826840836559766588957512915489238297446495184413373007135920467473147682835898465406710439021344068464269606925914574056696836330767453430763564062913135763399060922908807360658534450175190838943487702433542597231356226715223743459593680349381316129128200369138926869365738321050471224140701136342940946381536842435103505137394237315426507846440503195684002870704827024837885118107246163022267420394767287984031761040224333602053430069343589806337948520064885893683233188659190614025181216045393622722289162422233747204901966194696523751142571327901044162136851649270600390436271238826764698537903460119404659180336844889032916229359390136214529914191846490678963011940841894480137654552125404634219776359366304451518015332843596434992679188258740039557656613688956709385282415668947124778251974811340164574919653642163400375816944505889072912573585600316056648967890514527618511542132861175800240205370915497886324801418451424525827465824966415873528758680784261485718323702994721668956209189516533237560611349040729177482550861005506267062496853146730256834792920804914723634714576217376996009999724987273302036102372538900507040872485132403337193383354154774263011245659855591751003179305168107841362179491921429558656211344396376289930542525685305142856621884498082999832061898411630585590405308019305752436263897381479695950346565911203877224900929198329003151764241987338243940927187074626920931357423913159138825831400563717957177294932923713214717069868235775390949168705839164970036406385220811331681138743558513896303736709731855781942817340904979044641487985131529684981617005642480836288611477570722848186425262245779498157427925457982210205020428232413439044767142561250246900858203093893271550636744906517665346308604529126907994926649313375134927132996039010271797195241687279499732932292004329714605697821973782382763958740488175955884487917350321938707332663601516875765873274515614372826402182161891857541227505340759249703434374657482109420852524404778090480693861554624270088289636926749709723189588823083868713857343791369493471652239648918853910778444942570585818577182234008740653891545391303218456864231499312668427773880350137100752898311318196004071273338673708190429016480729439386903640080323752536743735514564962312579453342376035782497999311670832825762900666251016793756158405457942418291751155127058508075658756935122307721187149585093954535154985811514517328267786025846474283655744620134033316478108195089451178591363644401433688083309613501283297604072114465939191728133426389583569747955154423916136088668062213879078243540755869092725668864121242254346794687014629214612144556577234076288817778596490126058049034499222326789321506878355382106806675974554411318601896079716502233536060955412592080898490707586223502480320076164198258382779090615778131568468233680147343805434676279000073965624447668676892307938730281787490090747963687117812415910007146402546505620656242481078704190190852922732946085488295854582986631718083031185275503943258325824710291141957975634212014669854643099870624261218575927833121537074692131929998678163338302156684504052952313201849334181037984384994072768626297030609258094764123792795318325180636831765305418646498227100795901147632329758595580250173248751488591005608051391398348679367083752125833018924025182570759904136795890256461571414249260396878943188981760162589255655832243098067209931003559566864637917539133033160699584217648793944047256376544160602775391013461579805574293433576348531375789896369047912755976613941781928353221335586018137617001920869625559043640796069730038164732603615996150599172690313186582283040939693845346551179023720516903969446125919299217110799743861690255471476367401740037080019197407860022868234086140930186645387409512441793928812934070642742987379848365607179103491591012157491582013188409254665298501580050422127015766289840658375589505903999504951072536063434760078277821383167642305422571729733174719414590724314294789420823936284259838696319431932679678288681783111881639058819251874440122494154862300546145064306553081392562694860046593448665497912629443049513320530170045815732854287564901224130922200749313104928579014395903453613861270726421009545099716846744955089174722391521386115282948783518668326542799649274457224007844269198297051597097500927375133640964159494375410726150812145843518184039912717733883130932581008194816432753875842485994621715601068555272124697255966145246740188195297444550853140680861043322795309633125802470700947556290174714601554981161943559796644037887366710474298620066245011089225520280884499020387314167825594844337102067815028898907497600588470533049600211899633273279179881865609312614101376161617221807013983766724036753601259048946894299324584366390919806315979075973289321886948643883454479573518352682273653278477572202125356840833320912038105443230045101140613948154573848572126554618903332622899637189761838891531301781541852572963426862599099552772990276533313205212650600892206027869491947654747280212662391311162102941453963535178622857524987006254741906648873965105687009544725963888524797615639553163605915081486219472883391387400661526664421185300999007985287305966919570088337437706988707086577105505199439358557976361524890621317624065512953401323849390654206082004685460135454504096941200069571321487459438733234589788168672244128999479689478931897430960456976165126254460612817644831803387926572325734944225330493055931945288502103487226868759280128920788518269625548770251623230435065940274485159051973160895228603081566160025796297388176820749854415951414933812312259483962529069982709710365895558448682955243994630894619923494366644245291222739778662002272161920840374233425782223645583407428519613126521906034736127535100368632009833239446838337688462723475717769133038197924389960513203663370267342492876123523629267014848914594764136034723507897843602945601356616291685391863705270782964801926470572160794323900130215959252398782350513455314128764776522425964613876026303987119173850496737164344645417419222833532452445334047282170783687073705280962060176024426295166418138878352059547673528304480739866178599803380074058046639023935450327396777602336572174780085284748475734147333621313548590539044565039708314864421055047913293124024307783965498670820495418104514895853210512890407462119251515571993655481295918619765906620226765046105621796507687859422278172883352208284993037997785115503409774064165061024463674670202673149117112713042508548380020966612378751449557163604336652150804751493417876236081126820372495734862464625949471860648436420463173022294648502484483761061088855098146393057749847756038703303330344251134749714775914649922101148447581464750012299300799258882647582243579850015692829859810837060504688035954108923728859442318387877587837016190036866987575614293062385151422978313833399896598493848993770559390970767188138343087372838390929151150350992275550388495320491609295478710935482564222659642479005421774411868219702090169383829400692347388138819258398733137078959750976644973025265093568034587238082366053142569032862138917843217685080055211642561613228831322688376751146150898608036867066454904197258692623515083600297979771285812828890734630726651808066711376065122049367521155935872049481436529041278378096305763657205502781800017855466052581662411475429542572824201525762275160958005849057021531589289067373860198989896690159202585588385353981122544710723069053428042506248736290215931090018509703711981125577321933700834553448581928826762438770556848865809318353954513123626065133840644145495192752841704806503000628301257674209332957820019670529282030210714820337043017080315148330939151767673525929917785704963437275713813774648501211162147443936294018766805555561241210454776264399094412489649260892292100196528559073050609572274804766618085790768103611642570713690342321228246819429196912101336879034308570928256629592666325553129782261208840695175085349537858045947540052777471337699355713491655491364161325494140067558068105127034858143294247175146582611225188540257261005251071087099285508205803590667046567521576424746338612467286311749994678715899187134617841058609384813672898311799457535792366021033848066157354204289167476227096016550908720248253449983890189475783586909279844719021667491330158000956858099229561133259407019794944296332304124428472429776975816825023856636814896627799625300258277266174606570981347575517746964594347456563841271764965187483031387336410450918787031818159474377113531713030130762052493176936837562460656796879101846606315126769327381817379008398325392658802865789119534846015004324586544280248784838677731645509047148890440359733084312297065071366710687569559740999849682240252358574507115589547554747411532895050159685933111639502064105956128084761349343646181085232462616947496431348471075801290335903358605869252927704569320648799112780328561353453136061130435565313901957860067334785245837999148693227091768093766805893916450795438065970888999017045253652218185475522400915082105630673438974818210392959876563556422545357032016575915984311578407029363618172972523034271797941518632478020564445197082348774591083361150660881207898492993159312863991831408959547697446362527352501995260710109890609015537553928713049899852832461849091376734783670761359237776052528587870882872767280345335182588856650361446600423008682918097562429212261248373812714725346298913258619526484593684399068173637805269422808081923568446693678229968290084983218033312433236939720714924064756440891808405557024365863038618824648517762636322561337203023406181325297201600308523894736304689823882995370972678013881694905663533394170012784826954562990113383843805594046512346183835519662705697375222376885263727785118831474928036191075781743990052782455999623075092130040400194962575893927750578693571331921410521983550147868681069283370560947021979577743808944821465908728994201926919524168854646128845028003478359842122251161051259157413780368507437067590698258538381286918751679221501594351583669441620070896424518473006400004417605748506424900379918438383711967694589512904978555575621996924445710053910097203396804193981399141506417927388115931448584058795576789438344002171502727124355896650089898012558829560702930548799211739839679594246838652535667436955532396269286373148280475880857999913877945983090810047613985289850534949632839545264309635946743844923608047749023431559558788788696917852537596823504843024365408812910840240086202215382958640549862961077366134918169105022947679044963843224014803474252358539919707353586199579734609314729205979384437761024872786025028198789473171090679558615926947561385963264911376451473183305261048503552793823829318527294304035637167009588264478356167558457441159538480428043375397634855092193578165036863743022570452087472449752750192772995530707911951816180807419343711781599942514701496209781535289995751900268002048743810894305461502503334212694796376365320698541889740559472547752086173817953992084195845597610154019139765563432862540168275872767645336813849329874579745691622799884804511168332467758544958194727003720381372654167030803346458341202526290155944340378630472425903251891118083465137911822846960218756232781284142713191073287530213262196032822591410555293142830973122781348141351641289628846306177356508845136747428607046670439648118204239115402986401222168420097515231635637670570846018760007579454307167923196485078454411914594679044415544879984082444153398308804789955140640059481927397124055097163807876770136315185874078088549951552685202989200349703281577506944292010140052431080910049347921985096591982228599252381053492043219478784783379634530850436107625657972861563568452597700913128105665277256650860939354671755447626339895911038474884971861706357876403337749898742543202201320257948320576917633371571255530460821371738408636906081592872311577401121512993646450137258339748865271363337828110890464759956909701197847985790954237917987839173559807294658252385456840577102221298845864750592693475695601337417299408155495640861657938576691142548948813540011954575264210889975298634280575762754698276679755966285691829446990673822276467135581326620667424049113435258999049287415210779986835377566413102533514382384237622773709165043912146428146332959866668206134018871663242966319113532379265920962996377667788223730457220506144246442593241196656714908588302240267481310784896617949996132709262150337250528288906835533440321546540904869784914298793025664743678848200509654620770933436728930639028593507765522553351613964781990539157581692729670988814281198948675012088687503159028460501743370926044402670495278136256395567840011112513527472091617231436645902378997267461576759057270733032473026073097172055929752158686945553097066214227310024018265585760561243099532726226836449398669914685762912588068079421607970506468969776250386138230602784734407520264654988137174292274529123175103144942331590656797824941167680175919931319599995760679516683876697580233556383829362841917287855125435778298186468305296327413857361350437646638150676411234464674296754534745124001365764137126811616340758640778903481496957500941871467986368003958417445929333879362266106641024602094735270713622418497011806781649350180264557544252591178980769508746814139648260010196946184252545014718289786981024905765672198726803585849915306267429589185745717718866128710008247529666481176563109563099129973321867490126318206776604058153187879806742290856899793308843458625946818172023777156861471728560099136480329854966124569465335911319611038860945499057059991049142888311117060803977276180086019461535588403269690312040917742327241130111904104566861999469579125977748652261759285450025058968231351777184156756819641923256068955211547932221839703007555046705779662964998189068349684843171253509152335442560358195139165908014388743255330752219755416647777588690137457880558805655698627887930335110654151357152034346447228251606565776031076835402646311228864511224350928807946236955116384603776421481723799836038853578293193917598666042018072360614201944289528607398683378043093991265358500394798393032510202479318155045697850130351180809165011682198117594222093425660988604792053669813376161579530854314862816026543897684931933970924523627695787060238073211164811260410659214692650189171570850647151070588611522831580213751185047479747037610745066500560102490664029151412814948744253059747252584804494411711950003840959367800866848303880482810359107312103036405654330835203995166134119577128984658314201710203237374435716242720980846232576009802209803257292223743209485426318038953662339220676181051609447541246658461455744123758525189430234749862548115597364364803442110729679634517656102610106813058111809963736618116688058335311177151390313182873720339872352749408099579205274910063263329283407216503080065101379201546052528179774606797380244013513626831708269653563227340987342787218448484237365369980842428461762404191237301344649488708337182332468663578369562933046289641134628204169349321877206434038184779311816748837098301617872669098610484487761386053069378625255766040151251094024900989199140047415356019428597893558203239691638188732099623504445386398876350013004474167790061054587965842231881824136306449635024974691661704338600771781754438651426245621868663449872824602600144309112587675024620191459474335989114972292913437868312840816777461228128869176483901722492990897721903406247976422803300878070941169699864083094262794788227651353598725074668693266237288398096437226710299325007451897395169097472601177013580951999938365000128850797407935705831059151317233240387785591615539447701133146984316438493333696862993484228304212755405676018561629984616504180169614577684821361968979227583886198674982016229722278835883099270024531800119543159655050017539157025565515868803052536165247722995671404359671318421942906626812983114656056586368809736203240817779372808254025562907464130921595977681941179204159003958990739429532395643987630642786308176154100711646537473862731161391326219498397430798687615004645436478055405508786444179665274971805072569519130373520431819039445951624141543395852242261805057724313496543159772535481767788873853869090056577918968237157306938590552059048840941726058419804768738020550527161425076085758967339759792055538361353060645126482585199211269560370862930583800290077937148191845726792501271818064306944611197742605010207423645317677906603331464971143286385139388305948147184078524159940596906682121510519933880244807330735514510936264289597631415319207855401503614989493137550353777073211367903039831661647516573913380295836389587063311239535587803059783872863326908836921344962924959583344701931992150097390705748233274016681563811678137752686821466096137145226565717172712250646607662108504139386782269373306222910241071002582087637744351764147880688648134203691420193590080428502093390761245194624062497200320917904477073979264140024831874019970244825164880461323353198412892230141184423613826803912570030169516325791691569332538554448934119421332588607780928097616501039679911364821603929911736292463796035442262986606638119661187547098857981548177905995478953949884901042125785713215466953858788503910705554907790141878143824879239181994805185504265691250372339751478600930052949048385585112857957578525646421400299798918872911141451098824861039023463938467091273662619113315716130344237047742522115005513321437770812853163856829186529884068435001168958527517512058313315170974549080035817758475588239465953803571356970204690413582397005571558168523830221168203411925979587124762814559918559965574989257255803274499011489426624856547615710223671623830642274331954244415168485686518925464708961944338889561095658218850199613734633040395106077804251186625456293037166804471203012535480445513614799890538782297192306517616852319724121660337574306268368829563433696428273351216764926105634833485548170892884859141057968074951233307684133610313914260286161454096267961486344145066874427688214614977097482640343390729552861904616237090492591380606716445227451407120407690322994070447807104955550785172035548602742623084180937839037090886390596186500337551026092967466550839832831799976135927485128482875843547066349312336129447707498040806002661927542234374309844704307790574488755454655200840288204713763353568644245498331733348962453692654692089081969422069049470591072963140977229224068020384829208568967020941005617684617917010680434725670090028005729545582262548618677266376547417771349513795300600225819530725693423053553569620998651567703058226513895999837906864275730265643169218687956389293905122040760723385276407120392422490452865737618003042359936795461702449401078927899813132464255505220920047934338195270432273724955575579963103422707786974191294214047055936571669686253882154157505184814368964982589839473419251951201193257670356752658868707574211921402665570216683185064985048639200482920945859528853210759064122539632255137697698006943522100108190964694821721127590045191487296916787930836347017656954863936866756228540756843791056159849407138670488608130483522998279898910565144512014729271258206459370842599102342759654470326076306432387277105910478514497069825566865332857377417429006804701318120690086898628641294836170945829455174207757195887920441571310502573708363741647550411035243691899030501955321346625542015856879010360197442791822447630531948792377329527887623727066010425987741493812380794003500026316622584058334512836347099584051305605818733566343750869859458170395197479863316888081690626798574812386576652424007699257475917849815738706733801464168591852109241574857506708059262774365185990488826721325009692638011714637977877805081590253292626489282452589312807863682948572593092626042344269105415047550191816028180269127159641234747084017923825008138837594929965233417105036732310997046595694696488485109831493521868831657549973862833043419840153621252459163666613972109732613296501064411101492970319293338570554138628609011435378116004402632872416163187038539205830535274977845803886313954316785549418614633775384445626697079028506320161464269035298552907593815719395946574228243098202071095705706478668933073673055430397044794653337393441265895380176272966649976000835668454523459237712245226646043930075733289650568978490880638002446773372594776216435202591559140941320593046090599177224403238904821525169297748898955506013430222352054140235130435165722775185347729307542756097458511852809665045921745956080647073253102305794400437177614622209861001687936303623265218336923828960154352346065334108454170090719647466627543495543430501492213413084999367716850869208773807062686222471294304515435463914279031449275482534000357841955467596045306598260939360929738734431629040249797497362065047068909226684020257659490736831419901333280443936938619949178184582858766394627567391657692937823254922942678281768841617379366652806987523829974518542333388553782664350719932332910602645996476515401710620407644417707298438395733632532146161068302769563486441329158616867536933833842459851783309685988868571252812815916425680635756550530476369946029106025141580673444010002969459638325532393852801183421995958955208053164046603265357570068834209261727079883457503086913113135805713028299999848000250452866402162531725133431855229454591671697177984486716868552682928064723684584830160347323527942399377010977524946095336931591115804276478431578802290457617004710534302729986437598034969650830201458251646857455221616688132953487701483878808613604083532436583808901529271218568553496305193753935791299926467294791641981048352191145975816485678692856896426215389893562008545000427600134244677599799947462278691834002147313210646298597999103168858716431961396408890117528918461124322455710170213192991192297194911748658549807132364383765170541357347382818238938841267624611165955059296215357729288430746994084596910047186195566005306515157753408775202265305302409562501260999188235543829616653361010355964226724663734618341520868060817480635743942113894514517690706916770875626124016930178698973216774740845754859812207738822753539136366016996056801030011359564229707426451991731099865486697281374462861569679736811400687909251425736486780777923492397991477784040940917746873653514158101861863196301896713612724989977686749490441472177689062329561799670468121550601174712026108415948256997281729064483569865522750020544665570311096334495456761921632994081427266298716026211740468658804777274435051923717956822488044483485101367629730237138833999920178775531960829438818714440771577322392112312679812983649710825430027532482965146324876768106897265448225618665171974339857785214019852453134288538366335518686675000612133618405974223636060346131853314442900170383211751773142523825735884905600995134885178902689320118561674604878246208617102152797864808241748895806540521766501928994130538171153906262202957819745830980806941009969818817560262264403503024407566687932826087679661464405148508933579451435235933121413975953312452620264961767078490029207279578463283841012563386122051774276764806035892208607071314274735480877582794440413708945678297599268587250157376425893482280548648722277811838031682807986926221942837924086604651768054771833653573798225217347581116779885306815381065981105609479323397316054002515885333680494777900120797920811254077250941645898171214280424164348628492976389289697497970478046736662583384595717118311710854782436618935124715300812774869353355271333589369321325479377514410909378364852213872816547112332255049068869786789411589256646729101757391557306984306008456301068113515468864900469944794411885797594103797829982045025528319321892221079616456798810232716635390560070795100623731969410016551298962974013205867445317307058082476661794809640839778255875076240159798288084307898230854188381009983480659298005383528440493276997132085218305830485058443336955439392887805758489137848178377679042457408610410177281662506760657807687800971311006197376978668513515796818574897473702600765463241632098631772541426332548260945241214176217740945672970733079757392499813612166200823014331310094962811206301948871131039012849702837157735579040645580088316229409633801368256051235889378724435108369077414772836152368729328257423883464649863367379080878759521802279825803093347687347353315826455781895619187978925705177232569402123882618763337151031309146848798812170543043704514603707420312834985879828042186359619098124506743859111553383870312853193284258375791097418922151450012784706914781147571218932784924403797002286127027292575098337216061819043009491841649242101405993069266434144310744402164609240970557471805489297326800284932370913291094887046717379125709131118423767046316157287928072786312747213300401775543750896977851669861722745606821863353583336003173844708689225578677011978327201747598213254268647832289499719456472437607369616487615975177061461542983005930990521017851317625509807213941610038718724505417974218012472536359074934140966711274970013836398315598918356286951243537927166940512795449486962332035418241059604543908337925443000847573211155371475880294539415786849704652262429845889407872817977086949541871174005237267495244648258468498776237184246872171540557776366128204700304389272790893544899731481886484074036238052876607995582465627011194827905799390541464007490206952873584676738248071380053114028214880935039674277808941477330895478473318119504639784983258165091103519240639467266917041641685839908814827105765547653363457739736857811614473967088584690726292270894390654569013593614087779446467447718696941006628697951259067313100665883012700635339242261019156409304638889074903406653503713168086179049630867441826731911917145698186654480783038829926208991298468552253636578869225299448424172222807184074690155754693973035031549679007504592877011762280408438412861796516808102399224279129433119198686547284780788107701050732114204475998929780388913531567818035583679933561375434284086605916679514279107717296920059436331162329070849549981733944993885757733215311004044491282311263287599430380815600607921260797893547022466794485974799541476713962869941391118412078206938121789291218486755150295561291609110687968665085785067788548805824776380657747661846752304366030559157101192982708679096966765152616758647200928475870309850885323929794595003986884900151241179930953983016384670924730257780025662695894424086889748871893212262974625604472052598690884563370980621670885657867305945444521902554122545164970859457131242920161209434364293672330862800180553558442841373715104386105737298138382933817734482317933708140966839187185861954663330752240371000127701203401738900618425554534792139700198777698013455247801107756926903260473387008848839840318853628138709541480666647739207092344100919000713326260051398977593089054865463776950371296437414613495682086000240616092176622933116956897874059388617609379328917625005161518531258637131148850593588129795598561099674918913456759547408326651691898508593573796801768295560060792851883877392709707870840791234751484551799931188099575484323751521758397925266390763064435946197211562465135084555342296932982052207812415633019944246924552695026440556201117404581152166439167250975474607365221491460358877358661948739014593907882678968738350817434592005067390258702271340559223805066959539008364871871945792418950153813200744942776872769171149205052454705563100739133398938962904948625774582060352785270975555933775373917976803133762086615657897842813013653762146003871011822834137754967995004000519593945354099020119441966807016972737585005750441681247518512341136055932036580431780307294807480827191581355804913817655960588481589702344834310041811698100163225500935442327386198221808748353590810841248440862989573989035919377140993162913389139545297888589671080151931232216641271178976686731748007345784622709599421292713071007703576056039305435069397448373595743043142901464953924886602318324252555854035994018470138002797647729958181593273612116581030923810566924572072143267699589392982475284449799926818256033153325405994589716819746440662224611239246519561354494150235906403034407367852397024224129075168916370564834292198679425175832454107225277847767975267624546394551140445955256710084137987326180607254346068069408618173345861481554095442893071082353922901169389367880810318556399726586608647560516888589045052402456653995078410017802208448009622540287139717189944933336134442422019190139477796080855443040346842244857387086874631733350851288117722976376668835198284318872378140057759047886715476556793829903895680815613808678618156133004939372023385395313516181275932839842961267748638876444840946666028666155155148487022562285849601345525419577555959631915551545737639581468969830846344556145389299499198221473373303833671911046954827031288431315815027033042633065409195608615206059953703153753609029836025801592014192913712922502972837054226499642401548639780554935579511673334040260739068276707306061719319426726863243942816541334144314764557896535500269511605143973726339226214861727340937479151488428838403593976317519799842666128740750394747311442270853756561153939764834659494305468568649604559637722366559646889323356517392281723116249175869077812600893177361555888540726595319339262080783314401332616275376809490794205938444724439151304470869850388161964043219496173288989539618587347553467917745712605228446599302991749760556721944462864942252209285963305674474234587583646720750060950741452396987622817351073394461486768708881195737761378021518475890955415315769407279292643532488540640848451594512102102639805560757099923002889233455210532428571180078501549562628476514879682259207791760558108281706471780325761801933944448658797779230114815914867284140337022005163139584980626286299399741405839712546662390291352182286330641627552047533807385844267668051104387580362354704202562510060507004952774818358899332793923439079380167076953200422898719979275158492144735518995846964645795389645231261059398585432331855046729071167170884210760860600215280286561569073052643637490536040331524758568443823307746612090808624315536729097413821021023264367703304779394174757244452765468779751128620281915243336600267930065037799881829944329707186261045033099020505070857440037873737559723848334629103352069089319785875794245893565652325615308664617296750339544465134090872709291578264553423406355295625117810116190122793518379414553011028568884219027493204809679253037625698738779340346823920573234272992778193320691888703378669974370200862045394121506515919579245208413682439605821987250345557523633676050456774469943742008308408464379450470971718232080262767671107491660960246400394299749550176914494138818825965633332937289793557074307449145205797890475777406472409748051722651641103262484800990848394002489470197234189413201043010962551492857456227002330701968131684621028423129274083368659860309917030117330402630464244208528802124291460026292665404980208511190385166317380990800200360915425064424885157299806132413526583047664765274205994995213888395416504191634226380558746870705225796416327103206742670388730513055691312328202176514403609922492528564877728848369659172508816659013469483033565581637504336036673502181932665693328983945950662845267106666829543222776312902672196343571168023759555312272480486923421213801082563354101227452948606868585260994214449124727431838677623506724455168910368475129424470899568572722612993387817266196857511398947359590728861725788715191036439816320713373950757985734732188286615248551072190972921768210236954512754373199409664417791943635868190037722867751267166000853146962953114083062471317071279577318504440477000609815391757246558675433586272914003424224619995334486615774800334359698035882728928755847089288498647361984066152136602053740511136205246428206075938448242437423394796994133613092676911948651755083880813639703003233718252486234531546866627787456255310174500605902796974208452032936723247657764391409311649517423814563530274258031985482945263297535586301822522711290400067171093968846480748968367913105174747205355270945679384592892179645235325366731681547137617012690372136408014107872756585098416185557328621036474824469154584529976986661490293214485563358396083616214552010267044478265626705109924984837578750258322308788593899846250329429437833379845160507278868138229012926295182058197583487977067751681641247057275661702232983978958121681699826556393667195038101588035933388814848121287365146113582898456149075867085576091690510162449668805460626515488403791862689265387048931589861175018528946230169949423820383965368999423888787054002239295781321861111297194402583776556616370654889245109421477741749170694993549466692556495791693224418341503401891808992611072268287013672355098986510521156019575938300362278866010558190243250784330906629715894785976991139568781755063152392530196114020472613920563576865807244997005700738048223820664237575059241822192906531138339126856498973741303294355738698189586108377306484028992749841339103772379880380206225875635695438044954393877665786779144889303177769382637434658193045106319264540039814082349229528429261760991983122884574322244114571163064822376024231968394111284099314691310768208843814987019110696909171195931670599046064565924689205322112729642827127970483827646579754051873595665245934009877962804375789766878272128482986690117098109812819673746766741007273806191718609884314770647041205421288511371197939522115566744149858805518467680518104383827420649119481251957873148190395337524126738668111685691045153454422964339383397676653488409661971499084506798564836937599718994678778949305043798120455017488095493889830500823456149249070292829851223061741382803125846282628771392844869529287754806427522831608393256740384834555280335924698251771045361078746278611864306430648354501780670833062235828121409225634116038720935664981611809626121062814586701745118866254420440448746058818478201386719713650046991164462280095392587341276213833280298821009196722332265750812254887015163371611555640165895004593573611760783593077843646131059401812217985247564060691327398854947860874513404525235697639155544711157917964517605957766019046287051796137632171625754664068279546532668009651862028739709665948664550261612636472637725719973904140227518901314606879661513954302915393309197803489326756146952948556316902344739999272817575057247043313372716532985485296013787082210931952737463648264275289581951312842764738120751114054927009729902599579751935758095128072389770618279269760818091208666094526668531054229797697518799724474150022808310397224419230187265520973584569611892751783565113917036118847215202334813737446943769575416891681766623255482752204934828727486158156913785908458863675484254460784351402958572996925903569653702724524045483327784736760192136660183164892172053928715431911479915244674908462590594010362933145022767370343624465405374027773885263139594086863266579712319700488657168679135942718809996275113473545632154346386221013054032015964805483362057918379663163818573866462946721117280850436192511311651169473698461003671121467933146018732365719076068425930878880180756539804222423669318908152346693953118418964507936533945589774383374536988697291772657473911082109729619961788688641394963181711476197480882223342129059996901265269954536282898945222248960318648160667351371475001871710319520429544436454600505516099125179794070548572360520688013689760986228076518143187201216357059590998656154055552744095927622914127539744487719022924433472496731749915227695807470486935749280718187786668024437795525311856199427974881866633216818379345115595504451904465493663329352370853899611203410120999708128642405416634382898721928331979720973623996004386630979298251577286679870552995201233578633685062211204169538161553912997444322187750169991325888458218350131386652324580068340313630173156791124989717413178762895785070117315193626309070424828239729096524131442191683577526379413406745521881792320588371676947376575198723855342300028847188345257544284249420577673138699103700251553616050207290773671378506218320775096785174861675242750276190064977362375307010594142437048095940113435354817477135300535784675733846437915148580797241804324025358629996462981088444640276119575935304265158771159327588659885111128659899623086936900252183836474747944353978025672238115771811500246327308286412793263500489384750002965972495835855536999730012413191695585900239825788577897294848370537563276839683442866096814821825428182764556763505304794346463552524254451629301058935576431930285477896737489719810412692126797186880952538856488210619181041502460030082689589077784052678251579548790003249271561951769905889057289329563191958161153353020641029241572638065685048925195276558970032587209136884214359184760983012756614775522200098001860637618141162260650780785139281663950626921537854455162907256515367009119180547098903664854187895064402866865137649156333442665382010024592824831328455671283277385426488141014564005710406185261994662164683200111786745017187229403367176537106798253626320969267429016924305922579837944323171545574004884516570336197541559674653285678592801421076339809038302546798512498624615275398895162157279112188892771756022414368499859155835889108299052855112450934468476777843014985767229036793195319511445568708694986830753117371601099559443593219528059268198699632808991521448622874681941344893338769669120398752114403438903182943070415692626021535394778168941966633136378828720164174258199160303075268423029055261935365730549205837087150008238487983652455201046495854003956658233328083589322490147120704109099831521544425165268947840944360048812278296778030577738864681172367615671974556468260829304632213039659304449693578553976038782683580699529021711578253590234661727757675260522149479036868348751462938116744022174360693317167624291335977654436870235752421770239711579758303275302308458763944005747812085387886462439952862376530603827239606197398447440474515317130586522626034770607498735602512841005716061359724473056182560444899004533119827415370890179239674471915221739005619821557465841829398462861283098498504728121763187529949951780738664391674845323439690324730293704752019941419569967564829508000928178000537204633354929780582479216571599542526215925299257085924778255194339140697900754681498981207270525880037125736407440016818861281773450572429943348469697277809539050445969376949424404805150376875937401688771543487155408489502717931176599597131347345276714893365080537837004609801061682929588292590339647548827053588996449085129489320872380849435932655001296456515600344284986242573435622404876379062169853209155511233213240623164645938779019799304124293309166940216385719309037669603844608885047275950229365767947301603932549410855871907768255566635844192490193927769061813896856360200602078455361335008935806181477998275455146487877457901048086584669379215208823637236468009422333245840024791668889670144096119316062437848811860438391552637501559465453976440180016391877714644713195995594756094006179802335885368081287139266742848816836419954831857583388127000096937237169017575018495845886054717354938987015972358444189709109732160056371913989594129111221225194000853483822448027314206993811772773983529071526932552630673740942117639511152734564138502653152792818868431243764641533767963760137011172353752811278683251172674133532085125669760168746769089043201739283350371149085115651117940571822714344172115155467628236600786730424475256428961848987611964706080515510690088569464201608438253429325165235076837426211169808561757161359003556730969269525985889192979266769887240938504809892474896382451189978937445662666168879340001386066952208980322296252808552761314514220067603062231869359741164697856264626185893136502269273067180024326956797105784014302133758273312585633145960906812293091957184232678252713394184399429164844850680021793908775940013366632640637993885864933895854538064932032905504291508020368590424515798943644637398509543643170287077704698876186934762483065650828098464313328107840582104572120445173737593609465519291733869633993688276458604260945819922297031990166733105068725908747708213539907964951681174985697112444961161694552810582399484948475526374876098603871138138570828908116662341731680354326677338450785017113542004454898646360813223609544901114453220414120347949489401043248605437385380190275125582672094496756403913466354047454899030609241341819533427968499440800639273882434482131507691678078013823785896486571018268626762268754348354159586582946954091354249412726982270594018674882467410785354778159760293698028120120884800632190831554624442835329138513156072545829592335525223017562837432622637497743477106472152695172256073522769066922724560663441464394214281845085467239675229815715760453232101633430043881233025705447868154676440871520140637965312772834896448811097425531735590915474997261209745471774083115401962322097157681959076951758410561890915457607991194703071188507954609744801420754719255515343105257926788021363038938809753422348669963639661548867918674164483112068924345624212659687244289457527952222013923645424906934864769566206771675963699947836897608853365256465994400145208583716865537050053603688543304999994550683965850844496031366812607061602275193662209125355612147263979673375480446472973944023208045015125399749305951870561292445284260483983041973610034280388347329618998120120337004267100163903450702036883679108478898221134575357116724604412251350880892484982001108826327412498679360975105100414930021145490922570191600337861241773838887549234779739140329004818627697919960199787501323127120872875582772301521357530423581468116993742226637275948869618330764933468023602575409570772816200803790786778089465206737552282376686571679131878418715464374238691673015396301646734362651610998406421084351072912012467850359739908734121921349959741838145458835247378237785996459180053383443464994776760489238353105767788897415222290677119747271675590334445645091108727680245232607613930842102894370643288425573197880432407942391655183024837549399486421668942130485522443320796407103522023525726631995131293886758055229838482482613027019900780355518970409328669557303346423202584710228580781346325356611334040654716000550555060341965251972260709798504218180327243080685464905204024201973945524247315500280720432818704185268210149080183598719296346933907222337242929599112554142400751860366713051648642037178579651627327549516351774030568688406301257406677757307472765081058560085178183955972015974920138474111475504820522420866087633389516094887386639812361888268540509959837551286531544669525541301373585471558201108944444554629999098966103884733482939838182439647463707923465149641947070894768372125325524216364875420727586414969458208072324133989414943977392390806642247936275637328820129602949834765488296459044176966559748695441340265822252056811191585701449370980335277152187255122091440603392792943437720451011352671766231684483170012680303297791997960229239850889449574253512940046141209391845132926960324777865140237335446797484930352660158640610117015890406547333725244831167814251564781593360648003995659112766025828557808048982953946635873019112371072244086307763633872485141319051932711635524637915360866436550038933173377491642392771215776368693095470937275176935473787931633683035402645421458351714192577758804734311345652136771142307051390051808199650505194381756040322596858342275236145418655390296033110034450763958191637986524960625631132294800795496038456912314756154461809666273708755313543044762808742724980662710271378545571779719129662478985172139987519812225961471033202677038127779038661491089291201174119999526774143091863965237919635807370290225244863053515594580286611302539204891246395596016259711115239703087727172192023104316929191700858966081566345864214634113897961571817464305036027309326238838010883275621100305449998436343075268536273306451976028128322068970313274650097670632882428305155857108440198950383986002143615936563971907240142489991037830436811743615270131909542202106560943265842447494756779886478887427217945744425661219415376827915726567324643955608901051270235726919322376960567950508482118188623357983165238522016859314318095118172751616713927019406827844134105684972915026374661542280904267085174849182354988446902684567861033362883298217632221427640485232915885689432578241449625974616822760748183080723905127206454081660670992152092790735837257651083720436227268033160192088121932297452778878385079903894655163879085868038215171927013490975446128718250696929909909960922272652803095813565661304498215189301857314511729068520394478566446953272642859602393359977779330301651312187464313578390473382974617551608304313494970639337728908537800936930895539487221209699017153957865131595455891215461531853450506874590534557492477028345416019051452321827120458298537438553103904944654696595352238292634244577602084996955834538494944398524911646351301105298306704673704748209282099532719867918286075239895190662776813341394182981791681424308716223722305778890315374833051353111343631338113109577824377665052646655546230950382405915569090778291791966355482094780477469911716805285479127282879557065526771696353095186016568734283202568279275896816772620600712005315861385919159382239812649748081723674200312160422553870274129431672575451203294205130145244502208878754291132099742826781334223319302951325159187775501535047233692494587504635686437153544058816303654220799347048104040654547408953921382913434926696966570499097916845734362881723277654099054025006064078105581234194492035591033243805709246101593586956371257234562615864268342257435263645784720619547003968454975642644018897164122436373945114582686836562632836142542396625791872194158083886878983414110232840664845512470467936118314115196573092997499505333156000326015893771929548985997618560505851664151374596732064254432174791540206717277913297685309201035737569915980628303154056939667342897825688843264171966597581507156641657817188509235649750353794944470576839282058833136813334700618359036122198891571314146503770336006245276728405515261156202694900632566361318087171233814683766207366614524938480632148595206925337499932526338972629399291121528452142351699951598876504580665368429762636755031418231290581917919420494205980388219477125214992831464662053405572166207684634965122623745637893650658194753183345562002544140692214792781058714099476414639202533730211499858642322103018801146031671344453425139110233392578019320866642657569512905109493582425642954863789163098974330885807889323198043183326750156086534696390547918555212042880669750959454845328422872196874583006227481297358337124957008370906659041962703646991321953236005437731171760666433787845887516746853004519453982764061030038168570145534550254403596642968914461205011912310888845923613450010786599553399471146221867289270938007276716435648810000884318791623470768516152195002316891124777499552732071883841017733894525295904512393520270320170611624264033294615368921791035189169533143952396711841378142722461041533771678103610027848214184322205109576819102683812632839456238333537075716382302026156282457263899313729786433412576535681085202336661325803715134843388785733809535621249415000636081752449743130719169709539167729255091240660963649908312875526107972606577543075117818808654024584158678521673479168319841481810290722298015161598189558296068601554948356146500175624147390636029278749184477099737865475132841378068242712206869140695108297231404554554155486941539833452766120295348911338341785040037627255757282806925270441675221642659788758174555860248863825605279202372096804584110032495588021051108080531941885593779888343223351792718575470277464150603610025154720489384341222497079134462113007140921979232648907363542277775279522180775766966259932969998356833694728685430112653435046462118106602712538461606707371969160977974340039446811803071619011387349368804731909384257012172126938909300987622812147702848260182919801570712178270189709988575832493499403818517563636183883457388243192656122167204097229207276232195850298888201670419503670600597705517092746254065746147490684674206469380854681791697332647692242188481201619651252774875923835770726501658110766222388434817620032823881260277734069608039576075043048867381174281110946265459326308108705114035148757144618879159685953011496763523286119945322645999404558093846686221072598607728582148240776234415375630679886038828125050544916016136394662508536207204293284345798563735117491214519834782744726532512398300984157259215445445802586156741273833192152872137506501295339096823625328980276101026689718191476482225561451088903582802905495536128965767835631007893397152235256202551650192485944913881914966251300267249629208239254176271136918452341703435219170109949001163920137083092599618436778215533718108200700617221607927009342544457034736590636824318365853970128611032878672089064178260987045731715475201147098642160203551412698939189745025510461532465541302195331897202922704652964426153243924575800868087728740051555703328206468877711314897440145238038099364839696280025594754400570716464491029256603750970783820166017823163758685163858273255453917515373120699113510638182533152520021962747955022029845530323570573858839864857389835099547998838047778182863204608948581463389826554277225695779595389297674457718267249350891176187980836883834938570642013374093506152408726255819063448715820302405249659543365397301084275860892846229613377758014217981576761526964466450736179614127694092497970099929207107045550248734179447252148803095600148280820359415794131626043562647027543397050920154674392889351160864226967664850900554837773920784846769663964967104990028031750494711004620454015714963848187511277548748425029361280068325069024119158020920839293840083935674992986470269873995154133490430450191580197801362907736714112613052135731496637185847817755814309755237345984468995098184693261289224244496573068007826966781430908250799517446581073842820229819771048032494404261456977116092966449243084818321227192820252517243562684053344124153080874851155235833257303731241301373228291955979922986741735404215829878632570731443956861637382011998605803368269811762747564873420265659454958350013929528356529055067027978885028001807119241900110554111577908168111032784212117804744004636450769225349989841052836508554158366391991733799762995595877655585785500906020653754883009077455539451608906997646150678970210356978543312854083894092311927595819100601485892322017322608720543949336666745637177643323803889866252741948637218772760092087381058727660029860047357215935235357600151903013898975281303753689864549951835716472982973776540560676933722181619035949299735055582532568515418247920063565904511772558174486406408973280604816462039595552377754619632497103467686995841604631527745483639813977281811977238587082737351262311445522789131827971635735676474612368079095011987358985571915334551774243181503648846930042613060071980152246501503275416059792430950613618206619169331434285343502615162825862481410847948459551242570077409631156714190817389930311404483414918383065899834809587591685143560000871886224385516830985171065222996431683671000497938303805019672826896023458056259280748159782372049958089614745826967606695999622933675655659365499948157793080602193963705365422706927730843540679430732858020283959924798657320896953382534359084693773258575786309937801976288637737195063786326634762981897386346245032745314068963980308760562541585079385013570137716404432823380414305326493072950777118070014902595750497042286420079155719198262294032088138126167884839457984691017425504607067843287369096224971933779302752086666941840594245296406231640642723283913714194223379491200384965540252050699710150603721280014385475883208459519560608747010364182965640448503834595652785597719966510843993239674598331281834018434140973892389406768342963864529698046641262669993303027783491115891366013101401291275015368140659266317428076057544796780673933915194791230160288719016904689800781949782354697835718962552060518302803014030967001523993174179478583702149861426626536486809323222128065918739756822930015642581705535398739746327507161835025799213451823951139049511123536387991846443362319964645715153228515572482255726296690587962168686549027726569115861407817166413648373359063182982769662635036176877078846909389502747445194234469501743986818131505255836376891706663787313181115954579973564685668299135992841500854647374204028332680226767066331280820938674498929949955937921486714433074119030161860495255330374808695697818158817460243478205307573199837057892784244369191103624113756508114164381922304681818576920417588974379183713805755008920747917099326219865659041834666202162746569333564140129800801033173817989732910237366574652215775700451592349344982134876501765198781386127772357826638386313813266427828421298721679994833884974491696993951580512261149879778851676945443859018541324839909262506596974850850380375331526395012578739406859078815867713857834716418420760245873031266039740810391239074865606494225951315893723297762030760636878297587314406568179479452906184036303183013900488672534074028270129841145112032754657384742215263521789785114376715565934847230591152929998954847132363839318072139809205072081134836382161095403513120281849206050943661069759376244420895131076990667783067761998949327988277962886731139645790655787800235988172795859566060699383655277832792434662110547084431546608140345868188690328034379110840021230030703842060569491001195415007332943038565746702469449960105862509868682179907523768254643561279555196314330748349676107521223159470081241476661755390729656697163497825284781298446070492565612828994557471149308842378803667894324373203705669821324201295861735365313546238715530589408645439365240489806361645080222155054182758468846386997540668728509740045169676430538002735040494146791956987835120598845972513217460530262960822471610353430858256993560710154144374277818166464361428953298235884932314827890788760064069377236983429049371114363497365066042412228780417742765936270592822252961291933978553089787620515318750162194068296383997963528515757103909049367578998840677837033177417469261104484461371299624448077288654147916382603575764822638212623208696568343055252155638571217610905728425330556841491941824411226774297175666534776317001185289237474916168024220718768820049054543079199964024844201274335994781638628191806101240266210789232213711775230773108439977144066323588387057676459585833556088773296770581580992506181372199018504390681231345990719302222103933476692431114761768754640255570836305632786269998434532643533991737537082810857655835975583736129370584643939175257963800070401468589074955231179023667769672576427717393442702980824047418867256813371213469967639964393425487250474966446718857186090196213395788560864209500527248855326923422223337781018412081830020455421274268339825386992204168406157452550049386305956833018134415976242951730445745488737957956806494380694982685626493354375102811531923326537025585124713206496689478650707830231786908840447693892826249680966931332395421267059009825959676240442161738144045543308710568067055884420661684463822660258205464949144498304720274736663957595401420100174575124526643880528813600195599923194268309913046077838800267891437098940702153806904065842227197434915360647155317350817940817264675314036382173631874965520678943895670942696056128541112570041988274079484544869761853068688570440311177996603495419705472071692988673968281222550226746599642784827912803691213602451264067527246519214420275321940766904519881661473236646000335510127231684734819645016495311841902033791746530693474448249847589797582846908731905741399268433765144037153560251854069116846526556513291481162740018128041063847508069726428137035858217359447479862229739299967997184928437798912426683796663860333629199456187169632272119769084560401095537471856379111142970477071827831445145843659904228619533195767161845166895009108510818034859008792436067877622113471339462044558834718230250531929335123728075105805032098586585125454666074905352084253564450901030176869641098947438618442621452587213862974991700955587379407329705701539261404747961502289557308763066811908732368914204766487861337440056610816269442286325496184206173260013943530246231673675844808876040992289201269810154314873002599490853107117735285907359178626570778301980310465790604470230744321542751956192939327627928798528587871265107331466283567281644605982139094457401797119167862572007179052579174557686366966486603631210672062470310974069740373616685045944545482581420363220058737207467468160803892926832192885929822859488438481144758402355745692805459818671733189092032639923130359088823366936469188948605131400573640309586959674316564136156090789179824271366510855089417255708051306501500672855205345210327650370732887539399688247281414326812482826545633408691062656659054804252152641429054055072047851531833988811897735740379857377879749117157392375781414881610906847346341032263070628110274206607199342735614242531523545303278021723091502334377320162069647002742252970379483975403532766663600275697835944245797972279665148051321399361792988442013062200447337170649135718544426337207425378367745244620272798344671862629602214865768696477723385201395181666391077979633527201242080285749331153259815839957853254901053586906448903672989868402510255915632685056108802224783176926388708214995148496679619339408741812193375369823208984632530489290392712820287356132411217870974166331018668796506906304131250866548002202292443511313734675726193805630377421865702790312552161545166431939164155596851435119779463753111575854445379145103549767363864866629859122173982436089552238225316643475053712262567496603700054435521006770640302960216662783064488801590648839610117684277035769877798255265646053742992678444281903267892696671070259445815593055836359048922167127537286178657386114881277228013781106094465006861290360683072957811663027291496982854867578268584382212813645323194309172121294297770960837884241008420826041023637774994719285024138149531992961323560765968435263211183324202249020082811997794534319597620263786569806561593397755978383290023498057544523532960070609986321044861654268687614996879895007180812495738279972756516161470042864579186339173702306153724981837323947386099214902901774966935167596662053639347318618918971884511442305984239351392769405938847878545268928962046761034377768108741552079087978275841098628133506559183431455716025885837669381027534814873454324314284990487259484553225653400889930239882286398387838834908370255701543883501929284886192992709364045412108262722303711615423210490419040622560782105800401228191563787101298075107971859732614281436629319820198856009903025176208336804366126078513990177680594300315100407935141692974389223828661536347948398428828205050205933188824316638850091799462364053677881907104870902704541605542984910330846877311874186063691241099905898566511846257367491006011618027154413890797419975196823008873266857313280394672199831394436802017653441024811573256114314857212435894096095680827513533051336059876411157394112537010607589626451131537087456793350899509595546208980299377219445601002049999383126135049448134053054457995823797435964938145020635239320571977884725715171138683955926758750560390572126523751689421820184950148833285795791313218812552863745919501150403098933793690608330407851881600831686949412245712045599218261164534173346533554876251506290083955878336622180718969365325249544235010946791148890395786332661955760289589109055246849569395212459991066072461442348679732049035779452053738160923623691974046571424509095981687167307907365135008997148636081098891020607246176944035059400047262050023070732676047706188111396532909361860923702082563954852402270773827757956526191367261661371249665667020666110944889844523852259745504425170799268973791333417155946193619431784308630451471381156624016028984239824903030321482673817131481251210747405633038516360777449119756681529871255305392956378606792238953560949450839534945984155433431475192013075858249881790062525074287575119274765163095537359584040463703227996915350251663888036924024056158917297135801884005547831471059653498738081323012620278477985192658820000320466385126192349605725852406065820405780197743626195840686323768028651258838861900224604247909871508842925295612117303213945857738299126938224088359940916408660362048770378970764060678514449363381060080969831628952543074569998459450370787834037502143267378818908063321755168841679301956013612452934797192315524108308302474276565220304325357070137610440471069016116478052791849792014778147767505299040959644306089059640275518483070270555393151188229934103243800220782749242035883598961908798646140288629781820767202320298321496241643221108892984279482623230872932455244599620876889615243063076497208361407719037131203899572159646903259470240595392399884021184822572062769984227223747087961805387548545997263304500770208474278160322550925804982421670645993299348561839077740637007222506320726615003615871841954690065322744312352320512153684745138653933579315122925535145201507268832826900591438058555552308002683753888647646167312771099692970713151114081925237805465668156340982676450773161026420440609669362598277367329750719107651178421170029533085513806542237963708706808097422168777322824287993363802512971658248237791711355269167662028682953985424190851181433025682651291162908470749223471902371877356006387914829531594726693128226856582926976981652557642072043303045285941179576814933266950001655590743577807447620630284517787001919234337144295239010073312179452757121518408391467102034506699996369727478978296087944339089561754419314707684425860460753196480059855196301130240005686778223517529387978248951222241504425479989190031800099170546479014245320499456161410061917079049261828549216151834590446128115255023388974308554797232749155960707383654871831724716864423869310630118580700369579505459169259916094701741442677642730553095727376374731571047922297849172676238052647872828923189122904254473364358499806043569303350880481763897149957803295881803048593479518663856415422168006361988912778443023023438094748069511328528244154510940111531759305210843664798559449845693996257581900770082931250344334137507372790451752042656320388472259893488303637633749277318278316535682505934264080094697444522296411836443552881412085947870756510342782100211395033242359117055542114077642453836525466361966990194973349618803810961218158582482361881221833668272022224537583029769186403463614596623069445502718308307884297169720755376134146872790258840603749824765782408152497015097517090817047694996705876446779548326745132926878907559817645109950513576846173888886070619902615009612791035165538561182526733246444466174416889222224100806523584157847542929687012341358066234899929798251911868291724835524194465058729683904197000627099306849657829728995076450343923578772765496828677325893057206369230438667420061674333830841808936807435306728852311865915607454879707596088220741428914292426024742865276175462627182019507745646036654096750790677033599306227492281980579243124409928421387736358614961374041123588313122621818321903252684506740616727278861424954787182297106255007054505053725565580602714976660699369586443032532248506781912157001097112190871621184625267969912257791580052124485008434900978939386320180523443916381564792971396784530273639036581335905466144916336629077436617264676940216707442569495361895781864481034613724587046167463897302204207213410242850834902732809869914884528981380021138585867051301752223117678288691163494378673555693887048428278903130633501895573239316450330425439584064169954764887014929076865038680205823506078345680659481473294614359232557470586308760183358142925912678921852771219658546392869424946830824202621870894198410253523926869455716323121616763671110698811160761519206782808083369195772865274102560956979496074693921553002552130694507997932061616118134101715222610616533324354348288881457865253272803109885070851598584803056095092012541725935170139239920257681909453276517565926656811063066415678402090815495822618736298000668950097868287060135503940594679816345452521755626173491817243624799982426779688769925298878555884653024099469079033074068213584191226931030328783704850890893875663789516958765724245819593108760717183330449491513016346378154955190423740769639371556743844214648203262535410053531310344530439886398809057614440016723387203182436301028220519455360013769438666397974052972990740874757665466097889044239559505982665163554188382069863633052550730083524948348482204055074753475114527456042563219441570710233881749102715732675619688000528400539635199101580939653792435704148813881396592154945325142255364538251405505947651111031174299993528691141054453446281538399508752714202807114097015734165352868832842873318546991494993008324520948878783258166384704679409676165338979359914067026497460571796845738980484247389428091199848004970900711905813880043099968369802148345824872133740355874255911523304933575737274949512979383027999832763012012809057542901792632530598194457866081759314230066564672423784850748104894177273312069376577055347128313879808954063336213326018490386436833398144714984320958713902627431252660904146617396667103793877426706232131445558476303517929191176944082249211613413622571626745464485892435579280979083210329021914373993015775532091936585955776640583380738172926357251496570471839607770621316394869442693765705942899806967965315682993934032541722237110908778149961765510606462726760171003633995140138030601101458685620631900642077012822393222878272224552636702201624964587140514174650621286615219195235340786456081490371850788531359957508527719772912005262212536732851741101322689650024286159758498356140839126980322614516270774588795828516089540829478066601999805661717823254956050954352861344565768467839657980498532610013860291074803910624441199589715280423226874976416733672466856833891045922021729414969434676605549996668794478074075010947591962049844060493889281676894294386845519775018078842618403639350360191706638689616626565227840966253199927900844882472886049883501994088932111028739207893787321361062308169696786235818501067420266027864198966748064697445600904302477837636696202086108875825924871964100138589165261394252540648854790506915699901810101278567452855010902982465549724484035867275858545826882010066320796220757349821606387995163391111200550696542739068930940817181131159336439087409138539830760436212248141259842376971191118761815225239801692083057065437892691553886801261564367460720197660380657319938326649855750583325763849530907324001096533073420246797034602419908618190152653226081604220286068609216658100871123231863293826290537446268626737730779185035814276159012211793813442354511433253591242425358179242450916978657270305163744464528988612485944349446718201823873839792382573708599217270718066878672014167257053432840975213774565274066440660676891580328071607286833106492875906587110867909983553903871272731223304719161750519357569510274182768201977849120931173432006785160821209080327105548012145263697556775750174035342744076606572273341848127113487460728836180385517476171842271124842041299436040623199753113298865119250004167106435487330705813444571871804482385400641754281693804356708028178820580174576756433691336266737236528181470390228269475216928206017888120119578695583702315745280982752428243495970310692837277494931227693282897525487815866823959399106267182719891490769941307511858759395608131742989407146168861220591159680167240688028271091943686338701093240026044370298501932137597799492667259594688478427598269052302636948488154006523085513723268417654248646612628890808590627201049320181068231956626495065242377283837517706828758931103616288102683678592228560286998557598652399119975355049592020557117429384838925585467130436607057336975618517998831089330621533435977341026278687193722885595800057995302484922385646391332581473663064805080306719358033578952955621978320923826056638415507160054131117838440337301384099203686911330624001147555456275989552869786205700365291547872400018076580128561837265503313235182755735244104283059860838820093610869385299972534273885060417453449308470339627350372606404397852307883070078074109072994119282397767361670008764102601664965220147550290650119741837633288592905245988154583811492105009019470963805000561490980698656820547227148271018941431985288995140464358534947581308839121630912996803185848569770812441976204829093769774850219865966677954557149250853268306087048261971404140572724318853305942632669508384865253314974295579422216411291360817839644583697226735988162390533458538225109279286331789037050556239299748633659002268519299047323653783879930948915379159121299974885693584957768714887612224899309653143755772526975457418866697399515168235234392138470732840566812265522043473473471124500410661675980851943973108712433544473404449524366165549396624808055531951482662054038626822414931660859937457133899028013207759333121020756794078757603848403300943031202319655003643461252326042908725855558481067421033945001464330882238992609393047449275750624046174876573113459925458800655968235174606529314828460174015658883156908655211433493739838035302674720013092650813492277970290736656377008419035583439584590018686189355660359793571386873485105026659023530741247053386426753192845246061135977567857564220637228068273263359088426062601260252659715650615490762746619245277614522902894087597299354455157153927629287743148412480677295323647833089441669481526779575130031037347275652782199845226944040983046426876742403813492229481231021908871124064534369807273249578023581741841263935494867248735536711134304848436189345193018620581016507874770616794785664960561438975660498227633210463513383606233464623842537552911687867665885490600245218368108467464027420764912759696302518370713530882517469809400735582076770867620086244009810768024937609757716002899119790161235443296344155120639036893634408240310651843552148596260329695620582988413109329732060110501991932681854831536477382826259427022949837987666261329041872834397663326540846923100480973370647238237335040654503707623053993615347140733118337221677758755029553126207581085279374452234930459539924354235424049776363670747933348347066140935709695640854408901371831975974930055840882144868730747360927574475593415692970432636446088019311688366647214767067091324816096893100704281967671614676923405328387368682681553340819941205033146493010655525895727347201045764795405827101227007178668119671607593343543324471665940429477960217973111117299242714330631518510152800104306787231725211907426853809537506179524743659672570289283690107142775289496785202948950209456161485184105302471211676071039937938650798418312008903006256632362191213052999287221000255164657541190886222610226392458808185507501094751997734816611152290409741305985957250052075451145478890715463376588332178819169327485137358241804833896419573217704475042477308745235282148180704986005288523093117757570703370312446652868817833824074612379178091712711504515164546838370692630834126967937861190660926301463746815482551351850914740556225535810873013920300606808178218634728345185156305591144662041552943264437180178061640039932858121826584572336669120579076513079810940969896019726792007498391665138385565159597237992010753659841503995975693410945082344061480871622369708154472761394910008114004545092253743683553437761952433231284818485534069524482822811559880781544190676886195567210119231427979014509093352806947376422823232883681546017730653681201795296814049077384046636305272449712159498240714718402251045661731806345031159187702627260028690186427987420546988707373383466774261980020338970737324795961616789183417782975920858253720066464541446323823237658905153929789911182721738634301899965695402749125195378024202590585964115728485617816063104769378123875634020608518266568535390309083128373947007572479712111479263619537431478517794538598395975189556036048184212942326524339660651029973561319782436109245436650359766046525681269652889786518005178923837611161449983448044192774131629537467476207878072487173657991859877015473287598456668345940747108649038603453490675884045029053414104234059185103099119694220758526553140703454696989740957934240948525397667619711245508477167922562731254454634316362974452994955788299117793059799504975366213151877452141359621843305240603185305356436005273934233002628187940829750971069137841146101153746137887632053523314524903882060950131660957127166111769335604555510649872444232610890349642213835667908143487700432974457481650781300087264693119689797351607455904801864573075043247130379432721530738449742545880805496489121572601517833874469733453146213081771959753479185374189474535159765448044511539526688763887666615598159766554788920323279512921171344866659326691409479313797066975682727174596931754504046492232757038759939982233736910134575873574196966305495382157845920952919531115650975266773713853242442474382545554072309634076544381850137061337147954391619502427993707453605258085852941352710645331044197639154762574608479132342778705885580275164319112148063058215505236616161653578828898947638883704628735717458818162675565976395251811046859470806605373200229534526538230322007072364863206296887533709214358550296276774662564848152498819925958525468765564460294306331301479794968660425817041755905152091553947874349874074227799521947572597591242827090564294941365807988044628562537365013940683597409615419988843077997474507952532008797568047977073039929184759444119091082112159252364127279738319014063464965543614724395536286929209732526475124250834136544409436691096825975350228853397708558129851737138462680902860612880018702632000871151449369814750565326906789044487493334883433277124767881427346263719673448846224057709827287226491147873647266704557655910188307078355062429470189178313885040722381735942713815136856693474113510140520217819265341795648336909881567155439129928628130091829460233249837852003449229526716875213594566786911526319368298766469922001480686879928243575111572265215348935689153146940166704195940960975341321448589951452940265148374168366870498814325130216917163686381612255423710867798273325595594665629244079085730762896777990806901043462043909519565232507383623077738331798933496895455668368834361039525292869211929530716649039588036232653284544733461754327071828116441671002068718703940473163333958630517236047461317346943914650830163723106738362033066838024944042470453176335125221072766227145063077675999101402593743610517020461075872644776745582521173676395295362913442152097892756469040862138396047190710727475712535375664442307523555534813109250425837112268423276389621876720026090819801832545990760915277857898691104616037921638766217064831741644647046097530772914199880286240745120639168584704393440697695996084797193320708835616729438457378480364661426473274557950180086359762185555104254759528858206628895737043822800381543431610465108430335985783620629772474915701392201180745994508002606757261605657300824051659222277613374647613189857627659073719897624501833069137482665623780995202548376075660402716916555765777297045208808389917108427943736442114251925313923969772225945225738852591852486395864925913642547947985860680391514757740713976237024075924794435077095436818700635650619395574687126934513335242306663388100409010590860978079544266063346146354817643697572517340325135805875039116460743706170606467552540372982008402356565711783422878989188950453041752448293943076283038805371549296509641604885085865117335984066168321672749081579838651854887693281295480049035062620164297361118804521131363052696067792385254094842315899253109876061075426023847001523676959313979547838754132034511378489725346078079966240916958320204127505089121052866739960980455913655248497639069641546218559873033106312657907752238235557068136840267793704304306738375040871592252038888797686204899121518324180759832380703705581867692195604093582958086461010126992518776982217965895743187974690987679701615845085436076021853786131703493554278101741022801629344459719081499909944270124472504046550225592889591045166863211239004562818857932158315473354468885945263121754534217762927394858209301682327488026292148806430677296474104290575393238514751872332787996333439991380514663356297054899086219150586074515749172446558095786003935809329536549545926573063297713738146997855390720699002535043373647421408826290317592037459580529333475747536670443290465852598780666409869671080533940171993747054498409739397165723337484709007895924510718842775079370184117372519485843203495153702491427813117308194934488883827570751275076665490959565420552052980236168795854736668962894305007042903129594065849260575249942427615756315727530257637453025150685829561579563845540353610604959777209924649351791751598971459516760984168259517233073854118636882351807109576788076951988727006328013555352233291808502651995172922827540171537144629742428584189090584214792074753263776213621831091522951242909322692037237143605731721605372951217908496122050741958466228371000010957783494194379234181838238669041826305535216753484709364130329362396794075610694747928071625313113053076293954012079767753639107481652490719012072497509100492007514769392445129497343910589548278512503784779200520941782777104701264570395382159025725530943185147256434568938448062884443761280667324634456453665669799515855713037106272717704596989317576435308451142404445835493977960961993773728330236665729294968246755778911387069950057703674757624453073704796564420314577581339239475385650158547447131643289503661364558966049437051143915269102006829976190754088202813177678610224862158041165391038252186688459587658690146349629330188539236433708002580405120721648057697711320283029522960149214006600288282867913432982819489798710053251123076540744836498657896001943564706075829505908975271595365288503278663775459299592847805597717140595547347452369873190642418672380804546923331534385431534449241913343384230892514556048289007474154715941174598676632553571050913920082875190796818963953037936380683288580376775639947166245376390041430684389577795032347856104420331074105035620420256449417159811960797029548275326582599754962301183752506699022730347089505821616816702667100301533931547242429300965439890567473969763386801878504539804704344535356226528441352710281869698631608086961226258434859610815257719648435378969830858145171278506219976348326534167876298426386193565217176892227595694025885785738009294887447776473608424681314188729594218960883943662664391151475690683933384709506550701355543923737986837113244186814017209446120471029063116500022208282855901289076656625107344192713288114572683029022283358980248649142747532032883248863914776024759957904536191417470821979451233449778207827320863184407928549683422464817571801514151787769963397451645441387772689017524890603378021339288812799022417317685921616842192353946939755376276764267799528488600503330606967742780455460596387204615205041868559334662287934141355401722765172734498602786653200789342712160821050365826659054080598430367485515736367141306935976412580762981502035869310064216895764775867441772136488422121122862052432491322020932099770278095007783533706496133797414230781751814728901703751261987819986442676052107354467328461593263418641472349568974681267509783020273944727156055191127948155093235859118974199529821932072519873900369098749308244506561150792085762900450811717869788244943314198430088318549920702392255398331428303161417857732075279015224623778416440222069619002997475335550160134950617456230002301623464674811905153420141409668805348035310166375405361183915379329156558434218008011828859711874828962257307393474642785636569447512087169251692598479578083064225499424578975342061193798869869664114866768231373916055443925962358868913383748517217026915296650911213731646127653674053039192341378110452976778032600042427513002419345331558862870037353270943513220620838780170271143232003522282746572327062295953250508161375346631599320921856451091655083411222290529087527048669660289645284717293051477677265987521219583605370406079055148113336819191416267785333647349440846258742239452397410387183990044940080252521769848517671566564773843030050664928619501584759355553662025185402575597865328878058258445259387891068973486373705207768228960002332771228468415094350768228756473927575440170259156590341426133026442670456867638601548112902719320273136530183566309440333579311125139277390977515105022427033805669897774441255976232115279595349603272228767644909021297880737771040457720140205124559060018070402404399310931539239054047202169024214846540431935303760639478583757228957986945200755731912719609765309856599274176040913117944772761150852530960266166209543024773813673075674550693295930604805910266925690685914068472235270219687294813581983795527676073572560568542796413059711391222321211116840089272784773451196008306165304585920224605424057448251263740244089581373050432547791100326011272247589572509295637907039091570245166692410063090138251944791504766978810638718493876576501998200465250716665353329538835046809965880788327914090902532206412126325479713027932211488290437301291815336496533367063529245738910460084904920495127874375138947289972070309109439889830807813949933042566680771979972049887405801593392783991303957107317211100596447861240352409983919118370149382119282245502953831524282296949522077955472254452248895887287541871082809565496089268093247461758385014634087414042982198166933424785160509601837226585499323911555433927202849050433268826303168338221552475942603412082522417871087104000002464580909838180149038716298197624235225050777457536811267809832336253626053651633166131405769395664789581646973423650720762379420912412551248434571459694324814261323772346961503751343479530365651238057046432135483500861455290111386282594087491993624717784578902507741668217160384511695349673946680837939953133124033271713573608629449172178328201551912914155491079428317055528835890203725662353202526807419382355938857063809407789938291669540292358229580219283943843124007964513158950039274807307888193101612049815414767497175811084184302882786498808628366134632451598064794752764033583023835654890321947828049230303936633780223582373145148623802795041386229620669503271130454964292803394774244111024640652938571831401792172169073876856475768837939078280257708167791180244226509723438158615494023855010295963159855306232556483261501041732908954781573054787723519091718915435751521059648454819741974193916149644160735662315943258959497875947996524983575990079978214318351607976296929544081357893329245273273714870280000916053412881028878873623937319657002861366303707510565084473705618546409445740034482010929974353747488591275667025582983701982538542870000137507887153161793742629975287530121842410714511236885864061237014108005514142662900218202097581881203797535093935148303553255823109656214569157409462281432453065433669333866644952539130842085463574630503503910875835485694137551284421522096166752638351650321398851149613688306748041199079000140662801564827894423593361147427845560907716525163084368048206071210210041847595248131511654861477084410202519558970216167582825804428165505505176874150116327552558744908551765298415284379912937190272892330565802030266945506109872025590293830759930311051273561194300351383267774041212649191259488546479353823611381678810528269373137106149376009923434970345095504314343164429458455918594968413993171422196098707894944938833512220905087293281596009459174736221129314773592002839659168871367668753248413046295855112403643245640523489278308041327489708656801269080978020213361195602419015439173476082157931578482507200450440141088785382065963950380979905320319387242472646883508656724832577763438579676076431357174956982312705502042122390252828512633199994169237758268033074424614849283035936931128011141080716256604309374754112706143063406157646198162763034150556766186498169647864607773261451772229595591747540401318596668072114425212348591429418834165621645772404078057105799955984642659693308893609725041474375888857299814453575046861881945715306656684173652311534133296207337038294870745726264684971893561619550938800110538878603900121194442498935976026877103220943039028212835674898543248596392694340610603411005652178265273239031864327789015908279151720603450668175074029767692546454618205920192742600482452651993623894145948902730262384676295412392440147816289007693895332653530534133826207178127242677216831243151216699181511677594312591842811156349700160438057063044979815623780480394863668983632579017390956875474878868239020201926866654210810759959042052909139084870504286811285842729193465185249518558363835912935431126009223167370336409439423918985979462673605621250946284262357233518100782373704430267820517893465291432959523535177556499092767839861445932771629237309524576003390792013739419554999851043080221962575005435071091001862630209219570099589441579105627579734471920045572247642937004805491978768936596065220848699916998209505105529943143354435147036570847903533886891842525652821141484152765464214810701973764719444382862339043509286434950652789391897269047701956407183010595127882219173972409419697247929600866093879238341186653326069504992343141631557834496712233768008236715985343742461716841612765114009901457624839404329467927404024783923492998621538403672051152825972231452099019112529892019777919505914563507021490924288053926449283721840786604387617451052153085001272823500247260440868370690276310964734052756708147555775941182711984323251862225445579285236368998044125012371152909257248896941924234181740820595913864391811384509292116658868742297143417809267885274921116447775428658286202511787584783965206449112746675340102112463539786515417984880517219358280639789050305295608401836652437901900885888759548531544380622790517785732800052564095154874780714396635058193164103813800947612061720456573648541478511255585869598817078281502609719692162300354480132355836411235665431012398267328146539897556704822763945800956447553127103385522278912858720238800628954673184031167343233964125163381833007940224129725671572195755882297317703480600342368505989229611082388987187425625270325263261222407817848121267338511986890780625501100046810252565748252413997894457745569687959644004718190052554395263974228795529955657070778586014459432151043181467943197615898260608823008267190011694506735438657278739187492639388670964812337599705458440020402548974677308476627147912664309968262279609813799054642381573929763598229951826751341896734474864492831534159689775404473498595836891909964323284184019591519704707417554183741558363124411204325715587248019570422772358404860227089990058303887418603985423736048418135904006795120434710649561962134441781199190971180935205328305331277680542186554685156465894291376579025872949646434647594220606641530590004076562621941258325694214721270081893186242876345821020901500450300146488849520291861250389572819389293268059720075059550482976275440920305517490391865979959265048102279147490179417142610127783752438959091513445036669906603045056877946079552414331565774058854799985623142326403994108113363247902967882313599241876069597416300534948415905968705415958726442751077189659696396001028237803227260119952218829720390637858180320669618645684033713910269729968721048335787078983246718919685734849971087081754857002158179008194173793582768112482232325427771889115654288862927690686398062497434319048797506644199616753432019361357345138099200731799493305872772726696322625007751723555342170480418337900225954139090489786007459576915671961780373066391031516678090670572313451339886180879396223351440850235974637828701605368115048762320368790147615347639664772155373914652126666808421775902777033474561458103310374189934525340385779927437782406624236179799551698274904913588339414334667793131822386342357733815058481664490811923462386561985590292723975446337471687876442643436732550103809586446463372169683206212294021829165740755581279949331186949643465881549871767023221026623070558245122670704975421098121748984852112129512229793847138335284389749944430934642567153668719552103915803971521115058489941571467049307939764188737747251446203927290985640502483392936786332650053087155828714158641299532754960646615183150075637023881014399053218570406742125964798300438463071888584098426102492865076796000462843968229827730689897774875966060083242317530976315417766128521093810636175862922811841725298504784495970311763689146125344376718593506617462271870612807798441395570079009219489583489257849766651088432596828617267906946894319223472054605565802630164375422249067118451718683193829499158599852524910723852712641590072652795036998352991158325939859897559060771535992245414615199855052732421997791253607230895851292157810842217042867415127299964160381676797729786298630593064181805318737168412922831877467489424048244468717312662425557984363599451677116563164950451565283873259972317671774322966224130332506300286815887133987476979048434486261619644163559552229327258217961778368659582144372669020366128191390671145381960725959248766222512812777143751091345396418963786199611169839611584388056194662889385805891991724695768849399871819515825024477887909230384116144800888118044011932357870185547366623840447144518430359767576493200439452197912392915789919131568351328753365594610133595898414593551293085037861824433083987654979158964963550433666323777971207240361755203977688917642230378717320172558190391459273269162473899412209362822102841552437567703452437359288482467916306166972104512839211568623338144393705605236834981334464608008412992161640617651376054809508048664556116880693759462923969918318623764814670822899259287059583193512801414166572045817332987134914987857766866798889745160873538719532538578207063916689903416523188409118041769181497918298453002025677598079344955621451287936457144334464229369423971610139737180201467856471184077023621365735842641058113277079727368820156037891821351607373204434030239596562410609814469807194064379964740487876568448703020106468290608018255889439829743781555501886186418594948001150625089147226168749275944427870923974110618268295661784538011596971744005500951529711847747171890025595892253358311838653882035397144701966577717270294199596787376960381047054875031365335360171371652833347156865206772284184293955914998300120337870570036991912799911348933944461354819962136685739202587463201701740941589692492594035926812608394648359039262024343429542435587195068475340727568721532970035294604826084118591994308117745834639111576285722512763543993265586082466804345664296612715958893647960069201682590063962822165491319144883419654244289770590594055068072991231551275569526200164806918045450396303291225843495714087572939779908072823232883185492070366243591679647699228755316037254037950366995302994333038604679655413253822862582274069022161670230677888355635950192424457466058197823219960037206046644974389151197733629393280872236400770014947700758452964672305084242606343870361664510611722975820001181020065597876554843926108124446516657893105248948713695553189688819912734482251165555872383033815494523831067002087312128507903293292149290771581922683029665682312680884750483177239913519648564583362479091862324963188598095370184600602767196009072488509471020088105364103495557089919333814202106031070920747095404797334008619863960782376479145606755339525247756759812427305945595369328730778045108693799890113041095126958519848631603893590865170283353214994230154310923856486460824873532889852201120224851581271751373688938768169932113235113245998602058233226710840310358631351149903907812651219166732691091051346334464698571276428953067851092290331944590441987276263093590092121232835306969823555373569500921574921776352203569002131650718729486796138252847572930646092995545318414727943676887490124996330891348876954465952211789680710030379492187846579340181782664486001935242397781731492650647627546299283273227615373983685089715881151820117422046771529689479889748462006689415752865713698844304920795920363382222827689623558058526287022784213581385101114561857908489093655280489453010780594703593536779287407534767931819794694568304246241466291380526156578305305684665386009161447236734580298906718683313388338863582958193455627369058810745869104011610140223669551773700959948280068211908612295821424024981215183110716801555874960512721747011464862138016174722795268619752705016286558601842720144683582483072230851571544641367899797826398095303595143160912606930321629566117721925059015234398055039905003955710495905906381405086590446220702011214629692391458968798440309407134438991017573115665903731882848662094190545917830870304881782981631625448594994050184075059661872462575738754592938555951004702282987085493737950409088093275467553243655869863284209336070378190721766224547913324710657359384061969491995724243112483616280814093257154165171052141786662261055297991213487697653200384967794626127167868216688816529265612482067734029854717454541630824597343437526994749784447796617330313450822866841439003487539543877724405267028073454736686493736054419167129495602993176465036032997334004978001594768903264829001107864314870298079939829103644507703142543596814226486892320639399428706415251531527340680355718854160727604155878957478579449801603685875211821535487299069948268464442339173310027823123021850815277441835597037169096052016832910175814161693321486038093535534588332603218517697598372668363424121669020068199329700994743699514131189035063902795069806709578444452805268593664730157780954188557536249144888681464718013768217921517394439991713470181663411378556163029029203611235455921813250748300530080793065003641169826023945795752245401272606836646196079729816809624683128959651865832632617565482916782852338542421463742034671155782554212073553785828552474382584782928486852605022584984773751666104077535339059752208768933391614455114892856387943751608104119890102976911084842665980794591551327758298502985402828655000888159727159239547828350699409009215006805464474921547552387088205811344103992166758294112159601348887980920295595842598162338195647076394358853417376385636386048071734418821589198471179449845577265083614037476883820662166073408078621209734219033181592766271324547187542946903490633741195648533897458044092868726627758663480556640766974713155892635064301621762087487048735531661424879485685047605354546426830152986028696378999410772309915494292813289724501343479536089363595105335148717070126040801753879865815322660266520316224397488346442091074237068116040717073665054504026233175764967051254569630391998534075530135051663260870869469091443629564202062245396911660545843336290323365360004581850900658360780842168825523965191920377192336230979993862992092518425336486176700923087097159917901471627900215592783252005502866811337633682327838417959282247641293375249364638812185471762552208853213213492653887511171784168417761270868164229025355420977092827198076367475528944244287800197615159002577278737988468710541074450137546859888140472351291657767532725450906158089770495818607906796368865128306543950342965451224501388450049290542151389958062942726960802980738128252079386768745410954324241291397190891978989626201126125518201459555318506777719632559169078613624236029422461682063248120563774533955493183028355014476720800753152898924334500985935126516472478343737726070266247761294265789985543624961482945924761607311104954501807130253889891743400475949076717616325227401482714422512479582212319609538671057816875347272368845357248928769229812020310091566450899467623319082986087670649682426063315990977158549327354954859611659833777341997426773563153818782664502795214953365046407208443320176095898202396343684721451931177360619867696154279203557856580744640323438642589714510481042807371477862005491204419419871420291112786605981780572938007889328052355519170911825411519147283406537070480922784962516594303383475673789290461074563775299341416493277286118466187757174617545446947281653191012599038791283892801762735219712022854407957370052918322937897231019193531291217971013481914814592276659707179182484000093466776335191420664939546331755429819295615880248977994614213826577474452481729201067265601411509216941745102544527212709413413590904001501725324610695792174747983324710246594425790028721350151313483212294996952598042122133420935564633714516291719201009813419005556097358096982894570082372238647996605695611234168730306237835866898126578091692535827861198499149387865801701347334312626161775612164689811598808809449471813972106954112231889518643017384565954814783846340235050806915783565656058393567561705650549609650224405427578559946801344370487494569655379253610161236740608203753671816677038429596336859624356228566600074946282104145912971252177392975481773516680768468075723262372213398902164437192942283057142757753268704399638963453379494166118680962784137500843184637870154326389217704315326244782848649762599406074512173262789057676832343652635946544750944218264425802958807720056279714772922952333005586455086060449182964318224799164287385799689859131289717296077526166998005698171728390750852693285954403611139417480112363837279770053302166914654501431101453419111673555838726411978809164167904769701585215546253924346242719844348348700664748379106735409608927869750203000370622382737136992359757606103582136989528585286289693646387852108560604130589012371628865836894756332340031820041518447000190891576478964129413490312941583623310172314202464667210757147893343043083909628191110724918176290328834309216062517485186044395507576858517490975045843993600153284784244012163313572692668682100160143443985248101790695681733068053080699373240169133017315799608964182864800484313216333985361777923102246663873728825899558338932384304157512167398250238916755707629694193272267308811335393210749636076720851782168685240357366262743532458567162015143255477871116426963150626107862815429818774003343815506078784452753694914004264034108435042641300851193168399305601566219420074495359054323105972092598846804311047381973079434067662879836000350530221302060945369089495296755697195876887581023858052226534665847522077817264356282858920385372526339292892509488780867101049498442780114911962262071851824904196217328281041459955126904430942677365967698615613213349857272684492901124876378996432943868739832123504859184727520620612061710907528300257025517970986002299083367893283908872574258262743356882079706087164623521247613817096710839747546142750481566410516273291701784961462016048941972017898421739530414049381625154444929872087612039258699139731187037543165693014292418615270565175329355212502700761672126506893946157491540219603071740995439645752461250462754449212317442627435504387576695215725730011727800980751871497261164007536177828970842696293757956414148255133456100963687052135972602965446199153729999006651686891467166320905804759961932891934894559330575082964806872260807772082175547824810914862786356624851883600032211387583065442877102901158319307620021137097629221577828602281311089937624932006524424227707244668867418278542727486161279641902996860000020341874091043380267774673655037588824620034923645991657552913807213455095299269424769778968334208410430764309799658378503064537549095699997490445123286334122409550601911642258528633934816333848270133891067228800651697225549241742072820196630127955326265487712334437518295014695952408274879863280881966988860478211141643998889838778865312654596880263547843615079792106389943676491914170230392736189340431941700650155945714100898425206114615879784595358343974401914479457465293093394950451342883037022797545341749414085787062346723022823012881086102061264373413106520133487396648362396671945775853610512674567811722618783320157243634610164125103338245115263877030884627091149400695710666868115295541138647629893843196365035580060744276553369493503741951624570565490157544711976510712242917770902208976430006011950677924933198307083628044635068221402969673412737803490028624746629224430196932645294443776503467934121010374645098241794505124165168352698221870759822047131915451483464882576854161455059445789804412212635937360128464942527144500194029042992292915075438092831468759908838890704203468507752924232394510359121074609107325701025667215688484819358544132488437994475558250953455309684595690880461199929416673541118794379231172610338708293974699642522234978893390767220022724445725768164733711405706878020347669221072200960963611736932311884846566636650910341451377859623492281699132293218499454525789795742791312295245203122490461212809150441014495153359265359876060719897710612193117138629087112792108958668779414269238190404434141275078453959286426181698010426948087611465357023324015035010799364351338475457143547215624062236006823545470749035337626653276056535689228420164355474331143853679264014467143737945499157980933402999610938559886186035081323201701476365047687256133226183993479871981807423703834874878167460651732673044218840796046461877331938035916943066866046060469651052418545450427893316701893956670835887987030041098554373818181326903395681677245631879736156393038388749191501613705926718692235773960327185847730771257067221852604016703702112550218021694002993079735351720942805295694969462005396147532460409243670546669617530441332635092499941247827638278698965696974578587869244885381836324277597479316666865029657937898075811414214799858509484294915387619440687724223132427521985591695246314531698163804967503123602304763785625402401671765947007663222655893031568386074769253328839815512242349961917674892445773277369416926645462692430425858274149387182253716367264381726492132852268380352845014430742534957813325745078107103321181358443558428450837236500483459798541464517758166921143814395894393449164613181564680738360135515458658449251195594633041427835270778736801600821355667574281832245490322626781526073416946290649625394721502991819356901644193599791996070777743677720140065374750874728775840349208098032806625542406190696839906243632411988827041803037256757606869114808133537189441137012147571417932132475705362088303599721957655403447608776531745714939944902304274800903418537361297007235526205279593510532019392150849864384704407995632307779989133233680458054896436959020027311870632324360348667843926554440090597453116495497030156484048796595404757658863333520336209618573605830832260699010696568328437014345590678459204738824416931232121254385719183983516296676178333013798243736314125980113701474331876327620511207842226905124333190784348532168070970521112897116189277700906127377839612300515049737069534022887747087431343775239484670459841176138302206254920570825418093669157098554881864622807751546909084294585731631931289971271592545042245333652708669521178853068588756221157555350287064960309482268705141070116936416365508048243410444258713924842557656476017902162792615563681420638386122132733311992376649936403267155505500013375547428778400076758004422288629932656858163055122533523189379625017403430209401718518446552967588277919914295842910946928918141123987147334234148225205239246473066406389364377800786746482806568199858712704365289836793014698145599210178976937023614434734580997995278892303667638350279186883934020950368601585107656888202023851155758842745805834956584136288020124674574353967430953306290131078208375054420070114973415141874527897067918699142900179441150552828614165684529224325380265943560535086884480503437520435839223665332027458253282989299199003819807315777285321492096762588084759094600288604024006980994488142582592730979136616979314912311954529900146541352017009417646422305268190866514096795046031119903802656205286589172685420445754952884652312384273122081308644051170961068100390928932358755244029646924132410345747413071975221798180273439436233926740203272367009273943883125787838379343878124300396642103276780886538260991520048787345680236616733891197704688951671890722135958195288293827613848767401987499169213948638242875841154549971723337900070735061432325529332015710385233046714863379042204049226321194221009518931481834492566112657859696036291467740498992227377998323360037341021515493984313404248334005015510175558896412462758259891394850009894855720288651754151509803990126965432666393399383428017160044715409115698946868216244502358742694879699219504623929234779455268810350672668684648971568358884512208566256588933852230861448992583692333949370445505694064791499440329969832502349426733921690676915298238210129281202856736121352274201492720819807881230902725016811717637831375565271862014871559428250243364651850164381243743031887871006442756560775610934341570290704139388298547274629580057669691039701338594103408797588717176627799343252153594142431173926613958243034048805009576696281493795069901077897975922214680465141803093507126714032779813576755139770685458562232657400315412646651481633773532997350622224077649278024900220549261835199719730826398451294011643569485262822623404229147275171188218542731167461692431998686533696843999991441535487591004514802827704119924228598998271299365685887729084699333176021267579820119842100032643543242760731799915087378234829133772277055752084252169097612622508023172568779885879899901779533169504818270410763066334768265460968188787325248730373080257201303967412177907665823644552190172586880425347591976394808553721192565117530827355683885481539474400210291142873023261140271876243562760340268520554885816377311233023799988637254521491480775345641435373403591321504116774856329990913955970196626002547883790039899226510549319072305052463256935847649737255396059866824572955327254572308432751989762396672095221465808234621944864560985058499456411848474803520410997739936813423342300095337786998769786618380323722537918292395403987909743547295542276318060789674126800557995109898173081244803597793919651575950912024335040009493646635620114456049297175380285442867966416053752297193665184024823586529289065870271694792434951328978140741852722956766022418132746745803223746468588761765594542726871792331576838860566760282123995678699896088960191155456659356149837509844042761337466626340532863223989024987216506723499517607002883352186657163031026647879854803917991148856791089792271035663230472708435776191027462875547831373854822268250228812101458912076909162810705828175583324406257906565469382515624504900975351483974069631988271818926232070933461871156687447225448419895986298426711770773884934828823826868075569649824893545433864059353810631855376907675674549246951479783306729182387811757279044071018650808609753371397277985966181916349224002714507430337212940426572810322563691729842490030616043365986566630487236949454492890887185976558513666596652552466065085777611970153968473625463005868739692365334852789805137714046679387875025343666970040089291669467219554942149397753572572230462548365930435952743592912819930681213214114461677216117530810192749918134160656322909486913165494884240800174190802249030994156405022525839812527705294676162789785151057281483205455205894955098524133287677054931715492208485404373133683182258932863180928368199195323704099080269053384279811793314588810676094464717389466824067386385460159322130000803838707375312002571247116831822628283308076190715339754890817742041537179863997071578204470039952030307206307597742102817969433651552353210247491607940676928077799648734308851197029433136355923643649025934038751071636548049375951391455415365895914952193289461178541000260884689821266239819654759739016633859345129311005258464991175591602241018339034840363311208916101854395372051825467912292552787337882191248482869298539937067928398488480877028303425967755168288510666896373676314933450460679458797290507203683685669285964948332091050117897365616351578711092980680473295405147170738586310938031049297976762875822098774638839328464739026140937483950551306443201211470894361004526410447279897128972070451613431608160605086585367532621315692798183701567925158888910852052475218671743733884233510401789568309440944335799351630844979804080853773495644795588193965073415326007982732091599262473837753397028658483055695560498904504651261137286031417969210986792063450204677192558633907113093109635612195075387216644395431286131599273403439365480368101067619683592159834518632672671827693452908484054556937463454224365063236263844750498680578785059718381880165033658047807693584061244379839022941686098186930650504205986107077907481599086819430250357874862190311960186216465324279923329936310854457232051924073993170567008951925139733260751792579265881721437947209946249021155845037517120805711299727568301469318220003865993697132674756664595342009595954110824504119565701765554700441419196632833478016703591156527618884914209090505058063202357892355277274470819103699502297763381569485201442641071526237567223518596865943805094126897084906217215741768046130040811373400750677113488162141167547295781394849963639197202503279836152536847646040895600478548045833180659510379669863219865461840358173314569836671858952313378808268745986724396306565971455671103383433562804331227723857612375334690796478112871557145497342849829861358031455668063898307989858682004180608920752940958761473995162962356649730665101451537990417896423050225724844060883474221422991634663707299340893561411796933497034570006980097321228758153352765840481395274444682550853502655167941774234072760697785184616744096504321425959600862071021790618573336463096143338585041811150024918067306206050816239001195719523420849295211538744388299351299598955935584636331591035482787669615362108503246003961979686913366294449004231881428036425340182641078713689234445626586470942761394366465242143393395261990050385403055996391345204420846700914835873925453096763823888576332770041146752172426418210059261162239621577552109162352532675835619816303676314262090683039531068285636620417292174234225551325384997915884672605205100259158978745821521618552929169532759100792383074459380629472853203757600663440546651305701907802726855884399054361852111200310707153743542068901062034342811405092138784329588258480972248926452325332335921383885472212658882829184897075745214840496942984794268600727249860112176107181706966700166287798596061743027311000681601723581982594419568458283652439098586564925028345418713053842266066794676453827050168535830103519779033261549910077203026801589689967782209102211710949968658848617182923629667747161643661895980380402599034995497532599595970305963704773698463030983498411811445995064235571547157834804140752068301985873715187681104460996805945142436889678216992934349800236161496330895422022723083418930989306294289987767172890531968420004156834488853650457624041307095123443298183745256996333436656047191286243748000815417281181125202701152734910628461516338813927531421861276105950752873906944862021166596366332369631504182818013646705244081065927727051575425603067685049733775052032827368193677902454663287115169334202805700404590898538262089774494660641380012621455194768718884683692234736912755367574921511771635415657358550679450497135883876228372317823239592487238270264805800310400530110870978195600583991864320182597749759876826910381382656187600395596497514773729573958428091219109398803040343034221667702416601240954706395543445796594433214392194801111119327570995284422673151270274292041675676196963404161121520372924961971343029260145081058299096428453947172600680293349402835061700930696603961653671272336788552892693192866191381090593115433699062173191526256526865807655573439113874583122768691025442344797234164655215336164761304628592055212052705511766164114898379490156571404033787539297200996056606470660528469274311657764943665629384561411541925295446040230323172452911594558203646968123004691824236930560698085885674844606900252242146856748629060785574319445334402295657992475551958141317124721516786489300221641543976711522668837762348640273548691884118915850815804694783912319530747421274997310773551567879601165208935733424071787780765044677151502312927670683899441872609505637254452726543305802476186085808898668275227748658777192626189761541496008663720841960731622362603889723900968813857125326293201240968099883501834838566390298327458701296675476838813294763712838953327638063491676871905451704819719491826666262476478154177384910995069270844267693339353110895576644590880321318082197595099698497373722827282560887198222704602156051117631727613900131749308354441030156807001851357640974280527181781664934513722870360404947012780275165450176788115929154379476552826086047567468094533975448589736075859048756800728929826115914407769380828704738169088035828797132129936570832129945371541843058445268478326872955106542851787773663230789321764175236188321182967232716096673558371238220045840597885530275193818187666327023349323003083019880726775979281079115494577685749680646327852449072910166178485516147347240583793722862841970444690608728453190070295658930441630469814736390038541199569533294651658439668687962817877611581676499982963411993930553989649017484006259426585643679992827948455967132323839818245825076339608230801471070817285187659637967489902897380430172634597904683557260491800600247172162788354531885032747724169308025582280050049030652551261202917860818824473043698907294660221086384483933009166232065274962294608545165692557373813867020601252257406613841973449919321873445042518624506508445176078358706697274412005728302946883283477552192556098515706614962552621685577114431064706920471002981581930869212380550228465959034994253218463205198420318640163278116386815961094101183058358411286163817165562389108359307484123193922831304766990564624372267777995281030912565200324695955102480065415842857554589394656032071139517594851886131297000965286798812837180858873150444881064100467953380256188074560706225784212816707912080237264942874044570967205073426215776302566280606283225190818423835150539337707329425300185873758601377558917447218579283939521793559741710386173781177822551184944833612804521249602516823162060516727696925597844436181162174654223223165460278942309621816596252612449206617912427694817332946859338749922212326266531167083338882222760321438766954449943602286727962305273557057447120815536327697018948706107040469761736995448170969462960832581371886840692928312930663002585758192601251382005034637355345686693042922041613378668163233053200447736068496437705078741816410524946614158028727154198754859685820884261471038492366946603756821995372427413610442092346484519805933693960107013645480380825029745689729140946759367328251945354151999382789272202902758738226060157421863193745937422814673665240153552052818535879380495924501805029404568440952306112904955138221471392608271672528667526815359126458886727016811981665601215536904375034751340267081946394527585114039525886748492100665183874849692209995416218414533930825342819053608699844726614373494579159808648898164039206015303726807756519062078866624591920421855894492947418348977944467252435732424609806381736810158886603061471836437295611643515360445550340116998720233234582642103728769673314682672497946205144347152240665473272219631229363214081321908918219092361346312004200753201844958070660600441170863497620605644386918868580855987459640338303684202062531841892140431288580220548939682179087057892588420646183643308629841841546862038933772291453424178442412776749092678840991005572876850340332341816977797913975366334608492826938857781237472330385496157364388063630323328672540942980315204932940742656969026768375640452040617210071965474749766506982747973420061826465169965462417406303650753285084412391293920483497632528399699762090439192758744873700979081158914902902275885800956200442751448079916292390480158659028874426577060792696114263689401958994554263593329266374631604745098943930235152462201861577828738989245861433680599424574516944216915124669774857089359343840967944748238917075979854693498456643883634332590031060776565540847572180117661037821273973724699955791394011487949092454147308628547784076123382718494210023354715463071752786261437159586244069703661406663765312607427405727417846372755084781097273953227806107017378372261796197825038492095768883849694195144341739473873636530811984129237749453994258328478476616134079644774871379069503319242681505115700659237756422688271930442880270984998086065128670916102472003801961208786957632470103177594236285990564552491885169916571709092158319244399184469627607948003192333782007507355293099309676768091454421650415084890863631676056268753722334463454702569918710118111142823450891812554539359656204732260639538326671722135169956900787731677000871145074261971929740827677317245256909143948171145367798275165423134403538607383287992185516668036299144881408608812027423766472731712173559904821655403662692449147032897991300210424929191814455032246886240213613133935143141291680773936685265916151863189013224962487924985873517003387065968257627962203967306133051933839155513793630603197158104605671212726847797660874769514342035910666603850759544528478674144138170335157001452608225952215803534861945190421126138329604456344841567937271373036976192251166894278447248498876756289065626704089679893103248038135493698937819850492654638175152263036543694807745339410233491525558148883229780431921089185539815335729624982709713364579724129403617071697668515668727584908143694171455753111671605503101575513795532021497635864565895820944702304743014973811487332744203707678940088325468310913206210546209102150902067753281870022489767609117053362833782208164609065864782958234297639640368998864912588955169291545098707098894837964848741033827432735175955680536223982298140156961046027525304084487518205860444578460558953563702560394397570812310816326630631653714021588000561295133334626306453685458692672388394944424207394862559040716519106035183902612365758940245209261333573363587562085095961684625477189629970619348264693739360032686471432525765609202361134030332047349547141202860977177994929745554125455697450284226676284015605357795324089994836471597476508457159523261991253949910697962357792357366935507972501073145834997221579569125078311910561496638884084965455011705565972147291191490346112001584232380005292918749807948304935720336670254507348409897595766975814118210614332388147492175813674452789741837350335416240917137884170981459931361117947989172103426026375706600514201098686475416642736755186951191511277950561128853702170432646150137910284364122375504733117616276304723538318909578427465571548451740686124546160202666459776971804076155494329181824086480358468378295616771895321015666351849736819630309255618618059709915535034353854484398751448384570319522912822283974701235330799446577520691980833075607399466570527656969220667599533264921700206862806019153906550836930204741957299304202770505103046485048440298591327050041689768078851330587736122592238555189629016310545766590652102811343995689622064120197841137154835750042672226102213487743383388694314839747383150499528016558043285908358049498350143936745150336599491077869671163005882502248025133230250407263769904401975958744253770903231313622839504997205620125666939027550178952597081842769933887082745803141850540339151848694899680694375848760748525604503541851000849489468959755634872616831726014098267993781360091297449519270243958029535135033554111428812289091919344442161497007276089757798402610667634034714588674390383600455581242840890471871310292037021226419534737856574989929774691054808707066546149919295269763047029908588411961429035407974083065166243773065973593743228020311606906457421543343474578771124470136440911533285724256935111249262903102049887453257868567994589722346354815656525778683135979509902363542446212650865947412883984121270344105147587183600501857027154860639313076595631469938758663614467149908005947852480706408428952770874833971605147601465110758112465161355212818473466084691540199489290312671492196344920660160347022244368840964821498462175077595633352803462921676231152298194917242056889921227285446163205051107046518856773213510033476777017623445956170652292540433331322092518939887531744330143752906078434031483513681564257516292204424895625168167335820392821922997207874121238483496427316353663487144607729706760413678158452910409007358601723614496726153285934551846199261348975902176153087656615780072539858028260379499234565701588780203029061516364784288197232033744977078891448999563762332581717762363651501262165008547506622905924011431006402712055594143900564906440095986054507559590210599482149062900789058280340612669111799747253478150016163735458135054845734030310161398032271670635253612391246866868382790072675073587446621359449847326931238832136494686027343488440696413765555208074021636835187819451332386774064984001836896118083590787589709914637853491736330673537039307596466759115459960286507205149031990014834971433264377657369182983242753031045657638412376546154288451788151377224430481230845346483615230983827470329151008216639955298600337477487121992457535383706781945009030707322830255893646892977996031991544642500435245738371825809603035372581988445640962250944841753608510854949210562994794029468912934094047065054477988583296167163417573951548614669870283872139684141636882771270726746954825828632682465545766939361079337319247341447224564685439493718496647921148811653060457192296827157570167627782769958767185133929773275476813104164420912503090518543643648512699741688233446480949897558948349456247081845676554142462925481529039759120534853203639517376600820409197301889524978279934001943473941586239738747486980952905059069996619443870571769094231145147255578968124077611401984039809023657190721977074042260007908961490184545905579169133772594801297300189205407620905167130875623509558009925830877882165126366163148004461012713680947614712928199720501945463279850096828319911917948194196983061146892526916635517276700430334427163920233984803849113974892078368825206122132969723216672826070998731584081951533504673685190737731636200628209498251270002772659199806215929277024377908203795355229916791492150336080047335611005494329817873190969338888446549246739281159109138034713877706517703077991547671497078984692183438641631758046675427149878026123835671639953104360343916703619097655068728272417992386581992529808876141327132581344589173397045208883955272564736846543410275511682259581338039977909198151936232229134466315357582845433016676412389580108999413354131051233256851039565333391983199471051782492440480841410994997550893196361556954457928178443467457350335004391087206080860342070414009049615185933826276891297712196442481001654235681806233032464152026723631830434780692540333699530565704391875000068233101653742610678001426083253799554298108037334950751329975309118150216435381093334661083065808528365893891945603117194334351019930843908534050736764496382248455150629489939092074363466250809754949882817777193223627906485172254842939830086489203784516556291488913428707044824284726767369648596534278667900637606099030828819214224191727435519205777803273895548951675633315760925158351744744719010760384814940329068083127926100328438276019564935855273185759521421857149959985428707072047149481913311923667084401598638342193258312977165002866956963312651188518233915072623298696038967589172800502007929065157323457284513895536313460905049551747655404430937013519410282934947936922101439200840276164226731225105334635827450582970534112973440903803705777756648549526262064196947131172497207434454590848721575842963371314590439172865401805694623576142759381290067854904494756018338036962815116780870436895284806471081697915106879741469688892921388288338612295599338096801648930609919795980263267483268219687316578671705291179784751595957043236132176421661202477885968543106983428329952521681018516103419846752606585133062528977543748345422094570187154409013242017941318647904752705036860032002845053738616287250571859949855658031779136493793508888556866195120058772315687355892524898751721441759735877523698020711234472948019117476724376407796289788063377677875288504072357149370344644410250110089834419108762322799526527317864830491062271961414908345436625175750210689976204623510020888433799037086668292865706470399608469679097554036137638577555277693977319249043061111073748898340507940501769366484439607418693065331834350053577406594032133471964538453921053649089577802050765945937497992034865343489094383924836319418490161467794509724994164311429283235067911083909718051748355160132696718054534735990772667066817359191897444697398032864457937378406411082753420185960087782143187717053940124298566531949102728558034032549612279753287799162924704945256532336180342084652222437084060303714792338686998617685870134603651314738240932369459023759356853379678183675462863813443971442767331544667223663159736062191299360280869094761262007743263709584988333300302321535618957285536133685934750927302960720948140509849020148803324893150154903536513527324142068747537652432597742429697405754249411102158165799055583064667922175294634162602269920615050853579809851458449398755023472801896686644139975435705639954290600744208384431632264780053788453851234035295546312069299966494279320305567587539386208258786998709089502641804607897289033144661535146495047636359443278835019190055906580972112760237420320334796361673211206362447114426190954626208251104689280994441278664528327669617262153789740158738729192570639255488825158440438691843343372012390592493722584964507283379615174759550608005593890019251094788960739264872037607449809997820955299203956386186669787274937111675459980958676711432967000039277388809552324490179159487727494047295569482759654985837046720255722421810511330416552608091578250882816456983817598949139652539043234598010357542936724117912437523135206886056968744792372413866229126694433083497514436116418948246057423629871057338076285714909827974461816685244207091149285658022844295634113709682086341551893292262739771639050143883001576201203979959135800642380015744948571454651246823205115098358924095816407567735872536220963642697028411028705104574652796588422975748212920686700070812209549963072373363975940261154111865215267117003446220600383920961213065343018325724095821354132487841475225113720313117557595151647335841294329395335899382165122294344162605671490299657203405335313224496660655695801137280645017252417364534265020452484066935370256548008637944574374914745805131075154885375786363434855483046534319144202910209988878034195423772026071740958973933769749262974568825344619204350674421392257997025368011756628999087737502577544060272418534350638075806621442182972844013130532737224725463421971284346702835019339197224935794680041132225682690152690593697175973712814659466182733508026146815340824583462210090318321241145779292578436892478075544079719583107049850823087355350828336747927418338504287060593411124833526504576932470495458878539176318245562852334098655404961161518585827256984493535014105576315986044041255276251247389908104373001466650246754844121882977249758808745213803360624473560362163276902572969255206524629258538621186213912487484776065029102356336870977989500188442905135040961855540327039965266977349297523265305178215280307283104310830170546228124591168004860288300486427521754294456213510167474164667210033593194289879439029333604696200877622882680889691406441830825450432365397650303703816893472811000612761414526156426588755548902098915667915631307786966825357815885612005133860473607499550558925790100027452961344189943490576147653083325703709713375466758760571109113609066026349806717057624682016340496082402626458794691149665301841876751723355267979411183454596475907624796443192621551638898578348753942753092850569359730153280431883445319869658143518714266547453733072181088428304619003278494933747862335430846935358454568121625922188200838808112132511208836474046177811064731982801147948508026801823965159592555143682169948748955312195541811632492181319454452378647486591084553617642109192788784937464317793468899093717295822943314170713689448763344349153382996519520785085084478477357156519171346292365646857078571252187674210777860231999066826003725977866534028061864431116580710841548065687760691933902122522521249107738478784058553038842885411936055459181058759534219660497361965976035228148422780480821233237959090755881111780151887300686678868972117242878077808515355646844616172247148089311833845738302499096302519444394898608450541255204964754986705045017273337308232707253547304759583226924287130398557678822190543145118061903122566406305559369941367765398307723007888581046326156649925277667244284402243174385480685256572941117751047815010161658453441515190025810708427151625385175216692670453429462626213521046709635424235315611065834754198433485666247851055314332227354780706698779893902577690002773941231116731513740875556241752428373766501400504332564295838674071163200301889983783855018454532744558633825721036861818263864423898335245389877806071285260833333062228717275556494705734784592092547644781672754446200060131605383003652177179928793412522234593592119121785842599041758514882706302570669715929372676825139065982738965746172502314347150595909523089674451787094809436592638665325575731357502599642025062296082624172711750551789922283654289734425539996421594842765618337218874931452839654969979775914512188559960011730327695805156885351795595334850177116269392348476538476265052337101482293734830907713603289289391111686869951064814415786323160197279928409302533576589952271658412644606659768467338395352019109206998667292645954658041808113092804496254033411684051808416956652002541585895812387924835252642467274504528190856986427633688711656695409477502940867242095180193456173857258168090423951708374386910280128825083784002990472955500829528063116427858975137091751579957580455564593903333106818588042688890243989664301878988821419634973472411083891431199966758462354468571945725533833417430723183546729098466836370568005762782514819923925007976279291132876824731747087416248631196678132634321995203344689148638835829936138963965460789309969775509519258826058599777827433772131777958251011200464281534729084481806580032666611934037397364285067775192308511288851609841466393287892344788291626189774110832722434767788671505737628932067030272245960801537099208361459029068274428857103753216117301728687819944464118200168960059546230331366434115950019781324364083239828412720044032523894594978967898384032293672450352441938338762664611681823465167874096647124362654947073725433290279169117420517413336650933989436805928838229348893713332111137728862831679197698592560657985419560730898315204323261258382191459532829454448813558416396387394922100749507962447627663908743621363857777365891923961971307414161316133055351717018224670267552466343702159513131843550308654740999714832732917820598600197172741522221475065846921652122496836667681555980829382010246235941310377942562081932087217862379874345195568308943716350718544194895928030510051128984810314052690050911428790600307250845258422330524523896579424871493904738749165841700924069880579325239622292166555170969790169095281623475728122748565280280620767292011228261748103302629779109743289238142508515398147796447887900679992302033686725491717912357695010785433989792176015817289156353008401193276869936674906708246137290686097492439173791402338830243199777926703362059356223130705106711606449396771474873713820737313280768935896512813539322826865376151898768149873760882687781964123591372889316942947854008855360727319337525123912207731277327605736386946143856028917057212262954822999848896411063180447271270735179304972939988961256170242045197043079133853869305083902082848659602012910610245459570707455849058015301460636923905552087819369634466623571690483870771992571110554981928834175892710656865835849181738041906786312597083939067653418766723271042339860353025507306199450063283852124165065940420946263542907569283667639749994504127080391871689820174073576535290761845035570343896785369484867676480018985244722199907073440938200149153141920025273248152089839245497177984278286874027339645051911149652421443861427140867579035437980466850909255778964255001017975301221607955489627050873299170660259497157339554358715793117701887750430555076553227182192662959808951523397455934617643818028692990945626211513382816035826493817712079671158887441247884255012223910016975445539487655985148100233033801692408959453246555158871380500113226578286859357360215334813567464009146776490553859072553816429699997346019544207718741224191849371427451723099030447661720458410757179615848379901372011966184858528259560720006251543370429393021256924149508502850896705284548197103207940812775117300869987838410502222792600923761252997028801850179395438858088978827577457203638376028630959507599269778436320172114199992826788814980577170634540506822333766657983456630697882057040990378650449800552085611716292061742192071813031287408313284366717002789956777864171314781151473417817127828739915961913976472440278976619000144643117849906302225572017368742978490559389622652278970408326360987896343464519589217692117474027903647883278625719638104567607006855761574099327844582649752778220333305984954842008496170751614443008212488947678841665996134730018893371453939436393736938041654594297195416190749384070328435229817704815501716603684255082112705273233696663105631414498874217694207324375285446001110091625167023795756728475346709586003133495749895065108916257273436201804194326425844566973172069187411767720545471079410257634795821968168565836249789606104524876663272457238394463506180613220748574852036344880097907177963571407527947763296178427513917849399330802227336657468070100522046339339264681968000291623635119181522453430050256558729737382329580031109307999882271899598064511152285963920393811787872774253613114389131171346433323897312271832825034751496804118594477896892250602498277487169207304229155861539760587680552186124440583723015242999628680711915156072166148956327055608356093505067037811371869226382824526781145620453078967095410884221126610211448653250739619875660833263194308424129851591445174462942895242473493782309373869660264520575119739775738763019995923633447797124868431503391244064968107144509304309284818019123602680803909611540866694361313823232553627641191359002463601682505041299696812066398738441302812781873820023996704569210905690793988692958235187337027491201352102573661570341674618960941878945636773924997721045024213552518228422084841775797248153908121045293164389805867742108769887155891390946282261749733413584183120142636653661562833817897724100675021013542522830201228878761356041920586957178727245887009766213067784456899949146115191818364950677168127993004814665734153607182513158570693974796938260758710261896236351644135394057115796126801956217533249065985211502073516844618928885501997715651266361877984035824060625288040522296233339267905512156997871012632818372574910981470372728929007217019213238556909738990156575150679896397477458155146435161899395117996139326064950239211458459630103672223512271163829533617624122730231248485837588518162642146603082660131992880307032322468083771710513690785288397983040501014149733059706282441712580947861842321175258520276466151989438365018978088865938621431071549632165525310287809149841248091263694330508178639703664242683143081576079325680916180249899647852888153742428099555394695796687544125424028419043414424456627120808615597977924521163536088785952980823154856343672803296080485852443299118923909981915386883483644828392955167038786433860601082344630064650432960068274417642231208869773537005450450311305312925475992197451197443406577321338248870012503970092367668609276338695147199755026095433212899694651791232248303659229373195747655805784752170892777578186509577218345029535219962436459003973129343506806619132369417466896037928552544646895571982298534832857421086932284149690626850344222347709174779159017610369773253514390793776263830869805201738389635000313984607003526176765449321321312395737008831339171380887484943889056317194868336835969418040461379502848934586958862781044053425841612104509996879607309219227953852270824503434660941243154145296586028296106813955242508645474148737564192933668099634324102461698624937139272537311701702550634722348846686101750388977841492254396406505118467468637791851313459985693965306033423074317541865313979551562314406254820543327034928192455733494248413963941424334824429481783973684144310016767774203107565129274729117648249378622222735908289274876044701411611712436571696419044535907284380060980303527440249917052054374235327363634381136833256091155817800683838881049539260487267694784967413897828291563229807377369629446524952191263122371211834317997851682940632875775680198999669175012759173333107776028131358637692164812803778088461021869904355972219615256985575919792074217806026996047670544437027817236890733132497687959033626981438105060363434406308360391507059123827567838529299195816138524409155342530381253221345149537333626521960353752976947833156502722490603606201759436914769918132704919392546848856939885658809762475191880447654061784617880397414967209766206813087201530612040204706213977226537235680973422459866983107882318562737803944703150731850503152824727874208784588046535646055167763706156607037063484500635133688502440923775822781537930854819874132741627178628064906354644600283255821066696539562717116860047682216869980914271492163938869630269419993987541012564410022764602752890762359864420263811065533443856740887677335343328664127725658060783563052644044318846591155592240750367205710532368194786366741258211881148450223809495750255790859154524462534644971713455013172125356476104958953038849121745813581125448350064246547924015970180017091944013818178394451850261259736158699449886485491806750320489043411314331224517322056295847448685316800633564662266836353758450186041252852217960149848574708614721306834976508348584326563196414986840081263349754859118110303930553406089188943523433667889083194502450554234410133306392770656387865618421744828942435793374834866532794330732570096221204279112938747313857977849677224257107371979702262954172886772050208438987166078532793998876251572134109590514147021708813173354132430698771468006324332718642551090909612386069867185984020097995231624480757327271477015390911766763150500790905993345762384632487942502098951902611518570107177454658956172276159433935419694336804022686028960623218629518113630516673777244493586876082109891162462403036893056198101795005827935510874653316161998106627954912933413569925756765286925830577894761834620801052395265961362027131443505409628736751320653540202131223051485750752296792814467207175181604936439610582719125528334952021945229872952956151745311027983229941963282572989434777180734176850459049142703872630326431381326660554243538224195699416565964888264985931101614119909456671190879092569986377894230000357272641609725592990174026737696331090521513974382559375031201042717108823244853371073902411155795766208790379224627696929547706534205462465954613370912896928445743967766528332262588173507420533600504718882048399146033566420733041666766499293192297158722748728523114347569168531522348163734049531809516773870704365305378361129510279572547285537809136753141665308310884439493549576479997454673104547638503986489816502420328669037668277005308223019256219529202234397540266912067759771777978249130358563978773638318404033275107083841004576220899149783966790069801452756101886766946875322733466604354674789630359762047468251480273169781529386956906588600926441080312825369644392633439502662997919772792411995883511681581460709712473587821651840568963468046942338253935906873838059582639481333709622750879930853009897072689582134176046637676313000425674659716012526540038895460099579403740607854269771655330784738119109008619929183538074186481998154418708482563137373606962161666674275389745644928780762580374628401113340583038872814703685942923733314338216723460579897157103097955556836361527057126943055220972276399180170350655699986564734550155941034470461646138929509687445394850062634449996419223620537732307281529038217344389950164943011418397561316848056237552692640652524251898826917313706275421491442601476740388860400214212474906829597424660252708699555996732076727246144558042469371516357011288687822064145045623414158406232609073989818161120822983823512447241248968605511946155196905670641923243521007706195726571733136273701130383014899280753904254717530823637468626247289922269181585982722399620902818692958388255517441390381256806066785051169472911426687745789075982001917371995064975023586324158105624159083970119682824711342350729517885974333255312190262835768135911330016382546862277232994512890481159387518401527997511635404400517208196871055903397585231875886619174287947445137633263277496518767920608946816007207375143522556737167660491015505171379917994679254070952777365197526987712860865824242165560032080529008172451081634070045528545354074775575597664073465310905050174524784482994815497250385407788692588832127478753992966708044645233504453365526642598069812302723835031331235968822476460927238054733234147983046918524466723032743174079113742075064412464997953674511530446741065837010557349897821412685013606131771233707397733424812427853982402270245595846915983685116192182533724261805006997437798914882985146174060309015499716225747922616005169349369661269949221841383335550156503540660300424916497654747216454712856110927707875722080003106018794422377275256906918622275887643397487828977019746209556980337205622316988986956041686291892190300962093170575895031064829831372508635591472031999298024644222628411156490753337342750286295774059157422869950531683627211551861109595268770094384471246724959199152210373106212051756342284235407466496088023159836319734988253648711041034562584109783414217473071129282846105526341909013411332450049790684204742277233568762496681326921699285181048051586441556445201093877185563103795344311572147370684922888456734973140435507567166690544306723476980314306168154476059492092165890648587590804132795061898071065715868876406980149786574425565109691533187756649583189867685182692520167767999088259896462557588388649725628752894167742326194874866167175045573770550836366403321014217181376781733699750715083657630286688142049158569945982844807390767701363850131460186028739349928688662447199003830622774964946187396430702164188502684074280392338320205246793423320349829098993029657287515666752174668236506098740580775500798823143858614878118688946942997362427775301515867619611153115196232114669427466752157097292832456836616302880009929157831406749175011675695197683303552430041967401479262712612496327712261492752575079638658321430758313865388240525744304479007370562699959257461528801254216894376143842610008661701502929310791899045698003520878951116416126977786810476967022243730482751857724990676247843306156112274977083826899099546427302257072763555736382917022382246232565443362663240651999614028643366220635814316914640375910150870478682863256717092016109326287410978900409780039567574740329861158191716202847937840187232110036125864352939058816853026632484890869175446487176969248755954281305273772287784186670982063627006377764866390489250490553292353639272205766178003223927124731797805016222574075186800386263468531180355516118180057149645251161582135261178531357282179298652350847256406437743814113666029059090928655437765214581117116692658764747353876962967643290496710095817587011433602532397772074847895278768015090157033988481270862101425951971932173355193482922520695995015324584110518123884644927269705063064899947142058211503607927659522465272003209800249643848669763377681647818831284723026072192785485765853372609394857543514681438585812453112741313448025114946513912521771800952435614931568659539397320601588365658113322733380956377230665525385229492826793507653419732730018756731141639546185533909673190365914774125424842852645085313275561806143757434745508463974210771844687816085349126256371623227613405164859182344456623287773780120714860720847106142600632778925244623501984529614852357302071409780240643157623289441171484098922809790890021449279144552439341214077351124023217508079925376598292035917287945398070955920423849071323581794692137691985296577032336507583701107027482788795881417549664515635432431096797915417698318166322693182508745219095104586639059798568608376919396821362653155139833058895281226946068443572062932733233461216934621477245772376990853789428190577952562453042433119054964379320480573043077235424807843712960349815619681916753087938395109388473484663571621886031067112418121078950160016912732762438795404267625020331846211319233380874353623854788695772174031897712528904260424538533885462759501339056764632144404589996960362906392177288488353831581671578480510515913281468282016233333004231673709842664455764052272399388483961841696548995508118293096189941311890250350106601673317522125031621178263849756077267838968059589081643322158783643728517291052188438309914365877547103662941889333837695796655280029782557189900946702447539241404490691048045805753930509746075152057293022159089065389427250859131067595568546584011630703052088506523154402380064093611181959766642604644682881031590784359491060655263697791008818430460728961180178712502788929535411538929220083228934788812744039646458392844117710816940181761233878938549421456413390507741113739641906929495636827684342617161287156703296666602998732994449734949134359095161908701137519773643759158823570181096531779347726388664300476948940114955555780552620704225984248547833897749117251414135858512758096472061027395951836335505989507586034496872819237996627522039406536632423705052806090031116712666368318716401559577970420137970804342179471157377827359693392540075160573211348709536637688473678841501024720423823237705736634012568836890245394810448356245357543606068272634850465768189369736600850906330228680117518337635409854190233178449017193991900433820657508472766915272378400575411017501585230318591126637403848390051744263192919394664498228336614925250733014617291883817138432804969041305388464547432011528683703747223218362795363332988922783200313393178761779953387760639357651047954403624933808783147878682279187021736960737450229605625636197727622613356352214158554718631657328310785288372822736727837284854864395311878493073692586445524605136733911423156477579287043228122821430959802340549062082301045133141995055220224381159901397213304056686167786543877678694612586320334969320037621152871459667897399762177130116101718859165957257315242343733178042496441883376710087644066034482425322766442109527428810114753192590725044484794230675350113543983143434669640039571970054989084598554789575501666858970003555639667462463125354711473755400140289383954430942410588515120529493013050576222740695375609559739135624553391335217155848722972288017420021132668293163774121548140716781101060817863640792161634835235700460624232077831155924676368139464492220879071220271376688508371961529502301422204838685050677409673225478048178484159250771337337592790073385399988234567053657170592773271906303604167953849204933034084227647254405853600706219117300621086924029617828479345799046675912822542739596316860932337971098645994625105789217472703955375884121494498178750428104758067204700222706568979692258594583117368069230668166181224123428575876207816099993746638324375168308790300387648220759809330834777626338090779333155776996379976688440457027010640976815189111959905394187005432109916506704890773912187127156240680335763970102673220175817711573710926413589288184418839827554047699429621581542951344395913522976505563609535512136529027092028796450006721597403016955473411481970089275554484101515514804671883554256951059406848523040818421506723839043732476812202207932820352360297307380273257221702750925566711013841410827399027660112288405718683200736187947982366446682724526596908111414665055066517489902866381392965698480379038966552092415413657893837194963867220456372929862651039810667401523511320597963489022692780997273759236878511214334979498124507713029222311165183394428166431248541647385013895383530315564888399106581077344107377465143026411229853348008448088465416130336329900072538622935644535660179077143510712204977793526235747420021913307934442704154377792752417810498539058726467831550442855805652562172253872756204447670741878518792733875790005755293822321825571363124073772634966106640393958055706731854575096101698043003101522622479139834571266373566888678312497340706889290037680328006038254993549227106011689045450972476456981352809230244992042338641164581765051197384753091561589104710405346123408918629799776252082345788254573508320670043479173203952208521405076405238291323294821291948722919494303720965893988803215098589335949775228251101583781698142055532038633847352025421805126906487489448866743573393737943067774827556333458835719433082072941922852359305305596090158879462116554680795695685297399162616404692676494703643295684239551976112930750205215570595317957905065963614024131596527843298749822507660530950168029771694370667978936557763322941738738695754891667756329216131397092868112786658725193049775312502148327247052610344217958040477207918581678273953931222375943481152245374182334537021962021043251070293871090910714005099560284995429674684107061226477623555121174847168098352071380637807079745965837055366467459169352729129435077910512793309824042099205589594190285163346305431846281240894530161226427484604951622961666492233298939220790110831013551944032745455034088541348054719060615149566755379539573478224006159813871126083248826507356733003814504287429408919904741312384063937191923976449491891838140660656078246647500564480611047717348648140846397271885679429527669879086087976966098144393760997724710262014903440121023466601528513342024776541306943051605149460042257215892705152178848548033600243067872875181608616535852890631116990647522985967862265177605813107125948525279001616289696496094303239366223815162276653823198071799952650986206047092065056112254719300876439739330971812242565745342902863218247647608056860774153361364145533601567673447178594927845159091986724625379631475808139137704286253490293947631631706068947550917174986678123730092974103300869927305961426670784248796872910135846093617915539869645858702679063727299255236394575218195797663039304306928942186534044393398809253710233903074214297546442379428746246764155346095981691186346372764252724497764376142914554624133198228057167437700546493902799614864063026523664445179287375018633713469939695357170908865003901538690337416382451737866888241592193868089805296264962806443628912439533392183933704810944688825820078424370229992243845571488930083429234762466516992046027798329672720601864913619457779406665676962165780939715560367840313425954389642165064886775304571753019665024052808455107971300238017931667236420650342369821942056714377779334183147682269475952195236432745729174694882043255360930183316936273016790715608110015668662587687331794835426871770683366723473228672916662287007665512625136910172134036767076885223198384400389373379391285015129495930875227551526623242022900015779770389609912816689932311086026450850892186544642068263493619283135459076263369335693946175564173168902562872345869980053103752320548950886311160908755208899510870330476138789700480905972473476616515616913044337878219204543963759362555724124026002055601308942697491231704412129044293534014985173741048744294352959825609731403535558674205779671218650451109577164258357680214923675958695772080663597803066531028433533100593694501554182488581666355974912304191137052780755640865400002341564935759643849115676115638294381254304658600425436657380838555677512221258948302722665260456772641951753160737448893125227343600437650768028949060318300377388140198691181777875718911708527141424539041292686747626590053791564338213331691978013751835538110185185775780163511081737105927631319652805198856196509024523774463021888855564642859726464968489561654583300702796264818577660672550680670328792202958103269699369709747454375919907769851927775949304748647355453779641382785402078172117996776454899203240328045291672432442809124402972154318462250822415634486904377937656717609440468116321823224994353283366818871225804541373862022592557295101577697582300908554336169182731534212401722910606755641455423437875241231609237501412557441432994622629458500570461684899158612400365852608107049322669758664916175333411757893654087518455936994037842801556326932679476039133786493394083421161996817203839510620118505716956655226326985612423455143990180924940784787232157494625714681467235344400185279101640100765518772484115124434560892434737945888448233537192159098958774054068509321661682915538960040214447527087525236397068692026995533574790133984737677532933980495625333333181735927137212924763804717383005332245784210161324946932125340479039530658718637016608167867422418741534080286727164729270547023863019308795548660823463398263768879334383731057518354471782788146117345428379216310472476569489337315339701633525168203755305025643440179505866990076267944982265914094930972092642886460894331154920885752009334645761667278665558916148202489888549836471860785125572864717369509156279533456717891859380420764693740710140942624238825641789466577458469945826963564541090137472596551262989848126963402329748301918918140601337501993079029902386036156677228910254910752899723815704784349348713748119409629449769021905551985776562737265714000040580785506530938180423413936047824202867619059319905543688079944531116565681187146329720921563927107127115922128212833247235034532852126991226403249853939198567055456989307005922502691024963951253600357649396545147327520930379128252715417278199611538877506405651784128916036528401495140784134920742649185641293450247973859030625974305110281639701958172734151835258516933484477599321218315724810137487467812770541819227121259349529764181087112700585372970914299620740671174362711570020415317213410671971123689306149929911795438295283476519301396744489824360116145808791011011116446682635296537700622730620120199217121720977382909421970977657422702088226731605387291396271491382916892147592633252618045866935097577279051988023425811769338145848451082493048890561024352231109316963847777487850717465024427099040912859321260218087510746309991416444235697849709150302362238943582457365127561934894389641519570197274857793380395803406217106069131067043101105264340531345124290167492882635087331144194038463151521516222956559891732122206916797511264945681781635641294565291512064726276392957047923268925595776254663518163574629804305313274726558561887881737364219532876657486447750743331940573512235626462529933358805942489300986793546982825910461344397510841983441031165129591107006703634155392988501444979183588502874993167019086199636497782060737230566715837268610491113532384537549290744078519989498920214362353031027529084125288793018938916370754937204987654516875190704706753889642778197739199150667606314205544883885304826856553474957036259955891697219454819375260452277118374473947434494405188889991944261732777966199329241648954624099666968422560508947179548644030867886525527576947388803064009136345178881242035916770159768653400765283382316009794303589824614304946359436209509199779385571179766979977475511848818219807551149557539315478947098462194949485965827549479762304837534462747717935633179778382988780017684351278956266636817338637163130770371312918640302927926311443764905012472994918194595487809884166361813850801080427861203552578580840745348664674195177808064970058149967583713895318882748551216233682203597822644885191136444062308245630830036857214086435190518450295949063857710722941061977004714720096516260115520701639829945169770183310409554565170725051188418225345632219663655744572720233757412336202072016391805427978086798492282644725301134277285043017511157725270542495099567392751328138370148194711869743286569503746053904365066383205261475383117662560933283505489297526702071859830057641197417886142406480734444544232814948506666415807833997499740541180726897004226994758999775711724117782030894088906862293621709459675095262415670705447430618627241532554267284234419899585099298119098418309398244707058613888532803843394252464105073241182016031706482628607056644206338517182706881921984559376542459148081181092462042436077465498016461855364150554475676726207533046429304464107060834143512794390829832899603696286155055445051879463407019623246672557546575511125774337260128189554936761709787179627559545327265308224161193855538318871839345117400646313992923289813093419390653401008863652745507840022010148515441276186489638285968407297500158942810181258301114322792454280213041646511097827410887685008290048979329389669711033663121939402135632592923776116466284040940897423829611693595987801937020596608889350404934198343816690320910186985389762134711234798753445037860529956437653663750708584233793612298726284173914936896226652545807652680212536527657612497738819341634286853527186247432801230111628009735381452660173309431801960579411052504821320653661972943563865254772263262816545519506900790209510898604087933442244337436347593801025940208180834361533411195638102200827820005125051346140460702531849222546029909513048955862622599737800560977201077005205991724453268432057453108706113913213132955108272065114497675268937683363265645215763156383319015705093006943517784302874305642219658391299350604542675251341377963901861296296988906808880291335696666913632595577035464920030081443004650246940889486755384912850648970983206399393035959307097637930848495213949433994869771742098736823219445922780819419333962680935507904053523913219787508316923790928313859804993889129175275608201530567062845541938623938604298448981137865210799001337139344817899771188060171509052768639509948002582035778631952886629045339150760722857630210756330774370296914497357800874855370437350853319265024220348090964059536400035953110240430553196512282458888581968611078579270770446977666980600439134680895695832652798224151133467808422330095027983544233019531595117418338437474363043142187384422488445671018716660598179035786977947049682392997042435444138696457412651710158516821492135304704002798854301147395018905599342952866315674392807118838856665062366578898070287388271763266837239130939034784395189412646744162641099930091411628352641728613508702663352219036106053747224353832373989348995815000957065464714952996487406072822674966091683494812739802098065501133825636849833299223625946558004320409885596447821960500026007783919908117107608576571988221891833976864196331705106993064083357452758869701413020321957535681100456751804345587766622825398613021984415028789522284006968140410634927287983642917403543675016548963096944424796058848726193939652063887623977404001525350618233699127249635136993961142646695140657376955847006073232767296940943113707964481410082000455221812010737887048553065655069707835977418689871873243384576527461540651147451121728982673812809072747721828443471989119720921610220249234000909267865590884047133525500605684622918453025318223786117520531826002908663932003730232242007488429407343984697266047694519886303600032651520777596067457165983307513758353656187353043312528705829929419709648709785332603368364934984511061603850818252360295556553579464261290894888859648486691665325537938983955290411344901959563818759709270459696907186275617354715496181144664949182639513563707098334590659608370290260870784544809870855009889523192639510402860395214559059109102684954298394705838139246659148253792034046347260773438912616799297221160508940058908527919709652352712869033842627223416621138013955897210163075182061772467553710416515452292655870680352018612775281595356944414759378810897714764284913354604089501590889788037332405743127725019704675523607518518904887175105453916151554602846993034593997393883826810881632164673520879918127379474398409812824208178368899483450333528958767796588953949950897851535502947050289360929584094251471480889976806498425406033363820664370653642094465669947858789546745400982568947915657377748472579010069630939683675701203520258393428287517641723296336329097923835386897326136964634980020727027108857923893589291265757640459210134300888324609377794185570298913007134530725574935012182062142623029067149176914008513539712541892774044860800466456088856109547982648044145771120388021491349710310434018778909099649703779982280123601890120807338559565353092605512589338456880540675231314932144300638426360046524573192643287553476859428262177009444890128786304733797038718260140866118770310456906873406124540495621529106358632482968552591058007575027059506238514291274456128206158620307996003106693551930188696556644358549180273679845841465813688647262935497593751817751362918502650662855842159266540788462341251150285791907533839618335269562798455166148331014434109122963050295597633048900130225565533178183873013314701919348342174004122814211053327435803638984129689939828107511187234754614462015917788290465738733037227040462807445359525906885591745573899906333655007567856652539163158866435430185694735436668068464727013044189339655604196885947005394032075866093135480693683394810807923375833578298003259048186621897612503569193338092347826929533476307707496834661042472831098977744235602974546151795168705721199323091184034873010574691124612402579820660825682501898520501819344051096223747894543640090097746421059037294478454063382575941614722554184244808754011970244364460962112679333368787524265563974588981758355084378214601376869142863455979638599420084129650249201450778982922500988721366803609324887135859914070843117350759014294876992733208880838409205610416371628954450165667213059783223507824003007076358829526104253562206323164236040024831913211517656600706098814469294985713426189052766103822452923740991921288439633117882953489095849993606933442859214890603587227312781897450728468573080078198097390886107188873599217105462342530163663950640561426298219248038476290512574695147705808633869894292124303339826823761952657561646179065155205572554639657459435677118776490265525424215085013259213173629761612834392274525547822638804290241557101560619228160031021669120860482438513924709373293363537754470373711773012623319652957108016722214789643718117800838439435633733846530808934894440784986378103538376238039052778730546074573078725696129003872715081604546025747430942314101364370176786509349140451388163625665007778055484303077858282904317848854086399737478176173461793773457622579938449548104063822128183999153921393588565366177483297658915126372358229460507402261126934991478624158393372289070699952738162908366959978081537765406939643574539745534062198930491152597107691036716415621956163787137002598964217144903159592544436108554254765245384564583437498588064730535429472827063397481279752313166753440391217707033693083840720253329202168304544185424750218806501422816782028296901113642195345994377433864451874352512066292358404817935061610912270892907236030870960295400896861734457196873290172662008115404929888887432268423356152785691392418398538171548938581725875513567281310531641859884782875859785190713613777435899732128443636914561465315517389895137650625805426105897275057656568513712195748342318584832544124130027398393019595237144285575682404193318559599823605592198878595506548285402448686434629453721303590142554068672883572230614788754571595754944017267436191589728663905777642058480032146270491121749345420947100387438050755452313523140561541596419557774835374892068571416407278181501802683550207268278614013305759184556924523757763706369597071019494411415926139965480060204885044371616708628540455806872929976620718077345872069689614555935444924934355049268641485976714009966219620856155092688347570827955880882985465553299153537637361212921078267371927133355417977978570134637099435451095168263656846591700388773072414873553583496406870007144459174175753209911288805973787882990599506818208791074122845317224749303497359284924637731965348926289888712431278125458077621180223686657477769397955608051182179170261430943736424694667057273256805211208834936923474927527274602066060529560387383147125302156934384900733493218162846089283708042427178871935109578524206977792195553977555257251713742895556421429067317155545271419819799502932578931725849614000464289055995478079549322010696973613397915792004955616635810825647007002322895012079685988848328414306063638039000121617115443771900352893060113794141880413306507591813198130351455206795928524764833030474071786025754143241492811503476627845507830533588543346027859157310320418959055113912798898868935049788835978795201911453538725322572562865570409666790414324248701991650636570477820406172649188994741288299615969186496398642125419725843257985102837606373683333476861353293798197360104631106974214096347802512754248583729201799195867836657113923572533174983609789035946800671632302781570853285266681728642401651170679784864419265363544647041766324386541000247487310545526303061690555394155534272844083044614893828523887157050854892592577444117006057319845401751006235894170197721298953611522490922422527070461071239941335574441860303996912103857185406718997635875727164232266571603635115742124102169722755372247960058333504707816872555655109458699284703112231455755040704447367111135001782838922630455778495256303787067323160400498120942242762730090376542397699037468068430522969142713168936092115179101457956461799738104051354560389105432873430470803093006998030243403296852941580483038192340989995515907105187831608387444279962320694459223118592074342982531486726450747396865049267340732440968577655040572959934074939064762495224636232540050284695176487438556900974918679802586620697877293587464533728240601348315934988730085352675972000317820590045348186548304182391215910670662717335714508939732676763184232304790969736571989476225103751749746771787495717893576474743440378210539544448855841602926318117015747502720314999946622037456070780795049130887735261268719126327428814296538783249420688505198429910984991225233044229123821203663466228213258454825765578503067876297901609211226865607044173410467232321726991517562258092077809853348878278165863278787139451980103982490152278344804108778388230036304791122308019462126917444075567984308381431509937697118277883891236284996486045874262057271073208556498513073935115579375022496247604157740290631972939836934577677693030596000767719143308871681263777659438192686863830016263563028642421949828927525214295089603305175384431572514944002250347135097675361568990148619072506782234774113694549936849692140095637187484098621618185947555635956335698105325468632883887747462780130673125365946554718978873886612155919909403228796873798045256704520619547549524170285762134770149478142093346006057866031286851763979827145874658534205103049608314725005857048075655749635487636560932620405682875745760017313894239486215536968135503935488255668115341746976047698681366793150446799985053863686425361374696502716770673288080389895805180028172496146768043894687751130982064036450886739255815845944421987719468244887189905464893797017197913578757992965083202786326846764469230812655631932826047702393655065291625114394401841232353183818229443741811369230866936229871166891918925866541083410433467133217659722719964905000447041426953059523983480104270076450529173125793128374367429118630585885022109034820729322094392379986988721164277044016481409344061746624287697614835450838231906256386042241080026674946997851645589537915703566077038608824127297064519403338076178996839010317835867671480046292128324013577189699262530881117932236779557091203827871177285428495911226715359600152538559772031308990206630009091170691681580688172531076552695292911355947320986608632491743586909227852009129857637123445329593499856717689913098304640204395363125808600223546680026121512160192403264584639048891095825228686085210738878999766305506686618072078118564391575483557205790746988476854532177980858890655509134178609469663202826892330006356866338104535255968293403128537026530447396321196469700633192698890884128228376332557992052918560920826402563358768074228600765847861993081133529727305345288052923201177157149531275009716023704002850114368954887855218053245041671535908387601289778869862986080356799086232539267968491405713076614703901736262379005460593572620971799704791688331228460137021781810447018669066106253074956575349957799909172666201308832168214060807993860749505548399416750650322488375082745907819973813033877929264265333826602518602139216520638652738347234829952563701601441547528955767087030477511192909193038120260721350036290082235833531929754171708815701044431620836910930083588587820269690788423620964629189125838185547231906164637007453570292327054038288620707307372804128938140298702075847427043223464249067741949055077150416693942842485810519729959077845554383551220902046271430167879199720262767816683605168454052611627935103965220959435899383079730717290126213814775603788793058288587725574607439373146807263821116416701275095456687926534115290206348906769598845768649655632247981261129858465656607153354957876080583084921782471688490168393444480701484316011830794857490409802813380972570775045463141401152481064852788767714101759750535573630690247172687654805783780533206390374459068069472677527392479916284840528541428069507474775712093441808959185993914262490421264022430473077748688661475073906412158836880429064762200682499054410569079734505638610464298944586085815090159098831209675464690047176224381227165036400180218803575483557470677295401705915591545066146192572788437335691401175003050055197387281895756388817889509808214686052598134401226653998107151743619830096173950028480492267426995387307785709394107316471744653649346353654920530743851447234237497174015272512561828549452127176281879909929002865153272376007782907783015717752895991840678851222818962074414663704584547549439481212724693743643100212228399221482817968385463409871126262698899053631387456841248148547685376822394977869112208466063709413749011665020563643518147714335601689733771619051042466572170886976346545381265030259253884252981820145534562178228031906221726457022143020336883966920292700389722184759990427251686213460952617731836132219399076329699563120290055394123814825914257759559564224789940751559197067892730029270640370523737188736985662720851980006278610302173875409555359898354120671042919049414470920448220982526039601825907843820623397281467481467682563044451280513743324838705125409177687710247652612832032421951981869449304543013842194232025252364484414690291191288268008622378312238851962672070347682109107153532998339690344796820507820932730583788770087908852387856101429967508064651517521286703773430378479401634196309879538161160082545330438918844299063269904802061897481219042249557438424475476849477853731791082507959165573876199304435116195960432447631112696562356309782458871051760460071535431444471759201368778103088741363393040417047454104437232219232290519338707200726836998230967301667412407320407882327331238025026802007613082640819943215764681203759783784943361435640493812845951214404537411821094641888457443667455240354371545473345131152497390797040751987429006526560381566610185104261492573578339443034626219511751927335904736799480635284276368971871141728855850372908387557102096965641712284639248722018534545326909475842278750742575437114640903637482639825758664214178459682900780797390557373395252378519258480415533090025662775323462787811665545851459933301255840749050805135470715928389171305830787672595985766116239542650901791406781516101170362580211439710422104572670166168826143475264228188378784009449375926558866800867919602646964756087823528327227511690135243897296475262798200081272272253948622052131357179990590910675129098510728234975515188536608715648144931495384202603042713555769885616705067351048487624507042399462114253453006582527725547713513653404821321793637351446663811310229063952709558756905620361751633732150880947713682838346730434088183836425879927335578535443148630117208272922974199844616621557115440231943132730230800600289523954267582026280788445674305234250095052930824568832015859115788409275543886254367031046373238361926180072067780672281905735460800558932198840967108588200831927300275046988472785157966613869741195058920613314282672073384547284368165376425102331384091366956447621705422076506075352901228663709334137437878680399206322515345659656850117589515597491929862786362853568522836718583929162977360334951450149953399669540858314840934359929826863763293940519070555967931154493582699537550008261120092597739830623974698386360372648794791909411703595272454611220111810901857551039465712786862119041125346260934548007587894094889238121359932604430014309116702641716799980539926917772927725338619353801358037692333476011203975533142001554384018426392541127341303981234203719936110516293017346938362088830786405506647072398640194576376943637045078733993295846143829603281055772640220553818572793873734164046703379793453015704867264445179011901517725006228250698040604882963056513031131672174774529786609760850361169134690221402590903920347930069185470533149472055168321953756184470086964162147472673807625524331316818243417168498110341542537201264817967766423155625030843947255356635751531474099505913565601965460853172213661845565620226959167652529700865158741803656396213441727274285585311706342925354008686205954799036771245887703448272996932525918155896075502272627287243340144669076457526491348601613949819008889910037148036167731078718634561475498839556574475805236642555132326422165068352274012652184382700858279778821625537451315192079408650651166350166956335608840429039591789255097363165498031555599025646556096552058655147619683334417119148353919303865978693709596487381861567830150292046068164873784346175192232619887377027865701348695375801281359839742624808102040418202259271856206462574502207215318046040429618998618877100797178892410074237553500271388466346551786752510721872470206136617715082281100033380344652278582751524993976615370430991437170270946180025749510101355581062852723018642400600248758981162149630113672577555759909395056172492154444022983964568789761202501995768575882894509642820048399714331106589306949505519321825785321059763107002607612878367451418908604265574639389495322916504232878070360933362962832445359076657429360712711862364953317341208794387898494235290475614709088024967745992853333280275435479316462803737399411541149687328777236497400087561888131771923214230400443898929082345248987100112336464083463470549152020317989358571808822745341611385268983710300424210257347343790954176525267548921547294024680562655729383805200575752440756940678656035431866308556125519453369977450829792002705542426570246538206712176509959096328904277741838365667723764805619947605377546048291165309245942318221299273900673761255313172482371347647117597545487695533610549370943552542601767725218069049566931034863908048413239390152824907999115583830779527562990082682940879866400836326419393333143199557090606873095799632332476160118170741594043391982110365913844312763196919100260574648010599780632188288574167728136541546152767894874456633107268196130851755176640387731783322746323350730387637713325797700357732749805569335895417543118756859704365749315790609041889630998388535806181623726302109752602323521788002210323155696706227838350414169630198977244058641037412067681846820082838349877617788783886015812972923227578355283599481433338748549919849167657386211611456937769344002266354980978447732445579365003125847499110368915234511645091357899896906870617107773806838869792551635967661974454232186816566004298990438060032944458008686597748974070925664331466669107228685440651891549570371476321589234311569445213132448578975348664857384291486872674183158363020283216042305003362652980206297350099591362939140048286472450769381463845547719842541888610632450823064869763347657835571035500125041090846634586312066202663429971217772221231085422834667245884203766418010190400827776741444951257177459564543492637509736209785526825917939207434116030902046178585270337829877900755385761200478849538932225863398736618314613238575009684126229361103840899581817223558103650336382561862935152094689794501428414663756440039080834072228617237407510198180220264385019837633702819942974398013627734688049397789903949927544181978999670150882699132903454281631058785616985189770090741397336415216094762305178854075296220693380751782316105003882863396513413280535559017019353091493900578220581060137348228989271781863496770077999646751962237730699768843053790925298343744230447349266903770333611835337204143739850276523824644023138009131738703292226962191913889506310187477798430016331006752807245238855727690587288983499577312963169810820598943618239158183104240587617211209544176291023572238087583369501705402447398970939345480729016500500780405232220820821263079450172388680668704272472768863829732802211758295652295050178194152080396753806781236818001500871308539733422387969471734324177275005586068399751398262394083025617636370690446650351064964875187393842979982432251857259895443710772416657085597002754617802874506193777833678755841337153379512791349211287763905643479644429024063420954164425307828108269595055344862555944778456559265958865600019522771570454834628547347021982729729784404930840879294226852803325834104334305611430849130344366936698032624762900023052526453711391317197720875785383211033418333457474922361849301962816878041757651781328125641278778791328432804812852935292403618329574341058549566408851035350688909153466210946528572193774679088911428696384579765415555160001940787211328201190659447301474164583828098914198466422886562430173490890093488595626104300593353700657693788817766305805568484987899708907753767374569639929123751961023491495432659604898831663854874526057042838899025756400239634736525373958096301228256710140885945219800391445753282316741155034047976515871190501159129550820185463364891638006730406067515537510373360627493238614604156661963126694465246924127043286434556280678250218643884680698730639685472854068417854990433222299743287603681357833236851719257188571282730077234616981800424451255101119273734687665859942512873527989050392299059142746539202328705202334660157626194484639248102006254679450386842384416266388543565898983546611752473326383433963124304961540738973689270803302999206784240221127254630556906719035980229061843044956807607589147383568274611796495364555931729959202376028103953760741132762022636901908780816794351034791240935193792408069535927877401736924264467746762910371350245001129103917234003249959496573225484269022908001587133629389343251488404585207361450262272008302942976502083195327213738721052008520924823371117780789681401528678309113415844832821672429651170273678793351109431023278465323276903886331891061879349849613337003515232662809973827374052928981224927844682785680637182150829788435597720768801853488524737293746565989068050114725533865190620570443643566967121239134673451900336949129328626496584131767869747132756033141565548524343764189872101665168019544870749353260818955677209383587164962415864927179215664741695402751984560972274074598116771807753274387736492567492788151850766172921297906423282270277926237879257245275857506267361212952165472008297814067035022518539402289844855241891166328334232764838396989045396246722119493255330314753217439301770344754833386382652689124325675583283123999965738715993439056369028864017594030653010082224851058246882370080736320930426949212822326229146888897450331989596262415563657888374152123913916158257861394825547655420118047559808299069838933850950496309701605137873044111516721783251744864081408139967912538021504206119952250037094869784742146701496063105515365808406492702311322671140780636832043980970073959762329965371468324098775308614464703633507768087802300848661790115449212055015306720243090586219303686947817162265968936655468265160976465948625833823681855008622320627471276037896767714638766003550299486936395524309099254715911413011074491379980576167102246958316419307863865163592291783136587045203318691870964217899720946540036469980280522743045463049688818282511693236958912429874300426393655792074959074883438160633684582774688408169971429179327833444421944846535499914436261533408591871578629723846967783779130434317910258845894691606842638156656333584878117707968323225321152781596337772997521026490527733057518686958393592295749725589356710449820610261132201805638263111970084930856631602705473564717050387006171584240891455916800457478735256809650283226724068478892243200506981065135837035598980030915135818198674516154956828383076535326286953656507202734248223052227175492360799472171415998669548961217946941817492437724435607596195524849090920880814484549760870404749604645992513179956291800122166349098428564648079785009606752822908523169180973002169040958143981400632301007170439901359514587460984829718689331962850973422698887480801092817253169276208459059462076721454115032760088068772840258794585566249001931166201210849975560169668807848454522244406146804754130554676174571323925503884733672180746540452121398914519487404250558875037507038480854332817268273337698783016576853196475141592636257498899370603841181241554936891286191134217783965155081705279455043292862520363891788186038433068101423004614138624593172732205774842098206042428620158111436550401305928838714029142865144772849727190928821760349832743484785733085589985905405395335148086848408577798720038607599609591874723849320691843238321853726318701743475202930479729594572478059149486790595094330267803866424318420017412485333637552157140675823062182577640256085506344454650202267759467025539110645224443853277667687124793047778297655044043379860257451594511681797847983151479960572484410164552931918376807509783325371969191092198947726135378626501814433497398481217080243887535790253391114113822414008420105259745195227586444636973039999434134769665142860786128993944000059181246776003071991003741059947164144290329623875584930715150183561030355667043035224383633180281946866187258047645829298123564264149349319231855903187892498401903175706271457738624944257010741597847097937202560424153099702141435854929646329721447698019928849460540785127379415765702504731746704680857877757379696083160327216574908763448727118335909891781274872913368612934345552735757314996322706192836180064785258492777288807172047771948091748129778571877886249114679264875536218157484290884380987045841458259793590163413653231698641524962447351508879042729811901142164229057313867837529819201637965794615468939610879367888086986875688394505183154454810071981363408824792452366025521240243568673313014338550173145932605878264817059771955193449633178580670839043819943303563384368342558879452430226114514672461238157919876291634359040486079916387363206464187212017167252814878234798355789218818750843817217300580822093216071949413901690161045922868402852987558085457135695538099294112883198771073505219178141547230028712887388883622455124312350181699904298419254351205604483423971148343593675336252736526242448949912832941901817686478347184550022062542409501306660485691018738380612774063764206283600872552381281826500709054976474155095904719135050411667448420895602967821684858469837698951364169174162540845862878607163503853789047006160815627065290687351640144053711323063151493349432943027626454711841761673712472317014011937902299517495469846292195782333749205300488175574591819569000462515115158215960573415809265813160526771985984982291734404950441942257073855908123313670283415902772398732593857763501398626418325654056455278461123555870950524779191366010347978939219101432791432076446506025764932907999056759507076498460541141839076122009326180292368475157724143581856590605441937736161451881774724425798371035179261326427142902412494195018908761135922629558052450800284263543267277883753932441842878388696889945160869477256055472024517965897365794482241694597052019576126567098629537338342239396700141831175101501772848932802082289734076139058215528360078878735819303884886477464836167945444975284063541139977048075743977973625558344499294070416282997402534760736641474264668267101522532933649006918869008947596305251645134045000582778281327227362633396137310247044668605951852609837646287232724134538956511030070988298780506877711159763947238423064526204936356950304743929236540764734782376487486449955527801807704852801269407451523874988081106172090105044178857012015054612966534721561212055205798389368037116014731273634110549029371664216951302918867896811058538025072183088966997386575222524461682472428992712978026038876990367719676225282611623798260791201807715727497705304077147156709393302237479101190834579788958584196116587794933806574147732610482111621502091666008134211861440718616460954707115126475850884891099225026167778575317129876493457200735466208307502108063989559207058385442028731467240179826899351285497603767548353677664726534124494145899246000668710719352198721452958631937073969960106861333710497663558547973906877792361285785609808392046006448603725902715085216975735056227027822468431444401827732530572654544101619239241803178699895857806441362588955895887286018775397141853992671076942235040821633991820075972376379677442520593160429960036844697891505981274672785691814704158637021428562647760879339379833399909447157501136484781823018269512291901661577938556908084545688723085525694309574634202194448148454227358937500352829998919786501569884815975868954800558911426426024307220202605045047261905520325284946221683617580048080817275073337525597022231175108442884601742250902705688111674967470824847457409096583481304956828945649184508022040523065258396063704184690606410566309216675018499858657231663863194032499972125374283911537971732227176859164472909878017319741254950718875189539963825779898595037151082290668723866163015293048565816661959076468637546813868614565135031944784996561933128516800578662606790673377452177340964866819127838557656455809374807849767486499740683817472568333838548678819684339514545053278758945763473933265382465840505248014310670552823472098461395672241070356084564057905001024630908646620034402906522895698058084783126423362288282041697849192243348025977869351706554425780443392765167412737940549890174450824918154215450660216191881546737880145784441991587670587845200149576673133252974092556954056619366736023389868680531543751496259725999618147100446446036398667916704546797930276346774364485367044810496038929128595486524439019692978949612840142367393428813930924086723507855093045977644658760922380342120639490214168705784503517917500893252370076840375239414733408139592932998731327653007487806135906752188975234898426296865806297861117933923603724709611914190052563547652045155784188461008601151973049115260014477776603479269799442232267847454078158083571787611273410160499924385927259427619708336404070307862946371904255236418393732098113083289382002374629836868887578902661838660556233693858996210623037526568912704918000983254347591235416319422236320160782798983328141589671317409291051006884639043697374447436607407781461155588894809613940163561989681882354719055032285902062820493186632495903793826354487329107628876280378257298268398016891364524370723064041456976651968235974283371188752384804753198587035220004293975742760748207917896119823650799620093827772635472030670800939165545757186735823199518241519407057561420846346678863543890795768733184470260347472752780096957413487792123372309923860547407474772335376945757563869242288805763497735064312941468764048000040915164620189016619615426771633353130758028435765898992818945435793068004787462049455674776629073852033678420771883972143214071977260255688964704729313031839955144034553828825723061401837950830084863437626707380027106673195702088353119112419298074792252823295957640103977163280794360582622040923053225240666480582614170210435844671980002145475668296644819760754621980752777947661209133464169269977271160695369379692013906743303090505261366867385417135542235777750567533100113715605915952439518426257073897471353187963101498696282269709490542135123069566377333261852452840273136076253170401453629722036031894316247287258663930448264257728190908661070470602298600656259661088044330169810273789558165565835351524558393932191338753743919318748834433462391452922391706520501777346601256383392804900690598267592450146292943834508754026507760870236699069793140450278963837371187755344593300315822365143338522912489269918047017167459540160143188478580956892346231314763079274885066650137683497297572084487690799892368352854809320549021613286023917647751753880962782119070614298981944299491390048463509793111196752325085415673081305594926009914752252139198093278636534427116251919778556167623016396185956632121422893310244200820894366478733121232526652537506805273387221605333728737472649765271080467208703099554156472341749258413038078963748168567595465250036345271757627135891889323704464401251803419658685646088892913990722957409341339302938763460723745297891856611452827979552875595111102492949434113526503103007225513860458663178578531595465198029674490632650805018238755005393399019714864359586430436240299361228906554200703718405958838547531300285202975719579013297592839746359361506342073578017221337936985028034329492213966970837442586853554219626376082277378265417557910689599513830251754905589539193485011594046834683542313203201251863544246619555794602217566417901334017142075808816943446191128947484408980779403057861950787583334738845070144174214386657718191484131126119312380466574473313643972515301617544953894874664672574895110728766952334299979918233257683760708698487145626678594756714628064661725578875622655807808574244278553828542444261740615631036627661286560035254251856329770502083818720326655725956920752701293084391006263894661683762567057578818924781238965705745735976568871707854544306480725252295445480434537801876889240055360981866922300943285231974148078991141913682042954658588608817056479919200936260329395664680524460137923040041749935261446354497324192598145566546697474172778602432350304693081980932928636523830970847209544592661630681230442170302454497637525646071900521537556987878115221185744031148319816509807435317543820965860384569639752462152478165631991505374594870152728653458262484825680211952648623884188229286898003655309279428018562422975347887600668986640874712403351703799183336243792287664494584240564627095546300932656679295817053200375826143903269058164182711428223423308928829547834968478543250359840736814036006950254534480617914955164221967821914034519402327332900666258347298714810544359718534807253638855801198589884784040971906597963682852488559499828686124640597288220454832332358870454713473788044393409508152279816880542421554809564819803955818358552165982028651290828885552505868091923281269543339883122206891203596565397962356694819818781635367145324783765800146913735355062740698719026908968443968852866045351164609619751326815839925778944262974216909978825338676398502260570336317065007629275617568606843036115214453477535833262202434583374438030894478555840714131355169227133269272513914139185789191151995262063787636926403049114782913119538939913856286010829340245868077186033676240053902114075276563849081205311009139939243824044888932369927164542232811728068346324423171605265023459390073260541729622372464308309856874857660064205888252133451707298136160434891961106715695471745908994621943805815610755062022534078756616114443159381169194780575771609668169786656067769219051873413361929086959045871016143133843017237970191538623534592054038607168517072244931725829523997965735255952646377558806417260093042484793990526030471938398286316304886976727914359387159924390832438274191918102350379408288699076728766647365450133806397826077233589110739266446636405205009403798404976265757020068325459709569273118530012868821800991947888544116655806782400501844421715414582651277621799257058587260130336029825660796392424704716432180228537444352116115822806288360978549226875611164853573136041463148645839847419870387032503221126759104914756104180229030464769699363110278159540170872078060043474957169651486725355824608011687963803609997521000786332615795779128173029607080537917790885143643591008688217334077292341005311236897953719083071563445677927891255852119703616655037041888823042005789959363917301309295293963095486795528141276826268822959507079396759747637633553373023660343987307523073001734386362940454937341306634644243289386238780240611554962538040262948463199073382815229266096609100221838093329302600992368311103309077150749538249423152900568183718201752296999147272124021158873012570130612306813584855664830000204314039770790699564504745076261755758924102338072110291387441449473617085523363288448056613221929071847069910483440910440827088718969656019852897739376380519659747986313942188755887322208765841222402987946433710131997828460064397514376996361221386594468168599603642402059898505388692305577612705582814557285791224246780173271657261459207305156960720126374077366561633934347671944463731863000177737744977451970872500448710294022699521135608570966338774220180010414052117786505861800329330092122206851203592334604402051872800086538669067484852408430875192398598084878259605900253415613514308938881021459382809513541445957827295010630795322278430121546368597903891024867180598265422073280373588147164479656280947908882895030892048025575902950594504598579101210087878104280739413060298854959852570405185910518148009657836541668118872734635357188361025697291121826952418296110475619771756194931516789020080848998066306322187906573278207230252398734782386257389129103454811477358364209383937267733711611662899780090833417502405112736141836374564267410753782578120525411747043985440894155712539286818484365233747616621178094056964855599512585739863496534589528175417299365082718761854070936973794056454712961829873899368557788979537453036047733401149115097472427860636473474997243277789415872220264600512670754759123093786684829614136420099340957967365983729300223930646154004997698617761384828063937930904335892150295058032039397993913961255960488936842047774979205089453555872748825637055097222096874507895132132867542263109993763624807327755720556177238151151186275260520287289647555947210395790381395518643613888265683434418300240685917131849710250090541269028384799904591628279763648011570001884128999544232812089857643274277800460325771117749696972941122134317345953426298476678753271552989800180024446334334168546762181839571238951641165941625278277163212301405246852996261469786981705083592140797651188591409204230608877787205709173465113424683105444965585202960386191209358600665214175372102247572976462628616543052885275970127588895915541495426375155500375067342793781026969890624631095453314782015183526866419565701240513294507729212573216621512894271456354339334652584963183466305093170721758248060721506397440469938939189308641692941585063590924845559157356128418776600237374497171121654322954285757788514339467088940467118179517850458367546335817714076409186682049915854563063339279925262035592456625444440014020389438725116457583140954899834913717395136784648760016909471118484766289563351161769081068204704177868929836504545619946012447577685238943700998555109746711220685469070734290529443603499294665179189236163653948474440697293654747088839824314759773584547363435287341128350434294211592983832284364736681618993620430508902044659935731621865462392371415205690430199290975193589868343881263840562838684275327156896325488623036977417334110553419158780740339500784422683968212860260724527339806987628708947264559343547004770977148817674681350122127296671830047046973406749065552884506908817928507108799431738093550813733280166903769318610395304774595536797628474434452208929142474180175421169001346721918938137813054748241519782799331628578389435909805612479530564575822984631549440831412323791633985189815177871595675410084866506406660099455832254154090027181308376228634322680627958952228441472348680056044322549106628960965601975983286150941527785580638715082038201966006714309415419553845476136009396648439962424357106239896085455967326077366485624646492554707339367549678981802740134944308095586047605754762162379584690700009709501546586404379802254524537456147498270232073588863170200561357639398957901245319760557066488661259385116314957261395675195432637811598223404024974861982789061364082650443773023281924792050408858318136555246539164658411349246441002983519120927406882828416908920095634870482246151912890951945730925717461740846453312726510015310997233041553823654168852274598894632529572601087604217871998794200138405906231584087984138710365633949451249190085818485305060717056913989564836062762685367224430025194176821744963347915471456773255195891021615689747123459837787020887013689877111176723709079867786805500552491513456946572153494450373132036538065641958426734513052884630094191561539432306011259764743744477051300030098672179860983621409288181230041973559127664938175974031490702442971920201347690850794728400136094529545046574701473468752068608776084067916660220913416854113884441423472913491264046927622496211277761340766575822640129450801553136419620498679727366064572042616676630181141916093036610825807018845342043648464499710300858027803980613874645437643360166191189165892255907088733097853301877890286634684508308845442296965874021380962857595390448379849892895857387148746152828487050441831682682390530945906159694867562767701400779412380958992773530153058309142938718643511841651795689481587922903874693059652190592035995654275865865452690206938455487323638858429495710607757769013738971009452684259217483028765853337692458426743460796112461700065956618832087613333048676126630374016827838711387879785209186136270686704844138119652794665321778260715959511737169811957639626492420351157208518728318003357028189055491728925675255065001529175907517174988604619439124497858294023086857754167306051278778480420025557719834544346397120920370362861367399173235159974870808823558921526485952069301895384817118118726677193350463823986019051544224974163836599928433319542006706059408175526035255810251989718812235331204313180678315789979292122719247160594141570124059444147083107060954927061978252713406845784115244831040505265714775470926307201519607698607696160248690531305077951368448584655950443206893469072429572412707367416357370475922617143959330092810764406949379324452129599859556146718530916963296145125448741708984400844990507331074785393837833720587333618590638396976440851187523530491247530853175508013506155398810115024532300088640951680882355498218582543962300248512734548541668811049692788170629321775021727854680027066237822268230973331669527879649993273395230212241668387606416489031377629545905163965357301396404692381144252720157861609324972319967819233867454434753563182007674108304635765459832120101712167245863488335464917281124522053033823631558808513302977805665375338811070882847704899543865733582822107731163318847534552434973450416751321120675001118066181905769454139213484883845587747446090671896351624127865339246064838435326921987254592628351327260783758909421018977454194650323239482692627892067728710665982243175873447903709406442087436531038414098806036396439595628386997494848096480206409877742898859184346782755382327691061954585534484101612523987167443591865303392261497748771072603591721907904584985268194591812755713719950736696273339065149477654354301977145784632302254916617276856303659875761849235477829793525555263611561799682430763172028600136420198839069214780827403462737165149412539105951850888878036295141905285068657643439102783016766596457387012326758911972789959046223625777960080760918244102271127035174515878828733945144480861131227094309162352007561845469898776171478199585601656497037619042349116535947452732415458923482186645920813449856476695767776085572897118427195277228540049302485670386046077457660491871053504707615697568756461587607912113656703541715147112393799128713449156026983854452949756629628700996496274391989773807331999213252179452259625320659248464739654693488419981687387251798572880513869579049790133573088608925665863409463040494637125789409075835356610532276296188324150610628669608282059373301099619765896398166370672019636915324746110675165824276320661192734248359105043433667844984782517177490272051922994929430348910021060107152425532706987428127982748395288834155578751460336402708477131268684897657506525722870275843077300951130256993124178888817222203696917534793107839643198625475307008290775317992638574341188663653058102283360669986019985730542208528768195288245792319688993679566647566700261838802400293121313344000286949455748015848618937264151700845636119250385886358335433544071703826919539739623469213021418925666386847720850091126796847504856501335347782599730071011988481444770047035734306586235593525235197728724999418395586489138048871450331908068526398116409003303751645625007609260776798599370822841978169544629028541180781321760184906626809569328812772110188202410846987671380452271741032151950840064891715403308943466635771627208265430879057712986107883092745122410112646763355766391658245734909616295856611681329758486650755922360809259261717910509691919821365892127203213310070886446410622137846614220816985624440047214156000214138265839587713561789798607985398339079228038453399653798247765879360998448231894436820457091438807058245150051563104036633846691370062862674128695882948687269582333511211624586838457456018249718223665355889004795351101578956957024592089161429758279877032655790437242542021842506918473941205662614087648805862175538924375995443032984302187560640503836148241649387694134717776914607074569681719221458361407141038651689654913893538144775871872049417283071040794728459044412383722903193858978975741469081716705916735232916901395535259990623068653871197418623839665523758400086367408493835227556172974154917162662177263272374709982306655673671986239258474167826302187350459465619893147535873189914101292530466414941879983470801149992282389494874081283721247189366534502980089258311833835785706809517371643256963482582236203183719076979733300512853950882014980635651813860052473836565227567308956716736187817793575961222353957027386215154038017073875452137144700767527712511002031332477126306586396354812372819387212979229588737417154701039404876445216959377429406886206877366028091764055607240136792069568914889603295024811233409813730950229857192929512103281488433934157569341130385404078014568269434449126110831605092824421415217689870177299353726635396983174480892679792436172380802508447246481400583331572738986097466639848038227899401295293671467357648706377119793031204783073333719616019327341765519727336909277056793914724139438479059823810502513359775044806105773283959120393944951965447179456656096509173859493336721527992357556969692371185291674010759091529112196885692122465382787888254883188469941161448484191722895408710227364892385330752519629451063846804781932537078534767928381543729267670893755172363138366795716859911836177132101043663793478527907486198387248556984101349510702465286542792003537263095328604034322526027279377381871278354475982265769522011955458442720495271886880707796073521290334938437545819239272998395151288097754879158684123879534327578107559110148776479422944805818540805872314794646633606921895609969780567075451322332249717502082074519673154263810901231565809409134300443405456562232832090349519996014263397522309439886892055694254369503138829788580695880223283002907106196410551662897798566320496830274444926839625658673274816218890590934735576136067363139813169474799463129948758225969027067161993986516540188475416608489676514939419443962767255335468254066219914548678605065092440860016626266111009448488811457099717945382088490028901243570809258499658660622583506239919578781566456498291360019621394772908629255151057086291490605896378800995374791729925004587594784843803382081680466813219696201014090521109508350057338932315793003449072054456944833790657582685940050805348425863194620000590188892517837585246412808903314231272988671526097727516731086572331276669674717469614997638762279049695644985085000059749587493187043815006414246809225958882288405066049682887497140921366494283022892215373204590212562058819502296903998891570796874374080267039665922943365393430372964523081597813324881116107290118327618273476745638266693794697024900657944735077854452871393520655381467418295043252619096247378881290221384378971225850960021232673447386850836004040543302092598906991320173360066503604738475187401186518796446645366174974716299834356070379030964505673693145914041986550408724647262339426033571643273161733360951827826644667522219644332693466242344946883276920319687115232086446485271390490887136403184314123711992937345736831320766999106940342667703532478382801173673810670154075084205245632885031723117802656039548129312905485384527971334995507013296090670813977014177582402239606624742580663421224737515481459291862454624185200563774535351569761500273249434806662016073654291730185860247028162131165723374963165656042621257226575453026743474182023386478502593740379636538058690964549018718786252868904036599744818340409654190203160295466472809630311894759145568398364264893807019724864428338574613072370618592582389587600012802743070551866468027759522719736047742020079524492256714501609545021644317240385555382792258215462092690164656206722523452539560876521801011572927086995897278189583944451199166424623978537423868212080622385438140165594409651416638055833752793675880784942340450371388287940516466763820540480173379391157854511635924526617820236691691187246331769482822779415724940183204325069199971436095920352697514283948339550339328388899715866235170452467390794014730395515902365755297643969893836769674809009041954882283322623434909244836597869867980806686266253066127644723747873193767486288253891988186831836360399414685198459408515262765547660369620774913102766821288853444342385256874406398997680395061199926845363387099525911276383359402987014020876567810602098733075629300364735542905128815014280359629971157425107827597726854191308134833931979478152469906521510177044572924313247109709044365987347428885645378991782524380120334466153301395810220128635134375805210640075598385494302326823342690923325171195989414709518204148050322781620996964529091923385939741951082258371152435869297178943899168303983436578182782895508925453365327182007432567041472940134477147767387109840936945607700680742467183816933431902735397344939893165451393688413845715881805113725054934915101551702397622658631201613287520297713146791644664293978966115901837362393212106874937952849109943350662739658366446850835561862567061914018933029612348965796218705517644606039644846210350751119389099708906340517956225665861813122751539813355277371237326598672007726951999619381583851698930803518193683837931704599288078699865211884290903850189939926104011634242428956876968685526162744182760500305558143180013084786986909648951298552950170562859306882406312015469069513700761116334787107514750217115692859141996327864311804497630349484859894066624480223952923383095050154517367571847440177740663017746719334695704302855268192035969411840389660410390221954279852002408831372369856008570839681294437391622690257544268007421109723643719484432642405965911373437332651340064253704905991179055173438865017117369361977043800272704874762854065256624705793701782877905308961583640928835866854455074673435790758340392653102680259855121384620153435676261790943375515712404567259825612806943891811864263199596613377197596308717051006316503304824519302590753286833095755133805643988192084287619203956444940329415275983369791597725196660444575125923277221322156458091323924227257546565317064000986314677327537748074958927583921214402253172638807906750329195411511746246060707894372809600425815589378624492149055798210956320923284112071547705181301044652696682346931315417039386396012744233321281491947536733162816854432841912802053742001298971108196091829521010797411960849572087940796801408768428217813825407716827974390197035373823672944113852311888978648032631459571711047980117433307025345062786899030285578963142181317570775592600144722513048514216128723394646413404277983164737711298607894299173416240229719725923888158928901686608231799846264210793375265009172902612090935260185219179616309110054987094536300171578891985782865521251050173051813006823469505894034903137275693120376297637577578636143005099145949413725103201663143670700823345094097691932154648005653427343949734899287824436831581994804756648087531497031319052369509807989419801029793831735546601290354505806991545152351615325272150548598402235667103490434429609429875154134173093579066942776134243697504367835417600536609955583840108149112590532282831900352057337900577306638371054346509550906062920449531129347980298817001567601610092787401175936850299299620742529867031359838598250662916791208564519418577141628934201452606871792030480471566016460176106835717559114116530164796359272028732829776018716222668274861013119903246636202075332580622212723260008476241730456370576046498053612577744174841785751177051975329197990409819870037200758791390776288585634039022363120315183420021606415131771868596973752915809496991967436387061284518728969039992728469332429306521639503174862992686668303443445588858512423523254964816627464633606197092394017227878151721719134453817127878147561589381622685097830302230419095045784076139459418019862656533458990565945929407820021192327169218927410864546220419502075588492735037719341216695178310240953075055160303115343560404959367521369101772114682053817151245567655471268210849778555187122704370750840114712607010222078136156726254427455884519319915014157858111136072827139447981849171732333726795058188275001488541030070560607305558986080128135763048134434826205051699892874923715103542676294465324120283001337533237794175031865450727752663656040573561453704754147771063287378542603176119531116430932709530520288438577120693402275365163445463819492616904869055459282345320051562433694489620591770282078514652928231788967333570752637901315986081949717315919495174444336651755153581727350046716990587382351757610547323660805904452376636413434329565365142755403455002883307070626468232817293993655605870022801447982297046334746516031330695967636558234827231780692411101955519243393302105558695365566532769510899043498222513786915640852340189199686991298587860469320982963883823859032459461859212958634322452231915303206566425031785156113072427285976188418151178212200865224385811836656866493319171179236436715934985070439781515824901708196297430570144514876050217219403987639745669328325038784375255120819213476673788401418508688981452255693738631669444997646942753510739200539039413061976010477573634049923691468620815523840502604181500236531591836141597469604701858576368531653265302585243336909589836359932625125295587810172334649866436767622261301318706900905811322031712508543395211194335000943750007894053922556358836089790663671587571864009475855276271791770264398946359828044505030871958655539820616401800640518775567781202268708029384052862932028046623407921350018008018932923352199410207887629058694604457461979524124860231180678110655215798735248117902238184459068836287825955462829987016532456607577758436174550150560418342234650552495787833786500840846178411990599754384237110822025117212085007860459228954958885312226253537737905518538223290274299458681221613310676629365353946559502411510954063713214554993554800178427143256649629265113074062027048232458163576857532611110116344931154254328129601292240634037257207194141327874241058288015658132000391738948145526081359862048765508141684944505136725178255844118079212493149934518815741261593352018742013747117072611988178406755267368532726321130374871254393795231259069344482816400793631723577504405291566495434996484189734418964156009811078492304081894383016873615249811271010742737195415831585174428106154446042895883259952374360079856808976340707656491219338246918048619680041537091907608161841910549380853308098873054492696359261215898807177570756809615222419802544541222076819843909585449950439263323452601598513417631264884743548370895611404564141618398988317531659858126257451636594501588587159266029598403737563051254545651694718271886499412289732047495964208445328893462190065109377966549561424323335731435300270991810283633965317579862440260379799198176423452049333679010899156730055915682048817968108663315924011903427255042054917337512973318308949680384404856909919463073807905776869550858766681212401237403659779902885700242322875767672099870689880453167169838863160608993492381712914005013657972909021101294069797234622392806048257528094304157948525416616296619399842087871391811668759526194566568860655909165590990553560465393261515775347182796388855883451496686621664798801952989477332212080805882510708610500526534553456765674550040420972798626035456151832768053712602717649048489467119414540676617827734595944114740529011549271231041007316811758640556783720026742655455533611232722786469601221135177698421147814583413479580971689149442285700429765869207985575789262312681898876128501959306381177754012678857220865402890202175177365255069315001819898840395025079651213469983059488759563231497181049509281598233550782414574945583508212179776548195999529704105732711317967625099716187541571884050569269049716052583135449021465355224640958719210368370169711098876923656055717087291937089497417378467612162650034936652635269557407659820489926279134764369420987144180117786981985445319556943706777838804878236118856914772928282157667902412887409003887197025548594722368780106661460145855398444340411334629794776897089914556988828710291875893194643300686974061667479219514365392294417476846634943750893770693916671773395011449237897253992185133917829434012993797387900276508339488915456651180011001993389072741361716962221889461670361774735480451237083963666347923426513744196742051372523300477445572958419218309972354639222965339090274502149449426344567197937116496559859191009315724810725338325949687608494044700154660055557712199251410367433614451029089492747980006633069108780447218908539675042951559553987269657307747271356057325855832532760742905225793045244752195068022560469431982268608099733748871700407893497166117916079717305250427962902501720160024482215734686290758103226871893218453418631925457507712379905898273091119423523934815301796676507215883559778652009792908007120616118259803656353500547076476160347528453798852890106141414377932984041870866352539225507851519312625092209640133934443408519417803094058222160473353630892309270562328362354182392326939389265180724940178675116942680563619496249150643608922814698103701435401942254035210672569864524924452936690005430705529371478705833854444025550324909393062552551690746365320402573797919443929705371326585605619911843419132568709600325965061867364517381840277044985033506446786363351652444814195326635710048738079142573061964003041829144684410657698525823105125508132224208489923162121004486663389657470182269063792926347980220269331225492347894522061461228791549490796730145350160949946324178476944964955068178818807311288220838081939414515291567653877160545159987462007234138678178022405352107869192306175427692946271996206908707316566918532829044614734210238698742979177618776545097338830965305688075892407476278337319756553309947293762971792210331053246095148556409976007654458185060840820757911914343359690441943827254308537434462167657150026554050954883383763444367618481832541102615189199614251853112148302659489818299935182662579007044366825143070998628482778972838063037192144633253655564624109364498210074035123955985337638583426148133823594190585595108166682827189976045087935335628007464006567417940808838714967370857999318384930356883015668207768866622061110291389092715398893867212462857034713003834771932536807901648437080110824689754812517239416337794402694034877869183267901896803204454297511767066695967927451641589909055504129824190640802700101901129898244070274515538483396292195390456793582809775070169821968553591705089550376825148317827665184674590632905352549182133003683649207371360960826741295079161315678808651977267342297760898214779153537158833475677985413684077292934475328946111023637142238345692648663359709382310853707588524164227184892274211047402683745727942711261731750951775941183161955670827085411666582101413051180575935165505654437320297248965813348428049827174629826663375995209872676463575909673046700917808646122374066969280192061974621194407710191538262738098729009539572547740019701097051674121020811398794614695016818113708390649329798299680087336719087079230268009275591675783511076465150959057449641906940540246741372239128427785698850859905407398166231109733445784236510169135096645144532410920591643187089342488537173772030171052886896052176489731767568873773821326950537998278832792086743381387379157283276426949222949598942498585613418799200757977238287789616148197300606069427184966783301761676642898779750808208306454590760098713758724511882853481658667009959575446433417978325583030662163353860144071969632644649035436789939444886173525081690451500035466744611692475087243002419522670641176567147592677038282525291820989695936847935437025554444314761210036030015561575451332019324924675516665006634000211494901402706791697346926508265514766640935905007633543880328553740383444645852810719250492301777557495102237950077156627192572380090264680401054377720812528070363141043878188035672773037094380872477509513476810080281852815015147438715975746875341375955779963673059474469452630349113066375870337651119366124912523964203700377976177294575193970888980800044842149526061533227601451258486205928411964095969455104004990806851835759040814016512328100328060182401402128419360286727369950229165342803591071450239892076254628343560647881457046172069000965207225394667009866043281276320382171417071753287343267652663090345637271141497429259208025484144735996585692479937728794541816782578773464629692802241647835484428848786755086841286742903594591919695460892190581572451776887292817447958916147227388145427352217867023828825428682589937665729866180495681946838875252494190388481865150686540396074543582576010325066840233486631624743662115820958074152474359395531204817926795266360351138139625724782034979760868388792880956450740068508421889321537969759511094508754290229011408152383765196357519310955331558511653845455041035818917814386485494052658716947753595271472630547550365299646801799355109866570196525174001848465389848846860669291794702935436902332921283147988007804903348111684819659247837299114363398275170542190625398529820557609491315322367752482436651448752448875977330525438611944636673050263761985284652121588451495093848666731095166095775935077442537469696926762094855377634992300873365607973358578444553069329330511332389955240134064452543028656411086441536794872982640044830724171739814283474672158432269818548961850690379946338353340959126078649556553841080319314269598578288078020170296550230168787639365179499691629167113368509319282075884307461157864968389625072787669779723594051140740194046629117094079405997022460967567507638663160445514836521427838032119301354990854070246276861502674718239720055503997736043139332007606677426321087784654007423500129615912144554723303704120966560411211260646808374537729971401659456392998867961973819891372537024107747644713754904155921357837566191090862982110478916941301391216899665199242604319103943757404174212601822004447965938884311855009450861773580960640707759427406523360202147949828792311544243589233512500574497307389736913975146780330745382959292388294950904782290261087710751394591208516498985522268921457737435657546735569122097646987362025596753613727295650354256828311720907314755478897646603689956295509571105347363971779762796482054540560993099354391570006279238589383149209132710156076739449800269200020659793656497306144125765874302740653140624526669481962650178009528778652511346092022732036667642223400063231813815121673370011155502376397864184111091697145383476482747151041067337864111496547940991441824534414836477569972217704767862329609578948140768103655804052256323345613228374554305724873521054892504222751396176923848637735614011112867952184313167031985860175286354387679975010800218688396783104300300981809085541121503816453439803562719558702476111303920867958561025020721156186298856332601493407982895441052083291552512420091814951658104670733297666243433809619213461728305436007462789633406476879911472641873894251691189837971612029420949264688134578126432147857183858267061920577529133532789239542294131594367494152972565336595803426843943291241606457063958770186153039422183016571021619154984839631429786271857782562039881618294016470196540237473757561865153777874997497901970898394914811061300520783924979479747334423542928315741235690318251190301683434923611500975070289745901110474793874039374211720759006897963248811884506612335821635204707738013696461071729460961738918468747822748345124286817152832170356087216570362362613742853099074229442478465745786952037320268253737946977176598546178179131473183445859817837561779564875181387284251810625647478241170561419744064555850994557129441722927690127868346410217839840244745524253342696609546029184316397717622213511955716959440681786201251058002235123802715345941445126800445309641653871173024110040205059756204209553529819411899564136877530269110585314115821578483467308538817739641481527967151266142420990186475696215763137310186742580046638788904031315621617297435942070132861243146186818786725151231687691852385945367723965208215574873559888822537354049526649209720014108794855823826867614468126585771189579332004465162164238310334050432764952182241298194628117106979848125231130520070097262214287093929260581543124283491981142717607903425777055110317899694123886957588935201759325920857235594804328845779867794687262455956172553791035738005208263239641574964822921645418885232119907754798062894102280834265556771105543072178506963973900121530470488479757068865550347824975021935623997671279182879016805670965102564442638811603553856954748105003803733312842577021030684368160503104691219981131740083744608561677565855096118832651453657488929755741833532644510852982779356780190842221697021101323160506851920209833756117849019177331806232328638657383121568757461989791407040867260064321343817433803268991307231260244008838254683148921065495109685230814965499781970635146790078931265943187453212314418240196971387390177169575234945898302347904299493146873456319863359142746180407847023041493981898475714729918811225706918336959794998962015706864956448956197762969716969269599842778136059594783877863438572896420231957894259402326948781270511675821824507103146483356278248502775372647934344490275904109356132859281409464848121443163657929654183340925778549412721690982714013308630677144991035084168645290921369103861843735419726528229910435016430188339347045277662058254451562862925905730020637270877984694099758080757154785994264533825480702880317211917727426517491767955532122574809702093345606988353509696194343699323881869088728613308730838229369291641737683380883458157758899262498013229984288852939745906414412740848974693125518237960291304812382972739536671051071883472245431743215771424107705108406651005727880395062954365028249779179295385973276433550886350944809383589868496859809427338158453486252537549028913176077924624147223694368029929432508842214736181806627350101535166194492915929094388087602165223959936704823659015364811949259414047619272916935128069890912610516089950805999862529087178091821922233320079146366918087877876130723508761043926067120818945710752378244206998510534708548458713675934001083705682866862501634033840479384876302104444383555173989233654771779187213288856982214205754543736724337669540047929092943925810460408898683740970185570054035088774367957354850266577830394167646870877846601773560635057467409607485216933199112393524891572684315798321780256977567264111960070867441881677826658627411670393521124840226769399943161225921379296459148629022068101486143415465139506680833091037469279616235031954115267107274686267911018514711800745301837986289256327648913348872605590441251780105913670254295817308336030572254985317044281040908333942774522791670616469879717171580100867550650093460610220206282726165116700032256698130739516561680588974758171468153618671918020562960399518234532604568509032234232624310026034169274940062891542973944448364598658257543472063000063967464817631483044507595643337814794443937126496430855423736836015950139356628158890283503339403193341604273627476382702217041019994074010571899529163531225051085595199433549090762285363562870546696957869228313879169886335640301967572840519979053749682758268669777472000502298636220030025860180667171832752116275725785483395885035743187419512937212652900999500321536224991646494244055185013487029973727569311644309744065748076628075108793223064845776080137607229642022492554188092034599935281097068743121891979178359333558273118967795948910906458433976185072667355488515676499142882161087835898148033939566081190040120172081983595017935689351603694989471401640055398363402846801344552388274031130370946936136510829833244495678068275089880845058077835799542756709899890868064131335462358823444744231444063728328067417506488866726871911507451170791484869893087186170401408738594928880822980225825936929866652507861531599541988389258568200264986015907652927516642006055513866412384803873272472914710120930398187917913546026757664732904064380262682425040373139586866322413011096770789552927114961303604210893626107539102192399772360689341526189235547508836063150457206814627972895908645211604174058889751705971257695161674591004827890512539347477089399105988668230678284411831232649343412892696439256621884244720260158354252710187591800676643603123064118791947519535079380871257939575532358470170011190514669428402738927346181276434596102628155169093218405211156834467352189660804476797803580519249921511242267430150673704354265632240302987492937914807349822336015563277582533000272248924292247114504727782295431703392661071537445859722695385427977213911932825924894285696446383137033083059780491279574064287640520436318242820226992227140138697127091715481016135653942903441660606960633464659023080984727880414467843103630634197305363494035194146183937875042949515689963875319084340971698474517546543942727644138013697790032975590796897452832753896105349596559597004706421270101811986023116095999786598618981867331696238286935906050194556623216328061543625672959905724881685937569676090953424021613254835485829108113663499933579047643938535740732954923176508511181041012838734356013036742380840233024166048527548540499402000463437432879938414097138674354642179937921158269236770177110720496706368627239251616923664130970643182045315218238472043883774842248314644070532714890497591535956094525630912226935413608679860086118178000795016854133225373522240078690147042466138424888559919606957445925361284785490400399986559772930300458411230818001021091648997174400422896473516685907868137797212468037197172982732111074764110419270901237007985696645830209291263272920616252531047545800143156158736586964816141953877017087265979782463015428642479023213140523404821787069325274947630346717472722824945844077724703436206798642178778189985746798102692935719773570270161042096964260648060799892408173442402684990261355945742870547245473757349157895076649005634430749477854228788135189393727082657777806239771584303725723747053265148604467917410111516791177712201616811338536760017752004904903744014092173143565737960477180187427077165119658525262404521932695944048556807218424669550551241328392096284437621480240481871220342246215759784748251620093279574532377160012201382310378234848635388070165461581303417460496070870221641502554028480014814819004577531055879212118999826989147750267578252256959020559759421758094789052202969919437679553655694254911686476595338630757209926187472634906616394142794259477804914940901715115969515829224008408844730574542812320152248657338100973091659026040209409900228267779336107483338175893751247909625673991241502979407326062226534182732344373776781756319554342445132891035493079782859045344601726422202849865437187816477203913751780289133654656670690033390240273817939145544959749663216248025363059808941878198710731951261029806714405350000243458656882028297778917768117351312948599549693739999098049081214382941525220635639591700620975242867052059853527523740598679491309002320574097370424466079061018223305403995996802981986135276838797819452903095233210897550935714397612251968998310671024421064281540878844035672062527536469504763049763743018914738028974616718367869823277603256038570658422770921869855761380369023105022874288204781169287554032269944334453031411514350085022778273313320058228803637143730568559957888563706509908840738498177200988369189061468321642380060070970514308069824197469851287242472701489772213906080607130639778603859030266012353275217092065209796031287302943315889925027929908192651375786724853806516786355500918766670659677242771817185830715242790581182558403819049874747467734648029074640535802566107376181657342647028140440193583591134046509288604723250972236218181756514403931810599940767118113909389995429226395717962554248848173334978427909120784999642157572929896777656613924245243910846277312850198960712057187455256085492537631270378568305596256747842102750568728915552638276360964029321506967552022271787784890954085427927497163356377927217775470673747306796751085182701164426807961289986758720229358298825258000420288940065844446521502902559367142129030779435727168898157059069967757077732698684312346339484496376684308144858854597021172587931179503333357683191484902872975205822179599269872509543495926299576750287034778223517451681708332453583348801319998510955887294711040733768641329576890614730571519758201600929167471087145238707300153039104922482420255555435858184252514333744255282877733262001871938298885706337924931559544445521539499331140775990798685601603448627239072689474425532656633218000739805635301829466352565122770100155082147329536005397360783223254934158810861086604386549465488163693532391580823960163435774733718999672877028948011437719157664332982997623737580594093409524327000846130723845810033776532938925669785770053459364238498452938126889598987982277540623138053384166152027219628347252913584583125290775788445413339551957427432466508588747706339166890965269885613388885626813810676067892687625082827981646021891326298231621074640178049192752941073513266346403973140660366235001992209146375190101381243102229253014223578504342350700413614918991434378001245495703671002393805951189516815148926433379331114491044687297560151350960328458721305330433247583363635371307403859301176883819899019520598433458338695805848104791872555633985432711270178409410263218139660999907569190578535931679130067793154226833794048067834889609562505137728741451188016450310889164864235173492200357264579202387549712687513246957015371509496747520236017358713953685194709359241160490237307700870374447767382486655727151779535001095394668818609634215515445883461519026996126799118805930311458197718848854640794140710247637594701876627569915874158882441769365432377531695180884322694230601368012179524403826826106856133983580499229273249171699567479443040516664146740041743115830814662801466842643198591268536553448902665739614286489411716304558359222161869039904003245090824860081559054516125067010284717317175464211868324137260175241287763569206062868500064023553187975889010318884671264478341330717080336746012475842031466290503720316963529050585638160669997312313641481985178173653169371606780756778094561385746299528463461673243439438366085749233687554441269568679023460525418682945852400082899130096688514914825993291941386505653869857470850158062113972302407194651029687872487819209924884442909483929590620629389560187379071627304301753470276709329043195907174591599736234902898091823749857727200364342124606257875056134332824748962012674568548597718989054491283898863285431634963375379749837044955287496421972523402438702858790918887339009614800312340090100533988398289045879459223326209246288935233943588659380507303445447659903461600892071990615518649795309121270818016226906185867885031453534834106366006092180694215991088610782808843197691353940985778751190715344782778045593980361627945463590401223053771561785180138540658749860469154659650372569743146375746841907936028568927017350442175125642391965567817027208822536167593327893136735500758495203104001641867161915048583912252012012757629231491981300944783094460916658415630757441014444008164494731977969803723153770529167070402114727190805324116327504167211424433598513793385546523188537263464840144608618809463500626808249346974620772643682482064111614283439288371850247373048532611312927045212287331536334913302302721079752422801240704715078470824450314939004721581478197092978100263314784720492625964195124791892090529761806455903762776605784094764175871850022997700658305218139559350491981056614357374148234546284394149991421809549277794975342320444426545830246639569643658320920514435523974328821294735816987568471218626072204954095186270319384794861397785576385416571157972478477424842312189438982177256329989544262948329583529556633495852895398588332890778035694670588359453688537568932183905737077401676344996759948909714224818147448472784452512897622096844094450866228609945407160681328666102647541892063569056355325968519395655264175285870870864394060999843174567567683694011972247349077028471503845944040308881752013503505253787151678289951587450793316974924490145848791094770916798775091262392150651567383391966377270994016326482951017646542444591858463547746530192409723650999207501518526570648009962214679891935649211403804119763971897556864231996395099675703341783222046250839558093603062531683058878695756678009170850248580684943307519674071864989518424495072571128378658746519951312836973721821734209162786801056171874837696367774320116651718484471001305709031609040541543933513284463493699464732176722793175149668499567338041347309066196524694746440642359720364135342703698220769086815113059736971372731207756535488776299898787639779030550786046996568152756387131228820077529776370592091163541258238831584886811090071231551563724137611702714038485775374273621953547431238751480566756921969363562803543832391590885459660279295404866256702518807482448736930456037364727309841760002280613130733187455547721270493137460258863330197355679761285010508326212919284307949065165949872231142885299494086274338011457163002808898886508222136805438962355820535179158816249722459546139068347142316185983100200369873018527240667840009944589088257797325401637476479271104763373029234863854210800804934719320298120759146066757198270615546188345914238688247087743884309968532376481623244288733400184826260885204891406032487099679479933059329705635404399090200064576157544676224585484311468769816009089410823539706163129929356662477762541498476407527872947150023194883820514355930987178766308137385760789032547846928229587581636794445375687372629135290258742599352407483970478664799913705385428543457838615017964364360254033795071474150582537711664423418271480544722226358560764705321855843662251866437530047970192122143178957802476704025013809829869077053663742551346687626814394879025338767571789415973255825009305968594066485955023940392716812646032108053999154137622236571229845116427201169859780258838472427972339148197977191178849520997538941710138268084736277424136876492099308085432540590347950922155758397800407436249842159997413157531966471191024963408365366383849364956066746559621626621676848406920721834129979781273929118801228807238723571888977592666676060907240840758736432645144245505771290390819370344332335488905305964237553578537166382350494737032841895097866562898785997710150677819742044417004630177057006090134507472882105921228163502172943111432428958237314125782810513241357410234802806280187016864289092648841251400286012569632208520534479248452930434926443383129272768283728784180358424199868918058998409118230500323438406745827367711474805683327825955252259423779275827098816412502873727180171314820741657861614261186137212633559171006952525294921572922929989439699272559556519884919853989846049376746159270789525983807813760218695160641146813019663948772383140863898464683528145455878346996410095542512657344944291581401026299671691416095126169489193386583590648286256734361079515113071379996518476153691874303600509076319462200170569611947474118348348456802976453196819126096248060581493093276162624536028190939248209057427301629693799794035097864224883978274680378683204316821802161077238849697046594482695037407965789777861055479400363204121051066161934169885640046099600676619809595687344172502710144147375995420659274705314134905563160002733002288575297377912848949678479400952143608321799516817022180898359392467271651233585856518545389636876765068429545441906070059244860780082534638391887517720308823859731962451329057378715835689384108636649718975808208632804675706465735448898481366390557681450288871040973611602184485500507962303509881985368540380761461795791697319858367803939955408230318327064402351071522734206845721863709220996763250780860454037829770379818429781862530603612149979604620499163294369901500119453490856916485353035373304359929306749438990405916045613267829335519176677627996992036862811899334676009654023350030130015008365857915309594658724095600732072530966528662764658432589117288649687390576407594168249077017311553920286319064989709754200396707916353026498337323495442177864431511303298094811641493634336079125312932365387306895137828585558167146966265425639280034999934954003999886057347008220749974254844241478303981289222697706120060118813648748489365568830608731919607502549050125985829491774390542993964082708069614434586870622366016879310292591899394668950780871535654898534222884937602582466554497845911505136140030402538499961170999759876082626172925686291879924479082885011586017827771832773668579897727529910120714472836646781741792558382766266839577830402756531452403851631653074050500690587728985017054187648118552545224015435756988842592811415138905700249833271893967558673679480373317778151652784217592770815525569495702206294959086729591045255912626505855944614282350516463508042943587724567497458421629762222795380248265176455188332712650567942168535494187864438043979719879888312791092809183942015396007616951989064943194747621287655171518832829057060998976479655284251871419333359454837905383493766139146341090701213200251744623617505979480045380141400119579346795341695288554187752893048685733323790089489206386205597111874245697390523829230795806861688706724986213103920154386192673003023230078728731136468839231236636081650467830791060584476626839897050821414660857446526464250504236878382811840113265835517979464502567761693651800991826464608559193417550812394695340856548683260647155698752997310571646808486715716113900764219602582537261550331157386304792089881155590276757314960282178558211156313445976347105894030521676100204180188305847107789991031067613441279241709856480895591405755999255699365218349798264940921180461991331370855444629594486437208082610967725089856576319760380079244335436783436329797129537841727799419021554179057445515868974593101746639526573223599063468892666854807887647861752073838551155486859436654910621963886153545382780623902684550626521008183459610665832854872473387205415316899261517869607317048038733429666648182366982499979469539381002101618844805320061952502485831905549561337653644827831083122162239252062926801131207229320983042566459293037080508852312751998321048031243888027266837886780564363772930565141725478359849829193028946099754813226651082108549937048678060780890924529044070940005091913429182334538341573009110027509322838748409077439644203629199108027269291326166783082288671037948045085831910395484516470765091380527353214021687216083530486033164788659491080682339767458469277562012563107050838630263615397517166839889596789480606315414689250338162509686618887931296274023654606188269805529813699199977937305733965924486133396118333993956819956971858035260394434848327859140755222896408748467833669900298720226666990737129609440115883095992445909785697138712269720944723741130369779374702044137588821180569514709065510402411463363709218405617686219654691914497933818573126432692896687405906617905926258187982713647833236874615877479782868099008763047652419214059614700819767444411472504415503490349295409659558714629139377518475623915565667023258489597311542290846833501597123229797893011573273582829876908729386542956583189956704073039203533333152320244814624107918794594630507199008793803206093674949362561676507623093796656118378956351464176229437590830693572617830351180899491483103337635275889641547234169248859149393472207805706088248387042785561321690909455127648085514021938277248115653368420776264611361125435950734016560598486049952848760049212852514501903208475577677709955916747783813417578279598916173224820431243847251347950890714786029459559873858627477093508789162966113093300214061403034113452882989139193521829343973287141030417112110822664302160485100970448986482202449708708297205509146277581589082398959498770644999238138691083885633990244704681533810353041878916574403415474305043804790823660331606529856055134877491927898243367139966933319088286927553850745212000207746549817285014792461121187831541337167218600206714360307561099556487458831857663684628619021818394412981527996142403001713906753054391437196480328643423223732018964616364350089203654000846564825665023149903202835956496182837919187002400397893124340196518617665653986946606821127800974322524073037404926570466005948549245399465779311738642092058514131285046218112313162047428490805221607330827363541329806217125472309156618804161274337943997893029700735820176277647664777477013790063078398331925035374971958977433946295930125942112301161188240082241500926841308695868692015922115837948049165159364578184459290000558153170323688080959470768539129808136855762554037951059139814466824757477171645154287068220305046999791293521880520154633140911042946500677531264815475295311132807568880204383246768122795785458979037530660976896088887765228730724985373120046938917992875608771322268407855150514020473684734700387557248309848293190116017085603876227016493938083570982642621538321090161051393451955311203656019320954302420699191501575387322292493626513636440863767806095943194449674098175037997426497576029173951942609658522553869656541652544956655797135919590303998452863405784449869535758602052461733051067635374294622671186625503970124446122838851458788401692576856193270716735304602731564489461594616565414594231925513633395011827370413334302231796175201419505931512385344751944370594371127198651725402833576742374484676177029934063805454170588865273126427497810450078767962957356475941562281421613948503196493314199633960538420446526142599637551403307555134506559705334995579251324523664515930495046956053022241392595092126661696538798069312575728213883180411218923573009494764106574840300807284587115819249494404134522835870850203469825263093498612323720455215735514563759422561030516312764495274572575507852723137445480184045433592765600963268231800886632918023737706468412042130271515293079299037669219564785818808280659776820588644634025711150348913874755198902970584603171759983632040788291917964173627703137605320561742926454549775778371233748120685646073111115581915531117382977906382428646384481956604515239449337324706855964416285503962971523327710448593254504451888326455865023582419233193666358154497656163405050807682377538731988713400086790495837377587771837367008589717282348108704559529660281401478346063736546461905273982319915625932176655381923245663349680414507810166256194687175125566560965685196037970611728372086186782767994498231596959492230603855752806105636252131242738293879244330557242772786144420022542064355610332741029604706433158745029033194997763829858312539565548896484105147690064186458239660015086318272957466620725712142484780539320160752961168187360736970266757943693398959315092818402976356369112171691882431443584712353706978642228188829085431932632387637653969343758329696049322157580905060811510873931243155530869302764105401658563055264268625947004710286915894173659565717695741117686681274988335447502084839418894070406373657656909618304628924319630260600077058729109838505200315999152443016722411762695568922855767481319829124717773771247848624335065100238478700868639125866283844075932123769724261728490266861325508439161048720667080685046790910722299078133854294854006890885933919740790342107631925618181112571280571467277432027445389024791809707125086374084287861743696299764237945248305343270533208643591285625455374996330713129956648927355468598092789884798968397653712043066725806037116558467524327734536975077505208095046452361725815781508362397140467282140540013058057636960691650859073117191022810476002369068507397934632608115236702750182510806955192974678930175512335102223612732496444216851742842614531590928417844563194652476165653595469776582719903151396870598638198619502332879616421659656467649489765226475777207937556120554185782661680421677047878926315590715687277795792617210994048039850183090653343395829640051432178593334563036445748697608458833817974622389115110440185083985572933229603620021375961612879884435356308155194003436169449779480472671502318181584074814659254890738930900742936884144829317815991697637490282741813454461191322777283007117143468092770725177013738974572832244691483072699210932631655846619684646515299444161545859975349190854825668407207264435878072324765672553272020575753069923915882439273829180594975878413574910793740035539636042962707337646692893021993873400498216196513172228775949643912936536869994321821054951442950216199951662288553096375070097146113105824818647179268691740667616383377169293135620401461932757601241045055342977863610067284443235085712496507830103153558959797036665816996883193374953587149342092628938343607947411755069717121853216673226758656461774886818237514748076675939703148968743533049312929258679493409474048519794504192287596719058151563232948474892559864765323208486587680882817494855431219714516046494261618486305490843137015960382572061299093194860305653812068580242023934649989326359178850149193793885955384535879372187858333364431375172138688136970535951241999617733770810073942964013660008554332804655891956557894116560856514024962733735069243182623310520649553295283033554525228122230512827641873422046750511831762139191632508731901479590517554986314694472077682719662517970319393121117630656549659161019605685704994314915209811610106996774183800709686078999000864079369608219933729182842100863799784741342376953517145958570810455074777920951658057481455240991995688482153223691067666619316979056244235272650633202387757313101669032866688390326551712987032948263453202756497255446186945896412986060686480488585960330842742980349604870430894574887047247732052170466253091495898887608942186293194847443944222208480833493619648853792115224192731004128827912570917756856593216505190330590760494869833758110133269421147186639277096582662151338321656072522797121108796360326534989432995385230030462059726014843265834446708537729830311981568810601329104542922481641686454569734082855501711616445081747238959725517893716440170566281962770125483405428767005686342751352936882656533539733999348809957166358061296311667259641819168846417990587661361417601572452763181475174825354369905104147116704673094352564442537783955986740286515177278815038345480961255422303318451423172044268440414238411115799068495913563543928664310404619596540056892204026218468503192773473241329700049086918753149224033886503869278504436381273382457060630999877189756353043237973394077013552239318006037003298511503986026114907620923723848198288722993639847057114733837806572624183191383466396583343323740234344211488631251870056539241248891573612696699771831463008160452188832115019767668153300784133473699629332716862944844870029517107234439416121091896957142547433615590201391577864436916279178987375392191927822472040634495449553989267463448070531377247954743442705015653306855081318143985347272723151106431323948393740137856692067714169341253902738702936742276069947185513060496660061149298890398735138932789239320449562865661200389998051291253580267468526093745255825283520688213113952997856622566276045937881274866127031641205164018200783613051277216800715469388106351727719262138763506333996982285727592509403798000266328642291209180545728944070057343312915795387646250696595132006787473323444804440353527943785058191769746002390054007432305739489435472066688192532030524262741990861936312840380924547569804407950971435470733836542253092685315360286886195313964880914068990982921296813079216274938904705994733979872910036290100882746334777223737035900486597078015234014634541586528044500297436208209011071030721742496370463907780919562833845358875127814942975506903647968423248937736902417444819980723690907403662046424015856576767618783685620403634612333058344361393800932751691720695614342776616491169700214643217944302484310777817651134831637913110640181673999013906305402892425891122866537356921694413311037694393469138923185888024357928762530064026303014030470726030538637814914250637659449817287801602184421827302754533916693089821652179060857710929084980561123152085734328478485827056400785297953470203136267663732344110711539837186368677063235360358023626049574820139676839280283909442140985557496480067627100152468345917761988589879234363311571928923501137741441007911258099648793853564247064264111249093638216825200322446723680944775212998620596177379066113154464502283222064379838409539705624542134488738427388814677680934809317415117035841552785012138683728026795384345637727575488055256687104715701746951692086206792338111743383331020182898077540955566657849772615559538806589654254927373379070143454065552769611701082749798529334610975648596485716738810426924553037610506441660185598003484915835399827139829566568145966336222760859526559704646538081703379814372740309343389056208162345474842476558146398103648919567966896157764463163687322036336624521964858929805473730813769370793330335471237393847906852735389014870153827384121544297227016605991155754494101634366339652372168727363666042491925024070939164022388846070626825833359506136807461311463920058075554451528604430665712565034734923365347280676645211312740273844725049967649826073776389020217273993457672924442032949205029931491762447823269621183537154896805672091934991831964940619337857200491135094237165509933553236728530042809558067515937233346754696697834238938427269585584228771659392769734896914968238008219117573108448278883933494505821653640355037637094629208556601096487815216350921386736610092216522443622072128626852570290903683314837105264930810909838372124668244799502325055144894629748995980391300165168090790915447763539445175122426270017390340153914175218061551916572360163443707342196320034520018207184358703839493914004469001631900735999214543836271676761381583161889554771081795280488200629208127882887038481316558263254783551026947905435681394074895293060390429488340247167449536700497325905673934423860604903429079068385890905017546363351025755343976237742077695957522853493851638242757709384521370846913375576760454507758341819768283973767616683479242985360603883163323257973400558393519646303792450973972311421179556365617322205921670108729802230869424229227058886000620294386426032816482916143648767850857912008401434672466338807333400734690953937910308684931925402947726987030510792974774889293646079702029302707578935021632313591563229824661139052985451247302954893881699470755151308085247114697325189234897221145382999569276219784645547474582310139856436964300483221151501158476606257530414207568262298265560488380742030791391851419604649515685602206440933768893344772624109751922577404019025679638449785895802082231315733945352551344365631212745772630025370668980756472102930133053231290049462382416364889934277876600515844481743394794432170165644457860998520014000619374367637943568410842661060121143209221013254771641029907172391927708048490616049580204506552037362449912154691277956307331460517375835254580304769837712898628332656315085303093939356529992411698075411636666853940620363208302718729129253452752461107458536008693579192073509283343304388434284471111673849647849940821425122780304838753665267297574068411454260457272539723630409653184271348827712539986706105868869315333631134541685163122749639001948843519897187311934302432467629496556480859613710067842050455908669770675401715927709726362135515943674948096353074730940953042526275701530911652119073954427410423366130949110784106376001177078593881015346677632872034319800118321351743968886487958910939340963763720646857810908863882177229191246579396746971672761200671943108689454303837082663614817584635877628713932543751730463461875375050741800303396124314143746161070747203473329592869430423634434759321683635825590947071594097870362966166256804399364539113951926123160702622611769008012164845033388846951647750419175727128890062299965561900363302997123528933551019488513438168046601344892673639098153586751572311441548243728881746596978127898062376275890073431788326906218668770786440269390928552032443924916670162687250991179986861575152216635134530898012886241269981937469729621176056210148456073671235170313544468863500249181382600450535234173143452087803245014016878883124681190043143194330038708140434906935085363697307533843436750081274633649514825030827738775222764993952907190619147153096190734719964068186187954662243964009316355872402609007105677327573100320237224237034865198891964710635759017386449531554321447688562375994480594006771771392541958508822303542760500131010643426275716713426584667095912350852043030451636974661028957088065145639802089065741529535077936884429008230276309664941235089643214384431259342580230508966940686977518765067229982351797033236342697677657788173312016126705689518503291991756646154921012818778297215351866244432818134957365674947682070722593540537185232626676520417418186167626496810464804808498649890941046511027869629193191506536139819375341895240572625806476700296538858755979830036525339029197576440334889404916916208149455600447503545152396888861043750831818799266728034856936138513564367205835028950872958401761476027751205593091577523453972551162538159466617355919898841203895672446195694495096424371309294198443288279195298408816196657698225597802766965948032530979025692520694048473986800606146396614399872334537503015130039242606660215072100253970063769555133770026263844756829161569633215735598447489915653325635206434768807352582455180483492014343701640405395519910174174906155669362937034297352728033478213663983660759993319224782772980751636413527282339079041143152319657686303419072610899205633817026524979257365449957378896624652902426214704683266332759197306851200595343108839150143357038018309556924603078311158122005531792151609683598158955829608754680777289204158518130268421189157128436365762926723637308787087329441520963439848176226752097761779156561120057115598379407189795585356580020753164849662437734604760917184711182558516020604300526997278073885604892993430247431288896262809540772067014040421049997503452733786398502860224517171699116248002147392507696009491094873940394602560619254649475880779875118733355520185626118713441521585984875693632633557146961211572558639884168726791338181238438856831232572906324172979021262386829505409895914058669362440249661383025815124806913940783748511212141232392495545630803466244625693206797515231500492039619415485951835318007523901420556284174859615488178090901182573668578339233972432092947800140642343608037363187528289072654749293199827650261718989209277276697334209856191838200806286262456780535901380176057090492890088224755209943978337869899756302850299835019599018821286430107065805610937126921287427916877628566463301558207608851070192710234018768051519362704493960418914160197989701314783733742626328889593678687341620034041603227750621357314240117020312506729143489062608453220516406345032072694517235041253195403808182959474165850976402687934618829755455727960247212511024381255627453863621597636473747990639473794146832224124002620770020484609649824211513409249850252997381557919674606147094220297620359290756335666575551997626843233861977027152462385297202684720223452131594372791013717284544328432615342425467160264019264923357431004363123214319427864941099069273438218847739261980072232422407394386809206691690251748499890792316422868638988695601220801643888254723011760425586140427599501899151686412766705274529258278435153352620821961923134133220988030805963145570947516691571883054507837085854594044289089817256538338705035996967494491819689524745235820351166566884446282376921318843290391115055014242904261472320234334970148000957540592321573332873984695327659414400020039632237620129764920317926870833702918988352963248612986277006027410596510899929353491135268975479031751079651918187017130330534523592147442525740544243883955414526139704027472222018020796942836018576865650798811428281930460670192161095045329638504457820679456691617683047776612536689446333617702814417780058955155707073758396273152634443062186877567639986897101220144344602564031698198892499470822392832665872954534114245361642577822330284019472710888594496611011445477351604996695096441815048634477692879817519922761767099391326802025518845710031941066649569789239847223748029006786123738137575939618833391121352389420048457117996886846710190311100321505016343145077128413457515189955894599684449128168449188544164595865808781879858568313522480633157350300705713416804290400811908250363621033984450001985214002180767882723170015575821069445548768268597102142974411111651113591663039374468413475544441378278097632997774250452175738666773321968013529249332783972383064290249450676777058128934448435282189974478359159733223366385554067779423351161490370794537660726931138302124859548670981799811504102596929359831511604983255843109652155682613067095123852464881836608735665146873710228628352151543945243163360454177745198759837393108422574925919248869799383045064102054608588562200084108746880768421476633796762557291847103348932501789482533129025727468693539839480274501012809681471992168008722580921909780965774803126060524293219010506518773380320458899645145745772663681139898216870048686576451180700916531379352939571938852549880737855487482187089067968285973598873785298226316117917576054314740484075128932824281515412176733924793349683756578384464773697357939890262281865198074702346499760033010251753634483785668237072461896869296266443829735944843716837835813048235959271391902756505756851665851150866361115737365704247784341948384183889155404846935699867638069319591033874817671130902857783760120636922262170672448090298494798676470564645206217399309931024652014621786735362175155797691768986927917013678550802970709704421214388077294418415675048983109627580291111770309466615021867726200917216774396348616072165921713403094174654023339050226234442340850899139410325229471890120421949772561073090890405877548929675179075821074796312735983977739948323438166744065758216299231890416497545485818086567156276895038911254107215375290045700492486510278019409807422781097742613150916961628956373923709757173021694705448161838501480491283462318840351183235845556335102335689867469398385523687634048783728888731744243178436436086956025794706180497400739374120696060683444566762241065266011141724535974089016806762187213647727932902200056649808232466573819519525963573041838954231903310959442128194165125902820702959917590017228980863220094938108282844390345188765838532936241252632014563882203611597505974648280356397391879503999905494263213673794885286957639418078980884796063041698250277715991534093337292537448365253344735405731883099117734078770316350573369049907337549364550171724605711905802957760463228239536084700440979199176513697016483494305257236490622570850566154362252176440042536646493332243773669994235362720753309838625917812141386376848244092996263971471344039411287748451395866777631688521500897420220993030718958545100187231228311409380574618276054156215036383911556409180573023750184475345840451299647081307009939898844537181278866869330628373320903886356190121344804478371928643174601581002115117708996542132393956009961967681328591866404289032716265573892903947696985525956982416296983448818853250905733423022264714451109760709532903803149698615087822083322777921733219070424381166160877713733531201891787488656651739849458414629504857041794175852547992915562428571310976028445534470776891522140734413467742259564401265168732055249145033754146690828974326614348313768205125283626201532637289919384436622669979428288115431727520336957794748914889820275396549997437557437019358499359528087687143917049955295885969947051624662993932962821818540230323780117285811930626943059339101962761280741916865232946675070382762945323229378949426633796710497396218192744273245841974854351590034450182502181060316461669951305501961903273871515676188076990980167235171950370792321613064143181382852340053296952110353116406056380176376976252106294613768742324344304886619796994741817925354647130334628294832275527924966322169368458676544360731504887773838140467663645544740113100536907265169696356256919011717232755494874157532382606926095925614240562511031067800814475251089712688410422899206960441008385337298700348525502942492423075431477545007037347561951821765210153639058363646435092924969994341628699593588743845264851132917907040939775210557242314242730159179782752051928670289578072094928217687538371662383612582817463715014947805238749427109028641972910339067496725389815728948292226320022771927254668325610705581729881658737146471584104502273922391161568274684124147950702718435249512015303516283319595659757999981276205205588167287212066573815271030080373125934903548954229421874455606710062634448398342880587152645260746896467304366210463905566297373813365417084763718891671798972315461741870128439460679946206778060731983686591916658108420924868139384378246333457073871081571845455744523342627712156658479127510866806219407949644506839417725162474064937917789333129003950383613579476871622749429754360125378638148125550511917966918483527032320113816839811639177295329100605480549075666793524293081518748039759566973312147793737743273575982011053713502211061725373584352678023404997422311330141203848758621958203576018350635294744635304235155040274243388495158289506461852274122979240175006702407240487386293030200699315138479501332855743170816168020912354891760490523912036233669515104734703917034618490135309298315505166278825600994118234316670691073749390076529250297292169062396691035188824562433973103362449457143181746791744588500181261648471745769203867904158970675321496366032481637827111813551694467085816512820547634778312924309880629218677050568560208577058570566604420247955450676499063404015718210537517113879904779125319545750149590077621251415524714185808136392045129742347969810426509301388727908582430912961261021041177359778947779540082968489827589545295808877400513921009189458441883793183820046103625114718750958893585004139418556648645082453252719121578775571249957566606980830167156980304972970399935353888608734262811255554489509349175729447076412807702451012988420753266196381927016001383240901057869939293465791976584907855794226851780140483014238675050519533673468372011265615861489310252690913109285949550307282962019131360775726170635945238084118254679451882213649787538497994912740226493883946616140974579360454043221418108558100777543790477357650280685178491245057904975636448988230279842184344863167343933928876198411336345473898222833376770674006011920333748613896235173590105828035961054545092319827474268526669896651829373017572852634395568610603528145299169035211587911024466500823161942975911008060206284478256675638891464875766160225979093389694390838381898210504428254277813503889132946525464445115471865704144261378477774379279768081832858901754869894869452818012039729973675636958032103512290978438736980426317814823737555858513637511376293904209412820660861398141780766848527840313501329483202057340686937570943763971156658824418768762883013732302886872863074565096455789388910256160802871118000019757500749699425748234803875595441957903045043745476229871259379187316510056745994448333274875455923119428782794941185017131350042994922244013449604753838797782430124250930133291967247867264711866162678059033310180075249837438717898839502537792230324399141649812111809895284070850851891850218284482509046241034487612181210330584852624996779166907665870440130639864629215145446020081528831269357586677512438763126838141452646419924528085015029536075425144097799553634929529593347993934031466808184159648067905054386437274138975406788195011918844337901604134574238142664264445389889949565534978445781984060930079911801796234291680241871534985495902778090655992847545982090895156490264091136811150713610865087049687928728417467838604654038258472087034645444960053425701566240440957017540993198714659268840024942848980069413085369985363759318698249605427116700063647750593089135923854841769740766200956865560859966673865875774053686444385336102126802737537761708807347825623680427082881669873103067637822890453401725186297321566865327240225954008701541122119117669425923326024076641848290854566176335994788306269469530818664557832346765680780187685511330952997186134585445359837035386117880854100294665465169958637237579721916196786668180656521232735788144239244768890490879932496013106323513443806338145442338489034158494032027232164446589665581306403738918748591965872240725495524205799808338071306263138376668618679990307231006056049266921738627621367632464127839959514039382352728676239189064084557934460213918772166098963235800794516812366800377311452052309490404923950853351520339167413558276548704711999675462194321713455048245816892728639977172104588096708056407158075295622310846922369428069591751563873645050247567894271781247270644863397521597706225803315371182988796434450573538172337020049287878555712944780923480834548014256515444133454994018299771780568782005275366650200740443842683870834006888514615854144690545013243925787689630178966440142028775500112416048625055342619415349647454338808186948526701933229257350520403883307547117532021528832003830831496390074720301529387201129873504640545235982796275617051572918152157828990284416902442720416762087206593471931247653797589537610308261794726286948384388877227108904587150485640486104133569387918818000654128251283418586734468691750170441412480310512277729498404614670867402352888871990144917402318500374418669323510727619660509262263736643507792132655925368702171160277147500482431141065520883787394266518194097153771897561926992119036971351232307023853504226523535632152775441949923862119940119780224380492799508103109676355556945728317818341856126498222333757938845757872472708017199884144004536734925887210167537910527850792035358553403889492326757758778415149300870409020460720089475451430979207019486039278452939546378721062298708254834502999861008573112387200976629831333300288621043135232484912524744215313243407325660180780075192242360155349953101447049596335150963600429879752431052559595824597781786215264529130188980779206375989790622904276789262166369887983785958591408630662471814899346446900826284323135889710985327603509460523071585694363871872927518125546662231882829103786408118461216851214502824882144238926608313800808699584122665190016177272650492859949130229101697795135598612483476580468410304698679584368511652838795199990976269227576681901157655022381151472514247748987870905454906911910526186831254703964583486891079933384501120723245072884332372520196177956547131317479990317063356559124798152201183187956629484733854257654214997570047899433656103754700811757556958985643841729907284439059060123076834567343592040875176910153846418149245661980008578445559056469426846610812659578769745299772748828121251087267024837325978857818097950419225986534305450246232424397132104404993264496327360749599405565875048363187705818330932512373596697737672152594119100566455795276326151933080901350913660683343711774235104928974768315958833660590902281809800435776849169076432134432656309603203169657351754524147958661301609904710919955325803025365932953430760403529431294056475982520173411465843171986297020851272534181526590854198235080545429158347520921867043620242211330081353447459004356845929418775862028196792584388713609358157087921756739186768891740164802089801995197964419309769306985959221059228958029726480250049039884642394345806621643841119825010572385093696856158999752725078594763107059007096799411486208148119332176199588117878119256056786448134463389684386560539938897306053850346553033178556457122955837095807252739288935515811853865703916834105876569445270025067433147453474174239640584570333800793240577563171115024469032077406933615753278481551246465071912601439234771384492492785239652439396923044241914248104533774583481882556484190599960779651343571193652838380260156200700631462270474622030640911860026626982535662793666243444035316524200309480131742191454526566097019447871152889830119167289550076773427688766420200298795437438830036453502673177123521452721504209223202401484964185845244616358207655308704613956052680111089203633828960913892360424305078401779895021443328045701227601576977563552260925022553316912601622053328293324062697115728314953051338605234491163334152219300065798110584725637216528559634486665375613054331480111607387493002026305351500931065943622323726088598978355462198700371831681224313907421439254503559398104660742326854807887566861575757890531023815565169819241548026801605878921763978065713123814776632795593492625370773604927229940192494024017737596309803469081167413911574167056489861630366337430159157879640781633890433718559181823520934514659294111482004372710749017789655347772915260887751144640152748052325778748764193396004192873957237859872865219185843619473546496880842104312242465541281605242197473948373253296577176546602653668306459694769909359613897639970488482026107159211617706901684792756062854818560498064147074515525358976171110233242241408219326580789383284514987048785542471657512203467535855355222799181322498727326392721301147651283555692013681253160045243636802159139364641249866965926807988415157916403566903001872110542731757355148066222446250322167067596111561887395239319031437271758689389806517465400964786468808317844622501878117173614290136024553501581689480538920615200844249204606542882651817373283433627222431422334688516204257153351750374237808386393884346789524169595371097265956254352551574842579940465630272157672195162916923132018064455919213911653241324160743888337995174055596091354798186534176071728877859762746498648718296330033177468687986363415124571585876783199458269345911710191709164860821068594473060051855141086278632412349359832168623925243088599778190719162351436758989722772702260474369077565590382543280026009078838329308491464996371214719117331942026709643627067271662150476417152389348543327183465483167230275796121942286785598524594176545064741393737163167747720181243578107768506644783782191724009648697804384789643388192248794547518603009922518018727610438450531086928731887151745034132509296484143288732583150623004539165249360470456160939609334942019544645073388615455740490650295935272404054178723163788205290849831168430190575980326690029070222480331197903527618863053858250760323535705682196978348392205844613530629691903493829903089172482380472143065546826851085401009603380707334323355012790597884296648044193059786702178245123254967372499065625895208913500631004365553518672880228675841655740758392969576302651507119090701522445002175978000959594983998406078963345903831681245785052655574316859111318289005387060497990746183594605530159971913128899670957654055589512705075989259720632111749019657468196908250995906577905687305630584428342596366310710974293129940793138842459424523554682902180397100576430685982103273943890893686898109149390096274135493744291013765664144433437505126713154814118755681685796188841243699430966809575884871240403448127989110950924138176580598631675527217804195861628542776401807571413330782181139869890280827049021959445191117409825009770955741004245821465507332827232367887252713219528431571453829513119609632026089458276092701276525202340245716818007716554304084945987020800151227217729868531786512239983115663974813117003711369791587427913525794607372183910304261618761801900641756115829959005986420979098257250313922991346334366959617488557098028139814130426283565708608990049156999605329499271796286643206182514096014979748990412213546769697593341748250851499703212075147435954573763932620791292300604444439710363278925764413564872656226772044702986724939778507303919623886806798683773869053597643698057282423267890693775533589527218977883498339517517211798592803942848824097250813507987440633467668552763421993182466713472669914104488815881545282522939254355670311904955061814924420292228231842932951242400389634306810577081379555507610438858939553367568955777003776864480291545151611403300787684405045126558439003439716326410837381298197687067612256268142669290864834383029299223480260699617282262649181022265663290788637756258619833546124732652480191924889476768568239679693602256282229289672043999772735311443604100078583011675940404247745981227149665763499511027319815787676673656847572939246993417588995456253236302223628493504102538334671136463363656988121233322968919873554900201204866288219862415586277332497162598415197525527660347800208622190967673592959345714260604501971657114023515833227781760524763519983755054029362336436801050073186485559411402590626595278432214596604020032278911261924153109875364938502882045924739104331511752539569989158225384675783187716605952009551877054064015925716093986856900979171664566775853478849846896476990834709160890431292444810830918428446621346446978863947482303004057448853110690822597722420162071773749540872490723171752358029337124651042760265319894012500023077069446006028189770864769382116324674305928291197815046527082405172221673108051597878600109847115112582379868500984296637289401128145984072236250623964989073264388149333847710871027694654449476790075001230333501607731837414522500472313636310718656490114910346591143435747775830235920758788942166819259976017210914782328284047175100486753275719907657364656342688134343117514533456562096702756576926617163235511179113846011617793794305971881802302443566999991215483427446927691943096076764948214861202724969259869592405631773147680251754878832028357237490456763848807145327083315735081793773469934763555936865100453752289494527056796270746051080493578438059423148596450321032649378374547023550152591020787880981745401200008599185256304328330969705808360533363494984296474444243739353366458660255505186114779214577305076567739978829228240479597943664542686123522470753274189947797259408649646545046727594977791412114485671787663674597436069189766210088310541011119280419327732597757974321052745364355129736884183835426622960403358642522644007641014529889210664486408834680653777422222102809102676663236804233940291834763631864089235792140282483963366400655390919967072870124384122118103343231640403916540137913253209972744378158838408604311209280285609785147558586712356245031630361657580653919757470296365205239581305853847292001659263026489057691114873811873393335769710712138071238760426133481113213469196403388528437372691079026297891213059622636705688261539832635188802200645485517875133726449366434447321010626554282845665678269924247876006535745038159122677415140779959196197436490046197651063870685277736968866962267248463403748657232867783959424644233413621465793042434937768041669782029594567097544419266851936528506188736726076333304040583595445406786685745693889738866280625960912070570588363888266185304157170022202346741733460623243652955037173292851456805939451921334633376105432994392784883739595303784455161111988747154308986982811339527399976432167736880040940865014688594339995184799703067724647963399111754974892571969282337928890445499656552659268730759453384644378657158035943456139299151724698796080347414020460712935783428462643498378779481625521925768394146637867146203337069180728134975899355861020086692988076128477919216785238594041209747205321024864487120784810162537150461028296325095540473944053326186493287239509149589429131258783466076888150897102538174306616953214869535312325567750510007860380951629354359007707812104077047035753269285940331557091569962713734569688958318287739138596678668609100041293734589761824602656447270136854098456618243085888666562783866501456093226480829818646619034154337975887983521041519933176346822252860800755527149084836845181231296286608590596469456066200901821684099011014320411476403955944306434013052049971055533679746716739066294294706289200502556823319435474145223217789996839759552573820704008735636048062722059712233377785196255500332754942687415331892195631100629763591726611562394298360319453405089252932530581580904652885808856717452098214024127917406959493097183879039812109917996121383975051458390704263887001146760882380432387960239799897849195995713170445327971984199494697276828987688510452880505370507577985806565886915056730069845046528337832194964691778341593794652082060128681009704424714943614467569511672448538386045459210126491317926317575339258086829447852455126845216573443091019541641129287526140221502128091329371141934013538342529577298392555124301297296328263925278100808150890528234471513775911933585353410084584001525467244130728499736900203089107868626498533960445969071133158226389575921610161782651562529236601654538274117290564632145802018996037663703115182076052123041431322772384670834540158618065380940063245206544241106290795989314132423721014225802697880686574388414862480188503487503312408067721737263541077887602128616967123994830850221710327387079793586466938878848540051712688178585085601886699604920495843884708254207861133329765738715679877605973860953730976863830689602644223817333510403899472829865879116432544554427583365907305352639784638739255910774098834938763308980041886008142762909085786959052135546881279421431316262492600219549294589588853332918441462448107266720744348789780279202267661862569146939399379225565260437080065658349018117364005387168437616837343230617517451486612177963441884619996807102800592710465380794048864022643194125368539032325536630106474276806146452451998441993047068531759111460436974066428426828796010368496933643039168052361895139803253600317643984306831115906364634479642454602736899537286926336304372463220720755141067068632406182571997933181142152488895655653594746054939511931255485798815980643501106201439615179870181878481867852541340173552129039369812451795303427195962511707721727018059491652472140492303267251515355450199324179305853142728923050067767546632400321470697499737133151402910250795234136877472115110620783884849399353733773958274358851238897211796381182964841181252632134168592982369395591883821595478690876340908635552086407887582485819060196443255924616095675871109936676909966136402457654940538302827222823329752629419694779981351488535254108514141655726412265862828637843357525279190099654196901111776794392382363189326205757957859076403562550337062512270463149098537803381315197055283672421499587656964879513585158426993612561640154116698756805175135973337390486946516885248557787905709671384122300983666818002375384102608979251800803389665073810982567879780813034946849036440803760120278438909190115235780627415669970343076885120879324224623944045520544548697559916286445689350100437391407009886984214972272234892732124172064322019771930392169166314633209051257401315686411751023135817615208920395580559442766799360285146650960308709416618982929746099958509882968039018542076413512620614775228871798073592410694914329795779870571468298365926224950339379983414385893221545808152297335381972251774201236287351847170457333200404711356623439576375491773335440408719952911673378303896732348178005825719743101232967415868147604550724692631453431439430332202504539084027773679782471840890067272803421656933083904147398603049338406361366306178036565640338594269651649578602956391045229249583424331923521241597513523087267638877141978883406368224183917518072803871517737239310776059068686999622572569817000478063909773536390982863894216019777940959269233756640732911159647468016459088314156793935740481832238821501694908803502567759535397276242525924892057729208497907386935046082078006532316702005341823668402228663350906193414884686424771697535946511036973735951588878020563345893248370825398825270188306061636123383937328888338206781600806863657465004203084526386079067205260270013845646873788424495799155619481042243387506160209609049588384797638796601352729644161744296762880957516690599438376773794488951605990234357933324783370305592416001532959416900216985481630230384988593510954153415655433096538987662070021958651393617018130564687223572425081529663374322636723906208143885869300053683208261525864102290106151616153145495655427393846544387084890702298106412735257357098763769796354873466368299257105874659342783203652544099231059708264493309798426829742009355515154200298451830646586034088059092337470981125871882898651330860614384995178538029547048616310188068834092546680289425273380145409696861719408433536469144529467747778253401419517430309350157225005645233419453573411322201050544277215970492496523671045401286627913074822927291826516532904091214495580215437869712572059532397810787426378960410331282930989005177536487423586273518222034483654967903834288613203649457704468323357503938818105751932810406837531068534771435333840416709730165358690307630508655036122246564891352929651380934196738538402859793144753147313063057738881805906130432145082518878220760662087928852735103718564804470352730350339890051394942123157033872861593591233613121185562604774744535347065580223923875505477307417925222701039559811898783358515214745779732021747565046671714695595367953578100151281594914228750262703692226133487055452925345773975776539098619886847504375261193283899205647916646680136910409785843229373638127951548672343370066669992349534555185167874680111220530142563628122964563635778465923963021357299984428505480660793615785223800749513135745603773475945489051083748310106105695893378082418969751441286547097103131815915938356661089008969167483048612284340842557971138649669178190598866954304958309711412640640768772289545061876503594167121281600147319329114566951323675249100119563337089346416473941939186694066666802074156040723132278338116726502688873698375994219937530519215454702191327704989684907999947824852186802868802879234638849364505035239023158525304616381085119053505969595294495738389079369514309368570767612589480370946167874773641247195611849198896535425692151911601049493554838599523629318370813190983366370993846068569875664090093626844986862595846410945189400965757833034289614936884054068877918535444009872407656665182716341285085358524477029073763937513841705387598671733522935382048216953706016257904731276980229661834764572102705279183452955847360366896407809593929301757972513687487690647225376163831045551716006781592382390858359708840729020890570206788766400052103739484722130197270738351031066973612728950945238608052092254742917451911131402845459151904115874538944629291978142226228118985857277768621110381110182285782536803740856420596415932548747880592571240375874209789380538032061990336434087435874973667500000105812366873827852469727404816797071272857090279094598710113328439272585245752949044635521297792302740804489511706004701592140387164565073562713886619899616375705264888389482566887933179241204621663204673570071592421146702634713779815147012045503950545235152489115531341943106333127076238308271164247403532425704854901926367890451584058502205237357774730446404545623408381542420603449097147574300749278214849628201127876832637877827574869083236963184297184628808477622435772741406062468060105372901153162516165479441337811509094672942503508901000516380402696027797140173341141922852435160328765066157049285259693306807246170250514349716154442162236968789768269446344016216338473897300385822408277740833839176017368848490030194597087257649463488497437156215036741128021945938900636564739544389680259012686079337473619125890246712590114452644951045208237220900064231860346016984946231680818592177432796124605975124006191782941417009733721435375753539159775997531846559118914061052227899512362258638081235874920965389512034587915815572701706056777775596350151304299317587056944976480356400738501669872393881520080414340005103668779934015076404994890139213068204926009573915694978693771626530656938852450835450187019039097430606572124996358650337133306298424284787032426493397641998157233672885911653777464107955803901290056713556490372084211327250156201898379062195273688866726955119518420935515975740687190710343086582119257960919726305127673232914084731389155629391347218789990344799552307071213939310136974198780713191197919048386165909000710845334009531069618267728655056376936722482893274479759079950944402480301869779171481805967351986499332370432919399907463637253840073366527898624965954072745454854992167429718986386696518671597010736154987370407126283272683287437925103945038026318812291917969150850853551903712748452560187970258227627998298022249124120703309863738423216238652804748426670813635264934351024941033949123164656747974172128228069639036469865505784461751828849479535457716864843299243186802539069305774313972967439895878035095461426063597944050912242933532398903718052257996738783367705656196089154715238606453576551939193452710547354437108635446613132837804541195264242187091405610812489703903021700494391200206953432832215307838156184283054866811677915165330368678927127654274472206267948515228013527319299270702514183195705534641991523132897917657019570837888991787387286779040734037203075149442315604570501423560052031867306448797129499642077680481752693355228288046378505667191229779450338500695141360730717089361029273431440146458364270857391815222405744145626858683106445527451243861164417325651635695260730870370032575652857886629149001339900110813234282588623781475741988654884424635629355138700930436547898316547124245282223354625512527640097748340373938082550511841960025826342962376878827487112592863972733507875318196678665590297979152685771193911721787185192513446384659481572875096125448922990427350725057626119392011964334221482560775438979628066185493696250463170991966709445610660226475480162659900341467362586543986552781601934724150925391523779440466222707712273603850415529028514809237296268132934289417946328909522918093318815380155106135409305748381712246981477912260065758402977428737512359730504465685830517054419422428055775697910634408507942154405202160380732362823115969685161709931515717436578804742761627666277006742840277936231830951556086430267577348083379207250992305071558879162164686567516081476850124354579311898733506927497792130005837199016401648820363901758642054747761127246498582788297301814608411629567224049870033276230132202209598131526175087954409973893461805267994527487965472197609491971475794880402911712965860102489477433903981598734988361550076211193497864191690556390330392530827967756109668022859461022040866669674259330099352374908867190713831338667180106458451159921195816079992022752839279505804620823199428920253066258621861597161075108571984737968588695508005453936228630943184290407242607142099124153574512386234921628901254774383669489046757162530104060272709774866564764886765791198588863366071817722586537876686900891942146933187010806331942252265025521507114538510276505301007360202840080421527171695644575395430836535345633176497451898404550014653738284415572755091774079328586423692770199972918486392682936434542063272844721080403518980230813300841345812902895604678455597142554493181746496387262237768362572409076531551565475212515494838976699639412967826592861283582301595921871188478744548155615247066436363805804267304774648361536491897452745776305427837028631432778638847789867738064545259337580707714075989534898695176158382454799292983380008681240978421417667850173345757473246588939911111813328916122383706375223527462469964316306382318998373258209242025443099032309254172891669512180027849745064378964050085236742614252993222969457346907206469130411054134288135033313821207164427365315860101358948045524190658561362561619303139136711588086121598199090669963759240887006732336727153924135243914629787479590892546694959065587239054575883578496059914400273970821504106950272266241094037599018555441032621073833891027851429576149716013684645000119654921053617296778576784853468482207617339651969936758991937093737412635658987928953409960148147648085763253782276149411754321596924229748092308135060265596536564489816831536266092858841876999066005108582205606573429643506341969231272986954190433730695694118468467971593411531040418082718922284684320329814551177339340966632929848847175724376073129934616200593718880432575618466314310163122989501778603136972651965667277431581199619819498606723271590794872924303581462565840123655429316866666251228459696077702815274269450847521773177415178063233913594130169957045596236083811810755583645003662578648800014245279135204948160080735306262947128602672075297247987117177520015932725135877561894821309337114398711334277460802620696676471542864000969340291544049044664284485125471940014477803273094156803498427054676347216216156938376981042111016483573619744771204726762356103227782686464542620129918093428240065509042018395924810453670108369715075904536108217237790481228665447135585271770106158806481050163425786829954645878930638253663674090307044293961532257318014768275791863981074061838581853246769735632696010477342442026855945535756572773083274250696400354163820495463621692440234414353502410323092028634394386801920047731028088408240724193620578156722362665315958524232189768589669331957088489098407541770188336254191930989564853795094272559280496817790844641410518535858476309408517163262841084005436714086450784226256541317825820506110878800740797637340654918309785455926906328263875035518122491397995855857520960805565271339983634800936389193302587200254968699517224595674024759089040461491704183176631587811826522552410988010113280455553323049592736279030753879168389585037098060705701390815914056640638908411013084184983956803671223058754569932122412629454887370994142286646558237597019855133172598139332139706170818861922057339773774762461153382909161278430528161882015123373984447424587373158186948667718076454723697395178803268153326691855964160743752873811162803492486588999868888772158624541582755057568897959078673135414691858417766223893184281732543968628208530080683613307493613374841068483834788645540558244397437380216934007648189541031921295337044420475736001904584045054457056651947837130702915240166260871970320343248774398099833872492566575378151101805175598590285595371836232902630796715373585130460546225134146020296124728196787462295357868526505628172439487724416993271427332443672757501245315112068666898031109569218949937326938429067236023513488353072828781746016857817951973959592558429629315625105746130223148235551406763236568347372433263278425027044094588679658060946871817077884890993271397115166706564417043514214804842176648821884762497795486545564179492454955812697041206650523540735276917296189061460355129816042359598452751819644898083626781549329774086916020193054824264250010575812974314895315593947568391769359675852038173009607091360075846242213199856678728008598984575496036070797014977971474322239572827633941059759776066560089047823939658953060622314854535666275805650121624316518609036892826444407734048504867253273442978776271425022190569519129256560087069853911481120729279271637081929403535364924788625005027203399837203987573394078587466128736890514131509283464481664261254171557937196722053968797951881289786887189405108284176437228142724200922349359412089951562346083740673291701447597503188897624069084973501257951568763687565326525039469835296694861104193367699038999920411871686659636374131426765637909664097877357557262094914618927770501608898745337234844435249186962190179363977021733741252515385915017772223915087699169766382078357466325571554784806270413278272292544858964273698518948129486069418837477375822181858089176625112878982870091809220097509619600337288518203271991219006718177739763794385352233620209843512248277624245161060338276298117819523903740471039321893878135977116534888547480274104151532481481969210188166549944932072140240668162238883287957708217437255218104507697944361102971137129576751703123493290782607287867669501564720368185573583360203922607387564526216227938956571105404557158212462687338109657682478474502066908531707031591642199729803741075136814759622466869687613690013483880610420492048060092997818913512546263541943060136956736934693984863861465910296878074613115916662101536571129609248301246034694247930487613805406475363395013066290604362962435067945637080721938051577644047215391036465173714115016110105565265638250068276003924625628365028972167918660711037270621454478265811109444569036891244833367414043698521783412719554428051515501078673190537622450864858184607563901396692038903361011480055866218321875231998519397311627515871369787473899972620540698393034703907384117034995298905977032025717384289945821955704017804442922705949911401974398588025674130917018111915213207259247396863252175771508879846263791166328762821035275625665740756656069801804623059799924609489244873563428298296390851830447218242030615832819219700579998082371692449232049905441460375406938676582253701809273780906585944588251923321999861838610067180225375313466672482672021846990869707071407810932378095052883098702317055803866703479284341498153423327187233055714954088468642540408209647674985454717597104140560117690546008264896133874871175783569407901987652982715182731442441691873611236233225692284168198566248045696126355086606807967369854403934422897041858637614635092549202739499072714118966656594169236572983847054335162410952080670311835774983786235316074574064611714697286128953307434970368632226508750101435508589322216496879621115173995970666220234130989553930602317014883919377678935045235926454747742880704496160827053359508941176660927837258734549381029695679450013647451194925454929025564699590762808962544967157130988061544369602900132174719946928820132506287258415951558487099742872489115995204220603541824506257744271729850732365592022636475535493490669860187117694233477278532657193276182218765483214493977846203860822636591267475413478026411580122320233177113660738873364978638102162603087062649826938866195510788937773844492318427377036727881913327643887966913086117922398903632266665331675669395979920161335747828892315742509327362210882427815453354738235154670500684422529415466459428506121681735042533495178605770166179881705291938460629855655725314317017344208824941761651783882991848545169309355012280723066971238127596670395712903416170361044992837815405021477896786395166002841322345399192225597916590497382424722243582873280879441043147721566848787276960580213050686826255614760508407537422019504894358458019879820927033283214845316427537019799422668143158060567609264395803282633364453231966068626484977621434517083136549351987650752234408233252409308213143709238874276838044785778871094739457029013553385564150223125816778428732490746648127292338934425969185172147483419659390469613279023312686958586858294605724156939377687250620767938123943733681703246009976475163834390586543048498642760663942963556717464362157073209953992772739236935979963592924495628002115956730982237993711675387596045246137645470992504686724334439345430481462879221135920643386550818602944193563229820152727560946618865961917998650850440113265919241597136970417529463098104761432435597220526742927778970906699238108788096103996604535574635102501890937269025103909143362463613576418420182459419347373944815083617098065453335933755028028431181415550357575280784062847323304108955585080885324758761020611510334509634901428514511691270473497284851223265711851287429426012416816755423205727687048311785366946285059625036809563299148267974580375192957113800710944887617421741940107148712289142810010010376925970501462696795456743799111917998653774430883318886263175927053614134807028233239392786822709264110795366384188343053151718810518650278812258300915162816274193328402040071860897275686439185660794655337481910285663055105815059199157073458175792270536033715591023253443746815792172804560410905163798602649891221368708824262406291235377964755032143508969507454907166633373944880016554802254378434313349961222863136658091794788800671569571054700319170210316674982575725422486004811091916889685585808610940707111448160386646626793036764083617431120696173269076558868463006209144160725663595032909380899232717286824474788864245548345335188655144683258847130179103361786760821319543009416830831082846236833340506062486368481096678393181900815313971875113969663738241385443802682013347126864921013526564747439245128628884161838854318604345110440219085213707771169215691330916002539418176964720566340966686623348935331818378292837760345192177886872789244373275022500210707322441757122092775018997613060568506151708231504813045284432118179598974735472125468798957717813952819379064119668253851384342591892711648830843894803651111749268390638354080494700167587819504202862577095421401779824412805796955353668726814014888728052215851852035592299346927892573720504056885628289831732788088225431814743804102278924195217966934720031552110203508408723117303429851175911134510843392271322897563964659653806799161779565007820390384378354533807791897855578181762033203472021561670244874694217175277627644217174327052622215592714409503305464083980139569614133338957149088997125514904157303272955538795082501069227407722950607371540182505420783544459952337669174111594546157203857942442378913919106909625915455260522852608059951271856983288119887780056798971589819488490831708645929061230933087640322890718344935361043702824085477572524700143937391011189039617781245346829825188930753037554425001612272266141180167426623879687409177851322019034820856941251276938417247908322293930893076257776975803517355983105423084810179587728794515398186946599539238760441402427190769883592085386042244390194848226724763210516125786535865756333194960945156165108393016642834458659850581979808348784413870399155503309741869603941979737278356931796310575873084348430849295105861165671729052547105173405233070210408806271148001922390796503523495130987091460436647266897198359584945061341407208326996721650882157115535228548943414062343181522932776086915888528798695992121230809443761869466608805130162026777381941436406162343127276617088567509901157663339758691008423707252362665462261125529902533267254454220635276264359523805595504652619497316664202035665837097907502815757959014216704755548817722823874599348967159628323648866878064023539672518679563597207984739076990561862414027005545518502144515888642437576374569299356619846081155298102973009651165967659537032985664388950328306322286336166902000890494919338265631918751308943725079046319188958005404334826461035451422449767456451357184001854598562143761088519866106029856054750114422903933066616863778797391718249480610146797952862011321624886711908756015576185663334119870198784906377260321478518225503615493102348348601630427780304469971810033339818720398330761827593343709119206175755536618496753150653080346939967099870833326544439369135018489316541258013146412476323623488124641453677378332597076029584580582805690303965797419555191207287656479213153632347905348582987386712064546188222823638020500002781504443266993330918947458232636311682499342394325698141951978991594388136941675973072540675143708204513877905804968769858030412522809028235481341403351221657997669163560546625121334932352296424211326378842006740928335101066683085017382559334643417606606395843741356933068871635655512180292947583742078241209011814935630344277620136028335462816049594942693228090608195599840110197018245455798737916708603537936802597520256804610655673990172423881939271301248614949923688033779933667957419028824499575144240128205090679790749189148972250350866962708474106995981764407099314005632590749247345737256017453635593511351752681929545181970329337808727509879890684604162274677782798428781806876218323520352192845893961950611095503227271110614818970197999694462271807928428766225457389600777198378175713580916885163041984976442678513143306799350996636524913931786609315284667406340171412996692517325270879890843926928621248673328711925408072559622899580739614182656981958796724093456177759275036138424409850037351633864322227537073095549374210783054258864446871402085175578437763485733451386635612306237129030741339155214949358800835786165136757671751613585397112102248592683779187896966475880988484927246688353828412102248430887147951031228433728352072147291659623362755672669855362802923112897560262391260967556666919069295851632690840631695212773025633161129383428913137678469230681121634364533054685131141899367170686348898638475015335576280447061862653792309237249213389361481214770084114636312333855644131942458750471820953540494545047728990830230398925303565498472880649467695407144706483493971323640102369595403710088857199223518442465403918416799431336107982462541212422870933146983271433148989545589318435245991911606641301876929762929613104317021107525218961474251699201491395507437527042006471466796898326969441944486460245203087395515571041774959396815768748641381962744273339267586457905088582563474257130734034841129059845664197665497921063126740172052186146312810060349167526704636682434391864818271772661353780509947203072130948299641200070706335924827585716393534275285419052871445207468658355191991247620930981339831920636577437471181952811506129520891467321652726530607485831362349422799273890003811989852256154591702815089855014279305419788230990545754480165866351809181234330022920259906479600382860447304728044596885722832652208827172810381979986375396545349054654697967517433732490707289167508038425805469883296924869993202732336275190556242271530245413350625115580486232135363398591660980736567264523423261488611908550980990312120007084751620346168220360208943434929779443898662413575531850279160698384164534637007187768499944683040760146035943378573050286821597396609191638045801213775804451159573748450272954734846964913164104768546866960029154590520543440278449136132154978695922305971854886927618738690316748931010242828329951144239268709585163436057666232724131635329479240880582470610899076779763067161396886299134271767559690678513971930928153319595545724231508206614712640783997884495013523675013427825405129211794905249559847736123100272784923583093399194127253367114502479991619698950707106131105891558117837185457939485098084011857273600217564258695373257168004454710145890033163132469357267456570919405115649544986680142306513685949257122723747809251016702588623028017853380081362668151208689736111387091804458317920832731477911523927515277978888016925817669490652071152651514572581408325873276755168910544110040611430227251268675512325244517218084792622462175528509220703270992364832057073711968456810826630411256552153467922161826203563505899170464806939089091383957295151857470437621241233992556652254238344539139925782428517306965473616214429820660970823961754887003574896590161434481945205933533820847442487375681422746260552551831614499588666592100620562166222963526234450676704752751979448700929390260514537335737640175359348022089171057411349353387812304796607073267728519660628536259348977709781223300005933526381146456808676763975235593812705216749486984085268208509570505203886308667348596270978447143661979669304029308943290561466857863851223952003986330388620585089622940484597856426229829253414407955409663691569451495545388597337681115116061041038560687951898931913367157151631421368126868759081943012298129481803357963715069626341729217318518769770373202170605555357473173605890234276799095139066841165397667875066641265715720862938456550970247846375735303200120837284850237298243497474789791544763597035213173264412779193358862304478670203970647025524710704201656651185523461510085392262959449441686510886540960837088042433334289293515479454226199317148981655435303058660565143009337947141668132360552219277528829555518363326670666877189847610907140122993033527932329658658551278539120867582743054362082428232676346030830158711060608910740880472852903386768091248542528052282190821976544617536661537887338793450774342747600411623992734652425691131447063291493898017874966844306471104349092325604507541114494708981320922321389054960640701339662955112856293553686315169402191032233462596130970944416042181492111516715445596860840310870823860700345125311376141521778266242714044769277815135343130960217286623492200844547519260085308930421449832711760375494089476710461604284379443279538542509754821465667471791050003537356741438361846980430983676258183138858175388800687408700842500688443555470125657935200997328431482555929743418727513424480417067513400960308087349159938993337141536912120309654932655665963388260477558752864982927957435041956915465421025103973653946554157173346775717168690273158024899696718144908224011617434313703492447229731561820650823066955471474336662368512553784804928786021715433441170700034415596788784099589689590893273405017912710422469050675152869330129814241876270535249131185351371883603189898706111856729883737923634429466309649740647260768072169122518092326091065210124358932520130859039248174984445069991739892014049645677171639513835594797170050542391281352542451086028210557310612052186499861403262410652626735193457468328152577034730621178400198030366911143655724502709763072257796726415880568644134953679671260601791680234164263403197482474972713853549125690895193106635479653563261320179404181249941767301095985830309054493429941232756656329474989438820582373788129712596370107732295500382746050622115735877477383925109792237644077530791435988510180707992636823269890083862971846172730280319858982966003872494937866628103795356802301803866883353571174912358345434458798537333281860792810580537907614126629602884644603949458406153830259826183304678174362391296800183815588686476555316544096170251317665959728355816040929645140734798503648941425374820926176005129193689523658747302077731580347662132834636835161711991774801322243349917737477188452284283916901860271152757413770543103375540074289744679633122006445918030599525859014371176213310128357202199491510942361156657418995304117992184590226594496261204878746064845551950362808805156047488256906630182302042833600440074328354322058075504693999731717209067641875303556896845674119151474873017508608193390531095892566083603526158079939489125452475653745012105335765564871920159317516304664054503073173264241776805379973252088826063769548608805064871041613882739276002666287166247713906449490974003820805700171289951493529222593125429342373206417364257134032926364936846398366225710458239430691603628721721204626304668338182044492692564037095906030756228504593319314607938447866119561904846309297141896067349438131738175351909698271486594920301425678989352103428090795053022710559382412908330578354537293838674038388834837794430550751872211775846347117919173062825756644058174018630334398092370484457400111006197923468914740422640864107808616264027277422725396783111520648428096248515407052168361827737072291706635005290855497971420488776114285948434065966081767135774454920543737625512192459423049885097305057465936935910806272880781566302148415818319370565017958578266727795475727627580800133438815548086167990216697797909468436502770292846334601691446896912086850386979247322249054983812288280424916403672190688419402113861805653069908857034840553026775916181514053465906718505611693313636113288571013543529766034190252813774323929939332035349375685822375592507547943070086245465361360861927934720098331124627174071590060815524624645022337732125313019725125104988182548890041882718436808096306267739074318160208730949114958853732835632982600374441566150773390313269187264922360010204754552825921578599107267239181311946309558835066078584526708282115780084216805597138502451108307244221111904792908456323796136926309407047606651994473417649488456483336037094283487242565575187039707674780366774185903711474141784519345858386793288990950949533602478454740773238216585641236849685349845665437972914253215888469793781396724387001429803246892444248481602603153933141026108409848651308410024950828429979066498900355917393672026407598586140139759528136888828972428253599404844104593035909296875334601805936433517379451165501211357234474359496452613364178229598937029053245375864515140782185613570771495926729640196913349771690677627899319123049020065197569618091177488808301031031846746922643763292965025097707259883499337751823443411984379546580848916356460902777836446073577706756292590573156815030161366367892673696269069318251075967302495047230460256970000706584032662385853464216949467242459374130708411239885161793095170956815964477775284711668999977379072188118183169080234921300985869616817643566670790684901156941298675055855265218214833708859406256454916841544674733472522445683555176106505545544082132130526996960374373693571476781004878352686886957831254690789072155268076563218883389288043637492699627149249838358190774231892984740593632740527908361236787116045686174840605190860804030755737499596373452461283550266575964666081538704947129331926337369313864827757537054598429713269410301880260655272383334611843009638160586284155241708999740427527257116778664117036117666851900472921940761977556623892600506091363836393696826484337878935752573939819472902146588542789548327372519978842966108888761983872636441859178836084452899330455717892650246803929095423550939869359523008876791592400404236118952316592385823139672219691429773762404845265035706877943161166636768205146313889496509689175881664790367596804341653860870159008474714127924228131607486898088157265656355812077728571997103702793134092877765426103297346169263779696779498070997409024919956742975356095114378784747990985545547477291832802232400450096395660490998764810521884363922505938091322644621196454354403803473359241924156215768734013754917002233979452116123574138081592785508757044927863365929463072831796726104044361669633878563817268744126536835914518283040732975235526900128060707328308877534495906574250035403761836573376522351372917189062247787470297046971469610499396905095030975520894601324285475485189979389531066777571023593973287314080189890849211449809483367184541865944043372242787538796834024898530471797138922906802477759465246391955692484581134117837146126753352766258856944259537169295944733608448735837544352990958100229135512234768431236811603276914949890097935707307137232102952521008453305545859589886622144969433860614408088085671016562359674049525686073605196548989432682101290373264801510452136934434471919051654766345434247324709017917762414135515592560972490885379734451341698479321241156760557484290467876554792221670414785485431310835980985635029383985906786033664776085620567743452652517826676202938897104310065064131061662309681776450531166856129153797294985911976291285539227014005259449898465819794861607852825128851954037831226275038395985005814774727337330308277880598845842207943427393412556968038381831828603675291474400163063757873429260470357055006896872993769340340085159695556899291083442396810503429042516262977203541803656611718216239748779899689297617772237034911383865758164195865394100695318468374153585417445197548259675293572094058597572330704345031803099311499095623468209982600840370548602197201936671348394609730698971811554472733132951469887444979995522263493360062179479976798201696351868909743191014649123700108019833016010173648155645240352354886476593103484518459339707067949241076415393936435775520103165857567588435298979886290683078174196277814622053803961836638998427058998464596991871536333560498987245995784620616275220209543616919244924167453631579967485373291692764228244988444363600270184843791234966715085343955252980412804412326817679448815487660753534743854537244838095607419424885066178113095364617077051098564437890136121243008341109188063817627726261746064334929156637595132855159972551343915836303415287868206390322378717341614875555210845681637185729848291557812479005018839099818429215680926436678835326693793117119642829444902046696848095312585643587710574523406162737554290224332821172621727339431500296702516724367065347349736992453030036853006740026640824919040522762831024132791193287971686797027705014390667729504009677764923384949473238816862532341628728561514903800321132416815329806231415837952510433551019778697248654329752270847597960047511334921717483160488828134449191835281324400287321042567292102624317338721083352454487495931971996767154542461323812021617933939568307560547038453136312044245332279379087721530838665882312913874797392110884036458264704646803663057505819984012588101482042088517517783582843360734071256526832006007098797093402435451500355335509310462253312388005014371836121026569982726664317745278833825928983049525516498307406263486093655094489112519841941658513935176141851695918178041726481348143056142186490382146566372695104393020705486811524423599325008718966073633185106612305132256511636710637543034086539747756492748424862049133629069283208024065080086054923645467504305422004306018714008952973751012871373662379683090149436840895259218197584199192918953539791942440934336758366059823672044316222052884274771223778813332359520930646319384236948462268091665817887520206090199467783016223964326628101070436256224367460860980347488281274154435160057297196345043797246844412574305155002176490505836427479560566651705141491425958015994020976085381200113384098935571383344803588983770452894437163873427074722774234231546892725152400735047604873654664216935940857320849700059721628875205945978856162461737424902032158822414913415217669166832935328884743885841905797334659592556946300075354746565611476923646225237538954445693374292240495459839852764592796420727741974221009955070261076752201307330679048612360468259552324028453765588624962113307046258143962204051287345458222060925471495445331519210223333021954335668222812992268474245983511029200770501305190926168156447342458385584697378761401760537572867171541673576762715719579274897849498128737255688657513382552733529260589801311879786086770647649664543867915816398330047410966974431339166373874289056727002341780468029476083527600389479620817726944212001172689360157073222192953051922848242296642213990124124861875985949430248021491220951092069727610652839260233815797457317075291628857111535471080021530656166725200129342051466169946279752625533509157782311054126280337010877689111949487464260959137063062348998407919428142211485855517601480432210301309714027255371492677377441023072144107695438169383765366342536930819989786464412618228215833148074800577241374895782515981076743088984765960679983610559398315757308035172614137673892974365433146837712073580498092423329564872535821264792675486831747964772355935018873650289906549270517312682698922031921845422824510860497097308080926666277814521047241719005976990905576026862825021998078062712114998749159872402986588663867038401281537395265368267354215062668896190793847965530869049821750923720316838764502680588934717586469384871036373505414147029670109011016402061714947452461364399182744963294421750394508583182814005880840771172773874721890859333736071545358791752044070751363193414954206544652789785039300278803903223299923111838682570067476557603270193215058532027607403628258801143180403559140033523137259605672304407214313436723645918462894073213190016860424985462626422850769152017056627834157448866570720665803873220363215584452675125160094591086804719093350607760208913473087240606500733080188319850954828056511033714920978300311909247168748934746117285423960366797295014767877986837141071943184933936135165386825941317484154637964843234052755826584216443444224022833692580917273532710852352529334876178197787559043977215135747972017882617654550047780050647635891491592368880496985247388870034622427874689596797885862939086401779378936711598202283861889436310996050261734761090662082296240158646476417586155392457749630181471284819285106994141844201376541602540471815797522059940339392084109672038745968544540028028007917503800218661850974721360967360928204391328575582463636188573395166268191983998608630676680327601153347518471332689016406039243818677562789905330768955586603261102494324690082817152329698227110686685358331427358779337504465803196246035502762551871678070581644296509234480667692076236386870616277301686527137355945368702941305404495438213073621462805878768463540502506310112048189132308954335954429887545905862232000690747966256739105892111155855463360904678435140753411844112986856265781795872798893964127477555193667554437598335633369312766592239284143476279038175958180333384055939957340624053775242966628782764031908206651845281052331526785102177573519329259949408718643573224945050848694172078948612331605914131930390588412808407225126819168542215954043269056741764447298181434416328970819654849762395998075305968455313219785414926062197457158571470372331339036964157663710430722541810413326275261745300337699324458066127623818483286493381888721663842934949489380756613225197216984174300057435535366587686847741837937526296968245849745222658271232343572748143034374879252483646016962184663444482779589129155295579402250726773030914467548465943198864099049976513056840609069947372496704769382413036604056740637664059885183573409320977330846313602739774977783410262336005221083726626926253864811256495643063007440198195066463881209014294476789546980809153672763512767290633723205682257098364475814673299689489709469601611465998938527144753444546905145673740463831860364886231155084616033792472022014259393258419406726884422161778804696846956613620231160017183942591309456842254121226512777905768163551137835364175063190603025247604219793668065726282739754099446713867487911465345869035438626112277730686829625066486428144730498194135945419062202779248788828671960417319258001162648782301607938559040133718958432799106538795406756766994343687054417903402340149123426281612715215385448841516270301300977527968077883389290049764402297457517226331285497154348082697558246074176009537466024848998358717303346305051973677135397846973738007842710424813100570149855383847250154265183554035777333919680990505732432736412224141058440808456147798378068372935323706358072852135880035887047857440558296484249589376446872176034500881174106418698092515445022407442722613531893199035539298634643384147669647064486530245703274725156227617400124626877728674890060669077024268305588716934180899922419612386079355924395810267781406099358530574348798840228881133123232758004004043793841514828886841666580059424486613295138378070746382958460957498243382552896984749873409977826766834256045504821624154436683181490775529077903926178639890496605495471909564276010642342833311002907278752994941398794328778515753726104091251466635149800318862838260555516388023784263361790297762843033526286729921886002448026770848346470789749305247740547105095826455824775156443520019039112071786637522798729854694773010534115850969593626543729987256955896668479273770325169819379617533400441532049763450251895919087784929275509048121775953756216461454161723616441472150758222843259170227696442083934489165873134714591126647853647278626347915097560620698274599854197345724894551710845897964841438957786696556194186106148399809829611733367354290848671591696066520350227417825672321749479300623981484254543706050790291477216417201622468512130133711581962407800797911682753280629821475602497320198813270031691091888337218955716589737394374950968474616535867617424863463059220103310367746823541405719725946098373984070424483144408499962220691839050449348211229425073136570152419361438996648229524180928852525704950157440605544904634306177683765904026115597212506878817505828935985215466418200791490012720935626435747643020346956555128731119854610988166413585248426755740306173924299167606604095646409473367823618968503854288446929701330589633193937600946248756294819162614829104532461451696187788747902725282363881997126738611878382367430774550604466803224852884587897021235974562801862623680751427137845178214637623097080057534007378383572258934186537404961003709450195032343911269487291298800555480410824310373375400043931442862249304141900347252872507141407588812104522490333439171226427366116509414490198175352618891274899362482879943435425209500709999381262234486124884039996749687293244666989978498475555336712461686390481340647113731044651944306976343494089973101660940795799671793500730263060316293405676364834130307632259821070742318502976218591963073096079238492939162004688840950739622021884463229752877773383569093433278754078704543774449996887098534316014315704911218129469485251832091961751414461182899343025426835968934144674860045681841247679833892691829745682977049633769883439804473946598876506033025072637704753884982257813289225644378860981201469898603862399490814130092873754638807997928276397261235808429412854618443577895227121654782135916232583471717429670895501237492846221433824962174813518347541045786808262902353860817188462731701494482154825566474052274781821061968893467466661130681819022009130228326677242134099670389970741176049461932590323513382740745891604729116006923766637878362882147394369123016747606064009406325776748567430397570903891131611180806177636479095479554078123619945840693571046627344895960895246692074995467399436086291119109090993169480224339242515270667212362646497037993140548126820190187353989407220713026757378626423625333870496385911019585598174152957891228999285798250746648778841911100038067363626589235042429494834696074485234505668549282057376722491853705320984876646926780009371131557467465790646884156786820228516170953766793448924441553233528420470681012747707307600276421563020407122688710350460065672139649915412007062042273053177534633703108291080814959472114316005126134836863649298896185048301229333372032816015695732951063881803923283170963066060352165170313734332303284524061733462249941766385168684449291458668686731967206838010389729182333807960597595907870106210168139694777383146626068273111995318281881561006172150958034252220313966432678888506570859738710120834365625234186835576810379656903627269649678383056054336246471803285820829471131067433525753814536192401305440962888232930246772376498125269856082377812842005529674429848730536396767125372467040197071387852955773742913435209814568331322110522747636387428967265921395723277817611554834854767096850959721794561477132455981993964756050577427948538174851672413193415467818438256516770061868455785149499961485296470649943884167510102237197894761324143289609034841454463328761913695838068360678100996496366837297347633429804347236407546751242462470719838620173318206940853764303801255627432675052074504454524385375816806356102551373176049609199050476426851906767252712753202861548477398008115123101894994950666338170255794040451145870781993674744314854745502167870225775795985119970377674565787737499420761267755118139761275640519704588916380362238881816502084017282751619723405419434114274781595313327673661391501115916124492469770234921426166884058345137166539602966743865929329911738084907663613518701448236993251388606595397723293444953337139924125869106189492341279871209534211363988962096040992626925983073895681892738889916208363899004575321109117084079929653898253701782028166186794988263627113933100535062841406882245334786100822961073129298943375875288048796307809278092399336601147111910410063126701935587647081285799700072122493468600283720205367789372986053381937508847477296845053319401251185195554558774950544378964518386054353603536163110907708341045975894267953935090905313275464239250038005229029607065353949435046316888034221217821223864247527119339173702198925507624655036912657646930184326014662477449258557062670708792517419096298055290886736613202426254343706245713550868840633974453077839461900102344469038790015757233924521116765343242469593440830999014092906802332970624973119726997483821144697058484204925031610641465012900073947053420288681503645069135196025225233245660186063135924062536116182601236849407235110331079563958435040594752065193486130799288066282150519176989695574593714458922518051627563522301150074710215071826030328006716838833891997157428115390147710822791502249479837001892629640500410210068759318978498358304872763637134199364344806207841559258582498732903752845300142182583479204940979406104605797797306861900108058689531618635385633736724002837998547771715530127427419693505809900765270144776628944991042929476180587998001009379449038209063316284321710812129448766894528610919860075540155405251311459692719297042527168156717509197465726399600476991906944103189252004443797511136212308435649107835746638730172887100326147014784279306831938424163859929355374837200675042428275341447423800580853335636332323658794576524523746199924508063639913389592656957288355353493126778753081618493458293141387036719928550059283663888149009215744061128114299225358552058789890124923492754174530140733730169055931392253702898552540701420365027604329061495326372855720142465674556825931333211052359663039855513536449496997066786786455177822233829779419572320291149347329771749370293545649705920337546061557477133117900990286503434786832162034672959324145944993615330661439980912085317269694323134610637545467631593046578068464866547437533280612653209029449721800988862587818601019955246369578240297853417298899279600885171124044843955694013271535860447998970929775076671088601717999605117252900621027956969033104970421835395534189224099259853808748847258720724313794935049682469138545853146810501654096595592332512549785359970197520645546875067434604655822373234436128079379089274253901626879642495572622147205807872894533419631240816935888122846600178454705795148615417314031154610552849274315051836883119514108480791758973623847038148983654989431050895292326411748565331010879443490517743175888929047638050613147305809528554040918355859397158958397559771901869686900908283546017329756064832662070072053730181108770064458724958552647896977054018416190844515987010847583671135942528077045859131433829565543192053656058336936298764412711598973251014747408214043331690815900403539112276534545160121151139209779279688468460021662335413004149253540437580986222109900819228622722223678135995430903721562552315458233763212782562348220170265258781252323503180105634729199054008708086226713950086966382085933797672273054686155076469222263491367025051821335662470066736969727311318651015415373842111276737789584942645992022117668232393286020115647973730899741670371304207544186071839230453387589848122431426053868609927130281931225453448911907388301653411066097354659409502130548666092961255276167308479771517688524057697262488865723200599854198534549365118382476289087751845162042710011415985040391685649857381003015752491289898092556219987974588217405452372063955279975326250600303767095817562612901360614490575874619182633731232900012397201038633826944989393483077650477267893372282169288752622915510607169245776619671183732025775968575106555546225075949569222196147337158608515401023980708318827860708180740837858681864473772896036432102120910441414958535466671140736391595841349210958150436291270810560734590069869612614406403345814010383678261765476642427435938814057351447573967057508780209860968499627853974078868293919133096604188191885193383810940381326015760196187329516065899640129778956622249467660560076456870447076373283942290854862580862678761708751962809468177626272849315249142529724375593516206609120799781537858523044133390700107580548998828403911312866660598704679096454376696766167329822072081843049524769637543386671600766855459428330724843726265762305560555141405645922710966380982030100218073826545715685688330764027419398289901910327473486052466199741681507336669488964263760858701657086367505578086735258686574543415734972296901173816919381892893319419919101280636484107013343003477136445157606434048267181908247790217100106144514239212181109421707826999899500041485183566959697770069916100643212767901553820227743466225629097203264923417063488470518509204981937948411882003735948573712707757224662801314908257094741319620782786632687285005981910875582334383688892817849523922301651521024369678284043615444395034820669040938831237007151017314727582953209966715819840184073471561866714578341491767319617869414514374965414736259964957837595292303812375967589152457025050596980556444288637566055562211731285241603763732112384181531859507081176532671617026188797137611294587256357829793240224148255797599137322073220249867630322094526735039940021636041463699165430060899501131291380306850793848799363227824033343582381607863436937820202212470042968293655292476663897637939420105535621764164217897247223008760802871093706866031655422397910318591798278574828396981813816391324798968104365693956979111726909800768735095861845941415617595159815106488662358863305893430514130278106535035916332235912171165178420635729084908327936068200556142492412485706163788688488910698678980325801571546232085078765273397327604636216474678800224439392519302111487404619360601581011537097537267131311786110902591243697343349520371327267076178760846408376904776062051828061414541150721317285107218428194343095176845218951357226435870560285811478836194333084754741860113037775696471975027665083732278192427152851201278683305523027126855934484693562439498838598394648762493052326317842085553220544979120043754768855944887032316088644302913685964666551730746132823927974600447675017075489393443912090080863512821663582749002317567221912434401401232492421449349757515844159891855539424187418097025627789680560839125444733130229390828812807443178182055389554501054650480672911569723886790534397515739998725486938212113247728936287754202050067086788891873728819912617027665864634464659820670520637243364712603736855884233320566053800326792690861272369068546785799360650857483343687348520665567329855313897212219642152245965421677908937201306965862257643516192457821584190563004314112041789038668300987437360802213804958423213422948436967177828955019653369340656428900207356144430696480693056079234849886556197816561994449365046159812034219384546231570811793309438963874971497076624779192160919200246497030417260619896386227566294195934565964534881670093155097521675441970640513695674587960928179881874735954237775574093114382995229986589639006262363075424059249623414020124828317875570524687748560543016375330595853145783282198143291244338945770428580928764347910033759487840503878899923075062189331072281003087424289733820126020158339829763489931611817362678260769244024086857036458539284620362883989767603733217438108518190614329725668548467951845693067860163400714050476711421275378901965387336837571623957100272207474780534994886096975666112900968409738025736938828601807149947318650360151704691995992478563136682400842515047867578159171210107250786932733040395249758009434152452742285218505290057101202702015616959007402302988535077696749636335879334093410248233379205510866584946222608798810344306092466923175034423490640838801732805096904576047918188365991623074534397259508760683814000846399900718068193744775878884398997207156036478159396207329383567901960331572509620138045792255941181325172059564746502999364863588136311666791823646659634489544134842526792841945572107631374391941166384825212224172935364519471511458046290020120011249506097071616179074018416793956820030435472335623186972372839329422136850223624539593514051152697303137865731861973879922904579889275993431791608095904452984900420601098749403755312293567828515936816439598956015083526456748202517552625314613242388311720504116153398317110624553790666015296952845123330433193702477336236795150417692333633670402855564849839940852106491366502304931646855555631505994479469077257225829682446412561492354292317225005940618394642020077673452739133986041258665107363029394768357195787774137248267336826244584721319329470042704726853191150829568626670434503489314085545514167130577130926140854424598664360275040511677672272061549715595053656350660635102169806441214159381112799103658730753355649722465921639071450636990236890200906474270123325388513320260612928996023530856634118181588819762031163212009470342832948953713436546705713647529815598556357448288790115919094608770968322276679191818652754063822085477229320374526714144128259644602551972949493301807973160440527930200891661800783424086894345329561638567085335100680022547521693610808231231496678227053007532585830200211140367172841533353883370802998599426172657426227631677420736759160397649386180401019811431369883439113616193865624265648914971863970173024341098645178180767722300364008578744067789105498442566766216968720461792474478388788906485199937969155384947882158009186701087296099292386883160575410960056058788545122190568141775837761372559686769811461333654174568546684828840283138579181849052918566822503529011323103589136122434488543564236171378946784357412428593100513512937359309213570282649355342736311241969137141459041485611312726699485381692511035365281645769609495190751997571523754242051537304265324729583938305520568724907361838336478645279528579897891787949769528086393090614027201654667303963912943660526521515694537019313612075193961546815590482804004439920883978461234308405998500990310997716889591601557920980497855432434963389852572274565106137958643890208241854915913938246224893898704618232701664936426002045701033524786448901415347605268536895354300831565763060127739227655603118700484495051637016442868501455827550929332794649413495063711236319671129358174522518853351674670486359929599438119818343748884190362616566160856595397458711953386720479318116272500492854276269948333843309307074519261840952937417142535254762638571972063701200262270777770845132271630911379087898654892439033966207559716833700947046008470378930705742669436446014269934174965120978713433533065900041716015249134914348844205616487257896453604303700860630908333811618422287757876518370940448765447665394759552037687896328911565544840869028196684240702254447370507278689473136714854898196136001631772495106949667977273417818441252975597411474547360681242080202098768998126215372865672911327171081397367876038314156169182010895093228212648540025031881734226398423959037528395328314380739509050364293818465646725174924541473365692051262855763159327589992096628403389669133979770899826317506804378375643528830907524994733828703309528699170352184051293383860118449307350397693399118122357615029117113220543585077085713668631830262043234005612318042575352315745083691510009528494482587001718605579504677475006770930436234293641609099979265334816060772138663000198346744832585492970217189715147622783372878601031617667614037311855104849800613424716855099770870495204468886358983806795926931704469536764587724855546171185846934823775855841814643279990481438180690031700613841186239608057526442823112041233513506125823459979387844210451904079531929291845111969037588928284962728803908718139407324334951584078657736929407320619186422375440582363872274192896328705709861430362650401927257678493177762013954825870071449013348646955152779929228825672022756040657998033786232320512297995304033532286060121613498180326064248897140781808280803356679012355933280081542287279142734959339556073963308591672255271517795690929583344315954417047670519415963869642562791494763591194091771235010622202852720697212123552493508195006523137079813562388502313039646968469134172927952168356447946754621590035997731543946055589839148155247782800390050275353875707308085026751349049546684603364491430930461536254839035102214577070872930258667735235981198248132491943862811929214749390843652066279371079974116345059703895614756625644639599605361119359356165274717835447813606120608729609424844202845277440907153324184683163374144849546694086346560376564830309267445209106452046409769517679193162430291297325327178956087646021506458753757204743267941099428832547860929998119620850978195992097032270101965133624905250338036787765920946220062736504072466556486421726527386300052102984046925447307428861678469217928945323030023431870323381466954951580142288639766024770172816165853925649149418231909314297538185774779194466409364982323068715961916198385983300923266608638616488951405765243647192553623479448834982297286765690229148195816748593263782278827366845736585740509908596157882096888097718747093227719978722926792734602024299235224183927425324198480646255181117295988976552654490655575184606589137034861916099292206450316252624840893754824071683911448623702462539589746974980944077928442150321358908393337906724989945659923784516863490569076609194476871356859136000078480114854357719918715888066011142249473176053302580778095625370349638797793428606561621898501334715108646359599313696446642804322936539545036071056395297710372947314535953184656286126816872929711582756772743723664543028040773006053914404586207757135911860659433299033902100713762230645564146702765546688357359980409406572450183618468315671897693792122560445966714187522314308276068314116809021466023701200072088087231148055421035667650156419149940867153281730507929802385729864805653924185248509612714510938482397140381517028708916314386028539010386336545842575561108198355468979699492773582700260182049969289102670080372506397658262222859996644567408298362986548788404966915053917752631659031079995175032212822500798864882280565154431689908515049240649793576433697816239131065930747240914672431575312655966154483463935942459711253316055914994176613860339106964764106563792255879795365782259971622634352726531179331886728634347810315040247283797171284612585107292599544197128028143763222723509582132925721233886875063898355558344904406624994383624651724589904248056118304000184437582588465654947615361073751724070314126239779738696909439020167762927861315942010865349952856453079241276335639654547542377972820461950562967457684730103001740408815077071582282148897999688842263001392130000610216994788304361256620276616576375058131775919996481064249487641626488388919012857291690543895580604362412292120274397423763553336521726309413697464299670833232976106181172441718393811580577183215464630162607496374619897793982605452406195222565407553752622611234977573334489776446230916638243177458188752179173210299223616245070995365098496713882554759241983553142629519918266706081378542383583122086324994374727365318000859860173189858302195843665490869005903609807542364835369185562187531174690558889017650009471368018249157686254861026542266254716121620512644906916616995720607019645665611172610970912382678188116446109741963056594937248252296979983670170160376812635658723982559398959105145924459335053926315201237272240977426612751028809327297875767315216831071830518676987452473624828106031454157046223720565836473867898672566873875262267003006193775983088496511592766551762032546803030990367019155860074933776862621167662509905728527320262199545426704476273921414992499945216781741466143494820899818973888806837269361058481978882349708461348802074874420706086934078381400216833305634808582494485721792254305959435045680199227617781684245791178752238231960906796433662030556807315654615204806497711021748668145257728284945884444688713494741417680519602606969427414217762131867291727376830756983827867690275719544325149524175867815983727356108782322710856397046200999110572389333829369739936338451079353233403089266941696255406139527629775295403042302856411743168909859084236129023857847131419562242378348049646640809544039502414064260986473199631274975973837199950178094747719401436581377323544703372101637819702603927588775386892206843044850338681245635568177478158225795822048869873362984193494287089808523598714264936611295210090361441370325736130354359112917898771924987405982614898673557804544921067605663297474005041806734853494681059797056316108981917926909762059043671766165468613767325301693458513282032796090251004568658725910782665411934703818703539015758516014598637570487572717763394607063707653321013552015879604235113330421365642598043110194140061597243215865218193608300308515410632405381953669513648727138225985844885254917174130150028336037095731123223402384144516978355768159970700957844594005387432147019964102680662843120279508853346993260906974829820589038123099934107289480989186724492109691528154059845956897887271908473095616818618133855615861439513740109508437118081059155716056417455972656734404772908981303111678883720869802030199745548935241674737398593947302069907444268730100793134590309066266511883197894097908231416686139356635363073473235901440367107408105584361527516236999571675475675825300371864389615693159582985069063447993355129276423704260546301342966054930197253492973423049863689118919678633184137118416355989693375653326011674812853933109097926836310432512244081056369224636914773312705425784786574354835367733688771150171875945167762975355349380903644166644763786940420092546723924684249855783513318188529794563855950811490304512204695704653866681892216943973864266028750886712048093688252617210800624183555901948101455714648775910081555334218742884362384474623041460436008296519234191139545356279696117495006775099451248409674785470274310010349896153111607214197441922486104752855290046090959716042474592535001079495589751399002617158564525815861028359405094160637507172243105994650709524548598810486638717020014378546994635488270599822861884933016897120395442447532741970190138888701781720088142714079440988528068645554542086550282737695162843400515715874529927898896813208028022300019810783855070532685959329064779382915639558551697018782820889825147519397116649200908217312144984998689755094828894917912090111566953473267506330095156480829537804058764841867978618278301399242443479535849241021797655148712421803706503542510164694018676020404027225371855946060144210935620552830592291224575598906676119758555883251193160593743412375819478632538584133102599357448309617236482727307891356868188007586181713395213219022414052919658567436437142796210188188798861751977903404485764895901507936659305468582528370634334507296178606494999394813529897288568116944620171050108779987861098955344906694398510320607005359906436844439843404012515800056927208321523346737997080103391150644324873385359114356288492498841399337660345356824441817200458632410003855970477296087469077329220626879920910801612193103905775401295925263866745351756590761529529853101753508070980967144456724599571071114034595239797404035890158012101429971287143058987713389353435584590251876334657624512761316193139550876861867397654832247143755164945960963531578547884933663965378980503572704914635925254196741180423485451021839478179722140992083602714770785894348726620543248886521231043896915520519827100179037107735277438764581119160481668642633774906978679412906178952750212838406603236163304761682967433052667723958291844201545422825296667493915879256112049009018327885107881224397542001712510213471411174301694456032775167182557613147768403737245517425417370432492928770297899406733394395694886943110673883916935103315103324565189879840730752843595475853694091933483566138723413213162349960079512119104964012836868231184306077040992335896163166538642123892204376558713804251202357489977786782740481551672439191024852006379799595516693528729044379688357303083347117098573296796217229354472710549125173934662682865728064449754569081000591516387908102008324636318405553376106990763330644440015392015860460757684124346755462844158409180176145041278715775679468676612061445462696987561220524716280096302628538429573751309627415408450547913129065654661153785712905134256977240044105478138710065115621821235345714318498107681521561594082263578240272018791820668436624575647025206807953440085617899290448166119299207621806285182362150788628282169053127565493341775249252576547383780524527987629918861541092176013610254100514315705306697792702794159662782927323980195374116158205687378115791936826142022671056226960168427459750980334495345615330286636725335098882079931319900787708319207901053105241729184865315533868460372434438558717974022908198411283222600766816537669986170024261110815587219629082888941067229702536797780114648102209323543807670616358994473602357933697546724645044059981911014468312989538952298022151972311640110404754399452591407636662209066607268148994916475658153221948929298334241079257468203306887582567824481322020908681516352363105958872926093961183528269873246845482354285540641222989290643132133480062609942948104191605097713108119678454010122375737332082930804401800635669577738862527304979601178605526798254343585213210784261176644277353163746081910118397756707044192582794030834204791700867895293940149015363683062176056393103070156377606612123779604054084474496826699357861598924282744370519069430958308967957311510393496103343474189222334874102512876827455901948500603748642445751473114599596372651568660180643590272343316457881612908712969693345703572288279684524186513157858029089397227065155370061440855935220144591599118637551484785704060608064894743454000121245727091645238457863905689046117066130570249775954680643610238629245407983698250663386542674956189392442917126643124119462403518639872422452386956097512911246742539222171912447185431030193540302985414657162023123337166344836791969432909770295421264051651552853686419409062611549293497408128446808384246178036248388580765277630002284725169212223756550203486509447863040658927859920911080858946686695631196901880148192173385576503756107645609106421899804665658073976579185227320939612760759872520546286746583909351382943901879727308822474189231221136177264102877309510231197183216910883091723816536987886004606289812062674466596793056721640470310102005962573497930491780800338880649389824881296814701892825622888254388877130613021598838405673682718031400872056135418311490458725189320162818508619020026294319240238531788200103612768028794083671032342333895397287011352102007987234949694965778092794838561952385543532505671872969067574493849770254996284696323809764647853194223514927016479390425219903194857439400464208080581367460254748114906433778809511952537005580439574062690765667969442555575575150211589920965257511238253609158312247314084613245108694145423487386015964421753035685525137582943186927834107499580039718291855338297817971689499488690637781809238175207619738943085713842102760273623429893490652408834398675334448529323772911637363289729519522254632444653068350669449109739569624798311532840416605253254208595411588151644013649163944196386158719190486770354658988682086793501873258440953210405122759780725108111155519548156212483751210936172020329610267474680315510700918835742917915775056071102871363171449839281235808854456636393439547376860439167707094957888336005943855716184065927654438749982236648312912608698675835209389390318134463887975713207199698211015671415536698744043408717488841836325259511251558969553357701663128658775206171893585856708895693280735135620165357164545162444485469638536695744696572342287848091763947154097608256949720645699351728070496946252137010195311812798923486685897834919554053616047492026651695795603260464322714768965454891836926744481850596967178863448049599798193151683515227567557771206666215226948019385856638804614983137699226035385447500933608597826611905163558783492041800994213218471329150127453576446462911502260672385460816189170324193857236913369722804656787937233736909561554823276685412691944051572684337260093309436722607114129666375624211792673493148402691981147904759242014362523312751490655908215287596464138848526169436295978957140390296710814143628707270926515313027517031089431383005823818532969365462129176027067369104735092984859557594034285282840929970387869235070514249940033159200489108927016388162683035371425884281558136854605315521007401421577392026400412919180625789177221054396377662452365527732887189685167001241543565500225662911722811297095320767247210108020680916402863094791436827197391602477440442076290267645348072413085870816523851802121679498236408290831043451375314942593756416862139364735901372245139028364356113581583767919264833818805062977381448359328332524338619284603195081147422270062673950429335373854561867007255846384769244168074854318319523207979460869601965696513122255634631067306015144334826282438631124761327470313704567478348116753350765822333305185646901831991299469050579956064167595981197334267537177253874540840208901955108271102505953330805241296956026126682887979007030355547173294838509712865618708004141590043474819605188393448176357768362548028332932721316730837445326262561747518978860151185104164426158923145400401364677665654498242385272982751205855194741329457363606969103963394064106281560614586644129187321343066340750487735498911558272250478857815697866026510950182844790061370330489623122724663477721464798578462780853327695550126460836810321087758563407179040324487172856279485895383895520382786571311596584139209489783792838025157596532414271515213779168162998237527692484940106245979771244225866440427732601830390854827449230309330029014165362139047466285559560662110943501265123535450715943309157243320361128089227424358650058234570222283207176113609876306421070781424160203242368037549473083289885000401293201015583354249674369159031532345629248730313006654861229827209158598674847149145055825156655645678608538524931625891865096895429916626736729760345006810339450232774120229448044651080829511128180875224984000014322375591004501196198448017242321840591584635170515758732662711389094978115561719878583548559513743726943302590190421295534730381040866361068624330634537735619765717226141721415737534743742405619266990497689785208831255888438473394454277279317340105125231011132604084685770944360522196581492619758319430613471830554596629335128208407894298725312300224076815398408195365911863105496464159859978078774643122768481752682253743031470112296379304772366956824218963541219502207828749172808108823894358366721711202226525625245132683744640326980739401900659521031064891792682271787713240975772995029313084963041102292565217302542757943230563260883275465790205006660270692508048878031510725057253969534831675202879103203656487004698540700322098835384239711471102152496101154340301466474921083211964292878500255792492435493282067819526380696312036925079431121948222543954276367390049975382725064488966383924517153551941546165888063880154904902630022277944116763408528202443685941553564319807080078701734680056470939175401284547818966561472383997167902167287591464782328600887903078813755165992923999224680832088264275964725156250017728515845088215514690003779003638985534117370299346386436691712511638540954751343095003938435306318861982674930354876233759578608074175657786970180351424025379087818358236395188153389473739216169742256311168649840973859313310305644728432194953449153333711116959932383130463081215446218962237637932106135772659564310251865599768984088430887475945712529055074921854793005599365254979261107395216242526283855085760988508262388591108806463102360216177254970222491308923979437217202037206871871890217112401315563804147316272783053825809027838327663589769005874724893039652324213058285231940724936492343605609154314833790114214391183781628027380865012388095529690585081420668376468173266772781813674901388352552649531905254913704829256346332893132477029745958200119705925728662176414591928678655808637649671078327186427784704514314285124184506459665372787691944829814802810554189108675138499093477056502348757614066807642175356690278987781317139687462385692071137865553779329065186253609791562052401261100068161595190900507614395215857605440087389526286580510675115223820696502970958446816427010810229511543196499401773477243296604119250488024744859695161939225160210394391073032525710596497909562151658794137495570779959867956613130536133750492195463352324910407559132024475406445624610801507214133990525676060032178464466548378969173253430467316414208792711581529901228522840157340212146319050519559823360898302084142773257925471919792319986103702624740663137983497547796884342799115731687128316822429091559986043062968978540756722211373055227073212663866033021309988775908099530763128456297914302951461558050405014976936291031370976335360727551057009769488523912115720426968210244044678251359317324711208430344974703674970945181341789136971971979092432320017549666185417790865290698054570310393709145638072857985293027172176387441225372023134398904426446728269455794286147944800067277481541210343937124084407831707433604291960577159375917236017730850573716016607348434021057750259052270838889360823201252818839189489318500766966625087683987928611182180929613028448788983437658059454049915186410665145596879918231924461427872810912136082549614958937434157147868061698426301857617020505443004473147363022774455667009366823198945039543790169418326755665791738454003511938116398602585863594809555361507948002284767145120582376746589655626385389779882377954011461722541089256183154972291154315302141632721486146676454394678849705922339250957944094941171998463959444767190281080552169980026319565848390528203301422006822988743607586246071361577194180862347750219786760246676555088976700000131005597205788455481457448117331996902119765069481934379255852159933573410328701552958617511114184919883595823097429618968915232302650930712983671143830742286371012575407706133687665166196847270855551395804636956289332422636951874713775983745764033069817375151459184647058627705989306806257493706503429297505150532922245159648583279985716194488440646249811091088404491376910008433244848591757270838759236997385123714257997499620093987025233743978876561707831688129842734815676946277601107564052621207403327306517324398113448538191746252504076313027252678507443567656863862570392507234078639493412264289528245447069858757010623665004204230781806176305850864683616299257960196964834458469276167600281364715260308607696126145194078798648357518350500269371020268808101536524172398281677492925357873057509870649095055682045045657613277796698791320880727433922950492292739935181723270707487051620470972416452632780063911520789859226864002220269060100904099538920774674291416306861209517561947773123942329931685225186238292031517983377722051247377321294063722237787515337746220093067695367351525493589591775394387006545881333249557607942863030889996514131670744337193382211286930511194322713350580922359983868669938234722755485878669598328522364612459925564124384226643026703057859740739422824556664961633250705617691124517495201137719530993551095847302559448710880318079149571364430520354360956341668282438047441945667289318755717501258400005299886546950025493563748580810917833289778412593196694775138170420541861437957253995049479071734573585475998710750172247870980013321876070719527571093728651189740933181106404146489945574916501974602950608945462121509536574467100500653894607867181477379368779806371158028961731674794753186994509820825354013957414468209132472932218277845178243729676345048395246697194084546080733864311381845521731963915931341184891982600568127582781291048041540849375685662797108024324130032808165013824162021516536528637584811810874998999439983307181370738664625739715400226751141460828185368914894999989115820707929319219394021577145594294589056777816082990268336271216880030556570999000895363448498146379966314495416395945090841517755339227842284922983191662658730198961342118941045473284303238917461023199797777347956591679272859769802827535040929430589548295985660024558964678847405557998637538867235642604315377588864321929638735764609979372732860383325175583385492975244355506044187033590852589760264027056883654600911862466839317543341046260398925845689557849996235327701014849097784879175878167405582424845294792848234327314224375032152584351716884034664083882127741470432673153570955094230567566135451373977620226121932916264060619277513776748416374366685693535623386500928989396270881418863989554588139886641932009419545713730202928263373601715656825965197423083901355084661516267800500859239573501958839032246682454359896220788079623925370160508124693241497702959362047857388362884976535771672970018110565617871906159649867873938798262839800840871252964460438995921514176321857858805645511938986827810736081329477901194476382125391477103960095561671531145778833162887214676301736306209350483606818605171289550106436358733823559186831841090019666861001295030730787540453329645819524679141938722373948515401369450092693464657836384124507794697771198893695190040584202953459343820003439209772283058794770876951482005513863685492767873737799113254774462112612348737454986781846131739206120987876118477860233674392180131229888574428580992685624613080100416962404485902150118046465362067675471155741123170340618426177777811923452409777220558854724145304592892820138907425369240671897196129349329870682889475804745815943573530922922786592291568990379312729001359404761758647512771343890845717155189265030936263463707112296489323120844332275520624618297615095393127406518785818931973856330129985554025736348127895949844092958604412892642401540104581987098039421396737198426959982851406693893052768202345716430687437843862468371347148380245971380661709091484330181940944782119530705320182435847899725174647712977201588564965741258593831723791608130454321822163073657906727452328395279478000583134055869874811108962708622672491072571751987988482136998783755125963598633454182843476222918249875386269607550055893654271292780735249202728076876302633422576254117149840663133356750797139803211002358671746528105420492349824311791295253035973103329670154597340833049368513055119142223246201766124974099575162640290734592208544843678142391785460396890223028753432210943934365141535537988384836553194292584390812575292863758633176525575668185758045776168738901839159408403243923801975376819929271425145757355943176833538177646820168929923398996454983496719610838494712302413323091543746496731193148742507885126759609059840848297076185060305772725775032621582270683222933734293741481367583123750890734483553147285441633460184962573482632925430086419574639006482342984445545277810521101318415843795621295660774010051216642506289470332537840980726446654400658853988151312104046696440351485231231342032754790838319360351743835017222213966543217001445218056886199019450980780530422252993355668863814552544554894580850802845959218511322343803139724150000163223261422329223077336242205994857843320894748247798872936044257529558127051188333064750181969605584695284425453132330796832508157317436998090671863906644362867302233542377815158599796570652746770145522164502117826647859778802917631007864472701298001274603726375673722641414059071546804963112582445369666310432891843235960530975602108508628387065087716945380644322720359625299201012308829014123023268562395353571707202563239348292372774949605738051178587372011266725846950408240859823908970978242263517729452089295667193376710728711954079222920854318732567262682172462686623180924013842600239909317080610046884750296979020144969845732914360473370576110186872708468420995667784826603065014717746073774216492142582651025248447803674367095992489471513761797250792123425462305277557310594929781406310286827785646602817007199584435622650003811355812965314455622101990984006556774141091300477326900616893318697007232728302853340732936134189930829363104736611924640028930907262367463840222359287255303181602862515200690168975757214046897093081150900040729107228125723929618614489789474753609637398076768440833380551494112644102985487410826269960874593334003371589309134876521085008080405866450514141898235894296687395695888648136964454392626196281448333419247720520364481476068487386325174599349923571049755191618428037485619689009023464072185936659918987461810818049012190474430496539303640263194403298001244614691969398359274891068194104965776529412303318706717703347043524605152157170616427901835751246847833996216991046217137552899685127672296647442508623627242534273993610224394222836152756925020095670837959875415980977362498008952862887168987704168757725177620819279938346978728169794688982613771876576538562819984578963665700093734679588605027769022794655971901828196275948932451320819043472725173575764965412525006322561641651229866304412304249698377267083322158229139519994439900815702463713184747744449107683692969490900665013340040464310118251395655765809087626185014523658866854720488327066314148780103874806742609726670992392338234062437722821364769231396536901485228957631445383440887700787915723087171435310133247930137994814742195626689563096629795999051537597497984165955469194671496262050018060824725882017074925529345908798414333967781602533489744349108677146139819004511392323125079426288071866547430836604748300395841135770741643910340320214833036499650429123642871731994114032858427705472588557606821435553390268114450324340342142043426609977427550055478740334819059400373183718249148728747222767259914427353019255106801493664837466587528910543660331863521401908441624059399183563948257689958966516630214267668577201564443776108774120893023969117937984959025931911874011674921845677434184331713168962658129158628003910495116138919892904116954865566158889158018781075772091066482977674802791818207670535888069876619527100432828727155805487877803528189388283867494330198789215528775535746335654786456280732375700044167075836466980729804186815490680717651407054576280204762561626715323101043407052068572193858054129938652605077638957390084514533327154596900623776391695170873305320974512932169525213296805788591024077306569972067846977602309259342753860137979539281822690689908020704556297664575046770900592573046939065899619397711055947929775215741507627166588193703819251122804672724813844009949305754249405155509943219843331603870588233096548892614660978856157148885274901779193376863492951629349881822565441106219124623489111103391396684960489516184326207382601784249020549195771264296536909012976504851297342891310429599257492581938039857634024145174033201569603914956028845071586531770025101299966486422347639763002427664891698184074363147591144004837348734534177030488838951239723278257581170943126115271833875832376957835196936151263917680768942691294374146653594186400379022364548581676692474264034189068780036674115995426170611252823259132253717042269900556435172646421324093935972474148707536310804897584709198509071009568804276036848277622190201280274282916058413310137394595116628294039177705688157569268048980099325446773751557938256571528522482948917666297308003887421701373383097691170228548819109468166611189361347755945133631484880603584855251251608430397728565734968162858324753777487954515701392302649547492519020369054560681650636405838202181230142885611404599108915776985065584300445868017814832264467690453599530305324087992022788902122025672189389871672695579738944495114916246232622552844334244978216155169123520755822023132394042172094169169150765415770616422112202115563824208350405439160162724544524031189648725131065904747807479910477121221364597592334075166120079522563722622873690249500819194450347305888130549106077814784694810573049782112146422865332889471819894902976842469033574853798700314984254333300486198943283764907854368264573065018552670663631642301119595907923203748746485819232457728406872506876124435562138072500294238865758913837870307173134920869428401949507257214494739557227889583855076467607926022560880182713165639018246230579169264054235527896373520368299608231966752541308199547275459356647853292701004002915102328259822237683863365599962381675522044890325389909377104263964133421568765485983020174007842697639444043131316125743811240567073946394721798344582791388329060380692823068582927700148082708697663420300295926601872393081933977189964393419790365260569521010435838715358252897401816362953432568358849701029243582704465735758919997569282120388192441621979682158721810629983911781926200311653154375773636296920859260273248584889351336392331827933223780715715027079648726616348924635734556464715449499674961102861603261223394859522233856674267116787383417091658953508692275028846281073939601477249682653061390596844116218611661797057569413000351822611474847505924058942348537965467689099755344743717129374877408045337013568048877246242632582245329030801596553194513849045872245153180178809347679612891291803650837306553931476506534396585740746285209959151848532314623695914021952832583509588651707679087611951726847294210306159054065350504869119064235452206948477545833782374417373305655292430692936145636819653320487504846523714441073489387956114272501826805387104033321753160661209517531871743864519531834645297875826634492455201205930587448953746680328556164001138551028590929342343667338137260988232653660155172168879244762450913476466596156539820605554064486246239933380075320163523975462271529240426026714022185750691033573559612813370778977739772649156057130404487205632189980529080452624568532268350243076209358809575665696927736222101397271290827134163362884182556178322822878876979511360987946162150246445627810018534979756432735264945355394416754171843831229528295223270781177354191366689718959727047180860672019102401684414240318463767628327388271599258590622093475542146270211668357151759396208883236152970292069142295698767600449272301056213246352092116314818353473937092642555434440548671722823923436848753182487841773621140733551447440140234257423651292699302484243459385317874600835892880088359950647109730760238141240754814462925410045552137019733614861330990976448746684955558333334094875610873523950161908042861932332465694844488546157292478855504234052126550106272714057068649533360408075804429765448844436000711388546404174121654179271318263201917468391389710491609597342465154619796505130363096865349864505359937549994634083232386373975744610431255595003191698890443796855051113462242966069259636525154845445085397001282954042790473850226810341655806658535300558688327681390309348163068536625468124100569623781019661178033174533962494180042568177804764783771878476582784258757666006422149760685947188098934733676215300825646916846782620689688874830537285209809327727496265622197585095183388101464105617516770410828296376757385268155820032648394780116325194651019662442410057952554438791466136628420229935483996512581059815291789964607760196829349242509628304951614438195349900126397664227745464218463796183572807497389547126198389315330610714419759181712219679799949616832426012965159212785486660508692639854554298945036492598731096962073908010450649740353328320786337240679993155646496879573497923121760861904026919011675040912176652527110524615700497045562691512757861425278913383600413869726794518977535126582949011596092279400896309933201578279198322900030551066095649472713530449540820506523051932455643010036211579090315928637189674167826388504556126514221759958263750124149818985167792579596741909675950838349162159274948143631892789555997710591467816626865475290505788402755447622401380526575009149826313449604104716281193559605728852215056771826228167262989534011546402515215388304736690820233086606338248269810626103977765925795699066137697334661885775014284757472618400977375848595156875289228647675776588807364915650345651383016072329323370829079883821365572822584554286429244852770000050408459257676451844622679325749139526857821764098109143811706371462357042586512400695351349697933946516465651237067154277650898425748303371714212169546919977314482454430989736656328064235353687897207338296961155824476170108100501043666944565154498728275176822586625275834204407292738717088736821890848265572640426924181589761706396165168439721809537134507922727524024574213629436654934782841418766238812955054992827825801815934698465883833900125320994164308311695114755729922116174726099545793899984581150418830387564933519468412637787528703081598619002133998234451029637074801210304000179980448781666205727780929514589474816103160464243782862786318442989126521300303334889565796423058161890688231665611266632432353847633024963327466712368187793429475107071094337561262739823509591634685914962153278943627920767115115676450744566271889138924686387645449263020326641119353468650845108237210522857752112050816859127217071336715133018663145736683273130334818403711817355862435055902064965522673611173863861898747266774414446300055351730535709271139915068965613691903427840888565593246647832237248630500852986340235240711136466206762997095470876333672828629776624104574924407011473173936410218596432784598867653984102594578234578126357614621164328100533937998536621047810657882631149219846902457794593881842725269762765640117386191838895701746968435535376043966047345342778579125304035325344410715495779482431420569121781316855976901360250258722719573870235734555814350701316279481159399355916991852043982369015726415844394142260445377928359537520430981625407468198217997186616479390412568385630623322070391404452390296617244659498321416273715573138299596966690200885817822338464631177339707418106123715062185886861666330317710547070398973741672771125827851795473395190022513825576410106559474279253395339244855312596796090403159389716785713588158331478180660144261764981906302726432865141339662888290786157277533656288196828867770889812784047640225794363162262243832211073867813385248283025899742706963894300184462080318591941089137350723105038473449607969191640132657717994984156013328224355192492475380702941684480875644643961123612292810377406526788861948563068429397977598095098940493934218454891417964405298360577199055556581594077583986819291196145150685315327940701004312672474706632829884203185786702400107340859650177050842593469653987538062018629982295666314511952261781010427768972096256523849200305533614692068507883415080133540240613892362058784788481685480616833249706851412943213281775293752994543410750264426826095023820973219099154152855399128598079079236110785146936127534282220442315913913852838443596444687869659003919061020125555185897777867405298755174807311668774176695581428161608978690291184699496778105652443624513797747974443342831040517873310284983603737924040004850981689653195022562260373673633652798887861214010080173001047301016038573420235718748239796925010235243581127974827162564363022043756997973204722935629297516400805941335517153478843902815823678302017337736273034275432242530111488076838720473018778633561122491927802939973988438838122369252277646775982201056790181831887183167983700549551097054089573270782600365476888228670039932513688968101973051659025471194014889437970542365377399616281040828264073171876522730409603406612932271071691744923927133245112784772205862392450769236313759969091213646452178321758961900517295055377874801034069668172258876325354771824468768128633312094050261232268013788908166414087509472881237789334880922578313085211667205049883888097769976838397985276759440148008681439832620202412662190277814023961370369587322675684479353977135469883775666916730444978676761131642731235317225227650343782223286391721591501296135366779243375241854250753379087539164389907815104129370890934179064288883570591430701203447563389156626185000908664125563847899925747521530941710824238741338533728553004631485454930859271210504879176918919882159791580669468586041531983732409781803146631816211749729319544237418118287092242236554277506751520711184555556446454923309059828610732320032270062349342506205960554533835232289539159071120743231448941519193007962479684289394030919135901806631389990380190553052554720394873864513800239906229444265776214834155205960189062760581415403391550058240635021704706551303258615332115874873681796609659624911648397235230660087412949962380564150936927586984016676198073224368743772944302779734532951685713344940050203816626287105843597925502765062541060151685793118497199379468993670303033776595404715931615094946670028663621768514783907108528056296918225687660852869084521622936233590563491130225636699490489047312558193089412868972169177996624096711891423642017891033663026422860106018895867148174093364445407028989247072124057380039554604109966776140940360258614151580695937062560394560262365122278660978284214715658216479013222297359069599928307319874774675535068589003407220018777086940886764428041775778319478226521000060418946686265573900392079306565200575364787896322509778706225312514135630785395874913408750704335109696972766555444515763873200266357415835980997005387816412088107406572979041952322024097460857418800628527407273327259584042955910450429422938163157611259039375449919884758184046523688992225228059540916004786650297891254063284451973794113646534290938542621524778098300117833570354863815386533653286616286364935939007520129311569188691191226201630584986329101828821807252713636920165609343698212705325486622289162218572617452827623887789961763087521171496657805468417644828465376517864367904715910364856247058036924430161085725809498971678691654566885107989909082070092944029881363871353837454275588822655693040426336037845487011778005211952527947070874718940492311006202179945797028303530962606682716621948825365261155792826932615222164941817606499618542696185273465765570151152813147738603236176958686704410309284921325725325135499193197980375659642881867136568067081472948226387296248269472723896189797720185246190175996573178171630061754398302153088939575403415054138546709627477430222699185909521655848050988043109639286335085292272200710835226103467748084428701523472694203773296167105949821904183367757077562016175101267499991771504765144971197382772078095907901792137507038638392341155706498023315369572625199593987251684498175541509487693728056224166746936805134321411083881552203142150640077508407881901732187187855532605928467405515390771884268927238637287375390456719738161594957135904285448471783129100849507352496042627018012906337192056034545142914572410632279348602630302757806691024705918879095298139441811804884226051477830222092671365228258519424702823960904307031203595287305784022264758102985631603247902339007204535442534074477178985764315317070021181187921369276427097860250930271591742327446479762354504955086694563826149830142237490268185692613036827817525107746125765297898743031827146607961716797578896699539208426141952136241029234884389530823568220062798298776000007568106499486896615841813292159654261851725000205546236324780588494259165700717934898251672211059896277916994350464990436939461452305913473511102980426315633482290604978925702769421318880166972278230763996019732813502722023850611322983140876893385963699320755516500390950551830562276728344174194634309405492162021883660580119981753190526712187296096259002326479416562117188526564023020942276673748701664229506871296898756036349967735575547717267852812028235658153891838086748191217908742966366223703344283260505820491100739261978028828641148489146635659499814358605589303081243140664836803561605308236886650554495649934224254500710637767052201250231339658018585368610943877393946618937776103964361335334244484260414681144252037445548180008472610113415639914308664946341273984983889342016646062370413090303760658037304574196085397824082803747812294380243509073330848295792338563513820722152432899930916986850332647364717657733303349916371359075085508512590850463159868206144770088324622170744148190422406466997546833721391805887351995836914625339079120861957251776426528257421546295508956089955295340405695592601547883041115693252803655835333192075887522007695405306380068155917615609482635417149605811133402674401897752054794806186378024585381258292367883626901052458336315882884922039373785463092645365349874046620053492000326164296548229660276062829139579850675947630967815972076162217262030963715426278564767353154508251484004986739661687931282827979376994807459216332237947420028540041283426934993814641398684586500793451360288078782273750107888454874808934733717432584403239886118311280058356612178662228360140480124610192807051352097303829178620563652540791785632739467484016805142517362458352329261370532547182956919077419737474484615245407004063737713296813189722959599507166963883255624891770312953098384127032196904530560019619424057930888594483450912664456322771814944099104703559218942118552870049456107823433027008221400081610241612626833263046831124780989601357511976007492316199770403872872959766217362840624645720985979899028127842611252096571771564092877956448264198167167032247852038700223329183100292703211160913614795545072268964917578178836911942788476529452888084312160942059776900666043114905048949838988881420292658202986139024133560051404774355352840099785887373010014478581876846179938614480782443498170913236931716843637154842975702394280135960849505300893091555563849501757108291994611542540392666784484928414204840284555221037988340077441443476760215685058676502362389095358686145179258275818664283270040776237543480450958691486800359863032242053365497573515389319209456689992422610224470941266162329857147864547421441275816635211819290148057809226180950416687529135094443825940956569553346840985745148096943501500186719056634546578972782181342691634309672188524656533332764485134517536376035802675101087769432577935850536573695658001877867799276762828938469480752627675368286180887837473930127644257187994985923502865884581484124915750230216068715780308496070147891962850459026650814005239832770336148579183002482467942091808538362466201995368603197593263364104123904373847793441259727231142638440295192246610468028567741410419439943959096334200567821541135276594167758474441556517149207040429137721550789614570078948847473987749066771901225812097054028127701450814864190835942579535664531681986168479483322654193888037670972061284428637016912960128659808161843303884881336250650008563578043631285083327390509104701525567042970023198376445335544195243696554072098145248215294274447134433088284788913607408607889901610500018980977958454190628328304273302576334064137349282751664289698460557966850695952357268992826091950903062742991765450192259415812281609898776257112235818178553438779724458794287225178088799937965382244601355026278853191497280231030497133529030874890494458159360119643405134614835591612518253804549682517056338050934307241721751421294526612924249982467340245585863419308165233155225390138511778663388484049746083967908031430723498091430954663432397008170718619698588516302422463209818281077390120316478501128320122877700038945643522883556860161169809246016246413664054884772816689399870757255781018541751962093185495173764515610747819794408806707421638710783379063124127689025734287557861484134979903345272847990264013311146488940669426091062290030548729774975091031139640148059561830161361408758554225988312219482406985270600403577821553925943597738021474935353005047769292862531957308156754236660797102943254567462254164872487709795157764007182567541316905252947606093292896084908289492057436833091550960599210459728714355733789738838885009229744340162096535420823944645134916475441353249810528470795190882092313008688141873935625679083617881962778194842245050562563373602601728179723288415760081246444076018092903392913792978769617570864951606483039280944877942565553447919593068437263559836166754478026040376059938745715745147893237928064928145621608760757393872861532629391457627714544666493956193908197179768312469663230108545469590513648771060397169122763429138668069675573176759032526242512364954566613034071826537840663009105852843907714762827328267985014455067678506284018332704714029801199579472198690344915127216361733883039312956406702984099620056458330889526883739141624534274873786005484301322019564189583817736969427926602392685625694904901435327661129771088862076661463681326241602926699557716369958593680512096707051015292036589220062184200045433757892779262915759148754050460073525613218278170240369197858084265255240313670013407426812947204307446317812550916599692536668960060509648775424194094526023423099116490057498792118210809872412429327737830042084041009976002561398026321001441066135718295267028378487531954049934546343750919314228980890114834831136127660592751281854914759335670641563199908755595979309212958002986499037666980122720086679652638664224443039347324421134105295119210986056333832877566724546557704810466956907183010414699391960838650043820339941510755016372383931587153444770952081555175201682751250651069180975640609885006873501776765471252335171466995825021855782964401908625480934693393642529604727104302410823840918059799250451320964885587027054572546718579072491802864218425106385654703914426575194711510230769666434742719652592147322823227231894285628810540781911512440401003087855867004105935000940843689298100055927316603494086396737725974903460202534289836184554042647083424066726008313056760235811403885204573414743387896724761747710520353944032259478471236333493487894431394198252810379706526955552663790709929417359097063957326442126897929933077636495639170201426428504457244159795741767898326766364529827516931013888855859175391914398484298682879745770965994233300820882981707643251450371478577676530252506783810580189477030611389162772687828687273035384189277823299882818672612198249093300217981533577241428070402091627788108220852294266757850879026420146449325216811193682585927140769720750486591945868295582415691579809126790869153886729523562441789514811123307821049017977090816713317492596884435700010768201477127083323675236465650489461007937942669808737495673121281616507769085980653975020570237843626784916358794342403427917562284589530197887416896538893435432348695738262635416430322055085396690914299395339551156613404325738746714480992054132731636506819140703017078515330510245381357679063635669441286913426804994067039273176614341431459037711109119757669847022805129749145640009652012654218938972844929444792849289120876215102157841637263074379773541789500217941720245634625144581551857884380746869184121697740875258123890327379755293934245176424916814385338917869833938579597040337713310241428473751031942678902632068689684383275099408962585673033101067952259493587344538877531102477205168587834380262443606109561684852544455736065520640051858000797641736107494274501669812201134743492231124533694545330355596241255407849081988404254502767205076800606734593666994674652485749461435451991292266430073730740940633369242581800840614140305182968470594316820555707327663872315098968993455374786715824723323231091066556169772925608177942797302688579235571937479081634643456084222310954938418215002469217629442569272052495107223268047896623805832121933367158214680267637232163553755659989390103313537200440986976770799269290075487920890824387052257573849276622350949241890017962217386199223987427910188449190862973942780378283812092884929593389278313433779862128885328098848138368052962967504365234231995634523609740017864901511348743748172819572984844604437060743501003863209137197278519480977925987236786949628667308517656727022007121030946395962583038925771197535004921246527980261949745034373330712746927174359233826350706920892939816453075309859734645575253988517413078409374535638744809829051804727514514408219416685961506963889651198745298080152228268052955797751084033571850858494239167765066708296288838001453803131167924760976525857444114164924707025446675907201513291826924245261570388896081452285762305480305960173222419458699393360825985530128900955898225941413887211089769376062292450557088347839027359111746130094160919587912503369100737595399262196434714150730525862130338827393393771328235068563545185974176463871194203413986004819556162412582100500529390762331746639057444949803077319560063040459348880939081194278726598135205664163471860318666471936445574220537928370952668633139686148739839196085268693190127281462953912675445949300718581172127950513985730832035701640581018871914595007508258011194310461901068661175562813741382252480378241142257417010319852119538733304603267665336231148683281745393163645454626895850810161249207209561117727873837646649917378640209774432475087749222785797772782382700268082787476116260510366325391299860824745565605552123149862599707502512988398027238040023740295017292393536624153882623816484942716970646339881268206258369565395924314190966582459680519439170830872663873720795956994103668597162303239461314973611567407167505463181442409459132567649062108598269811813614385965669985530272374456994972220685324817908204922503966073907515100538988652157097482421719285436309843395144519214872531387354762251985426043810682172458596763564502598656012299686882369231481809719378834668649890155115238465372785731242593930387495362832715619497383985405098909009468478489659636143253400306957181318209613843649417558205381543572777731659424626905404856150725303958777377637313114222139892435470524650049321272093093033551058300286327075562751042009587636411696937496473543690522926758522490183679603234177690890178741405261157274745072188993492645528368835863033555813482041975866466178930822935709598858335858186062070665852284091680548342487279783328970852873723102272662801831582325802903381549678770927134973099695499856242482017290146364091725630969191653554162504085915110625062141392158061125370520723740482682112388275447838334154820783488220354379674065193802885096610335422162378219995327891267801872424780114826689837486650962941876135953458133405961497137264596377787805375654080848286930195766763659103951082687546820018807430412402725304126144098966752946303595318871965452203202430570850904811155185233584838963797158271038389896353633220798902704478812009344631606338805632412358831987527828320633179613126740737882129580298647419974955861618530432274352547966614875953146889899845733360145126587078709039601282138037906107275405736338070385589947661347194531054370662162609568982622201903620232685797720603044896807745630184400035292159928356417447340532093450512067180532285924025456392621218491815944659488358116142128872432091373507381117064762751169585090704281868044391919579565333179122265799462733063131568324337222974554115916350714496540626524153839219402804365131580493246898561453222097605286865840660317558517935054372015075463712841165819882382270681412359312629099949994076506713172513453309419786854772997742685698618994199555918561073979770655417386667314291776455411976630114260809247452628088474893889157940028258506247935025853430006791333327442791672837990198526947904839684210522827007060043435415616099396808149467400345349113227306729135411156800759531305113083256575086715344479465259014598576750377938798049178666963406645455388479002963325226214161124540839532790186268224160263798767799707779791157512496524166586670483604976211660735170914667228166559950531291679570394596342543902965694153205715484737696402761655320761314077992438039812582591097257331240304615339594971343599536054695487720713650262348376513867902282296754265805320160689761956933614153010001658028740888577839602403147320658323237607135628094431284031674655401776286460587873931085971905639739122374376037941411264448792226187796707466270061723052103276402740028178190691716522220128357736097427301532986875615192583301027590963853604982183028599343814160845672169759826213217332909766858800987819434022872716505632545755361541706847358570014024444321333627040181803044505903547194098154333243811290452408546263637291910142578790588547394172211739561702444717866798913431237865027033464298388360661081315380291352986287860999602487638165921854026607856181426191165916590157728169147962168847979834383364184943123989548297305607501129851069679480645454538790228544753556872161728832038663490029928140652008121077452306823433519331128256142217779118699666994521514042078050624515068900179558462201482912104566366501294521037623149474294093704459726287979658481589625333459479132464050195313180931565858997263020895290387128456376300977232295538624507014872941224227956244349569320304864444938795113744540086341243428507810312634552133442887187971159214723144891250436127802253555383437768970947680836311717222139616745932337981799752689346872884501376195876639012921436823884400460889386753746652616200811491611887349799961487743888381456446333801775241096069886474619983685281054235858500434313419770733719696718744450632568553335049616974922151640161517729860641382910967797424905293600664814034121894074995133948549665094511749715287781965360933954824498905340470733475889136645099349344407398256105222187479157282806702974960612428246479353203774010775676514598446692057097239247140394515399732838011875564467178597683188715201290595408749113142928442657588937794607402301173502134000540579040392548662300202436381446420214982583808217171457234954863652647319640553357128161013541748430331298726491336822690096486428344174193765210761478652990131789267658244538077631342041809947308184597301949310235923332851295060710243119623144636249058496729863659413819039574869734826972794789761410500376869476933107662385329183747391439987172086469167483753600463365493951626206575634621885611701608628321028103294481852357968909270387605559511078997732441904641673601421750295356505256417582096409648615919214599794140327394679663740090517686265512922248711310906803223677691802767836897812537594501809647800107940562834235396266979466730625291106258258466616557523221562227335731067421982830811117685637354372316417995308401707595214406022386588101832177599910861979924229745114678185383877740189288708081246899327578712089941680281403895730589452303314078417552016703437790994909336226508199304869585867781577207433183059304113872828937012587786818370276629694575506758219613038092541911987205805942455329537521938524592577806312064888136381167533003659905199433159569264864040027185579569706891719082521110413842906026793341235178266156239136354467033522141411731822613693910656137297532373877031422337096689913521395959180283743393367962370393279481911891802405528644111965699092855719291822384979978493230603159164607667076094883035945457701279940225835432535437483188060423111566090899773524310208777041231066307025765914889926867175260086296113727844351041426851337286653147423271228105672825597880422134871198860444596397297518234130160092466907214676953650711198657532342904711257700496293892164546448561130459166160006403943202634757376311187426585986254276772212864514839169198884742400712961495657979322161504187625892505494264966508763530563489300435095974619324669385633800972924691988266034181470484979674353601058066776795666492075356714502507684263835773907557783136649217938233474785903880603292135623250664302062671316653727013542916381832138631798793482636087486044267916090853274393628370710341541883605993229832652722791640296505463319290735416969199173496468135686522136189789070090500216991360506992857833082082114487015285791643099413624051510771045100860411142195261267954701947909582826603791213628157253625144284484498827497852999148111973224287660942977278816289695783046363503998210283916818222831705058167599875539175437109877427055088499045299631789847843765956328894127688996845563795161194200057024596337306083580927553055528901802623339161101176402317184064140340718324528265118391948153843190907512391092390645522524875553442382470874176942877918454357732596564330411612731552123969991611231474995504494078801859477136715270161882987060649318892218734142735840530971242954804636835100463987677213158821893840028362896361531896656747313566800258410821993689365739717540252205416267632594473571888424444627763975585261330574765559560409833161694375984244593313405935922065553726055064810755104990666337056552903697298963282345704984207304352483777785174336255653957401778402489247380952043886777733170491413463526886424703386513309009155793940559382615446557223561613888119381150878042850598522417968067950085027890597625898819905265068266511416616944074744393412277644395398431044698064259750819589079109024929799361974057482348196470709225557487596571294619014912107156724194285167673813516170490212770353237929819210334066076627986313852329644313299437556612756668827340249060478562893079843394409226732338819819030461990963340651698614794374686797569055516636431150436188386364868988227343254131162231504176441782119645204652963382841116136145848340351288344380832823588277887517295394562394331977687727168996104136952524186648183285298656310609269527099373991346719240626956251779724851106153034899037910507343281314156387666937343948981578753887373643316506221750932570496937745330406596690639181106378101542890932427662019385466355305986505630006350069366838680272150912806067211311367214091575950058184606157737347224740407833169468279665374076281419713066113278416055298425892601215669242495873866863381390553334740549617981865171679954499126416085904347524119593145956579165888353888387145031689061068274027482961194467023272235550679241247464762575200062123723721880772766815712196242955900406681553699297596005681437691057104686423880527655968454785518785024074304397625574820393246436999304056903386183738129579605110658676651148080566632272385747616518212467066299473724445148516733898831961914502334811558217332556510136089005589265900377362647495793155522408858219173448717249309614301381158389346756573180218799386066400915703327711278129103493142278401782584398528568138415250881641022722113221185856238680895316301912180496409704766212664604551517996446971075550279867926441608503143527383107388056759562796167572386346303159539014640725708482554718116462867584839021964431590829706571843291858128395468390092763905598577153063205485508608628965779435490122043274383999331641224577727786817361685991551747502642467033912000249567831581104996885476565582296164499738318913854120616909187776977637241894570788643141519371100117558146519137767554373250115478447237230880912517270867439062474758627074950169537356451533266776305989488317863081738559702728724641474824185650280756820808527135389097282202305582103671862570759828822123686117733605382523762383482033705564435648187504456409910042592440672337619180113070905264662133022450076282993371295753521989911886335636977508577816193742748819951022871501862559410315629271901759577303966248711899159802767901625715007145821335097675816317571997911435319358623889250094129488749787158745263765776336067107149588306298592762183785449636295311939830266420288721735024190113749634530341246315579632152986771949811813035995021632394720151256867452610387920014698082065036160493537402174364329084825300458415600885688780604142014779250808492839964747936092044981959465029023386211129094905893004288607731500545267663115112389295512869170192050814904109360443313934223556392843137068973262760705272198826731842242684903005364148112323005298976551058040986149822708145445432700433313424869906973203295918081497376632969377508675843087861625935065797731887078811624571727444551108773174887223143403190861984088619258700525517260171102290180023060189246111445334143661587935798355182751012395432880380013488747867381430222079408965641089816547560240007145891297791805682998212063950678629721299116429777654415930754558997027708178316518430289190901219103137219799055970764697112693618918567739351355660521105708304682901463613783044013960278369304444889865252818502631415234146053670970531564873372672703671841339258294495154905194245807847618303252569664625592635568045895641181336227810435254520600079482456747407535120171411891018229993385306378301801337634499426115678382219257721473207869593632048095658517422489132538686300638930550088963581807512435217680527437214103395591116844929299452036069299656048174823436473046601811802502419015106354580584338346360570815418693556335292819058704790318630596570560961884137801819374240102520273619371635693359185383179011541320355699470288554769951835399726945448812109403056115390723294662495370231038739103001319176412544066254530479677779379513918664908456867681861292147260271172230762390560245744534135918268688439270112829166296798161061184660696160469489205251632879603955642498394172962992269619009912977789722759491430792062775767624763914845147017128357698715222002171095202731130775039254241266253235167627898360494705201680362374213173326402018434215567848391147681923561360089570600940348218491681770401809390350111646707150490123154743651469675072011220391897389487338723953492583562848377101586830079235347184055376696636769665429985602247901277127128227266614912676027133783944990070888974273274869132684712007024628839213555299772323477965231998223723843596849745608119041284603155580419205728944985584376110615098534221944551441471753102499122513486395248670123400439072603087296094863186968628750148444049731905992613649346209371923916849943916271293609685637162217012132485026362475118975197302351332423335085994687996822429404394521096931212286910670058344464358019779303049779234800186316294309973550277186239137610548970892235710365730162515328658077809519341671265791948489934425626347849574978228152216665980177564380320643578657790819461402195524306251811382492297355621998263217585054564316620318452789915328321308291429947428732389269765150259618117714831972136101066885416249575371347810538819222344964933634129169044817270781086122375104931435313223021009332344845619782839507853131325049410465811014651980080670425630720194097127583986429582595241678463946331898814881876681729490113410209553267987541439128439675857123631321636328534856273481189130904314633673138323073923754762227165267954590287820657292142647882665894012455648313882996143324860281782185751054716786967744539991389069205237564844179355995185167826758289409233473468715694775123831640455773115649472018497565663543356434785717149035575566501761847716616680946764333750798063107890135446433790339666632575883751536757983773831494786439334061667211547442139730275364592584971008903852834769581310358131884299850795545031045669536454380660022763098390428398952092659784005199235075631588833154453421794579639583653457574755091799043151061192066183002351280196183275912759715637002302145192829506545342390835972202244494928025265340962656092132881122972149586820312741101347362715134571525194169215465456136955680033721035162863313514785791204683483853886711060773123919390011635205584536923759907032277456057339203503822179094942346463342464619167375282020100631214587609978652078174240599461681045086694666427840435691862737671432525974879659094627932433379911767063200801129797020466139336448046577778736232507035437760802597963421832254779730333436760351387313054990389583091655108252016100308057354257095480089630674058883967097008049436919708290220206535610398464760031233359019685508738447207394785600294213200751721084637675295298563930846428877544203731687734356952899195705744435878181518885323090377165835826087722422900916902608784554703881772019064272732368752969811644921944914031772656174388089612067634845275119977105366025797441808926940437590816942764761430002569702932218646876759806929399117738844398199173632199636298827546522658920959871480602597570172026807392444695659180408268573000870991405428754668723853137661505330704282350870160191603352514644340296988711986919731646999508401192964760873153062925220166408423879081611403541297783493076769971360423779156413487817079472435588691511350964830994352621807942636365362270667586014125216014915191062456002544385214938660276802512891279962801891468154539998734056489776189028596644620916344167343871711294088480435176617060052877570088799584864165023344628235750081393794352368228131047523146417720709445544198754666861437904940812835741315522242004625098016294791796007317419417189733679110513853789742359074685161100319347390301013282666969960539282094686637393073942603293948824690612014833738762286947799307318551022294843508221777115353162132067222348136976104678531460006220748283208610224736896327317781949921817770243944830360493617372113473754604611117407856231639326311447513786350109628743129053467263889949125102976670767849598731720050079468329889269404128651564677134772174968081868345904085957070509492738245729986815558493974260135683577966637598205730586169810235233840039781159470113341355009395859512593731109372070808300871195606250124124695880099523474614258518665497013239524915709445943435381948075811562678884551875375824255792614365562399144580775470197526610489859462501260874338634984992009333006280751934545220763446013463268727188692901051364683361624292454881091554678568151564759046887519428870457374116214428313416105491066671286976507806692539306790678864572340057358359927450635193755821951594454074278398791619200348358535143309766238325814014808416153456824508116070299821192653416993072944272506745386935363566356530529860519963782457404919928013222349369834798032497250753227986848411466142977140535499944587863330540844873196649156337375901564571655684652772755810504132939328436825434319341968745658199941020025806478556371228917690257265903611238233512776549763987451393911546482890333778511618354074506623771237620440602127637291215330972922665076210592287080285381064060529403533483479756454632659607707192218551334993639560343555862713561133351523339639794403853374933225274340183800140909663425148080216253640946015961975526645057995382535169657223821504958760545424880385951294073683545353463209272330996941695308327883345576175503148038873094700834804122421943621423265546782418537506365662286263885902699251597799796227850215995804313993193712141016975337987418692964795486571854402020763677135266354751522253152699090788305009419432830898980815256814246718155901216729368610031349557151535173601708197734569194277980809206389496479832531118687425303710681979206536346193913675398246848050115154080367387943573247332176287859726991070161778431283945188028459805481174944404536371969560614323790129846179427879636356261863355383002046192627462208314390516321642916748019391976274384912767797188485785771422646301115559306716720365112236477745600658283263326888461023827577429527643879235555491805814946107031863912144060696895391939731426212536304207798991271496434613533126176843732818423949380913996859787145169910526355063951240383405882275410144078020183530784418137805526260281854550623899309251168695997386241809142016479490203250796154705056931222789670957059566535443991717293248047570008220416603767634720575833539668429499873570612190768781614904882595496096835054857377641188526978750035228344209287279284064452288516577558482093596415381768153037251448296892900259063231945518817961888743467646098857612079328816708407209920890953082547319245144300537520507124701408033475191587888122025009305520891773243605917159348798226421576085817201214549655925041161453739043836474652464225150638599389002898985279879664232099389439330533950451079443420558733294710056854328795696504739805024372564223569962561275612326131111025903461144451973966125807831090916951184816153463531763783644621884244326173114109708140863249610165758753394941783557935420105374874542367401776682862442846349108197261317852354967707260401156094903819385578854272567512091267671350498704911105264709541780415255328342373702840629858785516506685758859763149449183022391970422355946329472106464355503776869475733698032514821708326167792670132664926038894121169953887761783827086867304099832434363714723675097726142761219728925141679633303500737999818767839390376662719353350307274826947036038439293648548384701431801973012501703610064247039066212979394834408726083081273350422058445044592584597982574760751538135849635919865596717609166627243457928618761593415707408242520440205199221564609589592818566278654966955058649506235821326629033736395292539157328595186763163900437634336175796108683277944025443381413320965579799116759275700722654700448480696663730059768340311099980723085873254095388974889261591479226753678039910077431514604185482856823929828453974647407651491373504945805788599011678281604617721516465738436948047500141238469682789171720639241713423856689569362099483410566813235299064773178526473935572997629744841289728920761123301192074097222547777561013273896899637724589321866189847850059473085262106892179724630173414254349492383695057119035012864589719193837252791919915521684636234366662544904706532842213170566357800661634951062705130224093032671718431646238366713201856235668885267031074831752494650699850974354149568346190871039586615863949142558065163241212202920244417637335012991936775444613692991629122228902930670149403082878743563391243820612020505133258093392562138509520941245955616695015982075362889693705346565169777122097073324686540611034884172421514420603452990799901153740259634314432073907607842496566360004633109484654419319174991357640662632892270243053826282426211888135956896815010876764122512811910501917037242376750629344661608012890133446656000954226196246933256994129159072251663276090279089206033216717900439808014536194841046272764471406020927046764252917518767368776051148603803385236376342930639800053655221286077262412898207329534574379403299616320121343665344852539312388064932255483158123113512411666285892984520688688806979501237216966105850684497384140472940482643215575879728332233154961184348328744396088274970173983553276218126208680239163200172455493970137526432294282439454848849521449918721093824797518964798317193484894840544204938351650420981805990544746506461738501606190867540287864985278357081424419642060483651265537691678035729141718406435758232951472282475136080894107450744228667115478648924468737402053882078372749121344329998113117423710936615452319709722776717976689069908680445545834859177396496048390987162834179463441228799392840582721678653660858569426164821925104453132196041487686344722314740209731003203915894034291412002246950071233284506199506056260771474333909677437778663860108999604574361256987545900421425252630949553949730088323702739128017809540888779614585397809330964179844525481844348612743894323330607801494650839422869885477660788483372619355373534713029454224118513650579752176990952648603283281127141589634215183877699940109320860065047876562024667646924625931290532403466349382979469962458568482475981483958718397328791069210357712547198743589272555834920850075026107073995358787070399930279072746555236191923234577858667024471185660940569290726476221856977413203376763730590620428059034556267744003086857925146208761804067529069595975043187159218203274575012223738388923740057846660988726228202890546055162186937153376973607168311796010217460025491638210491505418875340482283292448248608065817711717619447003232233046279822479594148073263776700847973302737103738548763478072840268034379572371675765967027068625842295166494679380363200589632710403175850569723702867258321593384196482636694578458194448200790856794429741949700751219497011193170736781446257296210840100937867384114005553723176902338132937203051988489251251989075734912405611643671166984621881895775335273506156497368589224764677668850584983247452953708509627878926213241742522523159752396818472623740758482772772684352575868332485119889553373963565393044587466677018010943858082910986723172617320856533134299538982080304944807878119257709110345775558173660377559886055802336856173972791895964472003708435981909029747215896476495804092096325373985936257225052151024328580242255961751876826985181300244030264274314418145499192064774035725171570857999408747423280279727362685164138501236442219369208022582671897776499043959461094021452709179907761193813953916310353493235626166524274301274944434388638785601255743989294534983917665552784550935859896060476275256081340774874069811082285313214399255079968978251090021665304287972272018085384252583014306435076528085987664313787376764140038437880746613237668930333071927464050038055836164318910885324945233331645323519618679407662943035134999280516869968517160534567335466445577103428562751780183777092418436441129740827755041404214286165721091419248974299104411734244453654668882419442006062232764414404853827820461607608379590970761871623698910046129369365069039696552385936149069873565125982657698247801323930680430735441570053001162720561270783907314334598059574154233209745784890221066196046267625584573537532823630257353970080507992074276727963949643792791586555065275513539667644425329425892230502476703753156390562067526222756521018053307630584885277762334250013542471274708890368347865675202343640354112246756014035297059244254097540573247662959454267050019635003247300517365138379739446825029991186550948155903823554889062542421466521221417320707715105832977716486393408241939816192766955990688459829119493303827300713499354295969517540809113763820407855279948386786239432674840982738373849148010830503034555724162870706713210139889921816809525695982964923665125061866701032561274936130199006660146461605039547457411861983355770861295251597359259151731807182691749039592426717587391307847772460908401611769065890850978459128517729262464068773745272661416639742396314535949786895254198908162831099032527669653757072998934232297150418648594657349797303394616885072654489442701423001903137497473501020218979147766962897050818015234540958745433859446713672151827138649607993533172888763067380705214478791129219669941138820965851465772776442858808337659822379978958756932429693810767315278845692912341241511886607539276703800531967084716929415087570959950300026617829661885996513597409821553997198489652060192612819908774443361796316206474956759355268613204803582374509400843883339453132398818590272726201156398674883078531328234906707951474264710039601543952489037262028879603159649358997200570944076531767899457457720561250655284933365649738623409357103906981860571576208921800613090788486831725647089243546302505589307603793360484545025200329061128386639371907299503399678216987405673035340457596700133044425740510675647234614169080005294564848069666295179235897315768496270508752194550040522583324720126094617932096894574189807111350678266866541172747342401086155477868235294008681194265355390986998713029621307878518137722526094475243953696858019794342081356717044286773715128277021273583606339983942711030974005278868399709996232438373704381692487851765569513609453776334703714614589776920233803603069662154200045721098440214792181299559494129570879168645362803875896312905017766258453817644637605838128649239601934377664015351626428303722075375890541368356779392550500680257042929281052583005379689582909605557228550313683331822130000228451488115557419978857011653241558836605934171239871574223090751967345078710546590204395635757561709117685907425337695012874707654547848250923916796835066391479338806653298189878713848424674094788036177906675430460502202257098372859179501267416150876316444669275031211987198152167701068730941846171069367153888392917025101582086593731510179080856395536487746947512305010455883207728620312409804038571382845806522713421904196506639462963371381531792951651027840491106312803811325974185741255189747313546838911952502347128346270532456858271585656008577187236792637962371237331341554596467247916466071437434206223616147699704624052976651501797667217175924299279943858372791248017478925280029846508635593362969141202585562509765733390076892523323875245512521364880152638315270156545362638040840020727564479618996980028917345298077798365131479753410172875647314500914714345890760113316548714455072086243328953755012898623793085802263871495593186867002059220739683915900402834606080241053409456611518211121953030874945165312514771426754195936016490351267736245722467319192460518820010410442876917051118470352540738971812744047818816365155437547536057357367196788189440612202543440886165423060239982681473010290763757665954868852983666193249407405245878759520022164531338090293938799654330461009192853917908566754574226493415673068790640513876498203672331630983183575983123705190913932333392597064202394555068856727490837111683859806845911638639477651503578803161111680054848815970715376451396551859510263943886652101308302834400942508381718037129324183984527277764787138739913033186404582557174074003542945587202490308899017608421115388621485816461530040810361129474552670608275685033916843929615969477009743422179190861294629631176145957715012949066851544460998617112685819151142387127845003816803959738237591465605281460275632586997803403263907384995584212926905566485508267020112425129960488996391841997290563371337579289857360552561282521195765289502705984407378606306553842461110838640728283567218264158598802069925004957620188118065870177577994117917232192233927472715765651308750495586976866414364850689157044782296368790025546056245543874563751329753932287630234021912137353623045577763722797571164238079254398846942111811559734848938213686604187875928594275944864307739214151736530628057841359144424389716411357645922031259861082684857726426469174429172075527893790800696294764613407666036459379978004121829033845848079504934561188583614180072140718799377402548141306640239792413557459441398126220827515096213280225494113177204907210897904262823964748766084017568223378450375320416383909883438536858830146499860490598275043866846057687214034303798174061960973133131222545246595838410923087961588272350080960984880547383180381028621267996341767946013658405219798451304899172737834443953895416593431079241057537839572373073001154909409262233003614049524511965639339714249469287966800383948681345067355536990269768066427448856785636272457546146070914110599604391236179086303187067229217968068299865741921572724817249386116104452735380758956200792590062971528265774694242349725165761390978734172604943586493824939155794577571025002229935136513993880298876711033143548683899169288667360329240932572487879466660422128366956242540373875956853343355805509146618486865888805926251254700838722177842584596396899338984658878949012478839938985583181670505884008704470458738877885631350764085774815421789627208927211420321842279019988453689218716772147396844259294166878712096988816176823765494239201920612021236242601758362622968339588002983101923132844047771517357353574935272626993977482958321495079662531820627281910358511101203937960260267466937770395829832573783964207257538706129712745196096528252789536334083833387628323052321051696614422263689184862037334456410460515581394138495256314345441878974371117544014493191718290577001843498661987292811700824892413650361646591111003638080204539625858204218943408271327124528268287869193069661983333214890602635638514192705432254083007223790045773385713867934906238181355059053601123007581548824734566432282433323982687520308561660235144530016223447636886651957674348155107521100311448837933845537543435229616179939319092782775202033632297114284364974891001540513267457510483909392948873094011214897877991669656381129880920487738194522890732858230127287062308177284136843706893915333628672983793909820796685827611222586331856208552403537199280487854922270679567977599657980782527036141811680417629279558549687115911186280857990366662531493811183154085256471771516436248604820079017457234329511802744595668576495970840961139395129865952559524353624055906524208451365786160763570703699699559258666898074517345643890043895529412535659987985384792772894670033337106507529053638565302482644249065947170584954252412056633796216246752458732888036439790311063911486947345814589547914090161519110784638922495777815111553351331799462420693335949153603397310655260753729142357840221916965584556017311351852798759978807072886124932548923461321704645182245860250011000033724183723608862424336156064555819283064337116816167251661893084758277679588401120629830311598100449480167390260877767578929085402016073064290366662480052690807220040780217768934649510466058790890919292407052749646630414467074115540705018450385429443275716941663788652291841237061126772500247604914847200549319299144315170048884212997487528503778746302902373369716033588741270150897578882862225529142980429698963288525310044682286974292336325287887135405642083734284021294120487083980732451028014322364087729542560181746471822715910141088304016281171856752557230997940131455623640830468516086600851743609924480995362513415833158158157564855685506999906145801863896406281215769533873439668345979819102134178293580001526083348585023145484519423700357110316875351951989771959035306699887132939947845294274704216161499393623990919782163489385736807682476668193621916558109947761987950071124444769626203139216039814678234317901708348827127685494824804920184552675217086462063457240572493031946713020604947768778267165562528219186329313517897971479889905403429071424993443677414769982329473344682898527325971515259476787646211354784254761294887569540538070714284158433378571999700324538078418052209397966911177947029387173298016918170190558156875345243153067119839396413447396606154867889240510145335046093776598146012718542341048831884039214482521862133252247961182345254510310043846181424032407163348686725326851224950029771531193533911970199742997119779666952172185954271956654790996027227387770264694159805742748825970158203392008630942374396508735466508874538028109387580234124576887466996601746695032271532493450734026150259559571714678217023207274109143359303808610317408575288975306086628289981707374493636926081666580235360228071137881011531656164995045102975676848348467134961033565210365652072727493218635414119199402591791808224506204233223886493849913005339750991151180564390309659305043382748983046654073626912506806488107303142124661073824302570122004861103500957752912511565811676991762737212957986877786834661607939409482796206510210326050095429669952668910279266354591363442550609568721841384990992617102091541021725745675130227762928202202822535542198411472470040996551238591198703986529800726598636870727623739424092514143012473164552563038989795215493924361572234401358726874007298744782839688227143899330052230532981460653290108321108709168334066310860218510101285146852695442673555851517542911362393448122153528456556173607159584712388236499645122141449821626054112956269278895984436791456851425340951268039642284538027191936474315425300495172691831258486549317550445225803466688889592081988338823306200714444071119186283610948111669099323038030349295443237102510693257788374840679564195990812963204829845304872347235842707148334572701494507928691586469065710051774696729376771095616544202367096339973234100248784636946822228416822468165852057171297488568866090466875007447793888367957471052014633894041160199428089983297861504274910134246545872915298978909196690097234857364424493948883358068528304193593898429992108819596266721131273025649520055188788588096733882009966890844589581941244454869854635492707950448044294608837010001126150946913246873960245872168866991030855360002887932586363197721507848945404877713585480299855085749707873883304573770102403432763562005178218342826348565195180719065915000637658873128787280881689444263591427993102917172290274575102488128230546133285690895659828634800954148471683841436367135253056043479809470739740321239229389283333927646606971553516734027884659044657192943346344590971294337552407536821524865771221956919742636817183074926367110999842536591420916802280132090140402150315681801012569630876046211491563868059772516906326420867308841323026649660408141184195445733444253268584524572292363960363503816025381198457034857382743947806149729189806164844056074144397603559209173527600521126400556165539025921309992412708492397577937511272735761338299348064974222495342303835524968765178361636172132043098569086757574080314396813809953295093195228299819910775632425709713000087275185866483427412321677228001065934525928594918169039167195253447356556382288876663281021569597116308063290720488315319694318343955132937668848030887015687526135918665118704816053191347311700177214029385080794245044996106161783935264563429034556229129713480339011335637193257500502601624400538239634198352696722267442794727620366670901229711784929641838123731305332831765136780869810001677195073412034751866270624855949023431360400602995267596068037362630656380891452247963697332034685452123316320215652626404689449512699570632737559313430570336311289847727434670428079321225063115627046501081145771096974528522965308841274270417554021713853935795024878631806292404241214404049472711423484310611240799720898568892695150049616181652860524870144719802467605844379612067539775114346090588737062864057616097243324907637602979764157530980527753273017359556068525313241202501191001434623039445497262060203982534531153696596938732581763823955309823819294473745719663243833845633714405009184449610080873202426202014789691244821561832429932635894355910827329978453273795363252031075611889136290293959947654276551643493426057229325945737444290201479431972842009487537726985175946881251298146523788914665476130337804517229103047461284153690121307351399863781830103134394949603412391246086286348147275393248228048768410369112022334688906876122744843093785668755786958723041293914070389045473444639691497706592204127514058740563250184253953634631188049160372322324328724340873769182145281444971132672143466572127977524238769598350361455949426163710321188222097663465849836102240133158371950815737944828468310443082950827406351757360361458503954337863313471793222941413515569608321220605291381396069139119743288299417336860996682454252845701252255523900287212413670818162173207473297441574447505677084504955710219700215887989828674164806809519612140899682001482264688451890564738983836856586787946902494376252723094564043817744665574474486485412551198904384770166042888814313170589194896972357651110488218023508072020972739824507249838453644787357705909983802559580009090098803547836045618248847980355745128292565240928889360956370214296495500328884462989300677368198293096873226561893989730974496611790568340986293215261342378125590930607536958045881926204308267434012554411797358598366108753755719487427605307158229283981307916100072970235588821270013041508737638427060255872328188020806573440399204715110638117303642815132691914517230784976070118029867194000191151405801028608567909613000312598013571098259096617569589035421508714604332745077093370283486652380089473033465871056280328207388970112241628182997762818139176665562001899465994554421709913993580848997887917657597291388757780039409251510874043967430036199589548839143737120876147123863373166759511764894978734519504066447700352738648136856606080876795114704051996859726792365774610145199553770148568076723132701587429537425080822197050835754954469354766118132560763453134930467854950707115222211846677397609087935811819504320057040669128729172155543672062764359975193697126345943714383251960565277516409514654199779145411747221295027656606748790688924537341770028384338457789414648177626918018428933384856327055863909837269516065289543861231691608114276277088571490244571638815289969689221272917584546267694727806922272281714242664641357848647359021306231071084839938792322733887437262102903737464705547025496562634578714739075215569375418673091418641538740591125751810901993442337028102889690645760588729312915489877072740795827167904903070399769135402855776671934920857530141408039660424766739915081977897827191961825031696891954459383994815589106984608172060545994331665026562796387473832898525717979069265782273544500306907032522758116404302965540429048915192065786689394547103393470743024067230599993406977526786223173462067287341664775379132948192947092625950711309136357062636680952184178727518852974304133218491778267076261655433212465818303098899931080296377320105109846548274470818407211483803636527902709968273074879745796167110579941246734672227943317897733879649842788196712130158873939223205488443381859913677069047055725055298675206537070147168630535986185586014563063304690486369661917970790844960342145026573110312539927732002957623299137580699117621406334245597710483503231343094501439779574896613702016311940515670082338494143716104536678528117856429319700026179419422296055281790670287273805739807029707330872550165479822431149912161070361525899834573965099502427319739055022065847940287774188962628110371142492376909874011987516986896492355923601493734443284381836246938123601924996062854616293972661491771693956528051292950210633675502675389647375546119857919285935577524812234175928803084750042010256863348873697854642809732667291501814838995570664715119177219683629383783008916872284528064864849776727417569478596995239390029446650877554330855973959838025782690460723093020305079581749417537051611851785803431143420930463778153746989185816189401673960768350126868901597492795866836984768048074695125755433392380622945674878713410115070596084554905445834797857441735070026788675829499473499472355793331366457282420997785575792454711514357118723105303359528977749945009333534181402059448073086179226911038213838565347127458637157878036490291377227517036802740404405516975100976947997104238058833188214449077841715613449995987386537741156710526375354507749564241616112585918066550601320283453940877390196955134167264333615147986134859745981918960787988049814129488395191309380238803223019124548182633876913557949714456247647813112732063044394411631587594009943666856029370072917082018538946055254430915888400070462252321020598232242617539419622167204949405316023217175768084862841998236043582735693576793683613666713616688372070481889582386936838435238352148440128852316567665137800878914718969159888324339842813754412281146877314671450147741898836773593934665631582816496599235755843844596086241660947224028640904289522538501340580591725919549875945289663983187903766788312500018117961467251087546652133627255106443818235099582337931700905114889065591451960988286733293631630046299579388375649871563244263424246582916872408979757889667694420740746382167429317590013828578778947891505291099024646089013167162548975650894752593609346294090527871106053649637033820356680651785043707169778809496428872566832241787297034837436003579549173340072483670117864089587355441976201463578431352977284748543754597444048291461788081449742415558166748557136043279077538078694867676855504222119080063000810903515668462572541200503533544876808219783643290382313767993905841894937883412048670204527349420797878745693082219278990383475333075641090418209439250863000262218690645735776811582389940056043464814087228543692795606562260550335405814066554020161833559903492476630376821942651481672930682095517750001540948262028816142382396684483771182151455510445448276957470496857295681220511571322469497494260368713709954957410241393663125856096055328277713957988446067609742081443684307369353512776062887083679204658904543300996719463679704282969022308487015821906766572383705060669642555148207947595599023043295956861035215015778885966167359543068582099955793068509099288065251299891020213786677980249955415258769264880500758420750803708892870696428507672454615215778605818520201122931909978307709226642018983667121993012281076504124949821171820093086014619454026499941452142187616321732827815182423667728207082343603936169569073617668206620299198101288133237766071187607199187516374368322052451692579683813892712505243139948841679881103832481008871526840940511746305318118149747012312751612855770507494482089452921827019166004004107956196026873838152049989520443018506222805462489755529389731456260814692827713000863808840155313285275731207028220371003780134005131776733390550679676111407159418702389971192540390896614770492253556313403072127133655314146038983275447388555936909834986841874168360964609904856017313578694185215654399898977333080525107365307343825841653575628015238097673478327433283606459816233696352292449095595481817810144923924622699949537567672562822746817981359201184325262445237242042709152902329292344361255927390005742115452816581500554723438548749261864564983599629270989801014412748376158062469847823403699221835295543786816680660333469115650573539120623119981999762573985158384359754278908434873601381783216469838042931721757635487671498601153726556072226621607018542648939452459966465275047378279615013529500337855861397884512413600401129190044223569822731156665967982867068313597468445699674965626596838126427529028234648802399932510599725745922805841470029536473565616904206382547594129534681315055085690739208309217654304545951556182018946909453413018639640809609337010329730148532132844444938671710074910358757032032564867694516443375118716309239536116037365059470676883134869707560383149876830634310581910511631291268869082064667512173391545289507056852713292135919380590676347691140254670806271854655078969893633132486594834388832421994235888394345091165318539279856155605712250830537150058992108709277300304893751456632475065404041799361924894753242853376769144877619400219727754383801476558992746460647990491251519378058159933628728586835867383013292363012449183266208033258966384885028135034352975046234163326038155048233051192458088500198950135232267371907495599544437406344087696402430854603752607427845158056500142505349801622692427059319639580954955815592804025207811550634461273138303968765206329769438206168077702044301403744657141829747489596238483873727436011569021868693928633639418657702208901095183221245060403572260912337137626831121686672957985978947342778700409156568982702688963474535427746813909808145472488396631401563750457280820231919886193220550794227441728063949111093575749046571382798301653510309730469111714715096714819257111487260619370593930287294361311382437420639673220698635520132477287068335920526974968641449936494244702666522134120476336572533809236474890776131588149468227660346816793579667276729174165412070996360547754691032189786809097560038637875404686920783683992270492044113290716192508157510883989740216837827327552089875258533198494102432767274763969735553701387417813783824822927096689374985620978345041530212607027059572871765615152897662568053351324924559845725328090605543812350873448926891681076096853460457183219837320002525336735168742856049129180077750703118469130357068129427999179532988557354135213481612218905599903097736587122732441429022234205913046006759633802390450866702625684330770198459820563414341790595502303096183240283684388233287898995656790986794150842626367035016318318977220915760255830150789388805780801840192360822297684063394215628580911866621703299952104858897405029089108340121132846035613107524328726324154050237423904632311856764265850527934806127701945993061772156709306591580900652245662305016523627673977493915146591908132150250965967908691940972179154146482544249515132393384902402254357255271142726361407281555682064917076678250848087552331922806227629676973171816038652793676135028554285606707874788528929688946869815939184892342110847475498177256633881193205104296507008729347471082242495717581978584974934177716653783505793528902900970354727077884516128298132596676372074382746384494868641606089671367648528509478957548571391893811713254521868657792426603305744384170984110358746024116212206973410383764426433194698734673447576521689140031243265069135927168297989781637720084655351593269933635265537062941076019211135866625039941555056599335768081910414219157411333953708048768756299419895139740642594024931519642540005467527813013321687547010763023948753180479407236815601004843368854622005472719467703984929665970305213128061706820158895117978639357811005741346737085608499612151424357859560128211538632972247228246193536001603700850170176665036739413372301661491980208974629113055183130496368931108349183713892331488996569540905338135847387870277739422415164144377585810623344106453353802254422371566223494592894359372040996342973169577428753281410792459236289434358629249527510773738839185816254231813579383399012160677408722200620499436745425533001025162686103463928080541555223021477929060122784795488149530225074192089023606949315112403409841626303752122044963856106985484790360852547996429609842727410168093170473448628126905034940961696639474789513630513174714555534095669595257266515089143386820763747809097990290003699812999049673826745767256849080141970229700016352567857041782819322558356864945878720596838823904074711773180366959990843032885132181178599825648500339085207191173968150847682602098717205385446468618885100123436776847763777309936145231653975640294417134810015947077417515168645272524149863107987477126548300489858264025425853484998432242545674873023987490149853115533950531042566082208871980837125147612478851904243872861813626126387850199753175676308968637966483685521713154322595497327366128827706485579052434672992374199484791238349208984156590486305257668382398218209996477764083596105409009990999700296882277457113176548545209431761280739838316714123345580199886382309512137020459442885637919991892039467147517871739037728478296464207654618933618236398384776664173393331043748200130570747414232215452463142081148148075921811945799371864460316090311645416660301038171902557236273172218669065961539980558766255765176065558207618212267584355103396206446369592963846997913255621426828557074167928915650544599999748455356029418038841363223739285680076770277677513039448727117856040001346816103622341443543003194161706237891801161446523248748839874699563337221846526730078313528473049701776873989494949482147947110349898848594135991821529588160835755299145187546999659993693359973253627851143598764686127181699370028508057340352886177806831070363317205140047237356959233011970266165573015140582196977890399444249890023872304435422416142896647012800041670874490417285027773999228480246061240103312460902532200942619615440243355663007394985018631865125271462963023735048278705956197841721698518298951871153253963813090820152345705087308299718593528914493037053642238518094617541808211725565768318053903383895031573977627095425770839382295762724423048442437995655273961814840203023044726924066283855600444502406272345360004998942675255425597451584710999879631953675623762977264282665538334170309302589419371478705986203692328711593064569991937030125115524948920850279550768397534308231889341606153147741211674611618317357911273094657150733677139182263196209871381395946701641353075803268586132819030927199274486917322474162280370937991425403526083312737527874087634518591894602587620123428454408575822299439683601172118597025282947165191785512190992427467352951277555767369783050060196377729114402162358494291597449226524887537090871604182686564751861888299727084498542951733975178062752096384136526612464977413777721440565948746401079591423074086274226477455891376178142582991562946537503025124772440593141851429368318138462886598894384946625940175752402268161663518091421243593905444864371666506931199778740418790804053980775052963384977730892084037009521957565379126432555107998293312755117890772981164883455640713698394983767742345376536311108974109577685569818912136073457036964066983005626891152839589002997704361132347288410483582914858067961595438790467727181337380778619545435675954680288987117029720985028987774547258026268473448138518364638100370032050308044966638128986099399348256518079036965456960091207365318485653917847331783144542550741861621930351887800847512628890092490911181089694945442339379661721713460807862252906754285658004074367295272660256729497448426782614986328521601440433123121836091797475924797288245747257603014841021034317046573703266180970040401812106895509171677549805068205994750388219500509840303808819298531329352280128203833724846890572000404373474921009850476172430573793527320587499518244392102636160530373352494970375976337103528145439272754503340065025646504325452467550777478554786221385562740806786699881112654999910831127690308797731691352244891329143878361632552417344268194409368430376489711648674717326325440370335866434198172567848054866939105444554676107763868807778691958331017809223918584847650686345663294377366239836522832792511426969087537084850305710949825709763717889162778918305295231575364390676734464656396232093065182154728318823910726415716714692597766854828571185297723001343822993101104665749559698714253613143129395961372130803399405132766594560513319288210306089739940157419551003386489577599634069426365898728428097847931880411065834990978360738272385563460425422035103758016868595191381622684737261436765933474336396316275609131991037940509776310405234403769290011634324581109725222767919851792564988124327295964379917035910039490346364967164779729065052987693160869641481181848371822957759334483190903586294021619591259000511638955962627532849101558504638418006810836371795684059349432461195730298087377279114144208859328328374219088176291509997588471970474604850438049623114511672723476954790109748369824143021333860305075501331287454350768700510715463617190969385873736228336170682389531792733330776349392738412908486561946877073340673483742424379818622778394299185431957849714904149098269835127932828344346306739923730258452911661800609245041991093241295456252619628426036606377335955588894418584235905660183330414285855770741131177515782551924471868858188966767774810254531195217965223681680992028842871035955180768720868672598287648403418354832498466309881064527501809509406781762651010898471464871769026994496880225073387786718909599781358138470525497123749562867957557305304693770197906100847342676362108814531442371168408704392603709558241071966719936932702011397115628549772611449581091378227819091426906690660063497999718097409211939317663521053870180886331399707813636015696085055814299725107840142733187891948216582725979996954179933862338237567361171718480860554437024470409698122755587818272979585980048610477377178381420056469268491004243936421230890340580880649440005049112832637562509287428719201215623692071961603377146377305087652994017944939399066932308000719151427556126920047829574757402162833954865470317867005335327408315460074382310419114625230341431671903469548989087187603223270968020980206478846244693475215158764250827346984964041653513765786901391485332217710926235914815217986779192431277319561355081662737857325617749550442166752313723152094828154983076103027651992092852388850522548712485418855370190557091113397676404500037513238119885013927796081263033293607062571203912289072654316239965274959868264376457411118289185184498422789798908604198080786058926730063099757433533809946923894077448990180181292446131668751830218200517611393519323684045197534458990361165521508785019155895413917299611565166410918249891485883446023887616537668567378009137298440131995446210368820497473066353487118408794461599042150664161882042831172526973006940685391923738949347840818970405310421420514233546831388203523739177734138922277366643006111950381086498831674696918830010872587111614132619470298550896136467043492811853258924643366986853915292864525235725295997665723443256908986037920133330487377229934526008622000780942680124728464544898566755317405992258766073347616912503505309599654648202012668773913349651302706826727761867097960383233615546595514141230102873773958320457885454769088187841663662901353067932513563636353322942386673888201602900970289218551224535085356024956073246300305172050901455886369141431669502152995469048049566289958764490204505925290466136613006017816281901800323490984749909168463343849370733166334155263072008920543832296564747972148452973454749763827974136867721157176887769230352761484483050583771208928026878177606725143160216859025890896154422832781697123008887948547683653983246640172241692783045702607630986484017909814156566083753340751474229567850556578060928050641576746709483412517326952569936880153186991732247432548851746451238801019552501751022819289399011414436199828401519573533703792572708492532435045949822495077798426862997807063905370697329869066423132865442773581607108344701998042363549037074711361181374475671222345721380199108718015307954072315691511881128425524885445718764327023391777387482774050810703828189151224104815436474798701450672304070882961899637773290789316366225441158665201464404200751252271044882714215470495810381536767423238923799871674216127707342700189294059889002242082011948188875169118345756274843825970849039314428020740564990143116621390658016952405299829041720436360604699333448671692484707470080206851549666249948291017878789565655818306738504317359124358835675672654554719564712323676277425284390086781464610170492598673206554374074083662833752425009788109096798515817789725777244801056476376637244855825964527338342919557520574066515204089518120200948461802765141470887776135476826569306276347721038735841010854832107547560627236492806052767207545773573239167731187333689326949502903952779366505007593803333883694857612288059427972619293693102391447642328530712162066661349950205532726962059349155295930181108826764228299938636309655104247799053497928475167893331428563829388645512528839899623442887775702163231644847802235839033275029858684636282878596747027372712085954546925442350769451642189782205488778608459447754330552714846533064666787513362164751726615734175706311187100312081635778999258738464596773835556460730446397692531461728997331513391676312248472255272586047334930656647247504873687242508890334536285831353508709483505975595363347432472555764284574507709422859182092880630285494654516412274004342134011820507704934078469431677229552491808152048844635216193598791398592920716279192811897693784214533336723815492418591991972118286014449949332028111138606119323336659024017863303239865183552811949981902283378798227719283854089899353160210993322661980410898934806787948837891308766252024267848230399971242463401135484525078881587543453642056936986181446725778624687255434317826095729863252530830533287735812594817669127513232144104004261405589959108360625728743899237013360777128574011315430781940047911455226130340033428550966996492576722857772337721901674663836621729307696822265423223051635943764995462321912352721155173146860126932696325275828663814099411090269053135872212401742677325184757205352633151903958124296756717013178885607694017467738793633852701051193327155073951521167072903231138959819479215309179216728115876153027276159517705056857146711832783013273031925770214403440388451910071929765397689708742160574124542511628683635728081898639676523879972496570321040467681282282649544920129481834198116104456870361083858481165368763410941717546847139567185768291346391690883575908232422700864441256486894451570417917196529424848055070785470340327656795065910556039852885377662743829003366031580676694717444745077335961404680089504875717024164847302428390096259198759301077924163073191096792152506705815968661250213928046892973421412372746075149931110696985606673128892895733599629914018506263554297148195929004118231313303038159500904870814140174749114291745290628965249807073309222496489382280558609717681385446530805971728987215818928214095003276530713340310528112622201788110256304958419530771419531494996251317349912712472513781918731997545660508596306825174630754291472935182988976393419010841663331303264894126967118010026615955268064957118958404613814665197745769865099929205656479663684757131119184849448804150857894126628642966929181230510313700458481477739337410806598002464041028073311500267734845742473024744661683880955172903845616333103972957853256083168317115274532683668838250185360345165056686490894742433742321215647928249877877944026384277623060984754802028071413477540706601500712281640288948233180655705575059172918809937836401151472912827855386204252498488065044604765077159459498944978490786166110661025433893909012546729010358228886627118319190181528843376052120405089658872699630904303841993167109532720449206928707856019012618891622331131928068009279236504796841685614928012196374177757133956291317990817993663716070933340033468400007778477164427360226706667449547721037140832939351932960326210411150952703423060374393879935544932576315266217898687534534427486602855722693256530998876613630031938074541648851085109348186191424800284158027412611249834144962445522820158118718112788381040590793971599924436690598774028148751365355633449249458152133536943348533094049339653460253242960182338218357726144200291280064632602814618948867235026562175756282479379150196242516656221045506088261443691309154466147092584221789511751404208754000794347253646081938093777682766297517813583707769117811689151573823853202014092306472767324849200261892271475256591914280043716336812560925476724129623559906445099654834982768988171135128673993747886824517436214369280145840912475145721624520575786240822017220991207728623012842489798278702537266555708828094813315500121969258320763569814483531663895336429338297950568046891329627774302059266616860645492995784066968709081021922513418752758694797248755035830639762650769542508416282458048738780733705870049074366323174783233344555017070579547405263362775538857166605492265416601982530420344740701876887567171928377004656597277767894247481432644952938657602764310251159107084388361701030553975734062728498808639322180159874971987083520294799099951163711783083605228930542085079295579951543581665653612891723389194563827932013301347594540922627818312274291325105837701253968686579347958116895609687439560326613642320946703715630646872968518945090060849427123867985827296991355105732081880490149201058003144941428424767443603951821326352764428436111010536086129131061652768303454552258576001403636785520179695594400103133953144666349467751773944540636340758621047846516204284935031340675489029832983649246938769621290362625478834508456943285928835431246433262885013049934606795434327162898831820607934708174389636312898403307626375678160123583154637562525669364195829856654196910792058618101390364291001520079210291533226737948542569080704703311891472537264366361848892190968748855074779590296655969626829855817084528352851581370664630228474890358064174486980102161570481613312322243740057381288105638378161519600957168715477569004612063141431121910542615992543629273238843667011989021290066725063356506962457976288878724445912027359715373514311607102723636669328880759508985457636307361770342793341430437561921106420563377063190238113436752169332069188162306806692691070700551324753281046228320966467395905939742235675599860274462536835146204065353336447481133407289528172900210402473731369488627954499205858565927100502792889906465561037391752397212956472355710527035779647838243019734372610481897045622085295160500151335610201097319358215460327505957349118878835932839752443365794769637790907505196592013723816486502116202629479592887910818674772271503965078089169938354474467629222734756268994749557881826071321875585758518830628603695920889325651049745581465237340965497210669743991060029132630791756252771109632143414953758436049285323964003532605387827064410713063308861200239926748895039275772933487420782348754285946261842094403072475095489247143964261162921000635487888165415917015195151438935613762919164144539935608064594444829339498346827691863637351625357260783144699646864108700519865179941139625466336397391612094337012498461848145535386681953798981736918120286948730944094403805586624548656850066312561067719012676500006420626857403010610669044554637425350154023871437259960729795997350922927619440697630435029189154285504749546569447464154603123860292384880691626074524802395507896636370762507121923024604820092474554030699803448140008285273643120711975303154854908573475202319131378368932153749392797054089684777864645086927027011241423811384465370772269390244500635559459165517215958132894402003781658360671308090080538625106404801635565511155371586555545859534236824792968887254682428475415737059128130857620891891336358163869825762218351144207143599995055727774906862350878391656182177379223738507030720657184272537974945292468154425374171266394228154112818402949825553164914015096956658190847501562498188716030737927623939240572743572009539209035744567084780757553280895001967555651274015129810667575208680639871964206145886555440316939531189944967404951690684327921002371001574162086284444817796324216748246901417027794656828399448946466719265976251009230365009337799920840216427233987293533438025386111068516629041599761127202524069145304697508589501680371448138486855897533204332694415406777114956632832672312301105691604643440032643254891880986341745739070905350693171945625300241656691730748251489956410609897417481110610197757740326106879682472060747174413518009704610666183137036105892412980643012510064850836568143339398816244714631799203798660346872891016824552441452191167176741986730369010323950873168994173597148611334925301470055624103591699388349900549582351979915070401022207057527520185414258241035720541181836485579915031429495098638342073007170338459612629912300380376958532037410341360808126437028066093053263663107902121388525681161365655325388640733202207809278293057038500573585763924284404376734266898227933001123050632088515038188131346668928747986946848338475095482674797178326834188935026662346775293577424491112792318646315122002595177075613756655110930727288902314818733980042269608872664240151984723520400213004664635685387089821320227967477645856750920127367168229921203990136765805268016004484575440254553745614007563623537497935528300229526502612822678076492760706770577762738519841590240558512594084131842829972869989265311049669779297960810701718607477051082416254551257154043810819617800921543823458782530373486922660234826379122479501644891082191846503137881148294467793800664281369398952429258022198844746580798723939001629853113258936469268439790775182631209099405077538467587908831397631866837296242610342297376160045322724643347478206542622525153852960852409484535421148267297905634827523078496032831815889689808999137830327765488859798669657201550750068779725574038133890591094624552914787726276565648264016337701789860555915966268456546494340109344582298877357993550324116344900686547710753221803771817494380700182754272708020317222465778929163991527510441762765071179002344610405792633412304526143952831245988587950239231774409761340039329158429303553539182853979707952041972072805630024589186279517736991527835142264297479328538889684635813562292468036569739456811443096093003838918855922357540256223244989459655518209462716192803545843123185641388314325406681989649326381714860930865481767749661249328265485518189424955461756188419132428627133253450706531225108704018707317710904525302188853316531048745938008871966875962676461661563271811363255569544514898221862254513238326876883712676152624788530552361981278484271734161273458039305641909037472000693013519134403497663384295130225153818437502387342094328474641332152901019763100675383436445723630675835191640368539843668858088829693714131021921874809763358005602181480375135874772318750487148559717681437326805455880655388386068397686964069449285373325990783381680486548244883264761031801179254464820713973315855783749056460227819084452850449406626851737172156756916784019747345527972586188979113988050885376527775651684954159790774479994508694178082866436563257524601419339800547651535036151612218804387921019209756462210171892227801963765450852949924938216060738081177407105980220132515145950719600856373351949913691000264374025125652197097829796745728937663603442835037913146247282667448931686377714436290196926252245234150356067970359216260992324015979759051687515485002535176750528621425093010106505942735576204159670888242017642433358837571944983089378786781061964592121593404854966479573799854956736421048798153148374728136853485054802129168937000080514053870669251901409735063065650826380805054219924072888889399768349584663338218670517334499323699178933845039258046894415942313460996654379415324061953111263317751672743837870378084084551062037713118076792217345497102581598213660769284074479633968565179471204639633576828182390790052823752698623555826455869148328394238176252091985769454899345080999641377146014503149568200543344327020528028262555027031727714342866872623287711962107296424511205535729138978453247625404775860910317579307201595665642658634742621579731157182204440274619912694678776829760140210802015580692536802175695971879160622586146678033134044342148168911319445668068499495047658334861776858780106556135671950373375285478101607326366595028388644174916421744001677596135161602474283746765340647413663937889043837228421737081722744852853967787978281723514627280490183843827062276259948506668151812468138670073031067273774452305322637746115107413714595748328000265755381850750246153016262698559301693333209943959445112378871904904048007919603094610945743700032962556039225843987828636357435581022813410869167002773146337500099520221542844751295974824476983741053610624209069423335536202025148983980704596835966209424679380694673215806995875244824636108747819898337532759926897380665681323534383391397895021265260151025289499915256420896198050419303314225672535546703089984044636159515931605034589229650265462447794972579214697708753521552246757030939300348226365908426064030463672946307359651764208997147166453551621057016063763526721483212452746450301588962935581033201033784688264082296782941215720322397714225643094681157876639498186880237645433285215050563614866221269025235604160485435654803011332790661623325884914469136751314285209635071203827959276063356637879032507933499100514301447650770274240266192567159045378491174218648822666084114203339302545885653044975267792539316826235308851156491774354923639449089976408505440919555244329445145855081771514783567815538954625550429648195498400307988431766232243762720244662473551100263426935920813696946272343615248780291777327999896235780864775654045448166326190056296467030385108003291105841933732569096234320166616187004169996776679710922913788609762618842222390286657936894330708754761694865060429128453486938788138383011628652975679235352795288776132879094441826843464684225501902096594670427997453322717998373053324866497317062053465166522867893411025638731224611646067427841177666497278495724838174772311337508394694067506530268670624524523915936644203519323542244398528947706863794436328789257112580115870654082745245297896669231131204351419443974890933764906503712305983977563924693006977929839369539202451471830712685723974510882249287873691160886114820828592927516990220885194478458805711502251247297638321716339448919191500219080071277861481061369964583777978825465954117525486400074734983011563331707314626201207014050426947395354397093571960901415872025173657663746694300440253774178112520603336936544450289114773170596614380144920982690841631617494388897618016934286651863711834854320009529861641504735403617659874090407229050112369446321390397662698068175714629018161647855957469408609669925881582731495069848738097797540101731011888159920983897792981596020025280708332746518086368759692142478379373947014976559657191945205838803600008052903213345315175867056142456709577077821065006725168258082695674435459172350124268784265998576443503318519720118718952815697147100977772923704725701611496485272412848644011192790682543262926281414018944995362816922591617680000051192820847930033193067397346231036837618339300381393752345760626178162545759930435731363288958645353641617372358271599631466684385190348163814885999205172309457334864513412173311936013813896811042317169179787458553666384825464741898679995823760606456724380578944863727074369430922912847024309595969282848725212567598706466834041230357753631461044064136119529630856997242538797545833772038172207359132356123043798905661390151541937604435997205021784144204272434669416781617259354109165215788168972518113608148404204769638987396848316854659232214043533429902607378288115723954759670103673514500790812583626161649571087848415448827637155450630593504238944242032145150056348449428373665447106158553583886865385884781740144480979990487261865514919579172354895039289340543772636014071932102450535910962474764454492840898445717892122261684006461512391637731240787598655112031295278861218157050376249354903502370415403518479500432795867555335574163259935979547029533135036125817146479492364895954719982076983879731022761546953882335864080327169769815112968384211663942550422715884447392421587799467978697474181174190443450622812851039875267743305457288333336664871710217826458220344461234448444941547333556502584427180525895885322098607598969283940200779110895749427378055213933806265203794145895501818758041339976988278612314177486035786521964553930183103996783215439814105709596430707814218768152570417960796772317673799081632023642423595482700418018099492122880477579237584230766095722324924101952594378958066488516298217342274224146579979356260619551353763938973421827080554933531612052452083397458784073581296735773434309413770688927498289523226935135274669136334747944239398032675894687016677093333319044349322179605322884851185325889611840084025605628505541293382099773930997780335881105229265181714679426123629338976204816013881786590348619137754883410875392366280437037727186931358357426794594387151216004682001773354128456582387343190521688356023909179170360890665451387306198717838593568521719230926053790912291924307409787872081425102410372875381795143872062673225812987628693749555636768078713507391795172643682674368939586945058757504009942595972805230279214417769533287942171159317110217793178849065855913679414871746968903424585097650670839378517036046255720524459358357880565323378061187330546910139569032524653020440300850340961369347357844304320519147666124124714675472600284706008662076331482294517737666492988431223624610287938971817051572490515275838291673940670387872501666681869877649748869082856508024680554946387773276466778913166957026385216225967236487226811569796503257868863231709546207092599969873338052131325560125588655256938552199346181236368790650252325057063363115144061451594757200745324929249294847764779751615668120183481060209218117927093170352461141577958891926849927343692847791376731612300267999855688982819384417766863330644646706658591600341781789638975992823932112162711573576464319663157894842129496112636556034065166426442115038514497926264358156839080616986203132114740985839241955966481583777757105945869219510238687731116640845234368588440962755822669537683440787336967160686800066503408887327538833678793442806944829394493948333933253489422428530826471365420532573766132451056782588214942149642807112419712031873017501470760330310521620303121828434046496088068204666089889242568109622505742120990721934094914046205240648019053092226050766628428272195513412593736614382849683914682932936961578550005655457159642020033827203380349617473215261357605654216795274307095993827647018448053642451136178086607459251972959731918888472966383822985723609373293511836449772916374470270730836917453116070140666787831280833438360314143452730225227605755285367910386653357220298692135634587255814537233980882771172526371528355567358901147247502371750245208584332853604469084171144526294232025610111200957269446997953226489568804461888448338872512363755096916658367232831414325028642292514665044915495034128085938854845328350149084139659327376279178590781544627802319682592816464019888256733919293021662542516093567952003634636367960140504590056708414712110816490874483233186927124320584234179632225349836897094690383684089254688311051383675855479574870796062460638827622104400239365606042374366526721604329314681512652957764969104280555446923449972284649486232477451330862858773675230778729692554838218903851926474997752054101186328274408400146523286011518087880585220785426621445202785321934681527372099782100841753532116774138950733290673899306282667682508726994800754721726205619952054777141508882355682769821477915971980354957410971232935975115006552781222893712460054473557797157353381401746328250908311179313041204965340580354909189053224953156548497704862996507260270023070744296901619988909035348528730310921036953252799564351555007531709203837844089935001457079136058149455837070522826856174048483308946214406562131968230754580807440789665806027716908271722181950440041894482202105413794112263856099797550007900297707381130316271077554715567571584424104971184677833182778696379279164717875028909881782577771551253060662709905838425149792354414212482881006552526540090717213753632677936680690277828247326695437712666319189296237037581820185753099601825534878248017692254951442212885394787154870560480086702001901545367467796672015997490021804337554175314450183724347169796629771247539996841242719555264661532149944876078740655474392430114914968827942037880872204688957895562484986181368938367843401679386018695950104083503613384493535140427763298654254495332659594495046177098853518332318465650462190588181657572175483180174263722841872531277960765020304610119656058911900441422092262210736553889451667676764826404747988817810060799733062136809268714207996456462593672392341022379339021932766998307445824777698584979763702410282006049580313456252775021697269625803851386829073552985145127388728088173068050471256362962306016428995601000041387441522133674583777281902038608116806839343481256555439658266514738387229510358594613556621063951392911340336323637146507272125802799002167976241127541009650599132602936806714687895026593160158624200812676939321978024270452389040148719014254935475956138486750953726711923966251646250442822619259788885895685273299734048518587825099803783400617932830529305125121466620670377406456906953943767640888959755920091197930030711057968882021382053541138329301148895013388162672224840063285289794105988016210943548782955246665932426660797419279353695925189671716473091951564675816064195736707865417808516998219594483231364500747811177964000111271774383377432697953386761912801238400295898407817535570043394999707259535478531124276617868987663577229230664023478760452784808459298328806393851137851147441021033489160035638209344287774236014897741195629850699710673051588377692959171514938662014076902731797814216177148259190678788955275005246009666710185582974849775383359815319384050856712086440626661525892177227351677133051073156993550674108021986236114500916815027772949708511827289354364579017498354290896453105845699553146626614702433155113475454003502935885892556549584398587564029289915401852449829391679238907248900019696435089331881718612848908307997364957947452375553659495942071938637445847792731727890526538272145306518673713058299098432507482168018397080821706307071633348351129108887825762891368240188487974399306399072033936655125391478433749670505187086836880479538259217131512674733048942912185909988595987787245466962829818927605268541695777743980125438913413249629954384516787775451185021326675921735880088157996274534073412705018339494137690045212272538886479767274523010321923540462557317543292129679388511622664559195123325599117010410837091772630321349138939193930510876875126497955755554503821004448917397054993886434140409272993159088098341250439936266601117502129305690317042507552842871112015596918131606587561036535548856813292238964025943264826844587717551451928455932590155506904086387019375902201852052542034574681748371890439428547483541873212992601019986214054064952408632983755360444009026977489972141795267083103521993805449588802098670925094549345750270375191154527621137065759523497885142992119617678689003709054948491346647513768193605315416388289875382244768928826014589771640004579668777111403437138352386336581373331937145952673995635438607012637490905160397827482360735274441005515828285826716920552111552439900677550193280979641669347080444573301244394365658261083490087571227920799126763194337965861014577359368351176282227641709873149168139739084067416903725485563926215083186212329061016925506040115320018411952392840565100327673383896882203562477409970835806875553192343507335665711923405910681709563186924174557394355958503669315480528104189490900333426817569922796272740156079413896345827930657418390608561940234782181666959003375161309569318266923224254000320257455486617694542447651054557586264646081389353076121925259771518100666862373995467307211634397323967906572689426554344122251872712977873552421369675134932297927236151205490130532116971234191659737760319387555170355183170273473724914733722451168321030732067323630267390386474999494001429021362902616021848744904263282570587463101685299630629114517302674703793925882423828961399294197988568976869922212730498998500089499688815894896387688616396473897838080197688103521312991161360925287992687767253358522325145197742561142592264690566697420025767929551982552891196145048694792037648570204812852194578149311912733751692986302034533117452984480782816583140315524327861924039626189625048803377427846561770670293827857039429206005440995321438137491450473221578363536693792811191785852604400585566276572408832985919560794421039842191121985933536734229437859911555260164913656003368147771112294939443373756958516870277789314449056452722615274292358731323497056005331431495719088318843251452055049264991739322096124531174857161679210001758865424407926279178178395797625255867706781255847457497748136188621296305626019669424859096862905057131566236937625072059523396629015290628526005570405045703250153349756845585046388529714420578933733323975471223782335541022878653983509865075676902235937502470613572471806946810047206486872396341578250606473858474883071382358137429455622788101711418240499654397720200455384043172679096250729635189696775879006054247093767057615500573639991756686230293109249959042765953995741283435504056445994367984089490293570963896552108969158544615093376182592911367935924434892894228163656188052626858775162408482449963608562726585388721958774664763980733866504440619348549789413921404981187828728128458309305781925731333465926322518671701274106741594988165643590465299927200484687894272318840851210240591594225860449154463637664636235802449271367611022384183204508168283633950919336821469145700555795905754441158076415254419538611232297926722107946658446448856534150751004084033006619480188158332843531941789735628020836176232720966678262131734408604696437412048838051404235782208845743891324176369641711072743446319307176754391490607855024767107890803328667540772079451242422659687094413898297073263316447146006162320712232680641587991721240417243165887756123971724743531149985995316535005432547226042777682310320262856154354136743769307387872976428307647500539522327072059166772768024715781865580218792794989665542000771557339074474322464508117739418670903960057098452435813358838640369136340577876117089041530599737154761126042203469382308157817740048485735082627127909497174865670447583266610345444541150084715534163728515108598367814826108534713397363862502137157729286711096174722847981059966873951110191430823533918847983745860680335737291070396180671104582354436811044726645374798711114676303050376038283425327867376239614679057128421413716978658341469310084649623032763476655374144091411535069394574431790408044841822123481121988093511298525341474025344729717688739049009937490777310834484118726968841537847286912146473308333769944890456244536159933920075752692977388338630399424367068381590818082083463503925073745507253770669459555984125221635238728494638864549867031704536188879748048216970870353642033885826635921554384935794316103447863846843069678592405407322514629501632260203620859824107861367012096495534587756301372587369378780854629925221386651998945341412736140441972535569726603363045080810843878614908671645607581008693954398439526630238010894846254656378942360436622170667883238966372323494280299340671456671985391243679214446435845928283013486130145744837181934941141417105150665500052784662316938236784725129756665443929692272681039768344180122637606768392031776776433595965577552880407644080691909517115444846338207018345274722856264809253347733483251235512070357813109822155207658798921965091618614855006999358253856044493257257972747574663160349459192500542450717437418720716660849845791408373417508026946545237864676495886497628342228204455904616525541057599342557964638101309221680349663303573909542823488750100033392233309146514143345546281922341714142729291795401261079784164301925846196284427289570840689485664196347647973306418077560734521551114347859143652671786896693087858997401209855330596844487902336641263319148749609816007764543180872965093228781601277321249873866124322885983892934317564728346092163093633268968765155272277217824018320421579529572711618674267473354493474696303560251429375918988782801688276157923574378540257210158855049525217287046017443529119722852064554147959842919464957565372677956383048990782651613677399411911452389854395099349465821064771756134684626831219834114904851181507375241967329991547603449970125512112889433817043114045248085898251370299892047459564692453757207445940399897733730891799186978367221924453038856537746507909999784397529602467714515641148333076352348315607570290428438694857260130712988880736001934094487454838308157151601679389639582224958286054046461236636840211941066938047092319642674745057092214053894522850635191199975204053820675987053115721952422046667946992360903926033462068476576126133362006929225499773380892298700138084915545016626911437251624894981400880404789928328482106391537348148854307291170365598094556331677363756054315432420414747070051519019840073046019952680515324357327155787119617359591268931114827163540991682864808774878565858807674932678389727410136541395495620226174917828162110411975902706872709851817283115390533767850227002383081951187123831379174902330361356840111197764987087753506639973793894135355479375886962141361112860424264132602617154020403674267779525799653907850664020082100420952107915687382384379238179225575911158162852022291497437369224137093322813761656198123201202785635481698181779547693370918988884362765515302227308741293002594081428486581071726158716127391385319436572580119387936925292268363097018299018263708325678657089391780887767935517600595579252547748708073509024980300074725632878652953036165179030460022326865717103694407334138338510133614177479987467730538481297062975695825441272151348596317484578140721762688308480530260948536820482900097285671530344072560050769471801654254136277731597507707867696338802036801268366364364948557302352249047073815420817090835959711088789766635546820685601496162358196555385961838550496137558798526861944931717505446002582088484378517265838544952738399580865704303329545382745923685872801590503560046554316080321151834223077699440695612029142125225749392474957575209599757758739921174950416895458415400046678180478612487205822798295139435749215045363741454871417818963923428643318020301069414273562422865179152167281109194129436018682494459519815958363883662735548940067555402319002517281837375278003232895054609005171595148360385685652425263028528760345186734040784193625213537149633801455383862210351119152903005862435054773698421340871577485984648328326835790055123868578939865380572885384627913804187618083155035676726839269439628679121495249738304194028153575372074517963994524175933199638856527636945336349204370004576444385025688659393066859788937592071979065473464551045913850622372295442765489643519523348620350686660423564486430340686122747927726298480030762391624624735874709712348058827519352605725962613386360947438051716655658132676656575468080978627735879955758371886189014813569192139073716316903819907880635494399933066787853818717423025337545864492867546268765907321147719680825957271074499026027565740012917146629359047179633034017176067352435627005455529032094735212403952080043882071921502264967723659593274371779449282654709879484501852151898497015961946600323774914302265985502583002328102293493024917748971041520945963516814680152867358491438077320091156509050311037048441306280723806123822840591554477665997890328543930276139180795679846484606458396785108118054519198319047150549008069605467489312411839800275340016326806715423720658181818063700277857840813042291573408918335642333315318324258507641532022575644140888724902166459594557918850132648003960105539407566266169635432066705722637671773553372024282894425538220910425932048129075298333323160341677372369075625308635283445396913282621878372216312870038161722503122976155689433229201309876060603747369990099857616664215653674956512023304373850062665326820420615421270840155620256216174667291922067584697806586600310897871896589926229084613496270232898027044234517438557737071047358795834145372089734040035946970688660220596733772111613235231611319731555738628706664842435331790347937355757356066010607337375141746552814303535853880461465630897518175213478624463040025849147586663617550367511138196792486678953728875929807507106968299065844518452271090776446220588712113523218696317879942061557049202710368414972641616456643213679876456710653923278892186226648673306136649207618333685212717967145726918505088200364331428176139710689612312325940972499505307934917353111556844254950894823018072671042304921354589346029175128837945060566128771341087536434955156328323000587754526715303835740448804950648207631674129941549193508988374158591454595797215234757490725549510347274758385687711761557600970095429528787716998578159056997076852326291726526790711235004742442489507770001490421230023294047368093911107949258875243715691631240088219579087381034290760293785988173270588922386146961904362994938122754194329709291092415543849405962751290376743438620558310261050949180741431286321670129981779183643462999701567159866642014528992455304027100821450802190572190626290241174465822474578502592356227088646749051330838147482158069824736517402594995528385225281512085054412619790045275265505883237133722792834469231413373831539073962227481903209658894258470449311712335039734053838611427604278478823877749552107767846087555012072207134708371644732946288527881381358810659056090599298608817011950023756824796698528389586336267550829452711898406731407139397558268738220758923792212441840328450662467298171446032345228551287960896075239838770090170705285779713825815007660199550306573839447708632095668802581586455523630580954483948394291050074140131648657880609114238063914056805461804949532419683521074142265747862745810208146522103258434854856571765980216817784653338774165860945266539809298357203429956336327924084469551274450488805714135935005240620573787860973006244085607490975626579042028943215116717610641233411200953496416555555582659734322247253112566024557148234219993659855779456316814528724799743743360750436106512458558450365255457725398989052294092378675449816343597443627972615900326009667520759772982324617036115825818707247501224206561295010282156115525151993461754807175673972811186962465059903242021384078341462258504551386641492571716649301050664910587331882686075605307465153944660600984199386510479107751786274975880208699150133271320242139495094332842484704089983161366899891315910105621028222233562633844603827778919100942896771269191630402876569765752815501680506341395211939806440661680168903068395570592785060392208270790116900583047391235516512108805584522384737321328005981308971368624510054886839043944278366791890423723060405586852322270904193466998941764517856075196198495194893334616926116625132053214041166176224864283855426367905369510952128775265915099967376105895312723355892046856593896729285191962660011591790332405486180994843846484723740246069727476806606657674941776215237375122157754353366319304593456988666779362539017759715900088721909441822066707350699767784709527828593213297025649664268986464447224113117957185879908653955628632644211862895218269036707127069193706611732598697163328443999702647888111091138956929812116396113473929628697743487532121432890080772193637769171080470540200555227650506875013546028106592751217649094745016446617002337483229480303445500349114685659253996428438166529581895824862545540676022722273592939411416827005772928956035597602519341949602790810172300121062103176819128096941862247060432745328827296857701908655946084729044008494820684423512327448476478251087287027019953288764324551226689172165266814989304008115174078916435686921586406102937481027712353410070999463825995073266252849383385907058840140258368141745512952344070696129209140824544154459941395412399194142125643436518355092897501988733164782533952645944130344321744555225580465212956338363759904456720744034645764284398106631665596778743202683947125691463970328024695240914267451331454612713982466311784148416028159562113791453521285486608304668736861699037453015482333937094320219941541065556676142237313564513192908828217351714465278740334018538192860238215439034748903110226128537390118324265985883147063693053912970648816143128443789284645915396301099888400259848363980739059442983447824506156811277490839762505662591202719678508842500529617808389524040839059678313162170919411676691646313366543247418755106113905936019255880796212346169145821082604661411156397454697408891052682809973603895564063550085899553663479486400784439708072612708468110938635653460882074129330132105570252661968012642104016094802465796774983889890940087647872039406172546964250078089034459419751634977203782321386468979394490373459914440428524861505772591781901198156591568293035914004274671319603152084775824984314631214829340810405589782627034988757509295400778405019565963529627852307547123188140828216435247950984132009228883183970802412643930612566054665770942871296457942259106994630408875839851256047579834310517358955639182149634210568838110712443531761474713721979978759027169653997383300264552183218862481824475327030038974262973026988988040972316743145887955642253278789573496454086921184314147622581759159429059161357208701306304446882084836828501975677556903275685243860916908060767765256912074533797206613748868115032452248229788017419881495785391274750225270985969008178288373017079795420679526513002053571581258735150705866905215242286349203850283511882187924513556826125761838242857457385855094521621368921727439133888623597832108658820433545907286200869186343355707670861625964995527574003331186789717581079731062624689825092509810988830423097439651155110713469052238594437807721903261405296649211326215672623888665067282841322562058119319434057093249271701090040964920232742127838270429534519334000227183528422688040678926255997732275462244859951385360775577418717548091225389756571233520997453520624083444945679812010643842602653683067998482649043296118095078207540304955611695723090599379231701104735604949612661075156310992868068295320921820636822464251131206905501811471899732868964418991663307432407570627757282840382620513942456053025973603709511054446412704941437551785250339698316347251946133872126875595882026539955444062426983974879113609348798629062139322927146991812535458144811377842968066057051382346032057876663899206843687155665341635170602764404245593412802292714476419095824902255701188769829300677832576302985193626714961906962248830327318843205058549103857458293162093022297967190005525393563991912544640780933113376720442784661784828607700656144085405090397722254636624946385871369505985890436411234778209901515296649789718066735346531944706827182077861896793214433109632929834743061843397165649229329131842211902740227505280537848725276744054274270111392513133209771295982260514221234799825050989310578562346223977797720874745900205628626198558816731614893111852234634718596882250131520264265434327335417527513928302562803789683963480895874413374207306609785864398292014917219085337118232356898966254793838237137822279048995985533331492065352984454480816120734208888166781574361441626224336773753672779143830091141774855623534879985075532769773033442801854220325007410206462389538442068442718634533105626234796094013478209165614936981198983018210343495077168955646885101003269770149853942472930887107968202970114526275388910881593077538505324162786876637775895570346220575580964713639050138523663836765261849572335087569187670644842827610167460284734718259613029907646550264829139402491448084301050837975162470374117551338629315231512230011530396969165334550504890085493908571849095633443437350349976895981774050401930438673842550653147400279730074139141688514022433527873125931196765399289040843787736714272918801145739343556603689847323330998603792091111878614692048743408515992762137706396590547552245712641028649844044596928235528139411899425211442650933298536711888398024827160039282090066858800083254271427823673476359503619909718438215870444876048006571597763648342299297947301920669560976542233150204008592843265687822174947253340618723300105366590738243884359711432224673643491887297744775186542059420305686370034883208375181235797940886256175499689741342601112821720980852070240386402442790667767090063249934276442280050941947994423512668779267927474782836405658763047996010415779110160956339726105956079164230129852049413220685866884362438314286824509190403679745763926036027928233001803903855199988759748216459817278717516690404998145900806194372956451733223714802324077779723420942954936537204181105933600761366911868284295485806769266379090206882400276427588016823580124766558532004855566491251224533001183453322816080553345981927208384343494149133281374394625940073921699746477588863247538293332253421752335222710011744966697822776485843363452568903314624454306615781831665312243280120870061633529093757758070002164140234867557031811097843969623288403497570333362471051724703100471183469504718168236554589546052983297862401704751913457107700069207137864700493537184855648373175627675977748976077322113452348179891519963356989348020392007791079646529333987265647796093428642900716096712568900619305737956932273537981154580523782409633786681992902956008733889978529547629901758973718614712805986869976437311009327035005514726237665582018142460845312697145520104333198279544163185933923378077920762722594351220105458208345253090037999658787905431026845257264058586768434323124365764931279992073886842123973934815925080739542194678894187291309061321441622606938467207998965301712790134962834423746730313037173487474224269711100790402058508724546070889209025787974771602288824274049212803087734182290420126729652948463698227575140954797081965856593226098432440369852091683017229356635712584060042457163865485276463455617346069888399417134410605184396544971704419036036636247055430492380973570587028581961519616004555266150994026247416795668974172132919557359294575856044395822284431019989440544215683526973806965301119051780785935740741585071849488775012671992511133944069656421291183279713662854367100822284851404561293646765964551388456032747149424190266182101619483473395545275454145543150064454790139434116984340534859699762436223642950316520961284127479115020020058944801812671500536639064161838178104165448565955790290051389248044130916179101927902949868446370277853058887780505043787229909819705952880965977304009433325251782213068717338565778166967384854593977200511881986494023153283989597520434437596235445056954876409953109652386639778549563265624636825915079392712610677046596824966924352830492197619052215517496693090600233633783580014928377196990152870963037062802898350242689655836030528635693303906454637061334381903524019286343162221067185667817973343929679411330825992168800509141894269825662246381279799972648620009484531130255062173672502516613058763755324976016553269277256528153043687820101954217767205346351021471991673327098108571787693726285566058431782837025390633962386441257164672253414974245047081449442639279213899262486863893986261601937109918744278070352870498889185970177330206670403342124939418619087959975489122973022691250088897583663060530354827733196454970787061006955770598040542940461518623311219892592919082940183737085994645122304222627042246837290248557468403146734998155232569750803315173409660486609468316767158572858866056270473542881271998562854597538263161553159982669527032467262505579630580162968722809253791179922451328748932965292092144333561773875728155066322133107369207947645170753240349105846280037414578633536025890767595177328967363499852348383332535822692402123179720225809808108492136112374137525788634197211708059234860908284390956865810170092347270420886078412570249098384166033489069151609576302491593333298857829834289693580807836541292976200719761055415639381826359406017077167144310620834443940251684322493902590974218435963530793941333878758437314188920091098318269559935388310766511922317043719668780971066534995629326939732084368370495737750709658935077937511013421599279285026047268234349800256429449959162460280988487236501770267019248549729151541279916508306894541575161746733682867145758142895754768090790030950434332950310213003134877742039133934335332364348401684545232694310300506517279192861653114594107859002017067593736226380811046749379539577112565363300186481665468277980153502394136617248794762166870562041754871382472403086811058965155645821358727389435491884974311007731574256298154312115632828489963821918910489737285843687836017939781502116217494311478968386166801526090004025074282261555795432303251506059089173745972858793455316144431885934362726728771652164913948032638970119731723156577326840197586889495926072992017827775388470952138245309377395648651094018112934038035553269832300015063973493197545021462043751384749242251431693577564432179059995348683845189528953252187480972516034995441988341610887200934691714348865611490211610799190602341649790014537988186830420244970961366310766990907037024733194420858878557613263894886990887393550906831615772695725766886422373774096841713857031752071101249600321748167975983513501372023593092656368091209014322607060814843292178026799501406102591898263657760792272666415459025820340881749734810123271460474425359705616319032296539423373958566608096386709550774831051774184511803653648040882841305820523030818557590154236355096511440478809663687424630683783705471804005680234656856713931611402435699633433278753929772443380322817803198926906800790543384313911398132937591042935308184559174683515247219794615399649078019233788331304387226173411835006451981193886054442627248065204957926197473040338415785895570758928457448509480946052192930715677327551076931264287902618310251434864427342962622936060115530828831885358776610786953603580434955159354726152430110519780260608153847214098005139964412862722169872205604047484659613459667021043613877747857491197930071135563140136538326475883809156206840400113539188184648414210007476763282046046744152229495322708427508069169635994230696246172618685485546018083309381140500893627489832840841286014043543119622751619716920388932339938519033644853346596427061731024760682778281761412082639762645252192391941278296656489663822017561184761647877567194422284598206874276327432681556346259674184106035381218816056001053514260027016848769112886010755110168634333338653997058381279182982346476648181322244548905716771675416424832579915687116248740848626569051729461523050913169548740834843659982890161247477137976492547016529046086759792387257980692176411776024084888227507258085489449204609745578958748036851620049569874871520236019234851307050859067426913697751520957157317117029949388446512647823561529739673084183154806842853403985824609315671291520146961776096026806106540430357199979808551291327059081524252636675246350112160777229454602882095070333389597131187841852981476888228114613489744912827426341696700964244554274976313143066893301520531227546959850453256713561488894281941212507982759231671072217535051930768127455014273235621247789318711772536177465521993998239535550565966620053498936846819706940802127772476216267073019981527307305085732569888477548845700092632054467170263612799907664284725117154065926521723257935657696971490899434399447125108459205278546809703665728867090255121070797758997957264433499809144311172784028183283070596814792766660140528904083307670470107779645090709179940692837686753616232424574593603865455118325819634920784081178820998455992829170189590604887688133890098020940790698438569627798179672704541252826554496135240130509461919247406388846022974455022944640357694319823735292709863605946891933223416316157245222111961026909545129997069282683721800541401530044565053779608643717710925233587009223678932298284690235301083198347745085541662324640642682009846221134504639919098228742085650459433301932676735606516568569257527242441081975206180241024931829032613430623710969647432095526762137909276575407967171922637341828813391509528752601700755391443861022727909943825219267678211242198655359965859348626010422391967139817443850620936793349941821999592052831032461332982370694884012645522485872295310214240289508414373159743619228530015845511841498390167690956509257005440330845747523466750232538848220810971922476988165951498210773015111901233925876030548377815639144156536842672865446734091187332929860333390714179391232159568034024033004411577512427357055081048038529774205842685833445234076236591324033419316166602903823867494583188895024797045693474514217641673240486989208451602650621028619332127865414083653275916879424651811621363049211418704727205560254450160731248641436022117180930990853558236181393279976419754643971844517241880630997797944196296472062233293754788659244363097998699741864457970253043161790767536306516695878368956563934864452904875735273400659912950932192153159110887192373811147861750982311313126193629977833351596430179092372214420987666249866273793677309779672601973556175280364830704379641856523244643826792543615642254910063907528158388743657274076098273590254307752099483828333624759227063448914124549785939355938178257239714738611689854468378231323478147501200469862265912349497267160450540461190709129525623771724458602269925097593254618973188862408969677007178656033160899809957736045699262599106390889958951993534440330440698056717764036168894166051755946929519474784182199727410209436314467421341896385162579953680222449812217304452435762532366241881482374365661244143965882608208401544256678077629569324570886867152184690457992581999654050866844025213275248453268745592632827587332809851772449457171570081035896289068657398078029987644012001227526473673883760078411439653933583335242296534274100524068669777524141439811511397954284912927380138739816531255129450767391853171129960183673008612220907634448004132346793901520004613952949486148001173716039201866620893293467906220866357347313861130460590908784676804724502384117799361752979484767612147859261114134989639843275686459897988934557778046920897947146502201369165241064868772206643869664711044060736384107455136033178233474229956450920224583409147919431400553167750657694121369197680595480916087961187819867875552860336892989565489353451569840153338041266322015084926683809304188484781462899703240925165804284374659468262853156201049826237648220943610623614447278239704670143741731635136065323895104883177344176398567542867142378049095307464893369736647912730960309903577258276997357021145130611831959032120567386306494593575286856363803326448482381766512043199736550801143696450149790383630116890142525802975316162524402563190891778243243761018993900808540814440941313480796840651334765694552368686815387163495111404908849422191168608864361798488843630928447209143576375459351999166683517164087720938334301499658076284665502478038918416709297994864116931538590834657911954723063686082027880787546100989054671725702493766015906614067413324706624960795543602808615871775445149112956778943252319928407482961735379342434152158606254709868470775039931484985866177476131109974518516195083697814244115646364823736440932869148819397764410258824669317257733786190565125100009369672713784520878689276852018158313782263369611787389805728025036706778463238552094658885118159059554687686052461164530321506998033382853017047733558290023255169867742443028387345870754550097423417717581168487998155457095687954350150791023995939172194477926183945249259692455539938196754752611325829249622995194283842228780987429581901227194549115841260940701594330976139858926744321438706524428027533773721386648766686997170549167527124713740888048318898180909986356331898303482020255550329268167461292831800068063241315155249691157303397770361588528600274175336530385847786498336135714171758526403690365847895826128266284549883784978097334641957645458621497019822664160207321513515599409668245594532962216904583307671732378356904970333200628015052376338517900205163590330217574668943175059943483083189905551428188439319192232479180954873396277840311665559444629139348119937508820260049871567697510043184287512757279378358808350748407961812812282789593217507752809927805865280271690858380248547760243012110436135485644679081587235119003090764705039053955398720190634592149025147386640918941122363103478852002380364873862002760928513355794471776612380473615030939029932526658331764333417748383499457288945770680449762391410881799428241680620198329822862226547191670794055835286266804049641339620895392778283318244679333749427854138901786621767011940788959605148945152293994448661034530088598603557607742364555364600697106523734935544158637515758246189517189279370867370589132536679582900937099935749986476950217049650089273441010592634118374853604873490093815609848948826584318941129780269825069284163583962957966033014359234451384878064616309757605181583181940176137951943910621109732744330951308371026134662703099880960697144375595913629079691535264935464991658086967546700990917170986173478366812481121082766022909036341707363261111994613696126529096146025164673663529414481703528875346909019292583597876841979864623621727091489294372163856586648352997252607780785301475835242208303909429140683326123213147760319030856902002426607465130848884524439719029658327499592827908945442021641811654910536387207376054382685144152700989797705146624788926105878899368291289515177799450075636321211380804616062075520553191501767027507502547847009756077268429072542674018617801231494660703187931047592733063431170141547597327929722439858894414454420008416331228021950916015282884069146784631802289738433508691108707622177448374423851926706654782426748734604567565007789559203245032164424255348792408619557127645658833320239729261763012015072118805752183101853891602965371454068288750508666633738757975586555301175027133294148402848639000882117579364412308773024346999321283901926284775255373148920875054125186646351578665250232988344737223128847006231398095530079571745601814696325043407971432596853095340048008798445124932228497300990946504262451378469777593160752760886433652706147702181585080504848869972149625814422112365553392586745967638262652368940529557497275568666328425258855707246138836246207850118661061353558204599122940313820014580537563308361673753878902673982578022975640290819722418762151369077975903471433409132091419974898172959574660012388714152654295726864959211742128087653474080292641364777301652243225350354932942375194266921981038826197175622156411423009595185669292607504075434911842147374485625654055689720904575900254435518556416888942448625650881983807271198938498741642779210849922972764850516851836212557413440268490095670163569235633759449940568731917093057909271770121508415013911607164576012830048720418440015615221263257730805938096017489802032132875559797396684237685197721512552065532760957396305918853167060204070387653736178026711479956281489358487435859730127988095337714017025266328675119949716619427891691390718740802972343057333406753134887778401375479779824974038429205029721625111272004659530656052178173066599054528804196925401379849841037288902099498088636901862604934579294832327391526303156421644733581274729210012354640302763852355302118027123212093984904819394729978733694602421887754539899073129993074076876369110371732537297401485200772556555749494334488732822007467715675386945448745865950281297091856891597726149612406137776801878539004058056390814675485083188502846758221034267092117578526242450248975904129519673172718297947356606039641516384280681724233199308650857052278080881616919771873979626264957120966570851300894736297511763339707120153063341702790062008844798711576797114780803715423297470162878189076312364657138486877315784936000423358274217129443759296114332710953394818780737685318314975854447542545714104961357015263878245365406667855382399008474212041391108626510769132194733938523638464115413928766095207324502545220477755117561520658045587838749186718221019711327459551551546645035289823357292121740066554622433880502173714546860592757792322802762692469965994994898493353761803561325726608562517328504806040917579629544602152164237035661343365867313487201575994900357373099569923212839224180233464495575167487505284781255197625393883130498279404969458583883574187700075838000743335043771266904619125175459834529994755484491659544627312729362565160488222959096477177135842889768379779063286492234180594571577862142966329948644288124673195076221648900846174725816324708215280677873383048134363421129210301625664534099199535033969088785458388439768277951927021618118892725627980215997803380126003642564186632765576726078280391435812538728691586704067611917703373991606067540936800322942174069935940656272120287519787304981716359966735270769026944929769055997925933462641824282515883893554211608909955412114671801114793346740290456145462544557639358625116780614364096342090482496504109172580244337156993811567072869602366402121440836023562461980837532692280737320730827622888817593363234961373695469308994644811961911799605632961751144758825924994614116159851613395930876436417311745378913756549405575523980053277837552054976153370931157452991627416209560670140671216888727786744546989933574907431915099374592963491281624575861761858290507618166491938002897747200496356235336579300826789401367790044325925398116409451801752659290075094694619691196033824880845585502087760897704771762347575263615223237749807925488409922639280009101127382181804117109719063971683712337588250488127380154004600017225280980390365668928127909029365426727726029302385447532245402725021402420535659353282082347833584192127839106542084026134182230877383553856470493474636956152601937434771115736551574357643343640337597957159265093891543741914269390004749484048839026926195341239844131736133884089309584964271090549407553543568180495420617796966593025963529287020891067764327405095079775386806636072746741743867001296969670165804557127308042909489934232057325189657682836901338461266049852823964713350404249597478982568992157134313738847640630046614735134858749699348279209084061468617311986182889343343582500538425564956623652551542213933539286397682251555882926762591016159824531289770930035180965562911017195433277728797384762621198475878564937310667389222466672688603585595809546361059218706508334171076036285000660699878773030847525398599363777645364452702028894881072009692026631591197469675224175219954930771667179615572605387146280478426418709154003339528395158733401407783982765656631291609153376043974691820035952889586988468043377224355080975788707674190450745770006047664084005115585205683918313613924873302083564711589505762111827010117298603319207657511782787118685686110874605780210454102581337371313705538470755245991432106607123939641522235819021071689627455896559525820571489707808314291899652831401312388884980207349293023172051804219776994678549423328450089535803726999164294212721730165543803581364935085939269031720181579835825221452173149727144070781328190660553087993282350917865952321023775620849155602826465489180877275020492925677371617458665595120301091335594891482244753017797649858676518810871961187453391588542310194016536355261307064799414678071653295369835580339218791288643775774897648597065764661096234223641246317804368280607334338991267196068222403342853397672920004780017869795375137248865726611161741213505516201048728418250996225958511679024297975444023777198853723469370101140000423984255234616395850620155068330803321006808721324136382108829449406321036361050683044886505913119082501945220891365075335593526483529687400683411045646358085158172374522976615306922919807123060427927769211392966177511474542479836738137978509227673736222480447627114992814717919824003646004056173365542062919537673577172234932702663240047858635139468507902405414559042785622214673711004636213375284668893813525399638388813632051299926816238142604069953267241056487273978689486597977342601708245786887852149391728126803527143661899599269465932067401234772727782483745485028451216009284487377573417911662089058206355960330160859142044214218851031449000895761885072893601461087507030385784015494047165984364534677906704985233806219804578923279969100642953648100099033085177863104157693651687414424650672696131040013590761866597643507540962202951288102248377254287423470658921343462084571352192259424569116983291514457795032717706492159116411008433738489688803775935632975866464325201999317674469964174666840832876025957952525991529528925276470514742610501482216611463875918723299058387468997118628309482547726942373067693762007920724743245574747409041037986589757129929875610573648012733626880854756107989412264441805438031872076664110949649531261139080063865935059023572369119960117724120714905144804981505356977922680325847193636420078519980878590024334704898889865061072681209688515778691195208100345166990382520108107083591266482665312930027104244483401904171576477635080412133034145318062954016093568146766004130044329151250921307123819000916111625572789771889592370173074568408484005495514859230903172113955879085655648274092286608501714926706481252295266594932331446870926768685140530112372840527622434643856915699019453342271291312067408049980451133985983440878903715534839726097862969219993469117262031502168352661440597743966332678696454190739309484323106458493228932785527796917057046346167957983495232860283908526156925140168846718274250391111291405100049593567328678067436284537176846507773268509886876999547846570813660192007219078108106532038705825485088993258848509948443152012318530940128404939582395211226701203165650018379433763621804072817936847807714874105057147235242136737320117860385052240163476078638447479832987320318139695187736984366663702418593422832160195228808393007832689207266699184657472540066518149341598260876436146172277151900688890269072401265858930451879245815357438101937072062524614945347729785547971927444968689919801799306784729370974833794252916706814000917666532155256219813820890109027129165467107935857937395666480288000269574274086419406163053913087486458347361354556437128003851635223779423537411132166776027223308341096177043061268088094091697228661296885711319626381003211899360101485014306550597357966934929558008517452514422132724338024771332580972452161393453628085154463544927799023368482391957620802458841274048453262638560180358891470616822222904761593076664163385454043252069087104444099205651919218341177354723314622317585166160704346413485539033300083081917199010112974676632530128151919293027039644488523684925025350731131456477411387160780331259563534852632296391821959114840448979726885023056116940796395760348256194507599136470863274221249740232369062260992936930343058461398314429070254438012099120918752224326529391356115222893989043343147154490004511123126059596034390148234909598199395999021227053624047817571312508377205366666752868541912130612534733426617668265443984240898467338663402887478221999316381330336042043009846640501657285593925269134179281665510219269521064682009633295020861842763524372239176083152002819613784410745176869333186577492795791989161816234863761809952059466570222342082125770875233759429103381785385858215970535319078948753674208905020537247806616186180486018914476732395082627460212145081023789801721737956608492671147439915452005581244838010523839865375941245365886652607523535976798636064294213637535228427749125952884576444980466301560135128925856639547958284465970153078417532310371005389081371077047893973812068943832626971954455027668875857056716951934549170659269437795046616859474040733224691685011912740058090006278500150910642390907497340670823499542656854699009839949802929829509049806645378059150169931784863792186398799101287160264205117073260176715267360994297587870709126432260968739145876187180200601194168526611649479385104869539605794720514641411253102796943805452798653448699033636711895299536040668118114009609813528003047176694762831194387505330182815959500942582781342865607313959500457762324030799459743407451351735033043883168262276390998457821899713825123620194117719481348381253897593513939994900796606277855082186976336140729669428982082320896497576271815064094835800083026182136059818624356465773174143650477171861289735535424892616521429894205065031331289201864023355550994229231374443307383047437532633567649713778366335925539373694304181286124376494149145853362830460916502786423318711665549408686624702582518309729336797070823270451376618886683134356141560069685883223223491752447597121115752625356510794422902873215607491060494981204359672400740959190031324967865475629238766438391443080905488601967410846588479053019494691100107895983726586010086206297043159812169236489134728324351148119470863653083862589800990773914900634900784598407584343831869585939286450922268357658846313271373140857255658822728384823370720162763384596801652370125636993678324343211835887532215069768710757929809718686489618792356389459973626901490738484646861892357530185798980449964372605592422622600450902625461565747243873823060590238060353495943161104374813153706049334564597165509688692242381797050920018210462529113076503550018569656926061558295197174766827074061795939610279880815607167158846626471086571203692252994720117362694021966320527689993582402678800167158243688759120987899774208081421553427632365228498561922790964227008193660304489983973387316218606266944013178758707268783056817403801932165557499341039030390387101349124263403288091674891988653054206680331471127257125645982229973140833757219851321626895689317948141258638575507746169464224017835664595827361796102760261089122661146744012091974901912155465273884482487256168520466159552444074170367397089912421623549321243359684141859500770847538849075440219226077937729158366040874291428017243737789286789463952724655423613850479258485215889568131204647168135233803925989161647280905623820671770465264799998022343124159373084873801871200234059046577190435387873672691672691746668655252221231522493581381483753861303883009056288481914133348555329174094660865742629389528427361200640994643434401978124558439009677838227388680638097576081505623415511666432488528058646260187521653703909023134889977936406729098543186982639057550326684950578279501520874049287112198451342608942542447826250395907043531012557694784942434653615901179557362284042669954140396474391869155889838969770928475577017508109566996947044229034260452888511837789292296785766928443429288202545616664039871631161469349281084749617713111513280956172924733981931487142886471659913913540150011440917385331342296574632993901300044205424454445819069288365576394216423895308168268921669993822602216083100675766462875308984253884913679396561208942593868950483942398639743125591455865918753075473898502793109009462625494809329278421388790840421287313097558379479194874509709911958706096733249083221712060149557351548663098763690422570047341529928048262877734121488702971481229931139727888291092041122410313088802624610354322113173755560431459913779638624048411125844849267371953017171079781821278462277322358335286911020631988023829424529480144358458790510310963680803395907583989208628462597557125610160811861749694080548712556432552913282560352558937099742603422666121559831356347082514544091537618167133790868939961828037773338782442637362180600423865362663336330112950587507845232380511223874420240553345072176840152661289342482333476120052045991174902875345645452653035358632575598912464894666388576159228599039163736558814966389784337774224289007032125606133757120160477572169257118359218546689016463642240584176143213850463810866702831481872978140969066547280544496493149455658951615084326243421504611364042355420333560716031607395969506092113652959348324160149588700403314931312434141009485684835423327491508468880332466524244723291421077373081469329225257967855962383902868018601138638526598545925122796318103231928530275263571163884323169839086677834326193408980772881572829833968389048552275904392050778813058585076381376894801068541724594005470081471416311345299091649200661359421376022414547958525013434041810372607549405899836682449504300823521746946658361786014658977385567657403260473385514872223393333841406158439863632894563897057621619883341183484998829926176238523438375076939245679891825918192494340542045447645960231082649550021406751625663755933325570604655943269075347624509899209609450270979140920157539546812748914689682649033372721526010396651085090109570077397271969979467970199321710721311521273666409076490607127184357270599741183098299568364049253579842716438885863482514230035509150695139144003128307866502541336932554583672472619241882437081506251971001465552770409481568304030175798876530944412888909232550236067597682054071061772914632036254009181491511735778681696887478035013534037090120058326843332340147434023900661148221713600376417914118535302704272180715039291814223497192067582995065977503178289999230749244088246852008124920231399029789268722197689431325820013361388144404141528661958129856384484156384079973967493266338401800538053922104376586050040056404081102410536549424648384667683787016907153586644159458590361125646333012841742996812136165743659667669626944293537301009709346130412028860374724094917321055449260088970001760407597046151813047160559313381219800113450328028329909956285597698244273084621592690244268751790812929063115846756920009495095922738359453958238862885630561447376935998547058748530603386282079599220271154617591698611628350264030180808160333392298183586504312318839797134594084852895453773720618789990568789042957629926974103947302272695781159602711887259410049933546309271648970491713375100123751117088842126089766977635640374335155777116978665892444437420655564853418707087048230392439137920893410510863292281240594201056613989665214064188835619033020776551397239527278600168637245739356417913675445264524207834224632969615079589678042935367080820565854854684464493184345622171830056187327696486279711836780233810903124692606186553577483055297430288137628785266968785144885653918790218563283128475961426087110171269495830732170440753496886908047298029400033018674852505916833379616274563462692451512412926366990523180897310295476522720550575239917129730759233904683052426294683156400531946813544891507411518549168871218431162344889408391463689088615359060114978545525218767356909458636854142217868949953283989941289147050194510294955714447734244234980531997707648008865222514939295205095641016328499267664847569308440406884072467697282987440761182241561070808463800150702241958571277281724086318206817593028488231791076221142445847910074543905183648839427338530211940692825424381384625873041155798765451605622416397356083170039350506184421667312184382598949384376676253230882445419621756171886110997612981395424730481248862048460307910391305935485217730346094434118817054824314485721725979390677342960261538174872411746174023269110982245517582564461153756978506699107523680144484885918108449986117698643257645114032614649577702482379780045679235431235866048965664057283509176313736030734768425472278457360658521345170428951427403909800892123172067389560954371819171513859643414333425804766704590265999063995957650496851187185394215700690688849346382369203590563562079788136747672256479896277469515782908240484267700823165694048252658060022757921254152765274019428678149797083440164319824372037330106377583265863746354389754235510155984481829400360002931065956324802222472384825323633013844340884122870571559328225423948302121739621439072451806204809090875027648671293852676303790357150442653819533707055480651930832331876005752504280180705659044535717274879895618747402028514994407321012123265617138241789005005373469798873460358223753901560612062113940511996180005728992655339720125747469490096380868527568214469284605908246007685633909542681943842700658829068972277870706389070252234631164292342131945916920581328731708502225319295785086693246057798613421710794497925970381235297455072080132490673591526687548720012750715716350547050540043788436351066001805358628800516482393375440641466706252140697087024151592537665989042535520830883188175727037259961440252811665725106310433061393011851342751575898692369431098328648719746431978376851824077287100916184549147282968206939148149978494116171070877789565509921914817578822908640081739796491640622078287233953018671483430857377526730556456452305639840981341625879015178966194048713509450799660698667298971888679617786871685754361738163324934092814741928177180062121953286702798435239764257530284558301468322758620211578783044138191365640790822814181005047788652362360129640015890920135369938032460159836244557493013685133867302366270599136673507080809450205440405560109832479069954561994490443571550444117680762474628507745257676882117992294283740297699664491112822206038635402915913662036848665594773922032728303495515621956588039892666371067905546370675406986405896987884372875822017343874747776769097779254611736219635300077530724759607215403303428845161112005990082938039388544518758835275337414524120429883221731493957809177309225121219125051726638150569931358608893214418933730748351162718470029460883509102790950696956239607075613081951555142873320977248078698906988849081543972067427874581916106857994567868172205389271977412523502534577215225690573676212944699280995922362599628475236716256527687529554844113331231608367957544781213600090402416740323010284335742795499278367435927678735396413292190238780136480929402031584225088279990634308403561607252432746738819203481627674856497334951791632092639051084817093604294190845030670488885938358328874370748846726251216374680964525509837429208854731740638802300460948703928400868504573550860197936754578468439498751482029868075971815129081019653510880351393188330256411287976453795469338284701711152386015118616617191260480591702481121497661770667361882122106378372917809997130947979714951898418530984640331651103899116976627919435485099050364678759100291067702310171525321794881936498768658220533845461048218764571869392852532071881728026453172441172176831474546878183612047742015734512383470559806242901409232091364430605107864380622099328902736544127141122152237040252605451216442985582250784579725782278094548327079899204987129160286036659423404162781560407686885149471642844764073840955488518028326110946070656347495031444912471585692866243681696994493775425272538277641875004649442866612486409949390590339557115278508299027917909031889210400265051246725888146597518309264146465699801120882256892035795685473907799626345859429008440733129589440831050202528833866514623151657166694744410336948709594416402791765513658820848656447076554748531844694186061488547077401851875921478971985219757991553286944274486352126727973011980210365650134945796011707161893354605852378178335656046972024247124244197050660039044788391625725973029980281469366072552444774816143334571700724224673989812093955500223393432960473502824085509754353863455309058442953533770728073157709572351676712489012039072615276784547426208623029879228617532841901184482368887046502492696775394658270116330484292202068762643137075069714236225274843248695683792025848734149818094201157100720297621662314902628554662521067595566493732760743142882464791987255900898838715435001502795328435156987969331754560858124857044197561149783672734886548102939657387128907402622570397508725558487814795986641161882509548342357638256122980036770200305338594636293144553825877819953112002161080392898307935268052382329084395833294432807051422926183514627464199379871286554760860660861774911611934299856412789235360269886287206010322207544070416437654810556454358522569328738077028189481312225239323445158210838044743390291378987028749452810017890848765147796753959270368060444864266996074404748935322204700555806635223943083057772073672302415848894995332186144519626702178885161110020300757187390223679865340572873100204236881949514782433817391116223077627158335503048820915639714796849833135748408772573679028544618620220245322815404304983506968800721612769468235815070813107199490005405500740736643323080885362377940753636451436064594908089959528869814123040868271156330465526505556809543351879680549805158541164715349881796163928886577573588406794705777934106036312318719495785082811457458000528987555646028412753036752946800852768153337508415295390340959122818732311872683353080697553024356893348007063396565322432601025077460031924269762947532446776116064268742601073001581100619918019536940514991397426987321234735916684685403866196434611991077736869867147126163310102612476141170287962258272318936687260255909572427777402097627211525220380213344300882658389590309931706743050880041676344802998454891942416312805632040889117865115999530378987419234474209064240643149694618553776669420402840671136062220157730991145806781219361918395506550884630952809755573643629818254260204210618410511947158897141006583356201193290395128643717143451086916342080201400370548065372097701358733321866036015423762457436683973818981802063087747070735218675124023777627482130046320068453766874183520196317491805553440998596860849423662218735358374201311250616869290045687311188564472842043996048038875589594514157509943020564682195732567168675234713226845803096989588355651490961315060475213514314570566948149311066232418410155054163867361363003806421783788664630371792372896648992323385701313754470331264390179040239767184414419451018100533251316804332286540938026606697250805492326157633511619085978145321851592876376947777942059789601257283306351366789259316722411895400418825714728370625946389113258987882604418570759581334013087407169757283803893064072562725849510975538754548269566825370067692643445181449746934670012070282118739780687712402770854697366636102302108885212913029824567214752981563876723301134498755090017006761904726667281868516921571703648913632172205361483632179305064794857163080057851325865845307385364520703227294326219786737788886882491350001887824470737499839093663683149350574996844198392938184675292620492611919418062488463934179296505448900730706934785550948240346111497396169120993570969460177982468124936829427543045537135972137442640662730779318457631090207503887202304042993609310878287815477122154731046259812476293894580927383465039732756742000586876244153077909360727748522569297139623874447543596670986858759535289228675985095840259056687196989348630018914239796584005390374124792056815138990039289932533720127601935554859132589689226220081259591600732321321243424048115605258241008729382908641000989979579071761013734683786352862320299610441626930570196520610729459556737614486832640433896485226364764400268340839446602444868799165468074292471451987973133264787764622575599447362625440533482567188201519478773489885552426320206776847474462455656592494788101458588091388596610270711441615231566359231713534186723795719319772897652769973643970197776229752273675297465867114005985990434974827376246969459037135576144895174052435900696890370648012483444388503201590127631528664570481986428129745545370420601609222000713763759131667626973796477499343111908497877882681118324386480121717021138466549621198933929221631659792882904053205007804973053953633321998422843011703511638163518647568905720841168356244258572518302930382554297194898970654425809487755221490824434023161902884937133996506558830837192003859693769801961495503229628532501990843327636448610850370785294323278806482270995270452353643150088113471212862893074758429700932053853550844289260238990655581714219627242938694661074760748273963802966339662113049999073789692368069250245575216221726118615164981127466387692354997218027999111022728391679870357767968132670318502306178768590380147064729527105539085756995868760955858604727217131071679418896818051003829037157149717786646419861898415496405220070801825367503099377854517811304652425832176150954335052763236837745829708288446460007854403103267930247142283763431279130922661941878298129174667227322885358471784687649886780253948843059150625267726447903809445380565556084243790511404166274069860923150567844884594099246957053915341096195440171512056620482517067749839652222272754779377798087382326530098826123362211547123210554131984970285958222247362004598551061222388417360966848813941204248837699205726970250661319882484199811514014940825404734404481327611540682089526897454269312911646624338034900949734285127083750876117693874325565670120424031785070385229874339010585690180733020628902459668728798015092765899228338054126056925981479774587926537763722857013285462370289489085739895341826379937403717963615131741932659012876480675685982742307698594515238861003368808953956347450811372565338643153879691562315917921831820123488160882294901378623400208010411759795752638033643650730513288385924416863327223649129068217164039089453904948837354326280512966111150251145119186916307057858279300776844990968175426567491614272426450569866832552589631592013106431901934135763968001317981791864561568619404568611214944052045202201634351285970107340785981994155500630971385095772192327512885278897440680757737850223828631000278920131624210540334574475345311408835138568437427053067460287398539573903123633976715546860150339970432059307816448590840540082149985709828030082304084737567535942087335709125246636994761278467184491680086363445618770631641981971849342417297462627065062203578522351881598942633801563202943498172042657410456236266946497103751641544418185474550557015472143699336951897509229831234624231774133982410678798795486299165077738543850478472601604655115609535298423249116996357724235433303464309452740722992059775188467486747694737884683320954227305503620372425287969085296668958903883627543322673582577083628281120665474420216332540375542055574538308576184544262276936648167006592511929005537647776847608814962339354947367168213851652524255210627133664037763940743673343624473871435236367984291231310108597985015283093838273264255415929091596654971610281141455979767314903119104781899627449186709169278849500182192973041062165709518872264957552291081399611195918886667462682637441378924712919028262298905081667031200725112174362346791792703747190193114040943170668426103415706418676388593211813878647341905928184229608471598443215806101462376165074574278594314890040485566896166375223843351090334372072729811722990199777605360275316540620142846882984920047423647562874650871237105973943054959023889585336203065484090794951969298451208696089464921337832095822694195393904566145426517603931814553710904385387853796368337263905645186113606620494260635226156600603177336287203889051044463456764310482855229454458487732062580702319336682382522781455557562789561632810813221457823566340732019261576253785588031497658851401529297055589221092535422792651153252663994964117068764003895070871053704380805576614554938031370920473908233611645907581546945097844851405907359109736411221481702905099373764936215863686006332994322479073828876648533415867376982012807522983927070073563997833892874289199504420452351342531877299386360925558024528454545760366461410813389909028921753363216212210628931627621429120712936218444902692347779702329748041660913383742826269881834477030989196981473671136202119451106925994297269904395708554199970955253467397864812145733043027901868286420962982515881378867916268891204024323827148991753610141584502783197094070710518073135364933446369847297289136335778856526723174066384410767853549842619604161163777105178017468804569439630808139322388080694820757552235056088647624340954701830099043932443511678510150722341817140832146234771339783754293957099109263256789379545086064595896374548442962806119732800065392491689159444138328535891514899387549630009844464015510495139809328158978354937088423393759040872257507976553678916470747522995233714187392305338190034133838331221309561872757029140441982569617877690309577112237100777081897021044271393959467484318438278869560383404968259998343049517290315012719786174095787984506090810643145561265870504329041400307654278979883304653744401005206834945958764351862934364939950625400220842074976893827596883644348026089265077133855560970562687728777204960827354503239292521678602472945832612796754059967517089537818171580124885046013283097746800884513119955817008327856593736046050883639110238981380070963643440532499041728819719148775294970009174799500343313708948831510366627414604984100097426278514629665355252291012626880742210997357982145929428739491039871438781290104510771992080492517611650784380046395168290149042863535756975716914415346847278307032237461599094998861951166281530393722942489145598216017617637426402923460912195994402488525760686313012248964453021029961300137676996070692828185147654664815399326380088411188691115910814030791239290719136595040772283208624194208619395881209944928847230410131968366167958932453657086725346476549928389534127616116360286665463576810250749608854288516702267640695700697161509602556931277148393817906274426171127221495185958620428479682930918922462906704066941442897855460407768908221692550845922156960386862127611872080631105788371329857090459186772958698644398362545657077392239829912194623105826338176036607912615890881661867886835109102750524188012372760429647674945341857273918959855080365435527672085199773722973508902793807029533229231711862289999583692538702289305290806965571897768907480769550780298803043685455272800925965390863077404200495605634926052436836816196402044011824051571066663317994124708610403286477486504465863710183329446924936866055633474220037497510536606252420723218440610949391456512339439760621184219014082529789919599924585938809967547058727454371015442750054878695753359874135383218641105435435760239536931592500196337779741016161636378628930693746216940519415570934560708492479119423882818778109104788252036046218014350694332650586712233085876473656070664468733377102557267079312430341249947566115080304434033774971255270018328972340420276596287828097361202227430493128973693817009222104001825266579188632552223348941891490741435518815638902994876673726277777769419135539543920834589063458914639729422783549808400942250729855529122703260109764682976994222417161648480516824851595024603225989638363889583213600955354227676538507670906157694230103486400234224810503849699314520023634432344252351780073784380764236212372220097774609455151950790096423053176392145720787933475134404735974559580446835441694567187833468923368178325415843296914408173881155014319683922379033630110048567832954632357056703005454946570835942457837135359037019839524588393498492768232113820848472216731315913901984441433330146856116193425882671124071039873941461216845645073426211927611931374485277238271955631187099843646496922973121282918668034432335381942249594820639278039386816385539959105274116413823611693366182934376858654646572604844941337746838815867527107292591399624475193020318552728706085407534149342943062562072851174163218596481989223129773184305507368224442830782511528924522233314836828318675234822798439498909866178703310718190522079319558620420890272527286101358251241964823688265995333851834280878822950479579474557194523947854671886373121805080180517802164361043913690498413292456223729975719801379802823035022205443499822299062417477327473018380827644125577534890237805471403440186885300786882337646742018894255787726470493825302901975556834389412399386609765349231220629897289320484127957321144300390471243117046025278524122383916048793009950350665354147913896425292636430745677540744983125049747672996299645574077485372986381265827207266439534492712274391373738057527757340841822636423389168844314402387028720744895777393888718231352949957344491842817498778378021965590730903711935361363340774539672312448321119132162333185945411182408050966444854847788668943583240694046098149465516851662400545576422745886186351396935397010138696263536533681442512487929233037411465377760533594208928382513610833936075464326173972969238253817847496364595498096014693239716585193815063779606797257454851868014940142431270269751285478337700025223715521893369927152669310993265288958628733764482861050219009245299930774070772214195279391108714717474251685028575727706018971204087423425640798240485316704361922251609523365850100440987242313478261035765762158774099849911335497939584915281404083679260443070731692556202208483424497230249719991327191802447793831883624063931303094261039920193692893361118117350523493172193745198795614085477219604666170576448644278561573495347530556133180428834219798452067415955387801458087404857370115159706472470509554257167801284659809852960945799826003498115153725718049942872555972683199146833213433601166993116456484321056554927681414887407805636629301488142221507065003537337846111394654903373061087644832390457933840043634770115470542621003284730191917953256821118859961142421701907185248232333031973853089165739687711994155451962463481734983151482510564058693451974871022184035967148131142101025501854613386304213994449645971559922264744207355820894150946052780339071287822415953135429390527031612695284275602544907446488245498689536285279894897736128772006818387153512980475358425407787446675577058685563808187900417216688718930795418679646930041349557032912744563911490834425885838832120861810208267963414435977903559685078678720895645385787141697058429024041172413766768252925497881959131941849814911651383059261547596254917324551799842553355735505888362809319986124037492517596119659028554044240925042158185624272074770025982621959198628171649328554413057055498794063731802175888463577974403296755684364576705483108854163736018995055921122442936869623269588517780271404223452671207633001679762422770520991882556593945814004155876575627821151119775959682142695778511286123985675080637658840889894954285873098168611063365361399785923804910598777667790427239398913282817092553422597254253470678067026824925884858839357659321761644314404069316251740890290721193529509919780842249672340603784965028269744850214686810916828377626327636443612075725093108750022724890474725538451000359739882819365152953772698228970780080863346670500347777389624648477967772449391756962083181763328816292479973193304318053146703018149782235669133736504491499625213844747098489312500873923924527467485282815919369336741812542602850266635090937391031846108068810055826142360826275709884314568691043945776971400883167678241587330191239475676907675490336059681147619139537567374851822852077055464045523778053491817710749840045422473742308053583614135196804311544932183191416148924838002211886109763106177264731311844111214053694671482345824577730585088540303668146350302904774394127954237056788529871421327452456149939258736145299468061923003205596075372747846681872688355422554717545671424281538829519884945054982629336789723538629753122851430540370966229788082975215055572438132526667094320320039371176997669753736292503276167999109217589308059703229652845837637293560967419720311843128914580059620153336171351854888533641561837613169166544347424602411208860453980072205414716152004927574924656975871605179037360433248480805141850187489132465789173845599760275262636391980099143450534496239717804949503324366815853864742173371445164172455141811424971640222724918092658991125268028810628723345359311731171991696834304785423790571806769625851745204207431809786391912062639000030004019845317986060441235623679759256574126435461712130183579164986786436901705264007374033952776533237494903747096627400501329055073018759924679700575276267219512065250735810027301577436787365394664015137573191709367554886304901539489128314982461630827614397500291054325101910795691501288390852086224414005484831138441645282759721933406965879969171364264536535925376601463264348247124046415285850811556944580463711147698326637154379479383305646461677427199443048993706383784385465743055936652594655279231432956047455395704307704982744850708836833713610207697797802648190030578247485045571097727162361336197638470359524589301705963435265343252256369787953749865638856549121168446058704432991095810693955031591971662065621341869587898103782879249049218366924220743800682787591079978780810510435247636054381816209525088293617008438264996049210876452838093762318716942940292582168912976529670390149950899669310507851277752242686730364560887030645033907595400120755958823812483450223997033097942073968297515326837749077520997984093472044010992955186712533702123200259223205253922179150453149631045058475351974745044575177810285102568134266671439887298023508397311124686878146754407220909396147298239309239120999442784196622409048842088810327487970050891035581508269880705982071324118680626254153659482170051715680353080663560912002275325716923520591406670212693522692633705870843422278098263742702674888666570053774877238300903446674618184477544993974389259571861755065748941627121117294662728676974454814264681002154799010473531816701740713987462183437678645536476722986663802554270211924281775514671068685798775190787102915238988559816899878281573358499001269724841336369281918401151284643611359096891172696996847663920226040477418947830992620883902426312686212185435601350478289859600072698823634972623826587342862080559958045351611012519607729327976077643743618090334686771431851495156423719503690376472207669132837918062696193454383786802587068986677584665871982241109380660924106360658654922821300211523534218425931981565550357835723417464861907245140487786566072678484916243932327033942313407256500017227606576502474198877331384830545829336574206916138142633279908615162702040721778807408044966037605030765489361204751464578568295396161402440692620839691266135711175511672052548277128564291513599666124577703408681341336563729924007937894408501387445853215848882823197177650074671954426112367841426842183925159125212373373348941365518020429726247101100456255689981717053875723173813302002788726076808034188442184181025896206800424796104376906810657998804121534021624672838039931257875404932654370497575804838962045814895959015620493621248769893509603162547313088975699350503883693687593394648729697061701605417034609778600726798574362928589329380780038255039381195266407642324112903432168313063403890053370353600755772568624978545487128024906384563980401731669474393050992051995361707569581798201798082599762210354078225893696527994846657174610603703274698847927303076788777931972095994026664700679717237495323018028733187418175989787089515914696039190471745300592362240974150411498118244306121415535758072833880820577212746422941564378732377012957589189826605212670944801355660283081895413253223088613569008898297282488336895703787256554387531934475584233205307645493489553230212022622028232600936927463468099617192785604167970014676389268122092332292705910434650634678941776864762572294076187085147264938616252980359176341024972501975552036517520659140153828001841898351527420274965022859022076265971776779251110877202334933917023583667947814278422944467429511578063117049347728481994384063185308396270671537925399400743346818133391210013721781202209893235044075922227952221786575157826896965088187939456567786864384070134443184573142527396833567283424049174212935671629344193558993765897417522899082777096529019710388687629015550086750766219327104920159133404963924151772956462299612582192124060631918102152155218693187109134688753432782384088609639772051788607562347730046384761627880749574945225423117641561252872731258046115046936928685046030180915096198590451307759925775669314732840419147299758604973520669174042305521474782948087832003862888966407834804971451772032822364275292204939482750235557624373586383127855721546143788193264936903757120476681071766793489854631286382412706036295957567632084721980864365463071697562973372246072022836176312048656402663252800945063903761443488232873755444668938602061076434297155570531844683432519576650784731906354873071615910788435747160129139254123592615679338069409010816027228773809416236908421997010141853410145823544154792064276051717340453558996982435026803444880340958663258550341025966419573888980495369893386884946894113532735559396320776087348531839497345293170581665284817516015414027201263937236079107404049997992511052147476875698657827137907063779023640379515004878497679971329111155539979054969163753341966191482612270710768161955964947072439441620728440143270217170787679725196600179291480675910763476910897980639600747105164128889482960242555354716202355542965781994649728119996269313192097126550202079362090462524818079721877977350679589640744221290027838164301285293733557679065008432470465295460681034655841346003774707246464316799196446770477773217476615300793698558876247525907348267462339634038398373640926500224416352834382962733469247989634975814885075506037124915562688112152462450640587882235734113860210843317054980978567785081001262188183073457146764453179677421165769858390850246386678189577727119580315622691451635243799372985505139432252759961926272873349920607783888740942445549472062364989709336241923102127205321236224091338515621589012000550309785127430903052629495539444308726628941210779095264931527981528585705280294972866363736823684571973276590380515524296351486448036042996614970539007611857327942417364956552477748090385658751518105049998765255258059444015392280798086173284486685874114029972462500776404903161469981281656743731331620276305938146670889810317404523607025833326587713823078203887116466052706336279736496354624176261289516505200990376076685718709860203912571264493352350517876024439940512415022150706220219890413589982867609410613645762782621727797939126981977007479951515839201418318432960195116281999688351971495296387346769879544262265286301307421407452505980310496657598462946619269603307930889659282364409289434963834932129106699105845319390350632720250751526647905252543981442451503432873436457450127202990375018135990489215299532756873784509217643764868313065971115409176625010323051068518718781882410054142013270513656304391778044618372167738490532211197736945117304093099964507275970814981372309191265569763450173622521440341180813862100797400942289132054559467625407472487551453136654058886367429764140939500405911014660138485987645204129318609769549282110293654204257398303517104592337479970056269894979920557200709530362926522556756611446069934379536363157602194175718833186517359238533609135256154387645095721075558642823480296467512886873502402650183621230828672106149534000379948500859582580343091945541861794010849444566845892477383595881578226441001335763581763959741980376077790814193502324250514488750334277522670253030176622039657036903542749633654040942541905496034152188533851007717355915590340758178454611509978789112467118066947221748711316092913698034968220689825832131493709414377451802511775191949121420161465622436743326113179028065589985455611307807106461777903248990526449419169635728682990941445935738909423709528603194485535247604392443369067620025438926958223695970890366314744545341722496389047769436641149883649230076814553670048303389453051721452013564800665717640518901916388481186374118845023146667190194406870638165133174983339284184731022605301062589004877771868633266931718561121179830646837162966871190092920633006872325406324911684554456307382970455996083502154967735001617110389194830428762420097767200013927133320624257200175110631337346854286827662684284998414629206136099507165136704165656710004684897533307797204124874989831468745773594691084979194834168255180576651814602297502251551807544373382863077672567588568190974629244431856369715406425024717028472812364476123420636932897998405450024572197195848116144844121362551615431301061351874791287626997158586216246562781457453827274498366764795513037617168841836629318946149191043500284795179513144742178365646545750061079702671071342667023140803204089722789162563593181999741544848884720137109394880002120529699022244963590467677901635932643901759314079390849087975873509956342065712892247366262604642801961973474276428144357157368231774804808863856305019284880073014779249614252148355360153196751056511075084003571303206054483772336667797003437817481562821829962808094930564333687979075986230363276746882564386587580198391209762554661748415841036589033486336053226482095297466814329697374597933472792121238579209028842854351773963980551315497752151152716787447053403680530185055668991596367780098667562693844366789300922476180797093162579278481955163951335473962568593323042595642388194003376241114760253443206461015020929620533429931321813793186243922684554189943758798480949097619663734139038331657546855438749729393117510044845079441810486240350114834874125892199525378603353566461365465079647469048196812749487361597594340471232314373903280911802266498380895600441691170588407631147557626172274791421342466568090303577058295493736386837291653941192453418085403804393710671597273444214864821752428842785655176157120216054691495360802390240822984267266900001766683423193600548480716694078464901922392624940296481025435174977853648027168302048017195829514676370530489337804197834256863858866697116263386584465281428579450551267986049970472203144199279107469097551304382913622705640990450499871269818022770331674785475160362522813099657408896612334346131603060644664290524153981532842107752643894127713062090731255429207360979403261231435088908533789122445329298704161831406040557647726858499368181280003285667669738434370184987435366697701189887995848464191671455319648226517649600602426774107691119900783880481302867892719841445972603710219359631312236023871555477129242312256814448256114954208199843572067184062649563665187961494224540046365944171494244426690629848091191399325691700880763484141335526871158511560109583651433621901203963494542617660549733759530089858096098348098004670326862469389706991024178714053298219189228582555219065784715340170246089875951484600646766367599069559642886020404871555937982884392830167020391154660855807206175860952518165909342887031265999767593431600878806869216985832243769254123388890611845890020698047725578890052216294494416305181246889087192391933243474604117678744412323899048508482473548835207498716956531439578516099990561846520380329746231430368332550582049676784934649198919119367175744301994653261185550167018164171676082363354166182984803180734312947783804769649572344465598505411074284757562571844020575485596096384399584793498385701279817336595848207506856246326069003846062820967143202788315194772220474350576044888465967219527479021065512155439582798909359799472021525929910765970029090881135776861034801673832952518889881135049340302870235893127778682042161208665909278545926308931148373987910089984139462048163175522347538975754727661421101632316674839366435086360392852457507868819295010771982236427321903413420076969025134074867337244490250267254383121467920623602687762936356885407981202222175592218556242476187833718535805903168128862123283043702206345414939862791344881638494357903196558123431509461864330500390401187934503671008470325829144646435331576363459694822621919337220541472248883308538296657320771804574005736938683002014904710819499270107405610966033480778082410949964425577278293190524873287443185185985833855956357857089329336270864091045110298855168682673461541780908339192325004792502446079911913436894573091445686097161438138152213883785271813437966615774767542162156413991712662763303136274238451912048827053122048679137463104705962244919594810051705830863108546449448264959862869115526556252548887750324577333960475913127624873691047899036098391238207895052979534361367058707096962529090632952853889774032399794758057600897266432482402908918962078813376832593546094429854040806422552113844550140489795335136577427993329457891016452919590525370275638363913648945422464994368240323248866963233738245055542638220053425195556152089672334092377783036178861158072773151536673757460425711318684811068233871540577087180287431795942373688389813943721510607272264192382321871262247827592429643323032883368433474922160945898004774759710709596067408498489410486157519314005914971105408377828579153928925865534605231318864373778962447101560724568203971118425644095368617240979359683056982536617740597281313956765841462063720830409450553064565970276165743145064641298465045779651466240684502547944227312925905327026608725994845792077385380991843113506528876945419046195778045126648253259669726502127741400408886978928221446521025859464602214339177778997645300509524300568368079775935237727625392964286054506421240211902901834816344243689714514454370430886213546557544470188856192134714538797011479354086311370597284851810074878259365708950378231307155225649115342253658421210147625495207258857825114032571616593760835488864348438397820660709354202926371591523814814168958524363380334457959740670692137818893161732793622421863505424044138911437536094414187882665622155442028888493799036502161485069848778217703858949407621758918843471770802403204594897848158123117836525617569420817228684686280560774809267217757537796997381433089720317077169923093589244820133047965341376282539163786828241102432069663087625237355154077221942684282612169809309593548280705275622881488727503100597857616451869412957171787497559261537346387444206801654228813256723479341339313427078000749997276806511245749622328064375723076165102461477407463357536831301882585296474922509575734368721725619236140657705208244708098809200728922113070948698785338266863960625220623309546811198321482065535591903387802966304265450076184387304156386828514595276728907058367992828304208902872979910444009391028549271701536334959517681123874800762410616352666387434503406479299102149308609791625143521280481577547182749444596814024948445428358884941762999592822573029490691169732079930206532243855734203023440744534130774749347376844313795875900141654685182512612684485488964251532226010391821643378974373736984183950905314848288421960030985327233690760520971396533049106872768297061804642944453902562105639107297589517056867391075894753085694600096307834355696651649331639081586609131712196392800566454785999051613205873866266408171465872073481743276457373222776550512008261609318039653260388414253511964186170020991945994271193893030243243346870353295333397411571534417158712633499202573739663639179157571903605815955439384668287653562480718704265497166531764998899286279992614141764887380280881934133557363980257448945074437343588089036066660860472648519829775345365651626132128258714083302731699515265089825579203931788648347926308328140379918329665434859598742439403772625629593760874664893097797781719638373333096746805706487808989152888698675229775805361806733191772261138787598099641234585788865343687636976788977058505171671011758598401149468235229599676603476538630754152610412024894544660837965456751493882602179982943534168203587654103336802853770356901811226751265967101943037949951327551762837113319542600509571508551474714315270052285675742295706591758330184561340842049532191437540648646051165434586300253992243180084852390437071711585223298763206464444828852372207499276341637880149191137239364044866793263572897735914201179292305225494423906085055842373612743372929850219300799793814054226964145583627739419602933264022784351921992772093495356949548320145793710852672963794823393601693016171966674135542440702920133154520589670285132056487300186712496432987035465669162577304576303588159651263150388669106257850155829268058233113598667397107779454413777102242902527966819043785077754645909400865698822531528509534054918832559324951478027840875679006304205798524438798681156737953255522053187014692386599166163438892080013615034914051515401002430420954247865404313056351287887901554466738731313914746168387731664500815588949154403664017935047504765652921203545885592701308062558966566110829864535335709084902072419920497766028155621138351489445327355772766150300146510982167111054138861278146404670227799072860816889605600486601364839803973353026524431417709700026853513619802051026287469705966905433494125405977699047915918051573871867479312056373733896029005918165438861750578496521104535143210237520728160799248613172872023433739025747185022079917014424143365535479505739015871431985341396278854614378425863025177321961768050257810751634531928898990681173127789522679284667077958846654022626855724341668684439203683453114833496158343515884358026242433130822934271628881608822002779827337990519766503702994418480799824703784881227803109626670714200439329106429922298681747171738004743106347001606179042210683593369723484003364175197066223987720447652074848209919156139231449300240081742850721480514367808950066536602218276273950983314626405788540783711844001098828358052857337434724959494631387304628748165603755307071835230753822881978095879456100613946359520633936285154721158328235245038245299502369627865742909025502018428605455338611655396208943953735886130673933402344519479082781149074578981986710081830664645163982932866181180614384008435127284232554741594486054016521390896686944398151431941675436181175194938259668279213820416889459821436142488781705020354494159844286298331321519614263314244258437161530582960106000533471051139480126752651339158523633762538325950998060597770141548027740788161539098066967150903169997511979689967180342676081251940657848085118610193410196973123044010020726442946397225117767716853578361157613373312714337541804602981584235002809732770414371408514335039894818103404462904760815935685077436066168238784459806988957824101514231053798659706674831559651253555870291996798776001499632838177694012370903442886482720923655057314158985356352252063290205914241726846069825104129221361143156022840098584492491459676200277389366851548025176995454745321572576422856217979397359013017740781829472589762692846390523984736692194934419682919952586476739824421162689638455577648381816096452112098625806066167186250833205246839871621006785304034526932772971171309894534551120322527909437585648630662760907399862259782283953916200530773061392117726803157553753977095629197529313184032927720797522196479672486598963738306528677181552896414508465061690907702668147985703715224842144039081991342450658845575219759166621020179995553534176467368464121288211835879861002673042028105560339775240542284728765597969551572987399989491622756400232897660417384491874381503691856345581670770899263722932622320857140776549379736976911816771307606661508744892411342538307299609300829925730196659545625968755437135816078467173066799394723696787359770907208921887576881705185873142693131484784072947773057586962697423304746555212318941668945377556002473182596961461324502109313226932225199441039329704002910560348526418716240671373758146430444830598864345973530960694593176940028519178422165668070459914628343316677855330158045063804608202770111425888633435736621166549504168264618656691825388099382052266910207439370061439270131221846736149972569558652892449203447161670636598021659075907219976463981304030228331668985760441355354794207020517379552650601811684929334439183827973584369203404597262091792355093958922470554660425254422199688639955786217096375584219367441969617162625643887430151096970914270619706937111305785857440571072212213384912663840844793066593876298168090717707844935002961635072235035787379157302138221044249165851676357277938731229788001811376968213984958219699959004221981957827194692717802510686865289140895850593880473641485890263263882802293520048715582793869245668693868487850940520522504232577961677155470869983236535133615107166871954705578127060319401235804703559199241088361712754597841284311343616137982056690127251483986237013937166946223058977726939934098211860441503973458409486589899311386217897971185649224663957661725948195084383509998826899380569064627906681860140307473299428045211043893962499893078245714432933504602454180427789751529381301553748331596358062420250339635091050793602079363713457130832567228028203381321427712914043216256060195128415959301586098665636483461505153058627317379378641201174948040645511955353070832883964686094580450372536489040668742130923428419515724496796089511591908728172364723153270802281450783635076677413480023543033509653820406868429713600345178493051184468612679888495712645421816012223775924172886179290693081562463121985366638908864513389070173981439252818571186598298720309862925203176986308663565363767635882909461253977863336046422153051794311529989259414664507120421563570918382818328470139963528203570041925228545011892118358397907704767145865920506387040261401139051363661047420632451042904216466300996593711449169904233750608662223547491191920744648581467217123746424250407448904205051303753309069683459606141387225204820103868008226057227999392598832278538443371025362584894149746294804956111729033900160072356834270733486123783550399155423418072512683327455427632889619350928867509589282025530364495757005014525983250547254078685604744512466677021223818200097712418509532114907830465934035361319796034117804853631298352254220575403126274276278625346609308029172773071556900795504522323131498767176658284189604143367987627359411826567686891402718372620680688059741653713359240816401597763842094571091463850278010929415831998694182283243032999197393902583957591739289414843395009553724070213412468471661401780301963681050021569632715323690590309858891497577789553186082972290451816593360573632160407984202506693617745432356817788025604023683986688499455636544425106169362170144010105902078962683619194260998739954905250421358775469229622871029092696855046029504987055440152516484761102115773923333284674079482718936213170264180263850762770422313143478632163128335690916360093689751124568262492506983070346908840422834751626840279225717386633400289258721527357092879054939102335383053121880795725417715334110290143222392206277173966272645275549187587872961049969060001926152999637616539141722025027805612355337543314693885519259749228614867639861485372865837158516185576490631658479768115174141659471634314657828411447275181591529928061133101364507465240088150633914082186701582302413333525180987322131674082859095018124976489085295003297410202912722750207616800337442991916744510440849280487550345478867275181558677435916930341928810476953779469664808698139267180663328594943648382209395458312570737323920507651739284459660326455150163587419508173792786772822009232872057116834177382662100229051723485009439437233724148619564682069145936330713262801563093862750268506322230437521531178983520791633758339413980299123153103516297002199924804801077497715841579291663164983472335247794961485854359671086249467642327795034689462637816506717972347647595944856625546084556987897594058186891090849253881873707786258007264151763181097264934988999915979193822347088406213084654015996359384313703457579614916730586575270036796285462917454527532296459531325786940761787554300752619507721195066670450121806838458110112837840915005531955076445168795353864141723127539711201219658818040256942873914541436983982700692831420724244260912851635066387702298275455458555090143742765827592154532541807113213296865797125389392058264218620054915795163938816294930542089211823366738930024424830592913504439021965804653368057802247672983497738816361937734096728074343193881441446663332799948266711799458009413542229647251950319724857717711890818697543528014523071437870763793109871090534281272804518935122263327888852506579078186084013375682993797412024082138571238954630625900134085981515976971692910044374772554740617766616803475136039099101392356729476236032415726696983698194821866152440484604703803076557245710379804403274558578827291151004333647109810039438651712365377197568738107205449775355586076501851024563348907865452224093723990554579079573210063852523788363422823355778330888098222777696610210248906004927109205038766899626581152579360268501587567574940809513666461706125093616824275060821717905028506850251040692779006360858617785897498504496662939762269137516439147664704033300455930959513121850729261494388943671949641237659230053531092696921742543862405575683988538551336205355409190533707050296491316164502492844208588137271288505587765187456715763110885102434032877088204936936092010979045726840675498207530039992016321121118881674629440144981978634919204437128402230975712824079914907866705637468186850166421059536798900595971882684913264013017355768280952632661316706880303150960180148447291676117852694366603921609735480448961846596101920893188014557752764114224646363546763622735215215362416519169294301270174776309480220677941595203800669474671596806022055979631601679984917069891591460982910910593348429675320124433660475354842959502279291564950840415779338913703215786601434293312794933186828700394737247523070000787792503918553713161728984510108435644946016886869119111968408624345275494588411412133094046065832753637487165995246913801742082022436728153408294511679125081165976321025571635794676662610075860301090472412212319235229442953872255189660441777624862238531280306354818312127682807305600683686866110285435894459311425938582528994713906206964780125316982045261205488464474841363285075019827308233679118255116307806003933516622934457982657742389985891791936308838143168221451790680413507001011939871939550269742899615074634422960982487381505924889179119451708732683561399702127518646719019007761932694572141005612598043194064303307413729148851188748534782918650047814114404824041186584592599243587224213966713371808643091239865758633840866812714439186543770015729331002272473135312073907556728462493224899299997964799969597012901333630993993098508682014131121017793328319462260466207364926454585564312305497650895725372820306314858670600873392130446824338642701287478314301742081565420493284425336273833629659774877271791322050651490938114121273069409953762285125120888575088632356001058122011789034326376653113429515044160475839882837458186032236304419641111462361740143860532198324093397660311627825745523629110207233476715110530602482929526503321358321244315270857290231989449819577584721170606675846908449120507348562323346282794888584157156176024727568196060111892779534287470038929514045660515871280827918284886123198152510272261422282014612047722442218576534913061342999708125856328014804480806136319320579140867797242727941900341882674242878754173264256801840360631852675160748694542198753362553672198292577463180431354702990597074923488797121538919435803130294525697020582482774579132222021307486428499953629224713290878356842969423024580537743789983674080843559690816349536423394335802207038512953380045362355535830188669702773307897003716159839482654376522520925602431952917363814179851861936992233177795484065660292592373353249393119698451742032504458955500210997758708302682515949847718387282256969670992930049243910309274056461571426174050493502354032303372557663833888867472167810047847148046025165612007927272192187836247615664554855625852205051684313959773945483163020090742677241177000834058819759153149561818370908317490948286631652879050734562765202481559837903251471773996610899223280214790946024375833836619561717232340437475689336539504119908960029430381081543556945882293760528683901551457960502865744708248363470188955948200485617500151737797441875044658903629000758228714537257596487976492149809470305744758852876093155722085938233245525363401081475061374543827275614422580044897124105095427584581858028430145300601404307998107186686623967862949801241122587719140717873959966806343304770344738596320394883130146648165742952394076151533236271582092293888910840534332819262741611286705229543412408913498051132051248523626592965457602580267509318168912511496185612161701515546187712642409412251742842077815567052906266940711818015547963116058333926525369938056690484278679423485464668089856314611281526912941512150137131082701215154588812459782325449092291190306573756759001412307855560370704553546348455343665054928168448270009704534522519137926240738682215171159573047371256646064864525058164428265042000622691403056300346225251823791652819955796509284234758528122305886461016810738131710208974273140222406704008186552435824431254562699571431761155762478492931687002882859723502853315042556417520115159237219628914645737431186702015089334336073518379420189122447497782356607623466306038609794478555649139604160062922205386746061125445044816461180661481123191627670631816216373366151719771318625316726830452530480775902670631898483381621182261791644060861855277734385505575565887608831111850647770918546104981488519751557581801469599077180719846911036197007600882058846428234768722998527139842335102242270882797644780272505536454127519562949941091853893664733442170341731283838224961506948787206621375700178021765321568953844797845534212426011540542472347432133298364131081819744560082568178325267539782873165118555702617251334687960106492415818959450784036734713438166165740957918295731758628171873555644542554758435470892493133076288620592620994346460807806602779098822549071457428336649551064478428550788527135010867821343209276316252791519859059658356350333314797465515885592984175658463240869311521567115269797526302547082272286107222288614911084010725074595835730643926102697869161438822261818806701121675581715516222929331382756938191479377769291922494469306282250217759404717107042409814311002563099909593611402845837814460985592869492695512218520508979041617442687880083538893355764786296729179461886136933944657705207225117575606724213116262243741405074503468369057103601401648027030844461447694050701197958504222038430732150441291704507760091135887636375468538003089575626479413999290093519490601848185964966171331059929117382460108091963668021519451582229700138741163837524653609284533398788820355918264921085397152199023546645025158331987619094933309210766454860814301230588082880389089053028955242385033361664087386272016172952557932196642694589473859364481271940941066248742604244099225159571198492891419370735524490274828288615404735971424790433367315721104500592488279167382500204135366179060950017075302951960052780798433792628437209538892784378067550636600845900265782371414689023215046693000692319229895407410794548734487496174704240664727685668775956835066336935024407629673680569438528645455670481677627926106813398018278102695634830864005215807070048908718070248907601951611359600815766758238259447411446688067775995962606120998600252485453427376351698989786520510887479034830072118462969802174404186721046347699239943964301478599328503922263050741002880834002623991296491619869168997367555785563471237984168211170937768726307881154783071080362310760461071393221752649094834883833948119283261350229175030199881545602735936571173711049233620951669987603904822460031368349272142455120886289000774911202607177800730026643455140536970535248362246015134275887335597832583933560334610978554355295650246576210627960268986493377165914359404958630304239638468237898104471001432743459587709497768581388092692982250099262912051456335298515444964432604665503938619217472624031278225141386786172304193897976462512163314138140397909631854721563319797408056104286267189526708250975143271885421254799364275063485179843033546662157192193901135167339033893407084817476866282462805119697582071156950770478369794340603000161419044197452315348093907422064278975756505132485226648033181912173151582238690534775706286565320350371604546699123808691979777612364566633275634482537095934947508063849912952271220285742956139775236966565228132158024098229254278483732587534303705735886003226218460310597314600197405054476186878001869244857873107246018537534058971500969519152973060975346333288521860795611285338946733765618947576342000719193214944157470886216481275832565717134766969388812136024364415739268369121940353116070222499244336386264012620757528450849907133202854913483522721864286554369378285824190747316085084350980570868615470193482694195207105853233423034895747095104729627084940047627385912091800540578232751105375115027561922746541760512715432272033164661687174294496884486542329260395101128339498306203763784309327474370834159684782275542889673255334405797305279969121848960429432020714747678092294945414328345478605034968561968116694860888940599909451315656963840661481676059934967116153619052954732752154507406492057976014559329496470120466703005505743535686418260983536238286875564809525622148935797357021466875613137927267207246204399782131207142982605574267629079523099504011934895134664867374984758844649825901314709976411173125412844006745800089219449486132505135904601796552439561209435791735915268977018826381343538710518917167650558139573701970477968065337447455530968096086435477641375148560350361793856721771793832628115960291429916574628117827340844028215700870795520953752369369026745028202128823614327292473135435420737059147540334914333328215397472051599245978322201354639555819072866564039170861241491777106903779501553728658585584641840307068482101429623744857800776973068874705325070290403902286322512306036490900949088650972353798597395444044466010177785284638671646096745261096218881910797277468687583515538059427350963077935984143204659236430172760512928792372822419026693493042457820932777623275513954049562809516384706676860235245189423136206226948503646693375823091415849834405769841182448163118606205089445202723408453424260444604648634808283915882888702558791269943319098043754161835005504545936605455521539133981708010850683500247420187940410188870127564471774254949073522874049226713135633870032895917827279835145552639619637050071247377610395401578772054029275206538932113630883767057595964577129386285745243636134830256586218849754040258417899736083808741764987070196347387798498186458155832720009733118248139408639824218747753738098812823460872312016918673326901901904050965979234677962004125063010866122795045193282964358585579941062720857994703504266997189935528884659749315445188890061687571360464858405177131012451067918426615524099742144937181777130892659357750938371812486798748410883050324948645879013609129985982900733081338338337074032374988887011573669735815973732606831244874331066310123510501056819952523708888342291760916896658954337047999931078252933033135469349839196404445731813864875640605571014852203148586764978340779185506139493023461777057885073979104511339637264594171406820507276326168962056257175871719617357087452091823802738894369999321380320268090941848062526018357459098021666526743607161711867055397081323654845992599655597793633041920450081748859361385254015338171779248222192942219789047540915322259998468434204501058001264535631255140982040437686805205258761790425832349215451491340221228067117828677423601072236486051846274611183991369898690560005925369886999437783488180486680137471722406701196300600160255862590347026215053509609963833507709797151506147829819803364062711551400867619442408446696954096174156531050299034807702936947812929372401003956653498469698127832065003832194345753195643507909418724205395004664527535400537045388744174456938074073473650015056763812388265560634024532369692642046972741451053305046583669405473322862076473200401076161540113859951243973830478097655644892777436047342593261781715126834394868601179592235728414966026791287179646127786564347456415503805164523534984963598172012711967307657252622703896700445303892530141944041357699533805662020858626983649283486365495070820832907562839638174056467350766584950370830056920794110645063087622741987333021541668509835758253677151002338702566842485849767423975578139700917420882204412352561471122542303523776334174888922525708009853927938678922611200765356229381678572784824042819660940564635814083055224067845245144042030333618508747391868460368997662339067316299613690775269299986207386055431582073609520034168415338176934472147748391341610024160131904955279961313954049913260068217580429867837306625425571002982188085252150572289069727121953307408019974299875212269721884250898667912225530200838611700997766046289757570166312257922006353561293881597527926410056871213698499102915872361288727707694907286729753916227383721515043287754648098004341637616808154595851705511364228061684947035496549662919360117648204639479028482896734460151830906161560090889990389645867224424766237494533171525290919932713737518092575047140670314509210197065092199429746336272403472576680429085382939167692730848879410266801533101801226607462989041461200922003773767320001824126375856264268290014152482342574883987395196566849643244880238911391298262258518949758738065631943546534283237068362885328619105468898246272360439305743366215199658422272589310438187537115332282148884446381809675168360026498899909611603256000720758032479654280351851524846083503727626117626562737909446881873864232544986127550693141364884152190042728337303147718690167320834609863479943899268232565649941094825709318603989642620854016175958755888946786268271067998423940691894758115166058193852183711939047864088890399605594489578363021949627690873358558188403368598490702600336601783216061781824168070278708059926902397098149435945488860706700129603320542309271721932727929681325675675003667720309294458633261181931491017846965361271237315467718415342542734205867352904710856626964779782858664824529400929106526266771992812059586816152529368798005406163137347307571298440530543784880128702144284299928180383449561367500296346250334700308667702456361263856791497221268500941184434038235712490721222431212943061900918903647106040363927704179119804867454932765079676802856345352397986709372627645029482164750176214241621303472660983452661420559394048022378269615598958731654366590111932323982588730120560170787601700937259142077756094719257084650990844560195507927191757953077601350624070314990633405055528207579808334878730598508789440257242737264941901840072259270554113527428846063684663744051809989009059483997319196214940911933402043881224811179749857115491788496619435717242486134896691179698659534874232951046432977431386911847839290786958356374963968208612877705886185368556567926577081616481961773135328178162352663074370463953641356255833753014069782683469575818853918417106779729547781029345327175763727285258584432951379168625066477437438178541778025407701787070074358610422339772220754368484766680169796704918293701952123033215452049949688017653261211134218736783748413763133068054840190314441668268543814380197466110016468796847867090295776785340654604779044627242310484979463564255124602629866320259291037009289267352953583906018715496846005478314691591512642041939276158042523422199251297703589823589214126239158712664580700576998489253761971576776625069534464686418165275960528557813884292241593558124691277147970601206260351329213112659317774608733494769827588393771613217947680649052545064071463038214109095996592092204412850215148451137014756913215820478669132477775914109012323428911099407655260082195136713204260197812062341063126089607874431070063775454599497938039823405157238707457677031821205471089329427395781302682012920719739024972343352721175636742157746577620801507699227106555145814870745583969219042131972125654984407987069485757882391284113086251562909843435901759859053049199895699143304016526476787382984509780648914255278805904796546162383923906346275232578153798278874264955930814512281595393204472218746585682465427482645793699045466918959580601581157420436230036745119369079917268990532896621583586701464522768940682321367053981844830397329394653840692660278629279154974886108799025585174122549628414625053442571819158010779369030298888343366263904572725245960606254682440918050035185121587637278662409947391694269544770331789205101907871887636525133016903622751207975217064103601877453239289989625483491996755703424584358088841394333604191503704815429494983458174150050957134445939519722531510764538951394852343398198279882293604755536250460443481340027969346064210471134570186651161759858180455024540178090395774446968509311922682392612145655382306118826767174617222097879503570539368399211921392137994312915977391254415464059219518506166630059213111757813536168147288673715197958512354071296463782734873217742541039286083925690571510666403062499534545686846624306035172930699242520495933079639838276087387461950395025784748109983366454842134637456540620012828629223087107607755824599452901387667849852307980588381301694481710317903086318247377741618168174262543660100909198245234731452690195812307030508918167142505833482559819783925971512984942142394415666871777738974539335944673016240030444757417081542541772777369398803954997226738277759079341958998274499500059071851678603463899203373706476241146986000029883854275267374088296260575052957946319577674045982889619536034277431676504066499388926278517309833229217685995507763338746890643523509380495417968444285847760204983578427913869477167273755385274690401953627254501546640177986803409862550455678200338464504688111505065304258383748158617296835717412476018223930756856935315644953165487162868041134647933221262201519961916850520736917178247020061793754165261619869035603224691790389857204464241038276034663966788101209238867106713119533603486924762969651382263888915056120983472743680531588627214195818694129737959746577073451631449508400996089820931070277298682122523240822803908432100242797125688382905880078344582821218783239314610842684356226579540095756377513745221748114649890919269874184250382753538776313098077059306564601526156665742808520171200977692130268877372766946016911470312159992546713951591585310571558576505179780309964468231771285184963837561566613742323394652385338893728790351463445052892244496310750284706961085421874154127954319642661611884257641908243245854784997630314734391144054643952667598815500680091973913716535927418001531438836343815762126234455355476295288083047556602812000961719142226689397495926751260541685852325857655450410982943761689270069590946202931728473127197073761441531939804183185126638910532683490515233027145365351914589235941211751397835243761376622297901528643330277275539097328689297787638877820402553950608789998698100406221683911947281681382593422397800699325137237914137658163985720352300685458576808242566635479492486725436663218688013797422123478062497884583449342686173382449970888583890375571279231761070221850155821763424191501411827314293749978227482340936185720450703990141310845875815853370938843769957045732858310735019279196472405760689660183780866274085878135836005478772508877541466943605672723295540061799125143703929130491734470862894038872888926212001929039535821705571860480741889078649830747866803401077509920727348583875455174112542009643303914036107011399984757406832650490520813487426808653329181110884994290429049915564150452928921449777085186209898194542214564090287598378237384261696336195489148591432970007919242380704723132877617100645191697713911517403649992789946279932070829481913171811220282550268517004888533455435159760246971077154218006383559961592570801649254287575219044755799191645552833024585487360512236995118339173945172879319607810710168626108298327149156824631320308505392310874804150864628197004629371844572824849914833610652050033927420183283095901855557051963805109841761968734342399556484206671986394998325728694206181560713783354022006295524251709218342486029887323519525456017756422713241177353835223964169038965111988069165464348334144032592468602456750766259461871386349768715821042101344838829004530081260636602797280635587984765813722938489827959909891036476479743063759959630531856920037383657787826478868550279987490936496198090411601613402788953665813401265133047518904139962240061364330272029784800123939559913441418412380212738017077918388185700077168979693140763613976192180051544970294364772649594624212927690694650933327498814284830636132581709206009907288178424833450586496579535931135024481256863776923745500986743094424167763930612933159554092864524659500887421473682300580299225394296759010877741826588398614144732044276237281997322428534972523416403758326660891803828477932669112468866457512104208192961323082336018542773646368720508168752351290402727415920456729256332714318728514702546623715909123899618513667828450305039433471321000913760933445422047905288604752718653929258945388934252048368747899513257873152228605240539385235093299170814847737656415772221007512754139359237448987139284981526321046011782468183461329633030233128059472454017922297782305811051739279088515219904728371738566759878909181465637738082028340258719163191333276375842722519184916579437833840061663895726384573126395752775696866644449984479984169519229239893251494293505582217941289763445340828190354012712788481675561382036643194166896329517017619137802167630877837785993296457730437009832232903753391041650702203018381133091651324785093933937925042459091030185418565186424369985225426218285588811889197009653534680318861902672994171993757148914153544154287464240303003614804303626463627077708812125456353585200241047525114026024761077488520374050698177432403663285776943032024712359528745804343145762939031703669658675126082309125540928560666045334312279609413881029399748269944857840356761491373628876387231308235493601427045934609490241965180990885782266520076353322027166060596076919779821478887789992799898299048147866104956427518289602070318273921845951316485882730936922790235274807594241517730045488938899916896873204759295002857828277236988615063337829007158364538822059501957375765575373901943772273540992048252245146834834192362559955953819360447420347138075147877715159503759251203824931407323792343902244554560067877946596869668474887114827462207182807948821872719876603271605229389212528641139756315149629105402372159574063647786211687992058572234104620249227382859504069481392838316118499009202361290537935399847869150553738566188236953827290013705669329048892106417605987740848949799679767285268677669224858660978523452747783164445556681338595878790127496027607861917272400955848064340775779574640816871971303953612364681206439704861730693080073347008932864828020167032459348629762385624070101774079100258499152975292150421432212973728022875612576254456232587002469072625007183502591666082210628021661733334027125764116350041483936482011085342051625393510049812405934772166968420254262631790926701722550221700317858937004486066125979054668244865983404024249412345044074180194757845046177271012160798838977870203183589006747259496789399423162882082069891871964173735468247961462918548493834135409709806498514317478039292879932524553886384102898401561261221140184714135532235690993323549901848023484114107599546648979004908185691123606374924444007394835525745900038866344898926716678227689925590035838965865495565844293141015408189352749367882979827671372965621680028930665262436250600354107871953771527801340877691236345985227149505725931976826049484585190725001516250924663795993459962973233441676550497699074352661567543516628311111799737276981936559227353948269809897631572797806004989399054024579714564768466538690064555184311364869715989322829756959317040382977127519079928416704373802389921748721079777134848029436419998268149991698558525371709274354618143669627641625194018154555567730524782802130510044226922820630973538936666124799760075552898243341037275505385232426750993422873387649522388877340564111642983132058143266911039385413481193199958552130339322335652937785726316350989489371053832789865133897429072473215721374438980291585599794084763542239066835610985186679415702249756634641638150698946159232520965547023266802804115982850721342757648408414209451570998536718260596536573465855307152035227238577438256565116804606836604266096735501373452708779379182121442379893894501843672173335034192676524221547739259464887817459781973501369123425518355471000750367744717906330418486845807754627458268931592849274499748939650894981158459851378580225998008777494493917520586506300703933547715450452593665465966466498367567418101278210010996314164305326897173220150106134901873872140873737958980838383737189100254641862427995628270704701352754520723196655933777175609635083790817767046026008205219463557534969935146976409440136773294894796282806652438564624069665810667383094746655034833001261352890911183784703171544866846997289328076290056462889298343044192337651722422806360333179366863833321596991730892443588889116838826696829544849387137337298642337479479194552230065466767526427926479272153310304263563882070105436897551326937344290600440975257442297239407252480182706024843566378232203723278342882748620375831979725704905547436051080561037763950501352892061521397871390985386249874629998536763343758166040643350248208964724093397800184808378484022628427470995366994164886356813362513799042501743839582283219349214532391671419678672521816789182421422913888542426995376735556326166438303823326063261692346782603591075917400350434913313295857797889989033122590027203255826096413136490587025158568691112065927336227294971925869667006127087367564734940654453898638957360658066056397552673315467844808672488655464989044278527173324125462991642864269824064602376395202060829690690935323134975785873004899900557705734814506712075856984029030827094982241175051687970691126799096296630422776696729411583539117115262520863296513651667320003985854880641584604772241628420793407642897021261981155889559340399140679104444093906631107676466884671332489291126765290696527669006471414490505995722434746593227161345990383949921813052785359206842831970597120696962547971765783151173954168176104077393091590243535676227612303045222679344284891998894609668344423264102978526810608987295905278232574454550405994018987641628334528172446342555912461481817010832020143190581556962011883037511379287089720888120149448733492765099349171349583403859243535437341138240450311428039207156067094509041569753168646924778134474242698101129139851591537120367042018110791373311343112897361483974009149675873755882026201945857406549468150831674692131228882496764515851021794279985305189796480553566060895089048556764977064974729327175217539456868398620933441940259472229866903914210291533880239493648885172857169599789560283856314868955743298291484991072750321879172172236610214660127457903206541213145378683920580576777324212100841453809764179414652136857242468704387439463773537289892804930448961458072921966535129317223169283340330776516994462345496206615563905916076390432651414153434254968405542192865509589462288215696586263499850275047890093026778799769577369710714718876405185923231093441715959332740262751407035304970725467003174326777241502764527490561459083411450769242132687999629552504428385927894579078533781064182518496014343852316017540162429936331042444756078522840337868946846614542541404560932826226300481425678330945338477716618489435032320610888405492913455594787779335491732966958517225539291448842206905434682408926354665963505770339766085121781609760222053999080365871279757645802229469488598377150910559750084499714511239559247008495643311619895008235481370346854559016319813104043879468773099744022513030707618075891705674143678512165333295467715416182388472468164885463895258871204501817381835353606124958244663936947676989310863554745833919647229175362574072982426189604899401804308553942242203290635117072931136229019514585116731566399773042782004290904919403449655829876339339459236652993534478411581315267061728918882353996474700277857699156255801463232539035633850775764164432353560361910521389491423696604962846679435338144735238905146234979429113348428401700891653262988221574607408161011743892987257303859859423867875504644559482466929555435517732723680982387542322815572055238817568373451913922665229577123715339707880772972858777640325085779487023887179131835079614736389980581780001774545463350248044526817400222836345453605007264702925015566634915831498754332687652253080965266882667679755718263080454824754885794103247798433217082181204585552985756485089822896719809666172958160550087482604314277588723365209621018685557220642479112860468563605160630029597717072338192140485197301272297907008508324130581871590573031260578279159140215747430644339501109885965943337673351724669967099594518367854536592740449022205383957617091861193590697209800457607160325323438043237324706792621021054979316350617834177579854460518312629052004707501837771686582218250829523112608584597356179869987538389262285098647938064356690710335455299518773193617229002241121065945738874050634024450000121410361028563280753414420776804807955061167002464891587411163041289907454319442005473820766754070399082381801557404430442286310505591604388767685540379243033797038386752763944205933197140682426573683037800472393276142525601563322869647937041708277589326083057582332044805868169069776921013422395620532488692583959017415468977608536092026875616518564674059930271179299585473682146150020203185517783014128127951331484090994328388411808460916511587820789393385175443105121130838683289381608995980364136094354787752390604087414981666060551663867249505823233741602246480272397840823848462950639347130367700382823523779658849130707896544787115496620632818885264574863971394556558476895263907280423948711887884377818907957267035758591212117305876507563967803267423189192565914770231851278792943694149790326806488552202858961157662121264012737912094476051539724976045517612180374673325774532234857698223765278930357811741473804093093068427206149408978464713543025795406623177789609074957726205278254801652633322138754335921598747323270789340734697485093077964136165133619754647854918914303418675158237474156134635065974171281551882418362658501443052644346541372308437290018080301751067838176354955458740666714955473817614147473241737858344296907084327182930355836690983789493491492786271692567559658133069534237903714362814352684956669636161191020301205258139823027962927428009652339329414378364502400089607811190387234477987238602577773520160338974502903069738964336350759084726477033653490799780344096729175370005798789888789176981511104409090655424013623463566646776318581879429722724901255432977437734812921973747206813847577604295733975807592529299686515775657086076657672850771155131820886644512077939083668497904810806624516769252900470715694387507615443785505714620625560860163506039636337975533087662112425810523466652711430762858062891202336993535995426138745141483971906689732201701132885303719959579613566656666500524313893913154826447402154077882002350103878844790134243939800971524156539521551289827086769907171190564003485500892739060367911324576136587312601771762045237684639977154117534917969552079875699391532385243020516754791384369544414063535283596730793819253021193394357594588011064666352135885425715259678717435112535210022435274179162159847945010183824032061682712308305644569306479366777908977967371969619598009693576687117693585668450383199009306675117350119335832260306661187371352885021450189442078509303929059256801558951481120698121470921219796738737237998415427402952405718891611514376951345453214406900026203321027679630705010145547176302913197952532905939785349856004308913522835689532061354058516928906169432060289563201569641162741677815717936095008566535788385342720833859546601194370006522888189143385659555197157656231405966419879487781484423777150367892023877127047661779827568142170828008558665773098475531016330752106769577136000785008162978991835468013050263744898075125178030949572168401020173077716746318822250885028124887562791249580733795994418857687948714279021368066640586531679719762575767830916653954924462657413388408271148296139776867346853246293762768876088698503739623586836880556516396171405214701978867344118539891201861348363555917462133045409061898929597320183944334211786184161589428885584464350368717023770748280273139193279587149832648985222071932849042636731533283235136337201641886544710435412211662029442018793341432436921380344240309824205065582174099678161165029346076383585627184396991931845236350935863257772155547668856913764412674303625036480385789426240920926876429526940165342877890277252236955281221357820970394117189635965106597480989368841890689999382307140171198664238196399554725284402817825037058802869976338191540986628140716815030435205466589608834149058408175628573357622852686750977230783771752121125591849095555379491662322562472180642638030938741239580957396141167248152478538623239120236602437328058452382402027328073734262524043052032119600577032930762059887036419849862664336592288893008860902775527895665073615265652592201955561363907198937653692270616155807741245018181311145550964757888479587633602743768112309145762904205781065604749054187894049503247398791504659407372461747426385895118310612536821644216099651936454370345145117164702037265979467615635837526094651524034785406911097675989576915801413605160377717445657275154637969767065478625232089220867618256519958943793525775967809081395809880140858342151344054446797904405883849328962207647370198852755399265431168006025990312610114408947949972865310755001228666421438837070552706705335947326159665748263412370227742843499069761764065811635973763729608232198673985686006571603866409273027268299303104901395868348696863603909822333938990741893446963300431136965958193709492496587530938574380780013337518238655493462917843846420229953912245687571984972219294552146209791715506864786734941573993466277709309341955702623454521440866705842070797438594683328546470102983754080279331738008908659873411902371239571300936097101746134092322665905267799491889685926640784091959840332356037802772667827415034265724016543153106388723590238614838909715965130729442030288156804011840460416962831502981829359944362147934362612359913456267644404369854295580418692138096710861902900827149397241267168949591890209678194555422580666795330911014744291279961766867666995494503045459491672800961703392666883528826259294432286052725995277938608310644004483745546807945632171059732095451355612474246946142273064419639087998879489090143391110370796539221732095728259580778350590675021436104993864802992787599631094843376285760537336792747323193979877511916393224344072291538845820129202189320619193855506163675293267653965649947809937320034310868957981190691213658637951831080664919902559388917444915916723482139101450192098244938905561175341260923531776336834741735505032508099569207731517102944944578299454007219413638480440433384973507688745191801739202459158481586776143339364759216442624471602114755083934761661473628548921264051085381690362997879753277468986269742876513227115553170545818603170623621480698122278593430500753804294337306451287943964264904984801543156276172486419213728982000373145930171535817825857631858568876972243524134182865076091717258584818467397701567075905109955416632133060003512972554785446412961014447965275708941422766317850300059972381753831556916158155159444024043413387751254222211793892287010392021358245797535909855001187539828708309556027787468901279111181811364491826597001103705159509669710434920275100306197016871972457840400104893130471657551159352361814958628778510119049181637002193201066092956542960164861099807510921379237120276784239406924596558529255009945381640580980562968397310535435929336136570660053368011822396410654375122822526637809394666499188229340094705392665203938790321589093378663111885259554850454533487295995307445848768432039210984975967327161315331534578136003212904989365802467433016478483222033453181922999207765934662482127781027637236828685200417332730189353524236038456809564968156923610481042957299231499615855137227603756873503490942477157037352055403330682650364362279673934652780119212802417962228527303897371156709344665334045105855567693304714573785463809352920413411885340365737863424001843838226970752216274011571120382800590968274293473742804653417264147966384311673158221852762321497610402395146926255957273980479659556360368370519446547963165783059526878007186073389835627532654015641352769323402375702548179057112039664380808169414940680641459010444561834084230527167336645307945760037135579598250337471017410735974483612487652551699586001497217591155270343442606177919613193025502010012695056140794343615929951990024341810801866622298836393485657088501470899116436499140182120412924889438456458351702001522075138842002552841246493315786484831178142626613223343608394865093280989447395042469186227549357777718762497096381255535800274464759050462920283181592293935543632072790731495999919424509437314170868098916994306846587066056733129146281960955484673493962264586221776366399623362726073948590312149054366735022858425093487225505430063094224679647629035497424704712895935876185320289394220874827092717765959670780435569072724178638298249721250981153459697155668519700913259761970638778582336320541349568545855522963046097242164180248027338033018063220542175016426259281036782401043924963578167531886601052022987812879858516869473972884627304613248480540682379826307515872343215373089252968976951518397504495725306393001295432349024917832146376582121725015492423080387555919664699082192520518688024356108577571940815118579417999385046224599853469250661961191849051662671641401627096761565687478801357275154544749067834119340093136811398340153347511171457692408715197672891354931933552521471297201189579981390245358181796566627540854908527057975134704359284472442653411594454236951285713791448015884444279531979778560350653284668775488865026663141521851278632701854904674359658368010533282531460196983328528463187282168420152295382149659197455155289832108013005991991606427883638826728986191877046675699567157700971108128693054688989941393468679739314963605736232581813519644963181845972104904356068956165132577637198661342929542407502171544189708955960994510276497715625728602861425839204139584545152479713003023475083917097077308233966697449295430592537568338057050306065104237110004287805262624959855820698128318150246415566129568703586116470998895856173181314054940051862074020962456386651305522595396648412081488923665358096773514907018553170113087020173677581804732092593283787535935837198939435878475191995230877866813025219991508167174305618051118300933932724890913528907181485306032046286100155881257250629721570260160584859270406606796985825581616875827068458629399089617687548518459573343283101507464866764133667334030169636865384516993277592255544392495740375015350699450233676666076107985662695884392386036010057336396700836267797293157781011694046387638195281102827198882861463398022209321237108402579736809857860167180365969310196347627703232815034348749708542160189100008942213504266754558103152630610832200967856213283539662130550324159536859784373400877799537136876147043764054979281797731698657668049451756862820672976562691716060205162732442727540613256680999327999003989939981980779462365352439702358487644576976956214748533791496525471335264012085162910685117694876501801447796234001151163452356791785876508356853538226782874493991419560057592970068026233916240168396237479851551986272925084973057303620564441094423139110593803782295596044338585849488796432212804237213266041385175426125068605475491058085360504112516393262460366018092384992198032487629764098996241340963200097615904520971779283916466021835285236307061005144039796843621091404269345071783143519422456734870165412054077225131628303306388714586238572760362221388086001718978228607670857902265799503082793921471839375567493951525730279146958152057897038214683550890865590107902691545224452006436044375488909073085666315844313413065133720213614272865865751400002066946614451565295759481203086736774526358265649022755310855726895049250465829736822759697130040717951656255359490446620747159088534876113782907326605076036405641821354886232378441055414187314474049205854768934963490331164907809811125650483734960493094133700279636715778651773064043392034788562595186651684484953519294673495654299057677903266120172018595877990097397797049903558687432392352179957317217051911090147525643913207401565396887283011257954929468632421052946844205217999555129700464691803346700046626166902391698399361662887510910047159398110880978152597123975042178071129246992166983703752814460494251679981817872006304247896535837499641792613279507605074552102891641776510721234284566755404137829884719583582046382772243620001293119080084842317535987633575855724260032365287573791150304881374056923848737838294182422097469016030020455583670336457638370467398416195451566527769506369577258706100626892790723307481994416141777440428791383359746968505222536611358954218263307515472286911096693918204997110965628887153974552548040209784668651213074214327912714276003297070855952579073542062201422136447970756339865829021248176054948532226744962655021760159738237374182639146026867921319903047289083390405576391355667840189920445506151976914095238011000831482721966603448124903456465347679163982313949861043947381452875209533297262893226513159417138378738188457306908828470563733973175112004430821979412907384814110736420298593141255525217913639526611414240175177482642827520837212284890846126728748308088304937075095878612230511731990466256218353726154996540996801692985673418279205875155798904121416001646359035367009829573648717301489040405305131886437189179722645217261433801952718288449769337959940581886835819609524604944507139726391386998767992318232930657062969949817444233791170626221332024135533488668878039978112986328851883635115967792384475660276595277957757431190221837246593368951762086859794597295911865281282428383519060255060208842795091015832474944282267417911933497758235071953854870122231068793634607485045345765425476379567574392502359793006777955035246428730754339162983529780057242129325796529433086839991893084014188235776468637141297510867890324934604130586901674152299353812887765833320783954115947389505415657382666369616814604618661611019542413923072112744878424081981063994617972971698402481770208725206363724041721818572198958461362604846505423237371300037016959003427622961795029164433462154158460017160162451249619747618667238434398745926442535441306124510267911594779227385423158788734045048220388960040928015170960887447830109451175966865293627682001667456850714375135869928261246513899547617357245509472895012107126954904529074193480948016030401150745087997506929705531648980555396357175919162394220441361021400374057232647462796940377906277377369643608303002333604652168133723877996570903618602930556530934074005431569628041983053866752620831663819223365935603427343812100152220765306468649679762022162089313580522749748991860847407961168551107444707864553132770150116527089812395478283841764369911326491990852509878448840305403694045155025162246376049611808192278158457826636232827564072380627196695535734931809242876209999792088283994083836449736642638182556300805289352132898667477709106394735259377625791393842286355867468620568655211980306509339780671855160599911374653584567817839165155729977252879490315569178072850338981590236709533668227385105570682291849017688316728020469050880854512269062546993177612258190805059894675580291223443304427053515398509562965184459503870753247419780043345971329621589788460831283138949300187706637873601050224450837770234204705296897458035309083120468010874028983092769317502876623277357997486123815901400712486637598578346304079354463053946473166158589633339829514571088255861782709727196575171719316275032492535061027878029297172994225114985754180130409880502234309304636322265336736521230487223787884829201878607596376377997027932074564808748425297590725092987387694608568584740468376552121372133154981282745811765867815477003167881293198654149371477310520001048517737134056533558111516764119175429331806950829355553938956203879549915500087939677414099772069021750202147557004200832597293381679130623862403021601099366285286587769926962666497841491441761280930565767475795067478084521237279132594490673052693623032318786720146272154948119396595490165651093449113012567310351632227278001346467232747507746167240775355678895366066154087156447571480869189056282487854281810099146924806945845259842180526646436591303346710462698383756741761725116427746880774865665437838705496078828866417540055824484802247958038183331441321225162851868141356924801037615977935622222443822919610674356924951803995289210689083369297831277664123677793262987492698557033136466352288031036957728394225689694017112772315246385886807102674484562137449892777942734014530921163102168456564748006999906552945787034320623552722806040389636413340737101821697041539521997944584164408160519902005190394805505232647357976377945417824598834220954580840843794688518056311221535287083650307672177170766689176691436698487189637293283984491656833504016638394639033491897214319816206211764748869163392260299920890732555840408365642684868063893544399031708786149191360648543504163297672285188692376867620257980735402936055874568911454062505961442318827704727623611018108990597266546211366456821619556190733613034470006698040876349292896330492844918026943726097858597500568467255149029944274892106496583133168030880213747869602872577772027655431998740931624077975491593301328780124935863600699403286581638710106423384581970622155437106539448555581066436699318239725715555834982553468111711372208613980139455971828923962845028191960888596247505956040355961576016719657381350913423435911351935835816134561026904047975763665764369758548969105844378619871538024074303360897669416213467071649092789096356709716940034267183126579414526433779875828828531332905459738231222810126549519051969206501247098919318407231823226246109011838391081984246115198330892420841250307790100732497469139931269514828401019346597090054757062237619590869772082457991294137477758717841565010110031958901211630394632911939856324026432356497479515767423992893780053253679479099554516664713319713104874734680393802641129201451437670741861498474087679528220441190068899269842915226535941117021464642421588025609368820191260373689456703008265793970243534856048345248686082982152198407396904749870288227493917632467276515001081227676643027835654845941965396816484204750692770761445164416545879766652496078385301842769192245723457064488246901236206375409125228359534094404646367370493533214988296955307118158135441035787912199455497783032081235192578287418917863286965557667189727368986876753686690757455633057613881784354064355801626660831414678601415982379691696945284645762437775393363589777690403353925676422164011280644921505584618271431763643420865111519512853475709258642599940748968995471862084862177773478691156766039250090716875333388050498706570391999792275398104623685138746511556255385969250971681210050377894806634068166760497125181816248732265209157915395985714221950110142961387149421279786260326463064708509273782391665560911934966625756518062247727745539884182399054695124984299527815932832223917188418840981034456823118032475976317260989986034853073234771105411142696329056000067980090002411448091079668825287338318494999408644570580439546090704158908106390751829205825091132485859510083255744423305391282451044653762116016589041914128348416347202531978736409534784031011896319111856578494398709866539348608201605892550069366007842920796521696261955205779888790383018252234248622757260573810243509248290289111112869254101931080487011004171074902041700055069830428436533103887019529394976625090095776835220323271423142397505888246401106172586414638951254418381863913667677480636415425637564596645837564115256817558499123979787881629311892939113865268948349305965284270665961447569230422780551341309994787930724714319250654040437703805640291909231153251098097556739418454131123564325632326111049711437663215463368448873660415195525182912429003425088096531133489777584629651198305876527794249689228905908626683313479985351388317947845851009126394064389318039695547760158491937668925472064087846107587550139092764339961030978352716542098261433732623434436948278478589512808120287817220031690639071923038251351129025733635112232331770794775664899305948752968011271235198224463343313400626196217523064356977915970627533234535851112594236685885561272014261172943855479173982627829757081874039191955116174178786173272577913132637862011445950892010538798214114768867591336011740176663241732854605362370656455808899463034362336513756849695129070882553390158263055152675596088291358398924279815591370167079108631539850922405144371265680521453378142120933550697605111870932949192384627030560134360615951303598472753859061242007516057641317414100755319773551517960863053955751760903766459628081481630178320982530804673776670182523730020278123973718431620638975341981446108627717440064181777076370098220798386745869367931609941084165037308489806949863423739898009755203986478159873952617566509963452549661477188559008810944507182908188517074321217506177524686588102722230643079758821712606872250807092036769683155155592732254835347797045307678652158334844650475743120203579223908141483814709615246482182738802598481763599586709375039313841566749379242850499169428305220609275651173653029201942591360020863090111320644455194559113189539458687837957591083826061773982926999445724881892836058942398297400267649389422933646799592324511356958804212320109570051479840738486857099966940099257894504351282987939484847435330179236690264444399473575284123008212218033424192155946389790579465486103206633647750783989265542038059136844756223549612751141042691043977972436236921540212672636402893465204703467138153637071571961895581242667006490331569531055035864368860395151010517171579455646343086832064529806015429343412395159307530964317177900694712766224656050300150240705881809198304031870951584723379142972746420161853211126573289720229342451773134999015486109214666835784753341222176506231359552169993520665465027006273099163283018894940342830693529207165911529053735509266401291960129845222609142515498865513250151443335979831096730819553697367938131924301663255833467549940035155810721125709558932266460578384218147636148170652605516625250268510795509849188749612092367654326273946771023407822755757186518497227369168880402369944780048904975565425668960414490464560001973882221658259159448230227354902765778540757019429283624475803149714789508311176712119523523795281154609291909420289692229306143228111011493530199692964944125883772378246076838643093334198126961875978357920975213731005643248312625715763096407188167275541825826450953847421525618863700853309993344989751985015555343907489419305719404651899866394421267356861633699248648779378865636379001136531779557821178884480314240490256966468368960901676011694532330868064914623577881310978255271510919137434938397966648895393784680450350244721143967762717511431453998236030863034465807302349263600339850766225852525077375071481434639420834001124791535386067673502152980002720946291051305667803200784308891490325303358200639543360074038964725285355676429890293943442493561085317075040656360741304342463483602795871999346433133325379988241014495007397552801909807605571325896312571165202740216912571829533202292557999019922998704167669529842765959573025952379208863699394940547655275430835653888560030895247754940110052612894207429307964774225062430705073250329728089350707730396799895499817279965755210665435600031472603818393636603195223768192123707593186455323183189678456690138546404690302614144801249655835320900501937686584148316421808117321895957601506172148783017713614676432533151346565227626049271429900528205611442604598885650804861052721077847178401765955908017275667587507245958448156353187122299271244271533447429930680362822404313303668805100687706847936007351150273789606183022200304996435025543728329533914913856238442544946229433571786538600990555397415681302979292833910844928160199150179369406495662060570608157056851611205475676959075878817904427038696881265026365939954955330181408631664359733213105599165465158700416273044955438125738510262617798641307645856131558941909004982375314956897584234486913274411516259361131172799168474205397382194605757091023926788424787213115399503988166957121312758552131894616773282725075611685596834766725048814379378715198367173750103307064425283802996003418818931353480866532120218751390046897653090524886701898851715431362799079096004337716626877672660032179970298614283677406127431926402892398222701561077336691336600665412569652636544123329057005881288761391092194726156122649695913988096872992139180170508214065204435616864903292551382494310487709760391894439228882718260062650084543196784432958936677678318248713405705631750131198869147044418772573983809129173090514454692392161598753433981392664540129616301015450276565053339469556611786042542971312919355151747431373089970415206843215563507051756175602382035226803406888794539153249523595453005939927958857292630056077800663217462291665239328541777346335952433399389440817741292227444635102091809182576380864165291168270451155264406516210331876605687016608184844442616533529750154109470258258793350885246939446354288478786147657476536463719962387412875094448500449039882969711424093190043944401505143056265211842132499565626084088026923378564505899756145418667151137309215117656892681081123640404589361011050163585339765250315054586778215136389555608098322017538055794011754989253798927399530770613035897244561585062838956788080701477745600352319768722820760784672393478495396132187305523704189566902435498680955810283244261858855508282447822590838963799589692629071748044081616751216127260866398368206496335700461296931992849005178116546183995205387253181132140258160740178472441577605943887720756600805016965962384454784246378970258784174158202660120807892390877568773253371441974904929517305937624972095460891861677886729472621005964235056552043721512357038337873418848298343554338203296122980983166036537265908220630900475595613766979930799968288980051522312387463034569785444875782175081783584194821643714100768912211768703720973284324128114440653185765926919145948268893893842783706556157389021820079268166153441247338762138744835042132377757432510771317561161942892393000782130328637028947419773570066754055715281522467149809645594118326277085969640256046340431248332744994790616976945759943545503553592361914021695543753955488753690485137599665871159156565839065415745085850199098501038283753818966403544702358925629029834939713985219376549668755925981724597035933634342490917268986387447627122112502443508961390967411045596389075740720937632584930463223596590673859977784508015226837361958374740304272544344672364339979082156939090711294372673420801945822218658393190731979772159718388322831453157931172999023762945130362890979494495872982525585484821458244913749617707160069721393584653061638583931838649872205415556263492495859342032108569818163141449250588782383692354347089415172415751676044084479746799737521930266639534264629482397242329307659635661228373135771380699002048283894429340186470945967063393330172333832730042805018687994155687737082772141647281619455231564316446957425901669102900561681258718400779709124372463066452967220008930111475496429073338455458591483301883058694229845704390955057952734991726598116959894592285012773902434277859885345278194373862344446129263088760513177606603592274598042456102293056747367458628135530547497089053498204952783380798187644198021511856347082238914630347125960599401363242623039546388003444325340989241681078431233516089132248777763549830244787824578675771642902193406842746705525545165091037824254311922464438410627496329080099915492186676035050232142158771361839973324841396244878413111562152640445116297890462785818584558894672474789823859942375062664283367829754315942706579995520462491461208475965093471751376616189593828917914958505006853633874764516556666456571277624843305575398042535085626594088018819525041831375627949734780802919863526377321974903170512842453880000351179784611017431993083521671589090759446025271342232622665937225403618152040062950828130493564399750155668467726116138568819394889437994153780161331246029934797800442734856997978368898227938073250200649262388209170347124722593707232897427030052688837471123866158872275984364220019189404394027163713370287074248560471904138278940494838353984668843993747081687059606667272011375224988731151660674403825900986717577639646251520511912938585030367530069647812483950653683345019950880083062713046071459631269649637894109133463208493846674239603980628996229158759333088205873538405399785754137007369481925763370431783014057436801336063923438142577877571502985906872740347330804684799909679560044961303898694570318780281028545744725281818963237109021816237518247783876598004227371947727160172657834477112450204187339806587783544680113889473453804886272146150674046247083242087476242319421981840048016665508988088711862225225280680536234491692692466856194997619167380963945552673530507521477322018951492649098091589696125034214522104185393246367382661751177525150569720816244586653826115078268008298188397890946360820980682759133461502722642639493599939495699778550766724966853453023825008942810956667114946716769241814582524177225330988690079066878646063169903460617515514799359824672287128431882569348933941969378809497648021043588494257491870913001356622419544309638507064777249317085046202729837973748548010479171806811602795302720053420302919163833079027435631346480891347204725658279497473985819936027713803031624767013660551784563489175816198123291620362835270079495887424684366937915170201753531374228139671787734210191729784087590793071300199093630374634183715407603653897615221591519257868555295811090438610619942099284355315695223468198021370985029450110480290885611886385110594877442019888051015400049226659777909027029544612055703147768729177858049135337901488520741682645779910972632530326780977436466326170314313488690620635113501466602866723386528198601908670106741330067540345397554795357358990915961813716176584153235696399172094331011588811957051455165253004765119920330553474679770125611995598410785149916827932083354104110271365673433245886033157946324962434268428191517999450393702965585235717150734888245528211556692090207201212392715621335557569024589267850286490550787514718820759003463449848749467097324328331489551770865433234919518325368281640050089686309676960461301866719243720402652812720345441326190482621437892046556696092699063289631700292725295517932230651911544384463408607549977034814059400502655614029281741186330307509320059097363145876463379106750183561367179361449102913062812460724873569380917295697245304069739228116073740932968341107336439725912680982506478110223304414223714836344674024584349264828008888721969495305395239179314888599746387386483982309263047377030405503606900216019409587667389241867650398980114861807317170891890271341556167021607691222028926296210015465168399087909694397887178031353858169188910494676641183591805087014404907337025781002174377547635281674789492202946207592036366484821322959792812988623720666020227743994721721066285010135041617989800320712341769874619814015361071762974241198326394818548901729829217007189297379210408343960293612414773330512234541081003104453188319355122360468431770388732117273860592550209173624594207531586997476748441625761476860080821304289648732421769427722715894852360140097750537990069251493987495312772099528320696882846398375592743509423936262517098789338342595008436729250137599887573730043107924014375663404572917292011410422553470716047696779312476581379432097354085536846405217447166515099938183938174923494492303249751988405965417228407660908712859621396429110549268975398172873475363766326434491670505112884369755678749526373856161582734194925181821151830729945148204332145399879579117779147634164909761089839902912978743456466113022235003976861114229788928408463255643801944822331665159680049056191812170753067130805363546802513616819598601381548737996079979144233967761563782324003853353405441097733303281897165777714251475758209368975604851719740160982008605410855226865988073154491624347194210458101773583305854248411477769349699194019834771459821986874159707928913067649443317929046256914314031440375400311686251329661923269006756548466126064162392758727682776830547968248812691024657618001770177464246025608221577923334368469599599345029453072183116558917175020945066437974233629583386312721773469290765579605362633031878705942814083033904906475622756494922102817647162949181840861113355679416797787231675824307950091530746778756720973260776704536440518020475233033148414881973259453761022718264840490613052778349077998587763359981330128543699430194995485051660238013969975440112804757203622531532994117828552824897370729400828852946807187921620784805935734240028436174469132414909755482209385716450545483607388135571860008785996983365788143478110782940006073016647668517614049202187109528014156796799142260820263486691517293222600175790906503391093046783150325930106952789932247516488005824601550178725396876879965130576483191762165282420479516316082678667672155894014688496119856574917171139223403195009395440884711885731008399218610550911384364621305872645225474182380575388568043249845105628301387978792985088707118412963890374655158889901497917571046533548848119009133089369390966652395227631859298765103642411365329952778442021494865020876924291040627659179328883274050341457819762415850060512300088943254577069466215352932061573877247865429477076288732869057501681582823036681251552361140348791694171710645645006480755525083659040987461419209876498194491977917151429058523634509520511191246240206968567070175845577310104308912731386348443593711363658353859290965328502930591229368984521504436886153088155374181771333808988304825757385860709189648211871534229237334453212891226613985016308546694055583369749442865495151317284855427817754620086768103133016931376295694121174136406520021258310039200528814252587444271764393655021828191503892405358869257424436231304074226870321335934990234591083309557951871981751409145287591371337774952809321713886890574166173902060306661598239235485740715455246979495016400734656187461990023433946441724822455251369536469268650369265520769550096954857762281550048549042969876541203729443225486971657868217663140598437474482275760021962255947874079584273918090859896437820715551213998245765985864347143647557499024701561850124582212580538446488433416327220492388699084919495501606320674148183642444376702954457690895475351325517330615867805029936860507458442317516049271626163861010501553904763240723007826756982874464880808504793990715036389454485720118442215307724622351557613847823757494610540707719470415402016228232100880477141630488969785388068137730058384843701330881821572177699715055928371713703043518247504073279468557172567851174239735496209709970443230195362488210432941149166710544335918367660660285468718789455998481484287795106853837484493730947341049272852286233428173641188033614779513061406708883456458843765038685654787207344750498195161855765665818677484866042369757881610768272066161669500164206906872808389287095881295326777943116916762497183206637115760314024799717484767291562838279796991041696135372913305774682665239124880395953835107472552142725046431494701390475657830680204813658135494007694775475669885892084628664702022388814752992025626704788046954691881255368547982771586651265999806303433734904029181011353774522944107968313636041450225037498723058381943680219474527494104896400523217373026606897246653025933178713365287175791726490513618553708949287336196858481482264272143811549597914157247467746533131945309180180624894380368446729403209929482711982585775732377550450658072033936190848141905874722197084549478548503540542104351271948865069964414933333591298878298409979364674487312304115404550293472376171520983470883653351204185181765079762201953374305286327561133882505797288785576256341023442266628360971123057289012357624292693102219795789439863598679730714455207332970793483978201583518443943405386045261432488854197281946156674117383047037666178195864115516665776420445958607776761331179491924163559606900024079806742872560947544997585477512341495255159259728939671811310830351823394407907916070803321847287793476801664061583837279215416289322108329229013272692273531766223736989115020450989201626654448546155640099881989844089065821212929659043901237037703644918342229573612008931183874678701196010087007754949236209646722563940192564391329575179247239545315069357597755722354041049293669148506418521757437821144194490958533692029300413247649540198679303447449219082792506284667707651591802926495907415748540083428165279868984236889723539063896736057886176251884119302173958078434761003323300391596374830020765018036256775462594744276491253241441339551529720306837553382762144221920107463235257475832807789753356846775704752428031811059489980223289616861855060081142305093154134162864095647400974340047940896975576342874377708233051782349796266188070125650820103291213715782878947612768746709315560649481210498948523987659071415473612401473149259808221066073180200903780393150007920073014109533755619214944085939428603137247850572891193385926435886108373579428302897049581557230794180337726600273087396181367622581907267003081805441634048378334369128445201142678949574752651520513785705946315588258694690951245684849929381299151822632307795563969917406926547537695353578808742025449765712097679627536775846570465151874353466336037963803792643902468395927018778680409327948091516842005471992231669927283764810954689107025331065305640434163956052080182772807830082557254398085838928969760403493785985566989416266228730353850118915470022210870943548498514716722245428973344288944635409592558377154582142006819226972642884657186400377174472288676898853895770889215630305703451065599307533987870974777346908398226414643180623159040094432431878516949205144500883663625740035497485354912045902516935036611769389012476103665821051774167170398749808763583837245433527066933919820028169775357395608199283617675749517757868423576360673307835324772731054934428016381017915986768972527952852772863950305579358789751965940423905869099206813602577584414730213914820512892209153916565809941086013804425876074470367556930217975134393461068517836781177753359036579236117450803815443033924796512571013441495429543015222538429023048148553969032439682575234701863034586171802824470217274750102939161000444573009704816390644091100710820564128895323859806151644298151544892348893419785277671906189854715753862311248839322587212163370243451783789510798152320787758046598155667554693821629692299029478223929402756027186792475420532362168946821600786859104127423124382775229264519892308913633625377762214882809368062768855612622491481080625778422024900146931905793727093893448525842515146443600016902333408947809017997257450189769008190488869502965139943980594316949695596847262405620643002146325643941593897710815764122120260169647442751789787289362929685687032072588013105121994364421417001370324585986864138999728473367226722729626732317914046424118515625553756434729765088591662443643418483852890817983412097991709678151081091759288792694670739804435435420636604280851304685340571133689254631275635773019708435996755216266506387971429391587842163974775820486957530202700172211488139313940759238128583244966489922231263603673131524805859500283628272539348649134996022396066601216271858795201938330627187663028063755547030622087333023940622520207225887571925926913745884699900104100659165586540876942670275832366135443139297764367298604359899125541135484679357770998840875867998556555765437943518026098442637070731378400735517260424829246176351130718942623063088704591016593525757134592593818194188336860568415738515905522785457442045435045294905523695905263314531078839152486602724678958984619999252992198606451079342656977790920229401753408044781225941911379736821696135625591215545785762857231827769895444422599220152973077931511099375355442527602555411456652631386919345200711038988193616872701192696889239375877779828477018268585951288099901629220879301692311891161668764171249604449530826249901836133062316422209516158239391175165357108393757585322269599230486044231434969517353297571526200102846417667697350811459931154036850559689204610988630269506941857297205722147734950263849604773687615239534311595343290205131060425173348090370356975029130142799845869689832403032275347073459281652628727086022483687856679156000885160207083054028367168881677564595019260707779137491167289159508755807477988194498252800954771085093711290177781263286147448235043807338635515217955174150110581068620974490778712141279187514141803136574742057446639438284113024804239240363499568449853973814401141705558452422417680211160262549044761453592110801495424389410436559890440729511742800551946002045478404951665654738509456729242773490790342923361367992825640933500563380741207359590267383528324649396369929222796671844257472037720145826369121739693322830397492402429598110303121101767245197464033676481767345180768849581047274277609732473875478527649353644399734019867794548846217724177836698289273989691847247991395995825501958542209421490172563587443094294729323709398696028168259616702048858794648223201251642355004148548570513435369788398872562825182107090203070056022488793976982637340105775923730966065944314350014566986583463900523788010512596464163259358834991398997378668792239121244951276627763973943094878498175345335391509360199984965318862664226368817015509146414213748147043861573392801871580591914714814945365534845966052164211494424462953808102173625923486193700622148915111280487843311622761860829003157480320787892113005803431220890264834741915870172499771316154283327767796119522217930829347035973707430992286956465040942937369818070802985336369596469369004162248250249921730013475910153863705286656609477640708100691692700681434339178313599663989790763431393035794576460429093603833786431835172424228581551135811218003780108694734957996508256907584142647264653025524205787724729514257145816477094603763979193688457260867249010895160878431321924736905910935293492369559809776926056335612569063585466958653137915338214258934792854291238346325817925884735018136208933819014303750112323729330929115190165108332363338512847952020277531216320756416653294332836741654177562168853193865209656177913523849386655035153380711142469337972308236097127119148202809385003400833076362994396351799836888980267215605289450310922402813240376160908186802290202610115084167657577798900004720083640645418626411168867227552664204148549797140279237308583182269380259910252677180740116073808473592929370003881016751688992424291569041451822264394325673018986296825161552485572802280942651235852627655538798355043075584753657603641159938361329839516259025121502123114038678133278432346771402892874672427951736476686797713488722484372336219933175907773145180778070100510234812312164560009643503055552500535885893423087870854773604124075799650881933274279620381001760907460541275327783843992681001314705411132239818919877784259479686761501866729956846218808808781872196131968691449037646123609167699338167822548680711569688714447787160061039834759102403148996058753041009835928148526791196013505332297249709600718440645775852149978002447657247250398531315257020766604322677748099651911020375417905789528235164694906136144679755465906993244824650631010376979026026810543335760037832622989610699216916666432111388142140859696097242668853446510090275406621945893257431209691196070689764074267893745684558752989894338784135463870603777438192979437062113540114341561799691716544444284611163288635819925721003569410079472904200451262047001162441319570884950130209395123035860607884494737801116375665269678679287953854038673046102988376704088621982385030674458703287165214673424434138647221095134132171291321099286480032341156664334064714474849573800264458761021205586377609334657249174222642759951116472607697384983113760018809934280368416615260472504997803610603291676232224789021892924105158713152072324783635271355798826761908563183226358617045511396624726321750094524635204048197671564747171476984706826186276097392635783865240672833223219928354989105317052400083443983220839925385776593413813766510233712245706130107557203703244663097889721332840512613477308408949093946262086017135777729154555781244608024499303987183873393940534450747995351050207119371405165587500240965798999306672118698358717167816418637524098710085431534936525489235780229291721840373225857249454298787454181231658743502767410610439750188764855351202239744505197420638103387189301974438556318542705074463259856267467685817925017364270353506797470338037168805323471112780391983795536187689174381914556712631295492212986061391129345757404048436223476930428419747483600519096409521210455109443555712155856464308645287106025350799623724754908885511475551656744398124757039685156217892914327354515785420943472223710020399013700091478892291149609086153170126756571848150459421246313279446973437193208949031491898769388900529147886715471331350330817335496549237952407249741190753497716259442520106084087495012831603786607632924550670121870385368322364255012058723585929988318371061375801337009961009162888714243112221214398074563553155441440347668238148523891378745950897412021791101583526681308397950258659978250718153420982547573998722163141571004130640451751711688893364686115333748310739389378813799688502351381195350255624045326521952043453822465671040601348669208855354486708898712844762950766394389088890145303110672460563111776464400496789866104301180003995637718203210093779686898989534271733650907113964359655298698750527728005426196954522051904188321898786032908803198875367532198358178200289924797170708059661391384292511021574248755501185903371820998420671915393092244517859705573114011358572500194541615841116810631616367472382207977822893271543033816776435355103618299869079757873016178430885036609906618554181990949372509206034468789799259598970637066358180003044801438141740173461134279916789055253373962839979922322586328543950114046909245137546723435376850165474334615944334615215933665756032590724134087180561201997435607149614551568122649875128311376489720759031093167631742404731299804160659498118950982213322098556558913805944905545674655237271706915532510301729334158872394726787463847930699124628684554834054676451082506258080875498405886452188510365921812780363952076101837491606327537464634106240884201540676809065160185553825148166629712137969252948260473101379595049194038003953392267968319387596548531657961909112835280688862219547924325169135867754419359741225780814427514528360989938557747527352268221057628885570671573247103033586799586255830721368638398637019945664879815667085508735971990546630697687429100834456109223079120172176810901655021888023025048866604706860561013914897261529174315027168317768680867006359358657145551252417985186296243750834626619887784650950966935197093791353260020525991655801952381783736844205483994074227866995444194440422551008587510476929585207912704270055168039241955260147682051482692363922802769895484552439287447101993022310638813113404721986612225326965888639598036226451199410959262561837335158138329653620184689585551817578641547177516424723456105939682463176204909585396399798579649429152596599104603822706715334582932131675525374135153590066870599467875694798039451062220748195682274256194328911429780273433599410536507536127239841667523688059315609278657938836060819689412321357452844328560606600657762698642618992297893638621217449588104041759185376829422253350677711226423708233680989750950769531072239751438184160982828009208447006625871912919311790984295252455561283334602201256839202133798291392491989525978498048991439052821737065124706021870851500337319591582915930208996494070535901258079133163754236428831551473943960414969643325388905250183418027420957717310334504026234187014730374303725192661708367110457110949962618999432884757324839400034279388092047645534037044570424139848094623807442818707873227879049350545949758532315850500160860961291889025360416599416341427278530511031052492349801831517633390678191917032400741099997630752542589562015542695553327029800624866873107825319934290629522575542232518767674980441233417338285345915775007667157086082687376771529219724403043868599981394873341054962535362198631170369515068732782485643840118399114404624336006118625746376971481531199676329179329743031544940678956947052637422264513776590771108214265541573225226933755346488524949780297606689215135394668852778703712676579833849505900242500818835850694201867251132615168483884262121673802196997693223798328992855337292068064265322839933057804900003642731347597979073976847086899959331855431079026423593132292760076342676553330498918393911422591420780383328879949814192521992042705020665205338898427348951804191666725501906773056981351654612863856602829935586987667214881297476288189712114915268011791275943746432203807034047150436994670493537543374821935430244288825581145598022908193435432847412998566472230321796958510099175637230115996494648652204620618533958653953674303968079484996332632954383919289795760377288739288227142764832606798499845641993865119950037854154346772046570889954664060739664415914255832683297166843738723238144791934674215839123715655648703610048636510727229718310052696569100456182855580025564356850503859857661628814499110625496099811632308135757701530608269440787737489727131151419961825511955304270126016158880939329238722538855976086674608642426322257807608155790840139165248431819688314577327611650605654050450718365247285361727924938600410362339607556392840828608476343915351401019755837161285952663995452144427905098450500104984896624188948304422561851965117201120129305110387146490695796890289543603746106125829758363015447344406757498905112203459919996074250419010460501759954415234915151172107257429184499200326703025365621764570663316695227341842402140482995743589982698973678807397097275732775552382751079185631787608111950753754174921216882511204986956401537353276505299864501157068369504900629589631943279649734696962859880327855329140048812974482123137245291672742228094533096609812145280249663018765719595935238706122306964953931466616219436913583044032412482373796264546140950423286876569726538028617438431136762684461001123112463323800618618893733791480998429049643863169427445318414429552877775262879306612937579674369900707230256003032190326180228214950335330604555323223172650256790891240104468714596005877760807830801926656427650725105246274788631333277269964737357513460647943601275253847961523166561409351842120749485466265929150971752526286233546574851205909871967153983896916680897034032233954393336229251099217178305454202250241156048714060517497380231920324797910466653932301108923385457448698507579303237750700820847858703382356339281992050130316492444013223733882532363647566429359458423132602994737364906127767152082067189178284430268961423456277942254287382440326039473126631595377233116758040516461312378440663457512370460975673621435483714673650662738346511069959427297730722297269607955792086744052832733633183306180167582998837875989493883465915860180989794879936969305930163540540090036810910665173470821987617390657526877637785728017869776585573671871626104974676279515691908009121553211868281202023784606756528756974596294587507625127812191792434881807288650892120440300427511209668203825854419160090953275797225200679605836619661839972161373040604672565042203523381541246646362907725473976764643417663866867677104124927320660173441685732527283309846588862282929232315124211066319652550445696542153423647522938591731571390300867252320596389294909316974824577571721918635504174249743972377719167808407302060545859651835093623330102044418947804992167007999020045262108261775802438953850436791863573928736928149543794899092665677001230617579202866576184664862091023275413927131287572040550745266893574243436826423724109514306929264040808194799871062134192791424706848802841158789326128236551245928487762380448435063071304179688281127824990052561901235618989451843913923545268553893716897778334736528012253324745010674858516240784626362095635041282920301076512328636379070329745897978708782335337627099524673253568568188251580765099170329612886725737233812172175159301251593960372604498196070626652027598093468616916708847768426587035195437792640718282073444995692149807843711053544989642457538257900184600586185760814507641449653298037079450680075866256345556841213793455122640419232149444388063093032344602233469489805107539270328704391222537529866435980086423516360988705841753469750374012688199276120147818215119009412018000327700427322792204066886986189031888700115725139240649401704275485675139925092642510652920135929690958163479353450051401088720066899494725671387928240934367734178939412655628627310664406207167591355203072159808354337494660873152787215661931241587801506800243713033320881713528635130753178856502554335961682409921594399245880267805557677960914833643882861804753781915684922745208238772213830165845557743929021521473910415926802065358819983412722854319048230210958654424766888453586382949987577966282194927124770916507568558153958650945177891979755855637045983609208325944952050417555878082863388838898440308772253300033896064708033652341331639716435203723899874104137940504250991776655537848881426540410972508728243573543137063178888314079824908067061613322371415582711452116784874911585450551473973185770603968830025293508404509049829299058773534078437974316688615980225669839497169592207152918966964635467863630413874970069569499648772050317223682633918503272081450602232347142352534907414276904144630021888399994742715540992254163331005939200072391174454524094733196103619181405465679987947496870984827291824764898180102726729483418069218058210444139314207633331924908346073667644605216770258315026245973263800063622462238112357800149629517530889389805420893690702699928419163796960118497864058046632494348600942323457573789147732224663534321954271870673756952394921029491853104321962136936362435162343817089800614966829910705982431333790016173075625867277742184808012242837195181787079290710396312293082897329839524742881721900937680047986462471864065682883131532622223534516201637866656209432145538387383888302953258234073189969734442219717309416189407589310543243492767144141994835404329209243543148738885046805174629872765737163386041862909320970818239667024758208294579370360223773488165849409934944631046342135012264512946166624575437686271447681145667856266460900536307131186114864463273812025966801471205919674491705918041734694541336142640980364466584332987508739404294870453428145419830473584035553317036539691902689478881461089037845212554891292550989838253203714977199341738145597585154103565417037094699218097675312687395764604396965026197498712683197062675934063165700420380292112353282043139425161227855897832394282496406126092773024883513029353664819773820198002593154770920844609151124777546837548121008895082112689803537134122408717172265800860182738927122445747624937081611546608907275186989521966528103820240477184566231481678327721537289113996216736629891712446473355334981996163299854961763994052166219869206274323214061563494527831602183000098318196611967124070654500038023505383067926072147538921776342660289540837885159613092731896936622298473505362425126409912250184886951018191366837466764145283014618107855590392088040972849095158781494728630250872953717524673420138997894726099607215860541752509349278588938323616200690509338094373923401214706127905712218683621302938958844505245219819856346098123832380899787401682153496924876074947428566409221683007335179456722990758139738073211681791888358854540071564321254342818254685476054410174340719760640567443577598818103240076091565296595570382342158330483950797486827966052464514007308599326453340349422973209034125120126215993736129319003465714502235274463687878492407653911145428082857386082412066627772014833942991513142348767466706416511863332615886551093808374785815580209934630814185688545200008338220507510532043620268954948443275448300104166372360692972880924907899323055374101368932400510676587499968452648294847450326736272559279319444333552717893898510465496074481686665429914880407105052318896184025161468811116143766523353778215171662464524174090815752185320449048963908965560176590655487180140990967433118480534423046936227380024312875264556366389191465667572704774040412372412665773189385806928424051671616123131976945398571676452127992553211445184007007163348107092894350240419300644861074338973730921167037343445415080828901605521184515069625888646467800902490301389231577914169384133891293588572193880082373141209915033071542410404376074080275668191234868060764136713097453390023846287188114281591982064996629163317727759124077385049066038396415292453732525829783768099962746749796648875124654438175250358900914867154350668149293015055708950287318335551619630063422674568061963941728465260691627366745235066846363463581987385445220384216457670765572369314909743457904615153990052712220755432711957115783010847518332550520226204099194575355529629713505587078756955645458216407852456083323005281097380126947836686249722189987395789333953218142816481957859463108544629912142053566512643615357558811857895403206704611874382970200741572610807030724037864119120260331557695669792012234463061614560781627606299179188257139376984617542810172852187116539913230725912846666015707641636953729768751357863720061860082608297069683837856153450014964865091159581131430226164584053518195733725196721539716304540461668073590552407821061508678529710594486156271497881201879430040213229019404855651471911859610585618077932134299333814958108618521265302913036267017601453906639100689853811297211532690999796905289773259477139511555996472498339985455102823434080323443925646021777223998529438508682809154575863893454283493407846460114403883828461663081740270027770503907044913882404457644738745433202916756979204759716997390933774131261414327912760961860479911283672848779013040342111559916818287446389945147444041075176678347529458220205103363390238190254772035074374373132203313906448458812940469655301797695477815866260199048830811967387756397834019887485569232710109489208785180236300544962441965728080790646812806238444491656675623178618143794783994166799543109696372028866910914022986057425701347957856099990359417235867087293681911917238628558312233413056404967519419826980478011734552609245279958386192150330478866057550008340681861104073630943006732768672903568968510688520184162874340743476616510279815629301665969448116078775492144344250103609308054447231831177174295595393335372876681631728775705952308551990823975885633635857040201241528647744324070405995146403554227306824964400528067150159527512612886941988318629547138053012521339708103541513013126912114269134709508769252390547404434537509525144527195725364035602307579737283446600867036226444005881835690400728797427226973248264156156674075573497844278151299865962804480208869805506303504904153319682716618263814188631438356836884976449088592299068242311279188496007333396789824756433318427732966201397732267625284223325986749365205514519012603712481258001425387146353558512657492088844433991597621039319543665277778841335396213820675815769802014526193789172100195304797973278276143691200327524293561576741089754427626088113959490906992501402918890807816016729800737897952561015943139379354017899600108365520303303018529610029021733724039008534949907186960359836725967979409586894245097412799937499937611927251722554607844543788384891169245181373162599006003452074442361417187399582672360246138522361600146847323986148576182096360332902498680241101580487949249421391219932637541565910822746538924730281583092440157908293252587645398151110444740506584015637112568010127718216551016793626824402517571056929376796378382912312506128018320682117410869763429430528452646379675787369751818780151461402609071721571775102785426366711235885126084759573354318863374753157949183721877265074798855715859334633692182329387200162599424488114360763292039179750352604269329672804649487458168678167061819293634695211172302170390546509485355510994442134876411162158904386365430330313358730316740035026660183037704262287721253619886917541360774968759391644359594485271020523335768973073409317161935157842770415651955495159254881017962529554057931062151781251982340163941777783623421562341637172060089116333039317589651726120225090327674961017779289192595603308806235862397289004479601222133055693458895332564524970302687516150677016302604142881077206977320738175200653606462166858495634526907767889089570433093096082424159756499629606530909826271025267427449650409863290713263146730910800907001680672856385864561233347564359650241795201249940894447009528160015487175876041022794368934830675050831804265051196742175317990884935588597974257458082642012439433494777192243712032442142555348425970495600614579295928478841189869498923559064379167197967304184527133393151957598242712138203612808081185065650452499197633215551643043078893500464481365488270115945494857220338402442125524672908542353028892405652927167007748955880752301595412856760529281674337053076625560669844209394814695520152228307570960975702140133747976173195579879290351265302106116983980989666495985713007846338404623944883850450031187484068443087018569287367576404564344705622095861525260007649366714353253236993507241622601428303553537756547431144696967840962461205222353163356172650999512282557118062850194557706206424213976048337567836255512893705661758481555093726496696820993500626497865696414104827660826811356695846790102247483078151163763737084008061665348484660261627242532899676339505207401845230728752385868691905902814849317215119244067816899917684854998774029718145125075912978544506627382865825700201311205619007315593451312952490833797068863566376170141197088887271772752707957262129110152285846972138305479759346936650508132538057632484226344613063573415924278394394976076867999005906849123860492039051832717914721579133748575730983470400106018597461961786932109483998895251738940619483777705993092709160359920823146153251736948609027393396893473413389143361962150771942415449728764506716292031884927402776304787391844738709091017151363587893821247403260894791353464405380056152366254100962720379617048361772814971659923405544823576284845111095088390820776855376039927328909103351232938751110093959230506411982362375910119929137522623550217080932145380823860420752417509075588024911282531718363691736305524358293185671660650344241457164518617465175795345674540897134218315745573489156049281519932594180172879463782706792842231007990435907281565697181194604716032168178650573936223904998845892697852197782345341030557952112945629029841680562091726319208703296092101641659524420801768326664926049859768263650758693130446682541352522231880032129274958458738270697430650008817764530513304704331226910458072403455549192995188777409533312903366079734385687089841706389583118934513284115656706035112301308859468295814380668498791034039181442571536073129931182539171406234656954143947327370316833112737243432723799598595544523761377602868354173376064427358583047757325493154196563421942987919471795513529058128211450880997753425761935802103858095734765254739837129303103433194806735659459761749716419157855446276449215462060640379710239643954445235751732824236300771719252167268655065286062081803726739159963493375777584338340621841297851047681120752937443876674004943885625824576604227688941685603415743046480690720810491431192248728543041833861381459247769657371748413696211183853375962481346053918937008962915965964504704343012995813000426554675053362630681377947796941840015822272590335416126680997745264492916314199939271000413848207245539874670468150526914511283956310374053048422935179388560590762808130597211318860570121541193942723794292819543153672828531262639390225337801191471446375341578126891984546217723872118054993978731263089773997657299031299030859791182697195877549535267203726534775126579316992734287986899726283904248328124544597012680741707761413804521403244611607803943530455788824633468182115655308142709850807591586620183224602357465086366698261960881021243592730870348740385805517799130370206539115591967673330480108296332514796351722969682553401365442763484358257305872195117983429694139129118226447653544435662847689915260632761949903075879255981728598133955785119438924648548680113097645480774971430145204715311583764210527588515978104826434264068347470852886065404869673230523979841916802333771391991430781069067244107779732167690096248155431287694662219261525264991238554652760153287656368914172892991264030219999360454209607931828581885902797577399498952293868507378098741676380791483754821430785485490482607661764766539584223493688173624206730903114472610370645886254741188371690353803864635748641291111531249952842652889989574372908509390174976485246695626777001112678342659227853130840846071513513684363075074099562199487305218389192761195472192900399165482594456861791763351984381829113889357551598153883975273359625374199418549915085311757942312688197255074741448606935659867239409013421428089371981435379152090735052581555529390260551016130153112219269123670472958797118474283820977092268736928745634064528262225588801823861015359203252094811397001848792258350504853627019538390154883329896837909012990270490726333397559756876534713666955367525294657267208518087092774802961937448236610389852003356113670956380775249574692816380156536510575415367652763341301899135444535463849957063436264788531250645331989136576059850143833691093004102984919183873332062272113739714392131996384362766931746309150938019409581486161011935317261339915046053688722484315921977709837249581472928758374985744238091725973851834412494809741289483112418538497836488363942071436712124076699735261799737688227525333353455655114878450594627029282361634343687776582070173330757884716616735015136980554540470963864527045143093201347450230629255428459102455495937528993786940730704293822540206318987387487113028796036036220737436167179761732372322548378429420049193769993444339517484854943872448174495669451933024021856311415069272486997048251532975276113941108005394247341795546687263105674621599068912020626606430935812400827454980916107070161443372417780475052579759632455133516669030274419117079591891615826206718653933675068898986055638117292428407567174500050011028594640729553088452405142258680009271511569460711274381800418738908503609494788743060775528977240450879264245149407132306921518545409164786640774568641011881573883459070144450213431136367609709814668555850425835845859993836529630388919089320215325966412793550165637105105222334888283778394631009307507158167038283017079229234357511193585210522725358701769547583489839097074339289651003856893450253480598529097998693298386634437443470446385277373685555096912935592543825002722976964564636803768892506220480323200190918116808302732242913111095811832684271700115547193163784184096416490430162383715714003470386169301221424611029496463568086046315449704089642616808968352045441462497293174201654116295406181040806756712414830230336175399884191084079673737947742064240084443103174744672387849870541204265497818772092339765176609520336425147426465899416783310776166410329041123660002683051338688083724614471819756912063017195117365354965681703200722323414124174346862974425826078802864279287436851624239217037610611440660178198388438909235735697717118329033285395100473199919429205840614183691481874209729924850048761893110514356175005627360460138328196772236294111597327767099699370912724692556028143344062774019881520979956332381191815390664592192934306264612747888214115751810977866571036004816904212051531232057426147050881211341632931197678800319999623732753919012221395020540355734503306994265708269911202801469356495566898569227887876568896400301928360543298131838047101277032949480765012716864318142040287903069357586928367045904035144599226292839173517942986252236653190725565446729064859480626678537271924261661496901487525654866935330405018795602433502242456076909341439196497698374934034602009628353979151314245051469201288593046615343558104100627356708285098323183045243692403001893199354185964946100769494034833753596875943496847632978047302612422901032843977534901591098188633781771184698786059323939692465832460506425129712023379506504821577315362439854595797104707971892603716252899793373536067233119717478237074074123105911380262012048883586986159199741891267576899990481198032949573474926731941282351873478078786800272119340317407524297932362039666137620996415849249005379229433337098769714312272819966943882432708491697524815267681375259576817160816339286493590110439428072032688444454802138169390672396877655955390101066462227836962372561774088490593207003210908034109180106653205696104888743302581131217686529100798143708960876187826060965108528339543556207587836830593104928662331796403756557976236987789458440587844320633284456357605906547424160226544116208773755281811178311630077193436497038620359543804298039150481082186187485629234735783904386215077966095088323466910089333143811282556701296455063152125236918802075912677784596919399459956573398754294968895962816612750010336715629663913320721215078121055936078246914808758640229938299713323442867103405303497010446044898442550152871209331780650033262343888542494903134487028164358812389792208773578459289731115695674505314024377651079142790467206134814045225810119786561570587128355932585705682527907705970694601174548431952948864126186120896414667547732320645505301301237711655323501126675174759457728422576090703468408108557476060786269984199134175127969917861165840147952391232122334904720296301830866147029001130234894140138607570219209731032799221785048607078929961551922242468934313346970805463180645979469073255999143884927882936351020898452498516566206667707183232402723956710071841064558096981639253700521238221817932834418626852844681096539096941503910910488183535595112427684149556249201166191919000492801817631599846203551148333719678114829301003408558688073509734627169658306666582199296199072471508997991240279105013324359113557630562925951844664747548906254497981458698091059967779135688350181342598494106999618772985638271708159128823258389734625758212500900619024076600903078031396708307699824434777644137521967167319337688683779756904865478414241293998586282458373852023366057348781093576821256774106057999256128865172871844865610166897666104310923614951822333340988771086222326142947518973792453255447942438295419835103068731826725697427079263056138789512329126477640398751536858320574074921776528767205133555414190170463949353532123771635675552933404265210634641257132683194688032406371625597429469912931345413575733476356968999694237396765741363569932769471863562221591214224076942211812635930106443050187910762687207218031055653872415208535236021816790148199547942511814074636342750077500454013971712112052867319207698898472720273122564834990147944426355177085311993422370773954154574531190881202699520609835145370897231272796185972795342925708048418352667869731866429715039700275030774013358773950066885760078382422435900518746145426329571486910428721975857153156641471096480212569803565983962021953716382114117557829789011872906018356511197701243283430339862000365717230397028172830522090739290768784282381065537732914521034289833452063615055652246225007027785430666621526215640432477841505143243306582870592423455123565905274096326367906119530322076300836411512581622132981298380602170729894672971661172394619640284660246374240626211738869506346475740909573488499265954896914092311161434253293448227669513151222523376200738933287471888037890000173635229362461038153319086895309247030104696831521218843241353250067908150266637278316609352374961293197130552438299272393673308421807320467883808332284502967258882399471744855025235557140986147897833959435798659084047815094397372018753771736839285692897720398409371229613464017731017453030966088571611118863015937018917267062478727794205416880571974387803830121461575116615669119968882997881277459342160879721476197824679667166822362514425912337928523143786914211024452718930231111487215020260981279349465749044536855605532872945345650773998298812756669954863202346791042449019460263063275834711088553249361142957281211364044735337628685866348975758004663619650209851030987053844702031720355955985741785595170314409224600544011455699623043980899258367153095930322165261433100405743881920789540351075581258292608144575106805312812753735812548710871187703382048640581935705366828251653168307924741374355824915214831951317520950934171533448973187359727505903067839514926159194819994588920958500909850916744811497784131934609549353451442183851081630123694880871405724645435570016802849974808558238909012851738823465243810909665099628208992375228597642058843733147013353227160160473665503125316911253778984126036048484010178813102993254058732507394874092033696989001536383242024521247621655496254298879488747660864712928229846358059563080827733561264658923392930548559322009332813381074621722051476525306185996762838309698802756816651944795744515934967498937963357032386438729826757992380195429471641170514462140135217670869461562852488419324684954619972226876259686907397393742713603032702704682956820843119333581010925209565870497177645368798416807499256252247082564417914230964420247913049923798222805319864361351608440510505665804635652352839958572968995558621561336200687862590611024297095800786175202169757829614383016578294926393103606928259087650563803517446935001774274342153304977877727343641721350652686465308452336583190468370221090422969099002604981946242496295045181917740699889155605264721475281701001229933037297734671230547544263884575303419605766906839985879737468261712128360414343539280077159127505824662128171158474164771376314161327237531709590161949346269878508684709473226121145270363358311907784405748926421035869138571142282509415421323930801600267377631018975096120550616431811264971216392201977012566350696925912896809884730385025864894928523087098305568935615254576548746354917158007152852616189553338808435739949202205992617940460362614653953765368200876415185792426207303952115242883348996977000191085322003050752605625047237930912004921082840976527407357849581487664206513886868646969961562230132918150058686187953790807302641000140811311454324914277597380659102472190680220019373628850206453220640373317291186032465272557723213998380533156874429660742654067241870545301180406224970187983142762667408232721477553989966197746190797083423941291926358199171066252539413486729541538579913888630055575514987232698013727712348202892406670250037989541533413868570742856970017005720299473914687004882998120793962363717744961814714725941866436256613995415564817445218917964461861153436396069074899924066514370676033016284190346878741492027909723629969259580772706374435201479538565035041394243569901239872175816291299522503408106672354779042170974925270729556091216317393380920680635221044307799823344432027575448756574726388155786853273214828688905658129716769933317631015424530952424953265938723102380250266859608884923484441776958994087943050646852651480623822705693147602929455202991362046802797715565096349139939128583494176622229850285628692553848463434321664726808652877686495210812855940859849933431487626217164945815133058870150321182385436511435077185312688114680535117926032707364926764093426611787772584730289912292207026897201240627213034475507595949676996687265969062989859284634439348910760386325760629271959739200689450678190386620303087496634969652662239051230624507261675781423415517671038610333035346097633003113504113147780212844954763650306650795772999688398503168967129919318249064258530156266218462105956601820279272703894636450461966921103055421710734629672916141135591639949526963690747035275223711406852819074994460163834916429979933327388319306991387636676508630626044563743724901952823351205297840324032938691751049115829114087152287770996395082593419145610874624997994619855554243277568566890360322989294746221889461314415313425174224727020985669484609235838279061348105085806377259483575335994908673651116670526235040747487813839962945653714907278966267836871817914230199145576091993323861093437082996205316711948183014531207424413048103266047481262248011897054736694170163080749138260811645739356374580113860433118400310961143164432268698255495288160649017559444466327220105893956482423637513879280210624624904652899185481776338269016711483610335467195691443920674671006221971949501119772591277992803657893102721319240028834865412998916399203542904711634765234180091952003189209072517584811710970279187038650318309979063856768122572052667695013083494619968775991521571566540600114346069740378517027621936430929306847183650499689286278825206699221094336582332857934947331500261147862229299588928009106650485683149876419476197304187266856042168229819817191585705740861387549839586008404133891292121951818538498656047819187734962523748688352652472757611827586874720990262722294916852453204641628732070364838466650014765951516562476789790859127477723883307756798284579672783142759232686644122963963354873174073209709522810167330911613325297730768584251572355722015385002534926494628126447534120223756444795309494226466150496519387633635026591629241371007842191419861661089411958012784757655781895268633889865610170331777676383589826798408263667258579971920951397124349846372518401199418223374695444641816213958887209982866429958397918889516582529117706041255870373833843708711057426255315560369215581973741627749876069277428182514539590692031452688025388272467662071658810954837461595212965582183400320011126351306918930129843634665223781041799431808168758612627601172439413581509407919254448336860228707175873363769148801304682391200003309922861101028048172713070159204276402189007892902963407161323540492215606442357929236223007840272837833393385022057416039703967589003382774227717720879159713517062239958823867065069046752829149481254120007117065293977777764819365770294481641133919164909821544666445767353956564409968689919547629558104747961093703341877804116805235973514453824000824886230044982023490864701368362384958146056025941476305705171972885173754445017714718521593269078645661608042183129780165358096291680479321766669813389592877924324836217248421088477363302781941556834942275318834988096910443068909483246212782475770968509644645291545259848561139886174871714768469862235851473096905929921402566489450217567285503893383821557700305141701459668021280736547655547889335408842997617889076362354122158788062651994752465851775477647681555905798343920297704605735810384012324439315385781534898860396597817791756852740787480916861202710239713727527990113363993901422162967288493033797542174376794379250209710775290929907345805668684522991146082956557297612088638961163249453162029351479207812438183973353947253388469648167494404803476607032779925663662861012077736749912556873676537132282611547322186181960859276077334627694378057669540365554708514111435064691885584986507022772884066726017454070368399069300245975501454251964663714813686562477416444510884377587005064083708324525471919742256468727009516627537138736976229686290264179184138611835813999796106780406859873858346180301789448263830559697228929289456150489531808824459540368954431773415843330150449642974722054026682420168313359946310325047122605795628307582172768290555275567561360496083997438260336276892702127867758172745439012627455720436567482937995695062221436805986281227000257169877179986398545397491813900974088039110742838662568716017339467481101990355091509377960932121264014341793086418446158161432772802961437220177824717483414340507639416674299167482047672380474670294475010523873361748253236202207695307324888311329992581960366574440463498839340269321786959927622992606801012314407541230077855765879075861013551593473071953407456691782925253350426669368393496084744351391895183960174486015377006926205961795523850538290324094984430241139440688021386280683650719356303893655692841395267585185920230906773316477072971924372097862373783661501768452513349841565472861717691310698129740900840172341801947918744233202142747847925038496225585645283792789499393896303215377528481593017933785826343902131741882831461035904772815417369887115558313694549235186132650184719335088652028310497554528412999049360016676253041531946177046622094834938072422663439982683091057618551121915627811257851730140544983642989587332078429904239670020553026084426356806510168351834610633220139688874062328415420223300026564992131941163042987644096793637112026552483374095565011383722033777603726873388859662417144800088358862829648507650529795407795815996123828481968679950274512137418021471385903221083849456161918323324245325138496988838302127589620388124697339836175377835575468876137748942267826906014400295798795601696758051688637490265265802260322941632598083135732488244208227893626920666955272539748884108768295273042790448860994766935708868234162477102656664961069085990408226954346866229790444544786012118733363978535424102469396612229554008592183416114727172795339394014816816248606661397080039451623843712754527494707232525971390382903149236851785394190518590800543492191962446300882182199034350577232727744416389951905921635554886090845591622259542578357865902213633220098663574625832506253879230838343366081886623173357041016303284300173540677453028431081591399578338018091952623620337977601512836818540554800445713751539988359001049433518182285435454131425189869325764254610170862811614157351226951673295044947090861929973265447450469058610513354331716218531522887188787858029266900005959236076956376203144214729402595376551481201057206756944856983465752756453683404887013355980540636347918532394122063967291214250588405233714120947819792884851847356006239331844167874326549566417464123679493844538524269644394417612052327879408020588134720605067149048202581391990872170643078257349307073852416319283923988218369230920084947177201689645867816574621619423957162127443029645979473269535962242518673887424389846895581865513064884972033250192148315570504668490262638112235328972213793300101241189074196299313537967270821454341900778355128054214560677997744155784071068323586639630501174067463715425722374306769548570302147230138230965074379078980026773641395121609600365569728262565313208469942974033027453870727165322709937724429001393266504528418614037870154672337296642668144442104817129014570420785879287319092043375784209072375216064952520071716762069412327780777442252968603394218863630424042231432495558020927995519046043045319054289998450848763388811734595149235542176440700662340087652010968117757844441718206071338923469167660478157071856510038662873872430885293062779281808397331741306265748915614806337658341022236067305293871723537772579143449016587468038221818509755008269928285552847913448913273286150768472238188828242671970824152782200319002054098013173456354998908478059867133710979196088127892639751629123127237651071580101717581514029118767936868590764701096778968954866475559643312010210946544567718247339491617521671771271538046539447188852386542057023053750984096305875247262909651778291426940569162243644793802042328081517856306344629096868023017124976363758781555264022474568502414398199439627266037896003659905139971422222037445825446049713575184771286219280698544507268384789237607390817948246701194962086767570944665308656491893782791405665665349891325711782598792802710775224686906198104121661004030267764633164987057365068648068255516267668219378269755222497737098746559533224876273890178599281700039363130584746879441519127250173759727763268458702216382170706773814620284749294137014202866153411752701846474086172689952950659651324669168996274498951498681461276128511850582570302542199990438036475285892834449804764978119140084106003509264590499537676954102383638506889410933196930668195485089973737394863409007386339647631773225126789428524049884254460503667593113752738220147320649120921133116224900907936644738747791563829569075895441329500128467302074184142995925650942285237818616444845512743417068504546984746307639720167883710615217387623790082685676616734554919200769390726117765157779866386233482850468088039297583954407591547231401455859736375021868299697771712302392868208468454061547304322445222152634606790269248131284854232594021700152321394704493680339259870485210530405860127026943214924666086546016919324666363953909034844295341092365606563156542159237534792781411715587434933443541996975312906833092563982309042052590882891332716370021732180037898764029554837703652906052461310943145588545547058502554060306287895634817880367706335707053901428346372415613448427894068407595629152005417770944210565946486533086411703423032721712578267467897457758219893695220170977317565609444462318407143216426087730836137885456412212051954037269245053683258226104468971224805341530401667646383682508814683806729305319403803790056494074314781176745396766833669932759503622567599731901441010516079095907944963042374997720156586464684639352956259365191945693732174120806825949727958471799754428229260871086342813241889361633638394872774075280969321838421482921994822964076334854411692262841339778884326157254514220549512635048593028836790007103513472787972360683548577193346482438538439736308679385306305513657774803655495488066186718058387353953825558704142350562733161746996714690009134822588097840457174524591101246316820486074685332854655449098408822191208859195555801204878282831201474478441782872857014743774784223779043752034706461071411453703972603627554521240872432533340174063683579315755970673259934149280637038906138230893626130541594078760103656580221433018217772974816502405374303857341300217420494401680949046258653825522437412244186488877557553807094835984670077620738029690293709937853807044775147080199124063645901453625476252156867718725640207190097910091332578900006326890510769069897028020929201692735428297204750785258877819510299585799110446586350976969505167879667497961843691513254462587584568390607815477609914024962300121062776939708413292310475153728254495950618184789096213951342160097277674847068321836111006137840240976663012624112170677607770465398386688693780446749844853059670773764129291176157496250825357761495133941530235343462158638973982361563300085374539721717417288901270709272484290324961421225323072455684276380656893080029348008402294814558096284293069209056710060306544624056851804024408770491767554470548360160874277938436432932633913770032555829997362213494463293522139871535228849646598080268748430014109954317565922422577381422386487921804813557973816496783228605644945692596915460225632620350912120703222665327536011760712284198627690925669989044576922452162141981374159438713634426365423670994176587204797332779443468569666514721907127019668452264304878090339704641125220517548553897011582037070769221783940247926483226381397944377377326424252668400463850477687081800633150662549254719678503797359504513895936227349935144708818517040228178160139996843931486295887969061711511828262810970886176835678718645818779271497627121940508369653495460267348367178333160909146353280804132955009737473942578491286918780645394521984468806200982079714059069819456076912746352532425856405298821182245046345291962031058480596210560854884239667565810152146959785729142624991474883166373765782593637851866716816336064959037871445566818192283951589163636888933008999106921094895969367622185309899047164623616318550587805271894685354106365045609252857613892379137913059879104859633820590000338608665143400752019458465909378343415935926684113311130926613131579004555100443317791650486658135928304544445894126669351865155964072137126482770055824826200281249053083639186137286246923928239895394630854527223000846546885821925781751433569664217358340932920056715032671542600551738568276734346494484754962510775836024086996476346222759893311724148165656216452808363066116326257231774198683159299924702818392605683427593106298375071616941911574457564678830420814513912447017330774312346347458623444189226223313777754349496811035151807627858585108640197017423669768331257528194017470146197807689647478183714831908486096853607526995631113428493767755978273234288326929576090310846577260281585025514869364989590629770963906304681542488505706650437158612771328868986541322718717180831388082071561363745566571178211771572032638602830035689976686106371176581502505311154976855606781312899687540922450703084400794739780092863347189109943681279475096977971945182000793671140956255318472149864966978944048487767486056025777061830254882620976513572143973813155752753055171300073136467663067579974128070927319502489873244544360749535743159114677895458379740084674092933459833502797730548913110775784677691219750823865503064237882615899725816857687795178008669686013709783234800634205417722550678438006232426678430495664791974024284084452298175659218485229641065008046997216499702588380386513499887697934182947230664963508061448008187417026874059717566388009424103570578876316028890981713115922827313365019003161268043950623729836667863659162535912567191743550041314958399485939226636938045753414634944370345955063118023927510740163476224472983610688998883595465208111746486641947596325929865922781529106965207991151958676342507049230381629966020891553352944697771767907699631196717867457487428378052863341149460134482730413260871599118468154884612330027046240046660874256651083025534005160318590056356525927512740825041269518412756056388540281924242617872576056631542920900913446605637931173172637390555492217777914619894282649805428720210473415683480736422715212591588896973589916691783479297056740511289526424831639008518096464308099652714261281703688082845703642802774324725412576466841089592805757668919864301402165907113729884553725694825642153099343026316967068840224774978052639636688161432803267183001830017943270025501971009659429521212671645311121544809985173947709169665502203311078906957828140018344593028142733529296117779779019207329981444368889566461646421136175986279754590407762350676859916669878352212504339571135623808791224273728842033908209868985503997804423833590866656125556118444423708273700923930633548633762732382053189003173073863712089725357096006149214148185205883843431272999488569360778024220372158414866481087910724921159842762368552879308100646878422610517095266595591630005431792504585235429232620293916440075732335990513326079813109759598728690017663335474102277805521208249804692127074345480380419511460465725315910437680806882649745489824503998601490204740657715172614054658201393137880036305295627630297474420745656742005996365860101316897825363382793997025907619726588445602933380805202396711494903227994735442075320864476774355437357099477053965201944469773980179683360457558032176469550438200873537941209681474879071327822708578975118208016085914655366707010994980340568330644595307166005110946729779516970321704011625397767964735987104446426967668538765122604248465589790316905075056159053973488698755166644485495333941440972537776290032821626547658413971224147617084946432735741464035604748467024167836050927662172268043795139808804385586737613483115384119787697259904846122572153964347002889857913760799369405742231267670336723841476344768191023205681067422302207960021145850955673727824357697067312660949515504326191484925002523582594670877725785104177333897757978380083498978607861427205384855860196583692751310948645870932153575800920239057952147199540088744951590114497037027902951260243471239400671406741346235817313875300737829697060482977161724893715956276248708764788815655356250539053525090592553464532817179553396554525126306501708562616528849201123465470480828611906413118462254564306340457087683478098100489823741123125718722280262168406424470513722949648438691813114884397045921320987830975733031665825079713904695799785790649625591360234173137619086214876492462062087355801393145894098864919416006652821951413374307134789741840591506732692350645803811931616732866726258269253250980935669158106071090331897778299230028888933547291121959873959553523978544370929976330479845084255458394653052234331272224461081411860388434378632394543601764649538605086382928424018249300452031123432284179206031455545279829102208399508299410104429814288984079390608248038654895778456680259512407203773004771901956198870267133545347990157613835889870770618870929508902278901861033329885425224506503890819962266728936347487824468014233177009983143108386693348188057508382381284451730072419428296921201650378710249651239987072380765329368635781042583272435844740672992670924732170721691987673418017290395560464125558777141774028658574179672667951190012143182689908899410144844107529600230617618629082317342991582207880321544765175318079858949376668648343677269073522059121895850355083042463225705394368083288941675016299184819850131286013945900805192516130676727154947060969678542814358104081573752653492810711690996736807013801509231969363166754185742061035486674746113772328844670795211297376553499590374703453031792158659589124226352906701573142921902110154659167482396843025545873181612830378921710248452106668001889103180796364729135733836056779986314935612487609511957114083802173758574121404643692255928329886962064822836513410318632927595206087767946183050726021041925253531891949057052769618657126121139464694296733186387861038284933170009681252136013359204329894816210624608093768586742493539053296132013707417742758194588390816077999014448924679019453393742173151548288411312652790023232150298372154549048218380622942595401098120832649403538813596330933781373136805211772690197084949245689157648109162598141242900049807995910062421177474873990963161256826717745828035057566726072830784383844105570964553817072253116122774476452312676557345168436392488976923796857628033131352882743924620028057151566599765407324425168451824141684597244138867807799315677531205782591252498043404121372800497863869109351854613465870481855706826297413964418668507213575826458216148781955045023574100436903760437573899346576498840019801350208423019830551977380620013935055920542245367465350563319251014322658796067091067073778251471506260480050391928368265724334058344556810635076117871376860780828924332899218236309132615015724873433021954810407013732671366346498685295964412287888651475114728098147911713878916583793763141597944389181848256356584142113826133057472386475328264368863328717598827912065864459210605499322278079535090529847140913519364861756647969266970565998377176978654255347072523135831783931817084168021689551520954672744225139604780513166127779950855252173050535593187056014762590396507395005458249984870451236308106907374615912409359164344646340151912375053533673223388005583382669898205671632791209222484414784595334064482456907230890303217254395416476289250911520450674767627483463071540429398814159341032862048271851803841964385953757737256357859041751933989874000947333880938817761552516095605878898534086304691808875963867504892603824499344289692734589145983704181394323171505598475250020270403659012540769443875498790115659062017284106499328214689015953744390674272462729426117586386848859201540518361811310224126858391907101372471231842202046584560418911149001698514027361526384419064366980459838561188763878403423838925737332443601349844841366008214285349735935354409802172328048045466902150434540473114300141916945477066779295675313872505650073904297817239887115425882532899709766583948975992646896986662643814427924660464442943264327994901073429740087116542568500782420726763773381111787521462238725617169322242615996094442467281887095923573424092944054223467587487612362223240597317001565916500912219239411795083169855574022095826178504119918949282088582681492021481309156698071703269415828635431776037536397076371865465038454609857413770030029824718570013187801187240270671449565880319674197029660083933922163524256559999355160928438578750505914761807814379294622146037399256768531208689060495508183939217728677970254516369935168754866478220788279237992027189327276432565252763714563835260238807484243404838364852974023889502339294969118358273941318645263011749912404264806985742579973600306674202108236978460216420472278301361694860873242694046824220977546280927696184222746535325521114752664142563235957835295105556567743792869579833253275144423101842506423640093050773702745347804718129410273403186751318064886683061524660038993882613419491313160997991537016887497842246075528212747276576189667810054862629754735006146891554763691162595449387822414069685370462050895544234533674469732043621772980073422428206703317668956864448228324654867980250079004410008134037522783058935712004343544910530402429699975107882684654140004317425792874639318777339897326806674861141570189059689665815508510060025452902030778176770596143001004195586224567674643015828131024463716903860753141858161202422038823593951220059268750033886518974873678860951142756970015652620383476978590247200240968133722874245343350823233429905835583015210023637324802354318151395841813889220407519614609805211197940364963927463000277236777742021158774693488955584414013746741829785300609309652946128885369251048084377495146735253449191082157285501893217693824415067102370208756668313581696699799197179849618174902681064966164125269904838113887032735956102676982189827407517624095294198119109726533314206409522140662902600173034414440267004931958361043271614086950664044216433569957865960322098100009417035930963902067612483610995830560863929189291212432969237134224835584151336450817957038879254277034790702047512958740379582891393918783085074277516321014557925234065982181821968769838830917784475784276066341791139960482165837850336148848057613600111600370991220119629060892439808716423488754994960632927564972542978201554862604813431596760168206821730911560079266301890608315102055523508988621271325381828456179475569537464702316503399157394007792456545317986835079231258407280536131686730884021613142746790011743703463080850104111344247045316140717346404015434516820075219001188260984595858513980572269931408459168439661571778315192084957850508425971691407432785587909735559768092972556263844369812221762601502619801649209851534318722193467400651309413018453440739861155285169306144333129758315536004529645393303820432642533278148033329667737554666356118076517996774013943916556681885750021696337083482091853225034513075074253361207256723545365188420856724893309900641446521821043202580166601463556001238782369231342657710420917627202281210685736594510979430755780661289537424314310109016687638994899908312630143481348689374981652481469120504286784516541868334393675317505420278421562677305689322155986351207710330415580339772578105177869570883311760331126484424419993230687593970332203648417817766914230756391186790355987864276327952441858390085882495575610654929802883594660827887055817044777958426153102079064209550886048310723691874007381114710190200674052058842228758558550035659590581522717526423467017535768238856377989709991383546528038539685875739681764620061127793620793702207075180121718207159267012990990983814193297533036182711415576846095381319875595998195291448800903699923713306136632246322584202045618377371125530380363633497710007407773075870096055226954879153550067208994545015736874879343987492629421627302243011469022820433805790601106346192376198952100546139679968593968205766659915983190641327078832228788186060552481361081310725889023124262865905426501575662319705075833731895010184375608218176174693666980305018596431320427384397545323204001660154511875904507772073586764861312171524627758524219998434718451315299014905101485299114301515747260085266964315916770432334182713797495579990854599068988937648303576523268828793713036872279298878350086284542310516241335341034463297786339457535470775872452317473916517654903852396685489841569619943972812988496597149150246164332756194504112056331871360996197853545213695906929712523855923419170407663093892923355026383743934757619439424563272854493638050281547557962274713751948973398788996009573846999054972394521466919724835674342190515158044735569018493704449652686642264626196018550350494577985882960158203738318524526069988067134421054510480803837837861085404646688583611558162615548402068314883943198253501963076037807510869363456685178189720097444595410095859384467968005523396327880944348286113167957609280873394115455069067157599903103263091073268817579605458950171403472819435398256729182506063789121168878363094564765662202835994404093432114262709900382535411551698550216127295593171166937464510619042955727710299516302556810104956479008297847134461741608757093285679219071674728092476572173416218845953638311400186423528227636405017385199049093296955928867976488755260997691240582931931136719092739546682215390784620154693916278683403951971481716282001836363003318382607101822863210732256881243732245962376119391210289841311926699433437854718369115049023474325944480641455604574147565506719870126713818347535393477666112080865653873114275441526638341183371238967196581589260512337265289397702864074656150973408245488894956266015682602396542102218467292359261877855726592400819436511448968774812649140017456648027922731724143773755261790014668220291858290220397937837494844298408754437227863575650027914908713931880051141065285091702686371016165059488355856435894341702212841214429967345859699365267385291579345964624704371098360310293989048578261075922057215916277071237368797823503367618897116550036789946585737023283448449352403069763067068589098078786457184727266476817221266035172699728516677943995159670563163374050569360769399551141082872279873133659768994745970699456483351522339289084780675462085421751125804933965256617416893757331039901228349678605238874369842945106965911266420533546323848213526946599130753207890053736453222844484877283898457106038199570397099541859114223155555939471662432133585145011778007890628644687530439943162657745610657035808897744956872234033792817983513792947279999621379211254328906571578017409304582903032892153393473107860340701368483522743478590864579395039125646843895667932328021061943914681262650161419291537444274904139337192094958501113899988970711065723753349958917992924272994028883444393128300762104876241108992262796262867337650807417141407433087705907260363204931603787422927506273949294246479782268932761315923576604356183798896195715536279898713403227339964732983096113905583538999623373785015832476421479937237641485842512223867126326571180953995323651995651718313788131377815733894362951503099876726355266986679666549440369124957377970240740135172535454191870735638846228089588051874926293919054735127270511872479315669044065368238222291402967385065076646607629092896716828498620216542144351138081007680731941978046024689866285943056486687978558570577802619218061242422104120465875346398415656717345252449422878696132241147404466335429141336513109845626914418904698783887908565540433433767320655170710792738146703721993751027504945331155613343584891774715381824952010905806275748836417781140471209510534678845058049650475464207414725551221563642847309925195615728446399077036923832247965747750866284953060814003318496826731983338223570982450209960040691490819462199959172426659537866392767814664603440641206033618004196525002775381256936016025788687029804899678065135669288908841216588872742197582238746158027782111310205221374846816702355478580669904051642331227119480000709460267047454735931848124884773235399733238706294242393809133815860063990239173119186717539819747879052029964780546195214042730114637488386893478683106555713023017122626163028067579571605683183064842278989329450123448100992332967089992580761564970744456354060526490462323169491535881037882761642491912352066735991497462873247509210043084243018367204454990807100369506161026653809611810941835817827673379924321027130430226987847571617534869311887925579973204846004240324351195813221411565210338767772672949570668079940213746540049820570663121614482038592546900982202042708515959923070847186807951422717110042304293376404913154813542932013706484068601650454219764744707692492670708333900358173019160334751773673378496847293123306567348404821118188601515064538202441993236196952452329970730341540752451866867442820680385579267975121879551579860091251964284744685276833814806393604059237259888136764341655057757254108099769917588360941804081687715532256897763972523169588997594761099329768312970673248448238837961750965470010289344048771561594648754352478618786731130339864480528259468984621160803018802655832341162512929134428682540360114006826189131971251801982724014854749852274472366527620182645754792991535168645484264901522654234891216166017607419081879366203726702563585445951356842479273346870318116573608118534849561998902558131698958276346427983584673525014835576792231909473693724735123436658201622910775522539577704215476969415323611157678623906037023828729118901318666857988218669126106036098397040393026187899380325232395773667387757707554015626621399770009644450245089469085315259704977026828265812629126784381710698721101797805718096731983257691387552058122145973770235901176307533996674047822342978916141974892450247137020661720663107097392164165394238045954217727335833778905154299009811791538519264705332550749195777387373273698333896406186173418410382467747858805248423877533669983597189366102678426874526911423250133712232530506024818300086876581431130514846554348155685171944912813942464562661037194907385029400722314260336025996030567740515815065693465581471708701639191895006155637736959918619683226484799059682153359954274302270624676716706861839019955096293394706964797939450243044229604098376023275766036592560903447751404925736879208721157345181580587352770047987963816461125810473928169214090112984727518189372074993085152212798366546610447331979946274945131271453809718001294338174128037602212477583353426056719898670541367042415237882608321682356526837601550558285327351061414715698429248286890483532433887052387916291453506971814356944049301789325364815579732308002239556449150369432538884091068473268782511447994350453397822506203397200924574792894918612415409460083844207803893092601655674061553422025651335250317583315228439410751900597260575452422404512986346877148209754685696349624633008081937296658693929204427436043899087588646669524065371894148148807537510172240086718970440237915437109555925311673391524437409258864734857744190490527733130822966982108297223048386171713494786128871735805662027850673731525684193561158165335392623380298719981447722375033667009208578371922107651121204189641835651337326619801932396514505174204452226512742701198627409436400097370188801374768795358801510134440370327341417936700488704598517949794517571303442065870447749957994103103460163126376321583540917907406878984384024818682519067963681601979122668610499574945586776619396225245475919809967954892906418993777901611249412957489448310161724061626716199073374015493393520326061398538335902665752117449564319569479027567814302424733339826815274456821411972368453014425120744121928966197586668847681948528306637175770298169875610929940853516615108353920979308979623830952153061675218501806980279112508467614386407141143870528945670504114551350902771553966477223604985712100393601529628395032297397950526337186735704032007396814689348764512895579514982082841614756370360208643824354991251896431092001752705591464418470691700236300163908630128517525873308809487128134753023741691378138995550927498679559394577239556433063200254972879572445603428098464462417342290131735147082049877346415922984363775354007382755530260377334647129645021502830242797870522558908778443157007417956503388742677700338546590522763537446603576826457169009414988224425238934217146951465642987474931862866926271200683898453510544228523546482011246105392858667424398034633273618309154248145837497199525211004332397063052640621598379000080116710284206362448626227892605771678428169642179066881245145692812253680191820111298356849895414387127756647682187091847361958912876960234576230286328075887795990170927793567763073809041606405490172883492488568290071552899751647265594132628288829997280285603923766416972291114640955359023901207514426766751094569039794517420969413125255588912045009025023046611215555916121224219531418313130655460961307118521192403089380399604577665595812602858512954523992007742365038855097924796391897334383570456935949479694468945112377465158827033177079919575737374045790003994523321161605769425788700327081244512516195342716106403131291754699540701609480901446694372754983697182932505826438695181750828739783904966043750970676208993209578062875852734720698485194993661269013850345818054389655032888391234221715911526577227008258821585531070660497290234210983449238196892415205274245788229853711585365651642907182822116731967237304723312495556308356355628351414896891072026273861635496633142083309950259532939502856348355335358899221156378059471623590225448008443155189401505692290789118824831679314451063831970134217636468928041855983212792981404179105978703556550914419467840941619148334691124118959919659613562065713770258278452861313325242032506737514574069262543030108417597056423348286405097948901825108629138479222790211555356880881075462805823224846899636384557752679561030311178675553335111008724777131661324384332722483545481760634344751666212243608679816501023446934872982320924811135870461863944426787643001411079539816797058369207328306518602968127708406820241095419427854414665728214328222769676869160915678181387956994955630320453651915221660003446529928949484948415452461348450174945342501753582737733221912594529548600366604723841153144925086797650581198237258542513097739827077251391992430900947642225309758670369901124479488703937609783030772517710007409713261179618466119468414644764391866950508530489472376960290181788843305155891204586430578410842657564973093859073735536717065789844522546062488477038740614748865823833478204927631397359916828534471982369199324720719281533121040204783129762440841738824183690695216658407006870013328975048159437217694435498089420828512474518736673993425255045602398542341347340571260950963031307259457347015127034853257163701680603565936211702162561528862421091736872815042139219420622149938637660994059231001451561443420613475093420770748734213260118327738944361116825146169873007729050590968509235769278715651649519592753764703366614957898841695126428949437348702177597502892780838142540962233420030182923043866436293529438843411369079886662945888965707611961797913854032097829539050148482295186708322714125639351453302231152180712443506892375562515245425268113321192272923074624079835353652898204849652019255389326331054505881267884388569242516524984228746223815129501872655161217234352458319618196426343397998153934974923534850274587593954506261090449478225842211448125225993246703900749362734585284833737421575834819060100956012582405384929401475098691383354528961955897381298246926243321285025176267106545747109336440202176790050626882921983808191835604384784166056811873851080385750696348506193029691984332028310202124334027614681120159585406646246947690326009360245109901816906719974309075976432404135389687641012275665544598304814464975906902903163151500083301038218934354535325194300393045041399280929804869324069040779651286909710295086802366287873346724517840346188713120073467763657891769196740186526738017689303255537768760581571312838838929569455822636946800874961282010155347446514530415660538679171524786907309027357738452641799990283657062056352972595395485607309615481716377873478081216800003921607460812003629194114792164104134853323161469258104220302298031914765144621629283949967903761192578768259938332214510263348915273039993860744675966887053792066902473926068526110914495184500963517587551360417137048036454811951094740112971222986352243699891281323642963183443287983999514925238796023527090655798281760224197059816117335237861277306260812039605575698566633704616806410533066196475494207256516528642895602966042520013373316673488609571868913444470804808231371679903850550294729029175895555602217880735135133137284144197624819608279541785482817652515142092925136637408775043337202368016367626052334694914683573179809215250462567626002997738339830178586145409746968316008354854349321839654234238669971797835896639269637016002552958317863690946792974403999053864939519956252033211658369991576560048684086031269026503216568118275131803698293461842002257143586635834751999512714445685629880998993916448081574119152059082687478565899688335324525825601328958002327065200196148780528267385956053243757264691735919207935059458003024221943279342032947857249514835054037625292023181190822687243440897914047775295510148091246696375794042026075290037563799981590621863651628216731006243213681150709482460019395472588645328867747804662430005202343147994207380270551403227248453781543085486371688170404935771496350163191795874183302814112830290712371085641325364652677772035356538623623285664471994711062248019235343884107573837936135328034360523794857863395096389415399136231646586940781848629774873576594403835695353681738537555755042045732283824295277206555735003873595544651233566040809518262372189859269018338943870701256083500739507012760767715574027443595903684750826834152586794239119854109816015330444902848780219893303829341498048222844891990085295172523799345769495049724500659006866904382545171259997104849161904774635805248877757742521584714326405111746661819329667519765128746939835560015058814879439718531180228055921333072142663330584959971465143623263033136230278397199073878131272639127080075983336078834718479350493469371710702980597150725104672468352031097004313759348480080916850127069073110621118136462115259518459097024248175642093729371953777240970175593963654411379289108986246216692442608824875780601462220332101256113036713397718100867044488510189612913277147029514456854435676589152368106497143126441960084237911453581546170439378180524145875532261570517532328551230949820589009228488805234290622705580495819901738784170169916021669464887301510335621381841906832940306988091190837232624256009530986576548960396739620095054710046337867165787613254975571952085995616905892010473325464625861458655069289657572505007557211027619942029656595570621356910951682853503587425365707758548064082713137380650359009407865342232668271527367272986122473305739261633520934905320310638165262664658499784252469153827361493559712384943142443812345946369904102586719841787574592112955859235696405863406542896231700661131199667324715296266506372953246398620027914818312563892090974012827579593891902653220908811241248486461518830712162845201380337766704067668635778074701116521993055889976111375912913962429575233620397868109789738496946290167439572727649430528439974040563636935912052436904482959299928285565570415598232519772323371368063333752347346602298008332486488247441549970095188126433701785800293960277008816145226460970021795484124673371692258470033296574452563831711910025973117003814661059138917626018519431763226981788103374886370676388105484554830103339385636472696443054341891175404580151840940312465774661293106064817590776893205001478138651579597227652169990814942571196091218020718309174665449822009800391689918331081438791791636168850003586300898495543694957660382556375599047446621335837662017179090502137813133906151509124210098024281632484356886257310445205570391705096692797319519579873408502045413322721604208085394909815368795840163665460383896376906227129819422690024530884838484227739070742832885183975084388805512719203620958050593419257894593925785147463635609347595223203546026436324948862007650679969333075475737283425303559952317368709852675622513822736554488278053588864757544967775314161270759513249404049836952920163278139123684513411186811012127852513115362196369639589898751005389227018224686388707335103396234810485711850994037651996630251965762280326893385968255149066005979437404816706668343581546187359091667019984256819387435387910309971707025864699669696306105037970256811763759845082547964984168400090830534459993458635970617261023857269893690361897041860900371584003142268667612797205901292267733005458794161668137557416529621582893113960321636592251392299647049053846160619519767853179209491275477399915589667130091064494759523178078729851689670254558270228381564868622587533783586731161633074316558398498881353160488939578045099619636221107886867836046058344179379797506855240641601564044626542724506597726091716608563545854328032457151525557031898584409345132418388356000174273551761260804706156270788253328645460244184167731225255807921476293518676155287120025398068179469192016268195761660235055873244023451529321413241346467968981499563528250450422568528530512790944227290213183588511871934833118278946373002934126340592093600818977915789155727017252271376277886853129675624242762342226152636097657335112456318431794621963032556377866657095883768679186431470738665847990643124111026190493036834130956745812311739502555380915218814194586793629410158052486557777553875548738502349301027693705556346838595507567673327653559094978918698341030838075827938091355430384547445112484995464058880175326514914858216226742077750487484979160233977829745162000038443870478771727219423849053950630750677387184578912149828203325770884771066622070817408414411521239340715141444704451330104546715171804095349414042382751081056239221747166848055184672026634984622629888966007906971812221660262280695888674489137237732070955874955635772190967190065813813685487302437373819170965039761497292409829708874470637980348509307647847161239381313547188050111840021097213336654890325843462220606506238474918686650046078183149684948005052585462772322610427784319662971403986243896422433319795654259918506120804873375586687818383862939585676815946174693618737541843083558656954929595212285985584848518430981065013108855664926050211557391008723916822863835950998978697778769243200094316207873147865215824985006949210870916764594720185001188861057950564929388346430647041586746807257417867790068897664503641749882011639401800790605566427305848819816165032219515413526973928951461691435925693650890452367951456702228979505714496913979473721172760861605004579135044697624098724531499135030347822209335814431178472927812216135135540082838426470057302018342153390763780398594785930875160639355721566171259769136532696804393908711523271683515169418888624478253522853717223211279194022399918942033984419178422293931857379073426108339280664713262415110895278667461795475652265566279022637390024408561822966597900231636963245797131583697956012754194406520232844844965620847328992908775508650929882578437721850193313680976726513721854971459735692140571525412366034942339135462551762101846882159416240827318437257572877407309320165819454515935304061642225283751808301027695650772256628339842626134113901582561573850919029424969833736239057007149665563168944313701714615058621799064595214644350441751690616954751698947396167008062625886688902589420391088833576070508704365576644693175907416752413317846380892930057150372342755017522184302515786728458754963803321011611560493601971315371811705577572496227481171188908715669737085151451189471729852237143709615070675340210120538047992970162836900157439206301928230622186600497162617347393794679892416916589654479022884334549952941891984925915803674543209427225609889011310253959060895484419440017325841317603713562277215965992924085208568933411217753972125150535312033733174788916301474295982565740790368269720655179611646550722851816627217099956029353523515411678916148651721126718422106636947676522434535174277068692505492486998531951577665806998108584851435007384722792456698257895044520565225672694871819680254490253398335446374675719295377339613408197681306038480001087578436363698403573481901874483200005543309366659899944289750209134358626348802855452053071257717076321090206544118456073478601390099537223975762922385245782048105841951698898725936625277469817293622690380780552196976663361856913064327281771245615597541445803894440637919478891342080587144986592632845713156571659551705632605468866221857432306972502054659652636292716763174830688218540633198257244625286663099314175962859873681648732086418430062700557649918725820940921377361607231387496091488624562487078502461162972249292029357590739761993151278776655108721032669816825569915556348553083306566074703179730171068704603863981281151432906785321354782436690420959206612019793905549754464809760804746316196230887611233334757579387064903242817561272654675324330674786504728471687028596627804283006918354576460105615777683537866043050799022993097779134539142994181870480770256601851195904090351563948663557566327850543893239670243212236284110579056716503908147016370060290358322319877990746148593757433771684335652077872973092389798833735813677097224772840141828134476058971611900963594896127798632497732120775456097451425876061352469417673375317984356073785682752265185794785999269230602949687779757177317145916909362069385339084146198220923217548383625890791039188648766133475561304585971902844710061677741930715487967476058422151926108477926109951962095102771337238252235618271319212915645467304626896556105462944160660962676110443919895849661172939215272270356053870953352827763987414918106536124031868624599914817878523159490557446150746141324197981615754182943358992857608807907069386512345250666280136030592330543625871892294991772176798003159810756894530602333975811391310730340170118691311084162749932739307049302215096927909525159602716132749952605307438904708078740414067129284379220505137967520922798918609983126032777155068715207080987943420205962613532605249805719198349353651727194802180592665267078191627444765673078011669652552161628077768199854235145317659829843749257897835022805477055973832051072058702437160190120672374418826328706313770043382289493367067065383547247651536169118299100125465140748139208982124741378518775307736784346266777233566782512588880963664036239167636344623070738109942873125520490621792779699756664420029588558962720994042798449100228312487733222958546831563062350708139172507026608347509137883133840530029277274740083677101003805401844359845174283087375511705124235306336405536996082651112918373650425130869235114894236150318140343088643889569939626176096066424187980769343627008392510859245883173239261198023830914890707164372960548524338474041037037815111869623843744401726863199653688700362613447502405710099192416568765783980711417768445433597679350834255984189814131988318527605318737827714338546805801466392361893695312675225518442361656420910036908937396285101013938550857450424222059565567252032042159210484539691808842070491169108106182702629531236424560571418926843984476916914036221174807205417467199068443133795719474769369582519739584788153282253286224778673087651054155629431025487907005800688395426909432025343988408558492537274994998362781385498812289134879521960055486676420703393958397064833974680367235301378533310024264424612042686391829872445504141965751737213940945038687052767653286012460846781237815785442220729522296315326470832528949496355224078039181256663437694511460930975692091917350442639692896920837943462256745257675231991429413955437446802910005654564634478279300655557315228740255649028257017208365094944510047923865099009060314458565829381630849331420095826664893382025858080490257403997980422360116181102074036883618660690550781048707981635167057398848509362208189431082055985802404972526438787045934620354415981432367595655467585312026541658137811914622582826467807174119926689404184179317841131886272374848202400042724941150006937480237118182529871074706807403457452183278152925048007506290305305783475661564905605668731762982609171682995313491625506411873397303375984205394727708419789753565110827058341400438479561362893282117360121467372762890197607505694011656463875085017143575623206364777348790168385056159660809972989022381548592072907248047304191490303561848731406819565115838810650709653236695910728453694092948980771990144695749257333480463922962855682127469967940600073641864956196347947207579496504850639310664972016816728032479050278600854641672092570757891475069801511050986030249523454777208134727885192571595263689103078692713156389342085866001214172278109537232288854970851831233458050290110135538194443748680652136131305732096863708676036024194644573884387257352832201239820389267184280226468985620254617541056570877288867523409997868600050601792596468832291938074439050823089991826508142565689179224639582652265764697111931697005947189279869566561355906157087303617507244940040899293936750217448910888442974204156868216497958495294871603421751804058158384773671304772809181955477940466097913117770281327963226862078368490351072803618670038914995586211344430978781600161569935055204357198600144914439283980337101425696832638106482241907915578520775485202170274260038764255318023470450112918816506402298992545111168722347871025663865507637545263820913712627175300969293132223912610468356695863868628521259482542933133050254327318659935771146212313964755904484939795145768115377257426298471563409999657937237046387290034148846399829368202421120899816944311284575304083882162395905308513451874941017907613970565981029517559994545408520489654633115383444484040392105369150099509609940170969636795060120826068159258763557228359936458796623030683363292723953017891373888381640253025325186126179229541524784253375344332684242910689349933344916336575526304028905929100225830675376402132478026845819567229979006442105877604253045416107947700067583486098622626477925553877377066731864898483281656252003406208479942223528983389256542632654573333992861765669904044944917420492348519898886103666297926883334649107818114716338219374043462575568888035076256794327572034955429287379154700924261516572001814031991806265212792141548879700441009797952209078207945682470569372417099283294715689287818285123446583023276391101204635475047838779131252919940606419424822292843637356718791332090562759305407786591887241379863485810067309348301002809802224114770714798945793008422867649391113760253340690062487981655825921802640406933846867866197691337550198947366348593592007600345938382304972265131439027687628584958901776652131215928502005402673128911219144525910329062018198356129035355905825655499537599525634470073003934134038508589312243972316447933952843339810853090730367190873418994182035835069014783584983262751907480801682116230877172175132789486529850452701084452136234961392798909694842257738293747469632271332201608799586746394405434920802442869766155085916596639279608474055308207856984477084652011171577170734038264227820975684954350561088535081998131946767262923493803867820423466080776082883574607226622375711521421306998148454671688638629125882933375780153263209806192496388898553736868394606613958654994826147643983864608635461767428671546792826652225892645300681297367273028247834504240286936769732837111801592621379758009884959465947762147111262442711195654598876673009717388421391917076923335103169440219080793329234122377876901500873111177487993635045033088321633827306272404943347818783419986938164849589817356544025286504641474152962592131820234579626873773834961282239949892148315994127406214509133603806660829745482296213730958075031805399757631977600630082567330011292764139793083418549900893441756979206681678808926489733460997900673005689036765270915159471003934254248113383160788833744711629160428268036284904548739418173009257974107563993536612809917110737805016529736576847850931294300275242195118730883110067517863785546193431596440536853200544031360554502598558818093978785481098915105822417766273258557074525457253236389247376594860130382104898622911529093365938613215223882333871496471978418286436128584019543976401842154391581972695561112683398413605615586773265148470822375229319256470056932510577490699526407303755494130189070297055014634147984321291072656464170110853377338698513968003643758685740002376715430442649323159104854104000014512389340937002513019190431236121792629680030575790716730577738611554683594579562295707864032453983807448580893691510962446643214408982828668652365883801878741349694995042409712303215498543936433391284545243105333513640784725037718091296026073993823292075770558500657277528264643656870584462174882950491650053120028067712813420442719565484582514135067224007589543472947827282609680259332909096914469411187752254122806840600739832997837258556061024064334525070224095369182820417124076056395140611433233049876912190494684883415808568817213625746230280148655161635459218251489245368529402284728810071402966209802509487225796932065534740372397945282495118864120030114705137389413166615065098279322771244146122954290975217025656252605119495617178647611773852607559754149856035498753598396556367599428634090015159281507621104099871855134224549548820312818476294946847569113391683835948692302893465687135442527314158651146388979705128509516101530897166684674035268736474383168234518419805631572530500382093586869141107690760070087354225470298827491859467581369159655941548096350581829423577635461850098447223429654646211034249520977780951468753363624989198907419880683875283781000797511484572656861167037232468456707847671637963524528421510771611136725353760988505039913322426384506196594308835137037939764007146607580163490672423770621453595250636779581599126005939098994663157743220796628843679518148143422224214792249052542268353664282334129621813021051644925327542898579573944785671202158591018041210581525101680488383697244842492837538033017796341999023747084335196334559010606528374052398397362083172631383591592106193753539070010504080383579400872955280089482739120604360954665301626137758000907148574947624646281067199348305520194273441017810254669312518608333922479546834114573267203956194660826270331705526482859193302406358545033410497400974796697949662736363091042627587885244464318919291462509700893646318458978730991241563426501527410749956004196201207540637174237960333084507916422575916662902976766412214824660236729790947983301246735255634186656893706528141587369997298334962941160639739939863730029285866442248024109260888370360617573382737018213466417722125064427375611665021753471895668877368231420294899321972981314012833433638229724074059902111653405720351332692218369735599502344899623118589871557812084927219341364300147836113440218674452499845643251043843198262137032719433045169530923717675036825199138442107504876414886540671623358341853678201806579556550063634542535371954773863599046937387018012746880001088671408409745292603951007958844982882945141746153642020776074624844489375300989012009082700725435296623007498179023011419329684819663083157648670458302615350818401584048651660800420223217705242133366163289228501396314157511007732667073192492739703918551108756211358981557828452868949429299939255229618330781946072828390708761236405420032083892989626270621701950687055920935492042484949800801610216615088692929797776468976514744728233617599264930146914539035608488434148220549957534544741260370833996827444224992390992947786941527116312504220165651077396075775230145052790065456860721800098729211461083193939150035025250586125621435486193393455020390731120688644412281411628595107464580057335572463217289971899104919772709020556832494025193764513582790480773652225739232341013846613520230864881351583302770524125243123354169418427868871227325073947914772010503346459037860237879401617798767661236218090078735720138517344940013101805841471645743427192926747856964625466373140535977920576712389607180707122024697472701053184930980651131646117516996535883631902916729053163412892427408966473199106684078970985104785805233648210456861667411543705738103520715129931762530153732658872511759640718405006379945402777862424075446954618536177040590302221933342878206700032287134219626702512552734726841418418480486779140304854328147416287435016366360231682565084110514462814570298835710457555327680948971787294116106575934242518877197547490617714217200509034187921933514011552253667034588314262856262530904483028751746432302530687076725062986054980259826282054080395259188738141499436900400082410740765229732147204600002754383819922859600949599568539736710698928209382093592091224478238379820110814131476732837210819346047275011625505984534603437972067602808118311918386427037787224504363980259809313385716434697385420717604349129349960154918365387844429143687851974765559270204211490628919826386596384965230456535762208232726151307214307196853972481151047947095913834565265817519408583420399957441614200542420848549857703572741695690655627522467954605174916162641157857014569261709628438692788297221648747010945970569156236899759914646579662367878270795580100678223506120846800362016097090544331120287123058278789207115261186991178850176636164221581009004787878012342685470888217045408511798663542574424897463594010119223849097842652688531596065385686692375918635754245855953980814371560466739885126498636998337581983991568394564566717602207326798814996430418479654373271627534139625994791178720449422729071480984718369231441467479602398148975256983383886957264038563422839688812283777749571741466614185828556408224097546367729852627382515843269291201560286708643261535598528264473666078765876299947985991940801164374676986859439149025115491839225061170490169984364275783476794266927926106487734695613068458661846309358336945424285286640041442561923036530741755624055910521484440974141073000794180267489401987205976223064452903481887126304397760194210533327883229882024464425457077808125382117871629698827900552143875445693886470302970958802056671176221591765236014287510212383764701601038183377505507235927232780746197745794789761884108350013771297803989244930460212644415571002757757539310010103439663602705639859694406542844918262603884999174597796252569619922146656459313344761618678214124215383469300171338018453034135210117590365911401376262516781541286179933341618534428172248885251208219794258793018183833096172441272213464123748674989002048480226271954333480668608660685793009283755179607226492383622527835032488525438298526902512460205274570587309747609943844981254833633217201623538179902099272338601964516036344644020125733602235392246245468483678013615744969336534615641716767957410626395192412778144534357571198456697545888081043821727454831980411166499206514358796775988599996985228528623696725091209651772432096509968167488135553831291488136769450386533935037909639389144062081051287057770626786135295672350724272965063527537257001612818133141839504116447053404588823152618938337173547477826581032873719949934860306801515812405526389259183746449643282478213525521783011291812589352113166504563608968388867008257201969483393241784288610347180164540635964499341347141187721095653137742571990899769217967066911481916063687002007329844480894789789210692798768715788200854708665111000365496840801984947027199905916867927205738669220302797769186069375229450071528319061885252150796893343969258481815207719219485293664176318471349876446890251276063194820891254868788538523086574753682420651691468211975209233280312355307770081942187769228619251442822502872741519439451421710894064332889761148318671705238667971839703743066552410955862561714186348559862565306757560588994307326109688908432277184607115947780524374193863632414056062650175659411255310263406878975432306216198609903228886401244734162366942501364020345736513649775911079623504614646196108160144916146886748553970355307961999154310418585464709716630336621083805948018183973966871098110560834419571377458379868675252583112391048248180360283853697281367884476589614129334442780578574946887391720510367340519515695926008184823195266512684130292319817727601961930486086804650660381260874152014915412105000352907823766143882842340680644584609743572362955342354189206534128484570590054073059333250644255550789363759451022036667741214656681479388048263724981912518081016323331221942230165594491234089206248326451615479938104766704406660533359856250354038493389075850131078403971442706405054590818410112135677198094219636494932656055188996986111702645304202878981419307517539654675352148842046368123532985383370016457671433788035545585489645754837387313871007766884985958792856025671256701324752012753373347445175658708653748761134844226128940576488107142557679974943770681294999322077665416275835852169918922434862178579488878437323965773572247019065970447149939394051518333468883376080486897549996999442207369097979748298631773803803038297135891610020625081897937135167446366282862415887062748354631338782090097264462144746994337392343968256654228223204106131427669721365917711038044198664607250827075052073259402904380056194694956888396697889610910988187806415261720701652063650717322782655971416798919877062838090982498654398511575104774897476738117403892644304207912853265777235990991389112007123389577518435625266315144455044786923464877758135011866014273700280544239068507316791236948067627124989099896617046110239793576000616621902516239432092252807554281783389995922027585276366204983220194453687795519277845463200463926034903208601843602216711644789223348225864811853585080781879478381755787995740050173847734583564460818333247121811896053913051226420997393206655605044870215674694672576255710922477114163152993973669798213129474259891782672728148947235794877731067564213878718804036558143088494806075477560784884756522607233828707164805685690762641513945465888804612345463277797221781695404588909599431562438212925711889117451034284641673648351330279105149305760725323657585795866008641991438738846425370031422670049523312722072542509909550131415271883204479372440014938483852775517096630236053806198935248891570594557002887750122207291123353527900309337749123412093995337274049976213435010650502684851756703087679232647705301556523222669706525426280216674980942649999997724133980851378143388613954997207104737308889878842903358888170480405426686240382008137745081253065795825390090927382197683622621183779572356823101773118735151402544232345737341868675803088598927962215617698728517174243216963119058010983391298439717644408570617841096290916412899047036998449586647675821737629191126083716398584030874863104571780990673752723467858056248113236939853630328027502343672777655920805627977340856102347520582370805932649150107712960599584585569777005866559032948010566028065428238855630619427459728318264770059025824620228319043808610216981124326028381282471688346111229695638022246203218466814384865002120425955883219235350806411722978756516832819533924588301376913597172577114659836819094053446539221562688939992460874955062220342813454501851314364618948785876543625428434140447828905844664355110351513782476299760299120035022636564894439222237035769242297991653427553444725390602908627102036141374391736520688777313973910196751115935476679938659757404085027651937880244570532394197725711996383179727753270427904956771412334834872220007983227466316037320467578025532543715525036310839397420930089405943023381588362849836643030375827001004095419318436646994164375697089173113062956526993568635237269272860775956344871530694331987404878574344196675326985414511325892333927211307893846926553177821986503675065366136021389406628988524884971975773998144925203745301628297661149852732948249689662004140633788953701462609206698650224474002490368194787390572189565242276854655126761280619513801300707339627044504927371859066873995222284356063446181247476054006159235600624931176060543786600060380023646263808540028081749703223241806062752569053336483109591528603096787986649046488394249193450002162671367052761032771366172715704710676938187936567537533615787759140157572369897028057431004170927010397830108259886642327021008036048779768217539709034995220298405456555804356755051489530372944433761024040953400854478534679197761393662582822533573626448772960596776325693937859461594620421490048559013528954754173429656278090982909880302914480454566093873402489449394841554744408280987567320636914591318725151032480404205509815363918809987121754672068516883859912454081337611167480029290582528399422056477013439197732524363889821885218025167588243001938306969626249350118362084744458208220974328447077902851588841346465185901963843700287664492243886492500374360325024352052629054259720287701804954415116931737648011858264053963884954365554147485110788940028774185663036106587970734092207654975610266783260660999886591139709206537474323913799567286158018900465889373805301598439113552750398128573142312166425984490413048473257062476111808716110230788148259574853697314599505506266897548223505547499779546872337945954635404566500406432126770062849811158545742262621315313152060517684951552890834829433754242667142168806480223121671848741203937512029578081603917703323933254011247723373489734724362659641841826252172604401716565174597399035258080278744801311334011351385776567389699753897250374732604600664709131588356276214067347582001048154841046559275724147187607442387532838296628955522223469108950383870023512069678341094054138847601132808298472044265007453280836898962093893256390138418227778126059106177563161105481139877557364577618142427913255641872411709223864490272685306700184179365898241780008395751859032253152138106071940150718504889091739283848273553568990831483514803371641408389665992040603579922620566026318959667382007929043279329676702230801401225079080505185700288611190671008008289229798995297881287166372633689127298796267846200053257263508099804128836819106815182303336403969495246849478701710458285962863805091360524996104256434405251757532431135115718902564958229673521809319783162085512374101685572651381763665840805879278229300761307272874798113319955107475554271876019469792494440479963785592500002968994560560443693361092020873701456572187435315052067507008483919951719784577256977279203513273744814970376150342702192027772471076551945309784199167203899656793711219391369329213968900070876834445316534506509947236704271157261209102020319967101931403692979256179199722981047426761855795377037954806649180421665992145565323333566118950441238487413923644476253088544728248862307493449285678601617587140736174225811792535018309825877626132983087036551648496035132564690035510514670170587365758604717450883841018342094455030800464759301092214409029865072625268976058907389014532194966533094378864407973071859478538817956377532267079854975651411590404796623018634469644760873644302142858823242981369463631900769688957816826558992177641925206874691893205191502472996332491474628008918325612053437213213086167878592754744546502945337681443763465862572782947759137581160778208472511979120971580743516723813727232039786117871240493713225682022431565394784861180979246345901221143932633575063827653246805039479962785089007845890895724349802540307238352084162938448301084635144437029761059576219096621503267820496900318948116268850859148429043811881904190662260423113753013540966363514303201219831239485056119857964344914368860619670628780099903243793021421957921890832930764143009971133881425220417571448088566015970062140034883149162285800432685389504158566578181064255168710768455002323303894643356175184346392024901297455393152594663578150273930254177378823790074160784306904364317522745565742823396348472235869210714320712503116341188005300206811262107084526101339634063162251693908652545464240638713311301806479435143012983806091914184867316496361809414219749777347934642066805325430258801618383755582772082816822691737519578513867351003673522594521154841528379615269312194055080467914553111532814220541868664529256426541849771514815635189489097714222150964151113921995718665951642806793364653663636734998414949380120160288322875332042749795539642625413361992099148986463149359634218533801540361477065409066452568016080139635460055338319478086711940342351950957057430208330487578592374527585707330076097850312298313439709935120006135621522270422332862855509430685693773796929371881978312553355520482210339037318803801639018093594915894066143447826950894584005748302352934641693633172585133655083098047891397886333817322658442788558691894024776109132608351192262873079483884738608474903786382200314975049336169577389489927777101903285698147634844706514432700186948972570725047534878952525583078901036839167416742552318658260940134184602131006639926597127159414342196712336689495810705058128203175031910149599190128450104368630661103372985905188447327186541888504428015393395403942573132122737566155349413572566396399625359296843870169448133537962637937733816631018256762954519577499357685225456678733235701459520890168201809983397547751558267078491261630750773808415751588591891644740514825465164127280547957820968223789813044398762525781078714418394000253708444691592367818655470622150441460002345542252394048050083033756816038053290388696420136127077578026330039775555972241278690575815658698419923078684376173457144502068990407224614454483838454445345541883692090757183065969708392501136195639779327776390525028341578845502707520465485365882512818169899257033847387640923602242443740913756767793047164107034782905452609687793489443420016114916155251066904633773875863245903541132034610561990621870374325820460318043513349601001600744238928946993889111641317922408815870640619482849134151136989736819091444933751333417095200530646865254097837713644753205460417028608028133542380917433988591933463892424826450136989737813105691983618437583961522884459438117068279791988644135540983437750522482712219643275448245900239445186503299370255903904329882053266070449669801262329028835231798604102150053253468878278366589414976074175578341416279715349374234956530660064812764921840804623047747721835897616895049751299193894647289455748538324424494695111780394175077132029584112094486760155825982978044341601569419894905345477015570051718232444635833530411634600398722209661422311209319754191243774241868356087283732326496659396523779870994982293533779427779375985608376914843653326066848564612226592702669964493085925119934379995939148348712385912320742015576064325359428594134869586632570996957340055934931611406820598108096972565256479509534141024864538445361451412609922994643940296241014660503692071133034758676475346054561553167127145137345320337680423172856751305726400740630289877986891068778063733033131237428917304398482749425287695722418329551044186482174635276385272666576382952329210697987082868132649863932624587266514798941698438001241183784639695532968378647341582687298808637505380197106736838368578412312341191190040380674319781836695656215378424319222547125120526165065549115295936106395733324644697455207226775319523584351302672238850079458474199103245804602744593180972851474364210723310139363646327816598799960982992369976600144774366193612081808409097253369640190570860781840890827293289659151254023098221063158840995871382713462079570996346326114185245316899420014020682173713287068273946465299544548399422655193547223119556264866129451248744935540545790392366046405182526288502799442450237374878621361611045690204017448400426251488497719646573098841766203192043375247760346829320532055301772912754518062687697533984424930609447848183289451883761954446806772238749025218410302010379653464010539521012689732492331533599406226916846685528538286914845564875927830272282999060306644712655420495369746605511967944441510749219121687709845047950735474509604180935004695995576463851864292089549710295156500626667315202925371131779337326339647020433856975708691340810814024519318204310571676905028312720526830770464642982756852896192127462939303475447635546731917972465228071075514956451522823036064157635834719822720232331868146577926646913981727299088039256967350870518462570831280097990265961238155707313506943432273925445513417525679338529727940150081495418626724944978000628542522753456207360391249454160139832417081393365379009417557926316236167912292402343964333944552810913709762071753671101952632691892564820796831291217094440763504879667484844056664324185865738720970133757292559163172578620571619276067343840422959257066385172906543401629455479091906891262933800194047462453965795255041675481567090484306702137335042686996803659027687944302824686926517950957354293341600398978006501852044812886034927824328325154265517050105638115208412647919060010036858530298307557433209579003528979618827637634559190732238845525665951583311480709969767041704079471598162709710203976076003955715215988865538860108960715865069061232797176052342939173412477521098876452379370395454470042840226647092895085127782188854139477492061154131156905605949464850440478854789153787619140593476550763760849046664527544187718948701065666458034008742100868145475523905248725609223491213369523608086937755829366543986584302913381004042949009044881082520193153156181712563665683072365130609398299602828214211708810933400621632292509821237042580197142381608238034156294252047304402705906028368110875261439151185655189545703187862565136403902397813350866538950857045369188956721014480074085097816160114513283511484936166112098056448076128128552004856688409767214348381851919930833435962998344768950668453770788211302706548703792746108245190069329468088333967192858196668038888096052478167820789035693549070155045083291314699395531754514750640204960642666134124927661507046066349350559193677995742849043532745742564152928468217251525242494604553412636780925579530040073905615576516114401968738721780862592335476039322523240547136671117292465061610379416809530153580321082976606547899103806831252825454593259171872775729267392937496432346406055842338331683379636499162247837816104731157828866888067127656179303340611970194924404171118180199854096613789574934432305425300842642564849994618919794018140257220100121730242968634153533242086415297364869086793155750007316357013915638112478095872563852690502177223844342618959595129599676753761495057733444152057821937511425617485511668841153009430636508466271370193987101523564843829570571515386323673111776761998934391883466232341523057187452343057032889927917694218248278772741114858828903122249179509142237332319805656966074562358691267962237551828818217033346634253962492970020301933152208826855199010062663761985150584143935498613104055477759648029389427211108255094030925521387937437573371742642277727665875985952413973280040436642336280497994825974839989751184820510924643440294746861429833437462408429745306087455379983644864738830407070996851230060488929981206775683445936272583566818873994601347557742928371169025657382408900486593534674642261404109045408822358058455186321372433945175865914599732443862588982761530792415814443330173767992911668955607477327572092219136508780090679717669413751569615745472875633128333003351520102900301219283817055302131413078103161290866459670831836677773843830144317048029190881606690346877790510115416107483794263473586786222066621369220226004140417495456991764887585239599619866798664002095877901240028881541509256690083501218157559571870688479414519086836436257456713992948461882897723927105669269208800468528120083113065842027985700212941935866347307935071261919675712719751243980985163241520318462571307178041640616822243279041829433512786386136693166816112552641878139364830708231642951485441823721583571029550366998311234129577828995306337549175525947745049281624739964600737821302928000389227565507184397687193290362664648370231287430879228928452658148304238947862199939105002864655600708163192243628610149761972095766442018301920214232500776753571129678514210459721190137802066845212017089394313699233420728624120134876746457890193301445427576065586506823512664602443888368579803567827590722076961082763891685295509864162330739254037887015913364007962635009831768472922009609216942181456649575768067398364809410859730952294131984771513434767576419700858791204194994102384770609590902368450050658935884907004040146313211228132873891434267993232368275819489438073478639423089207343344334491970739789426137236196879539040278356767051906944809491033475672015256562356110544273526057848939259761587720141973688645672349943683467016188701100340731947679300256574877615589289315521458943993493885448533862662056599420754029760934941380398792228101640737544264114254880067752366388466767305795067387730080259744634366357763349906760347076166577943579700590002182990825662953272462598178754010135856553642443439435968553532456714136973420034942018473044709992028484965310634591679367687655788324934943464523089110023093017746615763202334961733122248399539999762826569083059080995050151631944352905020726380346124016716745884963682702021585937231195247977613027852002218357149578456688531403402708809787879830531774031033866058876461649998893122646609261035909649159250212848368934764912257603178689172347968215332327297580538904821990820771184024830559517439609567843067612365664937852878356948678844764042711154164640409469411610260137138941224561542461379694212649154933200322500650857956572986506303958479847037024083698576137616586941943462113747890826879495216294310220101962800532711834737079548027915948763104337339313760813811774081368313398017653227820047681982020622858736799517753615593659619910707197350288368778581692042214632078976592268948229430035678747714788325723166931329904296606211148329324802017248770094503944500012149656296736247458021030473072471891993327941546857728438773955290198897662859984128719197430822631892591270308153601604122530275819662608000890697265225958936472677778412955399152613686546662121903801095736295685786819600883120014460759906135158787382602052882920800210371605736117753846517991444334717788164906598731864676351172273692694943890440182425057515888909175977093141862934940845420982840450078433198930673300329568203014288070219063873217140839521936417111925739610234650547394174445404333197454079353391166406395955926052048455786268797024864580932853365218650956693879915666274287308150199245201999459950576368452221320744790166263107163092640317733793425346324148793522873747345514852425303890317735606591032118077242726741994642832332183766061307916846513169024232737001938680316241330613249107103004219310812557313192976975802064915131234779996812433005405127930160865723626088652102922208597394921543947664843692865154554916286253339062874869656835451774122482095407173706609797525686043065104451909475372206172440296581951821795459606871219565914011745420232920250588571694382425961634913274154090508783263269953606258849711313865807270291407150708974504981165321727707173904379502768082794102778248360672597716910556966415608644369779720083098571734945370809844348527096340897761514393234153044547736300534077747651170083705962930507468114822922457107874491042936660843890669627798226783730418411206311846382412052220131181752503010785040622993839426272533857453652056412115198191648864394760378991767878305524052804702482216490722155792609589830957169777393406327251214918548097666293368024723662897932361184299164889532795401974072888216392930951231593860813614911166121931751669083084190825441960561789200530572266702105950323125068235764833526908099488263323825674245543657373915477133860565272058660673532224427128458220721761312060386969948481261160581763969093927214068317489523801836972728328680451869088038124942812227715187844728808066100002226508599198821100486947100240389506207265191390020783378380481644620694748033736094418240716423969671165587526935755787154176969992337604662069074428516780125313551562359640000905310129963073744138061093853141481095683626923603415712999586368676759767484780199054785509371612359034071761800878224597775351461436924663394385207735434918234171319591721220508245410630227448436480960271130071550208444187597686700684194408095265656078988490284657359558129088300942291711505365212965608149599330245674142464343471307449430064530067571114792309543911428083990358918679331540078878064030492271557723358102183858374755089250687970257939093039079155113979423002450341872833914032003243705279013781473494207195285872465326556862704330875586779144176101064033905457195365697159593045697918078278975208065401165602005990809726733666394635847808946193123772830448034427911668183222528959504060593690921425847813360338532366716503502195537303803851062141985412591839546728858202987408365519443614175106844659859375160871225260288669390626539734537457903468081075210757755859198400602892979138937372526316130088499188443116407194365905302943063783982620221801658130453842932493054620474146094358687470814273703335073551813997675309706153831309283862559900413023712911827312266072781038505107013553994213834876337189321804594590395202723910482326462522259095869985795028614201586407159277430202523644456292055449401344951559782397100290642007468321229684042892336921008543009654918478631264907917705061855219415741714143262970175888179058202761620897213797862924677593140368898397548497075929462787051692191153908558485224205455131591166102333778027517714045526694877424156754379256054026567418026625908483696850709077457283997609687062193213877982833699202843270468334321129150492990628588540498136968057638205569934316807756227394485828960901886209803703078277843852393750496574312987430485915898128331132790520877574512524976750265079468791590053803147693334739614425144593976542200840219251111768956284312018921114419473182335551356529398379742057599156285747564349585705688185792243795908348535658048993650985643297727211428627813408463006189345934536815543659016000411536790780180249660113782316551915580597298744188566544963900435241533577440736742373561748265978269616542614845694194837953176167050818690819449828246591955093550267708864644623686696968320464484887097519766198392274905580014078069076202520662908841512323917530661970528963527335696266628192087554665729476109192066802768910487427771695378344017393611433763739733983751335888989100971190506667626306331301695612986554121319396896036728822425751031705413839089439623144289709083324701083910092046870293101624008745790576539010372461418816433296547178162266374792516266384996281746095950445865991087855330385601888350827787180004432996592685161530890357706363263973421771542159347032353878607870854132425555049673975223463837872442199264737295386787900330144786608867381540987287218559347312536871241725323914702896942748377088343972911971770406323419840502481242611071375088681947213978859570753888540390189081160454702005402594762356629292916513383546894455492634172189680002936775421978491119718738651860827495421517887484430775184505371220528943113639963646579792565378195158273367621146741912503317045257951249410369603820057017283539912666368931277288463116473686057567062056562178956751293266253387974916956334507238112861973030089488066432313988066222118808043915698118201799339686682535065553881415165116648201832536915910682847383940618565897019710669371497880640192089339312105396172331820479319782879715857825921131696738912025762429464590154655639673422590953086523386968165188368799821974456217629272552580167810683256516562040026986675225140942312827101026324532919895013000068154392285803115714380146404303719325528716920740785629654800342745699208085745204889829442959906507495206393634294582847502021079656034046859017634144952853853756233856334863888478830557806828400374377966688029160693152922790817846348255873949384093999541883193283150960348490853381301163153793843056945192839682556135763974653353593767269611583977546253620284775252481510315635579974378712183176056688817260450816248490646338117131265577567693774803756376286523282776998748874999945421019000170194289644607635506663489387007563894120435274216789370343596362747748827960971082322850078316606277337460031381705895382795688450059961114881877194054286527023439028728865172446630084536749465884020456628391669008759045014616793249736472278960356229372635271030716744282175731007376266649472462559326460197210813139667692415473830753005918325375005061196776127454183559085890084924482617106928501724631350924640517216248180176139648251770816498851666695377414116256993449230621081228504132112153181610522910998011126922648841843302193582879839562009089503532727276958262030957352521986458530422145194746247219063952471703101437890921571783042784192188525674777988416539829395230386109674200424388249210402040861443034578208771115720477326669278261967748500930936518686847459244231851484215587252677155963360248067627244274964824491206529535317194221179540031584005232641116516823921883838422413997179110539516693758442157458304083197056857766825985477318212984295003100690939357145843957006019799106699876214882953710710889667144672868036493178098661364899393916276917601603938599644583019658114999467445358878900277181196570845412444640473932301940082040690519824849961882757781958788324599733804240239041899950988427000698997350286582483305859844430485030931691599613021129553557691893747591789146817347010088815485666742553124966033470468997202037774873677854127078644453674871940051671887418083314925558401664395703078064057829269313782741279504672302716511696342667097534144788949063517309676862007083811139963045982994962821493096801688902588178822028352378591285062662306421612849666727526614374637796877912932258369804156216832505857942522255536655580253237337245233548315125369228520603694156281199514786142228908582423693860363422259794500366814395830238258494406853488320753366549282884291958831029349840449694534268470791357708306413579169533742495891707521307492193508182338677583726356630509668623179153886212013296239793758624419036084011943177647108721282570893643093069380884712880742246701368860747075241838251618523196163396419265477424653836204492885070681187743900296265486424789391867493676876127804138512777820605248469166466663016748418877364343749512087752193889041968635285548726369546082369311973325778301026893005613034101025978613342582609362481792855378622518308326778122846282085905711122488293994811916521028441133509562506751240021758993380737702090428512342854340354635812615193924847602174857015567109675049258634415909777349310351894744047682864133485147608245283034573731957871961543521897509970665919339943652454038974134653644355532182588228311894526291054863034306209655743713815190138564933297233736659563366255418276306333239066281766707643002633917271046796117921721549942134700597913699132604643356044397931543167363954906818514666677243885255217333498522704665588628645982337165901329389829829212381816091670080525212361942192050872151318267982374665178177554696138338230379565401992228201262850539912716094478910400237223295712713384187074907844752048042859970275884731252937504241000012379667600014971549219712633083677535577559436844372259432409838852071445240582931894261622558160400984832304801243099096506342107556601650007283515923195859737570839531470341590181148207574956324652425727519098129136233067886347008815539311230997222744461134941451363824354451361349164390020647116208619178074967484414028522848848594718541643184019245116993461122585231995692342656872794539274775890875465957555096043545149313041345568338752496820894280215257554938470368674279100144239992490790899362017812839707687727555941936231542846466801630441582937896535230502175023128037455383003458656310529084734775710298598626888048473428512368258242885135170538582148522075454178754439917368091222949512108540005865860356399542918358856446645311505026487066455985341144336154046296339630204138286523202104741342905534857007827382200855579355241145362324354558174454412396006881078884793005468582163121566109573641874392167712299408469689026730483478121105486815510512390092506853708407845905752052932605787567864102829035014445751216619930072044468647925211368837197867165916539710004733093020598609449824956788057986736243939134699057101749733208863749706228391772279736979682301234659808218617465078352868281420701379334131738115037570421332258283928101365924742314417123855491236367927174796393105130715429760832296502854303878777271920352398379518756592521484706461977422316609319776040270184382554489135248268579315255728178687241013264930246896386418048543142502098528216489470297345922928206129629987513389783233848301949809812563878323798486325889351775117937899250952627468537798460367044813775691678088997868887597701755371551146581105620919922964933732693457588354864157969959618595747509647792643404499116756600320110429285009541765866135786629056762269377932825395231930217334506161716132351160977968171597268761902432065776515201803036170292455795107457314494495015902749743193513856721530193512796694025292740386335714950063620257918968506567296750883631361980593029685448333802732833248389778515504060537264312270842216584327549623716657260342204647774275149125539896701823247740570461042216878064007040487793443235107045514173250032558899291048620298904896529966901938269055214061331251350006216824768945849496606472378143672430355544406284294034076725371751221985308388826347486211047276080455004523975718155976081898112804137905218260912691621757360598742656097931277830900225323044239014697223809733058994147063955176915927886233106790502853180121991221133592849808175279242708307523495739499217003241163659873264955930599167787356121337044600525955714029559767440105523997445795786610842213876881864252973954811127917702296950997909420148230683272033157316691658257523606226685372119542968934009907191752855249147578729735659708174376196586799786280518478461754055500132335458548969633815641823418030889357211265860715240865428894699124451489812064314718184904826321478488282991439082780857819011326541955075287496920426817748306477241593003589170577292092865193293134077662859604411550578733998724042658960298563691072220916124270888189064311108809288423034523270689129376750861519812191717219889031292284627405341714129483056100420239764494773574543461657711002207438287234826358912881466868029826267092563728950789813907416284341360207031666705073130000978985282298364960673732329513079437706114571649442493803466841844038077555655880708687836629735265193890967848040638432709288687646053256198605717173300228682031755852593477025892137464270576801238494194653310000099271630205623188920623737930694727625195480144496615288585303708642597767011962042385917704403262964374823315883424227401679085256699210222272628041700993058189868466639057917889425626264351948653228228533865398952761372556431943443217264049337401966659463841137415632458570545207086384910244842179956939107756722329840496426343363799262468247131274243679915992067748488190669267303122960217538377828319943188884308854218014666251942850236509747984375296335052410095785680313032062383061459371539438337804715950120355954742218840789374838478541179647815371838342194509624485910476365671992553867713779681924029808201615947201541271889612718761425324190152353296341600586786617837822423344364153960130131379934689498609406024012936201457703997845492361413058732216275337686743847412969648378082996523534206142752224216093396548140979470016600279417614262110542358682118639570575649342137769059892170601579927518263103320980005010046167368126795070572507306690781157350905486876849144130851495366141723182036570456135647816590508942920924726774621943209271980508932274383109897648831089881570511637668863490012041093249796917765166519479361515894853035923696749109286903127093050862884971370116641539740081817098133012557703607736521524753045578904813022590389755299391350873832961356423202801663405673659782879391290229139133619594589033470331220308244104223216512457978706201374865683288030583402429323639782215219328211560906095186358467418303328170938250467932505548306576587517619657526344090040073840415563364349310741705420579132313363068684948289856633769793975413943223581588974892076078936893689765628487011056775016498778382475408649993959932290614117583286457837979700767005010442381212985473623070655943219153555103071436396488623275345679187281482483482631545815680384450405813827691283439807539122352299812940455416069398161181418556933814166244216104396599832976411058296885885561547949474040795547245413147434208152358002075887978220359747266202744473372051686750071367532607594153195200560271671537272831319720577553475011189466401715496322231398323629302827933161122078549312626101743937991636133719154728361310249963187536675093732589546502494879303854964161965834604697177536437473658569925011675177933792926282771952094613550083873158431831997882716614535555618195258267115126734883386500543223892510891384591870793210227494592338763866018202760862572246035578296236594132550815410538871595704621178273173362957944476907596841080422517950264018196729242752890679430306710044761068255200966030608617386377873388168360646859667627711650592478861646594190566157836917505997258899456268852962957591946139597284075374188087870604355631464020058057402739841770950527386173933544176230153793365505479356350094927219734018538369419310258952533469382900612533007019373595964224959045586998696932919976549391283266422959195384939718207728796717491679419444754236582906320108727712570919510288032257448093888497466992480540024275907205642800795448528213059471024953778017702710000187860567462373528428741709183092840672594102887877476020717970443439328339680413028092181018048832442031887267500014545540743384809295823396473773237723101773734819375586485028740672254085363479960530994388116282756542879051814478197609062711460403544172660139568144344365375923718524841258723767937599816332061093939055281186219450209501644355887117538788095496055780559880546114474704694008546445143523480186026207037876811126628661649881423383477671284647788437539333349154919445841523592619734730163490502925510403697163589062619852808246470339554872175139665930622820131480742428968202049095952083635178342074370277263322120718942614860955069611864266632832102707351006742022641547356216601872102421555785391957495858662920527081757160049578935810095968085037089499224478823722189126922269519463476026751555741813060847098864639050150229748920618638811987645094357532189504843614997648255923903799023128188870607474503591734681382242511573837780563581028685450172755622470405681806571855186080876431010653800966008564894589995007375035972830801659850083088748495407629182559434548883550558153143519921870352448613060145235546476915122369381559067935599384985016100458730597257626068650930713119143239975933254773939751798313752639459037064924817716793109083839154419930710265560377433901089236581953812668701836182351094015903542313176960329705750115153887595520894535237111196478482892997555663289667553617634474888816522515306775019433982566940284208614780026396485681430787306641320855122822261498027256533896209436678094661042082122920729256688760417323340231256794578173582354846946182258044046607879659035698371627097614283820753074844419892558438738845884321398994708125375302846487413013998874315545270118836371617044084955949734634131473131866866075298722279630801717428968745571000467856601116976782394682090867679988736409584834613775505853281918523225493570079120247254864213197408014945131863580575652889784073875999817221275588051800096307338713321972973841531653819484650467973477758586371424447818440007601034675355465280240403749991195993169031152397305809691670098093675648078448620892329822177196788235462339905695222872360869349831845180717582568807023237644555724031914736296706729463072220042139411747639662368825158061781687820927041348649880576910804024543293280206557934939661586316133523073613640865263192468133855423018573038135393260131199936662032452799964131989475364413377467544141805022142307817071927632696458356043957624802933073315368021811705908627427159256617198612899311386548708350322753998064141783485753041375676265257311671931863116275658986565708592541586200680479899699490548420045902860087184908416419604706771228310400500173588260658572999950171625130648198737172038493080331251812106072534900187229914954211821727120495118596474854530492385122914547983547776381715851319433698217606400083302109686727600683723776714576517605494871617746142291718529788942708160546773066502305554463586331454329067733926228607206679103533702495849691742079231209557668264375316886665418761579681306461824484514198461936277032481527723152068409953194931039426035071345354575770890249912524915272807993262788271038088420841476434447632336269686554347101028419591707225757700227942967240030131465608005968606518895220511910888284851853845097266184138782422047377411360700915299361793231769918494334507885346430762605548174839049539853431943249118663536231747219814364967521983935596020513055318186957661927504135848805334452009516492721795664593206517036571100070323523809957078120648709142683609788039086315343813993522001056390446852856427439748873803429053089864215569374333466562421789981298380983303460839470627311325876004627870704895197621366114233971063071490826598373197655312488198404585867952214402227907538754294964910460506393225798932661525681723710793352037023240655956339339424545255509788193325051402493419185710463605571600045077694561194991659858634910844121510022975804820227325434939827665376272159417886388973788727377967000592471169761008794322330671081811320233362034175564323073722671737031385579980239223499323876868506091337280390799973301468080054776594516587362496969020049884502858585427038093261375616354510956894348704392673551135008701369503956959599983317635113606847532768443309852363063176199348343754978989889366445011814620643053306394397492761198816927783662369522352218883586232199362620882427872634246901800377082658563319883495773723110626470032101206856385279269768674225046134082858275349936583466817233247886717431174813199443943105346911287410430831977936194571297404405780235194876124659844759451716780083153518438385197822379877039527005186058264770473124704033194511877684372635796354902528331281344346757018820636291741208628902597781542521311438435644592479785173779839726113967410424202093816065902308441151777765597627801267068932514290744817182429891631982359622537719940613167483462209854441691273663111644211462101720890167848215395692508680562777200665884348515906125782747861662865009993403550394084974434697747686607946569232576977857350331824770762032547138654464413710028878108186827550004444555609174309532407167757605701287253664390319053448179265500338949404817203871136299490163841660434492396250771863019173847845065598595469072680523415645903002187793534186803892791109571542158081034012304004288176792921901666543249595564360391911224232380277026230076373262446325553118790798687445659539372784984849095770760037598275378493610026885147253434245152825635797453124853661501752754209182225205869809398119647740223182997836840435002618951630781967087374814786824262966408809009564660896001571266711136835725563789508777316150419623631653945647368760915136031462803594277294484291449123220339733194047589397188324790102498114844937018896881660190474761263233205708152323569589081729859635975794258010972308000816471725084670598126263990876345609751727271849699439903950334673140047755549629371844983212071769779034608973801846560120811462614916945021728607187239481879909673004785214650027072146449861695481540531504412461310203563466840196522147013050266017001293147966680745675071660271314256546524093716708939230862343869740783272833027383916099907463843520644693067420022409044836596493606532457252684988150032496954773815823262030560492976084624886912435266096663752025372055927038434010061533247483213730226419472663239728081357149620049368738379949158422613036519695520756757785452145048089095478724808044133581053251301060200545545644756951557325683009869535784721467719413858400587469743625460000950287807277029684246471963068723925614287470094103608093403542378669193543936767044550581518882884624553487235108507448674542892243567555307823078096814182537091566685103090360734634397009202794928409561214970915265836005271701976221762272334222597709279886168414625583416162206012935330233683090021027723149855810482582463181462642146970823427267051509455556047011868981850814231033069314427765673513497100822193657552304470894989873735477486435947774631753086979007475822065099172441733577175522725557333969897288086970350304323346801128854701571583828546994126636950602487312299716990343183793023805511940544017083240453572582417682397964082542244353940331927164414573961190202265569837488327284035178199303259842627718087630908916410189392563506623858251725170089960885442079994707804962652131635872587512599597264820823587412621188862526103354616330854924486233734539805105532008697875316986156392239604886461709876587186848271840224884712094202981352460482092072983211663696443364530520641737015119959315114993900032805142599790479999666422240230443776999605620859739421229917312273848703293559666236156566401206292360579698071318351728356511942893687061696627552667309507707171932990185810144221262069115734161949165249796421964980826179183888255074096563002521508005583756527985559482321169652865401774043992500920137647047642663654531724635708382789421872219767999109965246303020912858946019970550672822368925715576722540075250657180248477056215269425356292424438094675326474755443285208868170477483591131592411155602589350478662519093770764741983406463490833004432097740621588706899748882294740502567216783174942936395146382963962253657920143221022766106568864914481649166977596950471437604666499695365890672716702593665588320191150901919547455720179616844692573898841416985926372158067193375602561924341415767769899821454894726983227819743811292356140552077795810193613201824154204003482931330624126844372378948096057963679456118633364778611929055785544121983011116965194085139744845745453822466611149160056850407077279397681150812246041450580241917670735096703216230085465197902641798722604954785672374203458556127161091117416454331653867012345933144881265172653847442203496495237086428779437155788374378389817249376788483546925631087310749052595263240287337642071517959960660341434827031010323067240781100676374494771933523974071592419109488448292840048476465135061233206532978427350930363592577184832466700999415530499529665086399488055496079821191115623408016674863693035151294465115700953614664439978326864757710470534634031737457130365905554691172604751277851475002343525429428236991343173712858812038576238230719660307917839342100018613276874158032664962607044229657695463720719140275035851698008632268724762501425745264581093598579053789141466288540542041765891605830342415473423754806079558603137871654101834419649871182204713734419773173075197615210058991463424464161379687044064186066180576777299782087740018798269721565615251048292177328067121980439152372749113804862808548104318789743638785326976236692664317217401060911848034676460741817367360468694812135926021993718860651599715361650075938235794221374217312395652546024921355780851630772696961310363137249701091117217871087372985437621426070629109348150741224818859194580640382508923649736484636802459649866702463332040432554212620828760036567755165962427402034376939159459548712785029621595511907901680751876055781541096357458689494634622861570444262960339770326837408469680997170289060981772933267175192995883742335809940388236026601404439528837580356608905865484336112279078992991610503278004973378780645868832811457931693564766675907711501417475546759645097230383647609493808297933631833011921083087883021955830371236412156899322036782180333037759980783219846991178874452305237711992035087705979004014910899606265433346325613452165493177368289441021959015984149221115408862051439025117116714285183617737052836558713122894198940138891400410823566030534378111336668626879000590898837673403818592507556473870353789895177075233012325321398212614682166430402844657037344180789928186105151980515113212942746016675024394850835588547313979340756318758987610118087209761639781069670649788970038196493751212396271713699997079253135446566944322549857153580883449615301498855655378795948439920074470175880057548322062307460537914091627703514084946037841402826551119408102100549638512583825456125516461048982398616047581354081236693830282925094110843517295057142519325262325778747861461481587881180909223975233860658679241982466369519040081419026838751113446775493828761746371473135044855735991240449806631206658998501008057248884405659091141486787440256713474554535808448925962980454875004651346859549785847394895781564249458156674726738137507037295625793248320956294370728041552016092485025389742131922574563301965672238158398469457064140396917286703347819735791055305359531692774526769489818908506701225741392849720331264969556483798391384231322601798021432415005503904805268673473773552511728107787166333912377022209348143058845482554762394546253708942280628188644830554260795182720603727799574410156443585427463785626356031810899201444450788943892696171498040398165151582212274649083408758282432897744893120023073951858984216408128852456112526399885152719574271375048136881892983411649418357845491553763157360814881300080392411827943647173436136649068833654393182072114831898758170946233583082415245641343545325879697002799054297651669668602945090800322587626438280107268998192259684476675737061688990990122915521968374068053139174688644715092236322032047503671211256220403768436553425484021271072090726942527527699550240428764032619188269098033807316064236680856989021346836285700053660051162284752798497763559967206285081844396698951817832760719368379632238729692596935659863562741467769324070747202446552241001415997401096506559899572938306152989058230586436957910910533481110864951178785224983885104220769450913866606352879448929249450652577707580073524760829433614853712029474356529139638097426763080765754330819958824448394320832887901153179898109040662354304155337331061012363396976729997288127098291380172395349505743830587185744443059902286924441617421372001892389293956321304599337949791889275509486489446793699643434810229659828696201204085903876105426499707010006826967208166773158830982977979256496026749338475731597989051448105206376162837871428310669133726730623896578222338386883385428362453498768048154712305518065398732334155092443807810821913715332803551102403027639972864438768928016242149220394841014116184979518909538962932038987840604885817773448647671106311206241042643911959682148191775648587059080854965591278929503460587785216722018543300246711370837834740535205920423188377443196996909874246710166665855078313645716323148789337282930277137019737886993812492319348001918351988176412547563187144783472618814957867094717211744537951042080130102327768458264751857760245648654531164248290074152910806393218648317738775739458060058393854737985297836903507404226428213768690819868737297345911846435574689290175168714546976524841997186429292241606563706529699263744558497049864499504082944418049484574879232926688057744061099107398617325366223220397316093741956027603251600738341136019950988358562224672578624501690410383491313796198858411701286308657874389143866037924552815513854155610058910089793991708198193105440792395583068362980778602556988274636525953983178284651207539393773267874731822963262034381736311197458684981671262190495237814035214369490502758049963686001483756623159004788970504140753694757741375438528815716398680104256325612983875414772317608499081287555105953727956013909098279078372197389559206790427296268064710484916068746903137840659903261310991593338559432621173541014729003327770769320007677942388540601305430215367819187783341270607406041800555237588671986506904708656976147211050158339652874293296671451438319879400406602934941200614696755474425182781132515125900100020449271116165042016482254126108830422698033865716103142916681288859050007600523141993431188757196382390441810547691296402324468717685221898298439195936181428216360927506574596096629673358396345960480229700433759746634525281126326482403291974918252313526487445041717312753904186509110526528784171861990139257388243033355321989794790028944412891317271452411405564204779752686096414767830336724937469833697103939056860376457408915086547047298828482231901431257291401694495530426149207584343753289677459043152338200016357506216477583923004071848415479489744838000851286464862597654164601154431104848185967009855255014023800011859340575031392244339679967222770227307147216795908652585994764100438788760335850121128763435198804384249394020199296277460997685413767345418983932697270354698680824841552731155095963023092660825824143157194316066048496198434257147580237084106246214810849496487243231422458125510722888850936528792903224127883104306029025214002057366374019438280561699565836591163174737606914691647223009374668072429454932532230451068941722079976484794417632755682798443157193375466768956194917557093720245403169602283536973658831356187377448565762745988589948233125939907596434937746544663766221684721542244401310679905706897723288189011329124524007401632095164313567263807674755969661953165004590245445741229942501570522294265429281388828603493994639569133454154551825830912948814207290786680898757207636133037538201598638979607119394230806519628713843756440730956410129404912608118745875977908919525324172883617215910559666868085167404859631618355535744750034190018227383412727233351417942142459366265538574333360803942490859378653555136844752114840426876201055762794742625772575751316197581334416783728118349062610173284585591499425156204832952087694387620911875002626091401895679350853495807457408887480769711743881436047697168123947112193870219876982902285640701924157083579059838459822260332575516697072044211016520909323683883574688597185550743746745077621127553536369813511747569731400362458240171515862136870700420564764432791611691024058993899084223213142569406940054348415414945685169146720345621831113057694937217240955541468872696229031298845896826662217859764281595212656139380130224876504946954195599217206460991391775430977622719526063928068509310791506183540582359580447623708415466182165215816299991354060190259493926251063428570812867706220553634432816725645806061338078736063005041659936313971263140626416789271494399533144018865725836590559722796570023838090699531974440878666685958338611277789994099182496555191786832217504295682539734116586749027495564627551313460335354440993773090658018918746390638406532303133373828872592367145873256170358881450325066684773975705021703287163078874133052651743006646399434133915514732971732975013958193888226066327425149672800527754225727201142851417020449014655872635790521035934104499802216889564468293061524953418278068070779993590977703139109636561002326343548898179818076402930988062024023049627955266680547470768070979892215877538356966250120833698437330856267028208347833325610401715515909608947506523259976205517327517704297283575999022297399843040716804849959140932292652619413344967341502655821161443597735081494743631810298514600879772631615146716322046604377317879289441745078352063093873667893383236607696455521926517958685639643250076078485088150054103512331956524310936921586300675345107815857447516994741604829130072670124722670108787614740962795440043629507083691171990245687117178897541774547176451973002004608737288081513229464691709781042047768504079814149525081898962910831760003484073795661751449090153073926948348087038374813603906339508330502463246319840515075311443743076369698127183831978436916120308605847561749019293697629265215880340364843719816124382313648424539330415406692644144148353888950354045840607476772768243311796218728131120072689931832937378501190726099673442733223007652341338304774965117259026373134986186577250768952776214109392475336552482277349157649885257700290224992506081521478808962399661138536360822256910233984826765008351719937335419307844071684813806274834293993621287229460751066318850085394337811925889157873714605767827380864778112508082260922853453832552289219251372147204461149461801298815410261185815495332361560588522773999335870454084888225009483929101707773367144829145238566702322634817154687010931905823542790701440576007021825693634769236561879458528713733207630618863705821336589131873661726941820203023892890450165894265583786207560544726496662376394312919923788524629086345134046262401719339749201752889764405717741397400016890107093712891841205114672139088123263842143326434150847757278567748009641666650434543175742150485815557374862501564750416648236372355151548441740963942069897041955223675147311465865994570383846118979283439204187193129714496272975489924408051367310870179895936571853923772915193059614257831877991571558173845886870730252334464236006547723038059849948590384273203895796682465316015136374577772897703310530279047064785684318978953247236667014127105784232190597406236363982989487424221211051993732782982600181077948172883031579576787975788909044380932325299470085970743737143995260939060550515935057458324690117087601617026655552575608192168770360538548519552169526781291314527182882803879743513300429039171679373078059949312014915736650230474046924918143699504285201300357284413979939573760023770496366757408674748569470917193766302843605525572588840623182791649733144079511915713679263526681210109254183487838213700254198990401948968964635735491005733173241564606822399256779611066413754318760319172740904345681351215991309201777025895509988556113609062954539012832869843319412461520206442797037989797573647465505131915935414207399888047474817628107471700302940105075790812859497678078756867441265908602457795109394403061740601391216584360879217023391758175696332918497422319552986675495312727961774090080151383517251144641126091034978819073938427062059340768567497326014345324570644574380106372017438417102900954592170974470633770767660668706236076541775032540769003343392992766762518871586489832749245989350642066158077957455753924545720586739163304093130345484210901020644134521075866369573794658651753191273758759338274291268141026281749295112465356830775773605412484258590845748180271671170535569047091248971233403546054819481836074558724884136287569513122208189833120096367842469585284457328003851747794967867988460336016973163664801171543134470978181110937288551971836557208119766016038272769669472202750446557789858075297760573521636720429433441316988453638476144096634039436035292082278885708212241476490841672443757575792429667507738370545528974608365324908969869354414187146858982186895870130704815425386804649832176873022462778608553372349129783020193815682805592015988206503388769425617107666377730436662688137858617302946069582742472264980344595859209025528603143882181940680289078521634396020932703208734337212669651263111879028786674799635842160353292287475334167996606547548959536092793514475510034741841818164922243650447783873707954095672926947702168082807544434659230455023652245321914556446375204991363305527813895058544992095271035929166508274952323643043999866952242388081632574292454238704301832604122281415696314236023412634138025412876944747422724004729255503262904578843210416365566309464854677255649509348462765814389165070335380861354394151799828272472456328171417320872446969624152495203168282741317586268475004523795723974564519243234393833526137704565134317003718980939647021788491443962977850767876478668770190160992991493406713855183946480597139529965550912036533319659456600831998380607122524364955902317708558175211624366840442628799382965856409204398131132617456735141768399815385368223824031637666637737605944053851322626592462644127605413251404292013795434164702211993082618183466706029092450327481443088306785358719882002321578368650140169553461017848279655177618206085065051331306774404068353480519775221464720789993449585204783749673547940819205064459498788526019843953965795859456655715809715271334104897450600221892140541256549395305879593321094748469344623292644450839822562345237753661816814321210097865038363769903066311075327258713862212029676666112020462023989106061921478490174835762307141673378144120723539887632189728189636995280394285880753544468214345205941630397534269021656178793878483921265331393098378289932249543679908662367705957326409688740451594839856549262240093256150967985729091976001402243156360981393716814008514900051713554094546155075098843822836388354356663880547635196426147257725996880594439085740269039830501867732192486580358197481119806225331386762648535027112797148752405263081777482603095606115290413890431601008712197448924597925126063848410700134778502023722934905639867285766311897957730880366701518901969000536331020703793464181242271392124523053786239795977272773181403868596006132414003720847128059461717575760535944261382203307930918886982190598780830013469232932455051000318056086504800070243238694289800217390203971418798524444318233505591795408250445606885188786231122817777266636267528577428246410040002297456784640904996078894730908729981861443267076948497908728957591082177413343804667190078783560432681905377918280271545689950229623571751827118341387781946770119360418241096764167434156956756630383821656414097438630232439528757672567471655804496159482507159626969377562559315738920575457891973384706339572170330264968309191515248021663503820109109311170612407035494823065134105704055838717844280358003743880749163526101363221789531668581003012933246748870954098819182931582879708768694807917599511003344393051203302400551449517997124707907847586140665953668242991519506915846779424391108291546525371696116107918749901957135930847944047007064387121810819623291212700743795099743676874153807509656977907760417384990348341395603956781768666718886346040036643958044199075123212257855160356153396407740175111435582561893292564097440324452119324979211870201745857037999732888281317319879316328458425303211046143268603735516312741762493277601527974486320341879792307560126997581740446890631883285237970919333354390435765813981686981573473028596642986155855821689833766476902380557444843813773199369503228102117449465983522134464425196957877352038540515322893589137288291756547596437021964878132743022172011789109758976687394577219078506081798791408773881112398043094293041413997203286692388986164647593748467470097598450815998549253242175302497041157541679196248680353736411182238745777688530260974934117508884933221806388915816763580411943951689120735071433608607284187037757635203287489268189266472062840687695833705082586156496012475913664673270605897180661535228309447037004842065443562069368545976349622581443130891342488471073453607365146956107638270944689086134596926802928559720919826688549224530280415714519569125744955448948695805748764341068865947094822889096595068611630862612959098753205912440660064319772003053953310171019288836449822931363107532494982779932421894045145234635881082545893165862321204707698448318734822546668198296429525487115022570299720258473074619604420928307124195902451291389768906817880397666812497427155974133325991058013260951195323147502210441012165177935034177612738856894927501829155806046349488989865670005295075915775468318829541110709851488762423524461849315664922411270956053475773970974724559767162212591167260919948015115115075088754514721724260773742924718084115231357450942034062617580605744763177651023567014744449981084594272988951419679271739712307037220550726639360463525289163988141799207549686653281644999136193730306652584821560941778329471262013114627891423742596113981606271373106806582671042462015474173060145516756794324161161265139179382799613548476219180343739595863138843409222450309165413418174979870197588790104616373893202698954790807634775756738535270011590814270855711503809040831597684905601986607102901526897585505167147157150411312802743961410334730975497350863047529150334092958764846741135465951117406455973069961875775773090153173912576868508983206798915664383209249428972335541215598456712095058274859144813193510641157617505010203246073277768089961240563026412997227528480055560095825542656742154783261187499137810021635721547363802279492488037683896445637359275301816616312110285501669429375809535136126463132944419168705311863208074895827330110354502527794567304855900893994306472008575888931082583951507933368007040691954546625432526818185282291914021482501065943911678737881631525323861989469254604241609724644079719366078824660065119531107400830934141531768359796394258190709257023515562985234059824417595449614259694359033022377191548446592427637056472313380883126176373013760053405953764109676483414090263452385161572041835895857671853052373126675355840426342607696650079187558821562960147546750252242592208190849422695081377171180235256122880782254120704041060249874688985398703415734401888508128079089616827758439589705410513439652367023783517301154548101077193639088263182814179408787327578412734548107792968157040307041728355110739373085289609040868811998408816420996701724447637179675206053455089045146680347685019442757484957745596215474443315620566286199239793282680735693508273705485368897392884995904632482489156878495074828074755276376946688337117090703309789186183125101537924797287425239152331737066969040245859281222563475279385482527149547379076226181338188543283521766779464436076116819138059391170659524180974103015713595867407739906919073431920047711297265779932479256291271013679356409531501032262733459427628825976101159299575779588459321447491612043576372320932705202805996894024667729367130845952046646759008081030067290834790970052864002389660221998357448462260366588563678464058386170058959828321028946900261228330999381881681217172151898711334188377282315414915814661920456796961287959004593857683551314431024523141738203411786545523567726873905108631894987850003123160969632236224900417969953774562863790722238345023077109530360451438444621559218936740359245774308420417760485872999446871203035605356409190019869817310855106435182991806092620388277839216903442212371246003912692019710655299240782307715543448522536223585497130669673211559557268670417173026312712190055120244814275462938739920475056789867778673023009286783800191731577696912407948892048700952321398779537244873947690128686627623857944723656960563515807852830921073516899695368029976964042530747129389470511163294234019674146463982931197343396248207322042688078883006640888507008611021506995965787764207899905206520207422589564911530337917077153590795388590479573737079288787185061331507222359207092057653151956496089403254506943547488350954104297471521508595299411811842133627416172790080350687729251730138063059814897761322010006651328354576492193872051179873903831607173780462725118901394578527071061640000261113203751491165349544974910955654601703847159956657873131600329183901443026442384605972914157849793518363217876372808436532055602001307936259999620978205401357777218933194501804831838177772021344672744080998644914882411723690760036229900943176610533996503441406035273044448932592372968525232222843808428062343489159926478551311423537699818327420048802819267048821790496456051349797857882163907972803913626043616772821001807140686421165941603389136027590449283615768358882956417601280010532257796858125824346340778155705134167800745140457904345301442393598437325259624729786549783952432895338095317035097800202018123874364872082432412201696519115756337676261862998490771532038853886530100784425362485591281098903160460895907116676647880884067203253592798972481041386130958596831337137916882250359090124541207796847311022401587981658320153169559657867884991128120502508773063751165282498032559256218781914024040195497986385905844847509206887621692457777030533859495590016830745993585017831526331901781986308747323147476446617923414791959451594929746242737792975317435875519859555841601989752940970404085192215868155687684183544525154089199170973933403795846774313215160286408626988077388120847548303626122607365341387972686018803130024925484024155697627013500880181212442555629520830161730291343415678987690973240400928670651528424539406116234029902916347607114103795199708435071059571969552573578169663441852432523341136271647895722471871179960316417621957447999928063173209398681131233956613554640075602022247429300144554711344856800391068656509207725428950708748988796588763125556876239719128457747293916614164448611476218065158063794767593366983667851139095323816679307898955575969884066461902944764363970142335466270362419708833751457801681668527916313893712543037817516615102372828141249017462764362214958436861947304431273457328342968870774276770561125159260224017389240443820536791449592504292769801347607352278809673911760018527007987444096343358682570784332531869640146249988325203050155483417449790008641935866187917578813579215881799953121275262752612049596241614238395963721741430768869751593408886548032525609428988277215006786953825899870824906661507912913437965217384540778669821780327221790610182925430865117725095340424774788202420853485449834660332966430436356929081249291274856238003094540182057544527192998920750972152645227886357384784889104283601346761519339923746213477023127456462372817259676595124560834730950144317476418370195562598266385379721666897147273136905627020304287362551855925345610577854657947851691837233801782958989271498821913968722151486466259382374340402610142425229021798959675645740500630056195136618759460879684772652431019165889329907115164912838042028445373537648218149120430678851367592242597197468804288077199641150944784855619336426078526322774593751559405393600910233695177301661545120962228253760162225140954025545245332377301876955201366867593813081749091545610178857781346419239812878106986386501863169417358449876789849169919712318911257531807479718480388122476698877108785625887988783442634643412810841659183381815814063559828093151744185080360873882935997947476150144699790779007819550788100803336930030034888151160865537234796766824553563664091378639447794400142163931254786536349102095849957690317063378752649231416459401533062857052879602918784846611925415731636840660987762329922495467962933616042859494053587864236233568465498176605167077915874779684540212191910957654522360736704851642080454218855673729611756153627743850453681731170069454567569769743709844559791006653801029662703357136612534488901738585609901319230307464752307965320343960428773281485258020885439201553310959037943707820820998485470585718448476876156780719699360065802021385988269990232279265550575498534599700438338090905512684601175105802966096098264693119030230134149335785465081040323095561985960026035457517055333034731546686143079946733869329226752091246874838034682638152885491859443054436561245569991724359429499152408562738189651959819302815948245328997514719077071575400462896459343279490057400545008103645481838189894581759931367236843618743873580585320644223557589962528471873187704366591639566652416199639185755824437158261998231126998814954762428476355653456200544561682849723086414667246966935154806076026071600626623492125403371086936092262724552387503006956995919917212631585581996810642017510048430092895908839232605012073110018681332450449062776508328952183097895723090769678230504020682032331704266069075722378058005653720250788571333061156492636186106765352572766226456174594102516493782785679722630644092355633725579581063712658197869075528757426573178665422464771714707201329085231986113062997506666856065978127861232505697706946534621337779325346655244370232893378855539950924691808297190347925903534584411481608244373526890703216736638391687100755186516506401849876085790683986857585386834201295485365389386705222789401513947971572762510172156307924689363659489845446265185283887692340455449953847682634603178785252696203518232785123432635339355586379857618542850896378923401488634101834218350916426300753478857061789325733947335519777415835545146774904549772286592730965071816515076355604941716364786955620361903445821294068964140495034140791536344947520080407474529948587018543818610819433515212020056295699174653383662094725881064737921512374119554039897626988647570438588119149214256819980271657518168312469003730796785949652061413022694284428680702295344077764985003765393920484029759162491938851145361017135359596135548895790561543884384119720308826715097413870946811435314479644671175210783207297133851989447217091104707331766056420386994643719501257239868480160777451817674799105292659447740641304454961521358087769075407487089138748966717637927447373739585945922949351348817959991280345109953241342493039357119767195302173958021185524319483107493827899872397853475948491862733439352574279477539886759474661145859962713774970983516452942741874546381974103260235430256097347564013464626280830949235971239502798484519326349710670339568430760355281752115055626305124686284397471651015635908999299345042924152366322422733456028507604648371624654324301013569510472543102794683736730108642633724307397309195653130771212313213997955601365765011502166821515884597518790831885665605673097391054720265481962426147389640838060001917118990080369158044376496473157832820953666304798644110875040581557203249221930249562272992285555346199999193632554584661625613327384760148639556599350258805664761050862739303318771743694142361679394640911332116240109489616772555402546061123588797502619702231491378505141159030763193290698529406477611094725073540997471358203522297016083176633760881969586690867660231891039854851661904041684364034673293790168191930472951447563478630267932840377699292905155247718175207110623274433176820499874249121198785412860223872067414920895692770829581984710647352232208957867306768632068017058289024230122202561843291997756415712309009217582752400970307110337286232113480493215718254998241521175846791871025141565908773330503042129139023718420316146890678757468774840049396839437680676766900760782683056798961635160667033082837477042269537980583839356511907457381178623611517904360944480223405362898058023026084275893497905822132456908209752414951832133970769628236985107711023794923910619796023820079642339878993409361263066956405328599603808430739989767137253107685864919164253741194942909922945588593632461267173405167496498336249293384984918917979385417685960400400521932354203217851702441971302721417940563970931487712619199223056793491781448564004452920863385232293221956965576745960089397257974814589600989196015201607042637923508577735635574117406853529965190268602257274431639984372543027050733319999965008170425820142681463501872740579388866297909845378505503798971351798064779028769932645647482992700756148012536191386832229300708395257289038410869130326910805550642031691780857210910289043145999310932322098904554139744679717577595230415101866227094444254080007135227621904068207723697262127536285941399947693154428513693238148541374106366622057708282773616197123340482841975222953159095940809963018140408197172211650136912470367583285310497318003246460441256291083513999663632874667360092025308380572211684690825752673807585553832487382331644099816230898617690740158029820004142595190361933632961047167133738566558359933617489015685168766660059470730715985132483049811306382028292962812552059482961330953696402301301184666291042149438869699659159013946444687048757795664914484966293839447835223161171463308689469399995519426341671494916640963646301041569583681821542030232570857784245516294309720786596382509681404750016486311587434604308824067625991717451120222248477207760514993071656174684790909777519134437171449054602651120444634843428571693652670357070036482071502451921049922090791283721986097449069858587046142471464671802035487869690710107400182639436908128603150201764601985735127777817416217771567565716911962678574411209916706999887342095684911022490980609724807445236903671873522737499236964417096399766234141237396042297016619899056460103231942891362046642180782360625659641762651658338253239109326669746642247834796000346400764368800791066466048091140507537141672559899684147179253489489880405508744794314225576323413445419314762709605199303794344288503077879289659117942295794880772609422645281419105089418292704616297645021511366286770576889079428889034667933985071508144867318310202528484676648028831213945467481476648437023972869586279154857779225769245722041312830376901149446790958064374142099699693885433648205237514894651851089347055274900111707064291262170864228951107308826043937475435179121110835252409582703715143729616785030921135117345860884666752049086096856799231671839150743489463167774055257663351375156065159646268641625106803778773074995179615620744639798313837729776993223425093783517032387581245444178909718623163530707914520540643658028721213007492527388423904693375321312957513789486931380327491623490418972452585046021832087369110471079175148156396497389196351034250246103373140480364358764129993580644516889916126160484872510529317576145031005229370276626564026966694826841128064212264047184261444253649962634784917920973600292140378153871880180290523822887005148104229477652353337728690812166704974387876531706342813437722784199762763605675330595528117487592808121786547984844961485588461660932032038134333054524665241610806092848273365554998795571798172557278538969385790584608664315701356779174821925134431853095672361693155364011473890968034664064608557429165518511833825226443436479309405287757083408907774063556630983639403970162326490897851056383311859608259682421473632184831753859916433399135421750312498432455588910149451511708150001477249906799220827548360741722955281268654728730593449896750355613858428545459937848140782702991022641078145416963099603729659594071392574632007288565273830050652316919271835429399589766298981675299657266691508914448814883907658794338841725649906536456023241828579588375933435016197995209933701106131154908058687706826924859129145842020841540864015291259419297040966020098502713396351160176913815328519133250777078491889125236845431516614012981408789098893355272706100196360215580167122353030977341112026997793671038253457506624134848674863799526447590852589727537925642900356301624282684545419306300327694428519801838792102398776862442398141432919380134945241329726727035904799348355424240039300844950209044683223472063062378455608577886450044782169145682199398131308930202331493882363080620509258621398132132045047100257908824310957880380980729224110460174883152847751888365936956256049345614827241446127477919071657040130436098637811394400234069949294870496319424949781030858219057656274798396820356371135053781030077817011435649764301702845983431364110167230604492905368143024691890185394084642732379818097832126186776728656062581022058343943653941477327206790233044877936271223492169431406991136345679016156976689730021637456580262275188231995444715547469956203531827583050098013091806380277784050756815449257852310052523770967844622722454632337374765980375017116179236492534889876937204731277515273950388640750698626706824478001205707757641709114909471551278831554244943116873532156410679627034355951412592731406763508580071804218368745843423592219784758194790502135603776225560395537827185896113217877658634662367543247815221998961479981978425572121461666918194691310298291127864368079754563370692272158212827669687969978588327603675838067423274857545589802681822591901253236595380093021533367115041157508622297789287091740525031450271287369862133650916282301550586082565756131141198319631505567352084525298903795209543292065154267884331862219770808017033538152863647362606009705694768952328104956387607540104478132684642614515261260774896802639351607183960734113080057485136837155747519145382267719472487201501978435295727910162740628041173856065268899475553940424565898451071907161416792270574058639968504765404166554368376227624555906155661375135160199264745920049100669324872844554642536618222390328941579834159324988228709008854856155389846495934825708756874795589103625210157655470226856847678603177607633155366751037323600223026215846096755078892722363984248922580110848696855773121934170081637292552030400795790380063302650834078344057651176367806797711874127286830548881159650220127276335946083380667649471807739625583392973821893132530570943017062106813360850722512357259301529373536871164880381797012251771589206314519174999119490702027068474378228005381339578363605613514219347854924763514356387618884227011299638874538830992082970000230539202849523097671367823052318288504666537409291170321895698489237264682895026901044397951461778478635526001273379022221997298800000476811945443024070910140625811632744205408134097612486016875241887102358323728954365165823621829488869138588300965381808656599383341172789195275036890790166694279538900335426455543329235358727588273670222862632473781042151098213717760587844301147958023729698583462504806112420145445882714861719655427509574748897215813666864590402113651833848246777239411282214469516245443487828034511226845742378080541214995274529509393422141771886111572076844197362250806388924601702201765022354305513028992609800121559066850175930411080182035386929067222958602087537617637758340883838886262161762040117812833289676915652949714670350347986516248852943185026195058930273689625049935924094208255687924794910157531389892037422857936736685779426751675266840619432323759720382728591286841150842062327612483860261131925303657460357070809526065118668038760153428506558065531627960718227451565309724232655875480960768099707707871016780281410815150772791716194936680246181795241693833721942587480159347953459774777807865417196309429331875839389501528583340974569942767980718415488462693452989569746627675052035446842355929388002260011172981428701413113356544046855143938971954550921361132201094420395273131453684146662868274886485414959547015033255865579989473525808077512699892656976144575885804288388429170573096280656837194014617269890560924839409718370905653449883397932383244663738724797850871036597318667038582847662506733094807966195181947594978633352370366680419476599968774456723764597302304158262058824863949453660605432212323351973968238701957622264156009127995167587223318686387141968548177874623040519831199109064944953817246776292863344027576048240991188209782720834331618880281863282752013042616129177536383985404221276250962088080890685834866469226446161340483604503910312736486436047191167053943392652907325863819931499146101392802875296433255237079306374650024939562483008727060293555471820931182446823479609130199959976271622402293619748116239937764994971681248445704184815876706555336675868642067131525028312742065485655583076990979954135054972593584082267647312812997076138369045574225889501148846839645015514057956487672278782649082149560844152674008288775235099223653387927096196574278663094007139309865735635770656933610567763338972445567416720850000534530519674648732401392436598318881204677539105351939555207607997657187311962485091214840300147634275195663198483672404119625795214995873897153101178454998547186748695062244345372967493428443416084889120740826850862164281526461703482393196020595005641986631432575227586491483414426193671026319439691934029718022306439743316719552473276532977761927289475371690996435699821544004922514728305758767404055318069696558334304767165315561666238333806284629907804476684344827161349936398262293651990373562339615968642020436363912358822467066014917775658264857656997189431545156332956000468044546581090638426723726959390159286757850803508559311644240896381167230221457877012775329329278203313567966926626697748627918054791633776275532962114898752750303307417417088857942970061736150308264656957540736359637654491171493623979246237186246063058054765796911006151005937901069201839026769270061205944641345790952427838298137039256914123311065586885215442811006589064516938584772088725027851189512655430031804849048274099154767159485914927806305558925968373685647214252559924000558494268518920101437864586077819974987940410875567762081929328918903372453186741818501876884191841045874869069278657079814846934610235186419131768585128714601558078805706848294414219367905805792923747866684854079974161815004015800430368520092942273238889799465964328636457157110104002473501319311762525067926558867997469889275695354493838918412690227174417905511081454021937676262592626594798848785661361804532101072932737457955493093126545387481473258300782701775344825824402439967252679180589963472970013118833540270896110970311633476712378226133410388586224827971082110801327501527548283100082990515828654869589312792118338223577055340019869034682271478079440557614418772896940200850700503344059864260189970350435344672009622110287203446024169958005937061919854991291120148298763833770905911906736833596789463007657521786528426082588586447946388109240269604868582858579618278670360778711815019194936928379461604649955365734569697676502526131187653422539094736525685089281482576615018508798627312588336198034127898256594449041367918670685211812115742182440700015836985362218396696847046228733014054818809733455718798699076434966813932042028492857762054734161393181707632811068808329043096704602836580424014744973439875137028782609747446582013365568594075676437378737092489440638412810347403194236803523752000208474626573796166122241516635611397405699158244166594676813807835132419735198198701412247296011444476109390796787019053553486292545352503126781013260009197567185430427240830074639128926178442475697947612435336598231184250994762123271558681231439346145995156931783778280582342585556463161046177232329732955331744347495636981754806887154759439292035683691462969511367312139078221985290694529658508224632263352337701860524702853288504732754713404895558206181347150362829592996051726759595294891327605672793605717710300385491773753951260105033304670936168797469408892925478672440086129332155905062250834101574857862879281641719553587501550051037414590566515536448337973621819112299954246703908291717521273310954106486428128941373324937078171869990938897695576335643257045750341544781458899338647608916440349270660062960758080082084874248781348255415226760838328594690302451914388083830091331613049853480828502116568132869522586116208417565627663153562065258813048320700968127641196822931198687794466414833866989062026575186160395167870119018752581246133208162519018086774192418027965025779405536343118393267374515420520647009483410846488339955421094481481359466599494520891839473500802629954029996315080491139723858666847389345558060838909689318055405260098501968359996010307354236005172599938772213983350478974663466905991871457373300608947386310470313874570950572814760373754236829578601244217573559116993835289075410257981402149859978840069327129836729640542394090514918440315053873401157046834352330554128892638958596465466957503453366558537247257135185990124814027101305214345341463585970008737980589921470178628289087841952603483639476554615027488393582418680389606439114374834508875272085686358252956015891744280041022748551608394537969254562377666168042536553039586532231575742979917467043959357578729738943065129268039981547070695622121056738963927701936248874006051930371673093444655650195105454241696006155015418136252054686815559438652649341636408813973941929340199723652697417362864256171992863182695422606914814835024060238693189535394882291778884332586149125887897554110258067271750452582980678485861763844598709692436368713381192257086886235599139056666458445058583384429843147968437658246014752159013550375900220178806979453084143295011438059788937238708092016580176589526505037097751741189605539948032878305840270097009732625236475101489119745796103662389239960913626762771494527475726837980241577867405921040670477671624063190528014105313261533884837582832936505069767806195019252134243778699950498520928091438181907423952099222492660331563161139773379038540261212051639322845209241655664115328267724654573460518534827750292870362163032384858605989958408313953961564200153338987974831066212044976892485871406757086437190909996586634928439821657358338912338199932905965774658468600671440104668114025083316150741713297987763097888065242050229895504527166446439012868387758087440212070395662743135428456154181672665953329597092877501014275758689807065844894277530555562455427531308614265938341062110006803467287571697869236349497784683175823366792899764496395402297124534072546390184803164927534458058728549788881783707866457421546537855413286278738542840832498517713600344029791994790090004122377531879446230651055991921757395764510313003914527723693789356330227314805327925886332930380943110524355996459010749770113561085177976904467474046310157691079181200811202393315477529583286666559666315014227551404863244097775644293995051428329187176666049397331820759306146553772489555703810636354841601861664756758854013823648411122929188699286475541817815289116102812895771664752027694711577256396835946941584904834825459910261412198921974659464391545815518658442152230299309003615139263246254635255112826754298888771427976802453734505596865240463866023248700151327044701502638100183060423892883992900264941788029771835597970721820043432471582432140586059098900668981481728621007090908464132239472370483300084159760208971194738992022810142527542402268731671316829707220852561624211097294998643076578128158521760793484888115419125361655597015366461227273269309668196943533282302017673310752095107554481269550627863895586863084031068844352956235125415737476714639351344380282936262508940967036646716255296216058641821619730045837681597979829818523479128292918578238099814927676854007634681469593084388982752979093595728095893295777510917664116185746332014159619036999567983482431286074383876646801242036654058820927598591686552803101632157873246413775589471458318451582870001325906267625011693948326558286238834698234385883457154997110089092829925127519652311433823122172350785997159090999478834942869548161569440730905502215844721562943247425649075267041326919064508488849160302737431661885762423920574390574670228529741445283122080006680666187355463751137105008651629340496624794961102147297202112147349116277362984919232752066746674169587946829337055951091384845828216331261980776259571089508516418528937136172970696811023464211981056246045543369401115535928214913269888931364385178584313979042502464314710685183482090974090235140658058668989554408670258853197715481983475518972266107102943749097279687143457323220082090920171390375079138412481512064539431273586330124672177573468925302740260571630940106276898190448362581604249127545598449275970163136733903093688421472873137440744961688830095103546210126745889810412972000302987923174411195628738509430688469683490690877228371646407302964741453056928682515121620998671390806840224664577363254235146154559922276959927321991077478702816398622141784138034226904240234128747634146747418703061383426597274672952785997207315446676765374604655998368268782994267249999701147742552027419594413530521139603161739196615736312795894896010041176370854513266319157542428221691441066276580701612731353273251499020398647306564851188660691403269791619827212519920941064689241193997033371310479849567208929295868705398467926222737721241391119123514416081781019162962752009491626499738718361135997733696425763758072832782340358599245982146002758933102955084058957134611663207594373422497410513949851364737834715123064454898171861232908449987204011092875103134491485496855473841193086738202686762496129475704965032606812085188609818001404358612959344433795550400710629904893086099743419538708008250341570836908616568379554329660136767798636778808524842713981204834257989730788340203359607549656967332321199616536360834152227174685966056569690426103940085870941641099377518694047888426992798598073213336228083824681394422910780922361402165175405101247903040490636575189002297104383245670021653348208044701653373997864637289339258784664980335319554606585612561583153406800758493349285014110425497115538642870733607826901939401983894434979937518600156071053992436075292033084183067711349485190152757350785606276411312603760981615029050730645165882079091461787851631505302609090738750996280272594024073926251910590709883120733100956006235518103581893203745025282288190520764239966267031533173874829686476992305391419670889398012128744066192563009129531095671801066165521611772683621810443009941879193877481940478123368594505454105645132185076356708653596298386549509743413832616734282227100078611610646802386248269868817309460232557924534125777360412922121145081571433389572248852764137213778825472727165900095922928742857129919502089551897669343762465891295774068065207741681415350963423880008406847828871729829016146632721553297902276750733962916468071614357246755386112908016461783407104052274342528557724191061727391831774053401621871498888053371635920299042324595075443201671961534782447601616667719636246116032252434019327773816295330516222043133866346512789936507685750703178670880908134920403071810513618597987166107174581300617376542004030794012631996285570850975545766600018396282057249625838165934622274030544057378041900281899486906371223543956956341476551086993799510021563633137066428997004660320455324701364207501130031511955863200724337356028388193662278041322292541693058143463013740167207481951717067562172650491536709226251856461477391960508632596271670867116112006584072551035176613402102532405290121915311945750076318973408463594565711078912718694671151290526815233169357614972469109037593819817988006267197192455508210033591176803675684983257290645755420416623901400757146068124810351008905999395380759924389552916357363147160087693326580927216069534262002404360053026023667141913925310745156534386799016766673358104476097673141751793823782753683349315376237715716716282847197958521135472830858340901214825529205875333501093744034940509370416414430298724872305522618346584940103051527108124667085365279166744479083024613191167775503944731261746272224145949133953353417914748722139474141040799917921141451068109262884069592445483195257503717653011969517726892713843798355825646487852673020113612667459556863447620555088133279882899840947691401737116383422431213928875316794472476069530207269287673762324479913198130951948537038051717845069259059137625624193033177327238202635397931857438238515432549155141223008482697289335018233628856304013563053188186145809589297999934459803883184575195294877682337552792469638410341473379743075704390139620606223963938859739420191415033152651019947937034898159871938970946162462424948132030853204041264265008149063647693278462442264769905175165436877468756722335166934722357301645768044696482855786983954959540476872719169287061170584517941219200453204549549879432821081520006237946215121504556744331952237121427663784776889572351250707873409774334449702035164550922942093729884240002450224698753521918842088015782657025929466249141638513055646649138729006846333494051802456788903038779156807336648804393327684993387399120543589725914774748995955300269884598952252247031822082749177656166816172189898244399071445421000591570861595606543264592090001483197863196798451523748326484300624180878658639916834142476315026878173319938801393134387043276884619459483854839172330554466605750845400288843940389777383122274683849307358649298955893744051664750158645329638732993820261486323113777056958473000893327156616203707782745362985290662113689598108845349461378037451262333733963692778228927897945271523957482058567690770959348086463145613807129462489234788662857856605591320729684784409220939023562177909818043661716474061250828926712194627891681504907644520690592040083969264141150022837903392759368639106239935049327620513701436252277538085744419732307049530203875387737705401986582449603370550517904179684709368703762548769564654194187522936521097794737819826460875956483419566489483350959912198623408657019361690150177495329545580971643286966170191984701794689013287289551959461670301622100176900156953965345357384649409831927745371860163562561622048114921270538014663122025963734772347975270170634427947126791598750819238888675771617013574812268139599424612540863322415061857157417866084836886656062119660944536942702480748469102555211358713023289245702139571227377206467281322092381539078343863014755701111332238937133303914195008141757971523759935528925803896180625309112986940400191288773680641499284119017608977695765443765765350066187706610401452987151397079601374432050407888303724033866785955922132297766404114415458615337543180019502869997336864940321732713020836128404760345556547043161826932492146873588670947815631566748660286439395487430072459381847902679408841835515158280503091933459341986871089547426241072131062634128577555555992806647378038837497096992880757905741942217174909657770591638719160288960315515313132315899695627770827496075981760670462556504145900954100519934398811784645414368435722996375417976564535982895183082048766235062555157988045710544464762991438303998929809563519676501331378879038714613898373259895682812303951346114374280698280190077398331020036594259644041950053008977224652547369034539829843707888043949379705281742081091344550817349346121696779929746440435841074668410271083177022016880256248105759396193646268361697302743706181457539061471380839057804737665319717439859283539191958156786386753871714416162137123503225089854644287792307837221508984573743368711606747299567684674439752451953866572770863454432723347189310419571637502303342923229947918132156029133737432912620869430474041746376327222296836086344649290198980409173914221050239583835032608734250309860947203381860623794716754835543722000460067241083424559399165330956115060810610813647032747968798968715726436025144633903564099057869168568392951829630675598789329718375616281402101144135260902779771957102160691062043473676933869818319672024379975155224405399908749063688989247445161700497190440089517078440892148838432770222512800949551406222554807929367008469112766360480558972989950499890028538506341476315793168034554272722013580682208612216705258060668691339640810016350177562867799399197501324129331028921001499045083415368892380890524618119078512118859095875020330380156127565748027458094440054966843657773930099463294648143113919338920388174652517428327964949210170210245068841556235942934604483248348962201795494388542537988822770079973834956577195297988799069363347048903996095329546317796986177715168369074403083407958519140347016164571999013903980189946056074761699871723042892811219286473602674953800112453494457767148822464535458129898116378844435996724100127459261686776266953380473124471437265022379757460438803105841425907520095139974338185468535552677068504018485143859085661837343491888557655067350254480257946307341075806624033026664608962869402916670182735297030135854368039711805740567740530374111161632542123529549069616846417057002419292667248217677016317163829671964141645899301020059183781046011994114555733016238058651280858345157018406598909543251700519525544373727362521116636008912974671202863608120187113747888218665985574480755063179941664519954373482973323692551998607795484039517716878696975369846408001191474934059970579005602289451951195259588436163324990505215665953175506411736533196389029481519551554187894952617787109852997467516428174960982003416883619250361381940776354776273973323719638109076542501069599102958259802193809917078783017860024652558997158276239834584286941093597421580031427909659051341327612435200028696003577413101156026042886123194035983669669872150298384796111079748806063549538402905617232337269476125820472303719308648754022375303473168788211246737888167297190535495969593920186187239675475020198499312748531600311224879886879273844349945938602365499312275931579330087038034473375957575710313343024418563986448302881027768888019315500288666740220515737479578347201067153773621434471430710762311841397494846816110118770482832326314330279528844377846073723029122847091831565939026939375786757121979876591881060195054755390239667093593080165034202611513362280780283393129378712194084439829111971746775219822672586611960544156319398456079793216403779529181702205385098968819559851071981841221464592855137190684501646311681337313061906608044649118796668349055662025605453541742670098312495616018879474093923849802895540856685832949089269065146963253032889404302713973140293022475119492588330187496460306153056172978426379611716848348169451962489819422257946036528010747290721979074881676820122428088753625735236168063724140848302684126071814458272942403300506714101334321820826042356739417254308680747401679835200290347445439066415663313328344679787210217231276036942529076200340158166246692701306372921843380435250418896511166184939236220350199903816293005320318806658227785233891379944481876416796686806143215236869838499198627745983680716937602209645869348149691685316317297636148703910816352760411053117705615618059209668657619909085636671201802367044972540409342650145691467871187382408958170395774911063233262979994328922449835734724229636119546075536796744087675997570669928230213357276444860921083704740605979517517354941852480943804806098803025343872825152571777946284434953826339370411296147764903045424391045372024498897096863169547098194008112243438515993934521350588275362623747704965061734091889809167948922461340939293625509662211326864808421463274693817483372679000912434132149691955534365418300458249655724221708453766627076236135130961635472748859476867302173345876852265725663741340701597169192537807893608960514335035111901164173679859565869671403184838472944048188342196814472171997475114919721740258304273925933294950690374494017145828315987459069490124920897119558672374400568664680465257787757268300470018373112489133486190420767843622348925504324663423704103702935331723711682430376345114215158231304421305399209043880792210270528111247583691101433285401807194597049079637621403391861703180178542134020784568412699464922710458192369834398715101775392104564328441862481600423916063614485413871750413324843516481834348710584870015478533500165924675922114240648678066090989828002659227358951040416598309774157256132636739520136439902252017395656749631938892338552261422826905965656883830393814463925544493242311155861268413477962854958773052480888385545652284437798762543465914775389141408715096124732978578101688237273840996546070269992245870752339376743432389973719666355794367404395504028805145172096728750851328355618206778517185581785756431687006969215500499096368623389934707286520761067963040467276192666650622414216537211092838152348170118714831113413599599436176147775009151459987242096883320702274231730072982966057764724446942743498162651484204960588461057810904584007590037680301698285497380268883995841031725257478845856921501630071736193820018913383626315797526179560038741490728208358343654357030782987908803046201838249031856598751282337424933937081400396431055486339428940422005471118811220674332617711146111692139788204333367022649741815152654394406320781470259505261083815900477110654850983978024903345021400281308772752443504423884258215190482749409896273178340275894932871000463672083016870735781209068717950058481635035498913331027924600780431756503002978699675328335200106949493584973177314617326157682120382441342577271349854687760833001454399641100988610759861978328311513237212378526959092467881803891615643871813955061213301775432266638943308858382415075841250970094358417541068284028263470211618877439356708712578478559442694684421339046481054447672166017610977603877701279844643217677779272763679480012038641389391031484203042082985873104049595255595952901460740595424758804869637188538338337415771397937034054358467834428962133078644935357399522280023231159600384622456787559601585926164635561362564349973362977302187913587292328140333877535689982883195381169458829718427146788202049837023108064251811302254180809720750403656828647179342641800014806544044122061204461603855807064404033540522981363369958158139874070874422543485054499723754078635939383770019723327053816232869912146440687935729994162469588969465562450019063549619001437505008294966900476201032953444172479844891316163536698517512582751407805178033109649846558577628692954505635309352048362138779290593094937542006100152051155905899195345846796203072553519868466693770754123726833348251241868815488635198635680117478858979699436353996007872800108042983372200198085584279496116829992361050633871924456002990326362561135073604834289151325204626737292840441555961130364332890572498767553269803244283869936944610615122124768457287327980631369200243317395915617458726437081379384021020062404882202757229745575568072918048853676500885229010686724415240786707946399001269971261156998429967517983094389529194780176977041973790085903587514862314412520550365889822042835631320017380967490064759262897897545901814661403378512663053641586760124596304062375679902754323193101949163084194716137592616663274986923729026071968573739726594922236937074251225645835964866439551555996965286006142305915161704331808659004366045828625324787136463770437465687035421932244929286633208352262311609862106776822578723456191015626776910399389775818467964347459933251131998460480830102046109257021034099460730836175036690613358544314794469362770107187491064039822177140153408227454495470849276668279504419787563292903289262736902476985823388388186972428125842269535705961905283216481102232843561969729181583650906322753069832674609183332731510062599242916729109111697946893537172007072548465511628997962797750867798756916988402204497822862356774171279090937177716649088929441873672563579182323023293658578825105112277860889948080897020739876577726485143812837766396566630050632551964767598023654551676260561645911459875667020491928880807349617014584088407663001604376065311439851696345586030691717204285825147794121981585183267255266502213662710819929520508623892540606350664749826759024019133577272380445647518897919628739351147817003020538559268359541084902495440586514530413561906137389732229568314865237941188877882739039429068040760625024084706439725065471770947290265817767047581719036213432142130161497367732469371261999876556185604504423065455587089255285500100886865562587753003183380470432567352011815971851134375902923475145837568493963626059325983047790713046996369171617149332455974152670113902759734131886000527454775432768973670558168465731265058987844803017331547073242757220201655012952847902496956304381182178777428872683186007914435921779195974362986868954849162869391484860296290298727009334489308475536501962073256573411086629567325062258562214883608741989410153436615561769007674556114993732461629710029825189478768183576083379266914550179748891561880600418333855447406129904457349486502313536218588318754224888540737294663251332664362412085528122023840018745570066916582185436627736163616178730611584078244398168670040937346900021776932156844627251945454927139999963595875089073760166093241231294756225511586470185479725205884375392837607577330206010592738399402343692122973571229635205426614020819309222471772015169315275915463299038984358276031131164825713812351593722834816364203276510549455277793659825827364622349980269522227023358280822916426060450897013510609012369755534845303129105784956160880384315339925190381437450620579115918789786059068239278384112193700387136451294014565221281624666370623584180629255621685688712184356239556331795059704467752493812425397440668316811715997076373891209605052107288430073121742065012891821112104515630395215852971282343232965913377727965770915516214616568206627419447747504061434556836222802469717045701139874571014896231696745205536913479649574502635035674955042863672970774066608217151092585345188578119685294187911690874628387349920074590534265260346727400754681484834874685737938855202824326976716693020787164712987731057521202895466216899140416515094945777564128190996862565250120188082465716799541409560469077684705953821783006286626029415573513656397048058437157455202900280362729074063865564385553389816324822810989105426185947205563149239327232796627039366885135253284425247586121439459116892604063059681491580965371578845457625022660441675163257232434015028916021279552736038485534861600045984118452518860073637697665642447701712681818014132378836079764234667964517368974758934701235077390046588738361500234038704814680108477116738480661338982941930480183077251614293360790226323501207923688827042018615774397943288991990489926386674380982885498858088421178987050850819718141471546815809564757010306925735457948389803115034916362794740400100546213298369458811133556939251440021312946514646779265014395622629209234027808098611072537559132270438104181873192159734986563214278848477306282826054510927291932789641425826654527012343671777539218462580121549980297646019550642623700154174515450072073745875442726759935271170842946997704416981353692419074952296290145603581335539936897521619046729248605657099686247783971802054775268036375753370875892973108131217842977081235310927217000565772565931877798087257857743722177367027400230322606521510401195819739946147468435644494213831455043607216474911425469154274416110771030104268590452401036042735355615705258555893903617855710553206716539123784855327686758711683482926937775042002510920254405433226629688889586428589051412508243612452000119671042188730099342815631937801061667312577917363692573210914343116150006721198731891268102858782755790387930116921596150248366978349051590582255554607636613268780238125696045112471631636222618344381294994418488127579741225983422050534380633775437177404578784815767108592584284846283372972355555647518821680482531098664941239226405922280628928013298367689798093451931974322729028255096484624908513006746498387352381827078150430837417802294618498796214003373663027979463380641776853604370178927651409607322742603906265398495929010159070453084321103663448711474418537308481147381439163981263711617220601791813731875523188612285591405755019634721264921941467358316580602232127166084369446335495109593801491499715655000144134274510252220770085758576417809895245738181842677365859803559113685355878598296970063486358338875906010853180604466195458069364151577978647545392271263736631833777779393413067346137376061517370339602477123426152399469749878913907278818978123645413154179170775590114036902173568331698899629249708796967611586134436806659681752864330631475418094197785032861788646465527117967046061424336194786438449665076751299053369149511449917590164280027787691097734757478263832422575149339075021028266370367034258757511820257900165736725224384231982791260860451199502495417813233925227068139038063011072326716953933840703770677756343043288284106112394854575960605267140528274623533006903089795134198073423158488568596773907760490975861633685115536724861074441123717943092507304048894303720214648416658594597886153120736399832391873739521706266807354132746828919852241787745612346475836797178740514516142936645219858786686080623804600162673204188297537995258252558890701142390705613087584181425136830704255229959032089972485971165407127062447653898462166502043395840133360837639381227659881506343027539938750218142211332892023053145315871194076185675857809568425464496816678172069095990953768158223267393111411000715090734669990837398995231844517055782977343521602813344203065540266189822020484249228134604121224880989917195950713599366332256514266336894198146947015262371620094829005282862604237715141618544266700527879924739964129801608318665530231055096280128437690786844412771205452386043603009725228757060319456018180695378208040305483820357953743716585741533833779059937160277551308454112468388364191038370344576378868217899731740316143191090341985968837775229541150682568360868051621986683385379111808508784699648663687363821553674854210546188759733031454344148237010176518746326667748939856795460205854636858742758153244127770531408330733133624902449358513189577455335507084634417041220024924785199808561408184533312245348317265832112003060552352293769262437723058277089187638487117166701515851042371433275013431022256637479506652962736194412985996499448163372565060411162844866124453771864092026128697088427841148374798218508912791102709305933713475496456807627045375319662877488902527538213125282808919393798639714771794892614245283758685353207269562121702333866033143227521886325156606398141455303366145791141542251476948395131376581665382350552975723500347247642947988031158857923064267904744180295372902454758580841383897202321182700380364017036950230593259727921054180559283433546515158339078827524281473487724193823640455017318197703723727035259390253935132147919588405029838092155823393340916237100987904389450176295974387222902439545953001739573375016924402432606619101194768656253550053224502654554956025483416250088614228176021928543137599380175483690076674230987578878265974612543209514416451409908713427028639533276497486505200330137923552033334237335642758671627553871159413640456381517810418221725923993045070575801829572683516905324204659041031565293974236731183000101765066155532090381637987687300170983904835961517932061411833248965721373115059626898729308662400307322616832473140436243758916525742632357107362057822021246867608743551711706627163620432431157130910942734014046442717588384952571358963685897597355392120056226762713465375544869101102879065103169023166826999408541687623781821910780287852775442679088999384293677301591349901636958088956732922852082659989612321280575115289090539820006081388502066684944875768122867646240659019573529084558081682944660064544330767812975168122111471520369625633613382593826328653499550815412649573670506542592667090499860339225160783358974806772993937600601251726809256717609688874753300763318180905109208079416357024538610674567561852071069353581124613071991318477917318371772237380776077238325285030412777039755267262477988431250568174186743494201461380825087092336745445939861334702963543044719460659533244955232592296218661782974523019671397371283956183077620326393657170345007390931768971428073840464828191528676656414886713425553502013195213506173573359182705607434118532668106825117164512605265453638705081163899221352671672877824682207930675776657530923574626829956014928146628752686455865113057156563909353703582429458456922247186417712432040133090050935737755744280406283495267370731283495481442841236118241123084815986797785937499047153870355587149513950373670196034860034151518149227711725391213616887303353717174057102692907699977531695575786695433673067217558693431575378151338011229469864175744008089632968211931048423606837987039174119766399546834522764756714683055740947168859722471025994694705374630967519863276604713458160656998224147980626945686504523486685376819746719353118812380296972642040998859301309988448195888348687668090997615106007123627509611338334603930714538936806694896896331007574927759506120556581857415924761815446669652611591150212457513138081417855055875563168541454274968201965556347549323522249717015184795522351053330711575794304266872960805078525646558699445635495099285090940487413391802993730809868865885258671528434771908944244748403983104219236243499172062567232238634910274428485848239456036561277115820461015977807354755308293441076212796882087109801645176022972292258034832631745050676919746149315520400752319203980064267690845509748692419025789108453599145891196136098377874399480974027168652143500682533905436752258600764362237864855660832105510235782795885887420658574046788717790957366874058418482115530213134432778765019995057270711758506190044662623976732459033222248313840765023708768538269492902894990577695853793495700385243604369304897235599012161304267850262360258584112179491786996018104076587403054041416638091147484209111848447325103281074622549963179046731912415958874308655680449662534742658004415037852559211858653397548167177501003168230460828905299057736778308965313268505759544868493376475992875800626180589687084333148242987717101584757476691165002101242550992246017518954458313633325696565047868518221007243449565960246709262635679589470062653506258695827598080253984862590742934166458433728612815110945802714287631543877232085578526216610216996771586502536511970414343465711164097037292416869640666227270113638824235315660862485970777748135881575107949901575878161999644016871762341835839954854882525576859166724350885722815556955325056592427764334154161829145107764501850540473901887893095407759668584228994117209051260897455850895630930562920792437276201621328053486744744191907461167040037433516734432485312884993737990880710327769642645999811994881077623558044703578942059758119702131548566309077279433178466265445829268715487294502031368120017604887066761250324022632796425864187951154326391972359983515719537597049247295102546958226783609201226430788227424159051678656474994071061609085106342879526892580348725526563508979532522389314456677120866962936987737473309236763948602252054477153259100947032450921468298843463512530436284111633618969728212308687974570211658490514922719547966709502387813560162898135442119063900614589700177483806013011826430659670698467700886465156961411920109810210639004010421626762166904390675101513488183297804600742224133346259077319810482499895367010234365281183441620199769254827617894527388699181797899640144365624333198410027561366649260091100692466454323903349341299599202825733707343449531305520928922598824930226137626686302447437571815213159997740509137593587669422168981589282350249365018019135110487652565814253000419885514977109094562050962715723112099006080306179762624743021763706245018927964528270532198633735071609677135729949793564016043613171051134173068226276917832629510651321479279854705496386140958839456665747720736277127706501151875839250447158828805665651501192222611072235573840882163607394256404077057087800843145727840223443079719700435080777502883500069303114881906901950591182577387565350243752246322337999555386765310226602085757072134352668053948522110576107332205108543330940121858199776809934147381950036857162441958910452707425820757132797736816397238721794638176792309183511969443700525738860606929785407643786144040417799165504683126161473459916867370660761126187641216548856932157864852553004823830347921047804765620053242681701140568888079568796353364785956671286807359581010666954613013093683636873679009625597957906567527564622998532939217129486553578842299072160879435862477728526422918610889230615056115900047400699705596683542256185710036905914661435323341569171035477579586861296633958630176936044603647426625739069686342318163488973206464351729356585246622718426995841536936199541159946798514100854631278450066643764423679873384933907119990108323215744924192814029837509652015959112568356138058065872152024085135491778380364955755746682469542875005561654868061920385157328301148885529277973789169463194564540281034284993973873892184847676683359885652987892818376409518381408005190952465451539623867204387299454757296090345004369840685369929333043300709409908881365228024387709502361609906315191306615100340138883871385543200083012662518021538644985504720111701628267682519397970232602068442616128092794781313629030623175772378193391550894146406372892946994306481733969945351530083262292804893658482830880677551437801909652879601118465702057000099449285089854171659442410067048489449722998807409458439452859960457877699402780344546497030949096442206687105155090621301377759256009078429780214770788277644602704348829170438190619662393089083248921504274808248141181430254251512175758446654509578111045779323498142366929694980156494142601204757087595190960402066764941727606655197112827036075987142335810977660913575077961439342841180202679064989502423779669578938654632291184735483830772812372265253573680466823274984131004383497297671868765503189868806090302614223463775720952152366276497678149926533225857592345923298201514181844442127173518438474948594844707314632162723596270151708106777186016602046561304687847358200920594728317915363305546941130717273326381957725325866133240518505554343608413305801389568399931211713124330028892420207475507553186048980516557344944769681535714669048586307355393343050971315439598548710759103125440611219612827169176606531738632475878280105933059334389306130601693094767196293777467119047784115885874460125481708570500727482159520807611503903340297812258784140234416943193643340995970535027563197393911946741503664174724574966019704363305439943864883858756499596347594176171907659047334861315326706845377734599968913948370891072773316529280405447478348532686504228079853290185809804536222562684453899605096426872562471072421441590037385440715719873606903034517369380871833919413245069451348363643690575407596647396576235728590292555050260133323585436986764028878978505899765976232489270190693131206567168256748775423566698755914772857811079749502497576673840361816168460563501548341539361914254252161077286243620510825067662391741935359153892420726023723437316421922928594895656957479988848288032162231523678067790086450886689853849682747997122723582611203331360702640660983106294313453187436774938482395215238612139392326431975575881258193522414275170616444723585153023349155549217833707457305031758574163329186063015709639404081959013492067198735978736200964387361973276043221594535253521175689373932431215146227666378664361440985477609470109884082620622684091920985691664753360648040212581655814688507552898450550947788923824166368308819592883634069379064618224213513588560776486334441363117902884861806552157407010625987428128139920463983996295490212518206958920419417895328975895973246858325371028328147944464454204550029125828302707363520134509070218550044957188237580442720525906701051964979108010611758037066769062225332603321088926315255753376988715342051641936501468324819319377745550421008613223980204399169896193179862714266662146529961687913259643309728659655636139170620459305362204628619833160971330819622596202698444771026095212254935389705904898073092507256297586801566573344508381476335111090013331428924788440423565765790318718082884000345071667052709863455187976194635920448409231488622133163444533466979060453741148710588982428230363894667653691244768173709402013148831706257947806971458263340309503426263040087235551238332085488900007096019702164932399101355950067768194764974128227019037433120836640786029691687992576161998412017820545497709645626733044230805498406183147280365918800706446170316601234747883231622811846193315605351884437102677745295606387943181987895086957920672095857939809965664490794924195515900338190858343440016962480346970806330384218721663920499581696580303276318317902328106256246416990822099789286508493246461703963834391306407214109063401720840068904888950884671932640496969959483941952937608093789822080444149344263251031151892597625388860261264145419429546239370336807833469901282684815768003122908381195588050062769413440217707816679289794516833043730600858188462689209476880293334276915665414256791501818366521412639441232658567551565083157672553083884624545109400360823141536132115704484279832596287865905572128112801042319234173615772868449744166817699489815342629735540990319371556186086631731831434859971494543268279561494484181347584602083102531079802386423069882490528132300781172807434721360353563880270663855304416757969264261453830778590149442847605173364063414245916866011936005428099826934955353913810453426890544574972224346611490122067117876388810363856300427114254537296227089944052454091625314238670559050893332631239639067119837176728715244769231835238647450550242576464533579032913395014045170889313572103127158968468019484917852353697323991010166508705589236791418844025983711812809471810436686282166724666702765783826926510212747214873280882105588647450585103253277114805930634299959483511886034761784343295438599548708957018227320819683511051234508033936404930135678063131758126133517744506032808566239591128197900078306607286675711465838547629881839153012769278394554416960306725029481778645681911589613351991356044741180877173778807085641107704718826572940572871393681012856115938163885580273991014201472332264508943870394106354429352193525930126272768446462860379338719900970572452903774901108847072355621494846124301044766493524063342584681119538208364314971720452195497659370535452800708863236676378593273186854638084884608172381529427481667078940640489851814853424087941317704989325666133671522533829240346743965169929950252002192082594620477302902982415116040070514366130252222204369645819224366120928114837500717861801520976723839599805004234999473413380174684052579810894575223514242631178910727284434276337705780134414982284254656205370427663577897761562992864917592095690152227473053325202404881283222191049286569006550181947910650716604054539818478781825189290552647189584482137290400637729489379441035408888844865844084336004683240128695667950574267480848807695955459593346460743436598589458384405706176732500590118843358243263557244399066060418779942470266364993272674155582443922080976673789308508488723666738011921143867617838837582965448034682881597633245695599428209484929296498949125181746261155213137094269240735247938019047400270982325631416370616110393396121605831472133804531182045198975055963420841153635521541504233471537511740810544096531099653380931418823976831785046559970105050787972129922925598535045275521837386986531914584935616484634339165000452239700560680223228104203336649755965916084447442920851999314313447320301998360958355488060607057726771187989239248223768782646523589135162129134333761640564300721265622543028293738112698085967259553444166806090742828409212093877152477488096322950931281365166127558633063106882676008540286951356813295937807009576702061210290585215486015252110490558322110742656817537804287740327049981812821168803422438568872308799618285790733034288553021989872427636409107766997506361437142525904638190280560291754209898622168838667804174434956755771785959473437161659232853754773411039201752837383400214586407855740846510746160912009446107792157530195251805742205976921124061100667847690204231690517097183071857654491733430422012778639711913829322428628192998394216400992364867298041793821085316181453191988084236529553464029586458572307645205036726862468405873203636510286942170350092586774835659261687438362710462893613437936352513467922679295889022815759187853619874089403062865136613370512685872370799782678987361676671695832343260158275556704416346889884100567363580473828900596205562026427589896184653528110513050811608170133951409286883346865832964969326292385455417733297620135513725852028948096654098162562363598360274735788926324276673116981837976248507357408130541707500466607255626412758005625670172905387278413451477486091858003024365176868890396095577899336706366120645013296165544866540611902579111460525665825565715801071056275431133726810163872644120198703421770028348787823754858822124692583625107632366274605111593365723804446217830030568748994461198344453647130867407506882874566048850216851781192887300873573742123066539381301737735387495871020027447053422756672042003492346241138683156218509978242671669296695777069741346703189092148337413094765093003754290224222468315868909331714899605003898291305595596386919596595353742690032606759510021909271006679199798121055600918907438890590452643641199977607393234273414436920694019339287080849601979708610367336183091331121224024643688851397250755224279146928351772907079942545341678458592342705355860319470855804463650788328593271302090154137356057337803314555688115806728073368238856179076640387372937114374722261734832669177716039253001339708826714352422263146967128705119157351638744324934001860300508188310540611938390782999657888923929784703573669575785387313619392579419460610607594006570901044810692855707865655944457018467484374306859706258625685237521481430407428861472872939394757153643753746813637959499422475616590371502356521865559443057919188491359051860116647564446038807377510420382634713246281968375851358842606528630699859721664214247634560260401900622373030105712314780779642018210792514588848646258282118010495697092897561613403483091381182764612083803470597128370143142542221682942641868623663507688286471761168425354209054743024408336293282190864996124368484571632740402514097416923247117955654048998651926318521435581014297762934341767651477080744274465538094755558914390105132123491830113638906332254929623632710496796104698449553298996531857234336269057726670539559197347798254611619080392643720594150473725558237761411463432066331760327531137375430973141078342630428470667190713426370609081778858279287377444494506321854239343071001731632221824723470610569287068191449059935529424608350563826591485467334067108010882483153389690425440673684072652186523494013910548809680221297580095792484278272915082342690455181975054070647882095383418694294888306332596919668112872847834338604821236444452281313092513617490302868836701810915843309567794910294824925171643544811416408301946556245618006812073925093346588513358972116620590353587659628081641832307246549439033572869202911494665077066255728826864265078889289213161297883508993673849598589434258942183689420564987869830295674516531431024941222797182487202129821193162355493368744011855521124520498212929285064215265509063627092511259005866746883253174965565991330468085697120056434728378770238919841567631298811015652038729418617952031855132651442141620785153961664488578864556063399676606796791983792413137396629218191886088067903250491876684506135877337594093548388467176161025322051524451386979790152005035515065634580604274821064123217046500504940964361118555647741651565543927083788920039525815505120591128074350685466672811333087247531150214217822754260447610039698468918151484644427611872024864255815140772781967703177700439904061570175408768037672710751614510626490016462717650854073248381655935878236540940076633168033977837704137102943652971201087473992911853891421464241216694301176033521364729424818250049521840532783605528845831791707388159715460521078988548472490182270450489396839434396590583812454367674277188771454202988780310931172593013947618889055938505267358742000118694005306169159160778006704536369752717397712577690492943175039715602983490749108676162450697299900340727843177232184684065167881216654239410363258092671670036531826355120843500564711547355338144015988960776931852620089348111056073829478247330019519270778368731711956672317537580834675186027418510067013776029717890294932653056541238349807313958490416739838952068563522878563692681343044920779844647802771375515711164544966307583283591255532423057163238289857723030124496346697357409125396388439388727286701550579656100350579763030137180148188322485110116990913499755824214709584466228469510298534885623783271950240185924972831119045897849517152555406907241367318590948897060846046553152580555343238229749185469259317556133165074345804761368068614474077106207460960410605077983032675948187480635940365394574754044026758031995071285591682032038402494398522476025527055855299555973847656299215173383590074390963988432021361125074923333464936185104319774881327045603642950311505209228236574752237302133673236611546698421080480834097609256345593302742611664396827941356595971377386236998242886431327348783001932683019297267069486554581309744353587312898708028174131010960330160439254587521448107309678240565509316411295028921962017629607192757504416854902063267059837995416162928802052972483879210988460940131407954480509877939078484695176349656137607739060382921833744779824860143809715032075902357226623175453793233271005863041596224657199398160411907982029020048027113373774134178081943553778388760044805057444803813748028796145381189133815581534326033591126282576490319793683367602811973343054429976241577647049621012451797000355275319880963179908652027122138883751001261992562036933497101096551169392857149751139768042292468502966797829296771563080897363146081593148365936871119841022901183065021132703858785282583293563462206624748944899835375582917031532949655359877389314020897907617120697833907150692027151210728201230711031527640941063500605265612577376046601056908243875743458736704829801414861745269586948181697555341651906865854657722173497043614359440282318795289905942076057655049518531221966859150771255744956569173870907552813470710925534964872380318758345486012234545314121337176599902097816032690309437626951336250428906468647730922830038054816527654015713830656971125802968737739603519021363934017540670814231825395989360963248806095076287157374160952834844540021612469272739310930709089061182758179856820155374625780299489118715295312922633690900465892632015944424570122028851027815726929705297830692826363172142738463861364459130321125878027691604619801468696344567377469787701731589309812017625447564859352680793364899862753492605312336846199110548744890981020481592951835171901600535305521236498485743561426772675845043113207747332536389012434627720153276747579514968888150504822077626523867542775530702214003488229739745721644779282243881976245435855080733980128615918369387905206720745463611428332648881932414828034247200162904229941273259468203408105499556571946880251094757937421971402942195547933288740825658504028220572643053513729458006195078610484668558514398188606472613871097837812206846598364898981521772546793816880932558908761113209597173175179791624932421707592328152022007946405583074848668931967819319103827206216957887351565559364356039203733179143743537730215397911369825928147991198542558873365752868677565450764959816508972019828414568757959224076363629350488885471705565065152259953120547364612503094135212140936110492984568110762913746713902316775003233591493266498165815717920814135142448931777757366671385409790416112278510267972037225351617353720489236246171713500990405258649556929405802551173372926761770759929103445451003143915492992499348322705328080879320509539231087296825883188856779068506132050365196005570779151408200515698696471399612379187028516788152555843160554673112220028136546160679900514425672415513479048895695356631952771349649558586645886942501868149249276558169389570031008555435813946262315301437454546850119733835260179693803182451586856441156261560388876380270951194410351701309408937855930174892913185806711792354376604512778927943766868040970868613174098322738122929546701440072340944726138576382552432444695522964549907255409869945100577875616349176896341535854789378142086374435095383781342189657865534881584975594202390701811022190874993238984286900335568964191709996378102586627176609315138690193172186933675598816512838790965066824743196863833658700353033353395940694533042727564137374835216009870554755792416867355285482788551275917688949704779597291154594659578174306892847232485474087338613042858457914129675999756379315869821881286105756321521393420436933036241243963642289476281784379882444733469693825774222760471000049187012460744724877616972194771938119355079418875039148864250455733919445004341060099241824766888268315160180377183430454565477574527211197310297779245032157621105184593316672062231489215102308548349613470156155917867529079967145002666988365169011285130841946051422989303129709511464810643319688527021804405600774109290399529343104471366272151708137568272565323238440661517792334491259543673697356792315512841521889946817242848088151979150967375763082844106691584761952769368567398332621243357082978174646049484230473930613239767915166596880221871103100592643973740607788391835918454763128898698091933893302025572898056535850003237825058110189080885882601145536679284265316872310315014055947910388812088827491804953562901322374807242084765798130715864991355234181815211455607721944022232604778553906133250562666529518151360972432885696743100959705161577428647805588849714445705657539565177630369376248492125589613842342362114578017165506932756171652201110479378004127556322583834046259722171766278446834056496226657283348389095599862818189873978222240805500572643321297709372503380836736066966805067579309539346775449012477482654075030496529198226424273213655004625612523400678547247065740006647734977953757172446598566546505163352913422638911828982798573051043099176101824440820219766596100103796417135891284497342257457205911839273590853867051981480561628174739628454274828070537904904739556145885393966705942429214316506920777142518071244211171511228124566851467084137032474122456914944198304850601448150869641212697010254327259217324438362011508586164983176827713647090024958164455573746375745540593893897161308855196341197164788840163904412974344654510905825222579915803861778882023927836575462737632136877170336451997527357288428253493761945008169546397945508848792425971458545503013707865061070893168612545840901916240565884441135275479998828607672884187001845316413429003612408335754595565773370547120309468582300863292185660565359211780356573031448904784794916063054905018203625443909072044460690901927005035785445458813556299924498492340997281076593510371410882527512419703121874216463383969694675260635458056541085416447569448861573052855416288589864748744019574520531119793832317523215405276305747210532750229446517419749083573537875664358636834369680447985987563175069865084300658102852242960006425632624693086153081787139239323325197570374072684492661515934779007284181555070054497960476179269494959658151499048060739438056691402626382049015732851990688020562410817085117049027388833821799247300991128459421783615947493246875474769447351400101847193280932728195775829899582090614543084393353884321344068472457444669079337444146821714464933301740962291726825356450397433030680126786679937096055604375559493438441636702327153966575359697021141175095765961838495811926128445522028846227528637686437548320317567962454211947465452369759480199846198640194315682117613261453690354110782205528321422276716992889833139970214055279040296059038387171978887961904347840214233277662608049878546239383591599412782457283125264146844662736895886256576020218043716884980399595321829565624885344945391741283407743265155749314222865448176071733928339930680931280483877475870701578116691406711418910965408597030577433266992823767902299705481876008417384235282229807278398077913791533070608007601665089503891083417289388202066161203189964458083992448993533110945074474785821852392894378753343505252577332492005564975782071697412952743575359390178160593153966439528864381352971836557242212070037343840208086393121725087772708183319901994066012979065674122715846894584703160402645872448498594028578567639904797855724191361517266466203978542029222071083620966606314704287536276519936619081698342336154045107056414172955949251187580911530144588887668781537737025312637427766232390721744050725050358988239103892582490449664794792628236006536114498625436625663414991013497732951441285420115995539295097815650829818422138603877264902079310298684931310619868170052947142376871108015213474239294088953583904242092162154691551265828727579097936427607527108175215648684264245950646496182882070647258942080425143669573629957269901051592142105140818354093090223230472771786429089849784577804868974968388038793645953926103365052569341912008182605106180902535057838871504691047080226159033993157095185223196671046440392154507830098551105663280369051417562011179641289270105668094052282685030288007617637209404082754269832872928011057660792462581396691574402685764934391494793235819604306932431890285953120013804477318822434730250987461530370409143557489610947393069365713602959845406032132650131380784271729190212178797887790111121345410769365245116165410630558123376317009669844463058375209376117887984451416354530028785233175192793694990785072331023869091927467656767833905600000173968975767665242319994186826307137742759485513354781383383831443510423219255197333189293446136498910276075095996154810390999047469190618383778853771342489933421910359875820488210551363888748208294096956308873284162488918559170540928325485302892528865542218026031740357667404332114200752255301175371459962683362034778134107948419748496194433802228587433516909062911552646104323616232534550946245474137514265250295087437458747303861828929805864125793741756253332807301518454858123887916016263645793554007881120868615191529192889718935753435057175208670303176491490552404831567234530541615893214549919276748032184328995818821286447006598851588400915736985676011115652392400262107746059444508855415434461065762880459133190768475230095124650260465820245493115042397676637119775119640843333088988962916011834694813708989510932824406036371403793801021261787639504210440816611750929754451519294257482065732941878847703645436973315391406829013000596198869049708443402325990763212506434072721917606199249638768923595561596198478542312183276233966289317836674599588693363405916411949275106329654562447027877958055802081018804902474060706962816446568936356871938278376995547537043287710225226215212703219771928883273923418543806548893356825004984522845359577796621675089142446326299682091721373096183384832950349880117426627050744244555807146850202878564761684676760344081297686740048636692408959409159276383603003435981628079423392290399309062314243193794350431943910960361779181619436786539107269879240065571962241680622480155533991277018277154826060810159315647391663253193447839559702373257586446521065530864413394784219415380195933541850338457933918795117095065488189591929020953798975173545359251227245512520462233417895597897631642316907167238724941289969427605134348299402809576653646209706828657822967362780314583105461247271975065647408552012596848192478230944102864835238910176311365075467665018243163089590161435660521696086461883118904837318963650486655472372207544061771805644867901003004662296798673984819523378997577368830944582009774686748383907245969539980048917853872220595024352469490076859194137067835858917190439701876559664145303617902343448553891022838035116941580316711829594517573503220929069784737489365657911182159646137169019192636257197132205141744075872219952076752684094615209570762146172054619214714324822231876001989789048458708118305349624668978594687611621113365921553996397420056090189980475985636736381502483583491992466056370545913109103538564713580327335736086121953844281445436754597250763989522567764084654030597387656751629977164425370767013650878834644369209051009820083647149772173196310487195543653203208392369287556429717803232429458249531527397644270767359260543956796893039107697019595219364056414503703927665170528042534735807871810950753475306107474742693149222069535092252419049146899720906501183751511652495466311442157377238187861140617408185032438555204946182157321716769725512238604827025972576547223806469760630754612553304090961774404802637730631254262841355248587909061576726509933039106519926995380225893120563679963133754430086628080928697407993336723904838701652933275496761674430766121581875231043266901444778519333303843635556996777163983209416752342304364723153527677851661798823062798649100816952601999902143897010214762427984546902157450764196199408001560357403034341584705342687026864733141360934435752555081441447610320338687065117518452252145778671517071049940096105102145767711634827931561104200581958776833362948622105148133393684994607526543750863241468328511963050154522131484548647281783807511512614727455751825527998217192267576588241149787976441259329873239006283855359277301317446450131916968975081513174189861916359654515210565560230553831412456470982088774115683942350669624950078088436919502681262543928066066916374851722011944001138901920970700590365845375180772831673932244297126960873101993439195625906128572232045398043478191571376020077708272428816053461223194027803548872703306196185729190906370153062948559441268147728705970161590957421816412302814330347206056195490781654938359190170384450727380472351736039555203700052363237837547544584358747063147918348160329453019212941236236079473133130701347728298236351431073314518972800085800664956627945365264351282570027913910486225948865629429733943005798068073521870926062949343061858226027445665283781784498505872773723394985127986745310527690274103113574554148115522304263660319157390846661852960160523245601852915824170176256723003281248348674640675823817786963983541984892718957441997150671483818832268105346119022252263561276294368561777594732708796438253161862273916153042361351088882103859370597173161850468971718601024741860708117298547406268199102716253615840459662003312790767605672181994209580494059688548927466353358221847204115643810437059712265241276588143203965400472632850385133276249825004977436869622930075228060597660995681785825762095075909790873562642992336031875695009179483725347647080297148849535140463912689515377733930539965571580123717483957689148257598110879687105377776271206080300169108337881564657772234265449939868627587501116947127295197195437642063752326800643382429481026952769555306171814737975333778981487788153269315447626854472950675431527604809577802012164837101044553503211064062972274610500540847200447762708534671026438223416950113189943699125016805151225343980628084254210209804398779305138704816637863691599735902000433932620989753346466828063318172763873445161340726521278980451749865201093323166912776851582703143672751312293428875153919814171612659701241023747259902597878265989144927537308311389605167695138716568369417818376713506768360349436156293125487871642121790008482247517382770273848665539509050177980796186470335034840066784939734483905458678040825991313836323394733155159327255579102285720849607084562796619413333827775191425414881562299009046713836253644030677948857713311720024961730039580515536088328781876162507593126669892642890644792657388534480234148693624594954929480408786436300787134801011404342715816842451180553874424482653816517932399952397938941132291858668099726937079579876451818074724473129278791546873882805455228496428208801981385962764677291978494241384953644798441962554588783310958299971471594588415860492258758867306518338811824402195857005578782214352643817291172494425211011081078910327957272933923273434242325719958771720317359770095377815110149646866106382456720300627025068132508673908174686926371205156596304561377278089264143497469404225482578332716510552398553167354553876405553758566814678004280055531083030581140491284159274146661291699073129197801133193830784032785708929258027062291962225094580855212325096484117267534600778856641826980406453376861863048652932526825351928979485603545311361059111608209340363366357765671232216303288594909365132311247395766863386315518031338011161447909811665061061340130667196602447820142642700278865133511511044969027018084259422049063471325212487849031834894213551274005002063582230524332090023932810369717954064970831874644727922707214906926081748720334595132592177686025059736568187186288663325358671241822528194222532335804986046908826334036018787914921493533714068242901215172102633518898810066897208129795660990788869230935597237199517044682703077356703015759876287716951016762583997478058756516374531894575152085954027141968517320044596044925044099504951692361676790575539135690230637579547489754591773319886079461490595225047739351437627021683165335468685624727098796739237718147151717314178711982925027453233133194792235020002910374153258607293659285451100853363004757129315350114221758363446843237982372886928337399104221475025446118272167532225984207622141376912650145840426886172462962552641842650065650280766519341202576234501898722492483281037911476116966199160125532649092253436560418716026077485034443351817674637430363727741701704838619032230694589733513671898023145721205791433002911198878242368224665912065493449066258865128309580429333287811238275590667849498900729399140897663871395853141738612369547241365983051136302739170859080342347462522216119649964217240123527409924088245819505616315391913987792597108178554137074853655495896697157475738362159551183751547160932007542043562395875027630443861531716907640354774715829390671192897807762724989735677758643103200528085972772838713239119645335470046631235407073503141783573501455781825108696386517252031429798871898657758448236954195987513862514167810442380082397535500800658387378936465834117926878998183746782709837921289660769489755993482749357415011747722302707039961612848015328272582708788905659196345155874347234686524514382815867838834519036617870287729283637512471668037728128365594702433865533661895735864220938073026954614340129070709020752595731352659374352354478336375136847489033416182183428814135897592039405734478301474173578475421688481921238577200258222525633702235536990940299224299399777407750545772400685300914026107401181986587864605696126581238155807072499926696072026240221362600444433945362449065612635021010756662682435391081983020412072243391596894966472708827257912967130937476785312371958485876665166150962125510283017248576954310237699298412479501919724421839780026690870302160319545678987194317435243247375080159125882554183121251183386128008832987414241130962487336876552703633489694031230160934488645130271432649717770982649921559941314792175675754652099921973274305835149370078931029232240320470493247285952485660292214056933092421575350530785159020365087460290634558809940399432120186713484125426989892072918638388465662314822590629937517832862002954759596927513278124716549324849190449193439017979669333213366843693198311894172316455810073080234859595500458613602567179693295717180452027742790324464646761692570530727854941317117416606459561748317156555549911933694801450467437783625957570668397242965892401632949996294988578579313269876669392045617729908353153583776606422348806245336955304279546327114135321163131040274537086206959789810447821139019875329143527512192251977965873831583502372972033970528619636550445812655674181606432366031665561882612577410870194498301500631936650156283126116780268177296236836225222191083701869864535251827108779599206221343469327695638613765430253817478862519902873313058395331905267075333884562448119474529819221023984768408261664126472362128015371528869727244797523703219031949081141048461361850047902894026005350292667583876977464758215545208158145422337423199641998779081477978298208647479777875360081376117868717214731211504584910041954678146690135588289792482649191712126523513114487855841147063670689405213560186613746542202267198509786285753158912720525179226885277314252691168866844525255651840630026784402340602366832513335751222876313101004368028904933913322969804866546208501223476939773613988427427539683200880791148755651346402077345376868176359015969245254691565487503778342407175146193259942581509840128603812182770996324717963709580764523785370979700141414608617301466404780376710916186331356195679935382132408018542362727115478444727157104230108318983521889552684904383178137198642172912193503454109710935055915868042391734613145351035953186399618839334632499206915557071973689716837409521286214092352685173838408540787582406579643082157416874354145601819664652259006133030786456522730108248647311666020268742567108945463824851264644176802520212843883031149976853098816546999697349763827621790702913877922228702016569594923039424356189216709872859855618306757080630788145742857064930521841735262109576488187247316346946691424780942239074866825439551619129179874528146958068660910013777318248868525479178353103667254675437981540306119081762882430609330547482986022497920381202698703321256656526439354028346584391817699974052981202182783268275836640887029399920879334657832015143852694860967980083324728467645806148045752421503071339603086538664399317011837605629138698156583985401420263899712579457366003873446923803846161092971701238208977061176831399434155594025090008975436608777033053090914140487233180848420179916620496776421504911081571790702229373022863765457845171725880579547425525019367775787406899228496480328311866255037343445418169430539430183573423398742062400866225469951670660002309437181888056830413189478746833161670835728318001544668592433191728859106417587380652267904347461293356765784912403694478924673729863497862611411304264092101782973011072785243410418933472503507263661685360770988326780124396057767118546878239284111461460284273664179168617925281645265254722567291031021592794201959394843370202796781255622158632300643575060326610545743617754738622120446640052808270792175993780237711621436793963780468669476667515204844024691245760477870195972061446472176504652548488742232741350340645451332772286160968839554244669116163381955335823957925007382489439748407904155106481904223300409724293741229206484500414278778844610998956954108006992048315590839874119209043426829904483867202679821154723703260652742672233153887119480955424896265689448394919839696706584027609440500570399336513122460317627403546538117313039581013498668666551478643983214798012121462528730787260678826677533610308393673037055676287565731591031734742168759651503086876165679253162039129961658679687603911092629001212104639013345143449688342807933476187377102456078785869761194686373993334664710104544206551354345905524621180004026843356466795245341021068133333581978960252345062218260167088501006111572840234241306796707482742815397101373205211494026708371291770749874913458401904792842009677630914182026761900135159734612584764370949606722046268267537023259466092780542971284271792463821481158624561679116448202169959646540091371940484330998173466741206721078970221605396705552903991151321975011677480765255823808487668152687814484857827107063195398309750695197661002519016740943191447706169560377924769923779264216987027680160342541595298391565140156588890042700235224078679344873385435155124677582786013667557470063765429138170261430573120065468374623961427861388196245584353221815736729812462131236584905174343213111668544572480572139455040494232746707091735861795550958469874200505133754175310384357632779683068630045558312583756819400208610885151086149812058462145512418970519624263150190148970220152014534853773811212087021106579933432367019653307704021223607400357869377054018210335363899505389132333248588822895174211068658679768443214169350247559519522012616575891249517309702961334566203150618109359887818029707720967884296125879760011399804040551201176345955872684568257441831328286273710752104589276756668018534813554173561423098251098581753867177417028588532316093767039891346795482251571999353364330855221875748825228201937378411635859813821775321550669479894933797190378668342585182841522109915148981644799387572887495078817150809783848313940625095287431557454309113418969501559029606240391401106195203039284518747889585101662468110385879145085081122557759335180532462979100517059898486845601514673213192350187493990515689306014406030928083374495222763234244769928871067879344175436510447283510355788423732703054479924531276559908243544043492196757049911500296065175241618555810486424178484315127902238325086100917352079813750900145414374911056812636243908065442259927673733621365054406816633753062665380539083786875990140818125458105289896290723720830683394361296263507675021213243170881324929172588048639657647221567416170845281889120015778023660799498130448929289907871931556420431200515690737836896456356375145328707348663655254856150777090025510558268533623848652772300047351971420751215790134168409862743452514432698202772472852030817732895026106128511664506372498959830099836131930076988844490558713101077319850532847994223799458978260067544891020443501259912734499794860250424337548917283008404921883016959436217774862639641916093035850834423670884913615851240100562080014619579999620105575567815758162097762851146097915292276130614322813041091296973242979022170748378337123255735738008004170064953937045318905670445029169624074805677511578235695782252560527676770656273851640128711501858649944907241442455639251417185988594829915700971697747915421681855361295334719571034343348572771430872829171923772191143365429926164804711318066053036547638339779617484505201726095574304801347464859334095029052965786215556515623439203339501686263080940230746368571054000690257092899492281821822641973278361695041328836619936397259067257805471459815385614568104524443859707950746241077842302313975521003590062852161767362237284309464974014295896318653656750867604546958995626344518910601897352498010646104660741992141981444459909091407391568812148069592992225484610114228770739128278743238591857335206431693335947946355208283435774573244634658240389299706341740565160061553353628362034626031977000749319184016686190106443227823893367193214834878202929628776336881311542516878951213219815888159071355313312596960918930151635475568984239044298082564402909093029900212118758777315104333255070484631252454147316521381688296074417406140958125106392979257570221129516075849542287447987703683229081710149783240430759845054250200938559018417702200374548897902606410755466955100185773216796422303471192117916499157104054396199296936884111368229723617917287688102816038172751468082749670610672237091654920649230176730935265633807536595750557798894411362165703000555990974185223538394021491835323666867908023924710114923343057711734872097460696464628510985035612454524156040356004607783834906539892115855967430261498997796557365624079724753266426419284681573766706393560769519290094121188240400350643637457811935787173401625915881604688359218384743221214939741581503759101066244508414143166054197373192277679475983785739061712344329231442992735881307135251116639904624359267769765415249501302522723670066294281514148083845088156210616544590285123193160366687851023054786081561011498459410202051999974974324457763646255218921119189199790638277096577867867265027846950216428429589361692014123122654901837025666315199123769681123000376745740066651286483455162916147566153748288502410837926304135326914052848306728799896474168099468325145022490851956338370411702408293463270586948912504209444065215387411942099047287481755002780392307617818170332916480286829313798431985434860372535709459699607470393454224942093964283228768063984969621534983733300234409932835471495857015332373686832744864382658634525500413934359325220287657559244036631183354580987621609146544614158909616035565178989790208082899656193390534523207169375029173538903869134378602036316104872100630729429832477309928595218147716722973139791338959186962264819363103459537657862346245386389138304205326655195542089812857373556657540541778716695739783579454563493284695658372932483549389020484736443486204865790430465315461073768088506410277256940829240824804469319580826841081339828453047306216557114086692204020712698313934588593864921164710482586110535461928704269031822484814473727456087384207347310573083983499541933845715963756145684267991102934159118872303188976629778108136788994445835974661021082677951057717990631998635474522704189239372864332835719598728912925391431322934064667200367419855732651945022924443251383845762944399857721416169840308922726546982745782728649353940171906482017256367370580469087020467220818453088966594546579500165883863696727482180896359596274597480346200029755319133995999210249074277219465620855975148023758975101036654782448434664393587357017298229251743576224968602665049687477305958988346292267809460548738474229450753267766705336409749176687764513388472846498191374089847617782402216007679867241445937373541858007020411209291510586611764775043826293915336473044487313577585861313496898403350980155088384063614651488792828022951301152216158779933116637334272161776119126165740724233462865488745136151833217712624685465205783366783040561694025378907592744069394262055701913627558309318127848816224414557703809704610296550605467049718734063880711017511157429657815103527250821896267597138933399394700085261149421940397319046555221332328767051700512943160774681754332013578129645504597462370574730798834537216151103582331968666587979401539065951029145604304169442980024742846111895639608005386467893211465411970822143530084134958999854949695767186296487613804487106243767068850832956280244879659151095410878715743506348518449071585582997301423746439164629964314875387572478278283204524034546058895876400517208461552978466094174914504551440533381467792872954967309253833487325630414676875249134229197718759389528007153528053102579019813218033028066158403381754408702544067692462969563141893451869540279408490590792436100524585096099396935254801641399768604970507524356599444342359750342284350751972045020432484737926747167734473196869586641351899417363646113842472406953118449128699142360041904957256500522997104658865198127997707485064982259159271602645016477268840977471330839524111797892853691003946836907341630401320992642473143737249585847281897224343137648507706115986047722993899353740055129107302993089525879951764632184188286499255832016241579410913079204084929279147440188083823441772986126613347826193716998909094654067858779292762019025398150000076236060828845198509202682189075030256168785660584320860073439620179880784368557926451523883116634536951866117838246044734705658431372300235288987780811061970449825242836955030146159647378269232023022792470407286002288283195731926914673827989761226686866762277865419331743774088992258752800400863305298109086343337423472666347944863166122178926342994454688836692174112077110649623231127731312574733677407378022676787521621722348545156410787946538727139546971449038258937383080391931097588793906976204557703031985138132891058157408694501986981612926835490273136843390262402499156055804005184077906395946005448618796962191798467484443590376255736617807061032382398167934209671375545750073904813957347393068207284804725825916466806802129195147815846731900229275431543247812657345935522364529413155457717590819279457473418393002379844286615901816776677459528269826568374942307748150090075928099718254780049957149776298751054428223092106516203394484326795012626399092843453427067766962617446903093851329120921862677181249873618591817278859313276594230757392429421001930675282915356788506326546658836253581531301633431711714694243579090266090822684549405993995402061190993947068816378400218539580338505453411216745947744903300878380245701247976671740497899554829065579424602070736757742276336804663686480032861176601487265521934771555491542647870214932703573030313997412024719648893493522068774729273778629906495033290037944597053200336877143279484381937423461203060604055146478067371323041322986874119487637227378692845156255348975465722611494870310035775638013845715055814358031307373739596479902608831870303427096622172628636788472501564899358540957982687043719049614975198851408150837093412666481765254345583802618035402220077065813416422157442339396728730948886005798982779919504231929060547940354171824882418948557796598814217789401240775713005013756846165550741583739973789203013806893118133259041927127206326859728552680750249934965866328911944898437746463029451095097953857160789563873801482786561907692387540674016991517258134446130675185645508504635471613617742983101138467306365123716727985514816156261493974396967694317011035786376640321662654491701022648295647517177465478527859232211066894157199311334996120113993191050794736565267054052927216391876139064104460610020847792855749133548569798949900442929354662370824176864831821241061362481225992702757809244520017810841039130783800381819447349920470422263317727439425300544152359996309448649029996951131575477375942533256948657016510919543117100909935047157461640147660301272766106082533850544543451463355168623310780821644962249021903886694375942031871205944378319420475036295596672750508413721947771439126192699658283029997996322792489414466273322057446685285392628086173771446889525760432117125595928756899281720308018527911391539946189431492887118296887106001307048219712385711229448007115327769205009232149415262336026303529061000788740820866807008097505076274759033930567947407651200711803393680475020189434609104685804987250828444346330322770993139994720787522999955104915472398230706055783629017783745596165493720061536254368897489431928198007976783079950762646021906613613840987004406555060329399842358833075560098265135088787581291104996807237598943953955578609084632292053176706152230237158420543709116561554442022920393737364894908011325113690552247822091764443337645722856253448868002090862477069923088975761980577879111586854764844767228700702800883945285475641709862922061277463551404735199183613665919448727109070904689626334722789868300851206497745408896292842800126259950936279532776632723825437307982029272232222059661847828327698700040005993232653594852380126674776140813532462565180285754154530709858421859131125406408620112696808415738627618958441527744057154981598113525712822102851106708004191439082335787546443848690858601151999311015449610984202152120623589484547940804246588053938571908067547725451850006808800682183052707643016328028465170810119726712300614281636669935328087972375623408847761413665383414945321706600693611965362095286045685974769916969044164994526931981382948436878785058649710663779013587123100852785607165733914527981261993813236146770289735874416630531572930658211247730241614849788844078864557379029355579490934141704411876041283136721614332334022334455011664360784017337915263575707512132821744367294967162536993238429396402513924687362224132391019392800454425446598104798970256838778274488574810557090769754502574624626004875552732605405964066165955746205004103387728156778253212644893073108831889809165690689457718013833219550713600376981775354050200706892535760174306023576446064178040952377422297806273289999953214786616130547956624968838893045249517397587538658354828436358643432838472340457308426941927675818300076190869727453812921381284778832229774589565351298405614991895442936139570628746118831930255686617218236224106612641279524165516878322289083669160494127106986759871919046405458969080664178484370535686618647303165869478038878106305597445640484123362221843049991542550803402817144372807036765534153118999523843987846019811765293929782544480438965531659016829328946360773889100698792052230404239375491799900992732306442875285613883100723207432857745712170033149567227037567789182894016834325354417313278980180029831655277341361609090029601803859228652344023304596366002991392352855834200006325066924308858873928732183003495805242758603429273756958779789090513852221389307997883471321748604525985683889241992299834828719795285744178801039989251306954491905040937310270258325932422246728149275109845624452729541629768099456156504839693829024253884630637793253480849351253218868966653537710208067383836738773397777964918535442387210057019115464672911835543579624086319373580727986648552910252175787831276668626511131943104011544268939515701265751943039146756959512368585939421442319104882664446785614832642031416584851003719804502923852772595556079072308633789176556415967951238724255961383041025633237564489667611699779686828829891850624065830010770617605898104253409375248431618428552740369982180292236885619015897120798287413788688183085283590621132958119975176867329963782106279602197187548908391163174204925927374997627007882752118880710862334914548284760871429403492128629524438806172211084029387493427972021689813583490312357992706103752202164001942859016985647192102696654556184643522700515981634054343999799463945979343677300853213506822498497099777229633953724713401733069068645763724522372056042174225982356418831717425437186098435923519267007042036593483023372109341814561867730866716685736407372889376472407817286803603504976803049039123508806420417863294314746101334545144340918729195907869522392490814409652338101832987243785471107336896802098903149062423954064907045191508377526602832597021077561974206012213673239827044159461715991844600369916262108660877723985506189552849211575250630293072873711358910090730473831301417136259590842884634733447378204975818977641435733503736072648775156297388409888448027797107183679044117866090264785527279660322856930538920269434561321905312892926349112531313097346685282637769605409750025629130047584656932547017115657035064332221747177489053635950419858005814345035035869325260275244165956154650947098961670810959739603699185976315189521651338580604688236848438280175671341386553664924562194411279745767927287430699012696054014693709735748564579107590759765885343705746599662578717721057675506842377841736777083348571584218759650043193784384682926349548622354339785773066601537875030899711050061626335685868372956298603735716522972452318037192704226065002060359483924670230959837432029925190372466436483486081807684463042120113020108407247866792113477000827107787492706588852344619266482054409528863958087554576253709597782104688766394840297372210556239331161501895819886246430037559111193813666281224489579039258122608558901794662825111557317055598034321999560790060505024318331554808056613648701662102894191794988157290905442296757466295367013015026597088050156465108906247326984699347308454670968330021306279072441809503295829160694827403732753861364274733043408651860936192650687559183328050602984544773839551746964066258945224567697053400649356225691200854140042928291569789149754528727237259508092537271130112616001511499956304604465096774802272271839882810689457349470935994892755455413470468519819500433627088520831339437341479017436096218779261350530411882348198735468470932461968208777179086289485264397689656014419633270846193195071707345422680683594862485058371364241077477688419627328832295971885311654962226988159014118399861452520807583132925904453407485723819749594216181346226381563077798785254594363829733984993107477037893692538012708156593197774667174384380634411887036945314776781750182845050503641333928261499529274654409329153363225712391887812844045678522554605309440002100616948895909777025413810163700022299122699455980382081373856918840451778780584393648283048043406664347072070499635383714301707241103609376243306996014321597195398157866334425276114372688190182693903887196000711793308896317965419737642139907710654483331751336935845742022577355372001185727363246833076701844530184875126665934798731158048902832266770590316969841568598448780358002489915171540070933064766424523331818363346382361564176420090668878072890036412445245330327573164052345127144041927161380077211170899080858773047917584818686063212587594722260140252625769051050942925230645125430124037611156135924919557601014834151673129731376553142153996844200476706770084259696819428484484775515861252593136862318887227510977123712758610637384083156556953864349789256007031273960689099888199035419991409792345862023617597756306793275484482615670513073685035500340199209616480284753790908635225590765994620542431293149240408529914182190259836772562246532306202656407016795421752882033208546523834345798075464321654741244230882755170361401126677764808937031236184718169017013470566317859546416580167087749217680808998266571189368548210066331509253022734752585348011024207338312168337070221441861552276074824054167579901211983585901609913646005982266081361916024010348281978674699366971615572678525387569760480323502517054637181913225072730081056486810183466992095225893267371261370354938263464420292099308051385060470137506823297699089311356671189568415341003275397634593875443163091248837854037211535682283640321479588753874723887675440942327144042222810259133441795156227384356748022855201246027809230208974156397318696731348505858858958815964406998804986715529051967299601415727669823709547087801695664789983980777785873749427743789055583624906280718118470415039341825668877909686062798871889800010561198874687446788266378386758919938374727332006041821957817765845651618342679020582519523566653611223380289162978848364872145928063295791922632970439436485640835426138792668417098897013641371607601445222612986580429860872936908295196610217531026976020051595445766405836273804067380977018626001931697963690181384245970437726692046679450624881005526835606569352474530440025990818309477377985349817563008788123570134205256865771037191197296389730935270891126709544424140025823765519697725363574448293567064632151081966641416237665578499925837017438639532484578474958062816521032445763615793160183394233646836040616716145980093467843637199130429132363317338169408706454745377073595007129515208590683903581264498324748148690906490371655022818187671733795563313957293296715405565873706383394239530733479882962322019276651871307072289291913542834637074023729635109109616852486238754134135939919782396177158839682023731218217537605479415672459465707309606428845446596377019708990562049159064279782628548174839950659134476633381353918696891333511166198026272045523602767150706045330112892109979262876135951603075329497477351382859226689500621574854488774237818577145823442492286798246862631007760291735802158874696472226023794644575809344607915400690343999558285181943228487459667066437433838831879121272835237189784198651202059839908973499639021356734829224402392905127331754854801524576685861798756858577159380971356421214060122331367260740273695803886463186423754989508442709123322210291100532267307216973179724151856214955570257576787647980728076243920589053959644129727577506624794608446820850983068364955821143270227051087887076626411474359734886243235949936495292162354170439879333072205177270323400805276620081681037360867560024654538275669678464005783234423052586012742947398421601809879467279631552498696348415432853701578557840667444047530836817571935779374064722011743169362884644224693470690537953385032301727784239056151927069405924519746370002159360283322230942279776324853587406256118089366627367707754792517114776736895259356157540988128032601919594023985154043996289519914302018632391742981136294424345589424797148954687045291602440698066654598784920551784661047294802683553734924736306158734885543697187787415567591967830788905511448612780802040115590105460271671041689906047821396657655203586054125568753629583246853316218542469436567781144857073227548538963011484999959723481307853702811749454591298688342550247535630006330067770207217625044466221443401045673926462503617093936111670928743018412806164409904487675139960994985347915105861989627471357168324163347460660979640278535511064914535176429834393943056191022590705092813335017777000185317062585454075874015152824415234790292976461790448189960912637800052492027329894839161412533147095555618227590032234692363192235424541159809719701289160236945831247878978293840751010449720285125698408494092867756948816206511238154011491854594213559534468106789248823740208326237831041699849925769725073753005164999431381745814599907270425872072700262859908597639564811782847429277674946541248395793404254449952402023430832016866008667217748178490338646735765893883086441468832689927835199986316742905612514795038543914521202277931301953635438358470611373787652661694611404447934156998637438491377024637133938018094532277786645595278781195812139356069102822769189131889818982865584857034194135658556316779261462695759821890498576191577505948916983139180579099978685050324166471895677452435894027421166477969709698008032795840984798864114410799607550774928049780406282289898832471610315729401036695032978908036018370764275927259749731724199953334525469901455577378190335185158505076844602892617971948782069464901371917300855197243640732212575788325214959545875039702044237517109000626756322662399934324810194150112738343801119032989867446738767807717429837307552944910324311436490969080623705193696344512169665113665262197839126001099570997317455163413238376392244669562276595901078900922559130368902729601323958197434124197647703920255555367793497491591894333014190182432884049606140903438881782442203431458380165078247035079541034464217824115537594341123245915524386015253429782276719450681465313816056780741161200896224116863288211523763422987770327759544971167919939255398647517124929997090922811377190323449255529616400157719839325755384976461265911395494261472034804392010534780443869669202890279078235706564219930383599313407476565900549034036523980783058189398790168600985354207656890440392947426087134038889494344579311469588220659028478683477305338729553251098943198145798489605895040088174429110469966440203832296280791197333653715607387837524082213215085708187184349955870240025216031437471423204113072985258272782769640218327370899125122660216610949118396109404482296003674910643316281617592259005251243339838605600182313527088148075008877794089259778377102714868083251241139131354651772323905838556455551905656160918044923416612671589241045566787285050834638130374851586158089865844604087811748676089034339761351907005376788083639783622358213814504033463139293904545712557046389101514025612494629028823205062581151464627007734642685529355722754607111473699324306982605735704650826680885786769563499360450072125158795291648720052664736404972600873964591162480341782135761254633133664953767741111527380382547380841980740810267882716819024970472324920015359094883998153416402359627105940048299985477859080689734490166740780062450180215747157450393949134512863097224200257894510390728678488199267012421822701118182562754290241401964582965185717599982515264128387435487984567108214805012295492858966950022935735811919920725166293925300116968906017336097810560986752495357248680294709686879854574683149034575846493780562560272819995930755794520227695251987557344320867561059055468912082896330858112510934274157071275302138976277625396590370912280113959164784444984717222318895996623434986896578745383548326568051840832655127937086603889757394089429033120774704939784566679053033742233253480362402083876647050544570339048012722428388421416658859162004257150620213130863738259346213919110450819918841926524031102388634330901268737038717489606166438913857945224326409042715041050923249198293487588375803320074748221079195275924809490400637181540659276112677819222971827203301851139225525293822942071730127653663339122841637131713593627742082910808837530121210919593824011155569555118642800484398731115111142900943654131061531954485440364264660127738214942551974972631122471747639025113708901811221169136788358440391109224230389952012669978544243799414985553866418945971273622841478704694744975297752253186710057934137752713969781626017843867252666753246451820843510212364964840351427319835256639599440431410876530520622344368759490842117400359447903323609866656144124335978803575650095914787447398469701937898295725030856911709115665021106140261904901935695324898028105455169681815593224738637569149850847771387119242846837687268416021211750073989778704810746644567121491160015425959696991845953703112953401146130701812605028474313876082022522204961091104236870480090126853044932068855719803522150525451071320637236591993927128990992176053574170838716604549140893399925290181167038939526396318762359069412420773469339613142545250905336964261146139101573582020762846641641569219387983206133992805453977989688063428365155213830670305371622046355711021034494129571129224386953816546549444400617824349125388952430554726880657410771980526047527038034320900891194908200149071047853760603243657660811061571318679574514490942912757387091883705637209612932760729454813050825724609281433944784205857769760812987459395558087014366201447579367290956220135884511545889344604945466724783395799408982938134365633840236850468592791665543506558036599422801808081230914235245028370802359539732817646793589845881677445779435802499690533862038255937929689542532355313492492109407002141785308542656165313915481341403049236479044143420178728335606732846843964477150199631291817413707750626766041949408179936916697255887671131620517068033290915572865351833843708408947941355003055384576753204168481637208208816167508126231246149889369190216411521168468766374987028389633881167869929716914013499184032476030159750058832506120496083765077038300549124713729154341781089729770701019048066300086509348268801871774184569985314063397630401711676950998746890036453651339060074916398789862419364894103613945372329405173423848874622188640986518173093938073921892114306443118448927166090964201925796717159780486449387731825026259454895994422256844006993481356471249326530309451927968210560554039026170073331415738611589186823355116093733823556618195834506328664023566763355888365611830881491579212886186646935069290817434160985393362266619283361186638120335057949630253751806966513548014408184930329501400718778595028907521145469762682413378069461227180854405967340055867974968281515113370777527613923868840272597279296628446143780373555805709219717304239051779325883055834239597221049608849088126887912233084355263785205724816359951458794358114979338012533351578919454520740215951823981594744540609212985240073279507904640765399826445903503656148310008442844630870782370826786167982192934988655068524829996780080957551163903148298082399251482722321544947507439491686417219561041241798523765860004703850307509188260786901040369930131972442345825991262297081081014151910709319699069529186507639086343008395734217855836642592912531116424520691212705601608283273074398298591834968144327763053291844973598581434380052638890003231293982706528703037197865114687809034979660316771584124025701923140175507646241837947122804630507640270347590728412257676991753383604430478282385363538697376360381651017565537065723421239119061911088195803034072288838225615384569517763170801555123713164787478959659582584980147895009009877631415174134852242157138164492172145658880834367130388788933735670355540531313873803153382198436806405476284565009296685195925800235790006958776396913401120754997418552703049872208013463987236601433806102387178344109335566823382841064649140273906473980073322579564354776588228110911684366782198611202570503636336023936094232842441504013324721150471619473729866005913444147860661983949871252529990311492471079484182637984177561358181597982548638274959506649285897535095558467538589740193839623798164605125299364495934306391874292359958518800527118114326959882304208059055609621414465489525096652868854304646461573621035340349705705684126116566922026128276328031819083568343040957350655729992919733444426684424624469177319264105627492033483313773480360331320944680572072077845288077646670128253594382796919906504835095432599070941017266223263532329498648084863799948270306933052036863905410707918379797341880491477410136791833311433577075630419954696029245891397803261042478638565595669899416121890010957734269677047826082140539035597010361800376209951024423216416575629852873340810652249804902702883086828421964114647108071308107104317355358076292420315200114351378274564637191744750725310193281745278432183761252182178499820476786266179489631473239582441729863216313589947153939003435970316562177567507874597007823862230413394198556362036688165350801978268317571356400815308606967310564298188200240862841208442314168865236039886573423332003327542458803109493064543117185961528074759509148120316896386872909868206642070327996901048244737379137213674001353846174193895142950098891562299955693899897720552782949599255363854228062439889177044000165076464894121044579016786127550866087937741930291497529308103893116125085888934380465032875984654532256972452679564951317771681703322875459785773956607306436588113982339747953472926999605772757229994548197495813514566456005882873398596234293285083083468943512416090062681370490380727922492439207853438177006460105124944476884263590926544299363578009735322120294821287096627023784211104673375168338184306796912233019948297842491037200175754264907548586667469362579445271352143460708767088078322016344039734440208535939701534839158476718944476737402626758396170921695843819509186508537413709255557143476766729584158464653821197306651939719947632018534241914012183435665494900684440380967419187812374183038171841549698042859081022405916708964025813432014140094146559569965259899938262172612071468415505821273001636791275960518722357531899006907902392253825984407139083321841848017304282382650425105341856554659920404509312654583524284658362392176793923718174875088522986218565654322044583382562155958147083043575144433413854951925868995139313169995407167082141886613980579675756624407014774210490529106682805607791954752926226537743383390507155673959268446620559743388110690729110815275551302589669846600579938191856170758983972115754431836433643191196500462976466318938468369149734212441120607922027517612688430701201104099897316422428234890659648497686592648918079650863788649451182113996391318697472899558217770701561396600341734994708642595882602253982907122570527657497955959295873799049548921637434682197825249301761372142867018707454926325550940730892495752953425043812183050750150471257926710523406834921684606588630537025510982587845013639094043842440741244677709845183722283570917689554736318096970895384960673815405360741173685091376421911378961672844544454267826485178472445083871799143218167580780646885771676950556231520626132773361590974142414964600676775740433707598648055284207781789482186395348501987696997617445005949082781515553938989912106869724342444610989057692052264727099953074025746344562527164560272716862639258285795969342292967418915177546648754013146007885106480721389282510816121676354782572153022486031703038988494673544925630290559387422834489437712202111365830850909532749542173432692759762338745924213432890909427955678487893218011520191841911065330111918772438468923450081666251529124946459190372974560370316555420127433287285669460474720739182736188685770361217673036839232742284413676472705024187436350133999437616787802388188053304009596392136139263441549771790468414900074268247354080259364934573552943012519898267639107952095325245633367542050666723196809798156184146670318821802868678596994165215512359406888845925879131056675303255983264984401031422324130387995201353507064505058155298560453062815796866863370031888596382984834069343154366749141557299100785469131213021674486487652864470766708894493282888790140741932020931019801921381829597889733374875760756638543652206393822491523277592469154365016327228301948370780792551455451268136452787121801919157631810495705083021607294907224618418315606922837902582833203624933112290344192553582355424258878776451667999894052660445333219281481508256415400198076889621688183381803874241588616831591342101779223986038144053399641852420676242491645198681630341732414691550645335842234854689964372192229365181778888184839544481913693477144188217315053570822410242482778747860273486604292579490683665682616765365759357245299791171651777082022383752028942465657024855505831958034643447432340209107453362542852488055422529542772630774237765542332606984442131025652706034780313730047332635781119184362035634232212424387135659281639285858202167333328244461229474853690800109911711247008401108000963337601452714674101642979471713199318420726268849429324960861530040018658578244860879022669324620646032808356384786710717668554535862973967299878817732738609962613243239040921898380905002101250006055605780846451772068767788294157844118824895559833102743540385255641514873985442668856978952038037722228900091652296591788872622368159802176751967184639453641086577518537926134793069660770620522267646745815881119688278806759573945757552383168552502671294321477534759367879387361624420970530975556858935984594922580408056430764358712426866234352467115958926229843389220953024382029922075752290726971585095378827869469368313100020722736944082648016443562398026813912553148268079816897041251633865694310545935093357987397486548986548449052315994421783194285710638342351730988844124367998391568762963841512093632109937020402862800555561904807918245331923129764447513770042585655681142763943417894500992710915189207169494159971955770628338547453471072198864718085334729796989170398306683414859112826524995378863602333900930250836309540263839116038805427115275815128423415545979869164505292849510669664273831361485008261551912294074881655367270323888647943613043761121376447486820444443917315854120924057236567995673233775109690445304846455069378782470073506524604741945564219935005057753868710305110707207482408739677973653507590744123296048504398015188770996354741536297696498415137394875807868988572090027698908755400312545204454869420089502140028137258832349173960499810298688789326375969120378989974385720486214011639645214886732883786739779680022322218360030249761104025174868857330226743634192113254084224410338429524777340817130291007918696046997510760919872284764722448056028407671297590050857313791438489140932572628768201320490813537259761702341855459231430287638672196089614513706992037031772898568476121073247976534526082314327850752798402912429047553833483826962829843579741340879745176320224822710390957903957570769618570033094343332553084252066073117949625615672136060439509025538073487458054665259754166675170497538012364654749352652712286846949271622006771724332309143128464937191599815902077988584526997594809156194936538968095228761510833312608309002873192533927706216537639448479804829778119859135630557458353874868692585337343717772981799152732010112418493695046894758064547348960141581869606060251763215980034741716145044577021973328619732563284457941264343792856861409566967304474659006169048175078587613709588014297283809929995005678779253241547178717756868252145995859455870989101900336592746352024763404831156768275460080238605095852210731722026032952351070552596785366219201999201385220340959801665827206746656244676317625956885573110785848687922185863428738325275300706908661855229507951728689075819507626301575861892477113950687201272253169086760275969392726668790342238168001459196359212579736971810124949173080564071075438795347178911063160225251853675069939206217201682861487143490799165513810623908653276640006934320223474251833621491670385945256695691179935974979928768098259503703589570509652626911766410318486117301093070426393746121401721446546929531681981870543783592620011229628581089368758947646575443724315265493032003693422304432527474142123063319028140139385933734479199841246661259694940866450086873665019781330502882328574563759471365230621276556408938476921278055740037058211664239498950184566964291049190476718476537993975636875379584682530627052545907516012955255169096150973793217151257297797046748072857510720557477051286757322712931615665838368189974597146689525676356038736355385789166440412024621386607608548843784149500833692969113124755972208708405568219831501618652215534937638103137134606124556557652278656107638357597499173506658605604415520918491584308728372265618280850108195897324270971140529863738331065169793103480862160091817367935295213470348260199113502552421696655826407148721962149657878061236526586339274258932817519386078557895493641412665638053699324595509333470551772143431218287139028342865633742632787495649253299864266618324045024961096503669684652341722723530439850046357168553688334664486428606069341422354216158368976774701525243885584631951549722612971817977991307344650004368656925605947923575644707661866671040933239861772003042484342177746769649998381476993408239130591829402591139993045798126780253901041696961901482595250379572405369827652428671915837314258455172156593368609493442364324945861337603719957946613365495351139496676599155812154545883143740049056024651721072776746756850201800922957832324768447696477246695562793184527391415320892105156391782301897486256140306524871975988179728847989900123709372002393304116009053803681391672623295602632308240599403587662396501942282476323337466579568443593699996578967866540454867389328736559481467082944329572077444443314328957503494414833454178703628342234694351501290481546012474541947868299958338187268274628561437694112822189556855450747440771315168780695469244514740359589837653871123489641620494504364678168679874218999505946951860243581101782761691065340372722786430603812820149695703804897659967184379031081724458436841389793542462540519120493592643294208713530102313800393485887080075561316257276693787604828088119840835251896767488476582432700495229191457979337519904879566208367404862908064314136958304034306005041017822454072295824116181330172799831514013356386871669541993183975664278224142050588033075242009161591542851380905437610388857763624575982947062554935413906617640135329414856480228444884049802485243145338671288364197484081646204754432869230037226917027317864788432126401955628430134255970757324867843771088587731941538473183948028804221550625163487209234861366633691809754791922328425084577517531239333892963227948738671029027992523402996654698489584082085265487122564501596851501245345555284557650364624002390641720815588107258209138083232316296611828411588900772612218024976006903739228104113329746355180982803528968104425488428574198131302800800920179792077326101672583043432036231033220296002935323517424616947443783373822299454776738945123364624395733084240436378330369124289480328018712442186919265156246179158490276631394152031852135044015617928819700890378953358193016669420084544292552812510117984262464585884571269392404191451305034787595143922496914178337170758010485491701432946151949172579217519938002145848440169686373358591846617352398476229478628590332769855762637862857997057284103390937309411967066360750567888420073470454082003982854804830982427319250434632101510247839641021240607008854137086466530590273156974553442936360701035105472119913283842705950154429700034105354505810001263982251671052560188252976713239121933997806600509128915513807080254249502605386569620370910834489002500013257875234799852310328243222543789930314091211962126238954243000659312965167309273861444997070985129744209684383139223547756855352059504242509381808308674721154945135100239514486697644678824629954712677047305697629384462023505898642541143487028415224800475422719029651847498349727718507229681955378501887720747649643708706960812705585235383054916945505140109446335319050541643575940120336884584867033177982279470490143513798971833709449676514966384258879634268486956619662042261720976186424055581194212116495953055827774397570270675218691819765573988293964440901719986625703070689633060526058606703200015684569526540201772815969763711917401177829354666458171752993401960854492579161254114819367881976338911700117936329267068790733856884552644455397802148035602273342083379082896968982858050725707225837366051881954283968796408336910467639223449647306166807517282821138063469170011751774441732754919727728357667567256728189361193709794601000910263924203353076634906895076124348879469637638934901522143956831456103981726319112283647516968441351317205617663513420313677285688637457375575761081335714235753157271875781846494593204646776687036025201165583055973015093133718022226016715240117979448629756240238496472895230347868904838720726224071709873934648680996669276862140554239109308920978449693940619199737712624424591022730135897739811274998479757016579523703109877497044801104315018463796527179063797086213041310924423967099039914063466450687481411463172839282323099918481683802188923778130997925708193738268140068709003712436935800778869475314379736721387938377335053512192893316719831100218584084463355623058859675217026849439508877035398272942784898239299770767308690831424731222143641648264100571638760670802912583602348075881172101755821354163897049123256534059134882975490481262977143490112044734717244629888216125112716314310380162285394172780614888089856547959268901571618177633096755122368029141074314748744741240573916744327117869041603045699523912112550308196627275174410888587163615728682327197530286947390879564181636580630323919173549202371362698761336272384803654732680782321029528539451524365418059611932261129629272725948819224181187248631830432499161628397795823328013392871143349838608289055739786012158160553645784733106265283537439883648303802967286884040936260319580157441515534642630811355174896613670684174148042661094706018154108597711733562223393610865065151739544482806241369230087752850431480832887242471537543902181070675528865637963319693474114226776506037843626327995947850757656610312101823391964613319379888387043697108483027171382503261677949772403389827197619400345334137782560066981052362985991301473702814571658233005729389364545160718485601933695813059481972603459182948172187881359573378486216780859258233253746912362072635500733507689491518876291442501960500809206944506751102698758337539242350041742066466779962738414892062977328287567887563580611537587539076031594275910732306857075048138187520368553074463249940990685427232770517143404025888178530503520690123874738663280491328744750771173932136388647841743061321527100271670318277541552317759648607645458268252569567412045421951370481435986331570411981600124561651388095593825791797286792535519654996328533327498345399337928294400033959348748651499111868843463019280609450534338653909617484416900300905202087672747982099876367737623594398521625138072341339866358432396651831517859961944702028792319496283012293166503376074392979652960888547647432943045357605482242233205314284291549823222459989674412351638460751914929451784714323703876011448305765621790694820833565338005826496599295492717958487028912251134027200319758644627510891875062154461801170951870227818515105804902876306129211915320115098664549064097197869468880121308818524089264738694799607214818575492070712216227140083008770850688252619807538311277866294403252056967953925105592802294072968202021605020152239063455796453052880142470394976628309364685469501163823842486946446283558447033233330180322739190259089241271397703426648830495019191341746904758468890783408471639639546702501195563445807880064276704709704301067618522377437513887562180121560066660040283603330040133422071730697000756483291261405239613393105277638819844975830710957267771210916589443699785809459261340688311468136145382011230750279141560931593554637752893048333714301165203739206428827366300302803869397061312475319026603001566528043847156690133924815360225171224968140840240814219769489354459383297769380877682317634157996616122121508117877006395770615493059666257778343838925065957148163046911190731035264613378495013415526772743722137323201082249354574579187789305151247888502051064506047956043460175695019568270918055250497676907111496459762215980098854882649245940809473693045993113790383304412910709341582351194894529539190400141139357141895061351242784161215880618327148901552871542651779029213930368915808154975017312924823128959538329561045169655643463785611286106765316400563009091675524099757447098933671787430940229286238198259517888537047176724271064899084596470991788899420779264867654500572931731084540802158866101316361789520198781313367470041343377319461105755928435123715835340130142930770877797554909192283481699182430418714151528401858762713137594824336047087945916333093281062814387794772493755922629585935023466066017779975384240948233041436760335683108872321636110476937465979970203115637668434340560518008511307311180245414908998849889910855643522491762666702919209850241655470363893134420486214190981146653164531586226173700822486967626152791038075744898583275397190563915068141359629117839573012851437739287917771810385526531275648986541881859620786117232574990386170885895155484522892964788943851373117014079934941698277834323578499907917628875651835794372706917575346545473741468413906723022395472853358573433119329518283789589716674054864627861990039804295951664479922596254733405036798956058123870876489215799778793773078355475307831359042481419704447111768667992278244010732488202754792682117036393571237106720867026909979197036670379939794752512280842144290533594599680737713430718047360013677107773968105018185848926350097701732824801157991785253761213274214490879580570534882109797959590017815549971650248491571432743127375956767337521965726724874380325077779008830881871444420833300674712588341354099368233725760153031800093605575394375779145849954415028659083016948886864378174250612558254349911925386693107834999753055450833627108816744511302573318345829012469455259968421580643876140600428270683976436029921671192582426175391413029408622551248551656880989646824181958037506840096246234460284505785390683462842945333255832936990615249341646551097909550507224948389702443923080890886408355135130844463460599145124953536002867723686212924262297897055260677023368266110375442211755687222048510092706425049488130511833220469504688272695099937332130135151918707916643634475052244398515901390199234665367621233913164034974810594579864278930509049414472233937308552272316467151239008282571824534715525413207347868208091880225108894155773477897214240488815107188856006628367965209182093819810691640382033556000886441249573033826503969591024866464723230121460628118016304749217073614859920950637929526836926330240325668417770576845348121838388347672232918139237223145745095157786403246688476561422540158480730353239615283182739767047765881199337522393924563793075551001622235770548418276821125513123087400971630406004658689873112165220187047090467845190944496087986416380631791319437657774761204445726350307338938348785138843410893667552368810356954960455726373526944357783564221664098013669936128779027302533003228889309665683637345948036290809146305742955745539943530927397114284878510044342164902306747485211002349300223512419518820790201376666159546957897216667853037569691690816395786810863018297106047280209163148892487065378791453300431363269216334855248783336411364356290849128532934616122322965184354167547268112254541175051658768968521350945367812479234017273848109337651902882525293418569240234393472651613716822244097001743775911717091601007516736614961205634349263872654961205240920588584319176412067606011362625620110646362256008505511236519986209027993308846991256489567804614842272367401888137811398701666213778347994934805530459366618583391771668456146386353858289796130304222252242746515970462610095352534723497433691388179834862037876768165476787043602427394178983652206448061706610439730248987662680993340359642464923980138535690584314676164419415581528555849021736326615283312572474580101163012752447893153290370442173592736910184560545893397949803936907064766707260218795959875112328008469249206940036714008794093097530862244916941979037818807555921137062023697609349108756546845297875496694881400030554597912992503005335349075595120050029774412087293495082952847527680082391601593385732571405446229763820285319463580024347381621300430580703548633071377289801472451451089494571217325589538301471640910841268467980835319533361891407359841085430752750643526755750619220692974934972169020905665778653497137410528212179781029350770946291259253499839126064698371579099047451467771479357790349211098371284591130915602507846206727578250487820369473493077610779358881719540932912429314953475793951581180547054099867814061835783000718359667945963367941475903173017429532210860857463245879384741375265654380932591955423731952710754418481756565168266336827415648726260408927309056444517194930625117272289923922033543033868784716311026525503499862876264656090894324386874604009667353677253159066760936324554992786291486375612872140690649420867938955530779657341514447702888765513367564105190474480658244516316383055841566383117196941778331526884846776354948051938598325256366143696475873485349337535573639593545891685672730118764195311638851623443188703635027818147241164256492604524375745825361246531220458347091119979701281646671480758200547381117500750631340378605982521834711802281317916005516783627095760052655932450526313485849612021111600490704909834077909614690533935016286232422978913287512074243269406221740152073140012318243420040119737737217954686054659001308889855305638622684127001532213603554557943172484403693241532257005805909533741652106958437276358146034760597257479231329277654434434676962830760759506684785818948887128043776172615614087584588161426452802874615461855082800661017811377720081002642305949828378359614369643975170503964228924113457394934971453759543570257370866342786389756910296251387316248671407812040556162890211236921748644161391649975821292378184584030469310609899008710778240046987283220427292772924253082244775891248611426956620886390628451019433628817174709626702273653192858521961723000451120975019452691628579280704070219892023913180507016552560989106744210344813947157400178320794900806203813195828863818330238149216502724423883240048283557373748611221286686849227132792802074987498062881920908892066704868028993336305303604149340886592059639628084938961360794141699922760338698606706804502363854651217911442890249483034840903520552852489092735918078826121322663499552415603328493356484110648087733274345795325825998968142436205955198369536201812328014704830631926292908203062743945140982416679654650224668267257323737461189374441511054991171164609627487368341335158738684769274388959952005910910506474923300372404320202469163538542772496778788436920107300476070392876387056103072906863516239226514997647220710385368761009922091712478440288818718990300134128303178115265271958485346694077670439872643419937710881229138952233195356982275985198701579415781184857838575216080775717462623635325434402156452453434343220462610976785141136006367667574085298572826168246943272179853222562538312445838258620141154231976448233699050764421606304108124614028267874788315066166664222354679979530331267084220456275398368363242070853660958067516375624058371131543684019468818578932978110276370909305633597764757692497020969818807101663728312041775445167898511922038575454134032248838037972583422462439105825755977763711342425999368079523841001080730923460773954193116012811435837958743970126632415169102454277199041423144360298075426706308992482986700941481453584046372404191007451554196128029646943593733813079972540635471753991266440984074336331274688369007816855676619475966504216469371349728012604023356800407022313215932289301316244438061162507955657108784456739314010317885331994689406847064613275351305827145734343560919655031564288441835617567372689191495359611221428935174519656960167923468171090003192604865918188866198930534910487648837321058811374230839296205904667815671430621597184610491756392496741740407311008772345165352612090598993233540648219401162921744194116614019391081767035249540901008951266147469664160795408476683888305542733018551339210464205715987080783551005809169586532941213774248515969026502133529702381088488316404986561515356179363052181230905655182553385102717406400959240426487892835076880271418091125644806358938256103583137338487820474698555195631110416902863566334150953263524844838556890101972868483538347125883977353582145915442390937345243468612137484292625413348629634896542947124028014802737219808826972229826064896985918437186016813603775281473437739089477336120631059679831669790980604765205015911295504308146571956692780483930342985503647359049361795951133953611457778158055262364280274235990938565271242203496818019221134335568832554603943887165955228502638536333494476647262949807935178047431485197578926733183095488270138937954638380319286273153556207597875887361802217042046952172803018757953736076491876378549403085320330570857273817163205435272592307474367535465711886220528855168238460157108069623734479941472402039185463872321339139861372469480122055726421088033750654000929704577807808754110699088737305128754745395182932773029930636206025867103922179671362769952856128205318537095101400089550330953600623549533677537983079501232766031530957840695203702267816321957281505706395551310308680791584634930962683129008989250209343882041831961987105018463807629718000304091539375366659495659618890669586352765833633338186247767468461836230547172576523243837308276522831608308823783911965423900694219121884231876755539545924520095914742656424311655589083537430146186361078162179295022794762528015522380284117233597515052011175694735863391229461808066083331179647513563885839618082222710046118965414774862539984582385949223460372207828026827946383965301082672450917833147960104325042912296274694775367209779455906514534975621713898713397820185871050580313136816544069367093721106378341529163220506787236582813472710164600762849078953950976309696842843402077038580605642386326634640270868302513695727440416480808346723340693482507192576909799372482082670995065838742965831223043431283307439700575499193012740321428448853731179422479347107977560919132756401932077582861939336687311443253881526875212628840862012319308634040507108577875083395424688787863908416114658758963507040081172318843382142783020478012356165157358600678588378789434525361688990194326963528353590448685473808985466714365289358595257240352622222181030861461290863222317050048053545559914692526243658326005078543006733769258013251915608397136354061484767364699229712475617606838408218342250124155837612880385790682741966533312965617859903489641181742458244549509066659446315993427946889129508852477823239216471310245130178268755060957335698248754521407454639153883297459493750222287144097532423966131025344228808632736110078591104926647232372477258511160232428888997444778273380754681606398723184302256348544495073745848894394761551458424303085715495847590393185686363382827833924132887270827034451604950315731760049810178004178452053002935349584280861457625655838311407904793154042708317180540551754294897145176498138447743842392536474845185909945801174067155547384192155715598250436984625315668620510932508405733881777690996343206522581710314805570952164490084856298381208152204902144750378214436693560532811825579494939268098529180044493946851945384383026024673219202397246788239318354102245787191999242781665506026697845917555744679886657618892154432807036066252970813288422852385594980305716037485860823928649221012945570190576057727741555499001427354456636866847279466963715258963494652203976251203893427304954548512996423129497022592038462150205556905026186569531309461745620175725902001458471185941822142533071406123889940201288332880490866690786617264779993889853683640361995251088621390032087511959578487690304444471565692104890495174268017972667436862714099218153495077547666933352441871575171922839620093869506073927850324006085410396811233663774849937249155147230890506829890842275835220991427600250149306681375827081484276502619049987371813883115915256175620525662559785501151607783651211054727351721189822789040367582690334424990037560838880159446854411696896123682998949872891128949854642796407423362250417181989887377940202854225329285344934441596677683143012552236358279832923323532429179846623652352402498775641822117344997169383560458097887665879936462904123753068705581382164233744816433793918353157946381128528568717122850427033168194318886766505325664100362646391879509839845725673980412605551975986862443264649281422344030422602630920995604284777620907738795475910161633111528853370769227924386533624768830485050778665795791166846722719342970324790773051117031708191984597117208382278604595783428337257327810903650438849184483034296678472842078239101849294770768355466425382934971173199388263720321137751086952635585358351870155905220776501472847931408066611280931923223725499155728847486443954881348278376468792409706623479059114245123125759602790422041023200991375326276208452370401339361908027347993587451389515448771725343580832269311445787786247754431443771782369192232972335983474743521573095453569665131786847037751591911080801171151928254057254535182661428078807461404722447365414159009897333547552741456355492183118298169598386211801999789269971833583051747942407463457394403261183763602682748049042551892038167861510873605539470052288804725637339228671030174572675530144019844466595484498702775050143923281793875843636979884834480332826348001046413580817828899367874716861555679224672663810945460890642846981772696018914916190970319921086701422593416492714230471303235911630784645557632254916758966804839682860492545184451341797746497957743035034949700746077286914666258541762139707600819078010119581561054325528387041470342869075232875986548974948073186611886234862448314571025861327284174602488110890447758512408875726172620061977028179557837536749778321047735789287287287910846529073001702239141986536330465766416688381027707896866527235256617495487740347137839880299240442136252461980734517715178512364207984567136072871957860949841448850090145910540373810763489092439679129614273676208136352511921429129253543135734070008505779452717326358273264768588603327091366290805996110279896866205091321579905482422037041907825391501672054258654906368577515957849291569594154733659094504710530249830448582991028170707727940913599733850561945801819337169489835087273987691842839927548723542200944245578096948772970211479442055277148089110893804082840552841877336742399315925082018078781583231630700988297200412442398738534563526968460952191169724121416931162288898556977269400877500512620337333509788882956059091841993226918628477162432286139048790862636261334968966789499305262939913432845418212864401363702243898863733431628391985002526612094299690842600851828698103788132623158329525362656588230787295437004050329733257551665100020808425154856863811119181394209201432088035371010810946405152687342319282710349577874062043855854218804854254501844634623341215400142147778817261157339128777516819319612183540214045784678500988173335042797388306548365280258647948473412495304920834209215810799912547646999441699050364976752002490749810239581805082190527098671500578203555206771882027133161390447844295272317973766108273104791513051243425167163490912386112957606288684340374432444972799415393502882920318660805198598570407934408152058366050109524894902027064201961595711671214175128969835969013819545085506956358916246514721115231081927735899813406587620230628501489733904663517676520159897228701171604735161181831862029194249070623808320145752568501807856816049244640356796451755873748700403508859348230437188586578767696421188788913554629385514639464699605787082225242040876527001875711176075624840550937935099404962533687089794714966357257679528724094019106584638438717915538028347029139424040228489585380197845376484410951098955774788551993959110269873382949119571596657373476457891677734545307265330855533218348008959622529168305008000310720368621991114170977086617892026043035643773590087413142202442143210104869577301445541943442563591756415494951425285234354384850651462251439626688540428544370607701758917297869589810297529375245362064732208815370800241974545714254574268454358011542121904781192887239463471194475937019162065913272949511949072855414379640404431375458034405631103817363961222347141271838815150893805154482200263942921508913162705183464305463201981569085683186074988078959059521200738757830470816235268431425605512412582967246213165779533325320546347929381014645583651537112436729403179082375153441085573698728977448458030878978378003957353298646896887217131091541269211216961613268577668026335181539414138893193253176169122324209005971064926487344364748749382953413941685771861429717487286262245711840544375397025552713841292360886110036986182789032090657346856437787624509522165344928215913582895358168801865797081236965192817793731267097667624860683244269698507912528553163359601670446496415104150544510596369675801149569149802775196059830543844952458408718550769289883947594048867683164397419082344070617059639104503427632869557713589283257236334344458707576091333503953067225029138604445963026235658396215098788081278036884231703789771476036154957974154621341428747277839131633396298184613068772714459707220319466915837979681294917423882079267670327100253765901500219749989032259441457105635188748619479710803942452347737809531344030287464307084073464471187344888476924655474208661743000073013630801800727121391625892535497690513340689561785895702934283419251591575710972102448721665735109396899579827049191750044513408828108216209300399895723887722843464028485936216729806479112124190819999766755254853833185742519921156050744011181590708207633583541706674483453631954173047679665631359224062093546301948385384740297581776834822664338481171173390989168610831679026843812437225494292988272615150387243263806949009306056650389761741640197720488523933827552425444328763033820789495845092542058578176527810445313914210693685096516197408823679821015391799965481988005783777597479024831107506543355458566453944639708892547749467556934849699815902386083998916364056720666304634562944126136256550974119474743509144632410484676836237379011262594626892382073838052238970752608260324589209495456925764596631675157765897250972101296647379426732391191651593948332961919279913216624456186390824454369132777318919925994858065270895814659313230432943481291326175972971625285994038573232497693150223976166762080683942486192375212277898529913187217830607711335284458272061642690604759517051164630721727182188193202914629229323006124436164629445474656825976683697619224612917897056012713612471101081864939505348388790299972409743315730054699777580147343820189068895309578944748187634517394233813318872339901418401399405477395030133538927299279091870966412017097154273908188338534967587986112419248412814524900226638843192099955821142828105921973823111018550810375482432194004025526167918477850235142335312527556848900238322226771248323459281407155417555268272435360522941194704760775839091271841071852563837729732520487728188551111574612284843656482514929011258161278312710724474075535187360730670987243211414942864247426748486528959969807281135317181101568603101453189123847138732544992950680357443716770112871542689701470567678115991626797598854395953227735955605374622816741493448985508518376960036252976923406381929075292439902794274622675262821837177074265657455960829889921095599797400816139603234417573142552206418138392172594536956683326137731160082535272650495175284160305297855254399774600873629361449972055830962051666368550717249712399557041788689181605900988207529033096347588893783830583019034199577660132125429223044040458326381185424862058507205684996443737506101905918036123564893121252853143426274281015215757686022948117612069480111140049381928771134412728790324203581059141596759418069106816742299125474720693890963713659240720087643949165410868776236950131580582940595572044052053740307740794510574740409906222638880697304843297798353542672831489829720798208012497194691060107294674083374688029382116310212539813354926975277182524353800687196961513358725620777936492551872549636317740616097383988705424747893826564621789895833306667239679697062644964231199070794083543206374872498148587787875955099452550147527665352093829854841236728451889997224383132267662052512060458425513982270418998969977320232135324560035113658599827300740107950534949345757300428925988686648807644637975498393571938645941898522824178817032183665943530022500381523452206582022896663499319307292513358455485906342761928190491771299276811865962999387270197624970930901175829110670848889304313826565141094904237809614149985358152406848402162781404685450206648994700289346739140057099699452963985757791410829464752323928824237722639832688555364245493575912752707502640913811836348417031403160872567040310765409769188500406258633591605098712807799004482530883799917326467622619573567953174400923910775337003012760172546983063474955237699934637178879573896222550874456794402701845248443549789020088210925560411472335675498616330702991208769613143623467736707381235140340605977469611425674613130170161705152136108973620962591947231097598411740932596067559860340817379336033935514463215614703082254363611119806652629374404520621329445961923028991899590990238847640159859307171240066980562672235223321108787061893059485807756819405392906231190566225430666367094065601231106433347449412525049672808132392558331353047682535808501588280825662139644705091419397898079836226570657937291092822582132050486809469413630668305413143558923965452634360194883653846452818470037012508331225509939247540431223402010519028146037929141113007631416480552652654455289380204800170212167929925394467194608406413530110459490620827452589190890694383443422304807184447875085504965152831571527350203797000260665577160383013579258314529155379815986426143203008713618348219519663078204114903926997236746247878232221128700287530938705648312451170284229331161874262193880051775306874344434965064921311152086888886082858119409480447052211900823059675697305810787838705725676448913586939021618402814077763302882350424986777766986549951220485461788899812744492438926407129436698968470666762989439706806949514568345505985409102351179556410874421884593990841061293747819937511517915868996205991735473010938055032336103012453590142302352550707179553165324831317331287987796739355918453899080280108597558357598464701719171079741612833224006656309500454775428994433273295347517944242491822519399020070967564244421421797389088533255841261507995759720876760977273576745318654484119094204996516899128833328615741535437255251152925275182019872306511561117177197760475565357189518839877503499947874939196599910877073107069950461625667482029943380050268027677953925844816556476167870854887845621468759910749257637215702296830692340787902744239354976941925771418033731795519702038502944438412703744903757147767735912160088833665239099994992491175237810121499578333636744767136571102715514050044325711310594176478881769474425778199189423510323028771118544936060726325818507514449928862609379520244198559280300403558133541640258072383498254096928839504081363015771496756752244644753465252151683823507539493463216709336820226804533723160617414346706868152972075676035526163126605563966609634123605389360896797079051948100129639395873074998639347233265467356926282244843865464124660037653745736916855000681355130666333957924237521059477215292666351582810901315067688946852239238743253596116219311891445766106360708076918023756858540980036607678913732428689315837256165209115912826683329344162412707272239675392032259006935186782607989324401380481016461112639876408309013496779591180961218794893514872272504725276914714017199438768774226823249898370382622710837191903156692461382872773409919384300624333664872124367708912468173530640304964288996554048883986821285338279160058074940256239268027480452447985291956116668848291289305991281352847753731154926624076411059759910523478136281884662738243820582982520521072463144155436051259127698075189114103875820773155193503394235834196404848091145056110753109845126090193290511201564863885663506295115898634984169071226074634671102744726339188372992842249466612354347853198198896186899503570972787623429235876363913490033335910470873158212279192933527594972773469327454293721657750186806722843010496314279696619468390150841188556360547732340234059704765665144548143786240085750017730191487300952113635320509475031028769708297992228160232144983566641738109071426132042395574845541449254520050084630561621330387568243506114281837241276418447669974146470411980414477750890747447768097510804903275889575977636709341673799833526669787498521914630183843562967731901622048861543609663350063354941932428321743356498540883276417248064664612821743019951229742354369218843370656407473604117221694900744890468657051262448314766082807111517136071821770000022056834875206047562915260369373774235289170819159456817523868313504006564862756714023482457809225478161784572185388353149247008281041430661065402250089264056011277035463661604375714888723293455360343821104627463396931276440959590745313892661027948027556279432295901768585757238713889691847917267985758996409007889369572934125152702709792709078098200452818326802746862639758972199106438396068609969486586144724978615359329167508036013592426621848292294132181007225224474730413912912255560226301821710496667488146207323146525004306451287805410136606695947076581561648256980207759733637413190087817836886154589165898694360148483009195439519342387540589994220233295650997384999702106351489957112689507421232141537251528999871499761450766087575379992258076854102712371052008449577771139395432752021722737870082836515077693367768621141515953773082901930875512389772556517860613652451956217437587715606154635843307275518256684029540499941876604738054807173850108029501182105920765297649540680101520089350107064745843035800900243721880393107298250524296201481464615785694449127140669430705276551325321830213407155218882770345398936931030642954535343675085955896370116991963934319961322161953575670869968626389129393653720477418538137949690871639712768939712087193502094848848147263531930469591553396633666994076610965635661922180933008351410602397241628145763097853486631063344607907870835376204877863048713607084936856318796139527066840979141803172111014489676898524080694124288235904904556287469672360989724031994877536465574807414388460884688477907400328621164785850962742525780394003675804444818240736227199632285911592922929982284331151101891836985553770587424888042455886146335808883772301605707006491286874242278901942448023065290080706048862980596673905936798704659638290193375936320587825888222937363741572298139681799500202293175924034082179176356778804613737529675490408956533008118361845698218712041397565286034414669916734180950957531816918545761474235082703235868151346098986740198526699608891680334422652764811200204980621129627621375233910644599643849009210999611273127252021073870731662138594762656587157473919593191230239862845168136373507887789834086821529776948512710259928577844410992991003722205982118557096249332028560677471347525244318230346053668139661732335241932405064393316085274078793956574865761627124713302403212058754642735724655083815016698203213258027423098276965590438986536335210387486154247047408440777849872607488479358623762537912032077619508948723802742890567793433024597742016094249666027025500766791678106426390557677402660733171996780003878785042937000148130246880573390024085507843831294151515719981952471100297417187716837431500016889594011586473608420881066169841208691752584257937603362493909845130795860817608529919806944223291965735969330655904705634208131444423923429748204782765821929356957616962404572805530983961736184321191606360113511197806013371405160708802829839283991930427409645247310640381432336049125758383419994266503505891689419812399088242646607437667669317945538283087172492836101390761679640861656492363823326686103286456540470043775512795457773737018174051762215521875270684495541226723572566571292309224302681220553381623577775651368251196725031819184238793677830926124278786792415217704421843262176552060407134482146211404963299956556782602113902347022896890840110988472124246266614468006304961027622140229824746517219414291958742344550370022906825142217253990481329732195264422981678799090630106670397005634104341913087803960602176442426172668723004272598860868816149747207459175066914302388249277482181073264375825468049573109921943875460580925380164140927386161689237990343634652773587144497290531454401448183481189162118058036271369081714390882053730726862942636913932881063868227734829774338849604160790060930254707555926738394546534014090075400853884657631658357270894487391826338305534256519042194001306270981254818202248858588225116266263033236116996608948801240756838249260450078111339800083359869518707050461232699767828751282882142545731358543471071423955911908153791021587633920941337276921460717428985963405655001160290090987259444788506382360272533525184301954779593106369651071468971046541722019324576594902376082358161591908727036138250538497644617093221693824503765400070697792085526664310481555808881538941265026051269976257611526130995489748337885065894382091307094263375547878912254010896668508123453351291272540110296114238098418871353580777533844038892414202424635791235655110528930624591099698540151156114966089930300966196957028822415499461430831889257265330202972874996152699549192503503283798858223842607113363702264585454913459775171151045246071643071322129193513771170309785339932928748668708208981027344117996585826856381603589665137408972268060445256102754413476872684875905703030735747965471867303415523694154417448761060656503884693248587990682610743977226135883980188861748104323614505926895622932869701322684309713895583254222247287249758508227462361756049943238460720825767619423985950739573372257671180745024129626111995547503917455340768969916404105323645532998976017723657287855691812303088562609082383180243018811092761034075307354438205184156885757353049498389301710417562726718528584843992539211809228547016319776761327536028936567468431574132933272317772667396596923484132488014009505601981963541013487219700211024744778287498072409554217149109486688928178850302100525598984104264106493440404558370548760788783305251534683191618037769400890564184820794057138988354235929765500188167329512080667401403751701176632269883630708003763231039822869676999645751797040062481621912767886704924367751355125983858955899954696023678630783664686934438197043932319324412248283126683957605318094472783207299799565298684509261983412722716616111466573469122468181835118106046999620914987513131580106387850013957599273773853816058420990369371122632417270417581977327446415775396477437070984735981319181561051108293183514027319940226130652621033585566044798548570752904950395101527121011994688235891331964157233190470410012479488346156129964362019129662816542012576389026439551752621311666086399842886954290551290316071679359429633128018586830604325433098711128097572879251436214426316426919136103186294858485586312222919001153612413075379737534222086288747511361153040630101164093554256409081448728689597378666771473580260164358390640235406835855049177197808286966051474402227709648724988189080980862272850683045561338865676511643176081383185247375753566623514421505561052776962745088781721163827802372515482192415511512622585297342738154312557674026092726967847768265823769472413831918327886605767074967941758904077894205834840702689699292358653887699082875425348548160846094159238654995377649379242649570976388342705591668623585607509832416087677683885125067518537343321098650120651154106624069285224017234153045299726350371730241273832429643442897900437126813052598898162513051710016567002598071095692559039958269284404290244647771612030407210243138357389416154234787455155805011600228519611604944026253782994259266369151371033209097950420798323109486782212307281104311160662482450164089835015276487690288057215707784140918590368739536679784339658667490840996610937773495630293285294704829386439643232957063951909620364353730756064240315031375417207089695846600780431009190694553006874411647462783323274569581998736263525564941499477620815606779242528776636171298923285276274145404563966163346506420423405464072326896142491486672096671566832775712426937422654126290432538453401181957024854790528995066706317202672615250775090890704257758405548136724795128945305032615345330332270236881406946515491349737808388986084442508679155927028846742577853936079373315149677845344074257215576064122416980355792042612701482541656440159568172075791146172328314046807100028765024734579916409511254795326056929439465658049283045446227561306899945552554706487598137850311085680967367584712238037396883816074104213003191316510963845317818819974378319628334916369108027332933666799272097035414650462404144594114882751168174535121769298932166200205512474428813076393702470320320731610481991988836752928103395936626311878059960155956294868010111449250015145451450658600330972091635470981244184073401588923195877556676084102473244634990620344598616999494909989001916289602716603943839457870684569887423965008419542167703048555464765972241185050294821314366490635277869894929119133654888289650173135890503605860905854646081558362110459867386461838279153188649443876812012722046114120035138310593371485761507435633232798318613494105504796826163328264303084029590228210109648771332896940208337706539933072816742973476533463926030219727266485201480540562987085955684637339400436711877174517906539627718775378623007230070844070792535771763631359938813147798581362564256037712275909473777495867801316876133850867425097749033487462086471297724944144617928524474303748884800559428083120014014223228570237422091701469754501923129926717616251033535672630686842076136098786585533169793621106089121764022535515141530763426386233377342250178674000588635009038063739134669071214188462864263679303820558935923724350155511498172365420767480238194878095594263159681533044908012861926160483342017749464780364510276290927676624712406666276596142997463496919645924307432277491779062102400465802829850418461787473722163001853237557555950670154802671596791146598639891423581668650132613103670550539139457418434041635337809297657425501256216980459952043205933506709802771171407227161277020427890773987861870322170814838220261762769325640580114960819780300386167513118139477294038350512927283140566001038835400567627341104210431477341867306191846057623574171254251305460474080997570672704984702234666949168056260763703247379564559115388453737509013403742795517022905039401826329729053487574378466722513115802898856066280492474418315881714694074074311322549560731356158422768779898205818480560628935738422159500875978666165685469733711454684785893696165018837077134016326630770425326528276470181407838300649947495086581167965461458481572040643492459860740170212775244585861253223044312540606319166002843314094901798221196268003847955205498081671280948596780218613947465549122034090644679477208154519480498060530057164700610741173651072319575601159179223066513706768660349014739331263969356793770382906686081081132845788065378536052681678663845574708777089512489383272474686734398214376241982392346260596835996094136091282615569457908295527897168167034601296000847434587675728784613901433937971156579815727480475524450108010558368422883919899717114401727646983490720051898540022179503385667043316977816501996975470933906523603094480985915317466678833211404674791167947851073855501146680306070684708043758029512196248030221698500742116853806932761609073601773862265549851943001480071784515489499320566494009322238644436006033815622073682799505808876687086121860769986882194140421324199483667531803221159227514429899626963862488947480408466938368752716641735430864893560928309292162735285160455054533796229013431477348144466201160833073189978590456673492135431159973219854385669641151271992337554976851331830450099666551665048228722648282899846729894563817748305848560172399625707115731830733040204534430888706042817219011483169879110437387632827558807782289177754937225368652756230105478352749189135000122419740783193816180148465694025024758367970768793298331045656073452908180671587732819612311999770939225258920668394490789103302144131002339529969539201656874934238837971013009044626452144353276718154063307698015004194549707359323657151331531305294000623221562182997251736600631110503618269998554668793705380365242853738255646198747878928730635813152564462324688643071801204200427627960014434591276198617416378273242549580367977802144884187493157750500722068996189237488634746950846778453259306101053270507658148702402090924504287030282811020635444840005431541198063562336948311435439671102101603972272111132883399272985821224092640078193212745339084452316294560913203427860279825679739518447499804368561942055090311022309766666177587299749894106648556542174613130489585957698798570699520148375363435485436905581424633731637442299095351644804181116032168453326236224330571264176404318530698978629324320557039317422283273410233305484418871825377934932488242525248549052545803687719441906653492899859393135336882025174155513135208714539519365510597925175958587190867536583862462417135744410737466194600552680115701075469199162569444018770658975763172737450022642433354882906200480866589268845672030231770782065002374656634053365678548631317911253041209430190641732726410865918664303952592020832377380027809627785032734091019667251689543722563096364700526846459570055347935081399085120533853981470420091449404293688465445685474075981417420858338742004209798090213132805223517838974437667185717310479677976699962180032954476136941274339796939765051417325435218399235722875649597146361644383330598753978328675123234308613779886493781449172655659666640708504727906859581084052859195108131941862206863588909221924899486056601931495081474815819329418664697559882691230586943054389774243962069414983676177431768849119460081459067648485998777068272472321955583647984431970907691142324853140784718379542459659285270271808964971202686692675468043610833493748870166319485299354805981729103590053769076831736279606769352368907660153447125045628720615636353663939568306506167107139686165526695096424447110198072374940845073914435011508178922723089643398184424913138667526768066683048270724862558203776081700652687239589260142681112566642001145892129195172958347814141719009392611510180304913797138667648452800790993463452054242500900693560093797840486647018079798208918102816055577864396161358252342066475392070481644923003027910595843469803248174346366346668007176017636934243810823257754173768901562154816062853063280899374098872388434237458063054440488239944550405954205156850538250825099994039476829832327483032963595615517595942837943833906627676856208067932548049016959784657846826430989136451476604019367478259049356044103771976488566192317314745627970578845133236190709204223643970160480112069352840847159923105811051051879513931526469547020451482512845449542191940801008165744817681676766454330760219028850845258146460086113245970933740848213867252965230984617704269781149054140378631559738067684470905601294018602266878449453310345857799498873256097463634424811948879967491536895040850372519373896028135888586508869231679336975128494842044011506675551540947064772766170859161041368599113491372127304578002255670036322387538875503683295272685507569803319039085135049999901456969312911558181496654570986855939138397365843907240648629173165070646149292799226673331870021122071870574806689350483404022914639713298190953086871404994521670782596180822401741716355392155528049150842360948328210641181250655923759451327872632405091384359552652202221144755529424917443245064561477171784240037919447792324430552692595010698401359818110696826126487298811116190054353376059362286206595277788552306361198539943102741940715265078228196461138234965093822144307657414840575997927438297558165491060330260624680569259320334884367042690426099013866184035131426852926128743694880266285038939098778506133814965958381118283919945756294687151704072211024478379508352238918661200865395958705895249297855192457105683781639939976994233030289438765415475219211319170477089008569101497607971623338690217721948549475151574067735539633434512798126236376108314989918388632856738711011835913866620742161003602079734200486506109052493281957520247585604454073413000725470382117512639084094901065802628609269922263099223166646905546380734473591364202670836329384452826546355591786959856956825014983728334196714489024244512453557452803632732498684481238244232217151798216420717740920765085898731752933935134012577174120635052044616298440232863362808907179072865832664973662245758088872534711888059303964934751225000521607602220658746062911777409888598591107501358272837835178072569371377786647513430127621233770254888021845469196586441395264061339700877098758222900077753455937658844263003766185938619551884705639103653371767499171772943459061137406254680406185943735013847531380385860948255840182932298486516673997704220048251433034977925504008732300762977989920683303338484889047382424489556227274088533115373562027913765118523174445739382947593845069691035860263548432266902276586453584573794963961893673740518019842937450618874723367579970978126818347481071034646728607811688698310269559009881357069665424688711156814828738070995126595409477927320688569142797569017036791587441446110417524259223680566090559479091856970206448053011824293629487634423548270508564095283066885693353964501554836940790886015766385192219075708547491376235359519605160825765609860416230196241087421482626885652280066905935636632611392866481319743874545750159022815000501910805365510141838740073946728572174242044171670858201638869491743820661134608893336806751799087294182326347646884868366859058209801555573290227097479492332167536132607211935472632846699674693643852579680409770142379209366252515393701043440674535551370786499391561543051203458731233234195154164801881981678227263342007813861240155340806561442910780586460742692271809046952430220513050608106941174543824826899851195546344711108803876848245663461874814379217868807385465447706878200858004787641067077969231454088431111108461559749771512032309230398173466622927650586588645496517297514314608423342030467854293959815739458608734931987096479051186617365784069302958293454398922750653087806489098898243437379648308998566167065339825732294686403316505961311115970988555052358349765464548859368512314384040010346567053279722876610890691421714116691592404810863586319674008254261231706989587236194397751102584920510277671715645795996319459938010660756218383089576935977176418004960947457364224026127895924712077961637659551841413243673300322610081306258041752595911431174732115492287704836710510500541321464416910656765440506343281440139610966925220623223254163631125569153745484909479565779915579866080612392761667174615034484364918349334180507902314521796321281478654825003954223822007198936387943544867476611642723740940852019435657380958799057011937235853976823097121839926727776249309145588702794277320698460797927539594533227590751684047654350942499434882386244640964867108195707053142318998626687079847748879294770411588924849615732487963840144390962961227137826643809645664817009799654227938269268983837298295696091903540911804343774790446795727483195743643068961004048002929985035141895914716382460852334715711897122342947003929997464708025575037884212216581764625748327777933250502931850800966100564073411276289683133937777996788027806707386707729058892369900633439695014513183781746137010579158834090061178997987921405421394435290965124039844736197451235964677063852304345856432550411179983445925172255127243294285605916999906538723408326397626451501382461410098158021744154797767760257534310836642202828098232803753550856407590547071322207420615519675941807606979805635688853382329210451219776736019348129504813040748544884252820349102700903270594129088124919906455889215150263331932781488839154079393776991065748256912207643316848037840315453700978583391252647190405024999423241341239345793293239351279246896982114698653931762307583532133745591183736426128537138426378669739014336522346820065417986153221167966224559966298829560727191765772832892756869657569240641646605846170525006395537113505376421279083006617575210549322334250992705283039410461569578678539759093948797549063911065685502685249196263294501080257930070859894292963256604973929670138345678973012512150580876519816201589994718533416679813781410867754907977788906928203740063778734891522066411515497392002863815621794366454976046333101071363791590687882978282964930611164269440714709285448976864596463463957167501022551318754077489928339817952519223912463838209493335861845646471768731209685144229030077454425686814374484622912940779614764822407499807438702009768718729460290711879882926595658651770846178324671243902553476450850250392625685736936730373466352469584408159104070068755107276917412740661193730461264941163899788287859758699024621903993513884275358095332990881891636445302887560730229007278985688327671923578759116665107824789640098482415273165950668312240860797325772783240735030580409588513050090515475298955475177440889806466325602305650196888908683955000196669466245881396600518010559449674229445000764736255402574719545630188584880687611010535277208998849533725475779485557492392895846635071039211485394692773916109933246800946772316119902111536475363585138421584038027375996293631910182168515360322374620251957789759662028082808172985864761400407751565779333250149251734623373874092498852492076267679871414113518888589155703221512423943878565860359257526686826182122450836796955997798757193052760969142904843265329789696960409744138399510202704799143200041265453601049398987742335712163061763024683051083466646414602591445810666579269755422181663144751659163053867138811351781519380765316919117318567438398787573999797460747059017836185229010200446561627154601488500299634963830044639708109600846555743412546533667010289251311232686714915818466947832122684261808724776728684950346343354739299226888753686138761890784838602189348628973650045030790156219793614101732581034750037722394021069211620836614734513170303868148874357790032479885670425499496630187176285510531160113816692790854832750090823512924973690546897175111245373339576465357134576019113007037399924684147805542182349340820710386127796400361710549138120724624597806375966235730691551379530657494535058436402218869686359676548321182195688111292772458036814597088995318822347464710525805228652878836312848727198716129448546722326142098414132906328616753497533349361559155309479133398047898324363988676248989389081522028126339090946621324089830149927407811669444899032194187553965577351456106624906817571564932012933391585118494289797514482153043004322954286028055954356551188588942839128099897776790793538647521410822946241207376704455519637790601905791179340460953034138492831800348053806769521731119847608917454207388883145994817029199347760743728961752314088380792999511180981880318273134943877665651318969280268112112550552214500237573039954335836151707324864099418748616260343068643012312458038952175170862679661742935109807566563393375768828264133781607927469995308948450055434873349218340969520628981898052302939086987518198088172559206827090792062130204145640275846606153461655728227694984885741465770750633934213919998217034374442795647204964264527694614406134712713734044578628165588441870969662832703950923946504320620805768751386223436957882450286550855680987443739257402253085844397379931857110733529806495053493533325506069948103145853299433861799050317823221030202109602977799859142138002339724197571991314266174890354195207593377481957934494742012968828619248669576965148555091872494513690857578173418624712767109412579323245336283302565249847913108405912996392458132593384341238670980261080407637072079196648841475728936302559560340724626919305925163194398579842560881574121763884515443819049376107131184450337865620989835082143352792248122893600001087332721646040764479546597029812805925325814598030050165308230410954976701705606236072920285860584234070902736515902767262535367487284469955131724771701714965719088964027470597608115000421513740940540667307874633597194130640426629542868335857578002813368222975879613573064839912749022759776901202947782490504472511041999998941272874426724153319373875116811004523734662352848809063120180819757220920845798365187099175327972814692773128151181664896488324426380942498422421152965453574631723273283813553848984490251054423461088099801233881588826678180121782170014176981590324333121610666865561941962808391514955137773664194852196604525340809972475912847075318333649583831208769911416026819813099711353667485634277612689739625059360916469376405759940007988956559411620179581624772210752714627184361284315229321892364464111119830430717401460228533579342332807447173053009218523819655144679318230306201782410856753447728813918760736931497999603203552179213407377268532538476154923203846429805796400147418599273972328829624838115270282294500532828796477303221377661790665800478474296392602950243065316126080507622474077828266058044025356117928015470722415624321624995701470347675256003684239919137280992501628321692987076049520440709063021108494074242704189500181211677202612582563527795550352859015401629671664752521573204310568277162063392673016713089691908836108605821918335802876674682093251693718216407129029897870396308209048938592126985790203634123274982145127217197076662954678720613976656390039159068133070047139432262106883837673298663726018013981196306533578121960172724658052941249788098334393538043887705181697600973409485416736697623498564347238473125435330252509509552471829808308525804595317353938841352508750806300810079094578038926353746348632488314009465560751398210803397699005596033100958917722849773962751265572859006336751027904348359066978458183496721111482487225785531216687405427634674324898921395919454489432134503707971999659182524431841851775557736951943601479578718391768033439232637859117967557889874852523644097882972198030969963004976277965123750879467666149719781157667009678689441063940701338801056852335746117385974124952403209900130120241507075836766462995236850406238988142162693626533918625536619164614092850937818497842231217205524058799277669059062395051747853682546443268880013823652944009366125121581492420457752216575168345009188285483037917178355499453792356873528284673274768344546587822937018026673671564427328162407786971748150119945842308665631183086643739738051308895402820140627007054266208397787999736131436166202581218090209991390063864698808132338947546403853844569781482015688557303886467751191080922780300899891878636254787378002937051125644837331582981086461653848628408757026881741758306807198257838783722186335324118527078714489687896523358951943919022364238828444636503985171797994936880960552087051014891344343739597416076326075582373370746325955835490719989857438651046854725050066672079928035362030530258325878565388059346602508361143136222979747643157318748725464087711752925435450056103243315737882661574284750029473278162945875916122467850596799223781260569849028898657598561565261189337393385765685607959744559586616672913536824956838087944420775273074661571986056370545786773700972175943187166932521597635770964130621950557891421689429102727236965073914782280473476098530657032252007799823931059369328632894712439412864642062527648512547145284818242298168177948259154517514908853333242129667144959529946671197564440687228861637682889640949266078183870724694204117143458906298490354620222241626853169982068567084965519379985525199223800474925529558740531519173343289718876463133216505834050140251404041782586165892416927379613401262694873283271756877230757291889632738994537923227325509416666359424414753303627083136021310523853321487347111104827673813422721625513869489220774895066232960950565718904521849987336442833651916467356141676634621729371480273325439600616813059984040483076065030792757252130310634229897513756935587504048225106309762954084732609186108455597151262822493531972062288951433660829845058430902085028217442958785634155253537416656066251977707184104859886322978109512833019808477257174643125160178897916808459384952665384324746888229588264177939845880168507783455988278472480525497012940431221159742389693442842073992179363430397496020575452841930232048022701787108135708067887537440565325285890549718898920250400891875264067439793190167584800482615750240041897920508343606953108551161970156141982650446589111329711785216822373517462798057396049458681039658849351830814430620247203225345341480797800297300684054313274457249955795086744915906440655629384918422075806107676955566488812817072635120308865206018962935499144048483590043962450383479269091585022902763137899002738367418160531885822252148577087396088875575379437618765420339609945701725153568321029136259899381000570492956816009871648900081699182516717591013679796712683750676182263928903345462816609825309571500523095585092529333185882462740880733248306130356144754734554955157203090049141283611493757779887218292194187971739847545950905155557215041214998633561508875919211575721053957907021874474964162606105326743050857078050674872660837717510829206587555158195429836376706098092762702775363687774884402175075079456572329108448067076848384973534429239895008511320948657084857243781677230480398555700815567314636243547043479846504152456342922000146180015081154759013423253652498803042684918135490718843800737470628999269430612059095082127575039684959581037123438138732311312940165979642097925154330530240099447121403705019508706502250642109295913650907231409360866417085212608397934217868229355494794197486666066316163486455579354569055574147238222300250839950221323179834051934752428020148865078323217708463332545288655625373726905625817657649661552691974958253152432347995280630160307058301598565197319949173424844830186749529888608416607538038693854105066467980028737836355062272918987403506909210337430771871270946645689914982988456805603735344516742105704824734649409016084776652013040159360911642289319987223774155149985710281596027197011820359461634804538608248658390912526666379069020686571084543372044540029611552312732627953233323184316916484134193740361427435241626780622446751142231572447180982594075824923631427472554756329252316889529867155667658040186287564337726992362939231775314925867335265132422997822164186794012275172319639976386285896186257287989442457686627651500305998182710229534150021770382753548913022313343442737685995845534328515702783188937459107316886311854113713665717697831475279574758761698069221211418655366657988805118997977364808318129189365300240220981912785672790595783987334226217464780373717752600239391085070484985603203964082211085873020812051908504148302461772816046832114571776672920624545288606230776932453905997079052251783968344034479509226587695903626971091072042059390662355611017367357531113752488755737974867638906420001365406896847503529959319449674050004004907317751156386178599322792828408124429104558654301474413572573592281913345891009912899787133563622821885720475601194149573273449782709058973555587559715956838360818515760324939140488154795564234510156668308922368238256093492494070463683977649830447022655832934223441337459851313881830324445261243898974887450331634876450789140826319943538325130997232374028838393202790287296858962028396445871186403891663770883716323157335377592448911331310856927015072655833127389102848813399455582243294343100838456253336754981812941448666369200908454576076494123048305317261302527747067225137528220009195968903618952867766597721838185359205768176208731063487116591730325101509123862329129342698951088668305231722723826117826564466915957999916953217495889240521524778607370046899815544052616070312740549449266225381071191597504754704157283419010476474641415917987624721895826048527347803551705681993677103503452751625885420222251643139591468368575810119454468687287711266995122500781547941240023550601212639416113989539074314550759332273822459073782932954706660506178787498605840880683258619510245943901257088292894688735884579226386168666494485624167765904985218477036489001045175950899059970822850662134797343568548551331264630910340936441245768484931599148708274213431935783471487837798599288718853187543370832089450204950069855717553349692394978171212199076297570074167746278666427539748275655287491370099170473828022538352822820327539745426682206271596057695188020190865024112583263927933739529062222229284836182033100707411138935083782629757653553919455944377497573799351610622464106929402811680889767737245228748782548463612866755786656291356930596547501455661374067272113306434265655260518151557550741517005676189586080793968772792512618017165143091144626206411425737324111122185484210297161242534921586514122050478387883801230581088756662459055908860726605073940991395422769795079781877284554633154146380549690890667846170156474553933772881810113685361994179074674657146358300217665349249682501766267165268615175750198179763071108611187793555426858820348785106311595228688003398763025700157707253629982810449402336226013532118360768713266191353472750671070786992465275175129202616244515866378061541870389577010729130541095759327072711377289188938602678237142775666870068849194813138043319369568658544342089946685938770490913862413434054352743892878091831384000992944845648101605676369732773471371588682852182825195753810755295908601434489752400471097026135746186317847831049836735283411142629664467075049182996686298859292173932456526077468028832955376050502208571266302693339215073710895312813565019565726756742250481918920821046315023288295868446668476645803972867472971756349225979634436609490244725394949863567337235794556113100784873409384904207768555276416926616173912730138253426925843685496790504204196949770876629491125485236771399152138250694817494614286054943675345959755650371091586493730523921664953935185766471119538284622309607472897449596137291741895211798792490336545470950219417587570203758950662833763758641851628810917116093182039189137789478461515229575915057258471229846530274430821079122852113871573024665672225702126513402514999460090473231521298879042421574177097318388565030183451342159737880856305116186583752874403020226425178668020922724678895586181310753219447256966784004211141200997898620066880557871853873009678264889687288938874537162986876746742342011135703396777783379480813520168535592719416850127227073132933698060922152437216389572038081362497505001407726594122828992042125215081890373291891491704771400149269230598102556412402624797798906336427652081421577467065778942966426652921132098248046410486646442871992225548628831319836879234133586707552339775768533060666533092543877164141315808951775830220424276334233011492745037966307271586283564897023385778782717170069758157282829592698997164963494352481988567843653130235799214418633869212003691393320337790767134756286343813016180456399960679228748948428200788445652606718861773808564262031860008158685861551667254146334429973481254890581999969285100056590428552909222331248359228810103855199834226332109209439728582593829162532457968931030386696601571308780782288014978579284238518526547754606000166143212829960919184303128951043500645673836439006758585468538398718866961377784438961724616669362565873514865156472928996812043582630406009644560854328078858451786559104643365575440233678270037698291045041491839799867331174202562609657427239866142575047967158668418834539867341584950371823616485639178618888276977076618527682714618341298040801598770880003527344665646872332736342657327902356081112597540823811171575194726037004575206810256208754653770723726424205754914557497654611167026833900529082989954591338589268658133145383028283373365712571610928733756625150007162687110298256731941287857129874855307296294952506042655370889014996332664899594171115249611750697077543633928085365472100845267352937318682676315067982286360139786521783595708838046454831077424374413219990231627079634766856462965399209014426667307373719824966769784855830773680744960558719846752653439520402521979166786241905787972732353128082469620552704576061499999068089426367790220408025394536537543911758154309686564693122466432030282866606154299252796277638888824672987758373450045335517853089770789641531945385248046424509082439271764018790982324017188570346251830075707104893676766181581948701816557456614269064642844638765608198470665840278100920297023709758400419676421064262780126301792108233648327318356136812814268161169260220973711855067056495995493728578369917006429362752406052245222382371769434464849060971519806532283969364843379283238688158633408718080437058482374947588158510907630536287789474725082747551502315204125306670399217578587978397259911204842365701512202495382659329306561994516909577086631616854098899302724324813430605916343449908823849921809032284789822142601501869219576466066878522906856678562400059108585053405377350101787912383446665270997447017414444602095760087745533337958855710257033303110853321335703859106587183308060876925291290483070986816474185612454330919406848791686974186209636596358964745671382481108912140372032279093388522947889080835782832835065698447818082102789995246245777267704232374883522998701663727840434637445171708725387465109200317764322480378543914971467543284439614230788191565522528407057766087868458757211335961573708288272616344186261515632598052605767776149526543884606601314533367558319027212344551700459651300819460925159900135185268012535357951831701459611062464113012535171720353208071444279593883049837807368472201331575292731841095758979745266010043852335646927084873212552126143584807825780248222893991475649848557749411978300508728834817537591940771401494517180625293365874288502073280027084411759011674564320591119769455790773513845820218765843697997537773476603755868156845425846206978624218751554506934642956451633715913381639495546329628979053390936420841971568947099202055872415235066475533139394228568797940090321787196147409010793953091614384558212865427223883769732268096077971135084509331159686906945320433732170036534456974221920161992332311709659165377503043790682796705061921015106520975160323346437672067333145137594147277689761787959739983495845650185972872278807036062234080317504555388050861044949787197768712840535152237537568242387390086437798117740486699844753364322218575438887751030565385597959917351353682856286845667165452229175772889707693855201463375419950560906880048025736765990946088701923996414942942388860444234457400785221112262798524090039682069064046484842814386460272381814910776767140683740669978522836445988033423519015289395427500522172144980615290463304809170105250520975227240605325581810399158187268679574654631864660332199027799496983070702304471645833468920927212371778008619277187426092846807063101994018352160224407426745856075685759710341928131587158010459289352898969365499832750618923187456386148599041331217810935677173854495366877060781148744221008458198247256583461495314151003482385076854443685460606694507083952903319456516683664199962312680408824766097376324366722141549695584159447623996296069275990318654593879301680798158767061314059768219927722999021448585404552872674268098652681474928239659072023836407890627101228766690662396412580797589052372737121055909948623001755411264629571431712613741375884518360009241341575493840798548069827115015793275573978745128763021334797261117070138440352436441472822541030407875887668018582060243556664559467736922245415140880171980177507330696712175457681849479889779653009056366587040843249207277644976392277237177510343362267532459125801772275874660160176983465393890030830726801438556094557448182186292081298534505377297586425424960341191937552117752123109376018296184931849878112365834412420751719729803736083015713568205833435205236476888772605846671366726747423703189033628139804499117879978596937247367035880854734417312661896411874521746720465622307129073061520578439179349778104591965627735069058325388634423750437072539629956761390130095829770895370932012610972533791999083545790057480899394449479153665280830771593863254740392139256845999040729802000327443556097820950522433524219395780150815336562279511341043247369190430653135045466851875004717912807110404333245091060363979392436026149374052752386857084327440535580151964230840710889387689741224003922740885743681312205477281133736988939376490500274723583842040912873907188015125988251501815221182660324786674236018640826905998554503077249113798285992252456186920823113998790802931406885901740752944012866526782719559242569375869788726811871837340230482963909041792580416136069879870985621414939617245253157362147013374898289867689694758677596455002766748218183340337696655217615079950898301693239654829641956326203780632767640515449825265306636539161026291674417284905653544161004310681081073339074399013657833987110771684015721822921100482061401198375560625167557101441408371543912577504058374506439936628052634123955122446025228006333836883360165072836476442439221701908310303752754686679253230049157263770419992632137152457737796552815173763064616905098513676090707451713695693939245756653950264149390364559662037819736840986368815478794411952011562447326118471846489977041812934196990176702793161102628545998380309624772788882107755042897666833839990606774401683491904118492196442142519377980481642683760152010463888246252943487770040113534594244157467504220956553413810082147581527792817142968453435293734749370761338118890079436880888864597207629165118414076478287740846855368253001194421508357435881986576425670285274571217395429808228677682677510267720717553353814393162331941645103335679425806933434999993168783481804748670774117707609302983965641459499558113522683689954119094685718728935764214808411842835217985668127267684638633837257743624594370751965274499303706404085490332348459632492877610057738525712450023433686657406127953157787319753906870295817843615187820006576289051425383580733898209415632717019217862911982918420621542671639736874279037342149595081711891610644429573101597800758798838388513111024204515112302072123293430223966027480088247303470333242619691446251402030240324208894252825135937401777819760610387138106910337216864106198933580678234972776671854448304229206854234370723816500933099978118439773864846671166890669180337887282110307693625050443963776950813497590924300711010771637670229538031868795736763215007810832177491729417640313609373452998971660141923868709537840705277637645170972096338325730993557702887270186940809151708665808561739995196517657342193353809133616364171546607997217531576572123555998129025531454089577365195851375037612101716529197561376722852328121740581308629923037410350458687718543557283958335004304524674256418476514116329810783391112907986858029310271661725429082230934014242855726716299894935646904240219160697767519586105567794114907459949356071999860364427379895695218108086866230211764596535483625908499836664205542435667253180018927900488071816017544031415330993009185921892971896188124429231344786898752154130430483757648798159010358884565289082822013761966437854743683074798965090491956049226885246905808015360949435716369676443117834516385003100996666448896191179856179122745728662352166551466266284146976470587150974247804892490768096592421786053864714508281382597931735110082138843904232815688962097199104318202198225284739746838935963677353313795173373934744886983143923142321888399718095783216132033541182182195795566709405152626072169273913563678182717545700525379833425503440691097357318009019731261043223914854830204059394068503995506331052659662547272870304017343667434462438229684254063913362514864028847053672074651613237851957011691575038901330144547781976686316555486733615278252213596058354362236658010819056941046006297793938730887269572622999046441287948574712497400577716166205703546243799899970491736130741644769259366436582916561063006165294353770779902618113500737809010989582156104471982654720052437660638198079591613339585721247632238055509506440215367841186876537207360726565686251312306178906528261715647241271881484940379193853857756884720316537828369857659416701256174587739262858332346173067765633565163474790721692783873832175323625674703337453078015824294261607614820055621553902054315957514736933008476818567445909357569254631865162483249709685027374456609698575441771520901179155227595792988650136481587312651787875016955579087838404309991740512674040215440160286046525580198633746495731693400613133663397614924408636622809061149243923956425037479725337965141991989379842312597321617908862043898702521644506817763219276506795023780202313533584554861620138961208540735595684550381440161927292611629809477935499144409109777552847504175259247555213666708960799789664396967990993310574816174464970728509573158113273864278847813368221051394623260944269518403216769212864034703534574659428455700204739920167940936233740395004508731986829886783708728281422965365031994472975487504297996357429210545803689850996298943026583643115402731083374155014060871997225174625445594723570436400131661448605656313779893140817067156155674311047510400482201087206251990987885841980118820662075553632351009553238366563195997261772027243152806362683551735757910093925721099955707459545673344673355291735910380181094204023798487648380614970998587125025983341588935782127952339781725925979495838095979712813591440001329093030891733533377096026070438018183729429233212074643958102524916225455661630500437907714014302095885222612602494444033379478300346318903922377460568069514962925816671254449304688758642532713092552975112489614154885587803583420515581011868613089523454631767311702197691287934061691276924374524491858182744228004496669117978939118693757796109552986242575365807083793163372725124279808957048651944177799459608972694828327004362449381717479437807478793458870971151000296516592812513849352400030370336370949019900686450744018432207055926786330487915621342048533999580652912334467320712817208806943927543641548225892436501911513025097390351824869615267224647344153868567127810874703347467324916943220855166738570058884108544315124473342902331511171129340627711940624748762209479908498737106532962664329479482113256052970424025513109105999438653479605663788938790808316291518422579576052462236320824379960344143161630695762924337228083372977752613543504521131238600539128363043505078880494670109050468317722125897671490676775893017269135214762334167615551563417277777533734821125317228924829230172002329595227907021676008068818100692719769882433564173241138025462057300930492849800189837757732932360727931325724259455399949053117292695355201316330334020926919867251745132282757062363278139187908575946461804285989352546264681071498428260496289145902072475595766383998542423733019271935560747881631464038734793179291423118716109131176730546562699381994717971797208698605131289583082527805527183343021231310811840611135120291602615656256545965973111953333518991310453073295058997907727332577867299805856200671796987711925194050268020156171026939208816583021065478853979688201020621302962972172974334277510563031056043020702923768671206686290176644771039846638254719301589081648305475485487453530056799325287258665764876731753790527850865508496804417440643555956247547889283346181229317913434667128451646109704259060731580494676979804853392575178549699706603109433535311438439739062868773195511508497574886218043577500054636402584517623697044197413908646581809721070044241254805585541774219522046780186697996271521236816989877568831820740169253496226209768001846155063489655635459227469308250360601220477181158635649311258946469017629910225884702235964975885518175061547968447897358035893248000090193967247842465597196339336705319404018121802384532677432444551151897083740827768870505050614450037888615912658821061654460394108237537027185798165178454830545888484820700431358634232272844588832883276283746937717693624866297644569742521294583523772219090956341204644762943827274225304910164589795210544663878850477999131468347894482418935488609018987481346500838469079464011965249018816239918751703961833681468135629164469557168842691058120610934285455541927424314857736691261893789100360782887881774024596554680515922827945969410690519100139696629651090710692420063894704036756375244595154392808135776319880991172462830689612401376608052591823109077646062374145434599548039675612806442533345467386631489755205783564971378839578704688239428298228092832222697673400505044466830058824031532512904351169726167127580302123667510195003029025864759623177555800954147060585345088387426479813130702780442993253795643092058782551387256843143608717392935469382540953835891067794888498258610641324272851034856246771271481501572685523639882601531571682239960135080876066403662597066851607737376742530358623395234680850238568505518161216247517359622912645991965627386088540544023155844267318558996900573185425962994138256739581893724201818888301918837101362036765833612259210910141174306067460484324601673740416629427583382443258481116456237697715837928118288967004753090124418612477202188344150158337660930837719127620858794663391012434043771754250911934666728614167587930012274276368806027513925352462032574435751148774014786842951286137329248943316794268078706929018532155085692943385675831189770731633927037372584578083180144271465727309282041945491230512950584584319823961226261063600143955372178576926113592860259310674690854055774158566170875830511294508713182005778804412465666889855192174894546137560117759869165616166446132680569210794366544922431660360671871813740353477636062829022450679286421327182727735146964848771833229188586632907273559793062912024474479737749208492130269281818079372022908558745533265216212017616645179609065565351775362510926384724282424530407435722618668509958152215983896635897567660965648791231687881329535705623656956409309348020799598573231601852530705369985429922448453596407480896963831589243721614987339462089010051868204759777141350607782396716386770096892477826620943297644905256874830873911186444483603709797245796379890108904857348603385057168103918973326432796023889969744824384241468945845122829499624872039140005750785716596466207868261761464914893033442185036348645582256164096390136107353063964091894437839540266362922498396565685431955747154151936849102727843083176114065086077105886905216252559468240680186458971090454506128946588400971635081165128439578845121083242792409942184769191967636762688499627944578806089463870713238965658232947955726949872576905851872611547337667902875815563223155424938443155907522712843259396214918511025840546076513881743614658384880976939991617329495214182858566102038406647533711324470525762373026305967946593952468864126519731832392776013849633621698283444859522939410440480679591109301573161207415919916288896256219999547474386595836833137710708042951890350423393326361684237304133380968630623323502270734381605941194843041604418102697393401958289888972879230992803437375176278309314216216308289707290005283988810040168419438390964584881373751652913120867927793016845086207877017998180743223149694304298362510054628911015048829369829932655960555172662534084848874336697483996338508670630671356335420393236301687390434984426466273323931506308091333731824526126315805250374003919136486457113421444833650739409928533474705791051722667441701239060018144041663368544737344925297403232298705024866524650162508896465719292182883738458894414069337249105950983050095014261984353442914589134421145739611489869983190588075167601892596223590262088858945999300619167412112568942927668848384067072368437310970534826446224792589145232318340084995322685620427180329783838948315026929227563003727709577688893641177733838562758216337538732967827971236784136017988160949168374023968656794166127439963796591016745928471598696349735017521955995889858953793689691858735788336878003870756540106728096667778863032965820153127576268909975616885721306029952200815635292885772699740483318297622004762106915848500542311631940738772383960063566071786875772223432223631246229395229316461090495153652758175753899364970805905489229760492865150241970050772912754980398365982544217289284260168411228643471685481859609803001052688274197605698805505709073834228629489297816284062470463158186396266379967712096597935614116223142668026834576946369655135110742702026512886630934124671684760469897285582799545334283613424929797733302711322169618915254330723211250061077953589898220892163840328215291466039780513470313936914556978664926472206568573321081892912129878355063676171986616910996422497591453700685500192814297432471214374172498778596263181092219402158966186473299691998814924642293577125808606373530943133728441120823752125469061352130981554474645820379731500396579655590840007337461328144944313077785230408955806763116087463279977387890769516958296461220471284630498103915990743681393002920267653202982970315810234462956809803159206628392659528951292097885704319201762292581256395761497058777481726727938984806026981115813349805806384501484418277462978392815196115947327002913046399650601531666991971490338567779795079631500536849135332728136397972322073752929520371225353488752692468195438419874904254751989397851787356705744408725315345551992185572810140563898300278233052910836692228723357529070126019578827987660861716183285681709785070936771243169610597126282928974919878641111330808323242395524701091993438837378332198404716954656759371816208576785152968703262108492709350043036805986188746050041534583523886562181628746889067101670520992585497794714178504253529621295143951685593270297787794316320785200093033956925862432646283011366221891391552471676366542754267290126174025148763665666186338191335119810388204529490502775927398808563936930401829101373583294825861126143906815666042696676185260985464808579979256832706596304771105923265994573026502237716149218134340829699617914826950865566231773016098624650361509485309804486720851489680693077331296489693801940835615042801447301839588430422989279231749872298665851643044330269786112037695488964913549480148657065089010057894559630064439699859737895007547729092101069562773006330502664372172515142167628366055389280779786825754883588403854387158371525740340856144427505214028821674903837153185207124992396525092236593145351803368631753237637591246738956628775012927071440648846643225450796742117029691473822722452871553418672814827299869267319791300164343858461796388853951995756707542012903383581415742549792525494205621385201060482664169652850440978142434014255282130564605308729437125323307735168486595075437176338777400557767350997505913747671499193920070112257585996267520759200190189930097875943916305021556512468218503083693088898917183462761272332244934412436539264746825067661663019218590219445414281155738470667230601997754134536269079036678333570508247572920984035274198335815723407999215126366874229699382357937775400748057353321135576392948208382750748470365518740925847575172346018770069745520360028833666684509496385262931499877980503575841583706140149220479079046152067162425848679879818644523201318342913175051502082919267122829132451470679928240529615961109248168390429441883346774308669855812996299025223194496364854403222252568359513915527591690354802599846046819286783216021000858034870330561790342752419812509706072950058518583915263497210900906204797808893341389126447229315445952771226103109389116950778924397777195099009104274198660449303787536598368741475569065275783078960011235135262701475521274567431216622937062743911227017439611949022923935509187693891931346770225021047259397421997789160802775547621814425126417440549031708942511056526415214206696228300565746970889405674112168268672770513073546936686644640337761266164188118635826032489927581034463901190481145313041628123783599470482354549736644093879165536645325227541597213564481119394312805706131558016839603568281279791138978969235013019182521578314544712142792424550429072357207012290579395135802789791944274010651578551589506468859517073923864133963502007576119908801175025890367625532913998534186766175686717362024658160757745620486808437394583901160586238918435004338881476123370856094060379796596245293312237920770291871563102808988296256889948812036904418941571290663803957539801428492786880017416191983962937492442235365879455046499085034546271259854864772204858132538391273096382012106110834176832691823106843406508186381559937272414031538399290617990505560485301792204029128143140573220353396710120445798650536541490767038789330259179462206210642801638082539062218715560605021106415050341634238448438495815451627425650229386147471133349184419068293821476442269250506484484095961660426333126190069056243993514580151939297225757618706699461688116051699391608820781785614223085056030365179030985066723672586831770120129650942387952112751175542965201615792061632449177461642283748662575342935359017618521504859423650228557949477287979192757166237560049110413976471263145343568613287161521530301333783668126240153438606890765436069785687781225051358383498503146974627437052046522093580856318489028746942608022356493243775829300463585466553842903164713138571430727408377203964460049657164091714400903379495560129045528541138435804284407405319222583040360515571506126159281809772818457551775226162282177906997468229600751201628109683046151677378534873614541045172731020774841794332258078864738528814194014453397674817899993487329610382005667483566790715724355204478333882949967482465869971627943722703472456595589581784668876819789986121025385448747722246861234183658898154356622394764628027037707406412180394691511785602486311550646092468358549340227945761723609501983164985428196461638330246112213588133953951091250648411019662599929557163102201334649468577384402122508261800595215388217171201792770777425634378804511574270653053336765580035595252959601364549065070185388017674205811144394601978443835894518571041510135258210965962807196243862503448713017250925497162088145489683749790066853657359862247388060951194462919888754101009032956823644804688085332916463014693459228572603970537598232249044259398450866684962067881395281271209808822461310122145804237888527259496138700291140722930236433355348396083916406712055007946549217376609622046944149471534924526378906953725882754370684309951968393104238046010403770839498694929787835920998926901079416381574643601970844073733468878765064511560815945592118804652577661307585161546649327366454660173254230833033509052217487806988809299629736184368264437480256662654255332893495280078914024960016527771689883250357477254242613840235245759473084486070664229411838659469503410609884616983626716327978708135891414157508187467044432433757638502740611929608118678169477099204653098544797637996196652486696440740099179053872902816251537396173773786293460141479817588463770447427020827409280388485610231211411574734420884145943389473298125760795084228890387283476803628764216790837794802448529691783800822482797789179509651880531222620408325654970137690717783644463119866381593439260030865093660401871222169378884711591311887594386062274266065486828722667065360950439285036145291517368675095910928376584271175971486658713837079500053522502082169802369848102313350377649968741940522746751480327608926784824352541155556474094994634131063141129841912667921730569672519327921027068754262353001798804643233505211426702352705143569265702004755285110746129373154490309036762456577239365362824662280957809897307857981575502014628632677558243976625754967423311855175568814827513971407701070285903963942514274629346578858439266804852108785372636011179572111637143363045295519895636688737682437553646884150256082737168255067462220560135905028469720387709738266897441218273445535720694739674683573904560287879889214382811509357960827165334573390662362283641102151304495847405021838292249530624757152241661924937868766499175629886629401424411978985796751686540917965437020763299535701989957135970715633014947500261580219401114978411419213178040011752440045491253080773872004588347191112510592132946531049837355716296459139518639841418674661438631771200096557791624979791194158638266533119163755511799596240661981871554817310367544782619821630761577728707748711887572933989364684716285636413165417409770140230567183686597413833322577435756820122283960258255153896417936815970133254491587192558430203258496186847185887917483094008639302227532015312326268306449049845897480947649308883886610487503692881928073326364011679651843113162823615420740083919803905870134901073120286169653714787581092002375314392203717501058508915996416352958521751862869471606048959689165295356590360964400476115879751818507430166680587844108189198976126379361446933074435060888460374401683285505144845342170516732983813590157092036498127126138740163052503827211777227773718798634831472023304871597949243293638028600746425539890470287514063657770622476805627721061215992400814789104014688214834993635384563459123319715182801700348878482222365327059554478534346784848061161416743237539469456767731412270833676758004653151256746242407732013556407391013655351332075737139056741279062656955380305425325795438009882048597377069272862753087710166187386489285152112341752552526854750052050880699266707424845390860833942924682102510788281213408134418814602167951540795297789532528650589007650854708456010099378267518872080416980358699394516088376463836680099639978969347160033523907036990011211727650585087338365517857274068067787753053670760024331253500205905093032551238252566501539303584524129324409275384295697247061397300984118852188716644114546139700570280782635387058491248745269378150972213068183182118171048628627391494580921046351216664201405074198315428556215346273987131657742820988655573834533109414913657576276914211401991681854310132786184180078179083565925661347675274263486684283627834327394469629802561564756664866950761321558338849490751510871000015117433119930843720996774765445268057529908837576307373020949426853601374822911077303919010606580860044210145807744984513989672900033596073926854729700582193402854059746458548239447284673116630665173092494692519365909873644402180876481682171140956230676679219745172880919852641454566109214805561216079309018825097655253063756886730699143301994600807508846692700942775811077234931968872095186236526596399372491376620040256486438553698607969715192958576972136529106247951902684129790087995579393102443881776058710119240753223896431302678423196889127828965358820621344806611807085945262829026868691979547888955373697857851739393437598850207197815611616375596533834807544250639430255112204581055251137449523961626887455471785478390824471285963179173900099714503477818992052012753075048623177114690493619246411131701620840054589930236071016455702633116028460143354081212185897411053687793406600425038030036779132143975978206733187198299441015279119513404729754214993070557277064341916906301928467715890425715249455147033108836663165453674019675328796602846731561643060180863920968164772370049071874173330439927739463184593157617447942674066410808369799994061607055074742663368316007748774280070279348328373913607210586173739795653359143403041581455319214867666479021643407425928154726544064334725447272306782168690851216224891603223079530762697937672568146356955476336135124160322386744412163436395048999711378942494204861734300585092275967672212450337955281364839491891840216541761630227657979629523139568393643568240941105316395681094535939994665668848425165793063005391640767810491887353627948909812329677932836204511455203045671590098600404908723896085106403296154490659684452445118850321221803569792910286141556729617523854021646928728459492064881083564288266564539835199847138726873598282200020189759122608151177193684485849123698443090568927217860605908174226746726765117170724969380989947974445240770063149942795982664382036894131806106193021231684884480293346883100372642823722108723572768292358993758378994853102770778873896462906593594145235345870332748778315065548585313784890710152826617222616014049188155500942212683774796646860486514128930014683852632530493807543641313591315306154041566526856590528537203296943779438712066708789545208421948120416416744517672921339882834320979000077174376707243144318283847528343600457745762571250411944331017059980218970260666035425747595213130776353529864725054391537286098814369759898632282644129356087264631616572264078563641102535078144068693584556799330648696187423188297199943619984491012171228654472619290377517841202794557588121341491440177231389267298560999950180632860701894040481216503328079624620767159662905294476443275555504663200335515594976303793440038645892507946857881937292506405236430029550114215201370459746233313388756375748050291343505022710973036906974934713539007298624055210350288466246269594750139215330079254972769096801708113833171534462605387186787812694685513256970734055404639476861757409664798694080632908127537086878124141751104029355770288115749752112768586593775872948461855392718770426689925439378587235644218239310343622433319268805961370430985128967202256063588108127410717787162550754418612015529033680492016862420098558177652748061012930591343702684700741895047458400338147069177318797227266420809951242185023982827743650989446500421450520794730607627874308681794816915373166369928922751884581240143901220090889918049451133835458524194445009484660954817699511387380021911462253111633910561218522283841786425668001827125525193686900857153390965238397157739182762592921297441560373765376859708955176781363347790487473147721221684633672847892484560646504905430112701918103805125408930154160461050692958497709979497963534558416822052702360051320581326937288149075751434686352627715397875543701848107665458810858340915472815269335233559868020023328948728806579086964323562793911190275843372631441443485798205441267569644294834111241247278537863312286981178703757298500653722285964492126174663868223424033872960016799254445856024401589050212038624249420374218251160888938504885338827228626037959472974591097798577345871506936071107117769068023044932882800646530781362552022854668524166828408765531200497249597001585287899308680436760849764716581720518225346586105193390966377515590255148075767062527925201583760474358272005410711433642111405607888898115251172896065510705563612325955065223884904008165512780768253430314395678539215684628472942643617843648411306109516611745787534355633969672647841501204685856781148631480213125116127738305549845040487052707840772490561529212740208697359090391883631095534770884929169525587910412612894810977118551318036571449310950732086420990601883165048249814673482723002796539137095034592233870973605989148269590963983664108116025644268648923710045684302951303636270405669462866582804766135188502220325343626010781327151789451529201371354540436048481991499110023844363454474480766522167084841463221254032019398458502139973047846564213012600583701765819900370449624586779762232959163069415159548888341899675492915738558309848615588018372761329283375909219272698449602044629955433466586302769866214571269942341270289991917146800997626182654556369935869877475236125830733191252536611061854932534656188892770270574016227608283195460166405396669930395775247061896589251553533349872890248886396784992374858811668744311152784799537160624900147375418007396453405255989854792842225463386097098590943623761266005381270391551831446229309362994281915119899084612644651689226129993499690486374822446736750295758054498233682717678881938475172517871240483459933237359076134551648579267886045564304350840185285132273049088301562949312825376111930764901638244653467050253914850671686047200863999709728548713404684200397927156613818559082713220044413573419408686324861141652568762981152409160042356720145388219760848956349965608874595112175946933541998181548510543698107149578118747699617142603606390615019710106454458941513313685259673250959531415696560505575826109935716227662524102833977736389665767524440131921287570628740435118276041649296083956028064602873554520384984866993411408063526823845638475065479826015088289420269547681422460498153704993042854142575512953537413202503272956805971172893230407657254144566729072046427648748990620586730939100689294387279936341231721217133634497952523423383839844613073382154596678407291220745846426432917597594814098171869411011345936480959748090557137538687591802821097425007614654337516680607584509001507106156494263467742718588929772248565093437314318573735318261268387669242157676282246677139373367623093101765451305882890772981377366150327760480823137288996355218451739776357832953536205488211459867125095757986412144570463644919688176809276079871694354277103582143590878202573624392115119758469573607376373934549520054694231023769117720016324370940352808813091414970659140014648445984310982531560490495811650580336005374111031459062710217434923739969384289806970015423150063250816918415927958592155057927297076566886499499762865239363039983616380266541981325958953467200453164724240574551276229942556995763415467891809485331291264662098762892413438152440146436088699234249995029670989176367191311725276199953659679458693865115587180700112223012749784869973056605976333021805037693296308807156608619718267123054039770295458175568735317939431716398299589834016623189302266327318332871706131786015973121824889705253735631901761660554278783564319377701839908455012318828916298249673024265075690970301069999508989069639426250016196199667381620756380679360766005545734437950972920791759936723200848025090856320370914555332771515448697432729835255550054894629841170352949907047081940106257587900990503308836197895450006092030771767337979794948196244542320572347294506142780141732111837119729583706165850059714805224910533108237222896031775667668943391239926851442089427648444306314957763455915064268834166165326658201325232849210683873076470575726244388157060915386861208897515642304678191433030568364535416386415689505601986179587068670409481705826727454726661485077792811235118165806869611481267870195643508432385599312913934396720434312950984268641413136430753673021031200651425821339613993874304087889357598479407220681927521199797501530165636514862026694452635467298805199091117284354362159539904917179877863694839090342503039630457101416035585957403237042442782576676142058861602800887751960005831916826904972241559564638423450466950208822715882343090595463797648172974044241574824143571554741195341047901565113282483999716383037098172811290631687432537526350265528758560841909260265303327120409247876255479186084557396931434017305630157177452844186102531784398885222781560861049987773377159087152282933591121881779764537911194086737454429707023568022430156152328205894173966076105239926603440999895834558804473761125465936506563322383652385065813351623821232640992101782563606674706237157263885826699497146649736539132759353654614380426515714344676954809484173435288731517350433187321499261943882446400696537651400160255636455216209950874312881958405078116735365581600785662012537469214636154051869144005560158380857849162689921687693131828984519487266861271223326833700728441164670112307611106019827210361442930130152578697359661566360745976226263465887098612610598426864869592644863908797154720402587760405412843542451589960572791127441758608649119967962445155773586785128576038868314070793725493703110481582014270468728349784289430382197238021205412652784005246126486467646584644747997356639237813177160081200776390539102598370157718261712610279452089143283953760690359506150658021475838795690170355662103609355361244489005420495880142687277017973043998272847835547065399685733024819474230169367088208623327936263363972146028162994226461883960557892667178658709098066680859219543456938223584360812945256361520561428707099333543068908361590416758253433914518369972018014306806567740310117227901626540630094013226502313672137445537458655091174748248380758103521158298597492366135108164197149240093294237829149491579993581540266714980107789842006475705231880304170777806756707050744883262591832460251329794845553807573561968296746219431093529049139521507964788027600973056351281759160791896107111822808492448769142915373399143815881065584407768484832798104946246870979422957167203219424400907670014231186380842849149522818860821003671266704086499626100135989436111213995286244594244252890846518551319610188310633150847933985952502218516570353576205169357194213143928906234440519014164820474058632641228197868698867650088541149790841823330130345140402403767410204953843250295278885092757435469220525427351595072878560715968039196798102601954884703553298479062800487286601843263173237227377874785724304264184761769246257445819743552930959889470407770785583286389758516543314703645826460251088310357946596143760820777373139979154088692145455248823911115927262710462072702669442131753848041193759149256704648095613744311892732155829676391906898353862471379791850612719481974270130647644674791492159254070586565640496799792948555055680111048437554020896155941163193604606118542811762978885202905252644837918961373879396221248004696153505027406517642264081964840214482667363661241286413154445942678942801557974281047508968251777327552302807494042318390379754450858795101475275644018599585377435986451399898063245243760885265662750576171156257707393652369450717502427573382650742580179398450662821553479844895066788048231893084717190089418971915180476275672263201820322722420314216445075416119070007966186256252707548824081157470640245914120178804215106583163574122882439122637329884324195490928054621903458757128106899049827013432498005695657026176545353759471863533010642088055902976469656086614552377660183561627354294281638241056564533771787982620615075128769123699560934685950343610550317613987448158469601987111427534484177886583219079329793081633193092879728444804813075266272036220437407195189469847152006025949049671288299604539099303182771838905486636472845121374210089930210488143259214095718789257203347875410480302858858918793680845650032306962146194364375788046209755675060387059329489017856897068999558992405852105692820330045572901259233336182395951453351159130556848754157162676889018766862022791357215940680800036994743001852581649307875129412467326831267585703357296982357917331057334418917433173150609106235471925007334444808883033852986648435742730056314804925528570185260808938830375520302826327066561584709521099382077442306748402890521582007581483305336771011079338385099038553993370073969571488530994926599079255872515871121926919704429581962818056089598686687968265397533191942866164380107530433120184948465818275403568967773569893040826508608866846186555778886527031801909873925088687492402620045998267934446471386163132783319263145743204482800705720827125189414633036019244562277524338622246158911268324650610424840089818981117722340984374690688782913728965078758137233136127762435566276770384743280508037826565116014674332868950311039169112725263626546529794305989089778032904588430492847766313816935442084209548482857042583940360962675828993566912375116880639263479939038448124515382526110861510214933922601433531082004701448447492912016870981923965701129199871148133814973587893578581490805398491515778767264292848127407802623594635828644180757235257690026786813489864386858784136323732407976640774086914594663750301889592700690486490031109383827369373094467734348516243417853653239764020660034091878718100247674223006194682388682219159380979254323237570214674521971322440602249293411530273020822603919900964683322557258950356977671672229655323433146319786316321748827980977069825407594394781002700423126684019368837895589617813570799977413069214559228724441073632739599770791485472163809682657895770158900782016315986748845319249198101814156105083033088987129242118128736091777080133387378784485062284869372255525507305625057469688994251601385841175266330981270245864465750638525192652724000724863127224624218474857259454231317324291276427037364103801489962474129766296615933719261888371814757641464396947643178924773277851532032546641920020967469383548870626417429468257092102922808432066669290189676879803258212369111105582232651745884018836788671688176378467664682829734296457458194556755488215801034372145765808442581060090062008607236734016322574254788313804205693674787157720470507104076392413110873338586362006478246364704075990176947939587344250664620116722224006998110254999525271046220002508559805103387261645828309927843795779028394717113826099912061647150031532361039079870134842116093915756256966238003701056732107136982283974460569510079891377413365026155674044676199137224637230988053853931938207174780577521958752634368351993371710356509318295486840892019532636061642794182817929155618886386220811227299879341708297775337022394053340345017963126816963816703241504639960140667961951273826978943701959688695781137738206364345045614381325145109711309259061342311783232444753190642951568165595539513834632426029693227615821052160681460981581167696098446639754374121281089449249550648690576386329320559041706930286948990776913374843291557941037645975531769418833915967178772592143134048767125562039828939083071755651483649706025256554208373951683066281090872341667209028444897705787674706591776413618065819307415409880345812043344140389254053427284533450651740890716205695195456632196551083585574398913298207823907426608157158785761248879115220621554475274998120768991317622592849598232798992649304191662856557563634369601715391288863871270781355850031807382105302286194694326568875481431772150372953771389158008767030198293547498273003983813023885342655345646369237330698514853021830455803119650820784806998758718448115536588127004847887584297945808905728488017451656001767721052798839133357812542547172919857110853535967896541323617321048884019019635727587703333421619047804092316774825090580783743840061227374101819565172045041551705299981282353465596775009340327721786019654394565895347647390266726816865666098873320363252502490881144770892741546813830830378829912483145011044049838911195863944143238719001062570583893720341234077794398542321163782022863606242364152343790884580858499937677580911098139131324532291012396385941340807482932917224343830350293594144902009495683848724507181162569729342195384306374911986494569614527732557632111713616367502521066742983794357147860388253639114733118042414348123485861380724470342132887465000297305005047763058558195652107955933449123098473382674087495247754026965558441063512572123929539920332963462833320288227463832334029604834226385493192855487028492275527922362824369354693884915302842893068819922769444618752358378038704750968928083449379230918579524456223714340344412759905668432719054081833858719130378012866420327038439851757819020590774015529984762031569371520714315210938383767444556245936563186522071086812081388366556349992739701350548358930722992236004694712079094811235158782029550294773599865508358725559649409484579807472212992660605745631293399319520440502576223220306106270711965450415391517645575116930225343602515583348364383483816606401191803076557354526875618474997910576220808213891443931699780420670195869803084153557823499439196536976441866183689276486121680195901432314835018534122977371324097538325018806779751657922691353058747108433443602282161012956468197166788633362277625437791271003294185122479383633573686585033294198236739634658368380260153097870274246093843528516497754002306581989955583198968913655171040707145729806561812751485353261221937790868892625280581254740355126576934831305033005413352862488052538907392508396872156046336350850230300276641503613636302862988889619575840601596111838002706266873520347214830330618833817770059527128683662091790617718356385202128861138490874230817151452811451814289901668022538772677482510286994402692029695176704447415236993022483511761819602573352019283808580687673349993000583394760307280206567798038016432790501365686569417483932255806506271835986418815087968658923082037547919689618267888844812519693266032328738822531974794800652470946445737105562537508317098393626418529130438889185624746233485194716121894932252133882590743670898155222689981630544254359248432363225622517308928175518125808519310804666495070958768069511631005946265338980414978339865829504177455737313172759994430713864807318631938646563167696530438162171723494167417393415962196814143664894120598881347194063669315069304963092044389144573070736214635809110187982074909992798493969514739538783912418271489095466085923746862294566775324278871384008878058022972493924824303786874505885160376358456931623335436249576565714043901608884427192243575291098159843151904118343283356352513140862426899016625003283764569652940614695064535486040071442026420635879634468435618189025516841211327914414792558591345284003797331905801818325167408306483697240767148532725076028011896984591250619132537690465195244932687521330724655627264857667710108821208121668625604923918211156409070253818093141544488198767104356302992022270668085099047824684037339767255047847359914753754577482735772199836150620726376535049252736178780320015686775781911200328729168357526845815079488550570939578529148183585365744118374637136528975506830899816947981770513900764906062016837863773976527664071292720169510746646158773809079893617389273985903327359561627756942876321806910625164121032811917218176390446478972323684686678982596107138578041717653300685600800712679630753147073672094587292539808022343963944271396695020194322216254764125693093000450083152082785166100599097674239866255391678070194575635857657483122654677169477346367122175748297235223999458375232428234542308968556311034825527301416593541616523366454419115503358507451484394102832306579084560420257334925333081347314395957481861624063070928118717202590125422888329070163977073484365876687058440614337418202109105753471814187989126857570362417623469326781473170256409509229999782122347775731852993674942348278096753872932635659992414216224111779657471309715283071525581617226971427491298172034645743843890660489908391458389827809805251532988661420074031164505220373350853204806854185240932433258354980778483654916310073375403781544992402335737154371818538642261103835002745614042148870097434391666352165648714722659375237802874427225909497886639941493787453582290138481570710474308007761173811650421405802953265466435155086061283329509577915241736378647821469708264700987819788371751742964579580548107149060396130834990992184135044617612608453660914046185484702145458020735153522024217166122964626310827568314415872971611108934866639340646882631457127460823144457073087016715437834678207007949751534343722202643208244057306595114514922229327114142271633366408649607910488411835060073421790057482991903066915648865910254890694937661777969712952600644803442698562692965614756897070951065799373596798715861410236338111437527308049048554064578831370631112412912013649852105077274883379198247154083650666562118352787254539539868417531603856737168189346341202961691343462299865033652652024395208502475710998701979513285714322051113466446465231746791464100446290809383234932145949886771016173686624981013006966413552181337148291453415589904867708030161169539070955224315381478198312545212902433681933481325555208136767762304508670954016194626106895234625365220847054611173756854988558608106970881178917052214927631938763569667965810678454571838398033658362699821865673026523592300964729797967085409815570372815599203531400980132777794441474090957950310952576229072647471518664684876304074649567701555928997696138354586288342927247054691440775302398372394142957992325391380480012758921716265500677731205515530735396305878056439272069190900460411111755098586651003723769516339505017292121960859132860627977907952538284113778316088003206509466174293582053506529486514054631177916601272845909574830323350315814156697843675812529971005352154205299748291993767956593896722034264627953403400508195153131884138277357545336465650876490621931603422819303209887822145825185460362933029426278587006900221664553343335074453081004786556539932228107747583923877186258259030576208357073113707361696817468356321736546330149460882729020877523505228644068267892599462592840878815976514057096076413241104353709749878952315855425081976078289389371204019341283496784302051186015888799236802129189958269634567819461271200659170807339301331493273115568241574811035541869198228182561615515157561200177116279027274011736826112413762375436110939781406534414031160290171547062430672868121294199154792316182743738699067292793581961990816588064771206345554150158133786905843554475146935875291452412542838061397760012291256687381344917659486319873513141732030531858587295596972051771586643892291342068992423556288025217768784333977729514857463831707295903338863010747804472559438550099444550249398549565028333525279097920656078625969015043329470385818315941722681476619940976028816794203444296124031828782193364458605215537098527182606644421005950465027513088637011167014263859208622715770765299210661217541417771841504639215387215384804190725691800838450339807346375812923436662106869452821713645766850787901281387171170778305092537229265914508768552435162833492535267252618189479414102990185496156211398078985480973153715731545590215984094465922607956839409404294798485605883467035412322943031978473504135058246174152844051194199987130636893528771131306200215920736779634159655089692529552468631172579961638727489924621564064518508626840776151047167343730950277826631550687687158163358210703804256901585185160308973669035377874389112719534391739202551703426498302932789845293396172027890858130683429160369766952280009062562777927960177118001412538916142236619259804649311228520007834350048575611409211012877841486521935708554262611026089293579418117739628180680530839208547391685077343220288724199512436636307311717811040978070700060741442767917721395189514987405390150081490052515879012428171878777886392062113529855635987129859816259146120373364154677677656277581551151041975424563145869917702780660650061263674780145149949129513055031004069956231501642452568081830245561591281652974621848021769768918903801899591448844368893065409684486001480057269373461856251318280096186537288106196891906836011202340925875297731938468768818763745347945825230597636251387620693954198637591070984462721477017821999043475339939538404714269977791169728562131354950955417929384959226605001807841822679077648431198348393401476438896397804063892909679359859679546202164038168889265734333896502451217442371290642293393592255192930110489819239989626636804704222919375579834071376573968450807911799552882999667565642094091610544256481058959205671010498220190715659591725061775918908220515865065031456755265189877855611736013667534558064455809949828913082618961459543052168495601743055528093895990706844092087127899638643131835400917387657111800168075543693992547998389554585720959571815580467733096657436830502583981827879207037652451374750543780179341377776419301071842353216535277508006486975582399871267051279429665039526949869835192131108146283416404571299180573760416118694902168408390252511246595544117335877449103510071145361790371080273341478931546697315047921779021738749449031020425431834375789170453897052422764749098023621512123378574504831349898379221225370793890389812234893145202471291451596646724351379717106577265952407320093011866185860371885860391112276926010862532518338930991967314847610378255141959909361560084713246538430056534128113614247343317181599482372721546523691822112338714251882299987010786538084301297166461184487408339793422685197660514844824845776369819428428853203937983755259688752397116740012912526150029865698066473392769880904950747185206053577408387385220630412429092951721346894228707853225366043494221104325190075382502619527663930455496747823810355123764227202767885962779513260168218598869356341926158054814705602639316757246335952787481982678786506316183994658231328645560367839432049398921250272401452566703782728743912053029065501009976314538033041803011741219124827839961197924442870926258114977931786359445437039356595530507152784018366304925925928721794908024747542190025437921512315345458043447971535260834996114591889189249770332752503856768389876774730854891703077676583036243663704366017593059612494073800319793954604375706223901498074153463941058129617228952502819314000437649280720204624261253742562514383936227860570630137469576646153687185567345909541567807179675315804927688280397136231879688131361382504730233687988185116202361197520707097512073853527828307570666169414202728802156183054000685571489758237261529948538633738802687469445142526354115997630700756923846742430638214579601425762266867705797129372199884036288846293310115727059140297376180298902261629219540533619198639935701698855906309589171693927267530517188184425285997135308686246258741715793735777739121903083982811380103605953555063200383880674104432153393919308179293220206599002601516551640316296425724366191046749363087234996246517341462313008287097704341328850326353811247570707336794824950579400977178696104964359980571741398378006136094697394978804421529207862565386110620970059626070799937619726013496899105094005518347194662580426202137047861870010060544479623325575042580568224560577517238052664871604716325778887402527518436754881783039860478562639710278091799894851541067085863869752479747762219888025688641307496846459048419916587513145618932787046474391217330853271720976827601386609083015626388438358649901142178257300827546603612517155337693265783744726840706793036902126744319773343495131751830380336407794766494750433723045140341754992467557443906018087927243359747397741129506049926505107637761247769830047613252905030141428715968954121742971378852470258267489087852325550404859700889655639582579370975646132232108674988371760578279389508780957346011670005086282737120989539448771700667267477867131503537097042314619097272648715819553605654756484711438076278711942764112163462904531635296364116848390454761831276204719092975252256885229865610067346510221932688997945222631098123744276025330495365412823905900284473231391862250433730755354971984175227884490042926489474623655478468275070571267477600416894172138938381785103730740562886876383588194869254016020229219129801785353810541395849959059707126582287568279278565313365222814734174260646563163064887728659331438568108084134113881864188213115858884108295693657732103627724526825671540431902433588028950509119071665591253031469258173252802777576317754853098084680263017785719838297244783717378873507724775074966813660664896203228070761439486545593436860207852510039591478379051117978406707271718160162564607326687799284222876980870932057198054047105501765435009685924426148826892058621665028240042909749265858987305194701748256311935779174675094323027904099781766131524925190212577281067901804552887116870430966137974637359958982930345330177815353496908208348018890413144432960267214995872624579842513042112694951789710711476463594268195216269260497488302873441932365331665115312281194614063154183858296431908868429647553519056363622536174435496590559400865536460989076227365439098018697718132084476450064501607453819817865006197360832363437193570187797638790011247320236151166811006336064568351938088436611431281255336500326168842406021649141614266966306298851030868703251641058215018703355255926980545676683367983365517529369851777919613009570806464851752056761764931702796765472525020862740631851747866202663982695303995839513256469877312833816239373146844545426483291164158657426726366601459376374279260109607762276266360699812058496636369706919622920708605072613248128130256164572690472272719003972383067202367010963830445503600882497795720655597958771079521734511494303103052308885135509037659767959018528110166867608987625425315342449502933040862917042006416671940603594673164575690823353288216229336965796106230197144921125796966761813973445390920644536308370278625935437147896184523325795797378621672463229244834469043797218624415846021984435592517080032002706316030327215986449179465162243182450447586473138311545766462818615447677200774347635601997931355064929629120145998389075902694492599919945840375017237030516637268581925713197645104000567796488617564207824219873694351623839344633286208379461107611657068561754003630185610219155997099998923354906981457722996450305595652559742971836094746908045226851373038578489072961720770334445023227924544467738195272125085940154550894077994360554939395503239433652553583527030297787229863140022948130060802649870709562631120513230713990426890579856887639416277826070216135672258054609253270856714749660299762750005968167627029540158465136951873494500765190449136638674069556600137083825188919727632348780843061186680702813492269783223146775310030503981627650477151150966252104386828526956660456603757492636788236784123985224853120725969818123236257132720792399740834609525173043946283882303674227497017764774307713827210532186018898785393740402714141097910376289909914925040609684111933846503395307147117737580112885947002015807149386764930620353808230003695622214253771370354687394005602843843690875009736504528778856101264467213664590466160146097452886576753887026031488658385293469237511304903297779864387625982688086634429384272428334474156550631216894658350941356886798107796147276103820599139121260000652804326654250833032772878374746417421309353224963044759962893094772689350336932919501139038761721736019529477740981745515901721201093288065977867524211688369511562123959264269047761044537159456075893540546480304269432786808519519821700463482351004363186430752650596998082325700954312542166713945851974595525622168389302869808363938086096170058089940479339452106997314660140130785799365539021961543201197590316530655022700856547571043127048539708774832346561416138376403975567705890670656278488119348770963088541779884821488815114270100011442538146945473393050926950059776867930657416690207853156250544673417198761476081535479399811067415719945866488975662666723512434964468587124630968700011861444717223505081169213718963306386090409600941127428472196076746786718655317298426439510999389396985663632861269445530894590314512222450315075784259365215665751653166054853876936691243423186956076646356385421351970846230687668236546884385548767518620612567045456021502049150824354329602869732543054644329696228743844540160549620267665244448736464242134396155328353243889750695605158495865167585140738829984194449013330551188350918911522939312146031750050658190218806783183634406346658067548325714830421235448154774735287332622405307314663673342870028067887985786076103229352679233828677956714337072604820000134129184729830730712661793150028514690515416466938383855311319003712497818508959288533077548888673733982090520132305726157293601253020354607551760778871248973928360817087249841324673092441619227137463516213419854941783352969902963813069941713833950504351856229073227991868386228678011024402858594065064134284753277832209498357057166179796381923849319015564652402723204362211410013962945650555209104575977199756072309811803337423652740189002107422049359187147938222854880429162411453192647387161103008323639156941200457111099476384505427181298915339992373659145363212095766131053122729698660973638242104123265287831290252740631906882114904410578301137322486499232452951295185981571875583914279221877384399529825254249370691422045759811916451872640996041215163503148761572097075121290048413988329089179560700158816071735647681635156060862986289558192618570487690767945273313512919176200592903148203411687819621169358569315018083187870991047523347713409691970909363613884490334681052313797543839447880408577998058505882653415602914238711157509519514240355408573638796597272609552542622476589490064275069423982856323929019093085231419781892985942258157065876186352496644775915992457384712349942780570416188102005596560592486058454170894089255619659841813035435135864214527584800609515367296215503243813664726323471334288281596660880083719615866949963998889970444564971435722028281607968938122301782928699355087370094768458219697906355981009773581865734890235606896764743643700755987306298134211420318842034127859697110099447704115453650284664005786521335318661588938024511922369893419159277491592052596057695943077458876476083607714571574302840079033747316146500472975187879423495628426876555474836560526683530446765155742732360255047716606366355865273955248976290212166859068721950303126987776484025629376432939978285667547942075444428434137117665564583765694402329182151572592598252232650586858975139945717739079620840487691148041673940943798068294119838426269708100516803631531642718301240116823326033368798280900457088238424227771454139363214235616626335995555758657978177504063029816328588946637087150703624522980653820309562877752157499402471686519758235427943767312675886739987360227235021018351284383102434292726943764023446509051279064881961273540835359862578591981420477747965730680144190370019122691033278953703040369919036153984340009998791262156552149366771794804497095569382120731498364352496633437417337668136781639623565044848016895440527262291046145238736798390927690491443979842905109004273269225939591179005943520878756831214541973622004883998109961131083449558863408301986446214260088792338209840602069573071120362732573570807166209911001013037842836742993228748379874296996822145689732651605948303452829719926185935719175942259184745698482484158153539327588126332099867352215836211922029013101505482848480025540227554188149477720446681654079068496154597234462249521456627807012363741696920584055501429672483862038462647649082899920435372307483147720076776562330305977266850660229449273177422589819078482718662613110782201431264253758674220350116613919326765176010353917925394981295205766448196382149701193383186297972582600079473010023371042973203593006830373689766776776424892918515137524587772236191641833623904593631565108850013155432877687501302870880437087494360861016203866172239217530362686996271258589487231626276895570691424572251118464391237264466391864244310685727851897501875947523618669952497475577960028673014056287210335755493082865834669550561515343047869897293030509362506799986066018176647271420367190257272359153055361765279060285136849469820361615581346400433810900682927573624223127076483835252070928348126649316401563079359433408071632088565977680617953294468746342237524838753463675722002664657497795054847854758982570741335030974500213196521986270063658201874873694230082633111223673463401637212115539569594692670462918399770783850404855671854061287553545953538052854347069991848727651094273237187039648854357098196421500800622421285208891977333446168734201743997782794857159831503965317829576365273479368968761938001209400276796883950010479116223679132565677898090322225009413128719697441035144634651342544468759385145295199604193060347658611370783410788455530036659545046154717072095663334586146814076901619592930541987636753542900922530816832770729942722644572717454612120793334980233006825457303018142097698015527197830714386713214915714404886618191028786040377138297297414504412219689214058040565017606727521323034843502160254210840798077973855510537027918532319275767314187265547424081116496414237067563571276849870053338068479916591082289281359301315194955961683625545354590613879458334444750067796692935888432765242855696655153896767449558804258226248558442372499170686146684098491644943848681050652198112519943652982374574779331683754349612218445197995922783957402912014892388553933006523096269181332422801374969216179821546529780257256131608594808442489478557736113522650528483023902953888282499568907878721506900817520665600702350798978643852840169230845078282787128077790858426042846186924955291729351017398087186739314128563918670109067665934177008797662236742448577848395152722573457056564818648639361338184470270174520575721037462910403663028650784033155018926145779636744362042322258336542845904533062781312901244897128863137690180266937244674922225946520829924709610802750841264206790490695254577291059752436883406734410081307144128804400902490571504619930088583684417707977721744013649377707278837941856811345166957422382114343403905505614494153488964076954172396636497182861594169424288190264146367422076716822096293951389454669001704000522240599495614167789927050168531703840623159420088311907699821549154211378008592277253972300832167450140317862433686947230219846315914958931963489644994891623948730415266232896100567600117863227507926571396721651553765520668252467626719643405354379587605803766773972967004925559152632873601491588263012149518854288605562240082634385583591040562737184213201139747622446453261546266604055582540355917978770727722501738046607217772134416835549982193371468013814100113576616533114392990676438343674131322427947655950145179384811858762593785380805937879075673865552722887043410191331139241894734504704603954085339515836971820875240096102233621772090793269806243494518255680107827154577101444423645950476428820754899809936285773890990364521906106012338379588436004073096015239091228781705483350708861556442711948624264259822391083338675396675343793581760916296107555887063768474443646478174185889742906832021178016296404237834113957005958824238466459024948212351252650824334773833910391390753176828787993054801201683149515066615184873230931963968799713520042404590528925737348438728122531111203247450592828004291848960262475102944631880652741486377257857443615468508644627146475883934500308806488456937677442808026851878040467348841590523787778491523176076642113759625981498467827943465989583859013128400736908570890196248409489846864084583270663034735363991556196292482781707975641675113002362377931805319393788588567691934669971674363606588840196193165412539740348923905640622036558024519911640466838823727382732337668992141775526858779798219259866979921787093711922386248045660761281107876600518905612543439234394589396549140671581500220476485327333363443693907300624244183728107353780060686008777040079415471871216925451552724035256999119298950457035608039226499835053475107149456282186123827542805516130735867332678435830438062207214712090989060819620492159503346738401964025524146519230904538912920570085159892155403948522990309617859982353240506518405782018989156523653263660205837779439502854892054612174752864393696953144807980533066141166555215798645489010728279877913390608760904870529400047203986533947201011428193920779753681857216636612760656450665669789948253209724266371835609174353371858283562780944590923465120322093040064464219772094497604559556652845057734212059006224666845336209821173063558859763053488818877588688392276426524330634864812127368901711398300856736750726996192088221679367543668743398424939714340246642534480066714581010278478136216778506948163677744293130618044900953166078579887062921110343855662183237196853826177537619361179855948612915737870743704053985724549403396628008794406086087859285379931380603003349093908709746984157306808599856685623955070174074328963347739532462731381512254255493034480962665113371941478994465244824824504247631847317911724397145734141294238289566420064664098779822959908513933596952726626869254666154801043174539789374791819854642803314608551940634785223081990684109215571381374737892185851836115785807963195223991570641390847128307444945586555768447397677634477991059139405664300228845791271911387483920241686654578049450083545932149682846085887908320171614038226867380361369778805559982833274641900150904329617566676259517745853375855722586639194226469371464702048825726667730893608618259095065601241643477601821980307111796184318047380515705257132793173374638658719241129838025419812633960401816229404668829711738336857438248497341739375182932492528412761904782893792120318373838729934698992212075880058478540384772271058443217755219734181834423867985434896857125581841632719138812001793378503986573873712788704375780837626347998586551402062766783773235422301563218159492698105846129197153185049199374046121297350112860026146140153566266946631408509400456832090350773666507632527321049206416796402539882047560273630733269747497270184168460783369192379694389970351296530908312888753575897954941584527564290910510089976420624312277308066511154533361212800424009222189556067825814619751311180132103773835150053932559895410132094210035011826822899519677911645769179112695997596140731119929544377125087659784639780175163930905591757548024451554972255573867144677941251131724379913158973563448292045230930973684658214499307029977013567270117031117271379152819308337585644566793630373050160298527886972204883125145767412736423031976306207833878039928177581810592290684564937910002312904848333751913150461757439725519632322523252689680072394434374876915538372978572756511016033589636174465492982444351678853761887846361478903267332037344840442354461787084945942978463472785167459672696828998815964136775256614923863185648775683012555460539503072153812218885170124049862973829622433658686315241150059141490097694153492202640099565037822891771628180843611186423466484435537365130688236327778041245282109143772627098795723339334535757685774455835804560843268582132865486547952727731145956073677359008191205092145776122543707286316530829910253500411845503521018546031078609204322538251055514813761040093193299352477169160922461148332861646252175021322174175285399696571874329453173909445050013761514963468923083814491298228064680105251291390212805602907251314680811849884442579763641108448197912834068071905165614289101371401421430540027264802427555885792853816263197339435497412351059998244950535216849034786825896633976797680776849503713503157660392714901345642488214677767072944879294898590731702214669322434032369375223299321345477338512726814388348938845513321184457449006973366662995010098514659731136506064056626179154469084957775373975734051371213513508902801755255229909863839351658430261615679957386129559606561270607405795005574830592050821487827005507448644835755987539551871287031464609210994859765771873085413087319995654755374684615652193369999989182072606144504051950260224634011239986076810918346377863291784246764609706691219509178185136403053154339777850759963825237228421439344526017733088251361693983140797582415994517556225441238401433165122277470928590973120413695104238971828677079662643348256084536116525875505436177014919725382249184673939655151829847998244614559586655147422839149386478492649252563672290671823428709278921337425912204131663359265827331588307971506782130442635238931590790313839572100219043357217253634136886631031116949555311564685088521370321380783190064910979994391851136248689131365751714604575951577192011718693014151216839027678869170054256174369285149958504579447884741830638252185893995409197933868129629695531804211822623091521814616232920501321123020544929081998633065009460305485221042394275051366611375107172135129660812130121442724076733182966443803694982311890832306001643109962594172923317943172757591727171129422279124565693489790919023853420680099934774544086813639536764608882514541026615890521742815416153288661844385873970524509676661419174249812010193532325348489201533586498249731248008593172985515759527030350949043771019422768866169188385405345632720887686767684825376087381610031885195912998329723210613567817161185171579082803679034743512060372573323231325853234532713460011343214389794432744784709791287949831256275998939512109085997281926417591923555589587771841007652982509996883842471358937841224540604233795779548693965627689906457749714781309660147042977518919443671340862809909177749585818051421488428273785308964080092001576995037371710161956643431183672724125563398850125797104274923236249241024787048076592484693541824370957927168738471791942903088939662671942934913127117853825062838055873108314216604695518193294081847171664958534604242274726305884616794143442451310549970642662678311204673285225971881737497545813483197613349157259603052675652244921867894446663904945002536077951257206186898573567780311337873769562880510229889237073273028387544819985160313817160103763613058780491547524694601042245380293920882498355857678469864880909120791491780334847243522944223817460276545006264705582727700629106142233334789678004168477950456837417591568115667540172823223901364151847212725671017386690695130994076127847814232884761820319055921661344402359962193766092666911492303126389791933666993225959400332495674281154680356866053434395620518712089676367097271929387432984328105376825323628657725103725640916830950000555985274662520585425710397756238725892855688371554028987474725007027476445263520451941779006622000562496874169793326725699249797314509489106081689290853053382993149155797429814763280562598630773059735848786275324009866047728942417575405416037370923927806600276672367037484665953760523401637458582448441446105951458826555386117900182404978191829358519746964044901359533295811282062683718329820975149670151447952872948501400548726564229104364511505994189831724822274165190938137592709225393509376092151296505716749379255294917965951522379798639943998487841903081826525951180976094382526928663531343599491103740771799706864915497615882862433652917700155239598715068612554599681668390195526149455957279471803094164959472696303995412849193710311326919607248729400837659634194226830340708022689759993280720553957830203519844498266060496692002469368937393856472257134676391878258160243469172155587139649704803550460539697794149122439668843336825960739365167601166056763128777818950076187305012133837901733124196619847686863351747857207985987981591974896311496090573292248164569195640359885597429353503228114189203376726217404765509904691018954513114600321310717706903813811156722104231134990021260679202429998461404120192185107745638390242064222918520388444281687067761771737563406739998409724193976977192754497748690294088581870765651435315248247169188153231854094088232789625460792687675093818098466639264695672574666610435912772069769848904575553069897091529321346239588183271951375516122489740070294595718303119651492786132972044113256602716393199682647884108963292645464886689459204846995881834625452518325020406606470906805945743337211093086528985514815330134856259377094294803302754200525639340166592233985009227027519039257543029520187801031736686996941756246373909886443662802238799011994435608936808874825447799176244227533907656235762276077165930724477014071823643920091280694021181326461228065263225674543989963916791334801516896067642095473631468867181037105896382123098303156638587444481007936344420394282629472011962337380934397750186517307573399060627966387144510124766553937998196930553611848977352975599476895185015957204959982148885730784979999652143558764694905664772619956398230101740255320556175459443376581746664783550959256498590099729990715168916860541527902364556457243137847596090321793569990777758015372432593634143323340063224217960834844264770255604482628761028425699510231960897465563564689175422340283402113267208358265456091617517029161721962557996709402537170618346204382088532366827591261367129109651821477806679779524131963904828768644804154916906555736535883449309372244867859465354622406998683159949119404485922389683075342595812293030358156643288944029827505228515313325412603175174365503941098255878877749672809669652648219658300693589001881311071917255705034148594762338659424112511855225148006587417424464955953307034120512931945353318062583258301128856146671997890820106114653178477153452637223015376284118543602867550246620936091356646291899502921317420559295425126231993200586763157796850411908118853622487289396367995185945351684513914655199365439004140653144867854034856115277573454796465816274817215106300534038115810563176196274390490509267833715013692736357369127337092828146315822712893078980360834284125980925328040350363062209854483309431368622053747429903049732227177265356503292677560858354769247685027383932793743077958823007177510249271217144676710139298315101879032095270354505246327391196407893462503104282123394527789665042642878323444161081275126029307059032200889183809429685023481249923645169078601156278983217289233954461645129808572679043047699403688392532085268015654703550287254308930031068618097825947918551400317192199689703737502850458921967338830980030848794806728759873521498813498598450360824384379763197190003377530151965959742959153177477982375618443372356982907514291259025776407333195484839390067544694000199018225205727050735876584262500506253158394484971518025644549578418319912756336612067402053555616780625584663189247590003298336648587659813584569102948631915936954416314369402636560197052551316548719207809980342966371650712372763891938327233202424310711653051015176720057098943620029372243782237340957957992230267916185270132179548476217231319797917965643930069686515298578607304505533572481894468560273407172112940310516926961217049932008008396718602486585300488748800699612668121149725660615216092643350473604762094032055806928025791551023452794989084369781274634389781455465386785868326258021330141413445575308126177652297833268062843737093621259645407195103501886681190172975693143466558048187840152672129092648296776740864427583215403650033312814891722827152639532071481224007327252648923625443811450220709728594457117634500964508362567252892491337682667860488541795138546593607580346874943714501911224805534065800673151930540457549258862319306411456720036178376432160568144030543217078205055252807142108193020762934840528216910758592302947585517620942985290183002867827309650564015404083374539102668952948267735657154994186444010533678906740227695762448777612202387183842723573748074269537143864283050507340141963975452190320657045794454341382075236317897625906537257229771270503055703262135580651392853432037485599315497042772864618034677278043076297045489529253705036130356344799410018301069453987240130762068187873651506549414944422196758920445683806975719568966449775083250562747359393322389272969981657301941828755995974204270953885466289615174157393699804620262621741524093233054630183826214800416316169080788245015444420711904124314726227867523808219964961029776624101431781542496317399202574320336788400578928242149656937962242255335375905508255771132635801990957492259631677055933162849781210435197770532998300053435184500189618022889691219389279282495871111708479499188849784872475478334249129115804449638660749774544125764099257517036589307598043709831704056029146833645969547240172130412438363585337938684111420840217630736710616669048801714543745806529123482574456251133366966220837339820791447121703917709493361025051245985287281546688286166025729902889666096211326701970186798823918318303013687639284043461135140220139952214670153545020161496590330448189301021659924732339308136877812348906463367110458949526645704622893258059792625574843361035568620584452093009359337028304225264994595405229872242126657943040164864455617699375363622680327744802958689360337752465918267556597708758193507169779941086302107861686596593353623005153698675968460667543830364628621211276046699208961751667187799726450652147974791582544364944286486481907961235484685109468975077358457508150390167930557265083587042410578752700363566405199338386033449961955234525680867086305079643027313717051062804003789778328275955749590541451371903301641904618549488641156634341510198349630543619171058445990016760478167736650043048435565777764329684902521313216917081266552890741311313675950314131762244249235846146641973515958682236761699338311424489544440235047567702277151753431149872572558262270884583582464337358280145050359211239191260960176368669123421206682349852263016621778033583742228234148655998261921909143853308769489572834836911966632878860917782958354598085209639287017696309820331045144570517600025268927552442567888084383416996032728788883405257325471331560346771636119300880453435731192777115211787043168216644233974561006125695369072937036245639191176330171514076303430373677093516329572708646141837953065497601687672215476805395304933363827985376968169975415844217334504126929136372263203762290199204835764840354874091140149857420539450582554897421867555787334774869526197683974934882014207614650544781655416902693644537330682815053009022776824843891172586367415056321065555023398874688348370060002133568516391334859149650422795601183835263135433515491856111280698468005110074695255651816992243698549338784897860041005843666375140416182333777374145494181844751435134166465478630574133159915404663772706605259311632049408178602505334102865483324148465397887339767766510354462385324445897368555289634564237748062781126523809819191020760962608296907195467021251468482306639285157317563557894502624896136930701077639747942156400388171461767502528483258585642314391690258783229929241628539368905570889891185511868433726716820310603334079778011965029809968691355964475490133218212055619943932239387134914027423479087436624608138006343592011147492516564187725698554883675949243217796125514799016562321021037164043286054849869140661586589907918942353293378217954143282216534663310627631880785217687099901640187091306521237266355376736271254571630394350678120594724230677692407139657817571953698312254407681615585423811536872095994690933199665306859643657749875952579149359932395518151494797964176740490339048701293825652509311414585093538232408093784837110089131893713928875294370443280979495097864580713652735863033652893901749634349440503822311267915804709287426670751928446650467463557031652167866852017412073674305845139978843956552505639733645594982542404325693737122578372691052837554270280902248567695960440554491187102586016769257911300464253934279027777202009065258685275008186016360360494512652181154271384210845934287295011429390614505407997324747306834971937936857243139517387778693961663622829212213713668769893223943547293846283449274200630791181268132563521265435949418665306990384683888067751569349597058830614882229705653898340875620955694426999306358067418870684886799045899328266366383055526991070947470132569342885813869202438030823910877738944390207363880354718364781757345046148051441958847475937204484616688752955652828747473844923411573914503703372737775848127000249942679125986860600890266011825066359136101282878763556173615601996939302367372441624970124253811629854437666696033458403949831559479537123154912679954875116672641797405749115758853596797921036379544268232119929218034869439837381029724328432452884157678638251533842487472648553002561029181293461801984024881186765355297998827103815330160611024059847436565735687879591068345077266113959109393397856259657588901985957245355125332771323750732130295322517656072065421019344485036744748220870551436688359839552997208029150080298021927414940033341212543588775835317945254718015682943783330425365749298920755196461498487551060633907244175713899902624977758939915078667170827944763816581484743946816217685248847562059810484562459081746083425202144290125421123736624335323498408309072090868459488406348815138655794369498030784851664592677911341768894044658748143182992840384797862055037625749174975486798463974618621947034224102902582061324637322955837734583549546709836254128074565679582447206453997622376135029883147394821015628606332672090938148113702483395883560873117424621007924391610336301429941220330607190788954963393749251098906243263941343758679220274777911962418098713917723057245774820681795374528794950026262175335452511739545359059992870051016148873501780607532982764534767779823686805356658246189891789833717212929277760517337316430102055230142051992263759778922334618935180232552140436944894626632503305278444841444298526876405215446729727752412631469726637745069373856015322401610484999802819088022541218847431827152634535628592534876435833790922145062307728488615218416474782625787492822451558141115061240475258927593356271411706681803699473267528886292856038266238600990808184334077852067703502234337800408922499190565663066931928120079137266702956092777353416977434873800761173566119124220880026375033406745295184081788464128664963809220429358979519221532172390176225070160421318972432285146016076341959745137082407447624704511591194477442323846835027902216373886272267137991090388085381733956911705029417110189240627979253217823517511073120534887229147207831849729013488611827905121534868169365519353881759393787882003726750651796396552171922635876421550928599932951955210660166805522704839203990053739954965525070953762211358952241734298416687278891418485706135564574036516779447955669785215277815211951457017537012989445945134699868650395060784652282094924745610588250526546202478135721889092826207753101297085426117304362742155590371157963092093417526137955159503695391025948950328469479820333061235265829171577484060877791373727965528648829144344181612813591880701578742035178291730665780893463611305179815829665143024533576825586697427963299358366476946497460936528904348889560048868677565886789442369058492964967205620049619705200237525512450857114014540124253527650153096150197851284885500650106977010600464099336435342916532553382800885165140538590284228463549914401085972976034410584162693701846801557576586594767805635087044668924770648010596991282033934301434440244507609382257469938979241310195332650070252486586150844869933493519637185570185421732811995193859012995779949966311929359545916293774848346919803401876192411665948702455173022650131075872609427982593099388142620981485930747033494228941563723211254508461521407664316827644727546857326815131617681412649804021019038818469275815309409518773511644817355261244087518914239747095498508814167416477914165322682980926328325513469340968547686185862397781110923933647718151234026755427248474790389850165875115963599851115320917340617526142399987639089786056471924903849120264629554661860278258437436562401863292521426260499584707533895377456549775467698186183643814666861025145991943409159588915551198805205808046369540865052218899022091919367066151889440476675023358223324174200808863788509766019856907247866506370923189758983772579268222869177081188597931506121433552547825102639426698779086664031861969145306159358303635380592831233106627074957734987070448726363354202772982017083920567052959114385423436095422234670866243853450181453200481963897967071310162444751965658554827033315014944814593369613156917877021804260745241556944531353662930020238596308020368393604545581417866068289989079076919499436507260037643319297734456784841229406540811712168859476223871079510527723269526541616808240594733243221426802178852766055705292987734587224018283924083637647773607092591133258879272425430671108502477629476963059965487133571653889532247533998128582748820736767810173267658577843703391595755426274483061368382106093092608102152136335948616149801331198362348576300083090597868642205755389317724424453598900251550640465637598686634602016285071542828988911220131323839342110374442388319776035520862178585657759818508633644150176723238894061421884378902774411540725526002099328556305577139034310838929110801258352807363434200494712136944071875844876522848777974158543103059713731399686375448484870754109607205984337003936318351326894461619170969320951597661563995110839002638745970985501875637502309898172444451126993690111834082819515542460312898892441078161173220041876366673357972396952339393019176855380883082616726670289720459397434789312436966206775903696544251634515793814994112832381297473689996648060553577611536236607869209395809240594836158528663413115620445364705360141269820467846871123865953661674069694116731983657761691462814878473736524240122359103193008721637272397379952574706612404660306372644931751840000581132033138599105518106852333605187977110177719259786957291909308137857398882402903098544066835443412179355098520217022049401456762712242105165290069316436515591090413979890254847263246223363190574684793797719850026459917981854054289788652387965108029079546883841127482230573080813472584554206580601781956431290783543172351312458735241991179821774789815059898118795769089548996178769141052154962171798956426837636557547966051604224299833663345063879650453847201277800262800134794348531912815221705615651081697580198565998953209032404349353110372389253379290611231444909180276664071962375157779393059068614241179917712934662395306553440033165082153786383341426707000184840592041334555484724926570985871817108938763712110326499983887472352540272478686071939717911755283212811325909105447020319614180935070526576483204377736223104173089856221842664574874488771180768521158954226707781118191219486378422520459947513569335340534854148666441849101791474418002955539880966545515010355160753007441070172493020254079342145119494263509171791902417744382026363100961222777075572608201274328837754531776018320856255168857525770988375279678537530033407345686205887777213490782577840786402817956204024244604351353586394417033128998848823147741775453990171075124119470290686008951334803066291594526398908602578360816360698996689388804438852036292485508326093044605527176060262956760571019958593718048244431724763578597463291016537897481843559972552172784328606038146221368079225708543171535878918861242221282194838631617666706713175876785069027415772975948295048077294921134414795729853192137539120128954098162116149696864807495200544215931111775903200491679210314621032175844701971221419522793220355369679986174693099306956347618639961984592860477020430999281049262235264627851768632796736149639720367786695429602809164131262303767407405031649786257394625918775759370458515519448656187776529997829026016883213487744656627301701270249857305214772973803545605819226832967379986318244650244971353827247354023696728086987399788868673082537711201425267475961096812798087740396953602874545477411587028014903695849137022671624690235187641214489884084715338221669427013164932750804345598112869863033171350174344448263029512144235511461263734445202630775130673689891931211257187079851912805366940776066283351315143791060813268265211984759272490761293390833356210194322153309317830444211627990845017874009147871337247694595671929471236703016909282517676195816466189321575047199754234768911845148124971480432526087320728047661260917614133716226826499816925816768661225292215526262350593658498968747802158021689553083986706475356566436983027350300071645504349436796485247882079378219804339673628090213802540312633973855669563638836169070044119135610062072254083175394649852460506061561116412541979421040122017311258621992787680659678605590168057803081962214245361357456609083224616171690363727658904812741022266596326316654138802124905791862244611370459823091231872475653033170858355453397601830193438911851799150682505880110253587095178998583977909188992275340864300129141030770143008689225275969330863228868697646670114805689162428477314198818642707184381232324667062425513466023329103567319851126474184637050379044623629232306380366443343710592116584544590462941555049985951543878298494555726463532400136947742530559091447589772167058260724746418312006902649056083306282908963089207728954928170557168825925299183986619591352340108257296746513464920521805929721923138211391402399101229745680602102612015110659244163196445094109888344865156575385949538686667729484219855658757083189187535324232620511253987741803198382869930150894449930934693231936550104947949538355612894511139300949154278837285953907343563014608091012431267841591874591640727928516479616515912531174605494678516992786051494856169639010323466888573511440262308850923014808476829288742949151185184416079138518532592301166619472312615870386716531638848129346856340852712267847120674114363207765557028692080036650841387865431561068630947547457506511485366773191359387395195333464007704240882299367232893341213200957710027310278753007818707114970270902361053526730349691295428465735406712624987007211393889933395989880241640336107494029770633696051057737887953864986874886128472058728966734464161620798724619325757587249398324093011749349928451980237493006301236525145113031930627694071983549974409864594857601753124894053765560797705636092207475092135431780644233562462123309975267096511930019614344285495187208912849101044238866672955174408177460034004757875172905790462220179232379963335585769004406879201823924240964659119286318025279932278502437368553672457716125291638316382131475703270699840749832662547486127961004119193234140058745491286976414251505161960269321160155395533619636578836591183785521008527060316602017890850951220173294689175951956391551444261120737309671783171365559019998203158779337325431011427504268526344535738271139528798145699780686481028465494736462603702234894648582337210919450573927545004515724031741072373748765392453072702303538476749980700361211327887663830396711039637498526525734402785036654151080481098774690475135510055313505486147013519210874987882333385025366734148452034751601681204834400843119024922200804818539198981170063185009161841301645815659218869181455370196803182441778632325362403592245394106661087568233141133227764209242057767343021252947962756781715701335448824258768786345137181517115269530729760275303421574481080175276424932794747841795105538455738884109114617915495017503576568857955379712386624615734971912220374891039602806419374613284150179329376897289452177959577222925330310211482177728914667617194063581268716772565615262503468810642874355904952366659713025193579623335875564875960620557829143688763518179451595821501985351667239339421555380873254835976474874078408684637532096647379179516176805948475352840498493261464258840789998984820873397460056572925616966112490346927942596998532855126383952790686263053580636366767664743531168726755833069219337344236991637669655015083431877751963721040103519087072334708529525405815795614618553068102726200794801691639578204452441152135760430716348813115726015905030376577209077350631937357115833104813299665010535187549037404945237519376273778916923058753922158499421324076261468666093831073932663638512537074005591872751928671041501588446255210622679219861528898714312736825839070488476361973107357565372682623174896465966932349335725347711295115011855105343429878243070602376512004815296259036339133827574317450071881207700542816893949717026085397515457889981412335256354392592662279111725172216858612398133968846029499725892708091808671787598621258074891778968065359044812823134566488688862725503189517116782683918066790137567341282319241653190524156298721033689520111237521295933486837913307476591094323086475812930459852281756261937613235940267433712118393799518688280864185489353515259982013727742443816182615725184231581951957498699560235470389968959706086428928935597692076530755368568127309049680068798391069066752648797481952056237675580408218928160977930550189883568090694838989524890388419866719266063093192613735467923102186249432568948941746198567795785080144220964446377178097089984036024431438737369871530064778766324597009848235057289396032970475824251043494392529274897359106484806660593462412264675643857911271698024206462213580830183608662990947574733246706258508302706279518853576379798634928802718982715713947380909974909541451994385264208931833503187793648715272032486150939016266150549713495297032817068208172705563118657792675039033187687225880376194117706890087754383142884832939340504313456326406929136256537303108423303332872576331822766906639848709895611721841634572967028804214282259869361011565756462223676969719447243789843885879756257955164640809589970596191485454239973304315849220277706816200441112547592276027331597163114327230729680479894228514956554232089536882521215442798596089760160673964484550895500804595771131905153190123830395228231725416601825420548338327414429369825443743684681738140045680021944488457639479940549733581864101011564518015357706630139801659404103347711993118747067197631991244685725919689983298531524467519411988405989004533545421654886682085048963970069943335067754731191264408897685577155963017833380742106559260265010841962278962963578964921882223497624021769984773516199564367897100987489164900193517620809748050050358754342506199591414962133028151290599786251012808362928422880326202873874782926814171036384129128641955168372725280030216820717058311618908290190502730186508611698074765558027141896299773999458295163108818113217664324864527914503428041421595595227431672624992703991980251306241561101865588808290124803043252440969764164999862543764147482160688658861223621138432502221103933631953933329396246837030850065892904428688749099215745243338148784734617428190947299923207263950507785775029095209025373360427258046643504679169795638660636764909369983926537444309616212887192510747583836155972921707180236728671343786047379903101732080927801576833642155396761081304131242231657238028882890984821265053254833645496162508157144055296874009072287188400933093664562737720906655150466788495954209203265042147359649002192457749534318651940016283912807132472777042812820129495406295495343576750044068499949215668616427893794472745489364830173809047667676970044403524250838975202768151559025104983277332149058690677077907131673933771148785060956181885982204367899712051095316884562183315720851065034453883071842129997129482785441072082427255652479126585619843483212937925907921666747943954637610896645224696218699935346436868691608267912916294071461785892175936551549012537772222343282070632758580554997153125382673746214658550225563759656922025128936002678788866208038121856797468658385559224242734741089513815293607566344528436623314878970002620634000015422048677054871660584876489904773215070480176024916987151605941311098438721224273416182412773473985793921551125374930075489400820728150013584814904575760264359681201277944841162503129265875040237180019538237224856804045344286839360013873091281141249748410420989680700405505252249243437462550822643830363062137703470108196386069418184036126342176522415427812631287940237361304087229084739340430364473365454188499329770365281340749803755742377994138235041975543899638935693936886371557293653952635565348356350030614921705191859724964264876738615753455476325983264321557953900287848868254521784202198102920630687280548376768718978544645052078098054143999590764222592737550536077577932911154435411574105344060514494554885532361679529676972630702347657442779202610781315351149967954986316489833647003067082328876435324390126098065815933112226171123891584738515974776262435794073249892890326509086768787078430492854546750658278843867496665170456493025599715995363552022780714319391875628133226091255962368482978803194403791369928671149730796111639381762119747106704317242392335511666531598847307277483058131590800459298512203060496667229320670569236235725065926130723622132491073429353694313241113859744744268621911799760852073443912596844912391013850468616253210960849330945513068854538789679730283108843875151336078578138112249952260326584459428861542739144261729269721486767533801699423526946871399726312332089454815372856590308503932485575651169497016351991174258511872124697736253919372989962337270147488584810566089404446766273526933935737551736893504351009830047317237419247057137751141328035062803431276538122364340481456849920602036619449468350821838133606632685266797438845686875012587236875252784259422464966378681067779069582171131209353736436226325651564360668782638157519641118571464036100720290848974381440917029792055241201643119408971524593946055075339104495419371207539060531922626414803297900907559652938545264713443889295316725438248841976210578518761652402246588685154808790160124203458797576797949353309575722705250917399741099624602863871199144699840724117773612925179543577114904098503606161143113795891142382714454570168540746083195643665515626857853876745419858548080301895747843907990453674305021364428080100094752016062010854689581465323667722411425817059896717677748305319639546021609944242030254529943385350096171590236349344979596875344302944563482564048644797158343691238707716917079005964776052558889070947496273713561946757463550137408487839985681154532662134773055998825692912936367211066415222786487998675772159828829826786460088393392990535736808992286594452670369535556349268678314202431076094509568251261464624878718286704988808265024072484849758809740673103671100316084796064654173256810175974389268802179457258464027435862184171375009984099923288447194076673747131064222900314421186688555096826783697428054391448009237811574989777452914214080974758651042772744405516513199229697021146875987430979616550207258193489974858938955716818875200902009674643272809265925885364551109938449873764180710478379818754547615721957877431557828459275267187131338630287681242493969408888665816434427364959860812706700491488703977059476515866512698824197088823295374352535067222197046586858401717726284744279876671882740429648920455693038557997547457763028237454161578306079757132387850721203874516070945102947927449785445326030129550737286787556828185552103968915178441824713284632093347458611077211162244793515693977621271661872432873688964871297462538729413492256308644409849318799091092532971718775909352071852703223858340730525300356155470249884253918241271889516865768798660554410328546659336781298787567342456911466861017503915340986472176208077498043305248215150759373282729622205402418614672941363564192645335574138145947091443595176101578546461003658602587680156869586392319073610556258728817632244619202402486593861778851476197730939536932453014555315046312425925985703025779020937652904979834995143454710722385144259646565325457678453181187378356416995816841522880405786236456308073215714516666093296291162258378305504936214354648817402616496970798384340395463458084605631438057282168832681696078900205290420589670569293910390708554226403455629876664982186282950232679297689962789558678378243226308502487023718772064968211035115866904596854484202590279728013488272317435963084343572617697617722502850665778770933973655044793499280270292051516847530217119661238344401332845232217642462642032603948610800058521807055419205258254283770722744949404965582128019252275290422437908043577087538587330360918265479388508979778010675886385929066573600067606256882432817642404022307227671922161190426989848777370995332453668316520486813837205054471549917812743376770196186686902886990462175050399528312680785478453978304636032825445360198045797939729011454279447156609969388680173830142128175656569804311115885259289851416570229204481685014073301274070722567972276713453658130028901026080184606035742790176635704531549791628557491584691974958145347431426551778211631348263370184690232056738751771117235955362506326363436000573616562319195677867457196272214715071053581347519357616201856780253891277893380438357184063975713548652288243166001576338730886009234740276096916263856310681060418496562938002853155420669543541707654461511617912806458312207190372676507149841446013952819908209958546809593613005715867238428649746614009417118045172779890808327202986541989994758707208320983959080470456606128416362566384245361344309365217792150201595525405934236898687941240625556207725106886647667080283431649389274375047453835169722414928594527545445951995730837410888164942316049108830994265615760582924839106621447187114762550185521047556350537022915744175621695335715180278192988697747406501114850709338187446776948748259276235521852068636208385755785008550812404992927056372720034457674201865031456698555070102852699468987293792012903124090886953607099931680686810130344755619790113531581901324365607434554477100483577419299797021875638862515763943110150383663264757506444030470176003850051170463096237489345174882273118271929741740387349793944976252884314907705113029177828119062782589263554648959658145394895082854835420800002250284649725169920907909550985413704659070804751076735672498050978856160238021417129482378342261255107023453766413735578441081039392696343277841353781915069567608947449224041132320760719410292423657675586490520663986951526625909985640026825489657666937167738011583918213479553523638356384066110791141782488525808435995391333581247284942864318404838648208509975650680181230706893448892073370074991948972069632667923700492991054724869507958560826114134730223535603384442065692743807768327386568773588933063416741680201120660684768583908569765250055384042659657455197376458372096633056939548182537789245211255036142062670853667119191640356825623676151783095904564245943821230772287692876138955978935762966429945854696782771260109160448402159769536110690043777411451924640797974672909420905934001392275422111310253368500844947136991572376959338592377214262369216724135144558172305690322231428441338713967805067574181373334743290306031231521681352788459943026835388879233642844201064770273674330974176442547510498512061732002828871911974023537725217683357615366764760205276272876184308071958676411798534219512990721542681277085115090109943088154808450440107912115914147041481117552468788421240812972297181571683175541088179322346681222985763006995443104746987611304698824985608711402619247377892899020248741744097499161868677690469665493495884724566778184993392701027128778043336427964011361704972480585753616994460702730857435804872933924890002020126538902771793845346882662638037929369485969542672641435735607279533624262389888411450140154494578768035221762352761283103249743438642241115427062157272439706400526790953728515228693206664045417966225971212724139886359890822871740829353217184168864642649129235995178993591602108271276497897660378500754210750177325994955645435282198257944645603169814106679430885237865695774815862322385634680257947233486544171786920806925256663714016418519084165618401094941585340747249014534092501214009569251645487795088037854058841135801542669793217095907016957908519866670534281017818100587026235611432635123020624245824489750024467348902932027458492587644641983505461939478996320720277916178477237121523887338698711166730045196112140698282407557294423106040715888406982672652915629065403778285848854141019318527041957340798627735698304970279017710574361973204520256683534599914268366939732890252019157550081842362031196748544714775483900031083448094589377269743734156578206771524705244466129300030946553760569824767359121787596315932620818711792321416543527846332508207036788983552882790126433150445140456484013394395655423684788627171194877172209408208039509220721042414530170471496948642617786119892085830919600329923786358823859886349642414728264682990806247385808285382782007331268560896029185342880810215244722054953466019101570753179769458210456181139429681212986998507474228699579283817898688661426360053639090395193393662741207098249317981325060298141911270873914380664976465298655408849679567189473909197092186146564476116387483200654477085331342251266240071180327357827138094333234772760118967420721730694398208333290951030622541853956960420280306142623554765695691450115766817099175728232882883198391750465356528958140815489925599496961110943885933515018485990785673597659228522022260710708916600636658909651385830796186021452469263119455917913567892819881630630824665629021034648374181256032761602843778077595731939817442966145974522144152652123160125201077843049926435847699136686102369098917802815471169125388165160826174321748762806117202526745620888115711128214083063112493695911192921609474949449751762317127396867888565111837513644618799432792249865363047282741589854534226733531783811429145869030412160894856721821483692371611252077601939750168767753461862343157483257205291024660425776970835924226183905819523226526909393746764653825876068096070280538829037202145712908649641012584473704911291446795593006914668605203718958207863681815558125872045223268272260199707639158257253259199490592298126999472236539241355787448076815772978077508073250782005214264811505410844596722046366399914069863629677860936953155893315769913238730637987142240854650863208010061801539580936524160066355454758558210173189554602874974145566915193184925551564997527120136249996612139104996137877801253292042501751823733012265217867307869335196722054362535180541675763172740177417432244064209498872692551647322276027402585755509514978680834284624899757919604036608518604112713421561458698910751072887713302718081636169453393967475373716559313310539266848062803706146924396080995371434351045039919234119892356013268511777388936609694692551628921312836376503100716181579669606386636561758050059506484669646414795499742280867758928794651808480524724239311325998541449542878994216759826209770745745884858041598530430878764692489657779376540405891061340039743822019153407851067113040123770784060967709475064985052331870319786028717345132220942136865960790171247021903091578498492396840787442177994318119635899627917333882691967064891490354835989289828006497711275610883384177459601107037983109927280394492510818457154355342796583972630816783295811508630821279866075891235079079524381997755461576495614438045732965662365545975533798894301229310181768288797992837334554982423626697015564336658140217386708878896421202521182837554417005785241223897926677244141875991436055744280689893372404145435065649356776429906206947157741655834117168122292502563062504894526510959593680260261835690746690140316699612972007532997523293423030385130000220820007220871322150468463856612155135944092560703592936506767783891794878861592880158638139751952017904556009364273962667902257376006035421836144524118846251392779242708506189438268092820451541900694752252062116054838881652932172253335132237346782553673423023835391746733158390052354364909679681048752452879947830523070321001401443614646129909406661087031674222095478805663558850007449599059796836990870831197526170982243125861503918973092809641179040775165310927608367467642041191146490154076936289363982920611497058083243841597111940905843254093828830747464495817041512997584025058302780424934050663044635943694104165608522006520263453071189470137663001288067350639935888253939706532045396761275396535580424454004994760117469639952137863973758697110805398627983893961527259982524031823501656267084305108721780522907412718798603940914975607376114549014618321710026758551402703625586063514891937662079323639704819173314948020653833651374674072961223002040758252403535438030892541306709073551912204308820738757222816279327705774083847209156368383560353848487583626924208344772302093390410592256307500864136695932470827453618939709312592941819591825046124067059340943118125064630383245570840701892435828757832283010268557476429426857393400587851544991537966465428638370966387479934803978843057513582635624223270139563967128428427397936987399201848530510731401399731477719345474391568349860562679766646099013316047551483807911733187203250151415730508101283423280736034395957736955083102299391555295745360692817439434240055468802502151717309707627458234519269630187633188728861323062777642304304188006500394264477332156421501531070782714895045243337178994939239822648781898064398605364391103935135309389099771998592532870018092574736440975061425125409585244458561448622021774677757736565331070436236950750655503022779067922928782639072910154822831361506466683874360331595171909280841844740850116626202720183770549413076661037717879475787944923117433181865441170538612549112201206843132001462215533443164552393921536425611462667756647284278878139622978842825484537883793643701878403113046955543485342294773131350280107221448336245543396630857802164314600265679781027843710669257366647433394652369433185915025573248910068335432593413491876688471674552130479566425817069686427810494657649805077459946503897944995730670020446096762183469698810502000257664341890111500187449457537850233845392269916111138779067091246302923772818087850449759728176798330344553009575313436348284941322664618929646731446683768871260038318961155151657419155551403091130192272621482838836063532002024540162907939714377256412036117334404335403420924600714085134783660876459112663483979650190754645433219155143979675977052046358654316720709278461391772823289867240612887534281889052937340142999363840709673369651001038100954142176620976139122412289089646812845149490248513761462213332665983350661758771123562805988613340693742011365601992211235568675195611336499389890019749633430773531666593531836224292828425099100401965158171152809268810170164510369844566229787134384600720033903059033218045546900371792359154825126982643517232447703246412813264117688048722491787709743712953209465401550469391744777206000615718087137921592401796137236242553079941146111597419035688092104871553410161086724601063425781183544614398453163035621259677427232663354624880102511633963273528183778565633627203476874833638397559370464762892178221808602749787441113579649275778713132144494236697015075465806396882409030051180168266540423206559613907525767255753400011790332139142513794113926686003119552906803493585734108157990960048013222889630893390741058457750305273777844451283816111475638332038514764160328085920227812591089928162204773988775252069808134588878507078390933817748587308074761932163639111728882526022942419975482790929380268355471677413163795759448496415676699745851885489553136871994729098988661029688427963366625903091102886844561952355160394276734253756713081333875981404332336314661750809565974750361688413909893898076832793369415567927152421366355432750497494524506360952573718919011262419177364015002300255509710077073620639972536215050498476250701692749310065241071626210412785398509223427864689400901520376869580752864891967710513756767428583173353024686827766185471143250070341740323344346434304256942924085769291900816619979901235704539628593655542274864511759814250504794874965804494398803512996526793810217645540498907544068064309020060953826835119657674777328579098081217866142215534423295106447117997180676363108122987169514449901253527030818701801110767159852914689154915932796153729590445338955962217565022738804089877709600861717322616951996666748400284761905603838746336193931604916333158203039742840802165639195562571383463039518881266949631077399220901702746009523618064335687704347770889230897461210604507724062067959215816049733313619296600917773774799003731436425058287399595661239267131578553375156147137957720809466617194760498144005885138036654246045404404838607537207720486913251123219332675537516430619471455389957125388417511169778223084428271534703665833495714766513291865413495495476306143217840817793850956474833986596981284040686452815527010722033349768061331019908435083927865584713495039768713520675962498301423498639813122733990004051203584488490137839183365015114934082774170912750540039800443107468965747749977237749908383714937282282088913127477361540837939858486111754633512438371536177295155759354972335615509692588935019458476595968286619975355017215110271147732533126139471251334495118531229008107440189781485270383177742217066903764623342169561158731389502599080675523061390737359355731445346932287065085661701889845199192782926869354914774933190768451202764420378529684729453718828577965339514095376178322662576806859990932666124165116214902720710992968580280755625030596498768868671637801827023711799497878146233837837225846551537016411027351402229891436748758877582642242956814786922878555615078535557294903105596255202680757607141171056096219363473244782717766685865740169329982902529465710772678470832049223779113662440914094898558250483167097884094285239631801093486497701641374253874463415108388411431981066831607202413425909553828467612789794560873980621917963734596211110814676890652029705664518237405782837474609445490927586089867578985523831321570351480387467195224273615721948563757312179901783578404340200571935321128480316845813686019750674340839231482302201178879565660646115870289655437269862904056269407351628770414613605800467962230735368209562778516110112970890180337860228779032133204911673612714707028589543585009634086442467957798050138688176327376283095706734659528785664419006273943884811606376281824383815408489378022599411092215947008231139454498633558000762725548719834146632735632373607319437318233669277794741521981455112470604904913580941817589083703403689462486970664896442488941431042263635232260263934758061681118975511473020793245822746318993663972036873258843336316530001740097498323509459845131293033186240862357674721691094333614579552366780092348328653756059947960514360587347279495359342978071860772934094980592784457516518698946253655736218228779072838339048707654168204551447933899816046332574639747450315677323317044393910093889719854963389866391162430863745458619064308156727684733099309809850419045374678333094538713516488342217891976744577016356263226497910756908104601890593769971997485595336869103164981977500693876623864413171093277027605393013453196714768275441098134102005403747678220426964106406239241048135652121560367495196771719968485719536016926426559339101608608707561019598000258199692217972248666233352720662256397583738978975632531117558302119500524840902764776690481596249849252078836426328114150985400722870280885415177715156456881795548591733024965731331191111506812618644166461360169444862586955536926227719131195196831160957377444312721720869573993010962200290325663774273538138539910945843354426329794442211006819124744930074483328701350945821164028241788725113585188360326535709450946944024331280788238260200579130791105800089061981551303694492969466133464890050069065986004453240746814137541710001645418261556518084733672818993299265220763674609584713667551241220159822426337000633933585307117588516772196403566020625141999554651799242029461621638047764482192614088228990478237234096811352565058281564150624281562742692217026762646261619170758119436230393900630884920898518036658712044851604982545457932199267647654173548794929355003169888933258905942318622173240905593321850932806739540456467050982493445364618866107059124080133119082520040909741328079105173095306976220456179411560079172346548323271710322829335874470258947270914760580113353636268457885435453563291276691412006497381609659632459541102914761063474450523966093375788703944805028996745406080067470543701944205251326575580435986854954915012001027718010623829736070782182344174667342687625154468853692084346583846285077602584529326770719991251014916399152674895921448027129854686148893292141162686892492541624874158096678702205204652752736243886560061644651616188094359206941727986782540554789271112792263415919194517217733539020905298301910958228452940033260353461803345775547386940843900599180383896239063414758981085093980585932388548195180915281496890722239021651049893279104060767228278026988712646714098107655530989084979785303967444577214726717837155479031401053901459862247645609913769257820596892378831282194931344328352015205335175088659069874904955490457348964460456060918348798056901454975114441923934256265164356504795207515077669961158776468749656340781866940070924521162683144885308370760553747984413551018709066109697169620216445055133530746738242465249009096937113273227058696026616445734099703727568678971069540715697334130367893513576949634893311789635670414256690540253046946098150045586559910742644613154490795853388924713101345349366768945624383332780177363541572414187678074086631450391199739481416358664689772772866031558822593158992549414142737095499235888366409478487092938406058708100197676243173995712698282429285223543283170863087516830337437684883122366340836651359721234413246057397535361074699394462793289079657954484011094009024938657704423586887602774186092377906394813365584218623723754343296105329784737446540140029047380324471836511714695410651590638360425888637847612331287608341250019825074635324801720820495899783095748277413573152473059735675860597671659698632231765463074708842587004571029432444539066610598031009154243880319205220361975487438587782676435006813169147017344962683161384028339826495939329313455797663317885123201061342893746814425351323252186296925886114371792081855698569834451576698299590781582605913315707385919244799491606693626374521561382419076383928905319246879290203514555941673665834444443717644925767394868840480561825197617293146266010033513703277429461986815625834141999177042102393340792234868975238243681819419331138369818889441030704672013968277420651798220700693615374628827783394152708527727187046171987250637501726500075397770018659642801064000113498625893976552259085691555477846400355017581587827939210640750793620171901327451753844023682328510297960828936228808111495821861939450940069957796982904347977374544798575540595349016369550229161151163491218093796151450054801720696284574022341185986274411114910914961426875669368765261329369801068306503315915020908427213873339318849986225657599457334544447478445446331436101994006792967597133345744301372893159768303156571897632419619317998637754851695435350572203126907610499304141830667531340357466141807992840468555863553451291706871926143090293115854098252619546525105799422774897767320507287934561142965438764424482689105208980182332571891434986554378549660669776952463222594520816341515540068829045711182556717146902054917931780884202546181935356495150546019869320675561608422610684095164351722382948337379876978136210419876967366653005391833510226331141082060545850854638014409855522384147290695222798681481165708963346037705861952816371410826229552006002648823369387521825405407792491085110436497520369234478789615037859476603087527021994391628942950724155049400829300767217130996254729005299580648853364143520734279473378214477856139279420590889373009223251439186199096163846458220878793604992875262698549399246973519115403223469944666736023475236760855164755572394481837276153578294465410151416710923143465179232424133080281513417058426194347347275633711227344291732790350464007447207061096752538377284488080216774675952904718465958566715550357386583659796337842272394651215471942529902271938964592062463703318956432872733470452681393070881183789842420097305544236005175834162930307191626449983940951878781760000670682995067492052343115398597655371734829128758196158987991524552634290896852874191036108406557604223065973738770121184089473338961019733179316392688321861092983005393116714453632553802929519957744644581237649918958387696030337263774345260856364805204769229687812657843522250081453556468182334363868715620191399865086342204363096256587812271193906208425488238783490639408193585407559681932817799334682222156607599172063887005788221662646832268081506641615601370286452687496375337895818135320163185775849055604831007716762609686907072611454668723518329648389430016190751546126999985972087467825428921242437783777834756496237264062684166844469862375326472732270219630558664463854390032966814900690539654252115351408769143677090176653630910046614170933550681718959238523661363843500766461880578596991684594543942565816175585275596460334571144059691716612584625201835456909206650740745459104257371133899780655575793903391732490097275174773771890329487048162278357047912796905547668152215859477626828704694850791997185755589221299246146515086324616298133776250497211057833000355455279381153421697146658906101315199990825654769368286704385121694107948530336694312838410124969255890064194768246360189910711244265293744576657861379347498042536898840800995447375667231722644821348649492681555439825481358529781477719268356599976611751234662988063183882005299582649744055114602618704919996999274065695460599682168412391505832888255222866320369145696298471819109797512049320142946360908917193866095926583301102005460467411377075709388219073193964822002553826280392039599475321567847907787956203479472042074062287319320199208646183492594607491717422085139865408094607754027077525209670393338811976476438117210067844504143576816710430045049569906136876851105954626814849040240046357289363160022801359203891409824245749062931223217916455614102669161283016057144813206575346848818453015738397189295040500412787773301328299173989359031126052262289175786349750053132648417261573797910953736891077708646721321957009960623751747188544187840875339732468827776882392323680840421309491789896253139713317470725364527464448359883784044819604139995441569040572671560598195441789020799525485634020828039351101464638155959217855455199108647311911714544784575149855158294513497043345502154478294618732064758520192648141129161690468085185387670493528670547460466024808568951225910852020786499970441735265038317574418043528599096457088786233228821959752251601522953425594301081097883597948076307618101479297205357231487782080979413219808708070179537298506924446677788802446848927536644620568141618138750768669568122887430537947210992022754104870537414271130187692262802706535062405005694848157991218835875109685546404960529910164705928262330261681843749415586951427449725343346021875157758009568166896105014420100547967861795913472105698284756029230577442646003877671670512733882965339930435740437279560049759899608614031874971857104087833750454329301859277743533129490657955608134598107046000990097849489628001132684467174230940694753533961426985787312566327801424578628664287422352289476852266763935500756518701426465599015999439102238897285235839148926730494971099597987551579237607240234982335915735080743463223597349432078715314943484619046245660449319124541925617878405065369063554134042362096172689221260574713009631374072010239178305540535488377473491438646849332667945570379105123986302443678017335744823328456543859252409754735559086381505578476575270301224533084741551772275865507215492438482902767397736710528217059633371935491270249424109391495681492891924550047532365885257230444695074184269380277641841926997125332166730385489687684750806792609714138087146089273445839476627839807771646473626422472344061141777522485271116011855485587088628212295862428079597234393991968517817138160165737190869713866372161096046431350180122008967518297317244787545090797364720324987036205170971476680005735718057953293805546607897360932762949030405482976286567555650212224610751069670509978246457647029538381629637530193821500928367765304215173037047160193568786607223064135723384774181855867616270999721894328968560487298328060091165489034065961518033671884783208947046092945797285412349555156153273043919260189709393682990899201861420874237262412483305635513594560225080858157699331616342315762642203704856655270857767751135133679628436249593422402182349393094491959667322780503910432334122614015654993443540578637665171674467800610128816719770840412341953333407131308358449067929795033745596270375548391504776951406867754741228527888334145946987147195236792670695357191884002986339453818280319623532894480882484544380681406611850299529269576397894614847575441502361067143840633319836970236343310082861520769635201143715216355394592033743824949843878671433478559523269744242186656133799903544364118417857720090004088673737099602537372240763212913512933146290605811653886556992480429006686644499190593666437033713110051173557350703002948464786019824556774233706876098007809502434323368927839196987317178233034379488267934310244167098871601810776070423564624222897004697676468324872754275823729882837148041754639010114642519657958397814264332153480418822847012420987389884825327973951237794521430964656114500878481404261466595610729384703777036638381673924658762810937839931439986456412625105121164054506986295243946050706399685262180838523298381432210639433305306998544959636834066003609650790131821649486736867038103588946212231453275127810581496386671346556677022828473403117416788481703180203539547861798893908493442016530122002164500494166328170462558711671998217706875674407159055542312264351918924674650858563438326668269831021146823521373231194363408457863587553286848646365807580999926436332744379615262918185132298951473403227358592888156000764208885184407253316424995849202456548507432644837521146287026876508921665870097481119538570161243503701144754318279598614738207651794807978637896808905349039870793732782013233028164883954704060621060505134378372831411442549758503470521747703035900612671527990925726106144219448061189383588538265388727396549199136928195912092142451652626692936094402479904321292699717723739131857966995315695612701575336169894008698333274473367699693239269883598545390098122498887031932343788166064109340982092671268149831705274727747243163693625031973054633248352709988032143765268897998937461396917005695824956993408405317165085659569996286220212704825214981979047490704208511428818130302785555593449592058237157507652814922788580887919563904047898043149529146297253645847264881598694180196580397369586873786915885868417664914035540116818961975496099624232599026537840655544234130952683936468642829426198699830202384246523370611514247084214750508516512481675603571493995703489504431521610962056117398302565093790667361096758372694791051545426500492077183935231731799094329920418570544002513841949639360458514275449008957774536038334384709927766821050001755769882449131671896389094396407532687718106176716111395708135744399414229021915745067639005383806719050792166572680719521969622254434906689055742212699071437102708455573716031100163213434826398371372576932338987852788476647598128158219996192696618024744335545710142532008844010975108347287119869118118479056429206186366511776022966087420528642948265593979857230511480349924793820396258321845874978053803951617037424436344824830007149806159138439289160135912530415575489321387922050738817693628066408126980091470501462359789011721697147456109647619471826107040464953445010973856754116901276850431162343103273366535649621619679486558278718283095970313334226685110034837803973655735047442551669259695902383451760501709586717577838350249531940985014680351579565615200639100740822574998529889109434464239008384641426277324962024227573074110605232469778927100002035572133583593600423728090505087931135859538124698523796872352097532185446965794281727421252911858818972539956982892694239523284047887181090547400658599416964484584095657005335283102112009774218608528013249280709919250962343606643512334042484927509728883943880315505340618135783391067616757898869577131055172760983092674826689660590526186605995140674645369715819738923012433151256614963743608245990325319838044241817576992855703173711081426555833808824791094142458791848864804001941973145119705293988320078109554087572563449187248526830253740617857516505016297233003644252712244514146777630090790438687097664368000152073831089435000737853797815244217555846176395111851824521280863169337894547220711118679686744577169855383679704252703280179125257208715610509384613083304685813119623532447517394538768787025978468211451815315213919788279597822272351986653432348583296566008757362897405202756373269995191730921757223277358259425851398167932065449450806041808859209713851431742558009366462066756605612528828772202606757782502561981101839043431894484444278800777972334770513453633088289321800837081646117951095121357516574765624672398824001205163675332218967267035748449908418184922473088079685199600102837150876094431700530150282245339594723555852435993546683936945942953612260293390125242216586857176250262717167493095517718037502124817370386102986872049891853546133602789897686619630257347667813542482889084659716232525426584900298033743162770820301801979604599928658892260577483645060216110626589393956553847631574985794797376906361642282385216613765301737852156796838776809781189639492311970774361800052801689432885964804782470666342560937223439042408528498923322650284659379370959461903265202004131790546473351578648990564159008419885382053146666052436881832393438211424520547471651703479194755247061181437559425929004767743354864052597819503518454812257206720836457088106992637381846746122951372705857631822574887345405126849693047484733145164099893824881404635343292246912038558360527964767985697202503959765142130939079160340325966397919112768961653533435403931500578175416289682525768827704659689516529788677249276624495120697253113053188122492133202579060996700173597295096210397475331351598715128415604304636668425300176547909365648416820054770080300691726650381569251906504709903770975823261819932976156617208192495684451690427712866620315008408912804582259456324362384524171082439731464283609036095721494321346691165216768054096388712549899914441381297215276623872199559997622962480386045763106819574903140738400023823034732693662412697406841509272194527690428833849633717692381259645909824527335265821026041034672484022217408061054416194249545092420852357990455707651650095558128498441228522403719848151267434887152780432601582593218845829663460133438772179938321176459621504737700781660075953919251767419908203638433273402419555844119377348652768927737447743134659346285282997544564184892243456281886685170272532226484184855574216022751820323351462158235871868007690821061587008206619271039498098852758266506062576048817227999758808737925324775900890822788317934563477832134244277436540592754324486917767440549062246871267860416547227812089332356667176775198331827581268743973650984425598886723160693065189058777070988765263689099729041811568905842548332462227839765330317813231407664051098079548597323016019528184425178156539128845570962549904503789669933167676066517598095536584352628748493449487234112708117047682462942782771975666489666332641748293438783207943608561551313921460310672065969616079698925538173205119180549542827950609914957941413607472031694169097728664136978712126255859488014716103067417746490793365733805636806157320216423076985526269922721000707428450003125494204198442161531478988540106056230949423873429119395419498226983137831793518920075375517525689179488754212190236347222572587813352766011381115889810685761162380697765640750327308610666161652920286312870145956968632029973300755464160942589200861634986800869599929436948361485625423119606167705337552457462858209055821802074630404949540259438998015596412105244972354323999261376214529001461149030667200018782853706483783957015048489310752630768037338345529556117215401610122143514182687658339967446404871994905751368801746052977482040444698647561335292518417721964516358611044808399691177200049958451974853126419026890371613636321640480115066939825033657495390550616405940800246800134677320691744859162299969149773924298170901571803925944323326138477788634519387421375049034924340939545040115667371226288787260811673285127860591326638322446175465712601164389176871635148009889803058848822897140098148898296517324262284562823612572569918791344532017228958528813727998297621048973866391457939243653064464882522252961365823322414414651652059503604683206977841448066007669587590536694423773157954364209667057652532206107928429192658157205461355221218179100408817889989120736374955511144860045258074610394833871678231484486866489877544835613707717893205525327741754495301638099823491578474510567220482561586747832835360586964124537496236777273996333822992433349549271787181945323877665520210989637233653369851659394921896097549141294498555789605656533187819034548969199068111533625036298976319803197982840758862083445128733178778500984205427118211066413965456147861181273296956877376734241768864283450771450030052034445130866299772512346901070591389940965055812176950397992340310307640232651052645299509295551703855343560876274271523005983503275003373148167061564955236557729345849741435979682154426530785618665272599615435867447156153523025342867264095594946147491587892350314741481015479692603971404593560993722755416268720422075066809165221470980237761576744613495611970407334307174521094288850146601994353438151049268233838454424607557192382960750024783396918299682414962433497146755742110900863466328284043182894185041259091452584678230013848939645075800099661735511403782659481240169720363410141347607281278545035321695860174868487416303135538338645244100757937059997983906006980323187540403813061405652941141173897008589688354255737786175998264108889057800921448164808291995463006578246072487137679758156226480000533264732584886321413450743839571928653728118424398018121895457587819991572078152951775862222086776722123782671801302575152646498882397557638847475323300006194778005593493631742874787821945962533599938921751550801584628897277912384804961716656554765853277373413240258877880991173494294775199548459880313845524066816201635054332840826884153011669414747517393661153996677760051373274200335886181000287673318717717467542311892603110771512909651017756925387456657671001499866612486983891133013434724006926195966150269487989807503465615568775303853685005211127075080466382540715733768042827868481973214765737550702896222002959251236184210372127776227089365240252178267771041768013694425793733166126440815848805362482225618312999051409556891110787029497101370449921305362994131353864389785722022373490876869650973730749453532611819180726527110911004632599017904746098002925513370652513840123224507533044810301593894658178285318856299324984602112986383740870043226183849556391791393078414184845833110779971985150993668639108671401186770920075484891808244485699227849410900974835908527080934593424325336521621985828291570103031769652055512890392798456978442977810598996854151146928545932209878665135481957346345343473562343539979629405804768866827675802222257239150385053761320050128702912782398536682664606634196726844469681912829229819587332422666193875793736285986328915426707268533747873414908111114906596029000605245472285295776868896396956374111800850667456440101009601230992982149367972820489878256423954208823425237982323777620407967095351804433886392262869388419636617139653583108529007052545937426007270095389096956510964337759810456369697435431976599186178550619342260575490857753109440224095556797849304496963699671839654117064472057654361921942584818762827310613952285536658413838561540605695682585428671364007262783825812911434670031137165420160603970907255951995539270587295608169544748444510627718322824237270870433041794194293971900373611635263412552462716671820994736896660365927647057823007455219398195943334805678171257911855325534331585401285240645698013372625286008889330221770258706416617318566678426503094617599239434016808428778243681161120545342381338829418780144417828738775817738033648811318217774424110208811271518716842354038257175784000837984659510848170535368021434312182105150877023561965061340370577862306578483476957653855453511313021075129788929400017631558506432331664898822106909028317343520911846766354865152804690620552614889309149650310638507967757253667825634031882549926492167404127077939007672213575957004562130562432226623324127244669663941824222375262537089466277221638944874991422431544286042304255491940784056882867299315244360790895646602820653433235336596019625112017657512476790304989113964524801048424518007002403051195122341224581844947426344666223495488846037932529389396373547079222690861504599629272403861681082209056346123989068664974373110408996311579913686750238598563542143494047550545246593825548281915684328225053541598734573772607545049355204078693733779928158302762314273227073095539482020629876988941124285385447248927048793917398164285104931660765836230428619719827975009190920590801904506833275578094246430737378774954876163081528866706786475573968135203092560604532523055190601217516922714993832375809463398308443502160488751952599510913299787329008940309540330277074070959256783574699965278802737514258012533722491903872050606134014184193693800283270773489553324872052400558288666204809339869917598331768552953895530721819662142248375592644686587956198349870746348078759540778783549560652891500000671716463863817171681802049578654672591953839344262529184048895469447713547408583535234693369471056191620753295142710968645547903071585908650507188150198317332846280528570420531557788917288164488810946560981741667916702717066009743775722844436429439464553340485986601051709247411495789740567340668697487821632748114951639718198070991293387712670007430773611334235822983084832321176511391161059681522020858659970009861346167876632427638840763686363374328323665813802573060117991384133585272951984646626461541364731946265344918745747480882203754605945769492319461544238504233326903290750395522924854266517370943963836469839845374566672075593268637873231906024036330348364334380809988349181691326501053079508939832178811852004392803498572408741371576569065907743076816740115111166307582364330821527069612913843227907111183445527060026942367161887577935970259616291120270490378521285155437815196479663166772420424934088390920373053065896386600323166128943157580873136007476192812093467293823342477575616597117792753956544513769382939216136218892164902803295126353093676545181598221386926529992570527026469790292245719422030117192843578972223180264826885741110173341709472107364593827862662420152924692790332971759753729390819560810918798823721137620136787925712406450909628348362902462492616169845288030333713220626363179353930798390300142649052564939219551416824358059815748143064978225856259242056339211772401234870786101504943408459309741897786102742438906827650528399590547814954875817208714676334062146651812689525538055530713211502013060845487769848023413960937399278387659094588661925026616371039545854863029681535447867594704287684218721236685846040005841610045104451064742646702412523270926778808284448605293338100039049748612768362350332164431443945674759400816937250769317363622149611864397713930282270091412187703517733840616899568860284697958989536395225795461283410218156453293701531099737298000001512694158567773303625659096620869052508737273956638544639028870198425234816502701758533589754545444906941113255838957144287497605495494287551145985244435897459113195142442371628749031468571297457077320529982667946459069505324473880168550539683905264266142680797507856442759852671333505774590014263491432937583888699869128555939791594264213749980394916792709111321340827041708510852036706143762388783693527383044541682678164969896838300443693746342899024769558324051878488803528813302212041856870715501132619580026451130337376428823086567944132526334148256692567974342404941272635403848621254343261961149406140512424483988547541914708042954460657213819926265663135688743126982431627251156922880497315759900757176484242036410683865231683145898986863211501169485674718363219266745015020580800166524741563198064918784832101367114292117477204340261246864339786961448328609239725348397512974449970637186272300359140105403572753159638705701317098889117825290225318820615726963088626259685408208988747776633558546435668807558528707511704335379203675307620223046225879023994695275231651532185187228665844227393697104582782902749851241730278653329072061746115053101350028358049007692219978742428415636176153896506794293678099967256085300613332821254283237540791143482336680462817098594230025773929901727764467005190604980446955364146816195447131449884305652934001355990550156642140618585511838453704534377200159181409161115887871985190479296314158251240674428788683163908278948316768784256398909438385317628773470360179823069067031239663991651860401529385703716652976594168534977119388305901288378976289432304516841364952702266255042769706870405697341736849555123054993639448446951090701336111214415963485440117109692077480038155628123258257920302310767706417709261904637697431909451414041339540791478444746886139115198882449227374805538227587743295157199098929699407438829657070538383186621687183193616599236289139510464924530945523246697362159230174220813683802797714405195454926256237821854337222790398328112994909210440823297922005304134620340864603266821535019534381879341384111730286752378830873768129435239087475478988682876286427056798032194143978911461416293539171217335860676328477656129327593873635667409271849714359405674855992075003910974242480448624411684765461335811850884196399997817626891649277561320282886259498267261046782320238089568667719561609826098001502648849078652518616541704090310402371363367087731447730601200064580710913454060641426811560844951979868899019165631600247303220879855001841518105449980209139885227528527704592207111771376627964476892337957762632769156471090440592184233151122910616297694948368150345985750206505948993106062067354759462120004695761270193365329384475314851373817687459560880141659264978415029405349190093195563238803941455333292096645646229502663681034976451235995605019452140532559343674134480127683328446718246580925464502907913619620166410308381156643728500171133936113977640142639951372491888115588002388942189324058729918026681412423978153814546941522248901144630376643328692143613146088149260285541685015822699471125140175141128750618971192149676109415696941827221968054022015288527430200625849585922067246129009495198284541557577803915977977553662658113987566413128088473812761040701553001391437357433356099808912291517209146244127079998884758586839400452961725079034480135561501715201125840746169876991083993483488582957433389624097635388508893183665195833535730350607179466474602346956150703584235297446267473062588548993045218326623018220326035629718024267334793551208812525932681149408645217407218467755577208548304929137124604418883825624898643287748169375045265513907691494942187520193654556000207718805787637582449725982779195008704627560483190780293869112646982173021384607637320817736651483608111384555274982442029276031775954199625725340470143651909331691499572237218771261920070771370360898443435031035337402580195717280978498110720133803949582858477182496114744789596300273375958192257842559944289663153323939717377376707753529830791939427379266570341061941199284267327674451765264091268389317985958025666211417621314166284958941906882234152245403921648132561553083306567060025160563876796107671311549188417674191643217957141398621473576546587129083380237182517721018852500650226460285958392445307167608227519785095345975089741282330367366537925962400547207256073205624873241674316765302084679561960361212855797685698381423107236927524414994690195075358938661632165507206638978324305711225532905221094810358834054777823585319044556729865008326336607960692842217994488165207090549355176908835078326640884620619962483476651821015248981638733752687204406418745245090709747131647936292226684399879945000878840589991074181546654229276507074279179909198367660993870565732064011165445667589433830598860796663935173691798383224012418306714712386179506466336600325251439720646128513781356165611144956427027365483545242821816852662979221118006679981618274281992875157032425836746769676189775165669718014516905199808090325146719017634502966770266425674050319402571223419198236261714291680925236498525998702685426780430075907167474788392581054636616112673640790129283672392356424743542665365831884766209033857532420068157179944390243148851208482997347076296481055206475021483713687274389237671889432835064740475514648434736537762526007675381519097138004610316434012010742265394309832569345503312492212472086200738806696066328930579351113668534477830990329902220150378494334040140450630304682408497228261566564517406150118744541822882558860045058731890577902684710234604174827026471865966742737295712272374251605904388871060095159810132442092143267745851014575040936919544827153253922662426427053951298643079477723032522868646894140645314882562024970569200841961855638207302055902463335055842928538467822940791964837793001459824350712863765356355700601077132195183061004769839418489313881170815716480241458041832664980513883459862146451344089720276051395290692876995523287916276541660425334770642139577641574855626080319283952427238280281141490292021337904502339861783992349875542756799945411283166388954591352705504435968122039332030896610917086658729473607909644838405474098194730304972089066663656522911175277436294523752190584446783143291633072897342356935584755804169938917594088242627212607036196817440164354344985388571717727099395632952625372686600033158911013853931393120561645244644501978077249245575580467413644684520367065038587922289579488206140209554460883986594961413508049591774867235022815036952453904513347756302276902468221906318970061602652122757714622020277491195148329787672667693247064215586184439363465307322864927448503127230328689431531890239226593643363736785078520418389459094145509092158130800637319352861918034669161117973664349763132109764637071697804114320825781394179506663047222842632252917761415924494503138624794043043265099763930647929779602180676974930926112681879221433384296564838374754723787283818320222163930111716570840595943620703876708123533277499188292434352600872410773961142001928050121076105760650842426317699710204845347631823481372805191557474859202182796451769442852428832294930537683503513160905736406984591263930637350926775173669733667300208513916129957076965181269948315870827686063942056402717945023780479553887939144238551081228070321617606210519431153874672988936360697074362570853612636040561361336656190374557509618440885862189443390706298283852661584202891737077511283678435724406542302828014315229381487935769893439231592564193359174226645410292294134426563727715976416838794535106863574161284008007088434616201378677503814013856262846886808603619573090381512529864326700387865009268120682302033782058833630716529577083695140190297774857560162901067709960215866414018058353967348800423780593290065664143814380170810571208385485540408637638443682963689065505551127733759795651621165703056734817166093001322541406123432080007380358298768186372820926765927531443226655967836370853541396466648778182699907531555391977930493133944021021421677191941067427184734453982642361478500467227521201751044030514734044949405111692333334286115580593220597169654007759683274958504344560127143937046133647990544145438496220455641303866572893524565720938753261838008661878939446317664587041933151553488343941387943220931833930876073629466561081631110821092866367908443347360311747305171575532926479763973760760132420770309381918019663965006437797336817039785630368797785566338353901299303269111176304593979919942443704651621508953965218006069728482242224762793525757741713094453476878931620499108992267735434188646590844508663781913568232133358915333455011701164639335153796560312154516897897034548425565243878525351951056352837517985363781062094269600203779668419808799680146903586948854545889227041166726285093777505146870507751276002216604470024759454888274397924795936417850967955688611300828557743634215703533786857410202176868443685414858183633307453308213526492636970211014044232220134452464934426537475812090468370964953346871791436273339451989078502477201523395451736610442606337935098391416243660107756427456858322561391610141372687310382343517851521870827120410526840987122819268788446898704603966631630524352033350177847886592087938920327640706440791018831264641333119920699150358578151013746101218364163610202930570207739484560398918473717386694969745431746186174212134144543712358341858713182737683011595342500526720713915223723415101711569618290554407271143988473416239562075196389391324865134383438843684142523263329352190704710461914910787489362227619204360348788283833806436125595424627958919306536842241033186188048624628163711743784484960618158544059029733122243611220182139523859933282671085067075206701392016028234009437963529212938218522203142940645226758852595841945639235746668083625553634225014453224552057677560001794913327127378320733375976564307915694152425927164070907156045468065411265243383233537317092912896995887672956808956210221809814143632177486547531769683163876118836081303515479130150580839672281399168694858271615768546911551500535441467241453005155128834428272663713284751440937518106660509740842166615304598212705180964075558325106477440101573091552384286566760417399965105790157287500312402490113430550452354038786708303627585987956113833633260675210287480333702444909960570086927275087708239143163143971412729124645720421642814045863615224740862652472688096902030876550983220652173861009004038250600415139670321917898384964663825180391664830768997264925687132412295100266735913469758208619094491578257962844769822330688199151864001540826914519926102453023827011450741487651492497149184609759383511077965369427852797877346243901975497474449660185216561302606807151691444215160715163819577544089290176934876833386248892449998658929369993633829346871092954231368651829582266912677759354627116827490120462932844008929393975926038313470950777633372718190609678328022047594652203770852878988821744109171353411698139694738986388156128857193502553871830826030091321041563384926524812679148046576641704910371893643791831292209759633656806768019633977958400274009276063228623638988085615567685748948174658040651780728033840496542225423859649148414290697014634667075129239687015920498691284256724004133219754176221817404179617011856216758527612441030724950571181920904993129605201738462864825353750193241349273265052814452954228312698199213766523442776842174407411233082726572013543964875478387676653097987002585289084117499978297456440847602969127450007196692920915133992621749049279101770978603470063936092135206555342215840075256152714342297605994928629129892237608293265419654956881427520049549078692650259263044590580061249828766369454919634943107450415465830043215941689031632915974169433164611449932046692968785388049981206024175395632433001430496779749328532425465554815918014099811354580655873478065639818059555876480026162199125691869290607797401904703295930788144745398667278670127762547614805526941918671642293717165429897274273622793030305615091314491737941116739489976938860981967422987136369034220522626384377893675522358264168410816029432246537544915989628237484813239533331750203493884509382131267788482901872034686397216679608205568632899250643612893513254296118626134723608041981318622982498805069097639675692246428821496702766513878107374446322674479523284322461835591504252572861604300739096713918813648773552818293588163322378963741838782173620044936607999613535796297733316088545969990715790758445284274533832397720718572330940875263680831195197785612889350843205604940425166150186500846777035487922238779077873946989232042339730609780506742253364789281593999015849880064443080168177004003616739560081713039738433058266012834306127771093649559360981545512543774346649760395818860114913073005115799708554075529513870354511999214815783687306984154079340163201878403430059042437214641519582399737260330501998632409157492441457723462758663682671327576890509493481610213589063565313075899792205336490372704012117204489645850195594983860353374001108017714858866999154740776057109510332847531336886521874227031468661015847229841084269339528298374145507591598933712254527186773125042533558547608207182309226002327055624196494658888110360265476619926284624444166649786428426068957778345033356446895731278250776165236562018172675222665489704937447055914087695300617135056189503987985181424342893992638231708358582997302680752563804480907989860796379435534866620107459220518023899514333845374216367575351188220277973494701451777478549833737192721160350720125212748774413470281680150889819174157501066391265765077686739760690213422446621313284185669602826555640465350829900724602358928151333845228327653868739580688264419226290666862171088201075294907456939499665575769770626916465202690722957869982623466488308028603560813523458900173876617283466979725372649796576204935778425789936210217219659721080575194185295056710609012604592822452917564549202936429717216029355289752878885300059269416037424327500724216522210875180407878662060771257704319275285252236413909995295232782235916450184117706123550165452160680111470674887662850408072516493977834121073545868760607199437504851344788437768400533382986671479573874913306146476632191289719977842660985662790310520840506828941703402352299377425374254212412010471314049306684606813205165633261100816551212614210377113617634036277358240725405948044917239141314318184029059565040867644077429170557298121084006354675953377114751163172853948751206135477624411492466922855358043145228737920537756433875062857479146638911009283232066262022798325877898927163559675942429667840866407501513633115542470156644661330049867792606598823028934751063815686369919523839589907763063198193463888520938675488318729746788681806512059888584497796666615977184767667493937796790157706524578645242276267870353962058904527647923457450770185271248246501782899109143534790404597402820903531941619397292499274043020349016947074456343113189417617721499762555002514115986901308165111053739715033657072736058741398629203110431028314490854429995009788197974369516600602395271559836845211305900921099243010734267446276916846353866994747902013788648479773834315015983069177772092335061454340602602447730091186991043234291910981286375662695494976720048383869977791252770885785564890148263299426864821194597103453439492700603953562009349830360821777715871651398521152454706139739869269432211791174090169924873822289093253802117216981267439785793623531060986983580975709096130923000382724027908306759456809135279496709459592650771481156390799264300193444827567313096313732750316394010293353395828868406405031431999638527044076958359127428143061064012347823012032829653692698104711531657658880108192620937454019635446676912554538632897015413344670754771749032820822731870115583952838397554900154375622909987522414163068392207941017780035772738451676047410566890840464081248610396047777196602736967464335610363517290079555680243340352947743564783411857902091350657611462863732891194382198831453221274973157184977113398132106754160381937080193211868299407549174816924739231392599469312259528620197678072554873725804969784384941299925750185472875407272038269223135008256647233209650619410037194263562570694294714468914592109808677838569823046461040851015643284743829301176270971655950185460790499750837078831254864886146925655460638983160017345039862339804531854713058895323751997547876755743482213192091632842284398959053939890836037726035933455441841285259099784250184091664289134152314384658049625413908190859685710844636917510589976356577858953214208692675783280740113789625049040125118893208140562914135595589812308271315355657832384276760163581480657688036970425012721146077726779601558282829628489018096288488369284050240161146572694046822286537311302704548289332237835742044681592030778899605586529556357210153072698748107706070233140682911217770571772199946258273541415690147296940964125664837496902774278716292489147787433701088651314090748237760187661235381473334836834044159078163620396243791130778669344765388376690118139687713274529855596034895428958943893645600293711426981438641250153163320837852630433394559290015450227728879061714248011556213294873120679895579970660062407540672199407213087385627145148073026316829862856284548129597653035579216524382784040911692031259411966703708999156410703327530529055490189257824125308587020335496742717411505414701444797266900623472460059444256821828546947139119114763927845441967199110650283283131902813188683781961726363368993184579189297983846789229892922461240277719106644325408996863418371210925977932939557069263034569521383068265994142941739313453415559933359969612693402908719342937138620367922932539530413983922141820233788302846123447713303339835432780164612875032342291905081639405937254676359595472029356609601869105131307957719602661636663205384796361732875644209191547766307961752337363696314596438651310686470028338575744797809237217734858619158777690508289252636082784852733122054057882455663455886078253013486087966552721603430603933218777763850429455981390059028673922549226081503739267788240554233333146889324873929770786811025214719974998673867980981927054853704847284420042930216265109923628797549461770174314656145733582386738860880155395163091558183911665237375427236333132763399028619189307195823851988556231689969448860128500495430864485368397786518726996651379704395847175863899750620583029551484905272347093887265515063825704664210075041185727504836732794290935217625591869075513872963651951308715132654808578091052411622417684056510136271654266865780151089372197513411003023432640338270961878210357165090889979478313469887492351097170294332495505906760258451868021858525356045141120146310746690306404891826798082814193348767507865333891082250591212236117108144446508738395699909056728224423024938696953514732431049001110711866570085466452739929687847356209219619906744445789591762156784630017762643800886048627213009895437980453528863266105788030440305571137897647316163796814753769997754712607154931715074650856941377213186538078784138966704471090957216898157600585158873928803489303574772972468740843297532777121306855667044435309410996289574638294607924729876266386812186302940602894528550364999534174664492349391550105307363219410197550468206972892365966144987796787542688586919685419082504359011185653092402881584358094713138458245180304082424074208707422229980340277132804285339445263620211111826411024634813902231530431354620156266861389890222735984513398448747180673838800728383026101214333450965473935117714156856988320183959425839388784494664847206504526722476679212605007249219327757493364384970271351261580381227734070578499426620264520149403463296210005516289815111028088437690971321538461482930262587345869182706324303427808082290415303413879459503995625190555394375070707023035252961432540386335680519035654866860656049578779663358162832173486754461359765813014247698068795745986389803602768367239298211693209907963864026019721200824764691843208470634341274227145286271346828041087047635353735072707686792977722206647951389099946051775873317272661050160137303063415198180462568694507616684561000533758633284786788396223401428041989736240949699430883495780018281966164767027254578268901463556821067775848095583314542977708605357623498347976252686495523974608370135020482678315003928113597869867652416219687675157578817741365336081496537122627372083985119817037217477928762071950285231553048901317890235238406831567697756895093442897999625601727629871272521379828493825736170962100693143689732452808829398057144455089596120924198980384845682905462452667021282003370584555741714175542936748605884268187910469566853357645014390045461508595310169920835735921750444957090875751175412578999216805301463326985865148490044526657469588414070067073026201898157946450515045499491560628187509752971831021399127704240229459760599533681741715420145782297758039911338159545456872854200309446190678833649209783388948213802143110184539728649503684520658353827628235042903295039114328101509724214551618912936816742264887866980825622884613615052631157608221234019858795289475482407670513420269794542506171472023857509440180960295662406491080945100462656752593447043985135963018082884364042123450835642614132050327552488084680174317784061462406854104806663104443407596828612615731280911794217581714704084871155574357485070394692960441352489790698811012828348342748978962682950010466216635254594805598098282795516169953479505721997137622008077186345034596766079594280032267747051264275448079853418244394030270243289854271643421988870308392015107267792493569802920346904921060434212684416388992732678865959455329536729346654191343886455683831633360791556018323795636017707650085054587901169718420804470829623626681626922333422025780738334383342776349885133447157273289637853117327691403020748637233227439329785097341524536839745191128792032435716154133523642961439942507054128045811366042234578976776822374860529737463330152100816743438012975536213369133894572375425632872507173057989126830141378432599388984533471354770398339654839240886523965917656541429035535129586739187453865033540565033161526352733946180065895077094797907812430764971430553691244779722014299848170249900779450369736428169233702577408856140801222782376723489377413385006441488296620312031440422187350889825678558071721057447478380963743627305213219764549368206952601795663037790581663281946628544575453600958148655885150224492524037358082882559912396018758203647379865927656881544373357237472416891348310354361093998311438312145545882459417828430848533108650148089442403819592084406620169791030892246719281511487713169498630100816180456310503415663793111716300306054133276005732936405032109162412289219621325263686739450870540411484684379524778182699841032135489447756043769869811650974319982070179771683571344430408801741176312067888709348039656655757234032699151521369763824154866977493940460682577983890247933922471449215592282475225082392459149500195554008629966403749178919545266451506083332375692181915460390410346421182495538460259290935615525989862626891442667550821034485201573500264449626479747369754860275121205524712003534280832105330854436457202315671712601432919445048386188167699284227973189931999123878094336314318553933409491971644524800477588305989058982774645639010244598602867605422874768812508056512818080459094954163890088741457650239893999544520287400322582806717137463032867901652007037985870645021914142322212044145130461545773971816440510764654611598094255233300278291820521786313369335947237584887524691589632311816694943954530014446362146845245298738368673838562096833133079204407453947301122496201977825768751189205183734717535135751238727042055874033137118948296375318565854146312618729815437442991429823371562338085057475269244054802840773589928044797058430438436278313486909510844143558649489476765224327787888933979916032095332432239836231981631661621466604168871986997005644586546758600001641735179939227639780738184420932606220757929488129272068284858466554577733087227112534715049565655005905006919143239300574086153963693358716184613242420339067597546671904695310553454781351957953478118967192200437957592976056669492516153079073163321463498753373255379029001919415585194142775569844655784104055650343511742646021132011368627896367960865074587175147821408319652022730982808639751163684216775992875103151156541790106461325173184380369886303159321580556844994493448489686680083183869535224686814686559161434068637336147854034131548735608906761187124606692695762426460833346503654756768078001640915926963352729341268067774095467995036866519585241286194292748567430877024392052637048140248034521958484669710481403701355155011835602924004662151091114812354411987817891430619407414088478818687345621035996109863935838931409709733165951709997107905555178823672635583261713595296596045805831679596295246166606420028066537254410295268549440830655630166754083571219045085706900401008898447881206457598811435102525270790486293846359937865111931212735563384015731718692629469469543226275524440626889459774183739924453972028225945966616049511575587446524117472444347282565327128412969983693875780245254593044930475883918678515414893444826095959970969586647261269208003432315146325917269921180889187487250932806528532649043372710607939483364945219667407452071898934484293617340225996316976951732633253297175590715018578875868639414692750422927139606436529941784849045397151394417738736496498097712738787319851680073074948116629878757869309126071904515320981402556689211700011927838663596647808366531853167932915531495118889918453411811024762078635249987424233032097979300534501753567080012394545410700537959515795947283122469055313846805679571213017910894098545557642549052713109464248785998095825555484734179517229618737140296728286561849029081650425430354512167665160568130871629761357874559426742248427470793165919098034969346890580916568975257270746409387635980994437308352603452317547659565682651823795789883965899269958757574439092659897919054077830680580610416864507801614662245063952304396742948845991885636646304849323486341555943712334493837068933111375570235919331167471176528034536471550973734130744128889686917410821518103803251759685780637523118266127343222908622404807930054610400481979549057794625599578258828355579860628001809218274473651054306818148150710845336652639395055893491195015736485581613093138966330097768508882883147781976664007067363691492894357612253914307623742677803330732486440181242443739001312527649156549549941336760741960465974543281685350476371146814154715783941628867334187873037897447057810493889802110596901129115740169879676407546620768665804163941126963985708344616988567534042782701892082215751730042871609715088659164539339067084128720006938630606050904127460495514116965267895525817281586736119736739604256272945297528172157099912207252370280228382764342325412383354789755087098875276157901466196112629038833893024884184957576218597265596743016492220668808043812862285666789100438894523626206626474387560042727562483826033805752308970666168948540839895345103147743744264041938612504077561862806101621091326276865210313060389314703925860424017332582990456053574351504693092192039771968299391149309660729789519830086097086775096154436820680325546846420374365035759290196382528406704678637794155257027594113230075631380954399422535525680760894608956178214707227341315256168157462762775173897865444486508944028727219704146236937443164822121392531003237726461749562761695352937869888994995864300429169805759425348278588574253228518182223013440350422400553860546603606239316391850945778993293874245133215684292393573161451853100690148838025881183540580487962477942228119956724159159840779439016444532580169544054502283988325867309730920539032470548594314251273684322445550151608114360001841922816665817987733140117120353816413234039498479801756058106031247246584338159233859419130415112713709175777906588973179099851849062448076891546414945048576114230379537779323414223568263695156240465126809013024023879255776116516731090945501877215584084976281411610749523406853319305424926818707350211054830217905719923167718019709178867473408529603528015480280199100774917444249576398026502415102040168318764653106019366065740666113698174244174796213162989286974273880718943407199613773312669589818641649436429853542887501749539189141630016920194613495469857285029160148676344677110116868638259021229844778228193946524261528202592311868463480720452701339351650658068182011975973018043601231812345561545610750789082660441599625039492195370888069235001409171823330683621354356102133394249926310221807907834705839963317269187441441628420362289902258525644239142047522626766944649521949425474207998341457092522437856666584874779616584007841624855869786303986093176581151796465711875628700066886911420186966923886273723713894490285025634627372631822016132840304820901441143682361780982268656580801364019863552633291380040742095542479375304106167371088975619671717579144877128632335745686498448814839179062088026932052809062533986911790263967129083941928492827688667938897339495181773183437069152701279304184948307296248223409207290055534230740259282935884162727159364338760864863553419005040248016158970263399207446235043433032491612997397420771321850939091585893788692339394599346211514733577070534702029101446680246866341879068977429034449966514841000986129172607667980027780053617618862291430761153266198318326338630489510935635156364268444644717835670125163669917035907523075097009527611482715325147945079229160657440712289141374672235829544434779800334392256532925557336710739283235612656063279951627075461153687562469484057518514953641124394213373873862964460792732999603484062306585431030843102072191150081821778482997833293898703973916975387529322772887838453384422704518432629522637052484449625860135125878481790508492416932111762913391420439841550674640265161904676248933639664843152963865035682410479354531619326643571548162768188334199424707242512145654378372134481845776592899054740084326419119620189275177764043088752074943719979697876428811559536391333163174635727294500777797412639481081942514076335974611353572951075893670259846130099194999512895638721337826994544859951393852113843804915718082777577368658777661968484795197076358203839882301294233424737274350624861528136227907299938072777503679953174796862238757258150021052560048446978095227654874795368780353834217304487153899836438022242883695358977162907091451623302471886031194932375418223937222568579463100154993058582451493282480405038969149447686927618840863366097910922761206713060745692322386031106283948034120952859332749454831973016676390441761747215253156925464671303297582761485963546671408176740963026510919583594756743386292454995974522624201392560624191693873701372524155502512939568349107878060418669431286367968460152211472610544989133060446266521404589167076688227201548448787068640801470878728784520251450665213860488430660784094332198433878744252249360627586130553856346784856953948394893124066313700768434799534319319345848120600642638327476537091136105677924954203763478089493492580962684994489895926361806775654127371249052862734950467569534695956837987538728911245520851567444597036290700610987409056735947716259635439241782153230262800471675594229971704958895734582064729721095410052411712896466170739424881056481892475840508568613142329193223679793837239691653328611411761923265770648198489370824592991482016739555888226567232395412229445141793724550047228244889998181259365491258074918006260910108149768552612516589957175445303849130397899132564062333337317077487913438697589224128653121322279434509927557789476335971657560698115260637484458318808370339402237619311472487024729941911893060767471876221208984179678830674850270077961637053672608731070412024768122318539495687410282634823528262011012658363517989798624087924260558339697677393966486442770149159460135927916911571218469981981826420649390357582708384083502169141955906636345096424667547047939884849669966870889287619061914264789982097831363263466370894688146886487250724993928824949520206696253862020516204969435177836639940678488316227682276689029903337624425719520296727993432320073791460502613136937852047322906462124935048665391252718664969579460093653836415699689094995566824922118147031130497519429251621603458046061390292135623436306416597635271604343217758802211836856467104006467979382087017340171036326929537307065288148789478379727307256808503581114603178048820795263153875105951346883581601616602372027193067424534255069168781760729718783227792896192795336014219584547323896712172697136937513471518063814489477981083110908221280113526802351583093481852257111680206844057711055925277789973339373766599872690047032061903679059832347770441705071390188660462009714315216920250256682680163892628132618070346278155664552667056280430184752137738640766958843229064674824661123185082853901240291124857065097094200143417133892416010765571520247595459041766447222738788386405742420547960489346971324500590915600226153124083523953889318063990699392694830230382698801236869967370406783031940793919729222385356661901197215903528783583924043774527186169660295874713163215303895803501076910309498664845300869542723886219927361440835383246636498058469761185858766898222069502877858394129615118624607128948387079318016790543392164206270806075983297075747513003937552511718378339601531531334642650888088480209891620025684796655874373629538987109440518661704549351579718106803556987680573373829046973753132513558348463416729874003381697134449527712036658166201650552976661388887051525742420094863103182107376417952157878697802701404349693422812917563695915666464900766085313369330846153469553022729086557683256238050425152744259231063060176301234587152877819702257076695592088498417244869393202891706647306066614444281818333410226078743183446110352692318063414640648000977086581892745002849065512612481875071047804448965488558960349315383434546537383379802430821438097827769718986887225691509688820184718304111701000486584084640490544117189644568844095166866118301574567588258425664805760861589208313067901571323062348058483314476335246987924660473827709866892919907935611425530688545426962996618107668480340671829835716729226238084351848039560187389577639814067750522647394731409901902480243845336074100014768937082194480405622217650740242984510289056296605319569487239993539288489294524262385309381249284922990270902932849557839559271349518076146143560104020020351301383990847597416870243871605670303336280161986115841594828713663681502877976985013941017028829618970972270579275055958311054040906964174330499384405617382730109297363489113750639661261482010134811568044387980638601400939267114199166604646481714135210020165180570823183138410531152409587219992681936480950581781900950670469955085765179777045373817177099422412786704745699414885147639284301766868361644634947797943983178541381515792275124804576341217227003958870981559583728894590327272689645033742805014527149083082790988107951748459801130225421444721701282207882933045956160243892796601912339244345148540048596944248939959826014940119885710052200703607260710949185274485206505113512643055391519002870103003543894572417954212789899939494147896981055917896339828210283401802604584100947227442068265604705375075170369548069617430090473743164209058897326118955803590004165719397745013713689742423323538552367216931903651210767076984344288597457032475566718748889249553541641922728925365350631181867179343544242915092754588743831153397379461541784618867060584201716684313893208688515167825771948688558930385000232793637273091569609510917790340484898356285430708001846125983121244301275707874148748703496992479996733293269493541381194702711434741394917129885644785580997018917761278288132865126451268329258566368346359022330045016221479299938119313919815001949398507024953486156483149058127549608379615042935372473622411126444977818853606669872847029489921561942386703515082923762101632795602019733082048626476015194426420912392300473547983644324645818548120218689480233054171931018866640143896840747807265953685995056348350468367407240440179246024444793186873592281963105446619569745696453042759513303891241901481313402391604265659755235510061425630914193890586574033756367203754774153448431612484033790957825542795869395193236246549537495672428683165918361413634052495499541200610846719844634266416191990252314813716854884451832813166751257841457535173386372066413429162334831168676674351597381266996541576739289129558046700353692480993105575651393019809829267426774297806329067668096860415197560601075149779625815831439103623163500971798037212220329336702300021460078416046387518132527642159496011832247983666034063363766358765446256426568963736849095585179280511656184696040865970221423080167852061394888449894054249125213414190964712519763569172815019851940779864114625024432604249938995012240518867616306648753494511410894503457777821035766183718492719824589717049552685113989521732886075342577331154355989499489928589613129830089412752686625299192152202565750811382542589082054011433137268743264316351564109197554664077356429157340168249145661488601310159923829030692071277805909675368185668158389935699153362032588645659324148381575731583383193626718113289087069517020277537711246205136323738895645108405760144261574164388411245602762553377525938978534968388235245789510164007873827678416614253772965202705757122255966302925689220917295168505719904839376730567079842473453218019024775709957768439376833237756475609866389764776901434114118570343510584374809675496045597270726301793427804801015809347977813174111646445533514228427617453809400896721046027338740690928599775217812113804035229329676011368137022871110351473266230905562931229722571404585720430131242294111128693628465327162038304716785033514759507318613633086757307418622202935847354679737693599612765502673148530244465382040408332067496127559982626908425062587399675659569270451406808485078538908485169308775297480066414624699438853474913351737664425212767217293646108208242680708907017369266961914145215190298826196142628838480571372216828317244899133535521028101772591533109083892912286039564709332498502179206926164336652940157258494817575509925997343735062392526208147286391020350821970867819484557954413975606997491309885770072855729662667445186433442211676986636232022618684300665840788247280727607784500776322185828317332555439593650025368733149402559526033416656617584563810759035332948772650229226423538330956737525634226228330051285755890926542045809167662121978939293222555783988012651539953247849395734576894953165883001717644491594909804038492309645653766335484311513283270002896069643727421185882031693441503601788186507993286131052184170412973931269253434017555045386275185908851713931476562083471436130348678035019933171787971900601046885931717295462299189642836523527562006806186174706391617731533748734235153567187305259298608118403061779466982576559905673350810833606063183505000161375552810215253209626324352786374739039473425117920296025312948276033373671840801054706184782630402488387136859390941375247634625193949119900085585884158653953090667312109979445544938547604541746108518622919823141782834597117746977915068097846334402185691375830766987346685116712356408210251400513256400697622826075422074910274679090523025960204280184598034363398424527621269542322466490623612381871733839344080748352644038881116448096145437699896285726394092848364034611999574319339703029072545214730078593838394578100101196385012609483093595624343886432024298306452906051700028815161674323763662393018541727848841492978181112214787887913233403292755454119855717091633541438759161807877755327587972855615185243051347131849435620706014342290322602210401060566309456046340209546705095327811971961781039687272781400521996972683833535839971498283915219379833542003988103219877321027144695201717931269746373193355596492937750188782647714626966192798932646893262031936822473767777673173069374057070220794984659237040494267051884106756377605278741113774945040698241773664142554943342553398731209401006485677730666655257106160809191538544792400606295766706712763870993671207680978311461794106431887242762988224273741096319716743621689359991940211753683236712734914452465020320508934188650099454764827211894253278075681312150329205631395189663517955213677804781221667033001503213462613095784237835435663660936437198300358684377603931241295406431040851939300142454732078482556497564909776336436664009289162035423482299409533477707455902089185578023391966057529519495797206533762577963099398319636740083413189316885642118567362566057661116719311850935276880514115818815539847354794908085792471482740561841261761235669441188286927513507934540882295370473460950583249354379522141966564445689587676499911385572178455966869721656475746894932938318230269666764365676620343804207800989553658861141203139964046750950376427952074339965155410610843027017714580862008502316595663544245074363632600765322418011098617221371789797699210193964012337986348413030179722457113925652225654471637182619538134711603541783946894050988244843518906528884854688390648668375475513741139199193609501421025425775889476584602951464322827095928707799037801463098413620917205634772591764710125692202305094091599255772787333575372637244032472212318643776980657955720723487500485981344860883701286995786016661027017898938224651568518699413706871709150951595222159099113341369527885838684042594550235027242009024419650851029925734025093941770787806582873357591553270211082069745354145655083456077541823180799999616779885022123745838181984886757497901738757290282809025038779761200421312983413065097249297013424596033427054418743812899743205680195757174431599181799025299556032409240704237837850121842769489372770070105410095420313053329389200049805213857592308183921287721598234677716104826907386177449159678874756641732834273222438852487832708696051124616818955912940508850326065258345137057143410601586605596346943985849640465603476096013313754451568679182992082406236902283875472671097860281558179751847389602159316893135362038546887284415319900359704681863722563615582830715579419550390184859671998992764567368016299067798426437174175671045384147709912297877042891810828258247516232939620326016547869674429930702255713471971969417416859168890086542109476242754140540672145585002799501626467624133890062687041690261243828207586432513160486701440409261883385264351365443013509649084233671998894474342746523587506743541445662657743801687045606417138699721602992037583192758889854525473073251199473402650466813701292501366932971701249356172198002554486587395867024009205803383093261856820133873851638843560031881988551727020117165554255409188751764125429540239262273543881823672075207780771971044960664131809722638438219505632395414243550257902295146551745949410537991207041046037185711000469335535350101572802345293934881041625966496101421799973125946229732879136770694172265679583949026189034608812711040037356903737681143100184339447711373101352007287487065961014556130738945308925686732712111591299746324292221448070151068510300993523682840945883420660991088337943831899545886120449126312639569774250626393572893509927002641416370127179993190318264004067727608116727356545444891613766182920859752566804487706186920479557674160767846060677864502455896174750581593972161388909840220789481790211835892771361454192098872290933294933066706323821271118207896879601381412849082029026327718061881440764715660602809237081695545507939469071028103142593618013473209697116670583399099673359737602944972093102351912337620377008192691479550337814693660274673470857757817441379191107635162316240613298962715380761424080754654600097849352491847266254861937152100434869133672065731708221442863073685914635780541693192053747106437897653642456909232315987228746177940842696760550284883882062380344873983314653838272487892417197366038858227206786971894313867206241141340596400429825980671738166860131138626993781104302491715530908312024357591762292746764325863313157677752244227718634380589207789314166666917885276035763274070329937392729822969046558355082110036606538861907333318746736482754690592474092435197301943525722468457293632692781704692421597745643472435836682673003332002628451060473409238122335633924069803219290952445891708972238778745963848708965450417363192446443217331648083046474025270155429054910347099876688203595827612639868953336996767977163033239062968686315245264114683419177685866694265827522530366149774199911415926348930087847318571339484613103192995821560587211382115892318778164601233041455969848840663862693949772672873667347076164098146229711959002274479131380816491537695990609661204356863148457041934907865470114486445386706521232015984919383217474746605348832101378876727684357572963209077742395012879084367394208455469835377913408694418377730133741015944709246253435393426359516522931376328776780591900342436488488161663597512671744783007511955628916362462834900449713452566248309750581394218091929144207688301470491152047485416142670078496744214822733691130906543815698849800848899512830131579866602397973996646877994392159106241854298704608388758083735759096420896459379428235361541056967693320391815342488031310165291059036184822760683739355028295323346755242101673495879783444476439479474738480314815089718106727354384634273530806808969544868643454033446675462575174751402304461019935396518522035562376319465883728415618492989619020227425453094525598661858569149795093919656047334127866552002789464546023814123322316561215838518081374524681160855455562792909558573020207913947330528489561620226377069393746302738929231306696871575298881899891196962267547404817529106585302455159086628718499815723383653075019935084907393001309754488699752568755768023661901304596310833702583723605402763946782494887328703901136618170593080429399861198098068968786335663798220681623380760394098310626610718429221072012109382543445861467266926667608162049840518592946128734436995640599077903535298407803926477589817006408613001385448934076487069670449169639885757445556566741487768266418372419888346617034799201647718417294446459001971407731355582324963742340545542176502863164904507357605498112427442400094422231206933367314038429715988845758353991482480772728928167253736525651050963138302133510474968181388744107157569282022172446820462148483427841030256650804735244501247222417659219484796308172152117352987821906939465970760304005542021362414805225387729767481121514929747368639895302022861325376432028628422952641623046331145209967536941664878611519247412775369382930612225667162466091339715819148678097299798792822205669969983896076218913020370808661442764016399458745147024882293384295267184143277581462598634104861316495107395671193856902911994979616020794545537339721010879036312194618592760620250928452835253749086776379027948506984455651104520884366905620482670444896512171817922652185760141510710881638137699463722477551444561864145297850466166432250639651841595305100441543663812153137148846486998146160803522429905952903004068480700491070359885793829153560246821536372344179195288236174878841408869956161858203545603930125423867830470526014753213394935921750366221080413853658519675672657901962837889114786314693450845805656675705532479663440606684337247448778675878189770880480439414394370193792430647154706250944261666291013413249560637268361312125209842996677587867533986622826464517007302820984739375532441721686328134550554009297020750179557249954201386701975384873164237862814736593243703351580861176124889011625537421269591570200364782894688212785009957072849650280023262682443944855779745817565987501703190030154960379919644160613304137570058912026591849104410864936655998516909861802417913973539520271515507255069950993410053904104274976387623325329216375240637989311252590719636418867937409742347983418876706636649099794251555663426225746144810088535927337779725400115024626546890774167093476538855093996520561842182697595216949400529544621596897978604603208510780331209579880179751891858069725646829081539333097593183987624044132606111990341836117161155154025095330656193871443826126446247132211416400076831318639528657146462030217701619395740114825378508332904106257480137470837183640825306163251439256446515131313907473066687825993120665345138087422225452936275659805098752837380420593755818807429449357091612929107975731602959104710755500919449192849413830890749168473386048258283103650163781851124277671433314189577494233106639937831738350266471713746253377821800339778055057581349259688594232996040403740896176619844095420563186220225114255960806480964579527609992408719783885521700589124688251176039449662922598231310613598777369166101848364322064168387631887971487396507632098448878774974678779329089234157109700716167923003039526290500886785825790484650187118756848767960368969372859414925449061874874797084608533778990134822982716609624612207911967633912196631083714453640023972590759968794089575668353950123508560457751608716118483757130523842595841447579826393288494606920825904229006685790706970741263647581860911868984092759675617515900460245984145823133914252111190728046485101826644088982858193785704666788164018635833114490946848578785873552463320587161857250173448453977719876741051896943793879023597709515589140907933644068956633806226104141150736661667431438723922525005633973039554738056888914492035066177389504108900834782655113333104830066775924634335349514044027981472849883723475494347568750373505579425415239317082499070319668556050258930978635608027975046367724277431330816691138724935959618328194932042280378883456356655474134729274657057935239014482766812199135043085204182000519766449396781347085095446376224379554690480148075084485786475516905317677436304981370421353375947410417016893719334884448761307578095374667635633221486273638218208417104131109582298809806237180304546197462883124980622091411110544040503938966442641650382760118490400843664946320507896787054995544136690110501009989346235648074323595285883156559376566754665486688311794255914885728871937722165674898236982818341623612027523521785488754277096519228972181712891724688743891056986698188279120621602026632410706472711548690361682939886236471750564216491662139293868099920197053799206074529521081546901513205328154156991516100815273281227842457181385901055322477706516252265287120335478103093302123983829688595406361848348420919880958160819982950653147251207044874924306451274478629432315901173094911757524684580655896694641624655063932278418638017349685774329517149159322721202647633923455806447938899194452779263200895234386853062949534007778671140134386820390196251094532327241170895823912429077661622847783122056998425928263734331656580921395894783806578415974865196647668343245736075175212285045557362383229925802190618567198515306602407444520926560966600257865952683107435899223681206797376895859489986281568175748491520220168063347305073162531259023576495368254131893727957053197277398172314096598327347181322942817309121043443267336504375913954454846155026770601042232435654978315093902234920558597071236978617649632986711278053085935767230845022779690983262901293213769847603737442055920993288244133566472097863019394357217788314396373690576311921883044670321723080063422694155949644617407237940619783389411537916491676632382068938576482546627442972884338283377687135009341992875268805731351777340016615097359360096392483125438204381521754388237132862640351060958803059782215621983138936109053515236931768520108400724001410042347385371582830263573453981617702560462492438372309122434846254673167023595121547092242923302118140398955224850893012684204645146176794940856362894273429488595929405002565461572131332559647213140540109926184794221257700682904049148332344705201212306221656488154774885584033314741116783905828040147246934060844986650523382359894753804128717632860346446893985781174252564922670688667261719276970195129711366861057741370392773726691824143229079353686160363099268816257678426049479110940077891481441812953001170506737682724448968921213612936671409986131790155578467604209362062905983126503082612723961955042847817967824341781788794034343374040972925534045657701793748833450553153613476647238136577116580655609405283617748692493070164538955037459825203222367956293564721137431476022180278940510935368071033718955087847886089281571901728278200428550621166584394101065657136980615876907471578201309949616009847594043098390062562263319437732333301676687933142022380950954403741701659398038465593996283905426054741064039006013346312109307267180051827336016764875153137808267995937134453078463859172021863626173878499001259625146078087603118392861391373778940822129889328410131296121122564995600045532740127437482927763966412542535174975258020861763280757177353714599786547632454407039073685909178316757928214446619934497283277110826383526488171529222003245929222217715342576999308755084827605700391857502476245716058682024441867566251705925634186031762321972421880620344500448737368166901995985217186979385153154830933592150315706345054590100298496396843093108330358605760705849370647203344705247432873963019738843151605125364249930302685604087028578936112439258497962842049466767908641575927487367373192392480154098438918870378620962285885866751273472763856341736406927378192756921554075258300500431669626478047736540161469116874075878073791051523437837901579360245016335574587820544876974852751890492846813658426355910587160714480103499722993780848651244326810308702259270007434584452018383334628072587335489185300785550328858877477432702777315434206086975312692195072873977856769481935170998210459175061976077162890220495049666278573331629008004157168242289167042515301437152893602870943285230119135769065862028885206930101851121895367474617719183766953852003242634713541936823534384242838473139673280217506938896576382764756168481144162829462887807319110916515090998770012431167256875566387700672679540105797800275715824715538497498419328147329648911011904099849941321951021477433738083991584635427890394039206951838981045576733203157059376623986292309997488486459286741145760335396970041391956497268072131583130231652880055974631238310932921063060131469136782464970526350381925459645818552445978166098212660013273730512710929379218236459879060192762334635728675550793295934281941497670099763246393297453392695685885955637939731275094652438590752614008054514880887340122415342313931519938780642523011100864618956963748010650272518637500212674934052750779519792906934352355194849433895011868028803508972765458941770846259054563396638827247046908095305633959950515755760841398879395675774635604909885585700070291017750033694023655334116200925959316439177322371065387410182149962805381131845316490039433580002403519618086239539994874551198783626657939557529990757194990457691066427202459637435515763325419364326170041158464225292756199958873300237652585947379189104759900530290707479419765882275859948936353890232969824781225882202002149169536867564603996129570763639487327649852499724738661646481190122944478096373201219510328754646510321447651694076316711082983341697856946910830375049610015701353541501023194094332940102069298735260404806836179582815279720976846236877474458520426784965908716511659825475390825172941966581665777519713131341725305094737165424215077385914466635040197354406701522190037624939281549261514386997547487868232646494724504049193503008406046942467745535661026340835177675330403942337790112504697045974403310331623332153647265054199067290902831043203297784949004010049901966390873630650061248146361855046268688414032489294578928017601826219910397489758604793084414730731373190034484891317958311492359268306277835951158597416811904639227958242076959672153407062709192727317303850602313490212009527121492108657426968706202792237744653913357141629478120307954160619535501194893954260550749174747642476109469160092258541180993386867202298904620463423463460691096147781060913870252716876131667011388544953131693505352454020232511734168270640407383310179893411989575606730118699416630435939617627277192221560038352247922905294899687413222266464758253847638112224839630204355131069909224124035856513381083416265977365564013070359066066944101546485842250649646985827361240539937616503082692097736765869801818873476373847740230525563606621294720359089060538304468423593611709479080422406263112153889082952657474862889884902961317481144504660600086254893137562998658171443172461867367488242174670042027811373303452976572057168837819276700058469361399432083856126347224090200397501649632319239655866534367982806023245065400335062847824768622411119724981131130306807323575199860074738193060694801853687783044792912849703513315684889015675878850430120933276717226732915224837317299472498374573590708577316154281599516329700265386827025034541982677094431822791943848706728002075204932453557791634645396898599070126679376016988596903431585153350340172018972681900105453165878569102616898870825994399529057077112135162229546862993107188767440008384541746513789084181009643050479466269223461945418157336774694545663697809949693103084616633983871198408415912697668772023161288749734409580657618398307467716161949535830993064270493871589643249750958282178018782003862581381251768780112842616910552798650534872552663286201174124104354276313945255643325896775807650123171106387659542459247002266150906535392241294709570644714009055451135255245594363071130324902633660988950009439669317908367162624797460499178338609429995873012734263118773320539918600790620929034351797397795373619639795987803381961100952187097417167918820833458788250482118263940101369494080078365332522348487700173929683707705623372193783870726252031483964392271561941427340753254813600784971138754932058067274761156409635653548943555522982438638125949424723327854394875966101029255892072548722670385933747763156576851216855226589041360310567553846417997834346376069163421327190538063603606754950225239909645707860793421096537113703223965248492125051764050788275896673059526646945487848967098409085014689485292638118494579387958978275696323240569827544852613885423886976789770915509476495434885384984845126345212639988870482172903836113611894572900393366795538452160731586548093788131398864011380983521279450610560962274187156922756060173626175469885679943789954914290219103282375868868241240387635485741747214285337900101047229433696520739764465563891434283984805978313271222119113385194035941503649629199426545008659901871355466775812192498318710442271286460852336730505606520682558980639179833555070949814883772289079800060379280539761169533790886149281486952773558786141909827042236049663738892654903524975819414886140844133175430263175376722372917965524936126175053634099110151746931636803628117776102488572168634342484155980359097035539892392328241379497912082910016908645775196326930624515830594179240004802269789988742536586226291256291046128421219043023369598901368520115624519089386503915286720486233483798646714253554134689175631151315609148197836368824121158506985917497932693827334052691811855938983121407654544306939834749130635150005947380317480340577678032200888961238938454144138360045193956009812398588298332774952653154115314318157817711153821310984717899582426009167449420821306613093049850995872333957691111829323862123621967919857681824689157205061721430210208015490057483983364991572669253985515556009352913118850019630258044778982092925436762906123069205147363413901817201413694170434273099618734151220001001734675225108093328182043719914385048539127811147262317259707898145903150629865263963670287905133332277865399863712052103308547115701974592853358249835443799348531671698360349494102804426693310356881210943984487246149000085519953084101317663784957109802926855565388409227772338768521193381697737624512430409749365148888860099500402542869565371410715277249675680856708964834859630195123559932269068065663176589840697453006521179562183812859868278287374026397690552831925596192171489481834715836548334710662790098047640041983741680124030128519696151035224902963664012623404761866816405863292361569888912180018179366509467050029244931981931564950065398070488326610971223391554594075650903102816877152747334288321625373515723718963442949742828716928264937422446707121573165315888444618395342980882227516103775563137449724818739946854390816099452654401284872048619333224346437755109629999776132555957091690035699884728767999120043158151170876675867959946913385149298322872522608796489915202497400596922901538165123080984031197803507480233411025356608734681231314281675556313701884517570808367169668980404914708874624044429696723470011336476022891911930327330954936937985952161799988962586991344957914660143538124171725856942443437901559420441260834684151346908151633740027211810139239135484103089300642126844502325281918310335021912721438671211498564049690152160596658433951539870432589961865989567537545689596798667937075367972786561619140721711773851059532116721449262422053386522354251356535930687084730453798335851692348214639641213815948097264129381261121052717885940856951040969575045094490213560168989298788699404225229220287509193306662223921203265946613523720604652520474266095547743185947523903433384275098840633346692300423480711710249327330928515157432416847426146375469575541645060211687653750788430318228025750268032639337580883981279975311137550581552391009189704092114998783940939321844655894361910911634348983040506213539232323124583367198454288302461282628141996467533794099358140633865815105567154752138480871212335938294366997994603234609511327994470407935320249637443842794094188925358284983662785077948749604797285145027337645090230238082068741229364913715330947564860729992781277875357708052334654054177724376100799398311420085921377692935015772974222529190274884426697514468237175863028822603573997647690077475084012690144891911406058979730215936852870125696277724655313162910448038021385532015585728861044809100752205052705493124272206275230607603596870569596999893737895347519348886152193318431224172464021065445128718302633160548916049411900344620158793349503677950014252640025072767901326068875932863117735831572729541315898555799134365828402271378378051156365004659481225835601725536813430710338283603678650256447763547548103934137392988629993724310806206238102773279630007060934043272227076612201459163415503786775229143240334868067289662854992206978581731232800137899477148123440203668612028765518216828865279975765773362234134592270561743525925639633733395708887711627266669028621082520596499946628737016835928307708525611695603766557652796668007228994637632818243269438526035516462680564567889165828527308998844069952764860371945884162354156512037711251287153342755291344625445567220517538170591004489858673791655018420872171122966828714091820124896946138398944818862497963982057911237403004815876740956394087814817794525310092049966421198735357525724181941284399791743565460187478993433090421498439112264230908186105881088151307530507625439902546700414433826801375587240549040671558010584571689987166953716045562434157974811387872877730211442104867451355123672262328980706143883765068012226590378963435498133023287419130292576780492077897296494410081582605704553537813425176498288136150075789829829034679513144915027840034547389424200539196326694862244421886256081376069115843213092174920134694543558392617027646920267573695758895273847758193563726840468405756375097607346225601432566956579197622878223545495211024328262079464012540518516587626732083525399319815884421877180289463010891218454387630773495652051450076193298239467242647293236198778014530259743319611432125663418858675737533040570181752019873930600457941079369463995952686413035843197374577737995357760553683974227099555326712945377057158353011061161750243806975539110709295512827584427471262722144314276500404442360301848525430502199184557688561861397663730978747157961587402850773751746175714045679342784298361150302793102382007613828206383763912346175906449003593533331756721470323565938674140651273101765487002364678478530791244806720436378098977251341427798664510406873787554493276110639797347146928015610638063920492158419097490722339050547450222820619574536272511349200645463138892371782056832361296953791681472818284551921610184924857240459653908432819506854426131018222854378622859608552163875913170689198908452136116450306325379884897803078796021334890911582484304864209761245824712707682272101557775716570322121887918595768760882283412358561583179104785505344452964875565216687642122112046101091825373161236502521227875985296789419739924681349829935989720297064022608294820212095435495323171926656479035235695534537724120860890258109907561110304236110701266100909711019594843889025311355618070933586730222198657449195899948462482279236575902186706951699634649401776807266318076371924870516638239464655372634938993351583685333602542892693454996890051938020600625038002999771805729143500029966061332050552355984599865194132465886367281403262059862373015642539769942874004215670094851063494926713561211114198680728342239392616716188278861763795819915180257040339819614243160188984273754683177148750051690624640039918376512436766588857151766316815528108281361040423443372577250902844430801272494940157823150926380495559101620618685090933558941841438999389737668508906678315178573436270130499565132019591732851987770373700605601660457077933839239895639139126662591221914778376852172394703449284101981304457218954406871688534672466133285643917541732651694874851275182068282652499396105732575562365585686333441860597804573220603236746522589911875895559901011283918804150943102342357166993697478465484433023189529457324851338678389883555913588140077736683107207034821661938116238195783138507014741760684362825334575127343922106461382780948691343722523407197855683696117988645861532507319924078283501907542731278558362539423530686655233218677672125874365967064249043458304738550098688839794402742125883824615906862498891301352673642684071934069013082350950729891814358307495489569112254794841871183423997444808596638037293201849360186607476771482740776246709183296268926901665691072080489915967273275463007787713857088875447904459780027096206665556051989547553735754748896680600732137218047969552619538641537748114837675524659512967075698401830619299526110730213571746108581625147023904939516782916299594965238615466034429726037325008065120148452591616776955571152451388915471906710371765663570686787724074982010523303983350501609515357386830903457620149130836761182905223023711508360346973588256239936235795022864357384077217629656682824743915949643554436702814670712130054493026158464558128147440061059001347016520991625005946047071665431092039025582542043293107618736124116767049316722048240786072921213676024922493750331293704084298983560611771928853479214761262630098839273878341607303355124546110482360661710752135549849188016749074603577078806134064408043644216536403971707099889867056725490108324152179563797379522252204070195352181676645697748675780336875940599993728771780761454481965294203462934325586791456588166219906781514836221119908337925521280663505992305851851052638876870723775031481717317059038106571139255675235484085151088783179588681524787235686457230076094153101918163904021199547278562859886828096822801761401486153819832430740359395135206325791888090542443593453858571061702855369403578891589100358094290498558955022442355635436895637061473174266676299286089521042606413486808935179009773597107532813932061969070487878898884872960264717161336418254379805521842235262335742802651007199805774107717650585646996424554437750309259896074200680031956301523350510492011168435282254808210100577405185869558343240619612902412688351453755054865170172050897900389899943497559667832133664978098595495881521294760579852182521458643429918273512067623122044562975591583015657248926283442954764411457830774840201752642247726097503288881596182794600615045708948764324957684961900461825841822053438548468375984601547136236224633945823838458889378471330840842760542849030897950754398639621807273909746304708503892213512292913294133053685108974015760074123815837280513615926988427787042804129980044143091876733917721709172186470327186228003777377051368407726596663036828314511558971099826249100233842827387892845381423915183719445914355547950378786291814264437178264009774748707408635481743892585483093697560250510816204128283111789639230949639307181028767770527567239815732160422620801888807036945649671939398581056743963287948333850753872150127532308393929051823658612818381562427277498848439957772622656782963735694471951541314310653772188031990084302743606561434200024418448297947378200388286141754207350094701455047804317666931272161174137627697513220978925523015857434908010269846443795979592547344214583349217676261794755750715583880041138792551770224832886641087790395715851757975923493210264993798849298382015765528974190255386560711868123123252598059625718617249304764889912153984860319864189360428565078488145634779582815014633268709741947185576475504626022615540773176030282999421754486206404601153885680310561478801036510458114040181634576428894031491277553699599209073785171787065086103924351126117028500894737016481334364482383224668159603323054812580690302068721060288760544091317993507951666191221554210949109693457768024870840135777383883368967789297297359538040742332081620721421196555123393884919808945171623666374200444945549135196050631620456487020837723518579946912935435024633559730552488768938562864444409322733905722487829777714477881916045718711308195066248818206955169593663241274397086501523466534870521455390932757311285170255489934947245331707607789932717270332699102523822342985918940368873647385629775361396409715081429294202786892914914945198949176390696577538452824045427739913848448210651240001000602452108912526537375563775963589036150281422128419117485793225595021052408778199415442029287219976605951339717153440138317922058446963215760789358820097537435895148130339437303279998600563953351707420816563532378280880946695024813577253139443822422766835163771479871917090210450428977338015336073088517774872496399082361101247324274757526446671786137945982356140484930098879612500178875868649954660857168180926749038941313276216301155773272705799754457979842051760960528740693981802168267615159643049326671746927197906661699229866509048477096076644248458673506297980080615352615908439483658540995929043309435258271102930055831910720230523342780513548926363469042706328711300706763300725908929318222105647146193913434717361316734677477609157861457127103435212936058389889945185639508340739651335342771782124928493820892429232033889667060535331220126592726229365850081869835442329128943761211363233510504135662052683624167995141650397951683751352130291652895945052302223332264358302076355062776135759353260273503135478158066964653505293715378240485434405285099505655169365790363953115183352234778764330163193626354674374568535060853596316781685168424309999977855341178991710772133617637866621685168776070224161113073258218935463237839916245003368194489799556357028044510140752405217083754844843928470468019941544017945220507371403446595503714420333370268979020330679282060983076317868281294369948900257353177099521089919874764382406008056437890116930933039914782250102482737750078863911592304987083282823907735053194811262080674908919821894941397940560576484367121732085652426797990575169866578931538416224894122920500480871305762939531354524791585003278507939385865975372113897851799384252467042373237317585717544423508423494154601116089873709102552165090675824535154644158235756919630934762761632456960404207821308846368356544276918453153219043677361497976128876409790852186683934553621160347613008941194287409011648465972087272794913210781271545203173174764338564575279821369805158124044101130726116195094049968952926065260515654582866572856654846625212691075776625948691197639344136736160202081657328288323969412248363897415432013327262853757680038660493616565745067880319135900243502607010061274782914527280960562966104582916028172677000481127380569887091020238242964320616413810316860152396686172944271389638557546085086019690132644667978650297028389430849098606956492047259653299941561069610017258258665262718372248429743971355355897456892423704519656562353445824861842259629020357740272129699889217378746177916985739399583247555898486588673273982445937572459429925696113986944032734637874516416592934772953535765184662912192181000566629356061121260638742858439066139276682106885017285247441175613399624566714875306007233538214895743813200216209900109049105604670265858815384035630230224146708494432462237950364548477517538043750427023843263648296569032157131935008975401277065163712363688513040796662931924342483980764949864798686347506634675951696799389726767228295833280034215962835249861833683919752281244733399123625070418675405679804082550537318692597912378106140646100043553298018630007332609319450664919943959004516882677513666967294956588615696474580263025723381079074658240803665254286699775835913893742608439201100568359262179014349679508952389252476416003988334469883911184658945939752155991258272833601049177346175726844138767777708850264450926214367670449343685045046747730418095687852866834039479305533121912238775606361407599582736348738796926148800070534276035316531501125411053362467819660897651852877642412997833525981588383334290810063661778133010242681588670256715698500872311826779375436822769416775798278922130408260374827480285865563898667333195695940683486708692148240484621233844877706598663596557144921929952576708644437879960985901554447194723346020409731812502714525576869628305988857691293934851225752313337317668784202225809295660750522897058812996043133980784018766163804234792267880259522801225480439277865175926046436388221530486403833617895580564345178168224689830378639599676542807769637235336052977903814587701415511062402789265518492118728079318791036995220006717862283892687679754406171290381961259426838402710216971548323242693646804077707886375778937857691420069941196255144125841678983394755267704404655969605692650906859274323510012867144578287851395178364194397705612300821162331431544522368647328125060734661883567143848020687080012253716424711460531504004168271207706311971784034632450453589253766415100325331036139344284486096731294664535146627842708658977670475437250727171651671072495445433324684742642230123655358081598424317568343812976381905207572284797715945205062047382573372122995149903309402164383591841562724744703961380292021849589910178095220004994541823154814955529906852611781470477455008411416117880880561914313634332045793533209330979319387956429172928273336452462879284304618888478945720243723195571717377722248717213562832564073007207167544179247100848376943706255066545297983595095308421320706784876127859063347930379921898714716939090258515299886296760414213452853747075282909635176726350377768312324565429655069337049779725953893931188600922752737539341833593449494162488049823667557707099185884658412990622946575813984223457175393237611865305009364730773680874218329805179361329416303686636975595706162737942967898506979594061626952350559201527061123439010176026364524433567844039729619620745317751609983179827337099940169968462130135128143008507311070359801638404910212399989559637143852631575015823109799012234190000445027305602268575449122598594430844907147507327063330276282811083652522172063174592351194917990484916734055966688125585687198192465301002265301460592723098683521055530163849436113783726291782342106946483583422515199448163122336442521582720742425070590912700995447198858119477096776385910299578034163595348104499508897406767595075570238005345333014653065698630221085196196881604742338419941101591171777931215569211872592155144252713623737606768692986300327920822693240483689974363423964176684594061661556877583487755607617663180823823643729777358306029121464309745415415214745768403850696233176069821632163822023351829624538452828946021360803474281845144565989820549805424685766342387944850199205573614756596908753304110509322477507786785002586025898048050452440303217085687226423881855215726263462199104849032776969623962651997029681776490030307339267463480360012980936123197992313348172493518416745687223022287392206736493885512341002544267556293979195583443004445416968741359627058066480714304259974997198154581421641156908779772583668702822119671152892793496515302840770031675069064371386044322954290912850776800265359688973468374128377935528214871680413074823659336904775671038170828998026680226997666419363111828923478269658054619261045845763020345452850961433678009912002975564024054881925480794355431357292471764179454372313051895992602305101509715099753851789665541440190957472190070976516219087738586269892988901408733407285952967008564341885914837758705911370447550433735848432221008858709971516324328265261964032278152416300991570855974387469196638497559318858633344984592449306913983818167886866185691792941564112712063721890288928163622272445198123342996654063801358607955839946690161997696082148481084969448338491572762238709044393785171839165513956660453021716950710770319730703549584099096664354027088542741763168055819506540003977570735163344875325510418416230436600775534646537677903780401149385985942004361874501835605571409664762529995552745507401524127481590236832821563088973736767687501209049463505265351102497012349935530490934890537496906734637355424073240529228126470613906932759613462336282345093407440264938600616495132516934497033295025013928686703398468695500043045727200537376648170868152548236108311301574925777035972591059119716960138410975292901794254465519354047011785900499203181443593161876896868886250436738857913475359989441537683857289983627411110454793656936433401233142533278069559561715989341970090345228796121644772863371033525504432230814252748991109422352204811566359569288473091839566461048210976961259909748770214331378916173620058117015955849800835374366563139325253107834469703434995479519416410886844442390537941941105137349006973555143585310252229932789459323898854516256494805660505067300844895209806942550710885099148145064697777756367502297681217007781103756998452406178890070812958766760562377129187661038251523087390772081018610928441657189431899533988119818148666107031901268173871416034500911357484319519340900063491216337901820107530256993728249394243608894633636698332035978740352678477146922982516036975684035700135548641851653545623826750847043308571967814475648273445741509662957279328648564552094989371541176983489769082453677453309089535864739995097050313350576114383489080310187694615274221285558605263762445412938000057863286993556857549265593159297614439805279353440794724303785837399635633810021836707290267847319551045792255745481519931193205208409678867763312723684532970371307878727818625454040147572820859201286362383596770892258682869479195377568626769734833267462552113762129157929808592190815783267204103532475669060847198822863613707987263903582705407644368350872830352016243221052801399824687844513690536763707482824853180056233510109236946427815874560030465253076383843020338619472662055124294068763883146933999195536144826366589512588886616641411247684501607198934483926658933171177575982099009743981434931875622025395608489439918196945998244882368307909198693811153808160160370519727144738697854622208593286073061641921009252208967503159213420599517733972692927213482272674966085728132404206879494599891475636058979398798579110169584498771622227063056321437195776656263611007496131976078572505693308069972644926858208254387993916306020933859253220835855960379141470660836229886425997402211817461124702250260172721866156508883266082786390033136797308930788023038940598148950833160732911699795351061702509125481552209833933623434163105884791279082046856004130332729635840919652188799870243027196221853677761240129805639022610202987869557505826278261052426908481259167478987248922461133242399973030238560988590691023963171744154240420655641909357286570020914191144299022047874213788451004533303606207677975037599648031961622106782137125582220245549695040845860554857345212122748501820058270817676205662696980450100807592167644512936822034297978915711902248297288496716996312351447182824200919376580137021680535759088807727920624217119884626185839467188263619840774902955107270027025365900555473012335205254581746941171828550649586476116306428653019744085442188831001958299853872051473885981449796252419474148466524120152086149799257385487435906654278760943693081961754840651834290448215682870990091438921074913145939575751496821458397085994177530870020915350314193877685023023361247902396122423638297741186121168307704574323334992316721473488829275331967348500254172170652473543437163967415119291396297666711626869418493151472009282597281665107231957854980389395755932405870875576535314609569677362199440188555163565457997587508209003563407190974218280396538176252685831000967088449489303638477846846187370498530249511022009649060380258309202104728636440726113633478298942400613855190508701425404165269608026788560413926765052017946963848269493854056079075051226124104845419789121422245399363335878990959479260412884208388450230378152731531155610473243139862610318635542794026489046105720737112518430617727969513671531749837689789481069759027203174754644060612362758985584776512408679812361852430875988409421812017988330692948074335698238626108634114974688113040658241131189626369546017603495529259484710945423862812265064737795048151949701401056870695612919487057880956794548045085291786082608921592540986112876482967735850079393090656791432011175091400350632001460509905930617309069157060060566508596072959252467752275681327753261516569665597442191820944922806574670221295635901057383102897709742456720252122775827394867019938901882884369328148495863127295135416473845353560856202255410325238098993656439718267203780434864556840121106359042751868349340309689968064940881197646606006108327657179485125042744345542104808043225298157887193107789938817510441269602616276237298438271864823343943228559526708540695174792474273830946539127337451874658522795455844476836951538308742557643869721609167413806075508160067763646238071959541881694110995214235943189611789063556727831562211061806077692639740558223866458770641861533887689840435152640149329558204863761346190391093140286091388244285045636745081419722731591078388761267784028496671654427312254311133460099385903279049243080598229895602963707492049257646328179421038453490720698166506446118474693103068620029164646275005894109027603316557100667935141692540471653501979727173723169235825490035235207435321276535080379794618293359560337573033503552575427983483756354186684879544686559511991719268518056168211582901509392435586280000441328874437295506690169602977098513032079780187226764632323329915462294885677560062380687249052712538126846695940764108162967199922482346377391897965566886887156551317159099006243799087278725298832354618128628830402988968337646135949363243140779948460631262748595276719650807162435958423562521623578664776013624099000949162859044040333430658360817152152707974378786711377552739653678716800305543021039603052195435615159081909720467318973512406441215886035971630629593400964781015872056850346379081063534812257253961472503732912585078277031734723852840852323701992927640940350266833418978211932392104017965850757259328377000274234022675518724024222161221119244988275778906602731395385741865457825474093600065645010448168179883073350444326859588390176361157029449664804608111412380655481576111937670569382019000387474625147843500392057761284365153419809275238389226284233420738961473612887024922218682193033600294959059986734696863142801089913227771054608526698033736833759944569323487837815909019761941156196477610262769107125144276229423681500668870482707726987974861635759042679878434942392773669271901819870976435203658762177947590850432197909454132639258554320915864428349940952890798197374977901990856001439040686773148538509562523034159885129654733484615308350706747887262246290511761070592243670580341347983642517292111841653177384781411348182435740990042369893713709736494913851528646951106158644835086400992440642140881022739386709919747624092781623691120224085357118588909121814847613217602928855533783591835129622207272777154303991020425014160243758091392686656509734306722566793244916496305652325916993445929825422185887746845309783983499778321509717033561934439177771745733187562670580288387305982705601906569162782803739452152719411871195519458895397617936194697578802044156107704527077485808239825223012970887885783431136986896298234475627688618354081437555065962533990904792117620063824669424831670653129963022628514022546868643875940467614076263238853613708164096742811910986157153553648974259588355884124804558537895566118447150402820067910893036770314795419052662218817864684222303036954148883572560185923625986731919198907278661361803616427229170676611245666654422076079761089940689274763260230638228278090453796659348117031774200203079186357931810186977667825097487435416672858841266034950469354835042653144889667075768261841260025913198327484915704736030140847233572684273778533349508684201019085642257824443156805998634523624431866294560293775326038582082477187286352641070946720188788539162282596641509957042010271034949780320996546131344934816507736319580297406975975215619207745769442809798907680041759750925848259825044086370076459703077230089616435360807770028026118549082293930824866783602991502973470779478850743899580835632851626541502044212771348257846157055246580350656464906165161705581700266979966892935486699820512016305740887409398904553276158643074448534944492258183313459578622130229814542142763522974435235256082885996148430518807615315310071364666407964715526246157089528437371442926471801390253376712788948538409879907142203640396596608242641224544302058974060283041297662016377745407730626173649348817707372240317234268475286280672549044395434699778689701128369106052072951073998594494000343286601007476918696885342370354610794965569026502083142885800446582428209111416867695652302083587323394414255339670945768751387633572845040787399920346274287279575878469423883294490320781041745252948642127541035999879949911786067705882383552877258347038957223625608261286722957134552185811849680680473472436368547614475174914264810715652468397844064943883754005023974306008642981518606816407306436167885320278988675934079242396941254057808959798331290986791442985916260818138324378395275625001577922610008661234500840790001978824847581336006403315837433682261915851470194594504781655833022150373952002046128186020074241554027636439014783783627249740104363295864812486987968287647658414605404114949224991226686865104695956673831921380740476279577675229642706745095050620114677019991750719604158943007375302608792007273030052082850228284002636070062594451090681767449221385613517284252032715968278909800692268472333767735231068757523389915547350174488919501068043708440715884497524452548249977840376342919548118463982227294271471536320156996191789439714529116043817190703263718508169070554679985771283950840126078733995885260816390496518365794262134138229116302918875481719926581383957777537900154538908915663080244322414013310682556405311723488003195162641058039029394954526094990621988229362857104428409864190153563482511211670943501255784409885469238378386060165360625496325713254071793252890106829828681411660538105205849832650220349667944821028337831084187495236438412549048382262561115859138879478732155290777530028012186654274240089826775103791297377897508554360621331755809442907860141945182699484813031425117556595957742432421429253942211377385074870951149259134634472214061133845943699543712592473037992180437837877006126434031868137179156682505320248250598295493792648302339191266459869958591906802670398026536154630203820029326317626216178791140455424871996886821490387271851970770024687472336449698136614044563638077448745001294171281949554457084251500752887691267165404781876165295069257193176880394547510305550490432593151297499995502331790267215315046242970663529225843503855615770501520294383049500802611158154614471321726646181979031953864516098740528028670584568908073175818790651575570236420232509079172233705421500768336044440707351768073874058161572920928565575239800706665847065052377822255516264588033138495858093197373313268642870792775543645131530337192432255068589610193095460970445030013625847999184444686958710515996256934028984172568014039607420980553114245589445053381028154174101928201249690171478949015896067616730163103510147743557079994452277168451081199203628441534458180613676190591735253346901243307898947158913699646630200573189336585637366423591723632957482375596971349827320125583980324871881604368763395526971146060501259095265938426959053939549182700144274234675321351861510389299153656478285349911579710481516126896284305863950036520379371235449169538940221039205379462159557839981088757142638801804055100554796048301502611660889734688691471192752733589338699851711820303144693008491489644673271545941662215473010596926840376360931080876448125551426431509849906337095478346239231083331439980618236054559978661633661767569142238178123972069183182800124995476796678545966216290048857724782716599749665184890931184628448832101524270267647543950179641604970070671187614321222005876687546011658150612760804018333561392952572966963013159568180234483609674012449658936319596306868909483504324169491674893634771284010671232155281233236859562827391554750650040915006141590952408109962471598334397480593760809393601636175877270476679085849161075584666239372357215884297482565567881844695502417426655743238183604454413750440419623690050376604384173029544835221852740294695888145832710970665828462437214878389641482800940097618226692972714992526449214317279358359162090350184667021891099162158694427024396805470723561346139621309688877390886627159715065536393362663332580584094610703749042051857016634494824156426018668725235730115809307034076000982800479078883454958200376056756822628556671135935758274900856544031693734213702675370970694438281624019315883362720361688206848872117701275501812778048327583202979879774259257247851089297387367838253553331282124449221617723607562830881376537431997490377534981647332618990773636776126700667250227713870605073286541617496606625391996839971506412145620176887850434450526189048304143311031433934686656663719271769407593170389327766188630480961723266796452229635304293754838163842321929567928494158506635804096156117979178256394598849013324937706544925080515732920710815295206655817598998480351420595698259387914013546125031228481412317746359938359472619605363478557940099922703383316087272545872744822471708900198180209589732501122829926552276288030268202945920648104503484930803621687585780080776386829066769297652158606322949223958603803123156849873210350005130457719418688778420839875997965448491794735359281088305030868110920832682421820038459246434564911958635299670530295182197359059577563239724217074304714308126940607495213824904659198345306980148343974462352789956287343873169577444803577652251995034679648218467390379544397102020032840180992277262721293772021136362516920070732637166752560789557720834294385405536701564078312662801275385507313906746566811181703118853719929192043314920438033114746313715230658397739073540684381244676642667735633018736308844581983993803394726580099676120629804048889547192521014019238565171901877014887098078344271742939364047302276218024604312928626061998433085302006902669022198037168065899709744298394514086636530525801276748915834492614983424352571198637243569579287124583869643534899295025914318219100019579971638471925367593852340781283324608387712710538028348251914475449913889516239858159615471933278104738651341276764505471731244720521937402285624317586479170272264579086368900745658287405180937832376688696815892030811787398504325047700114603562030404615980892678133664770570433786832387881012346475992301071783046017458237755993375992442919089414173810950652149396407201887288953900874923013944439896826950732431962534756288423529358932136911223805259316503081664134398288959996928436203119814353470095522993555226844462263732349136544430743590049347273870272349668955882814826404409239990276772426675437507932800280571298872818860527017320365453476717921524413923723782291644473783923085076694813636596222706896237820443418592600935474751482877332879884319507247076632319923388200333662367379257669676041481004076891335532361989418550993657352508678589327943233191900381253116985017712577182768528286942603918853354135289757189832818570066279410468768894390609531577339601909290880038244589848949223429997530449142471083861426508620718800006362298970330708160001776013351911577685196918909996392227002282973312075134768896492435012706483731545609779096268186300244767674182664824251990836353845523248767357102994211806711500036785450251601310928558320721476236206627356289048257953485333707133868169702002012075965300613290866874263792377741865728994612817001544104486051458928867749970220639672924455978288575215762195905745796104634126390389011310470888708954193041382354676252301654333702290107398777818100906331135287482652109908766583524931323598768140753252268499783304267466137142830361169499074195392829580683710334771663443417544025116895567839739581461270775389411539038940695821645316991706489363092069123980563539595309774467250826590315659951049978306823833181056309895937200723630511602139123106113359428979369859810960414720956293316523328171597629719565044003669817505410258684792449000954395878955626229969023442470964334001508277034067770008349309859381585692576400679866417478551419811335994278971249498261671579605281534142580424652955940150804223536711578221462635979411246960711918461780283606605272118251400341013793501732320729135340314696888761005369844217174174681170425016511645284485616331133696702710544900492689896287757661461208465300278339891894341545070846329183064798894858682112109376895252119175543257745858769613660671512785137953878222022289712164576282920558143707331721804586588836949680831514792265852219161385911060818599992981539869006465509077732791135699215086398051617919943427331306386991579103395816387226647109731029941571019835763420815139028738299867195658252400401788288278233292802202553017295356959169439232908639879598474841912580497309467167038053429864276255689294644268671785791521710878375783267634651386078694552655611273259523350825895792215204327607903731465095198664965008780144103246896164846862123749911791699611529811266481915554972405121066709993822374293237725229485750850116139470727992552531595129965141817968255442821426718651183016285917332264714513051037334200157638720737372517511328815150515039737301920311975274129385704647025011026677450330195323362578264406390015396089664215485715368182043825649770920381807362019629714005738120827780453213289275844747925582832747995397765389857930762617741253513051743985546297852095349425839659451601445618203050819759188311716847887301563725781561288499885492044983540604495422702581277804661536607989064127846357647028365397221735570453295284140493618280501258035414639156245418598826826656336542629872733753348226504559580827528974653787950261441485024205331660479015372292188756129641803821063579970367263977811007217318201900708308604867802847427299967928767215344657830239074589804955352567795815770053169968319307033725023868395095228502785995544302496198353263863463651273472894183243219607394426546833891459389376626132367438940061551789369158404190811838818258152618963460085314075269422981017217552934207440471780667641063143577997876817951817487127928238012867215359711420789803241143830291121149995193710710157163410168163661066581590549083410474310629853557477800845728391403516536946336224315132115912214591955726692725316996497645134552998340304208013982985569603464455426216110609945887866540042650171812142405369842390064312024868607863580480150491234591309089104702306279500974047534236389629907891112452347589971820576749117845680322256868829353789434590593121863354856070567931305136462680181064060426575185178583348423375599341448041449138506407710282914477901681155235116295428155629507327299215320836965782744690523470807752022380462197881773293186439313216143020401926708333121799880902788429935983947022014113872719455689828786974176564241623313827217023920063403343632414414410020596057617506334386408649610854694532947040482694321637774394190305407137107379979823136803867446458744025232155045388989116889249499546995032521249333190664622394502472924770923970328773335461318346498013761685482668847845752526852794361508052638010103895993871030644498629716048745515902153562562221215442096471306753583256192803340018453472431920349062670833936669715171487173170695637488145550728182213773626654917980342362749579233209895959064907223934665751945391599550917545140579684157574960123415176036445731155109636556713857724396709035541386390487020315385969513796909830034513258414238057483413963116717315206830264372567487513382707802057313532164046787655582343433975752452126338694430711966309135686911754015597992238187488368743079571221613497399705701135199400415059899950067141846223682883491369645492767377602188137467899844316184346078209187866073395186099820800998613474110513998899211282077126337221046549944200366654960941297984064338049618005303511515584695004393819135109439776629289271693526750081029755416622735891384107133848656373251010481440102957228130232015083499318342040136720308922762080822235675122991067825115608262869428781013606442233370535452636062928649385286918968153315102064282582259770138626452927888354848575306130527737413979705677405012749467975080738413477895477613094793948201921753515802716898069033143309885192797424336267142128402939906320516539467258652689661051358715959488960816766030684264169477773316332541031946600014244712352483813510646065791545523456491553152581195022661446594042249746259370954496439892988205195853291963770728549436004556589598670888060350240454083630968244151611581002916452447467501795163447847398914310809387223748046733087279608714678806517116358548982659909030934889989111966706580429290826626963154470631404626578122049432308777039304713221648193490750252946893976371385368607019265086549897721992851925589871022694610149096505054057344409872129884613939685560972482803150636638733050830947090571684294833830468970517234594096576070935809459073509644888819019013167551082986840354062469850482143362197406322176658791900880035460828087956431534801616924403600213873186575311074190029898182439260762805924052270751997495274905975969209385729504369679962388823724431390570381634467496316594190282002264825128621451015477882932877413081013214625901256704746397339367638272772827467128778015890594551214672946753552842453658095363115540887797977404169957737091560979155286554567742613184825572564699510052676503396553150929666620532848911483103932748251662523783384649495290542726564987982907495839252956513693052682888222910590887154473377719563705020044963027156796832297945120758191190305882906997463450679016748121753837952554419441279430214335745133103175388566558981928185659358593717352228833533956383742668500494926590114989534441718377025959297150196209998554409762477587249857963401157855202969993681879098083119141930570667191130570451451181130060550785812050577017275465524970369420912085156135940497712766975385967906865418652136315369179944518561966529832367129588778755127619318053401430790183358675366334942499281481453748844436792799497971226267453424295717410809581610109243816204308209592010022477414837003802709724206690001592686746561369500527534787988261405987384151016365406656112586698949073376744353601394476470580429637565013592391255286498224386266317126682049258699799461017350686036538971322999596423983140727763000299657047277876710474614556790058633049955870725659260053900459754843614597691585584347516627285177181950811173382051430365012349800137820695342684894435827219986962788610261586719601849065609524827426598306157057862716698263114348111552518322647082170813258923334039145541666103208248398903812069724043842715436021137722075647311190005736117130825805787658682134059635444806246651832309389352144590395422433473734373350720193497221923830861473428918301803674375321647133500374596249150993517605603636369531522924928373063546702475294546966534087616873698769013139318334036347870160264851740422964506152498239669872009252819120623636523937310547999302156637524167541344111582202385561132377081013874793298541480360102231017069534580526978882650817769439201831796129492388539330391952367170761843542527195374444545472040692782408897474240937884103565261518160808190264730299553840394638417588037535047954860341365795968017672114940270275000358086978537948721931790414680645442518896076849084273741172489176231562232709685833093518624648909888319283118826207207557287751355449107741098790117092818083230894463107181033228319801642484143175580383959330042457783559798300451298511961588402563599639807221909944625138587734890465670119894091706562582808732630720522918921302657989038659468745664813537937773979386830212623403374490033257914284473288339189933639685050712627896347241308504957242371211421976412663733894177210705189204610591432461728402314741788285548395129148826114216993073481879444018834511158236494634830098004742603536370551879192736474765554668844349867232158766705640293073053951132313243570381854475840652342355297359878791415155748602983273190090137593697133440468873866429546112205296896755323281772058591668590667942418907907515880407060567974874738822706023569385686051804228036710125348642162205749792766167977599013102536448684866700586766544070875420610762060559837240252961399386446159406344130062199872456802464756515736403149298643069027174971165755433161571245350826223189692740254154154537774573223868209870010008115151686025111219335166408562085656692376645019124868052989837721760141798959489489085392900943285698484365932392027060422169322222293093972875384287550079764908535947723858185827199586149270690058560005605143274339677549961366836286580492950924865390719496148510664248091822263903703395811269030079585527684316695731530128191648550368630239887327532602288975583736810737878399017638589137722131316933822045112370235746253038297143800075129690607276402300216356460696563149820526019881595793433078043466719204386758004710642925527083938986258091987582992213247419313342500015816761208856863330591641806283712533699125501855529917862970850266287693985760665253342034649793985108869801149001593598229329718853142280631116909251836455468045606692860563393376709618545599624511089296415951126522961439360170457646498199855784015247060251329990769627956644219840832171480618686639294573255440002907778539424481830971524711777696666132631826641095623227963392922371088063423660729644338798173200641655066550147842769023905901601098497939189708028028242276005570610683717486897344629291152951526386594621014319879925520456959949013449587571577941819464200805633175431001380126065220426276405996735553934365936960029354869124067541258295829715623265898989294678283412637317710897734899195459663329496860385958301008725067092475850436379092345191513149913506294176591092723051879357910949077505290479408066175949909267207951988620248436015595914643949662999905238821200659964271263641400776088095966180087244449317461381288660359098099623587343589467169431031619076714731659919686078997750970024867605329954444844122939616831413842379206815588133882814138744706112622584804246273591146108792707879850025537764594574622415014247878293697475665584684947574344387332915597933226021224418109582343484472433795854939093026130310436682851203558097805375200245433378168545711156804549690257327757028051996948455149419136483289912889255614459942681298523943799192840269270965628286349557505093910021577398262697614576288697188711663220570587328435503326381654009058516801847512621242702888446995303312525132952487168019588728354098891587874423451882041223052968989713409185282446741979688885098362822134451833716551489134617646694547673263674607190322785272672738616266505144571347260176103668143515145983867509219110186486975851358518419434625904775435599145827179058661508214539268365504658986996758405596710795424192585827538653502220898313513037980945859761063149671304628533667554006145303564453663046474929711403955291897798394928447401735222121726093438772056205355246202945712897781465970428674442365545148164024926870808203166206118727093466505754711791641503948475229969321428712070289763393651440668128068507966301300958414533948412016415958711849811831405405398057191265197225214718180851474707726375963928665498997587142303928254714755901338247513766965373971050800964934465680952840713034320162788971370701634172802892814713841947511278555872338739326071396310891346568598466477718077702217236569794014486474278553568860685810786079447385494627679141182831479547186232338901752506574732402211084258614544151708926246032720581207036039154189783290441240962487181114430041106291755290955710748007427067432527666782211241537232324682434110628585541107806669034595243794903200353481046023136054461735086341737346522513345793629984812159811418086848592857110415885497660642277708637869110816831316350337781839330626669792049292894922951659771092409316562915229296750956582572423003881296463717207092984218071060741661243576423565185267798431465021785272279235533690702889603274471875366757740647529639143370382289139054081378595242465385955049348244287988289089765063862965528466285179219724539795268283745738033816041718007784297918733723092245660182289260084388203043121178436820847610463922823133934866806255953627328766215542818531580275329556616134175489332869136334391778697831494496684087384095165696202147468376367579346415777151909965214782897499006583872175905473921414172460826625753537927349006196324474617835942916461874545836612848488618888142969315261875512591220794012239911646647503196044139966083302889920370755412393168800389449758263206855957379945229838909745455181299080276763094322169100244924950789589256337761113637946673928681956866334045539334550631801596125543608887767379498043086951019522479785506543109470472238236361186827514046521469372917768850992229652233236615907935187218011906060259710490211136159999504925539439289756100297128156358291375898976299087277776750277063299996994697783319540739766691039701759357689056678252113909819459230922973959763250510826777290417224965536047298322584012754814636590797284666594295901817778506373255853773333930227850039087924965166473385135722757331195815854561589134903652709218887396234181211098419937856456417507624812797730204157260912430628504970467698794757931986584317280770196557169675610253604258354742363767554158032241436699188040623763869817963076986477036132834893314484323884458645336182937020393271410935966190661865994666236459728234173876763685679286705426671780348321597492202459226494164337759064574720902430133474594906464723843871321007768341832147076516901815920519792337809636962341519979143289567571839577966772037762488128494430116185607058727109862273528707169181663002844827362199326401796274564705426730128205530821074560033303377321688177057922302955709454909724831371098175426319489969156828850097667188920233257398470914704981438497637415848504333351130342623922746540581947020705907127856769234548187946390347543765680149419053200207595626856865322547298975664957486271159899189467443990255257815525422691724312796482487858451658234283842757253822707329442963509945218341479021632564565936867164098323268823786701022334975968232180172203231105538579339879675830409536964581535131079485633050198920301740761669906668989128508204804335791505299525082494610716645694167777763189964251224364199575213181735195737900197079144656823220638005512847833295060672884299470844882283992547403621150996166835298984149747240957445634043863990700821119483632460018235382117752388658522438006509302146758044865656847070879801413172458034379374369940030730987887127143024292602848608802345129734550624267650681009181913855433435259016870680444708945477803576032526302956541245359311582417905148220164502117775548446549544307478101757046559260760695669034210224608369076570457131244821838569090749610336052673760605021479974263742829070484794086529705241756694703634320218894342254699016937082338409169516682631160352338927715955602569673762399313010402287797975581878783185885951469986597391605940161482559096426956635032268609904871493807722856004321238568381771266930103975541974198877998871043140184318586913588377001150981901473735262014280816008882955150541268481470957904640307270995462652180710675756810765205837734701831216561947160072887618509570397344628203548821839656574333579477156184847779278687492964965579003903234081580962940906918222897245364013094631674169308781123994641761033120335922543495055160125080192740575250706339990115246529305319972212019188423766680036650112062939821040005477150623975942089107185560529481539752817295448502334602544192620397608667163526227888713157830347296398539989028365974612027996855418764609047467870033285593106588305352799456230103265071788950531396819850804363985216307283981973612122262805086110351181641901620469824040521971006817793597676741810562747563665640418690966039935845352303098922325180551838270480115611024531710305635182222968977164489285377408113588636022688576678203374736776922547449637876488102013324501897006528566571909380658895505272593208048014292610417337007186339265923540182200615219317660511646288506099215907059553705890705574663731778719451172333648495034330642901571198128706758171708241127952772738248166828894830554297877860634391727656202563328847525316151446775063707312864876150320426463871803391303356253835407919233735966852890760631527219752300598701279790968055482073226929418541812865834896241126138967307362414982687846840402721561637954970752446446200393175640197411638060566783032349365423148802736783880015856161705678965991569848744185541978620643100603946539824269751542642142178761799199116815315204327733799628929052810487045891858441473501464553922217759732071554371527955151429442650535548224315322360832865450388776589487901884490026843989009568760415561802494516472246098805029443572472042582622855768134795394065195615353716116969809451922563632169506182369373946847557844838845815634138047325063058582942502672907833886257346265909382834198547969516213337950074903426298602166388082579957479599168049407485449440977204612346646372222463495110264464765577164412609682713672985030219304128695678643476303772131980315946264258323391911478476533998944304631084101027493575250782420641283479849316038101697029117544547963647651828453735225430528221846783774145271801242806770489527756079280231765265523428274290345720252064385277622174296972396660336960132311221799508858182890081564055389214018472904812341611863296762796311646389206138877536260636405319639471288293333949686035282507317226199364073157273849923955457991301052978929004736266093910418143014755570958806796101576727300185263274933672066020813252160633458264442925159966978938521849068774566589585668288954129769079764669374708029106364381535686986307040686364902321353682016116502127407703008910585651614650400348026484542699682948893697122734258792701304495814252032948171485828933881760319131271356022178761443628752183326612555062263482572637538390515102108407872778878076129433655096113991385893889385638749810157469782591626738562302835161019078134143140509329299663418393862303847635721242131162339892240586670667249809228812129007599443424642133720081441611486309016339248455521598888443170993103601110060571942295332833232997070689658923045088635140306136947205583780509478806031420314559148755537177410031336945609003658041304418580954356518042053264523311121929118055779253533562422963926398837384370434165578653702527971584171867093703292265026956126403874537750797943460025420232790053104893745274511975436253849174328499021324199755380901193094339492203574876486471977874888128699874200753448550937231630922969046834848396308851148384263997963000644063485876857142925890504397586463814211718690648734260528732817410743809990274623817152601423535215945698951077048456141585565484622664015954391515207464336750499259115687105887920851048095524012446466894628198675299715642013545536435586167940303843410931201814338742373400596619314111912988261910675542083290161285621890030545211284262600194314664079545273941711845031111046003701493406191648655111048357194556804085470674347461965493796381426013940257261807523913912409087119967565033065120908731670740098713665053195633931234971514376724133110452315295699589580629681246739342971210354960199927430347010825064252202166609846587179432716439755603480188246917568480897582454189475722435120756507039437460547311195303127079254370976653423457486438377477971572969285454251797353945734237934723562670636524163640457993722193233694479458219919354597678734946023104440205381270301689812626444560925010330084043704168313889376217413617789170731915367616694366961050646921911620258324788565023129291938255191658010736717356857246940633419843045323737486182309234109105443190575316861606473536714521129116698074932745584678741206839729776275727167257177992150289942604904947072871744215478469216887903619383302810722453430673134253272300998302133494649844176363991271587307783768200054485023775420527740702081906074258698836118246498903905801405321501641956576653233164188163797848409616134170466953904001061871962176990445504544190583807243802410769940283225984641862166239949825174839291515459632406227097031116981341677100260858254874836927618798874719064898218465734251701545587246419916205842397934069833858188210468659340367215306312135423162948044957158105071429862775041614051488989318666039433665159798659073165083932863161223545991197137750145585170025751484372768517411626932028390232604013939628587386224611504625655980863295547726260603751128394935396742124136519056749347487933341045835621602708859409393389115548321665480703124002403155208026860145195555777754710265980778748602463690573601810789221294003333085469550554413585011534791313430316979992949155461238289243810260603580882788081207554909462608012809127264728212659934415828863408145078385127639930599871421189100840256654383985692456386899988033790443082917785816351747852578314038439476311647031732851713976639558782705056704554152694369906066987303622329517077115749428605552600553089240411426472540316584966701020608508774117636926019851896743808675035260233379488479386435631560520819775275755810597789490417597707698837768436610481394818897210079458571484904983289460706310041232587773953692147578716771428983059602968901416573437944992975062735321409330898307040852414396841758799595599187664885855058159312798524612900579946557678611245539131624473954248066693125622442823960248496127579634164910043444339987887904510426393740150918116026741314172601177448322461149231260948252501302254341010530199027337235232713347725547185629843159471903400268017023267367899388857723033922661277310910940689218375000200233778198433571180291365272247428044003644423834619473061923048931815269449916016917354900194638409076712866654262418982770902279763436473713219404298982607365533908969091098292514350379496982844893497251620353641000614166806146091192305637398782555459098236322044619613614131515687608599152763144307187614954602281770707417469864668142282614392177153500282282567160413649665568485057878893175050949903501848278223943981222442334482259195201083500171492986998806926301688440681499062398003127316010905516049937290786418788783962131258195306287889214534522941907742240624218201020386565599146572761375566503506483267214775146317628049303358884058039687486992347171377474523631474823149902475544347177803219882235656294225951857627124977718546628180575985571352638640066071376210986478468751151515800643742418573263432023230794841581367712487159853106171710122846425718355618791949111802248487770679923670470352728634661651642021927090723308695954684154591867386701432353169280581995204057508744825299403550740764326198227617605602846062111950226969568464809190433047684060731706400012991757029336998537054754873310274975460177752565325259596830462795824828684946076701570167142166208861275590379608895921516549769784952449787084820925842598594446564371687602194739681178764943392349912164292623140254956688829872772029985350561373175678183762117815304694989914778164028840115606367350152926025208940943512828469221250972503117608741968869970324568873734738452714181408016785972608968729286170278184095998428554222570773484116541461800567706557186189623574206418784665861874569285801538139181281912503525051159198355898061240356689615775593632423192539510368282890426347803134612271881685569248054226649706353117603271391593938846964229876120337405771415960837132582137801278904208082472042747006497743229619004858625405124063977743698676489207838940638091988126105117350045490832732732707981158716703757977693368131831841359519056455625163510032368685044151647074818802265420661023514461962871369341694013286453582538846835764270855549120116034443043847227010054328952967971559910259731375190556949650398950998254836946221438818316130756645625615894455730223654994009270314608914524884621029608644652441843336504126617354028847414653667613075385939164394937374972730103867377804511989920182810991868448676305876010054446013841675090598322276302194048863468775934168383479872218463158115665273546664230111603447159964111522376352447900936477058466971789769195752992722233658306853541177434588805821074633310181050569291056873036540331969373483766543808948407251239587515874502980245312284548908794622519659455055500943939242073366831543552446581261517640731441336272792815406769764955081145775240968667956797483874384992280865343362492902261771871901217327561428091412568509960799514155356432991691953194808060345727208908592700521334975377380772696365102469168005998846738452892150869573620415725946584365528648021190815306593449073870348905499960698610403194173187018777293181484380796783818448606009999977803444134012079529235011028438727721386253487245919974136476529406879751131937617601525200798485563608590381104763345906788662835764405253255336159780243821199573759309747205755086399495951840244021821215728865630400251856792951933745243933848835968714846563574661182820487684277504060336592016563665400880756105732645740859431033815451852302120669326913011977506802962092978236592474512164881202947154951649910510963795327128773104000183102709702214989897418048106800416386621465509935346476690654444416099646748139532225153328804824254966764016897959645011626373650393426479133564074233855843351131474525351373807159852719462325045203430118979161607557446581999944142994490575492346215024007393579587205032462160250526651216579320575103602807781813557210767585549001339242319165996793232975585621640262212931376470077052511765870117377675834921156559590556647529550066981148980758929533700453565541896698131915107772921392435896893760439253295988210337998569786286035846353524330579388910271075846907435161545273142929342591642931969411708589965728962571102469496217462009686952658870684258659762481343938855632156759616634409037350039801029529829015199966511630132180171850259585786578306097231009443672898404561819031561357554270212061483017698599021661475259338094890718110827409120192869185604171260120975254283889574076340536091866273012154783327884448652961142929774556854959934666661552513109314219064467442720386209816910233717799331845864882121672095321815476429782618305709047203120122873239622519365151584505102394523581625661150732812059152418227954830042121077653775738342857221879095313682407158198792238830938314511403941114986703851332140210397670484801969711403964746744628239275486437500042097607880637515813776982177851234354371617569563749620787863661395952701714929113652716505622240021139950874281287839637484141545083197821943987781086378749381872791701978935402882760758355038485623210272205012725389677433722915424044159924051445569132852963523644103181442641654322587646712161953245337894136253409189882259454457444443045022484924950390374833583884071888869792636210594591313256758998998591417105084282420662052853038987290622664248351876022295973471814727304669791003127252452779551092525014880081029969324458343528222508961648251413159788360230146066282063893224841589602162873982308697497651421713581056424670935503487450889748782845067262944624397951079548406796475579981247896202769745553269108370818853407574452826286957989227036292223762176092481587083868120539809353848420675706976211980023742699280660906651665580242870033411605635551311822155753942695993580012997547383655041675328613017220550464530519034618063512930602628315875258580422026093625749037053537413932953331717360789417298979974846254409956537934691044716007741812382789779748035764022232640362448601392399160260429390015945706822742520489565372274071715666815000016295021574832806964020737599099067487956707284544595758745813031866376128213812751352453980191463887175460658184475685368332528429112877806337148490829746427442889298844905448735561415623659928852181897645264004961663839350080603616793315755823371492614009014034565072633789050498004669661621092623315300590658593653120366919285951292512928562615700021396582995873427778536779533932028813556223183090654701825938460655307472416104837248010735960655026497833011108579778168995385996691573198963019660428974315091031901177186369104024523532930143069883867933092607557857633001928527895815964629041139074055859237547314450182724430315954094153635894476833405556120795509144407340682124897524896726656276979681580666676891569189150243271453531569547653933077773137248959751823883956394585567209470332715477294339714828374921384972627770367992351166726661692359193769533581099607140777832809087471984092694268113013771285342120143427548622627244382919121520449068133056323926994098819348609895723150698615692165805034759838152475632685582183857441560668746092291053205480704453968108161346663823691115056423015406239253396071605034177772419393195476493572653704319795651430933630122653968827185401086562328284156558315663357241687415115763794013832348973171533452452419162700911787500123501047581763071383391305775622150524286699210660053236534139894495047323996539902735066960605636405184694511419488305555571209311680257739516816505281888940629147935299170133033385484061414084962435165996564286357978363222320117451041261955219249892619890069985529772719878733294473191161265718206370020624491149148379824989443522531552354491653973170902344777391917234899695099770235243636201281383092263965437404366382580214492690616202449156883274484232539882113199100783295960845852260186205661477259153284056737842791186425706477159235298893217666655504158717405118935439751224877490449660899679711053234103453193727034754119785277528807161672331189963904497585061665875451621159108002553190871610776576499490951099810390453429133097874261161085376951940670723132251391246015005726050932991931739206152068674354574798108389613417656806856129103519716681308534725391702545682235786001791305972342655702814156347488039726313720347505443505178101101296528585857414499291496931199186237759424649966275134291999507489945131304572776657560402236015459068473753088436300737539075089273878281139360554676361488740005779097600582910269046113690327116422303013193624623867162813535982416215132543638596530063329622264632099550765460774787906744887699731200221003509174278622396122483781485754950962718472260469721550758878769240331370413677910468300583812869663497689608085990462698604557958194674012828793505308947749642211931779816678718669148982046155663643691297673030279272619040376010500296061475272952951280005481766540589630949294640999575240088074771846768173589297094490669664769940826715341201332803099823421579461718713819046577713446005767976163363426463009300079706755522005535228350029598653602698068736877375718952801450367712285375260392498686991502140713136409008982986194684531154357990292561358368830959453725500838276298746363308053852941358253369373127729271909078806044115869217021060187060311794856245840544693000337267349655826505010906333840451909650241293912277826634683827130506016037093154299728417037533971689500576951807590416842134871500325919479634660885927874799445441819135540392789873955649768214890567822956522077935283062194883847664754319321767323383841140385373097427321857789222466989377446440221340900498631805517842569743508097601729393553414613954499348707087004112524929016543208705227742347153201858538817408369852952671521518648140632904776199277584781584343769802705521417516168505035652634517144993005758446074955714424529996216636783520264076256683892171677331331033345555838375074565408886548096045576678527239969652818928136383865194123698431351178039867905756789382630151800447968242654851085838083625547209709946612415456327105518448448503770719904257162339675823242208561795043010274440020652572681873975035135718805834611065938806348399607011629789246363591214053834426212383711442214580850748759743764965299749175853148450726090671582934758759310569421096252324111807837258980522036905119581243087716974575303410910507117781747649309024459438635165794240930848580133682635171317787751014115565160899397792542747055407690907442013071126106488972489926385731396026166365052903924169249156007179172590580535844378055875400957549865787588774338061530853466202012289279088803955533875351665181913832102313374632960596917892095059527182567740823942316921820919627063853075961778374635252824267511244187866424884128370300072964410217262143329473914713758679143302591662174297956936064884864616820398706341769608705946154358031815585818829997910349936058102594443680922898848322088670134547296559525107623818686545859195857325866361523803731548565870500671740598954423656265479965509236278182916041948972399704760720162685391126405930374728712798734610713412935399518227444951285032474408772354391449932022136112806812155830861161110250342323507627820803043438361782992824798713287196385566825106296328554619214269913036462194673845475715586180074989377906817995635960979560415376115827473031484562198125218306470670950297162233265982620975660431633147783298850737852769676522257185400451224133773386855915827649703114933569981292730882229445512825637704032510296121540858955866129216468163203367048971468927194822960522401177236209531428720653327093500075352485823025512274258368420555574510578861708227102358912706472853397653724224692376461286727819456571882022280460083595032163997805805500197756229342958825277816144556226767703292778213530810844341736454905712311667400190977545578880582813851219496553741071918190026683482534821785896202828919366214365475218359153315811659798971462055561990674297251439655833231317978740310633646044331281000993442494263838465197718078785063804043620909910273537739939814617900999931759727325009132968727612573972161738772156381131306802788791854166720054310838153764239501833563775236281164471345697435095826641385284054392619375695570070150917691252926216594449810889399291887621645335921967379851287752575384247790403910451565689975200426661604059654797959728897263424185103793998236772643154520324070874211763488769954233747809704034634484642388121009740313140957558019659528856963451906838404653222716317833298762541395104393758244653530434063465827757958956160547202475305065241251247927345395011161872803138417205660010798468397433530285392492103265266256060716829823225584286998357490211662998046341064416281096203929443236490424180775334776995961946959174926799189275726316793019839361232094406971003355185448910700848734177931830812509250154311480575023543373971799267447477228660464376169158234704178277666281293587435334995122677890215830557853874899510503389866999623854404353272062688657163463685966171714595399700963093735369260640364756788149917955411282546015807108759666459021380736104985052681713257904499474506167705806700075147458327952768172916839526322677896314574829210550148527171159926255756240650036787558739923709924673306535735644696902075564057273080129575570964864710439796023866205416672446914032703631946722022199817992766625832174099492925697250748414692433654518094340585661270380440739416238778843097811654174483884782182426127899407586519688857056404735831005313212923088797709505677834374306269479660197299679835735336710061155240628772358269598495104266822289489280683678912282249343590565086681966634995128872153607311107695455256042159517482526395261353163534647256959381996716226202097417055802884149776914111131295295698588068362021150334467351068562148938626710564388316326042272015300051684713009587622611973179068995565286674881147773032378565983292620491078938803432411412217653770181424894691841183469579406655641077208034390076833161884321423820505100954387279533461615186587394153262892097195039842955256062626935197100844740272236381984473490172834579734565309756733500865269907668094319382069745074148566320728766323626640803609467744806942792399474785963102545596091978583782375202648491751393894342143780705204130832797625568907128816134690714446821279974310220165217530161818603822504493218799258183561190528456321133606443672326202363209937042492171512660885287367995734883943249419223332840477556612656479835679618642989300765925922145871081150973557116728009623477319402791528867970932012531532374679880178757436804027002720124077138161925448852052066032815989958215289661424752368621884834866420882475632923263230273644117580528361705665439834916517480980424842880630302355366393409062921031118172080950319963863883421417810784107979269123136434626402636324463180552819811776986344829680269941903148097308253853144510876312969123397894794694050574371872513674000185076669105576518640338398745378976909376992605462254664085431196161925488202465746686230571004892549296795900580801888130179131871151408944933216749401759134654935840561927261316551109996064783712880052457319078336312135898979007857409217264979771812626924396405273109020621236174429499809431998289220555660204329176983584253383403421053561646672281115910600019185189288181737638815202975050278440647047149203254685994370239973719300406876415836437433963091402724618081078693957007343650479229490328366191561492603717835421982005790609182562677889699955418597172305633215388284673056583420294455104882923956742100525472136416325479565704774157119820262418833701389193449584921005069317774119824250263082160685836425328705930973650337892203972962746641595016191573087885378946661319448145351756696834241159759302402678405682824972351331273883882686922375806002677268735579940812600927661020821992120816803081728871752626665287992507015257551175823774124930278508413400187908665919579934451850241541461778084955903195765941801845714966022304894007552165119913046970620705188872069371221818752908116083099727909745033317603961367427937736498434380763001110112528755496306305323198683395727595391352331853170951178511251612874708087681731027672152711071803524176918392761599543638252593463045002824893451747103391493695445096550311761691578138852051502241623447679687593583834190594111685983994639276695331963755294000045890518735535253900875165377493500454292276467160546919721016424048521694575225525492218841723357546155216234424835794216532242920905501284799706937782825045756968941325966899009973963408430181132471670092917626471671011775641166696967000230338587568823896816218143320454571880889028416618234529356128696182421588913311606267871228350272321693880275629777738208376209367030311877837507395133354497579779944641322560334249916036056034438265926741500641269333889701483915086884244060689930319039900188885129703466923913344720468740329350757112526357539812845374893539614232126151858768242741920549132903299309297439267803268119811046781876019028842013348461774315740042726918774450829840038427833998460759555688781326055316854905462928881124910017386246028699349589787668883137153016597904436414741320898487913881208127044784463742155306346844882356036938776411367555015984574272968027926905690945227830675405312520306889368950456330399609951236839935349149426597007334767373333038269017729961378391483075142996503883294958738563457581402040155318324550776295304096482921997424960031346175297176977302878444640726696543966369137426441529080026249615155620097955786324437804628433194814362807641841409910985481004105168237793583543202497281300831028024150338497674574495342293545214947735508590190393644640226089594831614504529337690901676108069449121271189042185113710247824175025598785967385020810452376891225010351440200319018400259669694977277589888570158768323392408727240327481632978503494226889660718912089358072432935172009764928192790763508045844965512923566287656433998611014766363693893998128738698631880127950025602693487132703424543390045794761822257051076282351033365013141157628738431097367734961787630357081539489284840221845754694550974305692454922759131825652870565590166381622045108178508099438815777502681469565866218499037253327039134945395718803160503641834293161994137122961780552189243238775735259240206084735706264159102993837467969528382350856552306656147881994855531011486170122016767134471981476662081697393744554085471569115884842525630648672975677314830829029979160633554662237080202234805575006408772860275764204300343052153949127442297356332032630751917270341947519007846921767520452524638976836730596511496012915027492365476448817458479339957206483197178697664668325126036505368545751020446935258973693060974662741372583888782216020253933972108509179847115136639319081960182452094483489569295441587372066737011081982438956178709206904533286441466519117006258572168464990415388858739241246852146080889342990805170268942870059189745513650849048124391377521828262043137266630336285745506331525509556259789548554790373786121416878334692235597554973321510982135456596513497335005735520349111772691954449551462748369142582697004008885256434282675184192844681853884853913542180759642239702487278184794761931717023200374256889996158689307759529888851830710810863042109692815869767907130434234084194948091354244152687835778018407732880404265604675597946850468705643057754790228416729794182782807385544654374036556888250822533046490340800139084483958382377084740185145733889004665851092541739525843463833704439065992891883270631439240138836669011155809062264540722386340960622005666327668161445127163929726451734192133228912967947329917029455786347895771505120734235427813094608496052999026523466707163125472655039306288344030362367357125225678632071145758339094795344289913877953867597196949838528065740669636974111941162221909726186802325670159264014925946028861555133171342910163299423776596949260949590154047178376989356107833210314071082800119700743521783421340505924535425032371643421662942980916315049187071579714924280370058927300978883753822892980065799242059417857434153574818561050619667401464488666718291085782946087984008549181604339540771163128620305312877750613320011915965995361313055155734087862246749318383434719602752548289677051254202573740889372484787056133465612115292964341719843365341168076528245830176454638897665273369288585915360269383051435487008872436353147757806552701080996495569517605354127474288324463174732237103582810943237940683359649890723062713654396448227209604304413428541862806349177170822962333912602698209653642870120373188292784819790753952910106995859441273816976278948205168067220550696522758283194733900573475205611435241205562360026075825948277371011391944347639166605260493522993816706588491331628046331138834362107771504148295238487750864821204786735127568838017482176309809992731818073413822557650772743203779275619354665875981267428701615344260595616906154067654843800292652198500171589489457759647343048324948612980126006083232832038674959756571645991342106196769477532536753815649384802288735298868270369327841837839770879211289347189245198063471938236463336741184451787321486655768349055492572739849777397958438614204261943676488253438821578262757279277516545538063515520260407552182586995172947720311547996588954662455348945401001422854381088414771303829105067280544394632352950131189424978699373951940659191750354907785715618248761848498790301815467159480973390028107607116354064540765225437431054259059070807775031375536133873829123041915790035745715865704929113729232059760175337750235920188929950153674979316850248060896107974935302099119259622256668244529734081769429793881679819856688457008301739805992853610969052050495682762537441236991439339752451463778591939309989915542608443366162042706646849766177590777673264887142350927289664460861252321672900327521018739516484350927619833457173587026391492535934572742161044096236019362135782797020250918373558680369840364407499849103133603650716868342116612688632906339640879984924864721127295202918725746636818750001563592352325438053847346583001815497280904603239263154121565068748359916580725382410910435000414104891190049253322726641364552171202469151545873908345910193587932608170259779509754674973702248726480058602518545570802522125582067620370134632686827451645244335901734652388350305619576023411962521614902297667377458714744770771958867100137502502100331005194738859017348416995677425367715607074117550902986831678603356085657440890269315175206466714224411047099171882854670906153525697408932389285558093914579492428004500824231197790223813882984201326011627665535766089056628065762174846377796775387874917896239971625968176091942914671299405306193537042633193185001881563245552907373903054031849199628942903522065289361041438576576067800371818592411186631070442703058397928228214207673888642100763569534679448292802076111667901822249244142722659201054337164154966971292988138004705793469320462096952196619307136584012615812090765845004971834611819932020283318102005917676888101221638753934642747613298276431601765260539274790360774108798463883521433469666394857879155312809668974567651251359000866484823338819909543574459881343952472367381091702428501294347663691107107514582404284753612713560380734922632925997102640337504753723673545072307100636061470641201277544946911599926569254217838503105168595645375251918332629330544705815094884297927718533902034213300152547225890517377276346916530100236593035944715657918159982689465313191981040451882216263667054238148727904979067878808493122246753527825209728274196809208087528430494706267391482976801101997243288878727487391469589396365393429075302740311252138642010882727306782012037835290475650080865919487101120329995021651453356859366462291416821155572030835869957066037057700095259437455171387223167891113048479223647626557373014032763010523015956080132021157526419794280042892074032621610723412933622873347470147346390484180638858728693947891228759020994854793541049911232571788757051183808478939857563526628471465130038223636594398099862322275626148284105414333345708411095401728050496200647704173863046767726398854952470707298337047661049643212662211463268734222619171393584712764799396824676184502324981193282640229306514339669393897833740887414576821636736825120969546114312179196061049879212051598429125400313761198928026547289655683599853332982842979670030942295768245033406518110528391870886029280126491906809506443583744134071471367953646087604209869183858304490733951830873028971273918370882867905864032576394891160636271675596807539659009253099116509143778385746793653738226955435634017626678817286579117903616447064354161810636550482342028208013526992919832818116155105942487044760958885242562789300654973819483449308947648670703209982066024096065789451572889819809666021388737850748450083628233302790225054925755958781259842002117430606294853811485787371769580647550265282469989312946139123664613150061482986587269968703895759417530733896461071337442425823309411358902298688132845640489055015280726730329474111257865013125329049590112320106282563898095863835615218307189830160069556751754892970306903964249817635365684745244476215477624874204564533673430370572332448392164416175779865320904602830025692152475875869723345171558359815199666868973781176697058487335127148060835425297847157268799988963056119859904423144640668673757181163106291732879385782600555323671012498153372204082476147586747887613923603195194438919059837699191343166539381678382652749750395916048875611946485112662570369290804947058909070140133932976486396912923815551535348309244301528914518456880474279839236978526358943036847494602163462310241438269812209335510951298083236084608891870604347922404889979604850219582408523193763761440736243914351985879509216363158957577577767544715534322178207880918216154961920215229313383330469917027078620919217318946706829996011329333601209800095783850958777729175091387633488482596319970460605309686984798500980984104629009335356457710033183843350115439204991390344408566316303210364750484280145704412907817615837613381224121114907416245819295126268652753676344764585135607380771381013162687879260877680767503995712871923689957392713186489685499080086679291581668915957748056261548543350750797996522749185969556690497771511183418596040169358585422726862111259284477309885984063682667797731916687494235527839585635890691378930823642253422453665315484103527707911705387267216412576256129827903510597283967049468441744329240439181578451049725137340636707629518703063130252799093627759786040824071984552560673061996855716452653035778904856717569661834174797232527664294528670666402495867222131353673338693109521767220983157048149314533621517286713156444938292653604415107884842777392986579418270532174238106400752123176830293835331974549493752192235202353695361250502057645035859228381811673031246852063371145192596301650605952237775211008109548000132845314205744726081843843425667510280647143105702663516841166753447230825474715672720511570830471144036363232286342644227237813383148958083941287411582425160266650107846953170106262358967874874271336779180148454666247134017650996622631137031593871493228492585089390290285488391514098951763186697595747313790286400556170206129926623092284150850216495321932852973392014540090025561374729814650860374128772941779029116407227791188433646647463746409782331787251636197380222836166085362195633111270041465009647466899783351325147652680460987905162697955377786710386976992109638246073760364191230450567935437330501964102210928915295496989947424901904539216389216277890107112464627067918585788555997055417007789022899178832701156396551395597785487807678485673574005889894753688062356277621091404563494005528467107130656650356760824894982606140484841430382978986589923984051481680143879769743105764304039698121539018595003581745072206569384903702652603144191232557961655672302479543837527323055005044453573614556107712470292678893963293355798213812713720081955117618298641887353559774657367094119635734803360164244533694388357081312809521874666445911877042891206555648436309125577726763293408863913021381436029783077997967309529732881701323281198376518142608743747651332979402337111139925691145480378119274809526166517700806758358849250406961996898964649019785113585331342254011904249746950257523899208400755617969495059250120107952321967825424224902151516184438683704780321485269002985195511249339934447411960829936795977925343973605708527364762000220854667576982982647590162614750816250732849864640817422894731178564806444198226897547618742186028079779708466881276820394078562462255958134182617598455094785988219262451725152717127546312308028026661943185194026889952433449003431358693999263734348830804479795894135371720524571376610943335359213548357338922591425900838555376667065901651775075355443992303072946232668468742971401556139321391561347083480200079357163420332409588867726158060462965579316531108459331876787495787704354351696755810111846968603677594569565259789312647807905093506975208576646251427444512714580625264445266968463861197843659401060847325366819927179283345146617832765018701543361982367668518171319273199701135108988844373222975578577803686833660136867683206834511952978858597671449357460911620383629746110265600210835325912849261884277975084306482688231024466020168932999940312322856866193079019982784832434453834866198617358903909818836385861371468074123697908481923935893550093720859087444402792662082553377911183929391043062734218057685759873026725840619343942343900501206090875816840028810710689822227307576436338132345740873253959414708948937680229669025654555268356619515843214139387421362961792915945813104857917249614040320890664477079471060166244668917815123009502004420790530333104004601406541803590723251671213421923317756620858092022524937418613339567871863878689646454322322636522253414876877989695995566121016910787857628063609368608076164453473747465438312018921464105877523102972152102883435478801770225988471531705044425623762404899596850617584699168937990969920698268073004234563639148463007835413392825121106876242189748264386912014081735070245054214285495702078605153617834465958018397726920529577621820680115162519803549011772409624331190081301672906525306333425454168664186186251554558884839451194573575788784618165641445320751090628852640944812070902659222484707409930387306939917044508416182784720885526105713357524114399830652660538111475592389694097930466269845893255304810436669860708732698055629177607231931189259641000465914718419975070147025900946391420118017733405984306075509845548743480033150646109898887747951984281673296703548893361471851515453933279600865680656758691947395959089541687258160180202779896768567045265023754250132783307322633444175624177349836780658525461766266504374185067044954141969243291422979163987103744716033729088566446455099501960789907271874633173754799600180740780215970825482570816473342627685532102836514923487011742128987464805897121213670365313047433055997290173755685057125759715609137634131701333995417174896980712664447674794735337655009222933280277093478173714958879297158526405397006323741005046394432044166575168619862828227802601373194307406899300005135127862889684748475681172429775242322191389245518696080519177554884777256470619505688278492345540842209561725636184722182613314644142589166532091344539442126643470070330551876894770353482564860631096731766808964977887904862144291930941802825754335173802243220152584536800801307354494608682782904188841092796687727128978535320092328858035049857165149519002289088825751015133598552487373332699458574168102114180618488390464141676950833905437080387649647342360904297424440440092830264440729282401152439081449225866874631844641817811782707557497701513422323514269763161970851131714840389988606399740579913708858539622638672212834516500154324747540339841044700539636663341009385374348845952841099559031581979338263826546425039483652751280014560919720229580038821916546510975135450112946619758006163138216926449323913288558715824799819356703478726020526974813525802382935179468455039961978203862816402896476096405717075869517943141478768566910664254501193176151077276350977486210540484343782430308073993636473791164046289339222507408528698686600027287314839949939171568427295455179901200872363006325860658962236279585354900426078346569879075851182388083222859722430932841888366433112985973630561228610903785889014098669549434073244913460487045878296585584040155176838028550863473344653331150463546535489328159794770996898927446869381152579913720169102431641852093617328830793195810421706372313292499303398924225233795753846035409182787034371370567217118780792574546259426773581924726370379416357057529496272139377186214456243713818259187297906285721892441001650832563986871986278905604234003151404309572730301077340652845810903044618125192550645258782758442851390579992250429875318864792886655365081141630983429725131818508125435779760117557643392317587903776299102401463740550408880605087826967483860519070130499139636727397819586110543442026314361093676319257691737439986009887508574860477692590920049387643850094564322585105149426983528500862273782258456757031877101892537627635724068078635409041189544876229894134530848884788740297496382565856308947667676842440773738629746738515025615957060584879890207281689264415234642443548536322509228604388858628822659711840457698387510540385907801509889633159912439138601330398091735248142326905072834056654147979572421020987757565768923746798918737419476618178863180884291789510364671993674724005236732028299541041545093356603930603637478855983296403959727891783790060364495425446431038506446007053898658456142141790303656379656778574978358435954908324966829302445810427966772822010484884593573750553071174775022820598614500485797173922165981424569635411277691262437418070406307222720045897295491940604425701116033580924365207925631731591006093213326647864206538540527174110909143799487785278234824176091808639416299479715241213762440851126649615182744206886794931451522467594632067402107432320990430966751151875088625269584156284320117856067978407459261487075541566506857159702724667647432838512039710667902682075645952686657927356100549766748598925547802800348048379730564156945578575758664911347012974843332194420413589002203567491540324804423943935729628557398532149811576724726958956565552693365399066223559643338608159971816109954022023127213672781433142021081568347340876169322848364915933651766516264447965499205870562289241685800036483354273564279928031809469503612517036712076783704323526729302478088314950551201389593082079255112863526745795005947541055353089236931506490027975564504700001464191822964206010973863495167228488242102801502301024246633215294774810455278687452022565529336602880532105610128730249463429832222833254890714763406824675262492665589635108867744980936711902568542548002193811959210561779290720610682646981645075655645256615277272682851149127725565091312422700407610562879258484868830593056805195774239954975730538451369622593864218443216585473617203137241610898964714003846483750773028439454587062429225375465493118006553109739331414235627113409484599037598377065509692545596169334022654016384860443624935173552118606287994402014370244802223706156528364895205612469362963422411681855713497117870342459134671877846236706382996816629199181018352379154027852518825102985766032593200988382421695367581354965174594271824023834058399416849948527349420286667271042131485933326780668828490736047898959705479470326900204700161708221904274641186458652121995871798558330187837391160304916206247856424684931102829620771474480344284518447474388166253812824869807005175809890108168886336354549517083013321702549029472054407302221860482223646622086279172673217692534542466766325592912738744977271863715749174192858915522878601383182003405668653587858304255096418270210890994296422584313888774556328495243475499158398273047799480323241655956276697034589730647003920037042585463041063152218673002571600118295941074515887950554723546768778960041906341037691879736512493666271945083149241637521739449025200475205868582853479405158702902979187139770130917574921941353011413795110247952797287011616031586594408897783768918288168965238141749300329154864085381441703390738407427627012549935213595257426163894498251621648611155477627608464686311972621455900529344625384157148674750256470453330614524088097027004827570329323066874746833208973630321039193779676854918740527537632438570231640846540448518551122319015363538384989921624330761107039879385472981205622392476700132370010769819363778701148597387355824446483018392068676572994057014384803869555350756465746194995390461947692642806709230452589355728822763834091169969738393011680528011754252794115416996812546260255550098734074218958729585295560961966827783210816228828526645634515699725822895875351650914158803209297154999772792217230630469692488953596164993969208329914159537831446924109000987131330817926513988921133568625226966890280366782274094451517618233459013657777600645077384599559368113749771944760965791869766675590714159373347380944489635944368916662503563069882247303165758011231542463580587897478971925494531709055453733683476017841198650776639356389955347278714788366263567969282957011282604701935260745070305869560809015894784350206315304662531762628889222697155424385642337621733708267256529373267267545672743560476109020452669966410755498160956456868589839889047962463154826982850478940089334333253021826406216591971006471629393813773640394721097316011564432358928696637057467359115043401708552948681325271258039519311282296363292233624306702992985623585365043289145845347128727292241314783619821208231023822316049224292318079705777135459573799557782977348487325421151890093468882534369590232040850613784696444330805573923418707195736368987051618726629151932487554871592041332097213938073917892036594692792099791690974589874467930427773767012317389538974469203475182196843887930438245827878585507308883299937901874178895899145491953415840358149030068596232333786558761408743951555157727103223109999332377861611859975290522218745733888744759986439366089692417005175280133619265203510293723043354500651758477469717672385936803283371537057209953341645031377098428101741439126672686871874908819788721404522687624371594026024731396522367823125940565190150827701648909051107826147724304193676613521017522468808337873053214210724766878166381201706671746398799177452133596815808671800651660765448692808932644705961939713849112416587276654528124983707700043207494388454915660099426558059324956634300151670506739962666332872247304740302490131307516237120372801793198421659939123471072534361915391620116163671658316917855525714294165994024154467123359449208853467845801002697898314942288630099490199923459501539342429152964762046426003899789839757632590667485838283332817960706950123779459123083942498634222519216284003779466181461149108793543762802900183910105616588271656834764700501001199726403908505944621230425622230862678159392435713435997948175374667017583594007197430202820187130950542595295105804188832293529111668467089846733103032800329898133397537761949731222139670196067651443646313453552262020626562428229887242671390088597983932660858866616540417351185874622581086728640459338656061114166527758033125597289679972995787953099584195029812150808682304683916581139864540291481536053266050374613051134393325955201752973044643713848277245603451086681337170343236617983069310809225471511184684296552498395692920788014591464785453270049774238407541760097667718247123778127815661534633366387914761521640084418949241527128996490272319444638471587686337480350875621202045897048012361873881913985990443949040825169684365874158729280407606631533803003995330901823650441453169229326416605086876030507720463582715809565554701263100833590375783354553207230589206139497150009477372446842749538594015524757759211447196289312812371630535251341737200692385242637969970527681352844566113242980234463619437817626825832838217023822448456508650080627877371562871450389722560967569753038664717554984909321099434772730740403226013682720289325556094042236202474423772823019285335986511253130139027822139540218133158154253562881083091022434685916516208677557634184600191819368220358976565716056160290886721691416808786422271674509901729338298719963613365463004337122132838217218704589483664490525240342195814201046646590545307576441554073599164057972760175659439506280576125418588721953222472143148809940707319467525385248157446496547360224901274224698944311315988766487334650008779572744337453471323927487029743044366075432514707802215112093146755026561243623835145852487586508963301846300657040940528488583422386930811526827559535467706323096540355493484154162668121214361072086111941999526778744155172259536701856567113476541418479073633372700042231290215513802918652010204164165841737107121017170573834332533899932218302206561460887009556799131895188261648811550049953756814093086158257916759892399149205576373175350299019462381375663659006071089476275395480927226675114515627498540451649732753750234833798432640333115212506236676771745073293396797954104712161239506276093675841702588933864068375150166006241261602067650457361378688796591213499099794299517193600118120904320105308330342193939655237948252759498919518723555243359275361289745464625505729589659604009077532329441336715211571128770642734351873124157795848430827937379955901892839792107321250239857001569552702147078068445950043224045618591030415127779572768993812037547241665445933786088899166492370466702889239245325440310398419056394469460512625823908649237530873794713749057215358899276369892310724413467795183638529005629049061419792736095073371116226208390831793276539175948837817345487599483663871184386044260349673490275182542015929084553783310725996514436675856147689853415489806400341385356220061465862449898054774693467950086780312171345659870839071898501825518960628011137797345531713434157209442309115020032845056215346463865538752934340953973986815276906640386616592595109137909236828620230200479700875830761308235661322606768074606103546729980134053063913474442093000319409032873954003221689574801629265052964412440532493900429159615151610048446519173425474031592465091185927690951860463410865244869937534103454243470731239417496321699050229041798955921598233647881756697942683328818073119536632670555307482736918935078181760348638203401257855810057463798060179586083004761173534878069456169230959812474555503448685651059057953311992569464168591834632634871773662584786736989841776826950712954227369013919928319644570490227573584436699728394463023133922293401361572165959877989093293863684141753733554638750452756255059124927980294327213104885730522113491159251706818846696936095067009746450698435570476497807012141779003758985859104832410874640276464335167042654855672290932557101935151341472076388433661111486036612631569365369979389674863020561834347470603371377353256713325806710964515555271152807759855306908565609347582749115443134619389631843010440031569944663722165328868236975076014365997727148677002306857225047339628030989067704419840106359118384259833638642771964575932708052701811420725912339605584238049528198970686858578217004847752652679317143036593698537101240240978436001094510839023634538456816955641251033240052803467372805855912358163980617870837544479712885244363361811878244502351497960812764139963201559468416534659390478575910625123709067271218153919263322226944846429019847522155250849426725057584817275684213818595520658702536962909507617717055796074738719528385546575412464781175021365393709341152941308184690749920146351850392759467491690519002961265075647833671439694948068732708294786157270760439883305693343775626646998856489739450900265437953331259946428797971494340972726539290467386843069659558059634084947126631477098309632816887075020686489972645942235212411168278034528786408952216151703601761523795934136786957153890733139835554000941209395183781353283177416136187735075783913568056971048771262032221790588665089377116664567481451564613353127545824411417551848436115362288317183806793439952868690021095325030774740886392568107662379515366466903134949087521502647645061224660391877017722281997047149139681224776522725334047719785635575452563823745519103726104917541874045726799331299087780860425019501608879322390420070043550863280240091581045305621467757716597376745150268808425951461569443143779045953114553901954995187102474371241416047797868461446837716233181064794765902454125231046087910731926744057472460039231462067247471182178529021026079432072499928215101221925093763627248490890717194712736095363744446585262197656040155631893565244151576794670110555158255632384087842360083636449140040827641638571117145729014799649929883300991820247666794690793457151343343157700082620454550059223160844513753185382385326175365928197537789339768811783005090930807404419597503524293519797739202606923355518766151303946892884343941719025031683595139265988832089838175244211962456013924333062063766586086354297982545400812954935983900578038945379234861427357626960758400888165640165207967539731655407345457900516349137350024844618192287164136874107036579389469174839701061894924148747309921370031102376168345100738628956219091667436574080444077387058733231447779702178072498467473402999827009686854595638750309208234443030586766607805136242094856568297982773218879864082355899461369860505850001954530195025665203199864188765262710074838902215742627043402055029263984331210840089383974811259912472505998958629289736543820861333929444604235644519973547394536465771361959904949829579066166884782326479261151145229846475725448243878118817777614765750498568081225087030027518947395513257842852487311482385195630786407606131890909701803691989797537070410144928269406683734642198661890343746843597366628475192652445222217381142779326398895823801496387197258996618915328790194067972095281610659499665056518393166399267288030477334067674085229905659005903278157453241464507842712271278821911961035874381006890263600283190485504170281943062785980276616725173878296852082866796967967702864206641074313385737777861047591196910024711251668218418783558470154815304364002585657821158581233099895013326793468892399798091269891795286436421060830187545424876025487604513257443387406515119340037090545255135297809305096140387795432294412430561870429117556008543728937861660801300494843059728941601660098160289419620599521527450913272552659496258959484979661584348538048574366522166192279598677113053505955908711983164752822346845151273084280416893718995985865537126372460114371543489181863883670452887031197333119807098530101536052120817269901672664276985247936134062134886463527702638529618729485912429608776120642233899954667291690323276207296065455086715229979409680167389478436358846048498291530618972596264212772432505613547653761240625901173670591313626207186464777209948462026938630337155324929232321493302189501504681330928488820735692066299106519857175684434385507172324387190355397903936462654799357997306300431863429232743747079410213912545429297128164951589251567457051612220880520171357086785401935651724253043317240859033893894510244341206418438034111605464786572936232208912301139796846533218183252015171849440309946621878639058143878608904695959194773600633097031578582708867709292757986207871730724897264998593149139920929243007427449388681669817169454302168340977643178083437591547823202467977506094993453809282764442392128901350164431356805299734708516623680521983933794971751177492648819651491769719485164061923202036693083560487316737111206891360051888266757238602704612767123436854742292333224914796567107335112922465588003165343979997037943628545577996807944142406153036641138888337905779845087850775016275820783118367057702832311734967475385315729019497756411230732224044957021478119195227270700114877766826002373953460331563000920765314313345047062665848551790599796985201726239313606265771152664182160088535346584145453168366718934316363810657806168092768122385498036025532574584061513994195152448705982185304560894925612936337324340732649386178317657641624961933886266102353871289413912379477383811280151477256621248724827694472602585148884107517795683789097358931903375207442183778022015735989574832597526307062717761708090170075276456695597364399368226516131905986192456968845076571521553195281208205093778963519561402901398933859533280629395607062110958938510891128370464981424276046527393675112945133456721876313209699108810980551571114908340163902665613575765365901716524816923107041363616847430268675990091532443100730942299923614576547141577345530733892346610743493320673544122690373195777649376727560232125134093876167054168630211971573370239106937712607439274088173730656632541621366233113950482483114460545161657055181962016385080283544321490632785223367814193963047934406002524431225881813812191652545137562107967993930390801512615388905127345683710593593528240211227398852136969508272063935993664956521276075613771801897661851618678382702637329400181894711028631722844073093531085449300281290364787377933515403969026756718827834713358750863399383648029381001572661941040967129387733182705734660151730322137340147724880507005230087362791280205402986322323010904138924986736906842567137415076176826086800088809001348499241118383155659195602251746731049720396772204515137289960960121670757779672454273709664713536828819476280469559808550440563270140058007914266700660333875641450367812978528633241881806158531830067392024154232308090750873748749016424372642276864954710745183008882445366883761672893193440060446943524723714672439694276462688563717906445510005720051730914472560996484515326411214912017196575406833046772686832569509493802613688365739290567089433469004976903792476425213664155110559782815318597237282530170499849602270987602275982756906130865493071439161584463224437583362137391378297675360852668469666210333046259112561652029593620518471108602228442357545646083191442837633372965645568512348916299124726669658992968450030661642320018127959593776605793196980090613028210896416475556295182686658296525420023656043585253559879517530809038433239943374226035535075015566489922993816636998199049215718109944222820313125577869076762327453047371943872366095942913881402124053092351811609489370179428007879814787858488278397175881072420331661959757025359941057663248546437433892513794292526549796076071813099878984259321502440838398974078094495998481275807675324825802492787663003817991387422222364275573517317682424384894401401803338177442241597952688125167309797002731140754635442004458587970223627401257911104042542258167512995128296113104119607110148651431027352225062198179313489865068054345135854442051823514841263204802246549775547486679063063046650299248632507883578551080350179407523977336877230983687377626580544581582850755653436426900811242662046020218250073442284699441103013652414572726321509400661659988460293923513547022940438326905949543802393745743398683830055160767844264135749589391866942241330088110547814695412259464737194561276381077277468919193620553443012695122689800911453039572176759004018408158652697957783391217127967160374053778356459434658350743291348541716710576516587928829287903737895506895925867613270041333685380881421817579886668088103790757247398635087675579316775365694799052379191227804045419853561349705002170498968066867045080380885835060968806956832459226837350045559010541410821820045033962826176501939778630002360503561505539130865846034969088801165365903678515725331522243963714562764692428080330549312079972559067081831633403113497178570929708247813453651951811842814270768516627400237197802118325396500151138671461143745650877058994590364343755061808132503299330038617545974202846077035546431492010960212315164522757104045813893400256043847984205211145326436386664124276322907397127660971413333939997638756969633341076885408941610056765479165134105114306447594076015897057020759191767814450627518169794502772856181015230709721968163569891190695035455701699217076713867607179980668601653477845869084813088716291264944284928869665316749069957484236535690369545951808690097449277090251853044570044612722424957374521568791424863806068064618768135039421950559163983663940345437905573762190593785098476408192375155763430827687333883619347962991308887075437473601192780148281457748350731931186568668643564185446488954131209620623483874952245625978382533840261945275474998918162218656287197136866981988807576427263340024258955593813760986077790508437493773619198273410848097099313361763643630995133038012183231531889690462032282053674748048145422454478234539226006953898299857567267542378371199781880623651046069502282684511881499160884863830469766760835943379068803062527618180055741129445122246012758168517374220797074437931913218456293651940720510332376331868238118493524309748831518003605497096379574362375606146007681142807583310241495964186069934989922550628262930299794243701373015382015557096479768243470817895103366540945120052015801807232396855749365244951010108423639894662610461581859121016270709117659428450706149735039389082400860632002119236203107343238642630111823383279914205089076495053496675398865606920113504142017892443476947979575448014137729928123969985516792004947161534574104229058560337556792715050680715698381268693773174562342461471179095020274780408504815801212946478312464628637074180402594284768203047092191511896280108395120937583834758253984862621683638724398498744894595829689903761770249120758291602817798656396704331002064662508035142091536176087231532202264314367377811272393507836508979614121432891758438983982890731146834780284476195053495106578997964518674807152693091242682837405474390049324263425479258738263274557954470050251129012628109069200293485592176858972563144602691258707046754168214153704354083747151855893246497044328110805002962230152424974957183964365491311633012707269691747875698000287244199918976669815476181531193864995190172472090664849419432233966475035848458587451490139674077416800411861224431807498371734625872191773127927719720108260347236571883091572213791526103973334819200427054846011202471057201562971621671945226128259818424333153343783533203385003180503584056714459474110543304381941570656497045683755027009478526471406993790504492509897406605943844737825850575931009167549363315908434910892463513637892654506906343241874473165279846181996843667713487616099144676003380885055107278427200986078458529490111086145871823055522239979832275537578103961003711863384859467195075449374673499181544684363592776463557359206423211361702053821983079573923034494805153992035126369383684809693872143543820623871754352210552786816177189458765412700281668999469349004976608315684480238248072983751667549831324690376397654586783161281224935146267103281883959021396423008382314157122297725893316522811614075063365057008854308478747652427820853708188580951475545179190763507144878285326695637143773141532294325884185088298589057384860691020909655752124806234061268051434100125881060752267732375104921385255387057720333632194725554978306451635606427749204903675802787472847759820077688597969781317185504478969475052198413281634429011616322556280293041705363214489492162431260356057898452504678401441859438179656315376422530913512253873043448665991866058899752878453100558450246916886895309451355112370198809753653243568149338739088598449403786738533997994081053125407645023075759966411021838044203278146101385609404364892030484993480330797758940525928738821841415174889806240710163202528066425421620287933961948327005232114108099084505926146999217143108184263502650254961848040183237053425697915891125247256747880340274015828728989712768405993504369844374828858191999179750081918204120414741845511395460784162773896299714167663579851663547732129630530688824448807891737193381793090399139829617775602848958291474664306611790591167491240760821030800972807999342217955892674844318903022687712908607916507901862993324083995542947310118692128379179544989368276281332066813088343160981613802606816528599171802430677189878569564126085440499263264230501440324214735093770592220009785895061272910589354732797470360174653259797317050556019587231939566547183215694679547072579824373217000821347504566418948641512685136314133305661532361835131414793199881604003256950461832573083067023138627002280463510068528483141255117144005742075008692687917937481992748547107985229322537511780952150719570828377505361151003290315721405668680992084487837196584248684763372126714176505911456027490618157420558103295103338199017432243833811405928164542638680944529296817863791055458181120056832732209296997251476757509775364381976072196415774490689428377853415883513431371225333348219704574754042770980968656168178791004448301236374451322857284726547725238486212310303212346177205338531827624376433372668028472499364840742291144520117259527735483038729477653681122227695579623781372565209231976593078484723351006410999466875330179732921603234573481643954132317097359550773472361251090880523972583962691799945088345289836377765921378230970423395787805180662052546054945030974429904207243773597902122985997981528475578372962213381705204880236777500553651192189460241685105496287493902800175494101013677935128873260728936189883578298955899089052121717149403040985131629783534035782155545521441628196166167844172211289309390748256056877094842880648178144993519964295385896184882238910479711831348639136509955776830137684141554136636097654166242690651409359087432406411211784716279557442359513922223149274337463244661802726012425830805399804553154388700034440987946116782441579249939077967018283923585239794908163958391924521801390183982698036086139121244280488546927889429912641186427078482959596694886186014595323070396479725729119825784005906318594603638677331114241952989952201030572274558645120822094047570805418319078911552982163850560304482076874058447167127235845381624207390363865903558801498214270889976675951052489269412071772142844909253971581779457084068059127672803797490776558684473658186324044730891553139977358856545146161720760173296142438442636298795882767754223791143227317483049376500416934063535922007479888685453476546215721403941326492244050060115441865881885629217824638352227975117390037660970821748139455685743726976891109097530596040210361746988733437005913137748212856141364522124577333591975218776669774977965429551097449247513267564629244854504303804546438030316749151576226953153740822379412152346718402634547905041663622591841158656900237123930226145105112228995444518857547147559949210304029044426329599256447969071343172634156056101411576835566559219199633017300462360853175031159060147523850997597094320119530210491511277853922962169219105752314463173332821851913329231486745327334586797432084869875494336862477551932699660866039787379991017311626991905053039621037827618271038857473529671676913897684269106642791963977589592801659926460603002766644285385141968048559692666971266853728315370853493982722634193649536497367150575027177956816546071057587742381238103810400485387939959697502997260954572435750565134721772572388097359403304955112404538760295818650706292935541391251544711963810665071377118664122299840371303671984079932724446755090477129669827018845479511433362608314100487779200214711438329260748112737767187547516846842576384950810986179441501278275443403719071893249631154494932222613789965906764797858870737777747391517420750719520626500126272413872074626726982083750324600670809396243025737464317107224031553580698990381215872304521999171178404530938934180428832984030940443159984395389496329151911252859309548221742439341501886222940534362674005096387170454195945466492348377858981325173070528984040224098747981398173227491363787191053170887740735802563792185014375734053040742826699773299918382189499045927563614246559676258333036504254596597815097563121081796761262896846066758272778283942961960431527950029262933338402025616523675987226698894745941347380615786751059914579830011568725082067410956472241893503288549980444025163712389888949305859421436838936873320457892339798473325441534468677529004529813915164377040293060734440249397140164580193907522845194302708260137715353280562192680312502102417764457847249474648854683170948007738486297039708670040431240021480954267746180261954253891790006218654762518475427425216599210068548074001477188302036869994741671875570369727800655840405054614281172973863524105198489174024724061325793452159836849940127827482139928850191651929543806404955175779989533657435219188592867109541345603814617591216956938737103932165823286720589372605631174732819834492574908406698682532546468130950360414888826768510603176586285517727221917718242382830805377188469686048454003716414528410111876683545153460932579245862524334458558878947746380788553613746376563990237937954492073183303133196083571228672622370561832414127995936872693673922750706482845226157816163038703212997449574713273579626137476648838691038604551004033510973200730666221976105500390411683867081834056718473519897706025844494163112177230549194455879651241727637152253338300731434094532631551041234376127594771437826629935512663033969520000342661523851889335650209565571952757127734974749641829200600711144901624617538787862056117764106649879830908069524730593478839246607172140653410221448068970497977963751239948533143824499020054588156246827984688151713509248434526470629817162525364537743178838817190953163954060113546557496339546905202291354978116302751708535504363048469052506081508040263323770335256822689406347320326848291429564939614514648783818596838162330644338524264235476441192645442564760062974210040433218935647756112272216870984931556108457025726988071157052124004839190322635183765376298889273378317873524512723703079118332633792387573126398853684185382715357707750557475020165850907134683639466992862128044079030550367755323737536751732974369319948454024128074639045065420066988079558719810412990764610760581614378013500944172329949662631302127904868415898061734127751671983573190735137848276731566705472224040807526374519653513546647553237138397179989563041877557598644707080357752261312445516966735652365032740513599953676331760986480149006646324867067867313837036481872760838713919343412809368288046491378596964927235169235589048661830462713533467021092240408025866165396623593243599194220700801908425230203972661178068424574518673189081368367316944923505194745487824739321695807798721913821365832789790984518376380798355467732909643569835760106285641153323261282436257604772464384428884981898480551099115684724161203625378139026348344851577594192990881277293828395873454344923319409508590384080310675113636296795552385956436086406382238783040195617963853918454067189758503471548790211817085508223291396150773393206753650351184028909758084800904733533572405804467290739685680420509769665569711554135183756016492679901267149732953126562057810320275161656660806200688286934736228913541859636776356174052620910103580985992260505207772488668871411267832145639417749139558158559414746927986976490498637995173757319717544270403965380662497509397674783394672040884036587443384625380095534513401985702972155372198847307551469790667534696476386323351981247126277900382837053142724005817752404811419827614173232229434221473949629076148980091630515705176175380816533966665013163279346924975375745682617231343193124706853924276124108245035888129149370857312576992467596263698068959439142334636273633568135327360159416457287371533497003096645920474863994300231143489786895603280722806967468751579970496387587706810016102409597547588040921266048902627908503256014539097671963293029036967716576035916958464912865168760424296031202123377390294289282569538162614200353217875605549219900844494032268033114581726601972102238905777630281464795996237135726660678130243070240814887597435316544377643039123213261191135621396288153362224476121982748569824270639723821076233508759960990931171589416589832772085660378601153240979609429069898272871577320786180443842872316504102322253387182735857186764106282645121760073728396724225857855155209198300753001148109056056981114767203361126897790319949992817843842237346053832396577500940835029085570777327517637864772318565032084789981986257739199446049231113229468761169594586175408206720710551632429462465872733656426512713426863718557326417388107209644330363094029532164629784617345164075898947436193686948801638697374421325353343255354941711388879193050291754296244444357908734234217209720376681888207270402277101116514863403245994868280466271225866101247492238316062772996556276848703664866241498908225059638438117572240466767196367431310986715209160705015710329998095322601303942111339155357173263090399719217494316212037438869887666612417378255956344481285173097782045921108824751112916872148618805114010279383093149455383415427537729670766929832044652338812181339922709682616550639170968863690950877732684829494867484000297321702475387863634401044903861805195618433348869858995489213258992304666337894966895584469639001367449510313739090919679947419805795979382348581108729437199413369586328026732534667764645961266374507406873231813659632556968039223034987722643060203951407025594324093174388856068576619342273844076448127271417557366182829441801440942517452869606396004666898908473673565921183206608779080958572429943909046654197521547823513891068224243551142042747953347825815405600385581025292052282386687366032447082687430238454469748494078298067783659456024500748442892842064925085717169495881345007817666821164978873618676361347687005414250753626375996467463073881032258548759383919172478645626886003402572755293974963342270478702362786413964998533503871195990305660584659477375084204420472670002422905920937650683326293636896165883725524452328152599766892423487471442732719656884359445693385853899712277621969595556523578885398798985380136115956752652443406737636797773462015111785933043932695527781881367017319153679656835783611838021546647611700688974747387953818341674507640302822868462876963043366616990712542873811339952400077123249947783428802538779755531373446436088550924350750399749110571178897033402687502435564265226649767691031511232949541188018969110267591810494201484098187498640408670202732900405571616241674548581575468526356354796788820614921890181673700243698605493590906167272401859985235125049069734788557087541112800500086658461967791388865913160754470867713094630828809242442251047019567788715814460048447268305238232800922177343333730661275661066309199168305470357096011395142886370949872239707825182792066168475468765603582674482084291801504760323176384453832030831869453268157928734825083880228614298877829589861316082584645274603642811183826425318341386537769218184073534790446212243550434069393176467278528672491278347568552382838437797610615796138613729839527863767264026443762777886057984823221034134596954160638019746922926768933473755089010615152032941566339423086676155509155568500710290163806032221382075753839614783878189257113459432105147222556017627274187179273346743164274229261600063008256545819711703555566005895621318540515379527180475324423652652474781741019301030637339573312464619826400870816951702365500299584016808814217258700381286320935573596466720951789236549125703611043157455555602479076905448482143763550733126809032258026347836245835402060130781967479575153620882830280414952051579218666363194194420846525062217609041769883525544425129719780792197455307363667100582429794918298232568537455842765535638473973053205772303793257853777125951359530289442193667387995903917266099235338152967548169448995664549932254672488368578351872279682468839434633527819591920269558212685513051393016898319171045997533866080509573378391513646392764082642596768694393557531174378059752328357995720310547357520206113963357243716013651578704157971991957013642741612066846261865306992280029521966893917034762257484198330354964391847412920682468299751997461938682124257281706161618115783048679441319490932495517242206902764451352119807056696047057145225129183336996250717294117471618600367332624992592650146647438686672537810076036344682026522942855767891697300932883455741863950415919502541400768851678650011255353963021527302984060423454850994960926225392615158910535661842453916727481815084045697352289121023542709737644094504705909429439756496488702691658282070088346673237469542134146957966008522093985061679037204223729370312769952430539244079549798763668388391237012228971944250121612831600015434192068367947523944611450844922249179081413097819888564218975263229185028032792335275325276628936748714882735508382303318155142599074960845822540076856748140611065026518676252749958687955967948137415508573099794053444338363157897246342447400097997051910789927488336111337071538536440441087065996585158769717123106026180371569884105480439440313899995115641606196438815142356892457168449414521192808580577947043871924812606446632106201765575039934188979605248164103001388147955588535951233232676547952649267262589686324122891485499239557674337768626200285745913148902879999142750246301542834432551989165975832499607291541685250704428983941005694839740951296596666111782515255732359478491074979628165181763587242948832825292075605914321094165779494369866935231338677726124110938400420704102285034006518902627182903208886536139434880002654002484395522945467800627275415623280192838446965658384527241488852249652029540561403308896710953622023777755289903617266547632088480284103905103314466066362898362211197671975402941654248643754589486703510659914620373934472537355899114617258516484448853061728818319765411607707767147862397284698206249268145878868018627686164762894110416361782725516158418908775271354027802688313659034672039407858622972776392034537210084062445274046603057543271362294992272780400467958089462260200579416384800029472222647910506071641791808238059858135416152497504444565719923868195947614958888378038092121756139124682256526077041078849961133592877177334657428751249623763896136728830807714104763401007561267504454086079703153981205858659673755061575379729838661619025299926296312454751611023414009872828295763385004921690496963352484258914482781867813160705396688611729759030573847827936751060180087159564893011982426113371591191528782886890173245672697849230045699171779390818873691787564295417058468755617034732886579445166743128983096384709987695141177505355898538091937431425089562646558503131942460883625783187666149812507086103197843061898621762416699418492066228187879942072847751809377945908227544386561505760661032250009070409886890680167103938764528678806740951942391072600520866817335342765878940805829308930675297247951166743710874002749427959755867116597000044648874353526714555943834091887028325136225859747379955127098980560192775623866580657909754603231909095229489400674043264829967186978566164866464307413939334815370001400001377343791544339676766451151026069868502327427911366300962662417243419557631811748173349771135934669718049246493717578466628772966929467379323446599645406467787684251486579235023233085854252568763004301468129804790107052180270770081079707621026497537998737909063998232666728243559852570722891923725832956150984763172762885015092916830696314911684702668249838868154228519252913231099290583899721596609169058349818673854951963107509250476128653132035414804693549214702831915818860530812750492202411693883911542629798435364135403882521639093054040691425159157877440775404456990422882332676510645571733211938940033579569647837331228947263275534982624289072051972709010236887618080691583306624921542220307491804013634131036277899326304449160276291251572997727368585163309381905887761325760051603276009780343745794839134436670610044446897627440571964110607155400764189636813553033692874699225392791724733615726662458646306726350771468939693063014839796558035232038644733080798284649634366154351971403100539402840869428534725252393906619051779329326055313486433360096109052968915387690459981963575389656194566980092503063877314298243991025446174541932218787117445787926609501585610047617811040381507675092402912896012426471890346071858101057080596142761666974527307978725820901547011239745769522521992620402983969439673252545218936665170399854047539758985436848978449195000962839390723453377056023585348751700531351260352956996895686952341483979666699676316150394247240674208451774069319500333034612898045814032674291570290223485467932842086761807804424128278273008960916593853953364841237370202169758352984945083345500820441094388443525689766041254447522748217873379507989131772197893872586912750414795631602688720437667122797871565101154423870865599920132850081396499162057954025694840159362257967646002854845542873548205067762690135760700276746089085110383446371245802495335326955824220525432974564098039728876456815121788584139427856363933695644770248484217906955154562271700220574232192762140730833303327182472965593102586265066611110727119330562590067135863074096855586069859984604085827430117384588616596576206893851906666076081405854451445857487270377241415068019350185499434072195125645498684214906935470420095192342449775039466114638255363179272283335106529767990383986351304380503494314363885684765936626301739611248955613611453067344564117778215299591881955473102728102042726117067181667543749153161091856858384879976455265709746576648433432561909832891922897115885405519309447460012524729097639035417887775643996916891952280884185114347555381413125701245148692744197414972242866774362211868510180077732968666371257808689470072096103171946387636971887544433785748080951530146805442648200780936166732041930056871372220075690781161208417491387000925074078388969183946628684905139251673402100064629342176649724484044367483806422213911658738931188168416421899475624782496322441981873380444133519523669982322927160883159191330705695848151406776008856737931836098515354593143421685971135813129030476484678904217216273430928919889317279464415654865375164406643887897678008697083026234564683726613211914506634940966899751442238918201168742040832341757678857380608783843193158359768303415581481536249327640652701343936337747453730490517625107248162091444034320684399561523758381589675497483127260864227602575750032880095510514795280957322768897952104628278865057973067318193397884994158079778423960331537547180027910369861214249757793299722448332109142926108596819997501809267133433496830070342491201762152975471724740281460462797404346517908615069513600742695678320774931887676102316397861745605832188675862350912141137412019678923481910161264112355315133993933802553092505708616612342197518728870334224477231665381884563740071347235341400791656215694974363114624393660659743185829138767301092479822468758754438466018901305969481042558404199709393493929690164230107594864546416628361962285817159667176597111929435401514019973333996975637233013185906846331949650757885347027542078885497063852792357187234406617427363625255537749237636501001736458594290236865824009862128112147941778741496731403915319151700869654606865290350521949126943350006909343302690451996637637322863888428606123482762742639474271845234985096007841433991410965653288958489522469643025657041051827285560965134093285194492312539702877167688478875119712254214759729614420303297274024123875712956057223998219428210237863376014090493760650819596279262796553578144891822152809540392355163057836169193877200048195427836837984145608971276663168898695654767692805076858821823721085260746716243438282492105639031371972112426302819781253227334060956445142821243251446198019702751228245101329564016136681757725032947232740124049432018876229357169042719707501607951000082663833520358066275927320270387474187276850398132175780411712958196946328035721787252556464885074329003384166081133335468864337530300774205202072759066479593714521591570584040817186834923548163442938348042977815086424802643236029241152541814298979308335843435174312205100527342789161696226444279180373858471715388886068742713801229632779006270004073688138064994508635075303688068099307557780936729785559088328328045155130421177409442433577141876856453457749827672943291589527522517312753146418706142869701801610159891863368846692995393568928407235877133588862727039280640148303480749072221263953012428714883737158156229179761015179655674065850513141302120071845561053299988663045246527332321430889101408301828272472070595581447273160014130656393621803073583256166872640319866226266657093001570044422752676751217717528813298899598130264257886466203191945169830649639977450207543066611508250302472603610865517267478847691082614033276164807408253132446984923295682046853068195499910704646254748127036348076273080502217550955955675596739151890571188396425687488333926914777322102522625738456579626718378572666493671975333130908966283961594724680811198687760042969385624387883652815004314178273823765189947234920093017471077456985985620265566896941522372658589100973825080580115265522233502329033926917013418507659036646586287075075242260027834232683144814114496317847869738277652669323550637567264226576067791898662600772121932868871960964546493062955851952890940832259946754322578625313513750492377445444577833965213232108742067693564605969805410275241503595684238681759093686419429558059849893146429575147274452451663505259802325086666071017909055781066454298355877318989046196498630018227389787466804968641920219061652220341597228456476001724440655510062331583510508231415613348401177364617750889951993377397789160552501995989074480484021811726823107859956620941779084603253750467149514764853212097457333619381445786086363149868144212399947268950555176137270506203773139201938550521600879761563523834681792275835914338201226336903233269728870637312866811101863233561156678677051971588546881652318331274575995026234251512870218364907489519150667826017202719599382708813333696634862257698850262112502391166596485596052200384132236316647247333672335995355086841527432222771411892383931588065642670625053833467250573938654960524179348224677733449521930003079178500625167609969982028438656613139016190930234350986154344616415192552242208893157970837671265948529613042928096813085886617410256613012516210890821383508956940649820105594439250694874504351257787694180751649084624134337678038876085716817139927385138582035657147329270378190582486824177742139459365041152428800539319654684109690677046092843425986260318142030273275459963013460229990884385400404321607543386914164324627447433329514648093598689893699980175110031429960131876706464574556855216867962893699320223992973278647990685206500568181129837042265093655859951453403396690880842079976446587286886264524371195857449420816895315810411733849965578161990583280764656091811749778733741885261870957479649250574011739148569799055316098982655585932691345663680813179901341253229915268702076579334398682032670019853343475367930577119917188570362761886726006153090500919370193259785898589894951913219110700361763531878715042181286300566418538984989166686832270342338017881176799216644046549190535235414556865651851083243178022643031460333938389528325578553680346179798299127248885536008625602727680023583777343911880312704809828511471963483432482029862618665654440927753144084363074191046655263130904084052869016946203678449907123939812437589311742802779979026920772709102570599723380840843958801114114271170650807915816731788144737376645011711100152751462401886718564324613397979104714095886655252495097865950903197160652124212683734680329397500848173089592229024426045557891120491261908584728041851041946159542311723771727624202408736802179528031097798585112274223547531372769956849823181407374056055902820380059239681360639387641724874468524697125090140648824215372737178217367361842454071888332757480866288848913737901814013244940264081025916208368246700692964493057185461762091920097987655989624081667769914552723117442499341422066013357738293449965710793753117021749265031814113118505456322525927728868719757921247809829428278151922552098998256693426394430171674661426255728877839107006404186537516810812174872597029162477336378028211096887873739958764031046818947343964373800840655966162042958669251939193377830330282340981131766746264642399920939752779248238528588669152687250648017438492993134648772620046847344760324098895350097916951678464758478450532195408868774822890336274137292598467134330094152786604763267867631870540664991852371497992687332123602110611527072921608072712055366279768246436133816769479385400471691551730891488886258798351172550506545125241855806125454742841778608487750146196196679205169935847935184874714731510141423355746322939615323376521470766828954225588837486014697816392555596701549657456404440242265916263803495164310350357222834932521271965007999966798957938349074812103532658358379096066401045816232774181471618746394884569936592790979246254774591704382583813072426442797215269625753807087674949982268943937197881991984755879351946615141667203518152596305433113908543550519615829879804060490651062276431136421088151018217777334604936817168968705178741052294739641139034209679728907877022611865369813374744738533984586965455354423367422171933705808300637296892863181531599416283990877605501859960291513755320139142067718561470324423718774462909706535207662823200269836759086154887741731818565488060533939299865844636738372320569984952129952459262219313807033282317911549873355398898049821499946216081226054125439113007462917722610394225807272092649407766796304083226821291179735264777745731461458254020382461479926680572298893898716412524266602528913445573196104898517739347261866012915926451615515436725734025191626821576220146659133464838230870608892898741285614096273954639859492894340995903043770111117672592612950070178032988004986969308361244590813466301516887688709201826638611919849792474952396694589808444677703265274744583057859466551433644759265304140443657361371070556066014773467169231558524034275493368679100218104945459261712093170238303661079659569272999616815629367696083993153974949667224022684636096387069092009357671458518567096971596123818074818237190467521626822484662539734553004724684395531681958508799923672867953214382549798920977361411082216360265771496841366879901942067252019852480001294573590683905378991992289064972606490472766160991319771361723333490739027371143863220994584076149106857308758535269031802489880416868699025879781498711020376382031353393162051698225344393514717583936317606445001668670780775136517103049528153665796233765816778201601675233966300815636091532122852313394009214812232347677181406469366113798581151988398210217688762641195553815037334735554785293797129702901751486618907786249844772959597394301306780054326904188416881183630866515085170221540800407304351628065613764906768621822108095381508378983623259688067326961915894966965195719669421487255382504658050703107206584979751401694235516643359718137444569394795550726804607620491658076027358456500485527435933534028390308860581140198617735997364205342795406815047357254028162934722050253950292582311612382055131880931655793071166339434227972155870781696261425704614849693894558025110400930800213217760758576697332669532725266500990641405665804212088434176681199755332974553926488577048911680909313638228414476149114316443617952303457873772133923964084758074999465093527707173408924183740170349230710298698137197002113886271612743667009063927472801129201601963594836354380199308969037155084841649583534113727557757722355751504791194574240921491007922794026162207040954237738157018946373077502515936126155737761023650862191636063171788599787739711627507752799077633302128668645511963522710069901615056489912346229617411824590986046842736049243526876998201669756902650058829372555375157903854661828378427321281317370706046952535246009475728038590936608304433022895444420677348095928487642942931131569132931105533334791051750464258792414779193322922133925031673040206816105835799000392550441510091690764952659247205917536204859765897514187666108984309458178749899851891434301138459185865283982313948994021660449288081570929767113410853183627232663862732135073778201409739009333200579215965020192678456986113548710378435669151843584893081170250452265850503709287246508708807821340303267896764460937108616736930700955880534714185123486049606775579242987504579436539213927454840219468532711645008689943712808644883566220502439575554555596327182076179986749881874527102718012708650488041468322094636367996344872703241517199897351524836623001595752957042309365396567413032293894579406265092192162968871823404348969268478336228076546816321737634505425855915598178328792782291471681309107846456713511877946120638296807430798554639377209176285579319822980867104263123096751582505015971265374550970816895102950816805871943607115151140706206919548287719601217422267951155420682760251538291646518005261782095664472865202757825767322035901448273037371252366460117691108341942885565340604846996734528109097551823092453681353323848612600507788778064062922392813055166703908794730959647042856470648517342708529140923357806802436429327743259711473299439828668457140480763988110618515568362253719067961173661076664425408383965665290176464903946564040489115704439519603353266550046209371708268143293130853910922647680536046194830376414710732687589576879390983232392516191970389130809045295167321380437861563411376156775748861946444796893990166130339441317393813669871370352589734861157660885325698242523040277878117997957368947043775577940543902750538916308555120083674991170233596195734647978369445592710390171729253371674835290970986797781933128156223209344905772705020878215224767075888985491817679233984523809811109504278367521237431320687254712665319234107301859293889122237320596050966544644760587905494752288585636937386153207313928141637641967415712400853404612146183647664619132744497846127118852105877969115890035801623554579232755105283694012798931440052738705467847899635896204437767668260684068438534193334187169666547794483596393720347772457596031375958398280549665052123185163620122188334061858275124649639682284458109433946193437495995430534306951226682237375606371206718561467686500722074867563513586056067856884592697118816366883826257478682958986404548098947645639549388202411713467909191981642864920327893167046302193705097619357774033268747390333501319073707012180714762464872248280816054754710211367217925964738079623986755776540909613845471753539404423411350195149878933404448664825638213132846362299538039033436670319357518080265558055789876418336476218171759679043789133523479188957107322864658644819243879103907968812749504199978935803663962720438743218837461128532088915122196026330632315755642231762178620555226491156240544107732349451163897276979837886660954884267538562958390092298977868485014161120192476502383769793988448140312172927017029135917480365489859122030172577004546662667531860163493409391536809514753233755925726108126770334138206602154466852481351559094384513024665224180688010658991746781513845384174259116083808679010392511832464018372496805007765776561049827276029943406760470279871650555912779815521991958466006018739003623986411414282672440349758553803625529469078081915082686323880355589094736019368350880716302240839116539260064845896188422113058857477720264174539520778359973357573419022965279937813941211408969323276791877164318331020445734786342245599757693559952290125249286789946273768929342619438489823443959047816599835124962710593705449299357566291779036382259094074160279887158442060782359425573374771355071572358226054164270121883350300600641846371478633230468566506804171764826202420445296175837113163078432339768696091245667890792782672445139152401925884650408461426781813429318357410595006752049242626600111978750274074494367167897021471195667458235934360708511197583022645396857266044786544577586235600079648525856128071932027877020452252745772456953357639175295906947406171273480193909257496277447733410236386238100647457418877270891158565513052637127954535803580180265114429990899310726113990761292823797057723071260484924188893146549957818018092741540364198552103157424349614083515822645880869554179562335243753824437265671303185356166345030693835327124002476897903942389441667856831350952002306943922018429997575231288064290839333922128680541646974116389724159942525538815663332722063114925347171154634913898136731500734689272586869508377719274936818969752944362455256433686101427559092215016356516395438656870954136890938183327215231464759891909627530649352372009321275232130827849616753620462363159795084499305529221837439024013048982313889035123632656304968246958677511576464471922639673744202904187161537501048990710699206592648426931787684361129757074182301012206370250550969304671988899070301760048622355393168754817700677019972451670920781406081579368831498419710148149252174465487941696464460770743482403145997219225023952340222948871143869509632335005921902997817522609583274502996563271821613743073722003237802396157018020865300065011793484684664700257254337025836575003682132959083349648119095047751021186572302609010691961480064863176360058935267099986277161525689202006384377763897597059681460618210690080334490848046777443814651563519539861778572493458842205592452510689913631292445621129833010384794470842983693249455284170535030211406223445472257600529709495912691186343607936968739900351168637922288194732155449407431171196611257496986895063582518244653230110022904284016643890865653985296852361617363898701460715650299542438980833902526278692499293746522741846003410811531901431740356172503720469954364812925773472795337784155393801841137171271705006801270579184576180434263402185990200533340542840655859967150239160214686842878041439395078697301542688108933935817890992454066799311891087013215697720876845418287536894618170319499346722265051253942673911723033321514982125935099506392825547483152446353644599577644994068882615622742827836503559676040241454143896969509926971494069548268646027146375789621580188253598131850608348452469409809622226779706045790769756598522142814686523627998896291014334410872526587032901453039986130596284396074773141252465529339216988371941032234029376480018679358699106915507546038113170429916609012862896502702603350994240666781904819236862815999903354950878221771352380252752334473684023860942718412753657939214551505768005889900784638596505250808029560856654512600495672482854728363702234763646570746535321901237473742885234501697489106802677056806722453528901869670282489895147488641497394471712932348815548674307482981765371237012699618510640468261106725690552506076262470243958598735686030919878465084078797730569976768489636579906977838512670001378547502354401193796265079363583117484707127634508239870687404338792255858700057991287309430330852166164779118259331577764401082695750163099402534503360341023972301963670398072603251651232927510492446324275327824922487453182770708782321983563137421348012220726095667308976067776268078097293075940749007610083884296905594117684532616306409818972137626831568095381665441809112816283771183570758839265855428499673440074176204103513826215773720704319501303207352217901385604442646904519344171336116397743594562753185351144907902654635414157728687978518183423721435108081184063327996387627749552710166483335574768365023773056049597779778347773983041433907213124702697750925668202929901084656073578786727151918298521722607524460386500226260225057781453803327815719707281504928890796330913466272210929712691124348371175990040855441379019074939556762859294492694793520124697486749939891894001523869505271745901852536266706748091012012831242188247683107519126034695581127488924437978987412989334136220581959078662000973873642908333927366455514464811747223098693763587631760358704252642051803719723631877614496324949118943344058817620511270276243055780548910714321642638495860139171587005627927002315786317529487216702902691568848341473406955951379553696972933447880816232076224355482900578504193078875722229210041730726192906141793181553361322882525901158834204066461206595553751538689854684567443540079441154232055605886013801680898011149521512187053603097588765813649377043431967914455912017287562848697281064335514310423487659192218841155946735607345905540653751564910446155751975796501703286583909923078450764467954336171242586628577235201373817733315104392590222212919153039187066746516576945912353210278540692143835003213289209627934474249030397358508463044002958111022647364433212136572126832640068733045276254298916850348210050459888977908951075231195133008477232269182820672808283524221373164200900883416008333764507069084587156098379720601857045950754095113036644575957506080544050564015574782869973410925849150114735856465829353009558788841433141480557588100755645477556631275204975542401157920298538996489807255406434353907103836343630081981550679685844750998424832520183338610802378557962752786913058059129393065811323847974539204114337418862140105322029102435121257888114374873583736626726909752331370254155721553337262969879415072186736404619186453772133848159401996496421118824836233484591183946949030635275562664059152640617408360893704531684862797030465610416989176559099229872968854578117979016904060673557816229753516618544677874565596400131933978188049513537395789930941050984824196918790382203303127308704212419209511040982145795879679248874059552603405492138073656482746753213977489955409849739422769562589247305772523401199563547654160509316541520295680985288200567246700935527076749692822356215803303227473757198050133774883406703759700990245783225188987382281737158711165908882890188429090942803109018109475953125931448217629362770438618660970930618766139987862230278534650241570633144465313760751056365224290396088655450405073990351107482196129707247561638014688350162196171166611331707623921801772045179714615022353629917411751334417042570398807697515526553058460886420772248077462265757532491294887992388119130802559156804198254827128101694632722920700769818950803815054021148377639273282182393419407157195954269562500290946472026159495909961274669201619278713465485202186598615193946214379359259607041287869577644200873235761948267776358430267751873189202389488318016108677666402000814708353229872506870455880372699742438175652249202224895817930658455567829058695467879762405074745619676551079295927246795093234982314691811287903340541726753813142896562848186324684576163846993664416424701766632933000360274523971278601680465421399621703094281311520594126312395188063037951024043456674248471115194674435272964960985875155508399613945454323555100721720533569673190911802147964960238698981492079434006927940303415278095539284331503703360496913085487714947866618499863864595198224363278108268379407116310183128964555925262309503182905877082392466026083545716349600767338691970447429406582527836030264510492236317075053783851808555306602813929436470771266924255730275695604533739101724118097000018084185371944568745963909107821113842341433102992990652750127672864318184546679585239749116723185457517058499435652497182617907691468667360693919687124474016074704864537528595758566786851938380180153941174783910128627744807180591966869623727856883787431284327910427384511372590789398011702144317615226298509989931170676681768179264725036778575732199716613745608599252935050792914778137770161984426450303952842245601216532439615802144793248231955499336213382204738605349928006438437726242124871828118711120829938186057041773016756922340996099527024559097992590574597320740578776645579557596149148982880500848433834334564454596005729096102623785980725169107055897534039415001878397298182880240811020028093552362213406922442221935296336013948898132241327614226016838484574080290918515370628948797284223115573120188111136080383754719270042755964435564062434761814524912317782188474656675064375386052317043388964656526952164581176786993341794067084923785641166659724819350668075154727917418017200951194738737801485342722756041767879617244667248936539570467425516463510393706863279915998308762219873085418046877749388993305655105719673487867583520518769918417786138944776689269222477356039410660357470034670088497742747162272363370632358195305523117237940037582944123204050853761022566973568856268685788227838582643114273551044847623870622274872632512513064536561570088459322062218290160141041753713500679560108408973344207200875196090140460002951460319696536598153858006668261201121257068440677258479117839941842232958966036892627167117427001762342298627182376560043744818651319276941556191346057238417967725557267176424933886641716702879940359870546346143053413599848476604338768407605116307389735525044222849014196798136768032177625786354485677120232974565205666536748386821635477557237451762609011330435916892466906790618398706814092221293194902049534006747801393893973751815104214187625558490156265852478145074601661449035837172351645454027879733604799843824757383038721959730682276774470327784654828519543230025607309991547515094575364533525342480723177009215352553703921682231564561133343646186318268312703249589973877424357209904854222790591512105478559031769350138268427473349580377266912492946299550225603723583009983973927112214850740995731845927014940664093230792089389265326906276738348938599748811689195340362844154970061485625287398415480982139349101978693588281222598556181105076051363451679934165726486779868032511428784387963465703847691403347165781403703241975166691996409928091361635986528557675618233081574304872875243819063842001443807501357183521205674980353243858859571873265701196646952291076049615080642783849298466445464267067767219020529715655373647446613118047024814201825243316457918151073166273783720822230204586722920299182988255390213601397358456909336341228051383802235736227263672108853348371739822082115303598208001498314441105467243126036132924235651227367105262188956611106836346000404093635961379642237647940710299786185449570887556796233490162730623148240525681356811953320624517855104958661128744781281952580250835699036200041922478345475968010006578227593991068133039034720091167408345484829603464106213778926558841142568741514268603498039795253625199016138164092902062513449999887225474968161297723001609116077725035822101458770310713924100098604632180145230629790529148656972697415930139293330453216435170964667330607493571171473482539989435642532539449344865746668819365968888677722010172077792061142108704032253019408074707835683761185018195304289785664507098922319060967025705575166297638735040251680185474365368436669765873888114533874821003279278298982072176340731322551700003878809494409051377175727566229469451900166865227699907182220983711954854397711024389534477548251802171590223312487753445040279713361395727945559748534533874823019390024010630813673342552962549088811111132085797826603880421646033274754963940985978303441863042703593901492380004530623286131407365308389420543551136738385166184992761490444522582806547843358075788679879451787638825088487349928165005432132541447159294607245707369448183556330032771927519072627047681369447829032528132645394867399931781519103772289136680784521968507905858715902866672250846734527786856018748819656150124938297269111885858798695841780398906858697810635971426185896655701109772086598471735316019712271303388195127254477359436857383194428723473230630103705600295577897508938397669440914853251194968261642406619444573318089226668270059585663664499258462053485010116959403841218876048753107965330465803937344900148535413370524535546491776683852015504806059110282482784584294705842810612093865893147323369621410683646604307918504937455926502138135592384400957760914753169397882010493567620784891877660469038209189903242538719899897249177161118864851537172066559691860734989926494159006476606991083118843294573752926980440094141415774894320152330042151365793395390198322271131590384154387126139090452011650228571603557389987701979819113122909842384460653083820350065406094898069928471792633436173201293764447600360159417776013427023768819657260530246345246097064781311433920673850201518316305326796871578868284798505714733180810906881836472420121292800512374476990671848497281144867285848653237912911627521556062260985758241534882498159005669210759792832240519455447696187386554051554621552132100479714591536930304713083677620594344711662001875990380759382113373688995288748392215282313627450253536616637615537708418380940435906650987019046902951811634372625720630456770193750040646128329172353258752838690403525199996972735150522366522893615747401551238442345321840466910738089747030894395794049620458697304896301461413395734980751977034296893228229582222284129245095968393367121564005839669129826079330272506692086284884316780201563178859531490887394338943264530503314089992902347910958483443691278810851954296025405985392063020150920446142356369238717774672350111593701732586076290945610652678988322130409493169325001739718724120630524765965562471549920755326444100969892478136628557819931256783506291989728241130610587823170114012117282263963100118180627463350241135496732671910568801283152904335360772749358614523193004897074799034595162398482824956097773809238361004101044640950824759767968757073531892225358928119328066223414994952892401349232716054056374801673332956134924380270602005602049170656890539836095678109374704168708244268161416098362868302774554906251668210321434283525625740644481629242723827928211301099617474234533936512187563966760366042317904341657752882783809731850019517318088058181948835233896579508405285294268087505070408390226560935077384011167617439040080588778769654897152240113808044164245514707620503830787191309063541095898664660622006394728086653759675355655640867796526319738454528203796392074806605424157231613839214902397742168287867263408512433593776778510748695479292667840893698719605684273752616343522880315605042390434398752332860679364081534660340729227559709629649890824932975038862538991297001937076627339175279354352794010468799264816296335846025826556383448589718784547148834090170283332691535943136722197702980927151175121444242781040419098025036414319591223691856823005491766150083860010803797111667308876666136813286775814770145905011115289967675414271013933770234107356586275584412590693863319962397627161475952306235293893740199638298919500351545587215039882707438192276788779083030447556896300906577027135155314840172564546111446022646975231947249844893222015499477005658548084774020530032781888552366320876972078324588193391883429263718606140523289433399242720997612690697522720424910560677360960038000780078789723016466112228032577744032116733593629670649430050162756032649714740314508813610656486863605200786976969377947507486423097514866598955333918905260686145015927648371288624772751030147423939536863019013000280199144900294743489795131245471308903089058959632610738612751937311833103435539556519252469425149843135138026397437443894688364879456125117219193578528898805993416777187274983801987539381209344612705375551293410284786605161849698081638622232026219706041563490950485121576654381344601224391663175935540041084481680609536356275444799951414345075028972644985724497571325342055495501135716225147641246733491262269483119711258705406159035293035723650137477670443658912004638515357375801465486221116895705943224772907293799147759953303669335128202675040213460300667114542633454087808854658180622541389602856011168319692386019833559569593322510815422367960659395400133450609913467630993775808029812733296182990968374371580101665390665108967387985777131990152740774426359060667823995134926697602427547638639455500310187123098429318359337115563018955297198332487460407309809040005336454377609863038482030211604035636385124885002589707575945715263893725903753774703226921645943577934379618094105227930777365732569979910818248169263474441316181914592950972032632470978402682218184766153572976248738809682638016013132891258703502680951332438427166452439864974679697855234557522666712257880658808047715846891975680321398964162001842211727289207249775811687558972696378434796271377167014771261427376838890047349189493145866597670317233053040192497517977339863277400677447485735417918525396679884572637040430314665302642640044206041926881000965132120146693758918924919097004363359986314088419305012961096712186538783104509041192969173394471597715252701211619498238894829527924054554512325521749745120085791544475574229951870390834641938070336543201497141775538382998343125188736059298576932136915576651367293505395819556635584505325354501300178404137819162175469164107352095185630080720020526784432511567907489389009451395148357051776124500964080639960848151938060709151468292100574223870783310811397810993639966081400994009433444448446845307851422920523956304045435576542607445438601565455660922540569327609783403990271451394650118827327350802140065919663659303282646493098054369231525457598211073968099231088827257510010365781695422420479532460769638035126279469544764921969083526213251261038242939661651324173277967224177048393997781140032799407242406755435337351368823296626344079941171159280077504863952162740458460496028781046284552247914962514075815016523699032900699018997240588349590719160819556168877339301413777504317575706528227861638063555439405647024304902462226321934085871093180488459344804164663515995192433826921490630587438201220134081475364951794731772144911513038414222090198298192518655227647771514150749178707840112413267539254741930072397316307395539395538772396221008498852959174247217798561277682734676955308534584799425457293629649838251666617007334357588469427851190272656284148892787655833960447881405705470148117455846101185272266697311467405014573942745041673793063686592902922828186393953722261621243571186903354196053675995798968591815689011195794620089958116611903628324114597806214271550206446949296464277215679274485952680265478798904065826427066958594520583775198499297356649028621870302812282377960271338791539286082717624596345140569639138261934870518153332720923906117957157809713885463140363269357783417822935961838652805492048775549235270254243332520247703244269287396177023902501190782833608833280660864040088109315269178260112748622033123432707416062178955895461506802107819239300125732864297045176081624128097612034400445968137287168505460753238950923407228834056886157946569791430120246228591462431949142318383666525696297685385220248356297446437907170580857593908433145158100240738027056412083542425996211865379503279058626918323638599211074430393538951684421954732067911631869829606222425367420074446311923486612174859701006623758703280984268166747114458909938693801979287424373253657522047174629772907755804954495078403213490351512502521528414088066963422533122220849375217140210845324466690329837985436693743975664608404662456498949570771034111059920001828769346738356984342905690556418188094940454253444240904854464030130418031668256523683208095427740607966687650903317457700736044866659379366503752822597040583111161527103798953119288038682834883224210559880724961786910762977986992528302439191230968880881621426545017585674248944744422066973076195239988961079165577105481374391646813921290250219298707615813215555530032640067531930665552513244352891266152759665542419560808646956395311418625200490916339105928387472760033918348682505477137196543334794574586513557652203120807434554837129073244838587482205287433708325740004237914803308575994171075427118817461300355969885417002804915726580009159487694534764121818951772708138233827939524545642250447608620849641065255113261690159267514343036222877444337703768217817730083096316829234319312421329030745536510075756378886190605522345182650307708438005546318071977203055232445698768153690654960119640401488087926129023599318327878492066452396910591840506188542439226158048556494557600924119450478339390121851671171908439518970634500820191040741094768626718593087522722911625152683896329822621154892807133554267991131736307830880340080956133553438409712573447779669353200804633938672212109532914901393147909109678603400575247224616192652007588867579746240188532285103274362724749695663439567906804498835070230539403582867856144408353808132230073770417635658508985836416731303186070256969416023643797823675360217334685132451384968134822998793771962757063569710795119811836353235495166392932073401642212918483631408261545379308004295721318092396598401112320622622672907871542002293211347318892625687563262967831835388866827596699756720172932670765583298499054238603884047617499957365714038540176469358175330378995369747621825498212931143904093518969059938851656025561488485322124429769796884479433913582459998673106556712896029812264334477160887201056733967151606771204347621323812780728388857511135197295127925688731412989397536797402131291014364189748241778280382065970289918304682732767400206174778272148231280764233706411951962764839853344408598355665501176088667226681534959910323359304244233871789106591950677390376598211892943081317821435093929231190436948375354238813654976275427054370952443989851947893323886618492667191705845606115602746946560011233739250987187219442372063865354973702756926687965715654864951256365305781736864282698295376425563361827713139187473397397936731377933152562769633830231472970978396452932885400190434296383705421780305746225297034401081984912174941862142406847615746940555959063367905586923927673752579478315705055324854420332897758010018475775461609523377913320051701312605660188562456831046292438179746673427951191143043710247057159636230817681711733523283969836206396880307223908660984132230380405399775269256154662032120579799238199055581227822763371247679464942489572305792194166378289123890839718431665666717799764447399391785006248339759277272736573222443134910664571119305268677737087176211977170992523649696653623093692034028386377531704496932479713834617265790391244994968540568674762528021468679531569474861792190506263729013655023548391574005469909161014243065941888864448889965967759212235247141164338413401012644226799545997220508924468261181449188476796436596650546971403961557369663921574225759932353456392232474885861474268179996184065710620317814271189133100425229622268226484898738607796183096625631795755403685858836693074640620678941412451130812049259771438535768151147107771147967210922964274119252458111728100899405533122579512588186488757329602269733760557568308864214208202678316453915564955451483076106477074239633035097139883191757110981616349824305630083705973627433423537263772659330111084016638338852943918901405746280101846983450316132401710222895026051816565998023724963646039054128766570529490310654936989234528007597883068167448254647964633435374332423561202979407288780667028241115792438287535682762127644696659786702964258059977829882278308267244560752831674999213292072381295012630949520955411415917373214441194936710191453634592659783964328529321871330999289964933722425571258088941014009507907327817013999793768567832637784238958226216741724218088310237589662420324241703725669813679400296883768749387903618750330108337584701443208089501779460833910165979175964945963633984743938866502131706543824360877383570358537481566582418964121879734184527185139901102055476878295412668919778455806504305955547654122404147499896268429952045312647734380694123408334978463308662970708182955350906296596152183487105746746836463120781719180719695305455792587510940520506547752748924263394411849336707503013390608274490209398271354449129306373490725326547324921003199295910736185243341323560834816142275396059402226278007222626086020589604515511151473431303688802167542820511561722302689975767457034232366092372149056381270730829314672920393930187483187253967713665031675539899255692419690066488630224250723717986587283122668886862659170904264109169545685661305490695421907991870651375722749626192261877945196592412458105450394412318280538780128972173791966375022252240537988453991280792696634762745813704105997078831524286629235347763791844876049972147450696118133745551272691852383732215430259768602631775580716446373733698084189842841369504457556548251511545816051081489772720352179807221886059772953608293799595362118686571468263041499718342099240489916366675713259263518508349362524072977383848912733629114233071350531794921351088078544737337761356810290156789729650353326418910605051164685452302415132607120884278407152017893067390704544092982002504532304716202341043233862059121405513806616714239411164598242032451833508471052570864617628254123397053429440000366469061949917308958538389021123743045419773226440265746150591932621802670783443133381965670496027979657428137275303047879246339621636385177424939828292087621660390148305989598731642603208495623694720068462893191894989425374991002315819405911566461945001701099757164675384396741479563147140406463628531804660281511893115574193237906770987345079308133698027893274966489488180442824159839363866778949144179078150221932798416755146724134585972151432035486033077805493803985054251295705414888763683258603880671418134794888510990968754934164915558606417516985836487567679713709629548777228426813773103911675798531903927037764668077366030084207991976379319922364834986861227390997114639004999756941537660649624399011436594471321865604584270457952629401760953697913088601536115733793173798056881652310639463347797582253117189992010173383414919511119888883995283716075919522311894218453647107235989115431592970448742500262293236480716340542953745195294108421353075767799309852128517129496420377342116159172183990960060755785832630437746168316793762958674846390088594525423493411653111458619785715397424135930068551929070241720580528401319775741286899279703720558893894814124956213439630077638232929246594544344418007065225093768044991812160429161576685536752393855908534541408065766274849137846781337803936213685239611311833002571560412702103652757915294597874790994430812710609522068438334766758142752329214561551291887713675562504423832807010555489862292663473178661728499197270440489117596169158609518119151895946055245519726930585245447388264619799780192401161361440145472231203631342682904215267077402446012887959711845331052712022635062073928597182159444390511325445060734266749775784970830374721624152987680248836712875870548328267003232764410877254007443746733410804366780915448614488709533328546036389325881374031301063045568532842652585781868377605391715764915413201951067546164634402390239282458573894177142804758083943234136480854383237778056106732991698814928476038784615561203449074808762233179895324885347009119200585811823268126712983457651478429695709561713643068420032711026404179738578469762292120696276950841656079760626115115673564078830559336297828487703293623966446710656002567878527074367984610671925158505574577447304401260967588159717266307342093023387963345785860329371974759310356339208788450623081952695111649628102663469451337275137860932353400635909900441540767576032688434956178230207539622738785395040083113091631526935305102118065039216412938270414025102910078126363861645171494300311257256578264604797714785050100216275057692910270451032255484344093915789256680046028616224134489991065630001211706571997889476121797115277533117934613026974000974699009517161778241958551296955308160038294465600491951172963054191261851871279630215617411524896062046834610256514665758035008325360291289317284427613752584122140682952662879738075497784428640077080494084191954586583746838282656365554199568994456001652674524904567442041122516360603491519108219797789468811825909416664469830561215242374503896845219074101991093435647249441753000405133950320771213659878558467476149043491440507415127900017757230090678513204512646303757150294650895340293289216130474902640212277237796201654510280537323768694953587588660148080510754576444183765819437501471451119854368553997888002879374689085599162153100983696678377070748152490044395991907299852028378446665128653670369456528179138634981560752993568876305522614964860907530226477384732867760831710158219954102322524630919278066806065338541481361363938521341825813839567640111303798859064761914883683830710264153312858422462599905635543297205060225313342706619403021978361844596857114466468043601912464403122106046229845659102498827465399527753857967457069143238748998643758980704151687778498720446046376545867448553457926553816145387426960967844465014444004737862767544267745843017108959085563480366179462327078344992838651256268852502238085718597715026517332138807047379004295052088132554271378582704850831211143384242128630434606735888985271386178818470859026525239722304063831862136198814136696067101926073297049850360168152021083899086300070272092810786924926550256241656838164916509406347029915921768196414440849387622938448528429788700407612124634841287077236224452859439760050813552456584294869956089559761000520151516904349806087703781379448714250751900143326121531646869311437758445254684681879652048266846224834074068086491044687215494505451249222761328142579297137440355230713252714951494805244527320371033379945954492957377793599809891843306129397051461468439322375516202402775700981612171164193106815684433022853679844011696727750994304271090447103092546249288078459836340628820493349970788688269068224052873183648435540849616620104469974110838143135789940217721148163073741073515543690610454313240978157314877902488234804528735761124164427333786233998127505128434888425759388101187321836556353962814891073880931706355863319299391010507952363954542430685113571830820372350795370674589673954746672137395321372624930599789996220077574616375858369828511891856388176156117276521080180357605426564119428807470674511641735118343825354673013471076197202596558977630536333974108645033008416705505531372956983216623486801689512894981568361176363316963335408131530944935031761520998545798248583101551416726662966833418061838884285373863446256529091501347674542513596518470255363165237861908049792906306651518536153056102377052613886017238083310735631896960054889593155620381529660383762651599313865569302218455768263886404148686884401470309447602313201799844422283455648175249386800582578111117180276952226668215359702878461270542994686180880447919603859159262516015439144908387795069072435179925453797667896471274212276482464857810500331661895115535082802689087251827739216517559573710277316332525131633810120842920705833162195560140601110958950332520133826133312570133386603985806318657417771791918561766970309157387967522027801213550917453047157155049731182175749784285828067611955250782094145633557956053728889448050623742442462199946657475823350920598118411449776554039574678167922980056517857801357368642449527357282011156732040550299484791094325465505384980962579505385809650851039279549539275017233259632318857292014689164715662898017568405311906540453412758393369167792987262347295141378065819783674477198621954122097652450026213496771033258796904848425065205988789254916611798823346465985099478507410783946092764510241222515807362799575517627693389384119595174301236308542671374103024240718811677725130801256481164431192052399481894477253497069318369966526538367662936808058477452414262166378696141701668392054116124521222597859729792863764221226553073568034339778215923259341741900647028524833336979526810372256250650600352218784295659184184377277029421492939358637667884479193062306472365739408533250182908754983991819751479941472025380162240299799739678592511824089463500142623793135025952307975824303890257765452096612284895129466405360964065720145701400952096952632064638832853905685285888138685269612851762581102896510172227988449560526271644316306361163465574332001561954510641664397197897941938843585000158746773806016675902663134023612629972390971513322375502168755517525824798092149334321235091413047244035909752573904115396756943754915248115361504384321405978891070820689836399941189394469146846491925343723476646343431500058364609250358198190405034947297904700751830924708645764012628425769720574458118014041041662471230931379728823343134837856855703254222450795534376064450102332472888975347848039555742974002824767190119378529673231162266709053349572153169598082791022956794217278580477620146050940735747298843302507384235369688032656554948232110843888129787810623789999563108541049095184769232763621378753196399887499082308653108228090613188892727480364217188053635725827696468932595140576971722729751109203519651527641841244720775701189961317567435230288474367904257709086840755353032751505703012212784865766775327340597784485307524891292967945873909048367380156561631513482843918760078639041117141291240728163251851531687743668211166435452264495822811528962062068271378035119155272123899125262204382380019349119273951320791901775094654488129034567951830960406292028681725074562586140169350332987530746791457878337892090190268963760136838135903363713945767665156955253332972066436736867305994815669350709700785976205152922202470983487977979055748198632278595929773498679834024879607249005774146250097691409027950318168501978127494750689635187290714064385839142884267024721473188832355786510896747181338197073931914883853394708527533245027360252327787929823796285851102136927536851839800330735804786343661615925630505913728941706677915247162747153330213837224401355886531159281310601105230810775017002408012266351471865114969831851802519576854216038348020956508537383683782998081493653185195042652448426867251488363559951059839126568009001003446084478110978018144812127068255756674349065222928324691950503234255173912452005407703597331989233220778162734282871417021767597346503776796570536281018524270110009369057616038039581927059600764546189824239801953481347492158309477580857781173081220763065148824700720627563045317167080764912301643441698191925613425146261500895453664401424782741880260379331433460950859578563524195507372803460150056717022028934972448500064871246509925827865024691487606164816183014256427661029819993310870076216538129260880678590626124483093075427332428696703194444821360669842774847673640173659686989964746799944814298013606996485204223767680658888070397652633773507467546614701881188867444171620090345795392078230469653518691616670860510452317315882786353667388987495079821044229792724893450446752038277781268100471221502279607927029478495364812056164584186402110085715571103058224128475111718458245384304883036219411484732284101136947518425326999334831912566761850087248785787421182885854901263342288044607238421870324172221664807402906119209564864913582698180239845841894686890871578662326267088514198639521869928437405528142579591039534532091722768438106810021696759589597126743211379595933844489921900463335859380863914518473945808292767257545618851626139640259164366187983767140404120980295469113202570584006965011276564940385049054042900161711331490419108141877494163896979985931863375308570318033806357476083859834439677502286228829915143865327542054575884129718472177258668541932513162567297281656114332219519201497385424195887066234169422302645737679188804138322564789769293558518291390854569000097675181324227389733343646345439035775701534944790592606717501216464661909255419353973863066459666079266124436116638605227461854812023037024333704650587292433795335106242263690585230045610826093839926507047051697039967045817969156466884865744734714884283884115767247827800105646295660747010104715246398467339252422953154992769823861231680948498501074698230729667775980478710384619275608891410915634296073494927631405600333367829106245991409327863613252010684012136694665823122982895090299912511167202608264924022683935146207095863841174923265201332332040986563737234043995616887317415567814299644268695438066346564195515315612949423800468333629758084111699140449560095596019274493013997418489214558515437080454823155342317514367805094686367748863129871854727100751005681441044696948668541169541452885536807830458548609139188921792490928247530103153049055275322008866068069628214584824833733270635830254485951186210676292646570437878808309882131894004586901223600350910066259533564468422055600643052809136831741550902555731044235487641896382248025147760117449635173839876763751692482748087403163044843265595837237395434609574338618763215395366060899179967915199442808296542027391728150269927570025962308953361636192149923607961526568267998464061341213213137980652533374341160142846604604069403975980511402278081388304764684417414431093317085251972118823631919660143922921953322474226985881581904377847717352722078469789665030696969263384086177759386497445047338318461271178488828135802258821837699179049640076464697422971196682290872853237175835609329003017727605621578212879084035271934072830651224178822464851218107389665116398457857049462240099109366320162986732742202351510250357207289795856023163184262199327477470410088270170338259723136798819841751321966926317123863785902361731590223929756012638212944564186125589883693434701193205134615851124025557256325621059496709530085157450951806322128261782190242908129339957159082926497993294851912561193954987847725085027052719889116052743338550899419267098634676223239361391728768695246768099417455090135857836680175768132134703503032216259563168377117382795768106473299062416721846212619923067701804874345881664012129654325068140698378296816471851158286258898351306051502101272657687220666605071911252369453480093856764232701848083717609319351452342231926258410029230674775575080785955609310202757295674568994103032624770132615942943130201667092664164649944185901046481549219074160359047015710657653976235124570344655526235347106168353510652873780384563317080043282699989005229582267997902516432020509766282909374913258070359505887172782231512628114849438034318569474340789960919229476725473075814338238982872361174713053852019506224259935629451277564317896595414188220128501451744937903292343801719634503919573353682720060353451564571748384283384087220137123300833344392973065320889720141247587618811217739938382258911744843237049658026309573614651027227475551561064309307630379841157464362479410102260660638511743692915720136669381401934990504141277515554543112814827033584716098288973346373315509741426503549518487220439534795482930581115665990250942816251467758811404971598995475207802790704867045058399948735977667064596669432656733360135931473830576079005152614682921830478664524678640145549902243619848177382361457754203074579881590502705997421796296832631847896640524423797952741417547357219571120043465833248335650951587065225504606296165437704783431196777933633385657380535383559707014062705385327733959528360751483960456705011207666808060988373190734252005235734735250060101008824178630228678319847163062359124138984249978242661086475193554612443794997854513563261393713404168480256041021688799461088438000982951616024799968119853783891079159318318650549692447031309066595337580296037288992631810314488526914010987127171458720780460756826597344791391597972938048635404180133280148464909189067568837482080677616658103397968018876223466726345705417063343386370103960304505579663264309295708781148145013738032067960806554233894852512385406271660513085057753500655051826257482895807753814178471825078410032993823173427260580782694887302349508221659199977110306322998008458467750654836379793067217814028164234301821461099310678409241534679412123900827356568959930674270383275082523116657733986730657635256421540344956466344569594592774316194874855907087071425992759043528958866502730302810716933746736154727815838371773124895769090036288817744106572016593547411639125075081592064146898581545850090836675294286089604904980402062871670769028751974010429351745267371324590294922979341776746853743773058739494237622947497024489163805786162699215589358160965168696293559323252622936267527664939967744826096742746279480561626428197024393260109566455114606875086527920836291254014027308749883629606567278354778723145187868358127037160684271907762013782304111462302920601629632004000925657576863755421066621445504949350086535494218850435072909708404299180940115925512518072729663936096011513379251203231679451442774980600490212323209860494114167607992996702740555746089694596292977640261080381465610883975950847993509089349364357412667159798213095264627343857186174019059397722770489079556329782482245105373969281055934401325926555963971296206929934805416157848311650261578404849360758969886364919589790597397728589803598911155620438495587107025555967066090482575121765022315755043781903747111791438703588605484499689603976881443710322601922096109085722747738913273075891775165816300196645486035710933856642191577723285562515020790258184681631086412837273121857720272848550237765053310516874692605609719528831541816417918740997484690379140616122583900418272101691689704997466053600571063086398455473940234001503567506520975095169673510708641772601932839811110983110540335481757303753417890118402647248409596051422199493334437438391448191974028715707022053636597267769200511632910573025735234082196462383039937810131705740350916915873747468614263726971918694890123483513380753606469462474619826698680855091258317207062982152441627857327553738330582685078725792862037664924628479764641242744774011010461570452414086170036035315664036045679317058977412382114347762121747336191251386195207807147320092496174793827385681668528770206451804525871143016354507706202934761018826238254872996707017794278955003454789802520359743740150415560859834642707579966590602295554580248438610411495499648545372388091393392216455093369486803074528656451405759701271714972860422317656621293450396058236692853240653052473555209306520775962328857836048110825543092228457180872903709543553042892553288242969881910087906416185071211939466098911506647766883077674833514696576713727156414256525859491939907666707942809699241381694236853841993207713308880204575330838076557583730161349886573772913444296071641011038547413228482301090038689346388541367133936201846119812965459835987722276276810007311153893445102434990406769406416844209701807694241174256650874901762217651048497841927642729999284668203202639359137352098579671181486232167001948627581627694131195265418253824307540595266500712202146306898196885180689826017590093341203901017576897958955933273574488549731406522464746580658577778277088113659901767606422755271133553750688273815820781334690494664583813325879111405544400502795262031681957127276387095883108154480943292952557859891207056280661986950804595364395038967588738492448152740931907182405333634220472378775247516326030540236769281876521672137072498697267235863342544416193895043308960705920904628899370709182631193440371311870487728161211204436600444118190106575932249134826603300281734537414635697027832331923315614271044872344853712974250999450557580787947971277250448468861710099475074816308378555055539612494891436373006123013593852083391329964941138612736962076118326839683635934507064482768853128309705762988702286447611752813583094666262039490277810888049871666867694576544788359063485665565561652037051512957140605137287672071110659716179712720460542822444019256787236880787215548678224623531463613553149364590376472331253854488681591780410535887840468787045574135088402366660151327337858644992516998206985809299344380149350574067642328336884860038966675277628879970736770876559389583506724306302423627902678660710326092036883928368318855986337787636098130444376202121044629330926858213736313806543470204901228380142653915935887398652288360403585630767018015832994131751662473701290347606371402192172241980358605934367052791298158859636683554256268849454633113575750657006973526050401330289511509071793625074062640809031576771898357794602071973580890624297391086160848110153562479842980898496781868150129056389319325568248804395700343878540559321991971918461731609295658353840774443205353134292298118160843868045805852857546343655664141157930857084737519112660311822198766608602952980836805798578344771155193575152373428667707486729799642160294152926089171795532565815994981928414675315021831442709423175068713624527914944955808687087358547026769531343755905453869302028240934638907365024394205149099985658608151619430942511275379266619382951482094274456549112517996332345030183802696805005227638283897896629016393915933585420834764040818543113427859170887390791568965191452716918431742132883458265506134547037235640525303049728224428657514635038354099298970250280267749169492036784599232142614495943567444712337502951713953998048963975202568588166290534589983381048315530942599762112786711287773446125498883586377544752789465805198713947050530930381529224990457349325239373649511955762223500518929680151439370021826501397094411227042950262352961922629909783388875773518777014550593276739727604009930343942732521729351460197910675817148811731319291359744937782360281456867705727022224472616385626489973479104206130299219282316674661794503423287199283281346689590519893779049363629871324368828566987996137403722719868192600983922688458619370948842333285469630903211214711830304471314225259578283754758316274444795808208740528442038932428410786537254277888902508192625662201801925589870879749235387791437392724311726633951801011336874394021475314181131249230511815603128743410145604476418186492099057477910502359925901702519120874080292153986874284467124996013561807360969307892888963876854873282228104363103619858559096152060626247621203589732792368282175875808713527162188825622981553722490382577343536080855070518941236154359586665516118938781485288707715168504239389805352111258751307996660869272584905224370054542660154787828897802009752342428475331864775636885931463264485087642229130774497884486052775499386624484902282562795738543216248851997852717329006342018598072116483419765236338288249105911092570093990094794953628503347287070674887317851898144345310539193956196097909336975905242426116721748453123798107819052637365533378807492172916835153847180462146015011910791179332374868379169709868579843680778429340386284611318788036329430067825342073137744505630362257611119045999000171309494984218413459212584978923863614163296906061502938914180641681741443514148472254295369576075068419572387314057020889977218857999018061250359186072834122783816209257274278326012755873784027762420636791251576272107480493290369841422280887385158617467897944425289763171258811076667198185121291823693035192385056981858447972191578589756650750236632434478270430350618111884871925584361175500157124826208067146709366959519178216057759536516573017318936967059184184518391843243194722576510663289505345745908032788978938217203293485248510374716350179119842933221402338848322841173953819214234113214092340622078070290819441272205629740514960293245269210496285676513216629720521361334056852611538779270735645973001501257705327013436731543259552270210742680966747630239223573964775062746147157779845991219699895278176526780825695950493409643296141430950539256149103199608000219358293920743063675598162116168058102829785405091234858227019403305292712163534505170145519854532421281644320403853804360159824538493198051465112851411657542095104633050319101670368594901028601738899329491943517269965115996931780781819521403759385162868948732892473694634911263679814240351899996362896357320919281169662220647083990555068769398991789427470011394005797141362820268759392719442922090041727676108619818543948617330931970096702833165789170864391379942627723108528631824772378081295201825383950236704045841731497307343207494536566119454459913411707416385934599410241297152226427256750392552061452813112197694333298164706728911259964376692061584347093196083345130386500790286542162697683971103812849857260309614485368637483905727976100883477749101971897200515352853400503998474130279423963761075263228018478440618309505021080680430278324711897396582457836819380148365081766173706021371173824762890412736923196246452359244269949639130734878270116096106674885626522175054671336083804107138281317515427238622722034213658756967356189208664165512450592453798252080778548666045825463825341569397664325222993718426151110830504277630179368744714439468178539081983910018609068711352479340293198922300215817724735247833727517043993360554409304140375157637896572498860083003368652124575525136992937234654139697485110429979377508573142002805356096355344337154972614041219750619531381155383304547688276300873896847551859366375026209501254520876841853082808267102648746199602327717133332464258879208939520115776777427991513006255696545707224751946839554178855199948329066522721699230443684051301877360165332033816095158515147369420746635804056721874892027001088588548957093599121724904857261622020766071584317173052533191652760200435839171498313050224358203811113364006976188585001338161533943608930462756179000911657042377844551998372090140569392704434398512651182725144463711228168794852234227347588934392634275540434519608472058168331078442300833162320359978510865750348131739193871121239441948966335980744711101969145494370379693390780586204787480015017883326967215948742898751818616226926643182077272733330658925438688875506401793861183053451035759515734240611721594437436074651782329199887174153332559987833637056071957108166477517501624253432150107521958994034713229072000110299561774514291441968269712637773006523123265659942035009270142543819738503552712348154456065864268958802023107285291599488116313925537029442137237149295817217752420061883417654032249045052599280190467605314703303848257353397227744585318436751376771618102288466117179561029073957792088634220079279577827876192872662365272691702414468579802252447213293010707486198812754626944526689446473258592945909507149735443853963426455581529572343418537141635532762130130580598561099812439193484537622511570066363545287756124164481329193183454795620366554681338766054538910241601547028764300190447750826222656891569724668280902874821695501261810014281275518436850279903816924857568923006647502137423910649846700137266818728119027391043767587830848960732559208316450493523637970403281851712233532568541159212671434678407951155044443681424237073529062496760287427983844186638323238505285863341004744188703377945242785191418119767341138696429754781646067835172408688708491184525838735536624670772136482820455744588273144404593556533231671784231348887548859608108625630833395258027103707618672588320710745459889144148852038170883040600389628715943593403231050183091042188070112788785417642300624134733785836624906563619069331824511921830243392294162229901831103766446533496086434790888487856770172962497006511699382440870536704382380258535261288784898321340056117902286832112880448809208236419358327833495363531331492297879810676811067435151203421324969260565374255292094288773430971694674684566219537004169980595960495560718438911699947633265151642915089156974030903701348844331614768534497509803510429401528246453838167847041819062184639522317504374016168811744888631129666518641017502034529399096935565503495914881668803774235736037513407165944423585578907432905380212320696652253937828551769882473436139844050241529533267401533101730933921574901223219571991142650804092368725189499644893153952889945315335009822583254996029415774746870106120409536662180029798569458507134349560622850215464292155114494170641915980404909885370190086093315788879870751970148567030663711779327489084009173837225997873511732968644792189496737498429163196737814189648311273939331860835398663568784135208661783665793022244438292643819236160700985838413755436338599635926889201084960573137896803513503323875683209604291302032931522072200840257855713761388836538719899854959079684759703545390894197257216975415047632663714880687461891630022429737881257663592503824740711316689378484808201554183329423509257863547876085700760583416330022898564089985737678108939046912106298618049276994947003902703387013408550623874949523899630827601838842249565620094335767804746507700433786296747526096653659978619010098090792016902127530213700639402089379977425407748829294068850797343597019097346688410720226068784061762242654361015530336108535344379717991753839980683256449014463425580771975999976349547413665851601416682028248640860963338377134459883156776050548564048302255196926633860090756943933585295728671690084009381690297309121735010172030460816938874788388152932495886381239663350090282356409580960505528257810553705980616544973741465138110191207119266448122681136356081902649150564860003381024792599399226006548110404172066820216204469906061774999627128185946183361955336009303694630676068659905744155285766835369196266950797676389779983602041640306026195999702605606492487838394193170456985690384950612802933933323622991266630552340091585071102340940171299442955592289160836752489734638402784736647919052049929893788147424071123959599902887661543527791431805295625301491371011035349828823005670533099501109194788032484426524340583696587101038063517604358219285728517079937805937653489905642658589437761387555846770398372066485716360286120782604658319458911627892975077233933917396468075860796814482466078409809964168521857891416285397978352994356546373970786526748896029494408151659507148916713641972307016055920994500916583245282408978416020182030763588982960837765338443800999285533416000371035915749894916237941562818107123747944184138233451610857751113109886678270292488350653330816706314628546984748109500008169962463678156503433991223114883996222528658278559698837203287417171234101821390578288449856942638027156492680211803666100468160954778389516062623501192978257423048082977263736715548214936192180786637890223733706609883718231862421152687387115699522297827037082079106081689048513132650333365466276350710088502273030314856731126010079592360276289272792172575385736536201901803137704649991974179269472751526277335657650302821941183739012589580764257155453582860513069862513030814775984335129098404177726611860614515815731809697649207980570535691458491900734392840862076774928224796053786469323481647791577444240333515980369749189210146030803459019113380488417070156283393769397034965579732216004816287258445763286061259772122788890055824974903117464225836753855777092363634482955190054564613934666915837997272373524375623474007420975709659477097778468925795132907868909197625656451461361217381364504370411671266299566805285339682775607607845552319893431324864679232951751459866452629276342163952081130459025690505377547553628913020588703762621673336947131020915753415297229745831280927815776100160911229830539167332788074652680461937886816390770206870250114157931898954182061513327812753931656684678315704800901123390410210048583426887157581534661767504955655802504158225783964174414363202317962779172456675326362711188654225236670145902352942700366754949487035380761106477815073877426631889958382890717997870784052723604777788160408350271837378547797377964284668052197935925906554884367061645246231406809671301037950271294936856266832243412859573494305649889201645605139742906291669651038431453762049592995166472590935230872217885671595729624503682290308009334255939539097198429236166692577781470781037781044502372628773196861501026966525772445925079490290466565253569831282113754053248126214891153953361719129888545657146189779940051291355722269664731703379007566904421512075282022571887550756256392309558096415748623562229619912497157936201400046233993977039916660043262037447070112764891266561805689087441343353464776040392368115362408938597933539163644732487550960732701227454512895525053050652728743352751122035935656583679806996316769193510138831053505593423048741934783408653290801551381382934332787085226795170360826375783974367011485991036342566422318492279782700578416625699949056893271796311147619384932462665333194761724538035220725883882860032110969204639144968922084378586458485915641851985565684771880162183265157833250758131998747224073821504646278195997229970284830300625312240781127172041759921383386235472875081322316096605845351772323341254704719949993787781234453090613660771929301870012146439551697681846024716670613928470235798734253662890421739738443819675019447216369242637614976549005931680017034346462723988757883298861941764440650596465375976060508111659704155653572170553859499635223686667030023563840001459762154975441787729402603170381925540441543746651797886493971034147451471677762205706372901425777690507349598776392004685978514870479390856055299272495958516040249912176049604600125027898637111972233246047090441909959738110140160496852076320159354945023609792923002465556122177744821259669086629018432272747594091253027259609868125382652327636443635311173223175907644895369263838845127480945050967098328276358021275730365671048936229397209597695908756509065200317832793124362866304301923249089001114833132584630424310613960836246315122656325507615870627026030374925079421626767049165550327141841584076846151193635079655501248592236214263031544909557337284500360854908680089279611846268840357888701947630303073124823448341644447878599971512812468586299473314962041856706639068968340516659829135825496428173248273108460587910148691985921691225810759103770909270073556072315385605763072583439273139122556970545205694141230644686048082395440680521289670974499388414418203481261993067074061219846465210575305154439561145933511020828216599857549408828626618521873216842508567426950015331852380304887260094704079625165786237421602752769177373895396641689808282904790720375568440795047906858808733079373395904428506888990498226547139403418705894895583862345957925715362054825115024052127640882044187889257416051917698355653944340758367400597514092529185009113768639229908602632547363828645628656907462849801833497841486131486204726274412652002903313298308865918663157017684589010549328840038901681447328309979643767164287025088206958260756639780383155604175484351836117846096307637285875472318338283860894406447450293855888472247589276420696484761646637069007876200466034710976137356170451955960174899750263275338196080672463084755477113945619852850242830875820127734047789119021964857122904615363158339504685327718768172989249780414021399253936768889385532462272453619095528814025510620801010294708142879592540732908546541685101917155508955565815939307549853760830037835280426202801747756854601423615464579682368846482422945552086232512365393502530276749581026495110604146806489490195402794122280669111103052163463397999342557534841935922537254474034779241297380477816770697431358118796802795286127632447634352148395536199291685153726253396963051315189855514194314583984106912947705562989968616882916351620434688301979999109331758099342506004431781163096880468064482735364152620718172310694676834843607949182963203366691109948846621048954714003820172173520850359443639820216491639681336882172150928025893246425907035723157576321495306348442678382493366366542641835043519941066741804102349209322964406587807570705294985919815867601119410417543338433087368743611961719109260585893310578940935238203369885642681419089848045217423814874421594926881069438496794498823706460516453279231397907063986848023653567995041827282822970432631309843786884455468754192659589548125255974096845807440113108451265029953285591796929853506588953903241785432036945923805363966053925179759743728963865452650746220357403625460462248540229218253595480020066459922697498025980165306296856406352217684014381450864309392804629294109593972068320189228287744311220263695380006046449233208990454047273143342354596845811053641566118844774187293324818059208047406249614869673569349842030387926316945223870914129461432290138086144229211852804274530255541515860887949719841893231260747583468087881753202362982500869240738066794006369590746563586117513601897588790657966177541952151837257502335747446718606591166369052851698002220703057872337331477842315741683039167611113569292592465403146759280657585906067072320923900270119293393762919978921856044627664715937681779784831783132631062611328116564184014626369329292658391456756867674538270843006819351351045338463053693462215766845713006700980685627688318252506529660907477074863864266459356904058035613791643896322325279961180555426327987006338021136323227163621324053140013070655570682951313880852585898213663415093462899571793935349438876063481476375641292943861799484863053155462216907905395077077710577990394151523183356559489283224315771895563518362582420341728109325357448867917082564416838790873455790860513581619189078332041554632579077418116255865498721769904849447899962520090232398782634781033686957456855499205375992502085502026157120700010351819941614651181205855651049590282047512402397450237605234059974959314514500871823333246682734698187404083168424407086200513867194335192675807364342416434116495852478149922643454041336155353342818949924438771785604592173771343275468699124071804148530878142737282041402032073864609594465969831181059929121605336229909480332509162672973634172566072133181694795725952612232223360325750084224363545892734841202078981871510184564601917895263221118784093719391723048274368106619651516026963408221717281500341538140383264839165217558619572687510576101231464011950879353691887198542293027070381789229671068714267118784655047429954443107799801750946699774657559033174917229403865675517436108014414186078876344434999183055119329341326896248505918896564445803818956284661489898477531488321095772953936130711397583482657530128136814996634256917538916192728086490378849873342843032461313951579686178160268855351722103917732127389835882772434999884330043619489552229424436720684844579266188357509415407502601301620837109632390439519408062724302726682662439580557458928872040381205921728057598668580999655295852839522337874030713198961349397765045463743789932403398490745353071557568292184548100808779814639333194018706112197171615515055968068625933923221957416273886447176802340249617518121788672799837817922287137938690547133262351730370752701292602530218192824776806390722269095322002995723369915177100335829956789352084804847501934630198991001541841678307810697421609169531850793187610140326158644646881812861262631519069575916029418782885558263357975924196447972504057089365039857775953759878145154263653118867940791903682079527670292341798633677740475834605895714370626911243391045988132726836507095143363637103165088532519636757479015708798013288440995518699477361616440262258652444038880273373216913594661012812767749098370663496734621437681767870405292787519286631359179691794702134517297844608537888114564143907711824960112077756682245229609884459801561994477244280189448420701867764713058614940111529666015261760400462428191836437540672537528889558465004095842425346858907274534556584993506816597581210628753512140850930185307037433333349757444508868951689701662906754316790085336217399693132712107315545766502336956860241714895057630328331991318882549189398942694981848838749082686913973147245170728450093226699711828260227227125172859705336179097095177562514650803950729516995136061765188381508964350921773887788533059218501450982963631366756227422802079319134392128448527901973044118682900451741181104393005169719263395498709834323307583602915037421642071464036637796736441706033809853585428163303573621369105738317844979387679649673100757782098261613062362150198451407130156821535328765874051430600620571288124738548132337849798296424029938210104227522319651888148745462268335625564814463966483275868941803134406873923436634983029971299755298637159718457675930159607257372665725353269530956307257887123334856494802590940982876795775435234187082831552610152083115702954330841180091302547029083378312933388352052360178592762738123893720035311231317418656611342115258750076470125385038855018337334859571902262570552031506372011932086786655584311038991976458425193850805397497034985392177477978470626120831470096858749881078452908762652693229077415306073757835224434353924749564791769676173988310002651550553665515748917165173448145511554159051390906461169307160430929842646944062369017535120529584265605531735248048436526306591371931490061659186267506299479234383962631376529545384503810442645949720873426302756578143798300921525687129217054613912779753854760450132757289003744991407710116352178262473317603124026967952744939764755970583512249779231466812001658264824383516565318454825473164246923666104590673489576812193312524195788410608458975534228580939491422211140585397201013353168032557197863680332634499990579565974361331491188537155405618281371271057092774974524531506996871097430574330974973034662559770108927789597886811686338178572640177712923865345908259937325781646629901341979613069800230017140375558258374870556788172038186856648905883921052655887268004829023661354983643494670823038821173530930629157730780128794364717084778669594062034813503335792707644637010605491371540130644695495197652560379406173993170953346632063278200541957349971558183251926765192480311422239920048535740455833507877264210911634062868327693962985692937208664279533762279959866548642957925413714558696950395179439090766447627468196550098969836902646706550332314912209999208336369667081930040936334120749914594810444168349366137740179057210889621885402366775500150335346780743141668613761783021374196204400944301880246903157765458483846640523567379382129394113182614796811815438105341028995784878553131805894985744301145234150876268397937306605686730578483020218812723015599875989091977972580772442697540221133965754702588751992576982173929684355671127878837141728267474315695604485904500390244878278625696614246649985869524599839060511916897674052015038364258075249377358865758821425853752538988282898998184278539515360309433480647184694886953442023826281855477884586496330617672116444090052908670385302304889601145757894046558426780415427995892051052483529279759094903807568944478646892031627856020293607517742011068844146206513168752965491422859533998015773553583292969194287585559953200059334758129383093601981651372506381048783465290358100460471240167472369126816217737201419276712266658265730803939922739469986094332443659287446084990591413670975387703338687598697632232029248429350706127742179985114130177612863539633026405255657620440443001022470461635310495446744252047159130915984155416091662375133789477936725416916050215869680243957495980218690505342799339437702018845024875276807593756536645341999695064277006759441368929912327615831820859322429907132642197115449863216711342593925749330078265501951272216038288167949468802197320193394326388976386048026245159084000125703196484765338554734996952265014274282914817208034631267105921918562307459038385442142651843837776524249705924105273159721618186938560958266727612585087720831381702404207599205639655906068930726620081240133007417999586881755902338862785808422019255403823509966951725928014667306448339645694979128255238157731460887665185087533436837695454638393390258731902589241904372439125945854488596496740968970098169737921120701750830601307370476946071207533774654270784122235277826208244785757573643845197435906128831961178100549877050490915747755594352411994170982116088631367864352662378100698121949673070159817992611391964762831517336829464078685884700389341932360791239746160310273270708670098834858824131484390323850074420385180257486526749880056876855341279672897481824912053697042222125179553645251843981454615312867603944389747272617941607887642671043406904665848854745415387852978064754564487850851955459902257618075761300229283693665653861740285699935383226419059735518061091050550881257524503751197872999596968611028947427908903053908298050305626399041870760865913048747420189888842182762179319424905279617136807498551158984654886987647013498947396390873817372401668307395292816279004007248700734677748446930334523123278055238378039881662452578435304254010217191416594763358775772835099764790505253454242954732437760239183603802733954205883529068780995809296426376558239192080065651541769627920408844838878715522982513564126703795013357667040012090224960861616948180214825103505950141914172667759839379608902115713093831447044379874118135116343723636296565331408501335863204928994802313206652454474080037536403512749563514248168543064713107076027612455327074907745010807048248298500584598267283136724595539441323024642936715305027239821012121612532611720346619445253933824608938969695715332657720042398985909750117033132766920633341557530907971978418688130430409107894587926872663617222747381549195072832710158981395714317467587972997276846849391600857033023073475812031658620635728654729838094017977972785963128295998625305069612281468821498136181537020116906560634797220067937951017396533778775730278481899106843714644736757625345541333508812967106812792202899148151721776514800905785624790345086805189239436215346356141797966185797737802203862112565105430659017240485996584032004006649318360484369037750286924119405915874117005510749638338573171856295864712107345193664175849396728811806831493330742915030638993391409449984657775040274125419071009793650663760866302003145556313091916386377152183937615495803721254513566664536011287025712572644561936423431463955162658657499389072631504989120612304952695233579702765809405709901791507392659086909154815300055986819237384216852373883543230306456743269294002988773283185948049647845795455802036037633443565873200304079473311380304085463632947110939640319368214947632749272891282720552506107169556027371074623523721536085678587247596673844280157645516889505086583089822640837357402357732517949524174762121636152046563309775883264396282953446189253273393667378834771783294943702773197555460681333760901384519222566853587348666907708726313080519848329524113534020578781844493537105944276356697166708470952969646075602550311779023132910054933204349519846932605381409901645337689405784074062180875538818830061928866865505075000505365836913118243608528453579710767058841781923074242556510864569056341382823549902221452942939306490380191395813554298973460546249935047422893215958168953014466964416998654651699426397393719280628776922544848967493487968224699506394703276179974662793984015979241026375063685163912148973247290716983442730992859283349182134192292370848293892257789853652799085323777885332782384480801424824161281802734369972029215591522269736888998170221041140170447503230102285550318388785673941530426441306112203495753849972037561903869268182635030463381397607932373755907555827518514642548479031051446324297660540249745266651772114375420401620071702465424706071344542132212576966145946022402456386530877323101296399835828074850672633429356624090918575589212784071628040681575500128819273630077025753989500837297877080297446447287066499923427303125090261983066244025665467717108570488735106315171441665964908922300624149112503332698001506569026874306284634890358072380264087351549914726853244216007692477649763977014645568792631142257526287060558683602547935471780152650935003179572855429288071589747133349293010142540064032807826525776917116607095240639531211022464587923539011278990626860382306703244242270470606870315413471294956665195090488101307355965450705402117333582635054993869029214103512785523356867546896387152263250469206106187826414623226713514203816313009387926549384086608464626719122846831978968801227097591507574969089176589583835624517327790828808722248829627214477192129176984539618169086985197185848231535360282120402716911353284032702860585884705558657651911343005421441556891612396057478277527200525555862954671931217974348189430514842681995585062158670256734280088343694229654720066330639867240553382789225353083832951775403015347692114401462267445997820724133568136939038753432897379831604462079056224090938470402580632119902139465983943579923582775959447357731896149841646135126631986362042142360944321858488271212223058135441773990487367065612828437801036371854784863893389570342336300145424820849624047001276374882561530636859714927704499253311133806345410309892256664290322731331715076683788431279366161941383313574614655405967603431053822508913545710001148567919431251274167750198426245454402183703752055980293316786752976747369669925653096517415363751237236011111119433571551188458048247494049625061844582286350443039229405245654661779188764627180737149973945746856787870425866814354914487892095538941899507694831898844935032138588306493349973106341784128672300842180200590973353191210666106075939224551665882124607593000071794617821698341745890716776423559362514544115850274056575227652731987066604251622269618083390051188761998955456489265255873455963297629172987304580321482461753603567796971453977350913144522255849442489391018560359494729177726910398549999071601456757671718903890255673577213696601668764439440077135979966334904106853693321221908186525303827051142274666803999005958495383231879546769003813305260075719181103358621326599657140423625322319650319800990712275283294155920168604766505060043295653843445510985912254206798888706678041469809789853083295234364191339837381201173567068515974461248483098799520073624061984712125052020410324666148187744785766653316079567094821533900538979762104879374349792162746025765185430545672883345382084612372586131875218821082628065819290803435318183091447504298521191986668109240790667732997640040670264017116692096541268665478511800997534976621978526759952014312333683724864453100739019323621820033799322060087440445512655040265946127652422107305832604305534380776729560243770021270543412218151115502811240962927636145827738396558600619706886914189954134592594326041263506430462205127993189749415697786346202453525085474902081747417198762703312106195980732669437730649099584502177900046987465175479903869867218136340649571700692276177535279267913658257102481335724557394414341218814125057732243828773272351075316375575574845112659645953257477666097408283027882684223020958144475751194233319278306405589827330969841961381714703619121335457936887110157137194890975986913619325181560828230899138636485492942479503960975126150636594061830250968443230424420772872718663158122805236210648921834586720650825317581622539388757508502127770791575038421468844642933572103105702668046899918632591216828548960020987809020853904251801396609409145050638667568933368232335429443430374844006802994095547169902647393518131682803807463737565061828787683914454468288518837002096119711215603109967747562628329122171046090469220802954878215862819133375698547242626099975377639329722850430081336180313790218445802293189134858523786868788022878816038840395047796004269842500267354302464607116590578136222154295867215368950986492028233094505171407964666856800268873841789399725011983535978869011985208887802961463144563153728441441343420555350087371891945396492370793341048688546143717306901154403945629894850505673206855253597912025552637382081547586119619814666890208126199076866642352245374892435155488671294390728313308123816645153307008593757407049404739672320996213812073139904228915250345456451029141293640758150546559435457779033727509479338365650107438820451374646571456206966062396800851370310874077434333741560043114670711848764375148543812711746024627007425168463886133815856726921973573105060489223896463476937402227590721449568890061835341184233944132278839990128589335591703380420776947108249814621080297802139495025043206064129279355345448621843094981727455702124887256119283837320772651390807947645223523608159523292912422448161204865996267962965463661677964915626636164567979234056981461121046238203488573637219327575869050992350098724985303775137255060956488511114788233314152019556827532528119286779981455379267714273329588074419223569601447974814476314244670119546931566446122373635024988174971050202530503976778105628739283989973127770627049473604258964690883940408868642784911671466064850901449577590985764929353896322936502470835685295250533708506928439812028784991415663454682204297929051683932066941055428996623430873955360338880857184263116762169611205916917046931443476656382344220201534448843153813958112384639054152915961783499953752880471104881273989242872994304141514366099634456445462800844329588141547723473914977225981101270994262683327885854492285284409786863482876616830585675745040472584324257854450719715908803426513466759515005797643395429943570610646180421827136971478710782199133756306864394550054806784345591915895997630806865467356435867659603429682198759976064200832982558131607530377516979782934105098528406850883753087930171114438405975993608882651861390652406738369705809974905710835651558580326234900764406770587477497292839593626999502377633021533253851012769682259095138266216963345820521369540861965319376153963341031346884023530293903188239695308306234336728601636083078657423001325029858668826558417251174178113950044770248881399848469152524967645822540933846006026435181414179111311175382290714801495624964878150013045952775863613358429692298340299201913378014232331804494106531078600535213045334428680233246540394554688106474084444333667139216480017816394269038888286427266224220691681227096478441788028277552770483906549942925014203891249089834042083250166103030758817433024064031858358457568376175083549403193091239334789264758340375972748844063303762842287080969039487600929650444464861162535926964815001223035721701790291850999370153402437032765735578659955208584781130564539406580966956471872402023449310615103966530363436048790682136535748085951872349818562307885451568711723617248577358952557892221922308402655024385801135860895206303087448482850430352868889246116777320809347949949928114534391962932873282240443938428177272918763119913064490353376337439811806803271054053398130650146591532603237595469841130893163351996415539032030137398101616811012118240785350574538945953082072980332462443363150463725478115993780070607437809388349178850052390657559773211134898351120023742061765220710131743635567437921329148868541612301625241092033882903511058713958734214830679039483056885065166848695987054862576551539148507144482682191495165717989135760724163090277027085090534207991429411450346787697536365271952338329707992899376117550684553095592356696031121373712598812325515533499144373873167947563189853311264806069172799602800009094846678226185667151480961101476174741376249613859420911151654785412363288549538119134604435946337310646291370828839789562257956720496091500941774298729871993418185206316845064097482004684181249433758210823395697244618052539333548954976403604748666307837571805890694055780571700500362834447274752147749511827692853893182489694367844476570379980200017131645906148351639577195229366762721367184951625377425272091091187858849985807904817930189946088919981412599574589206363087469730045217506772478258398570925865567860063533904433422256317295478568851328884808670952113467243212858316090995405594854927420923083352944525281320770958678825899260216739091844673847140727480617318130989181988634470921744230324117702773052899458421575457825722269871524788220898663886616632368654258225961424576806111725530198876826786292145056727458559769431687123382765493216345379806284347885762007018635849780580585224774308663259501730573186894475473661723425058642601625281637146979087976744511186658996528642615613547592515546171788659473465901063272591895353277553486176214032283202797298626138620689657153486881631148486780932237317912516436957771852738790817415426506639430074841917812696194930939225998209578287630833137167358808645422279068336028995965892169577929532881382019615004433621608593883519461542972496571183039776636860116547472891545043623883612042265229339523506636079204150429304414509476995272171354258926664534410465281829866260726623174543396820889291604170810796501272361975953872054825257758990720088317170186662977346548646886612458837653241533133497403849843144022646874520447724563978264874840522450091180317583346051279147214134188966293509154127782802388401187032763948774332156266455161207252716158562131874406223608645912410688491742613718190019670260817035056608352914292533399618663517599175606679874856072414535343621216434488577758204981285999731758482594848737215177020661655931311423775504245861895265394319475761488961589445462083616397626199051680088035724111887284518045205306298269061664908166084421720558737289486983552448789235419177771783721567533649892939724434423574087182384648492494522308857282128747153800398308335577346731214870690969004370226161942684341624076564447687899595152216741325008492947442994968433605240715782162124434627300400057202039109333090993641411883972867858928926150654881913281688334913525216060404571204556490239655120878050412790724524389315728021781365498698128893997682417448474337601594976766783273282495706838104515788463791868706377056578963086764716409096685105200920688210329005861402092101764763023789940086509810168987746593698833454404891437403586945610876960713912330688272375331557745288124930885332572035203630402328220971724724626794437441239501130971951762824952800986341296677370326743614776907531960238133193428153106159419295993187038438514423989492944332899549550320261987249924861211220102217721547881796415534826573472168719935482085470819263567127734074849477058458976236857959782061155598236011838081667590262013919786354946309254445954907627953522468698367638597883290352643723419401732590962658725862611151670893949142928155069654616103479737183914465784641468443848306924748806451782110005549054559285851269035706489519370322585908963006657566024489940634820430114415719096912254344955339393507832041867682177022263479521351114693381191648305907013663601008620044740098334278606337884391432071987728540726164245210447464115163651244672694006807453528111998964304394991849785236970946757434154753695673567147731932267812780277044550174102965783284311408005740627812963269470660034326969392796521673762747463148125987317127379376077089123251358843460647881388143986447318708112742241058543685765349072627657009939654657031108960444449434574933445054622278235588327473618644732438490951943907407708885471698558998174170961488876810904832615379520104495581416335694448579526043423220543730951107351722087632967286621186124233247609957263089031492077855105519992970161145895001246705334683859214252486181378588770810044621964155248007577464115931001151983762884072237458102190464070889079013946008885796859586708096138337881223413359223361766638361140940664937068445440729632235671903225787425383787010927203581619425737374637470061104399866290841864546129692416371137312794823689926926250610599342938733434883786018943134198712177184328906685710953543830648836434027703676309627189523895050843624508942089993325730247800810465431203713920432303391275947122427095338712818734893673808155106314073694324653987474681217128982197951373575608533403518929374996001116844673957820910405984659088967930287525961274018705731595890731619161059391443112804543290573221689830156232777656853702980768189277895852795497741709030361907991381582513979444779292594805616679212652171454560641812373961979371677858803852867482728488516140913113229484680676736756351405616630688201844343081939734826497455984996026827360985304974489134125856481275674950627129002227552800943847258109874141219713495685965550897431285154515406598887004622501247611912573360930628331529174328225098430789583380945425354680114794009723782703690000327596986158260357445326143388967577395649376361277887484096128324179234457684886552413583174462862705178590955627880265005905749203863662253422121604845622454455395263146634140398675643032098858762858877471997948477099080285179639296285402141413006727040961882776814554671854275051372548048393467037464555028188509325067970422660112925080445938968609389988530149102120707538315226496612313454695693204403714986183198247028385749787736494954142727876587967683904944345684026370980368239572733745947272012518090674458774987098783106499601390729515405528566742662366239837992146561146766977896113079624350707771825148936305319221321951439729677587921990389152224401147431369332916413126661941108996128036627464100045212629189774175608992507297849379575394103699356414148000170923966825818669475437456223661386498070299287528235211118501884581879499707850109495581874668211457390973659369353174078891287188792390169270004284891552788401071090905247679383022840650710694034628407835407420026407680738841631289334471793876480349128106637502541903794940947211300147313860072859492209198158829059286410967302978229536753456247216992485429524786086469409852623599868446437807392065173181812417766331699842978767240721986374163769284213333638398825112292112737253537837060312065945610225190171087760235510996277959975750534677075396459380287899322428995666002734166836981528528272902456215296377959419256553719756760632892613702629918449131637433904417604135428315163973396141929456233906401454087498501194575457547834037107312911344383364791147902977062247974684740112191803295350195527212369706374525204070799277919023944190798135491359825968879766511517677027567217247733622639526099710019731368661410416682118978945066184976711540574982993987640960375236932275965494310859747811931731121822927882164661679345587441798298670832922328440939583491249714899860354844001838778726120537798126510083174109226189013158547962827165071700967940774825285428808641188675486112532976473161194172362324626233242974515161792680110279134728996018002848452368747872829912733871863111096115319973955749674548347003919849640316477738786344833566868967001499243531154864897195007597402229961034639359480551529690657024879595569458421980675799273604874121224825159987867856785428608883465984379579491526018182037726515813055530592968977264879376139741626702385765215474070371090942165035166868402231809855736688500475633705394711404493228288638574323445341930222135201927520073769148209431186371974794629569841146987698828211826189225975918828381785090164742971212082401584694680240775860165812911121389696577028765555910945450843657092431331384690250176915787948240647759569517061187483916679376482029594815420581058903554279526719636142809602555915923453690669202923513923000499549862330216222716470476991681163588913153058126886786714100805225882608835912112851840388858170667228215718496680661777462260613731176274157049727851809991393418644333762133318952256715600088959211387687992729120180235426459574890302616893060315735823289719897462391840213420122126515958457482073666230168990945630301572369387404798101912366266392203569647611029733647365297684814325477059785532734323958122250228508361681988855366139420421539351540032827275120725476281881451101650532111216987814935025464795778239324734121057743214116399847733303138978123683331513647974370599311248879164151094150790655921842386620659105424409904735820003501923592458511708937510346590993634422606080940696027746262928584964169626985953453938544396178070938127675984564996065604148749746668033215390294615387855604359184359237682912757346596375232068176833970701510391019112131375018044476394886554216281640425371944482010180479177054029946788437501651398607791621219765088296197802939024276315023469833441615105463879348993441031811020678738082077643895310751104150597952393421511670734408150922928916106495398482225341316562874573050347683002064510345931301731126107584129270701593744643913597501166785262484571733452403794884532561559960710396285664671473896491007789765695483465753412806303087938145154408326264162365174944388007751811701637126494427589405910424640967991101132886818302564296015946934313041391149492648907674624656371325466807185313650675922323220947249245386003673171150779785423736297950302814518315067963924341990566641074222757236502704772393311458779407798986801233535892792905034883329472079826716740491664845411223391362860820435847783100066529803988067407752089500716373009436164004637223611666259552058088469877430984338765507436653236519309562467940875064040233420495726795240624817493511246917038137501788750943673570328463288136452864076229612089584950122172990833089947681902421689511434218609395036219038180895684836251479839491853990065647873530072019778795052178603352894483062821582852996411418251914970926228548000410946704772892931989078405562004884880092667452930984115467222220334520235382250761662643259651974176144509797974994928051369800392964621255566636045643228145009244904495825584945610721104104088475233547161201383173640309370689647128088020311039054256008591289516159334371367983226930536693649674305144251427917558154072040796516232232978100704860959583251264806112084179933342746401389714557152387644355305987679810895100810346965211226513188578813558896447307400550042080477848896620361316970988393553247714236411401797433437482493901067119509279112140405859813871719406774670955955550956417452589466297091545070683316403522141075422680475938789487571115602046304584918269029938226789430374133695437864865450707192597807865440203806211079546060667159134891630854626880889469561794458612796159391826816023743716564387422893164935780361017304381943222995726722197035651890294119146643284942013348538902487266521573967526930334941411183265189771987059686959460664275917446879441887298578302259490806484777010290404948454725429833905366846283024543571069591862232760149093676344911708447919176670213614026866772491182670067992120444671483046215696705630714350198673283721528488792185233572639042260172867499061953647800373301267572006718821559732002621487555007278860795975052682695562887725324557504549327589391004596361668661210857547759300502412675431732800194141555895863472857986058871673513372978745942414570820615514145353340065618687813504545014613359220343812778949447229604231904670618919724751682447779018229159799515049294517161036133545710209361282793545185863405473795664596268730245945898187336490131074579457550353264571075003080826512068486726682546205116482374406028184602830981382653839504277089687684677408302920376748179313664370662504441605522138556147382052565595798099343959010404575005805654183138246409049304935558787745088767781505680820132448039771446960332719590325942436194570533133016020353607319636167966237276882874760796634712600077321892060090693720364988767770495728669468332046109009242485900692158018575166073794098376801715189071604306271694335909414209678051879854735348176598517994387725066713841741756775311898912457972696157287168334860259990858102621277993818949539390257708267031961400552703692779982883921212770321999027088889416980128583032934817178630271655690997664988032731599982118964836006172620542437778638721196642089243507746757159949746838163411568395573640499513150417577271831639827594986492661546503033663033819192146078749651390860040664061741326173657360616723229290409582101160697154910176090715230654631053624390130590866600163666051118826243706160926177162583401093427004592597078381234912235036873615696444338247303228982516366367443709345325742256974849414061054933663190015708018790264665680427930664801871377517512873834319134484403832019042624544024951219804277255421336675337342832113374447880089562459003666825827985505503157163186176754781281255727105832207415049088897759337515086865925910521580212493147934732627183587786994648620353680367188295300676855483896117620109677062648048895050072193230093894670277545952270738819998637236552896662953491564168468883207511776955588032425718075739772181054399595073471419656206520132706887298737564434796646287820160183718970771441972322444096360892026489061167205141812904719023657042960171934605088966021739058085853329161296345935887499293838253229925044923972755635454424389764526958697915936319163272229921364538069195324052810108971824381969496125860706164190516043079621137924710915019950948305759661265616164963970478191538434672714399683255154449398859069005241246004908367282387403236465085962313972375006003834323185080012757927136187913585874827457773604682396190447603995783651466882495092860744886764196248319342607006512252227602649678641561478611043277631887041100821697463883263902122774615198737196312719053786169256071470177835101531142314920017273102087569244723359996418860525727820709116665767740712514473395413696434724561264115107419270418251100745668377858735662074196216081418719050892113075088735263635890647710661297048060908237541426391482444963524134292205788306123035399477242409839698788572176127696064622106842775596916481158527286356770591764539622962831577222580604552434152216287618228504858847634869731719381693427948512734295567434606484472877212664104850575423988342464504439617784421055563271239237805452348122253290810257575359807099051450243586759926085698567681078586213618177241740831012101956121851632809711183509674255195047040010012454787020002592026974674308288713708959813548443438675884858913893304396745679789007641113384829837742257544263772263072404523265818730331097779640085076491868774165796182645767387710181593154240846230594174736493425443359364889235216198298131603459188503401012801828148588025686869365511922265109851962693244120549928908334832018663130014410236227525313780997254808857166196950167142534755386993916338261950527020573305296117264163252919411177910198857953322096105518153706496015274821444894544595213188517387049253946883142033862556528369755777242963524185039253415362149210906850130786180263622732355799253321908156820190183208048313967522725924057228047177255893447570918581944876715600739477974814265890889956394253893493319987537579875629165199158548545910777527268105720517182521040816929695616953110516236015674417870377889246962085907953662672872567464007425429679073198286675309470376280562719074595555241185267126335146044631675801025736791471108144618738371229175014096058349318250860932779606251584589561264750779755422707722873167093770078044022859395226831108666636526088527867123894523947100871962112105362933189885990245771874012707871875324429689817040635254543640251158464511708649771006920735821094787880116329770550463511733604803562925278627390309409617285081155864087099135004918608303384819194307236218649207447477480163444962431066908675660486370756997029897814242035847513389447166829471246886123733216660782529736353357016223138001926856670284527332787947005327517752643640941342777070243358938569581525966699616357404141245813989168203367968139848756884446544396863646451540690674084706959669704835491921806648388362822105129266616398822480010165858783904609175992451718916124043121440241616184896687105817835572797457922837510743010887766469735570965654279494852001792517648644914909575249315587527967159607518269769652124169270100497885857140238164605429417811037522935878042200622526590530821157168207806823067409150632108576647339580188228006465694756313647483495134049431170559588275059540560663482627924749793685406876638066668210305712080027557887510672454293819549097524059810881076722597994401952894849270395159004911618236954556229181089328135445299272805668738280420717529238000967098177837457987124318131083476857526767408933889707737144141836296379318389597998330162817533836973074432611529669164220664614347207277888762372132818871960111990824449373843724459675998482307280386913266005931047664410184424400894564570897665819607517781853863021394406085612285027202331098038203159778839953814051365823333573964517743834007379745090145890871274973439820380093799838834353726923358196125498860750807263027041687759264062097476296547748051442264187555408034643579257235577251486777301248056496625780088039339300700292336095905376722260189145814012732487159917344372355371246026060003053383244030413009360518139412960224362486303344516611063706781979045260934548049038789337361876265347371326362940506229903857135160775375199673949339672693274142716303351710953039737916626263516545415125339449772081109204478261802993481153961025130397891065545066153863849420688024492773324069101659753625639894075626680941861369533975149016706821557373175451034207545264810292918583820120151162040506927966950947114119305538583445752017544352365383374116965636601112870437977107743220001254403055381386101415963516272277979677731988780686265791999000040392386056912856509817739832462216248371964523212432588500403267321036455889698798937104137856621163152401162275339989447419262633211530769697924790345625834657336783093628293848029593799709709891920635975411749777733803549013115022538894024693729730362979143279119167160986364416604627957376486085512894521084834776077939311788019005359804779201213533928245797734856350663676715891111857434560769945148279436060237501203303234571440545228873641582562414874234823807151582062312571396882482273621217870172077887532689868612876963761089114813117192330598860900958920350251153159096979073713939390907826570202927381333332197169977341728440306849567703169200415783004960609712164237520593792354760727131285557278475643503844060231721838842253875070093785885498546826780796808823271507796029165257032974439460717579069260728799285046901655992450718860051024815828942490314371448646002808404515135489320821196761627690280594777862290076172091658440155757723230813526521023393458577042542958413476145124155940335367317373608085575742718799211529493188163570403523833977675939583305854982358286428377212016505036654188559163918685170814535002158332750916659844896071681328831497368327956905229723859410553618036820243771953704811306020439460700375504259109732355226062612325899413326472457558349786471957014491662518136769768209583030203132784689897376458063536413507309519521104575899492995004751336223452235912864159810260841443117887198389688788346824247458392853695935445328604462998700718696423332388782679228105457940032366037557745871768373398396560514334686553129229822614579030348168460854792569434497604999252244657844239035246764745253128542756053571135546756537314980387775262313263157184540186905715661657569880116034891444492298322564550062393304577006905257803487575189932347594358211174206200477432899803483086896958904372729232976790902557924457409040532822702569928363280406699302683073470211231990060808983446014948851290156288472046331781781243949825473146414335759946970305979207194726678555718621600295230139915054496069534390977426400948181520733629268245509014692128072097717119722761951650186711414088701505156878810798761182576411257994566221063741838482870619408233994940265848855074781986320876180353550445363864295392318635551743809334820611330358948736130576178054965755866930884797909276305618128109698257471097079196753268804129640905304963531026267935855456835615645884833839222079894026599009384885892055634932243511784539022448424157516600218948443711012731140925264828701379686657923502478543676680302688365088075337157413116862853826870215075214007011484049498958361757156943426285961753611095420666209036566758378245140867461345130209168778545360463316461100355408569179901252905629525001071001192093872375734901081410566556502805236788599933030909853152284806658873547998563009029402927805842882879675098117140355765730242199826889662510390451870712533491560137674202589374137257167616532814615575129226950756003964154359486082784968414909289209784092262224520976139474254654348589319627479121436900763545102715450801720044862138634245837186544526561200268584828578869523471199705630009321254511810565699267171230911845574503841823681212968169937701997407412405557439038774188226159504732611534702145282710584816830833939718013820076010126038025344755506226311583428344761035376411096542043237553403948947014549634383757894503084697680866550186329267833646596501204690295408469291384633524922281190559458564286321462709121845780027710056658652308248757264231067483962911829513436308118119374127516311900401889934125055160555231979593665630368033819155884055176438333278158106028435949212180716353710202576909130216998565949116276220940673453035285326130795887336109725499377629886458318945625003505570216285987588640313903629280919316324694635672747538465661110330984487187243468741033452484773549912103446713582555580395611648217308413347330342497029184013675711579327435003137084434615405936766197659270330234086994455297857947225069349036771923197337837806567597201283430612050355038075106417880656882532769051287897969736007800456323812769337752337800302459932467783021597526262073569591907789724365550600684303456023623001205838165567028714791165405887091570053286046382160358461127821419059522168795550994972208573671788780209931389335606543349117466989561217452731541360261122964607992421931879923373168281903966016016082944709893325682846572948534947000749158434213396660401518806133496152386187279361132944261257220906270445449546760558746380141697944024548389413010201645315892098583089328320319190335705419445835441904920565300959491859162107338231473198804221292125845895973022596254388340083847251599307909508120702504152205841334814912574094375560832687158628121529331903691298446508263083642434863229665803845580902619434061823566677060244683113809044067927077791154781297567609967198618378650533020181685043253182661337982295023131539174025768036318826136545130739734769700037878736354240370146116530030684815788939678105251917140257106442595871358591244647717268921300294912371954987131141564369671925917110785485358784619232692255586918605109574005994058953547491761934728898844700605776686722645896955519011995324268091313753258283546981727636999213860289937439675271448147555108012321773952458441105617526836319893277906631572340045610997067739734261534556641641394347095024701214291971938544504544221701708231323342551977719999470242925463976482047996831138333291926705089962892702017337329657326360934127051095709267760014370270548584937641804507140743127643526976273554806977913796587086261689357712015969078627883276792477139040624461645359223468005347094805688652159652852426141689512051263066643782515616079970784767144830126868977841210404667669754589527853770869230015249728384540697084682641785995688925831653370265076772777084420450776246853731923096092087916287779533248979466926193873756163593386852446449019188340865682797028971519703868733832049911286749508508489645694562269798799818218206613322689905058351113594878037643080893066918088606326926674183229246105541658114398517596656298797068039538275791131154782760011973360424824100129496859282725827954763083528877316168930424428116051792385951257366847654032020078565845049697597723677869722375190848011399398045667065752694938793871039568825363497464180365843725532692817157079889461735088571275310610097850454944708000083750049956730671576371255721325827069184900304606279088288250771427461528944770125291035680488478540998662735580551042371565487104999275503041653493336588907534343700206147016841766937391144275365762038690188824174097034434935989699274366383350030591937967722118780544382671250821359128881326899369809700207220909336040402778544356880088186088653837130038482848433506586656231683516775692238483527775246722785657244720464644466140944904889282323501092878582637092513187483552169214738843384820834187222046511602498510454784233422376268831025623362828327011235169348327905264232544310126466868278823841215240302070131920331209038072401459997376454725369766856979462045649842650467990932193619205415190009992931149641145005370632116999035643068464173876168830402569072942100288120973446577103958686470435357412206758364783411097811059906358988639905601230514043410301122297820912726278362528150178466849021805124822736601882808811847782958675041637205808362146714006957314679578786181547843959358432987173282683687944489148681588602075292557571128071780159386718631848855481525523470068876220961302445131980467874802609656494992283151237248982954365980576357682233249418567747795779156644024776178512869036210412273923194158818898763314620850631391337084233622879837869081276873237942287567846821975577808579963046553299789602700865692797218767958086332102913677055432759176451347829635418001816427581804317257394543977557059093166069736508906739457231294467235857344584061134674664382500894539030348075259682838360994584612619105529707692600583987788433692822907149931550370289893371286190021667528691818867078601177496411751474588770855880159168022805411714675196456361761621358818166590157820269566736411628997524751034242839430091809514419084242330086087489448356824483049769172136229305520918652279312209033022717584950819356795794429006307112813251220994367955009092085283877111579387754284544555039091689547070067718140355765655477507096145254714891849169310387171732270037828744768848334309211926114320901689757524329269538338349937863005350484873478495127305777658679916094702290604294483336493254030727649849961335766599604725108502870163092020111286278645738905220982899632069826987583719336684034932089330284782724182382201085318177839858354261930192181875448853982407176019090316981235594336165597589746014538477147108267768635978251981980487716587085509594084712015496566215950653440585445302388176399169977987835059200397360509681753292852816857909115295791212997217220063353919880549020045991059627819138646342906802563183093581687393695463507552828005755764487800049770070319544403512436636431307890394501845462532271107010290373490416444334649923460567142895059922599570991802246383224083109243615667721099469293511897719384099223761020885273260169052440082746065958632517747627377810934242609311721812383911791374967106679149656566191006409786985877749640200847904833763064019127290019783120860590570604620602500160423694235580367261233884420073669218280557729649558751936706521410423657520610451072609290183098191607765809992843404781965971010652965001845469534815583749788214733433308765755700071770932350222190950490584541552457862879849002991302706247043757067374638301339093938651255248104202394903350261399274809047504180329583545867999554558696476060502100097713873625643254153382417523893944089202556546870317014929770813359447039950356706148329700187617809909988392040965909470302365149223480125362144049361138325135453154171352068097752689631996974878707535652158299792399543113391052580523206017260461922548870541448383579065301451132671975129177631233910754196660739586707386404540804304095132660467824138491818808447568382261888130619428984756607678857600444280056536561231177436011130129179330172370648209380517258148383984386816346030082019309644611076406249508507252503858308230401057455567603003171608125925754353304032191089138430750178370982627128308192502205987397000070917085868776073492298762152534381126508804864558924980455085382205542255078680718441814639864518224792722935609049372332530621017488185419963384180504249313683291393202706153813148288095387198568805262389852539908139949655245933535285886856081704871268240821773336819804758477567570585661571447972003204289391732225528429551693273739455008965047662912062911000550186145994130637977122860056598995881573711112517408186824491425707848873871944605797008084968869948087456975207356948116129212975432772144908289158839378967066682707692200773039910225153359696104216420083735974914261496570034340354748828736514407846094850806946319928249557937409028882075258411559409519968250304078938548029344189468263740426912885028876605084685058015793721033037674772682436527750782432262106799347363614906353439428998444191396700254311353909565522102191197517496560304580738183354975899424878086683446980021712615452367392899608038037287367692702025900542387742836435388908622617321633735438828509565632437026584548099585790586146260781241032022979729544736946459196185668696160468438229546241920301560397779432290313372306186773741976704758623383408091637119876774699783513531267803844022827517485496582016978576856607978997147260057747155152756129288479710881058904896699080727093406572185514312157528680915857338336870319678689262583471561921582873540185930768566039376154551144152333247107458000875219736869851850877574465685584094900881879447895790782281511485465094898360352821420140468172077566064398401094056011947767575657150527652028033729137211655746998413885990581352243205979843517976138026854506396666714512888935786714193314928913650448113438628643243565342317376983867550657800902460454594948632949161150641049711046586880007487181967587091230711793546687909194180593716550932255200168087321648711386050155457664837340793769908628282681576675809181925500590207846360312488232999440453387838855405869440310301216997870233858398575620198498473926057950674203808765181105337462331831485431228697089760862850429362629543373982411319648402996906218132323189492621356473262754447136590626662877590494641112330853461143213047447423796872442160799233869211157884710225317290595959953797857246088581626619944598647446716927575179563625487556866274809650432552564221799655459731417332231773678341074559056563252648279467693259846778160535979874224798001708174369594370761209074201543176165032402054057490033920878029910042894671663110779861532474279101447437171113274188051113031397256619032840711211228242154093848588694401441158265330449800007459570096025486119433428095184841027726967037827584762838211755658982248669419849383140297711126855071903596118709249462807738674885520925467435698010423705313139542473551444109527622715854866420738353553986144778899330826730435298251007703230565989944323454755568535002979586483133939321460575145335946322272568346995683546351571362366680755887465814190079015208471491866054728583303085830141545355311752805882259466742784018124576235908741248358289964732760188675857195807710820242232244296186742605594968070728672944890806277684198636520501389102768385520328547008514487353001966121387474561831699553479029670300980577880107542911927928973755491465257320117732718875277918661174787646501262475197293012283891444811275815837483539522857993946209792734204720400393413080144258530823824480921838127029284143422076195221144479267362013244477765066701208996604370904325587569434318847070639411725518754330521834085147769520410286526607493882065450093328607866105685764160372831966457453789763062907649182334706315031052388233993407313663940268045631317498464091452467061744905419166606881855442065936853109893473300576048622930349974673773337804794596611044277358815140989610657538164066659194758042998647133144870898890900385997704914693693857362453021029708528157262497656506618034602969232939594410622746900600548324490881157626271235112292356828364428518022179056797793315133301950542846020530464770960431783748612777040172961190179135175252991682939974119234625908897442719524473441660913941425892701497314100756659489274177999187201443799381722389636392762463911995005410483581868488077445102141604779595618574995510029782525071104641084023614044525008114951823528997356840645510821682856891049724351574720688118041066810858777510193736632845472675808053109508548484376720677598155366653400927017101753191987993080986025884327433898793883493117967942319975780477447670687515801791764034994163997425185248291978321168630174479878859167115937831196664922473090365188831176279573911056302060569242397555196170986507350026714147857339927501464323228045670735974150836225233722031209221105868621659219859475703787214255252698526419786982472128393025508742847227496331292938073391112568100370093078522300718002084538973777501750841926591249695945775034773902893115064148602829632537732294411669050199345156666821192836845587248399881762779605231654583193840675764954684363942745270418183405256941710111040536027734494003716255281028878002714457654685077456690309589550323179188058235481517054226141520438792129995726264491037318721820290317560773866467870963201893274379529241771234426760153147116168435111278418832002026994226290624814006233066740090254309197004750088028229163513011904166163373247183378592694112874526232354170990679834323189869957265602920897128990798790179882275111872480385183086993907685340396535817297795062089546391053316484167526978063313073246238075024223661378656823004867462615906078494762692460412931372673413122000225071519594089837961388756134676412677186485747625323423812412833583676278672660040924510562931747885531864655445994754628534128973570356897225659989871077597828224271398055564984791247641312419623042043434804046580675966687959886687604178973221172650706263307368506372934265296124759839931854647324970412360618549172205341067827532480234990429383038276222779125764531539751440657811648388035946573227302171008452230424383641413592825923053983429104527524085069160243115822837545519806047226548697291783056878504958528229331088937670324688036526826455488850030232174724143377681464453855754451138040077422014527807890663174282566338049726037663404981690282951379840500082857411662462608038774957887310615171317294413644562616466874595057740490331577227226242037857815527996097952673476955654186377027410484447257813595446703508223881448667725851367763280261267864139589090829207292208853762792566978142505120522451766120605600987599552820839640471421350818991657449861728159934687664502009308321012402647180480837435565549411985017631429284889404383296305060171299286792378128204410207093644445369019063718537007971851142321593270562331437509631490242507752615428985055565962965511936477599620566040503752471989787063940909039814518581292892258111590097108062255827993807232877113864311610812173912421722421929160832746407051896524984069459449779273772775715071025314877057420066514402604302802926935692264670007940541387776892120838778557365385935950165805849648592988168343377795353010681784460313269350704634867330544777663682409905267471815210035615677332641936292857501770548013297077757568283673115574219305917194694841453370847341310054052175097370402276493636401963733257933840648760744898988695206750011591291430272702999425739221417215833618337445132650619364852672196825615805699792248326281552405239179293353322743755951004684059193213069372012288923441901512943947021989041774119856869740516061515739851942802465670922190681937619005556956346453644410334077577392347116630209328678951839356894674877004926621160122479785532968264582654546971574329700688566901652478430838565673001019057482093367225033234707469885368505825139228761204920341008776701932705958998751777474249084894512255665488583481273769321371318333143177010806875762578458072982794956528688194574613220229679804752823481470556161084889247649517370057555830003042273515845585610566551026329271199092685692242114461585117141681013597421764087729292328688138206542133056906250518641689244148125597144712731118361288564905918208128191216124337124374453156893340571649442086829664429435091471521974886951585117665338851209021582979084366738811546823133513165662208341642104215061886501445164005445457589446857356431986034563165597741933942583807557906205827143096363771273347646929430355062555727133400552142896743037713658233341214140897410704917682692800786836808350725913432730572676081576417572079762683721529616986657781534721074097463489657002525835132099758588129041203936812360383604309147631964396084822208165002466833655067556671506708246560692154479427791627140661013966966233000558499696646875361692157212458642005711730859994979603549944602675317472520024755927771667790087580574358114647438660118525401491775516960149453351078531499218755392829379847849586078364413168587129021440924343892272136755325700676805824454103348653385864065530179777037420918414520406478309611715742101215687750847543739520310515102832819230587621754029408058073962534346897847405454387094941578822427720835315370161593240723743468160013237653566206688284122705829879879365554515814079249893791605197757744352380612246887343281827579802555217112020004429250868716048719811175345961833142425167418687530296811424373062694350084536147692990327897354801135679861039848008143209539265457062730943522353024730010024349402525937241842495086332994196403668594291790383130049079258202201643794396763014121718246239324982008179519546570643297159463308309098368963869605796122962251749493507577726460545230240256844585362608383707130317583643584503810709488352426417055830539721908960338671783576095427999420773584037544987897620731907566283823001255486315616614879429953752724805405808162801658011076278033776231133913262155266532818157464947329660438034463176152764935536701376114921242620547158310505447912943518834935607320662124857674352068661691119585616098928917253626188868274659424296286406301031542566427350280027092743255167556741713167683531903450723254199250292314357657276945178750523939740095215663582966946355470404260644084823577146713853438937833851165993347158144840322925030117067415346243258906536056453684074942192475134870970789270366346158060869703946883411748857026724772966205463204995864926473408032239816764202937929089870574400688160418701779860466107125043111110622481997295935525301580895507653917821338664529330789507878387822035892069133519918436871198541665554599172544367591141102703728068538261963074081891113540279998072641549124741735882672693735583284659891731524840601331428547592066398263782056594709404526343620468410529898975969706443805470820092113203476008141337663543847766947073924079508981378015392087071550252483678166930157420313765575237347181291361330880864315430589172076545803580420884597278960976781729895624006501472309021075030352857874776703145668134275014625714581016344227324401061725355779880225471974979336196613291350536385862605566764083226197493125904462558050262052677347226137750992041964186455066262762929565756767400514358515024725924781339528795300825655929963100345002630952574739073518670699637189083956763951669330133179527248733201240981997325379407386423174469080385274590153527355731050543689557707480808925637236752676618234192472148903156389757894607368513362173509688268414302392897355827379997404441607685835837175422627328258453058806382584113933885772954285747071881230498780591809731553916685239290126078004686051715555661157405737781463455395681151517184989799554740153960502062225802710867255483495916895796785489679912506615130142909154637494422521256172282371173838187993185303995519510975072181404522460930035803320495363884123508997501996293143076920317757903246828848232540690021888648953440812659343412717265842555088453349768980520780760878955853980678063482928716824375612680229615309839057882343558684596635175239458327361031234147222767279782704997120901541648008805360312993728224027829338015668887600942178436759986430500351603185626029776478964760017255624217349738203266151532129075366666954363287645385985665526739994049950788169776895125003937776512974509501725292932213850181874070035314581001111077771069823506015526539656153975366043936608987586917278452221966242729743244901110784493573604465227484309049344923438945815967492252516782615061726972867887025868986830405600967229161252775201547758923832974392923114181556137585172798123118499209596128739139630111221562336932131188617029843894339849629443937740274672413355658900626257300883105934573862432409471668375696843615600488882584241491806235616734727469775878424265796696142678597105238210504961154636371901140890853000400612263367893834266746319793889399215480237855210654348850222419310100808858819125320557777192474518752850607508658254730897140898849384279811560245254246415522033312937549680454884814977102286200695287794742679752436153954010416955436606455111998170794444361512172303109386510633075828609872385788194860478844795388750177942170950378042192649978544591006869889929832230414088925318407236358253817712314927898109365045673340543973634038139675221899050477108585494539067073304308521238387469807145598467448616286216443970342644285384783551992864876999453311812683284445181639568956514226613951647566342875705003984671540917307178491520012497783379388242649354494501250966934348162984608965701236837709943624885560876805660331987799876472543249152097296042580973678231688024055843992309834202276155705022053495975475682766363756174421522304614455035887299003563253006594294867609618605265101332878056839298573831176176562632880430406271210721475103129106071847783591231185350642310828608235572284277909246472226697306229792556278224373386760524097742644970815860818086202258265640116245430809144404965404456726776345653438981336144699149626689150822180104919343548374710587164527637531823665969665045720713336524550692226424764538198532676084434879055595092893135413516113501453387090369400090526485880086705012092885042951695818160926942512913270357802404593885680119112862285519267486737640702155281989638928741420004297431865119329441997200875289841612037240015202981873104325701155135445638451242598330704733593789507290816905844801680224822883974743116279695980258090697048394901092487383441365417021225592972543748055763853449396586977946228699720329145206808397495016200630429181540959359332129673866620668156682369309251389655082960330850491566075237658636268785057932209242005774424177808545330274963097183788601396426515475996784745858922395534208177829896517872660537260703842866722774937806296795215027383948263705904346752153109420005165223003764882219660475258627725431273358104044175341271896197953523288087486564886739476056847154329234880150030944719070248833423256202493806780650341873826405526291507208140020012007422629901028954958042242997217455036213724565201365221749298945176485020562951336743474093685949809998277277676592214065123527446926145583535347148371650635654113308296247497093297531377382971926600854530663170977493762747958171990420720429408353354036089288309882626695764974672259597691175915118185721332161402786005853632185256852785199796482357322888580294812597522205373728020529149223473256136486300463723070942410857733026875035152673775067864703290021211128614545353930147464998286489555722812047682555815327040382522919239336135132294371697970367517970336284307287972488193179151607318489182169678335709283345456602753308452559156428940902208882540346387448803565802192946671866056845946581926674493207706442316643090878889525489489550713254725282080453559863213448800951614593172787279285278015176497471450906027313948525671356652222853780226109871917159624227103815369134577911871308709943914725538574734674078186513219353256156628436078111018446537647974731176276193458196250374983232728091599665725339201202880289855933712376512722236023456760245119841527469798675160392394116949637014705336284635899828711553984213971391088758005646330934629689437170255061508041322494289382329225711727488090471482884010595617553873421458572196740784234271773510693154464862690145029388647055326044034691995522366690740729861968912212461289669264619947193422814936624366139089356564969864237812292847156027468161640551096451485453154074190842645844631305184835566974833742226822566754862369272409371981297445078585562242809573384568793085364214968297380060613879118380754613652558975393935351037937833020281431946477303320745551562038478412087953001416673542573970017258654702985053328521111811302179123064731104871991863979024183804921261003245213509208430920923683126481158822640456159400996884432722657263059247528133897780124957942511892873950877101480214905881296484552213139860837785572075108436804998551335727652106091281839002968325783337379848959659308417851681763963726771657408237675506630998270665724331342233081813654348270059936435123399270553503256182791008328360270215590554057551358498471288285011586201627334683100830410617168723801554931497452163110195680251865669083161895466187446340346847545002891369425200945233424379559227800877655612142269406230438055888373789059225036526012903867042960112027012223528510988637820161395935304466390325621253560445904980039197992643805850079180228976493936199373642228944663999404793241012210074954850488208479953788792629956850450512843442796697522103453893742645395964424148351674522270280868699417317732609873538487406099826620155960676918934674772742999923355961259144953216546449681801056686988805653331952250089779086977115133453740376577334072033109373703152355740311592221816312000565105254279133177631287500430005164807961776628875458798086453896404648811196350311834654173210645794840527807224656389294598230774859092725631596797032721613369936576125133506042099575222992675756766212215598968155646227921303818750327257688739158977364771050397133700523848046181849146508929353973248583511914078932750953057921206958571298974825307507723485958638929368254621039145643933933814516907047080660830427978193737100063753138811998194963031957084417378562444689768459953955210771107767318857637494883950332038047729808690050782885254665167267750012753409489583140683280367800631673791976098000814201161109526746297923257802899113431115717161379616052675694062659283387269692013384891853182327615695572234373397928822171192638577839985812860379473945966159174943906687041526491507560674955511049897377598199326047642764381574502747682734725237766423518282794025449115920262606553518339952343931342027423059664110630115962105039930159599267585586860114172003825089465024013648108018629797906031535082338100256274615716178973022117395475160134664977618758036875112226427628823037570704357831768667450764617945506268196976757501555614319884730846874182594325026466014249890175900062328955040295769540473271739050581921957905187332796002347559452220689278001145152459840564688979005760516657274635684219644263400568207715834291310416213811541256694606797733856107265340587312304853144008097689374687540832706656722730395964770022818830879514113001608664834793754878405762308710429364745032320657051994535963127870850960205946530778891385050308733825023638901031851124111697321563256524394786347011165930941456320821850769685216697782300984558179203998688546119992420836287811216718179418419448421722756552465702944668171564703583224359120664290876547451456831574327772862323869353794077419622395265322237912599101803255647906800373668949096124801608585962935109136066181462648521978134185539871074150617737361197416919696344238750522003516563844616707813664776966228780864106678623832481112552670052325612634005801809416269745617032469009515359126121293883758770077420484358709339404359764827534048915600222246363172536175208261832143981731152826121142741134382110822783233653828712698225516418102619455974629687864455832482362717027561628189777152830067868804210819598085070379581691798585857803015264859732313361976867989079922905434198903985350606837333562380654417171302381728850350892377188853569875656950383723075597041334071418721687966468462130061873566578977822864283718822354737818533844673831599772450544827795071993495807338316001868716304973624217433005352865456020941384546441710577607054580377066700108953291192832303550198217782494405025368676094479435139720237819893373775379500343435551669450735502463664043428318982284256693363131335531320729053814870121218159442710142235783677630253979158785413963231943934583151290511113497603972845983454038572328069760226286263549518161920924911871344118611797417295726591182631651585861740623065785540931419966868510162113597838182992337152015678977026582994551589599084939564964883027101700767827313550242026566388123753120129946398128876618446198319503544362044487663448185959472169022515593666867190568369905508568277068006997624251004112040234658766702338118914725910568788109418276301369035033007870548233054480768771106456396398920679744636890210874695583522423524953461580103132712454920843191631009056063240499350024636364516785358902417750971282791798205264904302121590138385941383971906827899809492511707459459641892004198928986178058617378998091810866860525837608971062360345675302885335698672576047629149438468160719834216725403763380105307209067304299020965019066534273647705387630558123830941251306329937242160174004611086841354323235440454639553848519930083558386284817112467843833521502409797926474856877333478537129645084692186635746880064037935247041884627501620378732370327302940491019748593903221254660531654422046485561210148838632766582636447112179029849582867337292728952775465630808036624741385224839427522668753253492721101575705340428015563287416908142888725923349904736902882251877523382106501018619784147833201447995309841589791772707640817376746187947245188855769204201895884881030881274061174202876521227904111793504363686726375550486336086981876177423590648705103159091113100931885438789291475572700786583786662409509446254908139587430298992759777546169660220415234418115997741422199597283369667535441227669924822138443477219045749392072437749823039200838965826175197628794648201889108673442761684320316618534532981451773786971201802832979411886369998499394384716317994365520271369377150917402808086581801192704799215373950756082218062338538931676015007032302839329318215497209481819186652746419550159871411995172961610649139239105396257190542650506446890282651551332767938264905487906710385397316555400266265771637699979570980474180797682009401456777441616998276244136200973363676625372534524559686816995066346502292044017367384286864910023339950363343029418578714832520475734192085015120727128392894147112605986282951438618592552977437849725495837744044208507628371938764026725077810154719058855000134675582819007622448839664808528671087287217101464834661025394183164533646081241564614753616047866229061546892757767644115017273825579950574333817079220200802028770890048490618932300850701635570351876961707163416401340552430455602181695542334491138585995007747911990155958756144822520618767903316360180826819999856525918889487271286930918718771417327650011265616451684203504654498122084307073311152163587885421170325710182344461925119553690442603267919782306262731640652355723068567906661061112109690716855906823637690990624489639045965512492255260158348498148365342114285744825762505691798210839142041997980795064177627320170510252197950548390820916917815195083452248227663186426932036125975517124823953630144010767437446739362904163078392961368612413518125700311022376005765309916716105086524982378031235583892649495308569256107815403846589189601502706275944523967607735227299929980359301765790587382343593380128637584056851029953334033933924489189108837921371120101717676634364808709972675916008016912131421440868830171898710078057862255513501741269691787147782567522049731634043627639483106324428555582180723344182217364474339590014457644028636118158875340363650533940673881480299005163939765727236757029910524187295680359011845077718258652049578183424004492408986805985778017602241154519446223814426203062523252159994845399660296166603864569754985347104021228181034788657225856194389712272541516214358722012435325856055916132088071059879755129979114891105084097433920007447386410179856884794681043601160229471328480176628196235487005588570786676950219546556532809831735112038076114599629771029531331828404908610414315447718277425651710838788057593428966824907064591586695434645349491357331459357905981271563189088699277904947146292495822522073328635691504117230688276139307401305461196387709707645921370710448528617523222136274684238806817990180870090684519541364465220773149199488750047715205170047008368816532234615076050423973654212284985565924927438479265443428384149948936692773459496394604933432709912588430140461139265960907331644507869335322401214734597248834583262294859408053529616410367298796013288528170908937431581956940720309565645539768274046793336283181759997062309786116840043852453005958128025735748106446322346045454769402113631853936938527380636712248264845996856964843945949546781567421195845008394555359807527237760717460770478524775788539191768521695929007620346340837884681216173511387697742164240226272210530323697195828711440185214745097958079643130806317047323575162482515506783266633606373928944287210797241563238809529725018747704320591477069718904884022446732927305013863039157792781159100031484521567763454108227875148896748578885446119799810208736589594375753638697710165558099784454313395750501058609430550760436639803778413908238984697817049408542410399247632214537349549672695603130328191869256895892949856440213018667647255419829263256257523435976876549280958181975368814678899632364164174850587226877167460969200090286546560034736507943601012880172092145061864708275934088758205362207539862496808220530171215075855277388610302575311024096409325293468037304810472774170131733174290408017626678513482373200870025186278768766557828336299460764970794951408319068568164770728503984656754111688902168964024230981334639166187518084106594159008788977730080973734567158807131770602421241399706441766657626314965332021952336943773051908370139589121691550684593302002014471811257262223613001577806263118772293921399395449804395261817312757680401343447017484249500201430178102748831816027435362409203563613938946403792335518329237204416123422719424482316938704955822890942600520752504661190991311159068965388446469320137054864288106066177542887921798892428773424298376683336040375560651733832174565909037985845746425191121945649834241705575461173091315328238198138107548819169204706120674078860625169324720603245170009736900520408215652775969415373941950810320090014779944469588788152698777956146922857781317035448597533597517384629442409452916637002751563906617097486945063714276545145994536707758698287661062504790751411638908519030469035882161299759973723670139794735011177671162867313067585742184446088729218493730489644418755825902803589314915664006464833073110555781005172326735725684421210479416338503635507803910110191216180601700055405820059520175181446820535608983172566741518766815879956169080129085432553554613615623773178206129439309298004740030648408489222880919502580123658076743624516047396681946991722079772259317458614952849098370287380236356210684717084516811474732955932252071652807853373959884342493779220493851791450984357797306242963676643169136814120320498482498570926504456937909528786428643202131875818825753584300080046254656380091753840045350859446462984653368455077137214414479032049264895477777979454638582164103708159164882047045750776462472997631127943627087598800140018613242683844615425969680255391010120407821251756708024606378223335104982589433243046546854847064469267316505814934504860780721871048436459791585750159615473127022659019917902317039699975778439509968583217429046327839265538424889942257199960498530707057858110193225837461165590631589780354438895732694989923139075559055298321149540365378374992068816324179480997073059650645473818147157738135332284521674635687361449514615152269875413276288169839703781052065951794795559962380558846688780231621756829781170361050120061969378049875966587978247258156425058857456078447826847950764294930633489332766872552896281149408198465534247858985842246456549620278960854249404153020925829228840883562308141622406734260312563430993660081391186418175164720160466367804784348167385610023175894410305856572508052874340966518069958663416038305188690042893610463476462863682833197233327801218099135814096364897039687218634520896326069874290076004699158415670086105961032153932717204531364800245571519089503089954068728778129463469645220740174560647824068653548919489546556987311366563840374599521746337334119372975570733778859570052567084321555221139374466586438238282511147981814894252941483459721927664999762326380262308957998096808668865115033816475398210425558561880406303111877609379320852077493076589416682861671314656776381873358586389850112640115413326372376885360198037882786281852575961623043413755627655180033528910086268946816588976258505100077175649911127676888360470275581062512783342352424463790275629919279699517583871213209118438088386455663877585721488750163910957798851172632083227778445609066764563191218863807817059014146107520140371740738786442500280071948376523102459512301586213917849088767612575769901583087827478362508641894130760571326287220896061540655177984187286556048416320608242429308563576336555388200500178381011964658566925614115573715744161066926511575466449349597608298939170252522038871589509492081207931548747520304726056750568494662004330337612514638642768027092885444161605974579777307690998090370295595956227738078756395112383042313091119275563119719834213842854462847382125804323720219341518559095537404633375135178533391338611901339547049114392026923948356590438923655909763504084437649375040712297604634048643338926396261075100914944362223481609586387226824937868923807353341537272034183413732402960294229512725792899098732325892426079383492821572761850473045478124169271076820591164247947283293414099150867515369294537685885134863078848620102055842339779368019268728556781463107726700526468912901262005441602875436639522144826748861049688684312210751103271648431438747222465306038796990081966499657039881963295449831134560289704408022688865895904291536997273860007426990674359097150001482805239570136668643714408218742776483684520840095156504559033501355379843090449533782342005259446026213202052413304775789160127362548380475683323558491582881257701733168327942837005706899045136162351689706436483166198655197465374323334688665164892646783062479114246132374781476645959228186156455472758523791642944628783421294612055896611338534601369296049340211214500562470028335131935423294367639842839284696188040128258508152419874657492947550416998846446618812636935203335641445307812603498935071447751383473209946452663230384913119356749431513135861144818099479355797572378079921788308734131965535057655002210811723820062776282203715752723938094274656527220696071576306975432022727880052473567839463167353875882993208990358867981244884716913617108937365365179090627115729021496580265944249418949837981668403518454141713004035494207844756523108331579158712114262752408629348341809778868462190191498413205865501674656579189944723390844485427604956230200229265555880045352487961388686189095313367783535895577757612919349028141761162381403271917266633130800274240227640849803830148480888415560514500845062396561961014332562238116649927502586582322847127015924919528200472809811918868875614800409826540621883043235098311961284422856286843615557949987883960642358168899571774720868017453740863549145644410864694044828927235386299369613329314459501520801837404946751541538010870791588264713050031005318783197112011539700374286092044316908278082220039577872671431181601990021893604203270628069744548764102948191084301206642567945454380244726334861596715660151074240226653698080407577339100498509956716225323169700747187550132601218640698956529356514769210883891500060456510978882815360839056391072266397974010193721584784923039562357356976509983269156601606710956641402983430172389264190170645331567155198307724963093422638707746694213975238231609307476657749775836068226406046803513433845891854111817605981374608760068161289878261642265188241604925521745682861156797852507537187602019877127724892566421234147452067274481102830099607299395631124241089982430015507967508018003412346128920940282979295916279152948324759574231403588607707328624097077281035962008714854814860650064266316598019190786151145660209244031794837890760835920944680086213110320369592255426031203687331093402350042904559798306817528232578242538899678944093474906625152415680152610135589116612296082679165362585020249712188359041422219047589666886115626085207292891286227981058939107622594041337631533383167292756390980847857801190556481666699758944262883112224141438626329923865514726259947962179286984003221254198255164013524154239384229446983441035837559415520452938577297848886161463116446921458350951938470404676233275810186006481581582598856534086011989895876909196601914299237593891305168107916810704178350822772199283331854418559920862328967499487948810541977501516572396529223211772478832253061740881130215346018303912632275436938402290393089712307078648219291644868238451510416235942535002856842654049361268710597326012313030899774898152292902692629276912894457479599996373370930163099991336955714070626366917476605676879125434028554539630873898543342581067472076611740046064282941339383349978946514278943139098457180029315663468205082036158606354703908039955051551995515557366764413820894587450309897392887226268738738406772910251358321602076920709596458620830989562537104170780396682794848722310708593626078220596235757917999036152831483637781491357209756138236337076104111962921088423519181152438946398482444156092178035387032577235022522962232306413642733248992022615748435544603244037212993656545612560097587627863535172897965658847758148643274810858320415762114277993367135274215235853002882049543557700318124081507735425365773778033680843290931157108551011703710918424260323369215797607720894567894655976005153497992480629123552116140695037716463308370880474005178127478743600674578942822724434914868923181147998606140518461531258505177556647848611074457443795923545327656206308723312140874656031319291245979362709285220149736457496406581081616093277883982113842037430050645338095581235750074405321024792555814405094722472940789709089715914388696004991278140737196183819553585119992174268012597130487366521215122992731993269135643777891807221444215338694122250519866762974958792180293636169654383939891138444307315116986451835540998904659570121724609608370911635527569680689973400895759231083281930848846303862146112769879788795524926627569128419229363974252696282256340975002815759207376775862398762485070489064154793748237859689126236037973713733749650398101401086858784417135993786023584668430267868697466001970285071384462236604609930034900196110115812263809370043836512279109054192760572867338587227569402065121764281890922887734127661226556901057257866518318696349495314464531629319865303691568576382292974239355861825111177542402276337670715702541644143227393993288872984123811917392189548907573813421342835633884012093587967182791838669256633968849428694838519712425648429904444649695279796846883564464986130711000104662915062399563012333321849840893601926937081924977592525720605878292576748972130039969890007914433306363118224920018145104320136688282192696927939892466200284131955394587175164658724403592918934466613592066062383958452846366449386339133398345444838281034930996312003586869654703543908263973269801974822217449869082636052512758752420658714132915826517275715756728276318486650849566844214406274545784750909443891179344084184256739159183543829608665087777410495036793268761412370826457009584163218605878440037548551099687810680373249825117336919577611234689463401883887273534499024741514275333159108687928103903488005502804337448076787748379233056587243278871623298319188391549232565837157638811006658320931193384934109476652346873896709569481614217477538767421657568487110462998218419884475748927352579572532996673606057493662492456783260216412246632418651981427786070594831343462272570307077640059361018690013976197648145026788405658334544232359103662622293685366292287243318407824809317724911274989471858320754956212907531399679468416268475713705894575775779852574416149565171081106118414239406824616629884876882950388241603634020969307431392384073135835420712170921399912452267827201135787397965312203738993902108053548538479747015490520175024716847539261100555439635887621780268861557193424340322046379595213774775062005856382433122956943849490217059928465377980494522846199519360036674253616569762086777478990724974000141960085247059086103484531432615276509327059537651841110294468690620249688611584164943498983625929300891112846915399837260218025685616325512325825463697983957152997183539633579481169045417844322641977213763503554200539645586540216838939276437079654752801558334735874681946433683920837585059788758663292278724941516326160776086488043331716003604826159734409722021173948286275645594253811257657878428752024667428712326918934946215784693707138759446048990097573950310567296114886663706200090017567042956932943455743267618758176690257124207421525190506356121991481268109221598098749610376111806753667941700166314032752667824384407128852290579354087547450973796840653062817132479429501570601765345655722349128916462162882459093298888584004350351358882875532690886811967064952088312600215917451082050461242293681279945466358126237136845775965808239287921646841018331745198757380945611502081916597786994685290699097256848625767841718134364471399125814525429397640836846782206186647670915330110477673394858986789514694980660738466178617572500714637194772991906144512609722037059922032020682119621702423866602653827384357945802737653689171548734536682482911774935660129508995205833977516612900075464220948672260300107763183412754159027241816851531968174694299249488061763748649176151479188730949757488309025825482189263591000950488088444349809796941772718534665086276331412991302047437152956728756136787687113825526386104853634230745235919598927335305501169503125523965394556077788302949325736760122933612335789780784807130698018390227639737804045310864714295864159125588842911295675507273582469246349240068601826085217537799951995114058460286081551708676640507129990945538885775799637975025563195778424301498502748093719405912261612931136176671800803024417683343417649687122973931671401381635519963266574464003738067830253209489789871148497852088316875567346359362295695194440898639403235871700655915622421487966411158974549265436865945908238167986511950764561479034568803452961142517764677705657348602022182035504287540013603120278058530371952568383639705484713800804782643448232279090360333274265212706531132437957051351349862441370101467533177561755154539944577581895425860267564863012805432415495016691809067900811301376577956463282211360683048430102268229664972024953468367134422034602798932390466803154285199235945873287224632371253728042271786390002913848456946629890764745625192733702283265295775408428100567436712404868791964396321731322254417424071904311763467297684704854157823841484439084306554423865008932811720561130098395922635864325973377718937642833951801650237819662114458941196621843104020264372717231092344783840426892241421150380035447891947143256515796277366486931417151008197735226490650585945908130528686358816645009691918197849308750305593671681401592942965942913931151294059607971531388145962811659072630749634686493769800657484213363418253675526929944620220470944229034953010415478297937823086567350577708176325370880788955251590327569816468950589722767401485188936157297661965320722415864923066918900040703688855941089801369694619105030558134446636390481031812577023622898267063334090029100175979579150268628018133718775180871148642626415718185111767129633854602970470732934787210804707531482306020778670875649409662354596106745969058429920985373354624511109046673987139212269849493107337033009027197957538001146084875045119290038378366173487501569506715243180076264895277450362649632691675971886362140080061256948638227846255057049207946098012891020316209130156622930545974982165545961713170796910178405613334195909344434477110899919186491618389123098217890053447632074626270660051118682845215531592680771537080619706450144948311629873710974794909267206491429016945928894717087496522065954234362838874241386112374601248491643463178519880019361778493096354404552804322312130242217280854361625625217764562208017024946842237985508255977327979471168644694920341989814390003909841073425568698127099324110748744165020188222563496869354526921112555238653052850432332954926919446464469801097442244789702058896501469205740435409412238981890504521178507483865119133488921772552317394543859551511696222273435288224663945089946989140311092008091202221262325213072948294620852329915616160205490671275379038295856156096414299909799970557454198231800284929782929224167340055249308494135792382631824499598107053245122804892046695533588362879406854539796988737480567743546197512498501019982609712601706952433002338197571335474919784547072104866251140087536706177209216427730134548096716220183400748459773542706902897835421034136483724210959965227859699846053325284758896817773713009433240347552066220584246035676403234504086366435662297898064690839244109657225210676341803395220651992708180408251131881970360341153387383685039389501790475521490970758846264639533854810814376684997042695443735157446328152266309127266487083385288204784507551685889924812508863225762585845308458107584953490741521838936121712187289816541296319471540336087150883134260964286181809011715042523108918595724008906449073987464600127451418458696414761675243539051442725479261253320837961477435680951250747562210304279196909774937293415518060470984391332604430750278107229202915990228512593969070632473208840356020364965080011585837864602921223671794964693199902150827665059787899081211678131414059524568208141933099154706190409916879653297613085326651034056216931762786661431951487913513553474590513754158699961787646826387301771117843077282699953205905344660835498246242851176392488097859175794620243746519265913248840881097024403128597806339596568374123546152762217250873743304446049873638290177515349937896156021229689422002983005622240112729254684850612878712619219231844967419985644354236270177337645308506314131167635589585442253622187403230801747420552203798423033756554466727859451233228495586171983080222260163382773618515891088220237567107215132484834879369803892311309217302380398662813149351872211503839158045921764448886452783233884657510209945090158743310558746324754200074892339156204833208474317254659957916094105670497920291399534551939764394588352594586286434753776533038126189589254128213573143980568635856073211767389542792566837159068220629244896728301026098919629496332482687235068229675759388685964628379241079840603673612274467770662710698883736596779838708003847669710396813114560692472534031497447320019526366264039395159633172445465233171184778927965740852624731064119820616766800834743533941991491153605708575651118463814918504513468044704542816735659583523290681950644817957262132386978528226821304112827702781958955913442547543418442426706686484641451706055163499634081179269673109962857831800315972619831347740312346498966101221499423608375159896061388613524396046700712908096113491541146223960974603467635390634066375486175411598738846450270502688284121225505811253098861206295667926715151765817571337787043559574888795294726483364041925638710200689880584129035725392266817995170761912444782835704787138410546387441587939481167670289736535258014085547124029630532921239886359942059079584980908378199943103667760637739976654886952174676102946506417905653937444360685712461240081323722237197562610587074265479547164696035995907610256545366192113276271746534290124082065145360484356844103595373527505499985600677451736179556192645663465378306084145910052539934198199914004327406235231743359320346761061493577237064008153410475214363865758139374461533796039552454299564684216821448840225654073651240700288999049886191984605851023591166559129129074458495723753246027863044599918793051709552488413644779623276595790462160068209073745367048957754744528111080946043859890346386526405077102424555376665455630352872257011703101119868284397215246852915949276828515171525448521906162568406881815526194857065050415245562770480389298855353415326174966060444850399980682859038486734637224607938714680776212278570909525587815766836930616291623933610190988930220442077578609655421950265296368808495826655510006722493659754201679468112649323405612709822614999093143527219854519439300319011393842113751087137474317806616659032052703603194939174598100271540344416719067978964483998256989679833561592255610680118091572220608332721786327110186118754622796325487748074909406186287433053718211546329388708665785875042087793649929223372412013910471093052974892128629452483631116508312444427966340432032556539420633378519691349715706634180114438299751318721427118324135184956071768981805935101504016111960038805591321677667301698102316235674088796497204877615697998464867007108672812842112255538039484941020495911405992805998021448266333528283298266607256533068102979389411668083959116580965178327774828390685757304371745271973649114750628021633103945635776661778368261841249772231251840949647965379767392458862235411203724076239791114091113255846791346263170338647329032768487774520162780520616701556801130676614792798426142651539332008594017091196053481081713283782879234759144699988748215119996256258164121217798715206940143342279339164845949863330215682674649006015102378391038082129073475731476442936244809553882069270092135829746392815902556431132007052248493255025796187050379372203432376915798094756898985808001331739104398442032157164488619572339676906086098689719205546997016964308678580157314610730150208408495140190506393887328853784400588429321883973510769420348056063152294787239564090500141820043962415149101718238146392645699844234991678394250988706579798387241725149734979057924560390897093132942150967360604736574824650668761231619974169471418722237773797649985179805452697165401593588241723799764839954477229611561429374210697464507447751526435537490057151369402112675965557983409733870898919271729855642191279388633819911795844639930725497034627663359593725293426185493136547744554060437539773242823533305583747898654750574554286399148972440661038702754637051330815486980832875383222333816699852030508003664380597749381931085467157661441272035563351858236105936618955360088041520199322071949215959934729716258484155119205243291094494583883090365267106836350057562399381731722523662887049301103513484011329291901532593235037768327288264690735196165440077748166623363046552107833445605325864158665558157513969497683470643071150585393926222303105481088951041824535195284897196439357850226529013284570921398688560335618143286382884968472537533833951079680896430058999268690636246952514330873884124636079615087960237269924026252617190383844716354188284305014563178132011962278540983713172765131985176699610595850249867622554302414367121851727761991205248236948495025113588441872507704759909942786583456316752380182266607732994766019592133038862217447486800155709652379471533024799620628433072672048407726766503153397882780195070194200617317629760238574294206784828867533411947048009659844757251996049463807315324811027558927019227499144782094043947575535023936006847341198459114585895925422438886860034291902779611916973811409803086650143556961226407954701724000537232573179435684342435058020143154245325971533960630375228944227223362888537493945029086124118348593219562846794412779010135751503356638847336266608673225776703694531985053590575148597499120506770860890702775923116413914424559365293787095963622469834425630757811229572542714414473097208895432767545913469001564950564600059985710686790792896178855115977113420127382040484206584980773222346214975537273751951377705956223429205561298667461200453276115647956977152208784311059945427096968332914213168481290072902809081575783741985249251886517616704064858130218603362012168859250868764082595008275903639749964085994643519532522465425756242952280266616266880528841950949533339160094076484788336928922487541740875904829303075260550772536507608069728693186313987229701335072691078566841729658873251164090023898173568368647969294555976779339798141433870442732158172109597370199866919338653110343304244808031068310800685099397857362530698310123835260142030817844959176969287432311099670954549978246423766703646557499491289083142596481287957170793201227735491086039990110627827582364518669105382794187179976796811342216488528358883514825429801956886194711560721970318839436451168525022995516606691064785634222634388615914776155104708555255818448055413380609147192748378977857583313642106101478242593746666750980036332224061218886300433331689501358617245719513062439512423870738362953954674444858952436147609216616101307580470658633279503048899729438701957361177830931941408283738482945141725713235365191035710902068112100629358013283486931202892410346406716722519323730134062132430280937429646678446866809425807687719676052940559190435385499305905899205038425145077735612370099560984605140375106728010433563181204308816547421734074264731873296236970524938484641657186511668395918191419101226436603753005292848955744491024460330290562912574125835065659194254724327479297297718797647541845621173399044968745069597420017554821153435003130430106324940350002644380929532924822041930632104313636046357362558216436752221687528166317875746987926298018134920734919499918928989721828173475500269907944951843067704029547334230506345136151481622411991017623385753799371143025216726058679256462812923647339236794827298219646938764713331150258336424690358836201534584356592135875557630716206924392565841160546676187637885112868633679455738153702714673823960513770244381159304525662929745386766408334157546694133788954498244997418924688351779876294743883189769938043645019952721607317709546429134826428570497823012998647989187641505743919795126043755331141169070768832140317308938705025904175393526519080736504283837008949492053411408751728104481623994291964552787329974914668288351226765810296980170020317229461731693332983398494419772554151391406182234232790536637998254913269919070206355917586644225078285280173534055580644796316974614895598446614509283500684742727204444122950441349967759304307779331796287507477312078434044584447173408985219404104350974484183996411305854248203138038384315374256219420232262069814923108587120108605345151549676239309587975110692834592035758683473187588873116869424800324237603085481041032357912771285385365251316386475499755487629102048085223691046082457794278647407425870081917867540461106249179448885518832034991206757465559375234558553542188521371253413835971800774028263746697367411613122825316849175223690702432296074789386081074215420007932445724084156689596514080162571317966977921847259487404925011160563278978506463133626999233525016579357901218249958106936155778037579499841340819027892306602049285490718255762678176821467958153813287723882066237884482985455087110780690223122932606591859870610586142547559932840271828658202181672581874624020970260547503758301966377976868177841782973898174913868375563594959019888474521005702280439668010090164800858327070925246193728044713712490147507601400112501132718128876492284324141861028331134295101514210674395043340717250430906840092054995839669276450608201336097943386406432808173183930021381817698924611154408829642757118592149262533643368954036284308603596939193513031123450788385864114509848953635070719793101232262341736980042949950962657256832061822911073950718602982604399345960216274246894443836167365008696224732100714189819367825968299428431194434724807031675098257567845664137439022872176160098570282963427568820108030446922273828353366543169776214384322635143100420818264723671331697972302897937562267333946330195139808968059397835595179960194997634696140758715378450472979210981034418519774013364448458174832424257284476981758879221209805818103598150872641604072173544011897551247806855811076469256536371727009137491565605358216946254982847785641609087896426424680903363518826051416405454819429916627776806733932729208601262932119785854762551261670950881199665159425166235820976115623071771082993884773610769527231421965287964400107841633863976902637525074848169680296261781818706822950768490511110327021049825362230389273040914075913555230190287087358818840939230046812883262491512000459359395490672739208414505229419259821458501366479591590861035523726681302493121720571915586913017941138430666812168839428289094005945531088227379244634180419594726852937072216972269374007223880673386935023874902966008802805077046624014359802711931091120402735024862143866270429648094639587847643621794488775512455668478516828828461556529768425278131751117150409017793824808648405797461909048838943947297370298731312755775613177451148366786039628612687091030607173545466818029898044447931476396927410798624854009954091570205230962073088997128132212898876725707193009505158964139448332538371030304895229593115458204223923628783084469711211262172638181505214843656012946655763830190766151060141765289260483575889936986644126043361257670031437381395974904031135318417025811090271149792513710154288416466312663274033382340235267055520705683284594841108903477347541048689643131492073987504770031873291656934053723307271790013749752569326904382944817626730814015537997355397603741006607776832496082376733093479171109724643658407502671389711470683368192236242086461929759245755088815502503060021516267568499217645075387746843735447124727718608475698350357071840052394923746337356371893739998753304073734376742585609739217659353086641936791343573317127368746255933090310823920646727857894916978026984369996808511177966078469586630061680318018298986451433903766474551902564358026884114570376976801991754801621719749265793217108821124230230636375961595601670161899253760150145424109684014972089970177997215236787802845534362855613654962867579417849120910605523502664587266290327742292850029644283274200078166611532886773944516474737652231814778223992052077064617651133501541466035138938913457869975062971287026067576621139704955103370744957224138674950583853767656386218229770341221647158893391423041076533413286027541100011704309835761059096806797093374599416266735452503298224293324075029220657362744654263851539058630452150180644642434874246637166096959453988467725391771055257516698657857079923009447431787216408381220691918618394264186568442874910304765516463111125572424889027384076223766196119823270745806141366283506324043520836636114777003591039262688133919242621764066231689833635659506079012757519860412861876124987649337084921594288700540215313405410445622585276084423496964594602802248821286240173153766633860387851510479321045021109437155695596891634192000118477952041367647345614588203381100028549682268925346760955521025767384258800355782377354034806792522902851355708467339614547277300632979786659274541875472173973501496114782397921594444410700077130249630543485802361367386995063771371248035938221210969369322007108767629484919991596231096074395718016387587726768101254637150265903237328082814511232425995075229366466539000280693163609013602512739846283805218730273198553479085421839902483909658104614926051082595343752036373433690275699348410566590906048105746844373611311273608796948770551424441550250791025621172831976738063614141611850347284393856891902722715973336827498272701580313141538601265990749667545956022042170643823142706857110492711095327709320194238452460548941280013398090764803994857324775808711834325248797277831368873680438434655663917245748081227594271899984421705612996086758305770908288540933690698529688662008337427222996785793475287653424633720235334282416623125903272149074656178835770275138603573337384085381868885631467043560766068490320693481610972932156276177124522044859665382787774291252868743823052735619103101936970122586111157057510592529265773705411264355904991133827632717139878558409769992920210078646284065974399347287408508817911972997081506954403523374871128744766543430858307409010970828902981352564584310414901596960351576843162299331355617771535307181685002524499542031074160289736796753012597417500212418537635544660070011953852161701945808331212198612144674534002015219026001783906255104041138590799381560470655119277814861774769909822428259554100651143433138779656991075504805140671861679194153428128941784748543349658030023413817804313002096904667989694772925966256527287761550891007340370402068576410220257398365779048429785716102213874838240843804133693090568487222569210825765430175126068922470362559108981214226725880744532689578839913747756930933948186123926023411483994093503426461565158269934058461705283269067380311185431355305150302839658509049896010850092542969928632525508647892939781563727495942921375681713758987987639889783129313597382522601437740703087133711431285056760180026983372103101926129930807572069895676506530242564960743449894113393860985263050342067069314553030793919274740113626197007945562351829151633043431133474200112419149959593264157129018227111987732277786153761797599677504277441157770976984238061341458904044673255874961839016808714525104906579258685209063129630294388135848945161067409789751179569901796815669070729874785953999484368931631251934278021707446769630062851602202302752567354676298707256939214152818155495643845792011591992997343965746189999355560451278022336141951108087329344312316072411261449066560382970941787192755102893794524834188825322617812065652422078108918242186123923175168192391021160658207181523939885951191783095846710287678472750814635249130954484647965921795698452508685725495055940040105071808643440079120623583044938232432050422850478192496375767913995395144412659883514740196579726739176365742671579455221784399952093256060274330360100156615697315052195122037627778334430560056073400323616142154930358626806795502890457840163579167500339560911867004648415280706299249808555726139782154638069746917921295908871876909072553402463356030692059830681392429592656862429696725490149063633363626152949308193870873702309292771763521382490509931830670733492771195660064651613153614384589342604323244023749734393334982511773296020418549473518635498449150388951166864187586171976257655150580022149035362827926853507531902017009730903634862102810227029952797366085214938766029678448118511944221242398153374590509582364476644171153929026220277625023915259432206246657633356613382896540288408826488488371180260294671345009443865756417116844162064570685400610825328100528414742421050608440544991813317698095567335436981894677140163191648161590582180643334416792681001470695962147186951924510435552317532966130294529075170850854393202862556264917199929967041789662830044891112358969766864938479450794820142978173108163955642620782165779469572272306104784565291696381686762108563417152781491745855492010736390578403722133542711488541552830462785617646024153358730321550308607273115489836847812133909956706049195022081265601439438475195017256416121710848438446598972775017225900141722144501391474224615271523598214662142931628496285530740591580268401948331148428987639510685414134540843510139653856724019842568266169312376066505767476227902352608778796664151494541962311302342985535649849053377981360622292612549193940058666429106317051448053198773878876660366432080894809782487332415927968881065012878031034717494765616337907783048632189564845538673103443128282964988777901731477722575991802850268117543753285173268857445479798417055349929570714105498642848341393623815682920240548619570213576089501709481469083908918500138779952608229883392313755600531508413694514100813548536599439199354115313952926944678878686286783253313329854069261597446787342820508774387525404886000232005144567378572292486160123864382336368852489153262122029791632836152490220668779537398986212977997222536688170108937266419656791249693617910377792623613280395872581991182160501578764760712198689764693708605323401553483115723105261993046563692921718734461926087011329172126390029098323230884722671712961245011778965391215233713524493389075517967116567842704438052707333900859989229274134334923692386039295652369529182878094434631492319544802621711362619068927852554197027628285180437456816368122313900703137773267223286499148965565098158482887558142054141613613803555459355936685939407957658224993782921324109509664027517639390782647167366970774155090483232621480327399658432399257280410514738912129567397064259973559551950257790668067057340730460448177737184761939096558273643576773893208154375549579448096966343969645895097004305002301869314951290466896340546474348377701952513429866587637951871160512783228137762093110245486881584644364814141468273756232704052807648209709378715611231519981507992503064056500205065538958498755091399568833886740657843658721379095274419188479446875632967932221746739269082503785979099067819967118229533227254583965471500231864081097499735268241550023103373503065126086118493122625798039933590373213792694327139955767054673568623041322149863154695790259037046026665887535649876041958273278671974038636844999449148087177407059985034163979565082533625953553209967699936903938972020282458495818038893595648009341565393978031236642797886480084592680602492791357080750510791317818027519796414660582829808053944974218329379956430224333224039540794398705610017600668094794432266780402864185580126455083639498190810293925328978454758410363817466904360106087748758452444604583397424274198799171466515287179820823300791442644602850184042644849914698511633124492080104659671450032521587564131721561593854616680832240943884876391798839244306240193223060823693185927838969746324337295005062009076688869682124748432273114709167710239161400067989620244203323499417013211529105268736602554002979419125237167510550815747996089972697537987163942723093536571016537296270180639949971298376013356312841496003032064365086898003702815440436830970564392634373079631413360587720936399199697329278331343848652748721961568500987453423900346433354272514784901587350506698403672730551138943943788040077851664105048623399907787707193703033180200885509582161973403457732911453416178295959458136366458413654214685639111816238634248682308909944801514153623518394098251193697805691454327287904046235299849998331868637128929367596040261581279349302726859041847089907677876825650512202514627892612297842306829590958790922385653755599718125510989413628574411961362939288111289248455323764979802664170263833684578936226187643785928678014336955997528248480509694863781901803455678390761557921566222172217318656284469749155393362154101225960436124143566091930676853380139910553871703158899030578681781285652515322627381866231562509366797850942088458592456060364724964915610153237239965078071759609576374201467329897507925780340719485188851184046371385243197758456632405632681780111293205675859040786403270461216654742531801374920249489048096484062602645405753584151249361362587155922565922950180920621118527611020785407328861470524417542585400112204524796198633212654627531498313530550242413495367906642662116522970709589013615504278893642732560201139511135819556883765713658365903064919863280710877507820912846534198996879297687382149616834372803529488905816210701080954379741714254098557479923317938853232420269081196063736038954695366368523222962148481205865807164697753613764215061231492020425787247714301696655539340856078490871502845090862444994955372319258180392723612844812150956408423433437681776065095139718088128607464963596750317836061494194223630792781710007176717252898461812150850739753584615229390183828534869601098238369860510761539727906774873879769202884687305407865610387886323197270356655350637434920564308907373515099784641317202029027371514360270652265795304434546141285089131770107307685477330245776326558955999510113477424228018752366682761279368702337300442885403215774978517891290476739197771677252503756281134323660990154035447463635718921560738076923649608797831636330512468400020579498621337181105957077100786039462639695762048939676857858205467614690502435857977909024740411136349106424011573597377253466891240121963181346005639829712854418813075369615809201031999543103358406007710070399160531485338622275131187000196516842432895408962371761388769052524609451879897700708468602309599366884310302851931461540443514182460048768381011884128484500662990682566464865062811607693572027309953216133241572335567821601062967922604583301030286738135752999518289759943929739740448773735044061607665373523617168821836467705864932828215886486785252192469272763398039433777864878372870772956946473478034397524128499147324933611621272521493482718657613450222644337133221310182085060744125940106560160921296907849237816594107125706149831063469723715520255379525923013095242962580393125038691576166421934754375579782781329910045645801725151836442898096597611672965658689665150406154409869223821342393912094516509137030725821414037530944097910946560974507685268919565791471637976533556311257911249884948146298674123261880840649032350220958828896997861222264019759784279540337642486883281985013225586008520991724302892661021295649733923014772254341795607212407738512294678668278122217810737197318407809193207943338315196511988867943093185793510208134856321840871821353090483543280530651431926799537626143236741883564089442023435544103900939654406740785434019895405735230955658548203218623591833813528270230646061970693430026202937951127404108727921524545335907395335967171350728560887385624748195234215944246500739556646875834914540768139928769203089031561378385526949718474333331515921707953391732425532985597861303227507448686677311809106888084795589128330956307279321601964872181373182228494371325083402873551213277538516355743168348100204229611388176613164134504547636437706569348101767552486527602047135652008676677734863367646363798231275158355666224670192235531033211674966455871531829459339999503350419387614326243749483161802231124528934774783925338284862140206288577602780489181038026004367053504770807138825807673432508599653577890513878923488959351879713526739661635696383214233443008458838401589720851935582926932118260590990788312156252815599975758618838507605948531648241343014131566686980404595033408953853813591862800396962935951951780942321725758355078820595990050254929872091553503664110896156871701046728920412478069092892425858003529105336274871755537145882159242827744246785625187369528037123339909294793457377658046319723401722566646654459860841781562159344763736618748940211388197443859041409717757945647231002407046018250652825594690986123699692297984071183715830709379218683191614946607748761682301312747195573678896656597374743460343336175987864326612950717390564437152300796075254107348344158152389837780360841035342048879166455529557740062373907073487620412105650514310853266869532132452999053847917693231292202405480733997219452029581136310578761962539947730373809544749332836643228842837391688879758705756348122547060192214866161877368940786820528070262095914388550400553075637520168993449174982319335530183830114388685394384905734997058814026944022534619334568504401346197479751315288320131303569427767504860559076376674988610509607452703753468960619549710922608823095628034450389762286614585729424414712383871387562601209089291444645424980725236159348077239582590268699482356981828546643493654188322326336660874795500687773664523216679184293494940699839796058210807213720938081499455109240422877117099024227423425388435893170911397954668139751909655798678638538383738046889367172563918931154813863429301617262148266070034313257537717585462548700434895077068320788318681222921504572579905632241319388418265747477518719591765387946611423834823287128921775971624555179094113845437711107404864434062047429237553909158915300045984436831139615096126621160438878302332867359267974812953894052690582472780370096874352211430728602808635112753420541665584251505779613264973038253238336668448097488801079856217562309010132712527353109053102921123574920770294359189084074281431767105369098881109838653930060927355435990199297720658213225036816845530274093321205990642785823590635582049196462616503954165165527977684176825784765307537188304626074524072860412492846760105365726811893496311495704906693514574738637843470502981584482464476983866071311980248419715448151376286744812690569581786185781085399870461577269439656673853317107012721076182696429015900023876077119493274013071732053169425146209166053839806610356916360034649768367334663799516759464609539863864389591792987037830594196148112393475289791449266629990667364401215438668120633273589817505772674766150147485290869227759994508279946110647488669028331391297858233890555154620502158115797807029087975548969323291305271606922596353204550849607512298605240246737449471885263761682782492043106448433938619257159725329133408038417393971819110234269689337006405563901777637635868814648120676717657256508133163198852583432799638701733533268010447546448047891217509975754178308979621216696711275419760136254003057596102486887418978290273069466429968045214994925207014118978848529359611502551997385847534935286469300361433548758071996976175976007071188395738450546980470434242627191888506086795309131992190120735558501695235313803140966304240175636845890357359880233636387790932009270711556861037177187380564968485664404977022705387424768119975888162512687135432920050813570841386208987430501046048319028345277550969740765929541579080493878685489531257196023252026086938562568597383962328104010613113801855061216070894670983479914391485644217837461314422443665286509302990660307766302095236288314698023497649703809406520419821713881235062921700530349129630348575528821348859818368512407016892331482533696510603191923141340201677421250575822684443169374429210544946080125777739167589642190120376750516879657417506058130387093953762553095876006393038059487100265192109808995553098086159895315497210347160163178714160895437780046641752573658807441299901943267405304369880448180152606311495330197827564078631850260816225998291948066481454590617620062410262421786606731314330143381313739815125894862859462999497393068540884676596138516658079760944052023506816477516011376163767056747525791492102511415567325256748737445119972549318069103915112816970921076328757714493457561006279192398988323984262293254084057848884203124095033313696204949085918904719793759855351443316113220489799523515814810389328420627911933704591591284610667860905327699877685172996781020978223738388773181272197522151063894691008722136119493656726729243043019496015824189338470844602830705116992364552097085272841196870199162818626281100568166769401321864804684967144669227235673508759886255551710205478121156619553703581061073386424152388458288093089189586219830961224665277631999368515280315190193148244026023242794861112397711651095200592014055906333999314054673277235357531900222562030168540079071708670971281888464416577025387094978349639769533669339457055222454282543186950641374974697458500179169541916337654473516911654011946935828891630566483382859351490644049309826905287643269169838010255268051569946628654305102651105161900562979928029765418573804077980602862125558611688420582725265265761696714557701929132941280926131258510244656374184046085114926372155315898323868564317360546605890581134495763388952825116536528619392754436793603600509548531434842919409039607791756480903703207155815884263575314276770035150789037129352759996550452684596745140522979797472393420672522521910229811844138135703007562441064411882356959586815822256239992786569605712592933678809546833135105009817322381674473520231384745269439921904677416811675622386180616224409259587915378625017934066536075872702451462551127999618587993730211038640914869898396256662205336048814102619202405549508496247398977180795039477314459963396376711887123942740256526609274768735660325544562366620523116372714118668649241418369013303497378504127781795299413747157145012604031689068711300624724994828755031911383618407739877815079897841636283881942773540348836745293913509041415983711035786415001364405200012550737101564502971432885784467712510134046465100430945185919639041492906355773655784614939503188496896450992825951490768692516277922288163146725888601411445614712229743273758632655563169291165666534777886666855732397081821452774517825357661977558178542014568104081179288595472538171712363069842271719123561495994248892195383933238673575724848748064353826803784421358938835501032671251545643625317429114234888563795972794825008819244915373441263438739513988632882528644165765630018175554350717739962453818104371275481649629927438035761268747512037530810995531430948504313013766185127964963380526237033632705015493210412617582645672662340103983669860629233889459116688262875280009620255373068226828138428959818956976048445783937692613815382597873982414871092689302196080405721827302538867973790257427458962753954679150793841791575135123595060029981936366617420964106273530627479969060204731048562601184434665742948055836506391818889336461604311316983021672056416165868114404997303704218440259075097801138061783028616201821365013393646429943792386309900703956969912619149220707649903682331262567081949502917596128242732943609457002389759348172774758297547577226056823359270680285546526310933728771619046159855766699883794713794773796727884852218452082621644219618279544236008151293015652733495204263444742794621710407660380628706983832837524515445265377966733191039128524588382948943929147562732484408131293442576196191882799703371673736104913026403671227490877220099742238384322746866256075565823204565121454157685633504205859498580971867067254135674080351542776601626860864863552216273204312906780615878529781269268987192205175759845776521436365386541785635992979065131200953190420748100571562891026087793852350628109288501600064369170499576101016565012292119102541629563563191103251340475507194045776366176243402420503639670320920543742591289724495253183539135447006740882446696054310326789912393378624524838852291741725376058688393994245066726538525732696214205491982224979268186124846166027820982651173058128247323273275553352937609337590230261431106032645858552178137656639661335080486281337936284698941438696647700118312097601636723529863484972395600360465463951760783193283617894906274321078906847228259832887715535403785066398333849874594374843841698211331333954182383520145234319612120131562454465530796807093084131813400328578575481287041168358900022370567140749588745909376506656656226366873296427893754174614125989188673376776348991978517344473271558616999225916891995021821900011644276775725027996077549032399944450045000414446412644877069067972116495607995161271018032598665614420584433657911277508829669678011822506996155607623128631876525812003491955840766848160923792122107738546200553469408874334472625302585940081762196553661542452192158664839721363180640900741821923990132202048418661914370687104453742600465639921075704930798580779733797015060659971825863479390170044041324072846756161686475656338867841416969591417814375502537400470539317514259371390736322221955939112934752567940799466924583317742266527644933605025790099593500632467212559476796810416878690677377491180668857461182934081146208306499193743977145921327457464362075317835898284435741337681168514991845651838679389295022602218758530510085831061625618485957403449588655983471489411203075604971580288380792769309323000769227832419121532542345868938220857268869266597626562362109457220045125157276515155963176761831095316399199912267643818100042843024785138599241879917195170826701763020202255865111970737995399954990510378548917852126453250595268417876868853235567541884691919658298040482288044324335789546481680429126888671644337794529690754380664449838891873382753596523551670950041490578429018029796185804303175661725022082555468165002392585904465814700574156587994540834533225382102077674762489216676468313525657158490473860680604220044075871575227793723418461231026535793393076234585566170404876927804169060597117867837808028804234010614661833522353884641260297989065685243477469285285010311276537353193939977019829511783265291325353755372795566993690672674842485842044574446251674355519437965583622301015480498113004983557526404762766998143455010432571540015432108606107577033939507697591015285283915778286240435760261999547046645346355532283341835143905471115544626031546745525757229470859747735520961950038399620669422331796398737809148770473939628822787749717258089712114657500796418523266929807053115525869436367511871944924214939124158937434155711987534521710127324333403230375187991231995084034008723426555073066876096074849414331796786891898863976497172479398447579315959948874116572733199818810777764222656599899793754565468070012947421078938854097749892964017392284190031576314293448057030402907700354364155563549886059173218957493933734209234734016745383693424486859337110299772530370440264382262810551220502899813256101823898218755134989813251277650297528970778303206494335282766700928045015175254004089480426391226592720728894332016809306236250188803591331471368839859592418535801522128674855856833269292511905366848045415279741700800893919352052694378452705775805102614104181914806972470888127372119339434312687143566577707548897246716286297084651136573797699933411517539288473501383853241331155886554422893163091501820453929310749726038159367739015993765450946715494874376844940975569090876241001351470014869596467118041745001521754641679170915906407802654033899864286032716776304218462420606260258426720791317772753770631514139423864987492068651764466335235336465639661914161255783121938733260017322333870413747988304132427476187101450922234533213062068086594688965182946166126570674287640450235472245034086752646910127984390758192612780110277913456176284079637434661249701962975477858842710365478149856353262392500062053617906137904757464553783591140155410923157354212893676332779216997259867567617454743877662036442857207634568799669129853021935528646890826334465970327949568269266258787462952903810521887066322051723081311900614609712811703664276733377490719357959655981553115325827553707728431377953473887458328038053848558244611729350851628037547251374371456694242693228490921432731690608787569717854269564488698629327410346326875086598692371243665037460845800003293998231664134621320528470674535765065666507181838674073689492157868379939478576439951755491510325779957446517895866026047480933640446373722640736491221573075059511566422094828642858289154922575995884737610603902910753569251296411647139404508782060146713963198953559134131304329042163848174125821373992802625161363612180871405696355482500343415529690953447246039369683729415045825872924120940409978808752595155105368202678200524409087112241796047541570285698428231019656210069285106592593418079812977408148048499524953220925401034469394257075796641045246432644274768300370880905295402283671841123748510189584025277757684893393955017100086474508154662428153507073862382644100587257373807923473217761615609098000781823222236984630536760502620758996590834173813342035195614992426709887319267676773938030301992272964240066838573582680854528982657568428241376376824100973106397994992114698407630176450791772499034204151148937757725205651869007739510932067152745099904021361535147618909996344133348613818564635270613544871848878180871400412385584415574304582499176169224078671964988896802877542943136601563636539016432538779767805329070747706996122631886199935951669031654907902565461865010066432646647968637276451296855595153885660919751240376660785766646336110673887387125882834925326468413273131904848518644856713651186432252099126628759766601834314640172138089356983248502947474495501595950767767663046617548645792301178166191687153147101095115093916677523247095495205606514036297966452652075116683590340037182283212841447512917984348032936977358684947599070171191320982652173279049278133877357716566207624618945685212138323715073673546412305087305713679033784871053767618931705479646335478299714312108351061772655589412247501097684874823500615064986716438219683194152937802114706730443901609482385561938902617181466330834969828881017267166366930006333436562348723480989584513254605033800277084581583153282480006734160230076219506656444173305142484986801133453277541651487056048314480730854309300146334046310477007863473166326827311039050887019965473159736566310948455207610178676189397312783789983961942943120214736853267489886930499691129349068653516759808983150069624668891714335605964302562254617184909462660330468738442454567153629494529281878975675809513828190105791820970297206954949777370948991205617360703759361478988023079021989884500498726831457155421185993679569377968999498598404381333903206542916389657017884899489062749361605309979927496369066884277668228971023439949007935500882226383320210718454542247890574570568194670765552459316173669200172245127784165210012397867281180478920582848504351200092347235837436181765220318951390419004138184402004668198770530421358677760804460713367652943182236002983218193603227582646200960955828012394989071796598269476812522770077182509752109944826319727329187963563119728700081582983958133257803232257694196339786567590693643859189688146211051053110029182593651155146558730212418517408598682525761832249248273355768086011822325460042485446936231770226265506825388474180964675723658893870412514612806124880462007208393695886682904630214329858450729406256703070045332208326053777580058666388513119059061372493126599979192037393155143903787559830658896328878283544823779239372218789176517184756942336432579617231817916768151924168195216943298178981877242305711191351401070582324307914790531948272105827971190650429068574348990714803633136580439470935147266785745743769977988872226901057639579385416927663096166549272839420937465854039657176057007995421885650721918207888147066575180505583027746436479856756052328943316871519321329337185941674197218082259173557209398904938497189686734866799530332024493370203311419504310913755214347099704432926855411647932093029163889128726678908576589144099331473677557696734026471752729424058370683688953339259447358247248288449493980898238920075776203568913432712920695843920911768814730474554324333398888103333611005991161062644444872023341831626729359398170948537137383809993285659680355715479978997350594864508350565438261412850786659537418514252726958709988077894807927294243915812457174277925359118506315093753871317861852357889034018976081126053250432364345888215210156465795169350403982161733768487721530568064916273647075825247524814604617757539721954330295164382408705778615293811213440133568196156450051399141362014759857139164972761455653432098433831092849654641007570619557739510199556590503208986627816696582391922091606380496977056071321755023802513834886925402011818339524192169090832259101093193549992240823438612407244862952141013009981876413124654277386148104604329359684724885697084113787613577661711177133888013462181699469724928708599797525734823507081219888573446613894280808103863302690454352602358105349489681519825812859609493769123711667033704026265162967182996772372795725013122899354974076969269457896401442712068233335202345726681603883312618954039408729270948238150422039261524944825801790066754085353970280448841971058938182178645469594423325556947407972002911838826681147071133771124969543770858744176801035449802394020627592026418807968836093063081225329495217324525026799263752020586790640165797036094011092442216153657492233433771584962108765608277912677059229961628258446438482783896937638873743436630921305156453538656267145545374506876338563573168091868842455672530708004092397152430025557041295075074161694375687728075293698231530248934100292603267269674441746036679950964120841934731617554092735430645601537942165723236384249372905857273496142254035829015013790182811863745334452192081828490747634631495764749959260873863993460167732658148585985788741535353744002804399408843326117684614265475535365897802078726522191739215166016412305025649708020899687244776026772025396314856663463193963191565018737372072412527304757967972237965506258440259555109905041264954098767055052144572614569619787817732638543029407922953405383048534489412588977857074210449587692154154108659983479177799499865641991735368131674820799986350558775646239532723436020359550834221110342183433189527529215552960677184626836434364376867665958872319231799519718748250678373925772592376080112107384176671191506415778007605478566713020179799097826034303838506118404778498084906138381247772181044797873471688415676881554284051067846328478906987356865069266168789375694194975917003628638748847810914618957425925298909707060224138215313638098838684576194450784756060336284371888602559406350850125743732183963688702227627333092756521436644580039229194442924485411787886981231856059169812771199135366128087310777588191887613729993430662314957347711987234392672082953868112739925794399642311193812677854766989345564315383617915063556403144520412159365744386308746196515846491650658463127860671464066708692143799611261637110735613393408513830733661435436683605170794096620046067230938029315602458943873514959422749058072696817208552729091255798211635121935590892666227397092081706359543763460305887871321205509479289927068798132121208241753043311070189865874520549118368865395836664287807061414380088354556594015557860091617880755198138749511636579621670918803754874588306864970700738235302497259605358324799821298080178125700895520620674081032208539778991478538121093678566750403289068552765599156863301563400654519078577999399526076378881882320384117828871284962737056381432681259220602454189577717367024906745666529851670858842455395512136895718709481231594335293781048637460957565355330248260653648335835253389593848300283749974504268045428359175224246765892524906959939203639106219198688896426441589283602087365791880388843909216383810701022318491894487803338723121375728868504814431493983738442040656435035657866489874709838634114338911542012872968214583116543543326772049715329938682570246038626320491584591354874123396844690154483579729107497316191248754768288285462271932972792271229408801921135947425409827366233378502942785668457816381916272852450292783161662399098764005988632864076614843777934099013057183163801893110073346690942150335715463063444914288689663751350208085381290674103417550028745648908003038720210560614925719619292154976068210673413417374741331484348858559908086063293060611542987364925060783632044710300167726639745082376820629870505506770664115843940055369868567642485265089040195329868104703704738380513619226616171458128537654806778724827168512457375065364351662185610649934172854787796869951320098149612416347249211121540849369752000487412689981687903644396204249058384718907832951452694582981547888855124791939038594137410770296909939527650809027918810533847488555809546820239286370395411696181433588965802901191707366215898405420371691335890152886069721695975792703808247781566958320502469095676299216905757630205109305147691750822665989648826795109474565794184851381596972446576990707085037703456681799799653028815357553512421417491174988614615199877482721173814822635468696971284772856559065862237197155856755087803829630710438089699497244966605177063076718243447571514220214993318193332109730567690930512136905418525314739020998078730635204812356131563883415871696866111005655956205430413272256286433480561766472479856116136707185522697279594948686690842510329350240948860081021836439188739234212296072420624429739843328892842265340338074814300555382095197447747169187335374287434218567013287695054495691281634139460418751006116898599942142412759082972976177836371688671514904828624573361653115637543787397369468696742924127424890598653592650695366059032861792819744117747496338197251464046859527373666777218296646258299700115726373286408164908310856887888367353942505951595550744792733299885076161649546022741898811731541635127594532539223960463097288938277576814471402091339893765858046522663276363341186634968898170313169417343565811452390799632855988150445457281788324299869815400576388886831732682408271981682784472087204198968199846099233837051642912786428105873826616416414514228266725027085023941463161141307247401280069514920342271336825663210708023555033881859221747914350111840995881520632811775328579423797108999424927876764769915176350028858686178245655388405630342186053851617641900836907763949185277377086427594822134266865667889012474807081529238872313282529528456564839299571219462342593339006249644288126710277283837842165691319986106869822676426859722436047936986190016926280683243599854616630812801334329111931411792670603057060978515928209376753044144354286021933461245013128217406707333812867830564834426634480181380556326179734376555816867701570922689908450310481202739180393431903323970476613925589057323414794347046062965021904541267923826127946179333922280916170073935817728189970575177643731024194313855693614328830294417175124939826019015745602321349153725347768665886407384294794637960393759174211787334192925326192205683805882304244977781504143568259426331045716771335877139425055708280026335627241721514786530311711760108122572556457491128126752544431716257571822830350438559286709720335549452865870143184166127498444527690337638465812304907638414282137550544821572283763199742819499281796388634475959371573032298553713823972308248568517598023591380990876483093790803520883318704884101008950351150606174570107044562684522018282826136481738693572626429067796639626082282727030929246945483653548754953680237037491243401771351789856383233153472372019143750331598165640149011328081297317265923205035352455490178580567669511845839726495197400541032152982915747050731493078852769123518424290079802691818681111374207657296606531932168164250182480803993224693990360429986964053431014860678868124769464058902220413552130713612920437416675017296904611552749508077936033944386634818832749566559039953922836268024166525088515011507460750109932586323724368053571218501593920349895910600854672465348589174567727571199627024950480423392084904851802094033051233457124600658885507975190219062132848292197201705735511829563585882543598833865482869098382098557468293459433776501187301159451601549738570047692300866759445402749880037611004815219931801012950297704085300246840530155054897986132344087648674598089210444463686401088570187541943853758347592090984590309285506820976903972612379194257188526823503970540283600811464012352205631381676495385781266742485140648730812938766293095105767873270313845156708051801164588258147102655826888753729540767471787900071164082419507352183272240075942048208919856533525743128035891199086212741676287950135946810359642774295883685716279483108811425561855297684278063685581175456052928671913605972197621954015508671096572559673627271854224990160073240890211743688425533686657433159898907724671907651103144442389655428589011280695327205770789203007532549210169767688336380250996385484364598287068179733999350759584668619267452075270477573632201056986116284052928608733509957105391568143919762744487775275768837513648113723095042389528214253760579418454626886468082921103409419281805976195230068247095846110751146924961392169345373042021025758849736240253915578754802531525370287667824261922671727880496709035581058128577584678512076497662640953432489453795962970220439882710945246621050710039327408180703858995136921625508234871630048198213507310577713714562929036619904164805518671377786954146460001682658682617895046191871446789259671887155756331430009222327793777857065718863230661370198796718383810406771015869222047432537520277962449239606082479903578840569323145009763694215148821600297995289081794513949494029054856370679747977780378026161303127153212452312059513318852259650197294450067760443460935413384469732161433056941943778838390676129661450770984192521334846738501322701797421010175924811611682592707865828466815330847076408106801751753647885431331655098707527742574006880349243079730382527454831248572391081889744725076227725099143341295297682731910347616919268644854957570254456172967346378901531408428372548582132548240048807920692442423510022900232879054245606103743813488652365201797890246740843986958028704427020722502038953419792446035625379723249254558198098537757408016414693323740578273235198309250202764836215634224646210221108525627180782836628856839262820897644473243098261991025030906730587271324315959151063948345771857483255961959595975694035556560244945201148208494566357886451325099532336456951958998155383939980336302070061792175738166318035492318237567337322074385288017488417883516735295838105676214666659858712847819690449889585476910982579988991749006351567063681610753268980171412654712119794099698382274101361736333234156056644631088457784769338759959616122004149541816788436247890157756641526616786448332630662593039909078840621544147786397056530305251022710312664389758653592131691174757858068595752939607892350595983436192529527082666019719684824377390055843387059364091190612443553878763449293835655142932083345316800059554787490637521182115959109098388911943050489016971960932238557855300505521660079954572650146937433575312174252592261788362683729824424241632691185738265191878209092853720336569326934008055297141542362635044076295392314976411872802625779873969936180697375132625816518846607561031669001989255095676928359427376287318814597167120166131137742560854591773474959706489045574956744398098505260463993642540071279458756858906741899573261277175375725949788934085993769908070315291046126033392250397837208836868366418476390188582765030870410851509277669258150761942682018079223138889536935822099487085555278080793592649925946136629116437190374416670430148733671593952819471671355216484526362615672366690044024032166864915852377973915485309365899979101168706316336201754861554881086691777417707476597852904256864462973339218090651376375664659280620963113588159177296733518168940107028931607112878648076589821562002968179530844696210986178320893098599225081537837392590567882860458852763078734815033661921378842477811377079158727855884951781477870122717069440159796550390690596445835508912993816874245653684113211149930743237478208223581743264239919700268764864589324442443883847047501640751796485923018272186942740909215121666263009619348224580646556000701030636362930725503413726333217148435930135906193605730365364984904106900361228379157793335050568922037327469686854398069316608010656798282621939250836335479927696290717573359166614412700421640354162691996795874725573975425077057542657344780422265403987645206347289381018459601874501212948856595008661320447030263349431848199760619906190709137285826295090508564636835611364943917059163916768311833693340292120069700256100093018706133070679758615139656115781088312435338354628874526011555304677367360682904992815587498456088796875018226301898277064448181981609895142679602558605890895441904650645471493858759783137074400183729737092534711370273103299693926374311516025123872797522616879999106199942745899600039356619825960446347683387708970220717687282727585014811694516695906240281919683553320410839046359297299140711981350085503904876552773756883326376608342754029478954410348920139183965787972267989781497564842322561094687201396093584524711278699373866329668395419866520799780159532935391487102538506009026524011765952730488902778420416618637059405680754094747187421808162144077795824335650612859616614681597014857999008123801055525803220734766659968145764539525081510501041196648079206341812597636137965203646090116736121928348441120427885275300289238143597562315401760398977316003735147207454341896165632944411590222584610916876983557128208373408705229540742527347648644304321827690703983690068306934782704266428219685715668687239439239571869602293549478060734588596992031598150076415391365270403755984548510084443706221289392022665580334002336353650332625099877806386448850339329522988784317526747054082284700595211913235704764157114324143506974267860903376165911803900093791801256554190195790326107716280420771306311106965859256196919813371011495067681263078362883329793115256117988177497725524811560603758211171362142879777512774032305447252389003323498582175956986596287222494690658276897575166553279714566192056479275923593448112234868249779776486930823847411386318943656643960584892017442895019355198162854372110946393938535852135100016282404500867909574608342189639380818132062064975820949238533644599337655517850980625211942411359171507665596538763722953041287000460209690483300104462505685152823529125903154501224890599174413202032835880926457651029768329414768977469165049130117236368434751074110059707826331638099140384653435526169178077457496374149746912285201075973499642300772898857938072121682233956308917314217078247900855320291900958325372170704592511729547645799373817039128821228146948856357499617541740907623238974610191044310083045734674287776854848348367085951119069029504908770614973549336540862634281029543547032342213669037011345892657189068704480161513161566674316058932768087298343137681103555849309950931102749502241657544375853638727786310436895649767973178465424877124413443379501655782147721113683633076555171995082677913250097960515705453954081873261084166361104865511313176132556098768291071577082119400012357629458331695783794934256667462599769591052017238766608185738926039650580830326227758991809363478323205067552941750173730973502582494459508545722721949020302853608543092121883151388946257155521678260807478112775468573676934811212604708810524202137875715004515006755591838911425671005527740400130165535318971631212191495548047959770263723217737125744780298530806209980405878671989117801399101033122879911461885969089266075466351164747156531328979728208310878701577032383114858761774580730967304240490214998709566832905536199193013501340738433344452807978231946987720590183644210967588155169272423175329864387249620861780609768298616972413655197527652877888069698460821990710043578013118110421882229024134492041978232315971642740876529812210125940566039876345260138551663874469855821572562573388200568485504397204449917456807780713131022504526427222648883563269513396506219732957218980007301133794181135265562592516386722888054080841395901096072548690119249173935808841888301893795612797700063796582095394857422047033395406461847925260378254255123616682585061296505413438752316450904282287102291064877520578413843371156541507431149982689822146758410742727092754073349294172499123048347938797963547976004388621022624547637954639591522272722101954032506681415292881296938878303755959264442205410936147089106681588733887731945382594649598526118925003977206865618015813859283369136265555404504391712659360590936083739892792493444908621475107062307154417867365566650657286344967288963224127920721223622548858227599181640522364868362274729392032058081426819950546124203364021766396557103041618545598412951289627788924776093705741304595496041921270654413265654580692033339346158477724714885806528773506397760824797880825681538577976726282527634717630744634567266215724338808343945335121260959492272022726582102830680152690970025227678033036862181534287341097053637393118895095471761490012342663130136953100233191478077688108327736837367727228367195076692921795830856106960312243743950652246381674450161622418595867655505966284562896186101594130742137552488251966311545392871171783598775996814986000526333679019144798373574102729269068894896915569979672284229548093052825710062722115690279442273837080045000224921147664778787015634207639740265483462236719970916629053793408340084381044399630659930151387709602033316167286832291723521051726258400564335949186481071816539977925701511311459703051500159457755253415791907315558977991225138819653482435452545549845357497858114027101813038574525185235882136792053032341274419042924726592477609968896900667347828445842987369002109069544169716922257590529463621499733723132978505882440521161315119621971998952189572898553703741226372833286532702642545125958589291326133723753247341197458895365558137333163877392535821872919666611184610560173713515874581439390763485933379299903958198591013782684613286523710542495549326256758121263417928541743634940871093768656628081408815721966472324132560796714742170759552975694030714252821164961877334020830230120446907195244667021431499244854555342187013504665177136462006266739521029383296227475087079102282856355639973398621118627368808172712354118379587544700691321615258512539801407247465566990810155554770210506329800576800769852667161798156874232949930011116252929428442329520234359824073956485184969786560623317812673048206253900950748056465221905893047846106537338252796107423501281360424223204697438331573826850862169520400577620791671473086878486835070498861126876626400875177221282260032906460559569640395337829798622724188215627587245721427967761227956835675766311342283464595571053433696830486497444688740802772198942060998561231024014361507021844957163756314830164587970049840081988781278702980308278980932434129564667210063809512326991335164548944112939568167326849591306139600350321452082810049748489831509010558895411308329634333167968320911303074093576077824611540621900575005080559486575746634185830589327996701445312676442203932922944248273304847981782043694362997160452110607219923391579797837429918965864332754987911050459616697621389662448811676074045576118663898563808226698203437061298445064092684893694658385734006932202261853146239830614349552277745196380653868803666965185235764459311086948381065809359794059830062095705123095977583916109425011666981316579661706582876080162369104626896832224376561834897003974835297280302732727639788049868325580134996626550061782908061139370526710174539014598084934650837286214748579004878112361819027430499352695848819810358161691225049094355389133263995077249344641921913010959382586138282475952727491452221395254877937373491242091230906904284283912004658324827268265179471156202761255367557839270182108094669617718973108958653260644921765356646148173070007887602512954906954963840672854723089150086343897817508894904841994815106829409789544057216051060068284923893644508506757072497191996160190630630923141978533709031101897727551413716870892605364696113650729594747161741887415507054240704085791003424609057515641354347800839858437649809035548457573115324013665465394443189988609036259228639770354814775479871777578863771336389944714138986066622593807469845758382052763573659412306538484171748223647620353272120105440921123372383350924122389088938346474583975498539475344570767255920142818362317140869107372661684144575026898058595837210763418059589782366986579595917535752006021970559679005960611987899022411519739102317639680997900984085393564785539824753522180229450151670019392600890508736853840109208296640780519313577047901303455427308889553824541881779696622128399738412454399263628142708540038816835688813527798821985111074848212607160585339570365847869001315579657244020417326608756840154167196181485670731415578870140607383777435536579972408752743939870154075117048891475783485299049277965834367627951446480224111990216000566997321220297973788141613614209013578248188981433432556983698662700446717824962616003566918143108366122664192709081753604640321101009425075391444716146330873952933930403775566602575302035177343095074152031290634253342939029853465376453094392320464259138842541005671483576199244728216416528114530381893969303750904730829725898816333502081521126675019185411994492403850638878890645686684924976181740066550304659008832492194595608094575527901012422451917487810334425709699630684467678948816854496466314845537733011150586734187396050628195194635336437275365243063214804048412817653017171821152944474064747622710866317623638353130260044035240837520165560962303010974568015410896649519664943389642635622632111383642120219705401524860908433260089168645349081144146460324806124604444120375728232974086399979239927058371634209188512528401190545718944492687680881314857034067329621705151760972114573098942204473233340088366925119088493163264954829938243745959701994892366353572568130889464424477357925616878320549391701574496659943239264828932909136970677184752910529634497030881854667254415225809327715021677659794587426296738771884783445080352737828011742833443587258633650968878637200691374264788865652846702706711413662635623801230613084059116531967306456601614360573540301035543798256973210835178434341096316389835038099491254230368226640711747467472274362449330604610373522962740305627592362833961210484366188423585875983811887264792585630123677386143410541174035675266174385642594155846175775689125184168140703585963282170805593675112309435888697337296242831892584810054647445857748553797840102830100065587549175187668779443162620497429980440626132138396139398039206642007406108333656872948499493281397886839379939529791965688407521213040547637829082435950350376888413512899223238601603756560502123242510103751216986469885825893290353632218769069811777159414053066113115850921711637102371224902818037988454890014048567251969160494518711456677980343589006949475446706491646287075569618950971626670956226847931980728964622441077993401766739749066454853299089063169276912381783046616381020605493502727375640396394457043380047392985256250116885141761578223188182515647744371482325245149110479297838440204780035653232211883243231171733985007953239526123474387582859674139453371731494638112764818721042679276012544846601641839372219887840933747054746637571127578553858953549658777761258185606251328727683871078641484192641320936147656326000502335257110144260678845126668119363055556040311169549087381723494401355790006653587089933722296225995596540318788996200821875492122310063441807247704270541184047670653284830841246227191106829295107471368730559401521276302580724362000789642177897824050101928616672056914423902928545096573835145403398025569310903542511323159379418983018118023884229117772091926219437961092940196557353858688425884859952725751808569157956214909986360519974036936127367129009299558540260136223541853792076018793805782614009176471561700900906409487702901243337620318825322109901087112048003171875943493235203411024851584356443079336069956461358534243327129334337572337823107148459546004336774437393702650780460253489423476863500402784146202938820957979521507600914066890668815251979906176645991168347943923066004787084581488830837285051706979823369329298265911495426770072563072217143512387356950164138828773391274733699039545502756511082472788708673313697759454241125620138066757573413548019204295039075820810079771794563243925677898613864990350390066856119009252370432586735618714442659928848184895910116622654963603178003680845781809650400761251548649274380342303000241425763980664585594494990156832460357996105255560919799315195756517661113297582570814913905386205905755315653552521245519168142535669954073005794778930149363033854403630919033208028334300737769103594277136642988855145972659344392503577675251464901002262705252902264364851585057314034327534487887851412046595506388186931866393334404085929767770927894700976559374516843477136015552681576057586261842354013686364146119672617935203378831262185495649238548041831877923429472633975202261961935088241322863045027553231709452137929105064380783649713843860780896063272618034962222262561767467019520982774603471069902615386853446566092837942262216051086237710507249770184973810430124602945739426285707978132151671737420132364983581413264602766802298350441624758682960198997840002720084325453395319879537409899356750359627473283655494040398623823504619673967256516225822613564155190275854912336856913198402570131092590997889310973362239408214937176039228872588194326063063372626719545307332952695085125492842732665905314618315100523100375853908223255815643089547210877191829894190246395305748421062512282359163473880632807805286960603724033600380810303987652459016411208934943162582219353059904810670148334868521339080850189864147822363425808722837968214043086527149738394469375992914304705951944723168892841372017576866557701140570480504896758188711954301502628625120400452806639169023040459356271118683735150648729578886696299821838447664372807580607485558757562281604736473263868026754311392760418082084453012879036738709437190554391311624265225806156483279498521013975070769880657959001533183342134098427158901772395755321063130466454853149261670389471305065230387177954122008556861663902674316684355191291477354061266201440895934692576768288911348938386887093370135329740189847733150356130280991995665784752787339563733793559136896454207961731089765855337742972895607624779080453247207027230885955905033973256985459962127647649829875205317450521128933164642555675275311082248822563528817866802882961787637274502543885948103700544530999322083494811502438970685629359834421120734951701586460883480714862009318381045809702192789624863816183927656309277355598897619575040139643460551699090173487699117426413850702787826534201922042881591137173102443916173927180725491237868281412548511918956446914859811821742593551276095882567607896909706669527333226809966383686977632700653807383988934289715101096014772399598028584524048711939920913324179290376523784216502797651628618897011866723859102609523319545370171637273802262796125666004437375676115191680241379851132940937988708497101992644290044276341085394185798911431187419560588504338176310403138669525251767124668455015872425346563709402762539769749250934682778756514254815375213335748112697631738392219242427910248372252447712740422961045623382425283788820303730574089321620954967714639614756135821490652001419168867788471756126840394580053921314531562374327182586498245694203223863853615615846985380486125069441242464865877886088580545291240026365626089961093189945954337571258307681219699903763583498383210715048078470747022540745429392175615353857862929885071394573764447707020392782111752842342774457292758488637609102384484944633785091873534257034829195257134380489344355954656582121615045011923119917690756487242151340077090700847364127076756170025122780260492997289275374733804155651164927300264903655674861125459017657990748387026873414920849257034648094564845736063261534991099728143418696627058719931148264503027508229025134388917913750512601855103021902748422072320709194946373943299842395711104664889484556489652937387023217905230627977073164800964138837953014270883149509731118025594363772787074279557879141919846113013983282711085614293231812485218306479232453303998795066362914812958654575075679339439807227031994701773623976593688903337512646009376874221692632108302608456758746066234419652050453896949259601306797112923276384953029095332032714162257282430814059208919242700097190290524100659970475105269869644150970853656281297379799543811591213945381549605080573790793486332099802923450512152006241808191230788835264010846642865787804023874186515787979365780546633675603975121774798431898597050631829617431377088877098591441117803945778514600847072229845118638330035938273267402024613846312529714812888319936834092577348997342688618542943113680898463513552466748607863300874850936806996268206631752701467519959341313419202221660597098802078040156745580728591190516490820196672977675942744523163818514909770122333220802417442217979965954862884923871390986727387242641847723223513265942724480364076273799803606582227596112529875602994850620255531308910588834707502568713749861497249845860247243757559641387058893498967038438831108734980886669708000765030132911538909993795850210838490019625288685608709832964934107270622576169165574778049494035428895930348423255666470284917720653448788767995017600693439318197184245518768965810552298717067534002433298082699877717104586351708516702066297714263982676696633049316051286600472505669978768545450309239701736471522843075162473485944500736659287420191890094923906782564013607168216816536614648217315441212334090071485506380915203946389509107341094886176283236111329894186164355998398353476013121970752430056296972815574076756850005250185878774795798418507986034421247392451365550416810482492438946919552874290337949492808319951309885565481814736398460261089360175596543032463913421256803691221197800493660590593086820834133540082321342350464867409880257860569694600277206345458138338425849376048318636463389257572507794430172119116782509743632554482032370039919958251369128563988886991065218834425673299257847432235837773453379771985499833043573001635337530593451300610740192526663398124254201635135953361775359187440523817113859362844628034380658741016197692077799974196399652158846869210652207679958697103212185804105974975553345529154681274900988356069333059076421677723668657383957351826732942179176683901566916711686683447370797058514358754925269350787007146116935597973323790659599180927732095168010688351768272268708361549972283053758814942197350340035859094689370409450914844209622014108493937617263303477298942458198930035744798605228006592948310466653960888553351087973274039485458377015295267929731548872038241839555625371973869074608730135155471731126555247903722725311903616881442974678554557043365387754780439671030532077380487651079266500463040404137528632870493648041101373697299571108110148135163626592013819720570859165457269066906519967719866136999727912715802492993864089088778251524488544972927909969797460602771722849604745936735019203801083473467204060104697791372604038035118457002812780380309828971602383264177970624605369338273671674917471073281741025504484489305591451298572615579072487020417038803078312025867215725657516840556220864984531896454153753949428443786367679049592007602516811071495631440745353517481248050689808264044735950805942551369062028109795526594711079509138510551156509234039575508373398975105677499986477476278201090484641681300731361989162985175162320479302733229715013879297676090839091834985025641498711947295066184126501125254595334690370860270136769434045480559967454680716898101571623444478311344273874473683146836136976489973802067543998632810952333015181947415971437528370792097005555908446421215870852489287708583746402662621705379666614793147023065970401827164911181208614309502515039238512045894049780520040897924704673607199629790131334867065592946961002320217316039682844075098084798290397643895084347428979822165913352621953906304060656887002937436481968093010099992153171988137134279777685900074054542274439862188527429719993709830531578109749142097504554681003905714920490367736246038901315487760002157550368618963912379564672732351254811028649399823412324686952413462614987541050379391940920101758489362068056154392587320857269841235136634236027856910825981337622954001008368250754923942481515725783358364177558749868922666934408767190279425778474177923188384804069591146271011519815141717972943357768539447005466758254022258521008317247932729737305878807660842413235728873186462648837192712703032359097418091168627356614595273751939261902055201971053583992068522936408272405985951611837540856636391039151752907324684348603560603649973606486746159715534926439710433866652151967401069099220163821081057963056076104025035571799436847272312873329774814913649079276260615031593599753454336726676007988382682264505463329539465499663773644019457049798921389079900337402707318112196358065633220856157688600804743803985345728075239235220798593916667514453590373790790411028067739899466598165759027816155100884244030428190490237216681371796666925878859551466075076604427545416600250493019551521207040350996222206804256685431895646351618247121897605705393909338030885336181480635923018246495656286529360298960500619814487096491219013757774588571004843586569092567925940328050447055003266966369615498669258353732017796501741977884326330088192876364954133623459016950724413882622859027457790341971900296271621809030778030026504538884941762494415132252999987125970264997090765041006764186764822055080328747636498325133722076937961718338224052384576983764857283088762300058738045613608005927332638758320124364296226931742760368104951147950849640920763810183957586603706946964754532425371770460197434537803188627196190794544491152437680423603034054477249963259822419320429252119036642758516796812238258645187616781144951399883241946030185869203910552809200256056622132851133866146177200442116993915597708429992474936463046721096162060069805239199085457846198851533970936758895366620308225667941262392855218941484554453475760725795204522402735093765047506501837395645966246505419461614512443651155590703809060104605665191864604148634144558335011903410087404222943993976073683634333774564436890131817625981070092229194963909080454395973053765194845190946855377649570406089196160770045482630113210841326319232584806616513321338942711860331224301176282116398568007397788158041349684783945059337400152591472669130148817781801103676919284240383195798704800897663052487704162426392693898827307555263709091378945411717907670411166260146252998097800532847366788309813592372249834984010616040920595602936604346507407479115309852600642218343621188450379177815657982222348215920389224714983062548777942424874384191679635882135722231457122035324378683959702229762024576954802168997512159126972073916461566446530681167100561354254174163285704437137364741142069678826559883211111938230543832115477241508292808214449731338677027657707529811024623883204009570309418436643770011045417867573402272544047104179190319948877337065921713677870507551849688243422813997726294699502228780524674477059447391222945917460095254404726316209068944821956859785673242101216003036867356873914720767144948649269083695286634531445676594718173419438773007213907598789251124955413760952990290471047121475159568379278462974516173046138217580061285609481458406985831715982128348204086288027249201419494619335173583676112951908049425954351201129055500265692706911301383476564781483210002712115280959818465174047182672095933719435579693503881259092507766746929220581225185550861418581821778086617747165100326090420095532126450569163115746231799112401852897657013260427037995423025721015666645212015636997890660600625163663332639893163467209569568728593118681848684901693049874823674708482233674606262001497110413525218168269399182340340810915113769748001415829681854037988259629096609145754118968897612179999775855423247872758401924935580455187412806875398399458712856169511745535700945440047781535324360983925265320762148843633695089854301367615805106490155955303364768940092365631820501478299637292909595889066520805985375877624605707163676454337060437170577339260026940437246793527892359013304950992144996712193589956936026279245782713109563338850763337705256621769765751335973378602261587460578893490286624123451560972920952611389083158522159866267112100523443641644146045768016669537370439432346900615794218856771382740404740514081292388045708710254947186163512647948293118619623553919680918597531204618611658042635310428984574396566032427425570590943127649432725605567075466335014511930845395469775813314528560911316693860422632631616211865547511090684185978898479210931207731956315733266963045625101147674322376080021683238382177917873567734172674356751638373456337790005194368415851047763405575412715273575791902266996709260771760632595632601744605803930497926371673295270136691214030930245070587226579024793985555166308599454515583406660890614965596333855855527082164755546317657773111367242878847834510028718122003789304471697943482299141770365568449838905312660023518720821308973532861509122446512519997734652868711418700527782264050028542801233680938000077982358583339769134732343919012135703067096749190839791329356122972197697875835596517240615263811144875928941681005059201618489595593747667276644290865891673627623575620534605651113179418486932608671473530072197477867282714137585236113578873868956231456196136237546605414648045870849726625041531403950049901485715410307957655949697631118564641472630220358641822365121879890178041032828914875891033602962883930466877948171221754823879856003584523738222213809757009165351235465766879252185363198455153960638030293826588855661672388107639540173575026316360989194516332329677484314441776873418532894654069794379051219358071735242384660116158940783528539653991788399776532870165583290460777490417812200539418854218047619020838252710934122344302312727249825519222269752224015175801763473006349896461547575794554221711093855530367564503267409528489560427937015752501289850822353477091538977741601126584022275362133094644803229085902478620332932692288440803164869197504709695962422903079887927549024063538283913240397956137688026149542961970268052763781506920329878430753806714978239255148552751101531504364251197838928646755218536648709022704963072713354022940431225814114716858562938673147520123735520483314308766549684114208506998433008103343759739553751460542394774045187952191290797174185241638726662772715782752478931676479933816945287969096289609116630767170641258824285769163305592138981214206022674248778164248155348897666212112473895211520139321690759100235618467576588616094565349245563068636039834102432301874483815232209618882758237756982967592539295287899331558393798012186932616971738660723600926336602767468790604736199879937569653020000507719782179502955144336092095254734332254875246737916765784177600874236977725171560229320273951295126830359841754306569432882460363872667797488414431198082812561088316881359022471289813787908122215446671648601007034751234204886916070120181255604232311275443957828347001510954032529116665257486900025444954834108831244043608854325291339858710567148556658510318941125774744819336970131606386140911781697338113079177611533679158852216485692230681804229408308359094544672709847737346404548247155998602447006489232173540805920894885276809455444248114921688184780394766225459405246555971150483048683181667858461524480721358706834796268557814475074761579921912279145669520576568757608000974530607637629332406176011453000043310541833386179956252491997606302901944696478490435405761163236704742683161751247231830442469440750492485339037090915783103529067874144794506609231516725888832996648114280893975303376076561493662854737133932502834170115415679241685813951014145388560889787528198686738727059904631263637712852949701763446569269431406461358997795042566710418112645598413100633117302672676027510031022808008182830103248762425586005962649922423860144458160157617576286341262167548589230252987624128300902462777669056361418779240173461570445612027035014727196490756724773132213059831348514406756681501380503339139598354523842644055945728266348443803064772830640484679017450121840622478430532009557746663040383409698036220818485166225940572784286704395345180865619726602745595197099022034032399615661069388762277644056807553769952224054898076100476333300454853515601371890236056500954589775725764553298038542284362931431453472744609771237951676494717868715039887278604061485132517973465578819307317835772846622490139863899357219073241244350310662177659003389330040926867230799788892046182765472982306449810828135788791612270487382301311998804832617987350319181104758740729696652400407586704934697205770809198972048584795080900748730393152729203208376164325767049635975599688855164101850029566118637084005815074885774069424079746017832575207302509236737641460780621689391687486165659584641615355979587253128583574343911228201319240627776956015291147111757815227782646816792592110879616549988497191826269433292691119357738993935898726631535585527142094975193463580552189992389177555805219185357194761980156242918516936557139893203073675603414432201561625816963072870090751525443024689113678829374340728780133201598093880858053637357259268225050428942407187745826659628742745390723849408721609998453816238233837853244845820947890040687904314451532970463492723791037172207610004037702501816750519502977068187644404114269279397850981687775553576064565162156760712637772188285928840779084309574640229043808660102479314294604427721258405349197811023017879709272728449016614724014846705431073777102653934312117484574901959343399430316350626388565105190913811449528775859234090594839013922151577500750617570792327397798308725894330772585257030766994606122896881470330791732281840224873950248014141223840956391872690791943565093975665855698575893234922334117185072207973576177322307774129869709554721145663810805840405224470564769489918480096575403928755107866967684489995272456709063084611654049012749724697674002436826624930044697157734927858377323699546554364995917509212158060552867038084220843845933990678021685536337162865874665597673656290886703149982958266673585648909104962176324741123677234169899550322335974848371201030195683006481143572912058375089025045317704781643616824651501761701490484679179776679109891656756510320175718021468910938867704798210776361681766489951949804148095960093179223573372254192118498634357092691459989505109363580463405812518011876990852453109048380129283324339203196792535878635881214974169056007175513704280375019229919457618705400693118945003680813903887917686956602224211815138884902929470664780979905427038448193202968724841388852411420887891193577155858191389983673130069444027513056622303122751749388385170291064279835705202409226955498840375681607096110376784395722357633448494508893081214539490998932140741815392944573254910881361278844339397407296105178706862618407904134257143272094276387765547159446785731707337991588653946001355807908499487154537523047253648986933458715703572746940891806264189924193766390849406986697393054440137442144751346032337806555243076945725575105183477092886103263503108686240812873456054020335785878365079089286303218079381371933907606014435400890210072235327883010741932173667193664412239202278265348452170252863089959781764645101545847130301896739677310714299149254190725634587020785050229278389448493968977422028077723067449518066580435898276897730719972664507891969243747507546016031214514745511058909582447204929241794497003977097157039536499413189778516346217366271007839098022250044314624582718465989113744516267762090632109859166196641192071051311609881650919653489073180237962907128047867371164071950720199058601079541063573079633271477928562722890733865846172364767457715676170825471254922216685128078961364543233744803983095091253079654840577855541546651400755065094921567939750864463715254063147522725652924218508881198260429049373205338721700689176048813106650036046004143160468456445272351883686012649597919819751014003739222687758800235888250597412816737423876896208225198579905402595533606522747237271842587896764739529957487394259946630774762649444610782591703537793908957162130127623818591156877522526221852167909163782352381630099066972551231164102552663474191252293549749567915994575752796827749068689843728958498063739443484566980931830525735130519793408021388448062906654380365810278248774320610156779686727868587271225073168909840717029564544434556322748108644872128477446719060187270673455073145048897263771092230810257238269727878710713871843885321724289823643783036506111119179729569931702746368119506818343356560787488973411071639430065831057483651253754216191080591085217355503373378980869080138334608459518062149042550008304566701830056897013451806710054467150288601554598245491923438142125015810920810493306879133839215385962360463670828403160639877047866137955663690404277009006300617211675148203024239282831748867578930823543296767284463423219015449392354501371534643963212894934359121567486304870921581649689024302564441991415199776175371871342639273442387671866590809997883087715669590838317920898998494330331318566112230012365399300858877508043167284698742072178047508391672142023898666446347626340675480081122580448613008594435148589940436253347524250468551694961212902354301954400435555210861412406010643309258954149877208975585387558056086983916268501509867478045952037649014202651225917860233433504405889176179564200666076867107967864931367367505509541710835749739087069990298301417282281099194116925918809014694123634238187303981128532788567516124406124559481813134424960719275124681122336683454664945061991680087707565930687214657092142249719918954798878439090042803067656677010318131614708744716526045422601338241578023131229627993836045110053706228527313599401900311085584336294859148503985974127113724504943305786954725504754644581988743215568493285541314029406860188160206866563974604396890955112824596125785759122212794998032747353083305032049762066171471261673082280120207642251604222750562363855992860180766708542540792438285668047866212867387064578136666030656412992595364291951864465675858207600095016105255943386073740621039754421510983033015884319559853728461122213544372649360257323337360860307793636314795614494240981428285425026064813762176982336194103520479742769065160452322028806077356372153426396984175722992392538597639684206290982117077517839381632775785217484128736345005314465416669773057782886264268555349501078593723552099020548998572825530098761559195643193985703382277121659192234824908816874768384960547035963262480612763218631035048045190561335629935865423610321949863298182666938582226588358584204003808993504283294294188963605292049209713298491913627257193388894402280874203312108341229686859549063351255291254370590137208241410498058846677195185324855294473968841329166777315981197695825125795525956118092456091331807767343955354118311050649777299569221619826479570178695999653212683234201554537052802686632229077445730601966397700354768457024939074328757102414616900430069561542478645185832336958769861832694714726306978818764461094132475078516480661392657279715694961675574149671215163235479788667249064499628886152669869944114886384827287363920504629185337030357979833227902831518739070228579361576399236091289411279378093720988802491637288838671988020424271827090251904345202944564076477388135580978607037831349472932190708069327351089040611213383469844235199119030203217448512931756947685239713112782367401855622676363336765350577340602975209146014049579622721461581231769838926236360068638829577049965431355953121393520809579137071841075871805076545154655675556530509723157580951524949055832639382126368120977706663494906186533326873261770087743416368591142085771659511694293073973250108183687150543608197996112217909663432230478280516561669912752464537823113606985018114592590731206397537087177212022067132513326025004048655547871392412068103470479910166591491002651253869633873406218703909048783597448208851779424012725183510917445010621931010494250903148823424625538572877757867777291031419609948113381440221277951816277784025404785140577713416918482028089557424278748224411808440002063698849411964123016057765310226399072141998703270264836715996297763422732486647402657370612116449827230185476593650165777442757014437732369744318255969932770249971232568770373844692677239036311094212295162385195071600101345372353640636262423811278968720765218393588810512430017340185322236427912024263763093178793628896526547670208623553716784483376464441680455790436988119861890691769015314655318423358391609562156817181403181722593744525293874212069946566532433453376267504736024311330630879510756888914388666156313938003046346365471820870491271196896767543871022509160389666823589146709867152876104920557660364655215684884875871408773908951596057214710306207854224866771914717067718707064895895380289694134444170007391421698012382433935260739205694207320115345857054150023962746638273465479197302228589348098791024795351257629325517288228480441878894904319309167696289868213229229151800835748960922190609167077759532779997712425772467385497149085443783443184085406888207316695143005878293046389064751187790687595699678689703957443791916150126397253720952990601921127200016144964751360747580590413913736748485833564837694605034635922174274407463553230187502828214077755036423347256463148659234306195787751810712938604699915519245255843369296636703911594995341844249789189367462681694093187342718457991165060758292503529809597796371583324213139929832258788850198354056019857065738719396950621931463940040191002923229865592291002451401572497251967008343369843539661780165230393727827123560941769436165511452039077889809831968720488873359548213868343464192270065283284262726343660873595422232271425134277247537912584891324167914648949176199277502494542857655560553648421786865656447568073143870857410195943904582896131597502065836199510601913799589518920427973789284992950975821570911327597130018643615635132787132681433209165851376785333077273835362391885671173051914132648816060283007566243996355628658673082807674658564740136368791110665981987837641809336472879685030152297359945841047348360026000795256680338731391123931652488977343864363938476596825396344840953278788845593232079619569857860126171460426432890261674303118569067591735006306231082910117650438897865479270462696949080847211359307075321735662863615475974405103223945400842430068361543757859785110143153089050071416532023691080308502555541231994698472447515056358606912137744983809320404989677940320337916684005210487094769546668937333709444439381919479713839422056712947272688300822265255633562387959085247160415024320051818095734529270581427912646850833204213427994914385958920255754411751962317741176928642909870160531986412537666318190519154726539301307171776293844953119292271059354738682377188479904533408807141808118934161259984417434862670160489267317937437116310165134375255738688325063689173483266720012398119514846169701685293886670436697156519746385060152264217662372767203561238252795281978562864835696372492807617954388548422239130917104499770410923934742450486399654289718920408220508403239315602017752990394188617988631599121838305200182736441021501263514661655691745089078708940063973676963441280434560232289709411900454433670825758973530140786239538134956589512707519599637637908278739220032867611248326585614144110059494756858321175809552598587316618565492550649424142537845931088373605946291235471993173316259787473588653191345888164690396587646815149044241977377450820092475810526204224011672914659261246055704117906789940710383407745221613054123084316600246937921156405465825719964282266083129844642421829970053702606568781784418579886827661908799327313424015399533951570221904985423542247482014201726127328301463639716086360258858290603760613496772847127595605802566905760790640667950377004344703275510816541383384827829224983473914131365168431953326613919594481309780838060376820094778790360044679075406145511951547429685178309786577840105130652858246965681174969474195776465623599611144412116210207776256097301501652241377832109957540732940967096310108208266398067322559404842852622212329733650610765087309616806506079396045719774642276364263535420008728084592082279370168025287989080603719041094665159458772255975337806875445046947587200255495922327223975416183005415227323568684207865216474404476741897923831960989736716377231761840661794922595211021509729106096115921203826551559393695255840672789184467691385611019858518752731959618278966432240189629979599079934323278782602436308148433685921754808767288718244844386491688039302857335939528320445042605927289544703374889937934435146518774452382559204362796669562304708043967047893656868874900521021059356176514465744268188505474107516258232707317380006503894359777068115725004152981083882027249235085637055919847675377239857944154089257081326218235454570102431374297366330575417534416825817478907835434587152325074085529210112482947480349585236863933686808062298689013826245633560985083679737927030976050430390223834963031915271747416872688543602283816587256295737020224042152524609172401383262062687843940693979846891094259026392010360511774904053170977076939366942307404089407468784720902315222363907637653464872543892544445174597414981948723997056389507235496217818959581831408777874462380507732240876424954740253099569520859013996884827847138947994160795568242399326815987611277221346373675597207805375598756870569509062470746374400179661984329981232884842960634290468859304665634045002331218984647569354035386394975614569257657120455717853241968374363751593264417736126788879084308236389414411627788109957441093466801711686047707389144138056271658276372064514675663910073490527658888533749401656626868613475841167070876867035090915098033798820563522515480726265350121207128753922773551409218717457080374006605472120267172143305617533663912395099893477773331596427517035041113305340267033188030726511682256112206602919916690468837848208618650840654910260241728242904453094713760122119571697312173896856763775775099399364997523096188870110409749637457754993308771536108003880923326078783340039740498329203822189518968789618846853147145956827520391425392363443325828087745858014591602410149778424932042369381269653626294189577501113748606373185700820857442312062856109945691281371848570714829479303743041719212031020853801209755921407935605848838062835627717636081743967641634058266649113300293740722646957986265620906582706517299343008901546600821121030599157995546559010898681924449131985925860252245237660673459478675153210242402285224598522449706738618570455476105560858493461248612510823183074638787975583214463985842273181891592266125802859419123584324918322648563375509452513464686355074610623871906037642381622643161786470715814176000425171954180650522011114161052003526419638784727539922895344068015061574356168846899198118569664473600054637514608438152834684004696629047008370700944725893719139855546867661366914565504454920367189854770085105528743430255660400105964488245641265671752444873206992126179561544379898293871314613540892297416729600715981743791612895357396194757859828808148840285096503158573880623147735859593593860461678106979411061336283124388582282966747375803545526918113022805031691642450972633081489429525631483531137641028007312739330109196533229272033420077876708024730263007640112189634525848533280862446595950581010257341274145915864750140729601583641536940684186667379180525262921724343650164178223038969505048314591161303606548446846090119545800753576066521302916091950982134555635285026300088644848441076512562870250352180882923238826693287488232965363324671122857769499784231507726049557674989111419774383359839104332785727507697192000787497849998956736468208268044293279425161206687503444157897620167708642659024100946453954352096609449391788450285404348806748485859756993188692841052311673771736703375697248446438911147962594690813800220043012274240437009710067062640432486255221137354177257882598582945577531997003745389845577075197256541903446342934883057270062197887712995893298195476657208990373975661960532885510632698449902181735120880826724735873830258081088495177200838981673001951469001009348286378377428794210876378913623188183454079401651386137232476404942590059168952739826811791277719936758310477698529091097232883401088866583081780535318101622691332102925614053124682413572164027525617962647468156457661927357825827420894495731838211048069500639132621409323289674034602674367593464745278169512851530916717236234625886630497609753859952176609603030154315523918517964734464817075959175623933495679266909447095698062805337678941066439802697576102591405211979238276252033029267242236518964614588450306524667094357914588208254153587365734638076542787854229483940717111881032299113530979416211104972651376398475258444832686144311496231713552373235880064364690303675812568044120704846921643347869198482543095354076575129039955308697937213302507336959842624021720525120777918692819956380267815963207999241917505269291173134556465310617771883677257570362013343139322300126849194802908708930616460543515147282808102509148331273539576820718691119558929415953964078451098357660430480648202073940741466782314977453197798462309751507706561454972992733117294820981419571540620761438703331217032159135445116703755867104194041496815646805840594775445184078030036961554579399840386183475316477986892440265682482069653189999347537823492367790976191561114140293526153260956663906120240477045867844205218378960042674809036967063826757450583698840069290836874401742096362664455638464465740755698792854146480178126226969288738879623934813888243947715445850442225517026846953761568402771827906865836847806879094943859848145886356228836932820714660601532164382276222248595416503605606977077644934860066031654125806712827345342815381052547520724673613102385514803791864208289161307860607080651828366354477746349756718472668201912330855860531493401295257571616795917453606642499024270557317477983843543595331060332937002851731713514986663719771556707869447631437657097577604592876804389165701777060805145275619108291796695964897133141547339965734131514584291000128319673406983481823386904848829988020430928975688350792527755562619789465636607609973357276743083324228217953414278978172120311585659701054020765412731962540220652909473218148610468257078370361653103843214743857459856022300258458071324694886467951514245149997574782695087996911383407584526226801354518201063399124637325730769002773394260862009860327317905212054917367350394039376683468254591842921545481956163097808548534624781520169320927481814383457040598367085062853423662514101978687923081711091633061019672677394379675456690555141403756265471310929708925014580539293706228832241046096545124158646192889695746411224085928908427220481124750606532456769147429472096675702299732130741916591383932194294098661141763732993274975497810594931034166109676170845999719892613477357230054373957446479123258332479654376282399837876037546286615539212979636951891065313275932816782484816672306059870124869669250315637831502566833934746483738783529312841845840869373885464605318557139341063489595734280906829288069285809904403458366922710791694761147555907239470580147020430575943923959968913501688831078275382566397251155362006895922738967089594211535600574804619199753226586793221156228596651857695806152823688165306847755108920151768975573394511388248478513229538961382929322951213581853783922232722260361389939643439584322549973472636558741855308994114705858481470326828410722285182659532150545556931109561873837317554576754549840802803893265758269381715244272410727025519787233057369409597171776343537547091330135622904179665266741086195961478347825431698813767938258386501604979907532238193793524360116667032668358468566861456648330297008565370660041222979905978062685418127114014888837581457181894741092790629141337388033152340263782822412304098115330052166554058033419934637430355130130481349967196448041336871544055221242979239982256370366235072507889993978018450904684480011418556016562360748484324001239710447497939074852876867919763635618683115971846898452534289641777323129647825863365175119580452374564470035900387147171993230010775149615050900574570339972672136850009935774354828421973756435364160633545322081799188626080175108812470304991308428343420228508947737144537464634605153276977830397643644353982762560594425134901222679149995813445031406555548823085787156574923884138973101708225905924325967936717020647591464011559147344136012309918305638720160182842460268131381131675055096602470931214882393912147387645958553500559159211519576274389823307127143988233738421842938912802002447591655815510607488771344583083501968732036070181232965288058045858172960336658117773317044564692707328582738320808708862092234305905920510023394987011831459316885674660341584738817870287832132791198530075453952588717780751350211616348452935428489347149446191536680329708301724845031844013142961923825351820390467556111768179116959285121463005333089025211893505043385672631802534029466891900823368690581148505033247707664249581343514069741574157100690389523509703794047331659293259980757340677917403833525645653793339059528180280328259408521002084309995960892612393302983253854118622857171929599098271786115002956521077701600149830981565603347556699748657099498686977871243158325836310098141515984244045323028518670708070130447483285632034594331821573741093963507925731235680809055493171866724980185767639437017120522930794982208745602950641832742651767504324638717374035099084233247369488328598650421426317969720943406463839976297142184389095520988753533542556781167990607836753245101875322315532139285996587400690844106438462399898447672839143300772829771916901095533695401059225683975790635855102200522568648979514939297933308815830361001914724178089476221652796304542745988340421410221626143103958490738669710129312396055588513081958922072512175360608672305200869743357331176245069110044468295343176315634859566408773435567506574358380991907773090124700933896217262297854704148002720297518308574927999328123063764895031015244743302215352199495494234145286756286154329634260101245369821151037827088176600109693512430576049381780452019776576449266911245539246854284269728260116523661516152571307869011195528786816141839590856370877146790612536935656020674225841794508531394537278140693310729995936578228752568982891954190354019343663814661766575917611855036582544853250315522107339049624358548756399168292715483836992433567866556756876575873067039443049596689053698977896744232134513959209038366406350812388471766739691406035021885770744227807051270268518754368302280944271960303591727675928282706647067119619266559029802180724021514631639809117159128468049783769990534085661601878078278775495276941923000264630689655451058072329036270976143093042389878734322282037928638523668941565018616404939066734432684525114635905125660463279184576726307094378769365804061714379717159525160741253842992775790157424942299674662932157701511001254266977627611572425246585941746805656753525623495849077507140755277757601828954488745131413311134870241070799395020495311309433491606042300245544941430922756144287804642760957639662996209051185483210502961287198625080633772362259410561432181751589006776944783979733884842980397131478093381255824797703890559591489550247994286049430045604633739132303940492756057029659697426155047431430625980207271715713068024940290135341158651283920428953034192216913664493341761363024412910646094703342107982407415576782388791575085296712436281482903974639711243464243447719387897122646830665906435976630253751288410280110518894662956416986617411237254281049715219727622244589156018563330639507561284290435360182823833795887926934215308984078702287261253467394683264573986459683256793522049291396421481840052836607182360648694809399711058880384213039649236778383361528021151725986095004311835655335108454068784245956048954113819673811396126999514597437129361745546873225378911570716831236033897993776819749039538584448729612554234869113042993335545088252754459758994223781526034745313227810275792510945287415474219717670745558574936055559569291287485189772980555244378988635546753428972961284906357704343996414623903596046813835449168163625993561957206419080399064002199175891119769888370147241100495898828411503995520894224103429848991268628297389428413684647599014917877229057421968845775473586718974853180067048448637151700165386857566163723271583763935070871767608323457204777887001118612680451427707971469288831159152251288859391199000886481956213078439980508229715882330109886312072832798313214183660803427064583391860608554883928576513520193083914016802739288332107073809677233584427493390805870772612240519558600958697898554349719188596386953945812613279228488206001460527638649628299431206988596450382980741463534046176515267594273824243634247814525141263473476530386665583717960697153244165181922005905256635238345113272076662875839385691033472368824411716192959030547402028891917456545638205793532668509543305996570714089175402257660621271411482687535326375226836608101324523317105559837053961370257046801806501595697918581430001266063475059660663061419724776109497943599986471723446885353468019430146924653556785180672543757907927473208536047228141516117676741367234871209313510196238956403953762025890213630439554900504279949963879798995116979510109657088876596571109604119046060000693655785761560268313559745680852711156641922317048619083556214254079184145702962233462282886953372916693395704527621922492051020080101187634710430892464163787459026279028341251996110713763008016709462291579105584722311342578723479826160421370341433933251302570302102304563453042421227435684035995519984778243536737740392900004211604152834338375283414855244264990271274927142549809367021996228652028804627001612498581293705405259215990911172998743949071981925342517140732300302789257344867324167650511778518383937790689551446295428015410840668145601956592478582743668002622191841098432802521898653736686636971099757488896827249980622420095719358364071835660358071476490241965665780251917362438760869523050739521135658572101945235540120767160851530496238854388682478426896947866336555820111058237462280270252135386038890747300799102923839273116269748275568950549976013919655337549459761242340428150316434775643000285924662851284097901694801474958140600872655359372689090153897178198763648629815072893743447401152331586166205332385811904425918772559889188322454266422610559090137557398579581460432888581880609299840471858068527214643422706587330260011731904023483218385291263072947058249570958049969386154580149126537640961843886604106135810618386023421787789476773982090992163374256432937668210226306727265654018828799482959990279803379320021105258327985085272805337951755243549794915745888574270427805401601453290772956500811267538054497022486797792945985145388508738657171001767869059307716514780185850347729337828057158552616251201479995847812474346478187499480356588100309093419433236683136856824254367715191320445474668929570336980647822257690110105838270060661635614320343813711761675688907936198985413005418017742921629003448673733847728890183374113522836142849511743186716015817172583943639349727941551952486728176491485521337407686017655865508258622505848590551731203968026419240398003189702983391320870501932057927559560793939055917716979647957342107639660435429057394926266741323517527174014362376305297584074025267764224073061916297709173173591542067318510666858827159621264813389099468146305733866523254631253444386008028976387752685059169380500246212391800182843490331014617773171703515836656496461737229227854574591704307773669402482672393382010932524541970618955199170030882384697470821171163238621656551363556582617964505418314244028929856343296746581816345516220096637464341949413668014732229536937419583542986007526140766887605143781541620257724557010420576645973158755317104831502728562721543606977193845725676569948469307149501379088327635663057841705302224757688793324900529648454915281530282193211727018362588371245505673572066536022956173536476577431472575255803940203266722057207658541787857349625046187840066330881058822161875418069058311104431193619928580788348793933553506398431894645265729545261536725640399207446862915425250650616417193294549185934412931939674993409869420630665216727236259430175657648115138551134497596509015357629639710383665644060474172176178442589481138000189598126137942548001941713532912469567398989121677868135904764579382921610917156796395944499710095959457278237960096711906794871666962094558959592467993706834153407005132544837975168864431621149504078618883543611157701836995124010736911208792836463963990773847548169574942395561250681179470419791899083337639796211078757479011498674387739198757286573935696439501865181620081975376636929487451895076381634150265629262265375713096548130276146790289079799214693336699645941771003257954285168585683292841087155219952682359564908405187947611106726592822817083148434196254125588649788274892415649168895939492666320476003437911545312877542017622019240250254102237101510015118102742101956990919687285532158856093578608261370089144245224100378062179792947000808199991974694408002408400887783311169294998016820929984421245780038829789253545268657162583593382249276896973272405862437362095230218357664330983878176602686024831765254176048053019397685740941495926699245874880515468355042578832596228227210014783261046456783623096715960443540787584167071051049685361787524396553089999275113932771743062439574037780731260205692995763474747367678592480031035702964671896622867104489391017970795852998586142099702883941629963152905453420222582903328265309614111622615272653260091088968575438996323992828426057901170495787989701181868762248760816613906816091922161858782162968407136646175398089091410074019644252665311753606909955352650507482539426698777553712930340643138456039917612165789454509773748530242622624965799569793201996758288307064498763326446374317913832921640498876803530732261344540878671362683752591633888129484784109251826729350827928413185318929472675163668045089644646647241356671119258707844317801255744541854228267008843280744577851082317798609264641446119705382252843008695849408628612954316133659113254930027371274453357189090135068573935284424629525660297103792981096401198342183279044066247220492389940467649448584826017393059152343753915922620621116127304844138259835271583654550780292178280245600412174396165734922130014376273445592889275473358066772631253299253078475758847880613664865498659312321004288786712779306131737565004682897774131280775315215958581650868463549757406224484965693228655421456779143654862775669610320828825026803087522708146865151227865762332282474544428007551792765747067716791937146722018526962708795319593705268963313203377339513271340470259285220185132753875197761119843057970326972867556210092944153183412610327829001154190639338307405451193948211201235659297322586907268498865709180550366858111281246103442237861996694856275689133801298245962453575786298815577228884762580654037817178792060833063778698611158950147766010590192544475711101459840833200620247763209108627469071229644294855300546796391289126970996549219925466644660025989504964710926337551343616871026960137551671928833674553241127672555003368467341104339601286138162803976887626190350094303487306204057152424805802525801466895984549471715838834490986242037377938177836671896689825682048203591677804972303831690310108183085593910749366166459484922539207408387753339171468152165867733924822985574711625474587747108912897552720806259182896380659669896151669166176038114345632222834766132936731066232465226415120524353292177356268561686142477219585963692728863569795087260159551333377255434969318964043541780801270157146898147472904981641638569127118230268612010290274329479568498151512880790663009213884744315887966513134697051228662048230237965768660452059711062273695295823875889773516812230760855859472186749823282066081628769033680318499898208817150025619097172503319424835738027777550859767623762132757616026319806462713257554916220598354601354602822778966997888034824530352515495736715520503136176122689234835465279276901150145008283402964148206528910450994751979897651874783422956040339201217497401176202091132067117651771868514857927155552689686619203249903129835049524279800045384170246882533176388415326803480822717422421836652927283372453086660108366017987514019433808734187499395997435721410598975797130504262954748253135625562501547960473195837132055740225282261786364166670473684763988814544432115188124909617268469381655769372411617369361847019041295017228170863959302555500491519137704083257655713464902820264320292313843401944739889592323600827811943255942207934968139134305581623565364914513033072318909444257507766676069326262785040636914867742652356924536977895529060379593508838253157285659072967162906748487929245762683377041289675955159101433207325094608068241636559575197812592170787300574067358964872962913313995363119018066012669540016894905114476971319320006236020736085770204974439746893173078798513515623865353120695567713905446174346342410105966979411498052469690728856563035542439187565122565522924609102730620680844757779770095926835374299652410639889620476319186425723182444073500289064831855012904091503266929418428138942326393997762719206254487977003965887194212842527401048670524170117699240004749999961953524011744177598112163990728495564877296482890030633944876582165110546141033394440868144205435206695716246317357245021534008880144278449150706850362762183328122917755798692953882260766691761182836975102821817075032865639054647428405982210164746412737375912260966468858577086582020333100026585031604794069762673120111902244106538372734174884598937501955448558734874530146497788598392886515228996874931928633772006783709800458418117886698258344492648001021376261518646285440912267458234695966049415208098883163290712123166531432375059175676064047664539279632447850502365512391953635724798599561686198267983682501777866099539198072344114269870771888228071612914569462588014974578149307700205015185307443559933764299670947231444842943690669408883833757946509057382361983975524499249689768918789211830759995828847565393744781531119628285498144516454425349006260148071874482217137176218167872653524305002419843043381092709793792516612597266877079401126736393411364173214205418378742535235182664600500664994905025553371744342854155382395897446805325169130697820955414961148786592517739660278676255982963954994669756911586214022826281350019128477897443886392917887473103761478672090426045731174323894465792129806400803092214128189194117471735514130637044520201100823414029112763759636878070024815574162292415709934122800043943590998484743719267218314269592785795931784164601743777030099960487766114515036991351567040731096918092386575804492070969426746125694477979374814141603594796680939667734638750288519243400855232465358950895294308901254191744995428391108594112007730959091570713323733443183774371367137986564768285648059668663775627924800792644210371769293660704800171895455136615918304029033387331610643972108877861795397240343138538648097362589063844934305450906445126447545544491627875406901108030375159696213419697669324039389701151830286416895032888538265095926079544112566416384483563751067960821692705727308175293510261164600994246889190837432276718126102508858451791156576228671862237872678252530038565672956024129090160986690704472409605993455517981756775270379595783196895208845756817971552950049811884166546847478607592924614915528158155012711260624089654021420708091370287124031470025631121517836172223708975032563963112777129862905451163494531547321086758741247114222240056476225008692549059725042257674317157028000182965400491500723185823985852029558779874708883454122965612128840677579922607659841369980895934745925889513143556924281557332250974349611458838804727579172251309856308550734492340914505745640119879895003461550995093109567601349428935228138527858302369032512194356162416541156218061826285056706909179274288793515896528617564616579700745405529750805191116746664790743456668832267405057148905248269755264311575021417377946955910171771869765116072481890834437644826441267165473950154889110451490652776185035565131886170578032945712956674155215864828115653798295323094827577788516102806069437852370272233164202893053226962138534898235840844058404774247702268030515029922989288735839837391688544005150826828437199773217293659615758926204409939021751798916293120675761800801331934777674930133138970536518826146997187879236933280496232721566889203775885516951903269083688007762978607721869770442359956918692206982619924551401079067998318322851623696985282770579923216517178567609528856718852084102873542590449837046248265681268947169432433228887558443069353335944590726079939852720771031319657473776047757765782137373386955667777238347255282224736837584062113313755336382122146416767728279486803261917318751530603436019858817295784755653948047222115313071473367660068108273313455263126295050529749698711215051903214833733825232683123679682301526694714787678752732273397898458438940225370070182958608620632028800024556309762131175129016430145381236175000126380784412915512887602938398526331256652728844038843651266375991282606142801015345416221459724975639176582602322609145236408546683329163106432209656932762218893975197475745060752244535080961674625783194808448685087609744796138095840822518737779321731453605799626196819281909404933207195364055666002178962873282808269488175738032446383117613764609753129606422749931625040102115042931563729910065292369209654237207868909567755675500301179109633438789485402320753300828342495535024910310277537053910083038557738940103979715111505759804701723402804168254234797283071389781743176225457889867290563358301370812830836611337396177104096376844493160735820574570845480314658265057136814228816626334280011670781947105348997634839398322862248099649561832597703054624314297350215877516388344130028549551545155390420993688609145859192181754827315167442657299731173264275606080730513376834319374567754638746582650465846714578239678925831336319316684388543394037231806544586050227227490840645527125697019377870350706584121755710151075199389295847387130727406828315982432537795478539806240669011969672980861062395328834504232156968895347225585227943897710955815708781284616850020122007236229720672599692453686544522836468800581396122750428373685684557353054995104748328027624556313644528929589922919431042854019011672617228915338728682977867565572494142829382994750023021429576520634396834269973797109781123957080416747165294197114265954596837276907084946795800005185753331807239484149002164268475867446637486366832049536181294916159993163673733965267860728090003951056885724342327282524966306532166206269481345444811327169460029518335820264704676357189979315548443833347477909744623809050270214115651109988002708899172252196834716620405942055175002285490573160537541268124610051527240821818015810617874047627877658876443048933589458957678490164571572120154260265191388937388347802387028197662190153301821411412519484708525291948501420090615957669793250051902376230329514706717243894212237491845580144088334847259835674214670405722270002067643871194073038024971283203041335052890767692300314985465505708408302974789520983048906240540468263791127552061598958391190034830683776615854457899005767960590507336765929143177844313849802469253983611430540933178697437081247365700690857466267356732698817151405730083645711291818925334426169083379837967201583180993105786143088244192091295661658511822290235150715322628721178401595712917026688862999725196331021449812682891119695491609304412726958960721790465488729795566280187523371609348892068372355431627763429891564079236944942176766038466117997499966037229584429383465138085868241016125455204633296234179709404287572333414388477394457135162881883426151805353756270753856002332434954573206973503245810964321247807744748394852936633921064408891130321288830503901618561546465256525867078146979208830232837560036823127911413246531954090468998206184819348917139065763551442347742695778081049925849417804255505205429884207479465699758178112858858392118100692749805598979521845371791726299776036844564192977870153285287878185936931656984406092808682249817963787087071734239234892749467683518058186424134381558846547299472105769116096957549816634798278551571850769197145128169317308339597098354581475740888530926475459264397060901075002557843267392516006246425484005916530365511789202269898296373007562668272449753731503494951136437966490209277780906555707780026507609258649058273058095658548970462388694547141267797530440702181546252910462598645479515951844916976957573157366480555188151303047167083376646340300979508599884556562356219490104340353711029977383239732509272050034389681207440395505801542632864082076883581436877321873574236213364152842856637096054207547114067237662039233346254177727613274686746315283517946355664472471761224390332565333495674483987531326570974101018704008224172759040194375745943736136005103167708901200468352238339437265397527970247049215954435572688513722621179010882964038397544019036059470294127747724451016176078424726985973274368821080926850756123046574413973615084634808132901725148223670584811815394479299806367270923950351059703207421841440318537232326629259174951810298843747037468711104645801338584857083737477380672071000572554601374883086001185318214388583010614483237734180097508255752891286141616886156924473610639361124803321822179821101347018744771154709014433118136632841326002042477212873742728095941241149561911436453637627179739260012647387841925712513125798351467773078550349989855527822210577166414313214213090566473104165622442052979738502811919602726991200394431938426519235538805991465517088047031921707743612173681195510502421304174057302897390895633724739245936563651987075054056622049534728817335272496722729182164337924780937223733633064054763544258386054441140379513244574545537946087146710382250085682880095431987155415161264946598160956219368300208127914095614221492197312598647126596902107637597258744462509168156515061459524110404244581579942560479760162968948201583939396979620358886652769873890778853008878549697122365501623550361540578299042584378972524249742849289858641994194449518895635292078884203076224384893269019041954942825508026101886797919720359800772317160133510690850148964861051581235726306170487039119244116882623983493574481757578491733496567309159798614777016658846682562194949226574497754114960827449824091126274660006678932777941603502992924771404523924413208029967050784409663160393235054007854686993581514417431832205228693374487300120468781693166905630872363724661942770952288647213834531436202970266888180714340323793224833234066642056474406379246702953927138226707722258410898308746833506432616037321801682078080375644339224571578628906986872315796289855424805334070498998265674100846821999287209163750765932166406418866479636197419308318307978061291936406672736400327114283980133988148227553395743887944190098447424358566342915307360356988350341014813323176998281052037266360343690242492020796045241744891188053707825146935204838964005035545598101138343815329446659491003029825517788444783245560771642755691482967057060784020439202761100919365496579112450983059025333181306237016980138606569631485413758911358588578676147787943896254223510375183701327903346766710616492313684553801710014067064931418890711637816333169567262017964177657694742343881823043798836974884214082227638477377078418355923296159599147471138938401713409842249501053404671160492110170360885652560556586066070245031622918414746863394499461792781062060373247917605258476435535190800136913428061240292581722372493314886445031159990911619308801436479084569144594005218429679558529411462267071352959368777874737010957195267152130475317896689957488336700605657132290708202899275210636750803090988573394654390562220507220334827291283326319992054504892158389934752148126903690682002014733772207172894982484017897823404591443242456768629800083383853694642155011001403308909901215625585985717249427258319290456452708721295673521499029956855540639534097727060148433733067193366431337502182950805779748020410742235035884201121253448000378812617432334545256191760725735038745803065242637663038968598156289233128403305116830543548798923849541384898298166930862719238279826923099227254861735159434846271504574430806282919626737924987075099607638898400626155622181978995674930169622588585397767484616721488322981974052745410072743182734520734041211529757543062022166118246648745520361585456263571327248670429847430502359411429372898456474649582017500637446880076599211811505376442203926134506860919807786798748336304671973786881974496150843251165998165767176233871897434404994861802935719317294603023214935674581463684672484618855484718516180949223636604629991564047678614185937637323518378580901192550005353564931044768086665067565265712732077142969252047598594730302358399132551196894779752894592375133228388376157619702874470670977010695494306693816603808171874807077937415711519136223107649544652957963879749414308289171172728248862854915880822960290892085587424234842149739925301731666236666797599632713657261221300982810997720424536762672212246665619314498314911995424544188870227866637823113269964904500413080439012385432191392946513726103987128633931615860047004163574870884395188920092055465138060926870939128575908501701761617345509031906405297523765254986215475924936472483956086287192540138307497279487225521430104853102181749153575046734006181834592255452579447874567530659201322569503985140087439560060265803614392517886908022926834659537268594175778336808658840360935349930562273670942037284835631925054443478638542002772702949039823262775309767755291095831728965871487561169018433550813086577693633110372505365423111564123168789825719561868735053423357658893368840912925218940634900083141398829240176098357294958187491258774624752966812035384525965763309580743692852417003517203249021176898637614108977533808837233462246416559650288665292486089446265561241206009691463493984580243290343115345619857800039024194000554274760117241638462368279019804520699744815144734448217209794388929209279442422679611588522522974515360716433950644537336477433516899720654461665750581506229941383844814785506562637377496300022879284919851778001867032042627254794472483789650620712256829391872039985501548016511479077073985969623955714416953916522360076894494174735057945878865438380560768178228222987395022841053843683688785996790851523285017711436640661662964316544126107572149782227415156771593076771148809259829219758666964859726806840154371082877921304860328866545887594802459435027873597506251730838924250411085576862566075634438898765192580228972540089499360785276549623504306284097777918732917156801711820747869921114043803425117947820800644078172282588120818080448834622297289397827779678981907422552519456169826751626705102431019661949332815714239104440588684606671854385502061064867391427698421895624125456137038482247445282257985765260587711440279548862443417556108632997583211792996734331403802287450751668627423095203733916062528495742741152986733625514121656617547708843807459765913687002747428160941828936345343924777582556820428399928561649901660523966751635492626119784806025427261046171739781050147860906667108694900256452276410744871974657527040059741466339770910394106030352280455985830251104783299111844925183628434358469893282587256292544638401683527623490925453481912002314982867114034425861598852739768373467821007785832861997564555487577272109113944091171175219388987148716827840275489211529067377871093891684748817941728491606939840624735042498302107058002130343056222272793390583630359144928448415525028464401781312860089519586545260316123383571788132639835811476022833106397329038235165447958599328240953814701310490218864458964605334400016743237818299397185824127272769953664469646036952900188968962996573652200671333671697662709089597760291434382583849028656484729209020456920357710053229424922810656866796432125515309662329069180372879354999704160965311727676510237859543036319908658809547893630238283856886550780102629056053137974849034587822383365196586356127736956967186971039800076203052326317137075349021823558843984803028818360624941530102953226838316728756951106095724849205624228729634936793759438269929267443395670786850919636197512187667735007952306975080000261649451065847570313185175374346168415097031443955161338709893197626325961942923647793112208171286375964885341796211282445119766182439488075634689740338113720379850328624351357414482022384404178247457325850890786752421579632197288278758755771847397335189865902314632100345539935915104018230496685306271550843088060400277244158772029408479929714148345994304404274374806685646220033811575593091745743757507568981319675030789634957396762522973358210401186173420952218293716901255960948491128677433339459521103860191973009666985297742853193943963018445915785828449159949917284923675249229875004510481853271142330915063100228611565335908864307025751885815599513066442614495622588294337842154363160607465453363687671661455956456786149647144370924882737595277890433209431970893896097972148656627782281581253524767096941992464072828252492219030679896417689852889616075666481451814310044804654187452342105985569469262310230983390063484733731795162017135451842160701519196908867530219682118628650907266389020849748124000966384358965376740571784594676833837971257580046061594308343111376175214042003327741357901430881709360408980326848323308607730251198032744882075535421643143323253315495436812886943402614901655242268776201315304698556358679835268867609665540915019058327640433320829393134636860932265708886254663681611051993860983883155435425920132316017469418426362743407346523671063636413918976315819836030649699129220335737279765018193103450348604618379602603275302266269013898418986925167647832422775352807822296920744330908198492185176699266851823251374475435918215176127104806169691365149192719821088344274200630185398553073493283715657419467560989113711405418153581712963455897746148931682636460030201132915289267083481263506412643013924723539380357670525623911714848653311133648641925304065090540284556477872554551287006507335707703062858382884968013447795373319117011773719210012681263615456007688603154744769147539863588743672420543340471666023270127139577991720485157879149094313622779907931026907660582134759174839498075184664251555310126366965528979210799133835405210179520043609846615360571723950966371117674366290398305680231872972340113153821855823750097923445337234390323629919778233372151705936686762019704847120720351078575928503332872460331712154014013535500339832186353511859682942734356388135094039130554306817237398983833436795402829373865791870982926985887622056829759972683940646276303705349544490870713663887294300843459553345659446451825881201552249131898073140649665931917598465226698575669060219859881952408540750171652349369794211781420503093583934304785719207840557960547835223281559242995910649053573168588803314279289223228378760748568220518614335551214520577543122902367312802059556439709728964225599614310553146085493724402338235269434784309854341239323476414896262482714886154371881710886086844620793645702246560931314297080003167221469161348256328631985402161960842389671958950848147469495664888842661378242377047822068378813139997917008999278163544954628113147577056990862135791881260176922703476049520316651626184570715145692049151520840812379927291251361175964230499951536149328180878002974356771425025212266970372931386739256573585306194683794277161832563537842790826007719429686852310240112399009918585357684802965730151161067850446114292922868551756548817820548054177623753976124720257211118990989699436316601630367950262824675703152005098049244871300379682987398329606445588000827736968464180325504559462094979942423763803394195761502857984556486088182027038221137522839237059656840929492509062509884460154186381164701634306176302166411475438890622545851811782156734636763632189172041878408694474266098960413947890820465219993642154726623362141808984553064320599310624730763724809071422297504986838888763747578485728207006785166049089475960919456410225348784311502436289309862173108592735902071019680926137339642738582682177799627718728375384425268239474615042033383163228397320333438813004226581865153303437031087848348249519316704812727941673102953734262390867021981016216920439727130913147581001720501707394577817692717598762256224747312230653362368382796712527321950401769412685560582475655109749632669795876620681525006279854839515960343890554851185422591668130827774563021403128001263913078059293380257255729848077765804540835541585534335149073494419895169571143856095118966139992589685334786465431982525327303185022787215378284107616171434344277059129561540045765416375384442945473802112825207748149174697538748585920053602877372405651558590283141584923402803020438006025063960843011881858979764677670315900760003265477861770490592289703305511634794523437981693504708742932926875588200868225526415102073885402346098469657143011175130619522451827953965186499374906063185995602019810891202477128584212482758800769860872658002257256408429774009070832052091242613907677253803841900158456512040932316956269554906766859557388716718807898400630117578797612298765433716181529861062955117447662375391479032796644330614270488386967624835534878890116164386951427232940890936801020325500171950353482558957912377405203814596055460481382749809245155200522407678655685168092366013094114744821140806144743408189219021623441749621523336238078248348416560517675236645075542703836679230516776379581443216294657901008332485875842326961241738716743831225714376043332163409272262219473322646259277815082627838511033656799162832952497839973009323649911158760181379265243620037820148206276107384573647719814611937269274868166504006672365934548225172857811214925964795612123892674783299964667373757015280822731865281554737419675348617768757854511105143186403062652960457759787218298729894675183424120818424765919924836720633915933208767658788591546760107405021332762030547632100556506745671831893783994433504143302772462221223786566990479398299732276060179242775815559712892395206027509526175075898671260081877606392936859192579830643490318727283428848450560847615299539270984570385441035950728809515577343449034487984794049690633997025709836585205384987898890499452791945640047550992102184451415067586950310947335827362167596008801441352246341585567711621311650039707620771954482067972947728129750148815327850120601385049016705237728172286315337646736018465348781706619860338615620777997580560646664095424709479339033892317427270558203416744429889838407685467307185222485786118476321520813852791928966402595002847865041588835625433476502821112271082455555068880668697406531050970803498991279016152821943202841322942021758151131015194725160949859040006639189831707913610395186695147796474274239545749656777708729604002030601434952974014662108349641835318043923000742031478310282010591484526923293176563701551861008608987065198497439821467450367074507143497800570739882804537057833001466258576292347336838571560491114900173412867085679191760765000915740037000537360255965968332635377087892082230587286922560630501074720161900472888305176448728406504573196015480141589848507454860770538405498166345387342628728988152668216320641017438100387669828894713413305622103886921227609633382504561059184873331538221693789617228456321590506630527275720521998246390136579448114666928104444868235910280959938477393230793290452746419318340588610546340176692181411211593302006768313779186934552158204739476449869249454103773829750341432589127528214534215468369014794999105441490745118814769271054144852173961876625133814837025430676352252521082396453477858318337624158993524907590836508574587545664498534208589240471909040153017882619837075986562741671067505254895280325994372586060476633258243985881888446893732828058161734036882831404059269313962240362286449434131205896030140965025642148290320023776659520861933050979048502937688371843110769846970207254144555395150884744746598229499148796933104741930626777518438749411132217816012418472797736927163960659627103917017947456760800040820969905239034319608380699576339721305700331144491153365221019894095840990195957149922421401270691591565003402505811628773504821477466620351420212810585286722556357952876188296478586054922573427913028770828024026849151093068571567531666238187287097773474153484009251183564019143064894722528748051032217899255002128973568426486336113308655673444157475149139681603966359562275913827005302358299453906573043170298813358612930677702897128674393705865618759183599405135420658227113592229989571853063088224275243565460100642070367270540270631223051661009754222617619998539831712219408579924468630398057744899080486970468693303062282395659449594404228355488203052671476535936921659622325832011662774762326061158897048804083960992992076190607372327779622450053163307568979566515144845556638659644979512390928860789253959042701771405718285238953518555723099278803623214779473284627802968306165014569508932372072768567022750694825117261906243747962407449021010313246246259199833544186352299603601568857210775058840932987263360198021406310744016423546283931768748794098575334226027374107799652015810623451451499654411930656747053292577897375408705352230717986646056113516364805553370835461793584701403703400950338247115416588731668495916692151747302415396816081278885129267341233611786375012161743841051515358323468528202849562355617425069084980772068211146010261268390344133522512840216647492160688342807194754580132212876443240578384791397198718814708044005981233863556787719563604100460765931402812570071658610545568214983995776378677706005151576554850661047556510059017179460383083306566214315425288016045834466913840068398580238897195218815275090009450851181667737211637135706855190406911930409946375710598995316476309406869358444161610646499408791435021967302099297791683748479523260087538809767583587337495734970489191743164937213956774844206281802718341108424514675127905403083993845808920488682081504601590507471051391178123064994410089063276577673176841284907809401393251805305856260639424148396791996601201982775044466995751593564997133215114035240605263062267775569119573961340795555862834680806874474152885106666632479753407141508427672418882369231402544120124028166128507675377466143856905664454424692207685936432754406577556775672669234932282130607480894669800573074890353197621617195327606530736564118935565566651152444256689555011692289222500653959798849868521227252498835726366261274570646871415746670067233045292419560748093206827025938613127401423933988068311718230936405198987346990067365415047313753277321019902942798567909343795385574007407467517163931568338475924921668221758955626597158938784651184065344521427433592538438687719538471124319015791306721270437005092728941992103201744597049143665745349609666291108215587381623369955034086210518155364260781302365873628939304594403135665459831690034617907543466040320775005357536314499217003412209637390075346586017476276386312428031542876899314952547269589179071475753883695647276753158462675079787376861657659787689854458783628361478607729720504286165381188559731040396076415537106547238250204684882502040462112837306914940552051104481347524341575127726716898862359038975047552094491821182442770496039126103812684441718009908410363413516008403315628894876961676671068055643861285764378663716641700288039668214836110670049121673706508033845758028998058620227113614459637526385899901133236345603973294108914914468057180692950939347002687561543190554780978680981560783319792047418542497991647949937032616529920473883864144673025228405380993241056582329031949678463470258422882885603602841917075596600384759992414962874188885381376666072511584777760234036822445884789758807160063418933329142283012186556104811669895054947267142698284663218163104877235452407143184521053435725571639294936565447564769855854401279096713735041365784275852767116235019324249288723909098995674387459969073956072445905977268168169743985793527940090084527714539455843221069434858325123238397942034710315773591206104731956361060131895722899115299086898550499621544196399225683121345534830545856128612521181461258129297237494682864225581416247007805389672106958535334257061257525141546082966154765529167867842946097429262655185567427899406210249675630988644536232367032088918826509311088791085440466157863746012839885041827470866013909706213415210800751962802460150658699201236743645978718660443501927515940821587282868732760339393373942079104379724869113609564637855644452038171007576717089132914588403580535340117328389690602461089460859806018214116861186073206301871064318798616752979556824783696517720964510555592440483531533357150311948422626118590255655091682137621168449194402734953514658311365656723341996912489894203990715712328616840474400113260052444730519581600806374198737910830654053085161510523586244345716256804362701219357787409159263385297301784880104300052139691572157690242022473366031122728574209428885891074775686261674426669559957346860364006553931255731518079489149022391090091899683118768984604306350915637458380599602162291797831012099392731817375070889334896828974136756679222249780404538086241511705651769726574318134345219211271993809193769640665215173699027137766704034595475901072053500502383782491425717524052148989732282719965602685817693094097639565931660097629698647922035612055958460121435644506611098370221083460374787873284783347360750711328095761531684951863207712800932827223834280295682886441490384940463899723980458424087589942439241182573594429805461857981719851621419330423854049243889345315177305075512205900512565936982574539206857312471850498977928153822392039189351869389396126810539330443783323539814250494105083813565696186828716738363982324822060679238928267902743310879820720171434437659988747878543694931193893458824824329754182790403967306264839196164120409742360605208390850467651512911486914309302747739548201589695945150132030872948872527804312323784007226418184241371762201382077866334569346958825295398906272890726863904897440652539420654875727250787812388527822120103815224129703511567181913173355346741381879947406119236361755056162407463371181233452835372658321050305053976411783176450579092662045500448707963406115632411058619336003072048170276637590461933997339585219146725814431968597046941667806666956325667317987578537292377934983855556313343928008451863472757910783025989092232359487491876070791435858347761207909251172009591051273206422514382643545530028500001428534709476179227067065045952249087391831824748137867521618309481708578489750410505879402337757407252143142757207131536083234589041677227335943540816632813871076128176763509572143869166028518331539012025178590256324170172597791722386386731587502479738991926690943232822445520090048855921793745639686336899980854424654507506196058488523877030054037558778170918337623926723719859756437323129690035657626643399946809926977989109888633635070254738526207293295804776132913724129296819646700808491214212446574850764257292652849581745414363658065945859279648113549457311956333504146126899777430666160102784506744645552988338218173122340027898809307780582933165701089544602170840931700278445510604823565977333809761475342152888044043237370097160172023214447154766484220833203297927182967073728710299807791582599048394927863242910251889761613636415939575937870543507508059129966706176473417170925185393174857793402634351216257982230896282076994270563238603477877604213121411254856460788392265304102606358035129780535191185471028647386161122329482549305178132095968148325573277367403792250826007507393147114331198441318652022220450328791302378161937747337419442976391835457501066689834364570306567913773398834743473349995091806299178432891504130486191573242211582357544702607292801662984207019548706581418359489547523505272839000748459595840031311087026283240407626644350504247312172784880728545682812079534407570491329464307267910740486456901028338524429609981019111776803564514300229027902624869027945650597251134957812156965178813875518943629870824188275339060970832322904487811305419720502733676772981475440770873254144521593100531690047311518427551651455945649093905060413421186729249687612539212823044457362125452705006364345900766201691872125354585201182506040897680210023855872954561656135532414527069017218470913300863242823325291739681420083270535601336651294422469647526064224657288901833624974604200305950277705150243270946750509980110436494293246805617279780911871137278735045336294375055813831357543183836112185895255343434722228912950240222523366592903727215032951841422364762970540908624323698954719403019866757728157845985145877705917429220499360875902535129707226728112350836117650383541682321430731914586576855712699687189932891025953291932946753738407519522348318462972250843760136798734426141444315588063540256242570512447284843263159707451687179225114366114729120372386864281965822821323180510055970208611626547646999205787032176508860990084456509986504199265718594277566304926636548035688800919765814261283412521421405369989353454312411987797166660072185152581313537982462810218758687345863754761397887732909952973445814268068836959355440022830378780258213535483826973029493424016055242356167699898253949777094936524039088125334989161647610964717997101685672333696533673230412580671242763828674549327056807328756730621302003735678061308334534811976192017629078571570688940069769891940785207825632931739329810732686172708787933240587154682736862590788577456846112497247341027157668819615846539594039024970268794116160131328703256438213710451435146422445860768386540244167207702093756437214878953765573849385792169313094618591300015890682099685986490350142441166099734006981737771846457964716764087561615409066559679961625131815403936375947373454858748622568981584524746043528604265849259020513335685777214324036295554418680916270733751282615843227448466857388295226818935059694943211954204519507580811316434339794945797927277744876712618636972553443502734783008245183791106069947056240249119105364035800436754011843579519802479518536272923736973780018723522670271887942424224419773495447617871220119977096557631716772371618479994658387827636501964461357150937529397791455210665209255097251829288217729567701961691648266207530417118317882784017916226437996667530971885864191648997423796451315683415651724141820830995264188698970924850695672203086754898938828344415428507921649119801704070818977666043470726570355226116997773696115479403730527362789920662668742781865982553403904282871333407552905011772255992972331371807435591169915943215775209409511552508037046309620888342680693001165869559286202959539254023032715371462406804729788417469671546362301466619001017045938239777802478957176905767218095059164460180940348628333343480265042936288883946962782460030150374806311839453823601947762691770241239261020077776173800301853725520972138826570055062484563689835618354282881008685109039144759918796601357560452005980771708240740295236910899385667066948011461328786769510079619659103236726571882378836420847941917596542515364798623427932040881030596370534649737693093026285533563915729908135358687947171519424074321317797238365764666981760692178927445751664387849021979222191343774877246849219064321764244469968150164122812999987809742193726766989005914988978861587376675215836013657417622453236954261083403182597358089001509674463747926547715963312042998783425302143604263835801608196321621252229743645631832028364882867255641134194007960985768536496951151795073083589777340179595602554103571873048328108225035415099412008499884964533655963124158956459097978915285010795241189526176340590553156136547675363217006802188412154989270186967048187819083205065073009310453504628273937434978671585492726069874796301450723449596711913680697716903391565193533999323764351659778903339883976712079187394708657165520029682914249832716720981218025898196972910073991197038411220896130235521220782873256155445619974553417928527652835132687065704927610957702941440485251219251457308483061318446248429901599997212230521850573702778966215604041572315925654339289667259875230072036460433469142780169032205685253885827806616542498783727960718748737054750637749377287099975415095571935718811798970261792008100327563366080667015193160083126643843237182307366118379171559895908207033435088570884052120111972123296341537870162043395507948247292728019395415202341289158139408711251549575081143788910107068808208508480486215268138687073066825857501101115302100792791763967240857375232411926480520943442375465990817047296767146585215052895234665172571904485119668107047832278662891489679792946935870723903857305303295259238326305009166681833181119226037054099719058432682432520492353978700848222692163531653584117481740181726214154193158018704540371530187606311759929102732595127811185272537258587755751662489661307506685723565736353089016577618741969425799179220406472124062912195448632203481112313680205580550791719525450268426702335070013893144976634177101013690579880373801198433244086665993811234590034662989001606859544486843599784510145734569597101917480240525348606995214736009994500859885652721847924113022892340918375709653099237544068128551181188249887701827115843273107140354865338608013434234682905766406289025794515549587200825149334628701345515679603908160723830330023842580473258934439449607097858697108715445996555016798563140338772905025488573437296167911534127090381685228663376593199693132361966264680944893210259065830232064254120969810037806366177496784083128663057887949267770695228666818862967461042158299826029985779375951678681076026134298510548335449727149286095273436367908678542260901293671374557489444598097863051010935020205114398927532503271725696279625396056445883302068873629384438842655344165509111019540226134571231137496631676574107996046088852226704586256914086230508470158258310682630278345863555642028974077136344282256536808502122123914764933363046200920194340416884370799373122389147820753338914879819432857287505010244215911323541764191547505636153230650889992797531437221606017138757359051813361649091055034607429791763778590865026208373958749653774836514400394043699396589784583818966339501262107183145331630512253855896914019473610026265380864036191647344120245813533038740817904667999927549256636630288410775083551144004664910778325746265039235922911000217956822793081602827686920796133371020804468370255752120084477247450526990025946566124477341829885585941577973051695907044351410040022921104797726514525971853645066641225882477287705242448818496847587956782769735773430874711779043383703486866078476390282113470149001023738675450636994262068870569163241696731002147458344582621176934950477523016188910542043915855495730976700683480994421158248489508159028184967521768184817572526716639207062767409030558865321977053099704165370260061944004036234955770362628062550798947397654564729487306466225894155235380835079897546410015031549856803259486540362193307888235255408393924683005684953528462958753172382557231196670040801163008912935514655778628366138647270785052711541120417156261072405177673006940538153820235482922922926522815087392505155584876776226379510023485145589962380488148772152217449519095680789753139716607189727532737055968168829138963807713509770861310742316608845244633593670836083604068537633276085178706294726517396441837652274007850203977142178458209254475093161353557680567227623021479947108853668476448232430165848217594322221426317765665154746483414044625652121787049700814484428281853227752568447220347089565766956413398362215172917485426781700595064758255615725779282778646201451008829542551031943990572052628398458247935239615646386455782987625109227905711596981893193020125272277808161788871281713737043587523580923974251495930513274276937991364433391215874421392337904718830357900193920300133998833948891158225901024624641176140144134319365309771328655291492199592345121747446103713600456748876558685506773868108613755150215902471751919511691649643054713021649626235204267854694390748645934459370863935963809201592920092261452832584718421282585176625779558130893735739870938273660129950062711618155265379974362260249413418424374551385085878228526314866393152224692136346504355539412492921245178582349700420402384905657066116359543787525554021301622304341818421403251114372474425577554729787933835174391023548263054643698357555614951724808844008426648336100953604154486365598343692053272863460794077786560782187724030741436994163782536257617789330346288537733881400143724775709792218808786104816974741211497689890499717387171240443343793218602592931147778113958213431983958724396046963072018114916168043022373572051245456189049403074103482728105458854274143771780490922258875787794030525485530852665658121211276070212767890901003743715555004855450033901523592866996397432883477468511076461439973070918015764657215239705448397458128351992066294940714058944929872298042421349877827765111541542096145317806122047449248615162026315313203135711879889180929905835321403196727114901920082472947588774496779638071974822561804088249540867888491014896828114885804197282078019031537464403522937644024505056973311416214358482481103559873948829151700832359461089471685570023059526658843916277060554160738402031308293230706916639925719567489461608010839047419448746440020327732143357190963961194221616019953489135925542420036162490441112791472450020231804917568158421211288661381644126128224198307835887379299822106031824928991999568067857406928533324458114069168934424769060329486910700791462532082334417489441038938277062424060020500310915037363384565813773557559028823359729211036134340561050695895403330714417008059445075896619879740920862859972843458050670727314415221908473013717095847917517452928770908235449018369275712811944321465975000640567167502317022783340144821985115183001703862979364026158703189642169088811779085213415957724167212115432717982592102528506780798918170209567339235055598043380666247868282630463255467384378427753012398954965243364540904031294577201602609035424077149206676465734459866265813492878925811126335162954597430507689105359529300549018650624465635744338961496021288934775755273670109240771198650261725362411284600559530588901221968795009670481501624688058155660088147560545922239560399764745163338265809933265514402102875789615406488145572164281766513380096027784599140299143284208463356230175632963570594132812010401254736654744537876878817147194387277785647517405108416501543589546113349893999982024543926712403501049602485710141248954150653241816435069622003733685147943978588283204151836396541202326647904627032925293906789322012719684262645396354618013904172703222445648108745499392416250742287610868968601232856434575276264404812382950226061783584034286024636370133038051312763994461036810892575798923277776119359031077847582896920323495406299387076993131264358212312711567719659980456891904249067925974989857385322364620853730321509831425956277305917845218323834154164828420775115897802312283357913149120628225280196156390015789916032187904972754017376088187400499411560836694974596628949089017016525876131863597304795724453989571010683684140383320415388124417563886712169265157329580083990371295687238627757936797598553134195733914668308112275852885418320728611475906795485691579782045758662968377462582877636380886154722773168836492833646342155874026372875123622707981725405607409769049881420788329675958883710825153486485345116852136302906421418576242799601900904846237530962241967842579749983315279294400695151473627954704890311582281315635265815186957026623084274659229662368390216438864213460022982889999673620505620437585569874881970833891211787236833005237740329654944660797276860147079871414960785463687903366058834245209210869149221700366609769174468765203436474002852023690141418734270982287061570845840000446092901760169525928777212465086900914278516288832241664795135777006648713567447256019608316940525571965186158755682954797095802323019973704013168900574259009860612174108088279875523005261739426817650145111397954526701140011750361882421806209230054196331636551434110600769812839082696532846257124125281488141922153804195658404635141199555457499382381585998218608175260156962394742409292797542083554060548561630635460859161241416428063098964287092595306685807621416356959488199082837145571123026412931955961858894415785720805779343472954611461076013613509184764334458309103039846688061692804787814144438335373824967526498068602335787512496122274891433554920364169292159515757124908802046720441630959350164529389867108732603223485747574861622858830633548566859243800863080492265105200142027288961764692329328043027528781250522520263619285917976843831159597291636310922039879815112233033451507760564040297810122206713856094056908321189633519659021837790259772632945734823255809902456200418700286144371205721761056460952091878213706642481581069717523045448857071751014286634569473634058244539269645372916880381835198262689101465129514807346896635588790645848741211533192144732252752840356142713718044247574869127583190690595106573967592804731440058986150151850288581867361725160551428367558545556545175815606764030675157334397263502797058219174687756394494827295290660218244570670539510267591841676104294507207873904013614620965583015976638623153471050220818180825604052201860716411021615929657735078396643373670012070801897749433661191313694295435025457770891674618069920840755413441029618501638908800825665721931967942241763615640538272645542840407496669214676002598365907754484584927753952726719237517628547105354217693442756947285028311591846074610987363028175997755063189291191989270519252406217995815594348802377365229094371544208718098549714979491361455042573826301210736697156175748637613658938931806625293386318478132217067588876073144690389078907122353684114045747106288837836885367080422706212987081840286793284142504181148194230915316244672705149239048903462088540633938853316854884345188467795041196662481024410632939959274759881390327650912530856330465679429085734253984426998305509089760856688644198078812072395483811170898593924709595325310079076533566663605478976735753910798184720544720747030376195260847402297718343290245559158310626047722747384456468240067771892226149400578932793830760281153739262439394105239363030371892134453351631252153260031055560849995344420015849733491242761885604758314414491970216158687321843449848539583399564082398041550789542753510012018289353882566257151668726337891019682042154396601569695955689301315927230612893177838800692039239423890476078929774710101639509758178584212052058987495676643167831879841253635367179413251193061903958988923399863206663194769949273211109507738514492462332155737051709037116260578394492301704072337967001553126932805554033976232277672640142077063398200323324584621004121130712625707813006593433654584993265280751305264982565792405895378964388799170796811848678952422018069031975277340697352947857601981162423084896758961521638923010591559653036827859348173320512495224106159526645260592091300324216269244042963375578744001655376503603691464025297186209955434040284171059026312352383704928163651090003801160176229500218168073628469389917052017757380317516009136100786422320755910605186601971158610064915369467087006054667934510831588363651530417801953687504653679210189276881854986743058283155848860682320866239220591867566700497995193184867830850271547807205390994618498543395748781870150948993090479535642779992583988232428313891386606733149662684016500617272601401942694051673250602703350331681639867189209435516111886785973848169125510078817991515186246260072689268102325192793623699804845142200611099254777636662089589242652530500665231024195479587393518143776557989463655243773204393004391958326002649571305468036881423142620602254141360908867039919908498851232277706186354541076467806602610502992471384405232455900833436336080221770032241183500279165957151660834602733655739427065845716266044898604214896942230495499031424358085140339700363290365699047649577249926388592714676915089006335485572973636179280231674420457135899136582497379189622514619865992823929748214877895569133303787336972585580769229079888728322794516220245728481544540378330985857894074428430683526630291467448520389338294251226162602819206678274474966192067570361965645759891617977749628588778692879920403507948321233993438445863259906203469195058069170144351594172577547182530719387351931602142732636636475099255813125317705198202731847762850365296071290501420160103447831707477181731423702701613859879026615522813454765455513307017341378854465885941852551139425393150755457610633725130276258645693037341267904546323814443770054469484129978062738968363631513710091582532958293928294104637316960135755391647218534831619307824352555405403502395705358913097897493471431245439566872681227501224559234081277559722490043981247832956414570627182549989853988734452337214394388890154194142441419952389034661021170941181855733722438293005078294370152880334689226877733856848198711311049568018551530215749634963567910328329944484117588783284420285648911409105257602545926803866485399206265696579532194750627909589108479634824484367089956701370940658295260876553941811782051657914392506701791386599416684053294785900581708071299636656458071529623706041818607911167437556617440115456178064176139041430318439378166612213336994191574522218101227282551707688034210903203457505226124719471389603164854641870123067733919962248606236259020848627477418598007884302401816460725661006183388656280037534730665894404295205975804546749213826205790065122001402423918531747471872722953805494336785528660172540380710943986394121529211778718134128022158598874575107696150719180552493552688293791106547948991367943945948813883126609028121033819742558380612950051968761264058627160686717515172380367218772712721022767632542487883394117872733573285313576947014412135226364215877705023564213803536843472989074964988102075271431825294350151913609733864012679196852097303790930865630360704996571662532974161533711826550606319580183017753165118904558986885287789714860847805845440245733490694741860694534000417196812586650007803887454575518354910897128253820413643308009350189074396782430774048900304587313859754983593040341633372851707818466296974178842517640718947830081474447600352422469615168908424125245279137939821209568738782842286791658334583675234051331595556180764470476689548905766991676736783753392810390422142187218852738704463883967144010342913041177859051422849814080518296878492704232849037902956743095291121868365749976290513233501237861917545083224695896394316628992591029327361144573887904935597320548706570562713056075178803906599040031899213612423486738678966296311944778733961078269523649137398558527892438116219021489105043614927919695776704333586738411729195440648909131745240811666175741527921080102791054197921669747612767740974495829590156330301501721925790138450080341446801829618427790023541281100435602124188697752482382738770817589833873839106505001690762141759865598631541474642149371930683312836010036552117072729993096977830596167836017231438906328747385697809182945676767376072642063700037798458452915462486754517029952280860135353626697930497864183950149289418695489695391985788429838416499805196764606474508430604056230770978452832893089889739349877459718103014224047340883284642300811155019062458008201518930098372450891826274088805287075410751799320143274160787434202707006383750918504792447612922122310396960215294683580897586985082554469530430099561600633017863135621351465380558044985495997696936836503230918825377128490458484544246671107696772097580139651548250477616339640751596910935025406942536429684879254026326649007793855174525620375654436490694044590995081177873830792340217957497736678895421640833876746942142998823188429433546462248957276480489328505436568510654372559712075117652144464702489949678616728199063659831178196285224289537508450674586869341938892862368404480747012211269602566820376526672555857479201764218805400316826915718053517965658585293439969542986420493293001494796904391302732752142202142059087212953022477855156639900564121693956410476722498607114296275708296613391541258520738951741980013068971000753672671587471913480860238066634762858300485759166877333127538611505537935784744756425865265062266790682520721546029971791408075114290151383917393565923996902816943734827625868445825601306521938798141729026078984862513816927271443829859185304257741129995123389952916591305882092485247913788295068226074499518215914196131073046278359667105933714873647528486174486831910702696620715171128118985544536569165394365622487527476835030830382458844636574845066379954634057192453254429089356239428759430352646683565155269586083171184007830338742857929397908557104575507703728409989660467006858918347613398888199037220481467585179132128697258555556174429627909999943469681486238817261401199606395520899557959543525963044825273866273941096859536879332489796315971207562039587654764175180403627246067108784108183324497143328463337610305348135253255380250664467622733683169646607964753683392508031085098513475294494627148669769042210236550421299104669961273609395664207512943767102329751969815853526509439192040919123721444991915909462588401607258630095620222369428301156095184401370738389367771436031765855181842816954182343268771178563217642239470381849209582798717464582232281088404334160434381697900219371571669890415131934520035546688170555934141433287707941230685410835130897766067162544176585901385172198625636655060854065397006892907803634288582937381559565471644237889054394498464125822087580580845224808849474036009308262141456087950328857160535416980067976730515655327370345483028979452471018895237007819209046258085657454469966512214022819583714062518217393677782220515936991086720720990105926894051707103791309692003640926842054625158941075408141193581562785415345474184682649198735225253265819256346834076938283245020291497435080194412024858992680710947752639931324540544228315845575116738477966578400734019333844963239208046744299372651590392995523328093525119779765026192420038399352883444372751312078340070774148084073502446685340063495828724091594623655846678472860032801894625533154677541043819434866045844846368361698188896423685461864431489327372982875346754450459710382898555573320460962690392611568664445469454535866218729178623055452669596172455070834065392825913068006609361122549135841470255548069704847449374689696352076223412947472903298770288547391848404686180667181629786999880273396841159762249188864039664121367027766175627905566315537744172503910702024848590580524861564526814308756159806586981264739219375313115498050262461673483468999574833269543609421323098048673085746670134784846041082177909511834899248181152777944345431048481975921691686998031921630736547782686754868684622357866477720637346811952725602837493867610209332853179180911988441381147691745609325329706609816438987491940568349619163746315433460797386546555631611228432193308021979269010042828818190826060417333652415519581476995298628230027678654757679078389762089420328286301422182141033923775296804252566546641977839364282970470148753359622235249597228033225105451010357163424475050328883329059551805068874632261652178687586317846757769503992116022246268084011986262987578691382898356260860871055580069576333866960963229857166905838882099354274269224780717928995190845925381034170256320884689740557636746969539386706682891385917665650128237258764905099272617554203028992562731023110589938165160782955675390717439593064024482277179910268951937348199958235680784720802556100436399207129544138416577299369148069146268571733178697069112723593532718236658186170952893307424748352134473373785876416411976461647387290798141971744180461147074684170561625449880285226093869782646092265592062108671280761293687795666534960737341121738596009722812493000872978590704330447566384324050286977312652113794441464380135859333328350298577624818171481537655761861816817464889293259848478695505252765051217392726048446205325730551457687355345173981783667706366390420461641717936240753961730702830970314264455566045465239033920539675700932119312737846336587060334381771858675315807690527986489722462862882274791679095413026982962622093749009875804249710025337934138225554318683691049720996893527903021048141176136162077792581374744322037703210408763661852971833878838502302416273565233480502328389972862418752505671856521858481004432943622910734496480379788050181658974248185452106619587282045463861014760811508723755068466752510957374203427175897512496663661267870563617144446852944181601663084076977619717282917450366290760370898336943770320844615407987148955144076482893355265760409872016119030962520742235831572948394783045036123931303035289380196119352666269523651827627059130566480702998421359237789052630155581500970691586246914212943832485316067123643913749896245575198406909874975651300837250587492249226522667574016264981335208749614641538483053968114930971294448661386735118287882870107972842492034739816267474168085712743565745074483523964891901322767786756903463149193623993405074972380153471386925647268324903327620589314125936515535068779322907202057282269645153044843980945366886558041561279945430484413606524852375407537539075071943574790045677870753055975122251603791280601408532048567196128122346437931161243789507053047258535812090142919503890702266189227257391042328256000233790266247749809687544425231247500979704548560007939502587303234222144345110449008127443921218503268688820698028339443005344307579937658752236194513947103657965920416967948950101445289661153931278483981075794426921660615047295363444409653817921456247686441554163186944874018244670298419508255226958780026952127419798661605057293988228503283520069682276838379144482922146210824703018279476278392072659295812647917089803447887325872233219391782154076901411586293397429316832542857370445423151796702000238317432049994597248384375265743068145280552283481420235876183034055373185018177214635128245172895492131607355465790424940852361493990098058447760776530320067479270453903675711408206823582103365531861738308123166530217198814877772774302413613989693414014665366698950800355293107058657392968747275202702133075757004241888649055780476717483243379707966540018935301129691310140977372091479581780145983076343664144268045002215300943192862170327038787167751479000207390337023581158129715809398985594079548789919363303361882847686159496284593308561450449744613059978734613518122168644547775981223954143876230955047210122152633246392588947414789903877878163023583528365164512440439740457669734861199157107519272880951227543686329733861429554335095396970226161319729784806162553177673635294607817734878471061191847923283085028743004634394325135696943487559833933232116533517090111864070069294379885009419430700889817483553083627319908237818155721768871783905657827910983344357760859714222217349160528549719322096710309996125028733588091900977421188977480218000640917494287133814013077089474022921188761839957757098660289283324251226076272384025969779597861487783579097103384656165978202926957684303775724179164390085416350266282400595394093999457724647988125677302538601799138394324880202145078397785679300922742535894031306301825026492742242740019876751325927295081014658992738143621759877255317475425301404105444457495148894810180855935714902089732689743078543624108413941269407449630779960973812737451324095357122046913955844443319644488004954536246366780434416260109742971131179142280443390884225679484098799755301948560275024225219649328050431156549784716204552385211559218217154473974182144185532224533273450705378667398231439033143623049168802104851246928604815577083657806753987348627465357634916477359254722824281494941646493574290830198177254055259284834403940231724015311926923190899568061007101546869926313548782134408699642346997549594217249018184686223305604242977288617198642465042692694008708175065953101553030165032406827824067987491936199694792007932720796084821841073723184995004906750122492882400567582843762507966838443565526957340337041938279460244127503528085231396910956714258195762845295069295860529987322973248053246229860703569635075742458585379095084911226305235313663374371638733331735435723651942596080693072278757635146180695155043744651722098681974181178647701065618616241301247524511874021059135929155701732438133430621338964731764845758740962580131162040110688547595370121595530380335398707936522729924184376329636738040225301881453036168824594673127477740173542495668126162220617457160758470150026807480840157871687882771218100926124767694082612586727594762471798478321788896080978790157748964676715787997086512629675838824459383148655665334706511250513691460804600526971444666191414494826875591402514506455443753266320244116765281836899250105371936862848429417861995974255453807983078234817358592793347360743404753120449744541692673770885948775225095351069227234592977656093618876030467823779515105548859950176389607712489981712264900391369339528135224173798187445766515534373236293707278770349693119467663690562950523028370087199866280824681866339374182381372478987426904710746455333922231547708062593573074966035838119422534830232161656838448018042254907123631465122228576243182047170124061384695685119044540292133783563133796627057554227213667384375519428371988101519782301728575960830968778486473275219833447104383136741148480036575716810841606480829511381564735441110678915856310111447864159558388930824205510094892286963561002526075852520159308656862687444404821890519337226723327343753280302555836406331532532874512304889530973451782901778518598644797637296137786660940711260534825191815990194599153721230044664811504080293009595693470738557785856596950342306891923895197295432741009017605372948172525745401965797909663510149794964895272274633590872392761152875871076917919259287456760323175175093161655931346827239679120596075726783342738486821592251389351628410705221104185222042439167641935585708789286430834714524096945014045475756396076930064476747246011378902803870767396160207684007147944353662093984776429826937599558850543148026309247109572991755618684137291910567276543197929453315990290385900943482239760997714465176530899710000187989592648032017499045290129627922848450636080707687957898321123498999894579393892639091435745411364704451744965285308515681482382461162005891273836071768900878450523303412721918842288613830354376179953053774535263604089199572981883856599815753322509930731352245809053146687251895606406443364787887912495478651441544414741261673717193520123526150055663955789591451991669910822395314210748595914839919103580763370697058746627326682744580761757889932642323841464869124834976258733396052873356284141039398606884271604491190930396569323374964625806711609714261705440020766125230675083784216980483288853342471710398666728051083369030221768317333780866105149577572754463113331852479583623991926030048340939126911869567851295005755671633352522877336124355676646633676218185744164635991929625969381785119271214808493472354157435709805831138779882230342289307149343096395260723502201751240896487264217929095702485702598704045015041192468977227350053467993960979905829232463083009152341863043770327936052730298146726941153553005888933243668680492600468073344460990967178987911929037822625785381678796504651913834909833197095039376113002603273257754040063676965543580132561446687883884796750203393017667046101124161434941834575930650986710624766286612241831650225126964459727142837039133620366172488746015514322078433056495324914002713739434475763078719411618215169636382556962448314946812399101028455568096274964318502390631356794064483420366145503055003073796768397120678626573060049100013239463279855473614757214180155383332159868845297599152495177361268514640856710678979966032959333875885867472526379252869739504566220787637919626866116176138756391935310824704332033270521578407818568982980815195907210146112137293041216785867005768223821435938073977391045340586909886440995188577037297529187304026719795062284401337466308534184001253470114715024937112285859681057562555544032987318968889065982513601794709250986468132822056085842350395648098584823699658301591741179654591036224318923188631070679577621292403133638630025545223914860909657482573050434396883304954780075764252359830042299408131359632677370791652625789468652993525553504496756012441725603275031460503515546038367927839285390029556120266441400265987813002809519108232223152994986728100952025780839225192472005460702803634051832848006937736190045211299734432087153000222550955943290530391691651689042913162002661105887442985102453514549792239242460923464547045626286917292428602563644400575514207298577961999748964032738470131500269195848566254263569561743657958742121126343197368849430417085118995897300276162328248017150598348297892109140207635826637988153816441470376945962384227350657042927921818221374560576583585764953579832174566297724186691572664173569686787052250113127327596974984845680375621538631402624191127883877954307363239154428287092534975782760556268981063925440267933323733219440708080814163995424232512175941467189682679802137517195684231982679528605004100281574683765465155087176483948984682288343913783903911593835302934027195039359298560827940009843620647844596878278171375096262809274122661978085593897715449104757864083003941032149330171547052095524187769352262519011955335238523266781881938612974591256692424937789040343720616075212460521507320922480856351429485280001981550658806796426086162190296236464895306922791211117486455527383926757981096106872919543827173091377659244617599894098997750035683084632917598978333549420706017828084131709083079681662038115475040537900642700275549337107311175130618871782344226737260850494986677064068714050335573073973942329130600245552505050923298398384268588167322387138329402699089832030198476548962690236724867636842668286583665180434360336637540825672144787554134712879467213606793925981026658146632308941446405206165196663947302365502932734587611655498480038577788298877630052997568184613495400654167241457927191714687319708741114300025825068046664809910211037983268852453158447438841247328074048992591493921275165732722052534887897726898568095302568563473002712737782940578756267204567750055655378643382518771345109798058447260874947273112338951966799731457024076571303622723929423193302864402178874027325306301852881571699894902536479946689067036998731871176067276133396478189473792268538330151839839227128835778896901943387260626539221857245483448152623982668639870706261171720408405917770245975459758872421669088728413335376663992192578456985533658521048212373412727669616128477230065637193210488782588310250558855690945460622670075153153705277172671032480428638108246892401693569352776946254978613619734759838935490279142018753331072250245440155283790117783812901176547771872652853184310306160415794597308390878106629146632482514160692151533883330845699918705167194395643352578348483515612394334328869718689880799237865208896143708893000225119590393324010829790927385801996820238615704403674712480906792789543356900592149730655287855615562288744238353377021770590622414854920256461177963079928160592306183667815794416756414671781678423834117452995347186021353459980644774121125935363130773312018094227580738231585335047033584136365066189436146337574209053636564383803432602310037214079254850873195114248358558719365663197668046309389927774317891024491811492010380832992544841481366594125529332319055844963509091932673828509979340111122231637317006068983119899468785938717012473262151474434876260200339292404414628865907997023473298932817673116761439910893563920266521369889142569364520581560826670870142743630046108126178397209991499633194425142350563234426628250728557225743023055060696807146991610616720892864904101048404241967226156600395786876217473770703817751673864372800241205765910470463627163045649379960713438912802190702590514371025595935382739121618884451796830645882311571459271828484379937593840362012258802474439574955344145738001588455194550791051513490113504812100180600468664129376788087526122527467223084583740126612448505938744592174725119625080320652842539304778343949362877342796908143749761924910361866436009741551267220934528930150839719247711791489983366571519081055621804044269040690837743175445151864455352376738004041835313010579966278034616890398097614876412203532556722508353752094508963352387085445340258051173969961084272707256892936300904884291134170998687327269027237767608515677394935898638319070513124239729316786105982724221002181642050125914007608308975883906734373646848888068108531302401927699144342687868534748162214635581401654649417893762481045102423131029684460473268329560360185925821587783577865361826785923182678784719185419187456018631473717441750192599057276650526112373766168124228945886923476489549795780156983330395974338396031715074275780647522805310200378872974840488748765841846156470413020118755646298002490968042620513106833716242423229080351571343320495114312598589312263474039594112411436919029770947908668726232143094526278590818467770163389432280760779095033692211056989677195392165234025015843006258888204843714088959951729757983894545017046993373688277987395072698453253373223518268700166756148238797159860167536274701319986246335586127755529102654057649932239905402425816435891813578657851513009300403307652596599193689123006198554879689117702038846121443532752729903418859816812535549695250441280517512493979457372266678307226067654420428394069035947806612287502721301364452318078256692970938969435755217925424684392015469550139753794978413531275849276899180368430226381388012950877313478399995501532322389003865263444218150430655453535275012226750732830817764888954739291649817246199784822123169637469510431694776266886132368639735485463804496470151996408007222683322040617359289292445986100070496223188940089487844040230241273852806146618548157027491659305191177199851740636475830941286729330405710867107680185416616685088744650524481064050317406076744032648728402066214887356977465261688244603782507564386545768795713763768252615307204677018022110232718464145462786795200419086676015699411555225527867847515235838686962623412203255764233057910874757146295705457607693517170545905178603831992940290330025372829251366086431232488247306701249119517439312803091639352102928138879999193562318810029790837256014762841084172881087566178237449445940098236227676166275558819821723322278460434830428051617180713483651649714807478075217516868839310901878904902805308176523839307395921941913536735156730132124895424965200069428844736972373538293743088700490313950275906741625520703895237263360822736295355704720895555620016859420423478508061650131294750209633740668488857520098693756556342850587173536561239911406705089355060241699924884506285622186005660651333946359094350861241156278150759112743853962151350206681566065265209805570361787161812577600815152515592890969237150604038281831722621258707792509491848939096869711858416134355228294837864378376558188349004618583096299799024382511394484249593676414300511687250471345012256839597798450244997311553049853261571386271147423437318644928513084896899960058749403969849725355421606238246521558714687426597227963926933925334977503387357424859599259362240754098585706752940937902512386941057295705835038592635401478109825272031086223659247037786320937189643383577761123345503845956686903319524269927385800807673278548211965543572920535252946525625415657908130576558393904053722591434620879161987323667500858595897391695363580950048707155473175402382090586704045985922549834047177629650864699870794136664383145780262651547780496759910729936005753283123390724612622756715136139872948004679668801460054813330222814865200652234910370084793902030827689251304216149039559673513525574909181970981315789869437556821745635790094624733179121836998600190615542821007635456982596497403812103674755433585516261492937176251862448089301046996465559129748634013868239685702656361620391871107983512550707546607455193844318221641282852397000588166708320813325217575960360689390539700053015325836261112994634311894944892344839404440864512532339179722511840448452084191846715484708073139149729858136833160011797950701331398410151269279167889829697448973988616500061804838191558411336898748237361706762046692569411780514819897877434167315968162954201128346112228513585394189491451640006618536551452919530302319322575486708275306184507874665059385083909032767574514986974245373268579263718801552130296387008142379711289470653997197962578987621849206237522082392413593564395876096276446980740403713931233210485192196627201023382958559390098521677308798387086558839606453874016585276704050521171832861956028608369763143982324900907377304415114603671267084709557779659418362653768743191399662951962909252322128168230934616247376033257911796211601718957279621503552297050641857108700694203702936467249282626377364894436279982663235163768283277160151417491422188127401617678206400946675800095027138516222318978545015967267010367100987336433604548825131873461657317567645196945108974822912017384647109367375402470873923171632070821419488475954767896150172849688684143544172657954779228557019741379972356180131264749882247130693544972623632366943826078988530443437882275377200272675156007808789806565420554991453111310161137434199915425580653437611076853797675209800324360157550509497926364811235226239815456360551281311500523284258097165222401964477737141200994735455009423472978548694717253289986009499528305831244894921002610730066809855746224271789819981388610283847481757284144057174231890180569486133982431260026361114978635808499445928196015809051149631108980879904088672355631665083255960050599847097765505340592197631673628207066499279292934956231832109565469501573726690666798529203384825768215814991833764761799755076010082718613355592555102925755811411256447691180353314260642868903229257146105982732702792127383011395841369077477353755201571499217784365591154077016035221261476279515059739472694887710371804314618506790169252578928229702022039281340180727401993525948133550118852772042717976656625025373205675548735510731959078634101108496650493956660309792953219869485063326668313913411748412752133653187193203796401104005146820308439048845783768064241446533565159301926074765451911659907781024330390382550531053205346074571677209065204310812512317665885725388852162889102847675504884766695774982842242915517831962870936301132956617758681974867373314326426851027490710707454058534135991583220331884813134219857232386852724545377630045647043766483919234036011012272836753772332547737590315460443868012762715290960432756743279857941165050929016848052354308852018033859149736019894240766267229393340096351601663811100826656558849695942166285508260427265409625773484154404638381756491479150787017713246858779376414516036096934368958711710542701025186014769943212433143432138245309462228623202334102628715557389010559747200201434937592426131619026873173240533507393300294650904673356779436199726983378418850770934796323278145952742298728231659877923948771433484014376841765359165533600551161617287169998746208597659581462446905400136419877985759536637218318016947952588589237041151153755553148146831076604746893433835298339807671928535526525358064916506764454992873564062017745064024506208178919009631187511186143041649985099659074344928334029059408277975281453357642244207376443250211482904956103917683090911863987744300529443856373886133238095219170531630512792991698010019519473049032427171374243198569389424895840228347653254730024442673992590579391518104020160243576056132168358267772441241231179963640009715943536429729322165220038404428058172937066332449650065292901569433015529412066622433723132485315764520854134639836851220501551699201965197888864522494284965590047200188082707264306305014398228057384411285203831369683019189057160268499586708928672366478387621615543702671747030081616243726252196556727350628500880988268223478946485066185965875290198241591581620721146896734124961024172037782773248989535182885108562152128462136543698445611775659189887763946875018359267591484970266519841639466169965805654273038950413373231774664231569573435340824635588603298740295438980047671969927823005375467298160836918855208939961847039382445118619317979210876757507998146269657425049366952729350733400760105887776736644437402534897798474617783722648875052883831307741728337931095888000092142939514652396256272347573106941993034879472460677141069832672452660786392369619231903979310137823934576649701050545516004469917991293377717901427984481993377773325136990885954874185964264481179980892904005769684319991115095634073063821714506609777614127237460968627232931743652332355841816502366763408567565041704679314659968221094731517565036279333046133454302634742689927282570103901034952046388099854054845737337114132117787034901180446976422983577301070991294535069648524626565181538162536990529538517291968086084360511674656582636838286644799402689797353631974254869174474994034380302914446909225545400976711886261902845605380779533037200891912147656072525451999053890663319479937954232037711837748943904020484049116212994401637365595838375832333500677569219496130755058195653647855582025428590575228333980982168636974211120796981636525811525732471525915292216690351514971964426477271617684061657654109621342872777555396744397050838870535281103795382040284399241133157512693653017547022636950452305990853632639748021062834006656780899470777377425812645057166096153653030839334088352565736190275563061840885295666652146304569786979674022081724207661688645326765981493037402847852616628056788909921148073120519194409000992981106613376293989014977273922595518460359681329096869986059828367816940677707447762553894162614135442444488237130093402057001548041571073762147962732363112198183802029603720617938592408892862722392519185377361462636198161775650337347266880356984023145797980333103438028683509249145666806328277908368344591799543978150764393383854970549895144136057466357906752378067036039497177506691369235774455856528436802471458705992135941694536558356401922955205961323231320936969011118456704205616913340650386648348384690482501779815322077515899526493416815774999433000490687512209947443976199252813583370905256238720760622153224323626697577653382688404138338161189739417249968346520317899350842630994603814082061431701470101352145323675891032766674205827724862083104402794422843005814435849531568857001313220888022095852653060325225674701571596441782658417991249456716478094539538604199748094421434426203860437707837813346705214236545225723625448320123300502846806852482720282221160477606177305915698784991539881574981804145463564042337093859771904068810781220723557647247053181061211493137703493709773843758136688835630729082760712438424407227769196227366893935344499208902874754422598777218847825299555989569002018193337282146052505307525315628234775896232160627576801204022647467804273922985667935923873882731179608331446821856422728280794075581797676567600123231539063389212370088872284388299842028816980617049663277272953712581459595402678739116241419401434402442617669245336309096903080093416209544254067215920798307878638566730225284960089120793374823665993189653669585873698740988683391742255593640640634474096106272169343386012712847311706419058419819059444690577505944304836748299088056237895409477382506299096811332196777515095050755036625409198737116079643176109939431380428693098010108885067206202205227497075676114430054114905906586320356420979000177394008329652053232889273843565783679097868495604537144858026039996105466742993573961743401100236286122205010998568605496065191386251585430155358135570242157373461986499151926591862500808155534221733912369869693072059005638354107830341936252194378951405636805673725379101850414741833988790286754663061610664316806510081847594403456539247441229997625181769307499302840997139511295409958455899503370394698797963399761012174322914141924097260514862389283064268893961574383079107872437277571028918705040468236888417986541584213580430739018726718391075415692055269298219934586443431945080741309453769531178512732416982540198523427564744561285975506710027412421406715321055557510917890025449437965281769591812935240022728270647183198081239920274381016058865613137906446267205168958522110897709352164061911178505874209447459658555002721805137169842059522588814598543894443551427746227061191797572693155220868715492502059170825692255907257727927689004540294728523064038810502778195540272194561399701378228820169715988440014668216765806449720747700232643516218329327947468287533176962411312915234005712261328409195088706891937734957350322886005228040976818382877654181406307409520561112192817663113745781529052395498679105767760659983586128318283085103784893568566457230922523076172358284911335171380420694945673429371622207908359252393471495959356747611957490015089793197937342855186060777473308660866005842788179991432924890050300925424077566326787569118200139506519578189511693029920640129010208169662906014794409040219325705683063584477459993076676684357032952244127103022641141619642095088531343794146437754708948998627397047406028457179021843726815749203802692311899867153576779527387924245411410079469588346725082547786818338075083655486119862192917163342792947840356781224610677213334501781574856026229760926840945769624210926620255577804780742996071137396596077335834416696081581211985994064657426932287536381817840436698287568265587445955796523220767366898588360151558706866695293881914901034404805579156349899413702805557903195593926161671584429927974678386670022550561120608286756814931046924698844402478770919750903134836858685363213416861793347541124513034215978841639948775530604269513765137688660048599876461691442609705517151639639832313410960047699099630143116030671351267242219401553524628698199414746874203411510779169155332672309184859172658751210962993810527020705829025577390647338167867908634231144966822264001554010765703578289474864343191775943059403181125073876078403926014020599135431702807000483331728526650612915537728296671166003900282581473108183205349008494902113564319849982209252170567980660070618163706944903267434271969802970378042107564373688608784828246508184271568782200719537914273369784511039640098653441330200874755946355728889071935299125522815718009639936620580592995385548210361383334442173702974975282026000543377635384512799196596051889575733253515752381908214570340056783179727867711890706224807568343039677453641145016575657103939047603896351830329347165663136682563913205094845655088862535657023832340559128097216659426966815504057461763111050238297250958620373410131103671295341598632325122390438545283475117154261864450400667196703481253150353480969314533496525696397905632358680119867229531196677946457954534370474818611727372495198276057588906588501899721696663004750495718390467029705435532965194744672389962749618976759989568038379391544352763831250987839194648295074271359534241736314760039567423315965129123971712452114061816192639921255487024155277960661051873420658765066695466187480096421709227448522268874156274844591174488839824162572367205465084711066273313514926618733312825419549983981840513448141247244030120857535249874202902207251684269063817894510290368349525855133892965266171328188528576720400703001825528374130717200088634782483570861368629990885730335498709393191819330711190291198763701164047422849642680401743634302616188092217837761383163445186712928284139668747590938805284184026236848125343553150966284646315908256471663947401768419032846961466720656194821273380047655991679400046548549602581884919135553775982619192685147031072474954741376561906400915520761466340894772756385246661493985665275038349026041950176225820350823704183675331247448398885177795327019776213744931716400901080089537863904821494161791436763388885428035012516601158763286962682918894083746264102700099183178148336485847097435040531353398510611047592852845132930944191966829127598648058611671410780751619032066005348867089569428514754351816757181975606587059768281780702190376415633722704433317012053525511596382729834453523271297680099580429395085598916469794190163802062256731163645121054950460050827542398884688710711491241045504935155300041416497947119936943591754171586974914083999336640822800455736206578102237429256153606547686298032908507791204444681130778832670155414383175852790140911216204116384435401509881797296529095197578475709567748406320458337680898430229871656475535679917988584221863608571125369305247604930860808900176694672100687815629288755177975635446827950002134762841591905823463778806521903322279019304721903059582193893992167715821240156180909902662129113575426077550875615915812351951602844962343571259146602094004739859103629331142972435076594904942681210924662304030477032517820737117229895641883888572986507964712365929849774860339547027944770444863358432009534987748582351939409890266365492889304487073963016749322517763226846047451633940637983785580108553055792401997421765004326477112343856874246534391946731620476831273831126827889452926602593430482944385026293219783614474352830606007219170404734867979840701270306755378769841989550306642581274167657326161521526787177516701899588601937442498963575350859649654460306610029839826581895705549188096957776827362349965911532602982283379617697159416459766852295638992566858876570385580722046487032029206070287025468339624918374289137324629427307346309642845351432407420672932263713695831919814337071960702263262095762259394790920646140148246846688700411469923941435036749475484860286726081163937882457844108992045217375427148707499274031239194828829408112273441622120272363010236529427504133147940564036348639275189405623532664629594478933446274717060474079686079407297337914129000979015538073723720283420184171283603290294253650205690930539925512291928139975716765492258897045019915799366081012913696853755871590057441882231201870996718695741517160508131576309578101777368045408677141665213626606947151212890853192897777925861452684789054938432201755688513501113059598668197849676881936552922581039118084241442237793939363055971615904932421831854410030182112439135084125531978224252689158702233357976735611105307484035833701004078325089349156295609413316512123745904117506482015022573936665678291618054187577428713658908944772911577144722951100659435295940439569177101029755637206664413465498955377132887333106336430486708367786847239321579918090366513208415937483110414227311826054388014037715508743189960945456013824575756006493520100013644237153858550900858388686829145833922234438811940136709464591492283766352757789722605679480709362683900540152475916351546379887762959248037592578941998188670747870366639361807040867369074619959861830495695221886310308150915025670993508054786682424531314740702679745321884029936271984530804026798395067352132357963059154102085463246362694861075092677444611814889947334313058076452371951071732398456703804959886852681861592527404913136364022244592738712997261873172971128254938063644034850889296619876536942625703185767470551875230317576960753054590967149595585820442345181228884935298439646234587885041840209260444321694950468685641203955077032429380819318494380966558546562041570872009539859627715244851080010020926063981436438488645263093694543441839985195669375858182129257126732377929599065121205536308054257585934187564198989454557097326661993369896172572772606332368694967544799205182409566747094720286844046606633150893822745026846521484060023918054959000138984977391113314677518953391187076835763665877553641125595078874441173505361716258479258327810979063049586680325749497218589922552838729485240536822680532992164234934883257286321511416182483312285335482919314673211007219867915705210642944683625217176122806488201680881932090799730603769885187362426335709051048168748576268618387239951204049001253291916339314451136852182429110922263402463053950774768151658979093028447989431245956398329621908368976595701454238055476956270434561125512255795499121987400208242253693239821065136429036475662854167648550070776127719361683415766460061591076088520513517697254524725342990071639093029753635347404804796226566745295958891342235542920513978054350509425556211055212160250851539507001592932496135957002825932246682575240498963164014776724086907214452366521359382490035682112010603908457544721658823386880095607366391192997806583890891358896204276369448086582431244695209765230330781493436417199964594275880810876701789210301517792665614880692250505360846755565250396188703325702975441676904553704646253009785818732990600232331783907709158449133223055914085346042232106506074170367296614233275546044761793107673241080687950256852346628999308557284021742367326627656343454774604297825866803924426829214843569586145872330941510870969725679221663386653981495995177696228916829675426001435755145553538101926456486475285625958715992435073681280731510399213247877630712371603942133806606259275394455536470389811328732998402176579828195084483084334612412604179481521686787089500490516730636630015241532909577286017517139991268512948860484920781189023970162571478524628348694164926580224396478003379123516171529134735321679867725860144915321613066925547341976101891354109881746830460993635356388002099641700850251347062884655981082917594299390107267336997132040844483270463551499336899154215983497709831190476923253799394165965985393860245488462879549409845088300168609784224666538885663503056044814032006867495102089978418455373985094612333270164768623686467609716076913224176806975566363832739270011795532633411664555246047118919172074133559215527236764498255108561925388644889400871764763145144642567153866404330375965043326556864985421306340257429381415979571430073916467004540501494755980372584958014930590880349111779552179331828164331944278045777801690477627721952785423977016782395470507109401642995901408310336854186477445531339222027097319822806319654010245789838395386057405941814762546653588706002958292458151134312349684723901167144349409082176999806303289699468223040623770721108565316232484686527789774668451123015181664044665996122660483117659651971369342256067830390412514723163313013559698810296505396824347303448438899907486925674860815111355358420826681110645976952680521419031354238011828122373981385710649434812021613960411527793739166518245835498774944252937150201906784759321600588001479467831232085139977742820277631635035809431256460482202416536990814164834119793298448591833055024012990885648353628944563854018745373291593885327934264665426888544835933276146640246423950195358224638080409235517454212404193826553648836064642451873323893133307016931414128037326082580331136787337625085352872172184268798834744569040383450352985635614469169543397513528694141150898839343624508436692429848482656767226998118848192875816223616313719629905919801759450235798045198526184593089373546217407172030866859845063783338607118476803035051564410814058168070804139924658787389932826285401136603472582533307996711651702808280616855792310098246569544147758638472192358290891006019154024777732617684429426695632718253044968899904756105831518141858537977453802487249479171955128538764134295097483016023246098109075064576776422602920847051249660272166278200640495874166127773232864022276942537956381444051506978162887511760958564354917321634778016272807373347729977364673009851895769213971195899626663459584401714808539062060395235339730630721025315272519388650228740680376810619443405569142512732610945292810334219180761842287548567055802397189933918727400199079226605782568905169978892447040089332482622996507762696039247702930733326345656496386017805186364703995513606589798709018422373365276265042794389766023264116845366244125716032982100341269894940249405079947399559109549121226942490704673981395144849477927552590533988391458534811047730076808251772769743356554982147266876271506340627675922319521186581458497460570021117806242037183329737610935563097796374332092125366545500303187738334344671429454813232159124672668039549348473948055945559807415252226781794463117521923703846726952567799372431409919326509105879038764525543328395486779597572569148992259090703765717295777064549223240167097691494514051443953525087787456774690175106183323011934134287738462728486256375776303760850999664540536108011564241108452354861251215920614847881102263522602295060880363126871356961484882639189350758870859891534196220371461899519193623629861091315281650509008250231798240125748773334255795094376174087726478887278715627839925303158947055646595340106651905336075622383950069034649392890517043445412572001114684208487164397842451489347215904355890540706464571466252917989645333942407654256884518143399050547323890645126679602674590668282912878724560807963512257527049688168196411013976708514979751941809657571899713431118838525068947603093316374676270658428074678581075162494553155850272045386341812135467386230761796261914920659123189478988542227223625476461001992209443669742058190754006694408836594065413163470308490083062388440840793941274487007698919443376304042697172957550568147572542428096818081127046609064741727039880013204445706978155022281664054924130385633063458939848819927958156371700144712129340985770140106825215968591252324582869679057251539054485628777202651014555602975027634747749393618900932467693049231223048621269771204036183283495770717014438230115418150659426682388460029390525559548378172015501861731768336410546080437571960817057666496582796809416390760431785526881026830245121701067331601976068990077268430912382733769905171267766128588525851651097010554760577024557427576322215584406186182881960370078708007300888251399752969756021266064221614230984441831111202883420872696921132175536507676424297109445799205079352541849370363031187127347366635023521821968514225095904657969670257667743641970381643840374688966216427402551566908393740029318476888294242043903784891531106755672212777473443974638330654094716241134598976784054230286152276155208404204822310742822341760439104877466803119335597809296247513053646756514147820240317606882694292066138639990841278565869305172485956142941343277861934485755971941517343287891819714219096142637466431272385038060568464799320176512752835560422406610003293744444246472492783845916593377735144322579125200934231955096785493189863771767510701113651981962245517316386819834795115114338985993766660462901082729396799310787921171247029993287752696913483306891835013899558505268255765643818966866909370296037600539814158358758520614160891860962588364703363200595560349449311969151528312756518730097090297285287195218675317845439560663963018838494771381883622724898402342384283642447383740915941798271171068126893884419508293674008609318691247781101661167578148969244266499259074729167349172764556672330814752898558672323598647597883242734409911659439202360999040875613908354623796576098538583063264370115967234378559062091956890612755924400005535843507424697410530977223358525734876378996908038682648368179783337294853953439448747390221430283477024414720906443652025970129422567348867951812825428392239488496432019476412978503847916458196017288654390528891881321877091960424010760887511140698859519417448965404058428058358519922124115132202815906531766007938090083551900478467486474775007104897780063471128708411289704164498465534134383298245619749488501275415481114254702225153535699462739484889672315115847196187100259199800929452877677220767844546195261193679842961212046066875153242063875490995947334174641829303611325825859232730060504858665983565756273491561762465739406457240710940779092465276567381879381795852592188103296973493149290489433758967293058591693137670840340213957311075687922832388837932466184076822140990436387922127189884432067653763981228167320533550330026535414767918287279722335879285135108575965478209695615197478764500838058389843071998806852182365299746533646219745533691583397911364765179174493585432411836132185979691220708211761396449689394680940496374991976157575002236422327322469999428199279332274715273188659276950278626688227617279551116016703833003459344309645707220369788670767720667834835603666876766710637355798499707073013812516245106693251828038320553268145037456582867294183570242508986660799154945393569662458906092510253760541946126052222161981827556958293188531573286674183847655181540201578427366345529525710365116681081556631296358239858240002906600813735182609352813251679308539130986337071429117345675053429008458886590363629908454642061008450311044558179740622221049851372698515018089455937070739609885838986686147700185332036525218493903718655446032909231306131723852114186021757597212493176335844546540552635894445306938411376123368838693381497455986310203986979890914971776052863369275466006562624062064561133326801645253281610922751604881286890059374703825184629829963051384921255941900394453814334002935929928682038331859169104813904554352267003736664179275430643490443075533011218945083468971917950646805857622639532777384383764245280657775300533034495972443814084220912381633569418837899513760805908714006667763822397167728545242373044371785536584674554641325541244460848538597073292288368198207829253897369013912778354183749817864515277290056010745515157688870229403500952686266553349965221272410525446905078774877967936247961022866073217612889274200685132013333276558313215902595859721561872354607423968667374126385155183246529422310909576697388395761410217778032951724113619704962758163561465842645413614727703207975029299319668494786682839108877322508358785769048688731908387034160684047663355089501973372263231732456144212554716038970037777702979128720084456164277085339506322151146242513378765865827488376467306820238838698238693105269779299546095735922346596073925670392151033492872313834268281004586553927008771539876145785547464301187591608325280332988496823216856127791537372985120916668269957117835076539177408880155005634836561755267669472901191614820398299621654448507452734401540790083235858517697580983205471350153855068018402198917374728014948991962792975974941398671579006656464083119398022286519391952053720230071825118742886429991982924185609753635643711172553179672283037559170893951015072407929655075450415844735436842160647998749114782808303762967120314624172368631365478676997111540425198123143547097292912470769357067363078226719020583083884758474199991311846253677517313006296997627918754671860707642739913907406278470741334635872456365718337401117623859970553299625229858361107545498059499894036646583951264597723837515117479757523054137192606928714879383662306848132651442568207210591727765533315373207064826941219213493665706625004109769823444039942849557892480160841332293605508039733598976627690850434158565450550757915466231123180858434987099057885011427651240425208628618281746845075243602262185431904061917881701718463392165859406362235798240580584620174598828942889431586474219251806625942838066902671545160829525397378549498947689211740661506417407995941018161350942804537073966374499463954602600281855700219934669207883553810147886816147750496474436715499877893858329413909127572159975012871893652434946871237070771406591523448379361193168711761392826100538825075220497091516738922566102274489742870397079941553451352600292862699353876546026114750969397913191854808536830113233362764177531537448127742862383779419893404351950892656761675448358173944189790770742472235537658841372401316987317027872491322294847055529428202940924643733391871770093844656531055239642067569344149333025514811962207210042372318260567609197122522521096278701967271721368950665132218347858826826322346901887622362298569932105504711193405040709402016555582090628885087627970589924598498535866213611190356020001306169367217814471382241943470412725553969487647877355478438535860040510705066832871064299632416512798109503825429893008844694086590294124673524480702874723808756827154568020239911719327291343920321470634341417362184765103992515829512064264173767952486229088667192632904452181733970866021504377991741763145964914358605841729137758303876527933868643687967769893862445300335773345428150436265460232675581678115365436412531306138798576710999422016359852639677765024647607115871606702443542313447666822014647425985482966025940256840865922452536028123973955844609188907507168211215538838327838457927903409048051382778418904216278263931847993592739603134504890502344229692766329919447557455685495706164249804584849961323394053278083487333974399601543747854193543215680807669914383922012709224517480948423486668017144318619239281465886066269422372575478538319322397319644649962852590533081361459524383679636674094900469020823240069319642923221632653824202628298561266422338817909047872023200310485714860589201497382364967890531838726893456103749201158981078127323569417902478352277686344303463994185440572371013366315842657983490099601965281691040886738780474501853027799004443233920687487696918400308328354549757282186202138675298728790518245079656668095423795126386686820167982686703403908777231566579187372628281380379367948374856733417711678335832289559515306679188464233027677922809892391265462923510527650041609881747075278587519898822760079539037354750163603368562869632249657390780020897593436144560350443499413032497241067067764462182991027997857080106662128393511615065155057056845825276035153283094051827052760989146557857143461520976390566007637290765278723787090257967775165763876924679582897987154912484583307203786580302239676150070281490006561118004869803829789428644829130468257968548755617091892065408771976072161411447975447192559686325967969306399630798024713797363178928531823278299416060573499202642165912414790165053392045426631673442671773340452862523934771393599490899054618909578259724975096882733664632697675550755396376904160960575005873877804901781068331618344143731628213247311722395240522605168950974757835514510701007123845969641895788619356262308042150532011913550703574698235678987464308987829382114837551566035762276583914403173545861786973902253232736297474929129580364928583613137964098778336481665723078917430352742023693531961303158373660820699359487387889204961428965633164954896143790609507058924156299436086260831329533427074736301139772147185144319977050372276729329899313658913855514651221871010771355216680246533616711077884944113941323414681087128035480557990529895004006433753167799802575086632564166746613758475604202895973404453242828274040128484921428263675949961629613496675357417057771150592180175792696225641708519886003761980641360675435765126447415756680627671175786706128182026003986731670618184888698381034342094901631151059518565903273622643839307252889014687155293873805755649351250794648169222459602811029882918332779561470297609399257162618121963736998289508126573345676629366565358471122947786853587924517873596048765593513436692875666908005662796980645000258047607142086369552206746147985310479296567447610918669269747815001253855075784845314833033981613531398390814872005058892519004855579905344496202852171974975045077846817057505463611007359862739425429367353016022324809450120629384550019850065520093353901603930229259442906621250594976163462722732065625346372896021534325172686517213383445499976464778872198785586390098116692216287035249417432018319460384099195253245852187443927244581461852628453138178674981320769847202323070608410773607207217353433735388873373318338881928644238917428328602717590268892784733301621311976217545980458753454670290077541457503605674347845431747671117116201522849173861204359468192115986441366511230759829737188472656239430135557142688768877542029690836798345715410071877300864663362435617610978624246104019626491666258555105501892426114634985872220557213105634176387210374179735477324352893948888023288510646296017580177751870639670230482135674746781793202824841939146979602476832785627997093502011743250578741539443296590140592467557399902255274028224540119574343361587758624368479150177909616949271469689878210870070386022929958841592734870664175617662123920699537121311783318388544334645491684068275625297408744596031409779746481533028730400770824676154176105931888515435652066296893623370527798009431019847444430752719255434872833002191481940986538781038559586394302580972570785247364792343780271289230275366459898882467517396517493382013392045267850942825598125911993548028545316443762192486973926236682953782571919187083570154237937695930463002898047358490440302946557432918362018704788875467620930548985759921975171056741838756497524330658534630143795931986978568981979354138966551373624353602159427381476801022308318107213844184087531429001674483337852060374822812901508803899374084756392004738607295519835922255642014040828866938476549240852477541551866960699199421847075280302082587506453047784065656999282591791482862716231538372583001691529262861603491805373919948565359047797689287086739332639816522206683703623654824237329051957714748182604178639365178229803596989281698469779394544246088522772607795248180790476439300094263881601045828439684608829647910280331215586181223324316022871489842826318487359557489363737487966199111393796285880848793148593340667412009318150111767783129872678312391410460932713225548104938987265884402857269461543641210860387297954552262992560858014182271028768731242806214033056619384548167070143349672544781526941176835694908124567248810688966960220078536933001493348080691441836268660925506766407252963067389766278049972741807984796968964610081180950105611122094860935516394341298870192562666653695171152209421520434266812179568552965944561071448456397513948798108620427396523695663631002666884991572673042427475335564720335689255147561971144013524013064869081815770714201055529189688808379058204649402085258942080418557363329173033525655296373342581502936817584440861827293346631592315359319943986587952487263179928081713521825101641439144990118971421919006035865319329642101073844011936333808766736215947937148840974534951178379972139882081899910018457411635138459858338171692092997841512498730323229768929895388395996459107114947390578066696644544840551033962463844157248459097315557861517557339350486467548138576023321361292962954584957601092209920345009306562247608265044939894279806250943637298197982001356145106871948611103646586282458239448492792553408578055245287908530367124140340798545443703151521629980094431783033817338013181819870081244557996846940405517505565864829528474368455854988881130127097982654835523520648285256032101553903114791106895005955911146261416804416405946060908809769025373724120070211092540004061504624296665236464724595447113510817265518517597554250034039874259069045522464853715331574647486347717338317961163012850502913187400939819851272253934832873061502414708954719516051958137496670967410127632086249931524013181800021386346176273159732249508537163480651888961311471575687825365482975967421617844981178625029011184043311395231634904391153304345701138852218185374984483494187710591539856253590897280818829567054447429299965348185836612931028801856920333825141375516382547682274745935827276168457676450711681515702981863599144359628903935795003454855074646837370979878504718248168483911393155243492334745139298818064943631390794043548467025009209319924413220911452981730237715086798514788780923058723807727877566779641308637900581350783101638724669322459500463422526825319236222544958464001610669490976691054290917996723446552258356434488224193958345550550383040003784390113552030916476754886983890887587578789310233695774197013711924293387884348388680188315950897225383398208949365044880225513262962262494057791760319305563006194203333702822803576255660867818626674400323689636874891197745449163135236692089510894558257174349456415278345771854823417144562760970071708272685379793166636543657535367496160654972547950047929775674039136597706760149609203730714210284900250856228670485655380101687783071782266360874848593471430566504174882573470837599529112525051302931839951029926551256986011471312858487139432482573647443892428033522634212941435364116507517380980470928878503437099042688845669425197205883656196391161400398299735557679358408159434664523801739752289130300854178712207131578246597307119132114965534049893288658982894316351639230626533423758657076994454982085141208882613031264557580186072949256306050020891641368875008256557499477302021491684209947632402186635868527073545104981627453943172671917863523791633137401345116295773138611941387341812200866112256000744341148635834035166459761920592879989116341358270151859547766029064067675379559443062718770768220733757868155328708843340237707151976339367146991006533540208476977951404107030317105918753290617242006806863487945116673884973292866942253140788029849192165373823158956019525625694997533982703023183609200539147592655440372605479134980534001480800819435796282183424981348319196855174838570445852901089806701241123849752952066487937541847662625239863638003475102063590432813000340234662841644906496390311903104461155121799778922593268996266080521653184158528368532656165934545761398471476562293270192811698594524537796904726260704533937032554736893108397009711612640628158178801621761035983340854358483506428980895290450430197166529000695121075005117060493099339544274399563021602994800964155674939872807511304183195434865843270403981512152258681562641269016907727397488768774600379385466712920018999353099580901800942258345957310195372028873976865447264295632523216448436354089795404080790814440673657630390481793077984514261112207720764632030979225871812366379818573022433452559855255918448139248006597127219755730702675549102180522838170487407521439723500772178597725745128866209109842443324903672232296365045994668503448509201379849610905258261096234501284438169095811772042997770567448608364044073310009264928626924736215371957387825817603927840478305429439145193949589118588252169031250891717804289973618933802014975190956019413058513726987034256033007877443742105335913499049871409719374510620098035641207943334129878382881502333231109052959309090154296574644525412268998226369146783050323862193434283499687280172074114669181924031919169877972856569351806543552429994764843484473905892401690928567867558584038131451856683223232586183416869266097815896969653708491428103941893780385395237792111420975849861211576285227991064593765478467045319197439811372107405403248021644351209415126276763249026007974271717955485821171613155219389670695239403795560688840452976237761196158383192943781709280548496241366940274596391812118543329794239746236654154734596450890970331653259394426741312973535705085567806986076960399924445945383173734546804472339378750913222470899218719504860777680007142711846973875721240391313509431907751949069986837196604453526903874358581719342170380084885221029792796417195464709156618828737231042370674881307924587577457884445015820052008825416691009529966579166892125785459510992187435754170317176984903634034735871733717219578616630247942523569642122924998132609973896699513691820990740488030011121022127947074913710744514980811435981932388127660870865329383077264806370411082796508384635620681240640482318642052636753200238527996018835450741832101113844608103489220189212039387094303098356352585594439000558571233178858336681968291752414464683282493180092731640460878532519959805304860484264781037185425325140229872230125846215222067163324579934787117350456850585772125079588199701101571385148677869175349583178192113702432027345567679317845334727388345810510573337452177570581022302071052964855768863935092737235332747334811227724978117678989028942232456121934691727022893142441463299495526156339112810603058909108949898944854110498231428498754502918626766163634995287875804612934872152238337282684893858049756820722992561769229756816980613177924814049250304104595651154037804371366153575511880128854137535897044396876618709130320238232355752246343109701025836545805503586344268894005943012582009367513695172902801332952328326477669844209802234616721441443742746501661784795652188148539446274706885668921013975913626133041430331172656007836360310892214832701209373005568282011510870250056885299928225011112816425945098868598119898521955438905785981519326739215027640937141468981787535467598768324454101851033620933157159315096339047451419106963394949640263262207472098637593824834014260979634292747498268601360916137542711523147894610090726597063825927525956912952380037205548547227313439741018713124352462363796340818209420924453382712955810993563790602571995365852365053676313328206992771595266773421976922005813368680229624830634755122078227539647186481456111789603316035608375252586876801105237036877815889075539423448631979677641496605398717856630844678573738863846540566316301102828972171966690316695412993755464787214268352860961895600972975320561792372136651183737785404159632487285524911089505909658597243145886818384460760323142988203533738886826483415437350516176291877888488847082216082726625896683884763147930048351242290405930718535566243514583782375112851583418175316121720540947441346031607683273863894859483050896559279176389868346478203210229665550293777585856136430472219780365376187052486499358020168786790529190561594490274000869017858449991572709394863362640557348515243708440807955717991094597443391992680962973437291924692100165260612959552443639684868696139074341187888066220194484571312872518493083359000793956683272977150684347605247411254591089597584752086251056109870164497685120348045365110746702465955366687799106864426528228808296859637768882209815017671114997233121772909049569762469630019638722996783234747781499694997722190534038991642882966871764558228169533830176716994185572015516963114889474743294557174693969174834285653280078863878232576170965927629748705834120806576846099916635854802270501284499755098166100512340552692028566481678488912365451201893136607145192184730927311970080364511979717908767779588369401199319061512823117850173883599559873594807185974288401140995898911958444467341266031018645527025740161191486036689529762805394048716493279688978531150678525735486011265148952242344020500187754949074479897294723148960449942660432791300864057160415002052923921540795054974675018785759689224010352848888548855906067986232385737764976481845209442445837576311917286653456097465675127728831407148872816297141622765397293626783443435059668978432527767342322047307435985700077032284019176880025699551118707041191972803442894258006952325422135919986658604071110468592269442579716469075635944414990571488937305978237281942833631108932688219409174988727287711880736094003309675418829609944777967532972998032388384170125901333710265246559150346340571688537747826240895208804315094620068502747637902675841817560113547835492350534849336032905685594579704094236718136099651082841111214737203437044153356931408256289966370902270382552870146955979707309805565313128843853061273992359620502606098408240195029035164420302403711438374373921326952129654632633501663263630133619623186169615450516293315181144246190101416674194022476300619010069382236093862915723622313812032684262347625091491474548837874756558446530600725704620306707008795104880243649688855490966915489615152562779515754013356907839144753344874835696246203632492851152846693734990740948940657413931428887554137461872916915581303851954597585741579648429026992318559759633850867488552384552550792145663095853449943603527127692355359528002795080270314023933662848012060849034495600623965449933562343117952215134698687386532718957434884014066305801624029121108288849918185083740524080781429795478589544656833093332247892225341766842791279919665962552821387504315978333537919124711211315304554682699480244211464724694911898161777693400240953644031174469606395891022113238275091910786096453008395567565507170221014247581718253101797621372168075225271032148099533879579929527856129267636625335039603162992040224669000158530461916589510948578835347009961383246500400911879923618038576524130570379716775937469618381293683363823781056065405598054351616793230588593096818672768444554340580725463176839164783774314986185480322660085431634406552605796817128415857726358579015957328685426563606762033502183237372715667982520195161470303062673541464346248470318441757379247827208101788976874851794337231084671704549556122615762203685500200380019638326409534208964600276049423007479345547274026102109826477419147007641943103314817797509472665952924730071290384977492144200972774182806884778268795985895394229560438192693850783641820027287245131230671179633355970973043264026422846491559872470549880165335873197284570049448052538273300131696661598623388256878867969784635430046258356998582102223067618599260020932433932514192342219607097175020816882315834748580384865397171497514659806347564107001710343199807898644957221150496838454985716988280324291506829294332615698698607573449674482113051783467013944043919178218797574588445313296440010623164660971738545877357628442964864992356417482516619331816428890512163190867462458636059515910423709354095254294648951552103792698364856766616077571280245994442350452312318153362120826132555849944305265606279373742463666739786313928058669789204223001791051284187574739835664668167172452708356273993383285521879146510793937672484581783634463893769187356432752813343321059188356711864663042015783911253556779855676667750211168053365247621341115903307916360579373523081190432495558960230546608017719344325868185436953531969432357522970919744225964615526193754499285990757522897538668988601952813710580172876375990509888857532846027381879075902848872463139350980665860946633647768626221970433465642785487773679738927337078093303223243202999996651053281387202257963233845287383997501836391136797790245694283261556272912864073250536611137226479046911027513886782461326182775447438030826835426267746078045465076677426113329808779955585619897510376707859346920534482485639091737586214612067821580902569596013483044571172099807364064727750982778633014909703198212221774983283840792587720616874591286991011494092983484617835687912074913577540911957951872818916429939054099642367819405913347842740581185901951147001633555281720277852289513398970104344979338131839615195549743488568085762635145483333841827906473818216636316104900403989420756187895352842704618288614082106612732901131576175869574556326160459739301600685269451516828217977215326867922494419946304023181880219285504501554777468070629275137155622282587416370110685906764251568045855322332139570912990180837441618349905263998154175108550268886893362375507444595673655829484846520346372779113265439694010301309604462893408048481331113279093953083324488979550334439540886362714058788992897927980455827592213907860517271950560163041889226711311933326323609634357685165387153210503161541177879210579205805470418252276099868729691558517717439938151441081848546300992211033088069445969613070528330693415837934128121374593060545041387709690007533209747166512197034777511111830431988372030586868216693044570221772627087494963398035274497190484745986079565211837135473980284460179656078920328263724646845461847169797554460630479405822466256899764807271734863777654828216278000821239634641907630655342165546350913124765971977136567507445069517853827786741490161858005273711775807477314558626006269491064886232274729645090822013787704805125344552037531647702017907142884601348823356962508790648736615204715397803187366748787569040839876124063754738653963149220713434253297132180678743146462991528811606259866286925226124775676263217916360610187924521971888301184672766411393915562717505910533595898494811517557361221477315114309023433833104267227646501698513141535381370119403212418875429714455304252689297251914990898423248298155872351879137884476071912096261140072042806865764713691630455173523681706532697168306932443565774355711387949511974891654890101738175674101904134076913786934383076738015083182031345166901375203612264726443415857795663618399678456170915110661150274493850618723339505339203759358590736480290711436950959075058341467660135775174034768850701811953202817456557166739822471671179447375452092509471057256293247906509582476981921296857689817647776884461530811673444692327521441430520066975689188050660025050600032670563498489410824989973121783308601233727381274300367018420298450795147274996158378734782318152479774867131137384952829657819350527894247621629500294627583945777262213349202758307618317928854358555048749516015377128130529180290133798544902438417816497052316049985922054910451285721603415365550380423780716616245684983426650051448040413974934010960059134426087130172985186840206882349608399835691391516978007482105171229325483771701411072875813998820569550305702841166629414625822591257937956283361618755250536587872397622345049214941408476542406852768650908832272447508732297263859128713379117967409757032456479751009722199378792720556104487378687728701852541777595082951295719181975694678351352318200651435931648852250632103083108399935541806118588474108689924743889725542276776243933107458867117418482924386719521232555758373809521790309982501608930738790699669013985336103479280838480989228810633139935189344724610756150359289468580314939721401705613533411394336251153213381869477112339084356531211383768312528177204333126654343683580615379844272234923568183103270172538383635588689083994832560131085119560206293655012006064253991687618033993686641654992455819279849591453650749318149786971918142195871284510290017034534664946501698032046265180775634176074158601059847816459153931172816625520503618324513464127675568074569983615577229961697020677160674747962298622756220270126933626884652328531016508414192815123361798401331782230972763599674569157196064157510594705120575039616534847654431289656013599871918012036943301558885147008757956437054260558993456285585668467578076254741642082393543627596673767307942003431829359330030070996351872666731423028379435399511313884802928136204633431459074072628229518494109185169854061290072692066274566879036902036435850741476085367363003052095584141047259805108697250688394168350268260207393579715968049100977055263021422087573078435355674877078545909284339368671972140690099147077646586122158405454327837595095589939291214636963589994859102347892882671062981842205908900632203248337341001503068921889423991502738511205431321999933098537052892570228679840498976571441859502920419235473341895893429103497190241355637722677306628278242237710502926089618990792640699618757649586944384881967038313743168653467603177801758306689257274616262589722912532430981089666888942805507691864358530496577850191031704279670152003571024339465459313719250460479014276090560895881419781119283883779664929493988172101129216706648419142620465416903998515804871744870865708338675488415042163579105387673850577666872146934684755424166981094596689122285699352792620255317393035003142112719356861038857439112003686571419138401708828757211141930452581263560650347041844243106545369154758219292916035472646650104991603783928706984571092112843414338557785575900027553589688165603372922980074097920297038451973682453124323032771880560630831891969252921856850719462587572484261883314198829297740654553830922241027166943235649486254190089880155120462791609554865444869746539954249432934382117238296230372557529896840283263459039191761102149689004945718865385474179156572860800509520853438114568307903628047998138370251878672207643440837012163334169090880944197999629133060386841520565159285092927111654774600749267665929404910360007053937704149165720115012324543038087289840496749221839450143661066722287882645566010113532379075981795657643015586104059673368270837872904386288884004071580863775715544776111580870810258076743465560219157132359674879816856330056266340858221686438780737446455178027245518447648625943263988586274221841801599231834573713083725566233299574135759654271365127574905752222914487238290709703186054484897203620028933793960220175860413915573333503499941672849923191285596620590287877176456453363987028829550171421074769523525962281934946641785434826579085151931187149890670402080411478638233544018623339374506890663967345955765582155372245014550170802377370895628972341016894042778746062297371154369589745323334494313822352422213677663959608734119514357055333546870171748566977982403898643272375357892385616347839444391379557458693577585450202398224224560761227016859998509157368966585151883669337150112051064965947289323004851470014200780504627650392535300703210144814615957463977053742724274289721503468733939617621489349298890041233182541460959491852315436333183832816565248185990554314635524027275319658101119884662291034285963661013642551430447191441337299695003480395319865235470713926398925902014711568006310064227413713674815450679305004335931181350197928144315283978139497997340600028410380104561548324321588212046054438198375333487747187556974449268944262358569961306122541954466927297570919840092042631447981749491909202323295835329148926877788260871261820536661926083940464340331126351608059301499997987591548878412714963550414168488426482875997524533309022561786958434253569700340818469521678750488578332645762419403803846034366951824605838236954692508704331456108100301649926977787502796796405505363817292374951231611060819551820932618985109131745282280762890894562166969534092053870627375148472178108107854901824298650825938373324964493139838311523144408083861137113385945204031914939258310452797778793307332517176074220816171057775998101437617776350548838849788409049697019373906720818897986295036331496152987352977184649511007534456845268066233275551257640054345435249523274407272069106337187314931126554787021876267321009087518078587983874910305893901033443509933338145037978176075351600514550716565061856738826704705327902326900972130654231334194762792673817327751427580800484124165324145355706759844124797673823109032879892013630543157579097286498677648264383062752138897504384437017830639784189867031887783515813121800360515729729257323608340814414775306783278220618418778558099139557245647135310219774393693455982425422499600449358396710607873297643087490482250482469740548445918393775663801296546042275064667040270724691034811400723864553048517018206661215859674223763743425531907420390276971431200637707798157565423990031688464946358593863766409613741179760222274247628075847519828614287824377777593243263952938486531484854633922542936193729880756843243360729412562391301845022754334595084033813902789365714365675810724049953651384341218825307148674928168201832481428823489750884027623914420711078062613459693943974074495766321960375247601059575679130820522959454694519775909480888995903220094774345435094257380169186098372067672894666730745610744601945558703482343755776117280633228713577595564909243287454410983697286712723729471489156613883504280079134596406887031060709165985664172421490630009282146800244855627388060310487679665140718389078030142688400438144596115496497834447671551107575040704971921529204837453504035651888944138341120459999193104498297848666388741391988347311062409558676228884652730875059948945188341403686476262935107906450839340004328593209584915104546212463489351280529563161318254361658259552874410537787818215379637738273326515656793364518207641760441143812274292431199695265781018939963611020259447278954856379572463778010655839525564786455881454662307692004519397745377035591803279052553980796180360131762663725954222069334699150413869113649817153022980273946919854633203203832607905720986218955566278185000655777389662548502170025572621394865915195140193048143679389518850784854058179548549419061550127151080555875872917034940753905062937514671198171053471923219489097714699969470235868452233430789767245384415792581473169696894341782384740856124506064694357090992736453551216728924503676651980501866397969644264325138999671314180524865224931066315721180627404514097796092463442983787068228220084262285655789384416691907127885225133436757416030036649714823512239743155798085928083185872517791669817513248938816318277022159777290405169841383907383890942381494283530619139551409563139170541692867121584765167415757576410425611762271904964257563649074138054848901935766840892924392964476073442719889898278328594863940533212877310287716672067018134116618464216953487862356291703031655871031685538002861790577266882699255387616896622376740735771669481459428267329996677923818055843251136127031972720285104831312981965591979201098154984223098361035544007878378044921154530182080557816310658628113978400171167124318680525655607480840534113337894942708189774676093730910935199289449147407318647480281394080660231017752837250642485268641519370905154703686927781049903865623046818582525940543196797606152268696896196642898489991824299693207445366183004437779164940100503437111229452397862881917614337111126054849044846389793059574164199927255137474955804912147738454566916374657300730188319914604152271203579856840627542949371237346161160555778364570466475017325536412317079816428627758261186691767811565421057556750075979951591152087675760916290724008124144559186211790979916912879590773763728617740471699383112871444007514262566381740884629482023608824031639704307865846320001408017269427971069993048216566161415724001352300643927992111976893067509808057714708775128345052604658223291622265708806151465711452046100214744917199578513656295685121119959877191585747184975424590651945246358123034478660050592378491799855570499556667293204800372699640572489057663085043297503071052374103683252393900983477461747179690566565127410859108209492630340632458266465717240295115217135852404886094993044157634471684766960457518140065001454704142890134209643566433399645894042561711516581136367404404542378117797091532755486606050833907886178203754782542902164433949581552835629996784887547840683894755444703290411872254603800720637631224602411925728716166710422491206114547880767108756818747242051186563752420260719082793631799824115210677589880116529423512778679114737909517419295745653847252433617841248410764299495157335498910424147816699408248335162533845424912575795229048784251775450482908579499841309907697067354990927457480400368884420452474156517746468464399756759279494137606871309941522961108997819874330546859968757693652307783969218999043218901142748360652379270046191959186588465119779389909073153730889425796799198426128668775294328441073554058219207309331833316928537157922044767228454777889896270491342761704618782671278356119675121694355737961848470688067561111552895987606366049983037101158521608354461853937481668278642271844190082186522897035578295986741658371973952713063269511008923367411963555728128924553295059118722593834288933859745639442498667404807061518567473581935769883617203184668332162774170043715935262359898916579753893145664942526274123226086806667739746037447495097157708357065144551495964269991682154399137346335219640862086985011503159974214641918933744796032306815376607036720379883337164057503042845038675556433865754413081365803869802696423231157529091378991953734027610937517853542435600754360804593716243850553254033344480293261100744868185577797051181488819270142377775150777325856615364678916038621045003461219956278074867449431902668140708635625040835738143617327431442998203595853391872783632888963867968341081845086941000407343164619144831369293926600811518908015283603692319994741344419201456431313719164433839306121767756177812244889739112679408199374259324342582112671398422391856178464095026411053299599686852710393923363182538241589780157407620225616958049479291279314563645937218313627895161709314647904106091111673373155234202165212284784054111271853527486161140238549032943325508394603221218795175160583040834241806468275353664475097718338991717478619736021459638503105956022664295907680917947982864861277890808052673347790492633262161933424246769942691635953712099210272656071752915041271405648675655078088483192592238795934044257059430312439826434568349753658360529983626561363448471418232449105598950849391403285400572372175956723744936685350505711769297145135055010450756638871416259222192063413953167112249962839185034031832115647206330348631494201878174745287924618147295235778824366671240052120436392053382911518666024814587279873300084187098033176030958971172407881632901809486942117706698486055222304321815087425177283045420665008971073374208153814612216696542644768597459920856993250965152110388065390013090484245571183918455843900334360467190982239462707224406785184712766506048127690968729030253436055800744538257668338512942686260675035327528305449687782881832114125059225052781788494631137528388975007274744471575575638273203069379706355911675006196496480271437681574880686279206198416438471436734868422970613271032478033088824981575202404106017222483197236780033170097279921073011973867506594131402078015597572761607393039517614654174800318376518546027619910283052253387582930495136737555449422987519584043168831306120438166233338743388558399187466647312872553936364153748801094657800947535039003019355969530277748719054228591069763628635144737290932477477994825440678606348159850312260322699458193833441511168159412757287399928184332986828408465973173842622828077996260429547074535057125368186060654839929358947659531943532724094515667249932663462794092548679872967149987616263725967312922900106350609035621947616648722514475694766552587371381186678542439876288450852492932948857566813115745412636228765176850608806506387498513996887325350034808900205615613609960819276856590747426536650815905687846005799858990798673329902219315417021974526848324336249484458215152543512068394439477226656647198143132469027948852656763012805800059314449719392356895900694951765506482746778555743545056711229955374335601162107914654819679904443426583007988067919059042996246317084328512152641796682816761490823076355951524774938982205471035239155159850528542066379657304732716512592167505745324711726059396175423754550889098485593206261571019927370443450855076295264736930157345525960653182463628488951464345217753448770593927382261434183498732893688922328484613774793170398274466113406275192772143528386063784768108023261060813034963906589924765862713494812439981155412264493647834096623857047502602663447938298234987219345692271269347656516049237709762146351099312588978643492091896340475139755321034501303655037992501021838332082666225968443540112120180905736650661193449361960061921940303059426052240194461928287921761306757548599954753370581015039325598792167278728354676626065228754202048393522892659082385066831763597210951820800754069914879948886640004405219380965738719171508895744060539046319825913523965483577433492988949455745900404390865584342611965501790000011041794768877392600240049613749285498339176986112510786989268708365453867053527397931709024496684995581826557777202184381674339907859531755241039896394969863157797017824427120125158638621253213496325862739887315308599534483278039682118906671670513218322924516625324528036717814209355283996577996951222756011002867588214001137023213597066792221230513848431026997779784638043348325819860224582100133592972606736066861267938059520992447143981463935333177724786716793916187062323275267328024793086020434827134226910390338067153996148095473018075571500291897826912757960862670970664556829217908995271945663694716561992187943460634500375785308049795837224786792894979321336789872726927344675086011960957303751087766859575466281158201167350922847420566598451664732278926710010854183061155212626147469885726116915038356099466966006257325367294731659634840672357269006797269726254928561996401572605388261784638374828036515794526746899292029895887826947807549911837598639024231477492421032697612089560637502355935752598766690254606238931621396893331249046389808587530757777696415203687242407225415275153302123684873940051876099961658171149635010775840221143066537789117173844473810392578323845436502311817094949290609539910154711338106468063022058390762051033655745050563691254791992703621821266008097576840550067932051528288278321653395699471822886458121755014288556246259819092747882820922006571802374927924726319479951942042158993737217820057824437965575912673112605582616536630666625424930633453549528541214135649095707636051356742347266556291914016408617837439135082127196192707901593918252460772656676247287608039135052495024339881121793143305395223264641073923635744333034628558480401705534574375187039972560570303269669843861932995271075348324393070696894302960103226536133509555401280756399075035968644356060195609680410703646649217483399762379386215501811911938949047156942213304143303359593627664040703772998319452574212210867852734406251546629816009143494400204528252759826241828478234988678131113271389422282262086586373696320659197995051785220228203237636320426778646467406836062339668578342507463692065064693752930047982476723148462932794281251524296111675876218998181566992575629969941254199794194811286339101196664963811144471196406574289354841769715122239749678985890571687772933916387272462334709527780246870237245047151039212414737049706724681793916138704097094031779919788952018307448556792201783943966173017291102839420428493277905375695351822780976695099956483597349630738110657324729819897194189304769102948924919330703977434185609902600237614078281310703259427848563595917142765432299281233554011763859099831085110408023971817162285108978212660268612958894997770091317699285060594573015949367443082886533060637006610847389541915826702245519713904430285458482350706860224088874683480765151830801294764067505066140201585123913511849331845872026288570880491277028881078952832595312039124676417434605180122580554944572820543020212356540386885372140790718749631532794596269716536675555929874809945694855028928067427667829339418831057948524676670558780942980104106527811154350833335357493502261309277379027672494830232347027455195904077453591327219204942908060788292299586863012339517485213297955662468639732080511040652648338267357615524364721775241546674880200267148652525735274567153081244183931287119618603336671802572706090602788114469229478789204136809481455455464559258000351888149931781016813652497805884061151119231831825546129547238660620013203818577615727754111782933533203655123057602201343332066532283786817866566543109941852795672328868166635362918447772521882647347931841571628143901634787014988179138531252673549445486184117992545110620500318985033978936503292271103449730310661507745727365088341965357055498130524810865760743995374359365761124168785481200376246229407987166342044190547891988722055154747569632214003497055254861642240501158208860938089058272269290654888704689257494493787490492798486009743554129614909557500495849561144104172402671169189222017121091178814968272381578456816431304820610464201354145866209455899375967293651484640967330171681840854132584819358205972714491496860536989159822294202373084278334025539321985673977750304630607554712100407474934879739093359142714559788595854093500741900498418893282686934352069028943163030709736559732729658661851944558669518276490897202737327661625090234877603718432364177494523722888594213706218834115158284979879494597120858925981618674066050963692363263644626726556884889573423434627427993765761250099445740255462058499890951396998654517101600757359617902497725810197608603854065655962631326206230048323731430581148536831297834354135288700747147550700921537407416507338001886403720240955072722614510674285745179995490584338366460024486574092845339802641423832962774299937343541570730930184918545460433712858706477721145718243464399698442944185593870010343193316442782110871247893792579971275995536547148052089610125926786700498324772217053600247904854863969641249085770467955495436159734875763628795598723423086262161783242587036561775169082075237565659995739105924385518199357670452090937165661454801550722093063592210537861115606432482741674647386337914859539983010030336233998745482749607562498249704841141217910428254895243533254567411163277411245777043709063660375927379598328162600948830540101019739362004711121398616052100992058023506962909643161655359236829702896517728319493318655562206759764927885838292234129895919041874182967382285802224964412616973120529458686080917561245514875660332059006525073000030241214568158606908896013976445156709508936878275574188763107920287881717933759698304788683930247538387763468694557298553688929134078968036645532062716127492727673538404704405123816184802822731795543291972054933014637671344727293690384278150076256027531738843258754915824284291250625762100128300972376869235815780316265918850587287559748047612105601871539504947515956165452777849913732861026123652328856442322771664880734330607582181266796854692778122686082625513922142246731664333908138918247586149488060247981462720453735625865375115730015702131842013534647328505722831699494739573648745180678485608636019458658008788846884192883084393206215936444860305756198092754812842319695292618140044554794917842079838168479115905730285056468812079398736610770746469144857499594650162377504038982490229730634950444614401176291162991018624925261990548312096570455653389922720078600150328709857332198733863557098711796591437451965000534135032377342898135055476300331981537990067993148113127114836906778270092491463667962061128499939303020853286626810992235052046875965623904245346051928444856173657863859654622362780222346027207968285997393979709311974580101916270449493203270538266093063697703319873343621809945494074427714312056855958050474600410945409642740536191357064851616624318502618682969611086282920138074149245696935787314143685239184853638476441842009688086211224544403410449332032058585467023898000045046345575352085526468159878644860463927628310297628381326453742008938009928280949069677537952134382474390770589448928614019460793523879163160396848675568380518940384351700910990764240716234223202827820936227839058497607708519593882742418547872605232173456013737013507414953891421297575442481858632666890711676635820444057659878513993249512758787475441001933085487828001850661695728247191471014678804639140723301727115754379759694652674363143372738247536274620419656543539544682856354523183422856239271780020271548349626807654352827339610723938739441070944311963338284938329557733006536520157719890443862107962500018267451589796869556825816519035518976657600778542147823717159441772143271921406418807775041896957763241856177469219069535485992061760867615491877677015638780849028715666805981600938947853906319583768019772618707164967829070006799732319864477771104978034873126339438713716544831124508751860088547073723438419755304673610813876237881228151475514385954826817439177699203775708774033493561102779819739634110603710496793191261304450676528444120804039041403134180002962627851981844753158362116111700315986181773304944253728996664308186898945702282178501517804159415387629547890330979184941040191655571906499707122397409567860401574676672202102058339024059025306968272017525436327596371018277868359927168291358597445119036904444632149408616581217481338539295226743233340934903327111183797780952550367478238985630002138439996742843361570243175982709954286124044381328776579068625777286163715304650609791870285973990161737943125314610731341760250049603481425811334393323438230444524194974833006004169334870009184485854279194354576567862227109707127964468589388458625250166678096008361731694092535064674435448477952299199895921895986105642469438191951367917617083015530062762666314307625482647449442997302750275753056708351416976649853999130207200504151419765520662933714476525277616188702168043002990701980764090476942541819103276546632067178869843147396107000383016216353769889574701747673690263862081887573253166113007860596144154122358806438381241666593719037408786352862779997832356604969467308260119264563183628902333177891274298162535358358286058458704566740272640906622036932094714894320322115614936770002225776462240311393002740513826163714813772752994909151008081303778200375142440938473131330106670110517960293978755107570274108631237392968030921771469438994661690814586033306699683239850164106981157325720168238238429326904851169838131709311227700950407419811243724132813694468804445937080981539723722277313742459781376525173474427446682156537623677273126537575776292032243059082837237851450703244351244278921502146197632408439316051731480769927439561140622729416792664210280682927965226008792684403905233708819803471223561219208928854431140314138727965783617772889074671129380602184880830057969978163886470060957253325537835651590907935202572496166189318417153231816131250788168139958342449444970290148884528386735959364844039275076183812701437010126901797289651049092027333037322745442915665138315753545305603444940384856776326043481904058679721529454434523460615227726622135723955237185902930420303815797379451094268193991483211804468154519894159798863631773664299917843937629506994745418868152037876566081979386494363662822149126497070469214569405015334823033151190652309170787826420298009239809648328296179174159091652064379458809287619586606804530920589700176238859246830084089654216413674699029215218160281451922892047634615536411330722135139382802252682790908093933566016706837447578891811266690768107296433383532056092330735412884729931008102167785725056762714602353311934447879921908509435687846549238180000512919764737323307461129205898966730674463408428213157033373991561442598289165953151356485952753180851515779584892031693290012236695846962736002178291303736673904129438380379240147237839519215707276680642425142869554696268392140929806347491135186678188562040120266155394432954637555806192077495912809496694548737697921779011425519599334117455095169229499999440703003258518144533735080535945156311842066316018190888062584211096777065148682407108058890515462238826127396517503714765832085989420094704037425253653220102625768447253122609721516896479746540221452981774490989822323368426585732195167131151364486046560829676796826695248397157082872030385941274964548042965315135388802138036498445043714490054656915931331551313061302012601017684608120137090012569919538899944394075634238173161225432378767584305815470122102262463717843624849222888243149158733296650243165373921365362567007950166234559233474391660671043466301016726682938496073204468289515811017734514617122018447341318759182154661351260259873995845115904320078156327366183384355308410630707517682927420877138146924862908454889531074721557802134945723131816033101482065477452518429372650116797264415896227926714740642274118386902290450179153391664631295874131434863518494249413615195733923583592604181333694156240446916709442042623458437588609806313427628404487972829229757231034244650919834686267408430879692626619417327562754134655467139204550634698342433270404785388506197287157895367928913773168128060883541080024529049085348214159836490244178142758753596641567837589676874370138869686118986937367702038912364864457332672173346766770184777208035950713113397459996907100431197031396231672874467414674117671990929289516373743924101625636261317998351847320971787028109586832304845068096727804341838174430847674641908675820315148451205269173803537114921219179310159008167143044555563098989932773825167536760037656985544398511274359868796653463891539925154998414496046300750903876021784833344918171464025712838308236560175993255351080142545260835064976537988992747604566354310166378202288602137465260826071768079216305091692760680443727786896887229716052204614374541329436127660245604934041748715576754496060353092573721004416218668011983418367601114021429375131121781620866236928764464584816319465086911369156574919379388600557301186918403632625792148412199499492628448881362053911247640447757141372123368757406812411549749548566710175305036765482280993724764684329262191234158533641062384627624405438493143581650284417854429323209617404035029811476199054537536937158451628338135867633906286090090718847818759639428376805489549710151986068869870605857225141191607510326440963859547871195497813671999932021751501848208015779283584392229641284606291842246875398415298718161034303442458934263569455692707363477928183282684712735277474572806206852664393337961308753053162697383225167794937277829023595585364720239546761110983172648720159951061520835704231894445740739974359846282820864653481353028123653732823079217207832176604549540862297364544777984223431280501041031678630883351337231962214061399033198214388409848561167260896412725827766306642658780029017777489148477181735776623471096091612239911689516412462586146669151327426029948410730783479033317115620199615568786804333178026929793971157056871966581595995146996690548666155637217201451810371594890340952889509141425331922001515128107072222630285910538564679046306314512706719341210225956486199498686995146747736184528023924641118959877646156681910643553874920931011534381270319220535842955348422130831269645796190811819885395974905228367141497353490092979599507413847459461814046733738169570067907957694908257876074975042993985041620891241646508213513415182315191703312442878485094205218730713592327583249135353992815421260157715554331199167814351985694744573984695809882361791567904461290217910546204486569898907449393152325203233827099516751082084573459178168554935544403311457063789164250257949242321026838671111276372171314026264125895903270430679643536966207638530907240569271581388971120651623919234674574703037960539619659809121931762831886638048848256835023253251568856168589774240846454321023676248003921655011694884394020527176562855824227560892435895256800075114310663049855712912789079920922174348272440123868002817392005227680781724529004042274588244976161501472611400219933555538521494448036820059608601303960403521228507740318939495000374445861357511157876777293293688012597637764262598753116567731805729493854917860922289509467204227334017702202122358261741957593146716451463207244528742488596583186014550105791970361597265405912169211271910234051766260576902923052325089677555162640346213971840004833961879304070379122904109268232746848835211425308803183645141279545368728409910636841399604751618438480708119933174676665590706387975470209839212851750296391208213478022259681626491564639233975006793927761886536140848684408811687040818279342764586252102839143888835047437919166593370279962651680659818273452195005765998096778990307397192184309196996165778344886981670444226658733249290317219795918297208431350223158995682981915559197281494803593404995032895095395421121181597488358090517308993588624604650613081217703295678167995554196550734985998827881103395047247270080196448211103256002584098667530317968761032853267347840937464356052010016020739976018983418189271125151312077061551937133378594250221703790292628924307115307466495338992055598073881130622550562051561287550187709062552494878763779398212477558452379341340410370680481722538729147310299846625989184774527954474044369306967877452899977277260542177637019942904720653601582274012616011877986910199245558268214536750144790272953193171383459345033211713332742657098347407453676857451188684460173804741552834422667863273072596652653619383661792573764901172006377372226099293817629879297805073321046993846121338671942249765329084539782388357280364323387669967619682012666543047850627495538546804520892770913704047758020236163641482162126223191303090246104835962603751636839771820238384742512283578534336652245621653871077953939915944148813863299876221996076552986398627930345694846088004675880302727486122002803576490600461028053134244426415693610086739058343564483186292031786424062510159233443448837084014729827183969673622224396613305524144669499828877608625123433706994877840005890453291088435812514252024806981449441044651997047078970461391171141033383512050244133991836002578023410360738644919333670332310727783955374384724037418389459447935196484191170839374224502756850119565425684507220504336462136294019257120317859766256461046936388587846990100925510877773057891852117496147752363134129798098933327860324909198208986934180976757697434118538098516177601959957661837221192897487814117612555414635831090177857843934610223951303067943134043442617071410462597831749227791498936025134401112474954448177771209322799316027076661771909710392716005136024951236910939067388473687825795637596663862489684380796770284133161400294028596541941410370151948509393305947240514374366100711465549822892392705066675725566587944648403338201244872761892067349283484347049985951262632416235333906937857434059566773173761405284965088186066916058279320627921851956506705214206512134650072736064959704198120588394480581830833601122597983127403586499897224954559644489389425269620821259309742532227778736764253441193357074508915673797433372561097221762696131640160179428527149380734850184850806709752962403751097805005131854163238313054564503361870430958693420071348731790275438232665362136005045962851643856455050219284005032529793106783291724674960515586846536455081653549209729196963913742881384777658411833267245405056354989370360000434841050753274318777296694358896953753556267128649332364380165934862622842525919745519303104464780962692432220135788523298237940170936124368586350995874188133197155726324716104677720440267460567554446159556809420361740914375466373762827862049481112069814094228375043020241782775022738567668577530005371651786417798712561589664558258634966549665977376364116450356875479333119898587220552369623063820031048228250665374792819186536031998759958247742233852342634084687499917619661036587054083173095743868254441862375277558413224134240772978658052479722622350345819762287446787126444681955937950943745872486272929909497144963695759175774528906325755274324076144187127555220145781150986458613603258429018913976769882494922893221956598345028628930561257318580779474535680484826592767036142860445074115109314736091119704958689717062390320794521699439037059313571407672782528039117249533812955676266298282363760726708589100065348754165513168906041508837390070203593391538004504747771929027295938324526482067614250700383637257569834698462026249847666057853437382111805276877168629642504868395297375339514839447204405723630672361795883427795318980020199274755065575348727613239378837581223632921440210781236461455272347737040937503089780160018860878896258012944308420189711670731119311904654286743681261313517199464039611020774645831715674646462168173186576343216612409226612426746828680255342469603567706047014499203693876191459778645606255068229941816369581284363138668394314947149821276047599935634848089031250559782512168155781510648770040983081582328520321425678145971552434177659113851273779075107106579691772291581836361339019476599372407233020891226944654096585296696017333791200187817877381620423202969862809124672866264161180332988826920277698986836037627621485410288001597176988680861503834795969128037937604346950977334215943220895187024597172600669923222965530010118931541060035113927828198187777324007981375209279742377936249438884551990154832505882892235100425688267506311175079241561372593667854051196181099118791913320018525121238115597751117963082228466007367175732507274089887941681308574867319206263682512086925267848380677686613160771972047562717286616090404107131902396720831807344004066405470748945181831213745639539039893731730072638720151665153866819534723778014734571650970287907264230527881178626528323866961099430160590925576059114405959684451163409811907068593623102581840171186141344086101382308123347634724139011874513246098663411287631237674223800130778145349246830222028588097235356881238666660775949443962038665376924340902728455368709896107018436886564537449121344510642287540183804340083641916519459392894406796576674660806354441552360598632064939591208514471068005309376479429173378187817483097056034101491812373270243834919363964495212569544496989304059702684031153090377201940087506702071352541965436126918671542153241607194874638754843222345681661990511190609658273450430097319438671693374887202972743323373422188051180393679822354541450017462566033628284925161819428526198454176201253889914979634530805918903398347905780724117832329555349413049595540825211277721543833199168281948445081036010126720993554952038202414393871457650054526969191802526905416846348566631493171712511054515324905710161264758162897391142500647920534665745066390247869671510076423075677054469441555291787000603652011344252675042806172289786398370692710023001030886983959020391419134372690088784248154453999926071300444045796812402987696187505865160615408110952889511049628156851177253049920847304209652750419930991966294129017703329496014383401148582703040015116299698720496850275197324834122744933389501042372394018599492677647968662350727227368920559314074643505981172041136879834671066356394933814292379819410944165063169654469206851827119496737560730044162313577741380331386199641995851472218312754620974754862198128755125841251941540378018567451351799525438958741170641592580213777649634568822943890302697236637365707794026457515943091635962927273327001442930904600036949543871190061982069745327981438211103484951029143475837513563792525855898461318050400722024595512251541411294569393169066316713850283196299090714012509071288933940676269513171852022795908563239452066124088673203576144642897397577365801726516340975398154753068911723157235829531795470946793171648783033169482524729158852103092308809537841237635043699104381780839649925131326295856772724662717304855571953520563465687849040491558108704660282947327312983967563696452897789867705875427593153563176480176216244908688942311831387344611058910689267893449803774377149449555462892137008473604802442321084257723622181310304983606333906999810312894841249629329683616038224108543372417485659749996348736862431886343008941305792235440973008476833208808139634429051070385903447859664181429320287364752464711737260971729973976646255814518755797200868312599733411939343489683295924207109352112235081934000003002957135804614321006216706612410300572599096156165149261728992382291011560869529418559267639313039268863507616961543141444184903772031334458567659429433640318438742065469093623456837295876624229908759430853648848347669451026203517921643006191513608617778021655272436186726447056721263983322034668709131073676984832623907945143337349409222581504269169674408102695965471680867908937527938846503611377187189294881612152496492956824143611096302272404487463178926859811129283152389649786046757504420003706760003573422967597648860311154865767612608984124550144177582019142485157372994376049866838838017402877315294296132174073204738537699803961125526152381617503779396633722708648742451425229366660175739921198066027703519982842913463664248210315959563039290119583389292371320166876654333491046256215290356295453170250788535347024902758175436418251607674260141852140946828574948394899696387177507971243083034613996549777891498873070537721966938327490123105922222763201294793555267660192179724712440471492449318059804021273725794903480700068048293421570895654464758619460209540989246187098072474419910327684591512323043663325770020902634282644595734273807935544719456945819820472698421398275028265922121022275391358502218367894077185340845308546446210069300923802534097951896372688920681138851759201928524722883090383331142799075806392867937855369245320456109895383546603106868078637347578330463644100669312210590084920509400847798790153529927840133668605659978286748979188117943901060162417537306068202715667238861633443590708779242705266258880577465377421485589042783621444284166669454917570734924997242025114006224759723307301074504435373064116451640407581883082377897603081809059214625221633049618261293263681816399439690282203053329423975802466933517721404070623191878714649511679404285835402034722265273282491862661019019695887310779771254792368488163869276677466637749634389296732756835417445159680733791413044420241368122960234434034742899715690512763841125013300611943540217320210087440132928377150151498921686035060328872156619458907560784125899785924992738897677597127074128862230428489296884527824210922157188464523970817836231367357188148188974550038887408257105523626174874928211661059256152694566183007280232128746620761380853324667208700434173502267456579254998758463504158053638737819732730333608918836087696707268502417172663141360730522170194388610768613260263030485543060580751341219195757350333001503086443800537365681165931572621704758431177497282379540992387710713078569738552798188414211595031818649795303393011917170737500944057945333380473205904374237967886083016822183980651175047693512486189220552720607656585256838559246142894630048297755784601146604707582503757862547747958876920057902712345874766210429185840118968435308479534543048526665367114916625945814949832090777371743765362541590497399599087571348868864706382481944075073551443221875659878208757466278106521741963033307235783136332047874580760278097065451316851771151275449105286993746020978559828525872043634257379315356215725514663035321112718809602984761446330540311393570191313432147504565028610234150118051018744948219289961369236175988341755860744359066984526912972163983623659664739247370828238342459800647161155162124170374979817015221688597585210867124957938789716220458579556068892029679036460249610145677836146805361836390891649648877029456336449754931025144153334350211221192299014956111559295179072831110883916639211975912571754064851176469322910096494021832996264570050614991202685584239997922491165751538689871611986903639797172261610702128282538543115957133570683912665908604260559094472658557473146273884732666581520570625599918600724178605917409241885895297425548401052143467628895607371239145960237911857094625630188116570294811969324675501211907282272879722309018527276449226045035607488899278201643862653711142272432219330075218763733827735000257797382205306245219312568816184387576087629323154300921124585522618638402632732138275006994713129897563471530124975883723777258028304674030660686445636353808397170203616000915040942708203414140570696011718808668025613855184572486753270466396044234807481025771492225132746698365322999404252608163221390689326370528903483030800489073476843488939225354381734755697901213452618882241450930064942101637902804742830430592666690724012139661274971693598537641130915693243433425384780487198820268812960726430502128770719936899212477817245755290620118949225065643604921714664978850465695157124949264595233286315173883437660724659072335369708318934140343105490107090320568676316899820495203811586312051163701792148966853586065495011588753819574065768321393148088036511630475515235811114602316969822206293529642278615554478435810966203410052750801596994630157538654862225080651848315937791018191986363248406770104769910966889682585269873302214799250837159864402880929846613724305144135420181380498683300286105542101363487809424007330972806402010202112587115449381778859257897135416520407296977169611853430478108591435730811892030231904111325618659480823157960854644909025338997369912679200175636441010021422311244309891781964877867221035453186674539916780946400585159918027521927737552208302724689616888422471396820689671065314351659216338439777798207536082360270832957573405475681948709696319228468934232725493292009548152311738504730685519852069656724535843697333555857552496644961429936990335855592857144198510162790882856572054121718735576008082493811534087878769908703624508311392913064174614764013827080286433416646998059455240666089431309984360406205314586301938990912896230253236494966845575269066361778385207098408306329666707625015432912459202861903509720965890430218964453139456666535575228988362930238196346463300028154412816107731002698552895975210169221057595486269531003217432576523258036502582095613728981691894081999675004172304672751376586297784860823041779671705163031565423949255400889729707885519046264617262818985409995455185432063934153102269888088279541675546828794010307685377565237873426507105306292643028703579473605301631468869744840214805070095711897056336003932634513584809014302122309852753127274844256348377837031931101609264645802719643507731696272409948004919883469131232831360200418593190556691377835338009261877011995492012761761051665853864259416551445892498971535206458572699473860899536174646846629255400922430525757255773584972777696199739728468708464390660413436012375128042606662283176776642376485270090841004051664989530459471177895594140705240615005604693471804228489531009353559940140597217226872046715686529192575174773699267539550087744493971797580678952821262014137423604373261282232140550712321126050780834172392869158692303127703448385425452108470713878998119656550494307088874633812824847708959194004349417205568462550399803925159400721828678274725225156961269765668741748124436628494630441528602189563783220616405369214348090545496938682477553367629070124280544469889197092384001931400273957476426688367104065309129485625609623862728094520798033012714979546666150324781539697480407661931124113377049909253834158614300018192175836819520680715565179264476856000989071309936358460197367479760653910726791125569109006907128764801182048493632645357158286502609052922478806723363708481489554929021671176746989147867765221944606367246231631851824282758726324414517809226000083192473109308351138855314602059826510779133143051870615279901355437979859611093700855434107422313333667972074948281109650650560177071834829865904562989550967841717173715041525718039158254400825914306715047097824652311774980081386450227593081822845873908160720830988838882242020161418059408907007428483459159514688913977769810910898554723542018041130340672747119758794794737030424142892188417860398702222232491373615623066719115725831110510621230612100353803823741720916372643158836481768256478413120777071448995858151569892252792971344726404750416761338822024243521651859029137187336568200754216615056603235488466178813464839996190969391130267091621120154757898465382473044053754702852033254366662411726743444069423184643560311584376864715167186675329625969479921788559575446227184645811744301926189833448811397806145717148207083360365624666247871842511601110079680257092530752765986945847556144817274918679609682503565349681386383939272078988924673104824751341607196766854125859413205417758509268266035314279147226059992867598504283757944797880997870768327623594525304029507634046615116381423211943748887207504423453248214258674800561659471437816474250270737759547574063743638130868736150938956504149897625347531138872412748911754163236859580838489668318068164649994772486296471291757320235509331696275108077713051342220498340589277079615415278798644119863229040444030004019312199857829239021188488177356514573511386885600603334701450343195767578264060635235129167981219341420345405678047976246327447407193962505368480968673291303724069251062751696634641242232692852826001317571507788569084775199530579971259891169096703138210547557216997395000911991117092762869120105418833237025823894749359873002849821709362200191928352436921274372712200365209409978181582350587059686622082101097592215461680167662646228875237103890481312468902843540643403260027950445724225371073427360584939023309016145281547408255234664476839912045218542840138850591763201865678211858878006151552616002133918445663032287154188883836309212621947201934941109052209712743329259698446574229283006667665498775517669554139546101577975088634710013174296105812934845425757834856179256117925850417214533944664897172821190744050030970571642753272075027769114617720194137530126665178183100718490899513315014655223794595061839500901410734969831963957277083408467448135124133083414556927110260885859250809833827144035280001906077112371599572966048942269588703978561958777499784694054490621946007986594011124195484994262512723065662006687340859284328659123369168488051594873464614914215730347369136715945408788008081706303149503720926073853134159570398189096032204910412298330687994665685222341286716016931717759847986943000915187376642334600863762303627668388558140695376665863218522026998128928912441277533946988600428135915609787399171926665388865857513733439169182348010505874991840003790217899884443026358797700187868750330254760295345238538841911415725596627186570572996459302198988455377004438139533597352414531374282142949343756784528099892344129191184103284246741365088018347252314371474588254794903792259074951123825347527722726591560612202371353795467684237996246368071483407255102418754894449345846747698354361627921493809058159589684268723734338474163778604252976750548479116547577794676725819837343717296992093490914088557594861183325029590282468683326008281359703967587659149280625061744478313611023272278924238821638429713079116766538025714004639389770967575929221899094762845255162612453900277253987528029497487476197281434181714410650728493867499411536153335098808281634588051473955327927445072865639142600700723794448369397771600995974266147018884237335630216655512611854687500481962761905884632027020954716319782585633550578093497659559035690331171592106512161083664731424255840083610582788196016963301631495316593299743299945846111686943924939629302812924707755288810794100532404783254086394161162482932919623417470780801214535211539463256187215122519110105171048669827566165555355378666094367974180079191914823511176026708876865921454587544058555064788092865806105924298030091045341589362634893550745756578442052703670782897915684591804982528290307827540329318472996308501464138205445430133342749182511345620488814553646747786237915260224333735166529159662733393251444400455023844953320503111862210411624136895371049196462434199182357787426556459420993084300821716990018652373673806543768329166636541391498281916255994712865248175513623829107944970385602525697233009434189809707914540626453461916172740101533251372507547910658021156442655963918743154835293652895317834325231523850662585256017285977620986877231061664736533769140169020636741828857535601318738771846134309684859728971395683586004735881445273190114373022381477613635805333036310711895931832270864387693603506061819425558444555889540575240333480602366624901739694596735353337834283386493268403322305226909026226625481545846615592093620165690177378860279094557789757904304014589949488250887175640294091325502543621869537834230283550036343903616466464567006907197085921340566872842460670556252392881910574543038106417193469619680680894017546312084408962065739773569040968971306842293276924546500570883892644095972341772275763498930497832734783874204513190740555349873509722000798043078831238000766652058531479130093245159107474529490275214992122798301479201729884463964052290760083330840320143383978457047271401105685216822251783480352903370626521227709545845070753633485120302003034496149917793466046385851443204174338745682034096818013331322170949333972700929910634061800512446164549282457304630149573728489731522061278653703692276996339730142961708082696883251844152629044952657571681038900324865517506280119720453930455242506187114958193940923309660950803031354776061933435758115871918394029285882651505173400976318508545133105408519658538099590856332121145943988061391601392453567730942379447180018829421581693507561403707369791313300384113861612395353668394627940065611171011794215581736701007164322485629698670119338228098309876202759286670340358164949530974911171341832098358144968679197137541259272762172820427991973379078609052617225153474655221422054763741539882943643516125698837574705326564468584291115249932317106462072610423153444431650759544675918772152777824480057166333713170475574660869241748882530869097187219383325609199386028251040069256673672356204386151820720336972639222140740916162068798531628242598643170787269813909891693859949069216029041949961295248741967469287377978942255413804761861095086479681583588502957203164346834873509629541363498273791739307931874501460984984615392809713244489587224127646860599928276117726870198985099566722626298998544788707177945121312162017280645577379049566189100186742497450834222515892164319508918635140079569385699043665751162870316035831790368811243702927634382726221986068254351196994829132673531116364063680177793558174325651088585453431889152791979479158255413364894978199168795995298861120589372536072034642066612987623481226260594465600703199531910437967979745359631630581307812622526370439875437704496963606189684332308649923158110068844969105786721528425826682925792517941907196588285214054017312939961852194270276256364050107266327912264573266440814724704389455467691487193410738868922794671283928481310644075327187787368211360882944072964142567447909428633219712860551043247948437365751983491165252214573177554312067580306237064077947344300298961070978973953781817649950985343963102068164129234310667878759011220006887138099455839088118148995122654023848741414639323770284040980038328666036109829059676286920078936843113732696365861090994836933191558652821014161601434949868231544547387884742404228384826410948733441017263719833984599095114441735553383527652677452343369694040407634937733913068580762723036810590369411005794903243461617195201574639683287172944277764985548636862789436189025675060315669093859879853210159316483955975995326642643252937996044876572884013083032969977205043106091772578340711831760818500139135939300473405676329434652888912073036018577681409351978898009996331061381743916309645162772114991783601302728565616874864125352167948005292630002099421206320511340227659341975800842934418357328512688110192968250031004570948684376662759817594622660563198292211661749897375806191462911471709309067098011241649579492881948717966222768434656127183900560293650896795839309853734338539345462838367638895128628906360149035029900685950124613111260950750461534736178676503387412615399591313404075103214733918776194819787393957964769338395281897209029064488155604278698523368575826736326742579123300188286812989295028273610690651854854464718594312789894954276804666607844799803348777306675521854513310143697610419851232497264662459326082041548996275490007021222624161933837222756932313788769846030511551581784955581386450383884474420260510728931549490692269064301593408679769379649672892144651494088915239847639477585633753453487410620747050528070737357095689629327728759193248342656224825337473103913286980748964159755091526354638583098498176506534665329693535427033390235066948797239224193234514086497630629306771041692909691990814688091794695403908314745262245522356351109674909902561447904923593563202829749162871584228353055548129392768559638662622419777511765652894331178070703884736577355476020510429699593750437801185919262830299664358627646209468622921541490201783106976960072040178628296502527945567584413565819578809241362367797005790850273831080965168848266330319724448360180124003119274006554189187798053187897085243121670871963489297414916138233643308762580350226507262083962877233442162642976435197169319202285148074878774610457473152057231003612414496778340567024509220675368477768927301035204045611618808299614384921316726369613914919471306099876240304187182459486927590275756545559127063574105345754514265388666769710514984147007016990563955830047992967858715649703842921301520376958211429281964780746618225151070426831740564078412468333613520261884027617632264337538398903429206504375673831145586083158829446518299533110752523684068015031817332592257289216451711953794543710944721154453023464171613039133549541930691589778609156137424813925726696423152910260766809554375723243204822919889547062143876425881745477381225531727827650127326975549883550692778541784415570377664832228109574741943648196882762430733644934743271889449584541541707767774932649766365456081527218499202457806044023219012140520112169556229632500207311611147090327281965047917140815535785759214230989834891538232425298195341316339061591739155683453845872473076769612751104633668097931745908076432644959105635191812214974380773154143567631236468133977894711211979564324644109864102615337365057928271806260432757304487522354811045938170148186500883514567521027888142916896615329103751932059519826129744621420031057787416726439544392767424971419053510273923130880970361032006161997981542792100094531060895732714823515225333790843464530273245142353085339177108226187308420676356515036606065762742472563497144537757243230982186075227765632853635162084583317604486324387519403843621310380468511020976814839050387790926518741416834053312709693370006742071579229105656583487707922662692411404400554209449459684843511214021731273757666434416001858687689596527823996641759931934264918696708378073610356591745976857956665523646191021868160854609688321432024731480543018761873196165552458511252208518337173060161211272720757353221034367496094873418818890439973330358087633244354913405763037121013324240858360861480391302366951700429865408080669487423136243977592935973337169756968376682090525164779487561449071798259978125484584075489209104193334571540792090864244571958740288949973650007765911746905811957714470618767978272424549442495188010640888103155527319009292091631802448116415709494759453754953239833827800944150417304879006646731920064534666117628220998871041890583688813581374665740980696481788623243135094035621095241371023728932976585719504999534121000131602094065738453220752431140312716343261290279736268243038012995394093960677735286184519738914407835627923284715833334974360631842934456044013771668608255466339070980258880869323065696133469948051485724206563271939914252836501265672844139874056348129860446586385181532618096697192533148858138109262975988971231961640931928250767263064420619729096229448886415139539970344610458673470446328702156054967740455231783083282840142711184722302472629709706380299519644753884329046464207935974653256179327361949026716305857621899343487198921912356010115259372743567981507635102241475749658479921829411041706582992112608101711988078681809722306642718242951317823353593066913933224074012908704924697794066537724125158795440235433387244591648370208451844419950557226121264674555181660907514614834825428248599686736481415842653706499101870833453098527320635128298330069122548110721162585585303337863600833157486104418500205672646490706118974869759647683808738891289000421912546046496224812728297453299692179936317848624827707427948439823780790703904520420842082677860896000879085104368616835009871177246350966269213441098490557887716968035685650585311518357853431676124047909037577290494016932407916654235903414632966570169551909190255139694170239754498176767225913979227562931313757239285907493553439500104078663719393565986058535692515103101795489766810169751686374828440133044475328230649705934908606893694740320775418313583091646830184354258446131668245284937092337931105872620496553135385265979418527512961074783641703998653122385129774788245843867930687131225686095690442138653930728018610264634238063349040432277483026441176421655462381474116429775658888415510242055108498664704862615102797331685418659212118679799283890171452298255732186972713380771099087332151055115901084235621438720960847708362165469907851900108366442723084645055278774169156001225031692006244461877230435630459626845944786706389968913882041536907318136792727690449438476526475852830348240252611003671430915435759690509070334662775350712297246492510126370636702431234380267059756636346660458410478640325097309304483100138726888168537981121427649205662520990484442492012824363678240021987377541176488815172419963943838223296291927022077675003835652233533806069699094423394399926067902317381712870739333223583486664871596522970415212706765466935791899654133621263125960941353830342923900784894578745902575122619626203893138929163900200049335182450467828373856350953063839859399386416346204765753716187746862512218882916917347326364318570294649413919235732952147740569398459514096656878453943673334973083611242491209953143247156026902648472081695739451707584174717193913988449711836144574852769161861281636308558069678310876330576657875292591009454696551662353181048136111770706005235769786850000279890611639240966654272721950143249966889140527331178746850410298163152222083391717385120810053056632172998137482616561440004309301939957118094056187683052710823278210545628688428809358888113696768833434059902112595533749926877199863435778938821073444020382975994918367357677961899648153990074896734365038163676128411794028770964970068369042715342830317148164949228826068383633867008532454965202571297641815248726864402552946802453874693343821147763679308285173617405873272737470322639705581486340149258145444406190788393529615374896171384855007865850230541419128666611592243562322109371582020654968244092378037699420408777591638722008592216534623385378168400331727202699052821602928489153897987116853314858536374439284057668077322659817832118337650069414235940686320143300160797389381919875067685515536568855159706495318630938290237665614065752440776896675697123016527032954842589914365867612189554181507382735294093242285053401064460868105173761327329814128022376554173732141121274621162409449668053555566874512886656875525908168662107981654688170935347455356122679831657706080912590520654246167616736713501687606611912162089377521602727686407816703729702200313652666994276739163499462636419497995216754652224236085352895843810704105426199329386608524127237825616180724150273142005454583772330456863643987523039720726939622478241068212172082914312708122152722784871913874041222187055752847820268007711071628343289160993271985945747144663141060791167697651652812732311707137263778730379950997630640962545332500571161366119802195498568352809702636751951870399866482608443093456100372998693977964258126859392581185765031255314105543422272373086807935763707417078568038281275690230842451995861827948707836826763001172061653499888587018407730486991775565093248125618693442030804881200299847114821067493734100721744334377055687821561549489732128542734549257698298036979961033556851421524846760876774458970224274490767019932158941490729708230724605784100766741771602318053875810091771966437829323471816457540258149964605307132801874902290211005111307074626688608535180116457546556209976144489725949897871636717426262523632172799574947168581116254599284022943704258362753918202262478370783617311613552414560082272679870952841891073284146221389911518019879167251537504329731369814768577580797065149651167407274449997042273593976930774693024998935241829533419446922434081345793846028406643543769996068378715816754392602920848621657970781632853350817830932586490905523634279609260052298033305187735138444605953260058453115458263826048550120119555795950587330701690465660012319237191643139023498891724098014774164569367240168994310759914529952015804250932925817910528930108305146331275181158210250497322483583162133973839056354512322200611641715362806598075335782729021173608158187047719428624410029503342327671333826531313497614513858965195140249704743480406627420217163419213602284547056402662638583170582600262715492288741437093240910053560044595383327712981231033616268622632009012072364890718656243134027649026254609720269155813337790813751393986899885218508632335087648568269736953960395319579946596098535507753751252878267168592276229600802532904573570170392150364733542702995431446346628063454901312347682652998255571246095880176132028337741526836641067382340733453637902263840700170099477866787786878589590840424901121976460135440124372145797796984666792354050812963428609412848872854634406980095418928015220664345852784047353848990362113142794790475414171434282966744478588307482709496360566681958706809710480944182219612544766795893202535607232669277874702978439871914256761747186364260517476575524967463916583854053094189433276941832305004600608055488293736656295582670516856107195086574465340492439431435086045072679608446168388450472025183326791829082118918831326558708728920908518511266363598606930187175619419176791329237196330542991634088840806159288673990256699899048011877722114379917946575677929747078643445849310444968434982968028004899289112985293912090054882428173132546519141532085130053809968540594996128596976575615881758436482524269550614316027361145088692237319275146620270021695002549181827059577306040332470729301901310749020584283409150967036095941840554802615422861040122397072325326630878065233007715723883823757102014461923757528747279661609092143890385917698291442604584245240195831587151596550094436534227718380546595237004600503478935149613167538733733529053278396145126521210520334416317912927324772525573674170289704336476563123832724723395742978921796814025504815211243743291464788447330797720431418350860812689735165152032274173527246097230141939185467441952161863838089574979979147845090199930338090538797977883295261164138666157877279335633459350059283637506742408896397524997505647262782596856363825653965157855564601319933103681536481294210508984141426504786541445023174915047340202441267930538501644890943615807563929442087178645713838267140925876096430970250152844671364823721800115837484440523792229801279437577284938344418828976588997318094403180378997254478514386790422220304192658843340256661973391243433855894001860864844674789060374668537727747058089928452583230894933555996598785434793181333478934777659928578012557549846266656915376670421825938149951375072148128131486376386459028043571321212283264168210465312743216485464772958047805575860847665029857954094615397584015729865596853085934799686763310398234909184887772874988102238815043534250485725614805239032576616048016151234684058628107054585098131629552621291879926814939279720992022566627780337407634005716777927405419433784994041912391420160436388384442829754123362682378950719832307510386800780512383637119011637150640666278440255449544575055207103331098015355964451657536668841762128461940110989411586550696308991520941393899329878986043278326871916800253667070337759356105713008716540568038183026200733965128539984207940039484163368727329853787765951960480328299052533508867517304372067015269977643071485464001911122957475425656507753121658398090714779772552215846844450763448383073958978498371145951904749680066983336723093645424418659702347290607170286097061562166264282368298285407256470213552146638755717936043410949932189646117623819806701834713747924864781146187167747799894520931436044820286534981489726546805793999484561900198857272034117007520287016116028578855891387673223767167999291569841490113919100234340046021980419808922553345899608495725789102164350965576703849827075028452313897201087598016286689616838687550854861992910988798658809020726790766113546891769400354168527554857009397594170959436545542455562720962660138509938276388068051210955670458482447020213951020119777496675480464147105331798655924231871753787735452215475803388527714930791497007347187500054350030559555246481831180270248794585648858604997341839190936826099098368004165701568809206507783292661462413591615851507713557577014481545671416749800819525086731210294251700039279125317432904016892042538909159332744918502985180794192362533254916785336267863781417105770995580211118649034462477993536393566311392001257097749674589883665388825509765675598384207173422794876131214034186172845619012505512292171898876610041225282802691127995780573097418828905504743048673232778121908937346474440556769435687559556912993693751710365303614230198209612696201532742398988386859464365342402228714211356732121144727632444767107434963069969407368853644480467681574312404541511152647668708452179494942808964788946968280178506717356695217991687262428875267598059250313741162261012780017238953979993736828826776195676690850442854266067866703510074794576513943290612460506531040313919289911942803012124697033844847013646686080297894829612583918548711665405874201749938704437354804530747292669550986067255985868175500506521526178805796062205302695252580150534532330955374098100005215990550645104168023890484375277541164563659742245163110498626601196218159647667538369703249336713461975402181415734027719084237637312402857454211173975992203970059572974551003488591346207313940459422889310841600337037295556187706042104985335428380698903162589364497367607084893029223359952813422000895935868819113622663732260958535941307088078290741220844230443047881512814647191190851418939063145713483640565502102553072042598638660751127663207333456850397585836399973513271457472575915983669084014231536991983006066334627100763511873540912003563846587180966969938814065156121337558756250854264089973086054715298271426053766040915168749836471925125568827161592509474694937452730572213916630136762102316852299940676435357952450988743579812740880782839472217183257551656675944706722690143559700791773380193152477343105044984399403674356485801735482231622051724817958101337017047605025480504106357804606434618028927025608331464359471242934622262801362545204701553681562685623178882724102891641816190190656026319602260668860089817689954627935914473283703553666221634440695086386836573761282881559074219136556295470937516922280245055037377057174925278932348515939889949153700895508223058356609777523229190979341499132467661307947227187167266605719204059568639778279746269254018703914637364219584823182880757597565970193149364026557126645636761559869620780216098515689990001742966223471668616130104779424755072824408326426413434842235851795918185374227811017458104758951481979512037920989869726612425552105524248609465735510145249727936952499230496978827072991798038899505854448966229452958763813670564415159646907720359094259119547600429103502016162675694304621633599448736085484680847107712365602811997477966290835036863059208858457951217543388827286619564255969718911288711774516256638310362496779536468286885797808123223088535927189180921442550894731437329503947388511957875142369518555364011285356853518286319195342012044585823781370208729512678693022628386818386486690154700541003033281873824524985944164323518708301406024786864895079316575456923922058946141337463573418718603756879633568684905110573626328971287847384530288518265963454171080943871621719740512699332519549351058403584221217307304491708694515985307251575466232093220428252928123033945673225991304866160667432549991778688724338645896537435864075584634557978654852483408746348135211046404283201033658500084068198221553530722646194114929557264440802500235682862785197540517914390599925365121230837714418414602767643641465034254184855844639615999214293320314390332575045925771622695920895720887859299888543491325674164490848413774216816429724763740979793071132862890930902497515432612283605703661769040172305145825061118310850169455455260989583051746818871470299222182151292352534209406132149265535495110217657828121365775593757810700761797562901341720540490640329405160477567368788790740241284768886631917819624136180260768793806856833758174072466363995889401922833685434374647226397228103807308621437120890438487303574302523552227156397437160634549793612144309311737978996414891931199891549561426806544436915746964118760138881060442917191587739939244377722900888897144078489648089850028306637839829981440950117660575070306695098850194113110485723367141842269987173480843703967259221800677695728536876629291912615740865598789231374620461902168809970959992374586383639027704351694078217127378904279935452635098991013120368848074707063749585950522128962943871482189674168093527259521383125548734839341006870013826761630082628168694144442582687917152609162988204310499078775548494112697831755299724781523312534697710681406746064150359002477229915674476308399269458748860486432183647410283717827805423113002986890510534182077378373572802967824444326588851834242260200125508994902677136393281977927190189746578714063471465183473130249381300705131688205755648068116570403393888766270635175436225272664764394941251833376572759016859544833514751237417159060990449364747313390019455897930261900955136016185156356881263270556042007336427024397038500418086055117878104748642221953130180254298889304700694508340500058317105346737091940072354496911431126672286268058360117258902362773194618905122364925285517544813160128108694709655830763981847098579744210829499515240261370658244052107274037691137750651576750430968696222139515323457800830192091137009384876759164176093887158495297678494904177044223036976976963368423933658638765496592820828776115177371896922590740036037864515288885593292927944570937066665862347187022512663905125402738920284575304567701699710652767383020790982585403990174560256754331096237079641557920363332016821100883254768506500080336544189974160152038855650900443957191299349345631688417406545583683961585803358672821173773599094084943223509603810912872070973245710693897318651627791594669967123277480318124943135818551548256514288316929888431447029661447573415581269711654685694365749929459563376630860288835180280120520710687869721462359963122610521073711129063108834166319048319513674157123845900909495466658137645610769910513790139638625706793087361635792260263485948745330916871030775082456552826145738391797030162599129876062078279686013828338437936562799268240427016287029101273894678668372327722572680459217206227841671189126134834100509396855458379483763464950964039609956484150547649188348784891876114580155445482821266112770383885458451411191919189916755967602390852058824104059483358904704917347392083785410893364504800067203426904485672054895485417223633958533119885448231741490690704265370834241761981554540149238369992027266133670287537344811754601895610244685269224483763312854838986924854910839459209301755891352148697268335472334820070799187226460636156935312937787805747799646282068616645102471873058445661017189743088404700055299171972788963592709649275935091046888838925368633778306910062543203717596966235575649197018726692265424902510519813304313669969999678220026473878644041900501251270003033151920535429563026106103667996704449168250057927967586371055650414162000305477835271923793319975516714039742522526890639014947768525616703228606395772620490556130126338940788641727013945434756482170138676848909096708794158668629863171508809316066882088215341154542464746613179105440664210615064568538549433945675494627722207705468966597215259693559985101487616940200892523516154480028450346071964414317699313680049218915895767211358218589131424080335181626630026954146401491941391583232523564585410902381182202389407746584375519009047199029961850200093601424935572727404251908249461489450160925893234704553757178804658326651553182780675613821548122766205362014111224961616241800936251073802553191314975857977454665232296393154457343880865668853944264533254968878572889749152820969001883094740532729611852389030378406137873760571370794205368025157765534896077251262333970966234987337579209910706563090063499560544914722810911024417450952268747983392669159992699724202844620161203401267079919999528423005629778877783092764663025454689224964190968141201291331359582244237963403777247513996457523380927521872788806758736459462195806141529611953704527046692613996620098441839226447766714585356089903235361939585643534657364635542868361569570066799128546977321628460765102149009964313951411043906137147688755714503328525214143380626715077376802624767200554292496313332270819617581108896629400694823617493408648903999923598793071090694949314457915310375527184955196714688068198845353343924649532058944211931320471412642702682517327226472682445176201903555257910075632806029223222727186365079052922389228626123510727803907268657443141374626547077732289184591376194615373662506393163745624544542231020791516748879322744913474625628754735698876715059969814091084082928849812803848984602276106185631503262876253424024008111565200930275751297423242598195883958641437173743694203714671630100767036176711308673195988783813615144731827832903679400798955147674320645954907744225491583605349849018276928442613230469884467842173592311508626518815225931630987805617570681629267958945365235330848318529332085887637734874125801407622002877461045830248416022908386769565029810530140973761494241705000195160679812692484542968387680430725559762492404317931289442957894801727213318745773043191905292986277541353477683754443441292170780326346366876795762631704466777025708406247153251089623923377601197737902137030376491938491126666412324658176826551659532715376522583005146889298622144279636521940283098841980155900651324796227777819311178300927967703911726768924300464978433601430114434493635305646785291016120742653037519205951962489013068219028748341236602702614212054342050968725920820273102424320218652893290338119363627318643257919128779863363810674716235898886312425880719347332948438954988613131743483575666516893692678261997883575840741999403263778734515705598925413548711892468089611995195830099689559588941943653380989708562834223927888570881597655756853038036780185796267816705730352544459311418665529578669675718971172222726124726782747364276790879645688791968059303768553027052615266231926344240305103467650767315497561941659864742606291606288620778174015861156217007423824795799028843916399570084057909271938722545946777154999076514793521373001901126770702297420390598639170304353909456492489804218031630715661865451450751077203660558382716554336778928793182022899509070076277321814934164015612011129434933232173121636072682608193120909334040564627399173267774115362589296872578653240377605264633982501001675137546176915597199089484262893481006315254663773882545466499929083232343658581424093428933499451701021562470984585072652493650940965005330872814198866946217350716378722690372116358713263335746012090266840171148334675978891707542339297461721321478784071457800557367060747470813563419000219137605376536596683019250477961823682179514175007357673445947072231894374686393947560309002696715632110742419281621384237640315612600346606496730110684021712901552011399405452984173825217489231836938122740392695914577929372165373635821758089833680731965433126438063087586288875186416875125818446816290172472188059420999797203108612796504701526146295192757628462172979844807674987608360210027536225352756115605421050460997249474006248794538083407388189157834931758475725836594254120081428610735047046060020535717149295277935182318710368177356912984797565727491534245853597962140543862040548202099565451253007941874819136662143574758667659557721875404936352342450096498992215172635213032560090796744571676309686617963324559788406963311790130620993245093025082834633089082143566826778890316957347979323221132168072319971758078230709105456539778512758330000255180651006226715367975877442971504156727350366999019971026640289275921900357891580725266447480628312702162285515499793700537003278587500239371660556594210648597251435010540024651606826326219909111368745157805907858130982668539196500879519015238171572045030732972782794784312453087363619892860140642705708191441533734969837081398590433737069772453968868289086058298584297591014194103516780165999643571826412962681969502812979738374211369766562634904028697763109441827581123688924762742807380839105523385859707942250071198791106494491427576950640879941303849447812248596762965206780069203921389546759487259315789444511349965446252875352881313355626014346742601351754315578237919469492546146378932423117991356454251991145634947551362975866309273577410161744892121616241133249430989680536231481402756887209778688158033099094128703049597339810481173115604325038353756002111365860446621467148947958853610986543254559312850864724421335019085259625519512278446359505198208614412430353761161395627074056410883248588263291929542532823491159771125394024924226478231109768099025857601705257855751449336134567866197977319185730268781819763467529703530291059555568857700565287472022414544743593295385370128766676582702483273467403903255455336931840821760594566640084886563410172595877432523608047583444374635666982670993296667573244687710210074280255362961099880707939341590804472182157612269030433647422805686748706496985154758887723953003166019861417296831772484131289837406737187653998515683290028548482197651686185653166485915024618635185066618848542031695818709670634579219279768627426921372881925912497228529903775996149447492266078362578105427666389023255440465670618838050911512102380645526244139278639274264874242017614874975659713652968758757116431595608559794575916424765591941146680925481194152345357508478279066212321549138315564708912326660146000802890207179060321305693310111452099354476365193856432325972874008643725970063193589541869950172607283682936449590547563060305453009530171335862446314138822244883582441727570781080800806800910266737425259753881541680161656574327732853970752336524120789117209953225717589585026708373907746643482400089799572654472350009791581314932805371137484624377634475497068553395377974089033162177679504261804680508093890804802015237601051205724122716744778042177460676095905555802452059792934869288209271030737806033556873101348005471607303122042215323777658985646077821835869370177564922026142034036996715328068063502276125339036236892138864773460352183908159283393343355681684533644071285956056303982001834967597516807919466946894475120825828868638933456354470249475676019864492802731780931853948360600880434208620942991589228824496182758154254078785976790623716081991818583568958518465730804147733070707656615972407248156356783102907772842141201237021142694372242158562097845521178613726742016816835081835223560889683217074290206591123501448583032810041389673367128145278471816358828940545517643579049605263346710534845824676256820784399345597990157164417992982746945882021908014082123539355205083238733877043161259357557397907911645308340987920481981302400846501830931395983047013644226893045162383679214768929180596790776130386023419543290815999987318480029546860430485034956131135440700160684093718418685485782667166380279093576694094804893710734665611607523145406638456034008495367129842793550623723556999057325798798648643366875327179559956478619433892893449522342923643769721655658931691286744962557352868909610591479442692501656603274367322793707299370831525780247807045158550956752135386301565470712333462989124064843332852786099981814028681014984605535292666453896994647062843990883364568927557145459684993637851764034032126359466024801145449807055178065748899637238959679129351731575737490855938435739167892961068706365041305673722712819666217159119867010373545140940126867307372500456957220060324112053224982069217228370462367038297094434019786313496512082303724903019504177128181938945466234287332583830909985066538101209442682762997262670599643655634219583655207640824396896128904961331426930700091177471262854845805320518220028308350164141784372165327800616108979793629609178250021809916599462674687677828926275588934394574020362848902287205319506767258527422650399589699867812548348888904771302309035873549936602811113785316586689511263456086368586868703956945538531047436237224283281492465894851024776420902399475169917905792649812408650196599143122489117440099647059136294758113090863729627105272426005573290440936503913800339556734857671102795836121187659180379714759224819460519592564448908981674209905169069026963931885868072962304770859359689309411137047999670729620627209403313479746726097244106102268160631732553880657387992049952974806027561171677887505151990027357937249031807136163255275239667662862380169989150713835206715556138941733027790734963748959752211076862569742631253688318189566805619346447903051316117165162831819047026364892235755339679198590234158063371185597883876279462225834118287492243546918438174223453408174244455855848784550625010558613610298303148774446757226326677484739856640933828275098235912515994521733230147042718722630952725030633287523763325621790686234532501123497116610238194204692073493478332594140093576021286097649853546598328584804163162565984928255346523288459100202098311546641590276826784591201999926744244688366820942412827194873117693540773541960434695880816315706957148102041704380609812894713733583570381542711531921456052549864812220378496251216967037415440094311592979509314752937769372087836478704896735354658042412575040567106539822656160668098616050424470476423095050902219651125902647988406064522277570934487157619952698200211381215754739361199037411105037254651437270524571928067905966656400124610049571078504213639616064534991541724737803933146595859182447056716924724583442949299316090200160921937135114199479546720861000850096550774840735193079269377899899965936452602422690625017938648952984491181699405064623628604174053143604207585672355640931811844386197256680675047070817601332258397506507872090526317575958946675579186085226005327397872804936562911626114320731004629280002350299823849577396360997545114175315541489617570907786401087251561941225580615403830637956304063227919249822894595717962069602384253076515644908450325979862847355918442567321867493304733911623308594795276595720557329376215970342525528917390127581895047372102171419350345688195716183448757446313057829324352518533112206007125888289201551539875159040797840490868826447201325046978033656776352597343556339461271421304402608568048187552674120734847492409777403835698742651651143752903915937478186415704015981257064081864057507543218918903052382219315786793618692247085934990750492007373868101242140782656643480185996487734015115806055412282284270485049339789527821698826829072541175574208700142497168289081166555411858188204959106665332254540098583384925414001874783468741267701635744845233821364939974738181772991795882745665297508444512059684835171294000492591551463782807519019213428533120359328792652810507176126093875374127658742840675057150147044021702544035245333018122127232754233934877747230133721880085560295106056503124429097484925000477173943350123633948953855854176657627821910524523028911909012641557056337754049506894534915188838804098785824348874654881935143790213789797466438356183844200071565356403158481544777774896829223937652690027113812658665346679589535956140967328098998114904604230160025929290645671939621481420593343226308322203110893535889654059439704507571358229474786441561444834906237706430250189522020966091071792829433233105851960297475332642971968884488334398130753372564537285657452488720078650888797130153523237191118518054088319233098591420712539017947138689800140750494847729853439465341646561731967906089404300723546541587151691908500175875783446015956510317846313313964541432498860986576297004954880226785463544372847304496936564553153866335578917220222131115753226677641649360073119693616281555185313789031824401300647647984447083548030036484091945320299012973280579795412273069955470144713234095660795829784310593255352330039758629327690131638135900216878088074493213822381800363249841420693993877359924047124681594617871864814033806499688986959406541707599264365859398744150262020454211161107729942898347670640831297105952168341390140653653723900224630619455552765643608157393891556027241912965511903488957315926256152691682181658054082417635896854499593788943466109227374470150241830752225987522167344129246627461633003443645944531764451563191807607956416792616377578839856563915921382780467736671968724600410352363438029442199156938482031865866045259076035836465635820448418875645075124460693056618453493440517489342648947140408089401011748745121786788953375860351414602692927161432532443896103746154515079676113971071740683310065198087234451887943345877871899817049140581359502889101621059993322414230850227417358323592487746254468968080669586099271948211441411971836053941259314489126518824486847757252627973049865761487108147347626104011816680721161239856472343254247184426832345194814441081860912990467790861262190846871979442148961150580528748801186448167840380287097791183323067191739603075200368594477754198129837015288900943305997592361863042129725609353532570833583994352856402869211738585192431736433489701931472268729834213935104790339374761384610051745119635687406443459817161500140141594791418660504881731874977958425043663610831150755449882457843451260775609772981697374623704838853194085934280995480121914390150485165566576363526094503875215354068065178928153909677195245382219077422872684467585644481357774830612175644933394103740482861537239998281675551903398018431747717707107200586671037637992867524348138366921469508941885398478757755948039812834280522444690995453418540366506559291279514232095873048527449711079812235738274563241865911876624816762909896955518134781340737296311158015158608537705315848320512302725527018717333299251379997209229830719570234861955191864050333072815958952472237355747654586442975719381491972191212547453816342171899222340536140918260574010702847023276781812857710551716268180672215410718609222096793246028645939869261355376646610349455858731981237289107360597378242107421978069727583108373021692724285098153487827707593036620104877996584101302004579240147223322010619299055824533610614807883888997286318213338146028885577317596460790247893546883238667751716316651175061813729477682875122795284713200130982580368038006718237573087429823401718138473141442706277402766785838494901416995833499378711881288187699373432146471550658285380852216888679024841016396725365385106295896613712136550973110625708520077033274031226757841697868139975221564878605490478197078916718886285850168155503208935563779418873722482946144369827172758505965781287170045422856971452076583994578858087885498717328113196911935188026787756055786505761837053292635512111242769843937973041305639328546086332228648080020570463750055779335810624640589045301189948363339430009894466062152758765096996109109814961848530463718449394071019326748922159025604209636268895060906919198676861534570251138377619523456635514647888035473798964931251514462508925992207501834468699086332750160720760069888575276875851118329221073656424693875561899465383562851372731731450778670383764911522647834606524002520800133686247129088188943790399589775022023574887225690406360702055253677699446261304309988977638411645663016343512436092514469535960159105633100728328952776508836746360280526914151673524299305645924733753218989827863167188112255361758655359583231672341427154976410688893190817302671976720037359775630543163955404407444709465763284164322409344806421937039500948558113163599120988165721802045356416655155472858886901994543499734020812194621988986735056469872647970387850861582756592866363592961540663396836175892876409356270397229818818272279035417361768656200774689154097640931469170428774767372265731200541843968956296009843528113956172772991375719938908782870808116440341169336915643739002737326993658901671968936738713826432373635411629687127943656453557801541241968829627260534091904359044001672776547102570636015852943190663841999378087856468936189628672976472084060336338787130624473864575761449219948893951538796847721888585637070130331637417178228833949109567154435916887755012829082989389107052957070919904249824639887466532800819299037432270720509845288156428680704013695675967170376111587544986501868694029163212217470356566910438613812489496105740521824332000147740820944470617087721899725900212250377646749007343503785850660056240790318601517467207145328526219898326310944328532771497510007801706791472728017032012759697217644418378729765561982536501532619139895535933032804117315379867142554863835453762640005184376650868673507336114307217504356858258905668586102815462034220479009425697200599856311044859082520362168545959900739127969839355457356326249078021014747452847096735552404535874533325846743700222692429279313232637713059665087235637282343583050975043807182837177887397885526671185519619745977300587670995869098749382447970279269013197595020405911231219229103022003760934103931328360997693124226157341684638616464917501251435291070894637946470867297862736796255761357674322915198626088899152363231853486617967430191004872020372765339782417892542770228832417480853194855559442180997626098386573837017502106676168050759354680845650118703461134655073199500698247360170857370370800629093506408124491150453962059010406813774239429337759814313041236152827861547458483026808082916783429793853302233232775390486764998822490725836484841441622941773872335150568745354309525903520722989505645330404437786085847317134451403436864308696870985144939693668249458776581625920976486028715140381931943845677170774980536953874339867595161261937102660867457002841453181608324763938931712491505639189153917632891341629281961773011162605560025818934741564224711442313832007038236097511179594330495275806655726280511561240720161517191613918285356386948686100148800063484250807831362586920165385806909424664322537137884178649750971418824110255818854852474785739939962490191822086448043243391308880350314954567063394168988563301925929634738224701914965551689816525401258878281124750500549201338383681250200686069608855458892573947081982390159431321370419848011015421442489818257946682206873329481113842558402473494011400901077632875005442222180856021651500380886365871533690365158625103737637859742337496278906794425258973413281605371400571617229640246446407391326373343819576590423173467731805612393237447420119239815155904405662874448509949573903078443878329410286462153646920438547145338193698116764455632782352831285527244902648810915956573624952910911862782468559904704542731649558228856807680354843664130472031686808231326362976598825600814003223472284414447622959453687230287514237083474684585881041543757800708729809366605356012132543259540612717452666048556288198964809474910482082973162658006824062316702985678678858946271966781836833509190830550924128321135713457230901621891715497982314611947818744543216533655068578972567026930909301795601491157328631329068347871771870236563356375230454178030345339982769931900380577766194687816630133755408714831046124358381082248917355372698462606023817459194167420791570889165547475777530810279998307677076789749806284896346465075302757826846236280458013918779056692746298198272761943056235334217148254539698835710534996208583044315277984246770351978304178971660039586292998651081764981722393229985149942296850527160111654818720305941823957160886106829354880028776992677029507834988077680592477123978610676612910923581073813699290139187223832264068919034297946023276688675014702689040174964009259634129533348783003399244306322747566218053720956745218825257334633644130878298867515366691404709631087159893916030147988878159506153157707329705639278177263987632819929832900593566444296303197839311946939822413840045035176684350817440940724086993593591961861901173111175240191146007362865425418171643632258751873580136089275604651634910245932440965452008855766729679350086501360816807393703025501732763181326017306446360250587689839304703474687109012126389783990977719476694401032475874852040657790102859116223501469143466458858731122045496353517958340340142466114656071641660692407527443707134986233625955627816575021105965603997646532704619191139813873849457579349011804218919809331327493960981408595350872557773858422872044279246608266323997010767613008808576170793162270947716367382402590678884413437059616125699756575382176830256180869990125594027697516714344385049339235941321401846109641821364539724932927987652771369749743228720737834294906508745430252364762478474802130448888134971853293840884952089515252740408516910879974754764352819645377126960614931559798942450507574840119534315832717127599778460366018284730129064820669284954493346388561043262343063239020943799910309021623460357818316469662305780921858098616872736294728847040725492662697410109530301257801940556006865218784561007073538560515511997970472614655545217013633641689256305126743354799446089248761161451638166619380507241665838063373576477243887591454324730727469208386876187144803840878864847137810745241898248565312468374785763092694946556042716501517291859092577124057782438060897080290750167728322724518538424174304170816367139275340782156856759214243426201030064083720019920993173345730161744972154618492357385482902907107389445789368283925234531947126316965647082445758941548010773324422631488090832666452765410989185698243739145204515733561289167673088688152467675467873548712288343907992378916114234517246244056879108384465715978276701434157784228744315299919146566794644425315032461944271254342421955486134909669957928419958992652100734302684288486255629208695144351213122262855815577809217334202790140418293223311955780345822620027843491683728005222927340577344235934078017259068805425255634102998141809046635174364794285804614602747990801517519884736995088597238240228307745639769451055213339300593327922937966486317870525612424113533409477950883983689527457476985902446302289496454351699126996130991998429355938624524682774680930791214253336816735017401410807155229262861741734202855990414907191953463283037772060870822586408527027039598481736970497518625405124144062646528829187149367432059986425390400925084384932275805000273773026417492451895632994638037966314035298374970261753257192605815821843064348941616294332548570302786887277239250090688221337901651148641523292119390502878709857548792060789211932585330285213522690557355118795758283358470293738616205241008053918235069346009355521325027571430071939199705121402829587246179454806640989969686431725794902327226915356416783401820120564880067611842212867578316783911683786040502510399607417547443831928928960037175581655753699802693730179756503370789203237031103283817655308310279835935971156226565547937996672161733077024145173411425876280867412704136150644425410241943864915139853634444231993852769526560492327296427539677389412947830514707762153404919199505126117901758188167201305440108587306282841000144075172515884988340726317007006740891610935844764898809963252951210021883115005113266358073777622186940440303877670178677830446751066699406123268322216734655169958797034824118264848399587615316782077055439890514210222254368911725510044174503759423870297291838210099785589106022174322591723099125255952159203515852749932280118693192433993385057219724437008453584940916271498904706074479032180729326117949283644968949698771386324134613529706050511570977612205781340549169155683978334204005610406432609293749471524489483260102399978047671815567522968200597579828092876967658767738608106563802411536243890804002518451276865612407316738159427132492245017506374153464221367578534073673394271579710772564690860033236250467842914036722481200599927384455144087876300904687394137078383333524784076214942930878032793145115374503196602598774022176858619295827912781633322310909608674564308089448454767612311487341311412350652639283995521442515679356786428264049498161522759128723053834502761237808516648843903596940336571202162210190619586914991933494330728520337948341076153191896109099134654606814969107543142032355677804337634992950703272889154722983766081690898673100945400562473813387020542532086823074804979288391848316576825689814456839734954582331155430306340256544317626122033321077916438607801854232321007419438675918349184172544022420944110754805881935714991422341950361197349868964490709665694750766547395985575633887359126742257146335261867520083357687287653525276659563188831877101026340209867895500619840654926886776938096280609700814675036285009514301589804500717663916188045372612007313527838658570588052524757701883590664115504974314562547146563105589976632687703727700220568590210508643848889989878670921796026074687456425394249275983813197818488297934444508777096956055884918440053741995837636257530284633411456306653808842574297113959603018829433303660775020006285897073456580559672556810611531800139449567969306487595489851228131301664628945598889652635948197497642576637000206649029871838132179524422428937684112192710399783739187465138400139657074113020757504573784656966466108423267704236243351492485563722790035297236902295782252760548952306501490748987336772184666462990528508289096226906231110176519323630444802793264963342373515708682358667824686799949846754073944703610148845350707773488816092626991258900148175369857410102368049928970271793002629792304273475647232513246062581141583915478949204112578475535731573924785035417529550666563225863226007710696318923475889129151428348471700031082663398849970343545046527359845033145466879761720731003229705299136568352398375259899958789857470186945309889834491794740850775605312648404742635340841659936349950199082660962008439622554700549744950657869946167308419035605101648290276237126088778344981764006354551799883750408635610429347480922223980549572936594345413308157516435455124453643490013611308598996858589709522534687155890666048141845962303296893118524601674221216599967973150247492940198184818879190293712029675476620754211696615971287781196077951523495692251869466660221236676083682720577073292322449945836938177962138947439126973712080128430499009103567618828246766377581555407955851477273740558249813351710858617369559622701725593716178710908601864840309585035342945980960718481246318691734729707908653705415876334454966051862556332435421544772447910843169339601064392889887637757449757500207882309867107626376150186240016761429762315072005789241659824721986410594778029662294307240383893196801477245708256439540000660306637976507135205975888371420092198060722279743827658810202169544178513990408994382217627266741547092799317186147348740729903429587051106553679589900187211290436115570504025901955873289558096657876731577470919684004116319594654091454897950827962601243457144880182097621113233523004586975472824662956043575406055740079843396228116644316087078061279145204643658890852582498664010963881136914070060577794981009682792951386537664117359161510163946426494710521290543337830845829978254821168451222422849715304468508563245319708277149755615397625923499180731674149754384343109560936176436058207418555957372439271740907669124408547586722077277535480213660498416342200059537622155306695701455898406587495700421139266342815541443211345600671481581778177016986239112001057843893562991753849807946288352491738935309549929393904681333960733162846333777420070128518303633287254738630424566939268781873213101506637473425138181206978421875739431916849291262919075741231777604249094016297278819909177372785743630305309713702659482202786436241876737699077796953003440205591143986549945955815876825410521255945618506758638562873881703063295960035682592675110036097677012958845514442407100072079363467916969675026076104820674950315631445843551907185562584915609265124355854565980175578012307982989010614211903300478493260590695814359689918390083863405072861466251246403787367664304648169602447834234752064770853362545778513876959283624317869430367983528252705817482816450462706663842142250223125173512242738236229013807076539088106651701396037835233000806414818380406284058884632665555981529055034488639911924038995919744465838283113874691596709779245141496527691330271844554687647268325616944240982666870604446611684696959172178144075425627600043658650771650672078809515705477575057679504200587334887579830359565702308314165515962645389512873622303404629331274866067216207000369535477331106329180942082297906127175589316356876589933678511426692052321969829291750945395270042023506471401860098745038274155348185283852531131898067747853554225290989264222256176041882971129466663274521878495948085752708427879480928973507618960441051837545589183386550711773767900366390631779293991635739188623966840962692311960177238233604389630909254490692836281692798953492171512864724289231911567553314370557416123635535933586450863860676917262634336930629917820993462989795208525989274070013528957541511414155829927339149013750001721171088365664718490520051849155925151012927318071291853911443553423565096385321474409544168865842129585943184737714130837470069034440352904518991952613927525078667478676631043681435245690233335588910287671157289551541429274154914660542493768345292790537797207005832107156823397365137300756446926367393226696814369470625723826133178002591308165534087718629139582961963878173035544274428620069934369083577315511984569635475300568575928361562501975394424505948012915078093284352878908460049866177643417172988841500575985042839055287719249609118293608681920286913651755101854241627365688132588019177572500617899534003478360166680085991864981758240041484892599620102987058339178529510465632681331095232129761989427262839411239827406908464210879827436745608575848547727923607811986296748189342294711559624566066862245292239050181101843677676083540231134547555632529091421383954702345377562910772431704212925883762087051291771770860230588774200089196277646865348763083230907901880770116317162470051622484062195072709597837445662515367026974203601770144559668688213262259732467425275295760202399296678338656724857419295967572450147486983427552242591361567723405265105641844788436334714852473920768730615840349575161497716119752763491125724064775251104502895298623798372499179362177396116458172649719539918553857596120063276525096126477025201008511513091613070977665570495737483422416072589777104234230005072226873790840273299796292968269409672784257021395695039595578945682383417733610816883483506719280609991032134229382173389987689581574729841047753709797745053037349612382530704110784023848251281210586207265508733951688812898559458307390208176551430644796423390709603037424080465328153982055489561263018980314278320069353727208432941678521963186237748583590248466836624977106926978367180515397594270868605478253507884485507835578570918806116076896775282641292707268322180940171662375057927811727220339930285495417937343161040251410346790777685231847967323753571434523080355632289008789614485435787846228975425375867225816337562977039057870950137842890970068878368191035375792421570035363025413541918414161994440618141890787483633695354967162398334700148210620080322702776577077242091508319332837232687744282224910392736411222846878656103755620284990888666068780586728111801033760094723130371782197178727949818292485088415543126253960931758585305258974911559403352177487207284030325581477657807135592974481356891083437654112719296664961930852978252089880080596126679300239915549064941734076220884600234999479541563018121688234843675353917492699611436480120229233838798752371328933874095558983640046985244404847369338502370173306152055939834118271323591114129388238583870281026605544050709024842561160520500643033629622479146634521368575196635170204802266126542006919709293415314051810061704449858207184282837024682812561927742282737943732470125668640158049518900614098654683043617299637723747338828535305078225860778860785550626792829639523047946439648252185471207168207484067922717467934251358179904227585076798188471617042151863713731883849965438582421769032331104109557721055390534048942612344338755954278362309905435693701202753987691696804274930692985475345008764872081047778622252194788935301255465366038138187163429224722017193259624139757337667168577554453428920711926617688653042356518340736486733950818615027585243416702914168123404795883947755525649466841451534867330650317028999901292984611137392146531414863235441136655577847445502766447580669081959871916934325287657633813455302168634959911729530134660100087892317909975390102419415850732542366281977039422411489481543436475804209544576170742738430072240423979238392443412318468331907218320395706982941410496992763433402169912697331001301433202904116493084763555018862898765834061866663441962486607209989531406702359825106615679715099029499370696898722073454735666302277506323323168955118411258908031364536777384701195616142176897216692918531469498476527240148710476168700588464906782374239167831033380095032674139679702446295072703203505034842044291157556861225558270815225771101782882053939541214354344417309988994589035000557484377855988790138283819754414510106913662335512144624929226040818375536748311911089265933330200150076159763269440178470812911237337834865806083460747468511289013941498808793129376518044515939462769143188152244129184961866931837221242166184648686259888744462953641709608348000594197473069682401767825016716365051921549087186985559087104571985606882019375660393900054481813084954848644540379085651321747717507198717907292963618042172638963632381614582282924374284617471620177867961413777142951611890524732970997014910116759696751371368510870174321594929553423574603183125474137575691736810928871462737767421650865173719329557503066944342321696188553671832462703915345160879372506303315171568724445166164804965318564285052406351685766128177606409102150465082172294807510023659305036598710255213682796563703077878743112568006563575046944730046836890793389064675600659297173252133633485737495040319045257896603262254875694026106899758184282254589853330714812685003357250278221294534604146420867474649270355063162262225522266186259681237343577971482770196944825291565951164931680905227651055946151194301634837448577516828363608519885874107048612996301860046668626283086184910095357296444878865482422043916211466527286046452569018541378924586824415128657302247883469950876040107414931391707475186497309267271244761670357481137355358778816749331463403558804025308782068667668393094156936076658163787844141020091493891697357022804038272450964365065218654967903453458060246704016462193704480416016448732848252285350430805751913810209744678716823802181799345497174490988096307405633268455205555513919991359726771512655865611005303377645224812339457563903793487982450699377312344103853697466701613995493053727922270044511619706829725229527330437928274446314299639329338611122474270641164234332790466750429800189268870277424495547827891513008472668091980512019816508098260426932489240156198504782387063163894605339094687064587493869672500363385832693732358932372762136357668515783464336644711925539360750660843543215001606695208678979739248209725609811468056193230294243081606277764198918625680444182190053671378415017201598675621110434146403482110162331629887418586905028069494901782541792565955466910201981479622795800786097263117122305484134989340928601906326549109567543105497813221070700610207418894324077143337096379914490202610094149204390354070004787211128024588543766956124318624162244100544514582760165635807515254526462118940110590875181344759130102226024573599000059210842490268216164323976688831328441169829569180597058232658176290499622668578831834171689584165048455444938036336394247089385461407220006577935171971303249884871979056120031826984211586799118981795596929293665748831700692964295117778608095455382742268408754051305559146898420370332999860505375062617142918076131275095598763100963245302264329312531181683718853710930177569855537125274086822037543511539906337420490177836878187094850920673709028612906267889476365224908997513016631718825021384972746358012067441589738607101058062276456348875878135895876643960942320298520881693553976781017213007952954178700262481865782086823584789523139106939160051750973935844697837914298938876211586382568397849749606708366602403376904068301162351349103804246950592115525466518416635932017451835508260939294970734654695408794340029054276659347664653804458079395362742741754915484629005399281104241367645599708987059425140763214127543140899490627583074903439108579599289964976224193472666197050699461098107318459998474026418983174400239323192837191058787441021696886312761498134263419777097703221993197265222388167317236128193125911385147487682151910690158015488859762677557741311539251188561405198288074551313231591851582098874999428033481793527104472792623586185823754272291499460721811072816437340453361880943277834709652327552056783001680748239731985253597798481300261680978214784226164341004553385522919319593110058933863744055106472647298322334158269451979729373851151923568506046608798809962548835643670726010589843900817949754190983166721944565185699627422773953990618532926686906298629742899206448526663072615017241279705880569510313255779784692763073580703621194468119657626021599501658827438514530802579566767166977998914662404189865778329939284148857710889136515637959786965206712126754782588739104124438277723478851010980776890480493125699900338031523838560213919954870883398636972863376769310561013128575324309412798280770289013821439417598256983740490184190923570971990273993633587305732644867684842733382079395229322270410505876213514915533517190018064282067412718300461270573642564156275736280135878159141591824692183342894567089574577400332270049943475762241982307089712483793567770694367347721269842951441641945378017553353762674410445546523905328497112099673481758578470790674117631369357121843658136323596377315851393973115375033999949055170224456435574717571014630875345269026935928376669781645479210727643781744558415043194758853766587037006136399520774388982450800243316085447457972047125175164810321462417841312885594279946048599808460841595946307137959162193143128728315118313178702609804985150938864378612767550592768228339455416337985537966213972388819524862196722255340002772718619513665668052809429589553157286991273583467807306527681487416996275837622063257206844520674737576317466789678241254769103851759001695536827241765459758729955868129934320922414234858566976874895080122407174932872253620680429914214535429650332426913016630981682052794793670178246902677274220478420203787531754255561403196486572714635187115939749818092133194129850692349084324565650314390406957144173528222981000907560119379716007117503585684398698426504354488612580771406982743070654822944321415940406861440447117167478198321475336486678474862403830182522163140038045623484626024476762171874612605934755468169759376628098702842813366620760061324614072966282958725311154448421641438101896103692287206892480703632768198185525815304997491702328789015504649359639083049951078477607406701553416752705965194189114823968682792718065643096376168285142887014866088066343725981895977744018411876662735995284365501737468276212751684006779522898049493341878939037303913125875336062717240969915212325426602875323902543581487338377148554968358586391756962156374626764788138092309322779402712784694107691795139224985837057229775336604865792632022973229998139949075929693039380756200492279285516881740174110678576468168095557177295567047956469620750772886555874000289931289415672041116825430444231064987258192469547064035789673480340149741965228087467539075384520260569019478993659828870145266480955497955272209120574555289698607551927246033285569066310350999584546760348216594355682131418376883511129536620547601321867579240548438135551746688066075625764765772477719346053409961718059760409953033303351704442243370325769559190988374918686005507620700065889255302669980423056584692558594244266103177099206308515731412857715968642622007870118010850895700813170128441614133821463033353457719029102981657234762144701565502508008373601348109394060695363739331918337668049584025098845270129811608235432108342729540268600426155509995874009483569358767062738377091813284454651327815306569273006455756277394109157700720590598183075375620495966706535928159506488374242151111659388742147330464778212564073160072289864466457038143318884248035197648403637869162048707005714288073980052532145484338489525079224803678067088215781234022893860245608675893242890024682783862809535450895927571638353985344053578321829765397695119464219693674243887991815039951896073890682998982021397255385242831468432236125598375488611488591636223506451234267336245421385454780579255097885357109869222028880934693258616238029014898617206468366995734802604392553776662401772808466587922420450300959598375784707095517061098209928095325593281081562644632023602558240393066626624146261198303324628142590432457355425950358292774079648839185980380152036159053721257894488670819654848889217033583846078597559706150113675733885095951969345413350570057252941297721437606932212244737860752212456173866535917757314865928618703607682124378162869557650465061514110404147531263727872774554219166144126623902246633739639840587833792014364055424655944577679972487144106084700384077944301925111610011040971048098314915932149863290281910281631844314174398286962280001255255640517480814135574769477444927097726582438321168036488103158861602943752301723188344276374314593542203640586154123024124967860178924048257804433312494348998899945120904415699505040051169550818906031198272822487762325004813899336465726670415843842063049133927941598540616370114289181902242691574062626180216833087972422994971802724996311789483303370819252514651413207144266260372427192185913031201524011863775640489448901739522300920340860798363228204572542661005228936808553491061582229156040951927957736794437112628271264338010294291281117052622356055142410793565605482418514823379811315583772377802202913405375216818737396957696477408139779179251158735915183992143502642539698269336755538803094014168251304737868933301410325367250026982515152859941773551088939562248288567700451830653088523150478326961965069797084872961503251217011847188162209377206080893941968295440172568391995235338668708883426289279179723191521006347091225554585400957111610065157156636549891049356045694261401977783546749269494501444535555092538872924068440073891316513153387558404674600216456513628729747950138252545530293798324196296007310963376951394535154355169609644882193927390970009201219719247811298814647195686233655786881183204735114546675344403277450162014626802648747037045907173654909912323993554317581907894968155164825985037468644352928505391467478661734957707894621342527802223096993011966979545179110143227384821496499323063381120533045458709032582085406802366757081112368189699683093569186033266440008013318765490361044059106287812072365514128886422331508970803637518042117986716035268098870606461380814983994598486626489448668368878649994025104193870400662920692335554751362002719340972487786723716748924056095107672603950294877528154021042942812798562554184658450800480813996135423342442168433121101475707603097789052153797179804243862715924748999933753065395777923249595082086241077624835558568188331534667819918709795510025090213702468138122585162060279051623077007708187855648621536643958458007366409743092618074128138561244515547840347421829740010497198337032031297047885713419852124442469516403500580132634774957594870594576524958365129217071019119234346441382443561452442865437909769790899020327252738883899847499299542845536130832645321572481645710056611040979940413424717118918214749014817421043545195954594154962893249446819298693884243359123733283742201139434589694371127931912864210040091686359656337096370138115549063116294648037733386416003729798631842346641219786527388420331024140435233513919793707862273097787313077593588651406662736475335208570018230934376000487246105421656519413336913615359720147948239071359524485215956536313026197505037258839527769158878106499784725983635215649658195016610097782585536801756703188151402897712256597012351614797894936184906313659604069313561512902080580146707461095880563226793915265370692019398522284018324464062430148137920533587843945357106942151135787818411629743969889232854562858674497150393721334448127908352528761208941837666225990970960578846648983341237030288365006898623132086789529957831998693030846575708606491707186053453910318231856444827886596418135129557175825408017157182310048520806461850110893926793594761132232752525721515233365507879390516056923502454085194854614488416563441747366604299612698946988028948451724384226702569312807283519260023315859044541754504232289842879131917178909257681305131056082619135327912602009071649784529527317753976773298786779199365697617938413543523200519790345924762301102567770925656507519375495552789019440443855827491092908294168191211742480410977168428706450194443814533246362177654146929231877884999521185165872410004480911448380151360370778933593455198307114437957822271748110087528929855485828240304546940279723508217810040950078500922346137460378699668817932024929859327000841735720844270686968392779546475041955051953688255465649202477844466432574845866105203141482490744113125227952594880235747958685753101994665226049584314114033806243773302726847379937561608573574562010768604500997204551180916859037720953065278049983765093475652558364571358687271294914368789273770630492227402420163041538132485329170615930898730126816387465196434368713238244514777517365957122288819046780654119675939599197825363078192465678357229506769012495016038474566732384208290008125006900672365973103152233586906168171183942795076292898931318349962200178360266271302695914089628071656972377296459553034790224195479844861594568945606686492913841501243538739011915265503304209690517843600270882459796379158715698262046420614856026417227707487043077560143721062591347567104038928215327678103286860083332005418650901763529967697926096595754510666753741357095700272048157082110895802827259991123893499533176971273429276563815131712755304970714531483165802739772332497572650573000306968118396011951420738203788917979679474285369027880739202320868780938335845358149228502225275821650514620629257544295930848007866615421151262942548145922989654199141110562589396891461983785035605502441819935880573029633446129893836522878623231952196350744690131474458102033719827083872378992677668302671927663902632848312703458562521603608294104817313964248479308262090043357079825849416961806452073234217780391270791618763999047939153735629835706552462444765057720909315432447312847667873298872572249050298058266912555081217211233860741469678165597367435027115494045913232416178319752942769486944854463329686827060273123802112515978471905328612347868726826638375645693644415395524067971772876080845544556951504988701781715152803267347881594518565672339396286181770124848918635738519642994169398822815195284673200258412204992484519486444517747366985457603870564438733869191149611189098131780882821939455407252346393816875751175240157797347063821642798723164042398885361377505053781723911410384627651735750927758043813391740219063180626896835733631888815320858676681687262120160321353836373983780020425195943633582239830985137480553771940317522356006509155925669397497560658074006494751960955798756434903254541006925356082106407865395146774910310612561650569397924892495433114209707709077383299669828971139421340543119713231385414349883122341413200340889196776020676000490365389843618639578916886232545457799330997964777109386516972729625802367692647206544775386849201080774759394047596375770457787186846284401057094892201781396797556331979528280389634426375083996408747860846833407009287865636199932409237331738375693861909050242781278070758200179516450970496327198994278496011896043303044089940538664683966352752610368282015489788875908794437050152546247928819903041907753640523829970800398455031865820742987760617440601688036791127748063554304842361447417957520427109854623538390737579737173809167534929761435165329218352983746228636779394074709266371598376012388724139685345355389224375978978727463356682140910944017897663134141675268500052323977051433961623973443361315463968256709185012948315825324795437602286983418155909933535377265336228021775505693978987868784648272064372704641958013702680753816772485635141666130160470768737006888369027371965760307175385898886735295645468592322509444339121805598578124288065145593995876369616771599745475332654795843890450015203018814402499043222459173580750395050928830159128782568925121532506451960937751455034189253388507193206799359157449322765601536689947963722463008529410508322054576810586246037068312841689883202440888665781828566801985354540760344423684810416152299692902833697053893548566979368624278130473620128064374337280597035642258312560556210267675596820608368787712247461634587157511257417798496262525981068901522944459229002705252029277026101683786945073768201573797148499252947381643783110302387641274021806867231810479838193704739320422480881873809872014320264249166329781819347394337344084744264438868655662173727556348653521272511959089126938713247733427342743455715861554339059691456421022146290320313622237431091523943253988155782119432158464262310980996909599821564265799009525030382031014852382585742817195310704151939182290819756054435024785190626185764705875174652664671299502641774590130423080064186815603566985229148035099319164327897189626952654677011893132195751528149368778267338560559743155176023455896525430740246922650880565212479658998567209722521485586512284560967370151220766965585222845561474343148719794072320012812393389172597668927513410530470459507174604865624151545968484827217055169865352184222103112584429995685327528600691577972804909179365434840062080408168263465060730545078010706272853428143498514083370864033153083488431547110242113595714203449808460370890527967788983678755314563498123884527535548902317079646743084264059309948182707091744729127258927106212754710003966235919028594773647533845033388064245680996891565026019382582331926877868567248741353367990510369924349708495522747479398665615890178439163424486994367365322002352120940864711932711288952698021983622938648192497712796808227968841644042591032209530580034106009548891377724660826464550857450965703784314145567698679063628930687587982245450501518752214064711267709531558257832051096648493450643539846088352760482447047104906999278835768876677153071026209428254585684042068503872630744767070067329372558032451810579744993433533218031846221112182971229236766681445935812063670422889004598508906712480375503247973290802346756320306268088456268245667419404058853423102599260753574382932380154464428712237576073382032454704544075107572833436596663491397929404431011032760159058875000108032962876033577652917035797339053667002761866136106785202741738312272610429271566302776519475981618759804295924304194054755437480859298363085524204846264153238001078186357535231629503352740057690414265563531240186577872956123429946987044356897440741158643267461949001478045610267989192643836752882664549484617934294477402767838447470169458138727103204681405368666011115483778458908483869717232278237278961370110310943743330415509746865459631149039212608502906883911934491320308780278999402267474686864693479302506688855791205384835640872585021698534951348918265088540089196663125928733029839451434606877306905033694872845493405176936092934465905653864988217167435557710422475696111785309224615842644224225666522389492949583519145110944544940731776442830411481941599556036127588358771600711771635818685188674601235157954967322065628743357725855931591882118418361074970240202171626639960218762659929634403944930534512667815810640357799174502343086044943563630798761180161104875362739162469408365235458021552080789279055282604947703332908317241103096931534364105801025830251601693253040193616936791244547276820968195061203827166151828306475399876087599889891211057733922121297122223609056708774265127390095505240707973260715512439998271198052776968995538099044480537341971929423334424973924273274075907136339139869664581413650132108254097624765447615867823756865213462952936574248323757960233244007963339914427200886069446672247336212766523956286603569836824191630407304681062875439671571661841550012637985858834460295839147705993786761720924970725092337238754708167413322740616001946801415089160375871921823560070874873167423888256840850784482527032155657492165172603838835908217926945613629924538348638172801639763532105378056135146112916985083820961118419995084597622298582126284953779854247025635754809804391313581589688523212126200215440170284454695408574441371337510058692142869969184076749716321079988928003802669167031921426106170664675793265331855378644479522944117125101651212734377128589406310072582373720214081045421515434012975485298953273092021501479879555557468236538723388458366103226251646967215603249156660741834822742200813327425561232204719515397031928365564439265299015154612109324645545867550946682626146430820597599064653089095375884914517492161113815338324646363626861291912424736578307695922821084477023985990021911474458391011091850132079685200363718338538616832042739722199680015574718838573008955800821372736920359455361424035510008774544548127728246656663960552583020604354311277840023402416260747475207542632302648864468292617352579393201455770613536609311697797754820349529088045023914140719002129255612208689043800959232243304857700949430314484896433305218712571453270570203039110234107912770966094772998962137189846459337331322547947683866189160978638606176438819055684953943448216452626813133759097532080639028534803605791277891018529136610599738418662791740373557964193343240429829692479836037904528405944176057240767676286305293719817589166827634725395777251285495047797260467609190725031822521899932842824760375767407034382610424570986891202670457688263908570235339373444824981655731449364368355478492757545529146206502770631515988971118717824756650987942446438708911117532393743923258068147796390593772440692455534424711715588413884954951689752516947365417515345884662043698808653806138370991717209828693834091408852113431019593743928908743798731615672540849886765857106291557396646218010038500874305771467113494876710374232309867031190611279939853340600712854057070085171571767783885706428035130863300436383943433728716669479808551129329350594735849393097796437067225693149737653420001807148095644845418211685126364041299720369888419203021545080715515622945378293726458426206779059369759687423565591467771362936045173277093922227779394200790714095342413092969803637992141170007531435763076914424521115774229253361761005760106939512118154065683885623461718786461374143982452258489956469260820463078992188979784587569418144439449872511021392317381656776474868069605827880316459242046951330684995775625142837577845393044992461845703189332664320548563170403432911553040192328695671023372118502657306617395783467065626294213346705028540788149926422284464415955996587747794497717007351114984364962526806504163696990119987817813753001246466196397943794774495251480409746146263596665924015222644177852950931512111271076289421357673649323128989363239387328601152780620298430122286911259061200332127333341332575924459775517300065882809116429926610699328734312688037709024833251696603129845572590397838395684205024186112405822278831975449146078167873718273145879599690860611610926506048635120729559688398535823264036806219195333528090141700170777809420356145828338887846785000804146129483409503242641074661181044922210358305403916695054574512318402167144369819883705752405100046970955218463800632739225271089047428699905615925485227098009300742460452709343287505944437798202652602523483149856177839348548861222567841789446748177442386148986853349286924399938925547636070388789894381679002244116259813574465163447260474856088873177727220149197177277766276673542137586174970648427181312323735426271307827519452387485862550910561597108827824682771568194598112001069238922940612015273050907855344392331855824508529669502989010437888479136184320691825640650484007679215393910407727552775429382061429939225826208251555110400411867647529222854293608463936056756060927667768913409547090111483694980350074518912202058696603380033420231820188325243392050779910883899610991298875141808946239402786111124032043223092695677504206101136617996578275981013306781955392412819422777165344799267351846071951040193764509813249552396768223124082557340577775744518726570767681618573150438333948285045881732722826384871989879535906753588059078543057824295366614423181526380719398274459846878138372347892741214635012474148199955494509432462703166269066238200194129558936850116636008006390552263843672477932430652612143155681061075149596595200133036048385365989390095022832936491027948138864489153253375837433097833118393197833441660825652045396617593058997371409365489742987296342629961810595777571426745148364070606008447691363940186361098013163230523889918519977404184388746957805858318861724694095919542409046191273433863825804698647818906427500146948489342656984255057768496166519488565615285017265522167372823305970768231961727818330424888309368151979878960033855411854974154392907464026540768705073395475580246698483485966656816928408443454100338665208686066991840464979171382535965762442598375695100743416962288064333695742875188321552205502031099277093602725694155714324886721818648518454184888420379228289399726648861611302070953161850698817238454481144458743340178951635593223238049581297892966623589774640317361569698122219366563158805821022489790298217358252222825598693527673350560473344817027724286657657772857369268624080585549687108776067937820739196313348716027673532991245277951175827179848165486162344144320585924329177870017683461484900890069772801297445513272815745350420104317520550021976608425565568477891200069426541218556710463230810137058553678225084618244253571157662120580649101198718679179076595336683881468810755656021897623811445377374989748034934370203165216260597640440456590885037617582020202370029914291358105826751646714049158199574283734021607049583183473974912750613621976439903548038449803464895456568033490792936722166094167144920343482688049620764292998763215299483041780996245209695567621549644667948045474785573876595940987368978090259855969990324951518806527731315158691756151322928072145099254833341901933008253850684796009706079288897459367328168512408170859986426103290833169557104190910214876399190271482599806081814732710037187985220321205094255079741072579761522418750500637733569148493757851282246630745005542413664640531223319105131742767336947261760351290234561819992308587713955083712268899587810529583914080567428775170701704494977225638153112089064154126282059241140246698783228810879389636367591473913208423494861448550167569944981489504702524867334022163170582438182119015260556136512535182607658610069285604762398703875684252510052782839950478405896652165298630107595561750215980934777426533491400057288909855799607593240107976249291286506119810498115989317478696901680123775369420405124124326217884622849806358638988422171818237711538377677057042211350085308308372862633513966108997978629480834953998980922786482869174392606026020119075318579580197621615508983340646600274324129050643212947413558238709160784956651540392417008135757048466238160180797738391097989648121686346574981730000141883617905663829613349733658626595875519496462292996352192905540420140051624542078114508344555393728316874555459538320198609284317542866256661301821657697412474426948209639610515849680244617802852272445723346803918673125492130334931385515385519002015899957746258104876349620774127621556668108579973609319111696464893298032365507121474599535740447735994937983428712758998750433937110370089064762547800971992851820602567628263372800580647606880923383143801274907006190205882956017761505202483830271243008016980706986389544630095760522473552397824197483617778927983092272408700068852239388978180587135967703249681984185699392084883539731172101961157098211631573120945542731401463117837181787265295246324519383658581412837892708186231741197010775741647736517830007792729717375326126456381894782333777597239400345867466628913545247260444172660065047064676906079276538042332656597968170383011789304391503022045209368622649833830481742470691275058589518448420055764056811543148848989687770379870788624960426933486730941637944024390909542838393644358390241268586514190578001951370421219864814880867193101975367034375450046281695698355880364342776429034944547214601099058146727218070910440567233509138836105896603361444744179842685926464624198071797877754156770962215375741964905914520009303797590715825532698405563324551733606309438534787226699162899162441171648112297705106131409423014444061214957311940366568362560287077376268483132219250516728081545652980240546584849333672627102386611406959424749599516108329788932803816575692934535438759780717276546223530835804311133071673360255326378478983313036302453240559450552651189742944878198151745130111915432206346002037850622564937553384798095048474167452564690182647520834048781223380113782965411620260914228972451238312019183425634520076058701713271779385439898995674548072888487447177388661304424937187021556292220965492408469888288558831326436083709730888379600049960718213693006228862314031460045598719982945220095993809818099654950870436163860980591793605049659873676878003188166297589381046139733810667567197744501291637843526635862409547106454925678426971250504098992861173564705201795877188332853214777541689368695120020936120390157044445222849046636833621753381409325359084557068920175190223514507501792430775410507549203545935632598034866685113216880335048029974534569638152025603562332614094739993106349930301941164405366353965586639913162426523195354931144842129835289619759778985295286021279290917926702437853226225634381224139095966027135786448221616929572775111920978095505195054529118773037895628750290901597783436588494625398855736005433621452222465084733250233847755052695087922086201900677018218501400471073295361783265680766860495937463534981308307207017727216132380556751046138199070380741953284063974502824320619161243220798408584985029257321143757680287150212707080848211757372766638500196741987842126809104089831112098627908850258128623917329814427177605524654535591016896082413077318685243673222105826946788112292870220359980956437636026551121974457478730409099806464872515745836611749465553354052736350041008277963023230526870650470391003710670030102903473614406810430198874622640028790945430043010613037271133489955062205367234095099229212380111540268688100686573226707910588602442463485487571399354089537945793732304543998909749701870587854799132796501925503458036295159122648848411551436016881413453036874142022251916241391797979035681901419326056590614690951636799252807423115562558863157051441236354885005566996006400732278103639117727358039382195539597899483186608504639921897265347672636570606017661850488995613110677039559657484397301340330927372358926307449578522987788006271650920291835310257892351002081573615050278569923283426148535781189652684716383860596391336969139103774941961383265469766601992740434555432267871826750707467375955161903515025841095364960060070666057137599741853876945666537594224294317720135775391887444113189979588710869311957015300464745648683353688337554313580404437464059648684582616677009452711186528131302913085362495295233902111605742326277703738858773327734018410938866278240210989443503189236372693372127745135562507578899273675463452536432454851132886746806820734434909106785294065045209501702885070153052686822652753343531256997298301489203006451618228044329525859992952388090150369069339711752762767722334751198195354638170296690602569220300797082725266604989439759104394413849347581449292941325056892118239736614468519445834872214857854974641831838595237392607634770380466126734683527134281820767084668598873264931571746876519541495249324296979447085120350196770102597682279121967291101864553882977473186912688046722473194557601633786761773768033404312922535079479138882178691917409541044413725623779125922364697148720936180778032571781579082444236463799076029952697183051258698853646955870543750520232363520154490217500311729931215662920699571307211077381068922151133299634481997436218093799125755626212012348513720814991493653067019816274138167079360363849088329195749564129842424353302536897604630234760800059386565234621742845516768764639257465798734890011690346882715488779814205446706259076190768296034101425654733642733780269702660551832561065185789171166024917787292702633906912751829902585137741602816193379901053989846223302194585010665836717339830876303906240839453964472004460622389464981420850879192265521754983637006617782068307587325026859658318268180198243703823135968247260010389670279653269331452753943618153522563575292264342041720776117742622619803401984377863625183703615471350047274258314589936277322922009819077618230341809495798728886270851617741339333642011269842109338069092378771654234794312668351442978694029054598075692180509674675643469128616781341390235994970236339022655264247325009365748430177010545324790886753457363330231869103634290147464315090859361902795193037764011207199576880929956348184328468204173358804188659048991136651895394521758255765085658267012624113190542566466514224126365910520445970838925061644591523498850324037121244441725765721461084356012031151799278643041803947300611374969172210802954842718324216864561296971195949165770033166637991447429403221091309475955827506228317594547429320191104009933790208569650264773021574543892158367237525082539965604986983869289488089589388949559467790588747740280581430279325856406755433416705424599005331559782731889772282864747444065387820791641530080784631237030790650549047535309741203966823127783003500540712631586325135178588933209080351534832272574921501367992891507518990185368224292219786188682819379792842211137621363752020087964017777747613408478821093312826259878789718716041457017613223690355420734773129970820302669592539155485984311778633191434788891349080796991558428346835858316461053516449659841509515878470432258134138326724388166504137231586332638766152000040252414502431349726224982379865371686826851523258422607432527654606004705110527862748836763259365227647133450838945531083394143744043267186727039195512130881007004380360538243892706267051765348120067331350906826437662394219562276295501121567148258957017309027277338966278905693426381293799767619715807092024675725721489302971369171845765095620323178766996461713382509732190095116785712190770447055314527726579859394641744635466355348836283512445068516139383286738016683333716982370151898069141397476449017673239408377558724841724673081149332988968354681959496428483380404000229136121070217117337405226900433169699029138700221956302742180931318220729493277211766866925581851214711122880447927852406524747867690676134760725429242182689155879782782044460316916383112849640776074059128121829503500516986960569626895942043805792109047932580988397879891605928870215064949577078773581993478419275093379391216427558016887556119728392608740825010542690372511597277467110930374592332015083081650143817740962909541473477590824527895025698220047753938399998731596091251322841910167265134283768065592310874251602591150968668098810956554419035200625769476798368098429136145546267821675463337321248897753752582842703554314015351270742233771582708046551214979189486175990954223831333386683785225123074001141324517073590664540359742579718439111924831490696729393715966048858017650854464081493843558586535959146653298756150050022130064923611689859819783213023325950708898579103169545475670222577573903212694709102369857003442591990898077980824650554967728929460328735520847221120547171460921308385325864235391968755917006978448609054269330277230348943474904787143811922457730803900931809841192675372715970239221426028356919423860452844684984862129108640236728230096603422463786883751622051571470204374450240717084208096518980093863037008766342332914800454689703088370576306123632971806793287193727029746236216619964024345588660754457308647313100237987091212742238897199950242241566571530925924241151954953565817248678751761509454451990656147243987642434565464453884152238855327016662599429188931889458205723735849505709990021150237631151240395253065996897373552834704183400898270978113841275992067790695102355681508820464482573585388772727382110120633517551231976146715098289263199430925631834907499073497838875470698089590114325625191118854955020309765812990975684698845484322203124436607936518710307367987577061301033116243391211156115718427156071372888918686999317188648056426857857069867258529893892711381517167945804839041114114118925376096623625646001232198202200607220138174666575788958218464700803120654610031277076414547212083753847307824187509255149652180782719169668880442070637642282255596473364083186091239124850327903005756758036857849319286894241424072534746739013925951354223448759225240583831362453826617702332784628961305536912142182960057046991095688622106013051635749884861498595058795622906810215459947521104647656317511283846071380728493914930102367004196241984705210623120434879838155489502189620323387462135734234028641233251196691388626087468379077226693324836983341867012893016961601947655953653795924340493344852463689470248975064919823273890294458613372231680238810647999244431849767100913977160751761614098325348192759481435648639307826315276342566597425662011882950912031308145180923455250767153001088285216025328026527640509558746449719088333023271055759324706101630325680069087091917084551249473082531621650845642011054451983392974498699473110456109046225197365267597724296242058110451949058778075824465805329410673572782226892104673246088471076453813792763837070129689596935773286843623629763922837200971648147620476883417791264464909157879692293017377569259524109642761028145646540524768739547373255667960475169931350106767208448009890672286466878607358426336787060109045247684663695294172152572343136254704339877349779140310711689056657334234689971716488176193919735365135565363173326896923800322499094576523054368787383619990705268646984148665143169136519616126678632165489965101237140961516906228477834229486538883138614768321079846663771075729401196254003500952835875093525802023123193814318562915830351456631586662932740738664348175953830405045229463904145792317886133791287996656070582734933025916248129737736029170912632900372899000043924275961664759924484597891506971761803557605698801345667362738478857716510612012883652696262066095802996374904616458868635131551131370486294440665372306377798536571047826287879432873599173031582653188760763548133134506102231668648468551202118090657297674264541685828799069808794682139117610361219053191651937569445346251594805593103315992580073061059124054445991522092188388981493152823215387323228474332603357590654274842655114124868520753128987548672796260009099490594404751454845403453279100745321246220566146529684388238995357338386513702420146355298614979212729895844220021970874995390390421816812965067724677344004872138130071490453497159812704433642306614252495163956064435684922808504720156895735269887558023860561700928671533446641941252678548966342158378997649306314779778071489811273191083478689691263227125720060468971811162302441336127162936184498055422607844118689964430585308998875414910414336785196384870125622028565079675834921765481649388175681954779639962849704808420652285877307987102486430839468658748525706128705977368084016134730893318937366758504336817930649122300096529444095096919191691031415350766865387983362201556202620721119229725108931634075745627651688555057063378486518343521634119927707537888477331589189821217362115297290978815834752587036627502112442386668967352909377682646437202235486636613099275209107350847100951718937446089361330020862546229970538555421968462519183390529892440874280408767299168933674105869825988084049313958072421053733462441397998940956317224931202879302241526261320172779447040260098409377631783559735081352338726854954451116601119596075724646067797124208826033302752861011086080987834458662216186853372977660312411107821796103674000614969919206851710913191717877722471147452046256384027016195451212458809826242307477992802652928789560551869486138017553511982448041264581833220868876854482705076480027275385718097935171943787344766954936901785287926607939561803779047973545615084072906278779819937283719821648207171946282547767870309007924083390458689637221998033584648766843556664755200460794911229117714615757032442625863508714006856235132600173346406197064459213043306168032940759620326972781649577374102151253782400770649900096348981942833650497884598321767871016458183900281094390368733914481493800017060462698253556974935286015320951961606867052088596250697893067514931229060661083178684790384889219524008095941812113614575317523054872743036808295721300955435618112921961160928117277732854687440573518513089012877299287626874980270247351221856043579690048230001868569668215929219692698650342849434262884154109326435594449766496721960734996715762033939978120115226169028047510753679260723947732626134021915124300812595563370215942313301901982160391472520333083369987229410827918631906778097581371281742483488636689610869665551168525204541982218246832037075783256069065648844020150375460788288787963561643615208385205443777685031438322458547310914321944911976833803677159391114194773498113756526810953640771495898798738987948659171547852032909769577460945230729664629497612793620276487146260355590685086356721310884801986308709285812843095607107700963663298062318565355880395893113360922116876762754840483952061389664378959234222230683170844681940717030681741305471605802822801412593981601401394961514813281339699063960632084741663489379522632195492871928272857445182367683584558688925408326998655013359382048323954329789123106839560966690941975079974141841827827913139929579064494739182182303654961382856280282875824424050927905729829629057737448219022352637878681486294466447615442669821914361384068685175862946398323865211213189773799154221872357734139783668250581789805013561786345947521794719557064757995695253152851904540861191950911956103183027410033035302033164351110694206045314241961974632386279476376474583677424324839786585485982260252105757596037551590779245705777950140378034303304318258302253918456794638261904226578978314366161188408236209322450442157961680823687144202107195494287165993795537478948410969988076644846240629235336658004975689565513479359759708063649009610931315706967866338830728679335688584783932516296712255032476474991309258796406168886520113769600614092267125097531984961959106997633526345784041943670512071098480014459735285043324971298085202027227725274670806647175475157525487741822670525487114384634179171138354247166433343055310787296490641470905643989068856564648033454751403766179194067495845557088888365332406680894512997321284800335920242002452545483975181443500377502906182673315524885211198650724569819682067704795007600250204194849256895836625895307538548475754192406983739183187315168667818374437193725663916064547734724800057702389752415812418509259511534316466401099331272549477755041717712716091214253075172197620818693124867413114883478922393656266424558526229248184100999091859650558192077839707447241734339042960316980591900013242082559677779535818323028371802825625790284797944711708297027800668581932345750911868600114126668093484302589782286477592552347884194579951804404724834774735269957082884213979182636231133445449991318767185013296174718269558140270435151480457431065696606227733782522170584078906841681365906323525694115053458893147000652338431570939540716383099406483312369486653753880941219478001462147219460616893580610138167613104541127533475388331013783436696510589546545614519575521452204057528410494817260707812200641526617778206813476809814270920806455119082075508651110214611490955523909166357545880569110051959224628308812971951184341629777435594225310177446903795436458374176985022326926886125940402886879820022844206642797251791161669543694488892440179476360518925118397732767302634011307136339301471435268567119893574926261814511939621143399850514790700993465064761923667199698031946022255215284094865456394921525240123884299589976760955666749875543810314668291143751044836478253384552122404865044399967848954154650080413722071015566289400787611452271767195727333260146168412101906164322929155751652969806687012667678928461880799003328385131005559844079287846233044727506078072832558386397920093579814036246115519756071733676077865415942960995303454050608670970765502525642341968342502342484380826396965764126522453007927169507573033001200618786503681191305739415389109183831473860096674934633604908366950187318489840918437366788531483107775010041892670221920268307648505615370810233887490140939407091996050790123425463503793073592264260399710577319926054885266146846173922543093140243007012735035490420792115006733591633460190740983489963720496389156029455354485212364438683691407263613681287295695246179717970460483770244576216879419248750972090738658129317587285920437991784367670589998583255399341179985665491789960523707199072215878984132430635236889770976704837391996032756461468558679825087910076978875778291124969471129153959542845994910179977155487738348029797725268190041645922075491284776456484662775702547312786515559714810749898897375760893819796011498985998767126080927285070264710017022941647517315398934469796593503345554235591614304045719535441866916149244626834654807486227499179334753638261382603863997494482112335877292643682578891295238295581848743991557415003884342377759132813854177014866131583704687217441270019000734178273017471267860886036672540996480867939307754129450168477864103408326799227063286232361875563450665301303829241925259961686206197238314294879805501595337284871030799787024718052441293830436653301869443924753381856127856944502851248624918983967233270557937426683198191518844059175559453508267924889496153370384721944578420522774590765620265120878750923415514069699411098468300178226354530291988423337655346689946816498737992839582530470356069177386646083373589867718974728225686442611303154259909481004544519828085677732809874714820632247732517210188614285119921248023029920237388164949026186962870019705315298999971696262441090423893973069896438285426246579339096060282483703122982493905568107018785951151178072323494447423598629467264353083858716507882921721884005705413592340643651893542539841873803425333570452792976476084014351941869824645693363437413506416744749817510838788152548005229361256520385531549747189302607043421601211758007394749943535954528450729375729551771429352606961290263814069260949673991018723190782572358158481274329249134316080008536720131917912180723203707625313125333063295456154261628178867159494224209672796343749130503687314667974930767558649025240536541087445243682472388250586737646267151936353987935962010183246223580970468272236075721685033147955153786876189731475089737173526787349224464803476182790353942749751121564044909732562819263556640657733221276168021293978895413777924688164369337657657686523649280283175359913190433401131611582336854539264708528573734162090277519184651034060814807201517174239723081449118907556998301022262978878902325510258769655851254136464014936925717015367926124719903982596129965702807918438176374569428227166904400761504631822458826418592975011746276385451785273653209670134154201827498469863315796455752443841981458078840780864395688020217656939186419735117810896515131492099708740228578663134503867787996603958516967635889085455472054472408213102843340355961757012335772323680104309814090863848497606938904785612948307491143700633018582594398763594827007714872721201139766070866431696895974301970226981205083185710757773839260113021279010394246389584983642692257456264483310373217385923464035561757261297306424539983600655842800162722780726030038618253234503259559438580245477429322472096131663848377973079570158942717041267477499061063609656021935289709111250384937177562410582321187238673696547460631916932192493944404098649322904560599283043356000311393106905209147766774458096492627061957493466237103076592007736475591648974103124512262600947799849424671389825068713731295127182232973513329711298174116160988737716031975444291429373328075882334696923490844981239926771704136228436112580896083740315181806687471998953826864334842154779310532759084720864971227687465796544684076502564436669699554184057287679099263464972123378794230903027618607946878312765140266550806451183538792736651942865920734761587031733156916824644828167892559114860550592450261121113215035955561395292212762947857650692787243788007472157459597052312191232197500935456996173070170475400639183225090998769394466872493833297725680567080998842015155176491113717123540965210727246310456912337701393464400612279645318187474885710817422221049146247673256920467847615425405823428464506132216665816046570602652552960251150351696599175948511263375654243612218498710106192335621068344844160088029780440737718439486464954673118848947445950151141324424075507762788033851459027566418502044950433184617831482637517027699375194736899340801691888834239459834292133873295557289834324115086112351230387766171983746450685667190597368359313301826017224079978344026631432645813417738969480227013334456647537958773796620660896664124172747706661278315476860663116393726264992357666749870648781196339017713711483945025140770523644312825625316680948876284740744562968271148290050236162266147917454634975938275186059904521802001430092309093237721791464811587444441636304467535781585505366412007929191145130115741153782045830977734703901520942332253552400244400542313210921761833891385220463132957135853172209789426646932326888725371982750459999335026458470306548151143835031820320882469042673903961750871188777483546519284252654625702299454177660650888015985861018599155949623720635643103755215335459265148050649676811053400401314738811159617158093631413939149463822589589817443602047263444790542497587386624256214404694968333616615758797707175637309159804766434138006850499587113670701961811430808274817217786228352985308238506203981387883057852704177222605822170173975100950245726492958496312488125230167876283082120978922353828885819349772855721144698171656576636779003065213814909296784084514062893330139651820668071324046380569233040042021274583056069864104999240715059015676888870068835977914895782626080429448719491350156128944865983424417750931071236299072803761526182238060982432519003792692743683527299182252988329097399598822358940819079088396651797920309868557660139005361068394076387209314651411155156473371340315342285136947305144515789829146525970291657663155930762161554260487386248074591587357659001207415081539363296449508977720225318234928743932797322916290721361838288978849173331991238480640519635539786558466002740445059500416655912484022293566670939584508335017045373383849067422581541888234623547844684852679226838656063797558171894383589556751987784737122740270925594155682032318787118614381155683875795579369252199071255060731823612344934362007748197495237657321396618603409144087140753793179282568901360065057540190602967847779401848414146179073351167772068930526034961683379709705051277816768119768985932487609823685527872865982300148750911496203160700121146550418905228780194210946448248097017510582694494520346727857799855022183167283205109537197167894489689229834075902882680419639084087131983120960319146682371336010580522226665111520546874857052208111414437079220993259653713058433457438958888460130855023410892989724405347330465222402443764735124103475028657220040188818226222890561306190948971098811397619865277006690556091067983690394636081254609313858019748429061348647499466220128765334184778253957452122637650546993592922687627623414737439942746927507394213073219066349213329305951201235601675648174268933117992969754049875867698723979355746950108443014736255037613475996803244315975796449091478854227811119714034875625519616706930763300992782198213310174986754979143150958309773287367898569764561517753544726574763098237636821182350382670514655911215105584680343534227967364244555901958283556169240558825818541591406239916509997991423592650491123856388178297045457958403852399571246422296124135838349955506007463431321301810189461780498016514335445944939774079824548832285538275949827430920416989421731444251756553269604938691193501383552221705811551213958857271476584604974458666884534591963167116880465143102033820806439483073430272055813892273187448806912657887052360097007504651160948153237213426040159918046551294102267000068018710433140410300270933506566194816691024798780405838109493935386082491593139260076025802998376073551456629088579557230185476603095983769858400314167609546392624719715423082452226664712616974891743153511248995204242102200926147660271793320792694926602914970528768419693501279412614388738106678193236205067147107829532592718845270906366615456170984315207329674523645252079089444150123529439731723116699390134359097671745040632166038641794390733988393486900949630362023512970335408076408295996971713631884803207366574171396331622715451061140036919488749257498476957355503046890839550415054460694431596278250607964375868868519280835940953197534180574933717822185262236555647305784384384411388760736348462585353351623251851932795759817007093447974421209934446989553185882468775219393261582430050840097492982219054398110997742696960513992624077421019310196048095187201082825734049140847842261867797348155484908105186054727018999890916529612240926775299286740839636637308572351706117602056531242105279701878303471653226046945329597701871454009512494845020803914831022242180979696629610281746921947755714821715159564293126528030364888922461435535191892226668464038623721922081500802322185979270830828883361531137828352499745363552901197908626429393851058226285609791614499687538649271518273679232012197085246534948267218023084616694450181220204190989406137188011166518860524681263932793910469126273865213762499541683576929261254027737885401008598390539557492436610667480544568512039032189504061718244210914142519889370481093695999059301181055671360618259077137584801687622093354177088062575546133131060453714894639664673481174338826906301630833078029478894372872926416240635394953365981287694852923199985714927642900856496523032181599606926598985966196146135837616460718514068681692303817665680251922962358990058645116050783722691896774318304985116655634548606611533642999921896670893068112571217902257672368909612825851627973891675140605073390358329293117883389865251069099688816092772729331915451468852387289889681639730678003779857640761124326949991916932043988543633403581831025702876331538060867443727252813928736311635109207907717360924385506167704022835177709047344279155314494277218321331244663923150442585041276160320584319291926461158798030784377822941053952993920258051306798787015317230201668352202621832691627293611624798491968306827121443328717462556781745217026946269828225292473054055184335425534105719260477432445101668469126315045012371906104303684913538020938009266861993958027910369880653747975480642998393848211179552451964649264694016450396076295249350742916483499748964197103511209373488137408099902788880608195137367998725348132115704227651579194129969970703696651849798921311949961406429326992695743576246611599054310633748583557917098203653350453738350696109032192840316380736468479842138233276221235820489503553204923254360370042859393235242495367170500284419366173903571721577626178427004112852723259829493284115668858501693418851057370325705304721337158780991763111649208725886276820286098884158313055630119920295139802132742575215263975959475233951656339708783612073229703398462644354237787270761633101296950223739632075852717008195978397328057995770981353385881577713705459792522224624243791090827023606117164271581670956164945685166502833971068660751106347985667366514626639059541942212237172149659252959987322258048900793808480839752116950492845670071773179551117361541234287254180202771647201562520677829228853248008137559767748477267621221257355370428207366881494938517777764045026726332772878396131405346013823274263419652186568878374878347772409109677694886125562320407929190912570553756199085020049822120864635092516518292106494306871298678180088887165211138559117302250536672864575316594765742285933956884123119620778822358584431169296172024652320320861339295741353214060521507031973015015730266681882127178577774445284141212319631267253072942706978572832799121690867198211400097902005373711492490972796031233435767086392677355016151424494589461643852919222639299487132632482940812821039800472333104556027868675527142149765704496622587563057040789945540762630901411864906577978799942376112128388982360276930558367533283035011687373468429564109276559174281210570109823270283832370527684203794555580293725353847494556456915568154220790461441035624204257144925120557350413341839786509494997067060771469050211872442401801292472098695932525882558316107147098064403938218293533100269315136412083975013010431192387271610888853909843768644341991891499984512069849031044002972093303609243301318629046906609084247489456264582058410741051961051175516937179363645492554768656775227918163274209481698730079371484459701927079248025411290336335044026124910381330977317643346689306697320033786241149709143675614544742357001779302290223854089741105551628828358991446657257960529635995230795466561690841659393674321149919529212600612792909353163591796182454424045922447959465145641274876759510856663510453716551387306067728099760452889688891114401993625111744360433161629944750583030790762574855933761907504110176419322571039453337235388266116451273828521708661588282059956750603531886021230959373840269489483206542376236482985837593922613837609200914352978857979781803778309328648586061012532438147487535404380632566841909038780837269635137273215535398270362300785004765563313856642306253297868475442462231368194352926967580704966839844363822119648153282568141527682846952174032488222908041478643049647202683439247788982247384616702874112077304058865129265348540627549107346265316420478870677783463762920854637259591921800080634493870479583070030406181822158054037112929375395569894879423453906133282334119617508166608525708491253721038033786114641192613481342054222897680206088902854031804045716021984470153877447652449001089020152146794698912022325597946722809394369784450270493924512850039869124395375271692948321754373439228594166238149359792194734172968128708466269610073328312046295504024901225589348024223019824446938197677792351475625299999122211332061286059826571084817489343261316321096274506771496054259122186552009367225919785163099670303899582289312718131831377732427941533764489000755740770591380689699729061408515040510273063935632650343450147518354599428183457729352261967818635483574501770341926384098321014411954696814796083094050934697225639817543124398082758100948208463224811827614003286994624267574699281349805726763723170949281712450594999010461481280310217599842057499906305904088981913684568146687041596799239215299774169372912150709148920269718508369414214675884232631193439191264251858482802256041936258750045928755044753846063935022612606738600213655191480492689514732644634239857424294105266569694672305524696983819525532560776414194746418065829164644808864600761461304884310225248745303553088475696294411971366380467503356536622067727891757885869172454141727409907929762732443619426196991768609116599673984118689268923202294701601238242305346694017229811256677923876660789976365039463351835025927383639663602404703666693009481999135768633463237961793680424194775096558011520452168952911263823431963805821743095742019144429438433860861205897818035196276154236889272306418536275055811676271280588453123759567725754210900511232086077172426971156269738626027511541690005549503253783837826422794181347102207647326095144448271377308213462435368250933774269026971133533825338698386090829888959929386393932918356600792940588137162293532371678847404953339222220082891351843240334459733459851004857847969412867861694932452266373852348733240557885250465234436952891218654636590432251988370233026525480830600350924712883478143331296309064097782837481962107612316338701013041570564533905930213761668365517497711027367538171650905402832451356132169278578507310005271600169439861276801334899520563697368478717663453563922228338252862734939862174042286145500763678319638819139554410569629049015574858133911647292131206823174272756778265070301833196087002812144359731287858541168362243446584682338612512007253015455995246127749847662659779020476024572757464699868344825445474441859996151523291154502448758292478846099084549385097023084033975541821365033525928253407655615494739233937229621621528248210510434499034478827971182873193186531216349343888730030583519169623049096571791247559042345948532655024602893383713221916665483094412615438078582094733861477074187939126980497923581102182372318294877990685260714657332026641371770944455637207358385266498599817332296945404477846075954934537295661003176169421741691382387420711077645990385916895130434833995344322468436381173109364462311771431268704699357281867955602688462460855832802518337328276093670943439919924879900180775850796662134713776000194638476300084876385612560460071716270390078542732996338928170152246472898786214729978766710570198480739187077997338044630095713053487996804978871111360048589504438473838120363272735249946683102894376242708953082617780145187348042931859661200505201393991344835308395297882782439427046920306393110774558691481724280917052383087446585177145924845967192099589045244600982774009584185993094612944826700237477663124080938802992456979356566278080924329879617408975365252083995821980391242130614339552496453207219107575383275446012841563356383610002766845025925195950509086423249374661460864982213015020173672914633097680746159760640790291394083431576837309649749719662710303224835816804572035558199292877486424208274024203449285382746809453121408897948442991778378986364638317820000813607819356962636280912816898138099589449241226785903905346871190004030040442789446462826389381088365866008913267523233347571914809594809063630255037332504959763777692062069833307792732761755223626198932958918402954335930196509707121614915898575213085896079788942095392448505756438471303866313875226356716908775725980699867912638892609417757813033548631907275178019269089305750252507093697149593463592098992520212594100088612658116705276140682351785022058413392612860656390146208298503232379513981444564009452048221340240726916298334492876627959238769602754766786696765814328929468715543018330547011491563872248026937090776900215795205423116492953383956316386268644243641289704849996013775554256183397037863817586643579963576421268407304032310295999329644690929459183706610210285351929481111655041666539093532091340174066633729879096089427856122341089211518942302643878599671023986118895689596716481457957055406005424659983292878138356883277095990195813030718873848987429047488298000384476150296525342370071149645141555591621255597815139794545026685681174244386117995924402470865560228179101959464733693436873942372732469261361642140553271391922907496565960301718106767035685587717746141814495564323701769192347459296066782112093677700904001720768071013751746535306099216683879352473691783186618617534221860221231871344779828706420031343364557967285623019478552336139394142492190000212750667772481295156312723210361086979701136464966322685481683647166751215280104116843017100230978979269026319959676418020381147264108220691513755034298762082202279372129353325670338544352247281183065969745894576126894009310764285066667335749442721758260819311873619064443021322971779204080701874404137493917919523139124664651522388721486743987878249885570327911887833807055734800520812692477336539239327151711106628463531651106726412120593922043293111854377877978573931576963238509782873382873309725139007484530273842870206094754356824022851581343606747558385519431993607626768393005691018380269295120734274726552157849776236793367953222573759306575176545263585680818608650847309132524938111239597532479517676163969125329307507100084892318176522292696271596540236272205874427265697280280538643546359095602971520208170997985761443972431152878829615083284957646010688793305206117182755480659230253548605415327966621111338154406430198475661578157323761236060282492799325476222688395074706010629610424449889116514306479775156727797935061531192076126176146389933375404556687585275726851132110367728309944997407175427111684414219452350547890013211514734658435271849363580382230545881848611250367019243651338957074265803381930678237047891115014474632051931522274794989459433211640330118444028939341479903851044553659008713898220896838735175628327474854607672989120699330847180644123270333151022421162671875018244439896802451122243934662293992772085398831785926288305834029769456453549690177030318387300952130831772525854948006080151763268146544950208251626953710225720860099334999304358827414061632974649052697269872691480965377989077052345918390519554066018576175284974371895077639511612832250837145674900201529237745302243701781063282055318633123432529989197960815169143314907665186340381611826052755845878730011432934437761338178926870300809895663018233716785567162711577333455190105963092739972391509446103148850789502448691207037670200216572314831402807992682326885580761639580124200257961211899252605422487428082433875453072979289567560009471593757887058419365423171027826407453595307627332512440976777957641899598938609222465534326926358574150762508956753285632863357275337831658497266282319892006656020556078413374705149403103058377731895362240252281511746960878261856004859230037103558204400004907899531048898134549990061328272996998464643256061618091271144863083509667648224736802793095648713732951874917745384862811783810547996564207432193690037677897246173381749670115343009948703371492276728590971198188441816685889251961797890814128142174163248818158933951322580055784653205844690748602519781659761019829438952129727379636177695169558314459675776291939632188273720793843086207229199304954465142978067151150198777393555152518782814248931773822924153806635454513987259955003921674216295828211303584257670640009885863333380376276117181687653526472648127700915254901150242615257600918302012241697905716974976889698206822651938373813758526212160453392046647953210799470378133730680910401342314392137383586227912273333637825614163348654960402106076128814091122548926940424131170609448274109494620185456763469342716208412708607987589707119368499838986491013737259391232736605174999806852899800191454616786217221581703642036520298898165827620453007855496121344046481969535845509601289370309344027361457984830707197124712789582668728188814366848705910262198411897591562699914415704188470622824187444222211057253166854166831648466243288273122399547466083097691571878401056757438393207795888548797410037073802334619977485330177247199529444548636681200261866891302497466557263866501903663052455627012831072348425678968687992256853866280651854362913780863813233259230462893281808992570172332830805503810741300905874550746814544179386092393795822833313572557523154834023102700260907543866807220108495821569278950497690557412182038108559970505040402991674332036370400845429153753151431244706035692753278652437315322135516188464171656561661016946469503786138317122361467363266036342198585221643038010314944690818354278654657332443432783509910491587207731604435252437211015812242856605755064580953149885297697379837542739105590310216115215795566271622595935323464071342090065562871045719439982531440121826518919873392928168081672458084551301011050827252371900290197555805742753385296449879576447728973585133254441555561142820700527568036894864985325066036227018846648193979785115272011916351321329381608341120995531228512098192261039037419241084769822439683295274753058688394526759043875395198362068792466495470591130636805982777008920220117209770301368942211173906716728104353238498077737062937383894649468208413985829731317430386246683545220064362296140563089523232138622555153956309287595025895352832713151411489306536072767666381694765034470509409306667532800765393160097771294704630941923301036054205885169487425575965655116916511570450272366448007877620288382057643102823182873450486569437004585877867073990740330787970864506617255385017060782742105953258661817571023015588999534643115520983383803985964724804458439918234932366585732291404930000167921439518262781478586942070063633601534289958830683418819298365806474104204644717615082481601305465107762458079039748651954687931334649538588529237473771420255712809902813035667593529910097171672769400467050537347663552547707380340086655876244644890305629064167394182342161022224758544042228965627981575488407846646753607943481022271689934433827062351599952345575711106279095330659639490850622855816501042880141149904544441581460918567045514966341138711250204444531283442581249189244210706122775759459962884777006175097183826384443410098153760564466390547600696454863823193602961350033412936451967747313830061742838561540835352960677986508614161931863336001909985148494435069871482842489043959303987669555001472579197820476192007497811322133526646472705879217932497667479927378094248389448557992492974498997525886648667083168851821430536492453935316266727606044052363228783122384256118050335150772302398674190130350728083645418668001332349242717101769798691026898983771464408213219666682217978388342129442965846652490754456507080816277637918846980191613425102610709919417729031940105329489069007504309787482997446895527822513226919074005591438931824571185526705738676019088265777990398480115330686462517086345775609543011835027635966275211317975789296939649401066558647482261737138165329926955623294285169598821163100869841149096973193880131325847451453668518065805133980837218874867618587974996888422317175518451735626720537536979329708316914389200574898498603590897453405497809451486051127205730849339282454790590601197671803379319242523727631471068172254135798037279893531158899730495072556492138304552560233844016681687314805597627028437496913975728369246499240297894479593562165702607538350489994188713908168922786702659983923123204366271447227635789592696717220839980955692758497300281588198306874150932918030969971196982970496023570569499813253514177502693569429701100333680760637971443959496950514780253662187611139118845953466632649347944650186581031558742378091517876129004661310776220911549507256856651833991799015140347839949506689405482371483942493628905352101704441644102607889866265033394848868666793099036320851615821195375011757240518032017197384928505410787471776886013352779048008789077465256025678609649325733203524709122250490801030392788987823486415009480131597394606940690284241517828282631727572712783280108066214868093227707637675312247468787984040097066388901739922314892272584555381169300938626160450942198989466584153079405159301132393968106036257255431108317509537494436251361596354480041282432071144678196923308463418227755093378280069956293214479714090006699892329150426102623352699350126717887923585974086721230602111405876443137699525605489103956230974725492811139730288522347350028352218201116514831070795980129956464434984581408687964938226983976569570936104357203143117242641952077381477633177326249795523464728760481452683294888738441075129505843822464635565045037879948050204575881221665714872022855599532125787994851008854154237676813303880011169385505574045753639837349288249862881199858515657891900818474502936560733339727615519084436370530087078153329408546659832499057145644773414586271581029217127700082500430400026592263865741080932621056485895836267730942992142108993915336764518813683924545909403278159575182808990352110960922973223987262263671558800873412510532541138955697846414429972565829119629243178703160843986459992779549646299216474442568174667350271212908174723538213909660897859701745597647586053110922158945138877464132180825370775501426671352985969015193445512158785694167695933974127489696491772523932735137789284837261750944548428833433625817250730445032399778325200163064127228902560053912970669321949853221775473763687881067541347825174667851582605949642421637636488945805336618913816322418342038740972280143507302245964380566310722581177264031009089598776431649915587268751264958373387615663754388381302641550395180770462470953983847509894638163447250959598549584525943744091155967476726972801610286383372835250578968245169489069912268903102783997276233040254652064694800981170373997821707354746389422693146509751800898443199821838196348427081280450544720284786293017151233061915090926963310567046141677509367160422329062809552105630347735031150657778430512075555558840685949924116463503633354188223515882317365231889284487851350703430697698966160893677214172396295389921790145119492302970955748016665739358366910551611197585918130853715741414908162617047126639930646062648587639136551353140586478266829844304941634821411701933559278567451319008687606399599358806894771727605432528642529304967197718162135460741716928297484686566749352689300816266731358277125090110934230669870196674865588491489436170160684224362575892157474637072710063500777085744500675539346399250695911519977847436817733107358055105033438600666424783367461503848161923049097489859603892980017223373601101367956691093506407438372623459314183473475775402832331025576589437035966554097265012589761776485337424780026356587409382684445154256380398791210022691422630493331503841846757575015944482066017574826142014049510838126102888869487550754180472033541751403899211293943342745165358649802407527727791670797698306274558256431025210241030280830294170298526726999811711559936954537183279202593837174131271437243553461043648031781445390133246798411691950496559245675897084679931640705181363558484778838845625438523982662606518989710338378057751365849048780719373923679722417228366599618440568900702919979981437176985944588781698767295044383126129453740487226248868427486701939025089403461777810154452272423292466336317488383397201461748853297243654002534878814598488065896882018677885534814907083211741683614395501158816925056430322420251560653261188212802225949594480392991554371116632529331999733438124091024165407483444187633114328500421663210813361204382819222635328005730295488560030609362834056762166105164212198362577840626843450425138107839919644738274638994485411854315600137393796111601729929156713675415646638544082411624967541144898828068183950284605005876475772624981828256683373698886503459447408208494842306151591181268804928998253944507049305240935611245705877984249085856644312220349869307245005824931629350156160246462962252001678306626612545997027806416643631569617813227370311942810585146450993951675838940032742545780368999819090862417645006835538020498528645720682565845656186326717469382582996089249032908176588272710945803310298315562548336632662244164364581017041664509527101904258862946138122525653274690840552577757385040371569679316342475727868120285595869714754267663204922314813256808997797312295201672002353590911579994613374766913799852755016156163205405284646914666093374740953471618144107290576378539218944909054040091153777236327230367315656543730002988287914010640202483521792417779720008896641060792088024492726629906972950724311004650746000611594936467367492998074974220865031995125490773062052947141578298100692449414783147732723101720877684464355155526195295717557241490652477741041382852434307895852152540604654981009618294529069741746390726269030548813761074664486448302451718995326099476769679733681039624006074618377355064613874684150910736581839722112376128124929841979075029959886935172908198762269867454731463202034864754895598778122929494227585644480545840124229210234612118365732997085553495363996369385151093180401345610364387466820211648524311660432180045379773359625615551060497474126312990698723501814688821907349688544079622911476371380949521650661829680191063651906003216199305281903903412615527740587772924258032788453750776254423705218638206642103188822880565724814274418786912093469853591642374054524994984682125476231757629477738946681995514294440044010908553323266621390606708730254673944762129723296621480147290764112532258470076185030705722416674984095425031843013896849338170997336619907597264135834522932303534406317092392020602216076068645030180195763971283161661296444786453024665485014766353180103094844336846439481888722174975434646817208531996791657350893927405619147342069176102230867445698380954726493868868074113969270101948608724356066489712055920882029730186818550539464582790693383717055703621696919974284624269493728087901179412451980104925769400757311617581152636971659442782343848504353474628116752021676287354603990737785193308124197559633012593486578069738711802019771546309778573420022853030145779051632664600894825530920514345063839110306877769157161781913649201978088346123463096751828459729372675973216916267221758119736362654687012954396855228758215637178225551930058043702446831256444832265346365339123925541149406418701567568650122815351944755657719014636508978127206111927106787909767919177738494885363618931287072876955906862103947594368918768080313053681413003875667140393579019566516939955226995877669377440634556564738355603440546102659566215770722393666190375234759318040897669664603119691827106152348032444255981239028826319316253861639112799584698530651604490249198013980808934604231843711829908992693415125515946155463088164484871168467999125116663094289597797602261209268951087415942254449801629166003755928558179294505945709255498189598024486052704139437755490495689153875886653553589966780535617740788370630407278046097068056685761787803778421098319120616703388056819724179050082441670576321704109638122122249187967401335421481837252248308319864696717126745843884274667553927073919197656338920884858807972516242608999749949238272914462080196719419299622441177668605563149434118652092354226037795683542017486018782097558778739507307757358639448082103218540149104259248206835715422470707085440691317704911393776139834116368024452722423357673279088561921747473177797100775008191114668060241896090182384642396760640060514763674265968220309210108577144877978941574747011875436788150317069683858660866515617386779231592187840412759439645954633687182312000208864900482041865098789670450528228840668767726439669853820220235967704100133386018370191675869191423466878962866245805292190814261880485851989717127647269140598084753079004025716900771319243078100832910121991664936024151758663589221676934878798783941882319251737016175958587735089269611485872881759030242483358325664796217365765111110207826740080508861832210593902160626659742892750875673975782601353105963350086608584973211186686489497701251688260279498124468250426713854897060095441835715453862311401051994481315402347656572576840783349083081916351362454431082707887988648251633679853860904021784870403341925365584256945199001091564894659329197711968075369105000899528685067173205285075109765445466161022380281137048868728292418795444057832777346723815238536472062379093466010784291850159126311465876319057800357623878672441318117440438469441938157438778977025366072862885113380056599883375338932814945594238740354263200588772967114951529638001820908628779188172893242617086612094384745291980096929440685509386975015932339978008906305266137814166066361638013765237342622502224000199085664877463185771216121317508661799650716693221890811205501062918746698196233772495730425102543948649008119143920132634953601353535844364922266672747031601874058276518346635883141865637183776367780631365922432695328381025088026948100137331425110292968795675296536266768197109175259693732021877459644356458331261856373249217578258895117057340643016231154439422938397185854980560927460220143664647340043803729208019650550836056407870515547249289396216931561974215555349728051534060979361353497192731433390499237065268788454517294116159850921367779398242477734826131492161174067617515967833125749293096666095906366273056093921775680610232494658099660148394773503110506067013472695321826847238310659740425261720004398489325303325563972116128441597464764055479918013805116768389504879380739472075283215745070734023381448335951177231158095950342936426723404312747363930345138752069464571545447492760373409577542259541638013270179548227155080239003582105991310038059137707636216083198673498016693854215908964184657332885610754388834031323005264350345899434777437313628486765958851038818131328693794161966042179491451818817610898373694185674220855996543510528428139033120593825981201155890095206909651271571798233252027714087856132000640076221739789888407779751643014588549129454151351561405180448877327360755387007877443118746447572090766684528359384416188756276333923615536897904271889808942624237229525572579333094123355915419212658191235703745477457651558734077982722536156344938039399338725984812616304082419600855397945250617885858125863022858750439181032797952341896015002448323827129045901141270878641492320144385334293785766330064286823723134992411211573050972298290336356996609786031066357538876288553327813830112694375987395860193190602677415827597571251889027066049110964720842452010105936482144480192120491641721935756034927112465172488575058567887269175707243152796824568542860430661405115399313536584634712424561932467736563095180362963907400000941722922697159560379048413286375423704404866141734687673808583695202009565735123372688958433332963055830987650688945018356828261686018355224571877409510625405415512194230509254541469364275293563879309472954724072360406885424149585203542335962688251441706677056545596671972418719867563867763560042286847392672771258299332273469987937534074944551118981931185056208658019502721209941055466012200336146335523544733023588647706724837653154936881784247692027424573810540267337426814452429758089665214789279759666340221456354780800840402039229505907877404549112394793144000937834188934081129188558635158403970656308408821343973883983946141101837784528340541499265422316449092922908051173734466302645967664029596337469934661160068822507655174745467406175826312376547080443599804425218934358441612837423763751937463740071853084316227170331089327585385266826909108798094880419523761300712663752428152735716371151309838344055355464619519802165577629935418204881464088369687020780586661105750674374444802830278306231484589962209389334991522817983884057637307568452345826043206985908592609383884018476674987243067138032521912067154446173544135711127102669954271514029706957907543155314066931936420616898435945093923424886230230854406790165360794199977867169330374893647633934288280880531479208374465364743961752785880452652663461508774016440596485063798274546225683046390818227871884170354524749728564516724671074389729539443818425890688131076085177277875106359264674435148170496271167381255305282251041428812419317578725652129115654611937944871279661968381613294743388628860847849382705829149231888238809134006310954590034166160973044829560998166962265362262658268832563703522237503530129401040809592534941147680199208264559787228166536485248838166631555449543786914637267320382683118807713121739949271694520198935105672483098080073373847550867398761124170075204047791156583926511200276235557080823128166744549775610997232592258327343238052494305595713082507164271166694722412883984156820430746122164286977997185655798607830427318127651510090608907517985867636470452497721700061384253610041987206549369826095870635376726777219468345249789550418358556811997066070791309389636461356465803185419951871710281657959214759182802718636402010020173548384907355829343519957486571287474167218358611687114073244361762402536828602298876393726456219958162607257363297164431620319975645541214466059874958152332209684631847575186036404394631668511890602613860026428165517995889022039580933592311036843558741548644942030791647156310832738694892013924072160496569186811589322396179498823525452710382523988921303953090238397604590534395566655299425701952428079922693927215932748695021959880962027685817912710868352101313113141485846322747749201459543658934341554249583775607753700305247096537858911200915542588350753023252107759935622042967591561684385798760335806699891326640974657731009452464568336283364033747371341359466331220978106193820688599699848472103650883443767035960252381976214140945785224189841751462492699327113477425923140089810790047934600976537645609845845034046883646667181868098551590553081214859859183022421295206579287390358257966779249836608753355689319433927331747609248567390430334977996705033665696427847860576283934871579521391449635582314164333955723720033172718079413158317630991605616893267478299570347593772677124018426784822428517834114950983259300283992349157378765071918911824171867446166691590061190271809372635360513939716038891686166959797886693847304819919844230867889725312488969662170403875917273547274529634631069322712685101315081314616154250248895085619756330179321512607435537567098680911814717173840839888511761733446227767018554416217725595545598933978977814601874927479472279904849668173264766985041150443908416607912847403193969300937668591847857200824182405571009994418929316816368478244317535582342971673390344711253208265233004945617063266046890338773053315378072732380232948304225539993464958822033786328934339798161346033892675500511791665737525817514070078700721340326392124719033232735842568399994309410103155289930898007629684519550586403161970414152870554564726940827566974556908587837098463086212708489191833240542167082437415343632860378794532414735734792930707031822635164426764297067202907730105340873000052296297785867068839699097328657718695415903729916749385352909758528589150187786281316982993207174410887138751945049680885788582733093423666222746001241514909093923856453613988969430841988883938297716338556173588897321034300426551212945947010969411204727788291831621831093776207239196143501124372367638999660512563382100623784491810082895681084899376699490562554542552351525552489403441521865263092867393922246208262424615262087832912956017161286581181003631169891329019523328650455605869538522972197291082770179264850632342702623168839461189538989728797059791993910757140599837160346845842388530942076671941173418564921415501113884925053465660939848525466190164990861124140043040117016693984754285306404655576701029153130364615591587800825174356947934661396254381152756861235530683279773640177183391786604430724112475425418481723190408886582918536669831037413631523711157213267391258928152324414760705944400953287729627779775213477173964265525704957472856971581625430571112387779973624924129396497043013944958163094467457000502893454315842525199699399499527405197507083223132609144771401347122776321513843047351179377328144446082549170698336644017756494646863160895452044092157439528049923723919187983705204928945219523249752572806810861501414175222946901325169983350265004977044804684155207547218456265191770336328488478682536558934062399255089114096200992473109644170998564174295373237079621583459983018540971942387514522208518342839735221238953562270193743966070566503879517208009056465541789487358116781470320646053849548730242438887527634520476619104639761604675456650574350982967820237736686493511555380628633244989764775298546588053499640921129396895993030774310641362706814369630081956782187604840966426408587127677637849360743429349067992549465712956029607016423209510662309987757809887295075378173964063363070027759601217258296668429769167374663001229648202881800834005651521839289928024698095962020592093399547271784479759763243841189251532857922960571620459065118922482105966142560254494901703215438804018954328137535987410043717941816896600252569126439643633459101947443188665344060126721108303315427749683957370713091716966977403507832443546560232558007457111313891868150216830887740021259016208036776709521113605121950733478124812727192348138718247182816072939364253824289119669766112250451468567478532906931747939212233671147004861584105235176279121412678562848396172452103053609549932308258131398249708920594658219791979194931242765911047982325422781260510201528620962001355750717937002011733448005153324935346328151827868052914133704477759396105898685221205941968538863466365325616495779474421721465869425578545998801592822563843871520675399320783693076734808152219789891844565902799214841483173964750521738848651828270509357104206209260026680659295221423634378455904894522899122101167016539203566602212747037045804560911617839665064907910114570723936947352894615636589754079909633661654027775619532191477772230394862192287065240431023540351926965750858185480104978660318533327128021458043283141459450073013919443180763504063746418944647819111780746749914183769730207393301762224888239044893942701836525253693351481781163385930855486380164692087117370819892814945930687091868388236687357578063405295131643138805737259434968043820951769286214985092059023441827667825938755289568115808024896940772296062365890521961900836844986299022062454667545767832277740909696376358479077399025611983688326998680299276477893024633512318571197035253415895256737097245249587647411173056201092837576238324485340149283529596876818607777102596065090975323337198954614155685523172868006145019644291874310060670646362515211858813582090233145434899489533343425295777107023403961789817914985792324890828512658537678235066595556533333049024633672672879164837258414897046483193472073422787234642027143553023228552148387052152793054539785916530487622348623470538570198063123017397933593319471060607640456247195943793027284653432708206786764296626751011692713373213149560695841361105975585961299897318650349020830642332527809048722692797132939933221071975340761069022219238956557201435619395844097451132742056690776884782327188837438086263898955336400362827571972533643128067486165049690999207724798578745063339114573650227825236663765246043433893515788447428148039805601002814526159552119235562316621360064693027291126713722079461078662512266386916678217657355588050919211805607159900863911080021135773841402787284009135557144216674001496877878319550609288665855243539886389579056372309320700442785526344051017624730995831468117338708962420491128070462211951210003632366077473301617341232272036205021250469315495471416563809567322670099152606834475922482170944344809084035297160953469748021195654835947559441110141836914074875564254985597481736037715981492192523446518793284160300885388674964497799579097809418131091503593641687674652199941585688678442152494906805039254822544318696267716972229197530140465246214056356214765628286071786178124425651958032921220731113894455582692533583273165400334927913273142059044118176186536998422974806424764052747786815017394906955758740531905310502448380423497796023862512344870404165982237887802397986379679327322245728088829414532298787507589338964830846012725681646802748817464674891941302177725837621076454771215078451910709774668400067068270158776108352586651564129460509148496609112249721173722349395589361267362659036759232245455105731558288469602074547774417434490814315962502775601023370498199595584503591128013120951831409223063104897221780158373897996145489849795376856668597763089747654479289250380822713028192396138428639881541931847345445971983292321438785226297175459226187429665577599254532907389011312746491296480652662531619084616806508308549585025984861474720980028470868168106590629323116632635618355858667364044704964071206211478056231408715229664090565326923161092129539112735750043927257060681213767214972859155191282654332487662619078949404389156666203201514976234490542333632519292657817512110312685562491881386364657911175338950052488581043409640761327685059876486942563432999290026922560363411516910778185155448171529265708270971734337445562147604596872611179906151051984973921904667526003600436138009458092170699007080616538229262617395383431486743100905883088087264542532307927425507812413213892057097298212455276800030114963960589532556646953447738587529241083045827192272433236634095397323375840099324788526623340780027442998291377276301390799769472785588179705171223523562830473335205461258814301207784154602576145009912952562510926339765900260613539194875857063114490907422155361506442978997079054072495209245313874171478361997590151938713881990676322565572497013710427445467371367539924600959666225498900906165836551332146961296928484033620299220906431712166298589618326352998673884868366101383724062351268341969022269262397112747978796990495970623408221896983227891211095455603807502100473827456046052086320664102820419157464492032426487310445553320297155047342862826424223851605895004267685473848402077223333004128784666788718556247899203571440039075376022734764271843396982583326313291229303884555614851669981662313960354724382220449329414570189857664622851283190810276717391780310933015953439929358051405041303462166491367596896419015213971640657182766601812334836107098849688240583853426863447841463465742444063598438500996820872996931666598858922510008213280705871250594992890679205500586989086905878381760577482209730463134404317715946750898136754596309052503265501481226599918807992177250165647275101634639270903903443127119030889104675424021877929301555497135372849525736234885421003580389389242957134330066227900854181982318420751486432736682136794003892476606235949280404662802777542666214355082223263631345363199391555821517458237202526533497578820730253394076843736527587009350207976265942640252222611089643289179294671893870409834897273086933837517883267755123214263267371729898895900305171953106071421716992858329128283760958292767063135593615642684310256751674764077609279360971171619845977129846652644312093644396060059084064023313258318033245316863383697859566464046089261386043920523725668687906771789926142982094047694145630482721104132269703937206872072417146780378914451582460970146715704850348215308906345645805342995881808679452343402393540908114896599278327683573536494703696675097176893291859847273502706018209513771232566503173049353961744052348615784599712117690204822572058248467525461989966512272665193276855618096617775702478842457128701615520095219974479255621460540658589666822565581559006341815823966969130976683065514681439269727975506504693692917572879719610981627393684822860118218375890042723826607737379306839633568494258131044480926457943268856564105213470894566871012116724374153488872192827941153132621168012620332180094859266793029668903683241157768789412712653790684087584177743235604923599470449675587148187612410610561110828373248600381713549462530993354089231234117205369911089287193374901233856989280987263489868026750873850104614884074848562058169893621554961450314518681787127157140506516807477430367261219539506843106894843989434505614926739774091751804812634655104029775883928552066993810713919075112631037488475211528289732064153918439835293295234205024632869931076830434825073060411366458214850114000268330283089266231846266947037391175515497868760617737705276737198068344660202353387801634048399634334656496850123696752607933395126274749648740917801368188316774636320806681427054350741003913718612081069388795993652312507463218961923974402971066128213930855940527826673438983703635492057861683406342009250155443936534549470626377360235166289914498369039680234390299694522097699484371635366608850771859092359977376567656224436043563409130016860149794441514473214198252360767742564462186098569212777748271934096857669766781093851874714490018493397117466991255630369018585783800127240303916039785583804594929549540507905170289766174808124599845675716411460924483975950977663782270692410506134464224594695609535433266690500666187899919488283703257968376198010512967585259525722059896224470817231457578964226207953585815793289374998629030455458972021054278917106657440495216612395968554282305129513052443740897602346915050687628782290083877994719728109422956171752328119214589855711171683579506125038902066577434892910301332471661348672744599611808791773654272082778851358196551109290237871424330776187291931873401286550229507259280374797382284577620513614893422330143225879073720475765136467946219156951971473714615514447422716754609345398964830353646475849763227535705831526404745445513677462729114015757204403585515682383213648994678851709069652322679619916121788862383575771672309354741040428385812706201009417772418628582175956580808113923257144320700365131427869486624989658534154200278390173156225472013411974774586583077675108878748480646822346268646795286966198562677484377966019311641037020357174519685360950090612740026823639442775422003089297871703189746299744810156386919337714221357537740549057547754679775612336549509303018814689033479032365670180645436257684535570919715435483932199002619732618791079152548431574821125895294602716027040182887956800561192350066446045754042525398434116350261166616466646595704567579694282518967906776806309852094182800726315604075370007361894202123689502169514700695204704296675989263078361594603258402350207702740460014531125885536235319673543856823925970592816718063849717634014943812770363911569095120371539907847866976691781811684649626115946857410693557674197028547528689309829682796945273950094420359854229419851381020405567044621993414284563681233115943987927144522826340345317172757795771893000680299930821692461625515084327344676189932413354659873114580458322133133639998592345574483706396350183157347794319754177166563280406663968886459234620095871835685354048366789886859412851306482890417743947425287403774622342585066877577570787892139475959034168915179376325149689129026847839574210215593573412633157423015763394153711923612832739789353541183449793133372308386166428915889985344738089489461652222165225442942203511947895995152953817601490496486639052620436549934553802937362649343828061205649665076278624296833735452710435791809228687821804090058770862346218911909791218169275237558092644301480168259543186962628489518228059988105068721796079955418600872006987899845979429862092691355460342295822264467405051905354512237715085293426879114303878279711899673753561471098290006311569718462120292319707742154644862662517482452509553289618161471746618139783009511505178371794787587071654039744366942504076920242124465128209679459803828809610049106686408088404447028198293723772096634903306992634137766717310070360082244450703895299407890656450522945803846168766854027360124467157885630255226979824414671414650493558752025831111984842656271961194533192160734342095016929461545528849143208681765565298990318236258062502457748954568630917909301058385210888959349502719851033982011186892081919972633613230471794205275367303796405663581988802348718238708441939475934368565399491494310899097482948635584347914184330957251055895291577553771161187869764904602502457555469467999342570631278257961200902416801116754632508949342483589173371901548086470174815156847433144777892947568697019592409409910743845502011846931138405871245809713245123315521237528215706500504130023829244905613088564462340399983935448527841454712396873906189921347949184560560258510036156986637822571432431531118200648084595548506569024337204433632866471513534480873768004007574509120348669334528130824139401749527146371318530513366882802195433820131560887980902622437978649282372596281607214110640088278387226385165793575357037549112323559518930556836846484551433014689551581087883015621153034721291477361734247366805659842984825469603874818377122133190884771494697406150852179102331693111213335701342103166948472160051623939595632084751507773384191149570922937265227826364287395423504763984848505512000910600202234546744248126194318492400002218452947104870163673121159221291114833147482475125364077951464585201289079431848243479721343089160977221104068683707453242055047908266004860481591433173468815820758860694351866552684195030664523348975475690830882965009467472571521098642315645730616872410045125479438431155015869526000134775576575582716946963787164941015577399236097997772283872537325772019269387926032500536152760215960440427095032312211439415501929824213413837159794946388076280090078831412175844116239985021903472634098166875284224906143698509554127684404433500357281618544326143182430358876197521993631675210184499458710151627376175676599058828139791683629336207316125063739008263301887613047819624877692541708980680508107479096565141421240182833681830447194520579649529162609379289256248294885657731196698679351401915985897757564399825264139757122733440250704313356282576364630040844909211020757305554396944193252937727316948814245804630741305345523779190007214521330386395461279321713288148531044738573226993886394493978037525163988225001707656855034523311528706740877435199455967375209574780921241236426838819214022640854411324230617814160729241727863618996877933178618880660288790184510144776126133523417189081421226893045602852235736774818881180057279719528117264683170463781399808678801592240779066276301027550235450145512164625639996828116055683065196503291779162377162512403041548323045837712051294040394786378275543618434690893359420372669801056653891752469610655447705351331852496212873658361741340292231508393304827837760338834096442127127059690348879359556116251450605960056539906011802600311490021958214299633253563210024664127857820663156472650457870490092297672708752326270298872901896706656505110769769043087309520680360299210507470244600089760883449073107051049898220556368726392001911037176265909513767778537042365861608322595619153381892650986053146576592334508420036120674046321608542597258357959209491434886846968966413179385958765647805851573313643058227842967722556070616125362435420358048320699480778368648854437277285210873756199848515071542816607160677836671214848210989215635673416349949900327378023788302670099157480404183097440139107268894458794982041568390504183488653255733700734917435212742475299361177632058013549231225197030683551494222110814582214930070096823674042861947935737105676914776403659095130586305179872329936312832701520570724377681276770530714691707697209661536588475269335087204799177127047852104524883523938660558116975069125022548312838987044943041193332051955777350742622451229590322088476814265489838343062312204230329763145904671198251856948888818192115440031822066969518027659714847994988370756213593659968199049869015693080132487405348663772136721813503735816228801019771159185646452361874692854892076627308910722176369684556619406353317243367872865988405101537698337348550364615629869188099505455027538401911044060653865318341600983760705095256172268953223440944218558545323258586827787605508890013728603164473930344714817856717841729788187756885594110050550924044996708175830647274849463737031713068361282753708770861404261935833484277788589950834374659615254972620306444279735429183412276891844391040053985115706337240110770316407090747952866054480453758710998825922136901639702890850784752012703471923026871163659533760306080732904426956386227468308371070377740164752861598994424513417955617493859586531394148702634903830681484118467237671755561174758622256465931750243768271420740194294386918505383187817490680110109811304122735406916848367126763329680070831171626745111581310490241982957010624373782464621124776833326037243769628296106511787352023644208827524977882556904540251199425583476862862708780293383248298448433438288143380807536580135330625847639443471982292823550567661158694414102264778147230279545857652199657799668198344024533156202195890786180700650212354529280051952009232095630247493198151976171276755302262425967053317949593316130938419607513923138498651228040596102682265765707983805512782686637186841754093757828416149618865757356023954764127826854258592933758822843751839686268340232611489096390438473333793418508825187802557634140787307259385478541082619230098847300185857855591962151379812694712334115583667946967274603681157324833390577848303185357992958991049744658555313733935559200490359874557419712634993636026532126647226491028615435505377181059178581858901133397205881780908019156278319873560348625232572010251571147295266012244234892761881654907703924055962437485063594350072689255066016553863907279277679918033666844934875343595523152191160880667708839967204315054713525206363123001545965106375215159487270902768884312580343855584447777722251621848081784493478040119231541217260085844966244766179424876845032445014837335492409202593979946775620967464563942977437662328244736768730327391811754584802719973428261513725124543221250643916034603626548992676013905305178119159514655527015511001940003799133643419445331225346164553093635752443526272681201106333248945048255190699522899857841239269821206405173990910260239289152982427637802881506345492095664924813113159628098822356623751774268826027237945500734240733891108389327730340762188278113503124308841433506466099216545220718357081561976684862615876555293571585146100059500183896536304912680147123656551228346793099363635849352973270117812457853183322654654100592358250179651524463632470069807642434149475970217839525660305296135980960061926622113796890937004055413617443065362271242820166429036717121839334837207547495053105053840336925704631698796466888897399983492511025829349945586391034535617900986933283428349938162545550040985350872585581583679003786189874512284528406839609069416195245998629835103016800744962081571930657030682141774860407179763980343071724410018556225158042067055616631555532313749574409640909960096034003932728119846517663922597531803847242785300866396018756572791750061972810525960453357274993178585373359086017665007440922362405082864325766910762579754328368476794985497813078049132341138371832245594491750550644952805142907042332429939762913605301508888144220122205902955313647777855904936434958472800729530511574825225843068107627664140571052860310268418943552299472898744377185599164530836671323141932103098219385364141616491027348216203182961909813469834874596555292142527673161603689265887867939360195834328816279194203164934002313183142089997795971064792798316235953261091489577931049690196666710260580033114314479036650070542020139696918732752865970074162250239330035594588436693562646012970448353461019839304332307151023708413575472207111552449226043115792331352822033497335185232425181859303746052114135855874549188724144033543658261726023202924471669776379186814489135491399489936772863587908522641176724126710846307826299856373041493105427248932245679339629919180827565022367077311149075553908808211996275871779483988797625506960320308068183828500325676644819833748213621866039575139652652379268267665217437631009969402674425209295433372395332151291482559473803453367739896862401093558885358666454514117952013099799354852240661152729921254126523243692627654067583155936435788883545810937640867545812272950441376493653189453251093698274936841242699433856831032602214833622032547798680777306986407551561612431742074524397771714337310936786038058762923778726024109412794987318399644587751538044332083307931048423028184958542918991241243073589108563981837264111749135601967262901374445183706238093554642643577427833353294115439442662030469333917145721209714721782186352734564771262110381152676736381146603090158763043381159825203609999315609088186099695457964914791287081566787354112050925844033356513251895755000853953138336020511818130862017837188206704134653574678640551892557787091837599332435108137054156701018881737194400593013514461235877565626985979687321615225033504735755967879327699247987580577721836914498282466400851026139963903902982926042975019098821484445369286337133847589589873992151093308549815636586166766306385229561019875650540508118132378565202443226650860311740295898045142342692700364812774636852050138683261390428896004320384089337192239958431235939290035992266651835165822194181636745961489500628727585737937795695452411440193344823037203631256505382250747298002004380854357019231293636405175128832754852425874032078377080292515722001300646344236309237499456978617878178832859121641871028296311790712789141533614971640045280686984198450601100408755472666559967963276042268022388553890942624840628702760181729928372834628643372164128488024288119402947077750494096992244800311913565450111834557982684760442922715322005870285825502374754527407822937435906833881600293246008630638533580272734842006433702067639407588938909937738687189768100376305283866157506190427320012755002583295394111667480189429790849845719395503627845788056879646099314635586041113314974720346967562905353602706135931058114137079540031071277071909611176012941808573402693459247307236908639778689589639475504896130132441465750510868245402927503643282518530700179434050516605776865298329153232649379127111709407590178854307703236042938984233721944071324554918252521465632088912749136846455039768317610992229811561937279721713376667519003466349340428359054669891190428261865139374792136429218561813121468351917010570751284067449910363817258519192335114845368753240172777600567154034913473933997751181523867896172746912081986071077577892495241701545257924405683464734078718035463286936958798011677006695930851597180927788592231767245665189155578254491559716460948511328957310279351791684781897470520182009208050671390325218343454130291873668055122252500673595028936927543612226046148596709162672421412180106217918917018673926111038970770111068113048740312239150411167865822807092410558993198685329514098942919785369054235085855372264618416602530319635510363230311837614891303633240133000511201264486874810327529162815417412282249003082485913823280983630316508068813631688140030258148013319324646971801065200157201671950324033106781075388820965386564621621865185149124449212930101012993883434017641902049801936506729597581003233425900752841159080787490865400234594576578449437082527998589072508252050136634790385170202381913751312255184910666225951315900652604549345951844664459262999605731952347577103905483629446033895733362697682156626014177356736357791129263138933944407749897546998927589065284839488985969672652999351740583597264325209314633947589605738450394294158942446276737215141444021087195527092987281073067614939221309282640015271882700634385770691309787449253382804715953741653558088531805658858136229696932235139599436291583849062492836910259719769624355942795981120919268550481910234441365733298703327087305992228360090421475423514678217189755309132257120067941041624796198769067372087386909105303580036848013143439025526577087173089406240335109457535265547690377044514588102620524369963340503125688162696622933041548044040993021021006032572742336969127111389084757752680838264797967512446629819848736610625007704210803969511045127331862857252852764441377673146348788793595733716750201823201327553581826220167504397033938458339797494580071571652926927991396068953070617494497372204901326937354036653072623281852966712151448539345643517897860207940726133736071659744511995425118378303829422152437786963118384148616363852692076086800293283526354737530316482736530026992456087911681435412209452234181308635002025273737202885646884813285560408505032916331559597987350912979912906176940883307493870810859448042733660724110578325948321223692838170074314988675772081773503401820814313750144210087684705515108300512186292741790945412440689571420851846373314357956561088471485880253904594767504394334240019891562273275676623030869063117718939671154562612699626347962064619206907059708597706409389465355036872266055262414275985900728268112067290384490993327623792209690591903962630173161292748680175763065459847306736328596798899897324350236392311956031731646813602797333352255843881709840562595848093657489944107583718010063169512078651444023692304278219020342428293198929697813669954311828931914365430535740201133929767411798161073125058715284088252930483311037454800727143122204343063446653731473396458818620129510936025324977693451192264482662893186054122322993985644491269617286109317080765028416606221299991088563849175966328145543371216121112310510974082741115549798569694876260991835541652043405276084874601221067989861422423881231181063846360328088252381471716323307819833410166504181571931773132919935566330813596022076194884740161728227782643361338336850529375602506643583523144983176395939577730386617750677099031135878654535161778539989418978919385998128319901107426826019293808478644569976261962900747921070208217561232682341404388392575545688200790635519448780275920546426904318182708365834811840610752539242562070517198906646651805508753267267326489358464438493565888228080601137511922150676744037990714869902010889694396331192514946288028208691411545772405264876568283979063083420476635340907557641034645246947653449178693457689159597435341163356197955747246416576207650628201838931318807905875222331721840329718764960550786052087398155684019331103387234581364543917320414398398915516678258773495357898027365933611410579186445876443107459145978974533680237824985246189663045765166847356056579341304097217782736258015154544011366492860009950965741131788992682876687562786176833571382412726076764930793288305859857891083684167992622416178390166136339511765049378575753783370383845718567270770629435827085324281624661081258977555226652507429920500458606181963312682075139015762150444930591901610222007215247530266794100165204571108096045203789781848808419068799054206624030954582192052143478103802886067955758786427165062548726645612040539497836231711814868818604748546843156437370953826542901689467603999469015679980447115665890497548474555520498686134913652472473600356674543122962024153790026653848598409063217177987087639272466647603740119027292237391920711643108899087476348982921701620875492547437710417507442225483289911628729957349058298884692472481354834532613684552601271880839235737606307652511293090793697841464099898764520541495491362386333167523419482049926681009418069680748577996388964127181570155279778679195008722936089639311890551619983399879693858269691093425130041169648799647793530366439494733377834838300515598495560721298757662527378714746418211061449611175967861995555975466674276684147526356894526181409140399473952707007377262642005265505291458887234661745477075249916238548104415333048371558212430121510724720198348083359892016710203742102183925605291507361973702949653264563555121550338325784929772274397054585260425383668378308778122622160567191423049044451168879750896638197465458641466650993086347690306337404476535855143560927587921848376671603351939506641199085812086956634750494700800319418162288140855219381613352233770752621750153813598771313212332005042853344272491106915324695892862811993638711789968919031313943068841829974331422695139560021582154646931899173749510403515325311322508118754948885258624373802138809582249644653015876500219116650021315836860972073086554048728829147459331914805305794645008920903833361119348840597145839143457221352457236315606322068768760457080964530382558201495897909627812957795614754985484285212676265478885415610018880049837765303444277955122157010225750810784685437239049474992730221469312537851571672148337709505473166575293499233949377543671145437084292723657953878585419280604246489794687063290187977813102001636175875173431879570740263714451048548587982842541164725250421973156954106799957480245423784952289469426206223072247430408439514798885324540291913575758748233167550393124013923035303766507969170641942194215578453824579385226297965491264526196702369247352779699002103515359265335919736564724137261559326227533156100172054668938871168817324617478510892186447827402927854648944835559523526495551041371122803767680481141097356339715683081947793318342066437187766114375431819081723006039690312263303134110711190853549263895592646337552967186030701271065645845587586890632833730037052935680577899783583562647402730466900847120902664950060733755204943487374939791719260187644945372925480743967632407980306540891192286786658190197191093102524484121358216121159357995698095750589939917962795958075093534552636774853330123130094381343012891428196471861362516186645810899370372409863223506657596380566175443323145513799422933112942703112855266133153579798404197336589248278288185794504116016748057429438454179689100513190680201531779527824775909631783615641347603832099802641634012089833876206563729813530727084918244759138266826493079238362542629424646251460436684555114322780425339302222428169871955260344456316754430427487952517299060493723903277500191020179294030185445195208687114663477878220326901198789236875577830120617264027020587684626694320127324987988445821741548950881414858946993678574466821661052834154211782578531556056875564409209790760508144993048567163123938494184203570334967984024021460604957273735775421188641260774139354775210045274702263045789174110016733657111177369651216076959214628570773760384097298698569074305259017660745809752123233886406523779234683870508225660288205904174897943135696239969319591996214308863272792270615014851811413290890790806910596184853470042901170751694082463375775356222638052489772953142817577252026441847787426102001540011518844291783844747185931571125045284396020541412162124054811082531017334741574513606471309812202671281047986457531671813636432162851046097020928702395796676615479061828553763846624750234923595948117800704920662374145981716249902592670241807905274194647473057846235072663376562564112644121905441421979858523137470184373854941771688387386707221023284720941338081418076583596077721266208373285863365909102976535258621846045872086902829480465242748218517925063521907810875565937466482966044116985499537512352823666118142012976787398914145131630533632263851864860067476455089911376661808825205033585052060509232602075753806339644760926600726196967065949818882112179894978847535762831278795116014607185019689174826365177633691699331196315883265031995215535083869353543189625895184894661834977962819433322403937550775430802846482950026835613236393005237913975609503955659878696321626689124404203829378296807174353842325623516543578386847739121409822977015315930312308994627415971706323681725417176576793352101551806640029726136099615808972411463735781726446236636029258304922566440083069110449213605479763085066105736069601321461476780488285076710634551888480166543832138868759796475367783402497475625160164885418250173184596436034446540643070597614498575645643350281464078286183800014262990042888225972357494361008567058859952678979928963751005474930091180304399878967765081329720084282608872986628540491371686560296316304276876941725512846811118199520871053416718155032464756298959036412127447494227498791123149493232252176043400705034273117991136913725046757320012003091474975131676933473275631028142798051151550275031682832822950303099526845153291696829200222598342620699191931818662603669269758613464030493846404260736280217054580971046088304529949563332314642495996630501873900813128509552088691789558531378986136646135716924878817979475447843773115431768700843178355056155028501722537820083538588208424216575188622955764203351504306361978077361934042405833227156863450856895775880456149257035430785740473300183561450065254328332089923672741673872017861593553548317760009391494976204382805017082610029980397243877942482814475784829528096549115332850837268905499512025912000571888578185315399180728963611105285873999303341881262751840069146658123295799341251435762353852148641232317098379861957062153378651042771888004143985370425997985088493646596960578918839956244034355118679604957525511516930846888891289226750879203901113072726280503330877085568973491294230027103139989975482877469247379349277880970675280238863633711850402216083143485434986639309965476772044944111473791771426394820673431616506402231143307263266510939156800515258589693120040369415447080454600692963357449526385281020694945004728133418381145105492423415517186935371230704060490743807414416230218160752151063279131780475648308517563535637693870139064106324116004635683181698650965888655749064471454336485930275125934334164919644465215740058353409640391548004356095299236247869678133931106403520390504801648265464437921125886215035772543936203565167955985211060012157744264535387855687467221134821381057542254102675867436787787805292343307002760034548203487685540216714517517000656194158590387542869207350436092871606763649571866717093735314020643795965746224562029932910385755073881148525531519236084932064152854403018552493368678711708295825959998435576661920440794051760523689853648864310866640684588832211354336461379064611498212209490535350216290267958072340049426353758711758025513204641473144736047450404063922403635629172949863160875145928350951041261254083070411280826595710652729883171331769864342515376125980052081483384692821159147505655775895771730109121999908348315401188397546397763629102190642753658728364262865918927442039322372617167090267093319435728033240068818411613476084904677408951233012222843435828470298982636496715348893435119049678231407897476474606658794078684168094966792829692699870668716905697550225569080441756906710394247701031368590343621058023551061450917855569499694355978399788421879964850421770995237192732720186144790468684327272611905277380172338755977824928681807356559786873498076941571843962490646130957842492183469553062604907377488209145759202216254794580750635851736875565141289717095805680235863541239422276067737292591803936049127637348448072416039557672969831899314600107882070627944535741292183567257417404432213515125925643674457744260826481844464203206903132247075937134820942868492957509160692921041340714760133893456162479875489550465903248424891930285272004380948705206103690141217157495218829397517726573103620210272316861003301722909167646155467019320712763120825999560628789470284997122854563654245849177176992627647689956175804093496297899117407909079994919860996579147883082386507670582215931753981379355035180448519663471357053644015099447866588810267797133612955244754239532440056708443475372868102634581317564245656286098772401693430067601528884360297597811567314322524275681971926229785435454972423886090263238490134171225711296221531529292148320007744228262495322069357364471336231424494927280628185698237623596888546908987173244138574087750773443131916698656012049901000263554255954507644981603500170486435593096855654120115149633051362173286559184122208185982070790233265798486022095554413689850388944731823894999558643307056883212830285202885070797459984227956951781807908319040222890542969533409458880187250403511171574401174049543961370884448647485505205156951814037660352271529782724592459031985586969953346621651125094107227537871276065152681035005642338167848647552438133779832299874184275947384105265811975972051222178903275621760324182783393132103983060643444315174026938016643372615361614066752104879964370299532119086794182325655983295772367369837183584265042734351734888349579002026976701802882427764363886527375115040095591018884574907101966681321942762081549170952402082317257721998465500622822222806599160846667868586841198242434499861109245785623663841788091295566243568974977496671814934516411656305797949101446517897915996624739889759032314027937686833596477336590905285462395021803764479119353838864619543919896415388308976981068001233342820693068629915061320349024377855177319964977591141880419212056713680514106835854026857232518652351304484339590478947314370396937560609787481384744438756946038554881690560055636353174608622820145877228224855258917438448014782398158741367991603143341546445063796045938910427907613584575436549401482635354448178328293836024316842368669169097882390824823929707618154152865067334778599340152452514271968731202831438862279335674452247324322358818953944948499107854139873774624877983735334051556435453137576088490513216772743360244526834650166007583825199862513907767846242120181109065513563637978901627674968051461441607642362994482172251321834200843263757689037296561260251142753524190045126427173781893543222417709472903153493317410129921043497356717529439779627538196275725973291334021946594154694475071893625059185472445372962255922607564039556001410600208692434878641186937876598028671403612582405582867773540273763309298490414627990883427015192901307502942254921468121839912438916195576292506760905039588883476992365434044048926716298568661121434646768792171919749909946640296643012114545389603471458393387455890330583245981850393555126938415541649523745289981739443675923343992201732331926660383264416298546218448730437380113685447878973851631310851985607470099125121126159192432611032012190155743333783629542568953667979417555115455706979670654400857917307855645093130750022168948030559955286812750673171539263383632050699580169096896430696144830049385099193039249182092451990958676791761985173223661665806442232207295763113793069331443035504424832221960134892703329325116344143716620679199825707982657597850625353100713127507562072082107048440324222549650916039007741689744108941568995502767724611536690128534877531356408493656918847635889090324630443999310821108286612633419260678525617905859591789034318815732272710162781816148418105455496787628182949931906440796921592317292833473591212687235233648336241270021867032046242041038276080540978290000337672566298429092312456646696246112710014255993509821490145547105606042915559170908713210871021793828741494317801660174560927070973274432502774436208650985017924057995041806295158670608004886982758378584968775271241211085106334646700493531831350580430001123777385088575879617286974417178101932331556439491223666904877126045588732561169153530911585574184372566592129212900542990687836642433441641129003680690056206775709413976266763947886115744704152792612900209839345917780590381923332247337849286064198816846931587502917299026306234948645348059274765962460287857412003509469598930523797515565158449912362044980447868798498782000686838125902174312228103166218315039497845234751778024530997855492913013052179736926467091148820691921354729080898243861952560323249576652804774364570375084843362549589484029787996110949842666634871875543596434166526140611306352952418303237358474089831192664940275662323541281197469656726325723837159711780968412802150227009280942649491131596272260039173646348508227157329057265411870486793497525074507300517879449847465042871668424039245141226647121578713610265690430361744039925360251106960613457249649229843300810830094223570039447861205984801548268317848499043793727785192170964338039804760596682559496621059884928946973958076362648513716678171636277400461662694127244180693622384013326857372684689668518106167726973347584473516024605246570703418837754878144303250241056088915315611947853527064315103543426078205721081871054669671988348287488805499833626915377142786587405058774349659368979187478453595381635713464756970109523115129150602656698728879202112164088934580500519680512498503522579423132014950934724621241241337257350975665282247210775156591559957851362301056293151845636533470262675296742745658810313082069469721010554500987450860387098950424151171320427496908433577840333336354642057145016267417118487845333612496870543443817247477986588504491941314795199656666543630645763951751278430070486080214663983529453905430374583631900425208961998859824593388752084068533279447445822508714337402644271025460377876644722856430423240770704549279299515736449003876634864695133093811063041030989628785728636508019422150260526964379366285552340179811176999662949044233984517136318948705130119018746273256341751202769955130533376239091922017623935302010063462303084702737953779569851807358036232832377601942736213432423678798227818338020713728209098906603720656331193243533819202968437588935490174417804281307427445583920928627378874389076846051213971946556019915563910885251020599819956131144651484186610870010158471372220118903883236876347924896813734135584391620507753732448472249566702127787274383690066317659378949471169110382665032374439080223777220485425547418384629385419447830215847251181129956765701968692428361123710498424916986570119182801635106235742258162867272427915821974754778129996403700319804447168414950140645633073363643722737590530122207432971410864980492998987944690317548224722027398583857604396573768227185304523767198883366989547274047451007477261921508322022468702650523436207826513151265030703101497677261721980813370325923060458140689111960490618069290616485380143569972418715732902363335790545458780436672830188419250314787240284250146198767683675515689977760141134735164028724826133425909875211306021200122262193255897453701234839674466188130747783262460100913311259262590093949376807428655448759905642369112796223059310736132917803257902085772562874520308641353118995701075483010435125293794891073632199703576203668381230611142002956377267363463118121428333096225431580813620682257643893558859428607839325968064169823998495145277112025961969764388270406603161968391829798772366417584124849098087766732301672866474357918150722134793697138577500279366438363037852282372785221396362003592750168526954175640533691342996716689385743074131463582741908779141733865498012376292868307760790834158051380949509151588808680156709031943248244973161267943663416442221406229567986023731717120845717494872106041310693194770562339581764120957189410167936924962899607792014148704104482092777639255773631093807126979688693115709487964606565500981869424903154364677224566864343368242378637299900621609401395165596754828418937659944987690995258678587370069331388008989247456451803961525680834803411656015512781275649433018035933008595338005332121704312907708415388906597403976833774589293753138760850552577042562731310119273430661498572739158347645387632382706961062292162566335794829104688085055072878846723310834562616566093546546415257044881827523199841166914497469114768365841952474610883298411647004272937005205932034767424400451756128669001091260557041174993792997217135016753750780901423979259945645189205485268311373728949387678628161786982205980326576653301212672426380795037542089345087951792321690162881377304897696740900447837865745085315431137019180844319866642191425818707941637691304873158734605049703796156446901435854339967740173300824910335861439612841910007063884631777593275006110307685486982417061519036269687689049939835545168061449788234470777882258577764172159244724147510862498407869309601037373478407672410444612459061975229663452135922098148930823833738193669884331557492692233200941616260405460553781632635166248994453463561290946498597871159092356841085118956348423697708164820682324204965608796080741162609391955213457846783141502456613156781320937380527951651895065508163562629145958378204492027425265070400700381425167254080297529173002455225709375491821646962656076570408375571257171843586970984116586077012670549941926576368136687271068050979745368207335509784323585051409239472619407022140272087744140804266673145084117209155152209558159060723188954928266203189021269283595396946884772562259542342394532671318098535650539941111373173105221468986718450494003928678211157022462892994956114570138140745145406660647664618105269231555444643612708934609309076606156798578691946561560378614446044243310773775424089334372923121079630069989073964033041379682440029342627859384792163196211200583970716195423226531103500341357046912429955719761938249484199899179325624345687168060749482389355932099065080952418747559736702032605419018072036623355057643798460992312103032664719012752515575084401143661460312999532612350201670996990048002566848032368257826267285906108895816139561934767558822782221618421526530908662935669252231349167313812967940433782323551963507456114731061752594935315880371082659475996558567253659998672979347305409336651482687240012787270426298378350233467216077975422832981453596957647194586653401370150129070339141814964374034014538115202003942212948252034173036064035329913961995843493076718477319925791571359681463396342169475043418829838059062097378400043327838329155351992117261815874913866929819850268898563369723797287362672805338332452259285859738521568233312236775192534595984971814349829853845510587632411415161822780740411315185317749786261697819428400530921920497866900724893343229215851293676817923815548011176241591233395314776177724831860432929326176569701589719174460516524628087595349681961978717765770897119901463089168336378665705862857207048469329280339337432847254990080107622858130858365719817895909026967117160291241803384339645469739176245153254784963050394777800595873364573864263079425498273463800359702027740172273638797434245055895079541764786303153404084646661899643434313313499998502214792213849486493184123815108949558266935178989655912821815699005587280912300233478829322456169231906805641386824397764350214270703277185894977111751551124530730256338091571727119720949419151249046876173526666188287767244187763764285835740186732975076884389559607984938484177123807583439403840460414238373971199033006312716011256233066044551774497580811750794575257697413339416032078061600990829382730334845444916187064450012404954294489435153188284467267265735802520915478684222998132602613304431391788209069034185673342114635358477683320400291703819756004683082967463087619989197646506234175964072828700786509914981855299205722255780259385245019941389784677045198737960331330685009169499870928542642576689822708086422612485236668957134949513153144686502350194248497075785792277339342005656890677153770218062235556030608021914332244957667330176224288183524039229021555697535709496314373614647833147897118524577811053669980218292814613627807382988605235927674973861972756789872697227363923989667072452951952070167821607101935497371690594931217377966478228942383195943909758841207230813006831662393056536103839492929072237261217402209251502882246152098107348635852794986486746719383393989922922910925976575909323966469128812673916474045685699206179154277445627656851051707733596100903688085568000220713844575281617532824761513053411327187386226204897849119474154835431363401748543288414404735162166766761079805732259182900206466649711007978101154452958303888941426147234844299094864685049945723690416593295861474855852269716959652874736544806015867467194109047468933413447427358669717067946042910417640737507248373214064242196444210245789269093735689415276370884303009635302896661052391323523853104243177613254835714662382361143551388710096544579488483093059053785402350062494655153537050290558715476105703057879065805007338053238840586143152881619630442548695884287026511342055771812150630598807210362676916838105958057808140713919108616109986510921579983038923719065602343248531335012830494995161508334245473310696787573570030869527995294151820022043758579791154786285839606331548015918941643614328762559652183161221103877782520260962523066806438991281646565318379815906264980534569743518853120839635658752730699954408917243602856138676878302837831674991557311113471235664107195154920530038954924965717971453242754019918579674661511225248650864625676941111365067387477143654353295789079101621257649784914313936338884433145660299266834411557189907164024245275122657529269311042607366608781483100342859166182826335678028925079764276532903275923733462907741122815567025940554690056497885644643013137991036537487987481217431039649540321732811841459742008643044987455980356930168454486810143718502329364995916217855858411560471297863196650985688226678995151985661084668649117220605607762900521253942387952816246347143164242534836325432094326925049002047204814811138150576071285122454622907412981772596013532842963714182858775350810028358637343070628172932299918765147803430125569212023334182035114952707912089579585517278984830737073065681405576929962997212036793664350333152609019196003908151279985879564901289629637521360159654636751045758883513207965107617362175824466147385175332117256964412916023681909595159045102985419708515157930979769509512434498539213329279568996870542847926667774741979255086559785945276282124778478859998562305977773784849102590165966942731670816119058983938043676894041533545085145179177903667828711745626589297004037188548431331901443350218924825935222210698622168216856773582098339605772724057491503404567422982930122988627041547119782995720032351587803632677471211908608348973782954985241331225597978795274259276756871253578338835213434867025837469318112774372023434546173575483434438530264704719867512224397731461481506106039054208048044272455092554524554034066410646395268367776596510596058754678967661378373653050479248962336630005052540848005193865580439961879925301930795414726157930989985363680312071009145201152494094872492929774631541520768271402676050625234437709128980848241808555037246351505498191736937605932682316106630560161211545523692868642170380956714673004513733873834217196222564942431097466379944759741437927011644171090283205461285280541615235790883671094956911860168752548003397541650860217240125027124834368656692481732958448178131813138670087075968669402933505219182033773682691750310109943221814520504745341570703208156515425995702073602949710125024022129310982993313601125332468952841545615783611349403720690224147932269150796468661687956232448827269405425989625363002014447951842030097542983745480097592539252722742321603929455059619430844568236756933194141344323042590229385424034464905764178558879687554736688335424892269725125881634833833530393847722142222648613950710876766867922048461673365766082188998651428219095782282386669789751955181814864022563941730762657576552705353183532243958325076025830499035522450439781466390449523979359173373479112665895332197787251309845344254948012189293634113197346020557006427987826374182383669038991456189486494898017365882425493325439288606826798699996593160037252003840307624042845396183599018914080822584639633966896141013001154622625767750274118096631640152365143022790734428112377354472036102052305916275199038322780869975661680660211180642494173766507985189434314663247595589521173659953165749283200901942938839176142406427301189307075359416183184847639659645569948806858322829650966123754638016310979214266524150461424728547106592701625193088108588912796835179277160980076932698725277704099813600087835952821239139409907993305211094496352156163102204998306557315150568606146246867334154682202960057117397197476636646161650558540050432744205442112919634953878285430042231147640750501933937576048343816991643625718532481104607497949046201544613593305027059625791404611214981045902067060001378027040150593029005450298258774534975833281874418977332373637391261292985337918141235684997921063361657508538159877000535178210909486899582366767042148389706372093258661365410192445818014401502305908087591682157526426078535538154271909607846051502911316281469665727779175374781301505980421874096433908758480345756856033556410147881558142591620327300911820107944731875748320889546153699938177809660218302727324938564347303744799695741327650872464535097904933673271724488286199789594055236271630051990388626684022639028855342855310020597486216285646197625011553105323082343446528076264346088156024779313033828674075719895532606612305500315562714246798869497147670017183222041649424261312388689101195639463218389327885131862488346297742250657730506574332397890905936056137216099713675449900826673794726197641317972595992022110243285187976063450601734299578524609311165490181508958212418906054926799465158106679998662028039156145748538895984385147538116372659744982870832684666777267328517125809798698580058323457824957523593113317453838881839086847252661450035815716530317842603239576554457580972309083333336036662988571351452211554821122720938305888846209000588766217764430913777782811329907574380474194685633549475695637737554736486092872416425033788906413342086531215844026817815596386683149935375243950500127593008002085780713542501105683470422724239999612172942128642015398988965022886836006993582821654864248668610072909422894720848256482151639118999267397991579760915762248627129491039417061139780484644143482177624963266111329692117427909401628745306686090315259771473899379781933038067484424077464221888694884992208931072142375405643982508350826843794605629151187606486896395063460382758469265173100258615881301509826574035083528439276603333730050652834827899719351273731380249653212996821886221825508239196295650890430197105623935259136157182921462313558595936454458058916660545507797377184387779187386387203031527348111525216223239316183017003168028092801969609541858573068075574114618943272807950621483466701456785830670660706288398576124627248049450717130973956736765371077619531788339407931364026080428062392583082307114573871464186828963761549102395455099488616574976227958462653923919550249557248764715761276009813250764874123276283563495657403151994427296679312596362637676487619376474934794098308129951195855241185731751376660242166454017694187137108275829254956958784652190392761901572806950422667706973231667277101705779152716110075031641641995071845259265409834464734300835243829859894037598955337768900308630633464162457228310103805161998878709484026022766238900076811337951667471934476029696726426594790978781994085185316184461621151157428427836077470898676660636065093605806404891648501966015033254172757240966433080008189540684206914895357092449682000694947421810200404786622707542814992612490875797179910221439609567950113494639613645493622015588258033950866513947197197677565962069404674978215994198355569407001659617550978832866324136857062448570403981163342340475870418020597297702190659071383782802109886662942974051729607988396076714815775609479529843672833591461435534748357433251342416639569465382943946611812661791428271876447874883610960056046325395887402784749696362999708861210962582196290820994243984149285157706323753203725200458289106291228958514255999660462886758155489933470555428871720643064389391086988748024015292760230211915679874195627920820527435174740607800186540902654628166792648473676462893087364757398669053935374605866979081447783939092130396038938420012521069406507772671740428824736714121400182378936184423831061439609832858319119031435848524114919999765567892356893971430564909223614878235928883164530524145853812682637721964378448042317827661566922757527874898636002916108055388759912788437243363327790239773292088872315400460483300159509968875592075728634837698214044743570431539120982563107254517717193458511448576868618819341382874708518435755120557652779761678003633068546356781984978886662463867665413458523967178759097012151852121052495182523514998054209289869676326211084505555409817798837437881887570784934915393300736576745182703855554790131991252674624861474417207912061883246398362154748939680377522553243752038402500062529081656621618227190684462838028805999474290715397621863342951115918669461966325973516618345672270664989919553537901596691657728863344118530078888511110285871747199098257845966048112849509136942980525581298384996941367064584968316525563213766988012378101518287383438001758144759183963374506402970997337812319314676760914646601382180843583120453266057012468061215995998907899470715699161817462817397042034781309805600519625304026060480752372781425848431614199909231792125402525743286507981567279004503749462033557492689842523284089909946554625207094943096854145359087146735831077865140103189182531482285345544266717568880520617264492059017138601365189873422177692260707021686271119649777591959788609517566989533288922189569796634463069508362980795168049090476403019237799846652411922215566142298499452228003906794639551428231034148787904736539528459642056698476463241191027315466373948923658853367006990644401854420138122472987311137412283139264162413620632140744850747344203672747650015972742693214166448910306061346742760727463681882406097006496049450753240726952230922727476016075439475952680679785011951552545777212277312301323579709160617096589535718292103701364833256728722507510351067914052779771933340963529004980875716410086561161666182716098847764800378902784421412605016267315344275364873805495123856455608581254120723088226193732774616533850270594408078251364204188277350102221329228218374698663955772350363023851303286834158144467155557952601599920966594639747186383791486449525073912535858536103667737383272468858788323280709038519446852019708357173909315407583004516030292577662951166738871870663562545208336081051976563652115412268172930255855785629562197865543611953216695150333361361042360610962966916114816558490885798113876596328220391207759036359128585929742847941410340102138701384285689855475151026303531586051573319124005852960367467806812408471379034494080256639912050774383257361725944911034335986657704821356582350157614052365319228006149425911586000620555230871448241716843616315173204729956182137345603563296420572255702175706142536880230354522980202049538106885206809998263730807185722443749130609079793171543052700894480300657213980082909149311061354426189953893811810750338744434928064232387981220497967241319191417421312318679511667085047109085182812641593334708431505906428117083820114589269960596281192650919909915553464892521257591285700898671014252690474099786610369882184816835474695267292823513611519028685370899342779661439283207562048121196156014253544623755884201305118891678445773737136184693814986433451916210429424959367903316212391360803286042956442613816338794958439024642916235045519444301790010669569311642112304244194110253902049622480664158415931743542882069570746719832652515533031312167785784036778593708402971277194843263711620877385725193492420147369654824376797910218846889779186143691958989326743156638547289845233169596919508140570456282527540612491720907538089380577815673301298427493475575585558919348470732081699407377177347725477430556904566997644312167000273282005643785686129331173305933772779061603134533042137765143278897336195528204319708375320742674773461404400841029099777160665510395353041129831171093834412784242210874791890199262708327146142939627036685266680377657444640250300915085048565579001336960024741567161185172961980902643122613481618924364799877154162700330442153179617731886330652067482362116900394246652947437120885735644646337837075892868811729203287786265998388800913931214876015821422440140222847311112061238115432873271106504692051611416370627104696237500112759377746106352222184812898024264698217582787399109283006068037654445132063757620549870034021067241842063498726759775462160915580584103136242200994329139708807740252449243508117959181502584678654220895081582062596591966474403212159485336805804361132841879055825371368355272061492969962651668189785855972074517362767989945717319264076283717926565187856611943057507668523816003048202760957835461554611409946981419856406919137116468573904102751620428828350913725345133713419481375308363631108677787405511508851623633359277516782646639868989785066862217362738737215151676704446685717436531866816281222927735435762999144897380789103358388524121323411890093678383244689536331167136465589173311207381825580589071266144063972444019118007139579771380974668885368497386723956662797418525670874754189060486074982422634285573526694001013793359259513084834286459339511100458586827588885760277155057928301239191106776847817567959895564245630938574349093223878540665157439095632865862098301867840974567652342491740224204823038188320174250792252563541266607979949016945863785899196889003411098548116787121140481552719948003307423401647720447277156671426135732634604797258424221026980617861399943767943553390221898671245138542798197056339020198565114717882635289915969181766738376107485183712088402904190016924467576662945662236703102124092738866447709615024108732420574952966074428410081901207454418665013974471769677259268142817259818169563380882020607902140160226321756799010755457541901631276278651840783895387686264788327879726951865098764320892644897846305862258562690406991832879678064993778834368085303683221891605975140741553286754438019008748056405056817620842999505462505553621092860955370246322873366995443942485547000751619700233396693255189261038647188964308520535679274453355762898144470956192919169428347673949397615481389710932735451968581262840620532222732266810841232200749769853758138674492883826191438655569371499978194305697859054991737099171640884813660703558159994683577266760610732603933978425060737664392475903757892844802145990411389464670645270371664266587010739226860489851858685686239759679430917094173814560216191998653721610729444582703460723058057229151071663483712476990626308364869492718863356579351370720739499369334939980230153891908474092650949399680354473721294696800419928730471894645272883913204190140876799204691257670041886248011442076167523725783097481355395762824774405876641625355593680316374630460618210964912304927825421666646937862381903605082822203816597109002653136591336076607720302130876491605285121414369412323584345613996053538510184892452813973030590710902680309236176340713993646221572577032756754528841502610243961080411792925647697693127476899532493025454344370219176614771119233117601828489765808076441962599389765252568517056818821783068095977594889878222014380979230671085774610659749160848814547025352740821840246998821085479494650131553613304502613810837874052376208999259615570579848126506617520862794325361863298880115550757927720637398603030856229765097848914681157728319961056842769570343808498812017463013138058733975874261383577654292661003995969737426215241563032528930442280938122552107348254127330144660868556528429753873938195448319340322938728963244401778363340444414244270505181735745834829356173526821945991244927112899925235899834247755028558537592863930310032143989531986486834907794658011675186861512319315973358774844780690168846190729293551953727024526476480969317688528719103540446064849562688377143338140341522453788599874831861153593239408090625036747367881863941550303312578002734639235824684012419163344092041772963287952290340881409112221148766275680540273842681981577830418963863786370374940700243060743896606814419846757450048249647862830863576235695847489897626819289700966571977731330241354420382063490823349275253636945310299953046305602460397228163665219756845761693243093068609204123784127527438298027731466238139890011738606089017663728859879432403389038503384990794824365945739551588244238855631279461051375234434859638346355081177920164882574230483460135075096133493925716804414594924717247317839464328340737159498830193145256981873837053785960249906891623200152375711209504981858112191714464540705603529261090994857896773805137816255272800466508911749089412405105323864683513471162494059429702756804677250681823594525515056972299028948717568956050054927789414368100276223127743568729767790254314066186743615480870120054662493599796999881921999119037263947367608519921683591265635476992711105612381124047108448009082862263047480379410904958182869694663838989284290225878781186369832523438320313632654539790142966026803368777303856912933612561825345572566043284573002975172859978039164002388471392415333176626532097672526892267068290716753300410094668164805058918176039927575688406156047357901147501868203004874647833464777212766628367315012645143564304958183150993125686966917235860961419566933186193835630188559380432423333609285824820566566898450627062526222273992148190896694718670261629033375919548028617973756877603643938803759892529547539844705348288203418432402245151568211975789627476991400701966916184951347860771008098914061795278410405339021050480949581224127022787260539390315410991097551441763544579106417913919940730074689224632559661490555801089425774662945722526152893641869663596303997751559341924700832803305913398922171082917943313429970090862443048705755087238353945890018246969650604433887429249309135603231017231468740320981917957380114991646626190860967343866294954260789371625648066903471891543990405289361037787023405734307958625668332882171791535315963025959179138929959427816503920478669311909515247091764342190975036171285883944399438937207456038013840181244427552332436520393989175652560933972577482656461172913787007784868288612965062037749637074831452570649993540811250676567722848031926698930329875048981437930655589167897979697177020276222894193178249529775961203692565770945049146998241989262401429040709878663678504140759745459762728195015552320198773183662544745153464392889187033724281833585303074624967320480013555891024092831902112842055262914287562475432067569781010413456316016540375625231605852972845068692781173786958766919469430991376842839755109100288354583918913342040829695543753062704733734983489612918175808102514763911088405233196437601240182452688563856253265515474310104646823136707346876469582678284107954773179850191701326290895761244302871107049260168284904518843448629013324787416201581423528502040724224073057721376523060505390143862301866578538448419820892921200917147556592432194015513713760441126579646341724754291098366587500047906700459231580550857167584619774341765394452043275644112431212092594556542618308944368653594855464932461911302199260213551212698417932541266673662579141279811611238947869181824203275170646450587042818821691802404951774856929270307304513858600869710838979760652154033357623901125794271198027852166523039530955995347775246867538197875636643361198989562165173605261269952144530507708777021243853344863481790691298872834241995884032598882958015107092518294425538024343122947202221968110320198701872785522116724256331430552974064038113103214565901912401075199605347608754840428321316010293681754550968570164849260988433193234304002729313698293127881580241739669703096317753034555803539742253766215016815810351288437420372259039102171309997477138539292397026885568078341715267417121372600309914925205796616183325140402710948404095362199150249222303780219917121133713116286702397459801747694266274320000687341365404390612591011011851628297332642502923705969405415627156186813686742294971461552907804949406517212206272140161741948070675121192430443653229535827458759002931378958838528293400069747669373163694292349685491200994750069797257638220400242074003361880347954319011814364751996003559464360849088533882051095697925801960643543515576841217720941926420806054154414702317078564414217218366371950007009662333391883593010203237729772253578455158009436707903615957918647312590683642049387684206591571361183186554487312109222479472403749152267883139813974988747340541223128582085513646814763584098190279735295681358119987406822216644264213760720791668060249673952965512597687050453218289275080910917766334771142624499674607242393103508418475640926306799093931958530500829126504419656431894276579951974774612419474568531830672931082964758655054079126972538873607735095218931134916753608550048924238066175202216466917204615908810153581743730015336048504945925494074934996099473853347362088344904432158257704671125895490987463338534273177386561521417900336577359670561062324164514464487216113496466539168195907419934733351526721107657162996690785366128240230542712869878640470728108736041956787674534299677574706520377002868239958200876312876554273338986272875895598069056083688952507524381550629786319439000316641712231821857415796878406625434878424572639555196936819514659528272579438322323314013751662504068463575642317510729590857976014567677393480645301918967942625594715063157316100482149841466276397012477733859295801397221128850318234071054685745166544168550221932522378211946176459155945002611640563172589265942575097191494095276622638604853118545323891307564554300909277866222024040307101870222013932635776699128107964721870023472850975464805447194985152416959413973269105127520888113361452249470463073017110525978501398697623471446967979819097763944474777111687416003549929781652244426100754461691961967669993905711324841515976190118646369871541410917158745050023304987499519456442167247794305870649910568604943693208473078934648079286648119471338187655685029215651971817101349939760560351752200550077447564594091533114036787623224560584492284142075494216518116211439592806960758861217339494488704492745713193020894840465555767997713600274128565938017042766152726048225811681392680980902690454928343347812151638584171594158725451202141984232015823660161747307114998884585930694969052666359699522787635143828088352650067828608617944303177835702935263911769074663703520007582029582336243894673732951303162009710956381008980373439394743822509696545258921640514383396283531519613635534163967926891983414255519619577542316402050183480622575986931651580696150066152404206407827460071332038482157291246262161477157070354282067699160868543238411203587966909725342375259772375190156826789845851242414213140147640988313187289287158402577549944372963602833435963893450227511060508798738538099801274656142862738279310110216930924250738450632301434897659925868479280864454846669816001113311020198645854613286505659772468881172087937797057933620910388610734101559161056030165683108211556893003094453828347219412668172493147228930076265048333770850033025545873939377869022069623439534448874174061603715923933548742491349240996912488797056586284745825944468841251106225712218763853771009783937898141823782087894007910200942639817880175445824997672105661487670870364609448490424246815262659201120521385597389381890267694022671269512327715066307057470928037303875189348287112667588063802453983787222976685420036399306978433280520635214760565520800687363055723727310877596114425598429085767662184239446612121012167096886743395846475892430821238025232156889169014914930153236660639216208606048742374684290921134559961761936230663214934001911152227085229719240182179246288710528204790049999322370116561794263205344827742817442785863990492083609939300053363728791817095484818378761677746450794238540697789603579419084580917435694673052479328956922846321070071676085022334034175553166433219260160394995915069563799919039700786965113473115623861922268445157899298122580945575997539161097882510574493473253393219938093782363768688990083713012730463867654766456823938094680793067254935820290094942631587523584535567397442191198507252022733576150698050372644227129838965070047885230497147125048777348348558832467953958882660329623505699950433410907954106521546133577639380887365028102456905836347103929938705202788383283452935746357191232728226674306092685855158687419973972477866605269768076455068305537833340134350457731443761329318265485641209265914934583376331902727296354324029345045715602433123565109692612615692639007861554063814930579665908801136945396658343550220936910818466705428798141598361251709701853845055312235141050293014803164251591368089207671183063513397346411820404894311704241940768632157400576170449328350528987314646700499298347697450147434722713781213655237887282610026104438764617245331900265217564103792689171925200937017259538321818887938405669281767089687481721849923847215483858137115360420810853056096782052321299297958671513523937004892425169309047358750237753035081562978892698577422623545843228871695908161857271878302141928873690164686086725574756506058551795558951463275528674181591516577331277398694213053382700729126339040729675577764227685042787777441684118071847607412334763144923384887104441039636182757492745575894168648057719797762924086613609922282340707543009440693562026351425632780950447952823174120132440490922759321480875372385053070519535939139720781333215050164627907142034406277570161790412236876096879843031813934473139403482284060402240390122688568541689182322396886798352745629268444487820585281768178682020985457589686733850775407087879748549682882330702257989813405727536673910656320825979161140615514569349107842710046166195083379587385645411725232560979317979259824450146716954511734770554943785969692057088700559827300979575432014255737197690362762316258074071108703492766921573523191627350245873551036552329298549956522402650640689340704589796953510263071272316378419579824907079910501751443818191567929224102142840815675923154690582052384321779943454830136875337272632431150041843451899499787733882843359870094660911619083336190546664478145118987909465507026257909053256711072322014746397438327755557621874691444338324906273807069711474457435529150024491138445361343760507462123583202128607690269238255205569127983040562255512482483556660981497290376479621279276268984228652575719515702097015564441955338091681697855511788883526661887540069808452594229695997495247863681904091228484836425197454994660238880060757178330441847744535080920310617950258353652737720951728933014580815718905750265963174695343389026866569994866854175681652818031214771340057510556781719079247182620013913640262056197047289217244187225861795549967998347785875901031702462413979960907261282710747832327624299352829516477908667044477610189450218488434160578100926475021998673513235591852978514303390726823777508378904584926700625761722799711248798259651904164152226769719327238345399815383724931447275551309952942928436090704431242975027280146197583295456791582461459656080277630551149056333153265860500845823363500702090513095914067879669977830193688817098688475121433752231296112531350577145465827134513223587887211743187475123059561093921176775915046835408407951959589994266705754640784471159574498489030074482510045408158743358980293832702431266701585718020573371421353258140961939080040064179707766724636547621556553178639120061057293493628272720611039201329649828988845295264102387705762115970670813136280276469772403995213673187413630052797581664415882870452058793322313757063428742560950984379196402531568682836166925624430967323533485094529157953294007379183024056236242218855955778191319846450356365677216977454927528247633237611468574367274659373438327023381893111247646025934562095976051958181440884265988285818306663994293257674150129777804911958024237658566296546626324796152895916289128197779249398887474006316972259782206292964850793887197311458106173044601318788938091284225356494689671405194493741467587739565457126252056594268090968728430495213239043800907187542691963771709339281935574898286043374201078629221261607192417190045639047623341569737915311747743002385475518363314454398258606781440298285356563183616861858015072696773119680533926301782092906672192980934266977384208371188057292317860000167464532739453176651429875343888597696711967915084169054147699111317457478227812428220744451753581188885410489580488018537648891435287175041705747958269658175505349933791733298321230847873864820079771256478105213630201129755206853474712448200927014293516836601724886297904400154028449799535744268483835702535642247338511524659162715517239883529457430202505041330795608130015781750108430034121338305061259898479803486351306700351912728825357805378154745529792211548712907057585338630831042562622122419799456886516110799057163139314340240186301038317817104486203656045038572640609396616088262126187518965082378996554563120994079314294892295879275059478579549882296242676513643255962703217779301352117129017758387900083892780341932471386394162592170262834113405877729895688801522307100814436728650463517360278718954135630926008043178112399224048636164730043164549626655332882347657450224831118813318009940486166667338717297792941340890597928301752194838993877939111515782922160402073431008127409845302875533685743172024324645367551619611842544169634569951805174765004536086997884781848988107152237809921149164788510842429285402779926210561566325635973147341006302619531785404975567890327578310775910665626827539225427872474075549689282800891843972832094014229031177098016531335628324707710045022236030346920124075257859734156990591424562599281133136377196412202815922074610723773686203734894308713228445169763286315297758034460381928284721739014874115693784154010260503075156216979392049403934236774309882714880264226365350518788805307019588787079823185599306120168068084558005328735500518458552102095041793868547566688681432936691628958075929406004359580084391606032486294191455511387836692718171737635075622164266971301554698885151461451996843965771880955890042223183136043195969979494672810260240025230413257122842293008643694188313051619501106481289228570572400005814445570753513090217676635854130969863992598869166871791995978214065763525845455160848471527809620918806343867511437421706214996835278879525178076478336343045517762838429795822932582516162864259599716792542521163032202880951793298573141771104562324509505059540668132146064685854947938617949316720764189853081045922019601405555645604341189346017128961030543957377821929044792047312565236744960978955931315683405256700040881570480098353406808448205453112350945230028763415490832358037797433181773713119136792440600572086735115080390424100569093737129296920160428152680358172293700772433236181448918368818998701159600276407657012752388595319485048362628338015382547100539289079061292356565762380614563377202067653637554214521029227658166067618317209249809811945918014557252489463558280864540837785506427719089024809746063933544955426301406431661597655950135443416685105755990558662180960067301981883213045589044015622208906477221948003485802813069359635461141375132653046359924906240242505487305892489859270894560348892702447930168699409257896310445476222959906002661423705244930320696586903641667745011535004316371498741609761424462945136075876388103025007196267544647309807016691183092392310688308046159992900881758734975872091780526163622280359805930670386283113588225303497849211124745983396231740190619603674003962556618427901396863243809526042108733361207851119066927148325370193049006275364703138742520526201756967146066097927761801653927404392598515251703317000478055002838706256485333069357083693991490748140993437624802452545990591325331271275656050555508735149195963339147588375106603831462281650864580916412130883141715974708895264888851269485045755452999756985229587379533088139592543140739517123778589526613890051065651800785591003878233110704321091799145419774618757710806346905720066106565105374830028584320960298493504399428946255778134350890256822218221257378567999762490986009998667258203436878253791577681117100751481768310032154801343953803181483650182498717211120980641251965179696262807757383411602589462644922463874566353447271649711757987114555962642277229658076194208419228894155212151619213172159017491390402488877100964839663272204844549900873905981556072180131189557284798071608791187279369469321488272051855403748617626974725159341321869881363986364623423630287010981934153813556536793498691870923639970129128352271183709156186204034978458157117796211958359477509089281935218297351587180023541584640686382204931421217208562322984049877162353901802792994973816061813960454718614833591996901253430745367857269346641059413790108265708693496880134670768795171833082196178826166980706129530596890936105326739808003955940529973759778733761328343167228874078579597718734576503956819548342896277305161738112813362086202683849674714234260231393729701696436904659719056730862866788696163924600556193720098674812746249195539942368445932284674166027437260183753034582232903861999343046323296497500000877141836629517111668895261971681156144362764193194608212824848207405986723550836204708201717101516073255753758582826413137998926941401819930618258177913650219750959782478982470384980873013248008190850613426928528014399604959070710151240548648004289539855153521493890305248530399037568158754463827381580129974236180798241900245947830351409852211170755037392410402950842368543345064450634892981135599203832004537013294320088836570311700480116320292263917333815577958832822617589928902563645793365580615870577003023187299152927673766468995023802140075692113588160585050737736566627125188190469742741978782129677684050875437758252987465460966242503196864110719098317352405452706612503604169194159939834166572820051555536275427004403575191930028194377039633296834818411234032663341753044498112691837192926170005166226659867935590127487720616503166817819712033166072351453352605974138163015225866187409290718473663978076307613132558674494400243376261605135511806460701977711944345135907067574968630118328613895271335140596412926615581256867687194685149732686807381584713089840577388847441770318965554253580891908006615983468941795751225014295385328563867214511319305854333391683155832901482642531419131105746253028714079290819039100692487195871110856641446823678107459037663732832441281117052922270595038727253501986114640028315977989093938313548680439749926274494255643425115669950439837834476214540171236606207164221007525215942656545995934400087207868431756986088970244964790787357913591388055980406934847363871425631089284237479342887459318748129983863246065413751603031757511287480046119289002868178932388862914457371596504055554490591480138204687155060784825664543857663120346784236656987271848202875154939808393955945267507119055497308516997033190329225560963476049937311980139293681039502846869920042481062360164611381419085889224275507026301540679251615840655136059429015085867914256713109251638137342725289234930627692791223568835035625759279011962488037027713349234942940040927299005440657555404930784071873180038212898364467166665508153089041183657243210929193420831371780496871240629041124713270512402035969685226000516928608545681196201111098713208029280334056190035516950345817189269805896144447859002006624020836639365951497482904397277809896758898257608512119311421550522927361126342862871201413804061647941272627166683550336538361015200870580600403913496826178698191394748966823691974956210836360711273008004992724536498502974684515769399320804318416210346185846758964506857398590380119940195700802071699384284356509059795537858387375544175766941325562038648827925880991742780591292486930876036335259781221807611006297562850473146798874915137353940507042168342001491957395401123507864568835810525957946682782257892553762728240535524551635304931228286412496232975570238575409994020232678904528552846648640139141073723048343013178640052776605773503463088671064860684999842626800161164330430857717661132344220075645836499349053951449454768182487361902597694749319419208254900970561094943361130340067629915324079131598597329422697103859550676516066467261677655187404014544547679751696457380919963376751007463643788177746641004300468510613330068850631359271002355839758756325509436702915487720921453595390849134059483547403303527696419971598324078194703527368062559403328263217681712945825467832999239907953303757219031178454934173086508838178640473023854526319239819942942614570904139637188917663051808704211596974465655567845675217295115222064421578723063873369880250911907271918233764577917445803083677467253648694652073685026472578929152071236103287455218978826433716450818313123354964439505967796092618194442142682509371813813214204951182331636630081606196938396586060981271826157969046835848396229403150495618970861879849985616959395571154904329309563699938618357998892919943141205156599606929899701978797300635062655990839592429346036076591006005667830093458631780952091539092988886091994975538849028810882721082034582354859158996163680104573873774337821050111857514238038644224744617888760429874350158162014475918336703515766584291616823525405432139183162355686492391707611830033663595785355137076150740281408043362763762164295451703630886847468723130080575450416949549108330066966212743942374595130429993085854946952255003936206317895181783944078147292509795391589205655319296043851094151336736434972756517825034828374966243174029199737511846657414884310493026107138305704324531658010967405500908715245138623063890064114041284534750691809799906177310099299846712453224307138846766789335768338748560751011768037566089724573498511286005594475934641235816616823918313181391958465914900996678199577950656502433141298441868038999574216812139615147868591359957684946460259223211944539362480091212446065993756135484746889019207487530380552606378747211738761601024742937813087642638497288221423482125019875828705699897046454486802191012403187121033263332246636443475236775675019822806382904025351098182145244096926936282105182243073726460914451228079550566790793466119537358798192615142419462753596363526314195620605317112211180177331938844122504405546412885887095967492041931156992849868604905907454818002798453798087190966677971967173880451793786105734720405067227537144956640417681758820376609271004174120014856282910145316874148872174870182456345983177498256542069727232843480810996554657402126376209405714272876189291725494483133419772141192795802599136623146545278051678616231015375574001949454699360201890790352494814606346521106889532662299127910885479898461684641251126968528606712882846938471093763265808643754714291702033763791134963342691917169780092651892775407755685580623898261736000639263426190922406840157821424502746887515210828225961850917823184591697974503930938037893638502968064093190072072477101641859699047813939089955678794493144041618881690475411221130077217887883618752542511435831292921722530852285675634002773937046738804868920199492010376876619323768866815981455675901942613028681772477898047045044213587047020849026157172690652271638073942647562187699025704173915104089742155775370096552116883703637606812224933031497804837542143359481964259020021966471017748367063851901351446301355607603714834672973483622219347696856975618615961620074042798916824258678240910803519429783021605272050041440433196263777857545850516981779596095383654197893548685148043746209076494016726710409342477309126341226875346761441219500938357670555959816380136889814408312986244867782823760898916488270167810714131915734482313457114145682011629715677675914218578176887966593049723531078295202010717042333944252032670827186535816464313800940822605270416506050634506044419540977046643504061122897102008078877161751668186196780096342508166635471025260212621861737448652340460185208927279843027804884643659008444491917293449895533911502404329466749999763849330495303651540544947152232819035500565220295121427043180612978363227665105495029739780013476326018660119361844821283287902764738567407944631444964008789573355076301704938902679232095733961514394234185670800654590498126740998066169305030101510705217589910108306127180658500086471311314576762510055102177924182800090671149002315613535867179503154652385845795284140413169009183085882049146729084155555916665397840766028718019239200701759696553282272960786175156609022883679050331725216842705289068230850249170932212439895078021865794901338348022800174149845216680033192654193867655690429578298165203689766042130434858840630247296621118571597715145785506830355395437267515871237744098840363952136410319666777572149854487394788042463745558553747449467249747792261818916764965102019542523707204312992175006111113666834708714564099086426719739921980854775828520132924191452792471490204794347484165813602541738273290904914929862808741530526497897390869613397904454389013481189210709801644372047809676702533431153728835133265701942946504514547370521312503820041520116902150250755061072138205840496921334705789517688944837748870260779556769851931292197162553109724923728497946877093944913804540696900676175706643768748253237940101028582506760590694570593906304402865266649673902790860115504675309620046163908759314755453366654236578533572903871066044100805128090362408856214004162043042909429695297091803758986055787697691069115308547593177432534006472913601777844352298760219695881245272520593346624178116777766993482786972422832858590975106410532434761639825504284283839064006025807328504726704426454686046925813433670874650737809574799945486166611528728745490129546928850774643706351814474469050256963760730147208796865861087506472469967913294197755560567035865801059243011980882317894303154100498696720239208235282417292959842326568266661953101814421963345787179543884318412840711237439184647073740844491858836570904654439048329928969938467154943900561114788468252631814203746423443090127245693390878875010294316480095037314401461738706023181021839463036487893867869268173488566097389421415190342288688512001290983724762460526965246767633010396491256716871877010441028918041092734119167213567703790133918676778044627698479464085707057843273480132858969135301080451048518461011108907803255981093467692332960359028509528383814442764970306430700209343294085641651247861952778135584608241576885418111653115642628119405427808891775980920655005866330515237734346421179264314104518705899909515214087468768874367841022369478634169200987137897021328505019679329665227621278061339708288161482785612610404545367325278354993152396154532310668582620545683137409170376297880874084019933872693646830192815007739729237344361004508426109862549759110237431110448231836712144683501454386457000797162432708076743354978878649115272342642756240849701511138794958240112351967406185610380364471152322328589010305442643918479108526973202457643715247700717627676488299963146750768020654302647385402885227364031714905271917717940920574157790722424964258687086924966440889669004889182275003977531009035344839814212074134851683819741922904099020264199540672656214557193797136259704493219655069594606014751317379219276011038280538062435918592322619978714325073569205063442529016462817467182440147297168325621186310728054941210788701457303933153435754341977220269573396465078490974328738952013012337379111855757586262786319587878990896929764172454526715285206618402979129777514566319515126993007379849961542518053313527808519182609693917029830401846813013069752114253440557748490632850788149606474600353015975346104445392313813252047753287722575335891999668243638513607632663810817685060693419349230951458440828694848286495848120033974098966959641134954096494273688852461133662044085354087630783338530170568979203619530297324013663277059751122955386808503399520669885989320145595115164182007877428764831812188709746902611488802386822004544495360580285041160946167948331153758164285459934558199012412461611203742052824872546218377067010592873572596384399499170678071393122682932274481462944015968582398348822011148221308728491344338381765569153556745985776420168355953365272888908411248733704636229913482837212619392637107614666179616845388252634194590769707422418706984495876232602265135565388643648268212984880874385573957529217066880506148076181176708569733339203687452804095638560722545645901953586613481216318672038338159270331029033868114970162881311451016953699770596429342030727370981781043677751728679327756945235506615991410369386723005057571271000925926468917881749655451682153311625421936620629406634518999848448045495784681136052476899197608335046866587321975360219445094582155099506977365434630853327016776879550479687067415498374209039928810720891144239146799600104713844359569837819135811109533682311698803898008104625066787883681166131672734693364074678754213334002566585014691889547974313111668526699227560828480842285254550025218138016004577685916263967821638667050933691801998254856578821976383004331853013715193006666509241613199206029455155242194588463228938855566405889968312134120134680819247780138327781584551877343927483559969005443854913675046651058136521164786455760498194217876221689249851810749018889873185464473819914930193000575666576898997200137904442482187562492299344629522519352670395776460182999253294392513035587903525541903079838225521008549695071298229640534281041569624307732943689511568577756593955672861173578859670810789465271821178969974841449875277468157536579591294684631381092052776225446598388849186547336152699998602201210667409783641857699024506963840366435440232742876655816895137556808384332195733027094360325455922226771709445501349571349754070161064831895628718426467002013520957253270287253036087944164889849294724028602037025034561732407864542029166468567562628741082484989495640601032380907341200958996679210903603421705644614115174005186769732106013143257823931796732188559011477023026888879074507755575018920012437735706639878152279590141155229118090745261143934898487382053995871723736647195164368016494073995786671216862465341602326958483996686187713949607859843134176963038781547338453720642460871205524155909211782297701873112032085204547341628723279331934439138499033187400088028760911423662295104577272347703606294797875259004385604352722715453590786262131618309035619107075582666775121987663034028473985009454261970601226092899009186163152471891551251188913967370107140827984598548745723095013420164164795353828005783784868716749137551979195780354538331613508569390518481412346685948136856203670506393604367227742432375006165098326734693650329332962582744502878588609867686430421974693652236312288200390624329425535117066032927240570234350794163944558630524461479350310884354855380852880015107613566003175833419173963673616197135767785863424941069766395032357018560486124323228379270390460503353433917529912232091857861008076028990791904441292296833440674189342485818690480007382231411886931948479883417123090101071962695173961741345916014506927912855599219797804721115972675772841151402964478051512138866031775788270353044362057804324616595647176430387305498877784022782995273829480361861462655966998126961760868736930361576735215136811094765392411995603509502946728463458404228436848037734281602704075069118462703459674287258389171839146013969139026159655331095638549954128330366642793456897687482540662734527568052805280525535390042107004927499062855481975608355853131775065051576709671640896123694752878070941154356339086412598443231190949438001900813551324051599532428958539458509105176136312762747924075992472862011619350006816595212835341005588871126735297793139714132146380883769581268903166385150686965733797101448440681327007455726975907107958636233594945464509771094347120954477478518767454083123907212024013626160434641074800059326379105148878124677399665272099176726628895610816966765932769533456666558381024577973588707315979038836025685063989843906914242195132637651772543668033943781332787542861502118113934439729989540628659286329225378917770324051755754965646637488019840315880478935478620645489171257291180663796604571345656859123987522351360780151760877035210972159438456486825882538075564565604511289500462345178848090380100070929783092075735289657223138878719303079660709571579991794290650865798489683219058497297576909373672715054879515024820633032971061911805748611316857811321698518804751034485982665104886210792301711469720179368636910744976066246255409256827315300844569710700728251026500713580378411992731023783702867852605351812015157011456874529812608316893591107085581106937078074329901456413839246147961063722681203310278866508189935038257881484912287720876967175799143065425306379253319725526628847726400565723242622481765596957928979736488736606205621564836158274156191919898164222533032937576031058140960595481034413838906913266252747742191365454954477305983552560069557771458684430404103865904496910740658760422678141820010413970780104773977998382578550808311862978883495364150155383272650063199901849232825762212118826621401676814577415986851937704155172910686778297895463160433849227759647451001735347596258250201067462327573317651412729510497364845186031309803268833366905094724715502854374969431325922072368246743695834246242203782152415698691274698035422697769864731003292119158977364628408584674752339967921504256631485129913034467130589420949975438053044524530158732404483928269157585756523923701127664575161454195319808322396625553004287061343927473371037688888792112941625020518817620482533932888512920089518883539948988638414402417280630253451712589036052361209172513450411382826124286416355347326631734790300531664879564388645606032985093318682154897546557276042146737082894577729879612845148205237271326087619040916703533157198213984088715603544896616666478178564738715689684394021662023284756583565044001479055121696462771571333892055511153345525716056830904423944413732161802547058895703204123346356956640527115526266606230455054291984019276528560787213541206581454052787650699413341621566641723175771211684013276639014813044698519628585117565312541443583061579412916945132271957292010554215857119918663026292740943168734648804480783774152345951815833680460783124056729827206465673167401408176900553449854834692470103101655542004264803188044193209337834647812787831843006473657215251682376538825356021525937891994076414884159284561571854296284118002084398368377870108301860808888962037907691213173051548128996689498436153719974455092261915547889272109978293428591814514512878412856710917222019760824411508428998864431259724579307710320098979896840388144174237476409815162671024884236245921379165804364074203729571654470348604870963927155889868402402853593064400710478878132743978694929863722839722212822333486009202614341846487147554405283526477956483183057847075404140252024653771333196841421730815358552281600924848071696624921678295925586836436561401463730545911236755947610742731411755466281004551476747739163880436191421395969689793892643045883106255267974975990629398415368695992848164381394193611623408180867883608189411805646932870287650485693152002613845642796711213668198311153484344112553341162511970747762733494078940096629346783906023913553502111674606355521076243048508902048783230378269902302555806881835225075564891655425135092977569814395023712719095764295231045254138203715836523332810413157982490538137515324889795533058050698273860984727311133629844976254593387500585604178042019604101039509612466302124500453774201544632096659857328760756764674590497380033523125677285693134932202448758383000173001681168773489411387695242095511051638319856973029188964992144521034898995295354796713379118205473834367185759556652334016168112690884903965238412057807019069851993129792155944176640253521593709048865445408584023934533267388161030656944794678410843526004376395328963255832939173809302238696132785934223234402201954609548428638120210788034159201468762978458372888573342601013872044243407473905562782317216706606423329061703684457348824685681417846115738050662020020438015983357241435314863760942060476361966669205492447753516392492302683657570383389167448238077884825959102033800107145024298993923527907156383475102573247315248140669931415072156526839113470838255992197957906967487640773084161817976119101697402622517797647483190269452570450138889138653657212591935718157328567968365397631934437759203594518191805703954616363743936701816009107978699171409683872764318445632909745471418195902961814804120718229557720092788938180911671673603031176674039231140562796221881167140908047331498890607234782818359593506395260418106761721639969272716542781398386496794787971188496299073142652533477064781529480675296410285034028999653793647846833673237557749592746868894284841182473558473895183919472891416183959885764944471498044148455355163802499101999093831503754973640666078652501963041200523166014792436390004771325227212472808830958098533990299543355098741289949542208152391477549526157525979637823088383701322868998438916851641532646212690408028035640231853023557751849827702978466949065745157623506547689919455251308437483621717959183007432430057412605450658893064330820321501030517530979346420140533961442424340176314197823835342434455261738431763243937647019069344534752703879603388729913164337470939329273916895209469020027929471280889340294293334863173744197821316688510525528598032949501654448615740671600218953347098077419912495211899327420960724007403346444964185255283007561477636124020802851598523543545223262619367194124321238177452177527482287355724197335678944955511825321273654313160985349781388971070126132843354364689029921792041648383149214969939426975146536365403088695684469482880057559823791311345367495935291610948574842545773058767393398420283566066276489053148249429566530655246155672514106382104408605386400538604456253061474162877835614027571163150015299297620172524245451041846251166846639154505256814108857455908760638468676127264958442502732627848336433828075788676909769716198790678526799185037710193309240549282925540474985113549068037226452852019392165359762549491498514820883102029864004967859589854796644106941259481665710996661055350929031650268740004979552514531654400852591241293777907719540075678570547077413104797461277537137635720704809158709344412442370201079838452852320697038566885543653343056170272844596219530442620511234028528378836183707987469122082547086963721306330589443817361580899829296805889358610926886988992074472221337962447093803559666884835916153691915630874188338186312351199170725916477008697269231091922397114267088730125285472193197846813076434641495389237464455466255183452636610664302411303715317348659530776589099165169883161960028304692752495987061883804127971246593610020593106644805268360381211270239533461315490498231455097848903178170374768291963298611343557555958219134565441404960319254681079009672111788372677792473535157571378789343620703916684493333982436771587531520495238643855629103139538985080888487094586542549964028416688542402814905270283596578456405080943381515727807716029355437316780322820795141910542012383420584933202195934929162689808497613694881807920118654723324489183248967058258383572370796664670313532621794645078241466755969400530697433514454978005693456348184546402122189997622407259956565386446309957750415269220127230758501662187715454474676415301115202668332329215897600491004392669701937863957929600656732706848884445464726665572267780960220068127445953358180412813443271314421866125879288267656340497540715278983276709616177465359680955173938490365493185342710917539339339377778749373728765646958407046520160297740343815750088889701698193357860263709524672700881188098354975536583219929583488232455776359194284646162542489735477272737953190042704979949395955973870614827032867581146257559087233108447570262510619138660829935535676134486390151819306833371365825741758878094942453695669928784122080692745037844905951900516480971819619231431267939074504741546374067075821481039628087388880913419168031418314108120733880816887305579916445987387173421584679533882854244860376311218011780047187470542943724420618210091500493601306930923825616314238635995461370337086833877683471942278464667369736181828380838757787450750594149380672494334596119244273243767703055976465298621349541111696288473571054509789313389630233223959550798297158524806990629643658701077858836385522384619809150424140720545116519026172782826738763813125691972071562463807748442571335979123258683938892862316075638239764271306569665089418001467579569438110353978160874124120321802910980824046798357332556180250097050080239942306337800129986602022897845092362507694774372330239613649603671543093699441136431096443862171173951955965807801490144516467374304394456603723797395416933832234740939480538558550822990345487616148616893886888788379761967060506887785696196297094460734602982856311497615469190705832688595814543591138659921968870120634993893494029713494833538277749251063218099292617161925002962478349229067405488234865949724353933854810573706207925947262553616782468006316672360524067104578216575359759211697672529166083073220852891155460765733256508504149510479848276469097333440636551351769285581709483833013983567447956765595323535052465422725288403157749183061576646757014432291721065881204859414207824110399482744344569178518045402111085579618887402429246416744887846720668913949528705010842418200523556364821545491371747098423986687416914911418736497922273407533273719216258910613825998495507494901163166349348912340239944654603543340675874003425862458145943803187417473203118070290290015835368690153992438176909340237901347969876787675256349511702688809148048533750816457462271189585583035703899385909208074227680407356437875029985008915861155049403713049695023939378020971259628829718686904292193771791977940775033193432357203718268488661980677125143824133299205542462933875051851517395626204617387470699408989494743678771092010179959874328523688267241281785028951483884496207852818726162639491922740530081108686811929431955669458299238483534071470333511811880334845329668781520921994597748622861728532617765648885468977806492716749087023070996157221467614081737263529069864516001211850304046602579080496480406690851952870505596094449889318970269715726690447838712618050827278422322937191242732466874126872760198387484764513985608413018082876135975064691653915484736429915311617079947279353284862246367379328231838979197880815280003717805265686280424647005372896733638060078370871028395436093039493253359686759862372483156565758786052627609420880147108007838786007452568734042324055592989552980615607969167233181081217286793628496429166305302042975628341287224193791098077186997715217827430310358815871931674242006398143411082402754048069342300310428561750478979972228378295599736792488631743052919712276887071973518741685129470495523452941385021065267469722185501865398065486095960389496884791486015396122273162516121318526298151207759544006332386237280526914753483981928508898730557370140704305944742523446579159374280618331171824442751677002196479086425900788348246504531703929176370292742228192318863381807300160981535078660205472594700998572331201133803370065698669731745564683099203464202160127998017547958031366763336154015912311014596619333341768062355810912130125714280345543082897290629166116779329028439214125178015781336347445515647405939825655021241772476765919200829471692587732418459718945586621845239296132071646865291742969439349166180454977799366171127590888157626894715792433662777246252205651270102640798826879736830828821624095939922649254069159657321144549500335715802717751961796751987377593010721732249783617526505569337614051569463645187781456930041679463122469147479594803698599887999569872030405295346020580152626435289280039398070889294034582167641336866940280300997850038102562483713564913092380614683294000340903450197502400047963750241193251918275488399326537019164231664780930190698015938788666957063451396596721288291665460468183202350577815253745870926470690817745726520311451305055692020353275393772593517495578386520098503298374837147752751090995001210773414373792789487386947486185340038437303462048769548461993417579178344282715871803978061408509380896909223757947963259863055541753795877699044575811391072814994958194134885522074390197241469623854464183866021839542470137323677589679593723146723491461751809480814750965589060261577345206534688023377946447083070133743534990814832207014740080656976806394875304434993794489399476438325249687760010092609118497019641880738071035402459763648310719395323317127628235598001395085824508183298490709744686410856715992352999516159765614201417857482369660536865340493036004758269617058588907880094081175697267898824045025940937862595700116832612004522473468670548858011856729480578747435414513894861466362271669403271176328082828608997444084812961000435717305316108128764387919080527888380869082603680014356354095837396856216338090142594534329520213960095862023330942054363040345906582318136257122942954325050516716842980686993760183307048502073497933269185487421134901242870201112197477369742534646547771698563591362287950290472324898032100149738045457159604073526968727695898374001228290890624953409244285547135951428553734023115326550107537346931763921232169388513618277054415944659369470234350984208561461077920053580925258077676999394205525470559939430534993246622250011321377663025149944704146918962563054028227353873896710779021356995160267527729711837514732211273159661864937784314771672899991397891838803189148229423799882990831096529308360728285274187884666291827957395670329823504636209872474833886248579379643918685338779026951353681353349848520233296494720144541497500674215878538116038941247158603471249553787939695653652915310735211430062624209851952829597743797645391182618576875377086827115185972069855876237969832041429330671825943869941185020172659846658998959221415248193190556671765679512138280831715527124717342988066813183771033578263045982097826311248975974408476563354667163174294359618054183801416612344750321941722949761377869851675504407443673539456555941536947751901319701058231242367089171844619593248614870653143757199767217823909569790404825197565758058452289434559441834243316175991041083076906709888875666293183767504896870330203596950407792389499720708163186699660109623846453138842747195502797533775022153732098161177204858469464030116944411340281813590148312179987556803715467534517709940368386593212400647149373714136091991370337643092755661148281658278882487243940788350944753755286634178004283332502612549447329178845615416498806698655871103083864055505243505111905984014562529585755064645171970367288910777189148343552600648573467318829987865288327605898664333742673987907808044654670933545601146923749135121577433765176515321616299238271519784993750708220797319939448297028153561754143830031749997656682988682915517051184205008067735778203330753044593121939981999587400242681519748494413967075320498491730397440381604644594151838291509035885494712661147956666309947946229059748428433602937283877952998131155807893625841082894548150340062257212641948507222841664405510514001622597265671485105361630888284329698677463125743850689168369997105197095785300665603701748835625213314581101902831872950476461127588996213171147102090040557105187862709042497640735396852421121769342352318183089932828560823763160075872209572413335118272196691279243125494694955395330282615417287860107805827802809195103552746848175404248942297385770820170127866581228329343993387234763753299131320457515236960195265950127250065754020108296846565097431676045035575870665114843451135319067536059001983495422792543772239290385970307923077780935250912615572272473041448015423612831791794452895279570895321805326232218171028550334209149049189011608484099490464668205875792467091837722849273355588125365746171753841757287637461338428294685051452575468606402215017329421815148500317854874759850186527434373063571564872873858839707784273838759581373818736901951880043105368980174511298394657446527130895626903936011838550047696481645391305886637350419945931389219307238723025255234296454664020462219351864757606581061865461208442293281014761219042513093557297952227960252431561141769305119378749129120588348859394582604612212050619529203204195340466632723170180030221387034056900533195954227541417851411192393174180547259053686268509870929809844673324991436817447904934230034834093708809196659553142978713888725170365991920333416965084854978798303148530377681475685039627265719999110902093861397701562014969024558746193230998815263281574571190675183183355540814447062155267611849404674424625703215192571746199076210070732559414249027620331059784111309732482625166773186736619243286700694281655322398399806146087992514942996894678371928050983963386338273210700683630494687555084596433194596617850056845999255468454352814715794648474860787083081272430330973566277269001071463621804959668881288074864830348285712187662750145956935163388451018740493094938381592546413069285566738475317558524909501650167182862203627394393036652285555036754495710021863583122771909410768267927339490980761256829396419539249850724725140655673987629997532225807926131552650489471898196958072184771030952170725311386209509685772849263152757456302592036641702588768825787048173999180880373918401720174429532753358913211662991943481394990135926617281383341230946699022179454369895230905453379301628551383934876459344950042428606805551851130101923340562927891824055646795155211641916475130007769594893151169846804949921449545681733842416205331249999527770001798838836624553619026611352357173759673501250386823254744645757962290705761740297057383666701936193994661148988662498816064412119210968247901885376153193637086372190191645290192157994768841847084817758491400746546395433803795064809240843220967909916703785219208141271695567781879993894060384330876921610927240248227434428038618614123292824684477576715966380425997688085376026689872237174579508065412688545399577180624845472860694268149467934583419851267425270454195059124636966263676847927760114043131160991216025285419236384648158780105050746178470766902062052630202395276973360475816954087332910638601170553425297844043630181393912664174313791017527794158950351961258501566224386301903914595269494278087201688207718166106427968716077768990128309054757928679949880399420076819414946110845047634629341998832252549115643597881292813867397714880247715384227030297922600677475753092308354523437666771028387346718714700591742679788286785626621501008297331831745318789682575464916630456964909563102648620015923498941494968408459523237817898490796395148806076193934031893769306162291187526077991134725999370755795353107473781439491035554017817214207307733621661075522293885753210566441778534198637455675363521910665574968418618292223132486191387349267199179930799352429534408212491314933661246069549098034532842834208156308117897615490294174997219753825329645279531217723852393555459905882548104976991959050668649879836272624741215221032125927024261621522297949753671314917291472315187613554113380901182823101907902890915069579973732058120908368315570941456220667197873624804888205419030379350944630304358870934734617858119690350863661603905468212793058462865353340220188354152528273310474900824586180473887945963843547360332304493771583208309748076347066096675112725270451855634444344652386033330400118826237160241745314164772161254595915081144258558077626446131670850934057717233032802723768323527317208030120754999363742214922531246199058878246697113531266214009632591210502228968414510451036506856381609375437242832967430926396948042743447039079230539336958908479460073331681318521533294924239042575692941768110085968822726755244226051724236635069605024666704205435895419977030453086926777468123130720130619215265411322691412285943431301889986809431486419594422980291736639591892232476693059401199603082875846145707129183014736151576885088775266511274940457104741438670169242218063908553034997539326725575956938095263785951984843369328911244464268262173178957306529978818176153117446792030212243461977429166002420966640849263179839767629269657759873964535290200958596510348366559158192562204897707095271823406995756724351047171057154482082877470336593956019050925825495199129528840185382456877109885045345810332068768632508214567003576999707122646808805842035078923402230801770970884091871732736823279532854592613357897225029141926616853061573537540910393081242656083354139584514376085424253319041968131302798252301821941235527609524367143161896479700112068022768231939104162121569918109636635063289827168622548312503793122713113776966865557889624584654444239907316493048643045303928874638329976322232309358763885801457950367371005366862514091390006120194339603579218879468392771555568118559923432248145990329338767427064060011808790841883156336242844283271195146202824575751504246736157839340196308142879116065164636090568810876271349957622328070379051961610604824775520734074660341803066612017934434366790782098180141989424060937026634347118312425609261183943859943471225459803919200291567805498088666448271909466351896831442833881423913297127505982857757499431501860036025660147754318167709372040005387423911863970848647407210329666326359250947958645642145556432526348993982882537243154465025233684824642640977887689134593345415557399104817027553683219579258339738382451398272240418005799605483387173107370076755906625212524587791008354375005431766151677109881550220195287363181026277344626741001858938077672279948409757946471059908354047640873928800195810917935339770506250307408226835122120930228941764344541096307598779235970911513682558760568689748818913439949924686008331100959555253472501246350094528073444211803492379380725167985846360627406224542358100084401290997022613558792238169053844594381503408875242250784715979316675248009678784858896841224194643604955590678219428299504694506874813813393359698896296280639440119363831904344465210108251657829451175082305914217583783176306000544252967795204580287699358192575150183156460330494438109487092165513408653569209835951065741399717996479852681861034439444947478859185072137817547566188674516085306011658320830303655691146194343900520037070027094224856242345582750507071424413843107690403273931117117879484843637838255967289529797492809543515921652211940146300057150346881601411263181240361504574368783446883053074640906116485977470567532091711744194400346515863072212074096151180993772796438431273725068778130322749360108450120344942069594446474257739391244919526953400014561068351660076620980398345052093354827474223770708125951023717433703968402266005156209981239485834818465021184476383644596969811027552974629504795057975466550693670922341135972382458246983065761650792262311647274366826123008216732255149177463391734756648128142174704908649425765183498961341099356266265523457334899465724346957977930838477027369551952542059451126059412111804520090265555173752833493946734762039084622167998773422387818228530631884832378810174332482020311279633941303323745116412511234585701092579167372581378067165156776411109889689903195485661104054236851462586652666675815318168972222565954721276984275991867329051939602832715350610920663792807726846603520453669083471985129137977726475452186382170639489537675650528834683802940914154659728364350060563237601915990349829410870758051594701242371045044283869184768195596304063592557896337477790336638936533522979487005339889457201679231741933480452307152656578833116032404575870703345517697812580238883769671920071287209281132124066572478023865007078429261654560384191822922546412241033294010617796949094295458254857462396853239975880079990680691619432360466011635131346195327978344110969644368341610512488251803832631126019689018920074658660465490181855690366022518445864512820659998459700800959394829111404422024329816121732651860230391891168672828887297680787899151617942486149740052262992139240218914261445470643600091605307601608911202958942805264158913443651708054139056649625662443254526721376013070023056048076532875597056738202163349681089919515845694759472608763932940079503039163401823635989141287476761303636790877849614999819238243416128335951444655768077941890364841279142479228245461573764230175649655360403902903938880212746759358195759836018720482803864977619041385186128205934958724684880409912540798260324371186014867165571965220033577436718812780437507345735257387216800500883691092027672428841152909434730719989801588117329017627445467722495301259598813922400365165372651748457234681250382462826605125403232099013498322786123270842471110594562207749076901681032392284402600120062642342709645720608917169775961069541311221188033387558525541688819544397801992635117587849944982103365195314163729984099434259879246550438962233535363667493047123926905762620737571675081488524059423635395777027849937266823775740011254349850352559011368648192159478471081873255012137890569369063152019218529783186195432075799867153734026722099592039664788977716763935606884045112113540474139300627847831805880974445356050135264201983731521172859727530577884150109480588280604716683237371754984554061258593584194806669144975232399845148840878593346671427174216697209818875722514557989234138525540255621239291271777807870907816546767948321231597817500259216473668829023536461716063445368258382825917379586761650030075372129395860767065427710978812827250894053070923390730732041558348261750496568541594588402566051732697697117887449889782398276170418995242765379219964576881527544639606653683808185566599111815001561127486825830233833918845442423652841861000623735307034956207477946456824493940581041150092633271700912973312794309178282712602109725227909044288498275451055409739925323328745504696803655156854365177969764272309250297920727488867072238814423263349549441949970950978594752515756554227309285827240443948525493865146127947137029065382992266474874206818245947308167176711324348097610273391410264193128701648141072681226265696017885709565789763885557585328321353148698274507403776579398006057003857982447436927261845464311012620045377721445173121339503683645207648433036378025615350100694525649372978098693824986967066860854726022806171016246484506578427767961616382049309527884359267018735467447180995082846125427896475334356597176704022133229252627577394171220275839322689344579863249087381963454765000555071187394269784225969842800301794982642328140835050280175057344117107544149891840746470608420898900538664706005695588180048013065862311789680540988081944601206221977043789980984559687268042695289517947256468504351696066154389904105786083698504418490292977170376688674654999612764178518598339069103749560153713321986882587257170064791112182883538498091585486402209437766507663402318757937881769643002594911022928726636579552985649153476203250840058034483970926394674172529825225234184008052318509877124236508076576524398315303933993200915980981666265363183640857696184583655512238727545097496970589259285272851688284001912286351392328000354415216199599320561243025302736654281454736401767621120454752991176879630380547520613647627293708690084158067542133925993905762703793498515769508526900298107920165251672982313354575925207748319727081540618008688309990598633210998753501425274955618360865753803661866916861833766978239789168654567184217024111170770452559272215709173864054982483891577821076099700159819753158224735664790519566645257514365874209504728359382636390026203558201432627167108301075467106859211711673496281057051888991355712183503869063600037533679840155483451500514363505383145269848466940802314097388961948696964102217925032320444490602761783413950245474340866212071101715951870615750394897710502401093418406796921476028888790342529477925128805619992940603102352567060194354941091916274358741385782634984520067061259749428109681866891165746824932551993587420978798179609864284487716893524771044458981708392709956120183442571284257568287580112705098092894576543845609703188550444997255390821718766254268885612646004525477244703444114818910149617241265519415070183375651979695901305103614511269238220937999099293301308874782382412818213888282543740561251891836085962140237021132190580052256977942882765550584917203715763360431024282893630157810067882324942707956854560578595812253404022867135933306318603253542448738022248030966836330774756887236624203237793838207538768606328245740926537719710796920913749385405624534040512382597154807064107225497960644381988859383981866874034188688784141267620781573654168227142125304449090462162207528573980200456013196047099360896448571649667470848508052143031723896456456048560108501889173521567078595105296278192859336469999458554689833344781640389587667259191300840244990994675971464237989705354470202034490430507861786286663735766358567758121352770194822982966491216101722180314887139472140797428134382220197247083849977736169523373485102752562870688530348548598471676558376060215760341552822354204737887406160216831166101037967949810383440984895807425468256888896714485317890449060775462753976680094665439117256165772482546405224023315055301680283881584204439047937026159840741850581727154551888225477118308516112459817244047703178656097183377948111809216633205940553747276621941230613489664853468813677014457165569270757716036700976033741697643198344728878392062903567589674099714571840938896745004656313930430910890219791029586805870621573225516708702536235894361146763747896618400038700405857427930070969071494413845057933982613981591687113641629760400136799662192256756232041597162881727539378277554152502787041680525353600181837178636411024973689277495846890718952319796006166726596518206916052479415726546504442892130141502575721875108446471880146781932701303897757404269982160501839336136065616214573749810726104638223777086763496948009413638424686384112817646337858014931685010824187674277736147585858906869733947235446896112331416517677651832448294643068531353570328277490631151212749273804898240739483014564327072112663788941018558788188917786512407182167115436649311205613947516469972138085279002698592022934781440557982042256463508982284817873485559013598049724130577225188094616645837721420191549355348907933457105261220132083310314136922122873100692960021115977973540338271709941193242092799605059011215557512119878197940316181183627517352603577536258187572574531703379854867089385584787932729575552970154045166697510619802788856565222907179441020258498682555902162886271666873947536084761048351818299828481865909195953782475072693283702033206928293361693277460709064212174572900485262033894166926714895426076760883918142202136840149833264069370265986029291630143352528335738514851441624028788788914932401110339635918527874500037487400315400964296387906296866527839208463263930648107575082361181604117958956383366467842887666919858706209174854362529711989381345473814511397996268667410957838919391072065710599865745612334955108910705056164692295289316052836567911774694428801776458709478966560090490648088527143003533208378146535649774827520789246876500314163699119710568544278115495105202445137442735020563822210506999972117168052175358430848058092444709041397159643948000814778518090416135707136758502343558464272002180978116530416939968947927886231525150862678750541906984606548734646873355466616295317330746500554698655805401217162018722286303901209106001296326718401461667031089845292604869778022088237822121480030424574029433951120918362457507741671261991889596437669734425788730952310505694796730380341997535567380189703185887556558108418648298115001859646937460263186302732074901641504900603510054422915090161696145332419220096680001556621809369140174687080052674430416293537166631024153190810371312278622144876584947396846404179362907392898730532195484973753113089150160445675473131268075431704869254696426179460599823100262693916242275196207828586272815143829768075439433246336837279403095380701495989513639596815135755212695319662979376471418878799840012782381308760772055501421061480717121939487437378056154775428244249401497147550160497738587673064896643190500411347906314593590477672326268048720969733220374842843340530663543113532011045388382039723381048241252524988984136454705790771547266650396827089581269474482918879499593666819303618899145744751818219872740070165523082414831732063671371231772131989019247508779354956516398979119961268045877205799564267602219370502118211968748573759335692833955946198394323822940681320473678286822815448524247464044514876719846032250611888751017880735384247026214440649581035292397186617533346848076974135794556905201146088232351582254092003335209983598220274207311706023281012806760301140461856074180376357122275492137291285694789548837051560590424725128697424134326321538847242714989533005668609669729588458946611801927007685837002640798795901178239180269428446553659237760402752123884850881575579596061141733478345841724517861495517405247557072744604005938807538345101383255756407310604936205575781188059936823431692803255458373039748171683544069804640714533744092379888506241593523660576283817236551145894571127031724493193924779398699811212122450727192160617434055094800003264177252981313069493273104014563348711781871210975111809431285820694390138313312857142180301661808874210643521193475686995559327812406123176434589332793312422136442680846364590169273690364725802330556735387524541454005918138932506641758183443191406999269685327534780164647393341213725405539607054464017626882631937065880980672569825710946202399169528079401212587063544387291909886221409297112223472016487474917052852493065702585040588729203941119678503908870609630611685152081198938653369219278482357989811035473138566266514187814085350508421576080650717147224938302847000716787286560927857656104585608403887285802303910356850241224728281342245641114085773379444875484657490405216717428168261846348332481369125192966367767175175810267409217459575580523268142862105612640785623620707573418372445909306754155339950636089090473275978312522935798939914375013385313916314214235373175329026903280148688493887666531239076752292297071563625559465770993118296269817223263356125159255565272900566703499510772584974533333644452783857492018975928450628588875884372893017791760441910622979151274206192828476008938945736956330106966342137116392295869774916209432596427484105259905961879965542656025386046197967448739387177137015715049506761404962583124737245617468396139638489402258342340067099605777803561067362794583194754413808173883946366424334086130469387552050308590416402346590957720365276621223094241448881461901398380593544515558553920337930951769214321735438442028948793331907634374567774394250765790995202685858156701478371490009706809736113970719910154880363285325522413109650544506501277973145767806488186141522512091475735434310996876222403845264024815117829776630816589719080167067606720308096258524097950723076282776554777367891452921258926942515866159304642484654630523569661835282312022779694364986903355392760605155259931303418734339363578701007598754537869657480854941783074640387635244846794620394901009419950172070804258667615172500676667115259338343312115804530688614358729731335329398101144560662558938424178646278443794363535563305991065793638439688513418218677520676772461074246260130344646829614186597877785708092811011448952548152797707455756146690646007499780445955853558187058573639219329994620284056927224421410685005187985312377230624507888943533204978726673093314406200219114085339068209487232057142255885271815970767562776880256623680982492123861203771100255611875860284904791628453255382125800095103589723176377486895259548180723024113216173063959552767536139230427120902856420919425751036193247561725737408558687860186600332746039340051220134713557316299274229334809456087834161868772282649871400657512527200269859055623110732542793124644332098264424640203609275524410072625625579292304233175434499972236189908450427524938621397106420278130183931250992046178630116398564415713270767004001509097188440088631576085946108702053941200190213195950241742805865791234519758418765879895008227642052821356776380469514580702301975715236210348772445257641587835501408597696091145156135855634178316803359029740181678546229092276679639208569374025767014969737950599487840807373721077586923283384477124607591326391427680619206613705970161090912621345254309083694781055247614508108059381701538007337865984072654105801413693044227645971590262651780773377819122998386185214023311111140171609771145506026652616892057781913414767849351704990873459793570033341585102737840057010046203963002759772454532200001469378581672904851505836155143663359625327004630389695985561051185863970147471587579063137666747776452755273954593575763101026251681308368495324661633209926270044428220326722145807736430009254680585079848398337651609660414821541789350117515106592695284550645055125663731850619837099914667457353836603613398569134307026548158759824848204212281224796960267632397021210920578561008244081887079226652943878849550530217583942840293207630108772514170811195867181908274106197131264007461601671059612288882092750322931879653006290778206670273124852099847997172029807126687607932489283612922790989559922903554886908125432377165976409253877923994667586426162124465824843213097044716736079593065256916214466745140910799041903127379412106421641491745733177170658826537554072366800362146803865137495904121650659311481052470521345966281693530927384166495651616907420672399739308708347411020101813543011986006256036986572381294675859943443136767110756718728090372297230300773300543173995239195097319089012525716986885328988396292766567076713061967502835199688025423685809029984919816918311532678976351125860567467697908182904854432235933926408777845750180691323649635061580207867132696398205418458872941165445738688039936829306434099191407742739928534121890970719804631671675383023754640576365218474204575256365570909941002771980666745098814608440000322599495952023082942899675186058432596030248224981374201111489012487823575366028417601863062849683036705367894676958665460233338688659986508610038204653453540737297593233076373076184160641547533151603295413541196355528383794566845216540856471492231109846771851337641078881196264595221287051074574397158558656501312645107368657932668907133427341562041698182151435543971242733297664323850591670313689039855874243216199186297029271300265515501770384886301013953039139545486644532962705887050668548081988703655323922180967652571203167835810934995792603331377471334825496848233234559812944336968683521587973694271889002360383104877552001647400546600722228315673094790399020778894182369962937924290103036404879934457237457697927863979005093838825896062697425338239791902244916458429284000270290416271691665693183115177943203637068510928485247642113748255199691550495864635932431629978276289687587842233422008992222713738887265456032240069052870035758875707542209628386773730816331683978298431505755345963936341249188330660569283427696459370243493148502966678896946289070698011011929734987295279107763726276019945355285184010773164428908645024488573490955142137234143866234183701630893345784313129839179681182570112632599970014245586160254849440445966221578958790770636867139182951573078020422409285499000937199356417407807357749429232473659002774687083622920541113783171193346224430538157917734604483285020463635619335948664810920710122262345215744356429213079046438907025983166265895173544500410082658355483180517649859908628585789897884098721778943993838855658474527348132727994037792297808161330541925008651149235160970736634463667505655472438851233833662670070389150040156995660382199613459530715453604700258365174224673122271858629419802493731447131203076898473587289905663173019940766472140927991506312746917183873867255295041641770179214474712216029665572303278213851960867831141451390556577749729788611539607721036672630504585944891120103714029343296328004351947411488271065748535216838435661339536310348208243948049231256100422236961571914487063649553758561133855292274790871996507506978000105773957095119290391772991305346626442472062351301133710667014382995382155934399460724985455340009438827676113464895327801459969194095940370153931861861460298566119482548877402953938212039273996820710080236780870482383085020015670058976834722977960643583012519152800015712992445030041084185160467728405022534418637950562991132108137344696805844617422940940259081240901754255799455350811641719916365975481831221091824004347184051826635427525357475108624823052424479649770756087826747334062329836870463338059524070403494005764051096468001927028356011531904140073123427760411907601922109556370892665208333200237194693130186562032246143803014879544108428450964781908773233915875553859020389792203065068134206666049129859450387955617277222743502851077550013265066896640039291513036896395264328590151346797791747681555912072736869245798688876418091439452532130531726603538957985475782303461873142208717913160306676315793359077675411261638972132865825611338443051045823870485275747074265508678016781095846170839464516794963991172072799106125756218996329811128999782554815893569430776602310901738341765840052837915338089380080882129255822321900084844029155384082791427698264464920734297333641242186330451049469952209184933567529686216559911281062966460480758449395886497500870383038377483833016697567471864462806387695160142720192426107570291638303985862383625540785122092237993040872785038757809326287059298107254095336323198155021434878155538817086041116692188786066914915001294932629657882510906051422718349227070148604142657897143135744444080592467161739679682763075694249705962477524773001902561532680780036399396990564765313668885005170646913340437889469397847893137098597715487530450430883154982904464208135383726180306873769196808414582402223718856109292071750661318906425088886633583205283716813736119035613141898886112272619007365189411021865275275358450010782087796745908295807517741275176265128877694302622270130037987077280853510273642507639650588020178776301832326611295159100981808790067034828216575639428857390661724373331905113529720310308877865059362391699575536115511755647793395613126462263510490470386696447846367050164399216075729380211850897690029635961239713666715000064035923247249011899298173775954476553212915077711713277490039384796032646171210408720326639282186648656416952158250174535245573635366746880648341124990774386608567294866736532539676761774927399226571577011587450518763997155555983300983686929780175574290869850973032939067550507983064158645303464319146248026915674731967575788208888079765903261197498210312225336718793326264906784049507692799338510172960002618529163169672058222220093462971729868526295587086088444656121072299862772117067612488579940905450696747339702515946188766857339649493226470519721197886154561470665316362239400648539958853191518954606023921912729314841247075338409707607679643008295935062656409693645280355166357403922169797380185663312737573108124677289589096232620719307056667726488164167290700113688941051669485348998135396021594483154062675890005805019987151728182069806307324840362241771922858287351375745406022215387918449515423909894842136346697870640598673600548921062756029867064530964520636908107566948249683462674179932931800562098903671299061909527389599849800569380456400079270899106810473526784235759427481493033380229756255370484577259026845056791269677490456096772767302574182688693954967365324135266401777968523698126928233302996514681602584065174055604625257435851273827177569969602396958556411551527804959481114332786458437496436435038065259190236754860701124149900772667053635862365567197366459887066698868971260576180448798699109672278247925706239687191206207007817293841403750602054374993488398515133694929812289351099494366068001034601002287407950084169183079613879012725354517291109493038111129148873101614918361387013609590982733260034396421110218493119997970602629156022778278511740365487023522640255178821477994327273585281931579707277038705154580931871878692900946061633563661409326718852857319798829073433047693715048791274530857494903119282921440556514978328260505635486427397935816416640712769982871807009807654392757380978168153822307090754374833179256008969342900591148654530188599446692729512382718893290553948039383447122511161551452327777466702734247314654590336935063484057958932898439629871591537483862868565549066704288193331458768364148122145178546762469625488297672693259325608916908235271190972172118700476850031674115108297417572799312618745784532756893424384923751759928293589960796487645095116962644262193287158643087999957119176734536459515549350362895098140665369555206101640376419568293839561379578733894004890619863470142330400456578285018157782091646984645102896578572064001460383966021636719319225871069464873136837123546408134936200259205270084609124255936618097197207827838423370091972794662714055107838169420410213948057643834517027687034167064140354043019447953434758211559114981079844996781380990280908240812176248615217465562756246383170538434235475706716784392466412530573747765369244500381221035072114948156371841358009806390459508473362902896616322193401792531631455790103751809161049741686716703654199127922643286259487350860481557902978614099148992505587212831822881734589244791673691940709852831652716250891621582833110044999174667594378439473107584546329903632844238910922552352633823093719444930635660526083523638631326539641929812574294301812861196627601325161561433554753430603458505392935667033453270148699503853623004937650104938704219295803999296999060560397901871061584522418430011920580798920056450284011314594122489029208630545003716238879338011046298214578616393864887188016672047135328457622560343709686920808952956256233377342665551607429924280235799988442754680635456497767580837941475420038584120351223601213123612050819325708499027849558880694626642473658690353222330561477824924545418654443949793394699119874887421173351855080414864429244776870768834528698876057884184347009538959330143052305737644501120450399839604156030597708738321111027796700829400994805362598443467537879748681910763591274653340765960129350143711412762851561038486137148342627304735294110415475805290592027270485733020238551459799368499138463919223922593296815874809759163837235182644399736374624652500953658549344805393348622787147790966552375823405576978194084528830449942528600773048313763762565259057112515472770462902808617500442770692135504325306540144078124170813922323096595059123982594577659796392164322352440905124774784656456279028762700465104445136243871122379420956734431335406181989734569443167391653538423123107825176027687614029727579263314538498795903844568510108853932164567542894966117967992645823734814724242456133343356420788426195169987253877849766869156147708956904276789765172951717941054111412771848762205507398429357058861407346718863263760401626085863751604605825629892003835925062633634015606059811370745453740269969092774026959452285053137391807017731037620392168492700671732789299032638290021860441034122140018314394137055944454786233599123520062132904063989146880329424388864859897270467790285528689028069571006170578788147497392004205045638849068078686099531006545173285836524649802263320916917466288163021717803585618824209662942307242124706788008084821798880408348491630625844369903034970721909917965306621277470762190317436510615139420106015133113505976283522552479389137047696148149882157856587809444559342855350344429069102727261377474450868098454387380784256107566678293218681954080808147138410178419536985166481930037157501342260456953403333151940406347589375871431945260696839700403899214976064551248024312437696825161924246380766486989444196788388514726557558090060569875290468721377947800576825289751335208499748317694184695595412313722133145069998967146633859283121446646990573451103953082127519560129431266416467517128745033397990897038136671273433793143668179007682552402279575439374871260436777726869170752788157085367394577325447765528264197994771944469424901990423817243708073063805763702753287221548340474097035006935691872447229117992355135921629281311895660610729523178270199419791503073403709663680030530004774872734384231810500925187502224609583127713128719428346077886433456259927887121789369656324545991033206910109124683628421252957377628646671879097874074372550493341662386793355965675934353484789285217968638882637144247296659659224021345308500141508513369627008710478643289787136230129463757660120838104720676435721077460722623715309986373605159321944376217962939191234176360785479033709732702271949608390605742779578958563361064452572497361654879336702437057566482444026214458814209545789612645586906678314205734252504524249870881101881700336824853680850575792152638914353518003745505708107103338692718844151024203779817488820061704237914612403368779096186928211967993942955513604429201678468155654364721536613587919878261753349005060281796778279325841842695879104913325872044800891817022798545593318913531791387891534527250502454682172794837149476613586817775378780331929867302138797749010938817098139480234198245141875443199359571603138977709535504865302896203338428834952502032664068400757759586519607444819394167990837396006205954529378553516622899265681616086001962210201284686784695708262131472374113591641146899580126503402055905792638575024278525006242032118588897249245467199671632672254601653388694171998819011108774827262269559200652331350646373998865771576462133589616419911225491956059373668235490683545056579187895524802100368194091073328738332258959921713845476534057886995290606907454550017684862639610709439586820533185163537572020387789269149929246432057051467219752063234936486575749899834171896181349197514448325006048954192657255522587733398696827328131637365044476427808326923995781387969483448454557795510980474661774873886074895273894843321311649254063547150451219978428754020758626041836748789531189151520900935711551225324085154391108569786934040123581162528649964526559372408062168865075879781358517737311188120689958513885947845812886178182704091153384541305641016917697519232771283112762874039316399439102921955034052871123226778279478839641553285418952003325101578267527670047615897426798655291842162830009425089503392646884530094086119520455201865550785379287468656021764000504243051411797798647577578218627877506635519508149079390537053714585514112978811961618167197436123982486896021095377355283224733289906271000687002267066109825554741671774450079058614993564686604838830161004362936541683842419676268102688349402405475826054720815936928643659762145452565782985713550862151408091130555341104647572250534112399850405129311249299929076941899412038977975553810740947818354301435266951685784644772144006770448666217801007869127308061346568014290484232363251803900149428984603817462498341394703952449954777493093752318611151624543041516779305454770183235041732775271499027279012866441309668506388283202358449702542259363830033361836447240343181520805498179765819687265987721920821245267166786503466892792703988310737966482220348492179365209939515793268858073714552937246370961660706925631502857237178319377648538066963442745321986567938992995797447992166043837719930023660864524341654316671880573548471348368730185572725586794959095334913626391742332485575080859800325430094227324276916190061771946815116110659763378417718739005365342862887370233050116961507712196431333136458539017315239034239689550574972196719868915289147284172270291308592492678066014374787303480504679839133107812810233778179175643166397217835251303178302638509280397610185318857173919884949571614430779374892652164742230211673674883453129291973104172645626723733460251481243388042423230942870565904099209852188730319789145895530033347225954489826950410116524047364545388891457075067373992496990432316986327863288861289070776799243336936334256880443034022551183134294415132969124809266234320950104050687638372482410984247710831567282697211145053425503857959206272301895622874407122615181821019226983795635225036755145288067704284801672166366312063804823948327031361349356519580556556518469981287919243294695788989436667838355182911207579294944656102464203650516030089996966038003544939048992822620558955740520352319441629411043506000172323039417914560166934000601174852743854810191805863969331171893310803124880351084432301839451816044389630594375067954907568821202905985469050519819789921158422286453576327675079796047845088627299992257996666345597683993270327255391300484245688551721246871880856825802812158604453749360871338046301093362589715766008353648019734582205388729795867403009322212007515070316367336373701450953385777930519971942773002167727545977756724869323566542537162925565399756123554289722562620279114805757028428798263909610036119540385446525149294401981652141458615395268570903081189254053479268112561200789722024661808111523364982240062770082252511877646447185364837933846594033333937149335672647002665402305580722095494701927451523126251402435330127510801304889159151922448555425824472843735876114883009704540433056104881510946447469239806528637839872970311888041567180552924648312800746416605220670877043499211170007658259612041019330029019763506743490891276619885085224178599357171524657564130799809294073271994776330114695006570080392361107048637196699031642491801234659288252374685427463125560266965849729400708089633876103562440639748826941016774945209472818640771213633324913725604968674943380856150464261826009118750359290416859212449216685891274905201012533818972683823333488066989019632874137330119425614717815111923484880651307982473448920160110348013105121057453041138847113449198664651852968731239630477679526492025651054995841446102975434391315068203634027301338609552823141321182649651631595622007372904653461024055258672125631230014866463449049031929614873937117813692684642865922448373972306304829382828490544417384640390311279548941682148812392440403678508110069196486487361260955622823636202024557151170710572970007340937148154837010330240712197550717886942740173927348872133203804935966522387674382007963554940570592995969380822097050035074760150619544733909299220374694996613183326287006128421689832330948153339895055326008091450713993250547942301093531547123640390569184878853993880319341550754676394353843404149158173897582885121173857475508824357319635588769928540280364077941005148005954736273691631032716406374008265371978812667288533060834223419200637426301136619018932739818997846682228027466053269437959953329343836984819270180607576927366900852005147267129963064186650899638472671720749719063229839276806057812107437699316912090957968432411647359758665017896595727619441702643812174952977831746208356685770787420097359175508849211624574115883548848475552206962273034989197913595165527481545437197175527586166768256025941544967093740138466645984995013065536031951430447414544927426054267556994500803006217168689652902512769667902772560951643289295344681227938465375891753562136052157693717921514554223610377258516830375270419757822190183545791834154176550814157025610304905621990155172062780764176232615513786193180762839598350062359063468509474407749844983092787377542539001077050656874998440642196429208837332447239168467327733602117299070259850738005168493315212586736870993265739977478141165815630434776151755892798738167166980133283114996118037264668565238508245777230662377850107818611466869815090383110258232021168795067394330835190508426708298474628929839988293100925912251398474627969340958788103466675967357924186945667567673217330396986751362831949859509854544754182076805493049399164197269604962780640684052417797466386936448918835180929467092640724480006337570090253641201436445309049324376773733766343372573818952468951939432240940854966658144713910797148563332763891002988314901797078753177598891779083279364519706077351314936871871075128063681753768095696424946528858327148894315694162761208469940001001854194917033001761808553528971394960170715093894804847249184491637443920503643605234766043417441306195642380554387132391455951787770680654656815030434790093272063948723935362280083958404550731750381069829777378516498862951877983256664987806751576226497974534866754457612863231024542770908479410966657408965159095132299913437114657422451488632886751985036895910223611263939761286976864560483772967533511942750998312256127782250437471282685003450725858163074808175340683713402501391276287680867941870739052990619887501458737894329318138383398316131338973483462275702412728904964574841696850086187206747609334103283507625680953740950745350747161037848429218146785956235734940808989413745425190174359631128720976047814325342902407162399679151435310850578830910816977090302891383180518403520157195670077338574320839093161626480807751892890629348492302627809680665726241239100215372561544007856329647993456469759973278606513382609542983291442511385490979281206275892506253688376508416892859782589704331197760695096328849725349619387766177727729343152411142270684408229639881344639450429756007154417993920873753148675710765760438398212139241497121790749324414823887781002701135433697900074706945518716822934150003817679093723903405645755471491809004415988075897793318190756714138885412732649244894654828868497053821465642575525084986542746230444831520144025034249754821396834189801752428513417303073971553916778739048387368366514533382736626842094254512299848442433429079305507926785830307330413964071913479185227598201652372331948962617973301526070602967892219343817632443745855167538442379733502013239390054193189972970739334057862330060512128325002279406285908295999441611343340958054688226147653225935382070092864527956116395643644110712405495315954710305422930117703883623627502947950012884606365737314031179331981562351813305805688327313744169376129024334010546162447694544066839703302649006969964321702867759158437981182522270489501811204681085826952075494913777899748070610449051262393504194166994311535877254097694025233977645945987642927290217375108118401846386029667727500365743847310923524851916688880410138186961070210150576773818005575656941867068967377657337733910175982509773254491018860422149191879749443601413399922078329821574698732785644352361619892119004540989985532615015158771620599343848340109849137191679899415429867288411616353208174815997120191435295900711012517189192852823871813828993966836976846047546409824698832427366140314473681113264433053095039058824991174228141284774173058107130148555760084499459505786236793417313363768794420733999661759273843765238254819321954149507493557771470272617015876575265716104269172196319820121979412151648001488922780914723662788488980526720786287380743615482084674227206592519450939703065342119015803991437944222838616696737967281575433069533992318460862225233203115085608982871431521925638596100965181287660658094539241278313549418661056342516821833024668986330716852001108992275831354806316999230550895584053557746316690056286736746847848592523732941953123448431858241580675937825218529056668471248340163644313086132569225370858004986153752721115901228839779241356485881069429653292101798136890648159011319381736512477233564476700927949551433040786127706732684101060531097414767446184524567607154857969672281577838980805484493068874354046885939645479635447133557769440333802985238508547214350158517711706037060485589802257402909447425479881067827984507661660118821178977873391300350114291051010417210913859129430620927105675386715274289065771523922903582058157668411865636928041915403753149264820424031414637038294351065558021600691247286366849576793003311157837125233788170608102040048410676794273015374007647064929746130172317104645870899539996262563383825857571852122069322283579029811287237307465155492566942591425345882746008188407633312655558810593158370695414532879731848620829945563273388432030282871343880218813154338803622190038135516794257001630120153973463554996489869569588054506811189452106392609537112602762144920850685635168768748261143435216155588790268868971316120459179834906728843280461974212574126158618978269003315532115946836892786057917674997495783752467920943251415711003101439049522127476907153818867246520079187284104541144136111492656185105843061853194087640005672583942348781394010842764419417181823168281680772539058975688222014928241544058571247568344256553817894972270878494390608778240491421724004368559935269386018382581983645232889858152141746365827356421406177520618967265337404206840431382929647544224378987278567163709780658573559405568104113702644605145394925413832552693205119314191863997017888685276454777876117572742201536200926613251804309643043066542817417151772600278434523292056624996229102215966320921172727234723392844960025418065847763400059820995708145874465902449044408170667755749577131232909533709145115542255780067814855086316279502101200648444043315922649400697519810736855812920237348142886474851123553079622006165216363298209585673358718692048179237896195299812739219505538802146321461317786443107985776934191670702958746357325218535841733519981294388106590134763818727819994868147506376095063047003456468061142531147137779190912840223991088789235639079030392238103921694462073467850474102596487970515804200935800415443566921230255939428444536794952545288378149667393921181930650700619910217011378654302985160407125407908722786202718604714811743882204753096990113231367328959217388986783278420198207460089085786378304119890673075976782226654909251193416054578697757543813435710364116804833099665316784514927599075731512536653704438187338671234321069928512206165226712185871556285730511694032027696050784342213533297406657945451358813068036366598305242266508525012915220551310043696010139222442685715447428065426663037450209108860272312085068587638835926816829856832758106511089548916336677055575846429144297164425853584553358082659640912794889760376985976165772041195735829889864746928418310322380180743837637037397494577242523435331634243118347695134336045414196237059977971325901923128825643764166458320458968980345138277097204759824995842871550995724904965006101315854529328209806460031462091155418828246133627889261547392532111266114790865109065958122887223958006588884491187581917685331802247144513093486762572157556044171123724391578787454225473027873933293843553806330575543824946454035207923688414428168623885147619843438810148388252741865864251380753093213892913431884621808591351921201091104228506221026041176414761642684321186591706337870692133040105745439844337467590733030549231511911123806811831216450404985146052422435207384168135602985246192451857632742619284466342071099850601736033107009622615801388818827899334842941723273220021118988927042996723948773299448025724304521119701423738095865803998063073568652762783862748231893973135630438395829883165817815596466512645600311812242106078309731151825081332457092464920235235255990368706957038195510003064143306094385082089703009130281408925885171610437092102576132647844696641006031589594585662571693223733683458491287198257954990525065287569802604600639356980181171655042945998547519952489961464985836185022634033146590971218239722411149021297048472067929431371600727950772053109960417014965460605471560435408241723282975494439048615392655130387819685950816111748912292667950016557856959431164097863985303450120869438259092636503442612021249761375644885983019021611376357582239508396247965179044300330355113650410345810847945170558477236421268628368841108116831829038419851261170648909920481701733894691166990271455407419712288939881501399668507653922797082795532216104142878890819841238915268658703504498755667238648227540587457312825396712388038949564965277482148163157689944977658639622531347582293320725180124044510115586767836975806165560847450772227395168543293967080793655796407412046174594049316529410372099316680705071504042040026930687155041932439480852966621027179582050912339921895179829468303296175320944782989695811126503169148414807179150273196225126823010139251449095368272619785906741883149415514264740104160375644651725666439581003680492168228083977002956160945184009267141252607916288720554837608174721972060013526870929328885686190849086432330863405881501689960501003414642471233941772986080918367643313352067582191000596134864181956390657159277719667281632363650275201143892906982594170385464218137376609836351617619314269695890157328398046183794814125684201026751288524138616536386576885989619689979112839399758747202650587516912013129696274601668340281511006892177613263819064894176551525151005704896989445212407815353739331759010913678401886562808516457923914112476345779266938021869828374779340975974196432997019362251345471016092821164291310835380409744517243714567518857640466181180259292328547579597972335416805150345539353464799868637192727922771337976253777914681903640730298677751161539065452711005718816578371474493569154382640067707647637615177072988481292277242619915022128451976575602435400684270060163100998369014965238659805642137987748822703967399725060744506945476359680062311725690455478097990258915894462442364076497367857356766705576288021631008702842639654925660705320017585421553926230470950283254815530062669445709079122064735665941796723637689000409339330991983699917545031451090244036391927160945958249287529322904691584218512514324320882764506527724516658636795260456844024148901369012082718251191934789623949315128764659285369893046213325000450064838373621546508196241254246498457325454545816528507501986337120753491520623949662574946733308635711569863449606286999330004769970151475134304188976851303850736577066019027350820204690102342333749983338878550400966617637829688765707797565021789315477014482555153511505959489185352715103105922370927334814021251994221931396151708942880801618566413531196388834520658585401551380827167343800632527072622246203023583875447544444322413664506241423082780365969773356067434920186900994771451458588778612401157405971063044781692089442402161504634883530290365943604088147535013334592139560871347008903534889984775131488200060102717432218632955191132312589970131716035533224498768409543278030248627341391564419137080021884793662881693136712341436944486137969961742849927560599829541496925937758441267762079226525305906721286899429651495717808971800001680014026855556351747864326432420054321138579561192358153342436789509280916735272312055390082527375384891855818049273828838153670733408369271179672476567842405803663820870878616311651772157732273259369693984329960205363352361077191560418258610123903016294365704556493280674511662266379843799603540496257652388923400332497284280849990015369867107914616529385883103772808976690672968264150922321036122224306653355586110607559181219948220861898239441192786571476389547791598070045131090227814248648529169855901698856841245095839107041169651042249895521979057839073523619359576585950952731578584997767047127031732041549561882797341324266098230016871419320802178183913474658575669429570698040379939127257917934948766773833896760779856414422380447115474318430666825325429490978194487769116495871947070607985923701053399771319196407328570847701746026395311395359470716986712114722871104579659215672897566370385942763722176391307035550125055636728446008116936122880795128720512733581504928447835852648626507051989452203460297621355965810123233040221083091495134832463728138506081390863113590815656035140135134102222385932960173358015869822119758651900039895851604789373314019627868058652180057453646471694216439512049460804773097096356265550280867849539501702317302538106841576040508104677645565254826075107539173615840383513737614970823782485732363029005711225160934986621352653291979942590309746820303823873092604032175228550998808017322107704362951213280346281364466863141059563019975313678222813431276940093170721737592017755281683322352470344102595483281614893850732530992573009263136401430141969030476483851198380971498016589288355690356846140817040338732143325790056523491258651273302633616122807244309581644749331722402012933002282233294958437223843788877334405750899044764693071569359169293601308622708758008064849572307242539417909704412481815772777773000267806613217721838761362872002076347170361662451493587031612545848494115178913907432221509572931178109644059977874251769222231346186737730243391302570864350656947401429532253467696337019248301297488354245986856866530213908775359146057920582566508128020583948109758460870475468695412748810033401992074553415221585368888749557802224303095879285350160188030843116779423181869175991300878835181510403738100747318586776252671012081914417967771039251714881507067510589484211802304952319533677458685730961751833392611570144125102384540653822182798173518232708455382166539197412966276909935228876375717347865650863004468224847352855046508173292855762375471461899966711155173184097143562827183978996305010489146780391664870384665291331935773345532306417006409700409838960064640726484197329521051733259752844125693355351573342180787430810142150810843825042087189391019328520087888733515967287605477545552415203138325199618743580795665349450529355091661485278349962329580576697317440027032465329288958981201495512924716892530200279828906584910928533194648036458106324457575270492564578695090872933328434312184573488550683398073088804158059822325371559058808097214465387798756453713834388451959235554810368740821593461890972939574672003349049918630722095296057087590751069334203767646690903930453587532912833990880206139476044007857785151459589854954833063987354305490962117113038788525118219290263503135789747442337681485234833662732291458344710100688341890904967598662977430344013134285122024076812641442366080047739397963597692505329908333134272531635992255062680979301625136585616115291921801726480596172618083576926596029583781699926761880347401901648129340962993508624365689884135327259484100126231777870983672114959012043583086903991697826347335837791883882302011896513687051969238951368376371251254586331053167640161095581318666592671339439467593054844200967660913791979605288016488273683027682748940068573995376373698516094022474634616512651456387223241323259682011496365578631411549750306482395326751548366097651551193833326025895047182836091120332388904990725783363414478569805632868104526750822347025639958901383209067787838842130917240327121434075608018201750019571647555462046378681850669178395508136329499842255002570676185967790829650249590566680211555674183435701095909885743136297081886999057074641112320347656034038664622904762854398895968162308637511963371654481006518889675063108630267964766521878401314218294510341801926650162953648912924507687778715141269528227774483203053796274279490456020978407760964291978243915512335176124458214426460050624168060215261791896618255133810576523604321736521754548132818194027009439633840853550321250691162158298766097835708349538610533186495752110270566332827649230409252557977038358040935407195494391900213460017929919906515829020101712934792035291017970263161491541605972343618419541892516157108164183711321981925362198864598657870018030848664263669602469542658486019569174570417139176873667578300502698642052049897155791958981039461956515954296249563257335820043935560403396471670109061842162736617924860667745764479606790488591481998753653068186565222541765911084294870246001505259150121394708536586674670984499522684700621111500928989096020769548243710268694979586862868742984494307064020346373624307881648183377330116971367952809230349111836913797550016679992325261072755179714061801777593023476264279757156075518258736543664498584526929644795330427971931821002429584561978718770488614852249290419838906067047435836312169480035388375514631888106972183374896611963144636402247765787141846532297600067524272021965758301608810587249812907960002311033682137375687351502679385636207575867337737903530394903740507233707898016107144892117346871097051337455972396816764631637017080527207300885494001267907830365435239038247490538876578852237385465671237988882942022607926587326631067487881278875084058722037747600063645114085297734296489237959355938805168061990718974142846382267934308212693834599182370218239384295942479361105532354536157755337572827509440302725098298689170902182601103349722294187389519404972381706021141890409511107161693179708147538728006554603242349242579473809644696243438468111602424273812581059340127325547858490694254443655084741189715586009032178557152312958797533568110922070811189608497537399888237242128490976442965707209053190659021429143192686084490395136636803994763941454852016400565303109820842029965613848540045581256950457477109361168946268245417487779158704945132304732639906666516986105028865461854669416249943100531217025669762990433537487601391656900856672585973393703746176398122984698769607560406877770390123861531728505854266908032594082771635715114691949616912412005067132330865100975005862138212157026821914684102444902904533641130307740733095624295849150296392685992903034338503142875618111087363340797876632624329124008132141459393962055464931254580054688833741104436751052819352538134806529388431451695110055246960320316686424883925212787431687396716053745555322582115981496991658093686264121651579511802770567128035112243498524669143453832903499164652783083871075912347001284632067820693837195126643304623055554817729804961915862401396684191634470886694540948252091843316124608588698867009092440753015665941635072864841545790144028242284954492439524415228767384113033814951090944125925808408206700655807771671483506969164722801899431294414882134783130852738461948114735891881926122089919018706418448756151385511684817565909523599319066721707477934245237280752744365107679133658041239832331150681655837904640828017997011079021024894658546306611820960752567742424079188338076133458711172930203788403428774827101329119930315209826714838954429097118952301826915971751817799049170666950260585198934184927032512225090265508178462959304734729300711283761466353752079092407171627033743186774945621353063037918365168922998583680079912147131994793370328639224834189721026026121464615335587484139596102318198189903014404876829414510433704140469596195163126445113621036744023487080312019423207965883577191859678506682467568562079318393526961595293410677078257096904472893337149300158850719108618717921427540954149783626494763215177797309137272709758622129912123937435565533205577677694536532316095334744017629408879277094105800175657329446580264597001659588955763841244979335406763127331812525371317350570306229828275204862381198394053080584578488014098216784745596779535350090351677844561709706315701313171928396238974457462100806287633003609881773441829535215936240768743655261219718387190499638540468270496146653250139693274078060723425620007667690551965521181178013630006870083652712246718040252269103320439736486122431037540466465989553944191375638700379081877077474065611353601532317138871789802192982255296037464515996286200017605649227864372204300731003885030904077530970295391349123176636280039043201912579341994555523684743009801256445248975065768324128811135155022826347368416671407290828687536465516538519944723414214599062108883479247016809772370039372459203416477799846882954939773516181855397173237973147798179157367041711569173933416244467660688628920074788805538090682218777556922686407237820964784020397549584143489972126568013681696916666510622332959780620751572662563821600502493804216524507433225973659954186289321771718807434069902346564800350345204524433108521740983104128074243057402654580124908603508332776269798347719490504432152674513822372599689198813020772091805198971403919464366719872379319973246524192349264188022298380479997657843515059484812102340555525504122127814491223791153004232844554472479949956408953524613661857115952675777330103112190999708258676037983360799688011974000455806173762692131456134664039189247291810487336026726828477768239059966597415226347394540545440839071850175315361672048689382802965767396228152869683764852522426662679723009807691939409845151600895321183814618530096649903107612764836279386287927982976783539256898100633671714587306118691687886184264088150510744668771301977382056479865541831263389347819329714777053871120210885996040052375559748643823748404219265534607397089994319246276669807265079311219782888063152958703037180352347562778969158297968598734601415627619138153569157452637838224980104237996961245216409141653115708931010000088349003077671786770358939796359141621082469388512146888390892143023033808914729593285569984784685480540266712876079724937512966077194012604025650612984104034152321226090952315153421202258624404064778984923952144050612882725288191047470351348529478886519016953649316257410500425836215946723562420563172013659345993223740707717488750551966177286310156087651895479069141924237975245809210471059452222972462427256436369856277428680954158174142214054843281861247213218145415258582532736576707048874904371116621856671716442162000939658590245390949407231130125007313085951423187296242644674104229930072493798642319138820334236261135731485513572987456259216087563774723277246533121900944305582849368580693939718068703649192747996124840111634768693361616354278797559473624000029981878648411268333133523129730314621398101034581500910205358573624181310574530731153382170016356773110702875732254757058682858984528693648536256334891934740773749510509722902963213416612560138776073524446042248122774386281374094527549823818409124445038488286710263366424140858608245380743006009953604753632367552504342515963866240146900745783229787990463485428014254230754244347812791891902713659523787444766805283678870940277118519107730908594957699125087699992908005412263377031985907309474677837791202500048213051551973559158864186054231724013421583701935793398803568468487303173758257406482657105691235183866531885046546867616527357824448830078699988547891649915795861478459257454122113146249619422296734385169540828990105905283004359873310192536345735682136320943308867089140713794703676764863978870466222377577762837616886968470015965378384166830157822059526048350170837706610942740735955317906564869157089301714443741365233052163109500326446876706787586656458587837274155094834141577990529508440644970920782755431222304243135606604914385434160132346401203070450923214012608367448007251674144202424185339431201438398192170015760692044360349060850216744997754207006451557094899510504200237315674029799658884568396611349181336498216699366770909174383964362454860209876762631701700628215451136801454459443644258634802007013708740054919981359760211855067257727338616952710584967998489397522865309915935241906008621731951966528089764726471943172611036322144886209739568223097393693847102663494865886054506627779586435410868575981020798558988556219204378560545800289830508299039067165300166921041164834343290190869019303743161451634834733798708071544320023123732893769748918610471732843143965227213921829387849355049133710396084127907212193374399965256020438278584282940562004216183315400540252690260151895927598581384517241385113981679839944243666932089558636928665839721847666803230010222578539555173410281754615850741437759913102514014903157812940045520232363583967972671906745611629710078853775276553835788263810400704672510652730293679132292192685597610223485710642331658789692500655946720293589548837684130639536493125782238606703921232816778877898130324342254382403298449307294198930446567666917062725239371990323743349932800924130049313169561670472728504459699848133553347859063986121332963200149484603998125740839268378063744553177104002073997912784171406687208860687135148294797419781289450783127507966771214720666608278725403967122407897454382534638391247060468564819600439393885267279199548026918796601009214873048133903259892995684347084432036157115728396955678895551958681454365802935833495939069522588303165775829809613161911265169570515089857173777944302324446821202052060449876875744722698937323456982688774771333857666483587750617643417235400126322383156823524083688950099615693030579260717294299462710411444559241937055231008743495311895898735459075192048551020117333672803137462557896902287109305084335115817377583783141306226539041830137817952246963843253720386269860076908777073773623624533028614921064096366008204972102753943554225030416608901569277710560591170663325454380288528558723723679298176726362472458278576310761270803256756973899194616578790417220891910143457865223958035299669185849086443771638360994425346126460530048140736946546004792671255213997834584841717542446169524332105277496470307928925262899617026622046606160698120880034095245351068161530857657214837865978969244579029090550857124421825490434891071887448770213826800645549991659010413872918371791256494296944462455013765531480104185460466336857502087715089293447164184413254384164060279699340833354303290110732556025688146405849746540023865143832565998894069701507097185411311997130789043480517172523516167755884917722156781564413705449003500936412229827419781015324618420930498812080897545136487257975418139141695538469240322557813428762447882491641936189990060819994028062563896129714215325571595105502698723484352874205578758883776191681321137718794749206849541047273545649079963536862461870072874617604824486369148841096837423516287656445299889195475728407601619905832641955314376459047255871677459542452165114976541806505325606099967722937206215746817539137788511519722117539297114068601463621720243937379070054449500421266664937387445920646151733905574569451891662053414253872299950101841545131976979785636262106203893594693656778810322155004438231320467005493955448115231879351579824543098143293399949765792291370420906947605998001675530120684081079368359729971685131931768531609344966703424492067197645562245740789484791177649651647848933735554501909348069764068902949222816224239613962804450206983092207618295653010708048062141632741478022098781297307574827051286760464167922639449416681372495725551169471897937387123911793772570113226706760637355922601555685539268998099538505918152345452999796106230879115315297559135129449234612817774021048597975402036334939917288961187859764825259195728883892284806193370276142356064414922990914945276994974388495219183700919639417329360666053746765411617868255686813791831899056055269228926580831026706773563537385029777976495995639505506129120665266929742477196073739755752791929888829458987397325510982396600937096734572776124821578647092511469506678644382728161855900431788826708667348414458018902709799128217910112697864353272560743743271608630359975309846529641064378046164181541942921451632795934536270956346104713525180437468067016718045044140600243187492427101385278481062647834367200072390933465182681511004505959189932137943413715084642987688611494866486290871710718792754347617389050088362645175770994481273045628897602314967546386241868241592096147693107594567526513596454146461909240222265618364050447021973590510038556728628505735749519548947177098053489264507421685125643363639624019938265096467605934236127616505243623505338960400400528559551624074269415660677838155109603319337210065864953034584442908771018674582422913143286961595768837906051910657960655924677875477844997205869101961981866838704079736196415380971492231796221238053047236207540964706928656702268828526506147831752548653084119665417345111893770408202605425501072756654974916021896982495530282756526244883491931451493763369663357017861093746162398315643994459608642642197224639950010482362977565862979939727481413086122206494509163623701747033885288265328168097155242862733528751256816350799839741343673723423726002091696696539515990327433666228509054792208601568008412936036243236456501811243016076687057024458853537238248391013039094913588781817791761568594515941639112274616956940134017050505697545899363385123798364275516347911714120724156655749927298721899373488752475269234570215720648220855005589577032807117878767928223063862953284676249549196988285277877777988137780048178689697379248797662025353273351516879535233783460271762207944338793568064029271916635515947241392466995573870063068599548478938909607129232259921803679808146397121448267430534050741334369082472334486614040976200198611657275262156979850563113574874435261888602109470079662457941675903411062861043369553519668884529638116987905596378475651730682646626794189748567370314499986529869684488999282438920047755016310271447462287235012135462392364380836547611117599358156392985664453846059756554934659797225641950857316485788696970530322157142029751796479436339128300012370903151055936466994498087384499016663419989603002768394476482912035340499754065273032083322954350797287710815875368153231344197168310404640353764200593753683376563505090750942326367222601558774962879425043864671596434145177850308039313312117339131893821403993097394670297303949973603955646112564061600352195314680995684142923248040631834081248741229309174384256971532611314933617876203366021424407085401756960847795285695559412367371743882911513668631764545625404788172289827812697536925965188804434909941137819539332430502439163440928000917623332656586058125753653607164427145274979354305209709739713987416117036842927749192522027806235567012769199294519291713317058986550830156855496614051694353386852077078655980010882432399582242624673527809363751346534084906167181951759767193497284090722909331666668404940112542344771089698894890473140431444881292482987396574528150595449535837063199767876233341201896374123899322840555988029536899940773012125965494580424837437834182520335677925669662854203735940670630725173932505504813164982690340539584422485310527676121717454736475203124949405633192156598729012393715385506486752851471276528713903566822938265603059479428062538231143778973773607125556746755121556359313918309900643123126301832665323897694955796622550487387146063918684509818127172126592100491160178384646951323972319554534417803715612043511182376525579521814650611847515090163536581531939092073241568744631660427343731847684403807882250886050645306748238152997536321398048217840698894041191988802602945379619721355583557392422290267367810364157061338992384242112392892717150831755785209072862129490490314982797910833059970369522189108946601797414920019914291461307979298175233963577425897244943084050307040336603555519257622130728795199176352868527021486325361123489448661064355048500753085788758530583011638147793600470141259622651562411301492093487890040090254079544343285853080296057668936832391863690980133792113237084994458492894426987699503400505647238315335731311003014227594037147040621773030199320059756760578367061655903543247186055164242990912241194276745572375220419003458366340326029826251916412394727366453545559258654273387201235811193022431732357098516082098193962988339692692541608808733965349533783941131493321424955091288891366217285067780422439169088782345999616165040164090659412617530960161332883905983003646332479157667979516218602282639239568726929176277222650742646699386411204207755299447783023333204010519847101613055306860344719788929095939067731432835284268523986109208650725089341922145932365976125189521485332342669094260486731576003908758115539822791631511111343563809383049072944219658883141848647604397549309743846849774473232583261993076561526217368746877853262249180983754714392651138617078682952222028618337841105918703358455719196180923448663207031216181131367013221548874244878591941429234993621544470925643542564343690364871663563575809948393713645524757897724742391193573989680669732235543863551570991705376579009578341898232325442391319413604969658352314617960709194760086279973938199303122986115941538204006427097178242831973013236067064916012406172040680686948865582856053908548053137439782967383687963203582750125355809875520109413332676931666668278427523179579546759068868973997237513413818234179532116806149254690325890592181170899538332570114741334969825807478288910085453351384961709348068477968696094218335207354612278482209487861897835826355215597026358003270516734336445700333324302003327180330821888571862695067407033621335359293061814965644658065554829623642199016974457062086737615116617994005924193492071931024784985911612808343658313548564935087901454257748080050970254377660049046231311852792717880853674964679640344667480765081440718810185169085844280952373723700423087417775675056750726890250302794122804835227490123539785481603420728690312678536740861131339122941215800186890600950728279496806451873081872127000542809564224281245455132072186734616069529730050447062044495243917088534518509369269312558063470180882871919603050550208386063444578929229350807997041671176783470682718049910190801337977619929920113544137929580047424188584838909689774100539350301486308420595489728319746178327954672179221961016942282149053549924952949772021037237871621694235151853012946556982618433107560565610347015209704900604000056837087908957027767374304744714105939354343420337083953119964042029808804913856777463306989095406588538205440920212378895730412258999768580992613116577067240268391758137068392779181993087644057234749968006289852748650495407191345971350880969063049995742536784456941031068426038727601605902296938384451825543416148138830250990494378775030824166370470886949006511834690739672545598180139791695093032533197308943520898753630068770556094739821281795476711398648023077399368295147046563270038001833246397734771989407233447955574898660318819490455740504312728458059972038309872020097290646831412133252024562299947979828839366483632240083845682311090806650839267038476316318314093677148319179790105567592997318656752062045186765967556531308388350661648521285042852370347549919016850382598383367947351004621698388555911639074489014921812970328648463675578326051186977021452380348808831038947469542209004909164756082698713981451119381296626778121508263528406302740607855952984950913672229883613299752788920286171008789466741218042686522029175416349205709639707769555793776672142164989222354303998553731681349229789851998950311882373947040504210727523440409752220777481298247726444761945804434685426837918847141045917810423348881426509531557649003234833617274407547629881786282027471550586347511782259880708965418894459290311569658105457979874492809818644843524130969953067774595759537008381447553644628393375142162046658305831209033791090128165411746799700968643994705777856315531719181828785957622649811012851701573135886843777501661141863056656189281680875143084222136100288553678111532529252527062207442512547764735007126500780901001046934350410426728125444486797259581730053684306379066677336295844482414424739758318235919588210900158733048896751330308263400325409220558135205209936446981408284777128635348545764321283965953469799826024830600299134004310336066226243672497479609150490864891482664306597703558719771245310917135581267082859570720229110787982294357794107504063946651165332600309468905462742588424269342790945009041555102310965573875682692304179663474767905601162589007976998902317075722539113415779426442630563244218853525948156724614123880684073985743879617830385114017681018411407529531056810194901831992952551191852436305574690464449817862389930320853616672940742676853911080392196088367731707679497960491745555057660359695151409197274180653526329100241815266327090017762154771508235129468014470316379994211629891714079125477053185593844959815196542295066452206611392578679154890120951975307877810479914136924805630336153432099757691381399753787856271711543263830236963215632013221301501832862111631000474496388353663598342419136407191543333678951336135273064601941443482797476426790527232457857167644197733774900886158511219407165943958714247342611505744369264391599471887871622900241317759831202333827099644242995371429369243214460943147018268668843959625452116157202638806289456421153204928883018551071718109861505904974946980016840044355026516084656570749764245318971714646126661962091569848435440421360332407911497733291804890941667111278685002080260365397500578785980295757903511560808281383401811555327146023759700291083801018063612441902149875285148098414648819195278083420068811528760770711884019699379712426598377419420655291645394206553012850675252404430183889057343267620907352888828261221662241363764812436198117921928986390503989420237823618197878519789346597211060165099161887787390443073998349544255372269614578875980145918405967635029870465240019484860103370218024181023181811602891961981545008322138852229616144949330488824174480726643626194222578332526514058636316335767028819416348547502918746619275998652802864240425952086207658685115541405352095979785991858310500221847946489187057066019334384611895763096932344605484406617084183793207321571520878519311856584699559568566328257459224684782275464197680787842374614641924293093073214013620387761310277443012468236443435445056994540365435297111275497409908094120389706478259155903791012843310418171494877121461596098103956442818021996436529451624386783838420748683262797168736140489924974111249737673994717331030750715908499707969777169672105404718871388566135776229871982590663876384423154492689422789010374012560326414420860988087013100271474056056832423786417126728900305453208484759912938251490117762917094185273491023441272711289333572901578185200586858223043969610809032273376373212117780042819495273642494905866732253836045882772653812453451670238121414281033712345476204241565960882226990580071084687865609867782893174291885442593031216683284717187664168871722888069771995146000095886731826810952388283835245071460311325310415446025798741011404713548125446162634438640149554632787250564559348317092570564942405728218696583434250425961592787869731001605612673717719079855018928926528088765174673706749357413665662171556102041884766163839419619540626381956252834154940052824677508200743207260707476138461091092461144572525278372601989368696079217903726367947222594293784992703013330646062960240962274925370666965727446517367303830091644973142293184052570599613923532669753624228168116723457740978277689150237535332397959674658850701429464770894088654190970661493356454684803446608213673463348074594090035206898783269135778317165603168909744597764312721583556514717490358425009072654332415487728181995946344094384694206919993538538685939007130494915234894636900341061970468253472510401576138536528967509951803307933925291302323569819520769242257993326119238654827119418090547513581600441796345973501428796597889131391877179960061368768336575391622232775881647583489764910111737844258731261639410404197355512690342228481572227505277629226740292308305763565017792250038099661057596847757897887901908773333704503387483468031183388697014196549723560108347565021451466845826027816520053401414742956171507452024437689897838087829545074821930291755112802049200424691719831253801534444823221707675672909154273269950755628765062651296284640300732715099397912128973163614675506757027814129728496946894335400639211986362669712424726048107070884056229613213140555633520546399065429234220809277113556103110761106346939404395696883547696590970394789870671997444654840456790690452245922775245690484685324063545390001250788858475992392934050137450312587216153350802720044262082443540432830938925138751547766151403743318585530476981534457981343574879572586171408665003848417852165829940375401180223597678477561860271903573631643233328821439848098163989849674106306778506141581927434937189166287652697824153817708695197924222280140285833859529469087149462257753707523109130110350642452154553608552986290471880432893002248385245687874391200490450589734726949607919216336729352767816548216190238484309141020617629490475937659865864021683292370911382713955073287804355309224265929065308291944886694863719073172210177990434981994678688959288955385775262315528343288998114599658679618263145262801076324853471420901288409334125549955300764301522291993087813021954648075587484920557020186805012366835041987977895139717163129330968735382957626679315570751873280029650771017332021901355119311843642270581397018021484953686970390988663940448239938646635518359656104624391503670819764803250267809314668140052359374679958930842139386275637309951996794549014879208661193448118196240662298410138837108478014960671812496128574743685392401458233484064565796313449585454907549331743949850848214935583445747381105030238821068119939717234952594911905799976692622907933927168579820143126951521328194930420737269349743896201882850739990524539458747583087570931003860280198715419367265148304027047186539887011260777256869038316569549847249259150991342286537828875788058368810824148709509828349286857510170431694378886308640761010036345558420969262005610228814682645390600838812034614798354922788695792424231695356969708679791124218984879971718995684652527855552196210209595812758511443933276774649276536603765534215598600441575332834506149896390316393537042082991952421810893535333102110122731936379930230244897731410050704205814192388124950367170923011785846233274909519619711463719916235456591530101461472900007894334329604990673820984967872366721092899339125782372920586307016137187895883282888435317173170649538882366025339158076322377519612609403834789817743312727528950170642684373143454204949532297248016955528385775480774497932949670401520468596535654352678544494177808860733640082980076691927291629051553304556127323940412821444531426793579530522171035114668055349480169399069472826787544637706825069453041407235600324298725763906629534584388849366347736759862063079483820297127302131731326022015959206935924397172882471586770920912285328352088054332577282087125728726813140027152272047853156841677221809207399253275994340212183206177715685250741180566168530944174874293529090564707391737574754691455737052690720642778671169828092823859264401713980361810704313008659772698289381175449645371763036085027945500834217054216441766783810080675154174737762134020669294377303485010796753737225887641594159820094794768419787748984169114543538508431961549100097914731729278219183534433050419517654402304263840548330169834219733422985986748552401927824610550367760243391071094713082403526684622482021032384847785096335776705419636738564779711165252807305091245327834231327029851546841104837495790787523250757742646392453243103765184458572400120954435652185226283227343659733600879983561980259642214573593621479226242255504416506958364441613035362646256387004220197035241630178067868306424644941476884066509360645529073925283658439549086941125882335867442066867585837005571534111650501074333862512963677284562855302318727824796457562551849320377480568234335492540213629641339437068546933042341270099123738728799542728073725502609695622846110685028939123551267297520438254330851667609120311439814516890548691842382803754797310641136175205061306043968338654186701952215923805858349459748665302434010006266430013214144540368594417717735411572043451907733328069553984533051674683914466731318902239849857784141728923905226380735293062816056666140625093528503076002299925800585897091865407244394472406779594450780009923355977097493612909036430430747391831712859800216848105359466263593908705299211481484655132117034435096616195945266757349911036387671507916460784104752527738771679611360808151980955122148374407509992076194329510318672850078249258248999172150496464915039104152796506132476423760085755797681434087604183553675971902006195271682305264194991894353413242275375960911090937894273852296636694162041399606670969119499017129539923898281236913945534803106890549715505146280095940003948159449341931208581846026690920769608581013235448517737858032833199153615498459299070858805139712444848253228289982198935923629908552653736765075450758747963662845681050828939561101210585189310772457356632043540872162872895710954825116489875673049875730417292138713543478961278034791292620874958322705218419512986572214057160838714305384121951645479763642701734437815664777904003071138125752369165457606137173235360273692680513027526034160775039612648766770793150156207507959801827697205723080208115735731861259374032019319183606564077714354609115827517075621982257635100167240479460860103051589733966624705599331383583354965995977155893998758778450656003631604927992378511333012478040815931841153704381323288900361293069816832960070037192365420122858174031839848437934801701586993672641638783938789777949445665626380491411294193239269479439047134025604326798245471480018071527730616433222181299745899543224159793283244691995354537476906161489339907290981650573419724896602240542743154307137534202901142440031355327847199449784389550759084340889487092053191452091163045166839073235628451870110981743731196393511407958365393330019646873206719231893627617246910920180875913492819174253772805003711631962016683036588722083505650386234832703327402979843160214095412966874890779992248053996628368155664840927193340894666947426101945010880282442214739733231721625062813721708069049461075408333738745591325943100011342035570860136528280502858388142987119207187866262043428845750260940198489958522066143254121168675677170588343092540004462836728096491840056016134796809247830477258475408970290134141435665880251423818312333530228547487722042966313639297872938706086687665437486288626910923707435110241593274598594675336734797837426238419092667521870120875720949687111936493167241848021938993937255192253367951133257883853177429833578530550486071907289826978661443617757103869946237722828317017875825674908293467351512523857980902253620024298304562590806487476218076506228590555478616682847057069807269741872355573942288096970180326420062813114158778140986026801671472122490424366944068025121206849055469802053999144898728300952486796697843488747242192554590351388244707975794940106755256148501233429597301423583433393051045501246456468177320897004941232307271201857517656538698326051858765311883711396851224032144140658706103363789723642690830049388432330358201075945778489624868261755828092582719981367052902169166529823235739950988388932863416042156261604392535020162981121048788051346150683452741364853010612495514362774254382500909972234590951738336708963993178266731530489424093450287919649516318170606609898240583221295550580128326419815433222557608019055017547497303814641694416398678887375206714542220898743421000206601737875966137092082306682401775884224522032455819451303146482223654385411692475039106122595286155193108141611975680281838972473579331202452408666674163584738233594148524009062517803776318226857515031459706560393986092814877203534937787304914412082988270019926583375053780313360938437757198655959573723291870197971411275969584875156368380255328831704977237028525748526915096262464919267076620264499369472772270842720768937137370081935150450824172440683575207144757088260202004432206643498545685037411680667547761542010617626457010343999226265715754054561841777871517654734939255590994186576553456644992861999843754228776644575766555152399839766708072553194128817949718178950824683798617261121642074478512021550816073513589078141808272893138850791532689185604654268647557248804146749412676513804692925339830794215269863324852022558908488386516872642671363193895047679835850721072428103241824359104147098979717802061938917771220397760732841749672440006129515221981485666711784818547221021212869927514615936440216544140191670010080899732374277377884055956806833523592498462277913117816709565075122946321837652257549444119281746205924349610070749328161743222036043173823421454273187541475919650487673242111288552583316219758904545597527093054928826697247849813626205966745917904949062130399453419889415084150217349788373734004575840679290795822654276747089942744568247034642193632448479444160958707552919068651994236371745450215941457964509901146247960217913458510811575251623565688966240782789070894422803236839029062812153984182798233915913183516448580317311078957016538421401946427995862273757739082070481818942388136203175871088189487924283994245494681239599452517665854023161843953703593295996522370026658113744903027335017925400990205781065324414154648709561509178638780974776262559938736698628786840837834328893684499761604247977330514431279065074090322021823571934670989046631740517856267516664293138280366646851340023537798565599722241346606800000710116762708778039760598928541410228489802197862996474982467359476336269269430960708979903524419067736505641666441777653091229554477323411869200008221126485146376954081953298219526359189973749068639371907007801306505532993291934833238864054559089564870701961909508830606474392038430501665560324697505855389909243045144575297371721093612063613004701013401172321177988250222623847400554722702255864448749273725865070061960733046681984641731398584351986693400695503738113083549776517773132399114087892221925366851480821165049908687093446313025311160218438974488064084833679552617938345029297404630432052180348146807449542329619959905304745278590630060609044626521825251520295673667074293380690597235571153882563471501915585395674528013167419885573931895750490765985856187631202660232184669304542546549768205874169546695807329827713429967707387883215219086653214534532442302061036925060751507933383599530340782419666188110433558757331899781860903016148052046217991969044216519856780860264718168960834721971733327003527096646037934753672284004625605597686449163361715663822161217733812089509507707457663040838224500654592020271870125309665313598630355842726467730343745004431572880624878140797326127422031197248970229965232865587136109347407802246125436105814876632948473190829362420531952369830831450778510954882775239738789717562810543487601349435060797808548245930568102749184817063907935301908815030961622878267517431842907050655107941954324513217997330432541799437453052693479400216746444418784354014915845388322450667285901642373263137643019138685132970088479191651769490092900011935909463075524829102874918324157394081541767221000446217887756346288715047684558156961831911408333185363663097013538944928566478576625892907352037295887718056192321800813423558499852184762545923826638931914365829746077176984300749701176522338977610896013718920831964281150143430976656931231129796045898269723827014623413901598064255300196893098667299408517631215814181969937615179352751909951908889574603188811781656219529628777345123325864713544924144647753018021482099625226139756022603980134598455757772474496311015806111672853492683264942387464257172279316752233046864320171430908486016332415271257042845335774064863318366922291989679801472118780612555056635999679463676033976819995818316395254154773736224668817513660286409189509650085202914020623030768152616157586927366666566713483001708793207952946796016827039776039655734784203259363152034983350228652781076014300322992188004240187909364430661440220896370743147385053416291645266027336600118082700136062357318359483836570949107005482384998562617907067269498487929343706721017802286185670216324605648664676693817807109113058987671882273762991054033038039118976071868096737062976354874452642374663666283299529540290862095450090313799787663139431344359949258120104477425924215416559008800495856981177233184198429116717661402962330738426490233339677701635975080669351851267854057112408091004512566893917675682309818603334814020901764801357127729258295232923381652817707553653438423009545449935340261188269090092980396731337241924563827451922358737515357677956484572114628882484949066705221089204569385729039602454319474432381466281878747182547888104379198122282682212006595959402943749055738838217570135955384582291089727894066596162633544691728706042542196837713323237823701169634912856979007834478310277292924847213720259485171068679048947487814487686564759073993784166490086166218068599592585396317453947897846512361380834706226741455577998767775270004752836261480792648423214220706008361783706172617938473049778892929359659130294277591105733413522285661499884241666507603059379349891796799106604540202285803165624917133379531369801276462635871380667845958286722891639280161598876397731065114123608960224044257831173012782787061238836772694573498934624539643556414054134791930856255274601955548495527365493807850220569108456317926004550896403940748395211347252925747656522467007019833973928126779616835809264778182561147590515414780091262669493744598418656092861963440962679033470793859422342922683183582004988785212430913078326606854456092996732244836169809561411505735744951312926763034534323087287125720326725194514302570465656286352721811522993701565675257813830316855565732630049975313789887138027969703831039276091935806485764173647455437341208378122397186594975300302654087841171239208644760308757184233348795172765801472920321038049872897386203662953271002111861056392856811735059843590388367849299288191231650936910441348004257225586667679441205600460958931365421352987597583443262640560486040941920904867876492041387671056068085207982614506030182857231441723837759515675835506049725743088271820466102442355680304672660939809187178904994754586191612334995934813358519627670142801141503438006521174500971159504560874028254602746376074873822492965401225606950891606872060727789511957621254469824799218971198638726137828051257282345495400066452517617126501617878772428051280573452784689913055242394545830543581626563496425490028734521747520902530980657473605129360603999644591854416125137802789646901592851343186790936821618032639365126669437855330550528654850937996124956764654085808180522766382278583886294157225795899623848806338097960812716592328564011696009400814253859749282527035947986514354637901466211547017642328325979518875589677333462527089294899334535798848073181871091446851154383814186959501474004732336673995511773747853020386819632942347812219107154182031780184600983219637801435186086672976558446494105615136545939761364702698103350202519868993965634532942092606585418239167501633663835960782311136941034358201713487769859048693213823845059546325309402493903701608929641748282563090312186264506509591824821335097253668880390016702053525798346611190303277298950392327874334263875948784088719590318424394006490041260287910072425288215400514039317522917017625387862509268786521543372201198716784859911337430665602853561563650095551141706040124259449845855464084620210957136967929641618540177435178627796583289879489137952093109629706391487186303853844378943117547733743378453899636007655452304228365014524993332219484395531220355206082566917174212387341107976858595220062959064965858863416411759657414128761595695599920008644310228535248955001508320869459549379731133833596137705577447064278168115256646236157037288119394571851494409081278716202258787050611392711959954995998650701330123484707611318366045981458426692577938409701306808432449607024623586980185440885370455977598347669763776334370859539324478186780426122374113339878864015780446462195071116795114626515640866972361979607523869515690948020630781341225205103492812962338906886673544430512143558529704077788837381081423687794966526729824591619183706918167339013294828205750589704937284760437199323753439402869801717503084500121467682716430573523395137260782426326711982155771232701579713713648988799829507294938023787439119613376310781658498720484715148543023777981398159837949005991880510076206864778892855740761740236401160771319580780130887515331695995038656474263904265961019219950322364945864382648769244580806479645755737383558224183422643673732794238601276670437588491058828980586301832487500125440081281032169486630044847391355490231551673259088886064744007762462618214013271745865867819511410665841706695326009336074330976582828567268728998497082006364278849077529825700501026039028775349280979946871658512925873900445813172100249133889846420021269289521111110557686827297012850282103507523725022815983144688957619122844378137563373270405833027152322645751842648998845646853109423124399024515923049806263612379397014394241652303411032231501064900664488156135196365007826325839569443896467221842413994453617539343884668500422812837846231884923127035678717212809869938806709984750752594196586600601180738187368532585752741786721318009340045121928325685004915302184636018280704473662277836418921839645570085228362169649899998727957987136558657823208169156444476727904552119728697930908567355892663500471486470075008555971692463470335289684622844857130524235167012786568552534773181450574319498165652533365715565583318747542948930323305313149197487711026884715729516788167025265973229466728311007261586923061832256211327844514294149457271982351135852614546949031725528357636056663198363230879725702299234873828894388896729895643927246640539245356522664654335339160102680623701156761294867677540035132766990743506898525467891935852842300603791746877655548429439183936786628266106851873723040775207054680604858887504978244426223297277033013953321423653647105774101374414159563187227701020273028032936398285275974596491627258620790821476354982333114097937110168026550426619838536835891395730414248919201144584415814308561696654006586585080943080070619492491362790819034865456460084974906280323758703346693703326943662383250222693022485266826839747866120062066929461596454739504249291894271200814894812766281979590570195559666693894908721109253172819335328326049858748915106302579470846246790753563055287336690161921654510439059609530269420301524279755507678340651237323105182153043649804738152662745639822389086769846624452669116313893626511211559870366946895503769287007783578215263445210755376524609074856743376945231162598694557719516745642874655257923287862780368224482997909036265948477225360583793397534243184660762345612082375668965387486088342693387298662751380389242911152792522281020678779089589370922446297332255821001934683600160149964994182832338742525617923031775036968933187706437207303807172893816234722163528620836759460655728605986842089920407309340155965606113026718337421353697411002186829541569618162347373247812299531912884718011875557873388199205758310701154273017997657012507323832577109655191937561015451726305521981678719384606179083795395942157133265069877054602472542946357948301098499175787725927524903091704226170515377061707373317150393269767480830515938851202353158315629547212018719838597682025377544537113518163788344610431285861191342311060245035480313000283037803133246626569906430944095216598134097648006399658880765954586729158192771614406169818668574941516519701939377024601372339841148940404349590669573509128553928742267692774493323465289491852712111069883372482247556179777299065961265359927495311314807894652546143657980492286881980999027043006867645371286441716815969121372918545446997206019519395051535486280353055825689985574837494245649649145066985367991122532005364031179679073303550582677080177143653157255621260853769713169813958301291166994256476238526880979118430562868432151416372541017733703820299534845250639710240601133246854004095219652253993999950202287602983300755306791814568884321386503637727833523889925046144629382728475641587820864983987090197113509081727294893300144630310285063448435763824143822604798378085163524452880728599757183840356552423735056811471997764503669344099894189314426181319579657227433095528799122485591071027563468507852539054351190665271847152054489344351148714731905546863787703335585679457985130491700584381123897356912372120765880938036556226785035852799069458278451836612673704579957947278778227875143957611962038441536133730935312656341777352289065717283627041757677669374410486423609371940979811241523609511559042017846153754589003637398382847294280221604495580509580691727870449149511860369177308918523827916956933012219777168081424476111461009332054283963675520447482523137146171200493548806472928852381868611731966346713145404877864823661355643896510298275831791981879241579154066317576259901065129366146506236650726332205998017972105186031837207479229953556860499442007578671813391953686597669157436190769533706482099258560734676281752185126414527758235115242815637238530163236456827439924207215783286654799977305814120492748996169005152735720360196785537607304178261225454194288858283397922671591404318155374322275313263276603441529762975271782381851120629227748359194008510550865480418325992629702034632349990505350144960846017340130730546724381019620327663497565382584683645317212006288131086125879050902545055532959260758368074751793848045551801201084598921463565335730570008683738793928783847070368230510992637463242363222968616228457285308932307397932023114065825357317455384354782737129574347828982326477213611245073946476875110127516222743339340271757269834355756865184672911538120494677814161249384188302609424354337203564368035692637429375681901991995299207160659832064507344620962535999265013022576470404207100031264898318756791424089831693312245410023498682767687708065879597015488338226023697034759701191797494845423131290478430773627605018216239093557555111359020044240807884668321044230988749480168658515560067577679195372821482411292080808195027962865584110082981378835242885549601360744873871214114345262198265585589834249944000052372811303826119031437112460166407096318553066981350947833832037663539928132382799764785232292257241071447707416616302018472228855191574915341403626969450135931662917425945291642356783073610664039455714732315004838730200277423035172001779706696600154823923607450817750689487311080706187119786826184459103657499940644539838319011799195634396607243211959864036799043848766177088629877228780087247320852508242147115082053206220584673268758795492178601955224533317328428172374226546223694496311958820000148830589795413676603824879466457352380253599272470961114442793501888087980042998736171766264476842946599851781787778773372775750707711867007927279303163190548231009812399766450816242621457308675121339279713745583886906582128127838329172157684355137154103262622687251327001767158551199206320178633314731146891706471253646818627116233962929963243611918033131828375338167544072764272508198989531740408113294409899486090929599618153915697306601533439331248665440446997674170064835368205984380970409937116979999016999575632752893628419179104115695000056589119583952119104525284831044632560261167410134845715748999261531871139011474690834081342181582180963054828108821453712430641742751929451513771495947321242118653089192083149296091430878538829283312351642200657645588291739547999019746253336578045279234182533816983911174928625736369159867604823697947847051290558677083000079628203751220118290405172624675171146155862731991150204494954459125796695750140871537917920841370220885914597006919808978665576054180524513356197701189899583163642801387447544452973555827209925870808880603897640291513113006174310458703459822809648366382163353497519160103697964399813940832030274378416144104932451864553047930645470081896528803239335208309049053412762984357165431832928786008311405936702696588004551056864560003105437785925557790138839341340227381979367392711875010516388595571679211782502691749183047179806039456818995498792557716756770286380621592939096464816093813226205314105413549781319276987829743796971120078627182267674680045650267803536243467325143274707193817986843306774902771605458624277181289629761773830813208273764997645026532724302351902405079163862110203384489340051666956888139235658553897466209162131013755197857322184063181096788949510659423218030807220599384981478000654102606025239486960525908326550015375019006030567962165304009730216402075545064591805365222187988906125372575529062589238920837397637603210492550360430281022164129241576769948706845083474150228615567108836449767136675362867755558343933393490420142690913266191381029640754485567978021424403318204670014696900121841509569613419302577933133521504514165061692703926740725812964069199689345260737677568475665866169356579289926432484276456659029538969412160004056152700676249973241901204527103623250752760093318800008665746159222319310715945946122100384948107090339761052317557281152792241396570848943667615892977842507687188608103263530720405901810802241053495102466045223248573123416819772517913139476500026709206714857253027756090955411097069585534785418414069104867888792133729197300830028661023105854800899588163538668175125374815197167030307047466016589394696235301563038919685260833834760853532052840014750771219355658282188874013680705549805810804938056848086928057589212153081491078788668374334124202347357996933781709064588066725675260246483994441130454816299887861446761476220158159118492511827144897418169474369139003883383338026678972777502843581927083491950491896972970586308266201106586274983901471055993299481719736756667456610725890362315553503666334826746300575511369020232146013492600151148862340979888323567012954183234387942702844097709086712919659424352654492886154108347781928581570223723582972077700578637915612693408975278970855989934768265265868603885285841954107771453789692286006955397176048806156962156192677644162160726239149937163693169230410745749752431388684975929587187685222326628253173399266832803623388065966508539106931450122454991057125206699372124220931378229618826503724611320779034095199350375146069867992017789086079774178852418056706041398594928660000523511877400968824684473999297661608885943108303216523004131158422412619594053335917186231460320902654002552720206510866631967809239595740270446883040016349071313647967805507134699301195148818283355415997979406746051339211079295066666485548440085316974154960862980125570895134672210934302409347994826537142847750135572624325197834296891156015232178139865311855322175171027240340227464463103845353555576899472164291734459068634420325165841599002101172932450510616460129531712082789356260156059184567880687738475018000974781161984847857130688977509474413685407050666493056563675181177686152203086982959582923968851882647043439327429507820131643733145585432454996792076269573357249429555844343417357901616838252167548101236877793267651150618533667416812591497898964982752863504211511667502685131981583174252805535674353940690137745398657719954425915275781174524141497629301334719267134345260157804135242663851775951030627627807668213280475339169476049450959416586726433390564769961875059984941680516436133871350395588313697181744025966000645156041170787428606280099386531265471356510619277113460183460440900733450977607475873116746751024891595514120935954696741159239774751071443423330850826688472674349909555226657501500337158372683314246521581816022733562630142066375989790750555837669054828082851302863646651787643771047548213906443698096697785536508738913770036505293733288065265460294585698405281885431136983608842547576237516407305256912813353480495882082454793005925538683747560779560199200793614838391855961679786123852103324844857775930004371375706746495696304091457052824374880333634504176600411035280221484176920250971647944186597134975923683015377246174454668144451684074361449104924034362894337601180783268101660375984310762877407066805138945042293927191189073943001411581479459752593148502680979882717353659098326502198840752063907190219799378754495183931535688836319834990200885702002096804266916928950851141087945472272149684419675424352612177888260893082757815481914297529386550849287851083446174968103888733159925127744710662411365406814805240543323691688412332846010186107892019011644389730776683606350807889631564938562562372928919307937768513523056893536424258473342691614823465138530018427595139945144921695844879548129386128713961041502742547768575082293000980428009974846058984315405166212071442097967854729539372910220769473589483923272611097513193811576482497216575553372850551987678718606069236579378225940849131036728549171512070814597900026724972396781415085783857800931160144477509278369517781939306025779424750105034765375520676111018954403803921978634862848690756300075472321910328516355918572992828881314332973241370561787452766635545801406376495387626838785354167240884279957624027745419376798832912246485967745798500789382400026259756010607844255755486885515083156541188502150260036936685657282158982081899714402424279317159264776580379715044349083457592688232684523223678198788640488649030892472315477501909696154095951995484106384277044660462681159034412223794664187999665348048781693995781495429425139908014408583745416970894099765156881024409579216296337829282930313393776999974332783393921160678770024082204662733494066746061495498606674817757966560634740801538459028664899727759098893960259150306655878960518881251624902375351947059795088089307346464349825104605555607164500528248257293594762835149555946091431176871178848076860534529144489281462539937433104472866115926173868053843303528760014564869482280317844825551300632597646927960059766620375385429085434623870337316028083955726532668798174965016824433379249266437383270880861977197559719464957020906386903818797190199412620839735232585455467684681149403035419895064489508781997474392686623939601835359404890626813169506416527717505782228371591674080519534686604754002207301970241807554990417969681675404481065692433883682302190747009110817676279845912774518518901144864049038650703011542561436988000324626967259707473459482520219500975860820089352310840508848942432681586521291194908665235747628148239387206401344473020403668197686889314530780603166869670399600993392542586889532299551409576826840285254753725126044377830429883444716472090724065083649040107587932750286817016242822737477834244689059541646885453922451771131393257437801646815328427520202452011783708532071601683302019437637613482288158849011121020814308327822432778553581569401692935487418586526469728179912879131825408928100833891087526205888488012584024569958013052002542247653139398537188584224628045148062630542125702512973490167432595057225581317201587311766756665823294802271286378845050345605315372148702909711682019998834620289355244126690587173060830499254715577781275395414800510208990682522250279968215209663172055950551551374495782686959004218556555899104669813624751767322798011502672455716386709280231170135195846179897784109348116069379657079597977240041490857807712361743005790363212803323523549670334048069894640132052996080923420986431625579445174314088726716587122685081613332511649201882002740684372327848373144485252151516938530863226477585572936054657671106466715881457603738635956282618556267313685829631399825238819435434215576683023105426534202155579704468007675517524165616954173249517326653994005675384978151975103457358489067383516311307188965263547239977091145530399384710709072331974183629237449335909518684181282422132759801645544357533594971726688319379063125487517782941621700867451939316527662471198831881909437713897146535832075786589927229834019784744732756207241344633391415268960734311050965288637925240049718592393271086806277178363525209195512737887789758971354304568060934677069427517788226807763347564576816280630291565422956666063951851535676496915727903769948780264099613131418442841823791552368147894038529128928436008793353691932858070870549402519738234953147478426032686319683850210843607684808123096840536236157850969400057406082138472508974817863832332879933477301302234595509847507983160242917003669429577810809885903118611413029860417306418038242708650104735963537502419208239899812309499042685799433822282916793822523422405787539948045990656053941790834928987800370394566754439118446620990917312797198956761420732497453509201969992830053460036761865713883317101428240691337384123462066911239204462984821508302458948750170338979465189912156305500851412993310485541732343153754834301154665718082559113263346533850252137557903475972560655855372189383009495343743728447097421147507126040337888330470599791306048542583336375169168666880085394704551943702913638970908606758981168840984035605603086144698709534433806911565869227929711374101399643119955059590379145299478263230395240231660227706778504038794593419682445925944529588759917737052013653294211345482381611266343467937886513170225318765446738875110447159431689809895572960707566489978252371770506095537237590759947223338283083011807268775316596403112436978164589650333977353724115147927006247706518694705894216198307817835806964070751769592259596076053256397573532242095731195903939042463152194682527022291087882553197617535752015821097125907722919436173174742216687033410227358547981300506412318939476035241381295448313702440498246047595122824479003418734415117676190986682402673764721609502295307015286142156189519572590724210480567716002454917998281650929627736256832670788822520752938811248212623739785755991254832490089508004699237116626123038886294646746357592773486111176707241692374953921370564845628194348473762216603337251028766619388854853921199014490345392317033474599322028032415605150376194558842175301147391577175907914913474391660018054773755511385463146515072504509928393914056846139133520188282823554044295914205107830831984103278370805231648547472127541554557392796619301023191475341479333393223121672410920991019782336601333802884575708818757832889469779926264839957688545200960045191675134205706864514901637466910193512545099995169085257824109241641744503488349643501911670320181857779729812722380939158632968647894821907578004075676978235688580993094635958933634648453067005732135963646752824616347462422560656612249386989954014574321130996670413430097980899682129667189880016134614012561107925666403081136444777774114783396945019439778566514870700617980788260006430605680547334644107799013317518806695816959060450770589500052245130973457702505587449865166739923569521014338789993036879342285779760832848532500560958534654127860926264962188285889269064229686146003994318130859856100958865252509680265823481611567846424123178183212358293576493331344004408609874825622237474419383680195298172737813032263806150542187361841785144866551930629617406693913629361821050520679509444457620322210358086113770447498359225726029546235651345198160228206800108536656089558612824007967595883749716792532485792490842453864949889036447095943702876498671952174323294403076824388012096124947555868028261019598331648653485125782266100993059420381112478638255431272140462047970591612812932020135772689335688548774239558079439096761301712282761183035816566663656442048863930633508889181446331656864524494265305043053797076675556308198521313942589586482095386613628946747290630810311471542961464654701151592202199108103679190993589569460012915571703728429444483955040008842358753618317305802964287334827959944904224194737751829611011873791642267764472103095622074259884333716414524749257946811740410488101506317229503163397568987532191405387790639360940526860066837342570833298553987725819293578967688692186195215069265619875946679171983857758228117088066041901527650333286009316950868762310650570230154442853133289209056174651223256052891676148857728713006821707214930922674812484697934709718467645045785226923756303543852437791581962101148821336430430314978374672704013602124389285492673868379208309037338492733826917808157991473435425132033935374994140281909777002470520354746800859537241963278763086662140988542691609207295977905246754720369906143314254246268867738335241193800252748449668688403714635740328028075786722979925135247050844556329984049029439978438561118601656177843881859883953729790398977035379112047639889873831137050554287429489688498958564355009414658660268652565397335367971567509188860167036172559779929092585543631478003935191720576824531686057733423249185240043189156884448813620653779569916316357089615630244735072403539804287752611198599219818287139045193467791786390056607297053222987719834601279226822353299375162434013816379455528574160296418117982848482824881948713452659129126560923069682178940240888611625336444175636652164980449304166948018440884309591071591716566255135742778370929513495491550262186552602486599589528796578539724058686856692757600064383598021329599324802674987501994602602602859464470928635930811797939376172697845997017064699643664088829010126191511450056483326419239887770337507490288307877982825994152279888916955792900753435610836554367560111154774290931475949566871051499037297724465862761995113015378790572385777754420643243891299242120169206149382135905547732703370140595740067115284574637391548525497913445484616183740498748640968495049717500176139657134138690251997877781382209676310970764761333298494119162992179175810886614843341776895595678095135962809605174174092956903008293357725351091224153470607570820941206193702517324418973954885926953824703676008541773918504992463044627796790324299630338441524136018463826014475876422175737558280615574424978862557489997413717848257271114775359624724116016927968979371648815568153228932042261403946770798355165252983492807286369062765906679817284674331069793304225136456000615043804698193575763729990035142687096249343251382135706117223493522670289613158413277273416935937735494913156768349044599186945780995014752893039771425142247696548310303658342922782671072698506540124065704344321233005142599422628868551716689240659461311738931525925714677526129184169417213573831680599982886464676874502743145178018048855111380188723926471173967590107282851688492518565693042822294339814294058889215880652727397690283821662106079850687495354125961104806649772704193059570628243771773355888406069197100214709051366848354884623262377753055918122157292229459638038716990270553382460295864087652987865836444016786160408033078598956198158712978296390712997079200586815128695985443317157524461566752737099012093194673541071600457910842234926481493061876910931170306027847570311948379985839131953115784576848666679660635389270507882715760025872693128810393975455865870534118973792731821190138423593843584590177670274147539180595416502386107630291335118495508450079769998783471438742797693271608249381787059955045048674121667543657185728091264588164022520116062639182603700538284291416857651521657285005257186839983850753767933322560703458960064756526046072154793901782702098994118546119994061775872227465435285009442544122169516547631443918293415023971548028948514908443548205624629953407344931978897150220798846188670076720187660680904939990407704057889139207443482414627650005265412498260575693024708029417363164858129170870618120906602215741348881033791858452497567289899692031442551584550697198580113177807777667673176957672854091836132585449042762989787716558415373748994980685687048618500344323027279750580281729929050702909837213832894055533129992440600095162820592434846356073532182359244576033294749129743986335126138195176059634951887565626586378783075077958548566876605987416036197737720407942059040261439108204312746099233947884320158518337253121394348282716796077757202656625656148103007824435010715933249036722790515659505244183447667516345447634524585015769789087665915513806283966581237722558153423552545024014136949676400935030192309689079891007751164992623128478395917314489385682435729867101688456335511124633005057457720980620336122003012667841160834446872510510737548834661701559207451931160350196507529782137094233763491245454652031297937599973149195778518224226000666336725075828121606254133060381582569370471306195493038274560173470721645874744399141904762748136169255046233785345969508290333323903604881532286296895787297421927378224329322531427914590278357598460269710816711879989341592779653323872787995173509899498329978884202793929152746799635313125480786658477302160624882842134899873909752901231469800873208199318015414889932590126356185173051525489888289934429884998619157841236141947895449211704802857917827497164581822173898847476735372361501101734273554511287876841350524996617773990395842023695715830651504420913699745556520492854719576400580056931853219652972200358839611772865237927584618279806363418981024594457288345553999446132977770150592005175898990016710022839646871777082458596778406476213934160506758191801677577268534518466471792981529451328639208649625416807488730152666409738751417212210443951519110678052063770564621092860024878369284971297262759180733857767544289062392232335064177258008627108427487383845401835227440405905446141613255973510006775696309080891433519000445231884687682616648112556484373858939189133848715451624111991093350895175394865773942591696128427666541948034329570534041837001098965157852991621569202860379973028254941263206906136405750751991944892051924889305273355006628843911785422693514336663566042236191555899995006840289014298312156244776090638069786594159351119938570526028452894950071589792176106302834521929661354036608314765222309683183860556569111150799837496051136816447459883199948801930036756600143771025321330415350966407639730091643621598121313082245326078571458994428775953515613137783184157734955064791336609304095003607870307189901975207366199911039622166996360847448582981196714591147873110991818809346298629580501448078774163099061150687745369971270309480731622760626677574718068989763801138809142032077012752559285729606302679707737147702495102845812373416117201602231284681279627701702029700693066127110486471771045526854311208839219423352901770137850625802088281007898670091553767180760250071086715728407042374501842819974965898054446449540760724336834410424392735571476183116481483443693580845092829151601466033054203511743823698011163866464284563360635442498034548365183807295718960227287907242004196168712205559917858960428438555220017901562853155357679812471188891079186960354860677986504342645876860407276477593890334187434589109414393610445556845630272108957620712085055253179270314609730519944865491546927770035067789645985965832560557384368447082608554577694330197867951625671083417670312969125768021010718893271806601105859438007298117829598692453608343795568199402075792218273114922644459480567942402197716566354247387687826898111017856667506457746229328695821967317766237339571004485762329679610139121710094008096889593318971424389096396649477071200226788674725832124386903997573727269150066535390698963998657178181512241551967052788357547956611588400057792521706393987991611557772657115790557396678797852464998493225568167900936312895434609088045256382048822945965192301330451512708642920149799100823955465673405151673326933384151610665572588336882058952444751161498439808191988445446056887629994554290047044933639363866990726603970751411837949391937307328505463827578811027549004204603611913893935052724604005326594057055893572395709018834973793367691177418208416740733457371323447222912256528499097206159562868723273484506062628719721855004921160170443203944133531827899652745157599307138370848601233997139806894844032885457776044927841438581071289952213624455482864843170825415359315422815964721210421839266859731135370871564399710182290641559599043094242580069229442277352267999947822855390030836807319284852155344505183039018407319311071043242391593204430223004268061920830086529162802181577692035089172668012239794897190670234080719359992565820006903010139736530093343051388197203029080855758549510086723670403728943626610674632638072280090631011182724052465487034959123834537275098726058005599896028338023277574491891018130956705895669470460819674331437570666568872570166976435228696657640520701242188291763129972119777398074357992603157201767308100164366689148137810558082862044127291522341742949597765576473858209312909178414412458631466431133184413389638166490671211333643139541431496749119008678468719553975706095044995426134515182212037796078824210500397022063404892935495302720779018182501259011329675351544094331188904455803523368110627354060232476696591235652301405200266411861195734132460113484224093013823485585935684475802676139330048212219111693787225956486539278271852574593893591595783924682832344362107463607824334940095023184214972485295797837489315194761650872941459089774023202517948728329407692271645411785627941919464851332338813690898463921707354383458890947887373458079318368340177364207719884414384108095076985146754172945907545652979173920625885207110939299915216199966757864310039859892516607905970799571683775904013751057826387566639967632549350952661488421496704005114082971627339516544401191709968135179552766606512973905697245706305630002375204393705191540262827781462651250834486847849504497328997921001714392423176608184287061607730030257975066091159102555354399290597185728244395128533487312304273979313157049356677778548018317527644268107341692258808595960437682705826966174526139887759606242838532584362615125845090103672690083102184859270183930474725864264459826574513442176520408194356764293836519272718196790697554101595325679747137143821475765781062025281937659375950798297980563910881267565363975580822336811169740886859055115379195388255222504226437383587004296903298486029455037367936630189855982728810489949376872458427187094785786603249823170770188361530530257926342164650914311374991676270131615587760649899608352949805804163081955959616934656699455704411858003083747574071701549202377262584817595803645562730081660444287979024638235052836515011598147683224662093641660046251335500246342173795204207329374840270210315917466330190189564782503443254794860105957973707130426543489804416901461527961260077221702499573471104082807485512057376282970328168941275074108760729612309175307099268130963874251400798472574448161176745190658502439004314104531346593431780194801532528499039898870054231202171735271916305787258501174948894336745229938070573966149923648843723787615389112260556798971994575617413960599889281134994410230853397109586103846760114251847416696017592448637257996275106653538876221615613790235679627391754583464266783445259490242051171204681361210064240403775125503473078031590544804760942635159264614808023789217182067312996903070407698173127583846224624214554577934409322665310328218487640020365772475601417494583416602341774866917436350874478670862972122496248819768217805712796922644731502803487974615305793490171461376264283885436614863028288444907822196803472324441640303396635089262260025104897140372832033184348158371923366595337947627468165760167971932165883631915380834413586760069876367837865754353564204329880916892191248206477424943267735683512806257601439768766883388708597661772980819560548446385743545108978658392814051272680076076502808933216283262702773625705755209607073351623492055948595050135169987726546397739225772950480638481744215960407988554201713215958878110907336656802072105211407350084348206781533110502010054885213682497390429652068346147144295692420326434561855502684898669809572624585818954938190731721321890122272420324716399521785965834004107197599065264837188733922269514802021266528245053631447292912309152050504282823387567011990729655176199934909530263600393718956276485570956915929839467506373492213960812021761939785633154404722121427399440773264014693912980128205353780079667612422873187868003811448256978117057404600288265281314705460693779768660197754316407371657396509629834050768231609755712741862830826292353691656367777748174673983142675340722045465262195279305105625941954798373584991855087387092356221213487066978802034931716787051026248838765743110907391433710592067409190310967310027995607417248277734435313954436057409316435610110603492380051294383228164699698405854957882787229937170330626557045514007239520998789744493937203498521774162094622588893597675090981665107888161105349184118256219359637566484590629786770730053461476470941153026197470892429120515291919285410668689630591694802742178383744206530404162235179499810174098349357573423051244039326653128411547672247062928752690087943294520533647146585238269641746051740313119067530312689729079576278726817067968635284303242084348366474708368165250336226457296621511246610469014415696647713725528303325037091271931037639608696449971819271092850124162970659894957524974264546660489453002230785098543738335624762536267785198639658824932220829068243803883507416530112027775904924890234426775789790207938061702992960484249219623667229821952263327705429943082429330352266212581625228575463245577011708865113642101283375384153971977856532903999824231889119449612126583427367885191151491450314783093321319713248423291406435529744880220254515847584483054704382123613263532015226399746118788446726889625737557095773151940839605525470120019789447490495279073001999799629446896324246603514522429672730811025150772448291813513326750328584102808479680719440608555118192900509421626262346525052824161555103979338336259329317087561512635199197335692499245202466550208047984580001681463791789848402802853071632420391488169895948262736346046752750216510955232089883789116129332463181243598533226157306439141174805998729421310286924843350087235997285084954691955047181876562102152835712856326165270187984042878119564603156043832544350605097331727183998849475942423158686231179779164720832161552535562722889759380869860394067392577215462361714698906564362221445930979061962879819438786220006562766905725711477604631062272519813755171771884419242800736097851487132433702110768956869208191887563698838091595900449914748430231915601569634408143923354531926973761300078703562949306990383224963643578081912877345925917655399106105254589441681030130728886877882551840006670445667697058361594340154897014589884655288788769173984778805808507044152001866659474099523376507682304273257606045281679293167780351457863412655042867736007917863177335836070505438605470395388753987754801847834600108916494275214379381018142589379540422446626928908406118541729392174369862867137581674021474026760565784556773034484402405640053604838572196913377000586548600206462755183053510879057820885230880119823999735579603649704947329099999253462553870152892017246341660340431556923773320409196991724379366831667146320734874273567204490865015889941011349443454608776677486151112597826422267597246567316176889288784976690455818629875066059494510581978379822080098057981325312346049655184932409944419203718682586374970299828432373695123705287678658386681306483256753773792805312720522012438659651399295600349411719548672052060245160423853478076152277086931715001431222095778365021966180583689498036834167167802708091021484766192891087594378859788551462580657444475010679387472381111860470586609040008991514111120590626125480265907441687792040306475797181159770109402310391501023317761750376257604776266478037372391171156743356307958111950176317570589987037065148538872827195309915092749681483762548489734528302861568331577139134933403853363902396076627206716139638071857623637842556929902516030192729087986128778019032812496191475592917717990776136307320003500474421088893624949294017526207913889056157795918891403267412358988084361996201407450536213224102655561633383873240110279480300404091598884792424122084350069608075022289876691308800392356093510290873939746649658513775787644985966131426851493297494896622538739095446697354648229039222601784718269998924029003975176480030522106337777496627041408584571981760206104700860194143547612012548850658107186316790848699910785585970040654435314874857456698979351778946303392615700648732238055409612612134645333500013220508586704470802031181336434790790424940401127140111468796714240694990709444575342619149823524734266782689794004889858972373812722249291044177731967852140586888806277118344018637920684007877245251624912449244121685828746128709701217488935200792274953106018452611384166591506654955141767174775544899899940203634422459852953268857152805035494636138204515795308670442796341173863534354235878415398954197842282746993977523012422328296022878058490181933124926535172414047898418510111382813327972240134512353289697386082087577211123792318384648209232877602601805874769309996956298553528827569589911829458978623575960178968119941312123006946706523431164100151890447325579917881270401173065335846562200537486425086651934022973714533444618464618901914213114855180179364667692427419463717107169919641729731789834625720559939517419351144233561048136807791970247211781182533161149256007023340960250009309419559528702676350430269037019785309503240656618769011905788797877043385651582893276543056426511175269444074383803274874287634744493922725539977468359579223177723826007637912545015069816483664960454168352034864499358568417820443781594601068028390500741930688437633313883292433676741919707537715149232685000143797560728611612523621647532046745891694595539183854010656670314011576943184263258793518518340799976484235316899561949321534686799769388154252391768147622394478703082787418902245173520103598821418234841967257319569634080990618789134680195265359706993252696650627251337846382295255569287909381634835384003768440144382106602318146031155800916890788861578137875059696042383458376723417034849834343164192670814046052691808561574475657534347701225566849822437723047766409756655802021472715983247998344322716626618870913550836609867804949393937997060573427833974984808820528952223940633630226678666931373743871621953430389494125579057761670934409281123001630074436256139217909083755675744964731565552396766912955005808116734131421780722829017243530033820135941317419722414651524572592950601805521268439269789995113406200614519768959541875781481744456435055433211905493832606827490440706280154463611069897677933698589179405089432848697918371300177090041484470387336806423746121185076818477330479900794700006853318064859752934065623197883465072209104003168927544567438674110890565184885873051390880243296267019450569323061388904046454224762307448781523201710968818572656210985109663729636575226103248149980877187678784211572914863028816970434138421613945033595069645696064638743999166678497039437219819107929309850033289197040752375854069797211357222867347293703272543387072869102417806008396970294192861597063227438135061196449998225134509419644917486927199092551223161634469639788067404573873072999412337398593631869807252972887927907198610117800345381924716016026927568948791376169170566667544282472532226894091127616600006795082775811894314153660343542269148695650551700399678275859584815876960511649204649117263446781232894569577264799839746806252443390984789147752675480419654464693555723931153694914012262531668952785379468935494640350760752181790663079025236463343235480895151342391183698089666942322235704138567068480652365053231089542457346513487246421793563410213996981481669534797013357147122896899503984879642559709135876650509274413787032320928441305329470712079151300749801636433827649396039648188702272327680276037405681693250124547496768559572104883274060683235938061392544597437510284114646575131715354912560305029255238067165635843934117488752607307500374924506290007596044409714686148908368999686749829598152431284757835512960114189061909375484401950665053873021522041286855199350721693704845667082504814985897834883370904408481313826302148577280136529764797981357580500694287880259734820929437210941123905968153500778100043135001042813806469315326993397904874885224621083461847392704670606386899970187736855611198356721901898644627267451956593309695463206598946628407436140724891818054013854668304420262584822615259379120484620232132478196751509425635208827860260718002577074063455777039316878845527424193829964877885228499601603874386651878001425868209704324787739852854932034766769701837778044345250854551786766631240771722550201778137429754364245203347376228463144158474930998131512134339654393115322082760624494755562358552204914102173072614153746226012573710850857848828240416510145398751364112161233430966765137303844468843703157678834065647285020393316895247776038766335162127699071226350926064703275857855020987699592896484323794206390555943778085764585326097466026766058300185592254576547261739171665337653491707264461530466960462557236053809088784505636097900491048989267725936864354403713619815289662823529972987839931304040827796219750831818081493751898486764070585192108817448755089026162042335591239921457140792645132685882479315852636140301090415725700127552684633139355692838285145746562974665000650568166682950631298839023455570610184135827920879025071822406468738661747746670963779901596939450071587146118380774383193010870562996587067900539491810501461658953590085848196098344792502385482758091935849348312502646696458668276339463450087574642948002079718183869410125463335209969157053665174221031287218563274950051492746761313921599847676315079544024794881764820972041133285785731223381535836731519584474518994275674417359985537482562132410509793644299946293145097868992657709551663315975607780953892413370737561136931743011111203332866402044793896243312598498446229215471261647196647321987258681831965934336813480329635713412228928600051872225376058966311385052393257354655466829662583728075731934313023424960508406001823960712598916910597502249195719679803652039959627273963114911030193138196752778432384580707118811054069213394517983151742287286698510381484611320758764277500986318186688381473989445760752745848676659493570476789129861704541798834158291133853781448875070635995899554036021025678623946459770569913280430192474933186935284311818838379730567633650734375475408839280526725158531354623517686474464102208107287259879185324505041387149699716862051553832871438861400976607740907454732371306741796754711374936325986247495558535617013848417178561396411706690216732931731900735549865311203210529945279917894173432784849155919621761498224365308308379380124877770234751551886339349205142490631199889010080165443401367124939184971932439454123156528788097316110031136976994900513360023673809469599967515520223876667062132007001553374048690380377480836020380078345659405690271512892281104057018033384437246316836479470482104170608387033328001761648873427240068806710398031668186221572200041381711903651818846905256469840817868076885736195467009104836216442187809043937960217353266042249584994177508902043185218090323734302931121645283133446218002426900337206505178805352488290866989749466031444311440448514709944473955828076764070652423574056122362290553425339464205087592061113738957785660813715600963159148403265935441659323392556091439737174258137772892606810494294073231728985580919133354119565218681093386290834184580971720535849049506211613217471806278754233876840037995696682318982718641394856297514401926752133688315141429477638640618092837025297894855563528517659146924435862728838302668463558487188261312664576947731287832180502777832623532330263628861560939835361388989905610191026035076692847253737168951273874785677265651588699763236271062357835953042212020873461148343467220003270717919440772486772995476649774007470812939868582188696802277112293562263543035295332436247379668542626621990177011437349532402096191129997195927384499553154325698604908250273561536169131169754746954984317083501017585958371282335455599211628960939186319698812640922490480441644278188843936611963540051965858893564295530196518722438633360714684592483088733867123156857440755225481320425314442758722082484140657825597884398675687953042456237438506605717251334377721160293241236516315934748583775233677125983580804432383268467475863786272281332429814861191753287418619313808834821860936200134684494452510965653295685088276974357990435476888043865747891958801532924869765384967034440487777506392139997619130994912825812499061863098638847134218595714842262291980962713295089790921332345331403251083113628335570442190902698634931048810518553094573892277009922940861790244221655396935558432174280092908064422048122229644288955255705307003140201132306532646934369851906428822507285453222972437507288241554327519118930984433613423918225757866056361493169508295307649377943454855708120032126850960524204217170423033818691315167096832954760835986811209610768311014858659899390259110053644874767769461055383394484817501154516307992176720598899113504896462299121436196963257142184886923655906114799417472979796013443957996308061976105975216467220997117630113834325221381286668245788065581004677039394310687323987364882508432109970074911366875117365754154841618662715381155352467856238557942753165243193862005150580466464095031033129951421778511801709450567145870857549228211339092693498872584907562092363146826035529540385185479467562160534091681419673687319057329080785972115860556121578038217177103373236305158238344150040039387673957414369732777032174276860742461145288986194830570686388827877826540415834843619451839075389706634824326038904350705808812079565603301504048844460698184278521213663278948924339146605977067154071344579283032217924260423297003990205338026134744088490084003856548476568757668714829318006748615206759234148138106981266503438408352866404075401753585329575767153758960487219969115596336750815874891910192389823956222099021974117196042393953955396462408108154401006120689397919790610461331403210501087360260096231491133372601394804418021425543204816633428659678506592115692284757218639577480069918371257912884596157848533031893597480765710663187307607440746508283444192911101586499324729704574654347005205768463196709629871221393992618279089724097844196933422683043847143536564049204359585632078685281461318262528927008547657993527993836061036094728571806458506247605877662453881570871660759804098781493600584232153350347727685604473012660093658868886121588600093107187239644228831905946505210360923262118163266373636451949105658113140496269071201377197111939459677894077438002710227214431822045820617095925049803669320718089897994873493045870098180915249615397559786290946643805806383997766002400280401080485482873114350724082265480896432884728347877870315029093601127967568776532579167471561154096495023831701596001304449066267154417379998872038016953566495587384987264696726397936168396713362930154042223363201922822820073718221486493742252890360183967827562296534785717357887599144560939302497804275242600317317455267434835762981669621475570960766080444599503089955122124158266437569296754678565397620324666152355042341432597444473337458928964609727877267403862184992042555226768575030475703005656719813527324626885198230179259040098497665655411686342362067010601533515965515671975780276894446422437661231939992263605639991036919037407948941159197838088553266247236843916081844829961136388645460894899313560903054253286864422356961495888960116519413034852668642738010250941025163092807316708143571393513900294848480620052940834612209234075050739910906349509290878869019920560124201237443283256264003398900708417056721072268198488113120828829451177300791021989021534103354358444777720159690796834405984001839146343162328062383613050451407976840308070340435043775840445280798506692041606181559770443603425531075281064899480417666969705228055577940798375315814583631258222641258846770728826185325078273654027616108954974900422073539303975732072890461384759506277774047599410088153538495263044172670035057312950131753436861005351293692530492954578891509176267250751859353601866752729629165655905380715034548377766607098671417858533746525612662045117153129351474776290796816859959924605330809914579783733502760490538945251964641073200549399894523132769447468762853449207012170518517956093975703641371380199348054674987125503187931635849525693104600991423643684681941427593938151054456230313498579954110667704891166287033075091576561452804086676121082478907853736442106153033372934436531037369403191727886751170136943906300442408504431772378713896370324497501135242611428613877615495414878580236143899896093727761789176774970261683540794313816395951800934579285303888510996408715615816074761439045218312445790612211017716193959774608938766262053353587918039756149742744059912205283175025970659124856553449251479332352963844784145117461908210645144558008353560070640606264475839566666806159069092024747255030405190331586101142932119300886170564644911060421529703990452195817174543741898729452913974708512147203976278036867712404427529659156746873443792975635530144766460380925573298593045319594325345870384492567729255817506963219514233009089682507205350625235042478248168346154079849803399531194725725649474215722201408107979539546955491219930464261292295843831155187486710585192102028646572952993678317714636643508997535015211014930396996517879233855115129975426150050842141466768706812019520295378360442376654504399998466920791406160377650457939419026249675567267452870535054119829197192291403968880997105351713474606689382102600858188727575726409440278832645233989728580570355863568554893516148250096826391078424490204677063129358177118977236961719279421389931671653803905598034771017487328877537856718087258076520868831484478766040903639855810329305646298012462229103829348622149800994611430573013250511605400358496240047797169722463446749387450982871337755907195124177261021867554585667919733453688759707764561702120677147589147783210043391826089769313136298423745409604509074796752471361333274657063594997658373165063007499620234322002650217697007800188040743028673771137673122986100075276198162364119927117617613932422827497337205043207156390377041366682500776932590865382086689829283844583457012050859876640750047283995277093621078356414949713393005904658444273944699424519932486294349629388773583916574336656359462081875061046368173977560124084055631714829991465453753142536323246558303272397061318111713524441928891581686292731198564942861877499623085313024446091039886255798360784990304656973701085326593077524802911885349452022889431087517035220509354064297375612634026136544281666326031786282255195403578804471409989540508757781258521992668439743835260140603316404475862720181675466875952811266474781047043839585705070336120774725412245701450970114997140383151697168556577541138688600162050310490626642669026752814278800311548535491603828118056565713407296252592651671904087234217465757555206704443242013708624133675526751851179473381666557993582169959498938178361386125772637223802493517489569977640497572418147701314526370213438090721368824314724125966163929053403324982543647244321702948517658047748243409812287496968339982006322505643441560045051107318985021715340651560773163874298663850978936523262494270254555889935224915366640954975540937767495480809730432332885486628547808354056882444396339750119927063923715123793470085565337269542729635053346011965925868795822929730889011725855106134731326099794157324049671415975482073003433866449344874563539609617256277472117540696888299532507134158891188560813489631653940142747548230665183979006980629759017650604207300375973254103596789653509668789973589898995929632304238873696768483991443268617941507623213585268662642928146661134707553040467014208674180986919715648488009778062176067795492252781293826566136437760612493222789900409404122956204895858472968890555741490307973936764283530129686126728766609951705383974453582051419734748203643654308487419214535481764752628771853620580400350243262187957710904610192457022455462506696270751136540705779714221584263338423070599287176863419518507237422021768102843172445197721899996636371931785572535871561978309202076228979159349442657151407571677744510675498058181014223616642966759181003877207208793790245495243969526943455426142978093586380057878930840758089642472535853373333521359811475253406686122738217073840991744979952120308994560318282391575165218789840723885925034981389692598582506213074968675811981322439704144836215806694683854769742730938903563883072270470679309405081729764589948961374127640495900652451037744240974925765055696659458822755001436069051945534248795033058875988269822237048584738606606944545314920658100872693092337080858673380827469359900084862875852198944372173087813390898521090359052640547170682303176651592671217656483266035301150905569304369180385405519358757830909915245054607105007981735368342472244918699002361731252004040363059767807353002411490199605692298564294278246486106465801622088831489781889277923581343333478785998946250139784556464194930236107677784206311637680342710833187296448823317260822379595395408272315498467058133215562151422979339992064222335717084145952719682414840759385481456878013037387326858747833026352688298916958728874370288438056542558485545252194975308677841392121539278832737335331120591987634448896280626813846044901391614644998763510067295163280777421493056325796820293387967496728020355649679100821964433544690277958222004626658328089645542509348157563221490886218757692626988483803818021737979027275842552038766237454907732149672944304948875447646725022601466118687062183108627366505730146261331549518317366766254897643002758061239734062716013693310176195800749942203128030203251379204733084385783457724139687457622984578989269047368956798785470111357843012407492703815863876254976600018887573237742724826702479422711870841460662717058003907411826783025721020216000502227455701408270879951391997638740712768193116665118851012643745594916803509270010298486789343767509932701558672767060770821454838332460261765352810544443640973382746808450050615564369107171327305412848700682525018368213743871547909937969031416028711124708028698885842139589490563366455770185594150748105707735912287579407382177425333666847609977635012577304805080666742156614183828626575160072314269449452115568541417100060775467476515986542309990089993074442848888194795606935736434470166492939398404635712384687773919374256295441325307759702621263178198700474874418130540919707618290849544494921468622625497703142628719012113467163105803540261265655117846373995518127373749713734386584191001008243950978374084917831128285941021845363153895665575794741887002021391899104858039097444241444065971106010321633267014004464214671968216705431379396826178555901617039056342202393295396881944910854162241318818885502041873052781623112874942099337252539599674369130487864329558387378110299521416322825777669175630502567810353394181469220573091414949821911095879578178475336497729444884455456517903601604764020410020064938703259995565936381600275066674615278786169860221952335192405932214370194998889538136712948076046468464821878208660571445654346041601477637194870435997239050219393359040344987642866928921756351016983179274086584775313637737740186041230821945376136364910662016445544596052367098536342746667114190028575663130077701951672929437092356395353468861634883138105219926559516373161063678748460643232880502538717391444460230411406667807030697400309704050997526589191068978125872618036997119191288873689151682650037218351569683485322207864509204651728534395610909049402118047594881962265904376812550792586859084094312086862725558450025145612279126913256028492265787777178219992082421478230127748559986428598632640384605116817045257399481528926352173612583997582041701493334655555933880599511028657191727060323318359360997114396899954317459313843516502072262972271029814778531293442539843179965319437293115473155420738733192052176193851040849548782152880736806100210831195552323778285669657886746828169995312258968467751185028295241245041511708289246756570723227405214318784359608490972459222505995682139998338731087757044305590293007928332318311048739002546134987966412396533366389348222612130176798005941326169475213494340821242685712892134396796290535410809223239429898135515078916082252333272200848518617357461463393474929650052384991558414939374187483113992438168807473202488626519035234346560099973647484519403677786608552187830942720652757815040045641296179386476700226085459518671959583136887389608450529928873204218557988092687849987437118084611742839243605546954574077674179223497545559217669383536230583284711337764995172978094822385115791290442319148924104162649793374943451210211782974281652006066669356441326048816448203751233714471128495823614785591600061620551075436317021145396588847360232658347366719456373982886967510588675925810944931346664173672319826370081882832221022014582859261605989053160017759282335434938752952539223465432981990479134133870424442722929022596521945501284610173447177092592522508980057450082882098562018523329272928374151889093970915078031855333632932070645439609452236190588109759988224758124439973847951271197995133752807549867254512556519713200063447553326848294626636173013954204929447489286073912279481589053290930978706219369240911081540440395238497958641746024461792673987332898934622165615935745672363053889884655055095277406958206827696744129591312165329104877600336700304920507517653080882770390034803742097023095296866857146678208460002101002083213355730608748769133339271462952375469789705279356063895572183400025856663080677606360499286425989947582472352587930081764651096064631024644089145523846717452927903576627028101130573135267505836541459798753704906941590444201083698803364669014383327108068734548761094548270942791883795088662979508135928804149026119602615059542456752275485662548020468890244260282472884052058844121310503584912602717204795794430122978034722093178783755702654154986316368145747874239786720538118540078444250322862561294908304237786361840276006942598174111151335065955419978598128470085656318160009089364297125887407818780516733148392598861910481720838777776726481882481340797181526489364869216530858958734941539698143184205558443936140355641762282777616506222065047537597271774737851225028756864152258095310555993749935752421058804133372138844621463095450224312748867975481877378793902997870451233711343961438367249804049135711778013479502493334900803596731536409094075367844928677901116634818152076278578019029091048513701354783646678866828576259428754496833067594002414192903849482965608952158589283705958492323172129974057700826095290275806988909918705316158221643777784829661474305114219256903081203100704888251997798328744082602930304191555623368333575281560228438561206971064109045271274300590250805026057482468883126158350526786929614511645723588530526694875615762029329351307816453456162402931481292187728626327432563863016435793236772995806798079442547888574068909586732846168729248229129132246610913392870712226882029031786484719956838835052017641389912000652655970369837269758559347047138441367025453376074650063997757145823225699727444219121193659252815097989719834512198632759254549068248374539581897429036985921952991032231389654332423930772950284441286751805017648283477879916348190781537538563073678864666484968302682257288900338549918048870179260875299111644430068662311006570240161866825644877053997596443660410804196847252668268743585992794108996941230591063643711579586121120858589986739529116279988444455747414984988270370225335992061180078092227890112679091577304549405577629697594834422068905950462662135452182619108400415756032032409980636955080909796411789947722143677037757683234728593287457526390872465305788505414475043849880681033128808110969799056874255020136087524226608255678853960827498517387774394757802709400688282809116067718704025236993951057445353866381254994934448576218338087968536465376791625381193142252922097498876976123496117173910637436935326488139545179440059743812288455786465677919227918223884794151770687276226352348495784624978054678921517391314527054338141866235572537816468062153470631995460794016491820535629491876118693275290632563429276266461606279117781209517694055133667471019274883217449373509177968658997828486764294975076466395669871275189997532572374173903636792382646051364480557528934589470442478472932224588356912603556161057910428587046582956562474121966632765090749583108957873774280859480296750838381406974175989775913119092365632852906629113062512093067862660087893258491954213002487703648809531931286002794137512716502039346437042851238893499676924352770428662347757896079969588912753733747565339515526400380505222494782164907117278370096660479182893806914813535979811983329385414805435450917872697340272972043466119684056560111339147091857559580779929497847192018213025945328486677654803719629046453267284149293833102707427757262829407029507060082001962357049480170476551029423552841978910437349727217857278575737046000960094319590390608645604683020804936686856636466828225847763331997918260787995689844823057579112961220328242293558081042820415005988145579184617153016598879562787446796179532096366916906968749551573098622004370015571755792074120837060120852081110175357014991553131207833218989883699096734997670993360269302915698546331318964500442029194284278976092718727740411446593637973156013736520753345812148342396865006699617272675370987685708700546680310536985767093104571818089936720434390204603906593107505828926528741589984500255302282721634594765859836309802815541685711242331954266507333438828817277101707523036061244917076724461730560730932041375854390321660054842276031506393934310482142301518252411050976150523966674227614264379429306666007926066190822149355963017247959297974615187402349011493452856317025614206331527440225186325374181043261873532379148549930602343529790054751417031774987927970055160314317642536615465823523519004917319138061476373069002248613500382291854192636989616141932583079791868936841600659119530042934626645618284121209527556324890676670490866700904409093887144462468014982804731398897295404760998376536572211230174053239678686874291999326486838701220667110573693913836797615650644064709762414349198847487471550167705120081581382872051568273834395417245890817199564130029078926393658630979413682334181191707314534013657559945099498776880897117480779070851962288417455265571533148503939949190668562629232155663401447491275514864011218980104197994287333637313557514431587401351911874147630522952973519596685923015773140945934139903469017608394918528012214943914823858897901545479788595747552517132787855633908375633363209113789171142735376251210008610078641304151902262112421681137747909570112890396952037784998609104189975243639150852731195005229508617398915964355956879074773230769304341549652654853865825835982171827472910073795409895106546868122596530142300247807972470829855142456302183158451192931157277129444978507304191520110519140133718162856291699942948342651464834910416538871715477422986585105823270037021070959465718566684285241462492413117057568175051599189989250241402674040070424816591585815033035739699937581852839047064317576404852735302507217878375006611157173135411272067206663902158659762020554376828308580110920789152290235575249500259963585567200291486275872039771889975947562588258562017976742502693351771588604478308652122570652932515691290523198832554867934029644234418706483086489023218754062594366373318424560854756183227703798066016171879848413621311868529671975264806112643676552903602634083053577595859532157544943363262917969539248745521350313209043341282826680261834123471419929947640449146295651027017415857565600430912247826562227309534057987166278240313152994321400942730077901433996399919524930050532485447505287309655990844475158693944431702381232192039761768862667575581251241982888424911545338036921820041289184801754545882965350800032863295482310871235757367638559384892514026515762919512976394273600363320451248422439907885299561309146703651510505111635874335566551636025435250474277855468064427272477190670733364111177763648341481718449293380177897139347908674806062628134872437142045675234621241293851219540063075396295989531025831788270019043988194513782947821222261976217808885530188319851353708353716774764251696191934029648129702482106023374085190587311026596540594862816127299454255480975717588354805824265940607702195242839298428597593040870300510172203660354987612643733501834901878471109629275419003708806770399672560268095710089083444215555497967438061833192347506628215786151386442337132405315335412074009057496563430076690367782838933625235643675481676284080831574262865496590242418398496956352453146854863261958759796955419884170956007542046980287598987462397800176592192035657619104244193441468257647427215978666113342174068684066441002968885670843518220666408194335222385681742966058541314860366706685813066879942412507898071889789900959186015177076895918040629767674659121700615876807873397610754741597508410021634440189825860721122766150409658421586353781663103097144089104424230576286872363941273972036385478190798336960040684963214017195413733564266078475333479554202150320863233360943428179097437716396123822686190348171947425689994295104163604674467623160125417106953797854622814320439780420951166453735413863271199776521843063303092823110113368892822342482475008911268129281809043833754119454328218116359380520113898869298836597545060184199313924088310505622461785450938926813978777784464706677745024374156815249518462286538880932937170700678422518758977732374656284289373001866863722825751687775110912077644462243409177761511267457359723366515430095082538978971248341423004722047791822734210197821324888038894548071200396837017632032583168494669028996683010138638699584416724621847824237649206721431995308688872196722563551150078831935382781110298734992323664295566119988884334152912095063753967497281290398153922384788194516935371447692170997610217446635431438713327708314460986799035737415485593127428656849659155903010141160505881187635670839290191827522228221717150669290657393777592016834265180564481599945206980287067231561709473638068949993305288132460290243211593349741830729575178489341736825350037610716900747044389654281705774335909038780536362082558235679315261306264273941540129128941845372632880180063570735164405020863148523818979829091126717605942371144917125282478126824828410344829911609141338559654834237361036440429926126814041472902514754822910982842025716232984645988574530040052391157770424720103106806659974740382394314005157415870524344327963444649407476773746449549419461549639764529821522251132328525748402637999188346608842924276077939977946416112232339257882672889710199954473236269638577485852673217488795123188494681989085806298591969191776538457135117442404305593552646431418029469529614969507072997759728314459351564052838865070743673955057898590698293158575664271852709600133069499011923436906202743685281863133719958304918769836096153709139308014242433766798287888811733195842973187492514377296523686592122888425919279630000521109462663399924161523186135216242022590948558491297419536379186990250496776379348077369732484294574860554967402804440069890331465976588638911339713857291805739958675649240041633224511860923187225754075033603402614079367466934398661398746903333069949217096237231030566759615078603700634013012681795638911738857167610830440593377688671698982820496550990278863682635315372470428340881356334350780618164133471751214704170677834740178567369675260688917520786868026116894459521254328161423092439047530493084270189822849502102849774549312340009548017016851137448698237497392373102193924830373717062059586646542118757137530410038822735137376046217118737786317016594100832859466819606213437136484342356015814087716238384023966130481268882946160022149904860757139240327588899061778804696518848790849114684042825694583784464791379544781342303288239022282824606590725646126366686472200127980105719187643980463460867397006749888202341678471341403726654195638322235517200695976548369504950920436026519164515188178288931593024441770504425121863179123698444369006625336121131831314658732754832107558508836940955465047048688953438333902248889749486377515018927378198134979619325768267116417327649380904340475725625075362025222753561894305123674743252837883744128213745469878929303083787126085633357261233178409340741061228715116987549418044049439349905796842735974429146988073124888363779888750920164172044476646659477476556646031334816308224553709005829316043871059619815225743907643891188524690382369647530933746173266258447896025591996424545317125010166407938942633369246074086072562044707353094099194415773041495643879613719740822121686150482606751561802259966734509426705754520375581367592740978619529026944163719064836190704581326056157118129425962525432905338407191984407677574762662926235641219293239800821092712484878596196829140663957040439231794348352435926668092837482068038646445660360557707722404630880269417046494520241481407244401169281548469899230844646793698143471840579716350703769919592292631292490086266637824521141170150560707485274098937532991747191737464558750094351206320637640167452501787030554601947495040703566298225671867147158873348137765163903148542646027424502040304444750383091018283394102477646985901748298914995410188239017272410609477156809673073661736345900188973027844027655977963609495231788058372858646989576311512200176213154308272147633051830884050487601726294897469423502455731395223929163054764322063159006340906557053876869965662014606917322558328965571350302347080787157939451991686830014856230984300337498023716947800022491926923183720479462810019056093506516112642190428389368620417508828875263706682683224068445336406588520742122096571514533574083242098353891954496979220380524621213557501588419457896558128859152545113812062568298783722179135184503805492231269121743034150978895598898153179393666844137811070990845651394784199418916393965023822167628095401496588416664699198228671592379634504189879256589863880757851877971539101382866463182770822659323682695459377945131759427404977899622494648383204082116064905206707621090377779707925640940643059768254761579835353965140553440766894941839461188664272139595174776370395415590812550347783430323685246227127138192020250543481411564386376346752398878589941041821829839155050522626714890896855526139618096300320029861776140099566751716029001722894940079445504019123109910673800115293099714034599456104851809747652243944091827705106472249012009726760530805507416582447501572588719275280306179684244552738875381259712042342129569230253831289820464261136547984738508878658602242990531471183134837838468785985217408784139789252602218933058091363138546235394683965707821271182709522388176062051334094806406648006265713236130312663416606173012663944190125608406101631444552374916742529065212532211560415479138641937409951576550377128643750063159847091036051903071510414083591790753536330064133253888243384293622231853744230726697894399991749432979095874946675297989844050002141939052315188225525707901650384091321343356664374592620248163458961128384350406190731984191847370781679396568762211727273569563268724703836837378144829093739788157741755128853704961720622526493032504864958834096527416708567354208510909757304427828186424985138346461792104663103079999958203081246996155631427576477212556344508260983774869094494159954936347942039418395755355933584639531602508180000594987891090715244721655541974654285770708077029584672734299918673460797848758809877132855283791671560100313612894629517820969931097827621179664135733157548661740200961350587386110160261271148691435676994098281380059890166312088740827457187784432133774341793870679551921221852436527706278094257367823718128844744361605748125172552021842302185961538036779644572073660369304017333760462297284292185581916884401132553188191808140941968569029243839453282209576883749004726748430014173543262501678498619370997398512333022298695621427999416817742701448851377490887906788675963787034610109870229578204761001482426599400209067916562075832857713455035612119989916699652447465845874897420591447145318283395162049395825152616989504017600560541372588664050505519510303099356602889637426199864746602260017096707472226569975163624114527141597435344473296151708029855498541006477946263801164258369118502210243604938646789373566950636545345729257109335382085255078394424464509013702998310003729743139371742624372745084175756882659456154280448275242449691386549510756487497352140732452732648941547416749964800096276643320878046313087757273103531202152710432708288204460064216307084725052741323907924319097104526826913507403789621162500106428863786910685095218786135947085678526208802983157423278595767639048676771470431750215210245635840801667704878705713756649458609643419727424721278519761108941252189413934500143934851105210286192539871581207782936995948922085262442813570083427156088122927424466067228756693989210296593424596288464152628066721777786934827176637787165231781518122466842195600313516600126545022070050800074957612955325644102607051588401875597141805340163883079997491812919486086775564770483739561310134360962991494446745577654819086173714775509239429226042224050058701896548398710002755526631786199417136742485562395286378105604438370983526940516875771799771053895711397720330818928191103614106204370395825802111262927803513891650641242805568140746900715072086865496648274083396536439742402859922149749255210983763306876852796995912347697237680815351425666558787942785125669228618476453219249208874393769292761911265969525737996189776922378308007278435581951708500298268574875365086702469975150375696349090165941204948951542701195411768316624983494260985374594848049261111496318241485418131329915707792855728284194914986431409994761930122379408381972234859030766711369450761316727682950424248690839113396175911935803397907830253999541979229220306771282184044533382450868938831817154737333240620225928978835895292005830366392698297574307287320205544422663244577827346491092322972521773858716518578278639193331801981553862620911190409533465769448727226626194458374987198157817245404417170989554520362099830080346822822001047997147953212625682972781201046226910210657967642240722632669093796760101301125146384969021202806288176151543380895329842074786692425788350248085635053165175642973150176448176925838557966592222713106907260580889342529176187712392911870755391246487683234078305659751141027148438902572588194141584745837955325461430115885252651630588696057862305073083653756343107992282279404858008910847230095766715829476119945711814020650049642299707046946470543653046170239262019015418030212835421712471219327697667730917830321420960790925556091897102418680192127863749114892154867482177969662163330554279977541231423179091776047093990438354218079294879835599804496432824864931195953162848593422387880413519579676925604723434487582832671587488184091969015470900297128184341465444372354249588741940121106709333025244276498629141705201581097754248049742963344282470990205463965413705604895647465111103184657599347262700421948429615225506553454368246336135401818121588903594453089396794113502444694923816182222249787717736790772584122142899585767567152957821577829728569376655191727213237475390857882374229313258924490762738563406425671501931571384913144880391485844997899563645462251087940446362113724267552553550967408679753535106094380112977570042071968851443960478051874594685834083014859053580549469189045478700782730849977600649031006044549669099689175598511850119423475643228050970367782543272646763385074606288572005647260769737420350435688982548343973755977639090467176871246377358308519671572730193980019005995383082308984529056781925973827298913251328196166204789646177043023600649342114414679527126272838326335090485282259807719731731318274474922299883130227565222233541189291116117730718934771108694583795453071560926787771429921945974939709379877002017404573987716949210917990939438244781212064478965414742839743631137823619284478330217557039629222378212803005074111189376345670183401342185758339177527958957162621591049108584003093125534216533490562174579221815427083320470824306672044697485204201706374158499028435377668835647954259256928969553391638315095042862732670069686610914015397631744132927697341908715352428407862621231825325068808090228246558602274247321211898260412837403260597230315259676368062471941765662559560417574362779868898858466680131117812056191354684134748650960617860242299912805052953614739488624386546575872487710821351891504287687320247982928257188471501271499581556028014858150860684238966271151352015820456306105383745185138508943685314081054735739808678735414943234416725084120155043918385832153970567800772198808113143218000173983376003585111529418234946898104710551028962045382762430811270355742655632595693623480085075645030022580616990831641464473692457432984444044502775497306646278710727119404131920236186077559296151864276967778710946895394984965120485474418617739873205336282658453556236609789582013474280553245394564519504055809257813858882846007728522799648100895125074817456997260253571874561891242837628962563945896662602167562396247607045599502933461361988983940682587711745264713645831240649284164212609075965581753176241930603312609933170368273803940324224199735225099575909013646567887098404736815222512528572030023834865330067475306987589077952919524333985053200209617618157165712347670051496586902102866226371479089087317770270299354548276174481087075614463773077803348152793019141898111846729685942828757875450744565140150482069228641828106830687459198484371783529647280898393768557849401869823546266739500262445369596561148373293237101345050826428647444783339684432984762644706024558561328940359155996800400356860964876875499293163126828559531347370944831693296894258271348151061332131070808393916982357052968969404764451833327473649544651487972688683473549258799801917955282563789960036628441207318219725004390947314009410469134838872692286482043174693413153414956394485603656202084714991814037671010382571887645217742844500368958880251566917336320777260685561646470716680332280116262693591456529199066724538117097368409331283101448802240885634894579013754953119613927610464935707855460739958465014036684963332840717079465802016623786303954887837002331708518410748841884191513215541818877268937547491235844549344231428180546533622946047388864269319355882744273955176289544566503958763490414397050661089728634025929880382685369708133284435355090903035938521422079184756313173695465850126466593089535993307331563490189017599191970000762562616869350911125551786234362659735556405724015543068730938056543730014670787061184859488241103136145500607819257379466047240357187003016992642381002085725183051823239821735512855729500340731014270727816411239454525303731717098845554891171828250895255988224528004740716658254920785231354240281281065810868903743770480844978947504918692265479844564895088458402062156276970631634401087467148964505530611680008839718311199098421287390488702160139467743729341305993547367184659601581504246313182875543842253665027267919389753789527455802704857736960515354833385126346075691563736320000612508334395297288623344456432035820284327156052851808640458214838407819036358970077579495764855092872743248678949149282161592157923842460384373669744590897534217838576326638902957900997025524053451192062577971390291726618665364695752356576669506711616783725327251181256837341262913776068583869052640872562429415836263087503581747285296271123629623829198844339673817202603584853679049241859121647722057386249924703184189060426360921770090476948359109630370027580215315665001219955003445274812625194189370496370723389839261711530084275068331681516721378427173704542206894737749645386452145557168770087943387534726417571672953566582139785411230636269692830618596314151531758987595403734836474282143332964579104087279608342140327018526246780533604660557388454552784463557260271547984693847433445962565132940915571030255911354258894957662668577836942969183843913287060284542283568955523461293225612711639621378609712485629296321913975477303135836348851872864815849933177241327845702165498383432010704522325473091722163583159007983790589902557449005143203259317765163446742205502825082973815305480163697648483613796859266644881799136606959061189004513002486071982664261626899069563987201824130302383062753783990516583785532386773068833642078038168283303683031162077516938174680371308605341883790733308973447232600005919062755869066556981505981885989422981575581290378778899218755523914502508818767651624437511792829235245260592906434435729084662430531339586125175380885981936489671435714818966511462493098080001468303214906524520308906243639005463543699560274896607116182253218156662977706510438415717212570950883781972289861693855385363339882253537597110217482858669859036392838387769472380763261774876239481199063108916376704364107562383291039669237659766558857309045665101537951311098555877042960843274970070005118195146048607055570720460577706191201689306047877645479142416788499149911462570117625207943872694656417651183685747961655436950321593160034312400678847993670815693240985246165430288956459359856407003397836983469569718541456759267742840140960036488766764448382951824117763950309658808882040938882210379904934363366691200591686552985209495861322618160016882845704377502279921762455167843800548549243432901166832013530236750726241645122137285517122196534864095294403854804535352708892503143560389594733849627043675870454649412517771586601604076121032812294616299324871363741160470027114980758883350906868346087130273184983244580261172211163920453030962757657500779053500194168692661938393409032988619931461316140868936310933115035405818371354635482725333380748471433706110987497816166747400342264943331645569261597292493761881153066107356666453601485056055643897474797548857897966230171498583160524937781339904408730624149365905355747582556330151328754889842143619681036625277274725056975208665482911905690271766234428906651545744551566974375238640570588852337060468863383399086493068234146121658274322376432829938695238015083159712691489818259833559002977625362622474795887409696913581410798705084819594181839681909703764836593970132467157849794181149492633235200369738357185512613040025436019267178596777046961070710917544167376258282805949668321188228035962846614012197317478235651825861952663833271726005457844064763874614362763122279199253744448700207307373254977411175305701850491483907812130933885775643558396068639530793054867786533489397052034872537568408137810873270175325658213736820813688896879484172184386619141452055679446446871072742006918312774870814031194226194894657758529412845188062545013453079499765682498608828640089178079707269930085155514649713680144935743680402706616072184947252726911560066104572611340077942095594102437942485057354551412977006459288133866224342650106438086728090380797389476143819009533731383179543805945719029285686588182834161893403072475456663541338257116364687605795638009291970840712900289295643084298972007057453789553469332038378267973433122224420199793344361933111214686074118853525276439000810815639632335540901808944355537712261787841523635437563683948026443494438989496523548794701859763795493149026571410817711698474220135900591548475015875969636869463170029385422196565496068370022293949696539215249233714996459417224038358975905461967890632495404629946114259871115637887741956268552818760050968555591164729124450659270192386232352580865954380417603356278039649372006501698239669752320508833272437236749973323187495920698642675571414510880079926791927765516929889264298874965435732851588302525193393258438187113763844854075388934198507364659912969870973027218092336263107825330699110348540324616710671853006172754494167665943640340691604065216338120896306362239437978084325629768979258528168652699387679717098437485301151097841556712945018644905738624718859280981140727694845521562936741899829599430315625807876388768558176875068054936983244357247815960820911397009299769525563012306962804030554404148858684248440109687939260284125946223649268064989183609664998949455238709347852645561209033455269922717269528118800081304667306188425175665376859519726338955335775180632761020182245518273864803383745053997113358578114134141425842009426801024663450852685908100862135119327372230507132325203338001797810404756873251479483692535563384300059392750298700006549424220211730560931466120739326422806855708850537760261224997083596637490121992038904693475430003945719870750726484302759888267190789668448219369883044783183460941887209620732306838234024328007067728497427018022242305216303294675278695092460005589351678493955038866189810906417467812926998463474867172708399292319269097918991667991144578792076794446844814215078781767228756223630129423742478390237155299201385265555126476333198751144235279220754169644847633858225523401028002288924803938719042288377931247217813464193822368577533252515953178737460635930543993077612155368333208520689037353884719662563383622285252660979290029780940707232223010958359406587937605956509309817908775036575520051788722175543469087655382331709361573046879399966854667442393592386816829169385311337400330271035964423419154275844944840353525813030621664331289441067879979851017082585067999709211947071113534902851534135183290173974893122228580918669632961409441787035670726004038840066736771607726017733931121803485989327810940512460910056360978107917507218926965972503393876460043715221582094471703844282867707677270940589854848437233253703262664042021981850973040054237360428767211045671646064582236272304228964584312829741206029981692651892026438576242163011223259025922875325704591125678066245780705645211630356948341592454366688960329980105838855893082764413589328064798962399057441842570946560307107351843573229807858463228460606542342029591764825611704950879767296024097830064787632340142539388133277022795921745604907549196348863982966194849131383984081120959103000341661644197816136274530251848558426750526587488944029835770458178036408807875920443407352699895390019414878242465122295132433236601369722428504484095847654543213177411902243578807561045178867640889941799954603093537818065174265255095631572019510764303525248046950812257298633167370079019799131801033737835882155463036340826911643516840379130529776020230710429994546690097069206480330163533760714695898320159413264563648218022609342268012155797542508874801530687637321592377094208989886038812680536690400966182105849261657349567949547508105298624736445962486522773725238655348903827348582124852088461276615092034654923969422889297039187635903464009091470359802828654414748949231631245509977295991038121746816280065279027958478167445475144457615770793467197810508266438614671431959956262519172096732326170690967507506181801309752111470571043648339413522130860481356139699263264775397669928134738645829570808576772081214842109488176750949817555503821331219918871009471394842850309590529901775322386451943228276764322276579142294270785079327111209180358145587109830023555755430047023126615671786798528132488622363501100396974662925925801367543911533645405703279644588839152521981440240591520265938264919202720517884646495942110060359980220387652933481461921445642894923344348470565057173864789389414442764931139862052025614268059006738150870627703289256580761540297115663843800056377000570889600272171255279391032317069645240342911439638273800172150936779760989123481937927671063485077026077394508066973032022087551147569692396413234322411014911016696452255180954984747495829664069038338163478326121907521168165550033252818262718496497028855893685821644261593266913522710045483246283663566393635965430798882211640803476960387496048537653260727340891022859540254213138453406383802295463584675435504777658728906659959162192370704946514368481319661654343484056520599266645911094282018741789333841689016347503389394557849570827971650106008419405627811817616037804479869400698129920733081131869662681616929520727119406332283320304264051415176518575312665937297659716824383438227286532446844672934168664545879483530873019948173217481592848972559478780590214060490809832548782368724664944274833171145616811701866607959735446572785107134953157527452620778645023451742972033323965352897826685675925094737313986686663996456191469851622979046866344584054255026118193404464708057805580626245430216895782330720334687184551034933425064252471888198114484179715651883481909069764052486654786755985007392905163406944111449727543121423199288161225286502317909776207324584651647824286300598664176864534761323903368958922573835208572192487187606503825514973984294039893810163351901807690193490398136331343273961161122888263990403596892917882241139709205507186435804032663702766858867755625333711126126871267831167146309173020622149484930585887021333674101219016103935315414648886211225876307605317733657826151680952975181931434663207239132122282341093607970430747505227234431130206716506710006827806804398860728924127667410052297202296133692636828314971871434462577612573852278072038775891586739558506805333673195002647579839318020545465875536392709875584333616350162831100624957925383511193222695825026665331865341376943967049815773938430723329616447737641906144655888632015306958335332290664836981178840746968754030626022200925213315478487313584173174047092219598160863217271827574791046872206321548452460796093006154147239395980901377330568708039439880573817260056917464908977294997511371523030689837739089772144205034119623465469800944635540593208932972202314523420568568826510969442092997763809053160831724844332517497776109788995276541566687038628416555114912779935502836192305303039530907086614486630909612092747844030973777809827855704547538070303802386562441010249007376827211463239541893218687469784272495504243638555219947470574333394644373402413584161060419893156442302318445490807332138061290057923846108077525780147273789563671331040654264648576129527436352399387289215619608756635555532873978465184160143465430459423199411100251750489408438027900116667437811255378698191769907625009102615349593878719254065210699012752720201498095796774582842461930212297321578340103929663433524984993995119215839746636072268044734850242322720295207346059605951887628380198636062823595841116043930160153402054773045962390154819016372884796971349690127256033677710483038873071914216242843618147162295741817642581022778236111924284149368919893338906983230806947810727712470169029071989449045873798456749264742491680721609734634854644612595904755006940333206220679710750456276145756287857348531910938387259906490133458505641906971967111767212132080628231040603062809732527416080742672972683997306339032778328038576241775223588327673248522591612216003116688534697678230351028027645735343090267517645598716937732283846963679975964789235576950684569324011579024899912654708982187611885207380952973119302398434401695978241758097590717922890479183163355467748253279665474273324115342408234444885662749516087401817435352653554501820877869995843311166427029520984788558886626226676483249350838378955185640222306520336065328028103581723300844224501548518560796999462057099795035626438811277648200076221628842005097062728521816551208487197271321622464693560701322069694680782036391838715388672556997177284420021016769709901521644877909071558319401794155291340224736080564528728266284271468853341298266968558946824682030404715031140126733413481981244462325514760256610604975789053115474706509036274554494093164278720633735414726889317561846983372994446191075330706656648571926675984791887449548462403523446550212423810962251177968608921895802060388737558204763798785772361055965326740744740206771264462529158107843334020970089295382561609095904646349057300280011681934374142339349764315862085145571699741236414970238222300104186219955418174429098958485773100487403773715739337364473128861133864769233460117557901095478170611822985358582091964878926570818272368620195747629124727389805637587648495039111541033469664576790756744974029032769345073159053010091120634786199407063749772491469593273217733715182712258208668042464215285409780732100326937314739387444136032824013246806468463326653073979622754662396887685909085366543806294239753054019714519294748890325459991912572278475528217167602364313917382891719464314320464090919358521894281318107180683158294053388688089483306137130873494808614091687549016872739633461812922065411186223403507344810749001669963091462723406449802072985741934633498560824132837360591674962493873599778507109790494607158634522670567650454140900588822719169303932502954712498520222244768981073819927129433796284638181761383261526236329160011756527481383303730957112987353131093875704150602181157998293065326561099097561820437466357923046667947769931450789288823698008040433823487170995605904783299560282768271243590098523748492501049767086600506186660897926971667513613626019234743208501195346377950955228169528671463485677029708088572054000802545993915116712792107777274093848713651182990886543686090620704518149167546032264742975864370593552063317805598285868891419080771706681125675479038688623213249848106328673499975913270997922208097176609118537429315794230105040592130540689447042038742191460409291350931807478502830648750780089223536380849521522573876411279644590999035838555060154607921762453090350558870511299204914030670144526024320296633981172882530033989028793201605046054257734230787948860021337495720472902612653506549385150629694331210095843027517355108946891263883286615346862334807239945651985173908320101426638382600710153291158392846217148027206411888726606399676119442531837969739532385419919204997410350852932503438135858896087168286740631101188858765006683279187629820693467928983933547782722848002841027759241392529789030789488663847032198885217306224299782863950836857176730929680186115209862387752566337022284230313862190301753246510808471909487411218224836894163275429364802702399516616992548333580687921466706396134785307257864302339749106680724936162281688110328446215349443634343143778133274607031659550852072950781760312819578246962192161059975038014571856859759392578956916084579235047161032062156932209839018317511019180405703105174130557451308076878778445909667851890762704798061675131831203331077273250284434297431690689324052292998565188942181919048109150859049347884049766081779688205512686402293643019008292438111073333315482971236951822773911308522751800748498903306598950762253095377821943488698261553198657662487039014986622358092077847000075156415217761709587280401791206058121154462325536343070902914299367587128757728415482223419881243232914551207913161772069573868565271098091778985540398499150492138504676929109560568917407902782722153252795618713762354684749671661860497616343658392012561307368600763802814768040499822603284692740306623610554489502181721428754347737881992194220085263668869557909844264095773243034321189756425732814379061544926125507825456628490293428457508330757352598592518922652825085037873243298385697932470385111827035203856228573275647510290282765731933715445271649800389551545898861516446178810184972231651227181899628358203290598585003318767666860752003324457876601844507384174665533288853429772901735560435540585862832703574782583562371852563077717462694613109342199013141963527317008896977505483570051021098697451385564611809066670544607381993658278367464527428541219909878683161913828639355846282467117161287004378378026902641721970016240107495548374057985533299540620239829427632487667077535428970012854587989011493121109628797713368692803188308323844946659956970469456345049800719272296015136603014342592974758301720108339074130064701772925537726923025205300007789855662501495445206565975923881422364834822494192107693147375662909219181164304224716371862681033760960536148909051410797894663293382914153419419424473283783119079456462707303091199405976860925395733252335206261208628715321236770918325660994905269000230656377212481927541425110276283717245473093338447970480003485444305492193757182076443967190049513083160218671236255726684876274512445357178118029271874112898772829530125630589789724266891016986558279884134859136676895324655434374645573195955069655224882740323711299230570224211287419863606263744018726478655954529022889740370265474476503782773735441535850803847895807823151294929477383926818885176695873592546912086820551741221840513911474128826135468340005574941633824300254855931421221689617944849588961495126243245044421475772041482150044345388503429278759575301549510546165511298035248983228749209446823046559455400480656832549747444474452647272352280407916736923197804846890126538288789044883919889071215195162620817910055410618412388616524091184579476568473256247292849780239622500651359727619823743867439775760387528306508141899919284878447408812997210231104896686668669012001967540997461705383512111991619706231054003990830922496579989200873314399647025307653127865885813010474445142788874619112337675153426479002575681666014885046272432471365228989633873496395649296033990014429676687050378789884828402339352922829917113226940488314181279326191695897951876085510705890320282925886969030022367240327099927466765796488240298530553686657047031898000766683740586437332600564201887125027862490363317507769672769432866430694364156908246904914529326921882944742849420152610367698087801094520134797514297735329826846220925824977605371466193502164899698400858997506521643867214797743562959848734598033882534433039748811978897747522338591474349585565511101557733071955319728111742210998838011694195624443344298564415105435168650417620214100322428408647328538506614829655860772997366485535826978383993478247981915377113589153469301637498723315345414126965584667959803193575574190657101904159583283131141491307800064895932666265949045708044086335677834104258328211805061831195106045650448286854119478423938885937339601154827406760415684510714326440708869633359584622072550574401242091260731765452944658964795250540902150245752007040079870295474554607082237583013152621055682533281871952416821511861538587618515861594502905894410169258306990645230868034863889974499145036141965066563799318229223314866378978878705651988156730363013317054676513760465954304859930352576413842681936923346025373182569352526939391883619931666501469715607111693788141201618736813444825163089531944314258573966637331793345685707317268511266208266813025031910783986173641455482800044760020438562375055512218614106208264282056585602940925920063302558720553001383493721143377248167612880886328149235673582752931752822180188564618188290214705867682593425093548723628048805219275837541927528409195612532885921680441848400204773296332986698500136834314475990196610527461613844544952878271307352992413375675547293698741009514404184157668884497242452525263881802660907983825846408773852560733127507333109319184646681004103697889104936199697156889605001256147498509778856940404943424578923014261637598380351206292723112296621936134146216591983437901541267578937921617384996988033357638112653423864585575323951188356054849932783248491085949681096572616441708759941622382238601758958025256510899226604125706507755105823593501454607627386791080254862020379624316354795456239178164189394081258468329666810532622425260220428042279345391216326496116775819739510008805677982522239967672571367157595436284182518197082680065258055814335903106702406686145423906181713445314031990024818747390519790649203511925567374583112470636396067982235330093033958049551660542540729515832298722808105313668880692092056125202966990372360056921042527773708875601610096266813763097587459975465849877582293179784627194518684072000005843091942990331933790983103845904263644917995134309705233627352746081972640498917199190709058949280323791643497747078939524364993618709446111311413138566793099553696153919646542292176224285110003521619222917610942788156018073943353392168198227575757628609455189392212692070642334268412254268350265949939867101451106781816798596238875131353867829014566677665099131388362612933238925688239660011325237209768898965896906327917695114373418004833566942641377387397057017622597666925285792930824123201616548521365698941108445863631320315568129030712491570483486074699249229787444742570932842165397176243284305674604540927130939984264275857860477294352199927570106161501756173245867221404579054396660225964961864501606887847492175222515118507497673542804387415701231636323903943119598733558693744502950369076443887769035688509910385393399497568403835534009976603963544941510050978875772460810505919335395858911882243353240668511369017623385289779169972075816724136119902528464102861903777781488023149600782970638795935638067358125781220252232242265011155805978385508435392636816429858915825535841924017718115328440295361526509102358841127023704582379642372014600477131531778737562286589267207809616974968501949202872916008752276828458933821009910123311282256410065026349536784325453816130530991196159661932637357171297743383420156038592081624386681596927869657823781044553653850118705751561950183752657642607007552665746855296372089547575208276927062191595624853176284570355468147062197321672117755507900854030706614097212216449531644994341114082003359794821361604109839244313969607197263212096108782028488354830931834737568336457380855755327388077450152108360483320292800128217362790264342435096894954718302708891844487124500803008412693076259554525889537615976892420001353744758705185419120314380340042763198527569217122738786570408399672376355472196740455254227279609186954611522339122410936578099540229192903595295661077961460654785271407492686977314504208582522695775742546703122569525159901449067917506193288289515423035056384125662720404928394987549532267789398405732310304510873816722621076326565566870478838929878316483564442886022235105733911216114802086470552184563785487873864603834526386521289922528555218091228078943363371898871213951697802269187080213030504097782590938956929195244597440283771620252372135438926561746680094948016240970793077098793392009586752872737736835427702866052936651726497419937399196140506969178322256418275791690235903552875256407392498261936258278257706598420904286714714194354790161191592502504966033976191112954395975052640142670061096928478192765658816751020263730685609141158382915292217705927629541936910387382215388071085820134433973222113395153593571395232292366814271663210941453486843024442574086012331957546816655904391807365009535665393522322151600776666145271188748302235431589571260608897581050597260314509869476012718190759334905203852705150399436227304327983528144846386062380618263503474906353523782927203458139292171793949598296787646566571372382477833345093972126026271953491573326067472355184491651299530378672404438537352977274817820636190201124858387962641991920917819012559681551688896250807023926833119773853793388129533524576276061336510204549358738012569857872958756277707009370983694882514800468778023193558287465506934492910446222615951814657452289901021030002621758686449494431655371342921233683587781757809526284760820586621713625478170709022281482934988129080440890381795957582061885048620120089753131991322670675104281373525749916192882511317029662250557714692364106689434095836158195461618939709852815683344582668280908178556258632498582182982889627172566096926081172842788088263320431220678034530184519427964568855172834810792364316516750440300683109488766820817314982565257690850851851663313620253427511266372307905655074152786447816936861034594146781958310449143819209146421516215442680711876672256564345552406796687671196142223226985165446892628279672965247529541758909931016427802141053792161766305854116650417016984332279069380181000420965845142872659472390667846823473253358005945193905241375770464642073086899865770805726112220515569684574997943914769712085812219529883553766600468243785986108653754947183766124224270873657671262981879099774617090559595448846114516289343537140676389763822138970555595631394838982171610410606553780063043350630167920152772946391569314094809653596510143999161400119413499843164731474042020131125591275934758384772516960669980408240127452905114046129540633860569400607903328652320059904744912455445320578444284461460934797104703885546268901465174635611375249201493158927402036229401299462469074228682235008932881640129714889611111249375109947546726191375051620911272411282735950147973086041721872774439017058603974755163009774604886982873825299235006160197524107250836669709562952930527186831574956923703010155346748104770698389573210520758551327060913251013498118628711269362466719585234531341387490848667607078280147884745096896500915633431930641795946194612038009330302964333935025151431902927867522089781522121041675914138877176940989631739871315835631145599071817826614722307682528678144129340674119768599638619946670433552927558248091975579064101481905750448672134310081117776470452935295433248945264339311106139667494612152044081345471185055248366575754216584582739766099159284908493386170016880909815917763561118297347385237786314132920111341934969709722324390210015504670612205679928508543545399337624723526865160195648725893676193845906096861553994957236628077410810965085375316757024004683325523366963140693149118395506034338999186719936786969087534096286811124745830261005565783541268839736318928449659139372086520274712616807625981570965737054691665212317887777909040110366087186198012413317381988737352087147789319970953154745469028608439005451927907375819104738349794178094100726840944016668994088850067764411982497174893137043967526959088135256081177195452566514165901691040703684026750548967854050229729913428368312680614721286181261314030940473263207233375859583459647157346230545750892034393186992441323344181794119031909347366391190490075028221336737496370234175511150965000706724709733766497029139627413959274749264283573882134993753138346572924391445338664372705327645664361672937291318416522840895195336395520342092032330607442565194038949763381628957364590097196901874549200262313329013755611756426100585203296658529673830401069859588869410202476675255474842348057563505099477124909525904588682224589668542521850090600772724652637027318389127400727973840786976178593699897911281911946849927172831860163726835747164343484593872195374015889114977424770683517467833136721943804490231314704162610291860696715510058643241348015751224303355013280485424601365742963019383773918480496006963073419900787352932931180790762328866127546359765396168947609225018394466839204532722128330788155977021521841481265642088219035232296103109226883408393168011268379432318023142213101770987952152939946853058790793996341140845345689114501871876892721171097725103839087175812895591990652232055740932128033906146985946950799358047404946358522077002035478609111673310495131211597301313057281900802489796635477886716497030141736072680525677420254169368007305485598143122131665355550218211816113954610206057109311866795548531323836082204431598776038805754766761324103131731139911449962926875636532415742462947899993147397475267065121711926623159892583367899440400534747843498051105127870331335408311866182021688598959762001112020722756314725153768787080701285982374878732221735803044731491309862130016225456103238271653774303178263115054289805122960277366596091708033697112943879429973333665675581533137426362307791076859006861929770713659310566910566563815026455338731583432295948106779440167817628710506141376223848931655642954345226440107411999956571569295787571754899783786457790672612996983627726221321933703887491631994548600425923422810545831792263655852669408834853338995119987411700246167068754154334737945455416773050878700194089088724176547825100921865522868467430295315854144289742487597217826244286123972643354468368213188457015200429322335642167559771186978225880288030299805471811880305297932455310091534883847333422803263708332569658441453662619376327630860936478506534179288240278840029978498044062091676229302127863111836626621918018443530416964172276176049118928860741362340780813541634446066847535567525116377099522579659732402682716410845474823181497673334160904753731975765085670603458883305959834696602152547053270570380549762121081881757288042134449363797033310289520824533897468590857403173359739423362428051044702971733267754492998626813987934114605823553923917348401938304202221179106634538519287897495898524764026936183331494283799371055101044257122710842945678762013095874006682021771516268215822623076217217874260655969010179572244681801556205849621637019571516978257569649126557639498367513802757869351019571692691571181036251782746174270136824960383469818347152481178493260496818176272443651535112108626366626155465424672588237536537666379303730064398864052630449730037807475757260520846840469449425238362096798773921040400456801127889414079422184116732266241133685413512894600664803907218481619416177117155238412295535925821654133604998842128355692879115147391100925823682351492432401618202382112488319468006348990222799936670180972209824320853227214464482473966257710364318659939660143113967387543927428773116952666801102078213029421777213959170179876433473203547488221163227015866307284489409471055337677127273442745827594945780985266477493556084247509312437803352036336412899449375847845387444618398554821633416992154905097228546832293416879946403346724301127238028101068152702293344924842890054422828836315369554521693757536447967581822347532531110229817673279431645712477892329538516232103225704603668193934195659384411131962297137628705903550161995169421103560512843241564966751584335643318157326962787647773643280566692365754525301986315287195947637408258270928200472527234817369678151575444302355062597320944192224222066559261814833881272996173978071348473718916494749059582917330029880952725104880522876734719697836431209530835851036737631931728179779831412591493199542950913258226890657202033851211448355099809787863398532016357105514863536622214562603449222236005287137827079357356846942179280776755453177180927484156435535156745448567510364688290424798995905595911888979356436016416197863039264139910944381321419059802033686169550500948130877352703474837282777590261304541123411635142209362616442727240543019996752664855512004175742146262431179320629185872358925372963312874739852616748229624540042158290863035606502073412492771765172255693466606726647764190049097062964803255598015467835410266949827721721434170562334584403481107242535295119647833400827333641003015902719113262984265952672580455010867810879175727176399166160132870854570991418562092597102876099820729637212512968885851081321197123739304230192015225471049878422161410054712878703568543037992009206756146367306109979478645707560177419767440033908582717547465187613061615946272276671081014771027869114816647752573779734194039450956237258201168498690042739892759602335658538525919949004008996484533077842910428799420749400034004421871943673383725741563952082365481966475993800906507948840309926957435969898798101076202669679381058871597649876873070630279493026048898443977642496288543830839760967975898816777763559534807993020111642397766497288335518751120970265029249318031764557033368651349698023455057452916076609941198899291330718152482321820252598319063502814442693577933529257571127252744754423510446163141203339153531453106535835643263099562090109350411397618491982082936170153066659739472696422785962894588976221584741419818824955054853092360462508160606177768113471216281746368508132822327601662505257097023288763384938149250278661520791941302739087316109318921686793641708729019734481002677923903969865795648339432619137928420291656612339209108840659613228104405881706212493490754135129032484460307604869607297964946134272929468188117438151995823422526018630822882415003221123354421413976821900832463223283728168599663236169587196304441619345841508750357372212298772297364505693719362096696924916723290308174466206054433458720452431854867744089062784465720323999295981467582643778624339981885679242400492566877426686978902081644709463754985926289612161639083179620640060869682465024607349768383870642493705241752938806554079396849932144090969355239628903465527354714160194334345598495106479161708861258054399443842526938395976973178970187455242476456142103605551132910300105251222435539759227209205377011698382617416283880639933385282469828254231840162310533863436162571289100287904493944797422322402648986873887020563922692573789214494579830236239858726905583279776454698533858889560278890286181701810632531114777577441298160342893646162861754434651604730202069083902241710038715917614216739465557202671915522463431491251744187185429260752857427589773587187162656510485568956685194765370764705108771719259786357992038009637821784494075492472555795228188063818865470245184974337037218945958120449245595069822239680534005097867558240829947333925911661118967128186803670864113720865969431971481444821766786899476878231651127528526221700049458118814120597215371340093095625151890800301612193192791931265896682428312428213299529978826119320527140945230018204698096419324381953812527945791573796482776247527827802557093198216005649021641370110142316736069139325561321400703546814204458808171050599256553329846026265029811691099386706491406822152039191670015630016601429260618380362768871636428606316844945536578885389263050864053902521720977878037700992842279291652152922042186793367788106727261848148942978882496490137820014325265466754481702438109331212405448684439305097988377836361304935103072741734954559962431419833348959108458064228834139824806651043770313680910127199499056460154581082553273084328639485057684004607271957896232648386047917098158766568052338380735279718259475144552538491576695229799657489119122924442486119264432226330822389130374775127491943583006114785295594864343634115450343474371935212429931382877674660443343612631853087746830175946000857565210632448594701490188208982218556579011950352542491932581367399440721537319827192556364491280773365682374035314549805198363789699317710952547579697161364258706556114046080957636218336381170962852349976256051571782934062697677027355254894304337714908440087201501985517581716383187222273784722441803360182593189655064231704053250785342931884118628029777511534666872289662140574388827077171354503811690508527151273706791072573083302702771827394898736863152054459014975118461070762282560568799658787926921600755530002051670473997683530062524272125640355046903229715501927397030806580368653885937518705994481477198723761228617746234217033817588551587886936597619768847306857100458005369970567350258327651634346387401101591642862150459362460356640113207614832471138387656411893566620640505153998240662393610585774328550684141288694810783461987890000100738447591262008052139632368357708840281116611265505875110574549804454638837759582872744552244733000184935406951051312453826061772503012476304415629913321926641703012325883751932662681083937916528565553784612016429789943186592492451707098653018054955456607859690040677036167485617725152633468327355320164905808492090968598523707159069255898844185152129020919820757069602559774624192888845410885959299190517599383422339107505632820341368851971311503907267350923154260040774746075691696266326001730731611183048803431516936469487005370667113875646251375643597247962320612548624291720400541382976620287506465818275407086816437170833427176585699690284429818578015452196279374188071276289168455075285382893534185158293691420292153193948152964075849277563974000147906687742294184793633848919405242479975088699916130562222450877286184693717878967047554660769956175965162560354724574986874779395571061255150668885521213852571863180145794835119378369914547829415688580179393883937529184021228371746905551360839761112766652887226441756331824646555464262146341200468283331103915832336212441895258586234452274673777347991126653267500523416168336102225101791236356126931702642939786172622647121292785221261963700479311252547338339812208077448548741401515195241653603599142611882996281095447341089109111610588222449370129404251099006206179730048975911531586291653032955518668574429261236144068930438727605306994758382262687666529175001324390633902212277129122492427137793843767381508223394449867131610250591176162178774702737667329953789897492995699837246658980490562835398336520453680440681880005634293240561792907263228610042773433823925327878630914308056729177200140719494368219176482079126499280041957505942798807054717760156486485652529413499829036687069954789359211853226965864224831220880193215096658835552355718048309879439026916634032851409013270901280088216549012866369043891956792407116311452843912747354276755169064423063633782135790193108162935980895425757688480572656605872641026591633610507482556756340865077832333498016925576568951741823447076815983966389374113935955097567220914298231586613739671793940472748969176028823779341433514458145388620462102929931568667221515167574409802722317565685426716344302533752417085029185031949854601386274582510329983303045585959581391787472039928528259408308921732210993965911949162954766746381581192678792308488669745258379216629682038923379336585435437044925056137680261642707794409308498396042811737059405624358603818523940205101358746525367166461530133176806222018664181703594382293922395069493726074059404743368246993776465102013959482643377595001941810387629433402485351363033195391053540399838712535831962833929341441106330095833156554765374099749142361631073725706026653933458278005283251374973210665115810382846211974550658279556957174787206847250030412498587060540871339796150102463099125588457775560208128572537693621917540451884874800027531100255910831774060011788307012147382126119631866364700059437825572513655227583214914461617614292208696150566065033081224168498917885852786526437251728214454698261118316878790777727311399291060344854711680585638600040953677729476998740927140141421711145114838252514645482477680973951797169110592053593032373165059801251060326217232207067011612483509567873000439187917683412305284822889340270652597696342976036860887913607176157128979451670682080442294632256006854675388005508366319551269150887808150691415084863481795009942134530899622321788597089875433613706949491229061456220199045862624032520211907688044202635646046485402084099840257906208536332714210949891622317174670619811037455303812949048517053352322391742617704183091417685460597967889613122011500725094723992682097345086066653729674213342910494394798798198335703977119829003244954276936478448053914130496912554032427619574543444783421943619378284839520010044583680107166887537757382455032376877093550790697786180976213285146202757565121405864200045604388149236086873742693154752819262617402185534160090149244289031810393884603536136061500520737864744802101890954682440985969035200699949291902124909617703292194792196995935679442993224607063767335896383806601094002837659212218730370233486247382258745643059825910722256164804219863542606613527428834766039213241339574526224384374713743256626114895129741378930843837759703749290833785510383572753784111248522074746022911316838905541264725160214210905781616997857087300362768394694338031965502576222678916661025334731105274696997341567915574812365407560862643708621703534446872446502182416728901906150647729786460034386684573561686986033446335981008979584979617163121293517916534689156685092621346771266667208687822409577335399315096039219784504339452194595762256214163013664489604008250360520475157681609453354238380580506580633438749851881042294103199139327890917417707700278047385449630371819066044421026503748460924391208634816327937025203303102125583028645296916925856363816293722494007487548735248828851825129988701884536174474946736813031625652240977533142347973571099085032666439049032455019432576662796082591579992366852851721117765808032318295588305653150798747156807791657075873366939682322324664057771103078349246369751837577206535776212735484754970792714587445542672649991827983649468973543752362308325752617054164890645548252917281993599144291825246822578173230573401125079245023424438023907435672167596644480618259688608699312703605790356087390805918537592796407236669128670298343101277897434820147403610538363068374392735122059291454577782480645361829177401957758870003790201857496224407993521074943394006119397032028942333921039203749338228831140522849468783652484181181763778685037974752588287738623283030069586154416591404198313524110298055723909680605874765445790204451770261056973600398054886111155310442150699452463226442573785710115729294269216553473850943280453586127287160996882097065493428383096513218622392113424274855441878307815025952096179756917758537734497852965115944629943143874760440587846944308540431305352429156450927015583512912851198076543508257797226760699658327035530705315849991444306063955888878330537974149037980534481240495334334597810556976520324809118839366921578130213896918720212894920026422818955034040553925487177935153740589147633428431920279347896709038894124724585345427854309820192186544853986903626366008362341276516481036981749882650869958196062474435530576225733466476501630074817795809245611604395388632707870807615569225871668181400626429808867923655134357330922959952780844919516562128511378566321579733374426030042952117671978836411351677198515192970584126778286168761856855665651985941981289633141095234078550291878923594144785439440385912290745277961989425062652552956335586924062407146325078418687496488652917061364195218002867414471922100536760627171515807663379901517472177099404434467810099178118499677329609517373460501533417263854105083454713559060749807839000390988813914561485331883896083335316118311000794738668228243721729115128396027097093574247294666277760249398179267634910650653664192483488101976676450064323175814526668291313138057978352328471758512376243599593528088338473121932240762612944463535724910839160127939182826039815852248599487616596237804219651308017689026776834210026246306303006085435825819703079871354756702716453297825671686694132694749351736303760523681446271377987064954245837555807778647399720027407977133247912686619339232034793027484429679065677124010562096138001360268352712361658512930814876586926880033870478100287087798556124991473348500075980291929189233108155522007974620512235382736581811704606694296598217158948482055338712785222376837777081473266127596958649413385666326817178575722757585770575794550735788030902850987407328582361248233476642350100156831377283615975405685869637062428865153763118310340291955058112292961446120246037170856501219088498194537496924623232275941374994134236582306901553728290338436895488334993376811027904305897868327550157474677920873303429896826118296766994551069359686803900558536623026433448144196865894948091645675951588064540361325631957958590396006600211958044391394861066553686445757571173482309378844977179017379294576352334091725693435829989192778138427303550350883473984645317246644812428001763567054837906873769836321043329958801630449791644811170814498333800468923173077948222442140044237862221367653601191710586381066223220555175640859572921285687484484183518157070905708421475686008711408131813375225487534994743498828204927274952924920196794020192338649346440896628822008382166966758289806428701527122843829553498961765853918705838206575383277902040371971065421780279424021020513849822819538578960238202739400526906615804129925267767399200580611521355862769212677940317304684897206135450560000768923093279146744821287739488247433332258648225128390794820110075438572403321304829826811978663895320095114522621481329245491386536681852595981463118641341013888180863148323775603831065382290501524919685475544705612204790840658299196870920534056681628316535197870642095595816473550919745519320917346233137636594759229837133646963943055617684433615097656916943377140762304998762708302385438294221210625255920977652795637677429591601999678502462474582580174429319553761444146700660466742121869209830653639841556377339940110040263002115498928029558993550830977468728413023687167273036513900643260002688033954052115752028032611390775280225548038947488816349015394891961866009763811617587377361311469291708101079418677431947177775333977358903157223415986469820156163171911785630906423408241164635001133467851769972199202680879960304210455048501112254140961870698741534788858928193516121136108331074044765631158901524217629776140410653289670066409745044965559452206116592710661281296847541001980027679126889110096372149733374351255835583437359220161869402032074357839365207330392160682125639291599991528643158736274817575781723414646405347556690907592761480671538155577448175570756094759088561302781017349363685926913607246299372684225563694363183100438889875505402304470608180639899937806029676694890316562543743727945193226796255558438874354531042040104114004067949167920531620614029780239958528486558983347247972823362762403856770737837505336389366994860451880588961675958847955260320668581642563630686766286500846410065805267581400912052868132513653432398419838431834685143569624849888802639978488224624195520740342795912393438366794479277671413956822114340312737328097349299227582211694247315640311506057650249505607982024898710685409422010738106047449371549382001391684494487373403708176578779657857445353160505234324848781841397125911528181608336605190578678021030053414577139864714361202645424936492478486180844106026057249503329845641018371502211188891141498247790748033870402970528939488308841012777812211913565338491733876805323980464148861792605024864774427485080359853869475121639122306610241175852705233984316083663034628749313582278788194427336516217929413939128858521634757931382253478539705566880840011231658273674281429268440959645736046524308630802024604063974188604959773089370182622291057813330775689989308608989971737224039140465312704777644706667875639932027268157319416258573359664827055714501593789791797699246831975190188176605728130243232144393914585339849020497157809275522174043395979128138078563688388930099660408788403655650670614443212260369448260046227243561416573981566335787405107988245957162778068118718815117191122307056999787189330529158756455143038642671424687803273945488327869536607111674495851923265496997926808926902280658360203499675877048071459758560189137982372709010834655159047092416124787258430520451008901511771896147664634140260756138154508077847001366034815367338425688794749934009163331707751013197488143704861932246274169245774011791874190883815404191950850690451391018082447003671805473092849919807402461136190169878069393578802788933994046060617528580833017490060954838699880732730306835824103731563043437553708912294628260179161918663948382238333149128236468760581197408416603131704935024720934622448964957649028921832025310517388074786455215887429682091665220781882530889854382635644461224689026762253304317233774211033868098984959647992315003770313854039286982338797099521349761630855359213721991786459358040520794500526417723878982293979981043932956207652664510736906924596190555795699411683459487833045020150463560447463398380309809754961869894055145686112825101388455598040441147121017766414442677569983675518592392719609739967355293267079221968678454090905953127968217033508294320269720400850435612947918350976812870908404706119067172130584328193713558518965532414484117470749063073327885612871474453483644223264098644250537469650258556435950755998041006367918925221453777578846866380898486896228908068504816927668771554743697840197441300551923673160171726585170135266849085634483843798676212893126521810669321475772740021287479941061473045870911358921206822114951150759436745315961554687253058725662944289235115781590797391021305916090875650990538754964008106153382038358485173303813709577314555470712382660867281669253305213673773435149916570479482941157124954777047103122249608059223162591521529459263349170462707428204694705127792525370761726798430774437728313484539318094177147206174217918988695970825782415450788700675599861929250012700643067510978670679543442643802473046774406499379880183574468101186269272332495352287193762071734285099540143134873990012483693185843223497312282464717248346961663856293253064425831971776593871029581200506126940214375177538984562551892887687016817054336309278306582751134329139728557609529207956903533424442536251193080200510001139811212671866752101186825694327375779986862133729552464199453322280763413297224929449314471122771190694317763088179102586256747432704313192384369011292223510871413439093814423604640578782862197052080857478535118027515167432338206144683063024826298710439467614366919720677021757988374603740542852876952672758143879773206965285842330489313636821724152784978490876356752447952464740676595656629861960602985101340624462609476141102623812036638603062708349457825717909222162354715590172357827701130384231967855798546227015168379695827338990814893379875475549823975035919224213253653495912500032079600176858743463103574258420967395705567033808339066393182013671382480382267155120614561289839987460587117847204556098427410871775612358817992375500240806073556760919545780293280033891178623512595947459763630090367233959425684988173058359347453618957404687641084016378307216200708171895845514369175405020565795236167943594233189906761720174304981621554067137804306512982157349525030470476269293683924706744717559730771074725888103747827462299942352103468207105809630486086789371605765424804810368404366153014649188165793276246758942268787666529961837712862488840528199463625582907859163064619216100285295039780540756208583078941981816712348996758224766496217109647987642473600120752321695509307413565307916819116403985569501711733819204205249922883894586786836397520341816403276117217479502681656580473576488738971655630977632402880597611558539155294217547964027005241040489387273541112013276272404516844656330175240046916098178653786447671155536124132570939858470445991011960211678570126186941903755798568710528384761985218624810808846445366602310205687154876928159014970564129663118062487162405571380849017644167302478630494350178950197614177476519347778084125971257347275562229289252143119812949435287205902699294223989404729819547714504876850591097442829866891363399965532499717084685116506110692531781897080029622065254146714909142782812903665371939453936571682396958960359769557029120284171035177576116014855488039284784758287931417346620087885357436972026151724550453819480845049699730466567472472728891698030667150686849852249577295003440431970472817206489102633617548041200600014593258239270252452431017904714398451986504445663808828092087576061746820712583018755941619341404210124913068276528870169041643302924280857086389561154811575462622717222467851613872928661202635824567474655749114903948142473430199074034877271821844472831436281261479908950235511229239430640629535138623488616095168444695695706756960883751385667079077010127128795535762090667728321546332433896828787479029734253593263559788498038172390814356034627417963431665487236673619600430443290018706740512794130665074687514156225337980685945987207345773317979962771106962471328928193998397295386934319709039401166113738799818427630909894556030447400006458261544420721127942092524915176034675996063363348423886764936575412835637462374326777580176932416044133101066561639951223912303794930641429591861025117539365875814804819168188160620074764126399158699047549334403774895817678530778244706199669614056120234666391862648683647548172991590912619373832313597141010353880493151173696770802988815703565806390235799122856088109218191096034000810475715325254745650016013191708381322909936052105503597607451581910093401196326528360132275079105232532843420937960548097826916549070116942272288563028574426138098291932027559076972757833163698266722331690936586257339502297547202374525971640151894588558014653019732320244048160138792897225345661546967265989118525520151666439553025965512042573347544358488595509282778600489829178795779204304533091701960682126632874029748261509672675072968056481313612158900567409320086045042235865137385438553440000668406112098437659051705054631759799073349763722406764186068566608191053713096126760846589942611495638698520489372094085126342457290352744637653756596502357027118518162966987666995817586628135892319250317572560887979883504900129439975912351117812813400253201185286315668756346526753804154477829406212021954930290467870678007953461571831544088036672103440760890725574672197634084940477831651319823153777574620516462770259131114376783973071076770762929776475813654566995060188933858710064383138135227608225681447968328833676313921055494291703895448647335754397970737135463470041220808200012482761664532332254260541903394376454145177802044921183279487865335768728172887370164082926528508544095547309000708862323116845477851540393066187484841026112578860458362722640758465314680456230907233264682132871842209558704807779957730020856708319891912440360727339940534681578171924564000611078031586112159794499302983896503008547173168358978447397010255487513299617819632747644672754992622295159581608584801556284273562925524367912532029031119815238522326380386976891382738615075165821699862751883277143517239715700640902560960947340859760219763373752120525434690464041217649979650202973358847127135572869331980524038514934309850703425182242016057735423091804428295523935435142334537927063300697156050224313807297541947188152884788096420873597193904070415435633797442156600062261840461823788592366632314458383351866775485625958328387274642615574706649319799639561679182772241935023026926592035652473168738159541620473107255522422367043862038475242938251190720932845639993533264972145775056880677068852115152520166742672088227626386485711819173403294642615097053370627312917065035380857049759525688174135516975474109331621030067237942949228845043523585810179817014652064507745141508569767233486822373337056895232122215580784443653528375412058855074686319182517006457144528563219430484627370808137813887974291782688046026443799985328792091591253398457293262621873299004945131591234875569235883685194239394813482167135489122336101535764481943534149107076785696336620890442430898323141780364730655605078382334827417844471184457543103336584140597668868178394536805945784052026401597274980918783901261149474567393151530320901804582518773699883233020560276932248980787757458965776827950424949416027935705550373928172380762623676129461747513733135566260985100873401439045869558112105709853532431380911203311211456199982883883776845009087617107612161250120624672458403398037931766775134740821817425655222608056080248381357267855611223576152030438819512276697472974708450320753489966221145991239833532190318000851990097550788307987741645157635680213116847271892490083969352780395232725686740993947254525569995423756968555099187760390534571344329192809723445598815428040330769378923989814087603257320451821555080074660808140894283324213483402554487628812389227567636349856435237007396111079388086071395574500479048396173047593528754724464625224749015196883927140673685130217163482674185098620243471867210570303574231227989955596827175936467066929975026912908612640018364426469443284498306228617925268913883441375069403657774420966621486685281964149627073570990248176397004706756450331019591346290256435115648888968722084668697114531387219034087201787966204006109192583300349513243713595566956562150156930717737846674549825199479838657432941834550820736031992272082653712542092110583694656308937410975810680669810316144558733386246322921419970561385802888523959524969106071237935380961764227019410228843270875904462071075401331579425358603886991735841380548229207714286002834425500263782044450431825079595197219171743307033877948071259172415652506886051440707312845336507378914969418332044581076219564550664242094966178990348427224041328481942182531552494599249898477305531106738921803277410311050467209922195693515543563687678730258421146775262200988024243880348260593008375635445690799109548984315399395885113544281971262045140686420648563885549063165043471308508957581617157178830840458669814744743352912653330541331989475662955876522209078193277357018101144261400180425113420968086015110804036718130429277330786986782761205313178994313621075675471207552927281065728986729233474549584602826171845768207371696526909756251948837908385439271193425804999988242750935849470188890627871430962898003577897054491595178538522107149310914193700296818040753208994809782644274047327204523246224315788560151814837238937035491189825620964919438599228711604908066246364748631587328852313511950156441946721013684573905270205115130217195875059797298281042660607240230263880887546993718850864539741554851398223795175332640996955687065085467984479388755561702205090979872917101865140218936973066709594539234821646598963817924587120860364518261201432541281429372911378484867018589065670322364292570344920756998816825415321707053772783925341789814735652682844453106719486202860245355020731207250190964373366147936277971389041806506205473183749928525762712772103287433432796640755318196037161898390499489382360908135942159795208764610293510886379103184647661356926274840852603997475415037758948472489351328922275911808251362522597494431398602554508239048510219544260034808805667388846983307858254735563040024237582325531752631302900398971993041117411902504893230874573357491997822929972611512159162213404553459372067334755199738876625910737336623258635209599057147760352028403253882987866885777609195064498064426347452637261357825589755331156494168930239593810762076737015708358368934980617046574885591325508782423297535271908287801111237170534789355215765488409149204053857264069176769345716121215418475011822981856524165833219515386653256580420844069025487125373868205994551051962563318233890067840266960483495610749156742199666607901801232292519481737082969217015628656495987171996149675300303390881949868430868873789970007728148333946491373644436775702097939011529713569565067522563132664112333674447422538503785150116945565616642187032998892604294596720760307625769968810157948637303105631338272481214232734051035266390803820453595012710871827130367868857749007995529490762022808673546788357939778859681649532207432952658558993206439129747133094923182807563065240670245461163512563263771234220681793667601954947215984139483504955361278227340225911344507903215402769287957225257866224245554772930505340861401855490089244496082992539699037500861523284074178834538140074699277842287156939650422408090221195588732117246006930711788196902550194839445906184296408878251101790957929538474017142999308312360623426041053430383935444165327196891557102001433915039992313345609422510864921378961181141325069957719626666862634463545933712448304641791948715032420979504375523071549005751794525973557728745783586866795147372160670724430839889758099747938083705784319076903144053144398154943275578952040524088453679821938310336411748539939825632974241992813614183033063517317729903994439003879178945088862845518130147730940913657086938618434784981884068887504222710770851765753000686164307034122040943110056811956741538641497215759033859282006349705608984034797355264025979384031127417709015593672714310645682605218767958522311476882524404201732086290568807151600890747164949039802661540129651092433642376584873661789835036148894981043654260638976328002833104851065630815612020186236895578786055610982430496534181454384905206297996038641428878460377820167507969105888315331371494703474376643180562073642766889023345460858120459840480652628475965041815657978809744269839416270706098925862553786847651249748672663043285541190576632859933317147804692226539344361913258432120168854717703134006335609234570797834962808989718390106995799774416676026538177935317142633812117345349104018258210280862371155276259766289112870238006178216561462139295679018900932840734255644614393010942918702452069873919854502658767537497823400026857769603661300691728482832687607697629648113314401432539450560658444778250994860286071576021448038409175150577094622931495665206792304791879388727877919810325796558496071705124410430842231194359120048684597031246526447999140991652461421260389356265075872615318464783663766920966197590387241422829590767835479349203465609879754607404049582319828695204152562124956594349297142198240571201270337070504050242480626021135033052126492611712005465966991773274689409343892102756343780609398791241817445813447226703435984301470615901716597183272084536362396761536098592299752695012754464578649044248274814696422356262379495659416473824480142595202506587764123295715415235427204142709839560891650737455737194624334728968809824458852232410847593524128219815394933761443238933897698404832152411815349542761328179227953997503306743479168495660000714641864559546833683186830891417437496528000514440782546545873100836211261751353026062467649447252790134630180378360037537739075721147998723253750356030359919764857967370223053592311487083069951393907861242743130127679177870755970373953102459868019012406480696230832930678192989650516556082689610172292950881592673835195748255194100164249300107575915133129883903528306093331014282277700523753545222665279964967742009178855508942160487559431365428889671111778979853363054910565020831990200509328294911852484700658748859775912306362840308639768872696484332317871466655900278798452576884107704537172808146927675568684689009780178705366086024924701177036683541952290857811872883032645014223603050508520568599047431368255479713985788689227375294291407761299547565979067095108144492848583154639960392466883812971905789637160855757341121419973093863844482057530267644800725005908636002742837701794080794125736137705313787196116279122599003660293829323604269432370762260483009332616584781590537296913798452941541438307963257276843506769746619767026493482153782209855680767072004202306851586932878043747185341959178994508165251903962214921434507194267987414385114950793704639264060377528669826410165248260445694469595768878817004736123232950525012319672766424513170299402831675560618590533242599289449583156287319803739953251766086752478318227943345517944124930664302487566138194330611440027216470357533483641267246172383342703444969751751233747665230160679627601503300794676781590709044589190569190133686474201732689316379175170769244506382972312520128728929972788248674829483261715238822743897932269346284556394089736050521362863623002171705696524826045531635879387522229353370060526846892382644201894564908477702878781871648524085227500996302469278963901520984706069992171285053840465223359689461641596168620700781761516997640268800734031100963475367198140625233103412292018430301793693097721062349226711171669081863273539450506837903765948566603146467730813899593738654665133893524371182019591234899806470363145247957533537148683653154878495715686218233088670866245150879402675889692771326348094106239712871122547197569329412354490757619518647889159745611750985611627702262388786206862069128268103495086001927202779079619707354158633245047013252196616727588584077158920008587881926731216192953167494156606544648756692941131295194336535986039114517821915213934493749223177795980197727377338596026211075854739579097887164043282514643845545568887451375974096356254680338584529546861972617043251633050849849534316103011136482636442748827680332014519514046541378337423979718159666769005562665471597440533626911001951941591380281046018809275002086905453657082403976269521231544041779995439407879735452474903230761567792542718936770364787745737243380456825007738712252123626285147204332441576553773583562213889403008120950998743938311568466247247851932039469297854832461801784697312188053828317592167681216917172323328125161464479261620747837176667153945389637888686724078869242586157130733700506207880436876147348715849829428187303237720219734629630364304430142669501051058505272656134096834357310245047326300870486794415726782290328415660807315173817011177914572100440667079558925116712990661793438530905248687945530560841918571167433729730783674952340644867965526514762775798161102981705629126568847139744665353896360790053235429189053963309956113375650925514111415319270186945833971666606635996717959869731337885052883440250084699944251872419646621002912298095828294226677299627644358140815860878707836941993455033711841438247937646756942300940345805030433690563180214140398031530129122413111872356414566861410730590007779824654521532427570842846435154657701391018030620058604580285122387191702414784612832239793536300630248691891753120414049044830021715966591266996338061414122431561320116264995097268971647810345986698219520185374722934451552872679944181299205858987844476293721225872234948725331768896781186441015006199230259794395350141428188048041995512308531960742100361232584163131189425830690946931802563417490225763790839602568813808498604591785305687414426349955124681070760288198680288814242564319195879277744096667736121810889365817213386536530924206552885201247328565023930637350243470128327600488621936312592403060639039416214601310160751619500119241578965651308057905716803032708275071441069465043627933784455179932466972569617857561308715560198276759014382718882611842706207537451327054210886362532177401751144219404310126242634151041293500935943275945524900198618613056919903416272912624214491022925135551530318696414795399434352837894087947634105654797124066085982006737613049983575318822229584997170787786532433910939367313480332341181939185007835585665138121802858304692629669078942457136904413687116744411709520303328268488208936644642244072468371052571616816408551246297087105302021551794246723613459279647822997352283292554476578225576684175240188867999611996485091004706471533062799583084549210381875571481844537906498149041239923252151359018466295970772518696391702166088788041791924471928379684195662971382211729277638465815305292340782219492978290836296536515242838366232543646405650162999994595634873254972328719859864859451235335807751575678649468602116483753703180814374169803592089726588081957116424036170961141570494779144408951367664082396990188117513311741444314373775194521341732930575229337024288122264249503225423309705981560924342772647433727202602683649312114135624475864557673389025327482667495394295713359508121212255099609437581556955394154389943739411672117068537525080955796879878683619045448806264482659164486144298737589922709728655584177476530770226698249500908830448933198636664886388927035205196703270283792564742751886592819892714140956235031566991051617064506515714535019583593246648027787062354584141554881875494781687833740809357280970725003328354696878435036517900058227182152681677078067800861833245222425139951570684347805395165552212016271849231726574333489723853707057422243989910028516396441137855504425712923176276073462838609860983902975481093395411794197014374529685016803526433193285675282370122450894858465143767080333476533625905930558131120599235438149863926555896061616409555965625354385349253313484186144464837943525627465408897196515605113737492572849179398795604634516425771821125381907742046106376279925388387023347550811709817093330117062414201746246140794742823021657823518226223362520137697504662836380972223905506492628768206345936087755672030395015671700938816218697492921691735433699172420344701704339253870367236015535903043178844518960737130143851197113420426179629868015237207993451962542455034107868200386812493828126859096171947083449135660559747323536233568667092909715669439796347757499690660253525655369772150665587137353066761339508012903056192892846295772499321442688149016216843226057761939946481397362141007879150335278357039198127195298413552546007191649443136848208912380952098236549624568867597458058808496641238626613406702132173264673244201418207225572906265839222974902882649530638596156609079279856264739822970054236260563040719408855307557006075334236199359885316139280063507674167052630917749670504382209476500620519967644743171871265294062780786069699234268835872106262279720267532143535789241019127086955489218494532658628433251567474273071969743486618230841625156329325136377280008630075291451063337536099642054042750679140667425293189390425227270228181525635125413702108453801940717138486176035963588128397198183289050769079223185072863028656758434885555777730508469997480080031294636764879969563010841750273167976707210336221426978342140172391846894006380252819982658527194085593946079607405055287491615519558197196676140217187450341625535855007008834368710964248198025310985887693870685968542558256379801393560490164674823467345626383136783873928638003997079938886633895001510857719585808346773841034921962166014887686692800173923310247560928593989659610316126690555843914307873826061172617071121331670717202541643982999347166703842796241382316655611672399406500946725902368847522281390092822291886184637950493943252011401189811289844293277856103639474655004369535199477620976421661509547285242005254753048991157696023570198480087128311087129331813827183113500884663072940020795733734584146605386602632264464753848327111776565753299331295076939195036597474061431496307514982564689654741367156044073166063228019007827217015434368386159768098030170433718206711877912400400069079629538104049502422817637046016683228973747302398297134589379206194566775560396158598038793258701235738590651306486230075306240739048624581220157351044692631854548003613701966685200271063274696804393076998443362957725164723421034446149482241594514066867423628304804021465066436575832899053693408377743160494324889708078610528880565513015695942083726350725675096343324707357681207428662580944831996288662186617057094972967034347481847230238702380726034824600359228169250983024215938142459003833209812566851317584559929357542957849638839436044672462882585741974952311660708583829799449583648394747647646986240161515629341088190483436338532424930351787159074558612989656573031318112372378319281999861345260783839858168168773318975470483310554750447659443611218664593061104090849677617181850160476724078243695135541112993362959404755809986206295306475322172078119865233614281046202191607462844692555017662087216317776644702666241210493826817396619453224511520468544858186872598043355278272200153088498830825453179422024829668649685231563323962672241892012260046994432671499820905039157305085823516424848582315011340826610781761931883704121798086669371388302336298622129055736761435342097723621799887047235439114406715761834396687944970731558841195725252867468430698306984305728423168965748658151687816976768013986746834209632898607433926788096746129207416944812654267146806563399164720117841741894291188165799563614749503542077736028634306622945118953413191594761473776399458189782543026701929259146663961612339846159575915892302005466331176669276726799287804023513907756323654372089211928504977037616009099990859421403139425930446276476879676533716511526165310097516357077439172933704606446111173838971300632912750956950287904515484784890397792442983378678350730339921752776762567264322516942418452816012773363323272546010241207848153155334916625192748005390765508189716260656315275618347882429225757641133032613591918333508278679473788655210146324138997115031962290043590176420795149001276328965479780704969987163780949780442119026382254961128101890748781015615540867445700191031614729588556845602741979489900266994820944343340937540847675831071669630008686052328651736264912694228211206538921914438647695439635705686689988228973423006265240605717024871497621478193086262382810690677648290697093112733709556369725698059405819299482708136631205167908854587029440225973306383935221043874890999369318077776216318353843123105469750421116731366762919474058527590981300233836528507948767843171805427950111021539884468512713401651178542499096085019060892375764492974266661441767177087914333360999565024825613347021317211445122951930300097544327980321850961635969086929301185774466818609101659609719941686484286204545287332861100828213057196519013743006150976226483362779331412469288971499416607809670642771370581586868114413813196382390561495915857068302561633917484260522631120790004095629307898261928196977928539656822245861174199649188751237466932970742112171418436212487618789089632900653007092914456616311267593984693439049036527723693759010132200882135400644960998181109659459351006205575481566341623418063825686166402755744253852014757742717850878450225321678356122489136801315811669805526121224614787171175959101805488347022462990895248821835496297856538012630426667317362168416226955716934840389689289384017002808020491085950717291650685509101942283001890877755610525482064140226752257997627276435022125897682576213061705587066429819600981063161319883167894503389895670900628422701896860948084986988550509095610670062416403047736179252895869534199870716529218261342391170934357716874155557604694843260311595500828777591259095148638916226558805521294334238294250047449098386957219808541990698624627022114173443925533192666288689825929162796495249472589698211915939133441317146784319395001044102433058932475833571766291534760276480861700707107995181163246033351586338088419070007957767330678241447791520860131954025975154522231076094538186249348246015135084832344893681196510093364237358126004157130468224709755097105860729127434104976368045123436459123211364655327558191362678399238324180600138944746705723131641791318613223251903511888398239380057728413553993009890558916989248380993963382518718351699896999419429480250492236054435260000371532471692394703795983866222540010452826879625316965912234408297374029730595430860758426992311253339712895361408086445317739301129305564412985615462350186052310225527872898833512304434513545836459468192969993936817056398669835377222439584375856530008817617995908539496291453129354750943367907415141657520254724937068401685554426467428339466654274347792986708281746224498767708640910870271010439273359349306612162333289739210183713134104829287079584054966600821892815603829236184885068162677335324888006080145839014709612152828612285759308123041449399922841014119518554305837881729272160214938550916012432173197457455073450290813648137081818998889623573304328173207159267400536261872064400620076440705183331938133192923686862209923811180913339654983323798625274192596305172693810993478434586744256264106806353089257324332361416173008941561952049348436957289201724278467431540849776337052125788137862805455397145617915960911128462683973529288824805669043382988947301756202511129628218264686886304641574305586447578374860014590081881122256751938762149263930466154029278362454383395749841085987562680635770368166359420691746642370834251238143618899588640437427000826272677382818198030264942309600239626373965958938732703264522358000875207036832583799208237192189733318889948937390208437762751438235736463164917421924688264380640115025697565751274396481480212062166971615943101453644207788974075298316882857439277920570301873589603270943004199433391071580870681189615905333430984135262846957618888293324247601605368074246205074883111450571643447814015294644547056426453208480393562295382457670377852443262367494301818534529400858627205978745397040410256655560273236839423669236165344270420205787541601849745794222604607616712350643098244249776039551505441655295466879532775005146297934150057993279976699722311629397482307818198632103828120923422445667476450827486569739865489447707042676153580822588099627123618912232169293299703986789622860178146624678999972601115276354539904511326254626841029888728795451360032315958822295816204598364085001220260474400832263027874065750726742013025104072156417737895388311287561565231990846848738930332033867145596202011956703452632825797880423100805459846762095298089408733747353868538249183756221894304356522119926718629262158003303104757960563041596581518539272545673972688037728172084129526545449023704470525152674876205153560505459274878976252000748876701929560718386833758539430234011131998603163899545884002083305225200016669058601141193453019118067878986912701281244137625952229512863587717825263307622241917118539617122970869108167336229535405957794823672546347138485433797591932355174802067030679371945881181023353237054111884075091847222500293529896751659465281198820588988978795253675856040906173834516195928360473217235328346691606241921023125689079031102107303084236611221679919072602664646635804674172267823816692762688441995551492185153475304317682230323467434598036015086005251931362814931749626633713887580204798391830508184523162307010678427044677318048695663198515232721486778222365896136100472679590390066973868074182488519054970930319570987660940673248904367448264779238450969209864785643434263747179344106350613351529212267851064126134873889330429887988970403966572601122049948797419269253659681065072272024281323139121820115099708208604443677599573783547374943088942873077429664222589159677585037223244315634131140761479078819741256809157427067425452291208223983394381368379166235940715591612769575855689510005149025436627899923726679586863449989136328683736064712571393872071075533708394003815522189273504839331697058167375005176422367382418076868368921449532533730047713491387098147153428668230635411182265402423329245246613059574042603685195507615350302297962345305468990417215107575830892451792420350290628225519723896019691427643084769898238352162877252143325037833409815692895586023814467650009032287980257238878499909367311771045739244576290356574582077507697168637381388802849285428362183193478434019289735213438468169553777026437788764567374379140332406562738277058168028780186510521747923123948145987225574427739035087254053744601679375362496937637269526289246746067734788813074358470668638049199554510690624185820729576065412293822245829447661450950421641212686335047612138460512480589713960676674310187987826262976178699356616637442232167457441071852980262398110153344141844045405237688413673990051880720642039999671523540856945115478424905692879409161071312718370959824709201706190049007592139878245471907706074686941149057371462451359598676590844503352562504577037672435306289046693185485494239785590646080663581187867181951456199176170025497495881290595700651982091876475242641828268041816901798714193990184913826938411994295420508740174635495055304767158737521414719326566097274939824607097428429111317060305446556522314792264177685586840698976502392728862461626897737367593142998803549127677547949017753308415185338065497323342801047332358391715744283959030550943755097540217197051626965745918210805463760713631684282310549061256942905521131989978263505822293007285015551049425599836012309957312319637503615290297314466805362583780097692706508648881957414328681552871131158134347801368705532764491160941684889866292829442019272526754353688428362887168817638919922688079694351294630191264429635691753446016013309050620646297261043237957191739980698379634256118417511577248845149034469274916609815091100726313569463336804479101061259580487646934639622086261588078242029598942218725059711940633615679186439235944659449691745868763405683689712792316491255776747488606580706318822529123478250659552517772211006600052223862656451059927910378627997613783879184223129103367867711548737483065137821089434692492550457065907251080343904912346899224709427092342327794892534441100117774446982015591107983738359513535755080740809485967327151506970518701345531394494763830221392316836118247595347434803829817709251788314038002891699286552209884077155072346048846834254346799278937660815397887742268761930108296127703580224437032331294938788973783980841337250780380235874851965589305396455964187019788604013423193070047960679712416239911526675104016679084483192420288916425688043002675840440418045161135322352339453554069491476127133161169026874361936211613416078804073602014586721913803306876686459107623192678795300555233938390074765330861136612775621372694383618382218434802853882881394261554806169583035923793343754832967649711775684399275054621108053666833586628298980833049522097449016796361392600625440805054325561763077279785689678292297126881898548298347421950040902291422540817908252004638046830392759495409655691062041247874668359076473250074382419875202632298007106083911385023743880250934465503202622042613330780957555703176296314257679945988629057697429845102999039635823166706599151027180139935015540827017384620548428739978876159760608025676296709436530653203679019889543492628236345239228307116274340065741450690976151696598297235088898243666430633042041732681782661594288198705832141257021829052559266194457992879810823530344545596243557586827234389222026976723639568641540303585873742384783233527257023568332523997560335005220517613107327590915272763818636747792679875615172856707194076726108817387553499557191754812581880702308583780769193125171524843580890844579538176829933086968710243289677860028573477424011967529519757980553186417237162711992333906604221715368631759278893008046870539148624641330946816945224123568490697017660403090018798150062079002642083067188099649633492702781453794280063344573187428029221531192415913134198092118838267156767724530755506478094132218664885113429285121532087429684785175027627861141225523331577299634632041902624744438147953713352922071463453564824945516213784031015385992047263709475354476095889915017354385806684852824245283414731178815209841339587237899442900448717724045931511829132158437611618123347080976531314385673887659295452372399589913664419131890319177089492642623909056003635074100756236261913574478399198587312092329525559207947725209238727112490098601831330186666792381271944758277361347385780391361153511536421828898798511887722679060389960668855995520894122264588153482001726133203100842082739007938257762036549556869640841994667539671580484948195334159046486107362536321642227001179758331055840317418424736255641836892658865119248148783124130934124975341753860737159122045238613183174584315845501455668762467170510051907955061453344526658666913423381036533445436793981651327270746974803477969675992133567863201160617678254189370572685792443467557597235300747016091096873640904941750739168310676527789268350346469597012119939306615870075594603192476242339161917398133971004173198190080324403760164735602346802630355295461792517904504766906406623624392029093320501185959511035109094125265743854353016327154121808086019217069499041500171915538197835418747330736972830330713569019416163581716125978674238934627954845537224417223847118436418365718604686660493591436903224345486625903984614927177456803480045638520334700819707618101465895077823399186422054123738550022643870765166163871619650557497903734884210449516562892839767320829224167552984924981753803824788129399460869405442271537072026758369979864346055191502539254358107814970144233626931555022380637550737636696867047645171238070765658254376566013740494851224340237959024018016488497643890356974423396672780411090261437454031471410006349033600971107566628583467263817147535633202534632152334335514961855187598932309521711210987451493349727662915591287077829165970007091665994201720850391062983504311428430372724890084255276562338524387111508975048718703400103667838696653781923241948823923314446680003748521008465777374492188731685446298067158148981630956544810350093680523754148631344318679109517199763635694721828896645997517444375236305805999379541647496154985258322785757350929189692904690581721688950463741273124384202502249877474210421839190586828784241147615316821075685362204141005953238470917530807383025715466617729956615910124103402642424937300540552994162964515699166152162774301090411194713378736337285457936301487956052817950665604158476445082619260385944519519279552307461604514422379963053338796629634285906338825788878582930032958568685147338534843132250627266802970652113251809534460529580971939549801359223392694968322584254189899779944466764957979536399260932451861326401741605211358829431783747015347567520671217759147680357239914477933191952064923144991439866729747474033920886140846060103066198117415270108819537485061760494702157980502086102687627458815883112856149279101048148470175153797120422961660426817485517610717117600078407631011342641047476545783182481789755242209757761998282863278962967534344741606474725438731558635447875682490227702893654792850982106928275852827608884803173578815054196824825326908795076552358438304932664276379323975269889013436077305911078892842039840276315200985322129921446478775990333993189400963644118132463683359613849297512522672785776631948043931586614679653686929354991188400602809589637771523629841770904426413482100592214412821054765429848172339564788216646767315110591825813920643426576304996173056297524500490482812071906642419972932591425428800461402389376410531311174053081026134814574174948274671830999141893101281164560782332256773211888121142495648006881112484406118373231603581544513321864377580753545943216065688216590063953702675394782813984836113164355246186971860069149079274447960933999167140581501614624128546264039446477401328166665526630664660565194583694648837765506537372728971191075362781294726727577681163273679578030524902632682590358939689199405024384727503882002243901752583711060630040176229138347918428018867682991456143154337732964593478179944748962785283770150142528461649213206684727146132195026910866510231528187710289234988842586391828752811975132437202709797887544314841318776163909605876797160940366619871557986838462763469305291963469973478396272457555216681020831755244872383941636064944755195744446197612438299857244236070795635667998653157354891618235641055145150232700319097384601912764538186271051303471599206709605728362166990752627802648477461141778070883366715684866520306238447443731262025465839903831187024495684047725155700830396034140529370686561197961237052194714118914127646647533915841885085542780858722004918216851913508154822612399116301251343865125233817304878845135728885291393350489490914725338254078615529473615194199830397775779259246341029155384986836396634367700623008693122316251770825986859739824465212152381458525937547635138584587262592461720996694946789829433449778647684665194091178422889328037195926115921915578784152490653729896286634450148235743858287742588052030635502405515583772673888664016308939096628077912383002146708931398378929006859983945383058817843372143133211605464887240157562249270583929058024706800628045037775206056469196804297084394407570309050386264530610426122935456839338231441682444790107283114546428758442747604090870564109742819079011531791130514897636199786929298277728269511112985679675700200168462961635095134193670085424655089410302604121415059470074409041855749158700663918422725710141057833569462346402574705925009132948944565264359967267656909707993121505335711419423580420307726807887267059780804485825066669810276361372805336338763916142862296876318760804176524779685841274851579514245389968850022220521641556471122186659927987325882372917013811159640014344755144051716044305205686261987378903526456303200995716213467510352949797773481526014260983971464780450411349403907228312920231650674157078955352969305269117987442187764831914194986859878201113322208190741112973950800777520558997965587045923834099789044737041459718430345948991449150175605723487998728121862426014679137761642442741718750473542016803435025172740580351698827017246271638283018732458059271204485293814821960661859150606300970288989016384447057722166952508922487889989797560100789629729240986652775604252679422392020347161995899139324839336244353867459546626207802156396879297004703730447597285668235299907003607549936376574344274655390875407534856555262363018426275911819122399185011513587121840790320698254290826012852763473382841458767713831537597173119254289535556047256081034019337592391602775968992474664104428843123066329847023201909895048254084850102608313374629746062211136298633700090982444408050299270692501370629614507018344467512180197892231985858912981408647938798666137828789408468776448633856424157993540160325422817402017067566230698213806193210486077174754777625741206748744952189644756211093585736597602806923553494179711152084157884917754351099874895170759824826415126817969293308815295261383534574450238268029064404716775667757736611905074459628309995786489253101013552222306275682929521188041746400048987019143889173752221915931294500705487756066667599037913662677720642691575437701813826642045810069616453082216832710828513180217423804532182570860991013888205389890578722265065454213985960823144836920926636237789834730334326555670967070080854905864834311251574517608523914491671484002614919939991070474786704893674082596192610009806449724979639485852932772336464150679832193074963959308968638585488881018044022063062576741870787094131099629136951794808471067980262040993409285566060278507058689334951098856366574023334271532425950268474152317726501691622003105433794558693971009943289302828383676347128080526373665810824860802252849084753142979836090353031063208735875610026105673271806426886963331537219741134556007453042857288271320387389079509670063778212787004174081304340089066052537200910661743143335280338691235115099566350087388746657734267726038402233406842405348381105412130387026280147858695815986308365539217915162508410436090420688809476146742445991027192927948344641829553643436832348360143893370201992584407872253201206714381126921820245166084403016176650511169154010932866224818610968601145480147812094875108937408388981949725545074332012724355940772294582170653436086103960133011948645292922169457569651475345883542362144863465593108881977099267946754626084585448793258717559014124608870928594616792800415633948247915971269164243065262880438217489937611794906945215890446133259665563842386773707235864532560701083979886627833551678951447741693778802274933492826271825373760812642725359118239865892193857307764455326432956230572001724400895441863179351419053966606142192220913109740947487411243076000002284197279693637734932763309419609721595778563742429830869840444815668751530319130565549379968205339819850548492728846774977533335322157186211172391698225872922314444841902801090434478467809175484061234705002207254970411840757152468170065560854801402046322342769657447328960232671447003633855441452425045239104806858709827914437493475961989748039336687640405544799932824822283697440895928192190942938909288908963799843557313949574642749835074969547748540665120464785483555916888692260619686369975066024955011627497740253494908861565013895766036145375614014204044230956736234399373325362889246332158139217840202346230883269551891790630495334216299260902327238461775938893777357581416953698352098866997599472558489515822310426863826030697902080025719716604101620987721101696875617204263206797730359813020745903086363062104544181660115384174329801987421879006424164560577806649406622151504277889136650583986493918921502228747450483379719162182574585786227284434769407263457407619511896124757174474573912699700503390999921840263129839400707871713663156084919899289375198251460353338783020466437214529890357688200067975194584291477456344150183080632272919768085143704477051503541329609365768587650250120952774404146289126072525619085652351273290941842700244552204857343874832182474715857016197138130708361076026457887611587624462627277226968620471030311176288533525069955348855088902215129179243956949461185345874761528616166002496745139648798437786983266581138249598685095034263510380342684514071906995099469060291405295940774999330963621027116406838961184389604090284375134757692667533345190625678856471239125050673164314268827683632796931131141074997900448443685234501551447689201717938391194356471759154132522613762175200735834077639044310581972058429185535789165803320975688579344190522732572114487491571259517306427885133405928860218331034190574293040226665517138772025344936250079757168573219781454156705979073497469866482381429780855604889928057972449255028485331114849388513871558039785934012237362707554687123077915083821163431591273083570292127875736418447482988321818040297579967614191711829268062991571046321422270647337613140384643789384624952742471478239109359869748851732607364015462175734842212237345911253901562484707706691538516756242241246707474051665705873100752140420107645056739603899254059132779254884476070615640656330686437679233558208679427975429586830593155481363897973787844594097141460389041661728931126336591249643326649374050383657595716194218307264772250929309687547796197250565630802105521935139642252919443888168279468261818735871936441347812974825375458348902687948547118009827237116457668055599410043900445909261923922670428135912245144863239762222027797466197197283282303351216235102979854113898044409438144748993911025859200559541102588859745013513403543707065386959619702332258102504631478461023177945965960145665591880740344295923255539229185106054246318044365817446490562416427017325606884140764939595852721407124471130718240500049737583413094614643785722634636627759004613376758660918394232591430357200240474030930995673318297030566823188513760566597259186208089248665892846268479103781061633466987204247509463745390488560222641969850121024726459329066986913007422810735143229813044817534641413722240063114621377045429841594109682049818476434667460496750166780725209726582215739521771556310712362295394795290068165372617792942530342910462701175893768233768602768036307875100162236119685077272288107561011154291419752068933028757111469512469510696525764398141278093022549845169425702326788577957206749985209399989001458922449376860913305347099220054309178861487508724037603541947304049034113439827901976892586460034958446972343241676736606550173637943591189419047702150298944973110048221602535069541256842491521091744728739610223719430689659241377537751090969744854075230675118731814318030071906190996722119437857006380562001444556069212488492119357906988515677300367135945915093114537151393656828901955578145615291487685014070947731965861908178346788320175489291174563650857278746075496480048286571750757428213037960968380110723806198549698232574678860390246817728802781623854308519803603943471187259395038264539788970382927444432798998643532678219165509870005061990665892670974032181715046005577335029178060016913580958938708388916453312185356746823696573286448260651747575412908291487909399981653049990350967794551228413386421065924001903046802930366256062679682376425518081182654655985348268667302658108380834215888275714637068122269821605947350598507918849524523076104571430799066452450098921384874406269106652687011197243538330665123521477252244398685839074313057099270635932811651915195682554098731236924326632635173672129950231954664800454918023877431072560048228764516600756899243869791399801915917459104428378532545409920684600375171237475539423149959427180385862699927407322036193149331134356040765637691391473718792910748399139533973894160757132873452901385005436670458198916554907597430120136736484741072478544345462467201893592373256742058219516465879517066783882828985378444790995273860866115939419898728314132379893738752576878891498904878355047539510806615321767835310565469279819474122106554614541645296774719453045851343956849316049484296239828506160662877436043505365404537252403034494752310725482598919570145233790060809789598435008259485697226695435389853176571674384558868336813338571750091684518090151590322785290395420023249750247344071612769432130972983578942741762270699481808172079457275398689123396962480980223939581492186703121983675778086652329168991023998599749630443164879060864622530637758371234908329037488665490692900482453959756413889579131324114216633599040719512337424852973472941925125753325216476741979635173221374335672943880017184248299553941967255283420238258769714680192957863239660798070202487039468123576957348664632567784638731284280067197571190792596566144578372421334965038069918464485508459621046198270518600212870811133334528106209522671226739067678125871708956021458463713694922765047727122936267887034821024914296793601819270154875603447903958855938847086320937971011312682271966132779768881989519692401479734268593542072827263971710162611139861840651247690248693779784111937394106599726827081810368664641944433964070471424983270378356800396478666991781305550057202316639700991423246508409895228495144905497231350249091404963307922463648542385044376587392098379580900935460568437145138671522597319069405951687349821475739715932685029894690653898765646473116131479672445223020206770738588768004218611370764111272818052622514904844953863911091554075286832683739190741274084742342758104264211559703227500548131249118119487809159320458757841947904966329398697327149834642194071581964514692311294881319878562191433423154205179693197622495969299819820612065086567472145420549957621444151183025950660787789242286992838057339740003679338814746669883039618008013212661257428749174875516515853683226027753402635312168803292460127494891782050263231664941527758906665030068515236071438881533281664191006658022472523917732498881174130945833398527563292489297359185014462856333177908150252950988305599219719855593336633516177228819589047009522319789623137224003119290871495577562817759692150144886828575626694546985856033010844924381069868510891846495643540588943196659237757527247750818237984657082977178404056165055389157034457270661683188529963779543098998258815177799155021183422949378935741310324692160816443997231222328818331423725610065954286968717739932169583810933553274989589154250079048190309258595091948914745494021431668825032353887854358815531607827064086564362686091873874482820815545260166723071280345859541028959756897426768744037157850528223003612765100155675105821553155825636903258472226495446469928891277186146167496430986523168063636261261881611652854321520792962459202495333014895401025359314705375308324566834229553260742630743502265099441656349349046930461143448452941962538818738453201238943707980387186991802156735940760608459792665677870222888465914664461373649487685677793566137228867241095895305344192275920482328986659371317763007490000044180255074434149649512428258982018532888409620444422749627569479426839668760751401178495052090737478026148625993114418669658010131844109984962931803464392625948372008706934789622137337110760667402072646099772762682460833229326416051965302576750017984665760286337419640900111083943934646236352411571908129989272547245234665024652914409691171659492435160535661724353943370309845086495810283910920818060456161482151632124083718322704426381208619080489866287143590168654020492312383432417411225789377617613066594430249667964662858134268377023365240097315340372499006516826592118301131227784060891097058653233144518775384553859529184720887648565132443991462560849755314626391696056853489369303193110669405084505487391676391718259731685223910978919327024787643567741215267899006215623876196929661009013485302538290822557531985895473602529321804544890883024554812333792542650651709840764258272321232331541762341772976504244237747222370599715584570304761358468334511753386427809978972837675470387326095731767047917281983330391631789888180497483301172566108688618823758432028630420363101313345552279184885997645965091723923437556503648667860320932142887006936151315838553215580822022312118325751874327031985555004643258988963295415469689284127742410426215604385804538674788086412673352827049520169946515866483501536121641844426840428226329129781239333116608587321574015602666451335765932744490905111481348021181741293429670148472167647769349451135000816303742569032461099021922556133731720487652949026488642135635327109154818365938153335666893929951352936486195147218832601446263714956801835357558624335123276363880712688521805482598372179891317155300127566506464704546142607832994927266527276005099363721637672976695171387094655000420561099449245289059408884742129465825691161497674863710528422140857709424079693562506464091829762326520817357387168500492820240863450562654607760101929925479845869507370679206313010666160025177346757916680238219415074335905969387288215147370091552465137281629524283169574205275854705639722447084963980906054831779433627438589309740158603779330776264460219370616903270994672252205055306864455715727382703474380000169239966140342663724067936441931447243289236048510223644081403299015424279852933953331206271115550027503766374694013562723444134430796706449483346189122018258484993559046390633711869413692497605691609868658312001393366208602107268230514678309626310494645086425911600031847363849378012390691304023771977084730429258420147774931436866096014823696922888171397595124596855081995060118936054540530248943877605285496354039251302009014717733236030158619264218825129763297097065293607863405069468528355140923138801802060723955940841325802932557788922564471832525872040402960298196772547879246210934483366452076071703836248814361002122704795829303376067601355862640696958973765450325657836360073948996909517127107322215981684510025603692649916778707174993179059907823503739008782295495001326528734332443634291001059844371401694035695820114186002171137732110858679357063294001200860956467303769724004470157585119636509504747316541177555277597948603316658941326912082161041422242830232195335367648144971083414710245851394103563905296417296911094503946796361690810152783812675789711361038570817750790581886049109501344053737984306285367578791227192439409059024350104537991983316511627240581048931004022391189510570483444724591932979307184663279336583633466503221861596375072741313863758829596119367041913942939710003364393880377959349659788157253674482833584428437133067974780682777585363671873304004946700901644605475589361214738966490298479830715387975321683496819919619293046936717786434229876372927568564084420398588019574805786937980987628794015629326625092662300968318325430856683188946799921850232805695917112000721190526194712011685567952121589943123843595901386388464176808875648444492326607903002941516771917577968711371866235482643263796712441440264923336068594617208278651116649856006337412063348585477809162606203548822077520939484372268061018052008868115139233143871780587213239062073259832828648294394624620852052902088941415714376659995784504031841405617447846146972629300246569114782907974251192376641829979805286028886203177849869940560182966497905079820393004568966348054737945942635028041343683121117009145401660153321128094502698454720856726545749186455467297247707881165946467217844305945435412771753076994685876045641406977609133447035249533018444477120873578006027268309061130424896226843201805512698290177860080042698030751315873289401007609838346058782110295530697706969684041209039060323038424704766945963999987017607359026012039100398510791776946242179093817849927681005692301498360417027726833345454337817480117311058204859534654942341555504290388837076088303897656529177345772720415655098393759175416966694265455959739079470172431857486216025392881963920459715502189185454509509522442592552613615643919786979713101276485935250461088562949635159857480659546593748048354565314862863743249354546973759246366720707415789915491992011118489763320217915027214829897307107939658598676569990716873595506339798217148051722174518541643309799759338954713834512283939587634380583110701993460423346708272027043071154276443357628567211132074497558937639731514678705741186768679260521188458518410273810528016302123466744418774040824768801976544996991966255196166429050572746672645254919764984857507812420749580884604561582230137920275941068971028055353138844543434919195332408748168189961859927202930349953753340487525210784758240874734519534218619147990928980478969094593350788225630339211976556845516940689968956037385443784735697994205693566177990339340220785624545573640828154718959153675133845934201120032040247228719536905528575542072839098908382425001204928719648792257724828400484949581866164972851664003343918550254873322181813301507858908123278111804001660480481509845716758546927917501568063669577706658248333353481363334217761319896002306436135499688957941466148742855758850247757489625203800386085388750434091913662817321708645249276940247369043011194901786067174476368736685840659719566409789957631285878462255218076246054382992098780974822070823422930316802546592305833933092531952512497976849558226910097897234185206594376766334526755273654445450023309335868470373077391689753389143242241555310634452076739343213221063464365381331520565780567342878854257187068566129191654433398189775090563526081779634127108619451472062382668726953542304577994785396203003177681602278540031992325589471780629820983118845509855648124771290747192212851947704715551808693447315495068242361677854796058679165514071951081921283195311045462791190996894787130956687813210873975889729313154055690885902826259477789232774416436729228066810789837058130867383926886705849303776871553428377322131457243038323630410952846868923374229206392344653486572691770742706714767382811300504903733650308383281828904257806764392546162350830464004715450576468513421298405782503600084353876566748517829180372700893914712777907835168688535729603055520708507960549506308788001120379706658436631031372125353136894144386708079289060888782087864294903428519192677314582499311911943913453482878594527679010017892084535562285678104627185673441824160810071274750866428150989859695394143011288447207202561011005077148662620471758230534149648999978832696124082096977160534377689883573610918746198479245188280554647813598167726789998976539268156435910096941173986086231480401308834114522663320645337091059634635347106482769466016929007529749518672679063321534159843020009662509480753048242437076031524839787714873476416395683331510180968791538956916913733169400246022965310815186256959221178451369212368569485978382505134392348739522503789024905643439441292509074635048663602516375842885449218512538240125992783724564226150842936301826832750243842444711862623480379053720042653974523960053347065993560780281101407658248171777616088163773891747283475553931797139486310268741530877784560885979988099653001621862190682313512602103011402022591036183059246361813016676202381986946549346036347630911221794980316836621880608638909897106992144022009605935927967697285115802981892307759923279017324397646797801101852845783586640364466666816241058656074917604747194187797812086656268807326070518787096725423403677766782623037825180026563948362775841665144892968046891034611336731415309723538609738329317475496514147222129622455705634435241332283144929847359088055411031745794937847931753608437090426408608807276294220447752425843256297340237614855112034550700165727910044423931925727998300165875436149072455365948667158007585647918635794003186728877576005068482513580932755751211986444666466216321912885581619902335468560598284686480196215001142129480303367840889877676256886759098601376881315911211998244413976529843691141431362496404022262034099423188293586010302478199213552844780889504219747914088922363182179623766279363887931701033128075810203726389629886414314072343628187992896852064608474105714669319945859144217540043825404062602672486207832412409013584589344935522964506080302496060352194103660979644021546608877306716047694851212025499583060466273448133715326501003852572958787869414392101567173031524004593303062891336708858037398787463137996580719545153348048846419442994840095118283062414680923840939249109692791815029104022168027862795180148181726480158853745870499260559853399919838232456272245859607628249668322407397464082751610513428981253175257468994998547505869838371230032570757826741797787211252363300124375681649770698658566889197100627836128203001321291324511408940036869566577326451248835710496639011637691925490760644326256134641909766736934428218543751688448094105659418107519993762256428978454949475183345870575427897726066847631631136243815373275489094335330152628853054210581440218344413679844687680913836988542505751671897123118222650950176872081694023971152543517374666295788015615398283353105431998514035132741322294884597922057163469080445983496995260023985355602382544494729994303360298841311075277653339629113178521990590997285857230408357296787959358351230346022930334442847835985674407198474260453376248964022298300940917518910652425894660367584607828788155070158867712036935155074186531929497285981493857562501435189349570101463511553560322247365235816491183319862885178922309472416154713109920722211721569923094527896095269557031741937387237459800223850493306768827252194630709441090775646969295568070611472245970380547466448040178501425509708492717440945012855146200539163563464025343499153194818374363104712488748268481832515814524393172336088452199025341766464157188519218660273819322066071091836086792770273561419022791241039136732381219562667765073343975330441747695688832247929789508944236602207957478485714350359922497187325618953432009562817068217841944721283833354941103820640231225784762540237720405165015154617119676869008825153158969521668085007687943008935723869284725338068418144445282047826894820736299844231140183122036592820262320219138663040958007669525677031714944945139775575743661818132234212153075851622365509130798878092880132016745870437796684759053310978038801299700129657055367776756460750521957416592587724340393522718977752234890789770360858857877495786869778827996023950260520030406910508809117770011750716994244664613086341372188536952829818345340026648141260682489560214480183676385996812687865815633173809765566817090868366722019698042942723873340124737786777588119322812814525959600640952529477677263996825649846245475757106287373456446520556680250325175951528272905479333990340000249753875038849586219075669738664884303188936902229697625879984964376357518919512575094085415746938932678606168260503762629270628295081055364740388666987887604534080006399766010677191585106532422419263402453948216525178749312717075234348111839339744165127483882793934597884480037438605484102441256386411315404549368842963920221894163729740863186783316280360601685436430291954937451530907737777641960612452298997143399405488695846180696467699714113359812818215853535064398198402014510205194219284459866285212248142582432152848994241744771614548427201480440840741236614018837861145144183055472173193290944247626938852246809412994278112990222662107445762761155963069723193910103611861305927910351155156907180866727843180376480283937079517123917533549556942585269281873643898913028600329890145901764481922700379953170922523009564390944283152576526094469995110250552568262545317101483392936566497685225849012083711373014482103112264698516183849826656864089191935005772168683615825580244984143881087946912855476730990631515432866452622885142166898384388188259394677753224575513411814336322855343531338103371829325182449139591995523373369243655504849861360705256774656474319168864832075688960916160068974177508317799352796944582024953508977728302838746565062343953561178530630029562842816102680972177109162600188110988127493604225215525507482378988979329438841117462731012681636255824010425875895818158412693408991338855816768970961070744993780493369945816460793467851157283635742547983503892968787069422716910259146395072560810462263442979184414947049720041893834078987444464884517212077138606976281207384866075357152425102940459778513655339281966900623654831972944558480898462831676087039334507788280552970894964368889201523064646031267464329060672724731009842589895973881538454183725568014650701141663942234936042639799933276034448688311291443802106303801537993138719449093182490391287024764760258672206958510723460836618196126834159739722602071071947847075803769354303894183447606182673116612818767670095117350897230641218354247159230567101136909449708591419034016399541776834592074283736375559835197442880339499107307035267954952931022730936204893351606898467517730059945141488335859623337661452489014897873840512599973923281607994650049449435335555345525858549169068911064134914520307985047150974559898192438567493719139915036608694433850696322771365805620596201814600931200475935584941013051855329696186309706073674383553688493758952857059474484837401702890033311256982947864683591618672819820206409057416361179913223813037504810202997196116082353739494633870863589803018483319123331541300768289123750284502996619855196004709940158778601291070730621376436915732096323590260315122212743711260271700528705685820276471924885191303429804899085078570946804615431562467832162268906919554620407848264892195483102300868716924988313159517762464324912027001263949346539193161242855322059781433399844401829260531967494634225548905691894806582799639909039746112077713548887716731034315615039684742375309790456349714029089052319538858094662476964231920005631739817320586974051392915088339434716755255912240581384095207500950320433384303740166614838234353412386244255400543929092181156070881883299597132746479027853549717947688661839013722285119513189051201840857764088764677522296728204516398274370982846128539221044234756414244493153281959967539190656389288778293977705889019846630303733523621999780764569427247989802047560995511043639615007081733356097515014340491194510251028371486944862448545029287271579485631769452639844405626682315230851951964041189258720792347179098658005340662538279013150397076808446288237066415174569650660069876797040301821600514323896015629587709170863198468413240009164140765330322990673853069923726746015877956061229492265432693874558103606081850214673924195297763418752427603589423369998258098602614104927857057902315954953924564493178832722117659349277067289277943617915898591977624574659397143743088568370458616547822927109952910566487524560669812074491375522109547890769614644763008273278104241842350276986845805636532854251110652004536429124466395083152544731305556062956452221797233802190991326956181053197993276241103432538259818256736780989882043395769605422811203543336884915027027594311444137622818410621325953199266812245204730841218522152446536020141574534670662466669705433238109287529531233710546221640795103990758780844285456617343219377789175251691187689516058249119891373549134083867735239057694351783892308916550784895921839725304517402547096070712762428207481423319155030884091685227501703578078436535042424354577035787452976879819583671048431503124642285208140592002554785540393588715748380672349506428100437803676666585029928503193234027896241499939600004282431049458552248126103811013704137504509632698351690346231396765114181889316478777879114033149223143765507277778294289157496597998546714036404059217514227325029996278907374409067678012370115174929064740483583122782087877750873239551970105905151836135684254982365083006986877379006621832646153247643857078442035248848242488525905428482101213970784883857430468604897606554062277387616234670252154136620658847565735325298904012091224157008914059398612258022983518537204022600079451182387059180957647955514099433820806779406633540802140022201733683021959232523121045181236131548231676175043517154181098690899489317581287939954341482926613491074135074281414185154261822886034887269262812892960046523843699856273255900988404323075387371772392723024853968525364617338947914505066836715261300070292912811832347888298779158152408813462692620744922016976266568146264586083682891546507997866255144237653959013693850999627441974355669738819977598282998614099356645304866990447602006278052979392511641216549453260626069069186254816555118440483786179150438377411207679995708044334743884632112727035381185776886073656549462354030307153464063656563784000752028037976702668402529196351132684668830663201415691774590685458860217901886139162133073239027734905662252882353852647141423685746439243796769722695135818300479885675927928591426218672042814716542332793157544975660704445602917476950262504238139107405955566160342836988513576266617904476608789121148998642043968865913044895046239038960995043802732658399366051045987295042115775301103519094155783011346758348116450296392190562358666198959263970067631515911505009201880702792293740610927898366986962271670819235568466449166951848621941794852157511522541045379693819900943773587758345291395125794782420009869242868945435212938747332399756742046896647197925497904943310503818033730217149588819309146973898379800079732943338541980443140214957357593521582615964261510938382899838774140375300678729212692880948392929560263699930464189061698590686257907089590768795490937188168611591324209775115724704294318799281896017211171056998308058757283970825112659980315122024087826924596456257556836817351512658483593604981622222466475440856372919325337534839363667497552844046984907693531601139566032049339421664073923045954679852698541905594020682288398705600118808559690448480491212641667077250602593860535316237604578746822476377667523078090226732010908109996570186480676940210482388373140252365768261748745261649698583065138399071428128014722455182067876186848910071717868627226194863813225395747170922778794212194391434081978209697201936528480766784000220003556776601687057796457915241924723956244939011533850604506759068535931105269897456452758113353285566642983999101216148479303467369336640618513132397114122759830921261296393703071757139499974514403658293602358626147829694358822546632809559157081085562218825393817202796061560953076433037096909397937583698808708375481126556621477492147185414725088175605688158447171490923343887767989177906455866341492194616421450176044877491249873521518038387238715578771675631116726345731122937457998794776829730811201904522660903900571306320889960190032704271261088268796051999930557661328127172979308762531351895450513621394548110680513137682607219275393311273609303268215389137260981326358346305670882948627018739847193601772915180868119737696172408762527795231788185257897387740231449741034998279917122152936599405373014650097500662282222102903018057954903270171481873109196429766460624382443898936549971810792590749277747831417371381173804922005402112218891861998166554236820935322157917201670102873061029432105574666928416966324438633999842881045060674160089863678768777066013166061257640153258309595746740586789540389114470305812927800082845210959012061342581254839802384388495678749357846795913903797838679783374326402101045632981253877312973357386130444057255664339862673559375785365728887158836732190284548252762136262414919277630305027919999457575880002759865156825282861252644271695423201257131883047737602981163368293634683339206728978385029862178161743785738665362325499925177447281636699066869476290924641968267340020865400687450832845221272234814994361835734135575893654615421364898773463124914909448443322614194042083477390337429862819234195852957294295266184027534646545966473735551431127550306988618263080647288606352326030892028325227879765358306259041971596576877595086808846455376546195452072828702542872403273332124174203302353251021587533111185473240608676339781540769848517178478609537859642427212499097799922090871575397662098232243167270537908904021615150784488494203347955779211753944864543682001430382880135961536008034527803081355166061339370963574686997589226148794427795624825359977417013391928833874621749781577189246734371322722554594733419010417046663754592812197272354646527399460772614405345909060552131559806134160694791250320917950137016420305714359883970020375273057706043763990377308508560101337721612779985272188334766585312304441864204582776307782553034326986195329237680503208155457187313631008957811210797368953998620196901684816842071253503105590427679873105312857631869154241981451222984062069013860744234024739669657086424776207412639980635694538326629111861052272785408737796645399584440352271850662873211835429004949943022758680035714984723661472422006011300303356178808340571451660756331488014256946122180542824474882606148631171507833832834809130971288683718783747372340979896550965402509621297006011303983042939018618393319504287399070759455622082770780395116145544113838346793352203920036345644012369813008061622381465263207666236368497714985767694455836652743057380666040776988311565242670948942256267374379238400087244492633811574294971865206451994096272075255715259661558862787349076535008234808920334752884955596783337242915030976031122593493684246714206178477333392522985295910165369693308501047833528096437499130079596542890534882671362651092673988648309311873090044226831633085956657712877186181708951810970437747165907886340116224858277213546481953247697461262289245052050922571456747662477115646965423011671321959301467436566528261495153488715211471939122531242946886321039435991860482152745394409738917772978925713496251813465949003925284964316153320392748975626488405837817572594860276078159880249038402522674531339613038415152696898529581455520359387465425957061167939019168740107299390907882819387205747192998196438071628385096180101375750241661134388767707732003058521899006249188890444690705823784835132418993470899882729818033846788743798697507175284417385450982304028898849455775767859244403226183600426519392981925201346523934321881653785508694026106051001354861330241758491921185835636801273348208887367207162617141893346147094143095388360109334827066064237098080697863353322098443561337687639425937968305939857289215001454047622710395111109719492123193262617053944431128866992114797628831322699498677609202503353423654842902589314782643596817662492210384442004846569461776998428740742278756131590687432397586650013838540386671008905484037484207285766982803382542690394155438590166103544956569008979492326662685822809342962798828928326262334360457556718129638966362046066639726481092976660933356414063869710850589105337416106082005861458361604563683250506685327900138197706767944547189329481654675796547219388415410452307102214334631515529028492471633922054262710471979154989433156302300594566827243816097106133315942793174079265793015990756662535444037580890161385017842089221752116449157521482317025678736175071069597070346097300033092920164448191216369810648843601155673015868676803119899850993774281740835497997002280734057973332659855185205227755179754448742077359913469213186655649530399861682888022146224671599695906675394925652951670892004054935458377256484196916909489831563907323919283413228743890805933033844942592351189265054937294124000415112594792108768783363047008004671932425723695740103282503568483361231573351836090874216930610195208557776007291316116566079300915766395818407222277639021070412916641678537766096506378903348549588128169289003582725209003190255976467088615125167297751578837609905109184211409263011246480865568122601134374123445175838465000590934773144323775113091367124773498570011731841303314595903283562276568918938687894763054556988196674365739739189247719545718538941741294007422670566280513046494449441776948156433627557266634799166394409011951260615553856500469921400498315367936344312959796249894997560262611295723414522466083704814613350497727003270259511056211076902931189194000560460244975998889278560792799682889882064217123781235687259579819188623306050492403469028175718183124650820784968917433589606287850756458402876911356740823394799165344535748550825313946672211892858490276770027266913697429346106201956084683564335552994885155117074243611601672134111311820543930623861108785745862409712706556181977867161859913655316054942510967335725334232800793910723458252216876690271024529332922863527584443018751119663339931280583008764879764768660665532336084611297288712703284986430856589935333192881474487296023320828717600854462578137966729271949253903642564564486855805479861621317294854129627225857659729987763989280320223158486944627686040968674685123375278384428001557860029766001349758259815165909495737741214305832610198777730187800652974292573336805987429753916396740357301089623881558776913367599424876288513549232477420357198324295475190492306455891381722723597226411169809118936794538194055165627664631102456842823396172607542532067845645834997497587776106236403351183792835251158882732297283442489736532162035593935051783096496968677782540034351665173455473549865867179763157601303086447281870250999945878913975485699595353192953098688017681491034139806723552250642267593553794315423561843236807023069685916619973435831335580789818687911263315141543379299541675059708963625849322609895544951259604953864033715719970289274047984655184866949500530570847953776054431121867122793988190589652977831870124043579812713567971008413637907245526733114223844256871959867545926937506217159484739874301756071592353514739290833395857162508510549913049461648368781175312827166766505355299247034737790599005355503509904399871193594783347845389575253652773093799753626844269957887822075321208395029979425555625941307656189843077823337017403855944900630338996474803757922248927166407460490141919815973079669230026499044715157460386352099122548317824078280447780689092800206376451303823147513137057708403220562239794128989067727895046787431182307930452939894031092434912920259948703630418101993717867366186778922170498510552307355192857779722316907306425921504624239033951747603772381847645051978040796759801658682544404679270051076677279430576139159597635082141823522555142372443019617492357157427109417868105962611543977781718248856620172507899097999125899601758056623731336698538197034700754847292273180301879065621723878890455199749239190066549590766519913281407621423976797515820584357396932564027003176058779390676859422861351307825328460821378084614652336947255206234241444321388999826917914044834514802377768248284718381070405316154321104697934210258888200970304670178772149037274102604185665617510243734790171088276511012026413216013445797967984975232629783749512353485049167535172805284544389757894822220639640674544861683776465876119914529231884693030032923661516151798107274996150855771672743802512549770325584073432616448072096364343506966389125582422049166151697391919619978776341230919292494269967880674651258728382493888985291031442286844597940785018064337027947536881521927551833292138454119907203291462899963805175396666898764728340363542209827085912334469753065940158726760167124242687522091280795684316661725648571184447176611483059262163637786692248605890217363906176282843236543037948104811776316829777142067771686582584051613707982742599470764843814651298506275731445435435374689977085729863281809763253785063671919944524568690580179450276699907211069959864886616410370691249493605412528199213956091905592773259314409670449109571605523329768091615809527066350185043212094669806413760354010367532777072891963000404696089047103618732392274565713441690234865642974265292779205497446852221609141721925588536434053749491892501043800806476331072322047899293513423941735350967933260768945766792736770435376966066649785112626294198222018908739505786814121825659548549932787651062784628139264111869676517373067602191649769156563075009396802340383069528141788698808600804131018350126881831034558344662558953386138082992096812038843812308180613663021286305563252776325928159204814216297043716953354496105210606727634498170007484153230040468148408961450106474488336594768189125955216399389860699586448429973409526696537530718766914710412871535590900591571688225214401404589127894064499629880247741798034775442574392131301799094398392854010945388161200547624469106128402983107359086035656578253991939106583160254768673462844808078243041211587157590045460119066393350860462270123049179814564145178981129637330613151109658529731201922345250399082874741322024660657170497216785944695884990554697317428582170496067158964004141588759621886046993278900489612694134493754563017771272635572607930127397224023649006268070902781536330707564118776679794789104286264190637248042840860809602341495382940195831581380007295822827397656456368639182564640222285345133024889881988577688100962473570513576522409467322649343075868412318051039574416146501190180676273543184199439895361692744818015879650010869963988329603983228766659012224146902211246147707032375377773380664537762488299385894657727521067409582857016057720903502121134924187092976866452856590911756770610103135571694610157347557467702586585384028600433276698393186764853979002806110281976744632613796312705553156949163153406288103957238154200678741093688612435078259395026069753192997533857994859225865727674091140075613877296652647948290958004846809099387375394571631775680862639143818947086636775952415158566996204401497247260469956877442429412694850795312506831961330631736176629916802746632638660539586886887430110397372838771502978527696821141824772106620481456932097254319977660854814779602449596534558660860529106935919271153344821395484849229975138005406028359028162230465039173560970402547726286231749969412177764468548406478473779482876494518530005438628872311659683134084812967473400237767060518266450847245858916924412548043156698710290389618314957697948739822775802787039413306439188254546208165927276189586099256105594439407160370706781049235151478519337946221952396265827819914270054065399419441508874659127875038042955066243470936961700067599386894681591247818680122148801241327438781027341241405453751759341334801650047103159740636480610812454382951061769372712248605923160122691212147306780796952045009248235964291579002055079759014950310462792772191373586264829753564596595197942307337880743026538600346793312913279147150704313704111990668643113265073052431587188432907525979893209437465241027579403619088959222003090672393266675796795362596285528747290527458651291355692106514723617650904859431614044429334907156493997494418306001881540682827837848003159537030270027903953790652973479980374656293324573527316398114218646771679568876292211365211248818540200156212030735378927665772582918194267030036779270007326212697509810460934042143328307022500167976894631990192182384530592003286262750194312667783994503523723647312710164085458567274951994432700466560126981849325499154142053001973969447823961270880218320831363363430974224637945795964450483146326308180338308897006849370790329099541772493474138559339609771354174812146192055233522875678672090872495193364415236916016615455343221298701107800161405176721110565282697627910209777364471294622317719471689360183824618476601810953000128062430554603122416265879538975615281463444068181866437080819976093100818706372235062165627445895531752792257759279973046431129827128191124083734708395294795834501727727027395379213110488754070104012631747680171222103891818055166738646870440093768496167619677776021135739559065648681368607289530244660652248566566778930163422816171849179554415200784387240646007665502561671279623456147042861360898355309259979130367455854828541173397259640705720847023134351303180334577820465615281465005767981509954564794712303779984210071620699181399333875699930210174571527551954812522552841393028329881113527839780359812460920299224824010623101044411973319574429725984220916694076953101643834287693214147598929530687329886300288603883934375514140739587332409692314916603925047973929602714506488806459113691000330859953323991262894443081778418591471115061362943677082486503515257745314496312539518361211401167623671674049486690324745199102162579304325445446957653875875234218098668664219077280880951269880805141032757715845667658954231848514230006819904319209770342772082288514352148830036766215263294980141070958284919433208358026534746270963307705873255088126201552764767072744049399651962700737159894626124691129617888010499455988589350457433050416744564849960040333367461576475428804163970761469433797405357286812819119424827171619575525667942885047429365773969415978262549162736515927343225752867239895230037755583113844974821757082418985177141152151100392305552451082901897164582831136884189226329315803782768850056861100538436676140958104635010588155192010815846394670022255310761186778260993698619008214068840991209898285686107872599474367940085670311475790341979174798923613816071275889627216597517985823254583405535344466992671339478045803826995139291834718018394890453713221833806145723902411858277342037663535851955702331786931024724746060658138094838346922246130380293665854521574469588238467656781870547822941269523730448335661721788422971844065122832357770620986537852843502971526212205877564088700023034052394344927609211796490350372672849328340987168243177182351132987387534067130903688354197633522916829211663019112060490234734833707920789869463180319382111966320710171541113486158348450575736599123485521771440654378127846983007522646862122545912026598718797973115797897595359027273925504114398694576151071075823840437524698433586438270061936535968184810014158159178161750974874446847123022691736752093372240875594429210550336659887563376450375957570525528367494616181125525674761342659449690066283906944757334484598848713891750724968329200542795492529757120252007745256696702332460905473263569579842874494199910698157769422904725120134196434407946921272202121861895298240774775782586319818303395859450792724003201647854687080675464288494795221969051734010723851473677653485270413115347801952130347545566706430044037524692764767491529103796727609101538420670926401636512493731988369199998415495670004933458003956277466711905231577619080150228937997895336597042698995277978711931163849907538021713414872826646340694118549391168266591302979955738985142310354623322952398789356028705037450018398555478381149187658338242616385713169948132248348834380109971439553622306267614467443650848002610044963416750238344813334012316339366791305133430459324392989336020174035814779159222248007696643960969923895798662880255205659850220913591411884731409182798071462068108695534012656239169686345754224835387349274257256537384448431305262447322837278944509763210352500160011462769214901640573363922214381322094484972810416091897979839801381954997425123383634119592921068921065817186870082559764168985025074521953224956729921460999474557147863996035263579193336948731235373122617352967711297329234822416616943226644106350727009484684743569520224431840945584651505933993663437160031047586417420386207331692660322084931192552608918834268978269614886448964500997056350265314490274142851251303819817704486613256929824564417577038196893401929864976516574791981216880879283405355807862819948658105296095616557323559616011084193887924989521997678702720763133093615083264334451979219085733874381192426129085062793864001341639774577720311362941937370590293562404648040579231905562007199218975055921376071092900445430370235001084084701220402418106369499094700061818739999828254951669137760093706383272442402418194898743211008077181861728599701231178371706741747371594259568707874005979399455019225027439135762115042186101057364344021644602826630433240398808231224814250545885408837524717415260903492274800232722541774048516636349243786013927957091752489881502119012665124278549707805930571044702769519682747058787883403650391775582247449138434855301059865673918259631229869196396765175540344966551559684530391234622895939675807891457311742137101327062109609039526023969045803158526800221785828826525090621747346344376003937970203230019257770908312959841981305853182924689572062978293558269610580820738776434956502604841367152319712013192443812040047206986182571958385857483599740091550196467034560405661436352821151504628421119746587887252432160983786308834970283141363321944340126686559999450468927328805778433061607705207238069925790257208884297124264508704247603857504593651527943556940608416084965448417003652439467439148760005157182933012493387235623969275358664581196542010731695957282838849979071159164928383454661413220712072645110604993734311935230140441316448026133274417794773200218633198144197656753508248674960162429556785797925931958282485966844990727545509121909665373761276013141807209245409538404322397660113127847907021434133544368083211147069359436411648402954750015390078591474529920911440552528786988166221880079813447225331633140861894987061607820655932798337146319079373587500668499726097998868492207026668766511062474469076790372458619012414063094622419457597821655953910810961390286180116662828594853913835084077699217448219143021461709726244489024622776357350905869223448653075244708432285753595051127861537267875286605354537019087769123045100960987834547040586718790096982383779196533588378580463446193406018923043657364364353146539748082099178136305109658629443213500942635863137549430230470786609773642629969784638922166651382395887160492239886045610468610853853646492367802897258332881578028028292566566776213011837680105915454327627260668621340542955310635869821004938425260353355169471908144709782101931359426220186120167406274517572540565861270589016123397795848506943787455745095198538138193395093129924145503325733403626122650465648956286396633876781346922504948427166845570690873155784498797688890465145292323189624238461108383529148516635072965486380320476280149328184208899553575143495238295021705091983542264427006401200546994797317025062752235206315979675648000869167699383779028400287978327379615289908566845041934348662510307814742961964142593135574543207054676192252155471331509010100176812939672504184906818729382155414099428418819734168233993177850600546185550968877490861774024602092196348340970710287338617832540469243710643161035116086711066607976656455556191579849147645114866343202854937955725508998864600977418240342134137812920663311284462024165714293290116668192088348565354200723099984583813092163206296860634775263595270737399407696514516672732221193228642168680193838222715159920437569915602465106738356172254113384474378119009695796183979911014989768022807976121560945626487711525910481745653329958924939752961766258918934028950135732457721806528162790104369931218510159162811231980366186125988880265040770463171184983941560742366965074986307348832189443434579556607462044801511794189205524119073400812414548138685229034791778430115085245720691738811388527603694482989804433987043786393710426845440704436293576743733098842045474823378103722183577261719055738150004346005566536900140057374246836226997981369545383538388594533340174638026813698435778708051942434207421591834106955720946418539444021249177891438349602244190354229151339476962751162003315038243814047213818410552100467682458539528145350296031823972607754721677258812479649187925945800455646832370218750007986175298200276844312096562690849121647555131092354265166552883917814120904443449053677733165854623582205033162182353605229110174041351099186308719488470710033911126101631453984654783188007568912262509350324695663116682945038897466222676656684365698132484605940073654789680500619365311035607003991518332675061828481812759697028010990815319364103538303934396721713631261340467604821274727909435995706522986515259883151796559397009140392660441225196534630314483754066639041939276767079093117821873582393530030720704848305878980704750429926285000259424228164221492823234418225133638808465249833797860786036610904550840747163033923202448314237847278720826827509923904371326476640394162657111848863289769875011828962487513680160156223578009415872299997974153230257672888296409549996701437257935393855407376057100424910578989161917312867675650500027588476124964757636058274688416246528788291878642740067099707043470745419789661789764370858466065587856462090267247355250424756151902649115309603419677630300343680384158234651322791315510481824503045135836439584978556832386221828048487593334034145851081626855907436820245096514776332973128014606908203988562072132014378327994519613255682747763499520674061049114261375016210501718700935910155464265974646100949099370959823558566457323678696993844567581395291581555518838004864838587455706801848102226092216911531483903014439264946063921001996505743786967080947290754334871167196943176486304658573690557708157954693287137865997283774127802561516521333519170484120785255490016251509102966395751230173326858989515555387927663981137602438374848433151523710903745874121689144693233171653016680189425876130477771219545786368511751000411680208179983289158204471673743722779341282675323133092641657478809460364594035387445831818709558868056206967540202938307136006318806999985181668223222283621831136270316973966120953915343600077158702932230974229102710132679802540204951001189814505651696674820298234424389533569536210686610407888929556638948792507742225445728933603435084478603060171719027407575392593443807888507735001985295859098279932461363424243402305737218288531430497180393297944558077783351714549022559270825101618774170882362886021213955498350048646201225878565068129214404154683940239149194442789904290685107684574563289353810765815135688683815281856253664279883500835602829593936309584095458416857345055871818036973994586440954604342692316708215152862337931352854184126106185037790948799328639871206762594948879497631515388981599468818274814078013586382789328143161719975419369023936338410019104676784348847173387769774197660996731052303951323459041851276758973896641693026698287632557677182816385887621723097672218278500982268220420504720621428636848056150437312203510638478811657322263278950476197335763085848612649821083129184112279149803278206156281481172968305040171371313974809454662754775231744008516067788547811599306957392539710595045707444335152567468372086383112929189410827371643973025394104372460778380300750471304342123978834836785938803780626482930879642669912419276430504968882460262018519626828611030617828921113029048277201729310226741103650068259193177591641040478916194046900373894864774178313394112878640449249150910072367881530594136901299535839753498341084539541618903555718014908181490050516090695412241523522621416679241231045500600683364798804803629568037614372648568066340483628969635700212071351663614237306226576401102153779210208420461783983911454962175047719757159557356004562051499519631528503963414789908762783696444350050493251743247528348766841037950901050908709886221169645560166899878026250887113967799942815568385247592993171979557342098489397793594553623870319034136532639010044881464506699064224945916802755967883760873090961457464897032010784000225007310706667121513629894131956971004779028618602168401089778374451865802897841369118691180923178554551012217559528934289435615934622244838838111592903418947289348568792061527068266532945528695509024638439310639161249489313216850424429627500279481389531471130411938850537653552328703885768643289229020710311929013626082555450561133093097070642834470906732886292270689149410144070655931051257248806249452633993752866828832239912450771879143816671383586287174372524200101240990669973675944291813457896299244977988937691428432005815332904758844670403462787178393428228121801387189706016380653875988572361725267623323974511320315540151279971666656101358674892506577127161470527271264955983281207983287369040466066048813801566202088558573716836647375964830173942904738567478766042188474662381775612838418624432262905047927779005903311473222810585340761288916291492834592101784708363085151570354773599041827433040159502168606100595503212185777926047756719864580652320398076077452473864613313034587053225305727220514894154310788064531495867666323946861670533077735947356991401278457376368249653010885602907405733322228444052030764178848902409332082374761319666076933525628114144945492183489411208297354716527025560845173899710721125184006714912265718296385054842286423990152857643526859956332654475525926637511486743810990344970670191065616583509574241330784963407132269066428348290044590776066017585964701588328735156320942281985600708927495151242103080933969073077852860479700678129854912668038910617358345683541381229780686464602377420027006694461183549576662846298714189452245209411141873557914703058822489758542468658815667475740471062602981959779043801518947452111098902622158232518076047666224430769371582055916046589788815969931752827625828316461191062993552415004200148015691990333027819076751683943204208803043065857255268938913161735096128299829481410545236887055835785615604580301214777137617744606689721048103390923740271122317270522157926506353948593188048017494674939303506109756029441937835428849046780830655080026337644019829719181226802502126699760505385830566076094824123346154097149032801203628553329922613391990124324935854584470378248243986683217080301609122647886855169293916202003395029662107368943757252504583412215574855866415158069641837739031060962451493430617266062227238204356904780288764623196230660717510269256211472532374846621897659446405469232574759347062495224547348783102295143107611155944039300550255034181048812769514025211401494981208006996056451833057247701792624412035656967518126492824430267888634954707348878076212816688880732393641261855076869451283182572644803686231728998675024063340180741581756919976994568875834955259671615673203935365283123975908453340459308090887535241617266789181207251899509361162562635366032408102214630548606952435543029286635751340647060685101979694942628929535502362962980212841149194396489231687441486823624266266171003684746677642198829671536554633730325871531395379377805887053351436835999537058690279290492370189751090321493431018404365798123170515251612162090514549409209321024002662192957433141010380376392251034653738761174320835744546219647752143797633158103767507705138588901378467670319474949069505205754336617524448053744450072963699385632530804456835492267820380833868232851788851317751867120806275571304070997794462824068210349270132010879500619226790828623247121868942815198092451607703898380945365905089837066986089150587307550427775499740059954727210733144175463282265465456369242032601157226247387045797589217751560667390467921011795323230571914892320563432215319940952768790417986812814789675285819702257174537926284073735699570630263307818581886304702046152580252008050799119576517171489085520525175970413558376274310329437277517473256661042906003438352034538789247932794069606824205414398784941280539985772442857947815209212695437533800498372639871491025411967424952336534673183351056058630732061269108050632386953361890150177818701449657577438883483699778736073450453044104147902331038343175636498800210058506989764751196092087923060358756465272182521747778714422411970831659837872954368326560732260488515320906853429409264680396731077057001057791256547685615585974741416633387348013383967081645647643163354109979573600811254378373108550730515498548955054048771345243881330732522129077447643080804735562471722275617837917250554534325659172099067892382597970915728334194008120040906427480180090244202370002214102490196776981693114030466746267016915231634831335672254583619534102575116667205076620857485751451806829437237385514296178000453876653531429464982811719222742489750515402813082704786870814006039537964521834281826273396821047702543731513439792178550420536012783042250257097169740661945765716589114430478330336839239711931970809052074548810235952117139648698834644389905135851655222690259899917511740949367741327649093358973214562439594505011745056540650222697530394669631871206706004969764147480796619092050628772815140935340798530714921210771975495586212068740320882354118767127285511323201535991167293370743525830715951341548909539730126229605655728945195102359847410252965118389373669212830328102804640493116887352358905265332179377509209778495110441597370679898140436893318650172436069875754950532040511776339039924670575450890730927316819219832350470796687026516219947275043866673167804192536482022042484291312853197968639996612105317411135658388916482396989546660325789878309096532498016296473789923691204658751050671215222588926245860423896583462275307712465475531902913941241062227250302042760017716541090297687599711048072960756113923218352457781950216628170806899719506990397538259260530346704632632703117152571464356588950346400111790319384720221828864717344500276535451361305481574057609849925422577113467713110541783586000956353873367953556956264857443474751798023831769259066139811072093918614168062690285706598870051073658261754981879989715377114316835916393235923616027651262206695077036028956796478389538784965805943373239713922766065155005047588093585449962425215209964032101489013244865772683969651027058372008653850707052301804243846055538218765297447507805331079217465003899776481982833034934691648629037268465511425014923593616200258852279522399885111304959123806367764040623112804106654219915606789208103926793108292931790254996631987707646979925127523990787332229429986999457403995049863987646490611819581034759447208636548252744257030337856198531759682668973081683359757265134923913661662027759761077399716334394335307103896961905177603347911417294553125264663482456122236303687054304489900102391344849655086316684511348428699604934045026195744714721925075184301039045587902980060844881259743956549792575647543445219895901021941839483764023791395458111049454575228218121279468353144089166657263558980064872501426989912095110310472468420673298984750547467316005945296525623681712637583006938139799514541904268055983830697227462614791366715387936549706503126999316992911234556115892871381879280856928352567642944739761490723334440536366147273293086552407030175705360293689803433033638697921787764486056842270676040779682547758016445905207472561041682532374264031383853261080995341093289523133718208719408548424494486808742216132438782861872283949282261405193679650564806399942087349362622812703870149115608040302753656739686239112901075464425407092197437005361627936413135915448060627788742706601451736339007679385202789259175914505518651978379781546320240254327885867841366311432854919666549841242826154147743899450831560856747484118091422469707224840661517568951562756070998110193819394853542914177787857571709810077358587120365684101577719504679090344042236442482038868982344544488874197429326190225109162172670540099434639341442513225706064619279096773611305491181481121562199133423269525625656079450080032625059727265097538700861243251275357998773708578603417323716609919252235355943493316669541070945272291616711048779271807846217601095551223629676317794652744365526222547683351287200178750787529853680304704781984552558608759504274007198224438626947758025382691524009197239107254790716368118460248750281775356453697972515704677604678945488025569844474115733955235346519008542869968716773726495580725788456942584347589498758403803455250351131612332724408417883094762054341484718773731167502278873607602598840404865096822520916876159293306550701582805991858307908831884107142833923203362661483839174700133936835300124425780704007689251920870522273527740517292771072724096781151938538822339587321857437781096568096490539735916184090986335289299098751441494188159075013067970605757612594262339087217594291849021809060826258284459626255212302168111173298150683734790657755214420691656679620720627449191311009554672812888694343162184159261059308033117205756105082348347466121951013870577710066784213878506149798464878953118987276823102155463375334424578241598120130525943512681209334999694252074830728609466970977018420304318920334567575971287865286901557578665540020502300637872164118981472452155394224017030675208387073824404571781794529043317079368766329051868253248134223816634359882893755532937411790497980439563963309452316486552962146410587161575307722638232422714241299131287610361435673238707098053624259689786105237507001582304242490317886342543262350099311261412089435626397428471155133489349363728554330978491038625431674088928552981062122714296671144781422584194223957911002982294697510137789981191263355854684371949700655160738680979406307171808124061466692456851462778820843899556484595756617270730112281310052201807471087608468342704082918407486778470513441671611212385281862739112379261133672701642594646177427863001965329569202632506751535413225409993967412021569513835639298211682761976093421038151783728535030952287573816573316332877765661368729061792160788441311797028921799065965618103980085968358832961093772945637305234114259799237089861432560913304680945094006045833090543122551620253309992797148650392391939554226961056303425146678766167397052324536265298079746136283155627233217786834227131106143031250866527834112825782538655831147100150819287167917336779125593051265643642527068378968095041591574744891305711449892020319783860709039162315695408861336039482923030351572969579613946154338219338805272976835715383986711792384051481408573209491090670228336545127569082666482530515633134101374882769109207077544946517382475144596226461578350267554557758818718379037981170074420697650432321587981374257551402317004392892055095414027623944215256320611254040455334926617885930904634429513994541487142314177086425829059662738042024328986094545317821356459698211039374429713219940692891250469204839255405220737170166128108636857993982292031004154410350261283683419586479108718850459432195882534097539998455514793162015179671772994538632195534347877510205967844242198360205422658458905977827941363786824245230392520988276534842832805825127452728534042819505836739867179529799103190914433289917334330319703294890126683147927128129241789243922719166276095894169607068312603331699562889695503446937707516502550969160959971075587405006465378304519409129645235608421752144108409307539465981253421867497687442273926098420570513507365301702655119560830744153344471663916109321148887923883665925833528939614363369617492116680260114662444264836332965288819264548466524532126325284934219516010094350547690516123962996964346840349501233383871067182610774144264237612030238742229143903306917764041555856031349466085725152508844511753021216389247311519663183004527054358228583193279878357968869348609456451690991983752404779798054575421873271851680427573956586037532116465083687385104471326180590016559429432292881562341508889355653910399805785748416181752748304245855466393122592701615481525333582511297103737070430073557281716241568893912547009352051825093432458322981859437235000182570647927215199101688743287389484346157173112252038161902727226081587424472001007103692039678942627801087130710871285176295702833704411172213885982543208725073676483054979471913903409137869364820616403910171290593051055326951545729807666986194903009722467284866203113987212277009856337262423566226508826908288483381899309848693221619276454921961043540846057724951673778453647788427854636747824518014309826744779559849640924098698949534548877492333002948056663489072093825054591267009891390838551165720821134645492388705102132019375827462900199551240525860380615180354603660722983626323573569842487467845172996480935520633831834241601271559256686125795410382840918807783100255020234515677547452542713605986093494170425269185660027434202162768083344404488798216715882305594460223727967117033553465661815895140830372018774600790764732775541606745353043644905025105575120852190547334165940881100500552739723003406896563165275605197057723437700723478764590841605543067353020402442358940668218361966703736691560676270662719976831577923649679269456813368261784742511450570276106722172798797088126677924752275513152215053710676310819509546275143287524443847129251640650176778514751767151512015621143183823487860080089336477110428837933444881392894623355420864865104724154396925885294076368048859739928966658269029954947304635991316524885838643129810180687391950714073193955302212225698368230104370103253456932527251547058349966032859788403377868288111718250449691702899720972938049287249815665982076319729896507496781117067654405376639392899682801533119383795254324099110029365858235094275525112463006345576074654822440142847802513141488794564128444244632849269176433228505480569787093359388485072285661113099661400719383615856075090759367166936700125097358155604827992685109958674381849693401562410380922368273393374957737209572722928232021443569925024050655223895196952786868757123218174749844872991804864016278204885366711752325575377224672563182098499518289859401588265605020740537367509284965424790378331948643683387660735673780599559076243656721334826259199005798524994507134297995084947273880991295362485336483133009284058809345134486556330303321338432152129549584007605449072110713635219563246658528815806548126510317655880286756898947921649020107224994031262143960545795538205146036879429454158492625616425942887522059835508630280706285978408401477264598794065406817373742556651388112288927076196726699282322863014412734005291801933594062010033929637278079889840947574609370714651275674663441749792012107328324089261368509720171286027452677918231270708407538015674280037154641360248235729386952634018301123263181263098217223385941502427451082587477944014311845285168687793133764489918110554465595789691190958838417889496669776280354882389600850750837915053866944253254511228269252959019939760882563342669978136144332648254964798139135270787579347359370390529467124757841650362855826771483255944285118312924481117927243363157670700452690914492457658424901086702933908380771761748935366731219457597066384188505684841451187370955170468602143633225449988654356297445689515978571184334617621555283833913296977161722727732488014271298176822434572240703104320317313128547951972751801816765550864601663499221481499880718808998070965881135545460350263118488998832234160417509021874436270947578986822657246436056056780828633952156800323721535831565318885460410724854449355762022821154245238026651433656441843574533625975899759085820608669196134368614623336692116044800241977825074725477057334937449371087584425149727512656599031130142840699265577102118435855129425022948718387722637508710944200851335445412059506890812195473524442759981712580331912981504896694094235580729449359174155855105562253518059268946098611294396507428842187137802913753260669156166863002075318507339648640646327983173056076297098300153764154909714314029592542146165471971173983615631573085219773344542647270477785146501763250172636533284618289389440178638149693138286398492296100277203101592930010058260281832177894688658428741105345772743550053483736320423613496222289904623751010811092350308339769253282220665483330623982502869345585497372597841609748396683657576549420353563086711838671439967872932705078978018199568112005086377579276062055876033890266569715493695716083438227477495366622611426847158215761249305139124387966337979995398000482237885618888439373351791526315265402001275053272649973263139895139453007267130355075449046824473665917279801590151421426295951148830854882479912075883070767320970270851365339161504500003419910543270620603834958318322815513382920324870649234828846951772170186053943965470335536118722047811417655708908803624880101595364618731632442796706043386680308512782444466627868270553345996180251847937930828718194318866671753331975301366756776623818528129041387565347013146675721082326648173832896849256191492614379245221146741324676054724219420315778155111638424852334315179222824326833824518376371853617762048173393293712123558937079609609151553900255452052848451100480673254938648292431104392498880395972962845875111784493543729169334186614030024171936550828866783705143382403469296397216402918795554163162486450125373515884515252081979064336581296529931278364263792894148981623941393767267510067046060210540214859529818187498886507395418937475859602813119735642804507914323987239826176377822865557511632095082838510977197691053266123483701172562430366853482199785889769504372048601142668110055151237679338356113614055652962973913096687161274214809556340255631468244558797800514447197293677383842650530212619635200856385991687967955644286827405048596813389770928722818246860983853091240305532082941696366680334574226095863602942853610176668182186512647552403688834531471830563166863550362745453934850720586712603923153574222722909412468707196717655539935925012275243245151848224366006916699450169220806760612824960533516665905257346860397854767369692116226595350362190553874155637711349392362752150663221108874185446011195545286565234364638035988155411641989788720213527482581784473263290998538798443969562400855854271235752513826307390328014152480591059448605971383999168216594955332559173275474818330805528937860856325237707842386188053832881742955951208968466479219945943011208626409046385409134506983561897112999130664373242920310699825991751252135727514603570699437618510213142881852465124566108720905554419680484415906993235824516615468931888827006198445817682917968655465924555308644604536494428242310628608643982511412551261265181019736470112049789591922428832211120896849591719930849094746581072534791848452045172029618974312335931189261089021523189494829664904054128477502778861218832328700881136157277921442533289922773667236251341214655364805809983456557756341390795660858408653946640008204430841831872982820647914463817649511361947031883220886295228433135456835542219161325513379347004577839508280694369169460665145252104989135408520623609576956499159011112149460839209103591728011587825108583184589139431996305221051583737463570607707977346901982780832378357521447494424422596803477474184776545734786033782419193186723681285887488416019281142353150630058036611800674925479453992776455747853568303712575110418021011553961871271456360319201223615460746943010368272409918220375765746335266314416866484836597051516463919238310266799674361815690809954249820176281918545592885980978971945531449823158513675121152235010059995304327663894855894898463287394453495854978195395086317875313402496694426062393182943749484833005016430171925728535286261127223894133282790357719296234107862586596123589262055865996501389290158009619165539076408579550852334837710570467819920703975417000212545008656924238573593398916136656360039161518803049400213774614413522124571831486608297480457433954155346477922240443360539116839392295073354963897507775726286653028007893120090674374104564753324531398963376777017818559598935233776935305551566031150776636343342898688454903484173727887326370323667163434177374938579045546950471391872677714367810443704706345359368917011352660599418634951902425545909013479205245271322585946288698584482163724787254824881075718500279538706023045236916953807143055601187907333017023520532770383581115211104602964129162105049372266007021020078987594076061329348760783931354866652885931207128688929439378660242303817827827782678104992828577987656908128198092294185593855213524486394135216119070211382572329678293690370681155386602660932473407884898552389794320679680767795495098780552830795187195161317138317892677442616972258304805633975564335843918453154821765496057009289635198975425080843259650585677653768847415103873810469009589058276666129008475934820464837197025828338573688265287447089910479386538720947468794365797644825392718242078852278457772301486960253538447696101410391466900402105246749962548250076840337417467221938233628425723315066185132329833626499732593140958171043556407326648044362345416782759563198590057048206109051270556721112886443799666145476662745056576852002566986792843494834511141850732397961451225308432474011197858544206867906363177287390369372074491916190395668220248423666009960161845228927513956752185697648208182658388043292718192109571643386829612727576771586105467211724652463026257776588012209904042558160145731952383851846047914444037942539486790797590660135767240738096002060724359044692160394560587472884549597044741900111430281100577169236441515424861251192680473761680939154503445745275782386282064715227994295441149218494177803936316667949957799004568123766957645187404900807893289846111332046577734559927117102555494529443122725551152244950039581320503417284074875519317763802462012915300939547847969611756889254983800494008848506779626448212886486486564661388168252714383744205333508978814247540476264257899934799311236955716750303909955665461334151684335760104810833486258304582937230081984593245854015706926237499508506297285289815091341957481259920218659301920883560137485434222102272336089568494467126331232952310120610065612110494850044909199807148515816430335627434531804991922205193444375684930049990866485982330627358848058383357418034090726351272314417314041565957770933999160854221894649045393796351070194589239143782697519726052642106050276668540755811074364955855645951822990934518100713067005534120050950139193468709122021690356628804959655288442046569084974331849641104179613658035057852513804898369077993442805145045763852550955457229242011462440796041917706864862355608766497200958432744819415430282743334896648028258050641458552386372101587800515505174617110468893069423557328069920855195544923861342532138811123361577410816901418578985873352182494687971935977691654750788946489942712593054816520014124821191661791086020000864874567414226548290610649185879236067166428407143910123037799813117778234711850662699230609057472956951707088736726346941875983188092765882496644302235982346719121422432577971747997213241109532885625851542290784450575103299473368925244297415965024193462685003233761344192449204771352547336721927778100096792694647036411042318619849612350081981498086405478330132088136218851670753972940767793956324292901123192898343826205709507706065787910572648674306308504943905505070555905142818011825024490552594365872408904178219082345827652061261963460569940135163591183700606297055306161669874388578259272978406881915395271715776281203121005937523385380887924426233651026218511391912613534711979875698893637116733913025251370611658849447682862719279205089263960318996780437759674387147134393641132001612423349073697883343408070064029070048710657615269470004578053323501431175336267274753297936207170295745719876117955039975989271650090055471684572415953370969990857202443337993836807834056836739066194783898768312329976988483202823895555605272310134339526566661138370853355747328363841978433517848619607627289211361706154395167418368853361429439103287432288541727042849742062044820568948226373843714985106540369670966986008849872302508736304603717974816289158668860918263994607934896906643052450134463312394319459647521372374947184604002381646915846170648350409123491036477456435166126220338730545788111810847894162136521145065005813613406069547361333203519609282088689356678617026802514902375560629690702274235305063629459639259627798553821766726665548598912772900477745882959655182062713819030577909022777834753855305993527633959769121094558726469451479863753237730764755523056705241097662675768859726663751995925352416758948801680870112235121863810101295391781000730796422234906098902278063689863606482924811992910909666028908549024823467999901455792513842413758649393955061772477936868708992417348607273532928738078045564402180855320211758466352420393981504354083791859453496936824349039196016889246345605116013400616054022492503755232680786046303929663751985715749144427559691548678421327295325318316742659208533360236527332754442780872734422380035286032195353884815791942057603548921226513459355227467249252395986724156539079554078204571466039952736385420598946898997583926119601505983335990894550925276068459343785324759680574568440145227522899064286347346692273026899576397523152306243411092175601148334030129670102994540190476951504746267410406592078831214254981672973482358937130464593675682729499631931228378841860398604726451814496895023961868045452806885273414089258837906205872504715012348557131981033755521656133307631415866907645819280098146146691920213628592413824864352993419715758484670415819735044449759099326785949604761048620628643774936535269818849991633661038395730276304344200706535544643107331902039298162284411175448429195479122892419105112670381789007697676645964622452052329075358070299595533730508745357154223910053439129381677115684205758047399765658216574756516823248787737272575248741843943029469369698505450389462688044742894295736560034859300073469016570998031860289286866795654928422311749333869940103091992726739268458633623448347869919114501182924730380896666680083802377980816368588598377148668695130249248931153774483455709000293979584590839735097180907765667173676306885618891757763065890104405075555020403611922106877987733677882492689764500820270726971578813923972684875716652617451924998210133781817838647994990344475056521879695646636534413554862932698854861441489941343582392540895277179880875756926601878453794281016087828660978429037094412106686472309571468917945884396640926496557907502067920558681389933576638284066285111747199074659595324397520151234418171035099119973525548894933984574832040740847466908348730008720462390488504167939546702854510000410142477573979070928771035284382772737929731256113314354182052818761676859672829973749049706590802605655111643793490494110415979631564876698597786646591545353745104552652549463617951431629590085305898490881028699022688912787782774195078175790726199428221385561557671054631157751071798773688568505981298147129409060501729792456165368903449846998245990626743624481106266237257485131300028971219109224167047578022236822728942317075532711773774521990271017380109082523271521186008934587560269714631253058754320956444514777159062688043078060834048600754372751352901621653651290071641117969500877945896401233224900466600165660861195453186231149488658346874863685192648057566478956170869340973389217830382208432735722946734026200026997116142361724722829546709181628240275090425599657597595289278584474238369432990649171828027592540656159756353366845964669074553708671219956236204307955234034971467581201153665990027202068728366905378675922278984058458117687774690385505849370795660497973595245995257589699343800393013093481008622719264246436255473785172802898175413065416461169023871258170189466845909529774110435933356449694125764482337677948390226684757890868885901088153982189358269321282157308021976460107589445973174926480727996768796078821683798723164196348053621525064719182036678260565010244560501518529530913814087187755198869455151546560916236926514341728476048366331316114508630461330219476964493443617218537594848275849169472446045974847481404648312927882337987005655559301955350118554703501858672536575613732434382536776281601738504054258603214528054496518574496382307656497073044109126807416846106828603906423698227268101135716579630541710202136776814003986915363276538760244839246713782499649981206835898666081356437052192610235401744698955234068206743262593886520630690406967570433882185333496837974370692563285741020652254230879018710598153472317695267801255318574176633150378075505569285970064783926375000618732968286933199424226630755043949453794480959202254982949694654412066862270165254890695832993138765633119593155198757516828698332909902983553211992722160889505531979827824662438907870124494022682206621946308124366905845357847553816243917637245096336175865651495370422722696703155676195470950980287236960114078519283235741955570162950010216915958994170437829906187550138214611194399247813238603554839171815578751171717052087414605633406102123433662455621321133618596933115862968204382693639794174020792447181809520563695372944838327860061241582464849544763211112007350524377038191358656936659644465689908480029412603318317613415911721259489428330299718721346503463959105197737428219808674136385492289172041843396320732465589875157696744614103514776801307614379709080719410577995418535289974821404891884271436869440181186831864591731358781122287568314882675838332647865319447912792831837309913898486694371483362032649773525719076050220567972959418245368424361577212632263436451390572782052707143197712101075282129229539675839518148946135514363174212415488545766200082499313098573842415313701753216085317465800581373542522597426353451024849427426654245643158949444730223397057725190106045711763822208826271890808408772338914428843681745872656271204154850684900640275416323750412097538209803553813373280508821211971401151555860677408230684608360041932309263373140001798332175927069227278034691963258431516378309116947694299328926515770281492155200075676188882061920604498892454880391560250710645910283117159367301710629645682631955653207488054384003420792611498756657054841847565092293484685497982084291524630282457686248480760525056436449950088382463570789186894231895746027729447315468933578136071103145407229521462586966286605438299736557342870312878964205181263630046445148448781999947523297158567327726262540413477523238811432205949403190974845081567050724532037950624392108714928392456563771952093257668965030155197859495509064462883470682458667341428314573955871753877028311797270014105974670684157577583598495367711247323083174108602074957923353756836654244684035803096399610909427568600611833524562860981664437932725879255195572083408291347707016165827353007255712967197152152962239315449844723906865166902949158703120055494829591622830997267541987369721994372097657186142413997508156918340479326528975075336876443034029273349401386294473894063651436845635349875539992143415876024635095556850836456577719325210260491758973354996187520117542539133181418384408952381134791617085782462450130978375432717599218062065219066468147599542639587054478189817034452766614228858645140402612789485988574060831559830401796701819533519482049622732291375242763130651079866051605830516015708034188088909857196908222600155212619518564043185811394743977028950484452374072459437572271362711940609975799178701806812196307453086748224249366002628970426286961164814995186087411850107818387028933915834856253666398206088009873097433490898609639743127204857450680891491297414623566634293010364726686501555841711167033817244376817387273501152852918320217580899607096562276036012373705826242310561549999641340451776074685989900049076053434141894676574752822799358150432413796505811611813775848888153832499294805146337728471117689955865556883474592753136888200072667904643231768269043781064373530820380271206163804092383783230480778378318251890169385991877857786804331702644812071000415321422842900166695644240794073563467318182476845750341265521739621852939836068218008610560973492653303311726169408045270500617131562242673162438007853971829968906100963461655862051811359587756803766675365510128393559314744207436372849052291078987401819786417145494474012139463441470373444632551794882505206833933463403813482800066576298767961559398734925701224010449956933140037925082123134601793678249418922592726490764842288413504523872583895289846240775790816994352771856546933440232393834090430390412488333147256494343019136585340126594859539774151264921837331463780257800502862649717958881737138513027185950936972566153101250475966743992162078046429072528424649149972837424243675183400197524242330050054898693052532051571048075183539371933623372435018529810196597359117944658684611702562673406737561388364291971344263797982798666375610882621166813576731941926162438476628502131125644540248246016083046732545725625694373737105963824466180420695838490771869085438639968242561664517314991511790264327833183200537847899170106868223885647508196513808087164724953822963933906485649854458729420806455962947140468855531448528354067239221319421617210615285737322582065569458040007908805984907543004487989347410048391293878794033391969232913620742090237332014523141964068480713249154604974066723468965919751480096077704540071034140695677755893003766813423276406374170245435894360253961713331039214380289256560293969305086008339731624336619142710659979739615268364063890884655199865367867663509232203149836262791356195730048482995798114690300048366333748890493013997503488971010715759172596937608732220880685760238547289124989776530257212730259878780808296176608323044291314896533877611239826062493562652381530804995814853830917019329567705631594683841272316291978818017660229616219909337016554629840457602896049694368932263387848447970365929114391800165557689994125808253675119923826061667708347970961647387645758215008467427222881686756980100019978726953935340832765305435421842790240990010465264250869055395512184058566158527498743495100871132570880546202090155082670603210755117098011514959713298873528855389890658345126170882545198970244693734005493315736902404958762898023033654356428793705934264540586505615895123141264816218322535584992877872062722585534716553750782877772127211665497970485383480950243107692687874685076376559085465812253318827174869475751689082237751560046859240652818124887655227022727151143600837262240733855045633728591179319073741439775653490984018588651000049222485771960621551295083430867378756803835522681434549158786341143000378866063521736989907014759077420279586971398051872365234484579181934641624422771338356437009895355182871516208910740881301455694345088586805641401673308185121528556553902063832082871523137318605017463022239513693739116889069516015103107297849941714236562214237699872901804314032040706916574734377625151017082223718678160698451161524479731689293254017977268637709073463882035312118309329091617017023469410446288666191644552447448559661039323699926995142464629001892790291967350157918960037374487274938984311560658772274858381699158083986793305433148362675770473715202394626352588491964895462301383118161926979621664437823864399077282877745953391346005681944219470847152013002147784174596833175451995982458278823603715566992998414130779242910772491942197377521995874473636005796025028989285556163712092288977262306454205158380549603443257101695895735023771911289408419371581801900374967494105607299477363576720275194935695582317193595013484997949757856535340585372669615569612958671129443676389026334447717260161078325347910311245729140880923066500739117781066305830465267873957106022644500845696811550391843468647704119508685105155312672094075195068162725484840204107861795042298663400532239179785192206492584872458531330416466841325205365590780006507082529611736266094275385258388875556851900410416007755061779067927451507827937570445031890410973108266618920933737313124959275065114938805746116774466986226964793905114948437061393828044010588509291527759393512238848230275014774823561319761351504696354927561150688909497450292976948725784901833334159824740043983813296642265389347481511218149326389870828217719944716662525079305580086334290892878718232287807608623633562848089408879306810261652928979975957349688343444566293149780222151968293699511398089759187512290283745922253379163107603208888018532477298050385322640458228824494021711966021170348491585839131974849771722751305765978187232955313731689938705551593019951680280853447479643666131357980705167381169788503773891462205054673221345734875135257649215062634028660805098944264448784595828750743387434743117873272416868832741111209480531612384799274575436129270527655889710260836271863118232238879324963401923625789841143939169718352415952446745330434088501299450828789815245166506915493748247595729979518858956328333554220051360142539784606322827406643677925133174581706789035776430415137500692813596272951886846553944510782473372983418489914935620322561317845153855762357450582922419079716920842635182681559620772526956097170031238194891851080893781134555517091527864650119788389661377484605444552235590742407232457098869500873708570440676495331202445224221727894616156278501651490332152077373912698084661979019237791868206365194381753345982042860215076074190067077609825779233780575276696276049748624788710796834030558270767979557779363261803992603327520371521934465605517742311405070731738695470753923071047047033274173526546851272573539730981316150160046335289298467231013293326377970125643516247130623963332525263862857405785556151618424256003317783748015654687730308194029745748119379001194496496143366690035396450647706651496315293882547872214146636795793047466300182553299034022310249043092516737758030542583029313698226286585810069982439778058330332776078121212557539951323247877066704733307298611517064913344960081060505017175255910918058494584180171022211676966721210333123585135664294663587599003166937135921609204568966892049102192444535848943940107431812290944747017793529069411354640588784331628974030990658549578091047129422756528685342896052494083730251620222609666147566756242783389340052917223785447411967696151823924680487386581441344864503730946367881026537369933589862279255663466584431859633197598176345280772022497937665190675522025163550125027110903033764928318209377126120716854975786011218818444910351140050905875227142863875305534484398279878332466526647498252549969576479816638635088843912971798028696432639402549914689454218228691470740064421171722267637290906359882247279725919890290543088234251281067992026595519842193824438996367458423135269737873693499635598281033944335902444721957038928427053297626526506542965478397930287635975495406259452927953516003860170858986204855849393915123718046541546215300213065839651845573487365100265998472774148263116355256633044701381188246944270435160372323478839077940332468217875203530683293961241003089677679110048376391542086700640292376161053609798426934965105808224061710006894979589989913076084548497664250911052020656764236949288457942200576396283980400117894163835655111763344755168701154259277914179247482924688152489351915406128275866400226213398381545534316982287800686948942846789036948506973177731311989141166111886647695839121243831092751759725772276018973222346881256425456718673379313159057401557680090151442163972524430411152150904070901824842900877744160868315331990003211166996008766141008239649765552010255181485692233006994842053128202832702759325168066985988087559502987189600020338017096235029738824344241426678831076380329697696592807648912060647720198919574664651860995324395216007096572298551222617982953665695724935792059663584303233105364823194660066225645158625383950129532388105170943158114970095210525901600752214793086314966000886580488109529530596602689901083826869957432081404615452118136722974038524196633518997550653846290250441850852283787975749690257137759790464038848266473862843538643248825145206572033888476263404967083879430140587220882441402204610775488016592966704703016346454623648191228871368609466122842903027890928367985556521595770967282122800196687403190627938691210241501017426625371871467732105821292211077501723566839064668440623699870004159644874285456668087610128144748382097507945836430553859255535649382824308991156955257280403893822696817203853183574357962553100794559011922407662829896938810882128497153000709900475968430885120084255567835055028089579575513354278637498672088697180749710798141363746992005366545307256817134623479323474681472518479702964856978435488113056746056505521065188684259252113166535032326271043312500426038323125281494830640912820190402407433465046158965058017963231442826228810121117720261758010646047684411643661182385714062270026418264590190875493816989173052945488952226137213001307257751455293196972258170617539580340810272348562876287309257202099125334228109327878110392723083912918829497343854835756715077280573053083597475023898664305946479623367473260224254911564975577264804959493969211075868269806002149216908886933212255008573982263472228437082918117333039968100022042550264176099220778944152286133932783440778510850704826978678036382789677659837851385685883922608262429043342618250025284869162863965353951389127901672227337403875224924337630433913342512352390606201387986482136290554998167758329567038348618965250777864076910148301900824878580439452750161816321353815817897632823866133104407429849776236243784114882216717715833081263047640728783167546945511605475974815503533212551588612268803568003416680690395761097412553588002192900234121097988953197743357964905892347567197407077889872610707101477154586051804640740970834078504450477219199071988193249440607970079626523847046094493588685366400607044777053149556146589085429680281072398330232717620552290494917330242102022552824923722275840392213988659222179936820750149719073075827283627209088956613795723620907669062832733099145205530754799449841689741281143450454641417512333593089935826835992767976675010266482020159595471206575935385273844063780801651869861791096368282347695125745632820320015949583647141034006430277570201721783211880234132694401719955118529859980959271962202286982220894325741573754249501296787948007397385114217285710726085770582155991832239271104886340130044622566141706008864567688135473243722197855250643700447989845743127608094486590825869143340561012103392712902477765757714449887815644478619603328452441412621319667919509371693716816926809533189499827883287422503801115012858565843574160842998619296303573645680559465564675864476044179047246749000984943605363511737213138492951199755050849518054363821632699563864932188300946542594500121642906647030261672524397267864291586255514992878317985185961022478367449130065136860368598695686615345153342445264521014515712826112242699049898349464846548956797279499389663420046555110118082141944276596350189349909562170584051437339991002157794168809055284799276528583731596221150158016510000416324677515568561591459686018168410392047126472254584655766574574563095089861016598440566327244798232169418745072622688007189354975598915238373414465315284553558126345276452901775112828146099122294831702428561896032000484046548411832675940231012400351790076917717307610638185634497449834493382299676082880411687041871850656225883882859311575585518176352179098909969940338781274017919450310865951209364158255109382358725461444019408666478694238829424039493388950824596016827534638326227833532829266705017582112550326345572100536875165535130884235194937867476237123071537080393108924876413962819463749083505107817293814828057158633796736322672551540776124701372292303006171166603200047443170526300343851968102128940179744456617379740634005961786129422592032598625925655232248640892525767834703590262400160721967911010687909512679683440199322179407110821522285229321826030099438762893995403756984108247203220951861065539753441991941436899850367324794758254319315723730145077802497165108353260698647265462345956846914643309287804015385561947552878851094906796890096047224653153348853266479717484900149110171257259308752664212734004228727944101583783406987113915175008495765028475448433606270612290242288890778524520188178600750486850379310369652336679994280444337356101674495088559973075917048785180713110673853707146251568755975838516564490282251282327256370372330276934444526333330572088023436029583614857086655248409859771790036789450361591961601327629240293303835548705771332447122851400125785280902885481737564752280039537141036155799532890090904443672108591497787899988232101444450029928947052505940167078138571996014584502592654022309740231921714801893048145084103178704041774573960745563174339221411102081141748712524884147228030755393646978678137904542080309174563516546215673330168747747471297531175649811468178626780044711833782776873940920533004254010287566297919078386312884724256672372532710060138902222965864820211714785435723571012172706277852017447357897829095057232708662144359395503625244966771617617749530132002419629343075185095699394247620633876093416572343689777988066383626624612919597838264875865323250711814850752067758100310938927113126770697998251503687055781157793849008416375430943006892843475252232065393072825600127640349086821498599531428903828088367548960487726643989921780405148659908342274555899212501724138083617705121584456175410397145461536463400289471415204587445499214411436454245188862344766909935383054359199762262549595912699086523634025855013471633230143182245656938820316518057725273977493645396117252236022308679374450772306712979514351430787116983680973314743356890564889990764634837201757325556730492097849811976727027539393807248978401427904050435108296659489595798088224658023011647229267773173919325910491009111989936028698527755130752336460746260115924408719726140520015614545605118614125417644056270821999452910468509083309639149080467322812447916592573754783743555276505120031211737000608840297854574926207255857369300853632523697312592259645808288049868205273796751411852257010906637635265676946560469195109139764211773235723056227102535373338098718469450454318941054765005464363668553645888092406968818326824552252593645269493299840908906006306156893786988463104875203319467503764909483514906078379191803608652037280304701536407113704002371390776258023293137599195244316424371466248683277047365075316057272209875658873730609331212979302615572410027003727026123530517568070081706300156680735678354011628852761268354536989698621851727036989748206278858833079929755303082689909335164683907851863797208594785592044121707241355958330658839633972559984217204592394642034055987216858323372768879806563470213966478457775104053258215436100510208438835257319564052947744685960155396575834990591065791105854795660099435693785348096328606494512630753728037453964624388611852925641265518758443755887690330909037426762150554735697422433472796945399977386191079909637084023214813240255686819013675833003095171805407068181830245548043609261438917495873633861407048519259986325330180971316547156405401881651166777443491651301517494355779400966337662329877772794611318568659316858047862627686756625813335428430156872849706143864173330532115580467656088798550649695304905229170913777889615503234342997869473415171398887753735730237706711929737395333248497605984711905614501874816481200702255695933135657244836003317807322527662688873911331091386028181118290439450150292928368877883588089514853622470227292774256346327208102645261777127871257587174568195563539142230567297699961086082058749426151491658548007050073174906362700867650599335752588780237810765571491871345933313561233122699067511042046593819641610275013335754540749702239708642479843442079466627479462660514199805469896987511326094409129553839888401841728724268825236196167176644497557151971210392325289592223168117387321178013244277625790691599121618433387217813209635071955401522120259234775794788618704768667292144396930660599635133320694712514049032562209044707875674465406429571690296840251830795781744752518031893964992007816367557432200600162277407975800634964837806085517062631354137282314242258487652795337599467380788885136462420223139670123908563681599539130183464941404776306480042399518855601608367055718585500784114085187525978401431091258179905567965527847354444831277315266015065520031653322089329509683472619824754222504270419802063298443303088189862198045220909736797545972913784413583114997096646316988172973002744291804836103112513117344934369618862616715925262115855898794961186052833114381819781731844916333270786292659834720741045185885594267390767903866413940895947849955241208374051346725597149977552393547506613723256581241205735261715522786376007631094689554122096799119560470598033055444070159826860723444808858151749575579920586831820846835695958299667258063640948146861428135412538989504084444907272246177372203272222537870847846762368824444354552696808118472049550148030485565215166742846288387176099092957559427024594755817011283417417560619573518700956894186528617994710900743804703720758320175835783547067529473671573725026456058960373157845405065129663881769378295963005908729573175921160731740598085829908268126782834906171565986359109167967297744845293898610272337938834793741032837152495458752829303566554970186827756619238715682648354475310298682790892161302811528204457923471986586964865093334409631436904871686859473985001034775843528077134215002922525453235056115071320227668178342592308435792616010073360368369744639591349660208398589125001511124367653629878628075813159317750658326606571459653026757775153760158364132149131564774620605403334760393188240792182406617127618948432122541207506463145391912753426023507140588856776584933180068038686147091862183062591538961175793311123656331230410930683356530980500075274224459530264440084135826484463380627706349215740013161799934320838907170795653513632186603527793488979126689163218010804773826900009890882098197382243104441695100136253874975776404963818222719663635134250926815427505828017127347263126466920477186704801846843651161226944927995216471969046956302375713507134036739786635167343743942035634149150604798635643913349739823048174228368000995698067262016511939445029194597802408829856442368231213064164672438441936843437521961636716974368680121436764601687142352777089402600618808469896006654295647972686283179981346263781322042392418616998774266051097348981886672522986644464945199460052553198622255663073949603762552555357115649778611235379117928609447397313336039916755724141067357187838404145668107833268230933667565043453109995254019000688906300034777185935754368747407520895381499427879977084898491153101234187250060256118730089004404293181006488513608426348134249550716378362455620687724083334561616994996491080848332214149413424662830375569283384087360145948452986909731394097861381877896789513471589407051639143149743871024407084859231629891989973835497192910391015543206618686229405859206193004530648478804603660582065205277187605162076700343348017356466314659944399495301696859834103609510259488785226297339641763446258551143932683683885710912928586765100122193538994937387883388686104420255851368095064334368427920379933900073809286013864633279910998319382225948218056654086204524941284234392353823035996741845952481508058432494576804403853751395732286219803691582979927897401474143116663021896947858359447243904240338727647144630943275723967607898687653561122284659636667866333843149864901048756715322988130756128596530342511615549497888479986845428460219389610346494361880426020055032914161769293817956079569756474110807019379904001979865852301327708032603224815857520364398845133791042038783511969164044785945034979755965858445937497877945459785441046110920261099629036761456575871118256504794035770452241208036452998636511551746306436000621279986278095407155386559086695167535722413216119340234065825102021706199823485933261787526949724458842411041370600502394935991005836500469475751938485776909946990458918720243437094204816292476614598416243304750912527542711192291969903271987730723720102511772275181595375825173610981111710963859411214276095901777286082963727922978440521853868886922108786696086363158478295273919705789088199530232900961701600184631059566045605764769353152416665414698994432651198464487505578362767719405578605376021235479355684740997318088365172765777522662488108336552464440225933845994303722142931248862775782270950179174727370267082580814683971232926547911784997766347947796750823574133265941119668568570759862769563356482639200024436832323799634698505405557762159017493049220502865731070878602237429893598447375608158955801928743054711710478512065995621594791341724467097263512184853205214228062076061944164116336246760099602736282887065317049167873420678516986786160670498370001190199883730238176928945203921708180420723691794316336997274230436015985037163070933027671410463258529566725462487438813792226946775285359728731413298929810231381081873842062127223309264273280950099981271775581787268506179284378478341025394782934322564803548313275005795257753861259967754091294778279913681639156872907293106228303129171051510054952454823448997753298350466454550223450558621171509213353105046219805872047589597128381784947479125200479430258423346066699259399938688648721487232867596205771764601164413064455950026654103897310418485056049834370142370414032077594822927356859539540759751346664536386163111266975534911951212551395292595230130906567260408540812834344594570023594835010157234914457347319907802471643585818957181897093286480784524320630961588573905295976498982619046618661210323964552804620680828723443407388410858475841008264913740419164895531946028377068818137370852595006443762970965570860050632653981052419783183438285461786081493873109138337746503885279365358047534926339229436854196065175354902980510674353703008675116212424977532887716971382434463188642123251417332459386198706117580808337383707589406801629158373524477978897515606384168752826774662476556536620753135276777074656848846346760526817815493352344153706757667005953114104759314977886927672564535495944097211122129262916457332761516260223945429649643011602681237699486456161464763715362246753499046878947951339714797073766777037664725154834303552310959509326271329039325075892019960741126321707738526153679298276731457613110160593226058870748322377293933965118691410909611631757026916794709641277409045659119773495124765499083545564835757891476682671253253483425674813536793186335888784739162942386200171025581445246903189046489144450175884331109407879507410460485054392267506010769594384229727819689749135080868167011055311721968837801215109308237331239178045511219495546619703150250758940169747026788225424277626650055813700574142375410303422629087217867694206142173061764039449647080001632729776323920942900959505406023579636389804406461488857281613973325375202359190493272991201214263049932823473820927008080204491029331103414252940833297179177056618482020825148007089831104299554464616491594850211001072767592689629802721135454078687185698959779974589511745957668823367273726805524595636784376797821094686216390384796964944380177516073983902268595242389409369120401909642144939746804146714362460995595778611031532355973011994817169533996643113041611530953141669590594718333579002963470960572703773310295111068664640140152676683157823169235436488886994477448105192744252771092630210020146540815056204960731945567747225163267436381301562468107124648749364585643435455984622086876315099793606128647249725615128934278532693579267406036394318411555802157233789935479275857740930855304937248413620292226515620565947923799355197319843078273181061477376459898443188700052482218247131495845888393600331953121412277189286879086238099980738271204547816808137080358654066622141774871932657610828540009706657272932882646742478961787637230095985050879335713263244171624747357038547979157242140671451853505115118093528225823521338346270720903955575414428217048100858955735079908376542553192659026423356785421644713235247211542931348927689557085452296588022379382672211812862131131105781159904980008849241736965605519384818556226891937716988797584458651542133610892951777860034175243725129736075495382921351465368160220543968365547195119410715155677996797183985572493252096828371385329070192658537358258227672201653715828772045075671820701828921854091721968408676229632775735252732363100586545929078136957524977117404769351748115609769257923072279723167621012292438743788602901162603624682097232653514903123606084902383808574049085521756469606099200289712573351938645299083771367412167433566501103094205707940635390288398241076785014344456585658007373353885728860073187367084246027736402076563461695031874881245553073297095965853488845241104903274655642891144128561662050996972731795763499420770650494592618077167104419981128312254491754983147959076246502598015620906257533744401493023906959007714430362321024740725760422845103947331245101288692004639296319522220973063731817396923116017194207760387447642209680097443337500857398526221970507051824349107476377344710374243789878622607892793380064102475926123736885542637701963412305491489077455121566120177678537236007765971126422996559714839094479302932637522354652239883033066762057131546397484541174205314996722539088945226706396902857819041819434910597030715105100183614007498508074947420591726634764567362974237707580214761550386318926553448273121553183325030886867690364417003770288938007532248428404376885794286868310289952655548347307414065280297335070180556265110378600930987277922827119407917623732727147468519936183552251741315748088994095249487348499722993286157793534075105092442662952588636698809743860532144548171892169796339160865170435708526603694405276994445754884997511184518593235447408910026839644531086216350603710419420491019151388889392507537273252585552075709383948608666582928022403731571891394238945185758565844876052012503574456826202000885616681908639209708187616820947314015216374191375008948795532011421776050594331932619726894578405433336374699664873279398511234490689381187567812292253131244276219425163292426971124217381312911752783401444800342305843184135574695748476668430703456033221199780187735066417216285073751633346663539203044570767268266726245405629831273696512693037854303819185244350509542171596867445209992310402781063246954260841432181834398621467868763160773993312509623087536383842540015123008911453171016831675095899099898029829237833280539107780211939954886150934921569210483467765224292480024302712436092231670920145374602249159152371292359195387829745420987760336705775344340760657462678682035548791183881784354457940455578399268728735237656360291049077170963679332319128484528538811896531411341755579755874261619638013622372131390142836625180221982881114685242064480031639821591164584928519101263358272513168233752178686545690088810987896278792916248566724596047950864624155360614410500579478509763257520476192928859522510159439476748969804281946996036363119472890511425335663150113674296816281150887445797473753704681849325297665515779388942111653483039618378406580203763602825863370358468041954332882734741065542057487929103440024301104603214648963848212007500086653827131678010647568935066740900709624367701781385463700250674729129339057275348368533802616149021946763004769313028209612667286602115591586282381233683536811373564910794521913830792277872385027319579914003553175308954968527218482437620632651604646651035111122105254118550984445917970592425019296805714718378223015489124254339951550511897899129341672246306308399804646542342892000310330118482523546488873921958777280017381954321045979622048533661767747357415818228171900779941357958215855461734274888706783912739299463532612778438262803477185161282656937515911298801674257001938422183923076664141688352953379026495523168325019080859436237792644522005052791258276097050075156175316557684759503475508823180056024742395275253070779721838779197237370430678969479932689329641047929643618173435638515467592890331902422653504944353364324073951771452183465529313325701274820430327186964529199440835391042961645718115827723143632628008169679135413312355859272747705374937935389279568482093835999129904467455717817175636373234846665520411275153622277485556934349465147410513039628227183263427276121299793034435309806954727568979951970036333249304817194303752861526482361917330609275556238851234845386886441943811967727870970280251265864847351464386329609490165809699922395516023201132374655731618240604770645868363425072346457502280483001930932716692515610077837687088867432300630452573392821418814727093936400511271147471100345484882482559353369613205929028595163685697375472743286530402544752382430303207463062936402708569162820343084822100008786265678047236371565131593612792860108943787764936539174751385800775672337509522402096476666245959274390190395582777775184654391532040782099207134813061120991360184435280177930987515508866041489579277259816855287829209459163699424329528409802909127349532078453435348758417178642522773271379289598041868549486715006804760362274539658855320266102433458477896825025430435157639728727489612547503249907569332174665179311986030324637291346972282598831315956948960196015992661917207828649970668377309631683675299420675506699280969263574689556654136004180287175855086306115237488889405243507163664630406905680558477089674483525448785253016797789756941050747614508256628046372955520521269419059141272540709320942836735144296015894818680835068490816341504166649769997702985579880705895715554294997186989638141242280572035169133546955725191979646219071014919059374545124543346754501169288133573900669551340273756163291817263241456139973130834937474237582287529617372103283005865446495428255650962897632605088083087843956975552359364371153981462600988492516393411424549606994523190019774284541144814379674884019425150425829167061304286118631636414314993350154332710986597189752088321641618187137858246524472150711918472987267704054583052212090938019635752467163478644065920768634914328690929811820345744136595246723878487109681726098337422647397346982447805306935528745619125520714858348211332434066144574890239643825791297297648104737509203872637207742491467494597758628649722467822084246886394192320959371268158394633822458140810916398502669631637921248162489911622148919218040149944661371495893819587970020389387498407038180307642465049227191867240125431849208095198798061770406888343317600353559763038973933568196594931698504664483103561561654466623029372690064145933179237623220349464527867315372032788700918976631199269658742782463854573965556197574540887923366669297716226876382147139278282360861735165060431039268640081522946835087177566793513258823345101345798657867955126551395121769533395666955161020210819440046223091664566911855049104721109326496970886104063948812685055170992232681717952067705041811153188055804971220311849147760109133902893663614205080487261107682114354279163445412069743428554945276510120099827298961591446155559280924942806467808676995913827610038353455358241874840156856664942512453342381354273351264089583994377567616979822197707669009594259801473992885235633218041012922935669542396096167747108460089455534920139112066135491804209664908842611477383524213405792339825616864517244220169847174586207427271486705753335635548589817383584172027482973151194609630983860200583345372093052176782039635628324267430185258622875191967540363071314707266226824988164327881766734398759269315999696744468663444289613065239740800174544214040152704416798776480176195847444104849526983898013764136058736286337039866424814932813697066925667936791437785013390260607803236109289947216457796715565952078048690957753434741860078082503493939926114297690300832066199135068972679105065333715259548374798338225889950147793828018278804272979625190752684820910785489662581071961576703477224098129439329126545518693880717110657909516786581102503840823173158943133633542922175005712983392056716956200899364740782378809407969208742319554707041131974473754950846925222441653027884710550324496276300245809936904483965821054199013985989497622307041547119748469501776001522656622998490745580866781673519752131138438553223463094385177204739433310543684457883301145982720595131528897245120702736093746975848159448418059928414278519854536937423585281817101806877642706495634402835700668796604744653040197120761921130315646980471550072181112963303488134569368098573849837514459340991866720218829267164960606638038965008681291992393442355314723802501394559161515996845669573736244190932141442749615831893555699829746323234799626775999865700373518772181913403168600060684621480631658688212152679243838201833905692319366112343749035257873934022093767739221174093488623158411088250609914174893823358534232266887902016497861202803726370022819552636099429755403142552026850719228238932065116586833668805906798135329988960983741856449831482265632650080172398650256216840041293388827676902860310510043463580240821271844695481527480162933427863525275503773775271916598607381465900758040584815763930615735572952904744583544632224710249337399441651351178962780973603752364053464083365623162120934920200398717245683698375929055680045568305033303440752194959824290880386341776771898231134053105632702161328262975340624715906663168561255553630824917652815043448733707550481721714444544377943874865149237393792748162201841014644171469532637242350025588849746282044355126983181552370110411712251773493854618285185796766923825286540770158557418129590483179966897002076825924152236745823877931151830340131072852147995109740360280250934403869528852152120152608967600341063046413832957984446661666043483798688791492914858859635545912225183062015594811775453238950394102056993133890352331133750550095924334504043176119512954630869315012235290978674565342094568855690391413187122238872451536398813406617538367399494444394816874971348399081498259131693194752826870111083132826314721061312204952675548687286402934749923555829242773227255772278153780537287394170755700160863112084913164304640358664366040709367946941048784243916495524079412071566464385395519797464852911494989398315514328335839606458287809722749296875176532212002744822287752075380099775922139301859878162932465166849274714821904472581102507967544920026457094003894793785394584209329367764267070490459518609720686424351590572969996256459927204350371271923675176612178596755153099959869093581445943333490366165209126952286357326597580672981396776991949726857450442260572626678479922215061177050080744937135604729752458257944579231102211429709803820866749371798300534251436970072254517117356771718203150384479977665694765500209069018276613577143836098519797437375740550074842389532758750119854786713991929543540176259510773816828437562689865040974480788490481456335787701743690370372151535928868335320900322370114350481620875315355614554376633028908604343863402441183426971488622175525796056587807935672956129162321879058731807382843945086704285802227967434117966170919870426465345144038760961216761641764893993915000477154305387944804856219099292995379307636047381236888574745192489222202750382623464327403475489377090650073290492357491522296721857897859047053120043047460096716535143894991765723863036210617733984999478368512920613568363046958691986821578524849717446274396185260140314603933598978130946926048443786004050821023269225324862608232400717342695598775278678453324784365578981509924150055391732891805677960497777964927532957582092383387396201860209039748840460695465176546932619542663711048139851912104588439819654354456046421243245590130481869896635885094094101827645859447813546477398669908210233933138229265525034346229394395006334666935257082914950018824760446777237904226625271093775743141214051079737249770362044726191775365441391375158576118615447607193990085627440298279297124706609596017082561077782399036675508958019135349226718535306408044824285515796351089633928071037993899356381083811258443871573403056361224292228419105850755909845922719392599509677002109036383439547131361061253283900682666425378231557936959769936342678090465006860179958196173916264348876054740547967421885897782175635922370162445227312370362638477201637333103828005930500987391611202971759898555598911012437819451376655189095723190332639852863113348247410401943947034031461522214528771946613041608126081433407584964085557065796032952704676416951416035187188416249373260440081775040632558263654240115247040203512212445047645071243403107689716601466407770131634236093365015463965615435267148143780532943154592117853016216225751416310241537917583837722097849283642160785775889663025519848759770762594834562520132881297830490665770850513817448865499476044019233254900598392457124174259323521892278515014370354722603851595830185776587666384820906252223649840628777607882452545343106600705323111092755857264128496138736341820379449589853866829862278645335300412481548878773900243418562058081250598251251249183909073039529443837228740775986597005850122457598414118948829691199996649896473598160631593018658914696230395530769552804379247708849951696665558323215848958584057555627138030307591863563449480228722519648227039043492702259863343617211090325379796527701480220873448618579364259555390185229097045998161767087987092272651676952886245056434878309702049450638484006307401516323701340835510194504116328159580836102787054017082472628388207147681475717532598765175926839294403623742011002449372297399598834924380198065671445848771511347447534410440780929178954328437593030423436500952218112277632495529135615454396986852282660524462127305127817565100933227427928394057950056012134722966284358782929699700902265434278505857788348628291612614123085676999214957899580876160832347754333324224083368319899406672684825009312131669645277470424131644369705141670072595339500435950478038585213322535363788657608577539159835316212726366230944907342196327599877845461072030609982246844507863596688725991236730891284633470576412329913720116270931888862349312104118789793559064024272623298829960344940443421835331096157263096375465721898654606511452135450456638597670274249791196446533948821233355303024412367548440208793199654948400875050454305005357411959039692762625747800289424162717243418061998921358497397895962480719651866477038489218949529270556388239913371538887195909909847397400603354248397046249982040455907823082827497812567306932373109798447760900493882214723531283959026785690680359072856879956802647535523281921617293192063024680849234000999810699002992428084440753207530154026005831737022760029593342978985434968112370498274345011664830133146130628262446803699980534663206600021587674969750776717946999133106729244775986457780351953483008683943437962688484252820136578948050693756678088056840174951292948679684054481046869570812314797946339338843396653838466866918233300236953458024862114439612643178844492082312203346227228689879588461834462960653931927392510102599049325879925592914460945250679392502886660602058097401372013281589003741542298499712080956667900095576987812170473022002662514608017580527133156935545022711835182533348643969256451960697143574834021819245920579211681883734559521868373334389130118374179780395671804498261534740018415669250141166117478751053600390253824576103865791303816964147429976617526071650331106519958355073671972741936556225931143683613778839095608481044075233269098185121339153323488340322102779037308038181767553395179558693212316167929855365410240853860183896208653771833596482959536254354370869009544929445786215741220804672622880495763481626514525646632038636668169090369086648279640727207047085947698447626480432150907355380671648689499638319178290239672969172309529698883600439788802336749021078112026233891171210237110653987386802571793734758300570238515609882570095721352627862920556161400899577173656913571958959047762977568177568707646810466188959534184916002521556282831044828980106033231972097604441747895172417186467867315040935989670869712591217517024078137928050791192200365416982913648384252645998778442216914083395779515427386702314554141972751625782532434926848676035901516369768189416833806173916319994094543430567100597602490915990119205986179144021557624314312668238891019274566040119634257897142624959871905874513185855858789334012349825010231602610755988792846293857253447581789851482680472533864750929978619899452856826500506355481497687142766592120475444204097408758123283517667320903593774838443947027692761740260550720015833729515151048014739305527903198399673339808560020769849087166063120303831765742668984482229656886047533703504919279423221556109714538075163257429069149216036178983660324621746976274769454334943794693354980429640027998784222345439885029984039760350787448202549489580424066161597416338024019085033283100355948511475121074756601531002570646499036688105866440069650101288026551382789548079877500300238094523843275330800670586786920985040667775639969091456443704588120957316630346680793521121212845467759452934452401995355464289213946640273884948022732499992019157496653079646013483934980258689759587481868418630859989530149712645932884463084158981886458643061311983189318805273772020783099702713170497167272969156139144629187915772816368007175187019327613913278813360560734851755138554209201954049435695860006173757982008202334598550469796765263796164643596417603008769049269740869952966800768072980343727053844561894432327088175095960366373273309561440633346959913696658039694121628708447152663274575340074951498325635059736355936098616644465543100352866658223801130591611196315623790715754185662177390465461389799760442959008911231204542677089104234623822012629753820613205027966509641006082867260472331600631004478569243219011735173732633066468240743885558561361678031867100537491840412625386568791161986782871494246083037696849254489359431213307827554276127229019257360488366850697846059307979363186752907350863301654580437254543290586344624359534606243650027925421744835421528836353358331010368708976461837890704676558185437487254984338230307184838480251951373789677239337022729680347471920268896891073476827173613397840026259704087569577965819747249640712194352202338106691101744648355592091755888449778506677939248343678371808712016191483830748586387814361522451048620199456345846293169293243484050105932560384503731239240335715990204381697198227873132975633126628551075523892413784739066593429266396790287068527753717917693661656217011308298506459283127324313544962397553068512175444853739356067519397244688772826119698719200311540158335985389862897651008640515731969973984754135056913061315460277991622058201568345037229898248733071402893533256436873130102275195055867547480046137218686689174514795183316556426559896072356354956338784563554044157653870273789191668565809408211718597555363572197092717070607100382807025389503410215481760066698826946923102135972389627169263236619611967889438295126627629975518769478837769279932231466505863953051478795551710881114613378388174758869665897884926625777423070590842084541961911457141272433422465866159844471027920654871018798263916128678444349385865574276022370578711821998749765280785730897001981691865569330664452001655445873937661669332529753886939844880228250449825730028225548361064095037866843301659978000078842323710920392474060947698592894656462849839902476814175012543624171682360043071712140869090816909645374123910325910928240174299774409746605317622827914726826173745387621524540781585687223686348785446059413506567434753658759254381144894805935884886819211408211792408344304591386952102650094124802649694024243725367779852336095743801175012261048889181601993383681775103490914659626780072230301846959955681022666410058375413387724957752992069746397161330801291101353837300206159718127058177699731517918053817548269312100995489048541959435153231674514744614582345706200681669515454551084252740928086948424238895588641970960075194401000835891630719934896245393581410996007849473294054489071023307160459787856855240836373978532443696002676373469759457963263068413247627792841039595176503156555366550736499672905182958973929613852754397068965072432097619959777609290912963413379278211173996293102262729945237986082516127448940751021368914119853363869706989132586163112076693263532315031726645311954958700050469222073016696665125027728663824199430107723928674005067104932877446711117930094124349162015192861580095346843631852601816303537810267844076593367835694624207738907617142640182799358653432318233590082482572236180904121763880513298509751701359144731416318744268114779514769533312849844547499644616778164224190877795552574429567427127234677716628698865612125399286837555001273473976906780623931921486884373979009371106542456070555644854786410920310502152092228328103037550111896805105048010617102843370438907151029836060803679412381139399672250761401565200830899775544185393638459420314376741070258917289264657389236720682642358935279197119313637737033910459767905404945184962214423867546016481228464399075157144200242582842924270139638561626577218621529089091555857047132308118873723400863387775720980023016615026973704036352950480545948573716133443315077733754976970382774307420249975260714273391521220988850300059594445242924422206983162000918207991900633546677533927664212838627234493058163557268069587188869174018307278690876299219198737195568415690614035159873431108944553216374626521576736239169833307154090399739181412033332927345104528151107484295278428704007268566367869085651597067838999222259386703246679953296504292033596091255873003400814623430859219528181410819234136546563629598463169772686662792113673345265396502783413031821909828947614636552379774818621606096348175875281594977388590220320749524673736678660468594307170610704947996918541179005982230284608216126389298251666862356775073568372356122885855940849727467505102260948272309303676598479632404620659922650739470404568143937135838201931912074811326609703513449465603397274478652417030807297562528091986721066139420940284395871088583582888728470846671631334617954117572234428439177103089465719553775323558695282974012791728458225323470226567853956342496427954746059974468622475388336194560653357270470989837777203439628532093015836168357699068284455542853141166523949637470603160691194416390966531441869433107804932574631610110301234248710410950027506878895942637924097154129351667876024628609202811958849712477109855930188969244845800267885570079527406815910963147191315988449527623843035041786015484158027646435826373638976583300304923273404456104361764922224554164843585940333369044648559164654774309573729539827700384337681592503120199119497206634496874896774539444070169082926415593582455042333199539907562827756911128158285826915140281904101866512626195279331873111196425867212215246739245737368803395599775580375302252088931469193732797460291631768433287858349655528195739803298439011847837697515894250440778040819256172067105981369410268290102638913544416564588295748422556095442878219910094232777484203627854341500859267899596142778434641237710597984996334971040736566232384569552151606708669063105399129516433331344002764077446390344084571764603828118150886029843448737746314737031940906581182906378142901347164385890071978948878165622883690291097175416223466681551848575244539474385618571937179734629054612054078386290515656748868146557453638994400000840862093675123589902234580213827977974500729921807594198739262859322504717335193585831317734750627598827345291644202618310774072819482358491148369848922517458249857266429599548064391293058739771366151271367275572185437567439926357144337133076590821330719638080427820946450514647145674602710688079295356498615043212867795202623351584232905686904594622373670865323319621437521352081471184029811840429199807364476638962843710423624058333229989083801949733608790968214921587436693057926952459012088637416909429474639756931292991164707626006043217002634123229069693623984962705136481275668760448097600429768203723192442656844160163177756253564658804732996511931042010309309644526042004818982690412336931145679823316719965319130560081067453900824169467611041550704629915446574378907184142481609082821933729255902690731634646844150917610218090975041976974498599286325123147749061411929527897469916989610933729172207848976052978234055543286213610948475094082202998904822430430357055521397290931218184029208405911353045105934797384976038334126630256622659720562475819996668856609277331475215644437118317222197119496978617953803581053112775671255704635840799478468255291993716702034880780417403635907622333525502336279606439557114867395912109859299227574638247522940861401918357083223284318165342503753188904249622117956899477875916970875818246168224371567629951503698487964179775533595816769160610947239613178003505082486923498193236550886693295297055085334681850930241598868215809979183712940754689506139911179639215359679996113702993297065427442234149883377153319125888472826833835580795162606991106570178641397852835124461657308094107713933759060383248255178022144506163564390711385434686145644642829469153072597411147587658812305330726097331445036372560804249895770891363694320567479942566254996536712149256232982414647503433990590304962530565454565550465544462257799004117728501279120068754760395561288488750103440422909675388428330862015144636195975264776058630534385588244136602569591933662279380076717165154412682294328201178178273364596438774028986882183457158661031792678260395843908194546132243753029584436333162934722442309892779903064644730889721259072528399003124266505471278913865878439456746430795352859163081449605054633681211844016079379254673437517228778590152911829461004634034933675023139900198898834445721467914537039979713334537316485602051075871070124066512527296309479091602171685684495760445546993062860459319178988300987529359969605010342644153620888737857255302880013107356497038916951730683570190738664162160682161786633221128519273811953046867066395189038073350483805942763315048339696242644859925122021522948050534723746152144218374649295526770634969891531182919415502037689642999600388851043768733338120729378810187889056044861230808785477866997734545160748130638052200650194531409993157700266802442835608769759957254846758765835322091764931472848562547546464650657709963232648987151528101681704999833535749641750813975342042834959732640129489303440705931809954735545006016562572512016565851877496080223303870091603658342585189930107454770490796745343458047829468127030230379926115584719094046250764998486058988091916370590592123443136673738458533038165844859023058645920345518069547343667947168195338004890050318745770541187921509564656136422907473686802660963998998887905258531709685178613322668774688454400464792729961470370950119809099783616933422168633220531739437434230536116710399206823449752928656686923042296410854877963091247819394807807041119969783478251949975969175683074375333729768440303437813371316983861214982539678783192987666593329964751620469381751111406910613920205731726494757842224162141791190527669900173333166585920491697367016827723024521071861328544603983102589010379480975056543066904989418628637435697639250959390729016255191669017072367396299587616911930702211909135950263773823131514149572649054490281106541453462638606616312783117108295222049558130900279924693281660993626427878134993210092032791968427188754721021465033713625079973017645844608608700775184981130954124040859127377525589050820676341930890807948181888729783333126459186819057823937851885438422235486132584081722059519386733076371353227109032351960137485139864320989857017889507018848450086146854443933072031662542171036280883777651846942993023724939049805371081304272121697920400850242213607361779597926814987519396350480683867483204959967661159809390244681094708631563837552092138321666129418005277152947177124169996509136874466273840243312747100501379733605931979115609749967763267259593744618978340628907041964442449498589398072269076667190108879474260043379013272531517348582708489504619205216068889750101846670731536551707475624126526240311345101831981435438457154785271008626105595176570854560786210241824086985056161940559603760794468926085765069612423713136849696340277396129826370109723054691945302070839001963226246541762384976689865210582304355293242719983544260758848550171874949587404646918872468975119506553573876930349351065921770142216315731935658731379673606523213795790254149455445921439368360985080155179783099106800358549191202550072268590728223592246247888852708508143749035907638640447019541053438252282345383336007190877307281335711122491606611912175809274424113622439993709072993861103456155945100115237061965917859273100237452460991079467950137186627389418757116294831315006552417062207478496085550821712953307254373479426216961829758304144216247710549521907615931161424539809797945951760864623892441282544580693791831028708529325170160259557655137681767423231937257555252205676157872340786598800574857731050777615970644879653394243150512732677869106939659830281088250261282667678055122195149198346446875055570936046677224664618386495324560713626788637060402011866379188992218682031542277954105192822011151848424284462849638865015416664522596706396725396413804671072395191156099545798056344728775361665905322907964681893372485555315154650264039293885823439989441639544293571852978985892781361638018559614194382865371412155632753761032310466072652290887443858514659535526024173085585783518377351224492724935491992478903065975120648392609084582702490153923679438982589597799492593809294252523609245617044303700632826666723685358440789101032205765602486583347574923223794452712554261041441460450206894458334597730094011099881348668575541390428667516159508982855305232588269591837358491469967494235892214790472591912073649562837081753431723765041301925847142852598825448767687428777145031960615368329233267071385643415413324211298872453689541360386160405988212765207346486998993364728583159978120737057884398633682324724164769420514709251941854235920483520439019106001092790050812168346643194377052687169887391813231645965919844178220695477171063729709261003254445270044097492933542126815040951674160348075069960741358246467865562784875558562192202361643742759208060665316775553281987943917443420025003741745754965068804042442395053761004515354401569698312365368794366226851892697529998720760568658313020714900326346857676577208989898729125737324389079382591439288819530498266192883004820010660202294435498851131477069456247584469536462512380057942365843212788893600777686030347883991870895280954539523346517273686365229850289027234912978180306668296139278965624166352759555402002186367272673347656753561325777298427160928727924922306461674750308718089925748861106414269870552554497529425970553469779905238715304996937856852978504787987103201310019529437877871429247350694560091613218210659101291835347480656869362712677593553442229114819344539464930592228727702527999075342426071513394116870623382663825310948935637896710528323892019803032475488040948188447340912363764674322876560693242724552510947549049625807664530969113148161134395635906494362363833779373955111365746215530102130542027595915839428779840833103938364153520043505541757253335515200370621681722836386972007963907350250609911350966655389550231555505988270006186360399263852189238220660457004269146519271935470050682949764698263196785235036189996207452573813290649896835236200980966977546509820440486827720495168372861982628556162241686415520775634673194544910565702521021897407435822719928739167786214491628316598698287731536311345077571115495752195179415595362128205168726181959508109143996432269852970080966678060088554690796270433151639274940087499414038735953595588659308134504747297472734231724833406790090168117074374465945684442197352766882632949249821612564080482078994467413399134404987490552091251807207727681684101411157631853239370985801497320731183739994200495222516198889849912800852548472167189925122817377986179252675395463048394644114872450338353579394226941189520993253376055776632715786799184910763465229481656635466387572449573194803666683690847062003634185635337660911720672316069153876494481511851152420845107071584174125735121061840931907082002636605879729583830462685066330010207421895058038962192554275157691858826719113848615187972122602228389425637011099154029068312960490456602989878305902421401808138963283898570018435440493337534444023570488445488804799715590745628870131906937944622621155885209113525766350429836096294049057878336870939004747139576153005829034342844566896907645403736836582335089551686399168080372804444487722064676706604980797523227484280717004476201775000462138095035694667098423764429666095607184869745266682026608613416433575104774833264835784484800515047451732953721349006134421503485595342785954600425492367354143934477219536850283521777053593045866705656515781146209290721075201777547778740040001006522512144242202859715238721801928089087671106878162941461352128578185803880466835392828414252410150387700582692799342303369116165002755678146902604374194618404595663205601731227178734775941991271276540684122704937931640983919746986502981718569314736299696366043727515316010356070771118451193972137546901171879632717008597617757047012853479840683225898740717422861521575607313319735212398544692972993108069945866605952924124679705728343553457786306829580049946015390988926979565690005358339282169548418391105247840735716466459422902874546011501684339824359388218543609821495224486121360068649821651530541805857653685729619988964234690638662920832230439296271190564963470320431746328186867615110041427595282628223650355949114267499579342736300640132840676371272241488086062041676031327870730515466326383048799466871677911693151303243325866215629239505556626490924548755362737553217857685066682061812524429154408797993089531130063298961236821975780112330612434792386440028640100866785233794942349858523051259328027529140635332859533440177678839111360020938010026545071104926870184446856236261607607775502589321200007218603956911143182404845027392777179890120141656899373654356586173993204565971222261016016288135908938906434539408895551944821877314655768258601465876713495629354347883050122717759937836021811461821019609452774168968102939976724751368287802620284182078899891412641118273929988284723329394561473260162326749596189970464605619711414305468667399728810996460514666212868356180380606654926519769337508464638285800652995778881186754327277120090307853651367773392488946005725127315153006284811290321238238366816683301539542417588079944674625131858714505872311606411913939614888869440779149874408768887125900795778395345573191804553543152250195927095631540567544362848761020492574298234591527470036742019982931302666691046996015300750497916921373468929766255834515542923009797277525997616436026589740850014348216963326403108058447915404664563792433310383540192328846748661630786568034912111943561037432401251733006541067972328397683353517489843282626261406697032425220116275388763129549531424482045631919541920308208246219235813695212176362436825615613099930909272621130917343124784001684111112916775982252270895868343579279090204639412465970131685658370325248832805622569378754875077636205912078969079560273205412235784851894144867995368794915601111011930809912452196856574883584540079531663242490279258199714601744642438598471662740017701356143556785737289301926756236369374714019598283808080010651807061301424639525393036143215877682565865682536896650486705218943344798380855587222851910735556964766766615986127425161577364832484785236305425689768258912153331313018753061888463771896638157322211082128259865600221882878496581512718791551003326094847790597928926982173880603306481679590327407916730843470918906910088717562155565777362903784528090636039507562986630219853087752394760653940644645291510833258772184521008795503624497443173677553565804170696861268384252585355038554837951477960717600898546718270786080323018060051892779381928727296407546032969910173995725345582281462508533062352377009800034116835914605140190116569647750081445324007325222536730363647877380677719331601130716835584568525734414158834963553715747748990684433511275734494022826495093118666766470295227137307573986969210405301442105907368504759654827971028195065667833018339512697058401643186729582909830738528381668303592065935011849486130341100104709238196788539879212142723109628302266586426662591173471044989726054496437813036228731008636011108879808422461056042620961271225489540747351630113720235836877065554811168215049950840209871268495571386090167661178720127093926551690874985521388721569945868837757439468301381076514580677425827986561700608958664133093217745288354272616677586301160479969662084907693083223353926676865333151422069390336593080074867427115948141853345062665746347319344084957612835763291117837672415455703442504514923892081575821507148656948597077016024944889973292731732150757394004408280621622519243280077136463347446693259866347189548406313019826258090020728561417667882543414389993979523180398652847006175327893536252692302045154016391545352279170635864000820815495134457209105866348216666575406315080189317502121454358864564214385253839003064999848495153138890362297226752824482697322726582973404474844996198730326365381339000920860443167524229043134563021234853383392421203588173245381625472035875892249144091691324503998165309593738060118324117543334571211159645108749785819356835040165696569203048639013242817532353500059188233257730743035565754054707921529482492085024908541334755940351646261845060044599436514351480009955296153945996656613418458183760431841030129250931271487909370988490329250354585761752942336928171571205998666863690148953923432872487632817389892406978328739707954935925991153642713700600273512104988857981946042843399708402226080833491214040687996209306068433439629276301457350230583003338752294288931982087863317032176917387012899756989286790143615173965361067513886989232666883461053909884933710156385042948860023926579550723346184836697860833770612782857743254436492975107666209541414879165588630625775518893499707439338191613989070800653126848662783965896855484974918702248167003089404671675921596142739739029011241779697022728332473957483900115714011637689733655418417245100018297120480226817851291145543693085142967091209819460212625934831825911698681207051831529858932883718596531110806856357301018463782902323720601577356478636538026659286314256129165126232535263040318969166674012717173329352628079948393946180162943496997041440865347374408428017720497193746139692360204115237364198422335269835927416110972987789289443152901509281960766638802925096807676446859305401553001833873170764832465075673331280122030101052048988948949953438775013912741652110948971142281385570385260894795910808196304663150149319842353954393915685810834143205311653391463855629790364267289090336646010896675107256070850271376801087068285783632007960237391047313687114070325702166179505510624901400378510266382532415459493144209104634016253016238947569667731265289054656848519531539783601313621707409109088024305406891163168830690199601089812361777185554725399102915124522145436278816467696781116650988340865368937207928007915154353111311980601492035569281312260087019709983754266848930794485411179199822398517653811581800726315032678917918564067153421773252174380366477864730738902864962969626436450804262934636662771920060573712039625725184655069048116469478351383338058855429855565995070269383434775769799464133123105667124183225615121125530838914983971012407363829249674677731883801682496887017086923709818730136856083340249436691616598461990449715818121786102039340877053986290218726568613612948537835651868116029808858726896466219086562631594530795122358751570662943597166815652043546970253485326938130505176933515597102631039596965782387281183055816872643448858115450577611544375188707270796825616405905695525604405464848755796007961126558787259273537592065616880082328862811131002769559443679070399486590632904884569433443339776906658679910756483715720022891772626626002903266357940853162160813114937547804743784457071175759052328931907283423221617437546128675057702663309973240809607346510360952455657807568076703237737427982507831250322853817264506586621978124278880179218460003384685272750186944249698866773783237631258785301811970705941503516013594996457903000148043519942240435129744619025937406104764110778678957376995058084991473887981467180821199615417221447688219938494846299411433438412968238318508810817213862278601658456900901148992051833448700026222164845485130738274858311126262171617282677036920666853705550466540381427928203858487162275578240185357354766715411729526937611656967592846166929578697223991234201155647293659227064796069200416124683703159685244155001908334687723195097611682170440650978099847681271477384909219958868684029651573431056399507692667352993806961947065998379681044907563590255067271090726477300092195990701564198900533255636170134726737616555706164776044292326572846310898857978189949343911078240569429293818753669577975327715829441896721129507600571650319212815729957198743673847271581759194516562449982657930383700726192501912147114705695849252864446089747997402351073735324130338347807350334521312925957271006084738347775080385389531243444916723189051748159730878843837175451003374659881904674818210625217263425662766825195496585971733384588352956425054408735228914455949034931142043239360387130271089007022515565523747557973450035729519595303235069010452917232527336590956034122689961755419262873685441414746227811463999208680153144773906572459310971291276124488014066970145849046199451097491583473561846772322932278468696284269206298876393201183858210197033183882533587362151168549265753031971239414770699057078316394940963715331911535707068286621945213625631567090083186317438320948961130721698290024242265467252957387505558362694321861074046336103124539319595136375300060381942474269813656929831743797014371723660191313311117894800780955479752986490676111415874281825706325812670146316121627410372970221487671870844786285981034920847185901728012480543287993238853720697001187668724699146872155946158869231031385373641116622015141186456687341560611455548519947860520738701471934098642899997603820553288967211694195842769763236151870838832952405864501554643274785912179269876046338324350528053083295119926960741005918481319285426968689680494626268450477686117167321294729085685067190673179445398882318637758648771335377347325119779007279945222632658106661843083355743025237656445620523548651681961382807643782096387595524494379322676703023827414876615248299203112028924764858748259076294744793245171621064477948479227773122086207215150668171034974439117341636915926663136586453588894368289256226992316842841013953104241472348967754697132100347689698854242148488670906207003231835937189050823354744585185354475412216297015050982977886380269975621111921423454658921736482483433802310340700490039530143509776497665181381797901037729494073520048554625382418230653576704158522603385335637540620619226654140233374869924576857426085190756143263660508265205170052741961226344607164483010724078586437952715974906009208082873676526580884091631087872378380167006455135668158164100394902057920857153758018347609369563799202643435487420188928556732647888609875852570080572738028471164884397049818604778970701936063493460239179153113559167990758270319415458154294768693383189805025319015886884130867641475473253322252457398135544752315817621698449647934499917346857981968963585815057915651253344860084811436087936978121096013619377922896124950690630708405578805787433374173693645854913300747524217672862014562625844480566802819709862830574353302829054322993779018037155721279383837993072840937253850298407925618544702937151795635924718057695255824582215420771006273211485633726097021394370334899933431088459616359373093803106742753484472120110950185129168835765409916715907753658927732954131076604240558007079624599391334781583232074614367941022224385984461232563556638538170491387591534820596682040682610104806290758096233381894562497182713836281258434648967877606674027058509588281469215585565101444596799676211175259247338468780210313765876911085794445683198505021148567483494259656640866835729316194087576872931233146507346918663638974596187150972309568624184705606837380969972024731368606063149286455850016384241514067728842374570400767350905464896299094484479012925600926083285050252339430301545611946771756059793038410537743551459116354376862597794796929454254612536974362494717760963495436612796917724803443304193752993844790657619165103460551955024664194828000957724801154951574124463831548288004531465870550887837841869178194789768205707932161239585609610325649900581874308883501688959693438776907646341526178385346577983445159603515879559521920546440536974577984912393505071809163580926773963662869459777276011710840810156426841117610574314973930536066730706813672841029813193014088360732580784483775783597005005295455977281505553488898702096209719763188099826932161268303670074040074809934493880113925086664804871061755447087042993325419943035393710342147483621482416118645838197638632958632062920275628290304288334455490159199812825495153275995926530996729991158019927324565741557635518897156360637458861686817127407687862122513576129150344790516012600837578544503720268334739785879928628875987323328712783123008308088767293825994553089488259768409334121928181153257046309582401822030341011624833666706546998111016270266134936618734570840369478255297454761716646241077226955135639112952035391806585641092096873235556160535042367497648485062389837951276224111959808591728740407502264672869053095992179156559290509045975327951325922355554820910715834608478760535917340437960420256759045808887546110109853128915977071787839469817947839233921611085216156489510975205928573197934714123643436011630360214014193718362878333729746763570738555338859666849470672224983755660562034178621257654906332534985182764159700782104453070582975315898037765828497089592463048268081767087491278068089328258731192899850407905546543786326429901145776134379550327244287286023082877001948413340173361604331970491071474338351726755093198890884882492247348435421929734545102805617447260515696121123074574350422348021708049174872192784562796724535547947218513768534461020175514871069697988457091864881072979146155635116213158706826238396099578285050598392546111214769833268900539143377099952272311797386563601407592466747185769671331842718573738568983288749346428716811681099545458746201837894201600936839233030521996931868287162724429685983640204626127313968507464144160314542075777614491074727801053685042987326796658478844849766372499175796273135066361485434782412361694815839252440234836672903131540258062942588236631989619299069072479394377282343017637552138140512748193693997557245524627108638399908090774034678631137655889536179619795052702868293637053482004528375964898162646383677347307077855005441681365427480596705592297964730523043986660344445225581697978802780344385365443706601154669634600863201355106433655115109422125823820058090237429298691192950569596295811276634101431900379294913974574615557223629634436563174255822645368902214440674881332244361371259738658188075819975080539113842168998011469594231197869220643151933296408577814637880590296894817110138713677717675435008511138099696422181678374510623567358292729417959305617926714251246648158654675556184922522905238171424285619898505193672084346724086836120296017095435430477445778820897204133448211754259002963269848104103105118432350978671469998817913713268518867967855469054398777120903709762424375263178026420795034768207528931362814292812052527568116356368260618030638329254993142004276218561010122531080556178279643914843032616571547150840443261723215974535321065311171810605542625662067956273161998421729869925619304124267783738633243225547934258471802534536987138256339731891542725708840833146622336589246493130269629516277554839956647693829996137052825168423535645544628246229296214148975153162759628678536459298887778153400139763550746048311063674893649093035812472066418802540904635298102307565429755440644138913877633765895300224073566993348508892623764621645167202126163448959797906472832567927088824237325264437839089146856657309658507499252987833558884829421074688311339725515332903127973561997890389530883056091567143725449101753678783887607099628739334311285898406447416438728189541111765602590141445306839699112856664604105167575445731538336917583540404202815633225439211329163891809179110945139763764270110171731636755332048256518537895904863338389271016598954606205952796481549586358091355175637737527828972559082696268330816494892993087246419439648867788822145626746623601431512524410520297332805101084001930218248604774131443260516434395563763905924353347071507303687993517112333719257575965183571302983091207019653757095369785061367567682839483682574664491633224664901244361443024762450640356084946903476091185337214543943533551579417970142640294876386027558652983138480249779928525064725571861278654930995384230380467417923654738648471600081927308156747100811490747261996571724983123266683124259654617509157234632429091605466927107379847166507730546362917798696942691142846767976892233111636155871160371586055398030222340648818809766825164923831732412379090273840300927548838790548745535922047804361556588643466059471271513748749428762540070897025510507845838052514094974041806471568198084417444773984085126868344068947100716056066864837999204596937921665558530793273687605562558009112696154770947657403492819894908403261132182664077058555148177711415627710350018059415708943454746125615060205355401463542916563099758600763518228056110919642564387725664958024493137766217029473156114591004098335704320574910844436908459347784490695123053328303067887014199189115858914411380086926297119981215550114206742800817912985601679223813839516626959180619328680949028740784099864867186121343411913761581339702786560611417127675862734859822314894703569503571747709946083255677734024983165065531118188926365821983230810054153554884265320480864977499375808132871346926994751626475737059027713590243815997287274477941035002388592548340623471545102531433165340869452120995809584822972827418676255105082762787875467731905067338516206653939339663797613970854619334033874528689541418758640180483561886576150530670454577148056087580287819363334766788849317755853571693779152041165720275638746705871455551518612402003613305238656842043511163779972999683921577322368138599419164209080489116561955568861773712168030406747845920899269660815056964679979837084073141680332389422964872509940503627448094556569865255567699686791521709501659772636548323473971710847804520110844252138053350491964520064444626948110333205826443802661331088788719383307119881788020144995927529143622687148191086715645730324804466991422616516015697405396956415024247914852746019612585054433076920913054258209290355494051953941798681837828109773175046193390049462752509489717947981211235273548493019860802188495598928230580414969312686053533073315226842455494220805177264351689033846400217971022383867392523797892412915077308979619473332927570220333325530228894600095658563044050136989764676214462427039458611313288656245697624427815693897677647751881219417110700071807361323403761988310786027697293302037639182574627995127824978570983573089552041580165704858540335270927252111843609369341333118710059549846140142446493750422780103917749876036574293963827676255622316355447513508433655586200060668369206953088488039113468217017154467412067883010326582431596652539098045497262407912459635687679122806236801188418834227233485620493908759290014092525369844247321435158981349598191083847196380835460360914067833742807223024220301762557399467022008326500396704421347325680981689163506587863302351546325456753979956746615162468123198942000430762006133841545481954845188852617670849125755190280353802623653794398768209701731350978976316242560283330274100323940920317781309617191637903356642067672472310543396513324044605329795601573857630444505890327080875785482055541444466865666067121734030624141657026062617570025703277041034446679799662362206370061177443584033400830641781421079200348104802390001386614852205141409305444973477094997489276539787800629700087065116619052584194568078442755032998537812838455940703830979871505533253443965019069362121050006537634936790317525716114648207731410350098251226442753374127709618937723715758914653525149877674087095434386024975044317937379814379058347968401551428087019028714305718043195527333180449945002010652168291552046345371048926216560203455619223454900879312341132329568690654184620036633158132638180786721371081956930428841383276148088706964133589415392982353959207948279973729568613887853407983208885431428011241001162837607166864166104231583307126405427146715299008102326871710513463757587962192479771161621139418631107678293360903734780970954779498334803378887681244373576012328488476897253480966146844796274515138588350413753656025766996296750759020930956288692961578395705013691576209064030321143939177776348971842888624863585144533408001535469346597367573886391283626024077347371351654592145359303758780213797761647008151479915741448974972316272767550358936390417144633475602325995568588977218415259183580223119183484724552743833526379691469910336053394447091627612840521775007795228971271825871851995802712966162175741901643818674186718379975043612638527779764362547292210857653750378377191032677551481866552056401691271425671831387179826707141952161393671487208985562023547438997311233371299966886708338354491464425006838005831421986403759704573376319916510979585222988915546516437268711859772821141652910195310297332230997494295231214557451825743358052347947765353313096721631668886505652734853862254457774479943450519315940964097608961975777016828670332320970102376179058357394896002186753257850797874258901756762871237977246682353892495131969041881996300223941194835968399189369347516180165128085834886066944919028962608754094148736157685298206299223324669768814027487500641033335052772756099603862850127124837374822915448050701965510237766156269960758650804214730402493814410563639954528309635278531538913504386131541859634254938675433172389700035189846694587905496300560551614825568559303116827896164289677687246158798405203720914056010862151128143595427316440523905346809809633228550080251903694785578583407681331964330459238826555385337271207267920968061908360070630199579852483807942025399835867310566773412966101967610679029873267713938305880943337525942944440437572139588864561160957927882111065566403780729083262560631944568795251951079769391117705769881103370367775066624018398314577833637710261081652503870542053046025912579243434689995048583665906358686561398712154829898178266746187808032361952441156210978916950966259638932944380318389130995163063059797861748232080809643383970779197759061996961918770767776492570281774472040993442645554837729323721301035981629213182596045962827139382534519659412179919692732536301425692955097705264151476834481635115729307065635564628059686078657818135697451005206744330273426879515675384730067963836020830956633700818950287998407226448732116796571195913270392509748495800698616922871303494615148437338235403173482154761401705843271309644028439463572050879643264094684490372313744734038916493168796451657616996809920992868242566644925230837716014067530525482136105840189924221589623172921551035805927190279185000487832864894003460275928002655405061370863645599636268842786701307661693833507981892119158674665811818132013202085508861649091546555444857554165834277026368885545907385529096370715200999683330754392346876157132040144733756907263058086389992165814356468486403264310855474821992652568760297197230711965221500044156469390584857910446681264864240728236025129511872334435043191086978078893163766446428874210253916145279789698447722660615960253810526165816895927927353076702820360956877071201864038213115851365626868435381174357111567727935948773320230196417392751566257962971696289747451900223433950749009066156659200418635045502960966093193699629927650764218070288218935646984333174632500235582710167474386138721811998942907946696508765005256467404257454198523566730880897097336659584209412844517610509438637984015252644925989908661248919213224186579040702837099719183270778870891895516464673825523065524426979497023974418223416030694714824142670822978628293771060872348555884842407540220936216788794713765272186781933043690543625449145269571270928636891415887687036315707279935692574374981124673649367438330302172486098732205519510569910918907506908180892898826383112513253958725628242958708385910545651445732832345063630636564553238917064979107196294187891179939472230753763149854286127488979080286518501626006828071712809843930027721493575540577747757671052966258990703382074358685698132385543673204731844356240624631032371203209734686594827282897747617525362402153581983386048714179046311348425824336135747214561625781632790808184696080339780115575029859663798624403313819765941281705644999726029298671806131803104623661024642207902681426396820910894110868902655427925453140740517456843314081194095543525895311913388240725237214267686454086939594644590338933417842437314725739397591399917925673741874184652522867807903542882136421009404022195906936929239232096197719095590733449551467402596039840244307336587947374173943294567251195606749224032814513459729750635891251276939771828177490938886092588895696297789191586386179378953520461830203112698644214708178328209477848346746174172372703670622028839358408941339874540872072613307812055815195970522246025789422006113049788980154912168126030885914298170264972134846717787553651744831396967154820762610852902711176346623099554651876672367236185124486958856958745472088462675681361932486943294076881638044664369451333932430722061369970513069039081440660313490012744890711111600841893403155157952920422142715255613998793806901956583235028987109765862215487910166797494662516797567706502521372979954978580213692682596570514954528767849455888012737216857825415989603279910201377404707155835746166993264292630459794437868611567869895717546507299590916616986727010969871611746460012040325650839982418760232101703583324282779670650986199059600192450610730513818202676775582043342943284708403398804091323329040530204369011799627121321937437339138590051789745012330436236535238250601436048303102655143319152482923530884215608348826904072363300603732104943383223688242559148422186239137474088249826380897368025734830597800391195398619610658719936754444477989000288899718809070553471606292272493552621275278150587112529663185126430948048170400235616310486280230183189264044875900945225224149704192847658604032196676735534186041196213715804518330941001044503861302349627416149048307521051383358624189521865721284484688312249569800871024149189568738893918981694891298429109458900940900037424692787656258986287350042683735839071652886926743500401247922950769030741840157474908536730813788787783744403725467981148636573153689309934121337342856788021402897404416154615378841576302306548466199972452138985624507718838853954923247755221330426762672241119415269649682390357699414852192101681554060596510754092876814187553991865771463065097272841651280474419702792480379032731617364451194913422391316698831694367947225925860241713217563780897968242673208093009575237118210873615767170298456596358246435055289694930753651622519987640284398334316632688516221860423519767360011894586999860184961921487159799864463417590275656126423394899584945634923096731196890856847934967695999033445638333707103925924004960295371089128684466151279218256035832634182560508947180488797586450865778605616228536325320110387980767589809743746160367136230627619426522975799026298014892848181207277243328554574267548049806268246046629704596953464996332813282520203612969163730810160504800098083421445165600588447433654328915797122843655131122860949209943556646513394799245866120084171606577696903881320248135168776665496676239556790193051780415488371995269225827413619148816391894929454084309892024642750191203467544287695011583858953096298307968349994161122629327860008837401515603538918400830329945153469685081108492576972739527142690713005485004020277451283749812797495614174297607927062494582632089323537303937976066211944037585148090691516052620359022836149341070894632761781870505233944794697287605788768790986551204801527539760839608910750822187825988106996690391994266584204853759927918511374053782093325670663671011011552012679564619074043522593164862903924477024935697646537987238670731301519160392232635189398246853853050486826754918938280280137860533790572350049538911224532286792902111568114761094685831456566138336178487814185059136109264735986317021571636460292379154437352950865050676435801577522482727730923043189296759671520751517544068783128152652768482474524979846046066199882705094527063279281718275906753512165716486699010337706223518949006703337979384259339180349004066377947390558870894555409035536980882056510880298141584185902966805551687612347622386637647559688682882097791314645653557246293469699475416287589694159049717645459296322811503544873945761225857179068220009801099113610079626386327305678795736460761138445742494098728785423487882435308226194319288285744842977682784591683480255323048083698396392162872225516574837547249093696180881109276346617103925858049168916762368727404794108464262296780540132996240419910847917783612164418499034616162605975247361679825891581718214408855635292620248294166489489091079916731006749264029892072103174793524793387109611429109016632278623906403066618559268826085424392849680851677995337969361664146604508447952086426607500880200962934000481576749428846745366910132239553649242214931948724525910564528310482301071606000819462463469937512722453236067333839483945314057293437430660256306994553405636417576603303758662289139216142344216964315011563056233986501998430617627164436988075217143397223965087526169660543660997274904967704687067339431373098199534295263670776587309800942566973725298645117976263417222993904096440616807682896533206083803553895768850407867274238188222740514505949851829367395095035642460978563675790384115167364754399317314860751706232270347458353536520711687938317204939700392957427332905673013604607627421007600047947386645365095397240895038651424650872393806860721624722937792499724773462774111405161440132879939258031517054308674254805066990136527295606935742090935787137058616995665118843154644000145200312037718597573992264247854286526114244915419188847664187762784746057439041133242132106641945560704679995936059746032226223439654420025120887695385139362572290728602087459646891531665934124525895345457784334130654159491625855051679966928239837577941754063038986416816554239087207728300348403776410637866185720430753033394079300704611145041074411883290856904517287484789903385168497718146130753021749356564830692836339412760114519026868120146419266366386033479080567780347504393364771406627396646541908488235568773055148261603636022358522074759233353930755168942758052385225398544969169448398743912578004976773774244182594679631285425940539261331033550588329996905482388882784733785480926810938379696124651334099994078863996009196945412820430921833241868984123750138077220906232403813261538018764809320857203089860382550465062724575325833083495863867993543756853273132881749286541105301696292822794855255395794933385673413076861163586239375105640939616125605785263965324821653126457623735850626922987532789993781007608223501799700043991037274075770878494029300810968926478536843687606946677977574789349686595803228629731564289005310051683390357183595339720511340570541043924988123561277885909366377153775907524688238437425423889167547769991507068742025120385436401191449623950903786509376640452536566634059753379449700123034002001739836608332846918596117322148983159323558134777185984438838615664210471500626393749588293275831289754511590609345223465006105776656027383398525408393994187112882576750422810913264170275727765404876264437169610730350150278917164978011737889695925950658070448688810702319623619990795873364039548206887029447886402795134298990571053824303999740081206845070912247275832689931674364103126330492932567225823688606456741660586105031497831437390844414181892661083561024244856210077744387585851001697437690080403934699474308984161760355145546565679751259272582718253120031847459050337754647948312643009268808220305579579398427977347434229843422601274529518470399352974195981968242287170228846195282149865859577888326875404258533399008876899746664575251402988243346810859694158791048550643690479448316423563978866883823196913028329930757153136835390437694643995419719537171862226516542202796657445978422928877872636705981307032017981839561305875508912917589831243750225834282518022706644523714801464141738433887041075137629016030281196690527753578509263186129804954647269569234609787155571338647503321295463154975289586401091778941043901585895378178996368941808107617607631013004854104032019200780345512834181451095399668654565425987734534447743559285694462809127469691340829395839011056159287897325193374720704261576489644238374176397279643599408816325790709128676795689513290661529424879976800136697485598861874013330093086125362143981368811226349902499220396674135181199245186892882015474109485769602994956082384849949754435277556553437615597172752359219697245115217024476770041376568766558149510414784805536027537280770568198895376240786627994764220287009617318416805470605454204664454305040606369219301396761087087960983566036003953398524896330554874720629519121578107803883330095748111047758863891029001832409660892630355224537930887739220956849982635297530666304771369215943811467166518220433001721310532274332118351929133743847970739258112589918447246630119499310431604545585524437835959680399571033240052034667450335968656091386951085703706989337668408933559819628973205475467795854181121504902040825261207794652453029699565531460614186579336362196902253697043370733120445288811025527074269111877047440135843783982542999759080207919038416259968322511947857245479704913091501242680304224357500800506454006072648984002792916352247637040790761987844366526558547821417879493192652785145206762668347893900197266353898466457222531553158575494476217003652642816102356035069544956877023849021885245663461853897767785306631034659398234984323118210933239779858515488535425134011561320354102206713692957996964687389231841645218844923807926852675306611317448729283599869212343722611704970850074071648938682821699029258800875130975351591879696229922300891353976392711309271654701044321968403845733575525331227202628463562658109481834034979394715330794148386848360548851160898678287655302410487851879645935931545538787505132784525785546161742720190170460549177006431639596130844794517101088333257431412212435565836897535142020598430188664713083129774077999954933136250377265622817813912985679527502109819852409944687176821689404239957627214913146862623126980142252734968671412448380181533958737685214565974371294878324907393075253424745227763131492133011414991946162931895422752929142840523424573605063348490393436092621047978290971695739433131083209588181147641894444238174339544989681321275790475717083516568063583725601280806353836394943062821861713651235731331821041933197024054145267776531353791126674971274556421075750772567090754579082594814803260878987549792046260444362532431172505608482479865704872847263554015928608115810907504721918720701855278388625178840439425258605271979703016214604421886826191678114081304368692586388665974343094979880148893662668703835410625053291353468609830548348060165698435472913161560293572460249492220353226502101734214000423432402125269312743033210536516845962933416769503633664066798471346403193851249983465814788015541642316335003425068375407871280185965774943262815523851334492268964133685740982151911283610388068656317322872435734903858264454794715036540198906323856186040702559894536145345798904851896211252812069191406414895104332307994829181959400220769365565108158659035531327954143700902777089076507639505602992137587841944802484614888584239963432580426217235674318951252920747110139604841420184167642824501707531413730868838020277327731460097422916227753119382328732342717808415847796841585740930618074945602172422808057896495377851874704400753231093214840382092753943043296808499713223672522139933034343234281655772394680901902127312489821797911747084296825284593710556198262697791524894352451180177789071075937250473396802318152608246210734624351174893987303679504503712337920661086775012727369488018022428609956109090501710281082419252154923866540356881067508782553684089688948989189750585984910515095303652469503702473887341118675225632127055555002844250276832719320922910273106152381772975253735654118893891195944994604724321195111588060617997664702754053491288418053886732987135279250345126137471356092039949238003479984335711140773155852855680559302844720770674106812377030259694488319551489167792272057295197032823314995755429749126942908954263237515066966879041843472164596025704946441653632215651964418269305179348461482916096679590059460694894662672473863922774949226858001354366912240941768908975277138980784670091691864699704247928355601990046986697534399458384290188638826077809574564138531832219163145326347704802428335524534339947333887591177488057085685548686134104148497480888829149039363334082049642247113457152351634848047348935468029327715488131556180367879365460400373575500123564046788142730400785404186494308183054520819428558797618073162899254378191707706138743669227882269820529508858631881111759835050203629057442897690317181983097609775379288733416935262602438883498935552016900056241843148341301615657923583887873991676854483097958499987109476015550341423793661460905474333987017872435963455128259423021123121353565968855832792332993880693859396113889264208637955968266385916952577229174831742989308146014833721238338395770117376826815436905034242621776712676772809075287997831967927482263978549003406758979166483208129007025278565504315215281644572527460544830917386624144421566891967947314430984871374300935853759472963876721835347038479163638492720797791465335353097920571032748945142871774708299469770369393311060541742317725797009618014312189719462930706835707967943455056398255079464103905893987021336240452121399690150967320641219036133985790761073783987649102160677313511937018385150505258135253961099388486971998240144127604641413025546155490035474291593117550956263281291893882588259466109642881993688825433684754111196817079555675803441088454888896399804276230094163070960979592397812208120473446743526733442958831752931008008638638285362391276647300925982143104028466747364226741710793981547053623780674383830980928450003326922957435244240639132101189147197544390166637998864577534525947916443337300123510782787828403633129082632064096136843849223969357351978628346856279744335301929481756164199839721382959085632063665671486603545199317670623654977413016323611676975000549267975617035603494924126291199650244037902442072417304292433399996236281055393177398499866777379916260482141694036345960938239349106638138128018620239182616593672997455631100467531438398740073208539923808048340992338120847870563693230741075025941452449953304707074006769032925198432893731454895880808119474453179668254579439340854683255710455606503453514938788089306711498529700384210891237667135050155589863755885286005245604006957106791156502212341759099815668270279543612081352197771216417958445344500315460289132184792126147430147449842752677182810792840352477680153690274537754900929007572615719377967646882021553286538371232790419079542968136534960080057387413294703307660858567549282161553847325006025032197861693972281338582595260943798103647677261992815800803185363270548310547723454406843749609366221141164141202369053192243602887052704122519209069584451249698589053801487537815710872998428337262575428449811538024096675385790134927465916873115091043197338081971726875245358593117510847727154304605339105192015755429287271786177372569173096954771241168197585767768576335889536532230848293048697180734573942947401603689977626582649296123703887264496919571731614656650022527457257967830728990904673987496450002490352266718723084769815362994261465409641370094540512452290602995645871130020099353354290357975569135234702239522877290872292468511598265871662528502935846580008885709943700446329165281441900897985441486464429509695647632511804825255822503345482208402487048575859554859236900729663094637714476648295637016982678110939764884754808970522829084211943875653330212941071651598455301263437469531796254387733164529036631251594604628597945153268977953520407401925361591267252865608965388852344347656462928368025458344587330559185828642615999966574694548956291294856542569115888936504353921728983633738910820580104262054272391796543606808962173374596034249722124018114988016307612824094653794807229164607586277510599355165902956663173005339801127387924906503320762746719803319133287283966942582925567364013681621933096809441403491477506359521593223911907829806533309918731768101219395543468221831998954281081051207085773974392392756950444723017741244785827683456836897309570371881023335400255283154802986947982921028077124458544956713059853438254204436452679736784237012577907567265598496211425012079488562942134117479179801384707533698513274018554704708150844183343690186266381924873781720886094416166042183352787400766603943954446618664896517801069851676477357717078692885193988010541051129506001315273167793365422365600687629668962829882521915487661227426238794702612635538666978937436694991961720443486878819463687073859219323130268501943991031557871162173720045980787682570097830207126914208109126579513430235050829104198439828742315602646253836899839550021593360413249532239118411626721446268763518142901046765751733489560917643412213083212141773476531487347221603684603567321201094284577970976588564507802293656118585027233166119852470130949493450899902566119841276839284994183185904783930876709295270552767239351502909194887404539578895912005152830993266185270592198150848190898250127399298219202069992797137401306652826422460082724423547180497469798863167649108477794084425213009225594074527544723382341239563087606093276943732203092565396420950381799851095583828550476401677813277521192294059754551955114724113420311459922714407027479007173523207372962590375960006136731501874991083316418892382923367585686066968787078996201194690197387408974674290136955202713760016063829752123202498482885885784154588666935808146466869842164677799073526641042100881134783585417548962518363831291512363956222393901146465901075274911214898210405752717827097805717422980892568184815506145931544601889016538949959771642593158950609018774492048606898531536692570700562681742754163053292446771601077367209120011963446747740173884161129928402245226266742836967677316373594620689991442809651669645782216661261666624375617869267134965889241887856720264554634479118320885022622659501215285048456957282871273086015725060634985036055056504464590974270080511233636764763459950836849294313622726164908319523211012383154872199899328449460264476780871087585335112783680443242869477239297653342248085505515430607227144626516642968303164763233482613524662869674760292526303219500041468441578958881800302100444838029134698684072269638187306934826762526523616643899190673008409619900667535501640947811425991809896705161642046651305511008374413094916259284575050418721654482160499455209717769034169353216040305824928576606710146423543785156482597695901750414229046258482790000747726890834940770601798230066867595439776024867903910988585662667995784311726494311833533432118068850250213121711852528567741899562250919493950764139991518112142381463645359526362492815521721033930906048489228142795326035300265577030148989317661144089872626870560769337902777038080953608724567419383369076088860971936942486068452837304591032479131140309214271664340518196593909247093669462151054704459128290859669221228532115249578316011810223328496655043510441782305326416483365737409490682219024053452551872215255282574516765054590673861315855461146114660439396047491685812251727325205220030740657426251009696362524224020925710149304347491957876426956471536575589511391196270240112607945332563115643542865201457302514721324460755334933968816940003560362512940355268885851801862916878629639367282907437895798638778649890147308649719415544398414799171598114001830551197782350817905262067041965781028538632659706442140347751238608911466662808566080431003431975238591822457150361385518430404772476324149510550809453124931309805054718869662508723218517861604244637167637317824250273828463973449540215586771652013183109548840254888185494589354763867879921015065843774261544764391012390634823881473372359394644516259379816715051027089257721519197793867008550838064535420642700187181448230565950832204510761342551068591889350967903656297630055778563359553565858100747225742669110685676738617706681022868338009813001987885431512370022950327746995826654546719270738491514692480059449298696869916546455223408110023243898634743044351326429280898017732131065390551026036457172243346821005797102843073255752132856799177530636362707081518436279034843973981753360266679544497770340137787827529327313122933319352917514822191634663770165452956612795793065132839314644686727875088643127433295971020059515578995857004246206953875912713374814472531802682238721147842453460658291142790135235093612588358932581536619392328738760712035293963214337917753705435589433867255712766878815927546243730808022120195436133678130937340880400114975640658583820569095048775389918918489337661541647830013910853897883066511250125165285839456957824270945602893992976709872316436877675186310986970202202100417701381767892191089806957882379092785434798459390560142775040962835696948604348855534470610568644664375187147399642765590560352600577192645721441961880007928419479779856813710477438907865725368483555339643831478296504295145498512379070735215428731447781557564175295010366611015117033032621619102908939889965610845360071246217805188672229734122626736768473606773410616360404333610982482140785453088937076237788748022507590749487480053779052827230416113130444194028120529719849922464921325179495737790620645005256984027101761125181159352090629565427884135326029322261035497741516348045155932503107310859469457522768110554809585034904193738299187026230469243004058372442482842617941763090675507060758288895005505734938556152490441477622893773998466352421140098646188351292798538756973904969231064063272634524234313458853430365134062147404207527962251265986848425626257744429063763458724520044269920403764260957333857720568937008370226877995540870806340750372913358527148308442012262396167673029489480981693079307861264900006259858308390192365853089882449702073743313834735656189748006471085388413086124899427179383315332634427138385186341716741797027908466903202241362534515684882912404630357335117037567709945983614347779171953821979750227789554402234674023580231215317445865494521752506000835683430339208928050386829156983693371738342998942595369524707099611347717593480102989780613588162333614461938831856135903321251297550604805806284076352055020058233594642024571968814035651023438833315320369680964517869819192627933233401337104452049914934780096950888004353378600287713833311928359896904493297929338760082027295643317665533911181747865845017835705216025582762836753868364707952914294566725587433312748475958995827524795500946401536682128658381892115257162664942098312789235717234660050454620307499545466768662038003247180276352043631223900746079472454877301364444480678851802059351435780926042634992837001736897672641090509050687530733817157440110311964472880897242594848593423987784520374508473657345345937551282235186700389510710301053713788711203515791006601567434408879704407707244898406053175766940389464698225764503085123172049643988501680131667838111592056172290375679332877273733855227524586174259093998820916887492120366862692936465835139559292675740707838314979784401088876132943591176996193552038090448975687111591558885498448907939201843873600978699740328656826579289833589143529786914276585628842236159477447910295660856507795299479668995068870263894798761404459783886921993514119452646899282894085110480200846616821327292113525666916494020346495609205360573544351953643581300367580874830970308880604228073419952064867830982552165130158919166807076464625260129440065921289394313728710249334811957797968682812314725461850758696321435150792880655478436066062987467626435783841123968938004002921816530550979500793101241892035488636476735464812315239220387674316290902123148291429205849174308717432815033043804994599323487514236618763437496070536906755369653176105763282947078794523442354680405022555302821778931079245815251357771806989098559652748308968194013095708231929487540119664600245319802699562768364246491624342865507109347607258007732515318307768789187191799009185148854616857804189691586838055166072851492599604336874272520021555480572241553142193517939487640327238840348692758251427336307345999930473510327646571704928029529051647975304180292727661343789511704638691153630779695595993306019350284469741136738518313420483938797785525222541914978358219849493050281439630498122313015102338962084524801386345919211129243849404891392806914334071535874735519625249109366412729880262017663147608931856257081775689872037686608255422260105076377378399142983190509098531931312826648786789611189015944137713184270763910259479895791756442502131748335242638174649876387010893888622741417021070352163589034136381701651085780047528566986246592969942338586320290699311498330696468253384433661883654461225209856882358667595175041516305991022615922449514380947180733681642615629912518654584743549718297446433136232286012543792794506048210972444867882164941923328781534568355626642940996348729998798285428483152741722660558924980233375034963426466807041257015843879425770336809243753959272461530273495877588509806609580445852531179280675050188120097736585359383422082823717359271337947792921483353721711614061215702987047297083317401433139794152655589859515528435144357956526882972260686892529968924073655459912484817955980262220005857448125010275955300368212941649130129394981865419894864936171621732099816995914278683653923573678278560143450245742332164413705290285622753063102364256730716307555056230407561496166674054205408189868851655110928837246311152056297565008823279212726536578797712004504526140968273114099389402892208169380122049812720616366009604150265339030026241084278031647114782299619417564282682644164502935771948960302254038852867565285063151722203683720085403045168215634465910790532430919637848486550877328920805748760624995111770955690809182218515845296602575781695069398163977476576401823142802583360089581339889320800552144791071680798671935590078617754565384180454459683838179734341332694925909028897042393644343571067661677109584929971871520295958925833646554955995976990436219341824464963798853626877285818186206076037378847389130094777504281642050485640525665645914002525311731643323540792176598791769039635293088858555104137783676847122994998488773902260023662913599077642345442189425343809781128591702537367103350015378490422008896003546031216577000293914472483948424577033302377631136229798100897384714589820134081452966982970339772741681337634315513423812767755848615631222533543304566599640156400527127275635602913126683880926129239832254622583365071673959900095189145972963153127956257864520666826836477460626548265787620109978183596618293192052283540171702434614958889155422291052747178170656804688419072751278547622959190638555959248934043973443100155153027417548812952665360494135294666315639524235546231782584268304463663192277641846100720401063877856418191816416981608613796831130213818805389457093363398353169753552784617984235913365394781219537711773801045611766714728979101549697458691135403265151189801496063927672571924797212457622418905888432736907003583972749623612552091141694713376508598813509222325817811986150563048012979811350029523243512105118785310083650174048127125892884805239346315043597600899614844080333067831343639227777777447194324494296952228601693082067565636446567718382555564098109975618284072599223209480164822703532786354526811285840292450527774093054389638738802364137250351993443862594452728397974559316473483513528770362660126991537273029081958417372379200400535742836473000473150073200823817343736550248751555297671929552061176646012096468002833551982601040797475136091187494543609209324985525319192219522618173508418683086190110582769455673569540194969984010780888072291216277644868168273078453628706160861142263467109283977194110994164501262805857866035007206404112113637760971069898241310311045826454109044546812788718986746642864825166097344840378995821280633115467726362324886242630135598053248055956592532156823928760969737575941358094629601535689129258515529937204714788546728480836931307580353921530619719529271639151255355349305596238452923565728869056061946777170516177075039576092018382587752383377837748392919421904901751003700011469208625194671194501876992678013808399027779453635963439274881744672860090140619884076951710198849738778733768033088390447645130916231447764984937349605344325424109302845662760963017948880423341397115692128836943552179711972680636179060650375807313869084127214383209951595458717029692009486762727995303057427582039548474990536862864990777342023522427012502503452315907387013735974712951163940769381000779086888820947792244789100362641144834490292142904090508314660069608873345557087799948883551067613239958928923444741362488757245634588782757267350939693040244964203684843333662122314101054300966697886571780000742725737989771788961199167076784920705751653083238265271707339106606006779637937705426467284881466029010858690688686964625904392478294435845497246055941968880899934519679803314400950214465006909496202748813627072160148747429307495225746255825883813990997547627799677763955922270913370798545078629410943616374521582090679306883717970823768336194817298183778614698310873518665527780107549364356309781432646641212031230714877791049368512020895749683042878013127043001405168243478702834208650074204393592661703311304259706359413774930004907064589007595283787166309205628213287775973375905068937509192550775935763977004355963610037375883678116249939971087525037777993401041130391101113251668357242614890435810970170738260442893240494536480870943084795467325641419138522438982025906138481134258712947684791139438943980371387607883770367220472238498251015583918221649544488601764829274922605571207276694312007178418805107336879847883246567017915572639177747939581419255792856597031310371096786001323424718666476354063646640861636293657490146848192477465349051300121189238684753549912790748522459724487842755993130172777343748891419389915922536960783860391118450756801591371997875002388763436760523970329134691975615349281827838775111356587478802642911133853603590312648926533619413431805657759000326879553431885658967776184914136976582871834221191040148990692409347946551028400426659603907284263716323279018946373291541480382502221416885671842996530670327353260100732481667302815443380297999907919125568059202398966666554471801015694533500842334830155186212581548657528585208291276583345724254046659058700959802494437473471494834028012041679224372634386616201244710353231436292513527557239760701601657322643396416769249747057594832850959911197097155543210442641801394378477954429579367752985908829293369999355712921771144936916626607817161758957578818958110674206719065063197253846683402996602256574562149931006648283435291866399081723895754521120425647480279467369546614742202928106737854297874042411843360123123527748461444451790132035621207285045012695495973045922984206260135408712759105956526183105317442617443177724869914724487340145562670850127328112058388642575091804685706188563983241804366334645931255712971649384002334080171303780318277105894558937566849898009276645398277569118860782057977069725234399681421050386637382340377083383663427243179086600451517984229254784895827919628036718573143243037501678398603441938702618503903738449085116448007008775055574307871464192891460416289573447572641520484455727433999426196909365203934519243521196982173503179650765415323747066254517065264474618827924914648162097189689753615936323281984208137827250985397477656198567742726432484503047759323415681558628509954205750630080144509742436865452072156468889016865648290692807731273626415736556305929411511982888452234581903286771170536916784382909816991185668605471995025893105809366737723132162498604155336569198930958778533555568499298629816089887828725033251412307387784911727686214202361333914697734398478739627858324158507061821882936574767941961253387830627534368005475178465799460828742980374234988524758992032746249458052547186452306614384422665952195425718014065668652484264971283161806511769492534939333071071971183357110309059648899163824058788695248947994306781587893222700134609810415504865164677682924928229354914612536780150934728572762559791928690113196162989949015370493153970541581360233427642217846763043517481898022310420028513026700809107441602883148856995588891372056402872126492699538867156824563339953397764533478441347607936338554144565364183706853235750853402049481619747894187950790127570426080211084545353173248318709368436894456514222686912529418090313350251991697815783511758740083206857344201418408106509761804024214797631135772571038737269965061514456647782971196219525239691825380646363987229578254882262083495924867194815364118905251095026893228724705323064887894335540362905356833723308963221777544402702057998371632007660133280932954893622974144674628008058255081810173351271545053939242692208543833498535862812790049233947598462810605618760157270786126072608068925507995989025796932682116665071753988433341414716648360264422471608992081947086779436534537381650046467980208758936350125725693347911651805637902025243068594318726807738215565093856258727622289604633743392952759011189853819328858488794668458288210500390894754469839607988625760821953592607246130719558559620098774359308361179756143927601160231017772249679166791397449117727929074229196038430355632450383095175001056059651128168929326990264833238503302922783397742644108990965030514079634014103857383061004702524680644013694048718183613654461402623335402604673384188876990192756165625067393215406401736231251305513842371979701855287604290424848724780855554684776521164641828508859437764962562062667427494029164145087258861498328087929244950709594870112628675516783778267615807521904895428659525657154769055124703643622412660762119796214768298380419816067822817235006964528631773762369429156511359502201075897611044118148190760989903902792421780598066020671154000132857021857619036870492263482613197355004693889729141143928806190352957332355929960723944528739463842075985969104618311768588774573402293840451000587655922793716725654101351463116317831460433262443833524098974335470412703152272874170085435216017637590793344884679387404301718488082762471092248173376724952992002469028749544929542278235336350394997982905229533162232030172716638481391026115867653658456264307435359742431777129271384520665415008682965350147319191536838422277851763452846610847785492418798899748376087515877374548252942927442722933113422121258207897725085585257364021483149049037882835184243394889095305931208268474855369073142723758424898954132765458462923867409277557852405566711023628994256245117488091018243631212108163650497947186430397158458693744831465211303807734593512291480954953200020049501523121030904656858068799365381688191480530087363150052386257516109305410481604801772596274177657924294176569271967028567740693962812801293606289288871486366867970013015112430124966330366024768441969838810062454574902793645921845835359740842291887969223941756173075009806015439482226606312719531231859445953710280607517840890003734542037303528413354011348348625359749271402112980731654510338316688043114681624677373224515368781181174927665708810474322468491870482385592890019004478522335181382992739307464399704537391448998977586750541018952864420038513182843444109070168500408242934280014552278354991705172767205325264531083496812420228337309944433211265503266693995175625341119441694557264110801569011826563936765575701813648411582076243790795082205097922718623284949379795742797755554249116554144365477596514745005141701270581657283462237283432052784842832006682647648810799409871412714176248036318643907019808905984855771206641732087763304309158385500071002765408161028486394063848346150828598881047565512191464023576022797478405321949546550475782405942848222193494432242122493953650858867906554605721802585690348237977966153545341959331345026982249273626148847203635559530353273376322151538844735214273439803520993026327783696845051039312626256393994948102198672598480228703110038265072619385684596104442960442715300510195971751628139676915093958637391295301368477450472905122149137953781425216208157840774940890812455381708799434025309141763046074747386084110320275692929683339601618381492845329163269822427597033727203406492205716618834840016136138308674421839501953061235733729047535500969574522715240829165605816513693732109053887437221199898468536633718426522929330135433100962364772976851205796789634547075174807259403000631067592509880718126756344845187623509361877420201320302739533916692537555725165382144291880957749476283151908576828308729226312433432504969224591424414807360981778877112055017358760519837185009292108990624073094714417355113436248446246460020488057655865547723935567687537947677831128911080850341123263703660746330537508557208753852616955808039944162259354315955750246265708825052007654624126767482410357995986609959962411161160736491389823039938961575391298018190020787529381174125323784309810201146392003562841702210661619482535081210184301230431216733911776834030197596899219152225251197556042198536807574146696244324813990163904801761885259293907204291541347629920941892465293787299201705545655895296641141882273834968489579597907776280808965079117228824341934719531086738166428211958483057661773917509297369657755398237371423603753496873710607669653921475070464041160839699282124675617294965854133213363811272797495648306988368796909288655485541367381931826818185026928353668114620278268092073004477421758205296569331622066327545759394407311894482869883187352903344343255730235294484140257097034331784861496010578627156679684742170045678631038854408591942784547083545657148812983145439739650704009516058805971949286255334131513244803978659303024534468752249636785229638243821426493138174001654357429337543839670411511239817605114267802033090994697878648900816985364231902488521301502082296280420121671804656474680228721192363152038811030838084628509612824683236638421737980531944652111896589353663235745521463271522852423935023875455725645478354470782092796200995610983710463047764618931394216860893388338008786593500266513840425389194020095382029209771303116952103346457802953303537313850391083460861376846295301287212171205039989156090287762757122565569404560771428359050276859718665396865558349679961599747175738236474060274063949804470388735114330519390685097563085628913832056593812235809548202264738877371511664311975942779869313872775200029005664838403477358434479715132427117889888312595412403287602170108702216983391170374137553341942462971750425460412335681595532809631820632285016367092243617950082838501310672725204361828245256499283902476432935696575078526176452200282811318058107051117320792406409116004951852339226593099348581749705462994115097826253411676250808385568030992084954337489039330463256573965873911212572259709268349935753360899825759030822975498381706406722909043250430385209970161089109998551226853647336201859970419653019479902966085178606640222033594225091337093148844717976123558920601549682842085130858844700743466823128594239386222725716806477615430575973945551446028235032579208497679825577034684579034126292271783643199948761409199108833183008964309493288752311413032953344380930709300412850651457912343105297085451119788352357980249057612787517777961626687438325944988044615113265375274865774283289406746339301975663599054624442630792537580178961730539232392932056311827755845888406378561827317862627594903219791583708021313146581347467694236660554980006666652438709994895799946568838291352189895430252652787199599191431942668765852157637847305545097405072511493981741122516333325573503946330397919002989059659712002025715705613402153672710342893780191044008251987241426594556463024676449037287837734687787651192760009945304432170602270103367917976156293173952338319264861347714919315424203049595914541376328786080233862374376875291946513472216159361702452298409245518060096058246588672977769509476833806168775298266479069183244226408725308878265445325824368469766373334755866256179952204693942578691260920510432759824556151117501388519667450767544757791972453321412947351827408001837571421857270104343541723161157045812021622813740124577893713191962510161888219268700654980913450886910562086733105251789423695011852903729236314384428238238801809045702209688423768016840072411532523688921103347882559855122502827369841507167407360044698746730292035811619830014209720295705853556963061629962763132524429693500514386436479109998400968126963416869705153787422855011561449370226636663342148454039923102112303233996850794070187698443283228477394234554327050913350651332380396377938840164316941828599121975903041334072403182225528005414634893038413937012188447087022570971890398545982565906757708925499471045075231396291795594401536922023632973318393481778419153853132305942643543343053291352293537442203678477101401179117476460348107387014757762759399721267623853983947522356089138315940203761575504308697703883184291269286362287988727315151795927840145438131412970631966689639821116615103815506305595284757969395583238888999869959055336787205753834300813930461364898684834728260181557629941363491802965790459086136904049270197335794955380936423164958536633654247719209974505665807362510753475823061772809050378162786656425931855116873581823457957588104457513461414997216213912681726987801813322250740496425992076588012896520827804783367200664926291273976664144726515531161621033190401655748805533542195305684419482963130356140560875930698826028131574354526653523999277113473222394245869278611852156806794399346606460344355636374603511129758632611404067609780303544672071202721071835156204675794039188296760073951477216260606550061874114417743181373437193131453095702649456586931478901236765104005321754632181500045157113929541287777806459904218559408858734001505431273004981050660231790385436415333028323813339242011849588152098041723181432503594629812443221561590036841803133931965213173164529959195816942344324508750623500739668049772792394008811061645754783787703307082557078435704244655748147990213018245528877499395833362218646688661592667480089073388418488304055274870562408310320973290838378380754391994877946219608190887672891377497347461942193220338877678663194206758696463271367481772791950774843891704124305669336487275851544748435222822226706329540161198539828030357052034956919843840510238340142633573196337636009832404046355058578872253084816667976335940597225730723156056697967710374810510093805522634184671235474112727880704484483119614731791485875502508065572082809288901375992255161743574568887422978627531184585233126175970810764488415867657888849421043244284047886745482943056330218673036409764391620746657638665568530632754081636303083925495010915835872853528729037343750504148451548956724902023186073935896055742026789043696489739154457641402895144674929861623549981281655392478226279344208678924850769600861481180130734001376175769726187099929977917031038775434147703635684070259383392722392507959754688416102325153643847717788952364075360763003882091209975728964491749759589978450838592420067916941013033879352514386574368041472412943244829374954099021836060341701075375662610254008479447296290706068530084807533322291584032775604693309296986477636447619491918682647001996123624548749312454444708379642687160111037894117389529669361806352137630464722348486266403138707395212927544555774893988685832156207723314719003737919481312164561830051800017011979567429778887427987597265912771800489061334469510272881153985984810610756436534811849891591161416220555698443584362827540645880399465749627178531858927070823231544719921685208062705164883821113746069503273266975996236358026417052910927383417342693776112206124372604282869270248623618833589611178453689899627977342998911553855876722738492750632040363315111742814621538188961550650851661984461350356332283200374499415077026500464695722828592617642276549539086071852860948065315355389416019506581127198387524604680449707017771767813886618608566346866990667658229901949380387970248326661828846462022501557114993057431074662098650555976843909803541436517336781951071959840261635793476124985974813531772421980732539650727629893490730396317396605377879897587569104468706218087270556402807894515504465169613601536998920008171011642092750957676962718113114763206831671141456526625398495774510857303172327422818501704804568242603832581886179843013151572996778643017477215015453604623836554986072401296913971556548989577980957481369595479091987256821090877457041451529020268894373639242635589381452630370475941255964241787526227278421874377648511388979390267582003035456576033283833246117235265744232083738301454941911757470250446729670915690507530099011234231404586300552883494963620312365059283230893488656501185314861248792178823686024143455722611169543891168750743978192136867850522494058831250720256590866581298732580815292756519183242143510232941329014545415053321584727094928195352158757951430138532538074789784093439904968804863935771867596961199033154668702683746912485340867093137051844973563187021070826315804596333507191725384767676671302643321382417520052601928448474996645783043051964103769161561604480237185067013448047962817299217123048271830207749132253321835732601722355617379705341177031448491030028618229500269830897538162569925780143624287014548696121344231129529684290577099014304209208090062666322175665738544114622949361317372703673928625269201172202659852112925326717847474588621338581947875956058352482895714499694362704034402815600602469398350764293014711028357189995175779284854187299398783811631880536233556638532697126227352331610737680109889351301453958783750623624986456879104960806052306064717557889679254932704873214713719738871848610193556126378191143211638000298071132046735175829810634331065071062598250725577359855979640626176380889578762125332244111835764298839869820981769114647542963188053274736156162301236133872245109782419081983633921229641999511881758681159127526938305796447308502823531595858604364246526089763859934834893250499787042332357750239447773880524276136765173546428199917529150210524918562432579892571535660445505593692482652282202857426919638690232090802682935807421692222371874335654318791639385503033170044707095915484504621429713149033906837822653470205210993770099803249477832786181042642960803587170244031854202197975418755999311994730778524967990573709473491750478482547564051220910715981977969009983356113665185546374998133062361377392640536004198612529117089767641808940691501644204727912963430874220239173363533867214450885891623826827269438647096402866611860018196371844987923092926525802072229655049645255493231135339342627714449903634186954358507795734651725102934434845503114346003827452466973378657890367982351945289473816846414770565677201865698073205024593097183831425241385048161758641856870347726430730156367470136733721195596984927126896640484831439972424436786691561884175338683614717520676131628041154394897234569131262394204949477327077136096453729508283622479431794073644740579841575915831320739144983323698498107875830230220884966929202544049465167565238140656200493345473104357044746341423400695026358634048707045207469175237370532918204258142169491676359760323967348698231802199262270139348021503215653488816009559246472658959408281950238006953861780668409189903868103282275540243809405269932563022151124577173642433871224783293865226703289419439139139932581503811139043281435594366885386418153000041769146379369907706933078075949391450993643309495546746892805874245778884681967046679289266103970381809553815386010443754236531111275909694169504342980263288052627316784305264630443784404865442765606112149417917955666922351884282338090019009119874548738362672462164449542057728579839348258274125178272984998439385630487693035276824947647340968927357976455956232897335741153127176207945773956705276349594303136116139289862672126282738114392631357722034827411465180845576455095918728262355898047068264670462802840046484784835766094711395027165445596446806016420370290422326499073715790848149867551390074407821233495067299182714570032912243857958004043540017598236003108680866414525867052746251311738158589201342420059719945917517980873095322154358602684295985746913359113338040115258684126838733014152596502430415289936726709210638309408577424582544248726864401637021884087152490726321454520620881436820290614522840961703405531884095602046992182564244721199080328092211052333738895766450074191022586578438877674876755674221031241699952021597189282991271753165036756121157630988599747594027224247591953320959601478860289333853518744773188659414172303113615767802993013451842997834885916682799836299993207539619105560310961808426019945299148944252102656434923163008730051287842647933384316234942287659206471919382266459136190680379700301477800696140706253945818894005736352171527234420202266239788292178513699136912703849716259838771265493730814841536887225978801461999467348993086294261129955923487396048436394498131416783287044360862901728290833844377817861357463316506659893010858582498340910991015419788853302761149800237103718451926851629433430801528771758594683331135547557472093349447969783346283855575515251224723379048610573174040291415286689239000849584974194229450398885630163904944954992548224959810022256730039644540907248688581952221336873030722362985089411678432517085796964433103960211572959430585796251785342419068835821267483406387688127204081495572686932032933133890308520451480216962941333182607599088589512364045307477581711838753317054156618929185988352459941724203851157289556348324418982499353494827558576379939029773743594036461344647949008566782924268753748988293643997234496612308738092325778806923068314682605416019900945089106604850911882960602265091344273082311475954046370150681460520335636738553220473265395318917207863997840259942941933397501102528133903094729553160098320895348861479743169031034642454168472882862488388975793071764114893077155419713003038602029552666193082759262302296288336827006440671888966612776438046277897439957007458552025597114592983909763860585804000274888915471378852702091502434184647358596889811592872126607716335284208064737521564359077952710536157891484666137417850791926206975506866157339806140733393128937556949450716136018844958014459849120657104203257892220926100386158246090243937814387000057461884568259917392107969198033422960075043291232037863544901640422953405031562010544798036354145137702280111580884216342049556120892311409747686415765584148435941766590533714413051080037101673849598648198255321433028347137658585638360095962031563137132728652882648440155178307006489267463031109473770468961807901352574151557248634857954016554372868269635717567424255983393353706098476077644356337758915443715695692538803639937586911717879411171849019891935558557743969138951097608891373221380491375419303669586438849752524285663545603447555675439191231063611894106883916503364884867170099799293050811725813793818400270043057506232350364921022645119910918982863496597485729931030380929105431732031821530145901052281882661946949182906345897169587056957282818332184125282809548639726515085592707879784777723342615727591979277273018604841568560115929807606716551122824320287886994335881270756965329277795675872499899700637024587945680189270923443685565092259593794698291113409064776926427122761760051382516110646835745752607721600384105410804114096693871427673924338542030632940277515275287149727001246733997185950032702630694591702860179291233601008166900481353082073969511093170953917902026979176264518835840122611748162002169999945045101581287981844711743242846662278928675896781333130647717789929801494155597922199700497152936385267820776674637254742030612836366535501678415875936560651584288434847342195744448544192319239487137570131414463915516272167401773876259981414471542100754935124477116047805901369002703158520015389115382785271845659905401185496325048285160594691569874980056840460250791491326301983818871315112778201465786194890532934724972610087651798054086432375365187053852114650764770816588965650266569673692472851142792243001438568733642849570250558782538922037236700749034766493865682406331018686192736005520204463245558967781416808511160754548598663752418438923438799859812735670020542251091402786608035956727945709718833579854750200431849062696238581388183478223914578353281287820576320468757918951122571066005551686181675984607784361941703429734126220457085909095791315696310884018992273525637855939614278816249500994309716401587262054485666741756416560719399311149346037860655797033651409313681488575230206894390444822975862924694775221412118132700381070284621979504049120439540725400023976090984929272205887493765356373907703650799851332603936656246268149887909271324478186491694037929432254336306897118727783753771904590520236364080874081371271142514640290829275224332753924168462477747189492589930703916291059949128771250339569864605311263939836734374919711281951457475200277415828282247236904866294774105646338860967301997480333801369488356524089263009675454142298735257495326546686443553929391030367226958636039147663801999125101816222112526768976896342236391170144969383920100520347415174175608253924572000670611482262725361826280125205736446634608363458058650851005617183598949519374447104556102905923870531731074595553031598780154036211725527261778060165387373175240070106674997676887481950714658344262309621346166574726561482168943325604863639724308687615262917221895256526590204178508914786255553849421716701845539548177638410419143967607782750328083841488862246820625128341254124198277594131331967329788368208529087979944895123424812927824237469730958532277504376670030697166164550576700894986457644088592095809952760312239220491553972545468467840196852170470329798323566144139768313575382347175532011396407970678353573089815691216170375114214328941597104133016571847042293653667467223351439493294033402772775847636890336129785721766286074188369272947751017035981803833655313389715791092277142864472412455421456865570769936511854951952718103186700000178467893057710189913519865667432050328777077352316555388999086346248106065380255322391788884519687661842013822778019661603980813328047253194189583801016769957643207684633712341928379416579250533329906454464499969437910481331295027653790194315700982914869051185206888732693724507228553223353024846898925298695121470980505200524729090535135448208630945288308436187234233265120074127159843866746730155722737124892880371204222735101954186600576720480580601949284610782367333730989430699788902949352060654679380367626544322069395487049989122190861597847902080815931997981767391104796656222417207921597619590978938193905099961064232840859171140980293363466507499609439158323537643135018509869134314503250258474187323950999973093980258337222970576007883448921536126850922013701056458235263688669341420017704954797162160167135051047284946895230630692972952650346474296566078605884052436861110825455426186234980773443989262745443856313236302789888424369465803954677813857933511254123758816556902445932722950438458783646285857827829097238051433599810921999173980486003407152442681525958831036332617239686020338866635029246849660296955117791844380491420583045314855585370199741239654086928634281682899287592965804638003698721351819040905995563114189673899604664460548377283089369158889582463672894638965743907905758251955810619963983517702546205816653585829811918178817975626673537569533215358065375987755193357740504602175803836340053790878922303054502328060020896569646553196290247306419541220032466177513596475749504208999593727401398151169361117807841307893955279764467915644513143725572052768184362721419518828779207313949421631147990488336550055243850018768645233231019021229428671740438582406911679529541654827770636280373354159440931246807481521571163276623561566865302759624988952779119050971945160323641704295734816747081401083924803323238373303284546133097890955537926293287624466728168917565971725577918172599871447431433723825163630709499461969756369615118639030626563043115652377777916059569517507381081304893674870294396642823353336276873340925658175503436832409346760658599478696181508611571647738618219835983390918630816935863684322291995337761708260241952013052075144723284552993096976309460233060719326462262334555215356106935989071035623830826968000726633031240974136098133869285452974067876464713344534163600728551015157019937015909811572793872153294873563477456196757535334108869897276665360690385912040639937865443201068446711184307656364007272741391907974553472608643069016751839263039562860267294641403860679367751740692900900543660041363497448404352152698568052939460241742969477197509841282508394982240785340740453668638140118397974151888810662106882943928360280962626554371928681146246112360779937512850011875093645887603847696550482246296747288677904698301029027330187773076892114687693145843228933515584983700351646856445587339767410490723165978946556112041191238801258623289307120453773665072516201600803705693535906297178276045603278548418933444709813994033665597234230398872043864433068047549579520719949361427491473826986013819491591567476593874785889941274055898410227581988057481222549007041625742259598149422348671790541913779573343280928973442922577690461527670940052539117914119714499323934742395861506760492243201453985359245780465116456194064976676765137436554513425801446393703406567015601608947579039482778394718473193237024102823222970678347540417344775351746305141549355600860647348221813802544852089174191194416203737724210780948799564922987439113528194162754606695565106249257009515036871252405964794549208615838021181789550153227791816581801600355587353304818913644903032424187279195241315968724630933817199387684134852850964209479387182686590289809335370766516757193455829794906480885988852495092169912849306530179083647179454874278729159997648670868056249575854216538797066811309035535201024349535879227724146714589664243839802275245010745206963649439186284164585507485093401858559326075187063899002988059628108181786240697496340541600190938610332740427817879233324022674671589699895625381955455053628801773835561593717122173366407367101969957949185655733804990552959361111831308112412010644512103839647615694217107715752271305653406001676566779151588809031974625955500854498274565236652496228687042518319514799370351046516554593307750840343831582720967434180047542454117013051771179157388617384875891647245562207787179754756783637886377461608678365988135294444793944699164091464522133478868567246985128404806612230600729001430057231128213157515300080423255953551278584138394985162157196353355863626344687602152395739945580509038744661768533108331124947962696696357605181418061850552819183668439980908944793110620464154017952226036552584281058248385563433713959245056339275754936434718340244526928457609592793510289660781117131519693972360409967361969421982309240685017370481455061513714492025370532939822759304637710381300386923113554137766604160882557506226204497977126610629272936980375315860545504410185358082934659166329205099775042492652064114814014396497642061624013352578241419296212418591423039995173522414573611447752099905344258731695680998399759145477812389720913996770309308466207948828026799916082967179032249771083442686477967609398355575564187740048100600519849964565412073718523187350219422151359694601446341095167925354274312149820901502809916458862356607365791245839035683343384304538614181059618009088306976899841339967099741314810039731248041504283484753391866212530215034183493822172735554087407805579509702484529403290999683540199331049395839422626000098508788693126092010386520811932830593632042612598689052414318468914765227908701878835393132071690047640366497202672632232741952955628875362085637515253645038471186495594174077755333488540622005868358978829059704533227192806391490259075327542465332606738798746771210485253045147725025246017698566238245063972667033816446611562340110454594820001339318921617332354722940716737598056739556439562115062561984369458504533757639921109466385354549073183718446737274157340836652726831236984428161938588226061823470750014457263437333184501515324666294736286994013451281309295677712833267567442145102243614258615121569235833582326884578166254117405652533125871084024022456627841554057798153115622549049338287106524828518148937943354970278095495425527676427198441825998319789028753772860349952035477417498834020601307664766499924181766532902496525275152298792260384372215719439554581982948806222544654330268160258195349706008336515992717107451264497473396514989862770938724416901869739793479841241166413951136079267730586249389686619550121110573742182437874018986930354445078688696915979545110453978706017848055781066260971991916886988777857380591071763577438869339289960276658661314094746055723358773197370217023162707314356964218943138294991118119211254650175209364837195872003573232770785988961201438620369934904480633348852542636591503459494302014861153399970436381999083361096137830098807180443923403378787216353409341753230064999883358462923910364995814030389070507106072877812475727400122612153606921814759488751275834286868741869535187024500003670765416420823983115209956623914019375411029976584155503334061382699987775407850554921803504745078875221022109685408773597320527833848789816647868964653975797962094028391684731662571638320844588088332284114222795174181706186565537960541590548816529306281526020927174382763288714624628952943922915837580355013899762471542919566325700608200961641415495767361499849107124806635978896012218839336611110078567357801594446010779453105608827905498623088343173430356685337518674842893258672759636879425055598028723879164683598281282928687750329736068835978778898425750857672352734534884322980593236313922771885540277360571954631322737636691882699912044510166652674465370473953907940632080638263897103699214623677673968538878962448131074645578507958944900581325614499227882562280257675830550672694702756605039499196395441716215317958499736177205649960856847698408164742767367176382585171485573576145615494430078847945836848422031920907027825503186338085570122704223699851733871567442493265140075635081117326640617686450349198727194877626619013641434955789258488200648704584420529709094602167510428652012842161131623385455966601418150651828821402385007100593317904356067610136258341922481057066632320648110758965694077487805101889683183434332403997922501082168333365543974413129539157047302984373191665284509325803391384777356661361018936000026707558122783742479036628767841729928078602767597280060098413793889730167344089223073122385457251412935896026649987990248551999755643081567403178279756999959275884326057387234555623064649659614572468363431889834775226478455586449524909378184201870383131988578803801929242584989823786457286077857425579701154284816833618356334158871924514936837298107995479098378164910105436733225302412468250823597931857755362405048632075016987726252053930798041521235113167619889548411984758537984067417190217311849628177756086158981478624274544880349195455935617794653563093438718380194497001435555283606024176920582417511609547046499792322360344654518539876229136838202917666065103164726234247923494026185911730395032669743710118300655834108310906409870122603836143912934535154522095132129573907124637750726750437761885027257031638729028960372088259561352060225650550496380846600031148818523678847858376573936006045387613551049495848518805695177377211263236461920999233633417301024707322593870698862471794563093052594915129467545700464118783726229661048645763911191299332958011232505521959569750773331975983557427576827373091706492263737951597868721972217554018134388443534705066982874723645352423217045656781459260049052919522610631242806092898805207904926642459246783813376267559391699772827679420338692941551716709773063526021575060539865706257316411571015984182682489392584136667820537599214711327622035869034898834751272731320473641716216105955434803006953023924615379102749716434638854149324904424152341821793756686466061659011674330620339666028646329095810511975119167151708525444788724551899645718312753485591892779955714927099963425340665146280332523830907376550215739395868097762933843874190695531589022584681640038637862836993479486574282764397320333125392359595408853195244004566952871705751261520889808798521917372965416855150997874385644701197310250295024554057949511477565437784683871369641512467617706248720503470030537440326375466678660560095374676391344867437392435341372887459453007416290213343261963209500538923335631443788147434518400303857004080783688387191539607392988028543703563695210933755624319267931033206451585136851808573851323473424235350732408538971343535410529422261160843441910720465985753017043522437029873016618356651120595364656019581956178835357129323080489875290935303172626796114413181317594104161728923846248857712652956389145115861871052298718844285430386748864842375341922827309379756825474422455415315326351113434926251748278180552820372265079495862561673889934698610680219768842767330163076665672097720177270564254822633332627116558909066474973225592849337084994555797420870544488622905206921355275099398512057400645471397462156825287468783635653571827556953858932196901239501074181284969022250198907268754801125192129896382247344064830389190853022784872918370895945027905975606558660982558213546179379436816747436288727038642851398385118746117353465675334894755867646385273414675190826714198057027253797111240761968301389893805212176935419126837015338806404033263115488294396727245763780520547328188425502535939238561859556287596160673548444056479178451692483138371498152444013644464278878494337490271509373155108127248729418728461350522774253883601593862613002722521648781556608213831854191767871521384738802028130192138959153748594542096886711408972816681621881657149523439643603879145542535209396912373407752981209975819413479414884491167843271400903196579502872369832369872022537699538087435824746348951708602338812708492642106337571510380464791283043393629724472298342099221869196944713040589579220709935809592514201971763574916918911712561480739242191160661288476046495476683070844758880136539926035797482599101449633274247643062723934796388346605765799214543225005454396336223151008196617526944388026259043109211970470229558739167622701879641677149247837520433924203955591601016123867613838319018990751547416261861427946578343695611626214080586020842908821012913957404696214738619882574841338187243680036403438392968718751246850053200656615244850851435353457818410485126747579961573827300222969131649569159253853111070389729989182183533069019650489094356467055762732284905639284799337324088374999381732864582873323183610974436281967346905365721644294579866663103339280049168065600052099817737085297160903626257356459693415486574951115458429990419135551726375329171509774382021056564445088059075864764105405871925226058125488306054229720316007474566896309872764488521214300730283220023438689388560258789460014710179099646972257987828298961870166098572828518119446158644875247778266111353389753441353566324582817536230423027706174594675367817684848508281656277218309285539624585783088941815586933277111460905039719232391268582915199355838546798225601307585189314634144326747701209403926781583842415268389743864732635387444370777033371651934347893412554820361080177807218940895059059185201531324070823772758477454734965973862695514865389499661712968920175030660532306980815733419041518410911172606583818496183647152315611267549976729377407775932629927782357007933350387536856437244954979541506154541686659001517439432134962442577574669830672078610252482945029533371494092404197070167801366644780593421310169224117850438828734465875495829160610632410550499256917233896263404975554695375326831031080742370839855767960989405307613022328428078142741240890009303245994094896998928653885476602301369968750801276432687375417073079450716881492618306644007984981669668595005702423000187712039856069501596719900834183392332384404843775914251973326127338944962662579336577781151844078034576768184450521828911529922446941692917440354764405919590984931938104101554467329320654096411290752650625328644059562784261964984242876238789729657222529451076445920380104246021126837507870744465438088953295212159679932477471421899316687167436307622071094286767941500510326003368743309639652534078833638141429177067923925958296780713790032613144156719318568630038874720697167778393030110623141865721651567926466843162971799215775563727084781798920210485593513305397454835484440703155887570265497702995574690477851348340614439987936772780022940842251742588771971097328975398362573786591901816623211838233768023491040463790437616603933714525601029880492257245582982425323453870696041115071244952009007204439357937175463217007053065867329110834984357044516700026712163886921128383499288120331088360270292394149155060385508874269993547662839203481921451936973390256651994245446458634402279380687131006080738848875838136660233779827204660876241213530166875669526796573955548086067481776500477956390515288401498463948098216726724435862365114376012444865688807457896498984815501831178193599436716568291412404786421207811718832509715765339816062882332001758866205948121395218707975337896120566145086264163839109183515513961765547260487509670651095430836642539644809691357897321845761053447365992701764815325652000144586904519372249794595636982889899043917057920150087855506747732443505057369458655583753610337134909151977903593360678648936605497656985154041699540732471802059651350867400649263378713859455249456053151269749341490163061680556685788102481996879033102751448658871182358957996362684665892457128771037763426211238394766408245966274052948676182812962153446589015157947355360115650568046801588886982308471403063008571433968456798705524712116071685773339253200254711042085328677481882655164464481965637344913225076800156013953622539489275579132627088445997644015064765124966714124463689298009394028195263618881060949300068407008298673150597192090232172209077749196639240854676898565815464255787891718318660884186279140992429111590101585735607351284185382343234135022291298077578173350387014809148697027535224383585335921575056158453666899116537620389935936922519249425085642581548587362489937256514955098302031605637250414381592556182722860806438609635316891300276985685764344518687765675399314106586477150746799737468584628383960867605481283172478578979145086581599734133264445833136177716018821956772087012986787937870349533285476016832630377162996382278092916206789784296708904474979090397314166534454072167124822778194641528899793625050210038305608561705851361007470558864361987639803850288477949875222247517300251606884271198404317028517611319355429569838729986941956788166636955200003619407995688171089545063718394243980711132202771937418588086674508422458690034974020912825987761649609971935463225622384513286759967502507659928033547217761056155566690944697963968808041886174662899191962138166760695293054745514183495292494205284087946078481711026543570455004033416157368138878567986600421818514665001929053718963923037240206597426863119337171368752398349196075536714649881309225323239694690580390697859157193155712171334044018006914974502260124341270349207261921698082120133393248553049711839295933800772647408759155451348257555004207665030285838581406648310390690678161051273992380161099497231612091951613598870467426849962456745979735440773714650147773996939386527758363458337386342564831709055120146774068215337513171075862822955130562114667517776869124891146820884649531092240261456772642112616895038463124066583196499246026239785166370585488636928925750179399247379159336926791927411864514595086053379100963248920771114742402472533076294074994473345466024520785259951485250519506705251956790658405581109814582832480260674674359176280182818431654106011244682038085675455523665044841064579908564438301678364269806527675594690787242174885227505905755650102466524204022172989219285195525878146887080678733813241025008643792911096084564176027637551517409891578579807550463626004442663474353985700098780650045009494366610304048331658730492204181815348774963605704402730414045628060339559588364395456935172017727817685047412604374902025424881304176150239901550943653088501872874246647427927560332606512178762486573230551480528311152745864402302223667320600312477877449693164424402243142000438923041546814866816952574240550950305470188141263374264764299863113088626582913663149041402451188315790248408344784916408305057863795831731350021446305376952426195374077626569825495144946249216632006289597809661081044094690320490035864591054087858513170720363154326560210014984059220094240053153009117619306256976414375211388603573454398307802992282570670876833397065640790544058619624017306448373976281071792651031102037771021690074556076614499024688068248069619170228073518858841101495007881862730150447664811008293267126820739637301349931649492650058295328520884031961343348087936999879688025924967966222399240719400779325095787138039787238508704943260608216814588830864882968771644395442694173549628359838068646941566011575314959221161533253686159461690117818542364295369189312298504371957720418655146394531333094311341513665248702967092833921082989219266155664762242620124341302058286705506042952314818732693262539408544955354078442785227846060830109087155464897707146275266391772482591189299236635079046875731367906023382004342179082185955101855839496056057778547356573381921181418924409764538999814990972629949675921943411471348034139296499244263846952955037410686210180956349747148743818400229590892185261861120997584377770178157516563335984066766292503921912441001915683574240080441873205359621672301177049628317528327902969863019344177962422600764813581848729041607468619028168704645736980407719601556066833784687089186329017340645380107122005346187776798510737315130133060943771618436985997509468234766834835499203995247680241828592029187040484755134081910309749643145823214848264174187402620787679677333012475215925621349205499709773323492727573813723090473714160709045200194122657407647624167387422095406994973767434765703389284378753392420360200157469235532789876683364233847628436963998219020002264880114251358105560845156943187687305450008464092641589854748173683778786620800119125912295466016772808130509040261664744923519188692279504252856148771265407918212232238864132717372789749772945147816229562010312757714833990193598623082811697891771569576694377627108948697277422188466240339797666054350999996027097420188529542157265697365215446312462733855852687746707429894551526158301434306461533023405886852436897667668778996779737427988294405095302982862325327869085875344249740926208746790300123458767433961856473738532275172671590103713368164931512322199535920782179564364120013111930312834703756098197615897454577621931170041033135429403972919105899521253186768647150449578290511841945235391513332981762616217894592034728283119284252378543886653964217396682588268814970328844362621192109589202181890298749748492962219748271227661617816479788362794878564078120603497058684427739410942823997096282185578460839491035654864735311609275626201008333159032928477055695868210954270844450648564520460772590155610386048480949806892688005713963483130558423140391827099275279833218722368942023027562342769427996402047248888957023944298404275939935914915954070799003795756613478432567085074237296943718365526849190851123250790467637536838061998916400704904039236228837982660113814388135937119897571633972500441884595800929218838601888948666794712107523277125919925420850103482874747088187090752552737871842496085717268900747983183523485301648117004697398480969835732206252361105958830594719016654180545122864201150738556054496293125960541288644225630728789772345502880180890998190956957631699627328660665069840462898577158837642504520095856474467075579405713153532887637294097606402400672993841159909068126500593318947461185850939673822014339627809761188487101357232817603295229667460173776148410434075563022000600385158649161714100324715360435045862388239652226242253117414626474160517432710296796988975182558583896898999930563482442022247941666461751191416025854610030269781410650062331937822085833656058708108549368711089564408833717749835871950722081459434715904458153672168274494920453522540552401370388133680866736367774840475478429358243333413484553323435595886790407434852636472555250714630433464422583337667915744820602635284768738921070958134845142257527481931921486123949869462849193922472037985552039845163240786160365465208520354289436661963304468537342479600094653721261785034317916674326962249549875569834048373187484505406313163926064421817033772643617383687148771691496721893937299225159296771380541755037652259224897358385699638129820212051496082789925449759912406241688752651549630331400408458112844624134022334578382066492142184482612557590258609133045957028973620171091268570212288774571784630135741190893480196714348035991056566342726732027183901435440342546405333264711134719815748899934129564536395593680656571683021537771374284142927740589148534689785485646246761230922492650544944158929676251524009057087546485308247237798710513626910151696166270440001558764876675569685705506212667479641102857458493461871694621581142660743616563593341147280310538834014258854236636884156748517052636980931350629353575457687322235985482549806753008085099774873429371257137596715098186709524687783998413908172571883830206848358193273491572597430023273703758537278279856273535990817341788297422808420764293076233471481373411146943991764209847844064288395475973114633482549091989393546518534066953127391379958082054647456328134084607636095304573417266928310124647782096408544413112775639605941655490374072527059291449287144560868549208243040818225522140056602009453207877478055221623224926731970192870007930966192099258857718796953210101118884211037206581233882551190470572967118177375831881942045521415306762766308891874035647877731750381408294111188906969895853467731442791142028517209930023404437449647011626408593003547548556967321729981955424968999549086572478817027077291899590798416520795851402853224930710920815620637260042574606407346940019476087418237307688961582969044509164240093717778947932413913590567484294679733525277468057591520075237090089339989814538095685718844315944546961503026382359054429304562846923106385877018825160311028287312814412173512732581101585309703580533929986232725971268023930487844882370569498137901137957282041055435350197992908170441415107675973298018565395972703476721809804268722712475683620667150597142880717422547129315766889161380302109134580094047628425767365557459060376845263099917303424214063972890939602914925522997603272586449033756810230036776569409677895876814237562489171040650565006096400973999981813221326782283367292043951571731993442116457671680975872861573239102209269993417214246739213425248823229498041758443978220607059833650016392923800889729683469529395305913442184820737446368165468727091148053950140047683146306361069618677507108660508102810657550596174407013679589006638711470328440059279133461631830467136731739299571977452267684075342456010788243864343613434985339504768067693652487845439800395227439290855948196523649929562332188366508723589136636748268018478888638629709851275179845062928498780159215526851354997066538393559340284259890578689745328448506377834991734975089337767299155647409012912488851948611607522156921920907205311016611732132611435761761731758855873296925819240364285888476119081232842332201869690763819410318606303389096206746873026664191329375780296433932536982107257810783936066838009439937579779850528758623654544491183095873018845317911345966712883098377426441094690845967024690468365876825859958425801052428968209738588441423165482673944309395860920223108242010147839378451716620830989142346301107101538754332026240732836875222771625989995778366964819706296862860230126025455416558541031878635122943058279878856714958659502484043736525720582679669058808155904469881605262328978280839659034952744718987155573384555228580266865551846320108337915524568753105804328620599068029421014871760436953919336896867389950436039204629622925004571159804837781053810642801460882456235125255244680408055049673880816522114871205029799353165696334733977241891063206226262329358001867894084397386852226077061061364939102284229250329056912469523834557784773799895695341389525833485453360583207275915761667242841660367008498745692483412032571672610123787001404666446345570756854570317818062429535566181906737691592067695761683752241881397650988202121572920082601889094671432659073938761234483953731273896544606801201169491705708928199392216812682576319221169331739585026334399034275418556080297870259868397191478231464670733472715400962523565395726281127479809125735353223381158827429028442358013102858470660819613128552735073860246903101916663170711526942238394855126581927451723743304860398788100309890210238895958140030711523701740816667139213732200048715256639608875802967687329193819279656897394582096410260754479774911614463765418191780314803875045284166337668960469363053978105535044417192143109894117926547703594585100886176873914772449156975938951767732360725153317004991702186926261804391710837135101236074624760557767494799244227373093772988866174790914970059265693668364742923909302129595682184809686008704821182460131935412784348418204241121605041967182903321863758065353139523155017828108774193836942740251069503336406163617431688044845318548880427398510269133352916411418627103367892024351221102681395780176496633264146015715253928831678388409947745853457602495404375115272157552628867419063853086901284735586610424895455679013440279052624561408089924595918824482265749470590267497133602583188442765883592077005370636051513364161296523052568229582969120162320601109363966988703645607349622231137907685383439845012176626215893319185362313357188514481726670509018081690835980960726613848373172109949167371848507726591323665370056894072127880960585866869364461393149211757786953834873596178082475533289006308989457341945859522042164279672623843648221993257967969342712696081140938120509287134958514251407258349256005094071236316653716187177882650057534232319611188547646455648169045458440320720892979873170661277570269429103353790786644965012577637250520897769922557046976786919756755757183680267295797338882205584490285984640099036454072808152383890861585888940196378042551815418764735364641244062985943858761550530087500961633878533899200765341445918864399952802405653428068802792629979007874062827032876514164558994988263686291164627738929031645398652678985951904270361267462145598142801925446351428056072401636908782220724941095835184561083353312481414815439082471677879832600420464447649563275351139683160925780756676640529778645771464256484571018974727435062811896408630517479716211305583627275385302693825858955678549005238970102088362218911646558076913036872369251086453567698356615417437710909995335093410568557321560544843651000255047874543869129099045487789736904433262667302239255859719849860953297144178685129347218686947296303713098807490022163110120178581847380871653673668198449916946651383982771247700882406895313863140382230335518086979354334673505386758341188719276911627410274118850139721861184088857305167391888267821732701541104054568186631852912254710945231844684351021478648448487831619908837983576139980499270933114171346754266746511328487394702759216484783861243372540677233690561629088063564072869427670659162324125315375820034914307898113241475092531138278188072875798164204787598598145188410499361086554018222094400045655722089257015716365942247257228392174006299309319169524752394031989450413323103645296498810835272184868210867131188752216797235005873617286750546796464725808167499308413696600256544160330600165222920225250433791985253129496176362506825981667205613264519332494630268504468968570247980422843323877681087430055030081459770206153963070166902398179841715299947286241077696942568373320815593737457245597740501978247207014335218595216172581022015194702006306158474416325353119513706987313949446916905601998958539626271957624159967055725557884261558193176435656809317554024033420446074659899281035621577285595380407124574282265702009331337990435619946541685964536285962062772172091638517072962219151324441474340795363196119218255432611110093836253791520612445142164732253421361622461105163446411981902851163086383976141016382320402434950760460961452074366691508302331401704762703519198583905925531548973548455784780516082977222244148061017132609139735083136037750567513468265888720683690925097937612277748843364399283651071153642469118100643064834066038042172674752576350541569947457267250031392465121353115649831325787972830973014485016765138850522608392825292562127722129867957005072860915896305364286740737989530187490787575228917015505065807819743227973834579925328743604328250061340312772301433042562832570735103232859354236891950540494215170737150142571724237972830414278013858128554352421229688817815231406280244389093382032765816358686814246503864473668550423130954236011613076154372148467711040634004080272572501172457007883896386195475522743832269649425024291882485630333269790863282387357213529865313829693774668729595175246510466700266497209536107726750148709203576611755690953746274196242780119906262981957824569509006571367188765480210761079992248139919403802854415837167783433430718877214387278001468551282270967339440939746271483980474674405109646105375517026586486314651358218997984012370695918685846473069030719956759029586699485159831019983647858510393874259846532919294606614974325689731746515637047804350017768913065829959586910234050217227556010962464004928151516741160881063266363447601729277224071569508607095110930065419727405258854255134614836271948965955703565273872294996676196132181555032861096512653716200679521743918205308848411526978531453645076172620387389182090467969276369223919197912556686298373626680784541178399318455492320990636310308696120700506330006634696227668432947493795583234379488044476943398052536408109643825420623374448334117402749179831334375324397524646895639768852494701271437615235577753314893663954555121424262658307118874722422546527092845551640169347836931952356373940004039763962308271474357743542410111099740418852657118946198927683558933560853227518245144211142690211172661666070084163887337498040176205444747703237100340058218532111615066071626693271196484909115761209891401464291940503056182942835664085680293439132917836532906880544334936495663631397310599185336305690648309730199422709619249235092326819038857674346525432753585694985719738874843149057854599116617793670087569445436717834845473273360385591608531889529678495818563336044073855438539658663997976289974260250993129176926454625061554173741507440860427534499072691485545404392341700860641966202411414554752087388689927708457647822487627199735120078678384677254717237574740337644103125174794325186141302252778808948955129243580175379137703526792663808096422816048194170027683237487905448436299423797267767699667634198565193522137254705690901191394556896653518960681307752120913201902514215807217118176472935463320538796746827770083344022598955169091902691649347156711631601377597780501490041210233788359644448468846454358430149683368511206214530368080847778455900513195066944413655069782782390254950372551015660439976630488779927170666279258238802604904883255715122178157000237218803588004734942991216993223435254146191396616526431620105022927253584500160868706585180127687026273436455667612303003757234133773865006585417296510938326606044415460103529558801351625081346787763474126195087459015857003511776337510429523987231082371240043376413361190769521576097087709132494653256093762563427102036177581527446445033224363329509462356863991424849570318037669323824629936316395294395023270920929473995680648922973915047999589607463678329067932685736227327030799794316715529073030947913067916805458482745359769110233178600031612182617734211408710434734353221499527720078419863626811318475708310310643982259303165377746737937723432341906999376684047033927393487644172734139873272592051325119759313933000899988095821359797956018117833647732451459639318790996331610679786719054199392558688273113812658284872340744097653309529777646524231331221293486928891497874097930858692185128710610244498618151314737024620711546955430727118150015782159087391592246043904457290557635701912519674066837641450149286016475381774743671756801856925393710622566652152068963185840283505857722268248072913154949772410755996256829352754579683235289411038548430910026082293815113023385859969859661727735414876326987499993505975978948143922273723767614405011051672896113281517367452957006591107343773095521261432941045306951556853179566248837146641905900702667092578691845064583634923734090483899739714513823610075236389376433261770407342038611578454676062991372821564643862733376738916737488017356335468789226214984207806293977802636550643502320719463862254011029261758070663355369011054037875761676705016543283936164524592573222190027597136323021753503514585037321719097376716578862819758080106716808279290050170310268378421266194813908612776173859904989588359272702248438218211743353953885307997488301986626958137292335355963950345432735319709769646820642114339351344515883787079138110933264333046269079535017530277367821677969431188944943800975187624628926958134123357519758220083755701835307335815122885587267706397496722816490682186278201180630973831007928899817398125125240971812402453510988348183513721881354265043846968353059100001023351800788413357919106897502015393359098446373451286105778881526547938434682886205968962072897019670190351975312808751803110693758547213137756333080425433881980043772646876431291641235942742734432635392689405934615889574768645585404985514629466555340914442658972013996786691639711343489683267724588292664899992715193864944839454896700533663861735526338140239582410011472804442574905392711349300603523268324175804939173157766592389284462764444305163102256491305722982652892858765301755828101851414996313022599507737320761912403290448219444024393826198570337476003032827478279784763992275821366170775629150052363974908326419475364106119665691640703783770074331376339315385889726730008309734913575169792968266023011993455813473042653623930080686869143102937333162604910899133679595727043338236683011920496458249962291463665291490697646079874899785761893838026620730259561835526919200382920021882724711897395206854725812255973320073350116916223306109577444972276580150342115767271710032370302570384212136980212594357557931020766574944713887987446503235615452791680998363430994920035825527719594650640783421358466139192654583876045226075482317654244784716887978389248291882708197660588260937547141491880984694083263504060697748175456009490699800442738945515194500502570400900183632548626562353950490926490233582731571717614153738395064687793453610258856622319961174217535158060425561568615246954189582936295744816709496706035151202841273834930046449625699077755981806342375276796073559829411564224664940118862963793686697967094110760673883753817416842338699808466350517539561516440839033095353036858516387960254983505208053496138255761615185866698477543511796944596134924271162297403127660561548040020374372029418012794821442629440442008903299328432266692753094313193706880779620181973100836340006602109898998619772665053932749699780102755279983295378105969935620450538460963217469429278753439676268908914434016538428212223261283320823229085723301704441473728157473073471298026965938402561391394771432182538298299344593192744716634015494230994231323521685762328935280521708202555405848623968184951012533298454193334274180694852987662125082665981495422024220309727010643878690569295457520772780497294273966860161193368781502328623769628403816636193447105298908654435793469219439349923686863221022275976511553768623397902563496820676213404993923742711591002747236551887897614839056656153708959724167997483768064060602049742856512992441759654354438217549256171349653884394542322423085375310280638108750587310236745440721303487327290237899475084310291394718770128326843334330432990084563877629219662938220161236606771676646328060197055889503446685497030775203805503411653757565442025050536839343783822435980264494621676152510310577166583748850735507708313502989922746407822657449535115670751274057780376486358896137795277303570991357541514449164885591793517278718876425617375479296190677339790604099500194389629047888605457695316340544152681624609989015804180342109318256551106571688313292588268801968326350298217786050387793159904538597512988636598222764860869720269088588105310370525626189363495901942134102186123958351123210370252222176026097468746010485991946977007087901560019103613763547289026444427499840941795465157667901547311243853578370915688717506267041777798269104906865923136548282456121453028337173362859169381319251706354752504286420206933330242924648033402392981746903019533710383423989065314307475758916573278199646974850657930868917516731032072013132807507404268180380885877531405060135434115156037954035506277173358849135036744826621085653082834447720792338003208857649736853339451475031891021655543506173423587460680537104204618714053413948743942395069098149437413258751038926810956037288734061446799978143934670605262823607542815095646059340905819228153550081451380602395798933604960120810592102205098047990440264101069526334690042210071484038055558646231968859008565845555966663780261353475130633683905930262800650732384190938547808525511645677750561294611520536074606894462931031661279527948243511661059304410545181671114508288105301496159790592450621715142790870984584159260616504631431912566588899880070496414594284721906949032793115547788550376358932991432015434827144926633281025595581542194926393979816380868379501131729054247777528533962583231252516079129148753668555539980561513671331644003343814462673317720163307028618857001245208149160877200864257617834326898747918983197323738595333171028020753231780931013605265354834953667102750659961029625500106936651556653263119909297159496566529812962984825638130848219382255902908579355526474180633457376543695521327163882389121842161735334144918524528838102512892082114775184574838601010027582241376574000173004015572716611303349382205471914345903676794789735616806096740976090848452743121988839581734595090994198849898882504027752988433060680445540378443288861349318698552652858943844846596385873403040577718346685165522944619730917698741967020427332597618371798129378841460352519282535822415753977386204778193397859204820857916681788960004948104494511343624815875234943867866460187059395876170808948444348902553379177415001439536259678992744277944512896235851742985682021087660674967061665729324150556543338880194398302868041141508207448400429359991309741948671009505235125196071983634294399124193789011030933709402544598400006096975856443815257551890513428661619503087086884052539537623849032354776984455136087495215583381040579846442111502301881529908484761009306541918410798719699134381400433488706619300900725258539296285521867359357595627481025386157932430999911107237942998757967033178966131214209235057393023575641074626779573915172123332905238250914709630288973347047872083861451747812056648855166816045420984419917955483030957992219002054876440361563252279433810080514664358862572547363755310456723469188655978179863951279355976864746794806878408236556051049061523359328933510812293400414080931003685926033607953432857766707649926259793291192017841727219485355272594410791058749267660809051689589241558562838399712215154613759710966815889108667034554431079743805593794452687820692106756998577756714916159109775783332099830595574026865733755463766360911299450631791505631998472776041933897279453078931645949430089553696486300635354858999238972628239029566431663270077749396695763393487279226979727655525834704138424171029441918537125093602303321184713881550288819704221677098506822021785056403718519536048636384701741608270526582044614617386909445897836678468210213663079580569199104688210411055566518641686970857282060852182180125095656573724488895805369866965284154017735879490801886174405650867649347090678870849645156995210051430161678005065862240094360747529825280135938576817078003030035196026453793488085110787109021554273645288975124541287687884169034366636679584121486152690613909854301898771696955897190535697724624183752229087351672663479334319879118083733718614164076675923480384273182358267411234068998795037814684768471686137105097996467578976782789011573575052140579779746988387733846595618393959459759873944132976636130395714266865319494007926581981161792803985621441503358508214087446813876641962009290588205547466089076210038655337788028525381793848999050734126826885294408279109074384160819759820601184976411525693898141475781412336413421290242348069838616592878710171760144434815265032450112046151563442388764955684668818834967359277317247271516833931990788279974503503897742677738491212716823216694520963365778061986263660943841077108742916504239916942278331676312365333126377452441752625920618490525993804397707590896187126611028543484856276643775293901860823429588303790034221283388795089587893161557282566945603679488316652108103376262170061563975846066227238615991037382723704722117873939823310137441279279424616381541836618548936307147059788677143873333329346076438408538910981555365388366474598160303021512419688694689410033724316943335622226024244161004959784594166683669519722994104943095010458138917245274715723007458352024625737659283744290442272230942730045586775016467607092377556856308159178598056282497433337884283360133915426428107977959003184780918387413941415895439261770796221307591499905736334922248668893177386330765753547028051312233443777400013605008176333154386194884837581043759547724479503573306118269480017640356232635589370032454661516310594052487393049900397107889844655087761292662123652107898448715335122318017110114373019319875279684544321195498273991821498235439598205581080712724447929579020681886236489473636103783490424054086758821111844248499119886102554601326412701961310804708934446302318034018260201441116201065133689634009210126864944657756241539279735511144557371559235765397305283374292280307938445693724546633174345959285457466160748087982645372020387260307057986066085223431488203297731476101685099242063841798203159136185187855693665495519908816046087401814860157773210905078800304497538585031716435263572049226967769695445675242484225257626504301639211359599825440815634993536401395078083165997188880671901196580529092764937308134166324411906973085075616598607552995943516810042340684442091221748725047793967210159657318331452624481003540843141452461521124850554934153288056242921598177102568852921565823882949009898586020655168118284080168317709523925075074342461044342550572319020739925796416121552637396986508002835192068996784275285808252872739367680515970584481615209046561276687714539538229198013039437262104614023294360556966047110758923695507811688534473722530315939914658541054883771525680330585127070049488803308833527826811158221863575571887177530596205625264284636678305409444297594717271906378029164051852397901064368282771980470588783869114289359291513107377672882312668606472790577195761267962044857700748477635551031266272821774030936391758970373330243882690801919429023615785254334807402122473797558124600706935371853109158899679985810337979651959734898768044448340107261181741210672125975978160380056424494435901340215815423484349701251467901286326142548165397948614183419989538691790249163970911812181172376292087087884272747381363895967723228833424830146022611019172171858415573881121428474182687277675702558275376654931022861356088685269328958277646811332650723719535584979439023634328984644774380824671771761303284328767108030692042964243686291036230070449749989463164011063288893638490999661895675229165954836115094161041044019139694521922164853509429921147339856431946687648216574497532242051545419117743889538279843909137182350035569930019512290401044105343744339378200627329743025825938414780617366626063983139496811767535789954428408566770526091716762782587926145471918746198253486080948499219614298451749114907226462887139713420168063656248359461274446159531545252296372701969957575627843877662092335973277786131451465135580840178089034621726060117435253603692563649572038296029209866684004106150061960029091439543325835718541762042729593921328953276658700875928547105172186342884840436086100871428449080217193593474799845320034366163056555498227712491980046971164332002335089205039358927985943420656383677939152463461530682837065850884487654219474270398242046058377856995160022181444534321179704713300366266150243458807298493214972308743623708354224903231804026206087800974409489999323605652644275804021363271459964497154190646922033323699725908491624100669670968296115913212748950495108801951955293824139419924896647009067635284098027100167517106791709424568159183068664032182347414166770346827026963049896681151801913331575407171204483101127990694436728789808079307259053746202871322934034659903557789842290786808856220038212135442470072279692537684869454241183672350716778606165839691594174123963710600044010645996942976836411983490920700011227412165725126049775890868927034864906627530284782164943477925254431617911753992205175954828877098981914764876991991058571767718830510695522013313308121571780483142595381748752456409422010604487507040973497517947071211456338798208640307188554713048685108434259643183532260973242518114606446569760677836846622008021224463149023651218983963889351154385726572352487144996495012511462864128078552092623733230127122045578828977227918999561510423289580486059981546219479533695745621019749998023408857666496095056168900421956377400590050478975273805039248323129789578568461403621921095940835287120735506336790613203315833186369398583253913361598396416417820725784305085320007979208583572242626683451299906053858730334816712910722022546446564720071493043390025502853975406196625564947594830955120787797843528727343134838218527902059799332565602271773002630234204478117166341315805319140160736757109042153480428687194108255848893313163580603514145138148949668711224777177662856595268012916198996257708073107013586313675234331434916530528447031027456473440232888635450453481343739173549926318454195111235947393137601695270765109644810600167374735517638150293687434380001219586627844921216039253069200271477436555817389008695409017946412478330214842907254531367945983698790356828926178937066900426521891097543990179549512163539663780377988909273419265231110798178978813798660729755365419101179021480386849594875338527361935977840350911918505413566814028259034893364222184203197463218212853042902016371764355238369142723962782796967181911093980937865520917988694739337295930328977638174386687004235907033431863546438716472614261656587860866077245044152030893073116175748727335714981136091640498071566167632204105234384890335718371171985478737305728885910625669218344417798020928380530393543207484755457521857791993337334241061919469807468702632566940374622980870223841144247242118722383848481799073281670741767438164858899625306145633979935027088541014504956805531379216919612008355686123199655404494069849077763158875334737415558393155923065592877272422547842138487424264128292325026253754153927243299166708528702346072235010418777608552143346354659745957569910563238764240545912499289698565315193071533603890846699748409288513885804193746454095070257123596341095529106793406820595465231620293793829714384212439413042293077578036933155626280526914898329516771480570296223104625485608323882684833246266517104968181566181310814465715651279898676784830201270715404255014209547253951582692923136867950685340552660760263636898912011235320738754893267722439540095308972555878089410282352117617098804568120544260578959178224163822931923051572632662835373402064890255680958554392205912912075165547516656611996244635824208191994435136366751799198097073481661938591085671389223877476866196174958390529377579171491318224445239441245732360750086497947708566560620385006039910256438004124864672261343762676734386303837802968343052986058701502026037048482212796196023822246705362519350109484590496721676049952876039241502722272270238395341551980027096039630185499318565019015331666992071526659559918945584842874467026683871931004020408883287889375212328403905461875597730717524975710345719354549896927890115470210492256532151404086535180879253569637302612844370925136431013709016804091460280365353138787626641563346411717466666115036224815760704334490435996329410707228847726317100290302507712510416760046108415687750045968895066408107001255891932686458000722027276567447603590389986636471173477525055942587087670673117644802035067037850279973505951957346873964902828035556681846622354836957471872050521618189851663602896013934986036961595499185279834017263053139971608648480187565829205147415066117300853170642861992474077650597989092342174388117832116754250711278399500771963294965231847008475389595024815765632825836284801786850678858535660132422272622141764662827182060401751942897921575389343978247445261367040188439111172882092493155055653569465120367585527632939254023991198576961160218872388552639547619280145222896224392737696648832798246694346804617862114387396907324439745724123586231057394842608471053087933553873411690062825328027476505896335536534402677123966737343135458280609287055445238732271367267106263429332325433251801028097320996467137494000602950788900078716669944868457859312499989759545910532264247438183445084559713562791581561091841124824331292896402559552535170868855886296603002082244967506717560798766484571435536965672456461115760706935012727770856996036375104523696367126705394699589425577647716919846705985915388382434305955387876732979410433071329714929449221721824396890234220959929541466577979840318108894006432608854465446150844626303850350197307900052496399089839698267145469246728247060868661901203448477015220094070969100340840223628359783496307328663101217129698626918254554983242770658954859634286899164045656983695377184955732851836573541319282362605974342162748687445887892799725533355795613234911050322485737261830713464237276646745637340363790065702483984916854769079228449809493756067160801829251428480691441172304775186937466789263666283449894643014200743454483331414035395996862921105106441859953320973044508676630943033351309017016407645131037130166273644581196106637186267613070489918049281360555283501129436440661717919595046561186808549493586792544114678982168679342512437008325446533760645581340214718936528643445729079117508837735809199270619249144024057087246388693355043731680777300375456599740505404731755504154018443750244700410671680337107286949539715813232246621639806185497324872756327056102959735705802978250826904035703677737416368924634516533783538716665801261003428968333001706838471113763919487011610033870768957693234200935638178406318728315632112483247768419798441190286167718546534950379378262424960999189585432748798748668498363748945516385336653943195393115145181906162701956239988538691879581811625332896415499102687381275626697718493597842987935974608089066232127188822315093581699577194741329907562179312810297515906821484827496160787732917210438527438396327986163451947351865762862447480729527989163311881659227438788329684497631415921819993389320673532118281895465950117456429885839897602356428370084079963711694090006744547215627651251562802520307012179964307004579159583428526305038012043798439536687539184422558896044426182323754376396484139341677192274180205207595900676990158408900248581176647499022062309900198050772656952812245886177328993834147311081561186325347321676206460586010536277124637809383699414073743847695487691662065089402068821821170488707325357940147900012755011680117774935161524602459998948591961208011642093797306846931312982925321171905292361283946197512914303668372821068031138851291108913012374705644770806107710854640138921017087855507346980158338814811972439543662778929671062188321911062270374366107570180663874347182075074351416139763385835143268242104022173637379988175708058068364027445283387108159831264761958985704911266910325361315412376714398500051556630028481325782176748094520069247692616691066839124223835099423091469442066444130898821019993402510481853162270792440450808735582514825945705614315631468635708859986572954603972136483560323943380419539187410591420929690467736135310025453075083452283199029976337194594479538192171303165981726924996226405132602605162867206384818889123590759853427283754962325150829297283264912621130630453373126962428760223511891277079163330344136260682819584066430856241089103396404624071787573588086727495321982124068998777152447761963325028576965659933964187572803299543318831290568329081708622476530279462661729441125240176482731778572126689969674374776622952194061203187400324931526134430280776627317877632493857879169156195579546678411322004725838211530445266773436841345287466907647455419330572836805915595543682500665573933864981435410780970664129402091592679830010293250291865413671333231532312903573195025727592639331806348037407840014909659357221648911260748933145047928289183556671230724852343765550720155003406688485123690271231119124295843730058199232832467101862043204728932814628827031362476546322834007810370977044545246745023159597348915174004645493956247300943723772452117031352008735968980154552473443840083338773429119925222672044117236851758288211612441851560082111684466977089551072838404124559001326829002526381867005558709776588820915699448677426372915083027069350005398976498286059478026338326428375294969100235483626052554520988111560740740302235175790946311335434205884196072242029401164237491686889164047203518473763776079770161532723661053208899083027780251454692193717008238682638844025943173210241516559296772482108928340650616507045330636498398778072251822768113477579858134561803220254838527130958274127266582461262144941869896028397504167937314344378041936882052159872335542604192009226451500110415026212057652953150763528201677553363615458640544811585984378573162694998941406669998459776455606739159029319668192798543903747851501857492593488723727702281296158887537696810337982076577790284756203920205318940465678962060657724986769223008172719766811645424362056607761338103029621894754681060366572474128067403390403213108353361401637997673545990899305510243522415964002313407276884458138555036442533418500670830188557696324987784966127883226663752297046483932037905847860120491712201514360122169680289333125424552606356039766406143838918776911037077797328655679422538805920234603529678835730754275628678939984085257816518928694666185409800389148270046677571053629906605942818253114928998596593318010803594179503814966139056638969715650125090128555208472087394747668813796926588084723469388543253741032198452615267512801518636203886062449984422116846261232899310633484888338206314701029167894340416287459194357514370686023702112254451440513819214086703133744190037107223449606385962214802542858374939818943224380543541244823930341734821737556739974635557048107272946825824704444408940215904698310080074150697663635286222663524467348770514652442101568753488809127988913968980279245375593738337512553436636783324725721774369683921137433134437879740152068673481861687521185293555230015660500651920954315285574581429815061733602159752851373683759493512442245575732944301531031871613019157202078022337788321647692844642850249179328791739389676439954650265659937572672016944991790207155621738777038069386974113734731037793395134966093710845468563213481988437292265014539832548430060176108860528021191138352054611516369895123007929054430539128839740580566207239904406053722126862871210632558828262204015072738124736580041221779822009186330548645152401238974896219231787341870097317796840195223649519996779391788618688906154051058369161940103839309846660921570358674090461874426956649660839342370133172047581901836387439245202999072804277786436174451343037056755272838998387840169951520539383916678897271778415536591771807394643618378422366462213911217285106275353304593372170441808710965433088532238902901596462473641215722098870236015456983274900816700298233058032006922207370055678041080641629421377425874663435990353974239909679418539642916733796740112871420778523140347593615590356242198098077143828987626873989283622955948944906514463110388830244986401458165193031357180645867682248776069930295295188990150021909002133208169678624342350619615747024388821095907212472015597822325836679053517087045299990195657702762506346077824650270201180659591900315907913956867002150186113523089330265282600958272441278474385285742889198768494558343116842374568075846806663630049646530012310078459400197662131169739385049629873146027289762798494251715709956504812737610868368725554823982471998221285179827187651404198751042250146468300134041011881127963299329194443918239164389857820038671821011661966444799309994115605384745277121409486226642285907855653453686715824022923897763587496308817666687602995322770911572319240345314278540763426632568035707439540344731804806914922185262619316647955228686566957381256962757203636151200980849470567990732191950343654151667947769579288469645824912966658915759513321941651570611650578249339960964467413763504600165915781983277436337773316960884766373327447078571251072227136602833666889746402290628376120587538845237033605590369687948940563940176573026843365584391241638549525176602908159081008884427539294150297568492618063063498148646345427173558387625921876787771739750261695691398525797001424298797041332205989846174703789471529202332894561151649371439780757180343555844497099469145549714484590108087256283184386444540157012846014541235556818559552144036463594686974541846548704236649118199131405868040031638178319324551174060106652968055669701391082202767954303375209373331428148694835488920165341581404887545168214869391671327677693883658384810491550423799779106033076995350943832618572456957400912995549520067093805802003240610672197571747321181451045801960663228052454567040295709275161990892863585148465433416482452936115088632477180418672664794545824566247867912058718824781930445758126919887070422194983977822184663962970196856463595426048744302608629738491906494923410260066582168737075962545115258182398300224383910401270664013093471105029693824635876535614977118959310273737487504958658891359683282225723236553641707194956124499056020715702799904399643173470382102553989820093181427730182431163237370692568884845087018845599311151676775008834067209479386559069298301923842013787912552646960533794764291235751685287466704865302457834708143834064134513086451879348014001025410363942291813763283116637421801017005999866149544504882286315155498644118677040232692343808339707233265418326561686245113758567345392672529709691741680072351168855655834943974542972924016566377123632109931271025709208217391039960668668566646948917617636421776030677413794645843179283872296332611779860986824274487190845408252510534628940699885626506552245184754959084913977714945187115618976381926843958916018905488933263557625892447849043202059187819036696582729874249225859966885126752177323193906878210888861821183723704829269803886201979306486868880986234446588813823166314311478635218627893867538773824665143085275415468764366600775961192744666626028837246273706763074841664733943057897768695155342671297494128243564039612128435062056661022397557460728185064388311570106929019695635516783736839645324672919607257336218218483016883937221604460415813710546282791180936208334766016140025109783206584739842736998081085277873257556220580905525031623086285685791982115439363830577819031010359597736530691837263739661951364756078387901434801378936271221026995452709356938840692774347594164776961243925864302646005114337767224131519455706064597159513822456045072089894395087277329306233187789123697231343951475094473837289844649347765194242036646877929382161618801422561117946488454887541144054391632688544738202250006484036754513916748592352804068047991241518402635688952372983029563300553588046820611238167837387923800264754622634320867051501276484276660728735559556091528610858280416020605097972546174190186384056423853110210791453353330221073394481539315482851841260689449112631602156605917940529219172213050340605684434941856610111868672642934423644294163166682055136055359990441150592725787063283492058019467157199375686453794657007493385903883100548774506312452238488485288390492643139331222448199829128531703322217912586679057617837009575025581703101536534782285906082893943605795513927956058608095739559292032168780059501478764658375648873173464976052411750267944069233518158338548128075556666841586640146973671042343638343371360257023683919142278076648879373162233591013581757927303118655739934209218418708428400706553502782040821459535906409336342984079094835147416972046311556035767095923343865381800965306327708257715422249031612804810789612340885569148491629147986378871129677023697312709276180772421518261809834651659366046990403706619250659304449658458745133935593985751972275467018469650174872090621870515346352458228519285682616259437789758238075771654495840603114792862183508051834035641862444766281319786891658658361500944560684801195794017361793861480985546299762928242953379965049079311447467306361036974294673009346901241213876090048192994622616862443150911765153270999124375290435389383598366631424578709312582880647339715621203396508797506825469725234422416431370606276821571367731427870236204787650743039461990284968314934909352644972597509650481580181444624860769496704893001034416653780579889583051457156976542608007422076221372631725557352214629281872731535261537764597977219090998350889959991016333921274152994492016617435839423973000289927027856952937469583319840481112611346688122911991767656822853586693630018404655647162682288551024655323588498827137472695701435003212226715492522982864935570136219398199853861209251972475165377101965309392536070863742564159044389194074944818285488114956097626442388487731799201384054345383656643263738041371767916617209296395655739558593245224412017380019428906577994812318097595130363070232645116842056132902019698586247177379912770278478256431489777820313057568622328032734363760316499568200856870370373558485988095732158125623459622118974214627465945914234321537975155948346923564930343555088413757932780414486909049908164456558043899788249219883326200436130809811799383854201828329301783405320642770776676154656196431720768863337881472775274002842222252040059390691774961436220996976221298943395230467546886523116317998858562013873661127932991433874845876121783810454953096573335591375939837736128584981482622852099451938904649719201901533115300481937356805204578213594363653567118144676868437138744269869020109038155340232229205455677769304948284634059114316717678731744690603943411869194744591803840634950809397215751271599495529009417637303459716887826284937246413394624355795601185087824719991069335252279601930592227006177970861497262868829520716712764199399206616764289049095935733210605061417544661007996900255126695050721391843244231933965357279430010088439719558677406620504893670758333829903624216292409110922858126162117875688641728434345826633120748159231318363039162189507400997448237204155711782836449961963031869184443920957757792755342203102054746105043032344552474222241817282289103056425135614172338101664952433194477677996739600459850665624616103252525753728265676018159309041167866792331708801468292878895877424291486321033360473379925614041588803920404956575727382430183301245373900823500562619768037702891258595929432005692759452788862611742326719874085600725784408030335980807342701576526651648295133820561115459248149071301029690116211337126259158986119411148187197643203708938975367269982819590304383650019332439029859767389902066934025127028467239682459611875343639662535483076945113868600227404541524454870862348336385528156376285715456716274452023650777533626694541185160715366477248035061821475228189814646280114125810894076455593925906900898307870047573705254174040838595537755553164767565019966978964356279293890863282522357537268938650137365189028571745978261569236012801632160864123586903261508888957583162489592413958794239516211234707046795979509995198482643257183939881618371877075085065805281906537787542480142778557016100566828799463412391825277998973559934373621511236273744517464645652646335076623742701927840199877649089890651901670457437715099274735621139167603817990074656688261398549448819320945208249615151925845689068100667851249226741142081654976170748056325046312828088166508115207269725695517610217928060400961026005543301544088286364232917334755740935728923586601210103187499571802761312391594806554793523188748587291954937633904391421572230752553852586582821212562076042847317547316160371468028094730949848631541124210592383907652594445772889629328171894021200415181096783395449581644508243051410878971426332672011373329393934507917571322913269947033761285057415615459570213470899685845655019993923038024217993027083881045201871021419844041826796008226299422559427548693291176390729017380839442861968128781061788992131869064096941847207503846942028747961341993023627374566662915552415595642616300042970014159850007560539671916333801230682658056262857496519360025219083576271005135677002458774071018047412349094636614215825300537601601028880988431004298437770095171870740321877513593911564683035012107752665909608288529041662815919925165724602659740639793795628171649386376280231610623014479930381873594941153575914289839976584682098905628199975000974440081594303551447530273814677910808756087788554206033957185647044294747687842479425309689592466985037222264548089085937868702884583676998650923943371477796125770980101635583108425105213004638602331449052205431448880168991074310969705316261746148213108587005272647789885217548884630972473493502468238194037628143850590100084766029394203185145191696806648972648899135238991980310691387743374087556020011251235054471591578780267450940815463947805403457956834972938955755440160944383916126031697169309377981601278037397340667629148230578214188106667549620353557458395571326923920762241143199258559166200414106401379071447489643318791402385645904239532809523506589441870403058950070564324010657501497944855350190694844724523189563915086399639411246144208423711415012526058023637758033854882311961149011785992785634553441905919158284912995101429112240561290621004099844461461909560801522267054667232975073745135658597410298700578457103496472175782428324903512565956026775223737235308060078382424053920312186526243101661471273118268202002516572877476845296687151055745060933001827100396907938624426748830040664315128543658405307799306021200785720200929528729237250941996311287487203365499975220987347264317437545901661681434586792885385982342667434112435295556937130944412582831906563026739535328501311285292327839335278380218628046280068750345104636802190810689136455352057422692160488797909436466298750728430143339299822367860137695259514663983534174207847248370967026026131026116595758279169893802824989979302691505307733596974224257363870295311866655004409463263027864051044456462657393694089653211666555803230474526165044592113096671762872351318732000255353648392729571342670791244400544527599411214295123657186976116533435641336976526952288292422514109844212089584277094369913031401818730916590905504156728869992290165501426366270684988239615573102970425507841825373668396136592556794935444743899209837306882282584674668304530385953925019944803428392092366389009060541227673137970673999244704759636811275918906395158679548259456200633944293922478667495750953990240095553300494524243679341951765470770164957561724353082713565373234942424159698742446226392153251626444212452402839526606612868794728840455516168527063871381109336372498463837920551321695088163338435159965000428791245461942093291385077662404885614149506584460736657739738702153335439764496093378179570588478929815233692268329388430659624124155919684179928785593793822059680232245431894934177604424178017055959825322775414976388569993273824822773575343433164710471093296689042109360411376121447780311482447563248907833086030702221848525462713381903055111268616580749589248917951762520835570920904081830764765824576928608818388290717635901731553984059856474630304581884480503004301796691511419054170851388938973870870022661630959237254685890337768165149996343233100855526811258347404380152943219488723000069855477968609400022936051191135350282410226937753636158105756965079976990326657020984034955745267635448379811637263718314213145262230920371664148885251680001193784986932405424753498588495214186566132572395226447573145882497299296024040282213656590868056335556862539137473408659837857762535163295613944432914475709321424842308225457068208979115491883560414814741324616818669903178948883818608744222651753142723216535187119458709688910570215246297657725677555904827927382048068373882522233002975868673801524699257081490389991299813726872204631564928402866193708672058739406541270111981052151103570254478804853492094098178647028025247215881832179837738714656715189431451515964242071152729621401857564828441673815034267962716788487636457103571548570850912893180945092573546815654951124233311726465122199444425271237024800488671961073520493120226909870027296825484493430927107440318817875621474624290440921413524721193866948907532838935808163961381386399588059880962948506853025012298827309448961327932555945911097161841857995268842338354267405234934065149438106407700673690417304860433620628436669686188749594653579892853378900517971263334718846227747246192884266049052613767281123716599509142592595252240228074952996906476980064894658461998812126946308298725727120446309505859426439746730536539774530020681845107551685634629188021993144998144215411141612546699352020248315676453469856423452113049232395701124921766373220500211441600030173794355862912510671968691503818090588374187668809116143791875326598562658139648207235752089292174301068420029231320693618105630970484174002426923943273503427243204504981045109797089271936488073377381952012324313197814654130163815489846712805487632472699473356368257552317740745430454975437799786379931228406806689225800029027784140812681786272802632476768655714954733823163035780408185294314543006334863535095998664612336997735819714250318248180971280795711069948695840205856601942960393631130655746303283537143632908175567478414041704020640483047522081442384277638405515900657172164632667872759420119489369474217967873123121071604680284907162443939074338188007364578498377991082764954245089572037316400023466241066135348697649975861133355851404098294139956451263600587163046562256705946016093902112769588152950910429603988298902322609273988433297819558484257490267340940096344092753086570307574362775062849967059586362322457111402850046372166852179789944650688864951325186767221598691844955485294237735530717301743825915421624120623008476881669476113584412921798529609886379208178970559473773789072468278054006442562038792899014363125696689513198655045660823576568158451292755478651530333823669947096937000051066089683028321230219086264016339193388891559042745380023141591545722066725161363379822864634642120364919256222883620735027069505411721917803643255540176962156192768765862758010191600215741834756129506719148435561742156210316409244910016654181403992073103062264788261128460826969844039314409252263462756038707546821306226328598692438920281421075774689909000408913648337722365570215023853313904837628020139803933100809444763123414680540453686873251967935188975589824105928935487051674179441475990578331668918913093219634463283112764109628209793826375345935752786629946270676240353542164905596624488373271103634557071211249925169315308665407635139149857103908607092985407228295360346010556118556938090552651884668995793768609830688870905955286057626063807508562436947467777287665997465545563045023123953334671176399501282619763246523792408976821456796761491614365048978352056156147922344402423995697802242056393943983882197773722227064506537956317586137419736211590600139194647393888012445260914132450248532078624780464567025361471844835406832189109920385371025221262744262699333755593642500884375540615726036556889576949764124831949802801934171561399179689372876059402740489985024957092996541646473107323370545106278151653774019870139293773985632588838684892962098137229073230734816450596957232071269428645672865687326891606623835611914106903083952185678676771601986160523085564285814206899287245191326773384357186087020591694698760502350262448932913861151598906569597382433378140235103116651069799111115519924742822854526084560220931674165198335694265079914743320820950252092340063969232062049390192051127250095521844870369742844450160847481838460755482403583313440778579630091369568997718521724983544565655758986349536869847870230630691840603753332695972643495318021496614515037486489769717770994440596080747277096477431488109644043762231732236465360266393256771584953698821762222785619178354729784150036300947142258550568819862062198499100210317149401185673015532338794812955211470467288096045216741199242610296521168770316691937155825765818879803643878675238375605131514669472604097363057721600872813267045181915990614110808956716687569450257650542198742769090627169471522717328574125342052619878076780327333882623777858870113220605082252983943923460712762172639735416601523328470651613371685722230401982603394057887068181099981087135730528343213561767800438381031926336579854791908584265938729576309822910161401230969479417309763871504532064470767353771594054549687996715086705416777546546705853433083533467792605325029748232484074477472661759644777813066977740418295297925955796453117950382945477447845686662878546664602718182378677505481414415372245466787938393214042353102915141921848915626335530732824604881806368155470446433499384975591101300321204497519004935728712246881026979933128366192030385941573199358713788642536445394585718672092682663823042908701628789147891898677703944538984075686754793192319083371168301093229416232083077594319473755100118642895662215859402407544230286705650851346028198132268510128042757567507027703581834757159099392404554509708072606537822821313129453987385780604993293585597155510508986724864898038930035466883829362517057486071126409852710579549158654008656136869867651655658475756260919918573944888512223072774588525339847350834808158952627124047497142186433002966413603259310851902919045323767000673465113372261150332683813633189660787726290952645977767445225320425166769883581249594898572529064069284964441131383490660865656224014390468185188484609461709248002390509356908666136629236114293878107642445345013077879388658334669934157551412155892665662394067906676282961270919519108818525109305290497978067130491547007997757922281448604259363313674018091792579366644745913886018750703073255272036223720508220389572863165756094473847561991254780720697985876530084273057432762550704811832335593161091398261199070474874292063967617663785030952048139410276713372295845889110415277563594973741408284666112720772981504326129658962532707146602561617248506346684116198014815663334367994938875743273149296450812173204134056465213807581976960926291185988389280252672851486779124519006435614046065360874221908182038208165302309803273761539670960866330393937144770875321707766117762997306570042643791908468318898931582890354586676443969783394442254423547460883622440815379794366052328596581876880425465978203470490595240552272767654410771825824182291775597857021452455032951914407801413709152151026313124692069109573175672067001930818306034250143594253887330023766117773378668893842247855436861312200366540156165716746262209791289330206191434983032913751919042275717831804086386538672959392760685026938585188191374389140941005208534069536106981368207558984331605605534550213267973185487675953443949416077830790352469328779578693454773879479020681559335500077777380242853039378904203303577215168388514117984291076121986330095044280796663228725826009485121573695228899328078145610232702309105769989952549967111452828106952812271880363452375684807395520509891931789917019259550678274381842679604479977970948376618965453185689236228838873065644575778968416715899507238215119913947996133697185013903703797846107018756648892792202912723101682960579128169218451520138207064725511162030554758551353865877608483658346321416380108572425025796508719857946539512110595327630500747586216337964826542054199085917272065632771419100390281972425660312247235793780433356283054833573597740583570109980852814955068642772613697645776782792634642988044627933427315896392988093770191705727264309455520934540665660651685425435854192054366056016432733463803865970441647083466407331743265437775688501530744949009448015160645976313006062778636374891799776856300736634293374585666580091959404531495690263876247086821434010817269644881708001006029595348187286713757252820059041018342436374176271569352035223582770773702392652200933288359144579581511461355022764251321370685482045821598907263415882561764163163312468622955519961476666334147004961945085097496857002212950870389532172477559888300792840257860222678895292013945803333909807293372174314866874434661077039967495163822012143429478765644218332862929108083498327817165255901600515499380905511039148632937696686251114892476213092789545650345227391577402594321847541939701833000303748974031118568563590092940723290193703493325677926784998378533102597728727332016493968455769575272011138222882445076368656273532032631874146457538178392443660892153740710581591917044864551856064828404615928630207846135623404626845109521908566448699750898500409213587995965411345565835616406273826370768335909573419135163529377523233243208883140508957289295867909328773021549528263955368378638681732472562735486755079211272635941415016342504039119784499827910747425992080911458556781994627287588061251515602923572528011366700793987781051906038847681694724502557153830280310593778599425650464857350177421575102808188389213474100838673066825606435482028927016569786272083164021618551014978976526845712754966455222581922691322399098377021527925475115363909837245483047336952918325306288177684498795770940444017072945180688712467749060247849489514526076386270083132880273637952635122343055373123915250002273586054589309362680167923589161932158211878200776105846169958412375447949520393578358284754614283669537406165657917308664900000474501348821735253941932838853034450669413718939981862628702102045398513693607613665278739240344259770432332862702162584740033743974630682818818433224388794577968170549058404853014464011855962732348936618248055783971124002311878861472369750551578274485860900188923762241165598294007547881152467236752160857618421737155405507629082899526438524684538577065187333338839600841270946428538193646275633000497824637887704236927033536592340774315188010733131048361278926395966069180906153621453393000762899756375748971812333695462615646660421864096190291783831926920318392590921034841894092386381769614738245411393487760786669585458427959173264319240565623624169628921207013192500808323719653488211708055933128854972038777500886156033617468830669931065284110878314410887709298883733131287294523480978951649698214092865466348877942655057543706463948797177029684672312568202503344609171936213476590068183762045306149071407235551122026237195719285213884433623076640681357015876077557582119723968434997353453177768251783424821408809246010678664863417342243514984606457421463276035371534492154629805148180229547958834192438081128468338281121386275588374698375504337334506645799226377842151214566794226938599840933078078791427823066270925136606877587402056551553676606311117773795446816359080783602668931194665260298013528212697119861428919233798172996985112803511040804847217506852783971359954150003139826264098673406077175705788454594216038758552156662163516176548940765172787907181807681427975298451077486448381001121439844453661159544175605278359179483787583281942234807916713062934767028973461623329912319080303997386210658707160136295122277666146381981199568549984590220939632576404132527883291407565250473675938921573828814154962268244926616868442757160495276996901764660184425471648308921501531551572470805639221297145022216414126268357292673470741705589254975608065943427892178002202680109860346832260050306133174182023529070139312879712422909180307620508224063406987842379621456004709477371961388529034081907029929192824682079458948616121255198361766577026117826485475336107732952375559977792340344284837082408542625533788607029711206245059101059416933290451739388952389651015973859373579987818333205365845535390211685867900532485753017880994126468309603268444793410076503670011572064769070960757568869885245647281360663641774803249094327366935186420403642154538536008231433509667589153036667508040808972567661661397255208828258093003427547539037784919764778226333220002749056404262144115275531432354469766314592011651675680063082433360315925042712434037735343652271823042017197347956350897714890001880623764343693748520563423741180051773496114715560268616916162923772796166468483938127709620507598707023965829853498632264868433713516897675729401086779081606866149236268112563792170782837015683904571567706367593418363456839326747561193771940993598706625812885802243635665979025599701056431669586860526059569772532869808663827434764169110205801102179757514304613378446240553841129923277207556621583042628687576799895762164025678921646230198711770084877417251108942315072980721721211122006198772987682988913692152867892970532936545183919207225898112445957793044628681065731217128223045792208960676488942518125352460477015917209943185647347697088430365865544459799748291315174240152114629756939928834994144958101981028569976949465034992657586044566366724102320232686611536084547459677595907988406004129087675030976009024913578336648343287665761892060005241430581535555227299825291490313287963143361259952511597917913923151755411229221028067925272545730304279486447478461476157348701732981736670162644309539463485509797190128220696552868472753578283593928515941139080390692849453111610175571948157319093083483780230398809482206497602342175342679164237984652581596421333733553755856870945849592426328845340863810637047133891679432741217949187374767162140019365471733301066311680483756515778241454695526215559679029265366397667518182528546539196627576970150854618539520454981725957490595410057413266646220120838777900566583026093796905877807991539724712536031211199913458610321636701208906511770668320905979387051394643294760085214535366758612596612878151492879435517995468156626201904499028540467539751072940883561580448217734748379152050307430710362986480508663331491730486662684764927669732745028976905275427323938787373080902758781405562689486236526737780580920701609718771192839579938063151245994304425605171861990246758762994439320624297975920118871403814338022478542480657977933845618205759308244928526878618322427924547780970952775343567865523130913509222097515938869855603113288753729023464755469875497756301751183162611977270888100625697878095481452004393060417153930746851860206503013632389640227198336192505893004142327802670130574369352631209717622207945089875153711894875610552849636990191591595987064180414079115162026705946161422121575768778777716813921445592521413988307236709198724422504422342292305808955572318432340675495838287782306846690119885195900669898121882394703274448539446879063098534787961405803516360257639812951360785922524210657910436949180603020196715580890174396490893335776283485812802046429765640439993713857275712152219038875947478268090493702114629594757818442565659749665473657270795778143418073348484849891861936662427984706959132819582135581937561304009862566426664615992970565143983022282151863336059472488016289926038805403242216019088001721141553638653163894309930338591394566183949405613307172366421946092834361870201912383129255504033924566457072302905172749929224776155291111579165750379495294856272782153297830166957645308801653151996630680905393528311802835049954005999031585985137844425826076589984439439041954374906511516243308351599147744791967669026593094720618805942535989139172487787777310516238679436869190285879768823568268767911117613708816174190090174285397706393249648992525215339306790955246180487213789507101438295776721045909768365802149713376372843758429544712466848403372169838496802700274841295911440968243099985582593980949067424814045492393420192342451335107493299193827440967372239995584212607277516857973721012726507721559517506131043838445749718565991544611185434087837694796149742793399250857544856802910720567749622497044152862769650626494314166059288820019895110576423003574707108597054673955733437679178665984799589348789180055353665500835536184059788049590885146034426725060415795825471443868307043738011369496890001864133340350909739178312396664480406245393269239542396003684776552318624588850989421838135746000661912373005716243692783258621491690403404002266374648594826072046813212293707211714713409799298297861503447186062985440844864453231976919945637419070938811040914832760779415625245207932877295215858116728906413048263685708315905714750653516768320256949894941443618361127115846422558348360437068806923746884963659352100585497788480576031865192967920707629396122567725279793671095576112350512268980673474178375280935891452921315079255590750216091103406347740396966856117596945571870908311514306887764051520352616093112357007623806495195847677477361768846396092328835736513316828807168118118071688581083371810730810915717200287565456439184909629802773185349747640078749385421047640292776822363451743669057786082715877503109257244700117622992224378916576441541418426476971001964326625805726679615012099440422737890293453609257451326776276549140194218324753182227546778688374843450029185220641759325698813150362171339830608622553753336749482288500361769782560084197585286662373399146689118835804828865081635578505368180198566168160618886313509603864849968797758068051871405195674159616524949429763588497424812485518749657753378495453729725517128312855810806791397041957206529899194629909188914958799897389015006042577693135869530555038475248300076594363030866401541470275895524533400461994851565404963731071833184529881608262726330423602249815823293457559934469168208742512495430718895953660312818745230334974572936621134342587955098628415690447573489797678325757350305068604826046182455828795601246074738523909513170578934197802604060235397145886802749896362251328537325099768598496096800205928722538560676459737908734598441596869946334960459004086946115271049568157658071543829324749025302559388566014377410152010300073825204731603427141419752510355449793923818520197299230030253886964156956560893831668872845764086764203823127626821482669248713977620106446538587007832997333307717752214713224357353703150568938215192939673806081090512106987807485537638711587734692930379504675824860608190148439132037163422596939901994200551862872938966500678556346336166424812954246756913700779508640304678535659851764074341069788667367459241135484732547760434740263725751153268785332342006285557149811674332753394367210084758876571902350408139320281344009735404758342270504166440915250289824710635176801513194600769258368840715027525461734861042364688096381272785445351729658471459797640490143019358783424599043180072120115953871312850926788608916311420811339453369099970484652170186736211545214830601776980028134743988093929791413456349879185053726602955856952920960787044015375424376904178774951883901015629367242597048390120297421426828254361036562406130507811643320211111733514244192582685038977922552292129829989838562663461834639395349045796868043090632711842043655917098026958089966641191813572850165681906332049160865310478258143482338943943735837398955619746461217739245558883524972742987058722701873619928345491881852705070746831324814601806702636844529894169289554135653911574698452763721509809533549016664831791865316401671481552329041475067301715919775884539959638840345577439105366102424490618204487983584389959944882089988465776830118728887886686033713496756313830021723402819006393627678383250118958110842961881465300096962826346874669650268186545258400541768627919643350749565400572615361411047952782139211613798887244156690454543538894943739150574674413435899793130138659991453521182312139021792182306437233317645109787267670651610384892406838620682084476209380790087853385960319733920356074255993173197156388839024693452569821332505279928312105525648381823311678741451956730911748783401235316060300626026235616233591202037503880361737434010059849767042122369670832121776925883516096011120198930756670870235985631103537137882368843211969972250066252353113548778571946755864593192179657534733955699996112054520043314797265371313034964719418844376508632749612336346703891671009196371695326781705702332564786521040610076249982014946559634142505715666054843779293301589487544839834155785981028982577470021537134628286347725474353074801555962909835923953759729209347056928925814944395215525361602836625037076120971779675744230191570640311317430917648666464859244779565248297240241799388237715022325005247944645985796551185702661833890751718099166650302855580849896955855504929348754858692090945060932153595990079824130143794935293685243559787644695510123209979376816657505273660258677634768381029667233310107114407412561503264068208352369070332493934071736578614844266906149521039077443206451876074815590573040010870714101271704976134503494887723339470886350055857858116573533738144832835649230008250015393140616579816641367356002222252182556278525407697326931101492625609462491520211176042343661720793635202560368639916047440873958909216711496139847963442390197354030532422341251664550643635995179094848238555101697384903484361487387511506236105230469801896559513425872864437143412824253332300305495658840427181168789930758422475838229486507097107584151708250521036691810722646909576777247367876435189673033577257779221807250227319699078184333140512696297758934381039847701736363080245363815772056944933794897177073814693042220790691372026112443550427197573420063499621262566883626089403371483538257709122233413930105949552170085062181315276079719406501661353615754463089604478818497670022383454388666413223895388949192493657774942620977749425377737338715500317604681065879660467214912931717540918291230454258164668559390844700640385051963077615910886045954727053723152969119851239514252339807230908123823492973765186358712870828541863600629106192358202781225581890314335595337952654639214047595111180467810466512395943095916965573948874147932186277836185739663694982409371848830648019027358672591806666486817249213889815309765800401598827389411948665346062511588359537222328402543695191327164846431822133130560856842831205300314268878158105063577740321282102271301916383837119634925238289993262789641496989867948337754349563997084534736255086139716780425066294447269053259534280958756196267947862008952765097467825852843291056719203200641080343631428963847556447034093862672313832843213613371977824547973356766411435854772204674756718673851181877447806368299251396560027012220302475617228496740539944207057907341741264670480959430438551775435854296787083715601075518284498838068140205207550339801806192448736359787732742933956268290873177995182765554003030287266851386118298811171518512697682338846750842550122212184302579854499923889104734001679042047317064541506775932989968044699865307490533064153197603255289682159158843449843330539519859523620526656758402778411757389240787247605519188510599695922909288552265402662783760209818683076239534253033076630059803213059636057084565972000780355382319208156037309234790062597352316799767484226263338945518274271437126412573478342137551406668555496242473290257333147921287776951937355287744914443382582482010343150980471655072923462198043071917756067343568815021692868838725365298547523424923743044182702421874318940047225934033685700386812602904317242622131409574076847491312169852604318013197055367748869003400065216874751521457490020954223050197681963507974861738454802411046859838760622146877962700828850781839746338628478182702873937755152371829411387443807472625935426128898609428059243045264309747291471613093906766579155031715475755415053498957686490731264403347413945795615150862645162178780508748352994149886111364127593620833290604578579701626632007309805556334924847515034703601929219219146616473797429521172712967964972932836503988677780802749082631893563668689256191086835237411907930748392227676447809780191574130863162411889819676557276319013400835244360186415453072822281332682981817372561968135344043011522929424749728656188706554995241016803548821689840929818442814607993605184935454458563954851367328826295487860560142390332177814819143876655273218756601332080736622018066022565371527931031373114006304584419451252386757345221692847668577319109557720909726364754457281941650289750360100458319958825924562707185580229545762345829782148407361971000354427467223514573058259485063214629472617537561504899308516009552808879344110386876998132405996366364021331731318619243180931278165842585702857050333884004027411121411949856057355083908126562591354090899234727451972802125972651617045822490528616184666507578415820507744475211702181493575823080409437944958393433790717502805539776804824277631412157070389618630833879091683841894238602911953185473621269064431095837559587086960347483564101206790281126805961596806840663732868080516428721149206277496632368058706391053442804052260846009152634631380258762075606195648108968862106227341893107196476449722091595875336538424421641236274308048800396431812940599226498251070208266057045567229750911154605907789285782093945873664548756462153590457702371833361284094869670802956088113238759932502752379998167607869703139896175693398849835304933106159956049756928735704089555419672098472453157861007962069726300719309277021550321133053581727852152017907216479438010969698728865560411832569283898947644482155784346798643765829501731801243950239578374567951330469978232113603883544264131634209124502727827568754138304461746457425455703323553107438031638908928277049808043524899326530839818777597433773641298248200909944423650441479159726871015298338578557504704583281255508171753141433218764738894024353011119376289625016510131035530782237759370997014171461729420229285715007490608697908179161252515974945179213315930266163700120536251863794509351746714406274646339208228020928957804778270167346056229301589156918639281805873876332256027677762465735500082702873447867172127947704573645869014331319982370065997797279129785149359879948168235983562105827082055712407906831861189153749579056716820457867442982550891456111545326063485171682356339669479462969837939348885838464391981957124573232621837987583160853030138741400137133641007783787439524571477471549479821382725428124305193611360235958599537418380841701588069253005860701006771480834454401454995825897219792155630058072672397886061971693176449596516450845104504255304337746494641964586257914700466694939276481605926817380323769205996430127351581601985742592551863178801815859623379415911828881700038724982399176208786026634929565535912684327021412338331079419164027306238373767865404783758207836966294941507317782492800117173607148276819727281731499736815041631166398792704881068371198222867408342049424846293279747879269624139923217546879689841092728973477480324703190372508891227657603844198591798000239807960566721280824699607426519478087536434637130252201652807853064178871646296221090461820427610273958575526321175337213859899581498625015280539618860306771081922718655662515253703833372611587483880998325309534044856647364817083146405974422623201297828118850688525593625294090624800458328447081283256232201393667529673793554171553942370203910709495042741749164572875911786543107934529594436920625439569018737710319703312816522444412977125718115278380175295416294255815927222479064800877589313454711826861198757917603759866115650971188021226448806854429194259918692598911742127627905856033100005648517407316315681939678764742952850024151694641904659893877965953996048754004852579626863106493411121681305613634787596369073766759832297151569967683655779851333037283694312624936570678817115883589483614159573215819070241821585617217490994294744365996494671999894698167043223215727562537095093216565852829661323300097322284224323311974420402016530752313812052953671969659980978141090246029221104554343621607634581190117048022248973046853346683133086867614150580019251215723305087530809607349692735471270637719405040657089181862290317134352570684248048349869462178976982305915489540330679727890159595061109958143517595339528947722190136701534372799715214204429656982285534065162405284696148431863188936306521702526962110066782639057336060156734501351727610342119431521458630993186875077517148400882892568800545167106958584360626998391420849069421830979452693031181166194621527841183610036021761858260664813296891802077099843332479123834750739370377867381484078002623265741373091775638017323454456019137457582564345477450677500969753743890822481828575012139114998273052590673119655124248843605753561666087217975865428656959059031575336791188062733354238886914819872252328353552725113132621079078200137326984657838439882346944277862647690844052973794678473321278940427564934018432049645291031647166707609950945167400611630275047665480920519075086443150505282885193307134172927858291798039799809056187671628120472053287327712625643892166269322726413151803602566026650712079261842878842678489086580705175956428447720671114604611103196786945367521870092943419184249954266752677347856831244723746475158181602529169733936325243337344389491430644897992978586058293946674925860533948816307032657150625028978846955601002291127262962164315190345984107575243392408965969517768867364877574718186549424657369452980703353574345458237720036858817072388767460167542663982341024138112409136426265102019376361762601489414510289897436197355760636521027142266208934940057987536058283267208475758526897595247621811519587553714613756289517046331824090524836388975078344331651376654062751481105423791533979550809215947987560817594596837851594572298435002646269854347837986053466156533081763647050136054394157959075507684654571251643930479571252622923784211816690864868164845374828347358292800188516609571302745068462423650458385488363149164725606903541852302057641519336065583261381997453976657395264028457255025860274644678146897412131950309422818055280948028470183347231703323112887007015220073311879958043036470448043984407781509744826840348937075829375489309769788614123298996277718757698490361334078963816313456073400824906947291232067950929902287734343947438650645242849577726672661691882393229241962452264635315111240527824055135934139375440208726895705156560978239958771307916734009827190686217326907805405192605296705307105836485987406590801926226218941452986627776169537313898281613890846925616141023677630027731499500011245155110998031930072079157110347175194917179517183443761457004356234769982038280427927066810795105149762925664240285583680817283302138656659624794411049336858054864935878955352705818922666908541857942881696877506403492622343673700649956081624638914576480841646202901417508341012949272888097364724889944038061209380989760526409223006630460484549597410652406514235755834011792067545878317248314134190900103878108413185832761287228507372392243512712565368873926114988839063223118676106391980495374830087746500042041631362132625111342557766420649538616320635642134712166241369571430807525982233383700729022257511765022911984710681571941780947359413334901591208949154343031834811473734980948341393117425047880528696077486650817628120096514763108433908126500257278380324024240289521286092643234834292684671533942302744853919791474019631957127998213110353156831409823618378675843160870470388219729328371901747535127480119429846508537572586353585255538220994862938738169484501980635019468162268776178990851982019192680435664593391801340425322791331346618654405193878363947138500043164651805045026907144921665787198376109456986564821054104867435879479345177598828324075221471492921955147912860707152448951403128637136565547014453494822702480818238374195631768889942584805137898495450144250377184287019002337619076375506415002608342828518849778195742934398633420673175744167450479972681902204204484146547661020687734711259888721809965886937269742917737950151353113353258152581033113098553322005656556854010100710704841886934414682314959129636781520489980863365657095759466417548119892224544311788240674315873807321972761159098490962641625275837176607578994574037232645611847876902908622094110645792192800958273118977020234423233689832473174694538953602033515859870067190793530794672530828956092657541977901108288444324179337602311030458136470185423736954164712067612652079433389767216170200708274891802058036602627722506168708676653937448775095468100294201142330452400318599230328657148700049250590014969531462144694937744637684697658377738441280313138800733502716400391611748637860310355180395304637097630785018816125358316147998232990939646745099591219624896887288138702259572414435034373424276529487939324198341193877535912008454135073717970221043660017661039313743830006301247081505931226860197471489192827217057384455625098656152870045925261807009013828155385692688208779428979672868115622453893803854076310438870111661637862595549580552833862059616390200549250026714753249499318419702705629333494539761632010555175413848099304842970892042563998769147634875148561678323818697224920917488703171564830877385262307145508078011921834759450703202171768754906791886307201895969313471201293499110779736874677952110927214612474411431464184253415997513939573684707968309130466677950785776278787029273866133704543315470875276597104638225080177367828080960780855096795765876502623092945109593650588629125956527656191810075500785492905251615776065916418705072945011074117215918964289371958058959176067325888214437873609393780151510580811175320882745874082353380748699182112697926773479029802795585740907675575196852046148736607919463469568042963811356182872563371745657165403941232439702856306839918302137951863144545107035017260908655472892229664520845148187902982097420963999837885860580174651334318748461317040523447010458712817115515360353014960632377098674204361207277132995541562025325122333885977093525667498084394051800228371950787008307561991528757924165752509773621418257360491053075754605424013631481810256374897025814668559390560072221915922409929530052651203812859723995741731576172097409422205937218344053766305539390153012184243285843338852651746242081185716510687004554611208258352105099865991861201665705647471748744064509332705260461199601277389022532919887265912230852205726507036418240235821700506439623162328282965029430462573220872107307862889821965569476961648594029124741291277046352604963329918727438779410472949768819889795092374630164055147927084325804988774494881720382831538846180718298668617177235160625437023527260933978386064073247844230071800771395491779962165931016428709309304922599966447025122931501743161229503906874417016697143359870931020161688163728660842147823078402237501666954004273090383539995768702261181885867427724655859694537598574993539748143574891314604430671176157804163093825226493271117432787990510446882197811289695613350008744727201496725423714732050101403811065370929061030462746597652169330101095784676324990902268330619849722995089674714401679230978789272751163435381266783691813828046413253188620975072056506253749734705648517437456803776592638908434449148967828841095342451981371736446985751423961404896917985927045666685646510378021583166420893803223988473965069149758523585635459769740048559365047629112048975200659847118644021531228917322525267589281930287535777439594855208908872125502878615392204051450002685787634187363599450051409175790948673711695320467691385832342574389521545731285600044578202314273681861483041055779725273357053738300905724739806924948004476028472160244646297187128508769375186653236099016897734011213715531939560825603137628774113600821243967410322456854715412299709269697403387520580774544640747086209242598090122740260299369166183031845251935358204350071760205521261343177272373212027831557754082069506095503763522752011881557670489108434730730725331080814627803039927321854513062276273091359762085592303450812412305354060330376547158831406659961618560251223065749278956776459576426341739703454158954921095730819289474135155479967202131679569624523303137063977270557715827315000868729433069075526950580378309961687522394027111235782350057400267924806260413736806546545140366247968455905804171786591381927865045324786051253951540732888750824147459884048801726843361003057398641394540099203749380243768166643958594910459537594703699684426753231794830560294074878847423872078336313492205805756244136304140494462219632231300540733208130687044639417851724977758907565295295128827350729529962477696527712250118844164202671847313901393267516029973967194876865642688833341486003071516259591406179799423175244415399541475103546032510078458338773289767519030755803001342447658505429498966169174128958136803698724534326943716981999332055620335522773300927889884588606536724382883736312243736971194250192190115184988216790007973217580068896585675225076618423624821088768220960263325273026823422427056630748762916908151300292352789733336479754278926456812887096722522613405465086697636671605057246784148649123573459717400700540553464728715806367276311114884438073755071159694123689979502130357296072532974444152470374500917377425799943330314290653886677976897358310017687696402101127557347828381728655946496483534234754711633581892898989000681390978395354360334650320162609000303043740972603328805941519849178400091959019056431668472078867487387349877122650336997402573390368955619516957105362412425436155166729958520141820293644352117417559939349286825115898922819481112131807573313517899470443427223666561302075606927013803263510078644451257368771574131301121251754090732038628104933206830221808660829233475336791526653859337160794204802617062134659852478217619506624691093667417654640467744608452856764504146713387828338595702359523732966338010115662608857507842761053705290093070912672011324406238454233163111120210457453607819579611656425112793342921005233511652225263693610133863169729498961724804727090102346368370211189322411261773615963585037155060494428201311855903336186192635643402739114610997816586212452308783506414694286094101373360105009371652795879546085079775472751285105803926902453914360062353844052305170306185858530157767879432305122667560277924435707919687591187330733097201498244323172898640857739882806136082660498206198458745494673241795583009503732225788040181085047755996561518905209227251793247628089683337670008891512223234825321024404329234872541169865467797342884982022101503457481019619900830443460183926512937186923677957211526896596582891436058982180873524889611549728778498087661830629905857759476327839381118629232406827597694956200385453994963659681644509288687923701982590679245367834372587222110168533168385151566963926450476912597831219494331323850634227294938942596149071248129154096573136241412719854932156342227406972908117675230636761744753459812659749624380652785999133253519763492405989085948108555344579887099822400224688814931969446308067394584005920423486224051647144934802713415480489369075724761287717792971573459583243615642446919806978021164044298716365971108412660153070553561259671276365170187956692399993141523878497834572450799959898676859358183875270070291838691098005195768065663963230591453605697003786287527507591900311206973613142725357148129523623411293593761531851795553179985256135567662297448082290757976631170359101253425576758492596299210975783856585454358465033756094857653175211637076374186762480835285244907318121943486560887157357643052915738954818189511537694196943987825004894531159706993728491487937168914596918824439351400126742710358891110205042632279214065383853604238427399344309574285670450977974492271240489655962042009587406012889640668110606738960794503311582052489186920034961585672169203826627380180342084954687212629451477956123775454029736918199982061179417642154183591913919680376006448163161091064145959745251981356662278526714636840214002948984544255986373051396270243013928835355247061326030190942484860102341269157016472316556648372447756442662077470085260635406206919996922639132590603917515482045142850360358876980292985360010338815681009504754832717858130218798071474355032868576890675484257159693989437420698201868851122265623358672963565293204786312806901718117773595060874106843423584053556774344159281700092502236011240919915967707099748526391199070458798447350973996409440653043333463689264787702324331667035912277251118960156571796731724501610942061057022252265430964588738440562456495071659674939807593333118961614749573563411944245117878885867824819582499636889308973144657370282106904311831021893813735289286006129968229662412664801057827880182471390783569514910557217742484186445002107319261228204490614039582924229535231297410919591720979717315652390742177552962951173568530219274823208829962370216022041839247606667943329695862121191628684154720957537614882696189108015484216320781344732149744265982595156045355118783575344257625331107634969461142381925657906049404450730260817947084100671819750898404667295249810860664464639067150072991675403039751593796171875948673939473399110551254040396203010890828716694689716553188727861815446347436876995537090910675753794843814038265928852198769361046255669446228345100190015094135015389823695538013064710085807398564761790139353048721424113225984905917018262205576932798329278839199858051045921013792569480245773198939592592052874754508664112043541918405308137775485000216167118201741795885401764536804804182124803797151679875720319622370963696604032110583212682671399405769829463499696206198965517359990473846604905054735040598791165446006264305196750608093180898614298435029660391377874620759086758522992343725212136807635286549202339294687745960522963391910237963901337748387405854153248132115378388506609974752850632928412080872416046829129783729292255015135770194228024237214929621548977939000851899637181793145766421697287224539115490188257727047525344917961296222768870173670314613605680644196879885414849025085583731777219213020160964971477530074797948196353380575257906134121819290514719211131257954762178546362084580157642834298138402880357992822519642546711193863731357011142088005724365994120951167001775270370118252423492902711955409547696320372026207274842054365974632272666885524455491662651074117123791795335268785956705372141024298151275828497706257305730339990437812870425973031592742434966332241978216331587894390648958223558291489095402812034909276350814610715536479964112576634688756213736657071712638740263444321578463212279070375796664680988583732578521224444888734161559982025693999689193549264596571921656770264613555032405333824581016468171381013473183268008121973950429239966498764319814173730802092097641971112207690571121260900318683000800243046626696633818540382410849576290147771406415760178713680643654876249246407951035106201580747585125098007294748305805369652336617170449233894778787953632235920729422363347808541497331230120053374765347915186684782653674517658171228337202976675078593538443680793381193574325274298861229360557745769544076902508505382609372525066150385976260397322231470566166710601609466446825877170487870213541126386697824981412062700831937503268508711947364788718897890116525791611233570226626749908401716875102283138136523263899279964211286344581985430545454719956069574287685823943696394814902252223619712587196188496889290613059069160637881160953026555520072043667967638985955104851769258903177252644495646890341304456055204843989271960609729593285586981845318509785214244908568559495542644497531004804766458901520407742627201840518676651222646558415815686628639726117852365492729234953753338218066199251995088256647626210739497289346870740141288042944330499514098895794794893409090919166657138127580536447312387024477387325999097935795778690314927774687737307235774752037995314650917471750567245847219591278672090339066124531029327486802207249012487139031385550053779490345898834143556063184790310732277542792774393112695361543471461822740604693275407404327084680940634480037915026465627657583754977755155031256074763283950511580098899183136807033295200192724670753304596662880296419067648642350042040342417724186140846966954728012725022918224723420066707819049011343155243891536392946160222078506394936939663486040983373756035875628645802182373667237502224817035567544932412045591368836990887887013331602117136498328394361779630450848559163577056470268336249869093370993345304222887665686060934718958182961909753074140974851707939159806900952740214704418910801483369111272466329695709943342018410164173241466966697332082495653501495768593515364467508213738989563869124167048774686266181279392904383305647630426247615347063263232536910708883812622209660348519464122691841821828784731467933188601838570254960966704921948530866225103359440547367494095626920227661867293075735324691336928563097735968864971783817192276312045685574832771338455072533710877549612221459545040147654424688611754350295716269131516015506271337584332262464939538899267200815224256961476372744147475363655783673734322211859756764348613348855524254963861342390666039136121695657343982370326594553884368753636286159799829659332054623837188298170676086819297588192127301487836653659589906258837168079684038313724994959908547549542840759913533975859075726397457045245381479916931681196032870009531997171542363389703328804948653418149719676943595750246237817766196973325256240042947874965489232034634701754082772438328300474023593138448292912609442464175432554547064920993633699920441420865224706345199813001843451368960612910447894022125699003036753455975465753584922364224247688466969885933155190125380752161401535957213392062731369813546367660706628513079081907699830291064119270317143967051993873492836567120190664935632342586572804928016896438943226402564802325881562041847300168292597873040637535987492952145687769776300709477177228012871261337383920311219261030751055696943991476981530929518905331659111219579908668412559626943048735697247978816463810170919827530767872454329253149648989813747253360786661295683967801712189855173405431848239927630853080377365056236919399886719000381472323143025851014741052136446206795569139333859147622218091001049431592729391769242095192314538367503071418846027424752674642734377681349276404061289044485662775082667810812121677673538280114735262598808614300405101479349302729606315710378157100557480732133015067426366758856496162179551873785407921812801073703099328617862331078993789758374354517261492853418811982065034895398039028524837047692069606580279466806553490307784868354968679489752642241169987204664200646927273207915958235670870830980067643373795664061586081663108422830075330411574546752956210963134675921655894131251701716514581939908080459282849672162145376208900864273922438506782621921373824773120076993533493646702337043079204165485512777561959556056306233508749759608989885536679382937360199271436047762027880327930951825644230703392894660137050091429537250050470633612308481632503288505179032403394246032376815695319454883080532557618077718681897604620422319710304277416347929208343340447994220766951256433925616706960141376517677035367835946449957560289910337525157907503128515007702526258321696789361998129730213638877478037169681688246585324399096806887619019229474925075821240493838349034720626387449494799179296043918695816392663866507787747332703888549310174461882932702671921919055838944755444489949639978709500409573878776759466480861449127592866806966810374342948439821027063650329350249104420002066362675992193870162746919477670857018885043841303468544207983774955064212262382266674881338502657916145036217553213354319683197939193420245896536798534938161660621415823471484137938757254014684320432698939785366644091263687293986696053196478781669834720842087814427971732787719431443366940509633928428654798252779630339273862902549143584207836698818614723050377772375431457077094605990389561212848365986064867881433037048910847704855334132374905920911453374457884247980392134722662698111182606810543293755731919119908972475270821996512696831006121225846902610639345712645852934806837410615212922384696937038029258858885505583259517891515075865020206802401145947249968675908576674012386392527764787950922392273704495260142738909247227139208131673682522499377680046050032835782905300192192079739105516184078174131178639690570163170680762716023351383249274052018345615361015152358694187437233828051360658180185612095011022208520798618904594936519998896424771604304832828182313025750271603419013260116265858796627727245195401371972237331189914592799022214965526814314964992307428299436724298588416107214272664882560369784839329796925079327108095404774308422232918374326572416144889711423140655114499033520005423305596375674730847800833352938782028058504821052581556195581393374429423810760737180453838379873170328134660704099677002838551032598647611677946012212857630589331153390657156868912267538788832556999397342192529576454417439503554560877762810556424068684472018780075170469680036081236471741342090510632816426882850220908818742712166564767284029106604690967649472321835819833717208311930601639388246573543284116539596252112890127519422738799042517937813553946074320670168046547109599677738291372455021164060420557916049328720445619513274404046585612547777692435750996126480640173029141861745703096694405210063979487808420197163566473124026659768849933482752086112187051200743433546871442214258731224460965762386547354906103101905980473010549124107473299381421843956096331061137714997278305726153148053348075373964219643742860408441761690997433410575484444625702889246804771736689701521671467444393233591704799529739809880811424797564903755323440329521051488770071992738094855977778607620161690999702343119058416543486805576316372658535627431348271848242457156970706059933446082789825745165045204684742645104232294527172441182971121229995234280261167078678205452189492794234663736539048656285417645661519561000330687157603719832081850297462526516424396404589372875271720013756692127471598273364643604389666651148399137717068432079978611523566448227617470238744670433314719617135106916849938249310570156827063301196820213246124031757476380591184359939125875250074672255056147456577048593266383952258976752465502750019565866941116158826170070043456377797098375616619845013811952637714661173297283615235694509102905481276172864129374915006890236274645751235917915311966715306052421646395965362255850261157385647454157242391235433266692631115725502775744299711357213017921197144766748926494786577944005853305921125898628703668528143222086002218448870589302912566466800831336916257151965102450196533404140440974218471104618534589091943603334421940540899803175727415405344391142293807362793782204833118418247555842419578307671578574250103030761156469174378229114456392837669383235538792121134664998990296117028022871158165078412120652430818117236257861899198792237003643264963282178121221329676121238010622925492044371514390961885741747615771458159158267526480011540578018099980774585175984098398058358783313862193461602113921944808894283111804077766286148692491738760977108361674549818114788768735167270311297935909569119935630392023599865658640961192003578145794995652895121615687856665113739261864718798087795561143684145678955559542093369669084864053565336840948785048721351425584744521283332011045715663189121735574955528576909536639968419215010504976283042662164552519581231595552496012674521960674540708905910877898588101405540301789454850493367669941669405849637576330724000878121355320566426729158274823279351304624304234579492712753955065220675625065612066470283931311596646442404756578102893378344415996153847218247111809193089754606129983630413677920770490301835822866697175988032345951838614821789806081956627394921530062495634963359093564804742863203465208985471914143635073120958580356838260377566133334743861028047988025859956563449702205386572288928987349585712002047225102162390078672908863938455826934777667798434733667414562446773236360823476934201249235843818413965042227229805141313699567352245290475224093747181534485378660018532069675559011629696229393475460284509294412603309428650965187226879825030454163571997932894073436267496022077182081908711163152432012116866521380834674648024481657718012531079222876522692103539774367031434754782880966616808171562670993769846584459980146470856255006678899780431009262290506634121252474069308583293369607762411436056770429340158811813321312474054813202673285864045304449837764832878938452098435426669709725632776493597787048710380757412286944329990100588897565612900911685746377590880218377276604621172403753027015587565468875144357455202373029858596959478564487135663968262003365115383628367451137980906027003417194755609347761301785172097997193061523002913961045840669916180002277982604828203291556725469625497805643660479073549103735025370877760282150546839575694758540825665621427120243525377098963959337794094933995806414614136736115694597764139889644798458843588828863552024483806202478362632142771914933723834173062894996930634276121124373408071644001557134203656966044566383161092764848209263758035670470928466247773236730349273987491809989850155837793774729565050259396688682663537797716973539879707663679792934409973444094751941028846366638401257906546418354762965323422170982925653417592561338011706515314289738142106191231272930046402046565993106903155299218608500115448474167125488006373419024896034473354579224508985803661616356192376485223437067029066218520640893598569373739361487807297708778618065060158797051091244313260986185553766361243988200710316668280232157912821460007688328903666912515362732588218931549987028771860864172060927425338705927042980174988471426469790047518330324020745221056364267829481527807408677674523573391349186869147947985810719423325830787637408545951782506490430994045814774790625548726349187967308960731727509324743743820826090782257160697725888682852066487965524877076942964753212148519418793589367481445897594424673522160888365777163710321982818818290928021395968706926966285102724836295422350898963136894301139393391872741853878180938777939934725371091533186637594650580312952991641680769630278619147857547249308532927657117718545449569655681784646737405623269395784438756232534478476280281422240368423345543468689032587457464155718048165238960763900571665585714469772642699274516482327722868608121507923998549996785151533770549350826280566134015772315519807175047656974993655753148160260422171745810969239262472894325252266352056213240452828333867097059079137138566799789477288032471835812051712656747094126851205534256990114386355653965309399453870640435045269395458641612085192109166501919921051253381930295379875807678182093436300785430033079564304297185435955996347581528531913098408001910664700789760657530794219544001379645028586724504950227939206071557270684252907972812432414882644459270780906290088455951244028370123489002235670498787703155018316980769248956516706562127850936923530593469974898092083142798514633911401720987455998296011605380849645335818508283258527015612582693048210924930709060922039279343231063387861461959240826582846250038114397418027710806264100022488576754136366965222654230930165085564208218564865980556990136371940731828945213010196391291269710438638523652720641163665280276047704114734226510520324983710087775357846562961560184661449444895622952474758491568689555972487723416128498740065029787150971213179446070693768023403715198919866056663858605799623322471996212776510111106418690346697975327412537628931079685154339844066456977609861898250462986257698432657974845675841734197362418999786903409422888519855935643253883986902157746123980183810802439603447490033536021323930921317020826989735599481298361263181553370866128622898489651531097880282514212445118133409950784617786075042204988944518347019820520628823241709938476383759754037556451526738754902115915961673523976384847825531353656334949399339592691549068300687927171379481709635684326354058537603240654615208230528666259594499129558256229672394350534777952756686991439777667016968278321350252039147114992872859705925787547422968201739734697262111322608592869970118643167979075251037713126521302690999540008721005248941589929686152212451873766561866095024240684853374337759041347120080885573074135111197640375716391756311468920680428372854809607746647959321625744749736823701271665591791840803131895407206838008994852544427888641132288638423452366617337775486168808873317901118011309851791543919129531684548816304785577790807182613495217045831981327863139475797306096717491715289459385510806705035804121751296746963038139894189791692872885418841716864430654476313557734286729308385005561194562695109575402889698192016262952143323385128048876714293223402415151684250088308006735041067829358743347502957164922796091604577793117152594455039350777836947750462737833041760510837901396343920426489508097960742904690649210549467646258344224206979611483694522120094173902157007439219878360278190563978349181252182086120628757664231130160794928708519489037298974295467032665024958823106007230900616804683298954196351030212536440903293655317029795848425844694302638125214987073956884421094287040913245446160389555388451486886683517323477592454268234254793301804291051656423845650875960618248756143074047278559739838559350542508091257027440143732179904841183043781354403127966824680804139994203522149013876110225370205567615938964962509379594565437019923900191629503645316853900477339571858886641209077480039008698737347428305704965596419164417231792447325158502641174535448590681733442470500448087987914182108239293223238279483902102409392201846302623284432059234785106968042624000867223307852585375603987458185611117761478527230319281977146677544890179494392707076558485171996956769106100878854325901613756137740833329675041355843231035691970996691809380342362517964876294727112585560211486769089472898545826458295750606346864130022109209917799677041995034392585496639506579561493709247838312180191971855989535122911050022736479840408501271810360242878622816269115636497120198734266603818434266359365651478125948492113667821318528860451251477970067836087858959643083344098967025175536197615811375784551519317850285300353963347400909748939121838296394658913635039341237479387332327671561942128097189841392806501447802076024304740908430137904148811697593432758461024105931470623089677748251433601774234979518376116811852016074187670442154506684881305363455539321939466088412660520024730493714051516424132228168486848395578323985915363331528798039900026366359249362145389047770273224950167658947808421324523815137460021290640220441779938180434179166743857653715253763127087067676250827786633970047840613950080712354808739509333522989451012329260472106115314436248087931849343294500097917424173947494547325737500681538699583288275532057157000822452841817750990146906889857102186813049089948233268013661479977428867750153710462805773385807690473230719364099207535501831875927210470012771321016100535654966852609083824190745194634350698271084922727807651939528762095148047899905224604961786775197855860177606523227747713597237381124372237450989041202341527312722255734188156527655525520344539512598863356476370324923337330684864425248174045052991621579269326438362494009960415124308013011552744705409153459134716433759511891726047292027409877082809924204171380030745070996747234892628370347363448091208482435318730810733664980803010868305850323576672441796914122982936220096070596231590411902338530722300741008184676892939428944914766153081903763670294878739389518014836476877136036891113133483621699361160032495747610247774465510364760695699569750128729501461298481694334939598611985043740786476131211787110946028181619014717015010943388694912500696496823286546334902204589883183697646115687891067885935338242870784018048228511955230189829967585075344185936302155735342109057090103529428072351448184762606942813499616076338400819088773945344608345749745820688091264419424748630181729090459224473413494685955726175675451492924903330537690673529800945268731862683740598030029745660209420665236944245042393756129901014943097435774424638373699229848259510287408418796037303093071254305970888757160904743441336867114145142832752045376408267771849556292604619814658562645937798279344294888623309031214601488996901234156410407403568411171569266017865185936995801178782282654898567136918641210296339695539137879521949043856713642711917849081585413403200996753512664953811568088801373496666933763080608190563499720439705794834275725578580782411862310885964741253613317393895219316017108327129334695959786743982076060483890767230621901657241537284163904248431307382778598737747324095606225985713633356473529895116373074765184518356637136078499138822808523802130349747136424571862693871053317784611668542755392586845135809847056812625099989030842900365776469382793192139881359517504942926223049285622013491708714507304648610968726501548535454659194268421878630353030547403813338478978848371759406039641635884503426481824616790362352891727155575887302612474200744989435974163036692562522733333363651815413854983042235517999136710528614526986761244379450544902706336471505886632832079119861010412811142048238040880041548983695295999850541228023970159220231554669692389449777864981903565603979115692546254640422080355419308707208255454792351495229750941633115026332607713559703453843468195561921072616625553669343372711121844488555664541226538188488115149998955965923503488343382165150344567515671073095272152789483294851785709349683023469253120645378838267145382100676633162271314620021753936635288334434371997135498799510474679836592533877663047057909112462058153416194016018773012666376103654573100548757951123602410744849089617542387241399427059993337585237926837184518699754604998036677784462273323764754886641769788269969454388309363122183653058715422166453031347414724856999119024805389893196065334588644142092124556264775013519021714543158012107707146583176329543196314709892332901479563145799217061059121532790525274213394177321444912438733794509927487248524926368823149463159571456546650318232505714254866622113835721741812343516848447348639332742438787995801710166247004808822773632248690429287484014103956988728945077096761786626243509651825187818582901911668922512202471095275676026065455455535571239127778464442502399474633582307902430651987311471691777195419430098230179709730889934319470818553301693388464777608608436851601408340345927630332912083735602257492609349077974807562157090327496954999721572790389746282416689650488926605475962759932492430079080460182665210071168715908546620718398764544597358538846546916136968654472346856390473156317179801896110058498033340922537826517228769844000317259995755002018152914802342079013184413108767077576878313052150721178855730660041681998861689200551234047471618681676463958906490277031155230074337033366494731652009100862318552523765957406878100023912692619398879316376582879848342082091903241241103784622756050700176486334331468864670637032970732993549650319572783847210555299063399324664731112789950908158193382953811366709664857815878134464056518581317938984622810554728326419506847947140986767424820791437029093916831047693807839254699821735784424544097945456120710281555774934457593888208023140793943534626143736264864387733791788827671374926359845966519714688646231815519853844185822714354040392250675104441772856771008557896195036805641069371342183684392068864005492586319178807899395207652305107983932471541907871550697619115948510933181157564507159748458827215074894413780613637131140234154502669379848161002167812817663719052321175612517526651182048272136478577615274369341590243817940939977643948309053068817068368600370292123723932843874932956489168920184373913314707599092066566829499884788209630104496373979306657722378157243557819853482657756244893809271165170137586258073955055576830024041378981900703826206316855716606655913405200007465370664775873158721261333228306220227113375854667447432950649511774444937074087992667052827049582563531771412443201391058694635337961340467800797926436663761775552206380373340981707482711389625042275244859136522010222848961564637161851598551512601730458978535901741259469170448376919668583474088771023186408599543098889408186712526814787476693163950093990348078961851403059260051568188222367060916704574944468492213857381562623952991918140719742811540173178375586789841648461516383425520712617285066321514861025622590727166520931169009740042159035945219876988667673446060597916767424972322857964192579382534254413420455780060332969894487299808440020460458762417857775580405069111841978836096814366213492322120392241657825749805223352186554165947303218812446515111968571145877530372321230560736611615798271287931618611101153284350062709620352959251958151475756323321550806614511562088376795742289993863820032199053987648212942141707473761834801865251873670782945238974325224544688385551089035287875532027566154707900691661139153046136945000730250457468881056396182474647773942999386882116089250638082155522034243056168754361393856703251224187869386502103719067748867433210448621460151682149015721326674906710971845996918791288529649884156737033489488689271123793998411594658844503822859114775540261001127353516575859480675712346350415285144407518256932420506401169137610351889680236891825261337747317795060219372103902800772574900555282438888910085012706730387554054976989347418000133811624065632476443746338024699499291037391175175499747015288548999735785073562611418440381917031927365981589493530214037706566776981952423095622071073862746822416943303690508994752054877740555580139464004510768307693371939960232840176539574218511533872592964850204635988124533598831507281072611196176474320498793128626649467171573950863952296471333711002643851644698045595603252651905380454665564381509822894582575149234713175974823558493406942453764359427542622473096868602959289328801487118377585197210851105171237024249248716260565750909074294824638486260004870732634741030400746390546979446163611957350142606149431445650674959185665470643336497479684344653299123349431424575109882850258702716236312755482488812932573116982973253955246681295557945375233087078292572591792170068777690884452112878391622613026852814031888587302686906568727765995427513831168312000179660562880077475057587099820409312271123698032314939957778332874153537214083980670750020857505092643027092993314283516168675857701814813453361310192603718164941020882134062385850097533625576407225912693820207262335658884195544834711776681828655797856196018336027897458702113433775699689369654526841189312905662475403914113063043969319058348673350377799449466628561255544257884776481305969615500324380858544075050035432868825877563690849654794646730855963944629689893208480441081255080769706609939468715590729463692598732178410576381889613579115716440558868188466645057663840219072826327860682030153997917901942517864441121139621737254854058317380441295378350726025729656536105622640660588366908786167007066081269346463053573807675240873771813433204283267291581792980777791169788785009606198274875102103438205666889166033216804307525776173944136449701031962679613720177727950279130072797062416005174337319863186676551250929382135882380669896249442630615021854888671602171358408559040337757267122935186914627098639733740504221716668339140170498382999689918340501245186175848215137988911479093373694581504152554747389917556558435891880582496241953512582307105818895561076849695762149512157030410551277476731847985822571703726113987015524502615345645881148103133101009719724316693342767607490682849459935936182618630695117851963364812945073887766341641122348740679451685573365749889436825585471021439583544811762174405685333643796976152857025581610080231805904073763973738606256204335282529920439074935574360265152137168731349774663070679561786631235011369396056783958209867504184219311263302804077653827399621753827959369490298709404018855894250146091888651660577150714655746895885833451833556597556038660486679366763693240259884608986622388035287626469003141972682227547646832275687882694206329160923280113985283104293450923688394719535591605460055881114482893854403312370764584854430849594502741459379583164291022328667445915877909322660401203083350341419989672106247208407403022347306996462916555229718896013137880719836519961779912370149725095197455408519589546744929754411200644562510248892849068490361781889302566285417927204343263406709879784493588060163227385390206254231983445562172208582721702914978348960083846591420900268431173180814093109830662713693325851532085129488617549287312143198795662559852217192173985171119148001362059635354106870654730037493909338698774404492776351729245001787669824513311336447110827130912690302484819129194538426422055840968132904624654116037605029019713153901549002090369356081462879221904057277049970201895564193997053142340774813038058476692195158407794302813289802239257610015631221772309565661193630588356376251438117628933999792207057621624030527017899228546816484865386943830335357260875358220169430149994636239806368475186114183076542764764982791049991348901780211361003947959482909886095337785757337680575729748265381308692111178229507062589677635913904539030184249476012747178951008937946284471517449015732124427123600915781088764116278076142878704803402507627168052544049073975718816008127761125222382639680607050604009801817787481254848605217137846652764560937073186490714605406283713954140650692604091516095772120637491703166068125566556490107124140008712314802350219757263573336805738438526385453737547708253631270659305334353127530082755372925028414993083215320216126682899543317509395826715989282150647389886528881387021819925882652558247540124965651625569697079742399012658791866354762399846382693246579793709058870520985680257637430410601226655194803997656397927804290859116739525083278999703696642968324136988510610113434892627535272343766609362547982698149755163418618753323372659365772000334178036252482528941272603015942095043123873401523949407056733147603721117682983393270357050408056877204767554511575690572024302500672933321035914152744742509866828444815579572037066196466410121404859442032749917551815545314355641729289198104474566731816464765116374515100175998777228759704356162973063191441525264378102761236191645089967502532448331908106758249812390675490747005064233980478371896625373590468565516365195180736713175255545046135315570513485218003425881166980030588472958861702007698375197954976223997096640453179591372066969398966144490834087008806730958845312941319369515594993186454809606714594701805431520959341262599091440141502251587058012956003677508409153606001108051673848540947207565044135616045168756780947822069519165109439102158634423354534214363448458394509547706690411528839549928548293307352448008993592614604969122224669530210687025136992541478926087352866544268959422990906810471022154626100023473115980611852994714758674605268151716345671198666451748201139847484318629011667441595806209194174848012384318226514771041024668985503829142601851160075627754589953285321233154075507412433403859326259376231847352490640439297271839812723749582231553278026254736118975066234808525855354617734457119282131783255074546456676150520615398143197683689243304852710703234928725768261879819548148316871120786747424556603593419856685582372342487335524738078466889073257057410922039085323098054316526329083496706666972299107272778956257271754060144402556739903235260908429166773939441916736029644821954732888278816536114866305049542730328206388350843720016366154871478928444826723865735998769526944294289058814133110264695165767213820093144929318304941333267479232346111047248561829237976321690374218790905278285255089435841192030435622028463281363220755767936151561905553800623129459783230207232250485545093502786565260384691540306619480867718877905783761479955588763671762525891079984485221660305713188282011412412487719835430318220544580367902566961934516290003481253184754061025769366398301147638119709580773331003444812497292797858900902967569013578931121556479926156558700734069688773773535782763185056441106126997590888896281748201951181288668340319264376152021446678172009181194646023428758210516337523193879415175525399758246762774377551077320373123403018068599459211767404321158009342547344605632347339464002684971639290944040700187570180903740053418930001993901106999669109880296487067016539271511342867806175051441612896672345354179998831359622073413663738265563845697602410968950033658005063118616045850863179570566953401596739016237451045356539715832632989325922084921500675700027143796188281871137943853011686968523091140370824761402787359287914922363162136314753214168871979748712420594674418974397749046300450822266711602628454539893963394026749017469928830923136705925705016820953880812207855588930265636169391577723871615238593030661510708537258046229095571439312888654164532422738042512548708551540227392899866768965412007076139674328284128320381741918049888504084322808424719069018914033210376922870531537244054440928202094777821996341876467038083199432525239378447028127832267435355006054989358548233871437282771403090684327052629544756099499024332477886032725030014560128219755070808058778432851978135895661950748162090187235263722699689144887788751498159890634492282832634695846410292440127852079339841586936606613505854061283007819751954934451775377805150696012005717945750904981692261148446411204098898873637445175460253094376522812204488829446214330481945476054592709900501441933707993189159958160107107668171413633204878546275732041129675743451373698751605255773869236117429284982745775507275630272820456750184202086743587748110624405928191142994334358417258534956520583964127242340990184216883171347099405975293456785322127652262825613349744814333411586892345083476280719966038968483849231422065558483227158875498723957806162382573354433812333943963006025999565116542292229669128122292145063661027167447960780341892771494107625847028175938842469025950267206200449721253345245105632482611134478915044192865638122604835230292387181828652376061844590181465708948886990793627156979152678751588082031142967590258267209421533073080334011825245638048459193723482759270545536535856304808502963641967658211039626344159922325940365658508488884062417066158915415646004292227622896230282856093181900743763675220819924883998231988703242580463398398803997651269420347693193433696672205527404844533291823948368551195660355821770092343102606877377527525450421629298213859145797402724962571317099003353913260766673348866429783072158460867602497041582197731073455730207758061272409924248050474599828076857953252224197464014306167354651682721714420403875115750621969662650130520769506323697254238062449046616139716226849701557983527290533864503456406937226431337793468407439391191744022025024916124013211718351103030406579521503168433865000845142683962136774267213409052838522604741485161050457876487854182067654738187393458525786244268019341960304210747520533847154975979208609749826801524762465225196060974785170270724585579435367827790464315865381920688094102698470143303453087192366247242920818838898737768008071631742708426368658315749867823334963525669973142717494472462243251432081050031228341281621290467430831044129545500192237297349032151922619651153949228953140951474468266715671574951107569067876969605414894832812531964046610782703586304094910280333075085470184834904032680631100122204176989594669569490685339717489539205341754275489785513861530122500018335609247882900745951792842262124622519915374899601103427399938559410453097297784270580261234048247420944268126322569934887486356966732349190830360808070325988499987239354643060148021722518598106155657159909730351871839888080894848915040889919431457631053710953404864252357897746132879233813042100174430878938270527801108139272236827138797118788403656723811142243153147199454130627226579909359218780917327531781201339006108916162798672742731973834287199532822458112392279083340406830394833098777897433622097569869971709304434805381100882798349531147707541013720621702618857616262154267278296668354927153330488572244021610516788644179514291476960837759774514235206525260648073627368020066740813786701069946666944247156418524731006976580752647144674097277216107425409122373679699402299342719674667082943246426044345321694343370798506482241702287173629253970642718244507313859847881313201734647819370478578703856862539386455829418965994738263118945228779892139260184942218514292337996002700619297870416503210411067026587532568068637013392089853143666140268985743756809526111807275866603560133056743674238066476701668257831525573017580545406107004366004733899512112476935533028134845116925832508732650359980975660495672459869884077573335424411197809883040903723387312398252657904587412042861834082816125453862669831705286294326320679187847708344509622057162446174074875959252999242367511155185105634340851555159706933179746584358213152236896868950299070675794932436058464932629473351435795476045223733508643865469635785420554468833514002536526633490977153505688983258515695429618501018036306986237706697498945908002622293346055557974377453171534372013903214914939323802473085463091207854801617393638062331475672117253442412008145147359698666890581616101308486372938270420463112057725094398745854153381568479480647881334336923903780279094084713442130463718353199557524876276653644309816703448690927186476043104007521655590935527462903195539071010308926572996330680614130118025143480301583440918563085577220473069147885479366991950063349497294934887471430157365886442218995078801104330406576113188919789951358418749074065249934309851727640706222168816837663934716996470936503785817063029631403614687203058761678674595513000685592015251487330706816498876720123698365503683721242203973040291828274387828851676223233338691841682984524407831495118821985931899834438886765051848249997408257132488161196119868549594026270654992917992969241373364609876752519584493731422658487226700053620051146204178906012164339261445061658559539651037076672497233973771281596860495898649571966920101429364552570482306893415355568727735156340148383577607895377973002898597278640564023379838242677551798376734636385632590597593607397489298426996483543310706506805025973742828068274905848141758340205634799960635546070592251665035050636203520119592635831284741587248574721799716313723716496024025105739195021859386883568810869417725184495920718249823393653762290499504557068426857735741102615260749694596773304057864638147846506872015574592898309525569070519290335417344681555545013144273116140083486323834894969617904756395230801508950457779987318738963441451241499990717816878219147026806475840013490053214439033102248736953531374366689964526115262295173492374754947962389058545375964420304334726088165982266859813478234123753615663431758329771964039832105393934240310939920463833797836721546653423422557551509169365234683353695574256240026005914589589920804966049219968611851977629699454956018622668500371957963150528591760321299089356400329166426673235747373691960741684163237873948539626135356571426790679855514268782162500293879711435505404906955134450536642879605613704244982154146152570311902016231395960495224009511815131818958680810844895652149394289124813598553372493571267970483224869725100119981830284396790048643103811392296756169203690380865296082960807939520789731642747678571585540424993526827445775452220777718586934092342335847401528725720286496113310045197860687745892434427612498886286809759088526112544900531088142134937318043131691917800914598938323083174137294996733177929836017483238288292362761071496259755166644383133312384813181488141332626615787120549811082169197844000384610436102554261539736318492838693854271836489167692072067340436852071884299407446039462925142173686183605941979283997826064519644748661205910235118667279573742923549534811942200790594570668612154467726751464348627710374476084065443472108145013234076263298027024562615305160554291214249283985270481006895843290297584342570755578079438233336315037657636498494725446421975927010368359256860234720396744552349497934661099652689870640050504006736198699846218281654485965132848230217478854272450354947551548118691158505847359824711518777049116392112235153719207675068000984162236580951782872271882008027989182813245540778258646199408541303170573637168493451880926375421275088625115316893495301932833254159045634000452747075570912418682716200589798199019172914718688588441682332109709977599632801936426234123300341155737760630111002843975384137271051204482831159206128648905441685121646617933624634015243696274809766491565046520345079236983362376244940610310298269540574203321197368718297461967812721676002901945843487987874024476217592444446121582611302017458719654984567937643285196583603712887260136813672584876812640886211327952161780797730113633376286748370719963602711114205592187707609569092560220754447088988545504550481588764264151056520379756988533258004593522822461538308563277971834387333211492298193644915989671782707951348063631572383874199224664318437210316806607323153479791845823941767040753280176894708215599178260424285133728146955676511258288565229158476925832027394355265397584891658094434912247965413320956991553837074855968801250642546675343098807486049025704425195566459201453579629425032889452901376264879412873025689372606522722261578362255789607070413613660206383456010461120394626968599049926132228876091700050075548061677135687245203452934227015767617443770927204841419878774592649042288397637549813051406576380908213348264503846737852798552784519519968524585274867772944649458802873551145775028321801376876861333795471268727010918558019176383029351338866277023272649377896162097030119308102098145554016065262593327198674045402802496428709610927271931043322307708250032031030590344579112148753737019386637389450558299535786651719195069461102915362785952261412912327379005589461770170026116902724340020904898718151062717834460949285027658150612229753928297146246565074484153915986061340449101222631810621810786705784604736418553110256959258408869829953233415834712768488664767518068780569290009091049253217326184274096775248010332443898786920770598256075788711205324671014065009687485760722280800100745986361200075889177193644258045881152204443358092879333471671662427727802903448131883336664085548614148813335698239749812402052247388767655223412422510275465871766630758156170805647887017567580485852058791302698023184623740481441999605513022168739126725828432388734983938910281236885987684520623436495481072315890370511395928168347857034380344636260958953670084807646097807088753066418474332277670622837301670803834713197943891531950194186386278549323754007754828520508805412103540130557596714668739564495867336618765259506723521199595860173518161989516967744509600605227883565933860847301695704922901886621548585037127037510365891080119480256539607071120139283765029301292441621388607154319859407859931913799329965546591619249823512121513904040020926815236696546393481187923183503253220739090075833036170316718201004523260555438781829643673086939275887707875273683553471666070895068282610414050523097160293345115652618292003745751212531031378588627239687251528391887671210692918958276279650892119472338887706109969937387587389948473274387977152670137875731656860728431133281367022876872587743057151894362190863722269539329705091109058963368469077064392173808057332101813801108603007596657526842116840160343290788024645436702486314258274458515310845198630488870600708327434458158657049844712447547770856023054357833319433219488210752612746050445010730623025663990854707919355240203024060255034999180084155381077183869625159179534626401911107089640285241445265427154374079094544455089924718542288337157583147976318158399106735060224975050123944490927590507583275417846927506052162971839251038569684615412376971626044278531873599363829195196392694091296360435654521223729499520226819118256766027306371240427723574067834647164151197455327734475436908627546342930247865928005525517850770950250975255343430092436900406943776745667517050596242667923651133276627542837437083730222699814559842650408071968090420793176068390908544081707199179000702604151436404174221165164659611223814677265994907847193955481719896369675396101779809221044546778031356949665061309216051136713281645614854545215899258890616508877261042261879089980957091745158231299583881913353647932276927361653603752474348019248557682201909845736822578075374264594914569389495121651324505784734659656682607561712075076856589464659352507289108347701269441473114043915587768437756294278641504013880024890261617735075205670303311506763247610723065088602584965536178527552909288344838585611736624659530166720088450640661816170585611625810516327467718381393318072145132759333315728048701511654911080312548350633522226255568627051068105971972689137050575598691064918847552764070113874689399620614279496156304770917286925044541631124419909912348483561592229420191513165954148486787987572409657221665241732678745838464881085769642114346322178873078004853340769676674486892750961766378200312131106265487706492014220815600129346789767250152869146376941605622634607665666963084814561619048476503059136618187950756377522345788505202519890253893007532084104058356119461283809032086412496215446176547213540707135956702718772252019263267912107305716850268372008285040695418173565851288219155341043197751568085479763452320267883324130943746119388239531952733438142820789441264974032646274813108491199333180845756055129966361188328982136954328473897761582217592848572487322790414730552552994507576318558034926812628191289661598685526402727028791256183851389331299753655119328659233235569033986367289782842081916264296299858919723582335690315177970624788602030883244787583269424841176687152633420557135529904913287350181334050244735948013648461355918561106856186869152202767404358897191287548812991182574365145723692597970181111974619747137652843402779751635683896900393045959194489950445166915023859364156900041201839518080840590582637412152028276225383594258742911006670493902433525235610339674171202684516846675102106057859617093067053590927610114309885124596622253403180846773714890869318927722934975535937230905857335880296240282441131889722055259715489282576236555453403622532815334174264586170134653892223414867250551383920373499816929982932431649420121694074555001286968557948168090189310297618525711685280728562677586727080335997017768323314097107988237277356584886734575982547426591363102192943505995721273242156376628828290905309231278111162612043749728007229163740919985860081989698784844330575964986610792637645698191255959948414086018857843702752855131626571470610899795581266703601421802373214877535977529072480390794510040449137518315922841298420353196838259744367698751841051251904370127745457400318132932737913734505952307211731648516271307789611617547156585114142940851864942580874552407512458356674044429367391608292083725220661214254365841102307616331804149376175679238809007150833223917924192625454793945696461089332400150656377635772742866502174729640900175144753503460196542979280982733145260442335324812928312836428404051352764175541993307431660342264303858532348825180994005476378451722987533292147357710238552883194645013116794884140651902698170581966728434448867932856496381472867184924189669573739351288211622629087357713094563529521507280276023239525154959404817965316141491127314071743662731390227501345624179316513047077546211785242969624526963086811405169930225867489158499071628397368869481196452553085573997773751477231453397564991498192316318815468670186817835795774764617551278001827501968302680027655535071453191799626831492851850822151867863448074892669089324831757466574798675292732736786419977103636353946575670066935497998863733371657844002627207007356487012047799782033822772400197381126322418986863362330730205675515204266237988786439269894334572368678269734699924889089136347936863016824766456830587019129311825595360542065742866359446025719231586184874191907768112821361281169409738917760621750041513380101599869322960372560895359102409023639005079965764591996535133949774423951983005681200913796104533629601114241967383477101249204294208970146222987679562767127809640341421499720453370810071833267674168890602838572176853330994281656008600084959187358210700486941386594041893354525824173708965466297901646269111413010956799637078702323285068304414571802584856241488651513951616934134087602897533017647780642753221713253723791872181229657226386737528990604995536570338785054197827200796146507797008147789177894302304194439580749004620529122047521468254782230291319139242032208676920609112128745850673032529824129885444206794914584503775672244151106480344420443549959969136476373224995083090497770895379742559915739733318442750429652971170228754602318646693040141949201871030641191966379155613829650571189766713774680043189383273016610456168053876175794443827702270419252055984048476086339117349843142230755657675709266372537471776948306751202143887825476068490358036382430927855594445575092628578226131820790105277202658128746857999626608283681094317155285014020258166526554165271205095802521842980637213137424455766219584498485049102750179486120586627534881397820774210102933088508612057971809094873725663056157462631005588118184770770655029897315175587000338202316494966715781340563019177392419516457258431725333992547178671950445617010301909686311729512991072331420541480439870495096752295462358805511936595340425486766954057035883920028952077694091441283751363157621253373288836227342615524273743268155862683432709001719101448536711464244615269284664797209475972355464169696578363083211507943628314658375260362774291811402212295151195475739966227728768752311016429350520980425704583252501239481914660721705249785401067547793278725598200897408304322663973558267653257422961006352204184316637497142439636263197868605328307201991046589492155428896152363646366962680981303035204360458747338100858255161497728173079986074631957734738610025098616765868685465338092529348216078114876630900065821414990424064544494847128792782602921699346618854643660231348754323931354335008631383777813898622185655886181696928881492481417503403705805702815533196249458767324877294679443947703152661822818655611440510333866266967542938292538727312533502237843863920721623200120507655852628638127650303638056693303069645734109975408893252727818102663959432536166984684308471079368843000247798653607518523185721488074028538129742961021633898274460355461422884702676515118869766312195192999061860565095109909152181059854766116064874772511959965583515681881980280649680734256185861992697962762138909107905180090789247927054608213270709998638225410298324240978516311243898391920914963777885040671468310142324433704175471496477619620943943577467765091090589259048823173221306119153800632446582921179827902108376380144226887569101146973759033674100539492453009386262041298063184206177461660108208776917761613156386481618168230927448490796985694649295095184825307014712905634084758385527594326012500781165700255058319303026862245603549853003158343963205124692135954204635905639990815453857805562536546772457866122136266446796956910210542029293190039896362528348834785205924836000319708455645641137696883388100824057778576374465243420404171958442573390517489835483657738978391250645106706431209807237507132486079291985973744746902086475833199371392649152154729857361335508979110980262951531165362934961569953937651561451910108260019432410496510766546096613001516822696765422776813532159355944726231257960840232340741032706406509444576925309561114842382771342668094944375135738949737615424703213713669006331962723898709496376504333641943549990503121737150967650757203525161567133437870523706628400547190566449510400863506720176726051673665123337964849541509559279449405347483009556412066022033693608723084434490879295180016155236571952736611487563191058486212041414842748631668546758408863764941546862162075585372427920137436383541475536243731888064108100986993863266154716563522365924924849704567557707983237843883045175927034572771764436446419605900157092902649039453397742239045807546591011058596354604616227985508009838903902495097571307409230959121447741395891951279609909750031685724720076464957007629594879273213807363556957852928724865156852613655715302686540202825842745713480755217119224376083971575898349520171816152395005215195399329368750925702881224656906641191063781853586988352783603387876506382947807017889563576144352367252085150427366709801531241596469148962445045144388818457672718884441111321802223463058719369827648557914777014174120985877454093294033145778514960364410975964341793245741574315976501968216166376588215934679764201209670898655007090825906417030754068630326623271206378673700915561013851000858971558034372488230821407935347922107466689082989909942285542416307281959778795411930791638883105105580722105987315290421598244717038469321444442204343679246008441549009560850174007156808725182021057397087639551930149300153486545756271255090427065560314931140581427226755542825365603484201605478029161822840492395177629619598549818569648562586024184591823952275175028666776745117752772233445005775181576135121800473963935237624574193516122384903242833507744920545801696884124341993768789075279064066876494237738997044364998617546369426976444409994463333478180870093712478983947591893737356300495306002081873838845807188401512163010199277144713697638471415758575375341365279609717297825193093567213489443904353791387516987732445386448433924625170539045508664860915776012667472066460258816186345466145787141366662083903105824452000784644874240026346762910935284350556750845946281243559298937973552072654532238920316583582683568080067090554266254467762149718372769335693863824981195495933969935875780361050740560633815875759338834546337730383813131337092187138587062274686819660113076388316728215752810674192288486110319510890556676420448232027046618384710363358605066988902491764855389356087917798451534657519836914093899022759625014151738157744954450197983373380702204383585647869978982139818913403384710790782358300306383656747720912417107288958150078102249539631597424882337371078289057100810151114948858254212353864732770334796870269923444505698848526357435255974244269129617457680498596439989125280587644646979948901932857791180389907449275481850893959152545830123940798625901469420463900109553930386432651628555668960840093908133323209287737003910731045748026628553250365603387288536551902898039252898053219596987388075954021188171498469997983111969592127188997076866506431632755381318816415175524139291483448431564924067394346902138600563547521940216199853284086899871047886349123374682271404795907520088677649804649666565083448022777658815557308387762555276571570295720195539717513376640454860150561616357126352855075612790052576446911386594233349576582514030084097081491767070355328125010040693786986353302567575931033784317361332035970096228954407549718639516422196473551595938416348632661180768527248659584730731601109074996366939072823013387578798909053196014779246338908868745958943569301159419577203953132715534174501478983430017094427216756952726919010860710022866115844195906447585007970808863560008192594376140145908386516358473602852872183497320327212696526847098127527523232469873996458797018821817089143535796442351096434293244591591541137561698795229909014784987648021704981285488554035364469760940672393952105918622334171981566885462827026907312477949138767740460873222716812106333991775518821887785141344955809014576264835166350150843454987261956660405210385307243656157403620597938497270418817730536408675712262660211190984173283997896270424302683084614106132088433736547768955203020719588506308958507247791071373003553871924288171140707942769348882114724854084402471609630080546310253154240213405466488552860391824700152799517316858777337614772368126436909771377009242148974975499586048377520888361683054323492713955814836599667295128295574599681747907604973419079644512481755272195817889305870941894226669646242746192728134764250414855302629480048516027204232978813314054904799253398009606526025297432153006008169105360962143189518298190605540842456199032788705743731764904520082304421013023556455683933194239806711759677580575552509561054976136909220702088497161616752081888977554459718613486965384543456891424969993003289882266460549300611390853127520397967255939039792847785833517337384485968258744538764677312379451514376730269680965332248913097110798486387142748286769137932377121875979150861965683444252979973735584280375419734229057053834214728021794715901086280026750358711657880114357547667250671453379742174932679641529640511962415366218709146628152694197665488280354740780740022046008501644180834542396565884335912658698701416708180280350223192173208928810176964847503018500781861292760173920661474892618620790167574584135381724996987855689267616228733108746283777355152084355366774598804900529797840459608139496432082808607152244875288322271913998584452516824030873036299346235144318433744377568928376553105028873128501332152520168123781952916020141485662258834998550169140835962371229538480106365786248014025965585792945823717233391653386837000008502205446144865437012339600266042009546258942955864379803580636129960124956140022533498866173712066755980812529127323874635193424655675371744471420262783303420274246780569112779022574310207486380336005218938071039233274211164024319978035684610107355976930527777227312348065125406716264261436906628625873758461460562841755208664220238749174583174646520625240673929667533409099917071014233035693814604097478013795176731249494098710667834392413059596352932246243152483431047163858036227464368328244446383087290146488117538805488883523109194589799667500414892087659958844199383443449691002812502889800150187776859112571346311550060725233509734364741659722750550267948071887828641179913721706531854699619780178503505923706814484183850745672400104165048915716880290808235554993023265551434620464841491918606130268090403531247207624794230224511818089695235488415736716391543672636164010593177546721171423305815847087569649146981416699850930499236218329147452233003586203996922451876650508193777135410800448649989880025753327603503730478755762483125233912663880061024576928226915954490209909775835454154037563224719407346124063393847407403867676865134821273709090508971461146463900037880542451119640104103844461486980653442826204301877022270372577429870626810915005997074089183876361006302902255096790563873982749694469188750908903396290951871551696875186895740557832753742217875112597820634024029310426633051288468098236816603666507746363745588609147454869755409307222961632379469846472821597116028929992591085537571072875115592168788177738881129950290595470617126849957241910527983752098750285528449633278220334765099841933536611641554439718231654956731203837936604545705161610681018638972554811811806048663698036465364412451861291294374483985319081431127102831392892499537149897462490374045392908827326294553591463521440629895526313688253737900045314056166749287181700947763574500045993117911412664164487845858605864953827743595748420968781794894713469809475322542811828069935548785673440906792103199114023197996066476286229676129078000670160379388096506916765423952014948165781498990253265367246150328957596832693970109520831563373228448765146845063932081555847339086670522630706450137253232439720484262128301686916872047876484319328837296473423865933093354881431901506643094666249214832941376997975706355545008083390348168535388128355969959150919733833445663107108796669599252833271423505511047533948972085367963434929005172437722194883600013296383840799434367371281569261848288935108168128249629414312202024054226169840108186800675209368718003019611954709326728642044802128020420789045811720878347467988465242331419500700356481135162052377471245795003492467644177890533323666196064323799894691711544648111449674267387136144749796752315450532072155277114517075770930509046102913634926654753137410967975521690046551543441666224823749105360172521593361316987165894180651780270681186166776908417396892410674153401314376177042019008924035014738352863859039900673091712049261829149389863325774506683733359593051052179226116808139440416546599525255067856871187975212204847522704740514734946508868535073247488724206010536462902430680000857888698615052003197333856331832436443587978128619339717895450142280170667785384337085592427578321790948229174903731241822358466871944696540218105511213366700032212452403644080123914908765436690678292851443834378871552004349504086667960921139862777924238809390930482109280256381842003583423327128710605286877164027787924300892527335084586237380228845153425700067053790735616313732609941370528874854607409200375093127182030600732521208209788414988572206044244528442906653337159005963019735263799038070264781660361095239097613055443530064604650233991008990433954462518566419186847459272458011572496807716368765227760462040022247633488088108319070843619011992089831196746320711752439791882223006547378111021402424647937036475961405402580156782738198825781003119627496458295297882389232532838175872178051750464344213814106825495122023967974676800380267044344516774168836763975387743323136253775059443675958013254752276966319567001607104207893122362744188147750972889341372321089308492058786025574041729321760939204142337280867294126367822479882607466048198630186596760312936901882283663400208138432668911672053861249929138601928195367133655102669251410943582235483852549212293197491326099877604043226883468010685781147289111821310400361379980044356580188666565660134804778922774952094260383509336763235680931488683213013753147008009312818783781888793788515540951882208196094280713043674943313184297201953336678755228606370192390999478499843009045459838413878098614085785916306672208599335037729854114022014531454507333312876952393911991023068708606493842646542800061890236550450122538389246966116167961611706288657516142646816572569550586491719485686302494898231599585041812635473135056706120386396315078933264134824507055832215047414308786837000918360578112102133250010163866626247951809053896339421553475221218662380437868203194155306574989132482335609624627763031640707120854994654746679364028776056767191839724190898336389169620431025654831439399396726707372078517004086246007152151546734773948085268104350824307106163789461106629964969542580517883750108839287808744390510351559190091142129134168374879335555887408374298845567202378054920486096151289938202704921032540491278048372271175688551311009871000099209672877071193626673441937743657884509616915923581704394434230407142781690649817526404710254519412360422308061165357805392441867627758161950250629616286647483208469756143260106143441159698418951369114081200712225090011061039216354917626922477895086945642077503893886859542866487736603158090997775573503125213208440711682781958606434223124810508770577618357208736829757721258376103560956060908777428901865003301982477397877244203458291696602176437201882239520921134937978511669970318978438595220493689214303755315755014220725561183079163500777348641965972092096621089446516861101323067124480958448834533698974539228695894758424076280407168188229521911055929586755133707527937303081730366537095207876213737835054086046313313478022944467763119433109876426591574867793814817046599771789379025111104655586087298366767788298265373595008707772068923733569732974232155351737943382593422037547949766121211259952228252397630920178587332404188708007355319414980342264679324088869776849857388934264141388854771358292317812735952846428475601252234340057936969362181835734550670731710652415400743616468941006035169834164376650209836095321415871956208491910809035547741154687206130433537257663651306213461616652271095970393600186999349078072475815930069018354838043796909701563691042350221675807264804631672048556398835135984388374951932208098378235938149731405187320830972633154123358665763017524996775977147694172250894413521822145636624647982433777338852315569322112874973210180087399239064904559950313347643213628772268504567829600768218634658884675433850204982960418123105768164394469414031141557285923102081205046701878648437675474271950354118759882972040244023998991092492820932111472171840415274830969526789071310360444050115849126148758237575744862737262451476312416752975453064731034415100476011214417506773962025822126124286411368465261269865968889237901535955185962158380545030844666905241564502344994428246292674807247025826793307255181276961318963866759788675376844406160030764858607454982354588974375295098490581130892903810213398888834058990120461019459750562506688998676712857741029212992899018338732943846482126562443183388612017356880269208808614564459417609901755743436933171881829307202885995743857961726595526975315166848070957148590520287120382722337657156708131107370993214598254714936246553901787585785808556320223523807999462481016384573049558983383293828589405618932522914476504438968206338535641647176770090292607015951802936903002471699954679399023558805185056763585423340862035413727564980609530949420299139325498020822782522065423604055567578668906037790576207260668532963344062549244653003706545706261312012082503059152726411793152681298535138253958339580502500331429466082766908169357818785299864501532590181214375781555203615988881009365450388470180858946864535172410206388893424867632717807153601067596426554702036790627172213838212933445222257135843838129693028362418246469615981590744549966599646460742535424780898523209603449734928280836381876521459750189103965183495231186106428954411269098812877285444094554783202501205967881805169615136566325288390978184604075669776166429760048033428125134394709192277040562622119987947049385016560325096543958732629291951843596471731849545926959300280484447244793849988468900206954583860162151842644339319055966486956192748416142295200798409491834920427877242886455793055454341549056325830039232403812662968719305910103184719188331132231517876421791927529654406413275706405944039268874828502825780397928256829771762782594356023428062164516628509635381513294953689394512246170835005430611631451411296119734542508315319776290109447744595387687951431727786468562465982956380019515911785490664884875093480927090663856089705938484657368882324898083928724479877774837542243148510615281527678039508378581081028866580432010491450485810212017589611144058764914677094926610771061112189465531586531451346330661307886144523469636225349401386795597630036940844347004949123687826343434730611350746005878635283270321250317037101686580776086917270359976895598410797609160143345736903081564706990781248409568331810118391890488241908506764911459055991653482660468999024021259793193830369660095605859174240231263069448290678983186443393900608276732355937707088150440818369922197883737829313063868176813481324611226795121168421919294507080906776331471433454867461332821095801931747541515085118368734295822078457629325834051703236674794405963735553655522473076315858949761226241323764148288362230753773402002770114937173851277956847932244407869077775642321762419105574634678719415214705836556178824369444887162835071259710727741609267795244755577036574856373847033259509136394804258524354923193293393466452926594774665209241592101321775563246092868992980419386018254153599848511063980858189211288983169745275195663906862618289535652010013345037624710307705147067854088810568262444426314494705128458710847276945302127444385507741019707881893833613438702289189269734327212948287642868161313651651471138014747236158591449527652031133772559854844126911053785348331598358340507127538559810139613860263649326314301045403815273107082207696082441697367917899923815473015730105207186300923600719798938536683017012416481187669621498255688904000463999085992090155647265867013994924522247297595150015466582829451223819810707040848374199907762318878575857927132654707080217807189111389938153671175814370738098448709624393440676288637226184972606975740582152969583697503317593694880468414088005927691952700174009179568087448337413153915726063904164602106000460780117921197746244606712206209439408995055750234062459445207796359827135151179770709108917362790848815385591482915793060927348593381115988321800297545998770637179578719793299334006056857272932912132101498947960671138485623794088885335550187714098044046900550912995956210321784958971026249461028130444932994119840516244864517168917162541032074772276692539222509744330487608206140565958376394120525262519876629909113789242896397144819651831237049790581772665479457145093688966617577907119839759224393242616148675109919017576228797542002262922540493908430538217543798397991538545147711534873363246285019247451634843016774752147479696415294167635669914182623842068838109311745652110033771929540400634207305782121824034998980404056004206010162469187695081021984330082852085085119169841423681099946917085115631520327559529308550727728580250897862491880411373462827966648886025152738467030847642210194455067901592801678910772668226793548647938998151507850111925850895440079389798863140263770769537731044911203836241172954724584420319871891419632417184309421876196213704414628432869860702012229294264844914299143407554808659725492873297841584239164307358606261791093151935737429866066135155233996119465828567407479920190723092041275300179904052418962267024531998886682004358909629160793506683366240563766019556198895983152258498153720474587704651017023345419308898520893852035096598146155009198891428808593376197468116852539014401532929154928529272334443393682175496691497965019771288304283459063455836637026277910858940365707597319919294469854628691582174633912833567377348811500467381301852738041249529418264439876137806301403155799684665818958853807402935687780345319475782131253620161822692380082431592731307047640161500307659541733661169025487968915356117059682397940242118346594878227990419015817598320404111895713566530579991629434905498377150688683144485946322762002758896732762585913101939066783035888352999475700864099264964877223690422629551828879927035185288348046242039597719706374874708616547264303402129312977827886046553429911132952410900243912689860435697513814655110262915205326142846305630720158332524232541392569814069482390541132126484965500030122543962752265413237595417269434714049709074866269895431775022254951789381393178523952853248059626706042718427403321545801405721812973109861431980502875420323060789268838201499089691785616895502967163969416782622061247493621738330032350740369004728547493852971210749203497155373274521510806657642040182354969521014869423854941415753444414897659922270489486275576070333470764659455532065411229842759040521104382947396377967955875249887175712027095891557071833638593391886620552739586518706145461333027891911551415479457517886546105610332904260430136349991437741341495129093335617087134448921479687714368631681332454806824149954318123982031798950680140081496671889368427610084135778030516573174534763078267974568053685125386053861391634808139743445495342314494577065364407238675928878778480131281249189551549520618520440561746227985612679661526627205093010585705418102393577744858765104694886758105952057007554443542141312782378040672026382694892490596814845603353220713639088810715075928247519166631911663025510273272272117868419029036382877806490320302849036271978364552858519953087348384924223391245044166235691337347023991822678365386086738888391701439818082617568952151429302766335941090404261992873608426630460410230358173923531873983068093970528527033686176656987669909696216817283124286253453517102000794943904894541415037773163286621674839987054743984244805650482451487367478259063301233185033055885272933153471497183157655305000986152293232260648694923234187542087275127024820381710802694950369222995253804671309169501819382857429300084112402355816303643505539937631394386091449437249067015117853110241561068865262537665608849620460636693130869282267932781567293034618822274069353381277223736109481729438690955639054836115851278059146788376410771560120151396927616039920225285322414130839987843666092642679807249655927556967399719961779165882746722508475481065661570077129965690440225347177475706461378678395891086574457538396129082342483493123376949993257268346343505791829123246898393243731130965501013857999521369120107860312583545273473628840352060251214791742099101899055467216173828676075509164179768655624807242564813395542991671408231025358904827162689140202790861581338063828528433840277963581663733839098827037610343908931396384499797663792335978822333498855296538652889349155826766193070403214520876521770869828876871058248124615960976710220404268666132377712955697805969055065318443331120650623951943796604706809260528131931259011981409304088725006889742871896818856773010068441206023282440559338442636540186164722554216048443585042056512435249580860200524592608413290933933783621538361896558575013782186522186396909789250177860542355514369838292949734215548292575583981258954568739835119724344678899578458684990540764203555056809771812609871167025934861072475298436300555575786345703350420562334900463342794733205348867547732877311540360188771573536296433548567244832684998685570658955448764744584411953410805354654725236533711031879986564157154953362443347969538477142432729545200654077671073788195630868839633900775524435606356664631182241479621372598904361373473876983899521619192996851934545009543702338575121326112549124200819705046644963395390725573163270067490024698295567644729897069191998741682358137961437372631360414930446567106557497789604497433583923514505436732588900540396314213344664220167121361216517112847974463357064995362237024510613878935572771972508624208556352660369417216710497817924807609727885951614063395902566983680886451856870766219462066742185071084243992429536371946358336336957559110097084676312638382223288496813781246428121072942612719963621252738653182977947516120611578351722084027301903900965948110756639276744627120335286729550342738070293572391216572796267964803309122945237679592783061318956943853661135098375122709140955424988767673445014600225647856373418632926537667485804770288855941952869904642484269726185848515781294928366992362224393313141534541471905186390500656790067388988715061473564789888753167253181879993703964405586479480009001592857962953817398689742261343478923273040197756454269954338873376233267083074087863158022441525959506446992416081569745561771297229409734009745732510205862660099104190504622364030879235666274915390290501386037215858004744123763186628492214867593331908635406101171530727480546174266262129358008093495189432149967412634697559530862784502808464124335857000137312401010861363206776553463137372797973917153832752112544566877631556600056672872001520694305088102171371046515947331495026995837222552105559991349821587551045417583152981949718479243990291843685216305444633777899124988250330239445320510113634291864128307930890833711963964208732319003707885002325963713609032614306851890665246969399617813787938970021499182055637460327623814328695216353837241624195487574695045600280538139478980524442205891687696644585718477241384058787983897628225771244491228112104301523783314977556036859387185861550959604437459523528520854905995854927369530620482353681169797633472271587139524948746428817346702813704597000283423978978386648923991794025647211194065592550759966626248115233097573703811846312050247322165910610019382658424923775158340298680697296443839026247458388909687687705057176438634354366085402214268343772249705300809697937027149135088486865483572036510576039762803340107149072021968993188502625258353062324027236480085344824487941355695911148312068270347028016338764817295134166096990613202573985867316420071360430951903446986507548678706798150556601295045377820652025048104028669256979365450796978799931620645845598430548954612395164759160320201530040446398637309822700494872119037237837642650750583081720220066467713689643187290609381562979035357426833789721823624412134083829602071074459133964295240367062577480180953666381324797588197071632172986928030592136666769058525849341128659745887689392981457459455813938508417557474924545220362102784014940732969085746186573305625317337796694823438314076325225912659524587633479207698808866017865356256815336311630782244748335629532625958605511020934964764106401313010100631616961212355422106301511033898945199375133607240035761170662901675045788722832525082050339633878300946497749652657668283444772939138166251686521085777733357515884552353725818295972523827172283330133536620741058416883381223636619612915443889063888770414645771440542651942553330779879367425305367408032872567925075644954805980940701940971876072532035217059253690735147787642582872614037653223304061662918153910724663758654396123346316687103374243453787891176827546986994012308974978302876116664905157240923117389893119367808027506040590639858718937542078387624855779493216335087628058892095583491304311965239644191372857515042954020342973185132434680646835183106327594538246363618408626602390876821673718921857048990119040369759076724677136162194538552232936209876600899682060628316800452805437374097924585442708593186881994590492136089233180151778314465894215716139885192275833026200642931142682666822131577162067164514369382205705687234882035136491284635237599350777018794247717506153627953891825367098305536693054208856797723660102766576949356060956475426769599562674975795405896524218643461258507053157793742312952267069407629100588385189879098671273674796776139295684278474027962949812892188157711670194295137545169712198629942353110469116239889921566443184687223416962382424944203882049525557310056489871172731608388830772088527109466109843105699178746471345833403913378201401453272261215615199717017497977665852173532807377036828195854825528926634264846339984150582445209012652971709154279343535700028339825817753196797069153149624251175620991842497246643794170382587435248634468453400290829651037998790564310977032142100998720853531515665747665034807263792263004051736559201074927981709596032338515071518726520828996299137421290054223254564549057608157025449594950721723428894762889622505668816741306556942953383203717977781547138032698662364216472060125485740187930509514178990761993794892770788128889007061655431032854005207107909549255944440484148259794638219703963595617086579676753037280544386922851937562263281946492998325455355100373203791456429873380277538784200289025920072962510514919247160337683875143033161863378492670777444831031183736130749653400149177196692078712635186450449437028785326140872770694564946222865153025757423271583793164215103272413368335284879687348771653338228485264523819263479663750138497108897998075501860928641534849027623958046447510872877154836623912487662143651479974485382984625553368968902958773474550514247412062701066319640112605661769959499314532414357577463854756841921747214652626057337295469600929964955356425536267173687158202735862229445669261673014574542826445753406760964503846276551461679254271871237088298353908559954282699524999716801459325809249095421385881809164272355034417800160390805717036091590985282283053825947558976203852912986689854428860947883904979582169394173967328411147680111847678047905538281741571604580570616819989972124302868758350247820903964936684890733199299495727047611505144895548413263988205816838399794575597170543613619683984422761117912841460902545476000951456103887247830197077217549998623314956906811569128603255441746419924594424180958081611786742617409828970166147739526940752411608333415158899115280467607221124797549342349577010110081230699376134097416203908311981339750133394791916486309570540648005072940553901179593192898649330222440212132715203653914375659631779186397483072441473581831055202319373309443958204976880189297231840190067509988857380569077788586766437959815792283938731932576616190869025364581156952053730395766139781470750591000327245703338153500802395358960612159086611931799156150743129172836807764685596381703130402981437363440700682543222305777936087186692936285778313399235935729489086018474732859575291578599743022900232918731223618075262617935370028217030036726198232467627626729003634891054598846969102758341080513345347288641208141119082936612975322941455571797510170734590526809081761780903870245051186886299067099844994263519609470289600081103397276417482314770929727610513709817327012955273650633954466105217724655126421241325977711845675503213549229480940236850804150948715905746193878771142696352473320042078633475560424000773795743585643923145622372631741832146011735791834175088184469437503112191654653845472297139353456333457838417017841451739771921570492350817018935171010009386367919140323310466045356580034662227243082228988822229671712244783096884412548658031394172562266515316415153675807538770025556315464382223472276217565777603733214635556891113414239018895089086251810310390388722125922511010447879890668786766421006085492105861264312928556014046072077440773691391472748431738012755189531669595941321149348099106354351044177003564664260564269252173688587909642678382313387376188199255794722081331720150474799374957095304191735579363885015412888939933908148733631781481510639165902015701753555676209240016931704627649593763696152399457524289552721576039489701170583138580311877958153535510066283157463037855573419885382173307360827018879808264725656255637529460923158497975303189953974869012865157717575161979696451329143280379218340170930370042106747746288561656425314209063491053283294224449878093519211839358225454652832057773927948244172241340833461243035857595609885979036663605407637414164826824017986580478664780921771488932809736863541114672295995924901557242076064142401306136650312834673745980932855952400875194519067583372106803992711321392487312119993522101945406743603853553929106485038130762215261352212430676947048635539840865240669578232509561079493893769149129383776616464141573246659217595765367789763727274244576887726475705262937293272050347902106165132427727405108824947741343829670376305762533510488574318948038051156382273548186410775836627157656282423012642299906475720642638693242835257898813906835070852740903847067007742653020215782226840461964472490909860565764091735942913635661665291389691238422118294746003512357167037750115256309899243475528671932832999325730405697122693415938953434605666822051920182753055769802372335653560039669147192558213438561324109150023025578268088772236482095378886728706251243811597582985771479521964730317699774445477373710258860133810138228065132214260295069000092645193975860646111427177505644517765970045435092116840797656389633516095607018523075380649903292356325611052213437856394336383917449026557343916946787674471909796296334224793992799220886858543317209992439946155260618370453375968453676476171546569098700796523264785058755752769668484139590333696351104859982082301739866305302817007470344278219114014891369312136563152266035799913438697499616275857323637801108653811006013134276808194790521523555031127313087998975717268197642564854030871747201597098936572177649159901604152330583943792592177435054581552715700562321681957163330905845921310861360107510710587689172937639201282493000589213413715543902502658650837004887297817202629427188723334380484824482820689650569334173364941526576283915759908646650901031141639873472321434999996020724673802265984447740854501121097608285663265946940318777680652998143862953623494353059213295275180309877999199413417551040400006010759405951571742436312988318910095615891662411661179184680700485690414176726177128131109585479076641531177835772746298958048670948035406311699803287983625705882889498713776053108193428634325653540402696729215197153934496439776597079505510359195968647679835907475135808965454178967452409716238708003376439068257902145640264295546594686231905545567534792310887541136911966994537662143442559885384246131824616183946871685640198997216739181305762996822946031563263129540830431042369673299849810386217644829402788954250241341977920188624096924347404818303424619442928641617732037834270160387899724634842159372479813811268163922362191482960071147601950247211121830543305545993743773815838938750656934548123673769548786256294739987101447178798719159154493245499034413176885775354562570616343853537750345019141363905369039871782750108009228010555652580195037164104323854702005123630222774440763143256532723340977894898161604621441041885449053407288684634354927624042755713939872592090849643094890571035876233878463193963152834471150704168562497505749304415686461437936014521253184788807906900917616753010931886153092856194292759677462533495509307631378742040676856092260718488820914367295471436961819281589951468741782969068993139782894186609394894911236690472047192312941640796516636769118182839451120896899900049193935099600767746741045628627091525292062496534789801096135294597173077964708095488143591504723321969037473790028196064871489118785512138761971575517515129330456322309811060256985024606807418256089444272593109931657196431724944110994763657945158122793752994738768972054385815601752441454731924585294204911752818319318716823900330524782527605275650496440977063441114430701327235057561474869394205541105149646795617190544934592981906512217087623417968112557357424447946131121616614929652864858254577359338901953077087051826491963687333973058903521749242829489429487642295920455205436053314211132777577211543440810946849580145701535967877296083758310758294537030324644610527311279242348208649108132481207123644958808038406954599998089153597105011660571365143344828414964940562747148109944101050307992560252301116513542826580409420011215510060550720508672576700138726079777063132841113579909945895417300963001152350350474853677631384821282957635661415627540494544465034448848266332375136780184029786186939194314393488525920249631428634444018500862705504598822675504813853088026163189572472785340659059668257630790026549730187186543341161213718269812879123321958674812128203012857153354268607768130911834742079858330015990410359417562723725358482058093095602206709259619435592107124757931714702284257859283587847980115074011642787130427724363351833777811022103207084432107109842793432753193921832817862235702968467900457317147465722014715685623780245509478834788159816606605079325820228144642740727333086368565866342746537297321703558760157159479381287131613373933644917597125487040112879417462616137082963729273687235079992482378079775586689638236180646414550439896734268123994409021027171857750009036843740701214873010205948076489575011911889047033680487462593971346904367836277698808281925310525223169584194226537987528758420618837569191024202788017628502901172277352524713907337103327831944992740212931012070013751655997326046364553521528771885574437572287626739198577736009670020375939890024591450570872028215185185688446030927194609221402241129968573437162238579671834284607434526839430272620454998005844358974790935437819286602818453522088724919352818984941276448766302461125292743233257838765632531650477053098265076778723666223510189311087929037161855927422214941954257978880138238081056399767071233169512554217964249301920739101575691358253212006097262751066447724311060651949890241998854587008922954965839580742482436695840489566288815803216238477996027914238089216817908479990783076294148941550310441273119365672152747063990704573303218052058231951590643346839664815036947283382995206432563828205294436380376943256156473574201711036610393081079044162669342447273163339749050737690610544311066393171678495574336905811481298679327265770384181258797421564384519181764092067709997022497385984894788354310764028582776460020910147688726994160668631030834378497134787675911964303027950626506075498744003232848848220362245032874894246313609704286171916048690514363210582960078661239765472272636599602983555375829630950254251043809050656123559648883533322740148588315195849082140014972519810710758763125019359442688541225833663415868850146654182962664481159625333556040881308699146358501281187728691879961816159209746287085940982146273313055452877011210068269566082020171557552330810599846052338969113454100099382102757740008328786090356265648226670669826735804404317511133762367700961334112961969590748786185075482149650467059442194471820277158959119427475645894887659039591979860199298404560120462592896937946857929673035585508628637756968536626356749689740045804182624829488009470933299487755723743087710881894788693750395834032365178230793665008149845977120177169982828925219563694888189093189184879893030941973189164443741259457727328323236509709148155721759373413774930428431632537935877523413660341729302556241709871852780473501821514258249265507233638174792783696308114555409798404770111369619940761327929127544235578565305289216896211392870852535741573581551331558706431040640803077743702616814530676737319036677978587820545744059381897653035541076770837829416428143396430127964279064980645460490740415413179161226616740111578971717080163420353932457992122002173949659691218030097801379207623065659264065501233922506826218779937115219159530007971378430878683584440427046299279841490480473510894446753100488311619677604264619994072231639752765799228638955587061839683861360678328289864944895943614259649087600721462448385784815656847759094894174308814577035648134579691553582752665667536854408983414541147555598225514230055120667299109267870576008853682061887486803965453308136060963532575346506292600830019154056323188490883664104734586527945584253084617883749152736652966460524075016270021572732947472869038431013463274597997824445428153045146532092941477667207729374485523359273515114445603353774975088758054114321343499338024875238525454433198453955608567122380614050908361339075977082742934323386384066298203118809324591948693395243462599239648763649401457700034605590877411838777195442087238792292494956009776491949866798883730415688924106126942214249315457643419704197235954357278471479704941116988191019429525697072272860392772410746919903348428709157957650469328480731856839896907615330101874683045292205075242598839173940736957730185143966417274306533042220552628121539227010591929806168105691684959785614546695086392090219737742385978349830950732052055555195396222895096364065791021968547964415737179541841458382415525484102830202999705430265107360278417538909215919453761522879538498377077476255266872882794258583683612781356204277300391270390929432209871572025744835969416963998266571838700956324539811199123128575602656077782628261154909921418550974242869742864131069871011583476095710791423262956341871833760085568578048661298202074489607135066002981279536491562661675734604689803921304771350718056975015576581536542995149590500887408821483356761064762305192738512312014904822596791453550048137595143935892979203039493478494471278632408263251433342323435843573599990733903396097945827331839885604112754574850527178959013175008962587057509091874284374075173556392535465469021883375398197503663280382475551426244933901405346508239680657322358313195218908892667414208738262605206699287717042822985308406611576897453936297016321108169668811581650724959958228108524549439122324503181710876190822400217979270095900547145993274213659569494505413497844104905035164542076937936118785034448597198832065419360754595479786962102576779035339588553895248852965958092255029828471909778966916597047346186636731565180429485717844538808004828179850476141125509330091351695911658885824307189594025295950935794255343525166786614539267751798774822461768838884871474937944926257150222368995363493392113496647546810161684878036175153477509728632330785112087569120001731133792451218816056731659886738365577421302908650794496152782270296913183928613002840878419656436386458830787735471345567263517069021535433279310395235643355801419244918057755573066987648583126281864124725206337117774135615644495374954483483669478650665422173848620313885416266675914040883604810273744803947904672816172306331327071401945092661638794555850561982450757638189207279710678880451012737911991778216699922104245918891028179326242589446935395725513620809046993605219648080009057653457409789115440664595384111491126187438405035087659797773098254857211371970908708067865586983858166413405796258182331759688357097217974533716379989044273243432581843822509937669738944493599609331194297172388461073155885309616174418385179383403836322595219429012487841862719781600499115082507867972362306948343706577937533849281855264021569145456127772352345081812761792744979128125717943455103863167788624628812409407451056922197273856905408125420379797175522157017083474586637120387333585393104375077422190809203762219318105664548864749104062512894405620890314172473981724885523429153464191166095067340044002737559201182036681404918610469028155622974308987465255335066132229667322622469976654258911835359971850878343966882280113600254878722407208839088205566026195620170059396280739711641948268237178091873841037164485276905430005822853367979994273928345593810012206923229543432861948724820156465262447123921406939764716936249810877703068189295077509301816239644160125155802921426136394911321051156510938778769586589154289557400622002369247822600033858140317231670525689689048299033442678692443557999162502582539130447961257772948263177692360801962064841735868346024905505460530968915075409251114706139550946740156485242805953969721015759331830770196008777477644465229641502133934192555898527112181625776561550332549315234802123442024366612073282137273251807302701775211314285872038835368172153256161864341839629847886178028517163522173168877102016044471549579533748681845414731343894006301787168283442424825588301385266908528662706052294422880031828979421402752967193399699947581760216571418701576236634849319462200696515111912130638703786101940037928310912969897514628307970077791759253175054770644336957180491993842797748679973264515582156975162024408452867888205028407964785050700196619614332310747559848897629494449274106418766217284500008293743891047685446977724880638237013937873763169612125326355409398501533938165704217211335677768590708470859459637711512810811728406905525707399760921657670613748065892415297955071532628728953981278667424341734314191299902605376806588093584494441697755714913096545624156658345387693452391535263437464288853935344840017938027310979627594549675031781641950187009724304856455330686465557692638074473131133402942202003475837198588121043837585050312212579511272128488850790132179698216459997333549880150280145100183286793571494754459766664212689991301359431488612061160347258643944210016130867127797171359359015753943230028079752229054651425198345395748859199376394285515266111418485933319340606741478312502566229457382673976570805930097968921713499624607663585207262221929069539229200507197872935440386561718226558882301955048173713994882123162898219366132615105543252014639262608094446500720867658911021681252129712727717993730079744343889039451965861306837251444382991395264263681174379876291507683997607192133027504437230971742229334455963422968690040168087370413304295732886519214608334148593058226977487975367432093050666545149441421816378417427766555917286460533591330514569279118137862536009671978883789279024359698041033959291675714008669339330782189977919339025683937698182719141188587189437667760008022070840152105943579152541294798545217053944149098555276353935055782555115135091280029165803963331442354648863538810542546007687122320218715625557240022335943923881056878954943966903356946636328277647003534264440605481315575872279498163416962068820658868481230715003801481876112788585565977602157654997358627061218481474144615188852637132044557975115826080155086281794489611821757339335395669895793816908596575019799471825590539720175150939712817728090449094597873735274370889932092509592521943354871157769480165974911225794594722179759719139650231982401905811187569104983916148649001807396073422531235948688755765287489873948490408826779693591746841070564642864281847778024889654831981821393966680531096516034028237695802782088802338135411654966095881544678553712517068745283273086225213946441521351360390731315013666859363770360100345283945873069496324327008090161740867072826326031662318230666131628138504597588889456181378430267959262404921916965947318791247445445087524821172471154836676520431768499832392041873846431593966150767634419328804372916983743129158959851301431137573859683174092409722588835072067668986104814887694978554214110750004102237881749755104628516282157899952512360315233405573226582212389710720982527140233431293547726860817093685650774129547944781842238067948021962622094589842233144521880759360482114634048842327742390105314368677972341776961201511219323270575931635931091167880145009870564423120804337076266800544390467154859359983029348748295356392965070761270169742777458006966010023627759997703037329356086500506694892884534407165059771446539731171409481412244947383169138590806403915793200512573871674745734554445939162251847119526690203923343190909401374883609650065251055130622467600334217589949542259980171962128172133489487590713568094723581828339798385388462952275576663731737557146172183377841044584907610208075177808030405151366730304309199778965060709888188322257958555950842892561025486922238643164508753506423025576676393788742343120513530986504612575694935395725917215709845883686289527321978506216043118554440229697822395232331043363228747312211899767255430683142734975239986674244675596642169147585790037585034217165421410762875179396847155974986553256007062178035834924637196301555219133082959631968937510718109714349187658961285956339120910401058480351605823962742542542004177035384105593951930632499680299693128564371481363430342665664673946289376446163935563545049490668477103001068612896302428387728459882110081080853303071392330862554945052238277177587036888916235610317382353996895108068725956998670469916995143654935855816496018136870660965612500709545510921600528032579740729210294625312223137314136248024567291501128037330104789657436523856462798541895694210024135184240143062474254713569202635377689411273135116930130432271756447965597955375241464155055859821068393422530201883448226704237073332140178782475305442033195433951613037077549310439927176182708360500541168906070491986025006193876139588358126510206054851135898853452513166189086673514375284518504354628681166209748972758194760978816772512996726483353527166003590722713107800325829756411637283849874820159893903385095366191511855443294199636585857056392100998072272929391487154134918895219851755693779658957715820877248759009073812543791239604838878350053929544898663173958282207622439252855933819464012108738947503893308546008029024177968654407636017109686554113131353867748289289696741355591315298065758713925520575013916056130510439535593038534408393098934615166087455339796855208006839528181361889145195588842616103515849979937582190903710811060433445651839469110389215558895243459582109193166696304596837417639174900663662730200410685291300685764677617138204633715435443033843634893351806095316418278591478226884182648844066077816384680792024326700719628964809302229110983800959861519780995812675375291058781926863453868150843836963601772590897696494802989080452518293430005406868833199112941885578542299356529765248619630721623015541862186223633127178045918940198648737990221387281266427066648738664905870198038825964260701452741297872291614236294262253690731739137555183000020042823214423264486627544111904502938652029282893263101339230594026176367521917564362250668521182229462579266879016763005942216096122315041420596498771524825930876683683113705083984456070627540786985242738859023493063588422719847278058731383238013819442750374241487534091884092666000429807875480432737897161743296719865905885954221233475607225691799134365693625265903335810898120802546012175970656356212215250632147426680474483705135854995686012831939150900474888408369465898524460231817016190468375669174582168443040769842592876302437824557092231935724208450394224493910008457775018270446688439836476180099106441520587116128104826037199383946700276216823313329455299081389389079800489344703980766577384662564370432480042328595998954917265467781745308493593277356467073191210504084231647407448840568562005257436505393601123051028127626183000116578895535296829792961298662846841763030995048817845702653411045776268120769056605360558097127345135816257194867393905662225079768251198539540502010484360855143627829244078547564325931301133514879997160028078214198320981742491545198990676852546468527788170010979195609933485232159675767054799587687941403722853008790019028325570631526747773898268039370902385598072573711073389691732284424457996542480242519102309861249832715592377441090548397634842553724905151612835294695435765143663603235081028925378545841508806083328349949014461760877114574281370686866068837959938228651988207524621810518519064282555050599972467581914362742616963146057936363757432419179845416414216853324225182371060226903409387547745584097651909539897173326322697405665841565645045210109098238049057180822893510791135975774919935354987662050990098251469785722145741870128023375868422172359044279305773643478770740484151122450312884940585134519681605915295408351491825175920936289873987766709906630262503359195638323415808414164025286764909988782078237558733315934425210950991080397303136914646908481353455967522523614933580873432826310867639777499096612073063973587444798468439046446102020710822250514996107752993614042966557193575453956871969891857216778649070952229179464845215136079839638929021698356434639186861432086849471317068049990459784527900266101843793098978604153367440137760645069495736427234439883328171015263232847298527181019348424410372793469176062695071390573322620932783439075755115187455656505569183500494375530846889623690623573992704487865850242554747629472435144465764749445615319653401045948785778972454014564342987193915786563751425605325563374634098963762685042909711038490105964874480182884844178237511314106991200487904326316142518321054181250491952687830879514706741391015811421140542389520965691764504630307400483395657356715781354470879480530173616339969458772107109744045211245733776579027110595720737421553766669735218524753864935913352857536062458615608100449751602457342580551328859622287872346211578920459432734569060879677787687757411219969901875391770414422668529845394075367794464024471630284123945146613596708391189893063694627241656202997863997186876537705581342084270466993527929612075262509415768002545866079012980130593413793729871009394550842128192928390508270860414673073053399405343666100438837227739919070631008746462108311682105373396129427461555041706951359819290803792443981493615235127642521947731466725317445395577987175996673223231863900306569814866667832168123071744397568059466340236470760827427915415913542291253695536368006755494625182442892667681528924845001867219044197206464143621397371721691856627264328574773628390428501946650098263594027432064181846709136440733339381651949450659731386176061374012884285971716536233965034551714005466746934196961580073281138509873881820317383354359770215714291110510617293722029480605452416022093982977558725365289216143707766443578149070128131839290878795325110847505071187940554140818877647861558354501767702429447844214867800673069701376910774685388240602702273267149616068573629591295991610866896818582520539214171937189206859271749413025007050548332144431620017722225700081180606169793310663162806193434660980235957375630719019215894186705535527711008939688304033299673299782678902686677413370049951573575975315975711927841928203879339862647852176722178399784650312320627145289403577101214784533785414301729644727739777083864196102691350341236501092026295306461523452641338000817177027108951473565908954255993467841566084192018264228857751690462890177749689619762869411334666215227193677930038052948796216263359131354590211939316175430479711547480329853936044298205416162809642238037860803941534507325704920589466980877171335884467038871448109269380514921753781728433520606182853816243831918074380527027286886306309725712208539755349702014967529112287770550699527761360227268658216197524340623377624522573642625971588150184287436764482949485189401829484937355311740783962321907023681949761534803759109423907610768124099227397846991086836513884047858107576530981737824489176610431526525589661270400504677140364938872199716511508482414096790835422427376613365812790418053817477622008405403011242522840581552159774961245163932464067893561590728542172526420435101308029472877676408748402502980879203437557960558347088920635508010270159813598792906082423952234709220796574190507393870480187735124109038194615089199592494205331819509764376245153923932607776094905492575757099103953948919644758761139692554710428134101079788047820027878397832108885802967228257076697085167225856429671055471368015396627911711020555666337044574914768867027551050818334336330710035585110749284857443482339216062769598362695632526509706823545470784538546430561215597397087776315812901970621751629143506144024855755467092164907483411068994216281512835848102728976090869296424478948105268200460909526683656492048964178714725984018934160739108347296743174284067384714948125382822284569153297614812458817289502836205176898172068304214445895896899607813867055500237064076704901226337001432012012030287372158955506283019664564618761156020569562496562282228430497534909098881328600308031625290698455280976343417581784958972957726090947468293394768356558775580490672407108637224525279233326958601822113025820223845311621973772012999863151248742307741228341033654265276648260169830198171678159357755433467731637847150287320660187703638217855844351373352019342642919159056223984689836389761313160902491988302538670155872845291417642453497483991864866037168275770407327974536079225202682136256202500194896415370327393313392978783808552092936998227829952443426651905777142923112471194144189244605366034588777114820157128367906803512657249970826277052523974361448395928129501555625255255879281076624989380855411213037620422416507746002375265881558887850091371327235906545871632345133303085098282067550096396583049679648733288694518835670714282606346828553114321893631193835928011960481558608065559877629967077229734830486326338604397989182133920248015215456226994710647709793976765100665050238412295563308395724644674575358468543593331659804890124647928020192592664549608529408042152074584716388679746227350599389284469641223355378340999785785605496412046734327871312812326082171675586055975761205248034632595978023312703302746355760314569089531000786886720110107437434941610126117944377004352482902748808067784868612686583275846655613014090108650420017102082659280578276242305560506814457291612108595593236631613608522134329504482006359845136138563937933101071959001708412278482805417928465371316576737446085044215469644031883521352114132519480318161984662207194777419616969783016150888189224747234136027681147376810383629845006395266414725099060358058967320517218093978099389242185557574935255565598578165351631966092751094368650314553170353861914609872666591977247037428820837089920750727752634533188760390377110861683517635807000948274162406355462881021933836661964999902844696522087616243771027909305474843427876365168763738458327297847448257879233248939772254590101442443472786321513593759169878641576984572533505310573635081771275008534233279777266727973913740298071571260208722342709961865633549303433945079531021560139012699584809101451610088429765108974255789614717495825460424585357954843687636376473238517314977470489730892650856494501233985486843210700825139342884438321141821715350135482673358739254509682510889178362668932658133025428320455853195387875163002154389656918694018898463318828883602994650190066740489501782268400408874749279292898517218464131866674111686429628541767086984577428671387310648212236271825597856248834198551505696493782353756366902598272668740464632271671175896701688545314908569935053158403465764260873998568847978685963414404724478078091232403892547204972465276953732997687044542718395604083898314915423538932318217559293015864594937437374280524042788263592771646515421296377709619769472042740880843731830820255222123087262199073727804993877461304791776468989907191834340327415936160936439873177988218338902924264653309424108301851381814759082197554907428987375418672543957965884771952778073637762288937054131449958142889462486471336893602754192975000036249554116163949658876096643883871656870237173441167418588163257789864554307464538670467594349633652104292555889431069755801061278230162954022449441040086865452556912577914308422808333619638566706097637700876837991804408610294997673121663733942706073298351435967205249662640163644573364788049212298803694959836479629551274755472068111900966295636081370793843196626550394329625727399550390104361186791688514782083908127151440805398379648587737176318023780889977632672189179007211426847400398978104210854523797141748315363567124825953429553499671961535946750533872314110985441487241285144769188778844936583801913070681442622351518049507983101191813283150751898520480627914409496511666796990886336167707666170097355932104435645110993700734457367385144948393960222990936607939622099698218655860723369985852232783504469529399841633278568171380023724180807121565477216014730863906371869653018250154758871424976275262665915544769115465251291036495608310715873399986473329694942594951576020312945821495481191826563508436259825178079399530452490366193596491262351466115148659209997222565080221905298191798294054183427740640936787338227449436765404187474847699331445172955803071283848242142789311184700326315805379693792214687889999704555196578464994502918560452706992239850876939685902496224609158006171043852827492608789936729800835860138403393534966049623233980714815218419684542692657442637254117218579416972559355770349129116832600988896004167433641278232601832751399207960794147100608214980653541941833917694425812077915852191584626673472197389194222827102621773449734033496589081918505964433578666432672444943902021563366450750049742062808262879824947689760522954239817538631370571988361289007966840515746149178843891879524253437919007868749951543715796285814140160997922393037126196173500525344665570401127068722925147533471392011665712709541344926239944860427832372419407506787194065400373905926945999047503765947447515324452479151058679443789543846157628760826537902571228341103854717760200124131075997952591485600657615937285808124531597118422324475254383252872158187487664179825317739799786062500178944828313703928489220709307239742272165122530590667840940497168597197194707466971830081809695073664019427693297984658821248183142786286657346836988309192090955216460065635947754085987810199981397156272616007217408420616209163732770262489038147829738164631084460277360472633600754316065432113115950513388776748109468149721911203970111428772621918094559613400120203974801248614113222033499098192177548934216438224704926438045929565273446345598914694263005150952235127533229676903440571657249080088598457181032402718648469140746505740359593974014242508343233964941981453392984735881417209223411369900687157872987548235928744594428578693319814448664140232552832266258171015307822251538035308122636578523636982529487958365639082961653155778857997458146837693516256332460663676141792220929517157393319226575218735867890007926502540364314446582017676654901450683482111191212618759941664498381876542020362483979593404454890466042648904207605087243674372210065980062888106090682470072138737801831705192666149113466235232646433333637293189396806249002641190413515027432973585360228822024412625912062274509440847242424622166636604552327114823437414328507986702846341010186733282766850343924778356576669030095975945089339991685920417166015678923674887864446260396903582895974334663881914851963372088118319185066303782882215340264190633804809294436681799287197097367555341248459766019166031117308284145906232176234901334609041183437875333976445332212559074736730205345454113361085498768812908355531677350440118824797734450099705170530511183023511680713246419283273369900916249235387282116087424768594580130912078543977003313900317261802937497786267591376119380833396791812058282350108127998121794008508260362241755029449305214694990878667843247455279592859754697306916051880738341369391050977926798134031256062911616982922112844970161732407738882344672285440806465155909339412805195350716781430335959086174271870883626391723640284979027247230015527419694608859340048609199179363955127053551082301682037358345251124392068363255212656286647198756227548526730373071116883532893240951737145081657320820834647774135187064337319015361470480746611048950602066571665634403880707353843507810617401882215583420274238133713681334055188499023044145828101219876266999054826603422706129302474725377634167127029018853009940104031240958177322425680920956459519607012259844182646246841025533505825511236882372232631776290862139767412029383581132118172894627470296289140614746679393382515240298320525559613233999426429185947794095938508410723502911245881235721722837135993174951959782713100080220168239351955664370111214734922017402489385339705297680710629864131138577718986695253341516526881851304406315630943729116771100351217686291946215073171250540508729646763379896532446202360760580125188041119000667786518756225618944293223255777948315700704163374253331310118729011734952602883178203217493159366243698434104190460610274436351604158969927356518585431108185544631565696634998260618770006047635139711117780347294601078199894077496937403732225775484383924181446305243737965763752706101709855613011103826632708090161959504583081606812934078245297140874724983344350210587250092631219821523486685799743111805110632308792646118229485514138392495697046184637189663943882483484044560421083722282191154769442715620893771528775727273795843339700195917586501716119598086285293661563853067362920409014666148439923463843415246186476571704812404474980887548365153204484157954760264497943437332694866217953315735904141380631202225715571453041369905870241201043161313177886514782873373862106007023810382185474604412431733683683080465978895487500243362387267225649868541250095894916696512399273940006325432751886809653754379493248577535154713197685422574023436416309024725743002034748638697819635626588382471189173420964124483414519013232349572287420381924473731924759885353839765225130909948651917463917157235768958051644559488960164090594042911724911223493418210015796784791193672199075102651508257128558709691931914073852973401740849483745024622162168376042872685892378409040191434002856492742772705076322866036573045227388878569624411466385484365802915463099765047772362311430244088380881235013364718912402966171188942413498208703247469476523036669854877232432752699628068163544253668882795838697934026100180288897769011264145488662426630759547463575783064008068611128744481503406537371293357129634046462130699691239161689217616721597471724313168350956050697523838820656399499611976223942511698455236135142223472864418210777935568001154831372223186518498229934440185144180825038901718703377049163843320828112388847407172555832562321039249878273173054749666635594004247761188730443598144165575406659015588219998937810859725366500869765516765657070246760152413955512479707615563297312972601203892471739513439804674209448423177292541066960246597430420318658806167892400417743036072272830184971609155833387042758343390937676969413358472620924696002043484417719416571444770310197516243764646083781815917976346676892527968269635256038783896809072912409302459350887382811506880691094031424861847171314553014574845229471571039931427521264729984467230691528759152003348553915597062496072262197192469260719237318003832205992166153712108198809545048176626988352352072126173290804267510983225423397701788906468876519539336442737015163256812991486094829924869983179068358770660645731683154499288979196085733005969969875476282255642160513394452798232655768613113886484132207484298582417772938361227016625065346263746495035819074308107887759639663590996779996004765803150627558293103813548284185989264870265574800542141339183130326213644976291198018475904658867437931057313122139550361357620645980873947469073378134450458224308901321021690267451249825129414135033822751692615823360040500444312102586727029657267906010203826327155882084289561179253755633799869752048687630135213060659276930455051524306950552590502851753549556866076719105181124646158834779138670114465932020780302961477967357190481050462990451507781833387938533321891235554947348347954952902941631827653038527569749467506088479532667369220330146843934609367954425446638411408447343927337088788184992774150429439500343888327498863028410560292319371930924658753343963232075393600984947730722486189758607789394209567998106361505879117052199361265342202707744618591551955116024213324210334090085854821657407923956684067572551829680971169163572596998782932586069130020341089216224789721226748616590717110542089086647135631485448889783290002823465016684822911270649535394405670008409166248374360740705012302057354292568783459512264501043581817467816201600142565083441461784653316487309923353523045281893026429204766461973774779563022872648162669433825582078405016201204776173589447094611891740777369990796840323699200238594570566622017101433595402452698290617215985932725438689451112410527454052121713825586041021033821207195137556160699616767980650013023923494486285561163520780789441541145683519034093920197139700234441359759965942659187674831534164370663157921523005170530757546923891113129227166643891529156608162211622172218883733066945748047525526437748705446646053239671038928545336777351920525547876144885850467142024292218561677086330022669545829449395694150755352298165426477763372817718364841036868607832096269288493039149394278305968052775873645098079063361536727519988541623113706806683678836524405194982563669392139933223560711185710841229976246385862873150388337944417533639900185534640019054675430796141673678930296018609125629439978722851291889694116260205660335617321961519052913459022122149768292380532006722024274459802681969229423018013559977487866855430928119057658167461137434045272255286089520369481327330701628322565139552080365937367186858700399653085448117092461279287509468864964296274076477795663248021052840464475803340272295299100009720003481670258372703799478861531400987876361584186294047018823000994819886273022027983847532482099099092433884031203899360941569806287016309548756331578640958036802057056380377635508411125752970055939015143569670484802768256116767427407810048778655240045328899311649672733276062534972746335733325406429711850306390140244027329007368027556094636066228516717223814668778418231217212797134091036581570375282672944073425942329795194519577335712570974581439005895862092022722015924415887459055820533655725726973626349862656480064279432601104424223186846650287529540328206870138724993215836503466548548344895455002847549647828521499552421706899180960181281676702557355419702827587394164175075633017485873342218011274643069974211009588569596749675036574569396856040680954984011942489695497448549521188715590073947008503235375815661490983170084089622908144105023058533801977278832360957563689582162399909739996078856540904250917082429962558358269774923466402002987401956970582890121783421628929502652800138181180082678755973108975762442545156012618062137236085574527369412657968072296125794635763249273486267445479250520905268102638410220369713542392695619211147016438939191230365282626833996427733058556158986777824203202307445165722531991919974335036239957265314532019713286062719484120856237831105903060779091166892328715946836186563377811130143930396685543474197292023125847810227020851597890145761870463285266671110294453502204429713297588863228793641109115488398735284889379491495297594843007301073829788353565867304965288236803671091054048583187765142132420043271955909285734881446528880246976933715309597786007419195154492199298004765068678176882531807457403768263474652436119237745556486618145520661841108241446397221686144001611039194312100971576356687969075240798771201757335387164600117246611263451929474869155829653618892950811253115635155059410089822016646465981715906360532237345584823341571439501016909103253800507171107745285330938749639733139006657732193270483582066181854025121741000662964587012461819283358720336122186086892560796358958106989654934682774978250154134188563006018158929322978638067934845852080666161446318819971349079906462998640072367905020961044268089053855760973568323407767782567179662162283478987594307101176854129267710700498008254016501863127300987353540937033355122487843128254095139777467688889352530247867053743949586385106421229145390921346741735289145741701864421204675672227825671725114473984657469272153696055205699132060447240522770582849568603616764943958608514308281107440240746084913467163935680273075764424393782162791357731436097796761315407871044037713655701034157857399005575413226411909258167299449654869057440076889972181820601077970448233839537403618033921577172080533848563739379841176155594873109918787248280375551523886182124983853014563372943753116549807085240085406121590446107327917308078163463451240573618216721718448125268663708599806651942371847189883020886153027022777129148800244683142751755742901558202138755586037722781832582985205346341282359501700246674998198466835249754001065506313627031793984452127623994550615927171690746500315397918779384948228209960104645504994260989050712469526349625891667539782344795874561878072782439350966759147050370613715629073699344576536973251088081132665920365752001952557953178247406882124386277628285397653819161779564055692364184118013622303612892756361452056263742416437978874902067991623051202991848294656870019086686821229306064339786937189726121830687760120987394740405538064209450477934690009488149987902343553920721463524422196963801398399233097353404302122270016800579496202523404078294078636476115708058686095811812027257626386065612052578146434380662731747118615869281531262270360870476926109764036585965527667646684944895672876160586066089758594883808141340119520074395267062417131807524282848336462891488205999483627482020096661845309256861588406090448179930370646794424924169994685905548996678030702682846833594556163133711545196398517260386328001359658549704802440896175903886319831688562661207830832002207686266605226314444258777050586669987318379283714475362587311433090277871536464186130632369202747330882391207265848120535640978404624002962391472452919734620660515359114966873355329109508782935229986191175837143576055186412496027254768072116012927772783341666172310888508669059454778615016123381371358051786001135172900259529226500011624953525615104987829649197195786273116617623154953938837887635892922179238602843061269373316148185361379593029053427206557116547234070505347330993796947893219526053510157072655437670486387949880934258085996488212631455573654267387695367369838395887908927252941670313224478832337606099314522153030510127706578661703596631756483692778138386252410573606197900342685931900076754241509651544526385597459939486548313832198428238990726109185997864687741167981296500052067559546958087570595269128968109787674677566832695672484568920500788270334577369978769795936840868012854726473580607304174566718825486086848383111743322988580194849675491975305693069744465038111634061416803372032595666856298168857506202427436079460201271630992093846829857601386127905787793694397558625285572273989833429658234801491572034843083541743574880119808108827518552152284575911092598207197058930783639958883462566676357860191367840909053897200270418364633806112653384718695089213447888660024450743037305029915466489153563343743880719394361229343101709237940543328769043403532090057326238261718905533233990610574679723636535671518051609976920834656730429927713057520716921751810277117953856523882751482195906483157014702214051793196789624170942082725321918745204645886621659186276767300712660427343689850443879364349537693820193795640808120884996749264580199005701789498631319153440485541922627435316313249459477318515754691296582231340303299047513197137669389608978030886284836531241326986939646607455543938477867937236101525966041464504903192643698260299010207593567559179511169309978071940974953734171548058872969204992422405572692050645882129914478112761845741563900247859941273171439539469485163782158000973076731600693861092018054059811307471973602401259458964338484229973180857725963400851353551843428885884502873816161509201731910504287210940796601303606450188665918759652162548462581606842241378781350722609704294030443682006687704860554524395513700302725300005963353973218421298212718298978075416999170502982499986011637950419488573120592968110450257575219989471381585518632451270397942209092210806634668137034243543118882761373400432474111398449007954008028821419524403777262460222038415081638510100637893809154651080409947435313006401514746982828868454209384753318527623157684119777869385371373839220484474714115297874351098550965297396621849733780036846896876999118147032624730681908192517616980002510157515137227839316455861942022935959118943196021207177181168962572141298217566684871245510915552504490481053299952036627639062420534487045230424145052013523798173860195671814957647037942410815502296804975782409892676909676640788765368230125111403287085936831956021985550193819337650563922637207547599959971841122805925374765486799212385962765572561120961270068812265440462297148168876460605720278281717956076754543118267649194218386555298820681259172942338482943508937692143550716481705761407612235611215494687161892806340748805453718144963854098137909989152613597745698760810639795771164634805719089418548468530874670680098787854343054112446510453448650120374742933026012876655743014052162823932927875322811077499378072186187921336509230651511303747260701815902049266517979895664022911696224835747675890457429375708600139792722666504059590090710942200514844112931436090599213294021737281541082187215813639830433549409092335042162497545378603811215158426446044883307146921772371027463642032920725681080698080506614369967933071875993875914259320411332431601037197179983334408133880700797096814872377139339285484819009397975418208806910884952427023148344222492433427445426590685901372044388863673654645485771710944007967434925642260393350121271775826694986483095496632626139594824855856530041135086681286854750440311905412127405032081984945304110487536836172273016862085567899547550064490431377536164245975176558931847257038848503822457174607675058531891427567035185643651166650570102096487352009384312782376865930162034772198397463652180836374813853902490177325548638549237018442222931634594467646496093652022825093283788712369938755802094367182925566183742022249488735217199174425949710001366389249328965418120374258507415874662890364832023878706710815756137656235099505306971503587756704881102830771303368666926106669414419967568728940408511689094439078663189848450309820805440058663484681058966758146836745158318388988529100382445818078679021379752837095727765252726648472686976136856062212275150921626639682365097257773861433358539689206724711645146132370723970695297130881382236516131475084079567603254861424604451311650431595232061611185571763510439511843915463057340593375943707754521622017893323499192515563494933237593784443870822397061789577098091745388177512363505292356841204768781716773273369379543636377098155661969639649520484315937736059937392789261103130123314396953690240156431973348540352004291730327238662820517334146177116321312900194934733754471710429920904036091290123158049490853099276822610896201033855127861252367916711625640986107042531639245627161656398609689310155384171130091277883632854198140976761522901459444554601293234591792641423243740266413874153836710476685126841665636633982377538804729486281663696161880938211587992175447882386728318147529819044457832913905625172039307762995704337729386492224739686826314553262618603177787390498176056440740132434547694815822383266196861733782687413392704672275094729657990965328256885632733293728997791340543025298351673468794290747557145347567946423477093599616121332033201718558503588713854862380015502526813001129983625449089655266103736452321649622256262041721969885543788133167278048138407872143651510415354971367430155440750114012597280679489769889363955872825168379580210137140151601736762657887740628444473912650738285308521566416833444399203519177009180578031074232757914093582073663714771683732662483487408004140242248770206000322834781675317018007100537097763757818426191868107688622705102396183887812915286845932326751010441307218247985478895595348342624133617365779532788464755790040099930275177039527151213501733515340984527764353977238626648536685714855688915458474901621167834790706729379301528827501391561044577783459181377694618865680705390772916855066479315330689235555362891995239361285710993589994497016255255674399116154606946898050512692356819554874656099912778573891016759220794226257051933166912590851929827539150233101256632249971115140385525156656956377511825890523216558456355193141323605320314097069468194475560174998615406773976939716519286262388831169825495928704771512775286283538394679328710643644749004915470957654172168078040427111467115088798550506024971221319939116484257502593038524764874553442410764590837489757898091678723822010693883920433787692984898523524141974384588687759950818477227760700447196322471029758119004345000150453440393423457962476710702642821231433556039605514162814707686382274360689882969013142608006009749635568842227296626798387449146404924767506796973452608036665396876733394084763365442587104543789393828822225883481000748992730246511084993488018579008522945436715767763785280319593824501419791435587477411528664571601865686846224097532768610704331548993882523217591415378864497019480231704753873524107772616751378757620397867189829813356150757784665004189461717873118279893534403795336984140212358224794828274840096781002200881255085527115528605102262515054923172742391524665659861236666136955886953216302518908064562129007455952762093764077356516774878831663693408953860873441663896614316706357478700324606885970241548230247196979650457350207765200269383630660629966021429648369179866777686248937762594816915546937657920140207312012467199759926539683541592885024586602705644265899166467984672696403730608658798749912700243197289446880911992257656096435348515709566452810316013992654471860691320684632789827050172715581927442463453711607302369969665632789113527532001219228332621601587551280306980907382681214477095800252184712618365046235372250642807084708396505079650793694161848272144504263558243865157047500993651764549844821542033966041640924559482328482119150801814827372109004233933338779110068600880493636761731800639675071631099430582904399018057014844373861657081617950111858602689312617823457602064273704519796821834037133474204134582056802791992678693751223405677666860615677885348780789748912591265215536017791625779720715316855887160673876126557461203514744599590042679252443306983622722549672100323649927883628959858842730854159143961782155555691481051082657196264583450400973777630594207091639904960071053154868925606873377408579836649807008874553918017750146722172307014450775689810331581311629533058323563350049811888044369560451899012991888937208898310590911368768419398290960361248203824618957328261147876409377526580439953584939227684912500905377820003348148908741831797578713894090800224712056695770654138438046858744550327251836758435141837225738196926428978511458757479350891250172030844583525933991532053469534965966758453256170959569804040115918969685548106235050543134114327580705265021905560965720516616750988989260972496264747075271972310547207084712281539945573046396878280971343680774167173426784491280774934674830980041909560431210706743071567598060691263145590861311434676171188888560412694096907845924972647393329782854797616013811132712240223253678296613372251334902158600988337473707692640888743084105234953614981001309657772596337222382372114520721518722927437678975988368437723643022994284383013924642082202196812463733463996010169403155305843619464647550762315449962120706662613136301956962812560755492727659141297725075567034887123922568040803755596886984493256891877379191906836157167712060786032471924489989185363423099480031588672498449553800637711243979617995745836473373558220151865295645428871917801642204027066530354557386121915700305709201022572846306578770171320974196571568917405801233077783260824462036878523267343611652128697472324234795418297701051816096789606295691048626901406124997125584769232643452249612404876726199627785196618471562141967821437147268605414435401599086306134163392204170907512622241548891116103145837804521605082656233126159996245656960378708043438019495946261731690125928108649074178959263595577481149167047603558709257666365915387650661248650899743645293485185883585838252039061339955585326561365387456200575629810572833793452663441655241250575595878772297458117660191403449246656339172004319034402266632380484009563376985165727540551822037631659447628438829460710770192972027660450847333858769598183076746918862466793179589962928495094912686406383279007587017744992375966459240615136964304328345483959859162910759121663412490554102929584807406863329735722246628795352264846037525520756934819715493362858584282946743314531439542766726177032615010569813784098339922379913468303313980360361570834663468747210759655858517334361490488017059844306194243184151898104757752857454579962529809179380255109123674995134207577788536200555754204278650384470875330633647110773283237032408485764577577029556643566352366642577047815274226082043791701938749249140099374053428256669494570014634133343085637812729710723502826517920920678620570032234079689531575202122621513313661691860300647388955937013970743824340309602554443965719436624386322609352583567503336298803170172848672282022214677570054078134189655269950724769067191643671454092133191115286464636335640178761322978203332648789004824489941051038647079050745026101732902276914245636445332734974799592173194238741215619984794221759141897310298054349681270629248634862263339299375237862765172397854569851623378683883534790854356717025375854272830295134707180468346772648902317568148486976914151557697545751203332541238092327594773738535037562547574664167291399676616201036539778189947403420625400557523417573711032946485174998980542375921940085411560208786218423942959787261165547909511766792641606724767580045921950352712781440358018920989197736139186556231806830549816428246229745446632900032310092657087825045348036463947082758605607588825355802694013216263475157208453357201397310794484125126749644844333845779580345572089784422369072150110330801703676186386053227463166870203760861298475193971268498135410635760677712760706158973895172135111242275592166875739481578519399397929507150887452578907776774742034268513247730569179051827766154105583767144424088878630176141608987879937518901082594908033449649274040641008562506317803791567856021416232701314645014308254254675246785135068771937054088352104576750358721392665579706536756768159094991582796203952415829243187279470964176801796639119908353540006008048988399287921360314327181971814804474330486738116722351636955882947116756851973881970322565785881582900768249452286319827998173147151809329077215617555039908598670647533139813040866116963884249645581598944157964801056432150435964040531792394480816785633422172164523698545095354950630926632558597749543778397668505014460839686682151639558857156601886872570522221801291088967900973556678750087956599991438269653116010393752126877206290648761338593359445955038866853232792769619560720960943109037461629846990833505397752650369517444035137452982525585476361019984303113363754723333579908874498888914995567626821518904559992572515326923763962794570241489293277256460343461380820153493787195897065457496630979947354087174839259014774751254673615836039575797429580068086435495879189199236658070629123656352808967895880646710363298968714921776845134772425671996236549381385862058344470211523476513958624767256964499610875302243940530420804021334942038080861773903575831136013351777715023226432623154349262464843216924061004570338664490140653287419494485885507246109929005197382292910684847413004873124491889230584039676397530980408383135299289681825792459816810936626462772818173455694935660150634194674032648969481839548407410167054937124425432581358290686707870324037407259302986200728423776513337191167288861816690129396848559498190614620531398758163936717133345077800180534887190429450678640658279033261267529827760215476856208488153186880346984047128228672253239206986104215561437157651595087291378175020219412588853308863175279837712427930651924339012422390056427926648725589490363980435355887021313914081795141174757805107720469952537027827522463644472382003147507938884589359740863841975275808908970620241581640626360508941021878589711833273962976573069961904415916870665376556871628586449827780356159623390541190292027766873036624397741637567590634546053179419048030319782821523745026075112095673788134868738208949853557623612976952434757354113903828776426969657036055382774592372514246109330689781968118562165116260245650916689367843752424635292299485849491282737523932250027237885003386445000466810906482437912963981561519919796374807751883276358698471990218811624076837888935777610759546582953093115760401267608802986293701744088098231379774629496450454941644599206815872930496819278483072198990604838766169520967274362667809455534777847477126209410580213372395757481713604713562666056930297856228826508622674927185992390617007531958219359422465748038135368914047032927536625491071499561410000822235459131976779962947953125331201488038003485016833879084577609210579144531671325861547678920213507741652392824056943478959782211496511738348577590559844054147196284288759445389115924394898680133287123596538083157381601349774557487672913289927909211360368498197292858885770534072957486574353970421067303221504223425041592188394237151956244648073268940266482218125178764878818887160838347490313779941361331611072047435102132016935778278976357437316206748917405158235016128395135863036591292152863411133403881403619897537809641886711042328103027451226712191966776595844279597174726964486698010577891029267319418489400410168776409053013200387441039183608082943353894833200754337593700825087579647140626973697131796598973607005086967360652711802578561418826813336759376507955919394643128076949332210240687909976453481326751625160805021353599482888153270621976736415261076390393211388078672309424909352103932452055108570836851408390325816357431839103991942413815584983484641975106315294128479826718887015876870176369240496483583085417971254705586722867027381100081027361161506449512300528601193589782485725963911122361184674778770764486141935902437819869471670431260318432335419479157658185051186927749204036703994111830651815840421789851554525881694127915106550524725901987650149193331396112984747937154086576482390473747089276191661036063784762513721929414186146581868728886814837296205535400230710970767802060999018739100642006667719401792389167895019546756684844424078698314720781425265462238997174183517661331233071511099261784928277274058706192805925802342708721431023078595348541263352676461454248451566503867012243633030054496055372018517153192080564822114702411135146726268316388844515156657661154489368883257152977635376242856390568319279905380903345419605940406976013310290305520128050014475997599723484374465076260239870261436549652214033459522784360015247835096134021761603199667420798506755807094878104979551594275430877469216592320852226583687424500533375432763690679740085976665692914492779410277437247853620863126744311677569746684065616188289370156130227966499589269877270531082512765771207570027404193242967599663460215257720346412037176242982648589999237786995368046413801617191709370824040653220977103400516004400934998779593681126322773485282937757414974698133280559103912143270083359572929917979629086302279904627095837771646122105477152875191306113128424259858845675454825135461140658573789594535999446048509657656861288936797410349757474073909614891055538833788787738934386663577808456642548303602907906929694278693223343186928864594694568817041917222618266916446572523465519346056911571875640526941099996603687878086306113331815313993146863001829991963551501683258327157901603272081854400987306889303256567446051988431950045716680786123057367904026150275038939746463999493617043687864910145731043004878825636818728159293314034438516143211337546923154280941641451890720455208290586293564900589232449526695865474393144546309665070361256550647459092126965259800392167009499715551508209632913351343567675875795854793465033386102032266451415734072704721136487885456914666442548966290027673627026158328918902820715683113503171540225782221251510538344691909527641467474716683640336376932112436921696245901811751159551067122553997383932392234134029926788929219535955673627616943159570370902627298033804123270974413860023615843562910783490048408962890789570899315595251394099725993415797846520485506385367813978740479213463674611220711582143660628437168845796383635376112022584663537875285474181273719088894017908279558984465935810194438227738993551518740904836722378668037315404179888701369335632857415012547740870643515747242717510320160498048615879970243974586123360381283461299100655759581135872941787856791985577720427132810813631828086672023612912409067025505287282506320521045415637355495133713367268347558043975244476117893953443350485405348622829160359903459072207963124015215542766956916157939790017694525649980157010854862834458283522734272772337723136995181621766179335385180420573013887953260784068786486531472445453037908793007438071394823960072044438915007714589536388702338900880590387725116533822039720595146253089092124287971539049236141962933990105489334572562678634082519201765027190527476264891458849113291235102094956356610346343484279270800862651268570132635239433774606350568518973145069981176693906422709690009500605362009893206919936644091125109213038751038316931588742903247528037309583495921682980481860603734261939901205790240082085534791639678060321978917853951719973346271419893435315366309228641645610549396826313141155552337195137657369737079480426155769863333654096812543585556617985299444855170961135138354312252212307383946549092102436820591787872942713372573516618117203203577059854864086211000654780176321973235110191813989397902449901753643173407911163015180218934544178083851797095190609069568623762102368837200323850103195636999794810301256263862998536884780477589035841175167267186608094750575065239923233511174650429304056594012121280743985369415444012622400352745264238504379748202963118805165631353263004171266423335327731383266746105505951297153979599140340312512463985179840002665048999934727485084312342024531413297054210099386560859769826519036610254864473862593506953335479500402986085279440027093678890284617546872160892264116486984002969490577436173926019445485097489638773519482754378271161408995417207591288059744478763596867818328559833002976777495112169336289285881082504243177248287920780446334536006813700557655453799414049848454176131072295566142870255113930158360443174500264127584308257730625713315701597969068205606144386859953004704813980404863850585571069189068573084089134615338242247311084744590773249799362463131160513344116889851740032463529119061477182873295462135566338218537606924247723585004098935068836967628666383532710164274401060647937349466054685056355370591669600716474192309183325301473680539896431431459915834903174019503442280404597367144607928183682740439434254223050377417189458107683274764328070886372900160292784725683903871342866106465045089378335565019930104743566282956931756953048519755139710644669306430451693509471611951756793670289624505531296918645842745298335055162957219865078394278849568926668747772586757988712721366016635949306157460858363392693375927850475437046748638419514802592079811151865535559659218286412988974782809973790333678391986488003313362268289850545251906910509394434300866669720460002968261008855470062366301005900073048498232777189926034225408491846973194998132763369078902369929853739689524842046533727878420906262934896745153344167032183115235005780423008852277345843978359833776741054447778390477667185201511323483538375844622938991730221470228561663816222842614263196355404823272861651413101690374444047032085278334144300319886710986201285983992101711679181000532470368299364752696205772319064306528762898532601933377301149178146234488313039991099736674547987211432076892907346364428152216317232856863370197906756406158703722109208056028043742114108034132210116669829095804653393112297667122651417048664340543229479398828665075244543968573360025873849774212759044713425362547007013473302936003680164882644768877329734728988579061985859277431925171039867075179085800695011982903511974223164174364983992154497731473838796610065077381502982872993290933881604742807923947237471618978750836707294020022873681432125229917359690304850804568900754417039296369914665499486816421809027233882078507580125274269931573248320006537930057601493422231018011959301676191509069602440383214351337715100711780497016329336029469905553349363940269878137871675980544223379661715851935477489675331544297395989647036665081680340342323345917777671015540597127353632555522995922034980330219195749410745603331316399368819412078060119730103672114491448081529660568554766414564589313958600826853626714388751221113759271999154319498846468926613592461123751510705387659939907029426569169152750718401660544977701475351304327122334194031782612054810994678214866526221991374676198321259439843373183225465877181725950770457483144509480750988913666524250992369729357959073040571415401872137274979243069759275291785043328686944345415582601985138461073302035280737083560997650932920961899863826650043777410110379010001584708108645491912504008356844696965852342587671218826856015798999122686929709640034885791731076106723635048471995660004813056493251557475835102200960954833777344891360052348492100477811082597645330150696929886563464272697238469408112521418018080279535515539050962599699606568693677891210197379492479790309407833967074554189212228907056273352024092632346107362501257655271513947926835942633437898421722493369086303030765768719563626700180495785980749630536022272561969372131698861775436164523805569000039103773202123731625178372636932893079385360918331388997385262375371871330770012984728223511432289989724653202126250067193826307085764925915435042802165820039874654450853914534658369465201525427923533220473734506861419674291120632172278074678052406531620851967332888709209410372936526341760011498582110407616562496488700401100947927415702029605094437568688906248139706644684903190026793965295309473800255259146505752481504865665862685254430410678141566070707267659110731585809321427417870679257992704435515134903777043625728169767179306376926517209092539922063287698378323004913645825061355772536668851303623034970694879093530281544144564430846641235933691624943367578605030667433559060995249747905996992039648092407900207678539468853720386288419032543675882565545352788697780077903821473712041072704110060153505545956206379406618632192816898093761244846979974051428122284582016449345992122640748309195032353176748479352547129832279527574064290160152347548950163504090608364515312131560723906966796799029843589891042283197486051939761889493133333832657504399505783991551142280102237992016062556449367117665758166188074633773073909671361830569420557662682674996831026234882192755450243328177451674100497805971708990099035140547911476476065934094122937821343482146212783250239677474047147386724008682696905939676033893386327463576562767904482626385820324295633548242042637634711403771075054346098356183437513355756317105489562422947192198904636292386869671759626969610176707068123078947702627407947098412955229748003278482973805490931057790648635872635598806939652237645407190976404392991174019590240671442114384893179890362077980721769075167188068163951606785134566509561247396237727965521044728207755640618391691027166640480786034638276397862062810656440233955253941507852874571614369690806118765528881049359811676806129044769912947273734231619409539414934212341567391348193066658686969713662933939091365807891936614839234731214273898068034123395330605798519398679728917755242193988759584190719407095352274090177400721192974978145099361896288276095761009206088774425568355829862357716800963413368748325695640910288609551101919787552669273957832311874752927915200446030724011261226520812206740395433959406826286229039681094888932664429838180020690506940303937589531210125535119032149869490625426839880314054124869961415590324456953165778577606883113486513255926636670184070926765842674274761662175534053513572964590765755988334183365920827648346036440305337785286266509986498705258163052956519033873664695358457550820467731067851766705279257783494533712475527224087653375499156316023994075042018464173474738460080977071029936380408456559990706181014381044557718481386412647825789131598426252680107912439309600037836489822160582560938041881918020736901509736363788720390190741234348714118124211999431608579608344473553550037537826403601764268800186079899178304141333062248548181298055918864778919398953443978847018763375784081253031953736024699461834543743727962077294205722207912870290572408100592638348880188962201741070308435623580006689981970029660142035601718262285081572660889696436349206602904558669434949670726081425930137527596626097855044909078968052541703388893978998656582331890433630189570134673656951356134333809359792330226097986472757353730625453780445756811168364530470408317477372053801311299668752100310582180723896863264870409763796794648714015836656611465457868218838689639318691760453373387815245156162942545875635454455433739358868215275209297020565374437067124144565173440758474932875215374737665017530056211280688449176985695417090915891789912023972487408806844562076755566902871255270910242629857898372443518145812932442493400816664732715306556264867829907164911713265733776074626544282809519804219892578941468292280948574802731314907105329319943933056123486145145699608607676888360348252871732536420764220491917674779467307093829587534317947862178728861511071428114232468475070546018472583685203903573572510912602950898810498801682565709339622734279883451108359269750363682668522714816650806097068292188602142473742363527743892335418894611729838986703341712442377672472363299673837086198980689281377970112994309338644465743156806160219625953932907157862461968158750148947105577701654815080182995849819983865799742748645625606885088458021393127452096218509071013072074815560221078393211517086438035423187362626899384183219819910770801203804294301184893378036802821969584587196543646426462387328847057351316390016832346592972442092423899276565727823143457563555928007437657474874645762770680625446539399010660722000387877750920432257355590107811977302852643312637644702107546644297109590244440373707323754114675595323186304284058044372249662975334636816365167882457250350041191380628629262683578243846362358121112184569154797896003840585780426221718673342838042559705532167378145262590056606158620522369589949820783699458297641981758343295402214196292201612238380353788412902303181376201195411472823930275450012057781235530017466514013165378895203927994612123133513847961168637943736893949370554829747067232190975459853261477127930714665620641458751675322372403531052665031245011114912903709129582525709966188907021025496274713373033053068115265176476951832745556415019047868577949399588926722471768973010467122488212669647402574239210525560549753109113625752591147571352063033589913085423437078711720529463827861584394725809682449517128188939706198173561545186652781053780974129406025196026770860710464217551428867311020305520651906993329721247720022556666459815758383337411609806056837988497874568108508279095307051943476437116491700675025959703627458509648255736759873699924409339187666034619631218951669877145486144633357090484850169576146213289422716938556022851555323456388776721751680819145219879490987620815117043144763415169476000390472938785846228071282272930113320589912689828427834266267867742967546027095841424652408163346706338356993193118532406219578647303822085428799047946907643155225261850182716477951014049429612771828837726103343769193138075667684289295854100849334033398365275143604094750757318892911398913449126427117551260578179695388724206279112625083912764581957749207737869074570598878648751046357102027406169754132526359085817506465640752473282399608901335314680417056056159097881637383433646490879350428761577909020097482998813614799544690365288657372458602839283765263194903115552743778124056410735870981105526111802868489679412330567779927760093566909056062239045891654356968100820319667327468141688738404176823763544678185761119881699473634128640180108272498697189741164772040402836584097851934512912970959321334141719212354344061358504956840185900864901981823556438031966641007006693045733668792520167797069298369307297040505388630266000768266283734599248321750524583276671422473351573077877166315419255933519801480835157099419416097075465987029332238707627657101807806843274272355067615403500403408087514595111078731712688786262997357673421216524440947104426144239878909785178384072800115790794025101854727972053619835774280041766035175296795647927925101808086475198113575261435571068152400927881315586570456792727416244710328283102847275470890202760064045720135148617642275285396728900533745227361291825340774716374756308756612049713099066337972908790875837280785291230920644485130265953219055568103132346132960404705155931146639615810090943318826221138769430268007183283056987682880232335228288511198997425980522317571447354125875727255188952986467976658740337035524995533992886690394165335291713772134103521058339104367841663202708766336190228573473477389996958275451445249667253396656244272461520175811869423803864592238259908455019345687990549157095006642404816098570114937362660860099381119378995517830847603084061511004341533954263744780882190340807274756925546667688756945550237057321335740314073125203132939955457565175102606823039454850702084606944377274325283603399753913425002156008527618552461166529467649681876394972401799086627978975192811303362007754666193595476743096679693284874349652789520130834133763557398497042595632392776338077121708257700079712359339729313416638250331386091175202169566186077760819028085843358980872294489704540881346967494036071696786492738158687215570384344137610662765522899712354391588018338628708637531295152002151060037671612692763197145280872142348088330293025498853452495892184492618076722546430689572184257386728499929638747550724852735933885636738525534187996501478055631289688935719708919911365289629851378719509141128504339226306716849221812194843458521826724764422490853939307807862096164897796649704744571412180073119181835656207432817443510912308016321410529471812732868494609593290417866737687367029357281977143747778910830758310827008718535669152497306447821979044364413958348538269893824841627164839291396220144544284907134585715045206028001110687323926337038110857682608064218138986946635191332445257669112022036421699027936479775972331591011864515048282684392554708293036584847023139605021965567067562035040027745143419478081232888544743426054704513499842225333429742507575790887674561165195000014368879533858260006145106395041977949711409860275701640982197658153866329551521036539736027212540469615215893358471268008309130781361373864668047233166003737754252928997232164332450078351074201097074556576948404206613023737339887456797981966117445295316944985960298339481784413426480026314707984484902692866738649783629248896473681940941362635836674841348310942384628282505591932582615207215722516798610870442132430095959837169008335511468545384826978514448476756169338294015389111886876013889551819330858257942599249422198888300106378581129696113424608983352946731625732005432041671146512696534457782285561829446889709043028755156360744836288104888728908102843914819390482361235480529689169789827369583883450187013615973057544700867083246284881859698083540970667937758117046054210802800640295605804294153282159919019347119729728529096343710471798010853872031275231349972587664930657038982618303798490853846216740298722168404733822971575559283864191288498276456063509883078121692180370883214510729526523072448448079303414793471671769808032613258403927588199377904008719089441094690545838534615300796223515931078242155377625304135186022578545814306227150341241702739054052474376739856422714555736987474823772715654916407826316812056369540154837156711338443625762668335990778903637218639334149010462375975762626969477350477667158253006173633721464524831309585294899250063555088164662101495003144463242711811840041842876560723695741343600274617422290493996069607679674684608605833578671933298642879919784429346766301435402363531738596719050475059972902587355792187675544209771038389465210976581798051965250582915547214889325014900988473387624480692602831828143425649563562020238330859072769045393981076718480444282738123005566496007081054888395390506589795974476652146524914897998482300576687764195272507763521871223801209429738307867206296494283029795808359294390802452478131210208603424539276052536417577933499335246700470867138939602772441943146165428002636628288830151759498770296055562107243952105623347341532453722636997826985131457138951407124109979191063705633115752492995990165478185807476318317347959333537175853714545926380728698746037078163295342481030958034289772401894997419292882887827396746858087604327827749584388726094456181182521425260217718570876032447397715366885206629019781609683473702852743000618712254178650774420696149589258179329390101162214336135233241342978988526866149755767551429298269590887899628671620120170350890113547695899879895416412708450289524000855780039364942986389071502099359881570131672829641385839420653729520094805962245877238573316287794121003565596263155559527303714269873725377190521103087883397446627057199908524418266343071957669047067082311641475391907763595758622787525869468073754821496772611725142686227181390147771133588385370166904740089727492035734356360776114939889339436360884289440108747013468293802254157402169725236438910570962932920014817092886437373237296001327733973941755792979625380721248792911305439147058617915477469764646031543079736123755674029845206101355339091217879429818379805053529983211217675717529403943308096171234950022935878916522322137176252187563429285587579920228538719333498086249121466755529500981374068152134022703516084518803997226784273702745065125652908017911224393563303813581945487324664507831973557053023026738237784231683253364623362388248718856235262894534094882109093496129754167232370561714684816627762463314090193307254812828961587338617842408526146047178519569765776100651529014930672359179845890429094912188967614148819653080170572007957522326149000482090753981712873662243984880273545718647407458183384577581127351495219285751764270299122889026698817205195202272888402067703026910155711181201283809817954182305489599601156999319967978675747446196461986781661662742497117983151667303693633629324045476165382090514773779617206945420764612377219467235483164353131453166585903783755681123127518956915409946257236234414038809799737875258023973989776829797469341260972914053094517522397650800028269892031793074958037468108992987791278126340727217732057052257460020813562158066576609456868777213861839032655430260936125379615302770807069215291093493519038626762784456815988083855837606396697118249275636035836250788725687368016030654190445047317928783073810775640794774960597504497433324749674089633095252685596841333192711768288043619709879661722542029498374621790206441165688294286498851422498023805793957262636418648084766922947495685876483872005767387959742196025170560549921348523552769731050707302424043584209473029603295809246731906849699964295823741129086451018221822753372775631252809008204705644187160055453948057772317223885368994760784206905156427085004426548372544935706763420702542323543647692220919521391093936644252219468905184916964344016827253934391420548677035875232782792931010819477353016716686209104241515189595043796096882972408102470509315821020087170701266386189795062300170561697619044752137673438726058446563444672554852193805883965717218812659574773070112911736582544643668813662303196758510851295563493541867258612477765084640006191442918332729666983888416954970754056550615280502993079640617321519467685529267873727764718135546017127309150975500056233808300222120754179571628260242227784805334954843878552111371680845498838420879502832346004463019274719558485708739866529200741063323907216233443457923957938234964541515942475784414951518642963640472904699564024886967732114663561560726100446925218023919316531216721375961859103510216700110297928317328645209824590356908759877440858698314082846473823634600256873510982126724655233371669003832650573391603934093687414624257067300937066989248874102194021760787026044921525282702983523676042542884288464366793474068277244095344086151427927494525623338273211098355276574094843343501266484401630787641894865912928552938397889370562185474030421184893525434164141007811994872614824000851615907321934088602549887995474545819300348855550758928437458056462808622898278209292709059170396656876937004368607017942903827461310893121851905707504756454693505472771680023621282372009139536923411730605647788933271597718101898464113755949061367569795846249018388299526614212867503744476851838449303479037112532127201790523083768812391498430979002627631710808672485738420023103582049159399794717150907099574619658431013273839143123218962889034300068434030772840239743393189537342554949844564693031414325644126398172525146811457972295230514938631852527416355850093177903445232043352391814269428146568706569505687626434437778794809142765302886031410233395061834560184456555701972877153432975621165890120385782925391943725698834430476758626708535261047387850071253298830750778376204037743321668356623251072101786800367021740675769502907053604044541460961182656853308202593413157601889469987063707932512916848905121621449941747283791498138021345375951853958555912783627637012785149705527409774772313363992183994468327705800453412039068521678372169487751657720983680869949789280105122114979607059485825248243650336464391601881109531802350621192766397469101116070626785197547449147426676727780746806891084323777040580752755630898032169576272478637265649169157723162041941485881311619375192084584398704409082062684032347962350489152281635410591334787356101158781153265291341640445055960078119028330420587649999558968503375955704219222942927268769521334209741355979481985139734556156604459160119512992728453560859768535762181303947166136258377630708284085792673330189331168061001546542592312857712597511200760771858036990734822117147508426235031770527782870991071735574720790220304468439204082138338226004154489141454671777817000704911002794870112044598097096827490602734188639010720091442364346577924408893761712781294278346670581759746901293828955611806198016338390731498795809230553491725143156635546351101188459574128689600676068556650677666704945496635403960066598936323580393965020883941019052095262146441791676864947144105303260183865596386322995554418409500553945408081288539176597057364631416705537369557696448096725143462666500074874629779322332095984780933170301627820537106606637889930434767514398978838649506989499233582139645000292542888200382006889820604742001201489463318697097783353763900471439290486483989648891856242409564480953424528028533125390595897447151356755693584500850447101561876753389962809774901228675089157025791981066655894059163253994740335996916974091512007852618847639543250823208257111916166333607821167990345048261305586589202140743221390587584437102943572567135782559423578248894522028905202200162843579173121260721967110436232062131290859939843527609483856103643183336676733565653988658159221482835939242239257809447386557642328391131617155137252231202548015511860615945889511555010628185842861459858467182742595082314306783367204129518787096070445559287753759938609953049741634640131396417545742502760748004388182144520946134370709342436303831805805953681566158767640010668172398304703604616794731344963391453631923134086552862353121699342182584966642364359035740940282107083794138554135916858962808830458969095789489702111485164913170041049697978114602110840992632076031452496138877461317032598085683929387581312892874748651840154617367758227426838523265801258824801994298689472409361288154980119041933501249551975817320128728230621781626775182293156441208458636475148814337822714882589628726351505849846862888956914344462532607601029004194750297805055567527446995482392694057777111897364742751222372667938850387984893022815803444299056800603089818173731927801379779232256246056796110704194291945589807664032700746218641542225122190504583465172179605071678569078566575650540856149269585571952836613587518584643946791837006912615656520821464329191812253547223062596118668376536936713455767277035003170597708383917760378874525385196565830046364110743988262052825586431620356439983517179598568003062672024973375731792359385275588875233610730693341308356204450659492919846160090433720181331632975324672626799806167107310876269007548405070265652305620776109652047261783927131165944223579188853411898951963845382070306635606087536581640220890876906051118030478499393939097825333773855412763855328527306916930281720916452871181858415132566015333037229615837247652494746012778410774959436925698554320245400141012952635433191263593334142595003308965161532456055057775895907331683041698253793383664746140676297996679155281118987484857939868770581879428828568681676577090317975377121990517519114307026229410956401314755734995768012910158647825211686782567639525355241177958368357442093692669306737019361669934239571271104119149037342468129678401487824124099196713109603723187206630594465625223599539645578122506083629988340346728922800788232524877866674957627567245029419531570512844491053805461356267328004776518109754437206868881042302871134847197293956631454313146853314048564434404154528107805418544387076706052284486043128140727226483795908526758628873624066347287372856574050234346754020970992557090865265368306542279882073057497061456631794583438016334470591789801929292332229252134050124523511051455218634346211171724174676374969510467325450527233811610103117784625408050260545115534614370961875623721015792177739470860020603970678871191913955864322442547295961950251760171599136271282649159592234272227082162216890263707700228231813739743742509230400329113461003781693335816108876250611833235601636594301739016817781894391548561188093103046174645136698761541960166611738551447324187290437435556110143713705928069220539489068868499567586602453551640331993302713309365563145854825638408131440696999174335769418875383025823661936178387178648503298993954537910711558413415388013071450900992115210502725371021153851368534500142135538204300630696674895373809658376667876081558810861102225891937103658432172717430131919292333995576695695015287022110648769294172086303543917401490913892642128416790093540364221889399899364666760039027158419684441663765589903166539245043100926992478443329451912822115032494294061183729786782096390159551791042930530765381026163979471703859772681910440234952463062034569627591783650495334461519857175534222419956310574137142257254264021255913075024072711560546750812521236418458976696998418238120167144653865243897025230991831995278815029691435709466203420471890221898904580895489136897945462025009167315982860200038561561052074751620907960008630854496892860051238057210318003309502722370122767997221088786692188455229175562255964206916652960388815800484028328393231305992746270895562429673844311166111401533718283872415111425991711422258085262067658647481827206444419242019598611896658476812545290354659419355016798538340251119080873159976253712056725260543207713343301063644851582148463949653023522597761235341833306422048734826934811855362281814115123055515491117445932785547729772975966239661261119183500380549836509147808647150057825295907918287861871550002484487531312000416853908429878263470858071120361581852549845365687668565052735389493406928536669120599988128164601243614563320242520117677315614563848763284221317187400858591752594458444986197806423295841010255469768705758682816761373843477244212037094750400114202640867281759101411356948053741123768226045361154981053468120254299719267218023110080609304154303980210739980242494798402194019861390725258604699470347872973854576659663799966418061389117869956642530328806315032141441294434466600504319338047320073945655533826599098740001365700509599533821638942203947793255553847509958259873573559591375489756548463854101820316628711038006882403329018540307148153414328104270214220448342770543023674210988367118678053807866872969074499076117548915433854316404818970839828687119651282648791034141406909627350317841124703296049672920654603972750240410886522818339282691819995740399325747269660162540080541635426870648500727852696900672456565211914052917146265281704906926943041884244023141656443925822870910025822851887398029411155411589159641088633363268084688299693082050953032872033054140669909331347044510794431929188003791163400646583520143095682905236588143883822496563949769925121200221813859088823042121466229797854406059187992508419815529829514930727496431988189598252845981318391381244954876497248851152600513108489766325700788278723019379888271236155454788256052253559159161283275328608933048720454544715895315541668707822654383112655739733044500383214745251842075187306798582713598928822719411167139754103320531426699132895191040257872087036192060072138638714182028775924024230985646112914688760513075442359569859644243538781489973829976324113670558052130120205124717862516885465786239833717408079330885822231866464673766980044710859580729877717535684627171587422656901457771711962497761524073575848298348963573944122069325993296212614479054385252422380500380729785049422264708499610958187146675767760838094959481306530700109169500384811330998827515362128180629103347244659447579801754252082973335489034117038833878480373789659527447436536383806302301060076904580061380590132244252195036576000143056843514736817603621904658908002239753005988105299886179206654961041477889670757556882254597328983125342089139473763391538799266518263023634415600444060801547961896221652336263241213964473064338792283304954342627314976806406601155863208750122831403763561757652561858067128459610371400814798463281731657591383555366138882872600867421363152202126673586424333257496230163758724349800855981992869622919909380905335958186872080768256951604142263220498137562470431386971650797245487655413856280553767723110503358379210173418376336109510368553760313549829623465867403828627500291827310648698874524327863646496072399775346023771018536887056176229937892213703168449593217156902509281159895889728886761607334274308929483001526471915141123454453263937767664927196706937371491663004884491198420484346423339377195242267254535202089443579205579291085001617652663347193666050619871646308378432593445031791094766487726839528850255652745653730873933326430341168537120438602475886970269949919802005808899313620356593878406559883450910279739559270103749775282606066454982108403376855228818785978511367864784515150412052972657343259760874063961750734910015803738945614919784603541224818117367173520162368709798496644477340941477617652148848847079605241904103343066648207310774106936750617195364517469100227865063973295455416864786430678601427444407261964706821631905139928475669495001909873743579899463990028084403882899352958452069552340193251652749114940723270023486706760284827299931083090647675417569519278705194138227007825043925513491196984592174649904754428430398386151276534470289079943697529554732875171606187965657748576715160655764273663117860073840626226294628024517213855024288427476638311423549855280693725513546715469138270610065121068860713567421886830955509706250635305488477717571712144543476736978343624150212854958368656124593705485260530851796982863688223856451242612213019514365021647818635806319011445364105027507218574024568439778622629814572371074292995231302346947609646484507748447007384742270600589111681742092884249213317258649044927061734246514935877827367476549478162238746448522641465785104273183340389076381324733989971507660377463074420989394183952197474555474441654519965147977615366408589866086061773992447932126683610635678048971252080292912581647226365014404265745432970185200391400640080602800009999461479235744533720969062390817607306667771336823541658884705558904033993391923675602319707105281443652800000254442357652045978414812114532011419319578571623706907258265464012921912821440949111501282790519678121823437056505334383013945385038053533660373285838181262305690848955272554536772053977272503056062663769278676610714499145094798416465169645424608466201213681230558731509332452012192374092427623876177368597117904994172746146916820991035963864493601717829925468469662344433923973943786535484826995859667783530676987022790484093822376825251559865819245770368145539443751162280134182821568526491330206936025667696967118525425100832497851128030947755883419443622588911017272529788446458460970694845614502666352380953816601731296723995777040530443115547447369212076085407766437924761771547063596920431221307758558717112611208078252742696036329009442978633680253749856516915197767056250068514925399681088794509559570042921253256051940510739251394264579899074770772489417565200793286759974270660359851649722318637739958466813773555986596614807013158511208212747609507970741055224231410774223284426606256000706326420712842472674148563055035495664339106198153082444082454274167223226689745538862792230930533027345021950193460335865262676033699775322218055232390370146013287868508027817859188732308385619524401936871681905719763183612634111603323393521711105983297469978060377600789891333810687168094043688143716313097841691647251019390389821852168718424047305553982551597038513319313640767829175518431223201035616305915411130257288913127875249116788337808530205783820426129286594427932963769354894306649919646329599672023138462403729897851750234789433782116449093476676275290609490738836141299870078913128353088271518606178008919817916400071870134818075545829919423742395873024068409309633374402116811388809401880733981116889473055851906547078389402765688410382037791226339044030810354740147788900072489784798392968289451542183211256705868328880594148245995150751989870494538303398536492274076778571796320692275546736592243322470367964362738171630923139033331164207753211084652878606907668783560498119937831106574314307699318857755930436835856181642463495607816978310786043943488286159181399597338012270281586545338903499988161552885359342336257179818250682578365569372842712397995335855360835904856896212169582715984673864895583610380224450172163753355248830033080244790975795509016913380758804201347967304225277383305731261706463658417892123422265315316071899602072142115730273380289611294886073250830298409043994399043207590289268740717577047421687193481137739663818297225535397283110807124408384372446449054980381341387186013235275542612542092159619621614165002144293945881245975895827065547843292314042510291749568346618391498706013094842041623839739728014183881637266476822461519977254232296954103029358196757430015275479792345073967493555163683588098041044709021093445640795636569487135425613223807381957923143557889640510946961456796326725280941827521070141123823574264945908145875993582446687626422899588907674940599351983247688763530191943120505945310851364947424621469489803434289412808428950598775449581899038041755222104973475045253058944288196404864476404496485199241575614306690712276592407987592203992458377817715222231970912530161521934555513858967669066375015809224294749923232301278911356897892477384581539612999710955566397618607136206697331794023064510350737444482006182754769820120855424965386137979128418657913122857380280920944794141224305321343659985807368930845322785948613343137312517899217928824695395899069997816816460062657572151703846563279206258682438475939270263797818693045687278838263342432118975865412496092306357161116696843099435650898655224830505526273252051731535175897902903133269626406315520744438012042209994200995697136418240346397988981346519676331318672033642695423487292954902547418892048695766656283512218137905169226170897335592494286989456244808445900864894892314518220878856699944623021173059259788389147464169486170548654491135664100078850969329015907018607950814831979309308629234278549548710498903989064463842971413269026674721368336399447184082801803330467619455440369265210157185997563791400343577806022967144168456925435686824285798885272376254238766771934022916319319720148124724268359093746525684066754926319285726177939734627120998997956857518674072270765323259347202633166366346676984590008171419073766337167873456952293176682237177308544880468063931453260416949491995958421088136623304429365964481188307120851503056425026746392687051908594223942343721044833466847177236019500235625476463671366671174550269661960666827211408025083182099448622903679079788916436434484872936388701772181841924356597379860990577645953501171108730409698621110213434923690046100653108746060865900128500812511573588773503909886508864250684684136887210312825697810019363714567283193251830352205767966941443715886036604575111909936340155711832969099234795323211627937543274488595069374328168019680207834581559535479243713584645635656395763630873551234193675777503954434542452880883177011373182171177106418148585404111784575711901867625220793471860342925251290588036463384469096946622315592306863414235344084239093455435775166491273779513797230784355146317981772661086096189270314024330619971763151984914789316146426329392926319183768192176934649799589455118273931829157553535122833904164090569300253991972612644409464446638739610891003790009227205628526622394701634701380621507371993888004800066794025317194589770581027708353883257627416754822102106425482170867283822559690738418267353949258543748704964912002099710309645741785576607603426600000572494752541055765044666866151772622245652831135083277859103287709021489776038644870374057639841890072668155749070285069932997191359101884221046092906455914372501347935800677988066315467702981144755371730668882145403157930208955748345076917369408787485857521798611759482679192781157820177043506597145230201804119168674783579572255630547853988578764426945071810582959773001559457511698723264576760190476865452416292046374669958403780625691150598149268963959411152377090220629950261668868659817046471665622597521167910188432927320603061565077345944240948656577383599486933212386542341312596181774132189126440575407552387257953649159308431266862197802292578264042954528039225443700579032610403575269377058318702306128358888355214014067723943905751798035260219518590977247383303496199975175884277460627727168640817603944033459320055103657497351786347600961030292842475656852000059737078099016356875110560213062918919151166073266870788458888278236326459664064094765269631855386780108905734450297656037260908659753973395692611429106747010493704658848429229842491388998108419747179491542899977790546087982173822963111289246065583076185905487047148055756707753916568683361252113901756152326119576008247942505013645783029459583027616286180570793822669646898081449508353496777727976751840070728616658421828798897169636073283767703706477878397126397677216630790283387031994704530202358824159942806342694226426517348829339005531362087879821337503930642139970141571590310233919586267481775166903105014115832116701389153277198051337702206710377359342702965368641965636926070886674552017687223518059646742223278255543232723751222819871550578433361305422308472486841359844261100713638545825386649635980237186953330773783639704294131894981775994785175439901802107674188336368607606173042401665841829830233311548158813427744937518069669506810620966698184031513483706301987958833465937670723757051430996175516091339275606008759139150960457730255213139561863576235703174748408871762784806584446384983006207908830534316663085387332569302048035928044581042430214412127796319602457944802922152335153866502501559593700996147158312336095574478931828748962594483024059066668872916354478317841816142301454034728199181596329714296646572034919807026529381791224291449527879255015427405046085969758571778424234397227186450193244558263073107906793092409516275123764335628155856308261192059065686032478027718061023163719938655088294596278796304791117427818658982665458197944875306893197706508257334028481347634322957554601007310374958015869305304665502670389161830680837790872424544873654628188380627195422690128610840526997076756393310129346991966793164246867084551485024116300955934064094164423293607442328255258634495107385024663523226218782745453150199042708657479074984888527646704437067419153594814346017411605249490569495565097144120992921436983293325337139509176038879595807652954803272653862266065970724299416760751045423131245928524035140627503934576214202073180980446808874473736796285695539190642711874393392449221349219565370617479618954543610220745906814012155182583346559944874806795480179235050759977889536874141197627583221495583962733609237223358458134957416364495775509364079645605020102031599999247868444397003176879114354140491087441099323248474929810562448492273099238909260872067152885549732469425764851210430707412843287934796653291269635421842149530224636997107486987622075468388370181074142681730182610419968521122380187286191661195058797677932792024714206500997692432699511943273779842554341604390297354391824912564016138605584253893636527623781031260897926419018531058780056067739875541499258863237572075239499187203819646062138494560963289374866667225949406480609626611442446501212479410839880576796092042080837745769908409527799804713397033930530064520039247862928788134939388767607181235233771082054754035547578947390657563806715712938672986997045320941148904778677326214390227315131986957013902368863383462653622179918425653130892195370894683445245561599081626620003178203523517718734746406822298229290145062487270515769772325797202163516800460845751832266534513818889282270946005307698875464441389549929873421342665802447761930535108990619604619446577871019751590927034103941290935732885153857689922051512297787723341555291212943784264283503895952814229062235397834956960482841063744661430439134624855390664213791732171398325437158583753962744211374707259459570239069549935932399656561822724996205922786152528258944833901914437246483428501884108929223951663965516311297862506754699190740628825055333045464495995954695927099092887017385449778384311247089905291960628981135428257414909291045139041638316903219222293596921183708103106986383099113358233627886066259860341866149658567599884137426074323546814845264189946585406550352778600694187741757249852331863927047872660234849192425626639496272205158747775412364118272273413530865721547577971800612631535933600756687131447478408265644371876439316185731928388105119520706088214027596030641744671840697245163919732264042307657473732549613361865970123597664581135257537472635400774756453075867772740810440184682378285813973568315763347753840394435199074096397602794874072437644379748586412112084148244326121858575937096160682952589306643199337383265352072858895475986374710381497676840249359986396908247229327348014944925742421625296014531275524785673039478383773169713143762793205891761919534664463259995696842987683397161768160256695841877086575325636751927749374742527259857891228188317138089797245641068276084626496662235270993364294574002693030596324770016531061906044030510776126815663993405350164930470645038073177992191840797981750439876864732896591014997331445869336947745419160519467460582312644262201584963958093509101846591322004377186849037810658788356883511806074084712567951771419542481774353026834494046561178735243610124362988248604556319459144222330527672739462322295255290681443099900429671556027208825352024299972387446725372976803279947056045175829793474640014374852461233138380886888246406551748812281119859270534732909329592228568798041743527644280527619526800500736918243610163614986348521553860114470261751727205450309288697946394666016115547080568731569821430108711198101343549327157676443312636405426926990702187081290121771557194156341523122506795911852549717027155280744984032834314772435011893585141404640819322132914447653230605623378929297035238306947433852771597244372713584764571414370396507383809535495130816172024867910084089501796000601127080067578977111079695132820526148953066916906196510977701688477179534602220634756683485483435647009739237667841984382641200284366939030138394538159231316246448365860791071064347795337348020579603968323697358940922131536780763124134228473742441603383966972231399281706511054451619079728718646074423973709000674015818619906262790927383465833749742320754185301609819348579506709161948153363201681514910782339827144618611495848645640968834829069995272407150943730437856032152451714097407159378854995643904393191400163435034074132432767966609347687926312803258108397655952329024317493562280646131301784853888239426419318688469783996093845777421916819162825294595406987963756986179244485329561864563313306813688445576901865904219054187252480066898420326896860657451558411014729874042124127766294927449616917901011951394838875457450168366265036444628290895451827687000419690662186621908757038590545080567909742141309128156956256921068821122497425592797335210531091380413839854112377696570544992923457033480901233325058288262595196737546173624444991809206520989857137737925273264560358241506235245766640699603367887992897996134594220672499821742310168362364830631605321367980277748693245164521163771107904438177030057642712711870195101136861513883776593238469978305166961547090251210142310742856568324278944103615312953318168428339215382959203930599863836356007231208695342418334387468203819723097822116755022983164757451729668085432556024338980792559434004752513617144715876044948116467567988543823916415625783565239448312467654029747743297720183816269678514697837531194496509942904059017913437957557341481479692746162020983245938251077949062432812943311456327817816781325946535849819857957621955816362128051645171632653974715445598047871605159670418583455137255367357713425882746863741808757968863556266192858881984565606775425741295175581926903110511283927699938150646267473779617488693777084870550670107327625825091165497445595531750681794761852368001190814091170494538493909634198594366220480913429142958182284996058268111352888219640285321830156741103634864045848982601991449703652388114453832609385237666499802053213313501531171211797894793052952706275335797664414589944415227313588277807233290789086522042062061255729123174161899033651292872610853820578402542499693157148247351595773662113464711850211064418766024580278943350892436061436982399633991296638362895440544501924903753007479309061257821378519750414140228742800251056925879359565052946193567056435398294304921405864969494208751586665191601902749500871547531430840464609737492647948918066634228491027289256273496467747803318752707972560737958877437101150366141252382680525191023399329570082992262203790195917363722033312617212010029421748920497997357393420817471797003867189113895108449152638991460157830490505121724454320403036466247412909114287445077487527638152963388845610230505716372090551938687487177363843914697145206980630129322593140379107063290240584350199521565993705746425841777914133213408311528091507336621525251199256361374992188304647951218134488911579576987772017277152409521510307283029827668861429846743895692173778151427924466510878634395240401044464335450750126370056214195298688207525963162546389603445724802356518158157909717970800562532181704437539598818263723649476472898010689692667489764583555333772082037969898220329570778033048902108662812897271886193672782875485355532386109494361505899749262475761195141954576756002452523332469497013479271250681423883812344290034951004810884250715804177486098813178386625572853423456968931972142718491413533094490008651207260205797981436972803215073417687613900856800075164312762121053867435442315519269782008269130495715043646290204941621259556530669922659435372717143599470996784243561668642118505181589421157022070826535901042832329725532559921970556720920699237623175008317961077724409265397770642693711641853123535728773342950358278415941701367230132544393296346418785474443002551812502481233349528609298531395196250953562544168615715015370679079904543937043872284237945480611199313648380141896435988027483533060706908844212461188725723579254680484787130378815927856993922952724558044326875868073892935904260474589728046493126278197703841328853161892879548064324699849682295237869022296221180393250442567578215887806230253846747110836183401030524015934054680367159624422894174065176059819982650573480130420805680006370882824961875538443054506985062396178083957094482234375978675626385315673642716895340799073443413353523742763579941537282742304283177065911269863250731490214670333029447292390047222168666909149829932485659438982656235029632387720683756989738839504539178422511327582761356146271086237987237427025836317467760958730991594476214954473589989947207805626059756864713574769015869426990949736367333733052071416883378737155804575377825051176431837349329762312910267556071773226278439824594186420015471403269024718583708908570708525706682717988140685765891779788298342146229922668684138214188943964842103659267531654809600430707331921100404935926647875138388030708615865183082998592761002039581681556042733305433280620914047149215543994233316582085873455975360892658695180242748515792113768063571020567212525873027897494089208371499780085929036314034130613893955722359193263896367789967021891349666492854575808203333725110358479157943046719305566341233156341878349177877558663609981685360863331204231216544004409849424407375060679259222165262272040375245620321604166764089369410710517883239422153283539943120661607504227258167826207474277424522530387985337186961249626438751854776781947361934217245224261932282449004304127671636429375902887908562685981602725097386521411216756266349108390713556633583709856791979047129478632046184240027618358205883960818839683618787819147623243105528744564937673305544413547433314099959844504836147970398199720991606235190238749799182228720883350202438670829274312492765759002959234143085170661322830233901212275495605740577910277185733105682487869638871184946562903865902267630571002694099270929312193707428011081594829717514358020059021739310605831042414747745415233100085266527379790098794080907229254921196809460280537816827492935426569317072504840244262739592237177494837997564697016224733582994201292186059192201324988229883064198225069808126668691056822131262227195307169309587756490795563746001495176938334043919285103540819271229650466492633635323673998860121613616179607685243099585731548173259049005538492267834483928793092991642803489668487981520808960035683769553082667144225123368767049249962587660628385179811298304450610321570461901801054787992548618448911826777704063832739625530028303256020932069294160057157304152791829587241606148780886863981556757230468143198518375763658360706919706007639840360706451310647538225944211058020941902755842104481731452176191418618694609365926088345100993143688952522280398512816683523205060234626436276321278438572333646750384076639751707984695876992995300508160958591646586037922364737695869595843504300862964984961549176320093087544685616171793997400039385431280270143068296994525438256214445739618504330367904532316299588825142162343813329644411928634955599308752891052341712113862694766837109258476560321286811186085428804191629750439872262905262723646801284042904346521237045463480935722659536039422589471097821882595460619951672601119120285954777625968402488207738620793443185639279204018792786702989836708616903420273652884677199936441265106469253120026886119528169109088691640239011839387700505820688661774476460708995780932777691143449760658037613926644630479566175276865021817064123905413930820166199841485552250267281256475997880940800918513645013220342726651651057306515121953186366393651422441922587394222588788406981164083602986977172252331546067558634930439008172765365385598616682129938060108452199257567328575405737414812258955505978952450011887686335030493965705434899711995126236521443038193769663163204604961275524864743606365041216313866062628799518115958551788597538071848578136616525279614789504649455938034701141487184976657766214068750857269109396231421381020099633745540684735447046570523927917929287729738974772438994616375235446408645665144474581728643224716142135987962545859840509457977460274332038680786259922866861826807912425016146825040116852297082909909309184692437533167908993987921690259588634139035318898947107740295938954132302906835161160761010180990229451995406301656687979063733609437784801896134938464878609074807870741915737564530592999524782435878224301142555392701159986901503940266719274657776290600651263229249803813481336656043131327596550749685796860471089985509213357714871955422625334207887518832267487398909347001338581413348420169314787371660282532419918054840385327533608838582523040876372703802439268217422650564978068464317600996018290547610803774889143534129720354977221362850703486922436744238624307633930843074315587178556869383423889638879077342089836930942978719562897574389371421254037935381667204874917247392318663258337628260386198464176281494146182474375127859051160978396866606562283862236839258235868778957834109930580560867797434603420097623797616931439941812617033176806889892898814548923395538341962463374011052190971496952044850875719129534303389559486940509397815002116015541971028306470064038345950244073855457589789374664776835511115720068590246866851941836661238011359297228285604765297721937820381998380256081512409297554911223297344439979321724997053518096213161772858858721727154250480121246394801877175411254142940234080092834053949010303647400862252037289940141310479972634849135703669483694566930272723524065168268975824832658509270659282660090463769260488828425482187377528927291277750162133466711650742526555172036219690685272426102250722240485913261066157515511004019628923984100113215100993761224980602543836167817736207727404332976405481687016040644249943263210907209170516845210010043574742038872596442741586140941316890866859287122169121354228217964525637500941811403600320824487949425711567198862752960565877912162666750711656668573184195640288477369352738813139923803875874010985816652827178863159351685863706519805943165390429745698128350885059312762739292357440366309296911915322740291528364913834663274190534876045774718455486183686551659867123190249241086144603539791224234741685429582062280170011215540494591353879465574012334605643211521923889943907729641108589677503012046064290249462637093327121284815100709869349274493771241363812763614897758923332716286219876126624492863856739496451031324334836909188021185751685963680556920555878324123705116801699584118486970790856126816667199359890193445971771561584652166364588060008993544272325749969340569716909857553010488763064256696226595532869474561907243510109334139906551846095420567825295578554779431308712677924346998045205395859965655565098640523900415908578990999975179823907043003953355569684577978777589428559292693566543893973813538678803696080507353729738684871198710998118150924421014007447345500804135455105441567928061378909974834790198328437619518731334732647259713826263915512562140943266133198382500463554197602043408833580058399769302246006692004287700352319749447745646128534782946609173552315746090957306446936948911932818029994994421621769764152708007092940184083199567117417606822872377329177568621538117665081136293759806674799472268386425839178257914766265465406815090806901858307759120776028759500178918955003402489144397956758514576563142899912705216121218032301720147922554478332556598743643606593616064469258025938378054043182544267968230953611781664135593977889433217273588801495695628459939289864740120334906262989652640599621140539109432519621435569995377635816321875954067816528907377403700594290089380174916725667912615145188434798773593189211944515368737075065621422282213921660885116691534110189138813130622682329332337228152885295047144541058868636586354719751264283241770794372414991942066521258536393194229888060362844086249192213426372878622806194284721092864832575114141400761605448194186100868583991979559025285949953183688396441954699858206643682327471812720918160575647082200806565091573303055369255124691956580230915705505966691210513207084403866094928473149210756407588144258377499762541052531577142865657212688256466144684313876945921661034783088967456528915795540139815718181769944175838836053837817947617799528919754876268802375245386107365791080821630069811204527161326469053300437308551987702530708787390053935095578675755885320750550074653844206330025220665223094954010587865520462947708508428161792443824402850707618664434916972606476154547783325421792292647650872334709621528027268996569096329553485634877601784023651824907903353544822795750854267498651553294657000751016832585545489556745006885778020134266476520951561658557604930904979101036119995290313992034437057745934882373143706543750935906024019838045921283428741768617321480985275207767715646610042806332121134852254101620070175832863234366098308081337826882304294537291104079460171542443087881138163959120006228546311172648405633812726648184050735260554436041499847267807969920612181481405830602099374610119835263790349299110739290302751727589216812265183415848787137538962965242245224998544337383378140514401854320485971043106165446656650045584745466718685164606921245247678597331681883209381084458242152709553691458193898117960318115466346739283737065729515880803135100752219105082088265272420492111100503420071009270102196166439416903958159015551989398728011569921303092874576483953275472672652935483509401481637057705847455296376292938618282312493363184012576071568421276489941636480750666069768658457274626503207906699754430434558587858344429794298646624640195668264176616437569662649648531099270314155824421611912538658442474364823911321833778043509555228129724223358296614025147356578401467646683918714474212778698520633438002919787175703537548455995901211767345899519785778210068556435543839908941311824801260687335444287290203446392028976381376242224237582180331932279447936961519572555972101111874876910133484960524697243046114683315140857400129339207035280812389315825488740005306075240923690003764444108502246577888339287947680960036393966621887542128914960746101208798560530172780405289258151855152087124094333759528679110767486979049022205043804631946628419206904667939899585341446448749016848536285370880312452085400115437005000053981660215976361261547114173618416452353388037858692918465396678268120086018337228646756586764514967107316152049860360133297465271032049475980161690781003557288014571686952281320556818375828100690849805236911857532875006130125713843961844575704350228173235146634437171661033356600564161444177267410545259502091695416765615249705676942024176693982065231711559764092997063130497994950895625229930925761549295240042408210304914200447510466842950868297407311129968495849900680462330749342505613746781652947153219041329678052922257737732119874645020628271897957710831228557330503029198535205926519801167250074998302727592632566441208702138737661577234327098935572615099430977413617964181747848518665663867054472952267455489136518432763009973458522169398069227858160073686655237362111933561132525546099956934704568027241669233311090535510176677038125191779646295222885804088660622677528256626675133290123926001989471267747587482131057501524621056794097946564861250550908601354329326971102613387833389077419833841222516978906233533894505866112354137827584359682511553934967010927495867882589944812831986493908270584138502711315193180257030916686567743135983281946014471168373028643644343652092948920702249202714549325875784517226580525686061279227308397141338469980813358531362847446941806675475695499951844075398717469496317287340429118502820428286717300561313809666114309793538690528214797279264666361347556532518877371861380565098113366705369473871650779912942560170453766905071465610166579387390835020677888872095050543529419071152857625222466751288142155267558737179357239138138687470979515981098444264752149765139175109302448980380568688197115736294043001021302056957612888466133564262593190294098202761311091562546260495004684555061304445357058888098638535393754729421072823300945681612662966524846181670688590471843067389694867418777560797334470812070202589067938711688292225826754215890397701553610890139224216532742552619650213923555776562245314932796126238028221637387290151395028985438175995970598513691932041390621859649767900475462179735306586539221284677230172105520219752398062971138249893292092705861335546831139600499805293356118467699890196702052314780839895519367947399212296615031973032343982535168936331036426328596598266489864067379231879025331070873551298753713179021549038652061627916298974875559537655863475418998706215377823463985161740632619544379581394554564008189439565804701741658187541282093066874416656255530538787320116719042315808833555576794886083072281575815658405930793877117115283444250462341823840921552096189662612050615163539614693807229988165440193846013372926311634874072047648578365322858034238411928785000312856651760102735866231985428254004061596338874686604688871724543591212915255422997826589119579903648895874235492497503408887693247478365962060398072860504438577788377554879113913718979299285195421418093050049314749561693133920699677477656878800757054366836352989448852935529420557251814076768960053173756928463295329247981187764214593184530067448274038165618960547733351653614726579101155738713226384881283969138073998007649930822090660143179079837621838030093744997131300479303008813220077239954845728761488322182265697541579427294423849041760695089478020937759604599916469431627348220997090187160471977675120626677869394194122452315945019587176328795659306678350963853126485636309339365807843925724969293662634605199134857887637566946576056796704241554718583306133426961402824187310099432197760013282404586644443768799831873274628364163814330534881950508631962668549588529937030538791532980511948138762868451698499266123543008473496101853561320832826296873981041220526078696124304736520122425156292502665559946077394659561570384949160641808134478234767452355461660647611670435687209948929403827607827601105435925959424534848493216577792584022336747961325179367557463887824912980951570984431165497112349077060586257323363271028214507856150527937848868119139409867654095057953835832847876409946904387015349036336624680436969685752959995455580421580197633032947457285463522791235265153423082018726961899033459881133589328967795875914924825018082788627744241340713746426223026898149503497865790635822444033582600222495041158203876425122319027494827305086274347239372321975360771988713147673040686327681015867555882103724788666949840730539819619646348189647989314361254516903059453449594818139095948650818864716549873973262146500086328778579448189460282096376407450229575324882777503026980797992011768508760937729999042883184224162109063409148112481012579329143884148864809481317140654738825191297142330720606117355621551556144423269203939308638285864626036922931387660754044024018078562955896497607223196533340971631400040889221529467468805775814726571781854162532060138832251492487606921045543312796490283868756909810206125981771644959567988382842299126776710665615858151337775162414936802639941716964792319184450670596199646844825256273323066639640707922035016701164463383383844651020299424095035560621130621583041119028893280616326497567892344157392957115587094610814833204477621304445801470936014055854115863258268614158663497278515384436448147533895250538334276292567270036862357596634380318846258003886882216025618847765809730468899460110157787122478986116238167052222752408484363365912004231161124354568434334657918453423689715403956762825652105496747335545448795452097660488250578076766530733025273736021313543715455010512058957056575751982162677415077994551851260228840865946371549259327877144920046585186808373843112641266280286764120180670360867125970499045866172441988710607294279182178935357444482686100760357662103613767544329252217273403890854655515105095159835844164211630113842948971650822722716246526127819557854060891427384111755065248753885193539290060559620089232695522717922018037660792626119015066241962662416605148588068167013600102319213126940847216237681656588560022337827931781567573155548536133533280974292293947479033368447676435999426029468793545443415563832751363968508621158851874452331186469710924319950088510489190332634768708688121210414507429056704341089268498361401443250126364653777048231195082519640361777204120630827179416324170911747959047699248587829017294845512881100412135049767971131266206480986227560718652204724547763121264980441614160713585478927512933034264058491350552777825836932113793680272111900748887021273650785366766179461659884938114123917592890289421116379272743355057588798142858622974149572646010313425512172459378275829311655726343978357095433795682969408134164244833753452231224745439336440025931515249538374312123710587436021788262526708518515879615973960709286640693569619139749597195594911278499225487883851260376938856893778917889019785652115308421338150128904906729115443976508518995270750275380223871414821160849093862439332630889053727327060667097019199699670119002104967190689294327329250529364742841505932747192820568867077955738664313092600481256811949112278242752143156735330276721155337542255087277916978072982176599781068789061990291706564185377979787799024765205045212856724881595265176876593473822365440518474589032085402820008804175478639738925500297004149502747289107580827078381274095825336092074004451204402909983053358142597740527097320350751928130509282124278907425554013298374361866254376286214167946129190502413607958420312704654881190275550833555719574751068571971803344524313098706045618100202211958490523438676389517855738740491003570112803475164170199236315196079366022593944959121381144315451698671601024409902261880547719313187463604135130068322852139464329115671172901347804556179287534519654348127439093839914168534375933826070168220775086168381851642822848853899826314673043278867825681347130729873364732022349056672559777547655860110504687687975328806807124322457002395160528023420973364454782884989521776694937341894005098883352674495483624393614235422805030472659833995182702927477409085132729392615394309611272100951900859605938959008249122004213924027315309046140967362068236603931231223905828496981610312372171207104240320679347648956072446318414443354237751999186048689899187508648874936600819042781172148252252658710067701492696070436898586687549538811813479647368317228114399639760150811223918300590840801442655070161658578065757107796405592203792049331430814274824589149741584199456606982944222265717631731946370471969435084421215870697461044874400859414763975381565061529949452861448630317012841105828949322766449735144455070655609896045394817467844530414378404280676901593528959742495793053774422775869876636135000015063787202911224923371128476284196591727848879828933210235430200533053028908725104828104873666140332552328865348113879360071866850551028753649136434664621099405684231983836921140668123677964577696600255024212457113456531644724224033841520456110437064551937184655546736335254478112279879343663325626996661012154830425729798770054801890936577974212836065989487143800673448442634229241616833226836252907405194868625195845393031921567677478121271213195896225704227262869539413228957774188073370618470039194503362206019883493293038586261001644631066552494360653316424499597994995958013540909118107258040702538413300391185298578347408344168429989763455094442072001472493252641600178865244635867746578873108121679510763984095859053875327710543856799189291067332052744398076921478903871800283696909688901516568301138322044855243845829426275003664304235789292894822500655222084728798365493092222666130155358649206684265882254002363498632159701267359022496214933418203776897479114467382779774446624830331742249830546104003158636253142372002521524421104417233566314845820409285781118168502101863973023501493902071052872841083518170332215235203886263001888943356191079322696961707099634667816917002888425258279143039344872158872312057954141969692001883210531784515551156798110939853191490941763536910976270549976274708585227971297178548966127723827670895579860594508120781478728373626853318199422557839734677833374820524383953570589188885017533938861937297081850949129374713061232469383115797678930956235020371590683555101571249950227778710776208537609170468511268405958996135967769313981272870757406122831857198349551429997733853619040628153853619472676816077146425811906519206487460044253855322370635204608758454860994123824551407598762462317789051854942211754475533148943575179735045669015856646186815061853801482078985933088589545047621835408439426977359027100661699840077842418481682563186140199365218782296278916190556472777204946547883437011192714132970204785528322288156472727073366207026546454630932742240061279372535146529893987299402803049898005850534030509863563558414142544060028651667917561700411781580668858663323447760818161353552657024387372234151123041864342398008613404323333660604402105401333329270241079102070286397239535561490042644346481122452591637797585932108820951259775122636991360890272739747412658469186670006252138992712451082262026615811805886418939038951650607718199329557132012758830625547256191585995422266040086303274772037413597724975588579041786592327525799454576740062236013147073917356572407173456218903927487107935789862219239395959629922996690789696841932560205523087289083332280079824140568721495737761159283598110152946582617859436526867338848745284350214231373724595531310576614322868150298170023915525964628120669114950051516408088771630081268949608164327981083102228203062388660412693210718006532280476135520146968245961754394852948610752542626684873028078515474886742577642922630930383973469648152919355070789296104312183248714783266160374617376593495688715084097922353501169553432195697708725693683359150518802912237678158553682939463581040396677676526221787838024864783931089166794856140620777486304250926641323628877936942452939262152112836404898939505562737190797021160074471023760394348044751388638289526291420622484026324338012810849017629307874005215500227824355972728282278388123115292672797627461751082538708287227464516074083615198267305681581705033736557635282601829120690860111179867766117528585526630923748469626909349102980865307565758432713297673134627456827629273892419526836204566817942319422655951079342481404534715004145572496672611970516459677252825755052608449669633797352577055732769496625729098434496842377837703159716389592132699086909260268074867495031602883193527039778886969084081710795884278475776098690179121478002612912126838027346961704206137431021684291399465500895417501789572720533926471875956134872052400137001066791265010347217181896992382383157212904318774340072876799019530712217317755713936238991328538400719058088749062835796675006610975954256193318804778121579644043243170369426002015078206584079656076839814938286994110166799032598695684120093226339677571867946525347474328190440356036749359113107813290402135615402574984185171191799552592887448239916372533524236871129759749100389053031227320358036700500575366692046416511961952594576735465621026187541819139875177678884448480307159627665015274640021123931909407536743754965041575806971577139953490431205894030425525224912251810563882741266642763906579950975917872733427233018056287847401023581206504668055085494206371660075780996882996833533514834692041161512183454979418706946758534243026164097021685511014558129736675232454509269420115536381277350024939790163226505665785605519083481006986644630838390570706015116136770652755332847549305550794978295831960081074550968619135802987205970230351406890201058292138969393689864429699472579018265013944294561574260713906493160638286597811786467207389889434432418707714003155166424431180717598696997730827692276477145739942564604588870932013844190788734204921340623345363558068578462775470896583526511191237750142310807926367447864644550020896870910121699920052452368823439971201363326123453179030347349443699594685971776514847444519260240886481119206269204627049065057677601930461165159754375768939708311292381551922515582447601235617593238143995261735954498414002280502705994852763688543662924421449818526708437184540279138715699887454890806777503605397045975211697295219656347134096389062023842553173041727323135827844895106893731230788949058769586135149001837953924256797741637391734788475648414817588182015707694408209934194659763758715948402197326360273992668738148022658023937704285700752909651918817853825944449836239458880608531014716092072878824248872655379723720598851384885888469608372901530803903703216916493831998168263013020462634790160170037852396177202548477988784778204473840866705030756241483430566630429026870130645903920521271032999845512435481510696051920106259295524982732985653588317530568774098817149710055795572216084981255056185307391604958103212186799842838101607069405058936697777876738005465708591194507277460599527315897998873883629367929375852411280966141583938280048510976482387027894025794663719599422959591118776470573311090901402459203015596347259185670795305067521937329155141312983800998171945549143999881001618457902148509793331765049520132452780768469075900554712472230863814082276221650567373458517400862832062764261809704306336682782267850515618940364952149736732303804258826878090640072302297083136550115214745490484572614424389135300119273804682197699582978999607127297163241295628639616453743414036981720077528559286197811744654393669699506643849542916327780163641640242632944835543047725175833227049705215301977617257894115511080655992487216991703231212926908502792827348513983896607403285025939279672583308305020720940709733894845096473154853562560149791341253626406346950484710823907216316026750390719268172941646918969545677108680970319240646153501783226764853063182087014119786266820853109521992467570535449089112931972213421739157426671215724499974287561524058360772634897310006700260893030325762745565295194898619155134934093144833336057409844123805932263853139609500337352315233941869677459003536286259580204347111754971197954083406925250377821744015587264373896165576005665911993845546497089209867708348997176032757130543879878283323481371804223343891490130676398339660920702291692665896501447293592954782172652274906046987248336453257531870419724590619668399588551599165926398999839560476023908031431699633575152521360455894552271260852923235470777760224822662289296348710618238890284277452365329435635483448933870015143076648420902939801001125098081700011052142195309112081836524229331661125685211749194346279640526272715700781800487169551893051306195376121413140762555385194637000317884213057042085403150161239376726260164354374251323762779626702692451569677029415089605156674051776906561025095725739084874768859478531890360701154937129722496278310102623915392359599127855079634053704782336981650379168979858901780022816825132684447000835559909366237918723385738706463849805169550014444917077232611866025652464862278895601052416959879752388119820782182674783368764022510132751689527874018291022503654117723585060598794761444115540118799213526531133332686258689128772347074207466980597472395913872819397011564628136648367681379883994041422230961160869056191303322058070689915064219454540687408751839107229384092685746423540197800415595515690849507855772109472770844895076358891591373841007563453279145114122047931002865446233863103957054880358930015946240748919168850660045065701161582779610142852697978497273589965155521335414011933525486643171019621015841508014916283919771422363146071968934725627803899798957556357156634672569162281398389864676235664534954306005881236866186875390883534752891775373520886657586871441922152316137672963077601294841478413575838352317862658879416090389072236069703724017838352328751472453442656040934161072106296064400500031217241797495334934789874022469002957762856546014922756428721660533298617692001743488691298278286618553041876040009129091198785058210216230786127941417824950988776390539635582215002892948513876641795644406560289269699287782092255616096182833196063246716694323833635640044562616856461039961393069480985949007609999821416064272242147047815191560506453557202660237285790614593068830524955066458900761900021874394353654977008727060725981591356356398860903700119924029900185573031243457749850772086685534923727095282579513237864069358283204310652703257898285958367546872134562751964472804359623865376305303036355710915001630026510568416082089707634313815870834295148373418566622976719641553012719352706764253676991846243599289085982478811393848230581168292835776176133195697840560625717572905062306632967171016155099596182270646060225075799707858525001458315766243257335106398792670337296860044755240407841881800475940651421642670054007597938939335051625021531622076668036470181298833107544013492632645175640182796758054699655452170330850965416728656492428117089357024688190856431722482790526988343629675021300743045435861711300025565597067836535086472721236194976767829752997420845181407346345266054028043128223470237964609855320629509753801354027620422718768568239615033680663152476695870388329800855172240467525431499390803255553215131599278682392109416080929887741890544891662389604121851115031721837245567048755807888309467205195981596641982745201114385911878455328256466737488910345915795168647256727243770205412110115285579605975117219042296988305642940435140286936252662828716801461712747803530917440685315292343120053803568375109267221409672834334999953990620778483641093251285222775673319579859477789954351413740614846090327797802486805765025279883155635260340806384370900031032264818354951385365960720114206101786836322742567678164756125697521228877508325452996705371932606991909573201106391183537590711206459794175381726135238668073504546166445063026216784303699907606907890079199337065409442585529680795590863865437595980255767059696633154326859546793346815346488476633577456901800154538201301414867387354637508850161506408791919307017984243357649105902058932261630217527748318737838421882118796312653016554972879220850084481859739826747717491509735928237250631810145450426139391847787437261483740694192048185387017274771802756978656428675649735156841505043457488896776781074350948873846410140379577382962078403995019069452409186616735646534027274144940971790459896538512429476054131326455853177161910989496098461801315630853335373972139189636297227620013312742421494905944283096219713559260939698144839788443893966262199274849989121686188829887192365053472850435074347649819757523988236143217156394420567037559880326131526888386623972900440235176931985705130823090828546602313979764799640821875513203785150242169858795566948388722806081124604026997643991019794113779888448901424646029250149534288534999513671759529087402279366667478779280269185712208353116090567535171307105282256335794380374472006174719424360200434009702733168841482195951661975118488792290417675951785834017780718898338589624335683260566275417012692384594425468481451939028090419064372143595006677543914489993258442040994017729857373235711768194761483187250985070293154119593471487934509973996026074757238574034279389374549152158935516769297029309448029063112800928743482277802825350590763726251014509781432465249523514078689088622805594604963759219568596381903044073548551030756751439570540761694760254618748517436098433161042722979374733565390727928440778127907887210058169049305427082653165074778433945567094366910028006255293687714656820425516434395317880052728006273003343438422991350166202415385456236220933306089690749383486256103382718495704252550677942162284217979790082470082343176855076849102480112230117782494979963086828145290212024211806885985613032037843320839164535922596121114366857361113437219849897422948300146372920290894620335813095465433894931931958402225567023273786013648200328231350267766469780815256860189336286408866784950482489847523907537998201874692492813079530391006422032152511881799425602555751827747664555627512208406728483513783371405843412724730195052529739991996338490648207178614908026902778174212085503107381469707894860983080073230530748466248438859234795207808839493721435946582561338648820860549883557294885640094003197672020065040029988480892991674822403245247777171211885647700830698777892918217483789821236485021662424803375577890240898736962428663540514839877139962488205528695357417900979129639374425089241472762494004941072598914448034402141316180780852269419238644967046002011385558259835961293336927069867971769581071889533418926001667781177190195550476288091172689992067877537522854016598313868739683790846066428028032221687472375293758895527033924144352483318893007041617567805566221020251009275846280328663892063302796021834662625554908902044688857512151580070545824894815632120315590858916112043344352791101511673106409763031187328831555810049704600953363495559863957839412596849605603452961641797879935531654524831998687182598639302512895313412613941665263375492754502190468519245769051473262790520893166404724251619077508264120720680547807992533617669668121671717463166641398424083784887677873639026719477081853955453236918915910669696336382911866086431362010594831356247814189850595264553695458654416470239662911895152061553549292010098559597408826086220168079332088881251353772367788235644397185307967062650142538902424804236124534259596085099157188674133572847950790785538345391159646348186742511433602265800910568156544909747557434266386321130171866700786500005850093734595891599785633046542137403586080806928859545281530363303185334565503235684106945425306571432200404051066929272990883172231717671489791276546767033297782078074857568663701439676934460566583367213373615823919049090855578444415795229314504122937056405877234165380967067819923129925729985626366703522937956027925402834674602272601651043874337189391410377614891558616501791564313506947178985478173325432284355567961688057916473155076224902424891863264549823628920038237086001864638932826098358349491920694162709065130331309019247292234861122158610368201609392974590393754955714667596182570618811088809799478347464920370555042373434091530753318980554846694487910714623706021465240398102661652768657991646269576002843561400643268014950519500913329975718697311776113225004256185481006019710693251116540764380853137695567498821087253673659513992655308116048363467615749114312839705423215872073378798224318791846455912963671350683723992729374321748553920042283881449978146635245059540816614564192039312194454035195582091255627568123335318954002083884148692034519415522402347087557475602856693609020211433562647572156939116708138075937408501606861267014139061628356665358136417560116468182754426450676701816824682568964268699360812449536053905806747152982101621853801772068215503435929913044280519682409099169557975281884410878967120078829247024616709850969969809327226265887041883525263876272223743343309509095479269124807966551388930859487264077454161998381961130753227570194630636569054699642115694628319157475509752129264782332332392420615577060831956577436023534974743635398128009069656058272029929560676448550502630539053100081481748087765860301325692290617987773529365370273843141645107296812999291170646899768549780814740627771008031030450316806326786190243138843552501352185622591915311873342659289552844699655619737152949667570780785346434696250886306175456325536603943219757226734711964872769718363514982632899150660931295540530945096320219302710520510815812577584489936031602612749151037818609680257357099918908216233731801412110713892652906149073580456357237394692501908862122905189225151396542611497616599703434113675299510518660709312494305161772540123049957702599691415212760276672951743588887830654944814433224060957374674070970733188668044703514030270714613376268024232165169188288692064682975144920556114585160079783402918827028998679217157071074886482463866865182158292755487453437735676936410592434950621706969170943914058067796824467630766538661406450281284747595594274565703932350003884043329941017032818180797397181468484867231273589049617001810204951318655462732226891284494948431024687019218033219705260365681425083712034189993813241974912606837277677395075103959617886092637955869691393021038633442356488331337991132027927680672646590447585749639789485743892570794415739018624360806968820872860568872502172772105379526694060330269270940859831748298803172164263556668089848191909618365429836641516117440680220380872686114384354477677341602636586445014313606608164547818157055338301122890251486032758850919113659817004941832417226325962043924094607145604142247684605319205815789426715323661005346242394381705090702508533756230720539921274108017430959798424893574516043638694302212969092243542897853169754435759555501916284585464527132532320266385521324149521075884112554906393744522834451501800947649649342148006812905919765070802691848708002174546767022862036733592342915454155969241247691016903366153595119683873797245615367902465209281496928319741639707137017578702906577462989034020875282432982276040049887059903128974913615017912274235330764210610537926462486976539383087788817069813571171621749234730853945598397530659973536339226757519558652595474979275509661286677119234111528007823799553125000584645278513418534360050298684579779341818316002609429938767382908357732071734616594655475156509919610796465316502198384335337085929642450238240533624311081952086780662918042418723134868473402511589965552916730736971135722643652001208799747471697457655984224722475725379284418462607154799135841604602637233116738731931655980003582793732769214662644190586254177583104702756743083425174371024674331167349380879162605383737970960985582812926117241649650290849201035903633509124162051414173261219247872974795972959302446386530498062290139869293690903116233930446837180026094970563267883551563154082835998066542225480012821105794916852617991809645340130682847139390714521264564709088114508059394727769151064191450561785409799601714562218252761189414475348383020873741072397154287449991382798650885271197221064533724173881049514923060011141003759455655714619080343753059982067095268673557744231929724890660870001488547812202234922453994171244248749363111662113178127483238489339353174547378558651981423974931692717386611962444503036662376163063790865154055339488725545298236166833986193294539621573612529158706017974160537254413968911690608055086464281938183027339287956448477447007786206234094030249758936392960833033644111979685444829322581443945015319860832743064652946126155936454298615054054199183269318831824665505761031939986294041498654990454987252185331015606153729398403946825552630506780877203627451051762533537392204035908970298728835157803703772342449099802671986048194435238672963929877532315685261743483704656028277493862652730452032442031971055078871773898450316887393585997215576122701219189506410989019898440752696538264136584558702185765182777899227992011326013044024645157765686842233439460826226039376570430297315440174709479686229680609079015706323797357129977817656496405190566120544396988972205632382039285914240198744096937140983366252759241061045083036037300362018484892197567331636239996392739645206507558990357657720818108123784734314319664939309478047519044737948446135466766503999434102464183170747350390565106810592305923477001548820995124521783004098599593608204739965859598187633373536901646021135506403335129312640102759251838132231623609593362017339325707929639087473882662641114257050687805645989849045818309880022127862322753878007049815071353746441113308885010321618293290881268348957745135493121538584401621860225361552652620532694693279105692893681444726574865800600372598502987566759405475799584391469445007215910998684590886176268192634164303340381494871970213355169976898866978734734956469488776580394240164472368890176459764394534339073952567661779450924469428649718336574952582021538055915578735126090646771055153948583443855468336970901006818532134905073395592706563348657235429380589295965240591292365002265630396162723526555217149221389454607087375074978383326332823838004901533869766308412393666400091026814001953616725223520398285402871951868949387777720155844815453051386216924674801639295033771159522869905613625715086561473378480263823678880285496670378417869784609870557093064384459747863264575189830554059091117601975338023967012023226810206216599697659977217166010707304901431635745965447686401706952752999582432167545918459302579935706844427989382765895381798333570437577477406983454004393920234329673804032766668776067857952747389889341602138249696503051934556478160259461545027830245589772045637812718161700510294010826530709084102383866906229739188140480255368506681505493730375234836647234960515917423183899498374581063088230171131555140401325654647748622315796911993236604416730463179408990082206338241730005314206296698891088900329595607513174872782565223296393072184024875771266863528276401894183395615904152106408897845909252973984803878180499863964886610914900303040415829664414526676641049309958658910521654477502825973020782742430970550770419554964294597200374820621527936559379376240537589168687967826650758285518496661193062947523023807296614477087130218957995803952563226791092422149370226836611113116689125710991537269312472960675432576592008926074220708433629384925996433365054060189646940710494621507813159713601180960830492831724307201428286631738195616919936321875962755673797774103873187534829093641688709267739129903744285583689911994469043228493671158773279939495230754234500933898579321937942561390387406108412362552154990851754682694307329702496373657121532517778876956671812961074588977796812673357129674292681148015932405566809369866378730555003953965865634934797558738644503153069514117235223015041667875744575229255793198983194661191831532565821575511382040956781777017314650539038500442662839230656621178815901651259661516194752128307775566535634013504157826406041933090695061847090496081144213987799641947093687036747925931090930351649429164399590631932523847915913451523983156756974415596792042170123156945202961146755287175961639537447256879740017032069779173899308747911489120845156999907739181872619135609534455624723576651426302167842300517442593655035366631039676954969409671999840972703491519319467175117246247436411007042890458671584530258199062552687782623155046356515553839049840192023181588361570345929912517086417547863627176391632252650608248982641992564073888982910671348147955877715661778265746185889904466285009001460698630025261263770748933814089886328699467795426403524671851709248206329940486113110494545027342690021127825992479725610346394844627936972844106370855261305638797560295271665699620450814738080963974817284324922077567914116739240671916330027780877505468657240744939727259319403587339063081594772954718490980175389627633518871965645386253178452808886751328908582377261625832082018382967207621072776594817940621880421873327548509741109153550118981498551442228304595471434117246872471920184244497526122358626870821986735851211312705347619377888888171299482046234263191431237316523615218243190599006190352363759249861096729994589301557162281737928604063238473009960548479698971475691759344087260293548167521081436774825894721027075692915886381171570357486810324865127764419684150381014381807239093680509007674121374960239919820362938269576191152549672786053194016880675899463313607438908906555346864731382954105507360528327298423779349351197642999226705872530186583758111263746580699260334309330589098495929510880024561386949578351299598408101744387080785468331433344070230570881377635513095978679264506319048998712498884972575765141881872718473897322173774078006611838983145034144237496494496475087874433926401876789518464326477482341455922880659327137330721440282177295053589320542789508367348477818549234975964501274768298311958394551842547366565954696198465001641122473817621955059264945027541746514567593549379510113557355952956233073837533300707924423271042503247931020461162808953879927854753794508956496747396395539804434806892739607680621250993261768802580066758917778300483300214972089792824089276706499632176493446477505126081123968378582162698340295447071177482158208736196811754296829205622763324853276763275611178544776410066559946645035593867719534167647250565620330764333486130556348000685336020264848610290555786876854478477888671881804258450167877858517410623301449567531285170633480840504553256002098952481658174897332417684128894971195411495957077385023497569024381575681477703949006604875688667175210130630027837263225484393875948828691172701028095324659188357791584905081938070564520507921448745625471921461658343516166284142276687033661556622292158520914860329679556271923762761303134230553842973899471052685344394896515418323812404699702369216402866523919095645452313489696683326413259752879526230555188631862502017883984602153804809452912726669540122812504374230037868584013320565914639888446038781968409310662927047454789865071286245256374680434539374532190017826258345475272217098664256370291023232585185651775119670252411098438090346674817559745808233483201797255864550554706689458066502513233617376455536364142865452922796542024790525138991644992954316788248342375677378047735348352602204007023044698145474342874100893709443782874373672306055795837099754436791727882532704214764924922418409135690660183432768385913526353032451383672656124629419487607080625559418918730096592549748020888008298601323418583234039835353412149945671169120999468972447172763457595987429894062673129841938329337101815100413934484502664251009947307242472733583249943412976709928381824829061324412214702511977154088418688230076664012170268689929687747039736131980150563933219480910738159687999412626974292199718200874461109162386692335648007943403603430533843213746894822883479872664700393662939729015474262773166668568083744386733450064710025713358909661724071235873687561085702360748537504446116219234026424497591889404924408010311532336207590199882899970594366659214003459129224825722312109947352933081608675025671058927549078191358479513214671550139051531694475276490123079837248175999625868442599914080363483361590086429349285748229475027393946714303116177800367992625134923344945937977364015549208493456512464497453446324009193114536350291288877882743749542058825683482147777931931049862743727261524244479223424395532865304147352764113689613504851485177088380394160407261879457657020667543447910890484493667962545670378832035793668502319051994148565506118944439772603094212648773777019089085579288828875465057645286484570344844552349686056412031366354694639906063773833610522029536757930108570081626829221235165808002909035530711897245165804098733486363014941602520785678011705611270019724287305849668823719062825227095902604230738458447841841210888484861065372493613015031483006722895082862091365878024218116845314379309335485338668206245936985651124123007353708166908619838060294143182877905943766784251575361301339035787151990163998987672377984429014318249050254324650569219879656991464176941441684006536008512236965578693848398884530494022655949982302276025781142468211866923340382373614334082344333967142836210758029937197068968248008910246981357332766225243667291685070711685514670692568878072166447863819792244401423086430147261716073244354829254609808286793653066752092727214660363709837151533900072767975693647306649566140169248930238444523808889190631602373251625173939346571134341806620970587223443051004244205306964151877051782353263019670101568231774521714095711244938158793742116537289438837501404770510833394218415901988552641656876229594425416436986529139206260013560508213049216205716396449611337809847213966418121354821997306973779912826546140378724365203528203366521829238193126377773825656433758547943104124778728346853452639617879979883235306486130841139048090033066725295554305143357728479605934670597220204290518536849802591379720374523416812046566580036900759937237460838068203444198948850210254260201386447455142670237002836314446399434810922301778041005972332836666852142653305910800705315699020432881443374795662573148176526483382545358138446692266189482485850461342370805656067468923074978263271599441390678847269865112368163724516733642714446647892364141632852270869061145247707850968595062096287246328867438107155102324972034993778813186471356223447620350738857757269762228262107783838302528839195822240288431317386784275878692286609854707593147978009744591287432655141287742408463377727948117052513471333674855909290604035272287230618333860654086246256683179968977423395155015720438989728784934574380181309027903399970500844105190532582751178297004336797914041915118775033709929562397934278904795193979686773559749531291605550435279492681170168529342548127469304942197434785967001611507160936269832767473500884231349934872282327983252370891732205038258795169741526505528322486154672551697588914701704456054939008442621912394210574822352563899619587060456056856697177184602938942409932894259304348734301542674343567889798064575656211406436803658627816984031826361165868882827548847803172641845120208193325223889146861652970093918193234428863543712908924892592667417331758909186291884443549925158083662108969195938416723044481367413903021707180685579244908985201870555724033473840421756138422192695672085214326058730942261337484567063818083569099621165349799011972848489703553249023343637491134343693598725504414653300055199111063898357030931734654615690477256133538794201620047825399830831661568367002714794580381231147678034354703361335436230308194681195661897445628924853974429818150504078100813121733398200946908034707958088807683767491516328578241925384585038034519273767953858542688085187001752634105188511837930837851977618351617108519134720163366349769833149777080041208824426236174122678849433771945935803198162187706169324439811262647870286495920944276825817966647360476061649018164139734889040344729065679892446973270023165859638106263537670226725181391175491343137245696454642632507186676344928297290991818260490446710465741509983094044510554839585399680819139856408104492989404781287961534058161286283120286473511834674559611758865182279514073166644486462028072834125815239087455131322287253402102236103806818414248724592833630618662877236966905152121807695954514001207636397895593592185231240966412872743392057221228088448994319568470048962787960232897284016779989391993278455191186210772335702992537838941435267869711099653343759181811903336381003414827051950420117341316420621073296263016380188359216803024846178329102057870516400715282946352092680536139881061413137093298640178159007669747562675837117940419931536373190703983707152966219991175244664699470715012563195101508824109015540194610752629418984257181922438042949752491103749130943935846244078739879924928016253106281116505392960841298184363343755431926262783818043737799930093095115036998276517190301999453718130099776827380594261204436698215654357068309769397599176183737413512385039897452778339820663873958092748417264800030856689157058414879799407592857493538129514467730417454638620669135181851868971964219532731619883439004930642449323572311436078541638891443574328225812792225846237416099799423325063126864171721271235322646932656084339888167015472677597723366503665852751642036646283225056752346829685838085982997431616997150702151489634940199582854091090060470198001007201849316294817389769931118132180838140896011938424421353345972544196115597918636698881386186276146455240556964489053624869294641426318518440881923573289491732922379902376579859814114336048641912862248629116732988375485582157242161535708781991721074242774979680683877869063544840978256650046940489700220251724630533239264412961534369626777555363112268446507954696073293753738438429672962221410656305959729424287978979152213553668498374942583620808172888060918098941203748662247009992493675524449985340628129265132764808974106734270135916461948922520902616891436359964935694711502188744564021570591286615175045420730798790151293663686467322759935184210093224267209464754549137451464251133712918531115604890113249943068529263243489028516170221399076251129687773278085821055360735759071047411787157482979594131060191478115590416605222596790610863846963594268326382693642879432296056377673808319111066294154174429587481861461342701116744152789445897234674533621498824387905612382933357788452231075557348880273220122561805882263410053785011871657781900766407551644011422785648360144214830714094594994800073183530923832680994366119061248310065080162755730540580900910038326371942387034076335707804064009690396051371484021683047783358483076771457889942958285344407733319844225512319726126785273141722382958668306030245025542277297025540979438228843745560005333305141704467803099201113260948550897253351324959457497765154361442298006283997118856588427988118006373382017048135873446909753788048431404851153846503079189875010042558933755750524318614935792170620046172460378714286197741277483295434746486596231153804806303484406933169728386076173735818110950092181854381813013200207311943562843966411656749930855290587631042283026962431911354457877854969566188313118088674956950453942830251117851433844492281430245268062403824224070543260603157561519328609741606533612596415207807119480206487245380867918866618340234794713699364480098685306238583624240536551734585707941122308787177192969956337691379241731355395781024184853167394793031683447240394645863382527079488427533942527944359547228225851837276335462745444690301119685573492994062201674920776370890356136367787376812003391165353708521239867483210487224168682449152732391034184702968331665663348852512951882842268175228715361143477994665094168682889105371527184099748579062501319394505704029869630210332655036248902539863125973360766499697777595280440210850477686133290009768773657123648959032210195838037623090650220440981024613096007393987178048987849855534516618453588106567699857279031390302202958277602712549189035954146025382234241070394146775319314105127990349076498117206531467304090316708394741176090016863868573124504436418932963017946465906011996052545865426803491140832640728814837355633153899167351886121320083029777293084291983722417877286207764531639991049922279863461934486695117014269531546402246980470925520371315980150862529127204400289084746158775446518712617313102265481115809558502269456459842700569221620693444551598769465225980268229287568663307256089188002171380692308656040559948417695842633594989559892351360301550011867905037810216678723830249091679821820692903682894004425945755547967866932078803120384262469444240329159932036127463050027345321799936343758675122407845873511490720340915948876206966730535152698784008635211521050269105170852110066554004583706240947119782644866891547590192441274281933537648174975783238913029622631771391664636267659218767207249470320371030991152779945960245007942679586379218963642294795982273311460127880136257252236081111137683144885399449401319118218177155868613275268879537255242756832270834177555193286739003777387429826040524662155240848088449724869919376700870676329495522496651308101036594924495585696577349961782460533781088532937582901349610058182113085577354737505614492760697280351442819955184763574685981631047189220296731063815713106651749153158895557876701054173670721833224957479823272986184130821300279245859715398558821085740309269177021486378399215020092514818175558839142135275164155910620616404690143376376145641691734484979312572463543116290699003136068519241721159020283087017560993246658020273659300125326835043573476741868237950286711193006410792337612300882574199967348527580812496405635842281192174145470647239988245757135668622186105124826662714922048819919326118307316169929119139388766769741506962168626543601909349812394960921046208148573324982815087668079277126462271939649939249230106499188088077554650548503313405937881446515024775101843432273434047482182397644249479035186483195086446285680155367986802772328992462048448425564294283395017051358980631443130516575617436503739589380063306160241990112784398608230554429363937210661778505999124767279488058441118320367910143461005647250287487124420557744925718799697258532217093981755721848413209272191048092542022580276281907746306053854970336323823991183014969854036479152165804304312624045755385601239340125856101273030535135984393673991540920373286761613585064972480904872007405274739118681935317008632213525618915006121749305771719251699737941786868364207331795400038450098341399552789353320688188635556338053632148409482954013165042704056454273003669231468646713119207976143148752603048326978871143603255318804131468242742413087340753616195252055432793126112587711498631204078745684151603143042927418234806380821115247000845734982572976263548644090783000453391533491146355426384171331432183366116192472706284033348336595102457860830991171343674020853466296163760807347395680064326032191218902839407343410592713263962626007593511372023776441070460002465534599042380248209125834183668087066620261068041914847185110058553335538328951200608136586603686753483376548501489400233671873198076578480967414080640702350224346084305852036871345632026318933100177932310774281666138648964578513348187966570641402615745567814782004855576624805960431692413889505618216511385620438745520312547143208219525882846516533126536002258543600092289690201600194440616217620832832017728260269627760486867923421269974120007904893921935308116556696460002942158033006623161312813621146305502782464386613888656781786279224806052202716355433585964174137009994873314889563066185602712613918056913976612218346635388792633917463131597082584202513239003142520681517142355873102453881211367371913292258006612134723491766695284578419390712820401010890533672609448950699711527397361648279915231110288704554161010699951481753338854786871856023786809495701188106945506340310520076161882178405727736838878577514383881320405516061285502860185295718206782682383898229900643236078353502069711964057688227798643352527843798163831459068957377265843341531184865516161274457645683400947711749114165922662564600538999359396233014066909108869824374988179678304846608849225221577189540400917836418548546745380163799148599816907165104788794637901419193289481056621877145651216085380931711448994480485118029452158287890722385790213963720123168402889665753072506530443793420782043629355230464232882158230951944619833681954166387872136267589160814893518102361796630972246530949033930667059879573048147228776547792162530981341814334435547990376005018812731964094769106181013941346248523605734721073856871845458837318991047030335083935160247482702743201396302089656749341139008367403061644919082718161612137028763851771479905306592202742838991890883694593557652428619522904007273118146496207552199373651371459387705528602835290730236801769750290216323041969155142682568339316859292261127289812477560468123801054932972538586734227969226006651230000341687003359695380216893812585660136918961162663327928320499968507985242915600600695511174707982660497960388919059124339079259645090419481851749540112867190688367027301075708841991662433202708631508666099662872359228175196013637410787748641751454737787909176844887172493591657055566093320717646916128589368598384383559346370655820064401541072838365309804701728239303104560637635880471249585600793783853488875851425889753088095028893741521479578382100650826185155539234753495794144777403973702574529205633966032139918624725006853833465467915673309812822116186566694094885047453126618589999940529122837238759118508150487152189699142958607778804774260903364064745414539517028612762384910882661022250177820721501057179431226028646330973175046973788066098376070155934089191577034738412886656498316930149522706906083411757311709408594159604896405355102937971117049337280944400842033908185698454839556740876467972427003952901079905030961172942587876984452868250654038502041608656234785864582457902635822061322587801502178054295755506442968641479978542367037011119024449596946341285143680213357947087387038102429549910972489417339782650923608546264863012887401359010949031986186189784837834870615773069289982567075718849315843905239400944656483440806827101721185992458122936791892143821734791005159921628254636115342495524912289304794365713384738025638268274098625621785121198189105358207092751788034576989489544761559560816871726331703636994708206499629815801140129389748028745989238065268098528083954304497989675958094148947827474294323258764676262226581517280204856314845515590913526915598105668872890400435199980418649383917963112019640811367041800961961680791796033639896701112434672603012990698004618462584271962988520265788873173899638785633362497929006528151531528366619475191787516912404747209168476563449062266437888216836053767152205304061614425258536647649190681087043090409945471360580388729650344854420514508769247317431630885930025950143743208125563802074747778334725180137874792828782927030917578942008812740207347014659592149717382330211094851781552473681799988645574595087456611288859040654733887898769718957794565730590240500568528208220848862270980131617955883444850206215645371024799343026723652974821535952100426343165171876043748956091578879271060640093949762162119902501066701875445574922110315588568758993837304224918410463378762014740373577847861317925523678199607785199026882717539417973793539794494001103876222323797795818346047505015934390704473423872854645251337153866099148323834850057473713467808882689778165338161371683028900783511437919511932585881867646390703662593553365385963557154350768964096057314026883254341263649483088104440929871486019450099699502055769072302956505052360415276014734869103292429356929116185941107275243757924955922800286599972599932773611813458833032291672004727664396587698985255123029637872879833929729156524344835221066840639199545138839607971148492482377758983954610104921516426594085179241379169666092432673764570084184533244428562414323721798190612997316783849623411689769935690991417152143399364092132438534083946272425406738216384020821651332716142625224881160344830985256390801854335062735971510119477031190395602765199432931428256522455281516814810625990140864691862084549575792777064154092282685040955108056441736679480609157829806500127617524205141458535961557468690176870766654978981789876450934317925512756169611619544888060767939517239752654859105165191305159770195697857737201240181557699704929941524723363813696248920731494558714894743546594502412283959338767171792649730633463538165608969128124291884848913564987185034889173568946339163477355259858419685195888365632553462580376708218788615527035936608174756124742441266557802759571316749904728391054682145265407123745650722122751830984374595788328797900617802868771657748911785725568071051964644493176659765636053374401960109240666436577400551369480889112213008780316324251132616696859506826411424405155704387638530295850640345029251188080501709802091018648050927371542676725456255566297096206958955958589544037069399936966950888030558557964088427016664418411883603077335769508887238255262109221646480990548083606447352345317988624654518566250722422533898984449054579626497137839078131191491313512225491338993819461669494993709311857518874231985513755500041392207526233649015771774804445607375762419067013551812497585552193810822209562057860375369001844892469957794855741451350033628643087676130894567254894558266209559117693687966786830928230877770961893037911815180149470923005675657066512937226273699395870201545664203515327975657981938481231651475133764123987713271256833757754739816959283326596648321274019919191441704531326264759666352315848782640776843653223490227937218468589532272502104215334268270162862568433401659363821423698758744091116865247798448486808309042370031281956002468129902799314880191754306590171092980748379319261722173740540838670135728409808476217440714654987646863588039405566435088023459406565141677597155367868905683468254411740363716188200958779132890249605463225568178388535988422666879840841248532437045726385518458633296654940012587922154454248913630960765683393201457899420777253282264959551571599373368261051707258393787456705254897156758074244328542746211812984942837097672657876208006412985828692624802441179341520323872278561256804362623368950247922268171248927425280780662544897504894881103662785324710196486531532947989706239430925083126651451430798510599843665064171487521214423447971917181217696421820039428296000410477596775145280554909326740055380181148046751652320860999493571180382767836275320846184815380114926229251431849654318896496882741841530070174689595351010103847879941410799549147999222578556150308981271274085990217997344508270317393485312143265602947260548049176791730356043893885216238904683782698314308231886416400917482209385035413260813167691788846688149431469673096799195192974563186038165915779807211859182977390162940045764715690962532315329733472272143973000860257509628841785310046075086421724191261968500890867395044885232797387513828458790054399258680249524478577462333601831841949224063819199729773187265574475862904158647643915269797115753493155725787683160335002823770826034194901818009902414393349626236138550199086012949740767714763236837380794530353044286495958006052792887264584671696399205802608219088245279166499234522942039467915223410261937926590228453296635665102970719088948408675370363335159496254847181848778530562174243489580024658126678724807883500561349527855570241763752035817262243212944410532508323416309837979395481242403938315437372547980932892375043974774183056238060383575525413568020203349302248694019402990931953146522389906310771274967942584524151959684805398541104308346252695947686081434092369492272935176701951372419251107836402218923029702086063849323483811013425451207148796646426615514663625204436115720673708657002445579031427104201541049530190881258899911885654752509690167244594452546068773086138143067561800536034029416046714297342946098580892232877918860196014206951168939819931152616818824259066006476949256552131989629818985310447520107489822109812608930580473361207826492604258996365113377852359913584309177256737964416751387384729582117295860191111062037853566605416771182104215183126405618031612075004399630586757916885093508651695648841367650350762784903565689935409312614875962375447465327231694708872420703255718250855998252784248957523032615589004008304247591551258748236748212062848212532561010013779181357685544935941471618664709589529755730942352946750152431494071768111124873365512761605175214173118243640460740606632318419066820181844523788936335110729568257646458607164875344723552205053913607547105569055658911352088036072566652072519795761447735932248965965894609905665182364938242053768409525168306308091490718388092587410016964001054704726102140189343531911782152216256314131494284187210992872124649294224762374797291819206819249353000866488891029231994401067335922462940835450784291846133574383509843242717915837687551076957540289842898953100957567424577049538638760518854134359896522004006069059633453333950731916074543189803122926815145209580420467763461892233653073604039778644547576794567841203911349314309258880289872771082419072386826406878253539363807102132600686596306647288653338177976627300488297560832764499385531112154869402318400406960782314031856697853702053614018541481708578182901465107029158321121599455616356699138458624562784975298684704923687139356428318378489841940528257822566095320902836229637099849727189049907839254810258429228091512071867992789135996352054711893118924351366495850577898730725594785418273444464426679111142581863084782539086449145847765696479718287427316388234635692004422552525421717729898481213894667287470107500635553325799123761179832963883691579654351239741157853974575788973998747199387478025656470099804820754713889521583259029365918870982054696843754666105797393976660287513974457653476563203254018754717417735673799082270170791227017970970773415993136871538198101720449602722342886781549181605881481177226397380996271265272956419253668960844391297239157225481508061707985018699374570566980036370609206046062760319885923213609244601512145838230235999845976773935889001420804103400436706856832211147011416469727329096402778068312368500125973565830354967490089430228194572980034781908718929323042368916294072767402475019431066271810033189671285459816113739710812971924917273269474365850771000685763536291599817825224703446859450820537544168248985202933442133522917480625365219742224343854644075202325851423926946386623638956555555988403709343246627984813314846432441741331394157944870054454233014007002933447786157347716847227111381631768199776358948015357898376518805620240898295403558644553613261974568963113453793659456761769171945885422497105474849970550120973941606260072193293045632143508292948643977618029538521540976859220403316344532068720231580434893239114137301242492398612721076645147992118592863746052743716272149643026873830689232180926187458269425089116430494031855295410737718457444688770525919528077702041218028708419644654560744858627665096305370428416901630068429291011920546957184730752195097408494616240433271306108329872937204234362048066176401143406963988437740110963030920504450631846472552518196686112133462270154639036854538252146494887033040436552501253007992955193420978401806037344113559229833256719103048323606973866169680710243619210305056153802084515965873288255804956755535263058258288436418431875943767744407403849303896940695173019716617107745230886749812255371440664629491718857372788496069395964600179051366503416882681927323323364495888636224320667157782507586024579417026574129370339992284523127165709095838162898577555573880209917907023431433180333257515136702504813539576628583694774240347107410560574534012137473185441508772246353863752157880267472985051187227423917286993772731753181662809872340756075587476703077948489166639194337241956282415838936395305480175333520035964556597991010342930952201771437311899198041538356268484561088651928885299069098681929829826993524095937013250894445389550064085012598049857767572131723202329941318275820749950346867687976617950639540651532150696816420481142507896553871077656633247022508139395395007232042502438350650470411237018499109277036199970059177928162947672575859403919769697476114069574437509354303822850735288285514726341465404531593284897111926681107001844445265672480796431994334799319076147630636579443131815310042329446008971188292901060527608041067513699649882484282957045473394286156820542161167455531688687068495901739302863104688971836915039920340017761330676443101687185648443014906553081932628098881892823284717058960610114610277149623111714885957819536423030488500325649558715804983270846499553784404907180219442378125117230522520990318967523206949087134118210021522369465200790876274122527489062840782764980387302520334203838849802561062856764094410866900706998890806491090468268612963508879646001244907141546118692960762040998826098414678805464252307815039556928066156428223935693089772760556581305629108940244790333018232078865886651589644643941137485315178504949846636605180056361398546164103510839288651526887837315531510241934628171951353371295264972241149294557265105933694390587929320846294552389436937341355996713297232318914453770181515485394959940503431762030865390900158943369046385597734030951915052050344602347328746791040066258703394615312244929153252368115825912993458042449547795834126659906418648677033018947798424316646711539400100266400147607966193990274402676369128693495585279587581746985206249636219332530715585731173509053713566451512223268576206731879631875063565290021967006050987792113653894772731043256636376984741167382715250956165894900245350709615827203858866559838946773196038705100749068479824056943055774839841044422255278890720344557742094377672163101500622184415685894154212761756456017527511389418149947613843601665679395164291560706786199492914628590754077827070244139196660263186495446111616106808489503428339516253877233044652511983920509348151990233870562189601226143890245668370437606747177250017120654385772279954341529104679714178113846552791073779245458532048164994247366542656549213167838842885273793353298695451865256291594459313576957531997768871503343044921894766837596656401537332448183924448171912690621464478901950564769242486618350273339945122311885200492332185146579591840203014569662170717560134539053258479497872103602200003486732396064680276647189638922680813247535037006693921006845384020208673623739970634762435772566120893139683018033701401246917922708322649304602151145157478091855926990731190871676537063069322133628073278622367724459132746594995191179885359405434182059104932269548256534915959482969362502982299012387003994428885365570755674566361830913326666440676920381657754956999198554673317823919435402831992501794627517421402545194024368982567533480357088705380453510471111019116916286838053754336838142719690375520161718912297131457035430395577702058111976175398028679088762994273319109702474950608156398824962523598822407982368213829124591713559976452605298328671370464767187492505791826770917488993165885386572926191584590141823916070825900561780568822388655022596177330402865698780451809682586656023766086378251696382351370686404095518949351483142395847570058912719382972277958087740744583134833393221282185758588297667117680965161332160455960966470759239771870977533252920179544018470043015039730700909955268854464108711177342111427606129395157369386069498100451743618679406330938406302148140362869336788637835794070751228344065162481104477423915725840351557755893122110587251224426708892982601003399713734929231369854103739640230399427084298347161205610509269553215575401262623151409229524655498709986547995559044680621982922669466169558428632406001131068632865210910883570592611081796709849842255738693972747172666432098918960394575605018960640079319967617484829988880185356236533129558097480920557010681169048076839565678761855459286917631245692271065938679962395065885710445567085557967468784381869953568878160625630829763825461677970329919522205588507133884621072442115983487405069945528328704200942335993288826573393508140506433114089127173305549623919776598139799048122955578469670356956104573936413607862573769440538191199282541387474159136997075852399490174521457632538794837529482247238204286408822234315848689424461590495929622155948426255763699025949017281668401104355481238264167407610488177854260753772877647891687745007127805735470925031279226464478260437919544527708506065849106943274733568739814290461925900109064821984948933702584524701697482502708195863969079422554431434191211398325065232056447232569642892049558173254801397027572020440332778980427677724588161871223357931163083798057613601413156631327435473922436404981791379251233941056371635547965513266221527818076801760919715306523200970785981567811602794402280814162030853490585180867909685302560752944210350337816920493092432458294955728536561419141039987200993709558847324969461590435350738238190284770898978976979948187543105872822580524577029946380583271034259731004300754489773861724836768774740099527103074269378101390536683939280771699235677681748217340438001617747413360785173453313672173454239909823617725965682769488335896473090225555647129398371784826295027271731888624369815965480261278495409071550760786038789385306573469123253858985249390269010977255129700297839675175359103979841641381596439410676743136404650342446437080368527085992916408189191170556908920632388663831921968877335753977019519922485608311137557379443753967906207384939944447936935028280426785992323228771224610708154244686571724124715891899011790554612290454120675311331773577095198838250910004041870316802690457905475471209142702553215952973313576059125720363161005910171525325240181814485037007598322542740532250555527921959376100298928143958432219832177890867259458772120350408023349940989472788688172382180448989935860555806952494110457539735516831843383470431985245483569675533006493090998255382459097290600516384921506154153494907417662835995325697532676479606069565650767285554722653170358168030083278691021701102084721370285729766391827158927378441348844485080196303848682613757055599364989226957774334339841211772383599771256554399909583387155078140818845734471498838213344585065757858100802394404000044086846684481113974999554951817129693464067956746009885564426290608786137607605104035606217708692361084446900322164092999187679224589787039452312792247413101383914585702534880801484100659561475328141738605010278031892620418280675634308306936120141433951004999834842880778974354522523184695112663986526887475134229670835285174800217126686053328695968741681770580708704564987282286507442247878332360934805533052586971443167107603732714534045982979241008244550973743811569064571221117395322932624687051596712940718070194570984850497274005425240113220066780826390400503556434658995029586724694052575494325354604159340270838580080541782687808869613351297573209829358754665537932797984211545902403273523999057042943191049792579015298246897064499864730060101603543414334181481184844435389699375052663490742548017884269841716843143831513902921992818967254616794720125186445345737384086002854102856047075842155987014348261495249564998007552086599002206896195171444676111125861263987328943120657823662476267369946455937154827698715772158513617883821666952469693729437192920335870872923100209033371130985310472284530976315722235334392335862488688689449420345541811925620823339906069534923257395678131593326178265919129742658530694821072365239389386077512232835143845438642768169238058668396675140778860245620408200828196270858374556309954883114075950956610309370424167191242776773048745053449927483245654487410759895781338771091618493958124770388521260596594283927417669489530377004039743084185617278385029439163807068171833235863376917555420990374758516778579018396711339769593374642826924000652866372354225308229188738780994674242059110044661424615682160986155846071109405331763641520036261891400533707633912178634480714073038595701124562740340776437724046459605946339487058430603091296088430031992357860890869646991262159375327430009908381051951410102277395592339926871874300836390847723300666358541416207969788892829809456799007080793614220182445084820687067142132616024951909057427864361363296599355414805547030248431904200733015061470364302802042523289785997517110413994900112993354428404831739125754070140279601775610144310968927954929418228029278617762787068046970507493753293139768290560158008713535721829841438956887333769997739796709904450062113680532503157934590778816798258071131085778756330576545989825519164804788451066154319657121622981470965779573022124437815299756966448658157789388784358558909663956495618504796028979185834312485295082772866917812822294325626732372514623548627687914290326147629891104057232987731210483615500419660429152149844089096962884359566933945897657557199056564741768941686862470653433831731469949204363169286812222705633217213876685312619176964320489380824816089179494435458114301210201426437675779790605484467995278031221744986657779827724645669046498651090474266863353256536715113787039520156224954936864701339833206351366301737715175401705660922483892801843337260324438647745221680533133191975825189508917116198955989338919524565890633802781310788451958688325733133998086874222771622879397983057730136552554689493894510458172359153955931769088515764143490027513289307182328853326238711555366953085809429746660502820824458318735833948540203233874006634502666595544500175399377068656449175899466014362287698405943802000300448341037175188756623969172135363261464885358724817556163888195857254309490238190269701941799137334618482896194832976394230701122931702999149082974106385651618215069342440929887101566500487287756439576177551154393474762621569111017277456168119419812652387079618983245543978531096689488727551317370470981108437961215885573252565352778689010134557263546868064580883375214427730059690587198904017789935341411653156394488948157180859431109836581241539910249011859434469332752505912656157450795749827448483243579292419737291977579971390367446381242669640102641237862064644927906070555851417731697604705692019646810559858940928041638337274509857788009146154111554809672008913596725998228044467348901642195182958094919315205710201313130103533324125139196172799663965443458000579234022679371388961894120267575661368365154944047438403750759973179654068238896808498879700809341332380021389631441107491634637469195731745993410822853510101658713548762160202548381928068499148365163377507610411996714353257838063993151314597025916960434639112180190161927659086838193791263845670453398445100201886186147510982391365398037562732152039585761109222484085752440634967767372036908315126090658032747297117954682469429115245005327254505541444194901523384120955244094998870799293641852597279920380252560324216579828952299345986310696063634155701930341316311788043453261095950633918413760104584130849337143286679183544772868262638112626143478662181526200147688827629950552893220973896529327321446909899239321974586767283280361121362480111923598727038358408937453284477030741561546412115230088572891156404342452222461971657161155537677814809380107829826476464490417955012631765111288070123169140145131254438526186129087063962876494220910215502871916524360070426351902270344626554481738334556355483391808670194939981635619448707078316656780034947254591138096224987002614511280305519293213254891552135871263996805006967163239995288699259419135540126423108621747243199385790774180056468027922010720432681247826269659365760516140151948721726768059732580046782680586735832118568145315869510199900839770976692003382169705036439398821211726440802550657157192402280876935472403711636489089830217570532526129818170912751966438285578571890358319515214643673301541876300877545734239297881334330502715571092455190127108753028199826388133407652858289196205347925414822363323244954714140283743033756348491613069912100761038707509981802380309606672851422908665945608480266138931805140217107651499758580485226921733467085719802748402006274280950114674223181590654309159152806392484285457834484233546393264912622914346069997438657935585936309356233770930841212291987444188144273432580027169369479788368914334309212877564768532927397220121517811152556996549737023130695895871785695632113591960006383860529496343939555367417101735830916706300815339872432392167667141913680156574221684841423906514123289014952856300906599197991385819845382323191808953481089911524651122858618982966300633307611572022725491358526070633431263303331095320808257560874491374624658845654149981790920131196615141993333040219470556431552596812499487673264715131434182977129380339568577733884372422021734892814776884216188395953755815860871667956976356960943093552095461941822568995959799427477319613235940428829477460262321397598673149782318585181868528171362633040627061309506999213145276886175684853098002909852419231644681634506577337230696810903032640585394059317484836331314974980486306265431980220325896085052413899496378434202158810166261608270092755006077158580339353527342825920227816739060914404440599489663615584591198671720688668642418573454424501119582975980706747852888670923055603561850061496849162602144741628598166166087321930771247472144538321808841921611651201054881365063237572573834483467661123949974637690379749498930429522084924789256020467120773831369423671239611128138359842051906955423701016746179560389669514206284885737286124021031455656987868267898573724227850807791024582163554277437413103311279670732902289635588966368268720035844058073304160545205700931932929724227798994438091815114148791810441862272404272212782844861537344209554859470387228890771029650546961561127298553629115593266273457506390312218090345437139589463521988430149905358496585007764982365809019151975399021938467290624911102015917984368987789673621914794786490939381275874092098425435242248662127942215857803094333833995808076684581177132152654048445058541273803606218032678512319659406509692077996728153059053802788251728030773776687568994561431591200505255167751220471542869476140426915370048789813501854257301783902723531531466189994849748470981312965034291455733985976255171267892017189796450820003047639764381911163045642993458110714675958759602989053590307462654917808161420767184865287626342844697009237651407511763173421185568105141739454772295301995864456754298135754024821890818894523262202993808601389841345871643258849774961862275807270352135909358537471896250604271695081782557844995558244780540119403930346763756768043451615943241607426648999913368448457283841361646257710098909788619927569842571449890058886947717999159274119300400614747606736207946286933686794489319486529453836239612757046214072037711723435360777172296087531654310351456599104262285961459270967919739941732591575123575631794110818305948318398565694954353544974334873698770212750467134912735200300044801435133633207376272160458676434456479189451824077697361526961578644182157065090484747879795889917087502673374974139307500448928546138744194035584133311953310411245679593811524406900655042906819523533610189648706160448892065717123275296736074496004233877132696009816710299176946411957450555838607260877091718638884570802142576877760430246660640315217819933921092522719930903734036741045372340599320637054526672915777909564083710009445272070470127037566151364026323698241601693724111851419838695335690887740805196684529354555802459391696576670768550012415010331962938691048620607232285964386602183008815599138483547079859630056613262884877473619192563108311466618112583554833163236740204243576029611925857370093042680101296109517993858436223313050886245150088544655347280439219447830607990237649301903470850208717611080136248974734862029389470906249112762454948732072927716041208168052778379204412203466977546383499854777987813785725265649927670764132608622191595325939737919004446465590637902105696983326004422986447253070196125575544200574191102974573745171075331581802954448538729927714336569551068487758636901926537668350344504101083320755422000253404465971568938103582076048709775000731877937290967898939151108759656618316714454053407577301397749957950405733996456817360889711145038082588953312501753758390762608758273165411993672499603230372380772868966045890308130642087685698330810922073479484031224860865864053792090060338298430093503210673470665098549884388298447294218201671134355300711123523924257918167358960695858525050597028645962071836913580082310694360394321957056135567667828427373336692027008869749338447654725308066490409973976241621640113488332574086539502173361493500695112630408205633946118247883609031276790129073912692775634255974817903964381683378779527431087844292625442578385816000005484777473824351789710356528117607909998326294976366061731575002464841516115936542923075781596294815651360684499417511421053278884700263621231107149916935788736553952865502423497150250662839121367376431046528629205317882578659280399110318052985752759742399901036202100130868766834916596930351793504767079617406546982241060958734295957862551327715806621465844181807163923077132682401820944799341381449302550553609020295870812385582309630383246503145389988785427964326520888944882137397559043544724985610990743166286075571429277923686897252124603983480571961234604234660896456694282370681799703314334088540672102131458503999688370294813578055136139884284320498423297395569443428363992044952447144676583222587405771936553740239276610918942174436752218013830718225409165356510062106863780356099389664970994026746770498304236027747108213685772544468675673727176294786512657752236760460868957109244279763136832307009976974948952489949544168580141012941860244674640964709443304688886606395058877695598327204387785648931469475328080312485597654264233939810016650949856583022098753559468345217573354583708741433805472455398418043358679645941036914103483787835214614245738100199127757326817582389636523095168804623685789246137305962707608923773462180554821528417389096571281184336020329344815889235460848102724119674705166902927330047313396536607699352267533828184360590525536128770318907769978580391794315581124642597617888591520007912083494599006728145558984258997620732464280592092219559165024165428115637402481706580957127352271395571699285778685513245459393710719062731730905222325138950063572167213021563071406480245265507713559406828156043375491284410928646224563261170970332030371020185471024220470783168033753793332148061748474626131381228782238867930634818649014871079803544376755603251118377025424274982269034826055557651177094747827168373073721267450874195607038238422866058798265175583749105690809433464825834578552484594787177046798990711739186929147660282082055258478365458707124360322182441012334402542448461790757178923026955881066640941631133235334065214268375379312427360054560307104522689095437285520687852143232399226088935630643700257249315477787352207560190382898710930823461813491972695053819025148509189319860538907143919671032690109360621564055468374203301106319628949834241761579962052056349880269154501786418983294283577373179402653736196392591361243275682411801651141834525795980407404416802992653735795223761325753407782284083698343078868657823106755891515415766064134740220274414327203472109566134268642962814727471546877439629157213289060474536375336109487265998457044473578943889175165058303312642436372193196491397428628987759034608767728196572827837406748874978379942365660201934540272660465713595225058556630423307204827496307476814013340214681979904300671662963457695587275531861764056542559175457518892747547704925856830835276303696462149318000380234769160636926148406282162510240722698951282341497056412960100012228922577759946199119898449811503763130414486246772047980143751375643135496552050166831572914708551923702690734095081405721240410549840968789395116914870373195632129911419283551359739328629290258923016999947621459740699171196418266441605809373568270358492216071431657171509104386770993711747064254318372529988340558026387067836332102743457151950324903086027620415078906869467639203585218674590523353278146957153783098759736505479501394097566683164825823031823352320226896856902567582731194817281388932072395012804538309116899733763661121043015223284966773021228121992130847339166895609897770690994566196943340856831260195124892100313055943596762058663813661869720637111872141152932461828071340962544707748109909612824182094300254967930551021223738698745843844519316168968207750076628565898025572244038728629482567427347811484331913811274577827274094437779670360351544768319379610455433419365348173411906935200695307416625907734144701992888313316594351120404102163992920020856071752988368903667737287271688457246700493206964310664236104929882046840629508568544060607040245779582906498440078657859614650454686148108570341841111450838375559019056685033422460312502192904477664886382095849122666631881643860213798279420226686277790526507729710244943193642913770020208660187790768493653407905554369816607126765575398976672451369291412242268799799171043055055934560530990771232588120942026953952895333859913138624675232908422901643225252032960693612519770426880767742308860233879540337356123773072181425922175334362054202833992182601344781603309447316340079729313700940402641516591244356300346088845507520902053132486119718251180214490465557077114577810950310790919729948260150295397689501704154300785126979764699344188539457373568395722472762525489428497249854108906248267108303124583644271152603681662711460136774752756462488839688203205933617442458976816767401952233963624250667020945995896508522047019875069928440530676689086826743854805576553146196235386288277344081748007509907972666962858800423250797291125362905965566902984698766940375977106636982273680791359787041943103140140743546200702123820467347892277836410461545107164209189987175633381697957969859551188178401825577507297542609156027131416253136623895294475461289096892041021807391015716616685441773842818335001396901446181632365336817039015575153717753800623311163140454346884875379261113083271570282593770924843023209997604324851911780471811886360091827564115260559994000739380616432912761467998128326138397453847396202518907204978487235326554710420905963241574417593664779676022688558499868121987935924427156497875476983594969077231054180951638490830355211922126071563439225193999431251682680589300624069778725498801875298154171136349159108431210507160460915588103082203186908528273274047235981431208044424254210853570349721331780869265553297860778716994598509260389127740629753635350226096839695349275798035370727017656056032779833938945614320640432996863803674870200593732032377337425016305012169439943038744462653403517206961563737027240472145111174599995635781042364966501214158427467899979250464969933219408458102888037882542590090281653286228259952515512051664793616487241154880224508062533073517904366770640581495651703130435610868326569024321354171796115228429621240415815393824255311347961636359329831225604637268875683540799160334463394678058912842401770415483055827426048116850890197220771305274104887901426715211156332687027070222316568212235715884090374413939049215922373728291644854720690309993344128192919274047130575848645709096423325904650473020104692122566809182371117030674835763155537872819316837816582427074670762366142440949330422508206649502660667500823532297333408942778987947053030370705326387557427623954204661538864966069088669700169917709399959341580896405806585457608103286021031744316294246495671917685874013577032281899157405086463298805460031073691946648083063076906922169046902988096896273125646205023479328603260905492133347857810706127923467015075554475305561004727162024760376790028724020185169076014929057446037890823758107186821357437548136106400973166045062734087418552450076802093033469951411759115117642650432229985162278261741256763188925983380964754461671977128710032521771892811714236605083248401648842882566792853058442180703242655345120786314829284613943950015536404003851231485864798265421566226526567126416915933545670849802440745403946459717835641398840095084211525276336568852389359857120902496299404206323935243023212254263612411107040015745866261704421302241192956628636649733466634454381155388311877526017724162794895754183736252554128898314658169802686994355923433797552048428742664404366493244840067985609489816252393584697296060463545666187669647441559436984386774569422537778118701621276319757193866729084615808790172226501888669880728801989748373558900662271406919579775772325885913407263881060433860221673878636199541842196915298404705470906728906376803906394293963249154252264166435379745266474331773915680748815075890922877416607166734622776183506721577762684286060521088421068576785692520325687410899283334866508581130747599809413170122002535059098274508600772261064624466129332739031952748918209967659132403923764940204078234959517868006507793684574879206989503978175021852137716447472610345323310562131826431097337114443661559778915644408985356415043516210141404930247360773395251513093377395325574467786890744637378654191564272777084166273809935498136442233998401077015990426953488544770814977372530470581321513502139846457998900303904081630028419612390377828336680374970671421091611247481943068861627982077271647553450631559668437088379124707860702500932364279695624743345568868374035953509954056481424579053307280004671793601220373146402165094408161326387721433018661230083959797705798114694977740441054101861867134379570400587787746168679317744686211651683293978412969125723935643207248897890765599676921188048827421259912389758783034613172891427383556161639429961246928431989107109020022427768832418134566169333403393538560346509938435627661338268701174563593110543644603344675200791888794948006919442119048877974262878076460723768300880134323192131990192955323892300590190869794338295872086619431224962144501007551830742338912708481006890496941426932096755960919102063907132828857610765398352344581756618263343307657059737421359873795650252608554559448638737842148122863301192823693269548020535234998332658353152337832087792944219199161499139220286898629036551835806844526025244086827167588879059449638026956329519138606399678227865871029759253051996391394453083965062371276697488599053273641893562563166550929747609356010773015564827134233798524279092293480927202613738134560774279082336058014377416938561797971912547903606584442596465978046924391145829874973383413164734501273995654067769379241026885414526339472748646296483293076268410397293208371576838571373476841259239512693604875518735916852968934209328572385158207238285901953517374780901986156005469347136437836913303900183844168332293049074458955851629900598991405157439127102284529243424209667298718285248514812979889323043674824178329489865010040915300476396743709368394699995494307378914966013195094546362098715717412858827853399522519552817675244801919970444691174026314698934608940305668516145993566414964563613597419665437819226804806579830035556477262523459299188306562152953426914131541453895764518721783377630023087834525240954661262614217864095156056344461617999338841385851418999476743909960418700787553541214207263061306328175399362566084456509061914764128135829101464879606987196136886499229313388274374255534722887443789645184425317456301205350293042297935865739862697977036375254339932726902993975899532472363511240985256878669044904319702412969335786397920508465891603965825231705934129973657253703444817689254991817897111546052261836756749469103469080234458961268030398285567753475248086983394866603040762712999835914949668346625955790911473196358434310613410886194058536420023784533345091671352217224002654852430312846172066506724939347720158566444137643447982614867895554727077844992952980057076882688620485653194535576710059151616536786971511832959834542695283722554861935378901603819936379749082992605507730373236736503481378865574477126889566036305417371359161069394446658079263884086007766603347219602739949056720157106159303283873286545157626658349065337230948398120336339085153525012325166139986488618688795521115635914621686868459195581289729725072037363318142182385497733543505981661137881500826145055795556810536066624605390948748134060199568361218227732945646727826936860679746232463851667907439933364144945085729795150255840631228832096969650101427520175112500284733159965649209572409798071831596284239348953820789923857794952077889248087173642586218406567109075099592859883017777422134760647991321920280353510840661008082330844227493968853590907150156457756806656607932672524530323227842161785926211139115449774300793455491346548404895462369843673355811558121081500243240231665783503083187944409271612496522013758322415055532833628056147064455976134880973361506662661418286559964203297432376461325970332835791637208667878069524665598897051029599324182331972599931020845217699257702833135468548575120000109227302701602338671190883377622923979766124813830067918550453015339489792434400659516370868830269895712805089272688430632731028232675244774870056219214836143753097032983469916535099399473718915240832949290574551564223471666982568859360620892263593407105136363382637393944941527281204491211634234971033975756183898114211831962567145325299267902905198586583571563892181363134347564124270184263238702950052026568007929601346705639980314356478458912871740411189482008175729448961752147772085863478275938035347391654006357205605023749198817295631684475073292331411046448891065203172682934437005986833579575162525999535667067998124408415363819255990609007673812304689849055996579756957618488455051209394090934996698789228322747783453471631472740272002364294707362839579167303666503897713073008653679973219821723577995789331304817661742695907162453507392913562372790069246207196801947237779035449328775420504891863852368597936708291319025862756782500405669954310515683681658333936222055478487037813522398793644507904268717898001275539780397563034657290641698082296006528788714600244881269593515517228491548361707458553675299883093674729063784760610004126388353939625286615438343775059814510850606794489086681885315137985935237740125419996145931943263173968110054493193963542510509278116733627791093486422789130422365268180758111339544160532778330920614359484279392001843400145987295604278513183292257563369744474725926773775177201208546585429497537023683524840771525552313672357580645044569255327034523061705263143510246816110731780362768019415866086045937954005431034664757137041428047656039141745993770350042620770626454728350652236787867570424050070599494709905121482954029440261881282970105027318681724779163374777949451294158180438836541983377235571113202710975873095658274973187944227583856939964183123685880251515239210356114340276788463996500106658102437244716068020714861184552091203765375946669983428912928260195391726861332706677580178531154045727367655635235068017082710772468424538089576319353845360908813724546722094055057699149742402653536085124503173421393762967608514279434778592462976016849586846072802244827702585425822017548713210024437803373655142636517782278308210933204728370600992692636782414430371241822796887538384995233740966549980990958234170772530263227904222103842448420168616780786950568324877749659250289136153714571998705583089523924276845394602707393937263668038654331969233097965162181715939959659408460185245444019274163477896919073370294525188682668973239200585977521177114768383588030324221960692585456790906838584386427156529552206722362415173113301585854378622159541452332789736754121904512884239175425286106298515899449973270807085117031581680131663335198501803913940215624567934397445787047236085067464559035149736375649472699097069162556208722435471140784583578645247210230104249293463821941491539351681556575159661381674410400079278432464336557568151152497631706113315272422833899853935099074044618502985476368025533615543988253515970869890315308316673876757897372737398766372916115397694519581914552132474887706576747418738283886518264022325949700793693844027436459708345312813465815711405288412017150001411378535163244776089598633492563384386820633473648521498579050258936867518211924026530541549307242787413019926469586558732188993923935602455550119964821994810884444692434810859182957733493891764424776480887586637760199940327079506634950822500457438290497651130226421332040708736481508262756841360842292845973884521718882114677362548238305131573405184393304821535899915215407694051139996340078144749493087264994937453865969819118615292423212089304229173172702116232461711774053342699190263827120239624380720563812300496054980226025658120118172490548437031509236971797720473069672729447793671462468722923264997095861726841738096017873437520244086055091131056694767590191910939450260235769263095107011290880838115974045977670930423158721629247955018442893766359311429343617884852673895173027105676901758207289382010962845819818618785291344275910480330815518289828167948245243178931311375953026732480046362455318936223105742652754965278253096945445997304196872739399021084148632935330835791519931948630586079727150030330524039545493652954977696007371357493163512543012155565491982250454034597954355504054888634908468736412334040183403242483029561197520395094201316947391653388795981980790434795764603777304723226393281927638455549234662461427827747751044519239647559978792663110662526342054330934905995567238490595856196132116442842694774728564913672156552737755181637125613324986190030544088099939542686762137767159001695279473612146738023335712339665673769580522460597175471451065166522584230243022298390031527208191074148992535204722906349419377832270246905384191127666272518128845222407894547376586546997040193440888035173791899216173384936824924170885585563304614746492279967151844234558514694367842402119682543047829003507169043575878671969371498483936811675832242424578795734284463714057282916479292409593187704253345185228264074835758056387196300804213547701551356558131197213726259041562407195641129721050501937358277150738455624133782346645021508146807212626882184274902913011701422121346001259703504429457480058441813082874945119564550233467193484740013549662813844203525558115237169509243638841504669185977792013046443865316300997818609216545165148318419813834838913935261808719763372171867670833236221719452917535944184007311558238495001499438622968266009822113316153455875931533388099234269229497745811567729328267413698741153484479812070799432298191125018762288038986176652715332328233352993754206290009903238915328051015288788495481793209711743844302561138657504573333386125700629017711712630573095944261739072334774971452214559391642674684443927135781946829348680492126681364600479111207013115095337359940544761098007935259545730602778239276514065832494276738530950553725320343286347562562027189553023031683525716718724849604103007943695465054716185412479696119399021709706337317267132383720805767148844258853612957775798490662363220927455172863783461831886537646271217761464073825829420552564750584177998570030087181965182732872054343768512812045896373226326572097757926053898060727828541545155303342087386797861412798747324137358065179418204704962280578123356147919036313075482276308859941877436595966050575848073164057258781848933321412224532608999309937005340324535445973619529099993379854533375204960711847743174245522090261094991457963042828350016614105041436055299068617200148774653384371091788270161194954976815008765659475705649775108588708229944916717071956155834503814897230061787573483521753549189707722841962814471873135959479455373694612982021674280496958016358602231177934292926396575307596170477267451126749889146513227402163848380114650932366070987998448937803149792965704189348094556299275003651194785653202182063724697265156628504902147259847510390592737026111804207508030778946698451526734553200914080196236963923250557370326957424191045102895099122701641336186020668888658777168849300228348040035064650384653624774078007094282996721432856142060798085799660275718145309046006116551694586671229615155731605776860769286705401697102446429647390072469442547740481188650418151784013435713203763583609746167575894294816476844214639707120099079482517557565334210948071721600740488288147001209925165230328863433149489660272205470851512254566571325727567067266982881229311509605988217446382075890746626302636610379349319787694424840548632407919946351285621193666738028335131626834623468475149416973793859170143260372323250455030314586244966984630151470002869897549021396664949415521219958777215850808485482996413186775038220403760911841349451240214333124099063888589226876352077911980226752705403542036513702599313714281524961471674014107412788851361956487368933966040918660434649035046433552537647030799779614184435450049312721230557608905235416149976423236331388958046580566868993562370694504691276663214498426474884728245316434590592834686625318367569321487390635693884064426795292440530397038792374069004342390515477909364976278899622697238462089520323007465117973469279464197203362039287745614105000595225987187842210387902759802605486260039873231884483752348675696533112847134800513911035711894123063775306653562456824615272063605203489556668385576769642172947628141164470930136596405581610515999294579563523028605431536625367470730707312875815246003180066090118544252133873880694203440050948248111296861608894523654262975365954723575531532713017686162668693654745184519708241491065327120510314472434523682988707848968040012057673491712019271387992348102335268585301536211015280332163383625834370706861258901213403681020298502477744720705834933742336598899029748988575787515747735831403622836510782071585025358780652708446379720257728671041930383090457162392138109182447433671723530880579954076540767268617659015795924308305666576171739130734102734507660364043648656627950820430658102156575655701165690684052442867064221143199358733801866168400577677732702484714463482037720361618490728791414693224081180463111207662097233253194570485398570703545532462509509020180681255086775306552144660735240634770610394646530297423522573911681469043382913341713115369294523811111283425336506543384633879721258858706913654589408074583930662312746619969875273403112100334068821298861066810105488807074542500739846822680801678439123989868224054336844922042276551767447598439091452635125963314050991156403086800910707308226692841559503344525466116848644251138778000577964856077364996762958259585032569664661573880164560123459449004852801350791526047058604758333083276534090947221248916126141167053373494296240636596286775004164071185216226032134231502088472461850945961399932393813493588684423578421341407829415112368707778854000058940903398366224475391115813935957061514704333808232445929958087396891462816037223539604986077637701266368839998732829147328497194208597480636999865238882635553500930476779618146166277815894603562019299656138420722913311538637165958314861354804667000910618944328550146355486815429934801728153257090980111016270467258251407111155886922222864154246644159930371015257158905292352503507252194874497490934841353194710525614644282643931424936446108253700238714170573961435302322768460164372951196386343556414170271214196910344502861381793354751379996325202985574829271911317393162652136731066465055398323323792120321229372790301828000591296600266697969824317633479004861871460346390785690820222096133757628711227899789972324984671329959301199930640200536172526478451448839575520998287444325084546521665356356488482131354230054858206832535006823655983776811927989216774289164506513737304165842750248975096467111795475843829920279422720309012382267839924120653734802632956280619462715725635717794106847181940644452749922861636317984337628312295541376035724170529793763813597030974385784742728672676411215117212265782144087661898725311791708392541466513757374510405881779889074305425230156408540927979047805906984746280032030471393894741158264037640149547346289016005485291406996679155714622896071231175619095436554924374285097353663027149286287752588101082620770870385889468536767244118653466549350706907420718855551125526738136121936955715354059058238780454615190796378219360481544633483946921768016523028995833466634245708527353448295334362314305069820866389256448806247779596993383126647917579121950768611188071806765292212894822690204948101993440601519529800758633098113420939859933822875780921886669902480810611895813915472797910724767914310134593244580373864760060279813835667681583360336492102208592635444106846604069874131176676739520003236632297720810387261671267089213382325065466104510697164761967837907206912498458877559890323054453600415242969364601170655024125779552782063596922692175025104522650694257279748274414701928515302004288131884621371325179985233464724062126236897913650225686109932326712814804008743859587307182303833843706398738399383341990057314919400060816273811904656414736671915707751463434485538689942462551002106248306107605546659984367091151582665093992573492807265365597796037963998343675102545356917251944716816852922020533032117134330513716114076768485491130721796939442175333642263321677912552459877728896629132543073038582574385437125359451718480674740012142237444142763562460274596761902484172319728073467297573257510267904866919013655681432436505997336357080647086839433783139151836694403300511403399026121783490914810951258561070105120523539590366278373753578921410504683583713942159421364064859154939907587055860745160323762870312374827399250147146344198612680570841209062047873454853837938321563161932086694000458691004219600764607394949605607034518212404319028121610299988404786001890295638799528178926862031262267732445228972757553090310104775816717144671140556163588347639400608531053775114764144812812023162805073002298731016302226807376788101381623060141074242500200894889608245285484855155788428255829766595772044871508458489874823347220410172480198691735793783269359473083173538446905894779326083620539770989209471283173414842335247416427698439779309245617908958176854962250869018667338706794978287460508209845287504348525639669027237635734131626550823182083205999874053394007339884475143926848573614133884784077095600983847366125963617624706641118142308204294525524139905660042428358016175787880533623058023344660180344248038071396481632091223110053532088619538818398249843090322690952583500677676965688518465939380566147595830971640007262215559961594899829278647733191267409390370798556219384131367465233990624330757829089386427675707996675955200641676773192809934559904263111120090114033858169014858637740515590600206228794639241333290115337630192832985712680049824875271232750874688625229226690814521266030480036817482478602135742716386007687196643459975900315932272333176433297490041132719084942504158078176339406636901994553635676988394633487786855257933180765377433159657242959465693531858518204286957407368559209076412846626655967089449047673635375525220403959183483379624127628883337614216816344583887800785888413585422070983954722149200062683109340979715800291217336676381411182396826753796537566427173426369738520954658342973399112066101813143686026403473182022801897503695743101904463483829544567423321968302067776440034477923415800761162731992036612801958168898819458627989442796085458636960547773587084626268092164933166619064848081161079465922750389571466642553443994435479080825976924212981558323197714749685769944369911373413647697578723177321445923330330521001604067855785343504839138959815354930361064609603454670666524739046054543950365304043974077127909882617052090483450831654091583047370234154948913056535707245510465350196503426788581580526807134069924801927630005074181547086923304489301910927280471266853903769618601482419032783077458990889434510234734337015670127677552316360030261985343963100217188294572666579268407211038125784795835735447131035821087183877078221054071761667453652690957523567866986116697269699871789386906761354358843525855804341356035805754300743959806141180708272025155595574703455061967294929445884514503598711869055514287136318985099717922899863127132046684701244686518649607094909902761377670337812878294392784626721600097311353240513725518538629134783560314269278963461714362602390190486563715515688870614543544700118072259914266653664968887782617094009662948119877196700480781721787513466845158731518406606173996430446369917714871376573906287604355757740336858495179496244663828123245785795172606637349407319787297309454155052008920007627724129035469606768766001929780770768229671577644624245954127403959997658050929504140476309987699204788125476901892751039554937087638418680039679110289758915241380454619682694381221937772173890583570335151627150483994811594633887093514244513575511108926004980395528223819234295885120605186587436841889814530016585993868307137044416367982791083883932153361989978098438647854237896136418615184502461905106444475740163117215956567827041571168168128434219887999721812437463565682703486857559557045018849209697201737055714076463072774717981915931626433705468147152784320119045007859329323262681281369503151279321157859005152664770210467890091162707983663071159298610568134477547535107207434781577417716708023283520266857449408664516507208837639612639974628397791512847819064153314799706597104418233303723532757726220795144696107182236860038546968961779386467131329519782032696890483617387929476879419369605392868131779801137446426498441720753349860581475669810458710327393571101880740067030927762508683954757824480086961186398701693432603221509498830645391465284037277143312950167092333472574344789267826105421225099403216502447481115684749007969254576923529865618184092524301098968075779048401539794408387767768071896579966315674749175362168524917512261264016089629567790165274597263318827087091874527888581069366352701197109211622879717520553696121739956712708332761836845909184730206622367177779122607403300226716527110375545176272546272779029959983651545445494804991436520210995158900981655440541988346680882036110938235669923868231569289530879600002897834315855207382563452723404372525659282260208956934263456206139800370846107244506029476098117249439981494377199280069401986424059718413231594416618690079459916040825742701357130304835343249646632647481501252449083619452114625798936170284423009243159926681232171560420637423156448282137337745739628545029225622276438861606283944233164949188555101498536454780192841843004064612724397022113783388500832014011428883542206768056377096641713789088609282555839624584151342388784884898358869818322482494434121772008053829269235512000325984922978362955514525926879185653583779943602736874080376841530281147224316099110422768187794294172978954194057659750678757700097614298748537853167645875562387711469062662425076608152461847074116154334707717412239165697075542225921729816730126738248189606910367544341242425492887296309382935403054586377759842898927443940564874616908490207666159089210408201960625897147402642419792134651232610710996200276418833878302323463342107172963075525876907587350949864811913599156102009748666074790694292519228511165729619092503992034968440770863121993629114659200381529100206866848726600721405282160215955094918390907410218448186951134068670268027572187375310632829548930500632341189279202070434235304924763887729925276819993391244286602990830405722956252020985427785087649818013531237578169972807481145913445122744038547821138014381325034560337509837876409792205506392729265452691741759279172759725710496344933482610755955841574024802914454951001218463384412941056047378148722421328970454808838866486940806440493867030311719057986516832568229155434890177225493292255099957832059758457202499684572250787888497218018956670935997261759339512117579127986663297403057427218608252883786956074040596438059866020403042825995281496699219056551808184247480394877441229760735583355446067829797704981807890269417310007418867296229275239223760247319440729702504470899629621854321559346871523460993720015117756883854068700024849754459152371562831253927794296737162118817338572697169830833724359517599699595855208336529698072832618422937802889330006105651234859120320188134160145684394024827223946041313494870378610665749015229390833043329182417630999688769412018693536100635818960879904232177015692178061323269321127236609885759359829368563101955166455036305460970903728973537934292941538502882463461926704787798536807993523418528466165090543451962990102136265099779197749835928773719737446504430196819175846986075036251639423698137244591353515275338320347538374666193984494658268970843585429949428416126923441580501940473285563554044858488719089863630138292545957982381258221519482523515692928209484799210798729387852025207229897506406198619158207633901951456569712362481826894125124231832136164168108719666521165940937863539000552340084917817225773768852576673478782743978279931067646269742212247881549492063641598042255453139242286258387846385436629853595389052256005187934388233692217444506948496607152172135520351286200047169666351248154727797768640732752901941214140258546815876227882676890609020755115452795335814926461439382175215054871791991384252736060588807223073606122345758147998530887174879812433578134483351561998169502231077266339829313526012767077065947509461110788260538416945935929881369104330388780650227891025017025070576274168674686072561987675026406663897588455040812695698381581305567412935168839129926761904067913720542115074613774735520955483050666712067363048352131059386809244699136149188962182973526585358352810699236955298527179836690926754480658974318140033503237428384767296275064334367882274492877512468826295001226440325068340961618590378641096917183304928447651991775937699895799538940419940798136178251143957209556023480636885778863804757120560683673585991888432095891884931248463204364809186981163615255014529422173361240545989350203309919508673509839419239663858052754761845117594991595912763582562745176230161676801890584596912265131658623758717293801141133284151851185675935707717745305631366026925559085385918291004081447236272272664163094527671433867154693268829874265779162242538244307424561755414256805406181570799367508007495463746269546445591609481808432343719432874301524311537943109531617474698821576724459932260136391269155571942722327610125196938801597380540246440478054256178721884483059207179509739974645428677015416172441877882434192218024227228476349112993654640903521232147269472299274524059794263324772270047745491100285010379426177496436267488061743786015088069190395786912170105653048441983347744978544846936786693282690701140438980704118377040011486013868836030151377027281721201647034782363764894646932298921757536235118729608361359994393882704780621120926980311612742000776497258805743091267482786601572830387637495426570863602557841573278251796411133565510595066585028035560122720857643533340784919715145319355355319922464278426332763074563352066657989529836284577321671838724069307150420473947399838889320284582717630927876867456521681034237529784941562634003871241458143999058553380568652087484466386823749002296691885398500567916186708457120040532507178324036214441124196244119828793085448633807289262264757697258865558279397268386724796774889476974729274605011466581230814405084519799524452251514777940323830415016762329566823899271820570455904213570520802508530558238244522294114175722875092889690601661446075982654758587765203389796489931385559860986157002938320345728513372532010743526178976697811965582721864909558862721823890145763767406673110902343275131235699614924783319676688375273421292640123378741960313970911143959025067233710663335585665680806096498946050524058445179404095827958385429045816054055993843250073845830178618214569081184814939257690336624785382363885164822077292823050635995892421087986687101747348188058205950425806349839114216165683809903041615685656592717999487701581197438817662144829125361390151995582044438726767002562598595440950929699307659113547793963953028585660417310345179646191687505705560382324099928518156076487815560576534335605720728273110219405354759548444551851564793396690402407382721676731786527642383287154622522936714424161112875361973594716440137296190561667839947049807906362961848345066968738403358985998460660315910726220842459788917273963739292782967015683528693024682409813873865720224970118111634107579179402578564315660766676859204541753405164993381082743581188659406317615883075550400317654310149067416274722286854404680302223147317168045463184219047734689318627926269032461526452157249580693894697298145471238100935325935677976852930028595095787751670543754195477743537581355628255145053361577688582026237283458153254101349007231495576671385615792178900506741938564545375994531579238760194013095554058705169843434110650093934849529126287267989769392854033723015903825243517869919004760696476509276171772622622789179839456879125152719051243609330235501765469259102837996907578567298098339745656306457929577958646148734495910657081485212641923068185623090537638422897956789781074622185272606980553136024527639384305264518251991785709494554955052639257343245565155749524854220723546222976794999492170511962044089879597539097539603103984772456346810947798798969669328902881502502351206472534125714948176763958073238600954219754470331397549362062398704861053264789632196780727930671061972021065816326185637289130606534254166598534958017765294096830657366505729368307998241220667908049872775837316662021710611885953200600125640174342644946953932394958299020935474555527804768140199526652196325260052130711407878616935805989571510683464518554971610979524093196999027526296614548812826758039442306899974842350314309480489453801383227961146076548262585298737819464404082290634601488025849308862059100975955706171862984751576437896568580477558806371466751899713419503791538267552080269640637059067532869719292140790196287898320368885401134234840092124746230564756991561190640563350452161000572512189905279443467473189587871298197017280544885818183104285072678594770170896909480647441869279254699293346393141169195546521847755571935726113259457327181161481585996247659027905804468556422143013733740090073696657678893466817540227871615038248032451131876023465655935418954651502303474443498753032137513245132030859555038918062846301869465939557765516988616382217542162735415432061435529254254941896273228509428127032752927696090245247534007929308196227407303259631945672119825794841589710292561174478427680628778118007673550073664003248508271757452350009716853672323600423464168108868763135890510745285343876292298240701792000991511188240466572896153184190883184428389351661938709935781265379226359383552214014268852868607904164826188903279787312809255653401814904895837669675083817740903422561753583045841815757325944425441430313341295267880269798568879708283374103955455589960440315051235002203517053488488351559418574344841013749603451555404359178874741333645259053223476613800203888055612520929462076923443727895428284044773128971675752754969137508609899864741743166448012451849694386030634126685731062234213018753941939368528555568760227606860761485266069312842004304197784543372495278578100663890913126276716120270611954950574308103420893401606888396481713558010874001019108745476563939498284086918596175891291842554873278515788117076592998212458476677542641744305916516529704941256855142856254824741766566345377423589718149515825602194376685446893404491657299646408672162679671567723058298689493279915134335483248367850133601677675290011118307464173538049254904263809262859283296398601017170288253758375186554602154771264147759065417224857893568548075090304469816412743858671848365419509608313254379327950274037733141672794048002713505888673630481770895274623974816551038830652167583588803770350340946131246023819009112536222521084664876631902907923429963890349012974777238113584610799872846917369369699261072028844903612481504315599198591428121694038809516329464196498715809505175572285694688950116703655341991147425506446683330808403498389145832879082142192498403014748177986894116706065659186376141617411818812405961151271560648854276988036521534261649454809596499778586457797404600357079245536009000763567933965483570211282080072176003604238450460944691989852437432282682087231409708965548143295541697758999486626792265541846176100208866688009306666232073706011498569839307694678614162535828359993416496452075684866076269680341320170234805481631910393948304460542331338599045495279944373440221262603962309352381716389020386211499556961617763259518726515256073861855529835732339683219645112100088522832940187168706589577028568191883397815165957385052376036233493474061121831920140956556096450993429247508871702031614600303545931059306879284018829505793427884213370721801036397471392150410037804338725311580829273267683331349096795076643622419145868181174394429303042748173081892846659579194640222085774829387001661767165197075996426780682694123638229972475070269608592675557056795723075380330110492124402914731157089579951477725072590467869330537391646654834105351550203656205031922437887985543723462876532002274961035397994302909602881376011905522451131739531540886821014993217896607653371125774471639690287759669564043974985652984158604311110599120179576703603454699922371330217381711225319028472704886882696538144786706354762793478439526275494855381770763847882573744253692049574729209606234514232173244983520486902296629100043420915617940275420539421162401733944868582773459506505371902547194647810080191959733847704958789181078113533445233279419183938723987835411394029928046377644928844668597775754928392927746265039485665760578958435667582939794806571974768767435583884995797261450953528961332562772576728689804281216662250834869201635927485647209630586046333615861600702107859967351229659649725960387898624898336628495726531601052978938884464516443680275473408369599132421077226494808851075343577552530585852106062909647344037497434984190169247613789872093794850344458921019816117457674896472818087943774461668638590526436138370030101737556063192007886703707537286305439491457264002427551395861139688542453154543862530027555959899780176605165171387813539622949039209904147388778686526392302248637911589164063754830506474502600170000183358729810980230857286791922932550373451443425334285748201852689113972830713066110704971249269882686764070757904053039493667244962433578142827074636499387151933438829159071279152797692839428182735762915304014234743637248976645537223060580283857183236586958999790543413275305675409511064188832949164629246788646024438166829104139206892405989541778355442984167295224338677731478309698392666496175249112857560038720391549153067277795699265174864921501232102147874091624449361000237077545862847430051305255207650663155849331014240850013459118787429643042659490647231100601465496522692917061545994878953778753809401470426220595296993770686848586231125044421276038627657236413233777793904268111344536723230900913928977881933917233628587427360170646156896520218498489673100989263152691547253710146944631605425887137199263470302113450919082513457402755389364423029141563294834714857297829227604780792173835479533764740925110519192412987776810675845798864820691851102590295791869127726883266722638624919536530601698899202079145363287231712485454549070756923050114352231583150663069543799414400964365100486433792743589414384402627197065217248019758073555009354086710773822936073962027223154203833472009642001688585703262538237778092113928132811531650804147676657311331264753130216063862166434412338366952813611853575503876115326523990699958067330419291476554099091815091374162399543348638206880075223137489891540433456376816757556474413339205784273282525790638515332486958655632172125626493211043022768905816753070340121457095561455675482394402305723575776838401344136846964050995733565221167705279236587517753366210272613761222173487050599735675183142826292591292841387488469268603886339550001306912133631922956343177584182492349248194604719820097880044055145856103078320336321257387073919912110957822814320909737248963340773725822715929270541769958875735088454063485983206077702643397775720891600867488691879280217484835411814977994020720595022877369449410433569845051231461120298896311488067270414393633263468387670498396222454528050330573523216281898525673668680314219716327590513862103995502628400852084348368616061449553865376522094629289925294410188847841306896920166296793451413150334491582834595173336348831403395922131053069462267133805252355904794451529170515933128525245327427399689254981721221076242588479167865645982953475089499641707319037103009742483324629265363755177139851488923081120305783392160260665833924702163498597013228393746138840639087672648303100709041549097565918603994132330250275800936168790552940678913968893380120640583572121507215088583435989846083839532729677153470680685163145093174856808341444791739638372741018037972810191507275619942936544436983480652481797199523668686792549349430323031327585366918254350979199925382616923249357352578565771974304888563017044834429377483001846961599308525921572997556288235902580145086353032009353670398899137225525205280239122956011739689006498944043318604657007479609350205481088653737468374844246570680279729543906057394430554377795050773605134431165437854680727798470082276457466066141887312592602784016311126106097042483650550379302297174962016736363115624148378276480638268312061467820448640697294040544734869441614218194753426476647339638654364358588412856808575358383483094444516467751431916700533375679226833795715557133476216485592131518061213707741654257898514040116229829651363413592780063713156300971506649370117950656089313859884090128762412874526765414341296293263193688315279026404101292792068749052531934954254914560452453697818057436039216642371299435574923829365712415938443844145322490562486001885343723887310410385906742092287259549733401302917843032919635445441181270679837115101733034292831414422384795017421031976363144747652674588068476992849604193509784608681456408232236471149252948410936391192830589083308577187260122995267773309826672839840697348980067806646881524511563777156577267977153970987550300279176580275333366716692664629292809573776514804071159734939015106527725952950854977440843841369145957076907766734536202338144939909801417995617963690838221718923458126142567936813123578735218436761361983464924464984661712686134402712820303690659297069254068293359590060266401468902893109552309566079901279100111043454481568141610369198944604534439833188936075284185126562276632844862898928784779189892705602551515225205293717033316534126748518552159437856743489437113693064565427150264437218570224348502286634864371508879141426999270323811291993057880970594791901789514971566210764611760850581272256784055970258189559035083321600512206191683015187806989056070014290958608047555047267106394876273215889960228554021454978433581383153913800460231189519867052539164171260797099656817403633586410952886175958829815546924496239701642300476020129160545334566647694928591763094815755687280388537314719719163098323576024438502676531496022488739554036709637258996585122126747968941756117992107317314921220106172088877840417303505855317877770291929786765200280450285929325805436715112053609477388327055979488325852057803146852763001636009145931826546791720207988792944861637189365176252652486676531691088972182439825523047837175681152851711973591994980067633747393272584548270299977249061156814134470978474149111500857201462238237488334574525457978944724470215445157121571641310818585749023882270408042698167289432338302229169900083508040934892267196704698431896071970478989333231343758082834920404656994278581138524131886715279180596663770693868763810858517280250044282823430683215459819530766762555236383706168540451320887761992092011150118222738069427904722860379520162155110794788480474632083716231261577551104954139411849803637566397516074313231821315735827009523857444284838507535465884368966908391779565659173259011716089466794552823210922599014047047899930705396643982687680106002208557214504537184580698523709889103319205074460301236354750672188785209622435302947601284576138057533878788082895238309510783535678794256893054449734265352186606400798814931808602571241819869471430517131119981832762014212424386852962711709247281430430469842600225482695031022388045742263429568357223303485171306206659675885344714540344046523656768861251468343500289183258852962634289968114564371914400195905548827685843277400545376688226243584607973334578145981608704401096168392642434783302160720840253084246861729533649264638387828602945692482639395406432808686157045516830069302981101126202182990104486617047529113659059365939361177223122659269733977969273398551036734450936276977310394651757819956275774010551788055641296886128942751386123252238521020985861143283214349586856904784551519597622689736702227394654972532352374468291147626276661308220935553155183264373467731912593857607951801929127717586631476590282840478619964535007082055367234734550156845799613124086059544500350905177050337665550707066985026033849031437038802901226085813625272883237185068244560549425766758846390141679581534186368772671788432778631110113526840148262771867183408194042771424736029109018868230298337428412568201032181552079521786458488598020008739834181779027231882622197837159411601013292607958569624980482497660889072657546600343401829962802191243585561636617604812651880711103857145675020135038511290105351657147235096605423817987554243345261677205706129095387886980390408762354299312139326157752798808894375114259113150885155715330635757884408304239184434696615418804660526492017845462415313747740847390737622816072608857139325279833742743522360548629743433291843018028656668779998251585068018701983804650724837311594659369249462850889340041016917770635000055294986483518685429799139138600505867066390170154359884191683891429001340711759125368752185602424430309659610696295373416725105445898370504440339335092472610795294620791982196532149439606320842598613607859518565452211023427840940360442681666016742282128505600046996857275625528547446386902515044124287234197474558672963777062984469961656647308409505503706324242221924669150730043394516676170213706927878841615643353868862329235838135071054044979517098551244623916379588543043696080477292564837072614532622584009377961422809491003256650190990083434111027991653451552179830273819553219531345011549181166892873311293987616764284677684070964337688609967062768856878775274518305880091135153138734488551860762027733681113192433528792827503687406871274059825690208321791740532249296634464146527677318916389591745176198529557369209799184065608081964427557376472775517891366874655693585665847164648395060805087664491909239374856106375585164917463464395292325430951126084033805956470848211533425405082762584425929460721675392606722723902769095668241078190377240451430552320238642850347074330471600708958623946849135551202346263961128466796719869099550654174782673860314083991285687672028626284179909635779447302319856027261249065727730889163857754244012572184410435054062016397373018471171888079405775917329337153832748970672572054881682806512174944840237266597615889684329448517448234406636109507660748378308902012623689093666642637655191681975270665132165151598163282272104547747264005675932737932593762021082996581619431744174557798921315174355075193969653424242656004817973148174303019645175397139350097471497287297272957181079393377240019876342858837041168877076663219441161980460222086304287827850291938940540006574993624974207196488576097151092401882974518688545233643071075471854475898510162027972306951641955020464652933330426097741266009985319475932391883269845022820251224772393626982987890703990957398898846918798418019399764352747238398990387646258056201795815115892750172542518281355255734962957062919456416019571218163747834107979828617531061860968927308628235274783757397544517449476039180387886971481498236651688034519251574274565665967131494037714478199427570021853080648597535918675069778500078235836999203549715809686643124325051080170138926253602659767289127227811080329374376802378286706728295352912771859056091042087097533256093611324658064122025699521184093515518024336593805749157794353541205312957412326539566282021087711845639161375982217477639682720749074483033643865574425053055906431405322419454614516936196582372909026483721806954649847960998513921763951193315429858833757852123981997289548471517128758595664909752099805992548083468317952797664606157508118490691782156579728310794453012540219518156414081581637076756253056875226317512002093440477314723426236901532350714263344605742744287696562952176966254813254617802912942732743124396418385880191143957927196222004478390220549485019509439235440264330331781674771485561858239036774817768407427719546958576935684809200030401966847283899899607559739842882867066472283553686483246739128945227794092257763793518535836924590091034788753508560772110263846080215053920136762243298787846154418107957839085231996330760845513025409129885687302844419912191502648993630049004008045377973986364916314943764801078786031219825411051121816425485951673309244860890019065143148956358703658490497002077413169713933864563942531974227519601656469874254236334568239215474081796710032393975244331368318929323530221108697156569031651889634682370618604237830229248482614355617502792063507983695923549696707473146438903142668577545111696236834536213729872644074654405687431034276008328553368676182141987102780822202256631554151661225599229691480070198056407678202956066260010622088535979602135616774227131338525591383171077868688030788859005779934976707504569842616351876227295845743282398987873640479463706359850897123862027511364731073723562367431823253881831495839432435243045315633716468078831605450865566520913476149115865647376672762917427945018734376725470413898804728509543173225646817261576041934961070524961112098561793379521838334812495435194283345068261727006500161107894953915634090228636538732880717222629935657305126770089251422846525043019796672824815509943498830772465367266379310317766921801777030622401909056125193584675269976790036970863870946836545509242139836999420842940411800364154209114217612424382330802220743344532458950815879889211567499731296705234971481971967672400361278648894959342788437869399389005493055524486298045910700805589264514026822524197765826175474295686623566191660167278852497274620320885210651762541485588896153325168645104420601211385385436238216537929484625658830033347196846445941147160642329423648432138545977825634732538543982068010355822852240779255868864362296846097881552886846208044185572403329710310182416498294361312136698869201474016044247099623059129223549987422561859500080745788270164086692383394242302912736149151668179859939278964244860278536534345762924675437519611135451289616952397433192773662499432194993722446283768697251746746467648814541766065417522692941429383665138786038969869816730307325183842212932184264519148469109557517383220525611381670795511254785585466660203967479066876367783895365876925037437193296955943765422398734529651835538788794354832001795895806776448821175305647615703771961356286403477392043229921789225510584494585710175291737811245183531920012956615378161605667759797437548010913314436023058062989588737361925989893239242055957851244046842629527162818660066186020435839337805168526516610605479469173308655194030449798113175072563012281859576104032030799824798347600143524214698745252587339081463107426386519121121231074004759072905969660147558209814283017564469132823698735053189750402146351433155374518327686347494446796089467603519256694502969075023781725307230970645079803101929390412345463412912204213541426831773921262948990216780898828470242335478578521359293324687512967912570368693298754271939704017267943989602779552232642915694978204304981593068877495435315460300325179371240720735131142071077809033959609500506685080283474609219820669747982357600126281591978558350848590714013753908150285524455228176580242841161657585252374658215091316085986252649657025623005695488908238921403605877980031662467122717324809805148807340852308092126341772749645768119299719552772708156595539020704513692025465771957471803334359375813286405733049603441109707815420928507172408643352110649274369657681913358137056783435047984035245087841893298785518299524084079131576271047015005785058673635017479155307396185012803750860528520864048423949156837431944302764850773171538396720354670335762051764884919067964817841239771027147554866971251687845095542741980188664776628405698786702761560600990016393303681182260831104961390740292216183593832144893445785919255644702795504898621343388610747906131883682454565615671637753127249187141984417592856057670825034137725714106379569606977601842520907777859744566263530670238994742926159572540136095049583621011269404992181129629997757202662369947793483958495184432413695363273377580987834049357483560346280363185535582912944449736553377094170015965941239766693909759348280660554059548939044913618702702594212744028596726423335457737459003655619803488973810877774087037187439040526833801993909935660463811688537028575413356949896590315858837898149976146116601236847404887894386984036263567964562318164580115539786675537830203358053071948114928811788088070877159905847332690776273146447635393944550970516345953172102579924892809794112440247712948331166991434306214352213029781815429787631357200535475326455696833500194165526300933159340756708694036420943990409050330337204848248479360915458955677343561986694206646557664996725865097447430707319843675922067473999425774883142009948436693393606259898126268624955508162825356944110910728591047913599160383343416607910214468501720889373738851729464163624412635206004528705958621429492513667149705789570931065009020281861034657288039360081630540390535711256342506928492675754575217515526522364048647292950416350172202814553505617168003857297330039374222752342759342867060627574779039567545496541429699732457643073223798277318421190714941631224397727768382779173292041164848953687514795121911031751999155328382372466885250096047611765752668284497317909891003190177720641106389612212984310242528525363454543591879342845416554553767888192332521947561260179976373110611587211905799649828162498371097842000276092882492546596737638796049465992300524917885216647060148528824098401777713101676017710858325341101608463067194381782701363480962183536873105559498622257806713717965362983821744116659553227134512652535571289262518590829414444125912743230069129177295158480851372926540363356561014951573140668563033951958639962854438446939130341981618825720868078936163852607703581584301604935083768654253465573904341335245376200473797378479060259862619477942544058599774039470276434943075489623452313192809171516198396239931891124916243901794962654514446214173853827012371069853422274173262082575443820982488358447638013377024027601849825685728030797136236743967694811612482208952684926160372567034442553745589377963495501580586439995574034238476133759601850257544134828002758975572214241111080466349929119593266981169495041320749155102196358152216884375821986218352716790304525399321127043173081603999682628045311407612476385773442312713155621102285661658923961944076476204490560060388551179346140923201415838689612815809929941782711099889382444266854273283316482860635948619840964809262324202054534588060362501886854801041942245264842504878689747523056686936820210749515203808076053888709669036351307867906820697627965833466218364793720221558022598407815997954573561536235526585580921504272024755980497566217798853767159785683818687328869746621734155767059974859314149914183154525623389670954945249529063535730140016144035464018963973451197195419636183813029706238859866167609133781357519647526090021894295748812868870222596182080621867748509450741076373995517174621033339937924196168168696329859150550895690281188643696936990018707612769399992854277336964519355169664016746519374647645083707151157421352053458024122916616321524844781427366350353144857076744531681675324909664796981572067371568523549229503020392145535182729503440740053386477794274078815584764505339817428257371083687457167952271940974717007581970060386708763051179465415372232393752731120377213604769618218378300464985324856522659095310548748442959766756881797571515606054956886317553640820353973045099672761243858411764759586126971919400150566364996115908200703764616332049909255394259024771137104457606373840480762736069238283076286859772579613232643402528503599707488745054453733452850818873997775487408664906236923743284534274766379532774579660859288765114494347732126697175211087240258568122932281655714189912020389995265839473784646325651163284616075206579879053112517110104281120353516058674989926224156759627812022118214787194398789725762752175729393057863572767469228219540410701806422003453768357329261697694768739643009357567084712319992744407290114063410084387857867919048032433649003066347265246570088231907437576139241801320790201061409979351264826137017906575250639791114891960263060177933600867043503993912194902572716210553481671124781366428054802554139310387016120502914812153248735547375592242678524082742558310602636876080131317008751647814114889717538516250377302744041125465929494835163675765347861256166949045999157261200137862743407886515977818903419528320521332836780380066240064649837281845717371229910105816484886502571264579285786205809992476009130256540410303696746009326879675346241217725726850753381899104985798428332078749200835269252391547014211630060732909224450877638070691620586389510929268568544276604404720276898889197351050124919900858352576131201810032338819220015545369444048255071440833730755940231958098285173010503352260292884126369738220647969247629018565140135712470200816106637989948858815948799528328843292128930876602543990407194801583266618749704090678663707663018914091554630963517933791583842597153035374175580129009536161593609307128936271352749885442143007969398509489648345285673246585684351099589395235334378559142081734281123228637765522333232573530879682335201721712340189183825652121735701759944431556560319487284841649331014837038519937135975373494648435297409653599226064915513853841321442977565461820847297366814073636370843656748656332542422840313286644042439966691902210402914670972629059103962341134503245607286340688156957069503122606524109187050652958501491364722435061593690876423857216916467935508816069087601453666085210569266914537462776631453151761457313543859793492574260405418893608973195108075656066188926564894047967281474260613314552910125783982132643670010272582695870991703452026611594540465975279268386287429468951696172994047660966107007042621527906900513726145227138381645659245836841696586529984844315052405008928684732547453337425408051472639574934347160956732679872227223296532257062044877699662002103448113037857060159010928594499794982741229809933012399960185310523221051765542898527559198257251341780118188044861728318775245192231479638703200049723498820992961874188775296959996235437077527735912604721527060280442305739513533617514310529071284187010503050809058209208926719986185263727340100404112327778299097751409546463558101253162565420522794411560301326878807783972842800955283237192410579313622408703031583775489483389463954083689295352531303780323793083086376160528397773543918276177514094569979796459215949713674622452672667772106895065365599120995858398070373908609918333419724001543045583291217233146146742617654030204414509437750193589753021839756363224758776186749548608922256175457089999960822722983296640880428452613236334355712440062459342753275786677773863431548685444929961600410398406558414925573898148331699418484388337964211612504689733494156719724118060127204515695089787125724987599122159822289825619842613410505882236573585542262998635955388047404389188924682474879468709640724100052842107744241683296585196918975610622306463988041144725065919470472530203817376245181346525304607086178270599842318333825101358291026067610819725108968745453684680559741138716677723429058923013716547746821470644580508891641032838927828928560069081501247142952623402514731433805987649422378686930174251938468872514941253633015702037460988223440996545008615276429212533851526010651808639436247618908032297498566058525770904804908014927824960373599790711565233341791915613728831373109427329885469989608101109937258967488315623436602660977773760738546442989496540795492056321285651597730731500514823787365388887280235820817771368769452597759252506231193989255805694435196770952156343434490753693084655805768125933345552753624884898203177930277815753591639757780476468133215224363982016247230719663899816215743906389932515199758155170976685178257921889339711290147730103684395250139463028471288101253298545807993021087379308944013091787113462820677375995617880933350035211099580963605452380533891255602836138531393773475462394125910653152605985071836994586918263636169956366776207052864779750943535324099740780578021369933072344235406022265090811528266418284894934875453096918585977473938783078747773327277099266896320576500335991586258838918984317353028218703372753564514047493496187001805606696388952118251819896818384082362655252538173352511986097999992324369110080494217536998734488207353196004965175345798074346283992148566366730045814267745148210481097664070315287260109454794319942737471538199248889128857629458872036274640474330587489355787312274427006061549899416249264967692811109920104002074306118488462302205411221173736668298631157888729899133640900524395198945003925049834803733176467328877607846731130058784635449541894849636086924621778605696022899292138265797336251153850682634712480059549188996387482012778568123938353685157540309674100456966152341669550984844716718117338983062675631002352847100434001572748708778953145219552020038502917162356666456124341089744617156682811272120496370262790341083306918057831194987421208187349329792370866875935799408856804766794166794307052237536786402970544938698923936357848833730093416076077720164475336808213026550421870144368317031472119770580284025431696248078463040575911630507712159171268765163421153525137009647291861845787513121659037429653995637749310743431024791638227176202466562041533064700051906253176125862475358400709694559626981143036793079644788824991769457195428965393193673236826693518878350215401865250839501485862811649728161024009409362070939032785198410138643948357448331327724006280360164613018010733822495836793827808403296409070511946381511125596215454442588970790896544057349587999769511652422043837609509345168876857856169155488021048807124707676124977313145295731189912089185349971632718014488542933996189802846774595962947778279744356203310275891017246391700115547059938855721681500286064362840094324902044127680365102569190407479551746325670729207220423696208764574950932163994413022570633657242192527623530228162793505336316331311974901715684071679129931583551436268356216615689113088462044131376983944713270377250325050395655543804938301167232840828519616804315934442376059939046473568220553563212735216309733672802441156228775931555557920860644410600994608429693072148301124145180813747187642764885470486261165526698467718816899130830617668212176758356432188238827051003452794093755485154850763957572084340713477968956565427409921383243107149273879172000466637933541898337170172006040844452314921849056164926689579489084368485567143053524592339485930454064652032635701461587977334905243486490482733249925581160233416166516174218791800773837805579339250298699871745260585985058038772934231977728579712748723406725977308422974003194341337448316306732441451840821467507355676381481675186848393295524966411290165776489633844961352871597705894117625657561475834130863409948494314778747985556157069096045419055811881186752842897128028369928067755016108854578705585580502688210346591332676051007947593461753811679853251464920387876857433364875737233116987065762533398631312259795287030658089328634532932901567888734370902128273146968219317811600771474130904889497821997732400659557926412474450127776231138161905329398354625360700283370574513587383181067619665190124526693092189509197762443427696447742362625154203555463516980308805949788732383334382295082562513743034297128450299688081881369944800578758913699986820543307984457165019081262963162672431353272492416905251724304750413378605923693896062939147720882805776069329055156741103709862819458527945385042961051938193609630713702234608908217262130012650792750329541394529197299418920500133503526208142419104919704085790791552420068402626996496472575390624314751678164380399880176412343057567812699947534656993981893754230905381163699677379240238504075884048077782489861344710366027953912298874239373702441457131988133928979975825156200523905673770632019584745394299294340068326325329806229365263536984077558573826814746039507377745953786182209757731740813968012268145245716853366619054476513185916592956698553147364834431791895551483346205590920654761780251177244394895365273880659690502515495571363589709083092732530782439926196788404331330102369422533380700487322811609230909661404398282065508568083319360501891438500410582654616454768967453940098205659621610491510460806774371710427484178061854738084000566941125069232654498770910515428060278300783308913773368072097686310807087941578371531834831488106298237253803562457531476143290623161156096164650935324898300451026986679613447984074296128697435171491300101935118726846228812620369797056954785161075759647656503066563050878376785518125075028168793988448277539260541168392964271219767621977492945987349083367986461435268380342170365743484172393110375811412531778487953672335745999405444431748145651002762398357419005734115816440483899596038760887574793062233355203628714233247279458273010235347284700955230987115080783798820436945901395372387501350080118272558204938801285414441351748727878982526928516041937061160058785836989515617188531060980762323887804980215110578017002962381296678940447999682781559291278384259061604693067810869396480718877567073894813794718499434066653169585774479028618680235482662253237238221590002795821912908761742797347228397730610698912952362193796179284213683529484164612846098909154799800342900549044452077471710515499261239750830797062013911610046265268236088549310015063645945620241448146448751898042982414192201050221475482346554021149567352434902843120333274144524719578263298731282941018414666047162595248505757500172936494936870225420195453495093052613275578308772944148543366085612642500339132943305141943700733985509695123199279048423181941291140682625516849522980258941624745287581293110340846661811478986686141489327221330217218323019373976454439055400139237312546789090451422212144028005737118541481178957129593796281106209062173032813549422729578493125691721170791836604441825341096924263901119839601562299891203321020874161009158360142668157471841247429793606294073209846013960771016788321217348831046754380412688220762731299309637076166240489289308053944088312822681541215848472609399175681801123296759758863689036308738903581297525842546550686576100810354309091824332798229209653996449927453799358395140414516131402522455056543446134130560018780707604587779794014140723917848115020004995291758950637996217118001895760942730977938549213577641969578304896366782102754537310321545655706420086417023885218521726591448456482340573551460451134630374110653571790237290346448838835159500074582271370337561133879864665415687642552679837116322566807788552025970956837055971026187716267068721696492995614960674278332178831233176246957492565818790656596106688415223375240516775957590508845452639052816786403516295705078495196689840193577951028511821071171343532460543661542578415000610227462858453498669898228080084018998420506080374604729623257773263011299688213181327600061040966688607849318081726878267598431673111986119505019130678418445750946111263362370670370057205687840100149596638725412424125690530443605433873892743716403115267389940917046895900650029233943452014231649416468332424620159997424128445796109972572709862645195290981705151522647288605783854527025102441150317232603247814187755983080942915052919848452309676028118409804626130318670618479415248977554807229566873873752593259044592660083198682473445614225475127320115639292705957719411350638796266317073176538733145426632779893871985518465259217351200686579711811733578780176453407483590019743771896588610938829460532749050267737117281602671115989417061033840328926233866773740344846641881723807493089851085989774376026761279931186181467714491355906572839044189204259563194338967797262635869068292403343822837557631974370353676999053778173063077585810990540245728688413182717326198407853467625868537028074203306392117826960681702038950970008114579391691687553058879485308570284177489902642301573426873165029187015186082232607413657990081709336341282616275142788015156279882818552120761631615115037371551821729165478723710214218506564402795072581488655795506274057837372652673108171632822755021462590056941746697632757149230739627189447686025156644303953826006476668097124804385604684962439252415316489060601548132821811643981075774840699720841761360082845304747179003996808572775254504444177958760623554998293799375454347452341368873196198137851832493473313537223610228069117863616310184536456130548701157052031210627367708775306702566934841889718206061535310304780987868049900452494088201521341643373111459144577040909133879324200147947798808324728425906472993073719247260306463771522786722303378168533020812728143135807229073526351753662121104874073356615963840592890975119599242064114648651167776956410273072026786682786601111671139075256782947702482070619656355101161661607707220908381634728703462470103388365482000109699399801446132383157512274008349338920215040721032387530354363888266247593258051547274778746356844764949110077842489225009603344441776476867443162708550125921906113458870122179742605842154259690745035472736460216469489374932721232150050984923667131471451851871605385310824175652578204431854797593608822560831763103364422928740998533649524168494006521453946053218352375335817603771791320915657758197700330417721348627105533279104959798852176678334913227543600313818744627217305992848906717187395551663842402106841244777522487842185433901506539024752611819695158255440886335057044026268984488664154711852147863988494426314682016927671236634906433960010443401611765605588736538634989536694486249730192142710530968209045916098233960400689800481108904697089022241581761986464782638535798883000845555633611079335926874593474023180670147784696022674247572850019695384652662653330451540630660952834804116710219582255024254274705369782095624216959441875125728274878789832883188303311926305447055090301386041244430449077338721942675836365069108643259468485973087861530294790342225415037436191161412334543950386946771933802184133473143208822879920236475663943115775229916324952753465273664562598335105119293567050250490908832903198491451087646243720739956910038008955060179661182450834395867812158213326320803443632693159787024215872258192215992872275495889008082541857802146382139457479190347070889280383843112907622293618538674244222176929211477324680539776765646343200141290867674239551215038751055993702294661586393913048524202628252732718148598243922885950524785145912781921046461656326231102215820603822344339628582886447412741494066040544153661807518042142727950327210993213818174084158940636129466768207021321040582458232948967966937053625971013941376318915869718431646732376795559538718059276225680808352436547844711088931541423181933908834961068628299402714887961579654630367892734665199512406178969647300968195932731302342237259269631034661866982552403169784133428003120590824740479752056789303942495009595415056186418938006610887925316912066161261550062252940949699706325768707692691046751941527306867889189620056725952069032072016875517222446603640846648861840780623112079639387121585562607550223776778595849487570195837862244817324191898367561541799290635903976915668669294057611232494706611015178629026613372759174713425051873140719759068997209209419548381804951993535667748468254492713176290614218717375287395507475335772208981150068043473001818776219191631108236880385886139157210256083155062046117469577314263868825109339092675910260842727453768498717095893999252831780342455194757997311261999502398484526019344785305758497070114681985982375718599940299041963524613675549234433091001477656116056479683201135877957069697151299644189217582533974559154858648797563881173057184879468486811066266694536681684757779147930848110558821669622192369483900050973277135426123791880359042875184934384212357330964944398708543570586171813657844984499571081113245736568416883725630429322364251911763378352062279794808351418345234334924706506822844783183909867518418644608533685817582014439111958754469247015640772119282088854378957364287063288446021889349747773745721775578714493563643826581026107130811575499727775994278221626254936545622113609309827636881455162657547145215022604075830331975434392185564415275154295905359409284188664144825352349233214341182034874846250938896223625022512981734890447436263197670837975604373143759932812950669586836929190267215711911234360042198460046359159238793750435194261878757651341828904780562060284523478369232591322523513411451882330196182785649515040364088377571380610714311564354936534787285216920178464735866007178616683218071762271592944329623557787648808654608956928331398920557925399390724085715205777156398485367099583068400035637089001778854361921638687757451363718805070957820117719483074531357142847699039315383718623437643192045667228018240184633362538391380550422363754884771106324189944371534668040436346037120561906831865002830746918891008164474176147976548943741443076101112439230700683917497336757874142729637314451547665024239130516337183823593726805350924851588819132606100856360184286953212695580103306231476896710771305365324833443012629113687181609063430967436448349719512051378841508187429699532819396180721783892470082264462322528399663834405725589253426872232736558674779478530226575283501353115364859886668657403697023775279043597156825071152388231083880299578288032918015932586257914484711187011885383314632916177676977908257340126901611223854676227769134822375778776210533030215029939577938875716451610566110581272284539886483726307595423706088496747063388002422806373348500304958271773427938825641744704709335587749758223669767272191300074793004078442150224480092255183908095823973708536597040045770732317660016600652146306276983350344697304045378412238592350371367216542375590840765168570674385768414922972105294501984403963673974741516419642197824324780650082424463140808968909793561991913000913234341770973024796417302533947426460756783740330545481902158353936950676740552057040479545714521012174745495855044299561425731088512033365852469082806449642502695094606513317293282897818320992105571645255446794240132053657251238075327976918656155434026602241362828046567087344572625042027200656990264916155080857327803407095402439550513312844865542443069961658362154855049836785156745890971652905622171505628511900302636876093551614526710615717760771967773329670996264383071122952318106837952839887596874409335408408844290934687167209383543136678661401322293297806187817948351054960421546542594468432921744716276215862298608198438603052266200666507569239405681236632465225285703201984146937747569277995241145600799836841241401329609596609679253939915492382620524281376004048098635068179646957153584878660296037003844706704944485982096648699778783078239875432499968665417121043581224362181566275715136964399315283267984479371318465422318328659705260632906233571760031050645611720778227774187831510959783678227453198644461632717775901615013919769396789851402351236608454566823348282124597433881659142835376392868799705779590669787983496988485625394966799982047587900917309890052656641245252439663792806687331667297584825002639708562107866094623193139797787617825614702087965816798662970210942720552489479362368234132066112572806901969745203419439737065453702765436443769510832612890642422723044797454137544654773669325816148457288003360400632784390003117809625127288558533973892405339124838858509191141388303278938253441459299991956965974769394383202110045358770677640254434277672668653822270995098912983972697950483178870345531264504657330061571190646300912587165759260641457099668693265317936705566211584801001230682259012913129461099825598766345370741358907401839033708279526613396751371261519001319029734437198198712125215629147012451064227690695546806675358134467459578232335570779347100556170037990203701813439742995321857196268266866824656555251133675383003439943545428683729687225873089305963128814116110021290275726856538704418175436302830212247035528169709599340253174174014911351029639338164766882448346438487937339966100151770105914566105382725151072905018085190862906905786987342742168114512729140961257878475494833852096217893774565656259658151395491575433140504007454114949410681360494822694420192562538539426626296015593799530692755803443227360312382373282418852805272727121346675734570264210289426630429198667609382948819821490530630349467650476265373038281939386835728649983654358104871387575340436679720051233178481527732006605602349937390996104510453211378019055084524798172077791613788136053019282566995949358762669589448249794773436288549566705859933363986504172235352099284402267907270606681617785650085422700706313646487445618214470817077045141085144321014027101318325740322409619141596854698715243423565518751221550643020941499939210465357119317877947772552410073414091347749452966530179541755234561341553628581120382244843419210185248586155788704895915417072402636255172464695804319790412792573217921179879978294963742718011467950618597867491235051401647418718882751871990373107307172036025848452791708275616874548084709863092949282493913005552671086352794700990495680115987147802211270389547563799371672870549611278266411018910897974042934290249813036829684294184896204032078582220671706352339288074101300789341349103358641519744916809133349833785121916227902331890500369015406062101010198484980820383623530484386473767222244261177529602608975831278003033776973117150558283211566881771408719653797863990226415190468290489747483997242080014462482257297350563269218467388186824704558379742159576267098668651745181291317211683810663545765332998040517461500074029171936912248180437726397573340636564043118702875901171362304148723500064973774067533562588934292858912573478993507445641434652213146491972839977511419536926471642645847231355453181961440719230842884392339325131055777654018927051869314897736448548032022377235139462443468193914941389220876742383042468641891130875473974112387257238470449435901557023415643100157194298320163021851576943717526674729301742405741257327112029693217245350094370678789982125110223148065539055079900792797034167017350320333101829733113649353465394751845500854573587468496353283911901010449436106949515852308585329144559412820107714117619114542023995039941328991406782789519421866992333204185690683351467413295059528818153683387566850256980904786293947019549256773506025507549781919850770002174709501439849164493995291220874724241552833452394211031104027398083391981535407035573829540930530746307559900645459686687786420305702702085434351239534589276302380631984636254066385231437704049212795832473035052331031798793257615967692754544569031788767232292472038191717407025837402391942607901622030568644351925862253203209234345458715245467527186061020215365241217587370184154147263054356441213517968981326177769968244009703382977651682552988013097846714700786821244335081352012949866827212290947282811722718262151229204615142182938367687664413338007998711991945721875318256239852139265094609460670503558001673587072969486654520544235525843627707690741390085642376330997205102765850852927949171068781287077526603198373097181854697839464392449936513317501494964706443017926771623119047013889512873206100846747405580698996562596556399263807383941198013702319589571414673054640266031517089271974292458963928343963611971329045379099850620059496948949853574483436527943453038596404832221461917047585408902657811779283196924439137724565147323796914013750179898946791061849242216356144561951109922720530706568639995774206493854183068719153892749833614038327993478586401846693627112821003540362971043405253358949778013686858764069020808603197281097976007264427610299667164009623278671622779790110496329591461389135236995699060732568370442183631830890388938539994920661690239171399944405155874758187097655287707149658654041653509391423674912867536238280409956216972888470166165901388416796306046560861915175478698906780530311619642674832818482590271786855838883038459416409174419136594412239944069034138685771161800930012643529426987902701352695653834573033254076782479725691394234525784215949079994745279706331153527589848202291547750845433973932018685206754612230818542441192498320146079745186937022268759479862674173558614349800035075355269521840205246248603277857243031872798974568524089133696947494006913699475805656037516525194316359321657500538218765199428762354702530506420203164613973937230550262862866597073185209227639799150104922312853348949668399085077863433146592501020936004422679413364829542604961757568668213001864411925026396291573102305655590100001205015603575822524500861897664509927229312753559267123830862097228834148203979343275298092379095182506147920529221171151092568953896460328647287587507817986608907578555680852545359355864464157520473231520810438793786858102530455864683186060862906776894770553314622136376944245525304362652017487975328974690655758762538313898661183164976275412833491352446626658917503233568953246730925493097333302947524429297640323891630005145089790150263009121016263705229077531717891967562125773887187094707170366433420357649877234466198219498842037817492976836626558316100323237108540777174162450167944544137928317273041476649076753859804708606700644454696740563382560970201871677373289290320806792344323099534301729996252524649407580142334867124676304141595333879779063392768946975734727770615102323105484728279569280859123921700964988660379548732691210023483847786781357255402523927427806653171154980260129465717001756376595978630551855387786209524565292335861152029751792714408578783854207472496229017394281391155448430126722648053375454916162247823570134838403076257301947513762312363046562683023797810235792855232108876155760176476756569822803870341129382609688899157677213835402584118307803240915012001884069086787507086932047385757588663214208890846364788020247664311627308140318613250933998979064288236426847583599381491076518438635877142524917136916512595704024309253856280859797478414411479926967055952987403974887586816554663888158421872459605100774931757786851659857140497198117191398088062622367022649242703289622270842711793120812040617269752416445830377713009138016474353468488511595022233185699064539930101543510727603769690032906755584467822882995256734968471564307130875564572247806349299930072637335163904076969501732450287659892371342671807298392496038907712487650041799444556756350675679085105061791273865300417949228589916249703028865104690060166028805891615023440392998833664944281990834659408130655497202022434863607801860642629209463169456410038349553282570748470927576482457490358676728828558626521330037758801068757771087013455268152455303793180647212804131213265455099356890255201636558635175649447225429369317844794545539589993495165093530024482620461297826295994554153892140204637008709440394954237644393229896556792411132663960980153171653186831820985048174731568439394386971889612745499008858123939905126773832217387293962512071065792955609584129170743522102998633677049774964268639049945710908603463848116665837362267245756484918265833306231004934793771439756387621462850078770308300840938458403159291951094261389138761679924708071757655508256376663099258643974161482185899317894858195910458213438598360135629617608587408932238905029323083060634260833491271639378368282179262146295570594319330712489474193409518942221794557768200568697780380463402845823239123752115590218658875775440145410141162803814074121894858341195744578670907523879786352665831902934915210733807017903188652003448301410525030856672310659705177515553294100741478368750344956506425120444008445352400681055650435220721774089891325141536027378373687510505028028758648702373352097642175065688317119345522910432430711230091296126443729660192944681237995973029265960745901319890391694895901358790678087314571866895390142082327311324376606103116202212601711334368903702015947213365366474910418207123364917413503442213011107790389460879469962640488701482954224057198554201004867646338209166345060203162118396507109207798680230612756306364753600891281246729445458716877446629577605627716967737894849159654930897950301925695764727707649435473159143018421774071151869009335989834247177702324568997986721690881114279099401435897184815967565784198205127360722331294516688858850857305283670556139958805861544765904903217783752116598238134764515346872161069119479968608496810717480986729628817070424278705645291108914416773436636592238436552982000689061441544004675095437876342200831725986201799524143720452750964416063693682908569611417136519550844360757752019882820634608954244200964894831155287034056078695509972848233305644664827995563114116349208139281986944689232493946392905730663326621015978255470486608563264064842407717115532968169814752737455119896415341715316437943104771444211661284788842170414985126007011748332819737248435490295116760451208413395101490572872014585355314879865736846533394431457221376155463091346039219318893508210954010866493373539797839616245335810187885629857157399985620624765034990625936294154160299383843720770065547595197969049765575375419923782498528498602763433361423393177882349702456204490287141440292466843485057287411800067322688671149810068275459532183065709776085657596500607985175121871038176573267442146328990619143321444189958333341678874817892958692804765409349875229398190221858050879044313111108994274956375046831514058111802771613972523796591482219699023036335820539418136951173826057479677547997628805344632080591740657961227921921309655066073155884110552587317906429460834526441924287542115633560554914700557933875831665768472666000992529456355856827513990986922450366329009992127691400483758083433510516411880858193989992784142237214966090514152558914779706047549715937564482997538427135043099991375404087273247529177826846231413620508634794521375415406026380131599100937923653828577347416208980409135127911285062765323474488196511747538264832188936345092230735139445692618071450313607770919703085599413389996240111346492094407706958523992101850916730812041128601523418044569249490606736480331356368800458735853649004037267335224541901459641991568954991880007560252063175236891909653884894592092384234758032684921133973536127411442319204689199572252936824566613242422535741191393195349273226090545154451970517117909281597813968033508281205687318225977140482303112716665762113486639102711880201773965158870973364685494256525115204002664062248791016460010713442041977155410475285102869570025937148099886133231565624356728650716984558030876242910378356777255975711086618590518924761214376523658832208688651589566890809420246633648316846964947419178077490285863368742830526144548879414917584189310807895095864570460908966976197582278041963607153836705429496072132750275046933009823900316409017316287957437991310071076827353002493478190045219869097447252588863747294083085505717178901818180198010572291155384790845950444486545740213434519861008088328971020528935193392475626236050873612063465186966462679199995520179145631843241023346091669035648795421632910334402561974845496575749138981634591308131055494842513950478249099987875161377640712322361048985702935053202066949114146505810339355946956417421974202581566756823792247478622055522123123989257404503079779443783900870625848003429368615330128369319523635521097250827235727964825252220200189977194209367903482340535155814453685153612617759793803745124299618880235549711486172512131135720106634399981431937816817231633630512258525862690541368675493765146361665419512906138238274031254418349519246814667727453762331856228592843603055470360870736121473711236209291161039971719238549620733636009789410324055134228871212428463952416792768538090324268157265203630552122729380696410254018853327228134797434460563320000578000565790935370014089036078241997567176679144346984808284882735508915848352805313128362475776192133945279027679430715675957867822394676942965988676412118625175438576268792087318689483806771258972531651154909614691703314704511880165900871958350336036320550229962156849963100960576227904208676567084810816799140528680268015553711218639404188727967499273050732167397280018983103526412228941751931015204853944045199125359897918586099414102680165652996927007633292006303311720284461742255037937335917722583647959817061767190612121854524575839346720489033345867154849727712195615651552139912822868964311418373286241056799484586023398497992133001138262184016581316649787800722867287528120776420190123650217863401729855690696861560181969055582293724853490445603629781997980720598473846613813044389042236147706517062784892945164091460477695735827356234223721990828789572648254745940510897972347176816425087905313942982056784961110551754208549779586652042837535232494155464258507232365301660769390354632988859983402007906450883568389577638026475585038562729889880831106481843001330808124710380331892288996575609232230832256830913996635198659712680392534464633648090264721569916468325466857040643383913146816497962116930875587704520098150737070621502719294239271538683917752550180794694145863302682049988367786411222796151341894120698421858489105262924320031136463007728147173496789687253603193992468662193951684261300150752132442906267351397794348722680741341336343359786861182029416806182745053041112473295715857364865666352368732883531684843980606255382218885654940219281238332095857035673362404755870649903928435954167891673994437679488170136970209361197317544795430898976998308065473820432978284309867857442967797522170383364358719922781450195067719908341374346594768638772832225524754955387745420976135274702990008466578625667821736880398734300746003962935332142380039370663024514677758523581715383612066260036195935630702983669535146468153436148331336230199732340086231929520060605901189458566979079717153957468810547876383484487710385522194331512891573427642639675661648209015549235813904863338535917512942248130645636434951796634167534487138423078352390867089373652428704670312584439586734023254867503189032028557668033089608596745030562191037096814318223934553621629613900332533783392726954366197187912117055894636606632761053664091616314770321936283634036644919918494889242531736748416090110152287313469719113775159287843694059304182163865565440584174849450242196166768217092367561155070997357476404038042683017400598559519217316965598881159997480904437051531316722542906044885236107261119429959514930423108670260816317180253543955914110750721108868918393474181313643448282595138484890537413680184126668953996028577060764668306751796915047180853691041101544794683550499445715833380638347484114859631756273301880932328666935853297551013952191880622038356685173971219049490698042276190590744990500954893784160636564195718240007061661873976990798480112955664871735912451165827877191442511522465651020188326335846425783619571783497779373542997980867864247815941084291366351040779710776485515897044464485292343449110016275270620647804686984997792509997704353198177153553596342985604430375589471602145110431624984508416275744103584300595373444566569368574140724159372397796923732531619761583081952426717733007621189754428968375643549572845160952252116400501266005958692224957994734736739804619074378858995197327062798709104759820204527561355985596144161051711706272880149131396405777416170557877477059611058982845811293642374092421291666824757990608296745107871894215934825645486522199770813220488747125258245453189859520850110409727218056137518627543928708100766023778885179088232620281989157080799837922670297806942587445907099981715523718552941400412809090629804682054406722375212098528614959334032276354219172229644039298713071580063710234974949480153017510172424286137713079238810814360642608142318779255215133003304568542131651641328811318158337832502528749983713875755745682239833394060311417150027998878475915835759113219709654390217863130117781330837933325365462050998482915414904220460076857749777529711739904954679133456220569870964861517902380733401803988965843416013381977766370990676379274828074427025543865754570280487818981912728947091098369594265458463448378289613082837447543075640014533507122666497759860789187317883451855920563759168456831123937564223152398748285114373534805318542297960144007867348427824923440204248940713412914313640357142159732037598978403680274921393953644151275971496839915144578878258150735917418063799803734643309467399202992045674382119685567405915664538077537035756924861720322502741361367479119749518364818093151165048316835172011217697982719285395830328776576373801731332878629757519658644974812504776779596436333879373028247436791893751644382822112466140066302233380789841938758313824982148702593225231770022609758419739868698914027525660798488124487475941304467337137250421702331060512873785195706861465466728675531863398875824458573404184103606438735515770570879894197010207540005018016427020528370877902778148458292294187361955351290309009929496846683769564196131167627230094621460909295027567380946131735703540815211000699728055460326420830544248522781384380547360150409940307315736091458786381318815028868532587648657125589554125314447714704866645211134704227627116018215086067963372428315003299835676551005985810645515722478534572987067454912973445181193161823351333615001557261590545031069481706605584854242066879837272669804436419594511741264054283799948885463459295604095678435584125614653902326577768771347262408854048778994400060801671531734753170752491391055989038676879870587718987699292556601891474920681790925544072520244756825223033075891564662992460073981164810273934104439296131962334131961687160175234313777433629298509972471572695799533545530641160802618864954523311607753162980284734802178075054324991629651518606307508846065837555109795576936121102903115071456075168736457369204373914503012215427454742256574120715945721622932453104782316408416145503542635179424163608830980182526651385892070223766709630878994787458524488793993413304391274277578314626498685751757360082448716489157773561276776023018304481106847860784398668396844241767919887395564872456815389173217320523687863850614557551862273276428814440928761200867145823143713499756387176829206516757825372763082288955522982000391450446540518979695517448428570919554671438103077834176169655565134190566432855790942093563084776182397383099438427064267919878025614130506583870256992968688045363883943171184001314783519562439771238149774508841817419360063296671145866338638657719720391865425986008285998492478651933306855915475236183534495751310222949447318307303430789809604105066096228989950460184493599584547401577027922840387681799333542221657518122335912427159494324080072576081480181447046780529958138076685741619325034202488390981712198404264510707380415845949006026878905622216208837752236812839581418103787022400717921986619755034564220854388222463250272945256162795286320312586979027273373390697555686570161245130854718477603433635943665170484357548731648703180910435678635789929406757580692042922376817066197835540989328751492595499974307150108540165780939016261967392720059867601927875143985246730784163501199466250278712389399910613434402790115611681425870007901627822656531691402630615082828274228346264472771264326204290074298418214275139892106209027929061766768871512915646508759352000704287545453265252256184540673731040508029550724209718652924122003870202536207730717591265358318308884921732104813908715205872342866378316833686483992611724809935123536280099518703875973906787537304778325176215012516802738880775803116377915842747516590926512360436046194578655111293354623583806638445927842977698180469032117896200195746283906941947544901640604508644774456533102540894053177004602488719334915426257364839607894790811554998931608282302683114405111718555519652532494571126340188824662033114758940395707374414266993517438885087491126016924557215485043506413361445758062609339722300325844603346707449927392881109728215246681308578570334551624065336326573128004163765212835475142635601369027712689084812316565061119539337354973753494053499466868706722467981204736429725399519370041528703708656721753024169391469440590800075883832744080950281195267235026181069519695584143863174322397969087846825744078796079176469685794822178422217747275236248661539360529219361992733568372052238042577877859737748959833437655448946362309646112927715783892415272883718345573668290598820981922721896440014650472235530290988649555115400405376435991839673858797003790304332411486000049939403336754906345646734375422002547416334619885784003341033312028764443380369459891750124389781095637933486067659790660972323449765584283454078516770267570360921638935143015677409064401506523665538546071396624688325724558775089744244693501524246960008889787379334050506901696994205528849746802163732940312852186205639807193540484919538011618925175144295595131374222566041452721835738444521236733008105997935298986743322873400929452218461337123772445850150192568660112306581051127111015904400759160120647190857072559053791514241639184156546617837815899553466097240048478218346412565829762119879704942565073358379730326347339495753803859741820767547074956466544626173924944004623462139704197104705275601066638005696162877359611477831838603385492336210195488266518871152689514836809449188380905605175070440194646966129405937981730367741828084686871903558557556653743614937700946539627361286623020383913594641530517446480510166367724185866347713349075476164994125444268312162799723564369847170014105355829761840689109551323426348560967540299761282698798650675532301479488007021249219181356919410493265206404362876466167945520429194182419215636684026790175498037647813302687729941678206137420683020383883209388627602323900313692758046717520910970677432680980358296123210285849862706344324076849690377982076684367660395839775022919946655190461707671545937827384122424535303574816539009858349409191578333552076727385676039690159386349942510283441725655519846417723170099525795704441583728085941769340997741021382362236722652298876046971895847586827750116893134324332830450706274042887064595904937030993822348124495909314256512607286890939512982158560698054549194824631583146048276736653798218066268040151350742475598239015084874793943265938546300456527951831222179931532744144508391482692646811800872936901168778286966489787740674407624592680148580036930946809698319434142946136826953082982181785026960349327247213621464768497084362517721243808299913642080274844465507474479703883561782000302760275273140045871532033706627603012041411614841423350194255620460268737256710388031582443959619802557133204714108748585950920403106786757901024839595338970033605260898473731334942312643397998080395712064141813623426130925269263282345924727275746672432771885413432385377121655009417601021518811391667231517358528975399226646254435697056448379461599974848856633700761600786394872044217363023713815486426220768869272573073416556075467661782397705200386167491011423493005562497064301579226561408311121962181253569263948950790779530960975136081830900662261570550433126087825379173620473176662266970454477048495832587397137745685773234707108442678122594689284965202609161243228287619051592873121217381942271464689151250698429111622509156407303608063995920564914931083850242099038082380524852573297441595428449821677080401755433602312711202144747070457291090839083420682275776681008729427123669150882703342988296040839478351327413401683173244392137643560134503592075453258497212388836939239250879915665450785761378107035303361974722173431742177528760688621682285131631319602900824065580507533787312620734227560235132473498615533317148882509518698594888980408379435856719762034350767010488687993806480626513111213113856528032441001320493009968838161231832441292666130613596450674039528252472240003640012562906315925254527781332733225059387836473296288186565772781736926576447900250637808871639760652383890828204404738992867047784925575588875696132889856044298108978552616437917997336604472151651459648911816313971322615531541288436989832077826026829662345823977680293066506293798822075511557119971531920238262107802836630154792469412155355120290276206884725974798880232511662686459069320890022751483540281255075927270400928341279146993932671809559565086312327882797461877888489830467066210811414479466974715024742790490407706976246735829357696658114669770036130695202050329635878873351601969601099017436905259603480821006424405879964066269091553485800474227223452373185505132715962838353128820385024570169907903383154719062364043376358565386170915505715036737067931310080304788055604216525438563308985784074404640670884760923781287173200011177064611604612406779907451205799502760424391275787911249544436275458381984362975498198580399471011595628378106576231863489075104442796572957596129480472335554768270853467255025341830935132081520895428129774458884091595951540118138707272637481702575659791914783769378878657060369293906112680372694033236415556553805863419066718019270914236373200532986599439239190994534181803959546116990107688710132490285488139086972271158842430324558203789966314663687625575653968560719865722315519407844276466508054635590376888621645638270657871193591517711609773827250604771338513802396072139361417526591092243523714063964909446558994492076050225800047532716013421723781482438444703461069232419577347696354305348892032966403428904623173209082665307734348257507346945607635566935059470663841530258740563608696695169462098435491487442389434001797640124040884285669689274932925081573962627791931359112129343212431534947725816122248671095791045959097682119815583744256352281792254537354118967122952135193582334121384079373896518341235796527499062271003860643185019185788692279003270841892114837139053730362507709919695802435455971256835763076654205409060835462104280834049255010308476189364149929431445368091318132618251945436300039420923789845899181713454841273908450536480080013803191702081470723468807034480192094703485168572403235718318299817548491606181819364464469672619025590380987608519159510548981946269415801042965288774730479952746439425623485021831409447435761236557064669881706050383471238281201773150509604695448427131741444707864812151274871499819133566454088420353208432301236640193308396842415636899924495892498227852510697261448088489015117926827645598852116745717133864830997874937369636402172817300190042141683529913025631046554324201214378014377564710573411438788475987368782070689517092963889260154159475530139699606949344369613493546607007073594769163253598370655685156570852708464022996724640358565542273522145810534454873711587987565085705679726784149297558478160930267863481583468151749028589012243405539136583104885694687191534818954645839620353740260854446585716308896280025782368445991708497761954742081468602214706521943839105022654478781239389072175295987288045918408538338637217957581827321091813705499375325804567463387134736059799878133836150221292960989810961145940614714726894054520136771590325606292507242466243238453283432953150538125319238280324007820481777720080264894919424757402471434763968571633400498313757346341130023537546929906994745916360015806861925088268170092174403927930272907516760767668244955004369433108198293374216369232976004565445188376085873245663379316614418679901053483123574891108743004441875533794972504180500746577863155649729816429305023244269335408276739401361880186216617304914841673279240183811416240715304783432384255461274888213837532386326272744659399606262569606280342751697788857275944907411990127294061915657437503767627432806795952507890751570045882295464635035772608476346500924613056148151833136156467195431863376689606041751297337324232633644865098142450852334810569836860902677528616298338536799387862003057790673736048088427561622642425711950278802701479901113420648846945580550853913178023295771211908243439325799755725613377737131403111232766106581982427099315009250007951230784422357432592919637399024318619054775578546114893347306896301005513753724259033008444583470952086088807685043536328394288666126274866647013882454699492652951132712245583711828772171970609937789247011825133167713276852718227347035997813816258379112786059964344839463629909196781571931546693851424571460540342187367532930736668687350264829212560473352190743421956373968095130184779222805140749550315839049705025472152423708471787080560891920000602968350693002672777682296428730277143728767857346206657684375381527725937788780695336703310672887538686171109526763743504287916837015522382839444285768151319529878438899117363220720822028366494258681771918502526411029564973322894113395113081311938151677490712129425966493072722106801757401662049084626592792596903321739547297994089534401495313972908055551068237872479236163074105400364488249018326498632909053176448855734130047277821367207185941504102171621751075781391233115367143163361317263731590418154908509559555071446814318916068329894990979571692235765050725916061010788697428265777096470253820784068857248251432598496382743843770534165442048514363246946799366144328234392042221276839398541886251483730142564410316058295743888019166110322694054580393041927308537138318421275041905785017153988831416337836511178665513060629605466958782166174591030031876555724612432273722968816755856064786748094795654769779135171497868237235188078057182772031765463575832610147950624669851004367605168838663199608541574151834295459764434277785501632057214367417515916489605645929393689163458442914272979670277294269424895906277346858806862298015016704149112700957819916059273962660536701896722846238782635844932066332151020587549017366586560283940634824403580135225520270855220771803565355004569553798514668701972014494116118749776526410107901976135374312457495547701293608630800765390523601689804442165224406996986575242350387196597850462194419939389603822093917207795670886451211074972474057821449275826764439378800266713451685653518962102887002185713039582449392486862881470081962977749071959790042460626792695326679908483079948312623800678676668991985542024881765625743002341614743723700009593132671676470312196195269574676991493320957238777638492346317023327349777041342677875551486469517887584611569754496780360804555372905942245895760786813950744702379284680321949433417976349839613585229754102715408005826408405417457027766689929504510839868384850675879883030755206364173755179802296845125726219811789254862306438369670231865903309020457841866517286756729310772468220591290878623949978302242399294701785683718777576597493272443668432693493948917002952074292647427956312228223328528891076304072711136112535163462176172489468934557271446323196009231714878717006728327815717166937638092914213773149557891552833399006314293534549124633985039855430244555544606656873749599567757089855356959419990030470502983627235247710326189603396814789244236213670508187248186081342655998441904256706337357800624238122172990030462982022439371504693765376736164911541347048502007189873450986419775339411599227683749215973320634407792120084625228249258340301820127509219728213147437914215435880749717217935795402447226436530492232173466861301397762786878242352401463339269297643259453255487179608928303076221503469607922400617830441767297281150302382673232566073334804882475560859637744737587487380698638346375782613394248772336604277826673632971275175456846695874981609519735340896914831984951540265334866902028817629494453234245155817305891238963766494588174333843485209488225626965222693319072091432534777655056495411512169779878051805769710303180077568313143526451783232355015898592192187440517833146439939777347473792249289368079062362803889050584174978732355910656188504416845395073041872700750205562305791506545092827353517355921113561318727054317039833157683560674978022269852404131711767773814501556529934447039100169641726032332559603352398763553666443995371327933061158237368435110046202251749387470684629670435619775711812771064786045017391170579948399379914994215083244014376847940551770929293078502633491982193795203575320049138400124427695912635535212974992375755072055771955386032830825630103240631894868969558047567493058847351802706341061716391868728549343469476173876697443211993219785537309503639757374899138817726366828709234743948160746500751879281060430377133683633666735365331665469937052291787796256374274878703529805917534760001996800048087388185023591722624158509166767092463310327315267452233203377603195659355009551862391963240600347623277743646822693671777369287520742778207215501197589162331156920910047645615264289319845481977998632618982409052294516410940884988979584569212266753274031350141071451033580584216572983233282191659508443032137381059125298279505357496765115809389909962756922907114474272202330535507167007814811858307851353049202684941210466218388475425825846768283882851148621569169318750061107545982618773192463832265639848455200388041581261264140304563217549175762774648621582851409106621546745572103632788938313036192717011720515095632723338133916429302277703633798246006224710830162395961425163010303122489219237579170219915409410014572936522356827065578300904015461265585312912241259570933642045827072296889781905744274639538219398195314740023631396224966113094321038712849121274075645876318391138180398723744313731952583952086194071982077206479898022892702231346182944057215195352930847576165717038905337682794340723634647661856182242532752177880281660550526147013811391742268875625382348272766694567929910850740266912307446630923888178907958853158066698820654429968912012227809697253459185560429008509444761839113468475016338033790703847448127288577914430290257141597755564726107666888929338051229147435102621671538175886207329851569471909205530936593123155354314470642463777998856280382086465174792773819711277344270884642722207599113883200528753390739053129351593338680562743910121085620530438980571683974562719319572827012453560696416324710327484482268701921629002257563080722248008338195385761458252114492538371746843898857336438721085105512967649893028412815738013424998852532372941399354247703949487998850494714779742318275121720779062982600114020680312481930082170325502447264264038122172086439675850294093396020464755698461087656521719704539676231903674661941040571682638317916958366365467853832721951087425526857066751735239181086938838853648416557086618620502850033044707626487403654273708717472013815350010618293682456384278867594333896519327462181060367460691694849069089372955797062392864624814817252102611325565394284935163247704403584847067008877310648792665128208453613553870104894021091697197346282371799496145178968732817109815548408231849840791588176557999543531259669799295332448740194517629729450653880997024322850441732125128192700621443017785521069993681467961714587065527860680343557622985646748503956595450441843902741226521559058903239003391142065653356318694661180057364647979056633746002301033923998888564492247241587178719351569324256522550229106421206203072170421529568619654737118361598356305109904201657524085567616414606896535026276648594735735174145638659578372371499098322063856117000270758202418356705363734962557904334341965267103271169689884195230605969030656892120915896568088475147827968609645809868364849875096616130047540094148984932252908960432493669088187223800655124367733655720219883679044778338966232088040219680690420630656614149218231439249013165957940775964761230676910316097825423029400087494313301918043141101231296413412120472413570634746569102813546512673765804038019046011689343643465913670004153936315437492360712099646084624713125833396927982764570085596854151285966478870875942253054045745538166297916970838454462170918746013094831108943544123258745643373966980204854050756116185433355502851400238098629294991431144637678738810839267188909388613692186138006501586208191102444424593901171023870514428054727918783228395446199334089533677091995646761100411706615191065909591314491382861110063532544555626484119953280622281996228216456744173162486416173626425303803990701997780184826279043668715508693947294169908266910531272601485640975825252694928971634068160131394669004352942997076542798484574460854710696460722968926734555253596363803761358884010560241628589785748508713045682197957895763559734977952626532622692174657275269552139347976204592813349675524294536254415969170317067427947486316100399933908369227046415620768528756438040175510840589763924563284653928060414770769700132531480423947681080682783126100381670406853912685867783588895169865029365148576385786553547868086616533528222268063847660217214924291801636321322677874598843217923440542401055596054146484591212654206167116370841493138843904285302740739131712446624049757337490714133524355105151928288573316112123361384495281678380432870927534811114807940579266379726855413335691516619343183195303531491593827384334367842261090093147475793877747766353781046290350607309214758693400599248784795664587616131407680261684423499847093263644725960830570491452793871072982245130434726643408974521555031606461647462151067365049450583106401969504556892381771073786534052508677632069233094616602330064224450556464521684829978137520235375338578258687104917629399123251077594072706408155807377617407245788113837563131099270512551937347719951843516485564771219166170781448419786869633506783998922438317752250680218912618488594757586650883367637189325422339942991036421305721354909610152825558584840619483637156109450184776063629572651354339965953248499188799371254693849073514721911463313670320219649055445175502843922275269030972353201016319239783537461215502675323793776439444918353171566876301580872084615975133218827733878736033418711329179433759532168822786498905489132113772218209702304703701453646198966455451560782938419521981808845931919626511301207185078271580933481253972459125568659254992994248890227982144288432996373994586607525593632235092194158956461890342095370818161312666736933887101147795189225865341250951748108805455539808921075989850749226152108375927656340303353961452060239353172137361111172120771293392080164584958617596725771659845452951880491528250633550202286121853364991890833133340337097882246702543513205041923894237178051105874121571572629036850106349395641098979636129332308445186291517604456363727606019657375596552462045618841883439607314302424593015258388331839746018766549630575440940285161480539209797743159241358694565276911340502735468265388848184380515762334938878948124546450987179665443099248535401623303787119310675635131868533998108678195791884927534652196447233021430801383247506542438211846936725602181842647237128094422049691943737238243703770081929907684237483400468897425486149913927479024724165464413766382220878858781107557987461201191833699551765264599008533689170997537902338298488725954848298175673594849417002264141077966224896358356159494329351609739818629129853048908165981666530217697154343910838812091332220948271120051510142503205882353974374254468208145444768853343522079190065794971423195849740397974270452295439845611194430459647419736469468827822039997392087401705629039760836173348250025842976594488626293142972668282208405959245717288518447294876619282939665894331805836904769662467215603086409554640458363286528375067870000808661188783665059981496517880064468181475875787501651979327057535357878527864382749170290211546621412231514898950187598745934700908683447340350374669326573076702403091897978464745556571949497872960768775520055172886082775160829336456950470358901728213852876552692325996752255827060711235333779039972579343057132778418371768877808786636559119345840215790089341293492885633357112810883571585098842230870841347114058066736195942471042332910227025846727540635314309431125051177872699099115910039688899193903511563484455653680800964925686131436870550779118247912784174325432485029557473170655847424768706015218199366160387251744037993702117922101002743989478652692377499394251191956638805214017331709522979537216689837736365472786720404642274925799770704940800478596885848785622903272133475048064177833330673129701245275009795566880468008033732806088560965539198508608581016948571018930827407575229928883104318275090179087422614716187000082613827056236358439824170944225915118666948063033768277961993288255257344349013030250056556400975377996978816150509458531381039412301371561195969066836475748071060986969405035639234922654352136764921652810229524667603434265544588668192957678673326701621243037172656440751476033604095213881032743545994547724088064145393923604571076636200696106215152708451973622566032490340048042369470838219026665267426525947665789064326073590612325032385020097496129216121000753764384370997966872118483364829773906169596512795420539632091280497944637380918505788865467852689437231523486807432039665322362485807758430418210222157507771053926086654798455544502970062940057854863365599124904553256285633459743671321437885167000140749055985314733790784865266605991947530236075410150800438980926733693785521720993286034996783003268827502540038269075535120151753206143246751763199298176228273019986266660738446213100314092517990415833729757807556742332221852334936683303921173688309695032965218825620372546589318588750273689016179520763983473447552992454164448618430576990108002028426921889995787259824157854366332561569202146043402972780698480939703491760591321990418176237966178561764310356709965058597175636262522124326880994479971497334545034125509478206658494439436442996778153205205522776526970929994917825250986302587703107921504559624862078992141541032757124743128193040772278077561009456607433996123528146524106476806794687796432487861890277546056814814132590627092621818018630009640534151629091798973420788920578801940370821065242767608141598160512610392000026017949859746996194922224639729819304199081658351540234806800770053101266676255234022930222170659214546385065768820872747591957562622264853587427551764619741424181970972144145061205020129494722840313151063538118880284489624422432919166049706366103261730141631090315211300044947724658244848617088751310366052309697368246796084159854371445111172158219980683768253774851847183695821526945580500564061258906993861363952414578692542582426080557985020386234611299797713904334218102076522960752411910203824336064695717864126047732755427278949300290999053647070645713797995079648478608863618259393190143442452130125110413221451970477540007980846536989327802638630955007619820661929646895723946010968250858001708670131974854958485911529057697249010422479130496821087315603728871192893445023272396077109106806949367545523513833283050514388426511224851433126714611696494562416231646924622850133865268271907866710227547119645923141045235880178062287056673567136486945256722377897489085276623043357833103816438593353598028467700809890338177363420757654225084007542902865001644193956793626452140235019324014127572978684220520423742014667730104893531814286680705259090612145340285192368394532837705799307803346123669100847089167826663018592779979621955131080277556739556143041851769177359757327476402402538783371420851075308013961287630592327621187446314674236016013535123924405294652418483334872505349432016055742560462561265421201943648092527435360620965699673171039997703031708508365629585812413591034458398688783498754194003915096910768686366010310362061632746100539182317939747777654179182866600320776481911815405403998120205012360199520508497811179635878175310664746569541811219758126973358662949869628606280860411853718663799326066518101828727644990657144783977577456110649442913627456696280723222130251781342357679538617587983347038391184886148129066897164405589199946417523515569073586704574182534089255003866302818140241369933419288279275400016038609060023008484481092347876144959909743252709275853017410650362861812069325743425211067407959264276195544996930317008055579386314852713742388564721961023483451511858567773079537025634817399907736075943897936564968019025783547452352592993992168338113758424325126963366228742017530381072598138468404560520348501007179258513859011646636915156739562571399009375940555196122251104239735759241913803559921957429870478656987121934391093450459567453374594252006234418938753873442826628578279273816448756504371586468661373034269801286565617573896602365818361604113514354843402659924489901874916278204470313511630754057489050084723346855147467311571522241388125348563454995894403578731786667725350312688151185809074411830290680487810708722275247986365343825153727314918468009450978061314446661877927740942428771488501924328813668216133636758656532513149857454963960036992057491355426813300281647577556596018951019458670343996260087448751315431387933319496575138680121554133643410253531392883507508864206652274138065772003206386907509446430154638560377321572160995974275214628446187729905206178862301991323543154807628820510104624768664542445598736403173770208626591333998570361144062900309195312428925700979590944425936727062765626565098062258930916241257158212167446476268192471789701312076539088937467822992359850242768151677553932745233072379641224418268500228629586231252522256569540637167146792275822371184850511999782279379019508555777003538207813498075070115433252845642676461133615896130434600705470237084102750972756865445717159981410464283504418763149380249313611378060468139779891051851044034129612556541680717787648231081114045741105477240342188031025849205713481133412936404101419285463912755359721789613822924377018588604849593151751806650273317711095767903462617812745049006144460022174808854329875675615487800034992735020752429778264135244990822357132848002421666800103975689405092475798035956448992522101650606808647351280996635719522958251463874540394190623878548367289538268092856968982480809408152003306588507116372889778209061616479986839802536406111289636021574670717760641006075643812817374300389621971702146752152521673759015811165892184732019323468878007078105242016984961285201143310669077648950431291147694210061619253840076311323210207087040198492535471412811176820116286964060349519597172773483867438016405289791655471467115499092876225644801891688600676005448975612496113336155938398518022304323580713302362107944670482555461675263738222005692852619211314105592371472947799967347581813081527666177618229126661196393294860413949545211553581409502995886596024513444859723364046932116691186202197723507084645424868964091825083477911302212859584086161717204423178526175358049186855065609616689808142049363557308058240036173998485487221402980784826495012112925092018072359006206286901811035489480748771432202770241948828053990631299105549287534561887529685343587934941579195968203599090748870663595499361347807450469689160742958294186149026513107051497619218622956722906302340825598406529930036113380130175169127736226192173500198202999974068874788141194047266032572846812191661330063384696231227814848518299229661326827506451148784054517566208006255023066365001540673777560513003005333186755469221690826878087198315851798381715240104385275826667255298186192037298317130740482256465146758703515698171990603229144840609300096073392355481978101962398950594667555197371935911283610437187144495311599569057783461238837259950806224131067013071618283061106909643002148890285177793999226121099021061616357441032189735057816532120410922294487916032877261396078619800834110625140743542150683221617562035883454517492097559537433078510186737337157003702674407292168208666325555366516479172514000050430541125562147075980439644141780745374688052556935133337999418338590602664094464331561836518580722386510249132533506309122176999617821422843738701341712015716226582595614714038058603514452826164202869432077341152461041787056339581849664114319484777610817275614972698673278352122347692543573057499811358505246898572056130275702948649025141165630563169717614915743626143026329431343924671406780498138583813342241830583793543351188075390456812945315759001736433885755757395214068150063816178640525425913210016909230844825806937646646257559009291463026806989806415983434121878434351155281079009725911780007007553281442160738521325523847918947630372877530267089086097623412959061559412124734648229774729938679977817916858869093425102033501843134539437102431576345212683341675852522583340536496833514855635318212104061560670513235274132473396661790682851170126622770747175025293674703269942099677577813092431936931021337685600195905557075705440061214942696365583937340850970309465636990300270732742796816369782073597416892826766796909966985621972601145767156625929947145221305053757628780462390989005677595512333126593223554311689007652525529199707214852260692759915639095105165533824199935333374332141754478861922010173046426356739275200460367273971461465921597429973534187890210476472415243272088394411932919205251765574996099767010530148454519829218600342229973870596588721554532193000178964577301557565676879545318670105394138970401364251091334339289816477802706488702698485666219168320275952986497349404048638378043296245075941690706766825326801393764174524146093378385133574255003464712655411355447062489519572159898360290725556162719933761364677779752523836118406507670539447128263443794064434662979278404628328475673069325539046855677164067497623834573991561646466978338186916399991605452636755262752449276700524771087239632507926058183730863133010471013447883143557942394730986778312729015459084584019154970989998340957738666335420070667181460212719720691119337934447360705723753587093170004058463008600458409411650127423623185310177909686950435309302356960287064363930792070704713117538312674714827760552111086443834604452261935199751518955230255331043479839033422729868041169361976232986529366285180874974477678773776622128455287465032342565394112983644048764106431240525521757593106053186082902109188112226438746256575040450660414532931008981027040292392203116718070931179977219264423935439320942718408009080060982564476031899738477867272469702849319059487543336217377584381142973604756328810049602547768077880031611885596048137119581508824142992702965103728652868209962433336690284158648831562217570199791888574463670790811285350719550480676141298159545590689141652647929501926146019139421038101094311774345196832088586494679268503595138138015287510290495132503608505381736421412774258495589091435752277019962168511920447425401127229245444688583646256528317837746246639141178859570407207233210413141618629245016124775388563457026209721368827938029438160856360548294849687672150997919657891870809365155266205076143787022753461220352302455586543942566335836957412951909370074597848921841730565333521727166870701131281865541117249360955035313508930054522376977516268801332157968424765621701513868249306117501025803348920139827679620748357822094014022384415323950186688745478808359814549799230441893801147033347588388507592000920928228086900371900426734624260346107068627655470094944442987800421984673041404084869986241346160157896179099548863481938248785089255895321633635751221802637514098327882375199452503251908562320649985435480069492080394046825347275511802328977660248158243440434977988359790064384087085619714724977005300780396771762517143494852204107240571814696294405790985747436038027914382774338148927712454063667192203724970700725852956309418190150769959512547774718974679380413419880562943873900410094254808184567919769741878380608248225911193126746206359471236012038231944348253558742607113402455540846648172224082276375027961796358100728963199773230661019790948574448228134919010606772840277948228510910047909848591795894731212074142421875435556719976335812512885887664819500229509959771428853171982911850780540705191381833432594504867507659853102900230083866443853819041632326177384873590318813836589403027003966466670927464741472325754650552851208240015077318666205562818803453391940572309872116186001505829651443983841805586177081083205950926096821991977416913757391699184777682167217734477133597619033406882601398192856556798677923950094717893563987812946826693574718783569960653779509080243753241459205225086915981849618626645463836232043097846117577838954805641630056061151919788815250899042877967655029446726317634216087999057084017236539719422179791365402005111256267878732912489561471869253803073807067163192155879837470625746833600992151583197734792690491629513238977972451696750573172690059810018561379663185117094332738890965512610434106003562084464844136591681628442323741426270728551933443212366261161165233929214101200036601766852240175072384248368395034669201972940349211605676692918826027521027660735222548950089706957198152214884248357653023720202599931577959782466369879239863229446151263363577234343808140289817725392988821971276975437073776694736625917103212329742705541889500259200248638836316109595540224155509760415958158248635929918397903390961765277046093706807308104225898326557345613059946744334721385047887397479779256542604101484416307689442548424208119391634411365749857065033219861909596062348408320608027724827106495587072115810109186472156009292060405767867918891782586988971481916886269529647957019291604029019218703104188973978972370142921483542823307786689624503527192274811279228873249826754103045235710806499855657354229902319888860543597087829466319853957935468818760086763539406191215045877230325079884841901829938517002010482036945773396988549354752821543343809546229409962978685594590621486342569198610336691306655555149698326784384291475340322554457956535628098821796615509239931074474293755874310700340109507183378306844641059686500186187689506408205397099300736209195116201182502480899735969290740106936794178208465954257795702449597503900164476255574281667484788594847519548368659767953820680963583785220991688869871695952505550705956173099596192386430702352085781400251254580745775928721112999533065301705756083660124411334535458603669316748632408029148501088638986836119566911613244289412776776731354971951713810412424840673607653912346428656698723383412702407006643535126393540901497157294249500729674193951513127132022470063085246387560745438409203854649622536331074065068640096944467836784368805670669544721537376824250456523397764133069451308226121798633517127186859540719934015627653095095004739236967861181809196421393562029914774725317834820584561529956719660487449196715699064030236412363113113141078737398566854071049976651822777866512833626487674249587160841310351409780221721555293999578533833931554805161055142155948112258358678799281327730214014738664878592567427935326070782718320043638399717989244821889040218139238469838789231209239610072658746520066675253705827833064938143098401562967604963288046187398616110834943496380344951766367064299122201247088532598954213328924511236617800586833623266077523878672335882785348020282646511046983409358037288417811770209591519026865771495665396884509760610949046349473765967713733467938824269535799168097374655407021288046802726504756841862254459915435614872072532849201310806159029465002564997252767200252020810911477158486592094656838807972441893097022319997061902004026625908044706085142638521794539514389753608643127049729033650773078612802481701112237205240097866198665840144442942094971400483469690563471150070331097882629736117067645508074031291413178720131433756266419293099817799859952353533126845558976565208919700704480658748142936851380570094536805423869771796491663739475602599012929556987997641438616745927163257401104731910337567319427964972375333058387926521475382544456390109122426022684745884095225256965643277412325796447818640622593802632921123194290673389696211918581122293912473335280212165715424787826788190132286205225865684706768558666067503375474153274469365030524573940134987555633083500305697833148875661974810085990000843934183400608431247141779897502603106864990790026586075139499680976460635579740103335665569423997429074377672696728944550725180706039080451132006394956280189579734241653286897492823374719445469924257024220821808598833272557051200187090508466615761196525336769916462192371446027282617459611123526261052330790622426888366597949705027147147538022420517411342573654729034353936633142493939375518781432033493491208533419499983501549832822261481901373508085033644416208214141152084283726588202475742030136467063227578978790129445079712847340778360575837846304750201559551403543961036485956277039360860294336071963485630283174626656548822620441371968387766312941183813183975713414534126319797834481043483421402041070519147541797289728505668881418894559766675967689154676239288421673091849259110542337858624644271935606431917689281149088127987870344715076529816493283900858824873460139042331092169456365431203753897795052071187106614743794904404185499645488321219431845312876286027059705212302401490083694850620182745835999635059397970069422818825541558023013387530345503906470316583256622899076986055565016983647510431826716863375393912407389182806039495286540781256447241146746630782079023529308613544570548054251330526976580375858332618561605460471197940532574742881598884789320919624168501152406662190652219503137619725284589348878261345082956919797492141548597305130805538308202142167284916009602037287490635568225440577201782404581778842998233541415683823301809791924052124923228965857827580969029444923996621098541696443964889779409329393447840446287754707948896904874176725331705674934065613070124405171880647019975519090198494388618296563218735117008980530672493039985928644320919925427739994588317353849945306144379662011383347067273429362848862462666455936382799658262313749628719188896309156777908938966584987759961603010585429469113323145903247715395592116180677831136273127566338577659844330567437615233860146824843295123265080373236223877141066822097766365452365749228396835500739384007631058294141196383633982318704945631203148374285767245065584503196576256802779523460893395906533953362930971912336946824763754999536236236146631375283781163147785701467344160691306118899256108198551441116224075440012895597737838341460597304689522147989926523603468242772771708978052872390266959911161448893373875342044808310333416372915125473760415723507969230965358794816358722980499925872805648457721410414280546860427743131756141957837969530462795008745525597635958229089327387750752089733329070033680664737360439894438734374355372035246457214423807694113651059719765990786926892239267705140831806526309293494865001414761022245497466323652360176929296134967436704589510117448918296247145589978564897614080601785124268266961386229636683097519634975723661505629389386645404784263744860564122967027063466520321948098871250916727704094221253181490870752834959455310544441318862183136527643150261212505537095600586119555684005209444945246567808776798797761314329346883620134042794688393009763001641410302061895857789156743262772631576595412962660941644264008398472802902886583331873571332582325557005500045101810588207932527193670863906464524863299807165518379631868238627402411742101803166281023892145537901874556417741596377181777747688692820364052188589524442919965960112873757406346387785733180325660671787140897164160041100458066071495291441361616423634168686299905579594628991176377682798052884899553791379311063259024812475767099061394144156338918121269198683112018873418165988216283754657390990223182110862287617983587670398354358049277213061553099022025572589437188946677732187205524563974699124127507656784271609378543499877218727505436571436610877389482904872311520655751056083577602118051332137759675091213161617614520146981744006204390867526427590176177892507284334913894945025175253908469471260419002558192326476399083745898771447107406823997485644709470128953283876814395592227818573330934999599569459588322960570107104595504124918869947765192172359575502276784225217564791964129307926054793166116286328115554807721881701989431589031751131039177852718375812103138866633388289702794639069732376121576427361207729026529882735833833415002293585957881986183810664095628957243208850676399229272590947912785381576984119441004964406537843786075131373224965619824092379660066075051031858998662733952242448448384952453321194601735737251031791647535201106966605172606843010286678158480762309067592591949570761929670808796907473196053825891659789716361873477034915948072286680098307195810157357707068933085769660561923241173686198439194015428276094926185447244652144404158753197452758738949675228637607510469620935551311823609433397807006397928184836604360790826128048223057991408976183258410275148983751700571570093101324597173477587004905253966577602365353714272164087707003284910231121691048348760802075808027470047789642817637398551647191863458188055818376247995794059963930430764837610472568170336218155350224563577960349208227301481517654622755551181110030329176070133878838009341060908505324007662809171899999968156914519696384815616255466413378702694764538176052499215364902933719927131040260603979091086319921883636828895257044432329956621440847584750231514900081171202492741613890364051866863345714754381694679219625579084536484241659155950884716521898339002962520059185206983561940217334822995614460204395452224759707958705070854863153943139232472605724634710314032823704796415779753872429586548067134061356248336785085856454704116200419013515998884169164093116438647963318676470834948509404823084210189457956198073961335951497602979789919585635892420260747738054116067838767689555116478898556521280804526137862823398892978861443331962926751714151095990059980473061039197203494399336520119322234460819900867895243145758761437876001685201310557446286481142908122705007473626503643328825552257439001829707781554120298784872299691034058483421534681833941667244958157044852284024511410472923716137261167423811697976843508630635576437562608391642591811075349305330578002340568735892077113698416183407404214163160813858888834942007669395137184467094475828708868202009432517457965032362015549518084448447535493348487154821196290053982777648570065209670759024042665080062521452849249879059406042701806929140727441113589457394993236188475281010624364237283596884522574914641879307070467931188819166258495909628561129947295273555256302236934676088516814662409527602146815454159992038320077629679957326074544467935592644812859069464740149758888607826784010046687909710993177146015706579062895859437479422347457754481706885910619179951370112530888424889016142788969919249952830966821388780708273067459250814314157694363051104785138839275672458534771532972247120591048995117069803806813204655684593916302193522933760581994550662078512362171418524570667872782781287837023724093223770848183770039601664026312072658048456856944721464011817698041058207688129756271092539654029256068761756772822337350819862916641300877580449646772074664968468819696303893238913884967783291448032041092529058516689334845457715729835518851237601555290717737191534709097808888490361641055829025138053706293898180239133959754525916731686182602482868973500511665844486922275933695176923658963958984137019781237678840204581210833276555615851101772895420071928349670263847005627955625435640884411047801351587324544385156023106739288883477309787795591877207133767773724264368538710517565776104949298596433345114257654714420436823635981878050031419053662384934683289216015152881773422449670327109569197540636365484128431276319125918272883460967225945539408875097407088461604703660995999145779212481612296085244968108971913065567272639399469867460529393207314804469517339807545389405190366635201267594497203507126156691248511489293488516740090192067342444244322689975929307693705768708426296807760003152202940924129177918508786216896889820643888718685747020606142758899451240710143791800176555385964087699133670034961462402437561831036799377947388508199011941339939923147164603308203799564324368268241561217343776037342048350727947378021080896166057071629657865586360523430102074574638072312397026412370047845015742784622618074197813808929703533754025579124585635718333362831569626933483183459889844553805028744846283807349041982086997228983806816725269437605184881472690371923686631572997051586366650965405395003454047836918471717229887739354084519029182081630187946045330551681238086691708562161789459252472343498394082298243884691458351235770957163605345746880741233867833417030393809496996870206348099931566547327393173889435098799323683734218324707158802093059006766177150478245704496292319769647533634481158757229500264198394533828851380546294443894003984435062499901643767363226558758143277613557751084554543628005046055034097124020322613458081385466286426872858506942581571229745804665990432149980457988462045144406858927384860893500943090223802360450468052838605456583997948978536978838440195923775702005870148692089826957568643299707221787428346147064348303572318267660876557485249157440151438810181952725979749894543358029019228597076864965928128506611532718873074338167692048368142697620693161275764471957556181272445179155976154644075886743745014325267287088090829708288124484857272392395827366516024534465380062944649124790294595288219149486139257222891897940601692941944662555269382296499514632252786544052021391494619405811184345774880236155842518629327524060123576038187310934957481220418254627096258731412009145769396115794966960352123168474803028860453651768425655651123005792959224169264874507929889127173545112692970547038230634464135995367562207435205346808429168912376736557221703644189672389969309508767624296113636195365440241812539440814277493800024792799911850336092390694281885254063629305187105515229667140632572402881491486021386728222344566043572675173853259132117082932160231643684612142015419664486363344103916653022649053461227554860402641042305468649148301119199658855582066506160833551672411070548263703587886370237680927186374579657567086438515842668934195420759806644401601625277486133439888446148394781412607033973937015083003510595072854908993055918647650661126985042528526865107877142654543327782126876733370124961422059179733143542687503529512872687043680821424292199625254097045316519318605585897161952361385445241899748436219933904321163016748136903329799450311742272734125984572945862428531378713250114669845684156501500227377871522581670458644790604781863833786090368913872793438324121145467346495833943335659608518756617105888729865700541298098398779296183745001735387598989243902000704773454271526986468675992580472861226487787663306463290712047446960629619847132071871736976832691947098090175320736728314274382961289582767305342236586198438731395931616697706110817139407083323418798212023595500405196302251169932239183939513597241101601130654818246893184433868950583054497346963880748156008949530874887481974362450369758093813048740021224805952595776206609467580774662832496048303551636093514183942616311084760799409484214671846215453968044263241323706242941388719270511154473295209577064059595383124559923937372747589713185213296027534519271707983915063406713900113033922405558179201984461575440173509615355369507359792512404725127929417027471216956010036508794503677489972188425281989096065803806731471145072030022988400112601512110447656584811832540094583393715020503446219662739118761646026314283220168418811803701140436201785285843906759171854390488765998192187120688984607897543454317623325972120286710207446271486290058121675902627538858220557842103848334511241197488784982541788361781028755915127867220567886779809671932041759964719476729846858823048462332694710263454341191866364753105403178484554392328083005169962481221109112906283291894280395927094060486358124361670884228281913136219516095850839988553944141623748514699664755889025966586658202664491562115790097976116722501343301011821027469323774260326614125317136766579599092183765598434465122835930852804190052004756899186389806333082271707775215823520584964208748061165357542947111883594631738191547138071004846649547346799432878377724915810792643855652059522638512549558399019747376292243741193637022154828060314169253204295864809327276355514605071818961392512123441868426556560452473361273839895924583546762354723126677334603209930652174200014512662763564111579780551564335890128124651128310939389249349474770175006926302961532630601594806917426754871415529406363122843888646412600616520647249748489076639913722566933028010385066262100533145353609278713545213598907594997410748587914945693605647631847975792667623447145579063565683499190234283066395993863230479904903485067138031913548930178709811498935655118289951609833058267317408509177563163988403860796738108428537693557006496567497267296278910639514205170928706467926515087180377830787695330176449125641438009940492804601991398673637142806084610540362677826814783184720172677463535902668577292471759173612834833709807482435196307738218338497076300113389739072822323893748169130187724859613947535301409887617212287311282833684891642574764183591853788327147672782728292119971888870538289829877545527529880195833732431843030249778257121492578465605192319263463459224594082680501909574118224986088136754545786710035103783419593262521416811490643760202893318467013474610526995505207410895008286631738580895831907558081347108468683916818707197027455039631180797234099604528551372738766213699458667270090190285042281864710155195778658774242707320350127178569817948140758612184689632691138309457803334444739750891858464321003727532410118362961962390538407163758218431170671622823934417331108607890939768223616494847868358535915667475151957049804665949561076817270291237413045894851420060735706949709279016273556933436074504669408972858519781229292451940571285074477939817753574986347499861815105490720096342236605018605051302064192703550152113102350622670122158795823138406873072677429771095058713587370969377369538720451470862051309675360254261614032839234967116509354969168201910061122780706001885744161219839035949953893180407106486786290243619418315104755119920547029227720275094850037170543522002676871522923264187686795429536646595226251397846959291074087308077432123712421100593376327660612134528803731476728672912983784684048188999203543329250426360996629613363115742810997271148692885276223424923802807061105927193496941550203333477810511892274285452259779559954656682192032712025351840836060627767139047794874694645907278817057625784674944611012378339282969272189192906079210634189619146188245208802132067048397528635351529877161358814896070356104877550760467496943764262505619542043018385706959371319607401613790745308442690857383148886348313128263879047809616922922407822783796540388649455235722589973185541752817019731614320244953989341864820489317289904434646632927891579113765017843567646574284942423212153290403336330234135997697609639946983794366450412456329204796345462747649699384116800168006925970067182653687070339465053683904976268252160201510756465012415103594354211685284095089233395274472183100183610652109971871123422581991749381270169624192859182492142040216302396875073120297139357354512442749557478964917612366916582039764624369001096833004751498533413085407137124593186117002833384113430862030580970253668839095347304362161754191261622465050159515681832678409345720828139567727569380443015708537640017827796106463078755085378754727979350218292233915655074616354871766032281195264130358509166243172246066611767115197723286663964950266184496186816016488104457376501738081311672050127270999038843034554970863657225486644495920672133836823753978815395005537435454932577874759613103162616544884284756882543162052446263174479631513839250040680607525255644666629400457616030235163101210861479635237434782997380983192463178385063064063373049175461389347138647454234624126771624468041043058228758562384174828972181414625299149353157417862555225069094601010342597996216645850316594267591064696783598239584782011877753194340598063384026677167132907099013506334141123563462203141733622246949559533023334202910372837341851199708804888296226509038613473143204172190552650614237736680482062040808594143684043463221844817022670861505031351849041885452538809146064290473468405762151302187517107010061306605727709267934764016459305686797181147787082767792177536292717405712016233899466530818193864902906185561877989507054063934402792915933175141105888691531391983269129271864793413026488109314107979630942443653489926040250121896825847816874032143922772356279621731120353483282796972914948922998742982432030031664580709835067819016074604881695515898560154462649262131481269008506117039339361592064649170769127002339433090663185748117854826302040185977538517290159638702848617203233758947156203766802536814441018553161999920623329040962010731392275680635839640438070032613108888709606496031135151854163332009371522852917358705686536210615556763227815907601756045341761892229762550738156922023960288603711130967274548236143532572009509940443451401981733573928359028487393721553703471633855090301983924151197620601271654237825743137825599960332203480594900371175878994811228860678887732184210841438569987760733104947567658461137516693131042983024900067978826212774306832718324338958635592946429401031956207300812503868352696691984254411856574700476353171459415428509411841871346173843571274235055855933399595775366778701692216124405970558465023282549159998780384709421832140302952758157023778420756974009010687024527631673039229199855788040918532636512059490091771236780778982160687625702712616046744929357246895196709853394431964364659229374233986024795401113829078341089518828015053962946633565032629816726176014136732272629460058867582926161108240485460678264562149028308310171498393263330822976423009702492111166361003834594331903637100797671603298787408753680077499257256704713279454416637741338759266202934796354277279000436118308401057513414631439832310791868134775080316769188099425517074182216217951493521908014640989463137221710137831347928232006631372420408192835214187118005922851101523564042664752539434709019691237325679952966621210714370211683202976356149000383013123763083255372180972050768611500714264819434992588668484573010474645743551014916873987457363937146640291601874843382017551736244133426343705075089631875080031618792264000913332542382627946640628369652870226406026348318130840637972462086907795905736807701843788490487200786310967351225479036236034823224318414875918226576469211278195252925482221401301596721249740543243400664116958648687006517997167994191200960570643055729125002724707763628701275054115861731741748398011254891367501394591160354897591923896235724999644766829421403738941742814337609715114201838478435486638360829933521554261381677386682461166193483996808981516253913961749789826464343013272346818044280095779576644361060414330495900245000684335419537033513889802177880328600380953376496568111429783743323241741660660277824894805710837188728306965899907865681284420567566310860056569392350891326373671777754921894104225690652840096456824580298505264550190040793185589032140342288064061208587544204544139111644009299073827777018025378848148779540314246425296362309242754557466399056823157547837559444927871897117875859773417242331466827603292218784706517815468733792279895293065725223678018791893996251374408343727457489265844847904207090747215980409584858556873642879371676689861603109919883571585839710277477004635562650267768143801037700493626662957875751670046494417095364140683499750368860573038424100003656700253230585742685839192316066181527218117298009232988761945942454898859654629427949048114345194337588665696567655607930544864392130856320892640800129522764262022653784764524223046873305242297344103075633481072019615285309210046338499655839213297126994776960392689700779505747686425761131141878986854361612881221949602488055120998285827232415047439537410710350162204419786404407769145756869848937812586226707292642565601268087995368648020021584069112108194544930989407346198583049382659919246459034279256849886543970743095682513237700870386756334790373148245030705410485512598150649459243854685375179234236347099141976873754704530770575628550676120058452627022023670581269871608244728561546172497300841571950199027631179793268554335510279407076705220107924317544676293080994970091868752515293105824541120564893067236927237613998622756066613416217722244438515696960272071339213067258205115729052691423697326666197182071989521491529933566698270523454352961627323673244737952378854274490823878261628905730191182294731468123715179948768530865385939558008901975982798413742210871999855038228340903992813817432610849017885634638463044456208399465008385006300880750674178858348403890512912143061000950011890324009028339150014139928649847754464238991188229153603845949630279023907318615336105232978281469535715867367496111377048268013948795519828474825727455657207870369266376909646229442156130535280532099467960206777704407091314620533096374980125465006280957230897046192650376094452356227791529419709410212854107286026530877787441895673008001329764381705460585713457306665115512407951743289666460351317419874803017221483763336244214076882699407612200342534316393484542822512887947942761770530633351608958780743557264306354059190766562874725208245182367127866840796684452064459686202402509017758022157807918793577049596361327994243457154728713785591441504202886994805279235614915596680184241257205645122334044364788469803427657847325874982623754546737793624688944068074089163324091368265134444854376773043143737887569093827489842297310391376466700182571988296669492848887836163989614511522491703120017241652619334729772082975357552292072347242196368925593956867564524643901102122428159840916653516137073287966279492015635574877724799554597485565873019877073604196800665905539572650735307774899902103725929751914006936623226557346954288935322513610075661928192120814113929041011213963076308911484295112899494076379028560643197466861744913149245103836466604667464583275569559107770052302896477885227751731631000582955518427512465351293997214381692807526543052733457133426302785154555624386423630225844210465923750291504886189143842709369661483207921592870653330120335471484976444879356113453044811552743932456638112650027012446669563981184048171490054412503173198180329632563770481232010475790758811158497924925684981185849294063952536735599599190172432041505155947525273119401532877664483009821652879317245064933623638426370922711595818745827820758008121834891973683353082178856503088870997241288494893241618511526527510274750208126265375841652984432080982414790871927133483953929082567487042625716122378530110422274247904480077359191506351960529323109992337991571516498097187642769918373857314876146220430459318890884084690332554848133634838287759115886812558220865880364843984549448901884777698559136530481432277569343233583314053996976557209663002602929714196993721703216323347673897147487400865796389172528688827044769109155255095457139495159778100708125859947340132389095706370536842980040570132461605409618101093202393235476649857757069861611522302630500667706108733766444352720662659060287966910335384244079939499984646850240193478812965431545556078658632616153849038463013689771601598922795898294078081213486210253135333815688595927864568472307280415864239338068941374629841330276496231832513089790048253110404578219076272548970424338345284710161505770869777535236512099454293482012205080570034141694498477064515869272831116164135763726653532176098282035502753533666440583936312800189592271463115301227186424916063717328202054749177345676656963933780911023914298023346745813984943489420870927117004417266541914746818982741499491339642453958676136465643700004672529467609770087594935151726429807462764901591831429893776683680882013198555567623781050169845196296855380673532617149824366097332999923937388883822295267212010622307121876023008390416954459287768180095822561294580832994461766246908033566620270441150477215207473350297345798014940396821195894062654470876317643007741790137766460949401956865226070754418911147536945605257827137546837706792556021123686747350424817624330998826836614195423563005675590821190546495920068819806799325649538801349520874773393371368209614541809633976786266714236347905081775587867364656154459777451865698858990123959805398613165954101704395099630568540420449418298547868649403828859304293892183352807749859297953162626341519795755012948221047343265418437943389244349448498913181500109179285368327181563096175421630511418019187644612081083223551003183136113926023763995316690763824586537784662736539111750702291870162515673324916119817853042100447224098330237686626816701857215016649632599915924834697569350423931464134965154763664508552429479349421221014235019637448978178894879215117704410635896525983170045251936921542223903779612567731548915177427278299737791330789469505594114296936207128300755940385031583978646156369174628576452284168535646040817228614727860786249657888036024097995326534353869744767677494886802484373680312667818163854720422097395091199170850672917361098059951219592963110998579408792001519260790768343286615047283725850575078913253620622535755381129455103438941326209462732539552102306217997255313248311130642249311136796578590593565439167962743801448023518298489028981426812531834130581660155499453189614974640503194051092827567608456945675624051115297477532657618799259421907799920001287170316218065926538494849661468289880515171944743136591071498136937757212295503003404102565385141747580931980767888516025633071528995497183121418325450614816267432491895276946954854168409249260719144513900240450350226396487127020376383943040688815832333120230409786388775825786940928858297580077256235076421171973555930316634054569399567889886698259036980902283702290372723654580082272604654327892094040506236423966540096356995583805621322427881855467523163003503388707544197822624226279481979232182814785724370921840031980141531441087766740743612939250059866755386903523686982879459158865815921694442403739780654244594458814766070958524487511436032305130122226947258550682052761975750813083994073557503621413530797745852493710129956295244918829064168876829012847448298875926660374434534329391566729977210778598775571035677512432343257590397779330611139725551135636992576242893905123717833468813972323954815610383660149426461332891423574247442537826731375126928771618051023476347448088320500461965880120116503269547377104936917924622396613467251718008128486864509059649212200767100721055904395188168094199379638066815615254767557414011412213336097861659647260846574157467431267330519480212288527791772045660723571975472144672019336619559890866064038338697852278183872268190101908090996452755840448882651284837898905711605782847384413407873814929726466319746473363568911746697358140250636763981230046893408587481369529375583696368136980409686234288620682424456063446355678545643128259288257697265648793959416531007269167042851531504438523225480480548927239677836822402930131026810141514952657275645866340541997645439603691899437429868236669377778855860168503666333725845844459510015414297666673762993517385835610404241651892045195758715396839420110941985174027903847806344969947842243106327555799841723707892681466105902155631295089759884275731796513359299661004346163373280441077309491121591559698153519690089196329863676129496940174275267046142906237404091190669335983415803886403205073747230411656255904880346350542297518832962463620475926702896096783621921061601864556288728644203578304643643833711715777850533242998286837785458394549632331878587828575565276894673357386144721973283550471505147505359891202524945470593040383714125792624956167555793301311835448172043003284628738266941516973890326067284606008697815257266039727971601339124599073379107672514976033296934221468543512374019391124402051706103389686165674162050058218487913443116738183504401602704929390467309958671374567346428240932265482052829282497305427395769621317162176303187942971544163893689230905952875003294817572466472979698174444890009243865484558370906344022282906366043740089296718924923367813239583222446722542235709474581346006666292553169699514114040333418859946497141455281866396112943396710678030226029304518994321995350663963887911689524037339233547525863007202871854661131199284262154915735426722269702046046770198839114598084214735693441463470431440308196446608579254271916406029610817228242902576998748854996908394833004588903658923791170747373644646929356250164843863864168326388990415809682832927413522588375269016619556807320996147541143673328005449894291517485888105365994235364880346061700065474090475566615800869003450227523429645696959894771588969884352539534981125829731357890002888723312106675114691086877873733484634179955009027274888602681444379807970212262802848540123935737163819212394837489506907142676715242451805680384922277359866387270054713661736214201816072031120577247254713221979130829767897784972008336410548304454601342754721780407349757509885506166583843971521107280915682412008802056328642468675946341750657014306822376871368993972194623690707345910712370526414842954347122906885153153724784618493790220605334301683598762870817810624858180924529861701523502105291128953773543752951606439578438633148944387820310174256600496800015500865304802740199553384797848752420471538607355560730284922832156776908731760811530297223080331735702863890549226909305791936390753106811824315619729183959333707703107157176125474227403847804303693276760903599137114141169574570059887871854216461362751768696374499027246218730755592198537826144344811787481772996852975350057814667049938574132203094521054965907898771178982013420968971763960808477969743854123495649740790475101417813897099680191859470304021885974910037101490135512940804150624509246093825021021638888715458564483832875000098850181205108700720100972384001202579352750387413175492328845045333977207600871695011203879793213312322489286114634325338413415352049969431988233503041101478263275769454999733281169534722697115924820116609766993456559363824641613383436584011276172332306056553786483890567256560711768206151746354505677660988466641674040991193796099043978179603555329227027974179065138333624744671161799206623394314440323635912321079481456994173692287995742729440553480946837274669101668103044224707124966997335277380788098161419036351210245853152473062137214443349391438909916821145095171289923495043988526603404286079164285565440904139947028878172015330921036331522202190544151446752466850708042049405825893241406908014671890862112240823759754363688135552825447579629628276136618562253212865076716943698826829576443054969837192003272282891823181629108205989365409805631048093901849826959954261447882466324150541339341069460154568923566289357105644028876611817707349479531026190335687620267000467283203771860921915886594966413025246487244833606272126116055295738333165366559210769731698903517199035747314957924045288187427127547399278482196583217561741533485876053078479714317773858732762268289064076678172102465267608325371202039998479946121487174301841786689447352457550738928064024632953071113445459238446750045053182821828574483754998091288908814263747784935535160702774500281030736671046731173348199479890589196265339682814432715686989805948399255415498733204619995455612875028213743006095530448715454899094857281636976482317941286738212805333932105454645236424324574874948430266126899844141421416226284875770145915827443324958640846217707856386913735716434808205857836162796877400603227384759356800058965984510631891065126229492246524856144806677961669391025634603528332614056759982160902376676731112534155506936858006164907027566496250668959062441215114239880123082470820981412451159300274990768353295939668511878413746620616237161612390344553745060154718930205901051513333573712562703963655934571047770094313834237695654088633287030812333388590894194013917762725138402176361824512428258860800454667748332145938809526113864824817301190528467169646802804595431095158038106947873799507876615687666510564118298439215766896399482370859300046065954770666873513124408367451142346868690775960972891002054873742340713365566463315633684014180404460115184884244439652429471625986190124299880875315087800676558666488434413151122710214603616259968769222733707040577829591961701108694140264163336687141450028755686044092846096498576326519618836221200904317085156049473370114480718092095069824917707745304843836320537999476179873356770474204657004282718962222964336445655228393176165418951741009962524854957572324865513090840866808555173421289903832680349965366050247988626007134149725783667969729979322486016816278893732936993038255764169081702090111910799050766723007319207884373175835649000116882926133284564141917919201423605710099969840023273967210099745575972444074443847575240677222714374298540417677226794341793701370904198043515363918974238273114920009135794980369919946698811762800842477107401385881312030671340393369765742524257534121582151352333560443732043619083238429671884985056592799257422583789665077946342473199055325264030238009374116763657837574510431401721601691322609659167554166068206187847715942439192899472702186254654318431102857169294812597046304167666960725322686290383303179787373812435968967055672472766771254468827997886742243160072281351306763682201541044569282079112686518491437105070294099506286401654088131516122221186278669036098440269068660439857986255495512877659481449820333241258170523123373314914933454929352093821511060428848850227281222637631434058209459614942263808801786214719190626782586513586041024020271792764522815740869910907683461639305657922377537540508127909406400572594051361884198897496231086793060508051360737381586920939937321076724533150443389018709045265287267424517724374476281543734982739580231962012567792637782911931470733250388629338057887770523156936826730359948605478558008237852858415915504850771690743316160562270287934694204179357337179761542658448745762355883845925230757064562143559897468434845538601105291583066925274234077455820578420614472714176369008366350746208713037394032818834097711260152814349737506675464783864582361832196030950808749210436414658498973722534752650328273633537658715044655626621339864324172735989309478517624996492819489916286901847666953700540257113067593869880303902049407762681231334474450860108841809231692758445719214759635350657119755561709972094165461660748918665540600387485440307750896520335536420530101946025199301351666444157995479215973507343846399410592070214674260585223754893437902983364523633034233016441623980525034518970363944199931484434865144887640308341537274031640491248234955388884423050336608111297439853128086910684648555802965535715570319340989127000160253760653773293573814212666488400497725434888302307608484882038404708065672063100663747671652139337588973447951893736232939234811801173672572229250024345553604043379759613692706900292070771986069815392774891496752030382266016530279748750635318003544471763383073201763894028222409227333794743024385771024021329654930406305904148985088319913134945644872610830255571866498604418405301126959692403015218767491164209089196727817712986980343339105657910509833249221232688527165667092662087657623466984869188785597662853649967402954945944142734560070879023054714702073171487029721498629030174028378504571170566998705055571395404352488688010318741221402838247926426157243821675045224901301941465939234490822257847305038639104968201456484756599372268895673198061023052614458633519849180674782831240988975374649739709645555470001058525374164487694480584255373092566008921595970608996414537483175576096699296932688066443467549832641365668969430039199222339838978942792556031507452551894352735530879135543246170234719787163496665556877634239254653076907850695704966456359934811636185831470305379234812799407879148295285983261171351143168401438773329983930855971023634156850662147150728422702732536646364925442759754492287581295897686559245583149601981382370910236141926043698983138165585861560373456918936327888421881962219870982269734080008790170096902572550738593464067433712041370263456451553636329463775055338828244764628800507500145536470445928391246911094466984768938384145597941028197680876115232144398531792128613041331605050522978053100745069383667447309722096249702258405184973665128436499051991636012200752025941764235873386910713343906272490874310900730913643633460244265599908331391006336960179026170807873956622658887239063507622575273939928866513413959130814877162442488743036486956654742438671292539414173554819957257519699274284825205033561532181638015372420074391841965039338553453850186314547313458126040341446334761057619739214123326416905295108552769620544063383742159103941372075464912309478327052950266522863800750257516955196337588614650266692955840740472195190995767847830830651114568431774596057451081296669320160106413890425659457150194466623712348956238608448447228091627245026086541692425924273751551564028998486177577492835881204608852549405252056155100508385332562663382218897877222132480103069141160879384819186812728698532742569083424765968017046903689330512561515522610293627019395878696366276228373211161219147188201993899504735614466265989559682283686139328280008762068933434978101386511683012753614580039373030456515935248014173386719451504613871215844646435284582826635544777375909811062417344146349796388554482560548210183089348357055107732312391841552663334247054591538390920580706122930590261248706148348669495092497059211145147042297383416382646836685074897597688728696016595893632920542674327800058690142552453487524666910612936512828386898051489421957043167391087475830262892767876576396002421381712466101307537790483025722458730227277845299368897648741500126207550775185667071989695957640457054563712338907634097868177084765906010092479199981584424738221153561217242416169940587741732054633950514841302527701751948406315595566777730145946137987561144040746948346048596957757682540454925900872420352694446633593317430602709827536391822935464936048632270543764425599386979030399635007585764647902689538770290846787348676332217976563271905281469259204971357925164497428030754650271373951409180801453362441120504326675246217218887383826330981437873159274827347935334858144032426095909172993996232245326577095514616841501276858755924250588674843226081854225657300567361814616605881939759252918550843319635085636551661027920469116939505064446755399844651728442843311029375721660375580875442857702597596113597821264823470618067744890129907315017863857831853520307023224069931226120060930897741200143460443716651426790221212420123166554588123467090199042207045809224403366916443944401958478152567533864599467023174304335667058350888629013747108097692360732889225357506413478202964836666400243437527626456949127383803625030821778159889455384052632187636205906918520318461300163625333680743739471214620993209952472362362892493655317789195819281625185131602643966611168383193855166976314272751505941276052784673620382795046765927474043005323735681855937848721145462051226249319638335975865142198610978277071715456782830299381262663006365902174141295552817713228251288953832667907158503617780399349940372631107336005103793505287051428397158683334494062214418960317506511155843488021839094338387568902155261194590890463126239118680332334320199904802343558301183700132973517543432993940311460880938360020471186491029672012192746868734654780371131111895459879544756834715016251488647715199920034142943809801548982853499020994770498569451870337350799495832660934386615040673442784772312739893178588823604808688015273552316670864784918721753024500904405437202843733567239345191834296028314214552377903140037226420667135304884376100783108036303121033639719161013728778575794842359925376750125619580776717338382780968935029558473619395561232933829061468478758913990024726686921623822590005247734743115842032940762372175374799036134155195631460364100120766026623460907824968097664821903608921581918055753288469899824071371869177932457505168222243854422154780472384396166244472806364655376809380144900315705795847775792416786786527016269342944295350998943213673828709956012419738728825322931640016995701883611815675741897051029930741806187752295874632392322489176523681013159738976642793302175524693112401515556310242229507790449443801069166629577981346194230725984736528557102707868684381492023104238660307256885863670143207854028374167236833352344699906374391650340740687720644372372069810767795450523517317199827158178040056024317022324944865549016481256391031323272748919868243941693527813398412055291632563973870158732128890396162001047365536451778650169881171874691106810715727781356207203989123123258475263592279443059448891181398685993470344046203019837072793611483963167232119610645823325605464787446514949277927408846467428590273764435937776170409303536264402703112554714422296886319704015438097537167887748112903182141931354909053680927429547807006284937598805397070041446700601195397970459016549701583178768751049527014398039391224995337845151586803657566743155488492022006694898424616540627505400945852241942383057730753824698633356071155677907269709731006175160667216438092416785739911923297568862784126884616622149436684958193242557603454798726466844535604907800225831825488752671427914799737165239150378779187287476590355213071043477022712988840684291958891524849769493816531391094510235964773898585793548404770033813110078434626470894052970213518423511572133159373175213034192774250730875936108493230680192531040412801601968614949991937570053962248469562444368625500791692653908510365645966654931576650886823721745119538429437187126021169048969603382739784477375393662430220187176059895177281078917299214492020710210100828924638378873692500306862188478909236984700903879947607481036383700649144520470923706177036167470639812259514946766581479545745225609443616836947786498815496556391140538229392701957360469170708634853751600883477617117511015124565086909673185784366920460449146259908674298662280375776510503255703155161665034003394405351612211775921536661026885836985834447702416741144820483095711512879332836361726663104741111208075055434103536718193120963707527162933308402260255199240994767400894436204876322256030192509084508598869536189266608765691460186154389863990590095073643329603998698432187162887930064477175937216692886273967746498575682142004185954994753450884245259758562393000042105947956314536166362521354583488982134662275593675316064972026650741034396714297071831881856794644806858409082966257378770480036044370330241265376219583496724492246257955096332457885297366074916607733132905064740892193475591362154562009460670758470543103631596160305163856886229534923600200437956292523657874855127298819586388456019717113150758035357490394380907203074800797073143032571831892310107845140808669369515658423863085931608936157658508650668249216300408839568384575396964508905823070866782810243322188009880584234972850009396222981225588888104163828486862558830439475507571985712703273701020654877328542361965352008865128419330797968746855611079848802512040350538285077775327716886753493969311068652295416192282589853185634561865708577798391360489846236917350649736484347003547597435518667584609190169735446429401275350553251453740426870596497300816447635943032390826004298309140572928026515063579677253620022030329246977741948832187146549983034762915764704114970374199004182585499631002133569843056036007161687685273845163784528765857476702000995425041991297322914187502473936130161490165713275391475590191978789316170317505032336780039919775567274519806600245660588918138706201247770324444423486391236727444167992051056620091619525870751218433653276384675047485836477907619758255871798963997449612203462124082574905490179646640924492935517955076841526012709647988424682777014481751923375250883883348671397442976666153818393882330520477745707854535440489652280051245054835432438026617519017045355203531330155435794214032869321632520308185553250492961469544795588895481848389932419055178436254827549650205786206019450489805174601996615721327414214424389634116406234046089485702238916804160025317613038826451879363026542107134454534492926976989836551757323848316623875302357183981750243174005700108331014773264586080746870063429071091004915805841003464185074857671238457496183446333969911106304629828303806118496213893485854139417791764973009367768143007136634611540535330565898976730482597655552957429822546709852560248528234184054315783412427546224515800614208413729088687424675426362777603721113988621344874473902346520345362974641999325328186555598701730704669659855766013054715665633068234322827650846360647592380671494251591955607297582220537067833983263049930207520184486537227222638728417540658681644792001947232457701688803506494577387948630066626515278908678834218654273530701396676544702562552711227721731993717710915988507226033557925477382621221253937396529173627831628914563343001543197892625467805400879482946517298100419089516475108483294715738960519636842209387125595156313419826609649764534855658922603047191496279559629756153004634660477252839846352460686511418100931573364810320958687640493501535130360231308144217847964732387790537982326617688506121278864565332162225397167904412415779651122439221749151483879791496688314219225639528172015635005757401819373425518639711117607397349924397901766286267721963503198295708505375813893069226035524552990927141184740995900289441473513728947976114552006571691469599195200409891340518662926927711389690497168531843495658492668758343894534450045079380404444688025328274230920811662795493803505111292335604408438479225000309674859402921783508318125640867078567642163800412173984784839500789582649314326558859193586304166769681603115102954157156629919501649762027149512105602470713055873688997245402949349179518294529159957049619600748155239082611868397129711933180255499875441337568852666501878941648657104136757521755540655958876681124657956170717328813935407528103768827954049106084065455115908168458487023008320487653838497678032571728728951749883883851862395398114989579364066321778191726627935391717182996981555175014177500107858797265266694121713360398906383186235934051256201678272749653885143009060302311291959390699189307256237649957681258919452884450572907283658362674155774010269978769465674134283586218892460327258309093055457752286279717533200954311526754793681134715475813169865732287679300521936595402697559115814169351672516680166348206303754708712252593723304012499216488635072573816882613554283605676318771251207609279711588223832866834184745093382328888442311156666079215319706349544808277209770462715049645672292422983518405943530702350256377153839026696860419850265649673591856291599534967334700853650777060310895514128498525469068074761874840099599404511722978890996610038876496045935934999747856875512530419099566585961382381867596360187998663819354916377750713048213904311762767189716216492863222276295344492569992261443403891449449594228896576648505206549438991167473516186022306880523943826724896635731393068759715402528362020396558559668155572428111299702553546115880905084943338029867218406110591008701370460103520789703439502594711470258509427677303522875364853260087872536206132867079524476383150747035580245893661996767991193120611087486963120863748250682061233334804897940733670508266318912079530319037772377821335106274897106550972762638749963522648376949115024367904009965837797374562259176603804597039324322287280757855787312334872800524637508664193995692683832642395323483719753332466120409557835820897832464185883501106706520500648451074644954685874630772600813825594173666903081112670981308433753149000723587589206285007744059746457862656790068236990477755226919711615597330735071219741577147082739942923469799911623892226615547077653149747784453990591881433122625687257827506312420947256258865088155769180228051482795522749800062787572213547689009206539332735497511526093699007899993023290661515941637227074000148567077603182927031949310903387598651519749442913020431941446739294822644595479299323534656175585432259620108624918440147931926804836209153858666106793151121405555679935745359098504988624575530575751523467662886667075693588948429716528183105062005703292345499740553246616921352510298104089623316564491587517971083432851412683457446668013543180881087477796047069024177673628141420694877013973787981051686399511033134145905012679565792132818391451153913858839178666425024364553917727706751773208018583330284456273491098098246284066926969934025389433441239298944192573486760008465763966239531928926151502490084091293485598114270101482176762104424140811123885866880353023668269095633474438408864001563187113573848201308038779519655354504198443222661127335802397844261583531124725428037008945631350181184008434945283544315399170076494917205797750128337644255831819251872687412969512675445023941019319339322860516199828222891540198067458724248965165530844194416594716034484066874506347655258167655946787996986310304168860384304093318253711739205966308308048249856075333328395914443125738928416581046247980988925529283435531395942594574915379830118462162094070121261350510423241249171666599680152051756892018369220224680711256733154926228572502851156402593219812319409942759470833272809512505912676643686439439096233751129096367216484635004292910517017707895315762723841724488228101710303643407746165854668530277618349009831336019032334734259611903787859466177963527397589170490625811181410551221868049150071881720779089077414296320945952415766050092883424562889143283210086379070024716428490735535324551760385822595612461942729558057502540284082648925490834936695349488784307888838150368476300408589508005196471189610360980595011769616213379494549585191057323799417688348649774101650027768409055591859341949249278780228080967006001546038591970914905213123865202208608487001836416838327064183751215488237072633654558807683169985632330234625543442749499656362610981718761924538593033233458485570181295651062018323819314763711595871571071912216346618677167739370453586333552873460720444704979944165774641390206955604319491911624041429267212844056772240565114085969542350606920551672789952392683219349503850067316586247636561439930269338797828422829070586290379186059187380690758185802408573205275032211456769259818023080836519084744675485759036437033309520971391793191663584292203362601137052924063412268601646573734158944651481301451552696507073826096782960138912615013655139346964869019110815412426458775501588096553163008525131619165429333310131688388849754371812833254299603914134217873797983097952619169442953358220864933761736894169876690454762939968454492267633361087021353821429288813760369713059930308282734447517795927174551491512709436662724938304338997837226764374052193124740776516775276246577048472069059263773034355154653123882259458226617201902925801896912145507712606911189234489168080017855244503847154844499915406613373340465971817658318465136586974821225238391050409337174013696080406900620176400083154495142683074558428525834154653566313484727830944021830908209506485976645748061562102363167297224857937458635110287939205113010269915751054518748205121056899900217720523946725908074834070682471941974976946734871756930236584860911511607441918428677420995476456363632687771913509882123044576124401620216792020631043517684154541246255087567800402012155436331107629375196187079733218818378015260348431186336291744985287082785592316686692663390226212524177300270691066755489734391546670514994815831065640054437190066927617727644008810260255558632504482245164343035027545060084454189213297211388681461613506728746874017469261221104339080613973189404842439498168662804640819503835899712624121550880660405217001642580152676416493170866344472027533692027350864516503631592643795748808944606991496757623252757363927131303038779954172421343899432010952306428768295989132829760462620501781425981827966613805173197110239828799604900069311350398821810777573023614535011761868037964723808841775028203769944993351108408497931515551192180413074428305291438319900805640176432291127677623470116491550680241999585578180499689577486940178282929374019637735273247847989070183894541326008133022503361507378531613439900624095239512311759658740340488307425220303762517786589652145262726423592423066579201088917809657665879928170975636488809177128712081702900529238467850310831347698297116532982391158401130525695844531224286312271001463697909888595753568269899175963544146856877429654281175739872904699398311142199459725000320489572729702352601614584529825000190007633480519894224450021824888998803238144075723440322541306452277933928262744951678798633440479501694984967150016676640483865233070449367847754591754586923281252300206665020732695206559117886502954651791418307145170692224418632177337803065691770116291827221489381727175367975269386403041567076175769091472191475526578670250033848835722684168435359739469402917492129245921789389418150149700685696677139875110532410297098084212072614481283050321496131660414334065490536103640911784163571005746729819298935356638294676268738552915843977647792104439346095277240584437683511968992479440918800202684555796689269722099364153499549724269277076652714255555602011575199859294047060220372074508793670518388445554524669042169037290334384268147845309947230907974437069250233060879313534665565125627693380972327929402509367966620802293083941589414530925888587141920718437009642770475853330187190586376661999743734365362562183660223587409586079436622187340959944124760626590285132125636404805994330071857665037573861296400431627729354285059307394987551270716806471573453600755672927002014679853173802793740182763605210418544235389883845688335890651834003270376602464692700726579351830024239694691178951931003142313303030259819717318937573157681383922513858863150639843091054490236083124216402047056314174173837909719361380975110427051292428381879183295951721863195226769948312285334892194927655420120834326432820232365512768099564752883319958174783071428987649519210591997183921902507471455424479334849885421455486078318559227481651949911576786541737778217707787368996951845729028989059603831847141227542714067901652481150417104828886353285003458415498276502957778894047916158997483001452167298347239123944151499347339856724858953350640120398488719648738028155468132167011925374785125520462537454411705190374844980755567355603623741726163110572424305293870175222595359202518803711712790206959133092798473844517183165374915295708092326522976192647069659095782215473565627606926387236120585125443764130979020976457752986428849648018443942418376558906370683474685961619387782326330287215435578930209786170103968430191334487886155991807724460728689117482418084150435202217708346400411262291628525437310425271321127840092171395998393986339415435045690966878694743002954230589543179792414673774935519144233605370194172025033981933481131362505944426498192259088392878574999959860819539365185380165269930302003943591146398442923606462686520823785465749264635830892395067421641534750086582982857031988799972564398167278242256228033135974806367480086455381495849343852152095809516428689841163865908407145985856587375066470796726497408400011955476038561946240929708293708530476560600540888800331166560381136811520447153210074245380139477984098955197810150826623295949755445454205200385884342396400688763611057551703203248434774040979792989050048426329218425706369795259015724351956741513699611736803464304251224942786403233721473804207280452761627473441019695724905422405517501339589313454572177245326567396848338109348020378344751996004893355026124431700060035234811437609132905422559317536444778905182039076062289746846378328885679758613856269954823991915525090916588048968248178511866043957128026268006615503253133471914302994400338928142306655467542851991461524060811120086265039722448320023972109597002213192351570582964267703186252386585152714495258966889311231273150561157921745512472319336409016987131519230699176368299080271536569507649742814342716503471489484976463929839803036505449521594644159791524348258554835117193316886248158974435685670851382249893122340347187239616120548884812456205395802726448651767504137906786787510499206848648433181687337520039354551183941814556911755193289245279361288820592685282963845190256849162272364144075907804105185754116939284825836910679311969474879408439875704664082602809177402163510282412326886264128344602749772164958828244012035032186010200202830723985876533192192028686009722283792964842731482729243045604778886303624522347549590309466011555024212554396709670915844885076384349102100578578229350547185297892717490962240877911911440409749377714861777788750896080365621151774518646695967328936362707538927328973379250261747239531128248382013816829560560857688541978372151363374027259618733525799316635592385461403658559576476371900154754918120557085374685658004659527975404930436061177696519620163330923741476471477905914698077688838237443353224527451390673295978822170205569126734397396232501043516128425504953779518156896664645447929648236484896432301495116952015603507030147460393306807483659162800747803117165327246409206041809599386573274418407124226366992722171877615768089817725446032823162675579385522305467836491811839726005102712222499766398638131518431634238886510590393237945522111392891910643125744759156927873443097190666813101475648305382941957853979016307154196413778704357685160483646611962544332584736866928581754658540024013736469452024883408449006419207324751205211846152483421049493811431608993952832987115947895791844273944395114729610479422409473944876312600515803517522692702226052668693890142614353616793430569181284752789879880825880174537365696404444332084902960150859884972455651078144318603472819693225283849448414025736722987598710935813122466911543995147261600250319155420440379915550984409177117978724122909113804460542671009976992395366864568313408565654837960233737999735552468130761050635610967057044878138200748902226847479591381910850257998004730468875754096754355975906538941535707625392807262520187860809665867196358513965498345542316572864438079640449442351071551531545533174763230830489188763419645070492162760072800862703237414154692349818245505747742456485342451609157389426752207900432612701014875707439467161893160621699691811027613535765070447470847183916581949885008520967932560188064408845619628768751226733792784285557853482550744660639169790665216237075172840050770311237038190960702051363771934633513907117058031087368324956304333566517719795512306010641699323836967567935894040792703250155434018440894933458446864462091437844101923416823165715611165518172764067607988289513860650543574502558384074817122938180855923632038682566166191252309917091753841820842759179527833445345838138507366542867512113286541768230480978152610409672763576189056588270552636405406505122941207795045121278949842598465845518431720392962321277404613320521818037199914314510918448493104875927295273834051675809039785943223849013117466320041260676816870394631271767931858291102513694357277526155484349788730777625081179690637822492316952391041341815006468151671295080856301338460875452094070470434623983775721005608258800146972603545727368475806120837576824691201860523929573117385911298784421152473630147688330839265824426001037693914938668079773696038633874112776281773570635830114656753602159950981285508627038458645971993871096434427412328005400150264003864459176914329899702044321150908783934832962895164144650181512344873005123918452898390932362116102097462456667537963528817406038816107303570191512927261286088992424546065227875267602214502926338849895639105932982416288584398976147900744444569380486267590052958341294651688173786711013415104631456766435628308371165446040580646245414679640872647947441500415092140365004511455665258282445997746194189546331936830032301010461036324430222256772501842720802845033388167625070247208762579146127202423103502390588661515721584628121041838588275765531011760564620165120657716405605055113570835331580098303523907713086568973257979467497012201117660229632241724705680728894459711301067585823878157036609028449806887964759360194374589922531778604473890719362062207042138057039414545753901525950979966131641370279708922557433637072852117281590038327145928672276284328852203356037492098691535875911712742886136296861825050956595882267145280033807139605982976527907656732122528605594343071921692813756352447232482902000666435985976421713703601697907454366521105378684205453907146863502492709545394618545134074584251857523861327716938189009555641964030198318081860230490165220130874126502099131103371294131489296094606207012074583553759290061258436463398037936531231111977118561870032613123973679515977730845845549477579789246744115989020937411987198881045994232853736689066247430837329173535715678101666595627176936959391626144634460007522562682229718149610878415844933830773356556361748718080152889023808310934784260017211736333329138657732602933800555284995351638739000520412592463446456748440045349126547264769033590591614864133668271409698681849408166480617420633440064706108511734430225070225056193191592004804501121121515456888774820117366766728848406291016143544558514877702724636582692558613636078968100606952707834021466648570175593153857017308589580555937232062942444126991304367904413449084676238673656417586587765297282747399655801004336137854971806185424787083674128175353686411722227981143282168744533549936236429425618743316334567346077660857996208518318054524484928720984431130151870682364562958917032349030799098766051625770452997816288430337480656559454646588435812899569972012055671755244512061462178214875723792881548043550676497973839161548949312952588415318610411289828039988192813505089935626639991216044804647951200562290572150393612864537576142635258446874011323841566518488571258635602467841202516947298547057455971260245534461963665050791911631020983139345684314726468585797633210200506038530817480358540483060901462055377733239554186848539915392941993831103093577334521029086068245453792292608356675957100358242079978762609132549040192427932263873699643113926485704625658932333189178473201070339793817529013607991546475005767706435956132202555885107944118298842482238955654036900177517575764280931192929068363743804267550157085177946039096891647969257365016035372172605384275377940403957108191950245974810875233847792671685788932217492838729658570803557189256192969345950697438896688096719183747723632240449856689179977224607835075297686684940834595084502812207731896202203380338325066023645570964380420818148090677656127791851993231651241035246754147926309945325538807543396820106718420258377549324603945530333749257042624375161966875476120844550556564046930302061122783384571441278997342879262631021560266939494299654572504677388297481837462900894897025059368538002271158494400791462896492607805022389242824031857142082935892301118431102662927374228084984086808764385647685442623144905639375774700126892975175201604605685725336558431947204403400073648209256039207721696941779719680811853967637240500887234646735504849122363200976851625123068685632712676304211328324335733852568858689128969627946305340334049310834075981616487215930570733714631047348162688134432837284706870401651619968903583293031923885513541439411058315502142667095011645108060723834113255965445514148584454032792650489718818272854120285701921124105981624244731416376966679538347611845832688480978936189170505668415608045833000369685308550063668325946265501093877909809002330202249601643476129085006731286264478407338765721665632850946756180229420406036255219703990013202817795013820078818202849418348661768147531148885698096052606885099532709246008217945145947728884593846331641573324542886493441646782440599472534946584374837475549829745665154909279209843572923226874309083724686286052451010806215938621772889077809313104911687398993708744516579926608390066064747354660059835088315245353801561308487409287131674464056862934045926705779906448057675041477398421326861600809412573975177254469671157161826990776888540970802501046340415260704271091321321050016394271299439368406182842616026571736834946002672614982834695684336432072513399467959202184362927420174883823795112417228408562338378987654622366397366318948690238416723137232200551260925754864269584643593496746470125021850347970867043518731470812786829995941813131876304741538756809910426339159995809387457056862206421593115933185800890089296083826919998837397472453439538710196216437654850934398622875085222022258517045727478631228929312190117589332955708912023971154535947074159892097487374994555938235465539223220313062940944147678883884380862856866381098291916278662663774395860093110553219137071789871241721069931161876965382496000405886086219090535264293826527820420788282479231821913844761520840223946840006819652932426872257746226149955262534094495111041524058792001596449755738510255959244069848071542372138800655279094914311011675615753866263595520365698228713100195886327337728168816351046005210741350267594417956096560628846793654548592204852165113997730982024755026498022159324285752285617610065755946697265829668147380971334756890049092794415308955528260619373990019280600198139208034793759127968349821603868652345140281154462134097842104637689891091601815679456743582293377963756486504467309142031234982621368752083161398112038957549986247897808583032737739129663840069562346960425418236917744344901127450176570737634087819872052622783604104836112964531228515859705113494336708803571263978156854116780745048062609166721212553210826405036570497027150267434742542315567425665699225147728947320260077063815117463782272757423997125388893616215465348565290990484989353979027190211880832830402889306362851714498868452201869640360879720012451681591870512021109705082288403577746666387423430624793294837537293887315396206076778775889883935939849549769785748632311446376869621715869855494281896120955491280337477835421233478940907892038476054437476976297605537698398894009561042561542688704548865081064001307839456800987097275317850560703710345403662793723552044795298575973662508793629283301741833672473017958909072066783994395926595071140394176187123901134672843316894242310708792491821319057151549286222076900148141853340115661740408717758260493238384219094310364422899428262432354187482561558568390133674611061987970044955712307014877194110710285344717696142518573538123679499212119048725069646198592759169614852138675462140634110628805701430362714225358649770175505877859090262955710609394543504717403942054984311440703962720944271332352281291376077153653652392551093164630287530841568527740958946486022657076964591202017051848649748841085370046557342124001795753980763406002042784564766896122003524342606193828048443143712308764344457675700923312044008001311455105870237488344840376968500346829927740817919882386656769417514903630623323423244635068547500928171704000323091330314402822639321134113823214444558077362599262680844962552651402725663599316978037371823944884126316871435788028636790656726840862340885571696980445207144770513616509465888112698854676168435768650045584549572653001694248094658894979421242024149192310997566620930088625333790677712009201634971599280966971938218814391312636449108142872181030348485004849000931115176271768081979156010800676937369842397186901829390785723119716283358531328553530022809237268301225728592173169834051081962698130074266736083780934881134378549297859949396291035307595380404155664141338332398310055372954587731454808536645467487497398085329782059464603215565278500669343341955960428346536104383664589328451118992260517431417460301201231775283571081469918058004608158322443157236588718083539417828121088777541698522299720474161580124320436128693125618700373160564740233699113355090329570626179784390496201811127536732502209228588865546231508397684288675403397335562629119393128500660568196550221320706557754282890179965780441090852187491602198606991888101932347643500295561224871460961227920954806662609542919385977712241920280888568828411308436248959665422247925654623016343360243854074043986079159086727351815503223372188412089441226950560194710028741143088346708609878355847354676861184375075708176087622646178507982740219391579191977098239458075437780634486910281988363133238772703307634358528674266380991230941254089472840190877797792384041333406712434247231898139494297459638153977775695831658050226034639797085130171475305762865597103227122336623117108012790333004989492688170149636856933513296150167462409821252215332041557182082288321855824315760762116918908958990644873875848397593218659469323769868483978621044524809062174872182615468527384685297823489526871764857885362756515251312665392905000210158592070246046779035888451361029935221214198170613405911350889159903407101363147957298522792198681273428537495748231661759519615400512312417149669061550185321854676371759155405206653164899634623048512569709067629161889596645956194167322204471530412164941309133655206109848399596074756671878966337662123647439077046947698208678939769394118958483341513669574327748029501131971787123122131993634426958565964046421351854514001944874264658325565177203315217623786225176664954265208414097398176799831924734247322953345228800813525229074286122887641906124186838558759025813515920124209824933534467144202301206830049612802608156627123138613273444965155631941457391979019194782864386066101248610838442978838717085999830732855708713587337582284862973074513111649716938326225264292715267311638150306380642871868736137337728756468853075708826146713050091807837259219837493296931354664778248008288652173095460815699119220555605977819129895862279157297864307198581967522602251482747665302554229040404299172287677501711523083142469117650489498217412950386478285583185544499305266595811781006402255228508088095577046946393041986517314885890836275211717992079829373498022991051080307461487059834886358067991189396323397701141537895351417228314117338541031167596685580927303957890354226175021834044064876768265246426339775263770477885867287449973461851382404382991197002311619343101563841479227704495041438213028742077346140609980580873789384529822838578550153184484570578910014347413069013490870899606015703896497796363390332879899778731474684212745891827684707818864825904809684370646277389044295320797188090032697012241300023769044375162232248761303459749615973151848375238817826446517005639066346600985702460123488484996206223513502578918636656114092181770256036686833398018219428368363952989122928101913941557979515803426361252046790071252654349333571632596783661770123749159743462815407824282580745636429107778812093595288435144260298248928536753463541662448430623955710214483506967583177638485359091908483064282285413220202733193580267303780548084611493808421005025972572164266309171040548783745749680855371699384141296733371112290937008958939663599455778002318060332667020421510626629754854499403513859130093518077086823145140209914228594465383707533514655517475602095084393744003407426243844066172274413758263825715476625357413791934437405833549141241132312135830820499122020532057986680728783689422145652397977677170072418841671654813276234936385973416744390867759493476129339651346432058304745249997515671585441447379955342492479744641018445053379201121253733193709469342748386068637293219864215302052626090626503606039226461810998572016943880441398246437628929536981640225939620428435870512385446017353477382097138037612306378591713690346687626910294452851963954998348038027770529657278935316069090998120742034646638725600667112790089324878038812165186113059121556082062098459133658502694564010775486540219608330010532560281881491336962060306372300885146554913877048777416870232556606824475591980417032402592624475575006607786807900207962094823763885520053531387934027299561996392017849656760417292649238683121394694675827876386553429393181246980518467323618667397181595800221386127374163585720927636635582177094920557497035385041942437621112885288525532952464531334631389021039324836706390563111006425364788362049487930388832549994609120283801924870657874628366627040352199661844839690140961421635848539680430380966031278323751715783605567751267927331481700529161163729415662387600314888912476391186980870535840877851525044931446108419077701788135537649183390078451261922372821717224194554932206312355119210449582022725556586761200812284243419178304703681094578260420650198898945893158813301653182982956114447804681164200942523222659605541786993492851534488493776079558427514118617228475862837869743204773345388054731671604608614977788151005559772844658514687222710247597176951577029495673076772816962488041513267395004371204363706819718766698375214643261006325543337260666011980372332656525008972793874793349473345498057101322713463580631038876410773235100692327920187648231525910647782672255275785002372056052253564235524405774322414980045711912157810641435344744567752208948671985112427488580183521694606563279574723662693811689148922874883396440024939994538351489369341985884011225877490726925596334652305103359404191811482201565289155679099680766843870760663927614182088437749176840090008996203089097861975864271659436279425040210266194857417743237470334748087549550846660227491868951044667694167064240233937775307379555554164741468806332241115343061865188480984787845452830439683593521985323681770247310432349458756214494120768286633911631627869862459113175901901475999669966894656019331297293235547399737796018213395460390152358630716779585071904268486287909192245223487920499579647921300310958768271773379798860865799836156588435443373989819380300571147866948757678155380844945849171876313699588395005100285265484155499901465169974467286041054412529725737695610465598454926034441132332335132083713697623641574663659931559121428798381668608872416968503169078910933156611175813660740945904371872912683440090403904209483442971933985163853362337483909129671641212139584621973717527973026896028231092873259323115031835124432489991601345059515993048673915150711248551857364129458003364568499289372950085590822822940011868627077182719835519241981479768307812674849298835305151016170343522915991486805790165514613833338235833626011675664384906050835726663234211138480830767723654649763694352970550689639054138281356012970025705958984201546518534898734535010834268841252417840383715730552163866218478938509259505391103419634780318369304468471939078316154993964820440174680313104630022774272864644916880663916251903633187076807787197649008175694685800481090823031097250728258592371459710387689522419110683644649246348177673834101555113951269956134075346773512558674237581238140769848769991712157415257966125898098594702587844878574804132053194936942571543214565921401937508709225788645577142741886519911775329531037554344709356744929294512434608951605511294587170010989330856566997426941302009922479100941729125610041163788573262739909098285304855287566276673113482191471729711305223334456368620323437676607704683369822037814433163064594891368494948495753825306822252550365299927899124859001079258925098123508571869622341386464849926170947036715018913966924942898244529072287601786187463960516803637451944071560710162633805413312497500560929790592672568476593397004535281090541925236364171820898898078585686229190175249198021296293629195219785376740211767872054394531960093333217462290767336871627623393455689186445249655364376465066404485703123764071985904927095284516493933268709752795507051648236785030273358521984155308383949439244504593609874412096483397250065068548751274900004893986199813286229597784974449581284825834261945760084882600900494595559803612744982719314607717197519748181443821960779447546661310241209127176032553872603620568303094153448872978788725115933378415553231897875601854883695698219187475903804751181461235495399562755776170744976941027528521221454057101116172446375457097635312646720095532894865942360756435965508900363587189230713848571109887543220180431740354272664669536335113971411527760566644545421465829218990589744428472053006295612002839804996182979793518611702052426539510180976720053924748270217607202461526671115098954113669180378705235868943706632611375664520042439993585329642728673602943873737405777887277385407545065776364572361521873496121009273357604675276416773276194196177971882484345613356648614840593170333346358845011875161808416916915092976168134594327227936176974486901626751060285222997650511603966266452849631487442263052442096551167411722932493436799626082930269680043255627710412329920886989428084589447952756644869066190513495132538080036888870596923070059062385869192552166773378390182415903564302666110330536461728684036576004665218732409729456861552561776607156735143170457641215511148950413278235325376654293011489393026842964747376266361677470705977497805246935355375633621825552624777714441573967297953863398513137242951241463890335793385878539280971154299805108950788401288729868854346430971099134808084848533383205571744720128400445919502163504126082490358771777614475946202070800668583536680696349434414644866990835824147735938582998483830908053340062318939043738990607005662166912167490632153477217751959800241479627077248130370229920855691790009087374514705256608444176240288466240406916397809869965276564285691766517594420221694028833836565776261663484328880751071457277375262386222629951903496139456763330287928275877485497404761176596245198596671389728756559986102037406026518151035750297445395366337163134714507469633662777278227577318391170103627152000514557259359059626161809072106478197288994085995330965761475883402763929872302413699864183143599223540790554365939336428028123106959305083052431118785603922270235094656119417135039387040190876460196808288816396411565177336900651462279544305054205488339166770663655734995274057589028631987666672787365219096810613913664895552902538694618023917973867848135300148364662377695589064039239299222622704043217129719356156546407444079988139168060734985766223401553219405000987445607047555639146711612140013893619460062837683614317653753409346255171480280279207176612155850686957453377673925385810430621150858918695054643067735750869033028045085193648467220830088422444888675641326122895814188281821720928807091742422546093399700744209735614260317398220999708948178739689653282592867760692716154083487294434057901690769812280711046639679173173269819553513143240866697943536007549408889390426064669092530269976912003847344594319314260333679294626420231422271438704207390248562692220486204189480571745316167905885650299936561326040184337485431218493270381180150618041774651416508590317869462353805599218123687483009222425382145359330781526949979544707198365874675769514777682505208182944135897308147662650339629637810646801158266642815288998147807222328336294761727126008027908494992152467253333283684808430076714338368878612942415576207314107056329841061652675965760513277219360082998385587045629933898357533136990854902744910818777469272625593378842400008325561048837256864208480283728678350784164748965228099945642054754523834571604329022558357529647067235831941259442064130608188011632732736008890779211448183648355747364440233207500847841301647035389008643200286745410614846596748928682093171853406545257271018972760453150299150221192037700061444140476895122616567345287180781351822597939821325225977879074767807100410177514392013288681574777751922858038146853995661753397723585533715155068121016606146713347150937287535772266666929352380677861993628775253682664650465139003505576349483517285040448636624982582445623956004883226979819481546964225398139708271643074393404659758594641942781301721933254826874340154040502392041299710150223566895594878239476244404031682764720001998131798905019221638593125906200037599553815924719531192088266356264264925724380383042836299528261429578520313971902483846516634436118331708982952856232714097609703249868735445290309600483151289561073712732081807669555244945622523124419275951127386782573532806199223636010388497638777747374264717581264705247486294768094441670480650813491800183313268154306829642786172749124663737453729768637019056845043389662591448297271310786713549703160126910576069964941596600492270770056223006538568078471447565939924346833949067280579598035701475542638535447593483986775078812555448659178006634939902945316844613975702990961365505865450920841422742798412045030218303869015875862109119255400170548082012926254503088190453547478588193560607572226822974671155394411917151999043183464434638093059731902077110695348817152156945193531987190585299836298774370046861829607783069642087037060918929153958152606589187282978207904534529030118188304703907666681975159083173778541018488746797689212621213124378382056187527236608547379183403384434547042574815896034183842913279467126046412463695488718528631834884640597518795592684248218274732893729579010674294960323558566585704732902403124245399541009602284462593795486124286491306860279051128447390214758334210588217016124210245136586483835707340866576272601127637415110595779056991958463612910214144923685638299554646301315341450553906071105698788571354578476771769317473665639671265290602831541134446899026109071398031525858200727534071921129263358602345345227772773262873559129319039629579507663380558544277544506517631593288454749160068478430545614930592383430215047434498891502938704442861048446830263829882750657365365774132142748511006289036713767899083849384109121775117345091734241909169462590091468674877786514099607141529264916812970838477061402362872631379006646489434193693997139222389953871542668389942340641511749992704024334465015499969285907120171285309276353617890863524822694900393362636150298460871820027073272582895619335461413274456243240328931181210795792467046348557350866986835922769435647035299576138786547114195206837658734265998186505421080820917578134818753260212706826684945554722237670839700731629760169011599472925095703478765328652985037431450456277298048710530243352074656898534071349739732968652481107784505679466467102802193577145080624286082095247927255403081356264758967862992702776251348261763041266454449999392000735229314441983678651164417930413205781337056033509711304820239216486605101869097535542916816136969549152623582793581927003744546729020097500801432858717664784295079183264301733909307270521731036149776954999292278430972104167920545368307924425997974700653302192659183584862903013223832970826031412721830702612030620501378750857578295185578482813766470636867357331649542699714607478282661488476068943514075572864727972275502730900013370539150219746102084418502911179423847315416755280271176768191122502719569529658802491934046226301453236460832266818426933161347957893146541519714927752349212556195942102555799426369806627347789118177120022501519113486980633810899990595680786802653900534522402488780240956100472552020291393594053568442351882098174090369992081982342147861106186362986645983779639241296081142093420049347752094373345848066595246889025322964621653194882715500027277716744030043409167370192353855407466471499170836189451919415105486056282509125137466525993853667084016403024268285088341630696393499936065367020104606332384416692601599870457358539156951422899592540930488918427267476055983885639991181373560362135751823686512834023271546276629512052961504530124918014991000760196211556091474546315430996756496128358391642299736540603976655584948708418858509093393893196050218699900713327400739958499088415482325782488754038094638085333033438894291323869343684409305177588663931707081301143925205100336768312947174012172761592647945695242477551446638008623101245020198396514070414689987426387968654453668224757310352901531718338705701191956992779114083868217573657225281910300163501149423371418755196738057951321646991751615826465535486853993717293310349648798446214053524373452815536732087486242611189558238586884105642128767431786341183961301232345300651328238983807258589670324034121014196696601172105059869590198839711362895063373168074203888424563122271212434666064554988116853165418013613294694277172052410844948900939715279738850036519856932797459419549128762517639709960451936466997827285378175064142268968402281453879696538486580706812136439757383643158844003018252330977565025166438110702639001785289222462250916413669376046760859445713384413582277603178387626210259180595241482044413877393055909456916464747506644791249090660826845500447060300040576495620687716695794120102441960588646102491927009524339489640942013634171836593367588092046826103314755025880367682865586609872550063458161165100390460436081533815544969061531644287621355844508080954664591818868670686495112665547766577049222103270983292819788702415398662489140611864653167341461353420241806787255013386665127962653120158499598291892070328802378767284277763041654914622232583187238723980462704487736812177060379350534053432616477790823706450811775651002691308246540819821134672713089625525802168529704992772792243395782598412636036049877326373927238362196058752241907178192975462530235911416151314747997178548776764140981239781251110658039302358392740735336973447894259860663772894975389188440895622670378685234641202102585581473420392418580399562485314539570712245748861979347827679084271778785162892806044553465364258123999740671619835670852979567054609842898579052702412851668223989024691945963458484206914364673576700998387419010000596746570190408983074139045183658013852986674863275095200405528868647484546286624411153219989832852687981402817462065371732644868010777904159085477089535739669960653359681229801517273976028280724383515248332764248333257271224962514994452586670869979276392982657904852406682992770083373221263124170906339661524571428166089322590960981415654569616787501510873689520075559723840168313961554881015482328547968459871272999116501340453989954895704399158237610990126145898393633102712849731159090510521332402606441080733567254165943593044378070513520500728461086417289473112104957156998785371477786290626305793717236123833903628066656089712568880820081070272359517969566313529172265422440638495224168605190722636025754574326286335930172967686601668222690748479748582177465885077530773396284354834977675929523789645348348417397115400892540473589585809602803696529380478222493271902504092308519481613549657734851691038926421197401602435681803573450448156950548089693197655052885244046931452741303937055699846451664324682059312670738069094237218430465575111201750276947888392410899015758577412806058231765539131223754668950930527905141540475548284914707725746034229518153094615003905430560033189433037941538527666022922309406163440881741584841229425133751768862921698377005092782941973811881904629765871680229880600620941862630428958617329667617810579621954593461242358904685174938227473239587651005369251717764748644447842608987221681283345693864166143745960586508484289338506053240516011600217924904057214292043904301959718607650574429271856127995181746355872778964207245955036204940865275926620636705890796757362987231040313817210272584202360855208443164912151231388336214905808831006757452761127941614075720525352318423168895781683269060263365301258258156437377561920230508713415227286583347074326006060402353586417949267194633581949955887948534280358315682034513030077306444474973479781522210832886879984600279819755150178589660960317527932743326383455130783627470335271611640703880389370176898975791031207471146034156097789815407332384274227004482059095694148046986637061078566161568818958353245914653401649553228053134821827112164674434889130112902526793064293520936600821541960554704632951059935099859891022007642678703001726732851656239873929926293154906406925324863416465745560195993864365153403210149659777877251203169974712773459161747157931097896094418222363254923889699363969198960146768714072633390694807584503746096900285045861635777004623399299779850088754695431296083162829636559778045572398628398338019054302151488567616915954739582482930010987403030624384954224924889051030874943028824130796990120810009745219390315450935152387421752445980868554567825248820692218859517180887589452936015425160863202030561819614363581527561976554196452505594512295904941005018970517156553697962448775359329273490043285560374406312326172135383435280204962168672189441889638910937787136231369325799165764435962559811176809163274852171287535906206107549548974274234023420770653595852590124632368549117874150260416157847175544765789219473216467171711180833457958803271539449275197736560016331504777923376403244631306100418195173099218635195968133905018523694447209029532058927646425176580797187468556803359816159833002826332371432102070837935785289622291809194150784795882563563741651898487836797358988173915148515131809413682595112302631786416697821254976955875674977819048889118263698029086554970001333573395550327309684155551820754176216236774592645756338283986938566048649352951119827348398317043707078385919381232943992088578150308286919478946252843200161440672432496283633620737265820880108771906479362586528968788435400419651210263467604042222341416194062718551167825699400051595177187453639721363058595012086387568142472159633610299203420166670617167535764569096190262021101547967548354039872235666750580078482974395762094626378380735506249397522674074328903805440872084205568508190885347967230764462536975052267182000425023905140689808965807851113406396297894921007361843572633550089477498147534948714253944258820614834921676314125465108245599169897934024912093704699782711617618375406165013174331788692855426197257454950764896925981474593001719977949113833474399069420510006417345910985298004100147084655881139281578921955204697027945197127027615886524658135575931231140432200595983588522193674392892898575391764055253045077001600144528745015665503787287614429767074994857094776641919074694055182428134006147952058264663829406825269863841566113088247509329873492855288836912746319610232892340028620062740310521945608384424855641016245690256827481212075630031329255225873173547849269728049928211096230838267982726830284283482771642970184162663599829769773836380349212109358715426724548076219288966313401948055795293131186753019657497761792748557860987875987987976840688638164211521789156145706993759859558960648172044656668710316232142034440183448943959288890049432714000589576557750283900799990359791770039920281231268632613279008325602931062728050015214323765198298382188461885679333167628536532195741945387629453425617329943102180873263656125045587767586830373558866178436301710707919522603256764962553814733542108978305802928533171016559988679325891541172978911577168072490876531184773178996741666267721335892570119455025342445742883657250506293676760706491483042905716341950837977658519054718461731810307728452900954230493414850417902051116736608045193962269428861640752907185079739664495830168578294632667393289206010719497838156490363785793261586638334590400106756159986377367665472275781672062902226554187671081512332325134733585631965468936461161720233295151247193101872016256089695802486873155103425195576258396927505203710585734926283791157446120409139456945802603594171816792890360896503546889960232696583955147861808118793872872452738662644686839893674697755825505621356097399246875600511310930137754621784758900121159941020383566407649538014329529397053992290758283882638507393818157653799413075209842090299124915316852365064714395031100403281015106464575181414413882455017436760452924954595577138769143938240281857694877314381835110008390669961577807893141996575879463498630665470493391194307909950841272647889147601531661747867897483494389313804957843459342313983634947945496322307388303691679413863960873691114986064930180882733945144934252096648735814841079191278548485799469483235230731451818834893890321499877344015972548847788553274894788842276244254348731165283278274715774515590857090976103319411084110174128394280420282839602731321881092980240490181946602723104525622022455063514610426652244436788895930192233055682813944253827994281791030088684439223984446154204747307494812934566481113207903317816043221035783292463401621013969930626775602164627963513217817220553238444139913085647341977708328666222823683924732019798590162939070887553004180524455642148737678838478742681124208101050709378852872330803701909356499711121451531701559465222333220989699036543287648889390034958826899265918880700400741249853042235439253463833258032179910746231207105403333605348890844314645434908520901844189927633340344430398128488088720605802447869523186662873543871834718980285282718898150015023286828567248668301901152590375102949724196290615786603526579184542984479863529191534907019769709172880629755530994191662636521025419362481374346886033059606269868403483652405890042013308233813242105824933716200955200394027103740567268311151615927103100172009647998113213999139876690886075139960073316020143561888879711123146011673712281240114710885211461346973835177333851165223915046038839631834971884097043719218650125854683049407925434050169107180596166669846215045475636308350901558278515632018386201975883815808594938075145404974797046768554603503804773037795562040274653126514057493876148050987261231639968857152910687606642919190581225647806125159039311400283284348923764443609845508140137869898926806265179307175539997235906739780306494366017040149323118492653388525196309994088751387695652540290823598171532921379057255960542612858222444664472338949420915130060905584090863701596503268577061001670719612314991187233808042669144977821837658879497581603295185338042583646630808322598458057593548389509421661943092860535483415551828982780399309588438518431633055578641242863526497654162121041908111873849947521945607528852152419100891339524096125415605491335260542278890301353696152314818290637369900455584543656304722461552889715477916841578076672671497572153616081952422526293294564642122039441717927434877096684011436304769115798496286670738853320337628632056621758339137901814093719617740237186429838879803043503577708094387514024512607868352052492630720915735234504416122560474872377652067499419170238617643296985843624450702837322571318920147605666310834254310537821716607291188248619590732500176751842715651848306251797128057962537627663844120811560767250422232073657298536403811991152283603384814413353667036543585048753334684462432457266213414053116086901010591144938261449485426949453656976335596307027666019195137870562190177672505902840344732098949352763085082080392599630203367668651032736555575854469040477870817718048462773882550160491123478218274624778805352076853659603913159283975688559835348573451863875980200774680872683357759764514518924545076859147838814848578340703810430091477314588005429681822756097460047693148634051533407345802951234628053022717081806978219536586450412591920348262098136569669667756524742742618143222418523735294858145429767465863649920138784951495669590419494853329505479281660755868336017219547567128984683846599163431962929609716977058441631635784865029721568088580923010253384913021147871870270006843560592059633613743069661262352099604139932931854294043801063704434653811274458461333722566827011310137536268320241300145421865774659415668449184291464516988551120242207011537769167377507406955350588424259621988011195258831658238092994297769789404171321374670486974125518403465635628840253077986921587664579588301198185441542232614722169317194821883254080320208318422173376796946603547999357277001648198128487191862160714635360674778389417517242439447634563950545810714117077328446443625315563727197108812509955654077206834138353852730450991355460530040444626955482755148624711843273050331143956556577904631446372092753659853273127591311863567109086964274706281405963393334339248714395172171861008089935587951891294293150672169636327239780338198974980711899845164168135697404557044514146500386254112237470457716920985757770007031330189648851670330587452932666440146220795915221326468309214217989751540122729209721418777358101295584155475008304924777139606114221711631148295509829588961614707504998392750636781067477578503300170646575487754836860261698242717493914123367101077185346011223097529119580986125041294620346396932893625908674034062676969635397547740775522922939852988439427848100693863019451701283327851973845088161653258178203045085991986827596832049594157100223675899566014058916712959868157560464857738479142188694111539703272897652059470820193362793193029314913237145687644346497196159474684634257027416477751011250643086063389661144766120268970590475869299716366492291714138467140036837361859033083607602629943685085238499069268759874630375097323131495757915893602165478996604099612982591338765590039813201712941569859909473294214355968981366040513264358844978973742345299093647775939264852760451606481130461032364178253512568610062547488907981493865594293567904872262647035565561858997374233989571178117330238594992063379734160714611173752575407327311303000441293831831026631095545587216838311442208725764345208837829668349030743224687150110155248223186400677073194629079815229072495693918792250396754940600304722916493976603740503028501419075378732507128075358808628256970259227212327929347423069118651159017146003825421843842007963156715072859938546057516852347078394965751644167514910141330999134996369951911275154187993144804257381726498004855182686567333006035309107299286874590376740186568051589851193822656721762879729999178316349961972603188436354246820274273059925456683994137330894933650206363408508200339566389200650519111855187342876548719354893627413558244915252595107365453488631288486987153376481979021451903188312984803222122385356834491893247832818689934768734285732301225213368402142643588380471917868373576080220085073848326374453576542512616358503274183581692390859408148209797034723321124651526084139299243090866812966337397872760172479071512973672084532404737524811607395704261369043196385979712209215794785195982837439432644389100257609866150079563528511001488787007530307927129970688531127803485765167950249695333259835381994881249322449813837481756570147872841113356356167242907989026581447371253733248529262570385528103739229441242512680309820528415787382206905370728277033376979449773177420808000474815878927512972987802388643303942680923439968042890825832542776884440717018426121252135781004547247143507480424467385854934869952773681719990176581143760878823807005848107548053567764327962577308658193381664258999827347992790000884039383813776618034658701896853567827272736167558348566183276514770383830636433626761072138503444490250547008515467600968469240990419707319068847001663650167472623229056341594267455899632354317946419539342649446016395572285854259364275322422406342387643500512419508519605359699104908664451350416708987570921104314952041843274619008007258057269375889293116180715594189078523177363008360671979526158118245178994381674706841643384728816184377570933611785600848335399802977059109019244170803249934738445316294596322602413135351908588669754282349622585554630269817646049597677668484113528520702768632821159538322383011849986875006752538461508643585902323812176285983155821674064513570490301726061756929716688561953034471770240754592996653314367045166114712879150906992148420706872329308059936229015028118528404211601924201465003638220252562283108120129938544766122173653874302331395337946997624205857347012090301468545373942189808503684523267710622544020477514023106778285645509879828661739066902288167272372033287818984250978294341731752632937012862831636022043014590935546316596704341321178410109570443109823204209448029151706725412593933588946245236743932066812444886845970278086621082361992534247014074251958220274525393193173837701182160611247353942927448104512951983621047110370318232137731352938426817936899440156940990515491027524439735434192982435712816747099744434845790383052865173748952106690656422407994917251934413132703032650456979720218443506668520764851670666810924510752568115814198905626814621294692858376579901925548449246436359567842468047036184113328941538328425967770657680488434248139415709989557199393275010779371965361451292592506711982244263441568186256453440991379894168070729250943089912594389473481808321295249162793313368386902921406731523040285076279937598911344385329785746585566478421187464212958141457412431949955627766676122649848898569861206715628834278042508027600578186389689282013689721330106034480433312161267889259303328831757079795696016113170907947968037295644701721026703146418300954715354290395544894671866465299576127073198389458719509615571093655249594523886857743955965324066346376819350715513158627439745451511089086019251028576887432538489684889217859768689457160672837100987393388605936164591371108861813105587627474276806238408679975949035388954958938155889943304758261479594304000395712549188846012284252104385436949659689338026670493744965348363927476003696531582524557349552351210189520126355360199281674217607344558895599845556101106433589669605932933952034817990816589390411939277530813683960367054033635359632627633813845354920696887246648527489985363185243094486931635565219827931841824297962235246466915477041432917307609700471777490611029357182445753471333933618825546100131847793135011347301427527229862965796989928983341968824217455836800320873945629572303867834091240764792866434719503777064678501674014460786460072127780851761990529314565040732636759155623000628628181630292835252037037682229977024415655065256870355215489255000718307208653796172475435374517226747207327783546327916616806945845291182921885851782438343294565576085734227329910169046874916444689190600506729668598815105659597143762638603314375840247375183804545597694517161722284602424309826008739985157954698860687277884306397751316127141131464359552953655455224351137305144926546736975393847113047549688692771783098825016827455619393766491878752206347009826218782640713343429619344878085304373054214695527745615002501648461304983543822160954763279603654752717825143769352976978556898130339666726434072273266621704391278431481667027547913395726532161283275578046383262133566715005061043270145819421997519797010078531482143830997819986688264959152756752240850232555845950941543823076948514293672714477327523451267079478254826897446484169887211744618452453687127462729701360392762867068972915875890148288871631222091995351354123832933465617987244221979093869255014667600160977772994776614150794663796882795932672247573652211947538750522491279423715075392513507739083147498314167972324581244379145171370287136386603296306520166071455703353794435420956558643683831669444771093576165709490774394166999028401085366159611113440447061955903604129284341896200899893191562418610511285198435775653709917792908331135699538874586907161750057761908169524775419991687548276744121995106915203623902849406509145612908760102324835069368226854671344054135655608276644141945207650980880891077440456450509794170640642324034149325663084925641913435377961307953051103150114982388440648906602284793952246256954404408656836808703013803992616233505659716242077078280505695021639158502979037814323910304462404633261117645331217794397591038102457435922030527027489461043544345797651819595564071107932161437234038711423756661088754726703519112919606094591020163269923731340584288127838922634696782018636780090659570995753115738837482569128187424827735412362608471203854308563499539964962877051051722825303906817606147102136687296376652769488346707615483488190421038165280471486075251711710455373829737405701054637399473850623607699947503680102614573174612918387523326242389952691962931667843539861059099886332862608164915633586466571326877145692146403131378052104157794908252454822284140357130565506523918298744756244222090112276516235490852742603309884741304019365743793303485946094711155217310989453537575218843712428038197824811911511576020521542558630114179463847081173339726713477191977689515937931433779272790957745870165744120943944666648428355633860448358873411437307229900613411592347927822676464127696428963907715257648574191114907219740571328212489773217521695643913043308530545293340702102447650695952472911320069474218058112507760752969397849229347144041494670058239360255786157058389677580421091480649666818437916688229335781644156022768459150968725280500592588766555430607941777118930098302799468523894042437013911563007757403476274741813496147534285963534785440558458362535533047907530087571359631916560296183049788469205283484338985346288558677411805648202692123563071159904763452509052992223772380074376555174524401042163012214271688489029047117757464958509274720639626218921246948288023504570329689793138288756842061796469271322946903027021460978075029562559110625109706458074248021625064410411540429324164859592308910602754850417702078220276476085207330971617516835078528917996623951208701784755295700711538229569125362586390243389007001173014680619550095381351141800459938885107462385045272573022849832065355012905023625105754141471269157059208710305355018217439301945304225323668176558891475257049054520185754777383563621918898609633568322365292075523657974792308788983024133210113575966791538090878864079456809389344670001429318475583209903254498768933557260258077850031069356723201697442879681238459585119434721363360987143549433194387269651507397037218598500368781786013338992873143450200025304151015991900476182543001183318057968612758905171318155510087780672351795370574772751384986405052260989821479102871189857104927460139438253402251363920901040964526443637891720456717715995803885409353774085814359156727468160352149790076065917444206179810521574533911665952680498669137061066050320784204927487361953402328889586330183252406029558159598283781736163406120525710073773891856193358283420523602334182055845055170091858769001101620753637996562679454257566478747560430289001712728872731061049776629657761926339879416053087113387212812266489482891490324164975634158815195860851744448426826503261596553796508181497246569761223357541349167389505522500842326095936494913081986491790784916553017671480048731972734207199916251651357324546189207459849456692095785742775477820175547710755195440532437226258653399724943920741498286247030916880598019312703123525159381239298760375257697868235269497440844181632413078397268790159916492134030820275137986754574521681640484993874200248348018058628484104405074776510324267178784366352469753039424572365667848868334333367553628727867910207276250655558563193488096253696277758530094092007373822810699826737559871080624297411857778388635531337037448266086586213354719563654219754850909302579067104212277378379854755245214453470083309493676339359351241366643153908938952430076935002558577125651858415494834096562923019853028181852107050276154170626457757556665867117233472590624491533266434634471554349709722192589908088071897017292515210479891720932962407317002445255188853079860952015703998753128278125170584877761603973057153128003897291082393121264430068811671624469216077198322682272434904317392910255741454224395896727891292491700145324908221534543758956520548082723200611467053556799773554099893148547167894506073255407735630275432543896351367693193723147914502312714841422250445427023873899355043638492305679008594453992205923755707399165368805953868965125539035456687330998489076259185226607550848204618007718190243214852771320717011813658922336158006805559007533963404625313176036090555983255291731603918937765504219350631925048115720862419268386310596556599396685141077372455190994039178226018779483186996365366339209880980869460980056252619811832046146444274201272785384982349199506851340050838539310074173928878070117638657616328594699734966205544910372886057802218210730868146771209739197668737646069878412266304487465973681042948877043794597412176645447381311561139991939644901907054834582570523139673423562200633318960397381191796133176525314216518104060705233947265129874605454308262523767569691337222711610936516923224495604634523133187585307337688696140421157203295103646800509890727249362181066597057087858856440909736882486857402941449697519329979754017806184545686271158694562188317334956754734883090763307315117717347701471775472702851984224110551007082308454027470101856375893996024241843797496649398440716783151051825623797365654812755087899817081870109870231270656823994142925627757379432772234242028053656507826430316189531949125619032371520686163386790609238312316214620119638431619011111072923264236286103426475295226987069298689009353474780113811442895888770942292301983785183395945222904418884043484962184195442001431586718272580668564677033310236800097098291723529047215309228877420028787045831149608093105602786805487338461777223037882750931435416408791849594095801993424742742306773421693422174513046800157568333143353539404666953188934786500433647422831633982085740161616035647991730671344234823412865371434945265287601284643954886026032160092908803145653667380865552126547581700653675114349342508218395642104386961738931748612149974347581841387708113991500482213238261560937689200785602175732741159658055799385896489094890582614228841506617978116909035562364552283883865815991123513842770838630034421779373701378723824310602806902781679535381627134212147266654977541469028221749521671713214742816175369614722843854475930804108139738122582603718506173451077335127691205357628706959875546379464575445867163611993664210769906125291350038783081231004901043525126586845350679245536131577038617759252355665456431643579230718988532724185550435337312009792153652042608073382910559441408663167645982330712038578744925977411180797049756025456299327005766643277252962641238045662201528302288808630637440197626553777263116802839647712248403753524113634869976701372131351308392866877669715560097813875778086791483902843933639712197087043751517783196669441715855676626367257865429878847636109538396080542360956083050051465177387017797462287688125988089597965256516290111683989944443058525771525691968340794979017378445044667811187438594604392374078846324927507719968969883749586177459260695664316658406187768132148602512033265752422712722531689718924947588702824533517991897305421879851023300693173519383036611186773148415567904026984277281069549755197901572177699614692147474781689697266510018555424798052071758536016697643882203096390968922417135486211829616508551358469650459272309733466185638093641865346087655442108954231738396635039536987183303857515952120662298543099240939341456471867524969976484189706198317139553688651807846150974773167554446649462343057088168090894417570276122706152069548459663290886117277109242583880455642784696738041261019178459735079253820006825336558235042948554432008526301894952961663587685217367932683155127317975818314771199686647475447570992050725999448878031976351214359176891536649362910054569240646045659535989867943492481025218553440587020131148299225498956722378564320726782501274091656828614758189803170947200104527666685324528730977323796964867067596800035913989112540605488831446709648959830632908719658999586395220477013338257398023845607739795360915107045449856834773666408220615746297876406350582540402846613878177164518239872767530009733147452382117110509839230959528150310635317086909573209202693149279010947822929315447439889427904853253417336222480869978976118217900763776370144846707411617226820596048486911965039215384939234430641209545203458978527183372508291356454184443341884289435563447538686584439775940357021908957205138532683516880982932024916677932554362258262482566983133247533008418353334711410643002776270866484935653785950626425677065802623244428540551909846723870662728628602479609638193527303227920923085899855279484593882234219204860906357383692533455150941092334441463171926355618204210818602097481915688627266206405498428726924262967632381368453951642225106342073157529514446008810636548354964864832873452215380836143992082915031997329818696365818911160496726392664092694168377054108880963268963954708156295835088412696571179330456262363146692679389651896324199008185135608823894956619458191958700537922232746431895299913424429654002600971554557727422745723924433700539904732545563435424985879680282696137880853716265905949489656636999528702170446905823496552917403738372205548153396723204978593905410962559711285786679830414000548699623996837074246781178748280322194928091012966309693667039515060386122059762239796486436527562322130071286462586583374373456157282065306512624352526085518847562316547210913596817262366724657940342745198109983363938273946813950481775063042262329228315523316971396673071283311235831976615583559443351592666097655402481293208808237247854473502566318159819272548318133921025680030580764892282314522082884031986387307575245370095720330644272199832065891615551334942398916712719752780151161562191409637661578764105078909808175489157074971743300858861671742660592839655511591777396318786582451942303983265866145628507770410159880348011200801151779939694485270614102934214642950482787946023704050854250684547419101245068154614740552336471926898830378794304826653643434174613404469606500540035602059817654142228333488496102302696827093550170027410051352915617308601144665651878269526406200944122906311672345651666472370496142100551106706266780295518002000526562678682475178771989451259720621214916358173245258519508598440451097698239315959168799738012790137863520651320187560876537778359656586548733440133018474465103403002703682347851440885835314152081930288149138899377526229299119190852951941255244763668821918130925106379785983677385174654423904036866636316407642711347830351428546681653544305167549200310553025398672657893537541303971543642288266631079951795770792567001883668788734154127379963704563489409538229676059942752201794812797645731404834981601267753105342707154342651411019125440778127236922115061716164872300517838358722647008363954801133508889897719515595253218534803146987481193732711353762310679674740934331378501399235830963427356419625019954395159135164254452898792139912205347151362523585284112684584009853874026031456958967096131466463006030122334101301370629258589614555145416492122801051042101178780711040855519551712429287075355760992683508462475447821367672559516216844274422343600740312217233446602238005356200411518356904325215647835407329365205203861681042161157676727324120299307977311904648149861564002677756303070766222693846672261476020661589854558545517709111796949397352421826715893059896738754360263452594558774462348252164042236362101573168472911870580316812325646933069395646330496253711452985825734146706930225259586447550386320444351965434936682249387805955238329438785396966625565633949168161032825150754812117835321434474265352525536779070191618955482313235424648645209160375888452680558720944176930405388983942611284971035540489106232328137242946162110342961508456103519510069773234371863482133326054974449972663116702981622345218402884522477105842503393001228883524621449464562810461375339177768658166682097370848858824112146352498927140423190650253234746722034725774779674964850047918042986268413367246066242732341102623636036650856372690252536603163447132403621560498950619692312478334374933292644143108332658844120186149386865493600037349304080324529736368526272401406981538200948283931386786836869035035406898752440790043543375578365118959175797442128866949548998949324803712073118478866025103661297702882394340738916836896258887466306520605323595883726786122635064561095223029281420019584019314665941795698714517560624754117073431784273095450286419093953875605654219629853597043924524545479744745068741388897719506887252020814688516655359703182359549974596143311099355805419115599922597931571585305632345528172981191624709504387760733530825540611525571989219401967012714982789982363266126097661170324282444827516604407315837230954072230879001120115258104204935618735522185309323612752977207164819398326486192075757425210144244615276010012905593848882669746024777547038079587371024805850816879829979910302137863729621034301147488477865661534305991868018155522247017659298807067854487200498748905790384709760025456966731311877819777368711312658188731812068356466890991450673054099741020153514241927029393290850668967640236493944691591273498739670709486490993535848616417239252737139337825414030422227570803079584135085661134335865331506252918568869160756284465893217164642970653954503546679219177452739927559546134754421691467484533200478067812956087627760413819522490659830329966976277984361103963746727094930181297956966705254091170130773958276526340092831839620237422512803750516840157664535286236866731674692578373829030948346029889348580539886553885220315713736988590366042679538987586223331414283409494727320072234291722365975165392905150375663140428462012146882806459635876514594718319241301838240681964674664612298030500643799611334478210805801195681740858915129253845818935375138133213705973710263958731663097886991454356317417793933407409205752119241123187563399085162146643342493563973221212171769553012416770319919548473668562896868060204047781720640827476530146771216019636751538112387887220719495433630868750239921651220620273813422890741921207348783944857097467535833389106905995198073008623668323795094215880842820989633711411069033833602364521871985679613416326290132145263429631594509474937655452219141518532028032941583186192264686336407472555921952122480789255756352017958659554416441978561803452623661855351499418420669610612708730642886822244813404573657292359469692847138157141369913650827500946866091617351969949413068895662405379789953739389096206279488965982235442343530169949735508765469524437239799727330057962781562574089389414204060228580028522112657907760801358554957842922388922132170907901183250344748738847823800457729019478741707231041479433006598632256508747601027811489231873114707350440549617083905749900129033953151233101315122107604429537970044113077888184077672279172546837660885201272691385622356446829136972672541321135489889452825016124797092452557315802086888343341078718284011551657082089350218225501467019891493202217986959766630812498502067591990697301045648425950095688954058399652914492184407247502374457315961342422739769922327658977094343946243732387885631737656296381280798666490015511372437430504061815176981213591451385686163749137698994380945189507824853387272463345108369287448376567353784045950657347321664879874197296949395713251495994849519753211760976506465482114395465138897044445701220189161105822540749220085366759851536259557438466630775025175679952957653295914928684884241877092574288389499123946680316000836258160670048136420529371202642842186343240803594856696772229418090622297333620608704747050279863864544865870875770754038248415174722995678571972390352235848653211030703722096789702636508642489048878981146452550744340172272895142968159093894248972657443289719926747955023289386250656654723822544171845350178387084454025069557394694611349673318259199847343244077233346613515839959582428849737009387483641396198327213944933494053667288633563429529415952212493498555069070642925711124863074709239128204361539048871776088939777102826172758647679020962862273737085175458562715311420631169151992535552332199904225868523195493415750107281101833448790233844568672020637011926307557204227961239767524737793894254638032647193113255171852133848208092610663988405081648434389218601482242938985488767467572024617496985655817281084780202959612544396616503316978726687574840247594084165329726876603166288416848565429785668789645007439938012120225648180382173558250414545994254278623509487503761391072871875683397754127735572633932275238151342407357948875771618662798919585925109408485971522794543366773470333425745576399271777882379473193215547528929073726384553451399055512210207913274552012512409887711381426873908049086843774576402932974837009663818503948606753225357575868691208941678827666940491723742562251955160892663030541156594736287212872932075359383884025197461117568238017849453182113945855015593078004447691482712485036101990162863859736896956997436493824686314848283804322754023542158475714696127285961262967431033415819633352884533351020043753734234322059223814365255354065521231779623633906893561572621075554460453795380295562966337270362002658538146566465009130069819759460134323664483254957459463911149967799479031878229351625801497856725258039066657233778001870937254811970418460542809264350398006672525909099400938968751273819668125546282835158813517006188659602551456896655110049201143855597145772200559271965014625275519321656179967943942712592588795863382582358663358193584928069748658023728065568795514819124988895585765195554534014195345568314032342384769387029573574490823883095263483034083178578799079444890404723542773363491332858746892283126537772473198759075487470512837450203782263991921573237673691749595206515483634923266017446221112010000130986560157890109129745967759204579425070457180370342833419402470317025833202014243652231090924232109341659813072929065957836840003538325085796543751120771346959408112022536142254140375154654219642514682656415615553415487514203097999511284884759942660346773086154416608890178834484196274627895424103113827970767179745589296978948698709117886453228070776286439333045375706220394844729867438067797189558134731007496549110832255109475949562742782087188281002149332353147803234369448446480523518577891076228189278068993968008628654668618482186367002834083095090125462256116093256484484616392126139876713533229331917691033456806715238157208071156585143133098251331250636512408979272911591250733234658251753407795376053258510196464998286087367046733701947722815287672007765882341404112821419541302131822877651933641357027281264055997557720349877372134101474216450591180521174318868455103967897340962318867567467297054945283494175961314047758330976252481927638845750102303266164700497935832800408962989616605816164133624781480650062333713680719644405000567513034966939875904855018513482565677949486269283084999769811778040620553018837935363822292359059848525064463750852840563106450942142052803495131669648839973847921371866789748690353217458327636771807001971621271069236210845125416425949515432397995304239308458705267847529989165047753074691983208098282540281887466600651969124154219715147660354037164390021129863634809616766161597422174645582518491864950357876023926376636897594984129712911661115338654188993833644751815711056633715682957977094703471992295117540270494852909444461783837900086074529634519362516988271299627440958553742083546432669456354490823246608076158227845770804160563403387046019186228858684559480930979016431504981796603679267101254018154460656160461381364119582924336312992531852733937248917703495372297676793457146146454150755462718450730034539032218149893078073253931355354861919246793716624482819003926684275000329355817693572104887833490374175029339626990040038440064680165740166189487547210630742807840742370959301780067572916535180506544070848739741688809493625807704725304275140802962345766905909857946266638533581173249341240203306624144449439661004095477050915712293356275492182361988017943471044716756291582078158800039592652405748223686568753689648629043529536375260874082969502165849117346222351401992942370366779578736535785880889348151091592538443670145418016039520778707226066942269112690691922053666481718655551776355035246724086523780078220718335593012660999598125324782194483069568578613141819431508723917414861087651723638854651279971406305211405142998292593187441686222771229620131342602105503418461589057908555653872592878777443102898549035368768758128642062691468549000819364762688792626719138218786113658147009978104370679787597279818546875361179538576535337511116315668244070496051553120955236404493215366645413756220501450482636945873611564033284878279273713964231835228803356811809678143854242115894673907488835739941888078626347806798473018395288613076266056439902939007156752956538585588519913814916094095427820414338266024837633748722590766823369288238716309446181986399085750503240496631725343845618603840033866089582506417550781104891251246012360000517662958524701147320226547967890402741110408826082439680093627706810789910497096342793397768630990185625633228037936633312504103732970173478788068206056928094972986023719516493440477557982559553190915643211838943408158308905979571739250690256257699245855900407469248606255586046874072083633552300401650127365504950760594893706336585318642999562538230845478101959456892461735291953817839820068125898489416551723530045614302687655592172545229684955763391428854374817663361864924867985984434559708841336627214989711687106657261120235534716365695128783633752657601243565563488039136253328297144747466482087101468078521321869053462668766334227004013972498121583363495617469207828847267698594368798068945766827299025939460597815699986233666976127949200038250419393283166700504948084776321617949655794536876868523008073718156614071752573415497372524627597588662878654697070397805364455741798117411523353324945872468445273848290655870942142051298837794908727748251417030696182154576512151464293039529680117675290187766167004146768839749554403785537490605002622560817986516115652617735349538509362199326295743287694060532684038024871246451099990303114167019983815740572796059032853815729748773861380162615603364982954154760435337331027253422465670571048848478850232888552736393103518979764583821777092023678277426789956564100430297263388843104817683243958336903453717462178569811644530647572899722764494719860105891229999558226655645783735884850944893112020602119382234157129189353032540687446052396197647066635020735061886248721927861473114177209898002914911144297130936672170395193229534173545752442834228378026807346929431573575893193040772797599928327199686729332926898791370896654268701837260690082243513263602656990131299602800973269160780063787127578933455584122953280076977664479404931531621388395739017273052564355158586076435569421349765897918338563236300056870546043607750280323656269344240563918505297593704405109514204377226143993503818319996590049502402140168016028531526733038189021343482336628341304499434488491634152157378972674361846094890193523165086957839527345534864574467593395620040842604781317146623912471945699815533042348950371738443834585685416946042130784875613441407384181663045675379722171441485141697186189892414890838125674274819820141359178066400395049475977682546785872597760377146850344842923083343711258056659202877899712069332477170323326485952895201575857694178602967281014228973877207006743013954098535148776190570956595204764288927930547715332649618266254268810381830890022976236594512213644202247061850185302815186523857322807707559953937064640712165094147258626796222478677424085389983143801731164400438134913925129622500098671430707279482175595277344296977560585676780020689041121851475390155297974700263895401594731672381516516544229559417496500835395888973069915921667644863688518015143894052280126062296554685429665090500021315167962973382651483962544846980388459368581294054404029069305180701589197045346113005787516148137737820281448310517601295962534657417226825510596416403886471952672947469705895635146903506382244937466074311376729815877361792543362553008266809061433339965853967932354382079300310085024595260192415673877090594245666528797913081366694268115296833335402912757999595628237993030512472977197901535915742403363558156599659411391679476634604541834412778934455824762757781857029037239292210428251292663714819287818471315434976661247438835022330398372268980540172264158877600677459606073377950828460974227234321380298537912616197064676804782992474855290875109658967295947994264299544924736519871814227429658738932870380018027621944415350951666357431985556820383914790405837353713702844655847956599906283250108643941872542228834481426310301543561458732991122296706732946630502814089164280677746527729036446535608179702492800755458792345553481449337779167193980841599251964666644398248799527414489091158743494965333642529117534419107831192630949197910953926023519870754036683525289983084359391102010594991879344523991095906351044105976115536755266007568719733266711647259162587944795076761653036857213635360947255567951062044359245933225578182455427944499245462163688171429131748685192383583262597294008081455652133963466486049556196928090728170443421351055933803276567848793138340415450103695742526984383672386800353023636462711472739432911679933937551969746291268724638088960832182966275069697641587561083049977432121105477386759045794399902405187739979841032660011388653594523779967531593941508674908239324530037732193184463746328011001004182863410453429030584033597646102141422139272416040367027836336755593979696959198888107584772671128990728062572789669959416074982733831349047749285869591589909573951489861705643832873757989135288756386184307838312355031256061078652327861912180491333939697825258580436435127089470465330722420135460862325473769872340252466220775079470115934597553097515442107810237068090026092496457978667740857742851151118769365648850794582435190142552153313061750800518238044913867717062208572396481501424717878558210635255338352442810656116894142628845522637366640531816582761184111726416362563261272280492044060882574504563812197905328892168101420967893301821474788135016639217385891331860790059887966905629561241530048696909671065405377578526428228819046634217810828350813301841032090471550115446037283681163108635413244465946252388179447751693927998251859961901700782593644942135765984402900107329732237600552256183541924472816453856410470832181338821742936692959284705430830406428312260211255700355391018018956431517774291870529382277248376342676165527326191768529816001473186918933069699571372566716151907017816933443143593125403752029320492438877334703110528128871157725575378803066652285037398492207803174135635969498650283069611372484143064886456959274849951740549349711842979504193635773545865206573293309835162873703934638657146699523452195723638808851523651087900106184954912119153461651489089481060846954357074582992261341694174465532187090224598022894392850490678918049792383463435754727106295855035415946799600962560762545462768105294157855373303925770032052172157330416444526592249438193271591865362213075246761996086953612031361222044758690245657833621049420073387849011564047872547439870654987942451210512585691502838833621709668332474452701296996580833549696405654649237729723654591168590334841059887336929440499954149299370270577031965756257650274146024500136741706455018193841850935925391203508657334927194828567528556865801557721157708924595144638455824321529150396227918044861728953901974468520648505815134154320134470834510168021470440703022134264048036987829966818269738072256192134183544054612791335634776494845142078885107130415296570677205989859665133437145751987761504118635531124640863075536470532378337547441680695136218043686846991598117150225915745212209493681887862638767984545055905751354768272102626948083198680295833305538591674995947915091475819204811375070245984433194835819748438554599282330442319400478778300450005661073838961039372655262804096581165504481691242805001780929861234633901268653605760363075188578997157761900533536612706216754877235476022989400137136795695650818528958731827440427820401625271995511103538287037618303824532084360403882332749020708494614188636742359240705660475312170572359549213513755148432412501641737853627719557231297764529101439490655387958516946804378298704697409184326526492722639532072938142617111086416389529931177694854766759697595544783643262063922561102152641333245228712473300934565764226342471445890798595364170784804326037283933306501209143075443350781293320893793915050252662850098296921405585010673751076529087967115393148665995639566924913802114925431842758375687650778762478984228677848461354216498322035484403029352839133249638221989278150682701839693270205837774640965899263189789195242144161131120625213468933467713401752378335410068429967254264979620945270441980710330766295614983518205877348478974127916328515150591292826338053604168300552114357812345766439167637004155980640370628956664936590294405419354120666962493330319642097114904482210998629102694831273471988978675515528557471160169645343067866883892747811113726169487980381201433612282910767363394444855850039460009793651196275706212528450596975157949340046252810032214238731628688381719255347307286232470242728057840844564005960814308236480714331035601070306639404025910109836447682960376627058839155938595754033950875666005699630580172744389438400585768233706635409365134803426631734809181884895266860937492605685060850519130060304745531575919266074005341592745052492160591944424788825582677138190402147732624545374916136138031055676282540002335557741019433493746733869765156710997261560946579705817356735971549803218866452734524976324074464816466757600454310161267306989406890498553694231629120971936760800148212037273013295042670911374659957111933079523624606600758650336089449129967330429832230397021841045898649713929359337814189531399190376520077836070572345704617483499095090401023248138282859602450482480674395084623719043712024645368838873763223525876555212213477776922471208053589345540486504357527710922119592875818908389687887360610706271035421106125716979194415471014162223338354780608436631183233871579629350316799542123950487552075072616854030145713475621034402732904349311135798362973341558742578650771205179743070930189186381039967814675914586325046908993968577616505192769572965150909734153295133493853432789117867851321407030758909787447992223557543120731518092245782448851200320493087880042366361745453196577623232899355034685798209874304584202903500480768409956823570604984651349639127356540948984625844245295914546656191352808645358028006136795594438703862933601383536574160875505510327363557262846613231149828188254102290180998747884537703697069968536967025435329950199386759087931054541761115520749435539319677356639687013996237292103195389700410351324876402538354085208801365196139639521227248577822785441706982578237257820524922055384430686112592462540340856342338317802209777706489806470247913712092474120925873505784872231457506955490886250929502360098860511133306456973039958656502454371808786215691071432279178055827946293607582117779316383442887154008631713075803236305303741289735139832727102363790919270765088481635571027587566093630824395203261193763359321713568569697070073076855742426158140056925969334122231405790882079460792752923006622782028038643824892051166092140652392739320907367940344881545418223071633843716347866920328239622107461272745638758646681185257906316201095173752294489653128240196389760551620316311615750781431580514261210105133607585692360107660606208004292726525502246290727474880158725879843537317288731570685519923875668182369356668003228277940196458882980643104171004322952856238010331195994843906369372964923845615733305459878656618999043095084008919721362542861700747340051524722059107548227949597761129464860624677521217234058338236623930952039788096077015009324794490717041426410139037459724192813353042558366291964667933951774202372082457059164722918283077310952495705692853349994044992202561843946439417886059267217453480455462514234671329799108577254854237713031602892480558371083219846864234329770676224351847515290237810724514771610384382829815438271658800134415760022199285775744659380977059490393666784315044416742713453656750085966537507956612249336432713314304259850426084089570878619408845426516273744701623094805759323440445754034495096603930839645587674564560155983839419951920149484589734553942651470011246395498142475571539886413142801506372392207887317902977750908313804495142152476685565135541682825490187917255703024985080196292731821777826837669806059243610577782608264294370415856374484610045526243656547288830494249154696987479693555042885842927891663683642456846412267357187789330443580642726143074765439744813260638086250353655054983156852058492948340151186832976257357391160835059346186328831583001104471443027570915566149247615820545792488176544891351679961649060776201276028793119740953720538127960135326738521930595080439240586814672153556461221875371854484839766769770807680321841555540122892949899728930147666109144812565400593109038998757529100602559647760885529610605418435908170959117355147219028326187063262983582127843374270781611701894216003788661846837160683868910463581494163807222334593451696020964940650234732657342756223996716049232974476767017159081438384964066848353062670736693845535269429690710500261993243041901939133686680105549699792783905903091631858060480185535708642778076692384352328515338246059207252798875911006353593329662478016564517517040972859357940630593906827350366580578378966950262980680664100572068792719445017533433847134409231313983491950527839847623297006265103290560112190160678307034426976958228099229886427490211275542162395133069231650646880334238425726437624555621763738581064770592630206707806164492638581878001728766617726336056222647311153354473602897238943777683603211292585341155713824004395079296411913512951009722640940773665601691963307885543352033896725450349701222915855877590404165993788720204937004337330646026799788031165268675754149759261140946930585695260798281920235718526553915264997228763877287446353179118941800023917622962971595447681581166082150794605697042380963400670976969039863738979122149516559796223285267446233188873414511280147099795041696147486163839475652849450653649275722471631736204138743104426686155403085812915197128602787638113540018336785668843478760717981813756549875455880687659658343333822297858725580424797880519276692453204956323309701206145296535750863383904083796509559736825135465839634927674250799899414378936275656266074135366587857043570805414712002975220511868167522827009691468856603863161129301656055841780759700662806647636965325251202828007104614322721044529681423231952973885656642756595854785824594123859998011377091094539186615767724923717389712614130999608377182710291179949452755825274789376794113175741039245890529527686667239484725738160771827485692470637325689639798790512068489278535110729887489613165569082513614385269838456673349890813933861201983800386217399511854185075579653362855386521622677842594062030960178162643533974538049988742609685392082282543772267031052312219452739726448710824859843415342014099245280290346496263349002689965375674073680968209733884102309372545108516697961852393691851245552463838260339141081385224252027662447544552544729508847362440942213748533321914820951304405042814241657390855974875006907801152076939761374671932499100496580251253025624471008023382398549890231510743275181684264225161481072648127517963426224935211493599267827791567242010628957058893955519740335600402322155218076083801816430398506680845334888154003860183855839656022917391744763612698520738207565616376038872246154273204593507707764661014377272788287699806601392061722289197578253633462174295608876241889127336741802037492657836631427250756945014057741344105988431105146399326678638491382673890076883717245652470608785149339841394812099502024181293010881614491293190375944018478212203793890624749941145371694448066998704872378079150422006164682709515371900226802575126397958942922432048696610040884148675312295091998021049154071924984472136429964228723844946596848293973796263575798135325222921031204064716438484102050658997777342248826114980760580511671153935870890784617192380233240254291524049249624955901103031694886631055759867130953223367261969844923339837977732444094264933142649474188791929282536699237053874003588833213602471193428319344645106837222684898359098272572527814964051757398977418033377440039387300600527770060400680446480225353226511985850580699146503186298080319180220521444841131804393154806490461964789211885935352847693235385731264182270933190977759110079794832159041295590101102980022285469712929367681431868419986747348482984418662716989741419699261545222841632995241865403655167152551775385102531976746336357773868514723453466579556521389838062429362132217645611998177956157034978472841365586592633587008771355443424179893754503371084415515090955112179774041887490571463733938006563973779957942061680279689812684241499093428444701073002911377646018019701718817530941390527044361493314037787802268698653517998567678807146741437792198661488945689367422856702451861134723742647453226758939789943843665144609187481071231125375627201880956277987010799917656219226303149677366287611603748059975300402600944083986829086288353633922313480988710583647127008334475210531160851741619917020954087596712790473411230647826453342883303235495755516179918272067194771642019294057099339521595053049586111167423367278113680530896780783680358925617291304094685588249663687904582938692208464652758605746271061652457991954742734831605739634366081630984554170266384966875289836793974200586675953862392994177464484694645151980124177961584793604328791403157492650876745570101366217651640081405442473359093561894283645191989816500317800884237479426964317906329487813757138011338263007007772436171270957418858149670028234972047069847689589942245600451045488930553870100902255349235786090897878010607960909204898769496949024256968267116498675955963169724463788051629608181593036822166693115853400761414469120410111119802166242342106474099374094572727760908620014067948446876715827246994165303293288333691324474132965371664994838166232864709943285613144563646011478505032073663538754465471205636221577989081588439897825183579173655812139676366189683407312693381060806781042203403269408615643093076312245661280968379154367018640186477069336140847947693128729174963182853031598781829946056852129272032065411883227164174956953137592891283088040809535402851502897397938569601899966819143911191632136410713251378578078145950787130795173944201939890981126926236948073174199597133858549037922136350046604493353248039816562666828210140273195803095934909822935004857130400704583954098833559994716133473237872120902534578923191685300991353666210004331097800690571941760869030329380769817071504510933554134184103976845081996275064900942453062453180241330419521320031835386868506227202792897108998308821807095605902084734146370941551811104271880254454349849716392636908995429564348530930863714961565589122888722611916751860523268154756185880612998993065626422744424808262182431589612650105708051559126501765109335547759179202325119407587687300567451244240266269669592621697122328497154882355790350530719248002695754736602822156334689510438258927951582072991452483006379100047345903386086686110710143858231500774570542798278694967709648819906963929312790607145054517661033869349332817690048579658670291336440072421427424716137338245791439780505323737491400514723713780304289485566769074062210104974984701981577986085004455949817172630513770788452449850560675566374134223913351124708777229094556268559032445933099417717563287677224420034080086521063678850208579459825952285152393575203863412344421506026865692813665271270261679867057312094025740780006360777741580529563190538586141321497427781135585500035381864846207950899052012990704261140209012330600217056351349571493714431086305300145471862844975055481130975716614071060532642146523125947728923743993351665753933448958213439773556777082730990438794798838633344979678741421388318219337006881645331471445124064308436513879078201804386372185884896640885505526733061390239571678139026847838490464161827770983256995407050978026837110064926425020215495332127261189107241031307387592112078116892722937094087142622317061251279709479169327349541359635736111118309740689200294403953042971662517662659224718238064721772330954637801016963375802137205503202250556561839763738525532738652950531826236799908517437617289859180909365935986374815691343967895825142612741585283828117127330796787440774053398559135460567659836414172818554850392501268611825091047736100771689998899323564805628906267070687367834939759480950949678862980553048591937450663055214291829365291711271910072178959251734169941977170531770686054417739982197973060443784851221529042248600497488532822907609632667880369478437519094803010285565148907375028892496941877310249842719762465062103269063029673774693077076877142211527777910084995385988632409690966673899705226695056178410229071365402066512019802464802602803391397862438066212291453431124432685251334399605919106627618250996716557234977280628160334866010159663389156870864021750714687448570289892238694493234990454609199921096134932051093562681147982095253524005288490011458181587495373586429669414778049602131020516871670668638888813772730835129799893469587219389642375759790104409599815866241097381486188009657028978699913234339514315519611597543323635791918121674082488791713665660593246994371288786189798394701509348351597357031513802942791864123814017611250863744386660825235509416986260625140582304625116028148219536797704310872374410430420688775613346607112691193512130930086134556826133948237796900365224493722208312817232593322368599595068901889663256471552075619049126598071510277960547733184048071609863863353315269059943187249200174605228598810435788063293704944965420924413035263096544143114565445455375765340385498896053535745122330782900492980218072008629037624776789917593159941846077034618569839629210420354452977415474832133987596421280124039810375315598813009523019729043090457167982024065949447231774555890992258708150787117137834324420398263540691616322379035181041018249500054962293276363176005882888135394637344921401901007454282113938215081154548885105411003631527979436124758540486818099667515611032847414616175661633491970866449694427400303307733647119925918543681081910225303408988584733369279870913500590905500016631338763368876022086016101094492669031464390849931878802682978727355625102908130277082020369591237080076158929819337401972056492985624722696728432116458675458365303413185996071521017588329988133315956318456116329757719002464297420440550917368574485359556281717872150916250987895684108310351465845357863243097580569413637374080844682318803515307641584422210704720543269527526892515020003360253772504536298860617571683552410300938160724980493170362852336220037717501411194774888457656843440703863278467769944719365349804651621172653823580703138133556559455391291509089468447792274476463342287704267568125752771031138321128111017210933807765593085619578517394163916313113827031859611080285196937927275369685821734487556123159635393077359850258137301899201171854339036373118069802673783879718539024530899407990732903813684849112267243262021428170575843791868097511930188903133969182943247502981232170972593065291438965979943607565786140781380222783253693549649890405103169371060614947759401887702098383765022691322905157483075894090282802948766982871921177208045637279338688331667439507863186553617979663113081316332244177976792347920643613719679226233560647781472010318025660016520417923863943230733317230497902038307445221329219606524904804197422065759672618928601790745532313797254881672943293500226400472782586505733233399709020753299481921877856367341392447973245710165508880895448600226714453109841616589887819430195357975369959025148140828898973530578352556902488445083213519483222476064712658963120620522022570623126618119881232866622217649759045549081371921876380436121183448437696173056500074263980437139834191625128547293284345206989826727987330127850574248184587674724439531052391421293955991586471151080955487323069268027059995275217127468836210209903602300044026051522436083825808793569679003704133441402194986411845020637451581664834084418283381137935732123585192317605258960633968328693646634531708747881133200190859640690096782894589364725479170800325225241125580800766200448910378281615829320413414469103469952354522240842938689947656603573342314303942788503998622301333049153069025731470727963138535571772328730994451643221844763118375294489011173867256062587857021841963577712126672152440949184916822975004465171701147738765982818776181578429902258806975216667374013949812592466582523297580184641970791056287632848693379931283657382197205392467922368487923524830846809194291205694697676128701359677705068828769587064038896082019076596070735792447547047002396772947585813375873162538810148084029907786094224227908120402596578324079000259257035355693861309451245412793406973052458524604322816239959797032240168170950087892332752928164613516454790347191319113240032467950048478062954959359384837983919827413644404762430516627613373883857093092228285318274904354269616959040783848183355469681009563698329713736643272224731684340966206233157040020801583151328225698401152017262845371808176142445489506032249801347491147612975484074471336496040540969142254499798575194243657524779644664876773058432088213207239460153428361018330914744205903808995048097842605454923747623354988007464098500043664173696212955892292016529178582419545975705757430656144115105219965698974285499015038182237558552925883009439462320450771661058287812947987277666154329245706532089710113970314764640811417305517780198225115124972740274661519983004401220362703465291467572191955438495126494120364770897239466134098828219696286372237717130551726602057497546709405727952882979609860237086592273250540034949976473310413601845902271602769300326237335028728921294952164119094681619995265192503318630981455197798839159920464983026329913385278583354653767726515946852590280856178341584359757309202623635662465499560740089579647795187743947423583007348221068614230232751637291227608172494837701377035660459853421791451869863744094203743444980703750420836214844641871388288799296219969968607523067412863310003170209607605971497609863908803002222695662592528639824016703529421497362218936442029070012037728060436748606914769292216869685005218403855205148601535033725128705517054548100856525474437088317991245752229749197947458393918389691526847691818343766585505298038799580641474504246739505783327672374056513981033947386823767027771177214879786322835707834145832976426112774021541448582425858222597222936554211055055154941630098717971766284589926864147793015057723955647256308876379507491382976991068821022503735829361873105380682690337041137790621567767347624586546848315824747994901586230465823325832981532876251782881103924179317940795488011620492371810490011098630856286926553862847437663773948105642703863700561745342046471805488516995887490495164109378546628349024774861751729394334964524065098717734366109780779088007261385697572957526473985263076776049997307415820971513472264717333730402440173015509232587523268211497547337783051621643131959180411401838896075434377031445775858971684782546481722443664242128752760236327601769367575554388723163304856821574516842828235436424222696730448195970811348533439371003942727626338032220562997811975536829850031369902552428523059672194057728888525159391867243460372841760372047861039760200735884439322709910151312135824032946094356071306451963889242232286744337442901966524260262038785527812745713991379288737371844066370581895479533434755074572855809018996000783791775719589423705692194156879790080620734282692132320894636380147063107643842640925026851909450310410282744605990781649620932527901584897372856088631167740854158339445504470820333430096091046115994846642882934254332150019892796754945654252739266570117830322132731369049848782960728618255118037166448040410875447552076149986939257318652790650855901682842234617147548848939594594875153218392134357244797468379284522328029237636132625558341155188347920544117237831196902337597933336124498041299591647512538105127296609424499825962880332412411473844650814609282649328211243451402539061009302965210564109524319838944983503503888868098985923700245485872213201060739212280720825431694559295351680335690225929612863087449333502835469844878861879001962795281183980100756010008920112087999918885376246103008815478081750203838696521498693349042081008896673461557185153889094138765516581380277487389887878771870161583745620205169364995026539903238079830661152489960649972158736473387052938851616000057722574139408651958368565198127457328698389637553115761519820560788916718192845542833472677942057135167708319976447543612568082076576957871233300964851397056151056462949620800884757873591115723736550577138283050740814910117023195837801964875415226461491792320402369092983029967600681795871287312301969233187276905858974423051124866412317286521047666838939041783550182777622657131749577206772725225230662889709906284345620262065384626778564202364240381091109923843020929507875179653378144401370777558908479914266899802018057469169001768817827905201094952355060106197522097479018663743034240894996715539407507309083459310387977859194740085247034475809546141125677703586840708713128548729010677191699976325687780293109087220567050105747452111439577232414190525915502456026377386347857702368704389994649618389821278969820096107465564610596097738184756669916568029191651253174766278865931462900860257494392099879933244861451274377971852001168981395250286178110085707973108375010162717955281435371240053069825022302788507712802087014038790042593916960591779042508642169497202051676938217745773781984965969106971501418471966929397963017627707093472962737791116407952464059360332792966412960281659819895348390275655463243898331723583249967961998209691821861122568326853555433231864462039260122355764837908769765472459413605992486694246314615996127566072782124845109451832717874382977673299960406719148155843000366687467713636672864207765847799062165916116164369968926179264063631655324641118131489491279391267524825992929996042821737483978303609093297384610177568312178168925546602669516538825534436237946338531427496145602619113230976242497234702915227532674071920873657837896637367413521405713808910355055426760674782235675499050051015881845671785070166754716146673532074274428888946624430368465249845683315834256963676106746095193801413978036758865278805349103002430751071951678710299521683537789280663312193937603152489133577595561214665760465574191734102171913886059272348888013610847790749456697133567090355995531178930603971240569759731882641485071443534258853448273488135105833928351804614440124753799551122138691065857030369724452934618686086694734695890009886594292498286916794616549989623199810102632118226419838739370646186084351501440384258822371795015078564236597024665130906075858625268550196444908949743383610783216764187730915355773042450576161884602176411582718323650872381414457229841480709187984680009919690024229493345620855922144825183686164698366873586384771801633044062692512234712388013439430150730894107717161515477802697210448786300564842359648391123186068428110566302567945565256731486080194544481932629643335596703522695130728913319910714302940611160496103779556271077277008080738292265007058393818261120675836175741242678287847376710650028592087491858204044842807588480401233426042664588873771423159633416386984781375222509538466287179912644418324439803916146235882969246287482436501548781911058821954122321311153040669060807657596803879420763535726581286872835387911516729701447697344563126838757502337072886070055231226573570151568468834865255272872299961594686562729701626620570005885743036341857969426436190011817683114341217475641324150790621613967554804974954961244313605300226345150952989974221162769211946185506631605957822084518872363354085532375999275760779817757085497639502029498647045198911056830798952789412393573911988604530855449694371489887211545509562338434891146413333085618379989287272006933040374762221066785034966676698345062982137856106157516029653177103019235253857477874800638223578855257958279577095046977138433410201789113143693410317619311167844676086326589608935430349886837692092799132947186903278401025641737825078032926936373493732029653701400963757810537696438517549274781164376486682938087480095267505320905246798430621632444068094749214413867880400902923737739853762623265333290090235449233600634194493341984244789207674663662995435016200941984669668234894567580073710935323104471500583806701948171374679095704343054551637111278034412506149646192875469376918354220804569566805663476653523647643637821959118341165420580537420263623154823708236204601559727351103711995139944310438500973015243387925962953626107645031183643727496415347501964086659855159824064348710520715954575991051813627713679123439616036978674353256894037851478315951833661180771042401607167618109790338845149788657839028076448930731927380898254682218950503221681079417824090906651985020852406645296039446731704666653705163476200822670868863972246389516520039484919216756499340145360929523222103095350285461018903619788196823169740087419630807109088376567795823340161888562983212810211325080942046444638207561942966814878964210307732956644273633205625063001484996624336432804541571858727433419015252943306660578613174403745953748664083752066891849105321638844843911213821080243531135429464463881536884834402095464062997983299750646742717064364992697570680671603771643617227183460347573134749539398575308382718511534500261142334544635300753187597025837900591918089642179608515986712631392144255393576455136817642309679738010819716595412927496691753584203465437148845758387157965617550090187616483537783479675489446300718343131285990644041382909074263282355137865033767546589093719680537046676799907725410570969312983408608283976659098616108502707450937335821659812721085716882234531169467096713511736911337243252105054308638882729823987228497150127321787883574497895651898327912728036275595834004621600093680563062897679798456745810923853754484586579019734953103459428646203909051920078373226857142491651106031413859032379478147301930339508761065019759898081998508912935918351297554603000758190914960265119580356668661794692038073559677532656598126356760128704518074800320083641585560656368798761493847848599500409616270370548916322213517182956987108269689759648234902158145850574384306468957031176967724122570666367548600972095621087548546353386331985300689170941056860336407093229683780617647870417839014554506751039367578184332458272659596655997393144790185770618515066113418233393492688422461224264084050477704607486248817415960536439575530062043591586561714994452569213993577923448564121146470145806359633001581931139082974965193587266596223454194515838858543880997684690292099194295344631068378119441722053699882230406110326188227680945334322405536233435764288983807929111649351992868161458762383431347638491668382738120825813381703774389686612709047198931784019880016807226230147617807514992081009681973333338444366073266025894373550877242988601900345067565423114879099174719304186904937259502887555210658728082224738253518650392704058368103965745143718859990162647715297265530407107865991297903393983940790835359075244354819960952331413853871498946818125510759098269768498297242340504547523735771065121105756312688629763879006965236565592276520989458752858948255098405716044365276511183528081838999194525157008891813462414746374308486851719304125794435147869327817606011002594104931081148065784545188436904422513153788537465406902029813929309276305909200282245068813954742376603819214244547114573005303879027858751479613998563739696816139476612141733941034813017276962535729594079642351835645524099662992652391850607924633812228114254206474034072484583545955866587888458915337540262098884533041419901370312906351459806403266877185531609096822030143363227288194785195750516143097437029298089062346195312294148234244232693081254841878498428840484889434273305466128492249796744083968695169996563114450971808276052112672618806560828046173296886097691896473259050942498551590856376335919785089115614466677211925382278495456823493812095883469316210940873473871157025706158258263355566141451207314843609830397310155665082665243147971615159221802569003709427427956232236461803864824388487616813550981095331436058193408683278239786920177249732520247991426037077502478148311712824240074935218682170503927357084607857550947965940491163659940988175064163978388175442114869137833210279969765499425644966569722871003974121972045347481029587562638625806242688138214972702132835762850142326304012844694351466621318491032703769043777972364958900851340329792238327741471708376349014254351362085738484972631388678285523458338881416093886948733286618539207154467667462073754255893646219595895365569762662234933316342972364656734930542211177145318735202353343428872048936685050514553931662152947924527528049401507885493707384674245420644417357559054139707337965627495741542797819159744477093036910456213934982040476368659090927859417427115927133402486078559673138165882033203793663624506515341353576392772235571576140908063597086448263298514320605635562837369503335260506176569689416697925893349688123810532779320863087835449316326955665193645577013995223417349893731171167463355825048867598545686676978740441381704509898134660613848214345789339978919457022397754656531610614390818603729234876610952108832715114514521067790399584686488025418664934618413419655365964011586478143949605149313326697852833691837453119689985242193907804612338615826468064776034306045746169442551375114994575151879827686558416783941104140809338664630247394289409692126938819983837000570454460382564125858318938585817781048604456599689617701587709509426630713723557253467665373666416361225673666256093695491607838875257087223804723183727324379427079483320488297445542942106132118011918202138963767177924367132721272313408815424155526287369378574592249069827909176697607328544900664833867644040765673969703056634412216242221695269019082401218053003955663776300391805790449661847991098127954096684729313439592664302182421587952853191169823644473956411251700785078203096804448742093710186890158770359645444927793970862486919720619757731881876175624831833170920471283090894083025045803937842216806489523465320339242790890374968711593602597171962238996153159284751030246610367590167880967989114266503126726223485281372882088988040496843510537943725301108510065152046486203378807114575616888799190200799958929422730513643839003744845351496048285613361451226224383034118043140467629505957093688488144117438397378731193117041470717623486563876005529107552741395115929396889778013113686871652665247844624397522958063225183808175851197471876571601491682715248402432631778666474899494763409056112187815736908733523040044423843901320607944935511006148368015225962565217632158374706190731988568180466381467493844111516320975878555094096554327747687723592833624188602792404187438094101554908202286920889103776030255127159175839387688172886186373823286865096941130655866214195104837594584356876001327222297529041904631264443404563520566625750230009364757365808897474688893363689284520337293530882498272097034848121712454668458403622132886773058457218349551091508255867676568014049890333941887516092553993585781316062686246556965387948561347746031980488705499108537770191102266538765852904581902370444445535431799617581736813779636496085401764772508451304394330299620071890377098776134551997067645186407979779330734868628079235188727264060586977073056243238718070459287931341228806036044363252558685003198438560889754909508940342016362958841232442115784168158047833128514577119058892453925665187341472977039285904427488209889950940614822063687150055796615682214649977666210796136396217145948829589496926692516233273097375691793661857266538155459459226435920555326809553427081977499288272053634620446415866372593750550991357380829275438453202830839340957620131582584580697717168050730197956686491569278767083484061229027562360036814288972621091229039906115090880282379666412575120504738181154478181845280303574392649976498962120079842636558748887216773720668664659119260450743633118761629891645688465837060554645678000139094454545975502879109695856600025808867120445670711046361419290847871540782774257964777967595736371040254435131235869260480908932990012448292728416191158790112336499770340926129272426731337510325438697142183693022120846510565557697479493571758778999721559959451474581872083282446157794527555544915832356513374216689289873465245461725099575455980332053640868058950123680418050931442964132712739873495920302354158203368345862638153997511406932603100857004921335241021207489667020252900359427362532708720820526490097085728814276760924016243499478396708032517567119052388203309521019402138536371321037143878158014989061752544162939193245779162609006617789001803713149664025110120241957605648167366686883088154912349750268617043263033008181915478716484126340745516611952394384689800976148762536974342675606374170453807198646255531065017285142348149879658636214064379537810613691789599379595413072635491806374117078523940048223130801434344073715484478686110112252601042906175745262396471054660916217634609399566164970469802714811450666020112756108988028618375394487376692419494368213643499942777164838466139330645791406840629721241899513443719167111653019210443307070117059106594921119062064854613309415452885184561655163581843538687930120689038687809965165071653086337303695320050584165930400758684997879754038914089905249288968543256433178891582591435686505488028862484800583320819024003685422931220357127234852147422751800923850647305896570549708499385699010494513951177464587067518279244698748589479929698998014400933984870635343889161473657821994335110620675117688021315924252864251935237422758906684429504573020967280842035931280142804513410304839057352810132510316322951324112344671814889716219376036279873711556119540718710215544080237994194465055988083345676614179037208934573796129574794293996694458595075353738069135350496299092646165327990156549808794246860388216444705590522710158547291468667215171916948004976397229358164484141819034192256680965984846233507503765699967957693072571748933664933970627057754070121918658634151750952846908876500534540342186541362923012693281459374512020759188009895504586148185036471561744377379378586179749148614795040879901623951009047482232709172051931594242758167072451663021491139508030077944628167744050882528971269475323450204074749357433150278407515997458147537707498834246544248287907065510963523177443411519637033929509911123396148921048169442844045298015409322347819736282090722130185541237072593785526105787558847800701377043852266727815846566584083158503496718266351876125884514520722251325237098553816892788574109633091938156672004348172558223683633300469731490355632699325404810592731297796354432528969341350941603716914545619054809164617163446015296093610484014479644386135174349706020379721836397165871313947711914075755204678227381190240153626076550649237325209946360588160655380314121646269139614471106290814441375414559723205136645726844842076156932654122697223485113906535894909945424159837504296687509718797025393645037060441939313575350687605318403345806492755448477454148318280387071475555711547514857096375000956200748436782202765390240224567607585529021014891855003271321791483755565356304522697421478253501284948573732736466677380699358517710434953065079837128027879679731421375633997601836357245776684084192158308363503209494133361272130415367000818388931031537013836331977042130296006818070798513474209413447083575840609685481086510559029103703748167201587513250995418142766294382304036221673878076294427724850412025758785039785455349010054268994216144222432914752888093285913592682274333524735094926148861298478457031941509676415315199102074623688987119880018482859689212287134560829385567091606170473007246958005152903012564153660470899342947077008806465867897725157700447524307535462639031008786247148656289874335043997305521998953588101392796428482873924791755443590341726003044297372085453687125428649697583039789015178012362484906415047290612344402540742797082105711892699740166359124419963141597294763117634863700949532186719925168222532074088386620412551930734463538455207476534215690860830126925119274812517434464230092533745128426506950086123763921823829483372253932997461987026718902174714862777524656128164924353244003633843456459655254231431598537609622310686394114085564126262096029398946287747743049332468129111769820425186565035927671011199652984074234149979436519181859921710479522066053971729494218059902874817252775638670826207877202554354257338640146238521281043296726028505726520046427147057024403974504905612321446986199653729470484580855161244331512184409329928343541052002959941764569607695316601126039953377903774932258196320339767741376208726119758512610063558106685334051702465257163852435885288057185036427014733939533780451279635360059597377412172399975142082259932352334451841882624654617219469660648969137410432700207643849114072820992125731820264665209059464661204738300223656016804929949603787862631002798160286518453536025417555213063023814650559460380601681940931294910017352357115635227538257634603706304957330684025819419517885761511446558388619743496516539558518329628765274133249074026437989021348117953960668999684163613253347469611452641526425139302677681682680647736098346487064768398706154521152469850084606109600401728847800196353656680271277591289566722897250313527311538903641273701786658273349196258586630547123501810469158092723209433057460928145760886432578724425874469462371912141274399143904332783137916918158467071159754392385323734812008227513835870742470943275665034518792904597313435470216117427929754798213359796623064844164566605788677519002164097839114478930884125182612583175905821506973736502515532062441235005529785623977663764959140289739410292860489885175915386535789503157248731571265440445665851655403052317678601353493769443588006508985976889630099016496564608245864376846475400605405727006302313565548701127174480849392416924143588140608409141568130974243799960766419333756974311778307325276611737467413640515169364392505214253302356673830238789175980271041462015945676244826753977950296977528038321428868360266926435323119977649214164596331291638563732968636756606192681416369885466849845594694472168659405300939923069396959810467377495935944798525963965021043917563520524447153795970150041626803012797027120809342238717920581862512767606676628240934123447273594994105428802338803111893208470234834715548658990851807296387412158895580508816432293196950624446225413753609082388699289098024719742137188732538245426318283236949674123348915721585046582160430276889266881812340080074041229936356428025631627055307891657831616848377804656453340329239578446959967571288517773589842915157450232754391599047982479884066246129854454964806763348897727638326357589066707048359424239605408246549363327265599799201906784478415508123190640069076823653316601651370589709992604222497992697025487257849801859527006861465774290644831905164445117529093146056863402111514061248598780422804878292389670291290278771676551452468282992046312397164809371344056081333388548244389794309280643948584917348451356177191115776873939855596835692957867964699364582993576196812457619054345772624875391368593996246451436148771742315355461444252625081639844150332997410091736951216358886402225725358394795984241998707099629413549652616752865465310901597023878811396886996790326611554673244872633701553953946431520548660920801254101501893292045544847519810233622806685903655681774303835905348184544002726307382720537043362239282037110159566247676423481324530177046867378288433971422970101195114109552655126852382226550697005078495272014253648011022675987550997252785813766079496901233610280605030306564261825539877032621263831236650666725455963523465476491677174731912901797514717496978108587702414273601837656367971512577730901535807339022301983827779142323866277713640652978730138985432031669067964752725909206636592012141782944463686846736525143105210666469158588095314572042669467220177027547693822293320697651321398028263890923026505236227528363860554366143825908694120838707765911309409204091326700956758485467028143252630035207874643759337094065050468681134761994429080032143144433637231279163654938996058774972597199020422335193254313109021148397833984296113987668950635229878971636713226439485184488077347587032803868598035407052453325211770722300969595735982160911858535154286599798122287250044882238752257185839993900021665804167797505943786893809923943574909280382907748833292281004379120692883178928142690202883609079097419950373176186654729102548027598811034933948288163129511879825771954655705613100858951421351515882925521120193562741679783174427055382776757576512887795421400873421267188219347981557552762696944895480337330055654178725345167825513031578314192727302398031923152961251014284261379133349027567188911446490740922530666933596358395453969939610374260119305964697455921948355797467086686924529878101953729260255351169581721455848305876084584278096380274383206026716314673226864274074780614898065388517559334294003457912915982829378529350523509040225550998412850816308941169119594811503912162806555704719891378181727235409403591339052220101370366073138861051040112444025804541079037356883670966637780391200552859527544639546772547788055460895724126154314722100321319929471166938051203587362612148049630752838556286300538742692787167162618641825150085594389584771123685171999154212422264961229013243641934979677804337381758956967021594845898964390345072925046077604324084237261047222448445908325460286802429342244643726107335679717313973744154216491872925101873547908673382973783609452961990378387658174571022569128058535405034114419681633638725198820946839852590651986998484453897996732441707762560064237516390603792822651976043783710189054532082674885255018579341713622614499979819768950740305585149447032686012486769849991915019024860189005845714479752733463362542379884778567745655536662715585788258793625700953702105780219738543163175799135714496745128180746327918302110425521253344080948194890636175543441028033881801030829007749706461695937825515575832120517051576565020440670762369029970874127922754432645377705754373646964209853232263259213740827147776197762320958055514614565085626224398932867685578915778862358212283399243554765205151974589581956843711205446107209069626084589298736570541074872823322642699049575879425030858844225394281326209268264038159903819069174171591849174707267211092583373695067267461457427043766947410081971044720068989417349009380799183306407032551548485944985287419674312510244671879150446898705870712178656147893700851710195515770322977711253288880208436756902204046235039367202897548750661512045574485535925744877759620901678177747374536671189042991697185897254108307051066822235904252695193595413811503942599027345017389253590599368794711375073125757634357549312842933561321669844981761343006923252829029094404699663506296280654755724973117247363926610277329681407107795027118004763322061400765282547483138761449592289999200641543201130689620609485619823783785831409529231570525459191321830059494592309807576196132552150610530608916420540327995600215629387688311791581620520141406786374779427898854776620701684449838533250358184116275753085905127402151255892075574766900060730217779787354144829987817736707408092930379318854692695288791746231949912882225922621251125777752253013837784624921141486630380131748103873040880990624220514138317265616726954691123676246196919560000087316917054662907234525102881197507734376544897354443315179298016052198923703512331217520505525751157744769605066720925278322024802607402956206015138147840372749427656910352454257969994119347775475120136298414089329836794145245092166605981436459894003061585193475878077937611918075417468241970971293213055023051935021041545714489615519339525244926534589812128678286691930232008729130474910438150816811900967430525999847120463400049702971174893139524558689816724180659798139558160497813034615126587744936540212964182790935864432809924430723097213860046647699456199101703118954840973371346108752325197741209738403834312724791921609150432538193363629291009986489120298061388688200981560183998901953247465541229250115021624245221496743768003498601391069542644903209915639071917398568848100435399728385900407801492030666840774974609275344755485385897545373208437043572917630302855683932402410691341178409839951010045079021822897341091464023301918567703453720519517911799261303197019126320776367298108516675132188874177267822252292938463960569281030321620215366076364047203139679404836962462571706989221460810990345252240449110026743916864196715497053364128893238706291266369691862881015965272740573838231117056493783380400080692206053938545862764807429767179423303137343467343514350293350743794294577733885363950562447937508691430676935167007098127951216713084939597666093791981727613352676055549197698172895241227739675265762388990975810265657848509595013432587123598325686648547444945335325796697204296983790775454480890962809594476451054274577588694620443080220118569003335531517542279356265877421988053749186507320701784390057084283795304035340026782952150551471948729185463800049834259285014584924360299213216268780816501423641516404292654885324776471552597917536982135271049207203486866962537296274706378372890123885900842914331141395721246426996755490343133820839014231565221317428694143330394341666285542301729620901069285764359198509330894220444583801361170339811921412138846115219482277182724369891731445554625631533194514535557849640653554116189029160075611299714771250449237373846501547962699352656082408107160240688864575873183636842832082041207234837237159593890380079804746109150720356934311860809952004613477568316164879119346384454993399400563778006195178834603647940182847994366707508170084934209677382504454744818071828011230463176675126599628023604910116065045724548431046678587013490372931682046469252618823116418350498909701836323217135622619698188544477413739493294982673411468176012523756225851190665339535043468131950660684067962518561669092675326820221130759161151022017010886248874901323646885233934973860578645761582144415303347544385364354263140771516846546477197138863988093065176456165910247752516335592573804243199115305448042649604495218544826282274283210798586197480432374906238959064986116909766578168249463335962117078599036118269741147160519431292466596195629237340333898104158324399577305382330475269590290484269815530718334750686661703725781412931433441784580618861057252372688693726471118895523566980094711241531729208614920454810363658380555854657361705678209720314201529965592689229860165836109716800593499560829713712063061996815823095173572399392549134342764428592982729463535554020881251978476418745704703743693045092285381277304155543290490734089568205698974702238641682724765483132732243169010203732150322520567152614168342607308294429662295164808111782436840870755450151581797065798973432306299934982743777566417432805893667201744372334470616987969741007306251794465951827752091554155027967828139554211649065763138334940363444243973149079210035721644281696702022027655479889207350236593533477094408241253702461516299929993594217350226062428864738667111922448193559950827501635276143624624384526653803629460041531310677648563986359109027121506162836890674470249246107807193597262854966306049335942993734119331382452695846577318513395852778573854874518400355162759598796071857998200910236775026990110372665185515379761322113023200764890715815972191975978457877103946712328119546591416951945240229209948844413598996367343828322664373875293249293157856285820799470699140066742004164834611431153455910065894773960709127843164825709470634315788351489876305199132281437596808576994356855940232602519600093029433932086581444174694506777791728199365962465292930791437498081432567368594656274221049112414317139654650050080336439523205366468388187094269454680928983740180897863040894409254462464354514376793251125282908300288041419309358339039584127141253663298274931621228484444885812616307212841606972601537160185161160762145009695908515884469929508180327799167051223268800702267033526037431057745196079068683336518727088971949215221793363171918823656710368963930233555062500742020675532793311193772076720792308600649692113320501493534838963153160315788015569443704909162954793873604135186884021360601394502292087808492390771784971472915165031907864793306129524714578658386221583168714262093604826629856569786400554994893345394858318189865732660684569006862292076824187685040726417813703005593689333049360145454594440487679096352819269020784861153620003500775080061160342868247380932245630130249417201096630436309458586752377701452709805124319178672741128404605446518716212586767530185621795716989383252202289129831956958607564549962593374062607724437588660864689652237963997532682365818530827538675789626314936503169111268414894821597624986328920228339219535441495590115258849394654604252020616468242271666893653137066190105223285249143632051967210929915834718588430620782869572327760874476453574822509360473581120444181779574913807812570674174819716389898213715769400466173349423605207979260210453019903100732186678472984594076119410260188306193351520291868343644044810932410867584934435659772441506325098192825197181826899795705408432021251865401523758755655870880697973645753286024265455308011675682043457985175263177361172840262760087202310511760833756733342336398722675012202217239191563844205662659992465382890334935440995874741489845745169365772689508062405437249303043238737855743317119260883222153782307229954185977205699921764383085869877884395250424492854189976450926409676970424547824672928420742564849255737537703236874968065507680836215341791137779584857661069871561756461363961242274791242400679238105411592178430294429337133866519262050700489337515254893211351844593232971064837989563359095438078805615078509112292156966002195447044018585210903088248914003646952163788076044802767503543849206224753339898968817965190715966998990957092655420252658631400980705860440621692251865268977188511603168544718007095231434836849616223076349970589496198287375491860491856199083159298775635002387391911070750213361337090255366135699117407665130831712305212297256481954975917257709380673521078703323458722477982226008308697338846327940358051839531368243106604227797030731086398797705546351483505172157399917831806327733308195784146720743144688468685945075744371125733812012715645188173318820842745317302631242017458998031115420058398574520647470797759320612375687186623636944809301449833915056919625275320379363007288132356732524573990981912922754872331354096074279235464602192514823744626967428870676153534725678737343962384664099459853510034715534477274431178715260771034809778114524317362373053428522028407436017765311013633732451068647527960074102884137635888376917757580181695215874978175801996989833482722870104292361166408237311805731990772200822319369422167721900636973535376631464856105581140734422298947915989359867035127130514928386660027588520795173341093840147916919566329131245133707462275314548145302753089934847911919896482492144404758311631925195852920744833376454799212876489376562001045692632734226573978792970329127261150669524782493139041929120442940938426954514218950916452704061376671387331868765807759938518105182068993947677136631532428756038760765423894685946434437196081953690778983065175040843271823346008840349737069733550371937019792258213696404200556991428082472194202325027846309285002862480923186144912727931360667758265445622387773863857576937583701827932128887396761508167616578582824969610190080826997965957170876579781722694242099920598940377338141585631027447381542471144943965347865017768069213787014596434371001505695433432513778724378319848188100777319439974219620196654097890618767707941900029630500638494269764508544996348267686735112698775395303820077805233599390075715228490100704300841118711278019161705128897070094133312327335007667295359651439922222768597723590441918048670484436603626033030805974390600375548587306991952744735019383107002824656230327455869503940512106015157430499565010434221349202344120179742339878453538291818877343720802714639163887853016590323588639753332494246662013074345179491943240633435258046495896306481092405310942575681410759172245209379016145402246813086805361071911687908394761749943913121748650318429937268904313776687318073116230589725820961780503348400534643450646299891853443907336799326483454537999634057120211966451347095265351725976666680999966880566049626546739117075786221322696779158871653613034510540538872557654861374261070171368025848613118382951800630449787313252566665297024233036738632681093175422194097805433895164129952965755701107156232711055786435991025261431338067294600537623428282722209306988838132805693589074652766428499378540436672094275268146315687718182535101135702963940246948589960225676274851028683016547032019428579206704483002230897199606148812428598391999122716650425347393320873286646029087010705743301445829988405619877927771127430582278744455512227974726471650637880784954191780084006179946689653912378463021117353286173328873716135148110675349885476728639556429385597877112744058990414855029537417221432188696258612326749444000097007582394215247969707058766559540735504306973897197830987628484543373576173580138407788589371292395668192513646743691802494572429098465387449552386337209551204312974315564507576408963122165412836062091746015874655955621406596483788377546352957539319659633921644368029335318350760118311854987282451593382062577686004772597677444733608513537538049801843291799917435612875196470433278877145090300057969676550823766204373116333763866227008066699052617450539000991651756556931028336982571016052669765451975100112916466933152407271391857219882237444568010696328594273831690589456121556677663178313583399790593093518184216113293270717578053292094607771875247713065507990282816531482482862813966072186094027658793006959514673807645248833355028456880398961999017891909826092267996321972366370831432684650060475338755253373954683973130338860949285156186352482266781814765273758516168089444136211653296763736579457280402135465560936366958122108577313827658501844778266193776353457291205836925240207045426345351169014293449073913018423823906087240431234741324705685566282481371767748641589012486648254929446395795607739747309743200965003655595236601993521663745154769452194011608245015685137302233769201750914911293548502283486007387002861759704683395102042161195610007642221574663553092786141588818749142903125157068393892533286349697880604892752689609797005659815019876070920746112963674743533079466396062852092527010905396176679266904554285437147977602352045528633276908494398089321364131979620161362337626275266250946491778618061069515336177415243343088217551374296292948969205307646897964971356979940193299053613373925598883248662485900802229853483135222146069925931944111732252667435839796231777105524753670776212257232708409755190166724016762071640977819362117495236599745319262341137637485269817808475419258267561048167649011223143854932690910271165997366436631017899312417758239161314047099433929706582077019632909053518573289637053300785592730030699524119355203172405541632708801532403709426179386727136318438707696788433380700371758044320342682863924952006069056108527114498214724008876105943255923993063310940605296536598932588551134135339652840322147920909630466565710032340170701737327366570100685622557932963442308485543453365961529033984113954345656316957218111002914009883674625995737844393784992899871965314213562590765252530385716388263409018928769195238410461929454529008319018449622471866841180779107371483107991195850387197869668059117648654237616794252455534940450602938014072602111357855276000149530384623481653792865106456152604639391988661690767213338589421732130444556697039619328848116753113433333817935238286873534160330844699365095215994620639336910909004609516783091364594431084034083834810244906322508825734532087155427031580275145791811122620243461635992004979177072386378543352446657059150653452346846385851133548148105629030293806695253626919247719860430508962297425915539921304154353466900062290511498471129109648324668927776428899791549409870451868644907586415919070525712000100881316059137819260968200378355025532892950044295184907760119691276299996986249425662470160204555135663883352010745521750388051071282272752717981798160463528145008272269747706577645318996999897022355494006058242255805753074123159862747200030715119569322855977260478006552939151263699998321425455408714309720153646512854326601690390511922822962628298723708619370701472920625912226367533568681709337819869116626190945039980836228148983345079010041297015682827945355014725784365312109325846122758597893606551064332817327465395041082306820460193097487489990463089657759998325538670148765829455608938773017316080865003495854400294717704235338352378746349811213820876758871098494407039839557663777298755503765998311624843268402904091203029410647979269237972644240948602971595853307070169079692265868510433519550016972668023240086909259161286031265202395493726555860318916808290799564320468132472260170950637133088274682887701152712015539379694186593587528444765485691077555936177263755513553515659949655133038637122180050617652736985439969186052562954836427034173647979794313324265654566984400096530568544506976536856898025253321117578120279686066552974493216962887398584418330968450996794657280961102336673415616282108351227577661936959769601655183201715594106106933486532596515281612979772860042926882571965193165727983990204766421396803544269763776687887703751103096426506575379394320634365040584314114004605447690693770406372153634268140117182570754916833436994687001663757523340123496335735478296544786179775463275098300439971728933099856254926580808688865951457247163307230947368758605632578976692644195899992936721790777067652497888300535097424387912294227422669933299234320733012745341971405784448420676118475700146880068703702263503517533496495906924153852015366809706370159036188962339759744708672497092704955528359890105026766004192589302696662807901408817870607075185763506403722229979884432055114812281783094622340250885554940535472386165605659479537839542048715111365128235669619784893918868476365589321417328055880128911252820002407773338905418977803162478435010637467853244360776447713706575770531778738130545276875278583169564117301669043140136762718513360740262274089983299220018595029538007290025939056929659304835711348217427372141726736892665281774620652252799989710453395090411246828854333432341190529189819017678345892219860058389466160264694845547833288386225269558835411511376814108733051608993183555145597664630677099320179181602167507569461937835425367732193039264337219169632103618895204146963547644124126821627367284621380479281283226977357131017846639263231734005789194364201147538474570281499792570509947665591871538139475087895485096413242626899631650627434444711115950659803281788120454206883141621399667572854964954402062225837115724419954873170556065184948436425987387601912017140469305770685640838039147433270735343703986619225647739111843323564908558895105082873853154844340179245480241133688360102377845856475037498384449472735317973445872415912195189790125624910469657992730227079930125510454194747777124732904947894625936619562560902757705931928838634097909998517270633438192479492263058605773322035261489845924736866655772555858264081607718863929176851447985679290405891406149768980824705412860184675959662730446007727330195732860166227458657625830255980356835161873507650518921010635436049336233880121321170244791719013877981759708514960577348051766280246759937611871901815618289588254786332864663391198648521961494438858736475982149062805677031941629321712897726061188845512229430188118737023553259195759558432137467324617792610648659392970982990549665532779358997502584568593543076548163467229556208422851636581807156186419829047028875796761294132529707623258071352082529191028812752093362833369863782345159507676335138961608311198257806207444736592733870322705880922889655649152483760653810331995049439651156677672931271257267063029485996585703773727674075384109498728570064175749649493742681827883183213549325380614150592553505113815299365244994209824044010715758428928667484533078114144297646847533147108412299046330866563160473576280269886656123040900641003235199775579590087564598753661471953993854558129818861000565772325476352129647710231095152874081243621472773746132248537141363738979960628400892914781563758892763172145922682984847952049637353008631500294933127685500928013061393554386338814681628015103014862975699611682927556823297447190232296857503892146684347732284584154261921048001155974165403813994799999566478695083196127591923473900438416572142389036188832577665867397329189631053673074335108947896056501087150113366154828692442388788835755648203727416469912891013228630209876128832707605727709315088133347149427685443037336772539609254339450028150049436678961874111903385490031822362929735846385046155225716560165532392562534805088355731911027926175089456099215093330803604448097717332997258010780696244514984492410368098421458462161514384752581220068177893333579817545435862626161420234891950130138766759461936833516718333138126972645522779253732296471672291102176013886545454297826100104025325489196889658193946752367437406526348839614695659026004929481704639576527466816570737793549066752480056926710191611010187134227932201483959808280196000087031406659409716033031058068425751201744375226553242437265993684132004889147221422986171564553369570729035014382308004631313944233195111234386325781456027725635155589331738701552541349308158972991390754471173652250880205296239777484498596250691662633529885803866016387031072892191793924254850165947388667588273935479302386902315968399606567311704123775116254315055927009211608605114427694967249548700247687384178323793456166623388967586127249855655646356909589156439425250558659151058371061423736990859184501524116672578902187635355276044788855231055658667055108006562487622250278770486092085489887813860122753335093549530366609821843806763499545536116082281676402745836716316472392180198486358097077555135528215465776946312154823013643635256666705876658741222362145427019064027019512443234522261363413680590957929519205220952479668492478638464763808010465815687937946118450509679521108503922406718380333555901591823635052278562619414340641678604343091849732457905707086532730246203610358257774298527810384820795501914240232259818501971087194208248368341718083664350429703577223106002227252812036638769307048434449345260787452033244434537282715537861805598575732327528237750077451842864788393582668139070508927247661621632506883867563155139955057896485649290223643678950248173537651046688510210209893897424467554302168160448564349166050963850447836618463856889742243187650243739928896839984990567585371917292684389098568116598488816688350251124700178324843392213728308426974931142999966624935528072437933119834220850896178272728427680685990676430265079411043328706333901307432485393223378893863637739189994532686981281041355523718546775403446217349678452679544174291909161495395743472104035748236138870026946785178927653942043750410090884944534653403732823609068205665296221759193723580318926171842454146904378404829103728289065932972935112281732596291974842866755068416585362144116554742688203145736185626687826588395849457762984626110363369341302582666382968809060714504217359507710066114183689754735787743354434422107604232339179298679315343520915149257705877247654764438191328880611191478435642399112699627535073854864195715223709026099149090599817045614514285910749946612277761792182496344290136029120238956267852312301698404897216703281199741121841464159653549775026018292029220339538929615613007448556165622840944976988066544905159718897450664820225057696530622648590251600465786613283753090529550225462077825622768644878877027328904485925249049372127474493496940691999389672038966362343793233922282356700315340389389871699834475889392769028719563044024723801742574330484748458705736799816249579976597851232613592502276102576463395521215866864871874538376269621006824288598669512794763285452000992020857091130513304190431312748795227692238765231769245040318362959277876138958938891350378606376114449094881032247530217640236474349926063486337131791351235610331893531829229316906123733437988190728794093085027308045434144620586338871809074552400463736728516158009517778752827361185050974943002662024573743713950001147720466667059284500960464098556682139871990143287848738968562796750282909986951656180566995654104353506043751556596512109258871479089559385051062341770605813524080256263451709684413292528321125137444742323988431878568925979341830447335246267621683688892830964893813006364773327772393482399182248509192494856454724033823333052024952959116521975535042025056775305388682608540950428289194765111353323936053801157245280722238962048036974883060864636749970196913357191226938550088771384825184851411012862824158507138690846305408604363090405369022835279338619389957292440937890925481241292893028345633401483813695925302138442875933956245134270462254698615669251511641430528366016917542646956985474567617055215626994923280142749419293559176782794676526076531572220258514946590000512005287615834904545063610265988821418710363997012503451695013062407384565597166757727241697656017471330650178657838021890446951169687939522716561229973537677248380155014075264839096091710698488530673296223513532830342358137707171988119014335920376146749537186651524998451135284525870647419455741139835602674334045153092484024799620612234243885124460640865267172982068578339794651138037709980799377204023675621589799305549498882795667030351266974129643738977922558644769897102378302992881915572506496628101347430258783038773165839184609265621281277863342426759388075636455919728691163072673974733294020274806320112521333782333446169124012203121934857078272121320302101110110320600760561285199553035001853488557688461108958032293680240662059894335438320732072544781450617458064328935482339873430607133707322854094722664332534576371239695538468779290405340801340489467389452299685958093355252331373354957882375053151289194959160978041653216914249287186498803906244331194327539515402117561410535346944457091960676832228826130718764311711208462112379051745190412637266986984458114417080439018713401625065819807819520062986484031113674870964389398197739560903421100835976969215526168211815117840639854744140931084350552892102424180698895444376124819399920256039153913561878807789793346312347796959868228433811553791144884424244820277396119855353247846266118726301397939013566820125369491640916757749629847042350763806684277043915708611066929250179097258786425843257791507275944013341773898771002384053231860010864062489230117485903992472182716498300153211006802723870951114347397656414451686278916609693535880380062566698918759101421732279548611822147856368206371240790808348092949984241802872694501281014791800040694159677170667468701861990861628292090112901310497634391032866333771745310857878556850945350221972718642864884035622547291548648293859076068992971002418452579769903890115394565757182396272096123651165126003773970165758376855142031633533577646085352749919828658876625980365916408542863847838818766965039837630299580090719248600087832974900215762836421048432132904396778173659180147247011947171575486088455480704084705616931319559986468090980228814308279187015852379311938181278732091558526518170765481660477106234551752279347318826505947903280950783695553533389036724397282491156217944720272112410974154710959621570324666463427833629682313700607617743398637248485850460376906336680287416966611700914591764200038774588039681501194490298011941306785863179837392084069421619081953275748388929872732907798767653818590572515961942465243821248787420870869082492955427681261873668192442520525458127742399620791958470369888606467682299516135219211086695485848653121690989921443825201962903849468041839423235745365416810110571426920955495016997384830824787980785969657075516570867357833275554949218877272074315467395173122783038342131341311501610660892975067020734388126989808880315754291006161230358838054971005763998492063558547202403275197422511699810104471592964659172302393498514911129307776112202507790119516335119286264933523073863101477809518611216393425436798744365839987122247009136036926403020413829203828481298514742795459194998253676855334966163623265403677699006262717773404695720555292536420729092205462744058813312625230930086145947857330858320793133175785573297632537609070568032929928150122355462514102398657671216423042933255462581260426983605041074954845066059865224928291656571877904936182147342635081534352095595921050651863165335313321728247372299736047163727336197329720607242731646234959750582435974089297840431560145566881966227960995833938112876126887486811207511118473505859222794052811018330812674560105183484069864798947795279281672979776656004751418561017346782975168625657255253828849891799221888740590534268315142902732148021082412947494926847963959478137067192487615575452431322305199051187770600739451088565973029105343570461769372626761325913481033840851460476444986072841102371253758173246373924938930420059552801881583543022471597350141033815469840323148038363314457967073443156942411488880508289972424786463572795042172232846120806926875004221175311865705955838923187443446540613325797958109559723393619807543850923686033878252017886170603184841016477230365216800301655117987315419677493300118183765092804169775730283031717257927269125158030165777699094732065188046545246241077455141466262691544430367982819254534968731880804383107719755283540668128300913750638999411352886661919384660359267850058250273498555308400678680500654560141740617709388930530110280170454326011268305914359984486111007161246751926903116242097317319411803908164407318886936214292797780219260367222798886617014369707781296526164433052048400008350860284802060908540851279700707114779832262591399155882266574186622225243750626647134497702887507446040519049390662110571297779737898525157097496838405509606960378760847835403147115344329726052123095984316553565516219833164739735907602910675492643469742424725775567603275100276735208609007735866242349122035400662201462010639363364825560253440029353443018079900020877712361718679086222271604179092683867291198491897194079931602502198639978732652375253717670333153230890086632051100459578447762674819351591739028723108971729331915687554745560700113029863136222026580285661581917391957314540235762185248919204843450908201269338717114832991026197385208984780711631832951758660672451417284750899996836701075017506746746746314201775347078109586032675098857908242026427385397629601978201183224117568999019605558972662881084697588284498910815411793634269612377743694417117775132743648879113356368732233661702398815425673119610198064954756919168715527783792740134983582107157277445931200370923903930153621053955338740186567734884334685828018784824507061502058884104392279249637275981392452051703304037398123025897516160358604335871903008611453640845524755761448988798198249486912961409480713968572965556068810774047021137956344936217754206043102272062748191280123912525290933674892359298474561521279786618220991021057662266909204009496580753749362146275421583987221014685383047135625817853586889091871700758201500742513957007092914151122120099762222750289198146998535143588279220155047484466295276773578488535870827868650266620112224833057039721063104735414682070476111870648284276741727878928207163056179874614936501570893639704476510933825088755807016093736946570835621462564729167965629964149331648258233227619440634334777153310883311575654249085120911897946386398263541812286002035781027536600685375173040836434446228262276712618198101013131941463792005449713963786913105805192352736107815444022251574782434478487060686791424694031101153832620334674793516233080020692623483895595891271184714547251075355263473677118709733920232597503335182520193931993370444070262542126572233008830919924739692081983840967648124423967820852715023261550314323233987222504858124873710020892037459063902538571724472174300790977143039785435328647169114065039190691692165819186350681456259244848747831614876285008479333571114504794003458774763550777110157361629500622389126626975341194782276458174975113542634259745868953323856335830900265011087198116064085137462159616712828362601241716358814403130350923741425772434209434193719182154448063965318136807372704403652205429556021647533396353652543617119399674883880708639464919441838482033550931249577421264975076397617159642681248959400111731874047683129942794088761674567114937636444869551139323446299907498869326717084033653860320411273433714004945050041128320203800003765386251945787790949926275221257586779547456541445710463745566775239849261350206603501721231223265765394730765278058006686878238040391609313719257916778641870303958161752463786916202376276992810024203285793636928711546069426307469111433860227018909755185107406043620879368718418100271664601477298610212081006829712715851182927217227287235222383659270428925586278611498857244278798803781965211170819075293567138079354650561745964629955934383019836979560877014254902270265088432697496408407416025254912771698760259613142786809603459291705821838327242203207692898317007072736685093892334925406726835739968766299866717941051522396439512267772088837046755695316536381835735485574544801266176939984001917701894471339978877093905223204247334748971315279904110521324648395401498926956014869703730771229536743885210481412938155293373267189414582887145938508373723802294601992280429283508943515133921604324592655105527456436423102533743428493935680987941695122687911396508385677864539559988066317389001395211385844483558660905740130586935333276704408483435670637164960522642980397687162265743098653600287501395800343898259890657348884768717220818798865850268017574848069297068975964200488020442056444780706176970464453873643877928110530216360452704120427788909735646300935447862110868252718868546030414591589678580579913676052719672649015539059061872166690620465084775835458918937079610439695277839665439036463514121875939874202175879119385788769747226313700673312963160874966859124481983529435490511668338018884797223427223589898496342814328592409797097374404850527024143515515078557573967634071271128299488793779447378580937677996056198421086350507114178053985474251777767780850538193021978314962617739530992970481960247508950672242205054687939725075540294372311238231611541752227488301332785481581298133382238418274549995390373470152641281986327735887256004049560228000446208946163973508894072100371759309572882203287946091475505093169355079681448126718264803541486707762323420236125371735972996597821968236851473971276394915546168787393143436279427624276995589876123942439556573622010853844275959472734847717888150382417875367231817952878085603442904973398113165922786536014891254248769826808379258325281446550342115770724868382166723241057746544667546438187133625231256487925217972209495315977190064647600238516002126633662550093884389113720779499611482241869697004967777950980913084858254017518622810094137091463857325878240542364365798107089847031369518243666061357902779708140368552792218492881596485575181919807167406736439470475714205051662686706542786581674487750067588852509330115921729534239042961348201479156616020596742669546820675047267657244231192536430150181974516034533895683600426738493887290358749462712202265282182990879535393780014509496950816244950026868456325991479823293195549996129474652231213405031345037091910760418036699343560021323255447114066950942126676391086723484111235085411547255941196660548086160676448025894905239126875512114197742142924559984580208458322863656294361247812255384894353644819979608018392109073420532621274653320397438899548970939645125423749943630094523537146591586046070453623011582977873731626046277572228869414122107950994518021025023243418479052089254867952260208133146742787602205594128677726330014155280283602190064716086659252114518626722736231848411209996845870682454008697113924097112688422601598077111183025908874124758457721045552290167137088339377745714289096105257039813211867862019661274043306548417351147445219617545531495521249898523034187334151102149524354586133988613626389448276862275414911700206128338371948909825708454767484341833562855876966724589455650369246434158055046614879066272304346885051069491299751135701212735996541419097905455582025909233344336357597090124743741913928892520802000109644955523426587638321577975506308688737688731263788507172747963010057354573836413813324243717891937447183172247366978894357228190537883317521525184707660467287511483967484522777145815207256858743559124814673429930858879832351491341860715480280368990390064639213188658216690386172849306296479572116309119891710364017001830278799077406174006180721831962782018908383619935617816152980500142633077276492707440969462394848061295701586426457308169716857268776474999353873915187876961790150187708482585805310851483985350570102959806023046712204026217696067502227451637460027659229550552355946484876975307604368559018797409897989569170451865368805576182582591881603463462865871912258403392285834647153255092383431917287704524543486044880637420571183489880646607359195702601150030981901284088209770155747874818943758310909787201126458844323766107301775900261044270780837066613508779448548592099498465974622167493467759842018832656481412526337510650233719535677368809358710708907185680463842320230600717310038869848684125564561669801945344975596003107512641865884176624278827575093222387684488254788385480320412613276122528691090976044759338814199231478414604993027822694599803042407984829582929296075701464448123292969642823117050584586608517599924601558560136333283446426199592363878933295722683830611483836931937960339185075134010959011654874392391324539021818474512536901300443227912765735524058605233140187604974267807070997880108476118885247732815176440867540268668522742695316117074805778551358641021309723446578592705207423266335480436511667407194554643421327407478891551506562097109791525190611532595228134001788168634208027330743911317580363973550926486310311911688317516041515503984894049448838208732172720444019345360070667391119544539259518002420366944367225677665511798314691780648700165440402464066182239852403420421551914716345052340617812593929491731388098660512578392323837759138985057697460519174678928490378530253079931426492788598765775461734278563645945832066458725856972294691658449345386912079179507385947450970678368024484556371936578402664080615344120129829456952959739698286551521974186474678590547689805645990212136048349057162045139477387683861827682997480769524103723357730220273315389428296417273004477569350785371511870076290686041622109926126596717811932098491453678851532586773609396317579876688364981064931416125443849456764533066744721957864179281438426320372613848461676215305239844063931604630232339112356310349282113495785308570557019652752359926436554327662651293223623108349563876096689546348570869772536604155774684068536066040518201328443269237254663886508774357776347241063606933686464129634577452237678066363088372404755104209470740914574839458785161884594782197850359873227958290610531920768822433954734429367747739841785285625733150784971676702944637225303118022310322894272049596900750463405376397102387426662403944528357617743712983066359379041799552140794083680877565018457110377020637832859086402557288811047601390705636135167242672816877078740650022730944723055110409666633286856943313996591381026167890908513579427981703888019715278693651883025229976520429706341458663081434876434330500885806877668952689264012510306545048290920518056891340253764881004412187510070645909815798535459846350700758048065830650662338577091219756388532269011072704181661456031772920242610750293672784511367798343107848307564321781297951723975945142285122791614169147173829357321707956797321175011104553763738319530601485404883472172724813708521462781595987054884770537757040521559078429025053263648126723833636689276201794062971577933006709832861951155751142157144985985051129946942089584204341830555131538704218586172930533612326211336916109754815335153843871951853714625586161126340207874920130746684975239544915345565597416744177688682495428401378737135868490431611875174433335620869326522622711861937704277485294250340218132439524924307611530923233195029392437807820659850680146311431181829630860563869491617681815662941239462022794775691134691366676501719492379018108956550188635204499106019705178709939275308623095929288027566940953551035629789112669846729812611069785926825853689584880050848692423495739954717754336035913560716452998221841894917210458204338120872405821225656835552408806477538801152907434759511033337064062611320922391963251902085233498873139464875400505790893971073591000569122117787653501949524326985860865121181952452482671157719851170904715444657627069313815721822197326979258339790912524941880336322219723926594139095586487456251835208619355310559219064530912332993419247713337659784470993639885472529997564041554932878424864345957401736911886390376000855762061710393261657997394557100939071608037040766059396346418458084367191988121849645753998033712587459450054899366955325980736232324961068019873940931886799209501291042673205577671919311917886698949279920629810050593242474435057502802547057184586852291476996439549805065902729636860231227847324124981352134832598946636835506098391188791332402180839229903413819774479824091724744018865451654726289327590693348469347108863627398199080565695523781703461267772683793538675291843131258192205878071939120817291607525337263542067185529595751617857373128246847936627739957060417570446578499962268164381832156697539897720576324708726707739546907968091693214633529585007942867194502869354555924316688426464048631536333618244733888102501336876785539073819647071663940833387737939174214675992966088965639495358691562965402721885658559131430131920475932068345699378897637690575899829576056096944907895324393047120280597556585181928622313338704730580933645139553755320856853758070858613859868941839767610992882203173615668924255562783560723988994231395640599620651842084002858842066703931193475765978180445145171001186621098119493725511482041303198961152567923157037692265242482800838853359910879514628867954951937065850624146005056343896943900491483541778741833799591246559880891645288337025916774666232321071090421975243600695413179688448836612355256973883396112702701634253170946440540619894833268247749400134056519219413566360067880055889917521747265054830031310533954095374031431749367703894252100391242128689152242627647905596355758888267603112910099327251174992300486544748123509196935694212513836942346118855011875994141647944322503083826017898827395896139909141576262711011974552885874086637501833705375537564433939693089144273111585840311674269130894954480933105823837480459137830577870753433072299510444256434408155503614378440519824973878264917810692271956536454907358310974303628238593670143703129968511619987576919430065342506945609763325292356287351786261093232384118287608107751206355322351645647422119597331223539813537001069009235502822959282239096139394863846804881962765570150879235259243155192650154347990878368449130691766815041900139001857955485189378093394938586503311627424271648693644195433059173835936467360929063792493527467354997242513816460291579303859494264636231985914396569512896220929370099251310640114256618355662878402182079602772737020228212676212520545075637501040037411655344234126243100890955186191842047891442111493782762951792986083258704447748219026801748510646599957944871790602679174509908027567418829403599715189358175361239831105188697062003012784054923467035467574002529706969840983696452670424353094625449423975386334476419932516646554425224634880025373197080512338574643950967670340911943547774756310414195812497628001759544605310133647739435328485314263376367361223268312847520863137866513984784418615001910995823826125225205456352895695814386109504634639399522560640591430808588633412286685278836194853633116408896939666158185903557809544460123132409552402620956304053003299531746260356003349695306130392516768509120791749422233287595433541393101497708460107115101961807644145528973810085272209983636501243139968291078199859727408392958246324187653048806380082273103739756324630373897753477346543016498616612426133825205490231748121456242754511973952069281427988813576401395241429261503565352065592966657409106794899725148720879043908581323102194208016484897762384109315295556199497243837667230819230408558642089484620530282773257005717584849523854460541329145759766468276065375322903603227651401589385636340848796270520401355580645932737105302860598547054823326311569785791266948961111443405290156732029295521958141747275204514974203193692919227911546706574494024253114426497491347742369898232173991202891259919708488857852517314339869998021838444246011905498627349269967224508056946591650548841566207574251106552748573669062552090769470530783315263961536379013560581852026456750421328999100001273696843574335087657680327367408537596753276203606760415929685336595240867454869947420216122811468533149749373280328154131894759758404393379601855572511748691407579236896198483149044467978165076838909272385800030911131024154268464407050752322303583929061077651141888724483315556549633344758055401990762812974223301680505353520658187406742101742220807262589658316594310047897190046202155576273697113582109303230829577034238733184294510916620218173468123332366056745657917594614273038800941476550123212450161136600471232376038759199409019468575627499140581231639963882053238884013374115526006886223420643891451446774550514538068883036169668693030806313848620626117742542063161497974473520752754366072492327935046678325716894748191151218089107020199758702704414100109980974182182991658380597180742004620587347570438373698200575120869397686257786728894078105072466137253482501118217038397835284390506271274770920224714208869367891553012800256232335526146636920361861636337254760981594616947986472321486715881942484258542273045701732711815930956269778119007649182249959903261292341918846262477258261627175432387217733542669502474035771980124945081154685364597919926249282599032717195045713479235604392100712574987159345675673445516334806139250615480254109298742263061000186566052748162143493272485027803022434949897986438187813580649251623324801102708667190670220981640941926610656658041544639120974869975055732583431858902193717956258293520911309119061045720391411766549851856112955002191301687610365519172631880339602955185037921228322913078863945371987966757076243790567687135989332063396996387807491249442946845227741255101529548980578182221708223089716272319068062958446522072893379284726467918370423993193114377425849082049253901702772830196913037471464881918777152027443520593259617785168109677564571422324078791837916730885878018938165228444480842474835089358542361596090462634197894558418053992724787267506969282275994622804649543543822636817282491229272623748894799118038029108082962953843830310897334235039602911653930617602838152446514969976326803921940355748828753861305514786945632100952837518810204550342790801703142584687955487119244161531269970922732329220715510734891700794064889877101109254765561018272513079541312629369538473310024030579383181761418274698706509681168205412149812747159521768666556128320051994418677100336966577372396177130316660978967002690378512485479449030750512708922820101174541578538419450465600645976992280498409245833441737644073638168585199544843451827295235127687368727541047239620314956294044474326040916576469441436816014384189392279083876239798556513732654487246390114185016996886041184131874151195499463498665008783047663940748038802927503003438660422432754499353749947572144334011488069372894940805872883236502457412936016960443118301124404604524314155374761633540246525310803514851752718072830974113877969447370145488137420455534137741818718891324237304323738031350024981922968648738652496101432118393120470056083375416663139098270881451404592751133739750143317357508210870614810982739137541119603091100489775855194073939003983589375386684047820451279560190366870102679822651851424984110705238077395789767742188064150031056528617803585668381832294621247269271283379504829084204861068909070223039305041668909643542646106584852748657352093327486534851522168566238804678854705631599125121538971127937994653668565887434247229435896385640404447265458752289082409286224223825020809974791203481684432596278287724179000284888033776780663644725017290036966232048584883161234915145579803773665627284194344098076760845879627884763490274201801460685224349586529539731473980720556022554278728397107658673059896415075920301361641001833614836139710701875847210268808155822508883699306348476208228864152076164337280277589687874360901978901181968700921041504071732382440005981756212471806777004080535347537701239788241310313421515356353696619752602542014248957066026942666013193960332231501201730584304622073354852651422458229936469951746041786418178101324750245949956829846494084807658527698449738218974867134926208247580631195158497978132495537060363613702019428810171461755794334452464569073426772587555081142280464737487220236843976529981904512743856557823686739979166222334720445833942227334516781937071258859168913411715767904333696716691242562345691536240952299945509918504652629923311449231239737680169185851065489696214412204466850438194004131546016594354669287753243768981857712416958228549739742421196142412017193396749677597003288073779132663225778362179192878655000404492491475464365969850894888361931308487273067690924113697669332705333854640981135043905139019011520971446192253694135291177830240669097129498909211479897812296459210165290053301307768850177984606372559382223430406610605515472784996284018023606683765957287276609965096401483284528248363224730209848786654368185609483258938210718714710258718276180991573979561828987638635724268911654261612847067166023786582741553809260585595942257528423720202584187402440978911810956589744495463019933654648508528698439569830647276802141108912704699984270644677988547433326944703386838594769223727854904596264408190300242332082854007819476474788825822419636893539317741686940049632395535117500668449267742994509342755776793377355863489820801800086493645135991452205021138971658059984285247302049092728348363650098190459385883597876183987997042859186294287221214206106292181372052801117557100677175740722856814150673853306458304505504541129224016371464228681907588566038033558204279016422018523986353102825067996607893492264052488536186491930655410088621107919644190160169184681157145780781990212891088618271012957688914948570873086938745015090188041943279864851824946745345986253217213494224125016764509061362647044355141415467812653241721301667778854835504866478618693032162519536597539174857655412064897681068461755975480673505103033556822854012283517378140270588881066856794388880536550962980956033439602064037236042122562677087610284475818712400157751100382433099396414199899206067219238252568637059482616389258637787897668276018879718430167168721181567733574304047528572728591814009714147392729031629298914879514730846812117086300261267768481641902402780544267186021686636114813379585465011893047875675350483179210627354301930451988751784012465788338746912825042996733535201906175366940019883085972811145046091687755744453675442137412337024044606278561349336808668307680561668797037026651634308570128850780089828370692973158870072124546488347612473361488691872792196542464239220769482838260370204885606991127332013837278953746958503239984551040915304076895371424320321459227146536590096399543459797891724819126637267866071039544160394394656778414773016355552339226903986377449940363143999122140965847898120759887682042743243648041665544580358212208456240032028934295224240680581135945393229661201448875195001543552064684537627168103624613770121187191562413683300486158384614218332166114878362636229076550776144629474218271900297309268157351906035343868346741352580975566790921608620549489154200456461565840898509422904317714162545082115492327768260088804107100195301877379584600136720815271582827239866121869559315231375678192137262383610992701861163144686643936777891057087610686073658774321351138641189346352773500324996604148623628755782752650412370570820861442574391874184621219311926048428968441871506852071721806023046834812732423078990165848653634971172509237993366963566034955127161819433772458920700789771914399502206597907225305683652923821775683641420977117760734774955685248162607248063636579367129184273357460743314708981132560963262045476866937465737718606091095604148819476564126829491963803830190151165901901573571381018438376076158464324083000812482908684284044204274607881124977672678175874621307168575190677624038329033502266138932063587361701069604793302759367061934281446621723868828504759259932638027572698683029473498101135737316477099448977845438976793606811421805336482605718858939590175755360440163707521720995854074024754738406737826655243680906380088742341376793314047574902735771383460161013811015218181853923224597733691492702705962048934754857755367937629880012529977651821561095553430334526624167133828236457081206938429042640427717768271164901056616002334996889555990156354023202077362745400673207430441409387171546454698844746992889781264145903176874041012264997838543533804669687654875573878659562349935246526673657280187194686704991649557433933824109481631867425184006992631008429501045514615219968395200555009746024555404623338969191075978516980912396103450449409720369634512219971283747182194359189165762214398980099968022879891835132133583269340400383201088122134982779980915869791164968624892727137253635287266542370767222620101978459175974542744117918635184845790516363331023123696303111642870543341070923045330662876980869481451992704289704666351282304423001387990315918126278060479662095030208019742303671908978931172637130640251671992428593612374175334605650571178303059364666595257431166659028392247653254995099165860389769200756583151526164114970587051955664008885700256121565076289200541869425607479132199908830590991696767370101730145925375683670681548353336440813181911536757630933472816577052462801657942721911926171623807534641931848310944758865571929399457090749618618538634980462878709726633822094513534458845018813030953742725309339468150730537692075087107730589447369583705629382258561418292617352258160302692118627336053245735298829994613749588493540673602477385125029018943184766695275465498675784731533029503070946341235689853200932995275497959169366430103582962639168304170407148444917403261823421460451388534862859466318191239690819650442777772762959877250125540011880562832096303400805638295508456975467915505427016194787876329393133638512940447846131954833523642821179015140570104302646049828121508425540396367410958865975170611636147568322420316787130409695511605652571745759550654189250656297842594398188739814784586531377010508660580304023471700459905733834674843860929555185978104740853219034409042730920360734598100326200787711405542388141392131969309939540343432044178251891991762519686938589426157297603471361467435222987687737377587868470307043670229596503872998745235577567120745344238231463128215669725406984740994828197483606370276462467436992219698546960446548340663974604284946115707829413946555286586579524111240157502542358462794492242986607458556244383123449140914032029916612854324408874820410132530337804112861375556183272107408842160547619033128179332782041786752708379789501033157706237551967293461898556819729292600840719742688853165008737600827232618978875507725648776877566660627971721857438986734045937744589673317926224196183132818980668501136816925276518107139824257953241164442105794522516630932117334096644378936905146062078216272358545323308071900495653786249442397700593273607932570159379867615495416527777073848727913358718861007244872370404626023961889944100634053549056563612358089924360267989380582435560774729344927043067136841595962896693667334532749022914649701835623340194197761516485947366264253198339148882214313235253121089479235767724316588449149648754638551637255439448108143657002602648027331153779668269262051271163434266969821179262825052110319192046335108889833245766064193325107339810417004654542039141028830707921821784541502896389215846127799383966366840077161321735893000199078262043568975861286129189262447030912812219349709530702535774760798697742001910835038551287686014072245319187397241521301691766168764879685044683390685411053990699595293798916454420399687084859629173828064422430120956627732203237498651827752983177740002854875103862764443043567491176893311650989182009569674234135859005376522960205675984962880145279014053657602367766988364717418992766248253720069062508051450065274348505146071253727626296754353741744742299334513714923465200447891592034409959347986584121303532499787350163552187775680251458347147365999384579860363163788020860285151446864653882513837736662112422795132620976209096121278617024052090668130786883298535876106381797594891360187151252796575180136090524857182037146980617743506151897498069971192616195144697138846063686335247245275332557982917424058188986428738152454255850514014798554851779541588005218719299495216804382316766543143881721542712960652550385479359198433075190042716163248795982723993209367086791579178685811171517843556191125950319835743095531694323244042737155656779930903154267610411047344180500783366110596465050664739054086058125070243306248815110887255207747306504602776711819596654020301903739981197567194095092986787507670727210379497762344574005547769572389900492958250145732399499718356756095750192107400504975843591038545956361083510119619684015022720560452465882868887257433837464102806255144746443853645239886000883582302277245093924169585484690240746063283171788598213649568855613994114892409918758246402403610565825207418514942226488714875900602219346714035389391488464266166227613675400520761082628831425539192634517665873150517990292227178767733060659110669117874138549499758675424256763681859997144195437122597545979593123066292569753735542775957315524759273081339174850089166227652977923696883213781466458832939176919182132990653230303893517069949743563716996101614562400912885681243810002028327595296385997753854477363686632716499554743890266586917744656500003005341449764177601905771141318676606031866723238637725215244698654682134396484211042616489576544020889110268708853795107013104226746243735769189737269725657858476361189154259726402261410983029820379083060326513061710875638916784414613764008311834055281605261875194685215158460044119142686666201103677836229680507451202642834199893932812435100013417526377645388455141571960664015195070833057959326947381659724950023242564339255686725595357684058772443026638062982361222428722123670025083776454341010667163039631611740123274053109047370742781244150879726432156532437756993213567000123083168511061464802130055773112323402516274127415693899136608471868449845429805912812867543124076805232024321929417654106961631761389709173681296326108650441758591395244926332216684827403070481000636000944874975904437172811431745135268898225844687895818469837994664405466357459197447418145718211039510477529569262542654454874587019771232463669912356753997759812329567704043537143165710390713260509428853358462276051168588613792279116610174204038301383563801244719103888205285954840863332087413774311740560805634809260123073416529119932645671490786295793750495717436443507899397085392983498470002150433307309575638857347764216866901158446343133072604085047608802275780062592787329923654326626304130039226287258590178107406608339687356768320034122829396513999290276414490225863495779701953264132732225977261718503048023098017794527872055390757299880611387133151271109914650433589300635038656400016073173311568518630785836303284221613204186491310618845249503738768758494110218147131551031151405399150445612638420958004288132177008771929733200625122066965380432076940452490466789761175457067374685757672556872839739670394171957873297704124097408284839466118027682030940392667288884623125025383957657335056954140421075808020726291243276507982290797606940805880243034524154492174908080149117100169654620596267241665036598633223850496220260437827481535493741936903336028068990459587222198408807987418404211404840522639179492500293767752996557079832704297395711494770035445457030556925589393370275973567700086325918954215503974101521660310579605679348360992952445919398335245550581647010316850063096363741360264673906690951900564252986725673059435886162984629649446495946350137226243298052967295807038144623723369632055736738238972635958388634496824540520467831084782471636940551441663903054174979648843235887978522770435644311972276846747738815152446322050616206751385584683463416188235867654257645198970260548092559883689869389450764695943220928195405648432372265394174051601490754239344713321832900030138931714105825410211539599060285553801085162632481462707394035198821397460142325193931557211395881692172006954519401315766726102856160996293186238819824739559346891335891916264127593085461985160755126562359137762113231673051841104561027530211853554279028260263917711010376948760593080881844040472727279906587312162962473033756579257451490156352364311989941891315602476654323494010062022984301433704506763558088779946407799496468775833256910371008830055205546289251687531329420296449880634928829127714764944911264376508215656658142682863384730412990753721565166885547293610559111303395141306308228829550950975452868128916230990874429235969226831843187091302895909222420299789763523153578055952369899162372728195484905566983085806561966194454415484961563480010311354628232285195101692197641738416033273116441434410241795841346627172602162470519610391534103036740631926989919260738003754468422897088959032271813504339271454118641294738641190270501381111710210465002705863774088713101883657067669084217314849699995231675795587949294975359159051238130249038564336335134316979980998842688371587624064470832360379739009611937887265323638146807525083091711865662791506163148918835312460563111088447355866006522906491922958425886826951025844390196363241612295664877590897653669862379035782364989623239429535892240363106317548337591090451441317990751339860092783397920163942711823584438849159367274673186336104193606608640264347605929761102392153318542948145319967831190811541988647128828333550559623857287091709078993225523413562174103995645330926030998753995271037873766231627526114270579564724113562092084505468336929681250349527449312888677560310223433035201039060635929159246067263047583460681898220911813697013537074321234077203344314053645665024843220631288683987972840217927441036769636439394841827543401082981173480283766124311783571278374021945875666140844325223888559773215021104704628737381607460665921180866530651251978649484564186646095422258299634362041448233370742475954025665360030376993062030039891171918970770284907685832072367455766287882126838749492711225124598731173616594602162393189755118168352138815688924629961672218349426825556091440722759156669233081717136322684346579183819516711061081495065167291819667909281251612153655844241420628498489421539198713704569788780438169403095918465695039832439383056254792851040579703983932339582589002170984251046312277527930096146499950133000708259653485067375990701333104900391146035113026333232943502963768392991469052813449418634678376381392273003028133002956598342189722002946873693537774822286407339714804163983122365861173975574767293154417889258186619864275721950192753561862014785928458343900091489589637689414643064676882564535595422385378345834556905928463113090011826486099732057020658843076551320371106702527268178997848110529327661584810595044043260176394913348146348655928573690755908576234888536472099455620978881714482933169512432380395829522690678872609087333025765791089376563798202614305642954217660641462914589445451613949592021705893768477288261075931691768722327584265941084451051476944009432275287647847382872931235867500309632379944322637334144047430037847299191562177998349725572278848053429187158386497507567882695698022153577588636635719490482765279253770568571541793300241857567626429875198999967935321658950677881956853402585833608530474859483427818813648030320518918828484686988297710404853474005611359162629819750354692899608936901871767881234659155407772862856318684728479440462781363198714364449088148302216233521433736116649513740643038314152138536640952935884284440527349248355093105600820475208709406448628852394156584853376309002301543624713848974441539485237680966455240625312483875833981720514397000761212155222543320651763378821952311744133817216112279654516734441773796860104392970591460291924220823079441264000198738030912505647852676220141060546406533386559776420920721985493013615845386108448440090599448021645997820446778558546022276077219830565489796499034388211137538670046395786222156222209160417773048708937034101379216464610062209541661346273237282923579329840695752823375771196489000978468979890174347855872772479779118131746761493105869746954933470236435634156861307360765127725382827234961167905218287277460184342724507974282864822899572954245174978090923299309594321200143737818368308119825360628388001847694532838202365948340758228721008878550708218156956699045348498353644851323622556961145850524682564055607726769758196481107794914343341558476510052639180518142875487452761427235365117714317297937268271841978590015631747531887632178314643485574339040907211328377497732539081657269844811215755359237194491266342851694415142543248999369476012806787386476480599856032211669633229120943058664980716130967804995776919149093736318546345029827151343881934672672627379528768071659203847001901927836947728514378124271099505768825591079649313850002000284437052690520921354364459735813348338004025465011938626885032895676593386598781133890021428259696588437820147782537197525543250134956369458327742924333824716207681895608547460942542734933674639929446932452662907508537056262544276099692085102856994115285360981507601100505984924784393874972412393341136005020536468790344518754051846020879581232791964910559921715861916176478700684295345526332881703805837916998830694007038273826933364585917685399433382757658949651039334471825038348364163727285157952365014658838681352305944057727351467236341878495678140324648766824719450801963003659099502111388685634297593055881418888033966509990695252757140439446585284365749520744561727855454193313967426740492316473349369601876228559015991864957840550414037325726568772853250322088773634794907423580675278901751305818381172216513751354753090364750322785621010949594156219255686483027105792850126306531190071569516287239523754300097370947649330033111216228565192263158010369912318394557739157725421442150813944550112670736924846433709434215532929968199059841285327401632005876525074312719928769629581898761075625544452648471589209111808514330235374309808442520120857371943552896867216222480182590226508782188907207352496933967363471980500844338458453028633404674538607464944313282563567123281020968439833592221824887769642412716627429207456107324069970939395798248694733210300976185144777823486014904000295397770014454803844578801744681573567872665493351718240175079778764383263836821126164899028846042350632332941426109073274839793199603579006792557126188848636718979858866702724529545913578937522516232243154182829299601004755423148780872995171081305848031574368145209463708624317050940102900180774591373550161290907753985998067497999404316910027403836291880876384247044234735769148440834949735196004065866459186610385632388938186865368440348651213707261091310911497127216648794694377710220071421190566922954812726437848633015404139809163595753323460615327901187300238525093734261184147607380381444459596591399422861222574605583480733540077768581973474311367947358461960548007875960954869537083603076108031125820389049285517380193738677125528301236661901168865146373470092594344963175397765429543754033362454726100364176766801351532426040280624164522686142628767105466398026592428804486915159184261512644007036320795649212017964284169150721619478339143729251399803377752558830805154157731477861397543508275209369963337421227991378322796051508157986923283679651426214743819472974079538074971854396200296444085779242401967068348710832260876157364822700673880076961729697465135835947384132230930089142830375201260910561250756363160063295842611564253009819536562489683775010578574926583988926684089115033513731576615731151580472196700365055464686270124186855581623912019333845093915170409478590525336487781510930038181418204027366872847945898328923379890458330962843310579325731226091669158775650777043055115140340429672726905351639248879324247941209367501682704698660275497354335150251036138077940837245942052977488638853994848406020165089173971540674855511934636350366129989977021653204003917640122210809405676351206954506159003657042054861324664638120717304965841682143012182194057477025249645405873212472477384409221231956917150243683158236914197700607815218607754117096335488599021368110709914162663958710755786946118256169330077917935095750938893430626788969061907231267906986461128640134464347823408083492778057971275830356267700981224278588934675013504918965771202206730914167892721066189266120788351569846602712631999471252882047633832930304159165130391918351718035849985796691834255173996992263152967615120625929365142937131319960009866081981560796993784751202663664796079979720861025120205356515517893952269639744459062133500633251636879428862130570886690894218921627510228827886226371331726376409754687803238631846061602584843485073682109097873397892946647226540146292146144705369415352920710708467166708072202414031476008781511319933609299293337444153633330201196549732965093217620376938430729100118057658731422011694425621187672914290108902870906432151124123097229930536785777554539305122085732927409479548603685727040911507486209707390266951111418885875066912023765502140595684551991163750816597290930537373538446848007900050501033836728291257701044379475696028722609353979749949736101544664575219812346658234574045252224005952555039980040906807431865502111435168665837451112212108442723178911134592502482275380659543527302972191655184172511615289600493274171338296532838702751042253510973556913259457795772221756635309181426123193905545594506916706943912878856216950317448519075059869318650998843254578006496735425671152600217115139230566760773318918063388987858588577921255898205224863752472436170120295986252227282816200887662615525227068757621047108820042593049268594159421559268507498177986942909291416205589191084681986033985408280433921488597403326514500383083496590293771271713751597633635379711920661503255258115613243286573208631336839796551278131317865928918404134304540919498867184911169013855079863809360665836528447431841417128350773065751287790760377407550733534184396592581573444867882817173518645759794978947220339827661717682133976871876167295892798123361088217063404805263180838630759301786458227868456667478633715645033148049172283920284914539939674007679904619794139847272481295474140845514945502496639103222488547138867259910111461501562037136705507417180337851795624573735920772654074686801457772600823737916199491591813455841146113762754162236159609979557777678729718166565798105737990002715152818704343996741321751438046331863610029189327336010804427093957868948701964110037736924899254617901677186254831575348310045620516782125815401770794329456597807212070597804429194699862833535248941775527792453088512240114997365014594056270980403215445741099472255067587483949233192811371966709136483298880863506785063766333113678376763523889336577197439124630747710471386753605472916190057888702312970108543285553169220523810006308368692035065513780743416222651415280738435047895433292223540860220168018648947649972507530750287871267838110353996000078358607483262796385220873164024179846733054641327968729924200976834440255474291342353676677874639738999458547497642896307149095105841667473063679735738098011257633342192334729244540188942745755626707654480687232520926064358939065896463719750243289065892838838407958605004014397160593175858571725207416702743828395362875689532314468047738271221350894417636907983829358757978929710272700115724630083128457948210150938396817131051700387008018149126900985347896316455756761951756088187906656069529215889730675099801280796012184385633429215885181898629158840502180679506597408280684528040915686226004381925109934388414937730484768805044576912452746259811751058338982083236569738556512153832804614367843187197454645404884561916913704445409761763432174515254711984026366899048509152132097537892533965352163284276430713017115866795082572550306570880191660566510482924667054859294227776439095740810388010023559576572432425890234519276614093952326863499710890824721023342229128058771426937699292679800880498919337879852572016308375243559805590036193424640462293663656828598117363429112552303200043485125624116669948970715250292794948681273819650109686396451100348799543275780219105590108441210158494904708594755521507490584731731906662423183606991941652036824009767087874294799787447597139089959443591176065315604399364435941946485790921593296566322177550686413621853862292653501859665034530213863240542418846830396690311296342869021665215135493330501037008075749368364324071864196646427898007372265048688549106629361242808074515484139203332098050774419145809274395268599719093973006570833997599539141533935450871755951448928699343045042978417609523815430714528586291967553077815144307571346134157399939252867344033166950750110026909188476091386018833316679967170542108844832990262666984440358783799619584379885147372101963322054200790034543986602663597757640605796446994695307141089435355177292030428576437502927925099023502213663188871986683142191112654454437088163732655121643226126494668069370879020697504653526939265149196505319495842364624084737209445895861308132542220552515349096696782954572706499643538375029434055307807100529274070572508043720161351846250779330609265281447031080766354589062798711188316267290457896489000071036749764766789318199281662931169905313369004483777941774907585153066422822461626061837274350289413688683660536729143187909080736083351371167530068902249154994003687984277913828331944478280459960484286124782836962815957168644418461283538581889194657424831123689563519633658309548897697782853838893587996965274337399100874364870380915074853268861684089241871078136318242059218447365354346556774122871666412840781784913314094715178904412489064085819542499884182670114761639816744184653096578895913021942525751080771839713781649767859082285638112751986097256891691478664597906609527506605236632957835278166359506334049352982025730078240340536919080180823740970271482914225185004654008410698314362856119986743908761613709211451715377927947020522509763175633505675238347671673465465066913921753179102633481138016335991366083461466689736623839856254556134150936833837410029761120306638345915311551052375272265783610017492812736885685656312988831407202079471456121725119715978030122869389389355952123042255485171842524963352472739922225406759769297441342025779516799749609743233857743969293742871356623790125349960582794485837342977869564287146937700087653687327533050555008590269424072819212885060907268729887066037150429056043597595931523824455427377685667383452384627215540210651057233595069108136767710716680780487040093925639596346651759992459109424265161882429051903774311339307481170295720655951927154786997530841105741857217893233579203824522755340413808166156002137549736186298264340218400734360956756987097759199592291120006897223018382635018987235469289024069596507950231947376335101206762923058058174679403525902829845641200612177323647212273380166281359935499747797885226253464138212655743572687213633948109846545956879267570831591626227681338070243327200592964231294733620596022832878633316138530868362669716109401631931254246959457805583509805297840863950012732678785873027630167835076705306275121474435684015851021105001297400111071284047424771212803577389472652492311863801841509476583420034989669386244934374747739175231766668484980799856113741506738823235841110215741471028532108145886385324702001249675698704630839232467216869718097739628644077961245586392443117631875669783543835505973277255232866846595471449137675086149804477478618484726314381874218482453947689419512953218546946131654307416565841819477890498110493133035145963505519988122698235217264525504435798657052853797241013162897732739913056326240746736455541813968359343278705488164759743546190167436565393498638991581676277894049295949482541090638559184898548499476633604438817706594940472111594607316597264552059884302529682503245881794572454387807323283148737377133108940429802086411781359420288411221830665256844244116666145885414500998102582940049419788295505140354435803152998981701022385469635476161795293005287832210866882907656790053692510269888741986202627097162398027737915076130983524734967627273054020347202977540836538644099372181193460419024202485107559999682067225304274863552868917709578031723404613889110044103561991099487107911625391363640260032356311072407358193101250430655300935376040478738422357489755733467600879098830611310563969457590603912561481769367849750875479876362954947165671748314528788511538135656868741913140770493732118776040967408799591097361625491127083077808949945273127530175068385516490505619326080006158995622780434563030960538301034929390786763570450626571500336455822073452285098572451389786238464296404131789649660790763175499562611123416303381823407586914523705725818953628178079922976168356060760969598412983038119350326290923125368637854234156663381543730610638942927107787681221229901576219792657830173872589636794953522488783580889890944253600926404323683298684219644574030777989821064622893483512268836208293688638623510345788521923495358916767005383750232894380499606598119698202861285425128002725992858292243605576167386158268689348232214002900216541101023664164457230324083163012980456840047697121201307392966532623553605274138932656651198968831870204336837259202492440634514868341463608537729150282457323150868108094686293069350074491917451230038961963367353373369955367262995427448605388602817779711496322007799532007217898264708233890103496392133805859400170388870486619956711044919409598689629468021331983282342834319328839683389658673129496191567493522816157014690792036786920914094709706660061475267927737481105371280743207571142243892017110581430105016597894371782389565629827328417553190577331295718449588969855671853802176547283231749437133826548496324320055708310947510751255854445767112908781443079558077589907244694101930967406946774368052706304604875239150159213088445784816567154443686276683375495182413767430610959290292741523066241026082129612074180113778879256133619330954395083909328826485410023568566358718117225692330291585165106174194422532038174637320449008507635060629955438176252847299407563607820855813466488690771243649406682514634452081669307995881038222098396121976013184114755916477987431276920180570504328130636621459620704503950738522266419764536327143969229072939704405623317622391774906873354807330183571328809175449933906640587362467966464629861885857392267778454072187504388603617132310105014582931776776966514151215573378400835299225573608186522324291290970080238845028262460013968182560485795272596107089919167054171997752920359258476482233365119754567273093998669677565806910155598221161234589780078722200373065639677386006055910448769265937254219537772528101904805862716996974558619850208190322996753742423907406624800527029428551793327419453685982543130191112774163598501668836558878328615192664220158821162890228125839889516161870129514827626699761235004239592678649950751347044312859686567173320791539176175077962443716278522468515062797220839289803044246824046548754211932275222718127568162492569387136494292394286462192297561437650631104631236183540518617924635035027774875769330469135009844492950976245656387598682342818890150607539319884169895786934951200179736076299810585204310463902905834481940901918006159117431310403873352041349474432310555009522637238563690097440167401698450635675485146117793108113189761482536841069599867423549946897763738391594061138071473652732536419913514506831224053450660416274223317745571455646041221898955946271844634947867120648667493498186314520200691021049816650987712007631150164574362072227204071473774479154472439033062382734475234600533445442476754380048803576145355134371184536688619915352597765585641818462791307014109400480300197896697059637178097072240395408676558227305172194303413397789358203917535393642863686787909645959415698142397493088297001959179910752855891689808218643698850737044206637593867730116624089430058100022722785307997300323110476207208984673558923865504697155414273687574772477128471816430692063786445873725270404798519420671327739987601663612554977936542201281722332935136600940464810909576309510436285930204394503102695613760596586795141495851723360362031403115315165194748757778801582415750940767722589354689845191202740620799540955900301876143597006949411807977539367671946958467590223004245700705434792606010529645699797457889408529090729978043577275105272992024416507136723195228801300323322724225829030224675679988475053607267985024434202616060015121673393772786511198355026451962736128297300078273806330268127804272112504939540103675580251138960072762017150253434916953573853725598751796752099310969940542151871151372261332261420806133388535253597127008511386886069104373621999290512121029957154048608611260258025073106458991412419030587000119803938796524622301700580540104440500454391612123035602700124552445056620630874723097585713998431344076176941459030835806713527616996442673541033991226660874364671117053188309104375695668598924624947763238063170299541366705300212447060537243511079993960033093090571347635083972190694740870361438060789141203786885487351208237461483008778800290491866125879562835516287427881958609050236493755080257520450038359168765772264621448673582737630734234571638750826732353545996466877424737323086127288555144110441186700061579915690126727737196630154331102772067618696573615331609957125036523644511718450278530872408474288384129743876783216456074810849134178604661027169476809456160275450049996349473316811744739208640084518298263445039811765043841496014189631925282721404869043567713913078299273518128675065396950320015394861170193510269617098908001589552232888304406451514319373524847035672774266778598474843834018889182805854093480305308844999146842051257794043812699368444008076404278756857059397796684455737736228963502530767130412176128945904257328450852705350925534073486401350085689635685939509184604348071519550946456969058443026526309223464130002056775265970431253295392679576856530771832228041167806952475282870140367679122531921472076196377351965553858024521664860939573772094940612283512439614427097574177908734759460648273936233783336126458201975650576699197115986458101304753130651772147383314586466347600727488337298689877344933622408091873999558775133546897955641992015616044510411389873410009684836099945140201332112307630682452438429214299302693839354102038826121108944450157602907901566227357454124299990943541246485280566022533141979744289042217358124459838595323217966009780003088617746769594648976067796275492677478731090487115710969214571100253298962057799904716846076673110944674015449193027650144805930712920704888305214511863718145033593065348226487378571417621738467790123065558069591867548888307840407854933184768973299257981977618918043036043262004015178273919641567350283836535361457891343128498394627924394676347404872284107010252962116885936096258137737003603452028485416929100230136003383042230557311899920928139540557007111823946336170476289572502559892819324708699239881869725644099305186235018320792465530985500736256765560309668680164509576798634332172383888509252413695901023042917992934254199125992785631645446757006557148082051165720122243020352068111769114504051406598089358935732211060465720270254011934387712344791029977370542802401382094138532850339797473156546863894500289242024743531240891188497987082738616833482744973029871550216869022225761026416171755395991486276978857969754251184633884455893651501998759813545959823689104558591382220117180545818122227745750169613510898238796696487190020258809063783667803832357780120084973744645010670017720659915111998093727987697608832226540903931869060874213775167415362055330699940335422855567502217838825878266120859535913817749406048454913575406401665526164911339847069700062954108790324558587362760763622407595032094531923490534366531779192012978331218252854705365426778788937806846946061600735176252259720663891195576473992207585253320055639820627708032343306013150557010174072879999161920775261057520198854209380864834825682744311106827719435005690131851986800463692498662344829364830002495905634973077100680037235177282985857216238820904093256112534651011420234433317553132429959730402733943350392881097790617668458543467001455657360119338537353539289959667740492369658039652869139162418647028178608886507386659750273781480209308348713144569284484784849517159081780167223230953470495099095090177041568083391190958713221925193955416726134296569855089448626697449528708198531045853541983915621508185071559757095778665123152141614226986760966170932933210285722171884430394857685324998749677854989878660296080093929890208458810951846345007586976774240974162896623765710671041262034352885424079779610944511772261018768053208368603434766456483245241026809351409203860657472120160903528397555197272584585993659361120763759062931939713379289879469062381843643950993675939198656053803479094465367364363102309575583338647001632666132649764113968882587215245736042897158651676779744847257726107494141261626405012960105637305792457971878668514188255700953163487025770349239109257457814030586975581170829324729148207903103111728538756184945848463019658501677728438679536184568528804368431464758678127922150096501838781364299392981236482880922983318087981751383134773416605001742885977414017465964797298484892576706915934121379499519676898469976427747149895012491277596168426504794041187392616156658932986766128695630692144885101602550178959974552327037751553549889444209842743665985176837677860165389689993502148552084863472725873946494345721830345886760053336619416818210747121301742809455961906061593338644185665243630276296980400123409274873647325677473982560657080459978332516661455032044606586027352903344773881863183053633868980778333726502419440003840559592346213008934910171586626859472507940814254637488025906441492773783517917191561208130204473553895503709993942392993590681823732273539495169919500462726789034683848634883218782158647976398268322435181306901532292916084841125451309947530355856410817126463454949315341719836385122142937994449333257080072909452783158260734465898626245039074349405104303247091514182365173478269816080466465860245331163999516334926075668336174803333545473819442429689435273804545036490748771006166645776642566433449104678814290760465165082474957000231221803552363387374657244917293212307403188862067704180078228331916938203297304515194987115515665111941840096633001287916479089150011337432909320118547500135388536672994942683797463775366359368101631247137655954461769556367476710467495758912465075214708598832507890787782764159835514965883055681314013761152812000636726920956427822515294552920378255561156100353179861699528232965560996649885758357139998697215812694325891294222611904040304620079821213734507440768524007436808301143008304101236230986422284391348339904603109511096702670313508568962631301582940205208169620978669983681611843008289576701609136467855067507689148013814411741918374327033995418327845970533691426234156605130819552273283068523757932353640851078064418557577486144192242926597228398317122865755749998091503301069308458678109880889662103016558783722269143440286071945095596265629379962473009176878148843531141056542666906436303840095900787216231745622760021249547469927892531335274711148578373631209295948707454842346953798107074498497180248425346622360493021828411642012879330475041892786374832625968575959800949928854884541013068711816360292584099905330567898025022504222679738525690047968750565077424445098092539686057275393864506175552950760229940602877072036478510539578519865792529237780674023005190656835378310530170373039840874932824935651694860408401582634669948800448595432971078378074292801354815512797140806420121925779762662276485282060395716216735694205486963170394151501374313975381144752093673806805655698586758645173791075093057709559038911626594085142863213542626033940594501050168483249990924273496276325352306930629088856298539863018039135420780386043047119839070146434543748615824326471923476617652854940792747157330395170996914965106456730687528141135640215779975522886350295884500135841581339387369065079161820329377079132046706047710207946082595265114098723601476524399469769705710852787142229035720496197409413369257334254690186203191786004264414060527608755988039221398348664828774353961756649891111992963408293215080495795328513237104963637029055720733379030269587232696925989708732921592443615986866959852580954451890052671033113036857542027148463198363663628907093671432761568980076608337788901283443247189809586110539870300087584340415832792098485298901024845813351929791720199982820569011603893193273323703978456121057018148032520360463845453026652000839431319891660614520997588213262500256600307106713293833506513887416475226877954239604520748591579646530810471611475879134255034442974426316118269436455720352633990882163374724583646829657399555204470756055516972247440551960179908861293660387145107756811751047735944058976209088030365394719584034552883443015358282581294750061214265420755518277459918435993184362921881090507736159669712105265740613799728049706640407273278307355811325076627189305143343786981369711019815459121059562582181550854135782147943716848873469082747558111857114954660005507331727005049525837609277797478552227424358241527292410136102064905407895509648678463839474268206863795099632515403749030465647282091125570406023854636793191885555331994886431034714765041889487805669952025228159597947759079917672501199030823111137338528146497196371761855568481164896857927359222568453746455232481618023117996241015013044230486024795182135525834383251297229384815997501840772691588692049702553440421716139747413983856146657120167930696711682733829777466343053432035925725483478014055884046163269741515362210569383737041812911360026013366358120909262569856834523373368112175463247063732078112934598152312825968908490805238664253892924844760200014558632299558339726735456317038194249255703094353792426415954171281154320809577615011738047286765875495702088051882167558200644999642103002462750193641474067555600515942746119950638667398849566915916506770473925078268365338492295425569387668211318489929685501078316708231533353167633519950859300779458616102508064627364683335472882588836866733522778980654725019282902356200205233911402237388991443308439168504793339161061434123067397401138226106180120301650908249793798374333469602101109125164249842380751507645184508057075233331004706515043379495439210010782083665276427357932012994468401331708181487497032963269649015257484100089132968141931565450740136852911074762064220735107018753480060478163340462772779803707594867860173901832897407659240687416254359128189507554366873210858723019429595264541558989239311493086758844861239580087685166638197561096365978916970303808987755030657669767180348328575049322371931069215896211601824486588044252235609161406987826274977581014265907549479645435117386733075625343187144612541541763435370465307992580247489533626237135299299993457216595432810479564675043823749253272077261696172846900724618545471798934388262683856653891967382905927038149725071714846431030742827495773158128804575045720223392596409317557263125178415036421559861814500324226455238566266289447022082741346231965455928063752925755200780270868704498055706818495402414530077515538945927320865831393965877647071094483365342251635953652852535536615070798637803681507980135317194383666494546027092950018716960988629140296201811390119040774573247883857232903121768441007301088040530480793097940627450813695455384789859620148978144086345740058771074894748790766852836280677966614193774212700263938699068148744719606596911745493457306141396116379485972762351025086298314314503267310589494302463492088324933418199731594138315173260331056090841013554594169006788368488497537813370719436566161128574895026965993335241960474797560989029895819431033881312516079460116258476357463464677460638483134466287443741671231582807038220566683136449968227323530958750017054000397791178725021940086877897052479790696213208514831446932978893765774237973552124011686989527245985899608850389889250298212535438480384802566892017141998856505262279989751178877505975460985015300548407962926758375882771091268407296960273572689515541497759673432153292408147855854044833893507233815857139770561170138639578826841578550127731812405393440414965137985650322729784154106539566577653187371915414771090351732485573210397857740472301696704147585113550580313469758714426877405427297282835221487174797981522739612881031450295896551638308875851365936524684651997466953496894779354377024906844342366283901151499606400250801719871834493301468438287577206191617002777674335643395561187715164843286034733959027561799487951023827107383884002751903619913501509048089819176222193742083230323124786509893043836567360909420086162141759889489365674071193165951811982115975189411295710517693808335737259676376321413335105847198452394133802953117298047515090008862178328454120888998555490004584661895311281746368303048861326445703123043674506524787444528316647317031633437011672917446720178578923447935039581557176245933386970111953815646287306270564386304745674525673687209148099319796982118988046565707957827229216476206111268849308394935099627352060583294641650793453576718576684980559042252148574238022504322996632289150261055833443496502137867006530557729359128677412490380067323763409042192001672404722713073071092351506868984407413819204899064111526840554160729692300441249904575811752250363559976792957098980179641876542205133698252192579789890558838632514471599268676076709899767081459867914090063654864275646238300458319893614377422707962801574123257756091184936216645252202904875422955232787107677724337121292604568726087335373348964653003147738603603639364731555338800203276595534689090763984141273062186731142919529753906378699376613667918428848229048694489114610574908257891810889266786841621177905638305029560277651432974369751892416216897823926722808953204340222653441857389415908165943173295000991159366355740431341243086860383475667090856720828169958018749114538375756744494900937890783800165376550311168501536586527740195602992516761568467529575715432804169378983477441027570576341065441881088370670270586072658787383037195084692936066542027355080294634657428567069304828844406635459570044642965389652858003792230619529319334667829463797431359057969645645723912107590561515873401975431054643751440471133982441325956764509726175598924164173909592781203234070446853148845337936881207350545925706781628864623057807238058650129571122288440123884557605495463983761131025380767800267617620289022814045425199623067285410865449155430810654632341984426224155363548127970413102366375836757502976030682570535072243312743082707201248938704606601895146069986432593063634841148658030146969588410696831566674733771974752580056815091405280237972762093811376069169532861192284863076162305886615584311129214216342213002523338919439859741047644254966044744796834260105541944731555362629652067569649289019970936136018539929882123206515635039397811611148237064785662241689021175786158756290675439375828629693419645678273216713614171184176174716092387497131168444319965534238519212456958759518098948807471528152410874679241916928870400299389626751806018131910670656141019213158010277680125052372601882421123140174159912723570190845474724691915014369219047936668569818147392750166004902392330113050755126389044767969304964113662574407120810625569868684210734975685229851829105688203241091300945266669534917784081907439762937358045607621359943410049357317518407146873193134788608842270886873493106097484902585845370065097539665780789325700545915039479249848777243110103405837544679795090384942149951714003499879045859806883060421514223558982832299763274603221935474928606479122629500898683841269568812206179524216104236678888434936811097478867843720655993868435474461332694849594067950425787818348203652495581478412213593869917480059366128857864799392928906268177304197640096016074648779986374813045258556408766741232658673419514788557629827722846702127329445278729775808286612562568943180193239295667389930105424622917359406017667127963948792814029525640974856160467615201792099246657151864348040920368585775284127608893779438005249152150032869957109967099903628244514009265866808522355703800295323685422761685105209801172253443495596936810275794820963229769708052892515630887157804657738219750353088316185017359234102195184931585110724355487476193879658106336777777652040927398498262431693902923040222753448678718206187495444310304986237708458453395410199252694182612349448633347290700637476595144433742907947006910701923698143816801020764701923415273346239683339570233396530152330243644807438612343084521768151820942885066363759420523534765375160400278790950543557331929718845705060539552162995365826475632959671780769037216850191583732282041405993011945459916271448149124232059346081719870163642431307443883959421611229727453473729911105539427555088362850916421651368566101052458606971969471935684772219543144732918103162280335995532940360358777163535782853536283751146450526467137002902530810945776620653863331360305888090846551928568948876404453899432991381874045594017570839818474332523628582676304980378134217463341262617129342568681155730994294633806130693006931730799883418353143032545958055534046470183724473535640953872548499302437396000496101689086978988769680277909091992854024323805900611377347320680625716807593448908429095588182356179740166822839577879130092380077611371232585574927749658994429301046834601476979030451796948853238079424831558506967027123404595539379059565880240146589788527901731480830899166588089317401718216827357847430780414059033149644689143024620749096321482027021142129463531820965687790545334446400397172164285283164791416084579379079566203013170415580999315643569685325027772778111239644001888810970599730375032126413054469711580515716480577302032069134199011902184281451571825414423829273893048493556673727770128889591086544548047546920625326633246152546902236968653170339999099233263641206309233894475687638558879475490545043458288009673305044868684420771628981864165601414038543358445689115431780866136588433252581893533215456607015699047107213375760329944132484338486101727960820966136396430789609772383519426781594686702823813851701312817243163752126986726966715003471559403925583431329812457007676011032836213724386481940190930029368588204646979478177155834297733570833930420722818274023902615341510947763898453956471713391765800733442264281785569333423720342904973397421645323950101755190426550690341343998987484871057090282475280518695967022094868828554963000748137175137680962414987210778100370352891333295982885141901771983035305436894036943580845486635272735005247573846525275637210131032690175849695942301580364632384225450878200257021147503428499314787694343115373628331032989691069256396384738351062605590413511344845619165200991549142281620577990923295095270327856366474788833400762357650396562132091076027993756842376496047140534650420517188465716482310496762911127437482357225409910882606268369349643780121462856265672074390729213118383131313327142160743287424303466190619139656053544599041949739558058668336852918951911937357214109585253167097448240709868521603863436913057748877157701514925828803898801598520696261970914478259241462356786627625064382953758787236743523331240772012504892784094794284694043069638710114404677413507194204416792928371165275914411354632304931175089196987888078357234650508080836642421428544597712798336168962524318724255289128098537533870803179327529369935881783228670707287112618031134244929811551402639079628939181073470816848114555617014368582365862303185729628086450281760694549909990006271798304818413540664011363808515479827943351128256721078638050732147647809902556133874056897272005529577293554758902518485954294695318495227692604383315103365361401665637829787865462108172394101733329909886571539516320989806704786978108913595693402903605066689389107391061210285039066659181739767994829715213966172659866582871000259354328061248567827608155727799247454312582905380454067576634232522723311941025895734855011295470825036801955111214250364822925280835884624918471331506630979945412360157855541941847873524850961625027781726064810761447059242072415380108649922327148180486864126557549256473579023914798787656173024311450599713195715214283176169274822013064652067202086393558004601549884244053987645056219976507830706336263362315719218440745214658355422157935390373966289741649379903953345172489863181154153038664630972860236410321525369310351971036737317721755881570019834476856149591388074420963497079622750772010371672296269524822097412240568810244485682094729804070686764068461461127741702187128480754763368525244458048746605198267801244474968436409389453001266848536467185595122151229513147033340797659665221561298258627274721032767374513906584678420880233125641166140665498673973097049525401228066344344320130904705416239366749918545124519044431336268149052972907244513679380373181785119696935014168206962836453139200659507991317786599929591985826281021678852580419959237075447237001995367715702114627393436274195757683636283537467126475621206043477286056741082045815750870352512691281700661689816972230451406271804164771448835926909900654556103714425497481236340020126109438732563167269688125936244958079267019523313264155398632517116704685757238763628255364073533587581353487565250842532437030275677478641175278670220351418161319035002769289016814688447814762134749721226463311825711622362492486108479874622410181563075297103350118511817780231913594307406637472823191338514647260635873838008258683053900085762207181128501049907965419241178873414609469519346881271019834874090917641553436352551560581601882539721748819128665151604867554434275087792641173257388105110251890364948936325422195777426090475805206515701668866739265495211233460232478334691593468614402939030984148357671131993911524637327079860253682994966007341045793224877598672333140517095551680499977732753965667929256461194839456714399224929503928291722987119940695258483993262760548906481315604984333639140096821021136322617173366862408700087368289580386294967737341273347438457382227378628239516053914151267402385674620896736490171546722547845479381773335238915743181456905966874153419370362485115415359023919836979618306199999615721173832669849488115592240498038947936996886786249469492939467176536861669881816210236000974338695908506716190358818325316654102628253365609285090436699992687247738462937761691716332657638323250457970932385283995708477174219888745231142142764001580427489538680964243370894278648077143941112665288770095491841459485179456690039483221435728818875420527615215839164173964063839667492598027804926629104894518059985467210855409714377899994361254924779099390241596187393812919520698544592338848851233873821962415732347999169727345945545981567481410216059686791707339062317281545628487167819964566042471596020122115880270086106690776137636290737297375218809856886081613876348377181641528734889286184327758016215292844586307841362129902312471062575930967830562860404545484086625299583587428879223675750011812471719636786717928439134229363909411521218566052137578614224937235646946589060939917277536491860144840213000656131028662356078101976950374978330947932379361127944623729896380005128245678902805908477322905180183556545479589838101250363564413154264479973560542533372581971960510988933913024731977294070880720090676598607658037007743082882835616777061680993881450702814709807396246832588094521900480259486285949912022415246365213849227483032340293276802852889934079417801201664436575416676032069587335660049044234841254571848241360270914351673373771794284670940141463071066955168000282621714379929345306657275370199730173157555176283399718169930041393597466491405261526562428006110048125030269750341693387510380105978002583449351019578346326251533113581040729704880078825900248561334274369627972503579704821434117109834835428762530707823894792843797481595976671207988725471334511198529581910677669558569842153729349012758341652574642054419539895842706568757080731146130451357712875549738633398016005748139714586021067956513546714289480158571434163142691135552455786118335760230855874518161521919246984254381042825794176222315815696674147169617781448766853487853678793132946356025002354289917097105792194636684536441526637987189537807736847930039751434927841337186464456775550600352944500547767098703001522655694298611605169324374123370760786328009193176540800460028130598453055785345604252259033035818536350819848897202844159905294877642314241465880789997420437583094185801873543666776866381141900974244121998706832722859777114794375222106942173128185053672989223343249832330021004452337448108071417126921821811570670481732113709720726698424517682708917135193284863523760091766313158223674326928066774371519677611331642093461144212879072100785411385555625121947283708877175680588214364182538009852005098197005813515954280338511065602536872746327191237611449506857272166706194411075156216952388053558092584253120659100584690892987641467208160862902936753037877932169832349291819113530755001770640099853622241388819683428377107616557876326570736128125674111544110401801492504701088345224126784605376668308842049260846074465603167011671150666406463003123274303170852877214798777338271650480675904416302040870233387242970273039443889425010092121359301454290221336709196916109229006283361490639285447212217810999823380787573338834496910977433201317615800334979217578928811108164499050220756040274607845123231316573649936785779713242608393002164947261181519459325212496500436992704839377182912964905809368433892062122389657551359829980540507618360243780116783877742923336874589183828615547159726663351487344618367187856640997851593659766637135030303093062255524878836890891727395892638455608382139884923252721320534856599632356484839791130508771297020032802425406674934464130197142847370969824955199554777895930345669376825059020807556197509473221688818132435739278005109999089080258632816001764850716066754392081666691424724820608294838909643554394220033429156501032237920708200858131415636278478459892969565120234478342166767777165969843548956825109932202895624534901602596277401078566641096483665703157042372934837853383392568459720350683082609466582249535382296317805110963385493559440769915766751620075583348254228429256561840568580676360638513740810279499632538230066069670867907671985991928157033606526839027292830072062071515261900903691226990951214850462831902594503379240961209128074312342542829074312256303091964334022922183251725482982007140061058105470520066485307356774691487091903680025749071460885597069941255495582513835376159199250421020163687018003873431999363749914914865041992640558505864909126629778022249700169549003334159864729505781067325356729792088910442839063288479157349329915918691718181866477575112443441799564915140874431615122234752573543571104709660323551074581866391421494638389344858506998245886576638570718186781622884008386536145340386647197426549419766902385238796212956648076054470262185678223270422604328356117571497161805042742267138213748527406407876093571476514364781157364763470722569063328502507791885056617600720278441179483435652456599170863646192110366096451004623451675691773134985613299184108903447642667708586865348051416181011476498323015101846781280106505137709455091527512042290253203825008482489178336964229542994385305824465064359147739942848378149863237632917525811668355572899544630011214171364122791459560410845758704933810347091785249905679161027215512125784163523317098930692970184164588604964541772785377222410516895492091784928683322138220292143676009951652294236175350851651922385650502319019875648675506163144439207501657161984978471509130100393553536446877527654447802401884221027783750916290207346550954760739799868870575671611697190311613750047877161737617631192309103464362606435368740527474142290276409227307895904827756306340514408286508841862891185730007165902301832775205342315084339037989042576590149280580622032103390543344578700555284648951610051221604703584344052604230144958378436367458054343381707147256958219677682761742947860539899778106136246800982532628015382384890569844655396588126217014340857357091350895316406149651464670095603088777770260936577313674564335848592204335026873030246602763017634657835151423585643098521733818819765417907284534925504366714764521054647006003269945911610873292968573391283081983800091887671518264851375492036400676151653830932529734724071949445366173638530931499120351067511763516179461879085361032305098506075956680964112642184857238940975207705876881966180318458009009808774948573216132333924541653639442328608451325032907777436209487821661658740199724336959027245067792929662764464173013137577506876639937283004088379371555358847567335172407174722975780037417978058172523199138763108494235100086908097166311755896755265131554588731989701682422604837145796871345015088712535547003681230303346471002712661415168033771604133737811797291373717770336994148816750070545880828029672582670930178315792647686222608057713340826889295157881840790839920745855240904813904111710427235048943105282371794105918445146874715249842636661104450133875722515031591064381366025910535020938975088461378177375736755484010928898191466278236001270442856671414495458251176992721143341739042735685034264988086238720360109840516139222530730489588408380941622570734198209133998437413147018398650624230291590717525225792120174736959006038454471093301624695056822391956562374774173704988670390608110051464361316424657399457987034836278638360055266522987461837738349189163876326356296641629714567386580347467712403892593407699319635988047496966368104362360110800137852247679098538838467547288807832009145506517869821732510556036750011063212906365333651116226152459316175294485708041230052895090551199175144252459434638745448701849116898799217416456941312322378755976403089213371676426824904677455637956016710139258953707378792533353036884379818251615157052903124002959400982839601763845931012641729104806542503461023881454730208649428192899497589061326423949992275460344036124432569738347028075599481479844690646478657146603478667040823490472568722892012887257289601963171398525042485446407211726135124645675276285289226372090469435393959880251204265093732402224629356766229184600427115594731095596198977538231790164180373584936731352342001267791559510309006671794461725761989193284190092809387406574153507940265841913336970031761864418760099034327854579030815868353293679640040590535503940532296494678711802031108518446204703146053223182402719848401848598873620842807700897184445527106466941815174560206753611319719273950554498668039720169755355061936431386177425397338517567826608551943894185829645310992298838966275173278457983471866847849840762131563410971744946381461031136135374624210109460689808583507862989409462991250117999153420855379520407051738051381919574071663892580089622319188481642366353660573478832391863860476609700204330538819212007244735857698427733348016997592444815138982025899356618714833666058263262165380094460751706335591729868453002422054057995526483103013181614552789241735762054793188480572793340573376645838250304270895745890618717076709542140199548753863172205494181738553022097740781131001573469624990891130858185571903822263487932561899991403657895468404253255685881470551005656106912000980161753482648749180770136668099878544332154054790182314306844833733664601948560561768623358343797196253179046804051830368815375210774773578697081237702976207916605608900133872155529906926585398570282767179975467598260006253408106883023492676025205986465114572544764429906118391634884775039826664180494879070528601260935846157463608907001346648595744021458131056388579764503530995248181451951884808375400931999852056805165125618453501093801769695462418369122256634303097684030090267580456595000865580895610010064301627466870202202633539355378375730645948333323029342385683431398507861793570996801162657127418662839929561563773243562161561160073788973801391600258021578052427917975236226602871748603688739974228241140563241530597314030892593181362804742816315590127563417467604935742545649743054982973610484481957758416558477425416137413253977088186625566110107637119737716485745119737928354227453012892511506653784693699632663936703187269005533341181565825914611742486312741589646662788066669706818832635261353692185236595259623254536231572695249482496818993356412974014962838526591824133541991121518315658332970295198860790045020602009254307432290494630423229792691989813927976822682571561476891806016968785522345755758336744464874335841006070654700931306570324626767107770155771760507231486810015296973048285494748634008036872533981375227385712135857956835303888923995594058226821131209602644929206527264132291661795390357044979619558146066153275443098000602485036295179782494203535665444357493870633765790989976703834905323972344265295289810520839563112120788428517208515001760049987719784697332949853269319900591956658833311526813118467204458379924374947111163823742177293993781320617787174817697140713763444919558154826620992228006734152647138706735822950798759056020457279366996385668863834312078739721669390064017436297312894758251805885763945795122456026919810672249503225780309422292250117606538579886821992006217103085824735039014728263922748049704157048139505931641045470588537148817147763963632520354559366184363392142630391022383571808931982148404938735544732549788601226279258677802276011016771584694859205205037196906819641730352354863372175463339890992540997682163875680214794460226303449713305963932095684915396502386661370726326423506405253455222597428435221739265475245533787060783101662129743785574167959439916682515034307152145368862249848626281575360716221250052809574951107566631069380463706723682969072542388387115233749026585474069277550169945079550000234621473493642756716262356756944964594403513573350455961517187769293160985695464635920216216809759644169607398729945189880579395026113926544683260352154750778542794057359941982192887734426591182965596925363645638105055937373367700533050007905687540007759813982193323623496345822772383354338853991022680315472094658602595317928242384870909558235454843144055488572025788113176811120977201405953272921977430529016469526537465033878163070378679788950304885623106738253162446413340959308171572908244469250664907963190584389711103826809822111515374000871834662213937798964138094263004789538793801551592345220947643086498105593881022415952201665490623795681558971917807387650169101115224507251817612053176518743703913540750568617624068934158024319755856170052241466852961582878540091763446935937422453425902371211935772335620172811067476379194634444797987511128298279269559855157966948943163965678337957490277181943972367144130083739189844123387276983427077679604931976016019626369272249894735042442743902482848364254184336442094150292883775984318119999991414685458673575335510150539692776212753669295227015511808393229649811116261158487731042763070867123537954655552727240206628241676510905213228753389025515159542924614282320815293973874074187933493084761625321213022232105771511817282744441069640496320123489673937271339139344801655157452425073261530162966256438332432195638535839769310245304282194370302086901108200712135590389741733713569453595709760511877224319225079499389589730035593814126214459755573412746750352339300754590248632581520539088331085663205802886551141919742199473798083744181637118843310207262015622028028465745332187582189258086179210290469373195974158891382463777245656299678890965685140620396801093546630163363428056858707936103495227880761765259026070617166155696184287998049790367397556662446289414310458582608174456761091988219408524799179223968890420065957544815213709956556405825333778068162909563369026021032190617782507377112955581805636587802038057270362288082031477733183928238522975217190763055796416224714180018447572352205915765055252155074573874830292517112743782408135011538773186628065833362415146800162444479113055178632114498451981949568878657278339533211497466896083504458173186587765292127611096175563637635023812602128978072138329066240988447048976221333176194423897345011532015626948551954526379572929854133831492046667343537380434489820412215570760200913837524643150133539017768038161025086300238340863279377780311346245787946991289526304123148438197643887634162619018466472974258427845755794446189235275245077514316214253600789804696099943615537525249381886478584728774068207965224190986356481116305476016455701031710207610952596032089504834924385540262817537572565720183070065881331115322642953700740854131670406194716851545302043128986612854197830726524029538620331940832454549688330339463145314937059495038904446835100979295335853757785396714630662151499575728766678180462446714603843549116427102814552185898511259132845733579737602956075295991966404170474655834897043971404456055833995165310620954256160136900097945055431551689328775234783593528547059623910795183812001029000679665366402297340086008666453190481604067003281943508095581516969454508708242545946156557129594275431691004187974636062969471336504761692745920537190443593965154799583442929755287841566743358173682294443163343946099077599709857487260374185465239303600832183006909266869442062663715738192496479436539404996415445112715094664516131945280658083308590674713099229506446823746475564129761208579672922950870912576161756745659398376408630509042663027780285266924711969485612985738800749305855973604084521162016099845290247244510609958725642926435055626035578844774009279874280225859387988982723889888717720153954007092644853683575662838215424533630545967662545209687279825949344696186054664453794657533320994103926003678205857567173374706960659630483566490843659358172405973773179041975402286852449959159505109898109876466525984865661692856837764329847601156709627414048957495470571595290929596547882109778845271563305299754121313047958660233904155150995529834452149586486434804106159024319882699752971229879579396614821017508585754280871612959975211545970546237746603100240742334772685488617263779172204431568846189308898061678547821993468220138911095183260815573446617660260014229166477861883450994035831299779557947689857426759063109250043913482118680666604614592671906184610171733958877153420382251188805902790888997607862148219432003827367292535844301529962952255122997465074170961744810303127764622378619768857200260236980148338838052714364626505764569960940344407888513298463078042665545875067290128511510310167089158208774852847598702435872256628840592507340218537147111193116396098154342955227011120217447098590580719346715932692978160663551206944562882242601591642480074167197842336127445691218129831948076951690764691979675270040479423411009772368043360028927763510799069145627226527090702481335967166014325187423345436050286866827799317090891095635368587184958835891130809534528332992627348951632883375575413428352710888233010766186439469201491580060937507634549832863501912875755605343947859192608190934484462216946536370193518410527520296244760171495386100294010860010937300814929152312772517915975908096737785369480043988045193779458476709128431407376802581035943637894034482641096764088828638641357344333000369507260721490511533490567914876527106683057849973247385093390134984091405903560636093732401767818814555759514624511120175756307717016724183997921136472485040515476775952280868479993398645969508132777993310160732166914784797373338316575578046194860842749118386781304478739784337665975663677880441081510820800766364729104559189029973099448835664618238940905857810103395266895327628406882490104224161635346174094847355297456631494284375258981459361812919428763572176043945380287409074002174592723172477814315096633573159891249253880375794992477516408831994597727670982993902945875880745028362971473964284372139301161021343451610744264177152502897159179608902243832911405286325901385769244404370687016105503720308833329838474054967511814576388540064298476002958644183878532627744120159055162281015832702066436225253932394136441841761214960780694932471908527967486480526165590069914782404017418897800157262957387083758448597457372267995091029566913595790786664626528749343556816563450599219949156742766130555380021676495636400260310800628988147073773281755722253982446496534080309908402690779423065204479266689395292263377011394907511207713094857055455583934218956541390940397127756453260072338486192132201324555248626045230586400892968666617729309823229234190094174364702631638537784015103942481127937357442548475426188815946335696251656496984691723649363989249918839341012838456940628028282981479139950868488122042605215847891282312586938061340923849429023612113325608270835958269242058923785518711876557800417623273956455239108698678186152097331850536120299766364579941744358671608902779498537241280993469963492301712739458863560517763000587925904707158684800841960352298030263331784018826706919369253486415446472731061101521043315946908223166725405923309796950048656727686190537550392375540802200217693042921599905450764314363028908933052355999931779377647209838220580498088720251848150321935626214675732377591867257740015498557689863942344986967611089807429917360395997353795047373084844039453564053022642925772385209738718064521432229998891618546231469649914461826578188158768930475748892633515173476967401242114333553950632111059083909812285100094821775868491768047645087742751653633147255763339896218614253041726655502544951700310032082956200629203500638059302698908001305994762886955773409879780965784023513651542778228326267360048814403363948198720484183096823794778727398173744726505457344442568600788693329188307546374047785019118569892173131012579900980169128685947774228318919621692594800405302393798625652363915782467239498019011933525467770937259759421923289242212063701651642307824625113173504824235265398829069162423227575884249938433108118430252145681553834888576232323717221370712093205558793119754211513521236519797911797512632268730012469010144775585642563061310933587147773415814488400962749028606858781950299474651692546099560846602340317116993024498038269945508316149375591755985436936629954681443500762681546680195570881840261997736941687022981339358901932143220383653616697841288694935007654254429025067930330610869340245053401992549126261617621782750492666183391025573795565637947672534732233477243680954749336988850533293127398465836664262633097051985131935592544154591924960570493579302597959980630514899635500904655170260373879465055161121401911223523730590586172613860867354457274807871857868008950035778979813569886213753018785664794240681201569868744404534155899295061148837272371799553685016962611621525496562472855116619384328323879160484457454837795811446678140718872461952740372428917733583136647135435641258502579666832301813360096031273518103472692948775600114933180588509828865913321477341198052733244450732244464826096902236502783630041531365281336388440407741058488929137759379614477963467936879727890428787638363832099232683774053872866895136770661011748053400241459998900938600679931926104900535356329117346252537880022732514140035590166247457537563562108150245253360197474733494814893137255964681078776995631747588063587144003729496926556563111041115864784783204170698351193171507837238211119043768585463080775640442854745242938117523583462683674338222873443767909225738180448601234080336487097067157265243349118719437820890343580536051620755497339401680410159059365615743535755537740954955423415152589744216415927355136453310407747120053841462645998884986885678591574496642241667479130935848309699513940396126789062421508541889703151593892290459315682889489587583960065454572295490289205107764169988989733126821892842096246211647143882910234264588086194601897066018969098237192736656369607124440858975738459035767917537401654837156264524415615561785761225819027363936911358173544433936567314813557517021905384084969467233559669674802451951543674240895688093926071051182443212268140584677169197661541831270957336076768074813500338293100664366013504983437595193272729261250710050259154624185100122020246921293359139485999924627356332409039420133576500236958955293283676084442548743056002194632872597040852392185221618552113554828152185345524450844867452664662885046710379341330725037666720811478673815976504085314417073286763024834280756102380623513234189752329436554700865000373018707201383492252440134351454014337610007738851563676769802331136725811710562179484212296701550681986872125182648102592081599508977242048061150763646927451660841827958329794816243432512599352944176500536106091490270753790360184173537970096242429205503842426615101997133452090374157877733438559471873295646291303595125550503711813403077256347419389571003079013263813033801928192850886055880539581803412966934399524898988422100653847319316688585554011509435523414006992496554339160354455809194741866945928420944959009392778549877610147633456768107697780907733094620943894078489821241239507966263472913240228517528482863232636877504168439673939620516341095953052127044053884829291433189860408344669793541760763135199602681439614442729274800233963158711724907245496860812795765986813459943287223776506286012136108717641047650394154496078636640303360410211868491208574941965916311185666042971309263712523753342168235873682298160998336420366906436963089642585905097763949191992617132348236147940703872021874934076151518809776705234237783004663531617269835437643755251483637072456564622366299309118131883313122685943634121870790933748841408073333205474002711382866666907843833771828471348095900149822507019573911237947852416623234256625970311053232302833003035026112221415465099074608858739496154702039424555336741216402947473471737771565050310159411835829996829370692674653444125487696992389614613787893887904642650238147823135466991527191591423005226598588655953611771166854138284305706490213919400602538815227691117164077980495070461120149541843112888899566724533932467148759958632487831355931139533284803614624307646350439497453714499838325756164058970425454000230391263504237402731108594815981959506780051413241349794990381696914664436337991832980543505258890834416570909468423588356827222511242738639025401704242740976724486622090093823344579983548727921127509366585854118817540950339012873252195946930078042074957921124590575084724350904466868188417153147210737301568722268907342936139304935855008782496549385764490470654862375043756414636643222573532313905892230709365833704103850542929835487506019015495577352069806148519892685385191515690682269600732010766834209523068719345343926488246224678454024825219229276996533427572805577110561784085776762511959015588920551153141527864543591874274693124415081437380445176572858530007234664997872442606564125199429473369210731238894677196652113061643168407231845508749612737168795488488361376310337699990974669230027786303211490234891537933856742657080298138653812881040999137013011556859351377623694915912888363037231797903873721538994548688016873958824314784857105746856669943650563139539280562598086411907654083485298255091109858407831248006352120255954565296289855380760838803582697189447979034358441726253984774240340412455203994342402991329197112940224156578634182340871192870110848011995865788761834808075355712028781106349975942257648921879425860524422889105031506921697561241124003314644376254777277504156518056228450492990604975767628723250566409816178115691722757954018819688129738917744086774780709458942298085156473466869692291561589290300696135670304565339285250889047221487594679546558094282577897942797518494047866739097500973460792917109842190469501549941381008632971151429484049443705160274276549219812269315340943189296021376668760311498523611186346425426295314932804409945270355476498865635404459921956683440737078089553697270952532207663091196323029689560879128019642132214928545680070328955612881258223163338993165041798017865478171733508056913607024626239565332889018903230167202101214631217033457971808310581038037031836805379264100832349187926978553477504398134269338608612692697646451322847197912664041917294896656756461525249963083926042784690383399951564845387928053134410974303469319760083676894904579178512426456795429043490898196824956163307216898277634353120117096170473853333525054852334827912467881652818084164151679827631874629617750935158621339163901679936449719299571936068756092293414253319564413618959489227084680756069862078481297225943508462966637397778052824970992291532582553965884353242822229628628702188193131725508784864834214941301743255418707226993653525828770083759711700050757922873662969953911575939753292832881309236078678590652240180071959626758054872692835544543670703966876356159286027190175728641863953347409653353677377928486636771824715584092035242025821523459738005161952178949118218547420363904155375809552014155978720232839447026796615414997448695492500382373696682481570743771751915168653855431456750867096520720947626024458427248050079090053468381963162984010808260590173829508197937224248257819631453704836951686077335482813188429448725129062165768848718066558910895784114774855171181683246469690786465017701362434726298544918463282228049109238452426243940892597134859784979219759351326936132360603760924107776142562078743616275165917318480606117358487424373494217654552844170818405907404698225083390474562162873264215409349507193321292288781421923679415865346731954362116366760951808856010826111900913136605225396410276258508526390888103797710875008896245697013747811500210513912306816059407050523598183757429941776744282365838476718087010384118483415763516095952541360067479032956038744102003836842698958464596765516136474081246777901862275815683194276485659858557527781112969166973305464929957294220863884919534701781473558104306994095350081237291553652370687283929943691604044388429541343014256179641527778903628299983107928307108810124430765293072595535582293674097709192545969349726476787124485962237259935918666083645261845102596132612172833784286411958413562513389336629973262001799252506019099647813816181616853277980431679475937640726733344877990660251340429092378714861865766717142095530199141204215223185866239242261321506804014298107277118051676481094830289021486737362888622951763129205947664476109555874692948944808017860634901092489314197989363410282678352881877076909913183103732282994397719089445613132304754794161056671070997017438228359486397025881148272531265357709843068572200164399890808387765527244870403935000962320604748958233481545187346540134017913948075980214176268444253296434411011330322989187825603587410325295837355313241621389255103249044907734973040879291786014816342798360074866843611329337911293471551032746808184599854831116588855710771127053101429988046412548057006883582199362808911900498552655321918025155740804287168866057183539625282734210297464788010263022657089958940528212719166105533908749715816628339355904756441843324597176854389576468892618915075121876279477609940601986392503647976665552098869045221299930968459219928981519284033695290919696773667443569992779696514202422761750463850805085806638517105135015801968051367188415539449662160728436316070446966353215562114187799084418469890208767540724909397559849061219286333771807105024815136892172741727711986063609727759922980095898767206791995551525895660728286057145316108781358691965170406695875876664500573574488594913930810632074103902643806403852171997358920084325583967602437918464057464969782832044823886550637824768328114036321893109926342588050159983077852673587941798137253830373964934828999917625147539024945863645210872794634842694540337712428811625644618542608246935775534929458254328483524613715152922589230853351821356161832460341279677545166323189185286943119445615757281506295556166933676303578829703028917292154589014071358683302008483904063264804260813033076687800427752386895896082013993782746154409726866005501847679885328517268965028722661981560290105509697257788221245059794458073030048755742271009472802628615040214334160386030062049362981769012607618021324958666069922421925557439396010853512162991023963815147879171041566587594969294779120690612493948007378776511295148956163198862474401257283761965536225702338115841462178267059896414397377345179359077400681478169421743237433881654764965428931690490579627970626370143557734686877855434741304049039371261942165518965249454345822188261701724560781815990406476407720701081651784906577543859508608604927781071129963585175072840315491914180674785350403047776844584116157257258092061844977554111328688989254589476843656412195269669943043844898053014827411368375846898627027388276678221889218482907704728930092001825036721748105702746344716816307806210719947259833343136855149617084183302636960555373232107047836343185119654447948600538211613726459090336842528389634512568426682901152617804545536574515870260257344967578543492203022815931044978266651021560875398515445512747857661872937536491656390113104206016474874434193271536253788576301495547059281073388093848682648246258119132017457399406773433840375387624523114694614187237688445787515046164791505287655110662418505933128210467124265535654204719189473957823469482637174102853632344987988266870723094469601605298934271591267589250358573967152460672419389330664846476488510475560992736126279565704281972252880172114433641353224167111019287711287833417576038151325840330502442063432672015334103138068380741378281695945630808341191315682247769111407243776440046082468185405190348658536784333764937699251049566003862136463621974454153254540302147010648854885152267309649027911330880311165381079140654180490604601205027527683051838206659221566465920219355235844297509324284689038533167800287679245947957490200519692241473212161954072410043785893884083413617489075117536981651379719024801747288714447442211460354204831603070239190948403325504511743658935348069682629156452105345117011294672883699466510969637266047425580384015215827120288791917687328002627970413541437993614056372520751656538792956308493677849260895180370754036244361066643010300873577659038484451043460010479646808393067285751294047277596306072186578081585413109437363946788569040767861131677864688260355767411227822680080500867744192530726023926098879834154131743452567288308325654781259605210503400840752922177586603991562490394380097804698447180892369120165024434973342991253844058328804294047655538931050869939360010581840820300645216867324914011576966749006216595007653914624742715130673539007637892443075371563174967497068241620277518158819441767821292305823904697329950315365402071674023922331774631741339970515863798331135726592813592148573056158810984308257262728265876931535225478126171938993935095720247000225075836418776305314914818829558651145636033990568179134057314409180305056354786814319555329135317404092970960488238272291019616917650127022364803183734819964275870397079329872654858067088808822541466289061093052260427855033989362261876508960500032030779730842241760159502720858108407343671167245929092771696552398805477744074274315893494164989455982833901825135883531430791372771559567399280248419819861160010273009051745030332447522698793840633913001765017747079104229696557268261045875434739091980326438066315508124797992831419387716238932250541932891387166463812642939194338236318846807913141208138878311336965322376532769162632991632673285205040034697878671415507310038382825942824752267926627654883181980833485944707673258793650219869737783489612774514837055099973183087011000101000840036541338464607398327325948882836161469168188832526100623819049625823209917993892475968071999229524371154304607653978842297632324051502028627747533076729530967293127996803886439835023891349474612870804460334544501206153023016863453206291967582769085189265095464046375491846904632547844556418193641952829343764076286936081365706439112594523224320219190029602627498390104475523429123592572906850396652135163595088994971231186720912153913027193383589870325951759485941750279191919123774388452595092276514127391657006461615001014792634566270578012437801491018092845101878749042681965374707390481459200592504481241738004017617885683550946240780849972852163761616607558317671447634513131128123726683620356291653259829417575619903476285993647003352510347107531325005157106538084316247703622014759282462627036860711492803433662451907074941937934506334186711387931188685884082547015310769355630853613842629717389768095113590777389204843966724834386275063917168699775949792510492982827123713206912419650500018820922366052395004509258969681166117029810238184424007164623110662758236926289252768705109190290979263959193794569206711439740794584119777995061774492838452388787949091759028417503303688501260069922841374077234842974936587070271267262401419799363948553386929369106848572975827717927332029423649216927569782600142464871606412646737070495809158063970525021480297506483507246243597611474975724863277912155837668706823777270275588942164275559798912266146254194654285140267377646056618833887071196381764955540244668726539836294531757868300899931404358466234837360936306583561360419448731983335631583283240612673214260832111158913044250974841006443109176956433954475422363636724205139530333507484250036137224384917997339508161922382787931651833131445803880480174840011237842623086405121362539518527733774071948176802588288360348285013676513134732135433703854520218706641594466483029004290056608831890274121909410159562665562734366590721170056606875294178536012567550716924716758490395808813345607172335190197478691923469999205521546773556291423412208089888089911324395550328608702389514293400332019323733781821787349870326724825614300722587094295610985912957346400171859892169351659192900922276835396763690308427212390225552462222205659909735151397657986362696652139790362539793304346286817733107416365270096157232253456584284032172167950924827891237889563916265000195388762551206162670379947431771748583682215774379118718784813476330623270539721772637187840947470760383600245301905726051342918988195113716150154034733370504378696898809225635720367495088993810414297409104063031575728290738379091253866008469140145031569746804870875562692610354240483479806896982862619584817607338965342753533473869310340703701289515531727371735760715347559369989087991611352375112273200810969083550810024322164208163550737159716412028263153328504702335032950676928056666220306777938238646265851471749383235241420284637244627033710408530292248342335464270180843285055779077241073988104778655937706818733196832813070985096057371505541046028648889352382596330415574645552382098180172528525299576970370096871464647565684130072170928036378169095066215357156607654386179774955677958895340431258644788725939836573671126224472326675851932933252117408738342684938184746427923505519495364415249849070869198550381921376979754512277479354251246106959182973984431323682405728249951890348510328554977537331108221055692892479567788685592780191688366334385486332731044882719849754259860443315855756325610101124210067526697243038504564825092565246956185051658169036791280066727976415251458722639837790787819413257281389415490419911146419017398690254873818846060686887043371583152172831757272782887700220316936823271154104723532163136418250919045502374777248471732595205500539979100401341352109370481509880333297954238146954749972194470336989232161480353214918202985357357665533655521793368533432072244288758263740969690615900009959272791872193188108038361403059476656766941404888735755165240917955512119348929714486415053205370150917680512045443060533055826182306687091496457815215946318345056611451634021439212754690603576297395584160760496097124630723325017177413899316327831818927525111077443548385636948410809231638883361888284364621591647436856268884689855601019307378460163266505138588385607680207030562074479497351952117052197726769090869146634860269465438439697274974201821623056592705116733026361442190005595654115079876453970542569157998097384636637493074721461284457375770055002589957095144029935275959928111163100306993174234243928714636654873726363867411576347279598380802555467642157771728707939219797374658401312912191002763579576333767584846201409833447633449481640106179968587313169743679665082276967061813658766415380696514433714719485853224846548453519998121129891992427158279426746058714798790598397761226061138410464341649422216646736386900055675233234087935674944403761426972740839291214508300545100638370632092274165640638492004625735835770156776107864766065902480587175361284976271231420905968788912000175081254724060518609798333542360487483622034414557810424079973762498873217174144733008434860590803076612648277982203988185008042078459197063924598060100920343342546469973391599397845579200812435895077961377790965709062057924561712712702105755542356822550521599226027874968978097154749941840220902755018367452531979486425581406780851716474483399181861491212400408981033173436163716210128398601070034674456937617633233931665725058061529939481159610570495708433275858056669636670805145620200866773584734208873390029451410226013021796507488928333458814940744973919927366906997954401905523133842811243853340463842996408581446335294855982013722639879566820283881249479060622650554618788474709967686613130294822157826667187822055874980304730648649788641874571510332706702384930888409584152961035194541156887840945847462770566560989904823573649669407519837011446065617120104157590926700560422064811179333237110143647061619340093690136655245517312183640550264872167831973180846446298789009392434455989146078584550261309654004449855621246029173444909442925705135263549859825383582856022986110438518367063164642449229903346012058498921753943312424949348506455381582542249095375668511125875341466745835374161526203612730010443037325460228676896475850985354803865345597373221381333724929321786842945243615088330567732654128168037691593919463428573415651211011732797772986062594949191456316147912565214472211135009514984378103912560264849064259802546041879744383724812803000030956427470922011957879614426752439228342109615050541552719675000118612319107268012054485960088854401171410780510965334983064442823968854298401406422677500640501216709903808879694640195898585101417687336901839987949152995001834962591338604502133190351961824628859501566736380875376296940556021767238629087248087380382196560188741346589784655743888172152123565956021035248084673478602970870460543794917393675548429872357295378764780454440165690322685920869350944436456069083186924434675020827943035879626833473061655068597183141822164051560445343957547819903182050367283684026280202197407107130557425181143117979157909677714059145437388151796627086430422142500556700259898844487657593719414845879250887373868357591422717246677731258884107002391046152748881740461585434625853214407130536258076917419228456478159000977199605215826534750745303315314486175224984183860668100158783808214789591328937151938793510107623342953278268993539079283052340607620026044324172823468331238758316870418620037574889379347764728141763823741344063869960767843770722126841625329814419693869442171857654046724675077068267182892755069819384110470895192775258594280998431343043360352000629624311847525789054187728639683702645996212473980206843580098442291556931889358646673976894067155655067410819126468660091001274833224643706598252748862594527978913838658724739483325676675730025915550308721676362088311331712143970861547131214379007305801990543294650973374673485633586929748935890836865989790069173298488443971442115270714384265589398587975779287838858787863254430383972757528383507595973124578488726717705253776300483794237966743875175665533474041775385765681166067687726047091073335120552371819639814957683222223984385575214021133678864626324658091182362820689082280944420266213392732651069063357963559332883817161823118675324297960148436772596402896393352699800873577796483576605637520312563383668278370284138994795068227177857596884904200398254938549710180080109761254071734686443347507690788051085786050572689057784826655779523845161896010654252479913403767503333899870952558896769201773804829461453348184837272317711332045351421333069753346110748735283207002158069863197654811652714127659150568768102775702368643291668671900387062209426022018458967348693782327370083902809690004806484098695599837206375387924177637759102326761543721225160508251501382323110848272692661010717192147908222645051487115649882188035905493591285082705082152800066928356243497578261105458723656662499530079408405100937261691903723882047819143122149334687303981799773541589494680640190409700652376198154504345041236310238392886149833326002654249568841193484128991243299196340611818183176223471922238553809544646519175924706606327909058303409154712236682340316517738019160556208826416351550716829575500657221069568214877763320741007386215185473841243514992434858158033566796485587533450460600616650184492355953244434165614459888099340263265084582609203698713953180650929799270568556719829338646949364317682378365092559115477839903633834294106142376903511996934282599522439036452428096133184773957761104732484568689918258027499718435386792338845254173335541372550441349673091155557798910841011774747245675075579872379868973313091805154579000540889194895206661313405980448071428456849890915161428534147385281997770119297139146348130820917848983190259466788234627277844248631826735233500363152416832507747662845225609948495819346040034649051797692467133186997828279568915889546059267348328321678173815014114584467194477361687852640007807953296729986688926539575887440381152536170831098991459393969340136011375030006051265767478990122138711228199089315891557510077641441992468159953318532942035935438954736551581078138242570628089286554993080542493004788094573349035487448520916129475075865230342389625535076442513851279480762601553971895158443142995152122937829882001259552750339502207300713817351698468688915347368495499076514671849022606552573862292129348653442704217798352849385751909653452687200801606986187626984424856816951005117851523011309069977303722746668576100447603716974899516130660745146988578329343893747992334944963058094624457995831303496672410765435207470237389054830965327224611060231672001812778909573553439235225876148127330107944833507255762947251222237482483733115353494398236614365150486715501967990522002433774251151583790195551658633171267417958042985934854985309163933228942305651856093201351671639210598566920886454041857397665552971923305981225347512837940840031148359991878596661464819714840167878190373214633787638548874724385211857524807097753800036784443505323099673974423995516210739619293995400689046971631096073228124033873480469552666051952423665193404356740398843860501661488050062162394601621892123067139291695205429402694084345896692712302412340200322164027136775223998406223628093568974634704150508976572606542717120741342103913700104337507767552432946652055699528586108614603229044172720406160304773718775428881031285733422623191276151107399941240417379666565956059888905419419824539381815117128808772092800982692105656132009457581059294374910333476727221384429479371696963134944189172110742202436968446894647809314288143881604563576466125519687569775346252936746247895395769020269855500400055819845559009850369486775402139519416506749422827592266955619190247529701359520439228462989331315056784262674409894524390549158144901254665808017796387202391265259983040230876152021859837890009508924170824690394138777128861771246180272200958364885410321623292884398315889186747936068699962509726735285995796140459469241202985794011857069388183870911480515990558260529855805219213857481414642067494391047813560591731081135718510709021253696950762328418511929417883759798636336970253621113770195926590963221888662101623856235666588665732209913433020616479089747197335909699934463111513155293983339172491316600285846894686350234633852631857826119195743347202528709711124405260545761868394275367333576298293765162616962452349519376573522850784649506041500137957021299966744571884621962837156279870965115364542270120244813428984189775788587369627485922443113861484773068922115089330722550551905099698629531195630393290939718265005752647566648463580606890525274883934495106016459548858587883319866757731394909102704491725000561427279726610940283645139594644444902358268136865427501236668946591824801531107945527011633893611077576745050014194594595496543210702573165250104557890244011085804141296269963372583533559128702568066916606908858324190425159356391008236767462397868327195515820508017495659803527122616675185163967150854018990750083088227904844797374345333838612408532992510872237799923867822622255254454109167048475638389566340781664972118201617150893304619441677880152676260629760879584758373271656698133287707344804282877333193970685378166625540364791195853342390855721895358066767298949980212805510908708068958269503254642790833144327867215100128325091772574460834090588457107075793934965684028102783984654694377518782191874608312446910728201191906048821429534695825831551880249080203687158105165347212247646017253303891012439230433878399444151076676273706009414481462269819987843458359572687601309975628424172668446631737123285460268320671590291442916651178606791378273472467542652852515373688611672507934472242075081331894205487369842267216333738559489738254220558074793410368455911449775208165964047747920175183815084250689475436179942808475040990196283618810194629974436651536798426719358605713844252585830947032609740486417819112448156651410802949888451243932374336099739324959105862282567176555075820121812607015205558412164928617507577210567855116428336629900031481271048181752277828801943115486021058195160486591201943136863667425687029793559539869310645144561712866588244486613877620603696381346969304527157786620467196519601638781403699142295238939355453558415015404850896222820072568603864461874437779670006669377651532698428224267842613183804732432053014449826604109276422281667069446604935741044693377969998508953436056604222068963822081353951230213400336066940174390834140414468890394320304694392859132394537572275897789548171401059213562570251580739156465338762510085380714010736350766791490305080986919318920945399612327323914885157355585020950328011025853764545047394328053363998835788887678622738670415335694984161854781278213237091568566169774587185796275451314066523289003534836326881546595228850179504641959172992152673201795764675380364932359776795484956242447645075610855695026906162199585476916058660671695832053173321598640871863816444334054462442485230132129565076344854755747996976314779887971942996007325073354980233198769954663117188564638585996573291802372568257755445243458694870227950783397133684929817084902173272243251783811640630613644141648114243525476760129551543793475746399230062661028709709699066399024386991912891580147583835567481639256632309162575705441943993305561923389170556458267826173397334370173916117240862397076616626475376617783642691809834349900659449272986679955612147618525278822331802527421424292536915563552988049065360868019174678641695333590471051825194410421624855037329646826370456097924380549280251244710162602131142103689612811310299875699560137039927770173295676818115691920066566416798459672046565631032241679161252550959511163394441195587046037918309638499416077377274896247088952720682136317962949600773309159880603388493216498968936160355514911793431887429581465315513035984189547595890404627107627483111335219304891854254153919505849843573604334326616260039461793422631188199264747096153628433804197133960398999195625900426267263729887423356956921581089064420060286878653741260598409364771527999828203003661038713651421914548427694476233576121306312058693975642713608796885780497333725112926578023054723326334342094035043944215314450441928567488683463327540404182589416513029690029578435544896683313162789610192132227459136609631569403456637152062408650545949459990960736951028842744612172284616881913138502200654571319441381270250319831220106042241309657827688334584934550859803826060940908734095432734529018744425764630723762346258534447598762846125809886661999231676933690072374311200640508936969997132112035777742088496099548955462825263692350555178645981018566957703416651817837605840518102878671235134044649783616756714982123713079299827109839283817471228377024827900713783393012682382555298098760686260806074725821965776824600805999266373943134828048243542474180811081934986843856261092871483691983292898227695319736726588399552333725127936113563467383236494432985690134418412063877187850037611993036179622039945460807635224017303549618874181894944732688862349974894306432981523694300203757929947823402076132612740967814395179271192941093399515973326107000053766216885677175739779100539909482965027066142412973888756783387000397932315778883336554141990274884755876491949406644127766013967245546099057454696054025358702336502981835033146339809302246620329013901580326587345816115332790981982707771882340424866571189123531303228619819909856426962221796776888016399249700772188302468062870790537937920498980498144793219116545644007950145456253201308577401490500723727455706442510348958000423049760049817767994961185430431202982218600899941827955901587868378748277201780474631075299273682924577004738384972222153189473671289393755185573143536852743810778171298454734834451807403010718854524552805088018938825588888326606431475961680355920046299832923307768003863902193029983621758819262547759036380176302726623104951011747067776787003860202370292115079868638887347849380267649350459924858979662547624205748903710312814861266875233679767539387481376641220107547421492641662238208410509651246755457068950761047458247241909094590886650686729052364489829005962852303130286033012222802378529974933283583742055464228850886565863140518699520386686227631443191219465952131800687685005684964091244826151024785351860883623434094019567463025351470834765917341798238120032968947862819355006556915974604214160745024061337819183664655603551807480770571259732338742584181120611017615717694306570895481277492717078834662902969308471954858220063586322588739340856414432700322602115449817889944797128812427705707856855337883627174985049311988185498105497517736140558288663561080873998295253791253234429006063427348158546453887555246119527963784458109804443031605471601592779506915228211716995532633457804574135040857009820835648989769642324699447295073953159388535455773178742414888626445777421516182396750314232612612823562548751739424717812356441783462900387133778081975609400942594971765509033409192213734399676068329165738105681512387004203391282829568672325345965336317184344418071517144818648335906515888190370647896769973116532644898311251064025153743052182288274711875891825716746171856073594017897598704987639304664227952039856235236389037049868335478091965425253381426765023021053518964343893055439125335236348808401339418672852975455679738345229595185299753251697031851186045303429276038959900920782640046462445763156929271729271270332001549895896091773930393253104396650827098547050222548052254565318465625420101697581050225591611121547951787701874842956875667770584619715796173581141614130191104691021545793132986127305354141645970859217831472338495543902799659479732764873825778278508572379215389368026046145027278649674370750491862449824618409659018371944432447226774616488978040958470009152083009257028827860586186339442994407840383463255961528641237312276861045474264046972058671551226661570043339869905798639676258989997592343152826690668584314818290727137932835930185052393519015843928857483268683780962796852068547121546867464057421621819224227988081310412204712308794684320867825861413316977803739445338432177359339947454659166183229285232537744595858946742361193514834533038095449820636414517650566967830040625503769013325658933991860444787038162510769255590828077688051472066261227726786302007950569207638306515478590803236535049778442094843008959702675380320416759166213365817548242436263708858830322682244060268591206578025799294457447054187532307087439485538046443779260385139508413885747401238077116347393240443786990609730072299852841992150033013084790301975430475402572676441676023421088075917964008171489067736159510835550306252748556780839606674664297723498126283864360961625156840865690263405593963975158868490022967148344290433640637195355056029820225401991720577489037356989286079554091010949630401950596284783498578442071836561050654685880707047512566751448925070717851073680984330164537429819599836327535946327990292987749163349496452987720365344050041841013871326314200651339451544171778179843192152585639725990222831576103266392652549055188563854515463333653997614930676601375162482896174701394716315989994165489761753952229715780271155076688130622675700223058252719197394072939339332575140770627863361531797526671567802451477768072910146747167557148152236397726972203841465461401197972215947307093619461167693087099100312790384816262085635576845144438135206067020584039814672827241536748793601658718096159812761040982297272259943697567683739622054134315032279214920998151135143964459485545017672876175827704500015245152654937259600222753379175545599052571988761541054352558179581063334891891827055489371809642277209187571375250691959989711814355227306093136307972821861504902950715231571997124595323972706042807662515517522544060540781240101615105260090070870758620924853480809418848619941109788498577140042565757579348011729097856426444433896317086843936392756138763097077155620550055454227944823844762838011583342627934475119078068719877209550531123578079172042624410676114486391105054169130775363020613148812618157195767162016869795576887124447215520737547815423416479659008233428656009237575689239593918763135520226179401158491888155586241195587172499578083584587634696152950034851951158678086852293405866655617209771226248559011761804765409016160410227302834590465921870046991731320651640561370956037699391258611489438310572595144836521969857793616561289681276502677756032886731490729442500803682120688456747652450157424274596642188044910251451343936863963585846714714925119348137606015226847444151683201405353965518323672332887259227565602810311951496665389240661427814246581635969084124933640111797896154480733282535306136791716836850836814868756198636311526865760666732384376313245949702585049036886240653583438689690362504567921130805408385195595074976771541259070889926399947226897586917939182881154349407616794212206687245242740291968582065498363459134606288426256963164758719485545072600743979570581669958715269798009920644635656307985179001297804898048603213130465160827174064599086139551630317223559328752705790759545955059743512380505593954930650868621352963022177165218318375639689266808420853831862005205356106468637842824702942160572916542381162458165354103626420887815313394755302205285468159349609476205035683983105697986212557852183723144162858155318662716771031970314811477517615574441646803172328723459512429428085694423761505296741917911900117293251005538683980580713104121978446384877531655955413644599283298295503813959057142008951734771512234076744101670056396545756217854170128264043960426484827112643250337463603977034915296111260235514578171434840890991196824079702975954502795519753158936549254274216164476128450866999033640812346408341579985211095109859079788052544637278488316731390179425651113319113944047840071699599364999850871101239243197441422822163727035598717457574884203743045066957458831929353368453903964362192665813760593610666648860153684624348852024968312065101338255519598952347080896929700871410416285871933019861053765155751887080635466260077666698483161589540147984109374243893247067917200068037060659104157712848168389272358438599901338058235697462309145411646609212948534611946912317721290575252588788358487843306944387924140781436468681114945181537879716390049243704294600481135933296215613383438955005467774900329048805045299545520296482104983529022966873373385737193867471591914676123169193162387272995520998767111831639181040778668418477158109839754293957544129057556160350143777613988395728345188390460343215527335037075821615316812704623486158409575513903242562125104236057433187491407798018525454498878326233854104038177579161512530247346529994157407525623982332383299489097540634369747835813519653403664523989503298327680419525352866636163198086403175138735356108144872192502342254266971857238866267320663389164558512820653854420317487877539554438944042281351021680102534735668103553730930086939516938078965583720181564010190610234526214074528065597198046345333330184690134441894071358543957794829259925553044041544791761016230278185568659768718845069678613720860307825607441781207914937768491838877848793496449193626565568709559848360124326417022616677230310874740523320920401774583508086634708377588330589415346831810105739191158636786872386297541067422534803619289641311400354478664389276140672325110103924558550564115198989012526796998011684562024286772022967186859903050404281490522264762729982007915848121599703093456734859800819566089072957938524294004424808035884780324167220799571115971095073263323546970975178737415983419695146709640361456421104526732480435435509298317840177885542876087192835000280748363365010900335547683426503952690876642215087706199521608256888777801275457067004437764644640907304147355561602263272773189354077905686825778074352038504730151796043978522770116861211944400528860085369142688149192425235038736731924240826499888215447965145833483477575774440366268604190194129906175761147324169800072884567560335171228080372761233497823527133939091000812258724982634456562556246534662931223508482296812743044754016399906744649922053051557037186089541237360195329904243572840073136210193487178094425623406844712245420505236847479433569308929790519871619107256011698743809843474552920584194855136433055775489657599179620965651252326119321190780892874590363624032973190518615814050993868060655309440933293558496919445056779049041114469459890503806023146417315298569630917595598752797704523545967215729045300229544872564506854319310141419265781368339381652143293908321296439970158140057867507184380840118603875685725626657131511682284616205015289117712293542435364503877149193996774474492808456015025794574938669803890187233563579464711158540436209760083155928634176526649505682615685710304346613207391896754762939352065704359198358060677475814033345131809975899250892985906139153129189747392945923800604120740856252891945749126076127391411438546943557528386523456304467990661194729575792967542244202188002949023670755329912793646462121141396188881301664195664365243757592400899532945650966521866774106103054501252470162134655188519148214017318409206143372667089762264165398773827222636513596708943198616365270402146280079724505088279546416259945366002221410261148786849596209860858504451804285048569691588637873922935114801478406673459803953790777675523243696734967677226679874194046280852611858478691021739765264275253462899642024591538234827018860579342133908792509675639326965840773930480644028415020101393364086092639867765170939494020488682743235495919179154241090822812489714448993370341412010934459322470432638266451646155500987867543604953123132575856438823364408398672623925559329293993357189004362939702510174557563349436954111428504662844660859489075085760113800756943451050546005028854966962213291409458446282623638138497944151459609600800686128270118987077534300284179224925767454819745246901668996301256582945129785783179925377289523033867083794250008073717491965949741634789092728185554797509440490119381698665963610723763632741624697379271439333183393646052511075303967754895944795036638160826109083746781583586755022535716054961525219846700047753291719840627882549643485560811271306412049592532433950793737933011740518051113860346601536596446367006205006058509551598061666185134245371583059359930012724399925387758180571411020093917506317997247325001625761359480495321257573000682603638977613244332192559662151260629637459300217121371254722052256877829352798897939516321741078229998034833564246045269799634223370025375395535191252183968122970698818678867814636136203229926762338362391914505735423500319578165872260284087985473599218700320389860611467716085320894578228316160957664054714210599579611168972519280029372283742166121256358305365675408457401288607359901725731040499530517448844137098730986310780777006670440834884511733605467455711429163085538100529303157737685235610110457472059791096705485094202566278258525824625494564154366403160777638918409113367741372154133535715797921234283117299781005585742418270101670655719977253214138427917319723898383073336099265177190259747598268858259328091249305179916031841231993067459548312367427870830306513734921826593079938568405265162063075597995919907126281393188345731915431508955053085527741033089178396011367317340406939390358485848721192465339641600034109475276120546458793649615149561539554892686538373822447133445968922413672782723366850463039453234403344678440163889754515758604299650581734989179537240266743843118366207576441454234917260742386342462683424245099630302427283448109370866566950927067565525705343100925246643556967207116425744111544876147420550697941918499708356104462438843323095374162003408461354899251152334811033737572968400717857364456734168028208444620421711038662706105850137879552434010170075196854318107137253846302023717679869217411808512573044660287727695543597150718656940259048062061566864633760819648571098716160697951301362084179313456070948658783883839139642210315990275836616081887622331067695048465155842482149860187294846930555873265664533998173505629743410477896404890061888401836084527341624937561404387662237466775706463631980515281943298804871284047299812794043717069872711260575103962444957027531754735109385547151026905106480433245460467314913695502081292392877028526199031163283555035769806703007008311073228176430656465902661509291349918675743589165054271136277427184656156643424268747401944856957689730166110805879066244214734346648971573394905813479069394155449643173019631919611208187810411865015376475370049423577076683221823142103557903247309965400029561052913629623114163680316390348330626759647817679547383887172509089234371657397270096248085523078997890927118847954210186380946985164428922812107818299995479941340876087336616024503756700735250061359162162618842319077285484377965262607208337383022580465758319175721233320292585032808388676588523796062276962538650563066872658934659653809515871069554517722136132081454834116472448904310895538355136371135979427217319700788728068269728756244927490714610094744229095111135345766891881036433914421292599493514710409525609334449792413282861188219216151840108467189340703702269309436017428362552224970346506195294759647096258953902095348398972575671736414816656426981863942903080739816120110910824496655707842268229075325987383131067933259521618523820816358942780863793618723644849178716146610182383552506353323181139173825289839612420035413889894519051080964799962913518036609499867876889412141615864033488066878927280169033990322870267209948666867428583961323296064018439418610697512219383498078097803518197435290179799379315370030400691435131627532965064282897060386254863669221004962805883554451372718032531733489632413793032759750425717674994656389295374923636369208321978343234308298271681102559606653818424590206793738596779255150531668518668820976501555528461594580796736159148705273601294331505096130151614195239790742646790647477240163633598610032702690861228083267200628989029045470665126777951985430202107638800678144338275564863425654633646958645356718419595305189535149373416641184218177423605331404120276805900143756694402430233765380201673805846835669287497628599461731352100398399163802123570888242747236307070445221043696000833389665906220353411044709832281865989726880209265817552644586973630832764801973431472600747649408495049524796926143252582903143816184850908525915817254967528104594689954890740146067575465985889214612558814990399102108964783374805205833564042801749672263643937674900569243883956160201266848926707772577307137179263712424276515041228815526815936104608322057373177850033256743878824252833922146063325847062839843227741057322750718458691605311105919300853518562241906915293117575863886192952513362150613528622679417957993796141089543528409895056798266728347665553524522020892238588576975551959972931618091501006756534024569179613716801411416715810288240892485610283706119649868838507996529490865319537701317901751126963587367842416824076293672367411010676265467841536151095536636645018576790468793708483264122569753659293024206680736407328193176332285516485630868162338934135932550717835746202863897644654791012349161386416768267371086660169647962905054123450057483321155388899485672094525434040866423581983533429281272398106597244767624305960646407846326156052871382553312623183712164640188294765049163674427163523535018010269479667274577498914897521741839720750019308576703909149876620282301567929122079635860181840142610369598588436655847639176061240622548356150226116967847230505001403644812568977379746196061847927502321233338948787168375885438026462786356924461272722847002193572600083470113798750690624186905776057888539151115607082420626924284619493866552185271021927236969517724632863803581080173617379015040595798998433889359403332654262758012990516590189637940698396565784614980998511858498691034864594802462476559578964322201384849237304963181104787633571783038702803372177516525157755769072148775014490186066277508667692599701142116379507436902507288016519230181457433254755495936943715322693426375105154518630904260013590722228254087549980016984767091607796540732146403308902814630349622887943066521826918338101472998185320106516673531828987191014791715125880424493706389537509257381111449438444346262908137267935400784821923975871419387007316758828795081811102904241656089908166386548621081421121639877426331223358890886706400662613338785658655770038980543913219567723190429978773018684459340942691623752224960950485273762310494392350989335401485192223731613835507260947863324048734257743390979232859727130333694764628493416144864672426865175567953918188500893308615112509248881138345324801218640465189764337725223902990574430159485190887619220545436216209132509336761213200347692278888318190314988545611911910101806943160963304003563049506954773048056937984512507952963381039184196251297634059531969085275415239900962263127598145171354317674200314460258629203316992151266992772655345076155443872367088668498990455871695034442221192731986501104169139675594012086095946585785225105590353738292885222354315417843854837014747872936079095449921819286082087591295715485656538687073650964178012667047335593317572569995235134733454104703082705471037663191072537270765943277731840788265503991379727120019575730303808440073102206589998912747539312180049201026823263564521498353692377154605701363749316282525585166623975279076440402902490371398651684798689926577484258051741280815672495885560822687428225019611176523171293562225998491250865958855619507836364312832184391452810017978048080672419103926982916639821771323091221572781752313509585633520515014104508561168770299408170196829520994200134976694992728577242957307641698186011293664340679697446854738150795331647754989677438072790009338272521927183325176245688688427849473180261986196720030827321566492240207375771389341323511696253826652735806977575813702494974497536258384236391000934186846921578970529012500508432535486187447255675029659774469360381611640247870975973179729386292482261012595090848031330531749859128748837854437285573631845193319394585076390443375165372385996798147574385986171174317437812427671496237623533118256861788600545525476834132254515315734128653837061361943714551748111192664094697578971596978806632359523579850902383222132715609229858282297931068976306451291444683930536528282944831548796544990341178776151885452189203987801736584629513778113518718299789964145425778973757714193386677569097085353764146834246296575927048618846205762580236750311304541651226373708644209782162529277662356138082012472756880659725966417588401329995856820772132533855928547150628664609077574497121249006328445760065052396374776038912150741538692192416109325124566291783846093641071895253897094973832842688146696799359680832401691235791797619684557329386742895030576635577558318139335216221805777177396792269889914614535129623962174074604474316090934854840991765227147626801380384904612083970352690054387475110677344283018433143925795687784014784315093010994373933521693978659764139577885953250494490600775535878437455208518676572282906189649406153108533053598884760847593060796598489623428440842478136031570001373443478155965732761431448601645869281852508081843705925659718987355490502046351448962140607444906186778888441515752114631539002667731854408289733780602245805018709459355043059873790015699551611890165292318667115037989504228150238847300475642390064863211619523941500810958292314477223363922576094531446075661041235818653059049290551131699802249306672583157222185598098798243405770038961263173244165993961410996143823470029067993654388870999093511593030533506063726062983168643845472916922174046747964002241529828863001649020976387041879273422003905955239512378851122041714379103199249978631961700322580817853119408282432653226390299727023707498167963291942246088870565903997220375221832251143529431633047874635397308530207648008838282463481947579163080518538429333068786811727746010228773911056252074281786788642868658412598867627579119919253362371593521392192581476549399922541775410853242622690916163633409774079085142444464963208949609784819640927139717890150034060541967901601177166142006478462832433547154394865841266159136408123350835719455710787039962108209034723264161572094719230643287121285474607623745237644095001742112467879216607334898932405331358669410501252351591349120693042163824130541396185544212883953366272596523427958193097512790917331039400531043697582147519527031903559737767812057821530095186414513232967195125518371964989934736343560620144266411481566917584871711702886198137325467830299256429864211899804497013973690106105854869446985955351205290385327387852294162367740023015699235566116241442761316042665427124769831926364473371000469986915578469892461097943044556712811713570931804651294499584269510317996053081618180734363168024357542972843022249410739382961566542822987394828491871748837724432861344469845060824711262541378703290334461484466382120109282846239950530790831997167526613001268606246506473423320098283999114970856682354643775838907470790752111615369058918560131625592142332306258828363285818502439434702012608847017318285909839695936796766082933903311207842529581849885549399941693489384495558892595850793351356401755022866695717837916718368347653215165493099088511831373278660002718599416700096817410010695616823933678955962451172570731253296201067485724753800451368662681964280928658618440066601561249247202745194428022433721201448521406024990356086787103318774599321679143923909490796048142153131165692733749622045494980999942738344941085949742595614172870443364075769057473350126337580950698031010201715405493579224642202303288278658598694221185762685967140063112763344254916668231332098302773132369111835859419276852855407693031478076220053938979355037803205897363800206976390383780683978058431867100404265723869813842951681458635120400620165268063992099383740665156675429192970420536309401672017201111685105024008481306921710049396544484607289756761467586971027808752240426511137878435347183535144148132326437674671889665170919732548651413919908481673039630369927394242782623541812390983793810041355302805051665562872529446450501519494475271110556983817026639492575451275595194016672386428609284088697156116317615985900205223348938484731766756977837368011827513656726819797819396626058160540772481872448552569788234563241738602024806879355129771764786114514065391865667553966425437269581894479157076887849503613725537742462796186722911822080689170200868874010870561721612773267131278440193422183836205123865278858078923603689154284009751241995236693032818698383565400166482440526131568959765675314261753206112603109864394449812066051511957794318440468483674945866400618830892132619980709493919369094866423939460956311772622319632275459592881049370948105575937128053149783941314609743240168743926412358500919345884029719644195443691257332137456379332427337265826328102802971627170086251191497928176608673513979197752250155832012829072102913393704556171031245780899118046258783367542841777285151119985690245495991182641691193437062600615987733263784555208299117075409653560053084848386804138071430820750742923612046449549787039357792002023412320437204288762094520255904248816469219126998462493213246308319924947452794868545730364362075951314276207744812062466254072280969077283583253326175216075756624413253903367113321449756607003135336076943313341962463691003798205953063645079104832162532274659139403831195154530476351700042063132670004056732164622341610164608350306528976106348516084411532579691215435242307471975317264219818655081087418323053474465411085470237963124835500493393224668754323419466158200076560203478786264358589602429342450219431743423244097471700107071962997319273824256500924966282808436066268418409532542581046693344751868794825323716044075886942678851223616633127819724691802759210830589205578521063060621837468733381683077014655681044768498695870761469568045477758718484590632834597176402800442934291093181709165695323109842863794109956558827054882787348930027929205599260531078287517056791148914716718805321133737944188752948882567193464309316255978740061072761004534334193225209133368134510805242004697845334399101025716621793692600461485518647921228812197345816815092637525117647929287683584337619243172220418701786655137645890485124521609267917483041070625725621102059750875295778262913392639070501961425776897572018530533480183191152207749162385958520719655589160680302499992434808854400948739863739148675622134301945726843611055720648393233891094303114703550751895237896014824915239269067643031024248969868641758054129790255285046293135870022429503256037127117656419601704732336607156571852271722207391336317967237621593339678753915792153846242393898160580410483237387561141545295227943461138765914844580753586134809413695110759011063271703273252855796124855051894574675916515169559731835507664911689646061175135970377340797703765535770182679638911533926332934286288271318481671623663134716012976927849027735433424402867680273271772734171341777114992100955423674087712005056983257509302807375027752615179679137088026861299357883289432975173949426384943370143236361708569144376406676524371208521479614913515154698142059002228264961114062095126301493764954707082527435207502820271105913299494329836320258653417110529269234585198910478447899258682101950016063536715802048840791935122412543265701144247946990557607144500464462772620489653159609823703145844312242779875397000888548469171341009638684022551710004564073024868238795469584959904006988880747516951759279301856186179952913085465171969122515427266325453374689546611144194705744378163056703995284842392688414884366918832549821233204472450810867794657027307050752549751781508099030634672215874425597072224165375170694140733526164165850051353775805970129908125855542788563947513302088918834206371607305617757328342952389097689461150226770621537756266298542599640338846167345692609733845936201055292346107314973933753949957470119591347596677518879276910269426191054499952215760448852442005157237918152405980498137297712051376892003520969617503275574039092687525585353562697607253866176547498738107956556071356868066814682648049863928954526322770410522965650136046207824879797162769135477197777726004367075804843276983536621570745837528339817488070030128401840833834044222419369295713184194283910476451810425802476063756273139231096992435352981776466127475610451915454568720402333008749332086274610607401217924955320642609271368434750642772184778381360742176378116220905189878996631038549041557589796326108218114288577440316407111000606994377022514457680503446689465733075404786181060307972519033359198786567209831282652961419580672602884196355635727731076691473018296971850390180989289687855227567181445253845265942407878361322710720590067462280763108458793069443540849010999973686423584086220338135964048279130723233266767380245920427578736787079930694182192497253917593940439085962489888899034811574840104541963318282056192402567985551991150820470207410467983679267485835385384292025684997177789090024700293136783912504119409109689807633594341637007899658698567227772363490573121218991654735072590863423491675662617042449990311480795513387526929864455510139152055525107459875319344876880207728829798730224109749499462132261615322437237358073872112599487408845021665065308260660935336806060953235218419219232659799181720343711693425971615361994445954166032846039254536719465508748506645705114123315479100524665728719608484315339099179705215931010252214813352277533367628026076221810765560589506989319116049137475312478362996920731015995438710159485417603116561588431366248938253218978217973615499565060060339849908482676855006630600397943461961270845151490580089341071333138210739934612029140300202530664311946444043957374918903936073096415768685082646587376447079289877953121819544093849564814096885386200596520512669369915858277039730769981070243895599525547574761297493968811741780216030944749728127873628723403340102088781238655028076542097040316907563339646064793521963461087364449614847097287954548033471643754896090868733355996005627830101988022530887284722802496635727790210450977859481680231872799083505287160568541304013576254914432428719906584926722518408775865369642245486415833756810355344466636996138661533988404247280348661636272589186405923417209740754254790003687110453586562408591381058003321192536365062373549714114135081648363482198704821527002645530004149071305005329336669885159214427612175347169508543176198105668526673502130049888663133932103065029935517161685636055469793429194990970556599328555398809853761501418750187572635135522941450925194350753707807383876515634129004182609460310558004949970332698770398286508711681371547529130089049166708723499204573568722380252341987108780051371268030191671948252770498044661570548798950887043059254640109073841711737629547894205868958295939495265839727803477472178075343650816808319212626059493963412549056006831881960528068384176161261404209481283099665243094260558634541716823572707625569319626708227853778033810457056325884747017960898939452774946068395032912835492830586331310143271162487694146748535196070998234317852278952348707247883407217581824201899753791215796001378286427820132406960124564881961486699548642384486159908495416521425652163314078264602601157002853771647755696545297463818443355008063171941432835709739787659166837737723743466742279228995566773062246836072066774818212153426535520460719238209167877527193028334196238843245119481463933509580158932881265480455198377506755850808757120695710672912782151667240855752889741211648231135187971230751558090695196979564134742060826383144893814737725471808569920776525095405009928017140669667042690109264407235388732602630050180212123192948419517979925391116729169357566973411086540390217191648884697932329593329650352195474727688194615117820962658458855171646168534160953115201730403712753185375487414268658403952050710151168327285877075677095411746663097516344774749137800138788528119787665944916013812131935646985969846581607343317726917829721690536316168774174832871315395292434195617896298633620550674486349375496638544985483408358477747104711947198363196393239938373560138919977024063099363907828830444016309301602804184099864078224108253704133471961337407068343592062248842950448645319432737432455943451278745126317543572096477497747882477371658903435981577429954470941538878071220276471109081789272095019889787265424996103185111639974122088979310946826831623345619636356548489110553713829217268597253796644133488188790130875374418929447152799484835430271839221103218146186115426842303439781171943552815036944737466086575636739688876004287112960934243129319430625824068440215548799232226074371576259376102473114183782849864066283804406499722468531927878909551322912487101351107587806442175703644065902298523877693413976888772902234834902487282602877956745107634326636618848230135865282790471135463611255755031493207238043635099920260274340767980454300135704146856917418474056633349282445960592746960269126848437586967781099128589034673513733381929844529734016499305972177647970272509803408389093397173103918685833914516234874526793090155916184931774580808868946630204329011358255507751553872072427300156626697720307489112347753622438684952390032447904695743372552381928029786103589305890988556040194796578704743629308363927554550731954249705272759817558898231637829662090841545699741341099256653962063315149646882371855219996770344218083845464014828474840913951119798118487892849894519546246997184720737495009632468203650535971693611070000984429831093300354410936042954651830262670223687485090812068851893573946918420868595349596963446565468766310452018498502046442095507302584688829464817370162914109115040151859308432769681827594525031460225057653831081964937368971352536696503660242521136309925434351415037694765504209061761103022186928543531621038516456174378001309582228101208129385015693060591067701890531441868589935362619261937784858358960100101618017010823771924329034235661890731991109233787782563567147803684518856974091343426883707802286699821303935426191387484221781612905097608656841523535223187064748212169509818303724228415227577357846560741389832114712597353849754615078342269022815658886976661355844977528616196897919137661719240003319667463841150645911002259457164288153105830338949246280056533464269727731994363203056551253809178931703889006256740380076754316167600388193370810275779636377798386095331155360898491957979270696506398795924050860323431680769059003680354257254045825601898641702013604039722584100701970298759021203964944430897644471982075107879560983242807048003510319817000995475462095120774837493537471905238455336091684305254205426273136960140027290364685327677589499614773578901056025346004005755771608908399019925317787460662501314840628013140792045222718838202735502191665126585105019185955509333970689083777707568436986972459913864408473571570499601016088006590473040284387787988637030228887233534191747214063550845682426156430957057194358103194094523207465725087056190827096055015128872055699565118431136536787039417769151082937660632220559526318007607873827654818933492846911750953700146717126784207769272574177754052293867096047007929443844213952405192661612444774104790103398115249855862842293336065121800066744600653217217727040440631071056817695147671482863711371590561053675509089296739319034454534468999421978670843985720508732414492582730702072634571842840024733434996564448280031004805856999771720937513182559808404357257230061382994475776554153556236837734568745321654039132533452354143785824156356732611935431654619728960372540428934603232193958755411696643613196209339556243393950275047119376875271177783852195892230813787220923379752334917059740345305422140645272446290921264224642470861978324273617492328854932370549439856391765033040789215506939608085880414354727902968236415918173562136227666367047514831150250252532611357749581436870477026518871432579456644595884961159180633597809823983357373928201645427323908831712987342397551671056327145048438694553743532884621993846026379909517990559064159567331735379415115029765629705301614840631552236687996439664607060076997262530066998543131594223881059298844764905693947517522050020899941870376975683009291185085301716372175155391365908248861890183232358066749611634196538825247556013197267204175040822949518448900396412183577728471532711046655364102279544316254676066400204125424073904299269973423378634843326081001051082416360037094160103061206745923516445613941496934525336023455422609161900055793286741310609161301137219659213742931813219317401735861107061648244300399622512501251196974855682714434627946972359378212596999221135777955615397492129613569514015521882480250105583792255135454657308724881267144027950447078903446303939911954852163942192159125571058548243068041556145391774822109792039834084194057767992269261806925620268232928575000547927399835399074046334199292660439394045829378062929957061161118683179895455606861351067371927811536259436505515893995760570458274519363651967728652056293070583425499094701683976785909798049387872350856138987997596612807311712392580082721089858757106992902556457496394955756978320394471718875377308636096190844372122392516992870897459800439069335266414154286350791643174646220892407727285523529173929981336240804650398871096097730109167587958256514027714033901266228492904232438319344150922589632561196281889546964344758628189989324005340560943124065957627496180227059731677531958629399437507063311032644888507257285572724839381789895515441542161389618329390836016836705614614898083224410573349384396801093302914514827388325318360880983972026818687851465452917663854094364661804619024316336224937461954405161823433377476967462707102483703677107111612440987020597781883713539439779771663404303379411510808472405194207004462089550028476948519270928262651999658303631358060797870203608907337168444942938769566308916613880178641224534140535278149275031910783769016740024473723153656951583792247394844009066662569344055863367171903909084888182800410451297356469472106987553261628845409801167918299939206789091174939983127659676196624642384348421413624059786749987686883029591392967815270758916173459295625700689347962546835215882447401223673694426414676316070007000616361941698522023935152282575626901830926960043839653091142551311282704740551520475476204527476763058433252257452910167052830550973051740221527068083428564476026816191354862408749159357961061162230048082177544134328057890638470401545172574744083053818562619275093913073211969123277194669405601263409262672838226370770496900405639684966143867536523854086911809286572771588908485398141596720795893477929469587694298489328509048237113901267590134826989188738882242796753837936370102302987542187124000326573134786853902669704485804947036419324599499450420263853285007636285792489001374751447975129112241268165218238041110055893001637982729245332414382731512106144202673984916667630081822729343090786190405396353462634118780500956415107931027354804909294759890539081708745089788446313344602090762691134504708531871484801376294730336990070736340741619301103863342932681667316527541280855563007818263796953302027036569085103487051487149436400055210002996215755213025555118686677169462743755289807287683288844404676145719169672136612145955582211104654256197020382166853940914201949661093248595417095231611287028347640201356737648739804042174192677607937938609973903926368726431748519006964348797377372408332678557978413424458699157152025783135338549148467027800277446211007814521908374470251553868566102296073075341373771153967683646369545442711425843828706927917814609140886206506418499165441380246375509915870217443241112163881656988915852312433331645922961980901213697568275621898949003151637851542957496288946724704774112159293660393919002633965381457088956512141494920125531980322136814718909473274091888467974455571609036009240701395663339911165242538991744122255295278038073742021905693677471782852015810220194548908309455393727223935260193700899328733643185582391627397170540086892267213287624762162835973946914525971555973986112058447700782983351033150320450450627902675549977959665570459086093937260381130223486623880504117271716543827354302189790595818692818819547623471342705028682351278687799822789113323469380638106547582643920085026204450195544688656205871900735606170974653402440384878129061061304526825726777170550704929109750054037305119073619492413646465948633979602588490586693996800750569331971711850928425832966441884287988493295116960165863536076148716047048481463531394528900696546745953644676999373067320296859442575636361159717621169655720689772260952341955818751669298291595794303566751633846512363737855737043351819126779518422338894917431313582990746547522172950764046651386892555162235986014777386959653252257216571222485735608430984187514260686826572849339059530969412965788799979769501112988642397424425852096365995167628582647724318134016484942582339831930996331139072158242252478472383028675050495433569835853559669172209531014006296454463549441776856031804126942930938428249551376704220884367390649582597928571798024728974420425151613945087105262651630042732821940292798912218871940035510635439954079261600252196566178708049235770009008701059166598389656767848450415139569403262243140677350235789556509096493556321238780017006562355176991017161110351881893719407885776606019143102624425257305812642380657895245994121724114035663439298624003360752387634365061884779135218083389440333000568405416793759559477974824687202210072166477914172527293699410657379064883840167805065663090616003894136870053887518096645012010089773838019721342216088997250010796464231005630155076206897313906895263479847149410601404213846776066057276670395154106264943219323877557776419931300594382275985525696936457395637532490979787325183025971453802519597127503317732085449005869986733274790610246534224578418228706550323812589389691415012339744377642791659565198548070276432013385812908801304210102379523488370951597979929409539700392235439790579101726384361256009797220336733299292085694385794789299401900719611107681755865984688189306697784268635086699594090277862552123771126900213287539813114278897967482719866314407918851651291495177340342605582381581524596897914433660391784580770840946742120734805731239694491960787923941557471503985412193046195988920891974659698979148431217646333502768774152929910141296625706525705693621137361197797903262480767304717291585536748612400162359652832686925704092671028076130209301846555440796385027480444028694354981055628568760586198572838568756756602337226463194781943391975152448849441466126465243146100801013456441704316371504493003955427049075557343329778245293384058924135463926892639897523648521304159240507270967128449128159550771237050637007214423411060983182635668625157455484675376688700767138543758197896525746401997401585889450245287912579496884127115766068305171886112001867769002704756613241292452368576460497940142717440161922219523283307659308221362855258873761010043114925170544786587947904329758968056540957179335631247262704697318373831401616587596055390237228457925314263663949544457029339399411501226044992221266514987053353699246905363294172692077664755038548239029007566989573910584205973935952919464305978062910307909720306150870993689738449017244416879085783498049177761297674823180836823917584173766354932112995403191352772761626396255552305774961721468674113618025713568192942084446441505193147355899157314020552194252009425002904212109650352689295438935758945160346487778831542275647987033195603648008704636276406776154915350054906315219529483663449959279189920238968384695151149796853959600809611462227065685707103806889718447726287621032685323472948568679482278707979037235219936117482264722611133533605886502896947828654665884134135064536088223759869073509794314553025741219656415097809186972175359139281980331497850894008747246625808195568068640198020042981305241631044035020501357509760476382862782452178942608100815213174265437600806372895325000471351195810035220955253557029938551970037510826999985021642367609657329275068823155051613235386302475228067500734548683986440543235974082722446292000971094922734295323513160482729220254197878724462144476867300561246571160576744475351491950469749950206681381967696516964627296516365574223094574392397249423449746260201358596917039448420159134696726949037274382600721124195352231861704871686128759453321922551868581292951063718663883367963775271617338419354725884927770307812861794517764963524650156262450287372911237898254232845328830001221979480073148934232272252980438818470254507009252833301757840648625735213525291074056242177676345598369832077840903130080836153458739170450840674266364093577266164434783960008831621442407382333339169445970234562479226036120098051493210304428286374594517769162928371112575477320693029147583305709806379028808910934840067456957409431823936997990982935535774129207985426608476023872176241665002159811146066726450306967065413043864449411485409268069009442310240478611932119905610499102611727442742343996632908137189931020330644532676133437312574501521076131577435681896547381962662178633607392825565418148083305745293470700461241692817357690457477164011429347827160212317404131480061963049377757591894776408480550993644447259906361652306006860409691404809027503246658233825373054672502676110429384312188335079463082815797398434039820267031679749177104417920951269626671443788715827810952870842681086670741793268603676929199844946100236801496414592787028495520630535236696823320652086645461365261869995621285242026192779029408840564945213232551040424040855405112869038254062480139709376288875310293311989605799230497972990930186421872091808086089880368303378183043657030541071655191213443887304330748254519048142236107421930573206084800855329725748499010159324401043330029650401933448233622282704057221155611927676442807603799052741533664848757284157932755397127872552030182635677730600057580065289866607883594236560710140354216220656700348509778052941560698020351619206193490668446401157808439806981435624773995080974157939051998568194076052148915135260434736610292065397300641043754265042643117729056668010310145570475006517234780654265152607906941826129513914437362851169609757633667866013240759985530521345901064538455202839882201185008851049499494300482761166906837229598379299101343442705536127025104275353186472874566985078381197860129943553744818351990952662885775159686253004156477535125740113812136987654629906298580698970580363756726178251949168540159045531023563515482116603007038554119599268876764839927505280861536090546929816469882795963874419594291222627740975380855854900518180851826840189664159128769545344051930455199111148397965942827593585110861762226251742090677485049341154327270199972085212352299331127319178755539608260749085619496248836729001958323870280422146639894530814360175574941622862670095420539729879035609653554578081996669436771684778852281783862220184846584032646931530800321387708006971616589356810913065939298793425163497641684134724123813648089714915653285795844299353986141300279908601495930291255653938614959477712950021992932081427345960040289932577772151084164210940114724994007042018341200137185412877816137585085339023220772949117005288488326410671189265932850488678009553147538406516811326462224187834860288267784372209919654754514054198333334593145166957955514618269257626452072972763076114933920643083713642993035833498700099031033629754781454413534303450817954816979873300283462380704628843776904503722463628157610956556307731458755641744385007967170844572290093305428078699274687722786991013293511662774513427831768841755752177984273178750548064765792309895640829274225374795706075026499527430504639711519026691015896036230228413261057540266949711244225924247120853932168715620581562603151521987797314483541064415624059002630212806305900852469884419643843304586566957029657183777800653771616023332148857555004232680602095033778528220713370295006175552367760294497027977249396705072158169160141107745967384430053909542262829555095303960454825597640454120284144031084365122605065687237605265377442904577431635427938852995141106189512281874727936320534660781546897278844347989841714613691274615173815406275817122991353825642822645586909870078861480402837291574647779885810418444213654047889292481003417008563390629208465830523312252967757491010133669008504598201088574713246580976718995931691503455174714891463600230728432359897849505392282598948727140043084679039247190116626112184353680826504618490324920969758456207180512939295470619313217188641478436726134334465971223013334316180158184749458155995232258926990053700089080911275294518951233612264267045160774585705397331772003997391673182203937075531353998936004879331476601553553513298656795305648134745821403649550148552236130048415216584851627902088961390545133516189816367822555530914036888565852077857786885499158870053002594170444909727088043428866729625931595726048364676083349779591493492916023143058634691710259237723250603301784141974354360895602939560876980446052354785534899910845592838458575345210272246661516213783833746128802641876815415938973868973120129069979985357243115282835954884465949251679288411153901067481560288167024472657369741459666064379707786076286870974021377535140417467272807778238380366509653874926386491948512603917523658735401191447130924356529772677092842833847138672300945753753659252668812568325348336190505540259212218012496165664054104331269232222247935363657442641619647028229024029249438381647811487800947819080109106864037431404771721587284851069278540599904442824952608868604825959650606930501858633564716590660586855756606319158141270202187474036127434812309094116172217646614899381063548863470917239793515212614820668855058993533492875347203833532592954381231582545791951821815763158484412581514356979185078882631617647159633008843993624420780375003581381822718834055683326304150618652167469254709378625655938333020638046366883523460538683897385720150816932892050912404367710584074285625448038351684389141976972382697095237043184557020150718863265947474939221533999615701590896840462391839863777851521625810257459452410457486621012072685762696659420523504585469599666113324112733883275360098681903337845550562890372503903720289171587887234701677560686879628954457429019957622476384254888871861469662827062846719680931240074868124158250215050652863841700817086584638010947537166060566899532384909364253944928832106927815170759445302716893562848563563915326598645712368052008394615014585506777739966563091453290355438768134365617999166923994378857070331733641109734533512858067650703267921383455038761762583476618947345029343555476726192996595309886074108602630628111720065422275419539826029868469919434999592653151742602842273914429691729084584724074803797883407053527811523621068089752717465299565968539820120545240060508496767507169498168060359058680191655226601620697318175011522544903310205078802121230266217525719131295607077145212603905769142102434830368558874780560709383703877346685363919555571672462846895888811229623168346806779066190577134660793617756260651839147629590047945189769895042873669325275109627112686450460173371575555153509723309224742905950542315671981943344796017498111430936072355082085573535634716834058054515672472271794335139087842693227514644774594661401320962727306631704084481613717944733126095138211193356795858699325123536211202864651450330447741635783636509770878061334899508934403348090838532560746983911500309605333050446878368352029242670726533092132138978803572268389019008106322668507826811302292522093839925589698102397564388908858861285143939137121955431536413335620730858233389498402552141579722123788078175734348918494475367854603785412316158913607755130657024759593766768846820128318442810231488033591113037649060794409183990956982671319628983114659796606817517853284118679526994987595145693380971038305664684286696171976182296265489903807115992393137730232475869082169200260943648537074607607361610546794422976205502107513021142606546042627707861142889811942842013887849057863427571787419222835567207372122308493742581081684376538525067402651995611634134702192249111448803830015632737342648071916670301832310087714103337048707812154238150760031903980977850984349425860795484785047068492814942172284005367511579450836084316327139749724805245262054722519732635530023539226040268290357282425143970155601505618977992920309997097541973669178769259964909909410912474303600552028199007465734102732070145886555351458125821970881839819453433639859313987837356232442892090266296468061421982239113623886255247783146349989269951686016228513068753783837403356866229507375741009446539123529878912208955333927594358117408436319076795472950893976400724613153563553418839142239443869378476529554262989380746799841241007203856686791468372826704561354742988758385095688734468195432115673932626940280728025009374742706112636712329734092142132439219524139000477654360186595017566615094686549540278360524213904217203507223751529711296617795667630894942134830802918994990907150072712626971639966327422721502389003783741492129147683203015331345502016891060760063042758204563913852580085910390285964270226338072128041602207032998449162913667247723115359723391540458144592191908410207649234750460273956272031563750065391836782838051154311316041384261527776369390691405666129503174582495778241122962736093588391664378188978777616898270691391336753687503137345861432113358108344838730656337580483715336855962355090641556230683448127981053600767094158771451041815662589641661886430830215334745322663245380060224561669919860624420931907942028114170530218222499512998716077532122251664004969826679843113928966323903517377390190615132674480962743220256992922350856980668226061991935571110555476971532682464935106411251321574508734012061720323344605789083124390242277557260520191818674155644384559988250222041501767776468896304549912790825810551223080040890161862267979172840237945438058142930616298005568740996376413213742261200773282451976962699732190102538354691814939673804527377739531789042328280734985241473429802161734646001983251966870292168462321303971442549122818208438931419653929673802532720744772047869330574567813464366926028134980812389888608969207430308524819788517498166644715850790692768018297947452234312949094531122318792496522194450662202499103030466161523881440215123683897653917734008549373025372293943018384072761245565207369772021161017060916018325340134927538717409878541797259101165483719485416738549895601549542969005586495764923487009742898959216156699509367451663243398392252655300827602507393395798625030228549905957052281770075305972673792872111301339153528516560519825203964108627484117600616913967722975609278523319893232879091683133931040723210644808521644388796930403598931914469996567989884630142391947419402060982579073371502687759117350779161807945057504466651438488294934558362198903195473450515775453393477215938103613660318513247844974689513085155511208967035944468796666776819821016331637278769133831737034491604309780057533883121455938674474824988721126688778759805486626565092185418443835569200239373062162252749249103837795520405428392573020215452136627668894027623524526458306641614188604859883359043516532028903935069217074084886261136244357596697383726311736345722058796721452672567799283959027467408156118146409426365225899639187007434144529056491713678540700010473483479488682671270929051103947340924633151605888677583529802595690959591184839994214650152933069362861330976400025004092521897567606485557688627273398725553535211327359390682697990601943490287755710197065089245275564158556244199703580218307614986626042830424151090528087379055775570127772601780797235110070335360026705811941632531309634426129673795823140334243096377980352480513238025209400700279103743305979321021417792259699630895528306977239682957114039990849452706973417711744586610432189887795233780831080661803288769989105998998885368515252604823344823754055295659414783514458033031690779171926833103334077872306904144011791810295233020002283710068675796395347432470380893471908511911377979966935453405899103162711982937088943637113960363303752857154155967629330231599462310735119547489466293524059122101555711282693246645274179242738178552818134762806472525381595104593435854424733079621993165727926883975948162012698995400651956716908955560616861159636145021434938349249702883159448150497654912782646940226446351591374245189216196158027326978764727328405996150391119856029030790895811832558016668364588908552070241464239370456482678580305967479567832604758147139046795277767854153236171798517828400336044522957310336763685504923836880215029072223619841126568271867592333166843355722977299416029958258139238181498396176739230655560664974239074272618922758477275936455319869631875232437266502145337333685486850998323650044410449250929003404975166025454261873830933179322229678334153313758702243098596217634759011441370397292653825431901516175443471073445256008947996520448049859825529707359357873882768403876543182218837281847466156875513204098354138415321022159495751561347162668965522344335346897935241595978581782417023057636586013212301024355747195931263034073516987740919350847901083061170129668858444814894214766145721293776836861535998309516790490884405019243148378677737199848241987984987798733725762163943121303442430747398283188681093694806456052768892079559075254338093411403643167218215978016734226397160855775362013405842908654655229500342275675818072743488160990305534210152600103257641403339990183277558615929168725477039078742445997155391386528490962269894671590434482741043651176346597360437789984843391713844462364938439815656182679348770447787852251130299897536015115715567258845199954726981466811274465987303814076931653869229979721209461341877836618703491376484948433717092533083429547381651175360735044329777700453723727586410247123419173040685396371406375392932491345960753826380193069998394265353689268231335869040113049863728280092292217609103350963504976821260648965835411063832706767022633353290695050404203342569251553356058256518851484097511081191167705422625502707572964008327393444727825477816991823393705112839432994761604252162915699522678168983529488415157911847004121978595454354005664969946200460550927583214153161810407622637127265438972493065822632075068360585083668175265447354030061009234078142836739176206850197215108951851535605791591065749878671098290272499625564181460682355669483092586140457682412476068992303304536413325230373494156846638895848898210566284645882114481205323775486792783010484181982914690414155762039787072653651866106359395221042567701641519113492913674727529318092723796588063067566124119160730922005474204229639572709791535207384815405723531403428388114998884786942475801409363858402071693477332096999014147496467635197853360402033291614332059789198690712238986494903260278357960060082952003101255746227515923829178568090677954085871373007625429120070053187006241827211661237826676485521632070324698116017716267605486524406927860044664752458455404384776131003743725069739660532389510369781094202555441358674734066583484464885841156630333945756887660591881094061719507889443587305808416219302473390976461186552695340827496357994077115846284427139561057555738829592122205487017594256526161163788656907214646677307640846822048674477154891225804343651325168986158973745695587740952809122291779919139826551125816710828862835605462847755434767471434997049755638039246183047258393795851678209116924041432580574148946605383059328210275461731068106213625506478530685520704655855997979771391091303608645880339744181377234235114373026112134288783658700481264045183469015362888851183435831235434119921614859633965467551079902464276321366489363053973059647463865736957433431327499872809268483484615800436579686692936449985951217250067455152459323595709789359637367904876265212403407966381118846240245447753044734611387895581915211219481753315827504395735924877407856356227112869733857027455956750025584073418796838782816673196044181119013109482213266531718414217314938311745501064775272142323157665215946666768033816771863821293513897761070104377331950303551384151909611775292384229329423574255957945165066112998181697538643785943330828083083630906553979429435232078150434842048074860867505596327998577865821068604214590572234425855700168458194945964596297599425671272498617378439442619212385051534159265735702457753196717022032876982518792721634792245414669751003359241631458618305803378091525968001092149900741343492372381565723704980514980962218517609810419343453129693103276877461050279442129842392450318850210221734617076578583679879231273656531830008244791360497458222158014475696165953619160305007163927061953320590565467203058628360884947731664226401838643812953768719556006350163418694483902255555249390019580689463994984697218317785441676966692234438670497011912163140766704414056540466564138787966841768744240049795011449353328677464429663426182046710377013440772786380309091907843633809718336309299708931563553837982310630782749557886145977061170935829991670787119649194782526077941719995233136613596241731393303267970207267383089835099850405580963870932769810909053712418719318541718985745554532310883941762395387337955741384573774330394005390616328181317622901960494696274833516370335733155525825793363627399626605879164744749575865353047419015444771346658452508724581897634837213432021992472471497510098296540840456548668615383456935013188228298153496201488655166100911881292927941556603125069791916650120158884718172557109736745963527644687504275540783745842634853763061114479985944703597148694133647149511220060544841623447624137659641828136627577797998795934891065174110376535711446981107726516324243217380897512984851546214016072278450170945459783691466824225040880614712141164066572659861198812529582724955392137334427874479507878575227932083013231586085432512770836743884785918429341342262721352923366816275678400405794037151020372330975311093808574640079100174664793218108077560367827885111216949846963456677327086672323140161706701231471191830857604645243139355979819236803571621111743545478669015562389059328596709027450191799555252935756606572881127687587497959317879637789056643539910754324629425241278867106173826343329764486625316227148686489079964284621527335090187190445253743326615051132232999107588159508792919912477249912239260960455585476373063642317570148305341672066755138404182890601633282488266044845783216058165648060747423804984124349571561391735681304482399969865588415749421729017100344251056849999234946587791891934818954097325365295869538050513286696955790284966586202709414907677944720790931924357140420373202661647836536686738468944571234955799982310863203996117775445124531149308375236539918123824537265516489669397646365635064742508037139702405194962449385973506106053523908647861122475833979141278416668893024839590701332339104722591537638091042282622252091948410301210845109945610371013756266481697791832273252776314578631612399210405668624127889364077700571854835224319872321242160133539562882584037204910253130845234923336401581165093669368535375506806779102631607500806177041127075248662322913553340084020142652960175916132970967346146661335827949888239691610858036886193838544361755024505816423859102936653234795643844101251986536478865402863568267026183320812115234380942194151562173933823869662270640693248213984554770124487467020943909995212990934585253187925640875060240730917981343208095070006376317660467163130700401091837435076827582897168570930735027062569417277851395936425702808507503754229324089213538624550800169490537308327484246324877956803159479827102024335053237007675370696389652034062974523461605003318648656218783314174328325683500281030508537954014300457631802216845513346944295293273283933775903755991767059795849526593863656685103309724347277700091793774629121549938121261566954492363498779391758721167905051494916069926352633062025058273030004643793617912242573238131214738798228352731205494326898564842660604791606240890917449733922637429797740115606938897964702531236685106223580984278770302570669479001678453864639170081128093652021264569493478511225361852673807722260687160874823194993475193648163537870146493481609960118990830342567291263851949012246614605064487672856213550883683873052487445133252526425761121347723440623172836229491162613879806496463558333661285687941602129525706299733283847412245326649537396341283412562875378480083563862195828966688947444642245695136193518912004203331132749044215751711673661353692449435005291933059235392984817872838423250687271743479105180813634398208572118169065398381781171119877854356685427789237124671003862800330916806418304845975215732434543891196800382460424071655226348000628622199348179786225940956342869954566754625591757365484849859599747819693581404628511232436175807163670059543218784079407153718409849924171769955501667409408416937468679127428035644810410882421322933365241225812305749680863796398813285447583126500751135470296728060196160263978506872106401519988623137873769733235567531818003958093673138523107370297563720421270511428598160116816316480119435435380660109998730091988739632178487740353386436034794796925002955317723693184227460554418529120953189977726386864217412476341247738430058071377491058098761508375794210311177169871276680864228090190841462920339969666326419457130655894749886402286028608171855455552058473346339537637207342124050504091446236531212833079461656865599425750374040696810452302149160461117435515578029578517266494613752106266683614358150813424363280277030395149518366872992851277014075479411845744637080802748292067080112033167219075033468311372982105868614962760352683881784850931748369808547676442611185069600295885378586813896010484657849780028803890382617862804850114891269440604729345442835440361528562299118947354569664528607539273698138991503753832906015343902798809927417922952041205935697370777945805340209584714245851227534316115717360650952591753454128661141721745336765865473397385991405057782447281458197983778055892654927393349475941144131272687690266064278998628285128263867418456826983941798808902463232035003153595263491847949304966268440347194518839114900310850256310593545133315371748786645812190299480723233476157914455998521255057724681548052134773701789502520077694875159584490180612614274065552186140894172622520169638902911028446386703787309341645395687199158467032962991167628019753703854266539433345261451817791337986511806241739440830728262560560039510160156936686004551497343528461889653084500048962088109567149844672720520386928628139345393362637573875470611867218598517717124035055571489822725223768080900757075129402755751159066382762561812153357411544993904632770010923147149005058366763455097039922623063319408951323275285157180225165944078318639422742273983287279807653659058221161257372186796366048217732954925684943560467872491146761567905798007229548500719731357299148819242294050096566738424878440655195157875756914782632761843356729234073113793287983991777592693973031562766726640837286418037730936769273862753490053830046116450987209056898530040816477374591209192456919572260325496423795273690685435292880823983878565193391170176422281826755121254577201832883057091706685497113840237651937961717622858837707094020594405512038084815842216883012942133653832029019668305006242985253924413721461586647347246333068198144377044233284301356475101998902072786856747008107319067041496578176212016139493327456064939832114969732936661803692726820009345588333720707824947446591036227406170299965689297116584441094200037188171968470086588614698537178277884279765620511061389700139779465521341193887806944520792855808740897412994728836459275043797373297817964179294219574842956000028621057474957404644431515939527288438276050063034186523517598693834307863826756660494444021300864906021801377939135837168888232231747676269206139337632571004675263871285803761849901775327864946511021692821503674735917874696809299903858213831423315461771978814910880030748510340955487407954791261342621290345701127842019389555227166593980838412233689102793401328996683637003166553876157364910075244596830604550852561416970074754327254852161881307144198463128715975477310752255219677771303502641775153907992027774415857550096256175763945574717676841333105975871972615987465961424567825405491493861649646706723984778492606463578102477589527576404137669090549415689372016722320506867341733882029702203427442563199889115291588376316129550778134850261283633763714180846753559731115678141636832940309577534161770027995580901076116410867001953936113516189909865029215401900067984442251620179222636143788134494894582933420908661877697340607669630013503960940428837441585119731172607152295038376321171987271844199279050569961349772190005042118100991482466027150816293695585642166818227963560052739254723397760803884612772767203709846565246364551944506371614823677827659013779711222975926860484064207084882042358483899119853939126975440775875738753552255939634431043300445299725085081785292980108962259508711404583633127036199715558895390203390601061670550621939220829013506974097791376921165527246781740488479495235615514584117775929861654261243367130373076248928146216603929672200438691094809568407742324130958892502144178901704368856390198043163503973683235236839107685702838913263582019072360068122391249089610621717159635485995829480993589966330403019237593603642512879191116272812782809130227250975436103512805242569599950746427588494934832115717678062565986487216212120414268728947084741655849250865004385704989804108415292581623156915133605899852523762300149084166333395843067734549298387570708413127838519705560459650472004650466662614829316271924556458976669964603500141599822545647576321933652619014375195825250330362792240669633698630503626309273738851935151893366606083298075182771979754823016606446776710278088483864393898737052831223064499080739321583539934214283317460051957993333867183612502479053704616352867952691457205442835146508538387428483501899317154899847981112295473809346180550579690965382423775673764888403501999204000493653365655129160405619458387407407170476035932288512634479642531072255798813580823623809005101194182892424894984617717538896109431114949159238230766875252705866678827466366783168780528463796549151364689414148620309458568758129814093564874281061539394351207776025657982649518261077627712888275884163285100819180539356358574265611276433699174248974509669268621227152020893501749607817250765654355190254718197526242719230569986197145214711989525098370041825922772927402359411282385560705453035503400217174627180709095883251282029775895786107117107141119697797354423329309340426796736286936187591809931853459811509599751641273588532679680926519400370845287044551405805268881414398829064358924631721692580503628984562161110958469087728892640213800301718287218336399191558384648134354352012845345372198041194568128309801777300874670642451093879265401732930273773771486078112722084228713990207581061468206105407727907959653363281991056258666572338083798904425035517895368784575293939052993905195842154684278893278041995588687043570977690262081461820695778110650703547916610861777208163402990773330471799620257377698589585890943111091507260844321301968750057409694323163862715411079273377110330808638137080951421110040562806773640958681909850253935195186498465667493392037289165554595631385143343113157676801386823776333127588097666330910822048628263464604307896815997198867789833060241602427120946154340740068467830539108745234116186672287597479504437901532395356852107138194836563848978212734632727600155389266731518772233236422628777296184455359594898252708231648549809474875263520392699470354988181924604601984935429320801196346678603149983630536730730033941165424037804876033354336804712889476509573192058896255998423854275221054842918453855797445513684043113200901102059168467531771693370189978986847079267772343118553494205294146142464457566477559529461105890207929410443616888867633648695529636817197006935094667920581175949507551381778249504775802472659059957161311301412775876260398431191775918807324497421951717141917829954639324822963229415397056638843253457196987240960220018264823707056722946862643058854247646267171378758292932261998711445439283745385610859803953895364891790626944398937401232635157828043409152016964189081052267612626165985882116040474064933131296915960837066689182431974224053042854687025930603918833434932188506372957759523839498269725953481700822109019125120507996294892503468463188936838372106091559997893458299457926772983387319998582273807351191571353137578783047068428285548685892107991212639078285508564271317931353188606044143128744524400809693992269399069437842210784224254899595907578514317385157770687694326623678881210999862966627581351951710152442136001420827885757469658523989540198629319775305093177943455208258973001245322808974662246213879821769066704545559803996476185341509679170627944422232018742751257928358764211410278291788978370089339581703323968629914964193244503299411558707894191854393693862113742631913237621736714557665880035663901311499537524140978471238694818880882750945903213228891466410001320133940138086599904120529734826223036728706578595238933217618493145701638638163937594860657405346420807862029556047349696216636236379849744249937669448905475001556170664979874433720906339081692136359407482160835040115262870986866624958595234971492870462025184255621436968566126913664276203424131338577237932660826914635394282470526699528908096148535924126996597610281829881977868557819436278324561444626028669010753565524415038229150192219707984666009379812136061627849644431969834077861198500066988308931063640904339928159384488093098865512007472424333582216270414200940261239795452240231497353544381018737531526319903932150414008841134656724401669194521828219426332883809539552914011190765104322975023414351697680696473813387067542882282494207468210755282682637471484099854427405542585577334717387057550792750583367812030166476398103504804340589610502114479810539829676904172265759848398349684709196196301831658870490736759553241625799725764381353825144058218997333858076097783766581929321674273079414606387459245255596425359744864394850469871665193984672822622888511938335325077304391509825161804659760321967923326278920700331199636707756833722292955042669205346395106549040362430790295971877065298719457767041033825172408206821112093015246164916723038081588419508090109172150465601649046205332356719441067261730135576558819905532765919263654003021282670398566240207784587190465618765097429647459002618560879803149438376721145704052149716743550333189175706410007439082991592887715702492718123809069724014459383590347509908455177953889703563001011749895480631713011673053323371185323148989514646022783862963274039453447951900446287136310537296988122537297210679391480605862835562510615235530139903801853602149420790677590093034547671888000230586356170137096313830644264569287164966760178711776266430928672347079174796393414712371157817830237040628791195882206129094936709680671096662507284110262503009687259617869750325279051224357452264057709223635266258644063312470314810839106413869341950659894270223832746716809066435213608877948063382385536497103664030947636412670489112250221534593017957863387921066936968855508172931078997829685391721928142585848572085361047566548632935149493041534831438940976881481023028161411563767538393114519291539014510841427888385287762483048222263835965427728438819734702311486383004639279563607060456447769926846660996011001620504939647383570098882706326346487912564229995123130370317429945837673560891324921757714360419040998038294862345160255004655482294014560758727316355855670873624085636167106555505938745441134455043841986801618949757027464692250377553863191977134335236927349667797905729600374294221990689639823902227220078376696852951359507742075620119342862426386445465943623331460179417825945100288854080629335925651729333032213944911655093940710369554463024158853323120221409914090696905584403826839802616771631247104910111123644142934293863166082427578037415119214357974743165366866140369043590560867990642807266823844713074723237688900691829871586139544446288585527385566156811687347044088205787177808193612830805864811897468523622241957380721326455788334529132339964389685547220961064421647680404572991354844527673676818895360070217672393768810532818592478301915102052586716968372672950435600135202012564162035619759274403518284927114476749239913764225677065055692601550655064923954654027115293612616153242519007422110890738916110250052945857726283516487617657171976859214712815633283532922810553816774894976264304671870337936056823736584243096883080294190579800380459636609000875487835553593754885364075610464037223629424861979208202114674701856602875821524458502134602688840017830483285788844757135425134825995666494871242207567423382133558627478077866105692065989655872553312408489952106785242513550971997748328046074023283799235877924247247823662571425907811392168544966141185240199253542002679068892661872946454757535291103334430435619765501571126815067595049273789886647782334981862781522753429031527602656732340021187449409833321158112230640536116745149900915492338567475062032677741819902506295336474958463324451052078501066967601714569539195440340921550911363332198456748220433805855692699272990284681195208466006420870051423450787519599937513017830455949646952916420451747147464657334591561315815365399848077403707638266407463152467403398646164899777858570441977288658906024236636034679998361380848717415635159193036645333864898677886392542674505172235940140686083892080541813355731591025537128922373745035802695086781441127819846350836231381951392491655908512438817732749928914582114163195747164676565290756700579033161507463797469220922856345378818974829714666263740610633596169009343754699602759635606110107123668048997472008597451090620638309304731883441405125784985899540309397660017047505351213463591414903783948427680575503213973881812460642097756029256721474601077614322882542577089875401578583892757051053889293650351750870199454570864366415512931593113421548783351229288071085060066924149127337175413165571080809124874117132177369216869264820580310078643645916562165601752941507252632283443115060360452446148004261288543345940541177974521774152820710121147362855624371419250135946625954529732172519849372737937631691015573019318779976522056362905561769301748286014652273471797624791012007465730173848916138218396460971554568070841267009554476399780489362960012278676879098909104309668091148443352955639730785495891833936669929597197281817016909976401299071800393411802211872035675623780046935232787336749789139267151815126818486474867920243570709007122773867841266258644720641793754018754183137278592131286780686887384629594862074418987535047838881042310179989282231393863087558906479743936726374732036050263341834551114363776141729200026331731810739821144177067579390081824844257010184679150116489712558739920878946528326390742287018002823785460185700750267614477683046230285948742922183552748855064742714599402924897185831992667875543893336005229339956150583463892600414473902885480086795311726142338999436921095022713933516139662208162531281564228835425817075702363373999497489056230379935816718968752134543716327308266516943565539003547118691044188719926888296743466659995459422572832355073214206408816348875683531685643242911878409090611857000737938132315118015954006707431026738570984556806613861362902316275189330701518248638616655526647070414145934609436278872215269748902962294742007679782943050000909586906419465899722616665649767784733001022162419801841807912092434774120736826866984307585139805402170058923011073431545942634248219780998212988812744790500228087719038066235926336561110569388024258657333692013220615829686128552019962622692848222887131747888417921484161350848889963092399132527815016772052333048167887502493115925893749900811208902329519654182859083332054441981056873908671111529123530893325172890828808425120533812761712578065346716059009131565433748555797184496996587719912856704577404904702377451015350562928168305661768301565169936125715625296809119020633310228658049396038699649194940121906860053422894082922575666008562094922898112504824307453530085426332741435821177666349301374362219530697000049824068861117966612856695995201402259614161174927701590080665291365815091395490859437671744880747177132733658243102915238330602688609785738911313274217936194020187056756615324021482372940252148029522470158322973896853904371472497059433428359213730928488195178948687974051836931196809620600600263033218885817427232064451812859993950131384285428354854687429381941749973651686642483064616012808899222055947290477008884084119735569769869835544401508334573860207398380502620160407584025517854663933815338919181522489747034575010110034470125839033305183423340195356006081633044301261603551271250004444593382975052922922372720311966749162575136119880038583877914884118903172056980536865646572847600495602816194010438684788253642480127184808210224731504780445128032909545462191548066787725433328972871784346999025320905766523543609902575647131830922394670367417108490860097197545350550158613062742686500719775222735895748529705171380683651327044320119453117337255092345700108444189760973811362896290513772459113122417328620704782560199825905597844899545678865783869372105273475350826017781095496497582600466157471193842237141899906009626732255473608668302175977159601533356323989443000958465752213819307797069460344450984078897417682599468928576682640088308222447179240407547271777035048357266355831585319906534198121285620113944079389978587638374287033885736723654548831813145290959676114607479170045943929822584905848606943377780918897143281627894671820399702530645421303344843009599791174610885852854392464534358567835415770593346501968046474730608257946775710392809049352107745961110869894603878782188629637936095083712637382939915581217031424278397501079492964110576519951555203719371966134997011445516767485679121530986395880537710655793536738891159608385370094549515812459371435734809480125243734966221249415106214910655731770103309149350771246835900332238480346133593236610251514456609821531182683056581258390942526013949475689072857280183565990974793309317875726711375125226914193056922414955870695965426315577093810227427421713749187316249267428983770859062517955994099658802510827341562566995795103031289733592602714640403061953953533603619247526912488695534945224892974036285509082697777649084169378502910449955888110214546033995766671171954979303519081834351455875642961963532498281400035090503910022202193574925486247834803620918184636869692133111407535745959362593618979518897765770182902864002314546809947001620717826486075602518243874608414685164047155916869831090416205358981206390431586594748722098535900257768286003255714482386892415992804964563803399951679278003426177298346397831610282594388548546556494378194203665212583638554352333692934813441190601455975496235636377293848032353962223015297709268118666745916999331383533949371971758024682748237379041871117128204938144244727871455533096895862016255592404215652203253590702644546918723816765637915281531196680113561830662774693798169880538269705650797533092035385962144378660614191369354451141053780181539744957085021851995043511817882691741444503857856449834276950019914072616467876755542520063030135591455245346113241281939699390394354998369965422783451150358962502618400948114111323341012553517179188323018164842615625186741974391985673473508479306520792030274411299448309952803337049584659072628343219829626197747355220709126046641919916332147870867465854117472688219421591309846653575760450480164165524482788561576619908399000774671172873442733475673689605551313271646361978086090693888054182250884965414667193509918551397358841187116012755103575279238797836133734481509726814407859690964500708477978402890720892182496348037928956088286628179299974600746984065838887132599684827379486867456155704699817780174301726201819240485113912079140135098078104349697800087313463419015671740350903867623597682195920785283751435183602349228647090392510196247489162539519023702364018718112664213498835393270201285681868714427166705770967919062542882122970241604417481027701930185974624677746638255526166395557221340281794520171830515697923234378429700950392444641995718469733875072350434276505531613305914363242609995982979662260411061874671536527676909319311035843133646410821776260972645326887572111277952458776898377529924914948259685230053838601155180115071382498427461094568599345972894387001933538079955074951821522120410063755955105949473473450924971366556325507672461623432866982161101409608448781421856334872089738034592988910530338957810459846562382609080345378569200764578690848487319277104631433866739023255799692625087274039080762016171053644626581235452806741107845327553372055148174343576157815746512489650729651702986246845475830345926546064290415762740673668805853871347488762516647095403295995036840967322278495483469065505394973653344555946029799608056527248841910837659254100933145481598260282981561016648053301549625355529347525987893526690198440792869768964829295324262201385661544101185900714467743429255661602768531994730302501815345813577191796843383804247251901939957146118531971098528628586956461261057627238585088377236841309828007143561138440300718866935141078704175066095479350635611839431204318335871090141257024221052387072437266613643833691568931760913345734956477529217928586254417708824000282396789425543309144729308556833037651671400827599426922037457528919568856356975213423530126007765526621910334088888449922438765541174824866248303968454678338543080026953873275814904375872153027776954414267601150203051756749290722713483056132154055774174594708850020878256963493522773869994253199211132924349011955806296776471984005875786934370458126135245547663870227991455893351322900599137686861653761973004537212986541247550771559857388689044563822566464766525917301870822275046878056549690642926004834653656463559306255959877428284671253938045074392784511063781156907126622593934020978766119104477787450887243858043538136915857436581107355558462581606471660889623944800539515875769016496342526277207861465028046096415511532776733232347920875916655291442093792153199056091373370588837152769327609756020630887691549439890692726248631671472607922968657922249411120426886881502032025801380860809174716517782347504989311854403722801884469551108462147063623769734179150229543511334191548285428197049333184532397519810762289318099245906358352483586043877356815352701939109434178050474615901500590690079518880229499989540027965846781458791466730303978172055911027686065992038749532944778816951015617092235358077132904692959605784276981269364413810743649329885055393437764382385574409276984102764645594257151117439297004455818082944617769838221376363346359245956637892931356581916991392427626139924912524180409293696657932017723543667162497427861954276600506454817963031118540211147870683965658672767335350754896084047258294535890854997503352713831072157789463131876575421546067635940354876070376600421618877449799251346589159736891473293474325872764256782486360354848552930403137141324093039453112791231839618421140295894877177867351458854941053535456014258201426454384478103994396494808488817455656164519098429502458356739673034767117473855820791418225617189460398961633557868129259179279919972527429877409263681146181882750202554818143798405889868609512220258603080001242587221811647673109286074836297178019877684705030616385180773049237347581660795274366906104801314154182381132859771499529910842262779145905706901225867198982751988394172800872667754681202934944662803236438030184637766968153643822246857912315378949532797516504979894852115625888717531432632045893342122397975104731890833719990144679811347857698022541767458211689737991160304479255563601020274412087928381849359012754779148956406174869152729389940944530470570112767204475575141879744846070138240272330538927711413156079767336635355527476424806103711279308751907572006983607652586086108301804538548336589282276066461668157357634142354451537266592881123797008041057232691198633903975892327711893358509412699521185324234543270156026570089209718980002970352731290408085713587788522576964895234068337158314008211667243810073278023565411238475452249431325242013021378110408757132076096573683129521490694043419195614451343736687398585660009419969961338632117986718999971947828415856752260612697053594266480901676901025988532249541444010478823046898607145331934314544351426566713797517691163800177598094182726744204751192403514046738360307433824368587011754570963480921709682508341403950556248810501398221462299899009026710065524591496518828224253012453437578366121403409304469809600986856856155628292298907248965168063899905829242461426176889847382075162726514759564829339070531499665452601768630870720996234407710587734568270493432925058222025079842876075851440668432901419942141073880066197901853350893404224444082263207324110584430445808179814990015409174699758299291596324226341722872893647212460438201952923380942975141218031492784975743547500986390825799887705295227115833014757572094821010316056341524535750777843783713667256553846447426504821781961908085195060624669644534435797280717112955974347194968926635155341778402915096734812020945210081383808647714314761147898493147209485209148661068804306340600555301042526684667258752907272469834215694737461209138865976677127035443165170201543978640783701900605040860778582462701049386320636101834326138930360363014128918317191861590377900252063543937287527698031057952102808270135620296125183355448087284403948633087374723305082797104553360861633003169266410684157677496331415254414258447725822631118188502067189446277249135294816791612019744023141493730245015107170892373852541624241960198891420152374732215460030050821106242388915176334123313195973290166435933857686021552607181177959372817871012329794489041170058952317272610364605133852412538975785403785418193024841205569557200081984656259309943673749865195105809564573059370698403104686295665736308376157018978209548554203957600199396719815510867739171547875747732928224734274521052520393840915348928763382388761541243817708267776712390187073684532839302110979495284157513045992240390109492522783980599755723928953981549387411463668211131667354780150024507121755874658500287371099541709403400064769452730501473738898337973761222217864059072179778817403529563853243007954691874699734171035704843274797805744335383216862192629019126325622044954489847215209675415783722020058414602434789806311704693312901803564366164278698499094317353208111517886930757372214227975018936225614864728346143546931155034391142106953933857445616297582676726899566997134415999891523159473707411625472104518466357034971352334078793596124032481031693053328412487996447305915249076101847680464952704588258938931627152572156424977793507989224219234660819994727467870050344913493386917354723518522965645214704540291863582122053325454123837157639808419320351964061477535730355636740273129236802752236711148381765112124270659034027176337592034809590835651637934327692454766406964943019710217439325235191813513624547308585850048560013571028373961699860191611551384827502667475868542528891749851956127874256503507405725880098889980522439779617022461602358952365470317062209479107951875724254567334875202061552500553312924531375038451561562124887618712357304450282330522290600584664528763197998778258152115877533129493311867695098650824420491762766222054316219319953101096104848187632799613892675546587545998053905571723898248842967362323020916917205658111661748267780212371497835892477343351792143612188826271735913916932864030364500032671266357344576229032265014938266537723192686826925468757159564966317309926394506503945520017033242502561667480361469116966431460192790918644673320511890200760068180564061710708563758381863293010168121331718784246392041497522429868124407268939820720283633223359936728536748700827324264815934900851977984929308553477189494980400409128795278712010975413195896816266738338295775269957593627316043430215784160855280004107801327043498821239069835577974542802983473005082038472152840516203962649808622320896494324930214793033893033837165842886151690867008750261564619824854224838517805890362266982570543697232616518125017211508104475418394126327582286987549154287948716966308195266116639673408651255163044667473315817426152044549359740080350829055935802931197999835908568412201172081431307095139221968414148169686968947722847588457652613966190890832063401794043011877011952684795561688895117319838269219011114693088255289644099074657386914973186913107626700333992285181246994069112897250438114627876732457294746340654517357430426421833271127006914686560173877589441677050427102185782400847012092044379124617978322808471638820440158609602418820381952514918912688920920804661494016480203545856905273318873115254761272540007602092393028767820787039666386681551799373921845798340054652336112053503498108079167414822505629958276253145675065974627421041411650048822130477932724870150634215350068101901490262071973684501143989859399140132645074676364633833895030787653492004510586443536626280427322308178344437050156421688417680127258964043864383945501075511020363468977256027189330825936042327111455674300673434031600969918189822835895470243608043406075228775703397434409292258603095084975344230094821169968779122870108007906251094727325410901328682952391878900897858253410296575100554912190016377226396981280237739806708655513772999590667376996224994912029395137944049060294829430570009327372275973548239067666371522352789461243691554344606567799317993365770048241870246125303765887026636102053872313763569880248140640971394551472314287914261462612527920201419134480185131084907756838088330933386063253717734400209516064812697821642842423231604915865010274202664351371619214756387965590054289707655113468537073894682656279851357483735692437585162334977163249342371816367685239113050232618157801624986339983799780608918523962202785395600489418521081496713054980892073175149742201805013476095584541957206261166072897781527078079058935457179065725945284461737611303980407313985897864278273914799925766843504980418820729208347579137156088484358061090152898806980775786921787822711084050927988358826105277139519604032093603590587445327797378073056700895792864299625454614382675553937573946763186699400164488207936447817367722177761587883953290391947496575604005560444488488766893118533637505696996738105288114109385550210079840629185544208516250259709235388153849595812308504759994477211161723368059827336441755028099299645417823010761325702324830841343752637361710016181460035871723203069221629092199499707476674894302699818809901486375732201362616344998424365814765188257549650777851720471575742850649859877929889162461511723453960308904684743825045046826394789233722529327042387060135103763655419464601537209725486233065472097566580808463848469461378024653268350926763141846843312002701932513754425518244684130219396752574914566586446600009097476233849424433555391148608984419389528651999582558255126911240366099246371781626802895563206936125403836931804550287275372800713528831277610928255393845551433176580947356307578846620635337478564608253577972980387757442114365166099073656771692554565984293143463823664582607543616419578334972591634571748387928564389882377479787817858825799580615745357963200644326815872488599531016851102851551918179370840970653239639573943250086795020784884208001652159149459044020214069871222952126748668938290056680902400158234916533655150933631888658996397572787870559809611108729893312809629635956889825127380291207162641995064685808193247283233818362182798911315907575113544551253002035329114156418300344471094222611224894081622229011446416751811982544430425095636309547251776632138795947910664844030014297220227695324806145025480104353236748515446955848586781719168748806739689841855551232388568886571176263304929698229896046700943127673684853663818208729921777431756471883583500885415229475059457158326105686509996967415936439545168881447220917556758125984254104138083799772135076453569396927379412678083951681606056291362794388538540473417534867042969119791774545724487788187613788052697208469222548436648003465104638424631985396705472977703514025415812327421235573120996871120927843136533077011115644481934102611097721662984231031296145737122450460713930504335495367031033744481056542386540134612012838789432577114607748448816209528527897483088544339017132593180156391262886812918043850681858174297628635051505803885993026077151233812337844469170848015566585178307293964462658601062221861636725243406343290466837795634819076933225601911579520200471388246043794183934265616478109088117253940370098816472969717929216095818040550237706035723695048086946561721871648231613530063583337942417730681389906416936553096917537112235577460912972226055194990345172026554891399009558328346817408431917170439140275642468764234728159430476139071703588435390225603254068954565214805195924340423877164451271622941114323325900869142592199419670094224001436593398539060027839445379799563059271018059290037591785879499495241296444910990204881912889293812049832678585511424266198373510487809672783776502048748218859669128371068331652881606969426144172320369362009378378555491914827343073592529133339058360746377783771060164834480339791745985702271383346771954072667400022366071541148562855939289876871551223071496388976725033812269227393815299749222940373548964752801827739409026006027449572299925812414836778679947280506809378061461818770781236428109386398252417962459230961627435091384297173003994293860990928490647827353319786228905765823736473816364659588372073072926946312703456009081822494785247295002390780409900060931730585393624612586358797644650534363622453743515995992459897044009057566499514052111024404683535308454823555829747389060075238373698664560120800437143089721084872498756429237343444793094418463113766362345095052206839269905442093375404432163783918975692063834985139667941404567361072833024160167895969333508656163108608372400693883317631911674776136867210916213646914545008529510599203775325831180876116068098628850948884903979309501426147410661174394837552272031099285690799828267277379752643672223082999251500421755892452584321918279616170234543190291223018326836712726710990014383132971820776314557501071885797996686516198865726695670087136282158696422081650350517357915683924918222282887230464912638539200186612691092933528066072941736567811253295223902249132785534236712796050330987497327367771732980935250019699716638348256892853263628786270523713127569152002924655331556384689143872331069713837014276457871408692491177795616389505946891760962189928112879488221093524083781735688604139328362596406459869680455252069989210540327031983490012944860898552816589738966970965320671819836404789312955702639550081749155062454619310210198479306034922938250481276702710947553530684799522282947649450282232128810005409981605074441006152080865132851442313778260138844583189914553953596412452757632576995942875420052910721225381098496496959848102399748665546818938203119175199316602397877526630985797829562305253284444846368949970523968263122724276865832835750971500850102809664338464832976593540125954375174740395832485863372255740960894385197500046264641806447035083804927919403446900916981348056803568737744588278016704053247646979478381383838639585225837857896217613537530423777855342027202637575078409337349460822628873096650984477537604958884628677317385680270767017313816642202035950384074030055503154884230064523269291038777015528234225251101222055590365832174471882493497722294430661596448947613146716162176796881732545561347106511204863143664149981348909731726187941128407732370639561069854558778864116761196667668437088639410185399997465220704559041278801517470286867072203329583470350065475874667080719351391029199895525953820846557628100332434642555899883367906229365886478822774641497352064588815073033457551983659287043746980206084981746861582455813013194454107822027221887168856602290008965868212068303448041996034234754171736986031201311334396979057686771925610510435870426233717822489037324508479613547887727524228577886034049940948378735780588854162595428036879292512710204198075048226137284399541821672442063511011649533101232957505325431862526505723949622890372995176315777754337672421060124647038096494306706725449633029562748360932322466142988095545600373786423966604405410199323112230417080762917910265386905722655213675576131462526490822563756222280432736102235137475061482267819422153208297936599205736196959656519119972072365600132390460123109925324375949872936084696505837135282036026454509104879055246890869703918155581679798408584717167835061905581894624125409167989754775089678128384724609738528867354785863518154507482834324575281997754698666676275230686652450703498341142037272970596731549200291627479926985390279839063835269165168078489166117279590053497261058826264472652352811112430290773183303793595590643289087563690654826103026244099825153886065374721625667820847558489615704510560250666959282783841440794362159573361116716736450539626587330495912331029214100731305845121929294084572989325623293547740173711629396745860718397114253354164905224368816756655825408120585777332605025881568320535950316490162487680042185502922652120142448996106811915251275091119828888837196661528412230493632736599522362242460547994287792461133683622952992678508639537113234830356342944085578245062127113352750405291055055540824277748539964080484832867541539275226621299901599342149057230913028380099145744270100174575446858796398709019730249063152030584301782762029828786431240290629614886913714515534796010008759172579761359168804981995891980608631210874748341627244026742044770806987731301657129169299995865785002070821845662402529126967617783206644010787712666371607683443720801313393852679740042535054150130272430399283772347073449873178819737368845023691061546856191076160538564036056533198358673589609423431625782562292485428761565131331312663414758008330094998987360453250913526941850177622426351259447219751970985368030490292840604835842546173622638781186815483677428493953618178049499150511012708045658089210101961465460621876491028376809130455068083378533804392570675897162649733134129302735898236108596745501402142989654562750442744737834345955214287697830194822768214468165246232751587142495475600426694363070660441194968672768548113827400465297194413903839758822540036825625794909276802378264218010220182437760627713953504828382385163862290325799953195850393098120628932793509208900197202275988083760856001139889373917264243522846929308689939914500261610739054720702669478791846232239948902178743729875044048484398559228008372170513811369113264566288942204319950302925236100179592622480952111484339382657098381574346978693432638421944243419637562379449426647114534818583150178420946508511598667584744948596938451439894358696895607094075104640552492262530784743807865661370892590868296081307848959381541174901495477092953671275116815961365278890007521909102782590990767986612321271607306830318741492578660604377269156947224259474227194832606752963565162184090418114851468346138802341422971755975893629646310837342815679961318080806135803001658838850667145009178643901124573244378082124336945102773593937626754819004676577873625627265642816816956661714461732209893565442043761506648918854501266332651676077897347886926079383981783744815162668481255804500562054536711070900101738091196226054179028162295568184940742473746163620626377235353794503075874939438750431617605675493324471893997038716536493428185533111552840738775320874728443858278889005294572907488566207941233819401351816527581166848526876566407942041745707184138022747324777318290174086768976049737976642130167933030028317836922672948228858448142461185993982488337764134370686427595091069350831427353663788529037604804381167421048348645438027897079516923401581400814934421539045894302630347612261592490385924153528199728849012761365238879970398112505763674652570846492260747567366815330564067351406306453490023699425201963363615649223702235550575968904750134812408271923268445606305877499243016851360937453560229634314408994083724232821203468961690332512453711647465883293534068448613748179371463811136577494081621860213394814772756773000914127701145096594254437689224850577818215619780849313021009098336345394054966847799382107630263887686243913518838851026334265166891904672438060013761268117266644169563858818181311834097509737348367365841224928838812167249430324212128522753181548897843610944153508062035571046409738068345831182346456439184347510492805922534299387851661074393021659460321308649521108958221034893314372050855517249568401593409016427910546371928274616999227414390012383151883344004575085882494016163490941789756768153673724689116265236314546911439953235621932936734078325848290814220240807624436090833359024284844028096692580573696085724747834482341825796294220530264103879515125789608789644784522347869502267147625546921455838017777745997787526593574230226511473174392384286153468346155443447926940570094692587589117480174642570583091631892629334747320830987848312637732378341532087862791241039921598112260608744800649782557799509316732773162448500717307563456516548010214682640759788525157016704208482551832150240636736285260785333296174616953856162826904126919648038807504429528914837508495344701569188202801000953435324507047253807663720703312163080036352596574230037670910517718249905703261138948773688682597797374767110982549898506951920255944502498803285753202508520274600693031711853011541010301135979128690651248338594160116348620383414983122638611853708340855157059185532040883909559069129961297188258650603671479501063843630244878164584822364154925350433528123990156745239346528778200401987691840710891372501421184633940912568726359064009028272694919761585770283168446353320646330273134182900929193186315407829999539917652639081692967673785184069620324930492002118298909486975473839211060837777027130319323720996992521543471015025625923421110282607914575809487259519928589658811340851906286032133816991985449752102352190129803044837562728538415328137227523532826012572667351854728225283588802933462868743745559963594501980130250303429562938064926477603022257861598343073594318188451283434400665800017789069584313355309079540640590802174526622508709028374210977397569651737367019315971134394351174797614635472924178289316294193807358554946312148380472902810863266965586265534906693614394641853528634808627726641669333655942808035205266831250043598079658917839996758554261586021700025301840405319665471001397963161231235398048613765687211743122286046130454527560649193746080219113223926662867133009082361771063345003386618450787622088809184947108474811066850826395352925188876711539347838254323628782011848339899520373241572850288933102478315941506487048228201566627636302158733113393471648622635196266496301892434656452593929926737514788850039244918672558748374287197536191367290133907182467546366210857596281333053664182872782688262183914743792096353410412256893852583159382299727949285081869639481561125056529161088645451715152602747020941549493224965133907423849875599684068245481228706200298057353305981124833792318863233986678429379547535061705821429959597570165084967267892301376092387350497488268194965169431708933656552750468444334893186682823809238211198095082115956101642006198776532496498111471659239910908856935030437146364668156047700334728610241645184887794541356530432477612940298546296339601107635930378411732461048586980409826687488946466209093223613198561252614730516086661697046595820746250957331444685447130278219473634327221851575956901996876876880270962378633197900036148303134427501593002432408970907406108724498022355995112420632142619173713396968493541634963823869925182880740060326792174807237549722201852710361642074728012284418784449460583936392862043526640049502009078263357040457328841350886390021911856820285102373036417093132664705987538984143829632901963403855997143821327785227737169711996973450417568366944093809479543516428614593347176829085215261663617896234434889929068290984773291520949279898415096176361872115692960744934645568139544110755931846712536348821174115081793534895216631910918626368803927565268400108722754765938797347668983380102208930507164304555263695921748394815304369927012096142724758494507992274549723406020830955205794563716762827151713642699114390765828432841505129892556725861792760941763009825844975913676080393355351769897236306861513942631087069313297596748764843284981383162851748342667673847143807638177228555474248165762958836998243698343443143528430347115811103241915547164277284734125737387085142499729989707818320602454374488198013475090945206936214380379403112174080487147048900310320258643408347023826069237812661608360340594344373087245275392760367180686269284540638154778324000925726818712791125488770691074522408819249105051343466964891006020834698474455464196030371767952437386115561295172500520549907220036899347072822703732008575325464224186262199145668069027786928607644889696354548329607064552710659750616902966062220635167215487866786799775105982693846659909540957465437285000199687747418690845654685493321323054183968616345204199494386280548760466430971426323494073059483182811005857440842265208993706816407553280418703476107118941511526755841459533858577431123906158997847264391313247216413046815599037251452658820725108468045394677504744834310084000571287387670906984499296954231291450024091785307946342175562760191921178419368400256310475871314882001926033773975829390168346362004758318418415624429185074855694136660570525227463505306184885177959552229346868688041444631260742094661180820133381588071485442796401241675232877095342462983378738858265284087954526544498044687497717794696073069224188398064882252810861087388045176763208139745147025795647875191414670273448878404881638287297308394428177074350493339935306645027896127567244031209508542986322743841749856522585956347887500532972772324938017872952644546399279614521194264315151561738111886873532565893100975025710962195146909025964253995116115551444484228135368247982121573951176413604638783336672551549634213004772777027289698109646617097900820328104133670479178269621656802680839132950892388519643814464335520926899233372858759759142289012810264918760975604802479174133668664301416308088006274397867919034013227507356056923944775219229592512150231791406145096503635962435950277356057186848459660285617611641481485628272203724981887412236868876447604078133545274628633522937499982824347146913603370073313368490796828315305617383337232967306387585300949510407260228670490572313040361451564801912706160714563766068481893708966809204550519899345766966014061260864631603838178516544317635541265621821282414884341050206647187074879485129325781185918574633998914443983709152730523568685016715333848105003049872597731315547644845181328114941106831510109023370834345379312790405854859279802610087471660999722485317487292291954353995795032082426115969485934183626258159904250847916424117640631839603490971576384784375095002467629261039671832383641028512559517671266171517576044387431588692275015274355295601942739248864223550405206923706916237994642122236964156833044726369777943295378410189227885192850598016317891978102577616756954951062571669286308466140632303571694275616963344497820668396365740792905837364917392587394519680640959067683634927619120289361794186076589823377548836424485548270938366218076030385401034894865917405599879746701272806736965977028416394104532598804570233498007293469509215200776175407167392963556918278269947485399477903857416552427419225781678676808547031398264058113197073096676519909500886600267456403914181114722023579991706302490442726560791375306555882107061894520309786746018422483504040701054778953178318404096727691635877632450974868448863275194813095279365545250424711404598991418510556161636794905301760843194698931296247648646621405194602235865181836675038852233506002316216817318903990339590559603552679405218028986861996032533932362566936246002840662755770109698644063748863647977393178969795960952508694179333769017705466212062120791296921534577620281229610120212395892019910937123937795629597364856768273991653550150876098688409099832634751875769508072543138548430066079487159827229915814032699265722793216962601807117119364983267591598947875347210455521459936695688556229720644489013040915062889568974463035814547478988432693889797021423984513139908659474993648450489428998440218804715709026287654217003111564109794149931712609390284945406001253713022782481559205173667605441886867581905174090938270613746001501217190155362512171891087160023160551078567068669391286188628950921173477742370052785176092804626114395098553751784386892344563866976971293771368125750563077442852807116905853183611181751821503419180973360044718724421808999026906857868128716229129697460746724966241317777698651680817789325604756314913408199587682550073701583189737758206876762019416359576630129589663200663838119613255022091940178099894134136150989734708297622139227101878644013672014425108599131146917505422600407487576939843313380876382626852928605732733243438770433074703750426430382473835136367061195421358744517802155636423426106163045858372777956636737985421466081999704367115791511247299833216136798442538393792266652032736749751053553422335554740027455304610012741841377338986699484918968268008910865783359489796137537381723588131938397430235697163602374021054895284788728001055156479728327385916638344357344070606235448705089954952205395493080059954331694674198909225272659136247015547791031884542094273861702035882027398283897310564013305304494772262053192075693657622541799565073861062220314649180600024749740133706387468837949839109574095649319923704133102712677500543873168497777022731017949770416551677763798937415830627015541324012164349796449996969471511761501587334830404232940982855422762393438926904373264271711095752428409246647626679493751882850538739405610399859585555167870312978188351460655815237111507946885082117336971991532345822535911891854836531225815421548510962019160131533914295779645472458751925734972227610818804779023240134603842096965352987365947372995678387455901758951232735044781811218450515255411170707106265475110565110395249919825651770398670723291702650678968728164825728333791504951205458738429754285082882405309041137606406348839665583168962881414997045526617746412841810010208251768371225938655299172644761377303601238115873556492448356899043117550609772485246184545887918770938489374789326257205119677807566385291908348366252158034459592574132993125705663988816275881397719231149787133075883062658316830451188073897657556387109112522281828386084430554792915017043487428572277994349424552410781925658663733547759011334404678839561018911183908564093082584173702114470070147934277215050882950301306149253871698723919810761986585746725574888208725360847015728838716313948554096628851366952026498381295034276382341324288423314569955903757990565085848847851961893686661446059433948039801644959969871954927995281903222920219673078023997173066855134298936356636651804730342905350343274121780550612204589249374203355835395310354800324539414060362397946190454139748516756936950088603519308045565634807552146499836606635382769273027065642911639437244578116903538467645674458603265375339459090681760616998857161146794652295039315107671222090735193564336195710742743057869148076988608037753678690702942731248406872826624025086595686179687996413240961394599771570401448613412315493127804448173833316476078362558463070034496207343598377065072635405040002915374783421707311360929305194050183123738216024814724999446439080073853621849445168659684405409352339952511743502323057684009263783717453501499144517249539570716657228939009227252897064769302780751795786256912767093597910333107007767254399804021514970699297753238791124240942862928556279547950481142225443407898859065019649652041166406250213702148208495863829901777328619441629145822338374013578801798498858341976774860747368636859949667583436569746899579287604194740011091654309469351827680706428608491371434583540170267984582041927584188028620744645772206316087858377279982076072529515547116273293279439855284514338872349527834858812047463307195010778226868758153646358955178792746862776214622749551673974187141650963264420736966985496069818316438377618858484270811281340347151353263778481571816131039826158044074966484798185512096883293518104666331551852498950030406412260558885969821240534523706216484891450415872700067942649133617085037158598786046022030780438666218522141364569861751086679663231527742395669505582795077016379913001420022864726700837275051001108185836822630988085603534784415046422366214357556993830735010652027704373903738892856435112632289162107395573165979522647988699728994923004851722154811788267444554735199798378011255186624545638513655130429504856867818658260264433397779047672979685904064841779005716294223625892354308632698058357402431333125782201592180442029190363893412248463427590702063581047124888703201435769743093696254673370095798081967779185872997925847958516721278949290991390629298439091050067820571806213508656231681799692106070888784293104308095609832331053908039559575273807368476289969923946305848178101666202721205127379495550391196639500095850004414066033770582537822527369990335585117627510205998064669168490605609770068016570660140737468629407166178451117408410587590158053751779931397155720353716213922079085306012847693171031716993936365677350729587139528975890145626662816111439467715299037835598431845042775620989419415424027640980649839000351171317046528997051696994690074031745575732015033976925158670382966332223897890081708134930007590335350876250832930198397718054808755072556407570849097612177844615751843954839924397457955342145996791233550689306014042164211490026996214742130707477913873043840725387917941608355710442085295095337993851581245135818184570725858023743777382470486191930480769295186395680984754849550234023501421088256781997603268534275473811948239623609606003087541729755029219219310278938223844657092056252755431923320075643352362156688217529964586698959565477317539845224869353561034149835316186827318221779169984415347828592217604676473700307950179305392612114794246032206312954809418924144775131416873162926223031206072803758520186295136649183877886675862731237437401516041982060081405064228576022054762363052449662337520978468977648323187111417320466329420557210041194142111078029231883268278460623939675955344225699548601341663242340291862589855481910167715868112153188552398772747266344103246942106006057465300349761986964625852863787115144397459623463056556376606479104746352240242943781941409883616017948708470234229491954876921568113221602072719789940769371103099094110890453957450177108295741815978064795857516653821162804610652822995792432380952225496421037400970338168311905656180542370673859346714770041901925524694814732332373721423821792145625840952526199639647142020529969311522163428064189127825809320742446022501973966510985552831139274833748360494052278797834033339928725676232748635331989530652570853211934751360998777379071897422962142415540556778363517432445971680005320051584370608992344035259910356897836440093486858426490253183946875518564947105686731806711905097614146827928619182191172426118200770794594524649400404397433532896066526028722299257016203768483401943283168737819835681359474031583446210332579817806189293665251604686067518647383598534852525792394946696541344866695366985267001094252583696539551335735454521828851034004761483621775469838083332349620239742625681934299286066825995674435997267271756320954929178471973684719125339970763290008192169283785447531268362313848614512623691547317883449684195126843916831341987390176888337085056089720042805518215822324991635850118729334266748165483131434628607614343012903575937314976471759063714273901933569471436768474944786635118676028759538549321321649627748559114502428888550191006608382948271139060100687113719041332609241773659431811454351304900872313660574843552760717969917119450982675256574223358607322210432454423330619699053690172820889581617940218219432228938373624690309408350812216663353639237803740079710004221282471245923999303729312934936547881804465238623712118014636305663077601849337072882207517335104052060008936599437231863125735395004114431739924992931470290041623591005364213445154386154166990842074771287939657023330407385393362023388395596403411607298140124721534829503975105463282269116400834774636135198009229556933765866309066158467196526401578675404222214088283454948482739731499905880997978746960496744421566617316215930216866247088735810133442456252133545221915910500369402457148012876369734576629082885259105230171542995937414263513502512012309087915713887596783399017553760210487191395881366342216329093621110158460388409110921055672488705915607285221727344175737182747328830174758462566881742106306744971846135149187180187482476025275516814912688169508010159275587819359288979070901060513226447766831589476048894545298772028308048557927162169194362440275417650155966628860466673401093839279403145312745521528573932060789890925003531030291861569625037271277642487062842981440316398552851070976934200942973885914240677254217445491602499891339626044594049933078088048137685954061519887399215770793459278700045372162487289709824331846280186033285780501085456683954974935062612098703476277889356636869007859191555674304186210478237811489788789635875713020946206933218957038121200905438325847132462475373407890640594117121901290938042243409372499811409563890635210769921688365759613054402071305757130560728176658559167659840783398069911472985469258448487119539524545517205317601267179802167997455223549708829834921771123584692098254274699851224816261345936391309324946674178963848937025834719375486946320703221180903198084532975242688211887517977345529195087352277552356296486540293768004803567516931145779705551427174608674347680842672414206172376103965937317618414518562494344697945288260175828073618095060549637009233569128889618463832900266091392504405740309444221632944039749331922620030797399608606134539777278201971826699864982472490077686451667831322654815045522516252606086409655500286457741382912082831564993900742671558621755823052814892072524460514909375474041464260522217833730175545231360552633785145588885083492010678159731328213065128022279527657771835357725847051037514104061529779001592173116168683759716086484364358749004140959953115613886096552224706570305117355668719429499834647577381970293174772380515424952416773275647710683895891092716099910092420663701821349548614645470698594899815841432860792694987017896419324191733251473933825120664736599522783826488728843578330490585518710410477364431324803136108242494780585516131016177118043676589813425309917792066684859726847368265578626172684876129908002843873922527827702851382546790875822137263834671505436612398559487322570262202093080450921129706958091908323258069886196088502930664387353746131526207062622185636428699656432682353736077366681391103409153139749306658898931106615005875405858535599378898473912556075177002219700610725445369152625091197498432081498667543992342681065827275671104634292320685562278440521273727847813336622065858837302347812671758663232472059112996753006634811988684014050351784249737166960731150199675973147723007683654527428944046532384736913025451284905199477172558845065829577152205425096875737715644595486888840841522188501684448282073664360264565151265839833805701703036912003669202437341171379747641995436004354590097242157210369337852371876537198209739254110259123233539328149592373335650843160806412522915943038347875524535390778802663751668957106626970114551170389329872284842484572382170182612577084768209667590581872402207352595653654785499096690528824575697165982019863002231005040563492128141790198764680300501145131122631296958247635129340420668452601872749765838558437142590641568023561054649923259426171105850056633184040162774070145969455434845892532437161771389074769804151382010811091343579429971351362671707401016013424692425380374806051652907381129476578198421937143289448553139211058687848293660352546918570981538152181802486390499729477687834343449209888751094593433096084196604896096624920342906243812499444827813936687358823882221358927696374925058548300839127371597712108627353839628908227736619828491055874536857254093281769610218480156695011726463323212545710901989317098556811664295050035936700357377564181389968822129285272967772135093490976783817883029255713600454098902341809890709501486963484515060369633834315964253133495999747059938278015012694941304678690629961907619272175239355311866118696707242716949325879195402251719572574586410231242322507547410124233424082909743312314141919488622974615644251504861041193305207351055240758232810085469439358482676008528831757937401651702309036942169122853985524326200220239042979869827802447353375766126133096189186932176380580360908980181180928582297010968016068208900353009044991494019797358058938369761597272251916823867232970573544996492730432226560485297095125345461612094553951891668407700498323818936407013270907184838737626930577060040350744972922268137427271331831295232459003853202560050122912880395610491824762370183205530891424294646340693267616042790808084118979530146557679643551244568968348085468166153073830845308297857651960798234832099439073678632215271819310633822880754225955077220209780266985787214019582954213550397230886811219794955138913054846561592691286665090540745141318152439409744937186710171138182681265038030092507569259216980606649409566726592606978770419794648119443612233289243128250809140829791570803285224697158534826494598018844952784416693941052816828096554984870592975458251001769369605416581854660620734901290037445449094610602247113175978752082805999926077065315907688585946477154837164567452965599236075242632691174840434498572882595275328431502161978125766033712867452586111476365649346666509033808993791366975097575802227056931044643773152313752599455636757827887006463574652985602377538403982028978271015535253674492737486727508426867571372822649318878195917588859328845763842255793014521362555116750615671776911137072202179594581034209178029056295449466218457676740290338940873477740065075730471099855568112671729482029796344827746150973382188601410007695651215841093968604951616494944252976288084012297027851899917493629016824550850365649143590152214174240557449656188351521269937119599313683281520962059643173575901123407546726724278618684726397816077955084106211847027975582810495923965966121596972219679064715419247466124176316201960245648819403175854714359777428184516699793136327411284987675698367774675827498542191138267344636168241961642611879834810408040400850690133897838693591921572098620629631101845102216032777808735963756699397424749440695517915201807923113010282402938954897098803162912570108024252236111679591042847820840641393790607375777837533043972710668930067682023535872174664855177508913043050099045236594570209112027048122249901277584802506056470972023646559437152619801540938039578196799475907483417259957928596242386196968761562328350057745266310483448544187606991873599565672461774128646935257285249225795238176925677174023741321850406015450033113389470051430933866093523800904220210317141429670912533996852256785680569132533971184645360288001288986421541136363184440885395260209752498705051325172509840320769935571748983602285501186156389027898374932519627925333960964327002579851032256743544948731765172080562846673389713228227756234654492492391250601284914958257038735742996838037894133881958640577812637562581864032701258275482144696569390515546363079428595356628309850256359992374786938249847076774251165972732053970560620080023675227457502537690021209952013035280044761225483518023775138849096132465197579172094574255968785385216262673662360934452866259272374187577489501737263811357826452563687517659652162237579568161761432394620286842521757432397564306537610161100706495910961754189987124439469801994505106247723217473700582833977831766694968568379962490898459364770370827897112693820187935360339222515790219821561290834024830655658793297455324137594704995237235164516507740773867315309145703527351979237592525666153533925625288533513423061313523135299517695085727301691956826062912165284879151613394994336256984126200261514679106822066703618190533909255523778414675020236786406172920370709752570138139047846529692820346408449034773052084802061392989949824166945958641311081865197495919100495388399575886383937366387796614003814744864859978413771387449344348115324323206488477646840461625861751133870821477565926459217346841231011762308973625501596281347523558201877735392192437359265485297488041907917983850262090880876658061622388729695016888178562664773250581386978432750509301849317619600054224567928611527105561428633599302867546694323778521442394984274176390841792750361101312070961246937017029546112213074226486084429209621568319349101727845936036577742976971338557601608510546172718665222653144500034358164192351553362000414930113055065348788978111746601759381831754464201278805987516614544285328436747772038061185348985587102828058400097281881304511010359722432502393148096835582236702859215755923462892962989450454251221488974013542884870126063498589566611540909458214880660843274290367396625268038433873129989800902725262529095838168016475129999740902491033817529065005374206906758573198790066747554756624088761907684821474483551712816419399537228949483261552714370908468749916022360714547343224075336824339147228501387575907779408045948767018645528004271619331265727296703126877590332969804401319851651969624669032247649225802165900599446462742453749133511146885476479835782983408040709564254267310667092667183333971027437271907250239544767097455257902754496330774857422801806369068306703080363781548713489161665320728458703063950130007870180964990529675380784892191413863046378371136757902197084851550046704930730693523641166492550328745831230183213403207136777999045837230178715996329704785278364219779805414173391473868300947758577301111772920786808932960281047713476341639945082781949064730648074130361062393021625963646689213242483640186371879165760689678067453539245580156334490039903315192803912627374932717331250906176677327748109985592329955642316848056663694470362201433288055958337624061946029956424745465762221545905678659158253674318055400312995962179104985632086368671921445254217642715042005447083827415187930021396312683301033527032754358928668507756914121648810910046455597324682524065163628734836475083140931454768962924454870288541850517039335578680790100422631509260428125786826839444743063436016691576075448306065774686728338272388912179843148137015103514575473149139688029911736310879150537554708155853388157735237773179358421395628981537287844406882355593709474572676330257583594114004215585938235356743269809777747634897911494214688954733866799993835087512286255322223618994358061236286159325612539546737679452140811868331357713427034038159924635634612325381958174074240665191283233667930857785011361403651046914679764973261399017500825587792997399665715969187190786388395971165498663134203915079866400447514278150206556338499881127722962811974248293403299270412965973614457796860262952925430800893513356644073309642097819904117000222279234155596055466752426476139286489842678228486707107731740833237452054866562849413679283485504726575393021419786982091902247990234918257163519667990228673148036421138479556600132170788834508855963585676299963862049693742064164095669908725724390156246120027532520368379597049524468535191749055724932708029215783738498334543059456389241524725513616686659906668631039189404276595214779529825216316552748266832094196913003264980439050747781444946535504678634934921805620258867113729386426795930891755448713366803985871146855273300779428887646227020143059022431395656844666853000965996053573076507809286966409240732722813847646173289969989985788929893647581725276400573738435180997215435861595869173140014721079840908792810387828090609849861925135100794511295729881903334650419023807058607654878800005951165604390892594136775695245668108865937787414647688672053167360067571840098134258642783495006889449631717415387782299265938020331955460423028574423696075956182002574813168068289890286034833306608339635752125437010341830979245470969915610786087314485676255463349628953615494421435229961490568900482022935162394871950375808813738133586306221706219419988625724194359242283405805906229200996006599119192042520561255203677292844733479503312382123505123531585274744860610439264233658450102489472676749207165393235081969741303563631608363137106667098702900589045645754919174556015837548158342639828493374069471718718622125747377384341567392333976303371071636215526738208084317655651564797859159952503058350159258176296308826548717866599154903547977567207804611484310808126923170823976523460839323882656765724403276457290995483669958592398580073563520301284716616577824308318805358084812601648607113957750512493166912139596882771647646819894178405965300866877171974818555319176245939996603985763888475018579055279631050887501354581289467590646768364235665643318194698011821178223104438452298956826520175117600574585569782845653828915038601377878392253704826931987061678213890172788367002084483830378702183764244091627640067829504811686954698283553115550908432712299353993847985263634000694189775689423310248981764825377923817674100542162996264273930216894773237653975420579416413494848745696775818443353692107345575528804047753883549210012612355611868637588706793827888535199334749096707843062942126810597937225326759259307124424637031965467955565347971702135169263747198690797811232902832277377894190377883902475813151498846217489478367237125768275497700464769027995129296813962248192653277376918616951836838205757017907104698674172535727105461101171425230991633872510507113156745030411926187384525301769475693515599804508235366107616132890811628813349988763515531295020388020258561542447403452753762322363409105413148528101448121725566699093070644738288616158865638279802209158420769057990719026439532919000511763906793113314150692447628521781649613394140250185270003632644059823167433931516013735288602147718817370685143635727079718730125405272248867287156241585219127325412461159804138954050574922585284522205263369160074926575436625046902776732962829907639612449009263680067985363499614130192127278970958821006755507399479497132337645556615881827255851853704715223243958796283679313845344065330397166766926424162125639308061758121594618204612623392318696893590330255278390267480955856172746715499767981091282967393151908215025566911974139771622493334350397523548479056733027330181311214471237603284235742024880247172535913852958399955610804370901418031707047953448651172888819803588811506051200516820325139587907356401755353436774662133445969504398302143091785116620548135241250433010742405524841246937420600887487665990945051177319989105475843485419247882729292619901876462630772676923789785647038671292338882283263518944328076091954041339792132415361910823547724755614466048022738835774926293400116752553561371935487850123627206397927860164233088092660244763802579159571387401928138220187441989374390813345428565740174842432054044302188935835320304095825385735739222963353221381932086292216648044582797992572507275424967548836485215603522390274658363792109086119466486327246399937244894889405965086435406050322108244456941039807699700262602881717479461296332251051480925245295273907083559807983162593906176733760354153652201127655727295765677912408824629154122708090157900491147332575968214575663166823638257078159216405268672577112914528467222221999133202579420916547368986650215267842169082563836473673106864639350472601917187835916095496293989327724030123305125780251439418476526113642284833352012773743485557190830943117590756271821599248204236454547184356628914381677944091824036672024904184812653945475274211165619518824991341722250184887407990959287546403413606295400298224041605407175855828239871926233453064478568736511396664493286826328770032731855505171280653063372969226187271399941310763041619954966970942553423019239586183170284817452478687157933849852558836910739840792724346067200574810658410994564397250253849733661345207655010142622518844257444429092760005895041938642191977387464197432120300011421536719986764192357222423736014374459323031213365589192964597797229710556860656983880728012564607925350216018638061212647092673523217372518272285045748150363699120706937847652963328479633705822196525401565682872683968458189930932623215625444338534970536335840854623070246382556511019454200964874208176902703258202657729510579733772795043011250351981366975961918944384973313532559039952138643692241179625957608891160779486288064198674236798364255945066970998720231925031254204931256876976005739560681456785000417335284111245861617475388614271971941661021129659058445361536378599968308504409877042397126294963404884939192175055128808972959982556502005134656978721630488082514244964328419992169852950989248786922712080943130764446184768542563370590868472039856101551188510334940215724326756389779576292079827049392531529805321986155734207732667555324037951934844870713653138909344389578669178742803385527907626786954881562225397998732279594903294239727062950032169888192621365711211010875461028032527540974672383059641248241987755330414632190929060021796683062431674795885333874170118957192131723920526643241093558309970262330014536473623578509075218974472435217891281140871734953121465772889709896250123754785676904037488646157224919587259342303644843148925820707413830792518597182539183515958327798761821586875432281789757248579410093568795643476694626577097354677543915455901742454694807506973157415463822052700679137923856665281001853165705533804598172362197909250896886047775711262473640742785732792703657524066997491240664848959952017228387071891713879359933475866588176200585949751211768619854675744931349720751294379040139447149513330029932420789817209580662324172937259613690790726526220032546866636624234155904709636484377830355590585106091524854530205637667868277522756775429501698501733924645336607772417054444673947931538452389851865526798813442634817791977228562037394857224073739544571925377879193881261010489020619631108633626018729557029528897592181399443591887514895875914196817808935860866129510271806160330634031123402539625765400036541901123548209313052894391236414944494239490442465295858950352168441528870462690258869590544694832589214079425161722759704913404816520583377495913097706504308306812185128093222776405024006297926080379982096223929789243446772149938844296481582431631318117657897683772478082036934223136146385238445318128779876533891170256326311591954436854804365990750876580665778352667583176847060003925155032573921451537603618059031367780633208750435511371844963946042241927309381364070719570798278126168107633255986696909673785091605769350844035286400210577883077678574829932108874499013397031710008053214420806476632601658373338213074393426730651900756197640263990586730369162799913749995747647853812911389536582767174510501272438706509116010673256334335076726479838498988326326148170594595875803996561661662079203204471952345208105244205963788000086007266910901999334676893511253387177929429057690527362350281351883381647159465084334237368242277124747023953554294100627122928533616318037565737936074349896623395766230627434105203232009847105150309074514133578927948579221445068968663286457594431141578881068926082748478450827399178694606819900504136387046103289329900900575924661032187543623775052480872112119015553179486736497027849056706082071027480863145293590838730511023354981217347436774881499825855361091052286395109367665832223909649301582856645420603677199179087731194885288112713074295370555594125594116816454208263369333735052962316344967612443298407246627853380389622463512071959457304311462533308219991118706063459385142016919214672414769132163779349752284385899332427002859718665026358607188144776282355093847307683424501976195649260304501871972770025389024899151446314565692232812542443339325606488539602350067737174954009264412314417035754607682229661314634761475457671251945913835012987935967169868938410195544146303405730045942300169425835053527243102914957208058102386738945406619948437679116113690935453602377818234840801954032186739565899748278243693342187754791089491797776574862415424749998504742991898951497971480140082547309563139145660186564578390523961943827481237202986400714242063169244369883675620587760145463458453261714571712261105948832216857074546856733665585182344136882465377732365733207107729237803951169464016978443789131771303825258285630590889962046051242852021184835176772240873151873263356155304810773114906563261956884298964812058315629052770258509760457488012384054954053465726109166941320677192636594609574665050958817777006990408008716010169737180297703927677796598837234069170168983753149905599621230989398209609832683403678732512890647669252742697545649737568432571577155557500593256271068808906579409444432436322198577093221268838562544838888297964225096643106957715199259975106703505197519843046412153671833235693524060167913365607685852716906976539632437832066408110286890787306864313439573045754645007465414071335034298196366627829816174620812130996388132840182542537368614658403212078395651815150263076742915246124183380269648019846444735628038978169235120333727175952585499316662832151177648295159278561206932462384535403414465564273028753260786642726955741798156914793753376267044177809031561549732005483662387046902915768891886026752049638591625771559359294806816237007865865987559674443372732938414159822022849816465237003699272859535029559251309067492645607780913066339917043499009151701998769579658762127914565052374232574900645543650742467812938698675732468217083516385360833716076590400784511696328856894176519260217389428416807394319469687865278702032032163859642140918366098407788203219025300937793824281552420314044161681294917063630436573301794815669211443549719384723169631861934624075538071340682095325535834775756127879248610035737615381879464465581869582134040213396647036193511050820918783413735977718259168150539440854727761813444091244689082306419008653500744303454175005409950701564642860300622027801062684402237606962227561696159907721033661936563137708690860131683513738997290466403663396180355442970319682878177819816093181904262052088854167920541889292783786458158408417442771021279448566547520120642198319709306212333586625782857846134213044981526169166009269699389853131823337506527842200151405041335353230033177796861662835717839754133473127124074877044586258138460920741781982351213970615999048977067053142800069944501549120435037330320676080367707178489144408729317656291899349521162085352521968369891496290002615080256051933641074433342435268166270406119824100560173410528785841890916598228571434455689722622798140402580336642266473951070145033063464134581630334135244994924398765267510095756028896479962707523037382671638146549795179889729893363886497120191299136968311929360949807717104491389998515808982537325160553469860634078959956119482554590938685457645671065833202792048957039884361015472191250826409218919737662793822584486354922056445776633044768300363251826928751484630975618199812838660174457797296506978029906945691025823743354279195464436768372049942244399622419672647452022799535632265286026198643355444442285910291396989129648766347412085604992423387789899447485432016271245291122787191474227011634691317016860131595157662463413008021455048375376949855499882463606974305438568348261690909059405392091342601510943208637203206171306945648548645685472423940181239806628209324468676031306820293034087063029434034752674442565899457407149434679630591910159484102821006590584580250994982727258160049267666860231757853982830682068987433906384416579471876845944186288023924079917913454122017829539836371628582359382233573253732018996931096182562677739034334556373758159992470786219200831220129368722067657193018685139061309695614176584314467272643767425507540838758755725668193411994549982014439275695924374043280273966888007974015413746752084510057867808632147584577395011551879993260329695706426144032701511002788438501272114272458364487597677257615734939990882641226010779898415298379051615371549506401599310776064897185026716744737192718067509526900763840416655689546231897671625950849248232930240550163572979977492076114754284539945075594326131874393674636037137257747762584428722002901595202427103888334187055062145176235721599000941161684167254658826142591200224368023819207222099675912251953130057704755888905660637316803171182962934305625152372494707496660256480178292615461806581812124986485377730950957470826244624041690534161174410765239416317727822046916212675084698151857513558507207842059872165402449802813625941851502189427018469467121626500751590865223715343159982998469834719548055730455648563007566912361314511993895222989697550773283746207956869289624066824198893923080054957979990742445310171590432860190633456038879166591376388096579156182818367157142891738775106725262675505323429183691255252531720033827250546574368278059913156793921959972128943603417508519041861981415492497149121810237770745520305584895681316693769326125409788394797406178549012018872583293776038567610652953102651327866549276321318411266488332098551579907797344482642894144360045811878394901748427080284101390805930775516104999852931432986179644062304198179294186358445890737033079900048899260187028379015926167156953193962153818592260061736097021173510979675110443737810570830348605537621969247222899176281867772977410664113160319026822248226209258033355857792927450624661010715698715704754859250389628953085640339611698331800873204504384586645538151488801647848566571489733270358371730765782738581761501155228054859860620398378943973612272163339468764325614316604661664407441491195224127521270963152383492142606399823822583925535287104578392764115589820733011130538972307455723920244499265112542628315607892702729154493988187632590124915859952743587988067582170592626390551218777944918969700068269346991754547463611217223762500740326627761303191916834982807957111203670035569045099647944386786144689042094360539026589294774922674566515863482949986971195691447814128990309777819403772260580185409182526353214591182131188260731226216402805657178719204845278321205037547144261010730639316023614490621067561027054712927822704849756728131392073155277201029956627701283212706365728180513275361401960318892405481644872907951542327777409412564971004650702442694166377191117036766177598131071019954875441591638215431438069819375581385899379688589087349150209541734238579631854156605263354610902691582547638117032720875794681450899517833383018875065147479547705531642489054613570787005420577057897899901457843252799187797067037225723731910545987374862791531503548064937659566519455464452116495758644597587793904742463810807514551510062490530946170102025984865467835617370701737186299740894620856013739705507791077308967579402495850551346846064511227132204292242123831478886568261336271578496696796766833930231150681362017392556864391313604560416901351191570428351058710659183099467215836836718198186153316282866771321773136725086857232494884889812894301465714582092380822245348014997025429107250024945664543497950400076768215923515853790660087316163566055512410484973436293870335235969137942677597762832492958460745127526019412635190867472090160279198115406398755755695884719311499053729658378325705602209434600225388063273480390508069653504661699536457962962543621512818868890123091358251675529942907546958434600393548130722112156584602552020812855846474857252886526399922474544970438876470138586170411972513005352504273522985323067606736707005043435365935669250330087697335531554913236140101194361296133738035212778226774681732923449322948742023394024547399935337707754064321148275768909990253733608234151826643287661985383315523880836128561487724265726710752283513886756444231579694440898995009737267039156444337138069195318141071289567470225982007535502624422408212807888123866686367246727193883924783243842724686251657541526343425088409458529363102790486342902457283168562836007079491782537381289269573404139888940647899239419035397751642257242004211556660695537562269907947771487497717552180888200919611747809431724859077220272364336611667672290020850019591569076471902224327665218370476560308917636582113414816327619675269621429379126756160928968914978944859391741146640550960647791926998743277183797783836022347719097903668911206759304039982659539227352981908066707387168232032803929672892072020142875412526646116916567625154130633828878880247702455628463678418506677382798282079358569145351498094455190558037823478554400274686683920625543532630488249117963226660067513644760325290851062850069171815733609073756050321778204644914574498350661317126401887271660319423404385205503926475312794363075628891658881023412582316149466779507654887948938109772537159895504828911307469225675981014531744888520765389693910691469042094894213825919473260010504105532656840747496760613165224186187295555149498040806831753019849359275399009279283921291630344207306107764410891970743039439915085579520227510241583344102857817184928028561937650992558552515627421411253584013821814389910319552609265738127644464125668080156326475252952308437905962320455962099254343588067815939520852917917447700043192706718887838802774395909916185612247913408853023679163755071878172857075303417771476598774968082541649529546447230361104294384232615160099093700503683336356719897295392622236654808533089629840783149733392287760574239753146041444053703841641323234680275793644700988503104093173781092509599613224144324285081000643825061675040906968156403575600470991309214233696842939878640150297989754618530523838163404000435029901504769666438705228032688439530961043352950430874481058612437312944227792137222956982057758178803273330240708827313578470512107925689376077491212884070219867913078697484451698151792365771555602064188405147790739074715571972063989213253489275395152659290493108133663708695650343702200197535838306936688470245047068441002282951403725638513960668606091546367946060876578546151317275435941221190711221862547961586398543466832768503826789754091459327142284844975446836152824805324208781677487623290096468618345291141275380894024553426155532175518737746154962533446627145152674725434504874941517487302082358301112742912194788159024250514766442981090925918279288778647958598709475578896091404998024166404759884359333169356172132036582830632403714851407548328175444079153004518976284407341394103671199150740926002961920645686779833097733937641499377242011938255567557451483949575080488469581717011148445980643399843837435421323304811857400881968687682852834812195135756220183043375481185657414810694844359936547771640165276631299166770936894176481372089680322701989978960489556009791870005298105947830459978668547869667225794956897056922274198718417084057811892304837844879783694808008147481625894126243063015749097512732981183986657836042568117189488168318761960401830162853049999823610683512458080373032364417954606826951011612384370754412193197914590781831640321903013038372961189057622462596635688584666199873764768465114912378864401732658926226848595808610957905995845393546463586187915481135207598400217864216902824314843181986388908682839420254984226139079964665329204604146151173681703687934479414372844050482695375587357942993051920421550639994215346332326449523790300491225992815281658612904008938725341397620660299675161666973376001286038471402189838104012376990616244991152803464023327898604773160050334174872549803246154351017520985174050522659653774861001463700000809241811568346741001883212209474140875842750319275593138657982014840424428962202548292535439230325414717359674641365428700810913897900755701680574995836852297294928963507974776951183853589208589641562088642840008787284574886161424041481375469083810113524380193784098887081842907186254414760405158922026537154977762633513238373845702525189685764369367485929779793557048254649031608931040683947153819984801453727611258939917667118601724357743657058412742435932339413786045098311123734343607162649099591984340880191051584038728886902509614659293067382405762493700198731276265136532610708509220490353521724918208480953954394101568546977276877910264441004804728524749421522757678029346901244130333373483950318588303866980796458528217395812499894294049468456244569186806351968510248100622579060013797375208684696582641713362311556445278202507038349491081619011872341766805402627339966764076462670387545893220425976817004726220149127646459194519749145253399934203354078832675971538036252355151836113803710539247190034200639351204216036545540144904259393836860519061369813682353892490539510000536828119967169726930655302286614887015736686854035098788225887605590450143745317243770147367415896296297254935237210036586230928272757173800125481204004479013638332223930054073359088563317905894383262948149159557220103499810995151501678516837062386121352820484188068296048721328854005310509968358449854212444113104510221430091241369775193309845158846452535260867420740956257753558210631588275638002715358636472363477872950110974947183151610853707650704426461476547693518031830925012007916906545105604081907330834548729370766195121402425749239519426446439195504472613474009367404308411627397759171769298062794450364220048377349051560437019205595572568199105623421147938047480203519518113651460747923482405227261123899006574664251212082270076356767695352095107200134719901947606022392560241726433658648638654979064809539172694298179830303368246264791927856012265462414475625516914372811417246965036608211898766597957455336717382999923165615428463599123921081494466706951709340532266098998110611698606948443323398449226309393807349267287064270189481219130389297031517480582269103669936969554235270789638458539132189862398538783805090754700869105866392384875433314883335091241969648594687383092665975039312379221544806394572065194081308328518580912421234501637923955985501317140637798477190118333443956538105121656961992190376466618427608248470491551893814117459707058783105035145491798348985791140549914620911672147226112895692113062644662166499438179437417771987190871342036527305966986107346404826378533364808710200045986765318227423358376682581681287163365024705767927971076637293363429760835730450772879835204828316508967109914456178439545778049912385285546660417148317354325050479052539259836496526220888662052902415467877903287520724413730216006870609409602596267004896770760908135975222452320923605482632980596051051370941167148102813493080884968662504054605922216935342355789205020472346091380671649586200405176162042553138536530597229809267073327152908891279486408880185567502675434755800415398239188422567497939812049347378343625520923148226240463781089991065790217968254926111478578456398978612530615616420257096169409018893425110827466609580286804847777207209606037552929388483915915553618859390704625338478852047637618320635944266417988454953106810291760743940184325207263959770228019406384530723046036216149379412401997360215820033990646540299041866891431122860403981817499321971576661737339901850754697961312010346015383536670855076644858706663753358645547839378602007591250746219987883642989763859192010874628526602519629652855410882442000664673326520366613957474317693927320539869415769924370761039701107268569420087567132261287059810440870822242164040785179300857431643727012422775047054184311825589313670199597438530626767185242398272670829987526224690311847659657559616216494191071597666633664122872803146949602868470294150146964146001619475753483667574568607457819164647488140937941942004154035857715487901872089484034411548667366856321058375337293525976106660079269573480399353977467162272783985677392441179027066242507136003078887000610620374563180560894778813576116516899097573809990887171441666821183591710496550198825978779664919225838562835804414339290203493184502358627228514545725129113622089253795100247962697374105184039902347330314423729320602570729648820488051908207368494685913340458719185211079899393276471689464150928746476017977573060268034070085458896096599394389968767838078752444296147751488097638379053054474070387664758406464862216596638642834047224244906419273517160435897490637522685519374722727951054406393410800872688504713342174420582887747703086409971894890519996985590573540564971070785185216237778020769169284288536801741631891403174220968165310204212624416668962261403427386555995730082075889702108835279742638098139746229502606687781665416632000328378628711571671160162956541244216342216795017563149706487255921764709699412448784027702006059003954359713438350488881827073231570561084462590023570254465964821445531460070285344253050104462705101627055952147320412600919955806046856049492417036898433764993572551997115771823649833163451706190588304181115536335995759626944148475619050060253250724771494596302507517505974378815893486718754956701462054472674472997061199843256852207364020400747436183758515227450712665287954534930025513421214409044890778465337711212437694049716694505648387933306232804012243379694994485431520769634363805995785416677062504440167765160733260534520408114738709090415686542197342694865512160719927895178001445597402078445527547611344049965887972349395265014170517143596639292179396967497940693946145381627775728750225067036295556812340871353814751761098689466150160684573517345203476638484458203161590256921773920143277965083844692692331597736094598844054660185279718698696454411728018241683433652896771320082431602974804173358268137242690267453340025943972955835032838774486168014885458473805785144298227348625547542943839964383766470228936547485252285556185760338228450381852534318215601310285669587478829496819413679243797880864303982196733281562417527502893069940261198437082805111381920013333867835703757160780370401162996552183811009885974299645692387523448289400578879311417171010101703465509981048102377701052678597795918742942393375750188956858463769505202436514929537622491537182892014803105443982156548109175069439274484583031305394186065111782486164746501982078634028310258892972639762683415017373642406297356090979579257571993604324592394374997567974601667893221506935979657561226079295799119774271233217264767355888410973962897210034550713791099084942741943787201562699270605336268870639549079298889208951223012485748326696934453401133433201195618796879018228000408269682345942408999486883054144707568470358129914931687132590686671026389416528073613272046490247802108070406063303509044818483438556576846077769753872002672157747195844483103752808138516201925826026617720762785904989354593248479232153241185462121167737767484956003440694960409769932923651401537854329976102246867530085723329912785915213334692244530071830673798532092544912243463258562178676201288081822089883928631841342294599979994637025383109357159966273145627112864219923919804150076533138065923865816489506822481843699058263664219677024477469853439490427578365552700275479870017744974213697454286520124819372621915792340934022731665718637583692557570610908685138657802498676806952644537588580488187599383234764353405828683308573766816558077030847644237406044970122469797238759045710599552689826270891002896341025352518457697835989085635632108490360998566953313352205629814879643792729588668230885944444745277854708350752548247092629656329462734390042724833599584465221296115060296122687915067604930448936773238659443918587161711391565090674632270358536081478228609846607564541715509764614581397668212594524440884743871097710039180087740428322515580936608559942325878148198218561851044442219480057932702386000481298483312896115010402875918088215748410094864297436591543323184063331984430780743508236387868172611891116470929567319835772621892796171152539574367109187276301537620380425813495992005841855969176919458255837828034854741171337408831727178494395933351132103343827120620861036015399798029420718554607997545621237371803936803321278010111240305452591978469355484526643979270832528054736110475792640898292566866765427002442735710582392456105005718711092714257827113630429698211920312996210822469140220715146417209822363386440852949931871899600135007472697841250199277283695788198628025185250836816066851160989029193175612649864726023988818432259364160506494657313181866823309293212368524011166854790920499625023552158282005814919364333441572222895336692452783494077597001238374774896755554983543962337701019706070693466768349100815227011759535426560574672614992194701691710882436391502738593593251433293698844485766231033884997418573469731095449531707858476570446164719303680054063333628977632666801077106654711414236461433981785034635460204518108817984248175620357634140374164327242023534467189984523690310372561016404647263472286882920203937744376612305370548081985878057298743053240634809488672248805811343026809148637878594749191204977348271167160985871217117894671153729703070751835031673357978809552372640116197453719287186947722200261065076303934035010784549485541514747588581955163154900471749667548571826285258214376890360208298410255354032934086378473063101685961616778689312148358057098951870078335389687208295818109383534258798226921515117095405346953433405957434998676368385169539458864761710628807546503650169451107244289328127135451890722533466938107592499112126905440321524078367677359550933292602440942540536534074193740398778351063779724626006225167125168997122288056473282127604776604197537607515298146330068320956437130786214976127905430410421081320654196812556639120293974910172156959032514094265781152551248209870770609317223778521064554459452633266685880863127267547766403269926850220941903175852813052724242860618784624377308912090014727631265529206248957079947237738556507214825058995164367377189445949473460246103787162927501181581306304810077049846410059003810979044051651385723162701511600968884432078704423704195724694794738706762238156496583718410116520539183663904564060533842947442817690760129083241756565265623112020197903244462499006913569230278600414114937503971870351169424674260594611699213885231649175798648520675729963578219062386854997105629117302423388505046197539229702041989443624132367544391595014915090391036340982106342787293434860740655751984489502694438684547564937724796937746631386604012170565103018269405768232314656747887711582003115663654513898874018405989860090650952084858415340399743977032822281503870808232481240497394659741771411865513324389923086380387574506005750138542126040072229039875464063380798018523565442155857250494158346720632385572793793835944571745181688597985686008602463677369093731728772472475732912219594302359049440322806237582478853234665455178458420031019825720944908864237771538318785874291409211569245877223047045931315768731469011807258789441669393121006864715733020464279042440545924371636644285346960731261417655453972355651389930945813974026278334031171048670803947615267911093865938088545780175648382906415901354891355140702162144410590686170098046814052063029422726836554073305721872660159801030877322961888732349585463008706445179394511485737369029914016313550206641630662245922090536924701248561290525994524863162399917666728871755275054677431783679142154411723422170464227892077153451780730407935601712920113065803921127104125748865606901070275268958468032292531350276239933871667625521116978847390422453256949947430166575729207377965374048694886453372752474698946450803032318990816225501121650901039067875918768357991997802116644384133558795167757776601702530058269500788037031119256543893661613157321937381943361194856568686579500380978884001403447230764914649614857522706781544933436360267392517047382721042258128875073351174980385182537477791017657520352781777377642254673944469403869505333445013936198438143220147757875690858968810900872796040877336734271925360079976360086041249291036076367962818519216446683780949265297578522284314451744374311906085921137478144351195955071105933570531598473993186073440343397312095064984186635734747089209657712551805150516146867066341614444260951486258179327125719736799717958654044756282923821812360117508565910836246060062616996083943723952180141456645739290344698286508961912317557590661069360718402168712045432918330877796387338080011911950198019570471487722619148995892175332945557257414544829738027115561185589496329119863328088808465103536162773751845716615052218637443341487184399389379971264689939315199186804250251729378664384154440404646309364967899566968003318507839616145952497225270704389318007981644790289159376960813011291454369848217299706617974875594670773671280795043970399504196765202883900965444339010508483363746085205649898448656428334980301045692704485723977848028390073907041503552025368289606098832865165109035685750429882054636156386619076438868676974111945647948568314241650269118423022723750266022075220303022785309814824652593111468242564095824543654679923430891085700260260098487101274497709865490703271859880335598815630992039679444039093663019286984059021327323648226074520656619419206382326550818556983417466391527183316173651249620142624592722164921060465460234752931887328717309196616363719268250757481249566058445313841226572484708345612884641148380649803100717218960994647315637497635473632354627706962360364430655603277297210782174830470058247723028873696365265026097337976093614122158915799589318844156625962626261466502627520273860837426632575811684738927597768615551676577095839156617046177527769755444300202714951837330843778152271738446654307423599363096344540259092283801428918305737757693541451954916894931210718558571205282974187715884197305137946010824998075340843855924443756636328349273221877147464970139066705041065623153656362659614327981984443368737571226776497913075894600455308849358088484304971790432037662701494620452889637354444512130040254471334251868798016207032429221742588979690529761243438520477254863062660392381016835164579400186679128422495558112383120960092275876812824652734359971037104281197927126757796964167353214832431283221032563587718119106404611380474628097558467438719460754378257270641070471456624565894804582569585681895626901671348897579771031049199968602660005684717993616163179854945003489979480076450583736394818016976531625535394786555090027527128486502899333439936131441412429867032990444088900727162917432486482264502052389777350654247644855424310285209198404734343102519159602331740497208972289482690363114377770612815420269982814087667807524694196696019700870126178403409277922633870805949750904734675808901849223694231486845406201667100208822596093814755931482002089699449666946926696790544694204115053138064309637375373210771881866244071830323317452758193144609097927561342863700420866206865013720806044308608296164750017889393342945628283570015990511476373547223808493210054310419969090223707572960431548651582682464660163482445804299126196919773019613187790875849851464324440650280683005062940306873424761406325464007875900283362665049762141712870971706962131023369173469987639520254266486437616035133663391910722321885108499580692254290025130516816766754710676877714251193695739671483369796759188014372547421325490911017821496800833831619514060318625733202557113660964441722602129475662603301561576885089035704155876755207789763506855347959922986427528587500951083471343890982774806201956206055297015649162007469458607409448412332555390498103265302505696770230111946565240614003787803007830543914369784442573904076179186766866991620992317296577793305427018309167494289181724095001435226407901138405062950966364448788803606598045442934534977358998306125233415085056911086418823912901927750047577707819998224912704849639713760597550670104515483250447675855188387365352333837934312237270536527798094848758226040755665279418309667269631939392086805452097151054860033220802040610694109960317888464466849424989609480794695658047627747086176236171806937215432408134901851511989151424969026436413016115929606598060059664269334583513936325722383992699351301606575428565043491833855776608838554525653301583807722889919085586975113998539600714986051267592496139418989783976730819791494297468769581556305583929799991057342410992471176293179840867973579902594537304765717871075501060627328335307785162049803229792255407079528649367214290045970508679762640348329092789571501030092580751954362879926077048638057996360909019977302649472033427261128964745411096398460270376930411070286988130860893687480755660753394965261836900834556822772805450401896479012580082080059440853063135840675269427109141379555785853766204750161253474087969548344737000349843102775974441371972046740074371257334905243276597495317192200092746325780206895008682049134279136158489673536798821698187843076536814301214188242567851774453352464136115166083462624788040054675011756871961643253574206516993045360579349511697910169721065070573276212312232034638040524148166537269504911624248614956473158210121360699938255744591224574775015312862752204783679137870951427393359764956184964524571575941203179541368183903974537988925935626684117986365629979581305407950265228192429471660237512295870264776991964106243267196809113826327518545475537064448598600317543903495616527031462912329421884601300874594432173211684345953529202443554058949631880253486646345438088040302341204600943383413441945486249584853979295203343617425867313807429087794762501273923622565365815810293454861804381913044340521560804678727345029948097560748657740232522027656503866811963906638272009368177649548247464325847728071413108629075992771606196952907796559310685404053867533772979553937557591365238314511948693161090515655634922911739737050858425425876917446031492498060040217506986395360023654335680394796223990246000457292787550576389239141526691378684319904999849839317264748148836919192444369019448164266314115927966478154673058514863226185009421344626334706846033030595369935508525371838862724988185420756829880296184901328575306905720610705646413056017783787650644017878736305929554617383725454578761409052955790191739585575372270286484181168809714195786951325630385470548093756713041680132472673446046008905354455222325546341731602998600981606679240944855116620178716544530080564285819334327275729873326368596356526171006084406703150488707193961856616834946873255765051757949796612891133183050176727267748321557926589666079371908322324383657292228876372612577133635161385307618656363845867368292645093579430337787376321808339086924394459494763412803496549989977757784897108726071298222491470546797740514182848182773154892631300083826416546488233389918380577810540465424240901566950382563192262251708481245266205506546697126277895926972344789819665643162566791702011456479744418207736771741410163875244337268005508371196805114906616308027941892555834880405688192872433513631931910906407032782858983673377371887164644299445818482314741576584735605074474597743893944566187300011697959960088693809183223029911766436778401941351828425323127176671360512122348389388711978388526337964950747873242147637971216245323333167133844872860253866881964052491389068150539192695124683086806003789968676681507623626578901365607922587804867604533924403315130104685685483353313594817177740476694864491282604202251944097075015647863584001720106845818610661745632810256398235076366762922865253115462665307951793318446442146278351883581341828110159397346934033332595882453085322602684785857176157772833446467866716950313998238877132053132111596726212235083124996591504365862903442902753649398124761499463493350462507140388550743384556312389648571805603554086478683466825862720327613885057143342318510312296511566312678392934770635068272693355896278066170504996234045621962220158505001983482282631837411947822992685879494582259745133421481815577972768760873662059452325727300598795713644420954181968972397606977294967334851966374867312627873433703868259558734290316698089898639947411627092312853691247398247093575760420894934398551963420267389422446911525292981741419566313669275907743758625801468198283606941497840890479390539363696545238616062309036475989767163073719411096103775065816970916464081317957097128399767805834178529661423558626023804710063524125782928788876113136009884799633589980866772102925264446175314629916160491557494135884725059311807103798967272434313696786425499885392816713914778850363229571621854158165008198574561120163981354772357164121396750532744578872668461336884881004845598799688092397920641720090392638076828540695428692473905795264586070512918624719494300242773896218696092853498736845149146766136368836262261704914875767610685863656514955489765812971632047983182689951995650400700788228159577629674620659640508905944650408689785639573148882288150326222867324236829633494561424061299702352321643912935663540104014627067558237386762905734085811032626223192510264719742573868560109910642133800836061122306082265099369641775549964280789015721704834369422606151791785893144090248140460585121323167016855256474881344451023698444826595193612251810206721639558221793302779454057275210452745797143712910438771026522984500329094795611810976837094518204216328503017877656941785029932911662430746860005549171063371012353508113934272143142465177425424667671886333668766124793877110998579322826360248064928651176347006711229063683772473003343754452705814912610006290128150992617602521760232565398648834625035952367197125542678713762496410181120586872767963694239946265102100001035598872391845134779725826190943123276671285436739581403704323653231046700934393856540980572816270630481261515437289087023813914560880129845421813943554155451002757319966870415826475051302389288656764388491684193225605806194422954070360453547246488320441875841264163054410020086504491203399990074687615658668988877416213398037325438601577194486678332829941307409737201769845536742514427829993714215681493652287865671164894903008401577245897246960282661317954682471686033653627094367546188544881835933950055238359438520571511771177121533869818712508413273842263938239294929373865768440355008559410742828467698669981475286717404315961327579143071642306957651415569989033286355472294532431182925480033474272588179268086717219714392669298338485713963098086447918520911294935825409201464520047338411406687313732138718293378267956608999902128396609392119632211032501229297255877482339476878939295170579120887035110821108751872480358958315695129834100746131731865803087977169490485783024532498360581210015704795419142480409658034800871547518166808845074795075909807296916084988472822943384486374094060920757811898430275568448276956993249415927948006723333988837064373634282195584911874110229839926409181159799161800174052120558798646543107778652933852079756667140255610999625575378816445098889694493132848327182830405449996835172743624169449016563617537475213379542230457176514940533343204576476537000969954022388501435067977573787672093507360365593724258267505189638129164923271636528600310009093113256069284285161500220798644397471589371334768314572748283706213808417061991817234453166389322168580875843290757595624629574143370881191323875894853322536256643544367806137572907766408977556599251360587505884425358904353193578745758551368337393219381064791631679559445536348777985178953743314043599466164908831965513416289822599092382978136675746073770537901775189178515405131093398635135461618994622430174279145458815173165538696533372834151419650955123719213290650586022496654496267301087211181117312621046264929532040940239794070016030090806628797455903602302373433707209106323829255440130152305207592927095398039395014227474430282756967143886141340129306715643958715715036685057557872961700640989904817965225342817990640353209048546480896214259906345806955593635101125447291453404990055190373108582870297811789720727868562651878439250110686795152577245273196395017182426991569568129360818669964097581926493684259747778823491820840454364144484152245510045525044285442405527893107108317042784877978824232138378811529559666095512860589385502974819575850557801587546589838720394721298308411895317625687189766963543058115159255246138082255745238737532593887509054294511797112647906757914394183691075225113732915864824877123847129131556523170683006294891341492425220512453976036949455523273689288313138715840681297724918601322035118434889123104691640819201235686158096777842073115442770531515711871668360389088186864365986047831464679905236079236700983926336729274870465934638953215516429096527340047152850049654148160702434445128005476009111855619592825999609989906027943843155930781877726147713655332588681450905397285187538891628401270989501161677398094275761520981138280071522865680586987576561999940881215442972182479844109808202514996959862356660625814847017701164965594450362841767611840344392627203777410111888748693206353204892201220159334896356789491510759962543829656700727367938827172759362876714747152842075115724227313439348842279417724052008171216991152946199158277990300383461662710774047496695860143229773531476377512991048010346886061998873475012810352920789998482599935868859269752791055423993620005734099510742112391028022729296121735321666343992048116008111823531225427201623373093442822362003518474979224742174567638654677698061189717179840683704257359439177590820353098810779357958666590725153703810127417647309279840548069038555437336097091773829204701664128309919418560169434422739681974888226271513111484161993556080326782387344178853959971012249519620593718306884815436413437338418607239229678712397501163978350816984866770844128439314631013244942273632604222694814951227435740604693778132344051221564447537882399525547029395825731738518466050008622741003034034616724303349612144239626050059909395122002513917187805346747464424238618900179153144186700345043455121327620544928536906443234281142578921319372643545589412076169582825848307126880161341497840919167472115656339116275794920314716739689400777687211127375492665789542181736036510397740544471298584973945814722272547858215771865356980528936798418319122833822044525561616831428717566043012173590555194669675996093430514010264521448816942228938945054593267206762602410958228803646254583830726781676737587939599617732329183041847450396636559026362877139592611178448445099055107117062828809911941680695593807850312497013536658076303785078444335533064879897060170818342534862583770575990955147638812323807283579857347987712491621447511910994416815756140955774813371968379195759026544680241940498129001985699580596720589488315503706146039039906920183742892331850453230630221102445278458458161213441731971014723669299834739337933939162634049612990376773200469420854946507835819974708834575031665270534694733342642450505540888988550392004539197289525403919207732885400344658600671661103807023731662157594068725594650114711577600439229928376013214295843464880452783632320017883397907793706385696998027634599991508056037307897149519188244137987633550175450785557675738561671236063062917583770074886422429680058267839581100839834050002416043835274683999698409093278473136145651586145787081231084491151604233581951162509942137631165193404010508558637890663069675043298111670860365349305620382413622879400216546944720312555873703315000239943131412755138623799194300430008754109294336610161111585911073207982528096676007455062329553764852811228964580870551825367371044420931134450493206058953946113920500593012768404407404272883016570087813160972631255144473166164831729719257785499229548948478001798392610484950561336136671447070377320196572448552390270996904275776702811852654126428247488347724331398653459956688579084245266743206036167958642263040951669795184253627799165392252325676298554657619401771580587217351050165666739902578621915758803805612443184668107128965313989030658652701928796218343513745023514364642685006038157123498020163322704147111061221223134734663776506993591927387383485317978858261496041395308952950097412433311677089663222228569367331432574929964830931919410660814604328320710143669512313239374887320959138839043383389567588116500634125175181583892714839675650620859595262485539233360092153012919196833575774363461564885772503019661173436719482243382107538730637338283940612686025013703051915523010701957304154941045080490045842641494647735504783867550629743907333810180671256603953192079392348549242326863250890203532217262163074834822776448170111988061117843494041295202863380109257323329621236241647841196689488809392565652288118209579773652876956012326000686055869256107624166047003622527378620788748458774527434857449183893152134772682222586382124325275205449980642392424822159770371575769111976342624287697011692418262587846987992996285880220101312446691521875927992449169795889934089947132268104677829158849833105702364528601124887445849458657627130864515875777870613016104111575596544434597743445233654624654741931430832574735242317952682738146093661116675286874716664990286748906669520793403001530659783351615137990174251338149241115809838583863356996951417580002129131738150694168641666966494513444034627749018476166737900839477254815347167575233503122432297104881694970721719739052172478456967268244090754009049937882706029039461597053765823405925375210605491957075549558489048082633890484486195190510194987098237451531771016045962111688408440963545023128013034935909406384084838456914559206995241259055506409393416770804955311455038118643450573797551008759469695479474865245960839485561626110931332555168545849043393590953483128759393355662465840361065944144375533895271231174789166212059080902303435440722203251870390198188150051243029024887397324821213252715704766764034897188742580030211394105284349056422721465121673277792574877819957844092739644285438487518729879434345049077707389794598612537488427968855864267033790062043793369245656944851704726764616897826177329601627649600327649188846217671593290124127017647924381056416935997020777272931350704026725968447240558236325138022191360678957457410674685917872968588739394565919465503598503003612295146382957348205079005264505947427533983010577508200370199417558764546576995726864363686176841593909718713688882802460148352315238377218445318367910752512779306125525541955332179786755786886336858638407863559232255068508106063127056367541215886396870507742278060843729666443380455951890224455964265597689826023287684428597994148666472791546088576527048804331625265593868423779634913142052836579493930625345506400947104514855783605706796105918870224259551190227465630741798335317297165254754160251771943081239858940889775955268281611339184840160443756389573815291697665598398481140772891020233640095304776679087490138856178523363423316497965862044719860956870000217537817954382108167793483722698663850128762554927437173000147052740514290685735012313239953363150940594978037097671128434689662348549125046189328473607650685514273609585156608248367024027915590934682365319148574940018713276188852954317623681293133878309551521519805895582893103871225718831937858566315159534272982190323414393131574286930178206585165343792161399246824274709676386613981574939512412173441300408184137730808607847847056276310411403300786350792577318241022570945962219015350310653231375418627751313101348515220219128660227680809309334379037442547139500360099795155861750672940944775440760262195689444239935032387366300156709356048088424209088669836985628803791113785014340854264206928623932197942135913333716995108966449414448446866379907027595258304779554654570165440541150205983989418923420706556506585389513109750251780469027535825697065070835779689254557772385832327472718002594709989172169689764499210268390633152769432280393337616027474869452198583612938213258276959252793727659856097936960465551346682662393261797948450129652755604163469401381644651972789983374770635664516287056743741640927471598589304379697087770936938832637298577835484529268676374178755571717638370452001520692919548364273930853759928448456286147706481289156840581249746051609447009110804559043382118385284109133891083650538886707875580952526323060125037146308166976921390052284168592797861182597760363386920433103380378473569348271329480029680151369901060050010763456357863009593250710793867520063379072966902310372062479291439510703889599681670401856965378672269027041387321796132379859426364095705828964748672731284322344452080633585225993005515056017704804255400925715112847864931899162778200334960209751078838260352870713621142664377821902974299722407066949628525788873513145426615253661499320138809951249120601603945993858461217861173813046745614344168595201390366009534987621654473590504288260859201482967282463785544194868906410261063122969660235825206568288375831373963781291572430919091160320101460421455914053670913146953297554959588404190944962215280899251602346216458954324091494594404409279595336918337922294104081779969458841152809679585565314378671002233829718097424786682309786935974820701433250678142025310404499001641519359945483337253606863910251979096505787918799300816956987980616388196637516142171566067316241226338196327903769341112154832878764439836611215736826818291396558945161177616285288080353432834108115932993851160750678895658568498382479364063133071752695580690904754115235927236656745908593827863109491355722334475796492686059179267674773099628566763208591923901701431107144941929540765243649137819608251739738813283460633573819852472590507926109433561870294421980751396264873966030799723016938773520513854867881422793541505619576225048071367428905775344458961851444386375881032248983921279125542309509886089384037246428044622741580143240680021089574097201821886952811795985040464914912212350177373099245123749770399467239200665261718451559391412627752308795676986065739654902235514946696194429091427069495489366706624293104208329333238402570667613586694244411477521248557302252304153341388662804037313237686082926020297883233072016990468021905538380619152388724022540720055143025636416382527867236982499485347042180764458554422255874947193189120566706612822768671430977098849761599930997341873989929227869228727408596016657655907637433521552739992752984386396833172663762986343707257887429664832810405925229033087899887025371219230528601471629871246672213748697309986259557534528331819600008962303499459116453415077790561984531883186905677796166685156162680979424983764636867057614982075394048426969503950498168506377982063105558711102183896655684853634856873138680752516959426779100052372155827467695980841107628634015692181169889389777631234143499193695260459032940197114684377454131291655069706355255893704752801062188494979457025397653027146749326348088736226460812799479172942317247480761875377541217143290389732801576143602482863515053709468186656258350992848149896436085224123188426184040417202087552058013154276003474523541496855707777991723797880306739620137427572032860194518125976436340732373547843772386137468419123281998667527857427005592466245345389814328651082654960099879342702776488048334926196319662181740198275783278503911598651245000408032923826150235178749914090517979047291720310242344451020120372949167880626355741632654942765048621077954482425399248171591694500017524697997873308256992689533957932389675414369257520865987047628602301995154607784987898662289113301502043838570424683463305138833486553646615396627291504183446789302647084670638407143253738471817132883249825710159535896239167227460051942743506612799208516749070619904345389153841081809903363540741026690454768755296502932661591103758621687523678757103300462849832486982586171510413680484128248085263994660886510141763307774649066464979334757391857318890187861098930760116820565527507851211469894068767511778369797770856679599809839628647923890750459127102659618623611757214531740022926202289883048585246646511132604953594465202015912527612923094259659388921403669180931939279672870380454119964150645129973277940622322211378320856309362344371617247893207239563107705931555886371301278912165296023461555984018609876735202887980686389902237870963078629097676535820253483670293918405096183970739983872919298240602945478033532373700154069507346518785200926955779151048726338272870537359158034729334366267756103879718963692551119755847985318643310302952060521672201429508270600073233285065784812502508115525120771705575508685158927555236637702425149307604205108395685290605121441864537734287730950302593336960467510595531098488027871395995762465913028665293085106931126042163973179665614632400258738327302052255868329744775438052149566390893975736692783760593810349866530507721313067012378958342275336735387320582124852097843937263903479573186366386941983561619807711271555597986728472812039246806726201599425145015878084592016202587968971654386821696629655173957210211612721095862308877930506689160229077589126652162507336225713309105586884048871074589721468595538936120208264641089167346228456596707150827171341752693232892580691594280829560896986891905840059788837703945207392917777171645568399923633514152802353647739854262607315669640104403174023166889284787032239063440506574285291627268379854229257123197790026329476138164624398226699814682466044946150957405296638099921081493616016615460291183919919927326723724446500359926443939670244500274407860679988727205214223440867574059775129742338092161575720246309980648812377784326163705054830792727272201392091219818895959861167994769180412485208206425392930545013887704349538165655532399196262110406361315849701330744740437996664583678626254981644976949653524697384876007350355266672182953765239203043392369891913525969347770043674649556704866729894650998691066298776363903014578873864801242293890252270672439099313072946007271378944918670808105506765790686445356206595730770825733479725276123230164167960119652966264216972851867200688564599104507845202073017938585247296733302032726454290271948180977094932635098709498060374685318055864433632087947295023055440917315241326155935311275543874084730644867756920078614322447951452248050846315488644854013993248790639179283537284191147563943561025838612168597055329165615705619576002232953766182444204119509100486187012330971576726404938187032135572865336728059598827799085047020058048495326158074035563615102624392977012300559387499007635823633137351051564128463837496120553238460068974609719212279639868000073194867465523749478716912748689022375726207480185370059688251226713995044379443976357559652741174999782583907450451048767290678205404834459532629548935862708745582586112845479246683263814091906144391668815513756710766238512552815049331099279139730815446995609001409221448930105848642279779297750857646845027851901666584050613938377661504800986312641687733653086596212567701386907151688328831692263545179488580014398632761690344085249716293605133423834268033202414722851364463878555389368544207010557702958726032529360376974582224442749461536132234824814584623823238372403391320489476427702669490638875092441510963193273571046878249399782071270792620399508616658431337534178993438871979304145957159923884248392097405643988009647280281882039218997891796292562568354871763946429013239619586394472646005740281380660936220852004493027857231391488516185262228454743036110925025589935382383714019205647067769788508366547061502451552612005374446146174642738127047596025587063167299475109152672094255945478600483428190657729265712922071221185442421492129344652099036419743567767851778347609596983575456124139225765480786655155759200034884424810944131917686985748330028336271537767189307038988727204557692662277964057908244211611525677006181838312717782734015789722539785291400313794237796606188148797873888002836558721382008804656517689016173407971257611162785037834422342546924021565509953498217296577661823338687369872314459965182914838072048292907280859821634451621877551889613348897271942294050986592699406880416653158886529675366863206775827968448213357235341802050487539547946813785628751624165113270307247408362887132829538896523047117671045861457823895108877084790826091540860504619210773902052358974305742103655100843532901611924936460276151843411633947761653619291596630315313344386582478517798343679549377830132686729134812715030621775705651696082542568549218795243313469850652278927747198881017619335525619031141944254959925679622630428716514400872387929836348561608417672130900068681779782280040983718123482731687040022446179221466303454545255279918068700363680706991800425038191328735543312008465201760712545945489856535350199671258483187135385242968192634991368714786684030394606747294007246356438451085733688143141156134097886770486424563480832333345845927480342339394207875303451510291364749128746105286567449475918291239366288373294079426068704737173017095731644328958997327005807085844063338683494299312363242938139796094875397483114153547039444267366977825961106898914793634231965355348841250681135686035885339928637759421087599536680245507424598861949895190013913305545348527457717443473015976650295721747964638527591456824198603656291595903425293544667250538512358230472190397766672312983454730666125454681893929209546527074730110838923766615458067763770411782702714161119856449761546668488735708755516188491893990038673999948110459506649794639104509007656582606645149791700579639843176448185542762813724531181239522780780240109883567019179758382767704431290629360922266206609105329965018795313275483432598419548085904420487936613367846018044858017832911185833827744653982881497334179986999519798352767671325056677126965369885101786444725466408675437165614479833741374373449073273537007990413816043551873343474537066031557096561125425661391237310921419586012516425531839882844293358299203640746183715209154722347894701632670679485898121174634706325042447408527896270619170415143980384580590077242305373640074672693370518811624240587367813222198786160242382462385649811329917112420734023291918327480284026928590765301197911560625974259227219541157438418394360211365559335993003170293291391065505114103645832402241426085134471290089932894502603085221863483919314637658286661582503293119592764621869970375072252762936504285608333880943181009882401542465135834318623813959678776782567156630614411910877732382051777213952191345153903659164557254503673801453463607322311489675707657569231366201768265531215834437841518465652161190250051495305634793645098260655610039655826054801523584915384148023425989897752728525475009112271157529570249981292670045969684986291579693395185187091052038773137579320807597399737047077333715645870614479438067434848309046116516118941097361523794947953269681014945932618994515140942121843698109879746117810977397509817358928612696469039487411278652132917205639356439890368378756329391417116844965749850476632829133680039412211709784337901221678205891111024237171599861190412398884995638006817960295840379101171611958217887567204501065712948423194091943285375073351480913189887003084241312232059943967323517664016490445307904231828017945548763388843721638155489085804869234303060155821255029581277688045102141354166747603185802308338387802447028034900398355309860814088725884871004696006059702775749433598415943749731506598702343525877670429148365191179048993675293362110595124176844064420900093496948251392278494447518992504622980442153793287518750989082215243682541972110070197848086619204776412852454575303796053367540886272564206138800109650608189030639106659243848101299152979324008989420259348375389939918064393421280927357069253286841869737776415734576520833157814930028925757530287508394419296866357184556903955221152412468442954141297434069420413912878909070332410266754431180909010310820937527763702051510377747772893639181800227652347462399652426852428710517384874766978773367409205119426245946216737413580605967386595835295756948127800135940712905136118644680355958466633438857689524033964302385811162762461996389554445116097146971232064058674128648719123608684832464654463134012424891346599086402310930695692293121362692904252584429786513946486116928733639337846396924062760591229862208572184568485609362232163092026342850285706684586167991196644353778307808187891164859397864264764184356546046296803849387099174062292524062959292448222372295567666351257764856803514532590527358877418426517718288032232764207323631532073959304155240823078235651833417573769691368792195318054844102133772457471308047780931853977665944636277345316261367264012597837131620528950971366414928961403147713781389734982103307725013557450528743930748965467087236671084929115312877617936479820612735620953998834224433111504369232957094077822586330944443817879309222639970040925266935491985325288475861567000134687720199844942122939087706368933170644551515377478895998467005484002402410447706078783477408878877747729243218260055324256452660917170493786761031260549289822168823297274709354829392388877446416550697736969600567064307332144982634377537668829906009939159133834839983657732990013585478456830778855819642648306115707790164813685195006727569577917872276852896436731016745104167032662930651574463857995120115839819914657374462168388941750908504448428511313641426083787197575914395222239592857460886901482669026197734768970504977125553945190716016164878789075238750056579174033481739130164586430994545962051220260740383451638553037102564621608707180614781942207031263365129348727758406043506540224069664744569279046675389620662862404393857209443479139203462505569110871835160436954019311288194932491041439123980206718707161157322555405301851098431863847162808243879316412726368499145409032571560668994206914869713675645674753472941992469380698358376076158971240063477259383035650387448146167792900964858728433078981379161891382250891695964995702918471859558439439256587898795833945003558480036650143894722122415532922969839512833151229009717128661627808890681875987943418090417145633715719061891685415135552830612497059400462652869505116468342384980551778259834085027082521427705513038654957435753243053946236364883538459606923087327797266374064090762371242118837709982323977876271586312898122418174386527866595963846458607744764060879694302128234863844351192319106491001676511056282407321901749556416167365135133288038685050164406948120906510987088121580139894697347117133221463229768649434162880247412770736559902811405191583454909577694223556759195801173317759504948522451906567830708573313265074256605404388406826042094612143696755483807104827555922508906032691458343245674771208467241644524081458815573080755424725180664212772281363239400471744875937999596081548458067929559919209712745774852068734098634176809579406758361124275698072818058268546306526832385265076680217810298840292856953278489065420819682183868038858240103462654130173106619361139143289374807408101295681457819296833619642367291966220478926529169905578932524953737924284553876818726682186597852833347302434765335086276883670746698659921521964548403436498422392373497697387224067932711755397597765323316523706916938544527685584464554020561829196483157203617426558382932059869470757148981921925950414138436161042557585900684321668352752117264052778064762566829627319904451895864036451447535414694351082017674641548101871999947096823422339998867764587080991550951977881026552106943430121045285101932033442824919407806188962492822131451460240121944679348493339802610055368403792728666338030774889095995490835459831628901781225679846999325109855875243089376695697768894736917838387628827630483896985662665403650986919912047504029565111063118301286323758599275181169413766328990715403228165608204562469654166681113834245525150403811333669210191210333630894471523174728086423238042893053338253046035440896666364611864680101015313404343028167649092729936398139005920146246480140836431324057840782002868027296598708245446876205802449610568191800455267273909404630130150576368986843481766109023581298546529073731998314971234548007327172688603365606478925752409974909092605262500267633644099882442517853452301263610698940045498564308098758155381950628079599566699879634750679896191870624827802129833030009784483660211030638440898694340476357194413442393812333985080155200942537595002477988545218562393719188719213292373487918115849142645999378425395610182646658497075450678162324093031006621135403755797151227684364917905971088007598373795853849859616195930220656207852136916228486428718315783709276014171842370849438191493000724117095950310736054323483287461703201497415163747844169835831376600055142303204087125856627525675120675889692750023425942889450585524944402241073926910171131861564041893650792749457603267115049047518105816329396062161333495765079805773635318214594406132136134558300671962945422242000424626397891971880227455446648715014731629537647539865263531769318220282481061845133341473656216752647995936269679944359089683455779418011902147546835098121377864490186479684533765241658149867693130948156626084203926221200247695599561571298081683423382468974340198398803171018873367593737863951926528643211158240049835207662700380884937917652377906888885581145394959885478385063716339814777644412759498852665795184821260391839891762480411671988296583287627309235443917450041696941443259060403046918060437970605428570989902052526781298355633321699640425443095649165708954989422900941769982193433900805016801241193288054921535574852118670637896566379605279736278740748183866380077404560831509842518573028105525918019085372069719334045049313796792006762799515788670025572303079749963993582153708062162850150409337601450854515714443585713717489646260582539695282573107645597402577132056340963225721441295874893868550175780173200475704869972672868132365814466341431298058071442190420667443845773841399698473709428789692198776353399113197494513905910949771730834605918398963735614172140947209070997121538775824655248702916794712850221546038382947965250706490767186552871125151522241594872054969958125101418910874913019976543990189954570502392530505691754011463932631274172346372013471984282576935881656552119291193771444824429026637924881561387213551994132319893860219501102730020355240986591471853777540496935461336455895512434924434044858366573762763010209158424337680081159353557164455509422359474535438120589810612908459407952389996937799628860395585972379604166002459101778709628426603453046556458041644162044379544458029644300444386291372108489099140673436205389215785109484301902044509609284890712626827844728287107496615533996050853382467737398572540950957371917489590635202108027848567389823309052195120961988892603059587460631103429171114010854412624857838494374490262606652633892472537655157706696418778482323119447191534464848091588026662899728297158068432398992439574147040264255693343379190375179723554318456447184705417452844373006480193290706846784178470436951977210578675451549646440848192751451752691089993814307340424466178548821000141095341157001395640016215774327576161102590185292904451806623200535490906949425378769575628916989886769247027309590546630137423387922697151278282738902336070836826044301280895327023981965857058741851589903496123305310000981406438066749224767728345327822747536925011660536239125225379871904121276830144214524192290751367954223692058686782342514700393067409138947700805723530823985925857718311337609066028040636483070223444799963824342723935602879611718196396495118789571964748595583464146414296436619731315754051747989499470692001243363653779657063509669836913603647810292661337314605561729225914417799975829570523011733737014804401993948043791112109018499153537410878201755684873798812440858609916329963004870716633235196047587602106641188999644806870211126719500435694461837135778410452287736727562607567592408328322753978796753053990186329453921091418462354007037449656500501997187465025168393738136327697872693245947574880233095425930443263338695633483622363594372468715534416164509962649613721303461094708885082598427099664376587683518143571243475672168019903849577466964702590752478628595443528094569782651482556682197714514115838687694770183680054826466388463975110525369970156717874998667434244077376859095584275699402594430963563325237567000191736544032693452714732667407223450383557168531770430534224446619746734065675189117147711945444531283297977247857509366076175463560508611347619460630874932488703119515561594733071210214832838776793837229464027004557646654121036152147221566086835665216135251156920702732125887365843356505190055306880946370944132605180712597735577442796499516942653168098141948475585522142113432536136861784920574126944274018360661159197574509527661149044518113278415965109869668169694630932070628775939077092406680406184813468447320289965329354913493451180988434647319104586568758265814148388167506318610796834330001050308816445925677432600440821983205469423724487879241801439182635072702517225023409544934404938751163737490869041227315565542584322338847915443746339277204378355788591005790824715924663382608761757371013592328775316290523370445574675608435539891745460872208844079824396033213307335169159814666587568488402515364816583104219744260343221713702274584179942455672572493329084707330344045440255636263187750193474685505774947888591146060219576760481976480280385025732475713503569833390839168969678914621642439502865145602372912905600757525273133788475696238144103809856888488515240837251188765203231535456391052575551881415361581892669675489093806784409215330768585519968045836343175382870610879842475404538807690100060682239142821519397642462786630457211929862016729898225170057901142872194301451286849322916372584281721539951212741968274388403387798341531483365958128320553084154201456375152591580176362328884203697301098112577374972672236222300556398888829739245597061108709893711738171527126734907791874516955965438233007261922007920069719998887821078240633847596759659745443739078178397264876124298341255811888816816927451699007830906509199105146994510003898994739783225789477965201156644847558487784185694806187569000881896961326735882186876623148394834709116751885522673202480244911752607354205610932083283776193109232828301870857256282553397869323466399522212658212829048678939595612908109998308939148741239750589163930675616982136741515710445769802946800758696501998907005650492530316593528512559891906915245848957477456348084833383470704362049855536883457659351200047147834328069350040360368053116771148412173256165521399241710785627645085943127708584177653078134641628673603294735358317514846955435385818223236929793628855942654670150719009771447607021473619503277025342081566283148177575966855332343000051000481558504475297657615667180884287823111005752018168492396811524372002638469294452748262123114564283482504746079473286918607603666009667839323261970435220853610594644031242099825685018262193745467429553246138411323576878790258644152569082699201701584117710195771655566074414320359881300847464027934790060438252360015295430042700044092220509287519604227292802201255875960488063862241186469899587551777844883404278835477724135206251615286954607382258789679609903167971564327567473618624067714816425989411862778877874621004409581881273185211191241961021591326337332524191755693510069078223163739437933545163789604506906998916398115728284796061691164936885275372143463365408645897757095721658995393501755503797575122919977631721220792429562266218172971942916655358315068352141446230307588565767410231784796020180875156563210082730191593450283031647497067052301764868457526069460512475787525266161558594527091708061184589443541049449447402222434098105316600939987043294449079604937544646172891054689831473037015696446832356541082505771696333222358943491948084080218338103373087594228199437435034951665935608803685103170558765891695878810141636732514582072023938691752115548583456085664509646845309923858309384872906995747904875763270934904110636848250065033587046107847717669170016671522011070738502692815484603153582462852815649429964190749265531167641298249746886072439949221101581985624411670095883875952769790625556563545768902780233927734169879362813532376547429151956185758179076377721491472181537748169168940147862363810752432470709678090109495180617235668029109507533092354502533484214912873497752308579560643509758182607772217484715753491422807874785340843468113446713666553347678249137733877904890676435140127664630822373602131035592825263961641735092510372242272697930829214314435854662913882918752401480914891942636333236659617573469879441315552130414180871734554093478431409526211160572090915022207997353075723677900976891498702289518987427634515104389505619409818049740953889531592395531287800559836436392643380236462684057938652228025203267219013323563283508518201206405675892760719427942167556086189576574107577160291336171158739625736515605898192943602761646788747629094260173780324296848185879527214066431635688933713564385101672359691028420251373460310257454607329666537374660768474524399561372048525921438459155290748507873926534125632669149448424986462317824684983369440015671327109006069485715514138739061605557350327487104614643453279380554512987332353337277731676695923777680015047944125084758588092393896675155087025618040639891502799920685503993560493048803924588124856986280805924484217058551958934062348590614567372733474350892884900357753915815186926205830408944541327650507225806365363377566645638898630064232917813652149489586660684734762151000481001133301670626499643104936935525974608332850589694875682130596828781139547506231319678286004572202057941125180520753817907778780692926586442846067905130434403282547187810827336153518315488874785406725985638630822813115538726412807650876904517375858656661460013194855624864017206809950472464257619765064158123478111354119332965302136194046742167143266759993718029213465033205489301561579054852843421965810187878645284885139473123637289280562439903711339597494347964067735791947292427879275687123530899748417423613567965703290545181653714781178512261592552305552089387283857978422714275852828962737108014359408244612569785070719899186665459912849066426873597792622576009683609748053889228808056570134714272180376097208484235717912116329636011044573204339536782135185716482652950970763951436333310357191357700321147904677948399040665713577916684352470268053140641757977379394182265937048878545245233734436188276450362743209840475666906800522732334780732530192082177763076652870405840068872845881818980614102990439772969584056430458216144291554706074950536923896156574469477265287559756759232862233390135259592045386224517430365436288950206627307623782962614282259105838164770131206453216274974417501936874457238270702165127255235630740251552885459836604359333414159866515906223118929377385748748093350658448220292329550542160028648258782328612929065212579695779548485190146557482987108829369602707524402386031812170664348975584762529140765087308345775512408044440710448293497557623980214687295039751294905136587194767485819217083053430917284155664081391757747614876742546681927797457992418226389853444676200867063568623405995620106578917320352022992118371221621838978322065590922866215499785983805924685875836267150799760157001936741086004478202234738279492333246880139347027506090756096844727107549964494935479597555372521609170604870407023760559082895604852277951606503939074554438216504256366263439484437898359724080369015240836162871404116844014760298916884144048091496642825640498858038544597314833174076438329553249463079222296424686315571647151814718966264726694383218137892042707051226334144666646188047075170501357859741937111379575737925381413331003666662581389557770493252271757197378164222786532328506280934825130025210893903342563361080798594552562224362814885504902203230764345065987705834927609442042502970091494330494376912895478399675630518981024148611572586207591470835084673110419541457059007714383960697813156054393604868675269003548900034621247527793917066130056465273611676719302738220553627961282337859620082880332082083682354046746813536204107816115674150540905977819981052461164015123880174207759028578796610848449001400533974597735295313606844656865422269351044644665328868851190367007777661648444435983105424042248719174579885041106457748732373760747856554616677187567695887719617626938508798860521752298619781884350867279066418626988250098482788478924386219580424677951718506167109455056598070915517820341662273496125493557483505341364195189464782180834514030645588990276384374665496989574388324151104738039085651000413041918478296989816395482151066102163490214736360088788997040938810896467551545953433831482049056873548563553791040976045990561615460306986098513149293482338110931283582807913446217639460278373193798908202310059520496075018505179813012870736469931913174924468733578261847901878116163824126533829919528299076696728131251975911023357287107080333801878414102343774276614447512619417626583851084859945989098396530903691771319454967770361215796760946124520810052779329490047949838704681352590830274498839236111360816980649538862514767482161957568141127696167612638022373830603058535788554043272552651455620600945737855074758687797351432320246434014433507754562595695048869837796589630740373293533434195942463629255237498170815520245338068551964037767294895718851315098051738875081652814325841153445306454109484599403219706508298355897461808647927730163170376143371670034210691939928348669211257631597733018555531956444336981354768049048091388441908734457975650608477154107280115975098748055479585108065621784873044332576407215756243572662373527336692684883173895796467660813147883098636355143188441051974052125889505214550698342103550630246951846065841862584605895043699675603441584710605968145577116984108726223816050620400794717578682027088496868091006453393233995047311489524682360008121181034310848937372959697013577351836290104390940255133356328967900429356597026466475324848346234338546020642808239200606164560420171109414787123098028171316947571016448848840775681830489727984892255110962725562954388644846496708356859342428991764921548380205335992369325064012131150638414538588323971587009885738287413713167386579254495695397326365593298645117681609690443086297527695310526000958645315832618028888029350006897569848930721726583976252106938858495948556798545406693083124879153733245783737538008959324413946102601863057808086678327888029270403218733731297666319648247927505342208048067462977790165788142418460478190543649146836065539651265876138354020893030276022303664588115399592814738360777172562936826977414434962733849528257721793591772583029021719013052653171232167133460079001646483401086136880662968276327519241096681199901675791344670053561230633980857592512554693729273511317373335807921336903499181598547902847019101805888791315338325661827449691542303061513460414563847986795060309675406196820474884676018557773230754708416231152560916390552808185404889409482384822980207433525321353560056914117463866988945885011116637679578223768240956164722341178457562285154757283638491706890456924591010408764999585930921478327912807565449027845621035844103826242945270991666556637060964083135327371194533013048155385260437725418929234135523570537483880638256760683694391647740741116096004526788363583845547800825437367571413398858332536164384768131898614324452417138331096720291855043096370280016335323390062198270726489068750733965454409401126762932954328746996774624338644491811885236087872922307473856037504893828943790608884271571777930675035853485656850730562525600158361924056737004577533872899617042217259706022861860791153680599317537138953474235956235063821436121412666305206209136439582608858117285039046486372726637820262030248012164490636525861005698025854711949379322001266748042595016066247605494653050721983007985162901016968485081122302449249911976463678504097394585337766738948543976931520158099359963229441306154719924024228806057869686325392894038986848574010550250452974520548969695264121422242690485757555396350743199305171160924246880152597516617379915346645142560673667534062519660831553580683264146569849715011000968014362450625436239888039713301682786303528962188513867348922647445700067629437190073441364282187184466398765517430856093940704045962246503624151015854237123792574001790650676738575342446352471347936548772482235854118164865455871471713274800931699628269862394412513183886782640276028223301029278695930430624100768463189772519539960834011093871391852276964182621168585143707051313901087680902274948589548338241334569539737920371386425049539022808735408580658481533915727914608533771847721736891286840144930721815857875589840720908795888732450172715258259558939566903488236073772156497471591808552591634128040035022668051323266007962534935236738844542283122891733531831700432747351502195170445013497014570820627074265140362212252434685828203234020395618188267893102280711981268587847256342379878101853218755885605695541857952072471201419699860405242766800334491826842614271670163625635286478103962565233600038755147198573658194182518429206713918840714775985972746671540558523192163064177557802933645887390575266124863609897928530772411322875911366881316200612876902555829747538997471002280473222347429505341513132191193035463654247962391909993273456109209992077099622695923388717815129993602818612280083639279719395016619970705032156672779614941276677445910762751957608601588927382397938229001867352511255833842911770885482031571369319772658376344283302322410321769453541476593398821123713753435773207590351339809117182739183469753983618268030485994577182540772682680427578794805567713726547992615060973153032649713255513938344133709650930600109093674965660728311530485218018703544125164426188228993278663289817566113955566719944885078004763125540537360883649992600934350307151271033880847682790480553616499314698762579432247581742246256243910748519931288953715328044024463231697920841461435348019597330056649122402536014058173671419108209521133169949856335704461483822783435621759690075279076783878543621617184316522190416113826158808324781459195348170370796757973940430584007249815728219390634195308758076721756008705850664036151603434701162339642612972580136374340434727876106572672308289849377415600147403901590930197353970008739216148101448002349529566236866959946619908344999255349705668992829404431815189743023953243071843076174278726166709461265029435105150239314002841291028216806326911972477750768953488230080991719066180769972369174783101764785016369839091049155556944658921086131433367146437468617573200190304185471854285543919999568291204190457749147914683969475091363534977617925863308985611050008733576574653222750028276085451155626062607169300179843860596056397698091768808404705704865758292271858571623874971878977892398987787286861170728775187235573761270705444624772679611775029380688690728606536729930098081134098719187618370140405602474869112351072949318849840398469724514547177209647327479649207659451120244578495122775800538453707643517777606964392725647403147158872884936528466380467147883090878133557406909965573334784353574774629383007534708608544002143127064869550809801223722765011684499777892387401046914104328959566681649359557246408153716588126272921313237829091206733308841030030728283993543859832322825196929873907872726104571612795215751966250917768620166510578351116170873104676634725381050187801284856128966659759963183857816070939953262621499835368819404786366314139979459891361126663806552671133409069473868189917416670071304749499518008435727504853512577700281385863995137441502391410501969342348493642598418811143392434698530172385716239001451491149469895339113433512199610758825862317525075069242736543298340556545901905574243466886090176910817846193905651021069665631321729286199978420667500720226262222727375548283848732433705898988077410869144285412261535446185770069756681281040016484638541297351592630712945329752819366091583997517966804424850747065652228041246083420094985253666294438690258611368162173860320392036289784230566230925207234373755485137999465742988807679073879683632052405382239395241401001985615553477148539637177140584081692669278069446540795810421685355301261331285677939768353370977788655788886642545785642724176084835362134193289305437184547985702597106876512634237206038075692573968145706478485977194955465288846172901152969652355565992916101907640705622020879827475199564250124879260356255357426835609100882220975108170178814338198896194550593037891103424043636816995529236183581678421362283196467109200737223009062122440696432442332527014269566094233981115099899446280925884253721578968015034474884272416222068996717862882138551427337779725957143916171646673523891694147873547898352933364037303050941621506560738690749643623550325536247530880128198127835290094601645921533415910359490329508278875833067973591594926949009828144373166470214122881303160892280668942164049880006656501210427785547492380377649648745428687014110925632704935521735407786826097910362720113082397293618760102693334431668681938131880011843910722967479564795868811478933784578953585581484960250000369084605412307293654333297421964041473561771857327384807064940568200585422586743190837690898162283587359247776288999054127806598469051309319922607893327004503135994029557161986074932304633257358977928691445158106500668891237881018442553465270116851198587500865644365203912389716595134761206006768933839204715264128061719871419174601958323197302903050572941240660015151612718968636778507802516867846632399803336203024017677067597301032705388262123426518452546985308116476323304152970997110327412337242180188389428828473562584036314495065409808254999588536218829338781182469434832982610167752679103136102051891879416337114948106053987791173549718303942708993291649467795029942467652022901988036458920868471999056281597492966194564640077817898377825526627454655804687963571461539648050998098467248682212464337136468821581002341677937012070858051798010073964467262033532944205572670916549920508559115763927592327722058090637884136111655068515564835964844529605623418122211232542220947279602358592883949599379108452898831760666863028474055209610281809752462415422943826185750964115588388652975242280681833798630713636032759943781310874429930515054604924606972411775632903229654567969523795449793810942848485573330793976451616053279492226447511433433093229258897042384668668514646689010988265584341785916837460092787794560817686944360165134304107104456138890488951939930658080025804336838347594917245921930536966823797899496819833493586910531300958213304839070008533416763432303097078368325997071989657254685591899320741051186086232049458557630274672375639348358361562510324384668743253733001140778300835519042757054482442494912566384340619431518120530967722609056874713262316996299263314874735405864866342713241213612691791961913472956916009864163636738760614667941031920043852200740809089529602348046112207033967984630105362064418995667564109136494849642838604537227346870205456912781342906260480377683680451727742532378559561256124157075258476256745656800651916156483758001059215410490902692034198041350013603552572374288440835783365910715113700532697979911697613696416870315506676308096871533453404402570084617681266897268301682043665503472966022360438451380304624673730089936896702968650200240890094918976115729005105029836978146779292917213636548137420852327437785606518644805715396051206665310237294306748668306441058196894637197754678685242639542267283177292836103494688878211376294267391298726142489698922725642319628471186812080505698920641593438872216911599495167515775965078010085481944305726554451887493480550072298194026181375205325220721324657373333282960961497614051224728410465913711414095709144129530578081232139923055798689120434539637690651653404256111861671118405922067270102064893996613492729944218070386690904262438631720810349784418280822720230786619374729473622644625304713215672982024579354790688644674619098910704263421127910002606516076640874287000481690078651430151824936203071225303058936893680124640748935965090559483491387230722114300147637809395086446023655618050654488211451383194846204511050354953904328612962093661064572145692961028072931860706820484932213980364135905431641112924951800718464329291559748946020881609132432121107430278356467926208702231357467649226008882384800068703598857994458179078819676081667321221543749541881266623761691675319094456340716319726720470040840773331195885981879028854084133484328769685587742244780818640164478592067560595069773009751688731227406292245227535645240002259955493612076162150981407056640568475223638022497595177619494963441659076704187739291964733611077773090431645417338645958827362255949865074222423160284309013185131502448607437514000054026039581012704111126173869050084004923802171590015294808744986426131137509368585498308470271317403821561909943331583645922671951745941677685502131933362712376565598873090559511757087963475910052549264076400918163797671484128735692554484469323756652620464502764885438867528503708321386342430632034743698226658352667188742148545307000993658037010256370984405413617915253769586434379326092395441669201892756867441032010447415263021805261824349004743209327574568470613652463917358103721194298760897420147482784197055895479648189921067885234126745561253058155507543497556632748168952090211535652563214186408704623905964023030123436683062162369549829584226506758301720597645172459170637871064122789933899184317842883402390538025872666823058856574755606202206597324369594947428444817718035505271905874737185275119131476652582446159265937160407100890220023293602770337829187868669522722512186893732027958903097588558521609728996630903988792894405756901266153191137247502763677545970848296469948609595299872015330859861212195405051764874149737298977792268623533279588608556216961455365175867634711166371781520452700515532767331398683767633983176924466095100687666150932125456773511264845361860163302288812267589079880565770448860831674639380939059302536521339223480302502543330708164694878324730566206012657584122211739489510139435732620625308053938097413855027991204034843861061691150222274335666817782874551819172206646639907963517674855035230449723222871837662307850303154443192177505961799464478401659772980966145762641920577127769004174791116026119337329131812859778678433717729885886833311249613509555997100681948580602400103305844745354994501386653057124091694815987792921148263628911677807870453025253899313679588829727853913152855601045858071363509726132551243058868050147243270258003216462583120583882863310266923152547311432190541015151849111988131956555557621623267917234630473788853723199452845059561825782145345353605247140364263708030891001751295443067092723156479629427683283660710284658635995078604187778152616808027622959990905079839937075455746794429685197801430856435021388031024164420975490344455519669154373908559247446515750668657966265319760372823257542422203759801189599604812929849350803279343684934045006086985754218882620905289340482590390654383959679148815295920353052976467537924421621590242683588185931575467455809835775730645517401273318225696523902537531309637043056638691700162110339654028206496083200569494072008850181567126977440838594337115875665004865815464706642845310248897549907782397110170411558887699813410491463670880737397093086788187215348714986920120752082424699882841381733405911208455204290445091102790378572317017934436858800535920746872619922223012456334001325959736516849901144062919151758770248918926561463720849337004197572023532839029149658293945871712422810391558452637547043314531183330385497873777694152422839485433251759436391035113327585338192588600070622632819590723051934829319831895234059058064446022683915330539536625027393091007934773412276657941771723122757899706154910419439689529357401290000734361698438352945532490554531211068445125470921375990634092703434506773460249841672992767998527059868929353870440744804556212051676231345136001526419865314343331340390292277433698585205536825297661763760425654293957352256984295695702699634504045901429288879628444582582114304063832607154063180709256968529944269928108748611596466520533963323061089537189768218425864183312242382223119378008977881024097778165024779507692884698926735536023395423468148026822456617910320048022457410351811537897905784295428907025715226043557678420306219232665154540435160889320469251690761346730635565688229710267175551858688532841676502673613573351642589411183954420922147028804791699466166050457626944795386432130456477786821088833541234619289182499385022997015150645621993829769347440284339755791070548967971209189730473156914077938930877792305973675754022385594417143421247539552812329280522392512411571578488943485686286548756309351441458340559933846416112614489302505130512886386492217432145306385106368221893372824621274722532620371191809757557119049886784769220092577753679190427991427708586654397966773381608488901966404001762080525150351602602302358968329460433027199643073544498814462858630370498778190262028628870417468069707231015041178133939777771848695722050602125373456709105041083233171308204376320949449443876237734448393820005149900172349827427097742384132193014418230384328369026363863403318966461517265249913999578464270291353169626800379774151094505633174890172258985429599455343078099255573333532293103487837749409996005566899488645626695956152685738935826834175447743365604450045093593772869361810000356429072981615519780311918742955663827517315626576674201372109557614542463056655153202415704896492530586356680681045871006815550068277844250634573634930407605528589378155909279892340973698796973907350155939787241079570587410028254687453214716844008115724833345412913517751576988105216812564403196158892186885370460218655902869434291239378925142449475571440472965370909384024943122598472479580822469274196203901435427810650951548820938209651544964000653743464927209369433240401532622186476724434209943807414520431704021341155870841013495640464612560987579535541144379488599393555382412106630999389880426442633735193329756522910729489460379132611528373087806836765991758731314013400572946913476953740815715765129270123246422965757285088830310696852929887758696416131394009321530833571511952235214612847762018541775168435194036481400276948988355176096577941299059409149671309736847412577369032829395649349996100461721819189136545120946239649371147927002676310800336137622424603730195890863283625694938350227362307537318797663000712816561563801421259564478213962942832405818870000727631304241242736961731942776479792495850678972101028086570211401434055746752852881068416470588828206474193254476253071494202168354955276577505812362045456166114205900165393373831401546395541229403491943207378657371960524812731754218308217214237201179127547818029479289469716559463328436863468852430032640317221219052666280184995897870905514781064761740072495728376736539998583118265282364042381405964803416040800208906647916879822334207112816944579669619434637217345701947535533492396513031731655688802115672988880840986545382067350356034028264115769978988837132063166635490765308700092192265117203568352844553723591861700725054578014150704579081044374428123909826267679346838588102205391327674731876087411241960164675137917532798852576195284591337147735877548876065365492313711597666244100794397286486089226260863973962017682933211401236549667186589782396525820997883112220010148013509223326337522750129840905874607347022714359982503099734314878571583668655290387309300204446486542288650132354913563910950951668007861661015657370148532182551319073940190435791334737636391708267082810039845767118651509928363396426615252833004659944806512517598175131010300749263516159915729092222622693332037531698091165807311144181802257218831414639655211141651862540870367462990374587366122057174033218230780624126016043322510894171481328375173407188128742655273697192342877627892544753083950039708106883123627129640403740231592746640633841992163131694017802621180343998355911861277150301225775823574987606150961849013697862562571451752375823202824864831892893587811079530750415214745288770284882046145484800082010165680466475469502812833099953810902840400556946044644580913697469794132526086239858368611596105677528817518231971874066571134035218885769881560890706057472227096541610440780294382411797288848705355357935391586306739617506502695532179450126561046307979534300905046829008548306627576520678536660451664261690479780675407533939060627155579048376338553326735482275419922169843186881611648805386580520361178384816486663529651877137680829847564908881006172974423657333936400437692363839308531715618137180428906335381020972082400674960728865917869420286937646339470241221240411713541652906487711092638761056719622237035559879184918337484087852380931408690343504831140709277398023989832605560146223664534095452523256953515686909980467545981836147582742156131132325059141413584456480990233015730908398971103923282917638691801624739770819128464159035002394032754951734740790177549966626709841178917634576733276787768071516168777372565205235329400984689107718194940436768635870501718347547313185789116175853307852741631986248952185430544396112960411957043228222216860722790108175571791396873998018260236650860213031278818545720550073181102427466744314883278912071530356938179885818215091651983247823194765846745043321694707682786867269500869902917987993317329733867392976154142116072837445781847767176723942467392946595863982188546603936370347647806643818952858339722305674466860615687677407788061886883989086120548890018493171091540189704185107305763413870454598495636893757864804674122122290387802451440465276340640622615944149046422647375299490447402305095318145550174261628089080225292570970326392692949017349524389720791951886219740146557993879426458252865037924689352012482344053877229262438791760446188447169166789643998271908223538184574422531867581741216331567980377157293603202358544827909499740575177750917622427214840773079134812097193107216317032812707848310739267394852390694580775919056170841115256679684910387514062384043808149685712281592398524762856288315487545874023951637887541967225160103347436774584957183645942470696878306524403643645648435208605589411058285280988301106403082029876037847769926732808074002564083415957116165677374128835594761320011132940470836899519326284578850866611138677355196101418763981823939886140037754833394967244909770622461237764088872120348257898940929240728251356534088712648065925200968049522909724017413895486660900995890278977304903770663294248232953407675544350041108713575445200413192777787415056311426342826145347897714078792001270501111001585607089766086407886271557450131669825471947939477877360389088155532572994538113474972160751220633978979819219732847294989772319496330912667911755589027245347218467365613563908606314475812406822714280661065090086371748986395991012058770497167595911906256231481946542438053415189351714542019047638100642739037796974952011928951093628134803655628606057257675243552151107495639584124188543976302390408590465473291002019542803997541993378518381477000810360834429158283652755793321349973814322409435639252958479696344723632498381776375691216037810869193672869931136694332893133646881576602213139548341239582612944182007807870829625648922384306748593363494723871645520293325898658798166580313803845417975540330189397095897465896827593042028390819247460937904248772089666368140801573953551290157518657143872208274725175882776820249529013502003720303835053725142147806276421102681843367837124446796723489623691563463778694526795304943639877237910672589155941560518375659899953881217151197540597018654217068254947149765584415581631702851745224639463849316985997028556094942566121773329172774379805964662442862459253145627801699691841938696492387989916710538465922321534873491674342419559567728432537709496201832921070664342311756408544967849506368177445362602937274646086173928657515316982891112135795969618813248494759982806203532711408565421443970892579224998152983290972425033189183675281522829103314518333506503740329215658502651807000188683184725713305023547468811951285524820101791314249837753696494575016089047823881446429813764336675684162038973905070175866661945496360821410086872656233948314459334293008617884055203755415961312459186648934412808310969298345922869275944954826786571231993515227350876125760519203939768842639669285664895524871696114379179239345351680528690282785975663272196348388757719238695750785163100120754308877466982437224447391050309011838704019997098875663523423649617773659745838866787062645039847724558486136716386038698472218005605357181117299623401707750408935729658170510050930859474675029206177368086851564292813066314400426808982191315654256670288385997402997167292792469254979699025978755678459612943044271263168633881493639826895036726426459744865402511740565955110356322393223865165396012022431880809600410526990657348497587647476643647326892876841764511406095440639280299356785345297714208365622211315808955756330216923618367839800767558281456742090821719973894645495878890250404322509691302993750210752005122336247776311573478564284451917636319135008492708393993264322012568539368041361613428361553251028953855230094069932480150293341156386794109091810922533723675395164542060543347949890675871373099814793119709242545222912891717028663206345303737690951581447956160954746723729787545404967452533142136925898616199142327048821406098206002900619110683748356678390967644198544056997622746408399054887416999714474034530478356853115603116166283468216389001848604560776668257010230541434948597580359560750820247312203211701464354757488258743340893424167932025220147668183773399360441540585174320333034134242384322687263410496069221172777505419392104881559820593470152741844762935479004990654574364598431390280655004133412077508489951656876139418072278841675073788333331718677286731272739001932038806407626475985921589195457163729402725033660589965292877155126515109478212309106904929073020106311023413954901996700430553830546402249871006649265596428089484982593177148958914918540527449850938367187717043623631051389600223729223248230755105733022004078076118372775464063596275128650137958068574580725601080237148873194944736582306078427717482233395092256809767547643704477476525183276883813271302087692431881314521109434898587872995981916898275939285260144333068470385851778618904684590666753268855278271347048750210355078014682612331285471457493293400576286506817282035810790065690469589220167125096702373248868433836484706319490534681081662024205784760687605562180436116455347369115348993241151885323331934374966875251844334389580959903049940437635764861787839944435786696148359859346452397100573129117374573893400612429328435432759916157788430560956510694601075266540145514577671184799853701790378036498919100919177093716199515461046888509322078311371061725379144676387338171166376069524610560741098325209775973969815403728390815444051242179094726997623977094221815813426973801304430047804552952240555853469467287111609736914244076619783645759522278030899322181847386589862712032734612640382064650048663790733110943149325766939306952729253459679423262581765117388534187926594274456057686391018611472273212689535910150480380317136439066063626029309755848197246582292638144521957576702548038867757381258760021712433735341937506549801201144181840995479308350315437988714415934278372479056725923369958870762764680762061876075556592830763856642383624982559687948298026874690188909428118201846223493924835225328640291225060703714903410995293961539084942164635883418687375474212720146043225960060713396616588964642142680905145313702697454239153901919257788768449232885427260636402799837314834592404125261742391681901427200377527921418239355296460730797463472238287931874845683396066008185558879681003999915585992175797487196159306095055738599628551653333354607880135122285808028198187565628153069521908870147337421593534061702657666163228607674634456995117584700744437841594503612761167675394662605555449788198114206918715633222247815810454228763234147038988738058990063844166478452156448505480886217385123908092188552145097038116848285138310983901118957182975576264598151175889038497729124836271590558226217884090453067246186335585524273361000467531303198486035220678146456509417020506354727037646193876941398558616970337817431425796026864076598808946501755684220309569935851350950552265939690384759399743084078981118777748093308483839301152227631083181458598447462347626327051092972084390458975623538152545109777288132691347643712255942057053987719668852155272707550152073675940519348021211422671017478387831308395822329349201017212373939587885254149418287092404897416884524141001330359911507621891660651790089260200847324727066100880974282253302105514405267945130375789809022022310759988593587560644034897125973972924316358699270505800909642222842906681627693141373099688915473834728495471177927258158283868338550021179659492926749827078011542901732185814396370768526287291410411113830703225762925211789302222484038509702848758102636505353147443460034863111001031637879386132958554028923897616124336346202216604169747089764270669922207631962541672935545130312907270346089906580183997232557675962074580569923370820671655684242258748472553665430954322991733080571201116894925867298836595079985199714893276838964871549387608564946335622528559279945133212182907582715617486291898179402106907083336226554183838994350302832571544620495660205631095194524648536753305264221921264978323774154486624623772273344834727944019813778798325098710817481999619489563389068244401523144476133286961970678228600007513053730415831476860976207723472287885378777242203674720395785505394374921585365483315422573909174489871363727595256243536750883333865932393917688620493146260010654160066955640554094244191755427489382452008854609604216922854673867332071708062782360148982134837406838733536322043467806700280403667698443538062907507980748338082921367978712904004785051971639797240827457146121049565549709062227010449606645164805911624058920403557658382638440237697243140522719121774890467522556641107326369698483712387862015132502196915408487863485470497033989525840922854975386420642326465690505851683777085440840505473039206188185719306809506396213631884653853219653475029382770655169008904789562595494074088020124990588073743680194733283925061937062239430496689511467070278887692766271894034369749672512103193306739595999933585080129117357977724275288097319902694413808410282638843883654332428621271073612556385379341827347320807338812927509856320374988187336888093970265895308365666737586278529161487343735934310889387576567976170727416627134230831568301950950405635946748914186709333898978003178076292602118809605341421984721196503011489217558700636515814173964743441289531315663707942772670638999590088332023604831697873393523076658539380177093364729936358478279038839519420309727476126586635277938144307518084715003430492080768311678428533869986022352037651438560530622893292828965056253050198503369101649549723505709664920247025508285463921888538405302334335177414250281638172027155410906797730674097901348599765586306495597448687967188699774578826577517659317966240888853935473156496577121610965124105851845543025234647894061610840452591161003186735783056760892066291010881700127195405262035043501903814237386278479695526575231763234575829715018830955367825116602707210865197289345906398933364385903765427575214098848267230434711584454002181005590178454391107805511944131373859315831500041144651760605711555308211663706273860986784543623695212002361809889237621734015156349484826566051471356021771388849485404927500968867563007651548860074650459283995447500071546060951788292126764272325391104145206581503588920964024226230300647470957323431912066692034682171909778792531347108813026527319506897013061216957335096999149793889222796822378229949375977869182894949515419214760182839001282981615348534012873940317547485331525016393102171859785170017040740288074628285180061220151181881786905358590151026706293615464504498049339847835031019895116039150577626596761954750804565550003228050464274067867141705022927131640413311793319075046427468391330295580585272544555766302651661086887436172613522132239682499211992122269278952213803865066473599051401477610318763884699152524943338421668950524673538531533923623308041242407620881126024469098822481326298910956589653767796020825993917037500943362470339438980761323837406261652430676563597504840312654395391438110840138448305848743789436307845047287960995474159646219315794405537965774421468689330669384287160414077412524210097397489888342392917075713107451883167454634790258449674092828973085014699420771528626168836139207871102234122037339580593091024923107100549544579954998756064067429744783782128419718802996011299997088080631037155022547846789475394701085682315721215949203460318641019160888639517851841049437745718181567347297048554581334752192903602522391294899673735894642460800738319595386360918329444779063407075466017567885028028839873277879392608433250796998936220207215386629593330841454576330144839749646444972629263178079109286294736670361971226118866512593006268893888369769889237184119704313622268688046052215378748925239227256152657022345613126756230564718708509563142155113199946724509434671397657968571303103698339810917829291671528308394994263524459503442617339314741989314124712136893962202739366887690879582502098200281847380658062677246828647575671499033597046720116869161626711582671828580694061211648493977922617979847324902379319939198177655994604774616489916836647607676909116638829447541606386696327648506511649918660266273221032990566777966516464710608237178037953992857416461125269252573278944965624628621457882700529572983019313524981704916220940127987906579584804339923005771778655216662838435913345631192748077799466511648160280040722583030012080738567333605274164034862776746074100615199251649379060314192834829019298923205091637105559758017243493566780482601824662436386655808795694651465704072659022692748511596451475324343566039559836427961515381371685946268829993924427369186233789758278390827392526043350583456052805489509028695687484887902559101300231562714620524777263383465202616478626081006440342246797750894143590864471866965455140070690256869383975309259116092649804996101974320791873704565878560234883689517475831621866233825722177582780765194023860566397417093692970245147079455946348132071537450284406728026608644391831804573951530327229258469973030988251096288946257780128199665529057858807299246214136772573954998975690451502142385954283340008652265266541228562253415858687784498791924657797343325169940546637397284521232919772402010035593473507111309427882388381584524774407173915126240689592241416012680078195031136113137559051702605297254132390018345356618976525853137761818868801426833910309905871547133443305706934439426884319960125819818389784404714881481123380697608975797475860269402795392640024895255019898447618190813582167976605582771142940805778600146390184965266839821757445372357182944899057659499751479259690222936137508298621366571102296979738032774918468380523107860534949842636770520820138480138723522565275367500263818904695791730401219878201464413683310314203384160465796174420783339898011249478339113782246526766401392831262261270323073780307358409480572218797197538916142747967992945840320903297813740495490548932686436960991909510346341403664121545960024488395386841486311336272121657104482907669924460339355934078989950118064319063136054188030334836024530551683915304907231360883721379746637923133121107174074722044366347144198721751963418548001323767587859223542508163277860255177911332531928294714016966927969470959290402844421944309551210351243129787903492033210796047574080616143502186235297933419162483449247156103650693033424069142094382259577894983245705341920526307549587334583385148262868548432745810845737624654266800367422116545694414217387126795898102437970354943980166470644270213791243005921493407744346437020258281490077770411630733633723373653677255697326182418488777782146278590159428785867906980563664028886562900615864148420906986907792033253262972275454338418792639922473277680937508865559075110580971811086121819112971376502882043983967204460836736977516138622451640166769470114152523710206958649788954453582939688342254529523999211740390967366462019473816173147007783575441493322703560218667453348898103854095454587279066846630369035774107913735291879857023563771631737629221952643754968804024598015307763107552149840013154366459052821650414800186917760288722446879002635070299705698917352112918221926687721529024277492525288243109935211739975365641880338172849091694581875630437655653284747141542981350398350766649888706862365027958884371780307102497690359547510616241127262081842046668235500922317697873755405141309483592356206077159042778305210809398154958803823547278607299954343510042764981961978767353776279614930378843468182084682503525328681617557378827830383061813896990633366421548630968702646375323122235671799309364121929472010441859015746771501222164297444152725930590499691181148906378201185416720621870701764361805823267032678143539957323501015486043782735396641946411347240686989733387695111188432284266575816487416038709999610216555272711397642707729648939414896909206618820039917695540165303863140480588025162960275496704427727381367761570206800659942168835591953382594586573414257331412931053910357850459309641345603985635625952693080997017118512784069216071331042214370871659556747307655018408979840959571195838888420672843772000451274078402923879699765469511057164461566295764544523751636799912307103123145331856009612330466565541550388275975337752527992271395556562962655278270087020162980318362844328360201864084896504603687537781735284269898074038724988670087725702877000941939496347312394246561961098652472457185410234848645009153371676256907882057331463817910694297702938376037623803601259572373344629935530297673663117245280378631567492484360104474628062280464427148704349136131779827223419444454971838754326894315077809029906785290287625287312779026968682552012131016165636875443862290041219306942396918478301783716588499298709462457587770910327350160381852512310415760466969602641652056947822946168574761931036355901571872881987647176335633448078235008573821831020580947914567626592672061184591832976428617044663173310140026518764775076711387842448140608048123577990272812135707713618604546672717773507236039440797268721080582323290886991715588142241691252328640048877782665619094116798521079342560040468753747542512255763157105143031647320303118635468652069076739578450275802362381860008850947049881063874598798146994942645385102586218771639132949795719714081641639014839639186363325112179650647370176671168372397995351677376152754469572700847420811523287521185626632623473509726465076167072897998797704984852572297027219838653705965810485012828090498703998466690944633902388133696543928716813771688446571837060254852962428929263723026755761188655284193500733880063759359602582966676777046058362415910080502324293049854202457197825520885871000770954715692209483083467446965342666967497455377859531713347822032416437869964344721999639913941604554863145379660521011777086575594976692012708429806041025552868754635084573780961248143300657195585110776214655306903316962488623099734261892914763013665621848189111617646036507287728610157994522094079791447281670252947614229827830279337201576803790608742167492601175710423310021384867667665048953686360012495508380973040043804740346258786574500777729877662199989124904624303980447866211391904616504179566851475327736304474960875520299930015936836111813804754198051888575265195711592325782443199355037867597003072493214272051215723760783402841276300340339107294348940132515821744220686869398330207528694598736690062016612012976639699785294063996713979047793944023266961715574788996184098875878922821010481468239484747906746650354940190200373958318731200278616514722247846722607675663593677614332238494073341604437751858299684000977125231953616665050792767240647293694312128055778603066488287608505983304377666368871321555351292111074302346320731029518433156181050012150648451763363151578224985093897816384847863542513169456016584722586215600517302249692436191090074068053958277335249420895319582418235114368915343378557845254786558883396630812128298752222110758759302327963442945319680137210106780187146515423281995910308638470963052396410005044941539303760419961233818688876173935311813557572746925387808190614796267344644488803190746638608025357929229257470765398783475262055020033093458332580855188919365636513747863160487039457842275299611216597024579622602820385628276552735109776053523659668662263223845504895295172685489882042627696843278403516399279422641864732767092613122577318805119949765507041196247306296198197643851965765145073361358854969060840400401241823077368905956677736760409528286613833605481250753979351035422010754197214040011580067947640673017734265330180563378926412074546058042576567735783935554631490951057572291918553617159195750869408436441362064424773510464869159889667809462396198057351574748563509968064755869244873975858500471481552162544577329721190455760052474192039937075622536628539066840747309838802800243171333173846027607934930059255992813700001924504284423912571714968707659883405130100336709932400452142663594388008565817267610127928976430365810780681562790681874610995929338179687465168343747820410921442133496196813425160983992955306663223179795501826951959120280476970593332466109165291348994905615142833548935793363677683490872157073586449794220572264457548766853061020022236622567680874922795200825478217920722256488866064915945585744842316074219632598991293480253203783747782754264644950199935708494091677535095770847716489258208689615939691679964836353015964315362200364752244558521929815027037875262742465513213024119283886534701555511151243718726963591519439266780322273971934551988589267559788853982389730260761032244827638949543362862250323440257855490285974324652618678224758948172262618879594344005618435540607913737134383612370391049208463469499139094852677138519088393511490308012388368241722812730175431071939922807905298951392931247750789335857130835585347984533524628477036108006518444772770048654985229021374881845028297492157637512184335451397493503452587925527470659208221558465366967708097691197461304071515624368035161001091848156468662029129548400680530001372446691484486507335207257509260653447510176096679735913973692804486812765925448320629934523132893016200678329645676909222626895912422366091218977906370925753725811991579329174088983428831112231547307206085364948660971718971095950888423320854795994450242751009507129171847105742792501627514482575711445819862247637774002749889124480363825139216139456731120426828837496879737360877665557131139752516342455934154137266715260121185565598615521925912900920849644753945924926621040368534717890507723972123062582546245430252523802721497234706487638835798150652473458435957072194764541046715570505682345198592657116597486538216556815220361155903026413006128682973976327365668616764307820437746781020223720744516563782391504929542996782933373117363358227842431070335758293356976742318005385399374959086922166699585724236319900161188509618733637428272783949211873990254558484468008268133789416767481017747310384693742511151582005571851118213926088870472658309587494353410405649013695769517552003476817832665461921780281449317097775664143091378672342335870989643920430414988309003953481284157331245103697317055568192563268849917974178015530873768307271674245552848969028073595026475228999318257465612885941954182336953380950091087853461126508725724623055549644888192460629177389833242732373556059428734105860067271362085149565139178903535956151568332679129105741402627249692519015691783261685153204133224989878821468878089518803285135992288846781307220626371819052369241817780281925780991530954418360940396352778613924104993178191306589317726236170188622239788602133353005432646071077877448643140834858064682470032112333695755600296818474616684272014525193393504884546184636174326018389488629201627420575480423748378350287270197250378535191737741864823945086465705185071875296851127042178110937024505809054649568679103015365735044399390610965604745347257855171730469474501547090366862368023041635135403285854686505839820291408130418054638939321413955130130528042216792058159447202535069926960912153082858639369794364873171113805630636174138427160640697473916408818136319899219491273004499135416023177516406590735009565200292807706933234235355705212870333781898349903795326602293621129579255593167357585622167652895929816363124069452308309586284835732114224295423569415257388438657383998394499678684189712659995965404837446382824671322842759289102119695058384914801688482167336007749720124498668446252583531171055935329302964990396241339275873590240338236543150401721096461093539269554938247109937860545582565385882989114339423012208853984142941608471520511170002108210669826310886738179713092671101609447120127493805246110658136470931664526601639576159920064172952169237548147254865557999049420005431882449263387495640968374869591866278222532623823208841084468702438402016231775565717478851976910768768121321649165031624504410206414448773335306278261978346986669962605310107443680943517189692157743981548274960560190760747248904237941286774620403332281713682514120135025865702700849326327984487053214541995978424204682991518105297665311352299917736802883087608925283265162880736648915679465427093247952946161296888500350929061585155285243393986727095647915830187833407318844832772752708805350949984192274018206685508350289493143214722889108364436491042377668481410236159893726161677653071185033737537685051731138974702235537081136593918866233716671343986987879078480524234301215013857540077285846400890484771677596054572911972350153036482618859484882876607064269517943073332141699425812200755734385206457508041657731248927580669092254905776849644425733976015891611088744865446873166150819334753580126821055624992936399759782968949852093098642554937809575436176543407288154518013189798408035408735404281767947051836066678611272128742026432117656458738194455323036995990979952446299820194857698197555135973215040025903813122144832889220240773258265490040872759890985939552847877853764114625177715512485852750812688752499493274522635510625613830624780174317770869196082381452883055573783315078710960817215512737833155658100507575529761358706347945235652404471053548576188242826328111996632942916363482656825454997300578070921853692274092011180772432930084426959307891961782156369940722712367719051107964355970124924531950644269816955351447919977075644149552648405045529823975513687347149849171755048057638020496203737991158913787293618514481941875471841621279971753990788951230111889821829189817238109609562713166561922660537774684788087379145760998185486256347520832022436001166105388833611871459153129904124333606883624127902092836886438079919048678513964005717762813647663529436294809288071055226574517328111481911788891526007140618812012758660817237475266979947693060583596548233613270906810974656136240175787868225590259150532989946516366692214055519410681449931464543326898346953175006949247827255702796762183051188734440133265739189581871200235415449732003688322957622556929519264730045449562170109561222081051327679192928524686001660756866450227180839653481738916749146753339609497041782323733749310075089135614556722844271249574277875911028499418363975139654734913778242163056800593032729854303584457607928223354015431472019719852277328205614869058062752771687289422785114980381606267518372174785866560707792646436743693205209754848945290830995637508300959797975618442877629533961497445556810184186164425653659580502113941496274540549667457429510168982073275961739270404772919192711234348348269835183540473360933717706309924728116809243400501234572802325449911511676363364438579558010856218317652680218686158916928031136387723632582707169594499212549785162725124395276340427365441237143074992652029354050401312872426853671035235840384964281562807210663961436485250215961258506387558983040794711128737184564317269921231420739222406097456678706523322584476727069831532739575426717066108153440736880711013408891448474171883854887617017012231457525669384034083693319667561380176743675275546997662571264932424332563449574943087266251059142466459718952209417728687984520416476950557272061735560392568544339960959642752149493861856979652147866987321301233188368413161010840313353418176821077326295350192346283180601872544188507429636255161601704945740143964828798663328386459134017237782708157825599314698624547537067274374997042814104302119793895551155027998550373501663118419628815064033702753499579076796585852928409763524574068180714260444094828219892349118391388158601636891840621520478520837641168647832052808551393585030230543986166382870049311294263506156651806497963286385354024114483087619767022639394504006943329255257540813768895537671607024519784655906737332201524709012203385837144705364663907827673320016444627120310137121936657448490646288669591689697833077724488885005755908470755889124400600817259809887880247765692495931548352183208774487348865825833926077998069976887991581284127921613949676951372417455409218163496810482483880720848502987603022882088352728374601548211089859262155206942070627584976977427771436209371916218233641549783115021885653019894004874000002413554707423250583202440022725068566219514278023309620734938066909239695302740542431578992850265011065650703058844490800382353538790194710026845839361702626347982936052042041068971100472447385963971129833423323450323802701577428305587948239828348256491413727153224832552145847190024118429572988309521174633414076977689647725898644335531163183082201224200415786042003460569632681108231948882030753238427191717299527650259995868830678484149673910807676021425572337999095885186896794597889394548577975748650392059643593356738288203661725756173570477313285668810726135573876147502764627496039947018378855936183040172768794578814269317940967997606392127088267846923500703545378002921177402925232397111678918964440572307616319304029461627243009448920267643112333228041337141430726588047303337383215607812082052316766590162328003410585547223263728725976601190069611604930013322095966328609292372443696517733620368356410704268345803735362226090962273178358550241367957497414464373829029623288319904108103425966302891941687549141591742329754797043491024746388269538803579581431022817604367786890699020684466114919182709319149604145719721267163044153325513368007867293588705842763068010894648888256673137356119753234917401406829969066129284422608608780897386382910185005663994423309421238692237101329917150100584893991214522265582369968604771830543242597809743688492426272109526895291279210552346570948658956315755673830759634958965386123590073558280777664186747456398611126544727760732851321800810228988014962012728979897767747737496103528705494300926020769726529338208816748012201448440733418119682790627517343524204943230836544540873250451869143034534475736187946833007729487978439508345784849412635279729604985863041589643909851095840721564720993643180943168609122496545693932760534772095684912059676753949642257723723021770369843304023490617553745722144542134171509252488828313366925307482624549602354782830407230737965816127925694904042559178192991898897050515338940433567889177922178202301335984829312264747189712285091760578515241033295561030848461971888660514222227413840559061327419065089317335664140795333700857051838054642343803355059974515408181722096387103364256014737269355158197067441548253023705745040747427763382429742820000525177624940532447084342775890539096219143761145548724585044057454027026051991865413304631130080701731188699161943079173564890020166770387866473708415368626434830240694181867421405455944335605086366491819905273657658843497968996610183735429386582139423373498667544514871837186988762884674483085550646093444722491836645555972499227352727772467949494987861037850656912772822310420114223744061610563264942808346530685134798126778443688718606101192961562422268635260914881102778642742260198725005072364148053010147325600464918292492185823873557286412060409568613627273021897957984741334533260347721563697681096351821910387469497355397552760941080028190285931976056806806936099568097427475036283540356967685830426671191047053981052932588398161944891694758204533308941123864145252167537138188130122391529742706477294143053064201131054349152579324983231391967709405030949970429939155386975323489221854592035247703722475287943894975347443040709830066314348376279900284521061950737623150348237006558849174320634090181736403973382596556062381161969882435593723163493350429837766756926426411972413685563152212342448729518917302480275475111143329179285397703794612971315105268931222568734592341306429436353385221714581570928716952807299441565729607306622346430625491323095033397831573561558123922035564300542087806200003645676346566755857329518308244670414648421794185308035507979325686253210456319871257711161601430117851335729849284347759622729749919481892060988954268766845382395704521494581635106384486124482002698085139341659166832249845659316322771927819486018627998865412092261170540625891880691600485580577678708023317811595187152817443312261888377985021914661075697130847973033301569403040554567248069987757155730740164272837066238430444139902946226980793004006285516484616076490667290569632644225880529325071092594597037608284966407702456539635790499331940194694094334542805926572716755513203034947361144754642331915216250323394103153330156073719162565839873762070311646931372145415895159376576765219333809962250706186225742575257429451719710737115451380895900389419126089015128168247849713761035468456669205514745369586908693730258722412104006055703752506543504022602506975536720032255209214167953703192897524338929324930770888391904746263439307946669671205415872680174386604162882752743455994733923468645131977791746492727135539961299179273423160757727615946706318820860258681122431441671288938200681157803591444943302418757301761449908791457494480661230358487173470902130559495772166458678199312991803862994482865378848136392296294059330748787098438003480121106276299728470911002585789055689850494287159144950064541425585267031743435059678783276451520580946243513300004741446611110103543883846402139588594174083140325859775876599402920268624413507640642281654950462131254779155534745903836223248631525774750295644720115966735525506508718013699015061732605010261951483653905193896327326502081003348597518645172898488318971819291323609210841056944175080297697469232360078916480301635779491117097803373436832249833568218368342607755790602947558555530125302074252336830904895669200099086773556688537995917277548099186815392346922666352119138450637439651045375652288854133571294882564449422423573408113957957411348496817112018028582803503782399644109126363439075414622777078373820334795901655436052842034290997315596675185670551144496243590795033154438077887536530196832036093392932398519996938754968070116780673325449026094704446457643373024154861678633244052515214623858306986639426946172394413048071202389193518519437118490667988472350753044822292780296510829177580697541689086908792163546050002720988184250393859432049712130415707836823579295636456117520530878674826769971571435461636024167663820340118532881228336524750211415606435237247597814119109173510757508120252634628894303366255572848629783755783206738147871475485191504154888866305725900951022507033324261018401986238086451993910377051226342049582289963102468154881268388588006488867343144069065426201792656977367261365278794414037337047370400550118288324596700046171606507261502745533033243554478214395267874515112714710785613644944047177140478324154650154986635806134347153239651988724145175699679830891218579591401340727251012063162683137391658873680958355374484391387329912612446623833828901591349345729196868241719744771234134214896321409072436623392211844820747764385445399093994479796573363582114089586923497163684406828223060326600667005025304753835786082206696598440334953100315875804241558764590682180759577647625521952942221622223325661278374356279257925797408508734567029258776773841153652180796175127655496095403404647897072713903725005022212523333145348024651476850103893857011218081666765912099412258878358370268501724506302578781977514288542335456869522906006884989538957791666379539369768489844806681071946998664081780722860062343199437893519006573962332326650049238561344987703910173804144902940065605754642402463289375562831425410215997155052694135292163122986316667101770409872027907797916974055973656962680798319027695766122143156243396735359474145113889951638057274929944952278859009441611944644312977115867455476673366366268109814513437430440118368208518104128814104135517095471524704739316809668559501469926436332582151580079654936710767220293638348715496309430720392711061447941742529379223698447053181638848837355690535111195797001117983779646967642649783836422116362438311718655740680012651948646154467643233578999375636720775164780080862879962731164653764718783483649527915094788415419837214538433505047257368230580310023170298516390063943216375299308510548501156165650069746822827647298741919184379108304147147699160569791553838345713377915217112249010559740700607573841051845070330072377585375730107138941478003604321340083361512969302056074073123338245203754279770895648885803246216889944570196491911641421866104327745807165517141786373298401653413240754673775397061891286607492312096034056901559641242636680939681231983036214133257682632721492627731928576454217041580929302246077225396595190597222904409397988444211881749485584008669647232005031673642821129707591750688251181923729141774905203229002623291307328535887805436426823870233929554617314411525171964004987954422753412540482094263133277316672209256843965695856715318630492004649815907356889234177818997957929122007394643684803288355169325878969669349058867303120278485010264360585208863453694316210121219157251957339512720735510852073224602264551040255414213400290104562853129807507874248767121823075443543122273719612276637465124363844708587109046936905807002531151471016155899791423989283482680053085472418314522035850969303671709118963102259372783760809823566288898072518615648861416002593448079847487302033631868429860386224694689024370741174094874943744214359166079872546682613377265554162823324011017195878635443686711377351194659975987825106910232759679244629122329932518151640444755116267446872933125793565635149342213265857254192341353465647619338264502869756216971221673353969786062840252541665323282617639436862851905742440882097967554604138580163461174406517880114402644468456893818968144433791158316636677967152505566822307454522638489820960403900860071385143557302424473352587532590415179612852268795963352857229887701968529333271426672827791900945265498712102686664783881279724072772542546082895268919957769103146883056148920536723406940972674787440756487625550470128732617885462892657554479613739062838126540718729849123980256046825051555256967062986963671964704689686482186080044778376389143826249220356162101716453400564880423747298494092126765551073990347777705441013496190368669126134911820183289405466459492450896020632109426739521804226166720236444607210526336289038796636547751215429106048759674526062114455258885500321064462024618411234584241250843988975611428877316723199634017986442374812410427751851448252981031139723222104314533834494076748417954564067556073928451878782886868190608415475987502439276872733900118097115137067169366503587185726156318485868238007743047405339837365615818935333758125951624039485310803366793214770617240844158235379369999144065078662347496590177414296186936915102607909915055177940146440003614025920952614741537498166743491957872669055295662929445334098052017630844729763329730034053863066634351018320426080594492053019267123553214288739669258631598410139745986816668557615874960586262746641221851132521574609949081302378841215754461460200389465768836523301678181403737547287110731204281314529607139001270855653169063332280287162049377492586177425159212533363439952268657956176919211676585576083573189337519691591148974886310909466938297302856030704396491662458644555387490052864530063101536185219272207118464908656143868592667059484544800586423720104730210766729538203293781144073004183262577083827471363128304999809316072679981177364631535090195998041682177212034854772575521743252451430405155939310586494812251185747582425382758982308473295922614959672280900941022396797317156690164638836499863883913344186054218900633174277376585575638238842041757620222415269427102728462938208911567387074913266449633821287950012436777521781775061282701449468473892269653645638443797046341044218087782776348648522554341225056285027723261153759588404842652096522612933388422039983667984285270990580443092496266572453577676791857511121391549737115792613233347448795941365053433348921722241393784439901616176412981748774749725242628194923677066540811109013120026933901634534304158103382386346521935751427730541129463848434457956056417391440252329154438467835684297829082094385267314270968829527100662485396153748753702347140327530076816442194871384821235673260732153723334001205712258863119605070586424509388241323193033346356147443925799380225175327504956554383586331236138807119771804762606681529136269453517405776971816952563134270441916926446636558244348990310229736934384607174579466821179628218542536232207407577838814980271595021257809445781663193297220577215244185170585771073906736896612437714858109167464375732075607885298257434386970881249595915003207812901937024708478076277357775789510277522049692528020455855779520394534992579379779130394371560681045305688894695358576495112064465005559141634336401954570652924906184615576626944725810799013401147227601448834223141514771770504507794326945654982628303516053707748091148775500881025525133741470154581828143157452715655477417946429991150481748933127005378558312497235624103291710970917826449724077410925257852112622945704873359907810606659555638577747050261920294039517405353971861078763105507855393864331489923600824446740814965669216652432570181639878286811192646651347135384904721964585446398226372742333124026050573450320558080613178398443672737795873727661500487719752090584722461463276866707098829346925076196569095050919914577667854983580707336246489385540570414894906089512167679510287396516433556694100954212753447749864312490759902516736579438524240144745433585466934779211105870803037941505564844232169067576420002911457670635620536540627770545959607778210932253944400222667829445499087418408073358924211728080380548924325579684060134279490010223948004289436545062979196355175927762374227590488031872095201850667887112679173571044467620393314710520491379786225430057048519647731213251087812760461899098014767692043180290825583301966711744806488843644834548017033463171062126200302233584972134107602401384979892835047170802759660558344907973463408117217586054530261454640313256338722627553260967386856838999327021174180686811928064329571076318431459573572115617264419268629930474439546305221217715239209119581965332450481254461810151072133172133639458531647866788888731624518004180677221433750621526442693575360131513760686400175581308916662646114030124035202111887055173348076046848522979058943507870200770895064069274774853098764475451081719234670840566408461512901916025390137037159227449498065511311673307523385057728637968569796123516469908451423977556004361692844741944088194321681319218715910570138339481842942497872880619574385686140831020266350727743269734583369957273554873057111829791607631964559626802969624931792103702543110827428978855082456785720390592882738253721813721948872395343843749264807906913869489764953265652196389409126914658093508738853065571311096275370506663281035875071824423389150972348709984510239257303048930089379152711113136141398449710561386128224436539710729745754786446828032104943471450744731735160670981623702782878436038886577574058458456884844078123251683777615292382211150322060963018173460074166903099440172737557389240247055614409776710085015305628121555573476133319950142957275316686986031893923768857054464821213452070621752688726625728125952459812495314093469290558092998523918598968787278443389825815469909332486180793719593506887209269140692944794651797297278654229227508388524975219256497401806582970282257628047101472970063712160038147047217484854911043489675266840926601408963128167325698015606579456641576220849179971715293813359303064411564309496106180931829202957646043603785623297348351365311778146877733763117836544388938530251139377952711049716324046977729435484375172315785443752526537741889825843600170575402048487903247574818842581692601530610764241926097823593120081431543375507597267803945185624362428185654136185934540298778168072778595913271018204119638244770205092343915217287136165514127055527524222387321594092610600307187515870449605084500940505769401180933876693829216750189034183480260272062574525921626412954230076365080795900502666697951936850258084056745720569412333657895500358897783109418729610700896724887763007139608318973618441771191204604669809336225492877471315434664834184255183942036742877897497518360220399952029411497282066124548417443839087499103309836742498551414105970815816844502915933276473678633868857807733710567772096483406603642208103274815735595500731477456301676675294114782790318121501411639237895807436829551384877499898031376196625227483743352628599768564751745568988445852555434686025058566215971213800668498332619413860791116104448734396749156018886649766694863639081924610254313982769285606819103362780026562030847841111156653449402768337587266294605385954611688929561536221479665783417849056082360771152883824738165282510331114906241831419843080858051518050587350483436513321755256873779224208078305125543658959932628387685476191980019758072184031441618118637120411229990804551200434085198073650016459477316104729196219411103262760864091747829725979331258091447793071994868990320254212551538807177582733658134741472958098916446654357358987025309213253461791783240670487550545778487618395670948234360550587789697124685575807174476508317633419285395752333904531373564991283423855126168888234401813851579332000835791260850197079848068157138600146377403487251968012034321780901270149198956885293110730643317814441088011364813494562671517134845111111170887014584149787869660605420302201910183421671560196074629456995252499318948223061868626675934382861669500055261949385379814038513370782012908971172947550317246359158309600263304030545678680832583512390418463092638353842098009454571065517500977261186369416655947506012055744926256952249770429549282484091293996956301967391585229563286069283421469164396396737643474423978911791445922502667090116937567494917760969255675294762477452441918942730092481867976941100686442875390398652343937056371615967770748204783524024612638077599078169537606233254596578966784676662019186686714323695249808489400943329732395351949887899427825919474827471441566616958536794938022409636994305612717985461811755007447760299033482891137401993636717903805943409771556092147498496668136226594428348456296390740092884833357818146360314075919579013886000105851419528867662920861909689597248237962768525714146032679683783427846952515067900504461915727091996549887099614288209387860334133934709705252985782197849068486127534073470769700864424267193083342339180780760401497215114423724318131149958276270742403284912826911574291875243352379658652159497235779940735742377314416814254309542941296107352335403472318001942922548248788117351660399501764298665152124903219601552981937139317314477073976120387905743732681237031113533082377737889598540837344073669871057020135582378679195754843666265730374825161678747950156785302296377965926443090548334541674291199955098222470744784719217228224480830759751003844378571824385847905071036599684972283657214239243402414537843209900367180311875209684195808667315527740499767115608221907999848002166399791684168837909554603029252798959373091636600478837288348097027758015089576537626234004991911515024442680733559848505717678663273209572530785586513820393131067993572020561715321702552077961972454364022418212987721944226311686953983733640566848649528522244756079108338176103144160360970173215960462489898465169842754163925880426692802402501182855501739233110071481431225877726165307412210614691003047272099525135861798089078552384829083391847642523817316006697545546562834054959582924311831663466464977390356300804139062505515016452016833408166717666209739418135869770615051318099250697912119846815742878712575985300925010390918658561654238815809689000574737520641014210419761265971861108019954133927563982972562663227847328171769936448647324154650812755087993767211563022049743420181584545061538905911249488794551517759158564802626192437359612378916441191412968651363774721323915386532578534657507442033020127793493833862732199605384223572162287204624311967296055490261145254893295543643018931842390934270639590762772876836449577182132500149700998115397438811431699423772460778319556291546919038839366129409974533691593451017316157638075220440377690494890026495145492145744835285502087792441099403957205923711807546233602690443961118763013268399690194983725211911199833380882226779192620602821424402729115992070196745269459912104529687567817723676242064155408202110822354663343182716818273271575656140638258362360838940339196043745181125933956513843229976969229886742127195565429635676474177731851761047572993805522579919506858607767171601017679969752214509859308502047144176672554275799293730188721813856782378568232809101364466606267256217280792025572926196585827218752676477746199566826241617674435796228105771684235111060493044325544670861083675561590138191669820299338070212659151356896691890457527085755392114863757513010414021441988014542526218183789088561631960906865201500578004148914591096361306365370732473407239583182061994723378367705376491675411418485306194371235282914019508130945489951924350332898687741382527389926421502768079855677438153238543895455802523614409281420458470946074089589695092260422516895716937681471953892393566663084608302467244792797738179802733364442332855208885858366447647063220234731682048002455085381304111705695295622893858203003855694221195524714047367905932002026491042352117736554164386111465133314040624826400547730023263999446183917129356118627846036206880484184883281147221689569434440383141631811118407462724550481487461345131074468373895953012967298138065550973700064597790759663382706428975817390563590423545629841655243530994450793174864551705648360710499462435794995275582752891184938076674098479725981244506166542600780562926619965048650881426598584243501427637698687365840671752104881808351355688338229815443155463453910610163266822902337422970184554247278218604557198041375740785738682175492994709748078890582400305926565069925555862634592364021545574137074048988597968748841750365126256127724070946615655148188741178660616648805745362126688199915856325097616358771477969165850914245694479719382955984441423345232901941286465116881606463166610513610009703195863550896881498475122731071909986037174011208597844987105007970894240553751177502811521344272121459132997937422345677998427828834946973146640320549650739911168151873598260877102481894310450653833953046080354592554378794416360444524224331352416554219342713813588994301004253608970919467361073464981969178519682239717402303561488086685781154701709593122107238264830602685646112865229991911408329475150729285186301279355742001350580400946419545780622424121703867317000193061334841524487219361327842392865822325084711239800940139429663398828737900576253163092603969724053408190935507918062267127969649352423721962510522079385372281684803827852068007744381658431160315364559547596998298810347883760068794583902922442830521503030894906687146628659291610232363212997839805993693650047128588136329000961890564373131292300264086279137818353461240099884165792297950144907636786279786608505285208533119010879438112614451224019347066949665944685376974318867159920816718992066606471315396064519949185182663383834897702475762924666406671161096858424050700987471581796076792570552360224718446934225663843981455435300248703967183446974684243459725161529550460890127263305247902944639641037102636701851365255004195991904395905543052362010533397012703846876181685098384291667516748852018744532117787769985935923985778297245652080844945756317994026669221844376557661662098580258860787439374917054886689213836015752262253543695050228218915811873504789549200150617890009437834407198782283946235131292485425708898104850098297839921242087312010892293349801881140337979046584280831985292128645806126152315031548947866361915547544445722558004574838344021140098333191210060146076598202369047921581185093398208503055158566970028742402077728224889748460049918248400041434337796397189111340015089395474873741713316864288903388326913958981585774225368695662339684615003022123616906825550457846895419930018913805289110304685425592480834457953006004420170092411947141236693982801044569179913326898645365518819251260368978686374008594790039393702560688142506654605196276278557523174235176725447020546213334800316585792020800084264407706123713141347765320990576972990919895013915190559030896167763928855875208813295755205886738080491034842225425546768324623201328699070132398042867855869971611327007819515532370340713374946222293724499099054355709111592512786163952627666496169119773830067899137821560508063555331243523394086132834944850909087554112972885847983695965360156712065090683629610582083928130200889711893702234476372261640970976400684809209305008194265123406953377624418608292133564204085998798012417747694105091226545222297149991624173906611428396817026544413042630389540678495847527951731717803687029532156616273072585920900462816256802785965395654769065029191885488555022933865259899395608084277448943570763226687327954018498512065546147418315864825272255671473818933596548521769448996945292051278137089925421856628973929121184216922962926485911806730896059075028241442916638513693657015278151122220084716619736565470959924838932501145541510131142476855503643084806590202677298070027789359566857291015004964318277375035173455056996019945220654957919439851194603007108612478902587814591466857579479849108142710782316298612204215914612590295742300681025241571327945486745955848960038170563982746108817979397391294272633142970801240463912034774163915339471033763557387285844357076504515434891747244750624477386227822710791083802531689373361798186672035185895493885104448213965509792054374075345083530451529349162260519294942132118154985272089633055917291172448237070829124186654242764510729528404951950744539135716672077682472883865031719944336514074462695063229311146770480051401963756156207909674400495517854230597557776106535200970632992529050330520831292191653791446211818482611603884451182240207518334659265292327223787399793226510430269029161588440327711572562261173795039711480635216676496557964036917434052729258718178678228210020322633142272614872780842718486260505755715663809599357396891251521937851080253985648742263067233947585002118458671188448338225183836216274320309820398356177856675005077643670411216667419866943143850282432004593970213790192401779026541451554448316826116730291920459435369227265738532331840097757711744145576858807704614939490136181533786438072597130634110578691345019115689495803763588304858627412567868972100467977847795332363070045365016301721437988914320008801196391027337203512810696806729091751352323113111324784583271136081395070735078264076599383042032876342429235717840984417684444158711043555924789743959074688230130652939535757805570760841035353146405183969318988088648532600237618389711394388508346830481466060083956339742524890223020649752118375314149700916110351058733572138917336530030734200811574578907451218324235921051824567763975970597471336800008727151099624964952380337473766992947053685285542973523739394351875524026511364880582313328791397912903837402291274295513737245422125018252396627118178535133928743269070880093877039257554457882308062491663758459778945076000996427168581424957949075883270546307114192762737416816218135495482615817704336507377880128035698528267634333443605079534137950646629812826036943596860428817678650284361286713128002093993144137016441801473300106331699900304083949066035085552191468864713403967461544350999235167750767053859103822099338423225979400635527155727315132888091818664920142392307190394555614255980433092924389917937656610268196231468021378349174342953916292830334937099867985200103085958561758433124924068427418939830898286097974604316600486677671604553135183254549372375046351997010387916919682748373092795387147621994523743792228245999756811399449093657398175937458816752402644288920242399387867394420237293324833152473565562091780679124141528876757644311443301175127700425325521644431686027318562313782433569881224295933325142247362105923818800155488802332293672602135506976266911345451242036603158121496959161326352428669728490524057968076601335841529980759027764032943527228400338753149290329186924475837314925708388724405821179414317691130947752727364171817942841598315799333303816481264965608569325444236343772658520514314209014230737622897640366540390236776801629649703562739057088029271644018790485789765394061558673253924590089923838977235045125889528729745626991354043386581513535376559997733899546152689962466565644653899765531926332538673507550766833099070648424136901791418389018412843875496554593439901427329514575355999519927275657817466232245899734482319237007428472269350521738046682477154531806363575871894036988812595693552770591152133757301931750578295682240569189136079742770342752054121923107888674179981910726550369367718412538431366145303445017675685208921385140287106971522132452640921261877621309218929385752542274721053056488178293989600642686714181000223931359313062688007343175498304943190524996574656241483754086086571271435767309502847476112023315763953385091664437807228612545248805418081835422971978370916959167187549407291212035542931138728118134491498309207383583990587043318751099525356421749022166871847433465109881571376728056160227732044787343450884193346891739800279628596903984523746669670296578913327590111248709519927224330119627013676073665453279440802036879905316055919542412059667246929918235823699801554709666916434930179789672890827116143134791083118298900683825316274709759743451211618461644662196563571137011290011778853675521377574605420670108707828425581557149762135618765736197739650448172964514981317322169726923458829261970804192247392061460016021658661552774850450383622305718359656650070823596371465190926149724573940483376142981382185448690938678776840525076055185161246528634895672142501311959380956624958761609985556989312963158173508011409990357297774835536685304898296886740856964188933390774728421540429005462411128114723675116430941036307273159686812746667583149801087914747579496845074371544184627330391617722897660244938747776038849120991834856128883592152523466486781355346046526974518242314735577462111291533098262461640526357447495078638886731862028889251940284447795773378320167634467887580489297557977763735323820121725727611378328555881168640925453037637563419768182145758829635553566103421262450656531247981554606733024006007443620056982368063992084331709323167020432902639438247851430625234249255251396721617460610666471010352525190945885133077810820977338330494188449030692596287450547166046569725907656522129558193710771377488060536680288447916495401325601702124213330129569822219145681507516555207316867325157726858038368485339077143736436169099529066431107050775096876762735355381452041162011408322259401011077310165886743191101952569442954534198569022070488126925692606914636915193520201809771613164226137075189447621978359197900677813689215178505856280136645742157192547640044476857061184916984518032611672603242508543573065675151306469842643543641405881764079591448761492022789975707340688186323743065013808149108850070848389396301455479021276416217914669999323842963423469487865696856158134056189680533976471336689400139860438700393922028814732838256427741591306791117938751577473189694402410443194215847279725636801508607100554175965207110035011293018032861857233708336983551609848148442229070589965559071681867304544013856345218742652199940267845097138862493319002034782173550569298942419001511495438209431760858028306713521165634249443094788495281932098544160945397353387445054208454372675054670664051499882986051431647665860752455069694234449591107151828378752880902109487727457986339910989046814308503168625860649029598041622829425075974308667110209304952122376251808303311602065968570835708592475583795183399267034522462761595463547081954292172696354490102419764349010487433227706390153100905283926937268738906526636581000984919856750812982404684864759226702483157349017022851842875091124598228627021721610051605430537723585134093681865170536885349603740180167899182961772294429232217072679413352706732560387110934058335838980530682052581671289883742755449414490152654259520306784516125984332858694720305869828421468475164848311371816767581704893101703297941610901612983938261019347730795707067067849655607034108525530613284578306459948416809503374442260995553255293199872329902634833646910142819221321653483112588099752895621114280825546589107742551940112110153993135153295034653061988410995420214246088922643680567783050845545763534239490429857725382427917139033134108430787200515352599265938757798811252166098025985617313789204022575824001064603820866828659955888433460192526137565670803891633557016108946033560234980706563148632015879526540043408151654228963541545860155438056227112545314340197554218473125749936243952582230780213521871139282712353833833239780012583241298959248246964625645336035386911841588824570700220612534449431905511718545176164539046204329214191631850232761550308380422191671513452090556489001007139897156022739397696321038341308836431580253729724737252450082122639157033284528824819469303351895288306882474763218942595685052573914205386692218581760536589336021743624170125975583687453419332228230771338554462069196101944865313043819169021055846469854032138685110794951715349184855102575592941590685804307546643517822420403608952093391106487456865393277166086821429571751705224872376115291442184215689984705223840662644152600232891884869276885355459616911757398171714793213553886102640587246958007916639651317003709703975841531746277035529040353555825935212263669315525855261390731909727714185880884430258176196103111936494247818890954477007473588666798622697867780247691377959582183435876454746643213506904512574439903238292414575645516800302795894784566456268421863744140044995453162135512740448591422399732957232153042210678951004362594161470900455385820940463714799563757026226263947736440026560798730509834559653841315418992993507164225009103266184135948032996507539016745423691263390635753585351202239501836378294129260968332091605661295973806138978898144872297782585298627881983316090306878818576919161292682195325433205689832791390366561337165574288391274156391360789184985147612622755889281026501226343939040916768764629479273270118562354583353967854756343546858027277081829634652544278463146255254350533338615148349103371358363591714414345966513432096077815614852300674413939141918296915442024841740667939861352706291802972024432795875073182946908073570958546292660324484568317629885281267413170073982720710651721798609937468492378755900542650754776580833325213177988663909889983447244601061265045909928571423902754894678933622294390852017599478375962633101843641704561466983224648282494607215182346321852719396015840443257009691517424223178756699447789844135758351783748072548349985069828769928064753940197583021078871160579258588009049585077487151183727671879133149309929513688941258845561185648907664331049911013658221898997055191811116467040542783269215170902861115470156199128055763173126342292276550835234060102375812114148791867597714889209257338356889748462281082100131887760913502334795208749572821223073919302833218845045914267528270387871633077129152328748033738814100484190412137237245694053438353525854239554186154003955204790549219617788104734987989083551064624722720791882350487592776711216351526448261764318413646495811577014182260822066600752728023755450684738317734235586110003276385758334497720698463001335504527183067163908374058455751048978515540783502634095045378151966656048427320530908591267948813425836494332355352252364699634910545628399160400403927852238031539460833384058089059817336057493907844437694768689381474067096762216945887931699742358188787123089660094509393968383613904749014569630539590351649313449888146438088087501397139924079202633412882503458169256139960232863864524720876406331742104353450108287500691977214146481935150414574706726443046387495922180142627242217234984284051159347258479825566472129979733558553088907428458256204670825043664179290969788002816595848688763903747015590185577573413029610508322737450632383848171875538516877338120354034811641128464633499280136255877160945111158731518842235932922516968142978578311559172565602156302183473692053907041589194557746872147110888195514881622743637671348150361436820611043957410834583487628124707151756247702355183907047888116412013581669638140579839078188179590671141520846326476168311414010840823178170647067003491431817243335063881372361178585213160606151309877967977007805440596019597289471945261779532238115275858949811227937269645521774146132628624495419784772468719216670588378037200758351544858470383018692700251453164014535135078964409603604449004564090919971115302507785193961674838733292023010936611619076965691174043604112679337551072481240988080928517586823278733596709727313210106826015431138488716882824591415800734480894288095303927421130795859555075768671598661808299275938679249028535850096530989416606924427960327170555376709565768823312256565164882706025679431159628126434639568314614834611361055484687169301824165943737933309449866170848871738588746329894340160875272744975031659034753913461858167167486696949837722133635720290824099837424663337415382771206362902853136510277406841521614929234184210642527980696351702348997494590193453576418676153522791624941174515281917314391843506798372173145747385421221078803979646694385632254155203267556413102218265132024789214867430398668303005932561373816912987113666149357293475203563416346561436325893210640134136321727613197262165209284198699030004538143250391078318538440881864354338048591219821565092278304000753327031341987064110339397022248003435784189015898481417401978190740341171018854847513431737627294873280645488233397526502269510099360618863313245051105772582453155606412092901772239504463396448458960345369702246920614693697698515154184309629900113634175072429098161876662324741709308138002807034489932680176463979846949069948987651845534934536346552463507093355744152429808053985933886384161052593280394314098440557904136025879538478779501026017600685880438339750435891928622034870972184865297139115098718427129430207288088127445026612251590444538735683786205257949522749683562536865592058501762953700896259302972755471606705217729435443255122338760711678372133954626104224224222374545770605243496295716358225754079896626747072968987623539128380084446297063602973412551609751674293564791254330299218579352877194240020300828530628133866653807240226443295734396890793492428996565343542700240281733360958819857712285416463407557809645073951283894363812970015461179949287433800541291588378534202151856914667432652816317660394001345863538527751788711834111446763771325408491681409772795032147621182533533807386644299722666554477325482559091710264952550363812079881101549214595738327743583639346695243144649314426097512857133848790123007797276924950565525428641707747569996548524523935758159240660254845795130000360242229073257797171985433285120184122866790304708995939848327925226312909835376241641355230051398583990082723951864028321425955612461228826552531122822293235654379613594507334111155383875928724176923575608494731501215580795874263451365336009315113713274464762086166340396899407752814200050661363204486494612315526669543988594972848063521376930051105535594177236706054345761591226219156796610615246214812142528378394728999692181337838034977093870454188772399933163228177822970125562127637763674281796149266933625165723319682548529960436168668036706531350244849475337175165404143716533258964154960649798105198078877280553979929744181692389011416393164526243342506535692813270860839559691169813977077486509887811359956812667089644673753231543329654728488839068762025187034251003494091310108289365294239877487037413127765543262003599337375094692058001444914198762582180561840408299748289480285969217367439050656780750162159805476398731886663292790996533921332932144855134203415047186955798551675093182690064519065022382062445272143646030096531882936926910559229992975672002187038889137178328037737904140905686891327077633445862889788163596993439902600268171618579501398828470707892295741277557543746192992888564233298217662188337684722029631542281018186522001533956871206569313289295251737947269101335057380878114800002911128054731482349989111130048127223501866218028729086203896757659254886794330053834351978657802565607165602299308935028349197948829398373340036861406385330820260870964670222959954460912035672728179032692611473735978635709861158835916361795920659582792195113683894242209999449465753953890565173456719811638356714605000991000566059669209324778740728611520745947465963077748323037387474162842487636508963981919782923723185968149004871052472500724984309293499570028879536224115108761640417851142619268301542311256347127150901627861144755925812913883854032520858810880539369657538621333110173341959520044363248534218648285570372398647386714938363192033625132960799321395928470670704868780129043126986960878668746342896194721899340366751273778481993658802744841256355718238578067124505653918487846384591793966551629516057024436722522019427683507331147245085098675218962033567045749434774282877911267998031567974999957873744098371402609108451229893521198084364810270527170550939808130419996259552118675270008378661210834971901318666519758432159913179160016007567949516755108615233040992337200813688117136537214172755465618792460187013195315085233831606866349441009233107251838343719042840164869943438433964427437135402696490281296705704712969721813413775125406037450477896366307149748899654874150837981617575754373485254648459514452370050270958206421773366210099256093178625597323984310590104822479156050822638233882607124376040736821341817921266887062638333616298888775662881237701052435631243274030433833541029812650375304023392131134134852782866518716112159893941512035632335018725583890101609033931887598520238345922666444832311529725202913476994675822009213194305390662029798930504577667750652441764956655221421761875684797369660516999114954754684116554464311013468191630247122508757372620287313136047673024078812280537431559429687032541151138619948397502356130740067764134397870407093577642746017919273055176986849686774189663747629657908882938675492619834269783891753578053584841222138270079220068310884807954045174382585462897955978915385311632410807655403881863874526915863385121795876715677534136502605902668659487605767522494874510717764892577535399570712900054548030319299620453895151539236551808969165945528166059230525610355740122280249308001484343563607316525768570780158236814440207087971461791631958852565078105705376041857669259894705953837819617046728197564703845445122846031170479059908591385756820528076900067417630120394441062402051977838266742176450155821513621684072873687069983837449840769078171194093239846313365791947087356757939080874694507617654351747537642061186535165805453804143553639066427448655337220441536159938140713634327877460946714990633473671549457774143165887861051921162317754705604363111161031390949792412336116844316793231673943457261300384539681036225303718352162569043630717937944478620527203413370254188832604924396911310055331555651019641924331617646447296544993901430383528690585449099150406526501610227346539961355042575377275788481065441829065497615700868880882488310668977081953751965526568859407007250133741242181707924424194428542577161658915656217477680456422238148189971759270552890321826668022424616565197961014921764333215649074077679126741074814412427628269528490794261080550896065160798073867273062991079884230168798047190801340604975106628561429965112067783146009819192762563212167756636015057654536118432487115134571020458712972259536263795033682429367583558015718255622986584591954684128319805407673967817148025701322756994295228825017034991091462478150450862050919333893261541275383698636135083066459444645595880359146055934500255793003397939014047315328525245238802191709549142016307916939248324486866855796023909217198980569154836163253218953024630187209807294114167845567967166679211503954194599577594594860406503151429542135771439490584067863755936671667665784699541253252859992581141895400776199740788077313757501572866874880391349573690487192594347849293328279027487951205521017707066002350737389078469231373637495989690490945098267208068131222629900133798126720433890025092622771574226408328166060258138166578970710623867055356431672279330698219746532531408057052733182155217497426558436436993695201468154336558328531885733462441518639591981567043378144989085563669956043802518301524293043072059615433214411587000497553910056303520293541123141026173327455632972915594599018971428588223278653472549476559507465834377443831428770027677086795514272026129348938079178163925381292305972412563199233629335863203198982502831566940610716491317128194496628816072591233625116593783060102813183288800385427610413443447503127158193989260284523844523627884415332892264996568324525795122895049864651421362492265101278431883796937194531135913295029549553528176810251019894396852549948486783971444189034950003223886419113156772905789080155399978083369522641061499309295984784307935911145674604802129152901384361043710861297459640189659399972096643187300529715804782914164460185959395624353207553754717411857962019096936570762709793869923940393548710841992552272611961632754040783214027743798756924120784114387488929218104584213908147821021994372351648937060209247951867950590616360869482030870593871337706825778908431928937219946248596539603356776699820845591086878913530008580137405234575348693422354765863198352943188373398491847368528937956892184441203623257553828311542405641890440246176360532173595631378727636567286749246998380056905999732788461153802303078821942890583123800134208205455923111987803270184221064424998788877257924011449576984661466172592392884947232490854078823563688644295828408917920586472060339436757046868624118220892560345874693892607126780287391927464147158742605019102283704669718286927440188726230845797792402752815750094861577809141129066815040127929954362589759009602035740417490163203455868412427788403938526392601730846290914102540651638179758138796433360428262372601014270410492125508475037369953533946194132959202270623617181159410549368915819549242617841478465713030309409051645126496656583040694784447385683501687066363941340032196107524817476948754662905151686406274100722914069767981076596672136339978778492429542526929471963483394925304591951592945200479050317107067847967442629019087685468167837220954414163062516162569181172738377848247528077852458408422423785510682443961748891717173387897426841431757459329702512371674746473900878019767235829757935816968344128187065749076556823974295238912936712934659832465411183887961545380807879481285175834454710740186039731920712186925167606632945377376480502327708285813325758612874630498916578598172422662790132300122406247951220849959600297570680444672259924554395282638643186183087796138193424561994094834863547276381876189005008790219049570177404327369613440447844411708594376023210163871851496988161263459797016627740165176769668440195105305291325598341893887814838126939259195159662119208504470981685735790098211851739866129520196926002248490140393337331316350691256495546482711596839902374468607863495256045107957614390680335475966813424071212629393099290529897665272208407386345719837479186599937783104057849755987142218852884990175882578808328203071671713276615344111034736304290996270202000834288096935782661765819568724090339025053160514053740409418802066053523072638867297907130117230241006670107385620933442120862099508903058737370135433429092539875659273269159553677679680605300622995581264616844756131168287420601444608058138357251053633479940352236833841023608544355782676916804297695624764932577599290723413578667572445726812313605105099312464618325101631359116619620255655953712467227115528784082550714291333156299397640345262742678290367428978328641037350326581577830026690150427955064529058749217867050142376253097651498130181462741702615453333606001417496015101740707365667721474412095810927107459668729650204042378258828236754697161884101416921667452146569080041289015381372451674691902545730966866632047979560043519757111928000772313347973400647727913254517967458268794597345210390517087457682248380401896352660215472034175011242260151941231788990352545033101359847940908147093622820346241478401468632768796944910815007186778335888290956745850175362099288651688482111115151804080422612998125161327377819138971092165602781468324123605423782253853683000708711212379125491035738537924666177411147784897822832176662335935120099456674080831200235864473632885073583942897767587429302961281508044931756198963737446115924015570514575845161803226845468284898565752410653527760025755153101404789262097088836801845183825823400207285228527113303471002447805504117622082031711830064070670774689028184575755893690813483622401482571233928105149772053957657384183760114336886498792005079140828118103804381051525868920720184055000961873767172167445827598285439135369649370166639980857630183961162394152835295605764628075652622599093574876469121229822167962699184393381241169625090568887387469456944692970159457617211509363426438002602429145956367146386246145127508561088559787528853015486555744023782003409232335326852972872365599733923184476864768814617102266943936318879888477884285768217584012595907339680683833335018572576347632703041857811654642312104142364348436545987027567055012087426570893290119689576665991373887051781588390466059679040226817775469921288929420179158706947028852227302366345147538394394460076087432374132710991528508148297098080421578378050259585306176937175827190846624142826629695018798770848020714512255082565548455952543046859717891258013298815928062836702894469053711346463867555103683812053274811768657128327879364385426866341063284448370484890393573404618201624838305582458752863495157855478027805319861590661765983557872893901549723100027487826638396582484207269423862064059307610495159759558698084174066754581751848080512937820586230824994746708421149665478648138966661934582204803621958904547433548629088480985754835949536832151601981334140153087303305103089466684009155444384733760450236802462676630155768752896166310741326508367149007598505070328636527387738589614268544956803280863738344946859674447862580434673845252174272697996233148591366931146787220473881306309258579422540976224682976817214672651858478024545391628665045921247030700373390363794130539619616763635297665851988339614168356999073112465629186254394626138078732547179087498509961682749643047495298539239555634816820614269756475018422937919085942530572861333882874812339391102761518812927052383392417424777413943818805960240927146058311588424184295561039892416103262506545268437199467751184535178347098555674648750128978167913556933005126853338982191260980740933604888192436994720426713946316039159844813266780089350168197025279731011652869851071512428525162370826378443374020485528499435643113265182819862880863403217678564370133976077271198230736994940506015906611877337491069742900345278909806749784118122422393935810152087515227806690512882768504957856791843846889021079513649717025305634530106074791450257803296150225592742264088213902673163551017755204722805345396322713890913103492113075862677640585834190063832166273940281534332873751255520867982623674862119610384082355153498946561654251318832564815308472386818426474904272387627619598710135048105799384789724957050614409377038771002524420222434151848641423711716903165525647076757744688704986565042949375904293536314726401183499131231118170450022190059291835311376459166386384761809133926792045282219524084846407455099784642122778416493495971799803930919815645584723387713838171750110240092587170782481338605921812815318961379051790821878586548076506421221546810671809977874441802862778211378670486848462563828259547636627530084392965081293983299536120255805906812553287705793071093372260443712411935421215864609193672125228105610061603711981028485807193485931226347102713861310354177726390645742260176346509099477876971376331475967062725108774691844392587907518427807519480895431364301053415198890694357990501648366406841490282428839934624622470448294460511565268248674043367874765591147130022855994780794136746755892618584680230759095300350341918252040865026891229522895654748748619763803013399875290390530047903032807634592380844190418147072991748117915192800258118337775999235947811265619362236592399965119746772070631300578932092881424328127580914494115661425079328290904096903593781836954187307918347586162364991461470433101288214053115635525401244593157446473000925453439555192217920945525940341609546223600557591621280670714914546508396378581302085644426733364686938479999261473177292178619710216835000108289697050965592785227138353510396824170965990085170834838230730964350443275392676530401016456291139757935442124411380255978724136328816485669639250851346754621656798368713120066181536326108215465679094539859092775713960255621402187802817191576855048712561381507579650237437287429058954048883238944216228355723326354585946051261164800738477078811819992191955072491609697346471085584601496444338734085797435440982543893436789185723337294209612843234277705201632820560799448509841899977380962767585501829747457869981852652222334022578076786745058405139990784416510096010518294596572938979869260313402168318986381131970438985073655402373013754625491163560461472175955455718584553906388709738177042085040479291401007184709648926375870088479078123219332223996517202870717940813134316640489434778455652892764216960422655481200867919817697697740124000993181684838572362508772156363504692989273061274170729586861597580718724064861796717205452527112343171144319762417534661563836723643378618194468161667090967888695917017983355898304846611859174917501008343195710341869661458638949562443129728163006266614027134125236588380574472018233081136601285425297236127873910050891078249012743599963335498788530288496690169025453762559664881269265836043755754219461148907931967847226864844503078867677284537249253667523108102000869803258142078868715395790746403523065875846141471173315842195760406319557954075772645690257590409165378883083784579140391101246558843441714442939262133352436703965446123710226719448311687163102026440163587153914350866131936813960742742764358488379458996992942967861216010462762205260095521849387800678966945876251686941341041118042288758775350259459995996815655740487831926044301218258826229212600535747698121206667943170258204908265136156120532420299977431968709504189733172915756776358032573754238996607727367761831467343821346037179135792908013276671777940791542966058159514136953064135972243802061281063224000606210030543591023869735932724718089538241045165560037408975451896179772728255745789981715191369358111054919679576979573126656857793431075444912740415032613645475506795083166139618894305993108941318343565093817928843610096873754226742079182574982971084270820323689906872749281021124187189587183075093282048574863322096501267620826118941897020136108002268044965027771696915538060230059350301803979184367454566633683768988908426086216198743917642546875262682119508821487583694888659268841344634249606320106852106624553203653457168765658583497830748461663791021950049144574357939466771616938189869448494215117488284862253137103083934797360510204851951305380061751978451720788981175446167084650014650628698077213890223503670436989528707437767603901525945220083303728933260334878595392732540184680199673444687241710365042538014571330704970003491370726652191967983151960609437524162501934691079043156051968281007057523534257231914464798503139288128661131069959113481581162958542743140988329997378696464856018700320085649797642221271758113164294043622260439499453490029786826869180145181982599903867330549381616942144007637113493978004882860383285559616874138087781760769581591912978086000821782641012909437214016941739170224020762265837295020417235672370844118162952112179301833612121538037081055427824612063601231556313237276124263042270333450090017632560757489473008534633503497629968990986084209333653790197496031095587462231706687812104530744872141575129922698768406938602958527220367727159403364621382420493333283659150834238837431062551952269289255363113110785801786955961831279030516159936846681664314439074194459135039189009507001367030856839646740361294371036113094482480729457451608494643560130778648239132984225999058376046723906748300454209172741071595788569577536110725026956177833429166240439332367755366010536123809197381796638303052895741945485439843765210610089185436359201529437821529718252677440569673689803213008451772926479266399677508436110330859173680120929304662123536590507508784444249953632734259667522402781235379313863531854971462293344565429839025838838283770935611276819407636794942804019923710193545716561099645197130891584713472891708479654034987979179231297273952914544302087110251682344500934741117784395762769530348406942552351231155685377296877389283394943078106242475481225981118890497129341510724107628672463640962505743227854006128390612435007894710699078058226677959578699337471219103057653596663091661191663584007545600809294743378367914035689513680338330044842849645978394959118243761776450948520855742490837171576164099672049099153786454471866815953886973127716103131832757480666491917204646463147506725393538557243693957201555809814970399257036434395526874203271322375548823482324142617844564504215263196583979291542237037684715074061723796087868416048987221071374594664316832090565372066993422750812012870523761312900436476715169425277299269097184802035621398061081067993237199451090018399685480413272982631968477105429555919848252952572340000194464007165685866005983680251298565899288591042265481540445410694670597248246108200684685826825041254834395021530239334559549451678218208933514743752434325001031032428615133343619928135759075885160640925887554720413158040310148560137022921438815416746517683834200452047506971394126691739618038411856343746780202274273511501273479845519435831276148143653643529578619078624402780462700133266574227712461025985596666296434285606287141444173765189672395924032854616836508581881486131270916045910480764688456218272540932691517026320546112564948834106139419169977728609647711759787532068957596283473418061026908446274297194482706789069186824529154705847609697007836990166148413537737748115433563670800065492952674449875693126936656930506577733219291716611245535805980095271886998210596163441589763353203955039100978326014780660330988013527185783891505576611045777306258721483733149675020074180089911831853011762846865151890039139138400216837051565107700322603066221335175406857253575406778411517089214271870994994403606140094138597974341777040506827780346610297344145709541686303735084883469488364109290273498088077969030408990764937045924596142555053828991276140829743686452568072833424994001292191005174308855387022507707659981801703009090328941379424156067329007065346009561059930796492263801861190695404057083162481875966347257042207510130361878484470323942885953587513031675168820475768303690578939381842621157535982929086912656657666374065775065376655515524322851197068421264023169587502291000711722647213542740686016247431120493028016740137804747277983350563708758887443981811147810015561909336841167116555341119483074446946767943303444333166398078727641993876051851385377973017270690598285192154664668446207331669022896303026343635613412087936147853249238212084944591311097390538303580056073565591995895425879280638109797833590090017129300442462270046745295402572194725764990126605163868115121632426017879157702899399822097276964257967075231723666219249787535300737870356225341134342583416095877766259172627758121793657272860070769387383411500475155473013614974219896097613065423109807561252597644169936365170913392946863816779489403595450559778971238093598483816379878745586227748503726135274005772884375746826063883838456497496804013887960512156010074227867308097002311609916182264877676509967548664559674913737091734386135837722150682850647098149967385221166162982116338262642279871565835299665071749185544723446265442567571101891766464205693068282521463925204091798252234590170401182683045040576905100763086801400234214466535041299658961568205656342215578802390296445477194537548280806287358453941603813960670830210811831056951370892076980785579501802294119078307265588837343366599403848245487975481280093971084760148396332029148021318414950706182623950468337874884427416766410439883359215324937719938667850081387163197225424475314560768074076311510992768675468457375290459747090432366662042610719761793724595733069059367160195489365527755353507224969082850755745630186647528045079075763255377093668938607847796343796494300631044047492270855412202722896913786928526997151104372704815925641715218285936237368000791082151627199897890718883265934275866128361447246084730592483892490701156608449045536721909048306533430633777354230558295954907097015438179944583762821473796269759283322606683931570356978802952676774884941457127481146382325538384766414643771857319080157862527935812726749231180467109249319015215199431129200551969739024222867794217024757282976047573540038819431357966291066635239560741692801122598768106160852027170077822824105940140334116485650363904950637985108160377861570691822968700580203974987149993553381314906607288964086979766740298946650925830819571128440161865060295007599996682133927467320287810759115197488890139431204745295894059756583941590196153559536794182572791848861986585492688824079590442170901607202647219721390865833699692057533944335482248231721054389073711489006844724259186749354739505081377074765477389642464186307282338139434441890926452717251243953602491648958409756277923794892694525846915800173859899863950426496057568315376357714576811810195946727101028669381069418072906980845712482259104736527594162284502657264415060244436823254098984364388284804144198043481483109362859965331974605403437426250697238400101970484373943132496666775044520106569195402068117427258699865356031820948727675071076245000615571726461765334735874504559307368720927752173459037191194387302518693575135809622263812357647925454661304476722187844901977856973004379090356353878101743296673173697762694270783308873320458640905579587802231500056690865670050140022024546944913531152679684317101135433043742452818489811318097299220309790670616264252563677463022945958029452366430637963329150541071195026149400508664788822906573822904017923882339398415578824715136972153127113408911665942158277573279028059395486046439519662254717677112588096383528825851920380775700750715099331674272313435885757732337473463149492967428815228375035351047458932344921249909197119831135880592197592182212952133270831929898837906129411739592877378655771617029388331825228706373069641305549683321026806650384497782221503392108939938864716837278628527502579084795580647789190144179565040431408823618388481857162063917307465221304107127421713845740852337339305487495095142960427680949486225120203310068193499422602349877448985399870866716241804308352328363729833924425921776708544377760052546307505287733649291306968425558693388437430186196820218690415056635488480657331335451892229604553549224696731921696610189513462821172375309612708662471713076974577703621240180432639457827257999573794460152181975607623230894309514036240556612821330698277997663133095075773860013269103550367092367997733535044129836278458066107774056090936699364732514729455874953707445751805841464297953813713598946930502440352741767625860655890217399040232796497366984377342345052723613739926228010985293080042736425291813850713208566811327799389581282177543277993151078944056858424034337407141725790065910992736051681607480324554700231206726988172169881629924428533725964253722308576749487090726292938976285481460547669074798452513279045979124570981818638908231835962720692534410733748257262052905012848277161515529496984110005998704237261438640073803388481647425485254427154960403244913609438244429294447401904251456970088471997578480117807352420512826305425014390715196748385606696834885938796824401402507338616017774722984041062955114997127878040884065604745417255071172624113142376047962603101665050708779824109234261776513231271464001168094047471391458436012163714340444188136137437072909664137792428435408338704037294819506600293265875399191846476521893101363757294564053074196863856736948495823692509171889834827370063426527746647710223785432988768817345290105630902799378735991805634081346419533208965008644282925938328183358002164381182832242631030563213380276713454473963980084624211148122825600716063931057168759266291236682385368245455545530308803337733056439855884618052435678587180745615015123736178005716469170252617491829093517924204260609928287166513885911627320774145174331756849043678314698640151236058142653813013300544011007390820445865720059122564915986642851194288116314182740732276102485200698344861737582162309776227092180273314885636001598137939715577419418623898139707280863198178203419461744738194141918520137321378294627999893295960078345646870842093702573867067253823459006535655558298993560246310393531416194935804217169679182415608488794206573639648447834764289785877316906413757473791057010625602422649940298594260473431570342880757101833427753143381731733333668245144903224350126622300187694403659377652368291655102742233713602363960915108779769153759658295505813608709750849893249844775207672561288592728269645909640584666119015271487393040187149614365771062965258932783580308832170509369171101385296447890334020232312906668414949407537925865440752732206867159774187120796775140396037463727423286812852702649081787236967317702572662411411138189235769612674638294437260517727606858416151181717979515760695735339345720472597638535893063902958201979127279511576158931270845515316549424951926280803399621397379423742879886016332220944858194485136227711594756382451118777556458726228822557959233906341856545720883223485459166230207732198259155363968169986012069106469083840243198530790585949637642838146781995749636404838896242463848439778685734475470538744878172299556922867254222867086867287181837961272222325727293279267911139142155349972694919809108003115823305164887255455752320450061300129665075251752069127156871600748853942361161231856401207022089214114865717993577349656071290525022889513056390847754206957285864244207455796082341548847554726590507045576949636443207117148096811208726134284087583859815675446828865528596275421326291871262247686219979592777401993500031177241383016945906322444330761088953469506907023931040572371726539157907320447461305245326031227623043056237995057411046847674066190584527987584858454296822740177782576266834615611030535961546049013721577411808370578820073124201082107375670087308228135721458587451125367606285987840074401890763386583387246573055767862837635095171559548449738922721562677951739924133286605668773854741257441167321741690657748041480703373656521864721774877753447394900436706012835178240231438287002154724487427086144423967817009962986808951021776732143530139235891841575200019979218387486670042456939192617470049566544588718873530500725096567132474240105742194135049185616763664902932280346203852559900127337308837275500850872428420606869631334410903426661651834278200241436178186962874386454289907067676275666281511213612075419355912377886943217343466253554301503962235411381185183792758538200225194387010496190630060484726933663682034264351293651452742159262705823572009393815650292351861877904334095504811190189451526146870937415952550714678237434313634096909704572414172086344085537997052628897711144880580799377312834834621431977395897289221365035662999330728949508081057527475743829076904917019119037322260697602131214412352257720515417511948746520870307888787911118564243931092570899247514768528218352731736240749045363830969122197776444945339863983820775037487080937633483111637684903842577324851046484255488472009633971526515028099822984463446355384515153701940478373037349460941060168721513992828301691320522169066465578728987903133454136028153876508401673619348405904120478674827077113777113922437939575035404145732597937978431178818034302506822278531936600727104062569760719458063577095096647985311104008259076987654269365706822049982405761608717656937727181447911496202524123415141068201843841648387003841153644035224199028307583385303015335286468673543185643214899242157873999512798867749086720794430540554763890750852500778172046492743039885470522106626298005032231055025565740518353940804153992446007248614233908200510298605639722575150493880564076401114191176536552654520727547733457310198660434621809692614553846905963323487011644531010224525012335462354024754941468082868523963995074486153277104373234920583536458841736519483887368296607834713593202794044760293997615264673727843604340365616962252880149898055116876371783854172051047377466408346309835116029151869079509891025400799509055230624509212641856244652853333199689978129051833989153842417125880907145646623832329315181744019542364896098016612811926234384188077356024399087247976488645354867339969401712691289754624712133177882457320736878747520790966710301394167727373366616524137648378898884886427737141462967099018957007680859923115213813104831332937474522046103542807949787926410160918297859548157544502827443180506231344922680817616384462725320457648624923944132820907051088031126693809973016707553705154674228580558047017784469910459613444665277798859862094143304755652870766931533431733834131264042515949577434974225556330964737215737346073545532079366775696858226197385696178102820175066028950996511780320314561916292095927497931742281089235737116365236775778824765541825761272857780182621775313707651678227321543903223934289692164800464701218431194590978675241443018845425427060017565237701795289886973236206000686133964843467102516972690780636334599856322315442757131190233007518192747052096003214332377428605454737061180680114401333959798427761347122076892606780853437743943161599102928932765113461313363002071058069713689623640119818783698074010895754083760804672121397705785769877005809272509109353393248020697118075939772863578323542419112043302688558362602963672317713656712408874500490198557358579946258338899719074826715574847616480754484995616902240214638415285257407905082213868808454887321751466399733258855752588393185045053292105568527801572452247392294759746205501284459813621174724887601520415529806881343624201696492110223691306857949375691916148188873724113219392399127545565860111422047931542496862313614326098260617802304707347437904391638093817373315647208913781715578851112385751640380732229815046834849162451273758745072168691572301901427029802706277699909954639993982302768219023865279765140878468163274472213996447326188015433299783476930795210603261169040547468571610578971248477300711089903166453143336171533278413041699216640152627917536078813388389012314868459826421164551499173046801527768512561847997268478786769302580894043040371160718689466803406116237625219903641847544975581357054606928544696316312741714256034617399884318824998259897416510192358790143393637441408377326136718298143756028852795506134644503544420501979659407975325462097160893624063743075956849422717339458113232123406626163810725299654860659209084447544210271927500952386299539208435145897240955330785124289761022220486065516565556780426128577186034533845813612226252715977819497385940384932258790672222894225299251205947975474764083092568661130664223610035362516781050908404921262893823660202451590424995459498929533381909366734852542147859433535104814129810792459402231506064337958836493169713547897160377250080406056841429316895912307590417792575381445998255014638770767632930896952738046822776145581338682570719021643959647665722503659263629835262096686310947006361532221843436957377857043166137309893977908756920354768919815124300033540897301387813421831997354710230078880284952450031548024799622471114483462934626496132460481434139703799258617965280309747911452063207028418393370136571122899394099773544999109307123855747030593322248540021080420413551574977024121415152506937649285024899742830652704582105741388601126151576748780534893703177382282567212363606059553160759921727203568360481341316780646691887578367727214462716179707009464864800183765699376167813089478959399636830177445122001524555567185110553739275124129324867776324803211124532760919850395608975816119637588554522798014577765398289227553871393878374012356730874565411284380380346946120347812012359479592288991778474481870378730604831921515550704332154769400823068652302698946326110352039724288747659742392862560755881828369799329674921739800614032055870908965928186510380526110338698462405608023744503953399428474464763435689334480012309515648312896822739845198295623546682165368652537587391523433620424482302459610344704864102333982875159524135989756886063848894079348137729923931146663279813505537899603327733102198967979747436944552620273202599647246629628136642008330328767331666453567662523631183827682309514955603653996125622912712100542874364232678295599338573985792818018074829079215578120944489005784581268914419708095443935909662153683185882211556650212625240275926643031328772900756803102707652191776430906661624036085636586372502690460411973925068950988687486716372179157308070502713721557012298246966075151756785211392549741968681984276214963399110927157059581340482093670206154486320926488718914859871072701124179278065094815614631980033668591995051465924897310948402549545154105322262250523382611501932484442573233882904157004156449513061699775197535029218564130640668367047642838183334328752095714524289948134811446065651219571334076024320586236388290776650667721894083352349204228377476028413413607020433575411488290524558021269491651815243699234643707813121767860351330341990958608216862647182823985751220479821816014462604364620944954281307448075995078026093880885926138808029404995910745647876938421981514753312293431872077750577668776113977789086181608461854533557307050667954815134266663556673844070265141815828630049940921467708714629920008920645747924523310259617944869031320645589145580542063289011478199327911428140823492455187140589151741712787875232951201169165528339928464479444435254653701974016865259890115340151044197391684117789207641910727980154142580903550837766121026565200807793835043893033907320797498131060242448287105331904812205305971783307465837248832119912131991659135536136623083768870504897410584185014613116918546606841696947637874751395182283895635849165649906356719186798072480281026156208959883333639630803628349439406276251319697703634783555143959457908758444723117296967304832945512759045114494616747848192529791985942242016104329784665290543328204096206249706461570418043031051280539672935280890153894959360024965203374352918440732083946718715083710548032517510345554308264749702240226916435429496192477553488072747298624462006331834526296910018201346617351303507384452116620459941760859780996066542309257455604989383140470350239313169180564870953606649075605116113012554538109639576395699759156528517728178685508115387249595008489465464914484144556101941230283222716117539365845935224420334528316537957923231466385708867499814496694257388346650763636534383861797416648231367099421877776112243544349550004433509528664154846462348400308583031234548535581092615419230908223247431324281146520171261030250433260545487932519212811200614524028868405495651778285540181525873066322985986402020218711194101748468991242903012391882179539989577912473530409774453370867217974254243869443779196401853657655614978331908364601719670979550537644269462531727081713812222567866157062029941646974633263884394115956457330468226950184075805194642359039746848692657837115287414345201126342953424765317093684675981423315395274143907017398731972042645540526719940116460780115320480177060413869185297138662642280569769577926061712330757730653084648841076679317716507471221453279915483441170126039317631032305091128096087034882994819630227136933030891989412017923022538645820813322904307165852019312161786230356156596697810389082302487555931396961325646668340265197352336116033622118984222094141904117902179168278828667509387796375501659099009639565621699129521624685731603233762305746876324018407003758104343509421802925745002386498831945564428228065323871865649215359320327775615835868419902038489719590996570227033223166957186635876645289624017344193621117274383905899935377049565232916136553744319488419921661117874922141014316391084909609594239540306572382100395999287405296183427735199630886346114695006082404624827284221039826679198450733826816379873450233009580514736828054727955821677418677320642991290471443495608357031126467320043645674334527894599215099122987534035415978966259282672721972226836620724865955143960450262488793552019842796442259027291701804417549588766137492379090950896908765978551969022188774101802966995261056306814706968607749647135620277291927109371365952533820469035806774706720170011275800420801446984470375456769531511602810907500619300738503530182847747568975086434601877017040015544547715039708670075741358857540423427823297159590275267741468739454005598964725718663280609127025648361211613817875622962031008457259669787880400732731201950897388173890411339673027921706778318239481491460814871787673397953283094927976099859230602575978149598310762982725655182112597443914582788188332139453857916829072058026701986069845937951379256450355014776069519544366985885340477812138914193044058301822723119541798210093323297836324895692455791188349253727844961132317531513662043779215978383323942375292308336934008332994254346662279803749433144399328475082453664941611163056307802862981725210042448502194348960914177238066532620572222457823912704174773654157783351487791729817860429411493969106596830184788878441714234398073304521044404118274167434481218381240090001168969334776682846456168549567731567428605447485567916483572516177791545240438565079188509732020087986893644086500943031239175096119773383068003148650039447803749665948902476121069820670397484839995340006303726186406361518261554366145275945886383861711207304291459682329670010096528706731348882102599809773345885797421284847467463534543014337568243145387798467900074052314608675903554529016172656877747932208867226461671290053632210462548641196057212378457648268222150035725877900821812915261558084909020289444109219731929359180107968671889911842255243166596641818632581295158735757526850681386064364916516411825164037067416740608703233863220669326100220448038321755039712978211796058153314626203031481726732406517264179842209286896267081580871514351483527246548702439679997424179314485753205351753978309870389661435450639580492073147081352793242917188090020181537565832363121277193188557654180420373218816450356316138565647385778970528628540299360211913355729779601711475247560956239686246642753672262153882349256942860899116725317833219125388594301026516543824700156156930187245021406631904318742923518707129866061436857152304030003047674206004791804872209167568991129889510243333588718131618764242623995520494871026856193796856884553150209685788782452399886114589303053640936392481683029268359509918528490176919425409752594517928205952776793674464063134869044306362550127754895157888181078450077573631057302199761504329543088115425373875508061759283361591841247692982396795397446169411827599862401297171134310568804641709225783559851747267009224277434732292168194319594477053395504120331083458038882485916723229694476009805469321037938089039019063276705066362279677327109340010232538033734846692161518839299394490862972543045832591438798238604879824230343082220100776642359527401161380562741295086310999957457399924412556526085211740963732003530743058788042606007249630643357864525240678314728688541465775264794399910161969048671084323472963179271970817257347023005619381315024835975196383361858133171557834303549527803387096152721183645171662788442595456810262721899070669451193419694194476190586277228133303546579831840544831732611467248484907103494656625390236139379781299936734607095435486333477391744642962130947960287111226186813584048063041820971041817117979909033265287159366685428439581330241060705401122494594845962837955554460100647493341167652697286042888084513894714003420973079118957591707489582404752591366349573803621684944247442717592303171301730276703986625325655460575188270386984826016605416452188236903184658451731910804374027507966283989805496604008652271242756953507689990389356802152105384888138357235019376738971850179807433115898683280117847484858986080311828384312605988344372968959232497711073377043348118865589909140967716713489337409445386556178788815391895144032916357202385703811953726834673856163503421911880994885242500281578543698928768158890586405468758292998300022274858448953118156466541793464088500122886232419797356884942788309006216199376496974995518293595319223174848423719654742746703239580890402830638606445304882419922838136202136672423186770224025009466131708875795766634312156174071490887143985930061109535391475283289691644379284878723238864381155435030214168021077081230853020503077275401996786078724475067239098638482589802453266200809858114031514103956426411907577795659579942991178636325136079450355674805419559714603361984228538786979422905991167372974537694018156729480882476830125316883649905686987595740623149218613286075229532039176700459123114662660792914413687058578899105100515348103161818661557194340509375872070512146145473509551046229091264941691607301624776191680231630000123980173810753839736047968385600644753296908143308116179391088845695335491858997344197031506366646368880091192151875715139719583043674689682190404237014920181926508077025193396886155449647157917890812388932921207793928615794483321666054904670529572535016022462947324237649438830796950212482875777247879795249953874200898286926731638082168159744782357332832535690521327451538607559829251019859210484606180648146267612995172003404952306517760698546875233608193652627276292932686191314394569151550032572117683876073651928251614080499424670155960450119028067657145823319958552700369198440749191138419726707399678431845833975305829198967204762978639485141380050028720797735902451713753769674768616871042109949371122969702554081942492258406908983913556400608165683909849842593347909121664098964728468725579687066674841218294993475932974606663931429583973202675255008247621611556833132328674085472708307161817886267241769301406574033931351909250323073667512646939358611294398558848903779637603063485183926829011200733057689525225385283962038393153464296751975395972023433049393369110073732758943455059367247639187888006026625285750739599713599049836185368770681774632380840193811238378485570956884256149392695229237502377588184424678845458679592100773619332211173944109072453976107052980816598014136579573546363123316898737176225105775827341955345527485233141345715434625502038908564581177659831749668095661357263880457125052380200404984640970111571488355792650977409522645156125046222033174503593051491445489117020119005444356662697507730504849852826141814038002933245953143225853726133903688945356113889682601938155187337209331763110957389498825322290838559536165228013263598465413148067029354324339607441417563181523204520620838444602005914517825236773497902862848137441633653683591581893039102374068475623188596286255512755741844291346336977991761420911443910409652196888752274910071620760428072954199327831390637679977244097788288521846066551369735623658462448031866138841397240836777783756310557884349240177397281561882762275938421764159285097357187039492759585301244144334731607216705745800721073621300794297067305804905425320612387054239827883637128298899328364061982771207174308801288447925555002354312737605269599491247900606701958540395053723209386564363198288669419428418202621152302395089479224047420017996970496287204032518506795178799830820451590844524943178786502282655257668408362329585325613107399156713737248312193790954911441245073099924951735641541577874365843640435701715951377063093644230678950549567806778249438801007198270425672578179015344564245695404688411410157519157720488591132296328185621363566238252887101794006419246992429134111322604792605451816686419884861310647388264193943622929168766143410642448843649717398618278828772297584060829450828876460447705150396646573716837699279544991049775688888168513486379856451862342986152336959400976212892063986940994716787266622478188103021532585469900570385014624350738315676815682610700475330203341503771922795445976569468029654555215631931861525293417732944356635519753789855523815630670063194321303292982779115515434549435775932253170241550148827989453699490362312094607250215175436392195051810603105118255392924223893234635956916494333946003789993555454360251402395779157771915217304674883567114470282395159441235274008018566122215670317043648582225484408120294888533465616833092483876873612244565079767073368919030918579547922756493277883188573627098511546685884686046744025453820875136438075437683084181613930513291778124201537893194345621989611701057923902282591566308303844460998716914423047679302538079608053481463295195998675521404023094008689899212722953708282229271223810262142345839084244202013385886530226129474440340076261768646095120686220942935424458867164289209812521557830326715234933015829104438290417301523795397910981126497851713589593341287870051453010179730424535919146912614885886454796241669977084743210514563582138455684878658515032900980083707049365200214527747660820862116229482536529205166190126247984993469687961161764878852692994830920286204738459730500390995679960878554809000102866234651486182989676102797626611150136562313306078486198849875268992591024403722830531334830497293348310142253911516571638706091040170972512880024114630452087691261257367526706088745529745990991286835772052553310597673570217903546842092596445810463630688363052381556175749976044569775166076074207107024711987275181737948159134301056174121331580132594177372521863482124806896893013113099386201334788905005882230381441810359846238932875714641881155988000380273033298886985458655965840969632219794353460825209882952733165224832455996503858449822087340930100157163934203255079730797138567210101902250817599703589257929925622445198110733785188933944188304974184730259674503314668385610737086219320702069491052747887892468304043918884723907886780677258725624478458448872511705251302188130441906790491682259803614188468609481464122184365256108324497381746875225956157826971964766659146372068999283420724512480293252171893950993054283470987225647169419489750839194460909724547616593784988869088536330683369116041454709155445744140668587091883118421523901190508980104167948841940889427261312332909176714800848559011309108564207315275159766648849422083606785302508349465431329379013425093739528694525418252499357601302665252375533319031487840648266175215640983359548583550280623358557786233478966388035870682921103153196260125080437086350513517472019577186781872377592747193574396860259982821397516112274946636535172509388068164477976893509116800390257978327437191168187959719861213978834998725719225703443491140379166710584187762458752584000192222456637733374723671900199929528794826395069001116518558129300179604521227487198218857107271459027252012749291222252940168891019277124129208469151351152868859027979303719639975986364128686309535112836248479142363380991195779654730887030789757546807615873542029979880429631434301265174064827608871164113458299370624802910237152006761486544644702491080879870612047272204875112880961134368359113257853716668166638237253275151857093524905970442853225959295333980253816465519456022314693291163123010603914781884988832312341051083006689554193061031485937951734612244656372125963005033181770210781566328853214610423923131374713420041545102828155103492364873338983382677415215662403527531649227721295473265639645095051480113115916046444171167010340420683884599272052996100502655524514225909680390202156599767342631173205885664784879030362143828528216169861949847720235675626565217760357017905088395049449121026191565082429245161956655020416397765883523410299358826972472513104669009593951588917710744082432420888169850981384467449367570565722796512982166446267777544647422338395259536638653222355496472228248564604675762949595767592396788904540933175308984624965797430347300293781329160762249682521922195109610356328392638214890341424765138807820717160030778008752428612389865513867616026155933433376222187696525585400955449439637019760155287268880670216471122423817491668415898766910221975918758326728860538856930624505933923797460484481630961456263216792047238300102326865620625760084297804167193543199599630254371186777778629269257009572559912059505776962915459048573888749566537085298113570173106955015818259763611123935648831170353335982102974226751283364399501768911768561713119630725773443667028412563185856151176313047290277697630369695955610093792062824305328126027364588667940253939438560337083451254584894963049378032037184497487892151467947080434423032254272423046642938360975424478688977380530341657675900608780672296873710513616507319391784828653347843580947846579133389102761147502837245766300941526856898324229645930363791140689106649063960798419125876103599163602108722602347560503038332240585656458528918912249046618329013457207040727203771003733338972931927145825688451059069890321158673951446322296922690346749691636909327563360573769920597835755532347410177379649487491699591720562861515409750609711635777979581376964162274711346820639680875493339439557076558190697851628556721090347249250921918605711295827823187286496905263101117119017379184714175189659054615453830968059078043732851774391450870511036789641463750342829935963559104002379594148939741039667361558068893017685319184055268442196168488488382749217590005648290321785760771158629024540029139647779067981763513054927176304966276376792484397325440859734332417314634884336814596436945505801263939084023626060257779457954087047247798267193265339400273275637354929127629049895702674946373213672125897962546450305176823959212954911456427536725043917740076366079143783440289938557966243287018199397367182254888813005966530155220889035918501224952607975143762102895276651790542160259085597577830460810505441562933650384815621879819578672862418542470412575115681196322625127014420099158476320830409307106695760909623232161923222403211566020205638517060340738614944441047907237457785562268134623777838724802375770558642539975911026203103022963985210393909990935507821699595359809672520289063950738534333938874349979643348077036468451155144463992311434742563498950697743483237983683977404987246212201961188975268062233503741769535335748536499287104278310778104140614064721922645450559435774254336502317414887954892200755960766472149272893639847882405821719901307560500876414381879898529295134314163631933215003947573752445360678884346840100496859238021820616846906429505296368517193530998425008360143782427509027243389719714219317658299852294724077651892542591681996585145357041380958495526127662221696264671022451448702718345722518515179475658758806380674918730888741096333752198319093150892777652700543515381380408257230931919044493267760102967436619866116525939848483402778179115565813639102892466544056262778455438270205900497534284967455614143807859621840742096822212568656317335355384259433934321015136433571412980995043002710755447639274002253196520886952179475688280790929277822261127037985013021982154341307369131841651926436501775758724688209997245812372151348330183207251374637625671864159929296261377357347182928263849482723503188780416678463337491434707057694312512062953783943672036758412712888659918710693185535682737034969250900843800410952070900005609860955742877851592581645553376322680694773966963924908383255877944822264103528156213537874970740847025388378339072152420779108358516254552160312499403728539637194545964648559971961977272367198891025867597771807046577204709187097423214678956229795389939440847129388351740791973822609738503095203211601224965019040693407213870876007155271137871508814992932419307043428350996075319284391783735793802933403449956618993698429262495287464812572950160548924069946852671721039570481343229858121244710913525910873209665201243774782020872489757641404472438920695100582271125024260325505448808962658381944250097675650030200098760827564836080337470385488236978518341187717250315873168585015027738500617523223480844606331725307176845437501081739096480755530354210931393389217633859424728319784419140059588395976693714296198596998848047877883313169843242400693547912450718565442064659387021965102196202689442387587845502410475441374354757905641392138981371441383565892966172843650838534403581311532161238425107645156652873733717610313529212482047169524080236394856947201670095319627918231357663962551637726206418194633387490161807520795411078381457326461304772707129051295313992629519435437304428607233909749617610634689372714787756650632760977996725133557510897097557504282244187142444145071122880893044535211826600516330864793413081337661167286085382562888206277446786707214524488805594641785264549274307834831064013506396978587156859267751216461705129086901288287432847220489712165526410841247958875613062703900705137193903285505115999227118182027001474885762049047361595030937920679491352261248098699551896052382521202528930725994011831285554295551759356901175618378059132504948273133092755401751417581246122838329530883923609792851264046339857081346161665810051740851049792969059541661234484508368139733879799621937361360187105045088487088082885790785436435733431843198231712577143758415774101673566501353921723300601517969100109350554818725940309925482697535891137019092725867160392059438032828891089282991668910088724851118329553346048194489364885273634156088518372190579723730785337846084961066474329901736664131893865016190281949029125369575268849725958983430985479585438462207973007549307876299512157041280266850249057365596740478426175856664261288838557738737293561101093371992796315604037436613716052090834889440044968361232442756588694586089150294643242199297835968391575908874468282364288981361707021882202597144177263502029782246749059309702923363035796546745669554965948440268761151776262662266949413527078719985303444326352005086979645329640915089667235265523639835661934217982000124153419409367680019114524197419543345587527623277652888638215231643611748190656763136075235320284276759345366575792041138605627718491389981659303342704842170054836439161763133366416433580038040759293780500328258678694824837562701414649960572722006494648199894336882696774503340304761067590524280080082836337077741392140179042510617196347537561611544773992724085879344083736800331980590580067820069220032609338942303174931450591937353998159391225537249198301121978519713258267588411833678257266024404131139251089577735387603651648604544512481592742273538552143373277789158035186391379108636014689115272416273472095584825367469324791259274426987797499027352233943134386885049185731223414320484996158218065339152066318086842383544090733718037976945413141406240140959955327853555187759895760619458919241826065479642674115175139872501835975395042381595324094413136217716220505538523218290443649219201013220976498338660111868644533403512474759992604654841163666703848532196492374784471337527217670096705571193488614375268023444398108235802266563266879557032069226604385917299286274584932651664818430012832490977630378788082359700490583107412803219979343785647063478407889945387769942746878471558148322943786981034832011466525251136178203102964644037167579927567108362248216298202193081555174366359632029857752770517781147005714114788057435242902763622601699917053255725120617038082577300518840107545243863492236971043114975223309316885196472614324730022782958295593272860179537158156635477757567873116662111517732942628805284209804204207717695742133383935166030976081849370085093303190226986238470787154315636519275090389960663326600756852734654239825851656451788126015918015532503130509117586689296162961978561366941635904571151732389832194959348385443193605720904464032171189177023034400747960012387688589459803258908269733029405271844511943296168977122945570819598651823831169125465068841077156560251740497050499508321959347620316907934582493179426509446015385955978129864874463310620329828808189859984217274106970615143318482753096655380607742528102217984686241733710629196500807353604322056075221210649339866449620528385152672353898099030728692467169225707756371364192860966092873896638795179084433935565166730317994977623304772331989341034748640057982847618343429408748733727413052991873757419227283722356927693354809412812615820721178830259727756717398206758621016477547897286394252299413270028433225423682706192427070005265091958655104383370162643918100018899156080743919470658380601562373077002090494722646173120550268909369967310786875356984289802452206263169667852314862212820088589204566515629293654542922692967773392998288252707619028117264399610242197709411896973361645495384172661168372911636721785721286077104031941789994201006751855770352240398002704053686576927917153035169905543334465612058818425724188964212615428648302804991449376230075603460195337030717455015714041738738517750061075773675536079065992233361515362480662412251594601990361053579433308320295794176999909595930990144610920150885414423856278910951820495463124891462158913408527065989475655565065802174074611308894114374450746344063052098849605257216847804092024466850418954167494260277232174209974434104558392768889444988742523307356618453821132224108586459276472705561356830282213100582606200335962218978976321861910891315530354105161761941940806343840030281525401740627075311979229947951863672621624156100228358884306096723327392631872821326468544005673997264805812880303743370374812514875927811696777005022658576846020786207625635261728008713586110896499952991280887183500527756449218848946965695929255384492053135398208439415669348475117436215937454676688617768472636940334202171621798225384024328004629786404828667896994454159377888332462901853541822574581279924248118632483160668278010838010181318791957241834286536512531110759278461452181405625487819662206538156355406493302336596923555951343897850467489148079188026438929495423921411169053142559123283148308344385597161019712293330566632575377401257304583718712833685343569803869176953152364163959711099523448609258157700225156844119879370349096743798167038544361063368302407071069428997768968729219032256362470950521304584615128176824251831447079463316626002890555269609350389285140117256354396570134220987204261333890516941880050311767837596101776875221517920330518710995447534967770175761852608990555295150893290876852698003963781203362456751728137561998570521528444140095044019945400536781216250366695150135085222438762565107590725728652904639268588434299483426736191100003375338491568052679739502718176015919887098470309835373049659295398807726630542111920960722377929086562086198989453141155842270481999037310033796626404901548044394656222098457010257323202029924628967453673056438257902751721340615748106635000618706186194596500404894891516542902421953416338896546252264237440799760391736882935012714605484638064511180015051038138216612714248741264190642166417490211318373385732133037051727915958270981423406672718479796071421158334568666744456556029074702263727194169441217501134254266598155322065556400073571497081795644354000643465770993477334085919075796218976981252641969831676709211897847025295412738662514685533392901683342901989207948939687711064505462207172362986372325165126480056937652720349467705285729455565037924312677292417258438928801336726703357914121941085203769241783329491939428648250354946018055808609686313416546838670791120439606826916957481644608534152912565175369641315024358505465668791208227735020394946267563550993224282140305535054341461710146096339210249963400583519202252714057731721069762899405507189209366587838026823012132253626039177154720912270785196044202812893948926465732860788732973024279195311221303711229069402018709747425977322394462669642893561480857454774512914290208541758051217048080720542804405816855433341726102263106873582024043193583530070793773280880385629384111487622785713437037636869950915579134511114446285966828731689690432892249670916773508431766123411915502477690462589902779734321214435199847365720299160241234210505128513160786191493012435715875307987915762015375527817606424126841926044959203421330359254218779129207860615427986497681796427500265333825596401634181777489639265233220048855692145246413345866397301225261549567375417096791311450812915795169414507512601176726904613982946778515330055490564228604484822784988985118886440720958669299340210076278344350535157774881943533069359675198918094324544541824285202326814463739614777060013102023988275259607124200657800996337767418372885293054290766740957245869546161797062060323422231068050612138005145967367332582615252537505013381528360051185872179086634983856774008739789313617123203941923726064258741568104396359690431194801832023725383679532960937731722134650420863054541303437299594040328776996052527186003841954486423777464739791090328565066964370667407953388171241403967422189556850762525677962307252817098491197802628252464424263580017844518652650408373144413510038645796253671473266189919763198405294903585604066538917096807739758574392841060677438065597069347389352878228007593538942411691198693127575999709587523469672978580845349103582701463606544579274474097829674274306357245629185091818227168238002951890552131918878058680618299180505914061957650981654901308860185955831713735954954826154054815418441786600589996940931191064568716792311361052470215261465565989667749502145326002946336099258739272375050250797907129343922887511306926003125687731221516259151772517864420481417622028937412301798998296451422607789589559964512249217239856064041071887089436916007250869388434514403397127131026819431535051806925043902710218720477899113056825728831747889436968376157093233071157910493421538716863124937754592833388410519835751549033593708620567011701509931225381699375564391464353915568573397434142913490518760722820574558533372185102034090219417798827894170833637311158600668911522008709603854386028174104262073914368641926810442124875608654639473422762705068289891251745492461738548114240718850883098701894398028122141875562513654820001872142705559045687843995302091456815127308987838914453154497969433524737377481690523152545329776441465674879339203316224662381063250012154658539193070636243637600168357233465603766777260930908876479607779185494196013195354594230608614177810443637868570464273834089315620962867669340147083344824010827166222577938210258602302482081787731069405562224141268633344598420643164632605331784390705055490908602456187720258864637767518754119956631077610066846440607147282399456941650391690516154329535356371685853551399997337640866405297195945863169904482363123061892360364894073370500378042922971501808349557845537002588250123110677870162782710179296771659152806298574707964191629321400438278151170149293573668122429161260646452461443572529249650533506502602619918407119097939276236115219783251724467418980201760621179962200788786356853651253509339913356848015572468618197292946174983074559483649817638204930286909372019234314704354518248617152915218987816608030603683632481328019710833325177972563996240099253647921142408162157130457319714198419607490477389318617600843621391047730466677824261595209432114169393803925767117689498656878515269110229426567302743580387959936542483254054513306902833266870206713452958356958303472744556906334106267019656783756040867800689252543572358585743062516395532238557991889205542331663355128389292050572361346545165051437346569986113843194586113501717805596487154669794421122240634499009393201059419152747115126344541836856843115674503216677036937601791169676392886282362164913600085378128935278999057117621669343095616428334207154124050297623545629913018247658331557308782008151299695717248369263760225774246196567701523199572854527998687952772178720186251125032234587838581811610254421655663013060528912562350316422160960878957555247351874797694573118714975984450845929422316030688674629602846882616947683019785757510461831669131817261794674538239983060378164378615916599249563747144977771634621741543611115644778652076461494649428641394613013204618540822755360027125371239073206972278306589696256246938331470327807590092126933803806009273586534858389147095178258291511321778409838007242869232523440881421744196675663089150103754341427219984154395029014539522413299809012390091745816258885602491176499710477297324583839769082530523816825102262499565616576443843532778981418434604264907205503888064142995348000265966117354090099338188515581208047935748080457086238585669921713488231062040008337479314489495931854190143270923929399555189612865001099580236508663088972403667813893917579366011768144936476965687261258234088490844094501854602773859773578629319661195080903485783675211540146633661367524843703726690207622501581419927276353436480788660682141922898299987473721554020865015699532081860484344450541219056710737484981461425418987702156185689653629647912155113848280913431589359310006545120484331449266533328976094097625647290900919183461472328068406705569266746030965895178357423729637989974868536141846240873506507771029343397066315555847742336009856136140510627791989494252303208103441006150785415722699314997060681203750237275191391915586416632940149139873958824039218142161962443767972860568206039196571306751056804515022439746008427532808393254037188591744646983481661899218962675656132588114787676567589256307626250294964741453622609890114378613277713934368132488131365667091537411316541236035027851845944117523294198269768634867163110058827145862437225074118701482803962696181173727417315902112592017820363300492932589219400009720719542031367959522980535601160046738759118354938549130460589285679718346114771838832172492514006692516225420040657678978297957507586318139588605377488872281961424813291505237907636790265708100101976587182738712280234198560157596094687718811546940154823602318231985642998124860714059580084022800879558287684617677269431878875908450947901769607775336580889817957461888191124256014037594934962982421012221325884924168979377830704433295906142757190603649551100496852296017453615107872847732105740444577745861062881185356752678781041240808950750889754547122047143320929667025710392904227268871595821094026369816757985957199988361210059437168260049128559489786184854215666120906356067948867472798109866474658591295331992264885956190985032146047196002912103424084550721338400452455254160541927312060853743645002954349080381115718033977118966350226014643989182109783605779468574866075188707194668690959811320649690788162357182501929806556958674460302489069341677231868479537450625082302432160491129021241685929504323182950043724731160023386619568476740511444449163193220068521645287971738460719260085831352698556423964787217149517749687873969488013600847558301727318683824654307621178490439981242166170252427247170309927155859549831273328698063286938850095760116336573597380432197435427886169892185274144110561586954364338152449548720702912113952335414760355750075077284038514930472265188081849613787386653444331249872992217521552266942525905209369381018644547004875381259018014115539382999378262826237116229667877283594275417189849228957704340654344808079997659244014254493604667372371916818837394153706809413917402302068729078466396274782253431657484893830843222228416896836366472066636124233365290855969216407865395502987934103045570899141654529009861023844789632815486479419350920193433295471261127241027865200862642669391646689908130498825860501403150218531481186229463278448071657948478903343956885742671276136495765624012324860963000614469271292630760321453821986940432271869983594943043787668388625157603265250931149829667272682265390986833292653577724233766337433681254420345563546824334022580871598872888768013733129976160729391522185118236120229867832390083480247448142584205612989228329368172590768766231187353144073167620392710512111156604763236271984634061399703432916952682075165042772416635662161550896055707860341663818442924708333144863653053866881573962446489813801511210929560129567140376023513984965463521029571158214229448068128584267458338693307581707126116759173692012295329041092394242407428066269773598395433263203220380145351237293980644956144415929655086731017716358095274100012850073219369832229908612127894259602667695304415113702617177493718790078047578730093058021093714186929734045308642291405827021855762636594505307650494016010587913064540215404889685663146481207013897141192191486271297923943761449619950404982103807574409417778669627000000059444040986539828813309217289258050625018475530938625797337285745157090336178305791313372612875920974677263744351784213958600168953261725060735521422554536248641999420912423833077981153117524063832165378966324377429467219402254593647781978146399691706178687600030681500993500929183316119254890298551787102600567053254780190753877608576085719223085089044864308856610464985714463475923926262694931313747503373498818195483458322341587219289459705200426053417839330503943986536989904508658424400786715855237772391347243329557845593582935839190543734393947046120625724158100592349276609821885464206419172253616497531200971459471815583502319895814899983819278334793350909498780620308357636677562915784017314003651642546400394291653701933847545714472563763277036388057521200942232198309924993956844355201822861422235468243759115309636772531238449927813554490330924126516360343736484536115885193489293038791923264254020375831906795355409244495007543957190963426661104069555801615027676681737431737570876720628463373284942048052150381413913945594462448445533208002428371402388116060718845243743505212870812199245119988621243379999015834988067376329711968088837404626162133677725589888446095839523869708992633930781108051877213807112549091450265951522104692770004676533815207776217607532378013729741719876168354085563766739322515274240977068036983138310176717123798209812123782708487035332995157527961028198457130915618220181535042042602011764584677162921724740158982238181381306372838749341575014134089660273877586191203748228848129977221760481309293285782431771027333048198295817075261598005499378872446092073620414238057367499388955199540390898686834463697901066618546164573748188482634158151338054995425422676219063941948025744881940311191658484812048856954885964191173963378205119383941576505959825037637012353502027140996707662689937982695176517793704632837158449030950084340406415680481148590644071693098591347786130303338788183020073970034637679754210781179875673956850789126449503441721259787441177643679603836017841404644033252879548670870029685026978650247333676975056629172880035701879418532324017331984408968659685655109390826284321330970172858959925923975906577389072715299965237943423976782817062562471551338849851145552931993305441365042443900495973432652946416987316190340800199169819215161618441327304449783939666691142053310559915715281291949764627599759344782434531228816033966336958854630166379108978993908022968609824987676845671750381106812266819645257894130405695225673761178069127665027462283341629120813005185831692556361720336552258882114531267197118524526720296159827989464996833626418670709264006877249555509836166588377044021981935612260729517282332927740998333454578417548887314390621972186456253440324511999111538558655465946596199609434104641583268546242569458083933403646409871083297063393475846691610330122127091347782405552554065135233207718114954260407053319048438652885034113355176346401957373312226695210554884790784907062589805411402725399824845518176057922950897642354367510392211907820607618636317613814530179102388330375729656758315434328277743249084718585730181637245221627064922279951332940259683638536386775435656755950924733522378951941217557591497191222292639895147312844413797588730006953142492279194642154989324080327216843460480074056257991086208317464622414941288444810616006981432383456986752215696139867487047452049805377817255071521605177554003460581197931204078907694571309643836914964500235183609900749336382485702839559600295040580616240305209479558672735678805211008021634656263827461951872473344056048291715702490792860990177829135128043623203072875892264454810564356761266455312666926915309222293071577702332231570124844615140580424947970345354218078513175925798870531412422007586987196188656387485220833428722789197205831809211207416861837818794469045008274351803529531613134524054049296430655607500688539734420443433689754828563079665975954354180446966541946646090574067727981493094280736191181654875716573128512821679705410634889028889790273882977872262385621978476243437336236295714184811121455587156127589435539392584332138732408823844192673764308413926475726925603163481984063222343835391979993842049672176361339846664936655251379607538195553048489319157396514807519580715432997299615803731445191946472207816869738221586530065796765080839340673368297563232087836830076781896853278853138545565345800877940972856666491127968847810588688567079497883867230177060814410961010739913801374651028475496220067832913987088129388339910095426429721304645743008957517071452835446262199282156098069568013117441586243991649374151872416099671820219612623441099480099195975093155804788974411538197003769878917797557995257457291206999051121588263263502433686159010557635340756047833238085621169604240321653086939905307470894648218195224675244125508457537330546048516919571811904716232875815152538502342000352748847219739852469196586722201853282335951568146401232865739466612108644040921676585207582132921836232515566575047000662176699672751083452418632984616501418273174695070782848741930810222306618834076433355650996472199995606630017192855778415031450947404347491434344500574592208209169599846648175990073870246659213894182850334544737154026096869639101780650681467651756338193251033249088987444936483409542292346101454208313775223643360596390283218783189825428519382266504374208027763272430431827619301920061656832257814606858672524260384401293845588189665759553465079242491785323393246379564155911091267079213374874782954751716692812590912711422243644065348069839645689862326528080394394463774491835875367536797778796169918295347953555330278843096087491894602877195140566281347469647575724476630860829833689039713735435812400658414493413878509753241891168699498664313719012581857094854765627999914694526888144057002856242351077835684885241452302170963069887898309044634346035448773442949064873175847863009962589295363245039750070600745125357486733588851430052016294915894480119914876266398767285534203474069536781474065289238255025515837518360092539906766286816123610403135396954011467915892553233567472577137088046896351831443999414127977400659309478210060017363873142243808040927634131688345107747630789079109402901489842395684382453805192998608658209907954213590817798246675485854162682553352405226055605276003434027645966693472354060814246855127341493807545816876864109827070786016798413825815861031280264912988181660741038910254438009036822783456856204615993886708546673628337448343439975356937096899773627574299922080992263075085868040810851354214958316822156391576592708785965342051778471199890713757384249701856027572136982375912461518250312983905617721249500613286667377780564674680459208003698916571681232386336055578477392039045433955125376052284416314430370014680030942676571656908172642149170327785286490264302972899019465843428463553885976602678832017839978650996146069163347171037596925362379836410954550992284816094819126285772859110676098957787468144431368256156235562836803238964181438810449889472799750115113921647755554948803971381643822778290531234683185460467605626512153668977909166740022132108010893140353554027879799222696378134047642665688590218242510927444252485182960699826666776608793470531159313165626581893897459427949727050735921104363215603190715174995662864269269026672045205328068835014849992230346808410068739626937002623738166901991245730538032688996971665977843873432589144575855231425525509878362346462426363408442077455841003524696372554328439955426915464389802125904414455610720846998798770042330582073899158709723659896862985189604611088951772715124191722213019737720325098445021379954446179437532712713146714417074583375670639005704382199890866473524730120892601225192259098830321181524153912139047866594265773386494985091927368663638800860739158741018693653584346316058107683356788733505155199983514549309498550794338952665082342959184831942400690113222421784294958204110280809238220437817554356506586172552921876130427573793261523767109617388205469273237075444771406910869533274794965884047395762807687634757791485105216327037920351199469955613885164943525858632144676563777835431255679010087180395673580925071876521505562807973535590938959802022703965357516562891211126025703917095276200285084096234493199947716498224995333647455524146216289508311940627502647400440113752391447725629788500021078110907885533131707962664957003056728656911319246567890238942671083957996089966522470767935899777660944121626918899157880844332845154652999928070015252227922205758254245887379297493448868028254840053274177849841641351139690942179533545729029816124296801962348198040426430459755880601522936357405478131349614854607516620807663841004345520444725197358872874614164427325527774408437517389327327096591410693408717633123848547198815187355992689373859450939084494155049143129564425756256701493687258442258420617248972406363066031447237527937853669409721670875871356074192728536561293185107002163405718810325117766144278442780344480369334598066963527630507866498490321345337630364961259276446388049750134303898512698127432061819292982367235176874940687961483259824297693527985040423589868857748214730402413430442845283352338709232584736383840525367929986795223622717711709890989665664071054017014633859417370593030296420103414944964217557997439620574296467102493036757719993220478857097671679122013559063433657641377914426826682780103319875195217065981747537180817343854250632630196894364198709014404124379135771765229225730626929102893758203031343216284833668992879191517036515664388810356440316753641764921755123612414610377588330266902419858387020776614547062192295544150445865909206217538589532434086241319845578154064892312713723609388821761419917920909284468430288588996467508367268689874574828021053646214376206765456423257111106960827211533252519741028149022412349047440721933722274312694000576914401130345610611833806956184540329094834278148161506825878726812965123618954561505440940987116756396703206929131050691002097304456604558055927740076813888015744753222267205184777677731591124955939070291413949065924624392885497023190084624663876814918625497854300713461394942304727745862144277419095591348983611946698209765530757488807033945953628058732682612901699043211390256450771289271662066489620756825452030007394197569337172543377920756711618162835620236716332957807850350190359638743795012426789961643372465498226677283987216461982603391258793068453078709683912294777408791931767395740678039044256863466841529712509668797951786547624573169960820804382458978862532622356726946342317965148324730899462753445751542724986778723315652977461389630116362324639598431919349134482491251916482143821481508960748648236813663896032835938544272526991601988326877115958065643181244057283738154913114037195855774118289690912343077935026504535387282521631239981235797090547623962253326036796407311433370762378542763529293412123641345968329013096567954082037955192482232467210915359774294220810283480067327084278976784307542772340284475918147497272608410732212212690348356392517781199346772884238681180894512861244143105726583792525357241481934029316819474693209232164663942200793654213459051379713742201179806953922639481912403732541924674228069617518957447358728021171764988344236021713513911764756200624889957196579584763734905174890578617215741982019758186966344053773025741761393407074513581928348707582039277946734624512218470126482271372077473812549437913272560145437343345252260196211267150087002308660736588919267677054256670696161983157995644578798470455031033274177812984404355323600061442896125780680385721554840339543049875547942849977323279042327405584899215068493944485047162988109818411394266019090756969557145520747204535046681378778073094272657148462830892636991432623318655957376941282183590840549281074645278168029530036314357654381139095326453407649923733935137551713509249017872483225367058929111457955221721777193078114960165160332216384522738463488836848042429274228839592877166565137104510049946426850417854198540150063444638165886422151487847770724358675386263718523175432237544965545710595274357279421890194166363898910350578776766206068061103624959156047526188548173423852516367358086098208545970680247473957829821145212618396272421031869282018335056627490391326814577344587084805547630563648915933222210155436658365793974011278639812177780487673763280139317955706483664832206846496397202867285349128191022910515874044648924944970714211637519303515495360046639125812303056157903622074872065526558033372518898431642847071175976569917173954806903151860501497391157423387497852175666070975084689550699842228134981191119730037698494893174851693519021002937188959684376631242596178644418968143797578265491779529598366784998210261789223448858231718905419643028077145330505049255586904968309342208701940076622346645784043471884974794303504276290812801450889078629258690884903718720962626019638211908621258375289915479325043890027735508186672295765369931796237541311101393245160513378012879448561622976718333091642401665581454050494710794812650209751841087964318315776564899322283936485179908414053824642315637021837209416846788830911366213610383315658397441283803016314835705301569533343262086489850371067988110390838610181061630471164049509187394096281539924514467216058741714594260880648553400897134828015768814490084167300698700005969152771126778694862459126565608401955488380687070896592269711170770818927001870703051810374050285218324030913698540993283253057797761956971255483200380541179267404764272476892945124983904668945786618201663816754172164915896561737126613529660315341519493282861420380554663973276097191291222435107044646001571191515991553703859972897012635152345733531252067534707697794609632942357904573133685036545973111616187641529503042290153470886062211164379723169845859608472431669835223972826652686431156569737026850841956219944598928433830730214705221205882047375826092549280577653195165373993677206914479636850416230230921017695690186707275262536994434362100134959974276919538272706395904103217317515703845443117733744672269796912683257728457240834189956922016732665176458899668453815892957305519345670365052771236651344347843460747536864728178954429269136082594626353380478558872637845650072863323901272146083108106532751475209967166689677988648992594920619932760944537570788933586200970944685481189617309893668119446309495948070532025252234152168245283129706849832196094778818868838881995401310912988699026800803360717456753072858793806301951392167429322998997976555412570404782122621662455365579727245889913975125005633965261551547159729233486397102732250548552803427494756144683518902302573989731519217687196771639919043953590509660054878486350000318982674295522912384125939809140614936582118819641183426557995756992247125821947357356332289151064314615862457150700839840967633820686152591259436938606762083122759726358695425665072633044423395407849471935520260466758920093268116726478035995438967130231504620015955780876501223549542671587651554263821748271417607517420606661986892805658163727401807874277192548231559340581919457394649748567052819952739589615790977532000473814198700117210153268746399653249637823062874702345627863133164638228617067101960857495905978885999016210992215775297886519122050524000461280623539001824405657203344591258297327564921387646216244761983864321215686451648240042356908164224128894869941945693274848899952276706207919206911619140435621622884529911579755361955486637657649815746655690201403006680715448870842383959558931766413958371772015848237061950255697777969614559674782605976503446299994117157142188367637914649132129606598172166220867333246260802632302186241882247059474100848267531130385399198629661826834662757013855752977128580032199370003234205695550958697947948619548419688780259144820834741232592331665811197665898095398826549578593359614889922101703707832001511637309630051787431963340789105555774286027154974277066331720757267443394078477268502100290759755621813456283423851570167062342556888609955181135639612077149180602614151985880111274770638879715860815753260856639240229592259710022927686220395719768964665562871232911056078043468175139621399286201637951064690138827735847795344143512387139659795654599332414181102652072849622751796463074022983231844304920533622356832111766383273492492438266921137086762763408803960762192701500064175052263639728238811293535926423711075380933082043599597421430543149207745612720778701927840278226738129485117094802432603072588016721023629508800817317515111783303998619341755216523227250161664875361614500970713546357134469687896167397747800183076893354940304187406370625957563850032652073512237202072731027797629027782688023808017696002833823993979562273854832523448613254552956539451269224069496646581660966298602103813217145430377527826904126080887760650351765558559339450147113775426514628169977109878253945378390028230542556946605792310802433845119789775438698431591540875419747228959472480117833256043718133483554387595580671583246414603136585140503823502033217579601503715046405878145712393185566669931332814683238437667475511502090883610115970915241437605301872264773379260144040572664895017081031811186565722349017266102542146533351498818480926251734117959369008589460843711745520632138005134092368886142233096220821997692616710901325025617958378775832917672017237763383701763292098263815774160568839788390645691800944402486730609897537812607134971278402231808166487192688593891035761348014329985022800989424865261751235301032451163760072623547970977673633696011381718400252149908953824045074700438898349838577235302490955575148192058394218818398376922445109127297526685169903088499948919701667887607805647533751754239696293412339894010534923772874903550114674158650412760758406824003841999390499716009490996468559346993937387550255273201181317360884733003127102495897212509366168559649534570189773659342321048997468831579860772780433706166435955099338941195465608544067630664918124124194501767890593617056723582977423416083607736751336940942906801051668960458434343103371024866689693070156395930940687322486979527748102806854018417253476060852595535767802465411090905423031314218215694789887357709084501964507355740226666316604241894130777849773478418359327804780676716104537496333863402191957746792976245640128855744166248341947594776003987917137185184862903250543447435311781524363026927087939929607708210913538225512069574566149146002561991412460585058545497050283372403225590781638905551875265246114462995370529099979567127941319669905334697132730857478694980239907611394397718396700487540309797264904736723659279180432401091402216985921203722897231120713252211490674413634265525781748348903553508521846514233281554187646227465168998669921138398529180029868597356192627794871849214690903833515824066295371731729213093662281879041207692936908268222753882890154737014227548830772269156535866180702693576789026733184052963387872265992092975387426093363896194091133534938754123948651378205276963500188670018014061720306958979311145634063561305202208932550070133768239479454592931004595067985216002729652251414712734535310259310113504482684044488384069878633581646173734975636433020457978129470026551088894502432881524764723608774153911864455994458911720154536198571428547667384522230891029254498815332635870504895206750454895711441910565893746824980647866406753178242011885350886312845804280525196186378687961076348174407568941654514892740274576974588734397664269874618794714784833462080394210212031875440054777961868410103114510367076070799340739863781557049356863057390895093698352386862190159213057018084005289378867925231725220974774166796170323179849729188345387924390271501411724209607340603474150302736786076501561041142819071035143781208349346254021720698020661750950858566139247593938133915025966064703123201403392638943703299079595821289830414350793690879902951704518650279400828072241791265888803776029390838043736448537279385938176370936117202344923205160275303592424167577038481881727384521153067871485888306311368608171621713431804155881392306929574009050146645506888183019694823909140580570152624868817478993536769992240646635175777493277528762491153238604826474452033396063485363816231955326161080702367726605022844049525516114035465898909348767651508325405636776548456298261717476649268811897447169246447791550007456255685018130569501123232753978128728189864801492457404698073234446932738860687467502933747379689897005323520902256983921980845505411748793146360270170121122227979526778184046173929406002367935127061807880942984255975059807948741051984501636561723485160716074448680996628629249218207118845750415045211427241082024927659161449951762946556398996080790699233857713776804387818855310555944434451124859174872402899044542891068194698731077063307507417227983489055513892709941298820422350697529345654959401862848297510678325574700072281769300727925716580101070136310467114988856384891734504751945677237454755921361406557797854075293672976194811504378061008941379232487661535136608081859496249060493469385185906770758186482753545300424680676138056511260894200765329509799537328600499182449595713105476954887038984419366525719922097903748958787658693004300736161637854540125793997053773218541467885839356159920723965087646711193518481396963252264434713419485522205125958937007163012190568735901139723650690324493935710066180804824893093465833944205302293858606807745030293103744506916439462657791201077494233419321215272588467137342933863963960824924748205207329380393037105034812134453634826687500192758364713829997663552215964463291241690028802247565580767812106163791467364294989770486112154944658672799838372400381811773768809615448073285305722169049226555449183484244846264437646124160977695666498254540393063454893272660431257020624123547334194757674837007676506326557019262188459589867318472205041878163884439634915830811525435411416054484326573076419961025629752389092407929488131220914935407221231199552307071292388720000621568383036850906144702691661972111744609064770460413360491133462751309182599731730171913308437557600141398029135963856707131132189127699401913104778267617163483028200725568050909541484261540631975311314384889414635849432847636335615826534951400093864856115128675818246029112039278277649619288927592201441341180539306908697517070619038427827416311894805472590122915669014549832298488154804569815663439497704807617885234154083096242429047595805659431201367962991202409927031699316967693288758988812442076737889629642469648460039451553121487639802981975444636830763935168388272254364730774064197748351786323149498799883708997682080599047537969891433340309458240156093844289593701589024438375899724286872295551781578075038644472020771365109613229960158563401209757053630925018514139323401274532532604941143486970484272080336146134284743939897080738211878668260740749284672600336878130068844900225909097236326871655336865884674981534982090071729664710904279632673939330142985354143057476148642542979883070014230350448277212712636586198025977290394676858893402044391472673962851429485107514109465554053854050106803099951506834817221424126434467035829128145098967937905179988836475012751194265499330628031429551044688628153006992901572558450640142209997093510545171773281014668807926048257387207098875253305725401008631346988864848288442711725147638154077280025791944578534924325145130013637237621348566968865023276150962479432751643574261271623616585504266544963299252930498704113164787544049197027564722227431061867582808958546261884071706416574600396571978279978740119031792234661913775953273768529495220098158208539358511052478146019410718162469175183908225344079029527776469871799790605637050925350757736122579510736455048218206203865348302748837669993482048060851848426236422453308354061072744978556791767610077448192916527045709761189662848069529845446953539272454249506034625090612738118303745627754929471782920940123621889004595706284307829418580516253628124400780931772291601479784771777050679861432452089109788018383676742939007233382184732942879797774711795462837531858520269281577563080610094784779212457551794788611822450135575745267631219134050322811509697198673708820624756008714282545677633014769929955153701286387576558849517643307532240838493308902399042638467088003862393098506983478737020191565278446539702113370158197209165336095288031460731586118672593966894564933163851282964338613037279571135326737134091513098528366886956178813105222628935779096485970170293750793296927767576891627071952115733015832387898183277582201181599764429945031848607374534611242931289045801170721565361958605153369695690168778221022751502388874724654878687800885543940525412964012091883380381035549121041648532032326245547046676643125582727140496639966133305955573166744251479726533869752477291994434837092716899288948382882788966391916512620304621596655076350621989230144168808399064522311232377068028191912947951850792679130250331246929386404403914973391489996396890439544008918920937563401589880136726143339126306115694486229381909527382409982269563782358509627440895403839516644511349384372613319983540131441910679810770894737539079671797174449151934971056063639962697976122937585494258289986215114435476479082376680733477295550955443378445283776572115333382856733605825548233752796632078991061590334358485523688494011017788947087580760803835276550512220325204123364421413644495553325569125282488669787570734603356189962554257947783412999531971140331862293471502104273931177894823495523059332094184617860538615201333926798105402635065025468448221147322489136209630193379920866422909246759629298222483091154038635165832528006535959188675155095085524656504666854675719829801412593142702137986683970502412505199919211280956184204490042913226444872142711349968279528542686905147472875421201726454517618086994170679305197888758675826642861403448886493116538869285258794695797234780460793259741159256485703563066017376632967380219601154211042137479794480242330063128790636355892328057526553588530734103073333397541452160843935231664921453084398747681307163237835540733178563005352843176385401626445044541144579267409361525897894603818334168423535123265267649776870472735487881488316192368255480918987251932994950520448636944355445916590380823559575224218208611311422052249974804300060976509113331537849780448491204300408645458111586775050875581264955863876099746636073766380051020440851120776012729554907189936696815390652335352442790082296859676622927436767906097623237619190965720158804939849616290555269534494458096804334512862863202279728316350453711441583738257004775334310400465164922326486984788181112533639485977366575177717560751654524489891909388402216457496623184563218337832598986723689758361636961737647096593407570912740183968530549440305114457620177572079300689241739776686159877653053771120380313467071016395589430593753617851093690502862575977185894785549574575843886947043664938213702838948759165974715459807202333529558666045912224173221768970538757891976298058652904730237545115405458124222367533643318470720202044225488149246856355635747392547499477613590704773804521274434326040116497765162939011781872366537639571280316265741456487128067343602677682095116183914344493209347086069589506606711904785751685178812072174220758130154977079796549228993065618606312639209180083985440455343237725876516161441246288885654862765280576227144733203613084728372043330803304758783211562488757666657677176926438546951603517213403530405215558770183744671618939402020599733442093288303462136631273524686872714879821021872577324168755075910239060676658516204357973447720221319061206654182232624459822897574168334660080578924536985714799682141991044649298048030593698347006695451157725678992452430996708819106627681540855554402659041481127566244385236513975087905677573651087186825256756995010785743202187219525261850512716933172418076920599587396499736805048221626902798017915795225145484554356787737532152097751748861360802115747070793698281454164396929878309299090452649006778242179282336817883020987142418482957857900851236265645811106687026200586048781789877466869166420394741183285530828704974089459484064951451609475327220406450795055745908253875407128896707234898537386361730639906700453250402015947546753841178107192378180650606819476214657760865748384304222583484481615165770102972216257002869299615750230647461754291029044722954079672964875774170717095282439934831606373409516148057636622251918198610594601975453459668864409760121309968291976999489183748033029830679505677134020634644244584153874274828379266904032142284212055752225579709154053921688995149622889998490185747876244304606930613265011455284144277110666677797419300117544685826024559289274442553579971063429678339960676320810076421049834125937657144190303608609530450545597774710734427421234622694322471459418351686680021757809605503760074763377800645354143736671446198081173333453124941827008225782771604337882118682603378731148431683493528627214230928776680834437770911809605616481198669861677637904175052205672056453255554302276656795346654440504004500229390086787708947062223019624915857105215751806494565933795382392471121487337507745826131096403288139537734083494177354908935441034920992155568479065041492550523809994855800296621291647991153485360866494638186108663387563396122362665107963001334012437463912843947664596205632882179911742067643816060294575167410499349135237829474618143356923407417915381287451478313854797734691080029383207600895766908224475150285342773771631567813400728313382258212649306511979621803495811473849028631174184919540948684375097865870791861266021599711910806894032813074279435125568704998469961641548275221682531351355871109293090525537485766682727163022361036029951440741496921529018064611175123856713404996589690002581917583530118364499612194349918332211235010279778901214741213826440936053104721260391702475984127395814908196148764020299741810089415167614496179414488771981857046287297630253364999379911871122839368062646722868868900639147024925224077867449907720778294966507286226720746183555887794297445246534863254909383078015610823192418070977060189798115693924340667451274341211843331082334541993508990427363363020235694133649656252759588425396759292669974766051746118200037339445920736324216484431330494772336264994578359112347786406480117249755194143318482655612070511849369949166579069144074156642965759893044562761317449260956386496570505706270505071998359116351695028893629382750635512168894846597697368418946617310445945158348094691865174229197537526568217534313094620560440800814269430700938767020819943253472178752365197513026728929467021533164310315444602780031452351259601289099934993525094998353333546835752899870741956883307452327229519607702838659624595378648272342168815654842013179761922497127136184543411561159977418917583485903252148943401720504661293507101062405344601797790435312744176830111616912928912864854471286330683360698929125897918839810028079583501161658872528390782417623273514773783550313828491885002955523695601546086468505395852526629532369057467079970679592388503246477894284662913118460023188280276399331766648386983314878642362730478652763180194250317877184998885096217453345669952531673602278087336747731394834670220891000367330966111690356172765753822768408051624588592157418848268826224282787935299661273831166868994718314779223563717608954574582289389018369401711233811265032053267530418948044047621688332505043765691599949728846948710094347570373766809556814546005357882976070062083491571722131984514908340950155045791285115413233110453853265522831777595299265334762377530562295977624246525992679166326244060719682429878448147599558427083089235932065938179828784560653703606259619231299714366339511261691157685002061683464543077003412532035971955869652243983992219501216163158294688155973034830183944709326888306286124662089388195095353846420786568881048463302632032209753267681256969754801726578457620228439556827214492201685494160731124639890540066660531941497950167826679495816655561347463695213723569803922763023374868952385310855720435682069738471595364580571192264007614973248801926876187933767698616936966886226496714589476756518342229348093929093148119164516140145507534630587497016529180680937275080994689759302210620757260548985686231913519492395691676016185383669832203839359131172162512704781149759197185522357655444523211238604110344043618944596479759295278425260651755382650047940266040684902103481298370080901299896010777760678723660019787133309063394843411069104835600122119253790288834389180983860169053634577705561251985940810447353042390870576236876008829256001333309186225889355113040118696304928731810040299111827238664140066764896903421210082962620024552903294764471229251933965897343730724167797697211732376552049914862656461176913648730480399111710462225501858210469749175724535345495083280825666893719777020138849079867986031149809805919919910624361775680716171762568558068454399228153895291802862676737662398053458557640415393270680048100563820519690897069336174566648287812203949885001809507460416195515407991840240374082461840385764868163161131527681619369522822201891011949352401688996406971147449563038122703794521824347999562967124141477162555628681860357079230823038763725132134944182690546500899677171918979909768923604728938405720544970786652295963239327413757488979894161235463858682892649550491771766798591993212254033990971656812304244434048235134785275181269789661015211272948826130652536427637820355062928805344421202087321559366201392242770335999359957789239273159403330576546419078755613799254839165936823677037459971597852210681471160170185371181423365375051018935843534607059965807511901099293569530245171833123793168868055140194133530118029691723163365115788477818852581697104260596816690448690394261036240918198156191816993416691864898333030242971196178489753276778885415090912369193335451009950786293659465845967636425894522632298096709108388025082570837698566890025098117885144948550492670682280598855822914936734661510019083980913873123770537640173534772005038759267275556248855237293560454739942415906632022416123676043542626528325070229594888761185059291842393930773896044744215763706136745226399576004090927894639729542039795330913493429338082212440546070850366435227636819589191005515329581933364934676834040178941816482906622907689720672241611466394272829559811083323654088109554964431148966714488211112224782155672053710158970434960012738023458004968319390082317580801544667629206156526588137168978016195032205383556535052249397695742542974075937154761112000122356604110459052305572973051595030837397601599144448844383813845262442099265979396269674872069526237288485686049156880619212792438275153539988635467143061789459794356610296695897487042236455547984392315122508187231620203571737357812042544311299853473932351433521479882950859243060249524881831027452386973267664213435935132858323628145446302551819544044504471877182050970674302426770268214906754305613048835203050443519337186983657717049429469782635909393458611794789290426803965778222551683561108240454114417335271442672550917733127047225851658900885346842628181259813691439894479604983251820348898185070939789736254500665170980356351590393626008277915921567165815425658531240545819630386731045009366612903766182732353863740243870069225125665099184232800300775782203491495475354860958608206236433669671158472640535905671570924958419853300186988575621280051222685099704975405760768325141841075123820960190361122774004779107972829525497538668383076948495875307113784782353810701781831372260638124524464275802087692635376502709397881354653548591882448907385203581672135293934208977946222011427675254032744542960264315749141757185497249887450457434205764964672746339001419649192706337358574226471983847938113315808397414565570535109556154601583402014499240945878296241104820901769731849701056630028618233111613786502462764247481351129518517110095108558333301034708199549947236276940465814084847977692539386171717874158539652744072710401915923420708928034626774370436991661110498295894711960611990477448901634604007702954242276228626784402936953635342430185751247074440491289419980490649930198702373361492912059236656153272837643679359354355765964048806911841438302479420569673593840717149013122360607587009223603265257073112814334655133113794767800526759794242317280115091303836094970754460122310225763199707945519327803887580646675264184338336770488563487579646395450462103800785061707557043584526146505303870546936406775009582222619763519951818256000781494627258863690612290996876200637673537040802375537131253491900743453299364111263364160739444871366768391667566542626099320448929964218662979978242396363021523119422057076676057487217730133429386362594945318898012403433016140928622940540543591890915964619517653489172607058822923599929451330498418177638757643100941233644629944006536945655217578334762222281950036255361601943917189577084229319012336780857746436966196819040504743452629727684623401679871759159317786265947281092936492250711780089921667463933327266898794086591254282607171145962379574856134958421277525381763034236141273293207525410872182316269102019961631081699470301976385146368113813359201699839584599664520449852555215203046298853423608622483662202933386605070280908673615218347100406724803365597272818486861718192359821923499383412938678231952323296987482518769004878703849657823761467495012165535693494085032966767431230238677006229749184964503211028382319055332849463780223183556328055067022754798011079143112292106972585780953113471358320527527405320888049284394485873609624812672218906261568256573922988876677252712207300696633405176971006595051727162890197738576247743336440421864742062238338331125300818478325293466523152533676097810536789480633255663043191304662958556854190872789082369709877981157795897042544636896291284101219113927481177233227275682718657272664596246484028433060346301854460281539837739194921822629456167934292015963166356505083415407655469825010504025515529667115461906503246055401698678018834628958010630429132366514436902493082852891851804768612570103039451427018906716470475162898363251626181096605591937303865412203074740637273806510672412630042011088303507931724987239382481247087176130526986984759937362249686112750644605182752026346429604114920720564478992528438548702084784475811666881387170160056371510209122702914096327536441701430264092923966049678696340946732269617754926888661630267072655949600516529732702667621261023646996726190345394515574966769543332180845988029048834993278285739112760505005231446237916508761395784858118594954125324823478079722882791007998095250589850597212897870870177379529743244772642450970083397811316589276554133276689189224986291806635382637404625880549740613108471192352625559728555501188868556025058737171346099236693278024631983372513675036170376431459850405548266099042281824303489558825803225091800388782531263144266582521468045200068881519527372027975027539679319221264204708952589558668987801520737205295997574814628209008245633435540071964568056937730144156695593231567446149132595426714129696783555436111100163306752253114499239839956871674565672909538274512218367108998384094884765724622865070570276949958821051793196990009453394400294181665648227074791861023786238359605646334141165383285423334157862436416869987166336514622368487231227953447965350776072089866185823627338237330828694913657556940834014537813969078928052867126735833717390708643938976120385141045521085183662398374637297731973298760115362974745515427595341907506109075702966053397787548838704140545815321649783262023542365029564924562228322168439412369575524236970923635313852331662597278885317827134892863960982984345550832767381638235256284674749085216195384730874706413141321991121205875508019325100821011610394020894883008753545149461319612350185537356567961415953829044868982737801001615703268188524859177993207572842830457165766915302349775243558131831566959276867186875617432250844465210712701324076109395851295502375878352920049323102790788910312006940710287081346594250265109194636339935719165975202110163298157167250037879189149036148353591190289014914853218590071694913283246071395546404433134354184905929862224441738103174619638732654469618665673567850263761933597216125387837989719605212485453697022589494403155792631535692129146442878093215246063154103820768637121771846483268773659261519941148814521233113055108915035434711679153745113084684837242966055508326443268400358662906387705328614695763955742161772357651610205358378462920317715843935474580302531810773862632582905718262938251011638135455637391812129524107216998303269225370914522105255667837567517764756822222975264005919650293058155894905569295991462377865900156979359893569402261994379576241086680049528395853736145067243410304375774751679945189177735576882790295217483645938168347813952676717446217445399171551716158351373452779330216069245350721180765574862465750438641556155345665599360028991413143339278937251562691031432327041563347056870857774416778115499314514253065269507887804151515676178200358960481280658477587425432953261320852684445337120985462005661698144724528731571784547172931899581834579170294071489677098864344188700432183976026194746930467463331475584030249112454915686328327106279935418914363691903657316742863107303592667450456053500391156514070922621290046207963879943455757082141910087700209486480407357634851470387637754133446999377920252183286140809771350312952004862774376810075372625520232675992326258546128893683144909137108684334783441969029775947473127404150188484919301326902691110414594698245693307920695329107117058788172675762848645543007831992105709962293557861835945553720569651604181054927591887898359633850892108538260170201884062418856882138326921399584982145970295384820549401966394832403917362460993501956526734258570023647138477442284980087366250726619782789297517481522618488021535880797202328092364819344642447741364454075512892664464356936737509733299518026631618787398910835641060683320354935184652509115417892901270853626640705545182109388729455476450502485125314678548813216439171796357972978316264186774388757315501561561168920640179127589505074481396403261539533812497711001101112240846574607488224089768208700217351429215386219638781693606999337459728751469097915776528904739309949592139225350636907758038825192637492059104943311267729470272185098311582831031312534081316826627732204617493258111937395145817715938387430124961314557680909929597422515875618615086054822127498056527686561183251271263565628233533138736415121069299037944360526404571562091777125596428944901202328990177560219736483737613713682142795091397555740198979978465037238447337872832433224296578741119341717161921884689726692867255052695087694949935995836332766553925930783545618698245736193593411824365807627403526206132826585866195488813477171824719366547847441652778882721794479370804719032002964608622600461185250948675199293654895714054208113255174179961873814705094415576586885118856357624353805826287685953161153498400832822907533573387200628135329778928217921373572659182922811591178890310520783796248779861255115742844959523086274426653606486827614878262972686823706539795889504715106439466282542196374641496184319592917194144970010471685472588294348829169361509473522270606388564035690386826276507372150524492974322049233868018887909125254863645887167977860991590989842022031980555132796383357079804606353949650941635262607081381142822141958536792758660246763857019682172674382946645160708444965739311565334321523545488973177620302996371404214311134638463571328046141356911042985085551424705144208835245590809783402923798733376222811877281180014012774949352884058484181781214641978262127149597707661246977632175624015975240621733417122745986941819395853811335264392602514776580420136173901097545964310757824660192111563997055618439986061987203849346585073935652536743814628751491475279736910816009577643246148111276684378956472066820822199990815123272294498246520844340440049337368748596073103157009785165785621501811538598970866933140505144868867498488756883953439502726264255948614160477415181426370837525960832307658745097167700112674017719741598822800365043538020327097711039164616259881303932251931767676686795352320339395341115535204371905777589333837935490051696920510894575918383832361379360427897900457964377640319314076195149695914393654056115476850799174760187353478075589631637595949053038136958711633359327756817142258339074488904245134548052758578856435111677949133342732261708808127431709968291982460804606612691101493073527251232022125655570853125882800777481148607964852775928413914858763680659295450144506638434769612657202899718099849107506159544844503531158080815016810726943732041932952098067871683141383342406218102102730128581279199207087368814860705827706894546714873968586728801396724008081846595410341842614743111532099920688868106293853168551407977995741352348291614488567134104082763709186220167975608330299964464932767155573333227908466527495014802974147912315958778631143422768882047995941500414058538920927579455513423475327387916856416471190697362731193528200067313621224572477226905858642622314575646175730187518735565675717752994569404076558014619894507634949982329392512326527032223927281382712066565905412308206931736150282736227772573515385636590493617659411656539157209222480644888988495796390379435038255003103878421463086544124276922918271505666215681954751917010128444225593421651806131466312847341603864409726032531189306764765053105273393932904451874763508067736898346077112390027245079531704489857570157903807274798008558682520867801037729239120376902086418625663945507059125447844725676827918039409524215050357914293641835421905307872370676719673619840556921225153402564980159303498368491861612124216524094675809381122697823484958944866285481176353069799961500034489841587447150608105685655221802170378762123765310812501315677555689969179046813639341057888796418855482506271274405487244884087074023957285694476641273863078409328265841296433670828534080813712869015604184743385955187513443595912024375332400601188877044565691356230474575621565600448535806397964666691161144015845894992651250131348196387705875565248120461966838930048362468979148690403784234532323353334370740489111567243676638894164816653569367577173670984968107446141003277398023030467896076213653466229027221899085889655252416246114542966708670891771805197355581960935400299914073288473560814278605894916566493062995245254090958508739662415310069560955629210727412001433536483828411979226429386756208804609713978984814876260119045269306748581914848289202345617316082376323785420652473881024439246423092564102205597144512284222250305531211644147272051135412799211494228144874618654754818094312651975189238720176856252481301628729788605900883174476529956214159652711380448744473898269333546989090839158644258430356866552875859266719441953377523866454565987450441544795184264992637274404407848469703563261767786373718802314259341141418670285708724538513003366618722301647211442244714138577182158104687175555400149411062639200051544535430720288445810320671506825643279278295311614103144010333000046098562945779614984343725930208444344654706315502581456306159069471811025774484630855838625375755355619554316475214563941456651905076630128195065114773329490478459102593130894803938137591851444622147080105837274545307093808462203428594139545196877490260756186100054662187737645290382324331751607034426984631286972831355732133010674918281545802804312945658478256059633380179496187109827363437061194892153807183201405585794919836951491959439516737611362238200501833489781706323250562189748732159774194303169860021215471855108305001092083668892477532850265775079859929857846560367932492947682871954592758500427965283913045723235325793311202367196448461275995307858954346358303575919188929592647483662530090489008193143935246255857635934330946413987989809819681275537179541789145947945857920098662712255509732631812725322943435648558283056885742359915098151309317906132890962876617004188484533957726406593501238251049899802598856244113052961432178336001109315133649280507656986468717236438616401743126922149405356021592996441433367430974231888607242559311121899315250148372903116396855200288693347804485092176995288868942945234101085014334679893276258490830697569805804766894627434987573699008573447375301433248253240925393471455080756524318439696554222018642784002276783773446117924614496711080505677699355644638743475231276774784174941787830576489112733379332851687581182348652300518943779945937353398943121897595660583213148974483418238336839611533016627828943410518275276594521744102185063567172783105544321676084905574141514146455984602033919667581604442285988389166515628682861649964187029378898686295122632834884019149990691986966924064381361473941262568782775244173784003974732223760780478590053179007567530440283216120759042579961803358714739062411090902663705459709540163637026966658518094856789773296323567039712354566774483401447401999305239932689729516246284313300819434177246146109416790418985015750956123528478959833674331860707255784863592578841571533972797717804805916669204349999429042385153001824425220929539342257866914911524495963699633028997009018175995205085178355613981187277867605880571634340379070010618698778128866460528803644426094621456231048220014368123542624128800642571898336468644807351465347519372841539925578214950779231248601358354825503844588119611459891415294153877653814393163313524339511786673832830921114982859720000572628529746626475610090363749527253982397631817336168545641619816550372823920907241204930174650190531218095256517670951222262773324706082072022893775914766615328624471695586173784529916701980119813933324706594981425189061104054191842876255251703994986526714916000949336136707637569841797153308973773509966775466678753006317610331592788322660246012608965485072923385807911063673370398754129117012830823996808231374830260540727251056848092704488195416818352019716030911377588810305002323008885959879348389576975733846020392175901456950939080948832594531090052889161712694031188857136704019055360244243563917492883126098343611562852481563151783710893489645064918064026213625033517438675183621834204075039057912783606124205123672987440161582953349313909976850243505229585929654692928745250079800019508488839793706024823597128919684244997753404362710649299406892751428495859628172028152592243214322131123634255490372713339007197003273546206962200123723656970703300413442594995526272281694979048083075762427590927146370125218766133188239827778136692336496721428190938696630881777765736022852709998374862713803409803694864982932567536437879780073784360243015901312855330674142674492994823399700095343871572731923623729442281090741679623800208392006658335190971077982707437977191555025594971838320629607078249964506639067020437979889681916650473137277815303384908711060026327670715868016090944627225444771593063171866538788630126031921781943676270909808237477483632919838458210012881618358569387879606495781270170214080954456062907013224105758226271866801128570355438498334556180368410926730946853693637165298538653940121971910861096864995147290883367673627256771710127215318076672175119638389360107372654370408633868282776377620369548919569209196176428512491871251029799060928662392152873107088718820389301369575154955658192467237979939414335487444371066825552531870086636622337950069039171345675446065872144469151369261736598821753296028113164897675608274276220757948365507583999941320997295070865452248433963473068591102714471712682889220684147531081119838068861901702297887807061671837810298226591077255305833103534229777844791307175831624263263923562100807674666606420763429279580592498712637648523721588560127000061871691410017666237941899904870373861588340356488452312647513444717716431229483931949760105757400976768091979724099420957549877135285098163334423255935887311155844631466453178982560851705008169069524277803599792046127807994008829436133075644786983411357007807596917687401654359010948517678892931436048924192255370827272731347632364985376261843274189040749199096358363992861436361568608099524415732251595533272513659442311508080446863880330338865657932453451374395644778228849170200184120373238595473166603429989703726663808379246447803354535526763432878806374190603294637318135104176957994299934636430349998983858798340539786938460247226390832558576213687101541314483350153443637580741971314272859318032607522696548256504055657225225539269384924082776553065062856943671368995052826979960671548523320172935827872350030679808453546995020692311173928211857989452365792146578514525691440237907418537796729394592561810407614988778240508673088563294790779839257876695916334840548940739687129677002976792534878685856725353108146830517051421282215295830161151164739321157206276665070836625970460346043610736762136754194993388267506690621735698805916202919491225181463016961152369385246462478077755508758036832732912726126434063529614672206346867230348444391849475482149420522783996211480448793407609747674354393449729887793252330792682010151437561609689577550399008353947380617826652635359486121682031594759902634655046348946047602326415798820998833168590983122718320831343970486985872843585578205495726403794834245339125429038354848368332578741321249140629777917759903761359182456220219442658961744108744352361643803329209583969276930137973752027403604253013789936839090060456455090503492136385465015239819078763513891015382177050797449827533787125410721640664923998219160550700712418575099728183461714958501001141795312430858844823029904627897228815461502322231228813182969816250316066482367129700773530366968331261061454040595463617432913612329257683454590898326446916091263537111989955454727925891915371170103333715754898963388197428123154499225274945195442175652059681982675919149085016190534928581957115369475369255299712721638242358945309908951985075217308643004725076756971579302332898673784568520121005942824516823676373011950474808844545071268165069006158968363927618755060841743760115297599304965882637447289623467091585477048117778320664044928771278920887468200266678567354949746004576868162809151935840328414689470958713141500091762773426602520005320395079018001524421125444224214486559770125511976708407837977003660163787096789210192096028732318649767075686538252057937030859170221885654760646056529305769601535557020081971406317332933261550340243526772062358633159970571477480181960347866218036854044641730925913858925864885544648964167565267455660254041480919198959577239136531520945090644515679509348438745047344164771497578449904869460777537269365908978322540882496290757405134860976790001826562358377342725761771186766179351984932406934439807901007654006735237295751124938703182764644960796800689885996910390590705422628802611189823460310889594918086352814991814423572090502072152212478194510708218364397259679608381447125555624815783892618821250528266936611537680718480932970449331092065290903326874446392970623275221758434798338158721960254930934195987918383232078159416270581713480474733764720994466969768836894406155005820152415412504495866637745170544034611429474697697275646165920982475472886935021007995632776032108915135483784667867477334098405482261367607741672719119384967599252807737875716920327868357905717460318302829349337602398831985119250550153939088531767663978196628626367333159927570449261383968064561389926371470305096108550062592607279638641193136037072711352513644415570440909289655166803634816397597252734312164721285363751829297265382651098601761622239308766418793913742074580237519175509200566696621040678276024059133293370060617809032940212302487185647524049335084686021709832193216604734005451315512671886952425979364247375702742219878303830106224174758438245836634673441636854569428928270132519159201902022493893781371405298310306315217363121306070661896176449844904149470086423730708188638940653018860112856882646071787631339339959423570637160713378433015535092479404580316011596190343968753802026007052283736949020631966176495819432244123477365291378490774388767992783513195368704756716334328971885099764929141845296217161998041222975518247757949560121655073581999353520773471757623806866318386386358296190735252399912875235678709682204926564886062760422029259140391619603536365391743011955548809609946986908802150908660276655871166880502766981934427350502917469522906670554582843583309945781601234934810510277441758976172371162210465569581487274810397093675422921421964071318164402749333742555019378685589934805010726606221799450181402973374976217186990380110929837263359281989884438390435880265199251807330237904909127453587957623315228476678000422326202723041272576440868742193364656259763449235477677436565554842210603774029639296081161961133186197729197508962282162315741825246864856823255943856524357974216473319341713648513032607497639596154819610426980791743214789188211029082806376977087828102186886974511087539976215294394357581305268717853246331904473518278160985415189638919634043355086297047718194121522225709035371588688070497884845393304480684250273084837162574831468732686527481504171373130476001102395026320507776340344528987822796700364771986790976110365918839769806300281457394781619518935457855096548435691158764821971495507581793055762214022480064567681122063515120344418530567652970415947998068502944827835969281218190516176971106656320905099672646990332707040976977682946811396131929488051657604917426350682486429330605950652220386560432884729450803363275949619664577441584501912584264943280058302583422444314828139550610950707308108556860733347852943436572277618440005243376690214344850047001348353634911587091309017792506220389517315862766336421249264799357282221783595987841846728083815600580865680227510194005242118675790511888568656052062078891055338715346652676065996890170152685895530248541309616425015508828401124826598911054765414584300382293942006404021902210744288641052265333845884546658905603649861389099113806229573065151494219563876666678670603750669461115954835383101326774912002836164833510585341991742520638400649986793592272519696014303856550123654042401414129574845229339184499391680619913473423801036424941608623361847854520313120574249942686007840701681666213310115386636233166138662761175095698791852399642831483553619548090264591394608265520022154713614273430235801401195736730759828481074725047228208849896670939637388917669289398933098728842354684769948468220381449369455018452067747137565850542664180773532004440615009918854923939318756936221234168470842489840005849420730683268795137581869950288276643541562252591629564867536163892964410239042922826188879154561473527995652721629617436880930304282351924387466132201705616429245343438993947915920400533028515789660804282806730766343813525582927249278168600723366622204799707405129319615443469043537469830461761230083600236776966437098972667014600172442300125943327265854010439573807948286997819932526083261876760449817937687219153005666140188062268549958831449762278242841727419926654087949752031813080043666739908137133829179911386954276501229948055546159914452767994437571701414857317432612581673425367639607890601531728393125584634315969011038016593908725028489987954231792855860963429122220345611294667207792139494781082423602836171617979692255177570918169798155483825581871006719371242487349595641154318642492114919218201820421897502049256246183835192900209932108360466510122458427358708405677812018668542557003387454673395150136362555261149250731422075050681205377631793442229306411162939526748456035395261293531854658270906569522537552135124255178068635262605519412130596873898405601891211120700540465457871069479027028183248045716680622123734534635759446998475348647925440452739946618799402283387004283740693937493221780997376812964026937262237315695461790396920966758683727002288232015971058986842094184045964318380169966984576016203669764016467784366666862180308595497306211892837459156627460698102790502482009878889714222869153895572236355188268983812509820531737811713202683592017295423147692449380129480843476119809446683683971855512519063535092805342418759284946196793676380629885589519779636884051083558849864230075192175127638526114756109014962419099628938251237303750672706885005129737942179861281716021641827743734817162616148347963721150270065389347866747555569398403378481026725386401837447301268697785883212530945403696423309837237391853293298465903248069659100933186512409907007879194164431010550593470265366018072564272386587607622892505303002120807950676040348561628741251817728466822693255190648405683822671903509501904226723071690960857213702319001016615335504205453370140990193910435270545702378421111342286135315675544830672165253348256704994236535619799465536489986720435277490100437487843637346354999670499546246630220727676727303087600865720239329465927383710997190685322526776548322405018596568466547582178098445707371800399960207560608492672674362193287013808727256058293669411551101401502312932516858494356350972276832985758052017062246709431205445939716402445108147281891840097089923999749135407184033745807940847961895434234657248597565467148206671714800154746518829386600524413774865129937263829117374131738440948151062779072868803433595150091322787722847400396869295543384740158737213921252806833060433514648793957257115408572965809197771791268784445075123163316454959900500072595054223000022382841551636620956761920169901635684924631851976016097435472916395984937284983093865000150756917343829798083229802523271645649921783436181251589961805156363530214356222910143810030879802092677488254375128395920431280231775916163685058141926703302934118096976175785214095594546054768194852723735994410643663710859497070254713207793248998533895062470382142112426216811680324636309888851722203575537082863232040467888697938889583786576848459904924680926095858270475291112078110237722084759543445842243980146207797028885379589982992394636266303991754268518580019664409971565285152619030204826097056324643132398388568977569699443263968474663362689165930506358178436490161031103195676856404673298213275564910274549638564177568929499414371353930336697485173887933312015646857161483481647626195296953418947743528208048442095386684245747564622866566279735336819149968582949417465945114757901165209825248137405099871494716776405276737772277793172013499562739628993811656347523057399822248264098782289577219071303696770308550821594109827404570838455916979316790997956090252565381307137792167998613694836941767017238848939953303965837000182366497160224207584924554227035888323251328958782129026946405276403142618260318644491189490189054053786332569787000936455994527149096013854736339656200090585310025946098378158498816396216214259463020882870687726177070769933505711854915184434101706734167241914795993231290791299513577984322946320526153859865698314632374712050661971637066062524198767410827564428775965440907724206162501687685737435748999822500824212621868131049759307766040525718812284262353167021227384090754368994269703344432130345184675389793627524520237440570592101108911119186046135693108913541191927141545331021019405559154132599645777721135342706513443947561176584774067294622561125664209348565462664732921817475258491555065129063462207183329376461706639940605159151455579573097842184487777411145126037805753981401533603342469218939215680565843373014586059668110590056598100216437627657982274588940530685471831479075927939256975736953760141745806655971995411785468626314399593717779399797488493595853040452543547452581192370664465232026350817844445921115722080599157370678292526232666583584714338349064649982645895889399499054618603558908515264403919726231163315114032397247676970276687475823466815230900100465842364258010651313502245915769429820544649774710083127496123615442958922121774738152754295401168525537564294003539601873310036653917638696423734561305410216177200349848364308193079316076884030619678242697031482383361080132627125200440924749773849302727084175887608080319338190833174053003357356097652929307419432648346649607890753384009767189156622298159677561524065748526925703728495311430634750711586173618692555429621008115310104405556567506737229573671927624538439528030084032218605057503808148679458835291769718908741931968171012666065916205291091259450495443221293211092980760428317971801982421650676095859596180891001664055934287729560611896054900385930153683555632498026366767627653284383145045365434377528549339377265105047532295315477843509673668414657337953272631829873905551561490220906279177309402248572441657375182874846292046850351363867399708523273692967472989053725807924912839703689347855206155572746211595295605654824565227772918769099917617937648676385048626101569855035332023884498956834148999586193734395786358259340653966216899135079729220068192268427812654657245723093152290556091622726130237538050298601626177582541355713988896285130500331997664470987040851254729382181386860595530599116028514068232442563317823428026632219976226341784841365970075997212963361301637875532368186239775658228738101852651556356500981693570419059659121807144238426579337049702622001868912896262113025685004949939095528349656649363532376649316635416416574415332372978240489550678610363817711414020345824020422823451752250507524104235128462985071775920118768672529088821043110670002887016820175982301058671226718441093450822044079778639685352580441484794252313783953087163518909308094846134031973458452861240682696829384225891273548984843929153094584900582854813185625492151176579332592359707356345291316574271378422124915501181849049142317630894934223435826728212893445308244884996197399766227068872898060186160478823689695629632339072647372958332063699710262413818068868182814196808795041400431823552913685852526894714217149181474259779474018227061635062296879062864055341369837026811187781820062880754211310899052613989081783716601491646813326867090296988456948002187357067277759919776040547088478782617671315474578132642103134611971884804128323610195122165633390773459955453256969138017012136177269003985132910311765222511739014034357603474247739431798614274967012877069025695393366060982766670528268465981797401037551932489014206860496696967735418122679149134389052765721882107234700576768382893286406825255629191291369571614031717309226706919037531109554191002049312694776813332584100858418078774013931969278353243048227536577960161881528580329887335282843087146881147683094328322187901411950395088048712432921965004275152637013800958813854688485070178729889019633063800787988523445589665041294892392159658429706039615650063337409505285260698600867859275539721309820276979667551271732719096839944591735211503189591458860629832648783928385990468593310155013485064150905661526012195972141110967261668595403958219063574889107831654700119977453312443134102759774573971479033399800585062961042170591599452662176537895675710387893315082980483669560643911071146062232620834201120776975491240024428171358023960146196796780955428555956690238141054276527570260022561997629031566694239061201334206938141700067515839547262485539068519415477005509743060235035075662376888662147446954923895109599804554569133943400055115246460184882648955962335440667887844943972118674668375180495836154485434981743867090659542287729439192736777634694547035405875635776584121548263971802075050258924265862647105860819869671760707031442459969597149859124884375257948830285332959365374550561563164992696225025596076471368948161837190175973683080771927183278981434057894165804774650906574982144682800111072130057238714817086313229523772225722540500692847596142458522445638762565814399141770703414219999205065684967650591368163100516238741151527359060338652580754959868136789235503414376167018940268548229100940252840340499427689619560138999357054285069537433937157460667601118922338189521835489673275616981692623074181130294076585631553139136920607374245889279208355426850681349629493033533008762448128723117339888179851379043514938896692550851797738871303852413364579863731974178408871637579245919893376724179883929827311198684158476827491297237553809624768978734814003514259739834231622968541354129193062848552593521150435175723474712653699123958494394344007769449538922532576509478985504122046843137742939838812683897180893296436641350748319237191482225637273745369225211428005516260960119005867581116422978163748047033479696143829760304060746522923531135686410552723361054486113799566366235807778730022982163267113626116349287765207340844210999956317510573336242089481679920562589683688678681532520821667898341854202372704692781554115670490983583210397161431502527290992542660954672946501613058216450154918564127028614690038130918845078283922348536919600265958626785500349892306350610376630645326718788365498708865747895313200425486648736603193847045696036296488482888214473230396519395005071567556348062406934560085526648180102246961711489661171161939459604252277070087010162267635880413682672477231392737035893045470823123198610157893221955661683319025156885319393896752995510841215863598743459506556689539176495094326558934696537243001362431629223494284958149825529669124847661509787985417387239046393900322841413227862303778723375352081439068511669616895611655517970564429441129749393552213300401281194055251090018990739180382773627816480027905123194229467295563213302951197690746064429345392402464897554813874193770058082364185100946329783836387238138533854370931222785171148983642903964144131760305862441487888116245362414141386496906218842909228683634995036763759189630979098867600228077885945004015608649774996162418176114226507555021101020080600881312249276561331116806189081594457196510490549688974203474206679372407110981563889347047116415669640682976863923887043882150834794582465463169146999670873635163920757200588855156430803591763698114991952199843931068946409247361950490285907670823742241236421222190276512890511217619684103844996693652863015261873640428098717710982145657750617099951985177662634156558924717816368806515936564563792124645560840358234575581751870644934416193415201466138490228976942245018360128246232947756565987817166003924249622662657008368986469251246484653396374626130255301621463299627060771248462639492934764626566616117517589317324243272004132234638391330301526134133635110734081158556633017197407559445721934588844742980664667148204315196708997455314329046231979212636515274534757592715030106382454655595227211706181316291352374926778748753880928726227203690283040584127569791783656190788727919407356270933566869542196323561637453797510116754418586253013123860830022448157991468667002848455340991426850878299198983654577004752917910230364779180948023374275175313151766389271948191373577764224604728803091299325752538781994270021205567461135105581518556458681909033684350845911732357703122145360475120928955770881919966903033389997637750893294989717976863704192475154601421371675443621486067113653608829964540927024362968136991126382398549926995283953844631217007068788328047996761569005725160069932900341214924666401765218903787437140162604197659932481659727392548505465564393794711332418323801978093674385114435140416886708458658529719921835857357336482258820371119098286106526125901594264656118843311234967098742439091961734330936655067459289736578413890651311454855577452552968354704762504475955391984209627180773075863748993983906399589122519503471040827591890649613082662058488571908206684235077356496155109331653157797301793995343470689893115012567904351622493979674845968684683916631436400417095351408626960547074655962667017070943927488223938161889793603234107704856395851561982466404924846930682226814269603804035653697294047624818444720650949064981925825503356855472164971892978556641652253080423756813750138924149188730952706705529156143586207858330934966522471574457093066418739878643155656344017830710268617075439655933039789630579141693350575581357097322253661573785830937620578513992383110171660473401164231124325321920288638873658933808861500251878580523755017278384068521546498785153441702093594378198485093914881211503717473207745440205070898652508501779703651202883401171571873686153991232241224507431240564209703628110789632356376119958978714407920815281521498004089032095961452727715397027498297104079764509234031436298835009901370716450919485914289951850338393716816117799707066510106533424355900466909713728377120165389637241388104798686780319870822608560078927884489863100484836906031465174350706043037126168265205871941132920666154166146677371738063347699904801579669909698786678414314688339994030992307329298590859695641729481331011041324195956912569797752704353747230472211042286512304694966707969618653086677313435701498045193680210265138327469596768863916121361096186855579975336001766224758516164814463484169675283818559652536482161458866654364160752941764572336859835868267532734505822050338740562093902557147046349675544204065063846027278915375017601339716405668921809693440582357971210597581793775886496764977716543173512425576963889093662311928517525688441372033321853782370543393323403429292198363902067344793909563414696277554681951074939358916914148669165189773143405664557488788119734036317847944580652671797617701017355152182520870696242905509984462120079412360922795689564560275350449539334059546108555562465267460712829869999616915384404359017231593806848184199212514729775791084060717322807601083223378806928638514397182602785552234505538563770821138486201312306194545577787600560255758337521974045227147713832490245835440779675842921710086765680891738735914461800961662714582457466237995859622788589620376031616690213497497906041879264025186000960680996519691006789463255504787615600642583913800603901726554719310733968931959770316838454866991931827451388423838971857380574245846768361655742438740992495183820899208187272871848647140017486776550473210492305780325563449790346357496033323459532433235777240437434983140280048352816729904016654842171626246704481597750376640117907651991453006954022551052604883388514627739376069811718498826142619692640248417010793108233088777186759458203434088646350531096138991362048212814699003199127978297306157599730656257333709271744612043912308613842058343941170072318368224633275441516743866000768312351507862584067667093189298046902212869292055645680327508358071820143453927440319750945701458203704869079925223461791245186891226965816103255284556678139522013795350695583471388749811712088435089624936096649188401909010023979373204903074383989126596862347611985058821483157793977049967301054301481375932471352471770535879081372769931358114314650430083594967676597309186399849043184500623652310900703165318919001163639545717366913429434998267604295230036639426308374271411313754518166523801264012824250985831952727416649266478481571956657513972547354281178234417233637638578411248201701862503941259103137900146009804857705736934102380487892987124635880893639195461029297880000710598474426812480707141760646171288266446761643223651856885298974551351662620473570930751486102583626941150156278066376514253286317040067822701593886703108140753934548812610255339136287069889976175072014931012871942865317229766261054088985173930100176417947321681869541078323564184028166173931794638522265842398584285010090297776556885562334566614886564187985239824047570948184637015970359588781157899024135942194108495684202686107696170391868532965118440757120152693037292432705699649431049149710751737946148923485609514338681131683815989928238438437437096039989432548220684742709802745141743784559780857843433844520830451602589416739168618590553603034447300511909341125481459621189091359729840628940761800045697142146649777890862126104170796117918242033867086208085945795232832822617938858788954315399089253797113947105359052619313569950978073112128175321518637360999976926148570533533137872854041080652267597170619474197190962358584434489038642249426091145030725716524565102885570691703179015404252228256469064072366347748073163907293636740656704192330156620295713822179724744885444076995681304714656325480855917823904836682164347933895067407790383661046866817097286892887697614288568368203013932842150082548968750774568468051759049318214778993734260998212890608235617750622566791567814661604438822838778312328955799112187611195378216249096393915743096206217361130024812364428708990538543408884099906593351971508324650645962938320614143651434527153906757336614040788089349178595008265459921648144571128419033574909843903238261600885402869590247851242661513221380868828854670565446483691643951886804837528339645040885765271229502677588723169692249547764661948025273902390337290316857439546212519359778780504121575692927518443627067857496782073469269459201441702674059188265223257092063892918414453684613242736512376192926272473160474366962860380791492653299337093553471751919247077254204575486894888020048919359832059233036287225015617983281803499195735082739913933751180272494769285170407452977316469147624515119606209657226520811469779903400148377877185799073238191747924445086746325530256262267627295971899061322208371798038099754069059555943024762591943825033377612978720575403247959222748589146485377648559815526997356983453830883203819089977842361967269443555452305438200019132768746556800951736859582021443470527933860561704260520411679019426915781530086511433153049710882737849583582339082595066419930755369814180146292845134532857352301411132255383722410250355100581698612274574750028231913158956093825926227366431792541823025626809629717443377610920427582759713597986650621315525869281088739710915864108682395799795244695633422889853882713817079156231983650258643700530594293773183903310803788790172219238578707810762775767374304594675709792790776118389904515936331310607723876587230445563433788452407089622551247740289080448248736759677517892712205540588525771512936983728151362610825168751539708086403689291719937819332806910372926671483488601087243984777853993228577479454021239309605469324405467317281406903320128248344825983110958064533605204472843086495579580491185932673133230878850457817707365499033379814166421888527562627275139002085971452757834263018018205615655487625350700081054324929822775619456897994936690217812745349253775645603309725379728841280508370439039540936162642664835170561880359623383303787192140339051543863708113745522117611299699398537560387275152367496023142551004183309883486566531697915441372429225756107086734208107625256035330116842884303300187644634975261478855772827510898539601919678818037211676597706447301819392400704062922377841630587568048420674032720844540563431350642543027616217316305898881398182468108023345700769758654147975738584790525661871603027737154901100845126839738939267894466948480738131114598184049697888549731385126866619343248678953969907313957056486761141047971528582601312639223168487605228440540024113253703582801448814268045790645119095842133426850089497320956271280980605357861514862933493177096323713152220098506476760892854654561078878986677246477482062460064643195618031590655745858917414595876491859179900745523350767971071205071987884481244083128867996052686120275513393730094941260765531982200058464812591704307006319871088252632121715154925402874151319850007720352017837033859422884442347326682660844326615615141512878913148533736796783185847558251662466297229968707800677723148709911563959359474736969737379707364130733679482091846597278081925253992450558853111903603388734495151685169584489364601570795258898402897578683225196826060146239195117177704807066623331169041391354635819077179911701852085412024202568914211956373705111548689872277858581106798264100585766113336702784887484376478031578382551086396072553994708670491222199535603693713976412831604602656326361590011599498332385231127711508085021786775710023335047912276731622064035948709495959460275386160744570714991274104394755746937599198475873406442297434407235733518327747358006369769804170389096698147738383119587142063257237216361170344628807714697948719105526425859272190615216400098531080425826137505008663791370717520837754661605105786152046115734356230702407440024727745892780275800757571876597539701822766608886287303747562766244445920368844346802023713955334613561020165381671421314815992111969097665147646578143333122721868304224648383060434002544581087503734641947827159657028909359032890521593178645254602012864129485630716999355637671285782000006057028656212881757390711345320697774409959304178785609318317535693368283830078575626776127109838995263285954252290678534895968901280123867980485947335007534965401783845751728773330928715396008558277931420293037957133482026311168613752923410799238982527117823697481020234764402113185807850936182196412783535739608545472825632834950843177209431107063692407569415097065517322091373366939129579970054661076597793701971581936177563404662428253127284147457842702591327690194181399932333397050054288662248030796865553794599799917655943959635335594380600046607765321084588422437545623927640881984267834270155138282052185336464945349267284278995409857182747128461927138268924791228294605093222393304341169493885940923528483335265997242359617111044765541716515235440319092601129230872966775890610442096574684694114996542332902963595116301608672155558915028608263170372441468078719473629371104409020494806479928441765872882347255913413738083567611566711456992155045107824703626327903131778253480856054817114393358816549150774553593231962875944216838006768123000242877020709937917233687044046266259777071791441771875413504147364562607431340777407574272708305237720343073085985212617537613768584957119507212023736608465560024316331341362772831734160289308478506651398890689018808057371912866078385894931340489402780646005885243771929876437654065203503295136779171514265149144500319733649081202558632638723790201641576148282913562928213269892998596261928204510981467009587690958404048772335372091872841510155055792461768525460396127644216284727662587121062588023360777065327319839406118364065438491807557866614717559134564758718920916998023606445925029924579547381767616934734406636400883000862659980135825667697517099142438439405216321434585523459094713707025199749444859080146419788058297101860028586488070310182078761242936714461228999604581261157831107659457615191940054103211657446270700904057761672884065411133490389399946623387175199986055936138474429187173949697048593446270094494791569884389257812656471656046268511612798496756252431677636492468279912457278080245407606793120035516286388695740861167705186837076499102416891904643743650919586020940495226599795643406128418130039376522934577495814501424620760091083111456444925314589264337416319728552614960336415176333524677527819316413268740261816087414281157721439947652809327620200311008557928223392738322382816503507276282255214014815154539314901179054845965047516484026730918011711399305478107145705517336729157695252012105827404505774298134132932166964595205505461721911917428332021519752715799712129705964228937904282761616033939013783498733524485226131208452986045669958277568436641770294124969907174706444111402179769533586109994628458642920116124604394443386287700654458797558266366347234453427509576537019451120990020676934184637021307099142137170470843777074015987657336073314521464012601864035049569789132205106663775855604157237912299615584104319225814217657715433773723707684385090592324561031306757804292664004430034382495265749167339682088901736632307847789149773036969614749016909615399146605915778294369965266808502277779220768264745351669232942426135615692476986087988089005041056257713485208893700334605110651461565987846785584277544422830039981599722107990228707638842162162153768455542233192223281350906569186713240434613033285929549319374866160095946064928680122558311368638575808058854010621344424120322801220764605110083985917757420871549965683338481591420185793615449016502843352571435250878850484998854108804137667961298257830944367367559694002113014933986037331248792812696548162145203583340479056732579095687123114614686235798910649013946632555015730987107317874036042266586345975563879715822709844864643944536233419395358609011562212577823049440576624229294524615321470510948055530555376421130229624497381613191967608198281260222065174627856533398385545081872167617072583992277461307319460460377359466546433444032790051531527398745952380905424439206361200520036795242663595144315610127678634147611644595867632637765826685895999728728717982960469787553790458881189244039495907809412396623192786403046989005167182387011452702800220481902797612403169730611682787645190248443691359120170171647722731244164638655480845622623950572944885230038706105382118286050326348984669605389099065842129145202464704018289504164963123136158450170998997413539364168311060396015429686864191653342300494980579089442337616146708138680599709770575215956748863164741086922512811778646683636757062480128153581679802627134292929844069858467486546324460562586324882500774086044319451388256566907270498064265219266192045549285729406427450327796321251597735151946710050766351014106060498321626940359215087954259714062621390618829422011894499555579248892821820424848578986562131947321669443886768675751680038616396796671227087153740367760975169228878621848062936074945192258707708963953814376135699611135958861648730578603663728503326495507022177669584227153045012827633284894836133196645459886372011812238683281616281153616856532290263308143295306975074551752717290537393472942978395960133837545718196912071162441581481749997182534318773303576260006913234983095631423614723465172276421537743168800817019850446700122930272728745092155256086652799712434496929048456852304613956301484402643223712905224131202025717005192615114994548002717972208747828227347864466759200877647702511263051599937231551794697737821210918518028065663131898589594388552982598224594233439158724211442999366396214996370315437139578563471223452533291178668597743403598686545857065056184873418818379266778072897321516102239509086626721295925839506790873620844406741331981136657209014385013433681166817762807387723692277804424245529521440538887519473186846591602359534832647515649443034471479576108928254163539047117756499074601785420456584820873097321323644964787202677941462181984632329500674551239635484128249943345731606602926196981741053799164589337603671846644344895051154011659535911313146161217722027164915879797822174629437999355095386428838465681591250667873841321130678227700677449640485086834579350606370957388449572301280645529084627531216730912208987818956978296507362376141872115716698897742846341499684294719175012083558834526287231969046355007726819345677355605688766567693705199107380204672993428115889597229868322756659164320550917639484331783820546823317276876276246862309239347098183426567198554191055018661731258654372900616699177580602968950304388188244491872288792074292469554039707844908040335589455797640733638529241670115243833147056546324421311766464215358039399237081114221607292437377951779150675922726451879851781437684309564612002760744863301706172465577201813303796405547595041186892262481401094539716247192188912863409929429636545374385860353538698693724326815168713617422019939045500011589390281148823738344727782639710808704475267510754777498499739813795581834681909192128397861875809852702353155870417008007455309467129542662462553679126061914550332189112220617236009723324497215806256151344173427639211391238179513086847498315974271933224585910936565998431261572248354425594360120838439876429301830005631808064843829770199115923002291190027785395557062665997940938495155579434780756569009655425258434082998667699220119435094439413990193048376624016866808137493375120906038358305755384067877035922675471987955237520590438131064228021265248239022644091585119690116670588930447603395284952837474086709245509598708432132360100151731779251326711183054250576227542024274113524352806863396137686418467933094387434888871480837599692018344953131296766468016737633755183586555411818525202745971817282511344949170274818843877541307430707265481251171470342312444467488321428474848586888280154053140851958376643438228574826326148067892838845033693583406769428346650436424847666250759390511696381826615198367416439226861215731009231703015068271170789581742693713353051786763862418705295149661790206686869492128968016810040082906017019043607998147910018975771661575646331054242954711446831723415817582480835350066414572182130626633848056930580383754351350972860330429369856276343823993311082783802025942204975553493528594686513581975539999544573456969011480881424954702101880988881896005420258463954956470087939122629493975351343007595520346405544314474412046372540148542758273073174841024762995158883425937681673051131809937834023318985275590293453108676260787169225406427127690208802956068017795423580192268594433152291944170739742248261700498633268719804275877675180790552513471037430920247069452344532867345883927800383731210765867505442396921377839761488066450177632575480930915086883008491239008531823623239143575795138044346977954165602444818005914229009756894097777634074931717277086643815494009453107403804596964805479954280196905684770003596265516895261269045423489378966707513437243451875617501666234173091350720246294751065479685781019154345748363058435367087531072653184639612575117936846376777181003535177278284055129625853978899758965439052510661677918739086130476768538584674635556068198677880359376948951680530743133940885685307695884765691563578553095807715331836479559367622442864169022818594306926515940520313167179274015134387193088212362310746919873000365916716554495993103313828180897948577712754985040139800556754520287287826758329283018820006350873698490408251063560232034803206836644250144699293641948653193821689893326434707800202071395656120904778545040118406442876921133897944568216332066898133138860833446528355343799184307921174322021825774912314124179909285069364130091698230200456364578459315358189111793018151950357677932034567906659171175540220431252203270035012614429938870007857337630070241261895049240880567407535458015033297187873291566375004885534213088467402659566796034825225181263911124430030675568730902213732340041798757483853254105387084740045228382460960730358478217397163366818998193337698416214504816190733249924588343425857285134947311571924429899719712327297493257789046386504854654545499260967290587701672116714983812512814482261470691620494068494693862039449886843172166917810074951702059694865349097490089654508107681449993668077339311972582796431419517373360256940547764425633758718211007213160022539006894760646905543335200672747990972684484980063342567190445367836088355824871115874494073640072983384732257159344309918551247083084195090952960856718284263605587738449386255073760373933032491744707518793910579430049847197156641653724609104573610914080901737563131253890208854528040190721729736344166139387530439572321327937654827770709674273892456913333153063550405083108624893038535715160462057237531540696676016022625314142338812264356786455412184566174411695290883139264493433112394581366526653883999654621906903298849610594945321018134634805955537527946252339546402149234857706688653357765040063431357073586940598284224257135629349129432313812063006791190820298758725185767082282243274250759670347679002475992354992570387086453219101859383199334640458108567006484935601702609259686974865417232935309207591457468040146344916310377326321206549836727704513201993150672347789192210091118990396700876173360483614499677304525813934705541509493556167816905188192734261421657417515290396471799354095805006999664762426617864469755669434894838072551907954729293415729349616179696642667956278044530908697823864431556854514241867174668068281527508078086943197278634903606720678755421658623234236885144720280750393137867084841418391951976872510692045499328994631664331674401898998894492140623975173861088345952072019755434422343457206067232716764227589080925817080222524777678455641328472990864233162704028555868450138006779697059894101014053983730958136567695759090863995496976215379609460665618401339523733103698304514705603080620121195325943649125242257857052135308252700841037283781279163078931413694184049274711213710732644834358577470769733636887973873173888589354112723898451209857377880261569241189716842728437068018462469012920413187022923927277704340847219887338610524179077213204681688926405850759507552709246157298463377887868381447667332402627587973999866984615552342186990601556662994453954298836268698770100003338328453498293600963477411560057596104585266618032428076423997515789558522523872986560661918741351209065199580112708577481717544269397029528464455767033649454630336445847516591328418504191957376775058575316891653390544211322751572668396354402745826477719172752989241795928742359846096268591073098878766827472368658283232457896978224877410079359650184927789989988100928063849448779520303666662493026426148252992076205520857247805030144279033707265254168947852859138003014100163387148222824505131517354568738906925325314443718363314637154929503711987993793752536678205419370327595783372685104887040133974975823971836444080902448577225525915112723162001101369081751441344566466158704700150980807549416816793389970319250525485590706992576862677546936690618378734208908139866025739673147940645794258021293833448679858001851547233536276195416178963836666259282381217521442393567778810636363027695932630371610239661006394367676684379635757587372820859591031079962406955867547130492878961113349052476523159444250427114818680470404544582825862023823581060857586263343208897587855323636531369200227660438541831350786033319917570639811894430748931438426533241102531823364647020884670987779009217775042156647605331530097757907436653738943966091392152145128605908438144363848016231768977563675768972161094975299912164411373863741825920817427465509936488613676389301928608245073129063153559160359798297662762653375918158014649014421100749871606575047093661837618283376458282363205937295236396036340006412491080928347845115065070883599149562132808905328027080206377817044240415209483804032612607228351207739357947630829712424103071678559357987117049289492090456652994101694046383574541870881769537313577978056554136511393394432254800030679821240646238271781212241622344265267387968019572320890455879705986941727922452107150447316586706232583703183435924807572493382916225869871240697339932782787024350362983095360200212549981071963770639732763138291972189084211043187197466201491637927568395275004090721040336494927810884078950498885792459623520928050416439435953860497053583979802203616417062351464843146060956517255266832961375243384414477125729959200362353875736864902727613958568926431369123659541390352778218577146061661797951768313830437578995241986730254354585585552646505781351191232386396370250552911997050883550561437010497757152258653275273996949499470181771791513609273685654084821442176992173511968320101336730928174939402702070281816809167296913404155710515902925879444129629097597595949290963554094647467719912443816103311014884741811408710421925379821657242621347384883613191275514044924249595871690679487855256768786106610116085618813986992727625891176633290778249720457805878429279685987080811567784064611789553961597942709551183805391186042940068355532108391532237988722341196704755245286068792962961864176120340624823362753954328806881767751519302528794056980765937864271995820312958683711543928006908712978089298239270632915086256204745950177582593967004051098658815458538964752299696945351559114159504615887731732916688896572754766845958170214586876653731748118979586771338109617627891945188149110568480051411682700521864478927414798065948584243263294434721349736147919080161325963702219594166451637147227163792581809300041108228413452135962640433166862940994378230883834952230502605809177074223019573207279646364934567114184830277318681968672192055306740474636558937275807711080838774253957852382910269509468635855686166700175531852021836754739098474936665889793020492251447265890066285218165660248872931023328774303725338213855538026534710182359855316473185074789587562634965226954107479406406779061879941465711243203550767248187012952875206308889889402276956694938812344668751465613220686595835809160113788219119800623798226171126325992796754305960613568098300570329732048132537863125129268821576629640902957922378330566304404108878879924844317123591374325289005506979831192129280490431942815027796351770871615569634629765982045922937396687818451573132087374132271407542902019640792143244118492315656812092162565491917210497394275760749169342349739193531208956703206452417443298218237997791444605122915574602254257489191990898379675979183855192156691852357769481509823077128445863283832824828345403899703543771883264732856374262473025811809849688552438390540772061526690791209417048855749789052529364705710990475943553962375595488845533496242422307157802987241856464196478249642000509518644440814125718112204729735406352621379412369742115042226413181114206484208115428933804913694703963281083205482679780564797059305326232315209554903162671906879245936299134207395668568945768049372888580987392713515084267646922208252665317631053835649870390646001663837239990714406317634105698625274330684525560973825713130807962017010028875562116700228257860915711557297977505206551426036777189265604519539539465216944056515463102220461150710471826674321276087827943014668448541753991697950672095480164041146768992345971294700796957649231642112231419129976720520565556146345290197746595986708325166726437406552956015738610936402964451892238171796010643136517530579707417261660229377024831132427534303054346249580815035663365773089631885558822795019671322655991837288452819745943684439884825370267784069631584011278336795274493226631981615619723423313895619166567827970450894196648198220437620033138323812786876226440010356670882773228976271019925367162404800569053279868312356567683285173122638277305085455753861222823203858366741919562480879689343844564631952278238178549914507552982148086944698085432573402538374271632728734911569317331507976534912692990060615424057901245557273934394410168241385432088472822006903121862063604329215897880515762772742445756918663486992641584242804826998788414936391797179394004323544044219129603479505313584325414029180605502863129729877101613833419246953033178207130892110936158057371725040192257985477666349576773569663485621888787390057018348319419036853909771042891333831238315703211441987530042801980002332572731554378785293908114633125506870293620443307372303366627952969900288094591171622875750936632203675942285858069944338125191499378506771227855536106099395424400965969266233877298404868602515125171140171777285594562140272363805378916958521555895952840897871782663397316052201495295184314212244368399706592625372992422370763083110452563722906685388296012195021008352352813127026437233354624617801882872323682752295230785344267531955789159049939026776360128446947303817331199823646312656017112895138535863865399426923910240235042064455837936019551624726678092902767463256163312832051873626753984819731086090520362506130499424347904992752661158312994031609000383082461391314620231660662986230927912512223004882482026946896939560558760867587493315480361529028341823504571174542550789733500406449701405011895202521212410419386576126388080996912746081783475205428321946983913187751830544234063861495862932613059871171562441231525082733870119223026668689467107391529424383114354749154180272509200682884897554826495235198779348356113806471768247111549640837132972210138611913785358085931575889011048410619447249765214836830454741599630681853770551223025623986698529781194035801471440548342694230564952736510768083924739158322325117329531985734601277479609129298242040043861474851867787861455640245942110945001560991170160837212123818072452210085075933729710279216640329801683470894169456794969178394157215524974547813787387570589589666402847770530662284845867234542659816200406726539122020477525869413350651461686544666016241831688647361145918547433079190062594062359510154387254615645335678213029019732911982364494517976327704158163249753855086293238047192768075953852587435917424237499042376238693157133132147797115682498710439407507114670704696926263352835741108743680058214404760260123135522427875230701058113271821447972271648637514947486986183348481783556674584333418286568373514594069577793123424197153879319455624185154855569599119493289537607876929717455536548290059940359846993041878672445080275075137497099208107908754834192368366136086677815561976773487252102521738689495588997412380433008699928730645584464008568327782922296302944146596573906367821985775211782758220635519199181729944251901220429870024768386022789342116737964619282824390190288070523724475898800993746738018930202582337755338544961294064677851972718018960761325448979841749640427178100479855220087854590005152091135735384957646306712025079876267281361726798339057008608988563030575501964443321566418677508522422437224597472423123908993198093011129068798571931559953470318266844401241897770077469656812794943077795677194192728121181682643894601799499860897904112395895843714889047318403052077813964408414061662515143463865553846295830303634394678569324290753612858740054400752719303474731860651211387311040101119370135654163445759887299787362503046195382936349907212166982119595757658216914913543799102436880597418105566917094919088506574381576733810675956465657741128594551680916590374898749919031217684659203455716876422340973868179095450417171155987372811859265471129632077075442326940124336275139809030796354673031326142837347309249708752326320124328265790899095323393692351553511965523049342165439917822948431694114217512565397927142942419830055268524034309964584227053474464942017550480801820687686008530612939201834145648132113275012758902380564940284955032896008285023801642207359593996301511194747080686733049808565459009427871390419388583771117392401654755624005728953554884386038345768685994478026551279737988063829431742655799916808390233665354758189965635504184036269510063394999506790459909475817669999215599401687741684648871858697904858224087467541677158037542146914692297139695009050737429775968266458249390872338574065029978715945920968717148220013710579897968158845140897129913353720164952043960816363434802730357862495441228368297343015145002981205432063392634591604126979974829205490796853659934485919374914886846541257158553884462090092728098912969269072320088410607393592484511588089119317061818374400221869427001828003929572880489349218376152999520126657067470799054982575338454998656789060549594496726990508612858794289965319055267704159524214219018059576238381333553189934711613391573218204689101205641042984029690529575054101272769902327170640226608875114805849189049057771250245664228049367475070171837059107092308867278170900487616095261032585054911500369267055559019129033176743409942907722264602001154842444242738735491922981965620984331330668289929551518370837590350862043272243688161285068561148094967865721622386256488333520211920990659166816443855604114293067593876445474615246664974627258370806794544839709194645181535186300142558071620704800779947203040377947818506048320381379605221410735075642932799928344752113708607243866960479870593482738698560510014130913957627690286940628415269057853205312248752835305369045634357592121813177069190787356897298906410956760276422472690887844029012316823017512780881109090866421191046219871068726593365388300689528008827497350806855225070003012685551913995325383658322090217731684096411012485545037433098973442998716968464263461340394544252395148576966380559631964286965479821385451478893256448053827422051264919563637769132755874688115547975532969664203855368910664806984349465746699963817263642388800667517695011248125959268350107667495504513078738681610878093696695085613326870142022594915404852563215716107638396794434915859277350117014769382880356025393486462433385720944889856924697899806170974763186791393491504695780461842554883352375200470954510416113009934260651015230761246591358307057514881637847449221110706708360633475984550251169773275455855385660466750130815903632094953638967857349411640331018491613689689054661645274489200576343346183100570938361457835331105299051383717168621398529943346804081484836071129538341995523104728048168284064477469043368765764392024013220392451158559119107746960344384282290463349389172967016608877142665823429484073359669778026003941850249093230533144368651570877304967642596265652338377680058092184796497821142380843853051750134720783234224194333571183173665219967706899329359569326313681133689147845415765158073683361123065301645127179687530161913199286958674399868809221924523532619047508897922020751809594363646691118732183577897555321089281312856964557857979875444102803553204054101356222214126654408576908736150270374514076517554116647052466602434613515471687991667966691099294226550241400653463495092339307278524640230242666497904895764004345659289139537877516679015838379635676200209460022883319970880576590534325063704844106920323279092883382735082939897303331485357552441788034696188646465822951041372023277620335487929327760096356411509678034014160207665112746360214397674421762065361209196112284875638119978260319911892710658470605986312981709279019882824156889978342133822034761516796528210795667190279597283242028346034264618528854491461244440828008154449090915919661239136087375595162232293361136966800881847647512284039696605479096829798181534540993594697693186853007668432577659923954017562120951996898930044395753537913645264264578149690081749328276354210636864019173986530747361846407250930214211403093271897517290476505097993922520926374274908029344307881841333095705701042371884505722744433269653714510493313463574924240439266960502789628984578944332182032169115867894513193188360204016516481108543256016861223435695483724641496271788766456053227291383510292599834321844187389494664093323973820507010688394508559544442145239832578289409632699171494990932301223938173043375973132239618785400374979900246572725060898809030267253360098683944822819484439964053596074034403674990263848901198803054624001416152518116895447273847301439198663825947888839219039146310248737655390301387513520077136322306437223292018864075278419599501240695049944329308306600361511621768238690743151517440167812632026433230308777167709762683786471262489294834318068157466843313694237059979429023166320619945194204757077312429835635272945878317649087127922773994022991375092865041073113048797642266942023126685260571476637535230646507251488103082410477538141567836244739572556474565833838191688271918852041153945679794531401499218182214144740445191399731322773803480106277551478740114958038259554376230140356035373110154265438932315344407386396726818312401135455766609763970431998576616648868198866872963255680133341289922060957085374565315026537306080637475465014369257914518026686302055289860580198019851023779641538604141569830803595092301969527993870177434067222793419259265555423357252749417328806165200620116337100020165250212309867362655837225090411446723008065017504721923007757328973438622452798268148192008259484406573424487540363281129506658964392197745876845030758428417918272105927093096860346562937965984974141627303680303030165615382789510967296215997804979174870446386591164861253230455905610459372472276542047738400374320374871689925584019533937175785323543986579684798168027484174384405714458690510388773162111599789332299896440036518264641465347287172277209361768447811323061512173746655211690915832071781381406271643530547743641134138975962832253145258702800744591122455849193441478366719903631083126283097718497701934742900677614784989224791948538056904452871095793219618536019235442062844196734860826139111036884612026514928212319601585457272415943023896853617018388731714930721011432383060142569429361390374008544734289744433052882110575685396029561366480818956905925018345315330268147052832885284530288970773523735803034821971036875884540964265812940624835681008413012791352421175540979794825143617279089348816351848345701238144282791318206478090942311022417994755594712642492410192682940405535242368962641361400125236217277109004489949290146617428375557054126300712220106411331359256915174467522434754216814658213800509483789229684779931763498907741123433212167754037128538838621451738352487311095950439480791442935030103429350711467365255159940042286211788436008585979056910191482922238052810314950399983572527112328496200402643118623949036123436514398678004947737639719970578181170044830357656400853866201137467850799470293853786310809879283021907705879779435863409797193158763459865521456384414985789101378955514857611353048645582914623127215419225874665041571142957547464311170020650400615780666244438820638226266213237788844579039791121417719910746548454152808017466954880825026391817845304404813022226600903197748485869339011143392342123538663646500341544788293618200862078601509773609930113034620998141008761359497793352302083804066748558863899104912834021581122944407199519231035809472920630041583327954625920533906293624128011644945339293245326889501682734286477006665389308444771655943384474359223199706550407168400518372324145406956173553548949868722842637085852304369864396737067351606464408489166861193118087987662937133491339202340889833023287960043177422759383038246558236647640127367175273365967076462334522515929000800253414239048856748887634796541913177092237020598107057616241837680329980061765090989875309896499396086196575814771522924808543583959358618986310779902590200918767767508048683353498980926173998603883394879001964456489630316616064829360745599084801028960931511207559166930836240424556026603171511811990403862529360819384823996853784954020087171305267445840350722591077929713994788428020891072860888394913954386216542084926269060409973677145733433213074857841383390743396138610988091224780272439164516336859277760309643924961836992644369468476689120975862374730719137438871752318483755067322406817332676062494424308639972648853872559877351161511802636624937393630742672821279434066400765802001003853172899850232333545308560353561148302181305861703418658302170811156869946960714861479727828942114357476999629424985512169155854007979428856427544051865078613777138275251661552639909418009273837307019030322103278521682016314229058829955579728907876566406911578874619256730010414575680769205041019042062953908283512345585920673205912286250385996422337238060654113304277861589739529727885632139410798074546084345678963333495623084304682647895342230478204480511413172233180410881015138803580321950652061222726666099498655165089996838816630682306469709163107434481783888454591996415258958480775017852074260218785543255101695058973453751133215515832946564394438256848128294756947572494444208147973810125177463818986940627355771288829772497683257244979776384421945483679276306517194332011655355269406248390042159097048875111189736743115847411162806328236596863576403268092606153809512152299607366115299510116849965046624120869734301353273858081407547596909876571019039566858694040656405524789585851084185576242905457700704433712252268719388288794067583115890732790318446433232997468744089152190611737929183414413299659562241545188859153283101046630642889886731640008734920513643144214968545878183371126872159838543910232588274335453491285736241792150757779430161329123789011417389753963114764601095404384629946270123591208483245438402285131742805926024248651806809709181971462677647436968061039359834167677225055128429412777831475422237662841761984159198328737474704878016830441348339889752433914178940837247208112977576668273621318232945103859922359808838140427804700112401671968105146340458080109829996173759398222568781303937533501587245712460420281097308537851314971736416212365464553508840244809850831844516780196214501069187786343292205481204579347349720363880494975618129925081697933287283845577948653992179101599160873755453493545097640283609063234312721352097903379159042675835206040631286497144924043591282207172379049442665506032517684601665338696479975013906597603270079752814328917418207111539339591448869312794197407638309229256812650327154544387473994099845202881755229433290276881235435350230694215481073013212929889203106538358215654187030348493428974791295129211500333037207767112267754354328982846024927941648774782085338566220584453848047343842136267184565306873351229959113798829594104585324110857029229280951922471992009923105968639823088733282262211122079984740187281343859956055511439876185524222280378619529777647836653442475871936970628166612646775644836586526075043375867432957682135179570411415398771484968219847123758824215019549054066973926105967420042434501468620719022087394721733797271439428488850033853659966334173657756376955475934050122190104706490229149756778124745726466121872005603337169058436877146178557741780569061288214929885145106357146074365934020221831443092368885798589301816156598732334128646465627788749253267196799205505152210757333707078487895338670030437725087674314768988689121411854433971107561082185562529264978519242214799185370380589928101760422230580500399161643810703522072866931903396852673811283321853587816463997527920969057922775087606726361199591470455530402944312201227071874598880010140166044595435879247946897338291323377287751587904317263495397675676464588381368516192912892598481258293491411437924501295944417359086838923442364604048616957146592984244561220048698486281546691909289224657763180466726429420020767927361198414795107672593743159104510849377870145113638008196583216020481278449673689716385927398077221886250986690999423705686520724240201606829177116485536878572062179239594255245804144259798560921619204228747507794613302792503956005154499395260358662294744609576677464091425955028226055160055956170409765996715053662257004633929449628065956197946159110704169872869909954221182352782158095852171981876322783047436799236912156393231092798738689365785426066883524721345627461981762696385619805668743660657056355680167541552792558374827709059684070323951117718536391111811229780161323757479937096920612707630251400827862834082692064884004083862546043970534623812673152306246911546337981515487627262330274448687805782279488056785924598070092317417280874256510680469747579972126455742471348015173240412047700703893062946061718362839988165813601092650194421554759871396702524381180445460190432632046174668972434957446839757322443800931985685781338332309951455620267497133535254472284658166767470712911070928895471554329440936706194994001505080214352982975299408555959301417939293981060908233400199809387769064075720389944082759635068824930209185569503459545711842564486414291452765208887883432028572591068765156032549203929391145803210966237225209409315302188898597667051299687583076887652264802089624527877957083150721263078357389036176432727075806364140151608295099312275972922578423857786344067447290695899223336042842802721887547080458314154616802050139584594739720975013419227685756900410354936717960179931881130304143002259529824928725280594378278147701203364937012486840600962984823228188892491222695310665147419558163633072192613343786650458438985630146050437218897793429169853986176053217503776701477388129633274640839805425372650952841607794144610194729637719927707163926708858558276019799023397226700147075943511641214547461117922543372938224232951444759162184319614228760012539508927512241991511039812995784653477163791021066255574471896658865624504077133952978698032328286539561750430543634291801345703659444688008949724367837026816665007211555136587810175399641688553026611473955005735917028108722494824703448258110688828502107838796001817349244025519407475607484000312044964366994111502457060264807733670150574341052750186545807400909392490653324704503356919465953408224148706786590622976697034266869310928175161801714312759738135866197236361333219936250917261080385304908555712304140656486604731367024798970761394272535999201319101479538543627673722429447801792327640433488395728435037574371761174424336791224697845588519610211207878374894511701208257161565341696708477295227904453346421537152452038494052642329885897748891946955897853760566419325182685638575323540289409234730368845503789286881297143530976894594965816781934154472727537595931606528806202705508715998497150542427542695515927903912491415587497715443124942028104685428840207991086912636138323297150446191205257853786471608844330211298064893280536440732849563644060941682579537159922344129373875100312715317146864344706274230737857595284490616699578612010468724442229149720089953574831117495815124796474320895384976751281780505234993322634948899443685025136805557494134942925937935567884580226330789024595726333491506859266648404681701093109937447138662022848021980744169081555440257730209886596471591165397695882296852941432474090233254036379106923402446682230608709844600311312663664921743057767399767239609220750752140039712292468864657838165499533901076060616370910182238877702009056504817929992237926662076674457525047107440749764093396769858947410024953979948446201926234038780884282988278929944122920113967959461763515253666615470499789913154743050083822564847002805961242617170013569444774852685437368169353860853299800365471901785686171221281767796644827170435370915520815077988839116077882049379822731021552422972896909271266779349952780678074170541496430495303850369842696480948813872912352195156428558697883396122305821486307709049677134151458776047558084094125732743145013495320199627292075505276818435916858338170644722889497733427972156403044149100180954729689834370027148725780986292305687069902541075486497172005071546227399751688085639226705592423689595102766177658700490460338161905088944244545094451035782696619412140514138342842218689988658230801197802071975858190020037269338617387695685151759603850861273678858901359281841887864475062247685594152001037067970738303366494460182994192470058739925873146382997203324250727028976104673875030324092031694321318572937045599456957475702604880807915660292358154443613556466207491197559159739249839803978473055571930859102043564865436924986031196149517995491543913616828913454968727365602220909170098462237631629788105823498434903312864016101020168390228746910344468868788646761100345940485464419499633833356091299320969732939383490807463597248018024551448454683647578231582015194912174276780920965034412853393695926781168319456065110587336987850467692060016776624255642818841448843160824668389006529156694412142789164273350700091466846467784637471553342701536321226806464898981962082714192219033787421420924955617222017714688660703550308615721630839049813969885370441885925011917134213776777052297183026201297909228947951958878655859981697606285081950216842480710832055519994545929061745789209308296596143274930178537922238181290445318295967456137721386915053845505201066773976760907134149505827916723730696483061112212982450868938519860013887940462330479072235757753712991550055248981811052682977348295007647587115114788719322875398018863738802051092315144283165395357919357227690070144064171331469336003853243510955450066504743245951447553692788091730640714704862150922208240288716108090492852376007832652206282902074208366394840808087149013109408628413455355502450476750080400206577879193414702777601266402910528982930404625412691478842992499870689634005659468879097914421048211980579368732160984764215899547982975033954965526746778850184844213780432447553353830726352333290383603234658791920250640176871504824217337022838618254436558814989423147938744315486635817139112937891767290095860755916241147319967340589256214966719393515436151100472368529067420884686866807633442061858760239430597141888244957933845220291264829281143008730180174918240594108852569160448396747506674069498380283466364281190710924922447839893516446648665919533918908918965805874422258339863789472530133773089641947163482887521689922033933398127669351828238744958664848303897099840306219363539372490377175430887980575338262975284358035434008278927317101558935377729198275396105360906962830763799374316415991363927183009560819170934828012596811251426958811119908809114503931713258000996817125093352187101124738735089488794395859272451439770023727764533757548133650381739196169212276973072500687806181312331706755599698401374925832202169310265694605640759176212341949016588238484078001947972669716598891700697136640584819540334148610713248920137059469028621430789184044471966907503965692860066258651597657414255420574844848149060683931813201989406503134852292688386798487663679604495909043316041134887789634714854622405470608314260159806417182841954162280754770926762948352313458994096384760121770081692072645528400547367735299905292989011459168615688090613613867817445630513211233727910217518147234409278053573337923877661941715416631518583087852357568598473596571143284145808177085135031910520988705440054137383827677761867134868047943958380145703362859779351168299930918294705861140901362832517440323682216973770560624168505374224234413524165594950980657059798548591103148610353212834523419459520617684711516606101957757950257509144220827811403002889545742591800119345757041610564211784866868614239217333591542445200659638826565737537805890937737739803676102166394426621370635714200518445972597618377902798773531868182538839020268418488751315426491085865234164732619456149752096221750335070397634649426588859717534887700440864895441034416597752839639668430893014736956444444534918608765065052644961956114862238724505974290497226262294366664750984596481286769472970848542577415670329568775199905772066483108528207212314021092385715196477090977166326216031136046652830659837611495276544997532871690019003804840445520796324318464065357546807351692929746735054820353138289301739807070877314545707822804174916809234469923234519347288448745567069485995592309733063157613437144809628864870977609972055946649821647877293599426663852823250003776836723847507845703230380011732720090658227988793011710330461391604541913170075302847380366486042972527049723929231860082872650194077962988723538685367619501536742014801197815317464781776501489544318268799724028095412733678513119236625325130368955711523630847219178595400096924987465005796838654432478966215863269601515416934081950584066429754249109901574774664752436881681986784904827320985995023034486143021838310807786660829579070600094534689933377893056053873281417343920118117111984840019924117041077996380362445203381852286744660913970211793036656297583736422021382036531298652613448687512472741159627528938371739234410328967985275053638931917987201202475805392385903291652402505210585143176948086492133305398311219904462601661250610478046039286886295853508903750813428531667175788494845482062414483464781746355525511978822931477751192490736398136725304718706616013641204042377885095446179130798088680410513525770096657707324125573991731426312628173359757224208700096261170448366876502815844391883227599763064060596957416751478942789772685011321734145628702614161395059142531808209288845924072854509627130929479485363247431035495675289345844738451203220155200692888430533616763359274124867619922450790311989554827603964153246553170260942861662213086606626897831175232884006384742917166461410260625850441499947226853889098356664334485956166275341041902806688897809935827639436106704318869099502960654026588775438902679479273650926750793682761422486215754785695728788925287437299529044897491826372841688827962708121672844927066732525560928953420560421635661837403346416227976708004301713790129177699743219079601073119689160216686180656729386069245342391772485086301026754891676583224697138457920875544498750864667360258490994801476868671544585633938447223449412514023414895749954688754254858628183654392102867529663957110618306942263485039667020966482630490702595268680362770704699510240206149733904873917648293105038151111605258823797219028412671779346493783751085443695001955153168810254026313043684325642395957396627922863105804570994924502620753632083173529274577218357518945364120748865563168044138202223146602152223092017394572111526093938603029834081594169748571064136198371914092049633164194072881472522740693393721209057810823146389081438722118369553819890682280741827866113114712435631429490579180507865944483697710655841543857056750296443184172084524640676118232131081036735100631452370681699828892210121089186477941619150052543561166971099677625422880697614065166673030812709067426430215843895782289940454322306626494695031789908766233145549921560896797571634142107280497010276690782042122766071475394708277236893714810018284989658317535703651855748129142873090222761925739811728771834490312375728024972107308182911602260420443891384330344916579542668749267626561837303935833222585476589426315602222777953769339590809505343743636193068768639579683217561341639949011322640651918200443908498374737095869601537886709614319510798555435516695352428477503256859315989501584049515953833678112046464897780291619970297842358694824115454215983228992608961194795331123356540228563217861071884131712257109255143173120500225091504658003210686255882536879322091277997205155361432027106486768534158585330489483391373807365521438409345866988133949220541308221775705363579649695667231836204934294293219422141246935832342884126874787071635060910075048615063410465856786822975871798753250159477740069004642243813868282204426187755053928178988580295608681659487240504102892104273810406760299511178690683573239610490063988397294179876356575843034996669298718149471295660128572917605522471952750688120570427633637051745986919557580078945477606961945609119208908940939343334493240116830438970995956186699267839567473912752700190214150044246871214412690726333582618152474175821643734755573533749823075938618872506194983157147693493152336621874779365916692168322849237392448565369936680115520376358860033214240597801955304546825821837006703041173652557135182683340483372613405781204824434701959598286808442586270128282527559786747818579583031642758092329031426035146856975289072160916911358265822204319073283701155271458602481525062131225026189937156222786954762062120874523435808903118503582044378265806457070549538564491268642252614438373727407521020016940833989065471086800654944864224026877730736841834067860998687852129285113621030500133415404491695810048294484193659101133738331912929805402186061537186556446931840444825742221807725428701697513697761095554490278528498357366481084321061826699291272298613829603129599596435249471671088563784834525636676498777367833179404280303753950266151574092372832244842472337618688014340895281714614527030558384494899046790782695658033794994606634962072212124204825527010955260090862504433975446586553605403444547139007594875387819943475555947640814199920413555209143134939811043278493111021710209274999754573107858416353697591318028760496183727118211348087932979240705080103388487790055339127997100194675940087797615178444055079295406175143224813543382219447345195278001458765080259420725220118071661409571082597698779142159623596772138441206938993191656092590619310673381104425894159061358310151059827811946107472175167515789544638535222738122055415732625139987045398206798336277278823217414441365480351537600402751353965795122327704398630600821608013305426777563777189265215754428383311357120222721791192113545933496638686662763586050290914179016140366912526212646823408219800651716029373849227395760120923048121601357718371732709396999371482373090620257204162042448895356193000246070062335298818250978525733509878262705197447353398075967566122961026088871847626478851194592994660454738556239580667752468998572272521991454576439465952665779287274357821830280291554409487806906195419338546519316516999659486140579051882394852767611935920609542789094784326000955840592966107661997542404133346906837990280719024093924808977897102148674968908807074446446770319937355928948422459903636081042461430736989424626481864543495655341507389962353797954997378409029265127421663662264098873045188579445893573718386496135871429603721603775852257083273702000628264877900831962775565990868684249531847675310373836343644288955872219765364950315545519491346416514626501380004095618169516076899759976785200602972671593559386482806973548495541018581381518274858444148096111030416028756305610990701491103992000529517110116588479160446749400549167245276783386313772666282494653872716397701012807393903190020401368358948736289137478870719062812496225120027118200592245048782341248503864075182916411003175604958361374761277623314010473346994248529119321631663299032711877518780159009860084592471358928294314358507513817279622792495698870509297287661847961092782055506734180871942749510307833375195567011010153935455577599730748506930926559733749452559710401511884332521025720917254098429127906005559494124602208863366824103149178246974880155510868966925191376827768808597745744315093600215727121955133847888150125223237550229485333415423029589207095563351335094022820262213379292325925877205233677412305664747927504128474450721698335584048774429761321178444506114840872025391864375107024048803345878750374620879487832752957288816697031002540982247724305069415481708523415473752382115378366716243341594427132317682187193569953189376219089826232622450126126252970322535978876362668500185979544842955373465781465579262977523851532005426469662396612507917482763292884903877670744376314339933245843229484510590017306712029370969842141879112192646431988413808739846344655771510760378002710080520176573863438584032928994638300779904926156815420027566381507201519272439102887476518993766140945238798193794103589856241440611360497117214707464869239382159297217414099899555245023724156764754084043221954028356357837307268256031464548601167417789818718315533492077692825295634659975610785232470062367761486517251756432112791246818779260432587426166075621792872629777448360664145318107217317159191989698340662243321086448994290632480554032576398844360382529804291304263390566361733991244580172901397373395897946046377571504951284086405580115950427643282845014761291905476972255015269573002274832427642238328406098278377676880066761442802934874247531925171615319072178575442459090261055307269400046967694045694939873308021394154298507267508470172998389385302541646329280016511556189578857857501863423026350419665962321729093697984052474018969620183961891250895218170640428910624552609745983101786638581901435003626852091113919890511843422678625604287133897237284975662107343509702821461394607957250988778934543582568537777629882836530331954622126078706833463107229007457479973586940793484907462886471867229160379373504595490688297769776247998457557367436750029552615046762976473626343130985817823885649753872269253609994814981024692560141731346511537050138146207422258284124892565597495122231735980924216172531162029520365248581021250710886084993717182729081632609693913547727637580146936479183177277246983556839287284297476771057802285049226347301485449743459905069174273697801488753606998175898433765003213714148483993289811535435601922304664620173615156573903448539030924317456494248951775089913504033569923533285043395509217219429311627587044230215196262299096425377154238376807024505772987933526942344227970540875087870806197430819230655870198958897836336338867981960403849394973676637127035724166935478581989629873200919355892648757255738894593791384352772122313702821450302001544242598679983551830076186177686295318356133251917611493683503233985999004973035943014576271893932689375751690523199457990528589959827690731958048537960887640672640636892521370748908488229905946619991515820824880775857839302636752404529016120581847565405481021757032188700051766703532520775222454102509734598217465376632814690805189037156335451377732987890018688951896493167395317758795572332631482093088841208887340516407163174108238753498853399604079267630389945976513374142282582332078717861313186214379849952753833737837347443368842119678682354111747783515709367790797735693218246465116445005975230681504320201216852792842449678116660439053176390382096675147252785206374622605223208439533042800315971409207296420888864267561059110044771214080350695634907204360957051848883543928960645217236939513503736483273350620339689626986078795276807687803701537292326533158076693221800806561912315804542105934525085144185451963254478217260335672393391179006384882236929731032194573285559854854004237075273073561055927037088509499366972155040715164634908537090040687432520591778162126818673687564123930762189371632678987429763182204862282822638123145404310618203523166670131929597726724400487269544061696945064743878186817281700464565724059741826342816113631420156156963510196558752866047134333992136610066299916848463301963742175155189866358094975039915028624961608458468018689220540760042780559833224082095138869717529724102754687997490797413522407451225032645612612157215567481207661113162846917360653334610613091675741736118199019446798586903674064810238459027023730108880148477242403631533576650784204406449196350862705025238231035378675588473284014994198593285582885019578302358764008097607982529984691987377817756163219045397845866102558829072013036137575089871710296373684058797045379790654218055865993413604948400900745652196895720274734524912776890769478242332989837036652749270166358146832089257193524019014689015712450163264083880085797765451044705803105192714365725222976179002263470622301946273017660804680023079990185098073653960844395336187755305428914234112191063212134560718652387511127097853800331183292811399106692726395886023149060113528805310419226839866071347319865752974887520575132569838420904055378253933804884029965159616194244807657753123587381389466223347976732407110339231487783855999348531155869034566616228535711600400533445236766205862715383150904311355361296346685095794367053242728633399561421076590601762914858131054183250008548435085819578725509134294669606549906047843361918576926143865242846699660379352079586025606747718312956662403454534644516655153399947028477173627851294707535271583523461882135481195377262964281876798992112324534513697601482052979940924671108463474108783522862720128425226475313783490570867176346426253409168516062909356047416923081973601000963254669597319371427608698262448061806224384819203221518793000609695580289792723453402483415912136623875886214987510517935041342723187889171035053632882399323135141572092899359113934663376426881630814167445147652625341213276377565914977885855543366944785645959482059599939670922370358949392296141209499138846405218601903619048460077485337539432088113802327554118348067620892424267292364390832922930236253677886924630950117159472276251252686729184163565395082019375648580864793374369008097672908443873268900367837156505474411499892976308857647207586173597685813631787152280542563533220716919972319512094103793580517619322920504123247466381241074542922597049836006403128447020583961809478052797498559456773017344339192331477815880624674859584172893626728421188758410517605609082368667666421407741155982087529177618382937660548651608447793724448184138571396851171950986514104864149641024481521274690427129136921671953382670630213363403214945170377874746333650703338308379394620639088662367563469680511877762717310180545377070683620844951889127117236389472045284471739066284026036977871533398613898133035386125232385252954524750659868016072837721859174937262215960988183265906294951654015248608114885717330106457901521710034790122597450783133381908476422013690833723426552032751486901487457284562214710157272336299824335441959447782146573027250071452775837465006600675646226609984434216367635048127966534149242341748774325357012893528313699067407578167840439459157983956487435417305002575979298566423566648251063180338251242697566441792961598560927289489578126985645929671519011206369885467271124173492547039611643201145128768498791461989766118025388120751897801295787923213761457409097296274348786455598687581591099778005300534429276760800254697763331273109234007928150353996303243965902529499667670530651329156979836149250367323114814236423180851842245617894212522751188268467146874473811819568462285671670375289362836717544585272676124930167945102868422925214545664531259791262196094827237955466634224627127141592565740750755993435240912116416151961413556329109711716979365073556310544723270974590335787743624414929537526376514507361532686434362855816312477028419855709640318532213542985141583155204921503879081187737618533536307782015427341391407918929265344899760208100666816906799109982386308882620196513779976048874708442927663284235891150516195216554366716379861059706381197911023963991680520481667269567368648113092349100906016958887153740962100162819332124200117841123042219468953575833407615104199012613238458279957559624604453063593152445665941374948082197441731442328636332147712802423485749824225311924845126298379903733252868515832830407798003778679035511187427345280515233356162397959078857748858124381807558298809828110705146389316713101188011711561872681244981694098188228794172654219861163000486401334664410547245917055328882424050836149969335690566619932615681716714528548472543011675200540794174887104432913390993887124752298471648185971539241515839509347846636006048505122570922803706680155406115965171934186733634978296274440829051366955434621875535158726125466119808123937590475116190159246530093399572182860728181887721427183374869984876929505013952783899959137878643284148883776350859403255551752773706240671973836611237109252047777088629917591927171420584443170961734788476003647840314324430363333274069369350463435122233084367735073646441782014092248489245450598713490429536961146353812974860879794434626738777334993992965728907683073650073070140010562434191108587874368611939695170921415601260299935187143277636884912014623210482340147795696633530829355316178102114714497448143626308259365577944013210168982702067308485840222175559618057436804652966681926938618058243228760418842157003996159389056205138582009726550766099267852533120694118883122809419345492239734195479218961361567328880445824936390694595200297317272071382627860715142921804883216475320843788558959478916136479948568148104782530403804534960755869248857369747773921304252528714012426891212235709943418055837211715972133783568394831512748431745847399997777988788954575752433136208842440650810302631582285049518445647520789531099752003604808142828575515784195908342905027998709715300856745818781211275268216644316680126899179190382335361201004907152748174006860330418678550105163099028056357117934177443090021524940037971461570408788691720091469959118767263550634074057983662441595842409697621563005612222663889321193114280896184283782090285762379975022267269019405189114611185333872148742595494517002425810433392423075507515270757586744920257488761824637026121396741114859477014307904368866492430417005485098035466403354259039814712708113008924431987730398156321369048614831686035811757600512069424812622072985377064032185679342756314226702634792744871813995045250850022257932945915629947854574605553111638657006529703295401789313251409419706347462504615848628198951458294278440174652327803354636009408297309101593617584013026763195145910637956495725240314086199664618056063704799392133107657557333245211852756690231210506567184067941388539976771412656697080428253668962478161318345595797513946677720617042362342935080465338096831074503700099858104352467317734397025869531100581299076227033078279481116262568985307168787798555627527410813468560783117508366495090027420056208068267918938417091082718109132357128644977248654208465351308118636934755714359027087892898315451711695532784796293869354785454134643141728978870981110732713224572155634720063787305216541456904708447623207558210912569777303288199917429861608669980607827272600690399480900440203508540329288069428924046376172584795371239039886132157526741066164264981726457072562202194791744333374268454766788210495193104378719632757673738472687479899968036725510135226033336086080423188466206635473206927053822639879295926757969509116516877832431354526440411556553145627847738248372873070308990625493096833000672190531045929785654673248201513831375157421643195234028171434235450987329290807532010223185900707185960437695707930579069701226864847844251593660101985711826390275015882819330625604966461705714393134491766338129724606750495720041837746780370017254134986730349562405114796168895420561019007082860840783600121996563803791258122094317290574935804307179937634645029551476530848692432465594873575965650342605064099793724668259603617434256591080597888644806519592797901640942510003276294560082859186012333606555560514001738987362291564398367157852600023745805182312000209728996015185074840465862578598634748851586134708440805932060393421866277460289837814674977210855768368870959995597304473549855674681600952569117938040077947980035932384907994953287720596581514889126613144083229103447322572605269276365685359625187700072470436415216933786652738686339163571929739148881332712821584776519046527629980773884561846451957466574990493833917556954895676321362229847206012163390527060130943663121401321517251663538614310047305425473598407065712509611643135524554740706689858248615683888927446875378392384671053853656980727120816707785258760704566932909939062223363285829356806022915605275628159552150492441479473705764103742906531236203966965449094301498930077513564331836417122237634279202911811329008128759453664663139687476803558562338134060104941207533611524702024520406087719125506804981878684453254590204438605484644432041060725563182825100421204844119808852056337787545392598740342257797582806495281158079125835894974391070855796038159158069873319565722124775073123380045742211550084361916174151679856452509754542693324743210346549861141176194915562374984255167713663794289535134520762063550209485587069083043371645035521628824669867914508769664173292323573670627648060163117889429443624681219272415617707516701542498762322058003138008017766200046492172320893004312249293905185872653699593906712264125595408033591634004538225996670380857344708889119588343184898119410843702250861522219660284778238071092187678529509717348884227913611521524765341574319497721090290141547222031721681178674533758622721476876042354476213631239197747010077908311652514398380260901462100347638238829855242746097119399831928358032741928871509463253788115520211636024321950712775219303576824566672110108504319885915957996819052467029424113605869537778876164297892584849851230171269995178200688671389525113941328705521302240803797554098338553029008295366942556844485222240194930048415470368098550471939651685034323436897455106837808621784718190085422997834823336993724740945815206367679297527001279761241111000488138683808431122661253885198089792081178817340575888888898817108457721093160633270503579537520425836077951293256464663676766024902103190924620373218547615474662585245653814310058066678835615461196341166936618298019034332547353219506738794569886663219589754951223825832769348167146956521074164768647683354881256495068666581872063327097583329243039623739461297939154837284385129255588497945283547504511373726674365648920134312976413026149676730657757232364340498836065418634996346275995106157749294818815301050269477515261512957789559670372541146886653294730251242443225447814475724279888799210718964769348058518445022111787730155231042293111328781574038862013218893885145674940559660502314205554272953187272254200856269157441453793275620858926197521869138499763480132437456861907827264231665326195065219206930607299735189109956870887499781134657864222010215960903774030169765631144991949831885331653858607767418673534527690123618569499577389632899314641345106834285975715125307805343518181973335134578846790838241160298121826413214154098886404526462903060841594270843878625836772447349676715032000308834382514008503169264644861556338634672727948014911266946092656190520952710218001108112242526249526989366219907348990381939062747061659079911062466007346689433851757210590043493066765575505870579624498015606695808089251344819387482102711754386140004426707762878874823143854122832352934107785975784932945346976397914822432025626234342237215624997058447517033809693908687156674848363235355074854084995949045869893537252625135873167637808251264834476575409610226985191403999809286659445146715692893234367200836471225142926045990718842114396604880903669789965377683218343572145129895689930049300770443982953419228138606571835935264591712645263721349699545729865084039057973518070551918030710882659668952123757067292053836254946986733144837526203323002125491410222590488057504014857298096015283627271003832572148032613130644850216318232903685973944904134643281568312893524368705623606090802682182662690173030100265369533043221008718496514936328282477220419244672565055684058881669604817042374048039704367389028104281350461776798832565567071104630361974340555418074992236452042356568747813310661862994901413253060356244737653491240280489839427183842008664812221212450966204516995878489076725967476622950499621793737624177889805508924429935027304457149587974445582918018627566942459986957466213696991407069135850284550411849376059228854420874904742756191938742926606904490108877951925601287296870329029400960383725246424769319488998164712240223556464455181013623635899576489477829614729783460404418435943213294207246039865887986850609063078559596998391234390212359267929236485054709438899480672592116674952561163193646227216496260815199626539182587321941862003274859316074333274411981391835418933605131904694962305593830414398457683047911538579725308733219483477064023571363789350192813316196282370021566948132659286896524299711014029222258118675752556419107331706494093696228036533037657799766936236594043535212542105608494536399134538114023569963834305532204482635092842843042128629953408462754663919015680696786975323914405369769416336743794275191070878287859834467034909625984390537809882448031546143379050048123255944662532560215161205861876313896941653800598349615146578989848364864692067806367054149658106992259367117505075241633031527824203741871581259117854931823648443048823756972639512040958581392974723475909566635999903768166884577708189353603321917104085128512758529369554014283617504696414749403832331415548598124896226691113310872742713833367052972957467090954489837463262906105629350521031883030405426601693924358095916056390964312516404663421268814199965202374473141197755377247163553300401595070523241882431903912518117383243956764262881215447074143995513338127706514481482426231298558463087476128547172361373743862851546633843710920206579019767609458496481623633561176770247922333176317598440777773076674171122350857243958610274483162714995701107388877723179793962435766234301449207634297461524272770369593290486507911343215495994313335728410954336706411537666188049339975961319391413425042640115062080738666704358509342212908577013642496468526117718228548814525008245134296874473994088175063344495206088091348856486247277795662733499913262528587430698944978573082955795609159443456226881996428939934070321067323808394330491847611543018740971093555332031416171947295744328927466071233985521078718338669062816211502844779505708294476796620897485056775556475843492002396083202086209441774034506470527276176945187133120287582988399639927028091598233441756939407948547900039550276348415748218508453973953253425774701284006467957109879908581268972231595272637874840325846883331009973082690862449622434350239659879779469975545635463352344908932298223997365190097781302417446552370967288054488997639676025688915138458417927318099781379478602589755697172927526348153064555177913502762810996686410063024495877591679013790836374018180838597855450704305531828692155952465363161158991354612683757775868234641350030948649514372494110339889597101208671016717278279935442753507258554480229926180082860078971743308386278215301796369635026760272984940039733556112028338507231454078341658139700345600694325158471014758493232894086897362154224369994609961943485517614820053366068533623974290283867679891629600325641892008094109757024701044940975595894534692361876494223499419074914522965569916490395180302977390189709346334168734724919016118054187847484261534977667482845362302552555825834256093534919844286999660050180864499626440247860014085586939924516762940052345309328034619800182153861632028508731855995622618131420206622161813421409556061544208312265684257332127416909901237245614276441415973471685981088053084661213758445955902913970041692155702960513302919028117568229581723819440866096143763427518822995696243312600539325111012599679484775103972722448268709903754614313111510544828564528776488011719793239427046893183350614717457282958986037215938712854144822023294486164330017915092564072419147328240468943313969555240778072173419030339409597793666515128591640086549364326996398334406361475746808522685861300316077198686629502379202030641569523458419180477041065205288341817363687982169582216735067539273574759790629848698073701768821809437551008371994237895410790518322893184053660785560472547353446631868178928397462636092843059265319990754111662616913821508891099749885635069043300095721927153975718993624473462276400617935600070058814188148920959813560803652065229776339540735312883285764875143988250536149089743604314267143670135587777089411100559553852982708035647077981059066603586769983641255417009954823372828498762591213364869963325780042847866888617618481526677473096312166332699105223180287256412500583755463249657791933695700591610086372438262928209414571817113307935737420977806128817797256737576239012611177295393974875820172893154652545506965104597664835134965984307347950799325926911911293291164376786865690477049658934101468351628444478128886398716977729430639075799662434812696662803531288897822186372326127685678727745541869069251175930442630230025939219415009202215789363827582968091532805050483602920988550005237581977351226648747790735036901078527126069209075455351439188067408082846118778619445263330452859849867894570301771406724987905262936237321287170896038964952065067624574828366656585590778661700399855220089564481015514627970446586183605281842253559432517389618603332771586096676172993796754071869287615235036701120919446919506283572128991093788480164859458209383655638148952649295971558038559155789878508543070742827624069543583016195014070688860177722097699859624988269029344178597260496330317731662122103827970619887586161172094694175673218607895180372795796784463860367452176329673816906065865305156108085761042704723824489941499298158971921102722038225989479783124859803544100051021204487857512041263448473249566356300917905954850672343069262288116295461180013540720363301864413462591831413771265174911177856374003370057288900034491479152092155015754939111671419831166303870820774984020546178270640313616342980654172901136911385396286570817531030019640216588865593760783088326218573092047453808060654968512895939103675982930125609305249639744314897149072488846537707822296408103848083264236871905721026812330077909874980997296991845117114531176812493630602187126780793247546172225174580990819151356698138208327819657013725075005282793365311220547990999731035223671500404058191375570753440120519956700544086014847576523050068368042012819518534987776906099525863098684333593927517610353551225861591911887405749003402920365966271491845537031088325830261911382945271594187664682220428287707964157110906021091080574999829544500374559937082284847337184546582232758624236739949801465508728551032239536438660348930743256735935470258330927278508077278773891038869368968849357343570413716805959630588264094327208985402367993115143056443148526182714798252908886458869345505318268589073752303303207625912704111653763666169917066145569199543009368296743360841015306799616608849462095688193162980638146486709676979656610520619755572665723387126263724876091155348256002604008937569326188737025905181921237065483830399189832198552767143461559014427968144242857466353985753926421825942783366044629524813009168681273175521102002746272456841107159195119068856002507873014544462389703025844100589928957430292009112395881710105153144829618690185276510117497269213676238322745335374616450771068718941402467554618915792561179103879685316400115963226167962052548857962919125907749350041572858148376896377914769609302424729856868164927059631153191261427409374414981037991828190604436078573119813665076239075266765115439152176036098809563305470760422929753237830253448010903254990155844629073515971030815564803806544661434291322261476785982448321400657557228817552191798542638343972799494254200560262441684699967792847887329392362108396515545252900905248176069963836986488464945152438809346283190744169854985996191142734170882091815037215232145531504952229297373007560962336353315983840085136663076471619520328050775549851707814385807385191203716928711790453881366095753881771037318315191770008002685541285341101709551674500053142779864707111148728053141322900743624294127921383276130994938530535820634664453348721415192476154525784928932870448927132346965541942025933478511910808472045776264318954308830894416692761232898775808667360579479084333756111732113736444530069716598969145252361171668766331642411752575141405598179916801759669233700531987422981296113739258756554146434011913372430852907328697030634254128333921035587677859538292952397974536672412373208164028150530685329618897601021306728730439090241462080517325271960446126602218370628943561844130393943467558291815164121670695425464542214683953513973137793753855871913871612385793870731400157808622820929727581243833859423703984190311841532968604406314010415714368426843008761562261349359768955827302013672425233562897814249427258699381474641593869910569151911145291862999431774435453020859028233163702403977012505801133834823075193067247935265218340020603181111145758116349820994511065817444096203777665502658720801989329006384987334545149121235711093242560999604017644358177863260841710538246821082373664920201728128048212277489425833061612564406252757093535601270803078493052920899277034876100281677706981591536297471052221792171638782831369008828143581523422979939690650917267593027896492183655485860544596354772354075914031126282636216584793324216486950557630514857796204215932974625136270909516171245641132234441575255516907945049586745668863763910915852049471851114777980120588001270681740544058228378482810472856706797611378469423247771804821944208317407198532605362834891897661598521683103961792252042332769388497311111029501604107793172705261675763015877057772957243093086529244907068995305070804848009148751176000704034308631958343173942409741793398676381393314438947063650160619980230078598057311034304403033589520356076381766938836632440770565568944340000674623757676740371880461520738322982343705143818609416778702730135694540744943385386094282509050591184259425296926997567543777831265851469131794330929576417072560683288967322424337158729913500525309619571950386439332840113915875822747660987941102843918388282003539717868123542728031634055986211417553011531303866507249984756170290085464634906667689678870628505088485220812829833584826879971454114829736189650059962397430722684769098808962436827781965376075917132085320203924109192463636423683051373489152255819415948907837541903058119249901531960318176744594039326793106331735460868037468245065313726446062318490824848624089935784902093164051029957050641833095629846305533625874476173986464464264863323635681479170282059287161881426559851460815268017733730067064812681278530243519922141154179983922323827087128396350427661524910426819386320436098084270225850149970153551609806583015649367221811822959117976733066323337152082866305885379285014196862465465551811555293423884819429446700597335781075674407591734845151771661014897581710510622811537885998367355169546748787472733086480658670720591703029903468433503272622422345102263181874115980241326984313279923129106533311521887885281419522843677170393492964912061147196428317077204494287852246322735527046638380997083103229106623705765638580089833356278742081096456928753614372700952442885532393332735082112821024232213070820290921779862734609058845018441797175114504784380193079080765759321512494786886956287722504496570398220816925558593616774616041841446798520273029226682047210156848190512061210965274520658787243778840741375750458279995664612129201704109631505583877063655187923398020271072647975590110981565211951515285110276132382585097287572051477833877162125100506306925047237109428090154616715947412988216062772160008398590947275520393205531807254886066411326894728211107490243004667056311472803137155846347825243808866403492466757831211119511525448296392552623827595037879062388354248538307880445201681783856514945716512678196028058391217542129255488835983030175007888947088989066395054479910074746425824666000367403860726066135480651041225723181512730068354557286207920549568660628564764756253881062833528070433634890713847802732728422164486478391632878711665349689846425722096370196943880062396284164251692317150880295115074702842216593313605016487740187691333716563078711598683354629775468583781094487943048613335168549634542707610257992123248116212443241889143639903461845697299535264651215654169017584767176265262962623916368745755726629028677932875135360724123310515780162777660463581896207101157200900039320529356235705122676653264078449936430286351583807794313983894873011531115986842585302798516271083157209409984018472046715415612455848705891074024404325164559721187688824400803014565097100753355401511277104494078713345404011676975521870283920719411579533421116738485896945346724675775357346344700260007167089820143383892301853866791081375652757009976165546039567705670703229654220625158280393341174127221858185542353849136856677218957907320462540216100625027156748795885634185386134942370158327242714222847456474617101664327012086849842302362430633512096484926840864540773312235955418763470065454847831685215914666728322228186298611692867964067119279852719987568287078059445407842870442570652061610126889376343254226907873803490133536591413724339906046499426070679234533443640892824219286878753113366143111695642384080079222683460122596632383926496839997198683306668290229873666760767670048610066397389587419773593211083603553388011882721258011107575663954533562327580881107957193034317311982564206911140604199742473642318218064097347005047479956900475199363976619687639180764452216215062467301878133339502692652680308119030488101939460256354499112073281712392888177616806682077557758095898283731944116001098808073592571571993607637350840951667306863856233935925177990675180660992876255175690243248521386731022017867866830839311746165127958358668143226319865947485169262244723817695444031070048091368831580137020166053126361877562397029969297108816106490932864906762771914610020050603491555785831437787532902628135379807406733103784141445445339042158653568057517105373000916179041616359571320756984172107981926525776763659674374099825480320970731007865965723262409241156880748109481407856752355286264093492881039641466795124346818683866119812957055190935929616730095677204547670708713346901742846306358289146117308234926553359203366657662178275205834627261394008076981458634586427776480729359562674088753975067799190171227723549032613613917550787099034507827421070274967497425957469276041480603779967231054604580524416497370950771894268515414994211328051679699748489026828202731598163771717524810440685568740881590456848829022565698277996915689456056741184213244119821388645350106242354459210095968875569210048964336029278225797577387371201118833354688759067337094849316731085664684013753761297165760488585991551383160802958236320242519989179236694599739526821690816451605361951850446083230968356461676406821178840870135571408490197147058741379727322362760970865944358565893756438327616222412108753753814814625828623278884726211867447670364450084581560670702064569282767885651507736215451702005895070263316522164551325111770550255146324497877866647766111886847256096519717204070715727626106944495993538503812948569733261667606902355004225221421238631358010649305642888548217061256125996223323780356972956852793684240836944391217485071909339893247274004770296752375586892073174157393134466290619045692419739332008948757170782780086123083947748014620719687679293729295397259616200384952934525704766255490085718326571008388455018698769438539795658122741977618182568212235910636240273760873423091202454545754288601329977479114819745961228669281810613482268355198182823725455749117107059046597171397814523331142296836334708675253158779298422476922873954585972516114256953891268968994000475105398612031858254710836967486488833201587900997939051368372637365904301468971843656689172437398980151159318235070677336910920633385458527129098094304271840074101292191353870990638847275567232676430183565842655620550746566714942088947432307308872072700603114192028863072845442422642804914367659880647327941015679099461479407633508207614788647309158187258689640688558347770918998012755131776214698488296261305060352499166053795472858450455000601435410579338173757083938527358139794605889285543069625486704199329681803617817462803992720972671453553194042488268757129728172704387203918449989933516738296510098757755780563182795587468096088978609101721967473214248440696685632409194992608016260659909018309153103926821022957240203087031725356736241755508603126282628943343100935136724877434919229108417507549770874994429024125154937826653453742485337185651594979761201424605949787962839026254931308702397917499014526631256221128895902316923338852633319590602209133376798481722269479357573847904046129141782600093651207054939220229927959391949980573754128868491019442770605024006093760050402446210329568634211257496948372357589628650085022118509165886035104327430565497498647749897775421863954809250731389358383475638315444451585206594353031245487942585477632609032649571255073897357787492800526851191399755592505037498688312216080865803589153476638366431123440397907895796025604559728402780920735940932647741805514687795275397004152250428211809747063055794116345385284606210541213813177942071389732092145978257169233903274055163943705203223072210643916018012042785786189323509745218308372863076703363049985082488095807045662409289182078964581911235077511005413661884080209898710728856378435455583370316813409436412337009315853709869238426402676738083993911287392277409525893051638496245172095685599757080022211325799132921314517772341042903961976339701190929341521784983917585574794927464108657915443268551276382194628416912728651795821822833789320028006383908379732613886277423384067933642856559603045845281276586498131776296994331804237773921152473242752965498528077911221372636080219519333108018953637243423431340523313217463300281072455197356950738969619994749434145070677183912764468378524692680876098920588467004513148683861372086537844458446353127280211508581210882919372111592827970781534685379842539010595776547220412378488229913777974552782539100219620235427367319425665384408422947904979737100347996183339925443826473261008299946973319080299499255303065537080569197852841050664791935424309837129167652897071862817865104090403113883179297158546515418297552628463514774175642854810629419427301599818765240815065925475331972823322397254585126081278290245018869940594958876530046153357197155167777442961484801444015033128696595431344291834124908307685068377195391341720090608004003697104717956144142252400189957800675662904647043981088178761958433301680645815912020908237009742806494631777166917229543172157209921561438158358945180165738732959088450301282793849537386483168761837853684004301524386327591710094927110142495552606216516312497257252231060705186616907946563738410438019419970993579553246570518003811660240335881479722285185195706343564155732458873546619180182457950079873545920593474915450388839349411230102271967522388239225128259630501398098385363622849108503429855302595632842856384801751410487513878077871732487022473285928134881618175756548430258058614188836152202148251882902853256151224833613859601969249069922351173308002825485161104485002614843982136159371017694193012356913610621241973522688968444491248008295322303543169518798156523502362693884437118299166631357585464014909936762845274338736959441124437467196524724018449805303098787293408265980579308595730582090052832993566661336580025937674630032852933009350276632676438422522928053059515541550189612924807275879940789225370844993111634105370862696985081453734512281156535982177445420468049041747833392670650398573479347041322945367070083526341822961051976076466555507527528829968654628574432176266821709174704739436684221944406287281602636686716788463521613323221694941793582509320367322512545147456496531199952106378808061902369157820964829196357003721730312145547511860598353656079412237902186348788117248876168675223857246970929248564909876803667886639577093076426241690930888124135385120375801037112576094794616218699180352583425934235045807810366540981451828236174516349802994938371661195557087583310549403310092361437338357684874601893490645719321310466356653839087718274688084222648605775003064098213827712726587888384176119389636730727152776400832589103193945968700916144997546687551463802327580006813044322298636480211074035792772890537025282742541357083677166797218879949845982984760329609893799024559360655587543279975646798130573826075285860823326869456926874097677651835720775023619088221482960731182146207643473019421111376523153959049094993260399295554284796687134496251778686034125921190337929602253568642902081332501908642581139884609546989271218234114304830734224267055734503837289384253622643281006469801209224403730317776179915481363923020517565999436865591604323387814084609164910157651142654315977315959585992133836730941220100486930377141051742046515557863657521075574456220466014307387042993840801703113383542403009620063131476698854696238544703876283105432453395532934533901192460269118798380925806329843071858135698870306995291666713468772340804292082879184974967283907778628311506754352260836271113139628296848769904591797293922867794822271437314990864120724017062339107404377387937768453660522469191637052184068840343180698948486141317568095112943702524917480627735249997675901165569034842498610592809794893881148542486349692527635180318550929271172837930986290926897840707491809205006391761483099358201349749459464449851231560845282948415748319759315000510261074686292445902463042890526052194606970864654521158210659460151970032759933498697485891842880579745291239666292352067222562050010074638447298738638347868614633692131416716141928463135778044613763056849278798365754515385522713280825178770703052549388076685128989633094361547059342217865900608368870922239576021730700073295595934280370735699935166608330069339424053779823621213407344869777508661537208015789999058830137637854053590016365954171676240282332331314205837927394407158591692917186959414304138994084812105908018660732838238092186369316055206209649461375494068607601751650434855262427602362087006662933122040042329993848786275029476182299090167170582989382680566536751995288266875695358356269416484992038604350025092795352847252727247384637844581088547958395271147820924255162124609509029805673362785715855743843654236749158416579251868128549658037206956350826890109899553417724118896943724586452373884448276297244642968067156489548732174379059361533468595431080793684520279281941950261445186245164040450398216889161820174598402051554729922114589969448808226339696410655841189372607184804087894389916846469291385218040946781050233152010003067020112488887814106677209051726787897267070386958054107934793225229753674149307054814578520001785399361740820791005557309372312924806190805578050668211182584368776530590580173034041281720449951831294645539493732047668206073102672943220880340442763141654846627849245198101418358528157675824408916558352058329368563468240778896690287816609653603238776253691034113628846595672223406256891895342595564330860613881019962838207791748365398059306469414024666817895075134249158474010003474249465122363976191013788793048040013864029804820799168613867009979504713926689266943330676291297189411404070364568334565753441670287124108916902909000200509509801772280781140657621392650756879412154259579518169316652591448203770530853110011603910897844232259462706617798933405219313275525409557005713354725622849960320917350699994811866633704547877772917566761200465314021404634235145080525077402360186667591803929262277429203194776899007827508588055821427820903221713896916474980299400782835335609540767547062166499475459707439720560081438861442788812491085948286552183861972534775064221931130118392137826794299679989063248964253666447443818848885948052490566825981315575444387381371328400161696908326124124752832983563126208553299588237751445298870214711582583005229078800386919898226389778868087973717457791079682968921445780687263320058138206622468735278737513295003876216950339353521807190074312275425212702167088315509021150774224047500860469825151517709882901160135727987478180669117926958804688827298670886498023090685300480844061347419514195345676869187082116940698976920068750722325967234858346574820700150776505776301908362893066396095997593881883384883092840990445918731129993086222538275979003990990402514217614850221954551649429145687220516416873392715502384448254150880762430182044975164137802422903663414021507367603396915352687518668056059638430906431028696332223003977670232464461316528835989820257098692371359440503185961185153852885036857589957042629608472713611463591654470959096326749299203774504813813737292660635474969090778856118302020268895760942829414198533023807359037817110234684082477043488525311717197277334275340398224650442475624904764647367713310750590139692709729334566986886404194312667769169330317314778663274204334591389983108728250394980491562319628191635404599264952054165689363678981733891945132301822689187846024702044768482815042456100120510020051955219009489129507796006717328634868482503669793961091437992264611586993011043616329078244616877598611898512277313246167422533563883040138095313027527362345434191153401917804985365546726654960641664238970885447891119002926584881062687743600259268512215391639565442600767711652907805553835779493245035141971490025735738179621263021654422925180090090545330152399108815713336457677513427835630028128366844130883385425362326520980201998215460871357773011200683636438956832650130778021547655291909731323298301395040260359934312337349959386967062930337041938302294124860731052773795002703463428605640374057347149152587245386474004704913605218348741578306850137827425729337008513568534138292945639058525128784672079585857024177626391898527671242637578584330595072020938658947817561352702060953636828618819118586144713193492142382283678586024142298662688293495287880186267365174055323355975266191049980314835742416883131055715927698169039740925628513944534664946369359666411651790236703861765704001146220722691325223126173601162575316973449861290710437515524230994775830008744922598952262729137602257545017518605717374774224888716135234628721018071631337689281310776905733785066841541200356830443691589973117666531908133495828643151895677706349194820516343304690327828651591975177923152983706884049334614539637085400557535759164071447699964679049282677838383897339468662159267039548642616780925428488895545283943788807072148405841170779680707901417664639284661146874276560664289225340740256565754812441226431223261966887303636827023047669774285314843154226203440789432399811916386542263087136480112476492398877258231741601587082924580291642926804382632835127673485818641745830835432151028034033153565398380439878395523959497303671174201424351837942794651182732017837372971025818433078132756223216679077794143669495837441811279392324663623723750334282739702147326681645701686289011005370171907447502541973912854975496489177193537291239951517914052083593788476064675199462605861178957990515341920134259074155004624091331986893412302080406004363584282173350076036400695516891804975729969582591559343440771494753360283524406490435568176155239619809853222688716978400229141224298575339833964123444248309817584187500396144287208430330324429052310416316500463244782171263490763544674655382110130301632373279772334876509468493167132096385638788319199849344801724982790508616526577551911512619490735504690362572278489925619438983366670136915146935617124501413170284196833191757908303543774520569128580859223708443738620504398372965973356561130532927040600083676114386184950244548518139874353841901843223544110994574232620012350015277675502221077424176888349870027814889121355841530789016508365438628600963732588584662164756639021752519281133459712000300735049166380712496850025267546308936216210911011753107636669545187787678727463411909495871567298988084662325848489033895528322463466404738473317492652430543087378239139244860307218593859346977454592722604567880321846985395032562270582237307025010471214457600050035627234297803427597988724287190161392453764864803253526570404568130886316805753423033802209803032657557926603206831758130780701042974968266827204223182948813465907451746673998764296474383621406353826651443892654583543171680229191843485524953486279639886042280079941279422349956670408688624594833552585885405367315003089250147675766156985551721186579179780282544969239619649895762749761081772472791062079766080234502342125751282557000777693380173613561847294406944765295742800776716761292729105045837345895203915371165707666395120448066456695864590144899906084565461641638827408448786983000222035616395178119741614896427282727560934632235250061846141823827346777541257495088228150658808239534310068332703537430348049995268236608357216700888791177871676192692325662890852165076385203616645682492199520287594963416267614179962578376935609171351131647509367745913392714644731452872064307353355726261284383910552598102929991146943126329128612806351658535058757790386895118437634319860132823219026203349183433837264837158060041373007130668654569494813804751684213888053183659090513607291223354146095611793581342920186577870391048760704891737077738606121359279949082160193762010429364476538501964708820725402779027974253502484675923722640041841073259744865144351773263790381540066261005888486227538647705162344824807663929188632277786703836537029913373372942192303211444398114940121411609404832574810648562552528984736384716951847233657980398778511093885618371506692392955058584961212326432042754711358415032782006373368310687680932052639876304078127950257067888510285436786246938953024693745586280032947876800575517540861746221067502001791445679033628493257580688303494439590138206767467520420836120993501961859341704461993737383169616015779254203007801947430215052414397599412405011474502442679632559195700765268933453460337261973498842266494577584363747365523456580964431416094373227331156258305380562936155117439247651312726521819327071728766979896727002052576088137929688728103921177371268835656239537993335265561225634945587938638042626012244393414856718875510609513627955843754445083188261480745633755178087688147443161108028030694238246330528000788962617064392361063894205659623366482327575379128386670060411762207160714746469960042531774272638304554333740328360286072468638526095015049690513750226299486845171686822234507169641526776869206376154749142946055419843117786340429631745893630051130477623744315564032594399532891901189218499829680933204344279504078601032276038508795339765482613014699294401168135244832678544556480476879100560262766606331395142146402830526032845044886898600802486956724139819991115129709895184704694493637605263217206639940196435672089959527899405157046793197143006857946574805320084178849739924761247911614089565133114315732563288486942639743625013118931087895089454815761114406776991389848521467323542283472642993017122864671208782728697163648151724990360650380264522039169790425798798731856331800756923644490866471950859216973765588656358256527296851068693091085771717116783709483866794389750571110221154986543443633360940423158254974976198392733190600301831085628703220994795913286187749353072826766183682056419607935643738676481401933456793271592413532232409492400297540914637929142830216176928350188025155401711563623540745123364599727264707419061642326579260114921981503953807266472011016520191220486551410882582107184349344719482267475900208321891827889212244470000338975131230134605696007873434747416557969736512843136712265263609965566877522496981593188501292147069007266680824430595378023043949627903271406586102543467867644497438446626629974508529712338874961158327999003908682520837437045398560644011228956508287166465759521804976597856104428895968807495275858436343032701453083320560980612863907984147870550643396062864413153272487054781642164803497994857227580981083954468487321208027485457220165443004744367452093829272125303736653901732957635755806039098527313461934742812847120124257621727813899779002613817558469613403394550080412213721580956216653454614252734915554943781553575861008432743352813974869265967541284861824924773314495660282642590407742254072420071711685877712394432734338897548035749313379573561236929576716728958502702400261646378133014021391290342991945462095132953372587178746518219116335919485368113526286471440114531496500941364700995624684006930508568418293297900913417003409964272040399363092543673023767175712373548492540431774911708646367481737111047781075153393624129038540435469818273753218263058818154840180941464969211584235314498301131544194215962210058521981322132092979951870627187894037544571291626645899887017345193036836152714835147907429454289950482159858649465137959638468776346874865734680537411498753197039651373161984224866064452715578847758113980171179123849606832505147571991382963074242751300639254240272434950350026045037284837732524614611889146948339694791990738575412941003250857549509226839320084262026165054415024642041943833859660950128401474108065403690186156240715389293232492518505859960167950512889613724747633147246844846863005139547274024858800838157203325204571790356653311827458444671699363561381314248419746596697755356382185647883515550173407545375177804468423332691298069326166181537509873845462772058145361015641957483966796902243463387824331611177144548793678601218962886192783352664444622579157618457516800344964790094709983708628314623883321177912820482212536342625469408819273564373662587653888420485137476850147799396140573198734430862435550704673536490803228620894501361596771561787801940680698457863212448947767827574747739109208189609151659171166997144358750447840527857574708539331899120328572460657818437319640019095188988442310240889384390778449890440534810220169990617950907502831860136435392115975825577713683770304202476664339878311629547761522840618163513075588342418321781214799527434697949567705990925414724773887000011570029505623657368856002969309311759707643046399993385784393324264335035799185575824866547271666202296869838148836089843548824086000229426950885713093783834224600211123851622420434952813858238196184740131710769975607296872722685286067900462980525466664354134988888543747384191645659054667806801738113930679889084191631361385823546343808752531951198464103629166500946542231979089476777675676834344638477969772810716548304197043658071185609046652967025557841323756531089787050871249250297878910885545032674491258839405720584676217678824321905436456548036482490561560244290946926457225287441187594640982018252720721171725570963026876964696188343319714021665437839282848928773639767718817577327647919028065628596579353241756150101465978659309090600601551908280741718100275267796641380842257834859757918221104758607834664863004700874896437137709083753780179217852041676440890472419225676936335276928079413583609062495468243580761959512472655738776246286715201733751438388019784524060607466870489879813833228524010316411523272836120417985856093212828355879393041959320019370892698153666561106394632039861980379680710142231829660958361674278584926852717390602868325346946888661757501947078054143255115706999254824189699143007014154942014331709484404971267707435263411036663250849634511596736466056967352706303239243978653549283026227001087069207674399647227514326632494429927723819508921144469435143809797263552638539606779671989149390720026892907209189649904703729255956426652927452951520685431439809831509159024446263999086291353363015249019404796833075464026629758636603956115551390024148561986972691390558678834326177379016231730593698375400015149264563908489711396558679357123944093168043563316034059905950650388361962147796041296313706452511774984335102464117550406554031118504678737824641518522927578223420456188326299435029329044863105236399310522042970370446105082736147116985140580284443630764641499683710937603175925306825542331964037728258328135718190864166423742851131538105165779959466779848718336003144363873402042707780179110858019526222695017186612668546441618874923701633621915805895265875173692510968394066235039254035098749250597039059198812907167403509941026366435833115232805128508161691228023499629243086376018113099091410347572610250403936892581696797291827797141728993026504895727547297249290292011358718496177122154290788774931532735165192919417285762545439156895232171204943074825818810901641055236361030620165541646751962229178525884336619802203004501329508667641804145840877834044422612949844054117613298626211502486703476538257304976843530576027391516083765133355276509108487053168649078527565207571809250410798514382678890309400331075271631281652097110784358486230365840873103761222916860244420779515283933902045552564967676503124647312243036798057083020601580579492705687277588060659544937268116417683533009851255644674095612964575925339448432729528683732728878745371082283294952219562904250581865636809895818756217470259901665362090360641334190772207627977571705789379454136069009820366534243783696033478217318074988820043813336728282676011438937682604319054663061089653280653855337933877617227100502123323108883819513371252211945144529436334783701705719079046046986970519148532188464091392231386104011807390165045132735335281633240518195850874918128321153828020202679262879749801524382512991972636541353459856115968635985727647633705667405505954866450742140005697128054725202336921814746393675070831668286364060883578142525872016687050420482721543363700773339096322145650662093766570925314422054208623197946331607421342456144427092945829209631172857096183439901714809216210850471447861519000851912999452625745189226730639863175468552065356577075223054248397367176711966408707104415206155061922024670427065894419291158549495988445641743533946183337035071239187858489258709857705286976100932191246424279080674581541875618866958668667755660403020658468451644189616556000770957253245538802250308646896800768040399118511021132087509312027658869805651801859326123260734262069026866109597741336459509471675957815723791780886998288466832392791202280851515589776819254693801533796313974729014506753646221626938266286875545970531660469755193641919188335739651423822869911887810986675896337955709578035799723427521660909738518038832403343173187804238624600606919451642622712851036333111101026989766779308929699860506988546996618809870194059272707765277817239807892958648617686579914112484797095450356972001281958859955342895595608985916763739083036670064537640801105053839806325581808814032346721379447258711705607742556841447932903568577047480571575704042005855532854575007275680498185231031229429557891995995822365446275547874341491804898252892639774083174131472140900088175232747204607009080212270378656462765136477820947627701804419148682013079004252085507545085123739971890553902148104027401816010432584274803481210710516371049847566578091192836698090800010494281514141383368042171663126934501291729016072185686335971349182320623874754450803892773850096197589210350174373668696703647851879573801694448441788861529413907822391113976575803116966573897634793526039269294887069226224243056417057772297520546577259077749564149925454943366469964967494217142111581952997293060432425031637002330372852761877851750089775401624092452885709748511743119428193323764308644946502568495750935981931496031064729931264616352522081617258311445205186104435642785894688565194792791118365709224426022063127700011428302987795106473008805866191102092113805047549545393053726589784222023711411361253867980120211650019800521776491502265054515351197701351488966168839255766368015720433473219811120346711793602936192818716975002252184827912230043790165070687331618077079013187254321726380252341728476782513146360829948036102865638422434744236300012545143277341756770000205876316045105353135628706866538180042686194680994840030802857423717172592103778085728467180060199783023287621926831380566308498542353185881630251021787908699859833407028122890937190995838492528865185035026799912563534348029235216170267493268979654955276915301593865840832786704719562870999606229232211526557038028771946190347370114351127362187171372364488724748127723447103448016041304434191955054652931053985446156360256277171191561854128798216675939962730299141547559879372883626336248494238965142400491630617036633571515019181867033149642171301729005857573361488386522326899835419833203137418787315121719459072612277817083450243103275039965413729301289352004975162918217885384589087810447972072495109475068077896750576038379625474914878771043188376674322749492154016820838749759606599968017988743066209017694437440414776841469997986695187042645277909218603008377576915810242474566240048269153481571817012060927002274799650995336919684820462784979888341262651903531102524029440534357667446377633916264084533050096240235906470601612848285591297226286738586223155927019896373925381375299173857643013943807003393268083860853197683981955076261743134163004049818486179630945037340675289585665826411980726195558668514540491890054153498594278829216636014937101183609459583675511823976105376524853749076790196773459408084017678862397335695984616486801307514535233426016148857384913067486445341447694051552159671034140530512479874856721148008902018027220725817800141519868109606642552609184954259505578328805563283726255500019398430365679837050778103298460463245838111402827077323897314364653167648939107867730619084102385137070443141635017842524480154493194827636633824414686586070647079570580569604458035176451510058990507991416710151284177907153425202972787307619955240810116564704026321337354891806751774994414709883000138004603622610783724405647581883810156492315356769168112719353268536328962534505931157606148044719154681490193710506703377414086353022732750123476426245502723768154189033579912838768894857244872693473897261030925942918136168143876812834370916182292491142472618367404866596718151055175657817716046000226937890029957165709632047812619500090637022522896682317282154243013453195931102478062419283525542910813468228494284309219008282723066748954877779777664375851315403692108489971185762998266857813923884765449028186881028143725133403878926305507290377674109411509358925059705975778499647626796323152222054978719087285745994019022050001145020317772819112261077333567830666640682885270319905322745864880598761802723185246829590223356713124301024669238358605065737814329599802946368519244267369317494419587136796423509716548226840557806066100155338075153270798355242662045317884227897967134137528774611452223508794009310881332291992653533795323789892957987023895984224604055652927846252462396436535010611956674850784070039947197266396420571767327040015820524792642526758501125422736856191223255739088931132022963994391192782905671102914703073616546981619790012970039190705428893690397552794927308586419409391401047500124616592541328175452980141650042969696164512175813273969448507410420651030973224862667186694147994360449300132053465966831160062087815093844656704778708157429345257883184144361547801104857774844158623519196248092992630103090593817558637014578402825049305840799672831411027557527394741829063798584145324805630667127720131778426760741339057289489362978399133392883338449864548067614967141549002070211434426863040668548929563231759844632632281024026705656978518909228428048165395000206347195949598258965277090902374356757345150901222025252643176406662339501378835926013386376786876437149736851098522701905377139021373664616990740797667688004632579099611738640075973196444679677523074790633460729336789343029772831228873454453534354007810092892860704100733920100797213542897938416558694822116522826107649752220221070698487097995731943958354894531340766088421373805149775969323670108375376595503269658046969012495874978566117457831004819795912528924888526871209955501766560407814598415085975312257770017072300003635956897375609278754174730186625848124516680932810675656564702639351913982644116670938268075723053603538378717393090375292420601999990090068418826598624068816611608911062997386993938802988348772762573745437535467365150468123781178907310954277081945010398516845759833394139789941883065641539355755904247895711094364884655805338529392726339942700586635675299389681774749877442411635825482689562798636641608882369784455976790619672591569895612255068962573700222677004335330349849833814717067257719271656043070982059490774117311724520030135390273263271801945168470332387204408761703018585576358333099160400939495586267784237330547941040473344709730481365596630529829693878719671639459070480528530525495901845715239094987914350224629716432840471274789073604730074194940734090404448189322032957573288164904229455325669766209295424845497071862997347361757532930399162350803821810214151056547013635493581040211614273564957629007160074689953241618285482841063135839253873862880137649100926021778690312864821652091593756172146558891217129483873322154785377390960129564108135086606437040616646404316474786732662926897399233241731158236038241134627955288383059387949778043421659317777474407468022759924966968535457747027361370310398079557272578849481298858510048681171458777068098411148048635257792193059383414472050498373857041371971443886284210261530487410744060746860799784227115714576350283474220223739123628937858294054844579489328625724107989866328423886589496317745204909075636409243587147677087762241962653069180597720142550939459370872082183064980906653793921043518232574556543679081920756500953135499232766635466656755495096553411343241265734640194622043349896661047583736574442716111382638150286036495446607282726743026351215372421362526919054391449225026812419852878246359499446771184246695825187997854214190106895762245255585384158973471830045626647335429079263641422783623745823933240611783186654863830382678267327630566604198529300690917726545240423442791762799831027434718650258968426212562281643080377420465676907498415412013225739610806006475310470484312988333606305684073308244771848584842843714693188724545663022969732982550795783339481792086250568241919720118531855566362179655026705740986150850816275657925647912425431400923412150504185509025470611140663052364946780919496081606576492033356561111258601497946325170926606939289399144708993008087397398869881554217645111574460555288553233207675505874061803590931135492483646154421292145929166698240907816426099702021210930359238056835909352766351044396127395238019904332640706312203293267355394311766359473932418186305266932284342370097530768122659791498833843924273115356096934297280181773707775563530252292113029146141878023529877234499837851980221507578356010532761678362478162471349052253847105786218822400172020779408406877440445814282833175387530789951288047917114872760833666310326872577992598227128180140491981342853776039124799746763815998280534813006723821058058387473811914417555023882160214808093290822431241302166131497246244991389821932493496313723114794112023328477064808257624040801503461743961808809911932797523197882021528272841893282701037090400776806661618634879248947400270136259290164188795206916501878609642142239932362771013812471769941511016888139436082154426669679834988807975626807386914312370459990966477212873290148871686616648327554938491529214698508313210593522018160054011711953535076650893407560109221099343700228125809124984639896688030015523288505710194603093049075498008052996734329987582266997772168470814091801540512497218393214266497652251301563235543221978261511703178488591495457781518704302012921376813375242729068215257871920703623506738075730392507795359402373672619944868439376374986028834755114858436817608970510765025898805613376362570044198932977917068211359026313133928667088450657777798669587150937065880547903545272483849940581852626370494783133863483780961875379042368373946570352243858061368579566109397059362667479471003860581998748197354305663896506517946490290221435710958037224173287056083457582639201504097809429044714803118695021283099904327387994557165956468935426551566119092854635159947645874674573635362105140368972023419878118367991104787885821269986459756993007406337964358749599717320779738370906969488601224927639310386237201115113739933898655464895710738721591030129060402378282540813817614785357682547697778735250107685400169928967930658118661295590585318407836978565586775870590247964692737037284693716614923511334985162164917904776102079923623862713285701050667289436450574048241566560295805442980686544449714537927261058707756552677762955225634771141320537566603083401813005185853758013534455704964076601135686746829920334240366704431972157612148896301079619947748236815137089771025974600320780961038761499843130087873570771961546305525051183388511914686775005919582959666938065310362643994880066013409935985110950879125060680946456922597942734291720084532430923995124368304684122213582538937651730043545062861232416571365333289571638665708684339245871503998142449462860532479519447014799729733522202501284897575187689214589528844814508315647558082313081622652390194378563188644743763922479146112942765076945493784387491720658036050281587256049077884528181276003647815905937741213394983201560429020360025375002498458348214604217319937037159491872007516012053763580062914887689968546546518482426533799533257300840421621219055532756182081188004008129005252454105504096514931902281563298915261430786130879309401431745224478680093459119501195228681327313463153623451839538856048864445500103489347904416706765290996844097905856264491477407642160015786555182688148771454715973623174697469318535035628689101016683909978439179542022678525809234003486605924460427997511166303196075317472180401515435112678460840212644826894152874199706404176525534433169700271724546846046633153781634103984620522689265536800307431416070320849650097401166691526780851804521262005576147143147733090316876498355804784057121155207530383151422699344011856897914435131150947117542236181921804929759086518164581583825811413674288991373780147615481728028546742790524837808470370013496854431238365684201930594053940695133185593540719522549492199689893493038707484598648639950033740604284854080817827074322869906722913647279339570085969679810487467336223697793420136232182417311354814826360324334119002550643136800487208097640200817155877083675326915402572679156801126070967461324288862154089847126516826244239784019509695294695494324476014516072107368063606325074728657007151299051625215799787366398584070755634707782834925133393608471553223795257498047886205765550446877869831443431082086234352271063254361660093206963160151338840315911661525231315107466274733149501801015798380601365009612849498632763818331239490652460656214558790654860750357885352789235265211423289740280756983322472867403966358916096860047286822774057983770877602714685724521415688549150411070604348569605361604526065379058864049370503918786918611131023295837978907041081700653571030973446026977940838068682064859236484559126873655493357383087342681591717694312813970606808175918758018015827586525631872132978715570371827836416841997361847529311233273920585665459007342852420703517768741349455356100727865900405854163870605412035642318627634547207011660065631610959876355376096911880710711620245676412951719183920324826889304061832017613184097749750163041993348216770811658252356905204742783158376055499179336182950759510074669545821011346994152197108622174451828075533618240302831045326299032671146604511370467638004969128042628485949912933898216803411357286231978989276532825427830150860299784693526536649868876401309134236880424917712349950836968194200138087316147479907925917000944832038515194035581023123826465853396035976581076340504564551652416638032866967477213526938934253039972499492117028684169845295407846849438823738731996782370483309069035879992178364259046271352720312669409888291622901662312830721346226358789449946107295282423989615984307227391210208226177688917280420347404123679526920984381462940668107716763371268670397682105339861028770024629663284226257045546894677926670607900567514356357659197379359441043058184786837493445140306839778506469498206114303837320806954340665206359851802375397917444421906798614504618133234322902224393893193596819707400812698379329094076113715290244913530567104244121136344855189798310190852805712479756191872146152971925219136822361502868827276722094786044600332668374875687587965394209823507068057020869688401769543896618283627252055668532989079579099507762151128995269039957236975627699334569248402948849003610173481828543897043788410243295182134629212240598421009192932335205600599987950905162277473495422628321239343002192918048194605182577021702755814535479493880689825774684420921448703784539089660202505703963711465245211937267583272256525539219450143511043899762788850891170805449953469797296733119367800296308168228878988867997826664369904791467556155529503309753275550270157314006781734146086588986377047501498734354336847336887871980519985160501802095641637624935108827831678072879551832262170376646598238670488688435771059727056612918531895623282065099061848038642016515051403387285035063408899244414742921128828849122557110398275029954595961809694221786780778514355653666727965037803083469241871587703302314944867196368673680433994251288256887956189374849030306873033431214695615798337271810108674325879516690989333373073549784367107030450854265205550185946485149894573462681030804005097791584089437418993171167640397994682863116394939323298588467580588565990834545759835003335400294419483050835315441891873593366479484258408689492657541812712837589399591455413683071683449004192850624007014558277406336445444592449982163568346703974739620217337446248692046327295195356957138575982295047681274096981688386399820760153012841744348118293394486872637435936538228826600250634233313365157637697236506989279678393254839585806022757130007572348529168197554265577370923232553666171903977947119861226263856054618387929415060734845650447324752218852050978762532815448396778162951948552834392114478546232318041239825694208949146118580422080209705176461463658237647305655893983680297309276464412080047581331670514481357166046499317114213997913228319677908528421896471837388841251716938305331534890294893901412937847636058818076211201665831177916476775936492559036356764413455664830874642567034227414907695283231739499611019667661134009312278248315438934305315413463185795054029760048037286051561935820628112844222108341148528237995576682159127248652654399249817874312063341240186523762002767699124285974585317398337477801640750743215270719475452231425329746556791124392086134278928544637364257837522851582976855646120416887324379409270857572374429149021342291924643712620913460113535676735965616545378746767074789044949722486040925720925416412505849239034810565639043004157346872541795127079923032406514500570844668066336988341531064152640587534076858137396327571733060995637316042661557658795580166786520446836294562557394454737168849579105801885256283526406495252768724136652188170670984223587709929321408349420233815152073887515608479024270902939363245614933762939463455239188452656510889179317950020155305089505300819826476395161512680505248059979748591346374564219480637844675151969344289306266732046002124323487591006917626022387001493268505590506328394386099355345198427500594737098926624527699009895574283449362279784017932235390156808452779452555990405503097596309419251703698974005116810968071318722124010395807365181250958613627980556886133206990265991981994194369282772138008782628567535822803840436063027472158289262759480638233906846633016657285688319703572966740535805664333862421977543839231833758327712913429537260009381836125093427106923528999409472087607619794882373306123365703444518161394601618028944647117291256671268611329475331657995870601758855115330019342510097175411261918017481217351819127144730157157067524128346622615695797419415709622097092642003478365267308578642041668376346182645763115658729486082392434622978942997319752552159934546858901105563287522107001699358330619642364360407219381370987487287999036156043699808747172468780297855799138189325928734061794494325954819229758164730770312922301928373805927109205632900724775634907249254690546851965578065476247788550636758110793314432230778820418626577404556745512494493271194428134304320130208804610307612482947778701828083398777055140080954047692771667141339767406161400229792184561227878332855135523096271299935379197296886698338666109416213746817588881893602940722378237459878003559800718242321246095308512716425956812668011889783847607804704588325867703214983230688730490176059598434755793023986453256679517281401797565348791143510416194298508648211239424226687662105479371369902994296764059473407291802761057392112904252954684595936489327821921032946748835530117915119782695489177501529024675052516209708738676406958258852031515404883937943439305336321511331321655520394005552785342249143196829419917642944422557443039400945910120395361338467635301161107696886607754724655270905691961083873710737183872107317798468732471885648877802547540600386983918125939656185300355421035789300872527488092436108206130236974616771579919249609541664146442391331688640957047663739588140656068365399733526698314455404904869518136813550272253096449989349460864551210883533572322925544977329838334847233549217503608338489530695894204586273380280824341816928347365897590438715761181912059709815584770177775244624291576142178254641315716335090474311707612483928909334546258554353809747018050227721557552536625124853698940994688760147848819649666751914779968817728530167219430791566863139044479341573062677648156525413817691658606139805196679226623675193510498432263482777123574790988455609748112745628086063356055764217505055979956206974763643075608652306085986835248851197654851725227174529375339167639521742515045959379866978236371773269484332445497718832714766892320661348411862962820336814976466236808349669343966710845063415448336238325178499507288049292116996785672654004244920202376009827884333141088669275087004609163737166282874575438575195108829184639305147306065118203231600362237085503390684000918858443442993304036261794868332903426787391530348614978468152234484749021516354316650706569697631944689959734382710699315752222131033245506840851033223684091103668804033687727224822605367071720598773457318688733497528439399590975217289533014178267587947673654636111788804141827680730773575180059141121065300292805047549028392804936352918321533027915748953371529836051347944794182104171646776430029299454418088753007332702532859713489272655309609239794828816587977851563200141701411363328174884926579857084994961614727993038259453376237718271180163020875882943875273139293520071688329405264008966610507994811984086003285716898850744520784774323689200504304826622862837439889199511798320294304248306377144642987040304105877902036223460154986245880967258312821758034334500505630454557507324483278169570874313994966474739854236854057100348594255831811469045107704166555777502500901309194657247706973070432201979049830622183339095779383103970567816132643972029174341504325103871132807942144537479687952589737358721625536552327863991743359957367803400354449341202794282261355789939533912819668501642232807616496216235682816753569523558845839333400791183847362678085962447726206315808402808210088682507228633880355978411172459255737446535446611330561841334192001684346919796705521393951299018913378839085673928521769835985435332718485029072605479749476216465017677381560133234892605593727292116685407231246457337540194311591549875609494332114956207013839709302187779260833204115022328307266269525457839123215393959989269937572310246854668839055956868372260843080646993346662479110588099388786374065320725125570028926090004426005812000402958494896645443769847603473317970249983330893853642426567522357262761848410551816675705576198087046563603780583825470214456777287756361749694951682035451038585462788527141343074375406550315937305422701928276642889993209491453185562223544674123737744123875678683824566301589369237793364099647723550639945043208504099486789467212797222210065776556706395166660860224421806724430725059781822954794460745802181025819460219622476224939985008146096562039735596414597837240049215943995057595115053596151911614757825331645702367182502358021840761463560139410030544195913916292949178531328676086318105726298217329390593381729583494137202498500410344201387085243960166527742787554552566887717230100731708377908608988133849177183262832247609353789780920859965141460090983567735166329618304655842991347593213191146283239119477611085222657058758421364453169074379464648493815854882419438244600175987856705747724388047011518016340339169404816180548958635943261822151800488865466070111042240519258653568936262828340595153795639159993122491870744233657155913534768029110839737168409485079906440877281153780002325500494050657357772563703117362527024895814922874005820179582346284980465208879171529472033606155011933597625120875251097446541846592020306053453634148464377340883936941870691009303009803987590791497773027493054985295389212832558445798512280491853164974827790177198380070079072945018527743837334804764266093428665554843889153461073469341733558489058154191460064921962919959291594760484332358257087017988612344308629845032278083358006426155107869674408549621716107940450612552136035548017971671938529481926731090214265974790653330767958845114541594520702111904160750206028445279442988591518207631095201362863146629643602359800398521562150720859801552445108834856770515028056156804773742248395686289972915527254779615726850608518777279453153337392837482038263498475365372838558779492522153083867087366742207202426025766871906791606143186125216718148642140759539385955478797543504159191971195226563997574647671788307098685029734185284377851797663623235347582429404760269924508677240694115148132491386740589292653757276132274160590360789871783608760181437867752610844488184798047010861111516223332441757856637224010460800328398114608293926069861845077082473274163809764845052740596715472375366686310774927253423193908325069611139801762427792522437227611113271181842310725975299049200366035492701995095519970047095230830913182740094978551310216050979804170862714221943151308322378720240523255925376864684009300551556115488087331526502848691362447207823534505601875399715443709065499239114343711763564519477247833196799705748711058409530655156201676447342672281271338588251475996880357803929952207355405317909340474546957474513439486735397613642341812569793516107356277037431830375528868865605244260234267082755634324411722914428498106525076032480438710028223773006231188417837068141344648300295545064845733360758370350128545175574311344759595419308510201691739097012106721122573279459229334812338644593476952649052301970084592440797585590701772283275824277933719191645984073488855702705027064755900728191254500901849492951264742240193674878174114670485032458098886287128100887350105237652804552247872768069539719697670231803948702888455485806262338326024970936981266588732012277464566950036591074460789424379162848667360877701725034986439270031872875237437204374633363461097611849569341409342331165459305223811826517050862277802174579411304315570280486639257577448408450761476351984170989045109588574869070142086269290779720745072868629081704736569885025429004526231607945631920672814507435422177273917529337177482612050721892558923317897041303232024819387418664515374270617386501333797066084427152605916099852497742217213803021306160285490046235581522858402100068125668931997441066985300310082846676239272644556609414880739787234029716532603527785830996877617446445295987232116768626847653314923983594956612120131166016464647846578689821202811246398623574978537899018611183794616217492528866846282338519281254373930827462053591317309350507429738129763762159378753176763912345960235270734568404704404720295058451963383166877017880968540472095706583100698105810606816658921671331921512230728946871509462792003295876622554007672253244222805647885135115111395147665081539404604639501127121846354483715863098071903226567112721421101318224330029098295126536309196248787434753625148659195558516178264770466363893101417999903872231335020112033242749328594202079590359269629886580911460652163975460579713540885103263592879928610027815092154436243656801480523284891615904695617325836618288403919584335784133172517901675146178935515086998104460567385353901592082246340392424010356981227557570066171100404713384406554943737830295680013450672629477245585074256827409702961369506801315614569478029313878269165660096757733642021816585963943690299222186972190768865422663015538238104538095450509272649070130707474369932860156298566259997278497358600971779951430160162932000615029242658002923681806955581119145127703114769311512387700921533508685572844038554789097543785756343433733420378704291181636636079324082009107831582215203129288808836240944817823079954424665547575220778707908087073372970722472938047734198837359072323247318748693813864690258180126672731103954023443146507554796176189795679357418144510167988131194874404583246282943012415660789287836912578602249133847859219092641195076789006424279149557494332749312042721386463171687136091670509248387850525681611687118217032650119758631635677456806459148661469764811156032282065486985983035178213015871329529981959133794791800575626077327082819411988766304463827264513741843157054889995962915875124124160546422695082900877241686525877120682036043030953827983142195783780643260441784017255028792399124674319972765000069016245703666298987211305569743472629921470178321568569771777137495527319598683653982748770517471021191119784054124757407988220140941665285470736404030542487453121927074277209271039372891612075937789501240200631968794345967923677612564481000270162435540633942928480907363980045303416636834992354768625268880241437907000682376990720636261733765714384942800518714117418049055075362945543345288071786944297882801209080296722846372334571676335283216429405177546693679206867036725259238732138668729379024936322706590457527040578910683320691901605795694836895578086074055322628956785453979776068758677117708479835197335744923076919478785686222022231805391019297188339059913719308191873260090296421866065699334930578088305869714715781767243349962396007316211503905572598534150162813733295433661249447987865987886513659925940900093178370594732483094792405000515984682544241912188797715956748840577313977000637672004835549033530124790561607610746059161223700454263409138520071858490944643830655499257011000228466737619969868727378634613212605136916975622549067917045694517293353743652799096434208039924208447119702296833251949891830680847330782643573421647081278097795265164132349480421491580810345879875050788362143952800897620681867486938308650509770082319302711611950333143352171885480120401624978259810218927162787040655304569116829130102244728067241364290680311929847610596240605087263480152750717867583890014499371656281061651422550793832475219826139762842989133804497256302209575077121246810598158985912811993754481685592546321868934080510498888228509050060609531443825446651878839974649660341933826503825063065717856621354622942551246377339809330842762744899291962397852356148951343980324170856570855296707926454706817581508777363272459925915836008435030695640323195100135526269577121089071632011549888810683042274392720796543046306357064982599093528636075580109845513749775282695897823718235966411936773976010543364895248418074259492467851070266456480585895193531432054817615184491090011416966436627000016587115718565860725722753630888064660600954347485764645828618350814498051095359859777822006663846455320333638259845332671239696493932546403348949906638690980135434860416756340127139733549967606609854794860854082489882916352206750628171985520588107565713092639455100079646810204187788407107324853825560544104133150438390575470147673248161366587745036425433592055663143794225914202465934472312856714438128902639870117636500068467280725621150997502481866029872452330159582751043321788560005418845048683713905457641503878699175518379454259455876350021364409602929837404851927653466260926420053955644525826975274351336981351207248692490257049288037447058818875426209138864701418979262018076287191567028211798021976044997039157641403338405439595576233860615209361593362658178997454386431225727848552043996251017264533669645869877339488209354497279927326970828412015294595588459362130206442877062337470996015515468691499624116778395862128671401472940056513271169917120820240273042629087618114261359049704195042947844717175016340110927771980247322672318739974867630387053173317366042217576861168352865348336431842353750586050727087899910890079020361107502372699788829113196588242068692090467103591894351108237650634732705001253047750888006726045102667029671253861627185769727515145573030012438510910951473837648245164391035898724581893111997805730984542364939645524234606463236675471712457971350102479835502370797136885521018952048795070669492152083688953469901007501911774850292931341690154724435674759632048715460886210360540615051554873212841979801955775640429545337267396314842451350284167170246016996487430173520273178275715410264575712726881702205991947340221464080302723680407732926082283920057012883202614240727357191234087420977771381486547967426048058695771858570588332937946062859743252574351535696772463677948468448166332414652929661673706331042271991978067887934793970006989486706545023344623705959958259904005636111750299127895044888239413500968863826369338521650683749712944140228401669356959834679162612796135756704113489399471622830980541042280314070054368306176107370227504253404385584180437644370481487874579159791213393203464711904466414724723316973839710476315469222077882967817656176080974483077628979039995474219107973171510025163025422651983567872332746665205576445208767095097764197409338582263358387231662769563350253326641038733431390056911630598925085769930805453355424885438051793355455585834935527697339610981982985954692074482711687381573426348584377961064490814765802859249498856164969527387909900644425611309033804165422116299437863557747284671350014644027853403257192538755080268349575856238752857764178369943931404518119701443565034581129386364633611691946608633126757146723107486988695522482095983952079320144349620122363278834685404617360705376953360206392586001624471884318343070245132977384301585310766934552718596192982462096605117096298316070981940308563757449101911711143099292423205958205137209123511709975853397301459204567350908541336891331931206387911103699518644732215000989179471591730108809265392482196517286731629100828429162006571598137187510758212881179526811574350443994104221026536812182187059778154085985576299579793966568154890055083014191041786810270568981453023974394831740182317247044239892011465261312384941019083536136252608357409502498738847759649900395040002033590163828538453426450393155001365853153849512237595257122633438147109139859316947941658495065531672793593649288134833802925093152504104422030258939260864695085757521844317027935865142512271307489888776625431960564888496478017074902275964877907677707078159762138901194453114300322845719589943577486789181848004515943193673153512742515449658612105674233597090824412115732928706360036951902014811807351015709475154432618048296637593228993141723571594176825036618172132628160591229973824579690964073925041783897781489574543804074291722276440944072965928494234473308526455269286661272234326449239087572545718629760476807556778698233859275199538963500157919912258919064526302493368215728999920210179480798458428192908686506366271760022356085545936020632466246526396335946828516911233778773918050203328291772960232572552273603475466903577533867403175652722566710883660025707658746060657895901752051930230502524029385368242431157387732936618287412407715942026654810008032064129051707367315597484690619028019836744462724677503154864784670187762242846317681659029435489019496437215435606445671029221815517421637526429516900915393106884247809255468766605643862164930680287989124413713248823901846557111671115071675176640940382859484212974265897921799794804612553075520328048298247647621718228662464357079264857106490229832499272669670702139171517669387272517483180426713247485302375423151133984676303404757763134287048600793440225606623819805997812930570837365801192111446097501078225531494425615942097098876578776364589790241499254570480723381460806160064457077531955916216027377880045554869086025196666453569719753780476462077861862775534715048691523043454121168682702266086224507459388284044217221689400245226693158526502480256218403822741855110306434696809719432482100616774495009064254515446321967266487637957896775876176093287381720803781690623755624011699887569706955412446718453771331236909654396103210958575407576954731940164432962532481174433838218666214352026244135267282952475742085546377813367449880291783571876684707818261153527377783446619823022919795064879160504090775221946543699524747115401085117850378791027985903436076676045897072931302447191103333656794023262222510140949466813514497104750943673485721834579044719781126509451517901919842752940422899915480717217820810421345260499120158323417042371853749355066448663207890695431240561125681184488840818759913301168388284527591179904051519400862701104346998737688041564716285706163017560069405882146481902340922832773267317109886794378227551445553979295779369512904310813478712618662844064656400115598211288443951285083046889089952514150164219549726815228349231303308935328981643684914059427260458008945795230731153444985705271240950969884741673085687360438785535873254379457658918203959768659869575623834505554411219716958285712631848572621254361489844483444441894185937726056711486296780672346070954981641526882962126290611245632384866755213834864632351782886879698241799191965872841466366525030962035807316693887538990511928339554313676832556048261040046905562941790118060521278689674173342015565696280331894508509248231466840536744260241218963473745724509026332894436608421866207197327593463140689374030273029144217779127329215994496279614809174543230917996791732988480964218385258917775083868627417660108340774290942741500609859645740524510120319614330977772543027065243346658354024981600395075712689440494666662303231589761142232977211859124998892966102450898136361420173933781857853544946140558515352231623097778083876756911834178979184747482905920634761593847178782577130615713315926863048079121233991071927964749069590311708046125859629913356418185009721489405928393276826002035808797983606258834960054256061448529017517430516199672458978830631687813779409274870674860263919492589342713690707405482298464883187833816130727425758569011708450366592450510836513801981887968810648833793376978124090564807795763755949262019326902972054181093438739591575524390372003871010181948056241341083072470728050075454051476278766341912651051780438179160812990730105536054306135891387211086103745188547587184208575774410145073873686057283007257411459187535073842397548175067807386611931539954374837263341808514314797832245563218319087471022377555962290687748598830809653582560158586599621054250321314650830883669823032821177725000069451505738936824107541299288386992767791463044600264590587217990743073548876014801884164707927524074365040440602316271940791434851228969327300008619256211723959762406218600537015622126343409653034458405551123847637269096379505114216153297732482625948139007325637266527245943586847366082232502145815639580851864367683021301740253901296549334815336543849378825581665710633214559203848058066596939800040013666809124426355077703950781929811533473861998117275658023891792717878059900941423623065565592124546825340407120028058722856782365224131427705485248088978582296123787581351426669714243311783496843010839253993964489975286549200834838938015847849564696295276807183298579677289576329129930358812214100265511247566335448375220129674557864898316105224167007479305430622194009283916914206139756302034338055684869718167766357250009892255106553618506905511971331193433927282058437659996414365617005681017860126576409092618866574385668361999826315601972587403570893882360309500752390463976890046204824261222187706156861261418551123684655426231593027772348262192454764668201649342106223387479527426507693231207818860119982538754025027183647182864726643282371785714552426684449554994978470154905455095051268805777353228980775208969897950739843103000445835547227700319991193113291386718520806267664161363874227186428572258997185475033047644322014203960940182705794880410812571998309424442516354520550342012540979374338710915571677452092959435268923324265120912535151420675578299754152406853272483630425392183613519671574643420510088737189248358980352274735332177072080286042576391692643877557186308872034741783407108627301496306852884193168351787194250099317933157281292208145674420153272591528575324167651654883416877625454695004895680254736497896494666854896448164171550147989329954795453884545420850438979337346799047818045021472283286324458117239637650145160066620847650292650156746232860431059988197199962456805718862804375008923347288416048168460147171801256684753699697203698851183643362149305866526019419472456955198799232303089107502265758560095008695792270407484529613586269415389922955685305719513438842816754514798320203271551881104338889377511841309603185786795814633786422084755702058144557351345626207332382117705011094630441213724436682234578307368816060123397137032460382717855085647113076590445129357420418000771768063563854747265939097763305027386585693771059445446984403180945455278061501332724767600378174697473518514140064406047371614674056627699638988698513431365581796531206315640561641878844354157870005212796768855648375556592820640402766606425986790036633509154617511820366484628794295052052251500095490192014255149138005079504270284125834050887342985384866941301277254066423808416514331995072301991306300568690273449396458979084292451559348235943282650879581995127772316891656486590789852589163464375660072717538319239037846912797182898067548142455920577495956795205299432514459049121988337305624247523888661258658101475197595278205939070105552397147445095770453554325205571926292285620444953325765634467499168372795094744786873300812817146933175642851672147552160618510698204781630891503951881418833305638521457128024703649147855296933005937391431384973825653390577195748323718203278221254216591303649326905190319125931497686403566405719482534753099199298701219193529789507562607660997357882898363151926757297537814295380607660358385352244116815400176957547218994943600141290533404418048637063216469253450452447416200422171057899518758308013871433372253012321782909765617976135092663149730219318656784097407570848595810451135864438563435850277865298201097543965339506095018541456168423071734468261015485358790276365884199125369561930176254082112725854470386490672490088713283483852474233628822181124195234277908015196539843582493679320613040257167189131773042538977802237752280551626506130048295159902299881014807409632374087675939363348293190681111932478376015851924565427641227526613290206403604976383199729940929353932748429059153195629931515266452097885149569103034659686175207046369360663139226857321655193937949500006387611425018655951267132805258490166460666192886312457905687574566089512569868372928080449554455110126894340800182967798682240654819447904568303619018944706439502887813959072270836380479220666112835734636434947691560420347760765035546272101047625989213857381375073294408998916694920519989404801786359011510027675473820107603157124986145545904242869681443813758769095371322155474760384283493546343011012720036527107413700174633014099507362761049264256778899669359664081398134856874368772569008148307808347209342914624921453897649872143041872879519416512736469640457446746840095113392058439245378037303355500986844962042370026280776335735444777783009602631636385850116627209774135895574750560941901151831941739787413644029996977854360087124242005991007299855610725732958552975232921852626425511552651277293943746678122885093035573404967159696480888778504626370555095965832074829473587353698077398689602443098822847608543518778610108205121339872757046266253890461720870776959911570301294647865533141171911680327500994931049937312341665651763992526352148385258390977232342737142007490617547502010838445105769571644221931421431867730389006077728305991350670791955821355753767576711495905568940682222832190856080086018203612654053359474639608229054934050154629776964914322489869494724299936117817415848517957429340421213251292091635060426237338847760754781512909539434327131216350533367987964152688586990081998401887293667436125256596555778890553315940279506819533598953370007302697671151195309071461093643354528426553551565610104469371459954611677686888547850369896778623673583400164903493307567994908142470874826425154522294944545458904546157569508649518001900873069736799258909462337887549932385266652834409087849914674258413862547116404894438171479138205388184921577298101400601280979337351726138723210191598507329384649663955768916054864026643653951645319188591793939744082565304373122449336063770316357663070760981397129169063837226227864335100974161315792835528008641287190097878150366828704736586349170013256369068025353739868410874649378778208086931896566906702737081293961904885166454450710693250032593477523752946864196265473749452282248888834316360627312348181744025914555981413799597481030504052767035369541934736789439524172494453826426265628118599472385700912926061550203906640371866819204363198784430662942753335454040894948160804313251141672145701154046089621521468512227628344757605895133446376115030513142516109888860991873998276943795521016845002158476141376726332510238117896195719640776374900768359824397925786494489862263860411863483854893897493950818229751288290158445088551171113457658904266396673211241265264639618066856982251626472167430417892130977155421668055432541122876138584515720223577341361512553960950234282067707381983474939073581171925008889726546521929393212115289363299864443238363811505919690734187931567774955199924013574538609781160063409431098363717041712797949344152049129430928159232845056851126011462206679709880119698964587798615256542437186855198961007799836148279152246035155736833132574609639808433605188480317445539691723920988455229266175107193253695480921205748783929709310685144353104931275556179030372073211794927378711238004473121688194283962327841578489630377093135038125362623912077909607931536883490719414228432287593534476324542737324530243089620652133438468024873204476526515246473837094911676916175854920448312961919498836178903213733562824193680290755470396930008374617263248204792337652461695903763598906387797172243274320111829048938293798686896499950554717686628779552272843921836588248328798804065013515772763186712030355532894300887032306975969027866636388272416585142799575493357335643991322503856203305785876327661453037612350765652294494617850280718270824718517616193333276683416312517022878877997960789442821255171254080388520040265335399329566809893937028071507399719672511970971843629144151948348686501072322767372404426066153748422014902906888826480705492874150721470489616718433169724752462140099018488027463707376480638714415248000148244228281040003428823142674412141343742557302526314373887056163111516838354961269382247548000483775770577792657390848394181640124080125301212182289727901690756207335332997026379796745345596719554113377616907900271482584283564468031921151586144219438567526252335789583759303698121470290471782639432488448644257051603615385448613214619807478123358179624771929851671823977803596149247475324800483554607228666271806600153906579619555073917326579878645394775732633992988987970685750632226520957972769753867180128292064620727136836780263387742000341659986945030117865423984601713848662002014760291003839271569242687512454408781494309655047310741741864071638251425405777446376714300336288007402630659905662804338170550575357116519675278580131710408743296824995798475646257588800057646213892391727790210895418175528109510588276987418735637654047851551693921092339063242879532461600289780545598969119488330283543937069053374102538916694350479970325748566062989323202149070735858851057363074280607483256165333100075986900826342997117344605159988985906168981778915030513084020523890357735333755557675381901411024195191150284150484452847839500494697375524839738767927020042137105272956438417772460271505247202872832916820935233079318595591455739164730943798562184869357831928386512922344308585376924380689652676458582957343036880458145176577627389547887029410561159112545434439870409100706929617735105444025487966523669383510199005525311220312399384148586415826053009213794362485870819413553636455032706318824081160065061962095815338223228856869905482186734458499334229539396589957401884909127635959093812291972993924408870366630899130009433769732674792310564079146034912787894872563702500617924476739347209861910593687310575757987114557395154809013031028521231619768064795058376854141299431344518479501555164107160412377592559174127115627710567839684962096894180572237192039149906576265798103818657850207612884040990694411030794752786990415257568213267976055648027844101639111876991895908628518242217877766433222972363018233407800320430352054730491800847442088309404952353334359423725219600058411258277578043842523942665580265390164263277675296472160541537190740699304512942967406240921941342374957400284145921815375166061456645791041607257319988723590861786193842367158056213656203318885774677647830865533246367865680310163831338091963847986305001610686212031721445132788224711686946591415100842262975630547740393784312086419248785614194623951246871638538956819653868434357044869049400622638569893618465773490091430992701805968688764861509429330198146931515258295570671164105506836519758969230662869365372671836212866817715764801487621556783338517866640936594973531461455162831738867411517257713720599197310987318916135013658609798363193851729489188509347106995772436567203925488529535910511072314271241625750745661462944333715921805538949706461311166456422061307704228131373186914434933097191852713551564524582888626632974638451367062351289491742181235944892942846934002176202912627635837536639670556809174695226902827027940945452480206619162323640988111517597526997511615884440921828661075425158172938609399887753496617073501560165431297458777899155204285794738006960100195428687276529845419836486850907406264686730506910484063824928666671271148380179230045444576804803276703876764973689927681952495777284792500397218854539384544729455257092221479060988023389203409109397217760434139806855407471807017001788915145989681721394101733466182515170520172506211589633860685722931175819719217909361848051833704362411577550175887505764099647684758615461871517093091236472479840694886042928720961019228233699981706172288332023767641890364785350580367035605193822548660459709317254441864503472957945262938128864075001956380553478217011786674467218728127837981499898494352275165424604832962345823541492751516685646901704729325344040103298384944673475693666089544332468129601413040522112384674836813529844415376392966756193798712255890322304385962043647380018052333964760151554181144296535769900605289863618235688031196786641219177898133243697015752926466690613248718260013912555590136707584761070019786053144267043161714358575129858235341128803340312229210289733680326759318074643941088819185774021263493732094816267949678032369544788132115407103056855627511996184938715002099609243852480557569110149857877902331614711213534440108137716211354076952326836900977713923955730245979939621663970032816865551502171241413815635565331847955047338510704679624245033762861292149236499043404923891649501701337275851954223146972816063889754887580604294807617911979710017609611057536585544763194543852554528082205637380622378218875625195230196293872007944192849055895661129828165640664974193873835213051645568248806659249525319222429610837046274937752258183553872627085467382266011728903791583761077334127461830594943358425334387496099609531694719804285593277678162960284201037208103847556752814868842632947088898387283093571143417861229652683922766160936815237288443385773724375058093592038894687941336296398221014271647502744387649833626813897706668218987030114564783119957696566842014291743035288638804269793190040369642807499381121641597041527026893617148669273816438576138104359106759117897122942215995615927687720092704708490434224205413608311125931838739356782160267309484963114886688135618600433272347389508532119078156669114291782798274182971193302221156868033301665209819302557967002534895078545914090403275561587551700558940758218076430514715218513540923836567999313584305894200248121964829658935929594239469533668971536798514298470157587597922371912003293273455529831325641178112963703064924436201206545724639143053898586411279579890385444500074534219312301091293113403735411667252098094764542065586011303054279537283091171275651867926757597889312131713534923106955815957232316943542261140929303759551785792454674540621232695857285699923571044413328407814675507088983418160848270762443827060211232126864972841099328703905325070206632344749942574674990295425231683491139756141731229194111422672642148827952586510198320741359449427249135977440670588512912013924162924562185479681960016838039665017991074486261096553119777191005489887551166098985663619171315188613127561300245153582617882380472245986587014661803627932129333471055924540423365201868921811985711195421487894947460017890908575428027306687081311623685260267446939806030570217613068440149473222271525704902675409994476612366056216980164344172220148178447809406001465136808988174164599655012184577339640237342540839586049186705871296855012888798799108572273251419604006678845976969184017858778933245141590069035228478366928957287863427469999985894465329185141911736406433951123323747800939021562130982057022686215819246046772275935019287520895168847124003936459298703931394480078319523156206705754336969002154892226302224974179709412753665491110573363127477385957853583954469999357879081475660797520060335666470328383635668875415275294559587097696790346137358940110425610685763397909088044711158813810569975228351949914067422530080546777634642954542105079861741315107096491813166907576712222591397896277351333438024188619382540990722509631342447769691804904896397823502822244932989854948732528721649365946711421640254906480417001205319619424756252997897458400943962120182327135743149765761769167520811366925175262190030540054507548310391667569169676127106735298292343971791529962199693717044930059261891725338982503663896521325150116349884715150108339915815324807660846867337296837389365130277427297432940506345644197377402568584801991062256106347271918933478451749156794496161138298314733672610573621512660586679298064592566990241589069852690951540408831790287907440655892103022888273327888387256459836764852477463453786010376442529709847228330005334574457523845133212794817632003812592994503472140497571123164392605303156751427207020257946261253187744496011087567754025970716506872947091482810805701372488996287836327867975614545455399444275749191444552865956816725735475076426575785819959654292326217939609398693810488390484559816725742302236463046746828729457400395854999975814032249459771678932977703982067591375783591444902322773811528071957189450078403111371720120278649410701619736868235816024508347211631130859016854971364555589204330429426924429117124376400108581292835678966059085139390674750919642943577577542193148478994251569064067516126663710919242184043724826368125906354568574917304194723784097912369324282436540187155411161667374155540623351758503642121543168447860916407900888792088312336404092785967042292734539947151792446056831095083924089386021920600447224977202114168567094772483438920689674286022361603288585150813492564836551793182876537650629966080677238862936166791650362902621646176371189036873766619772856627748175799233279552409157602692619286012936585296540815499379807458433603433651594309817532502986305996774246794757105290585791706793507251505059275008474231314536107899417796241805155611223858927317859072289240559586824204240824775595821773744430683600534291081311492157246894437594311752059493276373738418097454796178551391470597075334621932697024173754962486969216874308402872549681739602801822250426118850977427064006688633382644874130330061386250534099485352687722489707120824707627808968172597766018369819723094924980699598160400857402196746256558027761666371991783132168410627127394232031464440527158720986485075059973695759691024706728970837508799369386846899691885439518331208884666631399518708859413292992587061972569125293688156586996703608372447169367856892323261805563552289165061566171486576311210993291163473683937743295286367333391739191615967249295795771157366568263304078768084988174861385115242557944960410008292587086219899147901674735594790885142796953244962626532808972415713089876937144711242719480747287017129512883179649059568711034293786444129218413289930596600449118420703578516890424039278904457876425307702779017055956193655339381500524817467422796961837412766303368209745231829703307620197524567031839504264232395656972570719400379573121009400929913687389204959954101011391491800156646625963603515658238985197238687670825429424498762131678148995946412787299922601475056050862062727672833617199690099016565785728995437164368113700286296338229972140658646980336490650393529583493689890645615683722252984861665213331679281343186984754012658476071374627552725432482512504427162572197471463288272865963136238069428765352230504001727148780150724325335190513795264540900040817911202863243360918129010184547718274798637319057297433278739238590670504431471747889802156851047299080561404158879069716953340134054252067927746082163912016238128172693279875659684890507406802811689315875646551437080704527284442884909291486363831217302181459692326439108936635963938141119926994598107396137935962173392229285370544716577823735243457814248638300323381462394706627396070124582203658012418786194404872184455411182573244995631335353714426178137541774591055540280502075582288523155629234917892848153347321620564117643718583194933269348936868316380694574052788259408176521515018146897494889029597528989741131598758832647122403157854166849289366747873297617073634202663951073990046580881949584239598294587256375070934586809110986657146054712502827429266599104024598483927105112370010451958113020985701685952914108793117599127648232885257397389477655436312695801222345403492035083949932419474620068941232442120257333541893589298275669097727011873612652905302260008748164732146712132830197992034630470044252595303634121101689653902771894916621918603855722693888379559617358101359910807506480548255219510223758849527299905166828933665178225757798175267872126729200889805896944453631428338737089108602373998272079303341453754082588647947354910433916921400177253227347484324133298607240504750264635200647873999974765288639625752228944670956306790971217708302440934604608852983026523025318302830452574915463799561304483043215937640416095132123025148627096843459981529873514635028393888671323100054182947317539594406674757894994535851009516960003408197810594584267620721338786310663436148466461998619102871581108140813771272465033924408955534827443232851030499322905523801482421505468195537783995515733120824890645024811484048940034984851915209877252036013479246614535988864653238973783644721332247675741938788694251772431588209502177854428324124963874007916962869633537012416040715575965551045086443325404925466595007293040219708537508572397316858206021693114908657299794410074445745297689628652246694363865133979869171661156057196531146133651896086833698079379740422611123044984622441373813518174486841966271019124843732819644117619346268774108519314103102056449200392505595582554803925366667678574900736812035962719717303199476762304509661426025265395032701633553228595045409113425068669848733968514827239263680738005053972752979385039578066608191058550204290134804735402156156554096394700576411995387871047700762835101724758474300783776149385337905499204062636136009272566082515546781205693959177186025574459558110945721576397104006182613366675526084655111451134514598224630495478975472416853490555150103935048307458403864261270045450250622631035573251088309784082329407354584350195048904830715528760091174718982137616718116166785127365499913328044795125393950465020668458777938976212905888812004885660647564527118311926295601013710838680400657191626810602852166583897145938212816697060897866036308058920067554620652104338661299475493710701843629907819300748988597353952998060766813440220675051855717179900637798863433852704797774134901129167725762764441611118858430672017959913353436204828752793207541852611396403186086851776240061316338957206951841166190135980346429941728720176740943640842570713185090636314578237267176462977074846748781911188318671774621546714760630403805939716633211095029241392475459264597324608937413183248105262123583621100404184950946087031838797383527606845826941222495450370669457724627691507281463119024480201036153842714299578690808603797378819048511896855668872939217635908657082130054466593517299777070864013194908197951048715568443159317388751936923356789305136452743576370061215116694403045317112282372200055757761594548343162259227236470653418219570210235092622191901266896284867978761418086397299736277026930427240669756853313340201046175592395099569778733047107085103833788891936019365381558200061894601223902793371104958882342093963893273723920773186811017470908462000765396824003192596959748782234249727267248928824262606649511847356473964425930211658981551207589575939050480270445729565346888418451665577967407214348117008098819019216042389730027997778078458978539245670802540534050956221838572687924930493636427848449243895677246631003420664886337228333615976160664663957831114208788485272632053723925782855625258392624744950713071847907711718591692424528334515604675878330747286711438322579504140823017946896700677313408517509319559776743121253838368564939142677147959163715100242040115789724965885890408028619735260478151191787677267018765645945713910447493828605522542670138913935298267817396058105840139873319411063070507312992486186175985246431683886563149293512705720916554847089157160522007413422765594384257514815297857983470474306407693595310609016394622628664143568533581757711234237037154309727875635142563165284726627211786884813363502608936747303501649882525248656333758975527889821561799229312244615083239051641881357414351487034841380327259910138522966501089492431392599124071156553667534285985281388837086702937600811160258225239259888620861649358354710228915483860203663916303111775799509609454731077311905780441863059379120680993446430040175449153780891419470506444550704700611488050882709437771621718473468552209991257075069191579056677534648136195409112176019615447201611067811779442508100002693695767096960135372036020072359224122478807780007657993726670798429356676516629774828015422992170761813033151793175610319362467901881172705871927805192152875040203122396155414183823684987098862481579706276615974696493379059504221394358495241480385583577631584609381334429265743186379864289119499558879878341383769086270330460976681265343462489172881191758973205774937900901474294969911820188413605219811503665885219914620598872927554466601734809813472814974757966404094546955496829307583677870402397076001872128593758042848658239719968475952266987289983706906396731911033958337518097725712505188924564399459393427886620153790462738019406314390157679584550213772836212238490311133596062451961326671735684779601201303623348964631617571767614465706035613819296732190873010065546114630008567595683254784564245556866834591825893942365922820116712660864124875210566066788026071596724830957261323659156275663662236307647624232363697289390648499931714771514410812721329631879190648782107458248463867175367766343504358563870200730471474186756367141335976460654556626837814859247297931542915445346786923189277434553683601683269763059043105964533614634403463818731655798487593270322487494188004447432921129117384629728310265286549342102098746623713629313288529212615068103380981639439876507241985831138627003423184325484733123376298853711079908775527337081912882695852341850453412689198294455402879865931498687107574582372815350079986645646444106310805265485276711468022429317898249459868333058153663439665688245375685245433965274308325443190762713705987371516010516702651717423812841486089491397139164699564903982207439216686884873224361628357996285929633382024990865716664076917867824340176830513219012102389769768483396439791421904069470863236429963259332849763225636891140361121885182039084380818673234667586778266526831835774115966653362293835613696910449794993709855243765878920955496340324694148588383316340007844790864435841467336760549556315709682321687110203968598696955277296740241229791426399498341034131733884785633176598304260656954816676253569758319973940080204018125328365572168918237518934553358675158748917253905557375789287594539765470215691885205380465267545945411345268767239654706103697275741412176113588212292194499227056373146690467664940972158990491616286997587007983935102742671847280512624049455199582475444520226167614183583012275459005519058467321511941584575673370441876464666411379296457434253881425747726444310295173111085977305661096853955897815450597400960823959056287860069923983022943625136466341853583243057284569602479542927295980903883268628255060914847963516123836076014058340472940906438580097705206960606068236876916183735586006130880309624595832352269016821174128181327707413622524692194987653974119069183492555244819806864454921362159965795115884035793185945318330948626718556756213090342765801297495822453026830166865574836646977658123325031257979726212704422098885953728976358613665565214874090899505564001222689942010764888621360999000172379464192803755215527775242320767494492632677159083289307747055728582226156606120580219569301281107914616793152742153835678835789769522815849708253494523715534857353678349337392039607252465197039315605359503273541878964164616167775083662961076007458008081115939326633747555748060910241672259790465518154991647240674519493010078253156754077801861813197245844541720600444001674732631329406868514982502329848625703226084354980035948149650490276533299027227092095607259262956017693680520510479015150150286121736055543915657351971657141806935924250846117333805349886529808329059444179522477397217988075548224457983652910470546905411506717553995558250851879424445417705074691299445873556409155701078828296107050411560527549997653202351813336142139950266682284429113440839557100787154408377143527696789894164813258701904361210800085136424466913177965771263833576554322851521041572197505264631867454674824069246999923732959478723560338938433418362963997155387059269175697771359927759874279784124402859391607341091093840987948019860436006194977235757754704058852172881508034609090206567828108298913653796208576227345234965314375204535399551126037092176853038382916176269587953188312992609675405966039537776795544760730037526844833550002353463120835611134497393214678836584715024422076589675738082941124171080691477383430395958928817501663936941346598352912895529912655396619777990962379277236752408113953673204020266271648276083012646037039204118309490686542251144599957829766164590820054953459574850452256602202335293923058925238674340550678264142474244065185565690127253621355965341483299269713569179448995030322854881449935704528345702128919220237357801802771104606974823818394713114702035073717710279702853404812727142838029302545976870538787676752992961466084118006387698037637043859616935171867524421438312778536722351960773865668227953171572698457430166843926386643838139687830433223977481785104127394547402692316238795582566147827535367354551114907989177469902559382193904657959075533480723649060394671460296891051628384873858085851511129603615644444148235466086310908890507824316065460002918759936705558632268865370611034647563967959239383906245940680009998903843805548215809063402338629449793732991172525970927503993022067585299949919054071407681870688945168980774031769875717422610520130329063073799771276624177769101544531658095935838035019875793418080374129946134876260508111863651353265155613408386086201342474298467603490063753573359054037743948794009815598008252866468552474534573426459368723473233458293092745052610635984036519653912720155959230268971879176768201700321983225905146989663026872540762370001736112208482310755438722425156805408588003425762271195501404137905647596061152458152860913609782340202578451251445657116339191336363943949608202524392349992070405839140349431131624668386716515362489842319344285772214199467953339787298558743899988843104374192040810345960013346707984966083006978802217224926512880018519739256765160467014937354155631024554575478015206924716184588323228882830338214738391065232459972669601560184354637610547664573829462787184102832367159630968930924672094774340044843434318689308064677346619454792134420212000656260694291056776668587138797380218073712894381733177538786477647177447094108448927326643839681698997272013237138319518907587480168941227367035089516970386744625544284974135775713679680027525220847131236057638199488811537971099692321596299304189474393545704914284776597179490050599716505325359543526318709352597011360661146323886968351362882912838118918158670225715050798346782455483684834707216479318680739882247816489058592472212649492370465750017707082964069282426724966830877864787885983583605647383353403358877153172545293373285366462203820033993203642511070868894414837172728949202688019666649338040615923750053074954581204126095241786930666874774069763617272708838068107745441904644808626560491039086350529425285896507365067895683552447540616562728285318491249411298553309119340513946612435051451031300151021679668218140015563424045866352071478272655481357823800950190838621454438805638562079475995464519822931885319436063703545680706407117975805227159913641001629691308046000355792333933123895430785630779087155949520152443696785304510830363018158405288386077052135646059884938311357703908524713123513822822140572952015718015091778248735481923342777371860592610819444326306611954512197820968608980729397998481334819404417077901657147422227284524234274326296556244270386573980854754373976962001596809831721338365612248218099536164798908704268667509147014274575355819352045177218586029096005011485447225520197303172497060622025314555481258955131363231193477942141733995127266880478187817519152008833022892526192548374379531275184477787235128964124056752074625569336676485088269771091062839809477922988497250691155726178801236759893023056931462493192514641357020902694484369802417551129371356701289208960749876390748394231426738775373389524281029123420023072232407925732907383190509025639511560331813365615333564262057721046105299434325732736750279940805364497925502102484941581260546265360196049028447762809156721280461380001859459415634671223387745919923640158834788721423811791343951804481253529428680241232062366796587844353893378065534842006339903342241761241203164144993730263936624666329954056878474829658138512929336936717420202436033326563152022875464445409363673603963388073208878898929879549316814712250452632865296121838035443767221442308588558241849102893047104075637854908855243206419319162425620009334585316636250343374001211990349077539652913364751809070056481775150818244269920316942338253951278617159786671592782016095763623971817611123477909768378520063455834185134215035666340184459886576973555230391395864730212923940466425016257320112853603397999919780868628414968255391405337501918569233196255765868192520144883783219515079399045202370111513446214770483016400805007049027808142274038069309954438209814697817876949474883802512281416219462981404561566905911514738102119223214058281205627324007646133776668704125892755677480880276966668322358740898534044519474831244440324908325572085601489224991951888362096698125548642431412968354310516906458201764808415097549132200427718006108480148480975230423995366931604497938795888148581408648947238578603537782672974546560044346475894999999656373618490754032395172473110054346470930047894634496609236839224118156817681171226708562111469844244007243019993575465239077773101534575056691660107851428952581451761766884649980600448999521331127738033127879340174476884216122686450550060331482424984047571372532865969105964555837590081051200210900182240214269833361135525518622831044467997611244387530744217241765599378471543435881470057552033786836489004463043404909107197012171123612504699103366921891962374630334626542488192341434723718707031712124611604394297090988181412628853220356547767484881212726415852163606408346833049799170653312693366687292500099982667360734877564256884044056940613226940588336630034560794495759557183413925344109489701747044740949245959064977327313097886846809217459614537411672769205038891966367985321797139828883510761343632374351607232146339885427411729249668948837574257342789239582218784956128654313238612763841044378062898880061402551886136614926678337001909141899047419665786317144954817494712769842277735967516726066307110089062077782227687489768177929876804389499093355793946466477687459481203307877834173574889483235938544891397246416599229102498182063210736663282953631691499109945254115060811095393346321422515579269651276272675532608819389231202706912537991641420835570687587018590011296534265963685938336332963352403876471460187474837808648111797305029227359131650749784856291455304359421926661540441988403709008494128678445622912677053323445133792122490704804772963432263856480359436924179359954654905933014290672131915076822559617509385290059778078405786716365237938483344884689961134567608491524946825336403029771582650043375395357320957507754309959209298744952621209595418204002983234809943846946136308204477541914925117731294577555688385000047121265935500923078338109714070893040397095465935523635580220721899812747633852124541192097604904255229359478518212269806957050016013464754166185229230474610131773125975035137501364731072064772029122278925824324676166077852656064593728042800723309114751445724510707356803275281143102428267445802346499685901586048669684872925150264504547427201735150204939064128111586079020618779436622460682923000481256766295146538478309650479793884292072436192997166637381378988022389118679609805926831329321510433947829494520376907638788281580633476304866100249603404287537366578727847942023034936494095991716201248918032144445959732681037965223432194415238693037927964385396266758230119349051896124700755606840802023349362478452372921631134280666393489482122948557243117138845214190267439888112128417567019007526337576398341802133496475381338090535286775712298939947608535145931561892649321832820500999709124596842630286269123323841408409324680506652623740331365189032239072952488845625961773539830460125012338379857169772439602989760870464116058763403724260911958506100335589483354706645340338002922271890295787603154355753524694591533077437613703218530412698108526693679625211983927538365909885563118987076682550706887201172135501328891738793101112026969119758059037460111507719798179928881025157714798163794535390021874840659141430748823731696551056820393337384111944795996763592619044851604187365792869080575055430061621776614315367251908269016330217595636365774479099213733351640088031673885404088291857997607809606495273982363962453014047368603236190190477514725372218451387301367735460264653613485963413017475237871901123442932789443434280610287132759824620905668113094634285414452809156162809681370329976077879412940235333365398808772063480981962960472111744537529911809263500567614005313619553445727674081846223760081123774511525624031274908522605008387314639497651539430235265158074530151896206237823507515530757860359267480107882464037318439077464886127740538374451758722665838317969543559069090297478910076132008420062714865507602162038195681323081885830265282268873930608566128936706376104699391634687428643709457218312553403348589889311381880795242676230840063459209876255534787370929377382868262214880044346747326483259504768772938202772260571877025418879215733676422848796773924206993371708021443144951056487087326346067528122504191475267022695231023539568581597028007181934689006794180197905719421172467397357815658806244373499577664245785742804100441960403980866218962388911338739486025470933775246863487601869571759772383243183845933767002907065939608553918511088826692784255135058490842075129008884815602098252411222713646030847469412756872395472386542177807988484277218548617840898942030940836899460061860555006564239049015846724435899435295088853719239332018223318556175894811871269554540593857705061256292590835501359657579662588506845153484735569789219784589210138297519391212349357854740286788310704865986230465448678032163697367024325690807966269771601698498287358301337711794040507370807913926830497101135204786162232871373248024445778108582479538108632630452311106030045345832834719174847183987387052777468311889029635777437574339919815117974314217464908208692243539991504390561700868495334989554317611614993102897736074228016925573081163847189239619646861953317708270734390690664419060908385888941430247185234194031061056044675003038186915685951443442506931176367836457637917849442841912074319123837890883468432509097876749718707552385016024962975467687554552859146422416649795867843192637070534702705676461136092685518783420562429993601104691597905246277334610324568773590769096101777894888566253469458224921975483712579732492886142938082000889375912920915383115278548999968406166060789142103095826026749913391253377884820638119918749372947285136932682719693396132695484552940453827967527109064463208501117574215746616081592025975076926124140301931278881098638624080493640773934160812055867863734573477422306247316766602661928971176986844012358119865407424292028494354360295597488472229504424972453125222275179239962399494373109322771620997583489225034107202289793376860952491971913520731983413041238622877692808867747540340615120356344262191051369907747457188107330122498555640845712892692173078741668362943209388090968048620531151016347081554816183608343720019359253880185072394617002467621970202492882784502877708672016390225755617949147255992796322351333010925817463116636692601312733931365306106955809287447466245469277564965633916886351035887472417957452222886436665315710257666022268181832776796738082511025382098509283148378924092559703094595289005282234427706206206404799345564984470835076217617435699623605187743126741042227206325062204639036838543392391099352201865137261491901584497675119898660074789738262745986194897417727849568198784163691799089826078746608585968844692598536194987384934086768770717856850359973383524972592898592481000902848792003249258313897331668743504050667239170711076758322236636157697430440809775301486281079040743947542351054022521025072511103131907829856320400765991240634928347801248782363947573812641131358559091414663833046753188493134828010604342261975618296544289342466779359448577755936962030536721399664068992306078172557232741732833725745684477015757806834413520811996754427274135591354918948067602016484446576314913272395971393515083435526337945185932047395111979377660146283406498788203551156919457305036703791358358321160342669132465273061230770994153515798328130337226882301053339065957043234272703824608086776883156728969190399802639376319837918325242629203286997044078914934948358777732906517381356035700537612169883747840692034438604051033842594807853253726615046738701395788778484355256376695659410908890819137815951441967326659251725372959082538059649384596694285287586909884109695191098509911368465400579897503620619933092090414085515050891470023757212267224482365636563777467288186065407359769103653622635551226019842846120115633433848535966533122470688433081206857513667066160278731008083508226331794705777725872434566422520627907143994214587115594765363406733225451767555707790936081202875426698655239273237383896376231999573995119276415294226421962570108516393705843593121902020476246189003601940809039580679788197760893003234661602635503403062662904776356923225440842944455102045897024444859503447355982543085705750303965570471453924890520444903396225277211255449270079826034049552087968276409628447610757080043672548164566118756553586409029752565081084492775142983627961819406748689585767497240043454389463035168400055835318141743667032913957303287687579283700842094095566753270698273681587688023211569004895596347387071194843944628328494511510802598150259536396642614592086656138696931752497242766263513757241512103244102171243349252887150050575606102836556142894508886546293231103766028042771432597930306402524735953927165816152154618627329338878780322258314226415343354242502493471958543919634879469945879891905304871600216148746236122131395030392781012331895268867208658041599512092602131736115653710524850846866168920062885530336501228247583714237096191903236813138109567627767921675247762604747450619001149931725395688777777832451123028287754447292331236246603397009101436036032363404600529579613522976494294834890847422872174937696178904572132673584226283033698289960250088767555422396563095244366616369388731699803226350593598711711127655801906316262720755697374349318375442786484411232914371926742886836715901860494375877768202094738311272245090437769069708120968858652526884197350369549883695351942029899793227469816058832308278006223295765931258234678047900846943799629815919070099298800898264394062272954117471149847602885667729490378590637075188082850983466248732674522572381109036036924452101594726906331141510679568026869331815546109353078025517260509448586896128252027298152109092630726112350480159130878048412247911716616096093669466991794077097188915405529982483320773859249008621429204041749792583217691985937348976576193811556963622510070848744933904027258406312300653826348518219395735550771407593271726584875621502189200379150013619101068625623976771489355382532194086843667014346764875516906707103238408681604030672022893470996830581994481270063042599599230376208390611527308379893502099936440936860952842008496702808078686275710810134835081449314525152791556383955714911620537649050177284040700407197147068647397084978194196931860520301849776131722023803002557497886483223280135344542255166684786976590002456525321697647540229401351115511688283761776206585377591582284844351605130759437931030025304667945441961478882087599056781816883372254874059824500065512487843442814588283137909169502143175689714569646266600870536287310892781108510203446444579099763466016444559378457687584092969009002053558878624433747973496403485009537990830407830050355286818071022795054886562927492486557386706363927868832923714570209585405945636081327173118121714349384030209186745827433914010269194270786882910037873904794310665513955222755941311332701502671494063031514776287675574149126172921567963917105111675442540428333206575228919481335665331025795343581758425294199254601938032982465004753660018973546564176811695588126300149047836918671415843243999357757737905724382790610154266193576348361492945949087865673065660879170053213226646941142823278326249509202814133479007672613114011881934168537623553517042326256918940217493829774493040388655803797984269305599055511434524777373170143977604753893353862710742500164657628333453690113379378561449835503669695100888457856136475798253254739270776497753151234185544240271445599867855001559917236433149126771594612960943458802319041654945418902657595407970955789789879563332590401118902476906861688509272892756306993053741884718244620054738473938483920815829118950194819820431445877029832269620168332909610984201487566381485450428740113794160269547640654937893512524526274658025638486649116917837899048269831347098216855768378637361253492338968196521111569415434501483189674668233986854650164395111464165018978512523858912537600016069577141103243331001022114102432277913162334018591780570809820390003524703002169635195124242795279019002767596166257313195829052614422692161438481474856985239632488560641019764941115977696508509585907340751894003717905128625601553087265402112328334098154770378603861385049790907018099793159048909340841000129350568572780718256455168765797678535793884378940680165242794942450589112615305837314549456556502186812506927504632692675914688873846643481721214082662914220500127422107766086342869805129331402763478842294504324144596259790676917780302788262815028411149111931284252172947840654175193276598790369775598630978100771887866519590776418302249588556447818579047911288369589329398256504584165293511548945127587217653585355300281838459455333233195532504271343512766565357707922299363813008559948493774265697958138758888629327095292996594191417108036529447368506225157290669855789541523757038667035261476168955550726192660360911069960458546492128624774106458923440056632672069325464180172618576307592258932239260774856770631845255829922506656035221453431170608599657415770323597976189213666866307687111205704552855021889293153891399434041073259599189142772335698844659366994090521075757526921497663661369955869512723924290753551712062668666208961671437962973410137165645336129316759016990079453553976473932342047641586498564694007705095477916931392791723862595124432564523017682464029051453681582944967579217874318255043619440045083934590950834275528269734571545557573247026098809679126753013722284083948415595312637254877411299972854298430651100834500096632225815098219382766025917739059886225944524081740419079670968721000075294303627914811893564631294403773944461347027753467935030855105067905348142837624759625457977022208512714587226133531819033383834737830680192776673076196066569505338403743509655813885382252728469438281403362995515886365325468112061482495886946137293961834340473632382098192848206429937273669104569682754997216930518140925968559506506724247852984591097577332420128789391460141207712907823769775704434365457691780225047259173409993841990193494147808032990216860849714895159719441156774359103008428087083935202265660292166188751120718492444367489664030839252208957216624534279451831618968900412220504310074103581885454750849015572860551436685122404475832660346718977911468664988251474503973875711985326605067110123052244933374138156892150298258033996305684754493831723167432630124741968950560666409573023427858348981036620286135737239192028868647958691447641675149176056643220892451214031066048440835834207984774253254657492927371034573013884229340634591248585862478458692382792448026416949704237445998854647705593256483490976074290931315810722136332024698680893695154112999089977590582518106722029009609108125027060178852263381377777978180474838043194363742991893792921287476902226447712992700500327882155516453109983920874307673857802253237629831358583656447769085929791588720859999379403264357468856796574914981729165143272751636506293660799226068140702408236674959341140040296470883871917913475649967366918656527262910111416791564852763190333081031912990438235403688744494821571051038442297070349886893748154578357875698563926078606388591555732330809565582020205917953842543245167444881491564714186364645170743192960413672348638498534208849981694216883595463766884518955839442570200810273360084628041938648515775175517390104472521547970174591366635864988655674400939497343453080404531681201631542420252538322943146371351100530900195716185885463968405117381629761110265061633629086993729841507875982110032904776131077516843398633180247970513705511620690163271985941234624321743871660171155133639831930301023893314174920807905941471204579974705116811850778999271636388222433929748071044546818093872873600257267699268601102480565634692940848539251829260365869283981087129281844287751256416265148608647289136163521214629534376890110164559326984796401596311811475320768447308262736237253936117493572109411050287682748261568044754271607042173405997821401133572134378677447242137051492772803264509127855708131425992019605524340491918905989499534825386323348581127980088226232668399736110672505369717392860815354678386006563893942169801752831021616878683811964330290249462463898523868938946349353896617229534233618808291381603351385127780818510218491882191224533733809441202210187102250331079968655956635417881287185658060768086605637560585196392127018045062060200358820894783178469025571066194507006077485777148130414203884288332043505691733302263205812810252336311331158334389699093372857550587812021462216894176415743744329220383833600052178291913645788776119648531639232417770543747865389725252411994760659881627551424151198240088332604157458061270721030244689030392773249483780136870372541531875227304796788039262914510798942093427669293848892939408143272270501645365206747731034487901018789377926007691384590947936146185050705209544869448354327031721729907908643968933474368808881912578969895119501938775217601250489355267471485640315257187835916821738755453467074130146490254792582769697451624125008694980897851635902025515082170501835150319688241212586723225653670829449215606716096012609644413176904259695043051338481139541028768420921627555935861805242631637064039887791628028550272655191090441457446939179305107225691644212973263460883408137332928956027468633946559230868644062096581835017666279780884304349517540775961931909771570728732767465440740163532175090311562229559317095030679302465587566213145944631189192656919705814017306310644380548443293739209919319760555543355379268223914041333217502594659373608954140459758250064373448075482797238166937970989879300516055465202078815031631385913654572092107962734850023457931321607300082803905118571224861634028638233432011314798570489387341061405071489636849917545402403466349913339594677355086802178896579298294413867513876155675604005039179393270116890183198908414576236328860554435466366788462830655651422192558939022251218705585681774306551561061496139833854312989402050765382028074721472263927443793065918110703715540295909030030993833445240643703550793258398900815058324424793022564664059609426703051894851945608148685276966182515069605778766711730837117698984071388723751535102180051785263196385266393567731722480147388050895612632939589846751355368052181616976011382617874020516881820954657291358692998203028090769461135654829974612860697627487897949190321935084942436088553225361280526254856509995303010158807343656794341915506877467452433914048515478752106911116578937487193259704642077860716865010808761698411281013403111170346555943844815450464051010463806380379122136399305897461408104276205513968463116020383167771403330600421456207420248687252489907518835298857162128354234466278086358068640394808680689979705324492429099296604526880353060130488137690337671279590724310660324449948581618749145684076043652070976385495204488779499103115552706088303314379855935867698744610632977197488717367509192181757280910087411236164573225353093391591519631466228155301767021255056986189854147896817547529945374153878598645306250701146986281789138677645636652381974869888945694475996160433553478113548400271868244665745693402875591340186530964623931956171177277405165683409838690613853626120483321037520040603358952374750649478537555657500307969283582760760520836427748181386243274259755481098547581708632896086805769102902620565536022114882557449164207120382194504567460058686762246791946619882601232253241576097523386816154372556356326979665901247813335031876741461674639549600006981263486356293708133868538464353842943914437034080016990281821619932404089747912520501288754595874595375332143788235342681007473110801051871406837117119929608175881243988425703921487792358721221819274225889029876421369019692959628697677811143649289722360777797641190089338188645818569067410919179849025547641923334777142890816366982166742047749982576842355569501299020933069655384380306413266064425464666942000949305060095389456088495869084059600793963104026866813641773419798756418047294503055605388411499111509859497929547892817730779979432037093566564886474573213560799356040132884597499918798187517435997566978638512658422231407296226102492914988617465093864997175232453586050214526918972803521204988770611726564547424334865362781279199355952074852954575193805641979445371822252834747436818470906071394553599207507515437949946501520597827554637180942749224126794581163766279697623020992898380691505401790487296780269889984010191917261587305714175274140810491830004214889292584516536257220841049705334588309200218093219716244461393985876148443055269589699167344374027306377818916156257962141245456737849773621085588956929888685834154661950401987903386986628500263678033169365173069859352925379161607461368159929577540646912787826553998336372761307224683969965517224440441832952280218061087858006871351793481873764415685491386744094740915635447956134290374292991284670890519913554101892511023919221196357266376656150740604888916276750152132482975419162791801716974016265656029382716358178579763459458840664304023951674521797474216043594451026749197976694919971735344762744731760889780549000622558595614589896599612588836339179271761258154717618265959300389243144929942336631518211543045942796702136921826838551610662289795899685435405968710396756009896073930702970488979630664072952561669102014147960660926352262956880878295897906475291946727648056512335836097246290789014550409032274773503468836411815726673324097107316122304127934087699004381087130390295350670331853344192512895338612750572623773427130812416923362513597243668458455707639494497395384919826402966742033444722175373450185724692495336310522070389258544405948984562230348160972549746086199964648048732254488320585612564989915963250493468830024776736932086379214908738149294391861770436229479233409842789227335419559574231712805295961283026586378447261239956660664942917378947000665144169398845346411085104945482932884957845879963350746099669601352544861063541634682054664265523527709320266423074206751231086456533003341088392264047337366218583120253797076678240284859823268274531531296912493644828924455350349212419760677401055844496530095809631737885021265430156442686784538530101862942179051657750739262988357106900038745613959597236248031927498813339036026721566287198648036746297244522081948038826542095837251306557129434295449252569751445667062472152821056804404377578383367141350241483809476408941845429956789366677203842903697295090867794728891226627433299249729197801024142555802155258208540916279546782167682676198392206996260350388245572492999502056377397125106827027043509709839891442285090468838398915181989759442775853251865193462055208133167682700019456808554841845851221740199618852901009384929302101944168350189756250544648930383219015963679086496892452110651007343011018700589865216677968426622199287460259829429565805706069004076289180911010047150813877794819795180647349203706376681063775723565920870666465178993985373220753280829840084920401926813782152002179469983972456994182762691410380288869797805110897146714036730707943719945166613097401709318508702130164590506156426136594147745002693711033431501048414714929101424687854961777204569957423606198775489546473145284969213468138667476212370126547522421588383538407848662432036229207727786978115112271532026510784008972725324706722986680008689022422373526422045138885176360349790399684483992749946299013412623289218166494608930150848511787434762591238896113356256514137621260872859541666309505655712478529611583214509865555654210053660400105594725306957063085955798835375251110863080101330835791120284481795507795850623065734728296574465378044270033664236447898738969565173026247913260767601012830047768714675329418216896971211028715823358865665193745777531185776929066007363951830254466830368036754543815030402517962813764396950845612141231314129522004604595365632330500409925868582470633435613294226203685468026662411302764855575505564370170427644061549477900606428609266995060574247097507987048457461926428267798827062843536676965528915244071277653511562215993858851110423519131131405176805822974565543916251492729024268681664705875178736054107120805392861683310986459453490366977082073161956006112954694830070937739948528043654317058051502269334754884160380819597823300469534361670506781104537915249568135285249141764849157451163027508307956095313398425444685378933738123068428584848227355588163384585674990229491073721254444777284318389438462932755731663443584874527861837881187078413481908048530243884289287824122371774652029727480071415508371923412794267894331019725057837682916438410713987706307732253461585300816560550039565092595095592755236160672202526879661916253926039557223345799914406536625289033527386916829077091566814624461093291599082915272026989186883932249575173797980030132080938284468924406347763521631106101404003879553319845720938689130909868102234538739388215319844174699519558916172338869527716487925237481995036474804345867221496198363967789493937634714026166279662887857867478451208756333440937370846643976453141712192249463633224341699033843362917084141361297033777028428948312976453208611088255745783011480446924929862052345901544224660109724490533046284759603077536168146260550737790145207083472158086785574908112331562755074328295990737265512571401745335801733252660741886093988090126092290579304039572484327768330645242828282390554907578181406013046238100956246629033626616565908912551551926945871439019198759217701099642547519368923995040306341232924596935284959574499611367970856498265678479636826903134916629268124203780696195498472018577817607923578301931409502966422239332341602287056077740980864156082322791529491137019397391163287338203210457459447120097426563703760570638788439297441522272620625127555941518749207952855895628608941821361697047110207362921316896921295932824080404280220632547742299393084651596174849931372379937341328475952832811979381918057396484278219752762679847801750680362945567146838830231476424919406160351693350271209160207515666242652561960863895827865472460180016440539342894709496805816027951191924913209020294166333912909954217530499982664553423457136788499907542980817895095288406970716834970727196336824987833888266744042596782260545459412786678131685097556049754621955999743428072658932873831494581768457663378186346019077036879555735098615801509832183332924375827988691396108165036717022710410907942685847784084082188159607629222258683130479332756519199547455044044336984040883628725935584766575842484031477838852287530738734053006585526944236710497171675749805470819223602126489291691821314587816793848753896053235168916570736879702816230788584087761655458985354402058225321537250017857463772994674008376397769333770868480495784206556741139690925988304882753507782823748008097896350166829841712629975214352877336704272406811262053859283427608831455200670463675445720950944925011937685594637870970400699012717371835770831091389188049018818450857113618984473535864894291922301967752509495316407975990602543055286576496923182182548831160191819682418238876255167535777726191128764953518126394628462149192371622586262451711219331260112937862036759248016352768671744559654323119638018210705965303660986182046411159321624315262583484370685877294500114939536298791186098022118000973859437247459935381539263481130344016708350640320870903635892378545216473737176489268589354335927762633367368275367874430479492137875019137085972532291132071157008189555874250138483393679019003482974550118092127423144635399845033631491000249013269812702580832651042689619222435264076783833541742543434745514304749167899729560015319207452945121283221485860264801067688596820835651950140098077164877540895589542839407456849640118486375693593709376101599886448395043856951294134933323789420507557787134813431952087667176777016377186424144426244559463671289767866097564108971734122247720589277143716534786832327254739789326128301908173458005887378347116874492668375213457343640947262637308613065637408971269025271322718758900293703705221272222313540491420950088576619404026379907221279990434154323026407438517872797245969725447908482086890835874307728552480299647855837558489353008011396933031471792563706960048289320800090167437386241762305543735101589280711206031300347086064155185522042033887828074801187916458554773045649035627802898810058954883702371110054220568894870264017864044372474768770699419981475962337581311785930327983152493553359632810824244465584914207554763404657396072959857242310170828446695493668834351973139209488406684482315081252463387361249067981371488712787848055392118521327527208481533959348013267032587889324954285037230223021284524805571633152947956458253496056825749139279339064032313603803240953326998607757339356614173874779170776985977944073880073860211851666075470728375482400661286223772691888844937146515763562806669302162027777931173480603268908219832233900828449681782821823003267133749543925632075798178109229902077076326224822217298895035934440024706016735353003471131790965353095858021538707363133358939871916745406765328222123900156403781804104340506766861984419187560767443353065930661515404761981660461770984049032574063307970684209697944531183484015781709316310625346126575853604102016000782290039294904759922952138322612954021760197779913251926701304683550208116665782057927450153705878551526620131402918184185692365907097519648958291309039614848844037704383010912162877157010565747146002910036818446674387591712011314336970961320943220190641517217192348337677799486792950794736415547203722799489643561794068315477277076595912043344406636462472062504867800316698717085266425339852382919836897645125342857876934120458715540818770806312682579911501175964676732464623893445523398165928877344901834341362569878169053450955253989456965827891311967891681197670295559493466188696740594961108105499359075138675608793269386509273887369883324222590205695114800534255449365338512175739222978623395885123573544602975540984221469018357696353127021680283301336603622027574113763308806715433803788438781926326896145209451502818129524825467392687635300518729939508987984925967678286389578979007433900043967533611611069886281947087630131590031749031371506086153852668898419844544062076692176649680433975095867436192489248612080376510048797928881489905508081489703660824984081850187116040704223629853757576090496303305672869347581579985970900149646726349783811667560194960593522458977422813534047312029481401809609666339656508153716819193114109590461452521851553852351007415618195811485100630930456940403864046231547410433309358362002687526379928784284618999403629486517228943752369527753104284985621081173799193129789049390129026595737143583660881523038454194239693476459669593416624716176522437954122329551069986090815708111632942854413003618455511053735638148913260714525288118888693196633676760349698180881638897149102483948652261066168126638397686136566617472420349701450593018602080745710643335578120758371662014901577672072772201357661283000218693921623214142852785045460024679884524796068404743760097802763220198713022411334386874977806014909030302261445715573449574925636233202668509228844151421530170340850113978415493655407529931322263337109031900781862429450910119060948535328655702973091677914032992577684708805715625135598226134843414701220516126551719027013917111584857989626199898156712844803604237882700079447318490342586377175704518418043422955365961306411025990184994045110358273098886706008182764665977692788392343233367177309867501855914527602131625988919026049012878529865758652332592923031847097401779830565611890438179135721998169852084296700951947678346003088763275799023022801013236309798710667279528626175621440946789170160680564689731464077671038284150920762722908327673705197121772280014039793339311872303939167018634274485105670310383644384843963588776546060549082036347441419979106505570253342258077359010729831810490683010357305357936264750235278832750742802235691120567953102645555655371464864338423571346130558099156619265846451764141180193898764055053686563176504019919019633303380251847199971107222580021779021027989292500643902815225333936850980320748767252087779607630953958447678478676470608952867916250445688434771143826626317849053189333551235688031965730552165108748612527440493532018799467221015568380545719950563134368754765190175226902409988933696278392264775479358081510963130325241740757595207827747985441687417643375857251809223560887172555929213665555078777082846082319409451495124462009689152867843813800684581863836380489030631026392092267226120488807029997363871476536911147658385712159095902443612538029620802295226386991812670391313880641758304034496394849438280426036545586499953396541154870284744576045329903272684405631432840593751904489461863651299985305843887891647071496895559844681470861297759817820302095150604458525330802114296883363797287275206359164659527447508166268491435235637110665560592291085239786034232842831679020087660493638373119633108379403923719539580025510102049261504156939887584218489043585521246599331557972985163559063719615431262492438574630242655350382775113682161218575638144139319304611198230238437071665165009286606748837313099736079229284251424893409080590881916398784176268844184935715335291135052145801036422216750413888123428919250049077061810696363308093145770010920207417245357136298413836931102731676912349399467836655876781046848111493733481600475807517955890533173399639501826120052075405759065879256698020936459629611854764082721759444710476037974486879897347948614270434347356146743524172500906978236300311471326566611310434866584360717587676384944308391505801639525351528099100136524511965072388110780993897229354842064803125389747205179065564527942905639843021720554401090935029023457414756953500020198117899371798109731257776499714171953709415372900705724938351110881507135989241319652819046400818776084853928826973441342226438703810186184930767345677591818692209291120958952900048890091140593537301340561177577565646674647692513958368396052291727619346707436258589433700711070837394692229243239900393810445486952164658152250332343680581059605301890365145374093909704449968033501283967624922669292737700113005216452583209160538471407358075343624362772379920966625761460689145006709954297088800588475719560294360171720791489342472208392149152209521188229093948572582461437533085344659849113179152166706562021455225050745059275060022565725310366200114081389689156106644763303960473599698223536635798129735284070050681313662477020204736639814733671181473696662394204376076605786858729324729755079163946096504185851809199069637484947046846565334397018260363502621209317746684814786360330115736618857161702940286557272109067375685986226841410913517065508781045370768907778110011322874616549909257165562747277838225232174326196603256600737317467490721234167189963131709209949731591549285176874890042260120658796827472202599909947014612986528773838504285057130779307572752081733171761660204156978196566052327100046930193558277572922146906856640797301558301446432606111364557026843160864415540972763054264203543557163668004559325877104791271408989306740852752642481082004814798853058920990236064702641732162217471475708451975606051235992103701192567196043526401034512962986404972422838240272962327882305544551998925172817391320709029871153970889811462889204670360237792709603010933529086764291613997611913996473335976610124603751588795415881479559695769117960131896232788702635646260224930240473049070912775208423829731129529061005442498861945187014044413726436670739655328957195841559117572570501953370118105887254036213103132318270554315498106184336151075088343728537663465474354608969006360931319198715472668464291472989070661754387272653670336089848391112257176554706677141874327534263111173742668629875278390497481927201492176710985400306999640651174700993661590824658332768401416613024506806593443496410989952610523705032404591504923577334107174458860530728255363509771933146397417655308696581902124388948065345095701588370304787037864056160144299430450370936003396324183547245954437249528830727772045104112253957769031624143512600259065256719408628198464282291162326155395124198014188935548627021732313915929090945709804258155830704317998454047391020548291069262291921209471877805950172792446937520809023713999528623192021908614100599517301243606943678857566241169581013815156155979560289346262183882234693444144612112608906184328303401231867517757459510824044421803844599230121153472167325225001652012863037700187437831423796919976783174039197379147620583399192198701695555847483295917206246725575107311628013557829099931835503735930705009490544681139247854731606178592021179901933729174709032398809314439855453787367439405237341037029721108175484249623993358784458170799299022909261647951669193299595241047381042958335695535919931873383979234495732355042661968094282985443728465013646723533087115759704513292315326561759247540332094998959132485251367303207003789678447019450406012068153260664909354469674986979683666339543813922733207559176275303587606015105366384424559886525729181883231728855587288061343234068710754397057373855441107907254469968095309920276053410545742225715176224899603149698101776990178360630093867450144491882963289853723945195575743988115135131695489175896711811644018722242246031991922107994902840207743369204342356807907840150913534023019733616774517871907758388252939111867755054374222920389048370170461009990244455659777985632829634904027413367158725055140541532378642944388820716454007203510116824508507578449484318171809448999477499670364016398712776415632605722503042625831151514104685619079027758412142008257877351862829925172431543806755934476984050889196469383022935312721402214584426029473051482664024286593177056732883583156247900163890105900773232624402036605117883301045688226480648729127063237407231697343843721982612382470219446763465970661209569867817073009894806016640880976692153631422308686508824988335128803298550035599822934281942935491138513752546220698089944629268430378231563470668335198123135141424281062449007010654854747555230954112619446134105672238877540163698885492316580263128467122113406346288870275498307556786604189852442996071979429172600070589115154920912707266865509390222681537647194971473895428443204001211144792588184141747847104009060053154126303485623658825557384924229256200413216186924930809410652509255579773030691920091633770736719683740494074853752775994428798180508507286416191007629992572021727453298619485626950686649799811929997035956900864981961086530750840920457814634975395037406135769785892395299814621134319345123251078216167894546885260310323750705477908993357922869003147802897077630806112879321398859243205438489574635411753973816453252594706356620123356069796258345000405455511855797715225639062855648152138340835420243288358657362032373610600486212557155567566251912949948053750244878053312731429351040176558022145779526107121252948031371512912055755332670860081157697023887491749414482606715133657887988869283018798851667629369384256494140024090154241031539186695044395506913649009998841217096685281003230315906653366139464532403252380019221421848992380865410601745890212668439340878926632121776962476510271422774750333324353623535797382230621747938033209107416473074968664659763702585998694474357707636062315112069756536778144513074726237211690534063811431028941787696136777946727764671757492698679975322612921911380143989397371936597154733637915851262798294362239798588580126747535274272928960425086438396309017860242988324273364460174308592343863297052765972264031575158778683541364239345881473609670428704603380897919930487662320216764906524280744096367282157504245636066277341435835469706490012273038008805455137316805643839911916082898046755627935161458510795791528134485091287418446844146620411278948643235716420607532285760053277513861826987124174249273114669503050044670628563060800336820887626492920670707074347637189870595212668362317895732484864315344949968334973795915302816163871045180920921977598677501247790556115938857733562558540299599922120989311880211283967424825952212872318642543795618148759333829006741673531887830233587622586510908661467228454891739111226260819691329394854330079950577932066525694025957935923427488275116453346636867339665606800568381847254927776739001652052178033584162742980440381944251925256994088405690031965282043895087277533883976717712584361527077450050968774212560995609651582627370309430515142108304289685182317624781210878156836610689914423965101939086626567394481682139952208438188324689997937443293709141063293576769873720562959166184692852856350538509198262712677895540839689570926234411638500106374919975658594519273291247476237713247675076591836399458936136250128407458352378508973267814188725159551698966762068196974742007937242432965342999157673505833599788633636027947458859909245440364472967455097280292548034150064733508526412671501825855802419326510693802301084373982298330138180222973699331351536901039841978139760425425549758653369809641805635514608414005894139147454822095625970624316435728309735100904509932044661274411925112365868851650568569600247732386580058518821459307826545758008650135375817614443501420831766171406525526827805492230602807695826751060999737249065816513137456425294524518061171367061179520030185361207541584243032445539880385719897205059725289819659240849474843295643012759068654029265026226536983567540133341158056116953583968966098157277706129720106121877058437404683199779986362166520134822312149947201510436355136062520422073733594053125850133869105874735549635381490227645275945360346411624420349045301057210902427051005905401048494457540841004346917499253624055008486739906923568433045881099815855581507639298066390315039128767393265292026910470092362242558730337687630813799482721249840819171558882421209348002171729214063856830513657939046144990651997838621277473374402041027201062874218090547995841785058679111851513021039743581339598173035259824870853226701005629491950158875152122221514496998532862226929543469007105743616748746359789458307080867811680653257576459150040745457058964203074725099042022936846650520193032389205197649466473638813698781398856724412623251352857469527807589157770941087701267582682311488963230435816318783066132373923478998878422680931240441851616388726142694828306253207873389771334656623810585825098381855812086839041740765370185268830621586945748607098386278180255494979620664042265655596504010803372753243779037268585789427767209625553189127720951492760784255426783148170898075520658652196585666350920983366235810882454406784069450149793317935629188615740197896127189305447517755700516754211694724739033972268937764767610967639271683841725335023061967635201072041842274743695417696711020495325775724955480531184343035027983929219419267270627395060256529096330117609622531488764171023204947265409883816519133712716119367308282209570861508689623267035162916971858453388342292129293111858046697892372975240272838122849450881487969116306162652615015943390829782398542815604701394020435987400789674829996340623328260148887757985094420883349571821507108521410156709440488280958166968473712632802816555869931209184454719840456266463830047747155039217750845414897463737760734730062637035373660004264582455765379090442580246315659163955735968210450390703125264626754179368821041382631760982536299137217803257114803481562700599375588566740195091265806232483852538894641475256700911531646525548390643066895243877420407302066217117918122514966149621566793676862220793890234415188908821740585477107382304201469717075026439937989675400253916827790234086672573797596282310892607820434983394660654497535479097072269025530736245326755366621858519225964813869388179272443889138312455118794645518677794595955038428582462817918962300652548136707141267260164097639779257293535135787114322650357571546981175230872027009499817192448159920255958723705547890971573476643997451637081441844649756733164090426109608277220117015563831687148818406166625589275982812277328309586479068254103637852483814438163971431552904367440954378335739650637179483924127895747197421626354309419030160288871390409543492744041658583199039270503928308506677566511865314887542856304076025111599381761609217518849638219067189035404068362053720914733787582411211272944878986334175248462549992181208392186315965889444007796462659933970536047050794898118807556458805996999502262858020841643293319034347788452019121408961718524590016496672037336595602469794543969950146812998300125320356533186673788270578872024970986796191948303455813569133678492819986796767568738121727100561211467904805200863316978860790223762755004386542905109870550829587513666839643655583655035357978597730817760006571867919044611038164923896360718820402034301891381470224756557635687757837095724287043480048746849511208195160831785272665134858901248204837813640941919496544476205620487231512677323633737221608073724521522278311320563909595147106294836623041619977488084520005538063728260766517987303297238400007211476308566991901215843017781219875620998736593134290733042705086156701988408962306963822985984794117781464933239923688645260881416582637412400616344416667856516842548528864259394042330167141148831500659483661327551571074221674635248497801800716698523251076141729128107921324445973187918867069869565565139770623579191641726080646241605693839031146692493532767151998755420079442772664967470845091237565481596217364051610506824824336946543488403386075722379011836255135321045587972927927629732226350131844787445698908350120943760429529690384868441699710408593849802111611275663943752860159119264626796480451222001205039749980272514002656101997965315676115966290233845982963798382011628043529525301447946498976859231507429434102217438890341793667047998072433008024776363975478251203052384455788172276067875796326853904908657090220564444882559145739439727791742938713211154570423729054606258268209197848219018109466856846329452628454296629067267513134846721266193748502210133919439371945485966996969030551198678300690193038634692259765519272721147988563607985996203339708967876869835429661333283310260483626351581033442929521100604401699609209101456006597132209918582316901331609968974338090184404067159050411535917186769398068959553299793363894060061177379132443687246939564402640073012183014621876531840985064105227873216832773783309752251352666028743847754674500643501791066303058417912169450018355363230631696164499527963243500289655073317570961072533141183815454126892000273206213509188408155347004033858378837695885896905763573004848436029377801374467525428438698638238332223344088351479778278537814325967998816122037125651086985670766557485920257423711487029547385664744203052210538161784215861084000900562044578325559965666240809800855759846869121520758505653478277730994888388466013374945572250064723876363615877869055340302684359471051468193420501456684782975966529666616892485869531999385063179880310028295470878959213016892213838483935314037698578768100875324671208719604978786477120989528278465925392239545403046057033109840358067761735184494928361341860590967924635420812528081493457820932124885654563697204999803607771021870214575242567335682836373715270561786076694403576947032252841741328611965437734789422758633037250963470182650827107933263220269418827671320085592814125319841083893148141635530485126524163369063328371675076043103610013796618587583552755959843898079267015537621537979778453381614368942610455760780532955224717574964089112982090471779040021510342319893198695455775929011044159512469832700159409381258122674833473165857894577705934658526054051071795362675992835843689363553534586525494922337179272707263984082720555794154724096434005900762030060084419260500738982207698380465397283393430403035008431729562857705592857413099554241410384715012500193480451366460851243680135044469321856094175864140947916690987215094443774339942669473220385225443811242487009449036792104211175229540494926790078517623777541196849970951108281135309150976386340877951134303925628883003788759989613452106915005220577789991259360321048781498805175789570594994325018316077264763067221263172880729369400213666368131989918251772602627641889611555415955841544800232749660885425616335840186588215107066590130119601410972882022610151501777391547245165618718747545160168740231207696030066537492605701434498388427937025907030995222860749427982803959445296563458868606833978770013195498342114016718270258650793121279023737292400179780737729193679103980925891887920962774017525671245874908832655802578059764372185870491248202369371936373902109272473667053807960026154056441329469838894719809401760064952572921464014421457491691461924996030107349144396272570348016764403527753086715186151682683213481692705614354279476979198753893863907978386000368956100903129449368424215947243030909845578735274878967195349360159306384440282636722977848492797176031442832720071919061795977028465875280528421695360557463078488709245392032765379309047693771093294919752138822391381503680096304102095162332361263101204230882458612752699648555339961245016193905922693196269532817400109488980042190090127082327377738342333569572425321493576010000492623227838619324463428417035992492432355265747684377047442819774530811629182456112790708480159938542174226131755985594286517225248714388719290563141673955135870601346702520348598206371771528517081082951242372033700679410213184864953936714738755063457821570713840431076457884664423934452409163124926840935475910064384654568486251023772109726583515037556367914177424647980967286492996078889285227867016120829858198051334518571087186100358813653108577585322076705612769315412013438210087386719430209725389517091826544014401329761458388071746204809196991247384902496257244420928742111276649460003995901438013040082775643080195817160204019334271663086142124373606036612970471594924689516162809414267097371782211695233429209463778448450205003166838104933868452536918371258134077219706246796158380582571098487186149649024949152106580412480689814813864262640115462020258936504827894554191538724053707464866003696339445842421919021335372068659322866486338252818748041616486013488260479759629749883371578101734571122141767080485562978097653524333866840397025184902427736667180019103180110504093788931491377768674541240069466133684603423298465271593352466124448068701423643642382804037454828069957404595077970693507807519903504088945329538478394739061193206975202204078066761867455078338465584964697457844838975253160775933440254754595732067199765869031259934172395022725224510280742184617506011158156755975807854399676887008627496418554432661198206189390511375382609250863586261521767289348368767879478481559422567474962412966653926276481096965963561548720703697393855695262213852669579479792355905927609249209206355753146487755888600157844319621658087231248040514975676143679367274817726494115933256146897870232269113043279125579523959016238978380577063537728160866202003570610534898332896660007761534278456114766437190638032274915596151405155897576964874297668710102859312528118602335894878282155769516921650133828934494569194505142049621716508094801444213875244679904067468236582216589163306449971454706150476592871220464301745492430457615083970473375378228833599517732891920621741917059091005336814538391697893729979521667676142626537924993687215163481697711263909504509952069184947452584849276996684813914806646126849637157348652483143479516919921565619754848729662976212394769175215312473482908582424515909111897699258252837066613343858653052030830204649941837088852189437147738776665772775339999575334707877072046688262643618886412385826687398337283245322849802559000876290189192429429171101191650334808314753032478956501353302798656767599804435272379549586654696502177858069514239844656735979324919556529772138295796410826921083767676127047836091535519370753145275421963712701254865199451939010033258196943067227623137052858281471225156495824361285613505891701758365309901598530830312793863247684109249919647433063746537749407817009981885652884313239689010572323986277300704877718241787002146114568174216611669764442115518677436835381653414883684094699312830015247583422613764081953771723377530878748291229472208590766238366221447422159519622015051488021630685586269553800293411547703919571767639369601986164296881971497166613041853430534077239656659175052834933508811591158278745484271729771909952816103657382882618584602825824790191828618753132854658388757786674691949942166188115578216031674982954389329729616180519788256994183687293193896421474425897663822117189806003795069603233494602514576835122682903511594471946535458312652441052473429762232195914056981560069945172695104145877416250576733640145653842261383091320714818373343119948697392366606855720703727505909515031088492073812881491989797072510090442596977780187467095024353159186766767391491339846466204533262184591224097525846432204011610582378773712297682158223951598308063760864835051556919353696646065300649530985514342381337297972817113381624778776271366883252157425449973153669393367102140482115965650647656337544219619817047249642757217095836697693347143338347718706305374125380239915544648202713761117923123330006842646936375421267030207948530030086223400453159816256372019305486657584319518840452573943166711180930431789556354966545329543756209553497407559729826943492282781753209310589975919384684248154815839211589740468680909692396415603107672577945708331456049831204483434598503015436666143585148431634178496178532490805750487270092234092609504247437521069873673389729171908345475373741012839283420171324280895697155530708204023360156736843189779920636606026380189499749910729471133428547473014018984437172170662460204661318974440715254113044760769263859327724056378026785958230619172733432017488509094610484724896158704216298006025707172269912146006633259058699366149316703208260662729771454877241364048329420216689305626818561867645626243768093114060253181190719780427929913316964637092876180515957535901344400805046259179905729685734818749366285152713117157841285112704541989375979693739883783084262357579875279268663353129486664728797736493037336632375223041825837840879907416924739925950196168518456081014216557266014765256809911723632076853249421802839702381373449588295474550431265973793012994533768265137775218615352551781793384010074686128058764412496820185576951907733952814929617318851969830305731942480070397955040545112953020935153003431951044018135025230578293527586452412850538131194126978419199863832658086366614855161825649445446270079028997929698897961828847292570572339519107178733381770007883396541192713385512865612714372270175660878313919219650565749928680155786200456864455875627232406531884223042873408455563962274375414587830609664382312203877535348296000346497317504036562329501147545256798369192396024339754714551154874839355075227700596217861940806893009844902878881338807803551618712240414781978327910701836786173180053093362886447246355457998050021465804775940192211881008124399847799872484962893330219947523534221821739930220657011636783292439333142963525652676767282302528307161631042601581639206547096292889513051139617839895014891426481324780797899434115545511022027100244586296686795706820200113419238823120017545482588713340777526558070640571270441047872556717995853030870837167813523745675540878678822080440293058369487897117720101043628176214613989259444271869747562493594024729548661508183690035443783318412642156226209730637238228722096858219073298761505678671164017691769491593161349713938136766363196837488318600002425710912738286208341505094456199858652659659434157798149084017470242258441671313145762224034745612443929489328511432785188217052776199934423006921647609456418803226344669185278541318701886945020126199796948592281792151757127610825223786649107784117924136575493119689945122128177553924138694724841848205252195409367072595558135142565225557832856702848532345916846317548931095802759976400096411770876905663585198554152056214922459256546943883574134285494897687411215818020739467939180653030076808139373272770489066374767305264730077888436066441532684281584765693884713910744800336588636270284026625769324448065916074765634090605436601809078570147993731902478690346800671716561755615676929310586874703255582553156136262055999143417428180670067665064852581668131308266486206154644416397580821734519070969587501615840287252383241117722558032396722704469848947293186131615878619660289655606972844549043310187387886601869230582971934055086480725106986555103814009474602737608513195839541011692740547320281034071003321605228424458576978979048758307631545250753265766525053511269298910536957541382427013986005115845138204929168426572854023831168314825314931491387473243707271091378276370000357287460360953662571591415000854724097938369437807959444640763341803119212365267148162583658375316974281488715151950403239033863176664591754976500726301659903270201778274013213027389752992383054733932976055071940204891440541034794932565637311609218155979013827623031338126825279537769791020455089862818780289266407840456817935630191651749465624038601247590746285165571238155004268037955425919492558108754632243921598431595923548345951396362866350917509971464106679747644086127296444947701384632866302260051358741771069278293210543945355572655714381989192690457640806416946881452665784629258924987361680914660485033516640370671188516679281272834069780341205213614697407611960955538179748129805289270059477671602533231797783589030446744838459368579767802495264550931737075048989430671326599788733954155104807234579514097291866668051779297452941791903758614449644512774391377981000393053333991590007452274556260423642555843014843788434291984107002056667138239744414522464262230238861771232695043264752185867459088626506394882201632924704885478501191476677765053427473957271784342651585284158952989940576603203977620940468200101244335156815025269309739720637898810754981038643327362264815824598065597826171140529271184743889860555991204070763875998723744105520656170951752041055824321199862154602230071688427958578655435221324786015485538201211940532346596279603720842470913057985272827182646368996660885610965031101268420798092604696407990397782272925819330221128601841295186894943701064943279924520268883623948558052982971594738377698553436410265744128457515895026778196714953923287452131818984765009488671489402144735098073084400379111779265141678703475764912278956063511823296371120044521892403671218618108034409739854088941717916109702595265840576610201147286071491109183707889503538028694366410069949942125415990367336002606465441477528080473676275441094975187635049634801387503613077147342848976213550283673166912715294400577690738800032061149968788139255328001333849653678386820947229978973709010194998141549910664640009035155758189346682680336141042789480706056674159775969722175030474451102004524933702034903989391770282298697711607002216637897020181325236158505537168096576427924268383376218875617236326984835719621532514291387369096769909769149945941435248993104449915838622657788262225430247686528419728815566726922926091318338618291104134084086981873301185723582833693936349181957247402786470686911781430808013796223845325153735631615010816043832021301322038617605084695206691684495312742472731540355215492009164026004134802448555323440552681976015361491997254833692639726484583500462898289930728086068159817988041978160867954927536710346602060347227625387132331686318255349501114246259655434378172460390807935509585194955682039255599439396839320037816326864954618224359980858902434024197035643117262236390903150207579538330424237420492486362300443719681275988129205731011810207471708381425444000541070510903077624669413134956938350665877200692561067182848856217389439980712955710478494103782674801460958058179456961014016488033894524192535648716569123525758181674151927198994149106846641660884927440633440479209092816363510847547897733106309596723716535472669147389452950853647562659202950067206707989809432510866780138764959525953208162539745795828122893753509031416632515493942939486265872473297996996521292555541148572597074917678817219913246255452967847944735420291717231663329807523919071203423415125081743539655603537762253936501855509932182605903231802976103842562655481881570817834429794804347940980771030699895133385934445422481928017719312553535374958216853427813651312922277526923507692500230853204361892766136185784357194890216384939838811764115296586044062631751623268987422952165385958710589099203483250760631475552225337246051045604728003437715732267366330953077207154490699019269395827062811884955281444185307359766125913955391500254883477515133359928265895942769433518484244105027563727003341154138321251493248293547692348345970242510733650467547259996602337764465504550009635580962045783206520586037826467956752876044425245192919996614779690005764077812840447030091059042338192497086393030851292312969426926241182667814218945216057848728680886967721507569233773715996921433612505073144899539311390579393844414463730410298890972836271676237943930140123846540089701790653380072349463222471950472228623514542064714414102788062378770911943359406800357898716523310813160573706652287494321925443718732287425168841459431426370739647753001293048813066394915356028230612875948800524061268407723290183301366314570507397551068916211407325129417047709240508313936971187250115127461714475312986536846979811188356641933277695601026762912333551340933753733402846655995695041570324875692739759488254997518915755794247302403198839859173648420711597551091863404188858480135385201355156899877428939432522188725821086807807225284536090622431347265959101868961959980270205792609984544712449839230063213640624113300944461142943823668751830494192467141176902037220976675227211501854003489465653367452641620816804565162115044446005666417209132600245866135751730414536518579331998083087884155162166319640118158073406182235139678781757064141348264448381064648200565396112787193916485813815747807778461494841750412952103506958326559485508960725756790605396895670567217209485890803680963056726537940021048953676189294771628414604280326121569098825960506974838403121387957463172262291638116048682770086887588767400103271901068237224989297749700002874489967882718446131576303961979950899654018135980474302390646204484990392013317064614699628486795423060989740998905016700888019869604826430590707416865968829880288267837173045505476645100221466552247951494959708649756982718730636730844191236986146957996476950332717365105428607265525842270511580028835898479184403015330914919803238921865745618719709307457667787184660342502393252475210742896752303644534342102418023386407796986305270105769305662514756964191634378298149632661618428881807311442894091599113542370916764691494341248166881665284809136060308217304063944551271088520030475845682949382454807231370734801930073840355596037729642442030779052630137770590341446819609353493812488461619881133004525190564605168084925160894551691706473291102297129242164419585256050856289195688934443294220477619791506504986062403985393766598670243986914461638397339904754883661408457351012504021339524367936390069126018430261963137990388598605668723212595885042233651258277752595960303552784001261873419896018761344393248817594474297937409169587426508641314588066844267966603456596273919464521455846762378764396151023075116155051988649232772908838368456847066293233491705004770897100412754678865749967429330622783556193052098278053179251763798509243786370505327209563429637028307423565147172697057982860474631776468682894257242149672789731895430524432733219487151451038797098805135071911170561674004497343494000955386738212351056226147569096697651286789442612552370513649224036194648953702184578260190729728834398083472099262685831877664788096018294962486266549640806717467851699958474316745363554989612222908809609622972663944621594578895809002644067158540717583728412243958829617422697899492997398614055057941578733932776063599596484878390471879671948965067786758296847109694692593970938649610534268111010678093806460254478167427650046633570286377300944906674451476882174641990269198866020581820944787565944437555542326408457386810544699935849599843426265644807556201814685887190946892508695419772097586043093756302073748920730830864955857038252565494856861122081574287271019133087275520066743691579940137170578523341484049980895165580715444699994968138029904939208546219183025401406095957190594865151018121644248552231808420041416171158095022708739151468371194811279450267496267681968701636931153616762581495180808774324746787739168249584828891973142915921776826475564305256330055426292271992914448483171185268624617233631711237781149574258533426779311164675541084333809132840494574722980165046949280002472127792873219908024650117327568302479496687457722402964323273422106364805916951928564052055107395223187318887677505495431165158154884114323940809479411256778274265752594938919153727284316002531810552248397993094892782926788050043113159191789976319464620590503586896249132505906167747187902162972723988150655661487021529885748895885196042709942467778035360253623484975876095849839978897879226952057563209628574005410703268033581968199814367716400718373017977236164021801482389317533251459232678519750193794446213527387818338590853480790317767530253454698778804730453325356894007761958777934020696612502804399457403957085213506234914139915238986164349116058077990828556739239127836688651785710410694312839482775693933119078011114081607578000284122435986492222808349848802326672236567482352440421413931525588816665247672330865241889386878677770379873648684494801564699351555465179101209155350504813038907936214535652009974373322396497194529487096307165098533311186712771231473459668640747584728843118857597551082439687138751001783775160391003224060978686250093075967914701321233211744047859805304313557903147342529996316354250593608195723243701138485713447129201413532043878330236553800750216345775712250829889580815454032817457757051914921405129453743676210259521309953065103492112764562016823988639618275482450205859877317762617774363818074338725926285138306796343239546117235801977687011917265162989219055118214697165096033732658888661244308349720292329888174473925223635994036414923003545608364769061645174453730736692896578584574859199009861504790275390061350425011293878792186506098455831455776575102637644282712747792459782514736676619746553157399477101490989752467399293497953357715383011566111102923632484810587749321849958351581166275258922187147509719276740486055021368293918859926221703980762615243447647392282541159117479945598932408938029209591343658593620114182513980112510461859201640233155845189491301049002007632518854922744376366651783676612261638668659132899160395462187433346028877160468739658159589839939107184485751724051556735256777666100283347859371377856681872214138556005474155840808180871246881310636642331463080877346554789454066159058266287032909923342327742475843597968758942162278130997607258465871525570888648467975813573513330076579272323924841607646761502108181755683331028007283004661818754069652307738036702435251447570232189269715042032563256451380174830132468791330057301741160184708077493608572170361051412771428673517440748443657396019523423859972140997396070116520702419451119671921543433946971987874734735004678288493737497786341963488416068108574360127844967580192556873258766188836415079335300955180721583270708210560341749093500476495482133045673597626174917692522903290743348196893167032231497104083835750091768765357152093827229911593969790220185300355658352917703609893929163050683886755822191600772484787721035120547123585154475234818520846947559539074983474157713998104199389489817337385681021280116972238941882338786157099845282763798386706121961057114242434934048664273313319183143994098901125212531221368393904468536557588929928041472046836365419195597245176062687156790026417465901432938992265695575786645046595777863465820200504768055139872558554498940150662703258399221422979004122568983161784768291369405859481183870264020311738353499360505540507746287481026403517512026318955787464250074346713732219513602760534466447868539494408918632139357527333396048473061068527680131559460400144365111639144353127885540527727814649075753663076355013141146349344265641418156831542852919337871137805584977311587110901439711544491105363860487031697085498244476334829290958339822807325896120359310684706606000260779142999657370147520773685028957060838979926782806615712909715367223272854331153393202841660040312413053534443943250338923704596623127389287503009465924930511802424105027241263711012733411894319151443144831487259666441106841245105677857972574038257077405062516245325434270939651026965644526983954706520728027299103494708227501105225781834187631872888253387129312725377384714786227519042704053007032875777861375385524426815944734462822904345096108094751666618905152297580832626527707334997640039393912001298171914453282436849899481520908799989135309505353033761915021986253833990835716432934568815054585099884676841137791077392240978337501599332501903817730288318298218351776098233801543143615974462388747448740760114397844797730173842917482529360046995453449562877624904734775650101933790891328400813033895719657342361999479835398739560277508697400510588356186879932750950444924630761401277114433315201563403436900136601878440314160594305945938644569095131606559937744224222975632810724843926459104763810659487462503494924278369923375250053163178037412963775352276303691754215652605494832392133304008704065728419144310860387576701813950291522401818507260432931759121687903318808303781788513283077779887708395300921139988133500036993316005720963468697506834740075310419008597615172118183212231584647914368666878822832119086180711055267688926833161941692674159020865533890361321314950464355597623129662344164103210650955640889711780622316652712106608621637292762760112331393747445852818276919432742149696731131316872349080123051357718905819258786040078915633853161561761705512695291160396373786587494770529900709388949578287061405894353542679748336404487926924699856091291065134256175359233530401553716358815481452841328447206748910913755602800091051273887482172547297139549031868484878984911179713582308719523327715348759272577450761407097618699801740708964408651663476768620295641792017512122303033748532090666527183346967875415248395269144648649045250605515301339357235699020729151122169125447539672287575126168161380405635941175089213909096465687365514087550928888120688512252674666303550300382666353302422149745650856481097837473714162829475386446476460686974778538994122022316954127440807133188831860897436073946579184001617402055151230256729285184261654795048937814087206343998603848263622875079235411267402121810541613771480412763519728445831287938367481160498561031992734444895744477199044156589357877524165789080079673935058372045747515981656650963588276590098141949863363315827850101368519105948671429970951735537600927847384657790599300293181258617035862228212936815715356491257059588406927334072869389270609020042395402845902789402628872382518640919981010092668293819427161454446387135783182534737500949437063873500251602694070302845913530577743250777036869558275008425172848135704581143553993565044083862551704276734165675665201189642424989680744778011862254564916289545354376617627908575553285212561482829684566189388053252871818270539454616356713499826876019384772925957752310467756744667293912312060250606161033435067620482093432194535871427594110046725741592211173691544297981658232507996176319689748250245656865847189821309812501571366136763872953244635657557459226874296979848135181397654052569734896590349643190978552232094560242444181675458302898947220716270223746889108049593789141186088840346659200808440796947797440014110357378421706473590297075280624835680230627161398192042644456808153889177894846713427875734870469628536670250406730676436445354791290517558720540678956079426227375010520905096936703960074109162145869822340606488053232042953054442888341918259443028317870047993999352952790054491019906596080690408411692290061140980734692768929077060528797333150328272234381618540894246775152239584139307757301796228438447818972815729616902364104648603991870159414138475402728096102469296633190710259282179343328000172352062560029678655666242589390793655768492918314602807001914694170973858155523258513319085951733264244690104768697074896788500942993270768154800075717474996467042538228602573461576929143595065929786848938243089482111838078063129257050026210373142680171382254802659275143344110931872655091714420997928636258635917221696797662326955365498786258169704024397245597752797955650255858015569238993442703913367599273835043647342929905673553382456051261123221183060459337827300997559895422812711742394459807582986695792205208831221658846671032770080703698316855502035467802634963572891963857856333691314689093312804986097573837557243492902760490183229932693499402816945418976849668101683876423211232302752171880228584313308794746055436430446058265289249847091443868806351608442225038440694044745443579844340084736630310193121915811534923350768147322518700558243899086422854795801024675613933920177910883365819721859202987359837147104242136740823778569430121280233336786724499152572813778312238843542627992894842174641352396653781277012054494846448639041116854153036426290244349268494278544997189017011057100765286507203454388725527607360299819637075749135320734398111612201414403015746802718397699966806251779991539363789968086728423375796095533727232681731650485265020675473241004252695671911989269313745245108185996233168554516980807098670651099006566784380491370475873444041842384376549814679913934980024005742234775694805357828734122821238380109282189503962103952701265839482242885886396487642648951114548340175659716111901594732167438255309114127554003260991300255855654044140807136417997811680514207561181710265736875939200013177048880900376247505320847116569109726514130817138551189722766768291439055146636646510824234450453476676499975036232628125625824420636140037431160010546681321183453607388026699936930470929423164621697683237343696445687207857441242368429419956664379519987974739004096105299332546414436451036502204434953425779565575417925662360959746312543097882979689772601132058288897120227061557564259472600708059932026333476080470660514938780931269199901224493741689106512814955197498933463826317738098455207135739334497343868099082595349240577284644023690809981845457159090960149943447116255206040283173878658501049892950666475028078123548872212104968696262882704087517679844123591573523568209337761673892298874728164130989648419806916740206449111539861880073999665003554272167319463125160259914936446769817456859959690973309334470303219634376802376089879385104829458953850680568075294532885133395722900615784245393818824419900855099564525064917307085662069265314168783659967260219839752126889243026510677276305894043984267462927095118733862741110052175544900615422127234747596121795336305571753679975633235261028582276022690096067556424954727621395577047959591219644542960029542954085089001664864518119100563565945590452267621775447121709367085080571178637593124134577236641901247332439567370229108163333963846366871480115210440100782381676492381276879267232061778034480554862966823023417295039967732037981618768494217457736458728045021420491051772844471951666833957426633948027051024709578241702397578475405335578754860929430767495684467032129108850143206512288998794264537051264157870688226496631729711540424495103490304347378195689850595301795653962552246028159131639744917491793312893272048946287297188946327633747479903883569699438628658156517271087004141706159389107071346479918580905805809345650696832699826913405372744720697336159492922734080423403321507156049660968148942192838284960698594780309311663819699855673326972597064656030606113709066330040230175525341660197226531689477769163472391445922769822711087297151450483832751302365896668151421652141046428544785025049723817209924983323666029963529741156615516200508919583691455154072153382259201797686398900105333936197274038349548341320330900602226706688377456883420530193307933698867455192584407472630092282810382782044777424420739816559095247412174944377312711293540793264846045862554342077892856626379794985056139636725559259488294324571830878478385833942500523546745964611924762696587487747980168530508384406578500386765670706077804846836381124267798264074151115581996098455590657527564726363680139714400631550850502222377628917803510680240617269085321803319831929732117182401649030834259016194788142107140087874553803469117118773608969919957331421028043835880553952879156940070104730876085544701274509120690624241201867687759071637221587135668654184386469733740635225466192239201431363354524391924037449896399890221064045229961963089638259437233794614630097403198413403647224566126679854750181664705965070508565872867202625757549357124966232573782757178229972228415306194310603615429976878259862104729366561359243750361673319362608267143256230298326229657327613543962624456957988008277559451027342185220938554102967033350188329770658145146814771694112666859751152529463600218147267409834999027514862293777714449084366037929751054541360142350791763242841079302574315021249242284185552304229546783335603825361086033771135868328230240944497148299616980818144926473208092039241093483359788106127075491446040509170709734560352010679797768541183393835920619069656136776981713107087952579925635224496309087548707452107442915179566952474068266239471930165820544621940355741006481244617322992702061442182456664076846351613526302182172163551761357368146089134161668826274306169318708621781569882852336508680931870569773970375763635113254714367595851565712722333407771949320727864143547967976227990347331696953949757255121001525971098323975264539407737184487724071403028369763422103833974798405855939903421056787263221477932423575013591694591127940079735867302494490802317770838613580679698114889981834246558977832892345316148680931571477305182005047492867908441992109868138662745493985724194058750074495848670152957560767543186121890282170404929433162844935256890037745896581083988648707638493744710614993323613228855038829660968556466330737174644371977104745631402648929030770672027683192192219044970197413741330951996967635612506183131364679465602760274556973803152644189162745564510251258649661065145909201192047741268861784920969885925782158307405056226786055120462775935837428204596743734731404734501155336431527095519903346314652449106246560071458842462144424152729125700538500866429984747168820033622960044015057745962363523454977336246688559560466069043571413118400219555452553229024226652065633173748991880959573053720347373697399432946226511745475770797474842110729107032243609387387503312425569757998739588746970602117081128531138437213852193646146557025368060432159171525430840206446266602319064807023110396371362770390548232353884108478902320404559183414715685605699544686491624074683153885021085647673398403060622713488869285618269270992156795712626691895459253383338756736011749391296918899146254157179574604979169856805339885526418820325622751168202182071161017568191104264653127167039605171805941869971771368828413133152294376242187983775282853709523400972393052953990663541740413107673622087239143797928091665175699256044678571067511307183537245559761348715940841779164809144947385807368864291087306821358377258181046848960401943176919739952925619886903213891912259804438531097874280024376352590112236935866840182182280822262803586332328736788852174626341280492735674355824579112917819557877145344368269591333025035419872217017449020199085331035252643449986881176767169270356854483705247118696704609237699495132048479723744759235908347660259281417139254759289685323374349498862868027786735724536169068141689694819309276560407214483625104530209628997455312590643775475396584584844395441660765734333747053058371320122604054576865716365161773630789723042475572285159603824330025945484941632815547590706284434065365709978343580569854645181911018952524371117258034289170804106141634978399756053373530684567174236520612960767567308527030420955355158594492468564330766977628628430258486787915781362080239951001241905684748261851246356538536315681515247632931570320159297386721636563384337283360446250230338381169850536294265394018062265904766122848284143031101504483492057973385357127062085022007497096886291179287523934572901410909860805909918302547218726330343114435668580680522998901511689358973434085791746159680908085840395300100677262061459349439582638636201133547056762560668464969019229902690003727483842429552891096737240471663109155449067539026244683987105904468925969977484869743218732526565842945408824756511033705133761612138171517952956421656230228440760251695551840294914217319791588752341284852680826879054462982575047707912958550890422024961943446621173678546890137606136383716451589457227967159392972926009794423176478989033579855984379031069137138054435847299566769451007773372450126187324413891874437189131362236205302450660159949140546127366045095428693825044796112054868901013238656874544618774083700120670081604362159232496866523557337651613973268726806025253349555167901346283023344857661719978546811241752326911102587319455194370235058673919309270968513467616518097096569529468165213433332269642098307009303525510149026503155741228767029209991688339060790402835119670398805763663143356353229145650734262747000852104533944290618331666621323504082708110500802332123594836544875174499468824091775775309983575158508576579062296986464609911527010479243388682560227631714102119072993296709309986062039058040933439389614315653872955090147637346239654242261154640187168550773949973094642602645099665537612533057413460126088961281849663608973865465663344067368467067347303362458059327943650823173236624335922497776645976623475487456323836846190008243622647187920807462990454324371725066853381101313120896032362449443336016261660848904022810142251364602246253231723129094309920294473567024954487130754219144200647346960004448299786537743717874890435645758530820577994952679015102110497831891148529192506226106875484101780756550768068623403602990000482964800063621659222493803840373406915988672486581814977119157578974808468385318529711398393752535016480000661549011371097101522984525627035842363443777239843123410412223565012993161553254164855215070595273336673903972872453431261616723532812226290631338315645709036079650853869488485555542736447926942925490370461227261078983686801309648795012990769332418406069309606541701228724998280158265741582935755698969803075847870914185815685406450529998016135469090853723650558190794339228031369632321215082581212579021322141945502603452607443589473598426248838889662142610577402367602893347660345677346364775330141871839848931684357869436843729689951033544415562647462537844784016574829457663443401875601731226354690618495841424119310545861064652407017116953332959242755098455895664052835589805220327536726050140221282172199910804777935610095550064848923183470207485567574282663822974328587487236540078322574531203703823308432543443785362902983684748532517882036492060872122757948609036246620077302681697771019908048881304949967454943486909318874969725624952634776218184091432911425475381160329349275751260550426529848377084174678716388221775030152893587755848259469689695786154615563404622450067879214979776579363342475855790938480994037172498238542991467236076693305508200862606470521587397393860282896857693267642723050854260520882028199305291833790832884355252246367261313224665632934048178088705977727872704315191045776261343146223155254120517233732325828712708789348432302196997400515358991190568317345233588979599861773565967755416045463258616549763750286439329897041029242061076243527551783067505616888929805324377777104122474193419720239082821242762853758818965460102070859935821061412549319661143249377531967610862076412829431634770312591716232570779077493112128693880882030123899592013699963546069572977442208044754109925602683465854955603318983931388025313610559584737362636032358881141673791393634385409530189041546552019024943844079470499651254233933978122262105563662235625240961745353537193374413721115812940150829337633661507988680737515207761324119034217870661327244424723093839591522345566459784249362738382180054233644120507148479686391126139609027991534031889345961462554892296001046620624811256426299317856473913049734570434574345901642509783692190590211556277953615837809962447015364390916651949348802140720996629233405206595134134119346314999278712615167477606449592860642349830398449535475198495176560142613483437340852059640142713608034097708171202810577419468150049084392271197438577634832471731034363683883589552491898559187809973499920460963094900782768648230163228949789267805272725728465514407833751240736423071102473563591180681999747113698525984566390281161738006545156516809909129349046889557079153507643416090886751235857248782197002874789686173729086878852038179930374779877385053972131464748670402497557415780593321799150910835579519173002975038731096928946073980064821017492234182817257398370101654650949735511060947402940327910210005113363769416059866551668358412278975026186656179055796733061748510984038989940673634381924847739136188080358387274387079151864696900153661775860074125861520040994722097532426525714967924559736398276461863813628025466523293203718327605630784439139373031466909169027371545304994660035685494798775040793458832783039925192097171943593252688980830462477586694289185461217742532917818616003108879418539595934218536192414063932774921013909142960254580988979645986441702460490465176845343100771672390958354720633875828981574208454300380315776450720472904889103574650483257825914161022960250076098426115408086422093389581819173341463647453795072164511481899659960649454725301112864697666830807873702242865888972413496045423706385549724930242539318720175986148326555755121063392297286845623055860855230531869126806449304702013772803727347051264631392132123133383417648303718361288503040673098839086725497001128316784705113793778851670827155780023725087235886880295176567917908087268484686723413859914663486810092767292617777448819628656963517201213993803679392021446090891311248047113667998661299360169244873840550541748877789175704362313888842768676598161050731747519279802901175075124791482159359578548104184124065112019065350916564303021952609017178365372009298951607140492358999093224816832942559972437771191571478979933824512593288052824156930656645474429021359927924236152278849873731470208611786119619543869091709625658413535739343560993594955375287354420871362974205850775216328300710238530970949191640544714306017549860607298839398163223982578219552592821056580029153270221462598672304085840119937678604546742705500491704753200492593313456523073109732597813361946074691997692083663595963300937912821891502481917409928418757936757579909919176912176368004330307613859516448453093100450565513995576109708293339665305518908729973744063406918212873533668798601661011650615050619823213122592627563769415844412202891671814072652613799431895007759184439683182460283694583294980035000372495666695368416696035722215025402768215239885021003527683820354682517818966682185095429121506757101700078048728092253725623996111152969306759545686371966843590963233390891951550878616770079664272114946263839048000874993456955477171421616639515076500190431772726597840997356976712113988981859358194247708983704772369448915020720683883012268892324762241559640063578390553536207816122599557150285689974571904202577553906553598903482856769426728579790120621602772883424731675518450520114514002763604667657641756224497997720194253673007064441752680306779877422082684464002136183947458953417292466240745020905339852203849184658603076160047433719260101757154369650323284759451462568792594155779008593015933792070594282624958430242843314917941242182845318303954403531503906812284373575926491889729878390583751493672550752402330578712550651000114408834493313900291843793895980608233315521216799357613901184699305438788484661440465800002491572984558373160676962873815037166353809273717549232066111706075112997924093864578438545215594816365454249406001823107361966896047085583366486130115095875811737779524000448711313645237800567083134318632829368345054883673666657430021767686660542286812840156581448204707561052724051492193903661472413479921799529300824537971095566627623163829872107177348373223850070752415698325278124861464374642537436689191122508029470874417555850410150410155749388631189184553571047727300972361496433403280753583110022361770632064892520382658274246507649851385461172346344598088023783625922022737542511337779714067600322484584373158936527419437296194280946285915750130446426287714793184458154959035262838078906421495986880606828568281878703019629500676300191344661199014895576394246185949621785256741790155123969473399132411161539530063132432090533886483564532472140612259259765112093421604546079704518481948032274173327885660016066671786149118217682550652615385636067790843077061660107110900431873340933256102092012769045881980244742777518885048800456398321254544128637542244038574976317971553441207109214450493899831882803907493360120874781789787986903969602081211858644838497469288858949958963091064547114593051751135974755100397680089373885742458952977710323188204528148576315040117126228314259836790221902812021891045490079205815252550809522148569053786644116729683366864077891407340397279960636706090124021635782001900213613335340203456346232105575801557049894368029166415752737632060025469347611911231509237945388176514783876633161580695996764819593903174917399593293665159093113730076114253623914832286213223553027890067437358118864046969074184396425855923035180063615837887858568569695308490264948438114552863458087094752897749170543001901145052336273771510719444104974556067714748761593923153404669606517312886091150578599057754115043777921809117472502339703248224900551997235245166570509912814105160011949832323412474354025636316640415454012548693198177794135328323490999567968879258784020582868978019957590424994064900719766193842450023008614472056495804351399521867920550588867595329037848473736650418543075476995452876244050617590118623688139060291281223751664727241685112306041577287336188009015144073119512729102365058451627424032451452974380586298453920586808883471623645749305397046930451616078721767759410058178903012914227403882470299741460492185054375424915537676436048690108882022923272837086294161363934580867463392860218960049079343311001054845371585787923866111533501921562048627200068464339721878552523904647622716319805681343084348080588262537606132244860043721764101307929606879552822311681790073548069887576886227508941566626920710916592465453306276038987377614761241896297984403693343603533605410194663296293406009982162489370265987641732358870917836416670774583351980716704595809393821844247656077902403126768097584722094897543886139229398566008465526549403166420993104128037953377534123115357242054316484296041913182737605897380825626254388136586580295471026454864271594608831231731463135792812009652882216052050010923327012381559300615995519896902088051838183953877693944431906840290546622401411858462217519900770653129229874789221201672675720749190065619553142309873647976422182955632891569651252680552398660959687725939409354679996220068997534395018534527858766043705440277677616664447568138260442013759858858214368110821685408283126338245809555687971734904216987163313786571353169033690552668235848370976379635481067260585469740956146339160825611689215585330039983817414726846317800839437072565144446901238889327496565609593574494249846135621275206689574714123488019822260099754126981909294134669537925441937234391414708053800546793131976698438523079923509838366701495278217437330878405935068588600244704312365561967962453620270971369310049465060816299817410767282950817501838428994930694658486986439417141625732142813001672843904988327020584729469359600644920320777732327589437499674611210783209128497499197035595324904788947097450399816336690336829790685745119343323765148826619303316950444879017753313182521105370700402006555546933715657450607119588097173260904090354771322194610491093707058754006098346709191718877569434735994783917061966659784696217083723287649612623857218258749152250541658697799067235797277119235856366316568931481121914958906215202637241331042058707500367794543605698552036706284894631280275737168840556417016334243176761905718802218180135755622042111502976059423416202705863779978667855960649813027489591142225626311551206798056974352058569272695419066986165705619356020468697046528292110576396993742655559443956448069715686979827167771973325158554327005109677264989519831267051003167626451055082386689041649926318090071028202398936013264972581519946850680562938309719698970343716262189361393689691859951773441853405270063006416943051018797303228465223811721042422827117634556537115817643067828894132632526959833722042897139482354549393109152795086092396872332309181014523616878753038717677298358407923883609115861472893455940248110185144360089535941433259729407956661059676462943463263140851186811053236356676324764073686320249934595541904359657983011450163154043918794302519965111284204212821169944124934214346306630124792261718485684428484204514519949414659207674795301125960262183448800151638337315146988828466295115310516726674732525751307347356673969368330114722089596794068981500254872430069819655237291957663390930034772834722097702170913111454577069372639440963110177552888427297062730799538842891599560201040778273857038328851296940801799661088549965438381843135473566401027409581763116949086493530344640604450304144084271412996110832400223976870006638099743473433336669431985989004358444395396008868647559825986730681520270237730235956232063657556854316159002881546390495391816677221197718501660620772731126399088007351062133255338365287360398628030784308765857571987199631711307477064557632612930762429610410348152948280817867521587499000087760216846558814336021736406277259513785305493963630192438351582902726473974058115231516719091218111464371995322340299198392649165968415110568295790187435585000239373286815032420113992631726467348866768114620973069638911714716846578069798471972572797773814934155385618955189790034773482764583079570581423285975060597255998368484938884555336698158811506566970497180869843906322040983306716024436965995534644047050139451158296664387598400822933836128654493503234546510662288153739637419017770531031663025549694108373125217599528885498795869987109242003941312571457313793753578568721723239967595333628928889101505456550476478313629621870937568135501604036866213393789991975988748265194819377700855913337774533796654457679612512433013907108407688855803414605667683010354857366478735204718400982591111390829507960202006361347871041097424561758810796032603390132645882810774256200438472472205298443907940659506531042026982796619772489842403543682643104598931916892053542894143185051001595320974198340640032948751031423917965519903232435952709881748669620792239842992908267774250825594797588756687387094118073939552095843029650637746819119739771441342709197890304453404919755290931630928695676811313256142960279939357909867179877903335783523102082488760287447399154306700103187462813403343108273037946125257500738412822829626655806692770636266370325128478536061123864706465095372011351760565758423180029056484203557181172154903069986658938272896351886590180303729365395242150235019903853381460126082563102436510305247054762536096529797121533604174542694431225925427371654950729274798364450543488341406825482413243602773482605271745896885558155359816737817896332885748284984220377017973685041445325146854291168139957072024119596222423232041141330666702562056979146408740656563989805165511649581277721711516944835494610407837654963117426877498615240063074737966523625258557611672972522447444889224094276951087241918062129935971376293982100584388470739055389995512868038391058158162314956152019732191911730606854249437344480652962251143903634527716130360808064499217220384115281016632633528778754680601615744246302592675388904044376784731602429609406627405428088600180900399588170759528330163541940018204109064311190024839987033066473969904772525689172926802858251096285330678844400294843332553539768652675448127654737127397316433848217193255704557373541940404928085506523264517365184809667283469187533919755428405984818384164360464725108318110115873383421013327792450011076869096059386606862500542159819957458451587123132242504722672728089452892379488315277670932611463116339117771365407430719482518535001879957157676478101499264905322030329816584329729984249039533859754687001922717364870864592384752572587110980721973444784527288572879699017522837094440859038478854361058032272692583070026730193717477041479284217454711585537239528465362600672725912780018193846294832949916215733348472748475781332450255719233491809168094659064226972798392125359924315460921519079173635081594583237532645695549065997276985511178032508867511335823965308974413425007961303854708941417353103768143347644773978172991613667308870621369488248448015302835356620828844685318148383498329415973267631115299420632126179538159969197909535633615848010640674591418737328581711496499031728774090084810513384241938946929188796798801537371938887936971845075002422169513075563828884238636733804271993825411071195915279444000316122860430837012527903942605233568921069381032483962595750530878498593074333418475295252351331377845210238444362510359594786411041518616347061492416338910117626869681978009227440223161948972332572644515887841945778532256085299085370758371042704474366548175454251240676483388251459119179340631437804196358472111542713715452841114382332849811464007964910040254365298016213433685347242798590266482085172045274028512641199896706163875813190726875510430063475260508921676330830746496484491518214240342272697141237195838652934885711283860307909365371003523678990905344480475160713020974179747072234271999521170732589394109244633244770508589142865612889076177799874281686721269305087400690489867428028670719965308876580886337020555307856020327018732689997842456988024213265244890421389975742102103839013547678649960259289505646728443987955593916217814260172671068768821890697783828861892063864613074961564853930953790822403543901995961179775967040378323126110085206710284083958938032243154941197702390516296847530663748037664831303573432063697476182674978326438302388901755755609150983105926333401383763435545488505305583683968489087932917432981070052657440866363945069429935566355704927988484348646377462553780847039661352337086104755778908561463344531228833590588141678515756341563326981526218189962338891990039982946758819530059624385773316539266200139235951966932438929103305213209094754795892504400296386780466585984210560379273060733951190360740839051251086375380993409653463792304797423379109312557589076212888762243337653932822050703760666950098325014430889464462935185625228667577269419516925483862234075848173494324050639533117689019929431316015476526480849977848635081730005059222772342369409544695921022617894830703201500146686498512819084700018201791708696751110175245101271968801193992089548849733236039324470280881225418661714527380782741933489230031102284498701104613595845660521443881293001164964126996250754177385493547341234513921215038647688048786209703708567915617530881938641535206344640085662985261371424047290297397936141877052186167704643170621974303637505219783291349995256518546649642251636531077069303118561637686635929727228376718000962860083795140587264218463110842386428482504201963649652939603331166375718429710304854746725589934594512882661236478800587979048531665785927777226923125155970227635380132145840050690208124969868577205758552152405202366635451140539203554524442261138969132385666370660986482253652798345895606914040624693212613401637961977253943383868162063783428636920462981047821187827929112295704016147472891084940778628478627274167747130247016793043426638530856404194429824716669331010378489800526755789057624144538046864243250880474176309356532846426581042721740462432389495960026460974338397524486766321483000783299172319182259221420044876701998262935699394576584866891515440907809651288471820150287510175427028529142318577334509001636995201507652117712125576411851680415693223915296931638500870714963466626580747962436569498272573775665307714075023418686422633714377484088213989230362864238971640330660165508303185096111404806006350980644417938062313990743116972128587090480611733963194987673284132171778611084651403571743364892537063589840511724799769845085367733042471398163804097322754907114493634506682591513908975011423081470062548017035676319452691526719459686026340132312680634856236388356619416801655626218931707866240588521252364375092189378556900228921247726952128913580192051823670946116624904540625549399340933686987468068553169357302453561571763015990131809918091047657882963195488414178840780626122179371901249461876063147998481673719194085524014217006367805438625832643841305543619638814945527390101392607670178660004647727963985606643200583599994718645967137511556723872589531572792723816058358265055709811251114783150871996453909950549945600506094011539944916391885379649290308126875250258293360901346434995001778626630953613875458463024017581179441419633426642857864773643872116406640045888067541654489108916864757337300282590040159003000422395453890618786232376721196046583623489504090149530377344200908304552619694515267970449020172940841952902493980226346924043641639041712060978610592439253016715677552614469721214131288270953402230294104551951304325280550676701535148817821282418595276542203343210658337176821258263998291796249696806959888828609497723182743077343386513159175598992414233096109803936524096625165431149064397397306644969568084366680875321812521997736039887162240787303757312349586828539646675314925628163720060119757005797679937418034149412599702515312935656006393634302082022989755304781871312850942601551859950269728739797162127031881931250025337163820359596652369532325992172786345302911413078903411887067755281128908614866899097846628544108132036611190438888525906351846409358521614744217410569755834960904712610303349161214198235252393384390674632513173509939214288620653567247664731453155432037823806762863824024421009877126565351251520695284347547825591854784606287895346500763019336516123402836333371914180318124273494218288100859032562527308214865165694321412456787637056890218076276562999161260396394995838616114002846186092433262659129348062396709586024627368093745785216959993471250300639286887500041410483528539025844017538812536501827437817977467533428008358213402447911675255777920561865239276661634947837018850196729523849041783407762905410922856218586438614045963190956806327379972921624949417824172594167053806394758660734872850587200875164449625801401534227158617788944007879461267366424113757996141340656895523748330871166441784892009458832686370396907814192966143480241869072412327822457981757650153029906195653582577076383815210705344120019531378230760066457632050708047486447101314458680614367956087995879766343933641261395901612254495672324967157667112537235772035758105601524764569820383181862631447789813422623475114953189451840029509413192388931023648435033454093038417200190330316068618849003081914580148487003247669610683709681948860255910975231253382551761585925251907148766023765721136016174014670509348566257556351607097381923116585778856261498984731040864950561043920608607150304052321384084812818618254901957222509763733978335859225369871312397197672007211118045062396454583530282966095954275041427973610212473596306919382655826342661928457819795244763388492935527155140408757703740622177604566439808282717494362810451414183490453831175215800963390961025267961513616529766908287442594760818350400485227367808910034534498573236451218664421412565367348981236147094975275644857707068192801475613209905569243983719934156688869571879773506903470250630752071722247810228362022531032500639535192620478755747035897223858602184427312814190309629816113858761906443617704936853873735787730567317805017241215795591062745029548607294548548481857929765535619598960061759649204309594896674701873073342072858676256193691584919989065359510489437825001252992673962054447986071713354583183673502205933995871066284620704661239695301744646364123490533095788540458129112354199454061630888850076409646937990626836872750088263407438735444622734502890959375521228633334423623189792733323447933550419096258870763657452462478179023748222613991488095267782994015518388016548162998206853983988344362692114306428034113145875622592960361274062785413568165664873908447082081615913315252643888053214367548428233566584934175095661524147971319775418467873660932285401185513090545089847516875492906115602564514235781357583302196199075284214146349964719343355171396494987427393959625354346824316515082648692356276765889024007414199445336271426743088648508895236393001799649603914574782515023350597187982943477149126762501020398344944862143517002154208950292338187470726156654570639952607950265299388108354397357767767566869643651712719217052669470522917046094455550320557998258818378216433441025639123055696180801106247391144427153138484048036520819566464728743465752709708814996375922339310342178942410682816836300351711558916028318271622163054399442394777218392936477174301102528172223215899058044887660989741363830332774203584164882929311516421341938437947335233688697087078771975526887061509111246415615584296120282411959905720588564498269214293954460190971026930561982667462583879690859399342994055953079816940612968695126272276442496218458659355224823966821280962683864164217895355226937140630364677294215324866561192491370108621575460766079995606717147919891220734909743489519023198963028604554453356174438861620091726877269670254658736400002715088051836388797593671456293969527051609760581687215621933547306453069093584486873720799647197864650813638108028670095907549330509359723990283583353108480518835108300202439327153247656476959140236596873005495835521404231649893042259260747634313818949184948837342671832878656983335217738856333844217609666640515973123849331438825222929947926466794727841786772094060492234604005114961234115010031950152851661752973891025621962394549805448101372837180130510053556810778735540649234062339361627696725120727900979922166188662912939366054789945273462710367822014566829002667653203331387159449182323888631969292955464187572856180549976691999636550435242977419372673376865257552281514717886617297549054897555546133142456176630279437316209172211133194321363570086429397735098737355310762764811679227676232713930843637206311869365176836059966066302411176039208502766043215046854269134993484879063408447694807312555558879521383585379640754263949343496270709515626289591069822233477229772577885902890218179401178980540679589433018873867190742098334682386797168470045611357810112340555227363325672216967918099584337890688793956064994412109437687230610130020540364104255026909957534785740138078017222771584616711801016735450396109220313733587256666294912714400130999923083365463102909879561218313897476769522750657080513103059106217789152741520249905142564466980343645906177804070313356230127028774404357844209333040457897425439183123247956081217017565815363621450308453515384556017407877774144208771957908066058078140824812484193093651721104060782432199929353725422324961078544986096062171227217373040544141667499559962527120399905375915743304699499130525259446048448445982683744540163545534442851343419659932914888295007459841410122585621639539669224350865887958498825099547173005117335956929419140512772975432548120898452554503602003687689336281641773409598025989287963151370956387230299948841774627860279526862882662353442480075371464146052696568948700743090344152635913854484951179024518946855199003987273025647346313020091552974381664403485990369583714211587380311231760359240599131072611075048312860806168779276830144737413744195328013275227142750891839368384685108119542102395940985777123346520044824652845043641815709035552790111815785149481591392740109715948873913437269708001860822352466139739624132217019314159828857317837397141126588533459204473985203686235944625339565521172097416457640526964847418636234954690087816189519389645014757099910562183100320081306984059860553021602184082972559378971446490121874094538796837537539332569865840517452153931106993782150121718264879604898459814847371232546309200093639358792047938076442787422995807381939496232665619144570846158408867022404231659399507616803342944230736668536578123356544559035878405834343667156514527785806584012330162495142637047005138140549559148787416595928589098624393404568225156153349229905457571929430843385521146056676308443342914312034986168818619520358949353293774174017682044102416531593707228026728415707221592464538984332409959673892846568522185809502898286211601114088166579534208382353736463512337422198106912602849197980053662867110402443966499434274910101001963784810225724169804373159349860805184759820639374729035495132876346456889947727068164842003797109878674432275907013552548269627835232933507648628329824299599896686905738579862527730624540234944248707318759369087316314978677202825348729297206843229172170954857681419707161244393066473216391233316185206690046732690840075134756481189188366846659949996235955915712013140975259114483564653225199110263794222427284530712638563582894984349869327334865495658685372551737755906368188427583253308714129641227219713929684102114031404929080481096853687486957311628841752126379648931977801603479763174926397404343564187390811086398245529165767882123759841468118443573275667816837886753744941364995334484851128902192853666169810996206960621878827420650277495934366630232274079265183121241164728761771907811028605479002577209187613859328789625706733218054550156373861166672061609686051899438282912077295035315495497129803803411753292230753550644238741988340570661792199814350197720094535668484371725871978153754397018457598899742056112208759618441598796460819784814875225758348464490664297850107859844979844003875931006287695321972510091151194977939165128438527201140492644392274102798019394529954440853712211625178910475102610798407428411568920242142264436943474064038376404963264323894932696519596854822495544534716351400913743773129338512721247719724055499465049446214544743126402273015743463089029021770315672374991598386985442581991313864091617544684514353976714682073070030140790191346921001484552716135872901801519217405459975028527305730974409395320861648927095479675344866077012184534368343051677865857091899322999666768212822447597979831346933766132940433785026024408283551298726654965887477192722480690629333932922822489531294571334218299713631872462344767794432999041422171948663286397790051563661271697148079308619765171438603011027360064470299285983375152238862493053079590739012503096768866290861668513361201746370034309385003048314453929241754315038303647091343776861555487555768751977669734610417469215234274786694279843133537555605324835259429511743204069047873927568031814251117773048342521995324741739761785292869418792642794096253692004203239126752377759775498034613566909803298215767600241132952435642475729866998167082862634015913046947901640959109170979557815505785173008428194694260630153781293933485612276128540919791163736946606987363835999841416831563935606683662568991126290808759912936253745959734120353213422534893995374479794793248754314844963220508020448230589509808861626379907584811464647240084326522967233268384892487810917753818548879627111990679333927578114012902411047882277694277873949622988635404903641572111636178211265591477653911685912984094440143781678676048181467134091381761905098130497571087293982218046488081890942187443046492461251108484295012760329499490035334031640399533896339365507629329928253806160281172004558603975697817796107006967779017815072926891754836238650400156224777910435675917937922047330291842846807636164378695903356174444331523093198403724475503744692843466265066942509062461062165298429918910031715541835924073414428714238130794651767433610465259906159106482773396750763533411202017640981422451764650570157348500947583354176381880034005864761610886883825159160866406081971760481453658334588394676551685859907363846632973116226146028517962667146063626557839020901754727724886739169474658049937537134883566898042997160298624938105911630349514149297947236761923011487690538451386958797157592589754571033730729876254036757923616879267828707027254345422859973268600236727287110918574171857566395882314370365075816803289022019041318208833854267390163241099403842519821237252197081987292806510717303171683850111153112480400155295270024600230486220614595537207741268748448882639974629203935384443061716809483511105249621499318833093516061083656171772133284292400984320716463693211162848612829064799151765552737071500338254174829066740043214771251498082560709745534353188291962791605034339995116206046370434361997203197942919474372211896483476143940673690222731381743230215626235637361667651190911666316603768579673915613175606805147811425311371270674083186782246776347906524799465729141304591681237947749507628780679165815831060303974519802526719873640623383930026450825708575609935150607036058184539438134722000560527702978206794382252155077993021307174938204822163243554176747205245699384001842401585987100905319843388160703035883614037137509967641229708254436872282925995026955587764471045141226583629721449479552811469809320828962007752127503681185262123067984033318563447288012983293798003724703631429554696723777497182466144749653806450196152790166721985507782359237720316238419111619341179101306549715555954803350184847766624764442022710909404823731226885138548341971125909740812028903633664623062808567991914276325607843847720307097946162550568877609457753965122073484407030171524111526162253261843854610328754382647372373857469003812827523073750304544954065956367864609244836324535962536810753083638145984443001642624481944953752805382159253403739799058809755481212852644145228118601113596337405882220737312606782407164700777366881004558072669843574549046925336129213136032929845826126917538788404255400681745845200608818183244567805252551566912963348832162435803248802839756820179223180382713777738274691460385897104726877820400293325145172014239917826752444311824786554600384698882383740874050271840821101183804075265139663856537738360077323459884786950998258090830235219684591663512134190425763454725818283466089621121088974043376180046672235835549266395366147363400558911272796971243803054738427542168117290996450414066198045983721205151587540492925905158720798459312656552125206084067921655353395226786408853406355755782814157660942498282822028145382691956357011598952935457357038102162502967839628181913439350666693349509131552610528881994695989931330842671175570224471620248182746286414078113167923543455552735676070908790925708536171055438147964732999965694713806630818545777740198645316874761309012991773966260108190048951679853417401054490977434409777958749212335912234071852885291270566038390144692609800067830489541140398418205728163424883834904573976564360840111442679667112730915918137077794479131101610101230205808711782577224755080611079104253476604882413043311962038556110354887708709989397397042348911779546246100880881722237561228824825776050211375121423383235329902971702027264445879415254791798677116072779834103807878159829314115104261762896424095192468669695022154819315752795436258694512600168996585579577465784253549098658055832957085351310084138502795757816241170998691936401070253117733164853767758118508853197152976441078780262207404701595627908830172439325767253299964465118153813636950827628502776665114311125362165465293853818732078091848307310278778491889462769834513198566609133563513893628885759166573655155573148474374199659288725533782650789452833233051118249364374072706671820181925492302463404059558886292562169170931184263538813192397715328184701095171102721760488015454722791773036229556569449254004703764136124494047386086403983931198129541596267494606052236535259508804704139214044775796976426754728721351690637479394128332760077921387846643625515399634102488614760448571595886039778806942711820934321003450626336169263709681703572276513027868666517102547428887560764342516389084734044252668233756649531245145425091259783898103216823055242788240132952076226674524815297013345478277562414153271455400631693327037168625297760914819080488943838852118992500915377099092329347594281112477018483032441171942923567593081339127561176393347891073508159241434633305953213234687795696287029871424774020674184414149956743536033791177205525939858157901065968275476673217567333782815356499590547232002836424924598397922856420811843220058350849580760159901374852382100980696453040462815883093202552192852413049965550981353888144712258254562988033429025969735666339819205922956112300971474413639033780507284896989884998396136089204228454679537239018804108346897949929344236691791902650223584084037167764317818015636263767200047662891488397888193949835414482036406577637102374310484001594995693653522645987587682326928424671732301389489151780108784262339648782863135358718378069424638534952116772406508531017121202703222978872202027913496511213925299329654430568389755955679542797733944248099704070579313033474117284292215947444378015879487601687221214639045788856384633975549470502004696678135779813215192257745439362945686271769976098291303419903514180651997437994201912050218398344096514544021290695185210047964339464456823953629647372169801329522767409759782932864406547835936605478273396932648430332709352990194179867879749607754593831821771586247711862682969136184977699123852935108013324097134339960316090727020674839548852493643559200186035288972058332558630248032149261396557374634282651833064682485293440034799610392863200850419178963805856603538848588453051565704703258212832813652260688475616607466554657618474575238755773316547345256686834904625301753340165768308953756468592186208209722266603405698356265937320326096578791538392769399758227846883196670332095869593486973895299140372380439664494941746420903315729777246018629082849140374795572542241405256426429608296176303810840962161314411153111448937434993540000270377590840737503186484723546989642091532195707055342554150640310337055424641171026773261594879272574309063266961422752699760101389059250606363425206578236339711252739226015591876912429040404738046065586655531593461450700667810809284601457096293203078831218225912723074277453699132310565615619732394862628744587327212079421124266301379453777355135217687251458636795147449554654082637936932047794138694732108413776511411732633656157655104380891382041568354987019471091183485364720087906721706853062826241652705509824505957688749664829055406078558339775781669267124570332922125785603040804587030960073596138298817051253480222143093973159773185026579530819987626658918264048461079061408788790169399346588026926177065288461325884378960069657776193582490353581393393073030232786328842222506876189652319274978022768070103972243586907184980997013025464147366726810545222583887972994260820567731315163922516554157481789667740662383553257919484725501336675109266360076912731023317754542691330092762872207846258489193506825648649307255381406786029837724558495739582332286632054096299002491776501962829177957378505379316758707773757502938701732481450203373335464262261946966404274522496394136660924761891192807539670101129082604021792375413337128899661971394077491322061825710575503192281954419075367001197284949666489221786561063596995698435970861827475806859678445123130365234163748893031438732989832932619558127729335441423768756963233325500916980732773611311233281278206216482737959566327183341297775206249402277431312473174607768118012491683514640001071629345164722261026127537426081617500819346413207095421278669420859890060687278129168372903673674196017050686299702053116840558072487733694910549392728188546936238748873379674313892724786563832252858097582313599563726041126098475864366967336596867825636705571812975677663096747334486269556178791872081703296631120088035266264346064204627053815859928907407911733466754657393939577221789643298833814443613874535520724248444119806116353620258605415789577965166166931198910561891667752213484683144455909907207130826725464776699917112798888087977728729674550929013978719395222426413930209736535421644800231174369262928903797018294958762937573614987718102760244329091852446546836805777689447907252592118452039518680308607954478875451206413619101437130324683635035373275629995411823453155054119837680486481533032934713824288624547445711333522189390347897671748687147803007888415177742850989712023062960785901734501427884495484523544839270002044854784708222064626205873973832613607263636343380388675441237499768521986970808698618508758223019106131724831091399870377097883094351856817616848920762170916921062562626367806115940533019734232736874670305190308935701053761582172645414512984374006205540938418818041606995994974545883032242561895665584243128429306814815653945769191902981427736641743534978005056023499244730242393542597318624957155651937330565598207534436460212337621628825556160162002810429327867999575038194122629996925549163652714148700239187362341767588412940337988365293838642676179088961809743714832324512620050722123059085810588493432416173929827832197596347309728877405879471886615980596952742792315453150622426176733259225664317495780736839105111524261658522710646648426532027892332502813978461084521798324123055128370452489630191354561706993364714789663174708979732392256146143334821831630818674989237875211347012879834020962854438344520305184531854273782106942112034910219160033704017086091100857207256951452573352373213292936082879356985940370961665059279239957553527547108061403598639454890552978413926966218931578932864844817257460722508549423672787680551101243879609607152197797371195905245693422464295600959086857378763277029832130482128337261813144526520247077106677573719554196191561460049453796325165100570746841632871452741873722284501930330719418537058250805942463984892057470683204754373530236575558296274920774523979755297386484600658027565710771082586504335427542556931477811698990193855680467717930774548006449202221372098391490370736652233631745653685332798747606430547456335971352829589995401082670137016233856968577974872037421944136149047369541908251932774302197573689829281128256022863308496194377321412748803864254814315826110765126081019195942225145697477885033826462398021964715295368272717621268399900880882678905117884592858980030503571463371613046647190777891673061307291594822455968047483966566910157459185411642514714401550056580138935855083611606978155726659614756470957185645450604843460345999416948241037839417594003170640971406814362796940834471745733360287653074298337543903949055690776406935694816370241401644811606807383173518408118437465792955751071646975715514620128944263175981507655739033122676725505455505717100245606941364749128603895123367958700593843709407368447069591095514693037043880973765161353865161549867095743386491322744233708548576325988266065734855137911272923556334130949540908103301504833262299025211601205946405554069993035838008373258364699602881328363929204908852400894020498594518588731103418037055898660395033797408028539129484253384087599448313527691327066428520317507184394009393578873128314358464692410097980427568041648863773252993752308709835932708203897552758538458666650201827236792370537407368622856749296322115870305787443571139226411993473416010344481893788797743679868535347900759041528777123892863681900449397927569483530977778694042539706275673082778783957325457135171895045492509658444887631347173540087160134138515493137283220017635437259534165647632324333114821046819310867387114961560791023628548592841796012503542898838044068051497042372504473471904881167498545991764981681007757938759529946311511137421029920970830406479019786719018956734007640838930703986257798671507993667334882240391296397711892611842113865287953822625498609681999258888276710696339982377351261874167146800128583978147289187113566241565970583517336473442987362971702126243007809577844638524931126080743470762441844900935880662079110541146259783990600528791203271744937378375257546197540843110122218078447997616380338954349304898887596317806805576103829816082518615123833708261000673260456103325696285220551920707065820337591042556306880857161459882325658492881661400514349734325652057388080798608136333693623365944177972373135322195418077919544481045716005307254993598369928487338532664161866757996527914178848376611252398029276677103791373990708600771200078885347671829420869579389804195718888415135005215074171673825977064370877793859251714061536882095344286811610725717095043250496141901034478422273053789166117189447844096866309971078879237082826130616410822041950089393181375188246020815186151756782885354486389974849332349308147856710235339782460592592316107088398962965192251623151000569481068437788119541105298626776742927833299583041549009700605795946520996564646254890124419751380012428567483269441260946026512029224063178683640060832487472723660978624236545604652837110297899739629303566049647360104575689898816370422995018146130378091701612668209891284697692196195317998841565317198766294211310033228228826282252443136177964585749391699188734813639600384992216671913928508762187358369609016246751105708553270051380268458092432531439012391571458232118339400415841087656387206023472899929051553852775250236533703224286646243369407573394272255047380548541037556543615314163271885261433680474662285167532915374320299346805690012006895504753294987406577357946003750786743849415013112020288604378902558202528607078094459004419848488914601585380175028643426240216105218540110670309275669240638941543759005428367666766320329715417632786999477411937234683514695340404550956315091446831326585174337243201518362392501553386428631128287290471702388782356696265759180582780732936599027519797792947620241495277319307894278564942532588950262030728344054031835865824386871702274367165219936311716992492632314284010238877422312300152024425109542042176593139901628708484848905269746213159356134034346796432528317924567833529081341642259894031520730439462200369874862223931194145044308103820999443236436160704404371854848150117748100228427761045033120996543684499305260571093946561140475867075149373065808723121223383171002747318335704966357788997297557652431899597516897704790220214800393575737561343412982771717984282455864214865300707454484258118684743754277332554979774137381289352931469342892584936263504699213258123955889306494594532485079496449048271800058193207734436833331836791119485163940795304888640178095550385774687366198664186917880291331827917697161279387788038557925569001275830002701051709771650612788578461687441278100322145097126367472198118630059060544670787089602386711675024910073861789388554643355726974526772398841733948586425664165865544354756666418953409189388638481991378672808633119771178582301684468773599890247574211546789239344892338149305292297341542238525583699015550102299136216548939383391616277452375158244751381826486189198539176061476791908161412048889170502411804937940192288543674717090458559539211311812936786791251860011370076372783980154684789758621910189387098486141098597551796813120964214047539501486574743168201762623832830245764879106042141978606302742584974574121563101591923854581858198495355956269648600270992025723123856941687161330437653336565797298050631237715871517904118739816069487402918391239419463947040669156300509499096842599565727171456356415236059207999872214128698729973397294419279134088357312677578236905100886130918774584639885392986789017994979124462985167904890237574416874075629940260453809500344863887190268152818775194076123209371218584077827799608040010377395400485138764567601664062770132204132895705238001818922723966488844316888912065124020737950711865270655558990969166771994943474331261311995037475948325826401547233126913895771558157934524822751473851628781843863393718539897959912760387008750443588463498660977265011408386539536771546373597819719950628473141673161324366294754056542292307757209874503176695369653110456220000907980076364788621241899922025455263521704019788794685871738414574745576122764899727399314150042890630055993886831950868235906232957616815734287073060624791945340718329839396901510962930285525403385566020263249361206220998764573902173128009078644322285949414865542362481007843552720504085245452219630841746367516076714714802799706139881954900559628420247309789762420890407509453064240724776072158322240966002073151911704052413384055612881789495463955834623389262396482153273055879422930483910923518276543109420202460148292253418339920347325460179113976208397295793102570410865594536284150456220889036443130614273749924323107837359333708703611074008151066770266216347504018863244684683735146691137950787996917534676419597800440133922513262021173366142582923891958864016578685350067047101902248049178836905768179255215096830716489642256480816661351477263973005097648860109226935208091484608676679882168619792056900314280174119855740119328958852299964763189506917651620992577075318200586089494789160962649481365671244846149053118963557190218960333418912575069834573345460602772902182674382052014798112217251908628852256538473249393239021171525492295559899544295140145742110084248226290067325804157179071245963709339468859770872762745637996985457493655624764681835578790352254944479371680584259673202664628163748986780814523717489802899262575888372304290114738675214074767873147382887168795340648052978297668198496243366786730876462766122669425482062612784231032024466630442347300410278395592550220681416213153691219813373978622032105283220979055702082004725152586071560394383616090448878232090641443613204275737729068733493968651215100941049979919568481979764513754783249111033291182293269812545085972976724519922387028661573008493015875890334224943386473608395913029221763563909359227574483735151709494706807533085130845843647156402129459531343032023326084870472890676355106717379864627891451528605203108596986773377470977562746317151245711706839551609737118824233763314209503396566294716542758721583401418920330157392750099204634498226733411595732905371972963915705005670303388384104122714231739874581605606327873083246343998784991151542336574103562572188294421633831245663753084290335603180318947627828611981615513331402972856237274365745022726204033003442188820535987702419591575569791109228996273566898355495917368874272931030282305946510668407402230814380280525776819618608640634800385342913292634794617191006415003135230254599641380544952296621617398600656033194684861409655248601494197018065930730775290655360791559268030029082879615920999564418926206270885713306054342946992851342929626391106474437510727240435425301326614929853236115027939418889326980016697177720243887196510096044213916696167518555662510719562173380678997526295539846301100927667038740643787936280518537179453515111191332611291909820399050225940774157490975551328302191538753084394883960039753366906711753455373650251945776027199499045248732211235022394647316908043665298584999785588581277929420644431532239202166370278252654667144182504089251606986879400828036631057746467631111225271107728153277145818592625814304018890843185327549127921951842650812108904622698908340056029023364569881148082064376722683938928925938290858612620421233707388123932421970521491742129665809825643716616228286860914261247509087714354113739937291522463447816612283035118028778997885397553036767767214672145962481549633025789534489599435143504792810835669870588752963742869190514305988888508587920234113622718652165115070857375710456528668918101896787132068547093176269609661286188065763864663759414722759622903191273240985728719093578131021656620544422690123039491220897447333924715744319625546362696130799347619568255999047224613046375023932177289952688119800240688317241672787860979848534115387128592403984787701957461106219870487169752632856745640102729771612009907893354568876776678474404609042145692182572090434744661576907319609253884704060471120548433507413449376240960196982584533770093249265165420237543842173459090653657329144698606929603962057413679312491901662219471221783938509019887904331094673311938782739924143450887202013602086942153501919617965816196860696210225718995112875741984406645531018739722381154610395398647052408535980431999495865481011335818428545574349951373955840791113267441832701457790758887674314686279294882707211019437116654920481221621278433326814259779443444797370491732181353783051139572421140920866874926327730371936685510291732534344153620012884698357208031995080099228274592736663622285259996108645073014333494141104557935464041383662309003580349105948443098308239281141527350946049554253210625576249214042423511770239977059969921055345499943398753675567197793598996193257117312159188957116831597789046832925375404246913277741464453786743505958875763975401022745156197788051046671310153027455695477276544709293388900383784104256770930803795634569275844113162473435421443409651004020717225347416901078728088086549381367339000309352616764094393929564364786852673592233973713029553557358791141295480507609799773868810966875028018069449375219857663134875483224603241770392897745497271174629725164486768648734202739325996341948700453127478533007874911465466909282446585906315170967993583124651669362622941940126058736726234359946781981713512338659810961212007286503266051182464771585094843166217542618775086583515280406425544404284557712418325842262417847747914806227730538474873274819554227086108787813644723001441606790609956088086317843945116364488670672894689689588268736832110099407769956831964398113442197930232985234414272930987486196536785413068133629678772157121982717985472174236236253584070205890145474069020639023540324073764811344889314492301097775744696446314909477251222738578789515836001675709713233690229063374683855015286236850068081169800219057977799118933374510497506213417383883714918314103490407252848843945002587877770583913882876609928625740518192406037787791989177152898467606212024006705500460513839547381508785196090973068250144520594759524960531908004617712911526976415847502240766762670877348535305617216699284113195906906977954561400208022308836687430727389043321248575378802262485344591515226276828381598571702400754474068042652704050355260622795314372021948314679608842777872915072058637862096283819044220654260588564707081824446013261380408387036946020877455963223258444411750276064718374066841070531953084196177845024227776331814753082804433115652153939103600210388580110386687536485891289759475017384371000023265693668737967132134177855282684819210923449074750941832685991167848949774718218913974453011011968148071525137957984347104017087909170609422483991897033543018605800904771543290424609450041930956601973550673543969671004615035361176711868128297035844768575214671419999288152874409511336587816226891019761210244057148384908532260892204615104430699281663479231081838259797182013229471826829629564701760064089756497849345659338311031279137927982485262626758040791774685725773077375832961425209169343082442326154788556886682919367117111111078111164793369722160294829540588865951736740062036824217895865575535846145032634163336377172263197619684778956597331492246821974660087267081520250457454722795338879559523472019579559618073275314820673498339055310387996189742208074100633114483794040256239556915115222523403589786315391168825518276195304298421761748893794480272491032229510287437776218707655933914301060309700871628936426869307400879362434115702535938470730688214812063653568292326532676519846755815648445988931098994886751941451301591589294967172600401765983046954207447578564654043623840043195333836844113240128495294585743479974416729048576044553150062223798728055991334330628623089385306303077748695001418858438095847191253384882259430185316186625226122687360974467017936363609810995446865078530985972440331548438338311480557233287100644131611652004025492368886071187741413994871292832394223548521193668475892478535831246899788760435263655952570332109371367652841508191155074300866749351479867135550449501651732724360556469686285909526246518340428411198448801638118616269263174376394567319014526168045805899410640558273985997331691626560758634157007648829952878843000035052400544098016134482359111043624877921904451827949877631671757406889078255399402174188813103703037759603312181709364506689718195059322530325153271232870414177819096094022262877689289808795327828600045206578329695428294489727093434343331388803657437500658819392570189609932665896645072380502727178132872396676280190266933572685860111052482954929369484028160829540130759828221159100797820336229038653016086707861886777410072170473322299191485859233047559563081797450080553281941442920558690411383051264865672932154951559355758275007313343544432208461462241529684214054694030757131244545984364831974203575366157907031676919104529560036653904368969379217448970552765778522612608023032555194691348278237697675187272066787097149563833898187812070462474365188368406689647085447447988762955212798577311968711516246750053589234598539489885627059296457290481703004490757514242574212159359590703798342330117384473697569529611058022643915993259374305386572560713597496834128792059774681063798552443147413364039088022649571815806705729996301181290010471165633097125877377859003065212158100869425050601169269163366965460710459198469710207046401033009567532071543927963289994155249987716488167606254050948466208727357990873965371873831610683189011981379779099209493873946660668935526986833168246878161024981786139155306847750165539870518383921591483273118290070603558807214877994510021469173284574613604007800599802551193336871396943496869553293850553853815777208073370440029668688170390543953055581602929681532210178368231504798067926873371680383932713075333721842785317467679819504864546242776559258262386710669884559235366189029382443215006560361582171678420515126649415891387625243103982318559901798066071657969268352720489506793317555429695755700168212364839752900531180388368787844347102233015937070886784206377948850100035411326274792997545071767815072674392497522582090146681677729750947251343403439769553837704619660366934021232668661494406598272017787425468720032411768289870820375335198034292797346608922076488531736563041799939095682732859388530655183623950988668489652232511077600676790995782328739651290140723655307056698598812895680835840036866668098256926672716831015130040740589635693150276094500999010491132560048739085122362372661215132842854703350166954709376783394299657425525184903429942267739824757239680913497906417598983734704570866832195173077586728487395040649941991769399322941836200866269711262221384580297835648065027424450704814984468879299979171391040139724778321863071346818235159202835299405234815896680584730250220253546796182236137608877979808147992484488269545934883987726230752419661614530490046500095216433213995785177138365279782111235454275307536528722758852282661100695769759812001188187398174206268536373741767734733816834617887195048704938226583883998851401619503413753742724008846275918999097204807415668763184586318006529180446633405103723635223639983678208752755207219491816395611298330356081421175560004486128058413720599840983579413029952798463642204827826537661711504345389030348176883916801821879038205181312029819640159277470323504468424909428531361941923003818507733048195657374306383345725152378661631613467853845877114561158846353536358225645508983268580286987804606388179185165606340006093160284263154423608059544975197057240584484910377261099025608607724037529340445921245219359800671531837413605167203886685091498213017262487044977375612765638729973359593705168002631947349165825869797517556341972454662656855008803743007155471181988179846517731091907977604984976168367241712144561844846647487601981375657529237662888910481544692132511445514623383500858732406840841324366445524233404202438232219198245642840409209312744344010848266246685152104705128864398131897998579742160401816355778333825987587736110358069408688104941972447773944538228188207084545502294508305043676993791413818994288181708919216593437932303316450798191457237045796976312511403487253115567205714071410177341553539766395541350086839803585209235470826363425343113714660333887651126482798784730817805089401074750897698955902529555126403624240334794825701664903670708287946761856560567254136514140611110719009121367188331916761422333254419413135876842615113397357662863425909635340555065948508817325826559706568645496998578649606832765150262646357450495213216292859853213155240056317224891575692627074610602220176110224022591360322994289263451021233247617071238224261054563412815761217852538427874557480892520648445560941932133809820471621726218505241458348136630575385896420009996605783268833756688357921432131322388009166529085794229342265153476545942770715352172773004825169523394994038615059419563414005646834742098039132236720590574643002192867413028666412174752563224656942091771238499642402860959580756662915434485501537173096456123446622412054610852768879689510960397960133885975140975226234306716031953770322637207773636358266440830667711339638730964770506775378142834967035751543327779938998099919175370134289282964301746919595337489628240063729790041335576023149416279243752897733267309844617166921792148015504619157246616684550726553737622679856446576108501421448546400951152757301199092726352127701287294283969092343567878983436943500854778581811446162266642091389870744593253590542831465224438610188470306940651370444209876933493945171946055167992393931369262530248896147085447355339072141937020104810018179502163159464755539174884483128847232136266050417423614691890952928372620001882859196923017678365174418634469997595647668072422702947630421964080776472756247079543950346573081280549858704355438519091325044390144344092416805700212591690051560289877837816097590025410010010344547611557084422737932276265122023681888482589459325628921631455819328360341699291204800490051971000167720309935301203324037173925650520284531218138007300446902391297981253828117743129688765641297667966124256746401050814236594234704649287137912476697344648416905318358477973449624742156936317251103034875409289381184763589634363704109168294517747946100408920703107176122780988988980786499536456804797886274764660388337410260677141090593541300788631192892260151098692313763310935712301031973276385162072194686938053546472815243463112846538852133853206814497998992614318775745289539071061655517263830339271270167985091663507397229859242908162727696184963923958438784522778572437212549794394940154464995020593833054961344555372542071231293490952863234592517764291474957073895302720599361203053436765115616013229344281501101017862933679637171098447586784158792957927341291607651213502059143153924036128197006268874440053611730643948080915179486924207545659211609779037436010195298292734099652979807064728190355185745112095370126666215140536792385259969679875951200849872583687570936454311363434481377960834289271497292028600631197637631839944839998114292525660206567025073410638608943591263232316109918297250198244990338198547412203518811640479172066514597056815634418765955548776406759066043868176612004870416641718392171637603616994110043369453690728670448582724913747864867626034331227218383923005396352303255026375907304007813767573217196518485651978642712432713111421202900890326871698661395457736020676955947101745383630154464660822365097797618046032944932022743394979922777543645350957473918846339653578645041416173911958361129227211743150499977926605241751187809461427852424127261370116029983126334419141586314865089755079124036226620491497499813984812794283864923226607118762482008588209107740965630850659135212331180137924342940311146998389359337795183423275507363281265219693838509484052389913785355635784872730666325070437595404396188916602772272963972941372978798043625031838741519111641726862976932410900254440230557106008627382333248713848580921477342999488850459678242711430398693878809803337695776167400099264367959180184857585072572024312592459068222176826957872185285341014626670331971901847475389120932053851482241063794713332567591437958609064427567975947909523073097054159424415880301989778845544727865313688047386570965704183970033287714021704145006322317451843250782526641019338193158426516058265252739622325415652550549352206537857227738096491912802915383725615887262745222015406239068156506341939086048806326649550011429393560308705842002076652033007386668898313996155126335972413918246202890773769647786000292754076397291274091016883071943320188793913289963109328745933440101204253744616422269234531935112103353242514243412490601090940883529618132506533215599039051852074407531814010019260311869544870087753819596381066677176752322128775224004642969680154401505629473134064190297344641829730070534181427383700982171208633242015510033443083124033513308268237091455362937590439320956800326486860468822770941087735670785096818666536473301059235898994668032961521791537811430013601858861773683200425747314743552075864696199240244307298558218133969298940978247829093186946289053427597837559926558090272972354828707824847454720842920464644696320285598827987245280196352378433190457783653337006452158392734746094620404829192287741195722457100612381682609124431679823170193233444804470057814975985536382672091255675506025375721709270817047198675655915436399746533883571669560805579695696433980659120177727810344151681373636736806004460149881061675388906391257259602129537954890959646925140338827909656003770012665408299546700987607401756870968345740549296198375413202654142276768953460239038778458019451073184082244005258025763353408615119110114696460986289949042223632223504613732195052798447672257095247502241464718212088724918881423586160265490581108360211633991904134288010703889205741818606934626769293981835967493600335874763272205005127182579660964782314781240104376351721103739787663881009943572423927090094640096995932992428287122022588904605787657196119906266919015332466466083212055371134875571649914508462130729783739154549513260484102995964851711505836054801868127551617851528036544735532832605055371070941019329295357296471702224877149447254308259192084425328803281600993173024013116709050995391624554751462031538802098487319698524871686764704635496448165977045144077451681914474355936947413403027061426961311230249472591633545638456643653362764348028672110833067647963993176001726134671609479681899979178384549449773240190259632917458018355522813481258139173052235981758271715734035444993153125248311343490018840570922293545154079095007276874922176783116458893713949623579239340285739659472074702863633813081712461520948934815856485089286886313139300398259302300830854376323694768656719496119776189880662541406569616095463099363602736765666241085901646987476697741595330372248874651878414982529378259529467029448892088796090688597776604462844469820703209557853295826473029641345336645199635879060455859841288280069702334906153757173833128297745090569867077518798815314944795629346267507063600955036596082099039401229385776323181091891320037977216913922636739917975127407963448836640349894391996054496200848879364287693442344585513756256848535214814438870759296117669842798635345623425174074766601644997844236759913323242421675196261730784301141760866100120081940252453094542682108659926961976222361557040348959943209357903692169432178457054945883478337373119374736575101399160309001497326149443895849261010408342782955734595842576614034345696795492432243046975567256744280064907472292430064015792496041378148862190633677339129031423713353030082236821802118580488356885599159295949171834414837529191213150840425170780802439244022008748923045473386583531176673673195210914213065577527242620495355922332738361155221664794231180391875138279101237720162076916341758266066602603169057486032011878818198308386040145523374218334663660581945728432159453172900053730498129366770621309590965122390361635911332977934167596458018957531090318969981979389605697699527032728683993674169228640495872447203037297625969735161537932730240169459602076295149698199114562744669951166807473233606402909196354381139346288673490991999561672894931304110703498394575084930177006403779223959853181221938943919023902125520716637199452864982027796863940345187928225687350440538589673438520615233202517889991710316402731842864269242477902881536950194593410383211783002375229891292221855084330506633377963139855032529683434704929519224309504716312641075318922558625138183305652187675428889982011645641031455273869696193008918893568835756813992152284717955818804953507895851535172774192590118098763787993340927007339696635029652956467153709250111330533334494847476579862152534389037048676329595993714359358220855585181268474553292368163317059055592669322838277597557170650978168902130867556496916765664413574678440660493649661390399484830281232029865148461827643396373368711241307307559923416373277751392524385075677056675097205388994862813481187695259628428640052910435482130983952418536339521057295935088986777537504396764530563870394541216112543032515510206722459183778185443203934123574049235467694537363554044065237852118549192138620825806814522091477813713236218514500215620630597038225544266707632212150914184298717901200223928789202624829819170417573184027563174020899020255313084673690707070374854284323765425327372902800667779182836986096948935939869661860090824046609052100019158961317841115789531658571806743447175085835769840065232724854744101437903288637204452876351639708329275421663548477448428854533745962478895468723523359996906544698964660202566137297395190602653119887556603266186818956179427048854548734853941519322382083614244070754844465200663807759742191918008564185177039131268462462160060148808108253579139444267510379400605957866458495258346717195161798228294681084630525951065796941805832959137268698591139356172395177832785832849750043018723469291325209262807210347202496605883926625920925535247712018835438431954214946798186207040934790451288826906012978487939274195478173999967027258665801535922925226259822438092337248394349847914697282319569895508677011802977479105787543281784028228657994266314579643258235372915909261619896824849247533802432844838521090641288885911549761432520552583750062608909397572880845237302413261908833717016645570310571246851905254132825585312441909514837784574610758900770858217710838338054345812572563708787284656839565074505851212873838480395095962535178703231536205666807105786092182054313538801220443803363986892947305128671292524714662257016927170691199325762268771498847782711587711731153922681335327274478906685230780644115464889730992974171339349824402598517174504403135698327474012432022137106790375483332646375147921787603458452639438845704454429925400648603612476536315831836107233809973830332742497992546966632227657407514440168311539443470185597599992537110868499717413947689913660516803347304922264560893384111697378335832719851950465384561759177833420009963809518131514832097094623806450510749555627394073184051129717357619896532861231510046128479189302084437167464688846482416251720348437777582872304524041182108168303139509461193057516008903036367552710364127249398938848897773249096623683471528904009846167774827026847068146933869731006307649217341233942504423421188977153875555230580571459316470443938605726657045321447513859272171892246329969209299693885750433700489454009290131893724161029729136260463350925117455873628490448966510855345677500209023219999247406651404654514716727479401783404128557355400697265470994756972732897971313306918224404615961526557596622420044044956776137424215250280997705617880609527690861640303462160725205915174999739442961769461197540757071446151034051786179762863174627318065275008573827141834951418237044376421916166900000799824552284122549973966379876824750582506326292866829423320634737360048418162125416082769809996140383230372882030361467397466056273281305865903943748391872814111491500645262727502874349419568696396178891345017524642946765013462152443010729121831830347234864255275276374164336264908277280688065799537711372811841653309816196944935726357440960449492185315187511725331361902504262813869871397576715861472706386594678904528649567232672901058930300892099781470232540958141270941189046974353454681004230869947725016464138199710634166495734792760153126674312477499156346937476431838195844913224342658794536903275401280780046521197508645349075344613848338528061504924149586090604077673539718966183899697667523310978533709218263433027109382330430368750672999787480703344403526351005031160168149966312119882233722878958370518107236593285125369683428927420596502504435109885803298699210144421560066067792180683491420926318053955267517807770199234110641642701096131430455243399707198533551333078892697862780663400820852734182831227232966819223637095056827125678546779684326575554281983956304067598580584299321725397054369975821233797828205622769661297532009890897163979075534899779137846505561562871897156473167804452311049564576438544343514480561455859803743651878406063085148179975316914398614135817175569875999255602508183422182698733192146732722766751327281792123732332267705092909762144612999474804019080928963956482540634209555114543623287222922300341771341038892508377491453737477392898418921464368908958457708109866685110411975512408634736635839309265722680467544619081597642970302744752855461536579417978357921449330089230680005991999055495179218138977691561744436398414753387560557183834084875935902578178891434198819449787248605653464468978858111625919258338452512432459151819264806505660463164879060276007693924795941730203319224930323127325723587494394979566780273094991558566166560651258694382689164241136665666205609567678119220807168906255373253796122280893615309324902691282826923565108256889897745683414319041586955885607227948694455970928659597843456909047853540800503175685274319157767463674691871301991001578991727522246144546875553828427765513170057143088803563758752630883958303305885875697517179892894526391642457949842324946446807143455760777447473662668133881308054441796625959816026268521722706564752324238793446482220638378986088791237144209847476457702054007273534427503593591260205277532631720021766245618803100274279719746756756279997584410042715322534384960444018264379744553800061052734362061262766497073596501671909452774589205785630246205496638014013727732427556830566185535420169358897577703741042057969185020923987526641585448479285092841889251642388352748930193606488503725064350416532325319051350341761719289533669162488865333374914584243806651917827738311420860042616200080063233110677490006442977434168890916759886167838824814746047319388332155831786494076928590292855249763109982072309703313176132024926460212263320287532921615228290828206856941298388217221070208793465887401178870630898566707395882364470948782967966454477362105096473202344546341272597449864621451849921996097424090906261446345624735852780733821464456082648747496942181377682089947051398750863655921902239686586691196168196957797990864917741379766535032958500197840827209434059309546267129374702190759348433801836639381094160250266601888915749170207361918456675602291069727607123473771316626592735231482603689859537371656582250356996629372246649158326945230473986698971492705974166194975291888267236395374837045204643154538690210047291324948295159652171789611958529724169309538629687827388616651516812959143322855840808845748670848469532008612206928099841669222451115185346400744356377139550068552284006580948839865085424583434909499299213179138374474246603854290278603295615797003545134561857107189299845745113170313140060481643905846195917784166660220446559394015093193825892994410721710121321820176959674131734544275557178814082566293136409226823173856137353488348757527839595150141180966581737628969424688657182098456404191927718912731030292903809829222861126698586255276995846387230924250648635000246695205577169920038494413349232612525067347883038514920414315623960551135494843098650404618193661799440762089558812098934544408718153871144113105863644292566293170286758471264151254970868208232185325595168578531714352333509841122537386954102142399622298896515312672145739008288073790425720718795061512687150218361600902044693117200712537979714189297552543068695369844299203914605221190620050807917369043209800572203153647952553555532444550629449221762711138188710151657366992836835509783056154047600040725999001815314318479310479646205537797832621023639895956434344461565682119773941286110313964246336785900220859436907267398926367028249289184835855460768181352989514893631323578087314893256871001076354638012413630797052526917438320350924672608305029926750816443197294345644955619451845868492616317884671278349009146680488450801141323087610826096723038535929960714890976975827585560639633234166329825642812732316633619584726731925615723826493516368943931332754274882728170553987434259658037700239705739863431913233633597878198059041043890765044190013253253125346121575196652285427811860835058670407064386424381966931906914922469113872083582147556288150798711397125555367006083962822525594387224019621647098728301427785254952458392925348196748772086949139075928920006774536543944656321594552975024491449362693613649434437827239732594860294131274748479754758515811266787675838639773108496207724927072902687785631663440874474356108501404506221205666266279713833308875653094321162595853348509668151685113426221690015909148804490590580146711720569266957156185971057985072112947310541083474223173644597841567071381036475531648837193780323135686393841676863973461981262671427902110386056319585139252817826992704200989142186532496387653117594444552499641903574360741114983872308502587701974392803462865171657399507727357275481353751137862446568248081527963007854207257750153130385544202296189893949898111499169097164800820191248744597759841582786554757162127701162457367967193827332884264185905043914940399102763349448629632616831740697092345146847398265144221831353002984834487836871929418840423600937304393732008162450263649572950018756267356382407930090266774855804751557383581414161431228968925318153791660670978211212124146591607397387019568461505497396387950155265901012924779297400128764428945063598080143386632921680719287213296080895944048784631332994256509099793587338141293700734236098603264778318187384392132394917532664279916637232563950348353554670286431388680678046644585386661728174011066619987743763206383996333686596343208812197181961897924141881319333396629362788418129087424100293958997984188278207694365442244237224742742584108703397973360601297597750115894545167792336980238643074475530951939048301231747360019578191560165760886844771264238885269478122238477865321841559850116744555312199555404061811129413253013736370466100898778367482068938825772626977544323353962646700162304946807231507852632294982850138803919624385880634427238714510412488197148348935306347448989947789919491624137198696803323670890468532465540339998992767552386823146342329836271406659864823845848824957074542834964590462650207179882351892914684701270549671354685945461374551979038056324359860775113450698406168446463373409429387360120697811635279836720785333792372569783564661293470988690485921837605155602140198651354971289974712818297913410299165479442218160190037877149143624864411818170774037083252509026438401561406064052755159982649923875453374251643138275059365978744966727178716868536359129461750188873429630071973737666649940798478097115134258892904729731618087629372293232296961268146263312049273695942232287225804762491197088137487170148050868654467697568492649179023167428612421535778372805525733828093106672522997396989908649470404390284902926571641440774708752935648421263720362612329265025346021553989968218738726587173149714758152174458363312507635486076327403583913607146995590991903812148437874547596626240630912396556498402619779182121953513448740230487043718391170943111256643341041262595385683752175998254940683507559536720558202402304625333859438603412712128281750465037150182461818234145912129415871240466849247122679696406120059060568243157946907848079843731824814313779194449856969968659576043044635506311977130801377510855798386635038576640781046378459911755511498679199738572791233342210179892106367219142872403356754331512678869258977924175560250632069302559848623202294064006203319358225022710250135288274183293698405233629798853453343945917319677925367281485963437123475592400882667671889987787800105066603517771988681863988727480562053557882899036737898133418778625282624474390771955254045638993240351252788688885563577380953745483388154713855884979172880796756440618186921315784016942834075521024384564946163118582815546910210748611172971971775802775783903171406788889709682924788022397470217479791551987899601246907757035559650809459194048203587032749079287573989296108906667358267409185761231063018175369927497143496137320163641688105042633359243624996254552249832738291659619842386969601082035108919425919863987167669164522967580671191362868704357136932379216653638454170204530456534225438936774110534334272572316244626128624159620158657260587465226195535135610992203038067711749163706416313283508161916242115400993099950001330440912388846683361068233677078261655986293051072343797821734560556568883428502292980677738942292267533586955986162519003753998355151070497138857457062013724843148005088376305209754088738864170382391427913914868204645674684090505035043734745860517006005632369707380987981941513514161754555179262173370631872355717099422803734483507235304710350092108502873745015760603732928099165724283068188269356859007622326004781635132362821459167543503499082343751823044375929356791620458116468077102823277296149877949759428720903360292357124184479554837799154967262474707370260217300503539948576740542797892786250417075107847507346282011039317845986031139498003451708470894053337357396743539120768961064956456403694499555094085704851999654270060095636267719846506342162666645640795068156773021550445745719750702438584153011305387164944215012031040348238155956719628102942676371916104498010406866754654309125062432923157790472868438049824587308014701394842413889581936291038084935913951042045460757631099590847797252659290656346392873913148364500237761275604899326689134759570043730378399958641274596888970540422069716090565489863800281395016867739114516365433959591814316657270257234784351147282656464289303814999812420822741623370487475181574664246397931660425498267249542187519296869135830323794531067426709946670520422573184363312801239688373388491022588410904844621574843122679066349468878624642075345053573707703662184025389897806348515913902715220696424183040848544485525248730915920114913333395476502539651099704352871451079641416077007725947000724842362175053697115116882574452985243373538560080743375739854673288275115384801217161358099586835539912280788182884664152695689207109081621991878020770700283255763034990122452646293960223821627968806771152815445596420494119265570726605566574686928035345729990319611237573503208736098264269666165750938501204255734513431409368256673291545379414854024661154457637647656886330375447115024142297025358981662559405976393010299157259347134610735621555553137588607170071538535862954186201874651686902780154031998025489519530814264232136222545449487358191685391204531983241059836961409804069503330895645764398878482277207631982946542701502125961180057628085182961432062936472083924818096512878121988149193508114692966671893616901568622217183908423901143760659921872290838873990004916791673746179235827643696173173701592546914621183237735438650720558485109941561578269342560599276574657281306368348639038572944518702418737022043281599394441055211484554667661562633592514822572597545339210764463654543701212683921978949342041302057494637901558545707032761795403970764734318024616648824987075832961536590238108322251515323407615585255014104377335132770389690768664722857098228703892047607195099498602284904202407602514372003266791118527924845548722349807867203484616303142012482175024299246388059659542105774196055212287918370545823843053800418875450893792100594397300020766413238523993328884457165022492827349001257545718598828080033047339190613382520407000116760282567538399701036414174378632785766141445590086001799869669115749229403171895489280590667510923446289867493822391599500370406492342779569978491554809411808530294460058597001798985699983167676564527366128268980033980719732012509838848916468633855390740149587328460052128897768535900506353446060789656146988284068642852954140548108911995317059882747397503312244637098629540505822718017668668603089379870363244316242404739003062147022167903308339728585786438622039673892995374939913485433425510721454351949746518104317879626432389355125638008754474576393055874598024598749762864150096788690341951873509958844318332940975819813767600120561621166187065927850952386162180167108693182466883978172961351940940864593772987934293379728939098212922445201670567360989486351133825364454272434988095912683753644378052485601765529427388337576101882081885854943573619249559410646393353914676443899146869258526488886406127002868984930555210252499661824824680434752319931816742335460012481115181441079624230068576968522380963701834013165714060243668411843820920662552823657201540878732518517026077494450434498441330842697550006998145673195225137539968155564190869443001885618532303923932414000857650363305723971573781419460472815557824679954435961738832290349334253988095991710158260933659178978323163638635811387744695889946359217436801168142261403500743929449048815515079183735969944117338587890484457177301913963280568390129102770458271814841363519143690147263903918821711433721765959415661217530446269326737451509484739576823576709090637663777712890257774607414172311122596181596699111596006548199125879984919663036043509267683711603861546215492181820659132607916640492789538470744633188904618444341641708650775961669218385775469503684578864463067847167902824803534861487672479490449280648648450506773999470388581773638398059114409247829699114539707061520797253855052475102497370188332327549472684020452537235596962609670563031659894088596596062348513998018923427648006050609461482739464909953124873528270828958693156531275106230545041198910870514474661410535051335202219070073404115672340137791760633930430679161770269611547488356645068324858805134020956005024733958463286804111554966761675871746810265726865355027958850414031313326988958442231282537011296662251704935330941173406714975324862407570356554393582514824840476109505726636408576595872327624084975545119236277433690381162815507507475132742689980187723506331388979715697681854393490681855879916634551890927388840667452342900616406145829584422509016563508933423228568810556790494562100321626249010456310002665831850134175801189117623979846379042254567610586010477380580235815525529554172291477120473295951076327618296491322982657814612100157757047406891399044492763067281863161860137554533395368225074432499212370383262545949626942824747669494428948626055093891634893061366044006793077509737870730515139803546729598322558275533243562189777302643023499540893247860508293806128683558097551786598711769511001993115118833929218257178328895127209216265627088047669433842991041561222297681435028556349390710730853905085721999478954338820710991696595316080024838649239478311764862512399429672554404848805254405970797340432876418331335785041047675545156216677532057515814118153994020919634937877683322807499611998250651518442962720771390178563770629855580581716987423791967258738216670262069968074309707265638375504484296891275090811046526537497630305636671850401275209163660849989357410110185544291746445561794507734725316292811504302886288505587761601587397229984809753897025408481321286175909815710259990395712367379394304213985962548346871273397995560990909304572349957136054101007644647632964471743564908146475134890587178393199451415809443545536626433799311408724801368528705098100888850021504515423203880432732560028028946046878563204408053339765380204328087240494128346153056505950586917022972651087644993793574422660974898111931174459687862023890302064921859675056002225293123148500594887414041002386940665924600226715903361134227452900110223082592950750172948725654723538132552774033091739870109790207811811398375209504782530646513047522580305988432238673785478249065980846464635692306758677462119558900085928666893714364200151560066067511870335162769179686462806770765830679250518682341232828572793474466708588534402011036053812703014045387212692548323663859018468245317469473298361457535124466352876033690816356817265812741189943093144868411288751438580359958676909941107181999540051113913955890711230262674300986069982975910691199882582060069938387653452091445940673173324966102539987866413836874870238399043792360416098949338614809855462283816958875003321121392357815626873624440130462809250450624782399811989291062609678385224985101166583932271032625188516843238553831144239578524293952324147750878531822715949624387205571869360993374368874682154847199617018043730234714381201356997516216049314015192836190789003585672560454425774605564914410560857237543460626932057968277493935723695765953857581903042234928595597805274426383184417414953863935979270910415253021011013289043035354365805009987299902574174345285908631216639519560060038528473921977778251221918178411958151420791365527072630119342447872491554081605913254864912204898479934507015678067819568773351238311794736094270608928630065097170900003624729145872873922153079389860517467174029604459758707506568005630516313379925123365978285327132862923024076966857707643825435076721286736680385486927209560252688012341832650233313231237018101572581607100602092320726194090357252334214349530086393765282211767481412870722539312863807705567793816943647064334865714542184111899775167618988315282484043614321428193834827423533542964203307364605983686579163166146182957674177841081923188742491906908429403610242668500310972753399381293968624334807848682336069424431253007390463283358940942261874161169211764983813499621508520696639314329704662473312614202942100417781374824900621529982694709497607665588754674417367400986948303871793400957711528602858094693324228131725261565458993448305973130086343754827458731126837973004836821771332878079300041308688270552146776108562786304411994719458650491197639486356569833914606390698912326263903818076319211977086388230221008370839600659980300605982316681529349086063109534669229379056062647794795833927142226279398998025331747333148737945950200747620739984587166332084334813237763930967166986711658814112615623049520170009395136177558764994325738537247097418797874663465844039057002547763969088314468644355805681745744375306661180409226520631548116638584492363539892553487343088253615060123326040690686735833716752961723016031180643590596446093285700514574523356088714215884313334887419304667335796548197895048937595766697968038422961142821492947443818268314056661538634929292963500440138755286030296867056026270173317558031562220839765693252602152570293669093769337160520591744746421372195514223494829510123089871479018505200745657694277994492509676345066349822712206985164754740263582496793925267393503541617171708783516812362249571968628663584922250524622860851385272884198386123957957744812076300159434848997677642017717554336463732637381058474559815715444349340706877192354731759686062919407925549771599871372828979624924119592378036509093227767167369027745602612788393741067847071984955063808845537353719681294115652257371060158755677924462118440734217107204874625566767515112845401454052330573294162745399071630246867502560779154650595476448498326746028119736893925704431471748414474191704115623017036325102270627733331955568904214677412670795584505195315458505005101191942778109284434426719558994401009841630016879809459392529719833444835025658396585657191203376847126714931808275840942292270517414731899630083684824454333019038253791308830782558350018579941409003391471641077410636222664620905682990070725311385776718654184956855183565929725948226669609434420618390726986257370608337269579367027851859163439170197487927052706876170100167590007791676321385479892814812176439256805576841783641059525816792290089640632048090026017419592067907793198187278494854935962989213176176552024788275133000270928703216737497043711189217762123844724129888121694662847667702960908221848635593354126355530140373137541648180723212164958966786778327809318717135018076419386043233767141003528284125466362718138209981720393935494286144868736255731566878353809864448063083500872713380159695920225776006714424238432597023904696886849928002067468251622157347958136605183961438380506162098344343396101405109122196283504066760133977733192271925876659401823047144759533428778233606294713006480398012734154351630538620735786923780686168836152730372915971874680556611343361076014683896142750637647550276318801706809901673808319224242825547069582210269190547218854520012671533709345349323985269163577080291031783480195542168408590785811633594752451207365773454841565629270689619624157241087619169173623134682442397097637212659553682640739690352997459867658094086402138845432618201017447157927474138967378542881245631025588362922507022259740730354990114266846482921676584833735237317530969784420390823029519412705600372404061634202878474753336132479366329717990452051307939280619288320009798454047430865102984017054204380344531171847759985657804778899771090428961383119833232011453610185962756404738099673569407667492149985028531869210720054808878336383871611862568751312364646812462482762498144423916231316298491997416303464139299637203341218730955523528505982496290416571109311354737822592221585601661132170992421175022757126482647059829255626017374709566748079268448290556337825349996472544703190780999368663261896918994556277077610248347379534003871066512221052377886434141970819928638720168714074536713336686817350628673518890761837533255145542625432919721032886133948241920700668289978676941517889228188360263385724128836715516357753433509962813888423235160016833197208332979844524640388238473286912222015522219999042566693016152568691355258752815094555755153621902815511141101011885107278773841997914194477107333559637382355763259955923928453950776798192298397922267058259743572582772691379503769272133304305878038135823311313732768982748315610479622782737854780621032855472980078227939550399907135694203931178811251461005171064574134555980533967283798426270251751775113267412457313752663820977172771667605667474132728138375391540783658320711905596663658237800648658299714276261979422948984553691675250712372388285121637666067679993012702813708476933253770961259966796744529169090022993201038573465881520605537830751044239917705713614919839897902096035305646178933310971982954100040943052602335234442628580060094926809627763620495903972988275884321915354469060538832784472386051546538762439114758442381406729214460499039254088870430090700145211807828556448376971337791475641314975975308175825254301474470707373349467780169540626701695893861383072927880199557472382294844054802923448217161132921188576220558429961047655969941027037184851546188428887732175636382296955857758472950516805563665215855814431788063143422144926202980480716315834468336327769239847915078502475714584083931501416434932989171107482586921124516788681987591938800740886582314193920167565589927603337685230736316777042011906503585032833181668741163056112179788639740497983792182910623032053419136139469051772058588624389911922675231422339114581636109428446828735073930657544780168773613667433258010342754903940315564850212348667423682554592029923385683290981826754131750289394662050677061891160859973379291872020460170994865688975473693800226106976854232482162189756343500011509625500339034421308733521956627375716041560310289392737156548269758573461193402469263534627504756371024926648305013515526957091954023138372480817928616978093489673388623262555408949034184452265498208623502112356246220162825746726195115757598526949122574109221123807044496609528034595812706329965676089490341293914771443731200625720107654420493370940545861125494685515934368591267194256674985625009975478137141158860723030248797425451757788727636427210440626756981828028456007762494210469601012876710532501368865549741986828816046358114260963755102795166452699093204269103765848401621659747113024875204553516044962404282225670070453008500317419463150982066107244709065221788477853902337776721181744423263672478496922577325487367918921265913111997900793465497510105760084662194346646774541738087312056843911301120052966612090608220558395077872099990729259276091837097832098747649806142600239044078778393650576780809425008381793781376556480642366668832071505394520247563131249969025855405064923118197573182292541154142977450937934397924048966125698299535829380757015971297780141995437091382455794980068840078748757084287651003302474963106415886719948750500542747171247617690892234116943907453912503016955365854513873656093140394275025885842705092526155933266943963542672034242735744538076015008233688587429272620245484725334423239724358414713819147691895134908461407762866420173160021052280601915944735951778144312937144564287801333019583736357711540251238700532746592792459095492085861636284909595298661385865387038726935684913268779440667378154957888766055872607753898141527287764933410913420668033441953969065983689351037381864383377853096662240692036502406424429048655654658254712148260732885415917019973077607917972826535340198241642091355912400935890060660997748648787916086876229254997673287267715476779178094389503931140370371435542998299160155450391980505292706257693888390858954369297842300929950997268795024757114934049221694355845666835709331744404724845323217868289341292043787030387796681959012470800919947383967429717256178838363723492256621087230933604651427075356049328516835050071250266375162921810036385696593929586687123013345718270789708576491597573711930647668927879919213128688537473347426688393871478823681948570680514697133540726552553105112897292063774037954077177872644723489963646594089005313457799339262163087521150535135952669570605331413134169259345736493882291633466120388018613760591652670016099015384343576477483295832435462025045661833979615791792824698895936880144290147304413203162620652756702849434287483289688551837382760245339817063847249450154733216412447032454222441228127160632951778224993298171944920097670307771019667858305406689756402846100260653108859402221152284964746853815185728689709648719317450851716070010906929047599760779531385854827844980813645898006833833225851922666983244259919523434608392202296112027629587837653197363427065142877290354737557362710569610023657725077277952334741179715249605962942543873490111493261736225349455599834254335753849379650630163575229293968349629965525929650972987410880838265874372793090461033067050269337788257164842838256971160126761562510383584492960367683699702860150558910377361276607214774123606821558415858598443913768987006785212246348413729891940398894548964764225501895828959929290896445726848843936338459433049026116572853595850015275363335074100125441628362791311756915212772514648583966537475905828696091504132651757649930973170319857019012749528091259543527508126913157915802030406924833204561639024605827031375204950998041747460897702371746693015403270548122168227629862427568324542779698458211323547828724325145973833268212517258293902011070955341429474002757862761800146618581609889868323962231962262395348925868682157563713164137587669468367844349458404405895644569786867891290011284982774214700462249470934825347260574095672509699062731757626898330715281057668250520204339609870069976679713006439947718778479169642900950908451097046850424128205259736308752217621839273258366831691862061309568130840330469656217879634226835133211952381618943406250982812684259941650813569342270852043109569582250380780135835533640560534684582482641347693041654517677527328254197684974954615639593064521700900786996758002610296897546102374350144016428508467430873823454543507544855049265067163055282219165567693745726293565213737398510785757246721502472717886208464567133773319031357861957325950008571602682634787868878706355878850213181566880148907436252701904641292268146958031351479826977925004526247595742098512731883122125530725990351482754285302208324515969054205223166468971322851402014852390460309560130102711433774797214118365785767481475428725602044867579522159188271675899691510754171537774871142205436786531643236928598546514838710982857147898137785379790451929412895732853091822047907984011252318636273039649967933193649865215911657713698884235433579588174091644662047854961522254659473464425847018384743135729681499379720314347941495145714180446001737274827471297114881236604456851771123002608340210990599006726224635232322431002690556181023997853944093154831072876882433859751019339173930388935978730430579647601944685264285163630870353186862088529172876054193937157798252524769798898426415730861905493236219609546110124765669697287137156356367885993785540725744185909210113890029068996522822005806695673379678315146481357935155893471921060394865370177901973641151031980509865825690267313447697268359536074767694825696647964187675730658734643852672657792705830481983988132183132888956001750497322420536218562405105472473208544056762572280403287119777791263607761547317266090011049360614744703117873678689841789523122557421425982739203887542604001104937246348999890732571213540779276871341569536487670248136754544434322376074230780558933939663422819923636086243488824461411186080011955518842532902009553923035504027928983272374680209105043015882572135609536293942156722570650435960486759498249502217479598965573261569322952976324241876899797291936411075817420778724898560553879533648092598246204571034637073679139224422008696652069705177029352513493629358641415881121315667272674056066818401783006894972358199245000910143476502714339913247318518185398219108191924513513122862795571813549396696460094418926262350199652422469772710051193036869297353245506353961471615926237269645375174508269673052611752488860166906113277280739807411244553093616692407092892460660795581198468106779957876322849369767181723927272057700054902606048471033342682659181953164880506374183162079135905275628406411501685973343665103832335831037602999931812211891081887103768482488883185635882724915243850039528628257084152950400690249607080543939786423225015591409587007433537402403875230039685202898746286881324404625844349282151421837309569660865279456117477280679935227467665816589852215986157999591694852767421206846979744607764169531581003803255036066598739102515639434380062472036149866095093422014446264494640281332755486355391447015587715782531105881186809395096311258779090224809563818856773746513328170960347142705949477886021993134310359199578759101357035098624111983503700449512309831207049276891405169686809586640918329505010507357857568727694621792738157205554909231651169810086888797742966473815430916993723776003383549935747408929873690041579157735153819522372452589592842774587286389448630564308146686585739029961042059158171612638344150471535130976098789728230199282321583221092616342521698102434663823437811296462462790108418684924386016369090930384727183688682172276783011464020554660452330841338005077568488699974870993614098751017541897410020913071084477969270455534107300658797213623959999278590187197485680509314393770708660941357935111214003833345201539071141123185430253793403666028965007502751192025641352647296490582663608861589063358119340670898070090986618535250703312989585246411368629005438383856082758888389504806968859190270002753067525569735287982141701512871480589413665952310733663556870189763335349785232319300918488090740635852540017316313127941310677138200957928075147852647536462701551357540417092389808400756923340497931327586648136194220696807592732015250185355116831325911175558353462266528676573942997122936995409044139403129903637065377145800289021709881728243256970254134221418215350809996260350623909307998492515228090641315655898317169503355786326791326093062887334624774306961683650608680970323564214425384060340344505713184754859751596136399896343952443081806352527868533961083878870718013636431657649388012005473310587677266063291654440286760105331955049753181902300825012118491785590168025457244670762030418648360746928908559011001077052042176243583145581470085645749621479536922730557021340428718335225586300192182262854826522357030294419798894906147221936194156788614781649381978434454730684831765532001724603644410946984480027347241150921927239813962832109027049290733433911169673113774445074969701616685352134356556815706327174727643045146254446357176828817041754622284678619291864628072263786815375488479721446751500033988039778180162971810622441145039720116930689550646265837203771007979995545011196399552043471415364062850257368236138010805476307514749658149630545524735394543074763084900747857315153785161349091578678850857586012918049822242320858163471427200475007860593709971032765541947259439251372173945587137514747759424284044477535550969731121102023355768670548248922942682612050745249437311434562642219861962565439382640544242149611673557427130958919523679430230249121292084541618678336804103141381885711990859818326643554763071362202827308188736163140937663617416775046997493635080189601554623618798760601893723662769199121407693423504552079605619894304738191939776304725556288559011848691619582472110494804640303346684570288823252586978225200257833114394614810992751806157765942212805090886369689069809160316625612913531985484502007269152163496140453781545429287108691802121048206768022382316106590205388662439873646758778790016213159720311891842886576225112912392199739865164025542296401182041026552280710231586483649068033181686188780123817434982640478365183674083000023522740266682176630771705707324864129299160679496812820483661845708656529399138519637731726903681326886390992915530589229291000551601438508604788323780942220372908727272018068314266655509751888838263202235557558130866862083741243202783309819439922717293377894410199408800537433722250503246228937361931292911347348304994971582432978401441825630280188203902665844816135926711419487140831904251342159429859878760007476862920071849883747075215829527377180113787958947152044839292597928888645521475181960383519031862140306868530373477800150952452461788711300548660400513643138819981517666279624037871616213478875029482143966101657226909654562307332661222965973374196533138442492045819579987071976267389124868127859480414338048030161131404867362572361885108752918153556491616790544228933950746681858286538557478490503059186537861992997455928346460543974368501245166014967832893225113281013162353704071259821125720892713880001494700113986630227912140970567333556264053199412459158185352928771658303311622687946138217096095272855318225824192787997935859315952470650756575638199971910865828020869835471098664375257763952941484471037870602456244652182331233314219003739864286635104388794858499169317276441300983256497557012454313173993703175466672773864532604258580084515094059445613969828112257698139047624834124305239065794269724721514179952250785409323953345271412338480443009113834652892449443729968813440115571174600118510868947070517089096026109175223240118205882835926311492606527359355802091251597898818358109691564130721686083715706667665500324281671786979762138236627464278807955329027349497650046374352553297933263995404043497554968514461892502235423868410403805491428850432545893731360388440968553175942731875038292347650368286168093786707966669268764968828427283151210983039052098741396914524564402369103512679129191741817327611075499022521619150604078885149456727017532917848011348725616115671648909458118320336312199389180006844068326523590731057947220577554987642553888611625405423396619572446311193910570748762202129874054036123092521533017473285066707995088119091056052911067842470177606474639107778777410162337437511229661502710995611284301185809445319335588096506157487791134685327819360020542242941171995661409438937389137740931207967908522335112976360318201859117363523218566169899397753875322379145711942645464861123069522329178114436628762990783892903084151874064274585665891217251472622719450752201988769724455280710978117303202810633210436067386817189220086190537755960889386683683675435284694371514179935922159510223160441627175204638356800546502440689411587040210785336595162029504192585971991882013595896952545870419717005234458081117452104585549006280352854198884008960168574125118045473496942734238932249236657992799855989496956078967600524808349605582751145512498281204094038924167562462621100848873543604993648611068929855290343586737187526890767223040722683741087974451440972671825468011974190963609083663740016618496819539922989643092394766547690973321818638887083871432578803244956813688491403420127781253424044477295692825621005643239586946305480230889514991388314433055432847238194272853341027142549924213963911078591081010957303424816953667690966743835953883852987361027931330640589553128134992682607701527002420728435013685770923037400200420078163111866050326957551720662428541728292191146753676275318446879739717626045850748279760758054333638216051781266326813476596768712576909619173021871977048851332085918395477497375470628279380768909533638828779093204945475561508630660654031263691743916984210637075716874998968872482605203276378520553650381084985197321100972928504038060683073094820608744857494539172551245752316841168050459047820218207956088620900322471613825818465261320189936627279471631764015283379031747079506657609876902443820880024092862008972932716361142532802062178379015782820130834556355346959335526824586624310712350474161748649701442013996937342219880936958741630361727402060379705193714728625275671624282269649222812147880756760876565340931906528864871559568734930983474874851072318571325828534606256026236590222863219978005318950811409743705388651635145225886787633534470740449688068313742366954800459130463861996590156940214166966000742020437785863832475610376783649092568445280186164726435397987133211116918310829545793832599788046893035040454662500611468944532516090559809776506706382128850848181882273403174935791941633767303439487372551883891479068568880327520233462981483797871699990843048182688556705265472894020170442116927209369887360242568303248647990597037381103556103530511284989765855124403825734575841938529888131411874914986044540369504952252370051031246917113526609603026126288296687554063767404845582972517568272698279247972485087101221255629314488781679038361924160802043403888143100345544385646308881597893589245449576477769417875125430612481312321404654125292975528960645579010522977951875376334302790329063382936105913914907361511012573206622369131535370415822049621230304972035076579446903691155233410459832122279437229622025986778194558026155221701214099023685537396745534932132057931264504613264846018552921705001503787809722546912733648546285551283048853486280663624572230556379551238789363742114210157193749777050770783697668763483453765362686563590161387311641607016344995275484070638627083469606137390266051966037478769790176578189277399925881333779764751770867781743426623522559034409181225287040034007312800331380181979821833006391898618539002440865019915630059684100150662798714107083862912315916133639546122034845865100765364104180794275791042313027075212238468368441080873625091024709096253023049038723444668603585862178596581739495092039937200048043582806177450821499540897748836221689252814536066641733753830275920003305357725620512179539687132631618263847884771661051726947954263621864179023911913735673229834138615792389716914922096227199636672256571050140558506777270837885381875255671251856390088253448058196627231336931935868702101628813224962246971081171055359164748615533234389971309277657277418298896169018696762378646402796718719468080468357403520107001793564276731430250196967164277556176909867962658445900935260455146456350728644939539745543246249748373782278257931264589732329704171952201589868742572935118985403764010472746791393055164325211912159417724387253676085826237031588271364388590127985544446606065193833866479468562154076726634940643058531870455609506724371237383273999139212775283903611719975261975789070090414214916927151855276316724066027917038804933135013138821931318783852098477870856508467090611540894990582697168212133885618072002364117275169474913519246215349940246075544915583045590988663643745847975598311111337209155738529979633749795860222719206128451649931356166186615309389502327619101419977710771782327067994104144011802042949780392856121858301235001622538393069991644112354808711654407380638515742018355171240999483211446163888880554964362815520605513821934563550408326218946649933888579493517580847439296295013407892773055690786829214867351389213725889048631034036729207504680903797444331077595575889906259824573160282997095205495143413491338786040587649047070387766690405790643302858669253135272196113266795055746068767655382223303022270747076932774295108244579450555884423101546689439546175796317289021768642335715032638864901709013864458299721235809687922998359030968363595283108357124447117147169962795017051970273919953939276356060425663206699450728743942145593518117112116958692224751445941493219006716084393888274304009774873703202147610657292471591324977549180693765232345813842218974634349835874756681039101569507054977730865575793406995920846949441691250961198247549154399778639474796212938500854343572546809233478713705273029671987579364733325416946470837124951455757980039322411882940669446646314721849342436824332759442578611387979444403519201041643177839938858742607605631784605220188050740961498382292044509221021025000704672492046653085722239488077873309623955644668525391047740991962379849787303995207301193575266394201139360730393973865276509249823563062871384309951519231013609645921480756946251504960514839212277673431682780627773149979388290205469660560592287574769805276034594945845386732523162552053099331266347540628598280507896214578330688903750736638170848955263135945830534044253355616274310037471980299239008254556501501832618686114379429136943538233225501970931815397325517186440773766350094281953976939204887641198988833244020396269942871805829383684025725997527773536335121927363463106928739952266018253253952506388936289781784174690575073358399509483269543682577084091323770086706111617593282915325915858204228225507543915353856202217357047728179797977979261685000436723657816605563071218511781279580981798820371511454547719959533432325910909392480359623530165209715484130949716578882591517353030498969698174908974514200090646936168096173807111388713980630350534599994551432310759868559714052926576616930583642097371601063898782788671599560383495434263084638606314952055117370094758310325811780516563553540918726090882024443523455532218150885638385514446778895317760118115120876755190992688749026397739182987621398263630485866316638735321802588953409025547753011202049195130441335245234059828013596693917973983071833827204052627661031124265401602353992574050344574041749324025420049784013054124751967008141058010691021863623731965740471869250291011239235645519056144630285951675848325588897591342642290952237962825573711497487985841837046919244453137011926244865801537991263220324176952426265272970114416259372106896529614489831812946819802437217532267363547479157125953902254346979303552207350218619928858480283533026660016386338236484921626101128615171698909409341303156253972946259426847123471103925854779147414439216501182431595766415524171747703912761110919041236884945686133413333607701634439328266660670959291643282582765132296621952074192178148745702969430585538285779291817046051659040433037267544039361109953711091841792041132389811989982068517828923254047131784994109387142560102843759183240286985331855029042428019309106490134018683397666432272726937154510687303246456006090606547958521910143342920308914286485069725855001016861005952701315543646136975158652766847936031037541529356981262077419718897994787171082799333472789159608024038308374742126598348935491245287147678213413998550010531382847887285574969093101591818376259980606637025687945184066383383798280542190168455579742294785847005071355762557431696432260773016471065999971362703051841648311850956069790668555579786761716814044733933587477750989352446713119230417226640612006174769680644601634835218324186356361652332503850922031845018217473134391156328351507175914838206103456777060938415372197559670719035123312271312315359988261502989214960037883683755018592923244317159900373501477153671475962600315166445067439177933141139239043072883035950321009238976846050256103401657541028314037790452919681018824853910807725863446863597975369878819570313643899318261223550807200737590468776879246037916262977542672209386394849160420366372095329503910037547698039672057367088024472061668138386716868976148386458147407857895870667387648729376848050450493637636568382445212609117667723881895699314784242629394700646509833731618783600714432889211955522721658734000342532485433679943198592872106504895514771745008462518764899292097611146182477008046587276324075028440559560668989486880879230051735447631327454059572352690684745872646833535656360715195672812446242753262369642632814140466660520217418576727903406073333073975806650071132087825858583484969166987389137690112711332705390216744595803439835104314662105365494605402007517615633648383963281441847998210587484910636276369128185429143698214709500504016749409622742307566532778837406663701741358548499873157440960300892431570587769450970820916243728061446949197379428532170607218707714372009077383109981420672442334701139277150085673423868307327939220744387660928334409450635444507016036342167495120865654257905083501955534879599140778011905785531273185580327330339059078595348974589549936251899848167721774923840951862264035267840517441259696552601582995008738322073836089085994237679488239765881932814318168411901640951132460719009723946379445866036433208303610221323503837610394447962509352763164123408998128014380341627837041812151744401000815980488120893580503530904892291045330300438877232258256542075293492873680156206226377890180667102282128027262680895793940858804922411226904834749098795511367593909104463987950778354588156326573871780108095809896213563769303668444483511659186815123857524568732489188307963326446563043939488783356590501082499217475830136905630157360871727353010347803029453970474756235024425707579483534830028510069952912989685678681463202988203511843093311418172883122997922834532037275415155210781012061035376447809161965258513217535319820986318803097780649004365065804646859526202046228121438195983468412018361995580877467232711723245956048476759986005401302808310855726079299651135536424472734978613082568568592763961354794819890093185456214516780670051870221033352521922689442623651403344432382190306649045997116298186445986286558814698238541992297118226623451597636752360370608688044272264576212073759829407440932077645395797213094649606632189472345801856213988169314913839175334791210254702528112484785211903058747339870132070115294555919312667189091010550092695968769497422535666916483730637382900280767519918529438434905292797748453941531720067584547216549290597321893279205355148260023954505743127022992642191536645525974562375314838406653833884713753322833179028688414616381300510148794651884475032422519450236054129253859597327920562852148513452880091684024574517699771119480071907303306590067446938562902313341810397720112022150860240660478017833922152229703019166793337483306380641369914401052093075780941367840493716182244005866863350263118275507988225572632378388446055602261371110806204666353233951598057233257452073443038536647247735449412280910669576250294448281705107968357497543721056872396979884120565464662571724681092827029707705929947905478610782322415176542556448627758895070771643530009570304229571461675731322990328170133988186776101885022737022339851200714049676505558870463950964567578279460113313291782667751999777000003895133273953572126144591462644058396443942965263108401096003433682546871751868154444971714171689156634102645756733515114172875762183980317480979661524101086822611280939032380399548202321809975629127481370148521624619418146241954086273654292577561542900008758543350666825787904007337664970330647200990856273414800630614191060087779746301320900078322125840958909565732429066641502165669168047643257731118961408315054120830883235358808629018491789904913040427459835206702607478061082369515582087939248018378562861705875937888117086584157604539000306519228794785506049532287569727525502742603426876273450928785862777339091428010591288466144118449054563297006684508894036337432195401529418605909193505551867630224134118122297960863632018488528989026064724398048842137288075709395760076102822251644284892275278665184555225086160100702134074151840982034437883302612415324532272833518748921354943168392598951922663782506350851526036919750431689497270625864903983203081707499094336353000523380167334906375095711758167920871657240074199248889055216986750177257368360456870772073480606768279686780675810280452156634112770277675350602693221398774919668212797914337154493653300051330982973748417274598411173914746087254874282646070132882148316852691673922120533710746638247178166369790927246928591758586882940743027968314173728348845802932600471209356679601200446598359025349248436983929405799221883419983530370377739078923660819814415860771098778751987660021025984365033729422859885696921058388926015711322336891951371910364400085088146296227469540491719733981863469948373874418028722359741530316083984487782182304621648193891292456689825671050725460564948392806606803413689102436285927392647890992689147428873132867173149443475795935409331190255423366808008018282688044608944877319622796641093337748605554400338523798477191254105755151003798205833688811930753011937792940305966358384607538648074725579547398077931799571178837977884910984966715929910914064780873496217441897001512321385953940637531345914522451504372898754784134913415911963279288040568543853188875770760168764182346236440228952473627020213902219416754534439207750477194509563879133895221369648683050771302489962115959517722154252658363163004910579670904615376299288586015319105366354941770790863992566258451919529621932054429205907839398349276772128415209598124379051437348615228609740986544297885573236345910312107087806412679147225368002645740800143323805552180513461231704416161174344867213711414621723986784293205712853483199932975645601402270990144218325194133095452400404290888271367709338838783244124955440491410319785811807894025106206607120211829308378883752901331675505683277001965987152019842547432600686724665940689306054891557900651880830241173813296249378738343152762037974306631985065232430618809144141810300846575182952630195570907794916425363883913972832883313492430784072640333522376635573255267792758581798261244602004688617155956088987216434059821703750779291567290961289019657350199441838362484043105844366411746248868198260220780242403248881714700191811548494923627952690094602837159946650665678978942065211996811471618432250541221050342459982441177236592144400130883314455504724755587284367410314055064892289710020786818389210326027026689389154481692866589286010741821456046026916244885338361542922629069971534372093948166198450906139313123744048530143445600608393462979631240940667937474323733720846551711920985908168903752817167842737607866361600114650357244055220764147798261313868025358197687646825537179376176806101488822206977237657368499758626222159690210818925313600369766843724073503284112281619406384799555261077774654159177720890435137651909914163185114918165234947262506718365514504901803003256730151136686344546381833962014538017341864666531822377598919031887459729850462713223953809300854720792801131052930543070120376109825602258272731291204403548991291365239178487212666860047339659076221898242541449309363492362312468338153396522059196882392584344591097447123939325592467362876361095708885904565881620161634531149698000191270367538143728240808132695441024071854324022209527177748827016355557595274115044242537517674085795259253579883753642731212186042311006670170619004595179552757402790007390785159943786208404233516151642394071952722527586597782887117877687564300791365920005415051699813997363607272198968295364420997736675715256054172767937847052931127008954279228857714442371610373570551707018662023727514208424115318571128631892046113218141791857848375211682058204904898467677455810911306998853093425990291794390128677704827059295857373853058146536187252124544408106152752101462117800625901607964738240722841501336563131842882743162568769406048025634442741201225138537342946241265742795558629261515721914284636994188900825009657993335682413283221766693969754162755323511740315621131660070742201644966432176984139452375238573201903545913739712601055973513017274899284397717614996055576062739350857756714209125602931747687870514010151101382557120452505489496109970608683345231635200127172265784963436248070367036932498896084518058612301948683696482247559050698079739635946953652546008995352962303489732588846527913707476313970139172897663813616006567166880203039516012182613655381075228774390456227563239546817585037272512841015291189047634932341645791302232031800830068022189981219966510869560821676860984015865209355204605895911980527685295667099680452600054428757240730494851859396317011989991752177516078397168872779514299367953262684533550093164523154152065235586146221000742069381764649576745002101793383960949691698491002576271444878242782568057737446246083570150923545270793260181378814211497738737728559723127441792157905008230545045121299773445310257229839042040136078311681013537663624819477940715142263128698902572312229299498628788655306054980994682134570907301027544708226867775075732953263299944519165731672781095946029763654420940413066683612376357824598794825174009706285712148313303619888442281277127751154431243152002511273883241365616005813529683379491212938619640489997528877691089015010527220652965712370570167683002369353412249282442831431597097098699879781713903136556078747612842150936767695047894798762556774756368164866048380053774413122037833731419620585032343869387525936435328651285701601009089890654767151012398525162256710321855793833165495353266647839967590640276080984524066378744894265799818005573948791480340416030942585732755077621741352069474611713223627681369208097718023594416866272750679906572850132985974791573933479145097843094933543671444972817735130714579928696138514445928631949059543790343290337184684460051341147409028692962827814770922052502849028968580215213128167235090450478243454681864511884518689958973622006317794200509487327679744253046497464730461273263950690221304561387113357578376087394128150495999096276769594814982984142848255849815797450044179391737519929365461237287914395759081376908521968468316449559722403107779540353471305774470772242629306798043821190332382276100978197332986881363261894717637530022278997349420863939765689593132340688773981038203359438184337651305998928272939401849716472106041846158749083413774456123345116512402657575476137381215932326882572145651672266321556977406715440278553410572560623957105520215641886980393127542132347120073750285809925323148310646311869827175437304425989565617890488950189999774924021641724233315088446587041482549247534736052373284718111029747472799187722273177455417257125614530592581024534998326274896981470010332222082312899068088898489242463339171904712246470389415337807276291377759897607869628410057566837541964364496039211253352588966082827994995608144567610078574783021171322907923893255735914742488984086054743823737366905606573055777110140466342462721067498201291344956411730439888408248995495975589713376838761439057452685372248186336191986365438879492522232602879570640545133316202322041760697261557878602953600861644412458014442273685270435292067063630554260548173611234989913355753247017015000281106867716643787414487867998449687580065360690170075796595507506362035016231284021809067981346373647204391646436122296367741321543711917732978960510435141917197316269381744369124471961587773542256187443785154918949257742419164827091811703861693456956680540801453286904577706238684989872512065604691747344512255349271367361451004860692991033558959077498400648235757842747719293207710146930858984617886499045303250242100930621527341880937089362541433189506471715633380151788718204271501466977348823207468618972479901883421017349503666122820095690482968574809274815786752582882234496986940591912519268242278059448887486912028098220360322191977525621324898040629167632250725543356913190036063404047429334214139744521476754822329995708577034459748382486100971485075698877186740469753916262097807648459253253462046288159892689806715739001285877435513541531476228451006513562863779357665470540880407695459504905946143460052688233526521166635737364021010320121640586803514947676269175338007946313230932822203770331062728635132493664540263068050099582548335583288188654208993414349392209916145625936113032051786012798177539617513272972567666605577673868566121831344215645889811227624228073321131029263556935763389887920336320158798224986744461881084689218332155559780170172864491789177863510049225470494547578138053699730643770678319321456363782922456814488601486057083985677026665126222135531669823646824134941381990870124342476418392338414581398610300705680536105176080432682650924662103499108330614164061286822503723025997094106636524471111149673917176633838651518852311439642679908255650478654946962136740537862931193356712021810867231292122750383574888793956689649028381755021601615544155615400425540231325043383132329385595971686192883274010005983845450754753172777829474210782423569337786194575038190677191970213653094760381696336415681013235208151117565280510139163843208931110490650098194031996859945797495954857968473305437553354945893605098857819795573619230926498811664806793142994812435699218033512907757754462553099367925187079475311585709384646524738082710958643510733446901892552313681660874952820157210036424096000550483184576824146394378589404640677833768030963183852331291368447602622602650946504459048508691954462417463926818716050999499127628848656752349322224682932593278485370688945573642913194714618851390629446005137589008908799627536271095836017498690159562717548013959853725441146065163621768893938950877972671591262919652134974492720514752818875988713103561073724963719829423012468907598839586587041306459763312086485922767390067771054457728986074595279221042602689822703860205752211147609862267723556006662532628598584988939124619548646313694764302806633647505509328705218748938831344147103563655090532373226064502237659372668021085930909777267046007330898533131857254164497752043614761424070240760502799431877118741918469701586420829579719355062252983395229385465554817063887754404586681952981189991845018215377015580378202071567379958017008559924108166100380608447401717782875961147635877199555058882916764270729295697092876655969598488695760416851924488240674513889807019670852182928592454580423113377502443154291768785541890230547945386604432298848383808409813380277054717444557723157490064738976245383789821579079672256865387412540449647425759634193322972188901967137990648724903382162108329183070404414097803319990636563226630437535184180274360316944330269556207158490579819076199483858451896601939053541375114100981839781317801842177018491416331521779945683060876644385487583992195991945489670339509314809543134273605595108891890201028145449601836689746960989606430846775391619947100518041999431844191562646753935859207894893936567859158641803700886610579118485144754972146114357622931578699570646676733140206913570471176574776871537234942852048936921757620698806949450882853206040189210224390721957285722336442635080856232197480764651425645131761751702160340868432571120434898672882269187551122144190738511136020871773677725491230016738587041305955210870596513283028066928570718544864235782875732934834642312687976070074532052693076513610378178550170034422494800453965273376221359268404066405463818899760943912520017097070892497571396322897193823674038814626372982564592288965198511522445723512210055648071798324910061192209141104130036438217587624035827930413650384268814343875541676189852228010205009560669420027785702019953469587087015862562681858348964997122126290642321677983688934172109230271457870277855733681554591516410670240434315655055227668346029119895067130661925445786382791842175787948042747166205292265672990554226439930018316244944083027448589091198431805974658456393463496309190339981428648494786110147336387246080384105231446667810965499427660662824889420068899394776698225246781361848453790564366587720645089173772819011746619188337038005549098228613859079846613286836994616798765300529974430243603463050388235654609344842347420076936255457578259997152199706070340406244340828838004388894767842909343867293769184032165966668666383533472140999591604197798587400175100924159611504373466376804533682638795062544216581083847019903371102329960606899629791950733282221738171500798819028256242202341277695331219819712920296140124481467015086432715750038289215905742585628805201889946949020351547860578885494564287394501786432049427102633490722663823842615253045419861437518157651051479457892218518789005827940278781233696576390270449405569347617691851389258962094888675060826928268569325521407267699910299927227547589705552150313883115202694748845063020140158149106620643921057148785651728065565102687911769434763684058282203298331140960202288750946391361737031410626212232551870021886841413070062554095837573516561782614698180451323524103224657052098404931048820352733395750533785934524237789901587980431078319015341115221385498611801084348989824784801229126527084898130245824994443827643461560336697732060512001856870311893636169856399038243812703058376452344547714237009585069270981886919664916370071961985120900746280625949938290446675863145266686724232021131805032928546082655852499751652005699365653842964147266948235385400781967106608911292779674876933599023850992142795532272022240914456352048903334283268453117799677639273917692292883413784223637812878746410175949610981165474989323562956503117261066931108785092545483744978717287928566375569267999034976832816520430208583042886865627114040643028726694321836095961429173213249622059826130976555823161954302839635249645562602217476437006842246953949982067044811614827987279130306835980417417535793016761259433847697911063781004866381357619057986475583866966809521403764777128436460820713572802003647008927606441632301321538308162156872684083787229476542670796757694271687569952484377427860819120799700283364095812909728684983957308598513734375315285124030537172614511574597352171475393081692154789940351570141865250135240341732264443965834537540363797840668795887917808447170057235704654974098433612669718376784460774695631410755023844987159391413368556786872717441963852109300495430908635566673936311256644368607000256319731223131032531062053414492137390067032112569516927758145058260846196314461644161141744584647843443621987313100325764117550755765047265852807551256437959781825180860046865173666441743494062328713701759965996289803680077927559823582260331279476348666946085916135913909110306912656815071089756789376885258265185568021316459903536859281775579565131033197253181092170707614537402371006357814180773985010642747326268983304845000556817340930167632140504414869821869831272417309250065907200707480282234243579768538331911790624757241286619384517892807346567580729319447514558908935779139093623438345671592508650618978878258492038765975820894578708112536995445100504792232367833147682055808913302527938270881372328012748172486455088296713318026102285347247054815629149168057691283546009129951326991996743640626946627236698670690807539080468956800544914445167106713234529309307356184076024726751087607270754977199601330278260022143189698453357078598702997572747576925370813380136406803429014486330248247884601403786829234054430971928024971596644797612565046608730732626633939831740352314505567179413178912737207139625377726770504837841177341831224733608640306898495907127772096875986950749410008156108314562497377510553579167677539715942308105554669130985548370682813236238703506417949300974013244310494216952860425332307000572549078324244986510763379624438430557882367358872765456554475061116901433665745257876288088728435694928667456428413617595986484584169117461044019270786881881369662997263993706307539856814794497472561881933074646328896748515721119089011363252520657903349900036624181425500750589562209717101775392496991403481477993120892265740731510252309329674278078705423982710032806897805373637042427554405265211843903528193920517191709063537465281201532020167117877249117085643176606793214225496234301184108008763374473260706485432197754686521570604504572135986461478474214427482177920763105923364224997953149532942347805894403645437991200371168975419456055884981273377667776258956337372694788835442089869644548215835337220321252519249742495304053799331474728221841826979784546928731278435018931929242511341065273030911329014999016234493311084615524771115786284259188719809275000625424397800042737355144888198822843396106864976227263215799926937708405707891936064160915684941291369479910372147276049937251048258095029460775181506140236387981752742443926492294570869703550219243507283674789162543765002223583450061526204529422143351057314300160521202723958738380815092570300833136347128159978495098987862456762043688868924578372330709416640698155768081602025650188407928376734771319616854807333721933569063118336124068829843669741592296708932072924925502963468621958714240705729043150374463504667061701982244791857824040855209570806419145003692766460711798429846118073167711231851303844290446390011632318490916076563624194760332752435404722785811672870917471588833448180927030115911758626039026092099505236320978110194606821208154084129772309114819784895328888865614894576713214452231841703053806519383143771761288460908365775069617660530892212125870339945880591993377873663308961418950239741426255294356415128451661642391063184437908112132473758482847557557075064918666960052655267763153362889739307153843991835841316003710605560618029574913778509475331357282438991332255520697974392529879440768861980920587674173519617365413800981260325595044957811306453863883592633774794308077000352179629541398846846342665752591613424299371751533551819531258033121993028767690591312221283044483619159812485557286983967860428510739944242383164750131336391014854716139771445091119458395952644120754126391979562506062397619077024467843483225655395753273577816062988337412842467955422197757257247908754485418430108004520555118742514352079918267722188356391213627177698979773833291488643117413717427692859833096179797452658998288961581392859137100987780645168575707517179761758717295735140898810911961863155643570503199298518501079818353145161444509075032981548072353251567378789923132862258279385243101522068756119603622348857037442889927730696502326343829319083924856770156147312752972735489948076976898397112284802286294552635834032637188806443507698770090655039211840545601500254683295894436427260849431205291445846867395086069091022350599809484031424507208878460405784331634075116464187253855213501780781970136914532201019643182226249756009333152953963558728713991530695613407571681862896497732181251032064988482293732271578639682139255667309404590527795293631791267394316692564709048376604054805669669395210733846021624391369185950415852724343307957375704935336840472618763555130188153546122697363927392223894134310239858278980720406390815537478300244384871473257504286298046149576459764025616577158251578902415801988948211451741145489164676903717943693285815834320575439982884652740188026550544792815393785553929000935132363108156133077403948686060350621937286330109014926807725226191327857639470987954875586653931290527823085931645072712068288066494979177796817283301591671753292726467024609904866993240970569541899545805224174324645787556351123159200736136045465079869566904153369958238074554008301039290199107942523102219774740527171881365851280249502190164630216947266537592358243578742201832218626745881933796328212786920088358925323989623227370777429532988554388577090682616430275181639847465582569645279616457718025788161177034856027233544378813857401453868292130994445502180462460386161712826848366144220965601941278082132811645981449802309321187694137061658258733639110223829583035795349558094457765216638441015478886587408822044554987267778558329531912172750892230904505569531198222626762467168393853400991321105051135081674485003630062379177345652175824629317241299655229877035388949927576645837594453541355755462550923400007917006703617171621207569856578309995069343443537407874218834985432850062253477469445037124140386253062860444113289214315829623966660319018438683338823513234746955759777115559025636781268110286033503054090121471064572890420254294018642072852727305278682414852002973537664196166009227240560941579680916437985537656353082653632178536209503457206095279725988714004089351755197193874806845050326837822835998084258124021461100882710593983545803193543185790112827608456048653805005225122334681862477405854556481531106372546887600553075136212649861298393146588491558922061983550903539495564531992258640090304193011033655286573830349062529050154056612857553942933256694128539101733409794492407896286544726992864033382413176554455309570821263188800950342312355701517372625588063761628964565174871639544173264515234356908099081613936088922572559159218440287636786110138648153429807227399623007814544184209533098218438613495221931617565836426152797859594383923031193142641766340934478196683133831681393608146370192769841224643870296904221197260967399794212151099720354606424376553059012716829010661996335638816922555743106135103518712660880738763940928750683394981486480412520963664112416175839257175841570594293606450702762073370126530415974692752132012785873323009361871033329353349908234180120664094224426183308680763998337443371255524695320969788495230973623547272082442004065417921766305802071032761492681275952154986749331270709775488169739632892975768341423821670878870685642862847404445627335114305326221358642047280620013612174375764188139634922848600249877454669194698253765554647569522660896099021598916918159574621575679977580728497900922374420434960204978596046564292406973598593417914555801401504951110488777414784013965214880606900671145988245195609361081543908453485065276441779342660807252935480413212518257679301674262832386085774273870130041731164813810144568508234714356860744382739171271639135449024708370357037982182284744536732094110928572942269855708182181794364258406528227594922653395187751939995143108115005117851209630189805954391399178746834470536280613835789310334276114409655785525966963445079595007101114903948701906296151593167727424502768819675175048424250890783535577143207459490150586654401546508529444228268293527283865485234628307154359497941712551981137331300200716881907379725054984994489973627492452657557484391951316885934187960243083710555038478713494808823398327648191312325020478640814513792231997115916307264682004673324030309136200254960630976956937873521711170564308462407902203282982747486009162232116413011462896269282978741748607209131487125755174173724021530032122760246521566687733712927037749320296311066393747321902338114927046271842671109211370320400470961712536308914071180761464210367383398969904967867418770668465235988709829570255802720109811927734573654745509183723810590759385708278498196011729032962048813144628993279821913867579675663926990175566297113612462286310679142364551899457763609183101765912066525734496544236420230883000420534981618999723980816117770272870786299970387094113567195372867360294021064238181700220158900532903336698418674441970011360894178995290202579932320397353946343106752825269054588353395853553174086296086438569300911253946859748791708818474438996868122448665504434995257157880562595956073222769457774100976525557950368969079952743721864342984637879259780542301523672013646794318936780545791790065752200721640473363615431529862557550169717514853676076846541050394095571598151462741219147171410416125647109776617316189165229686692733652432525272074316847466696695985531618578012828860202630647551852534545858508112512312927451610172254282712020217739256278655349244941981122880385568543024827246974567834305227285483428430237717950883361100379768564105072977567994719861803458859087909968474080762322150598624147251101283644958309701025696910744021006096169985246057953880774656498920826285832630306953229130608427171449604765252724986577136444976941974456174375816527288448243508360347654875144127253200854147429803537600145234863835150794805881231462796550356502766393315533152081454924227894542188161253589422906576116479121964875723967004796155512821199946821582953209503734171129432526723272760397297212671298257122235108612243071140055538213085455396906421121175591260644146600493060597779736102582865052703588101861267330625750417814400643864530251659738128624506532687240807416172955447127623148755347353546134210200517002894494846723464226840239682723299423941335753581619620992486513058536576927401167577804892260405611651352380340678292120447499327803572939622281472864166235723539630983514864431839552065418494649170595567976203056158782833472006826598251375313490472512630641388660558637288066376978991336215941509967956249631567245008436380312134123568658079780973311738823798883854941101024036562363465494171095549576146220003771379777612300419867479106191821522670237315916086519176564591775032136437925664078324728945983156962438841114207721722907304155023947387999005493608679694322069679673607576286580637542463091516753250557530257382812337454834675437706823802789877052965866631245100282436111867988338105160869384655932962534971286534893256878178858583946122955490391974319960759713928417929260730184388972946076268344673556729843880848739336936801397120023401129800940281702006034065169961289354555738293410621153698631279883935539171639172658926718416985877871771576622438563380856614506357304824401364531436087524969878586212650282853863285782149387074169791152377819492470092230665837061885114619949503216562516039198068717145227083315164771326352691176497616437574117592420609164687960844864408793015946082116698814938084127460716944493526514176090673565805336947019701657158345660574509744685725821042084361426041085891714822663673291766157681860047374492696537657229357649774705167947589176469067401750516385010732386714335491418980048238857782322318667390876891742277102850102082707396349598078040023293420208089504838840064597458023416914473844174568800174898335864673732617454743751809519728088153813273283265295690577720146541132488358325828676632270978696743989123820036076298131403564986564012706339186765180725599758033252088595526897744086906460357158916698925896732845888471776683201407229550972260806136324146259501535745935561654176815556626617837990440239737251595309397103019476723371885249655425696890142548303692938666522475044413478729347431641172918825392012163703256240723666452761675778067715849428715381852098084769222554332825169070848422110514623398217223618094560955049931242076406539418496702707705930461236083906735231572870006711920649993197656558361629780019783155603137581510200972270484072091511952018502366772935550867618463987627485752206202241466549628706788271923027359244849618417786765325455251178633756738986792871901703937566617962971813936476982004857585511975659804956353165319707839473670112857276200659346396086169564030249108789032043597504019486166521127443129893300949910087592003001057916675659243713236833603442208523181845419116895644612284613590114016762748694715964108102925961217194628961872927681455106976557374456678710096665035776489274111556974520585448857748217991880650942922540813289301422193535140766911735065781174235303445654389605948089153558536030410396917233162538492263676773114135106383450746389310919470088078391456969618018159500969698774367787247207721522404653926652707697241812508903485678440100164339975101934616832606871569592496845437874479007360104241990258000302481637094452646781820118290811216296338751862728978814109045019707800170436771850612315982461700474297582263762910143801699184490245345335864402044797446002705839214941785959327215349852705170584447219236856726633078213146936844519793661053700327900319771571771442416528936437956699148874503822984462750531068080449860348108071304488011070009471584862067402513905434170854834637377167793781946385647120156765517624451272367097947268150152096443978690013297810646463901728572976624685485651474222021217847815718496594973043432110452107897795554724545616957866479342562600897026098887307103551324814034960551079379938824082508000908616095440465640390147022977250429645900634267358071772312161375037998524536919641394011765092817426056262484480906468367310265772696564894813756117223017576101567307917449358786457784568473307723929241557144629631595431323620979642370964621149162423575569499156003654847849754720963471068845640502146410906300194988300998615987130067147901162829014562769361126256507278002253230149903482119105935222383297420836225301356938200832519429080526686081884481943236691734605679466135271588610741637559362605738266103872913277784612840608378604962180419376525884301509959887339773752814347064536957279358856432382562790905199760181651508975703040980908394656383639886631291865071207619483344796167062507180248664199425819948413844470811123645991942824449035910785406599768213690422409487754093011597641841273355549910433305370810657436359099196355439816843730671814742958377446637901402252432933784709240172016234655119718767243418055986730429183719935646906053983731395284093597845804658824585737677331241250433361775982126068832180833956795179535212273795067096518114740889912214516218979468995548090690911286521431001252677964493194487871164770660289622838827577454668450530883841804238702268896441016185876092610224379008437500026839196466809711204493392574234457401776779466880491945906937606238162384821972145380723276508122866060785230824549156182077668341884329408917132383908918849243278612902497821484452970086172674583947503671580677884543161397901805289432910791351423744232526273134549444736410996999818006949033917624512324797591961711296324355038726069903499187543396241671873285067718035841128545492857479197446649732751679172303299641559093061931573666295983644561223224897521551430121994297603877110480200773319838047165564269409696534789019887724700756448402915763676812826123259911771606688535139904682190965646444834750010374427219749094014640691925349649915144233376347101303097377095872633420137811423574975939792810782210623006838845942789528609083182415139439836295329398566187010805743446340638768303045778436583889230800600441470615320911094342122756189168100967691914867534692639958148943904472006247049984512890727060823319867218018378824093001837109885572370434708257652988340153504336745635320051563586303934181298797652063932791317006014855646062236362640940819536336759434707856280093846154765446905514738161401953078082283054138868409105138707563969096526673739792666266098935471208680594255211751097548881112541658221990196389015196115088081785188403545984659955243506872613754807959038261797920703302527753112821104899271266447477860395493366459184026592938267793042159525199398347302624805693158165409268022425103387823728263002135489548370032714854124670576722186485627081459429173680092272176452721981202458293936212462716812860577410593284258984931851344289860335557943009765885356596559535463623030639814549507362108508408079728740003674118580813531285130924664619560657912277362192317367509381136377732542262990872389078688081680507612355197113726275923301811845847035833531004216962221188674225581625804467448365601388227959609237152046634758527430396550004908417080358326488881508966469817303265434380190261448351856582993489165977406344299348057623077319031892419997204280967610499897172098341477734889250640341206655065152586287024735418765755853334100693991630964030429805501681823621429609501458932642645395290460955111156443044619954844762615012999539406710867577743556843254496163219298962530927507863100414912053988792480722720403866021015877173065587933638964687219676561798027607248173381406759469969292631489073060184259315894326318305208309201204577315595969951041800525661433866411541229519441907688704088512051904626324138389167100807755936135773099735612383598416167246687144530673073205255807224175012013993780766151361807610912581875590659711647440489281809779379977759737047764980086525014619666844113364511527736380926981957146613115168670627268613469201731464771206020551753399813653653850559776020228827173766329347404485866719910388116339893812369354148676724503300404194211847775139611825618092897265376517344745769023366309002298397659416084710586227365459571268591943517692618914037582278596362863662292453665653716504113301754627165478970023675206637406821555492814422034613342773419931045242446497585448180830410076862399284261679788482460103238896384474963115911511318749949042896201744608951758706827805521499136154785096313552931293477233272358717855621439376577356473656790792236577530266150598197433293471419174138288875841703722903113432166523158693891155403498718550923641751164173478919979179106932907987183327687931076347222080898834120529873943796504314768605554036564955182795167041425403590287094930440387809743158865366959675904432236015650544611901393855851604990799384688432545462939257455415091682016657066089648541269164384792079991120951374461082881449486605992145323679944080174494723478482901098475346717031876866151957482621367559449731349704043298734296109602415761057014263415501551201156542052552260619901285777949625447684290692584280715034579081398414917996765273462650484744005498460188602185048361642336088321214417796938297451031663037832003797242430892724108814894492113362830715578891950647449025019707848860574490737305312028710822987842101998171054496330576003406115628870337505364713373406826718914817267032101367794387646080278640851091141777035068809873417554588337518907029632187697025243604847582298444927475362971401312791507324088115812421558877244581582638065213317546973270988591775000292205512568980524058127717662048487412158926934153611945866442031097554779113751765461613920889452653000200918098953724921357274740253066268902122814531514869043096744690174011685075348852966611714980636617242141988056510448499696237557028672710356871171716094941115425096018729860119457883746330022865210709906612666347126969747657921121657004269313295336882426495204300313734820781148843794224802055226019130510747872206945086566933336395331327556785029825349144302539124624245019503324151307373332500463953600082606544945599236451306080173075685642511431556098635186843207452196853135655756896164293829723394233121955057251401114973549748844192838268291526042261721047214050065006753741751541414059518496496943523762654811705052959423560424850623432335730850876592335061493557083143064108119931489810864280991534702610105756565991703912780120337774948711725850525490928727078238249679556035466489211635777842393301099801738514157788368524824377042820874066740840067853895294171550237935783564747031417330109567132223114891596043481570706344191598666988083530117437749101766796639079702470099710126314872768509195562560303379820298230249799716693729785355648125546444086611581084368316153207113222484846114727026182825976556449480107670361153520673901216230832117629744975364818888956837015568812110709492262154749278826547508088846689308196151084027439305874368270807964127972806485249177438438668883497175327241011179975770238420046362974075026366578938170923867045581037690958489208880253761893530973394049199938773757631341813833756598935972914658501236669879221000280899549074884531029951234248710829460448447325465079924662347905603989291099197698005351991255832851510576316744260723199025953076953382862015299859015159679642043276141183496116457210401287034435757306453533639390011198268213403849603231572878063362714348228957216196215660846833629580077446121615633486900771444662049113830896235628295305419712038720745341341096809692324840464505673192610910411591635585688455870852996230315570907347349368201149814099029077035523175197140708387001570345815391103417134362502395001078378558569306923464939818002014647454454506489231723343393058372604322443314621570932850955228127300990605531029638852163923256748864886203710942542384634389287348614827386399585282868683575896924615618830667765167191181075102019110046022000634646357778038448893860579410466989028889020652881474026741869371688529737111650194835344202434731066242712090861813578701809019047156966076094795990824621031338658008958226341945909854261785432334436321053879555305883912117410639995237491070806746423619523504761816146030463847074742495348857013438921139943269993219695163369575928528327409897180601418065740225031138307050886801917250801526505792684532852659151659028864780126372840170983925679968349038069666335301832098908655211906100271925687530974970800851501643367740990150640626155316254106100385357322275328103906151009299540524473375614623240029738177195458272573629167833581182155753009795362489739234386941934482684805123133194469475707089824207827805950322241754273555428839338100125880094658234964067614155236285101333818415716039690942519533958896677084326227489549794728917142806883064358725918210408010204662980764603481594564085321161173499771013475811247791501671148336272035607811567299958387918971180926100380931264326145945986581330825556856815517888874363882098587802614407294101238661648883739072704036513798546774371350413299663518948064317659795808923951241124247025791160515549369921253296515885268418297197769812541662723832676546294580084512201161567340397467102827388526426300162459277717336921784795701459998857361209785705842009902530946155358969324466536818300290534896845524617369979911507471450686777533678716580681296186566253796026105162660418359228930630294229476194224199245777910094175354746081081970802706992357555048015377515039676548297581330748377908569572610623189488007954874962747583498600795802855530116522929077719764335782610994421381956594833831248734441629989693593784499489093539961516695041841963503128633552361554135633041363396754179582810308139544545458715659776531143244801220071902989046661987731243886019924546353002873262850296100353067523608944147080758678626413174098519962931491113247998342784440309981069739528142958289396334042263283772050171774639699570278351886429321585558113743380273341095817333719009269080117522608570521311758660723303592362487555619543708923326582058821059165524381921094957553555194674372992846554680749394091821076728034421363457798628169778561643867245257161648741478308694084455647923235834685040880775784458560545885556745188126747267531669871954953288590842512007999794094705885086266702884416892345694886850398117977167181718151325821223901490792759967888292791522464033823558997014032703960699276899825139719947783778563659088932388977477697388046636340767303186488565955653844511364347299476574757356099528107008550710286650897260343904539695755603700973410498992507349817662843670454045752693690144715815492363362578873161614688455367914999031934424839201667194365893977765194704661810770867983573272723869864246654251279931847315674227068621158810146062022844245764987542300621713417590002502280552055518353235618692085130093726423780330075248325137966448010146480081799265608661846801907111399182118302210718836773971501107768391523274072251399134415733613332318744081103126174094163202735523903155648627350922116949464432004221670643357183911317915988701603426301782772509860542631999579734958880837447614267204521168565116419430167578017703531933673256917131074153135587922622127991724102068661345831404516164740712252562698799592694739054709924925025843561291633631293015863255947998694688427791083706938161103896043285719795675199051496904293691669168988609972415940984214816908505860221471101979986124571085467056008048942216793154778404881067534448671499715520544067411851530159607335615797500647450805601543957813458104465635364135214979172679974893446115995334538691251693726208527969901522150660280579201238804764595884019560771776899441533475958318405912418561481754480928211620056142819974810974443832388907830372604955551825118096966308308841431420367615569351238330789301003485072332074396518669982665292582057235675686596299113606193582768275863325261990637270993691401534965964017539007558487350629993466391098945708134553381528672079225135306544559256586066453123479459087958978600675752293562058404946346997833523447071939338823024423511001679359207761058916316248816859735639582234486167278304615072327677366252785654985798734373860665060849629754901056142898102485702535754203110240326226852117560144599436568582444655407653442444778321743936206701371627177447007666100707957530874961957560675173827848418684477036408965682686157247214850180989049246538129536588209754680424938092548018774417615370251688742360982384892926380787937909397668600868440224925909826394805972913754720751861610647222137358572193459094330652953317078224726609651245851181370466742860039434793183388557495613704118164202594578268788326506560583900945515312704285600351742990005364863510132001977679147908608304605553853050085541159461708281768828231762244169739269341108125380166357057727704955156193709374685098158265644062936399810230048639475134125706818817174027108258670272741799060442621988305528431596385477725476403283002475294531181760108691004869829961311053146241341003895590896118978627788634165168391122581668872423791651923102756080493045186532283348555348983989909770269060320940629162041864173863340238146221432329717656912919516436291976212266381139273806789231934830179608127165231253306260390308804889186317476883357046024051182154885722625001189496284361113491780580209446285539058197618988144015450920375633342683353043171782521329926004798776365329731769529357310987735667113947672387359636112863765368621961984695251991810902298273952381501474079282878178912335832523194465614486016166336458919028634032514787273284200229584982241480349514612364641437585128859840421099244194580631173927243461549543023495536741017360012542941885893138518458001018724891447303228274309967704905200288293133008712275724366902359174041757743915172143161571626985024304636860707872841274748168331516512717721227794661763660187960731911858796103216217105978356937738740378111955087020862365000661651495669901453535705918811301499633864906601307203706419538420115428285291848054684373943414607208477296170178894257239827073974221904910241391311710778027288776545931073988143182083820358246325634149917379211374601113975646356688060139872408943325218324598045478668649021882945143827319922471104154669997795625933667078131713051817945772601316874753705619640801414358639721931232951256665102979768330507396991538994020156683873023463249907145977276178764710207381670255199951819788251548006972816562594130235264568352677107527480514260523727238742268775196833090172423749060940179307226526989162750463019477744772449518066662336330846215572955645804921050711416390503804779868707197897931937447180113621475878501236286535162911627337867579243729131143270990627582499937778194143867682904470718316897411524126137857667236357135704236730763289621052161543650523707108538621898540692989577087828395571248177385118742062896367987992903471959841331052290392252175416487893437658800515966797151141313790532128838276889276596929879468843555438103344640294201696716922888029732172293373202808345597708966345942446383770186603076531416052066765963665555868386080916763022919862339327728043026107005594928352645605084732356654520274596135072502939371800988561906767888318871514684689176129926970616241999672109097690015599834958731005821562766345711940927182731606539872610956495823526151245906943028368345338743536585587098623155397464647661165999783272757473481226332767871680276306782734112440978387019814311873393270145593759999016616484627112941103050278793213291812362438181512970871223934757700829389942906085915554257148758732385538970915386229734728593705767595123020985649172861849321349329810057637423605738361300708387216978253642231544845451395625655052667706646691795443141435972267647758039753794173317352230221577290898882961479397650962383413214841409240197405713091819331903150702974830904164979944853809128610604244310633224521019796615423565154015307379427116426831203431677011474939966607539945762910154894896866221997096487707876104790558652657537129621274557688925159184687190714363363504211936682900478873451685753626999599722886954068118312699313990311717290004632231466577512016180575110149720752536256880893736888326736746189199517536019362386506674900483321416637659208341690827527710201145171540377423552596849285603286247385149295470351848748594844553350403093038309980256784769685120327337266163677784488416032361606558309200159244202331064719007005208275003154775969271138891049853896817655652341051063171407197463818884642505368166512661793857080506673410451228281387941050776920022068503644750234714845464978151997045708143894905851972706331207747127108680319819946338847923393962802082751921968444080082777920705843768020524511779416024797978506612136843664451061166565952340118906427085885298976025868908088371136899280071444361230042181352620689147903275270793239938994104459679693296961999531793487616801633360833826875025111859037086633039209226013856316855224587956199862983111494870964678062211963278533978984167843890313185974190093681928875302217226898706598224097511000203754882032809820638639639200613401604607767582500858131016208010889280858444779024540202680039414198731402732079615907364718107504521096491656970890937779763731517764287625293154675272447683691236341576230598791701537566241641306494418384742225698190804490093959458588987422000774164736476561273916858212624688371813988307940663185268505638001976922899208178928884840837025693636421539031004631182601768643280312245028557321831473426505817553879438143574611144265315169642221762594139187011535976863195596084318095266420279633442122241970181227431067744527310363645727528354202866238979653593245965979765560030406608171909588997242306106338142905319070402441104394024289645897043807330304317474127063273597136980863079290836124508061391531257801454711123998902452585568030556871978975608913387815141323301014747757237132635187330549261539123594479179637223076034657402256659571786970432952971032395774208672625748441278185825805089600647408020263483162689020952010110246542032886217128376621611015895066433869363096105905705603295942045746572517709021284917729440861321110341512840687161844670805508516798341215979840642896319933695725475235508640775958173223487842701267691421026926581590253955239543492889086155388031449250759054211973160086056744740083448835747058627475265420580210683696225282229103765740592505333931725981716159497770716113086932399533138448537353090338086189335088603922177484422519108093510983211645908350090187449074054861352861050065958234022410135573942514942444736473586936488892476780674568976050869747339676986304446043158435048260541401303092729283347528125104309834553389658450754059754339046066238179287225901702091487071805870479987699508903956166049995999763696119338192076747920404795764383465739333451984383419386278026648549601361718804351595696567892039974646894947360627303912094255300722082909656658153387484573677150405951567119200162078991454716905024330363486666412567975362100229001974566488475625292025948174474760823091694897991392896327232473311548243063082250671307888877391515529363061532265222499285577698132425756346721710684120069884532156678013426394419009984212601071978070742949509326148293643104820853831416572184203631471266830793914528286028708638916883328124609198849464818688302556439910428821244801133785683550020397632657312645063899017630521499123284839360486345093571401385363347607861052122164921304194691658420692874576756429557167858206369075814584644529714404771114596792170579417547428740119574969665340673297703236856138705205098364735814917333308764891777282662286373719189406219981877553540981534687122436901175746152496728530311926114394797505312588465233065135444836047136980243469433498448566191392884296657372899243711799010365325269950949691502689755707673102430629078273907390967642508196569362566427146813035982921905039903620561655770772383709100611867999885772633385755550475541389948823278355461535763975979170311325374985761146694060815355279190203743086346230879617871562229117544006326088177633794045752413384054456640627132103197707396704988606671157770394302819399747957879024763921716038644858766394160288221051674492983333308885002580955140480824509838313398913489643458206533173164674725787169000758408197078814975818082784476096337814430367238735985788932628576523315757257091672265253774004189905132198537272941313713166758741075762795066628398295123028782989769844133381328962840980418202757225181721121905900541835311117357120691144712186295150331733007359454694733882585889502821243626428642828586617549801926521590182947521847938286089123026377846069537179956053426043209078431579800928495094445651628776695143589605629779927876637329904774690553326764627456641709362270162597209198471217475464322958364820171388459011633336613569857149499392199776985534926878246463540287810402771195785874332446149398739780609957206838863554273178365058499641733954282377686412439307069781634869088190992586452323206351171116462138459209782013898820486169754173916142222675608133912481470603997766313743051028431655131469347473709230016640674271086393429164075338313952703594094352772235716869527780570770836377721947489403376847309719625166178632056422025113761543426252240429301696998014179405031190167200807102671678180444551123009595569301962386320077668232876790836709622930785552272736809544270138367848076998950742698073004967731900897355568511433175040967662499380517146549972973725944358419062941905696911830360671471964956093515817418831395890530104317520726167391597315847436207420953351143640051139561353002744287054785420629458746573660072845556462798171239741788242718955955602879066531962647321758390689726534488158345760970998539342503845148584278903486581852857163844081144897960615300049162250540912745096436268848697616850234393046643979849583387088071668901533107002544584435387749804251268273084280755366186519043532748226627725298522803769804784607085800039153065096049344010902264004875084400676156356702930814155203423005658910707408464495118538069439434796680691321915725718364324137385003099268211277854063334399531413419951580271920253962677409687895407745382930500983211115888115231869216647912203919597573159127317033932128259855825165032644887228515015015475809420923305767559357801547158199742923112928425871113033949648643375512488148184084842897595937542668690010142712802409027653254350406841014471765042465833077365699066715438683235402397519941166499020007767756721926127120442560645106307857684840760970826479862848565295232778512148810717881075831268762674048444916782350795460287176152877320327719007409357851573336269257543520812442932673008809499173992260094522642728101886443303638690055368704717032866157830156289576999366560500435079826340336832373768391589342162710980314231053087944145674706617357264322405797983817456446519412282172932035762126415182140987128008318890992639879370528019076923657811224044219617966775127469411396849815424894471035460566354058135325679483721550893190916371672254881322231663523996810880835771908418819303838978224366756266670860905996565246028319722395348367644347352217800862344860765566121679999951451438132468788973917359399121813628279396281207969501879081465270569113824657390897092491361315258005501911088914294724094246075144457328184459886709969969986086538032324720603657396164028850944516118368792033041374338006140199063959954269626781837187473680040027345381087263575663715309911243029533015360531482528631957272968302797574732579957688859123009851154762779850720319840546291761044711258240813143065670745454080270586496676230566428955590837187890597235633782578744489453024630803215670800739212102993336433276828972831296089348821225504807584057392488000102263423944269745317294312152220733178692825607905290820975418973229675930116718731687135758823254736237963393914296646946399428178955003881478338303815730528261514262149348453296279170800742664121473363352343634389640674932936079905196611124459687200610725199383762515510678047988834145020015999834635718704147926127605767218142469979075102222010069215971597243279801428375270130912824897571788467738923273893573117322606874186272544524492117747793527020494139742512400240456982134492730919346096636139884558197815666604695431878802035372586402372335374856409332111715163047373684750487686434235006295017880114826910470282222246213307074434686538209478437066490831201072265816956414867715870020726426992844036228956983099651882993647635264084279022614000894816628690363741533358657719736706212721359115939905078727218582791960312051111170587378377685681767370642093331650360006518453520765403925845942792976387313350337255535792848406837087859090628256948482346427209672977284793792322238112053890513859804767072318269289600142364738555457748250803704105376757881575298922017099790588641875713088419456369469016773048374817577287951938838550795392479875995841646957825427004836703827261026705396256784138768732393432163417527971392334303025684765504339731979553237995455646718330524958373949048788917326359419077044799967277951840542587536647158035286812319560715490205088736954092175935606054224479683306058359801572405446176343021531880394478571615778697737383441049800404821111044077416886144720384337595544077810038362481675406712293254277244800795939126570340561548694100325805933852844624022767920265299356817998301139215566358607325023226417406327161727434751600957833014471736371827515689240945866855723172830832768168002185837348695242980981918573218819836379268866671958863256984898393789548648969556777173678645850893264247777241838570329920792368629187282190672364200776573399074601740357676830504001336122723841937910259451089832267038318308645816424221777657959438434449250833519321987482945064918962775382027602614849212163852058630050182543567455041982794495331177730208476095325655503116811541624708840062239354781469778386995547600496293111894565301577728182500236986792857772532094470073685026358232390261927339739655916359754440722389441828740882372605513631410979920721785890581719103161365631774183130911758578236711712041176412474620610786546281888817785773971859001233250635187571767764673172890567734260463623173538958118970916873886021754650838857858700547859886627739576436075077777873993760884790995540886988590476462903643587639085540040784153298572757228543201131720165962231320866482532851434503939033848762635153730436292924941132045258818514710358812118457395039881022308366350893493070668442101519823513653840064537724019395488976421410142947223828467168687092070853818021970051161111082228925785635533332026746901578621815812777575179249382773812111905467916859232659439485146635223929603121155022127403069728380628927956525618833283253132360946592037460043856717272852065969178666276387876204427062245736176365499079109408964247118741918981227131600499710486255704049041732112047850652961002518543082955231386623384069584310812761057075001313589425627064760398932968318353922790124217713387969630204794633003539286053067967791549576125191886816012760631051301458569363077382771402593275831438720970492042202583514173316870265255890298807564076901636903816963288265154020749063914340714818606821494154054097755274607174760106892368412086502739115366322048896496745064409009054860208299523627587876487948205336536137481239445800151207971435911942418095104452364200763638632107672571299589466010248955123960742777022661806472287258923869347605327054752869552444054694219438950958160523764011120503864023946740975094737670764073672262300436126262406977912166563481788747817134400792599888844291444530899686421863375333240431515080210374364797102019598715003781353887480007769367037397185122392818417699552625642755071200364426993976541075363405580959039549616556299293126183742308966430172863383058906755324070385991004569845865564923518293955878901110230323525307453749320419238654196286993541941556307169413473816362121689632048346151753761907289208609016648953101083769686055852181878912387438515776478116497871573602390322231199938527422079972506561759570832558781278198816420199816677704650707444036804564905873134531907664394306063174984951911181980008719844902046511512549112119460397961032598937499302242457127497459309963486328005031406979020163580708101116298475339859851306843953608917688592225063874210556351946162646771214512460400205767960612674725327159953618265005053831504909294860678593099523409945531024261636621592205126723583965857767853521936965839956065351527728754573385971052059555411682073606977763819156435698178884381920396624384225151935813714639292661077134845577815671012347678895980312649601786208730301172114750557632087017676860162394274844118495627563875379211284650475973565741335126916450793008332413173769455878354777833076439059273994959779430704282207599545497261591070399732028324852523286629123136459623592147553023878693339034455170299631894106553209352765260228214134657224199368461733162143508747943130364763954069437985484715541603085179395261964209706781172487919180640798498715305790917865134436443047405958350506249682705617508472845448958422021540311943525457143456246151067776507670704210749547614244328741497159885231378985139383156379224799344932368617432811412627662975928199400355586406633875314081913291957524664905326711025375052151504644331951093009604191433762439072606971349311471982346940289466796634742645972431262076243621149377043671940744326891638362991451840221696971324988961986988098709290569082128432194559782065662285484623935130479679563795621779542136823904547139541309580782096457397856079757603446381777921598515603786918755730453145884569031904066369895188908170218717497733335689551162963743410298810671131882872399534382271642057596044620787505872400064233956828126184121332873047575180903859132138995927721275174799861979008787459055069475938820718971094725292769343009954293067223470812685364999030421890549486261766323618480501240363050854590941930923736111102558723751223032226789431849632920305661602287558088039437745330762193466647231062959185352977106360249588476323413831123663423851398385056807091413837309238450404467801681732523674272147345770088103328672423506499723150434667815202516360858458529700586562536366183687199186051432364578620967607964574273382510848881294752459250614991225462898089722868860412928778302891821563027351491678756425546286798866552045791451419027651271017580536467461474026653042075079478932768904796076715918238815181794139521135036918313194796173253281724175197363656496142258609904994210534075077707906879476418502900432622902268235146047537089013807877437247762326266152940743391299984061433621089413987288018503668347534834834653266919992802280096255873723060359376156723523706478627288482259654469117662081595253700036326935016766493693257318560314898733673506257442814954433848877734198221899391785205151928320196205178116911742115195018910230840334316896378517610788703999996938589599679124344337993358193642224607979838345265901270209397255390076646783678129390236141769134946053471912997005184439748752927732921959163966437522227455410861457339049925176868157327261654631845412437161864364116576246119740502266646900006456366570816588929647508719870793952092267592970520242667557151624703079714573342440404015188105148644538091691054123912130335728768910836345875935010711798821186680829172577127557926021760781128043051003991682798798039405640791822918657749700196989975254680646517492764644225769586095138743551302480031305480595249903339223534132580464847398770664931617773348703995333738353991138087611084981196365403174836130030834461214679522947303912510493270280060538329139911046216255461735648782888864161354174509513205988299966192888612782624326607199703365455582132356546444931811428403804852929663070741806767292129754393462988199924904965198800468280700222277105455116422870119700070407929755956037528108010154953744275864846422987677286811001791538258231678538277786458553785303704069030403631388542596943704400369888245479741914103680257999079315520646057341408265939029461161636552514626897452207010906244847746963438065103945128736739176642363717341795360385951057084765529095745366078161637178666963377735538819797474482755030050738406958856859107519966229048822828905353775351627508685786924055360158385012252952175616477957418558431999454857641264730760182744310525044163651757418437581224863300086531435148627241430802826518437409493652549912932796279176882350094733011281799262011217674317276526537938086904118654613460217983971253210918919216091031993358255440026244194285773892879919908762425616407624578613848579126395891927299742466451785389377952242419767203656535034268654906279165626460528853701618805066304278751828279100785460901822283140045347467912605080550068403148622688572795800545117020086402102713141251270633496242381195246231929527029371256367235916387301641292649016919994936787712470677146351900743145848971770102515197145073242466782893391764888688299930276847640279654602178020944922479017264478245561574638584242168818398039500385448757629858496033821659482599677969876433410795324246578026917599715158121689796855738731751422479794269938251135507751502601624162603781901304667313775944156903263299671847999957125676660041615281494094796311995195940359054609003531021219196082944062273657861160333438079229916729928966113951706064943330572510067043143396665767146171477293526732033454362629191291646312200680306234178586525956349396643286927608548066268263386835041572738332413334057625911866722228062002124331131161147251234158202267429438540945491209642465635328812026360500582257893298425506400230210210323308724264080582567610759180346152158166273277077678526839641281529718290186452034564741394683810393643894959708226899786975468457126630664777159241844279689181315094114476623146546944499261075614036189537235595632785208090903013169760238512197003033921900755745174396091308930707233794069605828945088317681695594070781756969135788247834240411771460243372146414657400209119428192981584390171323785251996519753496964274824892652754229777619316114582315375618075537553622779732581488685800090150356333465641141002679234561857830353516727666190700346901968478345511828414216821835929628780086977014143868318308555170870494812650469572392375681833021379937645805252974891174807432524734847741857752421024945482214262699697971493987147517474658494311735986920202776885151296802476413849292149454330999204379974166323098567219878869750793613935081279611954074300048938345749298321202691436217843506238529459660125891374220216631422891637362858821984983152802312389484543107910494164579326967684576729095510788922396273395370717358807426286786252331340172310884768013990997144317192090021954794112605608554346812135276640218215905510697570285476476173006579170139629514827199957445786915255292136965657894809097319796071188459737094670002286930351043208708627615974751418890011944409325254109205508737026545839089477370504572538098660874591083527271413901479291912946761691410802936980470054005977661680888990122036332531617673287984018108540866720983793517104845131764872178636600891304397005130408067437959454700248680222348473763662711398516371573058547012639483706845764690262204007653397938246447062519231708207124904240983824008960743564296707631146215039907511019014175688523899212280197371642613812969887087578611057797016850474182897769969251241527838783405461683605360093748105900792155869733385026515998057529970485810939630224002663737798720303126855095004385681448825498254267487278802731304537385415136578675236877988540116675051268481032138636581301461327174021949421008089791129158533295318565617105277505024788210707540565071146375089847459865150182198771260564979263961271212799111245728953991340457395369747409081448740231183640190990913493112195189187425698172812873865796623695297507383082226966822072760271563837931156523742449855418700457935935472307300761354757201497438908539256733525012144835253530618825537396589626209110336645511859614949792063619875602860636081330141645572294575461628799311537908639612009252118065413300615889244825313077331915957966524606655449165651092680901305059056432211304298524137755191804469413681397668390245460241203333884036332015781490142248684238477975422408446811779228967604146283515215605283836416248752767152486859242747936169803391697655281643072013724515559320544944514118766419669130011218717954560497944067372410662343383774063137041530286391922732923806201084158409408966764000768877716687935631848898650052103432177734034480198017325061980435556164197787473827474295568324896287646442246589747012021463829635810324212671978033607266144332526456695874557352314780170143659260225942843002133030176270112087758483924255894144871831286449625566446549708213327378514751199627731251235412082723814408428786161543875869686111042381538997230112220525909456319233017740877421383430644388848858987522733554693106747685445504194543338721100387885232673299145236253087368917675997861529872756005074010631670790441396392128948917701020656035315131791427141971217560242905609170607868384555231890206607599200016206163105875010035445433815246417942128069100581581699596901479999992279598155438861562838137724370815249135619700121738204464969320832759025011687011875820563367499563787514448437308780960376025331008821509246775353825310104746469931072648321990007026873585901976915448402404130464187686600931183179222797197068183991858116971311187913124605248382915372570181989999600118063840292588650738551051277023558413439677459675861137908929824017704183811589504404667112480301534533023573938378676611278204391773801186847513621436571598021445385916364388575424703871903025092838908057409855532125319947195442583845163388001075570105841421283787504305161842437116487979859284032182948855244966529944638026877355185592953228765178109403277497695556845924614575705442556344320163774175760555482512792243100632731354056821151732922832777894621953620634885111359212425958540027693839382586545040746760550622897117881995229431341544426233876361699878957788078995051932704755812536930548032768646222016328838513362476892146757672877783502452400077398174603699266311810446367822282648376648726561211772540001549991063372645827855140138425395244386294992806219885180685868949557624824739556714178818928418276563862748394014594619936545433968484600088158907171728885196422918693458232269978527859371532734379188171610897214552754326351516755109221632884621494487026304860378107328020638980656770253959661099779217326205826131959136798027131805912692010110567979331017242587861502095672124950618677634253984077579594787995122400446758381601548947945221146800840046754431395494000921421436644404928986327651848337654688390507414310877888662515842019976965882564786708271685991403790984164162112159090325701695039481087782390857220676740839842271576907347960805436329345148843093876540583947522664583092354435642147411085372693715417237940143470806108688225793762359548846945568178665233812187672989228482742573024778907450261525440806507659279997305293261323279748564193365743816900781701276351271518740820274815270357948745190211225390953567893011330105444900150965696875295438118781048749702195219878521701379943476657100203976804098416718446692580322567757912681413618252183214187319154944716856628130024599871758424211390051611992729952808358895972348612155149421405116742041362545582853285690829925551103429777777121723289238426400752911194098655496023571574830926832490707234005021191372970638599582740255021588397322051565544768379850956338972568945988444934672954501523150013599123513053863805828467832942313282025169988254634351743301013926721624579780383158076735686650897223397025364844074062140470316071160430077615971996656554559162620423101372376152552580964690999717887135816416344167386580789049801297839074612148040814299815824158121267380698072902288190744675167194785576722670480811406900900907313302080964926970430891976265735567404436283214832794853730820369311137414254646167084217658409852409068018049165210916147000806328054249738103433028443352568674452053437014793637324220411906187052974447307821924448638279993534717877114354016901941880048022860590736136742323361506713555552077731688258435802308736295433441486832965469687137510636159856872235267472555666578953311549621239443673037795492480789935816666243867396173009802335277554769248177851846136241540240299825494987317355749315544482587864061973094349363194198180563374126414908685739023861598013453857626304127236425606132975661518431865496486480511074098824949215682107880845043962370854463826052164586926366380124053868322525300075709864532275374631542954748262205284395730110773353991161297893182492356423347106843006373838967690462140800932731409845843903613621921386345445798260468497275680424856775187938067421425290495561651351474617553935916983956161962822587430757388864505181324922620134817151917002385827336724043867421730922892762363644777834824903028119928465882348106735269613575205694498237953015844605983213879236635421556421179543207163138581112211186710097498950995327754693231588854786781601982106708969656196076266060892890342421011243356286069479620451709717876380595355566257520489180103500578188510558951730461616872801104349031261461330785032474316427269058460271420369263383998188830010479464189262184153510400644549416697940891423797704290023039261354164506859862828549550606982756172671443855944469312636936780596785834575716154423058250711806287940924525393578094153017161831484073330379104571645960846456643703525412480822581883253592116564985036470768954071130445467820654116476713027386893808132958092069331177351460191369068454162515672097766702578880806694127037026868401653066418085426944045379106081742682279038711876019906785537240586239471846319128497559296327098636506891534639976406250859506899627267192227206288263426956726845226653740920584994408122861342157541219212419194896487898569647935795719455775195629053668409414033067730265617436504754591526194948127648333532462355537172098489680747390052806503655879458437590552949120870269653272780428096321877366024517947731244457606656565210845189708800786352088162361669721858913450501689666930621348647492743574658896555607636641116654433489210647043918945326216000233982485540791513135091227341601483030428031761830226676457299053418491493667563950480135489196206259632663602352169003757915293987505729189286333064013260301475142162790351199723506015521008546716930443442012831120815698859967656951607227617879757960156320844496213874925269871439551044145386298890782917125084157924245821525397506085341249057102355793910041454237427802775010332622451285224255303647619759056063840747963185907200709274959629143390367024283725020082649123442010834348598060062474698081324606908596943638758711422487876390762563264478811226856694109671229944339923170495029166668733887058120045381090762415153985360996942165772360489702135049771936900834421113164298318572904377659290540068495108915367832067111570497141930430631574385395318902044227643401253898202783205768675841150180003231728591518725905740157846892674363142197918348261857074653531392581554570094807112289939344415866849307348521778369700657286453066902013639238961267555899802617534200064817770137845288002888451810887355661180645054380602337199941186114909444077889285920332837794858827726759074458472732169324998044534856346490679279576418159627890782566380790930066570609748937708218880863450312204026225015913114951019947824863771161279139328989016581470875342436121859284931608713479388399905807840126216331883518698357307466481851419495399537800167868452138683789290948452016568026430938116781180717351435331225920302083142185997027718600082709522270947500987170485186822899467778026357339206051513026718989786083010876923883841230265524078494657125901852350086156732449172027270253535478883207347508515402191834349443885603920282174068647747952246902235401965333510270403845884802184404024947515220141392749634845636009412738315461059521455097078974505912622030753547779842023432289488789659948464076104776605283448270391945599714655825333141497477206425649920982855696739068031526033030845444978468083918526973705485455605124174237539088771246114399427629057290922645767682311088462515397550713386961125494672755320047535607558430417401471411044535504588829386943829066784450747981136981872832592408810036445252291350012502573183137006107815123531421987237849308162236658170063464972391268136969509506868061287143466627373632487752585089046783483305854188567529196447221490020632130823052292169132704042521816857700586323029809923065939161254967940582297752252903180038386938952090321984318696562790938465896435084177702030595518836880521253848194659473258671599007788260342833861574569608223315798546471874018806180587458219826693032400285545808588267914459972828397864952729994536482047438019840799663713223344891395347076572067839107255379988582185839236998152438991234082762161334874723345614999637323407952961162759497409903830513647284642351293686437355879394470488042397178481015956890209961423553060090479448215622702922716978741936077550525866912225494486674778315148418094724016955605548879984479783984217205219944804054361796820675211392719530446934593092236630632249038510171050623989068088355976138270559064445606266089622773425516203848649676484085147104129520784483464664775688375410696470839282767766805994496897348121499311324163876916347765337134272858045287160311885060491421156558635318365828745807280736477634921277867206546914836955581333899576384083128068839855488804610359162012845750883697015937500854599472976323252469848729822358368178312702029224429675430955714867116077428902107821706838677616239653080929164791108241999678660133738842169466906839679496828820650538302426614862507740200666663667829690843453706355538476438740467716820104392201806081791124456669121440889245512866546964506603242806232617611128042238294551454190859280346602672088971684443989833898457215673353145523083467863066212352166886668960758464140394291980044972970450709409689794380797731578449330420116924626603329893566519068381902813452356760572595113430829526351339856725748377266420437648021929304399608073941469805390084607839549164618254129496138408187193632586610669183749751536679651807479668341161696378789388404108427619662597420506384380268571381398456515633931812628607422748027328901980470728285099454316525531010635791240617227064316754794396851956431950280501423446276939311119654272550718231935521590937225678767789756285510449863280697297226703129642731171961506481223642840958573341340533924543166317100035124506606595583865148000646634262477506406511700898112666229890927711677516995939221929932583273062083409961041629816835290001825108792327898196538119501298990637366376864512544431045706206554634232797668392939758537911473521071392427862670719861510794059571524074004108963401764148631866790948239719433976088436999119856499512820839694232913399683064872690444121407115963838867678619938134952604200148996430569654010631731619694132515961963094684998947796739012886255734666645571964774265140276202987247627898315369200560199589041939761876872979738986609635625510969791764733037249266675129980913261677012484934231297588887018358163987470949095485858718948816828379552641965140718558320864862939257403993524057088573037335507198265823655037215560550783199667121376198379269388995137937685793408716590044628034454436644226451243293738019527369657792577527983922865520352064354667191822147359336483163881616725169374159351302546464189020169257520893340625971485454234600609935796881309654196440421998354438474039972775982579938636232103166186721206707197313832468117152495107755922782047564099662854166015841680490244556897362585934309038877716905917465107588347393149434302647505101007483163469593243128780146025253379275537385653154860351265999595996642683698415228528582454508413267633079473868793603291882886183055360894535068786222585571386477370227034886641373672299209170855664204385601460270350999608959930788729164189652159657006432959593036296105299175446316578910902568162102708135054864042268973569724093291471913583837957303979275922507886978992786124283197951716739201874608339413210926450825523703114761190920715637801348871616991160665297131005971355448508234428417868312803504428690577543897559207581990176745878014885990373024173501795395876927997029819085925391005688113106237400146133628300207134776695551459393267758015354554107132306556246622900739236292961590775498153604312623979980741930796010125870013511928015602497247140535824251364657778568681782747649099714689797133787997717074419214476989765996988692430822761780159439001378557972561371861913624085069672625793100893572127566055483756527215208486619241697756090400176417014004776980015861650141270940015730694524415517028132141491099458317334217261666135303346076095156573922329549314413982999749615539914498198148204063332979388111007246656177122480871289661931192297029022563542106841481630861788853068971740429087889180752717058566968331168181155703766903553550037918335407100903243627793868412280358963096962884766597616836141236540182114891615416956693365950477266673402680943487094694560055972943450756548364099535821172745757642537732661914389080028117030921348488935640900171325430597722875210222758659014253574671571023961183510882240922116612039841941174434321233255407422413264503011938499374462789716574078954116617550881941829715942033512243230605130579175722339705872715796951440347650077415332234076709019045482981839015731216016572649766903652408169673684257241045895027189854221348132501830818219888804324299941843283585844139128632748149032314642412406166502515974677692925561721013529573114675371760386918788616977816817224475886475575268479816498425822577143859002269778573599020171704181381661419738797779908034098312277443529223410862465047749570023721595313727772027134522254608104873729492137677798972952039363570229808133680645159327776404593088200451323694700959418605487720176412251113358107198510167593242438024334691886467343451350488494117668404763439524581698577817257603727781662937221256618804963729612290438859616130211346182224185564205603632409228053005328475353488578575495507144483090949917756876865607024879587591732483092689413551856560759948055341474955461475366040313722886113399011977233128523561630509985502592160331659999912491723376756115998031590785230289383971339385846662077037073745174962872154891363662733057710791725161320183003675754154527382777463478243294806503571100661118751392626855398559976617032913750066207867044124315842950054944473619591461844189536750639705021930750604551464408322545537479280029294338007963351424261620694654869503501735918045435840298007498224221114685613376189708879025375206061751948643265653553517126337836624512114318069733351430475427318820300142781935389293791491609224141013120700889202990801392357508106007442582310358325875751442218484618204881147320660302671936913804641652756404147563008211230766970818258727589908535372827259243846173729464801989902740842035422703576120546172569704320422704995303263599166225006427680135515597978452662614804532404496963364629439437107419247598786458099791320959913214531224006887688009756842250310088753705431886670688854087720086932727874706985476683856493017355981011557981581875304888271251962018797094547967005631543794693618618939027447118485943950086342989771577579642709944307541825422668471870814560202025557485065372636389053690900441799012770281303382618214296471438540136712446972663801809154217030747048913210960998152218451414605257247314389502180351828356099847235642496777293106579053876298262006230996351674160076269031664441885856741704144487656423084310420563601548292425929733845807537095578787129642959290297727216784546133113847059899415709886940470531243270697753735176576732599436006087987077441323769536063343736829214536690408395198196851200618767905292170531237850750400094968145668225123713015958574135777721718848649662407073583477274694803396857325640241294252285113637409481625646798140573252416155401327976700677850321669123453891861294075829605254921254091585571148994395631089090393514407310258650474377532347243791042957998686129048484120285739586882417389750111646950601549308633677104436375978067058016850608348272831998044827482996914023945624438872621120760442269193332491831515613738104753697001514506775718147720379141203615843754722542791710317763905204333427978274261297294145447606233779126324013446599317990059307955664397564108642341165286813197524526755741497979265445641023106835432349785321705527543337340157137637236932519510911880000902056927612766427497705564387837823166155114251634343793262686757935978273224438659167361686662150928358431170162481273340794211075663012666875960600489537783081224393276534545450034304298101761437077630265595040194994887464728008857159527501026891821872230620483763578161632794719619888521805945818208931637272747755196136395210648032098065567341293996240789142876225929723119403109161070683048267462836242471058265255410985676211117346152434519839347002715254754578907729531398230298644330559484832367363945713059084400291712849368273114888354734083856317701079269072061513088815647888055852352084222023799721534753362594778208954517925122944990817068553646184299076503279731849849485714664686446562978585015851666179898701516619745712342170856418827981801498488268873880048515884803360732037541686082541624655183797060351308467894682094916959622685871988770388939480541595852397161787203942416713385474614030272894077645311049800152932565056918769557232430073622353480412331317482424201995028476140929645241795611192394332796519768375946663269618864774441498165847653579838630377681925425312361281640201544494569814484733784832882977178898981481190233359855366640558406221512464496844042229693939447917601634173917139848917658223336711042636493457106166134332632239255896212479882777469816233585339298730357944557410293582217263000585395079473992175749664067307635973316420127737996724894696286500271326764445681254427121137686751912126363102159370041500602639041571629022299092501149894974127565284238856938469760761583521019025673009214915258566685606663204335675377072264757685078783522797212276908676296467236104207067021027175538561334245530471777627449467076019276031230721283957047209644871537553106815738831356880107285298481686311414208088608448049892777925142501184196016733816452319441898892533872017177416197059754931851075435215266677956760002395509332264649975147464943674131167213191930554067256301893853713731779959480710936345998021478969192405709291803584834785952195854497371216237964701738529655937054852589122660226749380442888529963468170551438754304884032380701619588090608073801139829063290014127759023132756379130411463290270735121050074559959632925963923051869091249431687559602098243505246332918951131893906845898740886947973747824809628634647554410500391509269428716655450187082540295250637257862703075649783773522150008372464082689657343895015548291553861943952213051780695994981717605787020327882799250135650408475996430983821071401546738834032863778134944495900068936120197520807702979262845382948739590370004634409785658973804693131656660956078224498480018551086591758622497176757893619940697899548251833732150275225790011849264891675998240876301032379510545878704552084196596960980438495168046441541868325360705538693223019186432707551224445444384814668079441831530684113405644009335705805490418253035443287310231996426554970933720424735324628368831024395508826249453918314241379083605569556540018742730905897573642485600059605551914214449980182882321788466294139318977163958406669146949023294748697913475836822676617741070733248067218965526917617858093007420533258491496223273472301784613126506730900935972232113127594655873329287790947607019813011749208614027490349943109229072193629494933752489197675345909205602688195188074964093300338611546920305566491436676464331165221442870177758631354614847969893756786140387899636191494882235017767862911525899932240046156930905211742965427479467220699428286339640150692225316433526368737557343379056550303336402338196113257457535687920246079828977063328038815955110627280387190170719365443169201597255958776640312592535573890726818553737180533484141210409732221291552412406463117257483511883467737782020952919335716150102541032214200282119797170113402567126368215943124485244316837500618684720119632551631399745194116363953427201525291414039368788232848435683757156851283200398273503721837550283999434080650696116791775468512012363868684045714434995669480552052794156817541968884520264987252861252286366726636876852410438090106399478117285336835489190902239851737557236920175347789728741908752889972703983842293763253236547024505812067742733104796050613398051907040473391531770704571908264880682916308741954064866473763245590138340951805325324399428088589538857750611751774549352948588120011228616411496449998734557818633392549379595437737043649486956604783968976314066188179248511035373585266310307071663995742996294857838865647993080053843451976161346126258443409233947373394224417917613589854507282518614464941183985217905555455266084404390106978910278146619486112703919131035844258225173393199576585837623175040692404078427495133089865115840794019640887260794553311851129284056827161072955815631865354196823796840587240400683400870015948664278424668290269138897649208480070467430006035252081083035154567425359231146815716654504104676184252192042909424123363658769150607141236513898662039074973028312081558128756137826795448519344616662232613359870572171128724638239662707204748871043931473770989311374142298661949275790847480800576778434516289682696595374553627815122341365451858251179248113994228401466698829424408979314232222802516277941150905670551967880557882682745806441807095100473669138042358365826489983836759464090957785579075709969526266109086593036870743185094886210148620035574002329765807348152755115155196262077468196781528142416543652747352243225467791747755059768788518311546759036957189557816598364123953243273353446310795508451409712267482217217964378199683440199288711624057966166923442477125784181343646513838187764167675610175135537720967485714406599529881884172937006384426564734372157601618395045501908000518135689499406191689611258591474006306079261129774531456618895231082774698620864852541821286335778102622345238377794330135160281489873273517355439845391095739953077393458469627123032316557205731690949193117169435392073311309911112221625425675719085818483599040913212298801691607657370275567447191948904552065369728242604227810248683058703823835211195220805482289231869616874080713930715569502946972320723755934235086723254590055543275312517891947899260458545010987958296393186839628145934367355817857412899538648364899661919236650442211625356208829902724603005534148372154236864506004133614996706264000261926327604070664995550578839744527747180937115590612365794485303085442962578457339864455957154166649396138422880117210098716172539528914739992840509189897537755079540376866104844336448961848207030475526200586553153656800847945550627105665260580076158275963601879322882280677297368171680372754466783762649660542349053525884856002012936282948827966836822342308951406825299713095520121186832687330409844050844656058694240426742600926797088231686099867104507241240298546814960037423802640704909868015529543868164200936424247474976006094129690195864962274068974914843872713366843209490884774200667121062954339274358695172622346210370342848548320494979796407947098473421902643497082477741222186382955794570494321420502753436278243904505496631264096562526749955442046641810711418370837008977466374273599106759995428630871044055641722873499741390667514779270796592424120928869726227292484842400569155737671890493177543441031939635460168958800898092165505211188565285068629035366279967296386163360889653212702067352147108689700264034192288489587015116990284199017743705004263482177338575973477988305139067969888797154287804295224313773258008746410660538017950862171392093151303269014744890010048495789886983088531114052277062010132460707055278387461473549343287214722810447063032760668650013178526893573913288765859139883298921807139428958891601081266422743884795117002839128514212341320934539566236435740817361288353363460145247046457133247162007715842345812410003525617925188184827922038184898291966012330311640797595985193217050740064296380412517031109217197409456171136941109983246748477899683069312950900288935759467559493428021419071122250580641983478805207421051823363458565671242235608223502393123113630154863390319629262254286353962144334478109414244210176679528892344651854083264969604741690283960098853763458814283220906949064892083494295661622495070573546051173861590796024424104444270153894831146983270774245515905972626800105383676934705601461883333843582281194417680207588566587306106919685612938966469086732497657407651822036569143437722883271228664695364747105301817543478329268598530560360605701402334583375088481655616073942026842320808726818149593572780242067334366373728741201590256063325280180857136408696875523873285881948089359128217508252564853942042260894531912206908214302617427880950610106848155089816725446559129171307170924986460204531263781735558634599633495590110738813357164778719525794450509884380596591509736634158227929033248130472923416495357774664358173467484082961012328052760077616302951818469344647693579466551744056250251195483727708319869523669500841182489715651426735957629438696243862789489657430239418643741953003799422920215207663930147531749188175075859467583017494106316928091096081037900497394102121526263500912085104629634003464893968838827524929655818900159231262020820529404218210819296644259779166596836040197034838540024596817728176152650644492379114615445642858541439210451586379988070332093374242959767126286988920605160176798544170038386044190131072488190085700457659185170047926500118580578755637327074047995760615548055253457683990578971947701919377932749000382538170903297041613664014910200156507758404373932250331127120826435036427164148224626097720330475331531609483586454396381076155091246828000538121557592649820988575250359215261333026587115095254470081096953252222289445145088887692276943476784855394844264204837607410228814012385308497765141656853231103150748469653349786160350860761510756254408799290541247693725593090847140247828761171078612893941481855164221460929208678284743199938337664061589440347626966533835062735613021779655904683934618149202349864433282458068945506201377506380580889400923788057130311991781142412196278269854991196847544226679548419889788727313731140303799988028580413203872806860927704627831378684059416240982282723429369328297681333921439872996622231656876033432891338293463080487157957127115716281230264288016810021667022400008792715609546718895395787742900527748901288294007129030806444389445468228519849254625973970566092279235288786782509804356634269930761412619727116555278787321429891595785580294963136582927470404587410288295438564992205519321879927272902246264390850840142246251441173998233929555726482255011764118699415695103268391437910411292406093483794870685499652641622412116357454293171667835336955945746988789771543708500750596206939938654372122305515815700678397623413641700437566280494403809039332795440421861230806086667849237081879225550445636098696751144147411980543649220786542358119688290138610283759458137529096543577146570914741691630257091976725986407544624798708327263748982596578458030716140910509380590126118206090348380868370531438475874696960330323674209537322298572867864139188211021278452444714460079830861107731467306694163596062518611018757541129626432464586625756117834724169725626963353984221703394397515357631328136144054951022691195392685648348242059918488858138939760569647598535335403981388914344688412785051053327644916775569305362245140474895194115599145608032054952221283948574138147111359573776004123747385836499219422224612413994005380637183391923663876626445286213461036017306649808024096975448379922043388790586727611438051037149851435015344609041422439015528184032656583696345149588338220356234290401455776604513464131172165692345791097386835656314242344237993942599780528615183267666798200666963707163047629236261311259595087604390463024237938577576884214434633157065883558740891201943086419232909040103925505950582067129095647372445507160937376180287197215172219670530814739154356550244562857729898814297847309111625242214252559549328088608946378336007201081650488863212032185993249670960668929641997753164415172488394073275715996890873509639235433288185225670482976881921094276418460363227139447417166200987724205039701366017950277995771024088066860440999979156999073273427630365495852317064697285658639883374140404737612778820990826582570802368989718539885042050923805931873463388057680397394452707831675412078833590417029188110051420490537978448260434257512323373436719212351774765913653810395757422353157289179665214610597399732153254331322891725770010549551091647430160445968409676520650229483954687762861088424275899967389632848540979732576889268286262954409576946218526752228883951791432446941399181262677717247437350158450869702688988469933200664028429668698891123751869647554036961516881072314762800921499740822751214874632945442794775532700247618391772701490211107517084909649923883563479744136972413279740537398643067416703688245418812327506123181454455924470792680814583066755816042200553725354750896089645796808826052073492081144671832646408850370947590073293203443181705764360438463128407249314273848927836689619727023359783419090576412930773125676726967796461161572464558169401149290964558513547099533235444574362960464368102844741695527291812806174729551716086768415324817265031184443294358488089432215254403788937920942334806062598502145023411157209344740403088959986413562900784824627364112376679597232001676607423124796387945389111573952695528762813535649919955694251054696777210264411833088456178467469298328412794810681973241335187234034439916771794704846638575024174769570234688946863180685667855692958625971503261020397891125558331029844890540324780885725242448071230391857894451086579633157741579277269245428009194943097310902793200253437696104213008815618826135975461505238880864497511145831699705724755235354133091706480835799885726172431314726331299800432733919833405204890653448936451604099052071203714168402561395706702862135430881513118203826888288995121561787729385932037706229396232323746826324805958261475931255653098004227373998646245901137479018955553605166242137617851718777744132764042909609861099893642068824799888279830907544901463907902586823080956113186536842333371125887146479136159314218324368482903619576952959533207644716688293231590856466091110330328202499851075248941460388652346806421372990903022519525271727189388983057272533089741045934937393287586750036994030918752506374902300761360693882683912638932425386752385510512137556359121274901653965783143168258595002149040415868662746395610699816667753461195138674684284302197175074126609053409825243416736349723164338129338779049501803447122991246836109366569913053599705009633635502531320472906096685892651260471793575597771793268645028285193826872386593583163362566508459772903446480704639299795875725979086631066509530978771099980253285177810175492423738710755869684458091818280676627953807115154492449968267261090713237639027247798219506719871250428058849105009397701288339945047443544827764186102409010368341933008712442136876907575660981884776493031081377440631652221413727466101653577194744962635926013197629953868642067786986654561372234744745137056419751238301927711024221937760318750390248926495845379800966483398087293110941790306113715072287657875823828499043359163073734115624158211303363237538481383732662202693284765081375953865704786487279262399817478864552499434881104564731475939600315016110203707964904223264532398062593302316380191206576574624981130638735737251371270934469968873230558680093786106257839305563602786613152513834562902367716780359731513371255396684755001601531026382404012358339513474944200962787887063361628842760683210419659078486933759343914714531297840834868033577430662926527736440439331758248007911750225584571850563103470044324343126597462827796898588193324286339753335780398147660296498477441842009608273511386122166040652749107395635193496533935592113322057327444791628934287952383302995361494763023997335088594368954845355782615362286795308933319345170544987862839021903370547021235828647739490013660925839395198588810377945874186840486077521855582707883010916274719040733616544815195754016263804656486248632855202411422604622082583371580678025244112928651055215483633615796485847625298546482731950024741316888992599822684381408717994769864631648118254458991945230710469966822371689788406337013614660511602092014836712962477076038136383119357642029908991513292221625322200671990355089832458306280293313907980361850844565174695393526618769048866074587689956740730848035655933275004489462474631580224241778603616116578808739466399040759435884863067521976507981486496356893185804496641132431560016535310041145887390485973638140904841103611341337524195569290252066863149156689482225249214609560612733453864544507908264384325146723466139196338933451999312161032136055022555006325298816798420262494904514706527003549482297588296075492410632566617215348037347759101353641117270735055809614927155434509239010520076320088993734827721301914337068784779200553336352907845549042978076877118834048775505447577702680174985043928061547575124515815296545270125700889315957900525540092909097299160546399447245329040929747301192893141887496592225051630967638540685932949988691211120509177635720595561531075635209306103753975270265828276614458436567839850654052331620709834838728155031519759695041251778382719770718344505688549901450245654337823925547202987925064773900191073235899464703953789175839691414994274437668708254319439837399729164931022106957021645023669377786334151654113525704046533711317236397850541512402387068339931610802615702769924569923218854444838726234291420999889770736856459753883239676731479648763208472947445907320722471813245093879500354837712601318350549893593813572172207830625387819822149214637216554254746582929503984855884588148336116996103730430157773285204225819809009839979626583567788951160437655228149565226580635119642541747050106466611614613386753446808969729197927919996159401132860658459786838153938121701744925010876687490426766137758569943648231997520974409867123434826836533897079724875516196302811979404950721937571617174196580769398574019527159264126965831150781369338563205450146650081377517239201916292730041907821859902891479085996069926246866383444195604319076307379298033888921254393607201825744103409176693399618743071622357624993997545048250708843081160500064354187213763447799282849608403133335324280400064253305920628212138980897934596210378359201719122232697587466148963104823421097713054085175379786574780091061891094062373409873568765349358580960713106753708476758481567808318955088132181584858184325311159727855031272630427099326899523218811096800748582466543955959808215706246054266287669331930086363092760010964109578343866655314270984885266260654492698810260599132146434999673205327582324455640310246432179632599227953021469185034839685810027679182273082201281285968648554619342402105864096880898831183072282857433801746011235240738704266085813413608356869891372723833818012457932606829065580259968132231673838557785391268919254407717393428185624648697721117325982421770164944089947582486260576618992997047735907067287545113295057721262521868112826511839811496658189048903516264014300135012075252967100040437836757984081342471309399155110217136806121651603327720620155460306100347523518598016177298638695661347270271067011558954076947225513661662227607176526803274561721407987155806866138914418674855201623833060318579584210611902899750511890856365709180046869774430344511556703490420022514082440858786405324436907698331002231241949749714895912486499157803239699618078262063973978414676575209277105014522760840222650405012844239041076332231503969965098514029372048682099531363695278370469675865285156150608536380918676033920855470730684249795343204485893551100137517280610236149752550591014827434682172674709190430355328685432095208812629544754611778352551679291055163391259385426540785077672524870114712011610102669661407915904782501313349856772595276160699713990696968874709980603599648933786147757040271891578442054796362398737095345590913826841596997407844181190967500466748469357766103507116141986131025209561481587484409354899600298625052086824253725717191590906869458555558077952463644573390706581822408040963172599435590221156068427613452249452597634714471526256285680488270141281037848480467551138531947033610759336628991935856563241389602884924191053998818268170644771398279587618430032337552123233847152164890456234598045400211986788646775813307117221655980650997490194776060949702560726782555439515964090914106786069520980389965289573758328632634603347580497373921573299573970218551626438254550420187936783459668771013068102883561694067919317993933116230291219227672602817863967764495311142470519035396823527667214215358479453323882893422505094708753562749543732769418920418965729705147069262110613977554650172302972970283991804489168457036975800331147109916539319012343929400016850712689211083912389678662856013923064627409055276572982125053379868728181525285659637694682796884540796248150584863655489438761167171222308513714178070393493230901504780736511612946411773675786753593903632574714018235698498568541082722570538872388600492199162348409490765364105536884072856783403151955628742511440548696321164071933488211074087040147183933881593273846656219565261949227398906987980984689830305189276600373600536532618818147757500508164393280169573352062362098403770189175952048652000701514236612492819847050942562618469884478590489707265170171338105334213888301630658689874174150831877551104349566635370970235595982916225056383658596246477848842363308549841326656003040767590384992124453610067193216939217663750028469406255073213477510027073122816905809407010251677338327584879404133773604348129018158826857342834017022515984277628555622876372080234415252227279543563108328529752849041278287658656110957003652143564820606942013580813061278767756228940972903192130464528401101600295736294023181187576432598912179949695331911927308411753570181952754591500330638348571820388082780672967261924488976460516279422781022305229523152809815954353465820872033269223352669288813474930668998627642709355996951893684157728441531753372532663612968818242773607030383858124594808147371406099496455135720971326362994953178941833680480455306714588734154758986107394178967221288279526123572916148397139894459457400688612381316485953817151998972890642449576517275000218931843504940993492635228483396190901289127860300360770835339562235188704139910876164486804632115140644038248491195404349698422764123196544037879930789769339849369107212337262735495050551788611695836063162353103319075844587285526142970206193764330921675245346699144001991739055735988014228599311234716207468875651933484961256001841381786475596730451185410794181206064386721271553979453438771864416841675177835633369392611334709340604626221388338539648580491844836602146547599497413328689706479358973915184599657105689338938044372901081158176363954287124286660852019248734698637790329557447994259040910292087133181375531221232209640020344233680443445387986002463602395136476977105563636834229373709456390025529287189632524569475255427722520194085776423774210137429101570107335241262392874410999997156952694304008052786520415166769155327038478708032782303068408192310214807931545121795354479068193090389096745572382739225252812122515885923826941775257517253014511427867370734608375010013440258277927057596920469718651454339007662243843036015518236725122943038343639323321813357178711152042723001408148407266387042451481990396176264014572633530585182685543912179645900656572986802902777385071820381650252826656055527689587196519076407434365535072754156207113464960080806573245872323405232980408750524959351980073990105361391901334485532469099125528696979930619276419816345712088398329509788738687005107988619803365755601671182134304925105036663832060150645657057623753257089388516838586851282603966877949428257332482325015896062783309104259403392459197411223426856286648259046908958355710979668732109794336058984070667178085727334761934501824129568501639790329004528084101887720953789367054656992338124298752208075848081307396415413290602357531267117411392292623199113623821123740374157045315229237553587461012688608158246848076724388928978442153635553375730255209309758038057355556819572253915132735698505817220969830107001342377306286461922103486794331321219601851093815496279672348485926568545964555226437191546140895519760182312264177188074628555459305485783820658279114067593494737870791697834375466178582471457244400406954600850699582488146359470011166599034763718198832910894984420128693085418781232940601728737319171136990809562981588700991725771977718781680845069013356193896713015438392653952638065381542585851128305182333483843969051996042626794544513562584911096109890224889333102365145570916738259078672326546578181761091142294954049374760546232759760287067961581832825017112835670721264787144431735444721801569270547996378218454925208848620490924181129831662985951051249707864109108233610921015940170134017991712527913980903860446709613470587427400709986117738595825070790189651076385482084833200833974671235495234677421355498606144571277317961318343774540337277199654257495167442941111532641969318835513653582443896845847317304997208316611190066942257521203931777286356087290664589407098390831035829587220421085267859187380397328830276273591535009988417896371776675444275302668387697374033376301576573400134266976543514523710203072491115269034208717393398851536880118478370851770007453903459507304192728247424883277484210422890627053871047821722466840149474916813121144215533230338477030367474209283936148815441960886253529358273875035512008918948632471681139482618549598707675802487464959801385860268278043681576821236108704895595790138158101337752299724390286432173920117570746830064761583559728930463041764710676070197475696532456126656319603181381874568600228910864460957601754895538603824137121617486735084471302663693326789581236190580589238571126737588057924506515357441593499579711098858799780385729367796105032377192232353275074485769000222534064107371124989390803084597233230425956168696421430006014851537400742782640906978976895884038651041860480204934543077660318895346096266914824284067617727205005649198777428613108813124682918855429177742714699719887427939922938858800333841943048606816973354399541420797916485891336103742878642550499657210591192964447930254303552315049263129476197865444731618133854551522322808923641860470552775094105973676357523089293181442640808959880919801807457202271495050877263761850725168679030966210688239493884809931215863273102545159762372261943306403783652950864186723424070527107566134411310175222274948542682493845248682559616754934820053933161124511102094907266382239467102065346318016204842682627442306422490313313431453542625876104209950054591440683338703940535363881663986052907203681576938749139261065732891943025630820813924133322379451853891206528214215373004021819685681982561067814528535123885457509866275837019349611008762797914756976529160114571939990337876832282712552092989334889673162059880022075775903172917656436306325485488112467980306412350218458890805415001206964635431813621523637367526686732606225567736350697096686568897136945543592608587813778362733708863562062946848194415572090014171277788487308607925721915647330187136131183196340195452806410991276347798520280701578476621554647217498143460462320481088956315093997907571001547446636252523183319068439544954805430854759146325334411166638936472514282556899821319993386395600009742303720361375874185663331861579640621231804405337638947545068061653853656533434545142486861996966794771781632842623225792248830126565799973678742673518098898312084190206450799425972122508152637959175261596419025328773958257828381474813933567856216019416637658531904318162691079552823351427892826488995823683711113411787840027099343556587067174216155393485567116915339400232900499684128715978164791665425158364724441470415639862357925886160135294188888857610974131676907032722287947773709236556202565677159171323115443118896144809023405013288477148285853997673597872336704332552538131728237233773524760885702278827120940933790093583044916469706908423662857842345051668583807615451177924765631616981557900253493584513228466163549996767577125184076768055116960939964164919352129026232826623698702190624007637033979797929125930459921553810511451028793950315406776124002502026731003053845101493312991193096239929382365456767389711775049449936440148106855604992925188544668654582755257383329173726408978251773389540068266673916066211807270397065654467771425220967762091686844399480079384612208602953754069495730584925574277668332719653062388750925914583267322067525795077997112095517913204286840672898018645742044133082201293515888850782517009867222106655612695909037585928866272710135080714240920446249253177741414647079435596312647211385913286165283225191417186571570926266186216367423337858911121999808618988121231501022991503383347626297664220496136314557185989907421567198110302730453867738606085187329402182795311017089296233220304947000607772588301951759045994071724632500077127334552620016591381162081319325505347717204159259621512867414435497466292904200938257726793500476833064405359250932934535777777054509416151646733055178331733162444738505668048086220448209462372694026181574305453221139893757719746584120003601129226492982675829304887378830432192825687602511165374123071140404421744888220597076770371710669902631238312071632471945894006919798840062899039753082333519894251117653689104790087052936405692977182789984501136676313419566006456357972529047155133961312833153672617714960704922994536145847266607252885347222063064870111539525065464689605138424712042637482981875092531495709532726620487900260248243379311416138492360543787050836957682237820163765214350825899690446377634598984642631188028366799339821719503510423702636208297812395025400284105226831085542366021855254322875197461218899933150307113803809986764530472201095738059212582472223560582084244519708315095647127305362584860301879521010699294998116523377479265702365169349098280055758915863837910324880288077164573687924870106733132038781482510391908475146220071889311758679502691852782965731593653365784588418668305751029335027420892296102417692631937454196109651417511423604292625739015192648017722317706622608707931081352783803084724037458748988565849721439933933593591012874410149406005665124563421147883113036782830826088268975653945978304269374954877278137119023269915544009064140641150997672334383864358213758031514620165648360519146174920602675446350603427705031292120566401914010068438860903500683872874687076064004267746730317730966496483974941627920385133488780778277348260109221918953577376808737387130258816477418172004344250305575713012917594049908500249305732781646086166225276853663855457319670603536630256508557198507685684693195983996404867727441745185102652658544800753877952826644275331751697545109352364467979235141633188323428800430622925784292749840553349873459445650572697996917944957186269997660179973183949089772739593580611147759870751601061737698508991008504584606415154164552615994931137141257792080129183604936879056613680755004286241018365257795429358319496078845206482948964962344409890990378543414094426525074690484129292622506035239498471935921820037578087004276572446115229480456369543281971949892292002330292882958922869346708689768774045919203497205374264191813983626752702171809820955423476857581587928886149230883349796793536095279347648783990125571786801452246977665009460109947099798737778863588056715111028129531788777657130492810474180666728125783254753562079665709848411793617850486679536365897929887333096233327082047108445814451683968742761357156794991389880481921597558467530259976934780380430987706592964343809910274894113512525492850637828348411599121201977768164347284043902684330341671591260693533964540040555996956653934438295642504703593137152754813315982516093054354145763911842478498716002644629152934054014504514263627883533981970101917176386831589426333449685432151445403729852477534090506503198226298748072431978765893361304138245626208253717918378395200782939085453601350114339210020035691851738034030314711195992679744053224703484680993153900824276705397237904205901238329347680798767972219870990766456441165513120052078142405518070162613311965255283696858915257725118099405703000259031532136058351216328784087964821063371941502796145267683862711927541138939730385255932783986431302470626370402597157974274493145252170778464213113282514207239240052287894564275635559485128387149624881839035915599751339685057883925769489849541216131340798319092014907098330380200905182639300798681867433116875219529264717936321116571231877520873890452188827012248718237269192921183768661381699815494909553142146638664521753930455029409641034026320170510892110403774369842524204130704289292173061718359779197805224961768854462049922001871789817457154845023500048230468777730492803474236988619833625962803890948893495953396760135383853015062386064569497764336731905904198308212488153115510662776875378303498658025438924257487830248324838976830800905119555265701671639771305887353771400921964463070428509126055713484616919094267011972876257903643167082817172402174803331489855466795429661384850652501915541820637010301206954633373691829561580129662557904067902643446055077595828901106748312121621358804132165116320450676577101991312156294908363702839241974340645302009450278828975937182451604825704135959588791133020128870028273663539459563180708261331487426139564276881493263689883786444207386779858984415942400812941267205730814906337520954507611161452984534344148965394537038702284664709810932025266751707411917782785333536634459862561601240096672532092859870418546021388957905552810199200930596962697251352679845037570150345143476509554631585704960430212662075114083653998181825224317818527621087722451689370295246976845737479596318763377411466618610228151285850392791985597952781368836831862510784165083623706273550876396992007519284339512704996398016657499557526301483931571316372331549290659215903948273369933700361038655079160753465176888925275705120268046140638354329299424572774458449314739503173285205794679427393876949276822736765202996666962503374385344824201524107356469773347394169077656608346514110243821336438563286109350607541353528601969715294887529990141177379442081159089151442067324894951873379825258106652612961487693870935211391055646566410474746323960659961171335327435279657746142602998561591811500080282943230816866657883740745171031932205578011524265922741231286444359971574731831040620511424480788543947289583561979392322597974740633229734260195902415109720816248304666498479060060693598405095612844573076373593664965072355323232469082325721838290864121752648523660365191046425043532960588183501197639605825336741805091809379512052162605425383718114264695524730358575631634142177038424748212831534506191525983400109715438286772189350213407252633311684202669823502614895041014214344772423494786091150185353084683388579446996444157908334210612249536173001572047664194978073342262382098686573341154951951890864364551084781634940241279725571667390224234823852021924907059313507531894498991584573495288435714100009926799845351804508683696819399543043961263891761343496637651526525494448680391008256673202561320804338065936794091714170603450123362510950500447595993177056013397721292457274759497723336134328071887030893330179289860351905299842745489586579309029913787587151450817441492401057500828153065357011386451898167770428697795532545108047410314978209383097916881583263485627731421582229494451549539699874148958474710760342192227605579585151603491219597699813194243615676004656339400568237824355020025536518347055145217088735725912723905941172578547514655444941741743706388801866093437601971551000350170433119628824988760105963249419963704548900953273632933767602056925031735220426659701617831058324508461727775172391749216896437015659145409116345012043275767201178953711485886339456626641639019539702445224160422276283193055845835503740676665407465948035150729268914083102305179519652255839983594871527457654815667068515554153085262979086624617985249705414045192296089620341957409306247146470928011632813883245311122425369636820876694255128438636473525292564804684822229590716791554987573347332203498734962256163195847451519003940302611617681291897880068809881075943145405514686581010956268743489098794691056163748208332115163328162086544455830653268484516485478103770190331023087861664534902025404263616501343026953770889397007520132463924019722442280090988728696565432864108640944529732131592440475439086800454473857774013403562365640050938359356882847726126024649508688404122164407729516463742834759965022770599046219087985791431218252215599819477872065364078358155732504449154337872605575549706497366176438627887964035583062859876371448572874956620064915979625040198423871260277707220586714099097674333262576814886802759842605735804542182471640667165032016095340777262884970448007499865778320142513180444693798847892415398962655383397773440255769075364977663874943448015432989440103122660968543608510166755765345001160449291963924135975567729851684893422117711009188952128885596110883034330838495324145045362361727414798322742574883325814578308848640042391000691342391919115469161808248703675376362697752453630842984435974950495673155541998681825597431653527659722455929101540070825097496948688516712640675260988507598294959475167322841162636040099555806418823710378157979829455927794638172635818269778939071194553656708531723462344017283834310176068021374207013081884338055689434387645847654798518207231194516049837651637446610496769974201839877198180599478587413622798013228252616476762364873789911315197614850187816395609677124841502953076694850895009886651343425039048397702474903567984294711785103654998331293006418587747411618633280423543737215960554121981883126611979611054431085999010329117243756280622339162706772586643239020974298078148554562123051118356696888186718072242120260800263532996694386530833767110855296049065070898587059470904498359704327013888937668310181882126119661107703272271481489743351248223743893292094568681488001057313563371933837221016233041882951318130079273614856787824833382427003495007640319868106750367582785356305638139664142380027996067163932311833544633286716233431470675527996266095222064154385194820584651327419780191730534407573119299724165122017420572695540065077345247395195994303165250728315610523222921006839117984080388815956606724237332496082779671016153255807600482697946654861066673279970291653299783863729302554837233840449144693622449838171814058971416506734428938420493802173986264630924007797950030590375343653223128078858203302697694463562440288790682517499488802599236368970542481739092058027343668891727838569828970734672326515027297305746434890904117116666289602778745849751413435967676762822040540647519396724982278239450447682519063425457299297372127329029159504137682027240039460252070952193697608393499977765543850369219211809728973895382573749933646596174043218380588190252234080522463308425156975190795869494894214637113144552459839698505549624809526272551864770125508483757091537335474865756208037786119498781601248842824184758209203229189482309572630952488450786698345190514018103462652717545271325397466130302952852911951689703108716217536007038569752146965682458746340179091731285542668911333036428371688312281955894074746951320751258530584454272776335542047064271205710262298154398134347095512718249341795383467846222429723374944915684677207996165874920662204334266515774084452421762730064695023140831823865636523069536300676344141266742226960717724215802852285759301129320454733548670314886573552453177943115315885208859427928639912686501080868223979478994293377230286581226286274143999644133813274540058838959778809676904698908640982323762321995440721216193412552386018296514975847516182184042272445370046791704020735882257456713378040418929764383860828830165231938708923630599426094176580041874946086709206573956767742908224998976513443603358800951787626003279592540986244586189222120286260838204982168423820998619566248768765202991603138810922096121696014527918871238697131609253601896569239751067988988754391229944396776559992111670146235125990148807693300732575466152154323607274319140270259517976856881228112928880796712206044214889413271818548575226569968669059309859243243003585412262497311496648946236958602486046226074390965329282303216793046029198818283534734665484735518902008411012700885030989773522813844050187562388133196173128867661101457619240952001432575245836274233431364974880290857676679329584104831248244375610748890367794423925114821177353422233104236426260288309923962177624417119875454823348262585250003526102857445502458497444799228852778757668098006319859995576583021827765539123734984464481538472621061191939123896117617717362101206746429816314713368145532717127736416690543316392336507215824080761838167809180709012012277478046503625672203816077726720089039582411449547841885223511521473314043610275979356913859203938352846071952576451475244325229623062892035300186878789301830473340264946429532293299326241226046284827868199472458009773163208227336217254020910440893493923134647126793339559582458195533653221851893385779278833065242448173745072665533454241368142111716024805314959695994372322741818472677401520428804279906806995672722544278703732893101548125889971564312172377390339370952041772241043040719244377978709086576112342846112801466437114067685230325746189478357202116866707476505246156431430890529857732770633832218973171914835217835785080638582055505927031686495593161845966444245631789936270795462610099096572551184577119953673293987351754557466548298834035868992504664424709225171355101531621097347497094018294933992946429928028496026361328296842482995553557505819537093281769508205708657652961603755802442534422180670394089194369802967782222477465570850645931984189800828656024681016230672051032509948382708919203118311733663658499020379446245918069912563177635059028104235525888658927388307438264868589816359471343139689072271691830137017816529117535646831093374108727876883410575601696807731817958004336288458856966749179045427319516972256787423063686076011973771020302620020780166142097080095247989829316165899145025006682065455158209198536301791908792101611309411673962724342119151280258951551955796020171222039820743200985106721806766544924023833164531896840248422005950225566329479640358299765745625189932969450851340085694674143482975824943230285492413680840034727988298997685220460467819803727181927914017899288184721112339182243012375526237076848637820364654610509669025324222462127036307288948040418227011963403766973995054808578495933070854551177354616930297524817312694815114849084455431841550781653657890859521932043337828831012392228223348891205260773376758432099582243093280285484521855413258814920603485203590161980226215040027898931860461598356125480435204662104055178406432801402826493669325199407209827420840355429136953656859151414735716248541208931505493997906057337484374331549937267130233502263421617246413665979006298962348498500057870052230057448181944672454957737163586458528220424792003651847178434812663260588113142042679157732724088895100962038999843080426225497708442519726656209759919974422450549294459239547972488372478082120502337588130519050045509649291135214918249091194410057438155933039001033318886680818410652488171797027595966709786971221235693752277338234756924496441775828028017802067154461032600963815732003749444339060242785161950345320873430751700921757590263723685305106685902560315985545350413360201064368942041753324637457069785127459715354863329741215187323721382880594260092572239140441549773220246583305924267039327061687713077709195326945666034739722613150857901649450785625235149618207458142852831158680182692112751248707476558340388669037251018553119783832933857803218609716484776352818518749878948953957223443673448643759833370715391143273749419331025899639118238322048918607983900538271077185606984574413319556145790398862155518293303866019902623727245040561162583198043060206296847755851518658106121383278818190114897546599956810709064093861064188837143920841459348551621223230426432698021558201336244841484454187658421666854742890305223896738687327004199783133586936962844424008046968364334290445859583265251208784159522448620348032011808225025132630647451755118553024953300490941283207308392865934389541766400767851765982450008912264757510640538077229953645333108555544289346444730506319770439222900456575488758428549768763703805828598370460341989178188139617866852257908898400425140946191863074363037534922659248444593321398526603268788230705829018212672887423844156321721588077812500290782571745800870302428831090149537870441232637328041255541916180725530159056978246341253688369775353681676265466747868418305978650935121871646936956754086787844782328914837858383139255909657921627936769003479154407983114377005169688206934142137980642111191916698294278662682569398020873587582615406911882537622881565225139786367805858572652716574548524047403007155673487810534155627710582716994007195305588750090253795219952867434673483596576054593172501061161626820843741728579558874884686273801915913509841080737841820075127741284986964061941959097648611435303200079353409185594385554053643082283968593525323812414042513278064329627753794750386707696473271916395023921720162094765632342955148242407040323679504599967220049388498059169518444329702764681369998665480142483391295825052817653593386724879427790452425345899199833256557441283772665082533419352394031530717995753129476445317468176506788822011850154631301421060178913099962204154899304148780137556312304869387016574980056001225259396989341602185755192949054766451155544725903266682509665689964354572028009743630616119259496989012837629264065491081465636676393283329347298686630407873825679971722149863450128845421442775042889766839099647686483743609267866918580754064033155071633625715393133743876336105540755934707078338423392222985719766812595647005378242469338459768030687992597998211987442750839143207379016761375146975776658921379412791245302126754630492710529586591418645420795497042135356218455445539841423807315921388407009708007714014218142856145478914038606944843730387966336183699425366939891990873489604899018088084785586465415985233001398271077211270964189118861501845464146528044289055112672372126122683085672718798044769925135803783251143528255665348168646563170427868386844876872201964274295661430354335400686785347519650122571239042176539398869538438268851665023004489782923938706145294848774050965751097602684371203416898375516948137025239483290032772585781507184481079619064453569567228989983966401669460432787616432349157359036313841384802402240779986110811930242204407006316210273972720770367067161087264142478475553403847109805669344445440364288636782443764981138027480119609832104119805147084810377954008388549193471788134500626363051200750102717826441503745976401347180817227466728234898346078600406883296131121496827449050991152528327817757028110797509777074316889584682681655013465783046613327653782518606564476891224671057926703602931902590275238674680991344629498916304080486106720419177891054510271848777814314442904332237693490352865484899107757082049152456102128480511735878952064218527800997879069988061409035553532322441912745676638664756860197368816309612627246696146061476059118297817575925953604115785941953544463898993990975093447428402088740858492779934349584806004561744998357970502127475428946138009415952233430363189986826037876512428392440927884157849168767586088804495247079033296837125753987256633865694763862701319947431436035789739069960444729615635770371406668589456110443297113382362638684928742068325901276525292517069547210649429949340776355567361874467415953717989646911203018540252272040858283831779471848564506802652599720622146456333770391710688028218343423103104912648290408982900103788469737050194345526262126996591310153111235968633576022782356430659779647984421908567030873991436385972651195399026264598595172739774021782527981406291953853635785517397113099228488519384769277561542194283898098858119188794512672580265343557008065461002238108930761237421772617102494047204443495034100042222038447550239706079737190484308036927331546882398451098087116769400349601689004712836019485747245702650008345892715533096101091393510168641833666372763654757180857373102004439571202344508504425468751174327562662182964688346791372100521685071132656882023005117827493293690397859988993070497225725313955246533591788711906159684498276251715153950135404420305443058562602290285379084096464423896191382088620940421147788493659444391148538938381512785385719236321864203408610235003504559750525663122957305871132945051147322962376799000535651855105648103997046850853155727638434461314209953317493290217301819925132632968162553356723594448106335813907278160035516178161762662572497053419415467536712119388672445592269207940771582251668210423344350608372462381357743766839855491096107354922673551764494023433200674069652255350657008792165884680327559019714935501178594142393884282675945213262848714882435175171335143612051047312011006435932637140292359874850975129436964947920055251907102507751770981451576390779562771229858110920155527010905938360509659957829447925355542956819043385003982816263889518601260355908751278553151598668813272322539703522780319465251312601014644744105067133239460954013711560910522431692114372160045432859940092584596302289216156510621469049771385950005874038884304799313859273095235350521594068943084785339124046162368262461539139425007566102039448432447660919195298723523741854696638542994012275492471912570741053319336183066176898221898217511919107112031240062671908254336419754894366453748459615545390800155074877309029955758833905586090557644118754094038873434018601247182320366122471651178554941798141697817229864546307886315230771126452722227391769868071674835675187096383224743761483174256871268809241784536074392519229538875723239600069073709265474981997492702209137230440209720774437377136864620108886455452995112188596444815374157194110539135275143784447461974151809811831199020180009494918474763582911154041336589773304737248079073661731174259652998915306714467755388785136157805951203633328710704747236884436473591191184132261165054043565711067552835310854600571931195620305903149170755426200996585360205976134347561815251712917265542911007131861929890510821767739743253499523212767547688919480312581210457588153314252014777505128904713628286320013480487597717234689672881231119964331198903716051310520376138654462530919986422119037166578973469864172577852222817695152115661032711226206796340839653469200252217962335456408870066289501171111637017940116383193954446530088997686846161288606418507743297837030719985327487270127888557044584497545983265561841667373184029193738375334104130552141496972994022288950759073095380854717179158163414052595385226869806906505305364568640810193297794555943045924963800219508385445534205866284944075210125075181651950389674921375706633307998578708693428596832400931094439651366993716518379505770875988260434965166879465060734187903608532481520910282074972465678486081902844575224899002723954538511161346734569905040949240221948717077060665308458888123927781926427409272790615699584470049771960292798779469855100084766809040112273352243097232329346494122604944835216144876266307252889516131334507023016799850528814614787178744067340716005110619875998172594166309145691928897500171443549666053487269746429158353288298074714869147748777846339342381660269594498266727681880147612996540364506293906687605649455334631442538404294018705096171919553208665956918429676367658672568111831714046043122793975087291322877261787210323919092088419698554525215163617045417279662482440468642618400585488630021549311678962785240578559187228830892202109372443578280605866173774111465165058810005001653215945730235691985292717952302049641425096543280525802073852896271772830042222846608727845934843836349461655566684690599659228871970169298463501581858833799262586553023624081240086332646520824876434763865377316812342416652311045758397754168508366225836971888823357412332521066282680547094668973272494120589759355308685827097696605127095948597684665481511441497298211570860849919911484373533564855106337025269627476761500590173479429108609684709609003790478374642332324805414425168860594888887791709233901075918986982052395298869693478285716860041282914682570561832395400273737190699020059082214378538278963293187464419194343882853040123942187081187780001917838161939848443112638845384106846708448235017744557880397960091676998336803977270942952029869516664901528437345956685597075251661334332516783118983698125364010518150558268786722607510600064664495736457930252809198243476114705214178960891453115116497265603595031443840758935415097321743735115095358161153945938969561431993867852981314757621314436054775070126006126467359543451103606243400236919587973229457935365722820405880001612773246227427046367128486745438774000330889591093937285157383710969625310263967461295007848127038087745806409273489261723722440398163947424359494637951030692314760188983539393445385568088368534958324002877793050086308411294246435481576617878841625529040848421684641147665094362566191017147661970114221513178763417038257892901460448217135149904344601974983443846927495189945273132061228582918772217740976292360306967936652962271036067177662368039071740150945212294273574456810208864865602601216811810538925480064327813936702516979776529671786168578379811727745821424770351852761807419456060800672104709941437291346199492685235591214906948923865408268397503237728293902317760140866668778073092817057140972974443074197815780990557986956457010563322173694600805076556688108530834160610132217425468483373849943979598677805764177688694979541342132825224363141120242363478795836175503612178423868980185206594480360673757169915426677673484097152809195732834950170274845042764894997987025640232624266334924561979274901655542217369490773841974607566536683554046947896269277427170587728521838621081250849782993311757979961643573966165901174967073681397554882642589774349286979040575437022341834492838215051912421953622377518231988555398909573122965378379415441221390899019788270696749204487936369906816021193299750396258606710360848068233426226777921423868900077630736754103125744111398594790055428662604343600349052254482326257071780379354775374772435915457921394968051894977677853955114276999057098830112548909953198569212634865873219907866629789704799380667461923133273268761974195428921772388679306363243848818777764885201248563175403816885044590933366310403792385140400083522776254819563454577584101144195591717926034605916053941167053167513833278371582984315063412711001050181031541839619829165133989044499402273008136870486826595780634405051927784095516373290511910336448125217673957349623694766776120136005341567203828660958201129323420087959644246685138367538262934923651307843609943590558563170464375953517533539639553799488044719320516314986042839482715059695800960372125456137934840120698068273742565775314193870951763444723872181057998686752661773631761161370277954789155333143572259300537912529145152846168700483282687161173881943759661056883361228228321583368940005096966071069939218515261589835067839684586182954199648146885332859346984599882182655757173816279919138987086211736855772337094117712673311323965226017340985281474316017648524067374671100999853336622844968947328523338311931108227874118297222252393170479439955787123385262529003034042801505776099894194008670767530811937490448983946731353615561090045782178598707067663063113700907427246384481374533516092184985787275013233017915731393784553690958898887570851827688507941205676067268986590693985953614410307945845169419297330452354031925151602370824305649062187328025387546570197556726566310746482322767033253158787961068526104440222340425495286065991765646028852912268705415743150830979576638846417942840600516411769174579356605652602762156856779284396262074944495969307460526191682345817068105330285549392420398671990208116404815901313485196644971443008461201459068057778633942112889798166433692917172534547130995842994331396423969501152266091797617939193328446388008002717622581350745069671656871926979514718412105899340639422460468737580870090812986166042032939156461178731165080981723496852112139675305417802786230534161841758129239450989170977533167963460190546273719703233063011455305697729033966531919269923598169492974004984949175625020006818591807301969859915428962963048285800444903484682978436400389641881445543146691657584026110750674892524463835491063898246054697132927419374011146233552607574146897963581182014255143225021927452202840563327532587390900674423024982319214898404219433134713659674110019402610435053137142720850023061109113816802331568361374066320406363331131656357672207835506984187943754870815385278798413277802415817855536107551183420404978915743682830758879337088222054146326174095832101959956483597344918205013643438999456229834599966261302293804975672064287458050777545222121042736850465368558803919758314729196259154294598396256972837640246383347267789556853491445979876748834493570289399870245551960313062240753425038585256237536356567412719235577199011212598155045198019598734161340113027736978423120474999953285771780724157972107435668518374481828713969317583900330111312604676179878484957109759835256954412569825705362497603141685018461329773829538849125197633555476895203292070356969882343500935549817475365716470155917100770676765161437965790416994591869073112935503025459340526198860064392140653104870162293517152910218375482212132696983553840099403383470385489167338293270950710074310786287579404729269445849939462424069981701254321262832107043137593802096042118384660931925728578805064623954469152793640885063299139160174977583099560177476545017796960281017671227746724134144788359526838706501071139929041509939809088227436880205899192976524105872760379090130556633273457220358459435619069027848897021530838245772948231136579735507895051924871014607685459302263118473158425078512980788660666597259263336714459676797136123339702068280340877820835278993126811690177168262816272728755083693061236081985084475200748286480238051877408151691703815847259957259306832371451895484143957966103917888194079386330828396000832294244452868864114971896130986798039655671915559460948251106901391136881003038452243186944870234672852430627268167170606275082451152009883702153796473528269210885044277347902140569417475882265253955987973467790133615848289071334639271388709000631371742816232211793425746579090544592085800141207524209274485178388826142257674797037164325530536830927568126261073882175768432962026674342773694410327143663692554430516982365899950244633729490618742136136901068292465257872463233720765799736865419399758218540243382481835420318929081227843019930530679592689695542755502148136867133480848780421055099969605185584135508733617945438942046693860000027383243793033338070961134759727079329145673809243964172092661165149682745895223787816162956081040804547819915366835876937452878297554235787960321210884047480642898967128035350192002833109578593043324837609385481285480925044596764268212157676658571831230362112201584865820729535443274621888174331499174323041501903396788148998623192142351151809177022210837386771489883889981296773082300647190519134024297982682509611121645145269054045361566761769956789402028084182198396816244905877244008828895429871978831407539022099637979344989289469032391300936875493131780144645119597952707201917993713434377219437448007984285396391594040377801106550920545036157149170067776159608748712743133531833572635069427078114532336854884828652138461960104263475875182638531087915633669318325982779654518763016289069321624474466670988865462666476440193363103450166562696474700005150541365243805242072723567134001161333580443961970630921245163042366485255429610596115011869952437747784668654042750129402952111035121956097774456994802919843520795213115060698015221236366172010350229377414331157341421502032675247000317178054335718734703554628263289250170493151349283654513323446932395749865251479528454553995111187883707117260904305407093421366566889386662052821304741701781136722871757990367656742993540405366729988815858252466333608451185594317762112522930179898680383880298402663413836643619946643997746492872585821064743329924266075161959940090890860207392226120486432614187938913968838249858878467444855376084859926659274121398106673080173702876989165277336202366365899642772146184478107239241663782746092539025576184042644440396728272215199103701255660801335115020012222462567429182931168602939051031606892942773627805991342476392265951188058937895919526256956472446283673442388009729120456479394294832181229847130843889132185479779874814198121383238149031379989797232832822697502516961097301750649622574476205856615021988575274100478787890889108483943391822958417606868161608772806403001417640853473373633218472264146409329519962694769386073771526959986580789139603434395136982399096800374794646313012809111333084586234679542003309099732876008635457331641982667951479331110386550459455330884015050689510231144868223839110511838184483558631806214668426721036176573187961915454851436542227245158341653818244916858597768660175961599233687017435541834504114084423535572621872253800579458702671171004900680669552544222406078615635140976641358890830277512931837812568550154469609462593000964093032935874874950418160349206469731732411594383658849943234610193894429089262751259375875607038708783521146272905883778434919971555318932219718673803299374110436132276755803109771647256114396469380999589628807448582698486280690141902713996227400280540509846188879588571039615704123377043196329626109663901688829496268006052517758920837577366147864852046446125941236152353809433433718389409542143154411018068280179153061141848691146329140893781153000739767766829062323640649616301083746893840160641824884433960138607725595915909224820126818410603821471468226947181196963466021149955032078036916132142270397718604498996264910571754217666304691914101366649198511741088549286373518727241936594596484233921340655282980342344279557232519337049160224416938586894819876900953427276807546876160014477326441466946239156647234293918312218557121507378513360008245287274547827742238372254246802511525317043285756128336815080611610994805879550733858257071117121051156056071228164174206352000692530267965447399976333043654842166557973713771653705799185615866520311103466471184791741011982593494498460515141706724899022832515942558988773694975954635967512462916871614146985370381624859333302061537275339153165922137316290983151700019161468576146375948708042681818449065201072220240260282506407486639263972860965424277214234880274791823518038991274367202338635610440427359700384315317400491758745913710795459992130609587325135257945890282832829550572499618489691063018345448369576644502255484374620854490313588444937626215432124219118587451238860479184890928742031579481483285428859870856204084036317044139734436470852527452949033745636232691710790597740982774613456776381265339495390974957425868361393738717277710856724442926255197338570644367070324126843438247953665641358937501364905289726435378587014831349229323146164146714865681283915290957180297690852622123145138674502071573319271325422067384818473332172601923494001754789171449330904446764071592471382875003525074182838895850813662517091767332445670327036888929617001674182108967569319751574454481470034491461833979622926923817741958465437840977800509499526747123581769386561746041965868892018800703222838830051167818869952546741852149377654780390753136013142387433141238503692839838676106274495166710963637759199793572347331936299810877354131191053857416008366494784405973947230651203971255757134453066340223421884071088647052759902448948942325334332907074958526027602126452520488745822263581051943817841789314338164710955967260754614970980956625477037435478669364175842753142314373022737654271879419804811361915991390288371737543902830396190113809008790808781057967813898042669234654476703266049088832100296230416881142324846631611801810161985564507122809122911112333148119926936423063078251132761155563376631404646909004726683138385801902929222299047726020127496484351863180684998204023655650094023559597722278609777858711170009987582568356418536820670387636331308940410842069378486540393674598112926924416846827170471830103782584427355114574844928418701495468827854605479556575489473930536618839800272967620647945884713158279326862507484483527799144627338763036263549805891138719008550993607184042757998362722073808209712976278565128595341313168926763511310099367033246434130915425538748197434868697006222061990667608311570773855855664179601137420610089743663358368749081305858447244433324981877782333003950180430994789923778488490367110728871776801747268963454588047253828485693915582859432217471289689900642575169116152297796996234354583649358032460781907584601676282594547986486208485381083982878163098336382618243853857286504697083429277986694559827556421105578346499917782690100586392255291874005596136043339745034724586268012948532259144879016593207450025995734075618820643500809286695083381158568764841750747395080255373418882389021020672678137218623096299481544297551347236734939647779425525557520598390371396762133786778545109557684823309142681820832566134773620076548550846095351222582341128658327357108261681509836462104636090703108200272624945800671662786545670921557589016367990556092121963720492282148117138156728181920138145083907295565823843547248524060068220521120265315284044123297048555721117266723576665900375397444192100115771850889035045914397132368611618162146125677253786092450190753497195092808081828797056946066960810647076472081025834975935343614833343434571246685682077636317572972356296963489398559704430286763146890179716673639123726415103950431287659675145113324042029548624818006652473498740578731929859052734081805781190859586648933471180732573612124467817888252780701789508078131462934737152825782360845014827330910457684782157549092827249819610517165491491274979778894862306218822947725017556537041289394668591653126530298884298010938349763435507886140423069029531002746347716701536398160840171226737690019206390418314585206337670618847954837682243610270767680794445993345403956331648373165064106540514631813940295890251709134516725529468809320849998448683407731261585069606831458560260504176068195763150753366532295011517784853038710886610445422493407397528024923004513602213186552173021881564717406895906061220696155291340049307510072882681887408530013011246367799582327900768051307429422832722261216451685554581942704112559156646371644192471281961411261422254253292579761401316235617378294794719861591924714531958520056909793014629771226443586173638976429265471698916687365480228650621615006101665052677112542545460399045955200328249870649129661795990962304622066326057234796473962392620333123674971573151946668295083685242130006596700104916303688564546203741433527630088625023129769805324022701576573662528795114527921318497993684854915992821521038100332343342151298000708417592673920113566186710571065057182740497009921239817720306734664202408417915259462731596677861783028591370401124991453723978135651755436913279831163681073754006582758395684878994394945370692756265119027552791472483490012912846275672445023169458391900230256663411021270043574426761655100457583433192823793635213266207669429187510825059970976490932777038300973006485046905457834207444863762652892941299816748780033588061008555512770031260629785245765376836602431118502774390498775239727085960923947947672573910400956476879182802434111915450792479426656478686475721055589925778492837468426379860814957570042226302536486396443659132455578448558811845151388922754345101543124742635178472946115977490140474484013601279050361816709819464120991575687772309946878262507157752301809182859755761889956757435203286445363009902524790995786217285549698383422348494584092678829946897615018566051407247850022648226113924310341520824438119936448190177935344149853017913834950632551745422578360946259218161048264007666443173336406799168472388809178931567261635577086867274074387329098659169146278754949491883689660064055259482245314652150558782943028320126263963350743917115477191504905403870297743003870955081632722217339253785669651250799705251076829718768482525301727803923742178139848162393799036204983530129497730288142305704038876775112880328226488272518647313629047732576346089976236612054451566399769629888603532036493640976381023604292276435245205571198435937270613381161447315991157907183941164000369565376194232536081014233471312303800063356304779762797546913574272413356883280568861321737629190359271219151506860658833650007310625030047898717834306453672494303794468194318529736892530917642397348262852422030153300902054375181616584733005324489157346409164413915259138716399298543812666779516016087930705781660762827303605387451193033152451959170952716785667166777684154277156978098529941643311097801314310169067941644313493190582849284776769097773629460933114578142623508269990322216479802856706575904674669912834979540831655175734432380494762227160752438060699494420343630268700000766108039609227370488384312049219191025168187094965680790466447355828897658546420693890580606158154633240327101102972932565050558711267616994389355168803397249604051041606030511934345146417698175634862251457227838034188918105332452464165378691059804636911892455480650336827600411928027246955457743397636390934519655433725582067858497735902479678413460823241759928200594798106545352422312596719253915003344973829602821241235917159593778242999648918322866571148102378565426592570598402613423168716696163585245954895962260054826533684283288992506213997117643822804263377063291334960270595953985554694402027615292042427352676553603067234878164852813666091159379340560299181765575922398736760807338891461944072860153860210212184847118937966374260903260193516303237134613609166625803486189696891669827482907701687424823935892024023629947335325575295669612666978906509883218807045524893651233047050404818020129004208520460820174174423630733639806142241057301273986393255216838480709515942433833013812343139548310478357945068384808475139351955364576269452116698186563765561563738144716082566560991331143228351828482955150018357022307033299373052241141359973080053554671743801940727080965464212686449427301429257171746059407398372353014047868323870727288279919686326546248714675965073082394946693456935381570257018800637661468242384904875788586680165233366251051976311968711002439057686181445889342368474790400843999370780728155289883595349329325753703420150077987439752189091038481462343387807713198532988497891846895093756231755339001974268645588921448627185434413673113092883615372295821116392121137416260591586383658625879722058585442074646440875552686322737720878568845802333770774139270851114147532242663874546121198442271680838209078528343334243771370557402075252976440139724620847242397597766025404766331863267388624733781241511437879249268227423255048880641178401900272880906580599076652821069710658291653141737839465458483489180427672529199901507769863839782675494776858554696373277970758192320568598009759092209705815923355992901666665143905860488077139306710879347938447280986364065920008833214813927740188453460790708528699539700200916018032394599705523031574970272735207159869206812006953963903060190026678303630652803836547921532664474952952847442927095274683994731732053700524883850636179328935858252701077826801280404253710386540726330168684630075948749689133749741628156227371618120283602191870958361619276342935744434983346479065487220013702908516864337787394561729027409877918809467388740747401780551029215293661097522440102827954115833760557194751112093674558180334701014617088301751539559933435276602880190617647429290114272769684545152969176955862869819419982241701057723971954655980708229467058930327584689443243387202324408861654531444271666157335557899756408114232486909760555096781201832705429806585536204887599455213394921253620591907152142683354624404902719125313482175865827610275800696479263219736082190562592657869150803098069659792000093338841180018192591537153725654890529185924985771231823841536545310259720844819298508142283701333943099933933587586237951377362725347324565499285916455844627612986555174237231883558349500353138195679302715258400444291940197178403528122806180489935138357392111851131233182659372364172268423801311727588567820665180166685246270776689947570735558634833478181299862528673379909668696998662076136828119217212912387562544241503021320156693066559703157401535092483937154862929511315401175251273219781663143679463403096687781308861721670060061016607706906834041057073961759197472284232395459622823414942372623274615756314980174484774983033216670692315927150511166948220881554949043211072273435004222864588702440075837710712447828797224804616010658573933215345579874614366643514277791312913821130500877542513806987557226203412267712139269680619634057250049333161089231571393642259380771393893302398746980263634160940051485085588607796508312569507575344245083682334797338587727938144835841542300436702895396190801288606698035343148433779693156335177296294833728769090873935415157813594323413586029275717795140533202197642809702496077543244681559536130536142986131233474277756764433656425230283853441271263420778999614454130062736387665533098391765855749801007181453626670925962157250487821763056162593126977196665376044413757324690473842954058392487975821479729247867385355910955512312164249590175023593563141594885378967823438625060377930220684268249305323838731831332556946626208047639268171816913749480023253481548135390711806865994138405723064139402071004446385132132615428385483364194604498358028712187008770750305463740082863608749892528275839153334747454081141019155636411018256490478002818551228384785419210859482527990740308388047444635441510500022604147107966165238450311856685047212791653129176646340308311186223673048682327146285894088382486702490714258755939462239993497580145172689803665763803285326683231495459704543812416570644654208260010572450004337255355801700878116327487423307758527530362029124130895223270975153087692427320755042639193515003291870134269585039609567577168525728924766917485099834082599513660084186147946472945511453318620516049543047847236721595887949128083929374885419550394133828266930233237753966181344911681804529963083597074993615715340882991134402802122341579060773158919257978782988715997258750982013531652581243198670541722303106695536748297805639539030583503844559039747270459185550151289645530631075826276764552778560366551505592660921129459856084395629729207855910764169009865994745571286440691541997255083723470955397411976637872879179069294238360461378612425620087527333285004133154804342222093284257616926917918812663186966705860336912924608905545575279905618368881344948350126299230988792064010728045724727085155492271857651606381889420320021742124033780702908576284827410426356211801447054460875279604472586489788196666827119376558611577014179141403629478159356807647091913369846590171705133866906043879244853470328069729755881947854973330730355236044271503080019693525932985154302449252275588691431490567796816623362648377247898462779096161662135875676529959632086178931523073743840540434585334682081303665143286682324625165760090420462542961671308663381587413516592069946782166395030407855022805619671479819288669592257611626736410576694027872704661252343499197113632126131077010732446408417447369373537522381060692455335697052032457961529984728040354349432853340618983942184673536309194253705836996051839616446702545513217562150759916131950081862658460655528893144530041160536994298107235044606799620680238753920052272944209378812331091709076373515447397577144669071961182531950594269041930574451475851594683237908232732883582796382047568759159345292412830289895016172819446549390437824755907607936583820988609278659880700972856992523972949285405228205150375729625269314936532359435699384558703731670162487032135470881060979079035930589764022705941819345467875558310800083247229302909905310588724348742200299267812916486404235702144464835742706492681736323753090752238888781543892932086894297486460788814644208612600595892718696432509355622104718468351711362927445767762186741462593099266411706059749668382462646692615850699145759847795589698858049499112602161051114681908862772189912466206482788743727113913847280384693126833273536123990035312949713925335045073972363764934386549995811902052150505060491925801030063879273046466948180540861083941960558180745754501413386379886191122049594394894803413270787055946506975233773535658071950861487146110203203828485227772960749321432309305880625281981134711189503777103884438281856610185349239079720592005584303339829973983197146407758769975375029994221789320282346203239279158940175501270755467993444546074516708426789509768666214606157107067307653122028859302816654237682286087532290421838379894495096934404335435025988419529314554387740606671270001639679861177302586203016367615996923878950996254641045110761262760156759861472150284334668968432366988417428115481247535034096967321009245202362020813700046276370187795393904850253367256324643566348828307878231266350917719531197442016769612984400615789691908714777569399161176710464143002924620001197185333722159405895348713275262458425722156330077288195165924324554846594224246156997763481130845610316081962875542117215914078352113159455097045924686174856511041491262861354554077263088134738413376832751640279902886867045879399337797996359432676345335270239178941091877556859190030408140767306456773294679711645636927938327250904475856022253768815380124289940371915164241926268939556988478291789492200297909760565119681970620330603813523974938542438665649156171234642554850771243675146969892064309365019036944760518249255843843739674312379320806437226901207702469558237426659435875897263978946814351810229148715958070729434205037021778969601018361784256814825385954328651210010302069183579072581821480892234723789793284504263377772147494850252571751422599936905748059613132557300724049468697576901863936187733264952729791796859087685431165719506854256061735229154202060835823546122167116058613076415357740308440900739784776817691199386958433287614244978964824851852274410579009801903147590870656612636348278460747238910715509704137095544322574234042183450912471884968038273662555852116316043854324450731279217233257102868760383323511866687378028369470298383674075683197398271548950739700881909441371293887884912764961454646802944627821942751789151429466012318809323167660880295789753642494993425114935585728395983341011825453102405006006331107381858046614558838334130115515804712525364117961153556195254110768129922217696631175406723673918893288629473144309940347069495050936072761646222892720151594615360225285992961417249572708366643468173102943008171125693362212778380726547545423575868537656072123370077381964355198635071596714309557335373582770593559655923192351027005534986516966555043980467130091427421861287396382735389726938263637999486693166529113917584299629592076308428873799108569919314576979008164195639809529760698854395210583627636831299557376353190115570788590653469083026955821503304334737585239551827970628921873518426308219626911619085872853208738752648803876819460352766729328667755246848389440750092948792319549659637714837111550481540786236542616219812714280934291931291053679611541940954410857274010658436223691140082562172953865119127955123344649983387219847349124745906888130223470800497951743904276791944474168855121319645337792251255109880693814967370688998976886461914381341254777408267448643988679350693246269429123444987826141430103434226676804014921984412112080443659646040132843550155558981041559119112895952326793336847599380817048601389492802166371077747773493682274366581101162847393408916744426869307746168946069651855442158573767422680966210382641537220301177020020459429723051180865029176413993217970104745947516258544412905258418301681694334013786140418860888990845179177831380921611814351084621919228297344048334920082738328495344250958343366063531603665477623062419934970866037123501141574067430237338202271131019525555323384878248437617483436342659000637034121308297434277262691277038654779837011723780122938561535753962592285288741785783941331956560536794204526918601973932284364797015378304279000025125433004608874935702061415898853977595944989765837023027823092903825927155192690761876167451231437020284191932450150985010058866911380686926280914686964972263895100103156863980454485232300883495258219951293519904605742365624570823709392492663556780490903879048601551415289536287261926469255994484432297914926364410422444833434528683718555520731239771273213239542813348807441332789258907065337646597969467960013132260405735774366409358138466177540362158965087351857149715116949899439978204614390079353584205337925481629145202718409308438932882040716952888179956600814147316319534587249390208266480080200985813669623432901647327564664218756280909619266058268767781196000164181838047946775935527893581832717879907008976806480668590675655442148863381061410613632636032461192977861097926779302830200974897339181189099238492342775568676430145306863968279952160273567014303721285716999694271113080119830872751517074881909497857563717759772424531455885177901011401825706460057079947274389636751815253168682009771716195921219109727899223179466068387473436996260895326587080159250199032031032440919079023405560572081134481080951975927760379874051073585896561301790347559339154758802941163760723116162084863693006085901454119112986883989978883614587703545799952297849695515161288925733181240684570451961391137194037851947496155178328541376591509277670258449258085625652053964589087685242830151498913004058174520407702040754001620198772809518480177630798564207402656241691354892893654180765332935785972092249355232190427939827473073806170604082304877290267783742903569377713710302735303437893498922606645122449647077359862835575338910229362829476346993320449911174087969109602669913185299756227837525424655877080627907926462169990285788628027370578966095210227996993283604859152503751949604244338588837708279931272099681152711325313941981322077154520118835986681630865579994211388742847525650707322862095040850336056749275424118262867345732789139943026589816736359300966107346884579224452364583655173026825248608816740363268740464849788775063668220532321925338984250353775256541442929861855033696800950178908342216595941400129129246739241612193748301144938767621531825749066675573201540081576440622865268544314132955451122136410687168802170960810047082208267192034471352107823667864786618858866679108834875355028804075700955288507861088185542584691452601974088001622519672428491232512702587555180775095581781490741009448421469643694105452227061878701247207629404893113351040972809213426434713819341600831561820378840232549638413500691284513757736640318836067785240914620233206307300568466484209575916999241793029782495296953216458205719723672818333391558368531322705655685660972531510566729279645597374649568255654884636035711569874178140366380358458347461100909927293037571543813985873605849827381335122613414854045923144106308070061542392286447372272643661640562761254040965824780463457446475040031245584698643521281402817992039171607533948425406424899093799778861150399409123666742086703721623991679777396056862307085977708124735276024835492151684294977808809569649222439374126604185137388548743139918951647350243246231547235864011848734400888530851480015674965847663058230348958358314392310430876476999277249534577537367915402984971260815255038480728338144906559081150843887992776108600868100868400974144869551604254299730345504773336826395600962454056394380727174784337790529849667333051832242285602652351031593791344159376960577886205183589072155811468783570079487051168263673532778039357868523542700343537401481455973351764103540456108424450659150510405818970480151961474638905686686608207691245609771011098439025580796701814833995061357569981076446046489028745966083355542679583955095415533079783394543022106947163789926165415874582541031473697741347550742872494663796876120904356636876271749105520370359918541671053460737646474998593168214881337149953839195875194508923966853112771832384449175622070413847007999798026709560082723220723928815046200798829640307823559066914348728586660505543549955121911208318046941922528116527068075010564780653034401331131202477472447398018256959548216348045975786325629565353573763526180956519691629878682276187007499573389478010695716658712022586224143924405768726302937015315042008223866849685223172628873610308883718931955968066236274601594327942687912954898904224704857799868750240848364940489013966465357116198111222452218717948449232807032750731846216030767794781897552081368620043089408255496533871083209988598696652662450436703007726680847228667988855392045555478166106782568770158516176995644312688958953807365488027896282750456063745076486636253977790348622838191440781599997449072385625590750571849490241624110818019164168512250905612923464016615742710900239627997053114708664861550429846873528954356267758660568587410907890053807550727924487877812430834960621986579898205984926858119044040984515088005549286076575434487909514644294099712607796793502966469617441247120051319208587248644693032993100674326482240626223416587987164437593935648692286755641054252650604524590985805870722495682977712178828165212735045540705514235606332328776171954503449630682655839097835414975290783559271330105475002471904335874394579815561589382054811996645471745896418729555528831097543886670298546259335878746366463857133648826204819869998636389062795294543276246610559271574236867480856632158771301930054712929062872582985935139362209361767601679353068957749229959482905909060220641146795802106960789414274864843423824911206278282163131610515331901746309953549065049100390627162056793376532057931000555695607484884005904406576027990121909767014420035386451135107904778997320073408191778962669652766959990623098105415342484978201356066393368137433583582516707541696519280719065020448119353307110204694621081972120956675076169488861529298800233625294292240471325158189901119612312307204899604917217568866123321071255091626151843311331339308131986064629550281916283814530304944011119061648161573684802375037009139308631982929386529895140217217731226676121791519947518707537650453127654457396885225210475784133420489564112893397795750880923288282239282404995918556970412810625000157224995396404170368494242249451399457011099097667293834595690005819628591747556643007037140222394144698602784723612396468967524176931028730950414032004794007997574271901357584159713347642985831390133093730761519223592298272802265114128921456932693255102596190527218969088367366477442693982238991066580607042531512753936786991080694670904223554523661095095660463026896781334513665727410349888156918812537012537846733688410329707679310883990898509291636822408418617696656285137843492321191421507057012286470862978691468610177253493218403150601626597250689764001162639273140144886593848346811814936122238144898688406321736788220301956467534797818024700142137692782705528358246387834341049873498369499486127470973997362723503579660887665494576880628783617528137239303412244002470588187950950815791224034376912640166272159232969872406612819953808705087875716139857308351423089638900845906349724480452807843817492025756064198805678269023762472704918814459531602105339854011287072072886007028711585482653064317566826094369144049627238286990450087466294108165385128265204260891623411400013904719042172908618185894214909733684329779320805337160803794966291205520589784049564495581755046219059558154779541404270550667520815582813495737275387208460585940717134091834405974161143254833370921237553330286112684327141324387699213142321110371894786116749339915870222303831535626764653014203203321012362251130372376429884814010968199938646315085874546152267871002682035241163918123543080711924951482010563812994566586511116358636781104359784663327532326131067301210526498972824425150724281616173625065906340924894449719361469342829057552479142890022117990055893399706215257514997503059937026640064222147428507695466504135495388594454182407612135460281884861116697641657099602716064781725554360014402063241454591936050324223248759853691070920711405717684570736402307305152759833343635483007947307926870773787030842214703101197271925856546619831743993262450203722937715922780839268788772124737435521817394571317537052577698520810472569096332909843992632276638147393028339281670220170985308785253819460019031765864119743450181911028273707501713843080631198257277709979476269890077622055021031580880290036405611410476045242924449546041781988921782061562967461670735922857330232804314843074655711114815889173029720060369745395550146968928029007566746026156303940007179317516443185052524552342725744618490834051406144847502894612215420881337570930895813705855758112953833469997268358285086779540322598041875966428533973020029703036679513731692584742202151353276561477694475033257327230150772358342410405160859518082237503239113824650587535473179248785114277968563786812983680496928209489458772217538188491268405680944214697496469443290986824904239704969674361711596339609489895877066290962705712421159067477577961655064801189959652689268429447309692774432172579068434211463800194658356064051194266953466746221542315283909609214937374037061382405149723288927800978656838113299160508997463864826691724977665286867817687360354134999153232604506886731795582629427633097411848020535759934870571959753190792327714024505999861775577051943641238220546829969907708778162069195504424652299276145295121681314051372991338489708538668869699141930793278045890943623051275049625273819269996418551281545963586057713120413716845013679211076155452753647482046194976281013465105991252281511867328275206981065010931630600999639350207554611093243156072019487203891771508879510641859055654352024548135710183566498847978293554315197587670113024341393094654725819118963328010280337304966201855156667938442845074667337341667802063398105133371021098687789851811786370422231473695541625147062260769525478505436904938539616560147144450228572413133898057896789390994643861730204111015363280530337648148903207597677821681613132913316284796951970046439304424229206250262496846207057161453898565757158992269600462449746294334738665835178677413214881423137006093367958320022110523137940159972289820793439032238721472328510000387483058614851215601224593071960803750982066859527640650813979454481688323097306415657302198767129927933914928685271117120904174460619163259429951343323790830586360107674493169027583596279979871440100221273887812904671964967257369477987107603161747991406201106700462778522470215397105138156093320677587779095656654937632300509285856883111943150406660012357214965341752962724221755702317316128380438742532445401656388606117126840071206938807562238666203547135160094424590758406697112158422979651658326368890730320892757829985716688168239915998772679440660332978187358586838011118654574402303168307552293407229745343600877504798904005821000235474186003563239283272264841366989155566119618728144571065918774988251655083599320486448987710706525339878253174966780646874410012023267429260106495472881573023388717297543966211591447959594492246811468775709622690121025226053566998216080431613989630319122832083520462833539397955150621427002555132688476612816671468852057902262819446866396688758293637505776761190394418844335707110189289377228029695691391253457939267694870539213419104227246396426497054358568782839004418479989360538144883891990113681755090805246827920438208776321637801877745197660622782943567143571633698484530359664497790504531734252828833390494389582506255565334179740158483567796532977171957863854442474040736226587776193331334960183066198373620822966387842145474598621278377362656754011595013660234652297756986397450842230442178974345339589662460833709443778206909219409004297008737879603545613180921547332003759501831024535619458655087257669297641967975581157138225762008125855833010153116931822993921647722918800797193137250062825006224688699288658700881801662330590280165023583658352539936938013726955990345579891428288753081867374942140273733284916218680444529641133745411404635722027471462407166716543093571017329293052164513523554043851008022009851134073493164009621700482961075208529786027923931169993408997563870022395363527281046451040196513110842834672977189019917292577086481324898506140044979529938213489134759208151802126536935109347658864565389914157426424089513612316897173955051968938837488221132974567798966217724591051307206673028288121142527066482891910215772190499610224318247403598475001984610351601284742428034227768184656946054000016826558587548115410856335303940432472984955004557211034112451599028419891430922537877895306747917611693017217283927541248388927019338290504331589447659765380559416470697761919000391781181170941692046760012643283720688880141086624379550922300507504924544115455105855212243929871911889221549758245354323343141100977341611431122762250790489749159632464030228533779436908665150074037504811804271640555354816950729404089907874902507900142127890846650053392223438823681953465538431307995934092971437551700569660254565697086341075151933580361339506024762637809833309956817269064805127205959400006846735184463579229470687975819958266050302798631875815168623122583367281424858494227332662211652684447397006551126668985285643155567754766061055842125570707904227890868016928999405023204510666577184015713012718103923640732975162754020583915255279967525567078941414784201373882571970613961180877156034848253512131979242534909735316477025062209945163485973328068414026835159407349979787021283347478493444143080876146961796866074258571876041781406270904780329715259141525253947327196549265493026124683987778298977885452961646485523749131115595516654385033600814762947086639945221748923609348168725395707852743954325708495444085196304635399861852776448544587111070283387189397541150808274788428748698143886358009503316116048104970818582091385765972538317212755208643919067246994856320011756244261277819233733154671623382012689943694279230927541906691418454372463372940182840685833079450735518453091197900126927166909756196045074023251148266467218996908944873781910401365686191902358468852929092141543748474731441866641236802085507418244413825639133859764615116808755266753415818970864395458331532641196493565733935454502243554409354921411657352494928058190419841742025011685831564572691041177437597105630950868651840394667409016028342581639614288570219118898128692026248026660233136561737436815761135402691445262379904035171754868851622582306775691961109079232178559421510963190402036850208426343497971509328498866429486124061279075950538867774414283046040418807060278891718932479199298449571851444621430248911390391790132147566485223145733098674770244445940219730577592318642463970787801824844888548194330365756340907056468780713487753826002736956097336459315272817363351703298269714101418635827636350793818872673667432372438884059613490617144682596712247915625063813165396998402313421582890143249404109493851390917293546433295996070722550677472419930794544358639351986421564307044874755080091012552718608873149375212910702447708776744876641561809406122054328621389617204569556645918160981201637556361102854634445823360354146734147582966972754117097576330817792027127614030446701464843132323382584510276624152582858564466243536813583637758863223926806860762545333078619615683112989473498340507418787477935196343124053114687553045949524792664604601812658470403709829506239173894139202856152044019394731143353485452292472526989193808106287367321478975861971939292738018823520143308670158396435623326372982432073253598576203743350023429566871721713446412844129462643815464051462265883349751105981214700223952105858172491677687419283251587522604717914701754508804031766645762314477120500736967570359021078665073355557637240589120906544023972457261756156751758750266580548579376032297713645571228423273072161779885627528823324189908804787091482710491343158489808217612602865121504205470224671034316863150926871225142339297302310676123490866061462432092167351353808539052309802796244288132257199272953446079148426420397283947365694747424405210513362228783998777776969682427098825216515970113435053952710103495285331663944216457386793635929415773195185841996914025568663879010607964972052316438261269896431403229480059489149464618392564108411020781739251567016801403379733927486175602075292394418683143159040275375056904248909397711716026784081520386587631848843347746521042091176244541416003065679041345054694930056270163247975105683915286203351899893873886624178125958862190452946394157391584690399606498609192564838341774808637476862194796075668054031401038668247664420662241791328915318588671388774735516606497975282760085456911287472198187259182547553544867227838546047630744072535854984859239589703886453605563786291479966811127049300809745716981105762234995865872923159228124733531527213748091411835127765175309274033999902868123821945273957488901241822777199872547471078225906411432371373290390407322008131630887249357587421047819316970675922450601790369590074628447602755446580283960470790772899463065371897416722458031540851633029107564781544022163077228983108850309813736573151108322426151243518090216397547591239535137802168847267628612005974743128661841126189654059892884547968968984958710313730309641186497706641951229065778932373501044387727157062509661875412823984764791838901754675687613513464201374423629916340225025405892481772851174532200109420635144360870693072528222246465517880143396538848172100965688306981060435619589834408095171481182138692664610667735933389301739793059640908422354326658021301395348707927932569386993866465959795808709827529250942702624158954725654329300011180155646668916538066054688057404075266866446155490944482023650346211858178978734498936602193818203693401146035383002490659788087584531092865598586678543361828821258775396487320033213553578832458064335753215929246524751063842364066925106556486595055442315107461115824623920536388140305566183673502604045420713465026241002292966883934681173813292846184113855059314184462485832156381119915735680614545129469475111373502453074981355421230568993740704312483871104086255223486964536870633223850179291532115647250481877451869997796529441033504072384453298859729948867618557336562146162737818750562359173962077727677818151173743106505923887257965850015560459371064593539401220638400160009978060520538928264578743583088332752995711730743786309812538693460904544107685702071447221192700500198693929180256626700250657812658170697321351425376460922532484445047382728920051423687383929745577717994798441545416577189595448033867668589458348612114044590781230283666723589413889724324324929335515804455185564212999622758195119163037793359808432903648381769822948673772687493863880728073258893984767300142250649547606589302033946472990400877596279588838627664227047657204616600648145453118847142256436326207118475028588926989324013355825032482229955168016619709948412921225981403372461061712862460611599849897160454073106736277323953220359190301181381076028971789834681382883681318786722185887252325550083388939055269111551878096044572056205106434279169056037164641980528193775987464293970268925420212304099313781843786699229763820744888173613900508607485352172999612255825530336348709810202355986180018933671454348069120128028540581592527766523452270726282057092368616169124616876475437936039304107661525040830557543595344809946921069940904960215474423753919328870112802231408654212001453009952918095238258048852678212678451590610020370041427987166008732648087853688644649223601567500745760355120593854995136727361873155439388391258570780136483206426848974724626712818066312671279019033798032081639337513867696061487288414353913290997558726933738613329673133299814001037959025920307430478999130508841274094064010581037111825502130130733705739895879202847002341203635830985244267490267337157756134020721024324950803163443079976156741409617918406981582001186827422956565505662960316480856598305559298889955207072145001499830946001606307656229765751184357965768694123697416569836095632210812268278598244231484027507260388208432482866487931655311684863222148635485229052520632742945264673481236473550376984744052266367881765819295606371404396573762457078332103725434234075731016765787821025535314155993064497609525398115303535032374088219942013199285971441662772876152538749247449012199025944100115364035218118585465943800459919370234610903754207065925193879807526666052750363150148497121586038701466282240780660043191863116645736544616955243070170256215095590111167979633348023777882758709233642028367249038100921035690704357887368272516998563782210589918364326653295271158505164105783171190761426913648828875850458283522781098683640582362102245938963083866413391176644547741082101975657742425748722642781548799441490455242903483408550409233079689891631623310875837975545691456447445337135982816933659929122960487577128163837990011950108725320312494755609107708248184487568141413898734691884697881321885923491988826141018528072410422203448334487484790846737095980906000841603254325738117350871135107236340241755324618390331129314705681015800026368623071859887599480782742406960822836178511736441084443371745251923469210426732666270940211271595547316061795143778620694159830761947966539759505111889450472655689803122735871188236345784924441163019327089394171936820041503381719377208584233733578689846074212504859204327948132407049477621777846212121611916235473375782973326963512619611350553712832688814289361727804910043110864144424227030487173851601515469952516400249341688446074135631527800055047190408792054258921781493121336880791202939338032005461144265749207499337428164739600307087229877154854925305622665624132734419334729817975214864448421203383338717197131972697879727714772600193658799847708078262875580456809977642395047888189635418121861615217879161417447843447639464966024029611554206670190754660130740291792485002724506763312190640404169887833376234245306104530867472263750725318215267994676233705898037045653777137413343476378376346667366847039824544832678976477687622569474806990099331070078785895648899455050176033900774156724829011214420795146713569907690635940920991292061808499749311895655804327613929756413960418549029978707153063284604016300398152676843864295441045520448647201425089957212268533180675907708321782473780680323933980523365197157607870292447405142482962266983374782705324614824753515530819581191120801814567825977071457347173433263435048442261314879555648876961526809225944898279203725741314164847292317135014106194694715028628315018074898512968763500550836399568537585170050258893624414893776600921447230384582819215748917331656447718615793794023777891719091901853980997453233337248653614083304339864666383782282386088075836687363689180384165074724152713426044690981760049011014457884118317898925676524116011238954545910421841936702562133529118157619282279842669186425971364005608744259853971511180593441673269525378954175574788289975347936667476008582535864765318368211644616592124029744883465071772339323615866178925196831191670388958516417642778961691746382739167152238410910079476099515109718793663484841828544404002285996332971594001804905106974321845198487567850388251616490650161994494200922895269345961363688063845920329373216587426632990328546343711168090829707038782852310736686521109361544861418355983722310019348197791139166398366039636972602338174784978952996788660190970338390326012354832354195879485473889683451346225689261470008811015906453349436066517516299646385251669333020902662988253666110610268873255189982066119203397771295151260617756016799710073879786860063782480409092839668368596812253902068483938310859559312852793675718880595837225421916722455284894405884154633802678718299508539164220186173390668042801711544272608121723589656606758300831617869308387451736665208612002064411639682603371696250378517781104591238953335563060531379358139186095235074692605033570246695558416647227663796283823819429859210738484389474073430486278808214335133712762534681232471762872074498677498243407882977194124748179539327233148348072013477523219768680199852274157364468696338016122387538931651891320348536771661416040058903606305370521825609044979546225794426481484100817233008384398910137962341362759310712270753600975312196646836698477447904830644866215241239793834372096066203221672031884428780198840840251618439879572365164070803619800117673229764924208787765218083017184661310943599473255076422642306072610183656894641536783709272601076960892100506964109321446724995929111109077561182334427752579280549326652385937798164252268048294501913326810721213281081788430413146456564327317795012490951601704605557498540676401184124783971103977648063373038283240508819138458934769778797802426963092085631883947770734833479783489350476828432597941153354073753260694743858760380908389297147775778807550124464419626280796380588164697677920604057955505711419825879252461552431530796266717894270537313570138895741397270224684120992234930706505771565553398394148647920343615735956971600771823379380241044077799623674493898424771400647477326219421803183903493596945448127784888348366353799480008350557191790807277760931212300993020246569474462095820146277808347384145781204505597075631906468807664803951073476554400286806566613011459016023973098672393918567685265395061714669454047086350859922396372744412941992568268753878062588732680768608385958966296844572941119767726010239231757425238330241449153572868772191554030017691472967062608783664868037205007789433835420987992224021156210675425360950460806640632082824207384550575113753202853607516485209699992011797309448827966740790672169412987789755758727609515743724693896540013345644713377139851259266645549793231838033305370338705575429327315482598220375282742116768175451429385834639301087285755902312468627283947214188550376626550720911813208487504504697133631399205554316590249168715792216585269529266022517601049606056562315779237068495713635396912015327109418952193626453501731878576560731748481259758292972981900957151338095595485842609381754281252620718510832789814621723798169981610229812131938005357739785218050486560259580580183295763577707066491292536793640990180722008160171591239227561488406175010284980071334767980232702788815909442774623457255721367449398502362878506249917998567327500892256309531043614565431847959477407897142763088912275078928835315115997197921113707781298145757893734333225333642867802408565940368978677511578719051928567806920279093336398577382583238887149261492641341092813736412521043851689978768324392545339585173563118799653462769375513394307269168306726601902972178128512771925367421856672013958865435305536808202082290771892097266186491480492422028566187004183721970944269888665085975038519885255056504063049690816153059615262091810952535331054368289869305321852970229011545776988391600671816985088263835742118824881370942122067147765154589654846525133562536304481222034502326951470071495060497329884650390366293097115516700732222674723523064201922528230436308024974721171939651836498382732439520474362252157990799537507734369137130060087159829712758662226427038500021214702231008229315267921051603492330012189614130150220007245603004331296982998298793065580829728115645486607139946359799239527804213364045321703588519784473396905416283348443031219547531867804275232475009813960378028913512252635438962915616829927640204204725003712062909812522242746785401171008920416356167156888546235219173303221018296747954932259809169274724788373066586736272740068216266871407956615988248932937196637540835624726064635297329297936201842849107889790495047348638129877586089329138439333573040869777453638320878112038384893619730617712257664385734326053196462936537064404551654111273524107953653891963267618986292552353052455506904166054640744233620578071198129651097344919174868668386691919460582707534223294087856933921316753277666207756260310937344130785136873929334761640769361921893999214403168462448657158361689810946196350935810288880852440177496755731865027667060103881340558327335848383519049943880915815206733995133241677217233283886390150582102612794545699297132999128515631178635197383978135789572771190157575096897142407703659914865370100693476623026039270819691207499442475273013860838796685223812462823794497387131000015883532131607495981794968315473202449882062652048734388567038389654116611123420618689741741907906644187408659211260350398865771110578267340176364269516788913563671510392980117871743709993715827563242875746139262678305793387415379798592142846511786814165518668626641612888251692503030641532954655568032946733541639718541093002074664840547260390750472946527864375547011495520621472853263686155383570090096961966940982445162319021516313306589150265630650549509540416447387079935344833782406201956878326597806507669502134030088283037523252337436125425704207274568683742721676616492416391785539156375417318402101570093769722531695427344952622968542772249893491130411581025558979229442972540696697252726723944300080012657396260458744509365735834132703824664032468396535160322492228169506573251227899353501721570764356312543582994551503018229405343009230152429504735216243544656384159618927885956048833849373815068313056118610380833970225877696922129981817457369227774261131046599563263440275593370498068902503621178219983545889786337020872411701164568164103656589850611716597070787404774971055545970063540156766440327833237041798963887656956296499369839303167535567775455509631771983660422155220704179564408661094371445059307996441045615636765859810148370314042047734825406466889504633859000335956607715816010721244375958337630936673812406143530151577963824227259667389706009991736254353603286349711554615061972362167852636421089682925596062564190154013754240854537018007164429855548854275113392338555298894625229174950348963860175993219686056005304735125264175050979104243314301519083937055779433235964618388142571270392385502341196511393903536013228561648687177704200050649801491085435349278141295333510981643372017717529088454645692427487570316036626106901849427234687224543328591781290151063684914883926410636996588020050152112256330342285520542872007768180709772295289000556891861852789937186283170448750814959619306700720506975424994173791685778777527118142281646770333496260682656137228479714674942338762799359803240353745115056063582810955631889814635478463415714741773312954536767600805010986729322489518744668899831091830576872848648017126811879696435537275296132289083611663588156320576310862956380554901281499979599833576429267166269106047177956395067919483610061751128277980017399711170548837896765229679000118131132282952767455935649528062765344912969248227559636731036636874371325257219365939589309320307922025684687162981465921736955139399592980842670313593940713549635556491961338242681192116294487654101062982859929409209688601171588164092236492647060045259700083050216292375530094819737132075632132741311526555973199445896904067376761094402756409609784285719676686943281527982291618073237335791174158144568587839228599342785680038854779651413549691145189740183853363344792389140749902541935363172678630061094509690542432899349192636086891490739913036609202722481618384174997092543710060637974971501536256013687413495373018005179300204486089091456216889991553529500946060235975586685987890896765847053816405274692553102924718877661462516222544003778952088045037626831564450486248644125691630482466146177212737239523198450288484395251252847499195898538787645337404365633323160880773740498244803462035517822956170975883957068046976912660801519615677253562302213274604072468070601132226889831991319350721905995625765115607082866650708977403808735001367036934919665992674215963415724003408881291087312719491750346952774895783142414541300176246192861318257154442946119614464739857284469246402267048314340747920836422263524686446257947239255557165472857257295571516423839402057021119992704840547867043041960166098652790974383344979136396813038296168746829855535120131034842192715298058712103357786761156096914190711522781956768510476289891591224319398153351108732142847243481171285646977463815143204297860542674399254061047026645505216867622917443789433685564695952167224598793227593932499192144366826406593432298050018451939277668989162410301159332228240705316489302322725245615146448079967712726442142528971188645225492448975982236781385694477409127626550890772288118530761532328832735683322259783208301552961013775069472458673828474884157111474482469607609462457319340295025415881778167743391362793661400919742125551976781638726217251059724595852750310844188781883549653278332602712638337758904752641112317184883950238569935590677497781935592014424029291735541094156621746709513131212832740227075964353975640196023397744348988190947980499696821031969214192927287659127039671310946102883393620956722593785030385832816760713587590530646802097072999873241349864982382421991302759304922493566589626326441572677976700105825433444334754414762018580871406527772565944775757691853321394970580602204088622967698026346943470886035961809136907640521243528729729152058759140657556579314592769342337402168117816425211744458465324203299560585333369818961040876203856074833051177770030779064145020141276938919442223610535191686374681127592350524797256353194896672247646785550436271221102316649969837450924671815717114341281199328391422460976554248579920709501407112751708197603158503573381490138626154155181433594591771705015655277604334456527119606641170879326785785311249635924928036997197101644778944221204844434523294997452578929379836676565955371658264416495709770969175224822783239717526839181811475670960294172212719087063979737002991399869402064116574282009049136038299880750741406735278170955526514918493003136395254663649578034763054713408919580534381582113279773713313844010828781443795400804745984148656673904303997841682274606198451415507168301310025527432301099921365943027392829776058678432679193518074659230144177244992153258923854862967956268029384041852552545260670347243725252088062468833672135248726543738165985191889363087271595856114658493857696084256897448660343552401778690795185467908526069922929989170697846472828255865655496226399555993051733572068667235714074851039190724722808510150236463056944176891347495664081319720064296512537529393307609412266910357460844851599196163309449470486995838795892720819021839680087637383883741100665089666567829829411423051969355719713524577930250618247754227631257834829993057673097427672817431511075757207089292020556835536575475087964900731142133838955268874686957137692392498341088131768462519381086728761762572284605263366452855083616099943909758843576752801563862217472889395799523447049068972936077097774636763012971539252712216849746956637213693414479114366749692615144902611497377943220523738691667626404315062825271141278466349334231182448338420127210624300788702844976958037359845955925510890217991883492634917084207547207132332673033979565106262025632424578503823389752138334129454205750782367902544431048651091860208477551259970277721410482088733185335843240045754797674806077077249600649693404796618973202101862725722983304433045365413031710198849304251132626902087354882986861144830416337819327356485289492909804911263921390218319995102988092386381365233236555146328047627769912294697126064786700369299635246709423128906542075964810371979062255875213988056334762621188697076405594200403481571255689831274628864475470693377743950222515190270499018542233445603921038770303000074735130729141594799899305809441310867166191416941975035049644701130948266348454216431854680295935789330975235377596112199247285092427365261444384283025855316551772041469399367634280086086284585040429793844324188174076210435895462281999415446603691399315723963726183586249212545289828407922666735639945204268258221676757620778815272667300045987308886075813973532319757828788983340285344476858367066499374938724770706598920437330224690986746601035033821524791651862891719864359307562731226138996302132687984935994713545251927662616657549658552750983624241775576914805119321883826675076179522994853879618562686418789651269414075635774139995583506958874714340515258874345071340045901290227299840700073165325911095186988993123719652015385483974519372602986275989763205949417013299144761044152551810056508691819833895712805696494351453651048138315362122383152698663932656374176195664767839839758965883211732191692029538064748190612697089237447999593813046555637367136214177833225255814649101527902095445932342861832626962649766501852119500310077525537211914322664217367887035098833664119713326248357778290766055511387386875916636807744777683415838398919574675637562008174370846442047334667062558054880007360059736881040360746498861506612021633402950505841226310351000422099481839264971488238471405210145655859858803958469283339804119404291504134837258872030752581730668856690289060439175273600256703993972337887313854471557703384397364298439594360563114370720368870361497071337907831285302146587111846841344258625556310605571288895778734275583214405626057459015397340890918844886511305229449126647916538898402322743136404690286408720205818491733829678090287376015955116107795760558901404374813694863711445911410692940203471107433741451777156002616129484190792826217396618172375415451327867714554344909866273444936326943426148639226138224452959392901792292203429151514618234286083181178824387919432789240943738091721484765129595066908468446671503336872677341341492397340975147295890338854496943902714283858460170476490967533971131847253824977236786084365834084475171582686966223566750748795412404066969254548159905673517401705348265649864381142329389196945941103204939378541572058834458573430288396321896040090709453499407982120139545102349632367292836290557975297565745398522526656116785182897471105178855511926554773456572910833732425217270140334126860112171201750058249042071429932593651282287847271979975383650103170962630738607396050740290538524164339591761965415625721484302081343503395987177779294901457967861129095042915557740589537968498604568831715828624915701155696680378121564413148703136759235898137492819759848212753783146669985610133025074980924269442214545315258184398209817897318259543304333069375082220962456286247341784243911646758352343037713540833320252918438667699004484824341292021132125998089663855066482380271563590176141851767248301515359957220454609506989463200890129992391314314134867981302029400368838413581810015881324426192213960613846400747649008469494208794551118098439789544488991838229058274814335357097496620696358448198627317379210665045369959992916137423284712925810672397691577935899905067913706025933037199600855031350809373676625725621010120849556804148158387942362220763556326754108357673622717441809811779100931479993035723103839630915142095051047546801650709527903394171299945565046290357053616970316458423414304313569815205752630037829557927084914027841277135401743755601775281147170445778385879163723658078104798928086089272937425324764514041752269952616373320817290398159311494686323064760616964960599876108683060203637589056569572488280285521567876541655746617376436803815692241565336877328785700406129624129798474600076587921967171213175107626342589102572134334804888900514096212368843106412606992491842467426671705558130095074348256334160569435659974109162856372366622571688968273629267979865481608119381236400058919091565752482811738210484461702635939613589975684184483429635924698436500776220447771948567968826542559905256602143935494085520237532048933632736967197674954919891531185875943275196323686548053631681234417772906000137047493096805664273019334104867219211959912480219973531844179459185370820154690164155830022494149657182673118292399926492714196190461454546845477527290076604492156191338358363454735242045533402717213562209314357373808925654442470559559337467086621655980779080703332137344900137098613904579363138355479314688819407121806507679672911493487379128340968741245270671551587155068303357286128272234664230588091753211578145468487272020621613434385024762157726268780199259766479892009870438193597442473313791607671811042222041188248640407061402028650501257802724469511156061965850622600192591822007178201697529761344047273324992128087956160213902964788164491645448509927458381370074046805567496021215240022784371825700650271804588389223601389025230598838422464318227456739924121309112074291916364852874371587800870612961925904852710009645191726136590302671492312496430576290413776374668012446894931998502627202819279542575118797641956272205058881067923959217361417095068918673341308085601186708125197792211781260849880973343875219117889724358152415862036570518701366893272947859424292677062799011596967972192935738794291310003547020350329541095968504866882108642203547827639294218001459410949856622347963039265756140054868012242409474921081660341305363313960680629981953329130474126739268370901037403019747704299493628078486677744540872303290186070176177078914345821109855728206502856422117932910484547036789603037805530759093923559324969040019203071372267094187538679420007393541712358130547462097934884808836157308817049018415891630644331882634407401115356532658840488591167311598797187744799442698811801474473578918717451241424156007326808941137537504531853028915029881612579590248694512973669652349807493010567509258540991051144941294697778791497364023196211344658697265565824243543371993214882098056009114557156259599877112203669712311221594493859354843329500888882358924577599573906824464724229812295533870276573626796182699118841977816636262611052649528358567257612172427669108508941094290322678837072156807051675945993727558843796426192650381974981116469996355134249002836919910258800134745358088231021268330341554246721573023075057004630000957083227655462127698674836212570072530769922000948217100671269555551400880513345334022490100447464693158280597818162399643397985629691607875057685197618064435177998940274058340472195265531758038315796404081169958338671590835595249344459273241037102376051443013853328841412918328413558441976119062311752874383222392996688863977430487366351629508961293217265524697214446134075849270240774879972320466000303435334437142280291982049535291787061129259300470221460632542029482658845621373996609677600293658914829248009830406670634719887453511650390156997695245741259300393260348065299578388941613273066173260287512382773885850298593425818658058424783267233792493848346189420989819437382134057246093322859681290426156449427693118884452313025386037979569259696208785736506887836014374661331170476357338161007827500217937945360596928787622386769868440224032130271211047512119042520770121157610360240520920961436961216653838785032999269632255070499005073000800488788393114840114627678837025334902025104770929931167173130740835600823788775111970773391884157824130378845312569098469431109417294096690754197509089528668288182117820232285239433224119762616990287661750121869217533094288542428879868231356023755586202306590593459353102854478073290538490036389651232652373880299468210665483527695345473455490176847048989753232938356213034161446067748728666332780897304927888635389608479160862379857832558722415180573224299660780843457428901916242049044537198059254856076510657856153938082859757769574068758087612342109081081146837445728843826726885113968459158198844745042863895456394238359633469848150754521721505178428084749549242163498681666917522275908235549750116415677944705246647837926312604121983895465114703215756010784901313402785543496271073430601572295993650072921135426254945213279215480252885024165513555028032788019693669784885462981177952316485634953770599308895223699894449682567446394713169683675214685339792050346754902516146517706954591003363919104897197580958419446979280497115454738199944448169372116211557689338476252849970058434636010361369507496985986475102500411503048848510411768879225306456052372740490738026761123007442989415664937970590945395695546654160921280321877431253224139748664888641438878841619480512085052232756960668570736616069671887692868543311852202482006791108364128279395955365998572944728663509616662701550364849000574090456846956991543922928421912502825635166700018165594927437675680250998888407313580176746054394099845531316266323485074534371575413149307714526351832343117257308709591131430193936223733461936250595245167292164472887155158994984352617024334983025052971490491875937747099109408890605996186364299241296376058392985168583312131332096381106946988653613469485909751799368780535807122290952744179258454948360326075615052175788330529855088455274971813079203017251124048582675633044078985796902013565630550450770088051385158596893692724984776547214541229474958203938658559609274878405854062650055452591477108858612903390548841248596006867360057242634455901917333140310758596472063009385296184029784770738049113580259330352005978984251326367987182333316247534861669469819655317954543627920915248205559457554049254733727707573965159722002113222880086832558111396388210048167471705760712248987852853472440243623301845655116554838219236824233481460237878671567594901531675998863582912298493377426956396550955879063014853398442093193761655465812570274719316274334802050450785520029898368537621482426948859736829131959633847766246099305253792074583086233484503252163897057496307389487287853228898993158575097294556536072243549144474930570423491229675814735765281920991580869536955679493608634749928538551243637754239917032713833640585976613399107429431332497899552437589125427188319022849869711399414441951463751330271436041006629695543929990112573879873210456799519135270128992523863171809153387495194997927337242929461445379679270657747195988396280465340666551529412057843526727384262373658464815856115967452879609633255533836195141355599981607716642389348046743137878331101423620731602894354559164131497941279369242104180436505265215464786450909055106215621074287327789376409977926270644051182833418224195356464787553348149113249987147620015506010157169106736480433279948002529922913889057864526354248245303961195836728553827370709471094771964294205837186818937147280202812659419395378523340713547606367362786118030991303683272682129989180353962344863086595939168587548485729224369882117909945992659856966190219155644144849632158679452790975795552944222100911327404878921901428050478573102526746445408386908907082643501753501614006341831565750418108173450339736127571483127966711634766951210593282437629658949699378464240811768279502564716621288303963233075706162540332574079822137577959386949623894804192172932776365771505971262396580682103752647642555647915429977086818654676004474296547594060604514062427992417059890418038770620408801075851901031057870773012545622726174186413492165644889713556724892136157047730206128825520976538878217929147111043347222437237017872456378021875987185699335253832077129047123916137261751398496434091142166903354046677202231028166221381354675431210883930109047144167555553992836411858344763533922136955679763939963914158977143704038896520421087168996648197044042756036585070998172316484950393979880453493146807952171661329777856092177476020745344444931449013992854408636847831183144528108229999145808683159242327492807776064595901836531814095734095151698582019901467999745689047941557607177662295650210890000422018381094187453120964463726446792981675572663725399710040000738677808631965255938427971663597047644426791257923943981733815329522065934621321234652207464540136903825468898977442257343598775845691022655477598291550923567374809952023523958794468434993557620475436893254841005000004543605988506249870827521245546310290129475794954590530786289296785898793172452508875573422872296333094576818833298370572539212539549848001311204433179027282649801017517570608373276300820064176045799172295752068874710769508273808341593511330533113947656181105338623813961383643477215767485853095811871097826422587835185451999808467827130743017373707574841247907923569096198791418203744974211286146140241897070257120742385413275024798958029662665876045774330481021410173150510487918447679107926001453190908621811757075249350191192069643288318956910709294086909133320666723280570666120265724106409654981764770662064922122963248213852191792548185940562470083568804947684465275284831693759151531340781996264325610668847529055038200460881916655878758844662886622163805579113790498359905134066376578485322914072474490797482596948926951803435908916909924441323962322799786371363576313893468691535666951122788831445253816335445960259262966118301532364606490207260249089003461126468318817291985317440385224133058934231088723286079132906038250431953404356455741188901223023349972812441262417134898291006438816507662526242241220168406211847129712001727238879998464670800940057237368246746108322006988799074997042396816925364968194120022993051854786562171505929283596046869420486526209957091654119255120724588093187500306804775154252016184397906059724959024288413777864551432529642127479064443951184477061926195701083723380434517532791673851528778381954640684861409464528392130766634086714931842379244562128909579141509939329130075132336798878950408926373811821701665460511476013177246329023730090933389295293597236822269389061930538790795183473615205811885669398771530937655883649551603329656829586916403319405064194340634427941948733126808211412014245653669262970784645540296498067324414414097965687536704745168628047926224880951599913700285203874934311295526255611150646005527605769875636929814763371851459419422234879170639953822310378034364911660241453594115482016471447027906989688674946412759730720272735851369654787411275155475374840461787005625612393228695783492316919891690456760776603116480951533264076890308779763084208489893181959228556732514906679013128152288562791958638492554286785980662323388701533666983921711018610099378386246503871503981246344738279846600842443327442929548705250508132283232638419648949058090522230925437666994357412809598570158061799948996214608202173980733116332103594411761841091345195705280137624410800329455431562745321570010266846841347304956775418898678629687608467475180297646286410858488873734056171316802356913746475719423561444021341387096618880682069854749480273060797169513851861397815951795303381587389785829905143031572630293732600005125570597698079529973768071569283149590773851341111564331531446982459666845678294647673048293956519696943201844886408325803112536155479055101165442933595174012673854883104583832780277492336306543596155070650643813286136239141035164549098300150513485911931947747751746936384452622941717598512668501979309345776612536184386039160866859314582909218301461290134072727311616223194896918746261575418003985908241663612177741454543012204598844152347914008881108618200093616287319769027013443829689641037434318232427806027001886596714923049007393824644024234467324997099912940244906926771520156358462611538178593310394653167074617471314807614728637961971354223769862038172651995341894831647284087570949540084250588617121634778875411502681290957755480911502764919251323554624512881073410490453376979198223232067959656713869105624753898970501017597277140466603641194434688804136692135747434833307472351785265146999498396693860472378456537715514134337562591091831534183158854637498712403190034875209139921966319663832519533664370021228102615822234979993218509290848770850910536770479159435829979978826858118702273328330885950550135236970801797864944520974284044220520529155505824668873886933206436490491797648078182895957419556065413092153247248003385012983575934828361737024275506634803202263608610048615197315468035384521277167989132175615253442801146656010032939901904150070050594430306165219439459404810171301499152633677956665250152258294525120014545435168499552236182365746594408026268758141452498131370974390436532142684055809389668706687460590047239002998586694739168768659377030878243527470158169149018460507988286355625165624538257605054455898391690032021449465142829340378289190200812822977470332150472515834118677487950025008568814748153215531785152907715556460055803818833788997394537130617575694286220059399609598692714937099864146689565573467374528219685129018943954831505446747732752258112858155536384491176538233441609851778413505862675216615568468434581408815649239370201227051251294543292016151695657838622593036334008225509153210244416923548359150151831320497892040083716970930434161718110078658422091081390113175942788073584881394270835955395433759514843158307887906510811394957276432699042799134977294113049342102946587095942109028980136336652581883447091848340884487041023977500346925001067711125941500355476661463899695835164020042397409709947351973656047694713099512252998049163711712002416523526121159807986353051667432947378691855554903679286497344322681081446495072079605694208895500772333395349703767747420844567521040747642228542646662206461155526645973118011443142896085626632256847369526325513843755636917866758072160862693690412730308676601979702393464453646343635868117543328965841159788895916273094152449413806557102264193478542848136766403026809411720899400388380035730065499937505223643793574446243716861876010196284363105982325884965258881828807737719012014016897667031940005021122654456847791841532641565742080617257015393655305799058703917010023425274519437572156610658317928399775591898380231637620348231975624982599282178327079284275277721732124520176000403566363217404857612356358316740287313997372202079860309567260154333719216666924107383488433098762091369474552919458370899247351118376123849234393025168001570946889500042454411823836980344666706206505815122245392547099947517947643839794780697238385853163025012729286772239169285927040145014887456883688235210700367880109452373058383642499359959861358156564971385647110948000300755595944377507459082154789094139843973903635723071901987058719200085315634541219335006861050854062088455532130022579187400861384932849412463410111317610863697720888561492129318603715877642140228398214768863884381055650544946282724445584435912548134278382145069643939636646317247209974789883595043123371421371369964650481886933087700866901381163344639745925378821473527967667532829092630383048971756273688009767352342991866600944818284708223251063271169080492629809486877503285065082557376333321817953108299532218995193638030601988911812452237237859016767350108148481993587049805545543737486282390419425360678713641679979101998217303413241189095408691958539326470606797306612959871856351163447946572051510318165033953730334929660115217707249807898083158881040159699539833705024408401186061901167886693936789109807318067928206226529336013034255577891454552566989846017477850713871776897589259835823878885351728207253019290205059733673426230579144448763789336909745615873690337272119321797094884205800544416098624086683557422580437089550449994998054155086745973273724373332427394104413957829599820042294879025863825152975730001192761887671231689985704864690946329663746292913635094921265827659170760507142559782944064915814640928889541060247584638827760353631318001851910651446909691139485293512205054516582832122083745559269546494372891894023243231986742619823422882948421736946128990322499736972564403264426026242227895608380573157153973835063740527078081547633062974427839851446760664365465843897949872228326799093897206181452780602744192188822461167103818927362682841330784012088484390883666245815196165353120549073141159338876352895531731234966621918521080085255827947327940835082161061898045685345516417391105662465842773937053385664786801312384152114695772524663422989090869256898027980135947728635940940143836866786213717646350155067316609128801744884295300469607105920373370902620857772502786599512360091337055024728500804198891335657998117412762819692166127192637955734779612276639109396008119663781857294034663840243039128220604243762014238272199416057633311065898405164068182450543142485134508892859690414870556697040961270054003365513764683485741671780275807324840572426113696366801319482579147761666947841544663692023551984271096256726603692183997213530144305851960290593760931510537138266488148033505064979312826904574997772967627486443165566890716646554219795992208545425289386272501409053886804478769290164063937646143333868664024819964625489708418885801277340414199097340667282334670044053281190956719417589102935001866603379375030317778532479820573656342364766330163454170588371420996332811919599137747734428528635829522165336877087332882673746293910431917369994296010114803093755713024330113423937057232365933888842869117787808585532793558418606322579857336895997242166783773481544077655943008768602549323195218613773514207877766161787574899301322093242931837791567317645657149525229877449801775238913135336920380323875387955169104760139362085875302890415387753817674344650447177213109774012125544277694350462614047034736494147246359122594238011725017643893801689034090657571800762098737497464298554095444950657617800118213296117283314731379544679631423699088548824237091903329761593409145173017968239662871711188685909808980669654905188141200160669454580495397274071293902224962067945463214693877509862398499958330550930258906936906329221626497162126748046007461227778623960416705603424542910745033739950712509255063598465838218713885951924931246169573249014185073483361665622169042883204972366311710857797014411612179341234657239802222130201295637042179823799854582457019020529921458211365278065238036185503977130891082316590967850437979247693927581251434625000261806157839988298870651960403293183202019556428441681382570243906658975234820082577701131294153118253551452724947987165917960076544585447374428997553056552165274549314573683968161249184086447406772322731743442385610583521071652411375898343331479809720480575150448107809497869963663007193237703944144130282958511054069019323983870372055708401042350448382194328817729582024685998349723852075377642837085981558310804847017573556747998922845354771390971603517756868639491175044598875501843057398672092478343116295601481936184175462631870596374839403813285275426153123909630989404107943487838560820183178149608069993127156780958201419173925684629565625135994838242904854740873889651501818332877666601035347378581805309187755815191004001098791529885160131934520269918258081870525783703842330693241195847388523614408987968317497961351165551074078715716421386257967976090510503412446481613651172270879352852742015069879009603967002121135947192622452604679338785597867867933827878454237986565580849525805107709363147237983542647131675666732627429417592902952387393832077214409943310400106564619816660649764354521315311901997358608861817725501514133481851355563056689234158725648796902551527991073842212790280688562728570609402137380344938872556077469411363742526068577084427418407254633822081132733686617539322383342679141924427202816472462068033461769369249523987784771265670857443139220363024160353917914673163271033429113086627404966601833502326770214318508418391040007944070778393232496193681016253546920915245282820985078907446040001775430440772073572235014801805586287364007766813170639083548793050078998036544512660852111783799487732280690418679522799484548833633092082830462051895675969187478757255030960692571367263089913976468312386792123706326423940343407455116612165198559185388236420186883878491609580214642806789190697468548533248202835344268090476437113306647903665703393731889426498726403566771255002213730584571907282716652047004006828249623119939155810820059439700507745085483362785791945396262848307649451639214423434573690441332608699166161099698885379009358471504197109469115318386119160222608209810137442927295464588454259065391274893199257649092299341731080126421982677178827199193812619707848119465289730014176659314459896362281859866837628566371616097395477830796326970657612279488074923638120938049418382713257016727534173970457795213411807946931973555776190869143558375857226022440973316280191130090477382447204142229546640225184325591467465992705588607642059802037363561698206005358774551797137948300611183893237020507012663066070555651632513427525237377115153980536263945573196949558538590082023868377230625002681540602762092565695278518218138501337743920634609709693038667450034226858420808994290349440327867428166333461086980364845315923326936752997433669156422835448149541147864492440007232938710468403216041949470142143448705610686231699393180801550482689286753511468395349096453585548146875952574500486418320856058216648380048189322389107003206649830036789023047112488649496549724622152542988452232633363974260065882781003845435847821617173195028891760660266768825513448121253795014735397983749834819039462991980254543342355786625062681871073280422282325949455861615271797285687566014941052218369988424842822454232697896509287426386346018115749747204702772761804563289843180031932974016370013875400329628851409635854934583383903178472450123480845528256287391096763036237487810052671870505783966900407419205654093162460609036466106782763095641115022702667474913647541771981831443351988989190857662108057077743704133325332078877877909172453448914512026911898408321792689014643761964773931218560350935707106506495529972419230335820579358565400722285515857737915157861670525320954569029401739619573318193014484019372004042100997190400681673455571872127603186637989205157374026757774340928391646488008116737909988604351034805574601582756778887476953284777853043903737701201818677573082805073120136888347382336744092202780209162293112350625020340390772320625706407165697290627076964337158790976937283206156541188709940567429758828558686627391382069628557625415891648274993052980719262405019220473819668150022027719717192004132386111239527040504453660068244733651264396459689223887877183155621019682285077802862113207848282351886487075393898848631388062396601060124112883820286709374413961107538165847215429995493485545611994604791123864084483080288307310095808129134020220009868290158615500358131400798595873636417068492662558286403335283892469518655269372222867178875569422505211399198320097753230666285333571098388516537282980625413852583938595223007876818997367746062742768296729863293823254926875743121189005615508159482017581083700828578840824792325761452322405868969733000799916726780698423764077584399922244820579221070079871640336460627725381438353125378498551490149441655005954397455007007381743725172563273434293539815875980721000071912915695337776321448207762365872112255171599638120958907335940281118739318732570276220370247255994783153942330140859108296813900161441336643901128567120816901622622579143137965302960797344220437298890351732460487549556475263499366625988088616398917404199922161594293175536927507835878735685389955358580719416464501661548555424923641364754935307077361495128266840584054950457406210558005155673556535951853615894637232135103139067125887062202575355685007232955321915431232717982006550756987696631309264110276284081431091071527773227784130047793103387492544219082085330712462210210021133256581706987318467280245954731072526260635692355685341921808118619393576849408057682110308874133695007692229205390913150570422210089909626626160604795168502228183136095521113460480635799617478658888393955985633141299291486819922159368993960478071653192471718545281827499987326665959973059902014212419327465429827235972209798938411639949370157410822293698415997847288035070678771231669960961929278863466007248407370597367447345543225444984718485979804219007982396774171701204565716313542099953549259082343725239432155423166517103653189909276454888253614624983333524909881406359258685251003391983240759924700714756745811645158017352666976511421496845733445212317335782604863166954228724803752630695179551909928176598980750892789317064928745713910463072463584998136684242484782464554674083619600933251106019865042855653485641149962393249989060887011061835300713011695484444392530363477984075341353097138789138201285841956544074122235561372005265403001582419406571382398655931188415445019928119000774034206596803290047019616266013821993006236760256378898459162871334801122705172119927255865060340518991192804752204232796237545379646597689251868307578697370498165400109294658508053661442187324594159176147625825945826270362848423102618544632465564621438736778431889796560229879601268654948382803869269614436989333503518856046150866079115598742209880963014369727563831500707022498641434409118411426518790641226944919539329883498279054488027664420230183008895861596574136178247711416412841280823334395853859518469922747620184815863148741696343823969587230460163212660559638787266983863635832334262141129643081512803177159852912039765614312058586031551679343393210195973349337038179765202471839365598480246995940241220968214131873227867346259997230603150807488653078257193144507886543698049077361665631185437137136038120490590027213203278909544776454149292258828613465269492726791738041949767002653725328614687677604088090684643574035206556303445006341915542207218611083324161688033017198253276614287512157145501577483779834430554527925056580799349519320649948470009669284589756749794902269615581643250295949278700603272163497430740370884691083620573980539081622588206521736790944765185897057764920821372880451043109925420854179217656523345602107306479344075777807833987474302815448867710118005183977170646809522735102304519532606304234392187199722640055418608005197410825891671183168100891407878889097256730382939660423767340916337651771832001396785165740348844665031407554363250750307143458948637204926938180962353607103709418309507811220183603050431532797987240146227944793076202459424297903083195605839068285395013216125061229637414076327881938346481332269587766901871822032764874907797214799697989927481565080015015398299194650818668113806951658676153272908523657016708433203818454857220333257918819666916161707805978048924640331226957433060486328155529916943256768627627961124078945158543792738562561040428259034301902360484135816504839669008929249122566556875670327384193673483265179479319373834825589665136026545378778272595692385889794452038397585060415051508400795247601159772302583486638977404033204265095464525499826528694933381895078208371718284689085411801085619526361733333182790716033767944110869485670725792161268814994126240080537194992355544372117443248912059191393306019445604034204276573477944478316502780731767442015764811053971771994890587773598458011630569108898772318085900312573255533534293033573921945277717400600770050328911517150749759568736198963316718835866010103635758281639761357305097587424005707839296105085753658024463562138549376110577607276935752476135825212917966076382035098505141097982820532810415286744375515935105196277188667266828140586149167736033922185895401025255105509130807393760966805268706575214117203351274567302318137118614284618422322843435471980500232957068970982643387701956743106266855236453133517320774976733174914100725251971219598873707426831877655963687086447529666941515762493853199540216608140474771335025981262379136602037156117767172852806673099463141656368782554530145941184411329029489771972822847721320588390079551423259131940701863554071946551590324536289097273893167098565352904982056368189837642624122809896897424968885115440610399546079173433293730365862127598568105449704781684049574960459723202915220520281666646190350823325983792416982607407977878789454537876035302875367050222408747719130414502664906721310397204425600864308116337094070151371683382742993476061793701906530302882680553818003157094200035657793964732140768433016703839714074070747893811777725309391496153691198399055036807065335315996068858189930648356128344118210347563879653378521647860270621817468911928793983428008807851207934730441426012115988840600449138708875725616094034475756059466190023046846572604332848420708312944523454657320807532452388251310816699916389428039141810218851555031124175232915564529689748963033312118303211548117128271684388830509918123720751964832798271676377613192418969990980324876142616009264142553517220598517474298016535492471286139240737451716030701697304152578165413508707999470954947582673688969968945389008354951398631017486922585648945377603939802552462161010247363151688668255175592342431215184207164030119964487024656976382514489153953668490639340586668364706659165890687976987334038409306948763326762029294723757093572600471898409578704654665305985399149768717186819308480812807451610724456330196321895538633909913289235422090385826966643490041261510499899199154610149249160056118221504623121438118646959918657533199515649488744468027959975540993620377129570168642432287130002973892700816594566794402777957918539693088472508477054766285094290947384631422409265465416614019197717037691721754056053243103715266455702547828670798483967766774004039616267443309228539561808461533564701252024318909681904832003196184156033472766260595820305063706127373138576033851456950926952536444168734868468575345708979733317025485545503906187842676599051468450954163654505703114671469499414692189100540403370416337268138178482062055138538483416666770033355075161501697101045443450564458150893216001435202716236506943483637873770511117083985356737962895180784174017292164006037305422736992538412756309530348021109653381980790505860005947496715082081936311038042262144947027698306665864319711969307396385346956476799314688286529666725374653733771844693706951682293907446354598665198381868313825543969116494080374938802031793378091993717172338177649624150655056058335497694229514223993430213093456270524388641899235902515861788581783147230322933357697212930758574516934534385327928114457432904606950650177260617841612601694771638498913196395506858467812261713714028914660169399850798412808672967343727007915258111568037584673444350730743227001968424742633982696306774851834033871893097689696748064981042289641510994036001744138750724054435041181216588891777180841487403962404261909586530548611194091889435103366491642798718372963807843250161873849562537310566651364772132913189957793313281236191316826812691461408082804125444824720542691516843462931582452327239056798007965571154935169987226148529758001483740335717858887803623319938617017484002671287244885798974422375596961119281469458483927509752823889053921522121557422292596533754685071875752045819441040136624429574236508183729214371416611846463462457030733296780124049807395158360260118077446698542772778445359837975209054991445332253036505184261736995710118971224275275117293704290063020803277952115053544549475017205789761285686381663131245751072285337662462153331576663588502220750644959578709057413386493214597691627523928842186868376783115659681698193373626948180811651614965917833204769972491425719437931509531539709067860984350400884715430941990374702191983422941517275356743855474656991957435761591955316882351047555764712684721925011580053647930276018851351587529109217922023686723827634795707385616548344930107271180988491198542731283881037121065478174705037683705172884046517579614896039762878943257997467845853424449928633978434324227108734317787637842169833180075364243471354159978594613203243622359353609576855102270109673093940770951645847427010463323239386635583450603186159442071740328904084584714640131840018756930004794156100635715539539993818634986387940398488711727146802543292872272045934629259012837204024044939448844550236198057304154509536264241682802526131774780040163490813621802014726114439229501691317602241762216226019300485792230971082426679511938966619177400315951154253074786218301748822606009241947637969323104384135034924613394956459988109641708314748070982100281285280208311180710332985391444455798476405986145963435843412789074811589739089284028443161011176617723818766377365400610389515535634126983369654600475547609637042130908444297461015748930177244947690345687291458405833831261972210811831856943890979509849832476053955351830625810748372478849732840192953010152330527685520006073419706940771331839603263340576641806095245091386223015206859829107810766020238002003743692800789908930670023941104129241625852098870956152207767896742130558412396669757560198932063726809883525558151607112379982131299545478073687695649965138119606712275738164549895136120189662960943657159488448563533776215286279991000173569208707252993584782664762291884897464633949439320002703378531582886796110554267464636153397722272866567755762088675437627590513617617906149447529078910316320525533044261787652600109072527024722283857609282179542165154584947680546507402373242825999010636381179216511320798617288666421210917205022223637298163838466549251612138238396062216564288282642350017514900589019207640207198856382551131583927810875243915496206452713150196520238714011424935392268021785136609720638856190839162741970469699895976824008625289083867056401483720894467164889445889727390918141471787976856278954785550416901579613715872287541420317715791705142244461158240247122181999290814214816678070658360084057979503336639219515429743080256970845132656162688109761842720760247953468166253752869328655547476157457059514973183293786337690430720287234392127073175587863244730073570361938810631423998277838016237498216351264259629107982008084350192259626638172516568314155069310761549740900532846500601496343036888850312458150373383147682193134831963556125076380192627590489871733187913763347725034875389156151675996404422016312689611063028187665522662341745125477592526809770338644304423686915174210453761665725772112615562260153335397156022530795927246832118232139175013976200409524759977939583403762483973594886151713784067329481019726403500547445117333619000329804004432722817642657115316084003453598478929610915474688216829319605735807142886405179377459446069175192989313927116497790019541322750349337143227730874690214497882988162458919001455258986413682559726854596917817902445879842713895644743211684700728811949250895974537421449126051006578211091550413891250619435326610386097904844324333859290410136346623464425400401520335594024092095211420911519447010323120829855653799428727758290805630445991517080116614943451276918464551002194286753016677755471252198823980805798687890447074121388525520580903716273524263758346335972744973997780097382225084708834828288108368610806033433255252035224210701106239389638049259754289590864009628193185788568342726440627323267769113995164253301797254373427004662572969611807309256732806321171686165851896932087030075098827005680928101777424815028852326005981715722309312697897189589345518674779270392357691668311097088359108028717764887477542204825360775963720951354474783922948258470058040537045997215814503703788632727485275743961151482099671595709873605486523055976045215712151851018144071394939379895971422699005428855225710198790398560184037520444975848819283705478552022707984653163879420137339282488669244964842392062165197464172765829288454512077782963847793608613977451876857801391303192314411140431195948026143124212626148656364315256195424320708093243431018838283180003732519683991741537552452207082650914624888971620993647875140768567211655891076467909669713511306211574046591278801706140503604281379802991037069224312350608784195810691853514345686383802816396152631167553674528939769667436365740454307495887747857808646056356198840197607555359912143807566823664947838037769209651921263067374857337001070010961494620974526159517829575625495511300146558287986349897789737487719273219387479459501617673221139633224746112873125523411189636647842274991183713058820206118670859737052094324883568765397080948856258306774168578370433312939059088853906574325610386406258839852346537062577011955045585059389829894141499490495204213554891749132039889335864469960743468889021389571098324762815518341252645507406085009643572953171875629700573316114246276840496705639353900128050709500306595079110563097309232656792057266273735328384068319630570486825001099546292846930393211715894921895680164653448267487450312228748841829726153656993048028946216866786412086759667685581054675608049749696748694352861046783780292565304655262742590742071627604314301091247555538662543487735772183768079902647235743393690385658941444663805231422520250139256279735927913693882055294243085192547793966448196742653927256756728071990887815042667590787123335949865611949421799250418477615319409602526009712009166613508674888871171156037088531663252394560509350129814354809155083043110081167167736200864996572787355892157102364814516524524485247112721048265591780160833259353272635786706348489722672456433703492985467377759928710672388186213421440486899303793776028774448100050662974656182514678334127650614265270104735846471924507620279575856188563193753275596573079152092404161140158173979841454068357379223037298349716434125045365874412099853035723273967031738827796803966830319230321439209155796911513177840290138094945141331685728145687169710599026117033161168545380799406386330076220605742366038283729762032453287205082935068097958977352399714765763230381397477269951874529382762367563448933045240987252831286457286098563266640120402569660057020376533375490340710578330079477781020804649396455843745739995872643370801330274729058925326779762217349456798514097608303098180836231584051436205926915839000896216069004719070285334261052504730447092166727587762708147701320481899961295115228182006147111154542086133342791263571778222770000721375961000778881263195892828367314910815436980741923973560623691449488994699725365613704539711568166018918499810152099421051357442604132920914484855224145527782639318372974570273009034717070776539645533200658643060982029040926701894861300078538875386683927046768117149209024810546842956843363715392409637920337272945278720686621420900923816911642274365609684183182020990665074925014847730400721040864670182097761763121538921667802178607126410040380194267193141380832114102754133967045039793965826681693236072774952506069208338076790312597345400164540023637717403367387801086757111810084507581679706170231295933817271136779023550627740528732637028597319854445899532134936228451504648109615246281378813602182754940128309406404412762603408852862991175053078601215027386739095806819854445861661469283230786945573559871020606365177769435885667569924186311255151733009058414144499843055672555881031181725220443434720217002443368130487474303438998784389487914062273930772593070438503624844803501156773266351221170713495358568571761022140031187399724406580669073980669407970356755515672529825473663449586528538050905939740223370697116284596020406738922026505166260090704029473388160613808238090957483190583715011582167232876404939767713528028842899071007008865456614845472319132197571298294094366006949410828213727978942665734545484903244839671684305857587528546969566311137590157220076786830220054353491239074137161414084423654471090244536763097654583842690521181028865854496275952721569773717635382392947133045168528005344425764464042905302999017995146462064095769405135544795791115306472998814082757536820038871945189049321289287427197106399918195919879542132015474701302443028716657879374024279733089757237848259994987972065961569458602677014519134110233674299046268419105359676704040262753065579670196417733079026514052181127623648456558204607884558635791978463753465918840056947590346696472105660511450907505266215004970425750193027578494706826313645780179712392446435656331069680868068291576358178679067986871323059921589684651700123484723765116013184504786409046986018935607559082608271426142076331602804554978592714915655629475966752087723419082696202734252917219767561778907989435631892710606057611468594611124869688625086523983517082104589656207021257003847791061799070471264752938700367373100420053854378780631739506708991672593162171575986905274836613058665586338066885379016449636735983484256851207558603268167702513368915853996046585840086438319267076321441670302270705742805653473510609922939458355353189419966432779837556714579481856353814590424373254320612127299932042573978483704458172553957805053614670660785577228232256745135316634428400405535778548322015211909384090700560344181554825366908346259521121541049551134245129418659135865876289111138580938963498433648546807411931019240546431864716256377761142559472981934372945885754797103861625952613920524469155193306665789732498773996944724431559173766510691873493436709538979789754486903725836679461153962346238388547714957562364811041864861199640210974124604970069421002406522512575830631290025568297439139661630233835355908244556649493264502556345670756544498430548119356647672000759667883595957572961780461603673967919817924419290258153788270553453818515399154962153981179923119035884727593343565847980718950291707926162681192954896322013412564833421248062717372065881395114288802995862061324920809066941004348321559397420918872222758300485145023455574498019560638309572256167705892789363648410552145571152505469762676588874609951020791785365083169684717984373279214682390122897503972562145450744456769764403074664405257769294713279764958929169110666071455832995735051696719986044073439570782406195246940301254701030554395596357107519651174829961874126529527768122792953701970576658858150150435455424521486001854308250633622700816425826390374593160618949460650492371609650540765106556119328015010986771007027121251908874318842089019609765885761449344797871732858547975045840370740403895709944442630101578836029673672585496752768271638725702203361015912559827832791629120407079218490337966195418085666198217259674832679094901685294523513847551576907977091201762486899487081653085784906374480905279866310677587549320264953005871733164169000790308824807710269914274034613183215304440011684512579777752711834355675135077387014616109778950797489688529944359337437951867861726230749612379479161646836282695262723036810555120439637972811929953371632376144179982126057159917782227819343214429657854655557329180254996608422395061220661521255646029440126404639048763487858986452938451650479649212810170713968540790709274292927314071834164121863787115014318054832974104349151922930126088174789593098099094034817411634585590669261532478462000509226762971055418069454494589740683200781635960125210940249523763099611356503473322315038326222482423476310956286769048746609805562147189978623708710530348128157679167722177930621278953832494540085503807782487006152021323512424612313740170861010817041090811056857021049147741241596899424370173050316996980114472017610794400347270743339069651928272606412341926416597683072255391152446574113244581882318759432504832238766323978370252227907990683593499725791918906019983739171781410652930217549110514556400569986735005563716243350611124185863187960555990104651762548571790966596486674134901595200707724128030763075945594018861897461127495482727290857590171511964801141882688002098986838597989376252928117776201363526345830526319975722816460692480345591670217622551119025810383207474330505533596897399818787700063105705965247457224524233846207499863980480865858503640235339287745229724642671562574745977339671991008513271292094221643254735773546083659555582279768740869951039307655306507304537783711134806887849757229095993173971949007194690503860533591667451705866399435350268594433239105411143656930912799834942760855674707461032749785463758461345945538730542789349603713640149281121894276974153791724437068466806337424419963259028616902033018590272745785214335397714485292018409173489539441510184592839521512965081250970791883102469903872861272596120818512372739224679460234317618903333046891955398506557775829651543252261974424142120328766751341238383008511133665736275714427369323884248536177196180114065282416667411774907438888510499216771451926883424626803821254951477751704343438876607145650503940722081979427938773927977627224932732564555166856120161699596479355685421592540046266935689970678642534636586797171642245948719226484500768530730234263272114696305313499408360534176267223472090102004639248308455095264388523624535076494857449130733695124148539031019641088392294660089537146427867433752266776891526897324248560199736872375738163039838289288511521990541200986574900969396157749232058219283979388508124186020910519377008575644340659649103759057366738292861627062625688321323793078875094560853919478704460234143715681616162940716928722613692616839757864819785447225259407975043392166166437699381406425000169069099203338974055166036545179994924697397135941266494470624470006425985800192183846504721673122397034942287366807963011821932208807020860234677739721391034862191439658059169740043335337435399846548735279193567269174097437315142299074745797776090572158342179484318869860850951628841558523446686631084887093752281619231719645992386364242175451607071529239137932316895235179544506775741334291545464677762924020948849501654797939321702184985049574258358346857335467492594628983198820165796620916946403206513290873814090671855187079142334161180095470460484981566042094586300004094779205713681595511249642376140759599144736542328605233543509218054104563345823669503154228887056947021058571224446903192056875297545110357194578828270777897330597167101939121192809884356155976452901314164575076394741169603896914207526431870503601970799905281750474859288739668011772610151364824174891760553532891676394928454612760099277684745177783404367381110400574356081705328619320204781207520669657191494778012842437813562779258979533341900028736231182938090476237285999405174089978101912062380296344900550994397912017072914883439444026290281187801733299413289347150538785190304213147357214789683059954169717189851620106478427433819865692580269657399908547138058343646712376675033241757601157182523095510529553486366236288519728347700491656299965234385268750803651742007677165904251587270293277717648209521798988348006274718086824768854307600904858068738795320250958658715786486182750210906220833410270204036310384368736669251232162649551590461516918700425926738426463120730967038324672753301143339534235808125891149815320515898001250084406105348441611541289762002740741242238082405076318300428489649635570265762816149228716385869075788352074554950289477045651847266207414619540477318348697563678933417237959779106404149812338424711263979866167965003512252410319366145043294793117921017265521440985866086526283313625807936199162479468147819000297962564635449422532407061899587896436998322315786454719649965211223810809032977828657958352107754061755033405590388039785452770395051250702520027113515459257095839375054856624549719849302850313885981535179712794838134813291284989433486921000797337746448393233614223389911854466853181169663334664437329245480844298754077741122539248520910082908339134682219297800009237587012737394905714954390630757145016109836887563183367342434362588728225998144545212219193348685095085840895448793344487089832025073701161656838639325570632827881644981126188326859858733178386475216025588593783241116540719983286068311737506543212207597659435746429403779547788176687804476549417947131220791856310454583286558188711074044230735359178377792977642568282224919074291383365444854455915128666890963847203416829137488533337335146627993645655713028317622717712661678086553758501142328371234735116929469149946837145411013139145069262562560518452895929239602326206224775204765459590558849076931072819538121624788857478869119813855989888574565446760587268758782409073425803458866620362711980064405314838220211323084062912463504810149956312622987175409527448207003340530144266157677771835000058810628559735447220677350285118317434032499673013071340028617532637595267927553558129274182154433713435555696543254506021454892417086809717621617356173825395164719108607292199571907389019875087810410920279310214691436125209323451504669830219439968874038521276218735391717179248919482515525921376370756570194635759197541351549362375487075819187801343164353778123669977789067434644064488400004011275367978798750378513048973373517965499870627392507440925592636139295603818573745130556206283911074281077681755479659613952063031682631193919762354472476592918242593834410816956775140931812776859189739145329649437157914655107740374221157030848882941961623410914160189440320040738188351233507344297509818874511127552712375879454236581737661374978057311935426839373257394478467457575140404521141076850437007364527207213988959379496036763257404512273085723010706356327987073159780727676485766707420533928866383254290995213119227327770206865028402833944567566277987777602125788894576038805756087468932425244978848323334999220613209485088915507641689468336456514537806898543131542228777386106773812540630905778701287782552773828712870349940077553442120501907149331497206840952666159612527957307578129678609796822162548102884351873580608727187610780950855009517248067242670970755833444796428428773197464863726818859788321541145799664908962659936136582636974951573970529034625953036833477571163997242667281804558522056180478580818580692813159204657213578023998541029387645930682457457787980733918089052069581204805941857113586989269452702532982979180164891533540156360742689466981572514933006351163833177176901494727244104447709115013752061109990034328212875028788395517216290614125689567232690238092829359546710030773415937954755950049894264545648501511445570066285401058551199794294461239449464737416863985485094211730603708023104810066338072511004424271162242489297681557261561615304068929296772825771159975726066476489467557463236435592624611866957384361461009694953522403587466568323002277082862653918671615743694348010949933413653765781082894854861370264941098122553616797335844114870403145015552883454074360305546286510274708192412429098415614764178008215915905048619551864532284385304263110286996249704292325789844986530408274456789945262773479506079861501936224299424665340408918121146178498045815670237853538710896754291323317490816941771926564215262569176561022190917490508654317450238765660576031938665385343125541460900472852618453152161285935546117355151719152808078368963943152624776991053904270344776463472368280869139960752922604758082684706548067417444713715011679376889554365025897228321889388512996652013862843470362562265294028546039949894595224762800879068630457807022657087600250712446590503710000188839265412154685358640507140254860563397418673816643283336127501318742526705184304186710130661358997857513063931652352172285301876169118743646148323302432446390316503686382282327899828145993340286740541341123807663625413544938238255076911913729956345248902030772012025439435848980417895055607835175390066195601685108208746011085373810792723181374372227142015260671175691992256353148374795505697684969054977254578032820953452309570510930078619361258273460700042522577167468987870880731504053355892844547550979064650362180732847921788233023680017357378763216020083688091442797671517816156948108490227879616308958770980168550114903768414017906364357289873899219102967605329214399161598452106124739170942280856381898636575355488378747742838114156515386286847141457180455108896219542216509134971382693851180562341967034296019863879071117720701102058554369828080265225333305964169620612985087928391509545333982047081122328464979583701440147129839435774123991783982087552144807271078098468703266488315973695401607319703695228003262389657769427189867598325401365882572339881635834784386551285637776547940576975232700522170949106063699798538810941762577173429171998899765729856012517948053103631670845479479444651100705247087136968835063631626638028177903140023221283467446696585750451082837827486444060098884278509161562725693425924230269595092986202591809986955912024230553426857141821607357078256246364979344736640880496967603300373355241282546545480902189642165645715340722027322694042508974916005318867663493549183764264756494377023019586409552954702539986092441546010425597191526211044739689184653874032524894537237272496555269441317122751243687490683160026786397565758012700737573796832632863018792935581327826423974678021996166327744112562138937214755594621807585715793600510982103705739179021871454397697508657305180127456866927917222250981859190013343990703291528284762947450588998843999704646475792099522577135953574310913127590906896100476870227916655274445284034596274450735724774426998068916919268752191798228894863567811076818958275043124594002115589119535527660949257142513167005022873224980394789970043695383296396848651403505841126576437323963520158896062365264600747130056102406393018312508671592783599147843886556657967554549304041492510902222556343275827680839527229006839476555363633549208800005242893772774221263795727082174525043733579909081947175238840917681362176630814930648338295729547085617405542711380742575986972273862872919143588440489579033507606196153033814991559035702723128728989788213560830428834767105816575032528186007215324897364868933148429005216944300836886182647123195613833553984707184158697730786283215550872500566966990300302540378603328736555511905028616736788752221172826803301072312608305422844550475259582651116723828236905332506472821478584368662299655935107329440171196467803556842430755262597109999863032722227202900707334485276992179108069973311531198217231752846057394838450750046411310702628057926317018119867506742949918886747797621286806573634114493262860285576043756303085215644874472545895454882451551050198574357009522408577962047839251906186003070448331321982081334527344126950060003787476594106620336959507006900068934662149193124923744602044873396837631991020444866579430984997059923312291113918180967771202246588940252406130585875590554569955416166142885980026412328747013904907346785777146860575725906871140795291252001741906615872349284549405155410182681803937692743876984894329007216278607244088132077318773276402177113409790154491521748662525311191912049330513419078725885083896303829743811128473271464975765525819968954553688247334649604289749683194058437507604636615768605984193590505591747568182302581583776385801827512389799216375537834469538471433265572199155755815984903957396721656970380266474533085831788765199746798282586782109833312361897031976718189182418573280126941590351624539442335649343641299495158820654733306297277582948055293932437813613328957960064516540258888697788269143256102952968463171121407518597441358109354905700711051659832188179352106633805255360538325844202828056185682068367752121962716426924259894443323305107516826739943908955327399179202082056736729011607393656715643522608818553465146241836569037014968968988971918746870332937151982880319578673609460942601041756372381485626390173087092843785642091492074848682152677611732577704049898332215649445122153805413132263699732713855509810129092690064425543115407587368309964234468314487095960834203901039846796549961426449653881940769618112998770425117606077559169512838963487356961642653787474882474816556053226223893559842774859284629640026518921714020191821043961077151762836439279108584630247505225612194629461308046105821145278423128449734404030845403974470166438175921583778674014077077898751413693083953355343112530251376836440748256315402763445548912187674237344189579719474902441576831870648432434662620493046840801098107304839128504197556220985020769757731706938216943258144039721905332431674466172599109828591515521207353426612936121084899216889590341133211898957939445149754439407686610572575536163531314884182705129927294945138108299216435822230988228652823275924091626882396409839489374155647188443744925964490268221414550267014483583720180125350365805589541829553135298009386202444810501517453654207059971980862192501672392898514905321747161277662142623772763224002138573954966855663283861200018703623330860859673525000541104218047987563124536929882605087582467565484854093484217516670819023462016390198120337081747164532393406329761876271798408542137856502079678429562312179411636315579350854307693263263399877775920653624353622818858382788796965255945257010317271085660765457503790256184256022165493617095904800411965952090033777913194098605534311980036034315482380536779759019091795637504471263607847668752962359223572912310945932915504316539117560793201629413552093078290724646490550212471570232098974618561052270954415842847982019328678476340163437801135878587120267355046446839544786302203537655301929210738368008611591155975392372247145144593077286152049818633964983908002546088176962023088131184901635390445822948853152976476872421458189183173435606821109840841814404179546528597641404879144781371341498949177697605024045346632179146843582607627989284446112805151101255308570613426526501860010261076203047274656785460750234064456000950894416485684589341006548560603337810809074680816582295471412082482665995474653645382330571289405802935527392787587618582786459126977333781497811611874637442561574808962489547125752957872517226813073596041622176446649875346124824098675681866876783999288500317034529490752284050916982591508041017429089774966517313918579723452295240001135131382584461507515132678701527733468260256486863291454957783685700575058322929375668830217575818908033179687167019524527680079378371415198428863528918228905926218073557279677159129463039942105284326478231172110374789769577140608630351194099097745848132178175037761492283663818779526287645407826705594149010147128061052603727890556055539885724710617260132964003904963673513744127200089432959944575658900933003390882070450204415589025469012577321386784683439975020389403808102420557772815484536008672473133664387021665908896693043049022956348128642850938478431126877695589286405834234204707381448290955164752883471830319298279675079399866360452009587631465097397780041452681722067856372239955464171495238255656246125951290877516598283513268756579074832399724441158294129456879882602532054811300445912579755682035297635218856049653973538904134207049498112215346657322034822958859801615064748851322841849202370969702092138820539808973204414215445684301324256161305525835974192420750469347433298857200580069495252582927304319196298977713006838496245397467210576082982078623137651904333958922963919868827172674120715537496278989528381249495422715287341559919272292675091921331153269650748646052219937222861045181116433535571728475988935881154378346425920755923964597381174501558955805648996346694193097641691261265130625611153099519103487790357201805035557582962612342917586653627761266627014470769960847916787282881739061523226425729618476930471266129111392566425081978761606753414388955751414003449904000782035073731270723763968638930591110469077076145133907936052304862967906157352294400696636559344808648676142510074925746774858419703391830108044379787757848338411160002282591766187811126834365179322624566265897971743502940804669538184267825138155816643228707300685681848442364843569081025571531044067908594208776959003122873932696956234039499588282595287314600744305625302392037221758306052998875209202467879272540473168521836571740803882982233698115794502798467253656288945075926964958966688231006293420316196932027949006839105232640629797743199255623207437497684832676958682469899508227401699097577048218656400490531722667321998605461811259855505706050042666522954246528255084661834661563276392847528437184429355958218742774488571985487894513874525488663928355593004185203521751900918942590453319282814621387448141961278489598523817692036336415271476334968304184332313890913615646482790750718543861157745505256257030008897944149608490297145497966480797514388382610701117665270036069382871626251356315386957201641346863720271105263408685825269761312042408337614114847845570404108885049396669652118023025188175387268579944054153091474279954749033795044905890778881662856833593903063020197386940512278587283313644908586035504189319856659850555607951474919143549130475876979911565299630628438884252929006929279447263243956210319678542521465406614301088264620850448024036712186835555390476739231544708282095618520547771220050545957776945741494748515569604814591571717556651535283707681243366184364466990218478664916819964788472953929428484993001919880751711202977934224013656082549915679653038029199289105350854281640523063166451746112917401849219686326441359064579054396505523430854249571066660005759269255275175309481796803841264868369574153559945272509821277934935467876333862434555771543611847754368204204792717441904403315095618689252953422610482690430756540060794922296688591710463990287938733930474670796086232470034103448777945257285321031329490888679438364614013496948712608400372528200524326878230555587567149630456186975803780654165904157132109095706801933455743980137941490659939132697222180419830644900235826679342511116496082622182555080994389239352139950759632226028876325108217479432684217700545772564195419949944848367986024336358088449580819733216163985349966944379240219796092533504677008425606127287636596495180316240725021755696629987827542092155899758447363193316407125542218385312142587430000711048227722422618834885242637693699394355757934253602801294151473565210505195399040854379377085124517331507720199359248608734415399514308888665123874583298720839139183523843556845646677906379084993200000091016284539171342219498598325269170632461405926581808110638836571702684669919228364306697680384332272764268545178259723137731854869860408174165546963619684233065581468355880015387016086075829771746716229336655639749730287769696993153031470444618675100160697552974751353986380288159746640793946148378726471911738711192377612306096141752512974132694298744917290076974323516858645691179968316943894400719546583516317586425814694319748789196768709203014916274435208276235967763851874203352766002143673897427960888957205981740371801928234187758034655484251447005923115823849819741201487614735348117253332865810111552312489205464125137194235870235560506904245332977356260367919942470857741399840080879033351580136486176947029788643041592025997331071921595890909853636169088340560890307862683311474470484024612725467792829992209452404777974760051462920060324770443749619934134312425638154780793537806699612078681273580360283242117646647554576080726309067414844051825233613502094784604372938582402967285001260245870435633381442807688189064267380379595084586240843570889360112798702888062126705781138916788328204863085052741802099514883532640047913069116863771066485172376492665422314442333863015505565210356556860377194647510213204908975845242828871835308908267441667888342878764007370357261045006074576043941310448256856754634480870249822501550930822449710542777936215931140808685127824809772087533933866674421225905803890444517226189878905934955941619709733643389528500006884613396408238081117288825688245900811180334432991365474516467960526229440508621076253172924640242596881581418503147089744672976194846389073366463000612515732524000285072510088048692382147916681779086279184597228755610713604122212146857379759670112272534486014286179190199209674792785009670348473387558488741737906437834624967356300639925938491740953328317478718399971053501821408649932537936176565879329747321893681141240190223833367101408598681252533484574513173949281418356431032848209206903225331834380859990706328811140172713447493494464921836514218098659902112475131777153077534330536597476414894238960129100604368112244582200611210381350482520454229859376400968272849155702867645416088425837171875403188755470634443286473106293744971395046256414691524989170675933915750656108080533155320398319797494477635180123652909910356639901682546482691349225558981600119408243070434151357116832049675773185984244018706417102152047379399841442394953647574235771926083746487360699822231168737407672401062482248550876758198045983644809178195355642376768116995707361123418623638908082797787974389694788055112339763205356935576720242923750949422409289578643522189843808194539874779980962738345994063333640979450093884293329870364249385644603996856842394140384159064540139027159667786398644664019713257050070533938694705203007463982920083577679949180375892719215427067626912520944744592170196995363430717133048774651996054951844617425556209566898015655419393214398496082390355791318978459411402476887211871740208777910739416704881290957006581835380925705694061726772678883277383284824243159180090319998546723376502506367907257643658616519323694884671312636128995503212354290676714827444683833297597042832641241683737031198810434959154775058186148245303015078581565494099658915610262359000426783432255508934071860201826294114938162028066707591017249460181843785942231586948927358952869154701501882848595333134019580003625838049507839207252781409496993962596098058225139505840045499643677479536351628178950858062804403412980674438978246672393443591323604700493119034424391623985859192273554450491269678837302404681902657752153533900072973527744469284102492285359450214984749582064143911025350940879063727948050250296992545131958966819932632632256150341095846507250371566001997219361948239668600325605692862179101479359038357384233275678690746333975650090399337555182463541388677882138820317943767221745634845125359722136354762955863318882215996826518120775798312724351581041948204606262365464101813717675590371010470338370755028034382200069295166392757813022555114892738380087780984843839286428991648691248845522220256534064372870269812011966815145457313144381465914791988069154866422339813100204327905336268141848531586672591660447773852585432553438180585251636043489524172499751591061279290952632879624653182577774562119953625258257695564575913523940611304989874759935142250029698974663200235777870441747959179152083250013007927189148838226335747280507854496881914555153107332275678301473797630328259784840365404020461641535822214322634098703817679633271983795923956289238635705447243812123652679062607288904486813113164604578582855374661711768864898458807411469280738224881572151622813253470658985653335029087620259157202847902351640518103922331173452267826889475653265581520570394688044387732864012791392851234926537555109544720859096570925830049078480224343821219603963925764846740867521332897340415687938520699608102363940387706289807976893348246709347669178846145704759698055695028508158233524008961853008804071474199129828726608100216539580340169580834620178653601667153010493201619746654243159850635064724929217277883582175831381174309646661992028374849749792038176341852143358145886190492470705874852862472010451756618153221175799332076266099906500437001058976374144300845848726016533509442645915828092118540390632863727625925663107305152986198482014672328259101006841119965535189545189267012903566173826025862152818060611292780279702576963088869783780587810724111648845820929040953474351402932980409189242448123591675040383430040146722665257649581796944165554434969732984334235191529011164142170866513932998481830973412860315590931456963064939804112529964213262934649936644585167629313569612135131216628873081172079903396274358586960834761341943381928441532614423400771140837642500388954844070449410717161948279418764047308854496730428654513993686669386490357219941786267811832935293483663599884321865968076023071089892770329728579767650183719614907024106489430209268194061243849300450158921843901133968928417424494931107885728958074028102479066057884687281670845617225895731224803676674147704522016508418593258383315725394817885037368536481452372787743808172577823963848108484930682940687350629658945794935070463870924968289835317092967959225946655442030343118950896409789075947730725999903940595878551834720643310531386394769567623809163013651661360600601076586863137679892910891850424904188032370297577996701052977794125592120608852020459681957102802420659480934930892450879102617970451622960105691475675081262294416127254317902215931941678356485914182079801356732342803441454293191913880250389124308600223566978236251861400309046613433347118816420573863313321359577770997539737697092028693396408112181513552603310833600112322990301626728331648671791800841695978920167222378962037638313148757614861329278217550041178735020462355335317857848704168881448775237193675489264625535506057375888930838874905388353083685481170066632535904283578943810082376784241115949993495622632852549117835372935933318732530988491415032098777194497910517479864597027568954270025115417590727314346658351992987362054061587264211946724864670501510318572666897272259736741709046093251044419057553633978506530691940069292505654841457131254858904628974438794360915609658996262604323251202330998644354589587775606172276731873772852713455421814714409162417300639909990605244671519290489643109088094417835697534979064682645631313561414981750593758291360019393812079309858239257635663690511542739747196167386327092183310367515183731357744649647812975554205934134547072115986439795629738800456918149756607642433864365871633552598502127352704604503783236216419951579373030214767131211554801182763943111734693477120011179148089553769068980172641583221365657305064101874896982324043712610976479579212112901544138229726332139508368834334812128587421808555878152331608243522735448987529490510009681769259801563641277404324156962730182971815103044123265730734179146805863823474617387862128774777250137905846424303993786654318013929007004008300895142689028584775103181428405372829296935400296444773145360704427306207385996171564405289346504095400017180375822247084870406579620580469518724271855163340246470293071394732170555861155697646149059521206491637145085874978593708894619688216306891935688386745405726350801451058037560456331873230777447120575877746952740687401394916741620804528452392105436818621412998892133802052795958936578690690644238486948965544240380532600573041446259799996347752624292836358247623253530732629751580419190776581157035839165922430562005580196506551721937525659617195505345828379258217696226010701517972987565577327301523807768863436971485323648427745679737759451021532120183064279091894281055229196541755585335725635302936810295764163956900519680801445953560037510336658410694375634630517203041053701528367023718758524824498841862295513208277847288710395454274015108444741035172051390307731882181340254509279163848317585290708338524825374052244534567544277413844493695806345533306860269089669304944713325152740878061490934181141444391065798013917824785492039996596161510471840117872662962021440259137150419497363702533457767932381843050303664047073844731276100860021411705744774748416262805225591220235457778835235537956579460805908707934711187672927743909976329156334138188502067007447158237712679891857983374382648453038475239245725120455019148163497263003294222836554898352695561748837537698474089994903847527910205350532259323010162893923970626490792720797217104021590223102468963376155257385522097148246623029403177934170207604719339735334438929222442550419050254294600865336378467699214577612681463766853337390378657785957073847686926653787403460123034241343530819289795999766502690275157615992282942874773304342835975369220768754529795810850272438351073796852608901527034557798095389684976652813476166600706743531174362916173538491000237667554611088062432148417981205115558063296306255960450908526028873832240787510999578046841721794798941761806382034468557743523443473179599737758717992887612440999258687053966789578922014400669763187782398354607715612530392818342378682966010968708430714450569726450780168085117896148936638125354445351616661200821908856304282365936755897292464329836397707845839869499167314592721953455749199502047097286987142418317966748663767941902649168969659045384891416192179670809584357787922949024871627366927529848140761374399648861787431329399919583668590672653187272175238344064163841188035257103613391617649315614668767216236608591272974262644876965454054265799945338549986588581623529806447909805089598210175864593236489281156330945199655453860087061682320731189263023856385257508023176476341571652513562708980922149578449163389138463763772828790585870428529036314658770410608537128942848950527220344472883769535566700485473353694763259897524513624645797905216976592727917145267107910358042228820013340297016317362772696295522485339304712925297857592138015615616245847973081356171053108997483950293317915331680543365908322601653128592663374738953595966393302085094473079408594535853607551506813230283625774995122866371206504759655405852214121101182764310300027435503086368651882113769025990979234056429731707667959131128777308472933093418583678300085499216811943759705247180618047335988954066982885733242259539498409828166266543649295723016240708703392782791432514089830508240028819424819009204739913639544969830116611997908560717242819193060097260414576562760728303989283336246873429867213843878015327763276847015492130517495486627019499354350428815951203968786132771155037376970216883385653695314413418001110134699308571090863076902586327392644897029846857567813694710787736887600092853080236924654136688239748014183781473696242329593210356196782868436875536050246727506780285865414492729118911252760455569307229046952512018901059859785343126003226394193479507194400992093897606111493701158382601897541605698470213338280518406040747784277621904610942893137040281800945149101653519343083176152149072081113996726729555657372657358481038242104426792465007765212644429624975223607368426591154553933249729658744811113710021937328097742691974085301807105503817397657380930698684238809076081346517157257886847990511187286307990622978156456336216661877696116443135925205012170211543294670886301427998549705289062861783515857689825669646696787548373110728254686752348307758541986930800518885759573330243208880759788725895525299528123041722206676823533196771408565596758244066405076669417945432263038286241894869980776305466940913423904875074939255659678416472250647661081870293029570839851399891801303610885525686192680185187511793666767736257592247139970961168991992428281658574610293020447280313461241148684727213955235090444154608197331757675819325308988797300733382418296913424536753524428383012870899584842237866071158172132495450167347099345380333481263778004164375618223763564047725403660177278319653912838873275766601478083427815040240316249496067052433469480083631070574211880732417098882610360381298667946372924816346600355075785808150910115282341744801431121691586778025381607392758161756499551861413299706065342765048963771800788569117270123943710445804516680373704321364321007856082360173657320674130093067467248168617562242741159473578525781941541666031821555152454813582259242639686628066528819738798896326118172728951256608702969328323654526106233353457531379775952751574131531236008416483906898791291954465666589173705226237652137864067626366378235228363866607362245574480834640049591677039114178810669770755181997185526179002716721665874548315425257671661181510269014429261124418629034711349208003536910632418441886433897743697624918331434138111551087212496736770231905846338628238470696213950452214430028487706812762831401085165959830390579840429109319198643079885961162961403809363903956299962565151071368635356810671372240881326298027468791893340476143308769425599427145933064484159910225767803128093394818825424052176937256472830457336142753078307979573750789422274114086044504073690359513045370567253324351006645273988139638669474457267418718142949476590237614617453506340962501132158192015248694169524704897167991503333146812525039905320318296341208723070236461895886826222446592103401748568066593942421756462762188098898086996402546649943538767078139648905161530551546411286916658596802108218633494324695186009512813904977130196758214938676412453849127542517138964781300728766449972918161649505322339315154540185038669371586399181221611515725582277154600958334399045210783749130330342294635672139754180573725487498630012828111396737006056140304288216953228901729789015697006423678606442276982711067655752775959712228145026553439244102672301352993772926575668108515893325816250665131203871937239579850991961831228975451828931742110968788204646964911574862118868917746569153910881346278371700775613664395364543652569618528143320388963129005427276984179791939371558380549971099702028709371673974040625144837932922127715912919496421273349177445706450087882627065667364988858084317451452687865415422342988716330005912426565661636993997220063046839232729515800880778998119137222436798217697808262199774901114465714983997474642225413111708601576081769685519071853655257735287676911066073452706778565970608488623956888481630235824711871407410654204532144039783962797157668185709276705207865151385004801184808369566904133093345928793726113731613720709873557126529832421276162236990027964190589560060834836200641229450380783223309104998688872723306717348628533677002947676638191948556700493466830860907526790030178595270318637826579765508905105067017582200615513902253327663143323191827482595457909886052423467856421706555079779635738993204111661891029472036291263097982487192452777926641123639406733346700244094957749376329617926580472987375440813659679779914997941736580470635053483328662298140138766428524801353309046256960528525151879161026139536036256179362900927136884778711604007744903405507930801535834008659144715717858385551717587935955889676476304423907437710598312144395345446272001781425898290917929014794547392244208288775407787425638320035374225832555547713364310034498596479169954274033498323022286543937992483415094864426173052478339118570176923492866752492596354224675835585711447848692437230387735709066673149722918815903134697829442497778847417645392958285281319303838767738864153157705925737659241448784591974271664781170111668064671690387650163544943724746892299962896478509584164150475408234661485194254775803938006891335808658207570348859721872770589545850097125436010159561418640621489136160059134119813581479385627611763780432046125170618901698280872658710646475183656728367066065417971488867463271393751551104842180980374442457307117658770831458862190656590325781098474546856577628206238253959250066701072681843409764226743064310989828307260098623650057221314203286443190315013472043772845300101940523035963426010568089589859642695736211985063029633479472114759461565360769757987582131746473186936795251157773821375993672214338372198835893152936978904513237005901618222551475307253426646397441613009708450024440948961749585761847574611472800516548212792043836544885620284655371640389112687375698022776535880333288328818150292416316202234771914757645916322084168615383688422785033462814830321385608513120247150472288556914107385302630605012359444683031288900464889917402643980568113398232186547780569775378231989367177247298677571580045862144064757379212849770664994750006373325017566068911550844220628668123962609678308028420591707236800379618229093169924810801927340108054686588716146224516039724056280232418747401304163437857963742142778267690647475926561785433074818670352615441487808614116942772280300861628421725181709612824849769818098121674186821236216602238450380319765702327807939344143075017649402508888749618261793825722105781326335075882283783480042274100209177653681886215565991516971294717220712292793089313507629704117179367754462002783785788724667124611412908728793544311325285127678896930351271554969820626645444055748201382984405719810495494705927355363190130413592563666791403721207958284049834705834803131561671612709822661229482707482399800477242217921970192726644834423092528935780690738908315664322027067096567144973984807433971466208767136804144773458450165571522462501706498253231723781173346704573544457273776941779757165336719716308432652575878090245123863760476036137448650637777395860573833563838573712631288483170806871083308620996471102555403440333598037120469616499389922830776258671698515066460215272501863856279244998233140188481721748604961116044553703666436611828932753739800782978555085472408002453004996991335462556518975495302911709104483045906169148591148699901290462530659552627952106092809858176435155487273798746257474604567527545442338032909875132519897224013058120786430004002457658083748018630289071271923369342119784452227636343907258686466884227049035576756623080821115412370200979120642488723862083720826389438864096971263670674276549659376900356828401496674552311508651502388255747707068538038381307863328679185162307593355948958740261554008982686900663221430048331138713245373343971970946193837743396169668537554916152234697402582665474639571957561518970426972106736317108676797534442603380773208591527726210552344145137732251788999130053968738267822877498504126884452007675991642932604357738323386305843959955399600817071021757021502654192956428206738040939812018708987247264054705904324317264298390067501682340475812374232742964674663335069552543062545647063233573939663257727735878896466444243142237612006645151528404033662200206932424479059771045036509478833212384042132828852747699862224051514041168849578575434794813499497163002197212050471126113167114159494093743246453216663976691400626906749939227420534902236841989984873801138171704942800122208178280250280825047984739316944759612044716367761373164961047387801995785647231359629617965415654570443906125742710290178465069623345044878571416754274004161462488416407972782620391836847248275748858386901070143901808936735690726595212390272236767527181507783716481462773961311154907606772891360696255031114579629033923424352058612834760272206127252914157569612007062787802050903900148316849604370794027762824592120115387893449619465831080526485505498278628849691888521742946717518764804376639866392388508448365146750419955765706434872011872847948777361751884517589212160271653299806872955462674789123289051756563530718894625030150772285810585053180932100467581251474260715363611259481168549471106195549246590206441267265983026928891810721467838889665912854088962123402078467044292731644384939381181840277095019919953533160440464826408292075223072544217338761842209714866438536363880766804824797510702447914423073189981303532730114277453008475780159079093014111109064950529812506767586359793938833246360953512304280081021487205895725225475046341461113745120004244124981654229804673177263247408796799823050809755121649203471747520898507721477298014671996129091370243802206204459575978113255415641627047305265631166645585992206844632897341825023834318708224196042513355044662212828428822859175395325255775133930639038906109108507125466432122960944615666933215708582064835720034413130062986753877829108047005069124240461995070466590093172089801123929932977745262276436328050591999319930984798469001060789970803431075456928357442502487890227901801949552642661212170825054629493051754405488022703140180435592526003824558012985118653079812801331329332129808325468286916194721417136110984540959303024893030054304430050826773232925371445090247704180986401031282165553189688729852997951642019299879714160369617217039418552270710645495993449652768505612754242314537292986830593921600064770131890828190021316037495512960504283264111529042280878785061918119985573749222950832125222672577204384014022956206751864086917210847262242382187106119425062947210699479578680874391186959191017722328995739675769024674616952273992081418979477339402314680704553626006929748027802692010150881156880934312584101894933479831402368692109520582968896551084487791467310827365261942988841703665527105740212891106161251778414822232741659112544274027430230225483402300624267158845764963766795712378274455072009521295522349417881194763559062094916904735277779769598884974918650375109184048648351184175938563910865400262362928767572997363463771537262025570153577393113798174525340795799142992356390155269040756544632529936724690219275353035582052861336630117767684672662443188440915470742899258716906630673242130480724747102468515176474184057650085687914496385777031605051460453049728245295370000384375053528480531349529923174404081075454939792388527119462888892264343522574004400511271443372850250125472165656462944282227454133094076863562752780549818077001624398070492106725096066207900521955904877139199197532047349880768839094631874648701278158638665391003913237474258319607815539118457763062736773710547466734705509726749580538791902396815013749523534285656441536328933202668146160954333783359975739460819037916656082554751872252383798183007429991352878785748179319670956110850533402084968134777531186456945209163942797464325424523769738400639065058152802316961990861322868288443089339806041838275287245118722837557074403414467299884643984492861363368551120813399103162968925988094756597691357496580383232439161445754376011794065510499068237299649264585127889159435556180440265834723308671000748470848745147872305080086006036203739817416591873902389707272650781412907532278510585331953677028765311306667073766393159503495114959286793420589824935420207425794933192670579306206540158150605918025874774777502310844932267107576214529319886599495075507833529899924780180435243210617892768869843779516882737643243542331207644844705243797095462326043831355680344715943170612257732684028433827071104493894264677485371308147859268030785668767469829924276054221179909848081250402749064982000355127241682276985839863334022878567184573958075637995669256256051400937026206954464886182125640136450025269877306028609547748542378158753776816432408781833046534067376173553501951622483720476696671052296257244127301677982293668805245324135854419598250752304511817236170442072024388213795289159864089904768723436609177173367457877904223165385030235194659796025873892159452067069210671543789647509466846986590417542521711585503524845338523282201053466745677559313824294412097226158155084691299001887730016073261539900824127639288639907043308165298062323968157725619570611102720288250013506386355774757839757364736949091321409926878113391492498128464804209379240884053329150896525578311510338672842619928959033650442620362055857626880721584150112217399266105142832028058171194452023568508361597288524714840816014422630289331045316880352773783020758012959901319276525637027105063884348111069405896547334737429307049957650131935888117434337155841283164513657997026945540003677993331397447211930173128818978208308991610614087722716501543872512364443819386072065720871037378390457698388059227340164814027381927561458121708201516057901116003530316104474259250721069428223799020507446373442031033878125922818504680426544255339306772228661996613621847660026358659618696400050704049736346415856734033218395324171147937583139911008295049430280752354390190718225717394771785941549824451479492303118931684434810644107868906178855898491465744139717844828402494635183008185611308117821589363388164678562717574108512946837006940901876074771772921927760594158159762646815380773351136533205758493782486695028244197861208315304618009903876513548734747993216896413847320344512153865417120067901650937718633728113802298282116976563689378927714254569803113009673004169242866549368739659033826225184260860325702214660018816624347986649141469957864566613067057562442888534368606789356246925590958294657615359660706531916797448734987864997585908004058194128913767452568670600346817248511933633948750067060376895267541240835971700874235107962136627659157294686266373749418172792747884890694565986206758844294544352227765000264095633262016460261399328281303985882601826819529379265517765297008687930322333941538887084092105011971384654998489210181604760752835645534183769761491125492782153490344885809712921855374601320730450225268879750662713045909516873952196082042586466635704934116648993749346224081140146567845886247861067272336818691484396831004049445655388087040436347182127714254935994415072319971465589371281545603693490326674506023137345648688304147933895244242207924403364675166302225658202266723846935320711913290328474484259857628579283159177479716825755713259460390094087748679564507145546928728114589635998286696289986657178438567278431857407432565363224612828922829301455476652492157420666528036012281236554280754380705118751334118454655494304038871865444384923592296781305993745694443753632247118806684018977604404394281355054373206131368181659560097366041740419699954200415555981830294837990159015674084497547144033895772680733437061135933659884709284457539515429267355600088907296736267766955233744357021093524420436932010925350284498290986781618051200559065063240723734546648204312730341196032424776889424922880456726350538402753628758506210941951868212374423377544863531963244267688480205890519847663274163499876926388609852219319839276869295880216007963081172435009295872752657990395684108795550777486699183477772232269240311636979197812347189451743821171515112031591374280702056420318013428088990778954189714602187840661233175374393851660103558182670495398924156938462453034415607414238378649119226561558939502048805280880965522242743754273313096693710568050249135903251766283300058348064965607014321262380103294515328618820667278411234938166702659876601389658355802159466717906096369461899324324814538387091965721056185096688949233079156989817965376309583977271680629069784176931953097046401323764499104356311256815618587013273285767055974413484939199012827010797604452851551221541863618113403942663731043520257557680937631784779888483320893762141164757382169195481653822660937030222325182157660809404965994008981695417907425013022470490649873826405776879925960089974902722835388272842545346898323531476802385127973746129188769561629779053903393366314304441206811757226367024241222104921136767076073078904289151124211123508781910499737380417740569746205863750229048194317356328362505435047438793211527888355226284074298029050394408564622157294401434163562087464240248517710384613831593591637866045731254629035286975124899774543274614987315037747289657649814640999924966507632353180569101685409317449039397372869897044645707583653070014934667660732058850949836389030767712512427225186028856832341171366943342377462485582267252330965047007264441145854377266079422728997951786054652647842997370696808256080726276175798579899647125224674970460413615336828729387101535175923508878579313881540597788221008571161940968465402137660513265881014439839497472241801042172520531564229888484412751989685215374739106020911247240313787284736944360808375822168439993854414805148229768924510569052826032623396696716331639012769635909425309233457008516427297687045227615282864142778033675217230936129601384140448960127916691498499537584029249438354832130574333950193171465657423727444424225583833364234990293182222164962890882784045354465837992371501846147337068434011867477278361050403115218509886146464074881377588978006400083553971349255398823217378322350023723527455197046301873378558350610269176666536477927359409731377727824623851225868977738678913259923819244351223572730143274470513663744363246443330107400275645947550847208981592988365092965139096598661758248192549683458515386583131231709697590978027919756455742344506874135129406061029409609940352614770376852695160247617413494392627578365294893565649525430222576451307224646602719523683831500254607214771735040103986551393343124551538315978711793532388689822380623995739840089910240842435530965055064969846852256978835426533697092514881758982022107477183637649812884939293042587302192300624696366270806861056093351147491218484326276705402088496251445012380761335878679916326123691897678193776341437185332660823956776597373513000129767633233078697629279427017399621178487054135448510557142503409010619080947479302424419852096053035040136015929026785370397955132801537834954170897498539924037054958379189636371406389112842113359532442047686663373453448724905787822707609726691244890169340771387706336158754313508194589119110274531692029362609708030832344976359259311038062314940086309399426890172371795638560011391798491551643777110503454222866187695715296856695502298140716163199217937482054542383359468229222340135114219440615646996680420705063640242238816089691765985941388935728468570488436902251545953605481215094240522924534801802428834610357430936282472307055790112774310969766284854577652227193538030772754923447126721297637072803519557826544788924051182784467100561091199666348242563538590947428158819663598439932229179028450678385174955160930918902519128789640139641178343684416350602991449657690833876807340922295979220170143175785678468550187553236623429265552168046065182088965597824539916407289543190886723623680541684441841505642823134276593202543220267885623341291358672526998145218662188880493204949125027454801685267917811953657254727509909080239754243294424766735702711256655270352250035820949818346671229659719521299820504328216459224528240440248314236347584274675284335100122073751437261671485088662235518445841068153719550809843548389361036505868145866902579635594988880283438211320190814917613628290759352773417519793780410244322337621760555661439378040862682799557463389325242063489627506679125353851212484308921401065353720825532871175300421297920854313714421528100307622556770897795229597560973270544562132088170502606814962709786266738888187457011670859598027458346701587028362033442720748887650916002663985058923662534898414432948611835913015639673391543075494350988498041743791348705017018847917201224173814343919027924007122660561346864477905667179180805955330229263333122119565827562237286684533703690539746271071279618297614467406137655833934360405242037442522595832176584871238571603732633861204319277899986766089251032742993006301008599350005416176039706924472472920702522779436271910146795177520612647741133430951380658508881536141908190828369519844570983207772525003827791840697025770179607528046265347589679714381100275816708547376039657282684407613699771051386562135725925536775772440598373968133342060811051135591138831682966415209403279679638145813592286821747929262339172794259386840962252189743867109971677266385946639151800430261767885167881183872721566595048797604448735766382797567518160577477743900641727520028872521798240841100739666709109150188884099551841395157298353646937316790569381862549887606715699262208983588811696324983328418488247186129407335915899087397955662079296945514129851551490003678178110652466184214103206950789407816042059810468358861745152014041806061588500396452422847159108121376696125353582501772849487545142145134212785817614066946788073690608876079711734665858158684156628431801526381879653591399541081874194117345265603750039365467297292046336061396538944919746457421184913320961955082201454365315410482505617017617892764503983848628904923913735610397474781296702805649310343074824613279973997604801204454980208940970312562324624008591814499850576092209533221946588431524750549850252253936829652091656795805340167237002600609887671839003720476355691416273955609305473781747180041808945331755139275124874866530875679235651360635351151617660581256580750055094652447580651530301324166157909909554288535760995679123129286328709146364087092469115540888300188727346403635994164823205747487748754823935230796148122053049098597252439031922651999657906971900951830540558669980052817164842120772855620073124412171482803792727452717107050264748846567045710073890753062430060872260153915661039147167084767533498809188927426891665903118830926552685943337494726279492611266204682378949654270647551764314366037017388488396868513429717829629632862604028793708025655548653965609609369396719463655289110310018170195952595962842166158097661414437113521339460074529898046545156016040535480747883254908239499263298632634230200732929400998735143941116824996601979482600155605750366710348354066534487193146563152246836211130506051640606004027994362040303217393862551037495889004501988904284338133483025526900643977837460780611147210586280945046974945994388379882270140351743946801547802038873649612111441530064008940106174560053606838936583835110545277556509706459908719202092374096436317427872682096388934848027506566396463251315207936716750675059475046892375177659146416756969065359443451996898326650159650250796650852608518053154513404008927792290097978488307898988886614915744892766975181433350267700855621555207604149005587593454886334163644402166899513452523580926141281754042912285710563229065081026910651204518849302609345779163210531540896811963818051565264543793713353164172460024909833905074333927019763475505372193798000649551438709367593779707600054579653133601084971841369877439745666752906552154826976376102905677653600360782181537815750561707999246349844712060040149952357456996458634563273472091469303928605123531412900364931418222873845321035593630819659086242496126932597349326356261465746215656162433327859181523205948646625401592118026731434220282172796948170128808508093467132080441744722791431500835885985229374516679509874482787338733864135769306957807775315017352525607800520536093860239127033707002450390823397109068973770689941717691872900460049804039963262684123693747140146108588973978665470018703281522383826863038498793738605925335360178021632503910608807288858910064714008756884735051144042227163925767424121712961853419901457280706195810073279010791043504018298020404320062403791489425118792962616970485433146652830595142542818419960673934586606933381880005950028806509892656950023171581589217332747836523369146717753981437731113503361430427595190655494255914959593107718921122616132254287306324754722219645742787743069855120447940571570103210201379601645084810803614130097622426531505063191782266175516417948302911727437302224263502368287517752226934404827303198703947290729867655989526879901057784664830851172637801812040376904372264795749242237071809139212604591455881725785424512685157516196611013803113944312546245641933432946573626424308830143590094433088887177948253206301110798051649573943290265894115576512398710943264291167950091341075659675539112599111936324554160422707210896430946410753694291383151172020131837273849531742670330921400857761932990293411205232941826471627400007131385944657935651258735179118941053964962890212705848135327320320696551846343232944094927776159488286333813245749300870395286773513405812742561720241781838952081888533754519924883880106255206472220448354889822043596354203038199312419683200971420115899479957797362815295489907939537101830929650332987337931309029488980991978694589481305791063483980779017375761918183463630926376406537259976168469182316162274486691490545618265026884029669397650049952010568590346006198585493508652478800499682522591860642385219813532288606522235650279624606255732795873980890808910724430350837613179434265740869425912829610508478292066587801375082626890031599539955171100981169763903606649112204137204812717788368654726740171295431377704773922938196510367614666398988117763446168891724607463843898891052788089685049059275846356441676189093280112871094302657901000203049523705546044081004675487941520095238535393168395530008503344103041203610992870250466018421293647760460453258602161295440119487320292631117696594109055288362993163271174721463692764952278902263307395250618726812202531495553002419984967660408560284208091801750032075832631724998502317821133567893961560152877434765660587217961612452859309949026037309836419117572254214019217601291474162696651428834528501230320357960178604125391746004848136625032986403949234023910760415291716053566860899121100691194486125167850984501544691019988432352100847007411295100897799049031143444618649435001046467971386991828371082457317944331772613393284928852132480165381726309532564767430356491478084751035360389461453720567731649175515714352482696623817811736481520799243777721583421171944555532667285768463766228821622136174004961293306128967014921950376730925035557216005888414030228514025640832263663930638514055327134574343675630956585878673137017603371559064200543284520758605668451453902010549971794830319369041916369343316633062559154781848332138760611568489158456270410347194536968719104398686093577509129586599406546150687462812697773329070712861937473455332137982342687766143079324819257728577909797414646590592156888183721772351682208101673849770161881105874137100968872366139112840907466479376262068035910434967075945297005629906340305310330123606520524049657816498397771598631151922585907118854063898023071690490372954670504786575885234927158712136153064782699728709206384240481099011894053805871331484892060426344114313439366938655065157951956023581243265958712863989132413513968071152641631656873179165536473618945452522569716982386029445275049500959005878188132103986353511705919242961941553748801853202772159173922471487939400248156297883224260487289820752204231123238267558619989999302352413681504480025313785412174200652690054579293356631338817374377305985533581849242882445099271975262529834223876171183250776313739552535863803520245231240927175865104567642256712874707893631389817203696563213704616825438769846519870532926684436738921658589009056391721410595965806180549056232715829134774973324399525804699297117253806421618420575359277576769409007963315193586875831315540243518923175977969965158889958165454409773867400312287040092911930084687684924806947174359483658744318857825092715017443417829198791889009287492507581999879811816138198751377887901285193021460953125692575293384726487793771897956228296937616348892296219505609651212993623564754003962816923059193479154518944991258833543927874244654365822716017864335329624346710153744763157871320343917569476787633602529313142868482687175371897925878534622694562203118938099394850601688083826331603671280266204281571421997816995775806912851278615324555950677416865442915408449865037394286415825829420449384933450099774056172441557603832743023596885581216007640897916342282740190615457021882851346930515304995495276480764208724847933650901703894241779636144317135782048743077409042527958203342346226984644085228300769109817637939508819585122254025808954623858230144700036040405661280037041135959835796701148184332739123694150601527470995877786123329026789418401957264769603932683776257498585880238665934718453365408627285189962575186775353737345488342243508955787805401930935969398675633076838914428699660529622640419830140273230568486043222191695307689642563331335986789637041260820770956458102508158361768530164990822088594477665256997202235207015902325679743211286296865155294121658682062888759909354092208439999446207269045178602528361141755338669770980672320173063245231700184417803650161352281950347698450576026717591467705009314492606785585047316373114274573993205342576801957836578704214575297682469497596001475032636830947984956949717864476044812639460792222685625732454072133847556317935720576030097023043326840843475970881428460829447090770583524112103321880477314049580041530707811762404160023449564849592423874922282615362766276851954424401292363790990662396409059720452322047138236425054553307180487952418154306173746491191112745095097293743227214470158846453176998050827678316744185872547476307941608516414277407761922208375966896992419766087670700849876003346665273110658783415352099210945286786193441750691803733661210362513577257607842381753056012954412197259698903832633047915151262894852854007666075666898982992545506427605397939697286689152559089827099817802983339159386230887607020967824680620892814772859432913563097443798804365949308094734963803408423707989988335262942318206280512593519213184697189420535130082363927811271970989822028888401828955740101607516319113082499019284833108743202195667155041665387627825409074339692253428694109710490171783427423076687735494264813501533236211174802590235387371767183065662952891279798010796104852720381512930171742845304177369228860869016213693895454210588084617252369491768879168721771463493194821857061489728109877478814705893333397628750348228814013246780498553763322232657509199073840832441446801503215253648483879784818924451677991338403552890110439296715080807383319176979143644200502245086456429467997729716323053192806541981391547692290703530548571474760817299224137912582417910645232607926036105228462892397729301591406121373645186406580557534532458454194094198001634700458692762577714059862037817532989461373930283741820213821559344253007627439038662095687656048924203433803861865636047984368908451395141187068046154020517780999518030827944213342287876743264057479516387505740367121615343951192570609355342710858290931474733968401948848721218820622747368602995961955649370992825461453662619711888547446003853075151880004573149943208944238260461371634687677542298560664630942541448187772461997748737332200413939111427493061066862752206413948270978909513995946259832132105337965189273302694937091695240678235700450504214045233826779290834721160703522825339852839062084839038774067205061227893191196824981677011506456546850388290690770103785299865856058664684239730801796144638739997610949966514427879014184711550910580170981802522145187573511576150843117146822303718087766115367197000139768280621383804381910927331777041577286382671022084651291860053832441751165939976006253607536619415755454397574064862580908718218756657856333838288897573566423900650458339024593994023228839977442399942769473476112660658070565026141470255531843203247355448662021588829782102889546683225439095506766436796480560015030056429314226934794404413681409037786723152050311876079351398090281245900376363774691926681272712149890509767827474724582740711596706598694956702168348568007325827789156311327619857289034053211907357791140809269603640508888795461891071209695373461898720254756677421699802147320907258435544507502648752654490949231760889966898072169470727450591328255535771490350964523204363961683218776738741105215252972024311191426427584868118957939547002227359451133139118643161612505741985260306010998976506827375166052858736548901061453715957181072185808305514010162386938387364627423128611439988399147829549866318535984232037427322872575641939938073123540509209068176203560218208841171699986982373233427886398143599263693599467594994662727470239742104630670198087360486073937076123534680750418687892342559698207115381618443389244574240593646316225069989980988277279744763195100456389229607621382621319882408120067113022027723164408796341229981302884535493623066814642460030113739678833043206626784377198633793032109232893291267193079692057185614843120745024125685961422583683752490696522827208215364063656922098984476306956110370557613560150612896980145180800837954258708355909371083536202215777714724864102821202669817326473377098639683908574545386643801000722923060881879138019142877161385769967515945689568917490559882570253947022477050090867329545043487330039727917650452634720067934689600813518893706652524137357549626796191113413775825852251599982675409850506404434758972319256744017068843774960258062290301072650498377654785443300307811853682997874100557502328068237075624746512229121943145041922868132929348805048787109334535022301670181668739420116224302100215686918803577391299415965063627177374556358613488287218358784502723228195949899667260277179419676189062841710199937460861733834575595782451999690167336932683151579696766289286476779245423744022086300314698249897795165933158980459343017478352943055268628483594496881306969351014723106080677378776955193254622185206347443834216112921350589882693562793190589880499191637707735540880948267228245616417814481507442334963148769181001332723735392933752492483052209114498520463912053043522329037911910642123549582605494816511605419758420218837296681760535775192338109632085417158472332207056773872599927545552995181862844152460478991078525602519751245830726349273364833003330814086066234905531274028076833261983081535205407696993896742772041917941343616879279524563578081726641290615149346205786705243294004580732007686596378409859528372112195318297898228348504044363794260226560992042659073448412525977572808931801671296470919004870048066143053434577251419525882710727578426114780905600238323191317522861234970497941925741099171292044744039660780806238927456216404571703016922572676897400191668693895284082311089791751101278361850354579258776447416676298973920358263364764904229439772092273955608212174495848969446443529862500205420668667258925861111429986096980983133385818899141750043216429384601281387218931423399394135710577826850252863077188619945129354351990038271977856648759102528971133595207724555221665996318684599599525850344656637836723955637778687162363533871986781185966135347001033930423463108434616381794138805440698383113063004578152875254432217171364997299044641447704629775435208584551541550805177051740725477338416391683437940857010096334411684400798734876726301457462423408462544423672779390791887139315433750950330500021753663498454794032862736244435778389009068159888238455273529508330282209641116276679144862352535725136827622170043467425126171931628922447602852489485896353778078435833139463343113187561898800390547865659039723050900381356582625811223169147728489532216989822133449049302118629905932290924332748028160665374765770915358739410629139378646672723896295613423724551634482231823715239382421749978007118529809657964630564296505265249211563946588620652612600514924372086984162401814215794327994522410874135368943199136254584609334665206540042413280471941707399717246546632194393078803348448322782905516544719128024661798143030588746299727037940761359297467702465343594576067447141455428461528144816741371878428016335568193402521365223358582553488613966829210394744938949683005615529560111269990530287119749584312138312567130636096448971228000035773383005213914771561275602193528335289974093466491545818489196238188572399595251795606674455341023495426146070229079610259061241492240207980799577875761851466351152441317320166407927945577729300746274349139605297100738401826318074327087266269144183952992781670092188912173742625665928893298698086183713655005640074589217070977284387029213190861346548229849881684740807014299936173789677188781310360744048392113755149940594500398098042404428209853694879970066428079161909530608356958722853416473467061804831664860870194908705343136793156357320367016221701124280292705885651921752816347607608214779405353265021776766865626949032141966141138897028283311699254667931324938957932522531395123093038114450574761210184354374971283474454253654121671740057341276737053899354358660268118714437892715928394003525756889965097664878168786146074078153312208918494890704260342991223085694848261601002745637732160233645742686936230808362210219150562372405336979804075221398019295072191310804992418979587121581261689005659441378121530337329437030469408717322621342491891610341095742213766080505533585737049932615651208430824131919226778202509517775922317820456304472157975923064360908875932368775957769450785520237113732362122486089739680398727156274238963816580294426981764132689162158957258781924050463451146138643462235646642408472635565638310535855301728240570097356346433263801031578007172523336933516243358566522950020706189064140196298726708439993118490302286057351515768367862447143908510663717940346392981528132838664414537501837150202040371648768145003869872596522528235873542823349379261288634436262055517110357316882917640887489441221941302016774172441121499459575477498620033378743697044046025033436303805708919058056196061687898747437614547377757519449445449537610175487474208913919307637472366667128462680398859228984974460294731911543401147544262197376570239069714140322859829895657554798946475334155750740007162129859613111030625731340428909472741239065000147504000056824746417725488873222961653270630175606919998460075182417471025340004930632056343358050019373658763853326957108440072124099559911155029567054889059775815030812378075844812997540255290158959114027913024676530762922800759140142046195133891913523379444537484862061567535102352146500080201745922396788441059587074134787402670164540325375303901635159065638779051893899896422699204365690661802737412238047420766928730420720155287840342620626893183125179717475597549407615533353168053668859504969564754883310489269289211008313002100811673414358738588216729809314093867917335410190527815140640712093987456299968786971041844818820643294820849666609535178780678023215729855663345727515562886900443815646937510998711306172680073881212514560181238393293023765681358477110578692296815927215898564816013136627637095535780209542168181055963199895000649112480621309116011022704321608575272371350312728990308723706926479530140260610804808750220646444917661895702160228675374016702129445489562610053717422680443627245244334290948557259601162504135132455365380067053082742089260185554806070774220516616231471211688488715308510287683773693934336334328989524777790103077861695291852871078249931522007773566139477823252745285396277244633826285248984674996309039493828482629891634631474096849037616283202272837988407269824236690050142789351416289075833064503068176293647668075413525102173048429514957121852521086012699550250504287047293065100750370787179944299424911157107152833078122319286500735565283628464336680224098090868794807257597236304675222030264583403391935943061515825673060584597625893412397951715423352012086029161377559456551193890715086040121762268283522029063376066474764781677149048181464555945021153487870719181292324510008007340286752723360737250396860788063676504791895637692244811164841778127785727242983444267804967546263599270850029806166545968609260186629739736730049025010447313134900764267673717295840770807290451015631643112812523045325616186992058751573396904552358626114905392631559113066190114094230150132018122839625354975608500536458100856353923520978467333487151517119486847569789918432627287217731738754469159465856324992117469016708398423638370605562992041036863249298769543046907282268613847622728322700958021140816926418536044966068128350499172237831668618898607180207565175764190501036432852845024356832022474186394778606438296394860408171517061121268706953692564737050076911041962019622591720564625708515119428879679460112016723341021077205489867536642704749540770787356409686729704653366235472302575060566500225237307732460357613588941230867775847763829912448156342373617714671439886680689660385725237061311568425644085127744792312426628793231975772584085151468103398885782709918668028110636415459229940688615446746325556293519362273259648427572440021188529775439428822315815399444155019600618266929128312445461351354657375880803590639664553247391733828555844053923019067718367251991326161051067600612020883198482095313711907771680022358326332968885262577765499711954323748675692789975586321781455771669344882120082081957622856101786353684669133636974064636156677218151186000621952706056250186780429603978215009516094772555614849133368430911026109334925183216690644814157146181858107864419692551614123050496090332598805531388318456567858952835359106172545378699635330037235967977532445997242428021623091452130102517796346508228332860831862316330584080550404762006363964939337135196121762166867249262583991782957818224567202033627454128375131180263549126783282437805726403562652794171851204532852545929989216100640393758646944903187398104371661226331375322361177859500595774883004553152230007742169744639073240674534217245028980122979193263937145748094790656097854510418228445990487473440947116340813836698693138604612486315993675331761278047386494216805034860648343506682495186236754804483365264237351166766715792906139224020805439908210132729066489481751037406823211628989579885851685586124465303394072893715576425269761404086623277096476803516153109707171640446437808395395800265350858171067176593076570524876610748662393129256603804763382178162468121495556923067412174942785637108714626111796769160935737001609989746194315604294524867528657247427281656527039453856656275697153245503435756636191184766188960739493705539284212383397311870029410872916204397226777786575932472595602276784164518571754560215092096971751241796532199954934861217612579410656597053864741152339162660481774473446102129386167513568730607960601738335576367664180373802534701037444624878314040690076724783764060954365999604246963738572916791034070657636089499422839978964814517994983220020510921123032569458603347622718183567505639870976302504465139065420500759781725050259562466577813441918560686906843239382944888819002349140454625184426349427193045182694325886579055126569064773058268978707510161781402845149503870701626558136895258634022849362261591751015934264337095087930554352341973830804041184795007444100710253695072870467815790916400715794529916910615726852185726465485396174942312717204332464066624333936433912069253271900456919920555893153253075311406198069535729916712641866953108158601495490873606900010117762163159961138976740749166445564751753049982115938926145530615777103953796738657155612598287867044573974887623965020852025944238166075179298087900980413890926522102333174053257514414436380575694759328473597948445097092705463033619468356393743874665097867115810463149618874796358587214001784261469629447773402249354132134190827283294627672151614922611974163472737455839554765946372720737194625889135038823005365417476801845044190018283147611704084011338794864218459919590821493121445792197035944144987979372858491260714200402608654353980407871433450935446319798482289523538135904617008433434990108348675430785457579927792144432881533931458275623295601037151327321584794033181766839064329363011596668073606679268304160269139272432770015737644258926349643382940269606633070921101857433017719270231305872841981695626280547907596515401597932371285867542653668140476622590950856353598919166005191847181269986637045551576382228764419676707364597873032535635179715177387450290226421045014352824980004071995507266225192887571296061480922012595876302801181886737539676513118386631020502727060942538999945409623097075519998365977576495783171472738858910394901907201196033092045129432892005184044883736101074672118249571669713992802575761031523802752089533307228402128362479060581155466194062220392373157157956972883819968781269268326437787259084322251574883555483679713665063458658042847339749756282848676717243648734640517375731691881833150798790439460260884594478171147687929802877195948815535302351283002978357778482394685627086099224858093650735264522004885755197345309316477614540860433210853553572403181844880492690320003986879760686362054858444441084040829288910079816174604866507449533222614290931859804714831495081920161894292167735728638902321441905097381963608625864420688462428008546596943616733831983581341818114075466710006804279438640879114305638225304013195116513311054425407826469823060342330330222410601860335639970020292906563890380556463762945927073563170826942895322247152799896343697832948297024235787774225531455258936466805254343237059952620474493780554017816881976410303557428717289752626817346628570224198850968853912353885949040841202652323564210534279116923817979420871145973544209130085489308557543466144584977324296645235657601615235375997244723375808791810762727498516950415276018286846792054478352375153981573123458957087772767987881773965326748325881122326898809905129446769920139862963699567965309697599857091744720376276463034300554579995157859729634636104293121109206116045570286912590600930395470622326638687798244829028592753635728210067552301827937277745050150518294874153669584396609701185857233998003984558858357763558983366262395055206711197125163617812835005708157643610806091850866378520842854269899590190333132888991730712787877870161596592052262453052222889940915764539205103855956266924030447041108513568694987152811439686411674808678441520610206706206752276775846041019307274993163657630383451207476251188322356135877009377580832979933650504068212182797433534844789824204330029433965241120596320162838809723316116232908863640111297854111799134657722116286510186587817264065783772212197807042467779453630589377151764708241602587081267494293748084252387630268132675506801944317811906057437648271282677279462788713832297436265485217904689970285121718775364989996018437910232677739254769425623653012253701947710784420273879742826406681029201208944181360219744868344351679727696516042803889438179597453997990079005011368959713131228355738786883860769852782357720432308336758021151831595836260012850530319949186742110347430218429549650570937485552732759209474293568915505892349916012840202923707636131336147598753691076252775241462501726985753570393573835124291530846625246165250799303826975583263483121110932959908260705708797123686687804255366159366759418723432281041663467231170608828588405838732316215445223735428488720642307781727663552079937225257440300683470095268828517286300023109627320355909634008232198730972918132839731933739080819959440962876097477474207697615909100921745191557885274339105398604015966820926692441543913900774560300595224768975378439817624673770129583469591243807817914368370001617532215197543635509678618732199568508292259622636242999013841502093126710626961933917105595154680126817915221601581002290162419635972004765743953941895105285380108364344307692696396688763974596273852127017195472231461210996339735394697109861300906041572349841806951786253368856664774053236357438071119684116799408263098461065315922256353055394904383895325673670282415804045116339180343936909560407667117235071387805417421968294160211497781351794380368711589157827744747060097507861493155009312039183265062303652073861664309446972358815428097994466007141091304958947764662049181850823917754866732536293815112614558794619863209657049554950742499237492549420282168095233933145112710849463528744090082549438285773645509103872991754366373130047269310152742867402324479045869722428690222711732345464646004697834173928670422101344138209206678387727250307394857220392285071939566221091003084578141490448143974226390642236347612270855006086446886937545699108784780672931815847036791892969330528397461944709034127028595789418619961351020779049087680712581606802438551083435259330763501921515163183029303216866025239902597506062623677111696931878853095007167018918454053784719376368835635664666416949304955467122964092904158019212911523391303616654601947167410467120669418849188804461620474978661324046536161443230244053760180130903218512291879563778771724060976889489051463239965338842959436734337711399972881566613113892609281618904820688117130507372525849940066350907502473248233052072181213246310727514656894690393955255368571136855842617314982888391970387348510760481554542686016245477127388301909721639521308375783488249526523932266438057625786033801379149017727446488207025586627491597187645103059779962389622824729595738874497842457155511563971199762565311831363015227914452387598565472614934818492176018108115969851663370094325968961650021127733368246912553303645988869999326639167636437324612775882424527039237262761125801205255869828162655533860503157226751609726295827542262729651056789513269919988651439331481675253815522128242003765627297828518642965883404473558900753694531977324150827718161157113449703624195244500605134873040245968279637625104749689604190716628297599371052440071063728773099381353569118321529461741607012698299167873225760562709298888344925431943173218251754738916834668175137416517354222378569961160743182024547994555843799909897826156497058421413640576738302771543206633395604111379357964401695135661635629335830257543561189219293946343047964882138287053848711894916099285658203575561593810340243562423426069429719172542472279134009274612272341567264038363164859665585727462703924874483323656477592932583819189890068767522871678674057912884481407184481704455837524060120894363386567895239189968749366412564620562400561274864776465435180863605049011735653525526220127351624773528196923125960464439130136502929706110190538774544294008215924923096319168799756617045384052130711163109094357623949685955437980052607903326059453031223642875820671179303072136076627673259178360526137217639803822075738084438603055489900034303352471741057120527567081818082768829678744529428775950707354685115138854616333412002835951108166571241459518395684992674409032755472477793922669016960009499444672521378330170811033954794743047466807855287545650096962049772596351457816033497002610747930220647858103664261965025489365762054105432422021508290811291800016810732249304430262860619262577807408479269864680250807054540715700145023861845762135276511252816228696698326477048190645799882043395121784046538437905390700022712357578227935854086412323736568322811851523200475607476938906733021185287961217974139274049258309841843185121526917913350680470562065066564245480936165934815119531350939324300052593423754839006446165334558452771328482306706162969816097662979781893493942881976358595492839041049872891698128429718797424871034319550798413296458089027520823966384812272441595472583949614381340854350514601487167490099512356126882088427575254151502824748357006560796386489133744516207587449054427479272637693388414556970037073560111200721590926814965021056750269555037982593835025600190083484491712896804241328599625529796940723978248600361470165796302842324421196984915006153636813485357033605711343004771395761694402349883364302197816521625499537891784544593392961982925838703107954132919150421389282259157031007038483898595171594520569595441204462446074566361727719325693661904592122333135009951001492952803598431955806762843534498642685481681955852603063389012268236528794258695963914434470083393828400777411014385453498587744578221868609839079929221850309081618954723857859250308836665907442934398429416306337378236978975166007287273455687924814498745039153993480021720688727230267065767610562727761849586323797699190001914653260423936594864096463003672492015568315075922495131776838596050321579066838874354641727760819486611472389552566683434963777023668028598476785775482802261717007275230586645350187697551481329478121302741890565011369661384444910074029935293156170556346969465777247859137619830821086466036781947200436082648369147992685442098289897704650022551713278421133581711460794807008686846133179046374314698136558648306930272449448821087454169083231495557447208299728983833650145842218564096482016452400035797499323537838794477772900149599934289316108886964482913470632990091252073544340269716847922851028926889957675832659729832285814804157592862409504650547509163793000503590228753047866923959712990335461665944382077537043799937386402677536076391039742058386782431709529075370261113385677887957448259936070323606338207752881990142941797696596267896071221208468130972585415109545442043993524247109468988082561813556070499674170162750702096551784947035935349481873964685886915563679069007757173091536517771830335645027316407640989260266284141277331492937509486961589948147329798816370972536140071185051703519277208162199305354067635166098624186161668363136962653767519070664933726192525085918239308699186440715477032813762382064352487670492028951656810048353067379330768123861009407334888858914566197643663144235347629714055291480388334850054725723678304596533881834941068810450471423415545143941567409802185648350802531112788942272059740737020776328704372601631435203056776091782385247106846417697554407908899082101699847236860342932039924192874051309316152009656569553127254521303767669672873764005459551074643237980877020301471042328862195441135651620143405159672329757747187004256813462977389769684827059876083761682768271071687966185623486596092705630151747817839190265504050126922197999071879729435875834313004601939597815925764928811542503001957186061567755566127960934744254852607882750692153740090001732004125579055399395472620641848679591858846269388776622425888957262958639289734423619234707663288191813039329553780302276112554897073730071686178768196180921374145328872419340662183872771342064668517895498361396455979404473558926088661951526369668625741970775427858368134800700633820022341556781371592397222443877555122274621027614068220864170951342501105979671784861671949471333843893360042057878870795228940046296473112357182509883805700092974506283000304091090349271508306710189931717326850622102243098478447838255671769524350117807818645737120713977823012452608750888465412284516285256606125852638024728308335767636785276683340113533471738962743982004891302628825538079339316576799933409471652445989424092395181586525390439751421856890614933135421837479069291755657007590751929047049426949513703208949955197085562426318212506084195845507333744556933970385674399959769656528372730128380263508513999566287911538645303587292124552875555457057752419251524772277958546612698036034492270922233624404867563412053595518982924290463592568953457230414692907706571605354745685223990355433141244285580444739234176928464484827678110703180393379839847511857527158458351553533105302042750144861412620893699470417991760272233001581593556665551247967908380882935226020768239597457763308235901183479141103034457061950293805789733873288599505888499779839792980809528005077241263705518118068962435240316167662920293052378454872113647758602067551588539046144382583236336295086467244355767638389852212174857883977666681672084138706441135967293500668387719306658815891294892027244751978344406086046486047075105865033844881508448747173910515865974841428694580592212061466681242312870336620575348342159862505531530885628467327430224927571129912993459385311384278866359806431408278594909342984588469895727406190679532620612679745524987563779563807464932534615788814992264784644605006417675621563817084628045179387664772914022882196714599947790537313606470964781269226115356479438486736848875795416260780550234923157468532228549628711902699006221607319656612569419227599699204513848417693928844977511899684611482997038528414058183776940589141181403446614922592383583610636465479087309367998638815679435296165633229996215204795071825056052250141854594309993284948573162005726388618462594666617365722564927985059753378404624201740321538751853910959290603000241296988875787987904322074173604688534425133604110203206501137208849934522056311314131981931227411754625712051048146940735600249402599804648971698336360573030181991879968197945907513592100526781181849612211224042133272291764830615288571120990007285233166924139850879545541879711554559496574458938427467638160849318297392475899665922670553927580417430344688210474040785059356989897752782481435588730108561167033817983657489925753150639469590206083108980701667081813368609486759177349399998357373941523637758831441803451164185935998996969690438788204730589362645693135835201044819899012593420871810730696275475993872276275354928835664628900736585456858492536141655975223459502103564846880697577496924730430884111910488533933351374636016367020141167148365588540144887776023252599611016363865331300938537399953137416552123948861163457930295600747371890986390482082122540648959441203992337474968134066328149147384799901938276816091216957907417673163814512723794907912589790646657662397760576836409706866141387715346409615482527315157555910512536293278632713802335252409428853742588309401400533242323272685118578933208222066411530843089014364048829039912882509214010472191813441515843201328019268741762020285002351495703308079829381205368284876490405510241977296002727441342394269282527263137547534797635684111325116243205225240433099123500072668320599987929881209033395497789685831805649379951781388877006675092988586800486646661045865686470946337667840298530068644409698802579176897325312274475886501555744905331416980913648421783364193541883925416092076015171746957397051293599999799082176081295164600420789335378111318876553760675620751680923681734647403685953649053697356833457568503211459019854031288664676893540478351504595819468959535936750604353752870642303889309576733556725542577034777705434160331635142912463237072002296413954050233353940481213217351141653866522749111965329665042959316021269411884330106323485792749456243407202687785709495666171931838031198082022781241762943458045334503379352475654829555601924140734937377483520637814430894054670328910898009511783133446111446589038109622199771772066524467427898433607527157446261502506418871709758653673469449401521871522459301235035785278871647692289202137772208210418172551554565381511459832331566855053078272058664330999245669206453073848983031247127221845612879085829513029288108089800646681566330759225124507090759268381731026855968571851207522217095931214784518658676989225347934636535172951098103417444360924264091702684274515437754320240849429423739224538882507890219616165472541319221698345929940922069145145757546093765089663108081777082965177058418560613203442518449939851515761774011821629928110070905140837374800515831887315198121166671267753954469810600850950838272769100989677560750925628772825383361527039278390367408861862510900316750170421235745507340608741894492704344310654206820340589643770494010130964649097323927024469743779143867937271952462028193728738024333605883696480310460444733451026635251232949197512683601058391251825474760060069436421124286852041417428326329536046560013962156411631292939336047068858079602470819927776616423261189430008279309637348900057890513333051634882916317658641679822432877208669535002140080542307375302976278931195080233548941957301467672085693956191001623304832833339247574855248706545715029526631612380377598491359084370345488668630302859792803749801185768325324128581781345238288782772209825527100177912657245985662429453717984386034600637622252180393445408853819223608305931662644901620505457047765696096146246455060386365226850123381869610384291735529383824319586558544873675248118872856958704540537124656988135737926547910313794203322175390594227656862869449906243024675188131129159503490885687132433408848184681395494659086669119455377410352290592945430743642934617178537754345376889904749618439381932815638242414476681276899408696258108296574568999937850865025185502672527145490145582741129287097998867634509677813930121002773865470853529178082810089660898520057742822347999781761836579635953936335543272830681081227493893413651040538972608445872547155032037250030678559050789777598017007561983573028411575725566081227050298054611992842888415886524725162710301627577613000474439205606639419576959984557030036276671155799314718061378693969735445605833896054693827186813872830144414006144192579202948929217613275132355198249580323859237632500037737647816028140183074764655645601433421865513006861783616990254295961426923545524742366024980463772536936359174430077082335411852503842812822245787810733281443909501620675067197516272303207791493679936497202417644129571770158671458544352678710543459140009383764505394151092678025537763438693232260797443695261612157813273929286135214203581858842046244588126416039835122814195367818032730873885032238179692878458939473057096049008720027460767970577568712542443818678975758819242203545172259338641038120326786182799592196264588729079548748008143023746724927317322917863769990024773635269048859381329415658441969203381535606227962730910273541372368186311174478519430582050989372464650207768927905116747167201179166254535312774478984889401290493015432771933903267360860291365159385475559453274347620167600783393814754170758489303154928686122672723191380592294799116689561945182501971047166067919159331214692645077722578840098573053372442356795691073503622408178770203234029559305169783534044825609454454392262493611805986932484568320284377234658562578414037384445923034529570907981108893423564322030972157213025509147447849540568182478051119303661139614750740405920129518902872887227250789143952027868624877154779232853467254768196412181351985587728986641245130700073120825342706149889278807165211583877574343864486894527939220494648158134143146970481117465759336096643985616421123108576269053555826293817301261182190223615507211257547656393313251420595878083007776670915969139877193390826350199022970194924285140298588168655359931553536139559968192227012216201094125011617184379923287008770191090874060776985517599582335005712173910916406592278408136825515575660941184188355378431467549888189839224963215779789896884074882908594501394684162829048598450487848468968173358650383454962117566319917093177958257838447970718062625962087796557939252356052154979095094006729706175192454855943747314150648516762160310135940757862401700744141388892843062515391193009321080851760543006761526678372381378814058618191492341186294364339745675205138792631254575342903539160424490309674730536133860233392009146313258116322022211487691001457700744142387137161995111775959816567063350083598154092621850521462857344217734520988357251619160322347318612621609990875528037358129502445339915663566205539685241505059640288645538174276378158109450323346657438061180179993555140657145105306320765022988152062437168965361462959920921942362321102649295699154643274914153494677276768140274554200784737453509665152329227292541326106466182417731690426033463169705828846128699106870701013297741396931719500276544107970578370510465448574337844673065504321831643028661574657241727478818925249626396941045714047560620758242747484180418694394094170721149854385291175929822492765476176690373317077529625238128175575830947079153051142694519083793961875012378283859412163210477130424011407600961689227209959283934614833188811421324165964053513750155022030339264907812706828595809078480858787310862749845901027910326572696465582407950694363783636558856549511232975826836943811973524434787177323263165203894617451321350896430291814850496632195143409259256756559585041923652781268248294612545593374060089578332747262365320762196732746847171830826784264323035959738261609412706586396644853882805374490213194392879811149952367077781224715877863445336791357734748840289854165932071409268195592179005973696122839833790843692479989805312416448865623519086407000179226211887262965389599469145185409233959632787757839714911535120238864679364732858624341628226801417785684052819644792706694940483471462481245434196359998383019603957123872360759153996254309985662872139801754499151663728680167170842688732297665592251820356337084113850795736040041612191746948357826369494394794399677622608724966073159259647764110938372472064540031253249149825222740355284175850108785525037277102936760037417172740696688540855837218305378761562266107737934681315282782573717276556975344364111562554989319911907198747145840554233816430259238695868649126833250915709217804921547263763615914309114350814792612567627956950667989490637682751465056837170798332222573746193609900544291307147573058609525371145782530679528229518384666251518599308707726849135442864698899066739736589005369014578706151278597383032006253478003327804335984882235316540778038814651929488134047545980742170376175178977826331255088810064677227409560800404710005380672594233367019392459403780860627010982667871960136488824306553452957487112428535933962894375603870172810132760799634003677809263164980369985894665821980387558358168694102551035065614752043726975551469416491254297786345029439799769461548266306355966993935541903070802725235685991746375228629887483069083988970490876615009068752634738556414089599243382474792078410883927202817170870334075829753931998719199363490261483770316412058161176813961909498414150169052879028027001982220808645506803494876177144149880004548073853823864147628566441356946569480268579150141092654763022062230773754848428049089680863963013977258785308139511506610312391765248001783773282149939688363558477840665249096058009087915377272250130167312092559051400581042074233122853118093719140369879966265054082629966209467721515986205784366509014753085057473750200600940140327302638083209194848055789039727704696150525083572161784737607537696985012444410114324467222707985062290060295477903103499662027737062751584205131422884602815888751619864941972873868271714169850401180197726980676056709821018358216268755086764596156921304504493998130972223640077713582682858942846249387674989822432406400181484792500431831203145957845323660095722582263237225635589533203688272245904969701995150132704467997167642847919314316085486069130252822055152400714673876339856243680360990865188058262218772995397539144052620453375018055112146409653265899107299350821853837883131605280827510076555240360049188564496097239192699704242273990326056516425142013198608157644571207173509480033957665681485122294431009674909855546243113189272120185374773457312545044969088407449671213628286826351843817737297897104636548403546981459199542637998197787996498526765454101791655666724895034308648606335667289955227054237609056767419964594240998164760005001244457378506264431054492165912951156337423585257832145520239753738427764858666448341984467440668352238053168684967656268149358531544379952890925644290219478879036917711976433568711509288618803230838890350589875806000143425228392163071010964343304993133549185011487654754120979073079794464560517425609426258021097116569244753524055356477027650575888541499349584599056719411825786077994900580203081032341302268086361757909094414968474117389194732469725145480110226420995252273540333538057881265898202981483736450076914514769067682215384301342912799354410740656564344154827838725040555408410645205487321115261245627433195020329643027512926007709865147825572157822581521697814512668035125548473055084850829019706042816573826563569391768892522350451246131047077583274469498417748033603698915888060855071222782358114440098457011114717339179103137307600231932081445432341563940307283540900316568983483314776139963206654877023126920344164394509134163749728876740120997484530315555302290780835188331241733894392247939948236032657979876602340399245761566260581949533185600090766526598967429477974770122170397394880699440392540918473607374776845498554158066293996188100500385943334653592658406760512413584366928774093720793366193034685369971402774690754572215142962413506879264677129186923335085907656356079321686235026732451493776656749647430817439199489236683850253533055228025864143864181654175533894413285725918662216043553972015225035947625159132029655194586349082598719544204566265427172856709291042135890750693279832150696290250398809132958149184740858473182320987620640204986596161711283202611349011108247703435568943777276491977137622798611582187857880629588494555013293439383922274999936133899799181430720490175276624581769861946629459657525971006797409498646814190967091370906184787612079374861465416990312286831591455455611884922858710511148438949753028336016010078496359060994711465445090972016101481481447810353470806028750715379397898130119950280429350817060758417835581995170213194648379395046601770045997617117918221752845319614779171731062101065153488118939372342082374515831048578452692244191299721950556096441543937947990623495514594088510623661016434217249630097092583898601017612921742218884596345721408202499248317788192900021398138393417114671144113890638265962426897827910703732187257291287636402803928724862636807136685543124828588062742256232046711766084764820060833579200002016877318298752234524515186773864574726514546384043703981450312977146655323513682451077619938086723214564180854099942127572352117515856906295753897957410270698991452743700444752828999442942671889341204730723561817932805590838285687597027578585425569817054872741183323756327534411349123237268911833709929029920255750784449128969999420648782871983940991033603332867175073930367640258423865638013501316390394289673228214572634661327173351444431339703079186586560821996818961038335649715132514890913157402201902665888152189162991643365229519373334809531687646339079997650560901951776891938546533139733462462268383554280600741688670653640194163569417419458976935708000343637297190401037545614041186222885559056380201965640843671627961770831398752798843502088718035278047561355395645859843081236904799282468127445818440568337662085006760530159593237499470040103927907708595030564089338055693343833082990223771248883566723809989831925478983848472180084291380264321785692511274837596630705785813297680796228380447506491249636844875790171275222607050946030415435770929204295304364955237698142563893691691853599898833395349511197529711506056763971018530550046541533591030279407886369051376427817146766657597286044612423707578698586069814754935403385792221402329395411016098482646775521865739170890215105392708318643483631278114630173608716780440731494451958738797809516303490725564962449158921331316151009352306706331847781281924136520903979968363972707856020843903490141071770601869666855364506956606291887008610064928422596260112105500949665426940823449218012804391529533207093443289336770011948606892735671324609305042062964953028947589567401536433870193519099313799607083961515364841034096662273999529816998455021254566187063441607272018030965997934301673882514035651850254696652216251973485979788253512935291698002408009046483533131503112452131956034277198365869467415124469786730444241501164420338916240512325581649428399719657205933278803501703144423921150341506748189292151356278616394588568457375004101545350941226174349692887317290058112030521087001001473071201448241974339933898640609811624123431769525060869772549714384543375088105025029517297594779887153770309417777794594080145551037194570949106985528863481439075722431223237137328673007038496933737396337612194227377316813417368373452892693824602187812265759023802052790930646492623216518380258900979931920348555536033176533265908827348658333483212089887768467042520857258430794109837769473997459065167504528760673962911123872098687042792874600855857017741464789877692100841027934013129348775922639185839459391105522055922521135173553137119585134433946377566263837410489534345435587721071654354623805100273722376283882802140182484185431082439631745222272340094771912306656481347643112463978868886210147845469795739139913345937742366206026686971791578252744057812209045601913932262726490728493749370463195217289313001198233515250253443649605636763615337723743161877286098134320628740896290395081108654388376741867035334538695391487973972141485307516104255200768223540852847917667849735030957954641326025780409730168763593959103275957150849012330330099603196952011227810687217495332590195106199177408034330716083891659812181998006560602758040510640942798377254385480596522746379738044851589382462836242537301145237793045201707307983808563161426610915856537165418972374283900897826976778375978881370676910117287160395496044967343276603569445213756539114171287680799440822569776238641562217391389958918416794751225724112052739694918213074361428400618067777718704705988597769215911043355126001844133157464610014430079330381905673464470291001847070135193967470200156492542916069411876244231356638324549016900175882075680970107262124416277386611475946421651266317948453171738049443707377490300191052801143543952354442258415819543591906523070450870277360107977518425522738256709848917512533714262105444633207590795908483338274530020489877412004862251500092420605117081057558953293112637210604012561649021153368669514391299537016852105992248686378749845498816357555730302638051389881157192718202934140022569841088110628635018631543304780113451253696787931621205422894047146411191867356523571262067119819814868379445778004326146700148769846334616332439182112497449048929327799647683684541827723690760926026512732162365167116599027451906411640672554424355715979415827970453725650017661215617121170745867676419957852975029548374172956105880648462179490437885216012116265697124301470508810591908602153448534881284335135858451139903391001386286126033695925346425937529507397147845662736581246044240043246299788011403844440431538239015907099025430272468977033769361341956896192240355638529732851547144958376761058178839673712858883327498741511426441961237614546194894795355479623088840631936189931058046422572671761692041448786045242528526985604448915034975676130898734829053449919256768917784668469402631261614714324946336012604694979888029681136494351628880129211530500408731828326187470589345759038200123595215968255425429805954996503125773124663795267768855811021836570793805446903496847940075863733209793742419245054040032404378504149969204890704184620126390950246754421953281165410549027673830382388495475037159726692101399822515712893056662274090974593489392623632573986386341075973142028345145815206163988075012711929077170591994016122423101180446633740662504976283934665273577188322329336189830851034068356740944759896322820711029835499978732447523473289411040505305199867035953183780553401135646760856818446732032504931099451465812315279114760641986765728339731006848936774994960284386906014056344547144653922019896365789578328132254483431879028632155963835549024574816661885714121679490719656307962565803012508645376541046714349936244572248205406856960996131595287356012604832468523061392808495762263495222364112458624579107254302964938949710961593149781017511051562217110699502206074019593842193483165154842685310996147735064994023818169927088922241727589556391964578505969754102936295977211450138291582188204998435611561478415018036137491246206864533905503850213149980088810086771755692513202199470677559265212357228393597743237688202380534119144264151527239467099627036472241173178057109368922677748795063598409176512584459546896382780469102411536370855504778770970734231347452163436136277661593572167811290750566234740528696455313345974192093759651081564785504531126875084346047821990083139018320081433935613204938471786426209333422137566640715203395935981067185452323053012907464860190190394051319157617456823155433881570948068497926823202968685365256024592209865131750303799473818134869395826465792929195604907373203163719490352428062506500344842360970220888287351998902962382937142027019970642130727905995768560983781920223542865961022674421017606021464124380315737040885562970527513124180144777655109528776446135045404766269955247190246248213476554768146675645616309957836339234504029014599006686143161759450998146230735371384191168029375277015583090672135057847836810760100074075877399784791103585509966092610844958686780692017160109645353705103323073576417932191811161854139273865130602989278651522988974994565581548212189350331154718514276672563231433808386155260979678561856873819548908061452491292614251319777118040137995309004675385106198404229739935614045141591402957940758194550919143156658917828867444339686886100256226408846069807212628853405029956235259828383451203592120859119021132350875031384233637582204664063871080778544950907542756787230970928909399485946079916623903074065509454786545524741849836279264372039865624373811262375061722530333943948835313956027332234929450939335217305408223979182029937991809281461205015051993275967754099468037897659211389225973870066451300120088541263208029306447542622208515807645920971269083924934926749804131858802052803198374699101063275605680888060221123805877747799411968286420854580982229966001676840995309413739036931402720556580570102330367058826397630824698344894616683688379660777801554753061412183496555590372415407185069605842524201582026736950600226720614697361950643365123249774683147283625132954359230527544432267400748154519233540778615803280214270635269237781257807340009638095634881222238567141854489098167935938763312485853679015580897038522475719729985556819519536535196322570305809983509377076148167663598383084266517978402631503986815068698306649065270130992389971396779781073054021188505143157350171392649180831495926490294599173698701239280426354864821440344821949602934489607342161225317883359367812571365560237175707640930252108434588152198134477148125605118189257179006525930823788748578476778647326459104893305262119074059029466158766374256432799199831015605815246021009318384268404576993369254759746834970467664551532459184830621904985933679883293194057517300150598898154700824864306350263007734050510207024769542490852643849736511913200705769671060617421892237536436713184453250590614049283457015422222664396503283593515875822974944362374587841016215395334842212099222553805252468882263320379856068795100731225894994937420224467238341519229249858494352667291964483211029251169248355620602874192867060469068861872204467409044084944823068985591560326312263084313027526880726995072490747723993902027817886813753046610163783336921709359487491145830633588901698562021348860594844544307946097729721938846899849868068030680681707918787894238394940624860576839997347283113420010193440836011142854045665421243838684928773385441380384950497468974602086072148608962004626609603355609016434378520607586684374141086444631561195314081592837858428430239598765682416224306052226443501868575715909589969078247654519411989189366834189600479663571930978412978008270495528873417134112495263202554666865526176360343646697788287034637315292169044300357265072626887479607962508989325148459270891397050193892747464539525927466918637720694055376206933622681761981850544914379759121366291133693779680099008336118524280981196812306038539381366145223065246445289348789926081624822941216014177666573280068944396970301125547520989530012838616165253246322281470777927460257701980608554299404314004120036402011749471220002342002105229060504787150505175599182910069594496845390283850881308416394747507394765495689986132950264553942701052772969364247955083813070014846528307378301800951753777650848027579317427065668830800178666449884282532974264915585342545602432587527327610356110178432856896450836810095339973897038567139654884645329909702348643801880228898961108240663477474262091815488958125550416392036031663730574689052371883990092748107182104600620221132241242756524364587550950590340290583733166512892085175695735420085397668124034620110172842030551294924254169190238661720679507841707904056991261514241858355551147367892481283530181022118472270999820228311006872790741880071891414908196625324041900145089367300344794570151292812141177814265986117761240668407240754528797809452366849807903726830425269359152448147305180929334629894395510970357349497381983072515325543885754695582829832997487802526895161069933253727994403162616104280630326523453677072528646558221871163801146887768239686647314149282247454018837115350177618359842712577475279284769895180033209949186700687672065708996601554019355146844471800705034462844182192016091175479200493945884106472219069494484259627979629526324140910799659575883022241393683913532951522424268111624058307763252895167605133782814001661940439068440652692459786583862793025938211062508229364288894883075865850395203372652654678472570444898785360256488156991888655115850633088446754722676320247557577455647259262631781942874719882953930510123913804130813774450762356191484511193779799340457246394823689060100280935667817678253377145193467587635688665478716867637112266484788083041043010856923932371824266614042664812710079223249520995292860580321404295038928775587076425001503071690264096882364401585036676844918439384689991203205477149994843117828465979730663662455149867285946102438891224684947290567328732630220641531217086439008152370183050452996011730538842418850721938583557179183350958763821652739020898912917923157621072949269224376987190331228764083676720976335593530935358988100102886855609373691712508363931418495032977583387406292198501045100321187460809199542224646619698794008364725192335193407370876559242602407968493700372909520597994860173668650228686436889447753602196009953540448058368330515847540712360690778204198707741879333364523772573552931045033146939899419331060557345173879538266947047431586881211518729731664386000908676894924843486948853164723435614201041027268902682007051574512104120442756125071498011534213419468366397082163543192431508168839711711082330551689665685623322427864241163205129681068729711832180349772421072061356410015048832108204594062781479423040100938171629029317024741642951971917764163598014783913428666708063577685084426509591996485188054209348377740802581674441163261421042709291024665153183045943613063825781415517360064232852466766228867589311349182852827022805207447594067501647516650124435962542990397559762333450820732336843301428989664463241572416600494981312111300909517373920053902045178715061983578290914907989509191242024679417732375113749090534117266468293131552942869946516652342067225227162728709150816578589923653759827789454109734215449322939111881346149515315029255424031180266778596041749314805542223478748908163156464432665403805688670705804700542435869076555679971287860770050241399136508142076376056797278602555367108272877742584899164028689216129994516987251584824589546364136965552004248793479206303627062786388037262416182846423098254563833498838001090356693376675352844664922340787410402014158300808159349043203840798125451181871390657040736664254881963045082552669510945626620283012289141008274044141767165712368917353957656772386107458402200993452568708742767596938548564039845657770662944901782851863779096659980173627054486151503693734136414130507405627069689004148314568781067870763415819038602918563272206604197243366862625382328475385415060671648161328133444812455991066545595942486139452027187624912357870444779204039724020664521087278900250405314356783785042677895606283621346969323247631130030724429915564684556829129985886100976437373276878540676294388108192245935006185654126245199080390436467124124255432630137832373095415088044186107587912048839673901733997195692649920555278348359009081081814157010576897338546113736103077355225670938758087898218157295985575307820361573605603987844672534275517141098964638132436349955931803052768880572775377133515523197929971242139166879371140491837217490139935759643783358577733562957543889215288280106814679359537953812807871450410424123853855057964447149344959156338099028434663986842059166446218359353054183019969534901274563336313583548764836607715434364166285873068525371299319185490564312065940328803207240106821024843490448803180413833608036476891327912289182719052581159030010074463701037748373370419171239147776832788519011971732835365112055514841042737717583414870650494213224338881631746639796681599139827207106484807841886400766116112095178156092073731453437013886910825325884665958237408667804834799096958231926698953092493615530328012878520220283852129191553737267279554586108981675092116801620902998714117904486810057139801938924265620092971568260663966595616998712828157519095308022244577126945603919457780798377715521837162546658300206660952053865423477646303897169229193166663480084095570197459384188999071834557461802918545665475653286799124581593074385172065996429965551718940430599762019523913915140629697005143801750265224592211567749461387092151973966349765242664735256063923298259917995408753345146595928487397966402657826219441088060884824190547759329196259566025925112067831802741145561762871802313133594257480974366879167377885573798336086610642990998074181675512157953192057794633681578901769824872352164060626345071277193792277580015475739538529574743390201678478337492890719770460205444750495644552557071635635229200303744668740596678967683115525770060490305297058205633198915605934938136686004371329181001314038678351073978728554481364058260370264771492112850238007051185834730193012284016058713154932482849091372931291929481959201506354065313757251515986086119989070366201729776444486419156770336124487752434659122577937625733831692759722288496331468358790642286767289105744291084462146630910987097135730910342536462294578205931942351453716303157452989204041065454051699322362221720490565494083584389601778809944720558612778858825213182140439209244745296882451788700848629789253998244002727885778387772776447633031338997213223686435676707976072371403584144456425437549912207786021747636556041460227224626805087343306705317176134698831368180064108456038885082777602011906340824021478773782160855473254340106532603351812203414563665591130271559918163973866254173115288630401717886676879544225784581532455287633717110407568317142237819906526069548073324830316248326110955379011980683015382722317383025696019267612633664591898978077740441791926696301526221597833075870990919417555149819630423058787026705083707942727309475872378181223909387689970830157204904579427214568101187272656552358865963153400235603957122579941064177539423373649486074042174243144548139296735911216250606230678121420471320998623398130457107307517893421623326927929439265765734750315888259857038516828229509433496656744277006274982762358627924390093203366305617157058337112782422559516071782714036873389602683739521597795484622253569775816952494952210740747742722583930370367466916218222659848710702461786961491862610088264670220590477776688866523616967235347796453373924878102744370343217346364599580794092298351403002103635967345363653409410128135720904909386810787265933776973726386551491460071785667136035955752312156536424350393201927946894316516652706179561897887436065925431065797171579042354667737839092080442994968783178438677171074019207539076972492577811595072723241110087461135855911503720903814291394185583075365552604788551432499168691342950623216317726311928749447378281394674372666574337160422069119458371732519743031948612454586546912364854647166827646293215756381529231715855280491335483128984785740136072508646666598171284850180044097219111479511209256308214726477922156882967981950837316848434210614795395145555182541103973303535922963687629840904656938802056358138491553308861313801235211286636022542031279312324763063946644231285928772627406903219851888276192910248870083321265201948102211962292973108713499050950891587551747317137066577801951520419205840706762916559333073384159379633795835486425640478659523545845577099053897165288435542825906096780130040290717852785215668762507076207978600320128365777086756789437744573065547449741546073124661088861583627558736050139724134693815399958558321042094715263390564050712515887239391002086078942598454615490357915079221418979100712527585978564005532627346705989762115634187727007111415260914923781386193083624358032925559831995478434658069930597222625173545157773199466940532897941658837066967698241575707659779417686191036193631662890164111297377432845546273775371013528953515173682916389864588525352404915585606912037792417677499902841013092218741160184243236060973427377500667903913226272624190904876277205620434962061036025024637918773914758462844669573542387057621992929126726693266544623454412000933967375919527251466154515173095524362610098924457226395678302247326986567031194226416445011611131326249469659824482384015810672452838336399840666285531538060196205582276197985136019441801125838239903591745013066150543033766485786529971328564410701386694344728578187134461663186521733195713879138563834416231356690363646310480167212215850985615146398644018457551726665199539573997232050039056392693662003144765302260274193354489035391275573866973325749337172166753297725072577039931788175945083242815965332291014777740203590669504451481375822870317780088249321863600685118255260116939231249675529424979923141734131722625786635681695129238535165697675173358090424478144142532548377363205745787693226651422859019219053379658584116550488988063080451083244216355157840812915225347948082917605784045214489745250151098841661604907646365843682692766724282538989842276495262844685328024294923303096633509870944810919416617898496302475567944966633117880835443126329350216950119236753802060546206583927934093547212954432761865351555715659194897027368836998752938074899185946010712544389842806788039946825655082451173614387332750129793762848385158356126898248842924303802473958714501560946512795349581407385757531949992291438278793761792810515087785239217981303252505847211438248933924670728835564783249407667171623960515734486479762332295641149793195170420096726430605917331655019801155985725928221580855114479315782070347479996260958015112224042950220794753329843636168894820394197350691174953546553306300911864873966463424602374241362971743919131204192526115766737310369517779886881159051916999166830097975880032813186533901233357902153859929483329571216507480012647590147362075344915948760192830697975730422870386811133845025708914652202116527494344589374949230198395475858014618274807540553124706250194147358363991821129815799794888519406672090302111307696401969794934267109889250876919864881446205286942284732700805653427843606172377646484599669590090371528417397160608015874615429374029414746252198172219389901467509610988916246717833834443073332248330725190733734685609508972071617203904064142921957909084943013561196398735022628555463658680879710021598224157983719276010921076648720479604134920028824615362702942397044452887226279427630430373572201599241318990822996369576890278919401377984242657338893911020442384626999801939511606224911920307579535717520558094301779535086972709507887925527590474588023851037558527591028010915270894270065164198502223090373186166538763181393730886522043709684363350005647653275601170149071362442910369505017568897896718326198762784649316219914043731324521524001512301780528573738786629380125997630371964200661197059712667667477762382285694765780138783767739986097921630149566626116208987406314735183178449729104972144344509476534245104950931947263289901557219214014319496288914611789461469048537636926892425816014430345158419337947111575301822297248161140089272862524305819505607655531666884813659045684518562078537296359424419808157313038575310312246679081814865039895080619482847940940704936903911527070326995911044237516213551353030697863470064203679316762069361900335408933058268871819884363972484793381031495822063970650775712021928741984327253353988197289023145457009641075320774587929375079973012033645418962388717128210143974402544196594926277226370277875916298937193299696646231310463585672032510826615594286936467061654776992457262397535145550091527578593254201079021146031674519237192006923231539669496390459528965153578608019387032647400967496450379749691131827173301379102353525779721865562279490765799703021296104264168051097465553115444603508477597019715567184369448653478925135386710828989927725526922883044653497388843469593148639644317746219397640255717542905537284455436342229449698971021807728256462756605247572509013842340965944773507805131077481042937475371876541444215885963863297238336441376837915819470880516747114593645236095216668036551878621123603010262818755436073510441033326206147747364522214935180596482633457520298616088386003261047537076653743840412724132701704482967010521256529762621977941519535433022114588122835642664728007815617847717537603577064623949995302710176763184830062296425341168607799700023773034736308712093667930867834432182992011577424432561825752398311362440328159137410155320808998212550254292701729017131307056258482265256328619011388444228093967555887883361529186709337346965716458943748792817400078368556394955731631493184513639248742241962659437442107985317822201234607815008563019534140935316660950650483368615145363737147702675900678467870915715860553806905761939394836773066289448890912863702870423517670915429491264239874804538033039401307493901734283967321753776294896357274271877840885969971656932523771438323320861669258225962231106725295950022809280250873994571039689799644885904526672034556873341684246091122471735713763222650988681394276851859888045165339540282834092040003783630065287435816532634485213675900161924225052887390533528085246664190891704371202548836940031920420384879414886781327390204070712493094582227073680683649428940411133728569770750711965034576358573662699825669848643849583528993878218369897625459760257408746253593064047642229762150694279172768526436168892096412301169992653409864919664059303469768340981849288405848000060147638718133007179850437873853764051210711262187463013287397804280021256901822537423013815040104467253886737364420360754377278541199626770072719396909498027914990498570841095453218204699298761494413759954855533787794944837015271413123843468394311986152864527792845509834302122749366709980623330762922365356707523871823120003442993630940463727897191601509544988807265560438165279398531102122099599892099019728981206166770944910808462996573293439277206077575596479308610571280674648153986567950364844866108742390220703587004843362568551943043146408682168895033344190285735160061519922603746406927542570519612555551101589172647397807111804070854997974845277951759962464609361556321011504804259085214984197695780976197312335425636648851057740463626551913704838001895211034957477415498514941703163275686073068679497256482424534139580329824369449022838522269728861955974546106552391481791662272619998019003817016115218180466696664739713430659069168598512372876958276717784229827813588852113863886809216074032574512299164440210515967086985038753466607076314754055780519217021800951269055306206183265074445233612485709229237032372679790139350563163744928420793771308932267505928353576637257482273238103044688417180425003416946958990065382124446448253742892684842221144907858540121121609654292647925902033481906736577972460075863022036214066095078204640810929474527234351085418441369341407745985937867976113073540171960189840317853289870460786173231573403594478881322515754135069584628775557224797032720004020741703318142845874105388439312155823178805345246629377668080214717856489523132501905432781499289908296138944900647848645601658183124670709568999310835068284657192179536048186293417296388644498141191546666043109251955005842244388896637912282434095431607754707299160603919241827280557288162983317417245071698307756946864859799129579695161458362705646938969656135116252292157829483643156376181633053072763559302198673610420067124080081774920535902647771275233613910981145623982979692612868918541403159085760151740184881697617985489422542959229788430507003558195971531392631482066331636947449875269860017902736175913071376434789521575967738710643417678564474461445837717099250395386418463872023883817321776082013008675298555256897437020533661763075276955660287289363560110771623798151233225648086544816741197035307620212070654757958355571142925915121176945674996216309359875525618281735741862402854383908870019837774016313966680402218663055996939765930321278443174738308049710262399135626685350288599745501340594670533578127976462489105841827053485987600660083618147251576130716902642432980710406822598450737159862927135588413934436621111049743309381163881490748123300379807444683344541841154647108740661744546895952692915315891102300889932035100447344101573148145571431996870903393989114662343475044319173772522607665225004330758378856930637081348826292648260771881114371235097192540695201521933585510849293026790829044983300593037843086117400577663341171613259198336516234601220042133771739624955761387450188220223061078522019802543528238135729757538306309572288503343927236045127392524025703053001046172394440556933395623282929792538256472984864290809014030971573330630787980039128057449771211884044965193840931046006679477251368386480876212421368790619785630012241879439383181566724739065967742144917305997121284575021365998886903860324762220025801708297605063167434393860888923273671442795819808163022981404376227737409056358478198533112303122572965007470292495605451007492454144994086268741326178492584976323577380784568629398863383906392910166379446091180258631897367795844620329065251853883575183308218403657171529581830257138127855950270789723396116045363173320967674502803902300614224259135086393715890420678828914909374261567636582592518724413175680166301939093069017185797733022413553965403887425971547360548929202930259265025428912508503430852000432078228571616837612285598697382648934783626391262178902599376005559374850272278512306957899916516977495347031516440287735915065902489442325364239454464650788832377661601550220972111946507237527839437320925895838928343869515482292055302594709114966931575547443680378507376888049619626886709165993118868370143337493535194012774615750711732763882647752222213214802721841512887872027561186348595571947187036141286310402712131046896015354760433359461527355050973210964734678571273530516470652816695817300620154935848623313881845996285069651116872136195125235167031371150948699799998110808589426079170106117534597281528072789623670637167310226618991709768185150314820032742708769033594004267164728947950441608240486134130597724227817706755306406156434967132518387753079463252366533288275690743152428322985527943461183105716881767771607311799383388965755710828055806753635449640487632028980222731384601365214234883120655288135978076611433083373962896386197605437153295548916029209330220044950048543633402510346881459112251222900245015751925998004730215518152444338821382148054409741100982482401428075950694529535465581864703190920688725367881173137035485630258354641116656523605605760286478173365896895222584519814065712112352770426110711115516329532331383001347752111892084926623158987424546412036462406396500945060448682087705559186360321398252429228647076033249114227693753864836323956379451494579897398407630333347262753977763976799408773175290173216340532420094238846221571958717042933311587709287114546202823811959350258962321876515946975944913619786917984787115210765033016618228281243291291128443512276490109218900792097915601905367256441571854892705621615583933160446442659533599893514847717023571573279689202338811107304943922733216448265360275626178388000225641212175031814955062370042096321748661414864578474664632832495097713330172973499981752187248405212022900542156124260507455164096215461753409389714964871798425628630738643161796532532575515320304196513408813979012904540528902351357390573256775270227994673031524515846011555057523175223036529736982048907545389511101695302601728603876466839465316438916135246934270947196552816560916690805115388407123758943595260377519843310762534897130244379391941241044671629947638504101180919928464404507891218915028569878669874442029734774413748348685519284298619222839495566010263595075319676063704992985839472120784254955378288321987387846647878291457838976781901193254339083257282890476834640677945841935102206390535802204359210662417623180962406876637535101219179426538430830681996778118440262400459082901174241058671568256855433457253225439139533995211146979409626114821415974817211045844941410679695655645058430587063694527236427640659284460999803543305110318849638734215770309348282595890987746058800381368458741357320125419255195658964550084257786137485023630431367933339388567481856289425480804679873426737866055323318638634868046581071410286043427791466966587153970638019568622020357016797865523535965704446028666163152293037030635126625684232892517322303623191657171008223883082770396102810348393551655456218874297111725745599732069882290027199829664719653306684030499615628028455443476946749373261851977903141459642677340953933195518405489364235535670189432605708541976922723847432669277819996300782210460118692275127344721684847160809509731031110215142817134971945972551191565861094657095980788356516005790757636997878232035189051003353671082763444600200659584599110985684625563206777456654402419837239055625656170715344103897884231677196337541287141154514490913356554479147094382842946897786163562480338854245724359489055875543787844053439532953494423385017414526947879855881475015015837436327598734652140364591707756687131316657827963961529051240027708671876894781466476069261863903794580912140369607343766513556638511324275120975447645904544668960275598727754786362856979375160769137881020727672303060357328815063081962388636841846780629547276489679534499770383514938325169917617703105717295869510208671881177215630864224270546629383407396861234564949049198239754948837072674732558386992767673674353813038265650073372284902548906937156527191720677357834274142482249850841055835776207311491234116929877233452951587249873012818570017342386232384149963958382130689841341809273842178778393303312340093204978620130603836308414419601023117062892153575349053710534709080904951650796491086410945141570385035194852323542007635607925556082951186743692822999289014556769352317260192702661918641323292523779118547398219703190309881345198441249587515039034797462051318275079002862576498025495012830037389770629499692991641507053651978431954976729244012255639877446749678068009575066525446178109780289796847806434948223048148975387016110020434099966284410535351898769762461483759025276897063646704185124439820706282421211886671910915238804922044639694281594045670230613577372218242560600958139443896372205775071209053247756456997700313332479074644768045746476451869877325246772101047071637156156320916296383358341998104033051831613369398600526157030460497150902521491379145979475426740228378261982914478025543086649003793583680288815067163178202672764646316734612038095169082540500962297972257387061707826142168970345756864572952809053902208691953341260489158843590855837318536368761036016943425644967403245386710669654624115417189403266141451014697795990147851464678071841272665891344249975922488245895877423296385751229282965208601162898137331427026147661172334343369812191891067197418298079124575775090453258367391075538944314430818183836455138548126535154368203118777045406570892482593350418563429248102451838635167151069727331943301792264239969881699410911589242866434033813082388886598377050263499740644451674281806547149023222953077627040581387742017607076856106261631073991815949622872228746694466608394775846815970295790458766034976761613764737640202781515986070818787711922114613873787238874092366782636320396630407341851918851509671464016050805756910919902471307668641458821429109248118955950364726290111645498900685351766093801120842483998417491368020528209593094021949078900178909644927985877925562422461746969812103438897127257631291472662218701360073515450974478468724182517646955164566285929648897648646959625430822290447464478022894548688421432969349389688119495073851631776684219001283731649219362950195759426619523549112456702226007551233950025832546051456089636195161536220050283766870257550940737152691039288568322301814295620208006066452036487858306181362288108747979325530105312185099766427708863039133223733664779937539699268098126248511777096286352776809532425340744328441722996716446013466811193164356875485967085122211799009402033936996897765748275881269668553299041222710987582819180570516710693741978619127443377655691222335086727179348950721004368172063024423387777063791892440691732592689331622746760992999769495766068842485743427054754284741605152160794813609855019869914020038687434559303550959632094615754609756203172907608200489365587127277450345404185210761119819321478541166932485614749286277377658272691973665846365302400596678231104925104486872489932375516047902945621295939687172619628121646122740483783950120644711562010896137949406018221353452598907070035797748328421529548703660641066963449769977711527967626219544580144903024646503858346196899022806846792575323508768413562849574848222473230521270949774350214061211075349870430571153883522929237816609100135100363608146864307580140623729054213581117247405101971051856681868517612969423988067724309581664279001914364737328470326725290827712658463213799879300775173890214703165356840859134534416679791277773963172247735476633100533439971957781725294449007437444626970187096716752513551948466975908092655780669744572529800852992635041105018466212730073415383565263525961059779866993875608727739712683983253354501098381667683652712092872582967115699516287772656874912845168776590045603224446531445767701185156692758354454203702705970086817997928789395354213653712683779693516139645102842259953703145193648166992220490828164214141004611568157973127205044372660304580898281701615782587508156949823180763268585659342173723877448602789991675483662043714176523496235317736333754182393600895899439581914848657593971168275427259400846146049828929272118300925743579023802701654182240628747407805385447408487485931710657280492384541816233943836788445779190499367207302395471414616573622331680698181819257020678847563115299031627337093987763777004482328915175912096236811953388358232844584999435935659863552957692686293641386187492901694041137354999651631414404658202543715282424959282713043771553567101103363988263051886381207984507627278097039625483417835114151578619221925362064852501402319353859646104863501344777273639696459505040267351820179346787510198957419794770536769883940644293263401064041994715878833241488940030909231267723973088037305630940859093968341906635933004769092826704288393963524235205309287299307817760086027857111443162562960198347116866536108828910971990744036544058503090675105784127698564463255258721648095565562234731040849208511326457600294100396665796910096326810606194741172761975386840228166469240617190733993838862380707273382976940334787768566675486955273650818096590054561893481664221135070297329727207675400001183314557710265128690201685811644863627032437300691434385866239723810526633638328504107688918020258520387863869936362025704316813175776905249373071469318203343052386883259767065986586604976010311245223097275947462378387495062321995806378894551455799071959495555473789805418021227590432338229701276207272272798080017770025268264338110451370560345021575799402323511058233696146345702345493132083905243190411749649475660147087511167740780749753258002442705235699037987885879955192932357234709085245939676373219630697662285569306519060224399436053973383299994926694305263203369571399213799770299553028851487653670987889569552453824500953664813228372731744878398107908096268574377123528561230075547135298028549465051154720471692339356775088958926053402705521280623863180779442175258916074746959159829503722249162671528077909438271803336764931837869915365591825328658837871023983518431533270601585262768127865469068066800695204080985098353854627757181734221778331075174117147519315788095040376252268490134732491537655941223096155564117868495285750997016711095126173389819999107613249171473808366694078492558573146674873839539680560191894078135314351262795741349670639980424317934008919465109544007483001138556671995269767635559822110550527420505860728640870840100526554396124240339329764643693955325491148454577767238876730806225278162263601688428410282420641217814005121562196572423116406441586164526027629382377191909483589073309754558750034938117963891900857969607219128509711311070752055609843116327383072147667667748165728324497567164899462321599678027391559793604440740384275656075043118585617411699668494212740946419711427334152900470777449848834112292085067154877133149156948301379749722784223789012265520426091636548070827852870878236047371764726481760930788247470553587573679045536517937717603783828377099704273681318669244028861198327526376221523064539438821136531206866342972987087485079416980772694705976338617755036060649190430794126473902723694123586015770055661220341479023304829475329466140679793360758766806925328144980654104092744064096642074135009719408199232379254915658423774484195626515928420392615126113908210776347397064573568862814399419320283523572666092727909291049109413710716673304190711718484355968906489010658971861704116450518861378415268604762186580917560299590176183878872987711114276779477235849721508313017562991005110267106908893897550198309503612058479906090373432365929887823791446473893860391095997464134472672100268893391324765335324240139663339096350126743020480062390145301695142848994693306505734470044763760038311369162559457323552001467599681763834636491847232013089447096417564621606601491446892778590852558438269893837713453830358385256885208681076822552736691528941970683521975552690791616442863549153325608446954692878078735291764689257647121912846275960786463925007783694729097097750569562258578573320740130925733931701935216279829345574456595605845979944327563192285400947286583091191348444455586162922960184059019546626018207343966935564694773430597168264219282954251550890270566752795696099860658482483946455949122844841625473312103736801304682613104312216987990054984028954271923857587559006056223851484482245533534867418491096407816693222090906338339950446146009855131065956633832222658778664823570829356666121568093991114121220556661588607270808621988191147121688500192111708389854664311036683453703934597794352911606517451446918563632424322647922154046436569897889671924057738117633218475091932499109907830716599777240912528705398894050168774909306306766904373496295969075644462244682300390973161455895637785188902569952123588094473028386986464745444191729789236213288100224522295952824425062124256621678457239965621641524319757468629897451576996376478106172753186118342549990233607328863931569646019092270995570715584085174667731070635053097984361415543180280428075596568252258690161062881735594679049247325943536394896292112427860820791356728513480833707373164370635024264651629201824609422913348378187833337714621687282939104687303406735491535941136075636239772574036631219932245871011923717861135772356609908652353222029957095023907407339072816852622902359562518099785859895636244019198757391929639784009078390309751856694555726873448526451284344141889308346282436625114518520939111276456561807531776641139633762558566594231182693887915696556890616807983754499510546172026784869884593832162742394067396330689044966635989582929302417085190178198806467950526904174194067595026375747163443014015540399929215700983941226489468988508230824249407199041060041057833533703326713085166676569787536479571321078307171859746743152240223209011757186941918583937897069717903572179484326672023723207352289752128430430323765873963426616917869428742397130342914672671283972331149678519005209320212918302464399694379681227345305921351849248308154577365713010736475229258817618163583969951600393342882757561572721729449318839643942786021588996282023667765231126126303546977667645643941372334385404051456976043660195483653596283495565164738383354346286146640279965086676728598711333673698538083566047228701295206621723444986454413996592872280958471886461965452671167053041146706201264317416358833638122732244246119322977839337322996916855967415680959371457218928238935927630526656788635541266673891004732881327096232738965086321327672169109154883279792289156494226291939460506948238476599738401959416478710664762741815306103128687870199761100259897894231424420007594692380162203936517814571456628366494024313987417427015487861176706548907510760501291172414880774077286610185175171694321159858187232806371128121467814138009027361887822749502188448549666984645741046700941466604532233030325568970586953995409433497315484540715354140720842610307801053031978242773023875683923255248153022787685901487279129879358546631165318542173863018005864151650158018593404620051043508907752180794967254720165715012476720794004012924942333836457440402688279664191586034002600004967284386998938663212070023727307459861785457383687422359812542217628047127480588801706636219799986533422878354273406823506042034014100106073450960956764528303732116930344614027079783339405997938782087944712138993534266208119198157648454027138764335303525027787827623598189619724381214339279844658498345168225813129393023606943935892850463465023502479829844061380616360003554026478899978823374070704896356170208288957464785199282601507320573599285140950153181886679195520742230404250546991469013965923859696951707783700801761249882825348686552551070001231976313441431775927630007856359273121601459017412830574600585943671115525303856447288543251103580827735343657540730163314008566805219712606516092319054537558613475208356397848217298696508617839514721029421204314637260682212487491379169618246484304203389428072011585321795174199831556999775481613919666810178091395194455162065585964581702305981543097664068762865405480960745993154663210553814382879863276674545745449818668893879905594888304643273675909177220903819050672495916738848457574126865125963046969235601953677704240744095261244787737412981200339916702013963292676375303194975007320548925297363599963050461142335594461715186703609368978479942182979637649582965220748897052933039805073586633585670789735899974164899722761062504706888985425976172082144241235932938724865408615777925070600676752581340359213234504372074418067243851657339741384440320275607227554153960683839731281929432707359489113159350068417420334890591981423026579839328229688345066928734856862240425945301236854292953235534252596874415953345976782270532461224925916407069975534681337414968924397212902189961901759205046535507273467421581203263434669639290284905705071971181521531764612478936420187089995085122358327438103072870898733209888182169390243716091517204029512062586623319498383720632720531506659049241078226750131758514508768705363349031246575149507105654467402022890444143719710401650184337007107212284068831978237607774852856677026896277639886045699273797979174754256251830124931184638762071915741600550117931618145377258039792124060364716290279682660444266822391311591451975599820455309603917394957020890938761212283246530577171161400588725251167720930990452420793607581685693079820966199049076643561997524577315639781743642163631019352217069893243495405828165130675164354430498871224568099836227229152871274793216626667699074433323203835429884785953420360291720821291823558128046114247750244754591849265781746390623667611889388849819775362989724428845582300560110695698495401960862738786575493108013882776131377428974618335490829295133883301945534051972654343558014018861733479876058765090289239504247244863027554936450644433229110947995550826563169128476919792675788834436747287282639188796815161756399335529823739175382414970985445027655033782418283635732129896502445791029805355353331931767475628951481475294035994878737675700396489024886258813582092132920612390565846419428828836688439520362875526568921955455558553936547593390145940945466978588256843586980108006944349649379392319045306865057414505996230949787354409135590179093941624325080530532081335503466657986590479273240090407575300310455507308725119110682926897383371743734858515142792571731581709569246727904909793385829218423907486625507708097087812011330524464981115964212580650876624654646138764218817831637950165066658737166908785330096982583012809362889805816777794903603721259143499226618437723254195989174078650772936332092023755175953931140136466932705371908369287299154059083880982263901931945600338274187082024497307900566576478927247721909229039498323401225859804220363732137089100503989851025155204032561894251245142573423305628492594493645640232082760782274460050380434013792617553075292651704318948637228506911233177624899587553941770360261543750681923347015236657756997150582373206197109054074043354382300342142158602040303322104878951459797461885567881091919544084751654707132291095689758692442556860650689520013383765452573510554743201891709307529871431901738953006998976671494822354687873426430490575922184899602799074959463604011007486540714620124807252623312432708878613187734968664342736382078743427035331125836309911153285113005169370548946253746354575276617064304972622691744502432230566191957909359213952506803953604122121901118374036961050717172341245375360975950677353659848713236956233403498977452482926728854753991391889877356653827872167232055735087364804910151081033239621219584955022108352842576488480467833873179526440535338906981292193750443626671547886560690959879114892276675673527684233556947546669387059834346639603357983790707816420218184300776217061113977629361057494395843553873765454041649268994983912675422103659083170141294631910361697111446886039230219276098136057665720715604116790291913110473087835153017997881738340213320770999002608044649622894151490296937573475262211825008525747327797264055706932659283223550534053752407496541521777414594934130931565354259512818415003630473607827617864363180521801890851315118185385838127680265538520000846713181927816386903707303152901184257891546475409069908865942982797110818921268881471402609120315347905999227644504598750034185085261239268442167759596722291347667400795348043764736226917719453438121189242917164672984981181186072645313253003505519405564536023614838279147496765423693683188798682387239487342888385234725767098778783588097174664569472786519779365048520993206487222306708583950623020872901797646284552192637373124996930017797886778953622897572026577792967038247197110033104730156683093056333939648517753875526657546046432567608261596926340113817402338896170711705709628946603620154997751307572396974149767419768074357054970824313718480167637561188488476653270555757171304956020705918840208811898620149824712409832400800708752236559859810148740672947497842520962114807525085823790816874376584156659658236388378260651575732483273191387899066250740843206821164787171691767768259589481755094956879994013327801131812629713445906163146233719402317633790744572434120302891292874518567143868336553354479114079091986176117177772451731572148816595514394574354354754306023889129178613630219864486947379438976636594759315126672010379305761618919251672730792654288984141415681500057761662241836686306519381221991576655474756021755857698313664114461110082549700337805581884080292685751815627590120743439718609379722052823483046089044042134021259143372360502444987344757945489074931074626350852134505945974273227849259339752833730697999432101847524644916627091030518992008892520688851241887859920025540674721905425472052714857371102392227926056833004996182835479710153266567435185522817508519160612697029552424725957702677215592954441721713262463613523055387687115056379730194697885008358294435832889459354229001891445066999206810426512671085650977445985448573766128435880632092137355412369707749406375556158049451525329152434883018963931712977803768305903591343664492826747395927250158895219359066487926006279841963146456467388987963326357723556992458480235605992142905296119985424646851298476993891109688296473569071614606479764295638627705042618846824099231141846094169553232596781770147035730307445883301733678887894666520329674374354762255849644634702151032064584211870984786989656236659918918739004924224735738789217969754188224094874605675532586932962472613208519080944964386890314068562989423576509121432238054535718697551966617580069192807433166322909888132596189737795884332778438145829648052332948385454882856586445481884591519750501860000905601661446321006429687910029274196035517892826880050627515340284534078056373960732876560127850579337213818488444251620724397586789396744099669394087374545295390467168773668564019497270174436441569814425550591501243795798376184615595955643231766014125889616956390015952923831629803614622297613105109963289837007906270472528114100923736846213828515555050023996267816719437764186857599780862819760879181784632102939171161521834443596748941768966017280147133477561109734180797551415146957316822989763313247711412135971001586043912778827717912361253284931560125641638953695139674211530339332018898944836472223110579857961735122976052875829165193437028027272814733806930515106161411952735391499717421094085244896667986730163518146116639326183621745794783183664761093502303721041609644559735916629249145311695608488877421552643464113656303545229485919854385220774577565525366205334354545089979244706718814492015835214078000506155272308393894933998708200821852486233723612713696077074403548561493620411110583647153997794912662793163635298357562910637941693952203517987389183320794730983661823262849007182580186365824365023303518999760435141956647667039558655161348479607327656737289224113173473141775016899831885091313145809579929482003385108297533957029466357097873893732410145797335111329846587235929810797504318613010844014500509969880973455279234170767864441241272617321855423648817390562216550269919640651696189974550665429342104772835853222405664269009308178365801961659914949932229319059557325445109397869226507666806112339201398302999179253830508674403391429004404454416769411647953419636944371740847938424745242717233478965973281811160446524475782935689103291275155067876454482436400554972127088173515571047725670885060360587052021104157925329661384301192616222294433804042640005975801398037711314955120260465808846702092563816090775345438043790687665019057274230238159869946415911091458725099376815990835188891379044118528702791406897912007258222129546306054036560008800397188320166360384838802792613921886374183709829010508049983340873040928792842272049684924597980015350828854495316247971082250461374210336210275530862991592062998611563887294221792285382861638737947329250737479305039902686854870719090461445475734228644826368428723990412797240794164484769072917379505058686828825839843570927933027054475922561199036031825466640314462942462996876076719130046057832696858509184447733101827669484461091549898363621521041294160940818324945937900476207442075225228709290117161207418332966032844511956546348105857971801746254591168686461498664691413832741298739487900384860062497821393182055850631289247670601782191819491272136816870064335117841833831093658964382258107412504555107124273818203019128378868803848603831874677318281558178544283265913420622561925584589042057027413389449871070985211356078524680335652853692610852721668161305586604056761111959305343347016086840418370541369004789329067193203661153859572799225331035663890704822691440279927075132543958891319218737417945660559036119870836493914326684841744270037318409237974674858717240463639734532345276691773921723454571233638811519133716778703370811264184096882300775748275677528172632163986549536821417901983662747135304578836509187847356559307622751913745286559383194870241247594206575139370511461846416100894284880691860075933473572651216618721815275192266925807173860283064851432750644434700208156216381910734176240856831975403008858549714560971898490307205931654274654586521356677667861132940059094045380608644082015460294129570053175530542164046066815412291772821116874315189325770250331882397949608980776777187729004240474640031725926684907171030906878305604089722188081192355494055673997521866016684081272231847751696596439918912122618705659512808422208599888117534607440793721682613099157410714471408536717139293909546788215716335510858716197781642063156204306298572385156507389184338110103491773231878451158510475481960099376250690424557852609891012491504234101139202503177886499102889751002217913775799682404247317498056298655772224667721482012665959251615314376119746309117321773716252659774589055244971649864365305506548869373165792717515426982429493575617530259940928805391846213723733510203460783451142659783061981876802771046740911654553651785971874874685792019188212807056342636565193670816994085635149305862057830719625622045178561753269826107645059580917452089319276032674686335953082254874347759358468692581852700333605122988910128152748288594918040145865617130478489085200412585063355015045510330875260327691154202983625046242132769371390259490790881554986978085424759414945359370754025703629581834465299040511627866154271000592383562607349184303757849956075347258477261604483265250796833450223467341498857256547454055770535662063447590241866203362357200084634732464582042953711066253327636074910008530725107216824323030189106200539022383963335161426458761804702127854509433168303096302795650141801964796138628995536325775386430369604311600441145198055152211801972327425366498112401770166114751443089965380488589253385730457194014605578627022610842123192576514694486587938723365596618144352825995561416983087995009806996800427394384579511640032072505191245067975367928842990067916321792639400734175282086049564760676523671340820320276657311780153404851723239009646753119419656675021845288381418792451374745597729163163310073119565514609754028590199169472405326465733704928130207911140497910875069407129468409176272391658043689812126040262456226025033903063900588572915204758294246381629235625469792481802585711712497673773107149511534910930370952448466124331458325378623715354909048854407410335508306344146632287942212575228302719451520609691878577457897052329863538268158776848123117841272480084034692195233526559011039660336847682310843286252592751960000503238026084096743143138289325753556405061221202747620334092938882137744524954340732229787826541316361540644938806685719337413805245424420555061690094748550747467493692743152012679417595684932334521922394808934564723199241470086948051098939286977615592205997155254223960373168892403852261489761504338350285467009114596507123092054911834265000129428650183978212400835228529540474236019652912005838584886898921770470342490011508070161810094988459956823301885105414698925709688651528019859185845497500012087505737017055580060667761340166866292914450414339812423756704918002884667665956830166542896435574477421009372310573124233659977291834474444014033328131956602921162733210528416660095974697852265765552001656885082757286434409459209443529685561919163478153017641619199632922935725817872846062560776954891255694750165330680313953251715442741749989023414245661303355780069208878304975241618106771275161973567226628891433551893264747865388560423401592938770834203109755881471102925871731056260014755349002272277373169875618796716166158191007399975806143785018560409290924134121915651340228247887689547914609541941463911615859815549030351080092909397500656708921737558032281529259675704765009722006420402376002723643586127921506187694216319048192899612075871380156728973443514810012523934377463310728917271646259353459202459202327360473780649883716964293117615611864597585938456188123005926827005289510181061469087783620157555065468899136514915815230428259429173276533879482687175793673825015949716505724084994865633164343017486895432963681108710039492017818100838071878993380630371281933232768141168570697320195649773247727235564953048937559971474752990863366728393999338871931913953754368342305935625307465204106289085296322617498559669266724500938191717967511242600034234373702405430011266404272093534804738240890297510769270865885495888031896333697353601158907030594032486480865950070798102976507572221553660801410572322615574710549154392691657049634265591377829607583485563121865322694880355529518323489851382748079313101251873269011832466237046373530180808006455847124562943132524235434323950438489150451931177634975710512290317468117362107024125872476328728280662441499844598400346559104012488870317622215004720113912011317828294081143218197278824802427258258804955756087100959921336512143023669401274952284074981352043906035960067533622249566932253309291901937802793236350740253518570492691193492020696839604602056649260302709967049873759857880753742697502747037476742018356093324150306758192978793872205095254374891725314661808042227561735069886700490720767492899967595261395776521949341201257624307469180338348237033683705241506976996667431334655140058940290856187170499299746356218295620042782921746390165694460646168412726919857930551315837369519679579877571069489730578332510968240723898594689327682924542699987402180931174551879807721670103307416259363965493717417442336372997717600671552311518966808047015770222981977494209821274115376927249625404471438709918028860376946459628055136979959985694920911179337463946948520692420953794238026870495344006462150246474597344795868000546875059375935519080078805766106861698018578203648214910955365824739338763418551267575584002033856049763400478920019482521611858217436122203831601225426675014024133255313297907900280329540130839706383576334119300899830303107558935067848869503811090909921016160794728029498209672695343223765533568012639010421089482246130967100256921293176246000489960652982189458826189158971293194103614263303065961037682761345226009426802542562169474601389478860010528461203737698220037268881850931386648656898989581547772274813415551427326665746545962467263492289207387433316708116879170802001314758931147576298885831227698198919200038059635704343919816258112649660837295818411607899993244373881685791432461789473231711916872149916720437530259791186326630772369790915175278474418099492949170826467677013260846327642110880775306031277106346132613231365781241002032502273270769949129027908636379929669123270704631454324297734357552927731328852203911093487994167223606024880686296469380373892646284914880107813914835335196956757184919826841586077561044122155789932853415358019376433935121721120042449628539214241689033687087840062022110162736769325482162391277835666800382547762276309949647508782666662552935892476593150198866175178904596552533366835033875616434246904918884027960468947755906064903017401083238990459583347019726178164983491818088978268075380614705481404714352922374907285196607220609779286651149911392496696245933433727413247150602878734027206139945962355533525084347204324763253378780279702067185885844977803521354981294670569377543282244087452049071927277498355605381955686845289533736062794350099538084060391298740798505269766171125628617018044380853907187485962722321555883761852225488916542505046006747899911608163154079574009346173666805242574077543714411119739507045509348871701611636345678292150695310590535447143453961033257471914277806199000394043488196357420245431065340757861627296486033231074939627501452466342009587225560587280630656135766736321927173532601211293084678123240642624070739468844731003794233089735011465097152265350791165043536500586613865973548013078487378829023099760564929262979536181110952846005234861704561093906782969361784397461760753615918365422102130353897622696344866664389793055465965321386661839120043461924300645192381759197862517579115299670840893224337564679158202529867449624374796323181741502280254810167278155999866548596467226999981059616534933191010484820287892667584993467515138037483452547308670141545989238786801719687142067493614556456300861269911077112013723525175299648888256655102804636752633540167121879228348456706089331222491606952701063223936539270577628794200972965625813161238835576761551129763925769168961773398037754495055896664339405781663516295708233987095835894369142831155586117264468694587361217869780335715723178085764525343329940768470140503111505430812470682041501704504094095587207644679761776788856768001641346953464853739643262054144977526341668084431723161051557914206067557148029780047330649850053379296085525994971835034493535956115417905299203064079549798063413676708915238277839509513989623007042763821230635115794882892110045087635341755457456769159781586002008975765494087606290214346783803039154880803741501539295807142013403924226887709798710042227851642248536809250123272123913042740515618525242052735639474921119374171852948774587851545629299707293936919876238371421131721984221049051521425854137162573713815096691357099526710394605395021880894130198035169703635794429400593187580849343608607945405168367399690985876414653440623603743535550554723601619269741074375641139111652852521427711975366552134037130243463521635324739452773380052778044008734466056981656844936536477461443305653204373761183195720456283072107175290816455389311544105291389787194730282364496448091019925291639910060910169954206824817077002382431145346138598536625046331661795393160701241545000490650268536518939828322037880998900679518074862687601103803701451775890444973241390884314409078809193940940817269115639449251800008163854661015891669688501405657183662873123454396419990677341441542676310352528886423725551406418715696054591854105014851129109036896407697362188642651185072752588495835075614443966365294805049184627528738206955335146020088533708609248378822783676586352675940234418706399999133160549301945524138632228710726525410753759116587001214869899049987518567276697784177129574793265851296391766158726822197444608766144459933365429036998125538810017890804385033291938482087908236666234365781130763558245023949055379591867447384481631092243179542325919846068556893903792364213384503924376600789448748268815307590599292797990767366476208689092021067834782903138248582937820603110160175877791570963725419897833612437709127672522233036929952430570449948090346425157963832611437026149631047031224794958573062806351910928031103544217824893234211051105121256062867338628124244673098056498215513908755194570026596664543813966961600578315205441466291576021542791527330736861155541587803622264714611418921473276749940666584717294259961030758722197768267645573389198663871766762182105496710071046415331770141309000112414190830286475953992462295346631912449492206038185022722250922345293730611863323466715540956235811702554749092498259128399531324686870764247086830440398376042643535347449161192882728725556674049560640852854623876910029367751922149075341378149043820898731074760818914915880588193069826223962644058295981304975849617701691122634895870536418576161270395977488906585938565926260516880408489966590686744251273940355502646065449823818517977790407396387636605547270208208130984105125859410534378949450921135641297407551487693450847457600679635971639273257804604900075823416250453007173965005074192617829907337010793929499564857341140863844511644522734578743328960990310180892506027880405017551665448131333847757235587109044421709998228206774674522111294328807109662432184183009296727215217231345546349775378965273016774720336066980811177149295684263062495381808854038550828632120502094906829876584571835165168126499301039979515123418025124486955895564894301213270868804852355246436450963758716844019858555688288743373809275820813849335291874178673985640985252756619515234993591777948778167097197626020985001384185570188812307409002542150266125382065440542146790237165985665613651720198631781670385699304229066323950877790896393743599048687213268559836572690398259704897105804482016170038170019166668843720884778054805192264377627309146016203742535300210930301721483863957018697088023148665346376124068968242384759209511869770870231720056381697619418696687683717019157982824196226036094299380773294289177444482306649051839481524648695650729309431177679377825526304824877356954047687905413266252929814767823032210104032327283330114169331057103732597525230938295750168924892913493171361112642398483391384967906213931262647606375484519362659488975977380997006355614167873939450455582734794628956466058371607158180333547624390005308794955024800625295219007126247346151625139157734676657272529945194841013670593068609863056609645309946903019711474609907436063740511931676233220098184666754932992388831377269231234590235687447506397651867032424543820560129724131477006000321934751462448137401013132748293099272923560741760545776061293634076376145062957835655773323462065685082089707640758321976861556760793730902383932842015440925500553533927880359291002003401493889892829892568836173640878842576236869688029728263618704830468312821277232269282077890443407194585463229184156770805796665958044493986304597652391087089201823275210106279814520808690505020715221019106118141000065269331401785016378085473038162894464135114128419360888470100574495887978169674382261355986956962930726724706089657695550976060079841698193094772629423252560102631018040115356147700946527131907080709662199104419872466637764556633718413185892919594800270659320201674974716638639346682003278334946247855883478407088713897328040139723967143302371063284584110959324685313098777858800803354413316983371844768146482515031620195547787270249754784516173419840717776330924124803669124569552811863061269915704199827108597415008743909897547058312320850684059082049000494093527176360196436435212697560824840708062203613498505605288241484727664560743069925968354007203952046713060274964456055310216518549182353020151611236050722698090042020709292961256132051842386703097195387694593434713721836250894707098061027057675573562272770528108976380872920911714223755552888627830744645617210284419306555810032662081498583928499097318409187004508520589353114787334392219727564615293321749478088355200379953809827135866519196387065501096877140391363935918292304404078227694896179000008208762258035098501204265153185980170710979688900540218244196981452316931904486240655034678628084508345726029734843655604850723707217615798082514930374100620594175516542983230058037660667863928801343169255251323329522121283292461145034080319660513346711728364397923289251669141785828807880321320092420846833423778849971882261612488106788474964031123013401564713394863629308676942605903472660271927812624468171265687804888247860109301256953785045753941202773445399918593175105048198627911932434903754956955838564968499275647541211612721639623244632856428974470880905879914418884813207578845867367432507169381391970994963477261319274801456875181336483901255251593388915182550875086109664589546420583954472657831235285917542440134433208472387084458206488958452000007617531159645740186797123043798847023018420206021554164424009997055382018429821521855266431307772131796228975966294555231684693056233396272528110699828640009328053335659903687617375146206702792688285034705933851615742909970529732577965625899572987891400795516702231189087264769576937974545531429366190011403288884526910384450737355232566781432865224384245740744641522723171742003227311905151043273283264089806290617421685688593431516511417844375908891483411568967902165755626610687342498044103340207551262134626658065333084845889253574078720654126408876977949006629186846821518207409425723919085174818793148901584442651654354083459629379589786470548275058639554025238059744801324581337414005073157759047310869065529907352159140985454790501525255748103174845523591705171771796205217730053591211622666881156664996697723600660641281004672519237944038282192682897542091773652752041657309706821601497895928771774581404759186326149864649721046243048559960433419609100062412909651513488352603441842514788341926907630062792091831188757324988355583279818226970562751972876659754940581104905926482996677981227981634991041489985960649515340820808457824420174113631171039458843616594667580975828669230356291777041811110632340947657989463567519047289891310846658313415271061698665743255818950282799617948923449547064404037133174380858469655073052979122563235191538376337477159785916553937145067169060257621732779608105376701952212221625152463135404705456061365546190865122364196306213714310147507827592555979202551985010434866625398088558627253088024562750038874194234504563530983535243418231001665838922236895463556890349756357495417678616426886545699889202794084569869931144382848386907370741704511168373104260908872958042866447693807625972951882243087304273164587731858071479527516722770147707679943665702192834828735238880499276241697719663601634183739612757686479248942123653536496433383059837838234880752399932336123910952845431249448422924245324736256037464550987615952073307397040099044192728333228735014127665448508237656423061997337955404174976520767447577200074311121464729295076195885083288494491825509902553806383757097623791509999529795743866594526561942115106584004265932962200523782300411688941567096695526607660812162663698622746413160988721109423865658149606417284877315985298390515093390258170925393972717880430037875760830796573209809535335076237197054632970840588009644686457327417427385171651462548240921696804184735073367721193841195863189841269367018398745214783649502968974782586592488545682931558002504631763743128344077403658368809362479842201644799023254213267530428710522307386355981281548585092599125574025625706988440195464840877078437446516524860993938297938684874957912626815048133789148940242227854483350541935242434738668932610759237368180757884850496008094025758056004821445892833436079882337514390111374563408730183959311396756403593964334467982332003252232252244154748259176066054687798468014288243432290279513773433906733375146202938664882028562966152913342103162903560333055113996858742682186173663778147783284730704156196114285990725004037952160152502008097075743301854469315567166637183436724718921149437352090846252854262806241164870233637412155571587464847056456882662453831116886317344210206435716240220444230138942734687887447836875587254263866257170610989418448058052663902989357321283375015190820687475701345367171478878517314325801753885118088113426817769076497641693863005825810234430225248889495175262504852331213495131719047904753132663741100801893013271633730504986680350017220721398582099550296613206551017707878561582233159677990304864606429802479975538195917456093450092227170200724371122507913061044143666651728622450701824493584542054218763243149222754961297329741580863818949514747223454145076660879538969191983373999252128808359580590039274428797232146964740834660302927620274021842051746114584842617943036537022489657207312473858683874778121052598114569337269929348272657145764828072264051202904983192213358782165690527351741778599558029689997129582798192925511586061537973790251268706843178128168599596661558580372768067480077127476959469731876794367093930013380668752982905030863144201614287730733833680922631140668285952221374956016075362423731930187873561775163859508882499168639974803855431041725060991535836371730382990207931716792099292559612012740045174962234030615074457224083990738246270467859030430862217460711105152795569044806265845809540556567961073462822650086408669495387953619368444479086342692785601561937717775626566592219573194292084021134828818643916562584471705039578700890723486079462470377535492575407974158751377283414460752016074439125025621123512113607856438826850923929615497029780948783266818714320027061700303317826149048929761400903381948277347526211577246486352956479911397923077390255001398531389976113749681495810378325678424116515660168924797139267926378152873645257599922147910996246848335238012686041875475326121113638352656644156022974884806611387931034079617950100240059285666560669540277046820593277630879630201679081978464451502726103766857699798511896645561503480318147566935490825648949929284231530770890836130898048205838181894677047877281618416448995093208806933606679588685379248843699892556940244651554636448989519966088502145348412499824160689739937539142449522216580116668265133957754706561061133645978556468966247064093905225943132222556577458838050384770792790045302424521573167725202804900181541001919721295408664880877806958738575797090983624916212209485006351518270141520313405348028234631316440715237694031123712177478920016554916543183901756626991619592495531227434107292170830264392764381238507959595682684924350608056159156388504672217378440754071835054256116071105530331910623691798888024258126407382577042828345312320210748267823032302756838367174803186869295787896092755296542959104192617808595541248718686578339909976013418438153786260892388842961045841478729114679816940152101570417569078057070301664131500785846071219887125907061022833278798706027984049609280723169107786426411708470181696750044469623665313220376590684042634536119774985019468799714637608037539334689144202933367187709357997989737796124463905352880038403705380962791463105564764772439426119717607467385334743952304994227071427236351058003845744333955596319285379011299711636420086079980169934263729151798634001706642327472755431867087327060338059991129708702430592653224241460795689044001841128675433225320499884739739824358941728235104808506021423161001343846878093242286081776319514549207835634244190254459017324225005506270484867606354731675897106961171322019051089417557761355457136405753247833550860271400534967473382595721848697310435232781634986065334611640309663097684395781097535874815055940718959100651462824835160498034660557826097500486219966984798914472907629466123821458777296020078888604552585990727823910710589473526728196427137516450324210671097562505043582761756221274944543091451468539239986653314969124052866504339388200598893401592862597877704129058794657021979449697659087150974216878593330605656465745588217335458372740679119123421176714338644993528370822655369196792123580714761857176888814281289170541398144864551223336976109425896061893469958655024476770074418865538102296555554624308669955590793965348552879819065803877736995743858726060886268260490881590028581514767236756629356908852569347556341165768015790699046479894917974605240133413513007396975728872413706911933834790230116824977626258230470213795954493164039289942742318504552219671623748715850038080660099237649083671595218312031281600784933272141164943229784115467987350215284924901683881098535669107867011096149016849090617508906780198600868798729633104305156203593825756709699126150714664812214626422431674255219966716174921082478618651054323331736610749083793940138762094275699597784830803160150795903464424410315875829389697761240725120922056260097793714844788404046944149394885314656102405733263597205276150302065446973812746432378588271892468705774942761146285665255184432740443622666382800831349295189462779302166337647066150952207426191694833122228816194467126641022750110434065090336631152919414638349766999820339679077519318078853482049119637109854163164753870494126164780530575459495081872133005974190913255611030567582759289302553989210591812791264336638671492050531340519333569953075290805194024377560081488336157805634606492389160182985010395887985642017678941629630197869526674798159346173930228253059514565386903941404613474070293914863492778728691285459514309543473866431975077803335928849936048184294128936376103426645329950648995580551325890867894072435925558624346084504256142928085822086223263812367531648144228219903064284141671549249891695689547314909567726805858126597575095643059814245633352609138597264543437420390014883806870253979183692494211589196779509795067653932895319672975141844974438907876916029794871742310217961467929565531057794665653247106493545491991770695951463639975190764971588620957479859233248717520472537033566169095080833319628659136963513477181377481537554400434279098994649163809775977264840556062899797003811398408695088841378091713843912382062657455918019523488404797962334870872461889590150139483560527997210458432117502699837357388997740335547740282201369077308913916710451310364404799054638200318218153240155052717978596140828925234087580466802632422903523122032485550778375821439238607027791914179393665156888773983210898873476766843127048104332163280142518400452198932143666394022316416238625615965522432785186094044707449062948693566510101231669069389299934790273533244319956894046450807068790667659796971522574669035917659828899375325362686943390205500884274713386951759239487351628261733328913072179511208352965536563920567527629037712262503658945386185416755762486206235254726145787299555978818672300834292546743943898698436901770847818513180437049019116352889022760318910406473163525096790791055720127476796068223691116508854742239623664130407675043238004925245663167760120835957608297319254145282081100245757879513670451144753244295401784405043572259114746224424135958047842069091056484502564176670152113013820495429531621176126119682375316290701737352912133969309453100069882658052626274406688997896942677364061948255886369115570823899515646033440971250746441753838599982316382815701264897184096797015765157737769371252202395690463866102043776526249030447167141065973191650203839026200462572048881210770124024583992409861925788053634944077738504193263102384543757469870699436730852911989587299877362139402709340289538207335156904787860335080771920870039806509937404277265196129646705165542844343565090125828246315705292551219331178595694484769619251338673030605556784888437660222221538386339966220458688817705810099587693957338976961606624638988537430059956078796226167843693828213432007163355151273259604268463694345606648585230609522933290827749199851846233302406525488032916634596997516692982521757101705386680316324317415353351793118414910146608589637767407856066428965235172509756994181280837977706286518037756247885367949633668507213374672391608199693544536449966489044216905994377806856478024286120163266377653671977136055164581859214927725822617187142958777330557634276188412115346915240283565291462111647423833609555281688449349752436494291950455237671526488240248244971637966336720996041248759598126822188513006695014312489719511193770833169755874719213938982599895268934998562922562212491311321261383760114754207717975162513406663457699172943280552263250825551716810835994053099275864642682947544400010314621566047110448231937373664425657177431469467963954388531403696126584411642165214888689846862891621313452927912873643370026797311285934053612277674287392361926376731789922878922317550246241822625239444490143225981422546120766449699342937186123401529810326896798642765986630520009978938959253836140521801522666841315100455288261555188919053167550492179114936083552812715834507864567845942962065400670998396311139854960248003814090799582875593139452824531926920110090763903786681153962572145221804063769718847765287219331874569215055156715281687940860995388274275587403983117792775890131863954204728654598917263007543547139838229177274028178827476587340700044233872671963934814909660326521841380896253105352006570511334433481162469093002004329229879342099973867666607014787146880133484376963046319124876182270671089316254705679227641367025307179598143128622436095998307589000868950373487349118026567798553674451714932843793895948152307731968487018383572166733230192462636590518971160564444149009917099101852936632239586516118596650972209032124880337423205246149959024041485036778606238567844743691359224579241666180473253035017291153030963226612990220689003863980678459678897309438371945436082849432499898846492089499995973775233374341154042983304636271088966358580459688780961509357257125519882809240213835799150150606472831120115665931879877113761504458931983055730538126482104305912060527075392841780627578613480762955692513272688704739932069853765502073143975880749169113348840281465002062587233978514656288153625450823959475806008548177884148618897006756387588798315887831824129745218439205276187859364322170567455938096947197211281833570400146364721804560516289205833137027679751432643880667241426057994444057984087859632144003401979191843608545287448803147554129934531630245640864952464336548821075338305117122989946228201809750391264631099526092477832180766409016707127941762126261106570364341532237446020934145897239942927713296735625721927866559732008361208125662383426236809183768805001857027101916636784377733559296615277448563096722627880328212752694798835964302506479491443089544485712052535073048132907011484548930559116786939560085020321496408389748152604465416366759501958629443318285962602367793012480635900703959604867742991949443357129564822850480133931847993962112657475277541165351241975786411925134507796219792257223549946011100231252620885876121155212890745622212708654652777400494935400910709834563904734734132180215167192379684972071781953934094321981129813977827554510738381704317055274245461918045726261631727473322430551508996460330033967754614089941107226096558568016949186240362170213202617882818105467779240256305505952245117724017398883159806612993727401078041747172268387756248919318935126945136332731893519486700639929701904209664949168407966379298816383532226363385518342674717458585455750547208979656318397009781904991496089436978196882342580742570342132457337439487156160953111306689040441887639187001016522716532235299926358647704073668795391665474232588107370906020107499376326116748413185130449334930361804745675025609897122908306973330691383952481372361478196270054503422823779708445208551442950055619729902184720104919906617410500985285780143295852566284583859647102009607837443461337446529251924883856016959781676532849855338601506029919808315401690852927502597218854434409461465675279326543364835759056912283327274264941513180736454475603892338621667646975936853135733381322849373490880440954654256432364790464938218255824096284669561572207945518145471487156467032821616776420670298705511079943940259195277068736859985528578483073719754960697146973693100957426635155605046083848223766497538746542689809487043735063469372135038153564854699131394455405229761031721289404093071882942682102383946239870844874419479505386127455638641379015397657574870346804796000880217454516814235710138926903884504841858667583643991146259337708001889714660650304282036918599600638788869612726064238826502794780550858684393751010662443554534415302082333638218597173695702510341500801879903825489377628761502284508015816946148283592885886051676280408490158021172083810096865158504357058741696161300846219512726970519615220754887557743347980262696996766419422825210564363926415815140127501402753537514608214322180297933148354447529407998472225646624561523106851436179981668055669430289410689790207914381904961607286644093695588262026585113150829318446113551542153577576456214130007620552973413450733250765040321183340330155901662343858156640687927675161237669022641514193776339898557738336791355899540730232275699307238187981668525830851893913335414282395170498544017621213505511734442514879036148723201659125797292310982566296694156740696469356236572873458797288553307801813250592364915504459601620244012411128870638876327571162841513134604838439508262348255924740456756936265395247905208749694184525700946545855503001945153753409579347213763425390260506669232104679083000335845530132377592373734023081722159033472789231498772618544320346676982451074351656659557599402375704228863815071593264362103461723557102752797937445776026246945728742396325434279201819538809187068025836574648670200547399644560379998867288521448231538646387932885627095566160200632549394785097921204599925455073322811717147321302213643283047872088341245870417629178584741964492119951405284075596408865041997518824973672033925250231363206866751418378808075024152179280729934141974893507450716465323114628859906568394279516813161044836029516587862529864000478759875456657904831520530935600023787091625345640125182766433465290772223838009178016191945745632491562781239504904483166191798159208850501186882349532276259103096126944235306689525492599529252075739652760779049902873708754289005250218668566490905776506694199582390812650164556369271577010283826053970912962303972831159794185896240905026912455215566659994084556920274232087769990293669799827223485484392920203379759036418869397909891126937424335446277407258668004884469369789640007160204267171331703573131049594876083742073286910695677204932717998195932173390705192654163496436464215360856150276353717780278197724027010976900796835658522764373272187747848167560269928949398836549795282077477150534083672066531324122784896553497079210748533952326860749378635387490435102571737386910972543679453421315521241333287523085063613242582174560584248891222275368696421027684705114502825967267036164294491128711110735339930342346283715067401217038933363382090293200797560760726695325060230505059773274501404309977269738311883141971355322618723545255940315226458734355534524201564649294164523282230483304203957714599981826069838591528094841376753442282397912254124377384892657906246637740417805546512628839847241042457718196528564419691349992304726854637933686827772350280762375805129474999733983603299334924832145665813395590345810837372035193476654518151597836749529114627476417128116570418152435252108442202601876351729963128296906604032390540175241604723871618817628423738834142533247922502724526365156083239257774395717041635936144317531278810403709451242677683545385823533625737799473467627924987061508957028998817781570362367611459615858764460181933918138093515856179611361554440142960379142449459429022137693929111687448299269178804158319832924275647077975340218819856113587265741987884312740498856617762719471769293004367821753641442778422699043509740908484160694427328629796590417492344437192894068786790701810805964852597421550762698821839259508552276118937497718254551202887162950403094066938069178815257916977485254356801714552283514131390501217685284017011602119437855802722181628272982975992248045024073974782487931781382213411453481442622934186428167710494272004141451491636865260932923533745411355672324053842531164850998392783889247870648096545264448780233634785070126102010718300652031916864117809709017249960726385233436725082307741831642753486102593070025013768868673410829876979827537886982347709382235266673750808297991621158968513650015253133537573597234815411274918419769251678732180510022734441494560077827970893140205267871147106034139563264766991530803513241775259065711553918816470809670543751541634554056112943485714588614475884132676966044395644361936702214159845197095239414902752464891615659304294792944670815059270974696084114773701564893901811174763851394184112578952815555883524153701409296732753179090422346712366405631678435391804456886648330048527087497830283843591302842115776592884815443702842723024275170350885486202224317694338506472218534850980101392295167641777638318359780891899954353753524223892604056018925632536725033161767059312085647607021474015449387271302030131989538420509905331349358765757975912592683079667051499802389349392383229750074826177345631100275055793754925227079570265988125318283689011870573585401787581834125990396844667720166544749776333589371509250915563626603067438499238157489653906758916490395402263792453344696654539811206042354815702492156280315805603952687810980171944000257952255968677140713125280037054218520184720763030289391918778768167384325719209660066119796595898493394143680390599792687127006783101515998042362144552933925843049089875166851835433334833106162048549508389056220682836065296840529186646891022557286684048722835704568189983574021954123072759271146255806449846696260744826789134697140655899753873000042427564434841993217399787277588535914260594411940035503616129325586602055414552557561992760216200329944401483470404526023927609624486088389644136675757711950175291040086967765282132749321467244951492484391875670065191953064914485418570159959471379042455547830261224846819967295848239128399585314393955201222570509426346394477440785621079937662618593715108420676847603655646574368684708455917520743970531173696947697361600715021543191633833088668012836154161469349640163493777296501857877614377753933796983944038991470411508667158138109854623655751214381267863984357281391944271693203394873384967152981402703165710715483029239207375216979592558334476558680871446071035973404888193938724836702811852507580418460135910094565160430307280719949655510866340579642065759245572520768565715548321925546787479757876535778377120214055427841103358130805662151099189849055453901501537254512098808032247956291265017325613183207364215034228896854289304744628152267349729257938426329415231353528066575294802293396860674721937674398068074073728265437416194475441259252130467622292267632476310348926348878743195628625926706535272816292221159589383358586142283775179270389744660026878508252556164221161606429736556559087160836532612165818369668632954969443692722753254409733973605998516519155444973065780026233291025719540609176315290784287582869580397411821750726016182825914762206962006219804431065220370747576210762101961437046853117044472136294772737221288335859633957391218520107461551152423721088061426493602834649703957952367674430639581685608904602933006514538244591994513709992357628430947569566491536764985425871105588215067317246273840391849807170638808335481518792575959284364768823689855570763317752606267690847025050893790855001930367635233276697143198756741307421603078618203169555481727870109921850338878053875564406259407779859505024561984048283447593452934238414352074235734420519593421108439294545315363648358530530671456082166609688398970050169871796675482611287095587411065798409853716810765343311550704807513146218963796304988998732075245951730334269963941840440044467364776175859864107636195901478084857392005750206451226760209782826328982478975690879880923541727956927340941205771877457225593136578170856636110100301145504858158698858504436813926278631522249943057635374914839151681509194071523355225524061238809331197631143084068080518543347954867289382613269771619578798945968937345552103362193414601579934682850823124600885797959048635842086081273566428339459705222407556210954181286991432662962084699272514488416735689336980562151544255675967696005941343195715795108813928733811809963965123620797214042663446201989084582842015858898716936210864790857272590169893359665678469202597976039845461563642170089366795725824670147119248242430983023364755307414129323790973407934008939476250033669157504413232626524915742065939410503320540619732570531419919441928634086645168896617453977203739211269492198735796040651826276175139297809640273218686272018145231102906050234524294250545034768265157076743269643345300578400418188745331044606287155814910577923195857561768271588357818595796002143275588552057661248367230999554728977362811084979377168162634753334941398910786367520675002537834009609044564224568862478672695560546422501373018987008561059156545014056378941193112420342443133614340368147162954117679849237483176339028205846215616939224255840237066555713716815408523957070613694883736289633105311197249554013433750782296201323575719910232320614886366950619425451120061599865998837007513773747318791597325768983972669891677486158233633770195811623864526021117101625854635681256327723093874994371227476554334412464351841405332617463540943824739042376273469840400518000763055614738868942961928728704663847438362415648761815104379275683172000465755903791736625754335414278267846426450101410565413976309347481430910980906305849231199437877564901151351243745022088670255910365085034603109914813703721653962523895168580820975875166635155257544617960748907114256126697315907094128952410223988787566056869165395127144778361302771469768952127419536125872929792045337481736609704232781877624561086313831264646000028896393007187941246848368579099213971660063510381401350629921208656340632983052386793166562491303514923006873618628559699534304993145099637534063535887209871797066073431289600372836737433457230883727241527052824585899817000189844292432220121246210223503057227854967862114946156482008366930622543261964826268706547412511934660786848027174448627414431053075462300136252789819574038375224940925895918266391514008932339563527779816951594723835844168905636339216964391347615647517613253769851923965063795207887425318435154506222522095809530129729229020737853960979112124719537484247449928511558652958857614782441978534784872570341739007185592733796000549884598251144351764953842633205008788544062894688708599753722112756363824134391519395902954124918891985149933906450647234093578415809636117556285604639309544726894592723568315335090240268554635844494330416301657183585405630587640157324418191111942952080542650845021136783629291688946419596798274322763099010400155364505007534687536277618274893892389578589476411610910756546095881799803942167128289200819815160345852380424603692345286328989647667510911444784353862269965988998200411747263998421246440803786144441776682868861711305297114972697280423148256813621098190462135464287221823704078827955350594921031566793269181605485352652876085413242727053272883172535369583494642049978689797081861230620095648442564963990601863626334913338726607871838812138484832603397690383708464285633881275053687805007652043594513737224626354822080339352170623307154846393777844009199567764270177173243251501438594762785036087647618017869157852084443761525668451260313336219046433133787999879353858344769135411258594585236573318935056175538343129522796194394558141082676840609925207017264855512824806387549493555743753782016894082032325424699240616028139000889727185014176024505479486165735782008618566351287938821125842863742919681434741181510038544692322363737075718830486242418119496148758462968484291422423910301853372628191262749887549903142273190233969023495563306791791015538363963658162995008273890101806757831915782574578109954622361301033332067360871098961093121727508095536150840013125013154032177412722523661064647521637398864560503555186990665858447902417141223801346898232455485060288811027847500760233983604946429632757332365701346874531650301765485777255194640717397431508869220845863141869824748951116713069251555427271693358346042754321792417053300178887236403473261830567593235663568404004574446337752109885347634380759868216175455882472796314272789387449190190731609551726645664322789194621416983797843462916796578506785258338865747501889394935007431819643096506836099802898212465631881971237828649524500713252095402318869916650280033087225927256670869695640327702308688705683813443644131443924414069041092545245717830061160276028635006896051380127428516968626648228763814764506293462237549675312804977181678058844175022781033751680274465582678848352310088777319291223368578437254581628077502520677894851198175275483557089095162110252810187076041524925478494972812167916189970203138971210574755703737368579950832226666030379476244994332015055539662098485187961536331158752945100796021131121130987288268787077824540242523746201546368871707154769111938351215835568518934514352572817742049157664438500834760795199389497444052105950474528331141693611151128316891863705515978644122561481894730721513125228428445876927907646705723407124301559472841002538203210120344684068520451080904753809489110827503997788953020984053209034458754757760773316013567122129546127523238772761482198302485452821295782737358172599373284733948442498432032339133600110655018900896052288574560689199324092571633697062883755946214376840295401125568652446294817779717878363817828376380303447512701553887183154544657184789890215121902375739106623729721406666597911850240295712522799038407740483807510674815552076739704781015373441235722450251315320758030045622522315479278777286845750297469559835139968106265017251302342676091085820495279986981576824937896655056416446192930223268749683124670350582131569076696596761110288776278202965212649141250348996196648551129227489709156762725413613977411245843380447551576244277928471167081880883948763525923424998141095353528015101611574172815197275744966613589847223020924917418163203302203916184170916855377338415274882145649094382482135838292592764322372741143071989382095676000417691849449306843445599138712788781050262566646976655628377762415017558058593906183095697372520319214948535179956818751632226767613109729763128300710591684826853006481068568524673361744502118949349509763181940705141329130273428891539922977399209272352723405134639903289909737620043875321368340884508185455947878855448111816970108754248633122798774073383546956796565958319465619751986567603789024053949687376098571350973467882430265131452037252273204660015903521146715555332905813772080571371953801244254212897753613318740156216479032792935612147848793957744324299277463028288939895054252834099190942135846722630858676137197470046507729139738608447365468833686071779639420388646502033052998915575355297093277685532651467497803694893330662840935838688075864233596569232483784230192868173596250686783133848149508965805278132097932277175000422489943040745248998805178777744190744177783453726575232817518621266881194540411021179016624788133759195550589013575090615236137887739550706684383851129576381217823076272709427998815955783191994235083613116022417256424200279693868360514235514283312893340746224387803498721093354542472001445936055321697101436686210226800851617957582537150387519554188420871546984253253554525812089333851786949022408064380668839601810745561278979600540367260594265149463228942333837931490686178784843436487071604854356546766778559631775390033133965454911734682288594303515831138667278108412415954900655749294415088460104307277635298649769968707544282338953282608855507250489450385496921454545332188983132569085485711531069447753895108416758258160533133075453855782563345279034469063360586864821524370251337145449693940332196169958939455508685390083230773070043149203063201556712098338540368008509128546160159371608114831796259890475828206889374347901586264170818300794665228954965032817217170668924313131706858044639693158600868733227453691685948396281932532402580673916033198137259166042634774987592694020521073444097789639591401185941072581454064030002965732466450638418255375290665553080701495934017318767355442707710152568197270008991854986701677864028084303259234217221888812830003159979142934511088538282787097453783290808382855697861876117857923097190649984013113145383340583413021739808355245452600662167084280695451391587849292532847703050263313479555430531356236770615523544423950108327540700657681359116591927633587372083571227033181076526646550000057171575708459324720111793629125117337974407987572345055705549287583968973881337431819896041977284689483079101369811303133142316884279568643545718244138797754193085075464774936647487062520290697595096542264482928642653062809470994835150030885201926840300369741471392307799199425192807599605310824523478243513178023064761845090648105199669907189350133629251313881806336083152612317864315482032336139255724870458289723623617457698115237106917885644623965704132467439567813783220582178806002747845915192048018687678649908324044157873085157596208854181271938367437578905398571837582279453359705770448379814303669450094905040117255041342235945461272801548148747462567027851171487568346140292908886141690500831497646860903882252477301622927658818507332592545050781200170216340896091473750399329231631116042182474798773115771191905124264402740810776505552746049026652734199365665629724502474333257565339478257650493361164447011228131339315497481031284696061320954616846218275665118989969427680688369948745620779936425164961178722917456741006642336312550439348207256170286273189742423401825099013863558604131016869669540954103410676500894512887137530781139417786550796239864554891170588940858129802112934279139459691457911313637697030752761495788450726571597079799645270826142663068574601391246973011824167042674814197456970844887286666277983525987765876921352927823473453004890184236080508923658594161703101792329310574542462846149335963374385052381078512255917511514043197556105061010134633185595917483165612819359213000940040691226257940017446391520433977685072921261016423130733842637467952569602402356880030485263031853252395500827943261835983359481917510783831659902779416812914456534633826055213258244664370905664852314278457160007823655968605370939716961644614460509309881658389690191806597208691045680869058499823197600216375017014811338897890529858135827869704229638823687578790956449859405375660192419942202556194592571730518664439823262292153788689257607572711282449493070781616912985654820893532524718761163570852822130032754483866606246550624501465330150908211557726959725367465919563168187581959416590668010683718629099781450003273898026759487130579041310232005385147612836637091543373139137798664558100043752443566936535237266612732810101045314963263715741811071635170517351446926182840830124900066989323056649536973598980188547852076605687685197617291019311140383439094577963321134519397750142124635337205776994566108769615845709717529850068310220491265739688773137470118667928288028877969935371945607191547363527071374064476040800847616000794431554373707213556404931838964631830701336873018794669037086476813362611938678077804329350651081745926526447209699436447738527791784991163166336650474115653080173141652491978264120216336396384265315085161930408523178420861295658871135740455984657162123209193984082407845549080558861683451605120319935849531689612012262266183972679911227915625053042107374231254411020241476021131776205669253817656337682417735498467574480959855355106511131086902538661784391055942065863204079002535413937647967385353653658595729515864697203451795048459311638511655257793644059255795461432764263439906550682827941318441906607097937222588645089681537122915765346894770160348072382151841900543145569201410335493402070450563039469246536975600516869071106058125390792215971565083116174190368405771051633181675699776625548964246041856737993646334611195927277228515032614578173687589165630922667841352826816494694360264543969061807696207883918483934988846140013946403521244062018671998003798769803411790994194035516072441249138809334063442449417239155775266602025333016262104742123373246612762255468020926765324475721313413788575844456105244971587162617926855189346283909693065921250383212577538710781372346254529555170009111582118746028780061745188876541309043004112670335438363702267216502086219188264087271335496475869256090257439341527517842299666127710918941269645975433849196082662035017955243516710754566890774573117913925330647804251067180431113137462578729627490492732060965389427687059015054899178457075397005201381924735392250172361513448296893160681031338674180260720745519455261235212908284431079480251688203040849042509451752273925314748540764253551245811151690836633238893604839156887246895126364294689314612694840614402171441646668579472308119273552955649781950123795275227620621810382550428074893348511796124220670536031990619112748816228186842757615600087303840206968635071211423649709582735641205553388101054542899049912742712696112672040920521710720066327489740943826467778483058934493383553344733672404701987278816651673165888753548889486804207040435721541125660073414419506265442828659393850971888785892741173405519961294252650124855950615615052919443115882949535469038233513053575964891997122479455178136038379959177569244963253918201998297712636690067990893167511137503271764566853731098699790219310628131770438524699746729337903551601911290609342943365658476812786761255977219515860131161180047958504336464699841903987931064699127597005108857171833623442586037230796026664604589451246010331048555901633924844211525469862692465644517184724995682576844603791096379403637390210957314354882974823613926823592424603938536596849663986867411519331053100816926989216817124403876413442056038623032089148837462171531216490942940302856050453543268543050328234784041708812820647250800336972441492574626614032306369297522890563931558018264185798610719191142305146938274775995317442760526787963071649788335370817673134366534985607526196410712811125091781715080502928059484540913619332221042255781874051721018355553970883316895989288165084036249410173083648319759611112051872363705390005762851794588978951242124243051151053721849391381322464424113959501372141986621088247439322999078641087949048653828772654759273891010504283799336127052438651689900256084463137352160682424510986569701128262246447426246729181416255971971631380444761127159603022719012307613448282786516025501743123083485886140104926592650540498297833959133174548351334350700026619049821809822744846893095551169688929607000755364705220474957995152327393489640683370087565605785770062882086660924283551403178216858102466382557633165586517909082631097738048870050155068142800261983077453667061391373164343753261730596966597547357593414572166543281535451286713003570828647005682844721010705864754624169572057003076335401199409562904222624107664580140945443816465315999293760056332937409481976144032110905889655758382868538853530417706653571448440003965324186377135834595779402176278778763231692276277413512772753552172897071705189571771705994702675350354449846552066575460573463905983536370386157809039793859909973981689151364414234474328867529613827842610380840852935620390842304899061388022962831271115286970853029174139614196053621106060422212400229865476027268372414906621936941737930831843519103211702635165529367831618130541327423671008514214667437427882800249769155011858242256154427889183990738770244489729597090670498560440569789618192619836542808555717446798241626749018926372786658137191288523192208274132284794545709929270179294602305868767420157192840519107501012295544576701498424987553178381937778332722846023409788143954545894034506624275732427601069278220863961753354410755744844259971046321402823949752082398770396188109200934001758869606633550614667824070972798521858732996991974737495045921049651244520497219775769079284119423975754458811494868776354333678239280382526771908802836307617710588046993862470088918270100510266737660859465072322525714083884244303403216138255310767352804026265328923432828395865124469157029755290858609677229163305257654650688134864421398331872678830008809287357042459815647583559805789243333255024147460237397279931188109666576203188669724433611700108672720204655192736763601602944924236907715387244117839205693112981993848937081699192498876308616801342497450735438309930299990355922812437983542878110769174124608922866523872971994627722116441484038134127388874582312740822617611464221549901430504664131751938428654178839467446511219387518830840845313845761931622174312893540146915586467199808607627245350850011224215320023697526540823617618471978734694160440360871851167361005769095850869116979590456136936149755822063049027966060228160740433597042020778044693610527829154462785786447514223465500019085294344146060355034524951690467826434886379071800381894253252740309812531620598240666945983630695208641224936781706390727135894281517859965756501560282010540739659448766878108686368159371406057480669970588050422334842328545508791919057501511414524605802699657695773021605911460919707942205953840172944115029286242218445707673382193801177312284635306443756511673822006242270363635714815580113552993008313644712350665360677947744262977988921023116509668699055556539400144352451451452699040735341052233621706782920556717473565494697988016278318708756306570974849681937688960657150506241402266173844772694248009125623948190092884709420860268542342304795829573849039750231699943936401583282174795558092155351170263441397404348474021051371717494609710404205475697177673161689434348247455530816992188088796574495463990356264141818264572829186051854764156323244720284092177917079256596751474100307286743436391170109055027387915047414844515836698883247209464993086752196099142076297374579511096587411973082382833454527185089519026005760665165050972461426299334021642449796322770718190189915445543869100183088428314906219246197474394330566576353111054856554697823814205113462391068464099782101756115250169923390691943497768770270139046971619137259242511875182243955606962328146617998377352817394523350929277600091293707852952009264407405066791444767975519831370521961089503694188217023770103587157893665925926267167828969256994198941930134653951028048360485637789892263519581739199799388507416456914650862849356806015361355652727055681519774252762889806937240493979489015906363303270617599252112225624692104336970590710087726310094217210307929393320904580032864896993595150759644260509194456840598534505387471471612403618160457085870294230163030067424721214094036129101495037650469061999871113630307152814812825196114608148089075591778306363421781152795807055124521662908727495121635391177053463392623699307058015865956310457132311903491025223255707993901104552461663022703437916182000389067776359316169724867042860326358460569020489123197272963333110126162925405017808457090093949384094038497978500821450114515543193706123388047289757692477504832518351226354424196050893136842538490430142177391475226505867225669265957343612351893417537738807197703815717046775656504651972408998216801652210566386234558449977076468792716198853857031445890702277678298535211960288912322145884394487063973809349701628838565477397378701733147358966091233395575567704284810768960706433668331076782192031798728343698814392740159842510170678476964716548889919545660960783020057345545419020089900339333377859604327795861320296024742050369105183061181074806398653894619496095512973955864645330002313956077529653872909971971828058102221017463461725267856210066984654524336538416052087084404957891289322373556885595044523353289208040646074222763536468003597254579922450964534022564397082181172607007217949619735293007691963919602598427438145281628020021232892157746659732400712617216310590722396098625434495988033265743682626357404515633498988510146822145991292185595838378293751802923475344219194398164945996637540088457732448634525892648315441767614487082665747748064339736724706881228221519056917658145599246550411462972332995428151375000476181589587259704808086334541798034339732809238560328488574822596866828067046584752084028513679894868103504335011918084050707741568354195081366292715398070347420155565008686846825501807157599330421325654567253564069858128964699699956294385876916573386784338207776602561998936689072220915360109664864131608320965209836723609164292009449083596566665736501361140932881635197871276882101885683469344049147729973303204159105811864378378315647052605695906040727259448728862711364175308820454957652332749735375692464834860687352119405027256234613575269244790309280725191284406062130083790766237478906246365190965157187173572196030917606453825840221535009356606870395749882596606061697155672100125168779238363583151647827142545592417397071503055495017027485788513933837171702995164422859061279653681738651798835459775004581749938515592657512072603475975763558422233903892010020247948018375710824650684467683661432140525093876106979814779143252572215819378702528058119502629833846549398375963709231987249499950283583437738004326826574104319423216952680699969926963415984995387554208815414876353860938889006345119328028922839993413255999341636158450489644848654164568532519060144766940926780897972871907844032950323835235278109581683025935991369852689741353831143922333440791470153121331157717245860376686997127102400330819614713778619517036541681721227131478068659861101264710154204490726784347664243380783390829582608621948308770093171092863792078934106693399198108266219935684835984216444730782140875206221108119419440486663827978286058489059871157150637146480127823452599435284147319426113450620679839964869498029112177027889085756152187860471327248653038865326395960534543766274208210962339778312302061213385635035978282948637214227053521538540002119974100660768025780135411565714540469850342417837526832797866042818042310436864054454942362366216585862953567848646798796680005348404022334119291581010298549818831545787600901888101894963008629853531462919161192572106979650764865270033387793488807971573616493454755148410089316394563588492771223671277723364057138353544051237948422323969023822352589036893106245604126531991357398766434012786942690256376045940418494040654296587481321299410524768311165458724631566713606166669994002385058331078096388196123973742887892048278313398626045808244335627652131391172414704279264899118079658840601352391553623565830986628598920896826368410932485433939331236944561286598069556115185721893259575845582772078109138962238060273039198836841013534847829324946106538331808014953664690318040254976236597679797314529094084041155695936818572273295906481023474176376379140080802025879958796133919047463770700523675250908431657793804218437831180071720711386938029987465566434948480605860317097642875558656891175463305478149869277705053334683482251050033121687856172500698682552285620418143607778940444237543133989678468537666648680556117917152047868782375193856640486729700428944439898047551196719229960150464969482195049539956818753720046770223429416235336863430005780535089925161001346062518364738282696231142019405923965710668404927035018481888098728039474949094878370428429178743290421606792441465355561384379065612579693167413573752395300232867898087255202874246144969880429380864479360970467208751327706619297040526117234674280165077271607037876120595941102126973051825010038160609203933698201354810763146606112088175932452662366910402672842556731191349992217434838857453818144913506278952849708767085064307186534760034416836964894541498239773529900790921096527606379734859504013876938938749183937763462579902708788228819037583908419343716935435366513682516542709223445079217185368446965269319458331693810987650160261720878631563516974007915763660678087354674455946014686130809989659437268907890131728462586401018255801864406034153846758405738637738406826294072558227025233598803287249643984640876909869151164678767868322612753024500694658889146747868400134154941810695062352762069490245342783056839188979820037063507054738942926978275695344633779665369939393368659781138441415244569590277201691382645863150659668126354943593145474936446413616835382122016350106098052138477566499106379989591704421460900605501219739919297503239705773236628589019747118672198163985245456081655296317954745454951171253609046642595205459540188710963352245450558669302425053157358803289928804625305382840137008317369848357507571245527000432861496520870457756199220644311582278325964180233980873690715380870328999834290533483670782196772273834442927964702854371512909106849026162087661969087425417179481621037990872436256185836340678465936022321210334217836115089125644180074377321442565739553820476973187895900088420893637343764337697622719194010932437550332708486638985315599444895388558205305932911708902008206168520481400391715109186214311051344279109824329902981330033762943616068026003545398304367556629905215264312886043121788067030867636239302333318794162703480218821053974248448305302265140242802537242039290714586316529481653318744949802485955319620711444554253968501788123345603409181096926998774024019184354420387252185556263844715282812935731860460666508212407067787544053088371690497925524920303293960493310331375728290044925537188978116729374897992276729389560633996721766652593619842475757395806592364050197951117693257114536291143148726637669011072159883775282338693447166847042648171298917958027339343582598384829274576509424582690114373866974370869901437693468574732486187700616708448694322336273639589003450221767243824484304820463226836070536957662539413253938448931450065758823618679518032405370370368306023601100515993553949552670527613541567619301442640479284017047656379278961513006164555918871674339382597359584928331240289962101164644930390139304142670114460746966772225015024368281979119273134427616316351086604809692928122980973885900120139348038534774195472683408012624598504521584442369108385598552065742501247000007214650931259991413216817020579646804281101185407587551104297019839040377870204809169884904607205744242741667985385106831115210323088338907244314992537464385442445876521871986361861399835845056669848462389471056306418981154619533670610258603301003275397334518819989763921317573500632843426531906425016766258360312639527820902403588813900211918908023961538987314777289661319598915324111205658129311456207184114089320312594713381335120100917887436331727477981579799513529603540928665587703980055972992704626170493983610626099455488531145777091594396353323494826090943752150277266335382270022192534606017000366428757184584295036961776436571207041600740129071777766566154054882781389853531205135443885546999294748444262298397620208890966114760741706485633133238984539025111447621315004153466513453453290921644361087897664493688406331207638567481922168650997056979979968153129208045612858802336320736589370850913926796098545279295201602445525077368065944022643754332784908591266167899027377806420157286139754937047654722897475724126531960945532101953958064939470477689299139045881301848952936116736645848163346806723302699553497392970717062570241245604641198727360049091453578727231263260045994379643084482928302016776194674357772964338918083236633545682325022545791962730969481804994121854155268713396033710007625753521156450982105044484699189322768971637962310408153936379204225957277992367663635352161048323307202108791855334056692778849843666200577584562790417277430645522681882798420388538342371539299458463754484415298912274698794488316711327830501657108762719884367922857316497333636853078503660731468458265438198859114461534286051099494926417947974464040466395645320570974753526688176271068356280633541822829400600613946087427805417060445011209063772051029710432099895620434489615901688818435988429459413311324721460184409601784213089774420391477374265477700723963444550271769547924468786242990035265312735975960615468318260289723487327992273647999904243065382496775112948890374879416996080771379382511159802128711417154452539245451670765675526084455311126403557166020346796759789665838597069209678189006837926741944931399859464847600474243351554682069608352843165453281218061915319973948620672315466597321841866780122675039738816144912360120372374900874218141855404077438696697254359681911327474337487570057758903350305416057401836377189953001543094769213433775103339301912248645989776918984629968653999254464089031261565901371206535381480714268714812859764215809662334074296689508714422479639831593124790808628032655135877675240776247230996139896715944627737429010993512559118743353256212299094141553972277543421622568430153843562094466110302684951510501140305501429836632718576622963422222465638994523840836192303288774311242350823613619494596327407077376704028091478590989611385968425144371784666388184527124532486023815087362180204037047499413374031002577726232143803546801077492188110339059152356347452377494137558709100405660944802564383181902164876828398909647210296383659182081433293980183835564394938385498496325436882446867137926455323015010373171154812201902950618007778676311530060182803195827829355351337552101143326905415921930623155517363443440232734229020712555596631270360392508398058947060823357035846101857222421504963854518912964520915516099999681071130588679802041638505378829360948849732507287521168016029899443879661093694420313412276354590374328845466739089622592228349144052942199193433168856779523363441245016097775212026820997296885506367728999169476373472906333535923017037791332249184082873700375238192624427732584186062518698705825835202745044064631548322114576931341178795629019188390243700933442255211163117685385456979607564331221300146334575755611318841580690958259483564855923392688208431741090531670413798167765567790747458942143457774699788585361400638683790375811768737135219899357086854832433744509127609014437385425525172052197746371890280968352842996921798269675150422619055312540434857752821125498711080275478272945082974233544231901122827437954371466054375420744715658709130481291086004530132132203643803594757148566722613786115172683350622902123122247479363228760425030590087523229423899165550607542486304976194799502911933076799560530570114695091926843976264602882889862986729847766846170897966399063153815789144342740873630286557792017715235010126596092606760196995161978377438595333736121478517607093782433560919711482790065279638125839739012929443536437399917424073519690458815080452429569585168460170912531997801277144815872021421288349653229487678027255820600651341414570435875439344615880521378026813692746492542347215615026422347255702811135918831705240145934625800849714634720705018340230362102887488741204545556193244798200765765704179268530676916352736377685688843706657814704440883283725897656740546208033386226412342696698598092143727955064878302221146254621947206462106608711534672293831487734695938697067531312563379116067544505663106633594942519266553430698444296921996637216358183825635583629479582095488075678761545016035025570677873251919794380653022501681354713297557737991547012451716179499713997878260508394747952926941191747478660170485670406105891743316208737668351807927231506017055969238400229646978861436442242407940978440519447690859140541068265301613020003793456287044436197194134718784775423770465204369389946651688281993832852388791622160727981297882943414699972619325605618032201922350628550330824076294218742082145341711187969225812165165420244886650702380867387541171553598426893634603693050314609286748749891383096216849827467259220557609411688567176986215711314963223924537881514984981242102903170862328980931213892784936492707557032809569901019812895368901045246171251635935990122040554198401431503668804739985718419354089246394393834291372419345496777763139323460180392254397452615302786919834313330594941442574482699088406559680738880387881100947260925390739818519291344917824366649071521786160317345417272856342266611752188252929086972033616079553590488207355142786741500330733753605043868588207709663073612844536918532468469176141613211304079967404696045364694923935066969504669101744148534190144331802958667210237353252153403759720432727898812224356071295161711457686689457993706685393343114320582457142108155036887764236289189129929870392568488384601214198937746152395471920534940210476581716713752846806098528916069566990657320845428612682996214793372429820130087084935017308262094184462746352083192340099388106157795864088452622307295326551926250839812449755157677737919295048579319879395912323246245406106898908086947912832600785157469289956698017325016235331857209410645984448172492269608672284607891824545511078234286457804975933439488564254688585134570867159421029724829661041502315912795563905351070651483485022871976856792417461124372876484227760491834584345076806575663553466685962465637465901284220773840936985252508680119761240388387213347546290956838946600266872773001970222740785480547179274445465597667922774597713220797920304276580788558302890219080898873212585101900277495677414341372050621288120555987235911560272537191983879345343821940408834580030515692847727979581673859596849645275805564963694629659570814667680333612941630698168497681339953478804052951065982500670872425038011235670309937953109479547931161549299572173506646734952933016922244442469398859031742137111576180215402170777000188820039401056329874726176730132039642739902858843262550038591360819650300719768529849225319579272970461127987045773233749923012736852907947361897457013238267499479807410184370739140864355720884325556240047748014378059818409868033903229888355927842165169286644025519996400363391522420181771430119183791562782428622938054857478115897058082136390576931481625585378159536738914623459016259368458813043024078921040617009233463481306993583732705236923468555884525673862103897289968611154237348627989540859295460580245024837854744772763088814191239602409405026969381466425141658459471240703610406396050204272566422135206157014621025447682305542580538943361451724930285716178232374362061432768958339515054667972682131733562642732268144749774387051115515452400402507342299970103314511821413976629126928549664635176449852991320458446716587351830897163318066717970931004188335864541043754898572827766320985425194000424188797357117780086768907686583215411962218635863191851639755626068227710903924288406469851869341529931683633230765087802863501484246335001903501468089097649545936901640853880716371587539079135802615935318134764306346766408255192792912639825926718827648738675378212767748528664804956608452976476782577538354233031188626947759915770694074918482419770290469854205762729561099766822129005831320525785823419051755626289052946670895830848682599174373584438723575946572886278005251824332323524828567096262513534902342928182347868483032592784897317905465287436224007539111754981181421781777796563736640972390701862637864860156620764280642593571256660700147106451828137421888199243606984753388654403969364611363471487855801966200125842966582351514517561968394553353417612159316230117704746874303138985978246577467658940387923769056331509515813650121652058061855568122989090803837262612996587296849495845058411317260969628765117374569704729636053562288858032425415568778062508224522795939321366817601907410856347222932388871341476692772850457644638723905268730322417613168303683944364269126179743974196354949585271965542163010015414938295404465799934611092800328812132844686343127456979208698810397578899578944134871843624265126777590853275069129209603416153453195230255135539149060448167238507456799457674189681368350076187226340761667773796680883070975784958904713369498670202401793870180763448772624375592589969479940630427974072775950692585997343610607353258821490971209030779217035806303542029245412993537500773644062838088147812641146757720753544599497039662154808965290867790241261336550682324165163736737034726558004400907960536394096082931058386084285263451054390664917931048097428306670719411124816551217951719686821352097107998735831634145361128589657542616641279782758067997295513520857065090481475508542338838377381593322852065349770453484509953727760034524890890852092277962458972082312717243233793665744504988632363886150959498171871598008903035396720901593307078775348929472560348923990004140746836100737627330700495645698315265535664938025145051193822742021826666350844641473990469967199697923627155440204742615471190364823730665871595230942066580123172562617790222372058292997075085504682768820380639463047928436948108098610366708481631273163571802651070533093261262183250289622042038169028380379970254975723574849296111744569881303476263726826651513285000747849995465110795886460264595183820475405848842356140208238201800076669122605752625624419285980309893897229096192856488473147917017493552927376557254565811028753664031736379396207236413362079629594121197838646091225000567149044084923799300564210826916211513922503505868607149792249704286443442161538785537793544583754271678105485214100931297455855023510060878101038298118432568845491002553902890564779280260556164934676695575918543598184713643655314830827786145975768649054960026349588686434199745357695757252886096202005331854773507306282592234550675635802242452021989373207751384113880786897852599143529604121726796205877958194731029285505947246457367196553273303355484791499367297240298213130511095965675846996188055953965624439861051983123009233529519283212426547418517134480653507587127186545056363628708906377732899818751925820659836471359830285822300262464282153381837233915921426986511104412732332123624649312245647032984404181412734512090139069697163765248476435263306342793940985016219653034926412444590575255991718424688386150079804656525837713712414332665995966848048615790173679240618764679157003846383661785849347188843768388292578939467778698288078468644476144716290122425593495814702244515012028236454144822072132556597716379363910815506587735658870679817978035661569922547165677574577691507901462024120457482118472956777369632603696815015547680239376810133517542635114062783051079872458388149030359047047179941320615337079649701867433553847948847389723340481677270421446317412733523563488186694587935111413125021253001443613764046624446595134250115059338968015939271818266197562230405459360720712555585850970815513006660813375374053019172086044888106493687476807866994482458526907162478315055287894296742397303857786057929835272237558856646178051204399111376460523260440577315824401831993821891645480216013890561607091503032287648652047943356401214647804710672954092317772576726505408641328202037164694984505654778710181569109747820694443857201532257018464229227049297190282760065889509805432647249830268912006483294763228870287363630183573151886704834271909051584357362882973414293100963323786398750289739926437210587940079647502128382303095052271443917461072618998473891009299592113915364975684488358083317188912758281347725306621269964757642690631477576403102860581481660323488301053896833426904077534719131236542757496623122433050530331905376353722410573817780634379890176224063929396105841679510825194992695131877302781002180477049902034200807984657067371065167327973526283654118327641462001682325471509672735127511802652114669245554762232748300599448678146131504513919125467856904497736746763662078145183405158879765317657186178082192888242438071148121556122599607037767592718205187036223415558138146366621764707748484373079444386335581015832613533075685869227682649021072266423695947737027490081178069066941464207434956978096967159775917343798307856351738840838735027140911871013810658095672521755002538241176103656982693052181995171050636950799281362612859993840330979196822196823822502348589299748303738028227109272408589569733583729724659877834276271677230799667391054064341654867686606634697685618300584959555820986447338795687898912303687798139466838554729862580199449565609324096409757761036187472238161398034593296018647184259090111261642858452754681180679971762121616739494627607384140688055963581599157945753879586340493305196998853030560420443711178067698404160397140092961667641989124678822685733474866426354140315098131185042317007973867913167246575596218349244792858439427538121769017612292666691161676910815145637180743534986498778962932215387919405954075811245458033924600872850719924828091457832598226981324231102806318012668092112808461678616743948622752298172899508870557971896227464353699816057708409378390053359900344957036365229379040740804494915940772202171274015912490299155998004415241873726583551748306251366739076634211377968073052186084050113986250676962750382611569401954293261486983964383822340838922349212808444003897778710564141248358624812652019276687145189163423284021765769725453827069494452340664560577781177672412518053678244308540224896364877984241799081708187978522453929446547341971391692565980737466496024277016885133052473718066631056725634492622900231196868759175751181102227161449704651861143365435530213461224859336373424736257968953188645591985102719838659784763139527298354345733836435918437508469227001998989234914072031191778610263913672979460306098417869165441596943898062982993924565774361342910640519384744661851195319767700714893604944528952594725089747173345162947663700035241506666560711365650788630739689639767969864230114342764857407020140253114960725560069787811667964508471705257046869453615335553750768984809735019736159215415695528122161946128464102840766702982892714246381035062677775506761907254954891883941512204199899182628071662744015071321930680814412224390844535118791288609857656683752972996760668270971799738391621087330641408654446887543022259956532882008921830284513819700896743447422097176116969421484631039449481409107730016476432959959790264506594490422307024384052379719085766472811730061728516232794837146144511393062300950429445963019468259400115480556209454865770881639477877111641663374557616062475330994305128331720692289121378714859685888303950995957877390864069052159042580241311882158502666415749843147675494223688111229660279688392683157083749078436894175034836850626446674905801932148303615041954855545926718424930340262820003653291291443040869415005994542182324604344567098032817115048100627097453071747659443329797951441224615045687161660527321949904017088233015403780059968075347678717665301717906027636720238561441815875715110817925436216705632416252124432744429978172497180633100788465416225890231353012512199070013740102205971449813767609796156920655844304910786458185786757412027273544275522742724820113168453289424556289264850788591730047122603348230779524787665692825709526290440812213742438004610435260723427137477999510520929296055561105932178081658501660603070754946161720514163273384627838754943929750296515259974522164939325065319142802188634871821646374430953848092287170862070577711108323055320801580817410809953658347527958667954026399792946785012607565055948466611719276693754222682082958779192266732161224238988808825535070232653182480393029125608382971952062879931222088546971300055794629399625420266609940774823577140470816671539678821082414488672852752248735584001000867895660016175457759700630677659676641155646810588920711273240257904917408518392660919802772744399396802224853317411831809630084409813984298154643773370155474850159774012392796659569361259060333492561544991727400440565955309729076599814186770059237937941197355752791863414222048346634444325288444756382502557890818017418815820089047120840029363805300313434446452039352540978408166250605812996574305625679503979077535690300922193408046036586167221901562783307003719906922916120401345110138590671338091600686528523387247958134630510843660325874652842608878415162641516499026347915637189313383643368069057449326393005983994674121141823185314522855497966458995225588303823706418984292977651363874722445178386406952224924786082208711860897841839207893615846802528171875463935610167443414697547833516639242689181092053916176272037980282987987848264646601069261855436501385419289072803608278455293143841264518734769861024720555727185299152336847910370987019791083301631150145537225499793581845126145326885449914062807073423771837977009235486804912964609775745074888191040981891963189930779978126310794914153761362876110182852382494837965213397321606431365572740394034383664550041608508708622554647408608329413548923256848247222970261276138194372208670310339484373767762922004532964313549031440472220184569295572928460723292920991743189980832463679916045672032704795975990464926394394137033222801391306781547949988323148540388044474452251714358798353984946905531200911864645604924350257584005353019366084213814565449479403847308659468490135340241946478621405901874086791524900963694020157323867586129869981952300958680699057332050988735576052106846734441158352766880005119676492580122339770948493250108429393231498807958343903138500047647305111743029382444785498825028725221771574171649813290617774484985794057322440439744048971355887282367924789205484966265409857282040528480806143332264243359627745051058984712865287625985410340837686825690518212598757878153688097618685989082818589500363675080653011211163719697387720406029623225596187456232024892847816535763143802038525893038215816236334474296719329707706661316671533081672411154007340241400170874160892684464849292786495988560458430473428133786895671133226672082956355534306177216500092436881123691211409263542196407563963659642042120208794581690983147847145734941065972347069421682501376455134544337384297277862256712454098633574357303678341506224540214978024505330577698801199549451711100624904710286478288725942727181636202575167366205543703260897756651134421323704942394030877594730684657438721121189095415606275952506171544693293342585833692719321551068302436336469129171179824008942579163172605520128940429488752784649125750796135604528299963132753151590424402850613945156577721794065983069388241326993731041900806047111354896591925299271331062561023437506844501476176592436943442581632609203352420598847357302085498150254976748017749558473489756453909126447895016605894559861076473166496980009377028223910177338179185491323752332648918057334642592993278480172222507764603580545466969153218848047796920581062642135944512965128795993794320358390838908851953235092739443111072975109711605309935121978802535547307684247466076078002382424695499654155413179041224880957075358165811852303965581712790903788420463127544788868269579087673163540928056129517254813051777834387665727311823568005343408133634094363764618083534692279155418181465726747791344831091123367986864105163510261592544361435019613117364209485058852528512398618154006959249551798776496204508913591628262428093109739578375467765903480674805346699837585075962648052529109555123293191586654679917824065668082129328115881662403319913672817756520963820595294411087244963937249857816991103778140301527137702123128192285597460306316076337017245505226850213849793727943384086946805048621373676754387546317956138127686295184991670883054020525574395883759232954516707364321985931971070653764560083626905568583747184548890342143496562929132543643977926919165317429934070682583612075980026891105380144625836864637656630593155498451597026016478707228912344243389826013568552624464194790827728124692043069539184406998882084236609904449026798936258928164873706929473007884508261285961393521071299631790261213663925373684142223117213814207775830081964678610200065908645076138474661072955691971462772434704956517648699805661282071090650160051538151952555672494571191975968750762548088553391108075545898039084573410316463257483451367004866300945893312577326047052046548020985556039421881486332866711450895373861206993494045132849085074210645703264732577385436552659841298637130088690959628543592647932471062009487482897627897617515351441396703455726997435789977480636934515700399532713548139211864645516402253713644494614655644767172986620874056404429799879997041782029008785776266900411528242406774415971908313690240418233702434427570107588427501641494746703771407554483370405147159154742137941881106359192914501751447632943371319613613989920261396482936875065079895196921782000929431195605601312373365303473214929461520958070725095814707895020627690754307646216184137888534193130176327684489390506708367845742775055206933120254997535140782648190196940135767853604922890658597093210775519216585622789994256016532675694534542075911459163836972119094553761189005555061879772395461797122773708335913458805031846660532434629101131906428276766319049258370580423376772015508429726730145745603340439337949130368780342110050478373452010839863040677559669982146860218142830862197359592641806615558939805429923778173583141357083054006464775366839895589247646864740421725624393330179911836175364006540372996414759939347164012217698949055199679747521576179244125298226357625711876641632508955963464574879823497296371656980536789046282284282697159759177215158442455574652349261956280718807755832534692906462844828230376699426688115983282017192174814844783712280024473091173862358417310421082841897186106800375010098228841911082029127023550584595530632321374601273400606129543947428289102883157315315348580788125805124698662853014765254334842093092368737044183871159932321274403459519078002837863600929508118621013684653599013055716107169212150843248024840564634504159139124031428362972552577929413749783078495084801693755185343087285267102383448723968324457393099835172484423858564205655254752265388246050164696697361495945534397424502944675591927346944280283957913506211072318558930100957872913763283189789340571452388344739693013765048816846749215714284476859752871528242198044085054701701163082156227843957343564007099505432391436614531927126092513060515598530594822245943921455014879403813484077756916058266853782634993821092941614786067562525762459493323740655137407970476526041356596379178446251512091237000236620582421045832013712639115378175086095541092080331431893897827084050201584447244287843142106827038008541266590236666705867966627686106433474044393376818759967838950581784324559517038382680913411539544244935971260349154749372124810322355965261585290868536463263573618784734713751999613946666437889687720246092361511111533980978873011419654651426119751299687185549997696315164028056608356795780288720674278333246001471669225799948134481628900397369661715812943806270369129450015271075834687756448651075993364667090407581923241384939410051468623061084818305377596543132878106464398456612404322496752382603250369867117909842627372944258489863187892821589712285670245415456964959744499471352892675900808649634887621317688539816488839776695765108568887782626511241866804440415917634015163690686997494092386286313658872167822450166214575526577880450245902767757086208945608051224367916185299320777734721282812635810512604840362494189546320761902807975322726870412208274426760376987777403510773244073939248624973557384030003301959269031640515875576864734253662552423920801264177960951668315864011873903561601984665080846497613829450869601766410306881647296936069163805756810315553664646606447155527166097312700959086032306497981431620672069719433330466982706952488495442417073593135611917154677317461350513986597781399245389815081729742332543336566048838195002840368851003256364023055637203997178382024711312888348087013815693408400285159256747622524557086533551619333773121609982323838473184141275234557973840082889639440715430917923361855030722895932554745737026476038655404384117417243243262452209451420592130379661753021080471702641977947607052609886198751634635213808028259860267423153598265222929968041822184582178042008236131320034490677329354750544224302074032891157289388333272434406657762936263679946768861077435630970396310156753218349364390575655620469032072128908891744071363561395098261899192520915359204462225060822485841099292639944562221363615112101548815880697928438650701859883167412568066763658435772865137560842183591381043110404744056208355818988571341449333137741295452212530524223783610928195318920082845967257999069594101937783230756339430689083747243465799102204080226520805080412061133071624415590433351713190005914935904637473913277229259590468983113361213495499672975601237348389256384371129874597647978339773273710521611184027733904506304177393212720164212120439239503808350647667482616490261272068312950059872147447413238887989699680186392696896607614774501135020682266832575133220101556356801438230209455367658740137167815025647386336058592945334119097265386342410733599838497486393279303427563503763337377503245769066335204243263344659955394257189676139334582269691021063537241532280180418466987163920166434784913586932862545825008758668774412569029211068383715072472030103339983850415729040664043530256625955767909985882322601085739586563600089690774876418493833744149341597879745393204761487797675718978707688371640115803974961468280133634578484888685208308122724224259076884376571610041244553487064923499054065918767094853727239959188573830951697354149795257679827254270553633085609233159625165214320527518462210671766968861363546770613336652923006128938586882762463821288639264121157833034206698496717905061877744945180106411444788664073905668404442516072064367323285781497601233361902495159102012742359481341605591468806263686207968785489583959448723833912108460166222459706951922390366047082017265776761452089529847195388849397517897336263944150815997127038906196534056513841095748474960840772196248900578567481221293727569770965413430787981901447501714806308187733308748859394743715883667773340487767052289204600217923602943486803050749771667448237613330289588774811111065629886521197441268870245127032848286010752666380842175498514249135433286794219654178922045329460392072784298171837985556166772198751080980672097893274060762302161052117016757444240937078301134701388541501155741697220089394641712114900128684919950381772804935931304449099003930345777640822892991272029931116975834376036826459492942551023811499212081680439931068710999519610984832613206139065292646041800926022490164251221644323433084746325612517035986836294309944200505311986070198519810124963016712320347898701509204681697453086093928651343996524683274371811516949809654679405127545854546403641250505479925902022001043978657141711759053573218224525351837340008235297184880240030086459686409987291021548878410521591762498919371527602887626443768620011579373815530669109497145358823161011029975619347147870755002109096280884883244324147852096606026996283694999970425545036181256287424670229493887114721181569832360499228780616501090223891385310351771957216026745418239688100502128270166056264072853939448828557919204425210124332529807422663109574081269607696304061248046805742192698228954765420386400834127912439386729922362027230040035367227681854871787196717168897948134074880347468896106788918094176438171556858192362509239767201213712481645502129458218048222074755457183364074877892917839968270378083251250400710804308853240103258513378850264199606010798425495432579271752091856650362066798824514746836064970935340133877120398646107678986127075883226530192580204045232634571465402345475864267479170988687086731005690826426998433426245895287783679087790168807745609056752503788054386309058174125715415121089709099189414367222724609445481068875308341395921592607877195365405599359061558220553735562087508509503818001613245162640388936927249961606157292796882271659930171690567179738345715743544654532838744795622631214309339129074905659854096786479504230159121181800823704936520386613598379922499380889336288119064057772141352832922830062037802099185080587270789248065776183300565109348027332411160380960193100702091721601369863106406880119175993040003060844641119755566405838081123276773786549342143262867219962420730492359401253019120581801423743371678821156558379386689524180306108698203553799846749061326254157987872541811666229006304209370046618359790945169302076436842738440462369915630746962689302758415670882975604672773230972027490228782041119113253625876388720826009785309806390780040124412274503073914662042994951794603067188270416416123466511318861413534281290844178858856746667427846841151283569506130443847740652987474233378839983572129677927998544730704820854512228844122807645663949491001267649520829958122515190550364323357123387030134469794900717044699530661097908569057076338431130754365971924576441120759419924429991691632103529015918789370663021536942320670365145182885072610215867124080470203476681680317333095051309301864127915583933630060466433596109570211527416625533887724980527952541058454712115264223389452949862338883160478545488790047940535629117843278574605768905426865302228888798058116228664307102587060114776691958338410855704624302776433212460574663718215997064190460442859240492418801997690985509577470832598271581645120457664311535357726578789359655936784740442721586343562316739848820410601799345897435502115281826696750467724908388013532131123983678276072705019215527942448839288900528802913586046064811161026362829644349148445426601012282252935680699388508254645455088089759334152199270133090422163504278563254374003653735697188065492883412809066471925491361477274388381582119945542423762679533540305145839303717796840816540445172498558434980100505683796151724792298586146366945536846788591822997896101581614101067848764108427254368618755974878956605376764749367429893939126716623338387639359731425919892067664037824722937138227215433167358520356706786616852046075672493207668594421967583405943315518287500397551239059224117992900250800593587124673631537259613931542020773010861745886121533489877772674795331925782280235100157525936509017866761460976743654442948578126297342932016425921593366745067786833091816775222188749184712400458663992211850155405103764695155166293202553242910217441648949257979865055794520984792096212933249315325491401698844124210990135090243942792453530422279691449267377223526493701513978124749373737438838687359246912598018862379223269206403755937534612326862846277758122754647487786427206986594865364213873103554869022214076558560390354507125964368395971893631162301899849680015912205360264818269447162770904284943137762159269072405512301156252074870581277942742629361992398196669412664976834265257219360029856873189581075131017766871734710143208733700385384340279763567471728067142427679574013081939327092018638938560832529281056887508719991699515226841532313821584304805846963347600977568799918528917558051591793743893141403270346918499994711985788591791360108402288072762006546189565521221570825323390064199415298340578819374543082949660823950034279296391954547445861638093188488027364778291747594816829655872797260127901101846622977080614457757998182719532809442847237247638969686306332269824874721865866506894848706026299105354943994191309703962766933915163851885974226922123395482504488970816781892349399081458933930670804145850914827529891323313596554522238036031583207869472689181439644863538830387520441395482724905107515548415267734080418478985822886945988617733160748557147909190154092970690791093488059712064210884033944374558879394284375564449331108834644315262115952182917342730885679449117344227411524628473832760320855565449610921725602261383227238747247132484628303514177629210433276874932818868776748589925999565310149396726009348350908929695672867679928900763692844458784562184503315833894799893862222510361089223890114243637616586945547036543369714882168070728179992791107895648889782158932849953246361636509004188126238044093057195201504626805757631592231549959716490557950490890571168343259427626752012692199338189174638378215270912708051227897987124694000006767527492590962986334087728258426228148351452354407267468215117206994400896217221997310012791071149475033366168382984860712136616038176766624931333221459257108575927903096484427616001694613042761884880942118259640840923377504128363541478883114375483429238165719777948865015725451496217340494327698315886199601488834205944941632171277205756654997374851434043452918240286933288174495346325017507883644032661015220848057861113116956664988771920285231928202789774503255749006511804322544636887109466393756688870172416445494332492521057118479409746966864476725193867435745307043501554465754525917436518488926700084114200956433729589462428029394889519808253569035450721356337622696477844111253251446646944000693196670249425105581092783364322860120350421850331392626180636331075384775159654705628733489996810924518990642642070487034931103358317257842747096458504958013971763811971068365652099146162956837281589550481538537336801399129667879334294848771634820141483088643347667100151394848817697390370888522690381483520473461229235004179068850566410883459173025932239058603826494734162235226302868220435641760883983424967782490390284287212334513811348342148611250606470328703129099154086085736524398418571244037476138379154214282048467604460648121313594947152045793596052028257621659541210730122397611851285990452854349202256267416500314034688644219738262741967386571265432339550177097863354938208671880980320279964373792193940976531972998320592916536144623818813653838885892052654694362230153958974787392552996599401717729697948395172395025500221258608078059513412500407331673874756316554155450740908733559079418311696798634054553592661733027555090085088360437659469929270332255976905444640475628617014526776745250000545094635584125236213363136779762970668953246329859028289409106577024617589737995868082276603259300569838474322713466431062882708267525947188444873325551941541765854034157711821416913071998661813396282413964566414107724331124939212633068738501636255055976234006806039420805282921547527511002872096061774527882881324401515615627341741278126052487444448049872220455737586341676299346278016347460161466064698650977679848787022325317080358230405100379525056327716931685620552803724947811452939001786081844505320865656143712717138410432751908082608173792957508953438657122008263759505374104220077178203928879831948317939105004826734587254368851423750989606912131068290116009311574024427195206430748787957277005885618164243660151288043726768572241948911873966417970636737152324769781343340806126591359564355697801913095698873898587948175466748519444939992115658233617819193750887120964914103695369112376914004374470038482676026352025114523189165091561281780072786704479774383499496003897884790446581608852647085898618999652318074257427558454633250993442426949496889647949333168246353244746315190301182334564673239464341445032586096598823657892655017893815856833679426814109268993896215584060204189212419489789727060038944490217305112731054121586357219081571317237758619573672148445744295670855698763211013833595099720487509401114557205278083618199707977330703945432115916759045001328661832529906948858735697451396569327253636232355769436751629514293651650214973373834533471637129389432764701370832209934543904430907187602239031722972964946777815441327562992824448300149769010711813239074038973830998296653469817030537760526021378759767630317788938880952474132707861847886992927561931914314410604250626504834579975753745151467981250535864297055976817197184044255898077031337662536294400994778619706897279876789613389946469138658368853521782104112661119306687406388854028934946193051475375705350753809371780376747100819634815189988760626085217479961657189620743042644982638147027523640997658491091966364467417099144623708061286388782115474319552225796558517824030162557375452888117114548975477581892332408909153018318232764931207562108769331253292847782063904577946472718018980341709717478662653444850039055988132264111549922633451671958509417044299214308259275219984627252659892940579904468688181673299497114496671993668383412179711204933215418507119912715889631453112795205295045452544275082630073472713737308858405822372056853018901166153645177040250168543167109223746250814332354403368864063359853579734275207103458096407339109243598098206535488415014678298686119386417949225112625816949706687619684162805020991821254052341731880532307945541821937018722055734728055673377118273894780474763913008218096070473574502756942988602940287448174923504571230922885866787377058278862859068931325577075866011275614473876998058594695144255858121281697754968498464957179540841500217418747757503062396415717899660398345089418279082801697849816147527608167880754881786340044929767035532771532666893140343140179440612154478457680821376021175397576947318369869871455116487727132398311850218002650795598125408198735301519889431550897641537737427263588657130173157255538483044236634120089194891353369876461506562511642137817885995973718158637823546603613853884743803984822442156859669621233828175061663781455448396418124536464834961824858385075467445193247523747236382890227845588199822493319084826084797465638475220006566516630467740491049064891065556741636562560450603866574087732284272840357995712906269411573241199372332174959593993160847027379340478692035818771945130871893832316944439809198420368833551963196291801254832133891576926834295689513212046232183361991172110709708098168119305353149855518957828910907454644093996584290064165711338289580227150507040537969434406005220688512349097861887399677674759963049156354521842879478898071903631641976632783543080909982420866468194608634598323734996626390989165774748235165743653216272919167215463455489192089099778066803074420466122523108733602927206682491996718899873514330675145597185735749240299622326043919401928621924432963335849839370958382041650222866864253449681773801392364259199115628184971964435732538112114342498738253914200851255997986256478266095920282789783789532075321682102695902562878307874611638920508950428627385113138373057901717611281518083988571124437937845071193000751049236279906109305124400639299273521221106781049350709987751792463027367868117110884804423233227557769456923497607161662606706014701259454259023262720609634357631467798771005628346424140998328342156582660078543110983800232450030498947784240693573443671028706444346721972489891511025631028164876341611364892821155534256968312772637416791426080233882951587348829931568820761915276583795773911764146950548527485225000622495186820401289665606445376869060194467611315282950655173826852685392668909577877872525682494444919303578355284585860923733826629536217406850354493925784549350001648912490792751610460141697883087547598742202048482958260473178245682067468203701057251004343174544348115585730217692674385305245018818989485783843894262556332494017236723000598089105498120342016467020045751984258499728923018168784604067502493476744562185338101624579024967066420097909303583395609997231915987008094448218448781439066812258853829125317062802823775700440964315930281025059489484549291868433891470692115034345977145508202842730166969305593193368686047634734972564008701579183442796402265685511596589357232390906179061274175477283583284795722287892574102499448535591288280333031811015904958237093847383128886833570340626876680023354694813406248597171628271320737234023444676497950619785235369791377372827928767876835380943862276779878519836066571190579035860360591135500119271362645915376457111508411741209300833640615572782043042834861527987197784730531268081233420497818785028925799413426067046682815404461760373640545629294391529194078692881992643380423755418929500667144228203082214610897297001612513779034001703401973473222445200083098497205672621868136308309846061289038804963948696334280724311304271065534552054180130455694468220444795107721876103118743226966164619753829863924746065383751453099868989767272499358095181685342645307065535739795266004297365425025089125423734884445987296408163479290192107922412693827900973526630249960886024298131016441208674405609522367628783941041719858345056277315889322091757704130912914871197959693349003093207132673962378559271456212773177476609021023100085311307122609998878926805697297036889660678584054387072570544116914427571521959004804791152469099069563306990503425010027865779709030289550011885861623964411493844756193968206256326296905593249413002490459558947984826694014724083043379670149885147977495612451434160177097966808816181932694753751877920538668629989162913859345666551967632728252272748807429385367893509880613130629112345679424163004029942427838608238484669876618547902396197141455818272676994898477151590706773863366252204376190384357159341828323656913246172520861775401003735743962236136554722848836385471768019140957592441006046423839311968566944528032086989812713726191086789194002892530213695556678003433231686501014817404804234341502737324161355749326338122573142718781264829642890672469769802719883153162032626663821835089207134890455824683729012286882677548761709007850266957215341298745207053159325104367685565409889475330723368019310216244274253885693828569321947490654703969433699756077792204256370033417484375233821094691442368606875393084557170550072710660611182585622599290676339686769119349200536544796889349911344917706787764439855772643146207357934508538338373447926386881009299868265171015991873176955573732224408219062052307985957538126253136942657471540450049877359777839339934812252865252435982247080168053864555614052368030760719603615114560336658719253554767313683754680752384637133383133923234161140702427106656833145743765026792927992872164848547014736066313687303506576506341868803131673191941430248928907891816665354331571493868965058635764246497974865381969920597933023635072619766987403136515459214168567546661515921592984208855885835928525826713624058640495312929945009686318928761296344339282711306435088033775315670724692486858369183137971010413699380430980475773217274338677807436532228682820067558124996500469140912027330392229538432004728718382633216300917908662579371498842223689011377011612930035394818712687590139069577310556786918320852797998134457072739346327822623172742553102678570523977334602712209950721500431431483138972332135181457878661005381055367728858558132004284806387524591095595467005615930275374819172150870548064024674225340526073803013648410959084343265249603868312402793935886977581187900925290253038545421792100063846298238682223897994655478123683611530065380844074452584898826729898095835102827581121476031392261167135251621004343151482810846824156677344864106866993474884129940750557439387667384364276348224198462167655881208519498295114065227904339823045829030847104273293342151246900913913527940588794582512808314980682701686968907102739726142815573837556283948593507665595801123120737583469161809362253519185392433944130003803152551461536845394518293360316442497440191952591795277216141402213195192262856258779591635614499394338342557902990644713395657388315132700392226972184476339174166943572883171788920447552122538972345660851255810529302841329450324726606687665717347852809656844311939367191708412743513564973650351512183777977468556745788242808180096434997179413973619763488236485737063297661707379326822644878213586414543624213100698424224370832869034646542955080639362267611099395881135090997392930618898920740815797938654771910071024189247852015208262739600642069839955981563527287899067551444013478583884537151064643798102199637306651521863314243254849886361793770246230532395058105519747935085269955849685819758301820167783408951088793997988144545162158637935685090534263800389351593150744278313509583293669534702766438576791809990720688955733033281282943057947946753867316724537561843353456143474928679684413047473520316027307701523219319338395077356151296361679317631643612483398852337572008133718414346166112482182780611854234991542302495936333471086486940101286321284774370638849877687381113128341681280827697833139763515703092110511789867130321937779617208208635733875305719386369954422667913590747269600619797558265996417310617850082529938003449268296192227720647241122902917424956555445510379998920329708904727695208758623140930588921953918219769560560102585169273686179478963667325420095522452875609862142810281061376098540487565044021292511862967046899757615162277689936393600749647500479585706190114085903253733079238341290253455208912538865253364013690625174234050904202609470387833723979883553264619038864975003676117230678976838027350683074549741036808682084075932556338920773447188746355916581538977623394833597820863730462822927642581541935164743812636585881400573485518779419467941329033167162532654476139357528934958129753521332170577898636221716518330745385375130883198671567689417855186533609324181822711834019519837590619189259188321316593183254200634648048707399388147406514406422554206346245019821159077498875203203470339313288695436387599188063488699335690971484884959267874279867337268667507983596084424858788792235156383196835369184262685889315930440485042861136507105878283659487001978661520986645147367800877256662175662484270142269539149234554425960737231176707106356467080536757024790632894653039025337005857973821871647659314635162682079342653475643040460380516115493797658641775790434342245152109521166994742409961783957369931684959419793771264900769103105886431412291808504043216579712012416953134004960259614307098386752108929553811340387113022698792133505204586122667683355795645301513602484597997401609757588716216665286551077520616427979850226225120584381824528166525443158869550085860535301269710758418362477815000061885005858910917197162749791932444069311772051845950153456093245962119348026247254429336807950567244403666247752046939683697312921746758697992041086404635130775444390361881084337207393644029014153936212127731269997746476089298392893688163796678309839330326841325615103745773527340987677811678870112942329420018971748625587530571685556903641371474628383999386772838968946792550328635576976861443791888831839442828958863424311295060645933304636921663133403535430219741929229118680816448016647541028192594459029737719504732545218414559858653504541251034589071093745494317687723590314431456755607370680439003849630162210983944614994480688900905625389039971474865671087206703589258408904660674194134994890045824131457931169235743391006367337510652984214472538840674392864502277796628850039788934358211641937230676307318828928417950413087636650186597215350815607669707534027338623735303969694061596511302457057456995013542884248720662005627842992281411138300104277796254766247522975347441733979269076709737292957434750877745502282307319022451919177258602657106962480073099146924403097499308978302111436469248364984616650411003046173414800041652356755821793799034530460457260973512629978998470203776952426250472796356542553849995558829203474436600727188489490554819769386870799448251788405892331744539614607178512777191223881213312410894512138930993972203387787339912822212019668627965174322913066066199396977611183677920483124268182628472624151709795020091378230161781043471457169135506869188456277008556620165240743761542699721736027128491640190939241235801890478997126856282112773034364563680505690470934528192062207381767845605403932819804542972358832699074998391692585929690144338508523064916111460668411011702577360408941462254897133367655046444460763461091037567631743155150599282653482669469036410899059346825511336414702693449547369302706379340888181712008115073818243508771821847456526555243941447851586672221850126075633092113609832279178383921420892623713033493906119531436729216222281310574935518765433990557919681206363826096110643412712866843447390817291048932967309928380924069197425652044741772319043564687956031382823120924065347619438876824496749948328616801560707685800092784204594229738637815342541485563252559468387461443972437323596239967076237370048497065661002738104003203869337559727419219554319170758559690488229082515839867974488205429603365944514270991175186122144810031658601112728450106930209757911520346512971542236134372036965442676812754056439019995091590614138605210360146003625760634851322790035064360620615065177575334105557581529938671773391503119048521823825064522197456338969791125379656516082203790817185798863468970732397082028483744170064864116888739002523627011917736748611082657550552534925514373059271091137768088568034945337840721692650850122426197756364947568233414127673588909110623979958158430393198420439043782372519419538802450500987845208219457976561107608318320442567339696087979672448412367581564132335547258399467539825360825196469661034531613048396034235740803489383767024625818340342686976891136603231964278674261798832012845929677286139510396859805016555530679712432247128359409755748520242974028285859069177854946783491519269218887055887519486173017314372009746531559166842465957675857826317915659407992042211422577334562737592788092078245894125138959921875133449087459127676887194484560826597571053968507813309606523017800357537621117399571509518545731371343768308325045533897691629571351794913702201463509065881582960269456560215276739322618795389702342180350108347093981029990944022739939270995345707901387440982124632604785200894530589867877654066833052514890352451049972031758866568945814997747748674126025805773491799113580265709964440005030863362582763538019766874662185204090121470958199126743329483426540357357038952683533541873422129372067472796554789097499088290044648636163006061841501434374030347945725806342701163266235586613124900236189143381763763282131796973107725849829927530402942761239107917717730617687889796313241770007906131311195792379153154662454836642404825909269312750408117565781028907599496719924380243470778569771211768266426315929146767714012072729603466017068180056452889955264952765789814557772377426487990198984477441186085096679655354461671438285882481450680364946786875532440997340916674066311251581317843773603473267699889481309111691899147916521341187303267048762033765089915466643417587744005943729406262892625758481732402704991412894932432025012653632107053210645991854635335397893717215859591941689005736511585079706237696543439446677702243402460120473907504630314008596250089939093553404882811362804620770147061402949836588281734895599272432254275853029774453035932583119267486674868819888797023587434150525427336706629607151178975685799432687277162778373662814896579371700645613518658525970816550000995354031365176967723941325584527929999139927109290533278013797522693157342496280156396439520004927286420759087165480155476602117416125077004356866325482908675635499523789087126773200617658934188850882086648297602486832491701736662278154986264465584180555671783709377974852680109671623556024613651544295670367759170450082710749946679699936590906222870024037981497398421742541250911516886271870453237761218617487337616506953872224974873509016041731914565487287676621507908015799977154371849140888367166673428056279680709198165353886649967605848994416052821083624013757685395144718330889605620116559054781674259882797496830007553747068052213760218713841082556435925282158443353007687924163755462478172954369593922946041920089426608783379856072381207915303906164475666570423322270270424267801564841246699098176872103186232383504381043719714848462634890489558982673337782956626944434714781217362982162424121183556611274821674806786871799213734322186616458511529729235820044667679923736753076423262191692236269354375176409381904836875315010312563333756691419126764263188909987402548662321338682461104940897392139173396954315251151158911032344557146964068222049792580895536786362121331745968391545100144815416201165813204094552518068533001578349513457348983044902547284369704213810831053459298404185644261634871395585985043434869976808328226096606617850216103777384762270254715266536636505862438902105311911210853781944869924317163796002924681206705356233652444141268622940736473178312596249375962908728407449760579672608157002157774864065322653289064445724780522301571688150506214273233491300064321662117283094450742373044309208583674393726058997032370587570597468470653221231336812596623322610143468520747888623142343256946352696061910023565503348251050073252561828166258356902956219676846578506925503042810973457277632442807217593771993594508356770791600228877784566084281167564581783535323188506659661871985109105893866359599071312215485234690535422607930543359313827256527251582357284284327299333686778226083444526362168527795823029603024218346694103669259040603090816685381585068436877923261274598729593813196441640701014489243069620076044672884858104623439688260602837808975613363351339160232726975840904778445638788952886171158694346163695434430961468085661124922065090711818726774577743867412800717642163561366215338240925123727260147889696155149662566665869109381301799651207278564447313627029881388693311251204712659447253073632418159444992506005165763657548517644361339499716955704337786777582200298280341500569969444053266713997910308575079757702197435203192571760901053694784845645562137029979013184871702874311163505537098725459140320772047586808216175468616397650276339900568071002531291345718788901789623167659695903999783858145947756805932293119771822319854264440979356351953344920998993534118275827195151471792322389459260331907650350468189407168574495073643831353493598308153469212429510782421861927338595489036283177948984734442774902168716265366739655210553261293467001022897476309876920782995185585746773918266089541904594343495175738080408292782786468982853327136532251990767696053639858770235176378727027260062660458089379818612556172388818602837249715568272531915684240509418686393668978424663074963412676258092839559167626006013257542400427660702313768856216739077791838537495069359767468584280252719931782238910060692617469651529873829025690689879257760694942143876446795616241703938818048573898884390077360810748846445648527306851823204475212028045693075607304999741049668427273801843060384015695232770437765753575200653697017996677505658468038362640385520925360192194208054138184546170955973157585186750354454541729152845211900997274580038985444954244909526975884166908396065565266409819782574009375625939699546379573896990660432831793172926444764766239997007834696179579050844210164752156636146976803329170743212650130072786656864902657732611033137850577468807022968171398045184436394463984554516533690022923153973286977267222110034573155641185370609653029346096864370569402503990580157150076784934926799294433167996901507891431473668739609405286772985572396865136245585222637456651385476906737415040796890463767902956534627754644472960953874452538218809157347737095160656556366264519927400342056814868108292341689540032473315214321104602318445661458232074665421478575950889710588227516379131978978267817003602058127357299483045796736204298287743498460188037663191089113870595624274812243169390257783020355339278587372096361256555023417637171850984304636544463399333065800627791459088900784920596578592976966244250789023534310651693380735525383492881762582293756235397495139622729730046585474602043760942576816642101985076440609777270330342067894342525770528009796154723947921697251436818823115159432901495733168301211632208428525912845499280902321697827958113571397944352240358992935611621504881873077448751323947987633759989738036107983837988140775898457319299733405861572309807361050395324176392467545263609393555453820863562823447381002546365023464874550888237036965461121538261422203264848661888899484491108159866778457387743597796367280997957034780736498746020494509670577051943696166192535172869294462689135684209897858465043809743375544833067832127344601782564351535606003457218264741164108334663918078931682499405525891792082288973456458645380045161658521995194081965082816227006442411269527778255602630299630294275029707380878833994327772742106769410859548256494372253646336179867590985284666684183530256597688670189595227075001198757102231848401428939517688774728071370626087859060161257026677238232611758819138295323456172623453931021349805257450584678171999553554961520508674681904022364632638593615034620152049366822748322536742019435718902702606294713300467189534500049317443866268390901157857615845957635039018208993508607570787995183049602589034228660682517489855407885511934357139170066209388902400885897022025076800261464450934863236582806643919546262248624988069189044180100379094778262729736925426481675378033208057735463788464711289523315113393423118643775720864886784175564031461679856066005125318460940944331289050309319951884127756379530590276159532126995583897526353332001074289391496813906483978966679997285376586016971160088192065725986355647480508320454078987690426262650804147164512993380845741923841782327808110368483712089900026311121543081683220668244806814505560164108725335057720607879432193423231970609108311973813491255505681811031063683662261207154513216336188485526048259911001078484545322346241160820225796625324583697332421444292623815156856221545359646418337359803530769070615635377077503685085931691675577755443886924951456708048808513778781734992644745894204644343485909322420304762470145607227508983688278149794706230123645949337586773811498610254781249984223037170184467005667107739255624711473015550085183328950002806318511524323608370456940005167067454626353768458206003387548370756327335773472247548932678548247518741482478041035593880265623573575104808474438887389166539445690375871875757805659686327125941778267793378962725851324975561490538057641842549312601120463857959556309232608903504885493019221142429145606548989465793280200472310460109439873395524326464417592274428656359909695173068894984726534801309178677189689969382762128746840655298754945970783447522057626044611582369202904593880549217731163101029502977159760785425903979829061767156726125874542824637840208011250613292415991445929770896374290522700429761288094338976133594035823778938398521730134766307907906519358714221875391894157575047318016186281546120997261810829125520938199454400842115533682029785107783646330217293970234552269509692909633360747261294906205138323067390309660537649871786405960934432033622476682132992111878177534847243846568681705505613143176857118557187592063412679056620897977176976365873912217305471762453198444270600264230609887878779515363098855187186960057806680663180261246404964681813123174047764477799335290847349327063656708442059219859732038583926797884279021256670369448228260582546080827445616781314228817342377310382313539485792449930680449486410331278509470578825389971105974064339002329520360627760924903133565489037382499263250836058813882217025659242095995170522886009886879824159860097879675431123768729471023649689248934171238453555096813817880765533170045457678456807115087782130317875873220167755726811941028490264527942702511716079532629216342941213715483664794898037697905320827752446600472811168560879309566436480006073133305999461119957428823553537220293983830808543312405797204360808553726139152557433286005095335347799133751347144594300522080918716204859914792582747913773223525796854044450053473488886181555522706473141014117050592342050167911210794844552416138865586985960781343441678422195980598133418685307771674894919067593993496190729110402590117381016807590369743822695309011497010918038050061278682393387832504613891619436133628880215521909554326230822998382574244149812353011967114369113845367779255711545742820887698381767420369779308228597214229575214769683350146833767277406237051813123845655303249086591065686553617001950987191718221656599543135678426974612281296504474154683156154013926801130045048687495664539351225942486617942246518951358767391560715188935119465236946028559756283031639700276612081992329460793456098020783031429345225642816559864685373632050343998793778084762281633862203389920036579213558613144953962684567307133459837562345898464112380013321598542997709144659590930774991315082985301481716656585572069190312174057456927108862486529842596404324079238966478561591696049172380531076076177235684673211744335415300517646546496233814622582958892177577040816947156778180058641738824587398462066564970763430401329422183607830204644856134033231307069408870684690961100593768694092581874229219931448915885052338171806662851171930579253300895125675866135942056092299314047413466354939818473450655708771086594445100147279743468862150126326950105502078798390138424743529833790829955804897631791883020920910581291603644981140058136574425406545523790954058534252255151504291551731947453584576180812734835781055333266927756348261057141830405534797509766264161403113804562900236215596748454379835771346035139563139308984166330443737828139347170881518512667814056630525379018581122156082153715526027927322024371245613734465176216548349669388392055348249208707319174060711646464153414910765050713953112382141236047129410072375739955510873823641644268063588592039307018570169907264369647042889460778374347465404825115332910117336788271892643118490491254840055460552377891739479939090685276900919485600094654863181742984365742109793700656641355938628716740608610504300244252504150531367216643828444311278714554742479508328908759850031525135264757659285775381314269363810298406984018484998994093195745513584264350438913453241517568377346787154548436370613987937474458656792142782633390057865441664242052372679687396604766433347892149617193488932256731892695098378298850299805360840384382562731501230241430621369796908934720196681981042801374983571029880343414251984961675212280919791753277556724969276856575408688707512527604254218466666166998042483821062640914686911896352992393414630243967830791131425378113960848552217172699588212944841574968336701636412598187537049948657675121104945730564225316176938780925951034501296084112984085515709070557803093749767593516299428472929569669002279895672626837201584285104917461427273134628609724604188363773831542708425988539306861498261760390512995582778329589586163115852618689599866416773972933348514597889383771997510720054158415644443073181487281971835056600709870760555245512107809068384147518413295700457092921274124841408303192284356404308841985136366419713866334334250412604114713696562481720515512278067635669374311279128101117880996969334865098453651823673813240922882650743918131297884602173456696582650368076641370262346048650905119364981652699963767926311566349336891496790993072208392527028896061542343546436347001717448106383125472223533110865558330343352081980594687224192554556149754288633551175142248674851586473922048686395603071099128384389667293281482724106917866497098743711650726287068348533445429311177666621079651009011430407134577887474464041614391395935810656932930958880257446354650957253039521011045474703883713221629875119621452922482991673289497773948979716793119026623195937207173867824700365207444856686436499093424223268365832634703210833687591471302707115722104843600684312485722512982903365324922302831845985617672288508603447326070162404303323403903827438407133039212467324230762326944421741749370194084043242886710884056957439867248158376255159308213692243051487665473673786651378817393961840390245457459584281909715217802853716056480255086058092586553742766110238433590678654893426130290324150279488094681090603412474188943988346835886691672196454393370260379025681057456953752437200917434431740243977462943222681508492952776545491967548825806499906123400804518208555226094311120869140421648527942500333074679298493967717000041654759749751944001242029313171485064049972818968082633758010119525096844498316204365113530955600252938735687576551746149840315365956798681101357493405994705882466154627561994139843174109249518659516403181536654891314618415598717682229600003693248599236923274985492437749857425941180298173290073879612543948900992827954454485026732145189486696967815110808196214130089524099122476849667803438575167891164662334730925328356178566825366559810933676129269192606472723694840406744216318031953731690435704111405560726085940488712074906983262924221195770335353106454541788808919933901977320137790394085124907496084274951324809262452356336797935648759721962803194967448717393691477222565014373862312652884106898999035727714137900295933536397818855619377884196099768811857318470182497395694501066382621701142980676403506903636270494576694194433551401136893448250940041634840271329775837954619465949392872107701874003947959526119475745725375696584609749839793855847173547136375899787574518412548717165290601329207766602493652452682936165389372101100038722419465475199155307879663007837993911768470173717061522514392417521539756484185576161511067609685548685572573269239450020302121570360711181267619582628987845329961992002330069976668764747542072527311905198038494525060047431469392282122818811001733020840132456434071172932437251566382105108127781275633480253368053991188246511782114779303184740084944326183550063467590508466561290228385266433629500263087143136690977577895778506436908463094152470173081383865185603963085919395066405392797502162854079813901312608682619315065515924604220882158812290077632374920323900446592092336506554951243539792792262011673238072790378980117037616563926486791186304674659029262417401460955792073390412693161158221829394572784118997267628551975940424226433884366993301473060722698779604112953761726974575613815913292828404887704855099091143666592210205998736291075695844064818865545896950997439006677282569928097584455849941023495029110005206675561145349697943064437005001588814511746312205302456872974692607988423515516791657852438845468582303963221951056910554443103549344310925143593366351646466987852310482135159733935760939024919188689032652342501653362549491673706354714819479245249698061174663275454743343001890885804754996527777945160681208460238734214186959255720463170744640627048003473896930425818230522565810672804922023965039227921930244291339078059468871890705301307171421659357406006481522310987032662075338040741222796364451641968834044292577914769140217009346344748303565137782358423226900654021551813459708898532788939692801081250305702567322712772570635460102809925869643570461924912761002437215010206769371324594821598221727670530708482948141578702476047048036466081967888816840848071175825341237081084828641983439421369550391892493114140136425210992797934322976872955906853666729395304695487239097944531942371533969070814808484279865551254425533152854515587700560593213907686747565662422835082567271481937494074780091275611313989728426594558526954478131991381142861994019677862098835992407540996379438129826020512894977059250383617963502275618352001125319615284752311883940754069652593795478248992230791230550174472762894000863222737368065423249978089559682344233310722508333530745291312043380362570080218436098113816515767726993748513952235742503436881543813434957750406412353928741624729869400800630306137925036786642754369317746044518178547981363148157493997512075829196367470781413904419133970999822724584104476257846032871203447512097346025234556427080300008786378818029615049818272189251488990302894282858684531837548645437430822053408555456022522987752149819619639249112618803659819559952788431998448005974351661796567588547727354211591912695928904272719654562391687975380254641452381032963565968641003563863277119234295631927268064216324251081280435082490627507166538828572105235517109318747396561893938776310160014662883105403228363635448198563498035665615442073720521738422918714431816838567266545351243057663897135071431035678810942277647933364135727426811761877601809310147065222805898753159844009328283284776654954593541110638699147614192957910836504381245091641265726046292207039027225597543985438872105368258511619810038537958353038563770972511853393841235466545667615847854984713626948614889134397071142054414557661254469388033079200975165959637444112495607142360019142177338396882454471874284753970499565279543317151077591885763790174901453222235033801771577736212268935381329650477259615601583774942272466747249654039770703213309658353751430887265018558072150391279412254425554776012679950209231344012431085076706546252417441626725117202865889999015947567586711519940782096537290069459530676580727977477888114704671952082249015387000930402156871541705155561800759647335743023507031044022007748479623758310689447977597438492623517046164638186827876635518196637438894222409149257159305699057001589207712810270208792232946026818330313205500536322935420933256943250669456760482754517758952813340593532301772219314602245715061255630716433943726961816759295683226755291819148767832938878230757128392171381436070948954721844375098500034512320020094464912931159252193873710089986733019632504340050862952710146690529770380672957585240738173296303043526098151780712211663285881869342751597808089055264632970523498130931079406217414042659346067079073709204298515427761847603321091455989827408759902797364403828523523330282927993698514187974797031517388106477889321514344847958624267307600172451694024468363978009770229893989462576347114999622697846443634075787362144666140288137424563765231512170603533049332464327658286710910373921422133609962755616636998555513457222529956877753806948320812554458371597928686694572215417479883179899230177843336933044059839890574143160196682338040789016111384124596434923636832050403583494767476270939887636811636184348899909256320149138564577818586749025229606648648006344382630063756134571012228289080810769734454603757162853311959975454141743098290122186657723815832925491446665056904716302227464362177931535624412132601634261287083053732150130678734915802109892566895849540071044053495845598121695702570129233174089442833708892121244556929581669455432303489127833377518746052132842186672499117991816446499076275727263316689817306670869486523183468856394093098793779494212368317103276363533436089635761844109003766243534551862294852973324381218169013557283765092699778570871600786442355180673913379345654281203131619762690989965271960874650033766112406903411419608326614684085275156053840927139502886744244503059999422758615797239505831030436252523695070760711545553342246455916370513443835023638363855332406187969002513551024062686251266749323118672085754741095113703549795502224540945248644294448971955034030730566128101010732037979217515494904764593983868551008153524421926724069353592020563981961865058945162570513821977425869855205312047565113925703576480271065445830683983073807151696491145043432644043657146691306318199906327028979387030253731870718944814047826393926686307265228916204968859187274142246949114043804719191907856384895974437768146030394306974651405545964090949785596316265955064610784871927111382092732104826987769473494475896038367250523494295876539317814603380405400288438593206730300607381196171328675625755997478238050655476603975469966051602902638713459608741012659657137347218874383152801659400100850311741474217148020062025954903199020907887410694036493315042965180947892549732417333081393429260306816245748299949638951538669315091198387229682901445743921562593698754802977669987508648741481040205038412555431531332828815668191233801636959659990914882759141516798617713650699638961924767822439907964824045026434768827775734987327933215565418211110539434939456294407610114795275346619562714474836483714004250428353470336289822969071412309895392833751378418015671370372466239368423811073939903296671092352227477717967603797767672986790832558051839123414289067141644558744262227422537076066201704935218815595135510576692849337956480977788049547127450326485326732149224805484991096792198254992795008010873873789317875733630796820086548642848349801596132054563054319540907090255424872060941963700953547912976481459112439644404201625018208354770084685429474020952797657289304307711671466344158053374822173500697462175665887601935409881413057461601160600430043206092283388221308840167272080870196613513642384037024424205978394068252625216940814225019379382557733248429090696898751099997604475823240738255234108170824110744310570290108779360388948081284712069084153542212010746418441494319371720705397642294554768999743467721383323120516439210475399689344663172377976690450958542170845541723299450299958639393859519397351893684469124579731076971177515134528390863746447032317668411996223682076867754606232347982493323426936658631963929416273032377490021553896325092970037620996713036946011691043593857903016484035053041342951969750254053654782154472432873876374814051739272061204890893665807366174597100422627420581893204915899420951686776698381665634875934176982505923212940148989412496675542051449905189481782972868992225893029279496444325059665110818213654141078472648133593162084840462705777417053256325297100219661425699960148435546586459588073149246071954379571374334639916940405915124647990980809645546388091478308173378343963848988413659466707979837250820514489051253868434775653987043480918380416257238339407824906785107410858759896132052962476702952590420999468774771783248465366238984607131791788564526504624566436314702614135309864864958974782785059892900273936812563588428869421404659014856964985343900258153863001098931037342252123017627507177837239470184617793856351690422613254605498065469485993053971903001784027204124287390138923007134134570358202428231616895664442041889798428838517862276945638667147197013311460536824458176160528196954761679342843665428551209773557642892298534877107840244482130671502994136600205899373007769957149204590617245500692476889509411324988012608832538067604573569661146414002396039026694145841587405814543904640191781364227472302005764313096837984176330345870527837279168205887928275223673256158762315854191480410012245790147690659051992480832126685842242037323914559832007254912142405500256375648861460292244339439223231876794964987876800839892554218941390269833546544943541681767755221408662033905434618507032269276981903431005881796629210626527578724400365976999367857848266750488021983593111512299073203226560905937010680712258925568118198327326354983325282942648949981804409245801853297151061580687144605120042558651828053424107514481668838592325949564404900326077051656174918540921228837002395968776713768756813685362919929549919898480400760392301922686127070708346857575962544042597705372129137737655749108176507738428861976836975779605133830706375961492484790565880843509049916072150359259740389512826175059226354272330234578955496657277110205908892507881406368498335518683606915932153436348847855342615914617193745000395029456388961773130322627446551943057606550826257768422536549327868758331302194431876976326611178599370908518097708730097985483326516458971266055826079116534844567823187334132072543995692269731838984863237317561959072723847238461249560358079948327408085962451384686941471550911194341866240359278142685605702866856415941423813072631450159987454273302441628461459583290469579984422180189125261924160890889498568953703273147887624373517558810784302973364324117346312999656075214925575781434402766244392463461459305037624345036626478006091546247794051249231969041807568366221232897575843344401812022441267272921061297580684117983577726326029936936628285551156991548583649829708295798358583638781818319906847866271585457419430438463471725322216476428576336592539846552774355885114743446774129747206174271910241472433926576488160799137604506228182911163756046538563334608395323914768271791662933854480120954508073839218748152949028385777800924885844507246169082397275512547186574583115350883795500778454820928579000668166798402895706143285844721843779445024196602051935381576012549379433565097967810686749551247245333860238547524780449733289768645672558631399112009735682710920029620390986039515336983841834562268340289843181075015729297051815453930025118151411015377649017011060168871394545486811049884945042311981738617473219852464864405974845769829256510667798045264085591135632600472574261334327808744393188862788825325165294077590683528296821841053623783409210605108351510961651644868868438397127536775081569268959470668522158724407853494242921266834736937913395430334934185141446590062391805455887473701480676980394973639326027154679811466539645851180819466196054986489162766239147288474266123971318132245057126626585796068499804649640166408217686710323991675346404946936025580039724333879242962854086953125797196580160749636657587003726797012241745086589249571319596809328348224766840999230571511979645315091839476112920988086231317973826495814996013043240390678809384281015429994359167923000393985878875928906066921675307571593249480664922464427873603127883154514959884369567713651715273739545523536267106481923942846308717278608525807540725844185993002059890422088557121875125693725878808044522146094386361451344502705997154316284498600106642901495654911053998631995358689813612439106589400418906065328305921856924964418682677200930953425123333913753524608842524354804074606622124580353164526455675234505001611427404347896670183744463410630713123742150403968986082373336377281653221013871122331216446603146236554061224979524600016735750460468825855844043088621567305460317202558516119498455783293918785208404659497586770215700842775970195827682447068559540857054579516023190086775558923709421009488831819445305748705379857580875065529326037730472572189861568929804954772763911092778223010582582877679885239688675529987314142610566365581696833601824974358246323381766525899543396307494641021784325513860476521777425273233840414177308443110986519550898080171021097882614720200795413264303160832405611685525906540998556661209567815325204595350771264486734406466980446810466439945525548782352632631520843640804906673258187815133911282776358607242340175716256412075345563140747713033352099252324274641211125949391925196698395138269351906539500375453685302557061358663393019489970410228616078005268606324149323872774750104644358832353140075123350373282722499978886317528875519748038043743462920919912977621460782232903496419501178856032959932531556510051268945647856340721307337603849870691945335387279240286879460601176663040189973565761681639343658331915477462767377712971147330489338267747806818777993004362571003444823704724154800537594493291891969349724697857781242483909575331832730677966763874436488262143413576743868360120869527107492248786547063845720849049735472576410272214295898908874337066864381834816977134208189019032260704121862988889025995229085206533687417083983546959519300078715732701975124725590604329350864169932398542944960578066722364367739955604600133079644223634129408134667400862594626068795415891481377277675237839376670515069487959823653724395861795536329555382541911030607864514805248935376535557133978294165271940321568173354538443239606579180954693898638918953903302533080335563099735573762639990945664183958633872767497581257011811049173681132988021416079567336131765193518524203340745322187791907252981072282627978637975872041007991788894446689991826331005713727064715439045968982122765890766829851193535657807167197298847625185285007275466771637982463840861785765877233022650909973775033896621761512234416012919402624722437377792708397985827131055489289285527579381100947581409255758236192243223281350055031736491286592233469394771442384661832372690264405395849436239039670062207742571693099220949530699305665877346668974277428601984653157967806917010957022283557965151878162598766772784905941414682896691483244557127930433869111281939634173984612807077440021481286484003285827545568714490295350300419282318418544466249836036135942349957479333198506926025165993782396617837458714481486645038109242237266773438898263650270429291308178144608200631719161747557656465728034160067328234786210233018993438114788712843545720707529116969730541495783481308492809985331073821554838797781192368480121373138021867053765288094396764799244240261066998001981757016831516315415627906333109441410844899768179349552213952414104696509125405554995765132299167853968431298015990957268778328374062396029724072867378115135107667172977204016490858567883955189746099071117020229229310206024544280183073536613166257211977691442024793725667716078642301058473865868993962530833497628968819956378186028359337478878903024359024350105874435700276221790412332697746471390302061870389025864195459953708824528098377983545007893754469923583867806483727045570580176183368041509864990094499211969786597193872296581627093323156676261282606868577658139815475585115251264366512034760547142458288389531281337602859324390281298001738881691905058637759043473350415566405011989514918206515980814974340162517804384488632213927437244773629144600546264615065109930748644500579629183100462835729611494419504572325415782226250186465146926169809832824321609552212214664206247120550365773969630731144286740286231036617775147860234637828516261186628918889618506594135885109575304793663714120643557844010030456630864972802853789950480546606099341706183055599149000291295571034626090496730792467584595583667857763253202182476771814607371284506432019793897878933927167355424863061402037550419320181822407362884785316696651558842621308726085764881425975709028624882649516236720387551136789318468070208201398031418805418810958427235544576537826878076010811614049974232959020800294005490121999669425413653599355884710477032876918798350601544896313790976698178494768611892491661979755986749870229942553932868379510318481485885378469639192691226608620949020538292978648799674720964444061992424814556076800007730321060418635990902157458332471151462430544598522472086635660228760648455087896770737482826448534639400112693481746699163472117094334166909644233880333652510480906532697366286574523024165071432103074429458857237118635371137140483311395589233354256707916729343595198613601362082170022863267839751251332377299833146652192634344286441057198365579086961257971722202687269833507806497652675390756651575890524012409990323678370768029611708157644739892751694588183295994305194434086142730999094958403394449242646860567517541403988166102580231313580948933349421708782661196158567911616258632680891782193806221208591605499907532433416429338045162376965358550554077313509197297906250134584086647865306719919096903062495483410597631168728599563807418462318426411278158518622399226774233343058989077541432550206875971475544473620040535345270177787609332679475522631169168236593523921359743069087548437695977583279562719227525980605128839984835794642065740764773381763690080890765204190952268530023231530579267436480064561898626258257830105882428958843934008619515981306897091347219763234803214188769509483292995985310067692541959989862436816563387947639696084966567006373750654506616164797982205667117814257887308369319908684406005890861207614255244918308961506470033158504593541406564994273678264427673311968253900104834650229330416406026945594652733158075398496064134169230442256242642862611939323089119598619823340434909761373420782090726067614370805065620965081217181634361972811368289820928744107222709059961210161960863643008464319998221541163587332661020107791060112556301474297385074981392647178425671962906799157702950575082480579683508712697969493914820599248339326260390766971172520238985374432582874058036489879167788274292644560501446867963639239448411235241623264672875299878587850226140297847599854697246457536210821968823764698412836452355369215894846722632605812282979776209476241033935067302334608224237099903033953867121333019784128707104038321007436209262300201174265211255796986873381100944601989462799533429300204534426307077663121668663652879529780462048103175670760655610673473922521875914053886424911072475164895231470306907652052069282412985148133917756142461056593681181818382496591569328880068168583846096432669241063412814853484986386711418518481585993663443737616440311122341865804164459811782643089656367916429175577389404014156479186285383197773149541340327598170688258320451010656561858457878622218632465015701805380842301626663238561773924988450610743282344049809974097515754989931346481660238090461492654072058941840918391061698921269096022855434717895469770958223889585730625793930923701314837331793443121516285844274031770752950671964034736048041755740789215044350508326074622419743071875216821339359343491225921937703870853961686707478467752483928678326993917638172826668093119305687965150077913902159937473945544603567216955910305652580253374832558749364607104037838922739846633320889823923978591330939136522395787941413324829700069228838515464138105360823522916813847478070182700302699468922096431851817212722868095116115148695763500406176992403231645295137070821530503167002887442120124318546582430086942506135821240616396030802048178379237588083712910394607494360712152758895570521478456438643283753177656260963706667349439091549354932677742771000504651465473672398278915062189262727788741014707834226668619146531253404740097236255386395029613485351447183289539337000877940884543156012572244934096301982203577295309129328693415817446152816321886893900290492692257981899741333354114720810856942665627314555468936673580412965045624015748486630652097247520506853468871914457409939785049211174214509567874142269465119415838537095588044846563399177304830605848535137274204477489212716200782940711566789919122455021683536519269538039644447264159430428853530395562662199184517191590301980784097935471300445155225836090651470818138389336154010194443421187823880463063899060168691827621098797668976703691603768545521407264827319474880379851105088921379308681842236346011558965619001883270321513105009287885409037867378803244790166349485800537831844931061766621026989037546984648015202275820407821071277429483022342979812782178354323577889232425841243696489012944035983284123482921331132285648770289529941602017431906298629024491866319186204808794995359658504709412877118184588901800153288019063628927996710149170870176716152359826412398360067161603306835852750954574863809245759462221638384377633401862826163195833357518133892650675317640049883981809603947130362212592037727180356762144222330849904593960299854315322019127144378926742085645593357792023593753163391637627125804440975971613594113470550018213274202668362647249449573919512271738104635830574337856611810589890153869727519795446701835600155695801040985724150952235077662199146777888532518167012576819700311261388622226419223973271921363854031890422785318669861368895716181318854393029559030842845955324237861652976920217454167143962359470765771649446295899974052779893461428827339100609973563965956828586182664957713369852344596322555007457782973475161454794223225136529524322227157524050154694408612686916267916001951035326385492481108900945846413562410948372515391656437701154122892868472563439649900295987604866156731886449612480735543862944408511509988642381172433750025253007538949825342257384514080444668170120824987023974431908454623776051813213920328167317194776616019709112511873201765344289097229829972106017550693227180789945988896166501351150674432788719178634942957779416603591378666739046604080516262528446406378591570508818735012820001323021880046043057343854555490392274317082212311636570192162706301798120371665432211387569772003874851246395764480275018641033417853061666077473262922982967235640016809889426742036558807402086823638892614617975746121853107634191182515188169450945240802434108690353686265669636124631664683842174279405589646720086224344885148124139743396315909823034655660066075054802819037207549769521194192171539271921990346183165398077384333733584201190501371369640536901392937419542819006397783814250611324989131776315853419190456066640158338608586090663328685343306241027225695967872328476665799835922238275665777887578441805916174772543458894288850375962390109212606134115461939292058032267234601304170617833874977450413693131584219615394727406549828360569435407007110140094574445383646144752920964837948027708969004052538650117760131193817131149082478671848717830455290726173492620747664719009927343963975838126968512586522392053434813757104456846746947191313710794372933169128515659584366673663782137642450437861150364619509008174442980916119617988726940958742226297775101012492380434313100295039435161587102886348912331666695345807836216609916527877903625088720165042678133228698403410664593549918037502109974949942733428447113918658266228552537052284041372869637783110672823349515590808285917638441824272451578107357599402723243679846652539302304336019018518058013837871167999880953152138160906267140022523453203693884726174668601079084382510808840915666230255925393328495656749540044313078204714319123908492768172076821964854454047689898102188578358093714870435031382934244268725083658204617374185803224543029081795402384540951112466486333342930886151568458508506294661928830149059243295085710246879339986411025279837165403400454599127429561183757837108796297378979058532066298063003070201976957263170192645682832140632532808570508684536683152070390751071811841315015258589760634261434089351967368702839202037273579570442249264697156539679032874112660807473780274150347695731515044289931394565027296552527864168502836840783066125259935333803569632970987991729962053796095052261539604066953433025118107803559166502675474362618745142997036962616783166378381474253822827276957226013211749442698600989222317705566634954286650046606589923531381262371486252349415835661448831552231503648192684298617917730301815706515657284490448541140170922988525907635370017927211456385098564665730299012990777516791659833074100389710961884040580769629135152061580638525787400485694158479200583443404411855410055426838366887834169745352848088946047571690575792685759155642395685228394338131999234498510410598626452439570812696000893733199293306455658149834997345146999237776699764914838052871002973003742346205804688158208633842420796803175615741477624888123422607590637114742575713441291262401202135177334995007023049860897372371008111902705352127267213816949068062709775829666829296311557989398988116050911721776483688145564704776830291643169397698251509762091269604977680717413634094145512080512590569385731248172425501438604971355303967938066541926520559911038097999628743162291471084535834241697046298924445746065731255086007837476895161900790681167693150842636465374980498572892972385913432413771347819706349348629236424582008027251566903719877316215793989659310902598560577276656290594107177268116696733254567942373621381265030916286691775524266118802542407311143617611527306581747360580466557082348186993027185285987867287545532871858170686281652911124793866161426936328860611199983720040726514439992134304821850634100067290283648249290536956715177699417313001398909829500295458188915898628312588635717244171241283733050269350637385040917362844157374133412861035003109436281250467048961815351208034170879690877748900195288044600085522534877476667651127924327640066263019731958239377621360682076333874735111945370608515908024943370563712723875023472742552785903004571125402419519179065495679720805273521702495786620302538653901839392904969272927376635906458157015444131410368382865424016347224913961410862786173941419812163033569472838356632256356938678206754486924072132934805856380174525951425198518233428648518340221902366327109855395077051114450367536506274688070898474619916916567364979250991356617140623042642664129646177423606353177839145859718477295387639881464396763618545778890973257107474372445053621505879572907250817029425046592042735672224632858530047853209064703303347404164462961438192439522259093429368012050531997684928745954118756343562172030353614233859631320944938782087852035200876178819342487428408633110724684687678269447523422505639779041824887572194869575272322460723128749960605565527617685661605672400618653370871928831464502316974157726903591673517689150122945425335742014259812755038879007270039287510379565726718238844666975927819436100125408432995198487908740434807301813050932920025310414086932330052579747424996063386147101301878081421229252400661483361824376994298070207654343574787621545562609025607309500038789512727779806387089215502240702632615531116167156999235040850527716556210572312545104123364794071297578053912093797891188345743231069465593867436024167478663455321542093310669644622059630894121076822874296811137900389214370403048133751764910597414125612726884604437271904347223872592791427243036854962306597006042426546256032906169279892978694399213185155393926533590851179142196128845073028866524833641725817690307714901106564728124745054232858404937581059713995366626810836788581479473665928006345244901283598501931507739636400774347749457910985358204106318896920438750611269783953010182376364927757212470642499743091223233189917081024891598923538335911073141815424346737051683645238857955882243116203806022409023579611178168387173587954813201719451809190176923817813732843550731702728280287455321159819605016872288003639956005085070706357066215455717876744946728830530358300580779243167440415675799522289106844013188695523953625481670463253701378757406309495278068578118812569658497609173224394035020030233159177422008411094243892504389501825384678917511436624731007130041667888906633558341388093068826988867262434239683962639945823848223327312893185450857016559034149304798311754516725705987531758408187236773402736562515385783559688774293632688897828218539403891716613312926184575429794768911607293208739936725808301647539815201894177483668290822388458787378211177146039156989973869142742514256979809853737655440846236154018487118128637004783374503004535931914268074424378784747339557168520486317694893372228066107360890554714377155464817761180561430203261380965537143151360559169416433812026206352425950803653776777235450101138209692582597123039397244351302023853734568469395475152653096252652566956688692989053369900303092575622560480594862003639812397359102828982718859391679210603996715611882463475809388522709390105521294902594426106174382831834561137977332938716569855956629417323872991218195346985041583568564944668231841477389827806721383055151306399772251028982929486132181350872451028991113829198748597996764493676755527529677710760206192529741214962725920519284344848744530610025876328482010745866965427739064473996059594650385928775269794193554334366820555811066915436482459347212347805612210572270929635326659964688911386430851031387869827930893130207743324808582011928584351410089440414676778349367539075689084850946276948719897728563002324715657361181506674316671193169250954028551120561109219284366932194465644692937137976442533903924385965428343113450605563916396203281610061012519231074729539031432264291633705672387437785933712061296847678807300015951603464891597159033292280216328153377977534277849858423787933545830434080410207211273547046014325433973688835133993841128926866891328013095171373060261404417119520429952531693611611635470468903933408734423705612282164887990119681554824974337508984648763109779627316514793312832780687234934818048706426417650440505193252372010449537489719043759076506424198164367437546279388595714222123827028801262205946441894078756520861212484722793646841040021386514350279900493338658459119712952419502749355587415619924193651512672044073771636075450199970376490219838310360829353060170967178605914536255159061001165235691562335776614322128110549926866402739958077662707644071171237741250136429643960695325777412599967013458263249769661308074392776677527935621495042581819241102427105239576510789896930210592747681537436707696963088127967276203712578571137583774486702640363739387221292659671042286221664654433322036733346082094739540148586114175933647076964917301177681754489502541950085997297558843606997952084502028712703520740765220220066670298251653259409693166908108524279445862193522597840465212133640908951000029156665016665617008749267483752291584522410411260441824800129800061933190508386287734899418017208997684494940909490969202692104251042900570348406063331714455087107439331519251877120742314525466762553809324837544966499023239519832920348527307787172402888560065766906606887166901893417662359814506835896833662204027209883291416535471359101256032617970644709092607387638544901595927798586816933450837901622049107267888100527210653699517441664087129169993624667993130650598216282105222477082061503253614273656025518466899746650813826645902786231621887021288434855918094096668313180122299984848929893850408714556842824658012817606074906750953583508170815511068617073332251875402569635813198502588729751234441480661309718096130655856119540342575260184646492951108144902424318631235712282114383399603046039796654748753618255581452833129146154311355586984889155670586903391226028695375406756279520631697494826871233992611688826506168367838954576999356542271800821253368611351613414316325014765935209574794607117731317124730773452685496809095456974567605651202014220970499110705111589420724004808852732333684434769258613471200540917927893166745710126827419508801223903054419313158800031504174155137162755640881172861647787049473585514801855461836627814944614317592306219781540339435860080996029140986960209542538730458223283169497717478573690544914327964896804150251870527102039726425251263099900847919097984979861584028948011554125005358539280739124713672587275318664275028435413213188420570662353930622818809490011391052975053075110824078941327642504979363611964032437604741864780205265441485443233365889569876878228986205741381185145601726094564738340994904202626924610357419900802602581755817000073722940671546824742317554706587770103546761851251537498092218076349094817239093845411560519254717272953792579599173439575731116701597461327606040242868717418172963998447292291860209026330276046389532452709856148708046910973485651828625385413512631173586813272728777403553497533211922999824238020996501441662768082179619286187704319998019183422702503994518878256924262476311323228075980153218571915329168983482925878343787355379717250446498414467281296314368896269269607345145995497264055191053524805655489323608065559649468122572726665805910861592807540820283048668197818090994616161865619731563324150217435509440274094756314633706033945077920779613754875796976754562147086150025898599241011655247778158983727130850207105448847432656083166037638278916759790962144452394205552496792999825333192643303428748536910533435115394443006180737648787839566729051382193048095079019378801749525854050836691357988880475627773672521399442364415291928805605083149703640664297843355549414854355202204448295592352635641540135443891753191822171768445490743467609094478424216055872778012275309040543145120573577237894015921307237659010760994141881028455937359859406416786888788271881573994178585821589559322201975796519987825717854262065456899674536875342869689427234503370123232372860851270218140563519326726178696754632603620245928466217248491785420662199623472947583220456825343840923774525259234991831035516269172588934132334259765246619398089709281873713389999097311932311027343762164552473401624832997924576243626719599608657525788240673668449877734979991474684719679038925045223163767408415095086465293849104091013391158365502593190148349688822176450993041568849985168261904159485460619046623299563321819132974870322322849727208175142463562202565512998113536577208342531422298181414077108662291977198507924179202183054857313455452801353668177763610772627471479469308304578497643333467252228363748754275769591638587095914899983897327086050775277587094417843309585462273475398920012070613357147512922804890369083810044923681278400764060187665827099494743210495759670611296307022590913267902342509888588913248658072130952449333306112513093005749289229141033508028404270738788728641495174581234509057379522485233184206383605071144632732064064968718342355758065940456976297752626570874313702432181881492800568193117535293598394467217359547135591238594295526260866474186946841576622094988631964085050044808819598181789521840616034474245927676862261242050685709912401013340774891757987681820753316719269904030424946460141271022806340679521665955415660330780366064168851708231640012260017284432385365524446973626459445903522097458172230078287818347094005221269463868657154492121694449174202228572821085178428114982824675039358253151329561467687276855694422928462393923086556082790947376950735316453252490802034550013685504668788397079135263084173816262984146340594583091398027754621556355179980148392911093463209006491800691157310209819459631461933749559550529407103133429260248437911189872466403789431765338359960922603545818970288794757950091783483639840791196208820207163403512828105537671849083453616577857566522183681262088576102094795559579246627799836143003169545485202384633065317620558019570784289447518503689992120301163100307578750342620955998429382518795647517665846378370051949700870544066676235453313641372672376450258526881558165268488601797356741520818989447170247461142407639642076613050619435756544729554522633817116897509455371402607873997889402676354372008901093784286459333014051700395416091860171826191174269566387034285847138781223692659834140293806527642527528523776339118216554173582179087724128320949425876218187156897469985245013798811792200311465881358567549629712424261196297916910176986539138714754225374594888090936086438030121632789200056970397901286023190621998835892327245815751175567154860581963954180596542557230442757255207338100359165801151022530021483651482350787636842730259865732275599328889195156300976550478907723374162759121076042777934434784824293625892578002836689404191413711118871021773744696318499645440416791800498266335864659543719889748935581413977926785358511206254527387061222781093645247174037613511909005209736509992297272973208604866561641360170042289614228874325442271108972438979181241682248477249680392892591460525233660255730732653244159692546634121977076328774326738483865582754204788362605429975225954562451881829826051472680484204169249232715273373652528688706865496109003686117349745039346147141787055903651601850135791109058165585758667168978427507716973597198414434929050843816964143786836814381323238601528526026973100343585654732524347498870960253249253610099670532936414721165796705380327304687163172276863588730202426238697716356621791369652603344312671614059202643369047507580829412229505444509472796515040583239502848558373674462493915085225213666508294463534366111175871238572861489801730201511042500551714007637962485625670576196581233806754235427089704469964076289392072955022419906777232153219032216697447745016939737712948372227999392278969264998781945355711967778334344418465350939744290261074770687323702762360514601315200115860466187359592186287657288539014292316903103396264212888397237857518969968125972363413633592109158253695180771795368334983041581352461532764230601378190233770724462753802932123479973996319730121919335821345836857744386306771627153943542901171691288373914212630570633620060572483151788706177009345131578704171524380566808506205672245034285727221091607060188925054231671122002660092415160742028824380955936375608326636880334459123047708574219346554224615250399081600919008866124526287669121117508227458759547023421924652106292611390824270252255447060943106365520638331167210026605247836027656784243876041734801392223987996521281341150590805608665612028295014824034569795215700670088055356124343377541773710625589951854398844290385042766983815106013232301280686543539533276300997222526307465735987757184488191020293656008922272544556559679105819856257708882117210888949681344189134342886140676302653331058673089115154037751995552168188560577874776161840945012744797452353302463573530609314456624257038165855349843994045778179357368194902397593791137116630312499692508489856517783587896796667496270751030899380639342422789085915728764581017391317455654112425029822296723306766029568582834731456727434902182273037082587543332063877117354147419636057412507467904673875095372796386693922750385532638525736418862381715420297965085583220923420022406254403944665437457021351868224225639841402166459066083597350687131372424366869519347483821705096223057555399996066718049284561498592361386432750846197956287620786595847921290849302891206706280876772326949225011424888528375577278058427460054362668194185782823070243654261002795517734885716267005308564729112397864289311838552988586338145387836323848141310668809976743077673916494613563220181662681739178515549078208095403796855624324410945206013545971375589860317899105284617213950540212251425885718865288713057674332398139455383470977289656726524076818099233402891603077506101480498937681490099306282850715104732655657479315634349356926498286995404592154740385887950551125622279163578387410824956780258524543957249027018266672940346373709168550446663152854494979110122589885096384685931811761938750668218178099077435510903963479652560550740102205346194500660269185088397600946705947014421167819967309088625131411493506576067266041922264420161746506455246651263893555005859384008949854133420668782843522465711425024511786548504425597662781009788448416549870904804552880853738255547411675548488115341538612465191216090945399552360617864880676648310434327243650886720370503462260081917565571342395306701862126978494936976851698871259733149555778574472635228761532087933501170851787759498594484587099571621093117458403977826393569050294639042775656465763445790098343195089678355920169080686994427247276652060787261367090028336726690156020475262396713338332610434061736013174949515266741242225706082238837892787790399806134576042414256445851887513956565429659028997069741907159740335438568690256327810258060738828659588967218765151598919501910328418473215850834977830543406368050933463969565141361189855601338413079728756452195646615784858589733679858629892480802929251961759710186959321223418645541737947622749892644876416664202662106562180535172070582313319057662487984101804111047667202255982677692796146526939746950801300115516968943981619779139827162916204265812497769411216054633956884698075591194699008658843443917963334499251377708654533912393804711501773464159835171601698170563781290147190781032755185203708390028932227574145678032118251490197237205544898170348750306060102252427003478861067827531172176275579379038953032579841952170872558239468179673926686731498524048913656863755386219025477358742608927506839188743363105066276263958783377249966515136923637335847672355958281561232473101394760578120053711794003460997721667518967398426502034662419572283048135887114327688466865294142324692978782209501982419772207307062518665937091473575849358684486407303117274910572095043395697837178488239494351104159249176922558244566449427854392951313323055918083686501476777622203311089014952290149118042946637908457539634551259894363256085159450027480948270311264818330777338717267434028240845919139726074421087427443018853029195872833258615586722815290518353068613128252424475919434540754076153959943373898563727248729846632465980115445251187006252881402226387322451115240330346181499690947098300852640089778041891473712300802089198549614356935416385208277611285486730100526557936562578520591684824616231823730848881720767289780763764440561514094073968897831590589006558515640751460746550994837333865283073288428483629219927185808203199758765169528823469387296441628505610732039454592276804243254466739228535322078703574904197442054849738804276446122993811308082395251336719447782329442889964463741781932558159287594408584527050845685450437431594324472874212375125463431692317078954293606282380940113151751552584215651156999794309981827814784069965541430484456332849452430324161121277664398261053433086701860411618034156139101913913388495426680475178635125674874487511284340985914762507930675352590470034320019400295903304047755879533179160928371355436044816635997640343273547163952530860888949279198017487933555190254195743853647583881078217675814156255793383239643885609691638568198641353742631741695872513416609220772342800315180291390614764111389911272040202547459173214946746531618674366145945759002543194276959177338448020331572618803513433916310471843698545347882884553703950886425900601961403935028765253113005267210604338811331398949205772817608918568437641439752097277964159117295907778937716318727244323836844305897525924934256624193957634114706664578054278009210894680662867177152334415958449184192361886763778976915839657002265064284708712877546197187913147081920935864340611237737943324066030435942486108417103479452985139711750722258099998070862986719006076062672744663185039101625228770351411461000853455108043689953860725257796829847815240468171517547955377253490712406278975752373741230363667780764125981789050594998995553882818166727982819874601034948979481671561443148844237856935758264025803062328928527964317499636122693418094508525469596557788049571983759305069847072767324587104689937215872710418622803384272043032715494729352402222982589166645336266924605352079690608776614736644474013616229474479715569920549412611099647433089149237588420378036782411060533422263217033199624628934711351877343930182949101001617254595159396717205842386897417755685528104269282078287489582027351808922260635687919451297118749574822349186696580493641223343850693463487138412442693937663264893853358143091966222420796489728806004803099052400213418248254112354559334561885409414761370150572561628890575080597827075531299848643699159808730774118966071746541347169847943032614935006356617925495756367102699568911139902172267253536007471748017468996947668668754992144764487558614013063740955920497923180513589836115822049422447165805169260606938523155792873711667438884975703090775160390549894100082393898960453197174391660197423463271363643715590386529928550897750123301875924666542534125302409792356608184095260853394204139623546713505734448810570125892961155039247793244795846454517938461816392093023978113724311860689798159108003328544529176851621554868664969897928759705633786391069264589896222034644778994751674868949737179756352199936145370505566606916106822312008865442952278873746727102376524347210906027098989349411220188132153226011023855291314706421313188282504064653366181016418992228209683155545374965010712360664271807851752992083044248479718531230710008441650783706582272473528540007084370218682258878050709300057617933823138804810680072895189101678730476351695965514826830742849418840032166355963969642036216771222599360924752090526559584096607162522053843139505399768644190648308764545140485374116066980702021111585178646436930369860361074129602567341843654746113914510390260296685149904053628808505454614607917025406880305939961286679298569932070226670729996551114147852365933754370663827945937988846850367257233471743197567621663199666874315000849450485193225923209013663212322109561969191005331003715947425929188244111720072999364346042369613641586591411913910767663355084147833002789825533782595912596684861199688269206647161006879649025207082734172853103598092402905902343512365854467417791004435990224329649443095837800893368988060012235289636456730678170266501093724027325458597944597775351033055875993147617400503956993985752422580468104215593447984860928905223302984451459549038207929621602556150160308646012426305237717856437000585786878214077271425586595915849038455663530368298453409449167630518786893887253479118166878880753235262130151228811311708746132043572708042502974678713748070373719085918810727161696669852316761878430541204014604083188084543516512678132284363450134531828088104805979105310930742516398877022569991714756099258063114348771448089394637613720820652364690352556406684120414455457007994734569796236383359684377633730803631643074223683528121286382077756824036617873792787862896406805829772731016307768312798762784417349510344023797588860303936266894091875040343817014301930454976558696814124112542098007560150177516862611863163911607462832806521410160903738642369771690243242124243976297652808795715616130195479896323384697621997362608055410810915258448091790654108249705446746978266509755383417449940894532105095250874067563030854087148082393458999290325690568792625108336607537288466541010711706341207937955021751018971844328766968847946140780773347519199386168286970736697425345171878276938591077456206677610637323718443188885329312804280620544220316035464102746859855628857920781901863888642926374457950942437395604442918139342927120050285408866209193445691870612736399063203104019493774200391127905402944871916735598198019960272084502400861729754639624676023867564536501567868505739641143620504326198200763238497212650693775707264170647403607868715388430994692046597676624351156786811572178830297538458113865207728918233946321460264138436500870632052263401078385642724423623837439774626279919387023463282159987209059828621114837045301945935651214446159019644760820007974857860942847117844471388087870430607726136997046679265543234158379225729332645134381000625941415304068746976931719231390950390303603147294658526775885085625695444568630138298532467042020298118824453677637220089539232854741617992855781204863049015921687672165302437299676372016998050805103080569542741580718048217087562808182820612233827132089148525516993686962731480032511009571465600519294975828604772929244191930604901070014280107026820842478626157419133070122204211466494745052303894286330908682348705348034365634898971317533723480583080264653959543704063730351323658012484203823925808487722080512650229126485552369440651515974738263919671594972314490675740874749993695752372649827696344156164015316055780792131300307863266481168433655782623934292378723617043456368953290306452440494517699668164186950356346812082872574665831224835851969199199546368520360492676498384760979079954456840652533239544347793774457276579782771647151928569274093404964402201557194193303140263061481292751104818873699408939990650990465747658001559767570828446353723431689271893242399577982962142847811920865417941209495089646469113795616561481175213011906063310660212422552312366660719320555778867600595652921542841902264031708264168989821750314856667340833647582319679838481799619206444130997109492636582455377607734135772449683026869739592497926456218548228202655731574842640327480982747328349348014562790817796820709872921143735913416435727243499168426294875250568842878774675908189995448916941963233031328779320274444639335463748258790790026161590392447653451925321566115159244398733687660017669787748148299605829189318302276207638917527056301107627969023512180154417825429141297518521063537407693610792675699214138450446271243653906988356382906621217699443332944688771344010402842873877288657613565694972649251037587089636080823519429792601670586442442558070444897253550594967611051811500177698957770626754343501487276189068951612744171719179516282773258488619658225965010836738396376781132720403506502974196119303062803710301314268209781913990048205109310511658922786284273622486390573488014353046667487298997750000928565596065731785230419112508584451466596992977777151700031374656465786985408233295452916686856717928358802057841783462773685359567266581728236648674040806016648542513811939365369507705522527669935961051475809180286450385351989153058725353902134008777673902874784518163570267250303585371595027387164096516285644044417034520297564262999976816709367918601489272226676658032001531043110508577928011989688964079523081236549438227282230600233099547728348753468972232474222893495303142792882908543379403466602339222663440761959584737700443105551923388335205068134928614137280927049627942319685703796502146581040095420122038818916315824561637999105030983508011642486007266201375254013593129092015092630798391700168196074707293136585707372506059186974984489969989734809553406067046080873687779880745368845013945918778389861127820133555816532886770006232773571711426098807053352383203351837805999277056787198306026446949476760952211267247941520757827371589373983872477350124450364864531927621421009599363589931558540630527201737134156517307882186241721197982716166075870647524242033925071607085772520095027769235552155864134288166915974732033725306472791476823158064012853210549978435023268138701733823574785965496954611141782356220355536183548847755419884946544936943381201741962101930074989668164799582483643571814029758529238999213551072883494783091539344074904623495374532629193866555177736684199568022634551079994713829486510211696233312705852579860485626619937606237205768339502671520776546374177336641666265965775880374705655660053407680199130703080419445359120808554275555811254548977559694769892862471535642104552605668207339106495178639146766414538853453130070618356656621930734361672539149031173467947734846741530901635882960180271669790871753121882517048864645253232639916922435360660663129286515754842594265104929584780167342657610166058855025894215170122077076605287684821447213145605258768423684870477884084728967712829948104869018130468214170140486242799902042312830849628632598667606038466261465967413569726760759165095728568461247835664925489742611710910292507358498369992300736514246519574453698224777543501485659470853451968915989321835473064410057634823346165755828232934656978061108437783160506204585859191321318110694979774209123748386769033589092773196278960546956378006055492025450272051549659283419132805692918251431223136730225905249267283345754639254827189211097317931756644791527249089597572471773304011216305704374803237326988958597140684539087031730923848803998369986518773684071829009026615968473509416937614596404253541086677949666920951242115262201490050021471574285679376348685367949963434684479974587332871090267362796097833748504154307086439377388485615846984511162539734418078355279610691491458485596184097687044343435981447342589322956862562565079087164802353507058909837112898669720921079007304030427057204447605436743091489595124982487292324191037005993202284490145671422818550845269747410161556674640661026878164750208023066971563823843935592784701390413561780668196687140908190438014794839189610147228737084731973281438523415599041443478790667878384534129087940873524427295269923925998448665854055210717311250918944134233110198781385779144796324376431714817939182599642037146207096703817912101402188955052023932830264201301429737921795234430204402950693559178480771810058437492005110341309904898231230025778023565995260835613591564780706364851662134259273681633290898015218860671957507400697456691515143230177964243709532380860229297668447054576263745784471623149891037533191817423066546903070337053289401779690082581511077972395612911296198339418018428514987244768973693797546886112441992413556436804125489964402639373590837355444010125420020408755773816014576591444249454786423804321536403320136402597245449477081316374741361823111797358591158154903697271058573954772530762386039039194529769321694586087558657665612118427592014762354240131450753497857431252263439221655318601259609673456774611534123847887616962825296880618596157551902057769626260807071167516769785560949231919162282387606372384460454639385354119204070815176055410014370296879465561874214866288169771498618439058828604026835139341663824329609687670070046551339006307355546309022068846798808815962730365234948439556039688651691972121382916234896100107074158244909859671825849077874045569666559255256593082999168046149883382605238719062357958521248437587873550614456174743050020160960341945497861296024685898797710312308125649320525433666980527148115341748951765204843261402079090729729202916405524851852853254266136138631463789412636090340436388041501954318381167357614306016163533124454451127173469540740284644367591764978722495932085397001838238929330423751517967060762157842274739222046530340680983238175861768738556426301338011120883701337846388368757947488680422484677885559701566598006015220482457760988012611378736459128712017085026752421008076761585493169343228011769224985763839862776486188621633999687495410763207798709975815694050844922014151780445763317154291614568596398431670566154568368526444428125987945865139522534079384066434052771909446441550105041788121237741343759777320557701615869865556478249150470419296867739066456965794791427267081671847928184080225294938443268538818689738865273743147249384456076804419056969456764642714057251644009126136738312949678485151955394782975048185435139920876515748795300947468190573234757447222296487304476589360933445654647531596743226242827403808596032537432751475692711127591914676346661749702656269357736235704012924797848734267494669662166047065571408880530062227741851205886021912230218888845206099301610863194248877731633661577703813837026644746202849760783141148140519766185548087130585862967103479974398166276794168697106995096959181324657119407527693841611418944160709741073409413953032225063953043468409841448694536988375572257988492761111099637837146421741559696851199593028824687948915389546220533493734981114848992772981886144645035123300527316093478310525554230850531368025638417094649818106562865826538013288176948307172081426685061679303795905627073610769730656214516261538207038342365302077622514973609000076228155803396834078316679313178094404821174774976796183533235450806650253221610637891310461671846278608067786710011010118603378248089256796370695728326586634714193535386121545712119546382524159053236707325357502898437422531597050649666230706881586156350852384374889543493409663235050466520004136766847536640327512468652088210015148600141220402722302839413763439590227095156821487756172238150575938968769822459820419752776592552369051105506811124741780600556632623409628556809744094816857788005129138124227583498752277940141596696038671771270118511084364363206535353617772789560085258322531940669014425378057295944607934167525887146674510525140767557133933998799758625418462924253739349902544610352573467836606028212843376287696732954194440403694694795191248974461809091803207123013493882968669679616545883712987733686724907641260060915626553297061528083475039520126560035223619901183855343369607770478319888910399998507166693306642890757849671473822301305380314745767861033297361937506347674937426123413598768124945234747023049584703836924144735614180666065455177367265570937809855181945162239950198520792063813612844359154298890870027134015439491149848726813514494929473173147230520492391046348291015846488917699910505486423168694914138381426344693689922568635330217017003426786923101690884306450948540807153115497394420143348410145636623163742517156489174319339652527144149604326849700795564516775914823426633515921457837981419704171078994520429798597793598408383997379218041886270411362360149906293556511508236355277346305534651577802106354033580321477272825606866971646860262928414791201567022600195889701624899935441765914068409349998078674338173243188545693135117465508183770334162442323296184231917210205577279363766371790040995580332575830071471927862108432969734059938400637920324560783162653323577024821565628136387485040190911123281553509598419700888824398105546437227764769195109124509795178681514702157475147202327490493854046440319433436925298725442342221124508438559460922989765173600932503239617007717658549046786612260326173471087500099577204675277320824327234618861849434672154138969988326062910418739425113424360920978139633066710789230598848795005607054339929964967811354147088424264728681763681949654009848006211040256120446258688186687087553088382706364516058887991826193200240121690324078813164314232441796509560489534983536716926170032369750516695782303340076888326733538603119859416506886142122658977170636744292602217179465312828195071584159698063685622224223699761700626070053224359758161285555370838258896350651989151821506553775339084034092376047395154193757644323360785921782319788499947055045568428983506219682534130030997023588836044459979306289972058808587108804028327152232678264351227693104331812263092634609909029152570988024653893268921751836241582197641292670146431015654153322370108930595763773107810900026407429619061936336110785964275135584415277926867741976051417609652890021542662266675712170938901009888984346507376056166006331906703346105512586492333352012318614544236187585470229567846767619151543585966308183285770424578189319744375997015230653440520593596951915979984384606853210659254460508485198247717245442010264807722748415873143267810464372560676515044157788554744224621286521768688076055073000531050078098991450619267562690152745107001966012709223721339386546268826399512521499237683619610693496730792080843334757521668335589131146011933186921037594403435487567555148156762801223291120419988774536177431407820646154811215721982280046461233492135725730698423856595757956667028660923019637893467032717306826122194749213914323219101790756018309408790062482427113197462467950191143810746478391757061210935615163103572153134430148703224736881621956264390515306076649998739402852881195341089984518658720430736612488500879119136161936843385796860679535510903479444964466654109839724563779123352260871305499954186331252120507573320828527291630477939783853964812454398391421018386823902645650625384124347772229576355383088694520352627857520321269326212411499789053398888055994832041197074273089790342249919933431919225384607766470204790825070064125219458863637599350297855928056692485885864699695985653274622357393478256961313848261103015658104677519158356594732332695179186562098211081593398523964998277312100538141221168791493305177998816768174820274031139688778138652407030636007232133394309269744452602508328239428856067680274271850668773195011900900635742212388203948197745873491086544384305092789382574047323890829233881314737065817333616498515210127897251930079962506272930466770838783491549004554600181588241656356110413170188885188000056126111567253124872005340426585859976944931695344675732322728273929378916585178172278899401837630927248300530283088825639356922249287251228433766885759360306060732602919264931392122909475687367335460174931296948976800554756604015309987552270691000768661859543461729047998231495325266468033106593249760484955063642507741655185751314798174783630780145184455815868505318879928411835879343798269585566076966345208588117235247420061678019205784131272619073879227021437663660958197729664019208608082824383492435656300614990511851062854198865353713177685623748856639032619602091520726441462918763356578885288798667018287085451654611817627331864477091098286313446383273325029526914043779047441190124153861699322773568443237030643415682495648249451951526799735798217885988520322498786878117070241373408051716312410426967138298398180065756858888030409780117560431243216814427452451146129985808583276279603921101625474769222686205603913336362951134772753822971108063778860850826175863897491994753920878556252167573407670085461489948442723601691821399809659996240145061240801113815992600699056789103023966368462858337966872717036982347361411870780317176050400034338047882768281189195935881976602633117080735233494552811486372086866552416372244297801888421880537283961105024315403865887329488645888556820206969075335773801549493470407033516303777867010050262632456627197853947530528674963212936672132101160484710172840375228836425615548613232278571937138942988272795547532349218467662802428507171891572882792137082774457122604295319260705246095476372523412586909558052772399390714730563026596777560745431392692929917790780402556189742816077347046914734352371685879634590697883345329312414854572013886662240926442175843988149467054724180491080394349384539710353215681431542557420472324623089260445605771415069952350454115991977320953410427159527410352090367072189786522384919602052505712541357191206028852865132785264826471036446037465925066178614274465955543294112207100226003548226974670015164353446156581882127069537037346892615426780295863361539516622034662553848515531356256001366986622222665704264066489568665711483512691139819353851428854286239348777897565451653605611755878414803219424321941979143639768088514387109152548520772124848275021775453129650146972725387747519140813397544379832073070281613480823040427677350587679767654896778183011994111640570948308767201230676878711992999806256974364691170442906034020564855039993204241458579952109976116984898285803200578535639052516339839832446953173089250723620226805419536401678303796226247411040228018799197793990492292763117019312994164168970073891293972148593262137278413196144718661412563867477131183859998351880450561521724823387144284296941386542285434034829849984011677694584143048427678565147174783029378305388336561753941946543141891072428126588163402081666428296863254068506066040185763027587318023791351401701966199651669766545715727145369795914305025911701621364808929055538593150283961304010907831075132001551393145850766075950454210926064420107216653302743690441372440887155671062889843978618420704581339389151625109903733704218139258802414053608304194758109910971300340555101217409216260340055668796762789997524740600188134395691989297464672844937675852386568668641479321301015354110804837539361118443965733318942823561411625353679718140718900463359516651168764687299820309624326316842019608702154361931446493642777022626051889615799885346793113427734494119041332838187447723461098711003095000768186508271783320301628237812796328867952768539113541938218621671877905394234955457390432335819045548697775759130930516548531559702676040800518587966278430090670584027849656401213753410178404213940279534548591149803695478996356004436007037779700983292996403221981879512401826056296155181300529785609060644791679651886514300715693448832890418440074181428655064873417522925621174527679934947379266679352229437243317632629399189898621751951741045516097500877049151087819395385830225533969380932603188859677829838297917052176772628987770208215749889063853162898261241381889922814362995074320006018124338138205259256166702209873914708992065118301872307433870804287167545124010582251337362352017597182558917581867302655280950272251274420187514700449463946457039091629985351785146245094234158548639642469355233681852063247381541114261868122537374759456965510488784515421648341714084227195979437813420656236466805177366636379963327269567778517928142951776464981228113817278534114184147616851736749203587363317536260845845601613346400051145248506228159000770642894309361861596462562307025892989778862901529108948219597421060926462847006586825182741539617482105741575188358062241693795579706650761598178588457207448153672611737952597548013061395779698504859024932193525468848942245827214546615114108465089047776177013268804095183409625198930703301636186778893879556555645302806631242109153251742219151777278717698817379061702365318575856376803780152174487647289594668207438464462119598288743004434672769653493543168457885798698060540045171414383226566757821566747305577524999251312147018940251282063139711620413346062884616515459206254230947295444947090211301431799862088002303038958672937970096617496724746282731383491901787653040095682802795148099408336652779224309622121652746004981858576413452307822894281681788356405392195848906334886285419229116368283958238766143208179469477693874959352282765353780354735258902036201592429245781296914298175116225524159872166419385557780400263386471547201502625672090560347431662930242154796710124617947748744967912116387665859776267890168551193794166859420548722482185115451595657274654876643456100042770688668060281408311784589112740505409252135870207227245203495032810744816862571356567871283973960393492362133529254883702555948112620742280110850618268554595396201341821393722462656950330275251206600314639627425264481749872942911814485660742104223418417755295940350624555176326817631635734848748109901590169567769374685671430793831621783036096182583058487419287961997872062948939695340321299886309330170546296533498349250067450164423203562567554562709901914899374408667831100973343241682945421783327070722830830467429932057982350611915370721831050149005816733169255006181713680551402503563711964578853792879604739240858140651291792243250164442265548517932035386812474743801442112576894691638905802873208000104569027711889449500047506795385302111332941370926510754166345824799879272759766072837331067274917512385914574422777923061605110543262319674074068539061119692860908350474165084052530973521231521216568485898471249220512025319743179083988180573824953340203768091917140281650940220329799912081426776409815914582488955750577161068747570389041937697360740488487777532038690291318766956028725880151349048218550259088506516909171434765168379283628461212016076876704424671067558491001837854460897775105623004779339822120797469980648266822195235083175677182499334139261629266795376031751036190057109076586737366128375036786916049738379216586931847575927129066168498378806850320291191204891192399121131577620110110457796309494930256229447028283327214470750896919893471147339651904342447663162988423972362328880293647775873532534879783297378875561468265987503594457897785403973862465867284792892575223875547696339061506904932004963110575565902885318167930447713518609976969823306700633443947514998114798680361241131848116588639256521772399493987221319550043519572727155389642352412799300486597312792580691580137268590836936301239558334792915354066165741796924054310922872042901208794106547442836949939131666527454672943100500298975619262333255084936993355996924364573884125157210731070540793647828808462413589658982535515542277302957301256743678093321000963214219300737147967538953113510803849147898725328638274126749342097642349599845628194912340990458170478982681059779332448996970919801187725146612662520738710610098084433922603279197299229617750785633660057462263535872702296764047413795157719783271580278880226324398923311569969309057052080249838962158915948884764167344743500604753153713523264925151413241202117059367001554292236362227685332247798789588384736166750171741193603738045004290075144816535845298766086842748981043595841774359372262876484632106296186555375982905658975935725531885667143244958615084984525623281607487832948093459925121466834349758074751356889905933177874609173192329018343608138056140518584178208741980221940851276084600545984219255625209326034562691861389091804271163124706018884435493162723773598586570489222803531703804053328606516825580079048974167622309470074779697594150755944526435620734673630957805768166402764813800584473132386506552564736578042025666928825184598588843943253511480345728281390594764523299280680081046925995486640189454874726613642101295741022187467614849184248249677535196709263467848919679310849437722686001947437683196261981283788073609313595598376577059069946450194659306770142846920306495247604453218496245469619437828974940685903843260041232456233459030193642887835505960128106385376083316543647120771720841721611251829082342071942919173202978267869189797248872474826220724882611858259288120197047371842262345680995122463690968029186962250460618699653123621823385446619582939998299660124612639106276976943459696426381251957947942902722566528027419159435610249488639524445448036408240364752062358856687433116852501237588396033301896621928755067442798563691461307118248857569094959577505275856716167299141169186820765323018612254676436104853314065707147741066488175808075750986582983546123062766031990507897284551564748218358556802386291790922110809164874417749732882089496116012599418787165850049999650573207648732116508769147351644640026348557010277530432104379041659957404331113296094653793373800510814899685817079058362706361595438782232513581877548104851943407849670109347161369194333736311981056527743022340834511018405966881163033861589815458798452333230531885730017296864221636699501870661704464602611859795062738149180080351585810141102734853040842427263769589627423556009574840145141091402574642403844008916635680028944229661186018433081362663328564146138309276101498443241398291341478885024357314636327873514226293556611506275463863069949612050394855654456927556770383396675232815039455835898321682155155520567891818911971572843969060597153351365407991486730887990305828845037527919013301751062736161386376428062908030320312924107149497336952861709011827578563789005927002760109662793393409385414848200763076739047294005099531591896270865033774211102006199033154025749472558992931626672000126146245648890797645838701461932032396482051326941626978563429974004664022135552632031916005617398850578072034964200105926723353426922988332606500690808233785175373915682476052274876274193711360094434914712179652269179096554123254950376874361034937242695201641352566276297278475182444856150958003806466823689979026013456540579942230381648605297541792451596236412866450129957050362743851464873003290827825295677295857761380028857372350771965723225701967270820630977295964265771036687494926523181187677116570672377994728096730299381269174270476195198978560203575250077366100460268903215230741114673743405890157905695399461772183332789232342155865280872969174919486449098732213903495546268363972156351447083374710334581442192545584843860422709590545252239054178565963373496530287382188083927886544060159357900747160114574190526840104125734214164263606270404568389395073661647093711778699399228743143509247929553464405519619347366011836274966389219069413908417817207164212153479178128020849777065051646878070079391916652904523490562575904360044880459541148912833637555026379312459518632739028696094307369814483658312084375927415507781842556747833894938365416906346591529351257336973730087956055159964968972818265474938639193196145751945961502453294933771452425993881262212689854480329994027958147334985283196259957746542116582154569900022221204592319048173901478976199890934744634902893560209621185182675175762284585284330899516846735469584820205169157487689272147429661929052673450433325765820084977873490769099319203014552443088104790575230315151107736401156907020303133190799683838101886407111048230655399327392546148420565510191819409570483469983947665229991978482445179277827998562006324597976878804661436661387310950439487620855058297422809404161554617383571260979069037991241604310169122821450261092676989628634467321590728320079779203758260481876158707153490047810444097743021586515000993395734487628380736238379129388583022531003484352023689175584017083162662682624389784972926900160389985295340517479082750998272952177387710419502374464326969531481834092529501474520721424935035943083314919786207600616785375658936965791765260942411563442590596638622185541897135127742434333018130700888469299765708971208533242601037203762109285881327553373088398199076492784376824170322440366864407070647959516772717710645799250835399765450118245981681907218844022844251000761116183769331386224686055407409247852760577324209768533564455989177540590098088765508733806628555132099198616571426954410914460767831723766858280362062405159387485193520983911784657556290045815664168534092404715915298661644295956624831684488348561454222610625474942446471061457450738778953584948901844017138273898591449532614740910369388516303582566495469679953515761249299056155226040623031550106425112813662827230431333995772412541940538198451440826049134798530643065973075968181981684757697629803354694192728419656413604585698754693768668693208071510241461441944541747647777807702454488005487177217407199873130481742886404513044872832534053462306841345938396381785962855017903563607560844348199891109656176975430972483276587066546547858740982111661964470557408409585026381382365347484572107874369208925603190283265832469899378041090340068111344512331849425689928781518516929450107595580234411413270087115910114324635976487515466105918209015142073254175054484456179309068877329347109917407045016122725418452288697616283282701817068084845311360429654761214020571804267174703868551239863023508999278228477992887763758603307403531469968271835890909359362468911025836479271441818665934360280470533431460909703747935118221336847708458430044659609376566720779219130336921441033525098069561445974469864799102083429664604921015778018041827144310403205777488874014177116436482895966994772013591630539694434474370280719488017763153870774965070703980820502247245567284034943632653425012278260200682598467214654367694010831071321251178366457842194644924727628716332553623281606212580444265604281369370752102333418509497369299179893001878333223954047083481399755644493920139324756371832155322199634997268162722024715998637849562306768808470871265548301365676921076664465632175582607594876461119020856195874554545930797161663497486840780260968301206596528188517889467719361948771726936165430908590159616643763088680944867083732018614706651148625483246151856744811735368043534370124487351227474067003911008665866842637573556280854309110723122245913696542636395741983022283598914384055212033070884768832957613681393095367523715141090799836716460863877730227668294938592352162128973003986648644103344623390172583281051040756297730722966977947121921074701847806589381172347959657206826619487101143000385549865899157181723422092607136656342064375310934433619591776540051540216546515452530082007295493186948804071469533731329424145942220316630391115512074004838690172377296168248166089288526499028376111982644749963993399004605968472978994330310308343636535222262726698977594913256237094454429660717096009302084677328418624262696769001103523552233962328375242915911394379793409698048644951800632410471185806593641045338111231187994165652215043444237794078342581334685461907554617583653470519617947052767344418336907123440275595976953351309518374789966114967120218022167115003352008751081667117372457039733442832939718120617985206968354635698879331694552150736823488388728451820503508079176721401702280749862435585413176761958215286153491037419574044903020790278591408793011271215688659124465421535615694487776564265940100270994706885724046295982759119949661673300867524627460512129161811464879414488435553970443269056974017947088473630480024923553873424298947054219671126093005297334951079786378358490889976228947421879452117359076977409122384515421355264054623452324539810999633507816728935030406143064341716909347306464573632512614083182330253433182433393246590758534573320923188732945050633877339877296901094145325517667184735025415549234212977666356593159325129437646796066025379917009900952006131118122234344772405626984936913370183757083922699016702094425406830701945013341117973636494474239874859691677627496903730592875517862623736854873698607419081463325227457505793187025188436413777376295124107537984055399521654365270550343367420556264956036309648884449041042058923153260693047699190177688769792973031296381032220260117062615123261536126331329982322085070282331617819210556661596170823557105745087332178150451916259053228877691289336925102916162638394037162816109506577989090116173462395807313738289253950905136618305430563252349063702738398926953318612298774225511021149813845729243767783848176742918411948609058211711717425162680259445322678806244080415440664405673696378992321825101517316379761270164157225925979753861131573762782413824937019599379294759462678174657848234757955922014258248542660612306853540207305598528391819166672632655941651215458593330113224487613026034788451009129968533180759460253776258610488629629599911424154713799372537543035007710136107543384162183131514697264682128787973064401808552526627765932056620166926652826003950183114875214866273013410339610246376624188769431915703444279737631400744951113888308753053632542950617187672745320314419995970225851489334780894375670858022635682967201459563220099930339324043207747304154890877718022399968732964365270736097087379851643229885764492101472782213514783603504384272962203638024138973365547296946172818976330116006112248278868355637320403701569107745446631337184549259059170279601717867952768696845291865710990536847915795514959903048385659314002081160672583948880158032894615444640283684628530348701104199819274376227865053904420207594490833317190661687674861391983977963783371052876702004075943543957638392722541578211596098134630494382490287300603777327174201229111955201834096638864065672810512349032065218498266833276515111179910133626639803775113170164699361300150651350423636567735391550470370815120631589173168514189008711714906271307827138427493024570520504247755943170809643149959802831686983590223808087812906740468416310018176981711511422147259181628972229457754515726618506170936504521985421755559841893256274512862211200584026231472853171018848795725930885097684855050017456593879659520469844587989607153287769027963055748775575233300649541542079214982605271516072841121190751791020517337321335019582395556809728379634141742611894891862827893847397615971072967440666360034773823983197382045051133595687546407964373469119753055987622665294780382318360961534614916170643546617040361631295879900713495362229278671568144228613817859588693925988640658346104172007077407351859529664644580433156551089793966834215214651636638675163447897153440513416458013306065365617259560094774501943798301538350612544899845690421274915193282938635455652145585081072533548608914298960843380975293705361198023842937398879172852958136448303669406586802050629926328886610934781271504842078659096246000451768609664055433995406082936785173212678386123059066792571584703755926418703152316790884601011972835470087786604079693476896195895070880440768542106759420431430616316822337521413243764268254759618059333250009961088736864780232197281082659212240518843739356354507744243383146931592224738384553976455404658607175411748223066376848400628413041360499856831871715807744024965854842326628622486423024563624071235104770882642442582698923269364380207951405346099464514459752247298588774999123024886978083883504839416480652394521772554132071427882229439368581996633476683531012362922255878403730681624928668473094749403338655953871661452042083113165557924821470549257989801905082652435231370767990170856392188764123948282267116599629307054837896275374431032291196362493162480936342996141204655689198696503563320394523135666904836717360200317344851250790490177309215002206504568693453693377567331113292260057013996249562358772324965519269393024404478072885818054525381524083647213311646923006931570109586372456531918322887649638730863279026780561649205636014051235607174841183190697946298535198405168143943780617567833957331480223997030356729299378015896513902867204448359412233632107932240065774553140672628696152044338687725916263492442904733669701771351828986515562819412490406453046770090116482238842243524682792636160895210495813882306345155084127532908444584325377031182191946767132428072988227679999628327274842458111510175273217432134567048680784938729958309319365299142401869378024528248452384991820732836945593316269979568573839519669725798924806671562958098907911341815263199097884133513474138629203562585536704343820112851282442600074921472600871726947850380251381879356432714580062809656491690529961973729236992804236609456224757498354458031431109643937012956722633961400006712117422640629857028357113313716422710692513156351142314744119287851628337774254275998284415411582965314937417135693280637694399589386537865773155300978921905833160589983780578487628397274821288359989894247540308790261213329193160277163128715111904264326123194712576827507548483905026291745619087994901210324211857946926273810173674452209148599088459903241177310762247033465115328756112090065277530943868943120277983646258779281307218622218685339046353659786350455838021135401013442406194455814991432501683149012487636528392509683160126139604962859808576471391662339269267943430596290085117117644802594317156470372945055516911754492151861566876806656122281316599140832774608429144253466528677439456490033954990240154647819611658369732603889941189758466378816117404342568280700469292309682913948126223089149585079050252740471924898926716560921840397182019017463395747941794895178061478067610745681091404553942181604669595027107202180603423971501483984825980821557180235066112227932249692726613295779872959372218006475236324683768667896365374807411688656687414092585153438852616687130909228311932528144365733326455504756146910881334869772221552178652116879150841917742102064239521236252134652990310148340713661493007899688414578973467951805471901560143355915352654319374616799683430023510521875983988557618562101052125922004993773233584923518577870656915997802722241909676825678757869545198232425747476431898770963515638632668502793609276551214939538974970893766203728789014369207693307208034045356362027397818171534180699428685000082914131655540465738656677173045888637142864689291434852939493948132146037162854397585855641478103747582493122797531940689644827501040114485443165956623252238900267008493157263850645595828458380908361822574985173516732699758008088807830729602279737194726681193039627893518278345660537619816203526434688694112977322028551559876940555485288571793314191316762638198365439910943649839835480873831249486282216571180013822978350768673893105354889710158767117389601102176399009942291676364444015735087006318063195173600483712198072360624753966590859731920729157988587742208118628708060393738349595637120633176354763182189932360672822105507224099658844775367858223811440599861471094416518789985291535410401059505981041093560850758217667732803449625786135819409666090037816178686700097758942314467449909093441048262756945116183981311060293046861319766738891066566864200164084063575994700971566213191936384027673892211287446848717473589247889029070062313335170912462855412130512307505171829446204240789295930762793244595447370315700748773132159193551212703337210875822957631014267370695152207738669500104774706136373534318845066326170404893187136277142840919654943285776208397762255435374076553687906160546630669215887812482819748876278348607443713322901909696512494873477697970169509881678230466338965974595323763875648823173491136842172255183934946156354153813136854863874984965785884679455801016094029115713242644308659614997154143531696038137467182904978360540580910107554440959675168956516268243141154715717834644154088123193971762474130101065203777393334917264748046553463928308839896997611397914871737823519682633954693128266584504754007689937244980524318430442110563904955790122152206117870354431368710975259207823684541598571392279182555293493634665510334667986130477565512403377156806862256157249584551110363175211313487228200693328953816114762628054675367080836713695570201172264649801949160926995133311640711759342725056633930108720268855235042251017728414092273784958449653086480098419070838283798974286237103973934986200946407395374468878849920576808645739822706345505301868959850109463462231070549136865590812256734317441861940957169935915635115575091493620258632526891915129130236559029328716807231692547852623819081142376871265023941865960057081017424458174594456411805597006782364321936581079563257548504552964374199055301513228959163674265195186941626222288536103377594890298737682692715944188764920142522508591367965968220071450282627792614617796576498050441143494877800380364874980029669816494980027988566500475956596478584432460186931886565148424409959263962136809783128735487016602051744718783055039848255920955704038112504987608608923921465999820202915752829435704334718401485432670349028787291143869445685208086990968297830381673242588496283365224699274574080171978928921959240207151322999289614168833650463373966817795813364566695839548095698685421018738884814176500742975691068921723210528267285028136285386467936099036474353976457571459191280499687655375894525971109876870477966157813099480471991546983039590250113966512414712672737630706502333069150437126182411554052102501054469989214138756149294232693334860086257111496947510786174350405793027509085469264650621899224577285634102337671147290265582450933650472522016460867111845439691149880074594821972642361881169182588095168423988348472371736441585359709655051868920239956902942268909616919754364091952725829993736125766665166515337420796505190592759081743111205405377405011534330293787530007365111754797782817916931013676563848152541628907233090625589577831154164752304525783140330095650643852233037766634343533206629894754273578157261946840023985883497054364333008318970690366622196806839405095206544167939034649117477898841719689202304286410335042811856609109599152821076986422072728968368285233644512493382760665838828057228852551802269138276090243892585587965812041346039760265185954416040320332949276665485149598073884917916847372740690674889124516288646801270643215654140947394003758802969599254545405731110210040922153885005000153107419659693172055586854789496210380284780846561779904483285590777600605790803625070826863840997572477060513086889692775910750689844854359865114280785582143084571305349810650477998764953783694700059105472724386781283628481416164243077393364914355390667153131076514618627467239830513386517115995094341978459290942770394658042043346178692136696552700550669051391260307163354907330830549632495069808484671482661264976968739469620971491191070901441604821880003174467864058145498470235801851260472920621226720025921396590261569766627199238782944936651392197660139882131135466244651918451893231352476017376495455674278646589464757833156749177267103091591600014396395329231361543034324617232434160098304994533841211759248351843963986138715472684385664418582364118563370545904391996730601259842585612423063275467765894209008488612139267684533537800187883691328875350715698114157684756630004597125015469621122051047785044509697183821565707219166598188956748601893927408958971697356026342859226556370253035473216598610078507091345213957809376514665724596190069814107239858865186464198599683583142251331234561373960159519408377721982012832693321078626632629725608148007173869222621686748333115980959241975702637006065698529760925800951736604446743299666265987971176303223758870529639887386659885132112966085445825514165534474345693532087851580129199742695660888098352080453175615179256524472680198523374454067550821175646435752314668939840300522975956645501375872809544256193961576842970173885699992103922115791224031875630542509794741550277560536463917144340603572529744906613452995433881107621804070177357410796740299927285163291282410438667716676971488943364073401624463496304255611417062101223402243458999350937846633873281860567660136436561580198379018395091929449854554113367344829749090319657245279525544160615407024453039906049277836858409521167046693834647330678965881533207183408802223484057714963600290456535422953218985008650873355887867193742138360805924464773040322932123934501829971229181981647407281729522908440516008044207052342291696873364647750172514143847744638267033131721587597849919138629643075284411595402555205693415900356415566492647475808765491535503374314546771577568776502836775073683721616581346696503640618704234606642712977737057767079920017602534819634025291893566057395736838207623844140229128462758351494499571121332713650919849692065486681625383314169703225552698215529361604955257315119112154492384432196068858151881102150593081291527822067094173829853474037491668653206848954914601662368287417909746771482525008769039042449468318885130361310819115355546376367776355621044760455273804369119960352305353788703316234568440451797667563217768133627664059244980022476427656267887216313392834540660122960694679714474463177101284584130524495109425886745939791367194842280406188181289161711307113824360751867696464527944302057307126333787646046819264298059989278165444528682039895621610080530999012986218149319807378351291836879737219417323071337744927472277829990245088195063943649944825282830238791566495736849529617375444336999724562188646363141455434300481594611199266147293521395622627225478316951778123427294456225751140792438876927540218514216833943873591270738235806838813961323455809554659440662592666480333236226115452653834378828734704501916413262411822666373390711546144604428977291409931953835851835501072583549192542991235385452014765526864276177034448014352996348357809017793112083482403112403558198777400860801980653918556860437070137827132296298469167277579139332451175078557043174145064179170759485748020510772809154703160704611563296230435353040712232071462201694833059478111326156223817670509542853080199042786973326695342684537608858886004324053714587796806511874117688333382370085070998185885700433034818413700483565605846195527023757661071873497566813052863054333893862508484491543809655226933865385050063118649682903246268051096518364464447841070536821019817970816576434630816372493557108786509699718938277972957312264019350123627152174293021822921147259745649149498036788343989650495559635824795779047307433630715839866138036784337206892865013886437625204870818437798020453265949597922131256837350027552685485737430794433832156214206185214979329162996307431791112768054211493502678443043664753616549170444672914052608669521819332900964579767530284397402690893810412308015739095411882600328812025579806169440493272910087391025256295237565482908978672031113460514173304886300063795316665529526501021483695611489513961388580582838096850591486477441763988457306412348850036651492088640248127195624625946487997296549216219013062414559532466155004407358584871541122982283726661947153382933300997896725414862882533908523125618477750798992525436653601068742897571541847062071042724712721299456875031745612495397738305995856278965729425225647565367183440843174907537488842597446996536478352764397538679088618385947244876825841259093811828224465569016190443183799252099776899924528425055535764535110871399660978268750399062280040486487190943174433553658111603535083467237498765125179245516933798776162090058713120046263524801117313169587588641101081310183513226014229850539623395560995904176856807724408444373631729713135115817855884249547534872182091975507688705402179277871603429470478273353478995216786232268077915672341311685674239106032340734521831953768804585587888176679675528216325043409179097999006769925850934359464213415294969588166056744781126026581193937318015790435813830689657290103652428897918801195492300940967306349971655849078998163144481683377299857880824384544677800552957836932831826029123979229128247842520107274084082211925097725271148280233983430440325924009753820176249094956439590749879497159997107411530317446571640964583602424092350691729478221054025817439268381082649348826977702965977399863926367595962071158234863104205681074081023325753903976217726818307536471660533046081703171514126264845366024659609652515740717792738556233631948098445022018391450006738567881786292900198221019996887433847429553446011789272525308177883424157424169254315128843658391887723179089336933982561519399604002772591569798123736995134577230284530836502362621380234950872095296661687343706755633983215265996283584220990164001135793621281535037463946480635202542964845115648359455609019276822277122767373312257550620305718408104855956979236984495954197735725654391225154482878302263418461071094682832571314950376555052126250258192205043097935591681710187807477992747392751019193844936976242127743797465112728113129007047833593430061126602994885969390189907030354644798640116447707041953753743214772094268851756197778829190854624668928561319545370090467450189198041069016978333576682432831214811856551773519985147422177409001079929898090464343432914786476560434246678155536461138097692655791272122975086017689605155530124848919124547450351594941778264611754984233954418058372396926999616660998317500901458331765636426478284330480250861217515155645806131057068245911392792108435960697607983674260284268381967801654600758525780268814096783900977217731410425068296214245881822280501568664721642816374420479914564810179377635240544876258467098369866090160664633446558905789998621976278484855249181399065754776182461451985840844667061531322323014433485715382540105980607272459357801165722254903453957040098052155919185301445187542845101640986964687661524400859066958801461524937174368425826235117353529092898795321992743183207225416219218023705588402270065353028026833605810511750101474645154693466915668058723020381679092442763790234979367043911718120794126556714040490305955091787929214935868046161107470276991784216124473672184823899353627398547846645811657062898042757423449265366186596831564303699706858427556214231951981419195574274256357960510113458825330687889247160454835488940547769905261514731630093358226795131997027069799885742789770095874460387050425720371289987629074098027954262279277148030083381620324196592445383365842718301876618725212259657022736562535033892470644977928209340596386098386466418300682649174650371556109972647338006605191078414729928891411570266485124837184789845769132161413009074655343993125295367084080476191673394795007687913880017335896714051469141353310495879616168320567099683305964993244895206308929891266427279288640416506292677560974072282901184478546544954185115588976725069757190834954353822910999667387007083045009450057524638493632748406910370674437896631578766242262009885530395060660732263862148239363470774025759714081646227427136598690069019994816774938659209932093503051487037881328395260623544112960587351946827628261648241087779763778140782682781400557676688711882375947890400329015112062576463167398954213894832474193848757083802966414593944816873800979494080285640555690022030406986777838393458323812778544784588966039339894181044208718419999673027203579842118683010235971764747643279363203133151458373019628324835228569637149290772344577100098955043924096823370678974061489999220958771557500113491442474686359772217904576895596802240615218506896547799465530905661830983574113274794386844493258013799231515337496410658225544429494463472333735901169883231173137900315482778468428440500490931354407827059544286921149969099302992348564452137475351680635651087678808161249059445091781049348863886668370515002505172910679026816794913687652801798738343993087084967405097182094238288487531027692710989231961787513452360218672792461910596030817123839321064127570145788253021071399451391968292278564785319512358222319470143472449898448114207599292283344253838061750372774252129681068276557257120543929603872243453907207164508746001040923401152460451839796819317965344279114482767520593612229913700921441130748693129085906693436067729793318455745255567746540078722457569152499335917630829362817296332809567819650360800256328289697955721545840610300976611118422171745962798656171016984035185444001297868129170524049721560400011341543698439769704504752719178954016297896146409671644652927619483854281939910881999015441030578202885162965007186582819247565944898618173725324325528485988890104857403368186688602391542485931440838285046563868154344769087863553341488875675783788868668741799067891868342563067509241194232140535037497922493597960796893909534522571496526499931257112088034524487042651751708415384254494756384267836762532328039269411583179745199337545481619506770253237307419493481315604631829225002130318777071664201540176737021433993709775824607454966679126597467583877779373601123253175517406586737649345254122468910918428174696343723244759193668154606233815626202828200779321616583920191233865760682322319160243691845451358864710037338947445658134333039689289722434952169356566023310106452001845887058293520325421441291979116029873469616744471194289488778030095299233840705778001667408809085211858678028885916986073408039817691235688678826195585306861770587067816007581618224063885588278476633168952491184787908370892083645598721019103662883735367188333771379952059704228093209472002218848598523858800867199491992196854730149362546289835880385657660222080708873866614538611324655560480746897593410202856980720385400189619171553817144376368552793395907941107267964189720358165902236717871735594271887268412057436623090850876459212411005424240266504407467392859300640841077670277022678473509854030886330289164655385857099629216562538560208767015618589919068164041773495320286033432250794884578645128110964618947517954850077009044378192224689498112292547371842435255673219837642973561169667919960361239479949469769331214204578362512927640115702760150177158221991386334119972140278456221535852944281956807052567649563507663045690985287946701023080571858045785932255281137741451354750209384701913598536845734210545144855990838350141865196088033526606494029782215431438927995189022645534748659778187298915153905006323948747027170431849260131697486926922673624186496991895310274396230626381370035644960857496967255140448481963793628336206128910619841517730705393649908836880246033638677403352796490686245285750596676205138510370509287248408441927147375434721452080084688889191268137040040395173653049374995061152334514996525732742707127703372764352037148993820928242470029246985919669971248387087441499548528525635906625694967439708831209778186046503217189492469217368970444521204095627579336439371006859919802097903863810716750939307553998823360460850772518629849523161134488198923458588621469356537994070674172863239661870917555747023827184038288282264803749158001186544765474304457870613284322329275206101011490404963177764698257018260210790829807370371832187384749561085299106842616945148739488045116090578527022672500093276398378433071558602450143688526164249075654578703321170525275948502556973941353399354622158621534543214737461170224120056403892268551620680713737971603167431481639073876432438188170420775913125144053246837790398919363895166366593306984807751822690108205363058022038999381700968366577778050190394824669031501016690859370576060530116205782164061090802292206646885902247331959647965181563942022151563528714821912461807970274780182785721877162066326870453450819027345020543174894248136823783788515310185670903424629975846287925452184367323513151321097695442844011815059822783553811738029751231428548486221748408361650012295502780317696603764154315204088922794040377422538157978778361573795553883702672502302770941676143620649288548537654929714953380912760351957687434828591075125412476988315941939467635426004814626617034888338662777699767749110436136573607730909451986267744610942208232731273099887651569583245688167238619823988813700682942268211034863236266066555381910188900094708221093325039740225917122265480583287460948564482401093424774969145427158984035206081599118060417260269658047437708985531244657092886408305409110845826729470536262020346037765083140118032156137678660874963750524872764866539674657472675269410243674106343881558017910037542460597673507716914608886459284603492508817209870703320665096980939864462733256589473260418516457488600655866783906696671860051420337158216145018243915501712233004698677370092962294021260474219023113923344217187607222127894194458287419653194282980167167072447547236823410683906621929489283695476148507387932892597206594604848421463584095278578015569278451964465159248279280772260075081604771462565138827452278523755838586936031912828390577176833706527426199432989656457088233268028580588992599482510426151002265038557526768706511205168184995734128832983586244515978455946197726647726070488522077200276787855062001193964115905415117424272583282331049481098745993004551873592226339399957703582916957504317966397734223639298015340504455998278151774514067109922449332050279758941600347039244486317236548071204322820060896513122954719024112278461743620687275072433271625952620539918680677629301393731135724531125995688434080616534098647876142040687628172371573123390749295293736614133437909510224727276995324266474431519765432855342422254692065719660356391670301047584963855122593863527607968579792608170897968930168743009505647328973594790031287862372505474009668841603010308403679196426410470592421485340896842993246386124353309252338379581875110596585812720474695358904752128528986922621368772433768947377526923001163148251012823467697969298194244271398324197169205221149866371041825824748852619860301363277697866590414882092194427134476365718603736354966962550128709325495542831394828874454408042985868379898530579398913594559046892860932038705300450153149530400554775614034779187190977005593187943561539930392092999536141930284921108198691592177001391181088553566413939352047289538974651677073665571250487355384093820316372205834270269337767058983788219422632834316115054756998352141945356242754659924375891473993417825980733015934392105182023667413002415661694139329444379409431496234388135258098440656204040063303818983717496893911165885420845520486873405736006733019568760083577040557576089166933251874822988641816328505454795595785537211454628812041450635372248573435610470566835448787690392658510000153276054868589115197048276654761816557810522747944966127714644716381059751430217417824022159466773274647845094709585073017563963474867130319094227884279391670769239333243648285933088531596405840687011926964067132658559941395804377381134388099174465389126708586415101380578422384511737838563815756334431339435369244658345217718905441108906154340483152514997974759091429100614149487260190928018208001915352620345721633429909373585603574468294144078924679912852013092018354494289611448566777329981340151952303959388440450237847428987800068392800300377073106212088988986234125845479041080566673039569136685698227204553420192529970234111677122467443139961583397385449572650723780725869432117723094616763632488734121296311685122831161047712974288469106543464238845201486310255348761994208572419779755493447173253060299564600825106046236906263444674737146782741973834566055786810138730474389982003744755013615326384152868811232328888194550598528042799859173908109142833962179869693925278001350573398890160519599753439444698414474002941833113211288389203298276356123874898499740990491845573593360240585585022628155620768220350723141801846888657200056342832546557618194647351217285530313263833909090960313238080460802390757077462876033100528015088537418397943235584752895180290491586317931403796244778766876510829032208212571542897203067078883975966121165211471831446370229270708039266735160284405228236776639696854012567822559038748151954377878762869641689011614262723651060520127488265593198845135854455184340253795544171471549525771110113256960970981245810477348571574320166709783007936787846103854886002193674666140673169727257272167802698819012282863929124580077743848036391139971607022034756640714029975084902450777150415052374898505502618898833517893888222697720331176462970597562966296361236139651402935677538379142390862786132570785494141513907020613568835715237192912221886871620381603687896340131487518807207148685470217377949187135187537654721390910103881591225131921499412765391172523463342275857353630946522867886160803235493513873429314631601356837981954186407488409124983760781033985998619305560134602786277726083261688150571933939618914447818896485532576846412792062805250862308820554152892809219452592017988625479620885250342114489807576758888048211239859208209600398721724555669226162340308181950168849969525421236117899852042223784494420256271775328580541456429474891537484247615117658193178353333291006332529524241504305760416309952040904011020994192147218305567469345200252330278885812876538828404167632100929872166047602657575842342663807377353976072295325065745975268026151101574430524874797980530934269194768148382383119298538619621214192242096345052429661646574749987043260090550405126294213112911590859916680460097826222061727652857548308662140352019897752149404264709412694218714071791028379423252212854038461687441565629478173188567532736317301744020085117259983950911408483721726717694632993493997142851126965546842428765900683079249960110278437538572753260717124772138784974289790176090309785725437335975383282014815300095228945581417854849481700444465810757996833670566108669300218035048438545007968952136757954810581712998777221914719887430242850349496512759303656396469105855424743529494474047484690747886586472956769074843547045571220897010773649123704464593244601713224984924303451992519630851769722396755671180331346286470189201808261541441210973347612928618931178330801518478244015722076702963982819574627587041009699456592305276552348092347665482077043557100879685201547319985221900443518507848438188202257745406693222353050236278730156654442250518066030146231743422341821772060800718183382436315059825425094826243072219172601981381486641491930846235400282401971607085294042779486159981259405155851519194116526562774690876864300815153206979383831925946899402249547879169444786650917317922370346545687192527019113511029968448769024505773011662271737723843730846554179129531872008812839523988337792286132726147150706114551973658709150699624790366693560014067463372479569393693538543618277645684170460534512613578135356885049983642500264624323814860164621448480960810832928219102181765715216982260832624002229191922717395751383878578872918264683126760025941064205430974427836164157304493470115590447698888307152685072518664143597814089314160485732972188966010652212571405767410141438466525763490679750306627959054528193086369550073425183565540428684966188660283927076677322284414209228853590172981905173972914441951893876656715371951614558944936762606258515769840943226253156421934269300475829338206929143897989761800421752104176438989626710118687500434930256346241684698106675967741481949541652993484118365967720582214859645104742327468945127502716117323185668068434095431307184216350437335868663571199874235762137381531050456433764431425734908878507174396303112691835606937273166446285171254512937474728592816769262011838920348042490047724224939924551040605876779843379859134858314761288946046285146866658904130821340193530204210259697655531194996082385006852391306870712528637654351392954070369051829874275059255201011397543708335176853891292139076942071141386262631613259881457872867639461220433953038277540185311874217086203902626893203175228486177249593328904886355010493397220080849906951670505036016274862561326277685899584917179463090518562779517568002686616372070229136661695832660047724809855256436982940805843352897508585149651908437966013279853213842116635787426461727914560955211959907030500671134178384138593202767481251991995663887751350292807109289453784364783643263977760403553965591318222383061623805094372005974675537619403258557783679079897596345587916894134788588482305076882445584939486202094468925427322265892750699045701688621268271396461264605199708522984556323676261532897116094138943595576787358037685662030563978309356090153339281324554699277136473038441532988858127331354184464408963527505718250543910782410008680606961835528610614071142377753031499570053165221244262549807045564170009516307315729791676691494178168548483993048256711961691197527135064302564583137941797296328407388867412618580631810181075916345045241621519227172509517595188243544914411790412598785315091903522432184597442642123025677567262703317200811625963212785048245150451619139409544736880940138652032527176296255919609996217850603815713398269563970288139515060234695889761244046256707016541113213689876649496111149879636493139473940202594681092770834296942796783124614672199490538833396135521718596641655912582572521220466582033958122274896190134084154719669473259788042207993362624843622326906898438966803586593627935942290370797844434120836871775667018806221006062994708192074722077307472159117371107155759244060143778533230408391229461732071494317022321876803855316549126692773197593282710102041659926236760776556082670589624022696523020545821508010352719198851853930949515846064873273228987828969689384100777997475436257624064500817934153667222380233750954943358173589575793397053984631389125904912899372388976725249332728994780176511557407179244960070428178024895034510759098142717494311468936959825681503029205158956232796627974472172091726899547841871903231716073221405265806355037368759906955454818838319599164209181692933869255597136820078837912873753286323760565297219612887841745025474846415908002945465138096052235860159601013541952172940470682766614884518186298998259060681819222979215425831009504013097261646226523341367644999783362637664205302027312650610559620878445942421861358242806806444472472752278450852722573705580601748039562669662415602308570241741955014594741995014271098429556157123728258932350368592427879850366386077531293613623136833644758898870496925076295706002767999305026465868918809386100784929162088838059187995825091249858287595230435970703596976356509036374825628759691279838779929098527092915079132272918233537188853968356398658106934716504676961012068823617012684100506754489206769472722864355690065871396757881791818676154673938851538938055522704289429997967960814832455077228220002804059276563458827082307370040684551595398090709836914954770245068512030878783137370784072392258019470659682280994584044469009490603354954106132872319117043931102918832498683201054607315431942832830589178992621198499918292308173643015432662186906149190890780631740649127877548593646013095420629331127407822784952320095387587823769535969810047348191958429104357160190536186929522422096210157315349011370213808109951447084165015838340727326507282425683109419047635554930840130208852656696981736873854657531917331946851202851335970972909057290949491360017413633856725974272045176836011756372637871381332782928243775899488202830191969472167392516783697493452501762069924523756935386706271057262351263212721738010497484467638034548195314998889510080169520064802853473687335162328045173481016373215510770985211869631364980425634672220719044820177253183452229849047702114013447131483770901782677062402835307367433280942438285967971710606871997817791956375482484086143739944029635964520700480877793529976842774795041335846894531466344516859748106851403776161419505492697056824542213078789513037164457023734796992047195215911775492721333990075835230642847608789855609617189039019488526997697811258539212002535350218207125128908865825107053735855264625731350394069406976396601109158325187219646390794241450336685106999781514945733944967156419220624515755408475977162816898911127889928199788130762481185215451250101059303790310559093414752447591831365420302909057800897313143226254854919714943938584984668963441339999868860050886670318557007249676938537650824184930883744102256358711190373569285257579431845644237815288379617853383906112885296162260154373803202645199683654085907697641373863683487302967730268992966707745628070733457449908136820509281918713853945058359318429807927440938349779813084892595510024716089387902836422518567224167191295267282064846608761300333228243995836742919330626782598086209158791266275694286383090237791368205749738597422203632666774533581629312266576802639032389501414389115520442872228470048871242986335456209132466270909287010103559113250687836704187418597932786659103786904969463033775767658309432711615440110112594620709135751989751843733825585696191354800816021290195047124959332779760672150203182126914456540500596532632910895429535381394264331748650965976902269181578907130034886055539291623265483959274151129118192233383760115726276890912489778532758666442915825687643615949298226852497133629191061065690458173941194415552921589501245634030705851746472947407782415301804320326235674997952189580695548821269203830626669262232025419531588569180780128608101816261147259176588519227903915751297258641127531097740818893399778398191209283408273576520512252645203026910362540318028520940028946686555683886380314899758931060758005179994220589020079389733945686593337105087932237052839370843310415760625712225676218287690821531776765149997187744368876176493008981220352543881581612483925241412305196448237251399019871924418134739282002003985000962033664460527300375318898734105456237237320931228229988814223277622579452075901580908546579039623520416724430052466952419416913962513752085054478730880648200494598004758168351993129826802198220186972053027392552131097769902902867354483055107918502850492765104841188832447690939385598351179534047662361719685950188634687239926792877180531746657310314156460333327721335893646130811836564241977616412896736461101569036716753205821665260746198232912763814821818978287863266757859075425603267435984327146844352665166033426425156239826738093316353894753289726165101514368728553289365322680675457074923027095916859404901092957477590758436801992646636171579399422119280361764134569997631897947306417552131436545865020887465424382326349250262282488015462564571843408137795260389897789082271075201104269523562441257892419233182980714945262763222465458255445093285688379515515337521415526280289500846312383683654660766397373857060950284227991129457061374765091806791444747319283011800539694087945930612122910042610842924631345364251427237772704209458199751815932815423024501492301783036256693726897008405692136300912141629622929824254944557460032546913383024901582601399146557302164265631845142591253016845341388548187222529566037810277698010404722082085321149520777044206953482335267531748206470434082027769460795894965765472075317363326459650252926141293845209302374710309649870648150331061550820681085796541916800822640896808123871273304602608512145749601317798233958254824989831618829707566841295662479489853405072599179235684544733163996137293950435031357016821334475384460567840542011441841739669327609815982689606970723816143239551090873946135639390086143605015214798786184789724841716907829486194532171210787445831615919157855405894880394916102345752487249981517017695028793514575852616529601217264043201530241205510586352760836490048474906601199753168489222636078838065868116323040003390081074871500412085416388527992719929905283642816761861057842849216212707766141531981858078976368113461933322494202517304270237298556692782390860471153227931326053967814666141970148718237543694194249006223577179163481596846679902728498264561003515979877896030072959017664237925389611903605951410542509173698830043872103285925679398202276974745796079940326078521626046957553616070393309029275143473782191735140110931591051249397269609422569972136678390179398275151048145836732851120575777606012155498524897704612007962528786953548263894675555988905292935920526553319441731659357579119754007074713485374259804626891341529324032142213255242324457465467335072557166443911331080815408297003313531561776753918355328116194504675277587852971073107088590890093628498905133673397154816071734713228719661801755829060164723541172961639641429077682167215724467824193968303963841555620256259647615218074704216069846008294546411123002857708628134863117768649523131935894654177185896020852734526464887094485936857742837524647782526265309398739278402002635827499611834678784168299894684431705016590488982119345024512549056992466572926273653214089124394528460389037793575245445355707109043378429371416154449425846504721668142663281502645530137541726138200680042057248662012910270346414481347098415651605546675061076647558407033937480038329861394694068575725060124464664661344054969324286415318749439825362018235750657423051408157076176980961081324392971016139209179850403669265397030659445108317264909111749644589934718619384885946939344727373665895270707006613745155031734508418037459198651739010806909336951320183231539507380295837663969722931823871938697807901711605987650808437195734626959590905556865389670220873075354523695625143995040966739181475120550077337769453652234627976319436331058232678112070410308110742532408208387329234441684736138263968603187121803878170973915924060427895788593397530069024846413905724143574270764368045436955999018451936906659171032590590033608070841322151397407162820558589236785179092028827921157647743251611456353029465005680232398197196444915417145627922571490633111322152792688042163449163661822110550661050731364035796786624079247442704881790803449471189029577956584491674658248029757139109259116513086435167750623529956328852903602815657433060547400029322391068629180369407254639302091549609686504330395972184195345092863018482079249460793650155688959652541857447451621986211145970849725035633768299136527299731878205472533433411971321378612813561290336529288577947486966544456851962228537562854164943329125059359891124071206187193502495993238661470369371815701520081493753896595729259800741052654037012979234334287340712998499130064980494252673200477807032466451361791121184625286915897865137129296896786550073895832192106821285611530776791752621708828040498965045977575761004762668709230013722878890242434102817451631235456869494158617913504630847840963254732351277987773446588412349143113347185570056665015326941878100007009980035950101722581365407501846126697537238188533573616517315679140379239118109653217106816211454340422858012069980425220429944124228494467622236345108764302596346983574236891165800401616868253037551936732237333448116096575673849176461032750095010691873857540762540158905787618536592074420076482284547984419930398222532798665963813191461163298199473237492254302693813964816262589644495465767976440468641614044590822538225703288728373040802501774682211453925018193784611621380201251195401886001625803533090372557518469207505341691704058080553489235979206578620864631434822671568907473443441298980569250451041143640939591461097745024113331757465599894777890449173548893622615411888483403628167384590727039122952342948368228643493828010093758254910326959446409062514672358696765549097845703686009359756787402691001767716050548854515531675367935216228119047465705804810279010723487403896798980417612366697825884851479768553485858517104126702350827687700844468343411049904199393969584049955494564039260203805989963499267756156884759627604954527914227159816841986482056740726201557823484017080772534228477598875338206659525313285376211356963497685933721290940595600758020176145192454422193520275581655815963444576564881167675018525228884263775074339944787163337981035352095131507955513141779956219834612157277939220305896816928719968030430263073297475083651842472465751687806196818742570956455642080129382729588972898512071026140007613592883509552531413639286860790529241874716296416649204954943239141400642125844950814754930126228881661408694549993985761866421843463127920233848686655289653560103004189124780727862356974475135064965467160037357709638817582046351519803699955359989251924748822194237002787729419692076422695659656485381648794868965084841279788666649380727542253080457721782363782257498538161530663406605804803423627296408826239956197720720630429661912725919056553647261259029645784949816013983372938999953397568043629215505146330755783662493356712858489403418761742208883826271649110616729811039965401097494886288830822446978720587279365819371211716759841985313146394531837392666964077758649041940827174331211624272468348068464610772137602882245201311049511243119479116091017318728741213044486853911521672719926534613797881041839977701984545434800372218838442288032922831483281904307241461020303603188334415376053969407414967960456337760942049922132893731737366174790386094813653529663798561193917368628797124408012271463146988153691156322362893091322965148441511024997677012265776353506481183678820786297685703099465351777595400870264378820539913864839606847494507400531769644873555308407521752220493748304801362313529762078885956048974530492660637195328028765823186415500221318678208343535433959405165189097081306610717551691457742453949524050401991522340022772949419924869679931742000659177510796557747029594477255293385499278157913899020547500034360291335387714042235607842191836986931121978091894106088976305786491610910887902834228390685935046638786640710836501055759746910624080364794073259367788920470021658364874391052817754014142554965654688476600350193100933997406256395446463951970060755768962578726272233492689380320141358790449817309153968369312490602748618316511239068020775183754411808180541706795936670589033883578960462039576591188884452703177722591532215354603154818466153991156943545353126029193318175282024722617582890534812742180501865153944912038910030093553085821735870655284448391603821876286158682181758176734588628321414231374380062255404792661910790115928977343802462042159321465846318558929923198364983769322438691715063269511120939059231933162374305562505794076897230477469890261477661870114229754278087897250212086733728031620137479971514088862270819945012807495883422853468448399952185087783039055598711306489637450624933598106656191519845412474950708555574503138099407192151505340042317285642486814481357423466479382411195539547556213632847270203287340444932565325405944532354851196834856011253947900254109972225976968776145275357866033128789752741044000222657953664531101826419468127624624771074069235523284807785483604303980315363573003872295121685462173872524833705173033597848879586503943242800214338762552089262227007279665886156551559247883547837277013016315157443435639182621416700817757507548379677015930183395167685054481970311807129436648625063297866842744491573019651260776278721857321098537643905589851987849312853630696481090369339628074255202937605887868768028012258192526149325773714293388694693183563636377577846442786072318187420808716685076047813739100831807865146482610574865337853449089297493819001064644794443568902622357746062864431200580701304055181274198462630436997319791393425884026657898985860649801556635775446203850152159712430047655471657396641777446609729386000272443423130914591710715567064915844907070676394369361570625721344129813231406427154812641642378636902742064205033336288967700145084173038202486680238682263920766617393379559486040894248190605056704762469896272816953892308600924570265451517736940158843173547433331310320472685225062452984139515682443662090066616694552303180482327844301760342406149527084694301491301100208261922160937442038330001140556456565613053986062137947707570791087934348806940961983118765003164367044337166093201249954402957297355583047350066821547137101483806262618197317141451024861150755703578951797825733650159572422231090404253378509831961035072753839033363014475069748110942029395917560269198845250836552433509164513879406311580511699489895200081177111851559206570546489395377485296960206274843792202859038214343751648598852604117261662210794885165943666787839939629205921784653350487591446579407736171904333203244132082577745351574005050156354935302855007423951091158498604387249710953588422538365716497054754330881826157210677682320582673935528338618038463969436876810005549187814002445824654453524136332645326427657610416412564786401910641332594755201225331905511227676801287559827386476456676390745196637003464732154045390285128911757623293000005465671959778877946584162801119089473140136833036928114502638374051473066512211865645140747222073312528537560674017505706231018748163994079765179929600829428793444978111931518546280314853472262488217245226762266282149438857282507529679522888423388670397279716071224671643958778354584029922318329802979128328813692322557022484922699205392817655495303259828541829008077408636502452044999061155823430947847748171052134059826998421007844958221596209654881405172848717953828328088144790284577797234741353514898355261824854906538537051431644240373981625568064804359756120864732403509838493531427101314643630357779762807830436403168094654792792879333775014017994794516340120628459724128800041494531227233420815966632359081871308024535195429232900617851815961196540470736104208279859139376961523589756061153531939313614643435257761344320997911394503724871126974694706211478937021801207098982577836733699147467571442484973936192116846413721600765309670532724671475750726321894607238393813994848913690745148592110891174338794435414896704587644912777493134674359742474361271035695558991173922725556318315713870660772812703702778708403833558775293105665197774180326479754234277468324387242316061271226305541126775902122221669293465659242233967072841198233892989663894918319856608532017374435222086956462464097516556420218289444032771722033175444237752410928471261177441529701682530438069294634780794988992062998314967130735328036797464345018975091007289444001131984599215660418530414771093301553128885258752338550508787184174187019083264266777432597557161793139244463848877400468259551422623104373784677994312256969939422287468623710028710128094602458107969241241873067718494266330233402182339890233019805805618265995833680934122898895417676032506367990428003654703437510581943715586567721897444717598786254986124246913719247611856280485950898255571031073474551484884058595993836280550880490453273075228506507433607759030784247481747175861069579078091394153383709410736694937637167675456662333836611177368855962282035186006211281697845595096273040169211302282626505773010481195456856588659579649140851480188802547592094088630007996561334564504986454686598257182259245407906639058893718078395314021814075853371120737341869938770280705624215248877061407744571382567607270551632749253878610284762986487531327542060045250811454345157470014941171300171720286939850657560331722471691078520510179525810052048599270802697822964987742878019499469260430381444500004653515115532400600389684429574579314512731548425665902933112772569656767002767185340867752050232097267250646001463792932251759491852562381037465745889034220452881739662710648327417720057347274640352604731900347668361889912934970658276187759632744840485262268969034811133718498261647713076943516163814974049093035049805050586328659534823255556077060366404126670697713236577657651103057425705631225749626863371818900036181600222390027527952658581200870148804684579567841134955493499965804088975929010820593404374090091403281603637935538376723926093001535858713226056644888196626319952133559705826444264898376194666174828135655510315777883916006270672231466785118632465807796439730630633410237373804536186308056067882648055071331447670235337875267219629589374093799111540216211943982485402431995307262661547189292341339997234282989986060139695385740672725718260180118242314115292128223359415172389061241361624533546822611595183644403120586128899083609386522311328553203849926487895936361541916704330326070588528178033648282946389293109914802015294521562299974390631897085953349739260144562523529752437820711614468876702521327122193801880694022948770802769666801611732681955527191089371149656235256157488983794684698751419938698359836799432241418464366696550241209607836615737721978729778238553932399669245588258799152784363198209605360905758371180402450825800386239968013080922428732752513293162686622179898537093799045548688662885032343767130960963061584929666179497710596948458259353120483040583031241187846034793450822219975670169235544438035785092132602751922490401709806075766921561634009905713056901641020683663635408751498620751347572766360574844521709302281444899496540187500122244862399439630625924490757830031614932910123170383309714031055138150400214610214610519314479676377510471713717865740852165478748543264895470295141832743901787761094523094387840757134943333242091658854740712517108634941333402933119491496091657526967801989905787861472595409720684638641655361755872860029526190286550092290384473224571977710733742625185967466488354398719152039120079225621954097303054033062451342400859528979823259058035370714440314534149042523905631390471379596157946661768031611060899622906639463300321264398344844016472678171647561111889856057968560679033280890947933843212563440554314467036340876463581510529275067947489947414957253999182086349981275031980876174509354772683542888913589147122844963723084876113371555260594558621546940117234449232320171178829022626057801566338171810124339089092395159887951626065455081333535911337962370852706647041850411387856597584665245206797106817637298284499484897446925727754132326225786551089470518685565804170561315095546822044567911404795523423239803602808085310272256627065729109834936483785892613888127794162616413638449087950271728929909022689844437157611106567708674917227198608007019186504342380317831931872643477625269019882605629017639609313182963388415599476706216305210469801628961354903931479734267920735427338307696126442346798706628907639636315577510243381851902725565642290427848251977831564036846417906240563562237405441391278557633667871036438792925102424319209273305300806126995412001804134378061593730205107095491189877323698754126678589716227184223468788814354291179769974631629783725686527785803571060841386428422550215690581718851130005548448855391298040429558080686387603484242997572377805490882032906889066513647863623413417603340174694232750975727205704291131553186215192834228944722473068867016398664574102379005379231330279514958496040920039321973907610990662297611386169126047051896343840303292411561360820765106291087269658665829070990549657538704385559798823352280863159767865447772728073714680961779361823663309113621860609747842829816747591566966653633139194041406431560042497179939690471200542110301332570201925023345501653344424816635884618497815025414690623352134994182832060184721701446621196499773119728263143611703987364841467321773698056610071880127192817542003958746100091931229891315636415549020520475636138862910146595735053469974782049392091661501091668465351068527586732509280283077967985848952943698615535486155465391813776438789104153703702291284775708290052063319706099188842095154850159743764733688358659264680882366159329027622815493087192352280540335641690956360391757957764113808470056739335655931692023495857441804619777231812559682224066201961649231364183608484172112565631753751100729710247646539371914897462279949336699642550193300352479319096700083446911380849884395108512611707089279807260590812436569075564391288445575616036642620822215285182060823292469794528989352611863583136263156440765206728441223236325141826697620875484933550359287725699894868970913083828602333381069009626610125252547924469788935542844128909650040940947279339569358788797543899270811647610319928858554458411258079131360684521186993401436568533827643517298326024000272887499443371994212577034023684056148604669764559178752460834781465593707101058537270853032283557780764514736199235456156762401525724115189752572956823310730446725040467978162257474994483019691975842518421083973853967918655133495189874863505735245486376619257003442891319330546345390398862714240007129415229867952181591766156732393580593207957657458037037617502215321917015662542979884872803443449609566782878737819428405687934432718275314135960694755435506761348124723366270735445360926258130424504198052975854447925493196201577572755928297310550635947600289015890496505247400543785710298930874587211641970711736186114301940376157570270872339562294921732699226726248574987670944184622771746409123454850064803172799684418646464149749491026501170482116133041271331367791496600148416001395635744510149409980232294242772781152572853763124102260074913253196052054775888046794451059959205436388567600981365011619027513661417586407946396945485014455079259689611511691924246664327293209882420254383342797472151165286909995672643576324684878698618469376794102399477208420682122426488811839860875162907822483427825434187513156611339831188034676538030763230603988482087653201400357536344249401489594880170506881518270729404768972040883461460273732940819076916260998246845041641459303279460996242992057897997104787659005692145084785970053433458056398181465914795744964973254091306192292971892433633869233623765637364227345190713100650132498313221563409103895427725643413383610059261630637824706754332810662132733691509450088838651224661148253101737215402586453645079106127325526194743926663477447996209944182994160439666318706113872643771125964845603607741997857172464401520335007394468720746958871398164198967110752323240007134542180869287403783851060544483079852584440991143142699138986765831824629483845308392746952223790120353814448353310278732463414720864904530863200666136830254068402944701326566012051480249905571526087253033514674228084157622151347333534104650258293462958570189774261895368611231131388946715823978962234892981667426432556904548099125752249367282624265755672646038915576622756975976225116270617515514440828439057554689604422366031723252981184195566816688414641723594622195980850908384599248851384667004891244259559185077332193748205201754153371209629063899817567466929639099227223667058268967237807054524488921732300333590227830513056827007308832503807195727117218786194390483005152052209810872404909952960970771673515402619879242732257076023401585026237953203661913065016539279104830088420384079404694153819373329609460466591826532439778309124301165715893856741059130629604496050326902780996896068119275287753262297374193180368608736372822709619089002912159637502225029765078720167929011898107349545272233514972314398886735622234342126611253459862788442872504867341324298511427122176643833632893406225644975510239790762239939070983426766510267387710123627980810017790145838995668468739116962792540829333438903013493952008439700267522345714516346294608770806680900171303640682745790079318729344783144077999939797211016113035052118751198932776766743977711961017975886823527240290312384690872693140122413346498416547020998389933067564543111165709390668310532602400768992811587695120086561633951658663008382321285795143359644375327248806571552925445537389205480379592858091283251822744873932455418604622470143675799301814331710947930791405375197697283605703383043129537371009328639131608284778821784672251434700358394436073752686441028679939812949176327387297817623942731791030851376262950959888883684266784258836288792337802507664444439191194287557126283200624272912149101860395490227005138164497521841030387038803479678948978778226709686617232004793006797217406753616480868305713002943630116007169295857137645015972096022703656345021978844386696588780576374843023336388507136470732037396720484133785729358245182378211763536816011138711396918111580045964579165500744583403672791300995735553984307881537477832110065833237121470747965635444013605834073669475074215208328364436646407909430052459567023936720769805046980348799875264943523252557028910610991959083219957447096106388597730163673610097232970084446559279476488593874859900916442463465366821529811004351137107827017247483389349856902354833383531785500592882100353122134299097813843370521562504642118075726874493306954191585731571841251386048135592546569091634851988487993687692395955185050270411121995027509260568736381470559361062365267688907440135019817519063875942924526176322879814817809796959884752740355232462729609328413872461926996060772673300401768392622428907194927701706930203927397183209010202237071339861133375416389565781633988133674115775838664242692993462132179495001639416621311642138209302898621328853858193642582605169165757959353350901681926938757857516088609744081458721144463585142061375638669297593707514781220959995630797206448054614673156158000770390481226367027615358245069588697938795350503400469910712719634564029974269037762877420546023188744637879977783723868342787126690638889579460947057765295290522240355924553602226443449897305927176284447921344192414932013886254256750532560565659346334874277761344780722831966929310062410557988793303317671322058644357870877007272441687282369898858890880732582253120158824603265711537888669300885104354427724533107332689619000193551021478983542347712379283485934197097498370025048271836493201040037479459342197967809036956371357591819892918480897982529555243960689217424059499033574849869166886802407131086036014739786484977103338249399438471901982562651068511011811571871859931742782403045924450177486199746710683893376980219892390751195394128815279080551048634499905842927926215236165167875027546514497389432607588057631068829947711573123555526841561082580466016431697341560330100163464869001128114246392178064103838813202335068660649413384507996316089410148447694706211599568760006442121622971731161295339343663480842057199342578360566903539646175885195929785403213839617978050304082303077655697759825499147494595700735979330903130124812105398891425195050738998508058718235711116988028194406013599896601718144665813966263584715301944099589050310750647787805419519591411264569911018837435864438826223533100924002291970964810322692288466119992431165061250226419745166676039972459614589293406503076720791984996614794301210858724583465946877681609784547028042941069142072117154917504438772525826201893137043721075805844828016394233441824951285212893525228802247096268770882283534694491731686936584624525957766694696437597849364713284282632382600310755950493537336395095842711870192360907346605020743765561643528016256740986708249604772569490439611935809171417378178376973574106641812271725568656702872201841627443853465325566480130213259086235599363361646479277740151945652872757322793682874859740799030824550061822135446579767598487824259682618434609970081083677831718338798995618768036250901639277094293180458623611816651293384963271557593837665704954364571527329573737827274563790500627600328225679844452848658426852143018473125409177441817998764963978392082773738936071622588761021129425311845470224452183016920831348250315522573858552910401396612361908167228674792771626402576720493690525294002978050582956884784717018075314896982283423740916977775327619179152016902034866355957520303840306509100954851212274421110845392794813336875561383075883715452528457661040012704007359527156567957908975500734743911889640599624880148957033042888432451222805334105572565433623132248972171144801040251590731110883777845012572444088672133526878566025531048693613873120809049826236754120996482562896060285571744214484621034101920870772411785455363120756622050058201537461163324800834129968656768715713548746273487041014298817771613915162930842292927032571740159278820976194295654850914032074455030914551639600308435471507265162998715674178126463586650784343118332626620434540089396816146134539075531699936822147663837407544088721998914326424414517375704670202236846384221677167606460160308870861154978468723689931572730432161737575541985596637176387416015840092125238123236495655976178139541579921126432874233552297252851921299963670787255258054149103557104385880682160764006047905415297735865526941896585108530465521938084751451157911016056835073909623017758365243779778415334648787475799815342442754379943866599149292390848701083978839093558995201771651221406505433522313315267027872489338720982265349262186379437381244649216392891107575694408629306470493197505703809844647195540446570634162296825090452776852139297812926676698802121435405613277418738404999388673989083900463231858532622818807056266416665018930783932482075818495562971908795116350493982069170809342098828981438233409995567217391754173778514310712157821337110655274586749622713242357217641226391599891565428898988623995611151585560084668888605072953806099768281921340090100799575808734712934637311943009659851116260476556528734253200851186280808484347537987363316074695954217251042992599335162214052735751989071904199204620052103036908970937242844267479818921560798482171251299755698841220541241916219256930958875182893587388566573519058971828381187012630730067404808348985103593953173974979719249421827422112441852186561821765454214019559712744154681702769804697124388619455388594719407360239867829840857794026039367761017973026145677174326139196586726065387994011586689676539126344515399658236509267376881911868153057996674393104393265376804807135965459597499733930263205552303798885438360841100436299962985449728270782800226018347501504443028816725914309080318388153339600662960859144585521585081514651192253004719590216941264154690202740546254040734073102847961370133864129022047919791687307399979808414130840642777992845886970116171649735284997182876519002222640203855061239061361736466360815045491741222662024550560164838011920385490365611565139408831713021557734433897085069471281554968653756475417903521276118445965989994301670915649590299607753258842175360216928250510947068343747534162753856510230504210143787714888956098079333185405408777393807130408722467652976335008096648574011636398379664423933617260468528698248523956166085525652225522808726613233277383347568954924411333261325405267794327872065129543023448141316517586261464166172495238725145356603910136171043976472042337255850566210545494758941830226120038972503860857397391922879816070418002327702615453544622776771446162000805903228700842586988115248166064680081202563702172329723890294920587675380845363767291939852357352993246125181860618793043770352329855064087439658489025154042317202667250444136910132161822816243383193739032878249327016905242193526682227922706160529052631422610032154155199070470563447042916190066122437084321889582127037092416018821351986507240248260142551001057219655142102507408530665805428742485276394247976539942517939020418009105876489028343837647563556048517627407784183104448062084275191548939446562993927946724077327937838269560357013626887590805130018204878610001998482680019850216884081615446064967487946638969771407890137320028971174484087568152208301923880118036691419893197941098459579364869023364842143255344523921453127971598741829553862343223297060442528475598023300323279008316014476334674914454674138185617545860418078577698943319751814647806552823159217403915925453568194363430904624637844706206318498451114926409277785570746590824397645129650765322145472815651261334420526895602676677621596899503601043574484733329549894943632423979814733944592568256713405657565072480617706993668165013049397688710949461756345362355181428814116983879950071996970291206326205775743763714075267079983346063365469191815551754871851729975813483832404151493914053382782694679311460121767129321614074956008405595072997016781175726731483860115421604908794374676816602426277447805526331154808055079396802797586097436868826371257655668582465224989067011232374193787581663346791968385248273473444404818148204291031556328575478276684701845969386135400592048631231350137763996965874243259560333828226470179350863204198720397296949236105679274083653543533202034982555450988379134491140251001487542918349780073551201883962774370619416755973740893578640998700126026172819305405223272316556100620540738810013421418223364784746986287538628378285500010648096538340114627698076275932247326938896076052409755103135685837629889174013489723233500198903381978670994562065897044697402810528931430324664379835536811455631244783261499251024924996751457815639585281361443788614302545016385674442684058671841669124673945137596334280588902962688840810559346516038910883434467888238760883044158503542498511204610049963785175368760685307517957766747214731612169503569642564709489038616043211665801684679345992591323468143494419922935438990481311106385263712901184356410446250475078289028244590723165440199392118523969653588662504520772845251508596554172519571679822170025228314245582640021314215755276218614524567318073816112845932842910033151508713514021085185740091278768731597366184796778972047593716932291686423840402234672803000670079208758978226002308214977130061275209690502970418135583411097187715833585392275576579640425542280839196355089094083825212929560056045764356336226427998901894831084095525608595549601555822498629527087492001085148472321919591911620810205505988031360607163294874392953199566877320185391856243806212820931000643102088601243725497750578265256353924499469966055830502221841816964903720326120844290675177792109099178542297298254904109124877697752731258963877703462769411148277373497902580393398222921153362159249447802140888869774162473389364285673033078586108452008510885277390377392638909870642787751986624800518096530886460882677041568573857042987541826625114748976698211672126610602558606803032249549585350773833438871480922866700645885053760015469818939618544972339851812591631660345638307219823709053155762508147462308700519627625753180250235871076116223927967132060325330969371503346107859390248309137674239442395457622244647126659367293321374481541221580137663193853721075130113043807493661302937599100333228729892138954267512107769081876301293358313226879329198476393419819877065235071835321887112458979538259051476503604671628078774751404232646564829254556211584550667179132685260866434380746887952976580283047523170797043571989682546376647137812909281741893531238767502074613461522537074263638445057044196280036901129525263249431151978089973240123919626906125334773907507138614349578666952598738109278521209830993258919389800502038410424362472845733021974106432886868042152981440796283701829209212298841430634145148762105506583263747947929807951101386897667425297496027567911794739678988140714433906313867576981282490017254432306115277806064583045784715642921334779793162456727556684915824176661090479833830305494577957497615108451946543834700495783144363131722184638773141374320918332150179006266475831140696584440774568259232588027727223537443404909524833731231937154104368494473671094003018100172169672023232289112938632013780494696010198883133448130759886835277822565664973450858000990423796254983771785408332659258344252609308579841175635080777793974042906320506216877615123487298059442164720080827194343948643592477811352394417662171683405413647563502671877814117569229429587272770015930121578503968411072900491013689202645635321986097870947152635991826240404925886226080676902230854106803818021819204200899174553912658200316053721486588668399345080843936959637338547537108726517255177127455829466616759108857635638576973691852255726815208206203500959157761706117048114434294576564781247779867793066859993013299954394712326223241804936308918465286217979138861864984788494358880391056479258139676424176179650874720892000082681369799352831692612273663796437519199200263857471640111316711631967630368293582973892041769488997360708676894480160828859551833344656086118695297590688767301836705980242464613978071134846004693491116761590862784657161114934426444669328425959198809373511939079386798736470449144736919057265045851960405049718655678248140427777579669689535819687312784306855445772541380567352613311031056980079621940595975849672371055189369238371699367866354469548137437164699293086091004270287067765392595656506547496578602596836708216106104679406691126602373022331090951070736440647392758332544576948891266670536432778399076032414250059266703969797233913838865240282260009939725820008226451356615922426557580595834140469802452103244376553032954701748658530567945461020283785644422489995729928892020287220804057162744507141723694947480235326168594516827295311620029372499768134442563314338982459084375864978705032630665169745252211972179834871095563762280437065871407695681879443169556497975009161440932652449997455305640080963063489356365823309723513952499251311215943548690613061778376617445472731214964059102037565094809220721793304970794265246336262352698803738401378409700792028841263250618522250177133249320261544182990198695144125210783983542485476197790545731713337660566282076747592982752937154577312296331790561597020159045585410705414920060051588932017574193165220211511157246910860221885645673031117314973584970297098869751117398857003037932919098503528432609185779698311443488655166650226699407372637561844618281814625024353555469265550229375785495187894256636290699204832288053548770149796618211919318095871346632086654718704782163362346171844225822323331171134903949764000299511481061673639334307190355294471410897469489970241029460420883989819688616444652925859223181147014658510935200426044846371180382181343360777543018216511508128631722929796391495248740060303314724166472346901992606103677376495744043394013433646845706119330588194528058224657538703900831436987806106179760043457023140418867931838351201399168488282759097650628407857163386473584662379726538825087827415878874448405576455687537292551327134250586615569936752418420426340357538270107676578228089932319315918732095396249309648771090565382160927745970719221777553376367067390105120359200732600892692511398409375114743305102774819224890097058012645805534748173230374863453602205283082916878781312114491930794431698901654897930868970848195602097069714128989531573931702712947569435484842974487611536857828537838815087854159386966927959672797332075550431199892181454290792526989826910562460806022740236995722933165096887729409129399366350867204335808178023809565053708843688584573749799053456990840495720714921287469883440889930023667128174596297349827674665365034943300443044985682605569867195186471438414266752771551526157241020162321609572361006732172986155101833450720366242950861059582978443998914390494793016743241664617984502115205415541915598629882694885089435421589715120329180762546622631276308239825428293285099785702268059891660639111214643779285830010592420747480947007947224832637352884853676821839413674387157008985762505256953059299376252068322005850531510212996830302729795687660944842903003544542031616818329090930553495308310214957126644198255727005762626311243149946622751279261892074613291700060225845814115237432645686216201038109415925441394826078789238588654595163160778058900245709901744327273076738575551958273532308697420367269238516856181808916589908932448475818369799212755809859074844831325227106694331511191850174999332169591872754554933931157059982199437283111643378151531689703365416348686899687906078693869925887456207681164503517859912141561467244222570062778372572775656981545904262017122166669897873927085351050779616246584648694947127977866971762652482046467168157887627121531228844139002463120418580300015802933659296851953340507203658997458004425423755568746836898400221304246450494387237407646295459020915747031163201027605026150676727865706330405922419154628791799476900536604957764180739518496273397251737049564831977528333624236458825848638576749944204767110512765684427921806338271048444680441837168654184583057761483415306866109427392505880753238958235988423185278504710144767301805714576105776758500121877637045326365761259070967320032041332303613666569823423287647246641954072774948774145769524068387119908485845179358040450293002440242077856584206940977718631901106546429481247056291946363235723252089986004787430719959209544279237497325161532012128624191606646525421825492071557288104070061857844584634118229954021711912664848971287623841627862672503185428776275562087807598745232250700398947110642328503953145012021768113841663011826899063707525305010770307772423070625718864290211627910071636577181900537562744627883950540873048679685240599113314577771681414134207497822283219840389625710144995015581619540672556408399134688217269207981297622824332115423855582556861830839189828435203806488160489649354648270524707718766493930575679269486682200326437134759005923858718152905281064008551036322002834318856452809628251893629825712130442544211935116094058506822677531147375579767618251956961207502576775135382996457530123957717877888840427180513197900627940661487556209439504359925311444588722623459411610893815966610690836249698740105515795096398679702649870387462614613048544259743822329388430204244764764979916292894466390408669526430473322357592795839556450694237303851353932031878621448196957453893903060333528341128590780928706169422761398555015158026913125028784268996614101787449477859608618625526041005192183595900244264710098328607310517765528545098877035513485524399115583455962807735448829928854291079930182219701121869956465465990969480175996258862363533318455847257766925803085275989079438219221231402847925841693331651691112069671427095466224407833723210641037362032615877140830848653795761489814422966323355548299943372495843985471359836765474350356917013030535994612400980252527751839574449421684310942530451425424211182095068364304606448389102839418450655867501480953913625417364011418016196475258186441494423368047347960006780537335704332085816844687833344771992087682694802191208699573931485021829247149972293906846235683122050987116832802486361119237597705890247182716610706839109671013029304101415676170683270112736988745691752495167120690401053766390804182600789859795705669832457683495047117014393944093551830114869520418866490004747284393217085977720142066594895281183806076383074600440956099160807640842702024003791281413105187042830954494062176470072511098205471976682751745489308742506162231651570406750491029557525233554889252853998883417668770105887751606365948602760602350159466988257684371215934693333091460421799044183185727498417424886469676067862436509190013120417275917966216735510501162326234457271200337234328577130910887861737716182119705144689162707880480350237763561135791958012104020231507904871245846708009117920305373497940379303478507597667498046306516846622336246909346837445722946412604743242105632688912217921875398318669134544223232368862691771528492736350095518122755983462502714424761728032740111030563952953796445820159935568515006071344405029645601430086577980402949955794343045208812099639178890381407222142124792047968360180451888504464028386901367060992222113833277099803306604109508310334653501802497487707074331054608348816408075033431977377506601100639735068546080880695402331061233055646212610697149051641937204054701352670173090502737346954276225561349572923113672453921126410731333655051646617979664954996278680035266887926480541090480961627419766283813934707017015531552865126234279526379471455479071566865883080860412554461347887958915529040400558404728219091412941753784191349724900651577422391946967435448966816921889228073445163587188742262111813523527622232566101676732457476813215290699644115722003593312073865301253415433467622588177289932659621564013343954452916454206202322906668970078619875908715172374308471941389472271747027827895537987609443208144704118629874074616353302253343444566084969889186738003678734810080895325888407495734783231203133508032233356854735746364367780892321720119506127412774118352213453045053787956585963346435381920489519409465123877681648611719524300456757438010344825434657001743674373368117503465054884807802877814212430630614853164135921739814436904409614679553917906344331186528987425674278311181908757709877053006561160398475066852681850269946588363325216944423820749607388564775099913037419890566974071624350075897334541999122508884542224157371296668097436760131724663283546499984462273252346159808374677706635824047939143729391620919609179676746380893268604910998341142683536267322857647667456044206540100412552880633609553098689577760228945007979037549121895642386326534731412695175902308594007430461221409959630580891760381258381196641888481937429617702938910455606996593580327289816827815889970364540206205368515864266444084094214864521917477424615767857814562857167011839116823111979717922115041937602083817925215224393487046414266566170765099961178374587789492648671775691505306743997747786820828444485992035756298816317743318292356136923928937015469728801001762068131874429932138930078840295091611088847774057679902310735487108216346108237879846160217380434956272876459688480551360003251443808143068349152640758379856926115832057698587079862543653946366901793460995336894449587749790623187649595487660987088487991517071975131170175739846829889877628269955290755167378752277815440915904352597773006560998594591684695312687999826860493005660836757153822992211206292776969513098975778939568469395097671306822304851120952115591343513757766020225972321361053634597455865921241804129963047028311809960749106807584470179395831306863819019948244486781509103812757582147386342255392207120420086627292543850027702542454749086628143515832134470417424722647646343009483531733166764994201895357986368001063362550019644546425954096459703269166722871306088369761457792736683616482749773627060247210925019538219607350221942256384839002980865225335604615999287818518777635013942110499308859513342895633318804017729748781731954004923244066462209469516312404234099136198719949759322607158976845895934876298591017268549486856000650846647284912709688893474482198598651260845527570224785173648421749936881204392887672664935561303927309018874053817097956050068773742176618287498907649153795117040083078769380878507473452882151931082314758887579695796667481385943593291356824006991127587675540434552758542811175541652387844317167558642143492396927831987299916296577034880576578020657311302298542220387586746622392061288464602921632246014201066401630068431581197331591754371456404045324841274518449635398247578456782251318501254057758702048932816560457482338889746773234115646095230700008939859325953661931494104214276012522222425537639306588288294509869567567979064486363813540166426443861805040938961773822763401640776513510646539227413751314278824566208215528072139225254719745096636282154171742879821866941445266433046254309365050077420475106841572548588726233244962024416382908895096362067446182534420019340796969801682023469351922926453254878851499029040375602489371334059327107113260725189916062119356803785024055909660557523793708267347342510137870787802946216538017088774769809507182499226405120396087511533264926406357572864410613914897885943840858920415630848795256020686795958908634649176432285678653188957388468670345087254806867364727667715879892423071223139945560600803081881120105210053968476101229057662170670932713094156105468440538189341165784182408856229031518168400749742193514104457261818940268739606338537482410199692607281913089433417746954329967989974608088955113389082996992095874193776409330671835472722531901355328898563017954803454675642528462835682543123867562399981334028620136644290971542847211273801351225251977868138744062401485186867008181018576637979532690359546580378310952073810637722648488107952149384953041756726877617677063812130827054093360904026074206875522171038085575028364995266751346586218971780174403349661873717938028538436543671909723799022240690438119869790218098527018019228985466264679963855792138056658001894517105262016992203260541736225278730030468241127391994919266364254761680696786204610388825914086184058108930170178874861494422389371925791466901880502618601629674497989839419985148244514007919880653674610888093706872704899201696684423540937015634254540812442714925252370129418526308158629018376771290043665240704639769402470659808866041323489325607855603653776984979725233391313147580681881553004698596167420840161428977432066065213444542506241779346245357646658164489806764129459326634231066426695621395450494320311549785873841712291281806191263024624133345732980176244082419539361526183351855470921746890849875161411168273538564255179069386538559215810700207943518221626756161823419266113358766780698917098021428386149816995269400072710336200044956606010136188702881072018529549440209157709572931094047825353086860443650252298652479207613099213271831573932530274987119480151098272029178486731885283656092753834365470782862514948705529285066436435611478135787954170181101930978722672979182575319283276511712651871078824861884803751382969198041939801376696164664333699093069028972052428130201123908168995582512435396578803140481220467133644657339724926436125518212191616159356906635896941897773607079461955861853083088159684709612006159792894302538769500289947913847349582599756423944044225575662778473951057305122900725434575054038680156516282009128199118457785062687189992519444040027062934876587135988375826929894215434531285480924068987361033093313931053610330772964136332983981812505909805505965314229874723257176362784652100012892559267382860893299498137658220566256200048409940582979946435517773057672646384615051154955563084408929313172824511602530878764719819224731767954872730495538316525604603340069818158736076637260114368013122528424437607424027183991251195332773595064654308383858564952612262704518564963627525312329194096963787863990765787195017637718776322045187890776359004696477669496744963832330928826282561496468905841470629154543066694451478147884368985098250032710736469048214964019468004678587295350906855181218839454399121438540354544486033460782904038009502413776012472546973320979567757270812388221538310320972486234224771288872787035281695363958704780087060798776854963633099652469202146930573422227109184676474010469974691832766074030286402748289617404426923301811546623692350511472730471197795935741458128859394606706944669607594541690367343021695276466395941740249720716118972096504314136196787822611840343493909626762440958110789631550803757698257409800687489921423610526706710841141441031166665429335141772182008270967803336522630756579460726414440901040307320318163083094094494216016133547791228708398770195852942942351432672620259348111006783911365594199916261125298361882462083537330146535411834857121552118621849028623610953860499436331451384111288384686113897842260231994511000895362735438979097083257473004630619348783123010366350920058824508024711045068411742492250266266138984009911050429309443057739018735789793033029216311611925519214595991967436593755608580911201714708369204756354346306737833904333934532010173872795433706243421867744092178837463305097750069685517372727086226036432367666429753552363981776162789483431601534158064656262443304179273938662321457802720212578452945526862441591763934562425213997800652891715462740710408246308698844255907954379246983996319533875501459584970981982787990813502322898302795242077083069196472856096433376175099363580486831490387221489806841690309586641776662170790817619750064692497153892187735446389860260703099720071313647303300879433013982255069362082143244657054241382938636987581512103849865462513816278411434788470722462652754807970119863344422050623605837153035367125298961348780077668335129995651416989079850022712659405014226145219332745502694626035582210917015129410633861139948868092641203234553554485609464953226165181465509392935027137402632605127123743958913986115281603615774870374292342602232040864729447892549665149571583186228336292699807761940997475848098001041458314210877722894767281108366533637838580495066729354756958919086195282413150995958192488094126608272367276467335096777664694944474008504777390584443088153369328546895906622109108059815000648345908432064007979460960238553935584128174257726848537530092728233638858310429371772747471273911335644595147159096706512376948580567914113970784131627079190600355653619666289618561141249559407667887046591202942460729301496064562517240822195983246326151541653517186924435877311182267722194744125612931100011823796156095716234911248425747340886208178649910351875898038318807362368911194324511509939002633012882800365263221267832579650927755392771790784736972187630670493379131071200572175652827646243058679026388075473981867251218878638008363844461166824020814218260116180199829664594068618614414893444234930020356331850808295525236245808781414138770440118653061032352683409742565885466283018541600444257217533632390501096706918104695129807987799089922118833981659656143637607663964054198834096317439313351411664998429767288284320414781640229951892872702953345250550912054524455269829116081212659773480478512455562989133545647670071565857553466019987998475935535668052026712289665213332407291050396252855409014676739062733698160003890219875435790860268951189878194032579127413432126078573439378645680312061973123312109527710506899723455774745365152965912857576280734602326617567440962591646545607126366266896633479078254355810345725644657433165470261715539762382959171630700742191708260438208832513034302167592204408085213841445704619062513370900508943272248176476916713757054055487351972539388934935426507895752156597374515202036556812354297566371347805499161751825696847621672713727660827497437332709025046478378871636203510249667629894940325720139270563962242364836080903146627107794185658719105606168959425788190089287226467649513398565051396780620288032745672789578043562465617645291985146412424537046900569745939927887492992772501727988972000290770798811352627911715167862498291032119850105401538816519856072542132181450842650745004066653847168244256066574397386059092832802426805409622613041012227765629418735504266746117808203041374456611607102939773909301085244388455672213500409507902394625291086975556005993545996935391960275170496266229264263417240386905724840769633067690762223163040311401771083381860747391418611650942046878104368346962572637414175104079348080727684448840746504568181123137192929505363699310501556441165934389885981962503006478615957027177225576661633208720027401140678096599799300134805380988517905169668814115886192902055078960336568586943211267058338155148557843633920302829339422809071906826471365659020501728985343193891959933689484850728781040463753760891453777302514134582576734032972471428513264209836806690639898776013300936376814600617953486704480095361000795014915036297429569462174377276402258314225648164386537697635010901960651533419090104657273208023584678762408564628889157452370276028203849923510470175214406041707767609454874440436582926995592655847498594069137043365239761882074828613924548231001321773608832304552639845124514620687276331744058099555882899952659884839611578229901734662878203600478779896115493729156957159979434484538175163251169225328002416920671756513975563531167706356732210936795615354427209731490299188834063043359598355148818621046268070722691132440462731612653376854470738422084593119108117526200504666471035679373961186854097085843350895623046756012612698608270919892316324621923662039358708495670381970161256779899139582672404752510370369974282630269238589705483363148902837927946472107225823687311926640557603943109498064434081469387095110137744079778459593678018152845853422575267359932521395007714955677931467813059473691961478345790336019777274748440279186026177754536418735210645642507912321016311517828185373478229802935519044209542288115333897257739625118212057933554843650113514766695038985334519839433220362224829171801126987699433133004294166510960798964974745787636239117701391252706427446186191475001965895823862356356779644057948808869355995123082447201427108422475053382140156652041855900939289083294168918530836137969596057046491280383182088980441124697755212941283749198432547660280218065801392087689166930206992540673472102869310300191606379663607005520408775794448350958165106323003627700768365924795158218935363179773708274755706349607664154048681204304794203733948494031276642022554424210563721292979473522819478729873413547526475797188303286956980220344791114718189888624083770732500808783056780603505181475284636058555392189351483466402171149385984708596316455545346806448458702528333884931406844419154530335173822801788918757748585991888527228174815152688791357325428413327576941240258382004259443909692736420766937680779258569880455641484258027926928200705877361786632550639360429196588794797822625235097723319325545698154550860310650740064458003035466255593071923432168003573471163743143874374095854791315504387204504222324012781167550527044403204118349483161385253090019271827451781317192181188579850411771446906749174859145580725439598312243798857385604838213216870345050853338982677808635714019243102336738920662782163527993039636745569761618884125169275765850311029994540223807607310561585616359822815341460019311929013484517165200604895597283058939917524102280161330843407133921943920091433905568329017550975124198231294918000843257653607214660431046887365007873203535434866498512470673494429601318701153269126841918049064417511906298200273567222625632148332929775051944714967451111311303337043893943311845090453510598532252847513134740704625683565740441208796809663071284954451741898324255920850745961746000324666748834361728611478987431832750286985335170527885678651896830186697528353351898133104000578611545658799212164908373267985773302857032583568222650785475735572868745819063335409136856688921941307371868513530549266282713982680257608779948138350357641481541934493243148984100312438600543096808467506101580618926266915519576729125446480662302933061721059076826755279510376866866400021804335547260682789950724245462026980086722260487650913449825449986597537771841568131258049478594470953162150443058537529251589104697835710425409073479290478376515718521245698769367463961103099466620811425760063605732339860903920731904240462943951199443116310952695314229104410457667643649820769368389550131708111278555451284342467469413624042506310063608617477897561631857790376787097220284292731098494753345877129634885896931090365006376606113372224144008542009406925264466463507786588629023010360903688820759722880535341673939477762960141135246718411292183716282486235297209330425420565462038196267982109696098378382272863334905621819911167726787217495132505519027719223168406330848413834398814182851169835346278875849131728251864630590332770104934855837597419419838467365803530580008161302975877817789036855354756171422698189398162968442104903715159262524144002696741605683482295839422205158118391208212142540198427022823027126518867727964361916013062814431916358363680298245234256130286385434465397362665971547274442460478974395059148475048750770629122473692710162335985177102820274594419992465255262029807842434547380637471098921125641307284082399294470702852439183225156986287669922515655086586387941235940745772721451924114806294305579747620154707416843943631662512114145364814987513192516101820064447527375861603684342181582481552179543377679977253988635389803963029982777960727877902535211735334759282102386681777074496870753444156940202695360487465957953854860465401776775823471755969456035422168971056563434126086268966102273626574806190609876599755869608902208396403417998138767133381148689908378717754526561488099667129052117640291622274574807254791936345712599749744661593390408530785236922679402806296749831091756928730330051719665216301986553605035118599014859717430434568115609181565829611321614096835480328095816819399326812019689171481858797255625180112831427594957681637119551519260217253339849615177641631933755314812785594070947801719384464101645486564638639859154531924459888288479487825606977429870036047350107550707977651325140988560883237190991771441175541993715970911115842519079778513967329811399902998410485173431247629297830208087166839736112245454161897869621123284123862690472307155492086485015580143129175235208312799688570913109172377512326554319560698720636119637328978333386233046005481071259207731705004016767087910599748954716717791940754712577047601320517041747130625214988965001542453849935772315098494628892526218786735895546680012751981943132537227133779931910871810762650188436695722317743852574582446266321884941632593326332845257050687411490115218223838453902553360308468097179785422063440567176773820758857026880429826799562908718277078139203903664306179767558998874165667604011940029243348385357521739340554295817991313054867820871152184121596342583228312657261649273833797682531130750729847158232567918987352210271828428778610348488287209038460556079525127682783302784072497476531111928149891881741451473247087921464447845124243325087563386738973057208955404878981538437451207576692145833878391912497888551836974427626745589884695524513026206324376436482828003702918037264529935948668402403513746206604230115497427789824610157706231521340198186000455645000702298150037982275726994947678387921643352550978416343224812286042077732927612172506029141494579004958068556436269029559529761644815046358233242605842987559087142110152855046298383874637264172844658413384915662399590505328164732398742554693500609603161010371981018780332597948682887088352351758228728334863734440439470254970165080864385773316565332645656842580238062195886618464445136955328876588280322613429703685534196714474558175092441384087382411154559222910598939182908032950796593021943603037707161273315961262429526745616898249139300976575770563896532067353857497374840139122474593673954473471252189152312049867002351350033064916192703848626146045466277000056254386548973006315028594852968457355795187305440172326633378459483998300139893751335847945384625405374732256938889225197573354821605141768486350523087108340005226963774275206154797465390999468175247984756815423229460573046433446834705123944038346815927768783237007492591586135096628238161339223252033886581533739918430939231073388871413479725629865438016116819731768276621617748391358360798784458992709847002501941009341500121013330350623841177922626935951468465638015767144845230024751573490372781221140167247897807533035550349283590679765572496514779821829556944519567464397468860339467692430693409978827574887758851999568414223222635988817249897272971177426174130705189320216566015704746135428540871226050729353991449783170734831163969713140371796583908308668083698456814663692896347343894062480080056364562837389681547551808057831017188071731264021429792083633147403109253171611785560531815429173351313477885359399967919896088319799959277761731959462181334874942303276641416329404249018552693525971086898845960841887522329234172989693981635248605770048738063631708465944104612821979125897818894949896018212545405993547493242915771996933862601904309826038400283845940878684296083864549473956396940699365761900859390696047890628928986340634026934973530654662441832464379821391130849865784471401281447746455518613065257337038715755421863823089461034452226024106634338213582853803171198138354348875369063750787369764066929413147507170922509060414528983335004755627974592241435704688866552887547202294054107390033284008062312315169680471986695919112251936686865496110192659309784872608444714409390439217311949522636728473648382000383214207530231605205262585258789839452954051154715512157806497916320282320800517362617537689367178811503305319989178780284071618622075998898961267514012035107489572310205009726954508660030131149744096541925266894036818124383579469175520770817408125068969139758069830983160349292379237163794404714042112750568536223167511140607999561039221753045259230722704682528031759519151959450013609947816909614028745453201342076668772935163011699164262340457287525992555421799642661558687666688052279745982343316489204111406643884807568259009866290862020786887168428748509794910607423168407633132249126742001840278075192114311978339423711329936528613613103021472495086564241563348133301109463009931651643892292142262773790158076153819755708742563617308289545983452071618024195348910073903227978437714659288731781716877666451369157402656940082241470157213867421474729027331652240804617487750415514706802344199052858477088021554158161580913310982202743294026050661189785716377370744610818430353990891092922254652786223276851636566366047005158725280107672751762466398712124932753442679236078081240550162780991719786992906066131596856680893257661211801308028448086916156597366706354371145423465082409013043869269737751707342341924895865040118897006998177021103999931814501566915622639623390017623041723354282840753602666797607106486860936960813373171523275647734374854161633404180815186668336715797589807819759032866715775436769157547494297758957161950145873822665112298779576907757479952741816886729982477388779415122620842919302069944923075399973007658535812545329225703974935171261255471007217606120695674156283769450760143419951402280612775583919377892352917541363729301629995702072294751505831182038498307615705594329969033983423567737553002104013613379589484392597043100862807426127503602911280610843465279296325557599300873387012734141717176153828790899172703476542103979077164076937466593995862410185495807656553736002245954925980493472579807717846004334221930953036466142580550019604512086862653333798883993786753838636087115911522002607413334339876786866376096652593689350556271377357586671622825697936797229477464463791483911087526208392614788164219104474270374389439713113764394281364377920335045332221047965641826395168410204082308388230677669414578844663751697116205231273467404716400564033776390063061270172443327954524480618238399727362490265912972330620702385968354173789364562472162373574465750140151153443611057797806082487038638289068157508762040606389402977359268641420642954250249116801529556957553881329374895158741568122821603968988299702515490291601639687769776964155211556678371799929146165890203709209704927624852841156448982378898329318017424555358203272417374963613846717375332799769837837410910251981941779156987477561716692270005136197996719856727970335284486857890099231551129140833855328135405362179267779768438918327123818993697930896058692319498802186462416557268327872617421258023941717512425060838011012886726380913899059571920305110585273602446789737711256457358826444638910722782245671575254125236343479952046573580015519846600439304958900302355588502335725636410801531302951640538764036456935854530360101913658621560435730020571179894963418595693186964697711514754037422783248306857704954611284718917634940743835167065518031339770228291483878493555492802748992989994198277697666616315503583911841727492751183802629945796162129599970811869919464225421585180316438221306049101763624071097432887178010299125523196132751672452018612856414283604152434098783530251871061972009567453393870712411090858859787414468479688002538315884962045634395355471770817188521908279665843148914142734339203638641628292737845140682640322359120561617049892044062402577752486776428802695289094075561991005846409149253395341518375679485235820904558111700694920166149278729805036853620358744961316241995452484166852687126017326998372005195744054481136751149841660645188187037026091758526590677717616472595072838026685677357391273446883668086424224886475469322446684062099235817423586100746113364186602244896623351547911099615134422209446042165871848814527680451740124872625418082053639683775831578932346056998042591079772920981314571066535549428906317122007047253895117905931209040340521542113231415948674693360001233111551014570667013888686807533656915141226368583100742326223323484051382412930032202000400183870981447965487309766346092381460168277925315006149946531221464170589469848649381739550289301389827281611195460412086972842833681915595903788742428437202269380458312338351644777737416408163978377362651990522451184678830848691817058329125715767730393622376398277939989348054520929681943131144184091924121411238414126964209474067042344415095834018478162363223959932566948708998794218032360236536806142724529746473400412868461931608885360798790309876637956627699712316124198625001594540334156032980197778316081927953914925255964968875380064787687782850259873165867006602605256747106733635792340434040107944754922177822227095823888777899041825202533952612492047863258717369574569176395056698848929910059957217515117704906186290084160387771885023920506009484206167295469756234551563813367499919410742649263602025456772510025546310727458240520238899799055163223997667656876970895207429228796894945969277363081450286422873836495938211503968870951364202837414981908654875035110028541964198256990679463725530114547679914449867753479977110044341891323692900870596772924201125646628443917877234154541094907187019117172317992849335425858650615400284348700429044993594268099438682602077705809779643119340503026811697270331639219162862209958472316738523753911600459416536437084018667115631838679667924474525053006277865935523323851792087827985706179028918467142203535301177074736664338616230420164162222582042045881387217465915627898040910067470495590698934742439966356764712184803471677881624491244603667698813349136136242616562326694658021628463698780453521598553144854922279498718000497590286077491578004023489395471737439463701056563826610429732112425943307988950615838718286192848085618873288514440587717329042589647888036200871869051300213786437722130253264810497218480637489737303097812456229392854206075223451367967699007396816498183658785467908443859111736713066684186736251523845506902183310037467016977539849684881871540459961135508085529360425996363385337537848050599238933647869695054974454606158604498225400664508344481575985490105519620025592535036789904196081652450150647409566193283936569485946757839404034537170661892411860502837999474487643919503261906866516814145498079654666607594146908561427298192591454007731782685681603879496877092323967569251239447081110599368221133133474232210574311596114224428793027688674296335507364767658965642411946412282693928692684426437523532862117473633384220729722118639587151511440220388570691510717183629221887996113550762731142122802720692266099045094203163588570421818657909370640955569838460796475314342793407281503477496597932584385429347947041311356277428335639709040763025097558947528679028365191946309501242543366201853183959790816717121491952183956899887103516832407839437626758945045903372135878547169574786233952188958615936598558840867595630652097896007780559689257979241704485052994588766200363942349213276892934189701681547685054825555117492906403385897987842225243253043297598466746831573816560134128417894092321862542339755888225721320913334133412215230144364877728369090085805398889566367884732385126919525982929267777452696340271195214500805055460235949386978755752301362173699602178954805045753510868768945740171963512778532856764899029240459862035973309788179922849717255994171557123659891993837116775393550696954926275385274480967073086474473455801738636932376049492586722790532950938164304752367664537990515185444454022556689427299130603150661722822827066191271052372985027781344616669916652795538456306706229203533986398688988026559633796705546819267696764209768631578795991692843935169210649755529413887035807016576812123170402115274313145091041347004297444445065212583626865720081890927025463324071737320895144355553657657777731625022155870603184371778327591562908525022558855113647065278847447125879592319850417396769813753989047908774770092165219597198207640136428547707293163907026154467506483035031554088814237068661124516850538661083945101829576716243840490338597947132798944978648983114663932268232666390785868583850496617299266033970358498974051645513270834478206203676627111911848538572475929979177952504621404422781142752655115260117378486066893514563908662639680558758070804391555863475518043147823549734782317361485339607486835918170870389890699208046196894115720640565388289178069125380659724563040280856196087592918636996489861895737966300929261430648790618824624688367854695841484025885349666890418418765603435785354140476584790027699032712345426184832133231308079782673484873215827791465911338985215726274965101044367374571154897318351411477571732396193090390404834027008811895277188263843819858790424788880213575786300251535033339916734938908295195122192555832569990515395467631436023730406466709799321026017857128865254765735761248372790268227128281043756133211122536188387232099353550473442087298592179745116985526500158195079458388539510621944423544520300380830649975302220596604816334208756810615408623025643241400610918798659432118342193676085127794218131784377033839943021425297999247201772513113662000384639928790982016132949132300987568845733533551950550715336174324546096279485070106164872070938187799869578655497622982387471328838057358957609791845796958300188689782153946365241201914908208742369432530064782938980102724441418390754086265200461386620656082968135231217352393734319853031295389522827013207478391186713652107068052724718788479451886276282770985477487682908635594809880845210201458618186979146502598593417004582903150620850153122118199933123497951184839263870114198739805110442828590389732106033657568083986280823008443849870503941253254821800923067515687322706586101483849921219439428452409093208215174066250775631728812032087695759566419105843519975110881576783851102859478697855409429517515103002172694778782755101688679207770828793500467225924684423444211861682910395192235442884483160941439836618294844795621060665565295778395881889631142592848654785571912488746443793555261571396111136506718023699787827765116006328006682784490649743364594661038636084938902721487620854650737951409474530127845681908038278453453022587708313732773099591825518858413880147007999622086444894654362610103505881966902026714661264746464089930101077166197285989823220999221105262314748754039124434848750405643049553252809419681207480680778448145397026405017275906393979530062823803807343491604039979334601878747964535155219288567538915186516482958215729257196310265333169471639607492025775390613159199340114537848783845155610048935070924096409367173790340196926071838800248825570737398233895043080244162351124636409400551892859622238620475523205756580357701104335683274510774629185753430571879377462204368063505187813537947228976749216949301826082886449563948562640302613849212950485952595775084446630042770948143063658573404594995758719020631319444716637411221394773278672682917669944498749774813469170631254176906422242850635054268082875470944233324017099273473321484252843710312783461049611872250660067049375865166403700238882998582767969807655787363369425431644467682301968805638005691661623337140587117093680163409609583695513951454626021613414126794936547819802666591396658190092718511404917716722097629272100089392643723351839602660833180305028947555942762490996276239675227676575014131688611747685546905678374780640798177832718479780889837049855202328640796766746268868033637224132494777674592302277262113941973560377410026054692905533731706953840503972465480775762296190890018579327004227457290117271995959393567048396088050808938693907524671033842076193585191168567488897784166080671428422902515361923835971473557030102406376581391625169727333214905043253091460657079855686520946690681758417234553201258681515169343211842352655983513871473759279818462039214303800959967616632361418512608723144529263652759383614828194049049150966790523996536355637216942432016828685432491958364433142850200145229543907095244539020606911843616700707497004455698978703692025037121028111329864386877049130588030132377753784052435347698017935504391499065493696902725236504136728741656039180150244607299599900129319016970592868584561811824541023386977259808414073369353571223282164076083981481242480348877450643407424554650870683586082711167277530496291433536088606778203816597684899197963013205668039997492670708696811504800111977947253562881387807774609885374961458219961835338056070222529922235274712204393401462358727801472095315924072458063609115062983792550462826701396486217885407139847269460706990881070451675163199185162628693489877814433269467282453080428451331122854109188362501678493841352260391917088636659457398123384059845908550040589494966331055816488506926351343265180138696987376164899059831194460859725793759327059780798605853247126636165802691868197446878628503430380702755742262979194622099532531014358669140823161700099607715866420896183317405438152443849458333918046911463814706130931106617168521864891012797036717575342934970941094834634414174191153340699358351616166142943033029888189825640081814481171473278840608941854471272269641217897068600511230625675874358712210945934644671103692817282498800299517012478909948723782337433674195588872987864298960567917357663465186010871890450174514737149485949479840556275046732076014606530783086474332733253253791782340321645704806456687944032098328874602603168310621450945400510831541159567735897418369651972505144856149189011285295613235619985210010440402135853458248460287339573712360400644310202550243744705061512052592300415565454995369757082165061029821262473751390043512289168411650645707970533444643414044437743318443761796274867056648391463937038862863045631621815072604259243116164658318281169284963317552608188452953380945685122986238939939468821152339094308691888927373471804621637653574559755236417638787157461045656073620054164717864004443272257254587103510312631320317993622862210040010373633073359555410307525684298303794211527790667462042669049841059338614574914350458165459164910388264795381426391480775914027111336564614779450144041357753439074901517407699188606231253059723177594583387053803539666169358245701690717683613085095035611064837359091617528408397634582202482500276949363284189304635604254298644726193827057770928732357152662144320711646668654461990890055275411049696518608238763258467912474056104916220106072080646283946712459556822703422269341781291351372148849691511053636757219343970083967082616832213511384577161687406106415400180319172617415657566638983394376736175072033042810327967357391808293485125745462554142984214668561996010433632296659321348255800853849011201760885003456272763445284658802802432642272760950863379036974772180323207353786905178612028202998958759587378158313882104648343819986330271012016445607745396593890626973211364595642496709063052349229708146764993902602142521733046596527298930697863925405434272050494826888953898626979491109519255988748281267822107033013456500968456781048457827141508935420093667714305377239933300177170864544277112916011545189452077682277049819351814889793100261369519775340596628088465967589914500910093147816541089810552587230091203829602446364075869796626854055247094094961712441289349184215251575425703010239607650474209991940691793151918008512097926486122444202489904538058464826439277417653200406892348285997239945251401082600451078713603652834258671362732119248168514930962951059024756970829791974404023769485606293051652407714451146476430252508022693536732372628576416937558913507766093971500616027376582948419586432268408436773490116696069296076776186968515039205067882645335293783781261107297601305749213770737282203415366063251992165317429469412814060071092821834468195096254220136829582177759550539801701872852900077435214727400198923131138760822568433395789010656516746763957710786669460933569001132510256166087064895799053226809437016221847972629811523502144578319887331140019853007015998422476323026278605483603185969463274397244505135277103342756686179524323348494752615214102075798188710969714777391581995541859778140774713924552357192884313434404184272879118018075779463727863528995698636425708256242478312749608806447052043940934414369250085342208799237565119906961898912379750676851802558004508959828836419980288792609059022701578534957301166730777760510270156342753697516720274291273360333769137000312730191131317644687313743369098785520911297292301425141708631892649113908694120233594194328941368612532036135332149424501598256622715304985317434894149798005360756964830559171994385219409749766101463464780217265699588986083066272280707050015379774053650092588419919056970624761860978952656733620026958532154580473636537467413832023538952407369879909815619995117306306164031715939163842984921138529605903804064045961698647155348672184327740706603979028709072738915831210476412404190841282612532391751912391519232959257263305612090841527067254021018051304093993633733066424601759517789832592525297203327392788167403369343002618190937228501877440806341121284505728358450828728197006950459232834929592328342262822689828914256006180603733219395975106139007008763110332892578507420083507916799239954474435515653297889506797301498223770583547709714299073316976129563578554189156027708174523811837121585897452817826297275154562743682518625963004789058344387489682166668651397707282050928956041367060068861524009461523408774777673558491529028027650080271870038515200522254884195179293677458031350875016548197704976963169779325710895047381283884720208977837577704886886066337816179478091655561558022217862860488632740793214431375277759582070834500916385882422338091101650301060832190339288393021788196703809222397658590318613498788211440019977060934961109299543116673778052482547980271215938042133229915939563443481824982631641316483326438530892770341818471596607775184728999662384718344159864670274341038129386561336239854755987815374602413987688471432821354928593635541825276693756671372598710454987597078824931449045579706171761580310460164050598125164298151084077184380969014947599630933972403899543089273965530355850321625629258221961530074051417913748304589019972152524378266399854505054354680355317109107133271373501455517277591599463990659847552901568325161968135155836048601821724510672164993531526750027744404487505527183692680596616775048099919834728996720254035884457855371096747124850380182825067387990665326888119039339491528100971630811332096503976401720096423777647872109958559052605549291693203452194691191029324350704997957931067930212618565044445674101870263166402023848660198814968684976849996904077967992470736525665524479785497063874414419411292902779435163566412633750869896412578133770047517091868238227079606983232830359369594833123456987190405640184884777008148732282436457906293277100756537253957829298650259950003158218341620794375280713403744785078322275959452434996515352808997224459630248207351841823658142908272889495211274660449627363851205879515420440143901816145686673690610675901796448461849428656415423571368109437864262507160206542176888407984463496318102019056537063671454586068440000817059128161885975311581484492232569926550394883945150319847916403162472759667167565721266947493812856419770192421092998692038280863194180379343299647663456435266371690013183991346571010790952123836568079075339972377423801298507364552845292027044962617933434041192926819490157964960715208078944213262176597733375031853869583263453203169976814905259399426580368678719388245128762610275232906695598413985398392285690647207021365662436878307803868820985456062994303579969634648885053656696987186128866612523521174380833693184852933470015392232133620007595727642943991994280394005512973784370614246402719637359403698338365475236542837129997155953977797179697655664139862943554730665571022267224982645151203825938645113419299906867772968898825627123351026648620670423824603403508762001632085610445811273463830726191310605272205592763180590157884935618956803306820356619819021774782767819423752336029254991025347945042579163912071435563167704163465727488715884525735789560365171879972726177164942529936762105897072125135793995368518870361539245033046746747128902903126717697893065013102291742892668372703985302360864608419189352578595632461885692636910685755482045047820321841139492738620512650131851429321010847233301060076212302799573609552617022555706110326874265332673897215951854251690756447306851687081334986370298517308083249345949932097211850317654030721371363281880902164793909215095351523324868844241590399685729648301636621467247532247797865802228730844283688601487793024279161604543829093854146515011969875773472020746916359337046448375311491160667585804233166076763650687435806971189487901284680410316192852536781932268511285736876178760456408049880058477927946983020619892222599959042509825439652532482716580733728466179200994268572740552133027938181167210119327649722341178372757509920497234989185813967378690621924314426694040103904769330017680167312586556705789894333088769581882361553530906193002434189319120259299158868729745215189162552735910010843834619685691966770587611689347758747155720088342289999696720808575121842361313488794151780538321915604500166634170530376913764092540898072743290357599617871518953060249290740465013421254692928008017528460376156896836668955973895269591264418011771533882547182905882765798621266819816297548224427911852176574052455692636188607715644046236878373315341313885085695285818659121637330936166324738918985530652596659807577307460545298788353575915369298425747485728258237271690542411231806433178711910225352575988963610625997135535485625022730256432937273935085808829052477283115165177200241686086190278018330206334699844453391370399633978895621214352454421805913270112605731336935315376550481369033294896773573771774456790717456464667248952580234401274004975300320842435272156707278232621490891098010281006570557611869290821728654153658035408124650754724117168664730675948509672446039173641717299888472613226376837194366279465127452240868432426232737572993581082227355865810176713906693357631689316471882213374119608612119657302438229519959024650971128084231568328613792833482304917225871086955153563032508071741984730082219008735059897684163414723122907250208924632113840446374262371925607149368445824166968988102671770929184951256457477019942372091109415392122136544234917585874209279112451647539948158750432727184993795867761529553332154122988169119082670916889710578638689427027712821730890547304334397402192843937875649867863460941445595377740882541508080085948133976157368609435105565382461147605962167685152934959455343678078344110675601104967365691057723299450072585029781037065030450505393248919399339828018208537333609829944008758601984153980690165013691804674198041270818013155496332113782719541539498064286320982709726354943719516500405998801629152464878933076727149570798445787931991548027296771137115300660802416967379892865643060735995315454551236067192718400807446198602774357785453838949720525881568753480176392933979401608344478372047236255840546494899355996790321760697832099318169320466712068723797293102775837016531237643425583696472510425174344562529275611516812548634518647123558947425589344824653160105354614923319022442384845413931489326321438857747547957238959695544293483748849619028633212342540788897916234748855681390944126739427274015291041479765842338154204001482795346747731275582569499320087724381236100882321594331949062990101903187272271079065700370419899744325360141304919397300077948883477477928734509951431407867399908392782278452666214608188795779721658416357664042168862825661610807367200093315396762443330955489814162114832549119908835472383456959189677643741937373785364828443306523073045433156355605812741291108436688584234797102217851915740813055487538297295739272783848531745817308919673830248883290623441707053967123368084154501107710576716044803851525698783285724217047917563664931833968312140502380704712067669539869134515953273125734359444026714768137774313373878299510494042605290712265781888461703234553141809440772404129233104241396638766929076077464701295466511650418529274443924528577351601608978511308955941008061296248809822180781548364993985362928748253398381723251584546561216238342163177647947930995064110247023711926066767278426792107866514347030082956761596010142177176425513464548000275027545063870497826089488979055872564350282686807439417737712971871498057343738479873236514309153834083162304499412054807150705764802376975084225554180993586124313571108727111713480034595653603333741255861779229850551647636836748813621215742267733917178688789589311840253297810232620263252176122478156129925167710674244434635176204186698485734482680677553379986574172683075506636117951031262594786862835291488297676542866344784019634921243340923264234443275757790299237000434156542691611456360376248903791740107427856111549101806506722443877485010773394197178838249615149590052384930664449564192796688622509429062649546514499183456551701534685849598342803213367796754816619696738463292429167224047906291120382641010207703439501924098148575578579569020707169793210073405029796841917646378764379559319486685337532154365787882756743270356784772136422093910678327356223393411997802041379963737085352281835834277510220548323634248631561274153018000692164391197940826070816137101606501789293458576505587931916487495510614164078979708146685529799690636563072817570978892549905622870626722434880651337157895196809073666131704449491063949059437893650221018520907046508937708201666261296349204928564914370284508367046364896903671053083664893031160359915222806720850852868094062014682635185801245906766922317771672136732555765258629099706414765238509726480217493895391209512091649587301105352587207773378256448056977961124861873123391176426133913880842381420976533809588856217864833085780329497141834770179115557815030466319167011839432189279663435272604035920295836236078991014326984315098480369246802069189286452570116383170359086855789096156887269899600386956236791621537509588185651193717745608057781300085115528932724987450792176373099677298886379778772070095605248795772630041231168494945622739022773083202510803404135470886222859717829925968261370371549353079629535746274023908952229987273080377475725269548045888476856112726290515220221164719636276743804973020919797780678713600794980194926101837742768675161255596459705305203037062148359949762453525968200508279690665136300623573794850420567850760138016251156916019753040026288956219613701278973528186512593070998947706049521462422013832239040735813880348354864010614507020472593653844367885016636749821142745023748586388211051196064449213628888857731132450650478616048116357634653136738477291611064424646754320245990579313339747774310726518244232386312132974562652752776597136125528832210480552982227958816475657355189445444031064515022414151779055616391625208307761597091690487130215440639398185466929169800189316664675788312923343583191802105143661360973976768933147719391189236938394050199535755519560446461232620640056165859883375245133912691565367471722325781880418060417438880526504358248797111833313096233137708900521592218079336128238953747143100223659769588608468273693221768418645120034921139347965306405863100258151231273677059466030161251904331922627011649343979373292565007247666206824402227158765432156963829877336924241238013054494090362031876623414951642388511894288210400973215860151188414494129197547920981251369698637610784918137991108426975480054637512996388647659820111286137944818772312151557419380857653470940406274916744143248037895765991948306098517036141701589226715734410789876776032685400014739014479896805284689400584710686175350016847898715532752767685769268314077489418179051653496403495869048545465710256901736945996750697549805120083452894920859708542325937212015304776598851525856476544953046460998991526115872684041103503347733176637408095578375814243978786924805928330651503569053702368816064895294097921761188814806032645218290728704287542964685843847271938234753505128895481947095765989157433390212910493722494566438449103942020198827143018590506320257311642757763039603116987640609539142426384236816903332941723301826983652914995080557764702495556104457696488417739223173424490881614938599558019943923288782487491210563614686216694980357450966674780721437051858407676026139725214829886715291719564712482261232956581749591666587933852921625047066325685511116342476691486158324344221106850554176605110847992486589103409995341654594002338597417703856342834442876681456134607910890329855129335557478607398575098263995936871492389594352986195181475856357200241750522844310879496462387962980789121627823546334187819492564658003148772795118186248324979058068745411786896994700433640284139199050200423437954559914132995347356667485633439883937767171321907561805792675619915626149814861202175417028547513959717818227414945082333270333135367836419771338915432508351263461959504295368487656574336638504881050732821167224080191176172241833667418620119147997064365562861328658464912874145548095573505972158949061812178523659695961611866066431491460311950214391312506346226333810048897134413895695584721321381041342840388266992384020503733163006259614050682250516778189449383331511433565464144340693401442079930189163121193613338509525801343588375446627550208319226090976018793995362349050132147227753171487073154781540420868041447694811643363995437553933433787123684666714511441758398823003682968604085579715327372178722496776176241516894032919173189562936993883327668106155267035135079726493820562555934519029406139451598929943990414072529375170848448979789263327927621121650110341446805933928903858579052211140500791903841300111831854618920701830962923256843986628752404172378478372007714635964377061324145312612942224573160979396951754994634799751578511422873214486575589204827970693469468080749290633117860883253894989107445384654214054762576330349250245711815952363924587657758834789277470473029193468256622426068777712292332100000595091562169622841008788109558639373720070315414490927892186537051762101426614980074589203101424668893599575169478078118432504790020876305430646531661546640790486751572710502623735058798646693537498210870132944753205693813845590548217680159441621384660620235666615009334811549941451181643517791753544853949490065003820000824828768201770252540883231176921830105406734191333010290342251509795947335716219854481182713228315436643049741232831651871807863974487132404344327995646352810771792672840793203373283481538152059265170344628070870212617859904057326679357314876744599094837735424535135508436114461795730214387043137716589877234376866540527429741838897114588240239169017339082271211960722294550448970286139833849671420680985243835167490582333499213444575133412866810933920252326015188964389630657065963873765100728256047236833746700682012643746177000384999958306800429666231351961069857950076704602811655365959158785572983007856405596888177512458459157532688744035362903053518994809361876417866140050930206938114640537143996729257426928772113039833231097588277063653197753215773440187859870962603279344513243500593803717183706381799945117930797260357707535939435736572812576902412217898043652701045773826201944118055908541748024615954821752045864804771154991030291787913432410607652911454896262893137664091746520653462606699498951267174967426958334312225765801859800563780443392801657070263068923856171007058619895455470965096143964773998748359873884843029286946514602745185418665223840670499146401164216087972604499111079954465250613246506646297880450374975406015637982236029988421741066818525229114623859719905014591209630628524745557066613472533321218327739166713630365304815593007652580681659978171635238617502468989640738256523260902426949767017901750833218775183161665219978817946186601985580086322997447345671260160855641838253472190447877036025684749847264974581472138394268135772836784655935684368035037066151749919910747168302200138423825994578499724956669755116512039047473007171981840942467774123611474768521198368818733513266642435933691459558965174613379760970454467647146453956037406853113595799195073419227287224535639258156370194674363685242683614756207197421613546018178583626249325593353599400724488807423920268584822245013684660894564362397514828956712497259657176631520666203939615538094861060342363944870333993043598534680124004078006514483289198289735880797584853691306846807069960855289060797186300795514731145427322829535232973170891634765717961421559556498206280252995074897012371101091587089961853822817490506137418362941595596480282382792491848222076910856123374119521639687914701419671266454143484642531110985522383558547273712688850974410524895229596978128421385218199198650059260868182453324550000057314760925650649798359831497525260138809227339734084515897635631457762791673551965023426408446260132134429290873886595116926043825207642553514453555581607219305035894642402643025277936217998237166618171893573723686851642031534552912833280680960391794735552897898835767172152763679994720219272748310265322991078494517026982144253340737326322248027773834295576811226314173586831294369796574202007383304116263745973060877365967437851400328187269157947633949610801111854306517468566974760710563726774573340268425987548783511077707900654666956783561469901416112104048080617913630044421971594351581865237596520815289337044356389929106477249730224144099903132932749972178298892434642028769443046998834504971469400849508015309769493501007384149381110348555366749280137701403637344680968540957097695205010491082382472126038520342821260971736971348468912439214270240665589119317846721543827705303732643126079123628864642913070745379844562750539278431851129431087396882245477048286443215124490612438997902240320187358232728671398947765228219522146008124792413481364259357175455057426874137979042939480658866081497305317203905361160017754773145840364954165186568097153670823655023995067564303964645733881404052687979445657055117883593017378921602407255019257025554893676305143215423079128630848462201765593271177477973621073617737471471032160035768212869812927061868122158036923182857308899404864066503702833802879335405670199210071052370039199268470528246961764814265323936826294963416675516742749370121328594857602392736903177921192110963399588685386792775179698904264303003960789322495398129904336155391293876007347625962711742632142365063623116516322313499427086222745320826567145536037238294871767073782191208347189640869124739863055240479496488720578347556579886092420395435259247057056046998606754758937963563080513379241556530362459402541015392412698347994721626030462778457247095761401665957873929369537708725849504227287945397122550637937832243445082030549456662269207928386596490087361316401667089880508337968097072747003764894805403640398354826694002988484712654692015202252526290278578593822194461870319738206353559173470990020716671028517238479065876917733705655572774571210037063281197606316331013083088863701513453207704700227865819918514697436144857931277391847203167058494316112589270888280205602871811826666223399372178689185907802722455089747096766725132377807198448863407150657586040136922993457742162276413756870043656207025469289203642916438393733937321385179341724130239821558739951516667768279893740719828853146192749320676290529712533062360788246018396090139773815277393423796092897598483633291368117228751624754978320337925405594958417400669084080500370159209628567091935678291741477048750732656894396560126913331569948526876280991623453867992245323461481417724245455379293942307014708640569912613532624615387344770611962605738421641430303522765673633548415717551172889402725267140140892382302048183925212527151341652383298794821925080285535259807954675087499945692789130681776531435520844107134997513481685332481156854463013448909423211789095716289284399782785468966018171446460947053427717768171514688401935711111833800394836260785438735499555567556237954502136438248836617470070569925913406770468285581844068492654596031932373881316809114862415932338997505280189699337508228358176381275524783932372152714869118474437237951282818154959008325905387288152079148993689099432702013945700189825689038612335561929184144682118178980351438525780895179701665582328296567322061945867325071539021858760178511339577811504615168078568617315472793444022348859883827514833605008263914353708089757158973961894165533983216420660605414737602846384198183225742354788771778628445366415059914088850232673721894818493735602473523147251137640852960207116780936545043887246441657910938603871886639306309719156636337005840624054221268212034171002925193477657767492870326838692654526874155640630317937267368915473575478130471011691459713704886211960351483510311275263934342301135996916780784916110422995078633970814889643855992295216506257375902408920531138125207393672170478010928465266407112712550025088363067026707391448418939698412817062563727553846431526927233028622311708568534457759153965111545368000707316283214178045310501291160963082676836667376930310018654061398076197728357659878746264549059374191537169798263679375303566743685955443224149295971971199524411111707159661763564594796885966190343176384686265403114293313776121486015395874596226112203470388639936038854976581880103361748730485804846870094339459861308630427920254020433663351625260247909641275828197868784613416643113959868158391783277435056389525604262942007305926005999692119657375337799211197907749089787374671915437973947662856410370142617645342981406646147543425944881348294691121683288874162461299242265395988024759286771164186094019534777458214415049696742181385812167536792636642034413410405107722261893875153618322265372696003439360765817185202070470256646790907672877971824660441154664243359261825645574155359447720720452496597301228402684560313037362550778276679154568502721103039451131697883707527895971978250278319108304255513742532142149058557950783934211067490705683689276026548169920454969490737519205248306070717245792679343886897218646591724943375997893504309478096197536383504208011887846381799982584484760381813956076234156336299184218091208674044714904017772610777847997150863944650361401411817688803274697604477558198987718514367554440578618079995035566621431188029927459648548336658487623875771754016007555722497068476701359234104469707148550725892159832206269954151428958504270713621271040138183207643583262683178296192224973350873542000042862204275904412496426958345009752105610244762127853913300588992359109270985461625934616300998796586570314423745037724022784063352333984864033940672453346744999502781395049311696209316165621887175387622698662535599591907716907109946107931763389877123326213649565410808317827832307608115199656250182616248277368442695691338126111160125129027664133606770745612546542959302484494388647046620081607337704569474598950894164580944373454014070918482071122483390973105728901729992071659460661524339643282254393942476401241310275346571377167728105960142439956505253166223011812573985429730840275993666377789110096005956879362394861718317384288736429007842546624948776186960775199666418325897621321196535518262870180718468938665690811415071667531216499364207272078608785331558041964560830658798837305729697404170677527487477328268181458101696615631832277462989183962053037093468889632845689769668305457971166149091240587547872966899457680586582496541083407832480341823035831228706732594017061109798630410566781692654278444475432203834713332849377669064043262578262279037974243300639500856550747052804292727444467465309613698140843295876197048311967860621039723380431381126904425696690305768759149769640810875627650467701494185214341701100796552048548081233736794460525587902214473605508576326954573647316762071526023192153783678747832110740065484135505489619430658987145788199771911610161516655787494343168285447913031744158173370891052361655299566521713279038628749020526220691042482787680614659180090998725978591407541120511540797734391630730362276168569669242174779092079656260169110166507704905066071620237271737489390722222030416970107032965861678645161892170486439505311297591601412072811605709985094968950772402625949382327049053837645743928731965455588172914146355580050388548395049937670336416938408532018475588126321861658253622961698403408975629297586415542390367129201847738747108579137363794961799419679506725631889317168163872564115938021562025902253360518912457907131833499735078574077006117409406589218584200359002697830504561124104580239116489772087542796627822810655692079986162338236956319340349350210990798108875764558772292165050791739703156980146028221045351209162375583287342310079992624270945697358924087700116694261251202930747037840044568037402647988023584806279610281989552588994905294668518209496514914495625582405253532292400776469936226244092311207302646139512879017968293855569286429505221961546647431299299981788786750453672175105031428985049660852615520137202278777978220931253397383735340564183862637682905847558293494276671172756009661533507556719306599240781246848017076026897122439662361082241515110987690637849952088995149373007187363836259801246907017607176789753341271861528697722045479832431936035655714473979560767353166211014255035188634074498557748839495661926950537623493099628886392350181570501648359313668552725048495045315471342677786897694349929775839100733829234265986239412389778499787926452496715865865181443745342421761554826207771542400157531947484424617690362496866336929824230173716570897905244874208790280559237961947020045074649841369143611484023439598362590235125333255646147974428898128977599397688774409904007317833741612423095738017369667147673068713530649163994835115186973671852936889648850271418428584651944124041814193077449275175861103432884203287547912284121725578637336416425096599435101982558183425156855368248305022088577250443050547960599245958929578588533433686092665223527268522015391152176250255708642198029281080182191779916941051555275026392501935759526671653627432993549726394627166265976510090634029678549046357065259866810952445158073286100598619149174426971052065537530031941851028548910976262758766794172571909388403222224402254966636375609888861986929942780155028167127970724275164913426464490962938955873765169919851817263328290040925110195958423491813258113798608742232491789355848952758066644276614336291574484163069720132523686997033918198276786937809677613397204541882587507932761600851073394025624307638991481253403260427637654096180873423363507021494407013088512157718581544408678618398649912548084245420870950878951851412512912276272710317077618364754728307439165420325900776297331800498254636333797070881664971970131496205295375466365353916448824447616237368938712928888090766840181557467250036195576731154640298704170085802538835716145340783636653119010263124221966295919021206646388462999136708803990424494397095899785812911791305316464321790729887881858020331327039012969375960801900990065867567664962530559526766279827716105229438490002206087137901559034693625299291446183050516290145666424272009977582958436495833271663327930782473996582356422403325180924463544024831543528227477170727775103799745912152841317929667361753262910638079619455201117718950218269214257650033466346951552971737084736428528030680196119938574634512231764898615278883562110977680470659413160298302487378636738257860788735765748826798554808125745286272482251145221746083249940865879069164261780755398917918809643793651093259554373641907522501959460712587240970400096760629269272458992654689305978849945193138257285555103861993261216718221388863635125259885736828840981481596363295814655953457125468229355621142479543397888288514894506743137826931988401134420037198406602084539927423968535979868836257414336740744639424988646458467528810555950093555032908593999326397104452134659145848390245181697091209961349897557563923822181901678251201410947886841039531613917931553959747885048664540043527293227795715890035609379565548995342190134641887978853987609092085931634030740251824165101721562289763297887017724781578776731691598861664309113898640040315824282645514781377345799337836413561237434900910956992759273491869854724570175804814521023287126830743255189548181070608843215992277758735185247486482766008527671926842776624148096962898789980509433909852397061719502577632728805627810828990575160344135358703443036062607709842126218760514961485867280709270775090903330514274373735134320196100746816879675189541972226051112535871413204676817744362875467221833614033353478965616040308064420358718877520962661260284190212294396571211816616508833697248854879896132896853987075158079280802624590649378254905541627073055723251487599672817216008324721440830475276550968096019900028958913322939942832303974701771344875094996370598312783273719456644970362424565917108629926070645756705947352063562446345218284831231960421899041633399811752090972021998555392106379469785228839789286141042048617611629373843047827332344586859382018895951437643458004367975604693895620748769230877118416280981585224105426576722536950459658947304491066355244270273478503908056782425787545279872027480128261339439300416776391141174823289517507701914239541965351278274547209707804404858676502858296518573461103866396034412561824498681829984400015042277801331966824576871339899372560669322223070161073697819109702525464789106961274426439211826545721020172544193327951913814626305667195534173192450795284626471052174998614079829056778302184497156735727386126779153344049185870995880108216825640603917505942723711326512770880939044184278053356834974325884473796045489099531577032948377816494999560962262728482685914905544122031685711126643522985618804114110206821198650114087498205913900459574174541835927910488042562580325036785790251429408382577891478411701423126756966621921928590838235321888505368620753517688076174039239869801531183003478646616212058978080291734039391717967213457407321092438984339615507126854130225077341049972154193863378113599399738595691572495363223297971823733065451600889580585457637458623871655337759925794114816257023665027325046891455048315735432833631949717308175864244675768808252316177064362000633658577412591209796485180161080310348897563438118417499493042230157519948978603712257685004569124015504869204344951517737052049106691149501362455389256782798265287895141179955279010853297435253356446247821723354571795211039897903726428946744873458858103654822679613065810811295650895410201888239501206955407910554169434626866451556844114515281122437778398928794818539375226547295735286491961334525929930122470411829776108164481982408726732869030118875086383937245448717505650486061313767111116947071862693138291951881301982959261642583644620717863004174704510633800319342829594692518636845359097249408140388583792315438773950508358729521774451272103135432195919664928941416142988789324103871676045329215768866237601065607135013627528828526192996832999076575707539826914725046948400632466501333541354223724421203695233226333541382491092053302805056151641179849031180900985587046034762379022784151811999424784551984833904856409324745416874534161459201328255469181372113511896813012043188182042596804762313353345311082391999648459156034176495141294667322639082492065554847517381947361638967986568969729232838327944653638857682057420824594105311477612786943620723306160714060554645551907087258522066539201340226367210805711649161212243380545777519176903383686607949190409736051992108699076559571576889179200504845575930003581316823663733423920710900732716538922271752296883562756477085968789434904661792871828361270833525674895791710522432383120080617286935539271270045137257077849251712142712812861143564087156601323415417400871506040504459562844398288703273192822348048472709522376088596155414860136302760485293629903700518667291141543420478233205961085345971572896405034568945960111935745599320753722453566040327891733985403909505157644637272588990266139754388020120764935644923227196291145963300702479708437606457383757677628537335807173001835892736588321496706016983804052355359239529468614036568719312634696692776896717598285296755180405021283645621390111550909532939821216073871312098727212074572016216177252652005098856712412537536412297291127546199276593408668484948963486090212832267632011596235753235049597228638448625875828785706326663302504445774841969072588819895757133521052679987901549435596453144113684922996385463493243964790143575905636451475044743317181565364026143792792492022157973777288835963711297576293189765384679803104778619527777468817828464167644158697931320390606134052231544119802884733271813295228788154511585261320357987015633520164827128955970464817583471931341278618521464571880856872173858946178248510186295105040650770972564975743008513313743656819043858882631184888403477215840154435451911253040199392512009384733865813035002352771957448965620502598546341519766281110807587031195460983679311079982530508894452495834141396376313346521114968704996905560016493393013428358521898080546309598808925182025114183349782502669166882643868841127936325120403054644409240796569990852697686019627463692820714699037636559250104716956511584022228697745397219250009699634436841543958484325893590634439013481497690527422965822448135290571848687809703447445927931127822662467194498063724643083492837670860515881823749824483523756659074723687929703747590346843927964649102448095080693330202328758872250473849179977493969285788473763696181486625870249160057378128870016345225215237754870216809210072013572234003831860561860351734356738045415717265379228653684538674361933716513951965303395975129233923162627712905083138493680134866123277458304475385192428900083962414811465204590666035258450763371272794979810494707219330575286131962859045487644042541971387015471699482169541829588527967603582348386361098497987061404335379421967375892604944663663560557756015478339292388186003907068242172515730554492428215492561421390472938925311934388904987578621517893752352945541118152272572572652822041829082526192597091949778102314913037720521362092912642425191228395437905506644563176397783451831095731684254278281852554363708392464208296061107364979651917118953275138763950703505329467050444737690012338977507076410742430704231450521419980306228103245066867325695568649385135623777554488420234326275834975515136729264180601777535369096843714796230600380426571553100992783915711303311109589139444619743121032571306358570231355262610507526117639079324211887656300023048412299730701038866698344102161638693546404051848995330212189943759729739485956559389261619787634230911822632122081683196636440469655492696339029521782866904477157843689399812334596318195604534878151807761048362457273374143011626752008284799166407652920959162136638424427199192893392829842320462634813404637049484961222771479327329347332781484859629376506128954354775524660385592441090990034821285741974527248243196678358434573954267596346035463717383965663436801058561749384825499978151780384109318852303301982159700456274885729973420605563964969367363623303174201169118171770020195382157608412022150587491091328121945412902851770145643694957751636154744526763488289991118317590578234965484332148267750103058744827424706095353670617078756828555604922617827299719433144478899176178014177592010262108269798534409560073933136070894410834888017202040370775903607533927549588940308446852069998842593972606726052791020687641993162962432887134861065182517698882160250889103979762579234512305790396619454218229547175706369623052668799502701479913684266873854089706008903502369902473542123057563950819800131073717791682389817126396883740581801968528407834970426863201803174678416576946157723230247349290070357831064605598634758487225549099777987541657663813852464770927365224762041597465945732012365911749548030245996014223734350335967928859288111362686616045229025420904726461780673153487627906423799212630764315613893455130212180769883162949916574965282496547065243102113584510217660560267548328674375151585534470254683228909426468942873294406583375484352932703111623860726025757039451286525267840870523353635443191919165164098179891838519662982893974308349646301941235417164184758074462710740420931435313125386172678874022007671361570660696782365895410633062658675366932490756063242541696767409825942166001649183284036633208477105373006279446668108945395899869738023079555718506462007307884962607501546485150632229403094201772223861516636354694111520863489617630538790707143765298757523525500510016900395658698999328373267802769320732149951900582387938310105042912916858897283469621336285903814983579710120961298905346494760870999795775712258599633161364922248488500270669862497255433080260947855126029214209554680121616035140226524083548540645241889723725363853053565738456774092484641011549041933635962527862990307333088606007295904541900515467556327971536569391582113062580708637984610598434478849611036214423323262109790281367888672045416938944861367983154706199646856969184845331761007763923957386032609721060123069862390401333527773353276579829420681866013132169786459096523221243979658337253496958026891810334935278398505014681539988116566590054362035077680944731592141453827768005515392214074419590320423561155615025632497467263353668745864706836150150130382345552476728793785442587005147236667178018718436990575333682509472041472924137707895497850968936464230516487596440044601912215775543280514941638664602662257969678257325403717308138605859409055135649156758808981241354942454836854713390714337076620003447496623572904246638164044644799153443588577628071098758781634416290310000551604029104803810667481750717949554043247405630345687762055115138741248631795578826012227355038743433252468497041153285525813056185388195750555937357830382049453548704424536840110654825851052589557849682445258253850088926484406876137203149774592562569497638243365845636281889049020111118627374164161255871913354260763982469423825567906280061077996121065151536795714187383717041586216166736765609222954151526967230081844521812681471832877059058088687655242928529324689664573977264484044788683391455749197099014192457151315776194165319133464609284170283590625206139020456420154549962549103592928201541873084061148048224555125428911180983951488120697023603136451350645418652481985238983430206408234669420446909750748920809927113415343165109687141351301855889162620685962149736255402607110916889987510297072539875776117217041235691490070892001885229215954123873557519736144378728620476875480528365169491395474235873301790732875886263637667281782066310258473332389808988175835213442528723566832204245286054823395908371800547588697617095025540603772498249793159192141565407807752324204958079557124450782908202394365055774827127616749776228256797678555737512531542412016161326861001774351921353620105071715591155357477839464099665607457858475777415315580865803741714344577562854663006116758777375449397098212402277776027050501987279793516312186110658443489726357858421531802605457411813377823730190455129339606420772474707788245775569980867874075598137775654477378964833394170194851444784892560530634673461751715370771803378527387565845031871944532393635597141143003947433938669235666203727683992590066063675433769060852926505455541344028082364842902704101612647040246760643496288575834266144040477559694854466303167334362381232841853949915233235432968912800640125140245317513136234650929973781400226586417361908965853324338747410935673519894440003048238591156238846701673191152045488955221322153094200798677865929458182951830484107261639738361257786488034161237990603660512984733831162283430004627971820548983761613270370031413546790176262288103756124543377039039880163079321028024702495242823958702242423058052495752448546676562464223831594487804356803629439987915104145759043090799791078296523470638705043659762777414318793904102141078769134979530763559403556798242107096505810336295410487875298707241326986908097436488338092479544994276005040371392675704041319056109919902120239107399094122715419276150321048094612276229535301211665067373454588742984982529189371787636191401228686190179503962943301659925397234307931092596649712290304155863507758015409344940046646944626246461132392571192085129821326328581947012007385863535415226188048410145878878872145430685348167230774614525484981410705482828522178440232571669802225832698402050607977267130445961992971650142114997341125805190182808057448603913428636652981476560492972559153051071532592214534448217610438983631630588983414666748954344400578238956688683132286562202535483140972391277838625778999997314006844403814306286972187215396999185599983324442256508350361915684942417640080765950794670079337883438429764552521078689592243197053338591649454315218225492982875903763394226001287709469936056429331032163926445194248084468894095697869172316581682387412369152210931486120568938056030112042455072319173135439063250859195991646827195054787028731179081084228031141585439690435714665252730354911507144492426223089990231842248113686218383742901276477248537899418821695672150493747723212115397156949621707083059225567477188391690263138200193612482678847990102466401733435296956896051055526123063105852734240050699554620538497008790584653987105788970667924060535405874963743399073979008632351784722142273582880241947320183543903184587241110295008117552575609727852755700055662683033244002298287004229264132884180727237741279552376126508592121242703500955467863484028419317090006007525891888235232711062551858753825952410515430605626781499306677360637312594198594621985954865660221503393621173123399696159036663573333004661952865755135225488316571049479425778556400289896910944059557813028617650018865919239438587439721760181939961394115744260452943900031096569325208125310325797899606580336722219709205618276355175896517602380384634743523949517260060742358802829910212198100645358273230404949904389324545398878528065395706190273367702796084597322344065242743620347511858385639642222694305935315729468892771739776557721991911279730039229417858309297847467878464864874440576292205937818254746367273782384992980224532987075651701802274352683664326011445269782190281045264737766411754925066465276242498364039165869689285635586085393203777532464471316150595181191892696343215950761242771355912001000184119772160541922231173424692699299610368308008079212333633167010628187280109801130978761755852443536563847513369843179912886607789404995823181522308051860100964448383520021373139543319466534268986579366305641553880017153501396900994510416791358344595516048039201477561013973075656796664392659114287783853929511430087413320072074369567976567905678124253396134586600329611561259427979086000317667750658904697017959283895458322228707359871432307401273631890344495704763320903272153356949985523836871636128354273539266136290772116848416970202762322487900230251832472257897094098363145563117866829049022772177322866650926686039351918099548170589200994876388616870591877561873698739030845259985763372055586269639315230597348287788896004803045728692879698411051566007031428406049094632566484322388517901830708825825239983209812362957130301785642934800831831212302940918432259724634585335887637546890755326713327433091665389165844606168466612575874476088544853303630881267088198824774940201610293560626349396794524474331174893436109839427464835702784254643257625743607434017860935422996720576738982030013293182009046437893608019539209397262968797601981156539410027650284937628363789547929347914765405706536422858020505415884039776118931359725140208073930423760813186865898935030629327764899939886763205572245131872780641110571888097081996162690843685242840543237522912307386186428299122582141287446790761474340335377119776139977943031420944102477090463111973465685185189184713693856089451104171213200067194573991206661262753346138587331662550666776097127074174351328982381531498665492018610196510080884370132090370205519970268027831698491852389906011195398925575319340035147851411827034521847312632723437949280097358304019367261563606509457429780960580063304244537135341451807845854687901645951587168708302509171293885797024909393558515930215904563667472494952036915921459072028641346572755441402556531584113787935025123120683637409589830324190652440807495536401509952206465010934621211658471454490837952840419930738860861323508653600368410435365048642358927309892213418455847121575751110990891466646735382787273438582431501504206464519042463081408243608264394874823714965020834618415056158052407420524610503281040444856202937753857230821061982684305352424231672338947249031896764799385707451361285683971266248007789921888418072400983467834782992420959083274520694139463846623331348149964427680661659622011443132618908390737699566389835009584767634456678813194521164954892920607083326813200956853830397965856655357473638663103903840054610681622483906132217019049016544516742144976228299809117915664540675561711177171242843134817541221205887203276309471304436140376077220655003540782082355975865899671388425897180146272406837596589306732202668928349197892617357688822060537043779729984460961298295767197864836939005599578285358484654789666629156030421071693826136375568770418717939736314254357900094477258432182359048234543488222365773596223990400480087049107615606807625120114103648582212613544378900172411546449754984841168265535126898391705543052340151964346069393713284964064034551029613086128338012633023116514603223470978618260713114528147536720144916218479790302599803519534115293425242934462333851535200596205713115868201330650845656624678434524477771359107774051909929981025945286586821792251296253090144564929551578311326532848254123329954536761767634400511507310816799515826287275606341660918521332675159095855922514787268261333314595231069506239119688542199849515450813177066732475948134015347503527334596921553352965865119221651073933697442362547096861742553649768915981318082983396793615313345507343005011207754069815148184338156698899171888400107153893897938440867916923762052125476582070127007523417967467550359539477436174625173758988054328715442992992096975889727063089730073329000521164064539291279492587090624711785976493199284737709270777808721461508002676593865816570601055459775833288244675435276881301918151937077812947973803050318082291554314788116586244897309486572639890706855984177162021122552840226808308981757938880858143098993112278025404758989639998081431831077543277618164036880365515246224694948044110328063005032503736929617512270338608356198289312924890387294626175978740025614093518464723431358242345801038038695624027056666501758777288202993312726072574344689540978714443022037126770992350639081991480955250880189432173477287313174252611312939981298308014898054351486142216427860280709030987356301862576089567252095561512502372861998595402905404432406658976367423138138923650957876894931974669837065791151089937025798406905282977425237266763235842495540578622937224944471665332025058803563925769530996015485299783632844138249371908443129431174146483230829963579624911183530323560955910892786620143105215375810582691675418924022389460755139388085374849660446203365078969162751401828112257556534907003158661883665594195743261970517101415365520805188812631239691278879572278691431929087731879494872638319295743460328171512247119897908340168097347754605014134588620244273522618808054624769904072383327006662980346863603709916844428406842844253450398849230791834264101540265446244642160991544173091149525338995626006867863954752298477790756573867102930676183154634580864732541638123513401246722555382733717377757033536121878190836262419701873700726741174452761225421210177326635088447203174275983921699155160894773024697699354556713854456824619853924829491238442256253602499446496860108688101386091729369584752426810050393116957754206344581804948396479468517180849820798798153324509877341104679923259775329115541476605297317523538663776984528547306439602907644707182104545389009520092853456236585960506883746869997821506273082246188128197806768088099960936350159133955298007201542435179815256448785747987426128031232399471000256163169037333998438702690775282920073532658474623228599779163700397930305075578667831981462669649591356493666480095561425320364631194994397941083238723031875048423672802851874934845328654366249469278208436279579072921665366784763563829092552115370006655638110212555741614171351729038395164169941225589967305374114054850919308233141353841315707004877382171571056265482336834866682098856654852733351927667337240362057529848200502057562442807407708802928791012677937113836833163350705931709514433409557234026744076723215784894585500861765268656577145946822765464086764347717780628418817254889896989338485337601752974546749959632174054622077083054122951190853484008063388068291648933411815955722519921584907102574632421547647679072079028957876497599231522487422501530478340267566865321688813104365441494940969278963099768933494546607166133511594541646703022155638622190547574597589129635817047794068859369017248859690658978499224544596621352543134248443068566265232315714584082869311451916524367938844885641781908678637284519244019460679177054729172530839794578307101887426565887772650665975613332147422526272792741756393557373172806448841998294657943110924570301442137444259667276630193160102784730423848792550446472509713998271794697846916896899115096253693792438256941182665795930229266980038557937766263661476347078709667126624619840514744379683280774372327004152622843499717776251669873799515878303139919717282799099703681763886305939930654975687524850047249064920197534744998128226137075329313863395219287738510317444233710541592256155533007693271814295191860591463529470523332494912500527499272741425609067475273840383355703985583656901909840607064419953416285859087582996623034940494954317097434616632403531819393979155703987631735575019236664290876822613956833869946379843570487205092965104355808148224649746585033096490609413135671115541691587089214035799607069657740582443455450914335146788584889481371785140557561783967835499358085703212286465273758051800982451062997859928769037813998357622008710039149158705367386071843882850547833587771899660206239163289224807414559611321831527644163224097829364182492809916457779931730943731036214985983205710765293385222986436001515291963437235463894945013962906456197619451660043150376480040736726722645219899937382172962512789572365188226925371271660013710290082493932125308048760817060648592820691322177708137278574977265850340646009364027295381681509421204021985730594941398291670388699248575974431394408580276881364779358449881957285937999011801355350939675042025119118023033642490982673812104553875319357024760461885120826181601178428953533351905351116171394964450547553636667122983935451860151946501830242750620094204493510728269153358941589750643865062267309215828157898348107509948329655706374454915853399597478989928699004263206197874440177399198143795873132290715431256137765955122898112763659576798396483279321481481689901726722209842639321850681427231646605645466963995378753930827796434622243218928377432033317481851693021158617008959660084383530663429477314039801585440050350525952433462881947482128692652091803148957648153305621238046665372071555581976837775897863067383448340818806998587855386477734311264236930418089610481962605868253410593586301585539574469522246220539432533480256148582330578551160353420109280144932205547412810950192930310906915034042650386747452142380960761998170313874528668265653109696602208559958313604377172289476947889881679954543779643064247241924651775416879256632232254912012808006311419678852279020453910799046600904910344652667577606948684431121303211035071958651130226042591693324568783680324823827321060652143741258499709056878805336000257755158203146299671952660086331567476977851609466972291123649797822897626402463707947530733516746931881003588989865743094783796315086233236613514424946505153882142301505016951221025832366961104300990785210080744689005711708790968789600540301509500239197543281053953198780783004511890294305350620925211849265820799484968083390780381793038281468156270893520622056154188312649874218352546353872308971965020880965569619970187264936385546971189668023781974663727985601214284023749721589345893615021830548203551581632857199244535935557283102139662284105223428679173410034976392733049159069428775580081083030023284804403431798158749167820454478224068837443246436593677625922573354518090010023887968909925617569045247031902884300794057136266189851123547356776861346531409986818703895084905311848011439474912179366731431310660144378572654001652773634440904576521628559655368603645445074542852383300975001884982570060509316402617468443098589425886729962973580165158241916768480981770327287266896384272634454194638613368756197028132319641865488498695547120810494191291166858882742370102769450456205128473263981916237159482275189390273421373717536036879100731682622730372602188929151401444332568089395651780627483654655078926456995588688248506942908761496301935150015415123146032608983481362409668259007129872932478266190143600576360495267922415946423234881245043161339334735819350339814483973674587415100853078751024900586514592937971376307332906376642511888330565922334834200239230995921042219152506680874960171970927855960278178140317521937346862128390011927122899869095024408203135202636340742817006198017550420206711041881984012273340383759760822149627913180784524177015176204088501810831907787031864799689860064214690471715395892053971314075731195499786764480605312174857203864601330788901356720463275740432311641210535863500672007368808654152337808953986595742580181796272400133914154251534093807711293032460151805494817486487312052227117153326270971036287915219122350967899342269788805158361104736483594179534375439296207343336760728179612352538284595289674343046496449829491856559426903860204635109990075133520054006497652426132419562355567218218136029632558771394570877117798210804853313273182189050173589612679957418724530883763971851209301743225551553614972692092662171772754227656566008925563574250477120799551795710851997935400818251596594960843519514608918314315215773469431490268561683891029974500445999631055910505629718163061641115342206834462722041447445920102918608122940861191190752472744360083548052418592657931479807248541057847002897615408457523195367326558487108425627543122545092933975378064132662274665392799182726728512606128656098318686108220114966597505656627734898157031410673674531562668860853998512017093859163990889666704286541784573701328459629504492851651046743255633649388709791164014190854347944552850750831480671873074501556435366516734218257583896546159636335412375930558028932247891967810605000693286757461943771808905443440408741958607026809038695336628155342574469039880828218782607398232478029941995216841839016609669268936397099457496238867455094744142723349044266932966850051325741620272298838132257911536957918609038424508680542404641431052405488809853996972691473702543404117238250502893264562962429302508062984860054992965372431157202675444467246536653685554177646092752436414695835815088109003832808915528497418206789180717104099874609403921357485073243488542814947383535205399852640325966150300355462133015268663209768018267613163651539544206916936361442446428062631198668096349871868843506709118592507585810814322734423130082153399288841603831601166197537608090502191070503695083646905617316247774778003411700231854541134774158817748349198099736376798210800325558049286434672453874717612631843666936866808025417219222253133767192254951981547451191469698964601270324814314994280618428360183594139909958597603588458863621870514531485585339942681868810623648668599059146743667157899803846373979990262492275434576563115401867027215518620505763907105620437117108032453264353454112699135363560298225512488990713470469016232648415761568715065812113220331064241074330623911649149810569546860444754176580790270591485259880887736403682096266032783163301951832050821375470550695927413649040800447920173653878040934590380864096939805595816933165516120811064531640744722897205536240402404124753202038842158171808290949975931085729160424194193220000588497134385813665897471087632113900247806964975379761685930416751143209559749234867924309660271910599035876351982803315498630511291150023035453489378275753934619411493913667858434194148423475743418518664080972402235996439072669027381645404230433487489568200038129265214876519658338795794196909499494790784187717963906728622596935154016744424577670114674295068833545426577165285648703155156474075092770976629390589479263752819218230719222636797998093197608015030784160775618008592180771488976609031241863826578038356132508930271865406842313650234934337576794276131960591066734936617183097293344895843481988519567158518756165620732664777201563745226207496656918424767441561931522378808890803954731326422803053345189363641167978911502626044672872745971185753967724470854457823300515081577487178589535780959330632814196899663557366867728241300058132869817514408442003305878420615090216263335383226207903933152887687849257554123166792085392194650104602165019620465573615164671519926614594259558750975243848234156378703837870951484841582556316884363819979318161129945341231366585517917485643784233889433198306907817747866930142748535370348314252125735939539694606141109624533222826098132318305070100425292515813900754805505999465500627310976829103720228446747148966484952722769145647163990946583146343132010973859025253538708786695499300934811771019828710906650349432058955957164039722708938097725987848623915971225384478877722167533958208035531897887694373577229445408456946514111459350281550593275920000530663222753999474253076001984544891766885719475222690702114540344060956862177253484040247780352926423504905326817260607230830611633743038622893201292499247105396186507180918580428728100330336579836406201793083075939948258881719881840419627785080209521692084506005192439700427960679209374367698515774901055517976326082975817990842775601418645662526890219978534417716836728622073290047715206505058061653473577551130626002784335411687013001135849771539924878670336209597073364574452606425487590990142043779065823881007431283357589101960848447414597349194196750627907994323109292154237226167818827625356691998603686307436643750872040906949104596189882344141529541886099393471795720758946166458052451592674968260099543031776922396593865839800304499676451232950829988845249260091657806559255271892702579583411992831568569434580374122905325905267824709816527002925268520391981973135653893912708360319884401022576015890804502980332246836084734334746853836869221601532789083058724203659145209050863039550629350648376462147265804045709536616144670047480687063956379730616579521031522415558569236975090510526055575422614386502299421990074530707214387463240737153793431784542662439908808858940980968104250740081507884402150752455083944608963818225243045229025485665131219647180254462828523102119474067288408274491946578936559576954765286747010418731278250008240809978897892800917277138493457998898973247704856810940324490473350372865747016990880312423229777674183303426175358708921689131930788583853168292504673701505933552602886390590513507092638264039392898955295951345787283370910845203920926812457359404566425974383088166417342038284398750041548034774677615253703027898706700364801803087876690487927645938105112122253622678031868832179504705597168621034052235042023152404912991166977253594012030171208056122035247078428631486197776591746995328559503429986963969265815986483441795033207429128662422501427201044192447094932544651723483813313538964995424214855345560536889376839504775474410617064280968271280720296632082372928877361834214154663281710037444990749175456517416492451982122983661851201442178658101427003114838833847015073261396697683466401868074269546356810000898622013588366419958104680305073738574404465654619176891317699325490998128224923112905293798770981802284430004305783003598752909094571914713223987924945829787678169916316060426743417659742098442086181872278210396319675045221879890589668189768894232927962819796259891419645715671100762660208399745405877153320517597732487283753506150346463086846442549284116826338490185697541073099987899585846208466956799939956413829155334864751322168109064987979302307791060342242212424212053859845554023091601198513403549745610642304468966494976456044934708146906445219841223406989765042326574005263340967725415912836049485613893867725498794979245194127366697074056718390325075812044474983350890103588880561842507633732332129387979479412462398620912563962739683173578135492162950540815732864578145192874422095378371679134896271732717299117558738664564454856195650685961608105769239751242250272225777231392699099089312302420430591693156925948656677147920643172104569789017216214226633317895817119306454613757012572445701388172174169477123488017378824013751703250957600627055531184119127083687759572327706933853980798149164708828656366411716908193752575142289870908417719714380992697335900735005648842717666208169519597265193233061231517749602780346847961797395892965229858135728974685277623628711686440088061570936322508132888488656279606538906018489093999146947625546986748622439919446424489381105706185364111240056956055656900928598702891602397350823239496303468280014004292385344954974564808576039172279230003946942647469165323591857729384990931973611161875051874550111729361088124723491825755430359309716973781818766316066397691703130827085137949773257186984191818227848681690228174076847109279157539616202256594399369324189557625220409052342521314255844134679532129888505897107535720762919811583926079415231866399427146924801285977077844890228530490380946385985813149611714904449442835514691076628630069981531416883661743404704108115611620899267058089380004660475973783403546345354171630974411941889606795442968239385769918845616006734277128952971970615194505336833456953542886127757029673441455728958304400333622355367043217770046822009732319407991337918974869187662882852140123555781067218039389632757603179694874187886087557581634396807172313390309750904706592660502114762771652458467557781302070602474510199883317670253441898271323474950314307167640520470769934517718143418137891715493300473552062291258290350360618098339119333167098796846767793947465636085495426360013087585450421243997528901923200190261647574539423146812005503897701295409747808756983725826197301389476362652779548851157503130098394964912606624284689342324956931270539531495220499705852729711177519996386460603620918228148293854153989674791650974733505311767688889905383529185734586115430347942057607775983621154393419436635485973175879967041891857203308221350933426293400496897082545463560548575900762617740225935476238167730677182517108910751109338985982334861186551209377543629154018374558981733664432554633145779490699079982162947029253075286290555850501678728920875617711400550189750738173290319178446170722578390234320850182254721644260963513901672299799905160811814151838944453745195128641311437704841154094061261240454557765581836050502119513611835823700072904381681238051687417640055434323267573768745430364996071494909012281578693023029064594582927131490871032875724795899554007907088796090574972576578901340569880679089073300097295219819487728027111956373973297906629560307860563495393763608371348640810128998798217039771528157339620105263308263424084646262814040924010508533744820989838353936190190278567135272213153499033945677073704269268393766597653324368458641964061772220654086804856692424656143206318524340458900897097786649566070261926180132089905678381185606145465835835793352021020460151259289817584339337914945788303340191551575877526076768664522257522782844740523653275102881188272123658728449823719632115323991132831500823833560277239413224365530546073351058565697625117267176067263855035220772300940212699039949607418632281117773798602302380202513474241080651209607018863987836670426009718363779400166420129333119356494354076528129735510726570683981407796090478194632743479194789921757785633333490110469808020782826764948664680518305348508155365557401314151126243570133172623873410249528123485841961388421853758063940781800066388889457619610488483921404618668355660523479147053875961815771801679209936203213425831248555333555702956382466136336088289736806874045142740999508174932008930879922137494128325511763577567648827781284606602964547206384538718050462186571757214001165849254484416201299745434765401694762287763432508268402660876348265044043413053283799884803416507378016077013465187955987867693963872009198372633651305055485741431731731809083090809063557109923921620126557546604526688743414687238912351378406594865673763771416878339132129846341445372014787509297145253228283771128350405470051558866318382294768882703053899572718294134918078507606783217245290174310189914627470795972825787645061201022994442367424554930486042405916340270519993909707671655480148425413407954281433527712124205140377583799728842405371230151005216377710019831041601257537253871638695860431655214456554713215546394277483411728762726314999883914796278290644488512156912487069218675745762843852689446282048169148481198005521358367350213820816131458287191760556056844273343327286830611090498030142851315486462515996146363983535619202409018368063573349922439747102795538827869288660891360613339273405223234476971819332821922818492718452044088707866596712631280901040512766015121201181643410691251281435677135688730498954050029682165477767783728776871362662224413276017114090867703957043306321987075249286345889941729486255013542261083483977331192819786515070674181049709861705952729727961461476512173183004568798519287646057328700874701606709179057248760034786197034119204151122491112521995174153558681401075022785302157284799801041135701797334205797453330959237471998052259255268034667247511805242260140320193973245022291868617437686371781736021995263758291873573467297103083361943451152698519951404780722062432917259449476038076675112984459829474336886578592545857408515807681973678473748720027955515950757181413863050546383826382082240730490955768028398874920985328496275117602624963570683558053584107788290813027341176465491775177746854691857480409288326167808242537379240525073268951579056305899516763883497119114624997335515601458118809122601497678239887284746094091438474360682749892201454800208081667931857589911070152477904488950975697133128503449685658534513027041544672053959670304889371306678508002454478969639233736555351957797243434765736305944507393870250578550660292849352689074590255754239195624863010781342299341844011520271745956447722844444390455143372391068751639434549246647040057854229110758475277428283941613306686000896022299291392216675032389229968552113036411539558386100539103616103793333750190305207154223336380315342183473280974389295684252626745510806386408632885031107683917347547188548073980131679640332881821436457176603006650777038921373928108064769249894580169869316998251619995396817854841628834813695393389962985371388921263482570162958306447829135439831311321603064656602518209826595460894261560453159500692453530693747692583746231826775828325984200183094631790017806389144736306538787355767949201582287567829172852299683021240106295422653440809524512686150555099418050473009173984432296491624702656939320322073038628027785010071798552140388226504165921115136161221346822232622637060363939181618965482008828540335165927391379491572510698405038691741985901845931221146337965027415597574322072610796713479326923782590287552428156794717314668274729518216977511101950663523710933323132931971403341066529812996921385806042399021862450145501250940368600397342167647355217090853048848794034023340146194663233541280654823953745924525644680354616038117566074024956424657656288726250403780584812142630933188861704547763696263876563473308566081598017212211608129792620733621741046238624124938534580767037180478453431456272705002014844032724618790749533278684475096079576067459756691936020416921022614943209671584769221827962532358185374163931761767130162358601440869368649181178052061593605360376902138062081965515485420030889486290557989344031261077527171944085828690288781165099187337287668014160397639284669494380821903922908882370179426029426938779059325633301022088167899187263193877694268882603961845315292298086939214513100073237275307975538780771158599172281669286254353062198842836123127569187674033749783142211267230479647594206148397471187836120955290373552205039443365825434786190528309163125949471312323992341413063172332820736699999083713827912533972805902855683876528160505600792665094637869197842408138251976942134048389127822088829586495694086656225484582374181032751577183795299265825373411430414559457015806900031964972115061288404565708226101893621947877935726704903948758213038874916723584427088461986279582068845928572763881464540344611481363329989735574288683953844307700090261330519521373403156069282066475227894129950381897017205098530060109972424907636823840673548840521386756758009086789923360478818349678463060533198264443261295876448965936141896233216747415243212688100706080908898378791894885762468687092060461929244308218227118273253964971477311854270880396362465102883433567624218884334059470855108271202320461488936096484736438738282597939000339848117110948765055763402299253683149307370978650871089940900505143591019335700152889817865428095084075569028717567288721556174416311555139261712982127203013484322936126493489185579780637457313847278115648150409033313886206652189055495134631277688424283622207433393212809234833754034994300456747148027663050953161504997329484368623330794859156071725765024222123877407260608809055126685409032492483222026183508548085219293664189408824403104756734299480559202965603988762360518176334877483959542386036159855987764160476418414460456510292919888314198267289325828551701439433123885569221092140250899156592926988009655536976799051279862526881909444690456720140362890354773555957263317451021558831774110353581609781869105850488018323390400514102686166326057396366560395027698552092784558112673305369563994833791925293249110839676641830210368812142569945479417939385274968346606548712900476820996069536589034906002328559502262934540386763264120234422085649319087990183234841120139839614885398413223314111351868883072314399666858415313497339810127348990117704647678521005312619869516238140667595723797828776386961205408268397478545786334522102691265190751545822738954743440593396788673871018065542272615397180268414782182882449109125952044925162796162887318183367168249171706113893464072331832229406451105126411783937561460017531168444451178794335132411819517190805415668059956471592559232410830476712322351736415892541804365579452558776237126497598999931675567716735035334753855684688971017095437101987368693936365986102463808697482573337398795060522100342664689076731203210429470669516145902020193365726710526559090077224439382446510542905680287841323873325554995666380847931051246516858760590038592355455564868512942314604285189156581597832490161557635176093217439714128527147061865179742037040391627660138225375686753555661654318093928229456352452918365669715824031892605221182675677767178698670140756703381643285533833325815617496039926116160684534107863268111881997120761437649160296410603231455765519674140614870478950295107431123414560634031028611480597904440678501830538067066982561994146991071726368783118373236999954431869600665227979581993467253709243316455583507849685453497566052726982960918233495324196386975876045430633263623660486167627336058126795896560294197907432718567950236597518211959110678133425738045529693765575566177968478997397461888533691728034461575795476189208679564127386252358368848848871002195802682606652754194203479413361084755251506227140315285370581469930111532411522999066671947212597069181130470441172092756858112976554784682201532410550346382481941162366806895980964216756134249231000425977163476338006156528199180834128820877298773609114598665615714724958025876150098503893264391752778538038548194265170443545415288510501310462381186107019159296680243518804285125808576120573651405640589765011072647192530970745102917967174286279419306806455225117633691953539454251242689422735888558587181897506676008281602942026838630964121292090117358329279656470738650096113862050178033862845750655670127983752568312564945642501376412406875651896815456618247182836182679883082103327302208261308911524203015164545014478185781083116840226010664130734078823833426409108342860596978979085901549599943820397304070871443193122786019449380882835283002957350019644055900248316539598041502304928478039795697683687740074557126103118472102511496909643635706555054973753671318210325904946756686066226802170912264120971896820728489007946599336944608370597448189657939372528422308123635042329758064694142259174535323975487973215187447502078606463865113578489936184860475975611497591871139836535556770053452655783570526725811715239287944396160383899381610165855737552001902481287995972528203469604728993715801208152144157017930272078536352975052391236682008483173632630126792119227200857074466941824968325681124970555945633639513724281760695890846033325620025652869487845965739908593356830501660527067992123636380720213384000684202274129118613012005164791118821549614204954806733535639655797026793721093460106596221966326286088373045616468420633417527271532637963691612031813118953414019915725957510270987423870065131423356426108839698546739594848787776446039697859893256500525517919836341000375334656074059462120016701424327691193774332434608166898385625332149464520028312619713181559801413283192551619976907860222000324231205687883300099272958651462376099171412313709754101307891647739609868844190597802450711332588809340034107840133864544343235517289963093088568448003907172720584191673858618427570730003782055656218608619128231273561860493942073229097653076710423623457121704091997000243171650957648401362432962146278935578534731534980886314507658158761029143317717480381054321339132274568026728559892388907732081970213255004566585375302382896836886684397070951783416141362370684269896656853749292051899528197302745442229392408137686723657729718891052796416736899982716561901316354526768108031256625324010254117621482830321411173427805618240936832452234168295950973633487865684619085039212575563747810081820957375653511760411134381571003267889658471368929889133578979317046356186638014019992550986394628507499863820140342356338647985982542086662380632447001570930842772872010084714709588985178466992307695068200588412621426067044795415064711499223062132827346731570867384759249823239300157841590608785232955694204623563360897942535472944371604480106815327379577936782485688602680872523306872474848468572707205419690655604889726955130405235906759405489188142979468475046200251045076644786992026625599660595903525526479199206601816409231042008039485893687214681141345064897003435854166507628472587295230407099769519847621593938251964185303390568192570941558217479946600623117328603504045980849855829470534933419523066654602126398030644684806858806491496122845756674147802025721127393703093581398672405225006018838978540489037654578003616138996852273513053635608072550635672531323725619766486699757072858182205779430383023917884798707260156048684930526999831818372660008503398806996251408312252792150735531734051465909455088622465345894832773740424366874865547158987895145721570200929957062351636237838570867197541762586606789505330429514087323217544960658515212292208911903071483846427192347473071777773425308595482015192683799919263732200305431718770694380162317596660471009159748067421605878207011903940878175463008329918910331705919752168935726099235803632257069783156043261066665035095189176234617922099139845507051431540915902092303467970074664693102288051055758740515909681313930270918089181961266578172943858138233787732992506069010795084762663245011742149346909685673136162882082467819912149698134946475172414155152257631578665715012577313003525293770344099341425631943406024905131294041102599004815979772478186391032859078854069571581489553736244351022740211425547146008772016881584437701345124123565246222070382555745839356610578724017990971111199890302323467941444433191044663335402987739553910806107808120511474942200727319452244057136734269789578075731984446586906009006501804584234310876278575475199378720427114025329758434357880833838308651382892089523241545889139086744073191311166696592731082825295452479372653150359178527500287543225725360586476685463754822095409698956435223103670810863965571804329706199095338929141883048281550367420143920451447034953757276744635000268721717598623448217209442717302305031063366382815783117258065355644202995629525961612379037902543005203542700164760339502967949582249264778299045959252168246603183148121682173563000174495744158896700537672086122197060546590223999566613562685943424623335856969592457300925847293726468673524083668362466797542548296273415368401878739618039573583253536251702702534893722113326717306975193865014805681223213505225862319325435934943258958581744135586485691039606902583493491725979148680390116780938062742814085406893208440390444400827609366041200783512726079468071867193944250652217630058039958864767298788023924869722386223970345458713697731574899689111851309555167150151110093625270231901196156299889887438422086156056353712124447715949377128151023183855452397574246540663387978734375132115775819258663183817181483961195888092920198165935910948268324681515418871539875039965346598887988341601718619190770078709233612608212712834199731563630016295514626118855725163861495292700228011918124559479848146178007605781862862431980042116612332254114287545423905050085411053212336084360716850624359303037523480093753442598413572645763793321297308334075809014209238009326213860213334688216675520089639397385034002033609904283883685431374822798893900772555044144977905046801704161168672997571317178606654083948970349995678047097208380842675608238810387673539698550556022838811807297712633628886441066289450666784944251548415383716298311265329422560734705305212048554395537895416125899147268796691755353294688649186155318629007131551658274707136741323297915083490963364035115095894847899289679563443142531858081109578893010425144250578202688695257291871715667749172228466409051827417017157811772250732775055285462180617398994109867409014626958218245357692674188000195308574310599277593011993411061893262257724993781961530541014552064749229421790394859293059400794771942118373098614343491902017352268982909005174322653689709317850731945453351779426024172141120828182943117549470373370456081276667209367338134126362482980936285668034059085090390311419951524223491170363349040119395017022089211993350606950156911528180445775667834662608033327568421507777568403998004501362418392490691245505507209385438469691568149957272214383092863216487282970454507245516741471542305242177626159932802969991712920976079600734413671866213730306877085877575661406179846097343337980696171156041001325147634683201138077942262784688512931677660994928936994648673358526675124917895553910873011066026920557776390483250513403404328219885154905396455066648491786256084107915330213015981387506823315537206901676501078744456195728701307051836803124111602091932503203271174632737898872166729914093408240923965821259364336675207669428605026780739455154821921831773733087047969237868436551140251357623422548300144655362594728881312821413452742502700953615584801988780087769137527419870488295346593533719898893706803997837639736220865695210104436445267282098765685314202090748815323072515388390811715846972354588490182800583640053853471273999721174993111541347828109736523365510070800180142796111658707523104268141612542581775394342266128922323607552014449486596158895448720390420718598209278459545580414918111554479390431750634255991463822567712327102771948344286298475151472547079285162325761827254447573866077804566043497120801616486200370190206125870134385056569445133486313425545669438067496854241389705914750250517565121592290225572674064848308651354637166995947303582032068514335835059498926136567843071909998207299259805146921463030199382712085671012924286033534160475806701436219576613448886102044076019024217314305471665250119294478914371187108798383580341990003506986114440811883875219595410834471815915997329648873281736892396009138197539241010970840356598376184188417932238376233250600054161081096897865052674174975673528671600761736196176182117868657236611611621813598419404959176937334252766545576017012487571273371313536241770023838218970769286595566729633701806259108686498056286048157851306288399163418641464192721317403790288761605200381584526110144809794892247005889340911972062650143641453260607188743895815535780376830885617722006969675439948526901572093406576249034028457995228844914702595850829722870312353814581937889614845146474381194820538124559713749458378035015602297464237015319880028723814826129855278574068811344995762130498797939587065835725233182060568210935798616528765024894058266043050487460423673859674916709907000325169398390380979065611594498669749369468914254546110069045052840710120076313926702387293635023366804185638367859897027227220161857349910738570292975592730128022867986630060752931644038773797971612336679764247091472697114847804118603128713497702179120115246699246802130701789215648732109575467025247730426586869220744138976760267248547593443719622774050499850087949082001058738979082390059770856209490065418454406548579714779249583209668225634663490623980018178346609231000986074941124665660672703282627333263941479042906269130416493318270400686821272655823495835178273841497581810837236571244260132055022465769038955187425337950512918063513611306795114443242466666886738249516752136590294570734485491620512405563102587114145345831852398269676441025128608896688043680986782737768932330192946130991518095146488056137689398142445962702982837526089002120658817176490168277370173398947137032637590807142796075739578975471116984211125067273773664425479138936567965725733508792958397376843544519312671108111942415969769195206110362566337019685768414941311833405654746850185717848520092127712209681097456564905746925992403832593619392259817420731589605449091974708557470684012889932121937160320936341807784020237407221377243089685197656479463559384546983434616837513465910964778579461088718024796036859418216291705914033253585277104243265886277398383159362660925551114021688753128824071091487663376903128172901417408492233037082022736437767004907681931847035793917307863557779462282260860272274926977937887206741840709008578058032612363727712925653614928719087190300541260573103939698561355440470490234188859401719546691396567233437533452464245086437545132337464743234489553141890413046458245717835128665887111207533259376154922822185099400183063330396477348030348171237987903822357838577548186734509715771656041418097209377121880545973575293419380526532334004188801866124666702830985760520766784819888374313032439933674591947980937269821011728903328961615325702741752989570471157205593834711706322966085951670395075297133129616599926411982546467912079385408638897441420386069801521318814907035438688959605729353291379511758214796524918315103731084313366094933962788632348786421023179249921674973731793826218213707198329897263591379948216745018667535362537084764154483581821157744557210470791116692672191440616867358991947073957357101357014516976401069344093704810378847899635010979882785863896724537760632412014409273897984313929863664270755937931244303800390125551349271905418885037433180224822156523813151342861332977067424124008744496000415968315346586120663012065849852231428027906633254678778016916572875276662541025458701407701067366494679814403288786046294797491502776525301558194628539796688361967452627006534945989856473018238209605746669800661077550911060772711595652212442356959690796184440430583857326465646071277731442340850074039568428516088243515542046821420924851187979234784826771366908001968745165142323998043085804845342382481770236223061837322810397151398365495920677585287200889121259699802078099153342300090711993684370187925650151651663398107037097363699773353782049021281610626852231018449682381591527983656168785025326826194383672788335486702190888087584626290404020109941858660603329932534893411640711618396791765801629591581925712014668298849445658249261323052183971512433643379177537883582031192854840421125155995335872764470535528239307557786173603034173078353865822200268134993311825286780790575485474291106485302674980899273804855664300595832988193797257164688768939651325088619008199564629198164480767548370357430197334319513887314066215670013795320487787756166791347908782141112131550046996033948311904048623016857397565825970834573936219399349713444419403932719009953327160243188245910207132353023353500746403074527222613539559182760593085425969801160296587004418167614232711130422325242637479522552184228877480142929732374176131259312758625821742114415062199325835602360498280552938156153058384353508081887557320281256258088447122282151370794349266178466301616805764152636002289005673946212699272901222657529954673623781376864803537036021885581671847935014014477943269352088201000114188287351245481562022012809493204452335729230210565715537405452829657688211837088882228727564210095713397710262932292754159142269553859125162132543144886898094078129570143136369008425550791036416073913821992724911814706235908625606872627157901720218686242789881394700855704646798397730842017495116519046490939030731508195296503379149640895867926914217786112590841850780208536683067050266597536302362988736595893746464453009581343342440159816713232256273487518446798874225618646641898983071613494991895926141236484934095870200212626547475756601770107662161510124212529105663734482931572803471620969477702027600516378602133816529967618639230545156486660470033578467980739735489867238103564374251842230145538209473338831942224584107842691399157163644648871962538959197173386473775207745075477852746959407511746356066161471360152301117921422081779626642127879346140846938233629908869399482810791423473586717938098289087626528697680656240249282457734192835770129440279194295183899806393798195297398507350063583574329185019456426125117543976403436502357908056158179184209964046604605833978717557902287893838590845688612359946067027697702495893479055296380547011129003081323249061822758972348490729043288095281609947524163578589123741606223178911200936671895608511105264260578280688006055557944126011479727831653068244703700632711367201212532296731476610998423416070023054924142949744651250681272814050333688738889239752741707989167198332952577040832163915734780208633866417499650748553086295020064136047191218533350192044415584400976975270142765952235955561261499453680457406790322880293352826562293629020129464179194868737247547876995644168877644771517715972212277639685387509947579716228544908781181505806641771620965255177221883447762382280577482046660461124498358376428591367821077193708037368827637760444414553086800662283143805475877854360059544938612565929917564747364323943506699644506248477309113188771207320678457167237840820954986390530041276830478348269246121827738604746745677107324273784246147632332242199337629635799357807059488853252040342174007738711202828622727841223597811333951180850139427008824295292711771454663173947218151642097962270172850808617894601885092261664435062731265147377052067384266171606232615940092982638216442877370289367863410832131076872652560029304937520230209569897473249355647892302848167346829087779472079169895080024610065160645671247874885097210841503341872988292509142288532408852105644556853646426765979751784699204836349243264243390041641711722914846084975690996891758610490874998327494121099161012175564262260955283426223871756670546178200165844302681627303795045314937120836747526777408586819505170021935420365229721731707328080226023338243249723239908516856260590805620801481897584456655445340862972431861112538771743009868791487939880187765550894020362412903425226650623047155199303477281443255305900806181248056133232143452044112214452176088052912512912927978363291499070150244090482697185612226294876766019419157661856533148334607696354344988567718970253097977548581945987692389022511653764000016334216478385411310177484231032368107127951996345088911201895491584753996712679101521038971112125808860465729083426327880513280020347423228664807482057665454076955584408055541224178271711292922058148098887545911053694820111351752894052943463000993886248158580116191839988821102423245159165514118638185118296534071556836584159140434941512866608773338545043580314149612568933623019608739790583596455398670048735978637412124326954782629537650313676919531691132539113796394121029115626475204986341952650474571808412758414331516937627810192156661906313274804786792900317881007235964399296492887780524533171684386910747634895331461509761025570548401960533726428016513942399633899638577950416862909880713453349846967044161117085214401844008598243231565646355419775876555741263274225950923632942088648673660289452532335927622604998913713903799070426382278200247685050683356087627490786233433921100142969346653324185963865269609227830561547460107987005288618903603721998116082080292528927651326669817487904855496654113619619066407497753330655478339439507358537375997311642124162656513098192910193960461206935125943303264243528716950711540099363399259420092376916698504772889217096780652943771252615570909174817673206165549594906342338581081726546528555154870797034997331124531251490748283561215768104021741847411119154643418510425425679857394993990950601259861107315777540801470656872503519566604334823730082363839017850724395935011461802585971261180822132948546061756852067812270020896215789607758472070909621343641459576500247846151415352401796901032784450144012777887838584810473947458573461470454826581457917556930944164043966361334537869814784727464983620464177603268535886179752672201854038748742661700748478850977221367664194377663607886825160530386648252244028828325761301976879966907139137018803404858516724647531148832068456486561485260547291594694843747793470859883169243030176304779558231474147963837249154128605133106983093927777621467320067483332535357512727701788927623069460941015565498323714599927747785183363496664484277162983044738812726378318717857440019880012424938085717446516736815889996842030183338887867074634623016071169081237548688235310063649440714851955261890627030713838598389409772266570466743508307722422264141717194662368758659102127725149481733458294121775214102721516174616596622804302114035961148734581090844095730942631968217701645526497507541061541378372947823610159561783327493075794789132877403249102792708702182112349859352799839512139086765495450896900152094798967839003851423501246769351484440754810948641962244195887054346077114634000819396292499990893217743249128469446752569285966562880584877066555173488593293669889619451863442825678595921363737395671510390315553082020830391404397880932765930553492846270697521201811868532687105139469195544229223518502087928557950927392469256171091521670902797019802138917872669094292835249703088578431447721678844917269325308300960617428939358599778161014809005031067382323373695079921406779771140301374839969662661674836662712477668491882095332255081266229500276629597416762548803523011587586095159843012917724180807667001549571483618171607175418197984727779030858278830679166022124668153453055420884721927694836101369835076105493715768098214045677658931742380728406628860120979737360397602761197163980599308763711877440087040004186243745619995632355952772058335629913651468413080344789151140777851364715553197938456388462939557116773056852689585402234590253464391059184353361823796280898538550948449737761082261780132571540202817513720056389159905363124053950414422876633333208488979738088091378267235819704135648473951963901002113119778525874072180575448526277242272234696214726762139184820439292407312385492427369612855668346540560364857307411610452517665141606861642896107325275739477642815051230473501032976543376613819061069107183006625364758281818711872393435627609020690138751700492034543206177615182671386684912925039739560604611509692754999054870259345946133549345780437875433471900412766955243318183820959388803491388775994850538509255744799415264974849170523308371395348179029867353260865643949669717685929025064764686566658700095217776509807947407487408978359411247841699603226056265140444527080022586743490933671720517463243256058483230237620333212427757445971755505914989424703523618259976505263083657798309835747035228987394639572071006539927908179820226541262447458231780391861483294697117527613602971380095330379818060327519629117754142370542356792101341115419669909111071274480803449800536752124941104803645896816772209082257997146758646558919105691840737795029449569544975185573927327746969319623784596032912792008150675160431846829946085156576480502040193120677930387108729394462405101803686392894699622540538261377719101979079894891558705819359120920346865875619022815965434581865392689885120109330712580242578975084739050445138889480258701089445923822808099061513526542360990689495785213145873515089488743926936231151771264155125917387828954594036539932047132371927797788678426481372243761392464722664846733755452087397962335814812039858955803730600124917458777085262501832278638061576725447713147492652468594994906480108845204672344337938425396210449704008663265894947467744387464869164553137824262717737547360664528516409974076531890349410646025444926310411343297911778736694974649536088606129672094213716861650897511317391680680140607640369805597506287657670697999259762597103655000864349792020955689721990735880662055489345027930728922404754698561767394539719679874629502190941532605001676237217830476825922235648819370539133976888902124014698950754213569321503604791629027921136112603261874898558582696970014084306048599895632320365483991684296735434771734599239550168850982475158967402608397933417129056881529341953582625752362865306402754334319487533765893854487885120794177950236162701959294583002603568846253221758053285194853701644712646725071181132741730625441159941795804365792041376715044834869159717381930139437238778782440823606498578982361342971798299305568898961405208845779857758673781088913381936757404675808610927343028106542391220607796325021937559574826162729885177082085969685103225482225563293289455180998040474423690968654255429398630779175754624174233940696758736129270125092575209168775373311238141712474058712048935936685986520166574898535678693081244238342334811368456359593093881491719199424445279756173657441299167089973853530057064369837251175294813987592167874234015553683346179233634498568711604586060928703874426946804876404032180031717670953069182788019884481968587809708642683477984818031328847245414702687371988587027462172301606864651678146800263428916715561696459897326566472136720129911782285125283432267627478489861492052865859419581730703349634625668198520926437817049735247125792942187547405635843711654750785833614645892803414553223834188277515783147521368022646403915733717662013914602741503611284600179736068423240335549648308818255710800784725729984972056213579017300663593017241388105311692650713740946279193846688503642123621035097071061195107922503186027936993713100627577462704313761083853227531347578544749631463497326646815738741938676460113119178679351927275442740459416623417083935605472447179834774434521692738858634962938150370917437463400000721242009723410208743637332735569677462193445157116404906265423382642242297725988916996878436482421392647444868486981978578267270079399145487859829821593618074872387109878495254959681559115710754689955099277355473520821570233276115684451916895533802093442953500219551806776577120954196632376226802378118250077428528469441510539818663407315561407844531264098495413453898103222653111782411455939711272463977624308542479696294311779431843954841395325131729504131739132129077100173508248514671152704005014819653091977579311079517815009988017212837799871712098151020275601303866561944163819976922271429449281534470457186774375001399533853017079120335472887340415902979486160215909699845008508129833365622264430591158804993457399084150109996385081319355412413355445852396429462380621770066027348251518401898538062739170372441584536759848690238362161754801909252803252550572044267261500620219173174868790273199666546469193447521561091150532038750344711278094017112252862295043113527144973827568324880084167544377868156938893636209633966199908323962433642402072669939263129784431490378399161590545742231956910721943627173620904445619323002840464085440411092212032272007969352900206395350247304397574128590200441202364395363568595962505720468179485912615509628106569697586010428761670386592305953358527244294866093317754994563790255156651900377203355253377658318735611862096359072145036604556094960214972055752403791491310159891558852431497364135394125711354538301551376632636943304705995602939837553669906043432830982506330103506850002413060652152895515375985169046698382897655815662493111640386491198760411714191820358823448006622525532801478920321009267361685014310559293888785052427824576568547175173960257620449169214438440482222133500568917206949241814830165671938283272988020093420928658355852927571854379434263444722146322927730827738728965897680295584597383474489096689930248532297805515575836684574740145711425853477011292604762876208799804132133320574499428553770822023821162355896741762827164694048991304531769135212573336568604723446216506542713546796588569789550196049129386932447519730504907959352366105111055650951730406304422878844702644990465424490362435833480091266579854158049766488331494449717080525240445737079479891538888723665119138764041244454993943528654282791952560055289229890709893751689334813289105406047394577685158171137180205815559921833730772355140494878926949151772543237434538873596056679338434830074479025103269953111160550275850600103681277031445829861328126563113597292981373286052565100630921824555421621341840548710574305084711946992342333136023763996055659047253231563436085519084038918270536095504417023018326092427542214060797972499195703854203302975154136514448879766866526882312161650288143455237278661246358328185777210737343425166801737996249680399737211267312604703726041339832983620787891829078232763104174932033176700549866796989236060594764489807576272154838088323302371134623445817983990018772431880557717994452904131044141279296237948954624858820590145709085453380866137449326057689187837568413059179743162370037738551671213200348195723768191346745045954482095750098647353831207739375045653882158778257859161365092033801870607116001975361212732520110175901984662964375698373522586804491271122428701647259835451936453447146338051441792434453723979581404650979259835776362327175095424482939029328495834562574053517947303605911329807878716666866764179903422372546343493275208363924001843442549530781474512560471536387757337767114389903287922501056799406972476517454822654179846013705005504735202770685845361357022495286049590996814070188633374488010422787467697862075683592364626870023235326242826846611168213410091702970719395999602529181573182189570909547534493762505275189672701996298358845964522304742077312725962581179296080016105072822968496173685531423068328171421341111659223834866852782263703120868938934834437827410964855614268684394989631231437807351053701331403090714638027770172398276082109028638119244287841971229114237923178429354731334286851315276518039785163243576829462395983263455956339755621484354908209301439220055477754198603102325132843341078241507421160152425643782750431716027898209732723943063688575578899284729262781426348086216911065978375781741347619972620615260023794837676694141475632764176722870884247283988162595779739999229237922666386566209999319143656944420227938348010403597855185669979788478641576336739336507862113999698574559849549387009735039106432138532936575285381553870305904400132043284762682108340093298812208515957433588163311406284833890748028773523551097138976245781650410324901505142410798014726816415783230014320553795061997138080233867410973664107567444318912589384921572892399382239989877230661858768063673312557009775386249300778736539532063117627835155082747327389417359952797353360061062618696071956755530267348939606721846264779408425823555566269432997798118812535035366851342746257005742291629926322154150622321730159733475300739770934907139188073212120355929308896413700406771278666329677013670810706593995023971639079696109070421080064877552378798510439960664167297048031641103460870867101721744959973845794400214861422560034145249956880700321945213238955999883106420215086770572798527904059160800385621757053591580997921932471936202402909742574441104457784221497111975444783827212564916854755006950129765337492228089525040155553708574752298720336477210805224619974018071525902368233110139503253187256382545062306241781079020871049554561815131801258045715272285772553458311134677401907150772158876782192324345131010329375489443564243603072639941833809799076249527716641909826430159081215891562515078458185120429476391958309262780210867777097937701281001076406522521450170060339398296700346214124690035830310099930520118747352566091150256245013154601417283804619883581520957818120668885121951297520767332254760429794186931945562554203721444621759224114253189328069484096649963206106977309246918542885664916321109384047156764964187131180877992492638407644622103640033138902151125050477116982428503748309491449047951642306614178794094722337995753673317196994940596968809979594516667094811793706848335537062342400834636254328908546872378753615691754088723692579692955009257744203792493707790098947244841082318344774163461097082488688855660305428845507353428016752566559103522346968148388333928413243426797959604055637832070094241900907898273201545830042426675278691361288770202475698272153607786618168467664875023427110692811206708850242292265340660184819088851952100422384932466187311793672075878721512842418204679260279088287914983201389129164547130663477336808543348489146735955264797249918735412709209666065065272139348788220256527215202016023900577824960178882984892051443704540837222248569236052326576819085276095835916555198156314158182999436234353158532620070472966273150881585152917813346202850164295220922522202277744521780184331813120327163367478215219809868703343875720516733680438459523559328550827023569656026800265990912704307449997294357863789383719251681167589203456941767105238539959094458349792402396001461648683075228864688788582815978477951678819444336799915946956567311909474398315286919438324416228880626644782072136575962820644314245150585409811116056478202431356202572598840451157657699709321179830152573516474404613166577863514338826285952586655543286073848971703572308394100709401523357369492122129100849525673214617487399390183147131888139273040067642235985829229972377082699193973860614912344590741548157379498540140736020665153660011789702354484176119968132556428755269989275625450547477746943421196983311653886022227112544639554364675102873682383469609031480386167278170086525157868836684774041148481832650173733547278824907416305969981871024844110948136395954011961698290122038787749765951504524463681453458037195573760478993777029603374601054005705334132390263455828222572308702820286285309242400785919224500419906185582754651215298471585232078048045920721523703820890896782189020707781005694745758316253895712993964251698364314201077966227566636064128378653688684903346817618217768026232534610338497528812430238678563523614425018447395059128216368832072670350789806300317710674470245379418065011835408606545736379782084963086001672818390358972031123504053202957664611163761898267802719234868531335885363185144331285603718239584711856343904176869538151496204080113438583040402505694464858143289991549376445964482401137870554626627430761743100629759618238649364341567994658102097497503323980544487182898615997846916244228283863317390576663798909295717161325513673605744673245974714205630647441546396556646435650345116093877285187217209720248127203059767096047796689661436760678825682126290916879086406851502541369809564199785121591263984443588828857323453610979885358103832414763012378370296906969498768377150173290493938545655713069144079309269858602956174558143469050618823265241071334746072420018627170336766977039070799834522973069967108808228444834767743125515174287688171164601480062712012051011025516317119627969684701951675483633845563022892307012034478426344043658963198529337838337889020119192183802986966693165072831100852026000274598143469490309422596744643849450847778259203576802410116923210685535060079939642085624075153575468916644915212532172419739856743214036356421789548404919142390993062101117161736003882052550570363138629913290671656358328575379009800186807309640731786427845686151381815510398676463128985102901947315884749265679033707025121765860023904553497447247903251460848261179445588269525068453621226434027003826181346298232839140316588150060206995885466425788673842742860032794507746855198551620801175393564272686930711140337363485676488795370107746021003687342174132399331199496186978860928610102165294971877518068178276314022697756935330989833840035025900278319985398015522498906989081151688329129541657243870745406458509993044325804250694227900659631884241414930202636357302592572111586315564461823997920709267234061360003908790841767569822021752669212505040329203440547355398470169156314367878918027018625297689216476855494803045273863017923818009641219945206511810564401044532875299277999933410931352559607433510658856784174145783294012953145136301007238487251427504604204757414578639466188788476047878098681165477914783878873047277133025765533566322423874524117025268387179076311022921290509601668562336451469197871133151684262651007813140192335313980049737463848760805756356340301079125212055377828408722635572815548785563023364538179200343602752151596066734949864505166074692269519822507012910936741393435248921568729168770104534771316801296929938233959996346895283999481724869564436472885821311812402070049813320516736295971575365349138237718325454029170141324441804393547672839273069238840077404645886831618559017620774105267451931408464200543718648746221882417813962982170593303138946520879379401026363317165890805218411238237353757902329699272354668109012638195442696326303374225513588125153964971589120090070486726829174657819692145973657868705610057399433727042443447616250633074529517904252121695675882180307730293056508837858938193508764758496872944068005718277883822058159516545712382008952967965091489085807931338283462874447493814521994699769633694077941801154014798295974998871672218902754456804048565717639522004815735843772736502354093115144953496911295649118000470324555496131681477970899522014152222093336111273818253749170539294212396981254003626087279177218694897061906692967745034854519713510387560266962671450066448091446942407154382815840194392305840847527065087044473190661129832781836571816278155762511545582108004523945070098118688655081984928335750214481736313272844636167816759251832994590357518907868579272875315470600719070278917017469626461682303593904457993146456989874215310479837647249310498788249380732875500277912412383425952778190422725989302075532947565259401815075970024214228651438502494196369160256769730436366058102947631971970489658266765431865780298577589488053226182335739109674186297530933237715159304174824063064887463660286558072179967105807141586035626955168541847605248729380947888856924687302028488314113716440444647920351688220945108773697487160130437667139123386571430858383490192356542073844944457810671008717109496242823861441982015344866019012097535736843155997255620567571126432482908950585826081513028308551838344423543059759306154314210035492759095598668303666996810368219220465297069717567228957546688144242397812190060941217784257283295818750281728542195726375535087566357101315214033751298783927779132733203545640358013767688219388946336236279439035226171725034770525740238720974172457788610512503468546333514752215274091064556680953282313446551320374922822988186486808902490076920130065635872550330898391438210838118647690408235144930576998337090367451499280982816542084401397335155519294912164658271822933711582484789562349669581994950657850811741375895590330645606773784521677417867138174997778503048301493085659230146947707331411003847881040572687011049333790484905645741212594410769326748086693789202567000547488136036045286810470333982116548206144987094719552115664998989558146113041505330469214351291946840707361347171482973653488458459735092238065973136954055973474234142365928077353711534766131325481066719016037056575327779855697536214920412937067760605155447872699814068100179396920472763243598160245152221382309157917849550083970245298129393032445984700117979694206900092964281433125743750534532508242989882927625155514940370871141057923874811762704907915602332008121243295573956136883011826479238386340375145311894648006957721492887970678479066941460137922474518953079739659759476710009040904153016596405998268487847986280501277649735417348285835664243303900207052300945035285551609742832257860190720568611081440597428673314407377946318915912209769461103358015589744523464645580696657928432284601653740637360815279683762594756850365098887573338577851859748959628892837549436808479850550277329938545054054415039469125172574894028890858707015746800748799486426147060157330163897267241080843868463938404176137993437960612146202257620806218885326390709306513797619251384033333077424418650707855384042308379365312688874040269665006021612005488412204997260847602394120787385530181146590526495875335156504122633076439261410789799098523229597467413391987158976657315141531620825911420384671108916437274776911188111502350834090214669169517979573916459078997990897240889206896799649685600434885692036551902021842700842284826831975987861007272490308089088134368776702214457357348643442675052024579382429227377073117980119250977364480219968503784239504105679524369102558146779616567212274075838309180971108102009004330004956457526353325310827179904806039605857121462447995547700926072713338407354903121892669782994656119996435432775581440504130774085247350919261452839135979864485509812197078131652852541715611861233513086753835893914647710868371470449458756274920319248866035199399267352432604930608019544578675399839542736741675186345735084923961910899183483262751872397026949123944678198451886584047334922297753453337594746618965401385252892222727363091353757959448959043096687427618575285958276003105628046609698080086112955035969371110354151977333983355056909433410360113824713650419507525449763593691661345135108549324243298144237425036937020813065209372389598675663612897067509460439759614373859811074705623119287333612531701612792333289002634993518964980306431143663529926242263357823732067576152500177548976089811010947095821688093498878764020583547948507866493871426282469374101703940019084624551004958282517965538676687749765937047217548304312717584574897276517262216770760713560215475179651337050460397495875195364047269497875754522525914251764509774078762705774685233364224189653615626630038506033812918804922718188119947649645644915762795041738127518392322402635598219160973109950466988919278893311179364087960629824644595916287015946775924151850923481299238331194007420099467776975848057598001279604366603976999523611066883071675789414905490284733856509379593643378239288469043311975438549559850220719981793701289016255292472124503198400293366022293801163339387532708656709971759587134282271448357063258651667501976856026151413408113052873955919303816541453652272474939144464416819579568530859486430382347509907116441792875936917041738854857981024505804271165425687563511119738626755725237337370611162983716970135853054547528101564712401269228087740705598310813272851956612877418113288789354064601336662339258066136983671446009228804020375357375020899778723235885621390495562097350883238576209370797049973642651370124123755534954341277902897799515807519117744676128469473680731492697260388894410213976024929316521924819937519121347771576160985535100659628845473270106373042063908309550567434492434726870644463365024898057190136369676777509458394194608659383399556048437897299597220264621932595314683596617752723240105386369248029623181872866527323174162620708718279818327150645653821563841539882871760566222010465952105901764590788210774600783253920924948874729452084639671996932071012236016862826128390060890303208099739551901709498306554810213478256892754198619547872883259777708244529962706530592631714701343916851334437926527189724812057728327731989007570444069608375667225644625943026694692210896071853465763003308611390237326798070206083166244611684926357739832143906428143268131382330196076040696058980795872577314775502735274043083556894901436234062770253267321547097305118881343944719337174851815152143778854789769940648104673782847864871481809295142312882402052679729896787758275442609852888387144648765791413021977872397147723424521607347025490994706929346661801059447890624699125347625940855102738661707052383063505458508662453228019848243175384524648992847180895133943264180775262867270452199640442988933848373847821819130615097392764527078460455319916026116035562967613150418305949661091571885281144754792066918806399681837357483525492686077117443626926135948640897218200549374805860637394738390916581514932895860071899588597342075161431054261590537558514401819042713072139854402178659262595908503405341207969819275916831642873792752522678956069254377574164929499581895473587289176971023886533885393158401312956566155420076969521324825504095118299275121632437692049942958714761540354097134193836926583078828198063123786607965779382260252723254325228412708628177442703793744158506726026468113617597653005646926300343585781702337431030903465094287403515478214611660286120175579056969355462291340665864329612680587498965035742809214999441862647784042055787969845990344689460977680781836828103994938097055220793597522050411944445012075550872896769869565384709228144084672362010317953195394471753757898004988962479848022631083442273293025236625389619439819995963506768447093169772868816549845200180006412694516995101468336776715065590921096345092531928918838880664949175331599092384100425382896602473471172953752919968931582526801630223788467843305912848398830237508438341368560959517254789643511970902522747453383969446508396124796605606671150999864510916969483385837166963442514748574251391836376229455068216187006834470550672265177142283078056085090800732743077562758438735166889548142813038203733051475512824977191162065508561482343684798560229036304430221187198382371894728643946503552684328947156522181170084230279275109932146834910055804393517510049004936569075573619113756790942103420248380181991096284942350656006045455620280789895981689159911933624042035139416589127500333616955038882014564323605526658625245874272231610204272507819323286872978230547667720104122813042399880967461898638013388061018792985313258578469582191762952445926713224455875736215755571528544647017882422282037441559677777207280703160243480716326004175417494837474580201590999708932888388965595862120186572605889464878854985094015789164244207620675874471292935960160686892335051596641825531511071479822955819233085098228797809857431611568095928615833157334567277675357529200215220292077599018542683974611615739948642403005520180732745975625174914616002045047429101050493285891277257172122274213897424185509734707174186294145749969570507020575171975758300143761945744265199048761412820378435365719211132534134685117953714840103301592110456676947194460519032377174024053239122081004392659494895611757231135315525930197259296769483871066119356588654848739511155821437083273959791810363490893511014806220405274133900306204053424328933204902646056784979882980239084860742694611832045611068747433356438165366176099450992998116259917245337679736918912391892813756275908969127868212418647155040858649784082105135554532402784283138794271170978564009296727232507149826644959542998096669621177127551877447561312987452100935742325330986422044106236288233580578059161291374681387098518418897799499715690305370500446456434585006777452620011034820983282857622169135388316142058193274040413912517002017095690978670938960423871053601631459498290464400644070383932374883127034558090125791636181094745364195803978950115058373072279517898675377323658500908138037080374167672321442921482869669994235004804007257217618343474486220732963175926542696340037300837112183696458399634289333513911104763356618853910370717526502345887475482229916813698317003049779728510234861380434691962976234007637194355170995311962556461757742547634628287690605844410997207052045317417998107528992126211634493013807388879397786753290481617775308198204223641102518173868903197211026593037375691048478816294993962798180683671887842988603813411999333960665248982408581517020632314394350776468036734344076257978030219191806409685817625406522043782007143229668992820929616740117927370350040944565232663089352440199851446228595757999266278888824312841810300665083928057389379249380630475122169430683141637379579224886118076023689129641427315404715545000266196201745132231470785793035995400123734311035876966388439267627090606291006355612235898235156235608265780621658204495182082215331696232390518749948888640172939698708690729534129825257572984544662400375452718550427088388940519426373381528732466751490750444228257997668310982942864483731748893972725287172393545288739480463734371812831309152731884936129776990578091903526871908223504264293558323896675784729170187937148535230834758084435438959758182619957251812316496918569043181088915104617898264572015008361217420850619651111475142940333588692621667439848740947654477905664751530315849165911842495154366844275266949789503583034435268149217439929491894174633609672250808476026207133428063942061500693557211492214800034144447679495166877016292524006011174841577069820318079823332546499031380781507209935768874780542987129617457218431168019443810686705850363998395825125213709916508125156760517982303061570700036323432557624508045731675976747769934055699834516199943744441529058084029232338137012204259182831255072610537345452221764521675062931757942524938564922336242219053233373697992869287468255675662029812208366911183260582159835104469963197713505229161867116179739581469527602822181180594781508133903174727674703778888612852039689909284743120783451547024250562680174722848117721827307748903345036905242185167989160753075687176834274096193782739657663766755545982925331716946269500116520367083735094362559195030252117073927536177864022806476211615619289024986725149016284848796407033485485048846672593400801064769895646275125588299978398484021216579471308848502586016657630719541660956434415299162221582177042626225102387842732887900814474287231459284859488578150863048193607913746178165984728717260512876000945886678332361421961989056093811788244657649283633409159045713292244420416646982011038735050461628886397780192502953745270356865396394075284230039311821267986719410729422966028255390979982683770152766002107882928505691968343280571254887853904094457307674400470117686528270415613651830270085115094565387040339896439294386477915002998699055121203421406459520934563403604364888472245192095902646347912889650407795835114752008067430131084799011068271410630067756397067774175093480643270426986858906643265887775972679071889605507879486166178905741635747399112686852257883913814081625480557889605529069833995218926415855383423440480956528592348976496261104545102883359545344474996407509885586499896517305761366071189232790569734673361547798407572340914473955851928139682069650149807283399699186551237354364291250654625426554189722074579717494297250013520661327211670595190078796766036151670711051303590319482232621708578721641475911156418980421147066024598637112267076271995592101803830079092242997201786719233954771918035410640041751532871755984730353474670853796375696632728895227996789302761222363575717035875556553455215951545192086972787918368505766958391921556212820954382153436964934252894933461979328432444934074817152256087197459696793555736400192660769977651504508656012914661450859818742273110389618539994658712813641650584821403484838813652665091108732566208806586498595781724530094699689491039759761095132146821387351614996845350169444150957683875023065500705836233445240720233358458642961229719999517623578786550645192239177770827121629910133996598876910271281995617627173062329194565136398014176153561824296865478533384648476400916985661198965484594118466321093831147006763440957691641242609234896272643229330321855265427513282440084688994268327024568990304202979870027781049511740253260560999900689587320049809288916856525999550455924746557619014908195138814218666887439626533478263981841254258545327782697921878019074852540542365114200683202989394124319648794497971939441688665496477990338172785644352604408967869832307315382517452126547418916951761603977367256889677170403243028910078450544085969176833428184583885086340655600094137035053203968324363703638919730868358974535756523747603059476489583475911383900684139876947958011155317762287620635335556142126106031836102968722516990735358010694534860427672107036989204044222131195454282928445660620025677064352056794547102077964329341888747250385692822300393939120055854132316281953660439618710457369015565519334380407973423509274594325179646210466216187417427017308901185812861504539410891467136421482352422735135150376199685376393109472489737598813400842339440538266046935378708620124352615940120577529933590557635265819166525025400004496945696983741570478604138122021491547633963067271227968433175379418965057027081361002158962409763851455668653950120854257053747952449784377814455178468375522298064225304561639073096975220643625738561505550423894439097326302968033658899069026559301785211078871334249883568931058493694833252251589209545175717729491368111670039797841381057937698819072107847439512456296140315681091930512746611773642231302114275557753896638553171987698433389377086921310827238904791154089736255446061116218244070321135829409751262562032019793025655820065955308501082704628003499220045696354443888813999171404198352917259007496647050253617283788740042438942151004150976384572597248914080422450702037084985085398106134709011528893919869358423916986491622693943725232374962958712448821485557997889903982064426646664997961504246573573167256356856654840206880754775071684463445025353503571244689723016119419895443597855850787307218540100821743824573568667183856189034642680162802145203467191812790247965883128415962369489141503865335705962684353709171403365093197331382203401706884880546412079244311395620357937276156838152293222377534606068093700359268657496922406644330471472574328630148118644482017721131888636425744672595177619524808528688468493577795442370208355246622912130935138587620864889432911308831695427491397011794190014868329260269960223406217282904972747000014152578362317637480792184090918322510117227202100985670777571180546662327543634725138871190363473169761765579482901410444285205075339044510625810603299660501207079620488180073829788880008124115395379940990810892158766722096167356236534545512466255746414692446943791919773645975063423284323884745962748227787543753193927689562859591509859258468955483708475522446589646319421762912704277843728861902272788621360538199308350618507585019185679404204425801515769892195813447436195018952796484749799854238888599264707014173141778002798477416921638149298020115557056946330331765508094964755033935674280090116318158330204677354282113921017222502899051797285808716267529190014372143640686638634907940232873850322439758774031291415224089093540189578826854552966469689516684070332462689640052233028014597112158528891862371422352762109755427416680376850288009743063314034192753119463288171100990118446501317068022569683250224957887172403499314518410270024821325827433037791972120707083324078456445665234548266360318756453877839307084242300254527000347604685398675660456034003196042743439204848851299383134993967294531427185453103400381176324747432033283521677269216864717749585868789032026697015991167463697050350169427010213643500736563098691414580616351748132694721042641579614081514209603241391089382111846864193621793182878375230769541967004785393229498696703894220801012056236655071786351055794204129773747631326217789456562585713758623378320373273445792247567159556212038118718112242098824358014719427269855038272166770846625212576512159908582991480023991508153116754211362043204636575514440375612109704123211764845519343048592352593599837069622529620969436210186458170941112370723652897325730384077635625856568982096302093948328880637729402711305561448942157935939793246252229498836242038081951362274316627164713836221753389374672961901750868436657527884043360995710032519879487666746005129822013086090743828103503566183647883221300462046324689273653293091969849088669968278069022533684283945679689335850806873487659900969306747951452737888215873316627822552486648999273656389797649245499600629600104761147768650325192627554612308447262969602074344759671068353828755537899567712702004599350212424813187479121256577214809347687414612925669187844216032096100729820189948608613660089696755941875528164164147748912451289827089811416052161392240224770634530004958190482601447898848169276776652971286041331552402741618296836357485708262102789617462283704238607970356074914288692666758141319675462796000550578330444585766495356402762391375614477625692145757044927962717711979543716601282178848412874637517668734196699096936827471005641465151791927839827783012280013363514082480412356844493229821994501355227654955736871319563747664530671483799319282870113849334031701779597502125624418999596147794048597421458803885149002064215599659383295888143549844553834785085266498302057674283718872891226636601831170736564658832718581895800191925068590566988960155589937824353662703134713348392715995442441969568663997434835952884043268190908462512592303071334682204598557086703717218136056258228947628211435794225070212413080533965429393583250548020914303325808621235263873574406827742475970566916027361639258068176399306222953508535449553840147940984198618254066706966945852068150226539318470588906714782709024495535671897873169993047859146965907570983898913198658825790251797507263488332862261049800105696310986540975262466492673102215751120804460730345646618785675740359847276826866916916637995386731983549996775602505576457091461869749509847406765282539126271339469854394694282547887175874240856701964079433015901925107955581272969913153278710148060758640808683002794492603087986739064995223736817127946105832481909213742777060732202585980004628087039212980593534704263507138892268008026850163977971956007830302436862814024420724469225374612329384608091808628662139229124846721514855254065175155231506474838718864844512062375847729578636831854373002677078583837560351929261623740638761671644765926202024274127400972697561417290019797803982555666012085640176013184104675729446408601345187304254007606904688413024312682147926139219499130170338816944227166701045516488437243932884271658801443189718973692336999603747374847906384015888351867384253742975484239302075411726728325338040649537019018289397135576715706492771035497747906618267838445117167261831989111146213538348309727119385462709066034172850910466634475109458497532124326878045265778188580149871408950664008689540954885719571731987954564503519783666459626422847211632553049251312847607991458681116986731385195554135901426889733679500411003900707986856946194440162285373191599587769947484093538297695454681230090297778609474970794840234481462803758680079192393806185661413961051731594204710005042229583150732559170275359136245457613939511046335823887315749012428047662312941522426630403764434729327798046324081434172443197870604229134336726132862291547112991099014236723421811469066295715589315647108202118656841838552651016939558299101410314291240346418707597777962887922194902634725103981759401873840032528740586670667325888040956926338339869058067467035062276206417566860329670049349719505479465631041328178933828895090557430993686306886704168516889966982131917817786308292588644184589364272701364125248449714986007086137335080941699425411244459089728635535872393022941706423580149446968167939698046581424120652162368235061402833924784244887699692975583715247212678668670331062793788659397240189440077793734396448880829774894532562302650717447285704642039679853069526152310034058327161215027497619780078004426498051065073798547474025551412797936968672441288210344579485380074274138810832050203233566112734300577083820253534217458655979427008546233397952151963691120419526508244568221716058228480695552854058362351073204088365831041721003024528970170676248437013222160290163327840325663896976190658394311469255090391601588364390972362102866152911730212324774723078887878688458202321031658487008141516010656173725613894957805803654022826286507172059591085161960205905742112467472285002790705656099329094049625151567788187467780932164062206646120333229962468096564885269906684502680311348027334309043360013101444906553446476719091984765116270117746932890730595071372054693526505605690565988576007829084871310164740435528481129633588678476739251857590138457809857599846076527983646633068373411817575698294822502269799799257048617670155248074383081172269041935966512797282631690860068912937065027735168999047812803405374224513995677150207636208709294010617095685544145921313878276493126486200270435049533842514446760185477905168127027684957453945077872759558333115366582132410706413967027386835454552124588046906600344987350795900597939795016854117111639689867387209933169746125538273498533965698477925648393406962713817449694907213985923143216242715915202389316992295990002993526746216085667416023365351936377302321177533273167379842565715619393608181654850237813931388054940173870053540852539233347626090227125710145047062933915048024308509819365920762681694552822793118509924173884947134985837178154648865957813619374247535021342893996511404479576125175142519852807920881140810822089571241989624137903539895799404334075622108143251886076874601118639507001052112075875156430167983655806614675744934680722163465574539151380241969251662341978737526175167025287615595770841794558150692369218349430338244006371773581075364731756525493890114143204708609713613399010202659725699898934980347231168539991333076029937954382369522636725130672425932222138106717038965868697265449322812541591033386102032511481562456675238299458484807748571498468866085915701659956060072354580510380417079680796743902582179132554545947752334485681855473551425403226800564681384032903207413844238823526667797675462182583107522602131946482134663035074072436897213027254081659410942061788626040454592723407244063265101856321375381477185105732328010287876556900648068434382717561964221963053016136192108055165082932802829657184019352037098887422731299091779130081948425702720119847950453993779432404375133048468632026574472418924992107273858198273766474638756512474318258533703882833788314962583931044576020635959450959272468709408327478195119892715879601678224193519345014513785794779020649776647104427632898698708458711128872285345146627945636878674200789500218823253952707793032083611878211699474569348498851742989211070618605020964357465444006684742548042778906022491099092730699103607798661686112036508472095243775575379865116153314578909886155648995869588337741484278001383606689115134985252962926866706833690452157304612513181324545279296558409452013942241494261057529191674879256348586068624391769170763421699562972414275892283478812274234695052926690449459398226658113535040187410630718560346644023099598416860239664584558124840999019403354993406281050769561374173421893840508465198041436066360823431426739681825602202867256342691508857487948833785503919501288409010366008175124273192644768502806213840593421800225463657073431579007571264509648824514736543290191627264959093859062306231596525275631301732925451995323112482260609622198813878933805260798050197345840601558826884938804814828686240476802233910016693826239699181427293446424638532466879099685171818844986100304499955464017606093986236074310837380099401062803240464196018649639489919758754963291882362894116374454272350456927772569144183998233247029799924107783475548998823918371947476728048879352730389846281182240122918639315485618260641055236048563300579926019174966351363780683603507584970992449207679415003395073821801724000597099605851997943049557764175420702090718234701557627071996618497078418046397563110007283368503152134071157366865603622448135168676228226502621644756441545169322547896430458979720592891228620542982642163276999877713010954258958901145337028065467910904890102766212215698553198693286775393297905002510809929963334727003400356280353498840058691962751501968641934553077756264837545670423370118617506353220856164296712804333531901798385078595648428747157620748373315563027109544547507959711991655962550782766318315746523829385971829323767994049352331231350892354696817995019678278616149132172129449565686293067662461184941737802428910549894580566048899047366384878414254840065805176772548874222747873747783885958824881602593552976946906691511090129220896958355451698401865301035489501550225866248835714520216005941373460249665264475050156888585687291772981035388883024159176555833326578155106140168298585612265628355077960408776578795917536050406234670708092037843018442498594610630318632273099867226492676415003099210930129332780897715505028226466291618499347068269500887618906306651676431051627832190764518473487376968303517740876715908523313564113252828187030044004723252201337048810356329160666484340734504904624912559120545462596666275703014717133171579576517706622904923095195030181246186161196207800195335168341004510468934868047045640902395495326893345339853068138940346161344720635791142312821683622152386779495659016472723469992199452432429663708573775295100078475341630030317566082034826170456871979386292007978455865013014682732571197497252208955967247473696610898892680319009474168710544287104871051306337642174996579771545671324680785064343670345274491364697358443698372979674923086365969218340674080793574877535056636047999699773352220488754263580316152503363727847880587410097453866933961323868701681827119483803555429500234237810640099008521360624894607318186230912217417293657054384057029868062900634388761347898991124688307985809469468793839795876391493619038978333736493537284018371305562701915015986129531207234056812685108551950376819635024376068746906174960563384785890084222172639276998662124914258657746829077996357707377626469913620669508414987919543319605075916478387191583254698201371698172990988079757889989315270696214507202501953941658336358630278516663673108714266483069314588248492330225064999247361064250682546913635813272780830607411738023139384634942371911522198298484734173610533485603767012487072135493595169204352533288643080292098397053656204057378496731696894414139496236089259369164182780808708494287799835238235417310329536654916447365892734065169603697630928801000918931634499968167109735276275323077728097240275890997869139376862044289083526726574113912833234927075928474167753379919190880817707647502936311531316413808552850873561675063475769767552259732853585618089472590367714804304046144271654298805469381476204788229513429952829536798964326879610101224630383359056276942778214749382417861300759957399976255775835107868231748701271716071503636379370028735042400014964953167272607133698277381203388647889601155398875546586876813517385485515410576815269146886609759412505403561747692056811792156189958825083063045169711057737643054886657177543007001737207743538916767104230203865292141880611751922858253413287446950665723852010264784016299554158685594503697377319007623564936240108174098953524078953976995344922012785939761244864456696975461437575632684184252501234456171450291126141513720171922069685296742820536939439414146359241114202499589996627026302764993909445150131072959534156770807550542296394822292671465521671005334185794208801606981456491284348627066599712354744315811257708975141872347487558232391165451679975828887324718981968977878530710701050275572694896977539945586782411181192142087131288366705396292226863204963008539191387812415153305460674664262191403860770160558719121325930648161820484364033091652943106543381834040866558205730226969012228310182650174896475338244196660968384905984536978161819480265744236792746531393472902747332504122450499889655920168878422069305436340788858395526192922223022898569752159150046946442420187482531652939254965944087575946940799326048178829255861778274480667071678987456836129378291656901091548115458544655004456549231262518036729222835198457070576476010859298697778023477553495953692400240216352078753252912575122212489413131380688059154804323413465970533920943558038328401122269016933035951696608894822603261508505701329750200807172251725583017580542316774356301316280398716099936722073039892118763662202469568032256850035683553470341587789706720265313917016188771845664334566403559720091713629884924830331224291389401019808189817431416173357631312712379251617883914543984926527508290065015437857565251369269844525089357220207413390543344331238812732332669075985974615712836785367680584087442045159207801548093061330730116854738745963409580260372970503071026913314991856518125365533097317831425699734708796749506561820004185401856922754555938682352008536182631018390438540863061169919816038989974336455841425105093380404890662134880749514349638571010355876265501187667403390278957410066945537911365909072262032308614832367915737145350575941760114456963267248904294295569626254401190723062375431387926951481950572520573695155389499408163534865920523293883317963970582946720679429066848813143672906829310285409152414673357204914377544142237285565872585050534657714075855378913262115332749196715042759293705082197138072125100403663089158529774358946183416487622343726660332209132139203741603779796933927632826627072699537470108061592654904033119762727070954038028332352198361193361387175297837672769860617278796559096627756698093721979729632541465255175658393499149451996722670528123067521421505218111183967838131618302537296508360826061765867092600847914644527836751255891572934433738287074063869258175329152166724670731753534632460447702941672072332387989290249189292031579479682249377979899803226905535258598183366555937866354288455203808705608748373426413865843127382001009753477728972084790221297571093433316368372369193077082554264588763206501964825451224981219998223726019250840998741847901444554895328797022975939385614656535609607942858192398935215059923749547730910466345587334795774829700932176252119320506613101123218171084898604930123792072571505145765257374041382729130410199310169584924758808020325892778948623528259731466817363614670639105462124713954238859523732918183474587621481629469851218465343299699135785697375430574110316758884457985447218898432303082541155068802692073097645242408962389311384183722608688930464776928335708339564703526626521899681633454834570376517320352963306140832452912486725694434790917188211593531329682920831693515922772961977086572415884172427652890644942188500225237035001610014364443044904140525711300119921551915442798803151019027390010340974266803657265301915736653086585635356620764749705371468340011374279075755523627590635313878013768662940887422738735187387895576447526650006362230145896029360803417650447545602983788459205968171048934140914095413899722965507299490272311380844585540557534640346425183393175135478350037937307641286141546022246295679343664231137413251642111373141014391571412000766510929157306352328156503476827402672593622109911808226068444787941376579062012473285691353930384144927862358653364350655647671841085834407208479971856745301306407749268593703521549784771476421746637798157032008853050483464313420426060767721298630121990814577152751217867160793620144165949688502198662113173013322398824846438737499104192612300154169012804028061290100372346862481504649603253168288641772116079634160288834701545592530542350657206788110071221108439375996309857347485727180893933189099375463295112702746754388716309378934011981216844659456137994813793168417642839592971024325402851187622557405868861118781147054789339880518321016679166689391338168085564697375226483769954415300545908208845950402496861094252149849794281048500786750412749706089310513381497228289708341824584140110174162680365788948168895485961510627044137685925509294356601019685241785155683767393072702060795353183473526948093015882790390547174861354103153080386050622769968645275260418050680707960709229116184673223934539880645404753584905774286521089422577787286298356547214547177803831822221205494497516849701256793625135003174908594254541285392462788388224767006414871737960460130803749353340830640175256650441702983609433548412807584309828041423522631596628327580642642258240942753647270074846000269738239747394675259273200042597146788276051716853302726577385587667238066474843795588388252890995858690680386252150790688687124041237313496457400184535977459013348640992879378096329946595188521324388721611341515106682276607717079201201559829140962642901026585351709792351590587409025042507260354610594430753876540027237578312169140447231518854591665086493970530308843834979536788344689907348391765892242203187768504181598577522877696707273353345066956877132112814981154705267658433104723736273034381601958973412555347221584596553936113059550348189969267397666576576695394897314676669038022309339649551320258725930400402303611031704781019024149106110868127094660273826498325242830936178979127737270653225128377036286558754278270070871564684756104584426486700861266701715260644615365452023102710231094350514224863659047210913271351285496589005856958416541025958000182367539696137365260887192130662882414266097248047412096401803131056460753319515900479990476565956810291469902718450269957511807034914233085792266568442385744417876576040953418849175699313138575013745693459956995466297326946820551461737554405777106205459520084986453859557443816315791508206281126120260298184165695709174657993265136189111403475420202967770730970660742672305419303892310035191469964110945283742222285026623141384625536626587663866192696129882130252304042558052135901149587637994431946733209775639095339216014395726419548803205205183226121889951384832418438946781243087738767328677637723794806333114314451754090031988619751348610983491721480505412785209365296765648911825124016643132735756232684059145553918816749167316694069855844329648684079062632095713400566988719881815816098825797163469992024779290000375163572958243733918175770608201817396668830708442294400669628211797379295107559793493550315436604094633987531123809628292441788049379231907122484766944033500938078358907857111808555193171988721303246918815446119426309175852254067716213740211316473227760275344387673436976441368387110676482709447202321704834238114155906140621259257522676466441070249888265379110426334005489284354089839414270290667105211760274545244654807305005410291460248348297550227402052592889879726548524790327207945217675903045685450509705281859769215195088642043743644275355653439380739334490809411952349364100833012181539996994397580024862067394898293157087324497485408382928527570923009812789768266620397968671223525206297340639802523821858376527921186861894993790749421277929597598772387301949399007745900794260742486885631573379394668672408985485706479220562463317482412271974391451967899307454988908231468101086761719431481478789023499335679541842408243734947642647632885699533276020003527849294465167483770581302003160410137758424065906964864206844369224818615823191218422796165552226675402078496657436577418611226829569044962789480535144443324971360016987677342678451676908034325449417781399364999589669136897315410171314994166205470638016198844473944112158911593594484800701207797473741614801601781450877927530710627021094803671614554096496452257277275924694201671490367273856858435279408078964962497532620522024198103471744415468948272908918733769179505915378467287631493527068232730517318430277812917045201106552661577914112128681508213606180979360684449699434951770034033810846360697566690764805197593434132206785129295502153398365732630139320655375221226532020765541199059149017216994624203041773076416675921676860445310237636815218971560915768348907886526259759734102609134876161397435579073917639982155596573274871361931271101390532996345943174119917706825183916209600388780039914090692079499294841634396623378214519666318640501617905087530238167026472292113102052153606207304376432131846446575977199688652751170052256414553668031999978722100071073118688637084315512624806242024292141397310309604878131910162803582201489933457252037567292211891286600350713567105885830437282014852164442393567789499821512360709247132965185142721550474632731246497901201508903116053169433672235423519252510313280818078249748571192257309361562189613354576691750194622245356910165033813745704364921425780955810396158847032912267629835942365055508154082563777014664799073281862430269664640992807774839153647064218731783736673321199073066127559820241953621366675930857638191361250209978049729525785829623723075166451077427745199976013007007569984419720539921780640973241966085091697070067107740934287504632326129015664681896844611970227354328195024858315267862357958053072044212026050723640732952485211891702671245889313748644599380308237712940329410057644142506455246280970686198392854467070028997306783082040417122164471553302590363096347734549374389266013492436411665831444323772363368121038350216886136993588660977765593092718208041320002786418754826446794539914351385680625596601749569335093378492606667166822244091705063374797834976914260313660150919516346538774534494288880311130659161384739596839513000400751248364824634833533390566090331388752546289830004153248230168540514270696724927524529478913330277651275565735956068778202356586494196098526404609515272570508604018551522417646741132671588288850619059466558026290547546288291553153155249479267558902691978137394158549665689629691146126957448072400233024669921124051725444371832763318985289940133712001013538717438832695394558272647754278879070212621287457166816147806180227092915661162796529140499061786584853171636645166306490740168326193091032559015772170966328524212216850931252245142108548080730894582211902252713433586842939573256257396989181555050660163646854489783037431605668166491037958951248562008188411957774849619030948230269136979474663437976763136964746985753034821871640376729233676922674239569511393077754584016044292849549323440883805508881079154896399973756575636605823254863120476824230966833194662629789562493330227503360861359080633542102941288944098662471612284704365735200381191474310681776043787936501197122414885422980660704183557204458927479722166605626028508683567464513880978139351827488764043896135581025812869110750818110297453562028789066332896030314632850359895709820501945487913348592530017234681195382988340625823463442437391150751068222858238494668953133636753288435300056494052320786944431670681950569722274079657875524920301033862668127720889860551204170932907364378334525098630388333536074184127999227265119562899496956464367604592261520924603629718316209315373520140891719231831177241373889858726432093007149513719483880142367076843593419262813958482255910267439744620542632421640345345522386595660341992944627754081271096952102953126233465974131551884996367864462364577004196839675426380868638496956703011465018454802216510919482953313365464429960309357714127389463594466848198802612787531865840571954611314148162116987367992127137436287940543576581369950662974413613138538043066536151790092445755518549222563110920724812619038395279544963845309550072494899681891994853110656765916275553375060674081116011038824682821020203652753599819555675614704770811242516623638797121397592625233168140617081088386445640359105422776025891680263262285215583392933226058539524116157115281674531080792584431229789420642581042636049837571176651359363266300163534765722444628428860099037090374739307715378616930388794938607417540190705353113367843667739369198987193971817469896010264294919722047899653118427907566313502649377854202743311852314006831482706782814785032290607680742449203676333076464385903197522878418220683586325958831465628526121112912154198582435722725520454858913685228902995233341787209842002892780827093589003628941024070890953008579277707408110444462887685397371258382120209775584205156484039183083992044104879278774097965218553651689571286093192719108707099067134034068912135415205436895726199451183771235311805672164796737615900327715068483139977537029056416668337689797406778329635132855273620528120000119419807147583853317024359450883459016972836420761852521305074513378801345728084798926468002699517745827059127247908234389460530343126363995723904253747011597337733254266811308873497527319509362561477443358690347010215112132998321714953232088018708611902378927590872325211328642652733995384655372353419786788280244697240375395943672386867083377478617726611988654750618414065115948934690521616578745169109082811112059229688225527815483938480776059954220217447696724480789274580106515759288461478728185970598181700134791725833961988247442576155316058477657842240890084392873525784486198128254359569340443080358788828628991400230351616790365403931325691371506864927974636296969422842552769436020125855775504242209500538934779888918175572919532398228692336443063359842412032793222842809310535094669747921972674692875597698794832849273640839219470672948511555486053692399236896848959113943395967086976009351243225248825688009450529864054153321655839731232170654334811833745432878298486122258448132254540349200844933102681721419060547133647983687968526386346840012937793881677497215658298905400153406008943156397784546281281273604398585314298073111605754214131142169173250006465657560830762064460933345918062421339988373202809768358065487001152576165680465142795661107000573650734297143949167325870889448482350830251018695229772439094973551400390585519420130155912430557798690127477682174686956409795823505905796151463464380017976532011869315614347858977426541241246964316036914229502467680493276644366294355796305589454724780016355712536709428847791885406016416387614424661917819776958436733686340716913565557105291631615787993029245556972685084208081760321646922299251165821836770913570650924789143316716185044118187296595261331495213080769490718864406460873793157253305562419874425658845775241572237206017031016261200717840511246086241842523437765682170487364600855336989667574564124771886185576477318302533404444432336831629763095109378254207470394423482735586279719957850765798644545320799555164707026556762230409838344110517390150680465736867156346570847094685656531575290355239198506127615516149233216783205052398888006727644780022365259941445225591557204325026727550231368833754628161804241108442376018130057437058420324573977305511244961897161789739561032260352650502116394286776380132547862903481171384830093502027375063039632840828097964437603158068446118846777814543071833544686528384747012760952444487103855842053208806546417369154017582227857705561765282209617783079967025904304526701634065538196690960466647447115546607184388779168475585533677217267927099815094367757795696145812198416406818152333643170754465530337551131311642770658004300555081691327154601051851661415956087389632584502260075884023159458295816176412900467169341937270891940475255570906361164451799733770883825883080103417026822245386325883913729955164688336697320973591858319038728948801102070399090371050625352101924712340085834249555136524891302524591216144579876173832107301958660436122733586758232255730743896242190934094957258898598613028388926394491817334700185969470442295700373592628788631698550808847879099437054898532648452676372697165650317437948166053490162235291055063257711308668862910231402404040872981970969059990052353326951194209082751559539683579579360118305376872632748788512986098165894554356664419382043007237475400031976455100054292577632604479465678627501167535761217329313096223172058251810410490434336362610211906043339192985164051095172660893189559920956625327851561759307892740929727696050462979176350967365301604222291844721751896996016392870424491842847546232352846737778259889627230447767327885034749503513432652192480912298692724280530377571649647332427620729212622539259541554196622373143229298281812260220050917649525134070435526981701361691413191121478231865321617079571501136054793702847557271166489527585308724896544801019403326956243486214903328619130217559125813965179887326827148833817857020100918098842210960278783694969980357519525597410606390656753520620351059787385711088112782589806347244166809493657037037615440123169032966890308139353982298394664109010601859103081010387165775408698953875841250741847964815405556184852598212859532237421934442995845597163295476414956968594226424142151722487725345885036051610184957586285700875893505519679500350868211962520829806359562304451890557272981137893866376298933523730959674836107302001793217260441383782897879588345175004906920733993529407272925660957674677841771742422321040388395438631202600187121128445578081120670957574369770656050651959873376295475508966642432813178373788022653617058530119860831857116184875468211378492688156525873679102316908239290005075266997617596455244972647493814156692276862014757119565687673286238994996567468675916747331416265927081850673701824825185235635191468550788810650149425584367804915995926569502648408920755594545155241312961836385369598471831447107826203389475815551740582969793420257339038924137718030015304670525443779298304029976483089705130984850716343845253329792596163710020965814599896572287107285020198342365082697313391552844237506453193889385781803914740465325926158052777074803902931991645167651462395080216875678189687253083626277965626881110823058485700371444243005135246186594221989554841571064464536225335211972627182750307160475429291214817399274351158550819837190041872659800309660405414979526819925513361097301307759390381711709722028466626339989568014055008292923376919007757555934129472246608721342244387596421146986398794698080353818788049648848980360259723412824647164242106265671585776327845640819791592258681640570010328420047979401362388832329155051975206303944886681535404076645700593109841311513681643714935346070184703204849900359632830816562888628652929504420167480157385232943971619673800006212084401258851876553123201415060268369075283428613796576441442356916474178658766267292606127548926790784375679142838968554333881755189872817579667300010990039311193060600975821040833514082467458200412568408910906517137382906774640396798132318477225901791656608043077225795846316499186830313705906716305970394085088699151660238911891218740918954131917184766297014025670112499427323454242782434131685641703457624139111416290317460726520481428668316610403920984914080111357590140772801280614443329390599918964466798556794931544869024019226917035598218197149759434364875832288040759732106052790936615656655768065057972098983492193386850381790268695698441839619102345004212632510573048597348292981489783696448951373527770881727126109263255721581622859967833970728007981773662913512271990455532095040027747335583325271422643222512974621336708049792977065734610162009443034008170947290978213348047764804136838082110695784889333286069243890788915207688956626298911597029359038475493774449709319308318295732257996898431844719127060465383414642350079728635633027035349486070257825945889685563254785765844200045266888781426165159262743194606621597841620380338690683767842620510064826088706887118436600178852913442582901844916330170814432543396706451567778203889529231235287415643661206952273982834870954565120249046476642433360541556850264773423904007078923481367413352399111300179793376313863108484728141104916584338540496196782247567241539528596406050592299733867961768788867519970088977831618084460136663712189994773190755378239344288646277253603888827327295396509351180507366289589142459325973755332241695919219979522272196902899378514554378458935465485115209108909010387524789074115845589921546885367445966357227179407494232244726297951973338982768717746949675426533277126444143655075906937723521037538216018861632871380735366558330329477383721903478041936382603825930468679748253393083988650758141313197217088041130376643010356979496794651348436338986501159513932827200486479203298194592244311855063564952370568498148330986327329363100348035069765975581885798125802617646954622648219267894909627044370364819151145255028845920587401379853505889786407136238396952978561440150944249210761024989290397174350844745545846537559229122227918578412644216103381749092385976664797215125887035917789293181175738675099377713666217114919879416805745028307465994775057442233571236550567471274037971854402138342470260748965935391801263303349898894777118459227268604697667865630993644419191035375907208679959867795647430318551022477230488546708218673210991750242192902291514332085439712028610496165238679946676959035293431795951268621585058184769259266285904062645016744263040344267945152980465504264852585836325587214589851686296611251217918138226903339769939298406390931771558069217241142610659966641857527023154332306724203443950895778313700390931052596448249526643889964240601472229441970571382265632941773527796085726022880425952285568864094358570526972400250802795430631969606907930898615433313018449526119129821745101620448081403105877626268546262241893106266228513145612379235873851492308533594137380806191304559804515901407444704144372410182563312810850816816724890702435642255137026622239134886629063434193420573214271598497630481571956147893857419472952221589783455996404847545193636453170396454316936998052182829558612402566197865837392042898216293884103445413510793140163807972999433330470705931177595095125775680153712069721981427569401711735309198151607761832733092833042010185380934815615639107464929513252834216987321311977893804196247961708908922177441962903578704863521993433791638014757580659311205484138624660653170376216392589370078230794657545563393711500761966831171296424491869869367323609990233095482332669017089219330075258019124608921516357232385527626576527581645152208015479684826522906435496301746486210490199137621058472030196379528149999925191063687957995488472960217115214763581364877249094274871204324390695239840412093478991925283935021166898217338930150266533466918791681347311366210249400248375044985037311205699857372655188027248894077256655975478781595409586846343379672569408685882074342048306459443063739911363974273873776290200154272497124566433381309699401843889093272102626482951338691535384355345181249855440871308107324060049949752434501780173194473973310422163414173630962080820375789202418794154570312719680053991823021976989768350208403890610684801186719534826377861387114258770487681018332246707209775925950763393841114912748906966936391942536100091633778258389686541173952553814678583660296172704263053947197826354030860072042039126753537250947885421816421989907974930122261830397898418915523874099544825177642247696258942162986633125105114006223304224901691235315609780542176116862430269757223926943952610253164792342870328447678260826157637228931279613463993255310292497395465235204552044622064389133372588731854328489752824270672451913763134671798896534892121315266132322775641019137368913370421866909616503701107380688285264767577604053380183633198367454657253569508134719934653818854194464994673113715159458784027000105201386457425848589192768822567618456915353550317899677877133205749685441862403660126231818694964241648820977879007188656690975715042935567332181221548713343593134793093341986361761657323716831202546365118180302779604412374020843723264826535806030877798815920466479429166210920017392848242367395996016517612624784731149060055672891751999491198953068530483265770685566357911276104521610564408776375964788439201959747731713432461555146495181706478832147059733791583873847140703667775696079430805041683891043511704242797446706853340752546418755054609764594098062930186800617465888424746423213046938018541324117351080248496636144799042195419814826648996183360972545442214548955852816258065146312568261110907489863069183037508304077155624581162557783089367240449042146696649252219214636330609587966094962850293426269497495434592395129463716654667869081749052352382559862136118924595071201527112566733633181403704774349363590512631607388430021246077796863871743223793268885194681075677299058331428852583349158504246116345285605120037843949074033507459031067605076561056992811079369945358281411914098560733283241803951080421136654000791166420742639119447787402166055948051012754573185539493212330061311343758805244263486463474765152510233644332444599314597746411831311201437407271189343968781636593938752596725399148577575414227080146576755792878102446647708473833279640542695691656443090485781682972365894963986223135212291416277016267407643244228944057904276954558370917936078383663712058187925588846458795636440371771472343622844301295778397643598902603010553560874384442089707884262971250101580709430741418226248258550709213797109134770255084562916603416181906300996804786384734028782345643273766200613251314896101959985669949648390557880282029900131515724738388369951137713163124191055798237976951716236293267514447967252657726907504623769702321826109410646329646663298552285633395613815131936504557049058045779969484867563009878313705671737230903826048752212579020079684362792458014960416090001684032138930557457934258490763524953771362148690779459352285163877512803682971449364822114607749394003633044330816986918392206938295594946855925114814823629467034206789350408707758887722593800869602968876346871261217862618892884556329116962222770616803217971078994444361753970158748441981294674040948279102082903898003230065996909972137968884397869373003177812671153201284514792927204876669708169060486700546551002309401552839311431576581412850559592809873685910928327461612421687905450757145833575420212594422284667593754039202834396945750832439270931248679367225821939561631915331468816207747347554657721390126485383201395375352106641084295251266165678497042671282189965759443736077038875855517237397237505549537458494874991929939247501655279194533508993975022630721425759155255004612643527988858653763027888503221149137434960628654465664695908888168930721146471720800931771773928927319320509902176218079045851709318330369414337505771529243432881717066364548025432504461397622716454481476108267369952732591684766677399178722990591715241245683322786274267853317804669238393739825929394015709724313268467031888048978020231207143323217263505272890804091785111603100609656878184265371359875800929664130319346279343334117685509933192341031717132505650912267207596173938427517127029818993827205221277543517718699443439422178365353778704834592226368212722942830647904774853035123913696106594503359285715891658471277124464576687864496962380128295738048379659108091527244760271929293474300800975380532847248608457334404882957772437152016291400297774804228900248062577791930938638868277544011891986223756370985082844764509731455179454621973512379838655217200865655138001900919063782858580861300226955480548488600413222946189117746719778579199032982476256246583498698254410065084379384956313433875455207009569449785179478171589994496177464106753376468214206139115741946246636053173751026193742748997683860614055235174594406463659469295550686893875527336811215820540975780376255925800467140535190995870489291623777894024994063168061729067373914743644877990832457058843917156579728275997045983377554670586455003293028722001705979613571372449522227339017137879384798415439116824252365303267983402578604861374538686906841892618279300324451604134137300237041242202654020722518155420648959998671964563652314251941234545557605064641780405445075106188764689366001353025014818394861070523874988832934807107033438363395725395687702939395288904440901972816973551778262690624436478357907091658536894602982409286821191634818771993480232492970400418097284035278692993294937876052260370003735184848952324751113210550810642257954368328470223581908255306826027306871071317079883253030975730980928020637960054335373665171283143887577942759864240403291249266164336004083840417712045486029126018250764987934076722143509729998966411245710990317457728948523034418738578811520446530924539696467104131675979548173155510239407567556544907209930459119305152337147677223409040205234470230236218643398299976446102798451333163212832317355059421179203946866789913374567600302201480458828897603339803010281699397101276904427132622206402149497019797789083713856540525275475073254706117729392890728682704489447257920137539253284318176061332333287726618101270446538353409652128201443556534696004512193322087390911670740086559769304511110470409028939681830348081107542201740850978430622560034189924422261915684027098645777038665839424986173603669422795625505188206143526568238870559399768105542226170122625810461951870508387199247137424351217402492487996126313237222493732672380608067084960602693184851758804357918959601649693139460395636557011762774581660507017945450591342668519523500893084932431226525097848491635830065880925168452162910933715982468467871794314857728827635811612804755528668878138164698322290689913404769135448969399637764700309448607803182778012210151958838517748218718418234283883367891605411506740022425729799380485852245044322138227968654592535580011192102632718953768194106944080050148605989279036155418477511938710424403309246796836772113105699652228400959234036196734206153305113297853170185418460491991182365410386975106166745794382260097431120670300417266966094535118162453750684509075748571840887987191657998398683518525306223929141934356401719330325484583067241324054746615469283328447837123919262523354541561153248835923028418081417990172203820131744759671902538562969918421925202847685715531387806485974767776020547964110136179494996303220582374124649476989530021937724874849838165290928527018134733478261627330552519205191351378880229182038087559475611814829156176880946052303391922458954495844805316891081925767946878917980025566563497671520755553976799354271987383450630427420031345109340284885538063673487847700787630495856517184590338371437681700741140023275994871530495092935813654666189787202466236606527971155419705888479535778903822004094829341986045749695182526489300694563031693482995508208405488514805599864295979868339495872538463116490268758776330589014988770822521990019809420309242787286135309785772464694865178307262004047638148600775305095697295852291134579470419755763131726198726845907089307256862123369972351457761451478989400768509854583227880998637346084752734142494075556172745993620624102375887948615160903605968788789801360353931335093514325067371518962249430809188292247985850342534026984694553308194144668351863393953334760659157378833485934507744382644999583644141614604976276926846720051724758130617619090667677851635894388159065297764937179931775287959385278792303104849344628077405272693941590710468387345307647521414315244233757513482531632729165756721931168624595827676412874434630414813604878203652470198798505707333298288225458796372715692848077180042676667103794391997687246287902755965195778881161648936057347222604876666471353854508281362760142314729364451432627196504264013918268102123327071436808401953226144122506610924540162446654817545944257568886456681648939471726531077629736630749601340079649185869078169257139273859324755652606905201424737046608430515813424707485468401792917498103024735474200103878961037882783276358507074743285472482691735683202317144612164180783146621759547278325932544031158307444193858884533768219701747669573307522830712624079589110323415938465290275944549141562801692714519044333501781349438812828279586808514191190030975508437279431072925709890216002118682622299060846937874677644898609866763158717124295847418200437130253034111130411778851078382333749579423293065496975300610394380320797037591055063120818546866894603482295850321186533266664455716578242733771892611070027485560569671076785870361891176466626559802828974487595572531797425085380301426946667656308647526647115942862202511044546052085104473055606055876205942121750484344788002055979407723498234723306230435729619892787664903735675023376308243429715314225015001537327570911754774870177817915962624679807767880322521487701777593234398404979709926309218775587082560792251186690649273545483554386996516575819931523517619273474612001947774010159465707742173000267694231567798694889859455083110158931403408914643415633370935406440786518527871981459421032844531596440966368489664260908390038237079658411676385298105888349030541369048989149702948141170529650159028976235303867001184564650068981824992636962515206834516661043701513841485979953708954505215774341217812070002189311067907162356745312988832919907137661334199522464513500676017486911114932608676527953484651763605712597027315237060735523275586127403692141093910810223906707173110195626284967821843948513972844811849581936385011372257700291979717424275194875298679797406065361164799639428809310199406518216458249429096011734593789445445185232396809983736471337036860632274645954941844351000128753403237699256772333965453241684714963638687758724835241354973138931206173918973173427880518326148022237210733581331560051372775121333038101375042228884083537022970648698899215109760379749626646834488575607117271486350969959040133818909867245686364701892670225776886591214968436551984161057083325314311945987543970703547576386927533304770948413329149614598842260064438613993046130294979015101796794578791432782058847473027206841116636676725167327513859217351857868141377735888979790617925899157481701996077215669349847598923504757338676209126961120305835273825429199561784127033663715050661249216419474950193709881194957255921007672723613259691467228442068739018385711947046423141825382898933771655455257997355684319958665261459766355974436536734205532877666615578636448238188869591073878003053400850241911972459506398636924221388797541382080940804765083174809619469629206314378023734644774743347607246877799332478444347553084301037181856472114168890013291599762168131620532108074932118866160274801848076537262260781259508177693974171273862576657800813322520718134898696038864687270196221041483679433597028692531056836699907294390995058011821221268345527809312077042097577156421902263597016765438823381504019064940840688558954889662332062091864006774874040590541206630306039196856619372152696301621243036998039489652924905870915227281015753872268846907028699934000490280074363555233938355044832898489988629158716413167155482588663402429471877171075451027640021420785023653962407372626000118093604608001308474874855654204185186985882057538214978897106808047590623986748890858153801458657880737212224692313263668648956794574180727012642444131380529993798722287154407757955346968744975431041259877373649307831535130153504635406682704260479652696575090987323840510603722810782672028197250550831132758378799773134074980729556700303749355646431630867225733366831244220872688357945598338810280207289390607804034716317339392972674985940071814975910507068555726199010004803646092397979428359492489659027056734937586623905987769886549315807480419792999442037359200800627111598640554388255855780637945897790112240269335805157775625584397178808034217807318824486601774218837781550075364130096567309328585230917106245432989189083337145137497250322803549619054542266596357524326845727938471843624582956652005923744468893564528901336232024587046776641604041409988919742744551122023591965815998771660132202700392742038536446458921099426207834885367436100449556005226327281526414719756361668568045082241831752730468634481029797580593330197995937218592851131901785814609315385258879399122624985541071091940177820628928343402880268353670706282177169279247497381488924687331157753279428584092947337078894745878740425820147150260100189314776707289125453195488265580406685662800858683716145867725717977500656336504393637379552200952592874921010211789922872969819559350655795800398808243609466511263509409118204796112726569815693641613464032704040681643667073196935930728746413109977984834892187285143394610562051761807749034586256025974445716970171569748188802372357553520140336571495332029550251705983071699845093231890380116215818626967344160746817236301364085691734383964263493893024232135255340501740065299217091645616207801968781688910433264834947477087056434200211484222026461776935964573741903494618824586169942139194415174151695222430070149059130452292629715070429073058643491337517273511916650930682196782163308804382423018155359284178604422333033658288080398117138206267655891540436456341907146193623371804528154566184426690228413163920766889205399294076796280456422826580039252306640519153431689437528733297293359303408779749215802384225125617474303957793905710937516265846863587522831117230144654000590042086258225372157972945899056257434712961651824512049530997839551286251105789862816978870634439235776082721748993514136020882544600363728320357340155218928964302288831462718890593953104206033526251392192433853778023568301750137675648030277443369733457893064933414702895814309462976470528068648934016798578410591294449865867586036479734579429926462071193082561299697175018778532743868649051475766532129026341271979715460042756992511775103182768298416439010636441244585254442478004542932637448619884450275363620343629247580299083156553000543177544606105690871513349671897987291101051533026802058906148534970838964184213283976059858406186645266066859242046519532959153643192677218915874683628106051023900135151441112723346058431684247756251284355882054083645557298753827633888691249759983327254553587801398156223509799471029791713118225894319188937922934630139455220111211338819541029664897954739758414901485052729889576739638599817366142341332361226084629770649650254779972970599758669601065252133000428744981300836130428340301641085392306924026122740876132995040538555168923162698851092035895106683379548133863010322778988099103428611165860977087861778235595861506657104966556971348416829888714378695092932690541779289982553454900866190336977421315964001005908018378865405712406191847544669574825036796557074159269687992249055386771876784203663449607502439670468464021718093566115010872869435479788451756183006091455118681331587421099917578501947173060429445944955243395149290440682687567407628690571524935686264432497476728457410508525336937178858424467489057986498506061830808533037086884309721289159651757413675856294357578471772280495605503469050778583330946477635405252572960880239065863656152636475699631113326046468667275425937464674826360139568372761531758976807773416560442925921140736420696708566728105757239445281337901557743334696423331737708165581622489744055585079394029331238787658887746183696975077629867055640680741124114262950788670116004059473193394025027805363395703369487328033418290806701592175919517015576906630427869815201268940264888187152540984698930652769226933782754805313225712960943747797925855140510086240846680485034533682198574178731302081978559357413530582925627858677756692054129594034453355662427028541787734675665512680228016122043769017201903390204770479796535841833720690507149478940571833314356372854562520954710240255440533642753647588800904721165492182725661692397909199103133535961199211335306825788158562510979281068330190993041634133952824454687039234746458835293283365662625013146323219210473663807134817044037721283233293455237555883947321465155627546244424596141400484974623276138904952686020472124101966524409802741653337419363841391503908594341512181022633521748045952024680819930448143288071195484519844504467749371121969278188776100582971678945154305008597522685490852661731528973246509833425656894272129449949169787084384437038315915011129888162672642390914927913851780178830710048969049327728785123446257053458484126993403732840310173582664243823020396195031468793820245356241029318618331277735292662772004279939524756988152490960966660513063962300314231628448061709324383976501748922203087856246475371536171030588720515259638763291751941949472780976275560701439935161661313506009668598718728203137362672149200996209051869428063726384084673036986717467262174653264313003798174663465136223776518639541415522291854569216549406892545161455953436503340846573216507102092162032014983301775324803785269365309119974820101554346038386437536785073574525163946716894128371812539583323434737403799230727072783386427058911704455093782264408741132328691656221190881210533907565119129742746510608856798528560873713528763946420686266863024223717343629742753700834661360653741932006083234436390199652534836133529400617774178622232399964198329862939323446646178364041720353185818402358866885402941106568441010882995558636312676042925843751875761342339760202818026647823153577538253959367897716782480995834110338497495905459652362897337044735886397372216118610017283173634532190191465118710325401586840259962022050353786654914197188983669623768003669866611330767843977111328254505638202759039968510305007379604189481497610437399463822018591640598331030292040737899253263110227351151032614845626311014495360145438760229829499883915562227702530523701581437027055755140204431272148551127476822356582424655091095522213526764112547004324039369261158995450620975976648774026061555103170817767932570798114497770191694830938619979070389536375001699368695836591031846655303126486412114693413547079690886095173904068187956239373263420196457741743387104253957360977276337354677122023715892597652279134264848440606869892359589646424701287731607620504998298335811258478495724714348044128846764527154853068515309536856756830541631495667457778886972542387204741336223998033200771180585499874086254072233119853339365452681068808072413083954136241039900771832781096934042521326146802135802229297748375091644555424077776192608179432176685998401893362336054025027097613007487862989049388796015375871768055805812871087501610401900353708844802411168953123956664017088275061948614315802844028044859606962743463123229600713457115513407582841274607482373888172399489354532266688433377325231231277031416729070870633418133102685349988752676643367428848541389801259938085353367064806442545399752718981400831748419046021065503253269946159471069247487820178746016041667818417009762515383833186130960004550256293477869466449819820164275538528436994065852335029068756342613196655853918217354960596284670430574431009335589902301046264627334301732119903535061384344440126004868111268876076855927927769734216416106141556975184812275190958002645193097259388144672316441180561128103838522615729865750542376618556390413017096429127041915807768712316930905414850272281270993186649451215513563832331789620666877149683543702607191956332314548197884879798861237749445536834820240974674144820790416813799707478526036604539276846985580971876227150378962958453566629868717034837393071396560801498817471180241447792661557340813039142618998149015890925511333488515005293990168371037239923310060119817271427134923572223195379432210258936124843226692533715504087682119404014721524574093458583155427509676368330518557147456015245671147550797302807043854840357774067573212615311551017697484782071575424234136000106161557275782830080077218978719416808033586810485285100190846074614481975763454361994125366326373587583133631665507386526918820890243190466447191548850166216495657312600270021599088982078906829019468258214018153669627364302697102059009759798073137234856386663751405667361615453479877997921071916106290014254052956571346716457035176757763539918784661180627423182511458527917549420258191927246578406801809964504176434298705252203127667671654337211219001099483164111161851402798903464561695478132701940996068859557408742687692064927755038227498108613337699270564120512186463053337241514066010157588692037101310843727444854043053903495773556495057400684656320582140969895882650327344908909678037779630667409835211514205804435250796472190314301600728422399521820078774339751953683507536013392638948258524271055213717273478656990502921954425684831680718867550464972139510532016506069439533455129121443965040909404995445340218266544248858235776325038985618908762677235584555413400638186637994395325612323450460139191617422308204321079956797795554589194922835615988904464177872860929293685899440260502627053701288227746615492296245756057793222500899942743199499762422427035090418351419821765303019586724893864957395297085908444195301750799609030718501304467111173637323653270707988768898525470803505207129378443395304301662185571290157362411081534594451604357197138492754126258858079635022645414440312446521783636060539060785245232269550066715484999352084886218936721147467721204554008454960095032591296733455535967417123807236564949652637796272496015978583951705006299140617991519654963983139438008788292517877439645416160941594763792058369342008004038509194051398305692619888534281403515757862168657173135509734931540226923517523861076212401473969927234146352772708484376819499418797657523668574542973644461312632515902334781132961547327213179819375282197449513461596280331984663615852604382084287092965550644244107064352591430585364530404545287739072106387840840124196181502596910639360591584595472667461307013153354913673990002392251456952576621603406070841221683151900636290517903096190603687559289073567410495671695219405825727262391987686054888343030958139925851784017878141928091471778108499696474791262336028300730150243002364580173630323902471228058391222328634693901074496604666251521792818869549365689098621595828280380474274304889038163848208375597614542990640305090883021932993966080932647665535171178772912868559000000057544984638184321210504722113706223985165336052906540069793715172473837858226234352385537203534611916966691274606687078452893974811299655558036055670341426164859587103823655268973505329260139844198113710232229529871808090770333060798987112656435401983109496185684371920185971817190827084535763577826672634245127661169526535827544112372798798553472629478310462580272081054643111143952279272540374322639949132742117451069732087636996240727162590074776644829455082636863488962956588490675813488961100208841007452678739239956987137464578644935970110073580081771025190853552209284077271520101983365535552651221126897491463283000232042376220389388918606903056896657641145803511998291027109168314245294804130123415167130232614915458506033348609015814133970103419319655020649007547977640114072903531113044925683875741544401706814476131898488805367947763443688571874546934173846689039687775946494552031483805122472045299822637622850072483722948648058827936421969284985216093223328447369824130574533156758137287072552825978597175737898002836071709260711589194555797720482370700414915162141905324911278919385696291443080673128204559521766572281720098087222063873201200799776660124503236284010747797440817440801729239759281378058587164456290781651765296601622092367629082343162779040072858647894843977417665269975558651884581232716649234327056941048543701936152045468145172632100372219932947021829780939729662622441992308392579028353184632729475524047512705119981825052294758997067315197008370978982935187204266062177358465023299921064581805871107231664848725832084560456611835416382547987963932135278547042713929402361815700272719988690388108004039997567326678511506635386892446862080010612148816798202287972469259567458624608025942786506723106135168009137449833537570229957685914665206849058771838044919556999311443913135239736315616608491062381301514791621436690156805621714282291462722111232618607980444292319025023655672532816559355838994284311388167497660135465431272236877995316059924701870455371689063844535998257417974889911599032874520728669741887997213145175346974159744205996712958794736472145614104420913665638985747184279812601732540178425699826003236358305748305633837860222704863385425585746083553360257261491779830185596273302684111783477544707066839418036536830302303345527366961407647157512315613379013883235335831367319983409682243094500633776357964832026026412011417290602801622944366635300092066827271339607080991879944296745238342074420956896890897488404809276741674035867586344740727403099508325189945238604174134552951748765688724641291912293868961977902555987996290111158637763495208138568669572794808859727561836080303509096099267868411641477745726684045198363494772696410690177561161789239219056830347502447629186508424765880806342539881696542060146146427679507856881494742389979853574060861610316608236316708665680314351152027682714271231314950900588419043977473588928603413931821000404988567573898899511032869323358550505823131320746192724539103396864107425519974629828213521724978089770927654584472433090296419976752651232081149881083574591831255154497148481150581146920437357790625483344397687224842413625407667281349835901230309144587166040708855513809708976987883408675733540371130794544443045821723784044167077721935238991305343401420287162741185458313830612273704686792745456197957650739379474107732664485805112512806904617218856565316724152152943821379477973396049484025252442163894857977664324809859796539128821946621580111567030220906403698250998299608358651335462925716695157229219315687613212612122588673893271833573574127270357074983445118452589648400763640211434726787605188266030773099826641333262208716899832097446271410401247305566845846773284456785195778208239526355270309708691984577309709032288254949592264346662067013295266158757472820340597328686341192116067565247176164710914479996516109508949646561001059444114210666213402483289045066313429877543036057299448035903803620447275379586349388160400042285377982485868981585710607345603666828468705209066648317945740497009129616979803402567715545409859693337055897945093420990085999912337455051495269878640306140679796123781071717202537570218514187287867673793374962773035141621932790448524581582266684301915615321614260469934014087419694424610049503752902323685025924403024866741760202054110457705207033778687540046697349324238911304358223289777266444859935482813691027409587867120356577060617281709007601686030410855157493015499373072862537448783682397557506106592604936620246134106045931432011270196074503679504652313236808352109896077218585806144892192095551094217389665126793583484337456720421680948036420590278526961715779829748519325239776706433246138242789738924506891398719169423917369991227472495596560293363392178300918347667076474493577792574858216789948939355483807497295688273864970827114297304745457200057085107568602937930812995249385005104082126052497284660644555959637599795249121560432706616305351553866241921100815124373368294719429938713220936060725258288604419897064453312364762577568314368492677328967020879128674456882910285101698255867491010273184974403929803978650143118283348022654956594360328798790486294175105572230329146866351373844463901866670575849154163416149014275716629064965474105882932391040078290223216072696262341859225899803736791807762533000174406505346018849534846513380397219881548285337531438358549501642178627905211368580636615284123577549111337168093555035337775087002396034533373586456880878239311216183394741963768236111279499232534856745477489849832295617335163257229556262990079045923615595372654441949455708109672754454188483385908518882388461471734706858870418506639766819546689798348205802069591870868208995047795281168334831248494817914045176900800159855331232464664952645213099448309815849364065224329903243961980970770626291290724153691948780504681059415523371515567978535328759601279057952395165215160465684281989033610260744559939106667057301420354027345805452385640360001516494765958778204681892516753934450623301723726836524122658396324653781412069976995203649591458155012369638995871802457322846656106407336716539537716746470530369142303499010507232769643763658158799085168320207182967990611468004855449235502065574927754892157694516844613779056401843646040430522761511705413873723169008871766239462195867987393413256836373076604045706191356186675917759725565247505090880746115348005408213657635272999228954550298963726945907051318597649346938289908362437120992454478052591172921160436478281665490242497595293453657051071128783429382892393617187726739972770876161176916094570733084839316698572168939124688679037914751455628513760743589030478855596496453688571504815984734385575813944807714351531696466215310237028333497749978939319929040282481405119012713407602984995895099734193435283666097978111385374229950616002986504536510835658698232798960966838351741008031072552623694273452923377217128789559492165634652121650078076130469888357818574544517880130595514235549854389398930196898236607019785225335546360967711842847616040999879182492399953607145147641498648285565415951955244423406381253261652121287946878923700414758734171443488325874837706067354521743561710037673276471335838867825487403299560876946786290175867979579376670125754560174249457538775566703138249799514499015133362598942609317029313465958781888832617616201335970430395092541895918329688142452219083749451031402811880550612509228437600162010816651461850764531127915092505128789687032229053935777887600790359189635843097594560290187407972960030423358864986631828938752510416261725652658572104512959656593553441618499608615961343881291787089612801767267468586484273457177518215750937754880167413672751259904867350492973151064865316327140033520663629765885682583865463872641276897008761617823189258415738544576287688009387076466480767871935492938362419430945626874925247865428618451822313354735904564134510709448650969208261965420082064416610458680596753652382597902089668413478341562967610459056220377119102204364414168599587708875579699782440525023355383207086003168629400831492181812327197890292741480793806724752694628222237291460451301162662784709874255117916037160564463574018889944050315307725313153410886828276833895205912335441404042581621961096969783268454881493205111161572997166561163913494469370547054392364917343141942921963722596923345201070614562612170016374107230911140361128254899273290796314975661404196783935349984395093091925331514528178023314959631026931356784357332513089524967901641694318800849164000741265562607814522661514715482714773953547972162565532756793996619945147633712108009171628827152324377898088786639927921888304033493630256495182297337800319305601836410275734863175027708696059309417281545119395134251923073654455310278284906358691269555664522968081853416781163286718731094557288864138712946858270277768078115880052837572987292303902882903447584458072152371183978007894515575386306672970030103259941396003125628147686769357830498793006010561821629334527566558591904525112125351076014129164752917409352644268737999210104945198510737303299912288537284644708480307447790697765564593628205834850947601839040675799275336419873964113853276353560061936506358591853661865639870485819845746111653008166168196404137778621601827930008558260153957247513289258152918935815237678275958185116371294499619761112292014215541951122343578460520695734834632818350499257295377144297681346868181096752836246678493053721628362909324231426648918988062261298339660297942203319287466402335185829449216616180396287198760512082796782951184450684260995358964130720673527455506673097098274660261686331170197199327454340436441378167997528841402262250375729816773286258952993109813030132410354395895769644950486107282057345107139112234514209183629546996225985390754823367343471719599556562931757055440860705937289370854540641420269151723931878842337771596891137922683298310640239335258378302253172134951461042319806856009939095237701621099360719096644440906211715463844753479835860359814180450318862975172215821181491193537052008292456081024378956354336300776161237826960445028570126556547619260585241423617921180917123928037115135696369160038384861909000669136778558431869405250735713606978101379918288281665890344194453164974576091334529687559809091898047824686943600784722965019709324187587702590405797325588203112804103310514559814580148689455146151078583208259557893878900779860160956118503694822080946522328068467571780290419614116729096267900835780540958211487889337367694307766494719764927470573864207164316449629956568241497048925658004401025393812531571704964325256481113061354380117338590509300468710506717133727556151357189912515524876094128628184169973514107194140879833458531516798465570760168321329831655247697517363054445222915075671828691997416172836771665956638253982538337588214989630934909301073121125080787326019243898776806262295305418973404034131675508483296010487036728654343371154875836988812582075116487487303802831578791733525687186792845198147695776537901862731010050972269311510504719216212974548699058464237215394543134830096008043284799408467500567091387738415572958938229948903838351760283217910556239629689533408539371330199405345146601826213886415812730773458907044684454489307879073197541582735034909045791900835483824013204977404920630979727125511144502491685175901822095393455135568648524714078510548710389754470176006234423354092113403586539976743359138589245495373147395806006105684683546000307773854902609590372882172501095816749030426232859935499251096578287120131733313456351373700458949673698594445658837781206751699758868966220525012575288832008790719270957438392319056849207922966550745208926027941674141464996954278727242385511250249374634192861685519653233800121034530873548220474758088100005613548626918624541476445647819598086761873691445419121326495694478324102736293814064447636047678484787726449902619025513326583732940658541957260297051770626001344721099612609042069547080422712667711249054179904475655158706814516555581757876174780068062908515014878410205369237582458414942041996614595178489221950275377975896222181226155500919585944750046333496201279396699851687172137383005425616285697912535682232055485768567638031239583714240765582407543459695606340802335319214159677853795171010825829489751047199941053709196090034543748617329753723073493749375426014742560133398585804145154826237697673260750810237428611048888470290404366469447527711420920615428933550394371820290340451365619984441135433917786584597990708933018170254119870893394786913314257643468673493918735861584391606561769902595994222949232066108286912485483295835863436477723982403030277000893459954387510674375563841526955700392762054733058361321671600269301140473250868776757570490622576435043318035913555799339994070760303973600449779646394972911563122493985136721211951673668893022836444219002900326635499769699747765738466739958124116279696370010903589654664310023136478825253675705972324571653971149543190029289464830963435674770179825899749352652106169483954569821992867680333324334800909592105576370328496789907195672224053566794679172320007797245036842534855905791268154650874022057586326834470206302508410437221853547481258884575486864135799322138093965434039157218352279598653446006367341045264215806123801849904005708344959472624424120393457595011357638763179814027035546897331276140671585730014487932764409906452514607297100195153394583016392118704218327303171894573266298451217134885355946949599165777482273252436369342343170151863075275736462976531224646384798544901094225068889519294414081259946799133468181557355849816805940309750086767591767368656438929160212500992658411428843980768688875392332072057689469187772286956482644749187609572469639230927619387140798518554321594955750603287865123432648230423343035243953614978306237951440723484205986701821571938392953908028664543596907044943058762511886895302556863585377164446042550196702415042732697726830675204500133906902530847981441718090422688680464012093392217335692801944179157760699080596609356770527190518772473882662018950074444217154693950230188984904217312509329752462180388675303167769419355890911160995615742689454587761402643259770967487700515934877102970162192463076562773185917352619681635469269829948233505461709938464058227588484608535242777627266710305826247389979458993927167852166737392882394524696875894816595546338704415356219298209478395722826143117711430438927302386915679875978942508394386184022309746453203798073927681351994567072590967226962026299475389326954183481355483074502024378586211365855814127189846043641576184599819584579179937194150937548141608639740534738323861866102253204399561675082732510349964582913185249944420091484965092396016461716415016000904076973816081016810592351602900494615801338407273932549409970193047900381432030339129013512948418378254259129560074639293739069906632529302864543468854620230511009170380705898959419264243822687584836764438839311134408059440323167536864421578802124869802388706949691100253331537551157418879935711147498301939613731269486483390052334829831549639691077519580324002009774612145440407350590915927553510164943782368803400312852972871358637541544129984477680502103174157984357126599151198298046750066581532250207608527462880035419111549666418178011182209879993843554795143058716576710696433237087406908395026208572522254123180086471430708319422102485701085384176732241202019287296938452403932998928695186319836546369848229179339158856698381438654488373442833922829040912513014456687471388760584616622554129760912427452731094240399573296422719535969042195564869433418252886533904134944640698579698257572415511302565531615706399625421779761370919167750139115617015393434175368948538373262712234755895038974937982210051763121960592582872563898002597291773581299343606075656827542387813544943811408441005277966402191157140567849709661316742317273072511703193614322613234544316083923652843458386038501253086430737580322582372707452367532956586380332428411115392470986653749246186547565360492231360501360767834576411601418398803295075076842724959343728872450698323490534056781043581441994079175074144380464047124738642841172045091097505441000649810860749191273126278605820203933711208168081715061771905853325742703698023366250848008732557551155481002726851291195975549524660436771760860722573298907912325099071890622436833027706419431121494170155460431892309232301470871910329433907618097099416131002329267481250402244728310990271419734982451454283543201442236628450000615295893202673394484502976109381768541684261889286620743543056973270375557404254729042222481651942048498527182265742731091063611032893871595160788089881304795799448743800901595266951104246291916363063782616721885468322011422303059707628085801011762304071187211248038669357085985862039962998552549828045846661123655420101583839715220679478356338216173200540565921561457048166708653314519051520403494093207679559685980557080246488180174021687540171916290273115815870298175277029898099597439578485920550316102024532396399529215099796250866131432687890950064408230028869692749208784057577433684162781183073657295841472451831793541638603569829771518059314282035939847080850907744035046948174958344857729482989326833301043055039931807551699023951900124473654342048656128492726102125719429168979865891233394008664974377468303036299246960173345944528738009842883567499746562445604432738313431837977679322289357965955369432784236939679558847375675351007427955047536700747891808838644973093361868207346346170754362340182403731427305045370534831609599109038949953633050974252347931850564735447664588588345307787805925814453357656938585831597409432851840205575785976710050169246061974547990580356378115875794361499489651459584254631933069900768909963009141973571627902999377340049761769814748183451430329957531267410318712863147624967530644967843500879754525221916471671295228481761807956375705130457094682696644765529359283877988722692486187545421593861182985583604957141321820954574391706548843360823022742645073321469426109599641418743335270105808956793572013149391668087098895215744439843600202756600001650610990178048702856420768750603044184253299800140235404554382275351029863495745588459999622049669724447749276501332670811709689929744837779417027182483726158608244378414100124966425843619360794155558088747071163317183011185907608231563842519491236888340042069894949609469114580048595745721767522286685946798389858927364642756529715219164879888170260271622143074320781134385646715444826896589826636364566625324529076247043456061968519490478996234752308710845490948380777160700081508776505316506297542798917564605568184983830166411111358666553613973481110707375404230230460886648135891296141919889176142596570254667031801005247765280097717713538020355930080251136301121346281575666731163118867600757777293955896799301651977080533409603687797546638978560593461241305178666001621638767571331420600964370222945683291286715459084025889586741513742300357247577501287584930440250785416877144488662449691180760679386646551025875744402331670707844402979467478361810872653870868052122242120887647555633214882436099417785718137079098619389678322692663855746861486956975958866247200688797662390513710429870633193963842968939168099371315154056201781912181226684876574530794429351530501314631371419601773699681649580700438942864573499660066328266516016615386293765760297031650584744674450101619908483025275809643983027552064188010188398505212221480651429598431924365043621024777762506159922721537120252468164108263684999098407465010022421215261895078901737833579817872288659896175825360643998146373370034581617325301258890153132868618532157082687187221685746617340708843279153124069677526615728649523322615976348326313713453156617065942966200957722017996359005005787502205107409970947711406570485942578283156378542442453371235325552799351029436584218205709217855303532647296375304483155898783225917016062392535581505123696467339561867820093599797139600443226203431314217373576087061312639866244100105871200547282322573081945677817985584727286981056271055723578366863741255008170327742953215681903868650774987872370022144907729128441570259933792867449052689617664309614971686464950175851311126185294828147785529608823582439200996027612417818546448160613227360450485687333465497085074985257903819037389004948039630760303065888386290908065809270627854956874400661343170433995295412291898010483125845042527416297780382340225464430996064676077301089940297527504889007652809106319979459337763204045525270643371296808515085983149280060120695185677067058095717495134119804543741273326899175815915601739637970162571408860461669107489254122377027375384668412444778238764687540633786221630653311476801670444978873208928895180062422363071866780644220061785360126530194709912069486564188461106852296792820788129947583472707477028536799549165229066757820114150151195480309549829212550554914941415440221413005926901189216400136741915464933497088090277084455710367974407309709421139881172064501978557718869121400366159414321032332759357477405346543191175524265474809219070198838490524178567843088362595093808761427589273656640286020578495741939391444469906848704354784650127742494565451215577512955390743153773367150924361434368782132007442212290735224439300889509034617759292122417578328155538172613330077997099149431268525190893493289446943747050314341193487968320023913207946767009088784772098209645709282261923441504280996227041651396664014749448236122984142019368653189477334883387331141007399670389746879062372043510629504187476237394064828647766219689437011251495277596141163631154174288559084920619913097225393578533740973817208360211931982749797407858730781404543358789145589491688060058938544975781269816316342230944674672037094214994517005795326074692465938516207652372628359357931464588193445757401717450034537447160235655716257509219460146190534812695566346721155718770204453632329858998221185379230135921903190958094176221124324027760761502044373365884924113816286411911628794331246455373378946989520769035398259090992771678901336970641383456157416694630984453095490968666895240803104195746578343942738049210500303226221415928781563038536593334958140845665674961368095282554761296165500393786127006686248148518191925832058856173460444612697373507480335252920390526405078528271703238735320856779111582089133884828838722729236566199237102835257560727895287514005225441117960563928319968278767858411042573791318707663770696162777884153116357319719930534333206544310852902048253188394833219052005727303945308377513059615563091819374287086442071303447385115548069603744200451310955645160039915846980781994225355287559492863020257176673179877140089660853834584503493808315520116934932805517051764569351877309740424039856842274182646419824763840449801086255365705628294507274201221146052616576777002147040888830302104951877539326341165756214036789959450464282522368174016315720251725145228797401792234619375464594830112444188265596081324795345834922009557563509586012466578500977533666290575502914245019974230839406358899073585283839322477094336443746538400251891855192567094428226603229371095993746909031505498481711162929297098921459125310470633807181103168724419457887532339553825643300506320434889179548984851562020451265522002146157275233773977184360282344137906439419104723649966788568825372865019922864366800379427663598330006435687459237192632211371701303289731228647125976819758872795521749934947541084734369581565398594455632296361402767996364620520689523395017440723482484195360738380146564434697626289892045938302570726587451192704410600511748050582909059968668924615163424819947690421217479062713552882636247328574191238426593027170644922975914641578841477915766939710699351109356060897763009584872958763517068146052993654661527898200814094133770940802689951637471673629212887100542646137506074676559444105796038239408697274108348948113413042620448028392446593711649469793279414915884571325943160758572861133287806152779146353101612099533713978647291936990501036042662766399471016610564665497062322036997328231195096023823627368582570743562344361412486802846955653703980781251476647793330695988778101191199393894775046114747527178764271202926950865850053903586899155721245437527374033658943311819601655884148217025653164625483804876388172984150383482088342902490201928755539324863657697401412196472930265547410766230203667707489966050848489561554056492221065076488847231772512159298329248988793409777193222144864339668785748453514301295237568448487575718108404637744255965098992054239432153414541999462090437652157034142947765493111739799612567426234932295991919717613721540040282391528596700273923782203848332014523458022632461491554178286962715490318880716871610609547453327994098931683272271783668483207853381093193619289110415190001699097313958285136049701196957967461104029905737839158766612382192277063172239880455443993715552448016380240582333094974807408642516830897997876230224597357403333460671981798454015814675686643218859085808996437193180794558768036927751280419017681556215089516338020576773187067122425722012486287266708869025233781679480643251463188036791064287755869891855764150495493945856757948065919021291563625084000679810471334540865882246548669983622022698073597230020635186339644895984531548352118482594971642812347304982447293600792188505453517294651563393168864755480370375200171884168896695069601136464832674091250916996347365047720504682134050424835157044166931434832228239613204299245582035585040634274368718840568781056155520337030473720083022387567923161418347355877284272735732343475119130570076010667595725215927383973596137929295565504192556377737797169348867840772134023754800241089653621874359200070608700734765183898944831653473936222023133278018583797704074453324616202004621381794290213173270276035531113000810253847582887381299528160396896000155214642320275047253478879107692441797549042580084189742357401650347172655551032036508058939346292156391114026953679306639017678167886374597177893373641341031868268216657166356328148043860855136411446591761435481044799627302008901422721395312797373520837812565908300676260498986671987769167722110352202110736903602095494759605232985658960406081776030520214118615196393366482581521091233952057390895107484900571146730896575574787340631128358302482107260384068270420583373603323270761027892562563129399023033754960575383573822069987275032298893978018359310005976927400875332508350069425968269117012064086786030007711850330233553657875758426635608823088679464135937352292794220164759189413698753244240956538966073228019315491754541145233359505794907527268995647884909626928553057799528786423342948224465966598368741471740700473660622837556987635249348961283960522912824677833162692735371095363628625768477539233941366302686267379015188076944736261461934384757629099350874082405494068974116469093339460549495669899677034071900726803191807081975885222549251117614817617681606681692868067691490089451618189324159372525192082779670054045919575636841172431630610022037204839276200115409157331661162261746725447647768298633603570704068590063855769602860734209742207400872311890614487801654576879603635307237637869284328643780817027145363686186400416829080702808049132800212976471174651210666245595861642400129710951500551018012541339994761894531834015866329612658850200759064851476007296002747113569357485841710322992005441657569714892667222272396607828177119066623814209579895913428064572485100639131166025956152684413633584538059623848184891892950456052307911511987619139003174277116179105575549756280139246658681012371680395363582002835312954115459163807319408762076288670996652446778423488668749493713855370944341737513920706130963239728741849521542781339269089635357332531908879413626279648878921387822139376896939856141638321017393187598453790928554373996193393468000410013491619464185251974441834884547016255392695218203749700678336583409635745331756341657890661439824442906015318492415087455005933386693329128509237271696745922573884099545366692245000619651040961768904614732544763150672208099828405715862943714617280692417187858473192183364242558360549911280330151203698891639157801925011386336251362221284889188611870879309922480124048794848672438408880297128867701937608438274902460449381986728808874530998796520424677305715062697334446720582525247317355713948201675002045281790001708947917164997532152851308712546345048138141888727501201611491106131005798208782327380827536963949213505001898796447487216299298109061256812162302824766125249972514709729055480594019118176227947964874654737665124833277081704554004704846305926571585683992375519933196184669811972119300758985249790193522131528346485850600517776921141088221174663890899695826862218192596338043015218299660387507332708870825461104312628233285675347360292844739880185189819919890680665816383819206824774888095708881783180373216399074279978063868817098261007441000839166325594352375460193159299349426611590904691677140413665300895005875751372214473333414976300147245981145797863648234484743217992725721205177279857106475841402252015841011950619119391347467126455275753339782861228458086725514191930395331491628747745258703539682165182124596535678390024224715593646619649002753928221991092440416728617522904945972091424203876137217422377452897024125468341071213907189351671639511474779714967399991077636198043379670659057134113077991952811491403935991096295292372902639399860535736299856873283815535942235256369943551184667850746475151516311758635926557917568962845619722578851980276367099200101222405306402671180802429218754400787897028565707613938019666227337356758672170297660134786619836057467517878852914430465684862884639602142891953284629452649682105122735379176374066375864801783636499904821540641084406281589186800201367930883861019830407503106196249561817896175326117692438732921988097847194521321503324666444035185665921996880152742980794450481157579742898356058951349782030322188131137339290647893735733680088119403168229308787346214171387909914383654351187996001287508540366031454465124694811994228502039039868039918010684127346608480655555037561331973827463140895234154680308536538221610795290925914243458126895737289745416770194533057029830399598835711755065415777775447954658857150961990998617415085218604587098984657119590352368045634551013699076513786096155897261591434393663409185070327453234425491645809669105435029492193374426768071428204074363152188331629606869653285911981174236687441781808663016018507388905846247241171583134483779903929520139490577939571864235656393206551073330887369151301827924548201082885781864247762857099442219037373930504670686601183448805057904941977883863067730561432174928606245218319978135292034229552032619027718838668260573218835396672319600738881659279557925092481236944793933173693575571982118573465627906316625118104200059191288413018108685377681998967344259259799990346928184704351458834822738203745416638789849791646506194128167984882621839509091355200697544068611195938732551462111704026781095197937666652706200910151383818059415285558744476942165492264199070264728730598454605195410700611445282718879083666076300628806396896774482931601524232033408798168798904626038804112388274047786298872208257485229343523391227325036900573885071782090910692452005399991021074229827849561625425939724606459036510729524287198205507118380890610619382178147529531100195561710547983711949793314484828474242057954537638506508723021210279493790236731114392694812863857847544301012113613700652459386944026678247813274997944868798409990397213495755314173125406135090235703039814319707185765407520452834878423198134922190550169016320380288955469516542677534360425815082621077711367433760037221082898300787191436584808017748719317849724384295796056137584705751627026681218161557751732755758957158974947481354217977135015724151649397151005642371296585133310863477085192307128326116879145359113646821444249857662447945226966182162549083575033261008556086712498796296834474762170822400476130717607324722581829496040970738556900843508109487365414154162406778298175137649524965987417138625113193458820169559988984572027084801075801234917348149212464379410697635782054166370207296965320982106073120288963305100972402076757876104371648897959079482908744240552991796199678434115382765678645095286862430056067015135530318235667016371956942146985479582088799923460542441408442768124593359031196246550114542559306616972346070799217438843448256593727244907316674874068995651444384955420585268370179459356916401329096564061393700777498825187214085743487450606132938664578136876063425485130553393336650092770078881747045153206587461762766878320116701900860318953375645729687344121399525350195913281431071912861309167108019999842585349418870173749468295890289824691219478812938237790825559713208639313763634132180530193846410234228107039160828663125220057114148888607784829032479676602362788397580339328749825708577704848532565076048448440099516693333529308246031567600638539713357371009766385247329474000325673594240218857791205122974368169740329724220633918938282169538843845579944780741304183855279024449969914507884737029180277556417291571884328150681054724118532931060348900500629650583476610686145053468721947656243944078661595636534395265807641441887523419831917064267001049088593877498380536868685865378639195273525321128678925259902514758692867924666142405703861819684761956295852321687300337235195742005091960614119267856750921041557427500051644938909478824476749035214280914535519992281651863240001463251184568050318937708326524908297067994895662966958753063643405363551347943143125374103009436089724732919095739812481023701565111623229340888749343006126580838577985795871915958712721942143028130046987264780047949343099441073790013270055331343620180407409414482431153863041488111523941896882366152778522837166401072039430815592944301260605656264219184369443881461881768316085520375835907108715577622924245401888763665107240728236762056949892279660341236591504679976309032072675566407846957276904165245133847806923180068260334186298057033049207191501665629008593862672140183495089480275566415787131668418636968221474305531392386404565643153787708507314980072403567439401236306456630742646664254465258558027157757030313497464177558166481195556587804341876531672358821471753950360792137672027036641250713503819147698545332151449471818449770144919344912388156723519661846139387956951667148320011367807652753563613624831038669232902677202994190175327381875581545876008716311234229354065040138880461926842993458010852346397299055089091700660752104185669982286490897749672249568614808002589580424606467576968625337880749578966751464412580059989570934700621646247403951084224972686515405551424963523326383634469502494083058925084539774057898452082791462570161590883611132836262763528944905302913940791498018157672614329764640413538281523644456921306108802276737417163579015698115035668362408787954843990269603577962977279510798073190734876268749177939505497279691339022368635315563934088116718790170624853094858141703253170154902089379440984090413247499099130423652579197779549682649651347780161164146723706687217583372792670131925831665941318050325968280735574824227725162853459231416280969538949549533863420566418339686351731622449383505815208722864181126361003471290842218158667796203056870673810903737405226941229176279908124858820345416335766883457679005042496031200531714795400821257817767666309586989871073059505822149055912850463342034104303910550513786841619890102285248582230949663585110131135194162189971088315939800203227368710802405029552807841973763552442569027390676824478845079902686899640290911693794591084205365987333372844017083935908246003051128484179542744008381126827628451226296383084645757975180725495078472058849555150621540881927052382887592179018522113964023754550047994340306807414236175764768661476120267321087669843590754399108754896775368512199058584033462233139155993068757510392091237785081908262670726491274985127213517736073431230530300036238460699382643382640235614469340204578509723832980260486213179981841932172085760856819835171969124132945442745611983133263358189112672508406172369863621071380621606164517840782415949263216507820989632733462817794401097215879257136821095833324699254332554016912918030511873756616430275257859873919457324221046826600497688708803478871067840145447061749849271809493756972075820490392197504849859343514498623701773359399060504140523879124501507243619175766458353605046448386343300341865785456830805355663110817136421012645848745956229198153557494444887398527193687051198774483278596602694937453660896509804222568035360615831256601703291706854331882670277054141583396827849625242938482586899577804802130901826656431144048161342347399674639870583726506715586405146384215161944941479448371586814126354808438241623717409299388454304680843724137718076699806868675310363606209541428824783222124051747435735301841498694460220930391534535063971587873864776378853318996418481146173238399570219816231865758115402452492066723437262530584361742887700564935223327619289124846612131862385966325962731781078065649758225504601481529716486519171407330752434503408084763122129464123097681704816643912736601644225743098222354497649964281300793705170157616069416532759765157105594669862283562668298624938123869893029518580826195541734168593499419125346531324149354983791751611983253939796026940288323987355582593955279363841600713498826573513652565153878967171619256779508898618017870662508774326359457703253119303655640114842469263147987670426320193708481210765885724186916646794748299783725165044122412321321539245205162785328943718998605761841558890826598864397748222521786556593509010124611627745199550497154469247602002994612757968218089794380878758032872503155657773263393389469502646521272612712871554653516379166884039237383123118392132589305679726150766471235508941245065601445237004210177068024565668843700734379612429083858617456869893507836206572042051594326207494609385678535967490958574583080894860918998110856107951485982081101320481090843603091679297283011699421987947814444596175301773792116274389310827546875940036399256021804772496741967620129855487959656582670956822994994198738896797949397573992010286263535025197864880774784235407938240412138742185844740192703918795621146660478636705528982932019100575013996292729497768999256984963629983003741523356146876800923013098544625278133625628765439231399066022843167508481852641739269201587049905461647085725642069232505546501532206663063695398935449186707291865411855019222243279825466165464576266351695058360480988641016645218875962163326657858699184788471090114854732754311590297282348301789857646782389294272626074623318440258735894716505396164968708617809757939568909192594578697858230547370032125880259752293648724470792338563741980269633280171684881620602956297474436011324142680463002269105734415184281410571891748212917574688608538779450044571258209221449130150804727957825021123609936375022681698773822511683259585245296799985852048239788741348443386486156780881604249833045236813725421086213482947990564201932036364187320153130161533842456309130140850478061633776163500962391623718652279660990291666259859495835502080630424845716167792776614405589583345900789369366372725926050586340421165755018775510842887622794568789578533325977774350708866267930002722699837848836483890603422360696101569326950214148979468289605530252775379999835086747410269040835588564105353843389857638984137602657411318412946140901437146048658177423943736681198553880907973189096568557983325131212793411033517244369257953733523602896025430533359111677857247682754420525705273286685302204459061717554993346918611635367535666599767799092606137148790285243780865654492980277584452534556942427930605026815167125623258233824186126890058553658139287963365574573880151980900662524243598228903303858580485025121521827831496259668879311879877205824913824496801785406959475341334990378123502711967514649724778217495325941393303951139255964021274203192757840193278789924550600609515841990511621761650135376976487765428382703294985994837867646724480086578108681078355722894851380385381733871525813029496844500136325709449233614096372132860096361100370179463009140898113963518374398530701015155478782623848268974788406684972949243558670325464164362067151881244851020109979168143314422971291190316925856435849650105807743626299288202870605638217247106582471240058937997681149756699931182675704963746535794885147807983664847993775265561711991868958160510953936960346445205812027187974875447453657770047750838121496756416878082531971944306573271704505645274033777945483681825498180716939410380172761948150484659034971645499950838746005714859445541090141336486872513300510569801043959854796334832361764727030160360965793082292265451931506034287294307849291483190508043108531624675176272073978212162264552599587856836401604900094608515874256495649761933028641612596402547097440747902015065374699127775018608597890065226934571874348232961523229719606516814653098232294678905397929310648064866737568471680049540056919666314672545708921517229888128257160654382088215690773172658279628937776154463756423650229270843051016121609551759644640230669248960044454435395101752199087274505399586495806784820617665570949754114119422200462719917197109870430934774129872980738803687434169107052010254777642077881850760816182542359796743516079183635136056180161271895360016968151153218233102598713549070609686945659498477737272223737513341091750315536791063412899067714496458081823770528639532669106451212652463768863207297278853154648353035817661744850499480938344331470248722626450088428314480726152028217377897877132843910174680579755822565817221992717975140008048221747924771145130493158569239202850994232360130084777739756548935391334496141344050073776779331886828701472149216467886646765057635961008499867960617402515325839284259428112215038673012564114142023982000230903881338702943973733474760253185953568832260148802724596903122061726997209330266987330773204156424293377562577107659427591419289536527809968280004721746429884051003178789728931734235856652401657231789446683041055602951189077827532225346133218528078941194364042304665831294546437420946220244447951514231173253033068759728525997170575137660945131213109773542830056284035682893148434346986451078791799671691399415609869283723102843184145548364152257544104926269018609963678270430437632075093238421404815654954825556282663281529641766626887877037630561109883200722636236885300460956390219749994915975442057477561193958074142507915787934879451813821810769204430994286095146087076544499459462919982315492485640730309239777811847195792542184510386133677124710370205203815428010449392030030572968796956625090793282982561065663625470149490020045816628173971024311360769885187527497910471166772114220835469970961157326273452086412938309055195756530508637451477342911820882230172996172852217101468139407033086319594309519582495634113230500138986084000707823923570254019747942409048677721368420027415850560794265435663057130453333604180494290195019049287862504039162278856298279928840347691413942878189444529209326299471505541195894613505803242566939528471682099842247817482028343683591918335594327873123069640321418117701800437592870779097384385367165295008412436456000912449087023275813092137377817224283601885656958081358644911064883438278147226446281379600491260843316784186787666682087049506827852177262785574529318780036979609880292794068262564515405794160050880289222766740909318838272527899881499332811617114801792162951947557322959895157343088127077932615349883364273935660258893688487512086789903924695689973008734691907973796121004939958340874193654580262879162870848786568174480967839151519918738550118332913055642957044328360016631190452585543923122382536304145156035496147897765554521600620849252319400881514762195583335658646526970672816901702247815612848469723685758563342705917015174354396279566442378085889264962516689762058486931439564754926128752685792999643196823361691508458357216574269490166510239344549462299017228552116788741854645294069996736685600753842716168007119048213012058945944604515988471455065519299057310494055379301865435740590097413795309411367686866664108368551251734772739178877680988816689597209292185949744299470584337784500073224731119763685432854761683165973707967378086230981174883196850060268611337520376482545345489170797176028534165339870625621276470994925171141326503399193845965639135219890947727179758229657656780490938410904514176550399915672569730296345322099177740001654874841551624531301022147809212430601200064179891342901384271314777448685657385329230950979133376307638714602808422368689021193260261551448378010224137899385931131739449900618226404662321997943597605714308978234448285175813018195683601453019942732152008723417096270248258265251175458750014028626313800414799529142363977430776659036316728158283398597760001527128303036578785099661540424926079566806839310067747045836501415955044605881432260737174524685002572672110132438266702927011636656408784577682115342132034139727362661161634550022473813022364407751111251899643676441077401932619599270950879949537836135184281715538339574565483224486206452754305583375565425138483497773976811679581603032788616771035517855863258658688034897622472739759489091900778886482409928157924832494863213930162434788966800977013639397273756672797887748276219272801126164622854742400353911877190206497000757953221753674863242292967628181488425706972003024306022995877793575906951443804854177974200082312359363857572705050072283858168249969687674426692905341355965469862691039387089939165083056333624308759028326090663035702037717713679942034952187826115418547851313114739835614282010998990558654177903142729714206866725362908209100846456626091561876249862005846460003100437566951458975470771418214786051271745558153614682444206541315168012941163179430493312631913188527623428060065639590498837853673206379382988361690841167192698101374841214728052701408477444479621330437138196892745506232258073651032809867936054695006504532628339688424386991707771507620665505216021207591296069679096204106984998050546570183969172494846568667401737031150792623452753735394855675614780896112789644244369093345802596464697603835911351816459563550449716474538933282864691037792269854316126240615514143323425890995048232099789887099097849213436081752929917880975966004536106509463062925164265166383887677980650440274159611891397236102340907276679135131430882158947734926238110645799512915741137530292195950352404707971916044237533239885618302541509517069242229742311285961993641030545446631677889635935947729068725268143244023366087365099094356832084144941935287540222985737922538674196671927405705625904161230202778696913939209499318912734261707283722827159182973884231219695863778796516210804928484747514063986405080079211918899476288691749985983612841599682819954022003300268670903961406481288161465278044412696388400510064687738756764602051430954543458404837487597617361607800852545361029691129389661678336314282345133796112086246877805709280272108516368616776604794627619114863612452589565213974933307871624921184453699529176976486784949715718975331934269921477508592065273836069123567817141586365457239293812389872898844886949773205782531948233761232700242252046641479091627926421355121057107240520323758428682825634627297996553945298265242332809729553251890126755620998903192758315958729474825152698266778741207188108153876178566969299953961182254697796919563708839657540444796968855136975139645702894266396373435278835444136220326829433747224646076012173469600984965123375345140417539647973458477787829226617162644473401213661116374995608493565240676682938345846221405673693227697539168260602139030155682610749868007501860489273896753079206696730213928452569673854858814098184721264564913338672820053299844234367154795464367820056062295532353121114899136218323162848487281926706892110566639594890771159540856335299678806029160744806472437179127203546493975894035358168349892486550959685015445921445276997749687045570781055693663626591553667125822147793866384346797583542727598713784526825923533800833572189531947756650898612866056884517088626045396388082196268070256253506883840900548173295327545767312873302010450792991045370630752987536991952430714446542731211736345282623967529744466251198931068775397160294272778089415229044042587785625164326830235643726239845820548516873928013981296285630403750453085179304665875376378466062932413000114618117464011117454884188171563155702295431458001376119029163118523377409936330400039604267138492093416866530916479499573797675922928732690037535382157437214808402142237296874324226020011303735032945628689221932717711869407660345529289478711348264470168546129030504010280042248327929011379888595762161190704009589455358258362230123883827444152625901852863134132507447134748525403121465392043034573043039226984086679784205791063990851593583856923566201659652909630093913798512477178722906663454863470340297410029067805048361888076871951545512201899654869960816464406294019224530748221784324001891731818949144191966881454870743861202911223500273552586817268058441463979215973228580902053345428139616543171570939982348284911039522826746995630836458141646329951822224065100746953661792966022710797338478922611759617315664800057963871406350647432492007179886380901670288716281025691066322999348430391573879598612574835274629918700137374366737087092272395562942177716734377150829159201226195816339810184730240883680884930156809176473625223009174210465745843909233672234481270681707877008105723960012617833204534644961909152066246553284681059369466682078479172828688491333839886539861573645751649871120991547379508935399537053896871945440578944509019444944164744456604857939033327237381815951959493718069254521883168806800690035141238875408047616123966050749453449483890958824081753963355166935378460861627967660704429889203149606400534672088630505488412083107167810664056689453086612049651442498542392245297590182031251390459713781076123811440582802818124295845903770723191312492791402841344719760707397916187482450555507470176676525393328781516874600776443832474303980160268510426809270217679178877651928368687261970611032154672941975083466022152566828885966429393885079556517213016440212445310658676516866857176821620703995576105227050916635970511811646934339182938460026675041096470247072257241326778535096313017109406152108543369337694534381036354264635843946053965487495101142827193218017236474535841719766980069631473379456275114111834130479097982715915858432473278434356731674963118414360435991146556242135744543350301363896843672106120510177863679356969663890944321819876097342314577363058876057800842097531804544330367050170669151269207206115869122977921254248645296827215233653849749369645550268499232311969271115185185535166690504968617772667198236082681944701905544791362539737835468909283820444308949655010836221211168598187579234625235104521497610353565385880721314209530024126380672103313574156378948264611056060131382652579719587638648008296463538927343293555131275644825422784923277343753394510030140325277399219810153079899156860472189250657158887375299769420339499957393934068977454043982927518054031081132161794592145155334495025542229634078735748100690277371245050341126401170786092468206372905823377030700138671192235420110912223362841495952658259100363900629124062427820543358496322356185224446382423132110962176243956527243597886956598885630007704610710473160373517243683385406632779433294759047536372987950856049341145398204168660471957383804018816324111613661325810216630062657339084601712015760395519107463203242802146884739374416094758026541606638080131912594821367836985944413639462484000427604913687258949040372904882682409713167151927285775204463262240716134361207332957042293569326653055849182055779526571972421501764346466030061497018129580359659773097273918433584118045028863324347800327008417305208226462910984636209412029025181077973216860995394425318235395291815344715549697968168161927765217986439739342872939879135603200180486322889467594077728921781521116704045699724384171179058251626670150362887326068692635973151268230755137589483438217131455217837302653159873893813484033507855981434448332221861933089367222668900464724238276165129129390199597305152591818581154038891767586925215815703082044722327109821485538415242809043988921390743350285029010020310471556953996736070539155847727632799966765701957716909017375608584258915974844517627709510701342556828182642091933565623223387773235509604124263395262389534114105000250435225976042289047862302318631847037503460724764551320901015253183619221574896970709700017246826921960218636947095383060306328948598092503721929337104546895546816307121677784732314010925004820448613671100274410934409211274405786066796225710308341135005558633207017391054544569267784650830879893674164142838831977390707458461648193265523341166031036264021720468162546868783070045942731526678600419722381080476403562813957648664123343798926255854194042959642831379700124760579381881472078402037025053361558421864662278968172996923332053115268592069952076198554360865508288536321921137137369821979562331207587845906919805091548277105700742426562400426082990149639033509628831146256188325104079970024503008855522677342223109262128962445451590216118737927207261038943436603738532449950134014817092525584413221914571281646728085967435121207000758313347530416288096003799160498601250185181682545264478823710832888715084616646634409667853565666704361066981073630735938623704495678567334023173168203945767208697864769914914178900578030411007021363955653275729459461794134965716343089196285600897678725722304654763424030263305079039901989223774776232949967526478727977312961643327379141621079021393859581849614799580619307856084105620640755056315718385942182852997611502198613010342729152228618235918986341817370450432332289551877850345243311024834073169547830737071627825520337713323974227248926436687270361947524381796160688334835245156289164630757085125490498414037715936712558489719745039684935244930874136140308351215313644571927772602097943106419411805834507629781047176288454496953307988409600525808201629792990144723758620333132541006886062753976275139955985786174480876581419186416590386094856746048823388737725138253171384623301354363547785021813366081946344217471401127149191239981930929257398945745292944417173220073081846886379972141825381117522352054774320918022584511407515295786458889555935851455371674070306894254649571601416888404108878400043831252482885116681835023847931014968377550690938054197673832118927257901425101946380787222433328266922720726504242674898376380645945781627069370514003047539080233968234787257024045318038127640495242582390506065006873031303248322343307235368075003365363122233836878995358608881639347207451607859170527016226855932637659824360619447303992919767458542672562785315885985446791751750315332719200861401357223306432202987997729991748501422606963461162417633029991414244334107314742586809048124549686356224395715458040937786899004933229783467440186475663490585042945177633505552982351897798671072566352178454925804754664171756377582580611945914728904786520715858556415694496402995363956569438955960946995780507847558460935931551109517175256892750404982336563463325804760273932716905111773967085517663668882153054957574972022411999808381770795257487900652692064318327260910503745185090599738568617130256742972528999739561972072398273882048346012239330424349566366869842979123661272856084085771725945800486212331102354961812487788716566746559173730910242708404404408216993486207860716955018297937920177468452836534242524030256799542621654804004002916349550131623516934915098450704883069028378566016645169073021959894430110292071922416772798448808128328708686383656790492337153686455127905538118535261869849069563128147411645324926495945569423477813633158015598841565126136134595784895472741099574682067172164314135526986795542046223714841819591326672719310212232574685683901861308817927303084654641209825772882433735419977935431487176580744938666463659502514879426865545946986896956619812985016376766157748451231726772698031577018266819063439189585308082340611385531987379262122955066183345991078882970800009511662333079699517673785077214548580409960288239717435359943957611694304061530309311521233302267372788416699520089067000265530423841226072000465824362799945924447875054624713692442118059803623134888547649443704450338448417793494374477964788440506736691111314575348578759388093620843477088178317948810130594778639294811820804516692220971519109473060184848616034910403351381514787709474174619638769631257600868087955632636384820239050702518327070852937091237557443706173883601250105201882434808222538321826685693408611682614993473680511815498141361355036356145075255608131114685338840923486550513709592152401470232563831441895986625789448180824368530293786245180576560941397352562705117465795385213980884541158328008471698017845155840283122691288130978532172111725235190302734640961991576730052637977170992965419506538687544194791373648171651320950823100629461334827940311030498526544248200234134294284457630241805312778103316623156914030829584609362017308460751482506684866969260987114024484520514857695511415752179622511139771539409400547795250534228929131522289683725870361790694973983929702255509718459317465046738476301146272908811334150970828463898974909292231164530509581623964342492776346843209048950769972109470177991998451604101240714758610645374895099839910367650527555165913524938058632394684529506468376375193751391827108969047452181414978565684731046349687440637424311401142962358993337839132892686685428247713255604021987682709774288410559619661357619250120393698980735734973193247228322171553674069461968030315212257774151010629961100316527205137514594657849840947157818199200363626707180706256850968028828781519673127274948170377779427290026403637795735866665012604153435101734444656375842513631097198275240160609368743279580165377689803229536708268123606657688482026000349636855944811153883350466741528747611924578882688579991461986709326336148777778990828761738320288761331221571193770607453423432330336485142195875715272277999243489549432839339112985095045184423388709592020422043408609215485750849164585298138434744039551282746011408754763869543751812084097690177976456849303021665634673425564907061702295350352166597727469522757884420807864696392829884624066101560802539491719217173274284567235624736699008946107132684869824927343644981922532431860092507961302302243395747188393639932519646841101101492665666435653763336939656406602809644680968308348772547382378561032031152294163814389210742130270444548957915707383092265948926426273486438856670767020780924329674900070467074837237689376831736523400001383565565981794171430797323401682635645647782543344932703114554913919677915829593791505984438326308846206544855151022750409691903355965804845243895305357645045235321615986226883698103280083682946519494193134081991815918475594794085406473313949022885515564985277553589619052815662862825030340194609023719482974245000205279098820908057000646871674394342711503129446376522654158228205950715669528042216068759210545025480256965703578689698888435040154138492957006219205504360623941126760108804028802901711636315726878039127272194105562785607725962141370727570610611086806911696155848665937229293718336403357164942848961425526621905310152197709564636929129085647655856110193000219950465627607349548646261270241490882675351519819917638774937999981801973897168551957694884144709601818855318521948697530920956253921442273376287960667217252606579623992697567101446563882098212399576357676668232824667274149343385653305450221099986013116877213722821052094396072360029873119932155918416385902146794656203797372913191090065626570049038807956939061956451662732457274157559488031222905675900178637341719542539052981134434836233223739150087261711348292195729032135038075482192874720436236928390365166725864905591616002076216393797832949506845496075207296666574192506040222392869772511392085479992622198964435165931200583532529447957928254712943134322843317488054181853798137991939791056963441165482141725796250348964958471670507521795113076476780948818612975009378686540281456841613446704376728520674930463637401701257329418988889050933775764434161409141621356920889066314941642592860282488032221260796269204028377592462051130539088720564424167928607420226124533624869894706327338210670398528322915772832743176566359912088937278504143547639363878609975861133169646121871278682910488303369887746160154908847909083159399806869312685050716651563922271255046617885411204128870805027494494998465698245269349795206309671662158785423520812735470260150755996121416018790049103188961484265851232379055563959072351332028736959599991825181838383841284676845822037064259890632965698701364257033919475136882724509721899197141614641764919657608934476502044445272753967915093048473187839964557399484698938144177396390505315670246160360576418431342904000713094478312708860084182025444318311501647946474368297554166090934907689044774871141383615953369326868834896737086180924386946717420343467830503788390205424758331664003663724066102645436820885169589547312970056303273165722178217618354041022752847102492385027184599783805262981643267499365488456047485550505278757943727257978877560627868657767661842538645838961697801122582118999244547725792365481405388489505433805094353159388213100960177293841743264980215954917567805587371934158032906445658026754806372548994869223610594642097579857765246615992278025581071263701890858713909458580166757437952422918025975959841241722550581397162827230843564300850015961531247094984006399472586777439799341574022402651250931673685083403192399991167724810576434473834097540009160223187293291897259421457972114369564734478382976011681082402226312185840138705594407853926100100516843538702444748590257859275021473620773366296895337608940296018523619249463302698545422454974284929838141257480127560341506771764375652905415224161222521586616284694940834398150675186165551066101885864565826917716661647277459302730582097946354179059908340448675745940383772382918437731207095504883905723294865296681640649460015192133769388204186430355839505460403170505716290991704115961500738334182519149525832732677736087718737956861813263781947354890648226862142673875851485297632991276299306552859842699244988570007020809061334787336044881561371001566248273772053602448657107238519235637139736948396834523525444191889034467349599380698667141932894611458572013023338902972617137803008511459070469863489325526379696450661075632505373912286014548826541138566284476600885613765243707894737707720489363403207117606670985457323565559116685382782228406412295426897615440137311591557776451549274838890811591399619789519000215365915168764969933987328842825717880138949897108067151876753766337736618455382004095098050050140074186485671848719802931638967189421320753153907039314359146276099639138889077379391270625588079340749863910328643289489015578824021660522976910465531865660832031799219731143418127934360795190371659199780652754376689536932956513705331555819589966369258686667307887405807581148259326673302834647293480349457407278281818821527920466326523077545536507889642768000903232985523218207962346178582797582539549625915291810655406532909462059655156930290154604760954700258121422806550614098122278898379997686125263223609496340243367839316823989419283866974599204351165431062547520390243950594385249694534760813046766672230116918200780630885583489275899539694700603610140149037233406216190752427029349574885854989554440142388648319266208637023450783718945485126436394270133525896342635932928943090853494885162449710488277261019485267295670126597087875616313172280324550156530554339428994220480814696376150708811426857247107703926528498100323648040651038561743674051348317867404511649712220658957445517672018161920745252313525398209237716652332312320444407310012086758341629434912656248438648254588122701373433193998053890269225329673457485569637942525980768450259705085899311451159911649666399574724411791329906842576565134655926842247774027577927345278241680524550515124885440159506532129512389591888175888599278168609531276948280904709620284376835196587146841012459988605186470508383881322731261429660777117072519369446900927714696566225173738521384386616219832050208753608708325131952426237698165996969173273070452095540208385512924050141761088300334207008508878778537262881796749789169179767355889555753474385149991776534488784228995803150124953265659210757664031028380580107920371070525768502570599056734959565178631164862725386867237074474900353650709394460785757372940946681980448913950200028096468663210720890267449952566985802318943890357595200636904766204094639033165951532398256675082799548408843284196191339190236515299336104383783912350471964754675867682682186336393210512683564479068196582443960926367651650923155779308079059933693146617696794698020456332111638017352660911292594026461018133247834718378642835760295770975144833668655268802104379755294650409912761247924111898367718792171979957152315439903927563221235576626980446437167162657720616034337564589756495701877850386045231211563496105322034274528865392315043699935594962846309416596292620154740262781536911282392501926482976331966607462406963517279838048004490207221702941135350695289373008455752731682316853514069695104005201120865382216243214657864507562366236019608388814636556478380757730618360342542871891416695738885675830074553388144917558405087751484202604589678280264612034994700372544918720514840295167384737059095850368526693216593690372114138493278861177627763110783292382570635840929327972688215099195320977798529289592395444318198548839996717255706863507280008783814909083412098296291871265215740549282679487130431057476994981822107334088267233161366564100438117314441827003778852456448554275390427423006455813695982681358800124592175159041834022490345099416313814738064392024920110758391833770675496425762504924599458379749688758580505079028998492629406583327313553859948369437502845963961567079371865958709345102152650303133001037585150775709713979691789317193073236797809332305469848736834666149643480432206957711398018052442482850154372112132934567805921662491315962765919428591575414973002855122320029597197165603149475455851811672595855907754021918013432606117770171906782047409152129964681121653893990839192894160355561803195730387114887958961673332058118234867445054367156155162680182739685149590365472628443660734311986573861671375469385050432757666962659918551011500100102042687931194012988491868784748214897944597594831638999724598105827642588688494406915054576432686158875460099573671299641842220528451343206636661024297882888482325337976063193188211684009024124882184083790829354860573411606042895937801648557315777777195624385028255583004451844142645841705819569000369220596581131503778230590131538867487691678136879664462209795465599029683414421117234706434445105106121604403570628247663624506223128055616194750519019318388497911351101279627954933639800171474664196821986657150758799921214581951773074893887170634260677136875982342086419247079863794796946225281981729094235723276584989144607142226112868827936015689902018483413950846587127627468388071223570255192534240327662803220979145210310555705088725818877341993613494187651034492933236485978412514058971328653439220716228875328619865536008047993052980733611343817496011052540398080288331027843447679808987819831300866626823182200536859110469751960079721843634677652677173517034853355684185271616010011877987972223705869148923415750933597838534981996223573540859555517679421218168910789007579737012830559985130984133526667116878127561885814383599118672916334247903372726015752789865060800258467346137380590267960328151094588579511280223808301220784635296582070880213258815813393486720816647751452002649665449008234307025641228041211252308345601327136779145966022118426746564670619802872163583025769866446092431936189920973290148660917118787037616320643912085628098920452951561299080463294696212525046259040417612752400725298632541749976864006330079113906749925695779277690811717761703778621553845709221634824279770625490020292858730914104267543517734564664260674234569604502719829758980548495709114669903578184905196533437034094947966538724097308130889452530087360011078867527224651966847596376382403749233273795409472429881559178705196669497438820260017244786455082018780057745834949213468577748810609631073657492634404728855637426648486729038580225198420136292188617296568744711567289684640913583149490735121980841206463772012138516861042384760630845901723882262241663694151009551050379763524719320663954432521460661697745258370082293731707454746925324807707208764734526074096215881442775884090225604834491993252865311100048850502093052559717576958530356495044490970625409944416213859666992262519311813451041309934216146467714001100616178711821239123121636568101666146980668038877621906787316941854186408428185280184730326121253019761973709152865999166941877107407857425095150995435053746540052907349846498192190247329083218884137923331751039758442106170963057439967434484285057707150512299476629821331754485505459384818237312265737003918356866790166395445631160080665551997363907804724559205170913162596726384154197306557205032294256406056250693914660957688294186739279703516683680059278264159304262486449862263837198640359135496232779607857767474871543017116558097221702684629727073226981370934035113511818069895941086096842679096024520574033478611379473203602394725330172139201709459386319144730465651074362619922600461329003732714893874243708227723484730782874979103760455549571067757443791550865246713652086393161247933764283256527961280116874373869070893095438405469360270807205354418802415459129000452465756581906571728558813313546728763959769239999545636782527895726314359407461827688245240753777118040482319892590349972440161249803270017719735326823016727987310185357763082674002704773435029183869824499549958765860743473134765524398671054584832682093114635622705331701259903503251722709998612823937778784981291304801640777966814150724085874845430376499276778715946710942890900728648660480212396856061684401626064246786294636891883222002570761307031663269658506149003624891282018231120350313948958621520913769610556856950256787322933301935163338903155444876058226491684615803497077185131031443107600250809958024410382762757379769575680942011478270279358909585613121643349742615362978693086636943329897329262101939861208810455400438513063274183304303959048642032655120175429585595088314686550954149599347567444216138953535673454556023793918448667152493789426885044270413388586541795993540976333572963116188489491173908899991101835872188444901255911922724782761966742631771731629566881417861605162446966970144599521585337212145611511700944460179921440707689071452797334529899413170054870450556396359997544738250501406995040812003130943033490740517109730179628802814359821953565338252281819639793466231189120519066505108360218011901811002062737473320699443841511585602568857526808045962289306031984085614216743756690379913442874196587014959570099380137937030851952607573698574899595105906298966783305752812147823492065371296769892117114173934627349584353251207827400663067008158141465097790632005861148654739303103419467642318279020450190802653099417597276818748562726461268672599589656944087847493533474754776058084650344083930556875915471693444617738789356555591720847402384786986513335115889267163798913180438370672471057142565714653840968181273380397499555320831650291853414264145965353843428227747236218377437177254176393395146613039740931361459043443769875249969538927337167150647166107941748751788099705036596822420802424371552703968405796128905012086578062740369570937996138055487350764095744682828481239077729967242726942348796016871602256144444328973925036641069569113109083482159979907947690262850000299121162007744251111062990944727176838304929596616998324209690909386297694963986229154474486338826110260976932684879512437341803377581253087161286764588867886749926244588363092327962781895577178833357063935382771132047318134108876102651715750911331102042203930343771085717398350556591978304659892693885927180014581105900616955431071551228677915819241425614639000117568434342835342065130278497350374844191624615028473492924747510043796813524981201015961767979169075763700779978699724409566879865455277005899870890401816490293322399623225442761997640986379175207885873953377059019934162297491937453696739830174084203482334331965876614668359614745836393814532670839763156540197662010270504556869592656609298699401368023967604541085063832299625077421412752100326701742147439410648743487063881639366540528405617171938683249775692467156668417529375917751262006785709055416005900379357752751470956087200161257804759286998725815730402953250114940346646680913394815510413242831605722355428887195347743017547838673466081245488703099714018080008275769265628086769312464912621910276217010908536011825756251367482761326746854124923025068878755496556256300144484988890159974283068679341070990128046182232623920140536578689882817836134011005439405000850682283567501551650643436249698990765695636894796881587111316762727210241735747981593336942409039992570890547788886383135587958493059746909050883433158107811931106498672148919353552084176058728188536734674623724893347440095224699224850699068656852476225139556500398986355956033523759413596666633941383895283935865326675002107973343784933558573911586220672492782843469912718200800573751080240137263506944294706404033042730300925560144841977075167600026597705566631073378393011130558854939006485899220074883455646398709228075893212732229560106195106841523454492038099011781344382122734914855417292957067752335603952405002627477336649303539907283385901725911019298415054438422991800906411159829400983282648047923786455575332509971688777048579563986778450895247333940258069045263172706731845162189480056154155176629571787099232215702035662437779744053861191422563914402240534527838575033856894031215671456923842963658271019183648839984456706662165940145661132428574680489919210622336253760041502884596152865324198064775848104997471173169867276715078408891783596583989734500302885510757831108924486449333508436743395237666276258063498176920470897503591085315302492201714312893608342080118771336129581812998923975488474191850168495284463493116913927166988010580607305140919840538160215979071046537821282384729236339760361333617046946702871756634382992276028807788035011866998376996415158935377501836713559918051460938484714013944393724212447367468186901253489245259094779683179051702431024540549002582319155779448582819867067346369753154576842669759465302152265091283079327189492771265869969019757451930127000144334889684039153122287890844422733748684253442694706287675025054184566508193831458409456493437582533626330200090072330483645505803911084301312700279820028892622226530739070063685116547215156857421237519685384338071680952015021229296330006030563402082218525419767213132258351858900271777658141774999088509489049093858308554792053439802761367731671322379999869369047275750675084657207222543892119660616839531964229113227688315807801914224815050551329058105298887205415919737609293422767740453941566324325133411430610432321510114453937600140230968674875120563161484216242276473982632515839760477844943654688921129239082294454013827698604214127270500884844647097870086597725638632517922513688665955081625883708387907716291687637686023823804367866674706463653160462686986499225981658819082631667151279247124192259821932169337842030122508772907273991018566470988549854594049302225669540205946223284492690814555064508188623879805417422474889593397746187627564158309358439177406671758923966009703632862636982857094932438751227438012377364948713525203319565689868955907263552633955405126600071698632046762263911917411048985951382895000608281093688030941073902654724282170696340474290335629845686051890073625496634960816522679496475608861802201117848123414302837326875065958155414134617666998698418798112360461581632996714096013746013642805477906508780709561399831091203787951101312685185544725179161695252634050422338603951436203996961021256618372152308422613817390153251645419992312800376345399796693312517062478156237869168620911199419707710106134831772942269726695087103117302871293934597885757248753239287055771120389169258958311118599868049718236631204100591824271441944509630462084619949130645961427780784067259495937985332488878155737867352935028469674156562986938762389570821247744939122335019006669631265506764987217242279711394523066554235258252818161861198876527731589289820143676606051545765624977610812189357802166489609460800970743604290959812141748915103930843504546360500695523515641849924624308587704633347236555668054161875529539116802982918329322735434271623461068085295390142262764839863425080530675394885630272909306645292732731706739664521899777650910878729096015973868041354550105726942938671356825846347341865110464150478601531634433850419842419817541741437330511198202931111254889049160917342806193008682911651137751305179550697495458082532246065733056521982514943056827251846660151917477068341600135638494519046200223323449263139994653711366403954853996833183676674850213627223821095556992014164590652912894002531465659896536601309437181985984857819954506058915561504834018611448610204276599172471670448859655674427690171877730557014962878898788342277142993306322914897983676008208678626490068320546190711219902991793578045287230276371793935505231667708385267659390035649888417521906770698192131281707445046410439560412664262836476991916956805098118576750224818472638780016637481091861072433788700919783166909753477867596688693255224337967002760890623328666869656136423303255894493526740454768846003622272743683917762582996813132555950454537542084066897328573699711556657034471720287629525270209118474690896471126536193792145825103986283591541118250104009689471027685874295309880760087125952232211084000707109040297511143732679975284837568035609115077732642208144513838520953641890902648380240729063190397178195140685372561114214938493739836997406439424408632099007033404940683262547006460976549227063930580496437539945520454993594692301716312324345037967929969933599521767434911326498784130199045733116653719298969282981118034448199184367071774461561169938856796628248580207548426392477497177567189862355485239854716036038377352418232893038258291629074263524314565353525356342282248270674177647147387249244283574706896143720951429905415237119566636253098677659596791438580889162782039672966797534225785865195618973166604048594023099687651965340930823665395728878114696636035673841640553401927952529854333769649058646207828177012917952863510113936757876142501955267480757170293085088744777555806960284775765502607393965693597643158758612877019045305791893473280697273628065814324886944317645320783256316298761018937236605351074228607720810893491498938191143125725643864442599764867422795686360603692830911514788849459772976653577328921341002389909962489160747746395175252247868937087669168166843329517751905795262575856210214031060009760554782505895946375270950974324548880370659271714040631304182840491315157292218690042179882118575283611959306027440193214679859696662502356772582616818591086377150316463088867472111824605705094061488647111467406286557874469134531029286542370531805990651686765192084662227024494695561704343775075963800743488343725733572646400362880844875244372545537521554964084271593158749785374803193621837927821295097623162190284820933731508244811757854319157308732352477937192855434089204248968478599087144010411049402999143800125194482442750713893366684277801590477152446581642150193042117539970898417374246126788000333339293492308462152267262108670551569021743004007704229300778187013740132863587374974162289845915366865640997962792868055891249433127017767159998394827935164814015848300551218066651143984398111965679941498807295734646332455816640027216493696886643454410235913953198600610794695794990081205724901497767858506809474456581803950673910851788627983094080659893031393528568937725971984453754192716324326252020670693610556169648895565956587854994589208341152565319940096895257318526020700083087897615478701978397092995273535133152398780774167311518561484601288993474357806446753372830650977632288486525072246816830231942691442173890001942892625216628925097469940270233535462638768100915261476429069992625805063775667185132890896826762299847423579563656870061501645703346744214924176170797528710607026564521901929102314739848094471418069020719812718458862810735292836454551252131840216169974696232144959772455531751350155901992954278551947657695370551443140103814029197666205288780851028691065807529157368804282147172741006948393865442707871391049318542338673949572398351302700084840090716700729723784341020106213019802080502230147211508538589706219811532077637991964312711147992234071318029374665316372527623226486938280073972377738662924057591313398736845243794949633411751830875555293339739101514067458548262722650152103276740497998682934129039459777247115025871916256586405359449006866335983174886031734866410446866652874987686785812692923749561510088478938964037127477664297617334773459275338394555273786044667937936816618417715139416871750619346744108401706709091901574656495555009835578578122178133932243296114356400396929260550714038614744454858629942006709722887325936471541692663414215197989131630537771855670340641012413103674130325351594207629206701215653142018597343230579452048223371249855452193954785710869166096474610825584480373145317794059762952690958723406154432489399260072646671545909501357219738663519208992401277153488713887638624500672629329278750606498079001384184877382511616668657922227521114725155835070772530997449840466465593096240564017178406194846577934996212909130601425619999014992311962375771140463480497513831713529023883211841746928885347251751194793329201979741884840788859367097114415528561395388340713567514393624165840175453043713089106929912594490999696455798964012501816065546616006558131442720923345393180546579662486490135093443001485832040509718239053037373365769231834778178887916970078092730987194965785164723940170371118076629366342825431293788353114880584050319499891477393250948964601330895239975469352284067214212373039220489302797153031496999177093537055106711185218440204868798858809039311314927030593189804591411246994743106581971004941284795301046841483996606148656250133130457928047157987740281125315027454168674958255348086394290427703379904879058698926482704691242480747661730111789567085687571850495490913126110612945775057910894564027892815102156865777202988200291768591695553321474946195340681554771405066334246869655047368051482323345369572188494951973950360126335357940652519875597542622515213539596801776389329084012995385304227392131415452961683808870319913851837741236420401269697641128478975049942524614950589171018763890589509623966204672432475774659432658731668605959359450998334060544805878149147472368202540366402296723237306531149726161860740248036636581586264845273629701547636606188787199718417913188411567451623896036395996497604263004603464338904842489970508204804855625488331271993628122419283030623381725969647066627179725378184281177016082527759767084743973616745139443532038595232663883010215784247712208254914992707309836672297995293934808184590534418349886978021367210131643141740132132163363468078844939103487570528204287998311497306176872748175530905341246972822741713487538031551677119676307252258785139997877153326159267040808469436590140010033284222428108907647943029989709925637776742868529684812090251850939053928836288447504304268110260661504141178938703744666759840858607741081255711623037942271094682712678056410117722112399586133657642804885403068489264080573524145946318816924909790409146539619219009939059076018502655903884655821234624311754049728773645622927190523163792376461632997739762457352241799669318669255333969792911386648854238275624798196624689748369447013184670614735388485996605019043948524390223934523175550725577895779696698323591454915140808603927335492411044210932076566768462028607472285853447546729963611152813970995065387818384926735787202393045673620218467430745116892686354706426609589100466230969825465187583547169161193331239102668331409413177708209369288844076852160708413285694386613021368943824491694342465204761889592023044033263729582253050632966212938975581830853996735186695644434295179379247328282331969037887385396634688364415512096325381791331703336667857416308820425728749603849958995482633772264910140352977943492119102372662885363645795719614541610972138237197704248156982107530092344625318936775890220113607207251276902972626455777855782334152342011330009030600335538266850495513553171548335309716297873245121604562292319209730273867452559921635430739356316386393690143471394522880052411431833998105329109845355140118602197522633252373189600661788620287634603061348949105377677848625187275774696461440329930716062826351552952620318029910576503583315048862140797006053818229233826665770759759253714199015575574701379598815058972182428275076119294356673111789114466797576248938756241313831453846676181569616080062902028068927691056019827266216612544853114073530437825595251541248623907211890584464524611721117658955921459350984233708779467727032514657184841078033114384010096839913410471374889750280312588898739402855816858208391385228474315329909486063764494957164847958075013850471002044397847083013372504083647539586657901481591927422895070894634417115558488590417959057705539005377888174748435216217651774963793980215557910699312188384034883138761272024039503753908094633135966969414313954474771174873519165012512595097925987192454293515872902692314136486198960272708192104520521867407472812231036632014472984110832280877737201147324102640537862884078339996180100154001041203636768527578123977113899765454157344001673357321404053538852579919728456756773596052732216180086826191249914505406634503573778998382921209098038205147903485730741303932009588307874802261256636110954051564247751646183991849967711476689075038990165332067796113086625014066768558916339951089346013080238740379832492705355102647853695593751866476224407295312547987161284272140831918044934444143489220881116140911499705302686698846942455657999778013224243977069496130111203689607873776961599815058287786629312549596620440009684002209177237593543239776069231031530159036845193877935940385948826234097490584822468057208158654301996366584016181303752849107155340967755272582125406022498360047047849077956668593451594730713201927123199479326804779473728343495915070167660173256217236348040944253389869368168937777799661198931463591236845347916810646034928005019711895634744491093695808713568135486594301466217228925583923150460667047835583159910448220397279066117959588375087719698387270262508755038201348054208595985458203185949885511592642862346756685857605089303835810652852480666584216704398269543221976158474744110471756017425054706133323723307291678831565773127662784023856788190649908921033549245562058445468147387176168951645305575931282088724461914146206270012213568549103883595359393757123845465219060056582410681816365454643172536608914997204882485667339972967586564828426159606559002321828199544431877652874122519151299509097270982268402846626771058605004112277561584674844019858561435241492602724546399365559537390497625152259236418707018130009797680067136028443168657404350004189589767048724373106094974621439573769338548299213343660880167410678502379994542481157717398009342758078594821006824333809017424487760391038650313729691682856795394644090875148559446355837304074633267547836135747294396213426801093747296558509989666142023286261313279165866657124983281056206230108089524988233223034868114074763558354195577638895899253197818154621699314898503801889414301877057872689910949505852327723972668662453414295032786531233474671696341208656918600345658639979840254870411662455990291765998308381157194814611477954447343698513262649788657936491889129715501695645478734648869046615883445729718521327233893983134319088294064144278583777925570835833051016433095862057562603997371759598320890861821949220499259779367326737557226183656442109951462886113276503347674772058110182348376318668964848487637077383180740569594477318900396116390396250235436194205758651848674809896779781803722534054431449974187500130074449081053996501468014923017564234984388424097372482569694702008296280693224435941773770966460740862977146090734080447843436082367263141656346852697549580662470811485843724583008783433942852862878119455256718605463784860972594132309390397944581568288156961667348996787246173236095374083947633091076923465187055506455713799925981798423902013767627555903906729011933321890708331938950101358429780460582457593440113716510029689952210009119322941001636360877507071090388609192961070999817792310261354209048588697253773941872591557176951138641354767994480636415615941091893703631270750905138347623451945308799443544509561710502953774708535284546664277401027168042032761247536886786230109291167360891137157120327744531805947035877481997629422445665029364182124365345521501641640880787954503498857532874541187332832956174466191506550938088527227206085699959802523834981109277968536887592806613140759058770539541549474280565690935475288249687782872708379658883704726978244057247687885495572151250063423742037537081156697518395537447855602681219427205786587478171894569777885748713355195866625293157994260141804960022768600311526958927893350583348304420630426161239476147810747712215541254822991261631172099389110181632673490114024047813877998904754300592218915548086177937929582853374187509109072622409199436472216188441852155402671012294155342277370167739819091675767403726017932363386372299327783610861595719785518499046569641032654963985752859416461726800363822803137164192219801219981124592287183563429953324648242135126559563929875401293750932171917823009759892943098336381796153286321522115356752464986424092312046991180396772221182722188889306950215544832408473657432415296520181938445826407937952203657264005406554938677810420974989072233368577764366033201996350484485148549614776087665537140734536915949038357642717289399663966678668455992638905380594727762187984110518938087264237278016096924216309350264132684184147282100164624252662846560769867284584725206036555382696519526729478967999137031532289995873931449889588591370367541218811631902739895240421207982358979246009064748223719080271182539992491938835974975814355059266706142183031951066174590498201177463292615947810891244668438901868230773050329868753476249655985867301700266916294499395842862735264365129214095655208318421662166808032707246803724845094524303034530400061093282094499790737006708737471283603722307905218000226316686677475081320162519953319038654513876161104583658597462632470328078086806583906114603786578494464337291523108502948817685480340825979900537383003081768924769578804791933371464478686803303486746040206517061488132321260384697417143221178012337584781878185821871765179427785295624927407022458057320414327484017583310190532238785519833943344665365792070938469227638679595532972145045838006854940907154492483799672670339035625383406916822025517102019770706961456294287186286244502288898644949116079785641214067780162059101622658999653203031987180707433313366427620706442243391785705798101166592487852009600170458171691004272491181404595847581556318422463282294211699976285034565429270873004451348603569770069768013786307415823159810479671673548882427723808016972188102481641082077381988392706661805250950381689852036735577580644312404107875603867051326769832941793151786968159152288378670026948587539075902726919897344990833798992764247199020873587932181797164442245780087061733934267023455047596119612377432254001094514779772189380166919115821280722939872486706552960212665648790794486222344363006134678899386619127317982188270930530640017647062817792638317695060943947314783933377777548658427656050115238586562973516726772126206974080494511838102382737237602886407962255285655949355658336496830859854969120053565619700085156939355219512678600967207122447981713321738441361547022450416391174370245865175645150560762562854710908130117118331217283811735451931492732324089786040478922427081838715722130886152280491473151001091020385939140444626061561324341365717039227863001316230586943332272236531056596452068310514755375952388109632412022101242821513122970552037840933938876393592920091883210489272943257121866634431296684028744914130998928261224638086977295072629956993281341497638543500198342878338078084984943869268426755462545003842896375755861490029901988936384014726378859547471952253699503205622796629351347319269581922713162682871704703923024815949761630886528100356491026396858730105058923401796451879389516547996584385714632031114039907182479307600507396775824909232061760522099964712087735094780282910853990168423071745559881905711004946843742641554475218466823228670221165337369261408661003405968652857751144782585781819297772453102696639803557893830924228577919951816733825128137017907788988499604133276555793599803395805633717724840776560646167946289796185047417640674097177762762848970989675980049922631990073051856752881993204589825378680877844198116482216316367185322719693483028110431925576808757216048594891084381622228629207941462664198905887946577209399719875322967668049003523584179386034370339297044909814644144205247433739538034961410286277943083263453192589947936894469830912516370716087424744413955375039288651650776384775540992903156098500374710223598920370255108770046202383686051601909508186639924629807011673407121810602522182625614170161970254217523291338824352468246980374289337209075351994971451808349898576523321886918271894320571917119983736379571407060003460931656933348882468504141782627673554811134753813215788724984411193575370419500094736660363092315260348970182882621623072339482824613176350709242021897513209996866336025828457328195365044118667600800736639683479198895910531256194416553081322612477666301059901188309266210512881439032953565544851936954524302651650343243906334480721142554807055649387391049576794523881194219060146184875256285678365044981038378262014276258239862677330924537652913939167687038093008945463129018503663225912629961450022884251855531058980338823460852545554685977514046917867924811558846721251637024473150122502626158404602233098620997584530562185665890409668574988444626521712912461414650520672008275229522641935509591594489597103515911372287895003836225041803131903848863893126021336909685847105293808884872684836059783251317423933913737324183788126311581578178199917866263494043146089562633403989372420494127460931400979894135609925480544955882987898502285136365467020425150526394690667188385674257712296782456658308658225262828663884307259181564268029045931920043884434174840685353415330758272666189159276290903364815598086289129435927357167668335485643947624762033689303146913747283953336177640103394490636307074790419132215780993760140827150432379077952585453940784303139299157604188551237574992956027803608970949297634602882539836658499270027951712217930356675312845789304935569813504906024613509496779845624627684694507689067534573991315168999973597581184345439449505351521479212060753569592422596794160137445145740186240354421094304510785109998424233561134185802215604114457647307127793338997097527457957925840296718514975229027203298105057765538971331554878228661540573450209036715041742768927017589732335172089843374420077768311145229900381943804555132764624687099386987325297809986574758213322020905286939737016863530614010244169492784653160505955254735401106444434519019672848728285539937527659139682791721129131294776507609750094586406940512186839205743032854713489939105755295200016088840741051284973814488608238303954520014667344781852659448028210351488485817298538395858378511326631753415855568803772647690066495837842610136383367060114504512830837153650966682872995551418707167640253338071358753224204617639445984129729396611877951759806556558214189467004058279307453891085370150068248535457425304117125253359973538075887262469409479982693385070407043312942924983177058271746365694325887762353364496363798548167202240671164744839605059352388042535325689159159069885034341747323117456574405278862036192816472846788640269453550799921701030144163872404549642640787324991004200674811185076631439082621927805571695376007836554280910362834020929462976943850606242015721339611110873698515895687646304635575502502085139710761317395325090334673184665989136357125964544290938814766786054715431022629301172812775298081463157285127416089584457278243291078068361041334750123083672720957767535748217035888990460742324746450567370579052194541260163576510864114849225421555126487616674230984339634381914892556467319631319585590800149490480624672667723744431505630126495930150156829103900740145727952346754620117718911885475662467708473497209953994623390190253419888464159748956367436726077656121326979299611468442605585775927834840984018641423897082428695082773086252915625188723300571856223456675066669740053675028821176835044861500609363314207295674933385075298773749725622229792399109271860558804963999247640221005650548297730982900089973524144427982108007862964157897802844630083316133283149814011991702087466840257160069827546251279209768477926722414745663645869276152189130039921778965753682328640235161746833820344459524181601776149353790618035594378513323237396495457955607269508596187831208856967510412507136742148407781233948679246572893129523057098894009744602599771520753956198418353662629304178965863451743103025904963015188443983177146113898607782034894081690080578541500575945045564310540800658947011742017976990292376900761452565252453336272628090156636231867990671586569733946562268236334610884209482595744188895976535196900830853913871972143108502902222739856597271819043230546423996906580324917699907399530700725556221689050837109795622826023838553121124593839439273614890172269907411162639438798065067503939193818123444367304643501057656515401790183477440263807036057809489993086530634398267924653401753079408075826879238427433061550088285555890298944447966870688080251837771827573801917702063558172792283231339247300547936219485838074429807112282375860697269450646522923513775624851804659689434588847569625798329682407256768427667292277502937590828986961139668760992852839416025186439262220796009328397937322813581274935473127637181505902777276261166495742854636031788579049032400132095612034941094906605358142616842965881798261679502905809921198474810083937053704445291401413183889274668614730850281819055507368450316327605584187187072897564240996910524033910606122163391554924114439119081292831248647525364595004505522791206122368269688844048851755732124950005824582881226912099781108836137517413615669887423077962776853484315799287688446825046122083394019110764764021641526241967130181223383691873527427450373516744970230297798377866880728176144748794448650012078450201544778939956964693286689486362248994695696701273370334812401297894621666797106885046451295510401589246351641689023094298204706865384497021358566082032170936822010054559048100311747861814422507435299432880272008045387658653710014972775628818124819553174890763549272702538918157024816817220686518333456146804431123828651337682589673053886891597842161058063168206012816348594909884881406419632668868719219201702849324402850684557691257272757774036088311633031282488540871485730689801806469135052014771645409110272029559856276787057700142103314218232747374651752901640438608393747526185317505678341322653671177435859876383742333672990079718620533869260447336078250180703507466576167613031785783201506606309815291704440468635375706264921398474524741369463127081113631810324780269561827898154999783769237112097336676659558461887769679132985180886752377677698906207291660924168159766306171931175196457541809212565304054166737886265126674620948465508662599470725401313876517051880421922311514517521582389883451331515482866032538816992180925878563924669590528059204615203951084939402956435446701681643890633320085406890425322141156520218249745943802216830774199386423479322763392789304439155268295258923187682988141029665038285914643905832145982673618381847814519535898174864638155487766570964466073895696481053305425793890511745242592026486783272577226469804016225236130442217899606642985331974425528945665970247651963165421792884862450572493738430117627993410255192069110279927197560517842693287861921441475756057785102621203792015351542436583322820406008065328226727505946242310488557155494474549923519838494022667309326740115823759322717599758783980398993661107799678021337034867092807085273682692622266119707118742321310934232455690769825994220394892219151716153617314185192386853738302594824082562660991109573573051411822177491653572706455186844329162189824232298585219287805816358517125335112341115675593471811177412936960335826585206614040045650939514264315981202026658024050292601282709084405059286159923931918204855534555040100171128751012489537274487630956548342435389852429334281471521215792900501181642101666840010931133666026844129527721831869098706827234425572710618851581756514397907677752871199536744089530989852582018485781417935062502976203297785594673032902020518442573363237779853147685432311050288896489640523718027787571334463672055180143043552888444473868865715447073802181456904406049041530301236890541783460900237567733169364971522715240409480162878994425571362398022538531935525966011527840426021675325225746511037205791558998649435398571671950337115060624232426972450412872549020242515936094984671439855920569598638682040350857080010827364364459819786681405604846957161598929505109427418066623780572784207376438216251487298474990206900945128121242439043181400703736937651123911305431275520940072773316302769390835891116907937714097921455430761408314047440627579382546608399987030305180466322021781790803655228118543781668890039408947710875922638772914505721603975966010074313030267375628607070127136310409391241567544513457918688072842620866790132400124244598265766452968210843162647833319978749230358447833774041545178128405801425459424159533211141023465915416691110890118844617748655423551058665029621253434223545358157673547257834913501789006461397443460609227674634706554382798319403018563821328666946627663758220242521181840746125411102854940957813567589501412651409097937171655934064632717460797549069416605794324370075409381395180384824296422727928133398071523012726209470971790797868914174188732533958455206373553773651549806379141937464008648291713566311055781804007895728350346088327252301534611553827553580559459471748394372369229449721104825091323498075245776965274480123177897190230594549920361074550354659020974631068743207501401193315019302310642696974119886328367968180476109105075629482190211407564869367792071105153193391685663765505077625935399681116498268453103011800371490119447207527927425224335455951642340691419277884731012802737911556335763208090660233280074427143278318171098085211317508931842001165464905772611525288616587894354208223835171027904490601470843433428429993424572545877771305568844649186305204670976165174985312392917873805830748029574343904510481220077812196805855032786779694720460479806481665042059972811435780376012006898487389085426317099063433577484596185516325050469077980672800752651773800552251584299929155503601173701086781938469198773038906461805689780018740462036930949456185657867050162922815351676602484230872613966538653266061602027642469517311424667935518142778130923797665185341772692089837946922955695826365888563173407594569923338834670592264632107927573597786521723097635209399091541402470508212935139518732097119610637321956468408017865193144368382643363740379055690753029098348963819852166989337650539351472046519967678431979496493962680015912018619162734045663802523798899109613893340171941172552266781272291223759842498012521700230273076972306575648848202372705404040780815599252994718768610864545314873587192912773424126633896003168800087052126682324864117055450754583817992266331825823935148803859143590349530239519237273347707609702894471993531294095330612395423723825194717672950887245098246229836143689202843670113919274923404280280517150838406871802905331316268112736692464311664778458653682467540734565670090334984188573229337512251454998913352172947655474176043281743446599161898184638133968639479404835555785328888504636102163133227248701162398329380768349764904693064281459620748112666365446402394757638706153093645781167215142072699995351621116008342564659075706282155439588069037480308145932314126310212909324191218888438431807355052095620184840569242018095061866587087299080503018141448796902788482198454586659531941668799268764119828464703841926877823423958650647564820911569117000369369481847736820075219992931771287832764563723098120213747395534816057217294323293550489976481813724436014431671860899888786078697196803143679290591586521451667761743503204213644319365187859133702711569772802845069014831937719800078524375322929293671643162631749877217865238547189815505676411781041192932919573379505650043224419370631094157811997578783154901258902500628169612935263445112622640419110587869736357287791030595134333836616371807781140707136655006557270400075643774015376667196724707359892517995822455686945433068802805730755418326135173343633543196156305066633281167699334080717241459495111444374925910367661221620862772535074961069672217725053901752906854244664417656846911458864118470669410001118758272567860118397424214922829075977773742364703367537829470330913747172023800015663896648359609811723718949054956753645758195341712726885188919475430723706117619661455479401487739692376173744913517035214728092652102003928530113463272795843022444331029587611258422716416878710824247229834532315346897208876699764944685160643257229070745726133564275465406663223132673254538254223307093299066133287798189942212869595587511017975344682324457302654808789490309807872435222981962146535113658543236761329663353884932186233284328197216710829190302338279809505452236085278571821783971562825575766367142434220847770859195487755061933541561302951909163341068436211607357768929376728759171287907412753514982821176709323264321345432882834497409660563058263701736658574708093111803341950802984840610324871295693178515802852992376441260954837522366970515503696144729927454175030552086287478355924709852334362672972822653613729570351449399922772444772781500046261300752064745063841620631410504154612685217466359810670834674082449161354158959806427946377321067356162796896590225594800234894398147400289615818426659365571275931264334406008940675682270558705840493569131925524756998222732323912654798976335208731748844717018315987763108441220121549249459241550676065588076750102016115313772236499068664001899141270082939994354775241861938122251035583750542423684743449465716891342385988897154504874768857151824850822678330854099055614376105517855687112128133740718072947034373725226850660884233995067817997267497655611497920562209911451378390137516115351614871739607984133301950371162138674051570993110272702061031544762527584483729246330687394573151318927491118851546775242492926279169346409792340879994921315860285125150676687138030123134319566766018772392652477005191855352033894897233607224205227000995032711038328666025116292696663220101472417654855952198808964587238709175606593035675944745924088654999156824781540794150667820931447913626972274915595925429288873167774568124335273305912361624298966706734260192664213846907187060823671767278633344338381663015686156011197738273983574110296093993253526577459433193354860680203851055019880221885888097319091238697391650294511242321899042821073243665241904008503549639236669009050188117468850618930628860926412224641016539573760109460834921502368891814160571067777388496064749205693562978749829327118291765910331370089218122639533583116388769875920855037890744750749036164379258945784748392828773045651633033946320362279190386133502321466913011920181770152596196962741464930282437057316897384155847852446963811985642923803557533368314219154691936942935383369182615134219206469206294415070705773811665797527468364986971516959793229326587043946451956529518720835642186563496392938984899406811105336202740557271268233189354108308614004204592929904565938409887427795243719583888721280710588045221143722826153113711713397258273642375426764412441314895299914082637995643523020926413486776468234064593527085242502761192791355271940194333909580491722440283508491539276576919170057012044824368177536527579146480629393288641815456930454527769615437781789702465007583472489371410592363820663433293650635900423701903260467110033401964745275470848992758050262190855235514333786377639510964606532227004564272088633634306504238322214307703265101840393182815915507260305107822291671952888976187418561243761034365848434074389386155654293820006978603813817190923408970321726693516576947668386465900616138043019713754680404818516713683211621422318689285573361147089446117823430590300068821634344953405909730220768306907893699452127107152686959038852148445161873152889761268251928478737739792950492957019835346428230708920663568295343797472934196653922657981733835451932778739018625128352380012549532693125010085006561293641233471058408775301166019470168215497650880438104642737528624228844245782737439561512347223584286058309902188595145051848357339657780242628129203342892506646667915349661307070681179155883490934695166391262903148145457621188163369881834149690450182659093811177106616346347206562774124639329643168912776803435375463842966988409288490433549242470741811603606922706979663379736212887023686531544203487035738104602816546530003208622469015164485100716957960040914991949692911332953933602336263913311053810138019116959837315256361230903679418143659120435684598630863349253418775693968963753605726187460964992114436127228365289469854005621820694610988900388545987616058786630872223115607031613636832376792461618625159759453055598210515259117168439812311797224134293390714773793344139255937856385170742365791356863885820311418712313001644134657664821259138206525328916637539214333598373941534858703878284773996384004915776707549403055550687029631810557551578092319078545210006189159758191625363833689795005714031444447184823476444932731864509772611908559410196414917200502652092607952360031735716469487453822457668133306056472318664399627905010037691240735881553760510176697617351503290613938161647059257190349617922171581943976052763491361156268206780887962548827531796379438640203802102931141695833398549852347374290002411219718562668020812145880865630438410505883861830511217094654012985307370984209103117805477876512331617299276888339717902921108387563930348499834806077280638416698083539568233524202425997049191806903257972313999877644759368809529418067333287855304451870203472293645287423275454828416360773065103133058419570762610148868121719658214553352079848717748164263647757301371900753152587638226056397854338511736864791029217022629573978999520957747511475615182194773465760141748136058819575415797042020329876396710077886841299471445132434975617959672092688971128138270511901844077375908137141054860381549003907424166562140828786505764081755559128961319448454625636107927418027129553818292000175809605644951179048208958046305152186736559339691111995609367197194436286445166189544643959931102192982421272984964803300397805596631097415991765560078934365766997636752108883850245006170403440088795005606200093947622663628778222233632268310959034224416901463912618697182452185799700704785183550217509348066682013854735910176420429617718409818294195852340989225631000461702222506612124141284398036533021681668563992227911352260555198109606925433187465251875747555827575465506324574773561336862989621989754947819430387063709914890118864534225854469492548569853363507119202072576126490117392225060217875834313390727251471447095619860323750750460471622053313852080643182124305069837644438982782521199758688065044769244580042298972683462677805851133322678130117592849341492429060635804132365560233190955744736378100069797495824879812188325375675020441566538513294478792572359146306028816274204237631009185265607124722729505638990342467743408486695086532341836703669472852312279317928733629967368230714309001543276275362951825875066963308999906082255342480635426320399622960714331466135318454393878669048238934205759433875966447965181547815111499230781292522744277005239450212608104209073601830210422650356998608553970165563594586355530768470373043400672333376002076893832398747817080400516588688831265680855783794738814628827481199241940165001027909417013179928540645723175281997374951305927377133422300182707579797284904126911356282793160840183816886156843900164386799080092589242468636763061575631879337992342718269316180708378317706424096947734311887746236387648830752382744594698148513936900336178540497866135897597824498401193584410250134734837790537723626280642651341430253472779232725017358661593726206228821516120967008454883769199094155009384000524144630632266916774475664131344204327087924097166612365593048975906888254349690756392498821239082724823071426271842103067383941826926719597589893023284818589802294764490258101993463651330447228274956618754287285957791319733556973039952110803449814633377603971626071648176748457869982978769970560525772266113621748431049721505333294815568248343533736077134736594698600952701999605287695430884275521455842967259372651146490210569953263683961481059628440626372336870185076855680817411279572317222773599534428879236239954375499417724747748156728734257040780759468349047461374652924052185371842055497883890894606386395857339655722230914131489160190076488871605201653780124338282017110881369099894428783686019948694210070447155453243942934120187570870915852557530733545229799572726658573948146616438351341404196917380856586363277511436428425286010087739490237312891188736310803707468757903202466311354184024346126610635759951452109595358278191296255113410638580356521662662254730841488750273047651348906596020448303188615692086614275817058378967709026542400616963560671185514417018126435773371693945304936952978053378786608838193175292503950448695107763462304776864774629986632476452789706628995746061702998396248587122030849183941904191836079046574616009095294480680155011701387989461584481591035529545495807947303743204632796797258408912574094551566608112987821147960483776938967527157744894926445371048488986015031876675643759228173136128931029972269500735573074484644238456017815413611311691011229074258756386182191506313577225243478036753733669743354791553970545650156758368579505116798696971696134342583362696282065215572713758049798229541943878734399908447621851483497475344890589418815346174654754657248819244660172785957120928623674050831820042433786717519755102390677869193561597258160957566453727580621452538686584515513343432497357114236817012295758909793650447418590135966131009903563980013690527966305642703903476839437626496552424135663455739656330647467747731705956436178452717521558320321824550280873269942134075369106976246827251553109861802696673005696573318885468695552615317921261554682652098899489171107153889602986801284430854781415657325874961922436871082906819732722945316765297710656338080207997907480422581807758469781604418550584993402100422399145242496047022412924199919317878351768794122914641118228408780947086227911502097301445901042831184147928610472052240921998025024844706772160829768836607562738932781507752131894341985869675309276141119674346898753375887682944606168918438923137140985990986904341345109692439583919566914065136702550858525621365977209153360787389320193865284670047065068850210494799369285916302640467381762497760549173637939245502879747838266249723997653629433599359706970076999298122338653730407451828942149640191483964130155505731076365740836415494394599930850050123321448726126045038127192471934888408931083301132682875406063561102316977499937301660994108063747644823492807379696603797994168951139913705249494249854625812120275353493269212919028800194093457723448854804855879578040895634373382025509026452338816491390302352885796758601517819356172634649925735253326354342487169025462151547650160695546534014938649434001056290317216988672711239751092167780382948086799683402670801917044156202146492748634077399200405819240229530648091779837221737447765021462099167549910166429169279192350302351589882670291060764014595164174804132976455944704027660056762207339090503650413674263999773807811528874383782645098228119211174227411679778745927933782245222262837856471749969245221519420785769812714606198519762491425861349942024267301325938129650284499600392797774817912965985347290913495213974917006514036368390539859721754200679854276210104403219239851522640763534758745281980748708917051498586455530765661935982861915240312932385275376257224475439600411617266024947340767388100109633017843007038682832584669976146437348367395183776610496727387288878503829159766900534018726219133247459284522485608742428725308889089239659677854077540280131090037022884677675707768025059892809993364130770779413596082048350370801562972247268355815544404770708659438814879280483251936801305494636590390353591621202110154392458950632202048313419395565709721014448053164380066804017292603511005549104840144889406449459488674225000830444896461570258180123720637064392520572145340932791066019059172764682869088376147826543887771921468562257109354357792634992938512358109102879716440960437775996899819601440478475436928502271891269386760433244049819348896516532227156964914761337943269692308384694693993179539474092081110349268439856210115827430784923761073927026761003426646571812780711244911535289551904127974038151962784893648548751195253445822373622952578844672060795425729754780865013522083453823416756968868565032867292259821918013042424811345816354820897541704109665701581197815053411134237049534149210571103072916715528767108106028815577126409316334297868948745814477683577947885814773812349706229634502549955611678595917926954044205274772926554173856078381217508935603340039014311831650700624340555454100736646425871082803889131221323264789218531560337935085059634765216236977509388215118459151272320357337318928356687005944189486574713960909378334032231146446539700422286184598558548662955784941196874053341235049124155489278271286974079671865593085428159660920048704801006790577865802594676168942047326294576598806527239161954750010629895004539922449833287554712270797418162498916403354612358287993618714335384407583030259997229456217223785946064110917839557842463862349597148642754218932442634383774227218810186666727204097244123466604440545517182112323743014094518185444841339730813242704571469197754430206970008217889418659447184653469611168844599869721765958760202093652700033981524959203214069989448501007334422645556037147924527826114937723216575838183897879266373624748011325476094723564498019175924360096099395497749385292935095014426563909852531531420747878469793749474161958283261118580262872329906608703366221651422614226543044930046957671722200955770349641611066151246770438660637742969186497991368785290532948245489026016556336713302517506253669841641790007159723676102283842732595024929440334544286230236848925833968462200380520290956846143696654772175019338178823769293858938263546785947430826735261797302393815814198223293335691057061518790008422253078398437055355351346817226583500587690374932125289507477591348155413239467267133301567768771230644605440825406589233671484406244161780007549780560753503882861432733005953225266964639578148760026532293213074679148588383513593397580308839701884959301595873172675044526659609071864138428167724921521844832418854851178422195979552284337647982669797723044274003138794315996768648078158342131206420881012534979805491916794933760324934848765753536768148446972254896154128103959734972634566373132264504809400548108103813113519930342472781951116328116198903260477889585791120679061474892578862782029332211762929415581902271680708719534961463316125470755654465146541056147508806331981154802113648820727758822435463476398452049170427926019564769584020670444300299895791796982077722951665883017989877352181421301896530004391209616235618190472083851390891405809917007042829738643855034623190490890834876058374764132381428697685021129196208927451799559339381935673212587396497698137236570414090620035917686022232161193870132232941455624044949938700794948423700994006491462586742447488283664350606587762375306045961734437526408068396608120031398348023860448646293126119569803132156828660034551673658672555956460508961817140659875352203475476242168231289804642545687038264604185811201624193567018334226365955117248884277678914197971544640795696337476458701771156809673725185699247833524303667336244114892998127100000748497254355944905618869860799544263259405270700456865943867606745964028598825910694585951286784179055361712239644165212555841637160468699449835437838126923077133125365107841773481694497238507525395430048977331257173895440360137726788875995748985194241794469212381327153554777782378987290500951172773119729057634484607371891206747270289302301798801511207871796417490207231229173778257174219550793472904664642583898823896642984708138276311389712172093268782780187725971182977601656964134831363890383290041871963521665468230611913555358971420778387706898834341475292365553228117149636535734147513659415018614992050250144173360657706548230795497886996132413258349287302477245107553924660536086195813887106693742663563376688518161057726758198036250265515992818840160850594054924137630651920287496805966875227238297104233242225505938140291201595806783738906479066103818188960655370571348583362732848323396076946622808710851783794382083816790593274176272402251960874360732275966853550233912973008284223659493186133918889284860864816637354338525714784950149850316122863116155492697204602520638905872616297737229971439043388600052365276354627554586505375199770083562673349142368718461538411477162820264857223194654679817553271989514332124791913829611451078439640373028096508812450041604787122126047611625524874944197224155193870396001764492815001710339134294627911283904885106612840892932880468646323515457689298016241363999632526398196810913210005184118165394757332440489829307817410664499263615436200974807310058328852360000901481384693164531141512357807334025354830033644310822454867572180807043273427127866542213269521917213388998336428412272790897405105707715126599855055546190537170316000325446195978395782795737725741812549150048653265674973149416938684538611040702797016872269633069073791299842179006077115832172924602506501683209980721865732435206702265286785025451726625287607253973521799999907112975944811772511303260733530065890975189502976354909489714608882348749209561663649244383429673549860196784881665961507894452106352040383094390342343075407402673557298449256786587749551202903753225244740789143361381210225010198053614273946371346410572754018127347661361978131565406057151404068148038953142135320801185741381683957626974841536201838915631726416908736276723613928974906717597009666309954705636425193023269263732321773888663005711691605764511849999064970384951920545042832639093172104933340130205226616021591715286435674725046157406241264218284852819112892640942065399969554711416557781661911936929888075672780356351351551961004329606431557371691375265343351041389773431777078031495134832188958238199501356428439817201741824422581278987269735029577813712339544534970955632767050533414103018637642224709493223386317524709702428187033705379770716224698893600424596826738737178528639856222296255318254266079262012753545615955157444371170432711724405087986312716759869302097312761544890671140648245672778457168210420931086613238008172977442488025556268966036993443303583314626154202416495325769773764018399556418163056905216047791901936942065338034068830142036176927583043412639152518298710553718755914786752644786243556247211307377752198157338710934549189447172865399583054762631903954415994929125255323330082742171802895704772843046333456959799801238838165318504466002683035211320634862735003958070568529974159816158726946226705961945238823070626646325451086749648826552797525012227764926710882331347999658185952202814782993658600981104313643289520402942599120443349840747961159857719782590817955931120814817160865982970742130995081648588216411338240322641041547701134106982057452845722393720705559774423731441285295605107047264287615443615041569814214904881823375429762814526984279836243069313032085157502440044210364008809374748542553735404289249160390139253462192112996803120773219173272525400447751148431503672759966357246252677014382671526767638002570654845081054223298510229086713595742189325593107831144449119161425858113161928714317029205970936826123244504277816150586180700459304511213670521952402075187599598205405888331577256898317966326117834310826100963627345069142911243938104935986366627550907837053464781793783294137806612410506864390544738832236096884738924699412828881920476986329795800553689926165629666464579986907913463643102041036780097022423204069128557012299449635204823792760089392342470874922137268469208654928598567734942069085265400800852362135201057002700232704536259116182585958569580169057532310188567551424583774736017322300778699303678221885017212466176475398406870180394439993482085525139527271093098367888040669389450742197228857158571218892237908478002816217350632822688683619229460572084369995853183462132755892920501330671333460103513852320750460294917953226493227906862937955525813158297772859950299408336958818878365213482076888387835960745267186151638027635441047241527803422911625241081060618588865430048691294691236248997966108396553649961270803247357795845228675992384295105997485982554337087546972054255173556661938507692573090575517909515668782807035563672275860162590190336159842712902720254471760207149250284496654773625788925941241749361178021096972150857267136173112859816073828642510769388750299798689302454779158318721956493314448965250754931733916413568408764907402968836134269908077487673369900579139460444552581891812990455809347807627936565168693598171217086878117022740832829337158133718028707463220918934834938223247464902277308423964411998440869885105126495874170134874144618861017605070944633783267457209409462174697173734338869651451944051510316185493376235993370606972780407592658962603124809116321886013196153437908047084003974050896756903134045513922957421445800836238969336638575114652008079951422829693886873051873698593264183990528007951758363839958327376770355785397875187209508403928525141491581246124651770465917006922108203654520575810875198125447530544499279623465574385224910490011420384811615017585916727851669055047243273987156839668049535708262357518269094465122740669205549323508794476615066567551271125954081527244802135157705986244558025838685049468870934338027080407864695162641478382849115326482861519636979339364875856362385349689864481243763779939060959121754111927714231630902200011220101941258112755865215833559605285683183379953463418403815203997802103269692295748659772627995390440776087020550366827214060929449051150337507382789727122524037036751687162654158456412741618847215075645348269457646557204103828155824157465734548275498647201176408720369094288098866465929723141327772611678292352385988344863943332509253102017542359455942397763601018178530177787905277388401042481751230089277700542320221723452148280706616139017678446613959656275005776817819382721856194764063974414620120430589029941386324897444056256265145470317204971225767127325180519564931174338373765705529220890877136922739407428491431795267732359006625430155048654956200564117829288154377497274711371174409835771202991601940616915490702599611124656180090917981088074724163718774483166594796012668560207106823906672111552156820632384875736388979433746117021764869205262144127047455677409141231574716349075832357583429599365677344888159932517116180482784946618126144176296915285494397788806004496753487495846794421552730450490320182242832218494387894004254352130957360409339134456942421804096437599005910402177301210347879292325120726680447488339689726712364592658934993219378924771281461855311459035606300718646659300393957689558179487631292989971910492913351504653128292090907577831026220962709570233730176773463704751775777157477952575358362314547479424533971667400175918313868394405325364435341536576473190376486118171762701202826440387800469935866063134141927114015025203031830711887000660366824923203149376797583058424222578733705655090798814517501418492916214518530961177712907939265013943727671252640967482414513223694593648195859578217507294639151820529501263619836528264263723539118868896710013034423258993410748420845895202864325598323341825619038392539376394198321428848060296571692790586944888785584893434341795567485655315454815175201953135120341857762171465542519274421079387036313459228076559194294908208862729480038193716902542863069792916433581181414689410386123872067812118718665742789383730659963341390949204622854408850244201752963145203688033015840269428541262875364529900235238321154702184559048626999140682612975069552879362851936949882820282938340689187228332351158541655781620517309382040200756723344378255142055382330604368411504486329079575689530122102463470589464023414149458805539762504374535418136828020085964594100323546208915238510218781464523279113574821272864085246794523723589681310320448938796450828897213464014397571738208855070457375074297654491996401886404305494815742073458779926570779976112387947501341096903656705949701596232661193526493759876301124542486897631312693558454862742830816241567523528252470423926143315419149515439870802337866561913479571379381070609452286076056866924196386632956433043047867252513116274869785147547306744087076221219185902727634122641200675718388739115360598165416637068054490311934830500794226059201043607246385436671903962233559209822148267941693416729601909472110687768633334767231367223068457373829824883575105838091618784163001485490197878435387635000281859408010357437870669302891491516568004874946486379187401578457280068313073621915227557831968092849531760404458244815221229442939032369848127528950676482331232989837089849613096662287803246224207905001790877806802916945245997904821270950262462920766672568265205802467846100627620953441837028221733174407831607135227481100769417426342718287568574355394548224926603431672575186459584510880161597474084313468372091772845952308992772045553946320792656355302570910374580112079537072903669877985275352788240672710214656092728011124403154102862325372719477019972190652049438166903894195916300978443102879622030675212681271593089859164315846374752036005958811331069910790147223599985726464418513308926696232203993017009950900780812666461495906991654511982278964566551794478451970889072814503244298906585983758026946167673575257301605847494306011929065081963751803082825633511816673793206186505595093382671654179385452201899766832511694310227416539596639314650793176052281994919236936639669418600240393669658958868928772386317093462454080670659525614032778008489623757541605665056269260789192261753807400375127303396026421926217169242905292220789958985562081718760830150760300108992725908109011671555063694696870820961868087531991943786609243467297803691358112641034789294837222523490853878648321668052109420948027451140702554178894048954315772346957386773238333198162737786619982779035360113287659534345316627891242373740801686962010457315248629991650397914963693717509868830309077703653288520113559368620605309606793780855194747217946330433899695469863648704473135469976600327224112206743002347602620319208812243294666730127159418244456449144977247413329546788192130630438452220561360338190647311495821686545472340184473522654926296941960925520550983222718682938080702121898777455731131371361970172896328706681005456802545463165996992382743800409461209334476816525557405989325595080883815995149549001569720901029790168365367990517866235982938336217123956162267371161347892542314134357071757217133065949928071766591579436742980695242797818926799516314580129321450157176441812649460381410822092967286447890220037152215255947069134335005762031045912780941129463247374947826410059453085382116049703071087645134395011707278861697048751163741863373207109575360977911491961584869366916552939228495009412284441585914247951808745284049719600007385911421107597526453475894490000886867264497677142245391778698192914747532099117055100698885494326268671914257098131843448191314336600986315884987352624023147030917586345245168910105634122326200046865562646312701964624038257682593525725486232307623342967852224699028217734042758353999011386021634480837016459133898412583741165189627431068040471431605531310865163323632352773045620747920931051311700507248337441326899851346533456592062607065130303748061867385485185150348796194133404230247809284498772615693014163796920810739940763693436562687382524673660514189047695975141683400506921901557170202027391624022389662612776056840903388006610420241467352003526371463481649175384619346772151782700671530836205110380729606431825084220004595866927418800840919942327961111385541686212825686263871893554826006647532702626012409592007745496426551004115534586753061007889825944061813879340295425778955348629633506788519352246044919453660268799325291958381670772872804606209301435549469186403588964040424818537297925757211823888252806948438610266440139312180380814611743810632306054547658498112614534767210101293591911121959001546035610081138764338757141865850799556264981900851936615164933025995874771734297205709469873531129343564534215079708425812488646018733486667285494003259440509405897234680229810603253791476326068777615670837584545821582073264083958955120845146551378044053931610024648212489059266975629981558080007937790412601547619579694778299737796511685571758191623478775214126079172488366871306627722999238321077731257543499678739593032790980398130736618948375874460377422376656190273307149730328027645745067370627534180073920161631153068900521345436753537107985605623992130625116883218971474831387137561304112520372906555570321714100509583033604709018092534319291146058035574434828170820047312442468468774802797183096248967598909436914305064767778478036976462176926003094760679300918819329433758657304560294123310525686169867304425602386281323500938623390513865292739587821223320209445720078991965125049383183062297855743585876241787743233562138433039576658844540536899133291101333480904155740421149918900171094418411311346796291871729497742090189154007758286585714038647257587669659181998701437433140762135913175551537403221298859906592123958854230633422861746546230855499064525537828280754912723264992458663486198303631308271592484385495714002126390709145024036396627257962738675811380448264665526444753950491865208582527063817351763540518395875117718187952088932609809379861329888806962017034603323186100010236775455513189605865901227996888043987558901029715091283943621579902022742540135314935946049366777065961681520484486203038891655214251311722178627978848532798722470816944259462794222387313853819231711741685569618739670831543115319728023767535904925654988058695636616002211169893605069192097031676567313984945053838826732489294772790041692569566979103422598756071695003005174270979629238452176427661732786752388340708376453664131871119372466873953559771492385971307207416644022140966102953167953694774795709828822445390750982239321916547797221214243037906889271794132922869438473412494299317752320516052996477620718526268957409605796527109282099009695242893145099033436054574500557487110396285096659022643147112689107837736530033707773928527642750675432978274509358706284106346048379810121296441189408461592700354670709727975704482822200046241784685730932432547768754657134651640110587725356201653163857266885545337605470813888372563288702778291809472403904456617876865572693029392167719180830907119506096765215416942263613143098127453049255155758708764079708020049069188553184811337488229414459324902493598988456205362518238808614333992555896490280875267541598101571914515869108288057094912839159711757857829053264934547814512733200071503097719554559802951861882190014486587064913012354834203355043931186333068671223146211588286190401914857120731630560354417657951176425073017193238160965023414662661234824821165548901076159356132499407804169349789354319502113096961565539260652545352070095226659371709168526467233893380629396525063977008585884105039146568755951793824453776471112603216343259251833328295485829067890109141829812249644003890986722391822954491168796048787375023400898011892840096900256219423724194345747347916109752218591735573805495662780093734202323089266892767608257841584853894412466094448492400091328801318034909024567949975595561340275654881861339569787965485945340263749181331995420411915736472672981655948196833579460508825088257325836433292902170656363981594938429352852060072760162796673077632019907966448667860810520183797520036809316663512385504603021488631045095123506034441848209902739225906854398767196364266179259208244013077273253749697034064961928081152178856217646028702702193977299753065155143744882349391555119006301111321729796472107207620675905499259539571909426994415812659061642448026930568667480642942764792952492301986562517167926421645148202212339848594632275517498552086729541405163977012075880310134599326004667716704576336374033739444495984001756887088225192437703384304193782418456604784935912811076668354675315764112130539216421070259268911323477785554881124495614004618149993474538838251943389360520495323475159550173696061633968918479759414093861849725013308444401205163979227897991547560630591474373165340416239576767270089074235251602919661855238037534311317011402746723611164874704715595887151689147409761597196950028995773760642972544609229971962288109765560294929938257575221447417056283038969546924788174110752704635890597626310595991034144713453955199144487884263752163178616077348211738984540339911424698707984404939289961345749773209880422502601865142090471966424117649368125195384386683832950698535678454716392951744814297532477338420020309978729117164245070803623247656546271267439053497649063106486901740058732191573072153254416642070368675905988403407092165947805863697019180995381419949189174557236598874305654062673709119793848878852052049409612082398816157621668447879115149695156645934220985726439041056839149583811199314393180758106302538097547398057737681697180521037087387601461886948227058197475480207892280567563399390480801038953230477289199176417878467828953697472979123947663857241729361877776615227778995928826660297465104206768064328012262092444646182512272613050139005192626652658869689282116859713540258276918807256110912170564302352333776599345398341120359578226027637736431715034158992528341436293497295635652095399462513821492931465491462909576696981041894592130159408443777094419467201674260584701830443372358007688742965265094430047372425063527319690913180117098798262689574446912826438453452764665203819278609217578962219445109486289826237453384726168419324298844994573644879368989616996610276503725914380029063964885369306341421244538978698489393302883917433231132936023107441071086086695070728250184194218409298765420917873955027942354154429344858374841313251726035824826318325784986311521435332159504905873030055170529879555480333862181891310725225048824605649523064614846232950907339183371716031369791761050148909434112983376524679125543145487333901161419041346583813677282228607076166022455539143138827176963433112261074549508179805090054991003567430278155540049987791752782021092318857986532976847049228110204179982926614982290575940375594531216398281230347361362499235153496758132051711502071919157275581844926155295792880602725690774343429301115284168290421103917200953746609377540665322994523378427845484943687535733060207997159686849430208081304780598864423090374826317724435423167610984881211283285671636880298540139442148184374206124568769074758182713137621384841276008642404850124759159661015361293354776258847588348682709750269750062644360797266859023457071968123279953531350920235775853271316894154944685494937448706181103228368713342214892370256085689350290233592912156710940278301289563646495977055465610718712309978115394338644871077542623210770685869020756039202708303456332230961960298747987830157957502366620586576638681747232141534980424935260765704055075187766605167393084363859195434012843084510726994767083307982379737800812005797557307404814345927632364810752990224134285701490361335050523597430664019830608060969808125010524838642724771994980036369265780483802453087267846554968577660823839357634952487392531361971003794776515894049899686559130507109254123128419530874933367093765458775903794693100598124770904071794956980928288063318905892249370916212811988618460090258507695428214906017590350749057576121713278271148949028403672991780348454933160141820974276574334203158240311350672358090718999931287474134190381645002738620740028078788565616994526982200958000749529998772504578164391790963366570511984450440058074393336905135080786804576300355473835177566901374652092314850291622163849328578897824974696744317178896180743795431013076301365490386329186621614962431068758537173716443523257641861643455134485698487169402226003158518397719038905672540570139659095071972302134663270258388835615248205114190396337167744033721257999016580553299416755263670061090962650424811314812705084959459174357304701166747188889949638632365774572673892211419619440947363543890161696825536102873074303634482976320311177642084596294087918741624377473204114686493806729845342630233246906773505908429566510567105962643231765434628071139577370532892429495065934364800830005019005209203532058522966326825063788945825861755877385904285201507010798932780938126381669983133252810918083621527416797001457780581525208110298094615521939189853347437593257336119326648464530116588700779551886166600229119861290828153968272906641555251018814769248876821820337273874889565948803985024606148507866863854955677689178915500395030304918769859622019682989934792816348618927265632579941734496271467620185949857347701336146196224275463046162705802632416144114557576869766657573848025472779760985282076893581169400097367040514394008325874166193460655412249716086138176684379004805470863156926957364583308797446734917189706308470786158517534565952891359395697865293259437886489295613657718516354332358175741596738949950162214756036927693619455000570785621336332654705379307187600961164965905982603138127259870910769578019419498518122438243214486090866468867705673546588899288723482379933468314093468731517999649656946937797209815223660088912904927112999523366221681357784681485063258135927030756082027953949409746282414142113713134209210710073990700727374209122590724796972068246306246176222400693648015298594254142589303683889884305735401742973541155560659427149017900311209965477585668421741328539345984116587182351257844651926196439863725077939673754284289205488916312825401787466250070051686209098013736915335162081601511706978591536423232399877219649991871702738392916140227976976780079271281674135122930039053714982901127808779870822232149906482155560967670760548924936874882285687217947571584418930207252951807061293103766107031394694418586350980351885451240235227091781550997715127599471245380452856176966295555327314415949022319936711648151412110380144603776767503024701073872011632525191445278603329219201693839403279838828398681028256661665532090367246072809171027761389901680399652348183972364754339198360515229231868955511968746203720893631603989717428725349453818800833223804110147220721533504063282826323060101055802398833563139828298942104125852325479700059126401570443499968160367044769352657370603923665170656686937588865000759112232108918324573007696860200831668030792442051566198683469003080838443764894633363499264385946298358310262920711808112911663102972622582945627831639342821004655884936693520556962726029822664725977325064016237094962469332030846936426414664069943641729905212754200758039250641368607982076151462243307659064228712641966660458603390840256447055169295034556550526202737177646348149849042037276790961177695293372517023835295413510771480661816897195557406530952214692331715740401867007081915338962533634743944394476303959133357955093294339662515246742585448482853228207284271370822818284233322463621104696019098984476312530725266955324503020461878042111189216003453286100645586387678501752092154514694864594009234184977915951377658266503386153377671461715645630126887639959698329131309234448631877062539121497893118141871280592315954289157866931192462811175330395423572258822329773937291385977584803830857850841933443793997139819599979452843682955998144045077560856056090821478077586588544346982069279623136489974125662337580155551329721184299470880172086455877322618878316120303954386708132226989142216315010464048289553720713086044273708312338384715997837859208333182864888433203811477176451173377471860377623843502984780891745974967963267717204610225701305125028023652158280773460605204771784966436764266783073420942313171745955185014936260767079510354563181478290135831984907498745023883279691646006173917756288946641345736118259397075954279119207430503995932725201948408662589736569149036056071999696046514950154444597868805919818628701533154177917148052979130233888756113688150821844515777859278671361144994878619171903490653773935126763305781113632772807380148340187952404055999337250698430811629908800942105633672726713869312543572377778789286502193999344259319015957980867606119440795147886767016735506180221506610681006846974232909593426720630454352004603591086617457580296292701952981579823055080232049472320344098429688075300933429859981762984661603633716118602332314679967267295211354889416067796186783195249944480164038063458306907425346567394623031705096989851605978528902363345569659466621998183101874240113086425454384947505561339310621260822310955761572357600081531361648631112093706754543328043731758677938519069441212654037617172023936180446674686177036138152697244577949827634726231618932686512334972379500000573900802248331975194687576194183192968045298033069435661788523173644485029570706890444532134213496937582926604942378742498995836794330227053410329305926442695330951598887799645676405135931228476188010074786584086444203730847867526255139293785915114694394229250292417540712245790741168978492600629731306120028885327942386506877160962674014751907228764614632083400931964407887347485242515229666202757186906898785831845247307294219158470816140952100463341874203763793559148267287326702475900089620911486154172284945395416933623185608577796311700283286234620487142418658651858719715385977985119835356425013999677300344433871336014588598824062896179004428408431209346468454420980529596243138941410593145695442551058764268723431188154692151721347118443657055257081475756136532367645810562741098721411222329970391597322449332706294670758376429982973118761311750915546075447992907146597624329848954135148996846158410081398799505421185308018139682910987641750405477002332989098073215334539400509979161518657818559333998239371831412598926453366692336615985559704294306053495245693275882702342881467901555602753350142138316767856410567044049048894784879584756213101448142467275343481915621539672453917052297486956219043017586045674275599029479174114411647790075859238251547774712396164772563525051260844733379339033835219992683799379383171641945972460214084026986007308679439408213643572952892798897313356301649348166506272503165435367313872488403449952174402991771304091437154280296003724513176415684052795563512152045194263252777374169013894455289078240547087551938260404511714504736260405620612255681219285984445226214546412088043437516751957433928356258225123857366762570933124203387255959846421538090744735886409917688425382242905929064197705263021750433304531953905567558075926650458655999476765987150752040938768304724000213873624004644203585332010389076798136979857396882034759428968879559044596174315098310092453620826959461010703639797970955634701153505993647829031409561010434614128028444487464700551009782750450669082706264948176868300564651292360974032967108109114939668144147448248511854842671728178955886753747262810709007882378126416393563597747001926105843737588623678319500724092924676377389707838795634028360050776584677056613794120923589045327921704117001292214418863973800764917852522143459393409373507588305619963956022566369753861305540610041789526433239689068181066362775143731882378348090022135012171189205328579067481091428199228434926754662179221505687338855535829882795163505874562219438273656093368643597181091586899189052694056069697832397620729290812017719980112919478758118694785953210807801825666715822830880451853378050657494106939814129265737396019078578554973099075999180475857112437178175910599038764741358937823123560407272253661264015503213533091591967795075987857104180044922430214644549707545691390561939852919233244289737952371640859318779440462432407179926956784048053182851467694437216123624461679040812366150826947908536596752309810675715806547865679472207093370383236635754430651444913099669443646276121668293830634492845016133844693679844386203433735797776340887212769195615261283205696448407470141188999097383275040580219453373958099428917827246230716474185271111047823726805823818242396050425640673869203382113975645640791062166514843239408825668102184091429257697799679447979834296185685819249378805979501302982093469686381710966878460510043852580409599241051964869196836420792361620633196904081666717551597460398873737255997967619298859078420123170217702521767472239154902038027888722662223610386005912190018451832656785562593559364081674854452378910706230933629917073649747043239349321698740972145255168046503834296653902964398130462753541095547821996310635001367517177349409044213365636139101357538918849549595327768994462493827905042451418550156441489377296182316565519018759844331136921085138238962582027203351281611338040360482698204159551434531872519405558663195486580360490865017381942284804437991165670597339361254574742261411197383682867395009995448356320326092681837222027173549799309195028800846515444533351923096701500645922545533964902582934198013165933507151709157954994899452094106592830530655046065035145864586749347425989178476145155310559035714983187121090995889136129673234746694932370411725175049412827100200545259164204786275636115789840509845923840597276860999405184707546941427296647751979607366882950769015069583323755697881257831701047930879149206493976539041707609741333997809696867093972874108997184036706070747294536482718085493867097718400665913250305506626255409374761487162424576012826235143655277348465917090980534305640301056874803274275898013071944369141386018928662928686860019155393873078415077017090257430964248387373172515988799981945488650483430560769075844201611325499336138235874819471104138453391588554884039546476037034559788114291545500636002244702645793765353767775305998294085687168334968544542476316884007018291717895300866657251537556411016083677575873027925581090946616838171058903200531809558158412516992042680722463544509122563124883993141975461910079709847648025877605594581866035728234186346209387001349243125237527258469199803770455933662682613799464189692976834209736955002495125249098605427124684946064497130950647512252995561133802019264002779212991392924088605763007393470781400667878248181292394268839428470522197762914726519423984764237254405092242988876140899857917899154668394966687263549269044189087268819031114452193652184469790181863940767766247603631228600815490304086792553394664821006427832106942254128678429231771173340064038897290640242288672489153230764721817123217714646228753031984942038716132221294227410027577666049109190998634160341685431661917792477429815162253726062415717344474798259508399521261486713715049995304466237937191055383070055630071529750696481393502183915631694698663637472218309475746024273733223654690044371874265025128299548472023948051347524851406925315459467934858697224380369641606912257326811467444631087283212978348076088116951994545835934915960319301163279680237730630182811440255256630896705976568526523026217170784632141342985020679369828416297760476057768407043390270624217569539488128302405465160804084110446823639355924855685824188835262128432855828719915939114103913171080579156395431194723103080064984367318858250850661974106032871954826680334014804368629324434345217234171973777552551336802986483029164886918454885777907973516795586560021097298294319486334725241555996837481566087373913871126441672579789367391688208186256933388515582728594808686475070434277307310894733827711977938156294299573116039834697360946680013468556631901505446845080009872410548509600030402441479109199681566660189191462908767519531359957282340166127074490429478605320721127020842960192958621348245550765811963733693544797461130625172971973306994427970316254513977839172719668847502363982901712915464670066605941512657918426324028053924497971267090999423302881330767143713897000010814748356174830744693138093134398039673186520116890612254244131668065227294478402835301555975718653024954521189864451476063778693993865835523486287803238097954439200088833326215435007852507915936538146459488401029868751923129726902166183139732638096486480695848863230600030508629565184275334290943461319309217634821195466813758797408563295193161335745922620739754408457051314276946613529524000737016165960459811521729604303168129635597962986785428574729883601531464590573153095546377545216577302766125536660652539786394028278957654914306471612189791956233899139288668653198751578136653738093704451537640835356557026457521442743044722241533636265360219076497662468548607969004850043315281602345165794940767712352454513536170902032782929640688697791067109759367710473288010817518734012455325111430042971359503015501048981826423177704380089731960762210913586566266819318284933020579849083477394524952297423691078489756878215470017216051411610375057918018537144425548558728783173884598816710452627055416691428613472794922731858634201001340796115745113590638606274029537308049145894444098185805124038806675184458547935403061278869256747962023644915031343459146731994594024470743352580579897730558238610156923316012405704935493862307436944503711230840827256487316229915470435903052307767035443609512161349012108397321679281632395731323619386006602126299921212990773063363801509003446933558377477797866823644256807760789671864517250684499282806825402975912055622212768125501348878252169588134320611393274297361137286833904978568072228281936146870699269497290206386044534761533556020858407404066490113584966681724301567827932007491365793348443228597086481029845129254225137294296492978193287357807511379061334774803302041442321826421247378019570985894635952169774020671126174189204630983825614620938616779571300728901895870547870710959253924789988079040002812227216758887345134580002101185998795947302196766257418219925632187885313272429256907696542464219451642927460589784233769674963320329950801255825976984588915722461495903762396576768839444955678307228950727465582182807224355644476126863532435389541888196908161501330878624177416886533773494383840146253835886805370067699987792153094214960007013041196509195199451113454517098895807428789597986880321651356666280264418717260507013570158086361941238969996039046472253594195335860848602202010533797619789205975633499227914800909111508789747891535694512278881316054763445686300704731321900242563988796560945306564900674786875367036375126409466470520729387333985154636848258940177385930377499988998085614453970541806093503368790063686601257209705238774150118743515686301484729619532208820453169225602518890834994921991720212797701857356689439621470871440555039412303804831668262404611491668431137285112818410737160736208542411463716912974454564440407728964291806004177844266237000764159641892958552329347791176339154515766378644572834465830521820274363829510572380946768100904375817681421624673804400908854326217121121231667653710809186329239647021361057403312974365308569370457889914159196665072454567436192952105040215225706133472956502991611110202455267218717575644871018921791383911972837355616088292057195244321278375280435308574579446454514581535973480843370178002521149592280753680194357968932846809481107003972503004465504958965978110929961892729828224235667677751419759430492478619520332761769990735811677918936007176071079148622208872932511072925232575324115110155415413218811512978662797399878567408760553720026781645032249425996534831149018351909279575827190550695615335523444801993542406722648852724564525948670633868801051215672448875032736719980899391252869762038117070866728569560390565248225399026351486636265248453826907151256995439757575094851431264863116748744878834453211815874026413246620735969673435994948975028458889848058711123809886839076853267979925321900336028349933195897877542418705246645813228288092838773135714974870939835838376702597597023227993990049182926216796606218784842447566334987307012696056860990250052046597315096062391391452957300515571718039114692463009270467583048131271449543095841426347918955581777457257995111844444326679854520667592381279158603148623799532812792000804432685705619658990912505825892653281963991551142274434357727986089451231406333080535041795396287630147987956582147234964961240478124037858892098662633627593599100829722502836029971356520607905700496900636994765241743272275686932823121332981088199040740872005778976039081147796220533665954973505957343738010610071967006322384130242371188784907207101565509588891822862801495863311483098641484011554972764097941565571513788470389809659089601749708863235190836199218804263639510319239026167430182691657139839059565178932172745697248811238558198091322825183807308416841398986369678555573769459836682062136467027188627074729100630136208502742097329007379393216029945822967127819681573709027077000900279932228289464377146475585376942460156600486510420571352593072027902392245371754122221974685651423899240196287727303121961053264410731928289787986260585384165187251083575281386738028861467723258201230506143775794966539392352758783934008867037522428302962414707810685287536847296204959581236640845610074920770372844398288965863744852168225489359518193755261898840143272914553212541304411145139007162064555849066070293814483010343922027019909968234973637290743141780983910784491279458076063263287397420537780567174943834364121195544963354663067840057023293549671465746625689171413933766505552003573371160739254911514531431066972649053028568858970764903565762394158358158437702351003519230348223127481221859105826866897481435028745507310427850358007939882309225640929760160213630036308531095466087199797215759347888890310005344458177798419652184113114059368748709424672527284558734798316536510531124116230244055891228520342057778123595991723911234619688337901326521214092454747257487263836729086172842619846018625475596836931989055327489383943365627777083717283672214160242814046478699617641385134479023510640604970613523205354955146218883000544386973138750114409686421437191518696640912415488132700032797892626914467212049184406428010833513177534422476115814802180501939525053973655946620902350580700393253185139899309588520572204136210869205766836121361208712346346549437470207927308219306208392603487193976723394245110558528748410642470717086853158828261735439146587239768186956063115475934727002586344729499974811941229573726237766178431421792570725803199175220599074854974722810730615754817862609409759836121668487711774630082115819526255616476623200838635528512890203623643688881317095489605836210110623606683001518484244198434778909758272137452295187335797928796858839648615667078931091141846852319412456620127144908203301084759169456340416428255621573596269712219526353598042655668586642054795907649768536186659249042395768838359771613715545370579941856914717610047500004068542244085846546621179228110498859392824861488959434381944139810242697646570362483224437179843498737683717664047436395839746887575930662971577829059074628015230315505634038578740219480246265219695138179062476740536316320598595137909542540024204054338457620396264410522286441129969207552023383325356220609819575918686100376989612929509122631050907169716729430280175150042943985997927399351480776836376923659764595457885255517047561447361187317809743819736792341372944135760330974026727236133539586242750208144320995918273931418481247585440301357353118599788958036031660101620706717293655803327039580862337415474545913309375681935243531058254354104727865798096042923215561693345713623787067696857969248310833754148429818438031858576526215251429782336373612385654478351811035793111442808192675120482559179095380036172007881883801046145572357550734390338458924509945884730161395026174751813011946341451673138242852838270268060650740776946935594188033714944937508004620395731642055355057508593181354752692374918686827420526513509465560205417673797994263040375404164018774853579960148883261991889316242365082814188012859724551023716501900540419154879463356033272645554187059995169630115979262570115742340825644259115466396608403608591618569565380211757463401821032176416930398199373978608205965691373551161930130926890890905699231281311028841085877714559428486402021165000279856138082498964316055106327955651575454872709227708583742514444928222479612643894181181872764185446484479913489187186396758698665447169798363179590533770185216516573675749538648151418866714701887521836902880322499797629150950300564149560630753676471417298748362069810787019028321931106433186590922431695614306141557210988692929472361145310073472028985902979063191317451134651705753052633372735725197385323963110141545674453645359441465628720069747220278855235511195607965295374988910965676292721008019907284424942478672016471202466670074739681672528783826467458911123484263496148512478372303841902710361584715842409691681035031831763519698764297332428907871286464799298236238132764942799327641812614072003046562993361190731656016017268079803234615390678404218839461049036023807907949121541972689763938369417191250386234813788661390723170208662448653282698495554097946029006292358545725645046738476098078561213886657510550376403065735468664263999655855457824481877470016045799122115659527098644470778228844418685955047410911889707620543952974875559050500731184110096656951878347761327954719921344335723953723246654218265824426279411850522319194954270152989495489924009920275965916795114707280560789910827915063910898026600583430351049649692870481090017208944359318377868992103137866752214959980883208453341620413519010882789656034363686511195800402858679200210668094692282701627636823038952088002245113565300720783900224582473668435043682215856125165583322355455550301133667665689198635695935143448355961995743606474540102364616545273477439398061968996158229692745268622974876006552373710263795882845527002769838642877222077115729710073454233788342551355233595093988977224198271759072425765311603532615136367396504046881170914548160275122035452330903463896788875296454782852540517098867765429084052032591315112117438362714254272488313638378818209860301624411714690530453943867010573102807906164913814331878201297732545778360911727449350988134461829188497943587224609854968338924443274758906224787065486645429260331756426820249582825806321302727856471506141158674087419181838057554134733017450196425850685207139354253446368317909250280144610563372311356216218481341260813585794288738546090724590836931240449121022234626801019931231665682137898237904981706344904575539085236332267605216769046414193646351040647015021026635541621085727878902219336657256834654383207643584342796878737690712677917605528600099078039498868367845742579987554029889365412906253176098623918197712647776465227555121294024005965705237198983681675531868671416784277326584365610132784047663635953231102813959170465234031016113063524747169234968784652292038601129656082096572675718952534476635928225512489911817940655490605538089313166822412562123860369866147952918843258062686326003677449719967020095582301645566315490287613686085277095758754283250271163417263399359373573930745076238736901199266072729580912067756185244959934758466093474604028929713750723431413824031466837063719185723032898335395346868358212027716208795694064496171903508078440214332669438275920719388974870882871271557789381244141631158961240217364320766409578198298585824336101825453757447709401616408926403976350630707373496672503693921236992256855674192412321196417141115695474623634035562249463534015491293419419404902097194985132587801773639584675283622905484070462266072165616751612950412406684821726403570489192693976255679534370999616714198075648808411157889917981117935531785963696644746491431248354051792847528674759865032917138059047582246345821060235795967402572827920576375975261786607750950547293613079562646933776836522649872930846057724921587837167105505271635460930925482021740799273083775561882136408707289817645335846253554176929167239991807078713379858519722510193687137506284267061701035147236312992566249700868820772181829697623887254062676596464375723642436622200615060037281065870100453314495118892967393882887802409032310459898996008715015399300986031769769478017145342147328123127466183586634864627647079145856838953067264600321794022126351686467759498242239205599990019604639688077341088028893876472400547700382834856046112238892543053860374947630239386165455927745256005970664555826850592044990888568833743884096919430747597999584050936779849711848016754846932097545806891271770507724349307083078510257873090461054987372674409843738079672567592316229401921033725618798328886293978121055214820443438962111308237138624453450135702311217528784161287973791272685258464684433146842615177095725861956120178718379704943626229886241880834053776166278903047438288894986564421011728516753795210275717994986700155467555695490011206637474350292418262708836781060619824891243441056498896573594040072364184786912698297943785850160764489418654540115809375693783079743766892458814738870319234545813697213212623574665217696699355460633096512998573895381449192374593587523120762542593007336185474185003436036635186759668486599460839008620907795349884691333186242199709349691647466340549730008343251087932784330497495586760092243541581606533270224801216009607917197788547772316547448053904944427844342092295698183700963238169905284183910388093152319264210790095104864227008872680377545168961510118691247233599786984193175581658937212623282528041949777289705172248414963093278851135238955508511289179726593673973762028097352878152270215297465358121415078622782984882650126368938775018692832898168729728839626763425089753897259865606557705323097020062130810797525166472818613644212888210176369674761975953272258296616471525805213881195057518673208764830998974454831747218114289174472701689396078864037137275187389872355902620630466881807188279548655395191008170962146409836222365263260536057383758033259204113046787097738207278384837411869938074793531583392583401375653212005338390405400637202964279782803065940059921727127305681147319313036074217357920041519883353920187109986844488600461336836075361160908672374155598819161336338339553033446549301247649617864483609044254585485618828293042280533411581096626960564593110069320485732071765883467497155163265808192279166097740120347451457713418016935631922383895596133742977850182117630761742387976615076308299162276140550109313564585723198171786709955877606183887199719042231759993936283930768441001643267842661396141022867742774696814175691194418544391491702781295071584636889403615286057621739010505609023570553618015193191442349531909291400654283381284404299844097669742859245365714324366361123005521156494065374704285946874982743551155535809682108396623186191375220656550587028293459045921448345099006908552409724348926643912843900136968679103088286688907437098659382623145989414236272896797685391200673739655453277109153161372469405055884376950677082236857706094974918320422666227257938585892876201701199926404659520380573641879703165338675571708615760507173614682768802132595215841931779199137079205143347603181428746387349350104737234017481661792604496673785349308149105202273805106450687861563661822586115501698717815659976427503698787818291090382528172713587953342356403307157949687079043135409697161686222694693420552121823386336042927624937213135904886054655426781985396041242746722440093337003629035336429083400939165561483250039509618625869812764607263025116301879238121689565784896355388725392221158359861907423629297768934541161865887635475431735472384411371883058162385300713833390188946834026379811371994983793292443063215734631064677407310787563575027605631469372715852222265100566621194959114217150770540211484173231978996009767829157982498350363378337098011257731503831734378431732633089422625189410235616090327322147237880015232760866978377045109202531073754435971592894508799566188683806366627436128453007477386454508590368236576428040740067532296936934364377046394568829331834764940306013423006324682583100275797723149603187573980544732672912725268262598333301085578944644838008573009199013982245787623277967135959950924096550943465580031178746500630864431194635674421492096771484877980423860730907746161999114445250220188071316013276456270728971160474337660280804352015023830608917555082796041350165638309032435270551302280119992094763720255346152953382761897360159289189570886192537702866338517557791833177337826196855384903726777474639732670415246982207787334077549504713264962745156005508669654984311481576032522600024899172078351726681179406772846256826302738603370521699900847885760132613697443713296568663420368509583679097030501515327107912784362789313937699860361487485495077375995073493947607444410194002406000929908700388771004545436425354552891309878588287704873389393977257820597772158012102752317198840180138234370106008612036657420883788296149074843070052411116146460585350861893055465470271134942437831390299688469457226723706554355299424462403180472422334831769025424847579086638326577972564280461644037887771921236792434446285291322905321716869570400169880466063165372356639394361471529387897458914995719080815794106193880054739459719606443419737498500369727094539853115079027516633940972787757629206873717319214473462595331962228545499627385849161733278818841340290717611544392634548338333780860225096671785930410751970525197040100803931414513345171549106117660747657743589105654391774551795904661835310221089475886009394458796280547067976679640582643874131934394060277633546836726456894759366743458132096053954037944872515833213338575119304279533082244348266151598063881909290030497017548308763588828588695023150093910064014697419381389932702920245784963192638270173393354228785124694616186047830610419374258427108721573977771985693288040820468654243352025450597460948580580862684255197369741413210773982704387755740757107488705097085493655508238694069847348340520993245014059857603988977190742014616548892374520961374957285819680746826666922084715048092510135952780832273349952063439576238703695131368311893078529618799669891697625615089063074527125565824060904429940799351692412497818783625100486983693550206346502423488977199931949868629110828461305532395057560420005825033050971422645202108764802167559313183806379881242308821475086718008489571062537321930091731734107656326716390409850707143977795145706570754872981473013536462522838956000417430517297492360648890089115257930930629735276572984856138161867968600483193752880578615973748373604167984621521288544974775984722522568412093625643636736392077786870972774740914344279998281526044696033197334780180227021634046307772445591360227139320421565703063865125581998171759953415096309435864082361618181525514440939712996895530244391303912484730854424267761446235025970945234742611437285278647832477623240435967758186142140390020042354480388544831767227811306303146542513550503256416717723326025736306361439222007182421511866168045531079844160254705020845611329724805654348820289586828353559326999265933716226880795796090920746814394164655383309137562993434968542869603141959461997435361938382288001098105916973229453635660356557086066210007244306045846009169271566348143663846514607078518657385975067706502675591748796426741572191990816595828723880879152698439541882672482120922450698388963167609927747560345972945342123182162807497426152394129714956700695709592719954379850226943435906968679220442307757512536441242147696669486488026812850358163166818525367639752076990764092144341030432164120845451623660204872419877763051310514151567229431258729240071210981182582677233622060803187295898442830511073676986282190006724858566224730759345921640254001354359247075111610817543703258009468295759573239806425733940425519302568543309726263434154230846496789999079797893571088966739392773219712061468691286567314812502304850514833634004114410419973037903670443748375050042806384001306200161928919387000951841648807149411183074486123737498368562934892465138880416046904098126560103845189741165707867239048135117357801073661158742393495942829506119940299623755484969678941207349723123910382216696763509869820804195751384253265258735085313896393147176824304975361629243520113806689377481319662773042765422093324292536677473673312640114351576704779744601074306738590337478690324062933866320462841238642708333811701814926978972359638141393689510364587463340564681658359034353209256854507656118838997158393050235976428838587283380655521601215714883283685262709822954018270810200406306964189875462726922334687348179912432311309635939338044452310373622063351454296594364506017597889774374476272361650071160652386620861197468054784817290260526334250455032907010739090632268618961840422210603613109292761909758451070714030520143754841118747521644430876420341446954917449238122509681730761609971845189182927421118868829254949615094664245435710199591363575424061055734911807807419078696299518512491673955411261371738281924686574464991016227456955964044775518406628519612895979288660924245411448731788431507226737803287612207609601959718699246858629484756738473555687015089458447197715868929493208656596230411441210250183432608674607424650855156263736883584535113629580105815207456243096390062992198891500101364883133297655902117395933587878975562138144323604185415482027331164537620506906415291960651890793109150568417124625234182652137098043615196594410674148983254006053567314147178638386052868953157709238008454008679601882951417332888809581682075100923038095531268592838982395221723527488487788810501640167993565228371863813776303762344661056038959511533292367079977217032913323605699598156848018758104907547362214519817945313213461540848498324276260821622884695319909348202234927019129067247384984472974182995853364866687545963681336354533645654488103097775032653377800311474735558543604684210276910662654800256249933316255941188519931129989305214187269157384412597763168455427028533659564465092210556086483227034705629686371505574057810710669533211822661926567035704807785530628683823064065362988413614742749323912158538267181764073022610123250257906386044336094072185811575115035873248155616505389756717869214429388399521071434474838348187584648901946243722283766335567255579407978094890304249722811573072659830457300755652281198592991303105258467503710215327000191241946250259333962899163200197224776603120949747069755928850893869637776014002633431493387994399519872464610865079985510051798676338611854207294125229938316574376785377882886898342014760356326239185393328202600693688567271828125408110689543047375598682656411563979359632610713148956048101624464836865335807197193437889014731580109685403090250968521257925217792986864750070884355394640443762494226783441937333180750790022505762313950607058362525056518683767610084586571729218770899973702456182488312065432372916610504626974095668279360808329182279689519858910687358708805729579935902760889503110595961533004892497215313696080288901902897031719295227132171211879512542397646381263168553907057551279185500635149546712554354492306092752230550775172712390105530422245066568298126815027152321833310533166511187223933567834116633640747967439900689896749946468093831185300885543726151353389153916926488382257619631358107734973519814300192341236324179465245006176649219068039604676985063023456337001184322479286971905743276385244635420147715183152486594687906308089330660605731159929442937149479834900966942624350765953655809158167090836418596507326189647856175209236085467863822237874670344077139296463843839729182743029000044553859261619915316730665992451791040091314094150729688305842530385341731519382053037517097818061992760105236703102301675504171176075875662974312321461258803827891012667330460479779241645469591084978217052657977028922217079915957755813099777722119669544387345249983441456281145398248974401046517221124910101221161691943299105951758758286354103538074485885079053117971643955640797121249843168712448665915080977552160751682965660359838869177195234653249628162861159759427461355390442568780614929645277792819282264316449766386966925091836865455664776382368016446021111481706716462597274087474136590118152942447588618353558599839300930795218785259659695423202289177059976973564976214117010576542907697174841048102575383959461097206815196906685696919072737745855020847709570004053770337043232520651766466761567260002072861620840944491925264361196238828764464606364987204025264861380074148935267668623908562842204689671597441286965031212928680201394835449757325850304093500576532795634051473950378589155148136945012613648538805276674315404893941318661530447640671532487662884415157621917106685919683281915708733669751601385430484699588027277357892183476506789614144763740003210451055890134128073758419103392549531226650345423773506184134101626966706210754991338676010600485251737218150819574452286442558430257734810952589304489633292420230796383294633228701780722082054453465532609394691930092085540329308368371917351560239860517078143456818796955353612571780628726573668845600484821631769126296507326901686594303931518313051628306118442895150199792667399649399902141341462675253413587673560931756419313382394711658472110330774304719389670181829812782838526593483174986045943500420147645104317671179327748825282835775474389976486060646464702802659476197693924408494071663383681408172141172372279308285036101651272539280799525684655687488083894276530328931123270710426944719525920068543065939453834000564892680504690997204108619323381348702520452598390061388632548829080850495912837595638915349202739071076179962371011909423123488903304581173586279020084295261634113115681076548157335268627154746601225655222829512033055054728440026689092089279323115717172701138823662636837988832819701394617850910751032216180264815999321722845715375652726404832746921814151826864143819588565974162877806502985680722863535992935719851892750892893112988509629201944789381748784089927570758781353015232045329666781400138067681820737420515261107794995938158598280156966992549414838907167649579257517677297104604086683713788140315869881175680614461859918126925966203183638923118535459007937386779683527194154637549344016145496417519066483859438911514355572459087609373263316138099469603598776660722913516424370892626620639697259050670604516657992719658537944180433051982935165195277706402610492437656498679873064041176700399488134251744043341698566407600320877084064155338728361008799887876978845912547401795913870287522052676975484536870651818833544136763195197859014202766672216335413532698502605354972665897630200100878293497777464683384361933064422352524404855082773105900448353767680614969180312665818922859694834431673013690763938262675052658947112049610772093211127691312994376439722674614156568803883113705317988099829913922026499863929027812773333165886339924769831084224155059292316760621601790161437105718048457316207301434778877734430206651721596243425956036409481804484650857083054257721352128452357665828905627437364262516072019945134291432182249297845668207574804929356633054870578533776938174197006069090040079894282072101416906991352454204483452465867458236657459368067090865042820041715718541250606364039935139836192491428818205259570179829205166293270698023290473857189467357130637892794221866546625554062171747103656228924738347935864704888031468810149786507873943321979422098536104059247638804689931636342601190220268952360331730328204541187929111698343973742134021775939113579368418231861035909524968008514967024673494968186826265866522666943394662810285401105316854234395928810466116459056386807611199253189787668288852623303480998433204504835910058957876062560215817642435453837619085160310906242490531787744405366541765828346842150534577354841527740453461907982875602752945434866932919679348122872107463085229021589392372495588482204179216586814138335630556319486822114734776956399606419000418428404274405460135811989649409508877559949793241534951597796240014933899792689892202804935934460149452057507236308189482657359891819253672033119603199050281707593029820201393793957525592279084836675395376910498337506645740680757974808946688037905026493423574592758050967481611531466030733836157385267021968827811707283270403521251496118043941817176246936734963365306154776924734908991211901590480325486994201420255214889102469509116637382438978704209807504010426337068314308383496885414220294423018117403252134783848848057817470453464655004265510875880259088247560145416816202986137663229240715325974842588269021440481939377681594083015861113223196566215445179646903327794897707495103025878967600527478068047330777463322983930386609073469530620701675186707184399831554786048647372287933649338062878755354766881609476685973661374070324400924815319503733818269893821501849204027495179046163582088957289076833355178374622817767678860123863275162525706815714500553134041706106601891551592197289067089797420190794281580252818919711106935406963431234743724271948943666676264194836032088654907921547356024034782136171395651612544966172605071850632387449724042072955746003447698273872394792304029174074066420612631564704367673994564284446356672997336245446364635862563981530178362119544015119254800596846002376652415725691567676199663538841864197032156210825793308021732632775671904198466869795464155993532468541373640929718445614669095653576331995575711357978063593362656327638468933101246786873183630376104336414829343299877396112998090159039654281900723353556862816768526146707630368738020685009709850044849691415828655320906125491497090593376204756766472859400141854393724794123760317617583304818464685876617544642780390752066010199550036059185569392783287191727836115557553590082435383359792537707004058074381325967662799889822115505306604888685180895701120357581681512492070134081243582945166594361564790904584961294344478424705536004758000722701842335490505772278193928589629005643958993005606242197541979819192278278076848752939678403887843924201156901263418016039488617322274000371012154836973337644092778090967427422141583589654798586482088247684825784362909381103013697293330627618494720073636236105091871540347603115912938555875726915970382055702011429366422698004739961222083099969940862751463295652304963574139745967549295457745201251856225484231609638527107760011055994397083657826570097386271331002426774646693839466133208112803664749987462429372320398319268960172193936483248589104077887478809570451812360624297015443635284695997462896161052096258815556308841601738995247846680975478572945615374983422738115768916532644260660358370157937852827632522218075506084819847155756412783051850101826473889632478938765448369641692568196276119936244346277653979996779805715261692203618165084672942314209023695082125757783665312446429176415442446827289466040222019198026625849132498630812056703893486891049351500831388656964321903830356240442267766822583627893392015591262712107051275129533899039648227814999427400080584332081812334532603594333127003216094001824944990663889593832631301534294115867309368138504257329348661080934255710708513403779036283127081180250780046178233216253302911021102243058035975645267418652340449231197364331806365199606433205720517815542719498760349186929262556710609031442807528051598015287417275474376431123780409820737355292957157386358498375241875802641877267066211441719375082695635528409130272968247091866275263564254100097443603429913275723144574449480800444512343747714731535386439696588590646118050022009907000199378091075687831346332816443020854958933866844457136692542554285633118911095054706213759871136652817865108857035543419686362108300103536577153672778584587037212215241614554253724493841382536258965846404825083207660626698134635048825840802264281573700899945521944200196691124439920826631288014251152806468221153745420576460991131238905043912332981638594315879551416073925228188686405813274585869055230263188670279513083859001373767145255932721243715841726203707494747941205860304991511856814481839387275227114369395262921644710462489503845125970797416637370307423099689649712100625843918283653902831628704076884313816321042974148577135285054201910078672089416720287948858568554026370195278313252227915533523298440587811928477274612590227831185385212412229052322662453744856178276353963512033198841577314551750570463816970269675088661445439134351511429159820392874189832204498822693695017431762603339771992564354720834857979926456576283517232755242055798437724838477883240179728916656528553351146664628927092296822648104624291102358857249669037654186098837720155233871719480956910722636153355873061250188032619108016710195221604279365022601566608289989714241070033024554417610118329184405065414616917614971825424486568093124027098148320315660775872957453849718117362226076645080305884884668966277752201613957378303073773811128799737046784623953682822147520319608713989397444332627432915431186190067524584875716605326178342388133335205241384298579689223473554632193207776142592447991828041155396503500881929364848268217385000447822960980409862714355436781528885824445768814870821205199208942217656182604397955479373578063137268244277983451077722756081512386270837034482103365076456072363457554533423509132162521212480309583317839184508981304235137114511093313148934570210078384014112361356899341247659626516109460530584216157120667432844605644027106106503870872737409150821728669761913860829421489524323328471456454964762201355727144486343461377383132036890284145131113848023400858546977796490570176095752608302716859536745764551767936735619159220433327863376099577712265465060610426874954649564326267762259293157464687672613616840345513077768070828484968933690680401713346364951782406765940999698377318229494820261365568436109212304927968219475954806097248026283776824881435600519976608781383571228496733444207253508065121625672520140369996325742703980455867010091325941771606891201150856495951223393271282481320087137569847200296628536963506664544533562141997393588513639259671409258215900246099997574028010100252518324280125971587645284965584133287444008710887978599540319431149432985055753738149660875106786665528774484641437028273818266363891773500073421653328440577882707142130598146261539198751816040630710986798424137470693520792233126733304412276240013611699055301212096894082159868681147273513565769287836874211099986385381338156748955685650643130832116147052554550540336056485718713710304334873009028308691554427480552012968721267635834316038601682507549202982814482229892049561571587335094078673476646985638686325666791726697157774272055910653059100393010107644678422688315126133668821191000001490312883703552144608734950740988317327068424656233320984835151317518682464893403494752767059794978010562277116336600897243895508483809169720473315112845209165827830436651988974022699899534302387001798977749482245409934229024335683747955869635272067375067754910304959968883947249532899719105827268097548358499503798480351966827390629555497511204616296494771748557236566058090588595745062399820897780868601785438115418580519246224179677564043071337739380853259581514310827344719214551131690029474282250046479976581608392344228544335909913181844448165050417845191402283015123493471007531392768392606123329175733647276042630314047747603901406453958814187120964303805623751380954326956927277006644099581022224971006938340259361439754843505352746452545963020706721303841652164673279952942647531457593857618633910438412732373038316512235721656682936426299975339100952380606679120269362276509551241939370288104065325252389512467353501825329251176283536193398942894859426128293241154500482037837546406656475833703529286436475243354821055808419346198144811117046161229234812980918284982530337142619117038631832038229581174081890034125898558895344700797852845604453069481361385322411514163947199100150222686607425697454279905789458093167295945315086719446833770984253079382598465632396375021621604207913545631125985252460256305572556421124673443116353173865398276678197732832184033687311607687807793319645402420032564418948300910078198153590744910707822977665183196414024620529347284633511109199306237341192228602964829744480809681712893845076274610243006675753789541097523867499647013760945141444746584218888394566430166940337797712448133088006345302952623192710956533402876906155389523925444231330733862856557658096350046762602495416245250848407126518597014090455281494128427794658458290797254239704331422028779541384839984325450226292599686374587716090660282334061683496373399740029442757578968075238665396743115939655453671690192074758407008972940080730769503211175505231261983818409439566009800958349212525770503651402144829364510083116292487421531074646711296095901713916318343871061096233918709719139650362743246950915854456592876987083249751665352586767247323406355157770302177720454312459526250783052129560583216422999037348982106493995649134731251893170821521499273135699625742337652909815297238877810356782754757694741507127074517949899487403135849001811948889305468853544249778444604881273784220103608047832723091212565820204122148368713594592147180594037035417130764606570058232418111953806450007048012505489533434615926725003539998500699658200653170260997243798028504257763810580141655987131118758880277015276269800398487811941421364412857687655358471556494132326859488906263760523485399245754424704345113052918525392320759799654158113627991926007872069726135957559108098871813134632929291800852286909668942026440295530913315121117876415112088274202827615538581138326991944974578813131439464141621359893978840699112232170405813323433276054908912724570437851722771923003900976027742188584158711269623362392047043015908388995030109140656485764411929855811000460918166167626268062958091322755787485781127005385051357305083505967633836210371787120943058766517227184617821346204744790515547150771666518550287754529493396125057200164027576350873595670566683290203310716276546104864843828805451348991952882282501207015628227879241477230011142847773383178861117429115672834054040040147938805023453177373550402302578114966428257935417370687015307979914566584302985708552661571180600979332445030461085530838191720796512174546069682120602725904097867982291637703268710599663427790150604255955928282877684938290107753906294670359376627895792682439289331737341224185039652957310328526902817690141711437369774806812018323062796726982098120181284783788193454975293214732689129830631435846438022459526484449436756663832437283451568842139023998559195232856259395588484247989983077239514772752700630320360586487178606024102272040147664260419330394963166276444332000674767190420883618172370916526472595196794966494599462285576538663761961973843034696928443213512029996314627163872892549141572904708585854970376348641200985864869420866121225557787131761915950544253964888736475998239365293816586088567346971262313967171183694309259263293749937338249736901972250904348574278884708509119953754254512882404785304583758116684339060487279345940320388434006105488058335552183643045474927395764903854369844326724022269379801034583305926058452584023401524160105988629453341019215994499833444719591272444533442032183387139523973431213451053059996725845638525517332645452326440763060536401079534429661309477708417738250253652735944156082183906420133795056889054066203517822572274861141124345532452219551756237095575226040230623857613397267411235231797448462540769077476780391634171868256803322172445356155047908048490724754651931030292322009157997797402461305876461287078256127108706201950633444573216763292109885456900101823948269843962703128228529000372417499794780123350313063967433187272344114278877842178664494649770129925950229313340390002161191824915176519997782200846437357320214569311626794109186359815629995116388344140409218407774933843765727639379311720657169811841913306656870723385149440096914421944414887834203370314334266544006933941597128574364080387207464672662656375602838174475854613674762323565175558800992564360944724349283516576424226176916753639467667094506508274510423976651440059843083766612779759125363052508638950633611587286485733077840086126559690743336500674565606787413746617399889966730496460569212112848263861874999558650211325588417396285841322859308010077801994945182032799972764595868239317273392535238775881565644161997261883540258342353028179544441944459366945609686440769814291063770499124956878446757962202033658879913685645409232898157706790479419861528682864168235272375362211126614497668031015782902108343626722228972383579201053870039949745501807484997660102101124356772580238326246600685325600006884979807164974049159600837744599771563921574310110577559047354272422982941872555040749498822471188275652003616265096272678590023500037551250102134889252808513201099642849027527934224684567796041175714672426038594015620945328166628003820837763799552115337316889439030526165379319137720571921977848371925001472752248985127737178902890567996618911157968731572420610629270705446670511956410666843057855705565956669318436890184689711378252018753567906983214893811490476566279372554297597898971412412362593131834264586448426262611637868821661887393952299053442620079444491280380556033104539435183551103835385251112979009040199673779475422625256689366117149991805573598267006310111383709425699215002385399798248745126707285725175483512817084702281037437893040644984629495325158439932268677996371739133560826406971400635768591745791117438762061631625251905938825403613962014745738484797393831253761895954551483304416501799692848999228333229011733620522335343194386202194882172754494659485528133617461004037868011181404806325688987694012718687735851575796160916702661296237031937106588603141291409295204732890514330539892701392382287163305906889678072809643929022909681425442326468315899152950392925446235798910031097407449146445399518207777181387960662423836441542029666990330486203577007335054461497179068101465542506377313086842936536108114492517156303379480639644401314915244172433948473561445733635802082796974999285786945778582592301820596005055156923898076528539809522749797727413353451689408358746413194216840047119855352446937488062736354329203515272454531264060945920732753709930018784893083232793621430572683011050396275818279543960471939525572748176761517672971169911617135178685139376030259189144348494463296008640029202280958446774229102314703761278164659675251191417050866683301339093402893928392946763009106214102880404565683179987315036817936503686863366024625826254057688010582541763411771673594278555494402072026126952255722857533965567466533339606571264474876870817584164824780763560364189726469902027878660780363234349528481244143134839462699647332324092687523904261609882332787899734242629447573527674711112817901889097850663662486264735187049918784296643344906958875933553880216157273238424755299724706493174396914738591219899791388871631627195334766634741469337591226101880140922235483509335165869149636677527322446985403506042799716126558374722164312233079504904836939511498402240420089083586447828978252193034538209664988893479328904238732106003400901368849570754838936350420097404934940519796917170052152408571185248135572784849893418991377086543775571711659197659678677960565879628126291896585658368298563932580681405013120136384340673604598207524866816991077436601396800632913226083203556802484856292470486481565059830073075704549276320332517184396905730132286963270135586865462236389119958806930361162927753567781043417474040622461079459409565600057631072403135935735499034212396426276054556508519583112600191254760534510691313380323594325207796221027893533311723676533719254757433488586226395690905237173629264009191426318589012872083419435785109920132527192974530407852845249343913455058916063574147820755226121450360424595622994897146993524840163797389733182117977481067535592493908527674244252379122161747935672724797326146567480034986377625083595229861081481795851073374532158481928876552169399120522019237382891269409650818471380085057570439281516306190350049035334131735525188370574176150841664388346992593670209518040097102861394675621210115352533832832682656588905225805638637281915983542354003119729215657405177593449828775403802723460567287249000893881143719943297057416201371859144435895659485498056050357500143719229236746813055128918157659493040465549958411163120051471963940034787244891371491823408815925730145228663602078378730792083277206881781541235925963107741943232407130471329670502149821940373232181055728859464869543483718632410904507962259472072545689395127724808217676010938892197289896650428499529663995600765787572792214942012021780415714322830043909823436384990577209459307657856216734351458862472825527892512142178988711578041410856995141006183921566994247218303938809892266264511521020928038171384077359821175527178673721156248237358161533677627340439541863513423080754715608221448274329859999162988346519059982941723050178684059923314209119981399953732037709562501969314655446874842567206996396985436130914607509216124500043666317162890946597478109576994208527865288617981059029615474525166382935967165540540502720047558728967726007761725497932741992217481115902532079661476003978716833996449165450793478319263251394942532675885700030149628796210591888275266024287750039888969754895195655554377525668437473443204092995070150677452446357071355692515647859762546431188158452986375525791646429102775364344340835703561642147667146919474646693805495663406651222406599336311859456120351351557371029693797744012599921475526586868225197905414937687576907700177264530921528407905111641989415687481107224348266152533499831582685287290404416426151342499692744467923690738718021951862256317701501113787412995833747740675982283881267930894719487654778913383330567934915540928303261047270532563490368038387133777644668789272934786243608868740278183744961217288055392780207121858161170081387402930290284159386982221945950966900863959607893498279229053030692445231575559384282573736678875864104628972061151936895691516398700474377379796641464028851492677280591955291975888499778932766054715057387746654726948712643467550055177979667418130727425764782268996351961378045981911641499121280918965339607317729628729791443275265983889950348643393757492120534435998238213963851188596042428207199555915763575140924050385745218734654000507323437188116251912082328831084017057785105965197645215057742065284574251168801076059174168460690875619125734166029537676910772551293086683183903240203982522184937494381957005309515389743008713516370088652375657435151146840861522992171782628680929716527508986382544062055572000534614818082917901610841559968490282610109789024166542764022291656469707414394790627553459631764636997961063648277115694445518534714776340878226088517371278312672085563499325348082259451564414712292740696772983411527512699823982669202091709635722513838149405304926161681841631349689034538352640849848392389954541581147161718322765162927086104636003766858645027038789093684643686259656386859796910901867918591388678884502503914843912319273681975785576510546449556962202572354743475127736730822420484177766253504522164362971314474207028352422991537852971660271968028015420325880991731507995924005301854420365755631424814204417072782645865511196913621461718713862381614575386833337111627925118129669045058483950276507336556852205441769407686189364435198439330875104588171350625846547687803685751206133589127973301557490537929141465248172115349284622080048890163573931193818318010963472092885822789333719121965245561057903557112213954248275819382918224116535583099777855552757223364851516542692305261360043610980379908928389200218357609672686423815976120124298485567405675165208280095863028241394433029803331907436422800718890705069604743181787243059206881128240037796860104102861718614611502016531757886024596555670521984910867170312292613038846735618954401682858917093719097532013043486802033876191307519213712156864559645677205432025877867435505974139154228001804663985400241302918874113761522582086885025003842010162991647216745130187636227869150473407699297759550706759923846241198628603239572363554808675943897373903712025144723975857661748979382797172602350537643890582361693455577973583053057232351087337401894556452870749280448366651228723125086525235096793256787932475473219210833271770388687367855021349875315486481926954584704332989778788766869728034171747322762392518878717943017097744986391129129787499915827285915458288461517683904109079011334933243155481708369845754078694967908965127484625357822397660966875894372559087667280652559930316202580667525975784484915400954550761796247051740776807200387697654982889861609129508287940963293470732360779755287244256724110011629090115257293069915239313014196125244971533399466420785649985446754413056262221827575296199098991037162934919101565768006473709850782805028469541589217489109957280354449482523530060822494490122226432549353889694878132564431610652666591720758503734209580237146583100574990633327183650388318111795196535546024811648083082269890519180958994419626503791547727290978689424347593849382905247483278006606467836785457509310762511830387508019273933064994981761690052727843843771969991955665556774665204967088313174179812423016929957517977152135585321008616261466786756442072570473325845554849307862898901065679522073855179840676902692852382080595695804166820896052601357653470005347612593045101566126425421163442185417491363403523894781167578299522714482124599083928309708575690667020865587379893600183912790961502410027159271931142640269562506145022793311150148435164917671993702055626085809800134217106194058752883812151686694435992092207360974737458135100605978806785895529871955701799447616121967773502907112104073162941144858790958331107705414098908984205337210584013932860607872123690725565201219015367045932896707941688973663777743007360093984982560455383246294501199547006292446611286520341161209516835235777230904120247224669648804114824636697593288651490616555717574644070363851006608457414796180371378988948879101014515541747445080231473278922337563919426015864119443409682361094166065193014406163073139458967594174376528697321664322199730709898783725780198455484905592591660953806719286707194360977513597973071109282540502275348025052945531857742889880944105315044702154832513969063199823099909652795519681287807974569499952635202934049452500716767431971138164791660301974200915890090465156430081793485401281774867287567811556607226617805629929227798484362562239496804287207553314825706298038836512138773982450200106528090807426235017192225154931112131840119959592084256235893278782508956588038108051503424045659181420472743975331932716220438897119459911515192426230326914012847382794030531630000700913083653445503776992909743292495686448486586099966327996729802784878779688825011775702665054396807352564891169175611198710837714376317223542583505430141833820246210248859152284868849808878892441274772455498633614043039319715840643366679318914967273002608636534981771625696627257600652637379368975150219473099734889912449608852364276458148179855971804947421664596400848113101420275873624842573759475806044829100924448212314507515450914294505572794491281239816792476718074507765991263171848226873004819752316509506650403838089605537296138199332048255977066624846753580711759887348974380273094463290507012625785014045258360384746693087443601198945779830192996839185840879411888166343561726830781294788820230782281961000709487342196211368328356303792608124103548565239717112146852355146640979319314585201490654162140491609695927019902069653445096554509961876302871542523711102529892828584406122003083335402951250555234639122613472088814809295709669845293839846607776063314434501700267354721778266630125254798034893872586149683494612296023897445557261655357215410526004179231889964972720235335234294815048421259462171054929603495962113620794247937585767833578384502879804566007055949130967282144948962502468359489638099799798652968349213194634398782679956706003441172919367364191043862199373248087174299740084032564964830646370307241364193920626526328498003866313761720819114057821272012410589056178741370627441164643214656636874544055594643509453451249699850283703111150529811740052814342124858391916384333442118659323433195556860709162149876033350935522985371647656875545851836846679030434885075727695403007040685403078354729525354952659468941637949412398048065419419621142014735373368747230471128693457412742703747020657477062770284240193731846964081002921956704398728268168704777263232753446144666588409056302404923996183843555974095320661644521036408215479439815228893168588173042715396577247284347566537015031090829569212290077369375692843381026811641428684869817024815985717461467607737118959940751084546768623698553907404451047056779026571299879398738261742836588145256935908598403518109504523673797405765353689461317861897280505698362710133994255175618682793056692034766347047061660466651927791897011836493236121684121442369519066969305645550374040551908575259375758498518115716945343317470139805590789342760684310272526300385979882370856740633586167458510988217299362466701006422821823804363987929816778327392889110939916076486830265348343221896671643590046377073795167678539627093463676260886665589720192368291168373800385836894471159856673657167070046409444890000332829954508555780425910908394739900931693721658240443800260212279052447950829361856563402756023107037159614515725900125746056400243000267529922848166945277391383858787591330073616441063069383673739338318978621977447439544824371400843577996399082223603480360866189522348410180089370097815901008464090398580260371121891448294200853601891931799307457012332808807275537213916112073668327454425926950847959044112030989242407117057355303334845189778763617361689859909994017373228637795630928903709433863215499635774875177283230979948307800777731792955848514035912455643035299803145567126986997396652193840134510074938396416453814622112124154141744528551646370972817377255662615186608441355926912099494594552509040891382514868000414528396717755042724832789088946463877820847378257908539858983581737840731561451057077471144928944376782010341434122292141736923522773978491447107012359377893715025931289610801973226571794605471009793320730924742437140186262102801343019192009157606950309588744788973881611981993019981070541530665848190319421751122689051020194257620247242474497337776118278720862987429385197277996221951850412549085095658440371816397814916381247580203819929523466826413421384795500105065842563569512631755548255703558748239847252480328871082343904824121669886263859013533346761681781439271644761120587669194638060750448631044470820182952119984957875862483258033554469424254835675252518693812792553572779021386466760595368264028598461240864650185683148324555801266470786010847441197832763511877921314616428672013841709855158572279010052382007425351399257594454725761531588011518171877286149430057462867912857319934878422071064614860404896992880769535455662604988373783810891209151284487498207863354187249605312706940297389531009083502574949317786752593840971207244506677444447142735257848496605600059116968354495074343497860155795347499942612538356319711611666034436859743087393942561441434572155796887642115943457753039087989402564469975473328583968219210308987229782019196280272818321653536761071448004885874823893312122168637141259546409544015894200682965432728895034834745498656868717140682518552333740642559546123659935051252782432009932043023237391493812143672468488195919514600208339810070637966055916626438686821460179689317863892248540103275735054304632543162142751096325546319022752741564710466219378507181535256589772382900952586126911305702132991061673554073750634476674427775084538199118968606148150990355423765231827369866427212841453720433411667038641606680360271413258351279329813926112011422909966513256739980367259078899407748969203742566646825563478448916430179843167462318614269145693167164769117536537196952654317584668294477905463476806783514916735558204507446474123438825942938992259171896863370201769080090503628504508167606192262829304870449773618629773755082474967160858590263324899976369294354864101249619227515841465298220604857257206989855803125296130413602290967744321124440043579851774412975610949512320068073259206699227069971881525397000221742288712076929517242233191900002314163601557751722774176716730980774156239140678325792606949048110771917106326196366365126253384978726226776778408098673234389770905468096360331610286861448366434828622934999097404955730420860785135287689554752573419320256093127881042855465236620586731877977055700394454453867746746388648701443735323548095656141801292543292519183171619334311479125174438419956598175396228466564021831786053414453328971200979247888924247749938592730841496711822327046019851979093310762090405107614793076067139586739625566101546953643214482581928253415181939766609940899220615224513463945285313157111378461169842704978749863511867096336989688213293013359713169705158630191978696505127225342055309205248561514536918960884057066156243920434638268712724944801475616138193197906909965635751872060335151920646157912515249103377400582133728951567548319033386092046303848210295459390923279264627026760401866022354297111797136630434833818982648733128277731044248774718677501107390695957158157044715980405418269195950149678889735143704385354811360623760549319982804395613456464573697307258973272074312614483974096914233252640390549095773760848784227657466368299567985084618423022839563950142262172529079877601573232420472894941685163691933726398889898326617702361402972222198949722154017048342728308376886515349220464089461048342774528500797763569195845323124262994995740571978898853369292123896762699625379931676483123349709375236349439278741740862229578661017621959066431460723457647295378452930368531333678261310585477288788217859316740482766678831491724385398020699334192017538557977575935133237658187294622275480003578646341362749807353613305620018039077812766372415308258143748973148977753975773719626683075005722563751964529752076539264669616857892207243574583890143851153899947209787712392389718804958051640093586074510775586162429466049715113132022850705215345634390626607372725946849211308273182754249490379888301463920218412524503830274320229116090586259593046736209969807236503670119343551784139067283917814374588647668581827749461601138520116308981655948161841026198149308022369239779912767437702618707690568193037772144102756399411134963925546845504932774918072626108684955011539559438171281209414139948134925359015023877680705554161243612107341373858251759782543110613268549673779973673369714695786682130285985180048857207685668539111675921650805407638373213171478275211769044397273590631531416053523315492092607730250746638124784360388307141352045907127721061437854556594868283828479877442656148425024055456645554170529852053389264130985501406825399774766369318143130250833986545777394340851126568392097970689255506891018033481621734806467956439165265686786796881342977101670009541165310131756749320403098795812713027641321297345766046929742246592662291804755591337345998808333813400386148601855761057749291782000241142205457408218510271221622122866965608521769378018174609616619875718158289326085018189496921849175441751826396913685224389526031256577717338938711308427548250993110777842380843819266842095208431602162363567454810854241112209657120833462819116932608317069795155908442539613398196452574337892381445737120494041170428172713107639951281387283027988800789742328522487693202512596523122175803862936122392306827261559756734162288707339327746042641394040048228912794491966184124866624830317436412153348945777232257168845460379213081049373128197804837003475234084565574332334112994059701043764720611325159619206858007722485265553192378994334417943768256703942619251358290437839138431394390453553446239959673511866492805059634975542755616549024457585808611808009823235085046012048826953971479037440895898208241012139150355711074170797614464499486560835849729620998730591730286573223941600532392313224403383169875987728600914293879288453257943557094496701378138912364266893088105701419686070769141204084865954392666801183669738084192510742363838964089323777450874868796465501166629653348855372153314753994776372527251559262243664137115074152496949507699744756139559005191508565159258087793087460037753151664792322589351872775257372497161473813050638481873295813610753410942458089509656506022472235553252736072434893265024443895553257661627881401164838540739328274518423327885096343397975980740741167709659840381487750272547156500301171471983625318757470318065497144025394123181174841774968057051478822462142632452729359946923567397019370372631796913301300751643816853980825109027203508913459431804988668621754880953221255140176642828686572385857419502471905615831870609118035956008379857512282804453920662885980649673354522189155444534769216832849902806693753107215348335279145351873721014264068367924074689218172609390236486015565524825626651665405081653747853235480659702846643478848510487135857701345807574462537208759291948994918893950198747553527959852722894982495147081970991130323142268028466821246010535914596697744213108621037500382102913306351851007749670381059782477536704852905032526911896714627392846648425272197357992999157899643733888143125525996611111400572291305445329440547056968906927830567214026220822645226880721261509102330118237038213357558096507074118479229606595327136294196734636460921228182865450530449986282626788633835670604475953399875085381915837264794094820507533381862628716990255472564759771779888291050014596567676727764421928869926103474902928358056545473554716400956063278778116157862570911564033873365401174198828580851194683549633926370288961510070954530109698998592064565470891399441728949890115263214036783074124129554580781679592890606574449274740827169085622562618463971084096314247626995270869620565620834392959084371441573554981508181253337705330584060950800068279105931878710566861676332822210495398873483766539014025257059397251283338758444075825597480472120698399379960142964155440460725715413482381269368353410487741691686045164914663218456058331955860068728574472239983250988650158374039898145556805154784428078558654094273684641231534720292499523936590014497390155512544725708149847300121133263496092366845551886722692008421619798496649366747322901641690392925902930719180346450531597097571152202827913255979035081489622147685470968268313039447451714352581001944451621035560855282009831629490068233079826699414835090941692216854335081954170843827502627963451157826197474356981769978236657546648693709876061934659071299112633195902023765148821152374155543672220255197895355070033712788918197057719213091805068531770654374504080386416521848043555792810193942158569557651036830467014987127493827196106842293310418732272495143769955502921704683354603264090483260379271924986595116573014121594089029799553235447575060883590652257888811417879292032152655063905455048669932838585103329870100519865066687139393266447019765856792177662786632484645189727714460602856370029139807204924249530959351625980772014904398993783817645422865761746206417542888229934429287121467984935204845690785524359649873634779284486361805038131339300768173210196573896189820206857162855505964678675587308635363374019552080394555937216698891507973617987959890512333410034262459840384545496780687102064783496547942801560733764029317978811381102591609225501989910510635085139471322071547650975960971069240946733862850372373784678613536762952894224250050024611948324026437065919526934365681733099321775223440686119491658334312568562689180456234778328657332171886665177197955405678318228564785713171302731076949083677289547047313535382362558595996989529137867969782033135238832506528865633114587590356961350544753861479712322349897216952895215753260666548243822648479860783196370824385612820431214505179112261285498773601958317241251498454820575409322944692813583834302067485672789507649074626493704218457477878385494266217399003631147332393308068042679508037033081931006496688141383238745608356859974886289402009110360058599797589900673429139682133189408616992559105884350155728740671391204632069690869374035891447245069979667799572197911612933872305402202471674144326769852941747360425152301526489854993860228783412159391243854340473426377568136645325076381890879156786375185252040863432393880742507431456362064671324291217705780471130563995074049089170478697550921464201975291017977531202222850707213520011836678855732369988935176156694212362434321956713590500054069514888170041278805650493398740788699644572429376146933665964958782961692188748455157781225518690644303276026957663469041937879971006158851102307075533928849585077890315711690273030112987298648897575341801987321291057940041883941786206362424025071735880603814441649102691820276258640715238329783093713864335231517098709031693699535195965813837864459886016636489100834020597299963922659434008626465730535086376185546969363073675451039546034622795475716269989409713250182206579420692015539400415492240272249961122677179354902356148587645110505138964665882267366556628864987021181824462680300797214867745388191038497403793929842798568189443169018102457578144827294460647595798535758006423779700014440334628203601213512064447711103491062450834057097162819264096979135258467094502668691602980477959712668689708507543870431716498641310034548381398425434757501960002346221865997622998977781006790693761649529153372845976662699726080675258451489734786008989645079910311170297366504927695187795260147409897823945306844945295555965510884644043733264546761201066214077634998976282657643847698896169993109831409178097294899356850769651339212466463449840991219991519917674486681145326260212695293008672710964030742755991231565863117861532500206028166675461075106976323570162838327438351677313761683924062179216166309816948950004069850738029292610323200869588470188728354821680096693449872554858274156820517678744280539605279498072475818831342284182016895828211509158756218030646618114746555257482196598828359258032363198647549612588073983406808318527893316637327908090973311766224048725465683468845339180156014099492076585749866451500551840428564733507361325795346852997569014964297352315868095307388145965235231472080076503691234996617976811901015474680809279320701130468150619450876118693624459665596031290029348881742820589073857974420566671359392550050694794522462211877216919427052626707285976980184766979111625515862735966028398451433170429660670314381272622098330205088663976058886574046055776505657335097300618542909933392970860906451275814774627308031396127039423002713533431330676626188971011027729973183727303813392495106363184843514197923119803934186636108866073931459348668933991504910255620172188172113807094767385616240698344647552442033615643110997262795288715726551925011853908768159687591151366333924590857441397705449331269213556074703395284737016718704015099540457920646117943008602463556037827567641576657402054178162715650397757652425461231215035564542673009500719646233628235690240627758548392011523513667486298590716275045866976970756923943729803787362878526730570900713642431300617935153296332227172093471826549947590051363194506806824774681259796887549315007924336307968342291191745204693370552479221307558144026787418184064992082310245587442823513296331545641570294363334479296028039526632010879184036592308631090601047374685921047750282213781848228949923932612439207953294547689522145019024077506792843506750581325608135034386915972966946362223824322740783599591646768120611573018317593527769424656966524874544968503131026436402023125141265326616742690779240295982242211539464654597287926182153481217202430393906101616171853819932310129456737274397288237580277259716285278269593740954601155021854388475111186467348003208706725602625993976304115965643066680542157069144503314476830711483427958892585618423961255459258654399459905845206201775096736354425439521381697562604103081348837919472073346075541161915316881721859076646414202196733661956038370247303539997061197169817441748752922459196888213203090494443524693902483329767671504870171597165714292128665658567101898797033182801405369363197249301269143716337449399763527057452254106449567380046697883244732578225608808111276772372117403575085001468259391527018752581707251345113100895058379223722385579553502778134833397045766591232293993159570589937065659488043677478656703201411590387054551344674438645393253499037471943535843514095234020731381061824479735280238639213547517443722906649989612373325982722862224538884871797962468571864405179807445142335487629049240139095679620619778600366660288539218258541214431559538753167667983274841138712903070903927258665603570721174770251337712200315347766283465741462911418392415850380335106291639984937122421496452124761614361637880321901012841758795513553565166002122108681605675268289383538987822474179535621970158103161325154611419833576318266078233906484552236346007728835812897140752584335385279681833611867303072713961124638110689231686330276148103944113703878323851373219480308921202557243137485010395023232057875617657512692416940253617974594966487186768265052711841487671836318707176225595958277422127129790877399091251421298706719196506223047926147603572352854207130929035123340405545503769869503842332501308240430775547294755209015731565980917397380527407919254958519204490300037574481293213319968458400028038440230784327050134633645037133488165884257953170334014596565542567932472668710951931862343341300302667954185059728263799206836665017811203792819283797797747526166050418418391406212397428731824207677232735910228501984473105422590945670422476138581597686311490203190108945696970720050644457475692702364747913629838443265422669027499082891351809244454937140588205471612087922790808121975837240041325218898726992060818779166183764654325553287112124519239889238506791991654098452099543624138937337000148663803092884529475052806312348092697305517241098326941457096477626381177131439945763616821372362466935923186258215724174322791135724465280090501161969337407109230311003116260518278571013769387844416440490037957999374443263255035455238557857982532897819511439058634860888207429964027563731689145429054653531027920960642254522642711214964849335187033644203427529601105182913439716914427159894771664599418184590722600539453355331244271169977587982394465825372116377612143201518921866366340246479822767914074243600322351250291361804622208111169071783229712338722571526160461114684723182488731038065863626934018476694121834137783173862845188819060895059625746172831510825558068206953489731645644918156344564008280452018467264814489267928226467310581703070434815178528151914707108271024744592806967004805512161052657215150398663372121259598766544510700355793274048360892453955041389099801569998548915583046967809284230298139382351641501652370329485296807741632964252882183473605045066820957922038089125162029763032839826008444288224365274888007821968933711499156220720149369444439446305826939954593708988975417599004261813477469657925712859131947614977002317727947887295531190383340737462971747340308872966308302439951340995109595992030671958267081079685271917064020114118971350202104546312373981222686493978225087735512104284764965559422083602480789111504779276916374176766251784378257261486250131739390961633697044001599798769948882368050728489429058976254720116450156698575852921873833769720099026901083023931273105669674496666027780200399036749460833001488596871096684100695524493671880408431706134065836477093694022733724036383722978653197039517536405495258681188107251045524423257049694432243196542730471190022429586606753950652052793994786092276223687358645753908268638090757051295207799334274633937931811174645913366399485055436470270655241467014697856925409971163370159313308634082849236306566908172595729762634618677940968071735778262805148469126219668763055886705334825176588582987181104771050865010058695094093968877455824320340291682977491608086349262620615542491734883329099254003046574629147420539310160545765441626974678684246599794520332117546041164339585139222570254608325474508557015379580718763190081387352674246604500331381571228291381667456081657021634998913405450990907249905105836299986865158620022157214420233962366452879303922594562425649777716143030532171609850641165674687183448041055265235454087190049381221061749057673844693888342541157008594246440321885540023833338509510014171502595944101872906095004635315279736373902385991244375274206182657977228857264725096971457798203573404477642528184936244419289660738276594297578389843354062782168210771458853594624101568715309733353258736886182256800071523459712936825994799118464641363900082835108813573271830282358404319646812220468880567915268228556153872719248802575295009248208139040683182065997142914902399955072807353359565621930279345184801877193033962786368973779569588671411623311449354788058641974698395400531097162367406300683621799231782979868961655088079477374549467745094280434962369695113606043368232604201036506414365128209812337336653972931608716248829147517392485999893307905212958060456277852078980252025150997436539369346385176204573689149190592375618502740283577730732090003387421672338703791532109198756040158513202240395477559594625210510668985978203591168350391936498181430379386392693958687583843307283844340659318716959055721335383017884863610157067685200629674424649804683108643937929742975168640098385429427677265793295530529929120585289347800720729676193360571975551252104813654652223391794629493305223183807861605427607416798719118822328201208273153647922926420132471920500604865833199314268592557052247098168296108438655880162633439884720671318827194596296787026466462654729868523336449413913110238663344305496358601830268502789816232726258631331947694448714112976277959923039322026150852703867100819816199424962424264175615271677377585630118068848609901368846445572146029926781233267094766886683026907889362686104330479439527176668989566440559102624387679690093004277650237638751142695562197808734446584941740802971985607079522869463380149823431874713781082699968879304914448038585919076962254289279814535091974976110798893155276463673913263449451929907300141022189454212341615728417220340277498631460777463831444321001459154583715086783102650403078239428935798989538355917298590040370769104485474587262218053457410873958147519290379925672348143601486037536705463664368339669779718378682941073423687791102500806782482488631038639873791096486344163883748279467104406775396823545652214541319252803065640786211400952400809676131594535196701953663249854647295919579196236799777342921529785800371496248800382676355587370852247724139107307601043994127151221973315212045969427681080833720548160994409490343499695611000228292848312992356649884782001792859624883244730503703566184650931574361426665484460098897853104664391032743417383632836586496219222655229626223625341339797595775375819288899159286510090835551969042610798297208552942098155020861947148076817783878787802248694020437201845721002364406914814494369863636656777606192355135012275816641573376259726473919657428344931456080695125545247162436427830716306042134319147291210466425929174685761451713296365074618598348946324495655815255224424557089727030481288009156331638351348182061178028023832429953135026857617808886858817542954272652947962861167668597637005646228057729628935994425353694172745507501228329637161026996082254078669610469131216778820093376821304213087466740351927260555157492178233078794379401709418421604882613953592606479725496040907117480413144669549199247584780380582539344434923162528103286517293055183767657759478902853474238763849621727292211301171064495095212984037206857008096682702791033291131840880857022588043667884803128105143378601109806063278101788039665472486101718195695836493984533919896489027361355575628747030983237665642572593734466506995991475636650048284693758196848268065179369153636847283034522568186963205331199605346216367279462157638429455950570515005094860569902189694433434667701473662951064232845954863437984372455729896533340703623482345638042826689252135134939893328649516484807301779771857220962625367591124374407562338416779440019259336747882660309337051297686100159371103531487513867886134735957156100941189706691473910314298122666020295827721317433840027926152169196528255298326629119031851999266655480141498327407400892036792258770283872779215403863202652313913365928184292149110769059503423208633546102446854239173430213562501758003218341941594129832145743602503586293210624158524223206364398058658299557544606139825110059680976865591293105887622563034825137424907406572487146964881235666844473654550826228521152638053800141982140327436089977678590936754389271922652511054860234204179826065644552079704042324058828563135336533640712397500654275629668537661357487093569588596905161689226557893461363736374456307251438834730395372406189876788143997564396377914361347100781986315630933659757059634698966368127416180270103223637885441936141247877096418462941740557201848894436204156118873964680230227679342261404157090583823015085536953282714951078491280170898551755278401361075063622725372791391548217302408098319675683700791051604144652177454845345561850843517506969647754537892665951848084325942433716240158139958682062433195951041353796730999933986260443839422722601307259458040480437532710808074964668301853643649125485927347944106858908204252840351216749945035450991716672006768302795846809142614173172267127369153314085668381426611880594519549479908045597450712128248484091512080622497228576639691257862477290127845443305573811469663435567011315155383203370798365179058346934391955467264185780829352686318931445198528883519169764564224433353540873707812065312750932745513417999602115234504289668462038062387953551455158698424786078228162509140356476447399708743068102277174885659069648002849767101316455213242544338361560811093264860992078719977702643415399573943656489196176318192000060247666815694191530397315329414687755896644534323540421493210762822198500839084500051840597859680731136131347059694863126120481000313662839953214601824437323326040417445116848714270967641030546876598226603045208977833295682406658956087206765745718663090585685475129920375907922190457251126110353201449929243099417486673126999596907994328816925681763563358953144968283890181699851478548907210226968826062700280300340882111282349536433844841097611223343757919460358052506883083186566893708938577410203480745298119443086214467039703922382188750907714648701562521967179877837570482696833789523780893159931378218652535143931679937157818475204497832704997482178017613710158910287697965004854895285923455126060619064397313030787486704848072150278138908199727357417863870236387834961966570476288889577893061170625615736022225787244420699631565103513039319304156158189283162516077805892738408544698919854213816539756599547665047971019419890624009677943449186461654884148292102424407147176716421919565253292187260379078564101208227649749666364429960136328579468381439196776826567295543901204595562478861850720952592229203217143568216441817399949827839106427922014138208098159944880851295261707642288735587199678744639243423977781671916003885331576906984035740252152746935771189617645881290627030470015339807457666450680556374284690849703702657910647514143164616676685766760915709098120517307271041145408430364502405966884226695857929085415845903520168870715726987596120430288974079976688219853085421439124775586149679248774463119199160485303630835827692389947201229381929614760634637304555911431965679139217450608974799526075584048427117626491824382709947034017832344103029981637980472546581124973966426300711453534737231653324282957130540674098662314442202036058196004637039298794138926098957870426915507164622987738709818828099819123071807278077296634004434770403525325709365965040045321587580359976055430738242731386391760559475159367384819754465346162317698049318884809819117667046319123222411434615424854053230867337255573193828517823212771027883998128366065689060750217690859630238333290945519791925564499267393402846042102037261634575532088048083718143108653398080332162725125698364180155327275256327356089086439715738654693782908757590264259057926757780109491812935886004648156028194114551825984116213562590903245359476429857389858281405834977859361533394109667996334504184205256556200310403045440335281059372405276534559124745235934533284663752758623566976690439787160159072770199496698274495983404887351152639282369892785034289289673680365273665679443230002798747559033762053219185179118538370992302030251323623049375483628087499468024104307587703953555826938643014849373013635032369043732272078824326550508300213114141246312179975893793615111438835355986924216377094010246199122977116586088222662810663542286953412094834614750828735925005731147171726938046130960046329809186430444425141132522763914466065670460958712141036867931220210568859389844635439658257250861028817890827273043370714941003741590189743795220583855014405294520736442048229493337625018379718701709496513892588805743224074056125830228394566680869912069447467919680670292780056571231177348469927752343176376820552049220648334099519086523137305525232956214395243104728127245171581946471955659958837751854834141610322264176582193782554812893669351141433522482150540771097402744989653162158912120915876134093431031103457515629212910703712348206527013815100297432247893040620700836069236586808269922857612269194070961000720423572168515943851063603357596259730870737009348811031434449336121860814709972043484594979705030408498019584839757948736788487793922329693007931086594752436801835990164954420455285884617848007660878100794146855663246594926411209206938063414029119125622140416308519111611949001092003394407905498313773899789722945200239991532190393006940186910145418126708328511708019520194097423480794113745514657201176813169420409394612871364886591778876791337410561871381077125911519475124951992723050352152483727303032073133060823326646601041237138415936208168025702927941483921315897668061917523379744646857215782712769006682516913052674043216315342274344079336314986344065909925877277959556077412272927326202982034593222824605164481850712290528503504593146372049754238899296479450725185097987436561428171755869456298775092515891866959686982177511530907842281758545186648347757932057182771512340401143604199116153380042394292666048460517694100185799938425427297004903978807791674611896296892564229107585398489246398245465530473449464715564148920247911228279856713547859988505324570010564019116874006216147160898476856002695208033112513626466461690011779120126781039022658102215181475433178980730385058234042660371588735474153313729307500418572837062955597443900596879545193681288790858879730969303625784915122451033959018262376023202363162221951189242617031916067715109748837481457169216526716653298744320893986490802369053583147160600405460338362520960931740383236949617064254949049607024192130045532383793644475837973479730224599453143316960628609376768861935734811892187151413870252428694515495861600861629536796615003740927593342451931261518009654694595556867787093223073770696532635694220730782787624111590430425765860594005555418317545983953528905908950262987051045166539165867060008826975784079385142874767499828070312890986856219950385219805827907140190128945367529555770982119982510419958546548105805082222159514570270875607486893832738863198844954589208354271889975625809655542485275192991089601617097495059998588334023186107311973245053408561102446595929695767198930639649624021379482912350128561692351929157045133576955297655607970764605398202231018698355855295366957593550240149305657641540654488219697614046400670527239419986509914079977744001543692100831521981002765433513844662322252435186811912501656204489345208321848477232198533849466734072222092571132222658748958156690339256178512572388911932383348099376716152156664740351065275613654250417401886954642940168340308804984775068755472293864729529885144335026546772449412604035836152669446407112887692479630092298349048517013113882877394706556086413903304223495004973192991452216305346334372932086873918678122439775760054896465713004083166259386176355443714440611011600865929241685029359028123571073261957799979126677105548087305741528146369863439202280830401528374989293365555015777069112397685899907890411879731701721526642919651951152948706745194881390111422465110435717932759616465032984650242402141133368006622793803894060630465885460260907602140924034164791264405449317697849697930492716822602935857135366167176041371045650452597754538709934489262554114447336770398191032924747005042983950931232366684952976163498047339400610646367043803942547140219448100234038050910825765112689223937437077438292854659070144229984384674101869508366398496228777578431004827538629926233708368379928217178121998249870184249257137960411446415455470470828357808520673807053859167976495197777032248366434408415336773954978899723524780745710235003034899012272931110187286729990749853958630356077771667652359250496871463593484312364678076285966626875371596275361479833501936832709831778902321903878253790005934939696485958052653641712131450695129351279452978519453849074954360787587152675409142344152591771566247746848890684329639752226447167305494455890064034059312840134269573129697154121922936499005260852682715925547769543381813011217812219067810004570019683826259658334758873724358297839342038573213248277699677203560392066503995667959734134453657996482014275439452214010610401426192148986153120162587204656345324193312219793416175053110008729365585312486230848422982468581710287649899362540299351772806924685847779007174367795641891171849015659081349809009194477440424276494053777033076530448885706268250917958892648871413704015636367012428314806299787857367122440661879675608464498241593690343024262795610868314821078202881723372055128089397629875891011904344481301668114254272224950554301163016430463860761000099747182646029856578512920844670997300005562880239014571127450564466060557807229005204928666948501716471299952406197481353982130648596752609154977649971244447077548098621555853704426734772828195797368116605377984967556357892757955746963003030507240488169544985668822437787082908274223681905774180428300339925117061750828361806248286539252020863248452910403502291290514334177223122679498479474322265597063535105834855750025179826099867761723849268594036626384802638482370891940823649533499408944545911009524527539669925693539279132767706708284849904184039332787771067128185461294556381041693504987698414611839531255128623461335856686310158748126427255891917056659837035378660424484326760299739763863880926183134439749090388152039106842788479196578159981434763281840143528181533213125042295781881130296923550960716297173716336721616580811298268928896093599653714802485118918115075916550547690295774837205626516792517892281693374715429714685454398665165750308547890374899333765556871103307755213866388329895526776702355194390750544468963072339629567248677426278202030922890829281018855679993130346176444182546081392699078563662439444486620705548223142454901783059271944957857922397660062570891397691258310544798719410727032321496605237306471287366519987005493188178705177193698631225909409982855650397769345571298486350770001826766823805260724238642428328669611634071331680439750142982768109780330385505128339457453211974350181943554463731967372648267481214791838601261666682535563884484264915742291998970684479878503330080740585880389512393056866683824620098621058196692037432976503324822863426998786665065210077457235514870913781082720805107616335965149142564270448316001502882595258801010077067429761704231694309476898833074034064710361747534637079931033493936150782764519821681999130434952332648759577150623715651483289927463285168871863287228608135213353523805496394437740922453667666749940734393290056255132069027379291617450620882268135866479671684730160222557770373498855762617110601524148471295376542907260944608597025653855262612155244803555008746275571074702884910693028017544399833969836158360615522001679664157785402995609019314386831389518188916913414846046228269809716859947759973007079200884762983898962915594317613541020500654958915940134498856341475476531978065654913170435425644507883138281741194031409510173382764075001173908313095866762422847110572557096886551061831833375902965880969849589689648908539830805841457723492507919867791453677329363578110402716677328414156893380893822422888434648966897303680699437779447475731425346424306963050384615413146970249568931639728970448920026425685599011531910201164673610217018576436896458163179764384828855090436004505280772304276834837619597899151329602861580283237147500378544046824371204523143434260738643609930375977302732956772412369036264681768030122959315768427672921421156359026554284524383662908400859935354601213887428871631216217384348375901777309901398575124782502699890034226628557495233143835852308514031449734365653823606814198433013135483406638557491478379750397450879763946442710893280819544140150091595438366877574356144023761578555593937055935880206204134096690768975433383963152210477516661158363868814204964745487599180644006318427731237879959874675305255005716720038343488434233692219909811095413820662150394878841572203459689545214588165158049692794141173151991861748845717843129715170578891663829817290523276154179527806007921169149569841262722002003174159676675292010349393208365433164303527364804484519652070682395578444197221891106448783801015626174217583929669903024266576575076994003819738743007621353960140868946842104115769811500116165215457837688727333621361182217366282603990240840755103442097910221617786546624698007331676615231416703575398457202482060752055652937421804129857346028260859205055886546856119126459297400335211157469295159746164699803932448429859247316914652040706784742345430439216231274904831453176452157552471949347935075002158741593817615387699539580770765232211895843663652001080159310022879217550780907585211154226653024621478427732060583982055667075624960098066944424059624068465563012248868218193142459132785163610812567937049524626016685848069573521311107259901899350098299855601006035839178488176507271560644485172339420113969819653033061615728332500167065156460770402478780709014439636961858421902138281645549247103560306152881547753294645321984869872898874506965153589651845634461759334702977909875321219088295945337272062468297732215401044860346947459342400458198115081614846680264029152607926334555439065962165238262316124891151062770187597809416498431314930379047493812736499871683614769617277522302735617009792699167530709369711913200601637155066103037218394357177125832287501622317895094470116074137203040317604829648715348246844660946454225683401928950197123019108212309523965597501572799188869015521292469356238817783831260957425435356125519545234796924126915971239523384463976962762528718553349986010222691164953600868679223333160522205265827815564604238892468743889310259277122627017813255708958555033999731181326071533611930463305238784178110609940139651589940621247909639353843064782035916531739372663686605408590603242866011224252045591359496087970003242830887766665718471213752043203659247208467229367523605983444709612340948925526677249592230428536867821327308181143386039083235108762147891110627155195644379805362174495072216659029102945903892743570043424567146122077360310649117118679799273283810961965310857544460427546957581425087018094758561630010460564608771672796248202665441745717920763085747461878627769309425872454815274807233707750196406228471381054990598632051175365383363410407783079798567205277710787499803420857757849949228271320656151146707652848128856885204391310220004947914052669556770176791413906548471125259006279490099102214332930459236843536782351071103926067942172632825494322027634948023843495481918920800009259543310783762516795191670352833749128903192696964980192003059467921378363614880599441169417550847622072452716600320870054296034274953820341860237737595824189288549135374556925212157635708393978242584272791665396914185158646291773697368771660827217157307185283603950811719869390882277230462737695562228264620335905497418875000164244149342722546385763747000586194597707964566068682495167489943177591472156902518073817999710732107540651045469847019339625209139928804199688913222758332625176010618771688231839402309693362186757435937089298451508819952258917696493586423164427945022170654209717670946643999463337982589403737297168144670331344702297707163735702123732269669658756554853081083420839948217265280365894034899642454052996614308988077630244718625353506729071500915855536578081451302837330847841867143178566238909266833279809016961549626187140162183983830783527349724458912244281534403406417605368015003421613052825124299675945590408271200797426412168468977089921234375925936639370087447453793439713759118597399883501713892523699002372913607050978167542689586620008457465098263609055981030214281711856658240101130220795181608983501786385859518037452509335661349524907397795955056587796593915084924309800015066165889806828910703243384175429396973686760412140176894956887174388676501890932601832700501406982398408847691751207030096726121130298349063441695737122575532542340115217185462014642569233922483411515811541731050999904129419063165546345726070566957194006854072507818490554588119869421408944765547461562759832188527082849790253486196059823593834917534157168473483658200999241466729009987696959948547581906464929463812784040719837815947408786740288351959237155739507948511820478948200363875441009297285892145341509798917398603700249383677322199755286991513541850163945321369735272962013643566700369780702922324452182887063630671442517330858980443843291043706877888838647523344147403104523662480409922366925818963586424423479796287104515460568244279026032996105772791860422147953373416616486248312238824872312710229068618798522923995603608541432715606070811040032298934128307266329425509372881212165187464984999509936547541501456692309533166046295214216679392613685193879185651313568288004630674254588270059497216439861241876470933019780569068698116332215436536579216233950345648768441844768111959813813189903879082544548859914835773146925965697687993186138074662858298423695296165607033271419958854309880051926021750754620976107342702873247089638780991385827252780444021149807286197350883698835641201515656575174128675653788454319962001256483399678468536568555029405071163440075696901134436517018306699183909836465029575109643128362609315029314832141113832293510369562136871155925661046025141838132722566378588802455055571840858369786416398342642936981814179785539100589933340356714175916156985911979145809689625680248901471337446174638914100469848482429023534395236638178900523630519635446223572704921700315763489468566264909988091242804611368208453381608604289866749815266116429943630355992024606851003009369117462884364106968499980921766102841569471506947313160244832793405964079863733120565101128035438947185564286264011398064266920507935237057047651477000739256094118109485716496283652025452313176653823676149174125166057692665013321448815914936947025666852629830870628073423688323139165574987951385007287894888973634404484497722776253336105845736404116062548092947621002205741840713505379002993721826049273451724887361085408884754544259825118192244945920639126786503819278519222173042528566056365055627490829923926488148193850582619223467844345621704476564873954054037421011485707755274409370488859873145897862578207907997396833361571452640698012473470571362285328560427551106308723383281788379247433325850541509534938166137760369776326434290298657806677065238534279120434436801407826623624924838488848632423334973980379819700237915276381076789166242914826383403098675723334021025804538448045007851021855330938748950972819971336831470780007282858849510309483461699918244079507294398464122534258658784232122936709110499008562387025474007698461027148547349747852214536767009321701275695022294211832847421163306984524706702699596903989239983004599689713677091849120513386103533184755376778106380090333067521599897761118287555653404663093822907922231163120687325241814422436210731633905546110622462603077268566282866034781428085530961102745037020097879518512422180055123791587015977103586291195300220928579255369089477426066615560467560314057601700681362083853733046305242573633127789711770259161961577907379411572256903499359237858325500249287235148469595182778639889777483106295492864125741122798023620308358948092802545087903467149672971270090992329490715194153775846576540428156785308191770101432452741314592872655637407675222216497250050967971388104019220011318261514078931454474598887323317136168991647733969008650296075252902506945363998433693889166332108957166782391514016161369056757464399193870619829515927024240044101531527341792093119594712809045242363605890691229272755647816945981145565173556617014345852761508304866399117007245242536063958585375615596260047479865899334102457839385792102722107166275090475485408099900280853008896090635512270625030641142437552069494773517583657297445891525298086512606101268817660156006962554777453553759830455319686470616896306062546806740546744973943502721088942278803573235339820251612189645186624562359578392470763995251619522892281989671632072912923182854216398194000025083650885308796827217376002499518611184606252967268997962159431996228685382935322267441889646068052385338137681471149189299367617871967174524160270826601840272955123770070471398192707187281651030622175800680934749609637749433057815525346398139652241756306031892822433584905427059166480352051562748213762308078186106179687825929985981699523605272068232074855916705556920664386480226306011807282332543843651699601620535266263504474314939579881743543301200800713283018477380509972664417125720441171394900290274682107320722294397390335642989874417452569881823584839891899761694304421597776822325624177730627580905486738630182916420582662454819479065843372107025801655832175870760315136605511773675204323709138725810572215275451016914263486505048118430582178666303922262047609815238770622448533256397126463741307511643576957420645609953433603726541397095576194057687910755036946434907250352918498244480256110575131375924245305841014676218767243024484633203268683853727404099007680953222972203476009047434443582830766918425978338384442640187142162467966269079214334541854184744522003936910189632790204860378587686698830432280367915298237787541201564063379460616672975162190808371200213079916498230626018294762276184151191907763389865926744346816462182411623415991919506979021647330034769317058216396064143674084008104147437421077243935255605775577811215065097569499419265881191766949348640512754720304552150893711144520111048486259852967968911284781085980450400752329403602756136118218373628902604995279392818453842089346392854152868984517204402766350053595696144499180624525987091300945187500001495752291839073014620881696595852408439111789065718297359169910047871343457488233100252584389341651458758245906623443534352884453131795236779632191141256365389827905219768074718947059456352640123227946021048964193915636329088225056916084406623403598262835675480102342986974694088346609565078375509787212065934184049763146822020045059362546981017693995271375754343073930549243221963600265378472055238621364722041895264188570604808931859296761056424729750026601863940571208996172953330093277230215548459536357304683412236763302571653266810545585299518499329335420525369108282363359398895255508403913638904294435307001021999989580263777194946471631956820888615706440952339767055791209235028352733433065406479456907284060278951785093275508077364497429485290863708862451391334185219788403281227263320951320012245001449613962753007281813992624970333183503262588815401928136831726482249170895352013319032517752691885324485680955749729038140365159851430290472969749338953408951148233217236214842753647424763443887069740293923393395840732620574246460561141814756308800855273864323527706042106569842204533222723084406236298692909190481159939817696681458909835326225554560586074192008123188453630683216717008363021715948636617368653583455343242078535720490677545213141173653554952554190210916415074725025308139103581235934121286241541874110112098333069269779630341744296407353165349434611197470726229955305251333562395473383432154904567941337434453274578707981156695356848859728907257805105202626947219557933020584206054220642626131349669906115099781780071925218064182685972341106317519324679813942284238344337485673497386031184918521635246507651320129420272596411087745956113701311454911147290618424166381649179003062306319770496868564874448044400661354702931550340177896134542611891620856971749962563018470689447898774967564916988434624477336606264840005673980674003534655697057536317351462432447009247260530339387913546661213932665655344664081615195877481486892652407032351711617736579693180932084444551216362376260017409713755600441590771100629890688322350547335739668122675434164835691551717390817338350224391170795469349206789762769147799249325899217771365781958586885470786080596299975778344394506853950896223963976492278685947568493433070226230231760090801761761641794026548384728303925250588364242442145083156466942057842058857141537603625849585207296272421400057338762154818515493351037801476289614713789028338674345303950805436889337596174385178556592175569467198188272550766815669941317210948470309816597788429629391011668063706964456331139634031046801640606521853434951829221032203249796872941424812242904263618997266082978769602441196812708452614510966025617324565558705866165756903436098255159789496266259621499450961634715541977759606023665082533014896497122488433776624632500270342852897242865104878927835505785565091932108405891373248666186009674969108248227973733417085816360810799958802031212292555254358727291772204540443344967433702207910359318170177579301489270343764599679148507132955151058539796695766130730866078879594541062847569660984954634947364928452152913842948273484857810725978701529640078207669366411111749995583652830791447665966939949878526680689828269814939776221671824658366154662660711553793601992771743082444739912541775109353214508563202479241945874732955217461465176625708866703017060101571481441001137708492433967597486872875459025230649544035953268307295951829495743978007253971374276798037063769242589851851918200966865079217216273160213119897558718399476353986485638249800771424826953196237143670477050120403882548400383329086364496572386433054155233609796740893055153062772099115010949534347111786806059293809079581841587492793357655508771969300791680609987599064783578058048477832460055624436344412691864336083077739417487194619933376408797600479876561498883787416432823704130194834902902497444673462337568289230203312049286890280440968733315523671618445168583594184029752551270862038470683785151091316099218936884687087487504949690391353484033363285741298373343764702525463212556230933313416328759360943993680107246304567870661530364756922076925191852974157665383460863830258491556319546920830944357415705473725718763013765456211853185849208981443290879870086189800868037286773529531160854040155830015912400072914388334049496155715754109225354122092582660841399683830630235341120051860498192315538530302828713249213577722887669454460002170313352790795224964775635085502469157267795478569361355477061110129271923718109077820267038016750432325155549129789624799379766871690787478921862766736309572973368062403387011978014882300148528579869234987324657313880573128339218145635620791900234505467539787264342862706027450908395569491271823752770586629424818831175172900858247084619885484583884565549576126505500283879749256155891051434688254028877395926028849179134166333871436052026090769993610641231511911869809849778267502782258671251658031785042129921309125767151301418366086169956575357195543094546877548863573078311895107714119221642763165295162970355059709890264148625387402648058529673009226868637612636422039852540823417046887139219925012120886883861956685204256794385355775387882163767631250901320747637835379731551035313263058119604785649050784044197482172568423412575405010115453512248188214145176445909573839725332401309672317767922064108224587820094864127725060141539952367455533961841738486383243722926847451222266534897603651292611204902233859599970452961677676365505214816057881540309451962531235077128635793922833117189204365854188208226406327349917052312997226142960179067235277155091957091098586707268805680633968305526866742604928863016716171724338821275648041491910298711286232640105328366720586573110535378425188732528815998789414089575949027358327255394563604863554783378567772827598745179789633872188249176654190840458688914531205015714097087176302874360944560149398364792997293818032093676731230399572018748243073148958102715157472982061210143995418714559481570213468698281022195357479607086103263112934077347017775253748567618965964312643322055878130724370200514164441257510787724251718504395710881539027824551409726915218954976716480066867186718636146354372146041611286695536812417206444933552531811590204565265389695406941852102244213204585921193258201027364325057213826994129441182255904072766954269659723831478278853956746917005196013327155524017064302405650498551266033684256873192592538025083303737331848548573765973900948185553171242512147674022358623875658858443401806563454309039842507467115851958997253123822588372284683364874084406875116620839609152004450050289897903801263796698062624639339133332729155204696384380802593717591022210171859969998599839311252836603309556026291859024455554248197267577395672233573051712421545195915838851871266448597316410257581143487006364454711771142823973491581420669068948520493784102629310922119434849047714507055907549040156258699382784538259628377179422970142399316607601625436530472843555652885622431793766631492616520624509384266578849569294309565552183053889311101301314953034463538438397275259926900296096483680462995890300703699376854533165642325279890390982807110003701506357257627484365399550223185673343457424065274223474055368603168925761447805320350835072568243373297014347585460276206089154580543132648723255510284153761798054278125118990554230972194091163744673825548493528713530719033176590521489193931806002678818224467738352159848762352970683253456460150638277445797885486945541038144598954404224038366583887089083595006212263147330235983952999631632429534042580283635854122010305986457143286884252511506744841767985759286050054110797082744908627681375048344433937398915064476492026865177050456250469054151017824830036125607554843679211016993972096476899268816288132672535065343905749344955991626475984942159628623677526704853939606384459570628927040335278263271454362747195549542536681403945646890360954304060878462762318553514182934094474304551010255017350300535877483107048381160706695919007326894410500449229886411242716216076288041009393672782259026764959478776081450082128587168979337967737983858439804401834973041492590797408575211631427097387917081339154793028466725915923794460608323248763906907724552450210514291662620766578677371880297340999919249937088053955602484336680182426367742574923434022740587284984459354974668309982016229669912789553011764592664106294680234153933451479940040040858891604948350573571560345807240887284136840339240560087848171753602706204234330001760174526937850349968850652248111789338200513004762438400730219977503736872569211828288635676020066705125141594875143348922719853738010007881980960087635264008648612337121856474686105315640634654221467917664164420714877226102883646950700272439127539446435192564842662440429117706208049881865466827973595646527301497511633239754258621485954713845537992364921484967247221491377306283603368142231789951804835972155112299824756677187425642073322439197257885238512975281272509904055259462197363145301771852773097193881743131731669547269490597888449894197596977146336863389748292268185805463803574366052666930518371738970191201107498923512530061473084342388320556934096791619350468926053822553158957761398334604562677030988987313648374715798358920058166626916519048683294155113504330233937467772658805473448981371680051578063635122245383941462716039081864623897518882174081163116134803006751780713885922137306160265630476569775123231462768493801243887327827028773212509089418078729864879852299992684443624055765669815198018497182602967669893266047776628192503867544538066240665831424978842123918724419725698300727272729620719805119247849493589155507638052143842558396246771959307630448585181930302173649541007525411204111696540934954914295813499204066852424466029041051298690624266718644815724040027965333166886050234291968226841191617591083653101359464557431658289709460903291334476242876737863256910073765861974990901688372561617168640121028213725743749429147693272228549666322030352549106662409686793209970321816259134687331452028860874557995319869332442628209685578151161592729951327700526622316968480315461127669387960717542658289352240266650623784664867080098461542764513912256788600730317738756406601603331977787777526670888362004372401988365877320019379934178601238360536148998281639786016277381037580663218700726365409279802692046691572651764291732000624239939314501759008182087271185787534608082971929806478963139149366497129622913502205096742985138807065567251683358778182073024814454906995894772748165205672447539552848032975094554794883839417455914003395694003599955899141526592086656374298298690650687288533348791961938394586896221954692338203391043607551675505334088850708479975019110114068427731371986901648384477389216433314863218252074965856231449689149289501294105587504618632424360380569362898684298524955813669297902170961882015952790063752330395195233413034596875182029200078588256233321899920178632832342435667307336390637233683983443793697188462803402779167352170794724127398348733221244642596243816387207351349574917117749370005412669637387175978891567893608966146005639247283031046832967923459013134688857597303594450738294329768117053208031096940603570673766568557262693832471816270727370671586061344252469566184997315586141329538680919605514479277194012136666306725190792852693532317432456521244432263409490109699588534625256331442694029641107205818608258899150971917073681574515454570201005322095742701706800427500851798952089847276939376576095666250884289598846692083206892788142030310961555869486259067072536369427085025131588672992718738150512629619548798770265018856699007729922002205582226893659814926011662145323177139149616752501200794713766461179853740743365897428235861281063222213493404251394704726535334284141391286575557046688410310704203361922752153329682992545700956630087613297602493478392100993737741503331160780206204689734136394818973233925524835445944931970915881756603332582528588407004503086438170811942510824578300109763674717331779354132364452236236360257097073541609908425522667472444296118032226002152470792069572204083333411885898547507641203189074870661438258221170724514825124106936989557504512969384334838747860160111220780489748399847272086090281849553101960379738501603706989237743639786660901616287770497356419541868028752583781729992641920763962942514433202825952325811363501859345859062692942007368685281710019388016838763080404984379090450832236761418088593898085451384875812337695045950138450143377459243243605690045227486782397805279562966123349391631714685581759395429596156114769642075133432594489194094562915207300652262461439190633144673230915068510954315713245563652099195609725834634670803923626203653638312337774396041160295014570292037242757981923112748921277651339453195332934414883549610522582920490918010595536756844001895612534317290556421614910102374687656289669854538399300398460851805227301551357111802821689041429349768043545708896482339581361629458341251412728899194998568220459060280648079112714113371240859047437228359672691598531120200845291225630127552491930497549320647619939744769929213145827749206473110224385220656448828001541329721903482607473138350413897938829922718961298727363121605866874719397377624503101693555562727953816520470359216591069566472598834228484222626998868415725979908466230164229299205123438828854961182312486126756044050777010311710778949864205878589267097771152917003425542170539662649059225096985436920738582386864682896871553698545566116903781315611252977333172080956774183058525294981433308314253747012292551367788526338908671559536731621147865158085029072637993618575747530906689781978523324557858985319019757344531917129417112822045590198021404665159847200446865507506087317018216638774338228246547854935172095753425746144115656099061355625517105198255093346326217164018405617159335594145614721597971604635830682117322288141256938622887350545609232740448273848978984903092452838760701432483660485498179570932468820096386030615052696285482067836680197534760952672899253134845196867480144424632773338503006999364933099373082715978719950355076626375118580750880830607652542510185597236003519021840873033389315973098483291597846072245041407761182656476585870343907403545818671099605554808432067058742028150776818989143182767596656353067461742327769769750231313988397875653229222635816791893583403896825908594722048864206255765791603061070821875398613002873301798108873590754304226215877318594961123027037040276157710650346691977942429664389549204555847444307714747985569587722996928267349411153181511827005897489118410813144530075580453103582082467653603431824812956136398823552854587491357336302351965666342779108062266848230366163553857045439415507304049499498342223336473557576927911695597120696035279818641264327882011097674583277062304583581883433239236546241283720736022019238081410397691775377712618848617430378738147313059549423337623591720675550111694999001024088980787132996089339766540621781728750800052649453927197214569628409974214447904434016892212225938314812537208126818070543656687045350811897586150758978633892824406851881716137040088753248921451827646703193047464620161206336804021296526569427142845863123379760720512362967221188849317731734382089487920553719335380372558346037814104634408251381449650215179697277209991041113930278671400983391785356077967600839560848570182865253564276508153663723575330189346507963806158839617368724654316263180940472581297590918672831197529429367350478842740768299533425054125162558788909787524710522548501358226573232648960213687233020595366763877298238328837650133476653044823660376448800263331346145152982996009680568274267799130291522822877613165043496682912254324271897162107700749691512316782550852266056566846737223581080626911082777763906868256717678030082650530124615622304809243507488253160473721489187730197635540636957446866221066087684776257102324994491538794103854454719124282088904478135930402496153338744805277067917877486866715077485861041653795673855885596625678356352597256614374599367682539234600987750779457140884095306872693042715999803315854989986808203469091774175434796889297724968845167971555837110247168469262543578233971856535048794463714647434951853000303912344819282997811772447223924184160540489863398816020200602823401117903612414110179830061366334755869236066195766448462890017540386658584848349120199453937883877366371355879637752685551549326835614165582367792827257717652086211347671763388093613747974323949729480089616277158658299158688856437635456863780660216013436399250309752733494256089288595166632246147925521553373616014034302089796823385477255117140123385177381982254991518956035573978724871307786904670810832255073685054850637209956243113614850290938677301293082791529292007703056842046580378651116386042784760398216979015143572769572542725827539241395196066552310884092033630318603632709603480495242533638569102260626602772584714704123217842349695584501260045924513267113119726124272690069210845760630898014565038151707779384194132226142994079991661391191042408259269144806365879567879797935478175973753427609957725882885061547890854457824184195414983900538628678764822090635520785840420522790817551524279431948370665568496366868790328236766348771557836486706532407927187877331390837238950535176375840667624075358284816551075975686157080736285927876034267510222524602878606129858052276723184241371875479437204694193798820290855117080612925387648276348775636230809572166629161959948350274538189875799740729122335364287963352149056826823275389246415600554897291935984346549391351480025815996608377028852493753427109785441162076753893794710062651119037495587438649342024889053813174043440484003360666856398405125543328157574200299546716040889736690806523938094049960555665903530230678847525401508700169627880604369030593870782633794617696121147283786281434197014881881623692148787686549326375672678508745194096086476105757826736815242370741903522517897144395447715033925679775960872148993926498217054579821680697140297418374518981612351189482351130394419027745483263336748808653710850437955836474543197773952135522868482047015371163420063241172125917276221746525060739898936153297231772078059981157006098819330162934041652035168169873492170870733814125640436590280987505629296134419449491237443892127927206602712316339507222102429022106689143116520605510276579866320076896544157844277611211361559198016824036385353869205199241308228540540908485007000453743475918356537518662559050419097123471527589069256888184499121271829091466664647832355250481230483627064376343640486457544448169884180914009041987755491397856625941986774219198191586851903996510358688968646886364945168450323142023201265989189648689362536082284384164514991684344774807667479370600584540538016320546684342829927178389046038031639832229277704800270093156528632538306310583364627238493948909597537977903446747514968569981615531201811628142562126975183760758252900060843527412999551933688767745102644111281293916126495511861865859392072935651986463959929196478550161157826697230774673983098908541287085976947244112203219562271727252449554560148229772851115166232323455427366327646508858365579589746154583347709293604404344623265316266072884874118161620105176525954229065981947154050905701921577249865832028512937602909693829105908015859630010139420811494963101387047606435839641545056457946701591981656998487581332593739887198016927185120885911596571869477522492553320648012653162617926774128280845543192188733991511855268756120690952657982390405195788600470258918579059459178831950649074820948543005656449227567508970008921887355394073248906774090067557660912151576159343530228543333939454926837967923269942381151561005149296809201868686227771775696706218737956017151929891067576682291214309427215528820889820345935107752381825994140198596492797780717127000210258837118531961423329525654255660126496568019807624527871311627546509799618007413500677294784110850701614526432760166740375531549188500269237476082116224087300525470643605453547377916767934886396233158179256790548025723087899839546252984816519701019259886949121715837682591067528642327401619534449452317342119556052912730130535103028851524018392803261826276708015844817082735372973320705420832771775614843192199760864119349112898928031385361590840444435401089211617785094376042041664360520776240751248195006342597427025475858218772384078394281910207783941618751214881501782970474934906419946927050538958348801403185208829675494363301754632609940178877723447235098013373925108741170111547139402716798472528117383942429691392537157212215405507415677495595116175336276073839799701917039184878096976507161771165776977452128887050280005071059969564110808614776129522783491913523083904680193606650271050335305678354718914355358369795046669645196689640089299873410844597937321335258813735004160034544175165485186135009742542544626753977009583580650324306552569168124128642582435169188147367050529472218953244799563484012705234396616377101101654548643318795725156600104229724060125388646653963694496857564971839957793678483313602060290922283446948253382926922448204830002349723702293023485860926156086286385818895515081838798620654918606001116073172188533316404906758214882903933466592700237339905096871066474116428048404410966887220500780173647941514815247774864846787980218601737384552258034571285919796978416250952459670961655447984938857888243900183383586411881282395011145429370460370278780998325479272210203439098587838851113644901274285408461165141053473018995100403357117228541644624159297597096124791866356456181745319314309789267664882249886453448867489381083136428752116080859126394426879446146652943361681434490810171915054858625603999537203948848299969114746901346908083357020115550602523079134186581918266904462895773095855276211623717102726334659064923325349496403873908994575530758804184887620108253164888952997130672283134398751362501964109250548912463316307213622985861934215213666806010580156478575928969350813246679523327537296173539534562746855366941427651025272911519656749280189699395943189020000808017743614888718765477218947632107532043466448776807014616093520834007812578843861831033647977940464820701509564606200527119199148822012226744135592671103872835471536577874767202255715954497778037741561417110648953736419588674468076475210158119302067844511052067227596407039880827857132266124597039324825873210723603002401158762915010150003725085011668689521410914567898548640481973387241197548021906448634094226354001164995882066784679568278131704524376614034672093694869865151174639969796401773215713992321395899094419937433631075046898203453152986582677746035579321896779536011283910855458553662288753811251350972842661139281030119170736130763908482336142865249667361899123270799102932843898316275759222107160711234593758686756580727690205246582324118516749353539189930248625204106022481817400744986300969294493278803302423978391444965598199353974473217838085377616260561042013773577829840801104699975836953772899103274933463792355135354815165101386231941527559677723017771226019292645257940727571997491763417501399822309845270068088279634553627988187045802823769599392306276319370944797119483333863513345993814319541416447251447142384996519852714034802400518763362633109432966917857612770268614436128621566613886039676265754828344376267408483685329409504834328841848430542977170866349350031790130223222170072566429740857953768720448671151196288906675271551345839901951412705946178110707480465632194226888049176497866607552093864256015305396590670332236656593607828619930973130900886768566179840926503435748388234239754263767991030140504677123789735974998839672484829257076353714302935990841465675577266221484623583844361424405507468281336743005995643824816756745989837992264541524484228565052067760830482546814060039519730514352541984806944912555660424381741402954381265749042199693806884868981905901388736510140954773223454766156997207232136797322470951464869153190146046817697686959340660705063677336684775306427212375794954358139156240187903278541921574205997439982494315396920273417577396583625245391404216751522939165582402042540778233040610186167960799030823188415011454387604033182834807710023917474356833094522201807172431872640304526949219613283954605399762082120053953778931883140160889279323756662446660419464455966975156589136521143513095743058899936094657939301631184614383794922675055778497165849350835654379641790805785339248907495785679176896553328002625974639740207580885529428769957406081051496676135276241310009272787986373023184170300268590450686975203852409097097747684705546538436879441890040729885012850634946965067629194571840541566835119378644558186393055127468449878288596017830062648159911339262942896543230005730641185760305865301281076169704734243081748894299592013115477146673811960215989271802258361496193051563899207392067610218299647828150134574004255649041727186664218572904902529373921829652645999606712375206527374428762444222130453037536833800031249651992382446068185862074632625103057896414894461575303871937818740500225061069134748851487306561348645306164210831628011928663339445870013675013417447889325010983111649448093413942161347635482402212931575564511541495749581391181016000808114194828455100607931047642087326104381504592682592399852487450808194975358129620436098567673498739020103757662215698229247471571572882464288774962050805301270413449780276995725677231657485619183973097921308139360323502616850017093921471282551813819981772214442087223311256570631072931872571043196732552250217302594329698044028041684520496773115389599652573546499566211887469793363563711798251429716237969545056800532946599593765695625804009614308513789344910905230174426217585638305865207851426709557054812843265381437360106263676671846799566327399950625274993837561141144061103018667030316772682786628998206191056976413597870149245918997684889126464765442848690117826109811315589915902553738150271023453456514368763168047250751158745706513632050802241473719065678508668768428613792420488078468555297109397877555455926740311528404875207741797088936186048555273689890862848893539633065588801307911005339279289298886881746382295463507417402475928265845092845325016775427648918460313981833081211345707354727609352779715804237145031041131619413187562665371723414745354787763716011429050529653432944276749680121565299362510434840785129802615899083043780363984033271682074798471681800743812979989014121849694831114118637252678057209362299187407654969416524529335836493899941593554713001704830194055771222664784526133590127268146425023523629228965140841327907167058032343571768740573656754460128148339267698072660648581857292229613859131399092076415328804271068301506674322653328069368979433180526146257619911568124014811431878738424265831711229497588478035898000979828934211938747471857837035467130049986463692833604029387354911025569677591573387800441137408536768825646196342639276040383305523899261763626011840922556555206545316138116964857164585216346167066316004146982383766681432027741235007081502810841704263746838395364898535153738515538778244659857926824557028090188515650444885372418786628542751462809654528530887161681970920210033719645168160096839085926699055599656262339425439059783248386906379852921785538088877202956925770882163172370055824373026019706214614309730453083006425767279435322612520525086808909921489092386170017445480433359498069441393142907864042616556506653196710594658697202555471835975326551382395188225035717225160520470802216121631400674309057133053234163379350458277997716246147453481188568087816470397706188650326429571640396616401719919730507140580784440100482895277577144223757769138230887182521429453373836593113130297616317378928816332073201457849210901991752280772142633710188396925670796862811133471976344773757231821032666831907793921041034646518732500455583867048894886551521920626732943534338357575348801285331736794807255261892723571970536761050859271542264524641616011995071648608746979361678723191336480975240868927755765157135842637817447457532831930053323509551350368693760152585382635829464347755122413341667374171868473879106981502329389429129644083623370752032099371028997206065833205959929829225958156175473362412026094705070801472421378291910860257184988403332359931930146417550465452385923533555733090609553066749304069988724808530940138516842321108300170471598805036453108242498686785800951407891375425914431574582144627460738416723231874126650808838962383244735048832084289566319094754931858676195159389748780530056846616703376146742355121703588005719209206769826407548382535167168112280359394631704778939996778376439199195142430566596907722565607839788565803262554299058434995560137238786396030331603639856709334954089197851101199923963238871847440501970563370000552585430157424321875347150995039942265670961885872976788272543973730308448945860197946050373906298654115959885405518574895153752833218956630570285832978604915124724698395012410294682031892672337281260090930596879816626106638151227831978830640302426317866431221866506794219972209658465686391772611386830508290911191984129388878778492047643036299430398863174062569157772468547539711159923580398856035263988444683927648591535903784697342630467752327490552199858807621215088846500685175693608718948430778714658548098108160858457320558314124097392044600740145842458120186926049392880139612429617207279058576863423884873803123293243388765988410569373384355023037156858812333665510370406825633495430077756274848164679633387810962339340730944631718229618500600276248038896204292861586804121835642073392231351610495706467625638118103121159601018381278198592308520627546013902333632593922422852406143549885307719196520114535040820753461480527650049222958043988174261491765489298996323911912903328341946449875680346297443881595784133588599898467673494206401397410816059215284572180150068983432202961908949126464838770924634433563742089446543809824606588690732385147325971846286591383120409878910921479489267531732364098555402772638249302201925388133366985175628252979707152465525705982125773930784663657918339766158403261521777151641879027436579956449889473018554420820744432459443357207738825845256347972292144878037575080848607832823180879454748831989506847323143425065963770572093337512521365113241142378735626438324273942576278493593540359363192347929173175215586015214935887722976771302881957638832675973415303897785441667872855441304181550446887279900014776579669009246000310286194295026922226323154295916265553269550601819438438503376350542691120280672649554671424972872012590242086270569040860419780115466024640421534020094588406109315541258755960277849627668690736807386623435753075067844900302065871264405728455419911761690515869336033241387897046451306493397659978267617319511279525065998958489143218380290891338852727740289220094189757106972283754566810203908221744010000286397937885661843086414427580588832796878956102304530781093515304447430599545224370600208345879014651636726816234656652436899315251676895413458589876371401098822481339015148446248180829151167094551828905742675176201569565367317449991612850449397774155725549371198224065033613604415077238261482917215873180635586782688288348909079896625932669011413083637227227696934495530215977449021868320739365014432176911054142972594003065026102829537715447345264569400475598977846509598036312947539806520951504206402809860031078386539860344930059515277042279605920309372559386270450904875273293147268114767558186631061730960935878412699932400977135671496844510510534935093215695445721921909924711979887594168071889550172987039097491171585282349394678440937738073532033655914724484122720022286569309339495535006848678577075047189086097646462786428856092465819442664621193685602006146220424684892101952495796015618781301899856632294750959121977824171449275110718358045866738185649894591642808555090729384149987847237195196984863953508393579354045854379573934783153360483211246974433596468006665531178652780412679297801564781146540038628535113022458952662036459693237028789095654812663326586293857432924929309444819785741759802284070785889777010777277574225570640704269767370803641890180091125026188914923236918637387998719394994377047943561158142471368992285257279629885525600195095895083285577149099465647041798710002826680278338624148755115685428094263710568377479924052081043275711558719055564616605127689067210579147890275352120314439510411554034467815167974650594530565943971653338106295137663034757790629092569956209544205706832367521791164163651642667305906724682875439941259678833766164160288575376869343016434655120706049014204711200016688546953073588496892744535650456124823438445319911334209191710589576442537517609453520077289814165271034988513727961961420162576132175830989684959835541816292714510665048886882630053622776632583292757559871330288420842682354227224579728653100869752323775792292738214797150351595217748993605935670159187171156228067983494488633637225019786513059308697117562764267813437503827109342595383458237445971456642145948392089934656057539688090363055553165274555467884667428297600506898137701195302102095149664704648137850924749235968563628230825065561978936441541837986593752819047725967155737869427937913726739884076229033711865166165965248046284697571088045287781040159212012113594722493737600905233061443875636595713057971180268201669160459548017181998799651755915657115694623969370595719134785867428143924034228324158890442907920604915604848520506076928895372913147533440403338485248074471526203469234143776172628820913948306181235571903775289886039336305501278376268257923643514122789944664691259061136458859580409144445277285753392571680709904863492052202379912683073573494727472767511425098315756487587485140718878793774065875463791398701459691260221224402412600914137197006390828937658282427986152148270411457530046886824964928040143277859511585984256089877575269839607603942528660717911598193972639372112644188346955045547243060722887114495495024248380325084506449148936749230306858874714151763151932671348948011269862295378863895305090782858429323579144594425152010460316300656644167516694805495648846976851102908811687426395288280526044423632600701032089331394425271328424626480208322529452629806925211804087743477341907484199849275641037748937577115201074815735808152276239445200238420736231662876772182783935704310264604223443370610570601453519968370683277150787555838887355220050643739509224390712160890799446673327512641255416034311557602636409284093515128336514420809962231873029036486955548606276546341064691806011583395958744087924034180248621996522760374336971068836154193654157643023680273577833654540179325522835670957597374124025985468114538918016681409891498710579547011054362270424385876075710760688978255603325998874094933079121442405957159031933408515517921716872732184212234688869014219494961704493472718862143019954406701448022655492220756878294315621066141358831081641996926722317051443620149678148224441879514398225510268720384085816197501572145512094650746895846721448166273924447802581787507849222583222257889144081451771296685776675631645041128444651832671517126009250157028383415171771648328536980534379718972319362267172192541908386748880257344236735645035354875799804366358686091626055026640453275447293281792137567799756951582020105803268396956256657999590309057416325190449238690021685581253273507341630575183068847352471018910381831926434661332166471957026403036367743040384317133579136331182097572257881122830076821137412824117487626855374131218007351946134557704810906059219114601611176345787559721440619849474973581386682909033512127511749155329095901129393940205594819029143951847549175131891047962693186514725833561353290908742897169142881165341222884921953283740772326011485539450380881676190995573717786833530770349202943566856455950511589337893507564408027751764028851853321766138509149767595684585428561872513669691915387719417089269252469001857601531860929505529831132323631799510959415401337846843587964758080191316793640572368756247871029109932105075636046613607481203514523286469451811854678365878332646809873386827635081087335080345243858689996788035712628392692795956103662306985861212717099718961417916806827913760014656902593922575382873583595015173964919491571885664449972136985256907815737279225861152378406038373850883403074080973191717805595620843951017037622535717990966025448469864504099626438861462085697433949984563072973273689395074638959777531428787950732623141889491202964063462730116897177459327018227265130369952788290763166929729994438419342424485045598774023124811994251340742951941312955012799806539955041001384725200134849430275431309053964078024481907312889729641229379133946108506411183354083933061537878246902326982301856055881649783450148842977527297796614863974223233677656512448094365614314744293015446824343090595653884961950977492694637486442952678586468177717774238115217734258747475113468604517550967705928941392311180333126507223261378716461443696673985252646069373428950692882195116731291271649357819596841496750392141798313493245379465036378133982689062236367997827354154571269367781308620433934369591432349029663281532371400393331201735353525069748906563568197035981059133676136293794240616530024404429624703591670374666019254485966231207412568003401335947578970299188870140758288154501713256861799439364777947264695911052791287911348368849517381873488144809735319497847107404113280349104986727140091539973576569900881869565697088330132350903166270300694031561334393657153082139010984402922752441497557775016128387221561814223019718148906026010132558181603471524804271152669755654150728559494322757339292917919542286548201143311025392233649440088329482564758240907389432745975840765651340670395088305882642456628092374807062255739787862013785314850118943872351423257639705642595357821176519009094036597715797688909995936585693641885041702437674231836060463022356757894532328913119873191247969941217399603656673767632692649077392960450028392963687432550236077197817138121764474201536006617486410701904444859863465388279687306000850327379992833557514111108183565478365259157089821790243203638307151692340957004270804536208860196943402478567215449535047241075185558642770336197907584615110725293352798347010421389269353501262669078841968388234194644596694437970108557489750003164515581827524989254653181053037916511968983154786161138218779678655349283690757879458772681644538658537255999270428653811298110726294252462400331021912572172504741311704355056824988957889740226926170336038649328434456384996928540576906395185415293204277516675197184624229984986495417173832551046159650310492577733627436852398395909031184533701521209706600958980970918577502090680808426878570407736166544511133311612932242929303914209461132082904213163542660046106683722467153847560180612134539499235476182372991442348158291923449904231777051874819758648099969828141390235371389470030327268372337496098176346739665443286168032430608461053101779159408394200613623482930948860981180971897946434997448816869273922784444078508775431890051729506063846852998579860705866947421194341838403597855121786288389277103365644667851809650410131234508875718579903419104582415750850606899012605596272303545544810160520528924299628527728361029122645515864370340578342187875427781050026542443865504120874444252049745279631625678905539588978759070411287297039431949640802532885226613913609435749108987689738703980326386817328027034323718608333570788397703401721462689921558001971502937925273440656884251353776044064251306834656206450127447758043896909099290566772999913904500256658298336421724011807455295535193066583207465247904035439147854699314759968928643433582782004701119264572129387542864002016537733450441301147339526885440571110327562972680339820903184974583854549861030633348158309675636677827102075275610551534064394738816881106818318633544787623304366556788911317282264248421706023386480025528866290551754341400438348004355721400105102889888365779540887037357863377307333709749334721674355807328099137535518879348861945485275754642864992240607066963340410454388204235055726589907260071365457344281274227945701356469581614498376247666562843399328977576444263586030096730329057620967409247733513401288683487208121052415881562302507906366041116599225554894063212068449378193239185632716797092777520235034208516061397654857217766421481356610178306990563369654984256346287582646600994309989393825917775068874113237330680020403369276696702695364519805779117096845702137655371945397608053049787446218082917827217043640974659968731913456775364429733974230289725254341184034789050875706179181204561141234933195106799964320802284447827550472319181398593882241009424719160773107409541666384361826922453226505357621336135502481208002212888923601782238999610559554933599399201934178417284694096049028567163876401053579948014515590843236491164442393545720577856438867807937164300151638144950531281080217788355128304045402412285507908630047721852313310324846813838748930965703103500190737955569756877358680730722767103194580358780866365499645810371552121279704849239913204346887618552735471429373098374282697454432051816044525745818604247711601766090922370402591999571697913895046843573949448364022963483082466961499655820880321160128398217664677956763360132042740687501751778893920853985980924587331646603821445980418627085932681835028822010411460284965726928401120797327742362548937038166696746600543467586797652599382104616219190513899451716958555626504054873573126959001014930851374366395713344755788298594226780682552384360530311264586357964121460552417851809695571935333977451793948380410440704568619985579323428164479381980895293605887001733250040778372919686241358580127076303658139166126827692516765036542049560820926720600885098175546779375828020495274705980700176662217379562690111875363191560270562589179765101965851017312574130987076430785382919328348006632683406978169367321148993598624021525039440873869394743618068822076073975274896163536941455388086345470077363141251642555799032412779584089380564825208485224448143769512679372552875308003859729578923252446799307967884596830504872522851387048419155242849397605905449416612720027841898409479117183495422855720500516538888496680147603281363358390336636968291933993592120843435936440855591921830723246283466888277204555500785376693363763878065285395599862061748066601709812718855166303434603915284896834419557306373612686669838125023080750884365187555615746410015707046334194801684899362780835708854712880515165673212454873544830336496629034410426094867253933407087764454410252873282669335269766884161043323546460566744214120572200334903541639513686948134787813310406179545702577104758613701553935497838968362748959472349083645889392040641528435576077589825679928922122854892712431260860683964359021017559882693518388910266069924630174891190763564014535433497174644222120154142935289541423843807642234883563647458685072720514217641998777036272886971677282942817159448831648181741664626535072695637734009977363073901932109369001974792389464512594925505126625529039398248088228720332094239983901523977626439651968279047143886753524330569806482035911707671718768355257731079545674988057844331762750726054845183279503902381027911563380423782264492321324083605595963107865832284372174155717884733048833101510375971519901328305135628760535674903595715771990913820316315279651593570415227478720987065657234564433429805539846588447950739110129111049243572918235170046236925788755683463439062562559362290208072522685041846747205876589705075950883079310870140874956424333375527394725267018071122100017098780636397235884206214212631917206495620644800950392730879350222694087290064896405486076656596364255224123377543799006464526671466031769900647683999218197267843022391186883314592137346925345113902099105535178096048211832171106796436147403924969105991426935011298620611638845611566102283535884793408738588862295241810895443287877373310761777099907275156411698247037783082192468337847623910022481320814593839118067784444800748969833113594078058483051155150990752875222276670412294248788968156993492862017637012391551735776389567733138842361299861566233275006980752568389133511958240964394647501476625505494469046400363551596691166257022700823960054396087159719023393532626257960495444619805725164433816705626359731543682498702557474681903543876608371231558818059976183147150713964029524243176262904222675911207867760535267450869727791404564575631738852988050208270236167873857213345195330675339238114976218730917300899775341937644820096844751089561262539210880806089753816286321157296005032228775101245503627738587429609933747731730915517457234289763366311850847473751958241206506431784580757944923909533978202572672900526895060985668962577685433430772734181101497227448662866029367106535577220434202086288373319510203102756355977139503619679590064604838640721956334948052546067911891295209432754752624404794499358916732976838175965958502368211196616203631377464876965737874669454384837383247127192376701990690669653682422779501019623532312931920020402774021530771462376809206811630005500026797497294443698198759451312439489686712834830840599797412849561081418084122199759986128425856578987387728712633149055951861151997030571223065579753972745626468159706638100589956982616114315709652662835335414399485466440951124814350878328453906155163012093451924042233625327703279144188910266248478394211923513803993246861682363034070611532304708792597308383232863264509925244635563660488676331220561191343500813601651059947315392886520125557111476452050808136896591381758807951612520999242865136332777805562702406658283996434478989321912177677836232863688203392900295424903328488418859813006536961402219213051786572464170338979529433496378427182431181756033713814731628202263084801109630691689712616875986603058144678380271006937973572975427822148742156222588553909844099012331159203924526394906700479813239944634835920154624374805563826318202576456710601506506485353354059617140561466157400309096893982584100537763679330733086669289202143711269011285601172436311099381902809697547683970292362768357499970205706097793530134331510685531833443390600322444660471417112124244487850493590258393383213232108767612500507195665190753897001175015925279908300979931656409976325535615703252932733014078308170407963484968825485293151215568251423550634696994795418361215895903296428003199580037228013932606424575918294910875850328339148811295773214404476653347411187683304730276418228947623310249677417415472717339612699133378249164067260173124959620385243669910116358488896588298060425328408178533383210374981103684674814240832536178691163648856405684011359325663770840042144925266927700112352144935710554770922163208648667522608155295775729660235704544186817762498141000154691169695979088186034082671781343470344610972045005250698709096159616339433512563582858433989169626855054543034133067558373778329577723489955874167762609840705766200809281420414075525511397910900806865857355266436316238106448045079542587829250925977275690535808799898480175676760770022877827731688402521090357524179211355130470334424622685276637085057802589587480650589617824003413684550425760309334952864440218828005970725666115259942139955504521044290861344285336382659479581802111920104067819701508495499004773981617824747304628527128094001302805346940277635289036181648521674972661685198155545420021301797458316337008799861485072625154342577810852438161923853199293239835018912705447534770093797350898405125572485788057458822327553251650332763553296876827797156756177731085896028886670634191317679329914610254081216083879810052485587125779193793101715884307065669206033037273761025397408797206407315870898091996709290136614359500979605618115624670611722929970594466934113112558128014378866652225189873892040592413589076424750003717587874840203241459834594171760492717671801612683600326937830396301151847641529521500784172110745069924290932720527746164936268411909244077113083826168216406536079840377696664957938664474293876532148882983465698609733892190508197376966776321507394420366153739754539534956431355876668858867196804880040933328139648655929722080739574422152512723508395969626675093438370626274060705973993062336327805202382395924090383516989383249376086123388114241174268820389109232142425202507185080388118595838961580354876062828788883217940914475386762952966191659364845296451234891759837846393807724467409590450951928825630785014816928698760279865121623291644606242990944998634168830145798484153248316524499909284179556710706038984914126515520487254823338757533338003032978507543955581645358958554555514902985526605460723445266207667355698607071621732342835721727820695712552592005509563193090591199791454094066424801277173043194904189192370117750057987866491641449615101582302878658555465817896141879875332365796354466630823353879811546817771665704515756135910569385765356746106586253110980356582276694389148686568407719528583733919084399352139368015966342635012146264452409291374531774613353341470826399516647848767676673655049790387072056726515539892306427251405618290009264964681755485774817949816417169217866398556527140193364039137775573405092516463373847240089553875092685469635061503031127795185536134987554572203632444383672789334904607390852001197933931462506170233106586947690358511170985312716306127610922724971228338402004072354045870584707424796577152022058548884794941044918107024876452187102140858004521746224344715748123288986235516553551023941310638566231161824098941542725035939654678113647150599506722049665040353580109513743343059674435357655044292378847400513481032658224591099800611688146565966316467028902886150445359124013877592549344958614792750570764274142185644219063992393757140400412945097087104875044281947706162318955307340856102436543976145399190606029388296108764642079205644163700031603746020373518719576147907257590660386799431219466910061002475642759200062393465961365921765227612686039241248988741358382373980649296098098489978821765158654529791042755362381137168716873056884001478915950796571087593080475720387394237338125232437857256366030608755506554766216794232395527952883137511986869560639812119277424947960752373500918908040370438303075433667246346302354354588463218140229096336498905294001941115783222558224374828662218611048264568733504169072016927767214809876294415130453609541166021184384361309472897185141810189976607850856453488427324650693667143294184462846596011434386278282883695081350393478537953820539101021417876801985947721286648271889644332370697626498510174914075501725912869681402233557864866459231642865278758267172146661284717254807379961598939694446946012222783469437790887462198110652972333854784508211275849304541509463018339998971863359813795071363724386050566735451628108936686223049638552817405541254836348295570767695735033713948820038528669307315743616564567001959693310027151151905303728550893310331587620266479936128914204144822736659554674888173659282329552011119348449482855637010623102823270326109275810728606327803532357464164055669157675043479878175921056305020765220978951213873401523575243172950681585670796267169889915911204922146320251275725119878877997323725461933504853089924967566052445484704906647395383302304839781866207305723669328357458455828250127931681137884703003485012244989460282643216010273034993345787753699012857997296207401546170172220096569405728555803355499831103118770585826566947057994816051001486605537529129686841613098676800677684315093191584263049049114441486422100968486620147378203766861585686709057830415303147576948419457696231785445655724649600647292680669591678615044698481673774722453236555199683623898616690431649320178519972190021874713165855028339477906235515279051119611609579842586932686850436772669888877376315352473007875816135073426604190760450435176896545508349625549552905151794314531530698403543385344418963060628567397831092946104039805014258760576975735612475929041158272185159132331945794296205224186181266858958932282138462667235215221323031310015684220535531651933947618573588100399992241170394985743918929863531331228652214192603926194640265188668625933369367956085810099726980263251682898301267233082127622301482331287656006807299494674152702872651890151586096559589925016084068026681354834983176900810747819633992158182452487108409425123161076787529116322047418246389828319128552759075950438595160454905983462998618303117199368862316484143818313775160677542530581086452867125488968840802461388573947442254111872996872048098551934302325813580064146488675610667299356478319723824239846269381791104590674812962694281012928619423702928426025419435962605588291688987996281228823403039067638011657014110195337047514491482202228243605175752614711014689842507963862868389539747294104890325182518876036976955457585752252563047915058891169344713483164491588644633059211445544378492081418462676969276412168049832092044887164930525251352605973983618029247849249099514635844343616260086033030997567339972107240353428315704107599513524826418602120698634752766527372240036212910151412754648684397388054165366307388102692592606878268988291105429353508812912038686477964021127860708040808916091447585311513260789506346423285698033422845299810019286161706311524970021917484460490474190397828692813819184409554859093192479346125094475399050242267857788510814012279231536986003221612523222373163511126442995449025898921441592825598500432222228205374106012180066706088624424345160506422654267095462325067750043185419633240113669415290250071879272271306771367047705813376086781157417502864910676238250646777000371857994234025053662671270327731641718083700591704709156131766622671050445849452513165228988114160277881989308343898238248696709055133684356501807552689011045279917800244193316741661064299625342281486763153710388577056205177350158637317311230745499516449726176652924782156353358262858432443168084052553933036810995536446995349608152779166816904816379089479591050367117447708733679653744259123548550975392856113470872082762207662916309921419182878123415776988660161158153219775198862622279151598530466548655596488131747617776637606305725202907958077768729094271331124018428884971154075079392604583223672530008744799560383129195753496452077087199154744898643713066174682877226633839433253092725423205201469127041341343202743327335437330779468569663637333080087364756777003701326406138826800800739207212318980134646526799713318418531563054598278624754575076468921051962946318339336054688598133655110971806371069387919302617059530930945495274489315680174605503820365564977235245854551168145346329893365619281742438978619041657089390814172887870264083134478045004024769219818381476818936435791451275369553559173511443490569332024709462888092274065860576295000170797328454406028450456198908821141085186918102372874756371817818630621669571666165768150724301036435823293097974754305401776217776274621071567007590832390942504882674415261361389920583635127122715550614357303877902680830280042987644374258074880421474635112753256894179287450442442720659280438001699167519760974506344409868991079746004126950168792408694040418500871747108292648685716705564079646200443709262446880189069020760081452526921352843757620067716775459869035330758655418181801101853499010716996673369457247792604309957826919244962334826842591350726525060016084672912325873349997018180169757494180054122166741207741018471251469862078584226367391020807615197281827308811972312521649371853701166521114500545806796870846069379437602619538508801309477375067588303652440714042203970011996337466625706661203665399839307563530635111066026325471287350556898003751721854857100946333327762499358649716537736614088217343702048596610564120990859659807212880025135388119261956403238419910629841706322162799145420806912751747655815683266832634642294223959479906155767535428457913572965674246896955961650035986849874479233927054847906663959978326060078959291677885389411189406339968120998929993183266450136995660000655330158756051353797447722989478862654820469643669612611066073215728176834539735327515822421762987169598627655039753173870756749737874343006092197484168672836152077653368250535832676923891647444498928828728370325744497131364135112683358157645858409562843243468607632037651833498228369032884284301139011633465053726819591513570154926319223519935921680385955567316218714737661437040919894072052271456265363693798396054832369803707554667177282655425953151843842620642029815435902258656816897071809702300588901593720838744213307621550972209757256699836331639695368082815088957088794289361437009029046821850317208499410736534871311280406686530283651228732556738945473283221411407196435594383494217137365443129600679803485559780567732390533310424471387075279236957339880161215371474407640874375549039807587827418102829723915680312886743181902914528228579605889374335432193121500666375749125354226110147820481842222585939063077648208915446375542854000731834480348561679924603974352763062877117553029303761918428915699625149344829661612305741007851392928903896782861269432538444012579873334808789118004134874337375929362568765959201906200325651251540020453978866786383870948082340855372831785315321200959070862562657768358229391288268849046347461870709791701837946986905686136939837537344752652613607266138878448178500618706364917318979167519329737792612953857361422570042249625188160952421092648752842888926245700551350564200565831899573382188148831410689030011401179431264960174160483775531413765196126899642786037053365299348910271175187863763546557257667828960912032589128794496794720886878823260295530320887897402303144494007641232493618613091712375873348861522884209193385926107176059205518289708781440403139576917312636802269929663293143809859873463393263501617653455082159703707307090675185115287564910878035435636345652014740985613079294935428169338881966263370472576200659892664901364490800183115203519562433175056730831469887472297256321940127300003157164609150747294575014363256415928023209254079500185779308042535484862271908541632118318346691400579814516350618254298546893396286994708111916140374787951329803759380323822521498996775239486403063756709196797139072160980434037032521153527560084848104027184773948390566930623085354860559082177072493298383237171625579211936738419548464063020999458393649478753247761811027502847268081785027280033233788210638611468064998442140162264318321149914733518763539151776220761107585545601142949740915540585032150154686740290182632977703521912137179667490664765598042826077274613022395315060133373731839059928892489518082833833342816041052874540142359550313673449662882784527994237985262537206310147211457735068409112242679749454971525207263310159401078646513980533491067344083898589847338602175515608417329796808158082546324158590660917322708061883499012140227263251325255741682003453995325111011161792349455122603991654178235625636885963774665123008104060615412224878897234089267449935314809423946220940252860544664734692606972072735437512700935796903268409530311318801404558340415894497899476813737193558797798777368345557688958331841273287008608623641487633699779494961571910585002208580386432395507798592564648927680886598573639637457323540368257613393397403208574409323786147472555235285243168446298402762447330687725582351518296392267924427148924336934818015420825664995484602320939751219164429910168619377176287118023651900234267043340960201353028458756340013905520086742167577174754887901052659508631854227538869219536550340861247111353804669136906910206345761560544291367060258020189273792841936525354418927634795063252328441107617343896855172922888931260469405825247554348336352011084968128999396233791084794801899147511608992772849560944707038028576543738166508852490975273974428451638488803026374389948704883297558061185880056933338389764538256455379908084168815436181774127728741795127822612264922462446900567398625663286373539376358312107138600644947105141003630886318800530701969018672183932194579741467738494465552949686525833983187003244433535395265668622212410220571636372856431857632169574789308136181967600733643869441742612049194974114196326859802864055304590146627323222092771638029829381133880913193227955701318822499714361622856362296698724658134770469158845927676133068680276611997770128077716377580694487873090033784936685480352974372201432551972862408666104198839309922049316983159175347041372583505792568032773899293787522777546802046435681022691539708914155246298227851704119231962341517230645550790371163956507574675832457866177195993139452689588520688478376994541983265236825985956337505076858996155143123427997990049354425235864352813504853802117397120858638002627904793785225931707049096419255714919653346352954202736655055441217887503627186645187537477361677275585384738554513640434629230158338560188603055962918066863661254325277408549125656447048001577399069630489916210145686538541056352765769642180279051108287301438252066971793281842303757678738034973624964120469949357901187185631512199223700032684328879423576411502838857425598960248848980286172145984535655202934737143683934823487516080788454170816392461699143575377224259553769933321003941450960930743177392673543093096613445873798582919484904670262030151137854621917375294297441244502940004498067905570545011619050394894265090633782356551635945553661815324332070076718289484775737938636083713088888533817539575145048974836495939204743326243642604570657088960990795561508835764328355350449045353458899516110697301802061997912407127471396733867061098802342462058520139363368103738700352695362446765649795775079883379511103733374106193304298247603726259066960529803050066070707263220981528117797023569140925091309549439411511257358831095450133199677271071507601675724753470503791470122675588490442327404766296975371914826562407604435280175834982015340384551862165613615516913254227773614905797754404992374552537720102081307342942587659838449665934262986014199617372860926717905393824820687136677259052771496791468539540754681553171851220495664979317151556869695220847327857746012082395986317789484374553202855888367198680425916473251285580621136356529217212538120079070910224827566279111688955911103245987242888932608539394622179953642479662308137140563024505990796824814322122168505467067002219033321221226128549373768786642008515383030541167624310642459259393453178676917519798970537786563049332301090797789022660975292680865238698854355473491138949304879347657162458609347437718187998919461088900623368896243364933396857028956005683206151052755291692048264073400342439181064368297591051643446398924803134773185095154234147141882016122140224787570372927786138037675279488526254563062717784000850251571404874605149838541224960701123237671923654875881076003067619004469587141616497938695879090232268665057698809456625149963433920845412399653995914869916935363252335747745307003815590075767140735102895950063060337935491407246352853821061610612946938556517497660956868968566975838705528200328709740900050717214488897900896681493866395125302925454685619993177998454694864096450034198471428082020024631709049692646453709644797270750649219773482513368235730013981996929241629379491232155763546963043628114949867136781303456843223617929726892318261720633729720188272186257212180154542009264247692812222937527368480306735978084872274330421986871176846135341222936956982677291723459780552468765605570368272177912598462618743388137416517598580200785976169412845833933652428423742681908566400450733511425341614919067437305249192821210499982216901547553850159046316724307886643558913852667531056445065524698964588586835294257095177440191305168225030245932486220275445942292638348715720980016211314033131431810127823238909618571457629372173860247973502579613865242300399983731402581339954851988582149443262178832909073557904587526767874070502443867325541868307096074734505817254379487213511633902335610569457274024741356567162824099209738781969175768318612615695933886980461637646249787151183231373910124772449400089958837594834967619839670224654543942572851402694898105681205574117886201882782350460755455016213118347699191229297158239412747799914968770012050379444732607930647422775698637366810122281704098541195647288718985454022869364722790791138645659786156818369460040346052532707668113144259487927142572440053184128974611964760481940000870855608749161107410169407688696182234857191145684098854310735569503128070245760939557646974790427853774044126336060931413459420665460870941687383778928726745939994746078709303560807128051929420390881279944547100867692897580428365796773247980909310252184974767606917221011998880673978281642130698251279326992411402528534595886580719164938804760366082294000207699088609248281264224675389231837575460491824592931543023710272148920043769151126726939941198891489635223504031191269058616066097974357153290213891389336994406942224653966823649007007431326343593506644983074730955028976252131730104653757210688143146980264204026398699945671539646651001036204896619669486508184250177296431366743996643117847514896773259429186250335646533820519795065351323902702288330355630821254198440880525516553823537348482608497466226425460093750106962246358249874346092570696609902119904530460135151047204721338073124029716729899760459813303492296211150014619274249157009528626022577691582524459442426787566426771058430548262305910250135258977798477110036113624827505176029515146912757732958849759169344229689102119262240161840893992777130292584582086611566779648287770594918285120323953719575312135170572759146269375666096048528857405955346242711174958151868233715618906604948055159835295444488019035609814545694816213917103876261992253475019989504412056509019853078073609736877760589704398741488428259392249810717746365813601893902832295193967400660957739006051378101136727108180597946301139331311833838273851284317373304347350481202271383492299154212399467180433341644378642555183761036356450685217879502283843932740877385091231276236325103480389857036452940031123944628164969872892071184905996330431429310107295373576602786704101181670696130712367252559883316933291703445589899501776042348932457391789916105612946741232861924386081172314472243862332995243108349556573007479672452679224621871201873493333543185150878561573109431791943056694384545219275813769986747875715441323645755880007253411350658045600375915231264883765247542351992865178538165215180144906887061809564155850352023735845660562815479820274862214019628725971969834255710155297518035037323156586833811299789815370964569583231135084868250909350147615156494182675765088860314725503308024420694753745356266504299504461136460572904890177299944523148656819365167329850105171712463888707467301319682139957636374730671963079956472806570086785674233874927354810927157115774828733754045301863121790826658138906774273444018639642463721843492007564766464825845367271023732910045005201656679952374857690367306836864681829391126705593780951909453036593325425719021354909671058752705569973799656878711633373701679764578132329330180175586192396480977622230319790443112621908924963389727899998384086957721399036938926983059104176067690262752481510350770259463708615014299410873710683206957869450465555933755296012919971427275613281992786294822916182573315937733690758417182365128839071359285848944429217112817030377918409757942013886434051276780945772523397229679297097088956986292204290586837492916360820855947135841066023623859754440083426833407751115643629075799733770316319726181577065377562832774025671729595532325598634658446943118321520603266052912517207797883165715010723844465767893162180462772962161160627933387472678554034441097952127795311856170371516103819435472926223482716656548827962876689292039581664496037759782416925866513725512600671095277521525636449963916144269731835280507575494576717219039381920331660242680284055833299439353938978648411948032285639012143948276848178030547223837608824651961930462836182639332920262811482854909002139768482510340235407416716907093201243378910212976382754642810398835333169330376170623595632714745194763086306512702495234877287163665099845873890368558328309759485989684363648054168143707480482468991415117050785255590158106664555079933061339998751041783574433861282437376729306988682740647440860194565740146559098132047256542135026960623722895271475602462156182288259771645645982565457406563966681944027254655411274954380398336362966525867023840007714336908170259454719196281864174551198168450670978087302454199283572520710119069074004129995458683939504517511918905366319061517195612562173940762221676503936184805145976066665300145292621306531539567597913025132869925161647224143889346736182619092556874810145420907841422841115138938683281041523130322732072033300455490068870446797451846359297954337522985337971150946400181567970163428444987171067678255815938857883435405218272491394566466772500298629819647036664805157733036404113641107248814838554827355397662816940006909457293144204739566073948300884425099067367655143974555463438962371508860706427288573816517773196267222221989473651452300896873898712502713161198537791275465142054626981538855941692006188019022765932948545916826885488144068502235308298544081201713605692899229899738060078678260741185342896046835907193446048563050613426843773103646359413751987310417895509487276456409259338210514521648040248387709937435018874819948711383864338977233058809609630132251324480950070079245576003600875355577514332725203683642725727466171125386830393539550439754972423801201932295926125894066902314190896191229508120254081038704807701778968935506553512691094205891275473650856042040084516584404660547723015190827671283514414182767583565295548504285689636087486333395554833701206612517683243106841586142963979647538994819946625596361320386864339852302988552228521367324688530452680172601682118415829541797054957705159236360969040982387406373662082577206394458285463459062310091243029508464639122015061892090806078675880607666919123136751548023350149790745487169339863654049046426073050781547975938962953850429218852083897103990611522885377161478528492884048158921671641410648944818915193931667604061049057671170781045032458695915744654690768906565118086954479351385496710273813319317769756895240779310940036998620034624335616675707740908171346441621305548485663378886014863867240235031556034973462086856650331070394436876373887772849052504452507773110549915344583067467116814109109968778934556223436066845237205497396917757076348577609279298104821355655901181988769115974665325771905989534848785453586039036543959209479736077448770360927100797822380757326089889453642300713956577800819358129356620825802222217053680669436443202874330519075323308107319571788203145258820952929338671299471563996436558225627343396443588642915361769412630318840260201367849370540278697667668560130606885416695801178712987327963422693528680702151607764958141254464271601495744748097725841885766205616919010348048830454705941705812680125150769732811054049866952890653176718662501024834104225682341139091008630966196801299502291583175704251103321259330397240140755200639837566920285203051045643588934720588573275055599594306799058803085887050830701783699252999192369276435856974224232109587871437728127317318043886993105557923504630784648909749226432554412893593304088660630524735381498922563922830602767496545035861323209970873571805837473116593626603322480167399131464701110799011167618647159478449462825876887602825026109243020412947622534702782994898278166733685739457180570459500992230509257811249729860091958125530184632170794249417145112126931499532105474933177879352964925241651669912292884265688159391344861986779833185777562077752875646462832258672738996636454060325196729673810046942615939811740190375564438534491290462169007083304494043999668756690388934011458379993931007533939623244242712795798229223211809118722578524884368385701274361551082012486910151768026454586917415780854671466485133192263460101094105511049363267460291131866955118716316804786051304280667198377470884906381872642932398970446817841748718353136524661696761545311818982242860793665017697621868753583156217649427763311102779440528622332700393506747407270993544132168064949692527510948389908295700578088188219666691298843556265730157057379443130613153311656562934352865038219790762031383994827072916719501522845143050291554530658568456146657038454113977106011490536191903871521436231837320892752350206668854378138116913529006821474008783992781894283820825337940301671933684214634429889172126901101826242254137319691258982727285193013068500092605427528983576355385007968992179900852938561767905598517027014128755416678346151721613672396256143708972289367297757066582073401808183746913433088488276967219099853913634250637491989438936861951785096789443551620542421151386876365429940561040550599001169680700317338248384363710710705310039416030459374703919966096620404712417364687712259185235949051625962336105352456456172307896551949688253229005664173648435261194714215880964071682445197951808644961726670739384389201238785491403714284432358597235389326673804317413385467180282409470636247174972487468272056384859244844888555547698758567392686782998209188067971304991841672282549831583523013994723302883662361693764849791430379930213923726964035475414985881453760058357549293045228080599251175324419992513897175140062973917790692463950280594521648838395523148577102881458928011744143605299222282942361924807761016997255379229133408392741383740454274398289211336051300293038728808055797775621572034806754052416581035143539747056781334184340070230202983603456945709418253701579561026438190532625100374457656909609576316271235587832286964064807718359092412667882170221226890459916560726075702931857964793035445647243871021465407599629157763132033714044793771825521708393241023162020454386092733355322689502690358076687426492726294264658804631207557568407273404470271150955330589913633577149228316761097088673591738434199481544583648381195791226940115789762406311557803212758199969013823739565960319523610221630148781059769569099665392710632283220876691412025031877090764790109339901136886521107480129103139212681364687491996053292166335776589767804774563777552790134174430332744129459019278719668313058206236293179668198604652302846785587864673130042034406742637213983983045055922771088636823851023444781398024867976479428624260447854632158550935518079357579450417032466412246834583234296062932087909739754048247543597138812104619461555832216101524349053386673096399911233858948709212945969524540414931466828138294879415732862064718591101529673164428953999523185841959264544130937494957832742788030074062571206987723612568688033355409124456175628342672523690805572701934142556138955120965089433605342859968565379981104906686027820947030723883645965399637542529639057493915098108719250996006138891379853021997947613695922528337046638598378873064637646048774343018845463988338263885795015958685333992158295485546074082366168965437264460607601410587714787618680107640722730903877287717321504978832394708965845452158093136623117916811923414964220764328235750251370270724431291974946350476974558803392300180446102927445373272492638421689726232344223715242601348645702839976848474034982123150114193377905250314913768519819173844333464883290686727843704517630959920877715307942742029196460994891018781301215017760344450120509067899835402904269582871912308697870413801147662127283634598011925980959553546486954016263561422443895649594062801451253572715819064102233615880855766889446038983362240085623372929188753751647407440186171099904908905795088103070373229720828642491847912506879195535194250415385757685073988714058046869083554976077129664137638479089480920284300889985754826215138731694323473317955224186770734191111840972182825687764676410338741739851933413899845000911861747137834496994751997409449667869017358789104036008152218667503552357241166771782947491795890567221039307298731975924808890981907178329845274055174443906472709536992212719568847852568640688327610795481433546708191895126081221673256202501176056048152329983661355526696716845119226624942091517453171986407779577556723716222878232659285075994973540463225818390883636055020610876659706957652189428086813898409632377634832283564717987998305172483643663527095414349711332112371192537945211369477435752604020455322881464416434870521867755188257359589722869724903711948089064053608267700718909525687496427535954750725996455097381708355290857741932495927133237136308325292718540535765397931856681151912212460163627950750957088445965915191026320322531886243078410367612650784168441798940956081101195748979030181540664919285792157645236349657871699759405742198474834728517497194727772852870616081758807623968176968077232556590150506574129531087454068888191692498897919057242387763256901457089260900263658018770243145916378221816348317519717108553396397672241632886100246707057017199376724891626757320701692362310418668848180153543859630623496840647529327142881696668622533779340703073705242121664208800005057116721224555663323733738615778578504703994543964221537003237746959580253804819704401535928722260925819567751078731034558878963399582933437500118938080034965913483356569988387544710950727156507517961008497422131519733474523208499606633576254323731674070674018440646020776961453889098111132914599224680664870015479237235555056675656254977403373133518858034489014984624504309855838853202183867961607330068670590755729093504125024523787659539290843170957366933575940384642314082444582609390617930215998922964388098508529540227563147356215869408576791692124138810725179854291412761923540659190919672561684230974956202104722954550056780186409759214732193222806737475270340094921359687886423192014002771690200833447864221451656684106934783657834445992224778829681633923611913467759614862371475736183555601352378330435324686875795014908483871379713213454542207813021534742534901067616436387884105457008105561600281911486711542963859742677381458411087736844158363783598435332088161138350608989130615199396828083607562506468947974057433002250275563242953843100166763390648202137507565160982329499080360481164585197147149890115445852138045118373563530587088855630310358396475289199780665766014790318095882341092425719828605663596697183269551705509444423838220250839998459711484464749130364719262023725447011776141568819046839584874871162042025474184806369337340510091315620650016996433793482177846881199256204909217027690003069584573360291074959415766730856590092273965578975314929546655705450643315593845537479246178012969541501548372302045420343524617873067036783060991126555019459904832792106576215818484374301159269432888880859800442017189575786821438173453536138076860105288559918207589764101762252691512022741374500444817709750351953006699849342186774549642694327505198503805209341207174146188169553769839211444094987547189959752168003999723901940393957483771392600573383783530962917410543128021382647619270329656431015986151818625606244265392757348260854603288578266537730899147954229958550912643455665307759811367630913530051915069278849037448223586056392563659726877580836899116927528672902006205476820443963714989514732962318438490329316101232779883859804590976960238604920000235831106632381557336573296627890813590121275509869695485840928578962087636843790993292235981599205027076967998068721771287147125601312200843628886118708977381579160774984888717785065115121506170525805834548191770713838661562210679026844924078412501467714932790426842396698201559450592479507436142311670338213784949147858117768038470023158228075676852371715301821511934554570430566542334415860959346533340451997924161877563488744211934992717628872835468609623874156835938987104592915251125047147228872569357481434949228663706506581986822473095424316870306275601209307991870198713168061580108837687817546403066357519043663482310231781659307910042326574427712474481816361029962800423466391078892003360175486104134211030452416427986672893777896078909535825080722892471576707141830697687030644123762986203845494059255751316997867828572789782122282350303868767580083907164784660266278047517339615077650602884313960890031283050839064497363337493828639729691404074779410551118612752136964066832924003421992382623376960191772069928397529892774749362389915064286685969317632791987170835585535641420495117017492926709714492398225157391033145045267867352070672187183794922344443055563280275039987717747268210922241620325656261738442687218185532670423879435537519117864103842589586130872950448171714360899755421893519918974305268214615340649201835480979686142596743141146131814498688699770179518584157607117158456830912078358077615579547214474369830343125148690948354370420860718298179336066173667035981104382106227160164685558961790549735246933043803164352791180429233167041013297534899378834945910514799001192362009650958209788889213863774727039819124389586611880829645920185984830693186895832732834404561833097717326660922191852284719386887296313002554328424333020026354623899804186117959772094715456719680192314920867460032558343112735937831518202893577211655497018570769101008852518909700330877376670253437222245632682012988184226996070153333466289679245000059158203854922649519463117745901436941549282610017373687070175715315092996596433770861689602485777850864867981815884049007098175446272794447769940259507089522011300852515530015685635266618607958498474878841691260176432385194615985127373827851314071271050949728976768496766603197851129111040619059476000974644327928150212422145096550299879368402792433268871108556364467698834111807149352880690341584867780248128330277331870772055154130257140008794721880297950429150032404933175323385880084240897826942052600976753736160385275886758797294679526140355912403882791931764360376317685207046450150732632090804008342132445289838802105452176207214768673531035850847885755004537279417238274759142448308598127109135310713510534514966293702399980531133668118243435940693228630663463864348213390920506652724148830622903455124075134918726488899837074919056710623125421049307284813817090747521221111463375877518837054668074868487067138680945874554651823463677899134147765147635375640582655914072663335623857488646463121880889818223661271532232308350693376526193408855108490003090048515955701895089433296221272598464186476983866725110120091174680688688907945964559798030098537235441158260388485143492960722092922437249884051870720262532972252429311335820966569635867228997101301223642419622906969666617765175801931344013499896482006431701943930014416580242534055933044616344446938441826722604673328475061715731749799129172110957251447962954173679931679513865337285851587706604313155941898967858832229013600567239285695332173552305773694629698982758239473409173872006069093113043695019078433986255297495741139138096252626458540975271624918314155173353241606417385431696016370070516292854387946971885057541882913870942055568396175278215959696414334789178705588065559921817123857278936408738757724878024520812027644833632643218906081933559831423912960083043735705808913621145569399431263803120870315757243753367091132800600449434806959154823064710597748973573160442128339245232640929818020108155647372406766155575815911443755149200579319582827610278016181603556793011234074218761375665932350960087310084145496030936495187572788221888960360129857653384562128664679251880122365631915681200903036080421536545458731092511701065570305129589364208099815099569309750510406423437914530820986070203380047613504151697531006892283123558113791395269622331402844541665325405164436051731701980045963463019074657800283829619220660070373550569733285387222887828781472423735051393732806330058372276847811076495351921820933216922019753132355377271248017105213505305785032630731251127237250147278275259012903458318079259002434862077502718036408815966277129207178324479976248326208517111787518907081994798983787802989649445860050989235686255891152712760132311636131123857904558031958555430454892206317975409874295349372775296270444619080945353922280924425574276169997977866469623184865213450163900637677175196672209497091010682855749840540603826587918388773159649065461951197122911394400352406927908909564287046230102068928388078449362772995989596031895705284391474453603143690993736814641731083400587383312229600980586070405692691390802147357286416098888629438925552759983588400059903219433510984644770674233547599034221595092568521530846852065312098031652261510175249230060920590217984442577131940983696599731163989518262189124321106990824980868642378429396664615218463764205468596841203262085861210279734262591118181064896530897739199204234590553740443285072665159462389514055003468858330290854455567119715744265518924670005044224626727358012166004598626202841233730059062963873231853253564557855733098728388607768960193445674387567766009962841213950134902088383135932460794882267362284042073064834426333950635054493747613816051081736718089524756516423601825671142219010697896488632996513482951833621252028237416487310997523368184557024787382457261852409424434293331567429500643867877264399479980086538365400811207850735433169269394667313485741485065073813714576238739519355896460055942979284433367174331329837885314044876433762741691886374974188875465083694350070117241456358295873684336468818682927469486620364003267891980424972178467733996350828191451396121660137901386823645894824565581342718916528895557038283466724648349400614530230622756711107167298185307616663056875612505822319242745872592302596109974839370769167326520410996340181392498915881663850198276856309452194325785325185907719676785981566297030409787850209083054271907188832668870452903572995464724518974064091201474069975654219162351494730133847747034681363671541758595652548961237188334394149321392420071282639963901661151382687149782364406155018413108653379697447384359162650862731429650522539214893786155210598255485476705665912428737405844738577445054562338261695940608911641060731257704821048658369515581450323035994632410924026076341880820984818829013927919256651837938344156916463500722741989908812963056801207442975832369134615535487704397633778809248888920282236523205654859925036387024104431207912305144766659919676924742293560703487605444449244607793007101694743177142622467938856126978522960230717763779429508452122136682433181018141568650638248075989502591283737016569834989160285554591015865622580192109452117782564884673873800730972198465038372513973176829594269100862470647770561337866761953742148449839887435642210793458174919892817440268997808140360676056999451324823772485816560867734030302496404609988215380783187575934236509763597026059439751643557834289232269306373371879144949692203478036561648341141746912649120054910415281628454452282728866276693006509796895948262585385817770790155108568669035954870945440578561860098844667485203653101124673575269482937768205742330158365221208649531950429680768640748105990242800696959459317748950061362214595184650446475746185847956465977026197837023111091834556542074909381092362418480428434443260614786495448653966881801415068361348847626054438854634989435854356426429605746135938281428264384959047019456156850265178368863385252240047955850639099777667931298853719951129213375565371040594117994712418570732730807390014116935543096722133917988267011706220579951039227776755706548397714272723660888922723285156489451021802124505929291933960093057892775340477053997675557741682799682754342063011902989259746043070528083898535735093159163514502780422192032057342058480546165659186429241084696021287876758266711925789268997966060903791370525048532582390899254727553213468006546683378413230770484389462516724523400095251864888307152413900154337351092183054806678163500857715937514364646479308164056506096200568206555198190033608030178454412180687138672740069345381042608219821523066775422494800368265383792677386493962022556188889340031118418598931763409999000669239075125606918741302248167860368734038452591872650415175738262936249170717976243042369173743451206476494013859772447979738327667632300925754723327383916809694568416341369746520739541553078312601252929719689084447136577902976664887747695123050449478956538151290003967747801579537253703222501916534780779919061404292673354508164489241163418536350557507008755932848050326917739013872710679971178734151438500491744025138268040672419786071400152876653250340743489360538678375381981151024047368829655695923403111480200927680687773515693195340416885007820850618379126514063455085266314614433808795850546656817771519273937182924647370852200352684427036863533954073900951823118063440539837562286040845091431298583718182625209105827372135741378205198815023191006328446244634778882625113870457013873210748936914913859476971541766812123315924566807309371715536588734168102059942536569828210563870406140723199467385413481492765977673051399242437722856548537521493077840424256698585829398893760281976319162643090836220391327501498706346581727044423441761407785467363727154706935749173825785487263697013539188871655247619220590859084412344213770317376694485604353122152838723820550343363632790470745946348462445051524087390792320457881313054396658580783667878628866750199831941831482136576702813180185376724004346035299063679706691401867736613003651331053097637745465196738279486366140615093984461373916660629557252385176096016377000581112761900618327843447932454718924414376861921412780734020999064435734608257151472593050560791399216770329290868146572538429984722718500104441749924711924736826408815665418924839490413944440139712870185642553093631824421540737578158445290997993160416403977935164954149343481012993081019173211018287514357853410697924495187124342614027108019570321316163991154938405521819570046919552868174983785932893816493434760994765286992639310220818632527252640687793900849807904624061328215187804094301405143720570525390675233023036999426505582768371940587077739569943466701002515406866073067817839812639411806943748645558709672648934359573965288312007549642438203469954567965876771785639402967938028206452072521453002040945171300978891773894358782271790130832405587877151167218711711183701156350704494805268323510202505243242507726933904326153302585808945675540427289366114451822931604111784058708849741610312752404876281452574784512056696402291155515965453921670276265743714447742589022904353902697170033454949755942553489465627244457574874644723637091758985777323656910141875652842167985104202229025169701943034929878639881148310825436284624852046309193651409525550115062349036897902576776397729221885997552430238816419528864168455679982080338622689666436882445512730223438196074025488000841584882431296477009894728998449943649563612544683163346781162619749546831593464487944057135200495781826102332897562306747833593986509171400595797263586610089815357319057668914675937156000461373730908607569404269060453742157484321390846973628759450703745341803155327567104786135001346119748038947764818907126879834634121816684769408123271693404780780172440526978851306713460140448449310356894230899191984765508700675104001326095501035899015110722090539605759611724376101952999553855218512265305046447676775585193320944325035776671690882023982679829300845076448538866660591113595524981277942942792874811850209460360236499119029565950262997943925110109635835663366879354294079274802628576572312476833164231845126644229000826901335526043718259800015321607449648827366663380440591998980025177716034233945498170170299775309815724289541631481890092732891067425746397133712094601232291235900810915059942823945114469924605901430209797157823803891280755106869982895733445253441997115023816002130918256029425952067204115760806781037712443938298611498103756128724586363676612053023634632806192760475814093675995488439498062930090636964561278447900971868589095788852816471467228525914421524716318455240760743779833255124698469140776747451118205791320989427237923703413013469121507523313948516377657097244824630610168415678374272098842780362868043723910047030370049634064861224257120633516407263040003663676520296540442338654300339233016474544955556275474695970291119061629584738237205721078088381250390581978509182337295480900250135939830172359959282290838508819183388184827202297865357219717889772860488953207997099941718226235478431712928829324387183424698565378380834028216786400212038321843565470986287737312427803540180931014050824738311852281079021102671762898961550395706694566737979692841702992660970215180459666858184770220904114385996351506161930722506852583956600447621196116195542271746405960497283412571516395463641172510628301821346252505011759534637457680225647002072783655298594575281201509764218116077013636371166739987257903786835900304644722516429989788562232257461084746828636302603267650876888561861783422309665126100478226495968061618461852636430080062978217478059616277063197745869967849844792860122751422744549229138963310373182167688771608895011102665986060244213675754443841348560079321613662588679253002492896014592913981471974311683868572282915783562396270794522683686035900747861701392159152020985166264594073197040321768262751961467876861206293995797349802868108595214963796679220064233196984018800287573322573018044621458121991663972507060362280636931503271935657645348512587274120923777967690868538176149384631824399569112856430230841147909999912266143223801321665738285888415056968786371533988568902030786050209895214501435567076147541503389237836627271930490618057630167979018320567174926022286375273058070573105956604800988113866553990588456807637889778980316835382002312259440613009417306692109819131862130297537687150269225523864214366086835341308482316214025083905878299395304178884408557142400102531810147009450851334439161262988803573708465564069673012314435950095251754026961370172141737172083364187889698542003980165402315279070691255556143314335687357437581301519353458353790269594432274911262252327897987114570405027042479761466342897825616522977604603524288667513121629776492677252334522546130738784745955767728476958382501731186513106875231738211076894769835660326194943022990473383563692818904258594666477379648042179765349822383241775312140897271450805822710034048493316901437837339438728107268145547865641278057414479004931732758409057917021694388883816359182071827773011211131474465451917510072000812981827627019625146059786810248452464439718936159334773224149804199857634029386846803269932753171806556946760917454560912318584812621740876230437675641097713889872259394941402745556434343839873842158308836791769169967935483127679200122652554894923269988336720728877016587856327409238831807843322128601258814927687997329563485889231091065211395783062612565208308750118248705979625900329764065936330533354422852314068167700048621441050319685334730688543404835921739391402142117503650690960272638380196449867706089655953870660274861660664453294193604006902126215120016268749936164482067764040604927284625201766616911077835199235432678871842454304888061126599749296827057232769878760755595488064842068350420981732589927202832994223558500225791018228894596411448925428135402158050586232244978479723496818323231484919868461912156586677423815444561116637008264700318037772326990937264695943170123436775099179555365946591483081537298224673773247202726577403294376515362291823035949595572354452151446909459142765813530785877537370457162152914687244776897406495090425077723500753022281431227309550315755168157180861472897926841621826193212249887960426069864296085424481509748219659299575291687375579735254824135227370436929790726157420070507100999874165124939654542031046252165976766370228247838271108747654062088988657892467016691789187355670769863429504899439696434037932621039438613882701957211882475590868956770821195819180297042483472080764560610854135518125614032158322518735832475899506836200184900835409567783752648344544724158384549467478135593402227144577347131681683735042792637721211002190052809829520438529313620400840682247315033473821865233203990003008863194482494936036489009082480396140169169137683171902993893112450960915770581519747111682978725367688394214545188022389891123407152632807984375272170656047002047576333185022880753643069646354057069997803030149479322258682701550953260932894866663289493199164263292592185496310377804901236868011719233103338669055736651484720453120994591750766687152027713256389223959902335463099715231055827316663602242730907350621649029001220312178573102830604963886039005480873014710368930227832358870481589161473290023251840489566987910899979547650959631740073204810601704688393072893834391351909314415678669996189055642007417762632084780919988847471837075157141581914416714619455307245098658001433854635391257591204891111086069436289560112246146626372835068399096806911667665243145709105952249598813260445865344647060926673149910004334470218300381972882859767387647083410292062153973162235151587438298576218784510451660196841169920693957754927381259948931782930979840275795164650249509816553752716696912053616085086384554216871054064271520852702553020775634613000920809403374182115285776359863755811170977682537635962981561489029934075845089885900434606064839664839463503017628904575573146119066692714422055639509263061409254930447137818853510171417408689075162427081866012917969420714789894340191341189600787273461696015442702871180711220253666965289223896770899460066349303847510875891677221313912676063163211886381481148960892407645306629205227887746303738984267655391076424242536177580944741778614110027201850585426093684180272819915946935650336425230927747627568419132583312628817485051894499809728130018549287593262410341530790351487910313209519006971699150014006593251545673729805921491206134736119300234992314360274263497628662278154305081880261674084656696380896541098770752645339643455321147485800710522931667059092471061123335090478814148933273365073714471540491651416320647205018023106776447330827043506554599790605254735950404757801435289011164662851389479658060133142135166890468534942028658194648655553813652319725252804382366753318008598959451169579188399801193181416755038759881424794030383413729418839653098536250849180127537632545452387210460246645667889339815872979998076308125336462789523072649106491804022895354108063229976118971065515491092967496301896857903355635979125363835808827739996064535619691896919923855279303399100287754985087631455252290471634320988996949368185841926875029042462085441306149648788096002169997940800874802177399120482685610647938287942890254725782318296225884109955947419713508769100162301808732637508818521426345046094848918481463373426104988026531074446941311500542105195689384464267229089083990250159719195245093609321753659996520217146022141847229059622052234273360396158779088912435244041330874433165197519620889908390138787574772579121723082382369106321335371146093798121577374841316811513741744857484472291719109588558745307379188190535131225944984074339872301999367520497192291828018305887153612602311930540842986757285687259623439031708066619148321970258521568368211696305766431086287809364104438798844691950661535481177111386611201368355689884605138484281433870322238054879511436122022305132200259585253605310915250481493151648634216909672297323319746633519890184619390712612383208972496651585864215464429685139032391444846895309489656746193520198667439808309300387302370709301176319827134699592107012714109916273721723273494038629890563605484082824117432406823193087523880411137411273049851836200257471325257557538546153320992794359674379396481731621790164245056970524913888218970462112804495423850240398037708329023526650132282260022802524254950496568852555190339531910658704709072169019992265352446421181984669592751099735881050830291560795726995071914702571706590467009613246343341502124300657092084135196279246590485103241179885886562183688554425442762388525464357439977718330920214419418657641680618848301480654085877701703248395146873390566266180683379221789420329222337805297653525519042815328843193133587683985567395525110799846375177371917081205600732133767996669339910166505572474946862789921356469606147157795075797280008922442739063438952210380851713880597346889005397453382041527408737344807273974297143141187501313885878447899781019675281989100179906839756090058227556079936074394545866305079039673914028904439279246206965298303383455902388736422953461208810987937232696925059328223495720344592472784524276795607622567601259397551553193295188616066137151428151441886446617381238969558162929878713777639092795002985637923569188007024132070459602104851298917962970994920462634110412953164190969565071086327298452008863439428960043575864525427445610546141549263029451559518377731745757014356004220002023822435877140905797257422892593102536692206048991870255099740791321090024527106485656280878485983873317015721620721859015130883246637314621901923215608197918862129947437355548918131907938571573522770601801827178111266302692461490863391443802001732127692500851641482937744183077617383422322646740458047478313527369850168948500360540117934887924003889780570065200136274996311246997392990905802921926271230714384567017873392777272034290952397110073599526415655571744018372184821877414950225061714006151478994200010102566298156471689368849784999758033833510665223038870918528853256203765771541936045428331897048429403541450412897620073677551251023058777218897422670032553464978641693065859495966501478124984743645050027895041025279196261176978035404771195997284969609747400199012848468087450430398736418613847446194224939359678224078950154628784033940820629535489233412538202867513815255124632145588468249588992831812348292909216226617491236524760654939164268873661796288132911057963572279134057300958538020778620531808123737522311129705063229372181621362916832987591390055940100228154653565568938431412866896690465201734012501923610840464080365295799413373447403602392493159210188829824983342198770654716439763822119722849789032456810043898006134508683111258205951005965545715835101764272038447437107280129308519610671629254464374949885067591783979189273638293474447202563494081335916009660046927492689765629068105935960531838642200625878298184410299898254101674547175823223225268589686516439460862282029909545274040090968863547015892727204781908449909619839691452924041739389758202548331453572536157967036554264964925666224385514518492452510492104117785139305254977790220965246138944081131095482301778646705299299535761612763934540021413929786184530174623263899941700534708674300183148343888232779287471443951997408067028128979004332940302511765601061745778103917440522049175934279623473644709488400159870185628127715390227004253425569639558441351632410474929460956860427756884160634239863494180832477265130467186378478452442076203981053375200733266439631197838672743783980596595908765247036437842146723124812169997923969619110463766727892052840620290788084351799914893542472377843086860533130192159947501704048433206291430460174204679632481711669956510511024102709341158644115131336580916720286052626946757307605762206343025995346889304450086338014158858684589021272416435238384359475120459807838012563413467873576166219204048456738386450887867032283919927990263870990944502140718915220782061365860966302780495365557269564856173067782443932057790558853175908592190588673788635505055859994986649970063107445399749206210083433480659508334118660159553872254183996720591596346265949007149316008283614231625185797527732523135526104260696503759249457423539106697805520712976330306686394586145151969651124574343659224585439962562742049854299054618397146350126873937544821433746404442835014279986110965820108786072291172091589138557697832241388823628103388980487771532405133624188718400285397977409002900533270415842046703996938138117383735227041678604674093368861984192931379033850380943417284719273302643150053761965143146196723603442365263033777664877283208985896625582161532555811132547288154158587631355696894703263088769488378477097296613140565818085138564956768450998700613920136618682062764098292884755394981534253575061384888221943853807352863477548267341935552189080398892830740694376417635922543919996142694658695901424236754326508695197786975758057026054887080973900792795004543516010472630671951519412436924951421805423257964775780224368098767288129222435412751743499091025024543478999241871726576099462012556981920580678738440518763723440151532230516270869537710625966727689849227710343976710635044304639326012509147539660181567228005185293630051804573112509641953981576168798895037142868659877389297661124341961720459329410797285593839167827134284208705855010164288336576335362491250821792310456814364972095544785942598447013918593044628956181170044810346663625392593384109378709259516981890040229575182082704256091805748472172222915697642534537852552704475917370846335734327210147738445106485642422005467455543640843277843829373055354986235335185383562459175007570723875732688230321671812101130433658655002675834838110520285606390060948598232988708308713722788227842629239676866912748152149543269403050387314781652225563298225005117667757727785096044515547935757220446327267134638373864274912221802154118083951906534057441176751617812238601228891930182060014385743216502536013156833485734862672679484828283175674771907083231293815388624415125203580232621345396068704088129629783408882400516902399111984811348492554955457918563979217915560020584716423458101014597842454186240489978248743697503017775326927635755867627739678930107161286895984642664352594818021803167162721298433957637600640762332464104096602121924552165535005202940413937061146653458944704674790912073834711190785461509137250312459581214996533527544502892570718418721723686907373053097084802038502275154939989579824465451085246666077244955291096280986015668975117624259274033829692779571419462167440953616814065943730777553255366321234180471196607278870701031039995865684844057231131405101264979103355732542169806626417759064269176305064211779890351421703019862823413339323110034315957027946383145113815394571377656428982265084220686322537624037256665216798063959348070628821960389589512837724320469956613694747101919205903723113932113052157783627107174108372356085067294708985480143749829406916855275198348108812507348269103914868633659884848724841483524292664070464507311219825253851525898504635375182980496693251238668217406616871684884757022864640488132457167994065317657525126402563509219574383387332467656659016619688866000109220887246109055701984691746456758769484264923397809093202432586559922074497687479603290238032767440376167535247897244156644315160399050354312725841266606063405030748585466605774374370165543451273563857686853172039246196575264129831677270369914971601173114313495061085439670389398561184252750268164589444712832219663692666267339260356324588305901269519146961373034103360617581057949356213836946749195449294541224980947776001307189172240755324993455224541027598810790774722911679831615160586140804229088618013127682347296695096401954211833515161944300039171808570817212998760626044067455350524262182288235374018334905459709203929573824199756395735321864687732935187335566651333114902702798080099471875663868237221179543190616810952622197152240202717743319071206392329328022874140734147122693140053759569629219854179028256256485544537142426685766419202543797937062951413725888308355309833622526294998488539564714946906038717703120028766715286407837856661028385596543188123090735234745770429367209057421302465890644203800498279818369454013595747404058104530517677394987883584979787657352697487747994023988595997548304814206532192374108188776427583400783907322890861529291316225223413315581233024243643377424061140025718224197585989837924370650687244981061273226521438204430509301518461910823768304835973870062013317997953810902029464839987397550762584484790813568255872616038239806172218223740523099137449712367131488327168168184871572023068693375067464283370658702041718825180316001225281118972901721111911853832256197545280534399621270906659244293598923643660397731326079002125996427906321798390717253204632489668085751094159062081589848451207871343758317654350065762889918141770383264807526826996953199899898261853056704805038963512022026727439104420986413393252277567357771908709056753508012659076193808686548534765724249711139328313741582577285690504068527141315189424131470396813867592399228421053990327710078840172663478353391463132667384076691147595181851755890377613088673187989612326694795369644457130529787166268275717487625663716036362852183743627583861646282525586160218903829660032709519838567358042537178009698457237808750532524435316913864142361405372491658298390704802238187571372294348710739548411846486326157279439447468550127308154509588408219109286124935512248779557668402307531184803419915869941385690163908191819471175191158365346972711066061318339059245160833125582318224875845556617583097600410735636054627089684645432742052832723699481544331007468370962114149118051879005615371499303637182362928934701439962912145335926192054460310095680298424115362790189462474579650204410046542139870841178297839720149387969479328833760893821786349297963540422760477621046913799336472415625129600757946561812937428341679188171363536699730955741488981541084807331307090992929432073715409623429332449397805361830385731665607457033149722212861730944230475811602536661254996700218209741775425453129155536062430643733865061483762688813484479553034748548023158118116869714925372989882973774344265695550685002804198073686831069017698649160267150106734417048919132217593248714918900787750760071633075967729870466285524465176146352274222759294587132855912102564343126918878210697165967617985742766926951147092554390389630837012622714332252462072086110535931971938942210815911753891889588523775277982662486188488401689821863819333768531753575391407096514760292766195881173359515721494942649717883617132866405109295972538410870527272404270377797221357186321186505687017118867691056157477232100848705469066074145808672152675332597792754488817770032042577980475706014922987962451813674565233897536884963941751291720371018127512914593585560357927476815871189125136089309515681034180966615142409521304661048909674160559956886894581509636978637552490541225358743166259487771168883169353008149913618950783713029722225498180434957800288122682899019859677938552627408461670464100240717841031260679659827798106391101099553021444591420757804772701574603051582357479015281545922403517988705496941045957547257277390580871897776562427947293922416152597783497186644943777217971929418164752655860743772065275117801906162918884332075697929409104931220072220451996567719011165284533131020227359115936208073016382402467551207962666657549862914324689232364034549280658473955305500160997125052761738029432827025964801629450690755215534810229893937620513138612292700717618391276907667885947211427549207350334635920364149997347221250212092496709098230685259808164304793949911914472114606341645983984077575852146216963275320822925502663048313605674555543995105372494715093239290848460397140142982791465914546820823554959478771057668458891840729257309817929861356276146803977713699307160881234212918804780817973043807847288002968596448376198269750844904610348876124930712495747711433820729298831874280337061546630560656662641483630898604216126740571935216056808250090733402496370652518304980707529758373977785267951217874938606092034066427504050243425609270462750966557172371664183414836175589742213125355588806492174094157441593995396419840733516469032931798221049379788716549487510176619641781575745421187736646832229921096257430262502661936362001926556066889605317700398808877126551978423174889012046616842306051329854668448519253493842225038014750176832505404218249813051184338697636089494865269062277209441437366144904247208698585685153644797638328984268612241343792523214070402958128968485755490177866544417092680203734832516400771819592580618561011196844572654065342749960054548203190050210669529358949864493701983614086561948362207700424696785002655669244354072311019514210942324762907736002275074673200174765150895819181887446913977516949291912245947347762314425398948568899567939828583330168843031306546928401510582234501678508511814361731302178602856308870708162028968088257323798521900470875416959222623824896297918687635534679628022979175413888319304119845455001645197332854270802921537220066205990752595911780303836107837655244073089272221337408477470471951241076987185937196778846231799123181231070468355862200875826708701873646607097724927708857684925846849202115623412269048711741074343932218890600975505750534717561064326671946505913711366767794329307632297429367438048719143085339339087690009720197800393510382973208372942639552006213039557489435969199923376275072145917128935176528560505375548325588676737043547620636861634898713001901988422616575512621359781617950348403614923450420311607087009004250917603990584086072770208734443414490361290017445555924042556497133021299495713301365539163191721082440342895810155445492890808084739495231991101658184738220698702553865191737253806908715369755374300560963197182752288033826320865297703451048659753033777021201522575212531688321386958715884408702226004130332127773180467199799253339431075287258438749693858264420789840897048232484095265948020089800357280100424778635023553535286890543173423598492187313922029032615559133150744018071168151182002955720819785811836807855545192562493531634348810242809730954391610016215127114963731247276056661483144821272804054651549964416149977604744063165913271170709909683894454253601147875987008769995578225862324206996768990366354548272128084136961101565376291916634947039930829198857378779464224184242094990570436432187569164961023540390355640808251654763961059436009240377542337582390744729437489857639121411832993094232004275372458328825355399176316993620373876672621980135730657250446470106099703836794183535196747966175791061866041405273497310297820941143703187807574419938076501150486789370718982372928114614897263814259048571747688434364939273929922686390836047469588276587587573948218321677399876287112424777260150113270348625584618740280050668115208571221102807563492526009121750902440671368790970133921607597972138252484194559542130384761796559565029743232830467503606366376318602961490055630525421294738472075591767488624899755690247757401765256475520612268852696970548145398537186537871670436588413696463964336726593443243286307210998486879918587340201158610817507363075013294309926400887573931415902208326447500305545343019990320095787521727916871060975210918383541074812506342107124738909791483029617577428239506460851328901829189368398909663710465991822315176418855108504230647036549603178257013301973087326533554714572301907095383483163507648314620693536225356919344035341096600006016784627872265482893427898482625291541426387740894353964111672314680173281560002089821350725589712597376557175366366363139182262597513567840243044594331273309718435578335548262250406623319599499848585249226695932117949643922078086556859390868254690962863795905164554282062528743795215883611478881841538631184173070029730251602876036951759988361136927242664884944847696460839494286545099368247686569913149645175861827077083244860050243498266324972451062080346315630500987190673833824898250859802347665445698451589616450901220981913326173712954699754458862306321000865581320497534830249768090368241553944395246463564348311527585094504872695203104367494470732295584048752212125006767946822168341332121270794473421320099138176296595129228443751630103645301896456035132346569488093477492583492813017112233711452498593009563299272639448621668580443285609272942512141380262186647331608755242404361405816223606064558748257965819037371913796575515245220017341152692829032406709842214508081032756843700386370802399767899469133981373239260691075679122887430839401849624157805015688579938886421323755784741523353195332765924386918449665384257302188178291341215286089740406829303467664074692138082585156437563805080787271518586228846744710568819717346653047626075266831871067335408328707027270707495211347549783808408073489439447253481408618517045408179325938457028558014254209256551348242854622364315546454272519545057149839821711186607863816589558905308692525279288358174123885526507966895285152838233446505337887938414270904170998736809601657539197763172178673783743426424095365717799244881235379720140678912324097439221715652131633331422958684842593357224661745297607202182471973428094108519542480089046536817368837538982107708183719931971464953906461251481542857175997792640758615764217199103286080155962282591741100305270692230744664922967962950147790122616677282676507707807828109618731758598375089399515073779663939953775789565758534687146638062119099416048105636724075985730154309245127119505235699536517233132780382355119395841642917452449411442360494142225686056052787731224922840264487601386731712141534220415239159853019127196449601725519977454239200526140209798444200166274091258277735776744576955020501533853247115129150582906411439474731358774496124218018179779004351234770565254517087859608391677701799384907664933473196125553665687173178343584452231875490817421579609165781639092541972984078265423357944626007566682945391776294954379665732166793113304091339167497351980276005486633677551888804233414606333520734923184773292322003795598914316202266479940096333810490256467898371487725018862536069407160779557835125960574642579081657721459052104497142563420353608050301072421745907392851248948308515674409970682555691882433068322314164894293528628789551555153341851313613664930833521870682653234085427500800456608591560597323964672623330448116231499974358237684198719632181310141266809793497137380420737297038953674280128441777234529424516947459322489819673918884349763608102609786151395761132727519161860894657842814501676569456189342255210031397851408732265326572365438509855694656605752161869240242254875813479462807820777498405391241388583919463203624774618756666697842580627759853010543266745225638554024988420353990072980688109077672857134562004689971544747309616539480082907946892207959405975818178757256124205996659027946153183856749515972038306441560676179765170776932722542214873728170733288333710195852382994197149597273997601308399371218570893195478277225410832907950691365547834262607518444789384497312100194423487923274766015946592279307852961019953467306122971878801527664352854159129708849011452781989259333883132598950926117135213905106456092828187640129666222876056061708248611428890003335429339848027979793468807507779026547275767996871403543735215928930504259620171657098975327173343396028228756656778613639568450882519393498349179819998001940270043432894886234002253577419886025335403157735398816334471986008638427112971669173270928596573697080724112108297161572627572201684068243111624650449922352481646371127556832264639050856728596741163108691622280412988860731821978530962221249137808237313063025780087097227411067436641645183722514567963048182757245812995237150003525432712551632279055133699082214455639713023359592345376212417304831789908936084756614714771186940282321765398883095998954911606117757612027281798028080285922601185327955844860689519102766988334770229134176305719022102453091710265521076228180560378847442314870497665976196300608888206316184232634285604329777858997485520978052320514266290779464343341146675396071984985987422096635791440003643521556157208415678470443360851001354841959565347798519296170458906511719863825592384603530683277141289643337619147981163913905407501906427830790706764732446180367556680951022959127537061887588468468310505004157605325844918712504118629580536132953147692454652475055553262478945259644469683347156310740581135959745974649518923684565125333659650698634058845602232262167944111067817693119385635886716780534714575523707634391302396101917120461949599447349434717378722145553114214000768224896661370886123337017448749626270339629776019903167945645595597060132270113232015636399132830336994177884005944351890188078494843805432542691005233413958702603106718670092162969090404225380360092462212661712171296138965057474869349516007014441559394427180092009292475631946756434723230501622898484022472842878058076831671011631442093457615511044307526979385517265710283866467571134249029392777405811406788149017409273108808003763090152402424626631449247142239541235917508220440385020735988976232280233205984986182255045242052707680737807298898687970424940155518585269818441431650703609209342467069248920381148568667289624994990144769735440363887532481308286911839869471306986872346150948974921279997378554321754787705930229687581774949744198703205689405145106006224496791350361465471095722508459158598171572205962492179935096254109129592591253990551708630558214006675951071953478051268775407884914941424239962016229033293571227945445016483534459786557540822476196036336830612142943865051573140907503049054414372002556928497401825007371263922579020006477099371243879824752508837310802946080878243992128013204810472174715949380879481513052382552733617747790445072452503433816761415610558892383799717387889488621956452000650549714537894227201269885065740284555363364186129803618670686721773065691199570537618281635278355253611334914226554055163509722149828283670465201592954452033616574509690826186009993401161302648863569772185197832582092674380896348104937270508778659500724366784053425184182688616706779425543654322725134650526259988597966405385502634852013532743053383753373209706807769185542855629470459957092851844043755239391860889358574933671268530925024857222966992224207737914924932848708055621949260868611138604769844515824051533171281807345952963523838539132849197342786492572618861862641520983666391656155386286002535615163531539200100226292077489162660929488047483354282505243985279131090809625639868490884926941849201761758371667048957268277525679661191394323423251671785161932157836368475463467651376713559606354412999237694628053157228743937291105198361414622056275098291365242571292678022182015057039315188804426309485202840245418275610302382794834223797727513101904818453290280002756774569268731846009690935932869592231547754684468198458677460178747341364279673640291760022536513338077327257639527175376601200713341975310299009568202957874791656640508422322011717996775171520666067606994917776791004208969615015902966537591776609054848103285998399156275055195741261588751560044458091184183930373449412205157359413480174658930320001021596569881419443208479714995265827273589308135741512084074801097353654466947310826596292235376849419262413800820070477983050541093188548611582067461208310498709173060586953612080207299204196936270389755446399904226541817368353191011440366766935335427413197638925760646127687231968269933894419899995211354007569420924671966127856227377798773847413083410980817701777120812995848488401015908009297805886277259887949819208932197005465065758303024687355280542150852574338636317060071571308379101923694422801139690692718370233310604102062946635967067658926756958377180040142441644806778616662198419038399546426605269798843308591819901464194976896261328231097887721647943812659614234149788191337388503198109680948703614300538477940082027480056676372341528369764219688731396225086302199144442883882715684754227806508381717950007177920419192623871811488688960369677261158449374993291270629678048566101075390428649017479814348168391713109635224184367784357199044869492928795169162549093872484394432534102818436104037218460896014465937314571274080738932264762088714139742539216626398239019383435542412192306997766303756864806192268895051649613446021244639003015887328364719226185928030624870591388010535089149806363682735460456649339368167160174185823933493710392493640131669656229902899437985179817128467994663054023610075890695861291252006144990421005393226311428951867553164502825320573235141665524922018396174749236270015114127037152334335121470966919993869044176809736169727446502832736713209984425770539868951887472228818839728867954488774216427060582215478598600292862487144295163698523576253750889286343238897227765446135705602256771886568692934527073399616948628676575710621666463900130050830404874932870762104365708286506372974560465845682556274345785793735265949182814479853989417280870754196576769953530964835730537817552090567238633150833234100656920956678463527014358942911342279953786006174619726047478491160044800326556503123544114418162288501914910930040738210736085828485923309766112050522883847492778450740959837443353762120538311311799851751041570700333382554898495107092413636855461868965639238617757509534330892881327381465415064153665757421455325361029798948834430024892845746324692029625100637319384029926299025086449991650295311591234385968997448760965038783335768583364656810070480628034594899661987573559179745160676001929300215540240828692303599077496214883279967073818402218828643215545562796926240754467085582855280936859833036148875225853473937986706929821820511846877320223802972328623709542673402229157142270482821801687242304920073243104106208311166368108104839392295058602025915082921740732675980045497368878029811819223077424818949690356887065582235616257762097914426556901949219157414691027560591290908651605786031370673112123269238010059760663602004444507886414697798395889489027309234897157615553937427262411772224130110426359486735199896768713626117545815204842669758051881888923721015822388579181155453585227562298705822285470223954099651220058296588849891949646776683417843759702927724247974676074065143893972713086497920269777759218744284591207169314037848985747200745232984144688779199978858556886656672429963075431762580155846647112473896979493027221938348089095841626837878333659860994041344319233782540376229235888077065950784425223925827066804634577969449929209294409428385373220972273916091023848686280018922055103237905339693788304008222068220755444540305939787560663493591910311377011653137560513087302918087065017639718312121764447680142963012033245814259100293154588293075920968294500669813377181251966903639128398414626063672838399946829634345007136233074780157129870356796320870020642906032950281692636024049337683249296947671755398316064686996303267632647456172841062791537672566223536271803248150120148889730105432484834497659232512867037786971856355532988944830660687627765861295993964626383814911049669128882715125270096296766779284406055775537140481627411432515575610415128654727354126512607581404335567229013517474283681699368457787457070928619171505298003970788222708147542541260411727024002993966353720185528252430164116264892058292174769448118067535373331266942995048358562123457636983901167010907754533385920084210570307318164177005514007338803790728326166580114198838397190636855052469222063722114015738454174775242344604367066755938889408137935087961603571941788386914361775255596432761550691781450692271424788651105506044330635215290811870912465950868913672150435435869285853070247979193873313697648310248467026066568044687363921510089329645488512898657854603959028626318781908256826689415637945394067666493974050978348172184981496249032595018091313162978778064886114502176086781684792481429957823769972924946233465790916436207356119061165445470052567653041352518223967737437458657326446988533359588676583003340745967632240383461430949081791356158684586468752320447088476606199671296684621953873350415364620710885974443045344362822833518756879266153774594237017873481499512268938471214906643660437912821903358600410336247306892838533243687468616313256746400332730003496121251526049411651101139902721102728879989895381809751334499906966354499035999767634335796251508031119761132615335680352893730696959602457155106782743181178868759560427587522956073577163967350252305002384044704244512486598739898058730244014708047759776841674237924736085796069305684932901266196221781853202981217909955663497219590446990156315046826715034427032061254877170054162841369716133448711960156197409290653338420941275631948869118055326094089862255305139269119147124263899857599851619052710736378641988205782272721958856716053758822322164681236649423654721212088163844346348642770446391631636572342276153117935504860500641785586800770023729543691748145869858141854155402875722297904308447249465973103342822634912267306891921693753184210133650424242595928196011460719959177781875300545250853057644861361923288478753597340689374809714040822694794332859846535713228822486307823348653942317419811140470706990921390584407354721871310448082647262288271655474685939110756787505282742431649452773944561881611311155406812322517016388633700880085078571238937480087840092272421638568917891747041982484252927093985303560942412604383276610670757722219845264168896684403461588802417783464568499071572136618747143375555846814220348643817044118669227467270785798762018799378823268494258393925889073800361666008368523643026966165006649164053691748529604076163083484987686664827627705852163039914365667506628349991804387557458028482933677572852079225829277251721799703429937550601161781282208169282724200335481285483181740619619240813510973463030584840077762278567579956612610560627147535112969319815266963199837496263532470669955674669577941990613596376994491119244774928822908864105549253070560171051567825422395862303602140634658881576602570268050561797036422474285442441673815339305058348307640610382862259716519256782364979734158057452756682003150454321580416969363584361844508399881841623021514561216475426128368246113002883999938432424037859927254987863109869415773714651711911110749594671306887397269733345176409059304407390282275287663483943986134440446135947175247815891393589501456197924770595526687301587676622053475150161419827114050005316221433141474472023180267946136285396952462821266752214774490216182505212280369777233866071101435563421975874849598889121025476644875453037289052442869642475626759609920599895160143164763897326686538258320005045748274353015612725075008747910938828457250019064931878215064413061947755226711840672829035418766658177447621590056885349339166434718345651291512941132550128526304550422453056992358343299515230768256339915256203651322202343820174932023582593819628128650860211350766164448520234731396983138056683265212406202786096884116955148516904788501608675939962007322005985944033148836151222779580899913961467825288381833473990229727001931202117838455107845162716399302351991569043675587393060903971869944792080794435348715313010129193947079425446215626407711127836553537040882171625702643341734964099010538462720385364308267757763147300503469178339856130542118593627008882206425926097668666957651461434882869923817734928389956255693777987003495503934524697359803870453208063349701877145788157951419610758605957887958752202550225438206182239722256243808757222060847813710152231677492647224100622227996479096819374074392461743833235457697805832482238041795246808367223263180418068070098043072095624044875460850242105927297063864499999436974914907626525649074750591919630390525608750242049065954660152449780578091750457355140349207282264226236945604656567901829096200548193051864817570447851171956161294020568239831099054687394551465945157230713769499406360829248632753627458511538913898486508259271999368880095808145491157521953482352043288425725797847992408229526310095825516375247699498069706002104059904418943439927042166467628098880263302754928215073129543698734170429700699941736001504459210502997320268428674358492440694284688618757793801379303960053328122386043009832196233125706687901658634860375545015716036507713080331042013504975887191652809607949750409369775374657389951359780800063437309853554823231749523247869167280448363285913693204549984596618467298065666105988282715156988684619227627252345191042523760996263608161353590198465144123813045044365010150193019754507602476200668755237960061645151212363896015309688327469100383337574612220906613495410946579367933915046055223349775796002061753405670471591851638284296734723081931631728902136736312772716911992626016381556779744161878795433464123935719309222937222274291904273670825103422962803700769118685824732870189754382016597924394490983657574518823088077255796952145453051975889850988879897259530169656838293264369557118578062495592929754051643818169502469696809721599975981704434291660625587837030766958562892591248759260717928476359927599275617153997913900604683992300291368107120232400337182395863968421529937927633083148827722821458314884189973316572854924868079506364323053790040755658514523235205940200133010110166572473170797248449692525833071682341399663913784235019245349021233324053829229540630307613122453428265322459362662814781452957525519117225188187947942589444313471545066475387636079184396718193208332767597623903846151164767640574423514974282652605630894198012224337982341735035404159226050286072858867419620062932354329411442212131646256578612630593491456679249486720520832700208168714280903841353802355906751390068042848140165205369251159381167546675035910045202930906877006962170564594198808065228513834548681359390945678437353348653993068672975960786192362005545272790238284529017305260930538378919636646984585363494479781697152165801995157132717759442290730494238517763693644265421318490281896658041643702397955818994141744015456377584194537956597762980752184557326794033500228430183648493933508627319338047708965416295041701425471754639966815070590099236582256468070747681621762328527996963661373420297029411740512427561733621956603315591544737464907650217292420839685400655394865141597865900009973381185078083169190744602692164305629474578682300868597920024573742522697141827149222276762062895147266457450114886361215000313754166011969896935315957746164042497913375839602163004932753051573637547580646893073879674773161006218028268916477108238402042890513530932064070688105631131113368648808859545335859960691915654637641328559923884986509336197032350897998768490695271043600477390871599461905465631568295114790472210476770829326981643562179357817965836020405101120174023256990229766485383962605446895961249301175872174371116304789439070257677423659155673194662650880864433668309164648747356440574444580045092839607509196981544738489142196083856477937229427958486801792704126127035596105645325117361474633478789707013754331497246913637524661086909331462607958295913717394124378931835469080678691422376843686296753001139993318321353071434155668940849865102920951943255756738202540000486812970607306523185810591843222519617709485699328570622361492743340812622117588847338297062999302598589404513066849716128472549349902192557684493479078478511177701337293661943116735856625002748877160661705762727329918331566458737655523934323114679274498485857730348661821493562030127212348760733470792932794441172230826320617536976863271995602672225430960675356225590219023002500826874079111194065010425885893477441638192308826199532311368912641263056022070655570653746272606974639889703542426465252876816133968314839190034212585609555572658937127039842270964754353825317251930213728289524628977316531158265180126525224553025979686396481164580019109822222131187838414963528640986881514668231452882783442343322913042656601995820027324882514131083503580228033050788642554241273278212810411296867032579916838650470802012878374079014760753039495960988801999373665688420459150205107333755967730705953164033210089262531235119436725104503099081278856474537195525247515118677923772511621838789829761396139002853868388302365195404735480361884258913974889979631711670167620356683635298126200711194101712154020839353394557202688403730108028973740602279979665854432261870364141264178243859205930192484006535114714274051840381729057496444216740685587518001321369377226843587589137465758404179560075841977172179320715119082982932634755476231161867583399336943944898970907083044889710720672652678333983661569927187470780123149678598026786403807777457708213121398794226604806787044614300974379132842330372458131479745449244456666002258757647344156150937964052028323477902486616187425013198383194910030006420848316808996137245105642645277643138271040353364522120861469455080363833535473118578114891931729159301619499402691804693349735351088682850900802897501929029558469238299221201285101258365789514108384643116799899034989423080198436442260807674505796179044962007669868228243171861638251574120183990737631418595854957196496580256361282425075500327338946156763150929837237269336147613650014634689283016005286560625966842075563875936532433516848578621423327647905393470071221025559990178827940327078455538255935939232104271140233676403781478898935136961947316349627500665801174441600791412932835965491533022560251540097552721404454160164926317732696756751151218953642357842043798213209739419961419397240295020984651165137427146160095732441908523558198641823335149067276137821516227928702453982978436220301598761687504780065664861201912231346363130527289838882277386290095475846952552829187127699301977503237149840136866893755517032730544307995865535397074759510891246338169308644874183874424047819113035082061083868169154716941647627961936800199457272895645496312541319702511692613279332903206166416303014645359252354536807204729646282428419148519176021691789333222818060055045718787649581148652230279661742286382811298558182292076272772780556020680244271136991735083097453577187933135642368522356480467508058718078267527914650950486855584353634545483850299402273505999086868916940838018286193122195822512803857218965167100949608741726409409404726271996108833164164904741146428886709197737470992288693697841139692106226953255696293057495601815509192315990595769216322939017794023602148291698243203039394272672134125702413426175526639663774624473677292099303479184072278010373224793131190023690131647264909297735529605248423632198701429499735132462017339716851504645710341186522208255290489542627636601550719027679783324494316254247751758251384198308556281441384102938819330437526400101604743823877578662972888723926011714981638325835647982084579972444369733540319211082620369232916169807436989065590814119122183151035202222806494347947175762174006721128695354221144697738895993415996343528571477745218258263466797935562005028352223800433639853617014444465160819101208461407877099473224417094561544569753668539119200352888901545130233996423838821066618789052710686075711184881881704168353520860843269159703577812811051434484563397287633903012888019673236968344712140303065759109369907174641625619095109113608908482778581087978683733436332963373051852690110020122775081966989944605441637240626839107395309683995336108708723251064807368945595957468498695387972255114341198403700452816932290463989195704652993029861033685908744449527684000178732642584461095152394086795725795654475308223805054679676510644012498819078283523694338058022960656750896189441672069726673863890112507227436524285257673733561984093663270926016528008160928318841042513206116673242783815727336783943226116309839126804369915822323856482479850322720911466162025230078490429903692602444835811700355855266867227573557234705013125066727229466021989908412349401376937690123918924509588565956717138307690633535173733614177777206311790480093549939811838039630350845348035115595644037857299199168211255314190421718765684917580812677876503753608230250103245480741526811750958311135111870856278518793909353210800870560623329334802113388749321017595126165178009146395987054367355540318683948208428527058818306674634161666429364107830549228797099055962320665861748290810215228272137817999374198757375604674641512024846950951379668801210828131073774670066535844133666806918102978123809214763733546684638728082541264341032361162083892588454511702776170585590801163692473225939725743655553268906111400716655958400081548214543161189320310676696548219266810030138550282202777521048784846362636923387318284456829745932268837438057689766084150735689865360668444981525136839878936505433870600515677610311732735134685660010209515042636117622819391008067023875460601811298734329533319914550051686996413492055442034419168796793016067820096365439250264871434656735114740313114699692945309522015523861039407411258277314930962009121057617751507141334840707654255105948799489107109802141947159208369760892136131166482822111447738771052510301558263810909325543550635526639974300693652082918863480849464549233300043160170804767001415961619030340010790453876725324002969071608205640649197937299499085007145208781980433828436504276836543183421695607803269387601345934521327002486895954823895302802540899233699741858445313585525034358621494971753419545440849823484294354244744703929980448373258361198534495641507874399133081202294692775443105991471827913646816918509930481472911795851158193221776229290126299676651369516431299183210361710101816707212254209929553759236821920687619258822369600754229431513598779018699131069645319321014952674469936197430201926487981066810097605625101362510516258307061334990349996016667697740719843472995473777649414830031271697833369378404121801736977666023473209242490262955326466610943079269215011036858451946964327119030225948749805529689808279815094166722639168030256200551202502615228589997737531720549387696962694206854055183900721092493712676684007066996650028977072135896813702527976070488169742725699068654084966188661381469109971574901664701687569915011831496266167047631425932050178299053208165762132822503908421024875583072317946261867587652322998246155887836297080813578886649296895418960925629810149672005591392304030319857179146019829779622071345884831949106394404916126014640293258383913303507402604413312945124020113312251612207651292980581792610850545747809178041605283617065102315488682064343086522850746806139170994897432519648289390727174589132897692307735126809036052261546894555958603632262944832953109774515662338036291289485145507940783620438392466744000519380895677062854681278495033105610187558230363308356525907115385968560792709589852855283658509455729571826427292419033619077668080075852096138982665601747939131272347957706908284170724712702394846907668591084113717565730770340387859984418136638776974777560650282377340273672636469745537691846698127563528508872011023920054675888275959271755026313475870943976331072872377506890942664595898716307649945078604120466054905679991053187695355595843665738885706330641101797905912315267814016876702084400690393748401690102944501810825815574843786932159648531191669135476526997715323922403521010351888558885296956504435150035378223072458111120921348728415034365619691014975362421674265581258965677315658637701936080052667609910731419995538080640085528757017985386739584201118354780466385260261033265017267408642311014325342260731750175124898165294799680018531052207438875716798745511554337326525010210945632070895097715464574743532764228013174982585049733338572551418014418576464139747192458793670146074678402483324731968544306715330958174613682062492136458391222307064588474877063086554348613899274327059773139848928192401499023411561646956432618324014608285462490446679730747280081405736531486111093972298840890360795582613886065798941246948636540791642691416676510432884234244594280237602272147848748131308662216478482983484389081860264947975616549392490700920794073692317527991534241520458567190094541269481081969739819717167371649680515580195869347368685570532688895700702711715351124381393377939194220601595303933555885768773122801187276458864103745836509891319951109358937991129059187799004616231805474344776521607559919363333543953360268386606776221320288179842044451522364478351383849094928174490518191143844785622635016368232189494971725847845824510595638432706299120956294575595632623777300012828460103495236696337133192688331090962488427651902634206655855187254003588996995379002789425243258934072189024953802943674353366783454568903219191641146493507414137658648814679393497515385648242229678455126032484423424002690298848071526193405869233906165151454424682992941653467233184523280619046404712762110655283310817513843544699288514340771360060354967635709419099864091283920176569478386314014655946275053768789129656406015618180928657879195382416751722291635038432050707845307770367043522450275811971356346559414955181761338634971256866746992475973967884690419727126040043070674759770298322997426453443809664486018408558211948584799018951581762618898161408971167840303623801364059120668834265487379773922059662977196710946536213754852833436945441363645915741898004088035277487974379227787963362947164197300710502801481101403863801941665332908980188277069176644711762559138976237155483485550538137070089326455571182545485188333866596008656601402383000295499908247721446040264482325425147575704350404445971448862499941805169537286470865965067910145527404404463565599666890070054535772278190667725454346725998659049609006169241558480040812472073201674340333555755455073671966180687650026089132425638359865071935114538521960202752217857458533621105317537316403566154298915436293645908313144112407387234639210169728619978250426763352803866597415015924511067202803733014634563070591643821255335244306110178822757303089817862491730922156062373055561604220463252831598553193538256150287210581145035509487622936780952692328560977644422422998497700664561314429704206770561446643588754359795268633958469291297257187591323855030698305221873022434136403421906704253262782456695238748786019461787601770498247898679004924166831522783969121617362109365961893858061099482445504934349412706873113435599994454600114972344726408242460920005813466913137051275848589847735985372248902945638896507186135994924383010870984099584980577462088242202176071096542852026919427437738377584550416346717796159770367302195933810442223761025958433563283117488064876518401065971301270163921089744234991578145390069684068480472854716705395295837165757541544937998927670614842867529856658248619143271812387513956344268407692805074165833937345645087761343466398297647568841790151508284834991179703903824307079885572397756377397403267698169140686925088246247130038536445986690988405200359603191712715760388237422014621364436113549395336925111308644883391023359963123922801279821021920542967242367074391236913292123766542849327139335539808274036609070249442173238712012818842288197498824748124626062560684679112785719506959209795491622742261946409933990437830347250673957974210194118741646564464588832502410498610384964181932215531391333007635425088015981773182594723382594734086116624966312905225140132004424749264996692979601358614840289879986886427263285866986183166682135067297333022357148063364231851418794689818624545993805060735488435672070063851046682721588161840405433597688758961562658781863847593168852396637540926459868539631337913998865166676252058425735005740250246200724874679070466568028339694275578627454108453496206663914688468169974716943050999553138128236225981232200077027414925391396424069072238886235530599929627391707140690629196975824084947869522029216421191929783423738780017127452338897389453870789431023692688199749635571548041136129685831391964929192330738106987935829722156779083735747787238623030678708519105080610763830841959538765860192281548133207791980119289687486891214161925505310640347438174271042429730321060005172432204504267850487350468134591293838174760711233244433749528438207296465199849743348780246385782632254200509228401709277743778691398191154981453506197696100262085517890571341934443005254274658649224890815782362920093848807837659171404063754137566833097528038952611708098525431702166706987528629801967485171738962647618993021794847084837244905021707086560895286530216069558473539951670962575256198978960695396479923468889228840577251814780925482276570018806111656792192880980400655560773459869821058613023439100230544068178913922755097452555995490039405275465831512011528383795461161519360323869155742473655037608781707781137397446190876359654142125688214082189756913597733653185425507857160238663167797407815411442247029142732763374226753812869957199658884517686637014763423331294945429754051623400956194527065752706246730810143337101898880766289820925490795313477121244158991709627612989647004525761383144063776082182151740432383095123602014730651905274181851774341863626901133663939566835662009662000126286485908993712684735022655289420999830599667392976439633594401414531692425031133465160791195444671980188616710862671467342959542570207228333007892732533631523075837373695371375262053890875113290919044005706651350782849994576170982168318636865874665972110906159802158904539827065835554881871444433042472664017324189746950158202634334439420074101516362701328853076651655472228280360499527349932019065527100884785296824665899626320951669742624113966419506036254982436533437912118230101597368859919190749162697146438715635393177251873799504415472065336901238698797377258603596376373481736216415471228616831250369244288856011596092910809743625179880777852938822593930837274736014392760841619013322128161774499312480611023242416791456027496132099830898425425733289832106165604968750433965615541370157493449212378006685833983711678119647812651070126095721523790628775009898068985056160234975331821558662076236833166891591262022052625492036594309281836348857237460441631879054392257371440495531457339387533796189080029946958543336513049422476803410105786716877936851285383809935265309394641585442477359629009285479442266378051423001220359481445677384291993032068446051346791296926808988451406279948620205848785444957745825514889567530743384181981908468654363988177477750549520667622838351930090179358653918339001151797020214149544048897382903689760228215908287117956306808573082270542627714818536643558075361351383071855970230560246582187601811109703332701676169759426054256124444592734433445618526217023556745633471442313795691513441825196707344034993848882324290927875076186873447627889516730165926176579454712387753328775885078315904879268171962935804406606882416897663622473785050362997589875439917643887211533540130765127159788126536766553123491092271209105367472843004878985601473841785150199283226843161230576472196040562576983643159962030334312425836444490045222916263773152766679989269710211420578606582856827382088145895163971783901006605132933742271649502724632620188577792257003988868249142178112720706283180478318269384184610428833545677224486043028653599572818161113079729436543187265813449692880035609068695831544718647549280094141267153521701067960273372668638861037932544633053217112209155014469666461382968303342139371281752719612857708482326185499302605077833091621766918369189785320861266312774422246000734357996646772269704613191922535557897419395150519014013923902274532694236160988879676271474283663645726857704376640059865275455407800430786763543322859826059469384290440474706916528140604880073458145020539276019007840471348373849495797182212139321989411080292183089905160823365061767564946408239055722574131492922784256452914219089005684205548801180385732798437257549292957465705515285760541642877122309493815786751027655454348453104671432314875145955972049755146020294935869643612743520286800813508544694067361053494401594821687070253772460952689518076601085192992136328841305509501629544922551395168585518437455719574888651015123257578002832739234798485018215054047530994442142858163732616587244047099219754826003140099101827089800820869826137095691590543521824871192789990517673794528728389907873423293284782760103039354009056163514545484456219636321254387347826492794635113035073784293109415638037731018736255539389880898364800150423607703616859119827918170618034597926392368277956220188312526951284224392931551554715663528559439255026697260150142097581581829150972579109642711049557635092767403830204047210889819525790827353630694540402191064723696778838663679054378942285382850030847559388688617247098312254833162562505035598218183897263273323520602341479685713324926610780817536235476242094250006229688535794247904033814472197231763729895874995096147724548695059661800629795137722035406016179408479622612930483400939373344308133069151827065869164791430488962214876712931579861021014729788209308237373916067918286303033014091082071913036730131351802147770356249482791527972985984765476039770449394906188263941599313775177379639158669011034974357024705081531250672974862025483374104779401951753148917927667222561040059976314912276083728763688073063206651278621573400368885341277993621482157446331898581201608743351187865087266010732400072182160881748186780959678187310878607929848951943336502720691732752348821738429762849438015221374675422428758311989468974106518286958104543131270294742096503258137295327248435588719539928541386304494133141757078460020132008303822387038550613210179987350697515735680678574725925990371395600499417238103174528841053323585822322777733565124686389086431372255518851096327368208714388916313936187507525302914795124943291280160888935984693138883563207850881804232031570014507702568612636362288499528433612268861178429402721386743316923745533824698592197763753740455034721304897424211332426375879463774943077967587453220403114544059676324528679811202891311068742581766873312105813757501410054834614801132225015114097202577335449390680905955924591892325878811025516690875040223447189068936028648019107950468566679206689087901061968540283575121025269459611441130568854169498721606337540920269309819641482098553326300773382468364365971858714180131662824168857914407334884095188689490164240504661408823614754167389627358313655409931168924845198964092289331575861984712588435361651204683848455180292061519696198154694672266496522912631479373979019842873579884601898248521133120485973674133539845399769380456003029932207437325970600101865297027742820237581916487592880111029851710360045292591319215082177400330605903731303712868501766796865505995337712590757508851275070488049932915850372199101120157266407178767539590507041075830350749537575084580733245924641315321514101249108868200776525851657798667723612136109664061973277609425640128603568088082236858682737141319410302761809908930890105836687992784106654463353495927680056378422561375965091407729349281511362402037005377243697940326820267553886254977403334517987739615518361311518595200258471143608715362549005420591832521848747795556665727166611594606184681142484837314950823671849591860472057041837017376324840596890848111083344800709906134713321796716167699670225515581772859269043341928373092022865464842343152945743164392353972750536968163804898794156309573740731431913963046086217861467640567891260958985194163605894041810335344209606663298906029794258154129935496692256835737743627379060613545424823357105696040361527461841271146613090530789615472203320288567402279216748101369140745104246435326651923418980200918297169268186222035498083256882275344334806125502114267161138231842232105450347262814327229986053858790795373404526026859684608023732237042499720058304876546972499609634873712975541837343516995340901753937859525766880518681350638138632108484390401122525090349559602613158447644407113165159059876728414484144869235588912117557399611419867508618602582369189082941532180923126073817235946450994364220540535947620066475950525991645653580251489854990006255471635943907537837401738571293543357827213103159832459375534987751682838702277025517745704023645379865669183465896293887356608380672722298900222698896854441853836715530924799098204964351114742728246881681938270143472058346317827772808210297182954276402222559584705845746812651895381450782443860262623371348171832625061444084236706773793153028500688785346239088675916752489374700033930687024539903888702977078290353703141826501042356994641519967225751385719176695591287050765609378753071519592679901454780409016192567217513678711241115795853694730678528597813127524138544347238345145766270493674799562944116220866253020697516543798312665525386456122766435916904096111350231226495482590378394047294102773009663681161213855992497547226962559987382754904621886230289577713268583142120051586206575218442657039929234085900066698093243618251188589395458277353932366915072792639681041784406452908084355175947498475249851570266379417417810632348114541284160259661094332622160338052520568739464844644226366174873765683791493993687767159610057646426659678668801467431191676336286105985354670596620875552183985242241805302039748104005565386181816929343746830624033952375899183000794740369061214503238191046633256171469055076025113229513436034323433314754479788903671338846548691577955476615932002642131797677674948203120852033772956410043868481216281945003375091711425442512160497217647919400196945487664059182767911568171233554994501338314466229017663305548873165124409376032458798951945244797998611581317215097472843266432627133430281330898935108741038326353763703141603161215706925472043918776893128065845502751865314741266910221147807445551067285377730191378993331403263188319059252007986891263106537512321621069852137184341120424040741740241076794156116618839034405726665442639473923736283084883697703640422049498112265163050313795534218834891357943335692280590325954850596057599234484224553024097346254093323193509598982265835896795980752813840303499193291443359899396808995952171912756796901804646977157256034721321317601764031552640871359492808739143532670634805044375213990288219742266908329548506203443363436960044990523865919492265784713092156433337101351829284161357725136775328626044614415760810200130359517008213612649634800478639476783522377523634606994545586400469107563479305808349034751313081529858508277100564915891237231674281556177835580329531161533742112050538422583396325899650917777317310141735365007277039980499005825363901651425162828139049334484525633552496372382480095839453087662431993249553971012510391191943938209592619074084904279009346334974962453482933465218030422918359189797634973824843741255618775930488870770998880873020461998552752948964056123983367403821468203371092490642358268808737891573504881511856529608384592666999713102172367997121907416783386431035208011723196114858496470374208307417421892269181093506781139375987037295000242719629565643798644130393372157312059566147243529737425399118875266644060238072755410257280172024168576612102006966984501186110066855251703282690016945032786341709259193002986765618511533293170731847806717105887013959933883171162715454120138333071554048885117577575112310608709019496674461542228200792696772949183357212687237505495951624331908209164344761022743476748416461888207316172555456966092791147182786350603727241939023245827585781980410659252597968708821516667835369601524671444943799940471802194527608525281590862358204294879214539741820937665565020412575365011072032387732597354582308718556283456656769402728473570566279851613777316475597507152421933706806435360224693592278198486687920803767707890368775738182926793312043545480644791660777916833313334319022209624446268638584709745692545910747129429931836454060985976893362136965201981889718079153173998363161282347532467280570528786522169161473046958089224756894322707588246637041005480688596782597539640279845494833831590879220332869269792307936369490274273941407703940595724316769076963974301144199964519869721235239572073277989344373579839404846165782718454324434163600064995062423931016657231785035676867059534847150856769801747823182067180898549917027516855225381198914725101646947125159725161141051212848280121953422300941759011233581571794658988504569024192543442949321905376350638106479323506013854801300077238406467061369548943662807424657130835472621680451676370618298554199401996820338034643019799247820509313667005700264969523748432912119395446641590068753960523778745477708204392509661071872649938395611453863402000677488695034021731147757431019764649964465286886007495204966947995333002573479267517048106814887087005868076474885393784926903585630350379636521945948450118082728421043324510395937104549242422561795919761647736108181671713440227781479876904685635097611625604817398390243287947628452817397345829712049857420203247186445856855585247030159582019300998291558919780539250099421369683441140786374827749613361194540577791564397619035875437307052861537507810925279985500629882660370413461785992911903653142656684063389895720829816379245846456951995815144097445058147933591734564140618443649395224863116118182727557920700979175893313812254172569651332028197124460778923805027907689227300266022414516368903519072967620593497314417124511328824621620362660174901432109640880615249098453360482466734558016422154096663970000929315266902417993617254998887657997631909673564625000098143492628868399045569663278195136434235749874860719360110377805416320217501359771113624736337662062589961624970437050938121372646610918258435989289522739466341424573894483795030179369768257103719874364902783447446871357281909823357180936645557696190430852874147433996945503360007093161414190144846728925975430381008036026601475020507732686642947980088759126549012688282072985140977376438017722643733474490994519916414773349918397128559037438559478782960820861870499891584057491729025899005820704493566326198483203740423030769788327849109941454082828793471892158400484046828998413517872270583981204977884652936307947634983952035254492360045093788674999803893482886803801015535028533509140176364293463488030834176905047517003828412860860611914514864345859399942755828299309317302008754425354304757692906406916730486056760591167930211419505146189321812131963526207667013291141081765882969603320400058040053677794721494548283419137820856018747421648610988899456581411690783725473944303792212527506090837202869200450703716570711127714036631618203071189874725653119039484591600429372090618134396406763986545517097407958902102573354042490236036237830057130216199248053337859213682203987067158223450759000344159730722264990982255922370322474165583588490062764376078527351947688864294567629613753659002725424453435914969669420803041547802695122522336939317883249651859146153282314062216776013994031854932370703482112501164761591126654094522307800865151266382778207985362005741778893428541724212283905134167805819636413416121842420975008703151886226598080952825433550843164782639905089752648940187513831465818722102143667303811908827029662205968516668864700759547169024441774304531300455699369761695823635536141585080823289909097641582060957673622951165481472889725702791018732670937426556017370902046589006452213777872851993976743930619249886130829792981249558668912966051180430809281118081677061425855406600242404760186128217400479305519338796128980597253619949008474303598397627396483210036013541753629307799891870073975095810624909134455979197037984872726314768366969449677381171195597539539286467875139019755994403886620504744382008759249709345627089092908140390681941060733248281844697870261548610996861886353486320870567182984803027874964547640927494901204273634556352500514799433758909151967383107605959801300693841241018781561538332749592829333587803647681009804427422440922552824661499335081734067311927940060133977085746974319264958085098099579744615678005848460552429794704896172382553852022031726507986713197953349861596309089426963086107098451105283073462755088518579099691454378734266508952491089567145765515679888645845978529365572771573177778702940927073676771404649989870577451241395691168819178071404946787771731214771685121842044012323719727230187695883766827370876648896497166022430699382891253036798349639507928116883781755961600374484578868396239448859840311157548535594189928054525199938150376816405007839469560884988397841655438756655613666916784471566837953136812695612883752076022482103667206933040375376703752243044716630434955980240444802033647622727879186820572398724951456245728096836398149103165445358579475431172122642752920619364945359046910089517334246116021850631649135689529468233219026311777631169940029686025071592692449129422280258084050713551532639795585200788375883732595049091432323837374458321722566676085363986025663981853979880265192300339903102490466449161421757489557321054185744530524284138016973883278114677079182316898641815160512359531555257675403111542812876014088492677925058508365863040940944173312127782281895754405322085414613704590252652173496468940536686860009878473642985477812354581743782854259981750667898232274333043963565972213451010200563789607447674616162891766787614124933878855174555302006665637833923351778114729199049102736842785381878373900690824165327112108565754934666790850963527374558615650904919511881279127599488477094057270892028402194142875419188958534397898005575817361022714739690534689141707938122166190709816560934592934452087859479036631681826746091378133669469757804596949500405693012223103023870700229587022465949752892165584929054333889767033068624229240670569177143774381889565069013246003536378459525038215857172361816190388638668626098749538375472639893955377548895889769452082423016748267635907294282129431081373383840122412485812864803024568668228037902584234443551534650717787103640216664583026056937402817250807954807729595263789254324217181761005785081067886086049935733600929289604481400124039244155121449009374570701282102913581157803542940078329068815918579829408037271354083983885568413932274483046796075382805615623402010633161329062525800969983642035115583220217844928968802251329000290669257920019687179803818192806415786839577244813030011778059767576835544489886441636233436068279416843128213022242844667596166379604473418712827392757156646281883435560230604522159072085914061584746910426391600173662596442904738972678733125027916440948014114796132581150166504015435197220306146743339685361519112887158046668243354499268523973730269535467388265496198425049322605275253178491006394729940875864189371969158612326382597232661614311498371268225160301691924467225773614600173329036756319468345367840172247507255674445423026517807763164456387417083056424941093903229637227333653260623990625939765413715121414200848883368776039745676656455024168862113601872231454896756491597027764396730027782482688031089538654599719943736682826607828075033994851088154610085406036079723917051688031483274239477643709066552134791431219763172967544288028829650502288324924494512180055402122785437063165824285193576863782421537798307217295017054672282687276534829492304681863852117097247928222721884745532638161380877776471583657694812621888408975485840166797120736585785029859226538494067365339428605348733315582658829442319748860128721175281749343710311226490319050887021190236935013488040161365596373556976379257840002854248841549335111960895635745716809048845397415065510292840215106250423513926421886638181571485734191650115648025836616709148251656479050236739832465452728302598965833500612655634831157074322594754267959288262262581767219236486081982925845264254909843232778118460357811317498952064918795674041425983043963986004038730861564979590877489265704524150242894187767437185928710610245909469511234224638369104200008750027730192183829964673380275171161958951384577291998535003098921659919260266392608054103352235770841280046554744140617854477535031907755140414251662346159775990287250004078065954274384896574616575180585433407426779350034070098817242099571247774367307659270321527051759936108854946019735685408418483448519818901992639888324292272304565381858278514119948275931307042531822491501317717274754673249249317591958195270589727246292688830670183273122564710057641050753733952583416410153782820556813273738686241244316169059848376990981403456144647682198611847954876362946548047229456757128389072522991122142012667889406817223310144984659479070886054054689729974094921301438556902829937517555666774830499452099280963085792874641138685788561675131270917402530350112169888087685301007678548207043031324347877222780943093552592015477502469672421237705377466703817470472735658811803584401370946316935887153533466937947562859416945853479880227967363694879829783026492675710283102363470994690305592773383277954661173704741639477757264698594879785592084227407041411224060544601940455689447218669366379486491814389042576899536733106781364279143998075349601428622664592428486493112376414968145705536350332584410375732767072511871725155561113581195470182589690658380626833718672041500840233345700006926212647321685910235123264693628826166001985748221091962296766844660793026318437611541801916196375420583103005020550311914338536708080795919909068202506259863589662615501265948593107711704677763846245166140829196595632738008857131327624853193579392643236223984333772493208750311336822957781394593131129785155507784791585640176194649121658237290576529641194969717003369899852493485342849938854791296152619968203312351610098273718316098333541773691315634319350639976898284742427604146183865729525753875418201003853829700543766859277523024647938857649679703998715511876141251153615301391791290737546387920195536588280375448950066086707816363873688647435275164439126709434914800946079038380417760932182035538664279890747614950625445053978063627576273090620915270813851690105184842033489406307376725794158290221811181593201852745313965277819638713485573629451857078813732833805593362835353969379231706742874824885319928226162054817724845095902034165457652409809827066980904887209570750948521106961424751611268089080442514302373166794312599155331900501942980044198076451409624229309618217075573102300347037439643203591858628207801287879540779481209278225157437651250040582319698032672278068360406393412008619985281065844465708867050707032734057632198012365582933395017451217746911555102042179056949856086506715432129827928604330095653321380214746561956780078714709095196172060540494880211216020983308577122342132270505479205254524839176110088512858107112573859073433778708967780940388158246483984315265281250991603510136615632604495563799729536167692503102858463531496277158488165859369654051504730764473278067458166517043880657909132168908417614168524586268898928586652309511945279624643466643600687219984700060311951472799375646067723178229672343466052541318187446637889095152377094322240449544589925939555522861744982152036661378766315912571994626883632965891814492622762322993465324709486362820783591181252305721238175277533237671532893857037468417827542363340905681820743615999961269636703042788292016369643931071472154335965513654766313820849387813976511204763098196191155637069751145624573225334526057362716845320208489890198467238368300218114862102062765624271276830000097065649010233377792196414812724569418525564290539177410912014362989833362728259190816902299930750183329882337692617490595888026833742340863440678921865122681233691130029936954323808312618647034653561928973633797204861065887938730654357236787197402523909108011759822507451569037771066524741956737463949555221988663821107551201240975412035008863254642427197218084748308263139626528951603872079066403306708394448711853947204728734499438433435573133007600877709814391085668719040462480252624194054025322749786005965992140756468757736445209724710996567616775723376744474809092293883426873759526359200072247906030586897874247649148932142286103036457802911771170240377305244279229275179990408752804460476637618119902306224410464487616059264928090402660910851853881822865315703757477777264777296958119308460594809123522313937338898460280621181009479487719171662961537732257767120234633470261094991915606438340335498657796159542699933755143220088417186282659102469584311064615275732329980369132193490593067255643671053703565762351816734967496019221164423985870454404838466071643147918613657677186310724565536754257243306063837423038954412692640622431168645422779305585165774160636373177716850488898077547442654427703103083701551154063447972462970461797484690064124603161600417783576876956994066000749929908312540640178550992123325848626065317881434649604456064523152402170499648162776586094945079350915346798789765254056344415865139602096175678573617629260981217974307746360076898017766509564108357739236768836908109471421248822826233902911725852451064450548634418588327292484815497832777512465403359175802467296757360582251539385654434131425084594671680820376485257296702499934557501527686452412555706589228891272548798048034765415699022078390219154034099981614887938631026454061943567064425658123472228078794301879420100490940626471947117892982728495807500401281999242245482717185205244674535108215504461553434850709105519341156314056029308357148380461173257702997543911477287891334132841875333860748469219717350698094526251257984013454151819448465149079915159973033269369954419783937480926061771280788442654671732782375345761550921983058170728982170612496079793328507544845086919048152855476038675159203661978134405032716322476281234852199046291113723193800188912715610441138850819031473296442927131723252584669856807132638549472687053381428522911183800570551308703808432525234067189586209046342011713244850822233595968053717838782006981249627185644202235276543339804855323340590618963281652819765133081506555772521447121438749397287037006912783149336213676663603628898943887757456425769544906461423310724234300082774867912016255457784729218703841927324061904628310658107763421223088385237842573349072448964852092592426020286295370940125959595171971884726862999689376723499025934422393787271704449077673229764486558312357341156049575787528283733685338587191514047179214490004751838854120893907767275054766983599651744267296183386317363665450695613055426085126559040520638103950886003390143003384757911172208326994145068386362376367893584316550470127416514161217069699313337911657651521228807944437620043338619374297364516799452076635796059616885668323719238766654918941417421567477915887980650777846926629694850348306385869700484759242323154695798845773130601130994279418913621606512452554899105721699802933116047280521390752034550567582205532845139485573191071586433080832081982104723520701487212794885495545427091514553429596642582156582858522093313622333461360375534658455704890945954502351734637217744217307057418151284762742254398664032401205735054376899153502153437169309351348922682494861430506672363158769977661313044420330445153314548493465230328987514853709693416055150459168388614897223671810143990087432483086297919765944965503268663671648485310339090119754888702473160837559128625073341918286314736125962775223582766816155869780123943970096898861047177156349377328683762697126893304487024792201502657455608523183250229343919834221900687786410384750871690194916649868043297581176555660215113159128930073579467072428296315253206770513125326607405209311444779364165319832029352832601234229102343170283093784333982909661131743542302008461295802631663053220738133219906339650082384794043124845181290372640011016035670023745081234326658858077044128735580669282650878719677202081069647893014336659742212865223931488495587316603227204844528454765510842217197576167411172093815950404820812131539991414339063712032686508855086246216412077926205867516001967215141193148836298863886564360862385375894944532914086294390425675459772557505824566814885933278784588607872833259993977780508682828711187100794728592825511906306590707644459024329983129042297625941049228204684695037074521332628549218608177040740953539300072875174480632795353549463185398511385050280118216268965697092718395930340311643757735024169061028046520392057562093626345348168427848309174819780942212714779939316647127194215614590406397494637706549018821739166421496622541901134446440450531783715189069302017987521356910726125310028849157578393329142155746016175094958050776903884715198426207377535688184519139387788192509164575736282815466254428165595767622920069152265656602884797252554309999303048995575987328203210165468076045576436708853026332377333450669394653589109072508774380432173470595693572024183832208060240809095273443440827209998832475700057841664583597455982895677243993574200899129812223536171581257297359607688118448485607093406820044950832715003750099488288206045911792450168853776154431780609750363257562420409285953796121645357199924894808401254750915361495797956643468778509740715187132557991765683201564082183296484790314121735431511922342372097804011712970711502855782356189191877143477122253659081283427699850526794875827248408587736655255013540322080595228840395838842182727836380667844398282138328059911731966612396224960934606393868493384426880338065080906976639079204119068177638908251564620791641133553459163497982914893157697375195543030684495246006355043236271347513806619930015281249389561106665678525089595768402490769835842846400369738323126961067446425326483077535791951239494999990822460395279681692544707338233045295758031662458262294644637914315968023775442228812493352861327943915782676817100712877164323394232048297744336629381027780059809676705359401433665397261249255763080873161072281874309834745621921345279445166715689435390521327126433721126853985193580826613601724749826978194189185760091336483377371334747937664601913372047463041858090227139056963490798332624337809069066886096579927266189354994582589827149223256909419797500687156755215482723132206766705069704552125984848840162134062675410869787112026047748911771819365138993252186384172198868143170651761243335183512951129609554227438772849056618006050214722141885515167694814295120783721405976231121353154244050321190407327269840198917118182229313865123973356690818023951790141902739383145288923226574521884674689347262385381079245118614029803465552382837387020363595828905782169467862053680801089154777785465331521784048695711791362823504386428512434770593526571492699586928515798750994873305258828662405768976051667284418897093036238646081760740764872044912937580464148607960109034671504413302486799217451028607559666700021798127374714736888802572446312983305266543253301196461813712076081763468874158444155665620938936475983539283297098687172398596899913723045227094074295342383258791936613180127803418902862456962888382716915911779055285067305023884569565539969457868975742962574407790186931051386477288127462135248207120506472914933105525596175513630274497090276949856615247316799657048188072231763699986063597450413383531499567494479518483776519821987590460963069430302335337206059278016762215884309363863434987005878636896603032783977789162216478545735328660641151066345118919109495939115840456565206880753766511380689183813770962242338058374492669204659840043586461376707588027658271022192937707948039207159038689879541452447783792728621608952099684468660461843472333583795326067350884369608243550614008803487006597746179261198467468016103100303972802828482635241460677355971553216849806728748660756805582702984956109279879427927129416144106443207842334936777314855260313578358794832421518880286349015180619807350153004506729690291836611338224808221372922211318225228654253730659286858740575666549221791788365611566450768701216421494666073502779449192402340290409027017990884049188098741667524640483134670893598654521974024275697487626082464631808287592633277475130238982990867235930453788692113003877685725861621774058924271514521566069975210430267352637073834887387795286727767231318964204172142017383470457041462932030931065068091708537299454358797335665564758062023806845448254307613805683439585476803371149997090721594833081110431453834232693722244381054201872899679330790482290898141119210863430347423888711903796028093985811564939809877996774105934014129944603685437357592367998158141725621988486551902171443954682954529474768832982346509497071098104678936410577241444095464835143601604360197546237185569335397299759856139703398903223683533017176513038518472141740075713502846636324501868874996783039579880810190003834308868128366451720045068809756568110992146202325075470572454394686968729858928345085997617105462462400235103387670796506336026746376591400430545936659808117745363689335388555034527292848113594474099839534563944529138933045586780514029341375789509286799266580220974044986212249332038685628141407395468631777461134743234551279308032141498813773133870178092430305113764146413295704817203411841451011140901376012827557757133001730006489089897651776965900921341613179929121858884730403569245343692914621715695505056247978220976962559662911222912671353498619762546435627284247191631088230853844258962216097766693957149244970705395161604637898937904198359186923725238280798810938260851294708336105103611704694803001935141425764649435473617294180440090991399787321780448450856597830737094725259620412679380519034177192988914093104626033488463914566650836585628206911989155488267099484873033934519358953664902723179651836121901962582167309930217752164061549942528920029489787734431717808547057283693018205748929743664949109797697844250336295262868551604891844620064404369822470373060528417918347841324899844236595041863679954135796586317077710835858369503673407610173390645751503565115187509498634937451053286253823182558708789808396525900004190325992660825877762740393512831125428852363091640047260879327682325845115934264215574685441890111248826031197233837280228784378832263896630960345033637043222182097815837059910834415528750065358048306017826316087130070761820169243392993737001184990915546088367586558928883303818842275346912658574501702437358409062277602989785589794171209860524039391816683533824770521000898103148981969758181197673498575287494464139948962614206762117442945663821186978087322934051679845614977708513981030970354676090141962105701740104409270446325188839770135504252973078861719091871742797477840593166846751912833901318753425576277365281239792233767375249944898311205409853992823067969157644057493254490376429881043148519745389504040157044900027790729214585410235418059947144584397238136489344959588154644609071629339054208322888989254475940748087334834729879844645620061179525790969801236390044021022869734717745507165375370615727775438419600626318867514428187715023186964569641534991807100528732612461411942622364082230491180462509483144482753077930100877892924122659658200158179943359040176253953918176119889592358451054806862430352173859362664520128444269768474234104678920211266279527989512583005998934144099595723298512287398027648926749648548118510733483206717891205180272111670096507204200588868998439303917385925529345798791328477652611376218872472733871410862778437451408227338683403773403683980375245723730293452988185157683930305372514494012204833512508097749398628859722182209913514148954747042353437744283375178269182426724476387680045253354964265287343377951190154615746491253110577306706229826008662701408306294000716605170510032992310053216360393491961444529277898951350722642338428835654074322090675347890986159437640990678621434206210085193773412571280780969986556529410689716058410476734473598153300213912911262913895409758766854831082188952462637516205026750010739888305664092712533679624239103309709041714206065200026169140750340291507893080102303280911385695686764505345852925355972178335088348456762606262052448692288294660024859520147399992590588907979799269114453183852906176186373838316086766643244034672785380287461443436013523855369516656895364441207578474006154487171546852934864857093529197385944344068167741139108497976150293771993126972081131699149895928006019704110896687993340885769848362724317941551925740710281379282431879195846113587903149285248490326735218017225632469288499155664534992221480263433215070027518551454105385083908028000465287222218272020402155332752008044016360697699254215185872191713536688094469900887594263831338358314186693739844126475563938203091822174905452076756348016279207993550130283604843843519969345551899406431313798857507880237923269901255250934093752586882293777631318928936612114433508561089837799625628145046143081003343828269636137924824123681534329402540876611492905708232748529204973754764691277764203935993394971324291234296118015787672555779155720267777773359314030896268180233728137870918096859579652311050856886407586860844561644889226248799313257634523426128992413574209826695642036100100561087668977235218206935934315896092642917201350815312739230830885363961865104527784830172944374412434445692753023291021167402190983535274914248038932652373899260884519019399208222728876020971529008140355081393748941624185889810046742320139285998261848781989893983402319723079675897810118680487110338642280559284868950643359532329299324828959202737435377161129003561102559255947534380379226391339047160437723691489527256247585835118498702865549914272228003619958316135224163151247670613604133939046831149859859488271415838742089872736961878671543598064337079003146131282519638491200944910632748560569880517581288666788117025073348950985411254943985173772721542091766160528225984070361680442115165223702542851458322855883365408200884967577404994206284664868164460535148321063711127012284103235793710673414938135272487481697258508376934114274306258263191596426134442683443482989426284121620304424469939606321058291505756373511379190166044826689479435769213228970200081922289440350344659100461880537564141136830818371214728729974102320946546453514025359830052821850056196746634579409885067301737570820770302534826864167362471348021650945094507256800925095815558893753959397968016305398537597322973862415919411095780380080971066649679350373865671845682057593472024683149538976465247310861386525603519528718237783655155124552942458925954562790689739110276806902856599907808708232656155118446122877021051447499521431979790011095812493099965807534570334564202445233972850452957864161630155629050221391229901745088772079514298263958490291634796001163786720727526407192598403199434931570888783679629599260000469705529306514306036363844406397200757733521888780413049102125373701911737298369178455100961222223824686826499871960059268696404298641522769064943774552491744741681250686887937844115483699719613025221205755264260327511964342251889098194795125960119100223633433822402607128799781342244059649673077634511882609250005287721337906105315937231863574383735272660662969049884713658116822093827209384049937100163745004863033833793674124991356888513399309509754256323224567598849696426129223209195511848383539350467284465341976771950343319985151484816456557639493363484914483308752654803344773190628707101953236824417915104732337248973007638120849074636432635602436500408045555899671946610275260796794610319369272917961950530854912298824845504438945701443951063340076466902493009029419387917659257174780142376031316734921792376722371347997504373711964405346972082007018002740231192583798400854814295766396013755309337245401430255881792245514689280036028807423081220335594167922394159592620550126449358320607080758945827825782742332311611852945793245925664076648511769679628507497549488248594321628467842970385821567539633550213438496181073020135149821022384933380505954596353452488211135501863742890834246226135548930959288045803871911561727011932272546509518944275400392903669512996729164758030627277069750823440256823813104592036742064820517783209748588493551610909858263592675025151185654516809187615695084040882550476501242789954137755243362106848058052588027584083111111647159537054473348146798948388866565049600870593842120632135834639095879433847845974618265980169850725723407023741191365787790657791024650037247063863456659841045020655421544610064148253682083997060327878423376936906915769517555029494364438971982802200833457607903008008724447206854141042699349071825359938124138565727110553790467277743312835945915393624635516759826369414226504012600147161308117946955827578060058462495498246220206738607679329015060119724454848040373665616296518203805824881563683759272615528062212046933131426727303334838371135196495816236707668090497727263055274795820001220079827242734151220202068805508929522536435828964147048147812287329682045916633693603085275383869027964585598208153761378984156907346438031582131311739598249713334140122735276150685543046027939486627742431118027761011416780638172881928584429629628425140353312903485753867839433168772647460300528480574447443362918879512886752839400886453193443082613345560497034017989658253804780704249554570844944566140122616247016701296957963604954765414479304780750732253751030905991945150943208182523527915800361542789769667326697770056269003535138164740559749475366612162188998528980342056237521309076188655131178799851663212099029600219639774888948451705130377802970315718662027139253812576807619914857342281982306496700082561885866705064498532880521719298799616943853760589275149869340429182163671247644054479295422621374604205779632723140481647318718680394625970112908889891861968079325696249948035711050576505140293429826968385750314519019859887213296057713312086808451203850292604557851998732287074402966825017226113884331648736591143240179878243684918913433051248974109714358101505587936765093677945727007537954549156981365754725963737508013439593320962241003837064915111773290882284432692305411435502201126925743383010528312906904811513109631534853324077892067697936454734496444332559096450377469312297121390582362034157901194939100078750294845086844023040261379514294996064027415763676963548348865662801489591777446427053004382886716677088439798102581325749104325893156608460030190093854099816073749904288933565088047139284870363400029312396339832925813237473338797938079151657297165469913941046022905594140987482218526703162040591658824412048989030457834340507042358451252313029919871038544086914270508955847716774339765640793866516523896013246600194885720547162347277698525923463375025322054204547184845038267821301451157924919948159485915480284676732445604700639441309356436873763418881662524556873478208590134317445391120928529367304854488308057319409244241834002244082785433344644807490598781298334874985474458276807488104760998216873938870318123451060502250097695294511616473197747915023528984261227506429447135223484034613112755138804487764955043717186925327849906679980477892610505463775693445267999459027579390742835670867491155915088560853462753598809823179429301099568389360742584812219096164836599533243768078637388143654569345136229928545512325058099607609372406839792459048270321791899371848855521042820356221599070046525003037811466826502501398702562132228498290307436065825772337831199012547412584313722859316936420844791936140719543298974749933201968153516188348415565015844430469177899690321081971716864579309896662998386083134667310722563197254035005735747758768294450621674758549475732844964690774582192320106370974481040030400069213954675185936175657530765649538219923250395184133326070301293333061631436635333638813964167248502930194844735428204660233166335096906975634455628723330669577062595200859180640733321305672728195871475387377083822866138295977265945653451425104155297999927656392286008953835378134225486266711169266960016358147411487154086568080553797612576237745133293182979745235307889978688175625201812112092788592008870623506252609953800506836317109985959514560024988044862704498924176221605579084723352849364851719163110957387170062347327803294548998733448444047784737928465703040169076206254061979889453593022213321187929700168282442225302863989545845068729355773543780880068262122339338113516050862319698209701120356732828643954063283866863219734195640468056183550369385041042515994227914312864716925082421363487560680772764898449207541031029975930531335424187107073171458827286029669310440872712656759391187164708524340809597925289711646116707314726148808183030594202057068625298891208757403026343181867607003738478669534571279473747153173865720980324602731815007202521073519463314273571453917091926650974965028394471898441526121803717999715163517136085743873628909079768983935132327356425811748429483146179422547713509196214002576551786766078748269251141429378775160401598758505899875381046949049895972925374763465580358746450073055645511793206458378770260869341804234429676375789403647975088027767256486628056940901588377925764753116172074858330017958120882712758414600584470711020563045844834378357488263160963645224997894402145399891187828017843172554741918524780272755074625058537420661100623797131132601469338691405492582198457817279526216302590721050632891341767351030348007242687602843301424989417170038564924736091712499501769444342559449437466691609526467277611771670365933853883295449648100875122342358670775840047906343951363323576285934782793460800407028843903779124252658541203900009719742919726685353456395592172609287546059488747789552889179197483594305776701927770543446895093904498430877590325649847022898301453529966538926486627822856409607283865724276013691051847121915871324570573296720110699780675132576090338612648569333892720936252590680610240641098461623699699493536484041679856689618750874234177332580247814352489068451771147852315556013054445377134094530642179310002409450960627925186407553238900463402453072929444769006102251544379103592701072744809573355938220246285062693555290746350350290999650902411621144631640584951430159986332014715390682053618272269684733231405701269965852791657634727657483817848948545034129180837935118416546005965468798369593706768962577967898096469309541038047759557593305905796198988316130924431279996216338261002028645367022110916240235789497696256019243034521216628766250392259893873466616070662041654601867522346625495168786742150635924068663775874933650234173554874670716662498261000758888420249652610340375005127163146796751565474914072589923313710980620784782347629137917269582894753488709614662899712290880859427398604351460784190299295264892979308526206816314015063726571444469165029244804894242022162326084614026759543574886552433180909693025552846630261076366941533052258811111124147585308334988706594656559418195422291408531417294558770531041204923625264255229371221077965310458365955044005995066895132788710740276752968960385860224684274657315158568799928868350681679677851075495767907985240927880246966352054331269291352635552251197654444676550330851616280419538649964304757037638566661014264774502207929106991052441633026825272847544582661699651385959097244717092361228774874277585396569713362180826179896639955073621810946603828398503176867317645714045730351298181910069115359601429931152568087403019688382569262450866369181825565561206611624981712651278733541373772913202596235728039840141882614920963585674132111933777757815887406725513945743234106110582103083753364125781137404955143253296464044769149823696741124630787368756855549571702058464676560261033285319822005684516771665180462182932003556177857659938031982498084571181837638123632527162400789183672107523222836941303111395682272365643298405762427124911561809439922601443628798039384056115907672925057020273067230761148775230202716860321992718921561341657042539417904194389473932867411955919664590011455053919487428447587318201939883927282124742860999949954219956161591489171207573896157930304607307454316450750042411791275917847104414474416236083686738779004976560973557636057414081000743371366211868338157960761267106577980143193695277642175806309556129174781590320534720560965023706328779393366518018742459593308127738484788038971159581265979886259726680346172235126566191509418211240070983546037731947551749927630516238685663167132033858507332759459807333617380198430915114039762681011895738643594189036620616526919473679979332679156448508500302332189150181328729224664076423412240382099287713883083807525025856333091850250587570705037484274187851461187546421135627331183960351280645240581009132606907185373452509142855398787315743246957071888349167764379538063230663410967029178756130322152298694700807903880528718344039648226404027846959729848122842126147262778697196042996668108367790458799952740819072787692944859707642070568521559630725781340396456960956811644349596757180385173886030975748377477352806902428796443723246421438032358549378503362882099180274432704295244369122917099764767261039390310315733844826253610975572373247110150053655479753242194558535841684990129839894447687822200178172790038679696892648640959460684956907698741025770286070539927212033387241540425157778182248875898659948397142895534353668125732424835563482193586514011225373535050401304530085999755140524419314521366612280937819042876798605457458698802521786071857855312176239119415376964354079665329369285127175494624786958383222287988301784586196913254586777720090084066694349970443501293688846096932806987722298818712241749065534933474013323948142016141115361417538910761781512851699424331315664473570342608385633597684109198431047713508634313735027622656651476451141524670992646520446115114131075574264476499524829180014752203314599085869480347627072634364167087482005124158992606629532820145277857344316967529148766447713430365314800613473144512434829284035911832320454097477259345652355465037949744977433790675522237545400696815008475329639370488034131567975303529084384304012669918222359749523604166922964416354288578900683447133554656372525887278127365348995574150794212404653231221770326271563420467645424867767292000561223473799791256633534610942943222635845637864737110281387176580742987718284886443075015806198643309707550597411123788206541973078531571382607661666146387100176820698639399449293117441534099211113906444640599121004689893709369698893248247419854051157872110748368933111523224332230153763005677589682808850536246747818155324725878356401355504636597021146996573171073283597262811638219377463641567780072525434098542708928598069693253281708432980844309449227247923461460807337559789709438058007585697834440870998064552343841124660998732192552273812761933768063128867600255315034329564560686700405590422302294226381116518819009971747679136849767810482993316952522442459158839222375520886054132549089887958685065928769917020004332824708170220408883199680805874754229038516950657573911395714401891070505751117729062941873577212509047393844735248948398677286595980220243585553169866409002800179571157322845286396819293949384963714419188231902835610724191979867774237577840630323979566980694999914877904711872936214282514412671884840128883347363052082028522389115100283579258017272246481981491364411998655037509099315533809960495757579297293615426987290695885594456793855300756156621607205047836444250383739858914057652950725515999261304837228573070604480111355779499737048612079228857893458936230049590765581105873772996745474720608321925418317496160443203196244359146419010581791731380536832868989814958307682136262716716422490561964769736820162649623277858117270103952256716831783147000573513601597920466724100810108923714687907686442753865216182078465322063115915776393555037146648693514074070659725151726116112338658676300486866798284887332720244648972599178432600966828735389039323675229110486661546248395068122465779948158600581623801374585564959791517143328318427150598705045022614504439026879444133691883167725935530680314182014098782024656352467934705817140378558976804506142983313609935077072913057117977513581995998813210265819591760616117815874088957023589262703823699067486002801374784324348455928603391416309421273890513435562911591451151751700644892031453139985303654656470043317566575879341409717876964593171285984934570959407466667699092337432835723439400069412556037138585932566158869669140966348280195110418022185759597733276106750848591160353250436245290100215031741352341723629591646341276814805743944858887088165138815729946519223846480247858672408369282459543238092436779304423258164044054634397155383611523445582745176190705430043404800275600976404783862568398137294249382641603532638468394987649343432045984110289418755294825540447232618729687478427884522535505332462341660893190239654482713390446752269304596429890340900965143094560787157851792766236811957631752386452929653011034340796780694526148519891027970879064322377720381140892025582076157493086604337478294730961416188918005640484279919130674295398169201713685112422640996842543987413037484537287061746220529251748022956621565680806774512328289374704513792582899451961670657146715337434174624489865548362422388010508532655779225606484376682109780729930877963410370429617410870055994463874757119270867838334868812325267562134641106506082842521883536199694364725278057669780622396503865337310316398535031818195353579822322582621595557358241520015397224700283300995971947872562312238753708194763007859233635100790351847524938696900570595499986232901136310724246517048956419695967460383599191397477666868045918832210100742840044363347235612815221261097065135623540413754101541965056407704777023079263441259582933050885103730863146754491317066602212788597508363059965590697021294731980482683119784339550437261025422130296685550259708947202341372624786316039767184877925929726725735520619646694632818309125162796188207142753421012133161167609666939361245578810904944462937509937084195385224163222548449417363311329228052566126229028061200593066193178717036241388804825017280249580470789489163102431212085883714676667771694044196560486857982535407613659610380902109262063274137399580220293081139777526456605384552833825415209495631414826163087304776679438091481344524057792570471657129758628761338249830255226403243049262932340072874504412527759257948678766496611103095153905146215427278812677937789492524040663810469670425988868018492712609105684331324317377571620828818864704780500997796961895815947721244799608713917736616516011882482704856031778174319899380433461483141582267369894605662434624796585493894854837512736556667224032420967111386447188926723303709248067511518176639310005893026191558649128071102277829545217613144639179536125089853071277331475197729045606522971357895674897235540894818817749947491228124261978539464235907837458760349343942412819747587128188323719108549770089196051666273951835614850345330755494123773509752698869476916029606393527774403956299119776544757994044303153393262931569418306454379228471652862630503542383648633797354369130485797830698902129091305083575530796912450700498437449383448171438446089523606656317464574365789442872435014793649969296339951078363365732290478746522584817335295582040921170326721994562515555788617096748358673922611713606593697649406589336107056954426455589096284821591712257529472326402949172919587867663190976922699464014170427676706111335895417074275284199069527684352035271405628704277745434830333044333113591916319782145378327035417081188743939319809594741495694539363273006787393022984069852579293177043677799964611023205068298074847850919016022753507796013892504637316514856771839003293137326126173226306686645095772892195503090873944126432216103172978468791732827147004208470235082823117614724521749661393730777215852024060157638088670473672904254439922422230213903724576453708298472445147766591989536858609743529710270184139317428531003902957157004784445157273933543624102127250669458401099539622777742576540442745685201930137812052342159487966204665116766865482074700753429699500995398770078067714351590738384598240266389032296529835576188312461866434944277184288482587809562047639430634721255701996697859430735856170242732959185854123226603439291394406094999919547264179407560018241931272957738019391326326738879320767812933578582041966433849881297223400777273295644550531791098794353552540375466332185267869216388664807389296255865890660320160891690062638641415763076147201659481994072137668684339254179249225085364290692823443127679718671195855474602974499113999920672096301243422756667302141399923743820105548723769313307305257338894458006396887088567811877598923481171241170752113968437624742733587906214786733250080175703583639094598165852966830355013407515418913189912839671057034499561263054776707462324593168472809861648538411915019883444073983278830844615792962571622259120202406792711423866402241299022911782487273799949579121794584005727262207387596297356680290897093566536934986936985396785361000662387750183307654068163955355388366691184181935675544967819703378008283519809228712752167821778431998902344205171761182731196298378892643039096927324303010243686851169339436770971170685254635227252276898417521745717420321642844653756657805330733323226007879205595922571570841998713456495363754127027111461842228290137558482059757368159821699529578965015819425856376061202699403793129708478004430948698307605121572269933706980075962765218150428714771771602925151910707544921638572725190295448436246088848241649799763210843067868355343583321478037325506625292149303529559205019136165558860795709902815718586255171760885638653709627742156495123719607947748676392443104909208348173887276014655183840707566229947820467561748344173041598561149638168008359174219572778165304314088243082985533631005539467021071311710018983751145211063318498289319805462637649955088976750995920483952576283476544041687797350470365435549861401595312912913338412849171830540340074546653837236256937324950203318170016577392211944706534719542268640221840918402921584676102480608659148601572514601635690722723250123276880098069205353002160546310123625278799789213797287314894448300133558189872718383765511289751007834388158858455155197871788222912522983547461628871886846489144168990559189134279838702019801609789810495154428317898715186809187841476418306658748308216556469826479792904921511974393612580507752129257549634683292190252345064452573880330482439493307522467904928671755799201012548481004402701526578724886489610187747072888586160708637245130507271850729860076653087802509141046720408535305650339073095647409525314825707027632540380736461376628110433864925995450856957880131804875916850069209980531025748163849303290573493346099316911224123934224729018675978475547022563427936104651435647308182751636687052204281394872907084168240049458815631898958821210853981226888234546740085593460851228903393691868519827706038403318513917175642633977562300445014016322375009865675358150893529829662825596510793640866130170202777150688292271809569290648274448428032526270586959819583025496299467082192233447184500554975439018161974784148799989487816804781240254222827698835410732407589541339057915560324159313639776728895807376361365403648307172678503381232893834825091202520563005117597516941791871605421266737822796543909327506556551604318731604666748699231533616764048073310550070230689522941740845425686010196257870225916219231934423412978555824161331641189372426699482390544427720873060273725970166991502104538482145430951147707602797426342042957034527220832699619609602550385964088971385029650160702380766075680098977488315618150344931881851158256676573544785670028021114334655776338427217645407237123919736356597276746469801976877163021290905243860035328814304265325399049297928475038568953960173957056552282656407520786987861279612751600550509546293214571916803034391997182806760988644519472327112229597746940741827954615054467599030968288824371528868381764998726117999066790225001639982331944665567196245537937673015825897915729759105937626983770230479746450894870551051729461652705257098101191877415431221339522719959533441276208893901825311825187171191009198422433536732334004174516171332434796239201837538394592735420836099861813866314656798221987581910874639285568910631324314181863214974202986281508924133275905710253824140767265995666909285058147411964814686383327276706384173378534218623576909076159247411869651992121721973791488210598523859796619003687973432634040130170460055745139417254958401850633398203768239794975827992536227176803886327910544272010825768603230604736259693617644720243214796853018234205185732288443689308139624865209911928458723710022971922160607020422136899502218823729288757851257474532930353259763790601061640379123818268496836230379121134764478431065406103800517317944542492044747909525019172240096030689082694680585036901018647343104908222131811516785780774901174876448960937366152179566692549764140621724444780918227421161224769478551265997250195421870870373893959817205858509004595159358899686844787676823107597375166409847072556374837871976319254449503831849531051478463961251622215299812493660429503742777482766041078274470345438287110740200956669716446761719422416860219566280960551519829127882834193330427933156900651909819500302794845987782083245833203325539233827533756290308332509286092754776175331514133632754685727755834116876667649470637140466295020918983516938003549493007274924775097465347777378354318436351301330366442670952909054133018697517860300837019666486608202387137783713972064482178584974950487561858585744506015442615743528730264259410772769998247156155688632516904703929135133964362632115124872648015724192358231535510044806958603616368317641854050944283709285935543785120949604995079757670653203475965286737866266864351446084666633502844199970140849324763469720813526286753140482969708380968868878546330474352135974662640850280640372181007658236781865329611354591428864014087382252998624547070728149159966207221692271830848574460293638997750522543688129996950928132189535997102794835328081844327006857488832705456996548976039182461089386854977418822853739704649549736537738888611108235747467622431282854131986887047804114057618625722082827736814611328108203430422224058629667568284616695747707753700942350184587516159277489186621933193716988507395212667479554900387103876978440081305338737777628300868496393823487629056054344821099991332353741568876427944894955819704868351331993850488639604551333971716289037251395473658090799625554841163544742155037027629141057967061001869443178576831139875803044824817166772054849959698718886836417707268288002964604345152696313874597172573828151650121726604720813984223616716227002480886812780223074825235353504028291094465419774342686947760518089115678335591847969681875678284700530504426642045723682042686150743874181167649715681430331360159732560698368970716979145771817958480719440979414227329926718337536658236845731147384221479922451528858034228978409410330980210736701407759967130852076338816697797580524808041071679069464173050335525976714919936493305337693737876996622168927358460783524522814006710083536786111737674526466002748691167250016590416173608422699853810363704833696101615876048031746825571807723535738630502358407668977649018660175446401456406133831632468767313003290263544575485628486199544109784422991056094734566011789434424096478299194333143848584323197393145379632929291478755440205361235813596966280563541037271390304317334600218100060322740764440172240513958850656497615375927305044388618096990016464572586352013516655793888449732192946600542770101792023897223251279585145692846816870874110884780777401939171812071836572095755634374606228113248743008811185709379672547326768638880925577412303825972139604122595614657100744776825917323593663666926814621482720450252463356898118790259320900159729660760080517782398930188437992250617450413204304030955734574436706429133900619953359010027585809964215585607217958392763537513445213136212629883824277992983620140735976289148048894481307266017163810466407126709669214158710761810793680082817424313023546926432030101228092335408990711981562599661410524292862521134851180251139337338139016028732560682680263240256652202091694233957705095571540602807987881692635759683676541042251417440381456286014479592197646814022016164924414120621688513357941551828145705126602950796048503044300901993252256885049599442979315453799196834676022080932506475627701741841387728233238266244931573555053827536794014444771948372542583013869495966921816821340000858406696229370721317955360112298374924057648157891109684229671963785704183376871517338875235904387979488521983055056605620521215908768473348980622914439812556086123853493400462106513688946728310457840381270282176456005552711850793760346143459960006896558338817808440183786005224028783153420228151194174253802978913961444481500474029563302384044965863208805616806040204510983333340505746076781598940601885464262810341865906162657569655222230020146816650188107621136282134955376888494279260786926482911234255555161978131653157299428017358828838143628741313701854004208899302618237302382584924750586689032513158067049939995029468326614900495208417642869520604034932103656604513679538311639886700285114535408595563595744790330099750782208162854151963279717970800312457261304573751820733968217162470884217350646290818062528221981292674195876478313669333464283521851054316496058498946435268190743153800323394963257037065339691477262508251152666180822416898251201850254853174041910935160248763165408554899730521667441626122021879715408920623845944977364016681946761982015158992035527230096708814773540997050747231830044110133643521271838428831014358425850457413661478813080019203656180001033972504771422776218535973747657572667996869652432110770995746199657667319820039075302780875507375038002197633654469249212643660104773082536306823122913167576141136586697825211731553209318648819092487951449854519182066578110706264281188994508429990664627170818770387146576080592906130316850007180069768532334500189060359062928629340335742556502885897321014748599521043520924062595734448050373181764698602243248426988326081831702522667461361545358016566075913395035994281844961431054495948638406839868926285549108121431734679677067133532567821939204909606373512700988629662963492639682317633150558286765343449988327343776753696805495716334517591900924602144983815371521978253447547866056273384371737463105667639217833002592450015052657674113113133796102111015521966474774752180526598771693629082191594296971632595690762752962082930233603190134015122338732150942598486560027577219506101360881783773840093891714257662566076288351639219803258847864791042112958315320921937942400713761767467520908768828895119394224144243597433937310501890391682787724479275419475779149097648510990113878959409880577311888111288245487658616258815109154891767458253207567067337536624322704749733746276648814069807913417176833260044613693716496868019842542286149266238476072927690583568203799193089073122607141704099088751993993841886189091180915567400664091298909681026216121594875757550100729149023747332274028753833538117228705608878916709694578795732549264308047417660623166286559019673763793780968606989330482260174426546787339150360825591676061671784127967021204013784666363454254234887402741506791615137264915327211400775398492836276120591739848701511763029524330553790214355529971859863098606194741704909448888351053392570495737691423562571186432810644175161376416213875042699375987190877565409299296065487951923434632142945359785609971080660613079805644944391268118527219565046767169090072511986149535095573359739082023496049671053744007022420756337480202557939068571388383702551193268248289359689222330526817142532040184562318928502250929508770232492540607981592244269364835806466446778562911277388314539914916893064862160108694150531056150529151981699417041176876389015901448501648317209515847696137581933694840430224753489061167874075636957873763166666485161028337385041875541585636901502226416740472625596132287254320103768348333248840696473212264199197147987728347694012145909986361560850039409666733603917919877986095129260644321100548055141957210439001831528308369558136672146611458189797848251635680470141350696128979277881476704276076756420350002166805413487353096698706279055455463947281362059675681891257000009994558168532392557437542889277777503298943825614790282247120972324724731812152432174564496794229101001699568814932847467943792885511464149407042869563275150589859176068153472289884140450226500904967261383677032244219661312796477798448373904037967464408894693955906578340244981768655543592850240255808146153188995760377699365028889377357141081152028189155336226134083556110849771719275854675680719715636823529178969961119474751650030122598648756169277492948272938726374728392888897090108623052781557987242670387404723335039057773059811434381181717579152494903356388102550397814257886353355799635177081556110761134033872359643404610387949222762658578087075639609473157015437001076125220771111273176417064994336766422202711365873311057447303906382999267401124649932845001047519854668336565696693922537522482315190521406344133030576783385996536844961049234933844796701082716808267523054361353170145821011573918939741011838855426596027786681585252366281732324087413142300619196751918301746299296555118534682126917212385954762824274875701563235859173814906203203579816011723315833389541613896249175369234025757431438789510396546511715164205647190864740146344893252420934853863956493340004400411094326376284483349195620344740223047100842993269548452031939595062800917477623172577760567531122276606829375205745107806057694198830926666909649943494648855680210202839352847115002568033165180055417467680742849566961215854090588551909123430863755442527434573000194685377285597904051898599452967255253672895434106401658001739901088900342529564243953690410355490040750733203508606378276015010226216430961087414525350859242335384626499066642267363692982406893680174558220579024694882696194042367552362164684695943899632659655259006412419357614808900671166766679834104561291091799812151135685446546917462564404270141426746127743708107887935214891736137202209298721556901111870174012399544630855831522778138828769119985652902912284620063367882901765137949798482021014410222250397620980247167854217731750445569668053566360445265331300687667273547127949128073724206624715077409943124064498076472875352096151168610444627021110370575637315239155617812754532201382956610781388025379827798238315435842473014449124110046498888639963196987880337567967270929746233446391036068471351480192511488724456423465436455050345031310487221108502474973261996992034254553130673526119094318824157150186135145611441843498063349476348838677536659024958880759271627275090172482926620144498044671542904040053401812174007417071088257844469464693859341621451244591346437819986899790399002508538784253757619379933338400828957982891123220651949180838642457135640410474766323734212430022350378807425743939621482893205566519274205694543926007750557255341129145247254304447076263693099266659191168326074736468713824287573292644550271438890404828548483875557863038478859565118034142658885325779687473565485324167713185546520367707217346668716228797225260862848520649618474797977723962484138217046425284853096655549944613619510336179515237333100669829080586269554041913160088614577497593631387394406426810608637820612242143088188949782519739563597907879750468523373078146726403667591331296857201091851544956578205503312647769277823130616320442871179328896794956150889673528743771762381807582024114165695335604404313934312976961244543464436507005210575572067525953117201875987759561176103012615170789095777892045768018160256528449983363299745099530966296506909879526890338196070434140278869495059380441139343804656549094722837630833933338493190330778126466817019913997055156858472239064157587240434785362334615302878186902705916006670131098463689511942355262011215842077579255181547764388945745159177181376395292178733592002095764783644852517030351856464992889816017977526335723417375699921955293700562391792169047580019499980833798034569109850347662402163062880880411081810629481223980018684483857169470525165531442417964746511484087575614786857165079721852435977732064343073317596484229955428661086240799649467173421023666002997704181119091093607121469147919406967273503786671919612367394378684173166215000936918584596910098366256822160814628783299294090948266596620595692329039116252039750018245049669645709080349836819496357471520614229888142075136611980868236354533190692744665698140159730602107388537362533139974969653973120131790909251895771107909375586646573349161027819055701575772388056911485375942742853975457388268150845588698627951382060885552796595926402828441838590937228596835811217717966464648161677964298688882341246890280087018694582787948954138112759031449145163219425991680875349176455723012642201101836726723722059877304457603019698133410649571169008558622151738506028808951289017485610685778507057252360673174981211113028362237209934561321294638463078499295440956074577069117402579571061706253566496171149678755650466561076770236766220938924373943107896606436099356910242066203989449233582287190285826578169051199666491215996722181269482334919013079185551367998858134420994835644909439465944917063056891130592334278507733153954670689831370301734591090393755225617478841696189251425481587569077213094608120055907847280285316738392966778714885925753650113499370502435726966537439249301259066449681495782040727166916206254478905779033748976848368133370436179791438031027432236884490608001852468635997435515791164967250316442539689837140679022741481698846627248947980755544462796591887427790095485424306220077710922235583433887753304747864797661921144377010805888228099357000787783984307121374955155575231402003787001439458943301083738296603992034450035923461959099033206095300484501253476745935379853211627480601692736454990457523279610337635487562568708280726116915435758570980994967765151326280684782055936587675921589639014480538048094670114922331521417971839752430398745851533260919040019320539109309825653816907444820289007549692784756865536379717207618607261963783971966008774400505634912190948639005021170689487240062686304671470643984520016259854235240829152359794025677904739699052614178553238141894579449417218260188368324984301059225419786598080415072929755999769539861904326732093802547573724108873995920309869821626390384578128901529164051538356741143809895721327759635529172379237945751425161922580930252099059381364411460526787293306478184900998162381130641053095996494920616327310160905899729821066809247557091225050983577444049283874122603067145028951798492697039878908187531565282364061845632276729277682799613580595897165610869508234614771124955520185796852266674823515818282135623011564913209432228747790333822728026501138220820057122573305428567085993939400522174487367807763005680086865286425928959124504138525694659409125328745060064637258799081982199969245401786650737704343732288024974097496967472894641653855491256120475437233436392212347388091485224031897464101838269109832927777780135287996459302783715381366974530526560300136358507478567285282458891320380328564179576627385081967917840340026843055104208188377353272388961669457687740462525947209026905410823763799032211851165390732809108998704737350650398800233359773393383513232507912543468974615713194816079586574989246371450292153275333214242235685150426530808546932704648885911466041371478219641920210534625203222298725968777625751086853888321059314544554432629641222989085937819440866409616409148246661786106027931908232340315768690651777267612815122939280603673246708637586105341690183083111547772049484681296362525131484428957226167402157089323075155454060267040316952615135884619410565330326976467547025764343682343780536150163771673036872386088170009518901723811058671315131126244992168457530629095243652639980801412987172109104036368601640152062342423214218825083721529872599907686308299888209271212031493657651871898617840105286588941065926763118642615521395633350137416087441476374685086999750330016671595256728519794363386915719361311556477525959994638165655106974986024958361683164384240309499947032439329208907154801318126258065460600717159370352132248254407501128928001150584162063213227875037666379345009986931730615512258182249123853378603435326162383242211755205623863341593039578262287975694479031081030195228766919809371590841091053541568301812481395322002760615781555027042851216154382828803421971380792888457238710027650350350493329133052781356076935711340590323903899404433695396149811835532871455912171247826408813367877063092211937688674307397118858632828426766577945400492734842801211442604824590744771800908598791521646010063338666365339908207260638963516519718343379148488499293087148710146806158547271282673642018764461308157701432810175902618406575103827763918555832865052121274993905866584888998642099975917105195739805771851397865610170145002713504896366820208632409915059854445538008688318589542130009512075435389451562145909829868621391659589226932799996956390521867016727931173759212531830424987510529188110095557788023499210484799465197276370735789194253417516472870349560404526168492314082889896223866762979789565582286474063204772724363787566338327892821691322505171238836330100013494508360118827680756226336367768665775672552029944019280642294628468721006605313939462645819572199063912850722541513695331044401239986696865594244193858514810428881110771435067931547646356347429589960156415655023041583991825040271077179895356068146322423962354061326222484365509864648112744619263813339244280332360132316718409052490703729468265492931042805676293690010750517507941023512376300108271218933701649873418690619586190254713081564731473817994299345352061234857993769750341677476914102299861139979945549228678591286047166084864829117752888468624411927465875863076857030709379025708616043741293642615407056131693106569037538622820906260961615860074080393527323069191818151677361057113548980069134213280356840300269016915121913684907106468434126568866012456532455839950055017800679487504392713250930125753667713556686499316900347740158011963367201773144917988521918638268857539410047854459811276914760829287472731761040072161491946900586148231643576382616783745839159748053501844926121468320365512949680890986498906918764722971371972163041573851753733810877271429006070650441777823142305374936668900938156293411400934997799050265981205200803213947486729248603453366869214642836301460505813682843584330021442052111598996056338278797145554245221144665176596265217096352241098010846095325891720776113492736673766768163114911139016263760232332076755435217472470151682979125708214641619125426158719220150740270229711151754105517837766324590613978285718846700050553679526941673996178346789948342100870546199689380914588270074540909134417137491452996106478104430700110832655431690414386406147287772984864419012855625682398260362694104788859450467667288485816004434814878504705810244878538164874358011011573184134560056866837441840666581199101360669864248361407672373390509198497968031676437223008640170877896699992290482014382284181020775564178717448651494776580143646736649078834111680321461331255712401085978474267463313012153955701350476050703348053664014242626662628053578352986287980028644139436041936602727232397400470942875149130600150428878972965207018616288599789005171631306925710765057556803908841957423686687941911151982709245381579665918316042474591303132674324435420776152190264314925494056237109811259075418655541543470327925811517985212091376971972230083765608555748341240902205479388127474688137260273741954449473684806444708497720979481866333745231598459118736153347914887327562672991262144257673670073336808253238419423659694651531322007091416566857503796616663721632272246618682379787599934937160304750867283370416726425501287308983811174498716283157092201780359527287272468505147113851373578883491139812890755311874541516362250717808874414276114370042754653800560350390413753659124824284848714907948579892124540513957360034940237829282406763754690868846623176127922714347309078959292241710293223038574323041780465234123024981536754167617225781572832766304794077144034274333832011227145988731255995853211361065676845345289902805361688144396462339043235315431936681037970217681904238069035547930968379407919289999134987917539813934085124395778344011280130503213404549867310124409133721296905286459103761452552704093498668099602234741259185855953808640581131312461155528790279205104354404570175859532388559313232918337954997801696890334606961780278206156636300692659531594807636508048815273742083982436023893359324147782289048386104979067574258611957764472593081141144522373420680561871481864215036024102448059346248520365588988390141595279215337852067823653028274253667301609871981438186069907421432581255398636309023158279783966810233455057803513337538130995150987707638215487367665877530520181689520825009204181420094091668193494061204745936243721320379308080629556870429481341225077121222967639156096851420861769668495111037273657600123497764940324216872329095597314586384066377019622427288610974838240014743569547076652308752282246847948703472926620371825719097130134194575583375910701357935825995714823135046986863735686651708306259398722222475135431990483274731214475734387676860512457906258292540178636920917206202899197142591180807651673753897467431450189195750235350498115426550443936624933833911337840095032727217809070235185657573618528720304237505797967483997716775411181129542089843492363839412911545911026506348004103171338786492481648005363559608373455296356900045992839849411978483827382526642432689352354328991280574913745963371128796532432644677690990697298974105838400064795279575600979258880395784245380061679119382715224496608684112787231187664592845932753126692634739681890332712417743276185101881867525855372761206296745870755550749438020727925308846399735699495395437857372495374491266145472229653520779578535729178698081617527254341995579984081630007396382881556486546535859538846663604608092054535232905586542097238383792535422233524772493781752635907846087135932610875347812890812200140378355450438702038841120805189288200485404665303981632711146558166499889176322146623555228727728458219407865441982773320412580848004464902593297057473327373046034050466074451561778771605226786141824213928163905267130893166890557287748765580911780293370050517726550873866875520550658148224695404355275284858878560107330621344277209362706515383216391077561296629877666416103087880167900527987173064599792621683579469148168388305603697868761775373627784473991592008337611324258775440668990132398238820421997659288596667206002176922533181559217391263268797448304679181730280357697738539985274640975034310828017525327135052777029991627159440584958934018227576311276924245478746265321379664599230907673316857727519332684050506789509449371664588175340401364230034095385316812606523381123887804549660256761758707408229732768489461516499575981606396044201709842760079754473195446458417713643374240445324584995551573861582519984234506163579659158457254333914596917324002301948129919789643370000023652419655115013603075589408925643147973611628489948078794914606395512749615768906843506058441607743929569549922060945035331838656738879939138956957462516202131768964278937304565911899855100686471773756915601204883077840591827893145206313515183385035998740869075354522670536686446779134954314418088922286767576823546152559493120605288706439930338505767840060639628384748153726185458528139404525343582472488702688136392946055011456626826975855961355557446993074293794861183993589363489232550381751391443944088447660606953878278868012964838792303100678261621527885336867283958561521509133100827388473614754187807127998248036690830212693883901752273517395678668736659658908591635453641165138863518014058214888565482647412879818573911276498248203912159294276170280210730551534041933784659128047889791255054010056962791146624985103074417835630093606572974450545262083509712358477958396044031070196375364341797783125451635789513678846989861607059678674159830991093361703777425286124038459876611674887000459575610674626306951681061479577333710398538522765702580981427355859516925888290407013978248936851079545100487799351209251361981838751168394300400644956752487389888898403713491173645765510489171352541228283159081627161666984816110658327617511429261150069043969801332364610561379290345034857205741792563928884086981117942433582894871480029618803282203980306423482369118695036610795372842655757321620182852488015383510439510950698863426700781287029343713471707720464941364941705177976379485160244326143639018248065409358323315470562698701761786527979758872985374406828896448686838616413964496346938075741845154419519965329151141065988153036343230779846724736241165920880276582787552766991967990426062529082333909475085073129180888841461635565840065051050177105880825582410043418951995481322362956552239155383337822119834662829436892509432717183435842067853259337979151814898668116396621529398828221172334377780669132645940835177955450878469050918866438716080705258532113000708932431360025225557046725423051902252226287007322368035720199797427917091797299551857544545479818968575687321915598184256867201871789567041384669389943298111813894209377979842829867801420047300738571954447433950359453817675822946491249985408576610618146550241898081917554073252468545598870576715960254923358826692497328537416853626985928017062954070372936621053063147901587374607403517346645180884824380342768780669617135702590429271783952707755092291506516680891944449248276951596660876624413102809101237381442287981079951154919759257317836169730422797664863315543943533134273001924665670907246082519653435223630225561060715623632048213197536372138896702774905783971304319299695304791931027313048188645318935891179118295099443711697547148044091640416899943261591868610913428045338305088111915842904272367687258571030775343999897682667844051667101039871616808426422426376495200710844251977538623776367106959096307542088478048085811279955107812364552510399297434148799769995439633759749008443649415858542423292148901284694483947375392989065391037740624855674843314974433222368503252897348911349055851175247900929630282699521053572226118891776514860551796364634796705888706945292668073012810344868244222589661011784241838071044608615220739276626341320085426789961647057971535842375201397593831160994434647285861540495463545207886279287635554402389147338293177352207643983243822258388260067615826868997962114023971252277055134351712947389224613786080336512867896409081746498859254587160768373700273019028674108698641936326669990522465944934253510633567180163966890711308782956232173807537732660694328086209082111359254527208200663586326789695260860699351020953825991552136043034754656250366465931223244499384609251163228284514885464136778074392363038170749523284611853235546389296209951667748878337620154949251062316950097058008024623565521783408044566926552960268820140127080480453906509801913557000611103070074764583414197993111789049897543346552674620303997759425300754609648037730463039475555520603187669778637572540235162062134721535214437863092511967651529465269246725434783727604487256960020136746441652510049260595135278689852516656173001180598964538111450510997184738123533475924186004920180330068463883017750524940425659163012373389797992773837682946207441299257704043389517597347081661812037793944541655093694671392305576399256743273703772684961484233823013990594085693009248518178618270593447473083976985151726804775547475607130235842828872122339265636106677089930737172897442193125516370711528268296765227205617893740290434011261808099157258405998222440194288688365356795074192239419842979530877214189149519599542938712436442369702663633396115167485333037962216308135356273220037561684012042921850220039516465022237394089826130687725746716247769464097890258314341078860427461133367780925140733404203410612951676892452810342700168851731187622805506518892485242770720557822308250972394436668165249168094091490587714558249313832602747200116483487053805747054741623502339481606660773773238373651901264597055212540822113177250365094598944196725224405177281286952263106081178772621926789755281813132759021183612492657999397601570437809005891692244975407366410498096177612093421073863193714297925344541249037028135317107814001955283560999676180092948329164557660542359784565704072113533566642159911316666155983850456522434124386510977536624488351105005721977427980791432809510251464294256698942833015997101163071967968217544274286011683049897163414848086551298275319237661508187654208417326554750557139661252649731417533771475805055007642523382129923257428316613505095334807920295096508393067360674569863395040928907609010776293180844209714359057620034806665121429661766514185260050271586629119978414514659819291828246800604297408119450432400792722079008818012219848964698744403485158540682425938218527972810989564084784980164454307191001523008073012880588662799645896495368737430371974870059036655472848645886373790569403999716358581226421603030032745508080107993813610209627437049930669391005397026081286697041250915262385308608218821549901282689102428467502505380854882461156334592520394449360393725644068992114123244773418779657765697023629857699757772610548224507564161276741315698464400166507399832173083749440943274159168456023713320916958552572153853783937803476404631554408119446616776825198250864620358983658950832861350310658237159410316299803652745182772781906502074565190675914622152169264514206810480095947234620286332310089738850717403763382712773084012266262674839703600764179135885316304580889749997885936505082793553285407484365785787095389256899586062718250042081460008574485860847474516354297259768454629572771472620798830652530679765441701666072816765750536384839892240797176567018384371939753416223882284681032414883870723307767865179963188635907867882406161763967577248466939119208063586046661687137769134891619820543624762186624499619408166255417814822189352805778322501483870122106073930632556429942773253671269016201122631428714555608871899310186021808032093605961373805726008598827928936957412671833151645974840222009025598470464285205530732097491406986985290586287530661149820612419615188871983161161387025965518530015714911920573783625799347732455354018200910047955297179092409155345944892567414328018343194024261442814063454723960576369069089792755734573305891539729956586828371820878053318880494297048588407552761203876190463908965009521532956737652943667578632669999592292373797122816495528210834578134166977834983204629542532718017796580628148730803841307853583449905836527471960586716105677292358143172526447492209805680116794097589249776566177148031326062169665898761907966432315742938250886634300144682871433439088208849730309348704284269749587171562735148918576241060026263161437108937868206544663786736892099757320635803076219629914291438361641699675840947481866639875110096671191239100175050320848160819396351692860929147654689105464400424944055181015194642124381539291341118155707722714496964746867995270670978141921875467988935398663479770251091197246720856572004625199976580049797439650469587295912875434311316650656134115231769515437985274026278880706319391628107729787461358080801204774142596628873637145435866695085409972056249142262690610610732657733120245567333739011568702028734267377725394299114687765730046158447986259910054799257577468157693765577030439098339891664573183109082269529732652515637973214069038176199530752300294834673808911285913009938139662095689870668595226996035673927600243857761868717687219151196366723930828562448203945063948538367772223250259909873201049188752417972776841848659677347873620366506161742015243628900904423491427479377324836037871185433348358790084158362970428218575610855088570217554745387137238259286575625653501503773957559116015749091155558828839796640272169698363116780831692723499098563315543548597768273340534739331584892783911104184969650647458223370634328684774418573928636251005513173968444487606237975744797664373299413668491760941709031681071995286436184017718740360311569370377125107929819388149363233810203992802424086233054333302296840769972542257332023070864025930296992677464114375196933588111318616338522773112268038326290298933527413677994227452263678950271357295320544338214288950142567131681611435227966961086936999251502652869792029558879254062930403582581898679346817080349657931851576797805442605393498933917650256616380774464061885450860074188936098933967304676791449677346808966609573024201608756228073475178682138066761105486250915779224257159209153028535909226069420478546104094234746297962608840627095444423915232398620599972803897606877943028177522140585114278205842572343996551163462847090604801696464910539070210869587250076205018725561233588491497586295544579637936982693186875671955963568515299306328257049281830945783545374287434328820142369531447536923644093751152952886249333202491422659264554226108302820172247857805628555919721281323959625930516611856984378212515920199041139932587024646773539670762483051789837799565648058719161666760753635572289318123024263001179020348258546706053357485192810698911692736795843344131658211183361209218023176283906385056914132349757459186598241769018061879046229093407401590362457793300046702168280771301818850171524722916246584458611218245355500355451107254318510868412554311605168628628341108932550383965479331807721449160954675869144078623637054666947780668524916470520326438917495563929801451589344710543622457021348586191793949989017681770165100921731589581375502984636347310361763179732176850496230380866097376634559725687831013943236536735210804144283440710681509933135211629446821929092500341589545779202920740934159768668499410327036171698827081600375703764107641140746160791773505351994492358008281872471199437288016901866853714556381352499252196992215126168918726901516596920306514688714846569994435961905799534967728055126138682856446058247485753634531185995462641797364790008237976137869200749162414424110389132341279184184202172056085174746379153181496634009295024016535457767758431073075907478563148750667216277295794667312900275400869258088887583748922771173966757402930981316409603876763268551490045576172623633792327461467374301163377688118172358887689680440719886085119093890305176898782617263278780946085625671056761012588987695214904922902108971006198037222006013630295782547109564100186926903949765703241068091376292438951530569013651173896549163424767813482758457398673049976621297744178599491901081926449542814242136724559144614413679172614227173680812313927973845926848378023022238127874549896901373128707817099592622300209842929165335327079499010960539208876962944442736051619331918518073478481462487252394141562771156819756457491345122237311694670496632215166462044311560957091011620860707629998391815666375644284998844793426405621265173410595203340372982217858629983792285401122544788280414719299766328646559015230279092323416874543418761045164195622163782846279287223472075908064672273561096127733722023692019623308213699614439706824707141556688355607378013655933263734769370499895210282791408381939962078073436589168172715979065063160571550132713118861974486191797636104745198081987172828079747292362270583591343524666029569672553432493398123304633627096421908275678283311967988034328595444092814580909820063208710755428582990510985559227865536866304976372035938910064551560567973257135965017929225389670585949941873170670656395862774688820371283394727269376101011741268853812490401858090402901932340294611045523467737452905174083009470963622966411569985343647025457760420851145495577446181222199722829306567060947186160086597236326126084419262529365236860794425886503984730842940324461645917249495566157871926883875975591849488249270980515840180176862977231805681743779269922888058710348162790299068053818260611185088648099313845066634810491452927927049632751805920687460976806918622339831513163809818322669623748194063317562805177635425765816528088311271256106044554949053700404192211470226810641144849549112680110363481791668456232137085046324803423883840437599048902201234442454262871203630973091543041758672046559125739772611720522785728919078619598249027417033253607467962907592755084353126982527831698083861867117971661404127645785947974122632116503200155630301610498882685110256556650531889743982427999575957746431994606777149725159584440545363344204909613879140920156704208694024482473042345057706062587010028563140068063258167979263302523234714510919389561044636186937992158696533964374732095047442782462992342300170867967340339549310022429350377254583832786664067912896753907743153552519438446107101810669664461237039628439373821519219456684107770979366274904085147776852130989518280819579385915271320909455938383644341856948585272008917027839503821001475098247826611356121472000869045659173510064961397882287139631225551995231087460169199306826471645783043549960431060775417208381919493522581560293157180673455892899168965688243673251508980017048300710937280040030993712800785070742945495720680539549453917323313363621119149166049240754564915583527913026757776961745823253193616402790700815651751081292175162062707040903700521828841888438241856574238507867399824706861434204589153699155173403654668739714926687625486738789343736387074901803194730451154115440842346720104665107359133717251794374741167562205949143067882995261765074267359400094976480208351214743462872664602123452511619690916162427042141675412335935305853165316163039119275248970946044304246152488287245839516607854101287234319581052493977663840582149533792088015092898870385857972891182191008908908828994940240730160966711043223750196412670346222934129089885346802392512789712024690750542952678822041724496704002354746496410498240021776898697411563440135693153936159954716190857426676663016990064649063681117274880039430436617029455412940172666764954372103499586462624816329201500408140976489225776213526302287769463027689376479293243744176799896045828326636997477745427259695598233954824649370575675123256250298308534378014988182318059218790686133365986977946107915815478917354988495249937133643233068372213887063712769217506071399546629315794786001363932896516260171783091652271383629906431701186973167890466059721863442878949608738235620419790818208281320363295009849722339662934069610842262524490476076231067212702431834756155930265009223234355284308088108993107407114269856938148739653681795614615706394548976012039679670617343042292556591393266810597689356616927972568543114003320595962868132514901034771415088967239757269523778530232649486111518192608446294970443425191804923340083110459567589041985330564242088154838262406928591543502728142769786856767133179345998045093809866412469625980656286160358424473355816084129246650529737360612756071085954460033240510739814963098065565500202559342971180859115208890102426712385720524751600748361322115815744684554280385931359375417881950244456515187330744828335004270621512196348298359333432452934052487517930938738161279391248786257142489616885217552768690206966270215565882623559900655993873332482730121046990362194543910209447426564979656102085111188770504883384033338639090917168698479556716783048234274536367791173578228494720336619080639863179934531725109730775312618780091486053422703766251656354663886660672240421641122391290174567177509599442130178175186793151024082244385933728772327407910984134080232362166679891133421951108733950726434457032527521926277289447906831587667302009540778574510473082628867785066069900722002692112776234870853734265361582337809163761356599331364209507995267142043849907946551489152693090872501784241481973510948434828373598663899522714101523616502434923374443061242830239173929829631026646230957242054181788872902914569333836582111716311657275561321988352670828462374695431588007653261316962828837287943750067907353198246671823249257540330620253215609402447914265275041201543379466939394869379140795865722294954141448194874693575585386786705454141926432006756030153235301863184831623724407508716788624353383457313948483927300121287673909853072599906028353517916820298870725568412507995967020974691520749354197784730234105893426716026839403009268807044365517965586521848580126284831693996147057067902508884070989427864180117976407773673564612847828697775781890907449047710478981409960274550658670090255098762895889455288994524259625883185905666287200498407267528678378323836590382979123757001673612685324510014536584324632282709156647886049394576087755600872685383819119878044649279379600975530399631051215296473515885620095302516573259940583898965885106968057437346129463208281405420522089290966131076983874907968512182330837421336615826310140370793183693380403686389861695221500904084481985067605667328239836493164783533457109577922500094656076878729290304376159599338369556813732537714020350098063044069046457444632876396718741252360911564641360086195673214167771371946633293702793182987702775148255748147625192602155412237304044351335521544558569607487608461844179943182616906871486388271844097669128809660610181532056579758760561262031863776984738831073402954725570816106787266129290222065767112422914357516485198692483103272765708785018705328628779199711971836661634349857511506593895377517657519399689457333411660160030086458234121923934251511922607747831294070595844674852134940750664738333255844102715055109964754142918441189509707318021534245438549324022266113807383353279268775355113627797323286468825789256127689682905802764498556421710239762025400233166640702393231177644852462741559171510271529079828033728096435267811133440814501377521331387233866292080926062196203371914242611502597141541823136760245868247325718686528300777180174535065901745642215003594143180190017133068205398885128508728349468834827270944048630808517794835927495637766832105781518025378839130648377377401584114142716123937264163737773578051632129626630065860861280626232424432613286228279960486050094433945741626108318649061431712558448825644976845889020543443424661471027699950804600107104260181047526931356664337193696717890769219290061952886442689045798505407186328144796623045652754108969881776068833028060230108012002946203379635348359054430556518504296522128427081714490234077814514081692534049592020593511271885475687467093328442562468790362681879667918212873224686154692841593061404598982181393751333407348591872418424630046035607712427521078828036593249962404047371530765611276322824190931809610341078177152557369528371237667872399119870066674183219357015594091168331039782050049630264950229090347627346567205488059027984888154194402129003039577716516995332208190443721850864136922297698892724607997955120918779855616941573880089559381452302920612693171023048511720641873763132689813180120717847955597397044867317120164152637965534901463112300140902214620007585871433191371264406060132455989423763372274960820202471093702126831283750137965920973150739801958220519151796460366179599317525399794763124689982004713500955679735450588135126927248679031860819224153380576580045984327660577340635475535985679247702119949030192381835205996898411182428022081528259358549900102148183736974087582509859844135431361205863159814917105933950723513873995763391870438914477270875622795269597763281001356468576363762825794562880837432072917679137563109727985259909928308093877763195437585200732719321736259248958345974430876197101480179997485358976906005083153139910132283838809771744351816252662575183792526419711909639650917789378005293499724730057999060212915632377279792741249512410296950627819020792578769242207765669818070085358142048483037203326498109225762281592391095775311506379650855739656882106573141094517815233524438304112000650329176401181359726891713688154621465697737610850790572395361918928800565446769507108583283202569379292891230646883764777930762018754261173627509897860047827487486952628372163871052866342427430389009983209718425789326770056428509670229102634047652990454194519248593785302655054715774064281862603103722809503482968654936605918317105015863286406449724776133264352592864061636103725310410935018663682910266715490406818351752506669347419111151734112551354281889378928407314660092653725163452690284714808092076127283093021604186650397460699572502998039879468911927651600280707897527436061110814511645250441040492239864156150941612637809448302677598458927867382384654030163651198835748671576238491419250839922511263686023834572501753882741280433194294186513989180685645483602711769363035206952004391650209325972671089358194209815842603069875152148649055416513854442481529215204784164995148585659064881937858636002280638209008652124262437349563532208319303650430813810963187273360812115119138985950629026166182178175842394014804422727653871463460305839748467291812388286885965769436509084178265305231576540881983643531178115107382949728120016685436585476632631808038177301142702801965942495723208303288626583973361251384204138887271967686287488913917637272969749887343220733892188509642680226292804842221853543140318613079140545185533293342750080837949765127349148599055681100498826131288898348872891721622549243311520358335321728142600852080535444310426029095960870668320474028324896370313001403421500145001338476948428642192906476930988455633727457913779014488338236523855613858318773733957927807770277644274011204287093243764269965512642787980902338373000052297603071261747596667062119276291398168572616614314028479101302328094476369068791936288971381532309662207155641796710000742281681347909684148300560008871764030054333240818889020113484376898458047671172780541638761061210569676493971765179961358448746271362549585209612569893045867850044649206012539508162755967813903828835302907453792227221619023515496735455392502377964130971813591781098610395918066527064944307736621622584084246891946696969358663554745384719570559272640755359694265696892299903749745146096612255184125232115813117024623508168471130153605506730303654106265099488376613701719769615169953765978699222096499014428253490453026337874861754113651807960175812054259193162070731877716529855524654684857559050388225510889489355274230967017529563158888657523781233682631805882838863850320336183137177800827054547535665478013201718908393842212700583250726966224671725190066421754251488447376855229119055925121744004385156450400318906627873694757704755074477298069774437530645342753006112597853628880559857899246711063931333797866088759993196902702440010838349255853562380401206092695269693700475038832188471579453875202207504627097961822116355799296811425432333847274338014505697959133195541070968832836276758423066389351282821933319488912213415840799976934737187214341725259894113973127869444459162619301090578374470598544426025894928103179148161237496788350756101648920424973416293999945044655156929979089067489173724981211008640175378192402260225214567739249359086248792247506514614470912951626336754917539943376506314656707501944349319982840027884013978628481879770779796890578497175214114489752522871159411074709344180507656628883040014968526323901356761700090675991620807740446051288101121694586711542827784600626405431303968277927102332171964045571407668339562900596087094303770484623667733329493717993882923453464739236153561364602794680447851743623039631829500744122704893663152087197787496197635477867604027386756393168684568128324738343623182708244344229899326431887440407815519206185372944935868867149975879568261763547045616463207928192340721129761539952912227141525286158227643868141971821597056084544335612652313998163190899308441412223140936154224676516113021188614940093688359472481019034827879352986581373979013015873906376419320673647683221867815769375022468339643945928290021284954748791083955638538381766581964637830968958251584252863484099056727929388831717678338384755560137820710224967247896322513503054095112933784112039191259700880515144090483749684264581380397135543155588192120787776099359013802058708485441885606911822306881661843731106861759443019245918025118730068171584830654135673022648115454366403616513247772754277204580109675335331752655801615441483510612350243193168214637951025699349248719991293635033599472713517794775265825994457484108212684233056655683882485389776499957808711378583965896746500431570417446091445580968502179426896710573178324029348116687902285129758319332238087371036264776814957398655420922123306898034247187910532127312682636944167245155249005774872120857018018147597327853466889458747533375385755508441145260630688309272102937978049797562371297805641243174619965538710649377522490372275659901465596529621243432822187101949284828876106720916937116356008092869300293172784620455100496482818125231264242783030528140699060090402125935433243633487929416310053189509383733807030384979030227895728606677904151791840819336477699396270733894940561408399825099336644155532302878559118884015110549419982075044024377119326310898221846866834141227240750552600114236657219586039040147211713482697621193133920632419013485429650207240656465263345467688853906175834765032013703305671649317822115240254684397707084130584244181557544253564596731848548347981812555173412496353433236079047351897286206315863397597025237693540429357280438155406431101906271954757106024189540401815300836346375684864920117479390716048567137483007348281433960213072352308588765097416699161329037184424323891738495676085887609372764257945028373329394341311637770089453452321152620433112144963712725880929274880026289291059057529327592846169024712341989410171671242203351460926617875138290384042448791707690462443280810917617077498905238235733661811441140964541934544886176969828925536123599602512410324382607070951653618177967647817408418150731571223810624572297566909550392756093851204252868139680810468075353093452633225603987218947038215892093716366479203903287231013787940689911693181424805139887486225159004284325891021764123872552647192381373130876387095342166480964618404903918189073976191755554048208989525353758521592183905527111465855235258466918378519693242430788971769618877691963954298300732289427557422420039414354224906046972580983018473357633297502261132390275199578118087332682349662271352521228175706143294209248752157004258172912673685919320080008122978147684675489041387891258339835417467668441480421155845081568910905276276054328657814657408552928479284275451077701999287623373467662905568843680558759542567004996844276511141023207679304259555107081510381530169527011189245549292813089388896540487892660337396046325116717249698488850965547270722063844733495735413972367108401827139075930655056342193316615587545272264108790609433271786022125081280817282953068078997399844409345031008650528217717590373995603701007900156620551281696637046117256790707927822437197690056886222539621783026842125746183615692009156824607784355360322837728715928486875971821296094563871436293707482096493978247138489678432437065938820911008925427061922666035394430991081412985567290127946574359182068378093299154387344224168914257861696762851278027118900602736826432310996260631009282732913487986557001991436462611682972886316604200861472053520480273009600193583081932890383927942127598232654659655278907148322038198323362499348973569383660078684801650749228211321641632188391095815422629818454702034681292150970900251419807384947078054813897939735376720485046813046752609653245867955728968741382108910632704406249165794655174291043187186328566880781625998881197315931268712909597627156280934217097045716779468669323901171356037014251376029976181142547811250865219247108318435059909780330526316346563742082822229404428237104609183927223056282102166590922603544788243809656103450990190601630513762230345800635145027557565292738551899545761866239914819348667933774992552633499706184936634158193020335624506810266936017782584345509280069160514517448917911124669000479580536478973024734285052094903967686687220681451172451858290018342733571445852466823939356250945939798060121955032229084250494189017201548991414696905256300501856308163796482980482712584040541941506025757213729031497978596125765795869514266275675263814368514132642290674127952571591930555682661474366237479393567758451522969707130363817289140975738007869606773758460073474737090702724126341685961000874761143497240893693094381621190613140245102778831718365113674905468107945861144967929988027867657890558869860837974948614497583119134966904754835833462056344862087188624579779219177931058045246598276935127390940590173419533215509753939372776243516268549944133820411274025415833379196173015095284714209419482096626258852583494469498602322640738521938339542620005106360595973126695090512986218855753536731086163941986974172901819844110043410936319637785700722446835927484494151804666989964394194377410001430941164316279608171818695313336205504845479967106578756016091445393131299389773644452151708492373225313386670275410374454849978765425120013518115940551858785959617937868044789161244709934366808496140072942538740204159413256674968975416465627185441017837658166268691859805301784194578220710202056347009531599097916747447324707964530122551822676222206506210663449184629787895934923889803653467241920075513349203212978798192909897675984881463812426724391136022757219231569808012701565381370800895541866595460070124743313750733003272729972131944667727454860171242203900595962295333472879812460177245414190008065023556094395704171948465743874949375621433719460187547621284772002797313573021730598125963666783873653238082917993573990799136867614795220750904964523226559936070547050105608116007806225708668488444697109134296355761082447701017434661985356648787786037976916239391110277543544340588650459608990437978972246411656752745981856882010948143274313835242539858390161223262853369303279821267197847676472789031347152037408522859927279334240716469584999498840996681423160626837552966441462681470298873327348249929978872919770967975248850099151728731248471133708757027668223227266947562144211240992945499792121804636387403793694030530742928842165625606237881958662712837953729432194855370972018783273177983475209408777394659310806458508054798053755639840934321923172597880809796087775981788546520538663065284884369528950724759179834685662292893348456570183431670765926304661205030032223828634858292652744833357576609350947207351977222177648984196297697494135881335512510144499115140362261297895359299153780982298365303333373233854449966518632730189792272818350592294901686677642912984738405612026909282014954583163851195805217082537077045922890175210127796401185171967707298808480809757245617358495390485269049759786368764250861614505458213956272184819432332266665262541604064430269620173037819487157840152074344542431198657828416351615996216869177213649662312326197025451256379481627855539673671754598016095467448646168308864720689415987637697886599679787970306980817259855979077075781060304871997869955856688871216423314084916607225464621875566806730629902393136327846349934559051081648127447532975447117765139508925808938876086787391460543629805619824252372361112947612044272592950170962517994533122385978113729464502336471235849162597386229691070773212934766241697278814786594178865393281258753796402149851600981402149946997495761239099276284232746998512062645311913700688104464617307181732413983659189308170483185300351423760095038026772191721226773057727524281453287590498831393186339750099641240641023113258994640799096942225456019584247026816350339639794182577345708776410117992480712807831415071509531634552673615278613546282185116561416078450720871066466189366460418937489460023397733655657846153850960702301875580236920565868292606153618257864214050303139956701789756533329908646732992022034141283203455471409964808515441185099717963310369146283579027922914159656985743233163218490059491440477231665628865486779202398417404990873088550366927677893120808595977108582947390335243318556759416377458171470396296633717726822626705131451064829197852184673497223345257437376048724585044034033036281311832654162693914783734967200184730383904253331865963353931548435663134831540137304900772465846575671171102937408217025725785199991908904428691275136664419431904010357825878365983440702492184143611056579820905361325794655536625885898812732705810049008663025120263753358292937211874384504558445654736662675646413376091489051800537307045397913414273821522277559689189638846690342924213543708120895489233231364134123457435891155037693135873946059815481610532754105838229997641076575019405380533636672673732526311446102278837198596677322595929868338976828010153211259905388070246091173138734430528014720264951732360748759746359507732272977729135607136538258624733703105194338817579468121639726588117203383200550922793718627182233354654941191623294542756126775314313003193898170552780006896665375188722766954231376432882381415395353411615220368373169188348283775065655447638337102715696166379931471302172938670694048558997937493057467608255024153794530056115740951559464197525309419066925581739712031849444189527267920622517127718323836430473246485531724762219028045214480520121452437836669976817789888005808963705883461615162830921408089672508942053691276775228937408170584160104122966241868486321540020538517560024284364960262670473391722931141404048471692026206419058965607036537086148450454159298754029346399360684503181490179771874744352735156470949588349173546358313890231325761583798428011569751183312490327177014107339945676519219190860977942340197692475649214364741526298147869810641902990124530534512836078621868394097162820770036523053679918279890335389172941278693091603812748235882026694163511305356020526761600585882425745465124498355751702841775425358531546673225725005654670897070043440031922064412739056376399299950751677368785236276063415522670941701706716535087834645718989819132604750636102137139095718399433145764352634015892421473626476692671022656234677090909555211897063221290854603118726434032016481892334290114006090791341086007299282283594995006422078296833980486906069324243855921331332857845157131610111407960004544829483340584340263803598750488916613853446478501875369579713679219019469966883994077528053773696308702490243591791690645269394933820386547696243548835162028517819701277534102465898913690843679574999441187497348153594735578290361106101338415338933400662763672414930825668970526266517228645701536685838478978186893177318738777098930345524112275254662483896430202303198178060577099443822562539702022342474390789901467685869185376314923034175755033801790029810688369341236194463543957708273675507572743266592102381427392837657541470425348382371549494974309005067860912350483510407895891591814349166288861544659808785417184225869452067691343043672606381065924390141746476428438208236638574605607548683396750463860749103315664198212347688769359591189796198973235476851811120871991140129068391491669936969958069009005770541658134098284533989820015912065525897676387681719950644131262866515830730881246741698223649773745786265177047902057318575318547697126014185109087590506360152324206859504010120014568847583129598683596792762674565776199414198264718300150957623058129406064605559592817542599023892927557272717277753789107713543817036621938767385403445948545937338657895636313762179042826535030572766143721298383427443669267628475982133708450081467669837525855174780613617582887411050659860446718920952576639408657424288304002049537783647721518560813150668192779521048634061328364476432586766170619830186034435716908557342785959081049645257591425161702367859490918092682121320343033275128758965680279817633988593817247822077089838327386420103105695285888885096694368826535832127203623250384757947379227762360900728747690837390596738829180511276845988925196118299134217973852103358410897263784440737286868464645841870056617659749025853033888809674907907454375956068724535176799947448968589306979674018389235077829685999087088221454462898906576310806720012846089119534004138175976088653846348071050038460336772665159753294718533389376857059279402811889663666468904864477238399897022833343319307406239098615861788443608803852128221694662958756799917229627131726283112926941895153799181596284411607027589377246430748002600837579247353045500783595814311790481568078047114196985613922658142422581759469748878043921323862891059533899720649981435894144357243319401257748822118476239276196446599522324989244845595081607557807296438883284186959376994119947844488877537843765426961208728993820819721642281159806420511061403863910346303718898012108355011565596463762310501140638720706747480088926432454545561890091873571932785503883510606933115097701785737971298954409521039938119510773892435931684527120797583470567166483881067837877241638350032381021455964093996908266729946157114264287697541182328025433839040007313628779967196519526555050601028735718352739226141295379217058188956475433071540492939641772674838990824763701151203038328975785063988191894295949578443652768939348611858482223792630664744480090065559622984310956357658841890285469377888907820048495414701689679749750434967723972848901496241811893749566601751748852676973293686868213853184371046430012172493838183781780992598966882615331585428441140175929203001985374312078516937542895794803361987931359930015003577181718242295018926992655662166350542067004921069500283067978965756911789775471321102822532430056399116584064077293111541573111046549243647654210311746610868118959529007271286723101319217629406968672926634899326108811887967877843551229969409119127627770656758076566082835834153108725663293166751729576085836258093399305149294424389465587817184602882538609372308701772188941668727786607265145599320087538621487976885469003851467315660262054711248333081242729392142221932203089472838435214716569842583810721778480342172867990752932820140154985174701616399592104604923297784169925834972687709117328057928973117415769396221683430158022064230259399935615990964144708237574798042702454536427892864003893062727413279221486781160779542433487679237903672741412566321887135579062233947721411497442304954520813904639029100487309103848993190289527918708773826199491061063302108722395107353230546592520496505479227554519228211835348472120137013043586647332197424201995418623484725079953578814680759570259109880209428660978431903402793490452299319790281649497996985796471524019984908052938875946832440875669191975638334908382261220539058721628668303722314842908658074542700854747577184811853682169980437115969467943633469926811654337158417466875110101837300803355573807791189551906597419382859590844406339992248871569103337525712838445327054566130848793057034764325826950734924179213750177640580432017414162861716342978462318351926647497983689158206092428201587757788975939729322142587892680730615934734796023060432503934493610314284678332008922404395853805932460062873949058414019556747999607237414304730893736237178053174523263225934690121114853634831857474428554916093852073465830719387875691203899147240971065461847199557684293496469180131708359200714951873808616983381233554587981047927929974548939120119509260056588857579752872285271471922353216512382737624243251889842466324448705786271946325135114125391974829987149251307327599142350040930540113477463084518101554819979125733180786495694789846312093068574568859732071720791576468357838317591458955356438694984017057061753145456525109595024255365549774672891982741277812439625781308014231628351947806220215745585389521062003267340568686284579707661739072972795216026159378876615719276273454953569468217142340708756554600221306897521440296332810872002199921640487765058800057340906566170759920199577903244843306528602910892679095546561437611930890872710757733400880962977166009279855075470970427057161212942898435125054396133272826146241268869336849577096844414637883728833068897765042631786692316845096152860424729521833273155164087350010795526255222432526648600299086453874886642851615629209308423172245378540734953560238321627034640627300137073304851330730186921638184557851588496521397468161011294620501141670202165536115503888817430809913708348115144520077418035136806658906179027410074945646025130936998793359571969648864000852292969290274446773216691695154496472705106918386896054021210448383408455614575097123668077260604780499517990449623434582342172928671433636302048687041951002287410355036731834379053083076352751775684674160736146118674355451973715998490783171029570687143252460951459003195048805209547223182438566567884709130744295452698601515725185665394547559015574989303673287473378420890941925834476934503377467125653183123587193896263507355929337550241621459816180213367092925342585360942498820172061228688040726763227867787324760883960537395908598288324892108404073551672060550259149616823334835658038719132703474931093931670784094386086182717268635545100856581800803214086854410986741525234636909837494345789069691474307682388468569388158976296838309545290918593176030933052180298768803125491259428309646830441308351174317750265347483067920950295825114379109207591850044709166105582409890406053126639417133904202077490104264296340457879404046784371047804443169123177669086604577193994039461071450324603953914067646396199284028116335731977563938682192330200519957759029336900004872545584918027811421139908835272827182884463122473081774808905991088287124071316272512388624325413238056852491063400947408483680456865876543909461050672052129583136238818903576973780068174251992846585204495922955691260968759073180597211980096171293457179310369695547226114613620368704523091424502533263179731395722869061145235100428127008834449331876666930951869207112355731837460597715711092090869952293234672095308413170597117494391801086508186122743782619697820882176945255506758042030311324129888105214283478417470266487857925575988316257527000166340436326476791908634663603329618507674127362598959982899852634618003341689048075501219521835255488006150985828336921710661799087471616741097873430719601022446989857570511355038175556560658419537556155025368929902514473705290772160725828475657262970536550827152650381557746277425209582799761695063029466839133803114355109977661190364761927112525739634027076295392166865294796726148141076563346054819155038195332595375284327080759263485614026130836190600683778286431500631761720764921104519673659637075057934263857906397336964671531088332969873087635663280606162032202684737062735760671580252008393888730818555657469814019279524706484177247376804332807367920852187385970662625875828428988525138506024875796525482542769917067586602519835215115958906631523697085699062172066565596807470347521812999503189361582412813211276785052970399547679606544351552126721382511091524503320656845559914444829252645845610136263732084511181691136784298228940092211014624326083300662698398804247290675843819804457346837197417249325101879935034449646668470799826046354482437192071721935129473569726551522075625880903737165380251092465169632559151597293536249872091596465947692129418077933946179645340769436599889194234458344577086183101581221461578207845937353319177406515034696129199336828984361596333387233087744099875889191025274631517218296546442440181071901544015865303544777964433021202492273568002221530356012182470379735370658738611499729256667311846669017662654289942802265258468368320283158848222466459141197617817949821701218801799678085365361312288711201264584296348039846120291473424652293803246311241958391494956379520734383780811725338478094698825633928330270467081390263420529508780941529862505847160916298124148178727010834174514650005747760247415882642485248864798791174179525279941588305201531561789339119704367853083659862007839182785346554690446915890601451967449555283426535233733337382565049277624512757265339175412258228871297198154250175988565065966726150328212283830394654902699906098827327788898133219384823661287071936002951179270109513313957473518735480562941625274012645413244283001583979190474739799086557167435420649617474957019124235087456167819904395594229963334792519300736940190181900591761297435026913362533189413719839469505732093156270112231569373150373807612531007943955006377981442930581858291484993272519636865427477314715610009610485859179923108766811371813520067014688710949864744764431183207974555068770886355739619931603361740565591030482778093073878255142664946451982999089060151270724616783842509379010828919492780279479199384752539666422115983791882768410553210707198418146794584493031941381865468331311484643000758412689357025821768452756303786966191377241110185475086850199995978738266492448757755543035196233059398269038425833175727442204121116191332764006817990157143241224026505522270174487391005908099077079869197159340691424048350533715356214287636885572629848096891258416395267252734530097444621350024914241708134056690916585392891993633734464604816245751131016167610376485825537820542048751516346032022034330043338437666337781023631873365686110505708815038374670208936307691895234690455394425945225387709265755777226128022895203209026044919811954037474685421364055522448625632599617397899841164313198314111918462243782792268709432771915166367034135127252875444849815715188871753152157090431713356144826678881197222835576376308213725038683666877335557615557291009561004265794571250766160931245586700819218876424761504716118173144254297096531338471016011455508551853551234498854155647750359640135934097457777591511055657342424129567293465317579546346630322311916361654645256829778102120827439521119045198216390940868926466117979625753450515721962935171167242049262011115753237619401562009409801092292796478651526511436658960318381642849171877504569892866179171925548017051070131038883430950729771815397304186717457539331609009889589387877405709866509046003774665622771480125264377950040597940722376503713869188662021487918009534288642368540614306806874995846258874071615847960694496607034409338794512474976959407479292692107062299636328585687622012969160383727816283622713452712614355903753853127784057176715139422440536008962316832452535607157939350849795647073218164180163503011012875423524367066868822711747942034611878668237282074077764950121926828184368859310432271675842976469825097348454146296609483172421762718410291152404687888090474186051524939741874952676215977655772566843383241058655264811110581609891252576389479115111212986839710716739923427245214666271894972264631248244892423288467278336082802297541405424567924727181514339513882945193208511350216236962293838983024673694887714398005762849682776847017849996117474581952506859658597420225549309139959394939552870438324416628884110490129534515956282469337054586762504554426101580221742100539146711853195405676926749748778779693753991355603506250564112473701822155661401942918851251989130047937601420734254931976873362029067401558947282992292418765310415722056042968784359952434220429688600477709380804761181771291096033901686593168856326899218877292158098860050248476865315362258431984482927029581016061034312281689378293688082346609174534979097578689945361005350251102084593529467857186526500385574438698238383892480828696296196654207106136027252179538164808385759189539499847116892863869256210486360793902655832670811270409944771100240210629661322977096893462970190420834739857665433509249698669026308154357536852076485828628314510119031467608499416508178333559152813867790138301647924207604995994373011223621363410740473692245040119274029301401075570078487585999601604729670048672381970020979187068455685597896819535697652693193496982215801065856170012859118097102798487838392582609685273216176932012112485075642122965555574924866300898896086115753939937029013445709250473730955224596323930466915569889959066731827533005248670121475376037379783302917994916096619152462566693197641627086165149243572833469682110349492396305443844255350756080629942684096086142767219381494260367128466540596430365458954377919045248072612733155036081280707665103868560806027352928740494193146603768278597408696382916460908221007741902921411145002942895575088081441719997956995519264107308919109789772547790316631786308801197271390254756374350017306547591373848829024110859734187834286015735235285238393864035659846615505685165579900265688517178092583889308246290983720616565510210028814996184162518937122166412570640415594577618836727780709274641329711399900788851876630191224634157977272093936195667397421632011852737320942935316301253240648415362359208924724491448165463037911011994885692943170847997050968661889145754490456981314260815342633675806854036350849515517363988983857143079416673133097104308358187948864008428315596391138805857227280220470936315398636141690169141786830540044709942434742951623457243056392285286341883228864039738495279982676305527129133991564728601774938169789833634763420343275157895206102674178639710702493115654508440721977767892752308323478939724711172480826167144460200726195996112945199119264546921870856788715816971505560865934914409612347195346161377997073297822666546896464939837691081344518479398384111475106708275462597314838070833543777609552974399887155973964645837804374565128647223311272004241600334873855260780674729144407979876699545340027668642088914755808386168732552905751112355394970303334067427760270259644068574950281970785406420025167377720028315731560791633797991189469674617279876076131441136509910152514927825993574798346053000945955094328006069314900608247327204686857748688902751334359750727327425289274863057910050503885582654476051604594270489035880289135880363776575798365491614424522270934903815581476158132714090829453589303213006563732297797954216873999591964261517948385046978363132547054719113746473369799510466132931988302903825106577325105583608914153976136470747890586561992966793076705316438417514726643488034684711054447780692231909599079957192040349399883762412559557785345053136404517357138101606154467845274575786917378614117980944000071109043315265813039806310080302058184116879872966505511420502718605588989758938250446298675638953482303928864877013284348338579621598031158286549835653161545187961232862610289446107715558883455301204777248861638737360509507441646114703793420485174584453286345101210863434453788935170683424868032806134191156275688150778325210540707468849114698756278429752327427039214630190619815714525072118749386473590555429302700725461271365950790077251546768054309016882057945557768282121245459345786739403387550455525438945065345359674695178617388497839613438812261066420813908923189652251033256876126413801096724061043884419702483292041559015298751654443927766335173104206764871547703289727769745634774154038736192745985190542857318529993532944427700405490181466859628971142143342790510490825333766351184365477006118735021202301608187382100991917962119028988453526801525594182769360352184770461915412697946785020860979628835853009150706863206421117933647973250980131927231156655937990989969425138279150647681014559292423514748840324988062334718588681800193415165215711809214456332199666704945325694726230354312185639708347228698376896250192443767245259505938651350150128103902537462694601254684321055627300775939350564919161040069287092473732124242115907417042005369025979252037844060037622732583709065633332216087579521938201958368875316856693378163299156380639025626126401248610012870366602167151506169724813348183244611632855723410950114346842338631926324545883575604066731855830828693099553154538441531454502759828325784379259527118656191498886453941776937625977655645519171951891453556795754529363051635268800380196070996669197149272313578371145959483895605314484227565536874523552983886938225884902548996924170296654219213108291045827497283092164933297545260820196537992935292922373683434230365443944853411829001465515587631108678455427996481496462089007033550645424035150453666099587890299658495448960763502707217385861874189351880053447757971001507823786483191790503978489449322709168712205056203540428630793175748452931749724631405067890209867027799726888910728824327989119750513281483857668527949749796171118937685347564824731571620560842246958220891020275961840057666647407724915446316869776263672357218317688985665577928795890080290001443014848303287150347615236077388950249448657443196496511372916337442815155715775065302300979728732925737574338340928032870653825204628643959507863655960953613561459329767152255651204481318973695587877351940933748100975330095072060627100177881242328351619478744002451114449025768629794551598586740030740744792597880362061663460409549013093186103863338938555193201704172914775180008569615014962663997084758110811621705788341850613394774026071706549848925347935713234039714462952624070434027214041328920294257817597441808662248890148576228013289028164030969833097351408195956237146331719387037350188103151240470736129075293031480587532583764533054031859977166154740281342378803521380736668700566183083997355062618178869297803788986817840152913834782888825945033968178868877509521991930308645853395329083981630175645452274305018343956422285716551106655515019503956963243852249109184715868226909432808753099211307391619355077356318469046054033020988206824140020078228052221059724428269443925365995055976197919309858731324125853449549416396092942853848457489211281682697056252463134633023263484855081327540340739348921531462354382861060030619755608692302823794589929656490438915214314179621148853854129192936569990518972887122548006092751762293565803209037097691831146241057118816042727892660257075253575307058674723968752625119687083187770660704148742951587301542047265260920463238092904693709487390474794968332524702377041584324514467445616762970728689130024676613295017804578942601481282390766347001592047956431190051263843602716262064538808440506762220585545841331099314660739158368482148216477538559814015077335133139186832539807750620521814627165228705902878090224127259479196300099814550854938690849153829198355054903198425044944236981628219780383833593571506403298628647697773733148022573662078054111561003106006900363915551709122439653007758010693289312361360995261902035623056809799487923076418513286997066946760226093351723832405613662298029269814216239641340254020059297185651544434409116951843683866593538772554925706322807257113614384099295743733580250344317770511905082484519194616800377354931406235096876040272581434548925111623703714902056544274411393751111478393414517761185074724063755620053236304786676958263492447747409144749186284070041595396368757458051917054285072886619237252789786658038609485855750538491133857544247750475864912211054804514374744071322211092395189820186195858542159505318214706045920395130267382304059739825115981063806993844807527383640293567224337461952237605451168643607661037057577032958456736242063456249148566786946963755013636373289545448709276335036676935341604797251938122681601795043063448813916946201580393849135241060974762129763632075029368080286094860682333954336958541405514065486824848214205464826625775775943208512502135765627297960691018495631924204267647156105407603537647731345944857075928879238928227643259313859783545986280208554071763145455379009529080707820263842980919907420615678122629343727802092570005615764788207544340583171967888372371494465673257959847772051335228404777031485325368343776242165061308657000744634992702210852760473999148063681171282294085917216901190512959461050856059075926126592891365161896645772143816487387754465281093071006648772098286525838185696685704079023008738017121214433367619339973654700712844934829959431315036365370366955309844536743011016827077835807780464373434393022601326365273454229534750512260895033020241151637155635684745897425321137049212453741459062671176152429699908319389924366550473600331695262661106656860665204829597981235400147595900414126561459968468135258796181266041887692903328338196690126694315979414055309196382888344715744873579324066583658062607022578293439101575494455435735019667435879985568656202271669277041655611826434721724247627522796052938830449383592979462733506117195004099705783414702918479144120099283092191068007909440547180496637684762684195426234128990828910976708725201382533234225355726392033817679795886236600096823699488093905731751539839448966761088960347936769302484182492408648189784885987356366272303869135315296106101084512730025797001770618131157445215702468898364925704287105762199180234851794809277857215092313513485249512538779364123834055258740578344862553633117365712060773063527615142027070858074846131197683408479410098944660206468346891648570675695070471858685874602440323758516093206428023091265604177677917737004006623010778740751894704124299176341490395673709325949717129178951258548890890697448445319328221512174145571708316844458936445125921438339066025921920993389367343629522417991482329457406233603611563984974314074970666593995469421975632155104737673332591205578489896584911694112803299248429115147437249144509051695025792069080055046609466402279818715195532675995700389809406907638443666243739048439171485812353125460256261135204189925486157987876205981356093606979846554140221883108542354633124109187398050020247643107118398995597664127069479530396479188689522477961671008844039102848229016524447426334087752110470727218218987315224959861553274967818696933216488003706321990502176174086080849519420740713519461361392170431541119475309678832585676625189441567556918479805893943328989177178059971440382477899950075356219748794790574396269417522832434407117904915641001932011298107679761531653249887840642672026315702133058617170185222571343816276835586386301531378993227711142802421577534470617895095078419796019088528568609083981928824379857262008951705448911612039996974622953412248887131933018842128129495843607768274232840375224498760634594842441722998475597098357710828944823231316612847145900930669514515003914970884018469722942763865448114832311277321312674500871161622216923017176122959360148800780387316825185920852484639121075737657138110295696792313617926133756596047270316968534067543455154441251682567147361291053453282498879806369219968177267787034892089103277429049760145703836024368152455935923643279626835630917666882607249846398360578708888287773082696452419426124085245612758253229064997402314173991077261162002208446266924047310013002990173612749789921596868361166308426696987323548183557777389987473083110475688364481143157866406742187265550506747183215576481126441468600385290265450605676428931293688316274776290991429655226623609621505209721651451112915631079996366567007715254520905249081294437727887191122162388187440793755799008040326170891767972339083479577920900261768997773378568772650874840767095458760243655726321792815306429080195702551548228638285160275744299719162304988961062296267128270214689777626005912228761519669806288148830231543399477512213194619818595613759967117059514676164994168563491232170581204829841577418170314094266047839682160887113414430182882840243515998510218681047040544070704535091284209385743029626742900159956980600209317543543097980635860828833902857051918959251129177263879666892032277090230058948863447710728724354176906364991076272240685425425221365027223478628233526369373839243861012324991263091114604075948660393882115864884780606313821829687940483615536410282659148880861128996662456967862592932351534147407482543972590510022577812772242783186440994645835817014385548548196559335202920338299290427589787812657951649837941050980902551891639308830700458229298705502193821926398752075752231017709700030742557466620707081800744352679770629325989836330233365875818537228303516578046599553370718848665526937793975535302959815456162243143124009734207787157356806856840814351125514574280003544155356250932995943661931659837468562975941228349717421623578352195305975611531745189126282888561523566886093394095868187602567741809219133628295707991674677721788565801058898304267697083436109352874723044303069118319212148452994799119141854004347788253957907195207789755637438052543660508893239251946915541632907825927026001546098290301959406517495013214540399003538853394309140457748732756861570884493560113438535749738081375122242421263460485649017216056294647097884530467021121791465908453159317440293062047474363553457860493711863729445396524164509609418166693910442447631482325483323518995167537275198259075040154282575008175384921230791698695110038527175572154401343332636778379252006414383921875818495744297057450949699276485993704419765911270953530303211436657160572802802525406133813200047490027680504101329257255498813195619230594933879365136839379439703959574042166856266479977258723638272976434866081122624077564462821207369950718107017133162560615458454607524091820079075972361478578648250225202306851249933583598594784269092545586148467601550288873720997800027196905386869697252970848339617484143888609958934300963064605473026251827080740193140141112426774086960565873985727379600237150749438669113565147392286050196655517631146296521409287361713770159697649542311074792800189813889474451089016828620936904643674433205575218490113125560866279351166555866480559702768815979142848591108289337564510019047633346995969584777732232016122574477693422331294728664911692274577603891634944526004451429136916079056423582531264215912296324988855062583591970281251697344388964827532017863392072331492077675593097690987122417947538691517074187987953980037656393426078565513299821768855814266746658397964493618734518108480028517321127258184085542583882864451261274544016220821350954062303457964368705031373304942560435764007655593368903410682204614656115272748146976531203680659923444192663744040866668402186555082058027687768307931671438409369868480492509524015153165445875054617737578472505146161823723573330995327350379496215784513164699763927474532957102168585151517651989971790006197808362795033979699436258673349887270237041676943352878639261279368177688456857299286385691081059433516822708740700951924912633329583593056163616014763019404244722536846397592658443958400014930592951515746183456151102390098151638043412179147276820009920809512273262858179633666485642988523036302676081873863705270011481418272342639640196693699863160978589915273654881062542544544300323639363985673796230128896785250553206977455640216414464651924846242177530387663529838088030422591461255950948281499439847950498923930514390637376512206021071547023645164621240969761683381219716823967032207738389148071711140586820626909553794220690797216673594816653014866368610979492284116450262533958789606983615771331433175663909477235887706089705973678783098528218835334148370335060106519783645132153629386727692931116648514069609363917302271433034534311256213614962017795031154514274275432362501279693366085647560719434035473200898845894241189496700410743878147490388588991018916826365379462521725197148017162841709504048379638992981479146913059468747758228273603285489005503531235490112755176477708577292580766459473698707415232374430519607936779421718946929032806072908426657997329739337417601518434060984678640888200551612370524812209842939349792831115893847638097696733155134468321116091884407763788037440157323538484924320934784146395173945538274008937044090132213913114825086518902427271210325682982949907835880042939246964249716683371481084155296914722350735146053135933128155648748357172465599391568676898253457499262528337918899568672696207119986335050262492427885640009823574011188804681709078908933211687950793550395790391243009848797065879150159693269054825841031625439336949279967105577215247607365414566286472823482102378193033467928691053704704584137270809220902819320856951011083706391857486950479174923508897811165586506251316828850700113538140804798549330749761929902882881998831665468257795316160335525426070910154381643397700008175286189932956817575228631370775626056796700855519947569927188611970337514030503014522573366607510097993271389774712181493676889465361594450722371195492338711210399601106630289784072689803213276030211278460903568633183120374861511898302392489923608644466543818276406285582725907731272696913436329556662784196907375553652927249885906064903066443068352362648600509118244466852703134007528044259503360699969987204656117352272738438029046045762843975342829341556647321003630643481380625023772467049414227288672746794794792388566384559025762155053728971912915253769697534468576964103693194479875201145445995902030346198541596936707240634209166354112444208130489635621987024427943298863351100402875967183996074599459310485105637141801955102872068760761306595232498761885530910254051415367946523907989169258361422670412240884138697563216335617633640173203438431709711340763152197524139974920356047644252430804828956841864792292851647334673539405277971458275579014973131938156985930076910440240930386739427677860034229766924157901132335419914878900978702686709238671424209935425628622655987781760380150726456284442800702570837168664568535588005367834545553183348283780633731865556634687795389963742651271309693309602833687773553102312042265275703833594145909021722927963648202586338192559888367535251344412400782419969393339971553837032641807964722822453604431487551618942425287696826127293812189520496746441743304679403364686490084413047993992002332195464007121929159390605836006901041622960221785813274960007056866827531564961879006627103805656314516551553595425592426899134975978844788705459479202301259247925958257438353571646812563454962753471603216303563119406811674957241383953937809918163836464199065850193139991183521548095485854679142659057021941591950531835481252537154515707633178973933401675762483514524042341529478472982927528404584064508753060029795646071533622972966567645446422718299515073931223531028050942524342120726491755213185420084740331641505949127454760182233531905984847331665805639578619439953286701725564730761645395941240429836570083372025311183244526073507312362999103092103141716923903312070058349917438393541118065437990476043565744130077629940540061963461225441399068222668930168059655987561022582308576551332818076123981301326875485948669702280908070854282368644207836583406379917609162661108846851349297092223000084781726046059668947569327069748560435619062975436616367111341444507788783075145795415056301799224953902620758255970757416769654612234515811649690005675658273285971160968166480510541521260757189088114030451225207030662983606096119872799563657709335044633702648259883687246012612746432707408456795623199972445616267713411584292383957704680372685325823593517284750731007616978025008252412980542264576442728330640338650421072435592150958558349771053548064049910293025168921525737113190875226401058727744776768285033439926162885116476679753787474562452810278198630584593651663680583564655032527193089413989517340444474774469288726042965826381443851971551149609360992728365513162231407077991363498190850772095390094943596096016089892505836297175750273521770711851737086887205599224911319228428532155548846746437684577576106277294286182902177255131355964099377308442481681149790616809680611042016296947943227493575499580455142805748300549756883870607706460842849393777112650660326718220587531150375414812347395711207959847565770910258495493861679235656535291700004864326136217421343847829457232525406931865950533585893721066215038142483112742198207687676020405155198393566560089000505456669967835090362599515310908546740700857818230028187047946736528727140332221000667957996656957493237263382778428482452019799997938734341386875765451519177378959198935915607475664611575126047540613770686033500646299925110586804028245170196233285984927499739193732577418925250311529353485490400310562136516160076383166106043007791351254930273279389668470966769183834187213611374673555072790984994632615577765678591716539978438765290936216089655974125684953961613250242201862546552467537605050889162694132038393131753595845338132524975824231839431578909012023234606103899830773109327718774179270319785337735180554407199316131015013882541117428436800588061737728293327855163674914107013030278244229119810208576777071676731041622697484972431023517082271599874555619590118986471767794924658274687271084849931984556209904171645920630079401790451296866254764548076725930593365249050841975694953570479038302230070525076683426750737844410316449049003946311931553308660713350174246253799705942515865223929829717558210917009808563241827531499745645986263380837381499095706180738692549854017700158289960043231711652647758341703599216963891937262654391828547572451895113549366801728311002460388175687252702170008053515670519112349649781433239921670911261779328868030883083815395690100037012246142023796002119962620680639088870686939661228635003463901572745780349151381638200704795072827982349936989309722434731473398863032211560537907987750646718865059197502527427988863802364664104071903927653801349520180151285901210644406718184857370057768856879722887377622081976604036782667419381523105513856226818791769809858834568539969106951162506221127696849735499339446384158436780663706758913728861680058082045105348295686026965740104920051044209777800009054412660272604507689776659283869780268701224039910069900101352768355649570539122975843817171172737637031341841856935324052279816860335618717636628689500192667554862946156707271036450783182904844838410691467232947996909948329234153125589246732801489905973201071053234814229998181269239810154553130549413818260777835679215880549820778222992664952474930299825268188102747894676852571883888001670853318766770504451561965151579753062147302648659706247340749310838911350364461038249853756554711342873164455691928192122958803035722733961301317406529135347170902505815183668208486167311620174287444456154845260924586694854336882012588452064631202534366885925659409261614466303639955097926707431027438426900099168745294182652561770858664397946931962486482356418393795346136279401540090317761115666131039474412265684269523248894042398601966339973036459745503499401399766701192538947236727745478880960394925987166662871332979086006202105486000433377488786264611534461469582242296213043020891913623245098426036136822691257097738717717944789425045318872791664491150590473954004343648080167108289011262918642507498262256079105055169819306308340274264739214254832741458213522299162185220390760647839263140847118132564117396370334415525533988857071744219756628943741472631986705729832231926484329669870673362755781137428316777421844644232303340160537539631495158231364090045323513536887029542591359299191758279583452166475182953678796229782232402564350245898738973662929016762846170170703553646277670729502567961084137017672262897335505141033249093073929488234935003231513833021775884837988226544569992335112772499445761547773754591112113763143331285755807324455859374094205237974136579794901420868714548924168890592698844624026695271833825204956398572738380723607225491056713304444953127625072697805957998564903015722528007898057583635327266434265509594660629544778900889350133056587500661030564598757091251097463761976304902599104666959999889987418395785519971646465958751941414109835062549615220037401259535842637187649967933606183121825065726047118168023667560940894973304433599218209034063968699051959054011672271022779093501111495340429919968441138172534451668862565134339113029342866843874944570941135602279527299641276881000176700728722798195769941838131488827176619448388184455967843790731740887252016751426170496285579845446109189763287726456089841396965159773003285463096589008548955106810794752468401564801272566035309341785093888319665212625617720040223244949669441450816972013218906962286322681111414872172236758135789897432355359841641169318815302049409713345775076513147222409196033582499885226435890283145764415505147174437760848506130427460350086009244792035259631433616100908677587816486734118452449705107707527678638108449320865109668178393623507828744945064535719864085117237764000735784307535170724854956752599992175599403627613273328065513639556477497251901912702843571901729019311809461936602114439103012414006344233350184119913425407586434212326565082941880891559462374101267634695309398256368933154323742793746983065929132654517334478557852398985726169396357887386429173509887511761445853988809692463285860425441609731897320424746152983795614896367530457651510805486030525079989211322526603843442741630140350547117598963185221912587045095791418408131672145869274782722616232737282167144391591617033063770687037215364827540462569769485110330166070480467107390429246197352878283901472405981371188531435098366413596766677531587356317627514070225722544294943121806642061522442158797026248105334097747744626479234605006434386697310148214248383597972396520355496951521377563201071895963363365719665844305984295945005423504125078658763993607613828918349005887295728786831262265272959131574114837918572274297895148037062170884818693097687038123214546868783248702826829315613349256312579990303679992309883592612789823826391913457654137669369770931783830448957853977184171637174560570037115657624353520038508566476207461912753052046804556847129626300522670704410443464708026370185011454258525858577947855945496005965206828083480477766197700177988932719815897312312563143273637736168220047332518301795135984615221253974070596952023734309835888764324170992725061528738941134696489165369968279442695945182384034396636559355884511220497026173629845632500723654219409894281672338495125429006124134167483068541337378336399580622313147205708165644855023085024504470977554259187095723117998364474078771085432972802475084396180016321834101436037678415587900190357290768833418718924725202969021916953916246826532114487509248292263498762000570035272420697559067185427494444147775669227364402057471994896263266021670511014585838522780412752397665399268755912396496470587396567704665630498992983184257367492927524318407988650202034967513634866569415712021351786833601599354221756793371032863967142909343879367907730609674748540945705011215737536973311542995968484302435821583888632663258651351243480224692433670495250230354454786532217700110629136713388915939944452756420375903830469695333025406830344399319827438048552707358500370588122334069884261443923254438701895608654330812059602548057602715501095279103539675731652246231900404651045280453068702163573649302929186104951541508490207659685719358976204439049579439433501103457797234757887396530742928136375510880722507348961523642003660610449895008837587044510158214491267750608726401890640250706520230561788656423406984441418183194575316332555503909734106959145831328676445048280205907154753173698167681780428616964902738067437845870118955422319656964723940801816558069331867859624505826239817309711052375012980121189970434098456818547785976483544870638287087153591834984726101154171160223375565818732415657830285796597890781043841957825049231153872156248980375920794682403607781323221035410951357856687551603494844789470985526571209908488123446455808107246667239107343885066521477463373676596667656590706890299338629103886222434374077809881051586522791258171294715175712630000875214208834781112638845415104298334186941260477213447538809743399210068309660171784728030139376037661616613920685044479077347642485827923721940592336594968958831384703010424059554070723559066768029929213559094765864937690065138444576337543162695765276617994723584654893875280567950281840946072031142691340762658221480396340576825541052028576946899254390624340893371709845486142525608210105954677586723498845423777051534937158209438761744208110775469869731491546942630002275235737874895041869069866923019307363250446819357966268171961231446043021661394355800973894780277535121768147243675973723631057892595973569766760155168793786083942219197466903154433220367689043086926357104903050366852863808622786661157733468417203835501312939454255463113764331777528246551720107396098820927701409268991402557290971004313823153911371018742212157166339062137673890964606747382444037421086420724249082940561014406236409114826145385931454136519982187809515658669819210047842882041024147110160680485113788168692919196564721790268417740521209618201648613680999793007377740427244228207777534876906935923829143952747930515966366031933851580187588115262577165049152557969194329712909155422650399307850319193909105138620948380362116874041063833334462255752597006413415690869589598793844143050252986122822883929210588615984669848467628738320881697216587666275956463033244839333422195387870423599339038418563203294615788510227376613824663680910664149488484244713640432875321959251411537549591397353188287968069815580459363697636517338431305132721047825965343212800825241774850019225308814730063341896485965908459460516537550388464851375294529820094185095021112513835092868393618187359246096605096187422043319710183729604379100583399188106471592134862962326594566518431924224517341773491921382140408821445459505389498311741186733872418518698252951596103956993462745957727439806302402009696349550078314433901030808491026144793506251428912146796959929161108669913057370654177506321870064572514828013372957448900277761679437865038894238067275025862302298737516875857089450217410823084050892107051067888296181023885057437877964715531167786590206138310571157655301893704053311242666768093368779464148562334111590233991178047596758388133263134095111406511874520802448113461848507693608770964645665033097914935696203838473335312931340613574414000092608399321347530823144193291454809755719315065729435585025770125897944880151382080219176575003248959010626692384898666088928025698681088256595000885631682435851721333569133470273483474042978969802445111328427851177129630795037358400897734953029627021118691717897608801623213062920937290515698646041931984414688111033178328795156369302711797709896985363523560177263416413209459488469201501371451858534086860352400036435735954395536702418770796441682110780669521811842781851686022949521672347590556375245620768158001567864005375721338236522283539803637237847310499865352995562661441952346241196273134463442735206379464261303016448834212761718710979111618610041057177906211729966713896506466918457985629380035415986033535137525816935027058207416206787302049947340314698364863540794557339875984953261273047428839932861250483357962480145522381686285510472030285146743069820195195829372307190999942099552823189543876841228567405623849930928961468386699933024266660899533146224002883226951584533549522390966653603306274482215335345403243500342420582004057312510551934905417401608598072098583981171520511594993299036947958201642750544385454401753734545819760462421931716324595836424990606559256831245346483074470645229637393182540061574931198582049709914055975847355641756119631898845677238066999204053149092828904120748282262672657112976826382927690762090058339562973709016578308984391427272350718399730415447362765377394722746891157574590766462926007612653957164389017755799965050918587644546473078800002137169478549703158987244665718668498983511226200418844926757767400678374780516733410306345279734400809963814363599262725164778197636293474183379601938046207935756285668697420679951681815125111057756840384496081283731720773464032913181719515869014352071723292560625895934835137618028907601997256402334444641262503748492558261262489228710187858376247595403700953241224538317256427338980024818965211899855746895436221762527662427061228096718419120168786781088260650182668520851390609961120288434605275921580295796093920076714958727117848443508234524505338400322125809688819751064448417801269999434130185494822652306285564738046117347634395243830111013099972269268568826173818876953179855400516015457514280733314642183756096448218288673955944795363997979637480948901301741249230331778721146505889934370502588104336961546050654426178212333992149642515206574005125648065051867580709234135401252735513556008650072336501202983329051577715805911340345082378170476519812436961903319202481378043775380047086256232747951545387306105842951684218946458551379575603773193647824462686289954203997947781678547941397952989713475294119309155185544266165399083694045805408861129315956237088963736790318683082454165102121099599255735872867997495594286471506260806740831339260646145013927954997938258947159786350891219871504837585802043451934239814098474618031016348753720622515855942472689273712792811440580487587585835650256051072379322563490279488365506823594265249035649283006689970040022670393169830627403554163765597639985549648244375341060443697996090424722207371108357227945081580353954213471847577118479621146201258436129931830077579619061527992066597330244164563072662642838425528830196718131468678197968484523309457425698933546783111038997189424823359692809409385068270893568565706202911860155377379558556120858742593571362431696062260447274272718777818139133942191072473919183695335565082633010826614780173465330204330143754566457661975962952103493771082776089032001187196608948226817139461412464819395547653371991700881768338787900748214628311965553715037449273873156587572454927973270368147977540870398541673831840426889584610870081751073391879709080629721245842477198685949057099550341383284693199511593248402378035049211110532696108531069507766984317268737379848332252626815070221468056594888626921775920809886477683408536211465997316654112256565196978552249838462590058456543642759178634280598189552597144350443675804514789639429685866302588982977574285035902468387471701516771448172526192418666348373889977155805709516089653899544818793004085840571209073534863513905242415960164078431537200697058872785943791546194735566888036206388728857206973944914179282356231441898030469061162412132179401327084619006720429669363520262445118434020258050922366419482772196656960284674160857569711757092095577354101797153633153770545819421997961301354096539084260932787122661279173088636351509156818189560855815632305051582657055234776897725618457231794408759690037960649673391560988032466493410225636306061523873083678369723050529904710118532758600131895218233284466364823812464427345228549707137034502550769385756024436901669520078967827750434896272450469033798219929578109119233918689791285522671062393301144836046383855430100605077897165994165655154224665919960336203281827470272111448198504166580027493274752809629861339379735342980664399391975308514929008851896880497829165499725149711568627861024199386771978907307974407195249559756432614675309487447087587783332534396233228293632062628903302341483107966063457492332702161631867157158369634278080810035308926113581790265627332086008457058925083835273293928457170394395366769518377808520826959549416551474703349345693565611212965065127861833787425963954945547083152501459622861094013694451133014162377559350872180415931222562884870399456765844511381759140879738785621408213530242584108620873080860096616733787795509281504485715263822573480961046392426760762346136389669424933231310489718743929699911795099951617582153641513043060935602278447529170406322996971118734764434997807627533155409182494318078582557479325045297712279062142576477781276320463752577132759044685028027865429659078883130347037829619118324288915190394377484552619019242148995640982936292712591133757227982540742603613692939519829693063263930513482995813847596597417814698661960383481640741048083423872765050419900832703722322251606339536445061093491092568685198681292694365869056787287165062193566863213841162516604645266922650028563920341114278178340820872054576267440469227943292722795652059337527697295227839406699338768432313439058273519980491134580662156563128232960423389197260761005916992173252175946921087357368938004064288737836176658709450790342711191973855670486934878938691216091445446822624829111968444169194376005583148662963422250189534901492403888798499169256822033534142381164847733311015616313395226436611193396383964160988554443041843864575987450857467304976667263160345671991761812255135208161987554405489947763837605861632684673593444233754257669190138259258237437427345985155260541226823042709025835792608760747153206035389305420668730486481520118283823761027637273130260355081155980321172828559850336089105910356042927032343983275035806324923459540482185482564378690351721123690634986335501264924445401906225388174608641740224647427582689701553429595434022395965210950967947841116238759501096811889715116982746142410729482446285776743020149322363010309307701904317803416493134609246905892761248290043887150934129034728143780912972882354631993830614992434422944052466119829028603162484108059485522212944667701853705210147294963039699298275230617944155966161040964812261294233822726139409936049743904547381959077742782563347248993654701997910581931454351124780867347789304397755977789622371154174089278925434308120316995861445450211665270007495991658377772949991069234283616232468237119733724855392980796164333264866221856939605938616511072199948874743676208199917501754645990132187583554541770188539455329962598957844223523952045456074037811231249505507534682382971888083387142826141595632364839329452600815369981537547231135394790338431457096069331300261803902862240641826226380966940080109912552263795531893185244323446583311932149826349007091756982197878535764766002755060901326719897789335383658381916806144224879755609187826373304327384738149449011273066281833870810810610552740441498144609479678391260368040240707263976071462810023957475926309768186424117979832526830887519955714238003774797472207902556174374488803206220011936851413115594622070006309431703999026825810419021519991060768511504187984291527272366719221043093269799892031409165003718911760701242829101053123162955346144663308496311975601250665281903200122492861096340770510920493929333744241897230672685445516000151808739141159060225130184715660403615595651373298347592232670036880142679639716596853627413734694673793445405177766753274283057241997283342441218666005437804437603266001518057169208652231990547051586045390766448618322703634657618576555834136333509997231662615066528954699559159370166423761252299814226924545404809611442383589476131208604015006076107393869705034690481848392696854676037860080085198100851318458999624322475136572227259493238738009645667048250957646120127330763285227289828632729993781915605218366593940863899568854777089562575061480830578092953858494149289391620729615168756824330609991140569427771632987747745162053484745401651093038695553584410649967293293528258628943299645222964882112924183034602844072081479015065616380897331020550531162337316287748870353984826838882466917425613544875067471879653286771700087151193113581950784976161572756006957349141181432031625626769773575989988783333957931884295811658129841029128588084069850451146764154151120747245508305757839505950200078213342920330154017957888779105002077763897666007674274232914479837820878414845742236138987238153590065510827190512930912205092406028704756300694390538412879475928754670677153326200334362494755730317868187457152644283377722989871713479960898236857170666046679811241505638464514048805573057251747037990996146382211189681859207375530625339927494304646133449398593833221717180412968243714774044420415245299547250994198153668457310092371969320949640798146916065068467843352001484381314234843406823894899301465203159544871425562321324575230005870008612745313505541741982947937521250863183443769179944898313709439510296576770387866005252110400989302626189053295359411088620953972289568546224442628707199126199200513713018544004705585805245039485472748888648105511995368819808597311552128984287985957457292994913028828208834962346248489781635486615704305413060523299120556724649830440045158878285407810018511515912288613585866570393147610376401246930571931871771585881529073259608992070584942332362209380968995608804034354795975997470415870448273462529267058420863616862075270409873206313691628497560688522507627578675002766888828701556229319990780115332721678544781026495809478101654664291391948234416278933741475337588285569578490188503105378511923323537198190648195085502208605957361873807124397009667144243311229884717544924882970969855749200916043646189658991534885264590859232922716588023784470081063293449839324267077567017838959597813530231704116559437938369229941298126035097575827472168568359742277842004403956870907664144851216404569876876121624153977141499225179914276452489848463352571905124441123662187082349304954480744640955918698438828905775222681244234993651531571867005712030318897003386986232652138598011417772856961454485154816834183149023729697019742776755080452046057287523603299959435156077235139303959401207970619546298774736438574578337939502698240839611692121384748981841137858405614401043116611130172606777233302070590090806936310008087646621252749043025452174117330247836419157645594802617892596667851506161651220787706026579524391359034143069605200362216813116227131320606622458755609619409322437048982233553198829833601161911959857839486321306872748088729360095670197609882926493962111434862713885180213743253716446982002812546488063564991926115637255785892082933268066100110718945711109061840066086938013762812296696169984080389226651166826975143091152369415978133783953899316799936100823973931518165506078986960613939008441170290144881436614332124005696636793714932850765477280308361278655349735694744288964272460586830377128059286706221418903712581405841901412849314820535690847333586206433246699511861585768666517677380019603819407730464222952123200483695327366229547000675303783052992739837336065033130117870087026093951090787358325685026406197574981806085615350398632518180555653870624751004566773125366972986992630359009321636450462877634718299152030554364528002632624767623791348033371203512621966451296010261276803076187296947106309670557738878014497441040829950472655008929518257792058306012651703657373043296408964414345969772238726849943323356742796071666441208615711931416363066502097653207416516766185520324231664836162278185296656142364766236587919878706874406020752910643911458298764647594588254560151895924204904196885468653754382240890200147563551168398554724345715323687152395706877542423489490993505833947098700660022765880314659016068090202518339394917598146174008848478430668442549608897248527887918690000190650281086793411653750298768367425068632026618153858231173124659964996474872550378396991378471491629197157699138246705181879295984155041285172901035816821359164761213378517378920646139654223854556819815200465566296007257730570799403833128911082691919845272480459723177181634293502733775609041072039972441686840004306751463921977747729990724927417963550667380141882272852020044279210467610287685215195645045406186733699438116958160316309861391881278822089855571706872725972109456493691871628404257616624792896076917603768053488069496356274509350056145201940389519255783214365964391605675581446319660223628793617111203038841178867556134241828040015113883155360036563249392418264679015661561994073272742328180579477411448396954294320893799459105469065855802183822469790845059559716649197157702771359849185739840745305146646931856704637802703180758961511705876103985959332931770050374991445795544023369817478111914310953037496082558253052065889128980272429380596517082645360948628726415763231551454270454291040009537014966485628830524212994173294167956979066250984704255281850041664171295058398826001147564700814926717319268790788639685770629142626346138582823311266466303024062396074891431664450380748686353220480272652123974639472775281271044823991898745894716500131395220696718961682911932583020773039605291168501350383000332788933958935542332597765753646164166888738904129729602167708861612183617049911895763694837412080320572439491315972694723291509839238073390123643842715569255424049994673944958133295234490063150258387860022580277103411113761919647663457524845049068667920294506677713550457328754526949783379263490227951784432675084410411778020450194401128070178509925962313068870539941090655689620660404337232149171870382763456306906041644950596143832613588612411942074356359848113007298203887256124617533460368846883181471332630706727907969348707972129773531578297240694971657701388650121732861142035546448600301610385902871612046437033303417650516675155490862305231116342372010842712413617207657846354858743026000726257097073875168667161161413401331681253144566190920169558611437660950338930247707257893427824670346652287998496593455814767087165463351637110113395392997188161518553414488928677817448364205101635467243696524349277303737506674148076666218518315830479265707798337610675711204349588612965746777169962562295832655256747158400650627189973173166808986570660933836500163118463738159013821564789276912742759657419747801305361365762122024030311251239410101764969104805905133000652709430466320912832972147878641414002050192269905643613303645611048503070938551493663340006099156183730915825214588333858006569217844795825218896416507707524069102965653870927071438970271524920416930983121653003759031201628262547721203559866556429724158878338812462981405513321006196815216513171082291453818510973302001419033582758234285801805092954443420931782076658235532189194543716983369204489550770324573974942947710417608239016650839448174773323776150047392348111292186569826533310077181359714326929092715610955077024723354684013885697629423091257474149079057620569157735938134614138017058410420155966392267358041566386548235167270355828812943556941243726400890913460819590220306216729974582153431415507406303348604773973628440382059516331553280282232766628790235060874990285502196279946967525946880141739363369873209576011793077238465650044985392512339612237906062729107810672869504774108158502112995634410332112411930233070554661793578003592075957927550935100577579668313972068044941023619226769580249600138637416866022572960553724542132700081970413523918025160146830116568001310132555037159532708414400694304281393802309849201156574855890099148659418132255186203187732033497216973470211964228592637306206241923624347837574992733438104178775328627784054867972683706528467842757284046238161616413328984866457757889641668835325950907127221846752961330803149030175424209652266703974947826986636449041597892190122341589395625816765485982639794043897512305356690505983495045974474736259306335435738558892557735510529685150257525953337533454778016194437889734241026871485886475684658062803448465355929028461830292421574840907196869827951186207171954529876832099768700272757606946471459315331744640562729978782184890448233084285732200225335250659185700633350120767464132239983564682623920938998322228754320736741412065591469183081216593899876340298409320166494115470203906231913307338111452052252788543879732233995083500485163920378251059404369164901409004038613586730017636307665770193075337676478482915555019372517787901003667401100467053365248782341814353345246999561476526074241357258498336500340815616602440242086912881515160384579031230354911953741704517093090869381501515348953942842883130225306155875570206794148075485733327786477831672500178298943213637817920686602679439029149076241389664433104858382346266461659711236956929093901304888665482778435284651971646197711142882246904689794359174037071142483851624127575454402161012040356142078095745223165518567808876589239150715489085590584636691288312399521751103586402191498115172241094903717379495293915974451826470097964129391846677630966439702600771151445349968562336825305566506127044441984065893772364939706549283469795874157126604534987980007947622685832576186609553351646147650518771979954201132445173543900986916238620462711531732460033157722620182512399452964943491145648510234057820622011341936900551508839845733137238632562347451222078115467302986175810502312460603542809545104835777263810504126973823213738917141751422342249073693790557318862678239984820280750416211980102249550435635986300460195283727652513996390935060308283999718534989443535764852625062716203014163871532256036447646447859007054421872821581218368912952400851364806766263054904427478420844068964986170669098785977214114211420453908941907593558655335034912858877110383865178333459328790340056933367786359175066821466677129039366935139469401407539825718368588436710571200442218247273636660976480890691428029966240189873979597927998305995037650267426961077610072732199632197278395993484140113090874813529047554806948495188969884417147832249929732053155272842189444986636429023795189852780918499399212934048395675499908098005883676892917019232983480750533195829908756879058106373972083682348263655508947550043956490348305001667098177201230745899030934484844955767229096702106173483189716915487989607062993813871481828687343963584613444743725231174213002255441117044883690890326106798685324983268466597347845098007478683381477778279464871952421741723072767869793847579128685843594984953915541263979532719428902621677178913340041848245329015502913721767771753414243619791969898013963470774177590710624095752725591471581590983021837383714626517921179842485670554220767394198728622773211828962285657333696037232109713810875871699033437072895632254796026486867118730022747354213327577693519558993430817451401447422870022142240445859977859253184534780988658643925271854542841894930018889234911158194787120204166332235829174160142946120468569750466530963644815763500164340765185078960709042581596620930511299842137026969367257709100073918926111184225387332758070593127270668484195776081357852268330107655221851937643293514076431747056163996433798804489535654561142189286010169042063591787051946949301115965777713115856777889435723103771044744546855750674890169032301416636679733202957939348185695207646955421537875086306870993956415137819128439227388381953629687898330666222066567967271734013820599436592095027592267042836332958932682023129541794882758968760276181401434513594615288613076634782844001214627684086998885676998805688122546832567561120350401652009576201108747464646772366533583985855848730133226660108666728864637638015581743935146429412474226304959242842305241408059246830920144594929057283937674466734000186089524388127456956663284842374611103599309538589153168582927203345494779765545125795248413476712658677996782381674207973167717211454394267377030267095219114157150310122103432440175049172155310680996757729013049545832165493365025607047156938918326635006211580396400751560069458521319753932528643985526050821438845363677225292882213677667717218409858604049329808408248095527344397034532616874996830815820844823778726798505784241169489312885345307494715855864801511657057892580813889591805364539148180312176287487533502386444322799429959485689656560516131830737720707118496233228474082567649141503241485055654767702301398180714208117480403266209411860644121391721904378322754788233561742441475115999339803188838861812420000933590997438173278453565150094124223410760414493110750684508256398246037953521162301583132958441860181572016074157476717892599784312614074285122641738008855867989694692928807738621441735113240657573133090325398480908407939493141018392217061777488103738405315665934147803975215273165936939088272404623776728671248172337387511979112600899987833078733019454412580048755076688806176862465898174485984628351632482208499619116205625157324148827218642806825037231963366538211764904378243135196723194871136785896276711660361471999719320664744820366036180998817398007118535898566493643581376674908810619215238596752763281997590642008185470048706440805601052253792440991923839879154966428843601129618256310280506276968556765528223715119596411826939837680274340970077923268232589063614394622814534094452804369483869939146561068275349802117642822402538300035830560688234113605863650153454672626655089727166265920228798296719898461602675202190923534816426960020371049438118392658746846188014707399323611391340419996620250352028122403097504127185505490541395271922102457814720065212997883454647526376277087208659206553056917562481648636106096314347970482867436621734691335184254493876970651857303272746370994200375849488722715589400834303610468175461642575024213703709844580246938103218763116493218294988467615356922107278391349778573695931821384422927087051875078931088218495237688977527203372101579797583828050510411580079997121789849869307918520299439288146988030988091575353031753659362597175749633181621900686427538339094776850359709605059575749067849166488668184182527611621528398152493899572360273619389192420334878702806693041785796973484329185166685599218532017140347264336651635641562650870063939099925862636700941958393727639260881539981597972849820319848733390141594767792528788292742917962331397830668463032039866176494411298496943282297511308111949687240301579251435308302886006523647130925170409049178731579151191170310320090280449258812938953810742107014976757635729861376435745417397089772394439611101782181307484850841334021245520986088936726706748411186583839310479913411005088167080648911489494478107364781930455259711241595726970717120925708709973620782457425573744354287182391899173515003432907274116950819441783309667759664293618725939515562345732170482703652874208140255360758341682765175356710460135876485545193289299451565632561491250846508348525214640309665170182238793793391647818185966040375514732288230548519643872925402627587020278298248271044204438604521648803047559868825840855797705008823991804062838151656461608481046293172829150733672946583655103837488657186963477567084915294955157309283421649634869883222019582985828048180171246322259749244792772789554594815340047813091422916358723851534431422478265597569428723411276943532830926253072935975444303093418075938967864174854557965740325967675344104638948870330271232368678044261703566509611426725940051788237693941337104166479131130153423473477842491719624209309233779420832198120500824469322670309673073548318036362105044366762703231741020762548544315564024771903363052114295399592160478631214729877592928798165494204373260308761122058449104840229857233997919654951471044101165998610906640965248865854516412749906024045206929037159981619878082436589436693937671850997988872711679667006227396800886054929599758123980723225309998008832326673623330139267263397537480216201418083492330011872571451178120874669148819434956708286275607104745706762807662095510368721399311492742631921115708587775190733595868291071809681174097072685825986727870912956535914903483179439541323069560900935784728494730934426840014217925072469451600780211518684436458136737209526373051155803599528066966360763847536936193133826015888255424341734603484961980998234608944907558186715421606001989584210116650750811978172410425129483335917314234146551450559850387102937953163178398206937246886923807075903743634621671195363891447595939525415229774786141781454686467666449256854544742520157516762589350932956713334953254122104557013980446651061137374194530639728998871605603043002604870744164401515479985777247223021025711987245650035439085864633686411588476719036283042563551536862922753096991627585131466368661085211322174963355696960069548653561675299938973465607770985573230448062804425917571535037078415647267357700845026830018933771006704846577364722117613547258407266933690509843135442832351398914441907707099031031036905913743382983249385662244564701387129342447202226013926592938155904941723868847053084567817269680076417065111307116731722917292469472134852649611046621207524931636745593897108870008887016147291556256299759366222704620982437136572764070028192182866192621494878018376355520659411060793015504141770536852735600741657278159011339020029751521991534854943329336820705040204135521663009320099177506983034372645033575485306084144129795992287196857368016644248524435140760016296775737176592259011801160701800408454961153481053929836185352579497411488959611137412257839139645813041230506306362192915208781674167407026045887802097938270812937128119498792821386666113022489133438427324740224528551274602540929014588256142576981537398635486675001212018219624154672584412336120409304818348338221492325074242090824083288748484781851849293062460668158080440690775322760344443451715713358319115995083620959515904446963174988332620735844785071787200859555808871720231587960956282415695765814169303982472384522696898293551253669424755776820863572456733461963501163005481697589159543979057077385355015477441818976417472289442442492051533273000894859295705296275404844729385004002405713888753143931905523547175462426803185182351641764138659622264274050679253282999981254555611924280189561887780820357901435515733398644924317837769777297761447386862858817052274850460739795969798040966894948727143737427876384684968410413575164232951826694178791632123844102775274701408784370879922823271525305605061715886128788292715423394024064284753095845037462303805841521497532538499299337527889782752556830407733759540200015102718507103504048806179912235007115808234018902842014248418282083457452029521952799883821508145841994789209658917618061003664770005949699489969861390400172667779522828303353638608632112915093137426548882172345635725608768603155663048309529696493263949354511420147932693332429044653985702373918113264439444134746584812242948968005173421757958401159074562134183281662581596805313981569636210785240738552912841546727187239807061728179771468362759822146425094312178530015312299270391269035724143933338704788582206038076378273202298188293940824632261868425171647228708520178398503174267786372959299542270154068931899086661502649676822973550625281099291055422071405503559702093225160466909150910051123486900683993097550268170892417393311613126316519195177294876502079329039111816217310801953202066115875781940115037099875202618798456918406338078401934728240443001875770033081530849152567794613341862219439157172509091063827145486138330582204524825857786941608150138834714312933781870754482896599580370812717550325079245013796353100097193760088466683083220023902870555006810872585616467632777664053941456159549899245582199514834106822941158861511590372233941164639505471919983971968111860093482459110516028261351146215342420458803132689100910130511561103542962571814623621780822514880432959286369990633952164172759842178615965618960310948652887603925341084335953224632703577018867347180090502570263841197587026958369929579377383465526673120389025537966500568293339997084564559613000036646830556766400650808566267121217923417019288176400286579233155860379039795575779128063758815775271027801338966218326169130256160011750363825712866570054158340140458559998492828615118249354048346026145937804064430400495557801179522296116231432497362051595834623184799942430820858668839478987562874336569567046740205281666924792414896234307747026584699177774697220907690411924999035064401026304489486159468866737248993281420648458593719954161493909953074352488739083331916390515084006043346679637445389597326278476591953763244702329825093135420167231773895826803289070401069967260032635369958156428491210362395027678456512538594027617714001083451914259275022488629588246413859313277034273714361576068577610084334366829988480689754123097610271132118175800021371488197420681569285402223686509246094138442235506764385739559170419453476689445810694265325502987506230539033821502856600571409204213268392167564432319235449902758318172064095245091124031691030274237459955597119984269489794100108085836552530808119399907936513447712233157430875216144310122035878109634119501300022633968237501976133148496985766195538422145278456069591657961909491363872062063120164320928175523384364956049051290412961285459266223430109970891448542468417632088876499391453917757322732871522789649742864836213906137313641870316541491955590611646301300101142517265106977304371985039522662473391846838726264522505084242377776699884892918610901324621122908648529750428167255151660769351647477435684663987403246238164850348082465737751810908015184096029293720840145863958396635015480420490644231301015667915898102808287512718256273446024462499976336948025925047897794317181938369859853324838252062454156211267617105063063256695682836022542577871348832410379804050770583545502639377544856321592163604334640296935554541084857355421369954204423022263287909427111339250448348924167139977912513199913011974525941308012385270059526690841138119526872747507936178865813843558091068587176712183741274867969193175929643965468641514170715244118290994738521241199360294024027494746360002774628815419611433753957191542681679411346660942863794304002502285972398804917334585408570798867144835078067915957302861191320130858458674625707141686924782337660922115569928056727166474496972216163694584295928470718294026054111065065003037664724260422149583591945617533680544247432154412456594490932679089039826814086033164348628818046289101282253706817601033852413895048253438055744466749626893044022656658644846411243544458800795153475386957539757022906312873572938130588117828859292488584930382044792136598231724004860419850262007723438135739978290766993980475601978101934211339511071444450883541400993574201578839559973452936500423945455323936749820441987765678886311866115820818886588967008209869684352403363808791998493328355376468557950075780965737054792882039933124898082315624724947727812954985989601276226880894264905096530255963106183807578487027088544011383410002991853777716824951820317079365523819109444869834560575251130860172900801902669715099517210031216253629494114686136997337812903544850781333931906941097854186956989120645008269204392505211164722419377873635444877199513897661646172362390155777789883826259211850040732871370784530291838891212266095465286970446055317811815275152266499369469803416687179499836023286061594906911389108010204248907526687512476530514773251422129451148442802340298731685655714785992481566800856219399648621667683438351209290382533049180714738295369253898591819838593610913213433918069275225682498148009643249583241724296950842337297659302002511116804631738311516889270280769939460909261952621567635283865801181642935625197833305989539986192789324686255112856140041043999519897771267575284577264511036578782062273505350911656820167214259693426804125403471884404846113034222841075171215821109754131684568288301729576093026654113730663108433854827622698774645208983140142099179273178029156336610869197724392940059294334850927859689533696892472780688822318910927529274942431523763787443783525963756617507992426071771830065995596982533174271818428688146212215650882798812122474191442448561147233476070702974949659864143579714773415140067570836518654550224066987077690421935520973262524437538493119663918542213672279178647246902268349523504585163664029521023606939415632473919594319567716077767103093384048186101594845185828543070306195418732214702329218432585777155815464059941280362560567260800930338971545864901587803517569744542564025327195746768336180209744636989991596789350689192056306085582524902056268359070746058747238194626260912978130112936259957699995051588347555114835135553226524410317381732118906069189541594465067084676511821363119526857319726150455346964299787639615116154116953433529450976017587461649574673886930104212107116564991727354627172975544624279320751409546130932254928285308453608621274987227255424153757624990727940869247885692948112133912328265145809803665660881168127428860897751671708537177493468136720845082889209641710103503059409292543202217714565059253774127151071894963124161474165329934881557149575848643182012144074776966589261155569721128187617571245049063886729326911178021453478678428072553359102950869605777831694037101551766399987092565314181805275801212381304216394636108855257842573387105192629773131855765436585959940988847468023866302208342581891287445938704514171927348714441599373306627788854826532553113421871855582877767410706954398501769149430748320666876267868617482967947013266605459747828374322313712299246305961056526647280533882138522636257209333907916472300781073410644450326918033081850136208130334896725608384526489009355308390481559243385409532256504743195671045611058869345990967493463895293733616095824868490780464180275110379737965191886316354337986378479259742919078916413895856070741693826269071794718255893077630298731640998490315760184927797091082738214999812221989817794861841055547696315377638282856873217862803867319241009666317516081821422085788392302440207200264431353118595189984940968904601384623663205831931971181399288778325829650979122086754240304540255320744361266872081053348534332172911346388084511742628359180591747908933862339629438011954959722452417821234512100153392573408891659707513057384256310754392818005538971151886931609334543891431318967970680797607369277084369644701240654447378303413684094553939440683300960512344379792861738735506924178121875903528379741472092450561904840687614307701157416503360284638352887920591834277008521431156820397396614524092152732421751141310186639798188221680773716233539370157856452270330802570067337258839135591361221501073315781585125858138552056049224010626459703096450552108473919128196537123030358110824431693657725865372812388296669103444818149142079591436641151810178493136034835757771160400429760689623058338756767719823643524505861699567710069596647982038369319069905485310341321186570262904689996139186330550740467483747254506954018337707456386322734067285925303916012734778620937962797084128742716831540408392085124434068212376809143456402553712756392448647222231138810516329786263723238876931875378594939023215307796597094360607127866223604015435554153866095575447789800894926834647026360035721903037769072920637598488118038092486175656248414660941044284367318067411871921401840311429948907039272444823252446519334738008565380547922373038692677896818773510019404465791082286657402281474564671469630167087115268126029030748642123949441316040290005421996396522575397554280403866165194348912779953766976961724298751787342236263043995815032499049477498333351860068144458957564936204412954226519201950535835476134471572393582079731342793587058175214643171952531815752282145609432972109759831456455879054897163427274077182323613204800242170581223167159774987804965469553264078431913633373886495674943937288027200287018362065215823987313638545520441051665889619480751877787201715733548146839869238773903996863146084548342336869575015803638981509415404532521986616558372230252079559476455234660965930729069080948974448635211509488233616273235008673588847363718998272672216638033942431094853074874046950290811294270378203085298814476662484728708562476281552600952831920933399851173564589938191056034514650024547699005634628203631241269029213429484356558458287082393976196029536552224612914948579147226936630203358376448326492158305899130300674513237208115309740758654668968692515783088604902969791703258817172816642602129171417233905099587941714904162364002841488461720137685935003796208403358035924354713486217126801320672213648512238579398421328828192781794120256166871312785865384722369237618489304058152928014580038351842745845553016436499016361184472403019539644772900104415436089051749893730902322633682761870420911253029474865153331037639327704309169723006843286382803879414448177281140312854479677348128814026068683499449580563311534324571652501438578698061383364657710180000518999722606855879295113821724867964385373155880601014186048682814489441401466309611421577229981448151353823920806823877375153964781191846434838322403029385640890283987519890317245622257999478658403034774309645824739388976346744824976431808101293380129689126796918110725667788194257233608478722551458796608118498221018095934788744101693049758642803639310088768638110301604762932126697164263230286035915965122986659244765822051565109816208345808810553967166175865313832247780196570395159998959152311207177590607788386225663741144344655031375439862235278505100259675842427891666628273988483669713504679911908218124283505988397521507184002769687593698787121911609468033162183509001754279880119441516625038338951678730266518549050541868363751757919772626439995022640384569803570314978588368384112620788532281933698189440364652092969907533392384691468614697206375587576553085976770412874892021731471143968013982606789669096957105584285241174574951857424704285000513816893540391532827861873736440317964905280545133498029302760593279867738613970403203731074105593980825909041267055709753215089618321874813048242937387322375481169139561118797192482057781367825196453009646296313824432114688289463450607535860363996284417943670902592122387921415101956800661444566019200202423731825590898984310655832199610898981488110939843985035634389240067015791203935994766344573589811599337832072928041468048977522239478497219830821114455385753308304275122298819814501125085416354114446522959389865292602574305876562454789715847427472996460410988455289189456120222922702423991298611420581643190076858695000127879981456069914213630859204885923278587864262138143401319660306074171503620072284825253043561744189005587717487829555955254834830371626748280448851204467787267249486495691653781999541544776766107263105583785128150084973848203139205649536250566691217568929324716286183434555519420626247317794844001270469100860269149254321503536576441564529494891029863278692515820264089173179598541566402356929545470732704914110955933027000146603454901446997835212643023771809406939762199622533053678930612104103185404251219071820217668764201404221663605752519533224574640404844545473475675276011597541566385054109475392780413231660870448354685766439245163075061412817736370227352940957928019736690382811546336165026079909436491749538665106490637020594050147454960541089314366122426614581640508635977084450106312457223414224827051685362426715877111926647633684256140992811270752106540728838676412493170340306144527160129363718972195492260575040784630364035802585645016336621911586914802340191474044068134103867656927940524294204201627921449281369786865736665810662019928186508409137136651057498424926536346545793657298301248637192416334962125810207194151451675598405450067374705376588282612765292680747601287899529298928812065325972555982156782703736881902239752100214948709606223299534871574071716023583649613992465714695138468552815232132533906948838488400487171207703862734150314867105099435538067698805694764418619420579674531107177929346729465022141437285976648906124267810796348444832967460552046586858944927792355932172870285725990159098722761593776066515701570393989857918631978985029286623231713903078031985155349342038646835971180411256586302479369256403268534413687327289394709713329342454251944673499698577227993292286891833625760213263778087325488995321440644853446172421180687673486804982893690648596680231801693456494325676021839931579627385960056949841749222842652545290875862768029842470229392457469228932861511946298266035913531056942766236765321786082928473521073976714778005416178226192483076496557301544520481622916308206852500207864603085009174141759054570288091172991627818286400356058493569385478938409644620892037214216426990039516684724526171506253004677655955201135574318288690230626289190109583505627360413638771258955860739613256083135570345076993997826329184269389207241812912560438090819463651413899708932849277336433058170177251492922047571238794312737695038438459089628714249875306710182966800061676190139689206602710500208882168554054365559674460022742343052117949549744079583742731182136154142269945001928207465057191866716869292774080159888481211183135153962024801866342234419335018921373300688191867395617223407649543193818915606507278925662119795473397439409703524195753944437196200038264135525543521505436623485738103175846972240480248810544171220953043919125214911220899660680524894397313032805438766424242900708999802670806657717743907596266820160905122916799030890808748529516682825057133084465094844440733685003852593005245809047764384609785058053403519957034787403328804237430940120037542662290924260954350087980001403318052680206729599794708440167741818684368484620554007666140622604284616469217832087500277361795816381235486126409133841988709784472450690258300205820854976199526961448402797391742108831836110677072572810357921527780909652478571310052234168067909130627321393512703758592134472675448476982308113632860338825776354951676872465342774140347472705476841231921860406201007533118384369219457771976032913570393025974933080151746055659201731940925531705184224969055404497216522266989861891340730600464642387258976153259991769598465350657507603998467253883168537378073564741971758769222360387186815826106021762338117153077268690990937794527250759869986955027108469783067181452648011127194234762413863028552034420233047964107028929666899163409879430987355084702215043046251329483333887540569409371127987711909334220883105313866274926524933528465364499878855074498350331091856806208261447511568114839609435930670072425491297241456239412304402526341327747614756352269299937059301000227913157440167071348687806399005924504694228237818667221021908491185158656357714170001673373789455576349812646233838212784515486100637798870433989537017775721156400948140966245559447552896401025334437177035923503075820361621820312810975796077590638660833354499402986042471958056558690171373894272612686474566180096099670273671277225752022622748475414395524749314968835008332526643268045853144114742437894969687542823954378322528072749204572175584426080610501177291705794496306544773567998821095902232268232290297749353766329933370225180566354367373221811236840324854954845737197769432332829335818340013135361229424314244476026557743384969966265768734353937450889167164117644201221943065393964232362708893135359163362973623369800033389483017987715756910432944310675420187531588570465566304173340263376815223139238835750611280946380618117697332450902358621668043271787152222909517220183478982338820436696480006132247731292783618489372654724793123861008787702838783468058834929771955059289962183475568345207268601934393352695793378315013062873484436013191395592478481726839480673408063566506584027939435186058830676064047581645132830705259236727452880839279103695951441647039911713543437882930231506614431650730353815224676136378534927361058880141959996087523676730120462402292320079817297913382328124387292167820620701644994866346593451911351728456197562032523701591490632835479236455761738063158916232137297784168931333497018543682884716431299129317441136031803032100172986909531316299607032437848398441275374605365305148313393195654287145245405732987480612255084339649901691763666099292702326504053089844531300814894513803697731535151942771107623104756721011130901623461998142282995303758551445525036071080681753120348475960810360197745467658153897058541638886996047336595723199768372314199312946791078101957621851848545267828537816446621562582377870969958090491109691996011189692750945472691885581591555737954476759052797769884828152383151332277244418090307773227341473166083840048758297951312084688034102625507126038910514573538426987445186071865385109049360167702436305270747127754939993850293341970665274806146906064349483877929838934260367500227560187016273838591919304670501104715551760754592831675856207984414671483434233638381904463785459877832332742643359909811144587890188286459773303734154191387718277410103098133585592176082932057894350343579990076077868947256654200271527196354657620015476805736157350459587209665883914978952861341379814066708420592575498942948102187687751358783498616395037192274007333456040748503066330411622887361201567516599186668400353070263275385277286650465252779499448771906695807250895095477963894636201394022898111124404512333897499757881647148652959154213161041926484381294975095096175425189759822650655448722413931462868521705402081430015296172321136646965365255704835519645693226689949672454449465481304950329911722408899066807936853283985683581591492899609764529441175535074015488120886966150242912182369210802801769412647094552194190042842404657636999785239868546247871601322975267778693525090097209679940982799417960300131045005115231227768749793953600242774625368283259875369085780189696340755574599510570715643240718557823321984797820918153724840633926620155140927622456532606937073824253995209912932920933895911973414693724190563887868195316982215166674501711863088936350759448933041108548798376211483825617237382615056561701564448397190861286528700253199863642836204107364793375369980878890911068522120953110908059569475094111130225928676845422979662204303261811349965237886627108564146048496396345283195248818265264893019467569768961435678461018573723256731115309625817035019700202886696864367458915232969424497958636439917253635613803210694346825678643591838048666023701698021123467384274997461101601234442426170007706387685050064744486689517684375522531624887467195023811574537819876027707014130368363418237649155099354119864318976967017321917016005262903126588831559584096427418618201288396484871947604277405877996302689004897170954071769822761857910732180715006865982954308653896699357484482191552246966243405881985593270795929305997139678098641301471464121873711948285165344160097313217592516753123974710405053400661047791315291308178164890149061066441206926777951578368812820865686871799482092824906202587223673120872005463054737423358491258911416797408274136423909471518245944568460833305525627358535618213890024137671670160522554639102293717084644524382669716243855854716751556103759175019025098457638159444035936023323977834042210164385515498740574042116452602946991139785082882319426174840324611225898617758656254455369704865622805221349119083885994737092824119400507104717348874788520118136575003193202905646408595179757964061338958845904143179826912358252943718358441535041219108138436771906420174003653208085857156941781276382044080777501707627755850943764083642453418323833442368872188364776343679129184171077746032205199390633177416545033971353132085001263784395991329183050026091732437192502778524772558728694061401533878607060980431902902717742002434880327494487775634282822018051055834327444287575761681637332256498305480305571626307957166723853594615922377262060850659182988047008301172010089530630131198873770555165275139998553685179406551061738477555504668165099660419840076746316027973649202387848655175308007086697332311502505102922376574407504232789949606094486637228370572872384435223963083044245918931298913224388142431143646785762884970472154320633733213474733440653242684632205811299235932820817868787198297899672319797172115958385335536728250437741985969260588225684527730519241575961740069571693856952653049014674576043708419440944168341913501782215459900763654169134843070929707518755118468786886940705385919608854408842008350322160160238088870558881535006483431784363487525134906683802513645213699128955796675120641059411802129171970706190685360619086422504333290448795000623227285076152274495711135378194191791139816561082764469377803271002459705611749660858826149832195478766372632515094230900360981762562260965376299716602638005654370887655493423971974856959501239168166785304006202909045772033659950022273435008463756096541419786913744469980002832405310157144940395182453257158726912753296884567722072919786813937357567935435495016493583176791617422710201432266226516889197947453989496508585235762938247050255877323503503459488355207964284588776765040019204140763202826938520072885941273485301585548889301047220209046792506609777267476945567821186119448558421142317547470810697266002625567763613426216537893417234788340386358205215982137622796834628611273292387137175204965082058305226405737067458453117932718644432021312298883140698087939177335505782028163016264365255935794183422248796755155893858730602396092887733049005124263502636192892509020906809647887783704662502698949613783348909803692193522435123585541413418514433217158035910675451454695901814662072519629084087082508495764103327446673689226095077027201619337173898911836303706681969520273495029388055391136570395156392081376049114416236669727893894887486110622573840932057532289655056674445790270342782127558996449920801070939760185772146568008759934961182767907151280067084412484322093999784955273674639390271635695484452356042862528149655683779785535784247987597253608913178209547970473897309152876009432002614752679692327164028787856774887723913005089319999288967684397260096152383562456702740747640032365022906239507032702396290081483898572433698817310656353539572074712556537660003747852677942726308698149468682786177078494209248280855041765228644828456780470627155055795438308043870613018615419144785646619712792826177812316328893729545337791462419370740737237164377936653702382007276668937238444271508187208616190256869455155196053452835638789571923305234844516663416899914079165298893429655629367143284242206856585115673183334518487274637588510490835647329323196566655152803593462408602665684698809028538908299758918143244588080387706776125078870402090491437790476727710449735588027721778182449140296009490034635457687054205366079073858006106080174154019233165037067358673194171463593727444841290194959482538199244631122876158967009640472248293527445303671223779067686561774548797017825387312110468424728317533382105147604922728934638903499248706748607068537391540234828906510111070637690220423008689797330788153844796051206083384526506240108082293401833654986366750712484868234166531026541028840448331914566273989947456927368102427487204118454699093396624010719919808906826576660025684767224274182808144637726020432821977331589056637771399786316285033294391559421971165704211827746034105825811193848034407020737233473725632136759789069919277810147532607773007813375307795904098186937748414807703151641614282873463320275873289634012901428469679259445942931835732110500307992040962869046794186354387132440505802335779754121248351477809274958362671136831557509141601485763031239806952574545050031556945528906656239969584827952603792252164226254899804970082317857239838407341903779243383498713731105007102893240309158918082236048456747290535525235747335936678446898571498402749578143458938272184422136921946035247947580093537520860967853925050294125249087296459927085701923178432743175098148260385445702594907154818871765116274913160377133324984536563858289232009306268803882342568583133695975921519877380299703066887201150936972546711276761950718148695429806179027794182973979203934426293629856231760376573747154835551822770608498005671799704554933872125368721302594693190167153455656959108977554034726050977627773118284638806133314779382304239689399349393200227467401446503921986537744201252804887988541227790969925621706811568478257660983242960199047055727921008053739090054157670379942625682465372060202412176469692003679736543927575329568838139585145335387512220972143862939352323032679564163578912509792589274995523736967331429992037992638712922839883433305809688165501912576377938602816315247698925982155293826260083433638572753956321823795031583947223832708599221203154080980627509947628535911011260772058341622204466080506071822300892960996212022686846564827553936584116415335670275402995802333996125459269458763826988160872631990755411161983126533097130361888963159670783983874016830584319565872361285174452468907277330369096539080521631974993983130187619199938503448825054881695279522038433007279331503349760599337606818512023601849215938284850478095890022051921423006836753480369529295759081303386507990865721806054544947278837975812165699158998134098698842241595128146311571392713165333975278128477593141108489589069623432998882381246058895618855893454513647960263899468474072340235921833187777475413666275046368825824708275160287018069434312767073852641243010474241047696955310579095889442778841832712183739379144853609663684250695485642339539664076220654392649028310694029767527481742600335719123464741341316880376565006064117941468233495989526678762647724740753945472788966275858544949675843759631869119299952631268223610345827172569300718134030913182345008596872658135988077031625244393373277765378486768641430793435206831269554246822957397653840632159287182234352925052295616127274005792241825977667190035392515251353219151116264878335138791163391047737689742917710762649665406066244260002433865586818826863619227334120831968651905048158751947042179351099926848470857911236617889160945174798137666835219650424671822735512823066570145359084570249468841580273725711878616301829652658791279135762783005155986153524770299462943083654908369010811165491411408085112757099670801336302238014253620818517754552690362172469737299627464866538994678200077551532551700726790046608012291930294247234223806151186809984283847986425027355996693922349856620896879099085245259382517614482328144464131449858190643863467704028024056974728251522569465214435515050462033970603450891527344149301213355003694334603822698479908217418172148983373547471407232445153441198282582504868529516758667988591782643812055594603569035978864303333987755420310169491128222260736655498512397701040803348867602560679686224311622440460436456703203682039973590010488099287654593202662817504532163442522781040155056871755378702509059810585851376302057895130911148088984422522320007123339997367735597164485006745027165061332805225077089426266976425229453445615488375062366324026162364172130689829380393072819866180050461097836444919034465408316929830364943799726522857990134612118284341406146265171751853609050279949601143066947002026055269057479143896821153819665320652960462778508244720460194120189512559861630860593630368311539256811940883218668759183856508820671626193346492537886689311277880421012791820377158528773269919894296546374814307598379919955529275241877682725573068041093278653978063238894396398696965622108405801633557255126602875317470448135646393843683179439238928324842826458381724418212810609421805520193995828179551336309854503696351047220875107511425631641429454186358666701172365377804371450983084125236905373965038717242989201999286636680937050131658477629980950275978110040755453836738229014138122503770438853341111263680770708259189889504690188360002236930941812881004028351599052073475645278581424902582394455102883773877137257029849722904915015273490077888531167024212499509721391565799479002164199522634181643409928667366286438733174673545580731819033827124086958748120100043108945204040273198800068296224636982895371868402417773428109128931267110665037062896888077717635059287713733287197697828901938063393096134216601047229491471340115345391310411311777373064263519285151640745132563323143925035286171807997647906793954968459815958755537921740838577388483041991855370875511949128799957526228125132255042339812494656766225972043494696437704817811988123499668582035761239584087186087694913211132890848676049742241038881115568475088177824152426025737534068299228688309899917785011090017751043560395909638304034485854867093047773323430356787991621607108280109689470590603263846039241213495977610922969229805431388920060881411093406389779465255342621277699689150676184928823375870089990239774268170458786600405690459953724843030451390415153498401673495818153856752243366588965703887402537364217345797124695514601569225646854381998005125348451682523408444465760914790437447652898700540211121005931359100026819114174726272854079611274408530227265325779929245071227496682159386539850570740177775540111506367825732159777689589510889900067817839366992813503511261436931739047532639758076144180478801552308462372767371584874067121276933471233680824453934055673623099172883897554788158766540408223665244278669068327605989190166429288954878528144947943266742400310393758374535438191433467128848933966886861171474916536037408737196233263914061149875387925371221370268358189710171939421142342557836063098248583923001575909662081669715807549982193385915606824894823909065277415599752828342302178262916981189620831508580286943286267852356004390989116700357774742372339778956367904495088751578954277246210402327208723032434702655359768421980095620145835059046015629720801978185337160777324184473941568006021163325534515550031081926799755592415793574002568940010299631030103305652394743638774660791839386226371950006649944525391087992546537652653651609031359208346873774436090411517710803500471358660201264619309177862578995389930476676067463843513426727320658862572088916525061432352272813635776771500241103183915900784776328681594769833482356759033613074988221353601320613346895878784657109413710796964451158649080647616528486560768261898512786832071866513737756798986672664796876300270479757587106628235325969216305361182748913625541422018062133407925524889938939085124186590055669292270882816487798774638438538992357000067945985332529680771629547848261790431455570702038609136846000423257510391491936048545769374214738507506423297477697211478338333224653389341434529521308177433876207528185353184519017593474431799533156431613256254807064651972068505815367137282981056579624909860912828674593398347782258731675317646216460969108375042755093139179441592647261921166904170786802847754814116818703179726088567629677313871358847856670256816617748467065296817528145533277230635052592060109046927158571929676638860811005035909783804673258984804544346907609977332331949233677746225339843672553369359825749437092058102267946566801660776975636771949663738009248916934773515556783751762556074752119117712117978334987888053555840756388632496285457477182836582553241657021784240939079729789691334939030351239445724213667821721005064599728965318636571713509993396899155046211407329926027263426229601235043793828210768679586480447820674243036473613975317512965932627683013068971700320901250462325430541059648921199495782207604208235618442211486615571414233312937396171083393724070736822550181370069948513858524645107775568738936389494934970858993552818173228662451034762214523202098895435413812798885387058069882065511093829908269702745844412260153891678752520513111763783029728569585954698044285048706711740811953430628083948833144577431054486612759453319350755067479277552698601816531442046925869558932731033393820485248653791073835408762914275123356486151523299448730089923922840753919213537023162410389193401868181870091646234297054439625859445164236045126547803849963330221288744048974134991498451575570355426551848155083974406439933017140906485648117276891666960339592385007086617180091952585796538990375946107296571503832424822515822610065469866892398692331562183177671425633832953910192695778421744570011484360548283393868304065971401255960554853849288999595284898348261499709457813239521818672166869483963295090895926544942039118925878971528078077882252902743811651088145782234558463760297002179152718596392337678284312973626512762857562874086279426919583909248950867712253399736430689763342991671648189962001744015411647174749105714499524492584186963592346794907671945710120344624082192748436775624430046748598987262091768512393396792737492216699940133977988914465835460497188801546263817482693652556166151423427135436993889792508340578403174267891807302602664983085671770848960083944837323107308019619687983169121941849838161432709187136602546306950089022256740180946869700434169476405234250238633418951871256221218612563612857094482134536018691646809652985473423535354643941493513311809590814703451967774516498942621114176317241896735713284654523609532935705126959040551545095334861580051887505354045035704183735019031820546269397403412989794610786917562163191969597521113603289522875212929914657381274082942943386586079386496904200935714073805058325321501746619200030796756088991784165769893199364588588314515118303816438303716180127747683425868439134046578619269623398683821181556767559460776641147376976689506601571568561691165057360201604277466458844797659982347599878397116237843485483951255540323722898827398769568299273696256915915664790890162680459676515268876619277732773342202799436454449000884405240089696237596243270611384168188614956616376478559620889637398327380586041868601527898891578520749091840362658576842550903099870276731259218589667559034545738012702412184924290767235224114202490471476453243130421186120176893623001495175515310142664352709241819967577154719478774866927107585381744562145565288526343705120809394340911598144108049843710509541232584681126766430820794666389552465864270755908025448034863531504910148699438351426054265460071014532904247232872387156339993805783874284867632878059218784947032374140636570073440344780602004483853555741858400430538514499447515697789325590232160138073794037965603312755635533837963363883751676556198501603522834077071826822124808115254049744550700331841656078445776794925175440154809411376370950207202137893184032068739826731035707257010624460605011129081780966585394776617723029400983427164764702102750290745663243176863657297042183653108720996986924587034898651155287627201308715100187254251820547895713775289512470584736748758329595618204054788238933540898679389697542086518586561710970774349744511687386272345411055857319776336958006227217930390701888569896555540526374453757941015418696238195146481269407162132092754775882008155907230936801138544351006716781580242015655697342302041750530112950794127744251995852798726150493430677539622622817943295305746289352027252067707923267129877869257277210023621745774015927867162715514926962148186318708760996884548577389218910398203669612984848627127781292505634990172935579965903554378016314200194511656987114860389450270693565685998629669146094353676371943619044671683737152939943566273740042543103538372752809050332535703454011791241276270406545192113900061755019431618811029845758029463504939907954282488589559772301286927576421038089977811709433197137253108331007588354251840082453468056588707675784091946597749154979346684472025660839076642629625868825511888026373909873275118822066496920481387131325718507703010809542159758758893874543225745253462277862819014379160330188560135586004975926851748250933593853005996546300595103930249822019119266824312372312315460363942795104071317659836402878208047862712943521195509808317543028161859739834912875302870010392123461497003856586159754897044581228472153210081975108656822420852376055503945287831656271471375751344116789761441128922442442359746088182332472520205820855097772563112913357874133967681966455205496535281661827473007674661237653366514639847604378665350608333501531206184355068428642435659166042834418482091009271440129158922046719489192046397185101362904252515056236345047536572485451647811279955931179821442375008979918383304973315676992877070261250003759820684471907183076736461462580577407312779623798280440711123871780484718969651110722558161642400947471224207408336917400093759090506253409055653744863798274200958200365428893852100369637931804929875549198650129021502088190308482980093208980470050420444809719222555733994026643337721025728972415245876168573874856786964161722379478221828192697636711767180076191870877768629726420955194600793102521242874803795846478727147452423101723289098954088895800899089891255162404896962409800868995869705422714836374799803227821816402235453193628414896047125397145785442266218718217701977393014797196251678023184986021951748722351153367662284590630540549847451207636783073512966454207209175080447998823476595100107503997631072842122846642850258997352628000506185833463856814219448913434380014851582670628653250342249315272580456051635180432686270887951945849644326783645766555762356202109348915784213797240179387772761562348161886799178589872151865935286920148030049612853112510389789239134188249853159330517125499440901785880730533710794668086145413109144623535293220393954689538682581281915461868255874872611091238894566724978355642158549491005082353365497011845312664216005560989706762905988518439366272562724448111139659785658301585336401307968978179884660766985500118021825137140896545440842412734839017187375594451192012012517471298072533005360576304291967782202631147699013547841062557119876136012942229371298983175305034100401792640547793969709914758768146913735907853127535121889388517102806139574902397688038916320415988637601300497500300320568462335200369066665923369380316459738602106375920440744491935926237465405077931159714987236758251709102428722033990665014874939004912668622978568845687310385301706806397346017091605580516166720810977648334297235321867746072613970321916618842978164103807639220843532958154147401302575999080067014116136397681258519748950677828829821336518498837068135190101390608690193328769435621903725293448791157831260805209195009211136405594576483554185465207512920066722252694162995388431113589113948649222120859561114066844726964621973170121418439247934618813375173763025774033796643061930077201977621850255357822483630298517276508519359506463074473518274216281451431330549429905739115208451329612734864108710375709634605018619031733894372577031204341708096604599162245907185917141561571951063363636268002880169713534780170390030045642414792888752786633470726023183643157735387495132888665859506042760160353688287545036862529367968382890534740936881820962779497750242960498856657244915492498866483968772219453036297545230484650813111565716486911911473513525689016845266087771374103762739868778303765299821647720366976580442472577734274952007762343767621261480585177512039402006024234835241241537377265754995158794502541701563867361257780257247852188613324680857656205819519420554932103556555265829048828935130654582947248087910234252694526052897621437702933791556087999944108911385180506649696012644077212774605434374052998284491843860181186962776814000213911993745828588077647912226725260975272225193464990199252236394883844325089483940235040715472139576663745496763643111089957907737213316808015782842081778330347978345177163107551812286840797208377730997419579715933480621307520559282959461178642930631696529022921488404861378978509675247521924886718064727191009679876238220641023982675764581230273538223434064107924175619435627676611325688485017132106790315775761430871237471396089237884235404815370449130032700759727282677199965340667920450136135630432054195368523957891279786314750429870627733633014016031680224615028860547902130824348447737588710608639150488938443521904075895506723626740166332578890558909002027033030305513193642410510050775378731512885079099616689741957789536602841519240177556628098189889721040009478526680123452759584689565855174201439932683249224743534658691894840625704608692525811505382067073954088757957736495223446529408754339900380986525915877493371450256940511125593242599738845048166624022302515134558971452317713662492749736678068251482433593967770168561543267149073019332925391114130292046539048840634736864603441477002999648920944896098724656583856090559680592442904869219230401102329032837705298760943385885238666488905318125286672590113821965863791216447226444411507060632311304118257509022640271276263257786535363864429804353930907682830401569075759631382350022830896797816967129075493604431060803130751929878778791042891889049728554431426321353411402199627383122127949343063031443034933753611120680467364430272145040626917512938292285347360917235080695992369956701403362319058307451757659859815686262782278474334113343697694199980868492879078889958167111541897605568295306264354089412211843038344267773558291704879040699003146651911948139264797493711609012937951603845988864819472647744591878982136490474969881979598649588049959301974148138556140419109443536495696440734814886060819459967491110425770125765100609554570638148521873944379911651665651048813578031862467129650682823433832041350789988087818558580492289176178570976213810352826297210466646179068832636227280955370597640475021023532263740576800606987636846375371330509836192085887486514536720597518737534632930345071805964481985063745106457539172670923751539471776379618300392169151184155687840502641689965186884336393552447004026969209302401513080186325243095400227855830681812009759891272782714548534067613938964431157477075640375219745162009780344997037755096060489247873221444455078059949882747162904915495884642952913426959890019326944308618981113101064720375357439380054124636255977457484689833576247088824853523390849678331159151899775548879294225205834326521682843920550834609292531418792748283375736514325343223125988476093088749025951212538458158301529452169243750487651890759538747045693856774249855444149561647213021930677612804299714481485493961580473146803318796845856329367259540203101865476504894135976256418807444867435198694473299029303010252484756638922537893045217035686476818589747584587114197101203094651673264132405801390230992319189298352488307444784975466817940272341194583004645284623990534929666370608172981750206856663224576739428949802509138608588027160007236000432577682388934595345807625884567441056896896128782524364274619439672395410479983149739275715873526569608576077686189788475910850672244042769740277000640106287233261240024628129425122741634943126448130588762108277211106407739138944048170521857149426470773958442410307456725478837123028739990739189928650334014640985951468779453280289973743234407105842206789583919664989784266335833028851242739259195790459054598952623824756294396360857594497174817283501788157244414768910800024939119102817858452023926273046976476497955750230044460629646289210999007969797723934550787859160477477614637867403257858945452794973204693477973904961731288897395218285029991052034788126832097028806901266213280962282550404712163902322809104746897611839885899432569548865787435267988646802584193198162091468591415206411874628656057716754497572085654811915293834221837039815458775067263502867876357173794263862664857048788276494059897661951644590210397904899637709674020099304798234229778931731585111709601068428333687311411082689162179078185297275022531678617498039689753585295331530433900655477830113545615596925924558191960718613701965222985200230525959716917345727361755014791230875063833281233518992917375693926781916893177713805472071764165286348168378176156875309557111872647234040734635149549235781920588378432218087659657073436818768626992110518747433393060171167720990669941101020059034863966460746493900543334814707686455499214525385245098057448000753412119878580829401098733221891986847061282739675544986647711372945564222471593810433183321630519207350225185820379932719667167556814372340474499405866316094709611219342372275010683151916650245480796156950712786021260842054791811583508557914022770915830396867309699540095017924131641917188386844235010222799662216698891442000578610968093398669206872338579975130384531877410937213868976363919218462163188241170480154003794132756087999493142705273598520556437464388911515736980642865269866901900993195476134547259683253529228679016304992487881611138775371137925100324760852192263556486754685558457678164742346891021051938595011810888831480879000321494446606156735223907307544098582219998339622425018275886203527641378737764819498110514199003066247557009945518545780901498231012557860159103428113152232335225046354466053604700256792449865306345087236583077417619168152376046601848579771260947678472148349855844279197349126837993510732106870859152890608894471383609003804053660378730725196554887981383838463152133860591651360820516696060296104739065379605971747626050277831608029802706124640120266789571006778643986673484750743643941090139632073222671362665548340308319011566186602404186066068543476719500170220500761748359228860196198162014208895005852431066686378970875092791955240426930961541353137341360104069715497741498285366583206667021840394979783470615971123815940974534947459351824108512859157805496681077089180554748917275888069786341718238940136611925817213403734939264554074388220906490834780999362653868618186617910949254066418676593216696298641512857051954197080567446747568131467782944607160534756922822212874161010986495276918656792447058353389885357198863304890223945722322080988167729045585410533545561976075588194241679550969005795555407503260969758451155632355034426875551670097396504377434025195419824733352854252574206182062665978819615720066649919767736901932006086570626477549382106475540259755094349886344453300500328856554012453493517897556962005659689349840873207026274846520609538014544127384400092241319877311942945532697294904064865273179409929457170881480129161037553651205983419285925648911087078404045317622475251780559185182087447647411111631432594213186695240975534522221796355681368980772357016144526332975489797960930895360534924907016478667474952737862694534910581054203992656225427419755973785972411252557734644371112777225407941286356954682853839847592310802763960130034091505746306105925694264321961361284358622464829577481472997399268774939320241934003219034601418716178881408876176533254237173028247305901163262073363247591668920720754261369806964189719276840873392893770373383060519722856437777662356932583486570444980959454735300239475336888762114309966020338936432273978293775359020326407524618393793003003988421405239825018237350572942528971368504886904914924968359233490583021605929389524782385884177014636465684001149497722577287170941572911107872549513982178767801715729563068011677910087465767940133342646196518116095533714503510795197128749311556243602977227957030246720913625466510086821980148973149025356881497860565650024177219475644231311335829959871401271873674279245684209775236887189590001016019202374100955681472991836254021575629157820518449802966412341521594594562003676325765879813786775339142720391808323048379555442133719633730300239239299904234494980145700836125993181673115333397539202992298310604058745964480476187855750918495449203945859696359093778505348823621794319974907517972903028467207010578701230780073929458986906304334689546726152737300308966742642822600936347954692943396443501372560131532919778722084230806162529219622996327678387154130106216278335933409109462749223095257735090162561667566251512476579014626290096184914904747084709841885690677058049124023669848254282299820750013341610766703363142758394935491924592204412012068574170092012556529615974417189757002550910929235297190838965983702437495208779607497539077575082156500726174750403571146246396980223865737808471802629364179762672997216771885009186692869392505938665578899104512470353762926802305744766471073155944210806812763739378825013343204395133839194199432841504599425397342665995026882023739934424291616564757750645108111759464102779574207639478557480264352983327701648414344453090955828459930788812483305434616758787607197987751829503103731961371517794844947566738043842783020302872988472719738789870794837159450937607936634262958596371900080968970074481285534010213882782607475530633642858412844926162997953642617005869667182955311270883336855996576335543478784025481756225080062439002266051271561942344028745745788181094657513720610772251699306919259265226592600050736373756661252910181567169680768897186165011451124969285236622451722848267754747158858534758739901088134690476634149814624670485948058800075119466493557082834222298020480705645344553796004541210737156908370557640307720034399723853785647967920341514782854585313809347304328466460604466086130080068109796954487792957173036350766075988314759481918150315316810171530799374768382642591723503137058445979014381747145642159094145803082332433232118245959631922298693416728577924992146428772459337960044661611009536440322406082406950699425821214665288482613607449488007104441635203531446187304372956243962789545936390306138129069410956631996328770467711277675577270283391053341844208517880610736707163342241395375320630516060582045053152099213275683824278566681009955938731211399794740840217487388444646884467704807284770669166730806430210387513309285504520101214398747339987795634781585123655535461223331180166849626115737489694039337740965705732354743207848743961138025542720514948461646479811718816264761541008683657989377790958923305099112077921430004997491701520038415404473963175166619774473550617718244577184392497887490557338231779056679884517072303176291274762271102460086086077856341647948655463778893252122531194221121401393041654239551354284444146989937339142969769071930425206338585854070319292015959465585259624292761862466180326756061345756515049640124842776020189793570684771993195775255754177460543004197466601796191070788985139791223203441820596859421494558523124998946270886431431390238378539024784267005304017805203771732239127597644056046961319237091905163620671437932568086713221693132976895145793554144849138518433138285733890224465864035305637076895389701872781794928457666134645105799001330757054341029605571012066892649827694885018919099339783027801495043639705551795258524578498592258572615195304394935867828715615734680114531257583131083188532793690586300667428483765602114025097000905944897002540489335112957577145772869209807051890934767754430843247152065205835504202313788866596679544741220621136239220978979222233405939260386249176895184714967809527233011710953941174947255654465715153047624085911606744000870342478623415165719510854865694434798652052936755985347941888928229150130828860904555734193016458994915074708600611179092904994686166151242010163145392102783568818937075162928275759655714202718210988705256870499004453644587019293443845934789743084592639988227850364644176736600333397171100642138898442531563984540678442876526580750124006917280772957929794545019408643109442334375765952053510498528116302768933364645242987131806370074900010245886196811281538378113984434464666910815162364920438763581711893606913014207226999775119291583398738175055608366198011246357565968446577886455772548418356461436597231261375478565439790645587574162355286329585001145152487589664843819718511632752841657719192378962976355293408551762958489270190094593231474787793798450793775655401070517815925885456207788723018294426040839202398681340159819296918489654421517704278525959688588911405893042497618736032407542255780765503314657903066962168565646694225135019100623515724571125684194282498755368931343463886941747459003251063694306447651162794463269819944092124087822982188116436606892062318913821761296223641012277562365240724896521875153652896099967371419146921969498580955390685518400421545788396630005265184884686859939461497312443936975475273227604496481807610887731406053290165225852727698761886355611303380728857109847294843791918791482645336501319306850298527857345073039205823851340692978040675160142412660698584385031275329701160399559540261322216401465098884263598353667835628336519041480430291093637275262011909057488641678720124446753751293026458462883860648073556669571731760824526016457853852197228908120557229780956284926608576828834397004058699940512095635787670262458418066143533952855141321670992675219241665837602787146324737656295085164694329125657166760106768485057645438833197789501770659240457170015091094261401962516316382443445106797095542825144432319030031227616295365694822424824952354822612370040347332360309741594053856089498448769362173623509146279922975249447039623636013192078094685935476541425398283827103627227904389201642742166682283305802064437900392287555895200445045063101477745329245635618000770935587391799039997782043296692503942012938691021371357731419781569184651194820999377510456887016584011124483578442428919311321429135071100179136120758112475344803699256621377303627261501667273007332064139666358455876196118442713902472633673963577505644261700696063725343039940665470434786231413493543200890410612072858706633385430899551766686466103493162316957167925629883082608565198985350488386115629617135917985408732482255983317144324593498397866948347713909452674320625067392976307423415079271064707531968081482687023996232478838514663898258512521958949529878831307962834681287762352204696421119881961953106805866406583119874204013987984341666048983116297956516694611699221416765317511701977478824300994255707418059939882955351960361900415862847063823918839575571544453762167636980709759975531845911922471155238057093857576915094352319331619470017309372900000233080228628392162400663230715149446518372733757624401239471905848507070590958820995181690475578793096517707932795382746634994422940809262738408595157611966030334923814027010636247475945065771638143560940334721516736773426606264991532163716077734499682708835845335073489618714917206479211148685154571406567277025327065003910413684557722373985347589341806400865248683781445752848966713720923304611255359924023025632197779047400661455097412184231302601680488664192233869407413674597343241920361827498189550363367035005470590307602430054085754369437928666409172872348756091031779712651351216864081985050267562044634252577797388715007816077287330639896687641529895340663089344604450280752326510215383294830529152774338384328851481053969440143629394867975358717989744697357772694099960466307228618487698484264237575651223198332907536990851294048767208768823344231238570258044766988199653685650391875489784830190901677536326733021507332730618983830141304065356902647884940769711633496618654216526539836453742028419316610438007047808039702510535403601346957458876635399502023425439005010499812143911092881381954484322345771275320098432369519599897075231338900108110802223749280414261456821141169597864479048576746160674101421851363711053943134789652699973897221837250819247762632318424230151324500471049572701765660719346211703363241729935758096714708642940177759288410758140517903105716809087525061884697688931437635364391742686347569914832861632314086542907484833428740803367360021507966640450317564355185296806010822670615950971052684026201330887585736520249131445166717787671388333241656562571498757211966686044178536133146486864958903887768818689785971792352883860004300311691985263567104836880243487767272498587164748435897994388913064269258486585495488864505102768677912690448738296074996213337987816619327928086486443274657999518187792159957737723672062892101987238464192018704040631539264379699068914916519479878752473685135474100836728770208387962031717380771127102959818933081906641890604977058458993786714247319402900894626531295739732872322039031145962300123615716968206871328457982260253753560349842264716360833896075245571828877264954337203586327898388785348003023439983315622948094126891276957546942749707465092616870980305134035350719047861642468062236866373488469623994459529961150574709863571365454632518358672103722738398026419983424250216811409711930080021406699743724812675495761203693107037941058250384689367525614494032063551790472953341779365244263537010443926837605945063731053200804016916572869674745890459878907614490681707317027640789714928919432877571112832376416132244524806307870839243598335056045056601737740166078600773935941360480697486425833344177963337352439157101273058137410784398601123193125186407189526951098026187139513141600832057088036685289338981504939478100145778337947955754893711768437204996691681738769860790415949839323789598973182291340354896698909472287559874668234033346222137540169604948633358522232935407448782661705973684837795247650344574192880107252258146573025629121580384748030541710579387656098687645026753309207965340817615237905362650789162827100410243281098083361546047552193948087964994107038366426519270897934995733365780666902675757526484364503662922670095658080068252768559668358034800804927027404538471875856436093922734278127022877873249269181366113954389089685537264052502613002843879545925088312140193778791138574141607159370568893272850202862958439666800212020166302775004707774762296192184825222433281480155328602133613160194132224757415348291710972817780716233983727957127190308056954544768735229035638906973117462946040742837823328144659524073743992458057118769247755316466021454829529624389211980217891570400728957832806510885146060341689693440010341924150270214802657364268057255309778572250719511513654130586534607463156809740669276839762496841964971066079157185764157910185522560971303279872171699239195510107842549704720873061872319449629031662813349994586418219763530333567579520917530154440952217112225828275479578060764066342545132738506026336906761946396784203297745104620882274509577794911334914831456428720475154316601252344593802280769388770397887374228353460683948012566463194797775165813993317633286045693428159896899459732689844930900979486871085866431891312158740283330223263934357831700084267170615386328973509628281177086879534709366251622594992418767115551414385122179259964313784411502760594365315483491383987241311182859363384816737619549537913752714906995698010260507955393247554677645513449624242160455038571056833758333104318901806062816301718982823535384793506623576500126778147335218238440849345807725633670134633773416567297931902081349432839252250595870746382766742298104645605564756662667379316776224394558219218945642991791993195626111315366070526276873828997466791813011415734404925319202287121851369407706624916441352277304462597199583688527144776082402435347404804782774280013441759521070804750615288365580224997246388764011511943960399235110440689785017621938043006884183619540730232507500394474583188803200744908729149481330418036842670440220955688732424446167931712991377358362741759197519507291857823503206447110588297034980628095137591194156781210614225007856831131035291041548846138492868257446738809640954357269179769988049881441123420418088757969674557200191114852117445961472512232083080815933083145849186999916263804184729886732187137051390337407630678425924520004119405070222871926685605816404344801262107760832992105513165713813221093126374029546825523151440451264760668439224941109709373357892062688331581305023478217000181504442463725203448361196731201197451114173940392192597637455446974788770564613991284488573256855484053575482824783547895567709218194357489128007989421311568845487627550286314578402907767855458300856232785745554992302036497561977642482799244575932271871868751463045944629461739214993863515070421278478115387448465917763358328162645422704593109971360667309329106064084018565258276660155077751092151913223440566777983356875422125326195154530964666871874091817138204823491101706391242081409155632038947008782077525559564233425715848133256643465230224296302113315543489591596778545488703843972245821619930403809315516103191330322513031247335077161387061526658167238052865536482050277144700975748007677488984194441347734985959976978859333407776664588797599913462187858632027113012125273307291982901380611665470255092660842192228221523265350473447099319016853924099649472281133123242618776796745743366550852110782969006840585664032502233820715751595138258441153966688477706508054256581070119999095374370589397094400272495610519585831128153467575261916889352956881788159364098643059880184261708065222804658067169083617114662421552189026456814888848029161241132838383899897204958006177988876358262692736679461218450849490464288664354863657327701683820083727265658947810133083038366055920110235920255782051491487200471396921729548688554451923291921730561200414893752008575424569259559656931075998278161011346680468328908149256251174724566786598124307869180069786305488240312853746372506126658258247464320478015266901870130794655773370592106999932022962188044459239836663669983049741403794802632970883112290345982085650600355926926296490367921854065473955397466309669313071681567743619341704102914111386128904726157838100823672342719775263233828807381224264613383629799906428170578380379428821259611452947681874064855786774923232978062787848142360465357982425485611849397569326332499745960182768501302791547723169457902086405315257913053023887069380145568328751450767816768808301018867055376176568602448938445909759145778090591325607432159471501629297022701709688175900333486546931547360040616570223207082750517365504395076350099724586557693369586402852739165793500499693761020444244896945652148222414811545833750125393982141713909165112235810628102336893582791299072011363158896122070382112237888046528098736533005207706592880078239340009609220455941200443911223691512858744526488628757640973392698709930182410217100542439618816279652826677766113442357301063575812856161325605203076220557129267792886242587763545696043766234943206579067999449667677898252745599936168075607180525549834345634456080842592192159242022708787043418436743713918586226926242059589766317716739949979582418927978678295484403857314347159686529227370028374282337258865213113302881121994141026463620412951386421109608863428104447701315178460966430864177201676532416127548740448242444372834068325688309033818749957329668441481594328725405497544109266715894479340008310878490908942715753865964698411470270484889284319054208041259100436371185223091499447483070771713231510703084832131815829332458104145071797938949249663548373632497830385381941259264519855613841596706096115679270105293100438866008362016025770464614254465402226698347717460965978789263539804731314908084385749665623082887876123572956833968033710190571827884504746298698972257588819223751198836737888224170694074043335515978175624848013134477021811978203630965644193925865260209424713794582800190906910383720287717010806211664327504339083516380989554654052653062095949613715865612175717168838036753806005949890116916812972885837092240306619570789972005339403072145274256259498167126125372752824107797761119799445497555407978726998565624429686277563881057461953923224768403936750627079234785209618385231333864064976193925059044720020470994039113775336871962949439617529235503828036355131489345808718110799566989214601972713841980132715485467156619216118418103154945363611760603635236015257429873895089324676281075551791751730090942616591457760516098384872614708698209558511995942189631618943537646165843992274963852361848094759608765591975166395689139008359887205873339993150177960407861472370933349205008058395213980149129283460392215568026867329558782658256244882412807315609494729699912713197391466291184454552756006183382518059103521134756154486379466084473593696978593665433208728143158266970281983969914229301814010359460333313148018799348349404379965389981579428440615964347621209051812878592264528956985888638479105804698744457467771841858356167939096765469052851830663547194070935848103036272041017228138928178328939985401917057905028695989241816080812784738814298499830333741295935437561924150908748349468360794682723720438909540584286927242512013699273012726118896013703240406671895561937600774877848728331920300626731970610881191580487398125892459549452967533723633878593922385113507147480004889277470775127815615378463090702228346006202315631327816323532283211846229666354360412204023578133937897147369627067221329927450301678866859491661071954002968081255842734337772651018520964189399531581205596007565924435363500187507101974142622047297826628518520299881461869809929956954387215831150458871204807681871241195815781833486808307446954616754974217709652090952548601078983058385265220231703843203730187418421100972883356519345557365602827920989542726904024711331450317013432842525040417719903158569844927720911386468286421130188603709313935047165387288337081750327904454793947910435219030249862048544596550158210955465999037877837889075451782144604454683042383530912000106099469591441474578263808589049608912586174695325205602365107181176310184858665878965815084657439199554265527097623290657063453013222439063600039588441216820743505486452585604805204612275999039464063422819374273875030783110811277211749085606215355421629037355543797641023505640868181413418479708044874784925688110413998963330198547082084816334116624446688337253440218891205478959425594757624025486080246967161593311591057266504595583201309870161605359136999394612688578571898705811071086258476432940539054908729737030444815809155885704124312426291557662840026880255203156814864631828632649659014130038081365489100103364823405792019497586376116743110129537889613043898771505466717754496037767891623962781414243822802912759930420450608835216915597348148590049120108840088922506229485072986625484131035884439644618850025967128093241322120147207926827473854383855953561718498436702178983793669453682015435729488241619338849247418102032018366850984528083875103960006891853622809347523529781029643891121933389895264181869456254122395164348884579968546851383760476651693069970449521185921551058007386683592632539131801431365583680311567732064358740514968657556511416341707183676259903557755371712175825829540485062459556232559889973794601972386921045867692719308455848592891395927300033138186075463198370977316716752752870031586747262386459022699069665280414014382768699010549556535032513987412296814429264251237352204516223733811031882099272602140287136280894771903655426775610038939317568592672824202046085657161172866188281193121924615447218489780311053548310421957776098696504647259759164792171287933503746346568551906347584845660693977914581642673288700616104492406329834362101859994249454592955264413710994236256781589603330776391571438898656706535233444237417632884086732966358840730835720401710331877386290387114730147546116881577147998289144018518908571722727167346034485805697888624707951034048104298894026125099970851890476503456984252490476802418328550911249960526064415778913407898234548833984410887210134633589749280192018494483839426433067804621843359901401663717366448648456198439320810683529306866390728630561262244764453250093272448455708089716096694819463117158407412494848243081652200389495539634033119923711443719936477829250719249673688084622585611171764891215231143572042206435645343185522538670770911301063134419412205817675148118552365787136634183993717428762385224552488400308581342947629986323958047534167036614317714525529360502317382858116478386120470673950500917730244668923958780987849591723405190111624719948079140672658464944576140570904659989725848539442229955848727139520863982544829388781698942376761027310632231107139738583746104192129988915355307210330913280465023612801720142661684223386059240229003804829578246385199573399528981520344273824982008942278927150225302702707785423610093983401305113302185033757971982723476039419816182110107856279004174529884451858567007701451352328170064079680789673292520373779670635150896510540905992634015205619562281577732005936659091044535562604430838520770867326539670384598943150935775205144139510774103846859897760609295299206759850951174122140211499848990709961224212519580747087713446961911366222297109673202867477069222230381362082122250371876272304377585105379096344551253039533721860383485640469197213772712528270053005886322650869413337610038175422816369012804814417188947778450136077971249553101488580909267040374986268657361429937842948234090169928159745898875191297602655109676556610728551155834727976236177279690456635233638954515989787777148420489273423826700793289847131784154165594838580957195761697332550947101902812432921204462930346204675846719352111508773389109902881098506414375859269909431576023185095588234579362655593285222759063809186512346605346319760671206260270823702999191537803969449065303823829225096480116752969067970448981021163922555395988361488029916671161618375512000403293631841936208151256392963345316776887751830742362727555763613815449829857445271524483336230285378773656353639066142211908445041726157012989846876289313096015379350493607322647834402774821419114215631516416781291014692075436241718265413088809498075001335373071955377562700916663478153640672460506127877559187071319109364528964273779435203531684276166909100422572063661083439803860673785997142229839788831438277939591752278231987268932592906534171489949199735044595777165567379294636739139893916928885184910261913891648349809051215133220617565604571415430670491170314687592053679524031159281267691266305377943406051711277647158323152855694750994197460060175680880494474192561161420069031703520061078103763579944885631344278292547048167922853947906981492111901748941454997314977351629065241474031237414783256327831352853905705642413982171847095794380236106150568416188721115920991820516841975008810446045150955964689007146702555407510806608866752173100877452307998790773646902915317136627507258186522989081567185332458622118278829793751005858087238950068306470535546555311759630096010921154841974540234274856018964824281606754236948640388871909757563051262817951678053104424368608055685779816389290206125205956495740263634537569676951703330932500983483899544500203471875371125503114411166832029532200714568986949414039775067320802176683734220966473691884641258749941083997652788173107546757659221762985215188414587931830022212421015640417137372855226015449205835088921363234419082695174945664533329467330562178067820909265378956817584173427352301512883476068611931233081973907747446126745888456891522376569362286060585365875991472860871634109869086699608036798590651602661074216427428478318500559029484578332518841523488803325361109390333745696915871395312038679980407516445653480114705190635007326955338014750523623530623835943977799258028525481681356071348870510910686990289423891259213456987938967792865683968415585965859966652231304584999391486484424717718258159442720137518067734546004573587737590513625006958297119212747690681658918296519900398553716616143742726384655122315643025163367386235355914357401332443396147730661127113106716638284468586313695165724681235585117951014218314511589690894782970091880587022172134874504374269304771929751372153570766128945838427757602494206825128944900760681090596197817081234814612962396890841550424463955598336136512505251423349120967871767073581960760392363077894304442189290040045270027966980954685331093867967864688728258541340296298651154560578696928344718314784443900231101972728612602503634904705488306131490459958181946391214380634813568648897285714006032063624998320012823022745891180562996350693549094068722683430671024575072051876635180279942999317389949162265945847115874280954394299108779606717128537838431878543728561925513150144970864520877989159872549890884757461685256687764883536573946514950966865515860990322837101282615938364617977753976216794539936749543339801161550618913941072097191420803189109507772525629127038945250939841114250331364407486255947446268268122338871957411956402329282311198694883387820756876987213096578193270249873463905351861362484543434867596928300724061085029811471919941350562954518937665817268273295871800160271598765954402885588170753895446133451083835600523720058793842005698659879344600499486250541843926342763350632925130328265071397845964523630478415782365769144404206083624045250225009770333333637731188436212328272601668669045464903506517832045426413755052857824477418116513390764768028552749972348370739501751049860673177791223458001556552077271484192890365477074563875524141127665652420606707790839040943108894013299172901131362231504806583831048687472130770543676157341875323659191232993078136534992079452572988634685490723998023553418111145805514189487728336513749933424470302311809488671804974517483901156754099780994608438062927640481736972752157065941887037180619779885856778358457123169178205180240851537160237843985933414159685602295114654746639947094333410649511745591050592686308022932895216836616877339642905830562488191524946430151538280659183427477392308151887705919651908799577987513918040358394395083942530510639619473124860091457951012111584434441828185010334490300749416835749017700144568546223433391761955536567670501750757507270999188855316380518808292529561954647946501279286296919310338312233663296521895818274570036798283582574603159820364743628750264474038882820479109548018951742834767127702933438768766980311814641491157901695306885711987709933347691626419264676209262859608883446245057826403761649481466017130221370579180124322080304003190363612279424456024978848846169619256801740698310643800282219163110473581677204027032618579181488101834378120806399519795383014038656336483709054734025355138004441990141153613646769981724948253965776472523874950118134614270362027192542465588713215831977673118959683440837633784871678387829984425292253031689520515922724529717257101968314976803131642451046715259283867207858771291830393091438516850412985649639892966489853058962438053536921121554781585366145526309722871196175628998328750433699049318247722256955333714076070916844513164978055282106751155721743640576980239147660098562100737579447688616311879700695029541971585707597154887479249483920186875540999809325990811375367632280300650117631166605264511667354174794382392072384189521009394262166416828813748777309888417018801733958385615601529054758550221705385018302233684970319719109404468114520136790600581891116095010973034014275885832742623065546898995791865194432050122441179256123424310040811539875376398821244286874441694326476415656350712938767708324886017115779631604140483781004641317256387343732372372890725921918364055806172500596135452544155746994115464583863360908410733072432302152265984591498017511106450230707375765405209005287020993224928910571716139104684744253151555918729867430251852930535284747502044711113201583412222565714077065620436797696713431971829468581164440844886627496643620376684613792727075417879592968580323456818896448889468392458959402501421704853317253600092204084106103561096181120933877504894611191123228375946523612958340397267643534071222874487260880449720475505332183696738976030371053552023297649740346633521476537264717686071848871043243942019401833247092916201295847332717680070343675564646583508244324248136738836434235201522781478886376044444349482661410607414596756826669107691593766311249707404801000150755687317799845552908228320284841156889205099501807003328882755685831448396641307872844091825948687765669295556156438312253706799158536021136368438979703596634565289626613240837907056397200248290835901333383497821861565395829292058239974465439364928826031857228652184682972699729747363051987986372999829971908977384677844005938469517517765054268310100215460829499137361904285653481429450478048963586183164548450202273700605875533893679969106600123025990430310614253044406369355791133303167050277661640204148589669282264068557704353283463679008377872462159299794998079264080628701684002623521576280111627642631356217341844180308558828353844722959878548563747823645057271402251336196653653802708627131346829824518901763656583783086868907905714179136583791266856303632157367190139301415886694015545633327492090145424351126903068183786516923049289743481763723685607168124610875056717932870362097601660841848322432347205523872366964529496676721534099487076199809198833600196157321996195455204718039118762201055702235840507264112509003409292075346681167265398038856971137652276944650319728613164345790815631782797698164512777449007351041010522891244753204669269633451069412235834243122690942325198325008124228276586671066776896423010035037830925940677643525235548441415095942555321315648029325161815718466684587749811431230018387024685850128080090911653105315958369218491882497959241345089967191098486193732047735286226192431140698414752592337667560207609663881555643406297675465619264720252816321008636769961502141740625088465628486468673901716471361613289192706677000444417322928500368167418021367173090147194842440972436500999752086943715787191983324919333074480800149087035866976682880667913671298924650816940703238868748574187449503401718694512008932756780660399096246749092749817939361131627124221491561614083148078940818792000470097642234261256630466391143928379020239830804815285996225115258163477676293756246959093259247478169187412901839164679634887670609630829475791679010571870144183269338234448929743486114642444687108213625597178057956642174104365177752076351855096443332232973861884931688986526257317941808046477584357249755159848150674845068282092204606764510164985416626551276642792973498732958227273362577227077130074361971974757412201698376956604410425770736925385109282585913180642228453630744508572145754022754120634200583446615494455806303869013442615548345951922104305932121186318351980981363126874101716164168819023796943004411865432601841216470052469042970560501097309928726662814142755229354319603943449118968594122015057596001270198218258961917005367283071509470403542944708462836311840496880447666726824832081154841774385399480138665459948110533650592105810024359588557093051872550597768786849008394873468321673894861811739613445343726979708919414246290734551145908695728451220543013346559826531598292582081433171953230389024090663397359700582703243884084792885161140113495074584575881761127751747230198362814953987208038289088708446102664297541822197241195240567342656613696262399071253312359203556750036487001429426231359332871099185305456463063026225596368022127612204792987088844676957249679160567865262451127960674279574462399915021333774641371954676170793703304071838761557803286618300997124214775004920431435112858615252946070359265694169129513299750102323168870466327582537431838026497933063627292990215351598214214296444915945598430480339078725206515214430040347647854462971552247390353274411036508747164612043282677326759094395380528154508653346004449182012086423244333083036022483003616148254835792148088491096455206390483606254002117353398127325933450657997349929754925403291719885120552243258861096378801724876314858414930542719403969589416075619962691563195831616214828050976214820910911311949997171404585486566242908040695736914330178666765646409632748622065019091007066050977152632497380903145103070930715624294702922188212678914606156585125127256226196704775072975650840609116902033003061363852840373658482234505852915037644340449622260068762542260065462755433644614677128654637170464660690013224509486512953663530165296289127506256304751001233283092558349195138335674242410446473665683301153169021098020300383902410885135639278904643120697229996933441429964738814383402642285990606868491274997872414622404372868855161409970751709375445611092892897372278968863037832551142683271707299528958032901170924733290126270716175672084465341268627932960008352635796581820562281097846324978742863784289921196081874694070270630787529245367320442528744432057654850270790784844334245982378238371035585086732262310968603069966456310175922136253295230868109079740727718811329254169115664336424117887357344196963749845262209682323353264519482966317865455312128792537040494313957527290168433579302946832081804208544150393702483745118047892304403201232655019270409329166013820897603980774734867951974511834713449676482671467215460366305544509394764784350187559433129320871839095475607847577512190314728784882934799050319048765680669956610916200151725815482812088769007321136534655472600942650287619890687340056965075393129327405155645916547731896394363113714302706641117453075243318067675641074249568413423990115589415778432188984997548727523578644010668729251173885336575445666871714099687774953014681269155565999707526310234209824848105830232175623203775754780858122637157273908610797245585341105895086307327070947548951959306380063573149622825230783957680537030591538825465962420858297111050885127533804779154636009138075615663381598831203926639107132590478274882663104309524374347227417915271041908062029664218101391860499726838448747045576996231405884805333638879937798665560553387951619230533443806916610070425648717086167215641908003757925828455608968783121186351628010377626503828113189557424379457224830018237551986188341846016260149334647033612703138190213664646474326514555016535088957826841294482936501509602690462499611306357449987063001579337817668971507983564799830107984953891282955036095783560272975382560224238100032830289557078159246054287648342763459467555384939439281923813316987681027492549675290451038625389688937288122423316158372736565177678139589791785621917721033320109345437980742843194747500540440077388360347891135847063031683803548028672859700082228592850815580312094493592130689723271021700809640187747970044463886219286736063305690732307135340502543547605302337898006583445017464213232914436905863330065881897059740827088200982681717108225165269543847066609711345409847805387781535780030054571142415299132375136282356369458528797380263953615650812584098767376420051517316556795229445251986394677493187192251867007092752289336223587307579313644163510534464591224654074022971053555384093590755803647685999776926024615892184157358487360155934241544760558774774301275265725484948927328196812819292420844745277514471258488726334417447675840256716780444525146766825549270239779632062660753014371254190181384156633124270697778771998725785013090120488859442002460621653966172314954461193567462662389627792829969646765541707905756279467604502010585385905859894002071137131629771508659031298813355382108943470362642814149533865591920370460695290741787064402668941979576492399324677667072803109752168017308598851115002686838890112218713967019955585582689356811464680996021928156436283224057147863817451703406497166410608636158782375579899704652121326266538230441082486725439125794527956799311449985834734767378901182494425279359056378721336304433512095978801839091930901759223067497905804633478999232220830837823520793999842983145954476197188963876873773094235643971034720498434356076196810238012936812600839143551002326223660083995739784475767339945952905122074862796341752867246025508537635247545038149715786701599437870508395605698687016603008312038785593721388406866967800164926094721115794357129599648982209206106170141828474269802007284352584915720709978994577897361050076695311985011369273070293527202723658759424402342797495854960184250804409297417733382562411801722105782495575240255097175686966412134108889179338791124818245372505507607885577028163428890134988894096474273300128854679277977765513729177101767928364697060024059662346087726324183160928482021893519530375231022298940900379022457967874939281826616837019610250540744692972562760905580369500794280502229484205622047725150201363215022938658328604513355262889983598345867504767028266299480873195292574303196333545578675844932135507947741756430827323382145308136058502194665173693231254065006289716984413095279284280653318296937001826316050470628883844504114580223135467269393391133411320065999373875997716567995318785634604602962215629026885697814684190931268778081658557712114581095991093566651324717711124939905806510704562527439609550425634153436853443600981819678892626617902059464042889429912575676285904706065298417361411272110144028555478817981740476360569792797131925374561374925849506665858079119618142223926507072028031985689846097378927097427000306283733237361139428773767630021140737243655515313765345964519940402554624783972330849105721267677651932688994342977529678037314622173151166398345423105500977460159474511228360116716048870695207407467211085013323856860973809041711682006802254531556166838129543139043103688505515406586799847575025231241046379425569914244583443065360706513935317309557225430894707467304382087076339693069410490521914363871054531906099704076687572773265691559572954626234744319579743766457549638914049463924606576351797919047600164429042057383846359711017697669011357730479226849486415351938182909674779064255827646944642799078059197092734943700872761824278057214061891549961197668861376387726159099041675589720075293905375557893949067786570667634091432163373164609031787005710788796176696607980504131251409902511554154104584462231998842875172482639074804524080267689938563795391290012584443878790261507337302816456071797209127079945544626244046046386054541059901846864631317480860711919500846817344186427208163044296256465882229861893756516298227570613492836850476162963427269338533126392410693312481279419584941595220932333811465693933879643516217400797714228089982096524932450934643348829799484399725084560420647104041731728233658199492705639581625876384225533465515882159273479774630627261244846419145524566052555012402625801782830696334306688648348522986619935107468173800398244965270951110897807266274456400092410862194864566288672595320703983754966406843289738409489331265129298096228158742483967525196338242885671649604786267315953979072987810270364266510039135570386025752702147518724565498345688677825892927900346922907723846611734649176522440907816060021823810279442623318710831653647533243417489775601182235467756703552269902645161199347120016443970987006860593015310852474763967870943309102960204039297873266629726262084229710328007409895154717878206940305925395113614746347685939439327793703650533468435477468137552212784694587015142401996727415128723479330217855737300130898302573476171430697404174447093635103660239086202134692962706777667943272113566816083971012925438935824670467179467153705728022266457511021602755457705542020264470271276270103913254720150601323879819188532991651410876527055729390035296138136752118796363773819584766181230796682707657634484702430649501285988710461948686225163139736089052857284676775106959213163803320881007477937130069721726508690912618500437014029565321113060155649746061695151784299735064843227476677908651485018334091180585177837619279603123586688332237459319047120950038541216443432641241673327091790317588107520913260073709956206787268635916433329916437694430239826749886154849172288359095946218551012256812654783719213759286259621411912874068802364652662946131423259672501662733440863269726829176605453864104940102529470242031416278648084777245552400987051385339063576874948465817505637635218751587649186304885999670802765504867214029414483488820753579362575140079889944231390888300650949341431039825343367547674062263098079978872319762759250278957986424639925392095747577632367788387968227887717810531290473662232070115177846934258010075052060294023930785876157244683416228560466183717457736720711926738549302789084346817012555909455892467236406016512146722967713828366642366601072223183424693210503221204257621107401663124466455518745068766950848949737837769004400953046291663837729134922127666358218842790070525136192604993982388126871471852562805185290175029955323488211006810754081226145872191851799201146321023927016983153460555471103361522563496108030756169905925470043646830632837924345757988892892485208480991358283246635599900287135725973082399187371540617610297484063226576135473613124740904965429829560619669218173224595769723829597454412991802384994207226630083522815966192601064150733946634677028967615008172908166897650081900627263085628022953760469132226189547622346187685105464651272449074390599656832144631324545798431985348205694654610786884063375655582655665413178427487254928072992655622852127586046804588812527303425172384998696706315011581149626659516144398051931492752525228896812412887418231397479657472656860863378256434095254846227235528728293311742671960502499072352615982053996114249119037100446919275216687601283685407799353192664134874689615558898209327351699780548213476385783102831341479625833111876982985369605164052502213344935730226731087901880054687157659609645352677294774074223282432858262155501315169745334610181159292527423162878628549021760751850703593382881095695272290211111474095505553303151751195414751950908311547827354194395694707275746266730932050990779547299221309990087048816544358454244153230672972393477783078769421289568932081151508731540265324741771286750380171189687555500687591084183818025688506353504036261112286980607778380451503278339661700305135809251411432673512654693461878726544259640028156213213340387056533231835860631342143854481663286759249910432116587181008564944237521428104258606777693188679989081856551974823259400272492291763673440817371680147680825941357628005910481807172812345190503466385486660560975712114386793099938347095793145322907888842800026895394291221156007672519413609165447729649174903887517125200435338095942203174945887228584074179098009766741556870517583732353766090873526399970715894383665258998900413809115369375770005370354787382645286562800878928381731576041967512872635080520907409178131856504560280272494249433190474065374477709416788692138374119074256931399997712634440583538601321889352238827770310380095429578529044368086798979609591559192999502223778992624216670912512833714259602280782536740117093726433162769568408050828406427476847005896555880463719608042625204945604702540095789823213996398489506425666612074310307543314180427875819474336697573453108179730851851874880620458528440673853557335420801056997960511101249321041022714016443297323148356663438728176406431190278548041834891035511344210983003612526758394678573612393030421904531642576254892601608289581355679520216231063433418833076164476011848392435094974890367904993773100620648900928843684375526781418464072688852695863717154109096483187766404755807575136683231285935483022317879996387651586411458273995918836661079647465592754882220220250233613012808068652316019609825793292141122521255903951425919722987352536168216648182127165020876102494778826428755714626234217046743831526679889361369769767252631539532774238566212760961972848259329798967304005626582565908607861608448047224561120483526936015624601015366688159097586531494220981484880441501443049363031054818506970893019153996641769562355041930317591037004185994583351052494135196151998345568783567838167242196596001460633936776641496344066898870963971153893730568575060623991733196725052637882398226695217003271815752020790098675233542642789348170142240834215756202807538386179691389890528394818382894826473466461660996693092353757374688440411079497508440764301641889920777748685892177313289674454779886235448591959277346628617718145792546553218939940495985318976574998916760351757806654669850142690168175388653692523813159901795391776082523132958963007414677071403591882055431672915485730611084457875766280411620258587616028745583752051605355619232711848853823870428414302046101063910896439364229686946424060115958381644756319325893571726049358048637682486611713533931751614878497534697857224017092635136072905106404097035692851753313811826987168661562214507877442604241640582789269147198523206912460735978128993356846238477662865937722345453910679206420721838551129566530335132928751842146195638952719670083277221811353955121305739821276273349439266378162822438349529673692587474199679898964842656912923021161090874187751820325968102692398130681382297622278128743307266197646294366182435148974588435525729790863996260667825764348088186529207261596063607336904441138142129889957348663312693092199707151560568968818750508852479917174073786181587375046565536477684270343937653305796055383946437891257899497309943915730607965428742319298089170632425644728681197741882798554405096139665785162137333959250951278056986814166876629682012904611848108682697735107026495219182842341475709957002520645781611036885309788781378977322585899281994009148430297796931320762357465231266366805037011603282481177688554215526663851158134301579461818201282093599138697605487623757075406838864057179757949460065207855083835057439022838720433695692636424877776297355535612816465811772063118319691198543164240507541504298067279979308702724163988851371067607182052671496761274995507174367597979864585552685756380548791572640608746217817298251845015409701997337476065150396052797660184976470192988949054417999588957474823073577807179927704096501469985934744013397476843216930831717926771873004042333944622357128615412751140117921020225019047621324648782630218026597169877785847829088463715147171750172048150006827047380586246994264751270432642139742003902007592924604284875415619738370374491216873093957848064775655824451975197256582678172456621051364356242664320748073203631258088370638485211486017995202144233069426004555989203610552873052023783776969967125100438442920211500111462998534679642300391390536826523508682993413597758401612688784831771151277282290926129662280209937093552008298231772987324518701249773996107473657624307153491291825343602128807307514029232530787808669670189463197844039595968906199219514492349252126628936993078232613225991458389304682326497535329819564808697710960508847293722946246449945352661071304011154597892904623602431258242364120919191848560291353457208260609349423813021297375786132214494062337636534674568013227323764120379751703286437012076493004631861817559550651351616519792273315674190358930320547994044150494745304567855661769707815896563113342373991789271304947617487278337944329957223502053811414377879985832596565780049588431082311334557521421717309189300512287461355672068366783163956707101785663352189373184178655365497881469459873588887339335158336583082651169063815225325537316871973109145842883484235315006133905259134190326519134193776261178913549765877710888336624093441837180297903523706531606577030890796448535801893796939682317442987467356940716523421569209937598162447184117561300572879562839005524297702088251274177778612854894205714623546017103355468794483185066397655840961725534970759618233811191961659175542183039691783908223168816492471505579113210932416477621897397633299846217433446967983954134956337163303767285985423062759210966378808294487637929678814153240827597475597695314517832092432035120514397687113125448944995726880496930987038777383914725762252976860624702027150398989022497681243833160372288463203254649553241284695449880098681117575689341545834219909862094244307656438353397715798515192985916374141152147826859088159785365781611528313861723458375169626473012376861821173075332118124309218260483051389336006135527043905759945554690915822180204332512454654265560980796981610484596767185228794821382618866705213482774878646508864712478703836586898420097192671804506282396438062738868266808276868466902977809987447192880487818143459950237867940755969079075049568155362111838508283099883181353039078608726555816813491156499307013481623038376538046935854967282135525297790286823148495441069433289727784487161469908240329161163211970341614517020171578235532929728624397788912338494313372715633683028207763905140905163366312901924301235030535332197403745656699356790093391478150730044357310405536468038962555027190099713528529998765616522962197269626239640507186258724434463884918353946117145741892317955982147524597248667712838151242042914613377824399853145516756131191133837612796775480313522618934756205614708631660857753582625937765420032705079563429329430771974269337937994932105282763964260932960446648088483341798305368168632631452371170861110519704415375000723975684013511122073137231010652546686518941485508116150371886422103563717914843942084551778098320790843776727944989438288278613887065054904534907708637974549114833805826336841587514563383597450537376426243131848856422097806234003382600197089799403781716159819081758469396024826857485485985362990739249763480049317946593605988709898131229108191540370865848466916367134473371010060722967231658286740147641392769973531627698407718820357247050142175294825989030823875445964082096292208569037497969907460540549292359699748047704617779877581670643528737334023282489417826246130489268398101013719546858888537801261492019933104582852758923555450512912107773210460152344478152388132270662858105430452178206418143320738950672188052033419931193861481114709882604718964366766643273451891392083187483019239703244812078690311804048371993958091607155210842619424796452067216958858663659017859036441757920622459987106364331699395883220179615788244038909257076245359165054478553727050585865330994708979605917975133693260066136714158038223659492341017616340287405842897922878424925129056759491853474690554624510792802142748897155619219000504480066163440314979905748519878883935131824953527931362353768380696689521775339641561979968822628944839022347669168282651846564084472077703863895718877169040491400528036591107961120983310399083279838523011238178158176471978728001676493478791433548150835390053367326864088844037590816838496610074127566068348143744271217691576110139496788249890008114798275733295036364121285074786326881030804387927267320519230511532153111317892722911797829426367097580039641433648884135998001275399790564933564677561418354681305906259871941414371243252096148449614526721254458799336678742271127362337944029000191572949954064156097547710388117820678694146541479513789545566087998687037786387515699963491520116617539856509334930993460265564749116756013024487237821641921088769785116782339759001004172085192810145028499830107794751247428004724009075443622943550822787455259523289170974947748183151924425049317242723100618244948130808555537308881158416101167478394942138134913044822044509786049409751153921304921114500254329787323804466302464366679430001998749863004011499057239805250788221866725470554249729127552115630501493206179542759049514676916255090808399074751884424463055056216811958693416252274603171748719960738088409790188621942550171603611904859937421757010880478436491699631959018045752410118509635510342653824986083820612122317639079390922602584916131575938332733506533493329392447063825094667768071171951368794995980912155093357897265147247725239039111879596530512528891636654344198382708295146793690064485782972696078382839459033644458885137417360102727544827938699169638100596899322683485512676722944555790970797139044255184312687504042507512103847906502965889674001680029392208654109189159243256122918654673487077948050421018319909796411743935992474936875062962188611007590076988679850392316162810190903974346847563678070554748841895446210819993116276381734191209066414579741856884571023609386824633552702685920253451144173211293865681137867721018637287260865423425545630559970308806403943106555535782525817091289925373889846082073405901959013201031235819082862434997330524899495445417148659546000661731760695464359662792303636059139355885039102594849234612663358912240638146546833513060619483947825042832829506659211966530152202138401652927316195038742467702415786432227288431060505151225562225493901357299776806891175694710074566850941474055625844290918475443059722503781397796852944832704680537261324741225230854447506622298026780346922032017783318100449250803936790532869065180461173531819277481449361389591301920442750217812480082828722850075400309877634899111609951917103154048493495266548356458449131196673084680273117115999801068878805280494241155876567398001681745800017815936090506866373949929393463700576757548080183991843667246684631869910857417272040345309454434912046821133029747520956238155854676989944520223386195877392948854292648231237947598976386940140848560659278722902374173675609677631905310809723576975576104475048422837681105616068955658555629382338794509293516467093136834921927970065702593684530433446295459083643994949164207727191734234714672820608135963019969880732561478940752831475645410245270308339458779902034843662922691594058535902133990719904185113248932466293209174490445290080769290801120533064381704108624701082337129788348912186202043751054179368490787449246604421362187959549835695873774039177444299250540628178048902361003585257838932183904051997875732323544910905679947573061442799242774727859400776873786196288056558819560685806037310763780629151218584210572784289502037576956072929242133475612807737325051648357764165444611882011430508517248504293696602897495630533236419719918728879085432135746191453406065995013165028614167330688730386610249804304280214345381846878248187383601990000322392718141832944571131366622909701840881000517988554552803569952053503512500770648462910417224541984018707271392706320277039106779731172562560828941301939368105760934930366123166132775999565588922220065272250204076508102381256968301878250873342077554024239997477317786306278247743988107639992206175225227529636616834291824483270096493985040571484751108127770910555713535230141572236971519422349196721928577066297148118928412796498320638446594967714948976454277211381035011253915379348921880842148509923124347057517958168099327755856362957717322406743455180810976212457357309002759477445437642004093862182482002446904671998305624758423620773944846278130708232645316379300180907285204652148585073373483249306403393072612949071866880581463144492334829268674803998870018717539345019021503073417114416103897453547609239382926021212015854854652717247386698938029403273432465990351437956844843835684080051709046448481026015960694980931722033182398098236558280030926331711313428688233468942502200540944519282286680527125770805121253628836629515627737456848151673158465101138478669147444576003116728926057015640049283403392952044912174134394461991165663732865929902687820662549228764837281971835087479065566770133102531286453820183215405365684964785903174053003163279135114328864102980212262578660488468859526933292570504727089931136453654265422260842768116358622200257764835059469597678349339931836503728487071595436477940229795957571632393113549864864639178181671004607835819107808340254335147116954042079465301398515400323667153442739772697332034273411710247089610474998405167241264977969721395066856525013892819030003888573281767927355713007348921864283755267085144224603006686216665150625027586772555682786893972494329674447913268910878417428535147285635738796729153420879498291034876538135476114093706637377070558057320702390640667950453651579069472974043492400951360588982923801216561645853841573791021845803863683175014453967293931624361831899065330614030635937909070049700113159786356608129289583496710936701948034681300645666802123559838690169375850856525136703731896420890588908899452013931298001463644012336044111130451265056786753980880121586537953389024397539826325906918931923266286369214349039937668171235961213546064928433811294885496732853727946087811778680940574446121063260886699942201785790767195903742640424533767257022514610858898293451650680150541789514652261353813847476071917571532086310431513466561906812353071988419417409643466031755243282465555480225786495623797721555642137362126717992345012982150875111669305004228537149370448302888932291978439267773538213474684860912724890817317807032436250502730273601289777537528889995844346634714032488829806589381243998655983794446010944903111846948202895975764082114458153556423894697438909076041682415875635076245325263282882942272405697313261324441479341828475200103858972690320175393624349769857327981926650744984832491907344738787264146471110725838511441197787582326456834450993839611632982436510445333855232809238617292930397769309888300206028095146928729992278938884147044957150839505646604128859129478861340636923471627865192428112987944198033211111049282477951338243429682215120401365610867251442205981656450074806643753306053379983791316892818578818118718543178184105138061334704861088492244430945850109341176877447173579846539013814316812907946117468869586041904424336255231732233092148825325012841048132764553862574802717142141923704814650323052256673563838623053122814896246208467457763355539818318626279434031606021646985090507659834133827341495515727990671152642439199336020447285522103370791573718936780919044248141745722578157972696758687834172622002774221482425762717471698199807746677690777023912136801031660256174233775821194767206331247372848537805611824327751522880111617249506816972789459551100650750527687039203093631627416706589037167430468916228025892110881731421478575101552520622870952025403665616584435171836912119119866501303507910251236032629287612113811801633031258479722923719732234405236290370255399491613718884464311636683581040776397891282949200916958298906396175912921148991515002714291325939910918760017278624108754658247273569374297044052629933795667724592824516792138807475791330648613586594656161324672025493683908885319699860684243919892467608374098039772348253068681629577687289468434049555899664759796621674452984739011453487235993652494306609874461806902903396173488346208511044251293672857990911627980002431049942350619877244531766546970744564239346428978460507236862158747862646093306121934787981369878235326540153036841652187338475890147148967529634249255796260882366852018621348249936699014577438765326591538814391135145660949553575987203528014432842914337614842806703433570806202893594612155759682989881394041687727224094712310575161459741760292636617542039807765633337907059640046342232219858359228658451955544755357762933906756130377481618126556654593226041804547645443999616425470476172810546579748663108970097998401646953784945288152359965594768116858994834100495562341713045464521153091228478441702654215922941080751476051121754433244954188968052402978025032320614045713619164446332224668304657264447521472988092469570870157905748183400660278150781278478035392987336373895529383511869104675666557167072808174703712949479503210486861536307225836275477916046162950585889634978696909919485425987279147058631065233155301164470025031156070412439993979154091712795281164905614521116881879272744810898290146687085717153249816517554519667964446830138928597083524342043695623366824563448605613818584482874787367491085479129293946795630449678026125689477388384017999216478933256034323015703719484508999354848901475897863468705123402445210556677193708644497001477213757509923882332825070856032923584988532811299492079798112848284932001811486047498295371342657941639456699875946687090627105306030336433062956952717859716064997821574122106567925099661527762060462249899021794559618865630284204826131455401715351797659827208923540961616076527031337321109506220560224826096708738354167688223168094193309754304124059053378241604564187447886391408863817421491847665136250005781756635164343452856262706083790322746376293786148176510340397025307173990319071115826217397772759538945019305772552907731738646110397545656158539272647296951528261919775399060569033428839582473876694443921012632938303284356546574243907194813758015952888428626496073853056118024339252176450985034671100954312671160548527022196150805846330558922282292176631495135116056432612954871334397486581182983593423594159057904336092221636949710484986368264911311471272793005652691500598412029140796436579093495124494901006825329514298902619042834761453051647342827908658219640426957612740052667093141157754808061947508977477888481157620019410183647053780750458106672524730672286420699503348163998088854541724206884011568323987086529812098009529062637395508757982321061018966796939302182894442392026216036627417515296306290741714478014187929841993851222856118034526069793830316169384405714003652590125726799583459301257905018388153005925646998075640863047418117726678174356256378627277769431954079798644998460909526463474993070167342610193196167376381907915502934400819900436905566078985435840288606676893489106017501340596771258895168186528208732053070113656822215396654564508845200962922996103614561251047632568138550806376613892637466878599169643007819032462053211932778083371419341379474048042628443164795374554539857051684590794204122159682391066863429550746927319578663735860718577715132008696000822199382672127605874604146298320599361927745181366299342794569194687521248426583005823448490550050227525068696252499412771263431904466319495725832354562522256270997464246796436563244279146504639712661546909953387051722610425719516443403288376267700802972746407218718813328893973942273843598110294077515798342281426059648571312929964462137336081291482894521723641345491704222827260838348578319601734506279685721368226142453595857021105785679318939180622001500710372590557907974251756500180368478663189154786399004794951323668828170976113834907805727338524582272151245028252502624552510431813699314119013653916817100499745221584458189077478665226907744657317523730322733523198953393261036898183124124772849493957340083275694475846865158413091094259385572907051817515173810920064135044524574008011116098071634940393270427113150278097521535073725486116778191658153131203508835804320537886066424298418121603343416055533636997951989081222972677489800918828160298669161629451081106415499265441157408215956694363457622147770129133324864858146912342926337408174348032324483451607856392576424226359926676124521334493617490675089938622441861459360643268519328539118497265903417496253388652061111147413515245001931301644396791892756959203914003678822277710421815448502398071542450944750679904131859654051023927008621652174625044360716974122071221089572837647969077434288637804150383823559231594287063626586107608651347651307153285360976746323356249229084661452167141442860260489612882878647431592719913613716921412491372500753139079704610465634998397339637567007361653782425927527012779014358848237493983067588769132565778313343577601236991982096720457205896714234444984018131459257086118122349780705633951407923125302954449186654763810643967655711356009859123895877389013347144222725841528589018319944638295526879518003952899842159273970993273291953997099405727013615764212158540313060925459025399724391371560463804321872628682978175664142144170206111137362677489802792906729750717299000268751892403353754869933426174779388191193004830886248767648419699302307225544518364920194272454090891515689680801214045884669971637147227810346877532444473263162734327856130720930478610884344357037675649204386317650605764158790861589153160560248464305241266756841011355698125445838180195172294888775947500001395565586906954366287212294127954097788815206337084437582986167544873212301505674865102114142795457767311929565129710957514919502777457370577874935622684750006984739580278473517337346107616840171617271002461921688844030940387039895999232976481465814507741377144197744886731966006385346956483061702377563767986507639631704422961980237069593829322355330340570249745727355250856266571320449480404994871208423663691050331502378153722048302534157696696783039804723382178038886080651898490222602916272105721271952424447187572512455375942733209019234217370778631084193296016884567073306705047273704891563390613401780183251621947110505982867684437350806342454406908699936146068612601669752616356066416214563305189995659948878886560268114280686477957719459598466025963869395786873136399796951377034657082854547209680058700031789176596784489491639945387421932334141861503181644620414060129836865868441740782434651253390006561306006520027320828796899615921853100694140037674186066242767852260748279885195526702775314207735705581060353436603770367905971604154174133357188503549093427927252868053438544666518798108876731572376641608269914349730560244907094463739899862121798280657678483649409823181850897903412716993969208667312819422724212416191037870878508457695224488152181135459389417856856707602285632393269468871748509656429048974753546049707302799855514210810475069792566936551922912215446837948161513609237666395040798523954655526697687399788477601458720405492452397025371302238052324567814078054159711606920765043692591479548438926877616034008083894444624390139429879227208122567175274354541892704713433169153303640880108712864825671205099975269118322034954893079753483070939751830375494008385793802584059117696138904486232652902619724646401567626861602669818535863040557421190429055924464093574326598995080933045776025494732554781290471167299128482106000004605252136215010623979661562151994300947354665534511215606125434204774940596763271208203176498193186825036388814787113491821272631649799238291464182819478666597594781672795693358552105760476466361666325608053702666796814642462378019574180473524381422118061087260504378588110918575272075721568575092743215362314465379966523916886941050709280051778443008935327443720530124537183710868340673391971039496738999245025931612409183249528959103619795081303324143215412700804834366749713695059625874764775162298314153713358928444008114278233845718187146790047811463356800450264731078744141097905243431701110134091350719403829764306442776163797736969635632597002360914710340848260123592557514205222858171659353631546930385786179673124626337730909849639704744589276472983271120591257928848365723630285942214308632506912509912969384317297040720248128352556665214442795544512650836197953352223656372751913231734869814841212622833417308423539174065675698655705944352442614947874501868336753162109800400521504709024968092282507907025973037862675630559190770290483910916122766673700679217129953133604272070021554569787579385200154209689338332702023056684650381378988429142970529145875186282898208447879540796157237025623115773603518230861471256503968774135005795743008308459666100512665903011419943242700515094221682295279364505777654863902410066830144191113251129420832955986173388771434581179299369340110747264570469896022653508794389919275522121544396103470992460864303929293157793549913895773890458264209720896663362974171588250119591428912600013092575929311668588452463649312762939635856029105633843765604804834638170090953100796005956617988391011261967369391873427684033057734606091090482893791087691706198300398552851639089470549405944918025884075002618724591951046300988482910090088782818361455310589240174174219314083558945197633443267430623776061586387966730639011847259626471998484837525496566645418128360131197297419611413754239712126590330924848574755085292993752803109021863672228498894801483062619939590422339848589346208170902861997339680791601823567531898006296500838722589711964168092598713088497218128501840479908612207531377542779298273082609378084008202252598213968468855598272873355263924618915993631322652771821815855374362072488464714756308203770085244877932933421974433064202214838540179887468002044156646983555188553617394321557373024513017593109013395381435153603480688717715669167632202725948518589571296507367386828762235165455675480045013086591922550842885486774462140407650872148941735244899674760040674509636120977357175850371031599984840910651371864730491528524029873701910300893690406286195494138635069868866620338012379665472885419498370247213561597168980273292988583042411340265059290905540421115350912030852198789706493960116134222548850154688373811910872056113519363180780970614633306719632816692289335471072742360068033864745778696578209208292451340009296992742324968544114685454410838801554199410984494100570302598273941975025388818877465478935704423958332774707573808735792660117241625524043948440126159956897749723882683570240740602197258877080123911672489983423568202815923244307116484452851839872364253636818058809450129678476901203419967285791091437460598991351030159703474309380707332178802808088234773332774723534028814708111091818527479990647961475234306512916163573562430633492966165546849830312526241435692473916001254975702568363576405051836394622218075150821493000638827940554670187701538383975824837222345524140971540040290641804918856836572754993034820283353831395713530562652927826325664805802513498342397387225712908502170383943708467215963927793311287456456296532780721354333903984274228191349871576565632246359346973892684241969587754677618441353496675848333165914419279376420893837613654785435794768249921741313615529999268668809353591187035738378804046397702106786980556925082233943106658716544739017861969629538995879868622591548825176991794845181466405392769144340486888164560056748640322404042271267044138502206223184958075758306776537221883101185033274740517883924881575094746045698830078478844618701673933767534069315670817677868167790846880756362349418591575499862366690743930576505518292662679522306630849709967595478481756595585461864434913299419443970000814655185969186074147486097327442598787418579013111123398215120321161484529298608874793689659415823364419470485750937979153006602105562720100668347353938460904264541086004243092088132030697861919625748327201075311554258343056938488324388091147374217852525856254773419512948308896112376087455557241395706210473100519178387785920322212049937243843088844343203522515272635696673048754252241077308448284245315975574207733831701398725935229175682937106579412848661595450031706876938327091950895811847881936794958455795578468552610168413764999491316452629379673577093334424185191202323209571689104879302985874487692229344740237104847524240134306351096519906881562066335673911839168087162506839172716061135052525849944549415828131003046151869306393290754417702188480502449858248443648286075184934172343153768781089617631555459930911051707029001434448536358218055558212222635338816324399599002888191463360156612538658464884050612215381213234308697781024673939165048323093039924606578417954166547366316482306699351622675147519970791023419244333862169850669635434218307953567817598571428173027500286408035482099336417790085054205646343852821352572138644108224809409364689358425365840284357734206505540060627268839743688010456001764183319479186023185998758581590379302371482353245354201266952864991240308780727551167015877592018386299165934575391613337994646750693917096685375738901155811042828488991790562858202116586258095473531646313123083397500642971544508871799075903715034064485212713028701400013359748196523064986069508039626453643888496350836816010360764511852123423210801006754439674477367543161954123493907176513058255935223309679132685534644323379184074972976439827459260033800199339966793380573079280816097270212122633724775706663975631097457785811934896961357706037438554471563143956818534003213679848316212281549733941049638640709913587472627075146135496077267644079151412261569903682469197996378801495466184542330116889598098033107119635230880491998039625887865718691843420870811525276776711856296493373990925744263210513001405564901075460627688907106780506529857362858261414938831126418002777307929745438058726555395293825554201516674678946690723584810897344159595720244555192331671133324999556573486158732826094142510021745359776115962207769947913982255351909920774920776440048814191430484131684863156681643933438023739829851788930974326266325972118089797198331223913968073186104128107006836735119955111956608728908424116490480810095644115807044816679848319836340021396281315263642132207014449633227036161063342546725551572714923503194283387795917893227689803796584704571554923254067375793785895802199728837729418643938548589249071872518710890807053127047996049457014909727575605729958144862559893433088554710286116310214290696908408728993068617424073989931101221681680175707588858605725897670038216244889412129045163178863122355587806378905534184869430643707981583959622157182756885091896715302129316201885068194403999841883871926709729188193356516366996798283146628770015845449914878527076847122541230072716173146401761750891943360652169450952951779402316699027697579933073220732521838402763774270729359321697209662098669212024820178279758242006644311297863913178538769519987811837499339593414232246612836504765376317139011285009897715667701322723514689172773182759931942636546399692268020849004554705830652974578255798663673625533785036007539712593508904502066039769886213140257012033740938668360435810955912973162177145924965392573338858964490808190710041775752208016383417112207245739451043735014359244651878844006344324748959002618849362058364640244777420486188722629199312691787282664227866047362554615132475563622077714156409593611248025026295363322417355838440071904235642979611517628916916325273223602533074431098928441767548737767024793320750222890915467164066363609101105775296625724997605563624808089491772387941940313062594288486036649158679924575959544656146620007638358958292720209692499792589056956130898811041081787845920563212853455999031112981171282908215028573189094081542588894839355332230151603312228513081478808556003648266785425832827872359056824001534519905252950762823505837883435885749536674373046332950701283060665153812201604872526421177642594487239967353854991201723706647215468412795977795424838875421302454701752894588431858468392637862600201917406330221358618011853800522407905310405571718172747378855006302569287870566767684807068696817870364941844099422010513978954998403933718853406155663571008279831656100408291382459225515721301210497810003629836545019774443289434719818659605464726435520513134005355782902242463096861290306096119674946241662174539013929522332763804875234767860716332619075293958432937332596148018536122441101974873114957953982195541934991693131293933279804403373642931837592490518669567918323268794378924726645157623751038692426820957416444557629655623126742783286909471963257437901172797620395157838980033970318117269420369821013276771835927418262060350179351831255595357221859525876991997119584514300704523051765057572195485557012315305716124080804775561574777190830639955130508315065473819771151178797332615198862861881790523290068363681991470422072211789054812619277622918922323473577209985391280865596714235608744289026412202747554724007366921251608853914520037805407582266680403799301726027808664419234176850992907639208405987199703888208165112255539756190933672045967647791474782981151537068329893316830153268285360172793314891837883509737637479233289524421225844320801544747575331945320957538082163262603643501132900883111710456592795989488585248482255366386916964606703989005293998140618992818229989120059606024963289180803774370421162801025049981902187897387883735426397173363212890918663708184703444257913401434091345727356329499971310956124419177197241614614174320967539953027635017685479331385099728991287118418977455392035619689318181386235642595949561649997533420813393155694285676772933776418778455263885953960212025346177216100144680829188000009458873663437788928319362365481310953918463060032986059613059514081298890485013069457086706462961510053072212346825793469847788334989031288450668221948245662241439569674090617676234243241636881871779364803032795746575386476288094559587959236102745415680848966719397433008770152191098502325569720599419770140038471847028725314314953050846795817144714172856642455897977292254655079978070009855294557027637294775926861594737395471268498598342062208893802513364969141183833054400397357385159824609678363776339529210727360414504644185714260405093178540679524938082751427409972746988155464552412491541354050908864046282400023127563140753907230070589843889692513655822761485583097660269368046649889105221548134390299041691766734882727971460251781051109710575021878272119027611145307638747119924585598802752608951003399377172070812637168014450665249994771952244475257910374786507372475001869834419757263073177889416084773594587286661856883789624997653023055463824640051853395923335230188799473049465359341619890799682628673532203917717612381988835106579535371923789655425412509234776216382179825629579112170084369243002614819783901541631234245809800277062795577296977696211952228344786251149205387889626523434486734599296647365201899916779976601044335073112204143586472331526728821016733123687115646591141810845084187647643648623786296300311355014896430107406042568453145470756220604386499867103375036982115682913463199928696525144954040077810647819076180008491859654175483889409410607652530501556676837076263418395966636700860569095395281455890005531551990149356808712516270136231329381504789825435490566493389135653560582108591631720231700952993459913748754498661377485602645249106310130334179594599189581213338892219167216099699800371565008986153871759115709833696608326972549263428205835325292938614528863907565788257246916783479173091054098700224155622647620302568252283470231638337878105602664740654275257154585202435076075312738499632465799983373169304962298897660277815336383685155432187922243052928547954664419184672034499529243794956477498855521422074661710816985122506086504095680051362177340220277423064949692685953792720082515499615069096446706256975914952515091573792465008486835047418696460940617012485919550127150208490783101813529393414492245135935228977441467308741930249789192733508477478832115689481294333913037531939450374367533807426119251123707071523838452542856184605352714497073235847314094432830067906625257431162829231155375159315178267297501052911579109023046634200054751259242472541033286177742609462853972810285998236673393297434403820095426268049328231652052119561664124359530775010095908722112962065670712828001260753380118080194140545824809211137214081849423111824375035087747842661627671507684518287737431832418008679117669331389371005648395648889423876705429352355094334897635872818139146856790100658880977834647474036551275073838130276437758306901879981250338172888461894461822051799375613615021410287305082429084447897618327655747049775147939459016625171205165730079903241961204149952319953164724706268199630310674013121631912499355909778101739694967024678757591317166969717037331116972203720899266017322230039531627985891444550037582797682115748531555690976285593188710358884640683927415206727983421559255002952824812448669642143200374838744175547710891891854836082370018084519622207844083958144709166263220306655452549298879125118202063185250998196735224616056828063107965939703105694034683754259974533353605400273695722903924766207376182616626494135251639074292083393993564518297291978872782357262089279101137490254331218841036745323714324424106221022647124830118809603984462831354579461397341614582996745094594099859195068337518609062543816935071088807927243882514030062845703284839449885522058060888141436688824281965892357470988567109290495638358144229386457552086474052265965441131141515461659253275573952686492841091628015950754448609774284459230420634100378634974751380733293934885478250639913917074510332129196703948544179211813874663795676671613314111287795432271618427315886068073014334043432460666497313044138985334065640288150640173737203214306964375113436646591110145621630686882784060847413082260169186512179068948886094113517257714666603105892420382469713096343215166014225479758330602895654132794654342668142554472609298860858698034170352441851606871465160115423511781074420023952654369297713954510209719745340391529353525658012003181624742618822967456039631209593921994353537230761812423311358251319852862951515490764431202866293242573667727618798741334389376348556815158164418238361848554290246215814726986561809176136235209824802282713665884377077510802241081011158343746454983493626804922787929675076646557988251081230918608576476496422074829382851934939832760323506165795623145217077269005499254526656834005439834888857985253859648687420762509124804641744233671418234100171249204325216330138196458760279001808372219234163374511397889765522060491573132686192710996753813340452300412019483282694412593397233018462361381141646767544565054749842204137944730804934070991212901115813190895304703343235679812633313855295192503459492456120217536652563262474239452871492832987254182962359308756125576481322263361852129452474148604396916855208401838490164728361119629164276431595283877731939837254336659012011937480480351249251699171832412873692213888763302082455921526463012436699979510454095039927324962458980420382378204159693316021668215180958328308272750673031231779299189771850987032722134295013953104715998644240319498727798328095567414782393590371566229165744736626343230594829820674760509662853763257366669228150415356255113367252608675582763685225124106291764800698488849522213069682919093879841769146961050227638334188711143622362699881085828823796085806620830294028151254963013958275201330105850659707896904069003077925151658203501329540706085203092538211369419309133815379303448970416974538167280149222537460870492737964977975864658218796043492664011549174048104784779470947278003452978280689695522571084449951209379332175871354822207669097476642023747725215566975203572001342033130880671091219315490574896805812883642587492521566245867823343299121107394602021353555112268613217702592898955139962765923479388555801845514246966699614786858181661214939424864731697062499311075258617704696850948570315473234089628899936808760666066790554421391668447359949154311319579518846063006605185880011974326464195717326489164818397241501818901912094586207347406413255990343873684655903494455902532574413961314387539809647098667177648240799062242476735323637183742760380647677252557031380387336436435631344606663452433290482651895536515986510312041476559696277841395475288268778210252186876572182864012698506242367351508149679815974109281141979611783054338169999793053215296791942731967579647702866256758807959580166367188455824730206624553667099565655582554928011340631000971833480667930317155866020094617748185238416098621601938716969506374123660063407838971359627641815659934286952959583227296046569138274059476120330630411965734684677967686735245358072390452948449228087543656422086564627027346989682749451198240229978838058162444825425108342578674463184778543753758737817061442670889515366533672221565930767283807541089829218965680803311179534224339123176899581458464251150629234363069335165335792394927303073700453898566814371162619872264453025449176894089110640544792699300511181150268185050734875467214152160244282332647429674972004865255549706375560432326294016423574445543069678655149750315748604920176648543250888458826215597842524383553341783601361496727226293052165572546206236845103991375397684930167551845814800677330421408556037908206293192748140979982798485293139258042060616712670093594453073482262768724372406659437872458122179076527991209791382181361735181665433629430687834208965107572495623853701919121284374342352869847941217743119521502851651732863395240168935045353415149935533607315959070722561537071033467070292609730660117580081781903830681209451801075267296055039121519141136024323704259512492919662716202624722325605197139408172806396779554195231758741924001437395180583451049858583095377190575907691561363800438060238210540416619074908154072309095781712595533441001822947065028584636372967301784168519053101403554459011522357129415429226203057371363709197164204977537957423631430000566664113211885174061181556021551075529142465684450641538152009059732176402850525887172011705125493823362266629408763443266450210765666350464853998007332885409711336086825006946584986270527918149371484001148333591825761398342182922923804722216914546061567752023264393467817072184549029706161605242297293905402497479364512598837199716566963505101856530021759734674123534793253563438078835125200042123241380312332905741697426537183398239725260847068120825314033215424625357713421376533094613678183989420506848309860856058945780767459163168418308714817589336559028021177072759646127533164576289230489527137227391401433844979886275359394187628531324620293588979449187505818114380982577789897238753579739196107500881844707254762364234238509245495729541487581600759334241038234173546949798393880069444860516962670245305598846795487695880835957250458559856593941093933422712820391827708380286962467912061410280413810096879275563146220822809327635502662551617716038175505428449099212024101534765020497015002589510266310383630208265481959508267475770629162750823422975736459770944157857498178720736107642603917148320458846531070733007639292995694905095743167187825457659258208881283498784331876664216882451627507056605060502148839094857837636256386990652514527467572711315949466947930907925125108893882776503761300628648430729289270033476847898359965769518423344353969684398083102185212347548564600686465589385311675694145437155485129363859678800942262400660860451923973559941846025661729234039481097757058508843822944645036168432966808458613444608868720001844540944815271550610936410741270982928727750744018067531758116229176919296252965735143154463427437669310683677424916020906691563726467599551593314334744242861286089846911568854520510139466687859860864164247923737128342873003046575729229603305031620391749218429908709955848490125022941695767557626523277364549637137337493337310103179755778574289337194338530649077153769714590036504966146460803174725643165368859645468602704087423601611592618909506262056836092083914204608224510509675882281801671313578027029455694846624877905855956826546801067998908010431912040317253915513819432193533714595657612128704940367931976126472905771893523985366427830967635083855173422755065483007690929033997305110001973971914629414487547953690299798196419563863424260616456703582470902335193029950944784571891810059651077693375015166741365126161363248811994420251772785876486993250656878355426068581048145456784720968429041371054623352672036325380898343006798361888608403818597796371417314842753819044558461963019618374643876055586265590584638244426768361117436051786541343749283877074936888623236552491684412975061021865497355946527506416695656853837229698422059138650902109645390523600895433297583963265895728522582622441007114388235624247699048984005187671867949105414177786451126215781741287167891703300709385155146322541856274904562638663191658446641990448720260277451021249331316537607532942727538814501507256027048543256451129533720018076013507830839648484429279077214034220039763178892817981080362309138245265928231872632323235876717830031482801413198225753834285041474347669897355826713732264576023196682581624146830457188378008815773213577635364659330870079771723557151605055108774153569341048649352879811447674948120174188126050930075689997993590799273193534696830750691640292638941990675738201914377689958087846184890588089238005640926778840066451642903584561326617382960266375264463103989748907319478690938738537787030182921957540187854663326398965322838745172089826523363255762803850815901457209222870524878502042295464408508321499335128710572592140086959313626475602584918936974360725718277455416150785584447905223816413123397471189855139768849777438724304686528017036452364393855109595219639694364760105606953564066118866440865638002925401962291438062019654360778982331827468828286485832279623458106058276026977581394732145337127420918110494458007323611200100406273045342067846646805976098651229268799511123358888877656438584124140619312358190168241639530966876530270543226890318128260033629706349408927063965820463555947611863705777018964624772863967918190723001196450107690865514435521171824816172227937302052780188688198268905247572992023465144397274632327399870528390739617958342095081104911889854990411678892474651779991182482293467199602389308577285604614066418137979444830712235035426042660852667347850040403585514491483250726112668076200433556481592583348738189505433870742156006971639774216656565561573015758671646610825625544861219786733144823946963870052132191436520327991836847361419762890897439129357172418001274965337805237642084996116312710927380465109257055095035743145878854677516369382791595963700175855312248203166408456825739530755028424028088741424930772588061963006242380501567497756495696147142889333602365865856751680271852856573783519374522114294025742050043231521807651057320836645576008274289586833666852045642150965740324367472435498639552806278788612006024319621785263313512846753708040769299969910254862371981380522323065812285628997027359518855398482502080719953691178739090478668847205691299812746025586128152531714478850260456907754235210185361469186635587071806926679096660029186747153462336242620621086880669756280492500986593210166442808695885781541053961326069692948463925842445710329692865679249517370869992176095557459335900447207326869331255936665371791799686687448058050751845196624020397778736094843118804691563232978226991143383414054520996850502348219245312921524385474639226659310190325799767637920927599003022641799735621309297426551602207154287120161961887659491188454031554478591078044040864161090590745803717765782163032335931369092460300987539771493561293249250731051743064150430611759263701553017650177633735766111978484264324647842519639918771769265402260882342060282181151276071515653267398937271033971033486216530980048055886822742615729387455644534139608748637240049550976962635638997854912287781010043960524662093110054510197669684786590256435262455767780700805351085056054758365674445717827016601249159845534585987990734507010983020580354327018993271293258662264950595313535633708304436567183896823586449173923853193379257409393366404089712595820085011658137189547886451586926589533445838447787111996671250843392917246244067720400465987479149817485324463636717849101108906029178339736127026156820696947067189202101483934420674308913306922259480053863875747932457050778557269640026292917194245261573800731435336015077271445290283147940644979805927613996911891811095432973811499587612473174080676978495712532660967183939240920673617301242588109663459913466256206250844558783539686610357419010013853269639205786785992250009194943024609713796251931345778343343990350008400856322798109760494354193539977894395246015342814299217269468364678701855850568375017746479602974889687639379508995537443758311486707437089804342774931127776217444135018647375878056726799645934460954928107291814607834878392779482719264370179857748699310216103647220181784773169799822121982604141049278329581674296894702704240864704292860425575985141987545247910001101151019001133621193628190635498129109765890557411916849777293918509640946083451341457757249074862271427500281436700441527510514992036028434291808940616931795277063346473170644182415677911245706178280519745853109179838433057419506251241384718377282017571938142916001516154364163329170543763499520666226794759803502433502995142354599316021861368138941261369266882825936432194949887288190604913016444069417584215516014959664197174672141085369471809850965843396370535812290983743099705793501614161459724636385154785818185069719214066820872683578055998143104055064549355147463125506937585702440602737543108547412247475776860922400617894622306750910486634591323485354465553383985293388188680562461056960441838099795845379791332742295638652144171159468334122565003195526790537452365962702486566902233564393568286990890746448965261774984572535885845010210277688913685475180667555255600603028379473168882116882482025936733438263000534783111638814592622255149502816375829246621515301047900597732774585283933453364869524999462077071842401680801260074009467112954682147489978413039560344749877603500007452161641086504734618610721902058349416609023525512664757187132947551746691974401420150344822239515915645722113706687516847120243712017227391391100595015282327863803329380855022155419252139446754142966960096735098192906287006520851668861229080015031081168783179447994144068655193607719512716629740739415380825414423695531729726723476007856039992440187554139118968001712711959823244644266359889875272624104797929077638163465038441936632489906191261865488886748022021056624016956387691512582158348889455441238365769308191325594307342447004553659393726978251015471806549518181134041456273204669357827816190455555365057892895566365209921352196705103424886164326907626944037749764351876466555003778271258915120017095021335583804983335891837202237211860105864627750600845499435222926418524656968575903942884539231467184163591435440690982063740394105582569234213323457959609327163301136518107415531922654045796216361264144918056392571182116064897528815256503091815259814600986846326751634940316498527937812505864240093141848757438838478597323059065462063857615826556156192854042503171100137735201764043374447156536726909344398220847211234526749342379002795107006066441558963934444536951658595279140586308315411596127708196022384943193557827887513626658541024056407471486775605663133040924470243331178931281695900958811013311942910024913680243034837443891872131314730316644292959139361637567957796056080210619965464539718599419477525095577819096585071642121589856252017803650447707594128983830080281583327460766595252601688169654743843562396507813218227127598921176630914422834091911975204585428104808171839507456291237808151219467235613501049649800629075250837978983499916566371079772193889879206239294541024618922752653128971399757361569946605650033698807354312299062672758763100029888801383731345727753762953745799396051084794488259046643153013341780588940293257602347645585909720196316291372334084298266122958880200457716600758882542374623563610782569890482640657615238715036602235556543692085786021940696183279615701833140588475827960260389174769723469001977258876810558283757684717712920760736276846073636886563542532710594473798356060568284375300869896787130160265389712217973553157318162629112353281094384990697327126156603652896299113048768249524526662845911782798953692308583969298798140551287578058777793018208546137624010211207928364642842762129892408424000357444336071390636927944420164128686512462163345025967270175370872075164847427469509966169745064587875924576513228663765394177271326743398756483401573284287114382380872339361366082629247863181259184346700731150395924002148413633383719925683070768089590004327129552664027946551780064958483502826972769917381230484466915531019860869542942180677851365212125561582630682956019295474709612122483216674286033208909107180645904902802118075580122185897757375171125391599687459939520221107854172615698889150626704186059393521304504607184350099061822159450058669977494008067771391550297025112306651916952850532027359744590533491402865987218330306331775982286631013980246673743553395991553302370173923260544009960562087905280792265221697546414563584679267201065955615845347091610645049985240761125026963397859186505360812024597710337387682853904573032479762031460155619838942779499221427587480133555549444233332916701567591772987978543834593843800031169276377350800348815134239840663574286751090381276896588582530956182111035207215606665726045606286595018645043618746222080846676095555778482386887777047276548665369119672424250316598790903252075712340761763849306800463935795620258183393657615898353404608595747922791062053839370772772616205313515924404234396984873822457912735092127563078540188038910754743567526503018597392396389737068271422151302548533045966631047658761120910103187478886471945075356674932873903012688035618906906093479541471086793128728407559297995521495377697429354497086923215139941830435809876228971957015443901951257154519031298182801717951148834099259435532563210852030690566515973226483683218934405302170320854520938320379311630243347546785408463526908703408317323044340071325341005309011643137134516800119771014856485085704151638974133433532159229096972584840680148323445984256415656514929097462322412551949497618000048911182547406781942659440607003458212813690501364911292261119483639048389057812217754814257815788748686627681438038950045536101302072462367151916319373180865443390430798944526798662809385208266426841183550539097923188490343942711570108303473269449980595759791902865534693026234708837090414430993011796776503499822638332776492808279957467236284594438155574372373765687089632568500622235702622610975839156737361584547540641833219595289003028380815335502093062356211365214854309687995311390169029436808130005232643538522363937837936000802593706431543770387059328411986753074118722595246577214099847729892982297839066560545513735519207786554622162084207687890303618380111322085395003153425776202438054271719216987228160341107427514718018632076855209374018108469969121830376781717626762075161098181370025950322688839079306436985752964189624615342421231754216484742412753024793853577633279705128667211535105177122861165437149601303033853444376851008049742367945335983438253192686307067076309978524434400167988695609727661466746821079831418673114939799189749088862742216509360777147789667741634759166678498680518022556249605025330407514368017689103674175476917533338228154092375669242946170138258365372514571768175888950951086046565224345864533230565946596041827920906832722201269640408792796938067259646806974226642002884126436132353246712356897738611001963420242314508725341082950757229768599098658407781370823667616500349200771585609891887148065599320480677415488731262592716840320080612467986851277102025555989218282807199151338275434941857686576696274434518372559924834343085000614098824997990734389127137586681134693728961352951016093719797044839332368740816352408393450461859025442972728544775788032653019594493531510898052637493588322606235921121965072284759755992818662729898975312962835522748838521901757099702707487808951113795435459104996894079820001753599342762166928646316006595148576492370840587411165470388355773764341051512765246476217912480691429799073779145779348602598227250486460942840958458495188621377842775108430872629868568093570971130571511727757437187984601497791553255466796691769659046759965171100835601196294092053117941564905050076442181708305193902506317918281528049919670537626674833238595392478429017433501861044109476295217979173836004615720189965855614740433009147768010150984941578366263627154211293651773242846442523976448686516511175931267231408626488445163527577708369480172599279877654015530010577929171890813190675167280479439446110390363140733799592776617497569561716922958627570504805984800376126995507260185690453267171044594224383503341936268263020666360431141367348798829961470602249128925548044582142660316798943472514489480793577613932659160439891987571784077577409520074291422981106122599749758523392030305036103246321582329694596680953452950157050141907572163253576102935378725989091093561456110916224853462000689210175387184501628541547464741468295134421876448912030206596562410654143846157863915538295066479412761213453058205323315879215121741141364494858702508273489932538133971108519645046796894448519270599731104553358707037262228589471180485168904852651126384058760808099357664598279044884964139451913833091976347278112913314222261779090473917888519792542130841338031016800747987940487508753291474348893298114040936114562095819219776407414458677031176306551801795677059810516010086284113913641461556522632257519785046196997525311255270798898650166970669930929110807066806096023360094789524467519104757985023997541859925036357648378038736702697410593913005439725177842209161436896291257776089366277740249237171533884580549184891112559906957029852249626182483944465848503331991320699522532006926773979440568862234345078429993523172824255723487493062125594763827138632207373512048688531908156912331080570812326678185509845666564460769153989045848546108721616587669557982286707650554302209347601462335135517636325288895830370310859837035093540091632047471471318990784681870400440362161705458666504268056948392347969690061246286918379445647675203033497950816387932982055206922923125635165515830532405310729515611703657602069734193169475762321609580024717316461403639167822634722887636750792671244081037864894375030630267022277549972222934912408167505060725495740884161576358207559527513949938941865617298813938656505261461037307830628305988353803762345182894495538363159578861544450294838353870055456205193770911988910113522472167627682837636715826701729958562514100543648573038111204403442214963150538330791157014869919325321937784165689422672231916742849202758014683717281337402326053064297964545511099303679075259239186834968913491381495539690009420257055515709937804766943351249900707320491202715496387475545634896019536360587761474952453482631054338485243409122241431934867382607494472197884941981682902345772184363767131341507614578432799400507770577919012518037763369646528913777309341724773252389827954192093722436725904524791227616473513510225644060005672582719167720684013543821313533280517328257050097552419036305022914673362068828954245529413387779178132729161464899323380813445979952095630827457166147568977033870615947921693224558760559997194199480218812244206230412623399081534651307604960078288742123473374362636467275318645747245348910350679992801516485006717410950114828318390897272075259036592146578320083344171264810128794576416271376214639528610928773607660021681233649116152500527410058334979305737082640353027281686335577718625835906753544877622080833421520143939790688485930677739092054230979178800118377775904625482456642321393897831426259975937351220362023315470207236423986862485682477414729724088458473837959478937430405341114300667970967347258871126788894912957669681270433712622172489104036630240177300332373055148212200229780202200290653756467166627739722031605638500671443072478751949512691834456747825421922889061776695835713394995112767652374784752601428544626500338112875864409233909618441537502151386405321849986297896102100805114853711228519436740354002048016652264846522654715930819950233487357343011008763378753024409141781296653462292609431479000796403811275462257469262150866391323342590566500824548852048920718287010891229694290312835645359317747334041995072845743687795277189308684851951544892024624318207753424951165475607279756164693204912095228566186133953709153263909157931662255622442340100080965342324089397968878609725776307388968173740241108393879346743303931286611567625353414681551502555059977418207575347371675115970014900601235353979026966279925602114566145050745853728699660249663672741566523621116503641031762723298172390006248071331162741578088298348012057465352498449584761368261955104708683583693617745413036453879646241261963032452845375767908799091758266937645979452457304807097774430670869369121656216910428437347118382318192889329825165358302132686818533839074231670620539463651789872584539271247030265063572817622595480665391783024091219650760451269221423713294073508652573743976568285064523216256020157704492890100877372419515236968204448033839250070534461166472506237032905627145323290882832150252234839927450319650162196575151813598637596465319601511401370879486184946876995630003848672656562349408162286792117402066724624791764366248058309698892683659317199553763342872336550216937684175507426831281686347208411823174320855264804612932510631647204769608121674075666417343650330304798798089502405686155388041703115638081339571213204298943211254042078837959565496140647323811175060079349576868580974507661972694584830573213619536923399155039995721153523202252697772562702727046504389197220054737508223388497187292512911378662218480169265753111391436690374655261525814321736906132036113465668266544011830951528181208543043318871330343267693113580414118109416537535393521622504829885172246148497483618397308855887612361029182331426786517691409472519349935666149733594413543026068051795122769696078572917616309416139846418335649775670232712889930372949828700804071935511724405406148328300724179736152092079328609226947768872901573344728334319749934263287278335394671378869468687299192639900173782874007072562968052528686854953539574119243083375094268566874695158489909818504253691252380233460934716234811193662611470132855110131400394780998881097482495803948795758031197258472084639433185029364660007587099778333586535703597940182276229843680058726896364989910311360085039154023332068537598825824869268741148699242085437991187966852460652112509624046713732952102430829854483317646254099448776380839612513271507421802832215124260939868641245001067002694851994667939989818428069073835659206763724888696568556721979203129901004773032244699250804456742053307395273117331436453724018782037981974866231851763292238328411814966408455605546128367333344662828314688227516880796790951607609461116494486118854482471476506645125852657827640849308912942072817540065933015827908055294583123664402776295767338892655926016752618461719285156292089581906106224186948500634410982582364012885446043607036117884720628859162911756401458566715204569917634553627479461319053239287463472635020860011039516699534279267598775385044555097040214482845682924984658636118839516244462235216448333089243453445491471631282873371641097250277941851851904669270827920361218739793440197425511022437282207859699148482918933787433302770334201644862484795094591131149316648876260013519733793391755523540149426635007435510808096872887622352374148851136656330053000613173493940312759411669839031620022534071168071000655895896528589878805803092687118609191392729057061801541509240188608299687498597651315589468862431729792094123314178251636342713677881227765740373743152051789833188501847733423282428276576939301762654131575235681728069787843577121904556242288723267879059405485816381612128234740212930467860870912448762234048941347696966170895916484704221357912085121986942193413068136485118187908810189197159703047300742623910566104430932753334733724672312046683599836071429357865823299026215437938447906581924843032511947828851652476284024198683097791181976677014427982369208554471658312483906127650307747894828511199534283177931077430590797911025864296983283228808350980691517441657820654082813077968698150258315560819552433452458175427945761630243925223019904102378232672752547454812580915032893528357098420987271256539699853211082100946090560015476569113081499586745726688624678193768962112112500836708338125200326940736198142272225899843341461323254779556117017883859711421008316425911379860989048178463383863003749442615442827654728125574582693129719200080425600100344056494247592539843308192449001180287208133404156280930799328291762788001003019676723143699569459367469809473439494395170760267241547866006240356824718197682849500514109342125770179052680968531839738640485293628859946447169220774984360964818609588810798775957402432613173268828295548414447401494465460096832430264392272739282782990518832571731195409216454373102910032426797176122165132135915992474360795144788570766989584348219917726427219404907762974648178953094683400495764505074718598266477167944167395481492850086409938311271873571594401324945917252685781060041061450590252776693262168743839402308426596652208893503105697747459110126217462545063692065872855005855962800156071610408500311813388265484510146288876991276315779741808490150826089495044751038619531188675498439013116738541419209595755265995236804959166355008526607717577387282093575332470734677072210488015185052664419949730069546508756772484641853390857764589565160925218219986115633362866171858893475965809160870005193943080419878445505648139912933000167018930717814987460306411599770701448700939686349385425839753377079063136057201755492627424341769043726143614324834851038076687626924395143910558365099183379014941681944286617685286592753529822923142020493165503938350712834376056326900960832875777378900529064533107489082968509475173305128640080965149874493461523378347203041373794521434110669345817640597011718748354042524915047660680574637987583306343384504653299884924625715789034736150694648465278185013639212531608985649964275159937989645323640642901334478124916634046912085430747903831369507882517795333462574733422393623544912555153490678599354652396253160105658175273412710613813710371096006409026547182888426008838836156385068013559431538549146563880556835980613355554191005312012174764203028169591899907405133724571978788479406643100694457062903858711693602789700374682345492402511055044872789608381426981091341055601312675879715256483112329711673243934349403861266822808451433201432282181720146515709647713854363513676635237847145560068302680256290524837983633912941242673887522580338493904126875211901183119686690667997731011637871957226431502492840692951836255287415805231943897015338204761163653661149710099853252380118038353966755788379174433316101541493514535649353658388548947963726171114736920343050421483868766704214018330553436428645387038263792016161745111122652870882423212814823066434387754724062755857521410229414309814342197899523940761716781101443624398026803158723005907950456938012549399052894902243610007206760047444398248542578140681404285993507585233921947334578370937330083440208686900648428748635069406185260369481955057802227207369516614429247382187647202300901352564537143814195614225891016039603838714314992358534410194442280660082425118238592722186790455292861127080528229623985637284432752502675913370652774239917899987460641950931573708896025615528059186347132533437475991597851553414460030759893224376543875547916130744328180372433884188263181802881465714010244909350016773633927443500778097883036519697220218637707138281244038041554913659982479073914022339971520502252953235169051145459930198704386162933280076950798040056399067887994587698697181641598788093709208157773278391798489944393350104363217687122501614099532412607030588590148530145696770717182955893846208573319084406977982379835529591515169946406311090861704118956457821758817799314233954302230761647463883527168758884801880621673789816334575474994208241830934379831129437281947079460646748577874051712448308324569336393545882911611973297362941546789216393290315710997624691777016118273788154229423347056059684661585383244169278762939967886778924579940610819621059712515233869416154889198634888277509073639576750760151873084698907215774881934342042987861545801514245004843376899498622519743157590197699564803861419122815668170124264550657393546239489943535450621552886394796837913744669045347364201360593381992967013463723442036262741479978676692973833258230695759384178984289087459198849302862859494199447329943628530426711920494966919603352139073336928502155939173364755197012811175288199725698748253260301773844838987766108445154710050060413997214156438642041628289511194536850108924837522262249719006436753402932580939378255891068000924536784349782416401792479514768871572956963429861918257548375802697445124602550792039136746303495194782252418971906549632910952873452343348843807981351329361471451498134893173928532873759626035792799270053741657170623642078212200279314581979549086615475503021174883558050941017185584788117235673201062130854242565793294671180042483931905029607148839274442247887582977056357526683323413570098111265511676377093679520398867512321211760411558411081491641101808584403396756668072293903390843334387990464371075201226790606494030790028450884186107876499869773148420932233724258135237095695455690059886269191036661303159414014851254736997181573312150263397234507460821027643839867547154252822339946987923666683377071919572950579974346291897767153136707844626077528558390252871236703404145459926013955891173926870694564651220767881270784513887886974543344554613784772651158182619060091081228899073872463419679838254321791200467265473984054448347221263164163931501364404523143405255154853772979618544686433021348597393266846384237187011768849167240767333151253599747536476817776892982052661542611415459921005235711350227058580615304587885124257332219187287907877452845442584100998704560873966901605585341695114067954250556127577215118148384033033166159415867051961287060782623332491964062758346776798506142754721039150279930584291920936778770501885389596974362696399552159852735081337721995345149682760858703163977522840467079167242726231188268994951331902347454483430787215811814720573596690413079969976391143040532672544344369611732349346105741547783702489736915259360022155361401907666494543116914812506475002758377920263453137318887642905537355766326856259629388927374700826802847248790995649824890965191489439017132204620154755432609395119253476116087354139768485185139996655336084092336408509276614923163172790725770237357612125097990944731616760882965095789358578647841016279197627347146990143678701046955724557438094402691853925548818527213747807047341435623486502172203291345425903073496487855199976057499179887262701352953678475651589058409111391196730176453212362844973364475913582613346493076758465474941865461078710686999522174703288170791673002512398083473957913097334356188362797727336498063824602227572384122007094124177444576453589104630657581291765326441039290315044533870161928516995086590941594273859256710941253040988320275359393381581016688011328874878991507082968902322810081751572009403382632677476242239723557391088249284976218677753627072062498073096642827225374461779456265700917764243138652056667985614980108439999491826839551711716832676137788957570676040144558836784471861963128421167356104574578959450945097740217741281422843662981944592496429899547005889174736202145156531272412745743376346862209899784722065724152792673837839015312387735506384876032445132360146563790453856376397021886580361850644550083932046273601048190609070308315059907815922211452038689119777612608102819218563392668598846918499584296094685007676286719732756676583690761088008366950077035195497818324970740489814815892768391157180997414731478532862657078276921330812599055494877636448824671089770756500653368529911982166881240635128212228306590480376647783379420239033026176907885966200592805871916310208186057635158720853615270484921694342815851281054991685657459622673480762133800817026443596376270903474629715995069401260983984792466684744838992900086356925263322523305612570745676682426664608966875541844426313383261107076847941244274594595678246068170339228192202883364774532759450409922021367022728408263250331680820493128672202977385668686010505550141462945275950181728979211268941865602012683217032246054820439543312268421950960917378515156686310904588434290756563346696116589280857008261934795064754560781849278906160875199886024614827968412822787518796673040632914393201784927272430947885980512055298743223458161974398434629746198833930286521622873007816410711019721801541639294619488015445089570647413723509311155557719561183911770125028343362380707119346592424918918935008409996304844458668369389146254947904370741195272185948772729304357781925790545854509981987115421095301375096284771669696478213949959913419952442502559019255193783950703906250734612522939233203609457231163111322107548503368296311313291915222606074531413149297232561182776641767986394301437662013210369775028152485289275750482350955487639579636906224706029039732725395345501049252660644671737943473205989467553730291409094096802188866462176355780128512087939055528088349477713101127681285727735448966142396504566977255313240783864092788437181150063425969393847822444589187609665536526150723217863921344860447288672218885933209167087822172318708187416974045129334129175617571769692450162686388766792438319285727011227444929999657223171411199788173608117393615595151243572380796898468939690174621653247535025511774339097158622881080398610967733570584850101283943724938155722197381090805141038986970737213870615630195379143384976623051108597006599217279374645187193824559887073606906968014932114664648101288218270446381995318714569387141171239676855791896513856231969916680908721977787988737737816555239259691249251766708683856404879559196509966008650967208211724870259515729238499385720990106397722031183272317172080617561167518873895184955149146896891911709227039521767389263126995224234624903365637837700243378338332120747389314967546222518098550429069844246597046419234916410967667689537003063470107579468893112501936355864909480489259782578628085899299981077613125493001369481396164282925851878354707912786088545437686127377147244102578711800426006850202064667299536927496039784267506718824766775937191765260321973627096190464734011073124498741483093471197152519961758938614880028819652746651402944561755405258102171490403266038930398706240869674176494208802351280875477899322527181219968384311195639575195151266765041660245448074901104226389912292858130081097209020255436261465125488210121198139285669683137978630994501748450406915944514943763982485132861363741050465931146583710646648264321455826688199653266049752705015583295617836787388630538947305649416503060990729697624992973951560454298227054090067973696983041390142804129554220374258771534700876024540648846493627942582847888173623417587069587663880105742239084916475643219704466534797759105524516390717413084881412359534145965774984528535397671726735791310941626516260802960457598275467588734396303746955826074405368239588151127154327587849693523061680663666489464036232982354871904991040055487804980562027674474637948619634306240779556705397066295709443533274558437402463664886383835484368224249561595272840887253648337150887873795362726135356723935640446187090281511202973373700812130379386979364175647660020457874160743863727474296593274666752721535033843244970712319684146786464640264736571202666460841377517231741149861509237383674766551574042840253610020346418644172407478763431823564295365516742803432986072599519383926316337951786625376372311684491900014139039886090183848592295562934615778102196088862264051480396096534896099579918172686272877372898152198065047604028657261084960608303494095634426019665669587608107713329220856713769391744355843298794103760421925935892231286402007038503285188363407472668538189914382880146995182613355551008316535363899227564613877515269831037694102383338513046255550602909394619913942207999615839621179628649888189149685574214905079945969815766132099057257419127392891326891148166938220548352714264362862070307648580773835255400497194144437628879471059894974775295205755635841260939593043594831715736573915135119615675619082539349992282764505704868308828242611723805843298832813313092288598277372699978204264684519115963819560786442365730079752621014323578192182044513646793266702674655550084589984098132796313035272854308024883992012490908749638984989444938390172815477900812572996027909738744496527111659187592689008257658158583953366849270861578158254451153362125389543385369443963693213014446359789824359759375974947479530000085120316927704459434528535348102836893673783172696296345313521634925418494618239444206285086010398144274021423327949150109133964132621502900994842867487884611436540725464339902931354966744810076308398782783399200475139409050918547820486157732370770759845328059027042927344458153161845248172433287227117170270044409978520760214100864093457393019141171442829693450186757962661978226833801941495657110061444816630857107711128838202220635276295100369309494019005348219441285184291705835316752971633547058380237337861609400237814686197329030625847972316340646813675117357942874637190275968276917072498426340338816747986410060568838894227374105028040399802222195848747904713255157012286579228113914364889155470615456505502538541724201836798240548431315625720036249761891163141009286902928579474343777579571571731097253866655074244552177988126266838130233089023539667226931511841736861571900980045650528443008783099575157737052138839917194240572516428529178850784980348955365324427417083749101416740145080701461792576621044168838626338279884857265637492987325655090969762596682153254068278317652133208747700323685834640732738952146205042892215604808434738836276938357352476097541104852684281695305824014631805425575326128024721351582293615378540512904372824976922729893220244974528348436756056346798511568270354752142339808513701271636839822173159735913046251483201581948501413227575494390206561249760691092505978142135997235703399330603004735144647689056443506011540534638316615689682945898092865021613177794504035215102295231546026208948233684391065147791379333258873081923378636660495365586577220380158869300141979251282248928004672293930559421336006044537771705162920070187498416857345386962827167074269834045843097834005538685856468924207953195777795742123918073765589029120757713222603219232227258196825706444113511395192890320714891707096357675098767990256517197476783391756138940947163570046086286690332818233848904296215435318385523975243665770397508978976325168143549383014869134190348246956302469652724814101228026510747888859709893256307781685929858817165836153731609253997737078274213151116002993555677852291715890252886811354723894667712260360712047212838386803448784993140231968221071650779112346748520913174768002177535346049791708534602580731875653122139812211893626102102329864073405280768852333821296348969187512704385301402506335152189741557869303419520158544338678523866850318584335022232175722998174992077136378769488090610339450839578218013632225550978937276797871637726572274551821523321804283244540517105603872720443917103161881099249801931058997003817907454243997913714305579340658911750933174427165773072103955805675496284905103476503663336004847538040040762153499937944763592446199439231965693423410661685645958432698773866943924735715620551151976729738960665903538467872636914854713461771481819809442606529200590826847158205430332459181290822617053312013306389305694482059755818991111058577336181377476183476713145297189829644703058475001234233590336374615951246355430535392981987029006867470299217755763922668169917433622916741033055460666504385415072843652133198448124888808176021339516384509459304785815153657304245809477677143081900106933634363646856929127692517916300205775028732728155028883923392408937031904135513812074003928802874106786134385578696661376333269411877512338778646800296823283999524752205269708895715042199388437499032479329175895286832424930438045790262032837607872933821995423089149978685086925075678500819361704070571571125614851978616793929465467569479432559275078028412563868886621697163585616550108056805989033713780345880537807460668560186356299143398295484586840574751372367281315874770657011730708526875454756786074044681312305137563421025711915151180465857763560658798311420774001017664361259695952915627146911604266979524199737397953306478952785651488566242752402961808699786454561408582244027956868680687975316677697380424802921074696535299749229271750042150036879497728125408963005383652496212842068250198681602360338646774872628618071398365097577837525272259550950430571795979487108825957360149290786428268022878200022399531158324728672170967689088965811158305959323691811055671208261407170684520987938132751039035351227282119325779923166487361313649403400186623098107781756162627668727635462289783141735329166407621853347268166964527269187778862035381039001927551435395874027461224637019668623381465480341945818897015840181676041103347133448231593120638204099085046683386969067165428074225666934320834380142569895386201879010653176770732997160144374122327643729844854152611855870916698150062472820286339645828626173913493705774123311401801878161195117127156799927476048337460875560928111368861843966369716678691923258329554865971782442347511730674948670425798956840839857942136125435665576786069393170890075926458055840882858063116550897699406544656375757529876560860744849926375339830657520916472149087301867270341734684292199596489194179951119525378860571139598868462976063922973055999931886480328702517103743069650266951125104269822843834519901669108203248158431090673253663212986368351685075589514809843105356598908643271996754367416110570628400050366280536831244569196159754812403336379705393978068187081130563868961934939872956881059681188051704455247778485791349459141995762119833253420168705071773172559410038204188135517969568435082011157336580691302327468836629053976665446835772543052172615668739611689211394418533372757002365112578122326823111389327919622852760577326102945636471481731884088652767724332584753030535952551078679476644603969645199505512282828501666089863792662798455525187280360941682734439932668029398278759788775258749211324701031379833616582121998919026120483691607339747374094562747309229363343009719663672898260844184584262722876544921855094181323794575186136945685036041343836028262366144251611483198801699708178128909908523815195208884223306776686024434767141343618569385795454107488879629345506706988787846873263397455426845866630849169018118196202635951629450974283891844698391494722156207120300304682410861692672447872279191874293397233506011115747276822407972442384314216323264552412628477767921039303730844750058747089371795123912438818204904590037692252168004522363296893061815467131929104428548884213923514684880383167735252443685315758885738110101169247012891939887750177033601091212365677400828617170458411939332472646842862861923320288054328856957367153225013250181758822034712450258410883133511302053011970847603817262092625496756631502112117152960516547579217628883830835297542170059282186452816949705094113180854662997991288252054306068310109292136539183108072156767363165487993461069319523368822144799748844778434437811735319497078904359111847537123143976231636051068633726618344537520486699225644802992356576728533769646151795024556753806438439899375950331999373503863167489157759434103086321860625770793844524232556547958838656446701792235084756781107110465466354908801741685468153802743985566564572013966178902495880893724330362509126031594393682457998101066573140145276300829562668842874521643939018563928008185869270600317068279174147074009408832210848223809687878966289057747485487976222809506026955798834687396715283349249296161418477425067776431776132558129161081170992976869551408824818801888980721235072643276001720854523780192507847363619284529692295435274566424379930987930637631124537615460869219295846881825683702763172086720095999248300148509676638962269425829438584280275798598870138969653948575269156477414484628581073792470192646036490330232222757200705627252220783652819493221738410837327490179023825790084164235898885254055486733171308725129186159096960661373266208659198365526462145861998203995179742319629175243525584350551114193630216482183098429419319700520192643496513117119304959124030170392536655467021342497065579244640197700638362465954249762737877449291105285118556667240095230212239052759904856604242129384203049603182302109608122976742887771575747095851636955648254354226473750020990950264253750046221135594548897851041883020488588012882348687883607109653620331638759210716415904837624882593228585972434871505194756311261549493784140858423053153281866849201545915258239741226326551761678028211783031999258988577373788092544336309924712729745064611024894300027227352194725646696352283627098131775420485967656205141526173203509864939105895827752242476564920526378500058605747428699164846141836997137331593276474092860621637829329155782550871886596504733092521981060420688055520368856796645885779888243102813980999999016980580608641307931568236911111505595056853471248382872008306109308118059189911327052770559025783494700141317749101747454457783138054703595285392396067095331410356229605711338563474814479050069984918296128308146628408485445928582318404621283322003615802273206150653831787404725890207259838632860915444917804273218878170806335809458379314385402130386618207589099625527224686564608535028933102701611381312927976942542814109244884634404266263862593659390913670545186057085176531520581046951077785859166392645834234357545765344259490202905202993154092685713640155129480884259393550734686413112898429226038052509608248893175744840869187908535616164484515559901482631245071885246825651412886338257760992007696765061667902568007199874100295295789487343101159162782569215943876300519720303251670400756264905111654489598929660763656634617525056573876177272968223233339623385995994923037675101394651112649684334025454253061281746639016205903455329022640352749731489195862886951616971760910652509358936042509681636286328133444105617683450243864598614355322097170946378342070035594356328105213885067693860346339050484494504520767047156062004960245286105398260857957506409457593892140424643590968059379937464397168603846025771360028108220612035724280832699086770459422910626160756299855593204512493188838134437788591771995802154405515955547316384744581370280611093827946601440491993255148108617222856837055263352764827432792558520271519171709561371146204026855119080741231724413336088570442266008514031564991248374656665672430432551510564532332680522923538895051958999563696224863644324511115159840075367193657189115732121822058101156614374439278254943393166951174611821346762934634684749011799989850459631950599908820886911723290094576240516820522596614469498241614335796217239293837402423352559390173231707411084400194631923739960673273812275938696964708881960783436063087873332099734485243967532299618695209840996202392325184498907335647385922193404397532488073907013229173468967936123539632162047419667172459630247684925252229318509752003203652018196961811565530344319116572048567870691146446082613886142732083824017101618316124529945760560350046230813613136745655117434177456345455759744457496552068754995386068817446050276757260674324503231812452707786964286841389652716898480661543245376666885933897551949080413755748170063911635293168225613924989881394837886313022762551684877808123826018401513504267274648121305068502528457197544434243383774904019642903506781845593150381149256762893968936104443232365553619703094913788075139431072796285255920094402907557681334860910891674280404149868196582204775006716417660599616084756808525090158988924884521189374810092854531648486041744951884901836916284315174307227724897305193294180251219219321981190668209964596980000431301385323286583140347406007865853269454658694637033604857137170714223556993819933275366646680897245432780581824957672073852018456897329732361777975754693285941334360532577125652694486886662070447316214468068375599513739766513725291856269746704410599288174082503892194424131147725143854590541603851666200370116434724965035127876343580253038452034186475206982507348804247567945310229948889985138695671324659079891435206263880240179484382582519380192112448973321704884521452536504126973380533275633415394396496362202502693981061292445670501022914768572414201976535516119993630310170972806266772527748245073607431195146274036298801771323915914855175013725826388607055678298372698067135075614311617291692543597908956600054869550233704567822864620158824434607221517952538099442946656218961325905518503775942842659330509097734586823272115437936019218099627444570148853567690167295541372473571094022001929736504334799852272881421148401845627799782292082644003941583330472522603032150905281987561567507055295450930797100726870161103588138812494048472351952408340875823671629306476332274291625558917172485582344256937556463212092264303410893115091227248036361017626961270968418386318345645922764077870691664842328037982158774590107381517283674007797896619600590057392897124181504650489538396338767529268048826514593726801528813618867088575099926289398252185794805381707365773791962363862858539322231945756465739577395549987700788609489671887125205078245942930601320465411251258665825215111312438586816868831961441257677895831446670983894396343892481710447076447241397839829415942408434114835353971863297857071628570334396747513536985517488446424864757330089327153721782172009270734504335812220733240030283344375968413837077826204787027753378586436336400477617367050451779637908687716691717942168525759441986103706695629385626762433027798775277048744863638540989928015612671638536276963960121676336651988660758558591349291175871103936312575536467715361927498900197746420338921275466711282587918543871632728814795763574406469532781515678340502778827979398333796844419615820464392096872902271955848567754647991863175358207347162377756104222068530926188386616835894083899477788564457444383758474670882605034674813234399251283506548727118501938030213891969870773504243411802176490455129879643570726858860060282798871601823791960731931457303846946916839340873942178609742093344473908024456487894441481679232432994932819246851211063592367900466839023240431019112984621924186113346396565585284874382023280817811252151804672808061282573025508953586790358006000815386866679209012690037361691778514334538389535937724198019834150926540329585500606262179717100435645529351343850133540186222157457005880449973750469669379891054541598801285426167041781298209566046274425680700411436572637424492632125242700799005774088422757881468788832266148131587776253741606870604959186638254365108009783654058005464986130859936673711256541153569044557307419100051809329010165194181519909024758344221464168769831895189851922143219754979751255204126479934395948949834677506485921198896313724666416817798492904463868005795168123836086201703928141179233222859827658692313561974351469981256026392460974326071042861185510290318866754248023328952447892286358760031509097577828741557167152683903913429493002124618833949842274571384711876781396047538751233431874618491704555680063341340208877445629968197120658682215811737028555218523210104437497697359378482734612968997285510924716643334775435405908580212799640706963317115205037305749588793970483242050694624003842803413575590948764675221671752273564764237341326945311465307959094001479722776701967147314402448545555758604883156394401740545848652260884926327243192693773212187007246991998485631898252568618409732574601507031276557208315876567218497440728179260501169991377732228464021972508324989253817638005731109773150238947271817000856921236047592466801575923152856370632426938685293644001871407737591077775839869740455359987097137045837903891590671000918296082764681368261017559316246906800240910735547621829537076775232859544279084744559480357262691097964641089387360470453621345993468478538499874375514854975653274354773247365186333165865341442924399689082831660611418306888621064481584695463107677706784360718138515597810147809526828380445342651442715944961588724186579932665681633008586010473037641354882611250802099638822629345749176297881329963885096546148308386750494392691383456832097533370143994322620038392706732204791536480681383258068603978795114190124707872216240248250669595993062677076418149463020510110071365807837652054367653138488170187700719564188466123352136817899023534307506088910434516253404847240009686744017675616902366872830497081242742699455799768422555044959841813222891817332497744127425582428322687709715324197190213444360519051171971633432346878315735646747972190806012207063489536943781229223634539639014046451258642895632468849924044142588744065860330506376346966558724099452253215042473396046847891952042013986572828856794402541510181955722770350958186805960202884963954488128959742633503108786840292176834270148170380777091878914276488627999307567864192212721597628454204757026342460179379238569368969911035381180001424865088015354865499290477823771877327884903086997351615122252668064809323037879165762546156159339588650531972077182360788470028186862080566933157728779436701850651074690838506038642978986526382114210544004909767265548263245704168652211672492406912490175845930803602091313679491235305403041356714773692498785442311789049657240874726006721895561804633490462925124278306803496717681028903611015985080103799375670112013837475905068432000520344650509824827536107577752237623883440376398201143562252273146171399153208261833695501330310185812837262788070429893328805082034021753323938385258626501668487739307121740722502402900689291285847851026515254136945398441924834225133825147083767664112800429924752720595498926883883708144038647988712064715120051683781597735012216031181065585764913824548844732204053073311225001169832502490269805821129277256387500394518647201508791504126998549219321182699584030736619886496380038968726955576733719002235653179191953019031739926517894906734886402443639621264143220052243672401347376096509895911337062543752428884581773332248443945888884082656542414637851625408537775363077927061281642426196086714865331705979894276722206307170058074587261835263184367755302312637178158435096360961272656556697547600371303124300939902978255837262976526834684345329295417559086449415105140181498525166946068340999043822341592947131446277138049613101438121461830951243370088010729992588687802841164715869497948462007253145185911367329314043045020848316246612795742640320879468539195528828758767271302273228416583420898193257610853232301748588102633311630561491343906609188873685480113672869625524455207047724573424317083910404991959059996754490357587998078164681993238483478364294951344955862241831499792229144099356264858752775485917649636010285877932911619510470220462712759415310333963678668245743524109704242795890397098206760448204799846195731045274224125372916039126291397124557602920255655362800754054313833216059189135862608175114950298741929245215231846055101736240101753320586804141294436423692618587795774775773488234667505353829329709941739014005907252360084727459579132822747023927239918585442766120762581404779826809046523082086171167935374942646705365643726595923238859040677271607959964313068138207803525653331610057509792638840197182874737986671052500180616551300692192337343012587331297813294688257797989457358638987543585807591648681767244317449483980727219268005086908194723035729212409072395399674192107866221786482267698156985006554854568958351268365796348570783375963142982233208479846442579604082104655097413884187283103770233122231786049280570507656060195295235553380434091990088167534451430769229133428804584980056316518263239443600825621295619184294108710416092541918682338853034284774116360679445241329296047921348433305878330398986582612739235969023861053611659372299119327408245169523749892805295110562383204649925822167765755182564212505401222797976885194078040141657346316530064898266750508482175988819804583075804722950862191727244829480129539125406180077012624878658703679288924913028084085487406093028592623327307975321505220216824400482610421760895922995313097894596219091038022453436212484366453732670014215948405572803649263630076471335972997779765958354690569181626561571020157585385166446831198679976819455354805566223181259984758953364574352071228336558845506287256667282856858585112806663020601931415287819349633654978543765767544257368579953540601639845365696719442822932703568958795727199144554246578655502399546470973599791134695058357997465787473958122917842198390342144798442341582475200624103946637930817337982164300303785905380564248245624662195279497729518402709845816520302169343171285842789502031476795562773808279020363792979930022153192225440531801284318088136557427297184499354246079882624276847329163518913256310061158750000514817053653370427193604159640356795450232234283958621152255110233903887607356810281602536030333027342294290295072779351797000200006522807273810018329926436764535139157540506946508011275572939862991507005417215543976025578184918325974382099616398447183815539962486884340494632985640831778264937809401167466491214162396143981729105599554726270439873278737887796325040092271896540678787287452066302499882317351197704739904092161417977650798753030711814840497850894591195268827337262465570298022489257186161374739938396825896860320343659142444154665777113068475569854832248365594106307194811853411151762940791338711706692589299713975875091345306554287332737644190930659268882921649577957222514494746515786310202508652262911897646905735935543188948700816942318242255070581510772794080415027824990360298475757949472826548673409472104100653169274966674772720895738883335848113472312849913984882589689564061791820270756727941870390108006068940486153135954933473048965944513623557689687465259615965864303162812371467618702478241001276089614084945799459685028405027950785052308945153843829055749515241118170740295683586380097788749195080048567393215145854390698489055156554184166888996526493411924694891197168856369667247967928300511399541440839602069322322929197386973349267681228103331876608142159694486685065771877076976272452118314177189564211488070018422184884898411179623895628064007893373820997754804564454258623048434683475215601479306061849609557527493401727203608230890361144232092445019115517855431839263128593540593244055690187845608199803168617902522417326165692185188328764492460451388370073279578871835292886884527235597060580748585408584005422935093645041426389603249883493157885230685838489839003314194581563698502813890167546687239602290517351331223335515606586782069280364774892077532998130077879281076434890922857434899251408123777146980603499443825486987580872852625272783778909400353220042730058935444304764215850730134232695130483868162251247824244810480820471076543912821273549923729412194345155144625131039282949074332181211914830242551955625858118667160929532308142241228603216042844128064205678490008099698683691010137030860303819374043938711643921160411178472658442879037953141527797598918950581058943709382509069187770894167942098997812480627067714503385130903090169755748329082143956761762313637780443112389244527791803374091357331437982180982784340696330504601889628594778824811903853484035902275816482602667369360756838946143460584347955795206849468684952688642061350079976038117359508935402002460594312939252680471801898892088735854533599481891566149887158615292167487997656253640748768486537079920258746035781591068141568513752776760824378522011873580169839401729343438193969148530274832220572808563511131930565855835537216553696480408332162070217106398056391466363719815313702315833493121712189874514266651137718157068713000625147619764938520049671041567855494505538497558092518113565647179153671231307700571065845055270170603068692102520254423935072643587848173362097793101606301067046633706215596639458473640909256973889991631090410918367904239648526675876009877935283394011891481000758209808173627238221851235127667853602917265348507658630352165002516230819251137743297428772517616950917932684645916291057871174956906493601052998455837679607803213547772651765518783681389046885190112614450453872280389266613857126993842059304420315125854406900684342396911782762414111647535940321934249067125388178549375484086802372873565424603753275397993829308605006804942466131696087394156762689585462923961132217659392444253604910642456776835075479836854749409872526715173538532320489448063554493007711406260612850550835306172099525539388555459995977987105446643785588497729840730963703280478750896157533379808195939227074596625423553610586753463800264547278095791266781641840357429087843134472610135491006937648121154792797135842844651813327505394750296686812606969650434062141949964178482757939221678279921407994872128722514816578912971796648291112766274216774324378719710552123997921336678603430497701260991980495545738913576092138524403517830055586011450974352428711965001055604874473508030288641348174031214138486504139242339753227186172679054358461632290882046007558267206727119084602434374749635142886495839880856447405007730661760734338283397363933931174280050191767624560973522037424258943623733071330997123814727880585545468868458080084804194999994236699511731200206290616267474888107925946463473235230367223997898864179943940453640835693178940410790473511525442843623383103254915078182515991794529590920365277631352870096942757377123240979428238941276237917530566970983488634694020628374435572444249100103619961405829275050735894847885051585353196645748549216149821649285445440342158104353234956974404679766078899142740257743941666898695850796978358541545283032052151752893274211591670958493227435239935641921631197727986630694687856317437939672518467003077929128287824679330765222345451557641360292112259182945518551145511932734247350438984493165435043974308619951728271201510619908144829209641036459550721954945244100190841473106755111486412325077337654421044008923386080523961613382943369637280681245052866963941894949536503875506853485983579492416853139812277849203741312807704478611020828221683885602483389975648721527037645892797588440630615477347875080920523830790694925975104687133771640765751687363865319928677280044327559001112543290728988160593025551234432692795489374437025717372669650539633730165556093272392124941591153977363507618576807252162519082649231149079845981951673452497147943349860435557551012402766248596106219747880190626481063114825033041876714657830842224154095392573839811260073989494476390560622623665682056954705727593063986318818542434174046679133991740899344704503828731441899289687276670161692671530918029402725355334619960707431486376630840967727905907308029298127419157665403676966274275121049145295757295596752735010999309192276050525761005892737979041365630141906928916898163896308958741310778563193672642360973076416961108989649729868644255902099276338016720065726713140710845417133221172686803033752446854320594000950355974489234773631824430604982075030638693233488074566119546787995124353795258677987466131982027620817836173502528590384274349140026054600785239147291929561319040645821410645527090566686330071258993776340330641689106875928606914022262068925393046721122432534127570805857839168279714456205115285435019362985767353536849350363441086605458979439709379655509570342724191312095857908089322842093116669577042349997161828899209413562416247893430785536033443884833438767056277171213375848951683718154886800451381642714913495546097989519482110991602978090407184399272729269735306318805315123454905601863317465111687451831194993958214196665378246324683269935961856783603617237666496190431381503677771537852587193294330093079006529084885178574490802358435795873950698516809720132291317847771559227334443249057398033264331088324145972996403266927691022253572947319935069735572457513604908754798549959976975276195162159447160913239527566768531581376698903457272991876497948008538105619435669710129521762587831130319580276620712678338674396610785416691159706653012334002407057374953239050118634280085207317898088167767515366575940687567167673094473203704292264239436076506427571110513390941346583838493052610462894472039857774343456633240508037994172977508550194780550122563154634300483239800912252145889688442588103487463468179717473055848762422612758569454871961860794185885311940775549200196845767624907295177308200659121321332156538438322307767244730835405109184233489695113258776129597544747702680482468701760694394894356174760685121538894396073253736988078455176198237078468342359030326761337437241958107480414367762116845407358079268867701371587727928596963732670455315093607681956404598450276472003263696155621410845677722658439698641072103355552778277574071130078586838361829428389678259172091770544317667022674122109791102523977213760904271231501792483706116506616771316277386717404903400535088941192381943679921307844331571801234207364918036542892358812905653946331152780762633565198171607744673645060944352172105406292341042489696529458547170890205363229770382605482991883458246158651192358811408406234395436811086726768345044417888609727459070387877150261723784854967034416957502380651953057419173465740779718552237583141208149083847295394334514694386027470156220428034294566969330890476322604866930101879424414906413634342219793342121501429914429588008161101836022164946686714325686219799430135114096117058346617996712785024518889451111279424005923859521150943476939400674411982847285408908770661464307927595847858160481752572445005903642842878539071454869825904216361850274738560632786292301919221198869441736662310783618796659223180081688928618432226388619970008163591426679808684343099128601574040296794506664733602864600254582675263111910265337719271077004188677497772572150617576536423865042948311617739168597054684558436802773829994624327767055998172985667126186196198595026750130351224999067010816037142812473503484424240424645154692569833972577309476735877568173178329550796596723580600716124603313848045606042131743020810557144617189142972553521135140148300949162303522350612211887133429965590867420499282865988812361682151702441186591789745429287963398170865994307609616672375361893951844994720904495324582745234889644541640246602718052112611290989650753548407781230980500369096491283198178505149613873934269657353843696046605978882783159668135850517060262691248806049905679971096945681393251252573455316871657441147547593955986064812945654068586836833025779745259230483487131717098562768181376829275236275007623327256785930129359691747779894109156297339178206931210110800458527464756310974611220335772507461460335803082776055160045451326236105890336914716384841407120279414215919778494137349906018489600606363020923444912550542810330829227411178647984275517039667415232198797600442849258464513702078506582993724595442344635066336319043792317828693889927741891263681829161647369713629802152967122095480739853617407641279582324306027604809203508554317555574859649706010131906846609109944681032084157311662734308054840770029301004323835046309111115699732360320286082921964251425452106284338617279143051065446553171280814465754286400796015821129686505452594941535209950099056115805542668343323115209576945488151160171668695464705901214382300640184467305768491437390835395817669935502162578430687019470559044063334097466958052357601865615779467132006298490889531633157787263094728750791412201571487438823348487079471487121093271065773094550262471435644925878353586797704654364222039993785259385023745103990650247621700834250226526502124462523574699877927550104155452679731395878454436830996891999269394189577338450585440330752304139725692501672113318688758145996320589407309706179068865125041585653128500323870209490287901739078234776327324334854443526037666423377395859663416199515731991692276894530730328803916739201801130696633719187479355678926775902257340557860246214887766121729511322788305393910657152689407062068940475259160696346370852197784676642079978641707440362471972290953118381504821351267214901864284330987559362862629264619832936392948752389069785613689756949545655359129803514782354305030989807920759480242505405637461164161317165088691951171618168234029989884031720823877500744570954641536249650177976443662859886891559549380480953414074027614427724494929208303356925323162028815022756254009232758806225825716905507193313329576342570996962672343375148724222980700679472121517371722474459497085034559998362436195882832761989634770889511160142020016640643304653471404918619365859543132876776955205014188793715666725636750975746137556166658976935141111539864824662976551425480149006879327424305631014450851140076148561699783797053357707582142745126224101222662799954126414707846745877920016038609263717985848718444483028229698010270196751829514781329414013362928484538303998245394661470837498060157764224420124030013121155120924888173425879619287937394868252466361265454152209626752608514493247891939157972734491065819065276003383967440106440217620658819578185150341016363488358872214038233293209908911663849563153138406197721704200350476422807043895166845298492610128452437364134180168398457686518663942814792022754352959685040318145018648411781000192177902941208172808143816009332842898154492522734321072446438938425631018385230034118517684941082114930556629870522664848051445339747780624151682462853998831511319851217166742168774267141855500268084190777684993334397530130071721666306204302592373146433504651451246468786837203464356163993730422958164823152530575210494091284092833633073269622242106281888388206628206103172048980317328528102835555901903681275093752388479258611039733779561804466970364939195804932497984121552810509357830383527312165826469653837209212568403058553796721825514149833136359741108004007711395540717844634718920511150517589729398701995130073460727605888257836393662774534542744184131358600938695130912256257269305405972185249237301128802318846977083245041162883298037301948831046149487572012247379286516237438457859391014800059470377637679264343560589242045836868054844668548064566954667711614783787942879662336185238801549750803778113120183932277345497755854097553496648625578125852754253729151694111188205716177546358559668000265137107923699023636057287269472273302709494814131552963559558825190776943511414431307440714070200245376108836996664397982687649446293461226637530016267249888149023276317619761229322908890850118739778318144413306303614672363762289280824310849164445811191532074684216279274297126739368773961443107549249712087410768385725956355196128209124030702429439163929814433614495438633858609439083486500624284512269863132841969306917243565877588520592523855980316574256923923791078285928062274702076944354601545599749137963801349933472563952884560161258917647882064518621719045957025294355797528178311525500760187658394345183733495665099360162487203130848094367173285995135256374670461507771466854137740169451994299355465643582307352974030786319473657275436901663718436233859922055258738063609408306753720405051599594724852299281674153991957170987719310650054333017090896352808152198637379580007387667078568731086554364384400270636738246559150429393519489516118789628631859926306664111079994095623859662731680390708272532653168612933436323424776476707522176185260621983903985208704310411566461532619256476348156157582413618600854089489612972635730106000890836426055583769496963463166962310501488738738893031793086989501635991420229953451769112262057622273329715425537834689155643778195563435787129728884630324492946219140492908780359205760978183236160791405538496942419720976138350760564601921694319910653206719143911292171946590527562029161055351469784171376020172773907162704663891353952700030871192755400049604986773456937216959847908517658597026195584502845615677259804253321883179420086183938682133071525181397385530177353202421820778930387761674727671458180816258605409454255069724616860889656862334754458296788686999861574993147755106943832099453766728879370714868891525199190149269004733957640810538611689597352448787497693729268137177456914690793777840643069720800800076944624612809428822817946603778469151143033210917568239203191713283470324244826047361566139690274915262042275187683001108564882119980442744111127038214660839617324643201973444966186049845287302509642459354971946678833829504361005955790726307286977368922188488456509007347431698447308815653468021187613731999160791911812256079657136949793669120828641606021257798173840912325466178450861170805766654257214218646870257652087071018606465074242149613891829131762001603741194000661509701080685323856156699816588949873166695951092564896051051175905361790251417935441023825797579219800489556529427891092798080840469002975096227077337668169541776179205274825783781074730883313279243736941003482681466950706125298763458704843779115253351378362206792613466314302737544518810077359674453153737940414376231161487272011443469271023047841538036660603939517403736735919277658960894320983232829696436929100788562319559224789743990440261184246176920371493775205785720769939952520861601291746905890697642919351529421463656975080036481911685672023344298184263012179461743646198098870174708629946923019453690588865164761099053585847185550809554807052154536265251579611685511994129899927076573076309513006866427059158457117554783175267019764835971025460229854075974737091881140418570086568165031349073141816716595382648479834720020112921815814749153465637096256783299837847019697907496313825196920938060800261734512472069736914869406035792990095089301235468490383820008114429407649993096413391657134486124587717600542351826727700211013262802354106224528398321252265921986507965767229977681071592566631647129183388853668671156281691029447458161426463529275090802666720722868271757143778466872036326458269117697326483869673353115829943943649722076604518126746455286996359036867455637794938561040642790457482344063236416615783863167236222800906625975465342475172053520488062069220348080927839604390367564813205587144018015300315843153192797847857867574976855994981948783991162491403442707900259731471442494708732574040711081619260867205829534885895714015969248523425353607725215382562719551897165129262830418333000932520318568605776302012157371287109728323179213488761717624953372060316676557723254356354902276700349396505755175143269106669080887150016510146950527172024079510035015303985443506625826026168263225755473061343685254691104345392506832739118276319637625618208236971629046657353219357036196442480366393175334476616512517537483476960815320508911413150284557998448096139542734475684849965466838504603313031775225346452939521537899753634778253780527025536484585573739973331588306819135598520846799850858162085962384094859279025784417607580579751448752695667136706580924714066843990647452434428470002718746454485127685591848308706093259017619073173192063917412792777189665256420086748151056490163754314713139130240818871547230402511375503975698808855975107451945612186356993075730156717100720072586377475102048227971019442209309472880665014817096308207222284097843525619691730139708212598327774341408424160710122296940507990084070345973249116833727540218442326791553217251360350572539588262276262899321231940171041386261358678388548054533329855326037600827276574658663642645487286267397643660138603514950162365843428876480414748915850519146175451783739675009806354821671161322653578631053845004009089208334054442920608403252268784857524106983168590166601322242079285055517285299700836864442779633571179877225136670262506513903220386520323532749044097918931275129637577554913760340974720279384511725033063917056385059853657097161456865030616448566239764258031800757651668504310891831134262259940806952833372085096009430613738391813283275559304766388536525646778809161118310965327315954296563746338240372533465958121187102585917194629776028235938256229159143985505893241016068427856586093913158329470541150628932045266228966715189711818251957199003499419969883393357053310266938012374384655110799188710431286275843334393841772107127525618439396414574999842300761504388730710950891959246745447339084765094393875539777176378224993673909813324217777930046498465957893577274219247805086476150442449110694437496903556240575623844253848401353269864592283702590639802740947357187695460964704607448182668274304519907179141341505818382561210290415439403333276805260484130738042015932756842446284504778440500551576410014316406260339079926481479017200164539165856262642281787495345545676573975089873051930474090021819310976879530812434221281117856595747980954521285650323287853410674241654277182390656580516081576128972289191027529275289243145653977223618764651309222536486912845532659315448930636314174527334204827865925442613318759977312696749720383921550716003431596988980079573182984735271887064294430280218200806306660552761830890344539570913632801329553411872248326145093724730169554021433589305980791608068285777076400031511681254714661656084009244285024967462351774473571292781225191460763098799279487780947321017620490919214675664074749587102507650518169701298308060409591621581497582294969282262323139842650451977120401016269682898490901087133192272573224123737356129444061184291592351278309746757957992538331511202170376259382153621786073948231150829608560900485811320906177273085991029713777390932566116010636701758819709929352240397402788041536832443769508731739855403552271999377083481110275200541806668821371428614099563231109845832444204799601124968101314199648148068420054850249056384108407256854767606393223606035951054308570091156349355936152382685454818863777971114504620922174239173581929049120886717864882704717251963333533582320113406109673673557938539036277720745854562239717641568180181110801902676005211182393009565378827738140364585735161889723050337778070089466873543161619913283188449277571362000216965592147237135352153550795204199633125865659095258373044121998997507318459816014859215076184229359694202151758043747348513348139159629858581813537063095779444422608423504534926395469063668628032698074045541092832111056409952209573936185453028782560632288247315038017351008430094909340750767483788779946623355726618950007339629783225009040897649763543405075135611343033309389930074034139153708486455534042444366956291832367327290442546705641089333911393443139066310629101537264477319392145621196802878096956076816230142667144548111011238934323407732714028202348474511499817644593244312710053309968317037367621255803605275711729273224298404700815187558292782585507007100201921864848406949071126433383297615243184617403555775990293775838132345115491726343276959608302485224625008896009166172233284181788697194285297947319934437084060565797680020883819840379983348180608462485414545002634804078988850599816728069320527270027833615379748405207150686576326231932908832124593225555586888246741826598876846909584617754803156671654768652515050787730615320226616405177143749130819888254821849564254414106871863590254178739794459470376352163292801327287497001393181874902206194969186023816601897112771191027604745169918673108691552547542800000712629879258789547918071928430218550565176623014624606358973244406238386372809936435722100411408105643358827170897215483854506636244325174830084295166133143805189946490844697536887160636804071808208665921654980959177506650568022440846433632641073152682594433048334929889015893542948810910434469155458502064412126241921311765433961320300255237814111020350543788005184790425932482496983182939935521126293927642968458345023015829064502853094871875016437359554679416062857499250859708751693139083628847984463237432584205219711158973766134047126748963466092870757834861265006032061969264139159774851558173748874470492426774090868303383275460839997121070106113180758212163242554826108110415071545646011564522618597627971688030410878820457338467034730962760600755385626387551886019146214697267881584253512074737876726507505155758726832791430400802526057608816580572565224552227681809840161924062360285965478029014774555843276584186056331056975727093398742676660751048001832903768154633919173307117906448751644714739658450967319527982492963689349089314129139652488288516480262069934561174485262385483422481527472103815785409497505889691844762725792468456041721545169580853637910076414878135122891054866973272365673209935939780042985635329294471197696944593508345088501277004221497864135969920255918710111188859643629653702523261162625713613649084052062246175742927258608688728365453785845278607717584446791997785947486106533623404127756565009048264204646353126848980763206285968358666000534281909658409920540104364676590215145041083752558265058817179438977629429702092167419790299024685943550246364604625294407935793994061604367120597364688034832611293418330883408359798834961570944331063450728393017934212523625551440067130466904777090087752035819050862401705734171931376486397221659937809452473059243366261875625265819541431110264016164762102249548190369696489569010944627855664424756132841444766274841487446728566912534586965553457182468738610423462221052983394182766561513435790133791977627081077307762693021386064732918691596256732741273147976123091219025818474412807746858665105581046385549216837595592701196287652687108949211477001768177643925721751176734867750183190881395468618951005572325098820725189804663501421430455253431013050688322390217154140756329350671244342282226504226974961853622586279755523931536792675006286653129358642497678758589432734222220113706502433993159011902983899399545356671823193190403161934152945418037949946386975302369510421860220738380842363394412952077890537603147500687236177930980199234014776497867663852147712293247234445218392624808604743332666168937234105351557219708263478346844014518771698367731434165395148813162707454950364206411230609872927021953024122916283398579093148005554218178953016332112999596448490339661484741065011085716900480013510925589502920561207566623248861576887354658728884808808901980368255648039140214054336242050033268084144786598047704050986308007243774605458274190867188980876820926237482416629159101698234921658353191711999337295369254492315448992408485189320055755067227983770443475419673471105706044697874208479061244813555065884095097778575669398784023842449718101068929366815678808063510040847544178886157709962487983145268913541368879147260694761244808413590140024677201431429643729627402540257333920142706426846540120514806044763709106246461257292336428399304525305629086673922973354167847316509395848706962847437125845502359346702479474739007735459873028040852734379190022607020039055635044468892745805710162827210060199655018021300579894852714141616264520169857105846242497226906537467968508320362930389582635345704515122712608328342223784320258904006974779426586181997303587591238788153516692697211315335625483436637042204935488692539470881024171392086865722017971432099146475585675890996584469811612809373572112439320771947486253695642230581970293222481719390266854084496862808457071839878097788958321574817762301585113792972905886917738907424333201996034225915184562545141844729330842169993779560598879522441843148479204284530586577344530014365281274807583629870615958015945223267284572454548646629511730609731938573316531375024979169748953297896261019091499869046268810373366213068380348271681606143616290806070853367396681773661916482441960163243391975497479026959051945070781985325908553599299839136287937275847698290916255695158702614792405873411846615634671133713922486766735743915750537285099259019570954461373091408850112086568215320986462972809968528659402815122997686446009229649548231687629141094921804024940372130513851089512370470452933687465274483580272443189800116534187431775911351127601592719604506132805972650369448607402699906828179557603917101104499222200791556474398697118320317084830662221049822769103474953773783637058455208561290291574634826318659204926744979153744737959108936204697037044858018757396323086070029829621523874651004234146372973389122636840681988556578537292339856853500118194174219343020817659953626806599705106989105959818797206352178065300830629263026130578355728780645445995724332048897575413726277161407007262051051634244033270169616255116255631800524906697618838492755558415613997385070752632046270265619651952919298936074861763153314435021200484849597517983156502957004183387817170241453201223851669323538501980763286521580832993116114834577124981985672340653269669782620103344282782004296227279119599780068022089190959000145996013883353998032635638329147585669343989133848649120608355303030922848234644233127475161513443699856115480790822789120802400760576446212064576008262072238513400042249843445468019778453625524260405696339526153772169694864417185495995662188464350368115719733136149643324129507382429244189293300748765584387870012723015029495832923351754403153002063081213068761431101764201673425751223520165340597320678332549896473940279161750838555353473696542916708994521294483419378129961395169073020896124002066202471175716463999285911554762104704727604063770531952553204999346223829530537121778888688830163342934362315471333193837190849937480736699640240856730454342108497469563835557165134287099736350414443091205659402102968281151398320180433410323679563356078138445300493528227349349845492346417363706067350572287523639623977632167952121050643248312570349003489673166718918128055290065614327942408791963086008142876203458525340743435260809055425895722970270256733285393108064413160081267612529994770382770557430552322802782859365876495695118243088267973814384955796112811965678406621591536076543392639382336668262874866209839098323229729874715680287250545932953426063456498628057521783171667565961618935260917921955552640664926654384590382353971545981281974625784756326917764493912446370239190457318595424375325297147904348350395601929742511761436252209007195494999045026115750169862341135047734492750660433787109156081288656171299669927202832772977190185415293194889751095144774122941293011287813577165798722552594796581042639238976948270576234600088931365422802706081568030073107412303671886937365674977359022415288291255053406292495827154011088138170699508433824868515867782215768659530450208112728288719961619249290393613316736830599358986311601002103915089668451980788286087325323610879167588831503673414716260098129423523071837475505349763263953193327044068114183291279353361198856468797399843619669841960072522073720499885458254652199472616607445934576322064333265289810459610156540217826063185873690901088324740629800349650699520034782665536955899085904318710624316225142643650083726591691380336310163666386357003685849458516942651416134801350016632117005082891831028801356221791395395718148507501614154715701644407885315960028279894464650007571698670310052693241009794312944003577694639967818517457586751594953315855777317334546369680205597796212138230885237987128771629201690609122501924866710773195382915840345257964589463779088133690754486854812838951547352332790945032962814958941597822650888824085395274592979704552615161764825336610915549348817119595123107528470454326922895278897772841539635968449068573005546136674285450752626045846267212166020405909594330797246874593058937776355591134942931948747829620222662804046924863970266644711467691974099236458397654691608877420914862555037654704531652621561433548074722769389439503573982006470172325144464221951320942242451821752208415169775909686348661890657175142470717090078519637742714172712206335360229014632270692463026025441636763660097855737404518078213185991848463187568291000235821592767861642887603485879485210060114715573095507186882490140736857367633534238350691885904007239915211298171782917421141586894580503777407261068052215626507939660481899683963901171277434749205317443194431072010464925148123329477192599431191919180984170250003609681092138532481555288506900100651254991958724560282982892696386078333033624456130557752047114829810237923789558260255502649105156331677972131703369046461706007099720936290369629818279609508331739048276833428574707541467482174879399216389406566049101158080246780603971591966565527711427409383080405466574130436157237786527223432737083330713039341685395255122513398642544533542181495553869703788578982819460543490816790106917889904933870235264165452274652093821391907993451603337586977076573367708573520797093842113304614943599611191333263187091433202956941282698492679844487367121025978997771291216966472974133327133033134830373363225481629466332841760053875467801538712881493512471413695614197626751319878530266088348397579847448249577151239228821671545955045083233510827451338916861425720551925235570687694619143163069067537298975403745792709362932117377581962069270472044363529446525552516755404397773423221174636944056017062152057689204517994843732899916843313027693674336506403996722313371928512113354828607688714729044850853248988916579671896976091960423180064995010237977574065286998971095806501494249170266071944965274799958017809675906123703444181345747050323117001089465409508808425205957698292656430561832532017585222284975654966352767485877817788193587003268166183820754670280560973526750852370077551521841470842896887700750874110601168880329370603891307606139039907644261481160161774429453100986007316674359539256331427354080599371518723397333121413605853295237474505862384614433242151587564677107579445605373277313126268215951753885902430555528860957472609488705206466170083435050368793149261591887775332238643271714240557250976270183294423228654644391149374565436991480876544882247683393707614497166941389781984166861484486606980399848831437941482471266739700404181990775474604306510285922072492822402357202940253474481501370305050843570338649689615977933462708664282818347295926766856370137379624438984357967099729421788340160384926361842098257300307241136437553445248799820977956798051390545044441143770689046382110661430493597749268589202324983700370892424832646238867850284094156514863555756417101942635496864518716101770524363559635772066084261633114297758117871331742860908926500849060612534203291649947435519009866440536595275574206167882989508181994971709178152631780031916606906758888771224782113394046766627011282668366444636509241291772730360027118084537195998512332397395556940764090015129494831097500533719943767985655016352161597564404052925691799172580630342848280558699279204717173413149890927066343092469999672710048713718809094682429396826162840550048006293800877427239332627118182495680445510818442528184409853078440072893034063973164969923985432250246973192526738689942724698074622000288324605604830707638425193968101368321016194183413620901073808222700597817414202017001393351524862916775106354036050702006329274071786269334155500707333472573082705590851183863578495773792983351557144845463267295786017808023851948896442812124742229630003040221426876370340455960789981503797360090449706142532068663844708556690960840377700033033955115494973537852904108814075279629848465767550198602249862259698422709616303976613888695379236989601121898021679305864583500839565066128915207987692149201918014662274738278860310613566897927950536618397560854560238717306687167949725870222171676073064318149963856803997367432214028757067533151839710926204513857579250363171288458628890881123332576015458978838321563830032389847803972701074934046436515284678027686189460405797540465326555107022247402315690242107583375592605726832022135541184850325927343745064663727086796390801419852690310728852867552176083109217838145035985639996098157331085028561394804175639971716976349823523672000576034725531932985438035120251735135114823972695348209633172081333535851974193522155306074215258033276701231596416540182777926918166508896988079247110931572571722329919339665525806457784381973927507462994428229716632805303838878913018060409974084446494693806866702145655942259847742192909895224180069834939520995168980477322593426217183401189289001749325264718370890166826853255689959807653315290185651456713828510233687305639396398544113260481639494764869407982030809181642948918736873038308501038179225750522338123249960554531616639797195369436508109911695595369071156139438775456714333342487145972227580699805691994410820890904124480537451278891982528337511646913684939899745901047884714508312664131421223038022482596072615354713303103858032872163405199910734548066778996399202795700870212840260446610714085475892351303679755326973151894247602409590651039713275894399227829359133956183853701439971672483887260172198307264415371247025780273508295039481316749079794898958778685115714768932945041699601546048272198478669517349491666801847649375789131517847801507530107839388229874735164481443228536942240026407437087137973221869204199412530138012739994448723013867917839408882390324896168345485104390128608192223462148386094371972684864445476571892897564110015941046903880112208616572674755316153486781104800331332594017650556707450908386042942558895423012836413367151650450496388052949368051120340905816950175444107350180819350433914119057508591180772749899066991431141131863340850104278110902367165809095099684035899577988713923910158224798423282528747096605045416532833766529806719277377549968572327010715068155216184863831635931024834302187580175678034034114934436566487815442218667606988277696745995551543404838152060714212340673557266127334137322364899306799574855969701578974390873891036169381907334676292629711168783087594427344395503401036113015188016459795995471028201837740369380526231861614591324508608113570457537627980417612318274561352967810044839242358846032399351472492267786535319898394810336704677307745225155372375789975379930436562850114572375783789129847347986839360483053836652742833331496498230001542024742779828689551306897959012780937510085436404469044044871788633173450588701112685627895586730890226048664763208020033478380404332749339684674277057925637910534263314759228835174508746389779357228615811927916862344933069211384016612186206263711042410460142613961229196955919577508533494202582866130581182636892537403573287458254508610873023461537156009694582565864360999322095980448543342826120916992524977722320017663083242960014730426387314971018758085928289295943926070962354197092852353103111680041680173903393136270635887320696735213537093070183160502011773802285610306909990640151425586052261274731568692981580062152637974278812721948785273586575351719323824453047853131911965511342804002229213293930780649900203308810755235653084526636662266623236248899953891253114418197910978379080729812325967482726667301471167847539635333943563253992651957835734923834649716478267484564227178236606090877512082201528836439999630414382397138653168624024506511847784957319850494671767291505835419085612732438068775315681076717967448292005043465371370592072383240314313607525293288625516085020292801355868098311236306912688183388330523824338714278063502288937181114559617617242131210602484201195875198570224317038593152850771767080910600511535626090754545224001574402477837416196291293501900632132478091948060875572848268601496461963578571324082797652686097372420474712032362560152276326714147276402275623754952896749462587448556240007151200770760038110824399636525125628431634331547763731581988321914394645244951216088322941314083268671281189210144765333609102080125337109878601288852771049282029299514828664808365318686905949796239340821925616412248992565798974036579624326417971771697941849979433348139461891049422761400000621540172678938174425282176380113123254016267509677034995177015500110217742411584363625488242413340575095039527784196961834223203300701960187736240237637713233690005743422420801100580037159248445468287125017111120964125083886432435072971784698236820147275519493493353704151190872779934284112691390300283036951258802032112948667992098187024920686526100924733771666510810184039820638748712631473350881195443999404874636327352322121052178733157427671919158562719196705143409987617835329715193664388307932996321118052147082035030729088833080678300001150483147865114858732784096734933026775989677831537208374461180478720792240760648523556653693324186180987618234147254739882559427481960652664627910598221362909929406632176513790357423014010302728961301248674132618111015093842915324350947261183678949421875766475683339596768941216242238781996947991582981978531491373785572625738785385567769137511331438810718770326109888112731144581532861259972803858075458546783491205424982192632093877207100564663917185946689473666956238518766729290743913778114421186379196423753824543365052611804232650574829833653462401204087775188455825609235344238714678675067543417919624192047985903663339106887121192195669471251827751402325879124079857223043794504363174644398135390035896328762076446469882030220192018155626746274788419879131419832207137471059706815975225117912815045835550709197537016092157670653713798428972038358534825119999320416134219721415355935036764121791509420884919370313854790986836488113088845235876178461296241199405937766865197228987936239869087069819572077167995756857777940891372251688616014875113076778686550894117224001655729825846255330580401465699983857210850703869534918607859084335556046281031656759752877555794228030799069721816749442669188055454186684039101454973285074003827469783673416628661801151684419368289870175666493463382315871693227941351481322559557792290933417586110850496429231580704980009392090157010929693025505199363640668701165804398552435868659724563014264497495976550579798298410872654866036038199474760696863610166460779660747731521512535655330165023631833105446103045930267652001739639723284816391905568800752688482593751772394563675336761891732721475512035078392146882471561122766627039837420624030408066845390106380183159334682568401362498779071700687239224123030282079772783681288255071388891011481355679257831633908613412678416351890375208016795224628323057076400220792617418514158572656663134922174290795236828872186364485438514505236236669951127167468500222788531155226639344238907249440640854843234818146644760621325760385623838209842857626261832923447753532413126064371563926977487333007077313185728967908544920482183912115177496035509836698175787832627355401147908070148252285468045448129971658725336832727368887896956008383697360688397839823712375103125819643614506237770336918857864738443687593500068359797439992978464145829080017173811861714988843980458021541018398651234025007018696591410055074880859553798771033458616043533433990354263102214689323685220329914348554127551579604191319708763432567881749977201649696470714327990816253465523431373766843836619979210816706359573327234181556679101572837975354363035185989973303888771268642434958504238615493849186824861276962624401550387448789988982731670885028937967017533929615568764097220712819717367928140830035712360614954619416011999309586009001205123727850679744734798765605442420590245776767101009968398005600739128729403557692155335738645389501461870901840779555382242287593158099799098130886464677978053018153559425126724113902073848091895615321023653170939104316308818118816544154783256402095520073591510956179327276425544602647165651899872917889086319344571578105352658752064117171092494946373587002222272335629286781315936925878850779473966168687719723312678092580176822077087883098746004357531618776888063329955449827872651685057906469515924667807437796988878846763517825366811994398642177693899886249235479275053182730327193066435178270345646943467190380176145595439655373603479759035129174157700566924632522462503264504597299546661672049487566977774908667546211167825685305612233884444138041602672967444358759562859955426778863081317868227532153035239453955301979199542871352500685558443365546865287497916821742402076524213348372459749749560197960651870653836443667273430500353301114819649981986812178912817900829910122068963511605148436310752281522990624689054762367621204728791028241206375443405165402262920844103305242778276751638274251719852637954271867460074725665937316486004787208564708292289002540246608492530952838157082752889861572782698553725075863301880588377399530859003268093483061335030223295140342740101983543273667839835251736418137030213264196338442003618609500026514968809065696419425727360979551344289421521375365580369483376680084919796939436642224565843700246592791698432407667151754182146255114424012349124803072427310936432205831139976376003685219194696602137469000560543526486070845824149498431597630036815430113519111661267987655098954276720785372819106881349467146346992487225172136776861816470166033074963060436841495254406100888034784152294401846935427269651139278645608700489401248383947434102342115380151345289421155547757389029718320698900177503944193144238628695558985351597526927354083256442602853938349514300302711065789514979454601742675198897359487482770027179546933835936982185545409656476863864121513392048870358062733221747960738983524521205296862195259660359378262949421015206325596721872737753226955881285309563219460993138893568712872932486524992396722498921868452046591201835016730501569774953684852968288390776558534000299547317584365681183132450676936547026189528588639763824576640866672277968922998952078237069474346242087918346282865379207954966208393048575147152753484151779820848770926453000935606026013132848148619118708807095893952287798172346816819602696447484835393656327233885683116326417418547116673394345973556896020507362432355507753262134721401495407414815799498225196923363860118698218272712910220732404451465923602094862897453343254633430016502799154747257573709876672149349801776520558975152949412259010839106328081516427910863407700620535743786255530494466651883873057020310974393346126984700899963267653302218923034616946637858972824504789638407698559818291651211277299177683893479069979725837787330189121453383722932552004170189717674040557594187617154270652396375206826986972535707300265825122731850701608366998392166428341326573645919393599773279954467162023301107079021543462001068090335368226921831109072495484856070626047555895068041599203980205911929328391907450243327055359630964244026734045940705874360340368392585198473595842156937334906214495671704562556966045327162910653982260271921268684681540635999635072999129231135182021580311620729484001498124599677912632664649160003609181258979730570644350302094485010342636055479514097983394961959624393611110221970097585276770075266128231553352659835682013670154949117114991126157724024787620758463133164723412410111943980080494871615261086828974065748640647899131823584048809178273099848977376084927519028660777726855901183036178935899015447372389828031844025473698023877291739596593875585134579030646654472034442167552473184743275739371490222858370376725348765071795340417179028470917707938474989389217650127854781016254125903646670432396639748258008922072854370948970403372582796483854054529049301475971083407040765700615175413690715187854196315346732044787978665015490166257614258864560005077790229514532480964617912062066353274555830332944976234905955639097103679671244965668359652584471485566902832581983172826179327151618281423480867121005352801487347510953709021750807677648687988655808581379753048587061572015368234143731146646026655061127297968172323844263499306539683825858121653682282581859067619845972110709116051368995259644874819330171332082770295478335602206168893469050076160684410215742719063145412538020703687543905590684326505492457083586592971066716880359972316104481989132507457008457373641430162339262079463858416392716160683218075591831319763664067030642748547858867735763770939005746101483152996363502747092112009198159936157501895685307366972174331537776209877500390445419857634203674313034760277278041656502841762111441329766798053867584630481929322409936522102199157868347990619037595948035814609077606614435570908802652945450606352295860318492265556382915859413010422924668265110758662365273520435623543019106116006071162235684568586400328925380245084301468048772659123202803192930316409223639393078506113050542773656039732837408129029484490488709056252960522969517243720740372734498652563679794429855128180793618982512495752766106992007373619129955972810080899902404119852442614499378438209918759753452299964066114379956743220982253591042112148586670033614898768092979432266082874795218089268514293737780877530979787319751149351164409530572037371023549924139119822966724674466045591771130840695042431671791818932153995042752670120938805799253994978346425081214953184700939383282775258302581311542815636435564704065661412359299029199098751155497741275914037250175814631961291010818292905039453090168471600142418872562129349854926218400062947053842223569086317361119414710324262830558643988919161166173209171120339479419808514918992431991637592937046293599601161227310617822862400111298823745422939193398976832605111405363204866030042566346727279143760090549073150509839995520457077189208589156663523535787047091306590915328982685033895065927992963776923910255711480264494084170250958382448543061951200333970735738241049509197121356773726795490417151788315430560678091241858567491974051468888576122606973979345205103591530683619823624061824169188811025764396149839518965801680866250207046570771637257257756453510248550840908194060345945988322621122876806069102947397864232796573247707166721917158074564871782892277746748105965817377282561004384380625963733338180680795620372959688074907766429930476303701226497789518523316383711726567609373805846830619438449389179237301100180979786217562033229449440262145611430275134664087298476324643263763885061686356473500622429721376431371246115378161991198413475948931641069990078734656015234658163542084362716930142539158584364791758224690434233646610546363935762141773462516476166994455495533733856632848781559998800043896764736841739142418445889120072874952372066187111665300544484199295334848863835363973462333598081513650708351338493018774497195471670504324956771511320420072370077156421364601366038056816336227881527997834320648409273696419918322391566505899518287304300573468340249280780368204153841585965620370902000684746256648801152283776916070701691074147359405214328980941464739516984246687354841195073055560347318760038628757021912561828029573774916114877388607677446670313849383591184406841323374195570994001325203366375962398386093214891383599877544445236556815817166164089054187987145513162671842833639164160893811586723319656753930619861136847671361036351114485317156133720265514111270042941289543929627618900225840821100332584541580810101829463773260119126701574857348938030882061335415667313929908533001226837962826131163499278937112453005735846212459793544895685008257386963713617926938297001466580995730956495415075559398482410390101104883836832347595875899536296878603925369049712460430156331425575945175189265722908737501002946772928031033444517603445087305960728351682561493026084174953519794103772872125418588933571040169439561689513771825913916843012105191796629584542044470852770522055087187242195825337752888260994948881080186269978273450330572482585271870757885218454831421217535892865650983356186170666451936863108064875014187036617243765018256767425490820243117071801675428439121686405669631347727945699114791770229743830322937418297790943787912786454581773608741233249499625315684298106992646152528061065720172162591818556394904322225189752058877412779119510539255159013343528621672992540677811061617867266034023505076154632245025274850318457695869550904519192552449770272823535716576720664111115470593556723256520665768592143028902504137552860920836463977790343018221520234532962418999952887495073719435892318963086912984353269673153233683235861881327124486007630484829968113575313803013521071900720271407109005237894093742948305836308727431597842730749411098054770515586320858035110837210098240640811899582222972769335173648495377474015662666557331907063643994305077317389722852867580586973621159782867271420084756339156450696550021419987731492986319803922782796071725885216035804921422103020194109898731807483301752101641097884947698971134043554652349003520685415655319387904377012041242514384573793155903622999540924641818108215543701640729914663606919079489842747393500255416266636031150279837681903422820451635436384732008480511173996686977666749312798453885189862139929369202784211182764143364778246108234590025193730915550144250857340412056659055283703635474182511600540896712212297889043410533367815634952822486406068773832463166006167299282958734366562246139673411731293896840875736424244057854924765716740890671729694617052236225650542085283571086600257912960713355299991659408129724041161746983993917614053318617113286261777326189754026706918578892225272225393465470816507239108050706231977500818951986214725429174911204517599016838764452379109886025245781765717613296304307296124526384927538934721142871457572559041793822167191578734007923283850787062678184907324753776435353646393156326449593723207036068422019891945783587959467068452213258561110955435613942074697945441317375919523479749518019198206305096928225090172713989955987731304367513691413977462135474519804933558237765075762437407440587372835614685353707098400654588089591133403160647720922200948716061205047465161126094680967276672685824512028815818340354914149398565121510436559806812801346036011709295668592981769162931530366340777410119005450230890103056558789743366916676584643745968167172745203800040667927298711282315582962296428626393470219272753411881737535233607867658158026694403141355700215166479427083651912930541917835272317420719088814415573981409341348511335412541758878278124329703198003517993103392444123405653445170349281528665432106909739982771794661847567971224282413294938563961828516327836056836219921791695406728513968593743443815379135045728812398973431806717852131832099579286772326244213701815555461164357536737569553550967886462822048208180778464101347872846067960569520184442684178868476092697312351131016431807430037436339584215301157923323699719624852337672689495704251238256702292933456189313628285233088541616649597227551769830819918824007170218746264259528823924751810640535469246920483806669184437283485210063408080452725124893340544927278255020862630631342659126021145246077537334461722760554282132905026292660418138933149007827252903229458589137128637096842409624595675461349188949236331127423759089849972498602552627040153176952224302892988527452504158045813033955006172545269931311133577411698847068322105928027735102107694564444196161612187567842201770223204647503968970385310822428604498452904305329083528942073634883514317726749119469663915863121024228472798137820199284174421102013991240315622402492479981071931050204685773308874847046196669611487079455432995172931294029455917537468179190124932577648712066382982466530581242625539957809000668334020874832305254694593701830158508658343715392286118779651673185624110373356267757725146669761144925287539249528280918098735674464893801385494242101260062570259023095823785253414743269963143167098333828691434416269436649686226057531405378954034255928879294063021960411232306864179865510788570876284981045351662201709923078238529684355566061628136400450731276398604673491510653610703026635561623382644058898644501862058477298542247935316810931100644677454097260626551780957896815933551587909109973376707425624376146220303582595199633619506369952771626276511851674430537025762612530112040842349092155420504459500791128836684627863006821727185094851905842152038093408945196410670905677132507508124717070338583036702705768608080881597541262053173749823962405519977727393375808782502653290895040845391404491139171359922314011268854422571962792282003998269724573311395087929851866183553552703031295822959672365590460950226303928571782147679813043784596695704340876402071290500144677212788276768827788856403785027041989558524040082005558065888279319821335026352424620935666147423990399067761357261262900338297269686145003744023196126899098330480222113236370362968043208127686133292244358017073757853177107689057994051948513110116178073767778709198445152946183195676638026989278159092533143799663501913107414592307807498196381087394212689047632008089931622750924949026315005838365823564680579795695818271731761115043635622288532618630754623496944890266882172371594158900956459128439990102046979106493429218178596008810223671548380657467910178203245987165585506378016221521048089923222173953637431317549720490013644226997051631421334127343910316372238197231653434073172868166478087879261525549213521704544066197121319351676491673089217032550615961328830474648179405022830146971181529539712087192228899483252020607655996020442913786369722767148381470890861167526078472250737161735762004211608870659868737044096317956916271180624219374984231210077262472084982773652823676535305502055833378604809106450010566937997155230714047062248295782107295211303131558169183092205146638828026053306379640135865383683649097611319195767265504295439491063071619144953909475233878494862482595525516035382925521011260713224861578055931854741783708483625485610529905890597790113834732967420908825934813120548255712503149427806087484113203217613052931014487670459486110817052183986935552865718459322534937594680375966248868057412399761735511071686784285278291686516274099846992115757606133836839235067706808915556583899072193724558876218990883495187816538094966369839548353427764102879300685108079548842546503775600111545138621029985654718614234118322968546357720213222823173957257445509506060238241805477234736348033520189494877302777828224463858769859816430423228274076697102964920457519510072118227878420083249582001170947357885302661347870030509489224694695794125721162626985133345185746621237229399108652663795025928592488264729873513444611232813850537383314688640616007705352891332085112804450771847708056226151791393435485579784454135271187441188733300403376358653699572569273814072660862259874699038611371007337116134688917437331024872954127931345409995116234791157606554875876567651261053552045316138236488259942447956466486306875251053707884655299738730646466101357395410055807505481031546804650400392359336077262313910745723673028836062319192384629857259376898324008895850487014080363350250199752954877474076852300459432350458370486400322285160314376327370818563869446374811020603644177977153821238936470936573333512921840657898834006784505993573373486525185028915221489561337538824626467854600172123409485215713468509691719473298926502202824177313667716835706450160281255680332791657565494979419651659395001568857559103894691956817706015512200396484124496937676887785513193136690145094673767593439197155138171354707364359135541943969109892483532882621326324381587478561696891160968965838689959293788985977086078724300036311914239724941351386086821910831357815842259389835604118532865740061408341992964822024127844588262652573197101203071699753682650895463176144460408068370988510065493101598256139911824544168717052452979275051042312441996792256400015651901584747102359425154240389696563811561186277109504892248890228934354622878482542931006478194989347998666856339261399488985429484342872444448073254433207921785082204063245459559817983121726164499010004254219275398629256757610493073300415128228594254620790034330592018169842140726472105864622526651625173408472809657070398232644572819058623267994966831126885510524234433923953435056608550887489090309793785216569198506524501949196744826518180893724547577019913735396248346727869239429633226719094095335561831429854013792837728397989912020732326941087744777719381825988108816309012594152540911002940845647978205984718857520511560958632181262222156733999751923200457970099224642791747843762296134432233937545081825284807178477045160948369550676541566254550501736438493605467778991590917971716692563943019282549056048520311033196449721468736066998797531197924943850741100678712918496564600246574983206221390237868848235414825383842577804817405442512173523851397185825664229588538549996243589890475672245994177361529428167686395813221094241200890464441317410561245045051802172832818106022709123679004871755666909358606314648798914486707759664401880029972494067083085273517847162223820092112101704124846559065895484678167719510090141414656526122396346136766191949283702352937298392016336461155535426691337175863921786124724992548996235695064370897825707468116785378646038060734697815553197892313172665128076813099313166769789079101518413659610404922679895931495389032236088965981179896556497562819459528021196344288870876266249880754163671191966180530065396523328421675040266314185585636451660710818244355381507536132588459967876326201760125682316230989783038924634529498682936358979387654259923946998553390811029679334839406577985947814840313955086008275513468057515715723682482611274279961764505696403609870313777962844121741370597912554016147477794016576116730226846488742006997572700661624892438826263321703060314216150524887036646824716516619257079779250746538024032628271262830645307312904831073311788040054342021528346498876600098355312169064277578851071821047004118506267304022388003497120322478838721851043015823721565162688417678202355532802452984924835064699148561222714089077461675442499640443115961569678293466434998403100067079450617925967959710345745527867652618220723230556880105108959236358955121399140636568702775641238737365639084520427150676523021204205738660710946598875477302111097959785331333777161210222805920634095323063543780458360160571407974361140274462003878992276965628452358061327055374847263088352899934667048908102178914316686320255530796230739262680187454059486325428870003042475466963776499468998229860993872799184695133892701420459872939691797225528733688418031973550243196170202125095430243953373135536610169357297830909307638265763290420628611439590262262253558030396783335982641828796034126584349997617706110839094790576774580830689516016061265263440990148642910096067048096785481309067585827732020278895139612980283651449537694553785611040848001900482953378120584045922645156087859199664989783709841717350190643848783493750873145162142662647745728446571321182940188498709542318851276931967342361563237002887712378879228717754459244452128864112745309935903699977760968128867766140915902795027571628866553369750582221726369731631719243895146470839828855116816966594937501056334739457884077828508740053609468619698157235918870846091017906180954424769400225625769095038119934811482927949406166099069467495829464389427128870039795542947674819114474685648508542492217307385698445732326574862101031637163817163773520919574361234150149745989147794970828844918157463763946557809788149699676069904372622921420030475560324595264441149493188465674924809940865037893324570415647126931181197586906646352975596298905950602406796146239515580265478287246080909570485641221273766464616167079644569970996164974112697176206872894893650928675697266442760050066363474675538217523065144853488567133941417565059537955489093891499393479408315435930695888536885362510765523247210020340712748953373533408155018043915406369843308464577551818484948750000549814041698389701924743966767799795161839739428456911285627896379371084262671859186068494461464833476037363737507683098892995585291600412987239977831763389717421254124319391384180423587414229562897244696043904028544200486257656918338603717247393773153492059567556032388225488946038059608039687092623296296039920639762631649722373925819417446961020749220531897853483894071095531948461227862154089415258445506413207312444994057768038496118477294160835308033097256484657418645547214563399080706310585430402408302624423433836674695365224616952507562996067715973567990218855095370865456976274442886887547759915008461537846799879778642164392843118362594674679572486142924506416318142090145807383106586351045627657586902403706376923560068956897357728976269973303718625246071323430381262861048807642459310355860984626637110544221591306244345744592756598339910955119571777870642611536972446879020419115449959066652881708487360374658426039318454042922138181180496851946671870500760159527311432920646803964646688214027684465711574656620523212951592776096674341845558844490914460751030558875683559730714663998880932363097055929764100666033589686447985184724666537078828554442912793262809268554091627097406529700526745956303902481894301270449386570533527193939107990245307675692325278808564575164973741236131041291624562836891026195052242558722730781422303002404550750331093595732575718113278694681205411717221391875646803464758968318004215370436074868750330914985389490042515372219515492391322659251742891241939750216233348629184736926527581986801732920839119385826063407310315809118902885245186114020605764654895893710906009709388407383083359769596978078928845584197460870522941371405241053015685949434317528377317623792004412518394392375548742363596608304622482969807467960985975799581296705766662611595445495424117639692383047378198894512352222529994930504933790199194468720732720477857489616713412970978169763907376841405963522799492450020134574723989170971961512948627385359276245181160548826461744399712711958998994353509996451843715607495654171656773096040201309214585152269235062978135379954791438274325985649351229147689586343834265601627878878690026502724326644866574131697217024302748136829802042337742115355334827728997953329092245541905240515910348510138793648456604481524869550510188772111517290037870555906944709757799423485817359444120076043375116598701462431634007437965732483455142589480628684337416583255522490520083105928703710154032851039964708025920208196289289591963542183057578180901461091505072917564202021643880901698589353705098959367479015203778179822830460111608435255538937181694074571080693895074804387754608360770139001247509805408814171431532988196883438879287425509439328937394829894398129472064258674383427354881733049591911523942091272395837610857728443082040496694641521911971137258863323505609658981844806554681325420135241856419870157240659850177087769018095157548778583743510459519097227338396070644373825242459833142246944896573652349951082794003876859557086147330227934628897448061103091105439657584980145170041906811951301618801412362370798119741537419714282631330950267410737045081714041618623357494395416432699396160910926706564863767900261613148528822679521001169767369566814338420191176274018010721263657952833490418141733944295760733165680430859488558095276473214241488946566215649478130047377144923984976083973195400657227834220282443699037202138868888314185131293359891608164426637799120363314770013396834631060775221860802565897024649016461278098185382444910496105648299106068608281220060749773400796341974244209039799793228893851097235146984338674589004682079378901309344507487888924178111708734863939513605837763719452881456817108543594686166296296215173626100215199544201023150171531099621412447727915536668915391246797728153398403333586867079229099058411987718166427087968725326926509239844816191492913303346220217817463480072026129943976093264645146545306697245253069253229154554333388789346734204410034195155242214412553730847341715163502778647950552191024220328660797581059435705517154271013422595246368048990593334093980934357398171215690824709786003087032197501093249662840503558254805531387211165192009602264289921067669200830144253563249299534474950547898947441429701312155249115398242539953983795679052296783120589463423648700342611157080124466068785744665064450678391623518517707088473959764653229237183149021767776787236131457974657089353575323821144327523741142351813001602326001497152156346245356716646039267983894089124887550278577941111797983404002545322427189854882355885911586111154457576113384142388031415854152999998908532541225641873719089719854124421305122419253663836262453707872308014686166248638215158283587854929790650269506515467356132680248208929019911455044043714297565860868194221320479479914425202578891021514377709278756866087858578606907346191586644479938557323709997258476133765183107349668958501893432528096254634969206198681014233108834743520795888226975776468742027470443428066794293362731150429812195585386703277356924495385358542736473662854353217138015473956913558049623890654141403232834052165907781074373461011108957789896788368335855440135495422964641656314772721375004254571956160154202665575570080138546316514937138192550718038042594270536993234951354253869583272275267544857124928402553767495610094598463520626345461901728677991105269422521964509014037429307402152619988516995567114522060288752645448166985346267756047472860217469207113998168320188953795781264864822537484181819814399340031593190202201567466185864470825630854295402381027669849003587731852021013558827844961031846723567267853273059125370988793893179417784052740275484386985896134895614289001326314284154902635826191896758823666817949322401688108880379875942840225877304317176745375126751409066728420805448848101725968773171770890810313836420929716823208171427955310558650293405825633197045011521469406284464923653789045630605670741539126740068551384927684278211348295875696728172218321627277416749448170902134692127599682985375865059419254829272269020614146303680494254107324854513023040241523663992154277596247873078734213761328034048417161930199132954728330268064969886565092705501590436803073704465424448437858216116306275770591552456254860041485946710279873376336878613811699709235251443747082171887378567572025547851483058986299767482482983446846885109502082075279396465907280098676381969690282651828822634348272126714154538835532876002086058266132108519581220761242184357030440640291363978538426549191185696445397763659477974082985298214541692443950841420452837842606768536730981698684394765112006100391710200833152967399628086954615205561459616412067029570749908078627309004441064673476332151321977286498548142056503202473978722200838624143475210776972479654819536166871026435935011851179774461572443275852287923031363212429256121206524060098105242962891539339221859125169119051937783731876931217433052771953900576860397694687679119186090108443077249971763259647173354373821240366314438640385442870826768848511428021159705141893216113999861428600745563317705982164596330971727610001334419646886858060245525897350698691114045484225819868894537614714206452306239310078836483196545162419842457544442625991289976283476220210558944860791370627140091985562773506230796989210303814982701116181366191743378888829920389262512921923527547467103736713218921166720172448015748136192484561163346338792324802355344941235332735888793625909948814531011559354331892595851334971787098075383527962174134110529868321191416598300617991969905552751269575395729528558014628859866517132916797597954556796503648842655773203266697577567211343972143370419977139320312464578213390797396968724212374854714791147744779396027613946959590104842531870822992335737450731596759629992559274043830275421662744312192820426948410228491239743598565690743255405112251699542306281391214212750057139568899282293181046282677046553799264347186414206005329601919068233299171122104113982314710546180156987014145327219578570032910773965168301048998222095227524619472530198637119185662212890670651382960942144294148767841640845342301503131095990795432336317398175806325601966690292461549475234509674972444512039952166482245925843682206738352836777546323790971589035853006114490703411289948020906349914730279554352341218705083063430508160936628477743487498670339442251761384088920445727489459446854621348466867023574235728621439921008113164340645863508669699860281058995451907219856071272798662489298678060506659839169430276208353060307596997164963872623570413015381617481291943013736918827864435233912485861208525925177208310301696141743248743692876661773842401950160789252766237205820664378982292487235046776796115015260938568888103456859657504015883279105463204958611297216016941815339811572185226984010322335875593426787308646015812882916786330184847290993491688173785924837742855818821167773492898693181935184769863494563248601554770544989726367207261839200029380547649644825409983346117469768429997525328156338469444662627003635788015304036878246452840238455100222818156287769574354288868571983943883058386241598033546968860488510981641572526843676470023913579748453001468472256357326025999554243564803657980866591115905355253395634945549996224082842353574477537885413660770030592519345544918767602754987032897056550621944617727144474270626880962081477705172332692626999089724109078737433597104915486337256696529998036358232905265238777962210913801861383181933599151161684750406697489741141209281096548135999093731111328113594987508941122226991114908441203861801215681959050333675974507935521444222413660197431668963726736499319594868578263041952567863445615650944429175612102265683065023806839302193288115421604116694918701457589259622932621412558783594391388387901600872452120191194477701502016512493678598474724327761521315138159853905406579835655619427420480482298089231155955647352522658545809541257899411272894811012089525263497268930114059939013140656597327965711899563824050585362538664907723924224064069110607441474660685088509143822264736384051052469180618118576316156077562210674870442200450548180267316791501005627505388264477983411623021780511642513572692793572297515273254445429371848079349424364573100520983536842137607305350890399317203114085101276239346691732565017181180325601327862139233947724974163065320585710898056389045357376112936384571418041548273204165623979286577597251702023201419457088356738378485737955263756623459624186836479664471984852025406673064806492829313644302694871247997062415250366536168604308958499551397266557882503522876311114097426440631759753509289526853237128359286744662250576710936302819163573405049262247129603334778308389838339633411703689664494660332606489645076291157200711456289626278607853648220646585161656702903480872512243540968078716813398097598667166614488719582966711090363931958121221673466640574780597997878090935033467939647406479559910290195283274569567933160302831169465779162661518979075417917012546458812035051338163855145926130925567105487237585171414732540752871552957391050126625987835458485094426995718054239113026286884435695855681656104833879707813021810616407550811004599682536257073956861515856449750066020308485470252149404601395250139043079819466501281514368607079645238710083860142527711178385429340903316485396174496758165678653003289365465850222656889770313481493474679414619847362172979892083229191145817207048769348163563609868765078328607263450095603551504358171339213814553650208332137539941701744864394616998301084277664019690360110571627655194457514239614103664887821443831594334157154902898054713320236070563910292169994765635938169113860389258887073925557713893780822913142191330818183419217660454351149682028121693183453817342851061638827240854138269682496749613415737220423705448632786972844203611281821547989865317614875406281401390175108890533431846291000913277748111471676561381124973506767697889492093736165663247214861628626160206730068649722987913740055759624594754160621433300447973884774167165478568073820990245365342675616284847976287228065092730163508417599762221386734076408350233640540312042432476093836372341545696153673540177319898537118689599566796415030574822774589801372455291695450692531842947095999158627085398979398575114686294169659146326436001612063986257074846648308328453469452029451347729441019131147703460143902902528401780531563842880270470892354452176631587870121672084835738414647135745343784542895656179077368411543390348287361046798518917698045270357536014005924794574659870878681870457679756772849564097696574041040367554511913511848296838969943912057844562577410164139848719752403500591162448898170539382852546237931117994323302049721567506606598583106592574581177596665625320996701501583392191434248183233364492983331826388604799468070369060236579938738270844456722184922874217730139018504584942054044651892436605851366396072864102864673005298267668018579469259166268233807680828713605942499744179462438894279002829784662055931987569265904220660868955598743344653857929396107030911258215199976974366589425920445806547991877129901400666479531535676591020690551722949717921268736654510951570856902608149459368710280885597143283379176646948789616416515720504302029658406475000946056020461290456127612138898177277075888517493756911406018830779299750529901064531992487739502674290460499548653704812308142612344522351300269248172318990568708384675564198602452902138154152271672908298512018532478003249181198300960359159737237596492052438056634048885020162333205314472954909075070588196014997354329565080125200678335538162015619667850300520447190642906207408657028642828347080915961857298526194774538492087130531039307076665261676751126537194258339240099704068710721412795919932874645033342938026296640807369501852058619701276034301978022932778954034990478673816049888901329819928097727957750388088675752301002453263451501344296197977739243927797919959777127694283576817709584727121202187759041039705703183114844317717400227595881709975994763737273354469004976117652207286077701113225081876020947423328765046170669568592629958072263901024998292599960450531718486629283176879996845547474106380478341827062576507676518955400364121769838253460071894738573983249847139448907798688049794386693479201633694955446692325480152932455682781055718984774677398079607767002331593342171561475391097701854398268009979417779267745025536165895579616467545903674146590423662787656209685355544056223702127482108876344704974560531957159292186759814783396660342036757348988674078038154825581102677744631171507134609705743406023821790968894809938013297243946034631300580852381375225713715493888555843943191337074547048630099696742501573392278141007424049113195502836017202758915865382577688112950378482272924365995104355879886408972038225743103201629319028220774765068987555851848762933934630883351969620236166238558808480756262431820194703505434541592293144012013552338175807239858909299402701037722720486427614874814580951873680792306466250134135957027981470404219845033330365362750083314774786894444804909388172221713126142667859707643181899909140473410357919032123402550261897975571338808973643556784173232487454855600805378520570005100293696990003230349317912891625192524191716142273536096073644702915112946610373303812255996484246723705852883647169803525891603479664523968288326830022574063661480566228000946383967169941681592132208560305652806029423701339496512039811711563869393653654185838793123571034262076995584086274849805721766042122619436744712170223268219770181965772372427935862355446543378323500777272313089552634865662061760822126562943699032562902225472397571008657696355929581178560934855000564581321856331802784170077426959916552287729916706060422649093337509545519620640795013469107873151834286709984547189505397081944703193816566634342146501177485403479034080414255024336166323532035911200432145452198462076542021607544110556380665401105254654261734080452430992475146334138287490576500876834228363834354385689188697272393219706626533916791920871988710168880926989644322748924041277383214818091566725026375162517989294376793078380724551343431367499100517628140178272204252041278033557476567650617485122989830290744525992394465813513183765899218381321368723848242727834114699542669277933988088750048654358890490104563657288864173690892999014895527636570927280784740144095848273424148284925950199830045413717040878673292489838666630197701831327227765672354434576981061579471176293001543815766165827894601174645901905179744180146550162769576579177533156781923371583606603885016642350751696773470081892864546482468919931356860092213007889285662149111278600093005222304233136057520707411752509502046625339880539210322568137118472950796882599840378293493176825447328891560925408806380936420786397951146087470852664685195711193971113156925474978000781803211767558029712509701298016422453277072503042340317854223858446689497476868717473815673603026119237327447322146631724451799206223556511253281898379890426784842159533523131741670637080264419271532039141594309468147457803542819220969637786006674064234056817520287744051983017968543141600425178033613754350119260139707089833925799052685970398144212143034650991894737436605278322932857676263985494489749142293507748160964218119416652774408982639091657186130723534090424806938068161659199770487207173777593779839786256140518686424243483185689970995397600367519608101115604655539832955192030354500098882448610006488017202423458593279862286822970459956989555212318426188211173333703436028426799817701250565595936566334207077873819618532092388587966147205388919903154875056908541272782498336675190095141167813545637267022299865984558079786990390790838411367553985748949449357922105257664622349501038019004826925461533993513460574401422543021262298199435791516082503247405664012932805112684125685998047285102777999791677513403704649983444643992942856595623437250865431569024338658650619838854462410941992959738202965687199582370013414420997546994675538200252572902149468115401455685973083933429536880233811648629224626538383029038011754181814789537416009357964961122539027470034238149120091398347883505060409942596645209433631922907195724883714041756437578534917531852518154120418301595283333115241971759652102147136581150139767573771058647758160845470708715621347552709474414374690491131238750264036632509240018482508077723798749923210629845348251777787332442638244026107909778309207252839657923937621840862486410343754047454943419559900879844209159507540439710263628055315562185767381039203907515652666734707418708108437473156358240923828121798126334778299341368325511844458575696254452201607516590501542116434086137401561608744159377251982566138733685855658969178753635939873095898951907098390750424673220121365889566420437001162415934978763905072368657317633195326840572261831488846393404268052418117529088627492408105037299459641127205540162676539414743201276163588402856560536225597968548565971822317979253407015424643655816399871644115421007281496341477079519385615734144094577053919691021043698693026756521811791538106472422254074560534597575691266085589086565115058458447884186850012807003488960619534778017064020470353890986329762041811700943654596284394465114782826278471702772320787857340635391355522330497737751339780247499151648979855577068073938076293368215417153379757369997899434120035703374213481907712957504539355549478669648349761648135270468519402980932388463077457667993350929526894256037562680413720421816643704895871846054840905069693814205956340652435512881932211645567482435157949123195257389377334743158857870784139323941686469361432465089859534564065104996916072479068079724352986537887695536392981424085361211591504529593777069880814516781009328532880749201292924188051788102132034415427096630879236486197314158744082307328296540882431385418614258122923469459151450854671745628372508382466395773836692416915264419644027822373961877236932260908658836698070799757549205771226470002560290691701821003075263097011953912435814704176016001309763097032178931025977573963030542754334778526073029895160971087484027648769180246114962729836587063481513595587423683148437626367511237817097798635157092031002036658528454011748824797857267600316153234722862478398151085195365615205384687751475053199284401706888530992345820468130406398214598136739596414345897088481883770117738739205833996001552238133026595413499576706766565665063909803936338993478772587996995605343899788430090039882258975843603450798365660232180123707174651454784944852895695713908431863066407662271438184843390221538273765137142186066799488772275182497182229427491771353548585998482575207403947889675924486569448153385189246838713811484375938030518119029109166490634986732604713353052504837436679207417668809241094501011689567815035104604442493542809539907916547857999181185181037021184320333390612129721363928413501494315790037704785634951051078667234039278205985133750510266687629068841002712157427201278588953005689370048933853323608499279218625264543118334990453249942567571358607472301563262274539923659571029825481696275537075358954242104015632950396066864293801228600725193029088550541944220099998088883964018207770967442158897412632079711091419084766144580422629985827719733873931225460214648673646228991176970986200114579863566411486233508120446849372164697112815556885261634081274009887795428530793309565834484283782043030929383609735801330459397501180103550821413194236967643721418512996424511354978782360801536717675974517145101165571146941749458812389103522357309328881539188753415468226031996862500126566406332274645787175868350358624663163011266865422539544016901144053949884373963000014901783615050514346195301513272542476400904887962264394513217010205543960308206257499053799756532706817275211287412339509733007688486951491817122180816043089401382517029723636251181497473799200840426301711437925894168292685572767891787402093933983119399236351671778106015180142830730149805947061471786035656793844045117676064698766256342462285655459755495015424082551484055135253669198623460537605721011134854256271427567789709058781618593824816847619090187401192576491388186332651803053622465437404199354226584818465582060797231668798654929910704710714683160698223053087092597320985938956897355816060366808040329689509751599067165388049330764611112392334374643873969757990522371042432837009998656858917148356620719855289724333140951565156684580863278885793477748310933203359631024742670969990099502395146638779295014853677709548817262299720268850657952748648494602067069967671892287154483980754606923799552182982520349835477010398123682070619652212897009870028888427898824550471923200168662216712507063853769837643396757261399709594166953635851895394163940823307211002246788808929962345731113572299464104899521349332359506187122363906512181330445665579662366955579953685889402447159555384388292886541653915410687130287314716102613427692178633454634182232074472620733393083900759924714149927187199863301059454611077999721879560394721250972646650978417443083423350910418232988566830031096764287498438128419480637865540210314004235909017141412841491596350032102437543600412869234429949624432168405758628029104983960888847562745311074370578495779542911637438526673311353572534627355409595480740674551362248450812808264360730400525607021806082977792158868562711588396068103623937284528381144024821889819914293541668901079383397865662549687923523172642583631629048704973150316181659138070421130170333928240668824268194134503819512825562850122855481985686270215840342042187880356878819778428381399118829481374736182785321950196059577428176511151671236809055288637774723907826368690731434823733872145483882809484131447887265568242577510853691545798577832431337040960877847020958115245602312855656521311222118239531018569182988399897782946104691963866079830220932302900346629445135253249766605073997674683244214060576066832438457655536590189508033040485548445204408975724061653378174142021095696334706379432600757645845128584154863303554346420234387901386820071502305805208573282136348160840706111718457376065572919233091585526071946458431194849460513276698913605927514405146418123450097739764490565619729620139377803391207127033248686058506808090307563505247700626371290306129734666816542436533904402636841141423892575069692136460344146456680437896923352419356502187128638312369148778984509397185884362905141756770896373772450328266849322576107780530365618695827921344549072827417691280219696637006080360989776601204714799237782712646569984781122240936654450122376204346757921041785063699807000325767218609013507640295545108984337241145426035837062542705717798946882152829205840251464488954115938069767961819957655471898546472560505921393039538174735627230130442624801948497817083468101302915232578933151098592483622402550124252875759364122063420867115060783882345755170499910889204603960978687481753993366403960722746224974240314141380862024689053430797578564476898991697376953870728944117632271529856875047755743935300976085068992286630024832294497254808843965519452995398790701102790724882720672723402652955603939393108285968367647296129341616058615446147235519340384914620181678887474280364663727864715858999450204341684671802895240952467543686059110845001611925174250537187365905332296485001987734209844003629223712325510077838126265574450781461513404378638254547060419146815668984694619560647016448705864513386650747601747187433916660365412531266586629934235689173608392070908369302174229555315342362984416221905687200701696950403504114686353821899325327765677020696400849721636804737218866672936004209933442604798869001665832140228072494656055270143876236699913193116587985525986509588632039630223077683641008787585869374960963230973160932555082957813419506643709735144391591690550989742211535002816830475782399999214823376396792045991258324301175646148491626586971790031079189496064256495779357440517309119614728021331391924524345692348840225638906625754391944959880142509623485272973283507814949643524277122894673195713528298701542219816995923757869474692231526272798542911366494205160584791152538513162334719176683535543121502816547058050140607286555629501740967477378252892371803667019343780744177843880904901564277216061869432643830138793525861751193087924965395658639352241785244720933807744322477577691554735454914763114534968728267163127517679318453296753346793403891603522564136509164125238919936642985094497527743817196201288316016124375415384523737929759973790591840572877787138728070580896306025859011537568576533827727688528833473805016613610437222227890611128086735588818207275005276808331679980680238061314129477451521184084796298700032250398060953763518171895022890851785457652966272849506852287656970861834231726987656396111668265289573803764579954551177006974292483321506112619049732800908859743044828853059974263527205633512679607294869949310794039276201451153056734896058524267840333081967439217420971246908856039366222193653557092473729565806707805367625690345816290024319131498231999383569358152817608281685325927355707499152781865613490285590368621296183191221618965168441109669744870570060154656234930403865462928471788990196099147907897246436964471876402011757741781134889003129839047936423056895884282131410850558849049303801532939412907851985934620581715951913526423375451486588823195903949938191714793382039542021664371269402580861179400320783742002650090235063750527052890480658369076103215916137404869945715888090258744467010009962513143669397741937789056410017050837642486996490414803061736889031590241692577119528436542507610775292392983208828888558319167772988699541928968352222175188115496811143723241355499592132868480454011490876303313510441568475072253747932294195921786300673999437126139860394799824220332191801626157951782083406958901552491213677383350116156182268719538080455353176558224029618628198310236183086085832602037496674391293164151265627830150800004578557825729960425433654666506870316991070908602948203823170551110409131305106037753260115858020391578216841820098780565904327585859334665003742805840158920411087286994777387930974421652999338949724368592829852516166490980270814005612467463800279000286596825393633633693916801641487042556816766715272786948299594270656480525619219060983268465743513420242920619308984304589784223929537781767620100370453437321014878550196066335941843003910391223935864145668214932441385879997678465617834780522463508510480859765138578481939804253209046552753237152257120292050777600419864765365432690738561071764077042999373166630999662272038030736762371962139288951242860895176514758907613313207229787044492162894593587945673010681037776664822865677033185320407883596743533553424054844695059563241536084205344468331121593070343409300459261009526980364863845860068008241157547296476623180212530976019769767290198533255395900890827094085358913992961943143474824360364950296138354716966263746970724126756723752581144607932114388154031476193493311007857208063799146572920089853109660530646830663745857510739131797396251077823136123472328793345519393151930773664084313664433292193980750322481465710138495015107475760865265313167914778520197788149315200454665758441890508788103740171068339421570995737497645722438439680440730109828541752923420557058254353082936690114495359603493952616093370690689038838691012505580467399257869939663922846313045935366016995644831997483414161247074661022751565943539967301613501790342964850384695017342077574165608765706401979726130643231670146982956664122842882038002224416595246906618215417441711646159839012276725771471647646459676302960203851519728085785836021760723180813844679402336049908753970887536308039049893854778425142010543846392675425712585998121556692604059097681851693210001216997331705286259650366949893863286085102007135046050267102067270894361159455923446887101104881340263475579652204575320817948082951588822707950161963601833668601666233600889804848979046869437448920670390019726073968813506696791098470209973351368633096848366665521379633333733112274331754127469012540505131015185577447413224224659260457092168584411060583862224966907022477679018522590311031294248229532243577211469202550743913059521931396980893299672326125917449286887020986234228392327587040931109984736597724744169251561371612941763419944763876665631120705067955270677616070528517192220206536094400216050596298501078986140463656693884679390066846082932951933198439542296431769807300736594013213317159261726108777096619642851198192004855535029634724633590556802543775699033339790874633148800050849836723111787078315428099868762278439097364818190352656738397991627131733839422315332439431078464541674987370465768441381152400231260828438833912202974333665397592801117143583989118004741653636354074216805665663649089807187385111308034274945714486942779917628140187560664938291601244800403613987145748965924588503648215358065933962802682035957686009328658923093078409154043205639469673995727293189751127001023611268215179013378201726608241260468370686543875194281875425296030924242549277931235187569323728797921438139248128085903413494245644809895966186845644333949329999139788679648949068612613813515527564532124507664639527174610064557698199917441311886565804620592400987975430211744174233738771233551262886105929014791650866834104543383476144233810207906181291244198695018557990000558470980289614159227179856818203149177662852965849424739225645851090185076673203672126830366026156500594762842765684359277373036817692234282518480241307665835465978422946710191449539416868005646982281334091262774704679554970142125260147512714476123603428993104136104368119599485721015219607188967009655616825367300043004208190270753212639642468590240206318333342043784073292820369943648598405228447486427879351876533466989442874405058675056942813633338711133495195692325499307895058872620365203899515883002406849271879502123574917957646960716167178789002567045164983633625841862647295690910680064162636780639487150997886235003005483268581764502601125556584524443375963294769784040939919862511520554580187656134149068758477304960836532057692499074669992514324098659804694303963902478606946190995428653712942527891587736911383004778351954753216286449082559899349799765629909088441146479406029693549436321200254726248224441835398322925477092036469588781887172303034005904219479390723770623572242879413733959078935828462221524198063311242732062466707279665758613910604886867457561425802620444909689513897232436935319809592504007316101953140901845154315790425566977691322109707072442640427396361341680978537028895661964075000893808336117892700471418185037404085562798907717732313765110428018742962126415637120177944557925339188840883234845564402483240973499833336640338344169314894488686912046962343657888106783648472854547252052251230836276552830159878867777298918709008732817604206493505929673333999274912032695476332852784328680369726661989279315972369358377385679804466619787636989290158363767178687173771768083209731447810343739925768483506363515052036723543798647013813124556699099543103039537939866527307924367125000377071456707686594727985941979774586100133145835931594717488355590663580691333311882304858618572018153873297771514882346690899739027192964162291341090598106670561285551584776390639823849543311834453971264593092137075065072754877298873906392134466396426310003049864963848930614883290274519203378548757545985237999743474519086423383624977022477275549761983494783177871030779258072058103817841335948621129856919839687445289272183847863483881879295998781607780809026979098766243976625688616116058976663613689699486673423694452428122856742780718985898970342596911641332976875092771305938718022076343981839039417603618069316045614599634544558590172891311204206869723361218063194098401165070404139953028327610068858143929165018080531300248553344673276850477773100825374218825764728820276320254150056216196040206451956715743359812799133463135517989936692577766892313271145991981012363471665800624960030240989520496272883958186964087219820416569253147659845290631240783131183243295711243106352165771091742384991909847276840682935136743399412947092165998874139645651785375225228183679786674187898823752062907003411793526404766664024432057644153290043501994496898613049572445263764248213305041262662190747514307958991832255095637273173183848774377895573101242552652874890886644098417329946696917978355355193034075210590587273386824150371624696859745539119047381448423120780496812687829879704882927483154850733554992724219980455594718723090796528448035373238390294352413878887458632324222181248792627398050550068646040397679861366978063230845539120592861243736010568553723029771125812385017861555168342552120203030742195290043495994424076018852489741698492349614265356918877915889172896822078912042567538313556559670377723580410617121247088567571903183505352660395682546816944471280207619653984765073974814834760797804529899593648361449266945357005967775813525566638291849660533335606840643661680568631623504654921648348117586807351292858480983807772138844406723817479573996171834119020777904968439910207831765224983252897834788901239463363676216949520147472510409068090561754135559127794221733699910905291648365597573139789627577456993746011786733116855402998436394854007300502779739451034815008750318465031694955995041144639918100577519137436699917957238805990980590825891398331701006164389049348132243958148469125114968533616137347774472294399889657878500442577790623085368823852663069753086662825258227732279308167058512332543471457532628385788893628859581742629802419188378063533309096169176318080655747544288476126094678582101366476588388515494887005010435171074125272297606038790924686789248329053195373518020826227620740736084206557278584468799615886064702187013417981803772919278738711153225883479552530415634997453509652160398925901177763711824432818231857787422394572276472202956892664121709995909556527006183339808539094180793459180530520471346498780971404674083730953083351398435774562807464488279220743051746009414249169035389182603337852762197076613998898324347104556461837676975450037058453138267588128438428179136936050558644517634535943868459790359892105185604641767645477385176114371289580945691449287775188009448898963194564976173072996741580099352653682795311340603388795676851947331121037600284697383844800346858458162621180270226564010094382764045550107569216529448302083750518432202265198349316550917286056558053469711457868368218282628638878225783812399624452532898177812283908008825939666328636876755033004982701395363042795209424995701570597309479752179329473719545634789230358224702237302411300487535034587707124227729040163583006831180368736256393802174918962490388523773139710503354210648225766914163931778616597209332425980048712838188872281661615663145316991953578014102616266945860067584737346106518782111515326172324993300608743834611410677832213289956980541913177910536210730900167507438317755386662126563579022215118108554338599391435862295950495863749461070600126122189598958334890755924715244405017291784313969323625032805199674011377027849497401078413534668965162421767646016478494934047360543067756268679308871781760805984919152065808103241329501470625758420706595407748901707287298169754290746692401432137775603526885772616949398319286829320820541395638327486147939191225924736176901609112998941428207983334994231035978381681271768711469963832409077390743729537573756553134871972190755528712695889829588579404523984994702930374023660863921062303800958971920670486186699672688114939124302620827389558593128266276874838466770678767370529487737591623846818566415790003071467926145343712181502468120827683135650725571160425603316406585893688953083695116694469754774582270584490832271384569813293793348529134841721553721988598644806708489677413009121539082440899447433444389736091526547368973973992737207192847625469661618457732420429169606113113314209828584031825623587573542647601627094629054684803029680953485810769581907102183827010550804583714043834014364812561705155590503317692589709650777096794746527647252353734606411059920350090173826553605168861521111172664145939360564060976714887382857186287227272836353650482609051435359057697670007710512748080325424470196960326510530234812523330522224996305765009843927731799765604883733086295916560244731693080993879747703207708610460577532340274593408022837269718685187294897236829849035675730098191031499168139613353992843505469604914366249874948338208860722397745339019096556851977022967305957345783814684724245938601110055793592026077284496980154454441795967541159639127956932263392587343161327917294068278319019026484166670060193898904494876993786012939483659905087821678505635948508708830158312017415111572130697179166959426720475203306882197685423820722607576655499692795423468085899198488284571906266826533751218148420996850618713659461311743282866098563795137467240487135335263710556208414323791305440833394893059283306197536055341534278454658958987540201999600307097078657779895587539719807130956574284837221913666418647672602872141732006879707607216528219642890119918443749270250415610543448526238218060152829680214503165587555074963826472109886952688657645997720190982163506991001075605500920450040890429938585338405570067311546841045555783475682375814492461649307788815664050489176009477140875275064450020735184278706183825381773425121011633317096582690054204717003828894675158411299075820289572738619248775568827496417495947741863761711793298241085678705691600011914429337005685708762426356477317349446659946658998171332900734060468629814807757304294566068210311622673911003945760501683474963978659923372132535065827028216438526664680002168972874461495919743850959784096206048543448345556229801696176395388564089693038380925109055287990197539877377295250128520291429738915168013196966728418610288916783534436708673348616858609986856029050322881513011094752042124073741340330709003133390007068376758962589934457900012522529280979168201866375948290585921867667258739520468432750916304186023710371744974150635339305382665954961760244529144955387151070008976070619798884005421120704557865298546322098309566113707542904356952164072038288853575272182618737882179352391347051071200056190782899751310138431189211165749517014370128371787211063101636327477139173166274244085644571647343430458253856365465604228329107628502268205281671467180861355147760868194267714453860206296100320677554370236082253824249974302271248948089908148264460092990569672843047889036300867236858359239569926353049865846150395974745725166611023415901843347601330974241583588589172277075317146900440250833281332485142758636746247951950065781310347628844917919959709040626583738433961441816843376856841128290541347292445880096842646925239609629580991268239919175787342526030736674942744232533899821116137651962633466227209636647803770136249147948608817493264524809323074492182586891230920662494980420786633447528704088367898976423383876580953059130096542845791433885614057547614338504599502420560738419698153885954949228984858019163102486944205130463323610693688117573823939184724978332134390411614419897032393871549152463507066439043511012524271939408671970902839995871895396131031078847228318473973064072414949607736525470430242323930860780142670710737876129523717666889346285731679216254022608061261589546105318103182411993946880187058044452497199511555378289174227702417973182313965177684982848299885734580958584027610147383585574870612216143163196584960371270064919908105192692268472466980745961897828719725525674808802717468624186509987309647785885049554145557325739017404970031806172025753872738976216392049507262090280156514735949362696796638363138080157212547627669429986025991147228097155034505135304566636344431754896856126243582243937304241675094926462072157114450396421715889930814665679774985779465687213387530176997497182381779577966368632138355900917384056392050265112289886348452078384145984239847140974087885578650222634014777355708232981475219616435110259015802299946800614868284766103660670911710222250613963819218298755765410694500258390279118588280687440467688308337689459630184817625824637603159941966791656917837265401393528394875029635322102333254383744154191657272413734871277322962878949709883653433873823866722815862367583895827434167220461005723322224316197014728464865586926994029931244832819503388963599178440560367183385331864442005550077347215139704410766295049771484127651669765001528696077505792237060060409851055973733511292067325683428381512802064376484669442465625671344418115652058364582712199569787121141365616240600576889956445960449154378934246061982834910041902751944170575760767163441350760986374450939143863521295962272316448023541234342748968134380539016872249064215710229880393414840668151903053709595857312597668267271772630941854040838865471954131815167414251099925968421398067493583267202435731343921010108835057754066002940911403171542822349484742517771807317895647910890882645786519793585394727163485372150670584332175103679017981904683234139916108538725853433152882461937077645216771822100675868091640934160369494735514684246565150229511523473772554859808802852667371801628282689974708674505907310604463751274301821856647322621391391680819101182843684037215767202463380711353472585052790221829774659448563912700403134918240779025209589957002969163822502942178630004717266963982046450543143827746174198848890804627109415078895721280979526511572528427420742391608241095876861711667791695944635165233849966145544903009745672548132194145664078540901180406815498975070207247595895190138814120652936731158219746606757481533245046780909779216216363245974432763405712031866569546675313904012387400132703389580638678290318425966451041223126697659806985481110238568805399282816299820763468496341928522997255989612085673071297022602282270401614279225921499447999732166079609027006114665105461219989876962686630350070241164080367930135404326526436655350929191088745591180561078788510010571387716905115606270837470098215575044765151708479161464941007786211649280308614595057022930972329772031086933436650216740191043285354521503909086013757011997784574499341157069492181637974678386211575816941016312694370146918029605801051644497405680180404433293069165492332769308628334333420944286206866379915982554670913635221937987943311815384222525161110439732404275568663060812101300724876638925604593386785016255176866826489041494409623027065756499070513890174095328020108797066096059891992561816565980177408363572039656686554320168794354931355128479349468563653465117225938774883551294751718154847317213984943943933671274124695544485784964340553741263209204239990970283404274174809407812512984347900050195283992145071928312946612863026446532559024635098945537569795953168158182703385023697668875095579004700793552663579059779393394029527830705663555895196014244841150831857467629186166164463977320197390562376317102959955860020355060104549211201156516576597693137450379517510337262681903862233923919612281271588880848038057083251515402416824164553584058987051465973046958726927559136933781738290555647014277925373396872027966208147932407712494133951241100229961522885757573225586189701043684209453961228046764484924390960410698766421140344641326264747380587750090084130125439192547807617310583336469094580600436429212330261403200268496558276631507755783362169449971727957891840646545588500718276255994741067172199096935286103169894760716443921299385227903472545421577752407873025830280521991235576201779923595965831961687882560321102784673597607914985299851335478452758231597898121867515074360721846695042221197251224891765929770113810872792066894422286420930474283400866335253049169234767821892339732375136657819360776324213174291136127527864740155407960576368874522512667222353924507748849631617667012129060759430573898441917927376858660367244218336539901484730806706562559826172038032227800034293309027403751760002080461630219938638911576951851386134911638909360377002315797843044664910341317954166380478124964368219367236623346626884056749967908592793091503603078996776859454725286700242882853001886499098688862247795906353277679218555824202343298421791241281437250451032456999726897406016207752215155699186062981541412603808328314024437085674382193855191897576081254055470655616534523934420151992531483151091006365837095426524513792146880774285660019964671455570930757725709306462478699339415168092236441644249812290085420848328538438047207760105054104917536346484090110618454162473821636655313871766272998513108087496233262108374753889035134488958842651794042353424977879890441916659199032968382423620726346524943986758306409434479229539605514917924544057633015783423318568039354557578154680029894121144598904072245219970959949742953536359354066522952621438358159450524350661725005653577557437225921333376649980828649699767538166947981832340337587023052462182124653477336133570777177068615720407913502306730526907457926758278922504973942482216089939484290523673185748161627734470461268993197617967790551108329290499713551533360063000275297871374415482198654995650483015477469741221689921291571812139468884514148746253556066677658019346077151960774365158596107926622840234163516882857192759110312851952823553479194471020548755287149729367413319968457785679605666606106108004095649224702343170891341251495940513760241451585933991621503669096546244568272532571270448391993212568120834072853523872499950069680850029466601649099960394745625795691245199670929781719030598566940487877052245532278272547005907277740770361432820355181279448582187179623191216616649528531279667798593243447743751817689509850375584242486802272119232235355397325569341273864653038628084027143173452169162782146352153800197320176598324220546038319754298913824923571801225763284593832580773974727759291065210969771129091760258506492798587665711309251499439886112670700119515198861025868399831669817124050534070918458566525112355238581225269048958739297917074290140486260502265521185288466764753096558705428804193421921030839176322573507554241532614660597937647588629045322456975626295453784403743904365444878767499988993615986294689691614867817068366881461817972880636122059611609587422241326323931429702506949294104769079133357734875090735339250311877784273953124126705688419532572832521424584940474598230181691617649505509117456507632423789857437013121582461406130564234344586613234653053460444496075059490547389711896230573453473691084674253300702682424964590660389636927975805344969853448859843200801967522935754731504226659237610400939402825012869002212280570481478274620355872867978389238582615540649875801828603496114278493527642412560564975410193161099134938775553945244799910509746732018375627296992845704970732101979709843803844207281570980661105379052736566683880504886628582950379167272610592296441390856058068610155807137989192042998366971226453315357139766981288252036977670800279887004220499549298737406197009845923819561998299822332906480253547185696356637893578673074628754495401097111799475091420716488879387950051267991268235175761951854759792155023355069935428145350036367677213023902856675357561248188261715942308105314138732338256352208962354443946482587048645645284759784963202139054283978367790647358589202993330090028473652794222018894512861016491846253729200655292819973481030106123237700146035911486185641457950229342601741755750788410193929070606142400573245032683867012531976362533412716284126291150506280231479750223496763397094494662323308605900009156045834274216882050347770822855638749029304710516227315435111935903504340524862907161671122056473777746143404000839996441765858262898975871495684110636939107620242292017799877483387988413409289858702181946781266041200756561961080511520272715945978661596031371912245089845886060250379043393406736412253986587154635073820234064463410051385556766128541436917103067654328140323037023495544992871009915258918455901996558959103516706451774964847387414110969670983751587913163559069392615910156177175309118406329460964059137742944216365495487811392668897353763606700682497644618635336965882103489959059430750309698381904069449855743723148768562314406873989856053724236410328765573176649886316454788416575941811185993826914885780501008603932558108845031757142212371844520932537628354941534039664496369549989855526025302205677322387765969292148802217740515688096185500542222220236736266820724803497415837888549491778865429856153117989418454706940156922399154072007725631106307222349249163604589698454421185131598304961860327208302294003373440315658063388133271080970334765123568097494367081120754458299605033750766280731640247619611752175669677408019425502144710276946882186425277130862360010711785001427013307658505713956546521374386274649887381868042565024074207538236635071308204081066832068747463825054770508064287661003530310220672051484203588380024071355183591030693515366547562171241236167604361403582514111587151003414171751823542933891904813008838876240858640009145206824409861440374527303091561258732327550159514547900746941354497098049463785007648048642816792681099161036373975586760786034534244057909038227092193101593808107022693328958296165254538250692874223352065163630634921055908965518542318448629581620254551309794504688451293242470954753554069813338480281580604468212098908967093239634151294980494750253859783546901589758370652886948445404793689123616403098101303486427023973820019141791581447978296810492189270016494670746466819875361325731717902723035909706330423256970038015855757274871683295419564095727434906541729815890102212427919198309031824524509491456862352178272720499172116736770467134412144929774419265016943545550383128220156340192009815054792128904776824131594523324104469317538674851732095288631929579472265371626548464306127024930868332297046604417918727057215465375984139612896378132533589409663902714669962784762867098439079139613077330328371283899071992601492128610549452092927298066628502016119289243473607660672501009443215745491221387111723299317898078419784235450775841306328929843546581825425402187693977227236894473618700734893034335889072367697582784026421968776934995984656641374791704468663867798300654148080427470618717366692509252286305905353745501292428344622469066246134766907178317189456654038230910437985600436249345133645554814539415041265501790991352281974350361622231612826369891137996210617111774062241357780456936983875654599379408739562663408042625407969671553751249298097083216043754007734668135676644647065603105529642405538346613406525248651584550798844780547026890927241812782418370658963002646258350001824903575129524166266900808242809328224523366240800452058525843683802314172990955131724668589964337400389079360434443734365916109801344608316084087419240274220409043171555875498189464036990140157524256399784825460408866423834505128810864511531742860474667020271889245938025980276296400330681098899674060501840997045674410332040356102228401631370793708958350498140276405099921866536547236988887651351326996337280930060795466847046505170613203544376426550631744518123242133503304549313108183445710616038869293628891772304411858526078233691120889165984428276089577048442925149186720787855414631140842088938886534466172987745280400753591918416645476296467562147756321912364216770345144505310542767023147604814651257101655996913581655142154643567108667044525334201367362846773327232111579949701342796527261168806989253228008896004113937424276056413172822100119432140755066192472729052635429176848638078074841711080529181882856281802703630642260852762876066208939129987997424836778152094233512847899941545042356834477768057556451799031863074150347049930405907757378416774455315761585197966791385159742754114530255356707605698702756430016737943512234205999768093510653826215797329026202250344661226990022893407858479394917359678944541882158946158304176395583145820284724234589064843280541815837815353226035175464569389240266696672790323356950701311514896261703968453549473349222293854268458868931065706491301524656737165027406495962895903936021290127696222896344466532713899451360652014692460644688053125685101548380532597178066211788269966690462248584601277385742217103384392834648992319957448435463357817213874449260191926607355010222729430509602647184759195076843463681209068793708839844185907919356929807171219352289943924907031311893257366666254818088070338941880231296526786147882843394152577858587797483144010459458559025462386691478923616349470306604314453784023919270627359853842734418303054243132849428049971726923576028496287422140369697533280257530985835937350801050110626224879050853059411531665804092386413237801168800563827945939188216678622636814797804707311549181984707383831835876909011953918979061308956152039923218485865208240213371436461053698995340947559678311575796953853936259394931210837265785158475970718659518752896375421919204121368601258178400161167601528635771899619016413412526605116648602470372478382024812698307836539910208736622959916997235473235658150343787300418016260376034038112226544426797361662846905729836863608995650587654150409703644992853356504188418418746475686337798406281124038914148325084997224667562747687678296108712825989988014101957530897410445523631048495096626958686021637170594816072410638008682214150737189263737059268135345843662318364415040190855978438137227595401890279838973349115333936326090027458450693231738989436313615533269867565792014737484649952376283850424464380179468409770700197056302472054683884144462315360783046309107993072826813195581070803943874542056485538977175773676016681539715625537892701478490561370454447628096882241660281561063001753149468875325048830824114539326055143771733901264560972324867490437175692813717289393326149186857809202202985271009764989486616706922672019072460928273223106048615912453787276479751390236541360695743874664095597565240201674339070233129580175145186622987015632873726864018203940712926450653073893569590896467779873796435898532619724455054829130752616468659702579288329472052976238071800767891284174606995636265471717548474096370496993113308156327630918674896176677316084294739582597275328686924107127783376849516625909105615182885849515439306214506700121901703136840688154629174860650756917088403382494624979379742441381383090631216622264044456256825993737383546043646008662944032234020878667470129476194672824525916294673865109691108176990445906421465267351733429788663305535794264578863226944974672435024332082115442249438857192903683172871134727101197137677420193890533139772709520295937314178116480568245166034234408705543253864685804172482035758892438278588947625424159880428628971934435477481637186732591115824740034781296184702536968891296474988096851292494232233434862195185946923633190322548887243049569941564000926669379232584962689082017047448820208727827605291706369656140101260145015479339840192939128044289815674428778863143931974342507361989617722952462407850590961963963049454363505045969817306580824446299159376847447828739820120971380257229338050425234224191599819512736629573890362971267287512827369954134134118601198244162857728361854889396498778143108601937881589100801649283139655121923436051069458840469701172857788003538109762768840544178589281744916507397122666038290282489060557461435885444815895820135862131961437885765506166955912503541763311510142110622314930953368419759697022495568431438517989622387411193882554736066683252298943185104377219290448338387342924055801506345409757937717753016587828491008372650074383156825253487649767762439944616579389237212609801097623819060061399099742481196711093806318394458732444746310533880661522719898577006402829686419574591490007604246624213005062711525847922656867080937953912350757553814027640876628723246874674378143535122043112011680013129021068224455145629478863102955968070663545637970758852269193142208748714369753356984706630834116014619057302146621885470499562372316154949954164069449607427184689978686510629702247217554001924709075040951189693876919807257715115368478144235785067254534434415912827124785321305776203742722253012196701856568787467307428362180802696389763716434451900301087481811065363167804698041907269790026179876420311458382720552177527155808901976700129701649663701183349155183407953203343389195729630833878647226111622942675852363754420062896246448422487933583807533872710796672867142457344119681290343278448615829126183802669258256241480168128845921384391600842413988118865839157670633839702498971130659486120514194867333832682765645254032626731425595842577257733176799035044287166038585500859333842071714381309837087874176254198340729316740343985718975208691774837055341944940396377787074341688203754444975665582357113269729112655680584832863699750958753530104373120665652046608095297900613498822374134902903659324176397947406232486479602255374053102938188158860911840415353140202721158589704598425507917797613824537791278802343325174042605139068071972461811519555506538340371790112653172020690047093383610705700311071644172213250334250356163252774995409450019424809041775096708764130134342609999835875310999007613039978194059432441607438219174863982380451564471825734858738717518914642957068634365065942794456542732481412002416694588920646309597543021423486879477346473228281361807779404012077828965332153417635322349383744384516114360612555591932804367823917522532237606127912126962777479791811925789481948967711341913219308108915966052466212525017930778680239893378585422301706424064827780452537786244395832798042765046532768961566972461723437131533467362079432368230555408979156007402779751103231167739527623455130335154054772900409192983832360723914020618105073226149223462334293592379396441191132972306232631474429989123910796973636760563774433721654297591896424341850556565632881213604034987948059107798255898655325401520594254639441116203081286746100366666204479377158992083861689476521628066561505349291292211125059762571809979790273908477094388022693664702973507807317807971718624662073007702879398730626008640720319395709501552830986057540917601346082422644148452930532815222638347958555177264791265345332506757717678448832387885151425293423737551949604801588818152584518917019861726131948791420951156140803834125727972132586626840728513055541853326732501643315599084152691127745205672747174738273654249933117202466074415430163363752473888933257509033809068805224798523696053650090240856849172197051220928216286120290390998301753328327637787267736143623315854649833298922436168471146858569759002561502935050014368986753799562158432033935748453600407547228239460559681921201279025685074117882728090871341687025806620527405991060140878621280890499584656383810526720943732804581888640895625533093628610906336820635174329517682103920969121751745219842173133308158710625513725133030389003919582432711342430540671226096509738638861552262675085957234986485934667149345500358326665472211644677721267153479788408640234916701466867117658888283248902983833803915462010303863935741066892003190295257117852726288847075274861622280202409933970214409386303477144570832865513284187832751394092184637716759570795622978378062758547141786761883342221454061498084893115898197082909760253960667338035221236145696309906725213308021019309349448716006494130143356676312503207107590275914260209334873576864308146150603931217878088779152457090085247554070619504010084605949387913814899805592396058488704454085914024233363662269131133411817837503194560278369844016004394270115573383221953317740942751024132389774251291477286223700565090299143042506981483270142642169106341360026597304888532732910289761022662811138390387609002406555734549093680114691734321213031599227053730067828500944737925451941452825882662988240793468635834661957994888361498681529398909627639201539907694859086377784374448881111729092842351192964105384397287168343884771726636648827097468627862045103745828475093451422848916654802524254363813097638474722965039880429530839392981888997921416386371139317694316437199865698933109343701282267293323510796658221964389251245816292751467255789393855800084139856303998439046255661437323513385251143461699099761624079252079813087548055809432383219821271590064727284086868562466084972617655291224363275147465940904832567285574953187609582716331987949825355046015946366813794482210338375223118015227510325326715289897084033549893791089919635384682431761164395036848495541777384491384622374040226889878930669415021100527538747437708915369162309343594841576217209645258783289219781274890633665840659062843793525882874881506410020049858325975950660370611805339856147905370635963009221190359027897897512349414918953898135683459121198268709296689644074184641622811042736265269742512803804701801486537179328043750206813397753321448413106820103381894933456853207652403650212144822865532309148760222220685812996936190597614404370515439681163817582292582549543315351890682165230226407875250247932392394201526073350092568301620298094997461781052381689050429553465634834014909159030594361308977993620931307676121253187247571123603959452429885365090685761922826558437786291565179411699563017936453397431192378995009499143108107432121620730224806586644286687854456334810948520619964932554393348659026860913908647305951176950013557149637672854869297690316967424874850592241695706377789630612253960011152844805452652616053082752775960026572094756658028288440934318289149876098961821354941669369721648349581026863907683435807140271027358870149908316564145090831020950725949368435414010999128744892096481985933039545199728962178574295778485936236801460355955084516151989252333247448823219417809062713196004485769620411504790486399287431689756759485784764638184967607763293490639033383878053147685863672102330657762796007405487535153663382612016345004176228504728957715159066676055392793187853471317505218520290409705953021032060008183341715425365524926029105903976466936564101935497248074763496938585222804793224512052733350330820282895746323425777164697779055456329801829598976990918856103796159629125024345207533695627434793160241040680933963214585942717759918268676993385897118740136221866321755440628758031178806735031637938900984108614930061740511675857159076926485873856313583040802868675704499412498440705575956966242967379917687998620492380090685396300437746310039327947678740840235449992337811526437589778744776826397894853255436373703627898756698730786972693615277567302729162294669051727418913596546634368789600806671995207458653359880983911611932727831905794767393664344029492914789863162082011908508065932734629072322574164065356449168062019375755090126027828164847088939649645918625231286854901316316997496937550594172468810728983705310225546181239441236850529647418428661376316758337803596429989827265272851615438304252005809660728164115519605678889811963624811922780041299016722403116997993291323281214347642053984800706555445206385685806569861143477191179455943014506766482833296766330049225729137380635704745293598480636084607743500240885952769704771509807700319683225149172611673528456121654153378375424831562609539594348604525135150582754060696604184732015784557832751418704386704327429684734350890753429109878775581414857666814472897694646094270591778827977237361623547842451232504758324670672178619317903328871498780322652314403222739341766314700070854340394831370305139588439539854790685207540951453108344690633840382923786126633407441248089803946010246063825435477447635929617525730781380723472500814544963588025666202792369327750013299347828989179021913739866022851856158124036252261553249718772447604859347721005369354084328487245345129336715808581160433541569750143361979773360706220846751499921328802685788597940037511306420338249126396687441140097512203149467977198501367927809164137035159234894726017803163287007918572614491894468396197411435390078285490939948798881665128665757779147128081062855011046830297504524761561865561264394835986959026722559422378195014485104884913912324465923713118735205108852053046009622255642906298290582679881271621107779221141471787489437600617737437979466660992158657322776958879672405384932597636769590847761413697940995765182985361838604724357002312884955176391470409664530545152688202751350267529905295515418193563438636872235829785973592499936329822460384085918590256922585738629846751229939778090012272360111789157258556547399947856429130909549244624589389927415768954952416298778130902014581075635361933981785873025017325005848133934677719635896239263701820709430884187472572469903005099361575544949087743946138615763992245805743766063515059781568197148209837385101241897475544363434657915187644036365243815587626786565245822468357394452930804480716089684941066678680067983557587941415285281026789701740290413764295375208920684909362676984149198124983772717358735103136465090090433862310190244959523175275435184915742826598332682451497533466063440145734236050855045244982303336166946635649189275723030735465800168256249263855782559613951776343399341361591389150619094959022742632147266020489413979390953523836931096966895653722619274306262332996073648561782315109281468728841571898071713541617256598978391451619734508777719625808811832298195998933070667806603598171623947455102060983521064199139440802064471793281916787634355372685677941326078683785283486631765072358405202430744651030099393212978649911845917868387838229378221012471461753368467934122139447631994583946656474226592535413355194491781321278176376204329460294371996447059213187193473437538968692358378097152696888656029440503223959774907378822876337545566645128152786176212392679385324149639802694711462437429854260822181436281793677150722479185809470968586577355995496153119631856680476372785225127708722864114485712521185131928676245593158124222468604399199816117935918632658064774453743724034631868142559175272234342304591936698431593675521261397162023712588674461772221310195704159210651996267401320373252816646628184992670867901193646728545831184112601767445155277536644838921773140640363240490508493322943169948549920858486788475205668320205797752039112177622497059963406485051048726497142626839905242099949838743357060688583091694125478222596513896069836804384303388596140074932867593491564430999662699942124171890371698832965437559615716010674370190547944502956425596917776359882130983075154767946873726881161881288681289257387493412963431006651268233033781411653285782791458639536128633486601361033161365957541351749313527269425092363985510541853073752195198200433558731925751731306055944150129216676476640984370733215071191523581954638044159687701935469193987922294078942276442573054429237621543459684518841637024357887828476586481878578929092401836703278485125369930013314189620418790822732377028335164554749691489648243286219216405505112127593687846690059187926408814692254254152247865264368784866472322319842286749404657569911119639521374409867061075027835435881095337828188660081765027828985433731515030285508512227107732061410128456621890994267979784104615887139141397199997768256434657753975078480829645155444309890126400889299910995241815559544300194972931995522265475652536350690728133442336485782662631796675062102040699142148438155923390325383188716798201948758967328875593514129721154394235422604522277699570294456743228239411197977897636901760376524629248712813536373426738266181881670651504358095496342336886446135716871972298755409278289640659605377135803341782595836985362344798400630580388253802304831450033001889946163754530245379214012380734658724438193724829700260442011267240749867068734853742771464290643150363358312379163930862796173435055537919146748121681645227435244707615919220086671602510757835898066161298228313813467033567337292449448531161239940858722491779227233859977616579035718328353397441657664596896605972948336983217415090139730832003997124438080937446555974221992694298731302312008400408488045860550161154562392174381397870160387100034689906054570634189977870808855858420454282139014365368045614123578865175092115211652780961688431110214478472090023224319651098942183422443725834570227656684719477323811839620485764423320594940999534637469079447127836141598776656571867553657427942868408175834233629084990815252664265921319768645291849569405365446801611922727621789473891953365232810458101706070671582930435053973528992207976420149192063307457021604689574698777204484691552703086415827823788471296481259844852018161275525753381953032179892123002251707216947520598006445964428751077682866542739744120254455107660690199234904836647873553876802535894305706526756202151355544239372375553223918452795801947068251972625323510187187754128180640468021070452689699947051393789542318053235224528152643796033109084710111803687493214214269112382140736635204727899623416294483614059280997871150359795058733589533810137160829929030328827053226951784507104679600980966471680623408360806566354734365036708745082237282255727444007268900083727917383789472466533539471247483625606423657203056004019387108969886212309034427386541041954468068592987084703839711847202891737207228388399016218052328823085554257266677674169748000677399365330595920242063504801767700621672551059054305905104986360715705402659689438801855924148498693595082997791978021826765037754379754094418747671721470022610728528521183011226324103601929815077230764866663297055732091239525063008055589832733149915644185278536021916720214633653393285735399362683736289754100446712000644620202360399823041399555132125438330581535055623676073483667213767111294474412777347384322242740514385117223423233243120842231670250808621144124254787959235126391124390915397336675019360767468532947182563509740376814292521683869741478471490999484292192379937087553753006215727506978834610482860280829230688415744638344220725974360032389808838585762394249514495481632810034099052484426813492602907320315641146143068405126923617793217802956481856788296014767652031260530479401731684599649392401755288468121094540176494138547898649862644963011690453272095946261083760346057775890836126504473611139340692580901128465331603194738758273872555972615419059743379750420778451731795176539172451988742969408192234256526182541447678860511814260259621673575125581668150166743258594244689289053727489221538295837367441495626599285292114744078939999951909537087889445191531015441173447857657890778656243923228079271627605788307830455352585767465496132051015670034000609552458683108439153578246422422016752045949607975012107020800401879926019143058504548372180607496368791279906481207850033177011732305299309159073498153333287306920364809775298726917469256499075006362282755744819135006698377503263633373493401897465686722591793595018569746792216114543699407792242045640748050006226847848465689453264320212076764918632456082116332950053699625185112333016888125222518156467066701298897585300262838969620874290872986900660149409533937514270354647158764477828067536683793630316870300173863826481163445605586315343337640784378887044762836081809059219030096595420564988538399284566288554743301813518596594851589972111279225857974046435517571847531891177535437122149655567702979832036697299596314688149092719751969620267470271845822411468776052766067374380324758297946628769026324364017045487561351552628255064938212993434798510594365756931408324267992919263091889261824022175346543952018967798513298764683714515288281156995584460410856815927403066342741351226687488560813147021181081034662551806883075514910608792745133158933699057391861827898883001220188681414170032685033342800578093452373864724004076946698364036052262600476389773972591645071836392470444136985242983928661213693986671937677183687598134898775621520497331489593500264234058190050362142861532009031087696775292075067464060657323348403539963623496875231277375928965924716742835597645585238405366136069875539737201199939559830339416808354185821798807565408959215304870530745433290554027711254326070154556118236717261608253307967361979483699674409345107465607267259900410554195870902491892768952774953491189605686010243597581519003803769611315738007968351826508941434383647713517348493812760704266102457358912860835989154552630159602270183308906169994117850567361840980230119956821968236490301777982727274892343211379932380135677717943182776715347755419773826646849709503272865066940095933111507420670672160604812724962338193518835216129333606996194686905832744404346015155561953353762407564273562884684036231045898632583562529095778294411291739931211432541113374852311612556170675892356725707825167175769187433766995571304983301665584373892412065734582096950990809844589584597423673808062866927934268697750418727324589563348417200341584770646936327372331822016184418114162125068172850985115954593594557800271324359725692291348806859762711277424696916049253772866459042042298997193139950591453544459680964662640561328461687061782867598037539352776807329162739720469468507429597624003116328354099150651466932234139748564425838768501140043182834894003933555143921844060028399797516277090273036168620984680574661448443649862458848416607935322803550331810963112336656869385046095203506922372314284015141517926366670462596034739389883422695903333845850096105518602874527197403693480763060652357079044042485559901194309385715342331538934361222452611436857735323470117473897849548242631173793251624751998744442083725492606403612302353517599386209466762071095214150434467904377424786906847757086084808661481864504190080899040090668582147700908394565453207006725092826152862921182138403503350579389831218115268443073001006057866204495063627732578989254026938476913794400416559217005440993737596021726774983552513041465969662534787015125055910617022133221224321610469797713346589849259258471489422918083882210555254542227795446066379372862059918009711591779714153194526074615703291671434862439848650313051196671053571477548513122702205980704840265126275954363445519122514929963849935676288382215581783238896285350755052298108513877643575152221492136070715554732580211408337143526254811407427909619707421680351635629224473601831011779348939093761263278501984360945372638242806076090093246462967462139031568883933184517420543543077972189491221253311281704505360757833641306654405100184634808999828347072241097193333882746832755622038103925685665820956213023722926258718009995180895532671688299620201469019430609743001776464332874899260583027768437799077148549381122579596302449520809612978291924475689479760362420433006529826759375985763256002109485925493556345793967880555456613650036557067865215573798454537380262741798860817895523468513325840776332270913146195380438538436143035653062532956200621334305122078004285996677999464519520678119984121992243009290506160444285545658369570940637925852463294480967987890649940676739497462752485898527762342765109085171358417121938156373294534004019976127316978432006965152043905428101957689333322217147535465497905904744139039952730190633674346416730617714074723763382265983236738451589405930198431757219030007214205122212882708630447714917752292042377191128250226830200632602248446263551015467870572850447784163948405210872392307786452371335771671270148307667194441163683574520795349262653619548214223426182928801976664305407907596760315787708694858882921363672793860985354005327936663701255998343147236993912859344078638153708133370530376621983226852869954085981416330251992102458692470570547849781432399268148532033718822377845194082917437333996855322889496880847933689464397292747491441478629138978030329106836240761042766601401277232053064327798365668722435296149678849787669683157443480409399855311348099737048425803223626965166480520675703889616045796817249422867034867156673371229749314010956375599052224707828600312382242237100098208504455337639759618881907267913043746583461544229739348631185079974424245366774641537019721466346100638195176877105685112305579390150895089167409508620612995067874784899987035601655378712704448755653616508414773699200883149985407555002060457575679601990195812221874414289830188816954679560007616223395128957844308881437617306858818216310755925861359480032351888264310685811554190779041304412699119303231260886667035577592681797815278121757239571876054802818911979665227237022059247747073312333925695109147419193719044850787387495372717764600396043587110717426020760410787831089337483408123731165831245151378796479157962556560865959902386665282281521194149171316052600959070650603060571938351593207754974660858151187210475561477152222172212971304361280036562041554861487051090118020361689879046044414596124332229724526831870025043504829234659614752316546508828555577960063829290144767706212305522341512798784591652759869542726991175539698432423371789147443680538809040855432080915728732244699500501209870245688781030202830081260877059440905763905801756073966451977619843584568429445011849353858491326392225064094982111566686488879049707257515238800068006054589673372147362450872645429927902410097497900884385021666882374988846873019591759951650887724406769728273904356968134545958593648664850077956810197607134730339420022452154512978910369450397740962733565090407394859662208427655617569966429037940439916088186888670205854421774099980130658082049623860545360861532427004888137208636770130779172085272949728726951246650018904034197825254925234022449584697516970283277254568513971954944359506967441972509410133100962771023383186808712135702797213649127355312874931147274730478150870623024854179324183160031260811742005655216896864337463013230239526989796787577206765810211846009538070199369553233567596693720503858636883623222477691182857210244441134762598052782785594730315292227589466533655075111685127595495560190698062583833225824075215438855437667211979946187058798571931192212809383152696244007769477901903469443244855971994843650050127548907170638299361504337723159054858653633423299629407895719499200960704054882319141652837075636292796546019490136600449949936374579493050271715042755887514868458867613252957642308540653674407427122548555331042641286560506547021982904024965011947504227288232026320643406240950998454912444876949563099629220488484924250926891740516298370412211638932155473580667768806424258246361953787020404584894190515509455786027250171327028473758585802126399732860084087848005006025976313441080811486508657222754121570076684090567985032397407547811381040867520267715906151568299856575269386585814753332739643508112493108886165151205107496169771937874309766870445737670875972888101102142838962568973627996931517495882691987902716953675355344904379695771705603919657472042505905112426913646245471625368697749277314633608283063322435834891341250307939661511592720330945298207583084361401355403252088342749015855257976492505301666452573913451493574897450014379390852835508948196751520354993123044167965344517026607929048388684318532785878755684879484976438627079845102852842797280270726912740156758288759889411712814157134502009807726874645642540063254408835915337795884577332711446052586623840580714056746671646526283974071787181107739835680247003642905207399916948166078047444516153967032502015405264584253316289358820879333223170316794667743367180226208483250902676899141822579740155569027759880385026382882672888124488038148259706919093405482762778594876357487310801218935972406875157927942832676418529079629748933902521322801503712668704713399345180846739230867057621871092544540304440600235825308209848869787902082415220584201282514008451889773294036132404995092567023520122584390004935013314315787669159247425462530949337885402049514213896118809101825314012832417279741982764589477098122053383560903890941682363480806503468014710888223183703486883101400132660958322613863780445075800545930147597179640759622322790511946221898879753224903276597990856837111251177658282523484729340947740567619931046355336038262487671586639274963331315249893339899209096431459975884886100507478755522012341482020949260000990545392270648938523078984515012231122983216095390711217573663114753336484169015492641062551880344176147789949119383853256986535851453719748586149816165791949647526298463760834873663094756280263543513042598338535092372322551457928316165449263386546650877301988638041482134116480835242937408864352867309220931661785213175751027617880351923263058983248413767043404040753350007107965326630294764742894602653641721613956967151941822511694527681019402489581366862415905988379583343096676990571679956473216363240875086304431945175425334011389840201439876502584134118055031432178308742255397261356764848736288013976919127499910306332643634911377598475121973837022653922716749926641254722183039695361571171103657366997069201801003655339068882867524878843650830197055757507566295635221542605908992368009490278115577414405389193601074577858095349587788878720269993443687227530466740234443695426829072341713724454048249847014247987385040427879735211129422178542538983284197804469120182567129653610198605449645601578136536810899321003985575274816546423101488407262406081514583968518893324170598615947461227608000339509453382712904052969117223971464572741005138245421899221552172577418620192011593893951261521051917569443125642062850417002196566431627310694021734580939804238387552230841944322260926384000186438333122083697128270701812040509708854598604136747695678996753915527224637249588487772088163854759469175243794517766260250039082960766065788433998168825242724070005657873424129615214966089748046071886041012702565418342271682730920448120322120195040080723576857370108242705550723271481381949206764436347236931674335438987013058868155891699031420127098149261674248541618548805229074554648953457487923615908500951555201132045258293615457312394770532665432811843733941593839425583734878904597119095330117809790599983810013665706842096731173192016352092604657287786458280500772196613782925792473362448309352694366563567971009107662381107584074277352896377304950022470573731385067117648666685211180022735124960400629609961565126470895491534175643121377430093380453977872299360105436020683954740965466757420689465518174034444335457818124901949602100187894594401449872527837825115485135517688139808169168544977768987364290353900589249625297435081796898815998275316207101014051913650444116124671410218630282912109958491894726249419417606054245100981208350124336633416259256280680579208538434825888100265143394148985209274062960139219480876572306046088742549526046037984886817110981230339170490278073865440007719834053456546187857755265509058614879449405443541258839233186510309300207775732196365143915558474026317982112530624407698644433894706177660082341339649116786926725499057994037953140078407904117740455644964614831466700248443502905224661599565064999535348610585479217440813932847447407868452244416684124291539902700741677440415772120797655205357039375138295993013213539213158344961795518753106238806509385041237641286622802851274587571050773466256646287810441429507134729728609865433955509592497550205500986829323870898049105072403470789102775416333338000577105584644323362097429246186561098929371606061395044826250606275014546461593582970906654615524691295961206607529568195227691856914792955540634428357698161509657015507706784159508360231247553281664244357235443857057421824100619273861956754754129989791597555139829373283989740862298109729969405418195363864999894160820978424721051381107826491303084103377988608901191178629049415059789904926219620031321689265751384852893156098788094896045185788768719569503968735542022708122646194752904924353696534360999194131778329032563671102735362897265150488549971933477644933978506684265170679989706187295782153273274097953634881171457899074321776310798461694553042875381964549441882597875757508092171565410440713858049119771154548074005567055031466129036992608135312869245087093891662916125263721018393591658033256876803597111212973771242867456281227983892236917693334381702388872184189150001198198985202262479868243768653228313818998431674442933872250082837753994408896084189699385059824163546034115163529759262560199479315566646948056464499801606682010146353626374071417661370528523520612632785307171864696130773865272162988056446790637023156312424626449537510129908630416250395702244693320938782191739468066695399859654417349263208561925485104037371107228768306049037319527141096166476281017849044714735776750617408337696114419828654854724210690317007769075099210604069237692559038602779270326197261651716662198363708643892516913490828759441655490792433996222744753644790838311515957777318601961944927560344310729209366298691811777089089273063948123396297967577870997196884129195013509633225545357314736900622448396626413196865254629457141394870681314499640146354340477607309393067595989176804430137817324698005180398562049543580591989338505527317111157596714736833083983975101308596345556895231196921269783508475239244093026218343833337102983566570132088215506760232660004075024775485748362785403450992045469008348723475591654683702693938005665294050499423937990859467297407846625147472111566114129908772097487688928225567652540278676935079278813827066053711466684734930836378043372963966557990023621105709414123893311317270642468530469693045312994011965209399733817302997368789758342966970362247108370114630589538114522275036129979699081999410872808310562012224418572669385441640261225935209450886165569583398434853880406443382901195906368354172491994867130616590846005484891178443543562684158310678983250503587777586871726052564521710488905865961586864855743561633005131045214634299809065099061139609347594094437875236305158326614536440805758240340489606841925802611729645715879588346712639413590880270292866227095043837407239825181820002979911180063956787691582239359076371011993686214695764911603988885863607604855910305640888219406682523161947751969052574899475252767361235994824809196101245702945499044616608026506949609054074953860937917348998702672088438452682691022076658037958831265589101548258215147661299127337120783144066746004531547043784731387251018224764191899249350610710716766161756593615477519192027428127529703547605699848167878469412104311508708008457188398317533828177855880830895358566495939855965593696032435417318408618402922780095628507041172974318476740123167569985163270306731523695183196641339453275506846361794846999830486348887368708743380606289245613558468784926917038940621740916073006432352861589396980176451333641833027635330223441413090150591490097099679223528950558353693356292666733201890119395207746282097169462493131336416543465495674880360062965261259968159017902417784976085015266300228344186839312315686415193557914334103527770914143302055567509605079117831930440145483143507023016912983234625173502442682244181717694383777444334353897538954139403686029981764466374837870288584698614088884894851045517922149439839252657375339508030864335893473180135030075463897740517619637239700458475200461489695730847887184048956165563796680980005869971777594900295487431514351778692144533717111851553906932497089987132151019381114029721532096104550481997434042698042760432165303423066942584145541994651877247499020516984389919627706939437015490348270592439844362988180674768104637781345723052498525792570538442554636370854790035951762180400222413475699458907244825315867720244475512476336622960000021563718608890166561483770495404176105341744425101934281540245156529339469506803686577467883732148533403670061471419891446405868116529900990127370461549811987641396066709637939784335065582631868168646504176311205110436648635701853463026199606367786506449697323749542879100483344816077399271407063247647836256364099496689384024418736043891901059028667321859729291594746992079823308599870729177335792180252204617396755935697868259492241963601225233853147292869267531674307414882255834660595259681905985018743384740915021365143203306238585130575858105364063537312912776827053139602812634251725553088090069279183450104132297733186241401792504484890217110857434323771347192804584386337352670205508123892937564418062702513145362709657922856687666726940504986352834075217014180896017656406794149028490867404053567571132206504883863914375484239753235378156042498909895677580751395104572896057011827042236336964937548243902795830938312841477339206010033646848965191367167941752074528244940949011566071028763478013767024301298524432876485254314686779417687082991266953429840097454248952664603681824282633600216344372163877777350577472003278041233701040816629018514690564122963385807078213838170932576454633135473233859646048056896311242115416808916600250380898313794591862077661482175258220385437797101081873870270707756945288940301346067261861476558119100767542585379060715342936128479769524348001182387205923411808424144833774933217016561111610147042075710323708643307951171314639571349374887636746378994080248170917806195226545508301882819585773321576843137296505391525624044643329187453173206178822940795602337757206116111005052524384875009695982934315793922908718796877210082202543771798504285770763899917212432086438767909592121573610530739436176188109432074648808714013846713914840217359924266733008837494314547949630331793745158068330210502308356213162131429012794893418801558540490031306531929660046194129666875871612252177055630262889868807304491015339436665342939524202289509562316740913878609554808168944330269458383349621451216754778063210198752877890154332865886424527104195416347057127870356631232371247355369192173690569298449869322667820703182839337017571311501894060070911214572193004813536856292352072117627028006836411994315015902893767561916901679788907946331011987596494911399504516117506361725933932739646346226266705287028663571426547199997048040325651350120612524158001368839421087796997027925386532376200489880578788580565737812085344910054824709456569168564020377186590238423095312359211017879307931095437827432850645777677736675736731433249916867038161404639843275099483735375507608969017839371879589497152921825685606760248228431431591330556792231360196974009440196857925327250975531593432866888429605976346059529760298473440774980641734767089269732007526868777753472355782019477991113029319025346950335609023702395037064995527169523636889578100770527525208189757917441526398772442938031169111593210818996200329283475743249218380425747613433428558772129605454286873171439363931095645228651064443884995393482754010124921843888593641078242205061852770903358221970407967442322928772055889353003153490746172274395522444572536183999977660469494501988032137690569680760859541240151825675221828781213626629300873200570597336177985033963820709942049919846216201475637439095232642913635968551505017579741355811369258775277015291701100381382482116777166984367616957261271753659825820181376995841272756961941157094151680656529786235807053233325578024572343691483357907265550332642971649154171046615187544937046091036863867963657840302074642327709030171309507650647839724129749277520254369399473061158928274093685371034069428022675690702889652037413448259029315144128369105618152265874517727904961163857766664732446013798469839720202665227216538389092969997924040244548903007791894185531397489463973940471362859253487009712156570661601207555870344603591570038985427619456001224299809681091696828546251396822245741071916498297350948003940413043815791825387056449593432542676679101679883616376713076550429958230159212429678160175508373998842263149894544876709095963023761405093481104737142211930258208983087800373957009752183915109962335573919670889239478686996982238793388556519177038353669088748539026185754746640045536060238147598195617038671550908066279336436141150258850947520985901003084574942673277868067610557901678848266475338468763029870718170333988891670733660963203423865867267948418040788927381938717257041948429136410907955440227870413288907262886417880992094439358224123283988847281790862061179151853245766172705674683046540709315774566485476960415568348437958450231624493284413400266284433237545673347477257282087226304787607457966553862834804572033527625206503226292324746730030953519457909547356811046966924414185601760808358070929589202379206655171880059173082398159065136577259486739661183064376306266847731498462156750614845338827563824216378928031679740315544554497004531235899757235326224360027928868843580337916892679538431086227596665187194783620056622021706728301586303685955721214629580968943189906155048681950447534671616800019134870688569923526181855040221631430747222924101780607477911429318656906136166511331183061724846408064023587174509449887709835033432035982720219599975271494279976773690660512152357116269931652325420631454709457471749993808872754820183760663400940732240257519212398532520883329874762451117545328621020070355277714134735553134675817180487473093631247867483114065159252448918530813446065739510707447506644844508091390747147405318613781491133080886950374715606990820361333205726202997688089682981902803142362240414257505438681844492705439984487470079513694792597947061237820688590744020024685314013914752582473187368067508053270262166985904391814853652837320095771949664368694333807159963081203175018536366977762610376752696673894428705044580060982754053827880540317676976804449663611752316121081416848714609679397358495785092003152970623474842045715570349483833268316900023280060998177855974084619697655073533535329100115051584936495656751048933289970703213334302457814798672763766263477794997085297598559192210288790737123503378779782633065767687688126895259413700547113869820217547592655455422648987327530791904615289759373517830391851018897633578756908141217028284139914718672842822600568942756301887134813422423382009275388704487783772660249498271626372487364110322821292168438688254845049873712367267353767440122021144766583130538131428408161323657096138890503203833408655265042803730391065558646216630436123081328227294760308658560194071522125457768335216993275748645142599147640753785523308018937621960651591330963146054079511184110055218392907741323706452813916159338779799152886646527115147144484680952126796551540035054475427814625518977534826447841470849010362429721343438543516572073931760937919291997908195961174025017173971405572726566812908068662836223430299790211092832074488384116755834428078828368969813391917886983563199030305326131032038262876481280572175277933203443649441574874733716537013411373406813781247985282135066204490293353550429819256224744407614764539674241933981781906497997743798923790484940726729754088474849745764166915272776921992999929355136538330066052896270581792775504897498367877239455228566512108662278403041725159419019758174201516901813873631489296802943809552213190197060691115772261110500476850784178739279830981133710118341857764229176572455673750889370697446086356709286211039904369079868135710900107406266670406557065280875471745751337527319456834994471963852296791717555268110605894455519506052858266366647022482725932231783910136446054878974059165568605899516498116878992520071902117752205072163838146328411067898441133528748987497819009524669702984921669299526381650881112825225400482012473085657894681946713917050089267107049968441692557965813275105629692163567425276257656594725872773643024629212971077483618161941277761562661583315191775588614569158115687883703981978238961263881434779982486944817845922701884651447862519694607821368451033550582165740791471143223478555271728390944448218926005999539239402608665928151661691284001205249101474675261324952218373157659197605622100785718374104285287199860199174575335733723077565809803097289999477345198943572299308265031975517462306882391871540955189428756356748244331591169971492802175080307717521091242428934401060811803703396515966785278182741834551967539852826015248167580474413711202310171992059519444447702015954061618032557744628807424779291425338595099606177304867172842512754272460265179434670559834577673337538834353813211151423625856959961889803424804075480287057499854447117478484217129387945868027559727336863176489738686841814156378635683020072364929507573949056420386582625737282832211787231090896343368569169495256058389416114520492400593583868886200968368153295302648185515675194058999913020713784362216864519386626777587461497569512803508820391985367002363393795299082280631697136337979153015698600207693460240832636065840618423330759038328795181913892692480200114041044671089084350210139093338545792466641448017165535757624988016718204752795539966666454514973324068628134243771924028666792004258042746963633849128963788261916844695818941770619147518406440832526339702098464179001005720148013694471654121968200588785953640979700370224065173433686536375121418692186805840061834430457209273617789824961509476443217124575562057630335058872301651230268377254498715705668453815444758318880916968322622233713893695960812660306145172374168412963035347697591416618984649172646002158062257621777717207278298615530582270446017089211435480941286780885067428724477869638478148593584094493044157148485435882619976232666060735103322942766372936616363669736389529303087890441070919091779337646517580271095629665015699636085189063232642389108234020598469500617448927838246858393197052585241336139850067133285532878038585822947108583987352633157396661383771662297458335054624439894679601017023480272545814171133245970863787632676385957314338174934921046024508481126903317587680688916603138324175525424078301714691121572764310607417831117108835453586873283739883038549488575792353525954523775182073144351090275099659519448811192155398067565725394813798675970605512939447656519759358050036852339468704163059438046922355889874325449832733479475745419447166943126444819985016383548408221401968524872772777449973009590945733218352207794024399511882694350337682043285106314982917489178728908580738501944677246462142889915698294332227186201852525423667551079267008824359374407908719357773599426375310859584133414318314597208772849630352303755674049379637494810589909636390674310187268261617462292633840352955116039536539011726302610843636979917384341737483771900190103607033437823997946455234143577146864016027415718851011169020332486281192681587277087798513438771885921080087983769399951739423604852612859539861299484308289942447712321605444529061446280263435915949865681092953148181252864192481731993449901102325114382041815659736580981826257537553406268306555922000350355765201845261438115472281425567635728007922688919169509081901133833734044859077136001770835021547751721317881119827911648880105972282010401668631833725881252047932704953281699526297412553536654116497785741136719516720292941926344243958775569919567696766662969401623067901855999341287387739765660875869777233899407985702811607613655746699037384500910561018027153458445852150534716680953883625945935369920060066998556922799103468312492717642304154910814871239672274761270390498950692107126670763907030576396043762390843620661594996136433621471067380359502687078289596405702465335134204117645115623765128094020259960833644821355670520943056175144524223258225251431297554660535287348351714138650396496962010627186448522039039711191739469655902094605768023949463676451425005321430315914131522070758226444121366391008855304041843015949884843288856900247188179864462106386469606442506897716807114336405205922750197794764012521655776872997845936236732517532649708399243769133505664339682137212951808188877389815462445221274424062508938675370341575572258213205210674872033306330652209731749549253930617258767607693267869434107361200539003842547729249727452177023755050499701087742396866416968441655658062368462213400340302750495817244015326464100065632289722370615630045869181755654364936773872532060530912319637825013459026216218658021749582694382470749476546735924376081928650365861168108253025473364650766822421711649002082154974579730301485571561651838714928100818773487533128430724332765163493800893190536068049883698257024553751360668968523501789527125031878818897749781367870634607924639783816240344474353151373927629444186663497689495020348100135203280413288234344253696916417556350262679800771103176086808926330340156442297544707437813519472446556740088002136110884428952063642998834522025760430256769756626960174136033957371860454838277283175130878716639984210222583579101607603026185004496752614040815175645975122244014274538157219995189362613823094213096807137614365897305128564594384267609407314138601494254336456616706743329197733096718232200682208229146046341900209375586603196528543912140233775703664984051453342535241892311791097908138687853139497322376413125719882578728878459913144450515264337317857445538869585455990122103634999381483213170539990660848185463152271763261143851883828612512668331678158579926737063068921237140408061989858266093920984005449993212723371558042243511490613986859949151332118337454738183164134533808768450014921287385407223657427013119155945206789964999820610422505433748903152242648334117283577960384609230614269092634514930842942605357388142093559248188183988061665017182211213336360392805354996969701200011492685938575242719415819663547324441129538162147364529305702913493003253468704833640908115546000626016358623228435112154836033989764758206247546264225631736116989729680786120043912345126544302951312181173412822945676092790838695309982530144616998403414815113519084376382623811518334228035163882804534767571595521497043444988342034913345039060278048504075428952598688397018805128475387388025009753211667684065145429631860298819531755789266453599110711248032006242832096495285674389819486752128378678922467288230241639215005255313872962245665500925957011969607446173626516101539969044041412933065654130057112037407155898440146217436207541621464462562787798316355658387122238873090869537727868022285088539318460827643017989595382872804550805791360802750594039068885850453692410470467113367631490672924085440285991679207798094541329806462523718879127941322742295813573229624374059511775223468051318197992425764461239336453300685844480367983369773781934628777873330745278164538781861483980302284722700825378206409656153290612642668745849093811796155125871511733673076440525427999498318891247411052406265591643762509709451777487535556602694254334073408808020944021250872400016233463451376718309513672220765303253507634894953568230867555571203120218647156569874236246559662021181597356065545365498726277342616394628344171289587474516794360350945122952289631453641114466120883333285941784585764243180222634697147936828991426064252539082850132483502283695407290106714093082109726676834356629032977805504801799843715466021022918928301503815670935195297983338415898237370547033890920975846896690023523599943340047966669212038796054430126834365970280553120464131588491164195721383397165716126988578180795329184469692238282783415974934540664633375391279769792356058443304968637790960930363961683758261616424868592016029196765034928018196444105608885109507085633278033355571952225641410812416327163970307204798432913266889427406755894771492864669647903964514043582344442282375057168882296100664138848566737410346729039304844346463230987763765770726618220761450231520338998707932971966492093708483479345792027506659721874877744944768791270333194174078227285483338904051653460731194770429044399144788725832290657320656141279905000385829132772360069341397805162125961185560656118370148250198979943032784981544453221229638670690866574980859342671408282364186968581767245744473237088075837502649301318216240308830756855965476866567783475984522421674269540670533502734923178590039632315169380576545565228697508069708721409777906742387351549743443234356920003165566209565067141793129130324288004039319478867849721980591926728787677305045672046512720740286974764145737274049902911774252620376587492902842657115365504405957963258792686181313897805716372631370718785374166337658190210729269870801654219417057066232245072264482123222246141686492249322748584263722948311757572289318464773372139880455109954654713605157711903229430675377621444974799353940595375597369084750525802740773362468720173212451067127494925974787742682175373119586624831956669951657130141584804847772525089671145910503698904169008215462727253869465071389792115868285131979441440896307020786878662413983632177788977373865782453237517985996066502594424580939797507569543454408914868572765955908959472717780973508740282612045078977111486440150502720921087598898438503218761537506656028101238195751348264949390696602344772793637783237725263501984043771575378142955758153382844653101354093896484875200449516708918078418758526820750934403971062701786397594297395224883828608813996456500391037872513868569048578127025354443790213892522804290702027367058260440255375548814411407636514073116379707848442032659857324076614759346905223627626007805626735779533691092255863445368728920664261765564787402826199194130510789565971171237132942702591315567909116170807272269501276930553532402745078267071688102687799394257579427564018306148870413631488386849135587203015654986574532297386010853680685369342524189246049000234734470733297431483161697752707020606406279792387722959571497219787211723566192973993715457633909332139133904840025320362455766492738418219642513703595156475690217622463854005769102088348864662724805564850309555457795671714411769912201200042274705250254588111309362081578755121405472424307137580127053261613481948165675330505043468666350455834864844729891419826858322602017928373591526026805713918941751015822365945276727310508746059767964895460877308889673914885445129316860305301609041152818447732620213251049887990721705870125298355081683792074459538545454503900562728711285215101703718072178594386714390421442451624473885652113659743270374428200739593279895749380244384399776831996806532117212556152904662266692746975828543119214443998453468836037358486591735734920038070301274576199449077559896116966491972726673724512456092804012957832324633111881339257735802294181800407207376524728066188232121559604684762859852529302360184164169720479486248241350320080851131594027404057096081555124108941539426757097357315992863362941267959415386519278430659762294093289733355881413661375607461116425201180375197467298186765692673946515437323423224919066241811072131624968110951208013788669688738225554247999269545007647455537006658048744382984620750977949643344567294356429688346986248391451826185034004903065295850119429640534708770678353722595322554823020257131815244778351271689991238609956842719898782178362932412285504376401175689353790550075400733401666719504609997247264700488276756847837837041500359939032738873206621789688595654603005923312029238281617442081359001718306884787722150142907684760328653274869955580025919339722396585064228264453966008999452942957675153100380270063969021398535636985505588852766354549480094031117064535512650780469637214778959066674807930788870802028417564687236843212593650217126786630297150664120632458426654190307345440886673921147729154826850598236011862671832465163188710872318991824420934496150315414340725181152580659415440580134079068720364021130383121655876735364289114236897920437519337811636188672150952317051005068946481897250621645434178184078839952917617171871044859345965625474976095275234500688848598718632824761063710538890800095542777545967861122562745858636278352634486716863452581913097718537373713496965855695225996611618213769965251834548475677829192674205086223151502371005336183386665668400826285675426281283814272139749479417721384423945879004463768104359625325548511672205892271083802092918648771631637396538456873321499433115443345307595796650572032770622982456974496933240169583729550106779600989439218825564068636566486114633291523504909120638589519705714716761004776660723211437977367940865596837071943976003277157259842182495974618281816125128638172309507419997068293877866097322218670071838988638929631953622643256514101490207398692884657575036920125296234393480065967053912056884844438062997163148065772305957533343143521231064768314545755942649113928044849162048858621421174769945005541695806855631993194953856088530739211148176610172918873892843405753608616391625234433417986737052349756624465858013834160298895632813289186688816135083477166810959744545378071468083041113751018034544412793734601583977241906321363378572613558717753757534756879086409829814045084334660148446625684692541114437518577331149939861671523484221262503953693974580596456391724088399097901550411388391908870469627059058465170471760048981583282715211370316293242080090453821383609639736471391934443811130112709806528141163271228235764614397319240671825846307675139581174291438607891562547133822890610881529669009655615634515516930416937555074463530030208951903204151471823071307095585534408719670009712519139936304990710521217460382522530944477034827168922946301703634997974453248553205414182761048456599496837792756419423030956402653157863276911876923339557870456922316058966079337947174270572407937176879496936245490898659446158200797719959998665168347485550823825324665705421718108891725770042075529037215039972183085253314307287773618537904224430883557500589289211363550985302593630272720329139795856058247524691952127798538462435704046176680976512468490124342333304102927511279437226029169586300760713103584619360892729508684552913710819882788272475729334282027010889841706970395792680458063666664922741838830022279405056091150140054748718205961859368377765236475918971551631603952710911351431087788461813600479966571175191373099794778042379141691492551929265520003745077149632146949804575955456916727853529900381018956910905857564198649640588433279552403260835614490091171518598773936224866289331616559466202189304224642760454236693903019074396156991144204360346465400464357089307772763317825160641554023782573808029951586373996368161258873250458751947260925177544517968112656864002958443323851654585460312922336104442352615161786928923173178551694582227496258414061649548002024045211444075943345529170960349435292869216301621532814352809896665719892003530764122589620675778026557630808549262614434292416328871264831624062841947748283587237296260766325325893816749715684797249751753012019274420948245354825060276015025859882382598114935717769813983592901984607793608452460392248880780049083414955382874199314140915357635960399620719199449150481588060658731544669527683349589717261641737794837805287142944318800227335036814266426999691377075158488553225259183501202351893592609845793580952553910753739478173262680357447786876709381941600733949363641194405486187446551639315323082085728885703844519044722581921688135736596908989739723879514606768310655786479423298962559499382526357121549696887450744097713883889629330778760568329834520472436556825757677382251443946688934773902231951348388419917475457014901432026959525232062101162476183398639990811749564030620158844528989264246095560612533399474797758307727147961671423303443406717100392070526679848330850460610204582876916647050030279572148753614229029675639352856765589327166548596138744637798893247900615290818199105357921700205690927220166871741396650685179843240453691950967486672323673649892540288292279419355051203180119502650927028467637407336912898826802773198423065541983777481456505626750273543170967946501577172942294058066476900171137994497572111062221899764000730141755182327910916598459421151986781873306422441008932703743137015480184836550289703150526264857663628489785375627166140890448215409816781300752468120595096565796994433057563430375546810082626860091067667508863826281144069965438931136972730861742010485607690392441632970296834485229572353212253403554914469157618503279866795999779205180566774786108944524310074616343793477817732639448033920422738026099134382410071871871023767167042516770577844187565878621604458324732251305486783375752592408941073622345372212792391688154935007582773638228019407390482635416156154824971348651707451036925297525283152448511381417197399634642447569004944339689476844134314874257167308818435577074738630580405675398818205448168056096857497055512597554731311755438536509843668557405274995844709131321957592880464461767031909872535356477464567070439836243160419792903410802011733999089144852957513906458630477760818463536488391796916613586300423886097368200062406387803547586645043761254490951947957462227245282234861064431276442641351211415620900261670171185850528855824201178371407673594517301973888401818708333799178854399229985564211580576017894243598468827779544898464011036360855286732249684605025714517553111265207536629355745472276622689344805045612755254916552621761903632999168021458201779391667451393860970472337344357573735521323915558485290509802842036519970454400346479535338500738760562123876488136607015279400393531315182016163513775786519139503308206223651253541856666965085249936071022547841848040144037194911948620792465897452579724526771335238770705088544316459635626787250589597633484358923275272787941669699986759203226369715096964932118662715120597986341056055816095027458295259064836222617083064447627535218677546564714282092658109824443051830703281695964300640304919133482652984464722136786958346538971648059576743571120941139635272605679621301398680825885331011730761031934824491811234562145993343583744578890424087191597437855321327120891242838236617604200438616570099149852336177390082654564078619156809820232246281121276370534318502681404267895656597755910011408850256197080754237078441802678732317904208643254523784514069898488466267472463505277505794936514155851844625620940868195073722969524831864491116764774985727984858279709291816977421731482608280413849015180067081934349888774406526282247396055207880268838181953003234632202182741186511402525896096892777706172042999949869727542928750502967255681231278998518498103305066855388163413647048199620967072585451712071067448893803736671445126253169124968626595276545816356305713531476402038093011774091523022999612872046061014258034858795413816185988368642874193671205875719258891427647551376461347320426620553353622447819079973645335836512413269244284604563014099565030257632120598328999278886976808072817485896942650772534124458540166851539056757596750193163645267399897483261409553869026208995431421860637111549282670876504473063003034440740402699596610830511545811173709688739809785971274151412692111134498442687106835215394904358384071306772774759046813979828559811103365928796974743553164464544541299020471304131692268232238340736170578468079913233365034972262932809610172564638230794894694834187875253751570149662394800481635756978054296469352304014576348470736912393003391324232595728739905970631649907056796436070949369637165287555891471383914554181635051692704755349874689631788636977657952777969108068532375457011689833475053112140068366736847291735171014910682226763868907590025383640424382432267096760589132057239975613834528907038401115544969044400172358251427056885290013995225821414127576782559853632288202559606775228626651915088692531308513041054026862321882400457099968527557156521158798154577989348430132007884813400695438894013350075524123038364289267692886693927884316461404699048930245845660709369226185186630717791481257559112533058040785529765053535657642656044050167155039738599970929588705571000637990743344876710906425885110985200464280315899996306117617555908101076421089622816861360565572447136944125999373926668718524859579050110249076041080519155083354927584015774229888432900627799177842889792923004617174245854744427839890458807759903675480712099058749991385901594621829522764946545604392573875567897332964905494948304498039197059473216741260964211465990922261264811908497805096237729953949735087507084778913943004475612356895513434155472395572577362715518998262110816176346814342457162784522461932110575408511577403124332923089284768859690184166647081107546765682876213648123139059248296299083732232072056229246374258884085951744892672716149520051335096367935080877721561006150206783527353334446044478486725358535920430600719030246408761748943104333154424133929017250937640164267739007660417712208665031912436725980656948670645077038783725937573329619601022663353309599905620014948338045985943364704490974122448064594254472166429762384679004540611447789974054743534006861193932476136528099058848184765312155489019320830860867833444099078995910028497594364696652735376106635007951895572736128557154235487741818105365507750735424897067730835626017011326752511884601843502136389035706901243412535274274324122053798156139309952210984164138650352826906376246553985315931491077031830065842882276704513224694959598445047963298287867912010481906038524888899880370540438669882073916839696310475050922931251663709593937641769693405292000708195025280933681571538020185280953020712464112402580398427435356177741340020166891614895892187747352054921681716358455779104095114525284395258366761611555947218704239825378500578143265396262753215180540783161437007094205748602422955269260853003223821982252749157202915720096134688689124077624334951569085886872273140418876486644754707479008269248176351986150489774046446023885936821334467372499369158984042722910419673162278338335720611796785263811481190163170635401205063653270742085784942767758256879962844665507003698246424176152867676925778742655687278721756183987655710517600362773490173691766467682063445338153491727477610788151660539923271984655936476503872812564439560992418854848155762781150043332023801201960777754437842042290823411590887047656856000440160695069729768389396153638194989088790729790203575802637803530473085901626954538925561836588134177174572334729830482025819300901352493719159243001120172051796726046956542628525668190272711953639296465722993230833100794523491090804861351593980513669311262406533566458463366576005407724049873188501577647374864678745455089900685055595120909072344931749631989021842974166825482533410243366655359558540090478708475594849438810234868223430337882523307160092499493114002745822626688794451206913879630321380307660290862151005964615574659215996106642117405104141588592209659695905672078546524706071296219490700087899096311712778098383327018085362192242235442600071529268374340134489532172520290799396052349723620134642290000187298553017543560776627360603453325399528477399967158660684671485693070764169735993278693453326698312624876350655789945600966051897022171859778025281173100541507477484250561939203544882019350976467750029894332757124594791401317885649162261658208031019620760592649892555358353692834686689883235342353549163345109475922334802986159601986661362239988980269965305095561494009136620057092471026176756391546889820731476268062039235309263970620917167042134646731015666889758472422392485338252069347466103597434014468997304859865756762360980552162552207661449190346215454728191088820364651729885349907835683257881775435099312987469626998023171631156955665230407402404326980512844194740572757197262363939017409173816750219717409041031833769938894541502394812156862873676337693071809635936721790488928196751790742609760258452068582902708125329506959652973856699840230293914654088516279518267449843031971518809122362170055672074404600739294177201710308632143212463212850727642982308280915001400082563246603289860435047591216653271140050733065962885636014670892409910661639478716246729241347551943058454557497131423282742913598167476061809476177849162318525430932948186079982627529161815249365652832195814171306224185410454588198436497471762681518551225341808795925176894125836520911312647763212419715737538905391429993601084378590759284499589379901943138568383017361291835356476173513461947857081018877391939011366160267568814057142563569050649067448826245272934934906801683281356878129494621443406496146968644618989304566154358728943559285977576642769463418243011516731222008317598106133477664557517623685608919654695327747722946993236055336862990454332065329859358444537873057011107882173561902438227503546927928835240000586363352447592224930661377637660822976559000132902346440037765754937542446956661827350864886763629478589309543855884645996135247509528274732499882097383439191012617296687300903535498092298731448325445980818134875799104571718821803106011710783231622200800844462951978433226727785545171760593533552973172746905033252614794689081980779883382386381642742266826744813592914418958212693778024235111044125986473906922943918926257433889984634571028454664533543273037458046037164451417910177003915141448656283279108482916346964185900449756763143526567234124450278017059830010861369212594310771392492665156370177907122214524724664977021237901878910343696716205802464120407581107902580744856652395468830649592860392168346591112521440109675019890606268770485181918566696517058165756160453330673858647299746038502673677150099738294040450545462474906943909575901865170644558861582680350666429140963350670590177242431882822602198647242055940006480811395922538058044217949125952379090128925737382350707173964316733340455237990527916623944948993428689492146914812702778581552853933730101812305522337366631884810417890677215203460121860168763249090103233900180810240422053972971926643618697654323922169051055294505458332655480538563177640970578465867066467571318187482515335566932938763866604542709517283073903874429795371737783666423452587903630347742924836606528535879029136279243758237484015765919295386386593052601308220318338571247145262874932843470244818280566901150917271684409231823723500652937220697501956648169361038812945157656107319436120404766297144693508595726048037607599536615957544131321039830300828378199966858566485263389545338900128418037579902748614773581736992523972012161143393796161467652732508822625126639929862915721787745811522264852248600385383236738529973219691951226950362265176628394113411581606780743507472207433596363187754406323522706880819774837680699197347317913576764404282468875177547595049193989996351278132266731223084504331706524580548509275585523311212229052740715315851221246161046486561912386247558834470675951849464148034834539604236926255752913082173912167353949832446164660457267516850827812521840459367931333711943454344396285181285651259145688406647597749682172130475534717826671093349376368370400699334751476125907902801649374397244045323209337329224901028827245722150898637406412514081188416962686845828299935962984096955505230194690289150431925706163028097922631490228628026157350407905136697501805590476953616126533520509258585582097254075151517624495476078893910846363128165317226635921167027773752436279811509294002187042852023216285041756338608543745642176678784178361221675337988056253382160854788505710637697737056377812609812034668923852335713106636141533865003985462210781467788790992981312455083941513392938679478698880761670271368007849314309228173934517057635795938148515206905109497577603478456006638298657096895287219030856002516440543292851234872766453868541125772169990848108604510241430858893096081570982754504260281688685517550797868489630681075576643460074743256896408667989833673543815385767094909561016753080151198571352410412669530529992827317761471277770456994854732010394267434404882712050297438196931466652354019606767981698881761289195825832379597627379250107134905956330738248072015365840313164608719599955077244918207480422271353986285877890773886487459633245513388297759859271158663454963435625881067775634516853195637276948901751988335408674486001385627403957468550410878347075093786086968871019131931658745674375262515615309609993008540716342441206355625068914165059194823486618087230671759590429790936971884455883027859618940341792043582775951605225203729561099381145612801095068014231860064212392527908918887505318127509103097541016255979061322424096390439132862318983526681569445597347643860138853681576423878637364524125262284873629630914487496486501514764981307311278063687395532388749567967613324885958039341559516053662551450910951783413663026615442173294908282857103644448367551865375394866340469890567196722130973805799953643660584495148387528044683537214097380398435207983834751988625767408467087003107466701709121409819241725789262666456738434152993555346917653303978570899251247551688924970521338348261075752373871917896154464243236685817872251528388431034445723612148500559279882519873787950524363887758793634551203783715321197183439404563804345044802243834772522051093524473339257760302991817362906231350276399131980190751580482159312376034564482376596374633283897119772630281521059659340216061630436967817085399767139955537430021896853149453247366976951610560585439208756750877727015124221831489320948702238174226014244291548857704749492035172728662893803558656420354952080340338562843602660219429477259084239650432341714165182101057629747497491113201479279357634599260875346235069502722578992079614500179046669760158305566302325013812460393799375638064418053374633706984541763018055268769384420919798795571951309373603490225320051782123142184382653238319332497722390946541847790155500167917870659439512961855469986640303611674748576571289149771656808499001858129192317037045205360149421599502411650519257276930262168730498441084075597232140323464539113166522474535281248524959574511802236442315525568198292713452115931414293708140706370534646956501745658590995032849074541052710265417902232830718249626617939596931841550755137460629594545259223104082992484170457655311290432084965577071021043053079317793940513386695374280633556162004585992752707558382939504251026130592108536243100835383328017968670341006228146296045601460465968708922494039243163045148599705983254403068209026673209180692913533581350420162525284446759243315550532470213238178176899488641834683756892990703395750796398332530281767108196986841429751984314953776324887293984625661819891361631217971501645245186070435064364494331135945238442115048628294896332476965894230831602713557923884335066556623557535674882763346972415935853863727716544995149235660573582646928993191455840014203375971731771164195804014405887029487458379964328739201640250313205448680692316746766068248473206007455373807701851851384683289853806745381965997574014229291195349591613746649793169251609117293450069368756716306817162485595579899446637857551929878445022906660835150780600843475396714020462700359888611645382866265932089449041291752048765290764080924309230639428472400605939058727168894418900695432788400640976923690123545175272058913488630934957464124202418901417105606120006065487733717918583052596619722601713446136356362934162733616262048172102441794650471616880672943173596238078815088271760063826829914618162889621831181864648183051278700034801054221682288838414590017625955543586737733083396600274391315748489857226289375381714212278383345378591681351605709257773906773281152523155670638349684308366615123720422397581129822724166988696985178075844098141588260039203178147999796913520084194486539526529118360686531219758273402602135090420219237328118846058541501814502063652788474192252403853492460984422255804454635020278596823618517336025258903314880944073885107907812757643090485914812626515059078228502549424376018319490832707874113089643507200657637224580831049262501083006509511374261344639340210108934193355949358264405595964013337374414045851397950524944703894345885117002467113058410388226047483540233249569691668473711269343341663125636438083949948213116093177183507512258952776054328562578603289852817376815097513311809884461177584297601206585180432015000289154911051934408432539744108289293157170951708362605970296170435828218447958080456507003996534848216048141769607022464361765661252890891832918088037130794128548182610483490965301372622596483893634303741360048941103883461085016064531675551599820317113198344374726349338502092585180843543708972736714410922055076782462208405286529472289493605375876543999099534685176036568933148253454580881291216317666630094452712436968670878816188492966363386735383015307678146334091160863033476719053988033668449752851900454951620543328491788712202695200399661134018914742503989466919840426244498038785823068519338391805105502593075614173450241031734503110379398019060489688902618669738914037144586759262135440804947848850262453811995894131449013852416725822616313450576600624400900909780926226508461630605669971730727105228126091934587155955137837211792350300411684425592899903310779672409977025962932368779690091517053723457250233768252710209703696322508630760436714859668786247914507935029005500541708491755675964821548900609631035367055190937953452153357802823727642689471662069712883973328208201392455821086061853273147805355810291525154238076732065990804681357562291721885461762802331075831560070613777839243439905675191911836461845093112836434309329140757633076862306299605344597331245899214126774363226990822255342975720140541406746428917548552713810829490199735671102267578470702798127817878589077658912289959490992668348193197584517662294339679344931145782007493275536720024425546644174625293876903055901002915597607433263505197938139146779166628057053462194643755206251761999165143871800838006618453472182342420142768714558283447364834810923013305805616236995732518204801508802399921410199912820175993128967304814845253978428667144015524557317342217888735779902573128921562024497171978833975258257228805513919659923925913140648281369929323495709165948066289706297498525049388025910243839813387409739389092861452490151444798696757354365975052588244566846337851988415821118406204921147852759940864866429309955900121207992715644259142650104974988145911063823862746027889663809133342927065175445162645868614941262642510574671156899700934395050357247829303094813134894456422533614033353295943253406632914189967087632757847926339437548053458330968333684279965251545615502237638389539477566581547600693292276099503290663059319583609433478961837695839342364110468109942738473186704232612939140452511559883060270252320587135047085374826634944209854933586940175800469176924300896488584480130799723004064478599481114379223542745374275757095048224590264363922801203485551314185605558711236784599925936784320569562507875129144536160274755834250003874481218616549549530172963613042306085327454888409513769562016213210814829289830661740350800497733858575383325122116800983690513312797091234702843569634458057252341543901123109970547009479598044522034393954383758134727290696658232959620909765842781007400919397629435545320706420677007900504019861895022687168161491941747088574704634644294159613167915103301113809614425740579504156895151139756665182992896672450748532425933667403697269805784322988850094542347969727512222880866692630933985274234889109255736527443389690590654337945992853720000978809514548090690268413878710102613872649378601757819405433721500112673279213480755284135796850861033290502241998175479565311416664685934606789191624405805097609109393174054386145617512046374804927259527438090054178414399236038086525826181038797407405161193165901375854369067093863605294149463592824060169598699957166704660950733274033568839055497991535140068310115671945963797770990588154722677668669935691357720047092031858956192423721864203491224492836725494567657805043463378787903832414180300641195840592362333645946216363675402557120831435760767863526485479817172568859130901708369064977090051773681110850175086609230752579021973693370364308992731176699426830323377829719083870476283877258712829089133768796637957643404040414110615465625810094391049180520282270336888938748026320314685103799407166539006572317296655599200074388376222822648689185401300522562908495423996461969249280781901335375311874820689171767900966116103119399242079950731275846901799442019947453145381579805209729684875729545735111340475253900662126131159564963469289644147292506804852581520120628270256924386663758348053508717375665239925885520445520306774672026016803236674697650616514866519093804105785828219566652030151218759694904524402621065271793867314509455088979846854703384391077968443133269798278554761968977562407552284308082099551613816601912503657783639520145790247575161860911559083219621827042160189736852814654137865155664976252424794177246082379070126227694744988004286186689513903801678383507503652971387284336534465402936729050504517863908406349008025229847350614194503889560469022509608672692880626947816217768156352840973551251969698787564635226473153883268742185066730990258147430280994210727866975231553378387630853764449464118868382278589105778153170402564570962147144880509269281264620288775160517340634054885659139644513882232004817003905864545667387333500594534383268978493616914301512873766701235845540656987014571501425233205842837973293492397575315039107778587532410858297383632552466771458387375054780670978204032832474310855042112369649947950081996974918835573490631102169251496928112275198965292341964914280448555163459043963320282720525146149780892712511859809529843748151201947321420609816248684838038465533433637023078936330663157232528238631488844363757120591453730113124253795262947878931864010331079284321513316707510389295751543651411869970121240386760042268773095352335078411876717451737505259630834109381700575023082393565513485942780378033651354861742953021432487205049042547511247705108497237408323109384342144852810696543641109301314247988083708814680293495726558447666784528061053310534675801770151321933241070340947793659836459121084083078882734934634826602538533794861330739235083469094828751950925859379516948132890213048682167655667561349164044219606509709597380330172268327203510170198468587180124696357224286879614953876942009851346481062219965743231633792913472635414426040971359858466765850096956942976271883907486351811952929087959303555182569084868330072150600716730939562329881005740768817855493827497838285725688909066558741154949809034532570291214712924433401829589645381971231161597562178520392797637004552033561026088330631236495286619427608806116157642693096741661636658494284449300186011912029076592558314135675315844340785239691574002043508733370521010358613325734770049155123093825523367319519470603263922611524815597800968928781441186186570790484230236959870967663001057459178529891549601038793319117048867390325284404141834448429928634917689494392335205980627805410844393027924917357705742391101295497459386282317877616925162585909912744512918474530609161078151634303775833790675999775701294295619872659788658697710961234379073550828966551554388355221675338293469993831387001084605901062845899931149640915400154331229371639851691874776702903533256326845272732901979524141765982145241792401532094125403339792677708014288758397470387191598545748670440174360077598135253183370380977168742121961838868778895808886279438197024239738346510628334920917155738727351146162395265110882840338302455173752620992126751661157928245917196299840483294677636506051420956818247969195912752182590926521192395677794303871629789554357227327392730492710589220117931771492266126527358161716209653538700863062973826045803094424113469345994662108449066118431854738542801727881290595675106318194408502367320324275408927417230863739673297636045981675294154757715905952898901650689338267451935887682686933176339180031857355596912523096307200822793839248512228526843218294869272985430344428774649489539995329396103081783395413249929358964723164066636474850861214010789573805464148478050542431719761742942641493809750676128966929545626686868974957530708159756751036489425052225999746496149650230105370519365083318860417132514124509809212011024817812572954394029119279331959517284293943149587485641442740290098892876562139679919499934119012295490121586837866228268604026663125597040264013097216973677262092874820821866603509563975614985243604448737852802415227650808894658338857950983220957894321122949499775865406641257288399122633338008096465391815409874588380658812245638237783343110753997751310473471154034071923041786149628589737612861099716098304106885393406049907928471042851289359506337848031881979356332862731190313430163561764084301219649572853859432143919957524032638106369417382160553183460946193606666277267298570587783156370450699327069853848118582409164559077657515739727687204726816462505464692183909082248175115528949942760138325410155744121332724405854494636463908409760188899722598955646077407529597909755316131014067460233947156055882628059047661988303201649383871805612441174074489544188249567601821992276183084635697657254959329423703550218727057852541935571373247612408512157834082498442975872360652052405537494073212674318058746623414036013820654186477299179285752329692596461696458718948070915428951980540757772113685202612074415953024685040921248995613067507280084807293642916112108447923816379730338535177091356606997066110051014751921671316188561668920721852109797424702288663831014826479403776539695645504680916877926345475394968481836223767806625456222040569848512450685054134809017240593791505894740450975950285555037601343751920146710554817297428850362587541246960710738181217787503404809494311983383618656966453190000194226523793860775981643383695844409367848381770274667684465403334729861663794702886081669735966033568491465882142862434756571755143658025224338854871287123866266359221823700532045821802865293339601358007325058192166936856332545170220611165214019930275488662142156401273186665850234827293228392288684641591429517998668570670898339070690313983089233114829429518900864941763001565714423438297572057565312698911645333120278005986021933832577520221925251944583113792079882224361216562669343996357145201558971470711606829629769928395398875774457087379774261980233901396682580633331464419145996420263676076888950925447892604630507829713417174153388425382866972125087155164259655608078278323650804856885057431291344314616723054254482595444116638352745242341689596260191080990691040000410615531115816508377290866242539461255726559978268107262061322485490820387508159043793074496498945693473323878589892549454897277035499458931656054884101214274678920184535699744459142232962530888655707491505538889168005572686379965217872762653764441884670832050019141081528841104804039071163981784558863048117343486673491491975797944490789531338958106536771146647262748995232106081961447183380627780349712452389856843411838359763854752478368288152170934336126480938094551955429770881722439981484261898586737194128479357311479047723613143497801824059328238869136557448959522207877253870310860299546746851789124542424753110410569312130716437210876503123568871809620704210050120808637658954161562450840248848267068005523749592754980423861700457127550799603646537494714357097479918300146153447931747750570278910233355885830396250829932398207890334393704499765787879008857222854582416053398809000384552680917843787182795391683389660038849989505406341745522326910422864855762561916552956035647472203433388637101227898950089381102476266299809195809563451427931881143596835851174654729038756433256413831564076953113394657185517084814690733652445691580275615944939712603241888393549611330240185527515297165708866244583721578459769650548930288697640051442971828919909730083856519737676752888211222489201829825912325194164651078112420703451349906794322644808772753817953576722356123048359615793400631972270412582399235507664630666759704429931620701523149632320277480458825837236841328980040928999452901339534190231593780216705776674821618568047339942626391287990221010881810023766192064885213766980925249376022892193165267182090542111869376344819108619350433408136143748264615033769716766532816612291116310968646486202459105945298713882523034132491395743648068860927822019892122965789252742410440384246891651981403875345089368433535909481216319031563035667179846459733838027424778846771969839663226432761140395485232426351628835847787273024796047563493642947726686719796656319874039035005850093857166926243642316415977105859310259885404531915611345860485931348216707615774352689564577251007331283961202815729165090752961270517516396767817198666727055973037304692073650045033182921167619939030936467653468521487947684176484744608400508620359974664102951413796621003148795309266017328472371168551220153167395800079509983600536709718584897451409646999366040291415160400331897536263205264715156326134500825531780214863986433892725772569793121698780108920603337125088909127625989208801889924394947409465692704523345943448729916930091549443036987633684324711679199139186817655358804256877044333406028075045480104639172481472755761919356031698461352658567771513006705813885977567496928681996017898157021920199498151227212790043471835798016126963793730418237407876330118860795362604419915582318467575305406164762582235833481357195544697366950917236717406246354623464340957675717617899561682542224821343259781249492408078659512759142840376240320980472739065398784326998240370329616166817639228962119641823035910603421383831985710484866914226266353620708108934200769891529176715802945909711479606186736918114467258160951714869692289048204406826516910948573607035354817490664517544874796434901768175536405079214920698718913278604059459228792189966356260246290303078739509521007936457744168642655970693099388764284739185792707908377418029702220015222178844399906614782549511906558247901268220670109850056304472159512611562245959394680383240014928093763982740883959202471394861901982941788205360078765056847624053603040985443781473973485013636204535253015280680139492720526350205611495141587989071880396067550091326125220413573324473140856371200145172500613738515368608065158849589306083089789940056667024335852628869319342639724108331564429494306993284334981417221561949377696550704904390452152209808044463102294887049546333109241752177790335492907708349346064854454363526221785025046352273739455398647925604649010045210710117043384528410561682046609034297097121768460591181679676101607878490449328222054861486409399029325376685278024694129094364525331979801932977450440299477767705175615224280325551023977228285123676818698896319101240670845729877763983949019647009166528218934455004471298513033414925017095678551424120408959592330357694660559174707538380440452293438077249085878235568519585046786514703660780447606977668282699235805336000931074996111997721425724548380193482982217937929879945138271579798789652915811113617352725191228646000310075823307249962024729319925763724721118274621850916668647427299068024932540948244275975681267434318692489441942036087244949668760075800012025205532239991647659867347607776595650324756398181426069044592281129155545711290289704306392881416477733666248439651660833879554810731547956160806367300818840433642308804329779102450362965467938487210149260893186050724930599277428045464337319064928537665851695818064634569136835699970089898118833751235603640555569932164109376831408669852657574304176413821110432867325985155122034328320460653442259631235485835795659346754229384773594851441187337727514931372391747241364455287641736994573746334421405078777499640001770220992751609184542276838417865905697045373269081058255574645525415069088777065408656297849749370030549616906835163177643902450106810922449982136260431989648771186598498065374432370105849730607712464053251881224914262415239744698923596651162865684632466662988742015418603800380967141488174010218551181979806457449659468025248194064654532076345937208679150513275056676658538541091441681733170092961937490811136842462771855038416527276427094384567867443134980864430445422742764642557915827840983681309192299668538645096185371009041480791080446464325726027567022754443225098427508559430820240002004327724440663656295879612424037599673742078834177939389615383837295054939064325939666935041715315882841581421174277155143562466448780205967846223767195094128841435745584873840317505840791171205258335760948178724734709333395206177472375031417039673648755138873976736948672364457174024142000553732851263360566530990323420335950857495846460239772594476261121273183034924706331890584129560999418115246544063002834540503056326113956156346526729692261142237776889220859999421872769262835072652303363729279058850992462523717246232898306182387632058067345740155439381105686054201063325663128452993977778538742546626135668595123848992136217776835142234246053993944843873513267717381674204721317817246622392440327107173287008602996319543429861151035998414713612046329847784085523899814369083640243570039479345178279145152872404691685419688845055532869605642739665398636752381844701374842321146803568261872298098702965734452670475636601115357447968109391971782535146927647556591396246830779582194862457243168196424371761070565195096924233696547682561988091617869763665651343630194597242579818930638158209080556860072932597624362909848598868675573902327320954251791991588361516081576430335075839900782340774285959757169914494857558436207462068609092784933009874386726788140936980831245735324321534039329981856389864083349490503982761469294566372165347919168619460675839427470503860980331931047935244360450334639375480261404161233733808682411750641995053167780123652627722749666362710781629583687854610661077222373289132123075608626943929019900608440440744474955872549265686814366852927267845194485593252276845869203264542026379662566781461664399433905377019106223364967613439884204112314708060558017094609872833863301213336608908321824775557644427894894774248979822054271962289867498656460364810579977721832583386749812298492945139188570475113734377741082124093073051554471627226394662142373492560630489557654021456101429351320493582704817336696671536532744719689635158991100771268443703074906485381974051491874946751198441043818176276551194734344378962409686062906793926529244726893094583810054119441971963378604209213362478834102915484540010807056700828905589220602849666327211988611335725230546071202029010098218025378797874825862496149575647742971526463610922757092809541983922054630437536241253503217859293210029809584892584486616323107445824512163983286527350408326351404908320574071944579609607318011106812554233313395753626715131000195181972223962846798720621077560862791917203451352787472065282124796179829914367004151279388151332792761016982389900056064934764527640564374425793808823808087890592299723258448415731794661130560393047095422698537511865472103904146257914315002563580177899003181449136396735755060334223573569726882178726481446431129614683321154975449330639878680114450296578997536515701352300930151942538692898794639120035859195311753443322218534956128511154219367415791802016208591829160368770260061876791813097908802413298891541317212156398954817649927346624958100120229940595216665123661401059683527408248986350981947667706213954504479370066112620139483386123717790766341788628829144338291326005196943994404967050121525658850184317184884237509081251732798615058692452041055966983153779213487910301180130559051607821993632026255336272839821269218401091654791927471839569426524371656219901904154012087736405304321935925966203356106650187281229232081306560654103185087789306737462734003813415458428370729313917720042873530260262392882828806971139081619077199771536382658843047983018672519663138665202669565864304399709655815482515418594621087945775503962270061545998435712467446549039761334569565414152269058390788871930291971698802004111246571087371742924766164412560371590458878609810853864624286251742324595352778869878464610350791464216371898584213101988016921461979662653069549915619073486888931303926426136099998607788394069008110232210149379336729794891653582212469992772744693829471203321513492628680575166659191219552149544023267301870435070461976829500126032146067451093127862060566716348228565393609001541609208927174260731328152786543461613877979917791516455495888858511987555609484942884017003506571252472356535439221537870614421256566088338097539148398388221974362816274876891414063871424249001785619300135604174599663821307016731085875993712174443315455081962468990291844958854054839620754636588140362760308071778223104385527381753904760310311222396689864353565467118287889135914982682175191312353474791062733318653659822487707608084774077790196732383981872541005036778626773679722539964519905618824765895072348096972150455728032756527651266555954697148584432910136269311284295756487910404662757304787099001510579720561150690510337821531173384862071477018380156347044660416212593308166276875743081338939217873196597321866938515185247750366952517991700612021847333022957444975064103335362101248068122042023284641613106335617784382154154150708980316179805762428613079580341518645020674824382325690090345921737958997500885316694536911543686726612059531692316964886689424036740681966889446380985269272101205256102111971080424054002895178120758016904346577006619364165058697367573644043549600750084619138638635052945678740667216915348878582576235505528163909989867387877078508203145534458927000143611172637381416523872996260756194642442494520095009368061813074799599761371536900749163553468078998651401462128873114250682975941796011508119999667731922028995194623423519199028522202512848488783947890196461181699689969488606333014486240702720733628328990008330123500278756173824302615763335048949407345159712211969540735122317939127086574192194901355755128051770600066585716379876125232586374890616734284970645242054819089201728493956735875967437409015361710850087790673228262797028285287935839896355185828267533856121226412923455591097359808389007551383410620999681793688051465948955282768913907049897671565683717465569961301557456877095191096676856626726078962926385058258923631959771091678356851637582496846990696819913220290062895894344810607688014847245399239287910272914645313913703065923055107466014340915100547664454624822896727225857322097946565775134563972186046971753553018330495867271485435026079792063215001267145014584026045980783369897562332123865127636568683154866850824160724041462255844650142917408880672238160454862250153686587933970302521789075055842536632139926069766538228712996475417664968510062630597018218588150189011070060213615342947217480460501442143326565563018731236020850710639900340687729551853215713994543526199617156653501421030499371853520408024109378904027249493810463522933079709412192943206930049750139342940615532994783293421479870928907114236986794857967289925242632673880824321839433392459043399879043900035539841765078053678779860914423589083026558095120636932128708036787472828143693727668187322535960707252517144238216264061769496052406912599050834076445837815044045633564013635237227806462358867365904110171688191488356509806287514336253616639376587479461108231844172854892956135490768401654698042179730753163618421230867242610289041912279647096534495725499049816018767166247959937545596531975554421336670750872863741402630978817747696695461652806748881107127037930533115815784551946464655809207811204193385022852606479284438217024004092915208269965035610483382187605813559482886346364461772741602482283644986343063233472043077610788597098199731363444677349418728385185436371313725720577907236768041642611869262053185698066946638390335628286427550347429288079519120531523619632957063810822016602282458015625021794236639431298162585211535530116522472937263145201080693182688003196200568581406904439439116109292958703865465654048764144261590324520597044054808800365757040603307126449455323507259405757450968597382757184428058732200775671364938585896924067851928229503025033905475724745898322001431393508471657868775128179176977080414360634124410535897742093879387449355236001313833035102923684166292698321007694504952712777589845574949180361027241688970489652286275953036265042881971253504864586342368969042293681320861400588726951393827984561427557970196446383039478514310620216600443692298115815006069901654491743909023174206815661565313403948274325022255663090568883935007186042264014618132837598331628620727541846280772071033842084833192814812615451609198982014692117770284617739692569889354935714453816409703331421321863411023177390548278995892156959787480691565311058338590810574730055562250739828189068366472614893450315071543638605575148697986761188651167995513396160742784874095748997322874825482344224909160756590100509219713379112343258103334747270179024421191123324188309206966762300434844459875306090391247396542681523784688077973069132264396486454145119361447314620509692990267841944915721220022557836111606502870702861660693687341570522853331562514764279268045503767401743791343900791353641906666101545799960608863976350651414777137173087286000211699261559143110835975140215134138516444609236772632450440116127510876594422713236694136405342147461044010313643391695137680886285643431085516180865064755634815010812401060948342111143216480045413494020360876350215232988300438689270510419456339794787871714434402266628473517884005634732504784355639332301581449262982447815994984609296852652245776348923606086111627593719509704883052366666471039553944376436318954037432879523401003197297025605589694880655316129854222442854663999086012174254308041925344838709941214700518589717013656827616453522193418908883574579759337793720211254741060845595835135200590787085103495076985846168803154677124127589833633870698796225010729736802887610490128034268399223454249189715214744521598748400843855404879723465285075744079696439377669872380413289249868484609109582587902354143320848517577617844659702539449034335877633236596273969398163042006030947587236774440811008366518015274132278378983903458937562795771105531182036758522999983701185473699365788900019307182324479086067682944322957199679341035526768279031183483469377740886064498177181590954327485573438427780953228217214834145919480351453131074815967501518232171763865636036062729356424913885235445175168157376028498060739865839551673340701184833248969267829670003280371240624599007060479689268116264169474787959599018138164554359231731824639535267400338367391387222311691180323960857652065796445286600589833308643459943682671921441776627864261840836395927369968068366332930361750607413868098273787472914453310020002798837804346830685500862147826523239324651273982023863889359894511702780325107355278206338780728412626638870782064112452867766847407084669552251996824373979149158258347868888835001591103158449700918194235733971300620579876082218347750255959887024263031697282400129387196412297615137668162333368441427107294902336157417422690479614122710382277312401390734006615514006022049912019461116379190188225160334936368202723828730524822659670364268023288510042983235855953285004411689114201825619695269475012615833054801942966179814273023207200930452981922670246492723702439388240420925213362314691505667754867271474853960794458514089132487017801173759541950495448525642187495776880726592963168424620859324835258402904508149308074710067694719726757768772741731649215191203318341649839499977400472553064455732805254086288222780440417160047230337856294598586936833331081630275188772688186115205162487863178332748462830756321695147615965106008771956912235745646509312757884649582467679184150591803434761323154662332634272128158282889553076950418711803173572750453158719799836756744300208143055816503264826096830621833231842517793224773518435365006222374579409249911561950287804153839479316295902934516282112328071140968269987347505426068264526684099626721451967922809098758847726503577277596550984398152967739216119466370300837205132046160921680908790841060825834238245409468522189291796207236258151991291510997592749351207255726134999056438918407411791105292603493056241372937605355109827031876230779331696546581721217318242638808863686031509122116014253995585357805370092859646725591847585485717862450372001726497088482558277795898128626684028571377704521468396543564000198342554931215949676475712586810079391189237194721052018980904751514957114976866922747150748955899661885387045346303438183705918066838519630647009279386668300511490939269434542112125615429364829817560568701285721347197682472189100505993344921272680398046601059615972959182091554890743963924413291487871000747280017258982548099322384111038539642519376743353033785950545074950951100196408160633216817085321391441442344094318358369818103517959282546432158701468867721504878332169015886229231093835894288572749647602535642136009425664275195482998976690940132621673928477559181150392770927466303235853308234616621581829323591801883567002880581491370973044400506733574814024166326658309967241585445157332757986138829802968984482002785768358051188217679979613036950923096182342965936688620232379676416337728457033507800766227960132163202750531395144538649655913747499768727755239430468263154771733604159651963997348171099443223993204675776265037241803461111669763070804082056154303158352012227682831986806171853699759546978547970669947798556448671442376655987249382478217095953015543478078956231696120335275450465471785869672510485646279640767335436291976309872061637765999206607895959532340003703175457963015409506981044897621388835322814254320674324164417298765159943480708986692250298081058239810762294562000519062824422464969246890997409100349275169556474362450081692452387620406643800966832953785624302022099009049998318517229570196405891057155865700104556707560751628302368360118041970661440759085298739174228668506437685783089346796467634646262337154780984123975699370139570335387424544548019420858444621287132139344894353721584887123059866038353862692598638884117283157221714618935674583713453229144090446780478399778415546826841878438899983904418111116815915918591957563350320028195142982970601344115066084287354204089120706827477357947956000255585048952168680101215007024890430727742701909890170220045427592316919370959779996593541451853001737791008448199108459108668308452474145838248964612369736159967913256991526176353826961424267632495145540462064689819041714740454014519846015681399208676274453975209666947798695547760147650428810277664181369425230657049651935498436339562351531081054550123173123123649976688309893402116575080967021430898034054633000362396370324631641095464972324540399857071049437929304013141659835123398589419363599243244808684948670454544558186795233114341177532943109558394204110716236864371937383116629515844905473864617126942339253530307500628196288020611128934337848393907282095566656440142652060743877951775566336155884786714786024198998755633917634291395558799917431259745860775145277863834594268604171390252827904621019383960034399777747862403187826594799528236339119651564715306585304097488617191308182944359269432286945595973875743118204449668926008157011487902121100863602473159876341638240708809360658731430045452368571082847123173611357470470790113517975636615235661309015898594478887315843501257006547592867657601106606325052082939502202296647934735949112260855284545201029049512386792996652309041933977104841429513221887197704144797020475485297958080914049963634694498781609536095419064163890774255022101611315130209373696199148520309472994554104954189798426064801423441334767974121880895391802755030500917938366371346057766679710750546881246589105171512606702210880511572076443737850345849264267706338043186440332121604288295354288913585455194390278416868481945157718141837169973702816558653921511024073707744338472808745190728151306039332503578448760919104819613592455312715440663309136077096670026290627471674770231210938879588142943450733740076698627241052212624149245403438040494216672069452169325870231915754681564785455591584729619355273288804449487883885001838456657294701044248225374661470549124792376308011495930931489065500041520748303239602162510671778395335019311566793492458313970414515728995837535194947909767833566318672199203986488117262545377771457139710384362176989330690749868931155767593040009315571172122507875310494144742156340466158108761451503597952847838416102282343265669977155334018829958114917453506677501266828174063843721584596375097607756961885516150166504371521158073131371109693551633831452262999546059725057585422379666855009589728632495360229039549501076278094231967990267693432246861439234974477730369144967075567302682614977489974380941082988610036188050307294185883828948301358890208942314240773861365042924082021956527012596073750242193556224710747104188214871852711615239741250244168353729867282622124587593001532507203041041980335652828154883264939596263040719704282062098823390642206996299686218940533133888985540421745551629540123496765440760376879688888784274534844831926542080265392911273162113905216697382883131262880081442140890293487362064414034276911570651866545062701475160171039884748213409337423715750503869855419509344803938535121252829410379505018914790041188925568792475984406206913005536735705528272464649487905159497258960352492455038113836826756806094052296471404159700329967051937466741678030006431609554521658142417640645864343890292271581103030658570656510998241824446564018502060606267343248782307607998536412763452403881986281976965401717792767254289532166721930088040385560442819093118986260918766508683206770072249970046408773776356754614797835179657120937850645917390786090100218577792587318664533605842808822171321391808290868710504658889686993931750740377327998119833272515805841558085493236733042362118122197562182861822266498736342563738025616190188909919826368851200750241494930175299343128200860357477067558404558495991389390230598061047392597181358219216206604778758916287074890606519225552694825959742502402821591811144340937523619292247720659708871603675306480010041367181211940423351561114020331536950738771025246576478263691041626766641954034068845546744843478164405941374868592098666762845593190289780707883221615155302670804112932125713196128441685909459783675970010094498660805622347765206741220154855525045472380642080193059477515763645326303709021145028964894625731560133544422611808203703266406404722050212934583976541214920371979533344019622009275517341062082383049521653812178200114571514207356026861031929225366508074469820097400870298284426831429411555588189756520199003872568750245456279999970999802390546698849527763107307150328210449410183605416366358438873088932974423977416639769481450568424196409896251748253641636880808890085955256799571728031595779612703068928720026264763017074929104181212354572366576572329936964622837777961442806494039893310235055134299390322625588793892544064535685527523183348799781229668513700879505746412890955503660601341752585446816441195633332760194571146942912702253138524560620847164339349821678014441746956002088277805821138031075978943942317085347849206566279353604819410624266358199202123664413332090309022234800704397176629175404079448538900881735469540358254982539145221102689342664542371315869986754027133548272303243481710559031436760187560094841121243884433988271265204616834138115964923820518677454626441510769409745986131144107829630799134107879840456908365138458128568329852194274224495970061909356643874671878857678162735435667271297783909283061521951759591169293471889464696549572854606577976170831685494675543836111555835089986903603577645536007163594123360053850022539513581084401870075889378284140579986416270683724298472967658087426100267899919230092202335286575499714187638862661876714990528219784344315888679198306395459321554435040449087086861603517700783995531455961807984399964942528941266780236830647069205122699191765969358704250107536450318836787431604274149338042212756833574175828109319691046912738010304814925498380061000318091955950439728885410775448796078246192700881505760054501970829951567075255866768928507394411851685853950070947742612228193717357408352781204990726277381049848240516641308310981603642504391863165012896141011829546039728369998592748409976015551287374466345805506952915571444711475496391904298075115207595487720742360814398880553849140062799846685081255547518313070527246672278044788393803668287113448309139229586757855654275942780932611945429134685401672792313851360790773621995820802745646747659786138645137312485674922449038797803043145849768313184026952239709888831842271706237554960696656199890486008163095536569665847239104131563591848556570498846032753072200830539059062233736386466193886067753489031307712339143436920842760864086686386067334445514532161783539421428925193840122876929134935417993862529497674266200143230447780466440283560226722930495268835859451395519545164007183089763990614639467583098686539406278286735082626115038770182669287468480826530096809885013120379234619557111162238451898279955333340342282487399211946821978561272581931538878645680884505786124443232332585937041495098696705569299927569928936572381426564117089028905164593229605660623816323151126145452622531619081129663459476039323454376186656986099295280178743307083298354800011080621142775325481936703502470590795968637956638991073609018145670977719227380993471051434551936156434680772512215166736298992316923718527647939671657739487554784693981888177245999779211455356182223840749581706475864829091278277761086166761536343224838571328961855243985079660567884282586421486094399375000007534715891886146019510578460337171544905563594005150926171072912298171720729354913077259848377962564339521331756674127949199634051042480871166428271192127078645968386809314276842719204809051563854088196139734043211429802475834269381329811505002108441288644192171330829872678428893934044738854386126893674434735818298149455145730388130282718374693462818380625967794702329883508451574013453128878741975265848093602580708757386378076580017457763472422356889492048072708464089575722137824839965816505946224405562116689762724853852269122217316382143283049669161402501335702056428938525786167769376360999060503819641757715804470215075662374263932452922487383376370155216283359206894580884266934404054747459453263812118867432700664105604010164696423041620241649380745991595202046022505437535639059219930056742946131801706239128597156659563420080279012932827072618836832793942448197931992069789969088127945301833696998536625454721512631004839121162685246722988816214285704874631979888606804301964652659061453069797354868014267591386119445139592652602313247221289108865509580402376336295556236920226450594837235772575310331634122258622419540938438728519145430526650972985834165382197992687818364565119845378975859856304823709370153293031086661412135672472532348572583109345471503136845218139467751233591472133063337933215828831394287338852531955093116946398047841534282207865771076341914766731998524529467649026640667112950919243690657402657221069585636663068615563920882135693026305821762585544713010773483429235652171847307306429837509003398793969929167299079636098752605241373725046833186931131215640061899522475872078869462970887967960175192454131769416040829411080791475313329080163094041385529267885022520622404247929866683154914758680123682480435882887427730439020394335685273198920527927910501158790071339305692341222613295418163268867890145701510447546774954949387134949110175219979615907108211029356397904777087796231391710547575919047036699901876478052016810523760853614539571924172133642969820332975779343255907592988337931649658365441787283345307469530654235976440334105150261057036626710544131643839919804446112697945415161651599054463690582055732797559036211477770236202288637405120361568783970242662930025970815418015012634211571029799732572772512144352050339559515048691975507259575481812865789931937820816452565160274075662287716983515909717292382284923587482468209841594977064342555746025041032308865319340328256724963457334221684312169737832526339832126432454443591327654903001743011021155840004473210144516669018132041282345401136448134902873632370051643874343938770588221638276539495271926798182876410473076478521310572657843416155022861841422109076487383671469685058352158694195250949129088824565548988337837234906225888146782234405165298137085259538605135572462004986316712859414798421773555065472648238922072832655699892889430528791367146350394356496321232026611195687890379980847113494351739536311338549098276487672310497646408512744961238920558949839004750987999578010672009965871108757076690673181753258310075440494727652241137308393290505109132200013068549221797236900382827025659639195712747498896685196678590624933696375550412773470973190271762617435219220636761017642921918768433380541657931066378881815600211979478912738223116968796057970182570502886271139376313463244884557930081547799727337560218289190234798206185976827336884960719844093391012711619899976468075392096841275317661378948412928494372737970682579828743607997849489464985668720145980521370510828481371593174988262415633186876465117575201395850932007760716468305577534514137809281623506271440066064909376170086540174948751272591690270469591746862384015150448217808445486284519500205335645340799010894442206761512540935386174672500880009736883521889457198573876841842122746652408014087563544227002566471890749828096324779240404287776082290384113308924676487466068890159298448480074338735221899805862771108755881043282559292081483242667241598776690954822524212186253867764044594624986637695657170448433737172775409959855930248208728020893142611368172220598109194762653949087523642853940821973658627352282318767389616615161653388717595182999289436509480211299145345387984977077029592924920510576129767355203701546819081510427918073114003067570979636975539596630822288860079707589540881567372224664241331829378953876556973176507942980130285264881478639686502264041006924064375637509628420378358373402940555704768580165996841547700637784850986361011362220003252986529443277609229706153186754843689848063591672824952472356402156979760986644771001248934533132948243940716908682607914067262621597092885154961526019459757673682806657960814250419288973290393926599842676153575752641309725403481041018918465709080883088048417792436237671280597418824081194529200933067728302900166298401571897030679956154365143560193259268857881365694816329561667257801053423710599382860963118135745370954572035025701487071486256072770488243188543168170755274919684623504333951565936885267720558542178443276210124974740814280958101389733274520414259731962911708101522402537259309294284869211047069440538726695454313024421310870820165841333543695101145444056017149246849469412314192259355518837446859002718241533329686078966025693345465797075433552004879353523915173423597692980259914553941874578527001448687772023784852007861190506336794992608799116508097470719248110639521045584104023839758916877896223973305786438969665838292114194268481820312499997863729890312829719082719288925551469880059649138874187889423403584742052750780864071568209879110743132619374793920866885336894279574427344927047295950153201833442938395596629513885534349194146789326065067071118760453722381893055018950246118317441988798968282015649077463668061069916282586618250227880637292920917077417777182211568915444153084217812853621435289200489753977359073498067588085039779449345293110532648475817381406272065799319071689147177734605743952487339420490469846490678924220873495165073615951291000092172692449434610384217775339473821382445349660235636284132780594872521161626670056583133816741197604049423543429471199323337083229055827826141418003147877692003030873715611863233957983021405211270304065686029092015778033668019223131414393320273979227669400277388990741580561658195098060858076122332478460651305032537973938008603597022226900687760532629631993895935731321110746750591843143269784272546772568095239228222742079316411133406641840263524020413276721071049813087502247901096011596255183728724235889452134576180794300854208362956792117161114739224586232368133316405552904808943157712284348004657899603579485570765626921182289153502278580684204090165573527852193215407319599822703530518989319663302530447621018429846438827416807491292775458510036997234459538812175658091885048697613335819851615544268671323522296980304350422460903131417368494001529322995892103564298003923400510795839053810075403106230279888079330992074124221112164582667315813669820707369092749185297683959375547204720087079585083596981338099841595233674330994491819510922337752920249564209511175420055611631729255461695474166332217716566968609231332591944023440590486163478404273116282052550953934658039631517859057845022844632808809537821150164421512453586961866563513496105047305104267492954485013248824622007731795970717501300254214213559210057707206227629971360834406533703552814495313557303467204857410197848968949663524931459618891169796941547920753506762753416599349209661616021123470488035897677860622565944440651414838495429555410749667419837363152472696668869928798955277274332425491345645501619958636725527197350056141211991884088913080832548044736711876895578185692408563018461733479644742138176032226768277321558791947923189010006091087873942127533210855188952635807306892002927735241761783327034811580583787274478833975529264641357423299211639411540665747435579597776956009148597662506699467494169274334565271054673740316543578758677409524640316333882430909520108129127561414601504083083770906814560564120713697641313851074330101771202723572904539407342708985028634570261926769304073317891954686410925960424988126278147549598276984373716982803850167394792708141511492189925219503625161502518187266195726279560661550801853611818674371740326098206999192943833870703869311397611484555396630392346923867592925961120161637902750974243245114083342411507717403803431044256293199021077526620286856245237553252648152758449394368795277911795613935571316547642960890371370233102896234289883895181411636766651128167909745821732787383846287731495008811877271498544473352186382464800049820673713082495108626600579987879822290635403332878965230030705154216567130983686684769718098513608655526611481945406153303573346604836932729117200842021643436173830183100225321536260094540422838453399398131076044454135432829937029803881189680671788543292491061825369393974333295761134420132088298070673636472878768667557954676285511804999553664252444422395333137505533107387814802404265505134013708224347420204016746266240862480523026714012397382911313569587171788354298252409440681844676317169922785294561568991060828791447753119142588085251448430366810689960472818154059225099106878737498957123186907449689987629074661211648934783767728877954267383303992216611697884151124434586984164167142080916208059041066865161365988190909627245623590853208418985222729804940577071734896079856410250819551261857267211796774537128967224520289428731106164383777496434627690646563325810904579092552345927317659793453807057979095788116150579547175714933887459634032782157728902822948910737699275829111716948761005273806329965547103387785271595988152482146538519713401837452262721761179685110720189186160776548511818519342054569398387858130220934143546656528853075304848691823496106322657535408603909156746829413360899614536339992901828449900973094438961948074718743357938736106184935600378135404333733827573994486605362302907434950303619375995572775519319468958525224045525148330719274348246864792243858570152278587312135865667000929700886372022608817112601952196742954906786136322578686498063933035438579912818608216732375048639942677398370873002236076309323399679423762233599365043123288134810192730781709376706056428357447440453963291099038336084448926738911587718559474854253547700729711503599763622106573483312069659165538383351639496278889762484635464227249840940593233169060519549303719580593377329607006329011742736530546681362316804412623808828259936620199884648271695746828686182468046075382475658154219738498731052775676810196644188547320041835563941000671311736013233668054639022726412227671332887957733054027000055097012047999994147192775444365490315039656793696672488023292233126732540783459991761536197177422251662408395163981801393644863605580291161693978881412824504148283378288203879799534189708922550586211055695299087837966877010670027825828216010850244405956217432136447566053455162878303399376549902661166672973906784262822791266812561751847314090601776798357376414848738252900285215420517098796942132682275770404118005464054776728371237603496057600311675164418730416690242279557647354735769052810921798524435515471468012861468309158256920920221666590835776363529568679199534461991274551579964728563420835470743383088676976486660140457538406188743270828637288236755585356127911980510571315892213525602904792056724555125979868978096190083298338837370182382389969210506590022280882229374357692559146938562919294798359534570526497277382540328956886451586591650612173392712156540094458465315051944804042469932591981568265457971916876843783950029685474915922240742980355081822485257310432044594087245861179193892900456501773912295846053403125159380713281280603130800810526815918425210348650511689133298182021902336703853011047902708274436794173557716326996698239093827555607421554660841049203331821140409280212797385608192983826794849149845377235236198437160449478802012517686432153330631668320548695487777494830508699298222305076312133966972144259608811253421921718456939465235421043526422729656373947344851729586215015265241837819145859350107451077626166717139050708220805441567251213857301340700716967812695246174810456198654897826940868586620599192636680306298431333089282758349392263728137373636240673294656396318730614160460219852577237600347758283459155680904716959953048380532441479604831658982791834200352049463040210284427349046651807854921292587545728638825471340589410005288425315832327756120829361892665714684442339554731030832984750503463455941829936163063626831298100059953732916438894173359217896322236893410136045030360556860131702247112593223071764864344856219183499332980710855451911787083915544122449320800698640674822535144183181978018957466793213194660502736429595169398585070720584137766184238659699107100869887458835248776747160381321686141093356969812122211243625158516652366112595272983653799096456137325430081940576860261883172851189519846941754829397986433219596959449708218787251009995792316533888065943285310224381835595601411799360833573252246830365035145329976032734293829014732577343351123460446343103192801127631308216413014064185164654899987311906402088418611268395589069485456331879753249791731061753205498435798211269018348586918381188886793729111857823076773817856407014103899510327461126672956782558019759098269139465501640108024796539039530562941821967954271324183081295563880094705579912634237862350365727438833275512986265286421597284170455942676469895759401520514104560832431112159171546830851965775392532307307579097301305734306518042701993222775182801978435283282055018084673595228230684990568572772757698336521469404955190243060149889550668178829006584939837615885180365874560120438920276475985156375381290919482632062679046713476560991167195476727541055992540596922097441630212050471256619679722813066710522478493648240831749730126172723639080989128841907796267670443313588439910824234776526821963663798607438421426981043602914587651823548051887419860716927768157986007428902048811924615154507211474998619235587475479363996414717748564659772617948426366154124890867039747054960045877462300565144642173489582017043215967471835673228345094333287216183597783533670546720147717473594393756825026219096485803886569488501580901031527536597288286092897862869627897683532434802765201243769493496397171456696296724179449076851284411029156212867887663103292975302972975970077978024436807579263187547041409042268785300104585507392993905559603301448875525688316335162891019193761483232733062066261253034888361664243274910185494909915501520987610477472294556019908163236546088239457974831755786773338014788865289249300667038498141050439780915785196487211408914647886431537219107616380574973133132396721164838606453678679533118719149412099522612263441479902986434737901507171591723418972398140187237658044866042586121248000452835269273589597160847617294007208141091955222578126279599928281266886417637097960509677461706447828355804951850165007147367947179911437354095898103138448447226389327480834469074675316022268001784289835207172436453213612149801227938910130788950398540600924884214894079967871170327447566548895144475317325586908008106607552870505409028034769558111584814041700674357680079786424325317336476015426356102455412472763769056594198269316965606710506057258777086082826042525552319939593233899258176858756916059626254079203057085975835386369802902126907620080025964009002452784254014913349035002205331063502081577327552574566554589307793942078775623736876486118712280030262523627524372326532753584246347678264209691020806273946715089165696388390837616925443935508590307763442579804762396355623769427637630283774722971530379809210621425806465616838109154157285537025808447196828583165483073705688886278679052842176001048553632525779679703901530371227635155493664671349656237846339085229853922909195355668937688579862710142265747635201614610717937244387044476658884113005302397802287601072245645818030336920379080401630332199659305958905990721700904431757796689047824354576405954313939815323139158673472228103121259611855434547475381361463692490275994590454329544920744272788132442493158530347016930495644657673979553970484651765588461631415491732512131685195901309924340248338744245054726316764273938333333732838468114824505583745203874539708536741458304305589109224405033299471045605332046493952769105266675871571745304637821819062834502989355475457542131907842496402281414650938398665997671019620818071577719762410448365008891971332269798781422912585318599348223283835880157694033254539055233259489786390339277083791754647378220113614317186597758018892712672791035189650782205592861391476665428293198919548973366216025617714356440493617233713570108572666299385494304914576523525729648452423966754781434889867161774553731142572121182230574209491866677002784675993323909140958677155395041929754278266831577498475263575109405323466586318004617678705252871706948691703773775365907293445620722969002375638214806688876682447097330926756159257989728914870517524192037526451732078061372878630877041069295680369675187422038251053642033289356284825194518403090105144013053412490853957571267518945822538011136413504211036558670240919214781054363220897467303529160890836774532599183960720731236032065133795345981253281557208938831638414514751531065846022619049994740686841032098027617608874507736687254493535756581568930618795579593520110955015787293952869414176378896969791866131878770768686695304390009671604852705199537479786733776765623268591293359730899087878013357697940051446301884165511723872095970359036686874315786165228561143456455589788322315933943625799437120575521012671424031392687302105834938307421655009876829687694529853379212523377268039398031686781320372086792105780391026698543968133608015657067255768386664269139397031426386407123879329161582899298547544394595184811041147846366811821287473927603028895005104805112322290229381014967507203724894139621009847645149633233544160261771129322232682529275253295251965260954237668734867839435754146595242674531074087132776603219147685318030302924675686069511288799667528057134874689657694437720104247029760477293151179195558770867844043151097931546729396334892610272402981095506591583779303569311290802946351831144661237872821812691104006387325096882505255444946268561112313915072666239152645388869476832580808620198964344845790727799135443306923139121844139860471169792962441294601644230829514877564615100895920069146253759946123690412305023252803692834834435493069969246150725991058788537362124776209780518557448717704299113424500520305182676805581226082338128743240398262012139828692926591088457828734535679094350843846300110185130218576898426823089659132567835415916885956729898560349089761566035866552896678865981606522826260804352139028948213355921395719995289346101364703848225548267073603084741621779963363043696937564523085304048778521658713780771947967436377572124619114063761646622491254525791502209934963025897050668866751264644668510000838327417839354516282612096873599416620750169942898856361500557432895607703047617716687725290004562779044209672412268239644032957745177824104581724834640519834371011770371066575827760067338828017328497333885205500914306543982244883256228558857569237938044314095657863653847236383763977719009784283420961746403691564526976031532998366504609169270645445244481987488412743642212110791589236787726576204284405323990996436418773148557309742160251555365985902944461092319346502960292901440799568994801231710119372906572650951366805282945160838999348181838498527983119849713369779168520010531976695407011061678980370839090675440720008033747025236530759097581975121564940025407542578034792195999176409597288044855707227648443696041219315106689311055205220052593829294172669010692300673076234244460998058161674403728407184354135402873072481717936694235881797439798131091093209333766687366890509159825000573843888678378644708794780781614348196450491581871784612931320558919022607226592710489659281239937881029763904227084634020497204016196580988415339118913943712035519661895119242162598930327046749955526377603268338705104527235212076536874423203867945082671633661512062956781549196065209232536257510395776687177814647207114671214357222909544383465591394279870485947592597413541555239738015818531278016722639113243976660482971837772712921835273218955109528695750956228344961775572545436320317423343781396897199919248908553882368926063557620356465978967978220347799884074111109100178004275319399862252227358604771883917381304031742715863997217445423193465142358417944331339694603722730003180355600490520630871757695265892953561858962582073342213531497300904494970418008246161717439757056362560985107314173691416921948917113089482578182288041314470485113136102748423992745734755464962026400226265264731533295352442570678951798704367702949510444414552959926023058544849329352934052772788849935344877290632739978456363805118725933891108693140422779061233843219229801870988385991874147359112897235701780169574247398514545981288677672374210469712237031151461778803596059109704122759392895591469304593682766982894906022422409932196825866804383703170823938170707227946852425314146533581617109312578537226977440384778341065527947501921443254787242248640187644415090570495738769672150300844424934394137310877286097675819558406333476184786282832443643680639268444761579181031066073160174494558563341165460994610474846658564547366167258292757907781965744871710228682559925325440208068053240861304346821128031837323939491261764949209150667052438583852490854329635551277222512390523629548678347315341205151401371032808653981889112477609658734939295198976954776163884712257526956669399109498850144391408822576849068062727874355348963726622467215391318164106163273915674335038578332802233990439846280874515936175920632932510181128008357370547814688107647030281847255609654822433950073561463040786410135026678795147756605041868465784248567103587798154027765398690256889725749776425178079642847814657956859970483003913968893487877770078698725970098910758917951722019298053439446154465245083972026623565826752657753758595842640687401099786558252748853932990705058948742145931601655300382393272176462834321554470574812363085372220330100680188487385832691651855613760817890358811564888964794096740308814477687360491239442774933465821454467589534296428628928297197913452131840441972445094369744634695957249211876486494751410460299619360254680377466584768962163578789047869355074032139961497742822756293227825855613747693234633886314162221623236231243677151746093965660385214463407412092064194572413301746330079615378113099788332210836612225169200177296718498238681769208287906008409333172115804113422355703054405898767074202671018178563498493837458460969937068211092528076531129296163964303822251523843464255608402505708951917270464972178717723437301080334397823346955521453713739171608958874798477691047209149549997094268772640734244529429289117161980071836903607347081227149582737325886142206532482027926062335511396293265805992850437231160062435625859005912608102804681835178317091739467228257993356257709148141241312413867345465493910453773381482208559464858795924037203005543721290585682119978145386513613022725930574361310093272830230583776790651592352653643525990591248084944246856143753784284418613806221840612876400927496510631833487900692806868580294983399517863049438049736885173400600979312898369587476368278937873595828826568497434075674302081009068333091970892758266826855384890849409065402818559064814028370260914778710161142538858274705619314134810569378768505255204692719472332505057287783720297529392836843162961622360760391078092780102154478538706474748706742271574479780653683568178023902222940116427550975425204959590523589777698934257503777100488699334795051407621769374316116609353219232663595267664335713596964541323663519941857867330960540260613632734163051291224117486764180343282075672197788935036251057990917266898619922645135965438622872562537558959597318448755582694143071158250722473336978834745763729411156934459950120141091255010684152827968159047874314770268403235449486293199743344377827854957406938209323503483406524757667826620418240630115568839097197838991065026847121474415233676759423450488423762647791503847013749487301564395698573054288837913697878260210037294680498749643862008748658708519876841560169939358143382698103871332972448361104822000450748136778877675658661677265205311992656649979903832571500095135408203959101989124594003291208421198346344680001473077244053094403733032144256458376487538717099699708285364621853504769150088295360445339416678811557952399802482034028683672369109484392268199835130559280421855054307263935387110317566134771761141997228623444216030091246417968447732573720408744924613664352339126260097336052770074675884201180808228889554850866396732888920730241677418440520474512153632711216094530191827125886159882000576755487426009987256555710840238294106114208856750798544791157708270137619345991980113256793252500268136870113350950459912172373149760727975991124983697663234100258785652231484047268888892525234406895674715972832444914682493412243645711818192823697219531862946841142263732604950297224649588979944179613592712384617623431231301459947726163679730870717882315085309846425707634380559695408670196443443849865505984382053095952224891184088748815872106334341570710267398964337448329609240333011745085880658254640201901362842710734765772752475185698727844604372037141296553518864414993164615047756501711645469916923365032258829931197226611667950317240297581827148330476038282269384630667835730380279057646411912656425691371263765991856944438000837437874223102412053810114376873300273649026197177322955715089631887968434960817335281569094413430544195351063464039710532425992329531557475148333125021083757797463383788944935756814880384934243644092337272617523120341312672838996953051123037681677826175423819772530744367333411866541228383418175295842462584955457073443312526478327536852962582533252903199539064259158889661403836570994771235687266572702777286338082165277193540187194046674508102308970895747655996786833292797010487870242525778500505659544192115611893103640289861273513073399453260231274249561695465587908280183374601192381172988021755876186348558521640318981115199525706636386742576337833969113088847637149386215961573753787260440763197946142470765227926222540523823600583575537504623998632634296024669892071572498172923930796956510451369779212406848928765515183835259111943339398120278905689732262166132582723631799587450160200320520111873766573496321759573511760419176580183364744509230943621254661833653489401393549321203341410418241679415965133135168409241864595266107258924278283412942250872075710011766148272751145478644742973302070441900862597885991715584387851825275765698665543802700930833099139205660760986375214785372542368146058774363335544938231075591326220640230421811816739935256467758854011043136761945021746280846709045155843901837094458558493290609834984533268584888553773593292612833509922783786558920084521804851353475711166338064637513110796171001088974369411489071429340923667637428588988069584953511453563360442392899115204982535310218504630638395756462285274685308834308867992003224840210079191334883219025482281879181106748061232110421608097556803338357101624150495784559849349227587484782544184134583640764292429906414366927456476590814062953826532833151171819957961904778608341613651411069220553727760242527619163501016400902763644117636415913073356534494448393812687555151034494987720751556682010884732146501818433968298409817888783723045000358341951503040379892116681121208126916575348254084118241303496087248792785721654918142855985768171909540976687592963832762731177280482819188880814823611963197991154501523717418088855319968575423856348169329434286910730963872280136191271255489682533239766147985117390101360487489448415846060981336755928813117182690706383513270761339414385793588026328406696376041586561268377443263009560084116012194001455919439819485401703364162257868252302774344197521395925356693682599514718087465776077239888059656138677305933459132919293891568483617027400303377055727642946705599265782254511842519217131457936586627292080511821161570841038802080736741421142701102133551675914448893117628970686043489022789682434561529738172505632788121447187818541770628560407468535787675630561273976476427218820284560870553844003416236456552389669971991292613477004824487470271624493351679344585711570706814911196456697515764546457001054418427373626329410340853642432743547396207739555346640621411311313644656982591860941698951221343000111105924655822881343574080173978378059132774256390826719743551538406753973514163257413761054514174155171900718336163289240396714494014424332064396060173371088349586101944783736378128780372025710560595174331799028087995892825481662837847044911516347367187553825618607583706771908645639951679868744257401366307784508973635716839827763002172594204947600619875184953992373068796697637353816886390087082321796585808503485227394905219477415517848910289762284265779965593360448771860922612215281167449432169847437323983050425775860216659829324149658459887982560516821747713945922266749343554269100709304970773587035868195143636686021556079228597885239145407790777056833135883194526259855897443114659296578347142536154485823430759490598364798218287019464915554565192473397197170649652001094943969968174576060808260489302381762781912084042734003134099071435397845933548163870382478541353993338168394254648912689993908838911616338408869828173611728045474651475532682124443620713234975988073268728295053723192521840232905643251826843261323209603083051286047844252275427491449678814537151500746203103320596899144675827808755848680283471072217405901197798413402986754177460308568213238701475535702389974315328598323743944692582428717114018693825201394241082561581256149147316575054986991524523008402260211004181240411516076864507184451420047084388169328679281933707448616505067116865599930051135471925138468386249781553168989752772578892028640510680517393170384168860971111032311121343346807893806205190573101462306373268295332725444895261211852582753760632866560459202532208512336872739141261160642886276704460723225773912384764545600025255644932161927912585205711459605953598188465599499084857667688507295723672852088592334492045916005358493188201446724489886883157895925390616541227317351430276994868400775568488341651588265420176559409197350489278726994035855469368038553247387334840896046529124653217499562935739821976710034487911027000939668865143620901384767786745569437832102126281651097246719063076193735475696740215817885085223582872212043535572606331726337816695714716526449025530922287565408865900177562185525291941852991654045841301337778809164454785002038785863351667513551568985794605706389704072056113150611678179374532592873905904492118396788060736044790368491957763570049722017898280517629439721201269201949903864173791323028180348685628185494630906281162917693003906307397939778654512319219750689135412707119292806826066838923555741832175212814302931740619007671370687168826669914698952986641157067466144835552768148827931679294811611186430711128958435751626798248301265395558243623458859721398860072008052011700452724257810317288096409986863994551630737434692153056680769796309865223434813226768165321958106362169234833290977208144918173975327812592912124134274546283995953435565657528117719505089885762477047508171755152266645950284358152918489615868577809063751565387314540448794054060033016968898364287888860550669364410342181402270281050901712551294968342612599616376146188594485891326685255905907845103906062557651183815657285018191433707955484489446725191124636931041393550074509432624641702888925291091320252484965376752178591058742172522015774753427823396954842489296948446871998619458391067664854687965334231435728100330671897275283220968131384175174504606704148147869585027386292613924056465889374738177372307616838832093579233707334990985563213028118434454081621981691948947836677932481022425381556496538515277956153920223281126511089826490054466039267730932583250272090004524538627046844508329412139829381521672351738303009033002629397417646337805189446141617677302199502873307771042166096277447393945947475326765064066746063437325080364815563839567957047440350159179698920210621767237079752562102808800684239283420397110196552341596182742634693770901284105760332001290129051106188181140140060759863081041099003046701176653096648229255614465263521583129666898060137841633076834471342748841677293669721865997036537375830732719628720643278391045484907599552250489946789276171264829680582668981868115369036475967642834747851738726383754299873354765097139406551199648048679556436544716345836716980235310207850220700856979016974543721177508995693158989758456162869743372189722986623401433661805616292934660979064091504779621839090047803973617744717925790309786588468147361381908552150437933178106017184588013350081755011581693358770795698841478761195752200318150654809910291617968414319587829448440431726350926857526154228351218115878757280964933397574794305529098252051098253802952384903669667517354271633152264271129363044948464488011421371081832006953629092101686719154097135463130313043480266415306779564682438136814673316765802779574776417828688834657643894623068247505412818173567986645378532612187291309999899338107506830149263750977527109261173990698956474737412822501962789548793861271773494893748209782867342161452560033599114223692626369723392299773678812811746529208966990557377240898197496538017038444501965042592393286352257997176855514325016461260640833610560091680675162736886136930443641435783892216101392340605808950316027590567444071780855663326634726526267324260492890239108847032890530798746274606463652403189331656163299733187753810500541734319313127219079736493750525687145268703838215896629894278207754338144955306316791261764952437390040834334900690493254373843711055682090259831308219246363239184129222866805919179081643989996463825237844287613474948459662327757926021860649729924950955793427420027570214832227331857945273247429978745363591230841873893631790053793382011431791968094470953625156004666678396469298883156706827635455771023614711672652490865779494741903307616432949357309481433023045907510334101791077194824638567589790701238126830873638962826158321037354898298998766387759576173154107759027283247663109779256973495500092638922562511562498606967938300875956440542449520504401474841449571625566397065510061356398854151568441023235914431635288466230143814027454420674665119809473345705453166859906728906851067588955750063347146875574550894183856969921464554588970675964545693480664684580367593998637462631159568800226477417260291982104331889426529289328853595650562435006212616421186227358349349373847513161663921129812517298918547909173867832235580893913429243770886767381793037456329367171699785583343777190447133500524444252534755083280317541185143913236831540944924641236508312208929122786908059438493851266682037980745603096581974939599624984932352996483187965684412043920106629840748010532252759478107520320767543386777398459235112913021673882313296141431529649399347242513398756235961642438266467793179668882071717508051946165817464423164362981964524517671571584294428622359233438863400900605273513718771726746242113409336516495260641482671092493319355412202538479534657625075383971099318910865733153350672524059229103469494635084606428962713805965043642369953035304138547129686377121457004909393735567938026668583429596243863011737113102447394649464921953231503014537223546514170442878438151188275242242846466844738412417425129479522937793261952413083998470576560961254614922971222810876182194028935994296404570327704182266826581734196583758011768344803434655899091823878368380855717418475216922976592499830734240341255505943699491716600834941502500197892708380294141099777956499777113319841660296197807031556901307187675324033567552108963775472686025651071794289780366775367754659859222396808622440310768845009632328097405858361157339304159243483578740704929083497495083459618691218088982437326633519005518463613101833294476256751086875879109639618799112162264415599868634736724623503340083439937521624426519615333564879117409355560188022778086742189732404374435890330862595100918385511544655841799743920124558616232167421322816944125369359452571326398958692812257808547725547136558556119236106585389130330627040428486024393215824109932127421540140271742618119046058133495647563967698554363344393245036886453240832606315364442841433882671301755752647577652729265741875133421984880829458160426386048673586152131577986705623518919435622835022657877690946317695668592700758740685985585846389110149050002225387156645689081863787148400468394354715589092292915124359690181965737520561487861627548360267351658749897509713758002293560683439227892087895862244822897005986985943092119599299949568800472617609722772366355482070894324573091622250509591363944429568848586030311156660699936126571543404295332020252867917043501567023718087039565419108033888804116795223230970862629063675909036577522914764853099661234140610078776767094788066035729520628822005156810256913721043985586575188862588275300377626213896357838626556298221422128463528531491523820297437589823051295282205653494466789954928412598192922262948172928434806773688391225237508471116873756572465921448924642633933918557005551318576716235537595271708032412616102716850902878369637284289008658457438958552439555625214478678554970073883780048254527437949498156616344931287053179397091285702770663275327696710887387295156775312477409506180763253868691405012932711761100495071158181464287235481835135882478620115216953910221575461059090929547553644655712129241669062254062283171767519079857354776394239825758522917289434153446084114254091015641875898321619242319462067658566808906558710581689817015473075396332080928365765920831000211455880164994334083465002887958034447355804723911050666080219136596455569131289113071730602408980411227737245926579271970571042248337093621932397848315322335648975786662190582828439390506714686708960521605196798572836584170173194636417284312809352039122686816347941675841229573136085846372391429860287184657514031720644400906552857897784497249840256971024590756157400055704737228980715546443278650007012434341556978519203323561334136766000125851751576729008505646069124851666989633213479959955960481738031813154958218308641113801067072448061853767605856038232090288499249169469146843516537145240135784548433960549158218637509438297018527773255523507176305240081708191080707809010622795544878682244313835703719423622607409627737824878600482120343051646041485883647957320880978656871870130054785394524828953698253858701916716421843083243991902661229098323379093979584813325802179005745665381453751136846964565443485891083182149342701599091217836078867459294824924615149932421985420458092784959212398569814797528462754578142876607367079150229092760431758774507176320161936089050617451248266107685150601924126200507768235679779298221896364859233888560017437451591197642079067209270268853518685082441312574757773051463206251461632812877382862530938830823332077549889696539167808656688029696318568098274690477232250181147847620506207037554474266239264446084958355593308002717462752280304750037562531968624817184658814068056852522498785301385450267386347764560745714565200247430972204085163849694199213992285566804077228971171297032783930799373415923602493412290637722268134392019264939117366498665602912244101380295879344906772578748670460707118468951339712068523751518426383899367116620329073218159164760744142809266451413980774328291172583784946388103623006279475959225566926315784393539132988747208213687399587609035503492046676157258520106036089448848357559063101556462465778401327169535428469456911986305257071295064820531480517136616018275356633707637760068757809355277868449626761253862221235539184561964177941886557232540537174355060412400794492439130865953147084942042114893281982275378875053417264224003549162675771237348690065223790725848625323752813552939953147773360562292112790716699036791394968725776173687367554014005193667558803729601337932095634791273509953926092945788298892284367380590191964662145335601745083426452042446904777888551012095752366972365433637346899984312358289297436851124506278102599683559336667256418367449976338058008506575126182377094386950331294378914764367609350682391545581772992002387102570496423312973360859455872455683182122182238714715677918724886835671739904190917603637619019049089525478434177268509236896522659480890642697793362795235557822714699499935879818794054250164128923085357043805056589832875251676694843379872864031473408879910000290221863659371957189745641301018369704296003814651124135313188006637821632882550320985354261647726955789459246789599135225673455538950281631762572830319457300801946995610731671239292888887288069727475567299463385140133330184100150767347322230601761125761713258720718268993009769931834859468548679598210045300582630712985755664914341064572145871774473707436684240523854426231975984448915825703065382375362908130655251019705161244601515756352886247489882764479785117089973940436433346917230059131134039192499444190390565135403560281856948983637200431583211163377433497856153224280658823759099566751949980494504351254368337766146285213077177028521831707819215462171016612466042745511744124643082974502981212303933711220148752722163310221714389688658546579263468266275742827407385406723069135519351300607012525952089286887191502561358042626159225282236876572186057063113195938653411460525241542996081052190870613471997445979154273336814710146703978118018206219955055569007596463538286214340048713383714001960975612704057021024282753444635199869827996142432371905600557855132794561972712415223923122115831567421248626407501545961033465209119276923488349234523427081222062077938493091618002360121193268873489426398366297962332818454776649366603801499264967327360095544390481426151709080310042371415332568853571828326658404255795789346705808060587387517748433370596533479734590168159350251380706185126134654755086887980920619328175057521972681820223996793643327713722509754390942683220897419749043341759182853906111540103520053139540857450464319704117639662731862777359330659054584588562634769181507127711886568302536822466787832527944481540837659160172664974289267168639188968024318905347995650441409773133573962931011895057703847081199081074891836419106670494729190171094524900720285435226189588912756594740445147796695268940543474605293538854781476471739656893727422338907074487807772638391335789158980368345961864888157648662622622891218704708117149595557826275112078585383464989364537620563072036104976401886318491681342748631373099171034117253718847180753707039855932175163829193364647004520020069838885120793516958072362277622113725269678192247557904035784142144563477737739834420407417744268280587254491085636827355756218146717693209258361079851433196252196136872271161778596536272128408732777967123130988482771093057036428026629875146421393934722135409689536537376078935515557133129470624909120627886865885745101397522354060706758956957321616306307928447405049914456632738868028696565595919583276783705519386652517845578735312729688073659151238607548270454983358068834634762988712005564236161697831789314551331754626095228901198670450568770586335911688206177485838384803397667184176804552997078382844263771467824940513695337912127605592189573074213075599639999596185896821271801991828958978100783622809125212311821521655567186618329124485510346386670982422262243733067610085749182393475777460521623913521340804917572683339886505394722597230110267755575116120466502233730821551756108130575850517851322152700303185687300718360460430150485506954734038789009185833968272203634424607364932047385467573502282223580687566807055035323480280995346933170952910266021244740734138965031586829643388167530504870800974988577216892206230899873788882740641900317607215757497635939301124573406842568493254770940399384721023208679750644372550410875020759273855387059017263699873834889382636329671321887820086385622345830376923105279325833494606733875788008933469485122641876987733293091240784615013309297177976933560325353404769363645748381567455238996246667418432091595299545313324884436458075541982352536311250499779109722505895718527408484532512532126807984010337606604110340831578777513447522725969889143253675022323678851227781933243759111402253334729943898135766954389154812839599951806006980774668673735413410834641279401928888547424543260253484158535546585627990703653362406216523770432532763161286985620541460736127764110937160732090908997710468117060288755928731949069635401621082053614116297750674011893095794148693806107984996349679543326060469832751306131750742292445773937138598202108737872961431222661993548180339443521833849118010770520320983653408603284594858164135963130696509006695313369554530525003154857641292962562948141001517557771347615929074745998054866502710995953341518975342463274158631959371310451145413428026772894294887562300018904226020727285969922538403494617231276444920656824234694765718724929884242420136741605554996748558002765328078943975576630160222247081957448875968782737216731015957563383563653227034050988263677792883256708080512072960829070774173991590273620217189396023456484137258321079055826001356644037236381343780111589265967175426489520370346873181458739236748704393810816071418040502202594193854614349269978166185732483745617414731160008254419691311735626000313734488866395507418734251383895633155656541856058262544482756325501084381201867978651605383673355107238352658409016345626209045605694971197411150740469547990138483000852436008662802333120342996932956595465278092150869016404671520299260393661313071060970675683212313383757614811076073542725223915763470801711677835945871715619222136577305538722848518063519708509666047026457632509337032306908398787732334639630749543155453462071679323770123313576926624518972089154491282301062383830582374207740803286011331359533307836938441140041960739480370853632616657555318396418042099983888793638661202938324193870235753400688973772156965824209177002533884267258360923284607759577783751649679209904848960442046510637327304156602845108582536799945883887052011025006394164362662212140313535585556150956126298721973013030237249042508816897003290641352774307973502156029140790859781795117184291356092873112881797132070925456403215561164176179847751932930517634828164275084519252039272677077388111838886744838140530111045656178518983265859839224700346725838984919005898813770179925848316095872868057985964935478934818794827118556512935154415194042470588811260357378739405432955249801976139414151998575085420099134607684275717761368307820417463931351613165035586529471865199245337167707607129857724793350337103878457434447667536632333460535374150250792098306758506986440434929236139796314403985905647068078902341468391859720506486838115739771814376774453866566710570273909725171740455232580183503215909929507796568483807947928264043425952714939680026746810313751460855684320535566495715565794464398046551126245244852017771359019812771053859438068159648977661057213593125172577195733126545581593018955831191101051539991384756985496858489962449473888083400963086656316628790870069726071659813508663792783049279766416034230019867340264609256739774022495134713466122639692358764966598310575417540204153312432375810238163853453496405611020281976322517421039262462263200187667251551828800801595706452132965113943613350289352771190074069412884685797142918783489184842019913060255598395365389334061450783693797850845248629522999835939434581821903377929658434247438168846770954932314341216729489874297906011557352416431012292360102142497303727701902142253259602273764268030561687968718372697455097632279924305517161981433909652888820216856529017922229312027302734990859084942119644925520508183573017624387816946544591298603873541947151134230643936843390492026083731550386975432349317747551599286367941731883686874922420165160260575623568113658695692371288926961621948498438909129953836563870015400603985226610404105967235272382210292680751978091683996076251592218395079649516450856913413060419193837195590334247861294569865685535643723688045338258294229016188442049376069069489406931135010221041181326868355750878739929040803123047183139775818577100354806886988421096897430913048553456931665583405051758732637489343148605809188600491787581744384050671820632616911867089938579757405430464379773575665042800119725159427318801966430495885419986324100628786528039234424373783865014904487420251302967373993569634684157452184517637412347741040890445551166627258679703735399902520031729258597172416393150773120317496199942885082525204768954025614714925169476060082772711722421964864189680259679593162908708018356686579307921281732043562334441424289128693099829069728241385327606945664573968400714409584601843589494205326158774430114381452410050208478013217591178931354157384213882862921793098749835497064189399129392874846245567771480002095789888922743872651125437431644170422708428054544599642334820389958758354564108217068577392159553364250236921068761599806579727559440550348450386926222521286476925908877392256434693470526772684302552117887528144603034997229074241612376278510019818165683798314767809486292788076020641969859722265741268391582186078489640900491774038577329411812245068102739390583687737286496890042835324981881613917866306463360311828146596739156598286532761337590080447603175513121436327663996998933706978394625793718266604387384717028096688476013820932827876274900246380273444609254749477041142872922556760846221096327529939473504408600999978310505204174202449141043470657595957232228212817407584022439352589344585078566503388537652289202996715561897471247794442734857416511279381688856995469474248495648999216557139167767080791175025218547230899391248807437396762636150948972112222964985430104554098522008653476109178653383809004427062762856146160618395669750363475723610401815156880412642238191347564510039161496833794153935328861374848608146650205978177610821578009160936998969077491181157167644906362519906660699465050749883693032948169533307831920786585512861379310200708390780815108428595233555598394794994050911032460108927186296119466262391165685579340737145464011727910140531544619190708158680426420876462128934464111028012035823748888030671766526086617868297151259000624791202412120262902626727709735980246615648221231400418542250721729112640335827444596243596500366302385449735361316859401356461012521693409588503982476082879001488056999161146604808873787094568317912316490085767623531161859826669708964323559521549582186582511009736446599337459939432542839922476381742425896446489696107349247014415023625206356660628135495460900401811011574812779034734438138808552841401731907937813544598252359422412485023036657826012784198936709072593649049502529716247229460141309029341903115321661742407069765013470172652578182613105569675975625237358798727889532168283451048211568072070709558360602003020388451480591599085135684061586454920637085517201233087339601690279124784487377969282890807864901517232862887732464977841790959694507983443285760927932780817144729276721777099042073565147354887979614899493302842546831994180432592899287901076697929683383913270529318471814774897812397112058299481579188273713788129299969996200745424846048966383303107139629006760271870140591746992443875586448485472354391863015705379628879560720309153954621242559499438362925863674274509970173019656606136381315392005560041608967937501602955681460697374076958369346700908875456196564894549188775446331720121702588164087958884752926724216227479599387551443525830747393662453368147694935063437494614734595466675863556493872058472137477141699887259127329122887341615600389993376027316160646275359517638063514728774792425698621133159200945841416144100402773772796043931007188556155360968339600029835491423811842936882518604600091871117723673251144771130388047326150799819627104193227512657388988150869592752497809311336599651395880278134561338859185391924326713065601297128408203403280545149621759180389609278171307016609477997224567586688165703919539278479087758044458874607298378275825976772246511493497589802581898848003920807161642976323754173277905767876135787215003066447892993943964028561047024239034323574557956399854346391278355991057146446798166698917535713797297016011079247665778035715933748753050348224673488386350567478141452193813096077198461462252583571875933828722554973127153515943657543769463392042376705492487626885273899190406195160016013482940611766674611094184117990096442649893294802670519175438293521612531984367997959466852391343490476211061238796787894531492366782085983325978544795723038383978927643839217442401189865252158487010495027637663440896277541990465435037940319193351200805276319809542309373216838469420884110752481700185782029405441293303174418461893425284146674551186670704586344241491092436406478896617985554547303571172965219553176757081765718541309673959007484182027811490243821447426661636953163742396590134195919492987348824082657818123690281822413998687147097902721100509167502691953313776105352106847606068663933718683401920348127354579065236097171587299764978929811256029412236627223257711644937543451106917760220117071144695738065974822656884685934706076758071693894072392961250818794717044574276038227965363795209608995084616964260753413553626951974054378516301019087215706790411300757002633861025164616913804689525818285699710583497085853898977993533988172510475141252589213155221887835706673497832167957909153226495958929164665945663107418935653182404908438054313037178397455336999911223563134111088458572235912274834474518668599782326076231782633487100970341036638954229089677027875998438531205222498278195559073788880264939677087890035706529564840124907592545240613316294867343405751558134833229008557329413759816514992862890204398927177747246850828698051251247558564892187753355525794179381132810177854199924963371924641900870105701548550703707684157338547304283847611334309246321296254103815544820001568500636454063231133849127792109011766602474264176947491358515794418052779180512925185135319754877498372181085390661572401461771985191172231539173282749314987977851171545940501527969402944538885774216545635339347158907603156575170955301373074657528752543689516579076412515851919618391205773688279901617508754776181870874588583468877278919207362060830011247649094002331419317469220157017268828492202674678983808311626636197350892871467630669222883426873738575107257725116936946931535661414849837472817484953727564418953162007109421185008652630116263806853698381540977139090858241287596787032834177038234146331325637279290298904088541428830311701282639730093289571201830055071515106455078906377162023855847182757647022392349193045852952416784127256544686018330460334242606645979916757876037365128851844603797535437306636642204891245048868388921657002403166568973424495581574052104637285176192877802009070667202204237422129030036016255384253930084706511921998256165831421977195617196019518167126924007487875222425317912967166269380732280927728970561467646603828620053272245532496037107370206945089698104242895428648392884288629164503738794115473496442391366340119368421862589269688343963715661142712292956703781601359060291006012797769238429079399929053324491416815105944953183023440434859882190805549538111237361452972633404593992605400862990520292213648670978219123324380225203681292099947565321451542560935601018417036430445847178739421978406683754352748562995986067938804977351048073146340634572208811605728811274756202205249852147687123406809932925901113584031113434900822072434493907501120035817425285702157609635780792331945850780668881760455367385366197370820361024404698690998126773320374938480304965714027900779915205467582040894077635395135306221472578578302678714303517235068558306264232862966564516702391771717500137676707086997024971845070073516693326591568779669698752978767540805820773956139475193628161977204880304372331852820687150417492034443825564045776921237059941541241796326731079590794559311903013176031431948675380955884754248258483654917243148609051947163347227143525256286116427490465462574814070276696300015760680202084126681411588266121118567278652320839627371897223097389706854276068148644773779425929820077590617733234610736096823133554097789188510546236206770307634043835948478964436937674849034409806591213130098036683615005236764284724987085793006342114546335821953393073414531388481398603287603717113925488487906136154698391739722867181539887310454483752697841836164755672422977851778215360698343281605270552040970815354879799895496962523241119761581916115064551858443085066312194115537195298756235483619212093529541492799461680827196629556782593820283675554602860091924431389547395749597417222310966661256939674079877439144895512216864864787103360793981281616915575629261224705414884107820745168670206732798568511568956946284225928798984795828006581546006654524468555853884585913352315706474951840207554068105181040967855949586582416416049588931804403836528134656490370348529498815057109410357999679288921047378484433590317523289694652960582492462280175796206852900574854064630127626461019267213713910295503584569315148714266350803231988272238029034296904268622996615161559533341443748506138804836081807803102918588121102639182238480536805437110468686335714730728321260007084741744517556322530274425323907916979854665039252917210335441399582666199550372691413982364533765262684142141733587395989208901646843085032471244709741391148890501337510587255898987550011554386239759588566782955461801497036765718470881301115965513107184893671171530167549734030865374023047763856992120679574783144259096045339187168468051601141014899520742198789355810008984942311097068890230292442389577406313322825517083594991871665528884829882710742459739714250322404433809189876425020292420308425707928132864008294593635227582027329914378009720536874891121730645910597783258655317869370168498530685023883064604701645228333978607931127260538574625392461563130720299789935312251935759218915650228530945876903315081559244856542563054141362358776174401424441790536600583880652823881042161631592011965398835473545503499656798467666762341627853212583654176875082611409064049122947822031550365450743531315892579670680390404638316758551332115848480702086186320419309777663673064275566357974281422100248102595090674339491015193549703788077522414568358654904312503427910548650708441777925775198849992334185076412980475669819944934049651506615556564211402641053231130521416488411269924750100016603391822748702611007963527521479163864073827144662093277308487382315031082353195899156214939850769900262724328422928608373058641846761927844378404281688810470022691904452352254433332396208228482297595400131883453683297879116319229842124991953673420729780623223750571847960337346496967162619663643195754628437889360736307964880588764838298717792073034358567536545203345059648278549765843965519957510743287455019613709565144893342400593033908959169543452948198381237725788461315958949896377041836047973850106401537210376761458830606879539413443952007924551930280615355269844959695098867052374709718928440918449957385082637560136883914278100227091177950376431551522143319705687533394822557797514447105587949638922242796478767051787578987923777224597995729198222097325717101178140318303911736946059532110748943910673190740304554249667059397506894241669419248377021043787299419108457678806648612373828348925521123242494871890408232493944585722951521740152099712578372721145242226015040222177032285171005896923346327458855461983103045341433757904843155583920536021500926747843860725115485315466929733018492899585151977701546721024518842842476433504450438048441915028327278269654871250175121739089541331295200937077809790312447044630713397475972229930412770335130677587442916124349135083582342820247690086357567580133418770343692913575273148888448654209841392343913863391284396164106179402666853157858055660829005797256884860729138155377920604449325995253921128875962584490591980411660224730269854671556904326827511098401970596429019351521836744038094726433735216386690630862707894920328688373744667264799046971779390270610752695844483665284089504494768185334821355876437246460916666422147857969415675151280711242256666039120678385690363516461702782308152798663886091142967176876764995919573131829863545843646765631371011015515004139558253073956187780214715589654985298974173136666117963897781661318443785232793861971594493914316019123505813281683548814029977457304241424162177516963293950468839122103317974706582249713294653653014411452602802732065104070404080905668745830994235548818316417103865191570321614952225405202374578871635971126405279481175802720607271335884928901085951717925732162017965670929022696307507126232127655665153901057870183080737841277116733860358805518145574852048706956025980941856138070820334249664454774819621347441238527537668948145727777312745409242933306682682017919653346054430310401041633882003435426655720071702467023796616239417028506042026090570812387920074446926474431605079166389126586909568858032888056045781175961637276487794512185419536092062970908448762604869130314920248236640861621048945710582376211657393343284084231394213807753338989636452295284872307900847214101614719153284784126261056923681567182402958632448379934428858614653068046175074868173121795020689386310296249505308661093082729665223652637135166706611354569242679174925718548352407328130730649974597291071410980458558988329806211529299100209753561221228987677375791098572576454001169531671938663990653491709528915781133387616905626431939251503150303292905993177531109626525329582234368898496579200266873963543563426988643906149439979467234448722365604747013426125878402461837274243536661430707894881213206107322415984461522337544684459080758569469497804799633258290071046327416157818296277809364171018095815692014772112240929246128243788687242067592337057163131750712557673514293827764232880342279508323835092283577366211020091370859687508290255122582341669360434241835960256938186267548598099814226185775080378598579049907682060250556274295753016637376507307914095256015400428879764100150172032881816717843885052408646931703180577117940534986970400907348716309875069957355952307785511444524456112721921147174949097508241071617311988826099857643621908920339962635406159570003840510181454447072512179826300473674081717228848659911013308537769789195363682568921122724841306495435176397625274425148509902881664569519881567367714797909429300294837865120777873064222447751040882223250195363953484889104969781133274665096446100981314683913282904859845736897563441224919032824804290076599871068759384131571185566687962990268591101785673465561688550958190971704327798248468713671444366041438045637991870478409105325661970339637529041602214085916253900683171804999909162598035359969945008204402419030488968696980663700627206757754703262269495944469303058032113246347266167348458914944014324771141824412316802703120490647313184309776725671326332934914398376568838450484554367189189665823649894361972231736424542579325373620633262339985234067907491218668935909163624538634432054362064059673402370213006133834017501817696315479647658849129005317711797379449210260349195998364535637800044220586115478016468518576673258595540168717488513780846804163926980633325221051983189669950646730084957233369839561669056115669639058127217635938455607993278079758116839268929344471039793942190048684887033002026443755233944488389130834653704188457894948548480368287479666959107130288619079069899263428580427379868928419099047709997336536709083927633292335166348106868900790230808363123747432199009958554597644126281181899965220808272477855296488006981650549620108904829160773151717983349766387051704371877863722711658164047042223293120524522118757359302492602082526691092736456203523317839408953047532082339847747410121697539051878518864497962819308405016483012248162866504134578665652647625946684336342383209652360987244105352976801671385684417704549541811510095066078677547474003534060799298808667713664443822275197557674651137853648593335761923520235579146928371294349315091522923793123715252414133679704786525629760721513842859757149893625253818154206966734872788700516891932793571076215018128378144474858748090490267381387979629522988858970739899240548930129288194020280686667311460725438490492678442577508600761981009766064119769688607301056358734628090055372228339959871220291497536184219627915140626125578383279210255139077544331357268681717159694654258274053658872699837141361672934223432589247781475066212676998265199166330633972205999730438051299166277570824796076682099666509017917681144061934363763792058607003489775444836150936809912811890906195735426225074739796682505722409471451029575698200827463996231282048056649943288066959637428274856414979332734609969999005880456385394395046846029813313520126879722068337388662438640914757701399982058224189455582763093726480300882321660614010555235007654564003001565417525516330669085031764132532967434248704813187263583122054163512528863550452370996501476928333503951035274032210019438026048545244878377986502355225145029927838033707099396281150397642172781741531749062025864613715527471222432993325766689048426644656433779101767553479247414816162733481399670855508908046297379771621839456324077927279203127824625705670030798212951568968085878620956013284740384245064956294049592086385997157828111458495262049464471819736889945297158952698631754214578594951220309656251325337137562769052668379441450246424129388468954525264877005188787116379665041615105848445046079200741810487939362846341803350190350339760484690935116544857520534006583881970970246492420022899538300627189702377768127378069423628494862266042634954741648700391539955551653494586275908209121252614443920093410220643759486898832372947133285940733561153443649752849026092227224623169242694336538560512151129583169269508041526683870255229982685767855246491106164268773911481162985432315979101177497477284281989435122021091335852151880645343989038150660901077085135912377782940977460430218053997332284140774333635041667098094801320568640191532718185094153678586752106992104488214017381933790318501138421723511321495729268686495310124276513156707725486624235924443700253410974106367185341441388708188996691032906872104779145186518967483244946347397792636867531663682138761029124466940641664908067297734826924567760469717472931563461719830850960313418547474508177517512605831131804350680481801593312469862485962282740130057766498042115471567898230059169479463799513681908294027700915834496844470283484441325775879594264702775725825177125282195345487556837421446935867424218805093580436165158815334805226292416812936303604278707326087291736976645975684452151537727976693836802131507154708325542737719517456725184282453432303857191837359481973771212706556037054987908781861966213643900954006757485293615084981461793644956971978422840332707232559012832218203561420368977057882676821465755329312571664622498096514146607917709232615876423693052968250437935092053354275931206119960824431978592153071390808382864407391115701649464476904065391414964157861482293965987401372274579260890907623050199689440243408921081737313495169678078890684777891684713041244039386313393442972772184206480151371322395406932157291129053559469660359002516329725505047982318769798388852734752429250656216501119536569228643191111435683789502673721386213269479664139239677377836066523468817663842738946840700945253190018190726175111860179905137830144685353329819722188844642327142137412734600904309543141579381645382471116059148992760584637640202759988659776129067547175485671967005839642716849932539383656524609367306494410875555153089924868037948069645686507360271364320871025403472017254481475807191958636689830777070891739417364028739794412464804123378627754913224963073713576990586765452929613179923999241187487106294292395036692242757208246644130256275538454495106929352870746491897505398783425578065549657644331601590921652452766631168289633570410608864590674054117074371694642716293436650643449140451210669152422598205515908724683046936399284014564257948663363260337860417312186793481990242139378181946552690305122865176832714963890826950342729108926937479312245728770475649453181343830704692036131376128622506198179774273313787684067533814143603804167341661041162009230315153480651116108075044230108935468762096874632801472927040917319307214940185836618004271078066210458040700449765354829001013215092435187475799660580891313556811240931650574410064021042307723094056890262442860274079591802987728351165279787650929183033667164094220255504822232189273057553697423426118502344367733240054791680121784049886419217095095573987203336775990692878019351462236896508489335041140079377926988639880415775813698114720312434410022721625392315747316904543672804421742180767205014535048389295912883663835269361672422626803270610289275829484501919927558814421419258362124038247411229884349894433699505715557462798510769498656677749763262245807284927241721210176943110272341600458980729554652053153322988159229124916296024963041174153095563756976384294285039984298242418398782943636484126009950776655878807307544493953674389413646692951932202464653371585590261932432306731367005420838650935469321037806950945476426786988433102241510222791241608150536366368256901924157747124398299607751239668433538709309311851163517714999589986165101801099134882462754398190031390738860364291836131771929686928530295628683450795070970540594388733432270647045748621313555158853900030148911330713695001402164784497857553076558532338583939024279075840672329176614246014566638533616130790558035245922373533055736884955808243624827545296114214767040938429659963414820464211016710099957863714207928781630053150367885995182714231966279031786561701317257521865112048238049452890324562485876483984846700212551080647134525940158311255073860018397976369090947935979821458909365392575282408026993409994832518732444758744963559306202356338016916816131492341007711327877059578951440644295471610714341779871448604525868852095356720203442321791533282381908633244536431938382787127087518102249758355946623956462658396382295058082055032512354859409744390634852826099636257123128915134871268944202196050579250705629121946042534769050087621274100107441628070857215323471601732204020370904940066542096778259252603908154690713665172894960111254784319484164071229901090409466600329435333893357743390611204929402358491844366043146768794775497186617302284353344393127679655421095446689204690854187724305375882240256232967724113038403688813864007910223279861195129495893302835080026449613643874919874943995510688286631354394055437281861087911517520540236559707043978267632922559113595972800671610095028421414393343134150841909437574095559832848582071295759443068692832617929790317990337210011161763809624619882630687903868776940971875674964510688292178752467619244570657890918847709881778516301924990042417412850912170956298558851424269718362963722300848785118652401765769531639802439111852327883076415475899840911218535696728334812885537576769514589581722556750858801688462071355097031319683160030539466542525721146163868075462859944230806136660755881754216301881536627140657274744529246372898868325711307107236108701913955806317023379858851869589940070152964950958806363485431692864107476505531052878738470199618819338242531424777778178563190751106236018324807277285576306699325322637137550982180507432551389654043259576001777012253632989939014103118301328617938803476520584444935889951471496580169457773899381307433600369696284022458888568355687902234982367524979480204937868790006854818761440441157790183400337443879181910073688268010427329787450378081091525063121433038646139014634492727022062889025200621334741834588738635239773322910258778222253757559374722094722340990311315700552746390320846551174805322182391124867437677333419194400137111880145398000494235757352921034739504635278783900775909357207779022892458580685694530166164769953704774156346701276865158315755993251913860557253769285215053918732938853922135810606933676440752648834035856517941444528596993668146523234035951635627890718243745031875229014318694410077594892364980410601317281655067032934126774709659540237724987560479988279672323940553389831337308080812057607946332056629104661699149424609382071332360730526362185104070118659039781910601808592020328124319818785263100256990543490376365091072663213645370541239974423632170672856199617704190232985577414834796951199598624904140346487661613171670405769942402028575617016715324670191899574919102094135315447161062763109755249702258507227578946475354400254211538685928157156655825829995428596659361830170426551659586363493552894234795586722159811620740377846004467755314177682071921495596995285799569466872242784508382733997136044022782005220046723507205783349590247653802032794674927354342743187318302510091841826926885330556264196326036230692546156077178161338504206443652004290816673980679827138720132785923028768288225140058688357507358524930189935454431012336569531438699265832776094387785811165056826799568633158980744063123134453103529846640060088324159004462812543236898638083258239066508395828128203523731159678036213158610959671591455058575741853831053988167677954887165688614117118761046103496569000303613194626512369869006957871139395422267265292609747722400524621538278767882541723213446127944415688452115845520454106997532112891396528575531789241574275054252622388389589535161196528224447826888677523361075216035379970547056651146658515195949578342520093121445362219152110986689019414002718703594844685874480043477806889932224428780817516323892836110209840379765487670690896583601234823868407622238821108664206150412130325332445273041868566890343662669407836805134273476658041677016071184044801346798528858590080092615883109180220307108351490531764211498001283252600263350578160662850968067337494794710094822483574177235096839515339469448961715721699443173600937085408285818776191597332608679326058166047578417474380820882086648665884867672029835868618939449418940877048949159703530091563599839197796305420778960203920838083742978310340469105444516177127445865616756982850558764861356403871513697771052493186639988465293542733957880165794525732066934496270903713009597656106639013529706235411163576067688789419371061314309563561792523604172993549175321082026106531122653548245948399289407752239557045265631875798469076682961913075104513862489173723670616005417703247582751340116226806257080681126640076223935879293998794637067052445836370281120196052673878385557733792209270706122845409361391723191838362586138292635012679297815548477920909002512869693663927958267245356618036338894125637217444947482166103496237945754593476570360103827135626936161207588747645094975600825975725185188726816393958014465823079891928623736614163800131513078209081939898858422624577993039222383869730784828320190527439299948507276597598021500889163095914066450072834620020622103799366835664412490278356087204448554138995560711271729824182280750645702716845693592067945266208076719154311692786880775756366683295969153030871623487383468773395199651538751170008203110786337077857666194485511730985115486035369368109210949540875161314460882764050551602394150461203147537761489896892671274054028815582305836654665407434518951474839726913279238737186535609172085020420874467071323047828253936471875997446098270025644353855745714640583967351960547926975370179420965699521289265030693076400114993225449532134697046693649388655723076781709511065987124875057960734116584272920223785950932817254288393642574450084407317086715122303836922239874926163283104892981967338237936668370337328189522848655067717894484836905426620024836819986499740800388816988628516680918109708282658875758916073113679389551633324036301403935891945447904184550781834211254974735499113277941871952480418880566445445017503560526163637051273061924831185968324020985367642918053813938561547963084765249424646092770897979376922577773980212186072917463197447761504254762986854974441778055174913528956456185502190632938768737323715201597664800805633381263797991656961143966939757829504485487613327648742152191561861361436452436747194758329523612342350087957903708427739056346623460319569065579722557645541419136566655950806356945095417897923887191991748216538200960217707838505596484547091972373717951609167544235023025272306717030043551029956789578049151229464032293066278582830150735108120503052766747546637725378203718710409620158439241700919864030771388747181634920439302356127452321450554657741926121967053367806460616974409247202290871570595892141672736796988685448023709594007793032142697547763017567849792846368796044949454975354078962427247238911751725923166635962362867709983911345725098144068433867620081899122832450430637895574357636814621325989511066776354687525294354386475899533040550105343502023794816956310970029724018760303824448359838625345769780417457755020315852624473949759519311863318585700795006430817009613772254327258804370694003947656290547014313632985894562614975711213381851202260357068620835238712538142219326597082154859015190305361537866191876644428648679093428987082866263229647254346249406849126436938959240405410691860995456902318099024714257619371323763979298782774870152189979012956446501373929486237635023272782699628380228272680439761972754936651592336445060561828813218927278573351683956793977483699779739652703388331415149150220100269344798667901062529357131782675422662128226998933218953854547087765399257952425637713850849086987084301995322226191711896246191917422599047767198158917097940707664326180018305993543137911842195244443107108202672483577545671820969700175987916141069663961077706121319039898616263125491160925385837228703429875118357022401433310738961037124006819062604261661776192860264164675398625146362587994581189062980214290980575345931102346673961402805549765639464753128404754909374624759264265338619255556791770755099922581771323938299430878724629198753522695931517557777151025735394189391068978013009657510077673452128691487673030182248222788852356190469608242174972453872098111753303944379186053605310991667960052181369964789825884921341516217295198650540311069190545530104189511193242704231537745590468992659164456117039753683431682709346018083202094584009702087220964591312390132389539878703479687182893530012305597939273978771466548496630564308103843291519711072536006403588700349157559089864404741406003012498305250424373418583840287905732249400763672194778465739947010845361072182075660423328499178103848649242333792615735452413639424053949521973626054982710695525544089612877377989481805428247591361536732868248291472775098222223040643348780356368380066724607245518334937772171383648671937193027509054227560053503674025813483824158896339675523829585351030527624432585422773128336772019137082567858099775916949370829178102005315284009695280974925726219416381378737486372516962428034906493870133310078475189092927031518516412884001544466609787188762271175597589399100657433684064532782546195532313897516998074460786606323363136675090237740861277219932368198667870236897578356285765578038902657309785595421154357463979116216112810052634965726358131408257449534502803770876422773040356153556345298287116404547417044455543094071507367903238275065503039087890444566805291332949345785308307925007462463115198103205809341828783074433852834833907506828601524564930339762373647112061358510101836024384175430412477338814654697330509046204205545893035017549776814817156725597612585659452166991517905288012863594825974002949818606386534006900156091716431120268837443659274280045381325022202041558819626636119656190895489857672664607332059161800301817612572636214535022672038840198956470667955538799686059791324643675479434102410648692118769703760077070701733239884410654202893088580991633640516986153818490540235353927993275735488418906830375296239383753540345603120551440104191906340695499726139714173698589158759626681820607588908932840052659763442729076345630966077695712425578309829639776666924447415772592254553674793081863012561798995400948402776808076358400380882658296025889229601426386853103470639670510794595420363618441971879410096358227662604306033360519363731821680123376841720594171392580724827267941222063906121522812685380335208284501612036279413041997690482132691896767466823060429157553131357756242112802969880428551902598388730241156740425232566480971563549677430247491038879840738595309577966090956986480652499625747809852263153874895440439702149907280230478638722578515180151151242324412064603436853339976302567126804857923671742813167963155160710039366809881995542557357647247175977228669740294677267289917630846443437068979126482395205111376810639223861865120908463136039666202644183991151880308700941209567153675348364131991877480653162426023067411703131479039417371882313819760033960884659058431916787506778819668384581631917757761773740682346542651382283018387184022083222719700342651667611868772956813416509217039834564244998249504498838619229152681428856361041712573494014626348029065553932053571246864864356743647381988620404161936567421088216654680461850114546675564174559063561889092623280251961081914072286728793665647738485269163589463954685881479546586619049996099655228441365087249730259757092270244305251520869687427501846865649263495892737244069214317836521383467284141703119013593166693952124044883863496462818738589293583880482685696849370642504972939937528058914417560971312794744134336639267133899157687091568754355054221491077837203588329395378764678897258478538861578287012165515773363915196160354040236003218866019179419060859301230473545497575817453695927706726854539150759503937552289159916078516884366539780027278809315955891176673155325251858767162877282348437926630540331571375155187522459136814236884050368897118867513247147980253958355001276538236646786899880438297109935778497934651749599893291684519355465576666706378700756742403378253721991774714325500347402508286248350917359772866981272988785070861191163936230299227591345832387169235621735313561363264072779327389426056135069990178361023394806806540450292614217527141458235220427860142382834342522648028395570332541481789072597948653372979638603696221387543160734786719644263695656371651919118033994039296421490768853345352981545128333554044786510935774735002589938434448835733251277714791383318316559921779183475027345161267355206354439524418769177234376658503901158875646559495561639685474829545699134057833869030631338329871279786763513234870298746082747322261874420832494177025550578902715878166992790711554218826395308492549958143913527973747795428471735102535599590955380067815942460443178036328578427659573314311025772012055462719901849179205619719870153391269799024911884860688708418594203677416900862623716070165860330572616900368672586157289580438579318001296974665590126388379041597332762153057809063159482440449814075543119325000060403700502621180732267566452030126782097804743326245203320921248513160126982593244956076717079716441084393855213074702459946147865552636762328973902340723696292544277770470314206638250671890827619316165437507675286129824287937082044803049851302224126738944490798754561011032909435939191972365409549135138809501424652055885164217059152181733386285558692591847165119646014814643296916632703306736712778254608019767661102915973790795292299311268078849063894123543553284994174555601771393405293281534840587500708588785959989224034551003047404227554223983559720641688782578168476932439463630835413533214053402848907049807296108874466288301362950162423886863520801269765395216642576671611444072046876819338504372881105345526018953998226032927086192392348943743012837588306772224855355111775450283191687040770567848309578140471663400094812664147786665593225067965121731903242201561946395983664669313589793668504103580856723271855076030931211592606950165296537238506862505584105782507761780710934920842486376525412514262232820249438266111337621653511752322080027452476318728349594446924437937999866994061631632379580557343585606922150676560473526491751332691815411465181371435919684021211438704281681140415319272950076655561336664986833751134131872725506584839993670763818695069536356296408721114457699972535848427361691409277115494367365579932552924429988574332918944002673067758068623467529483470036298504896772334604751478939548412752027569724933134601991187072410659614123163585464039245980513225309747693876693970220333752923915445540119509141718194099610650230527076198088138418280924072325988588488577038028966245007862452627303683016355971186744008674724212263389349762438312611697497870357054516976503734496936827769207162704424272270429515572955157285610081440080265321626386609870520507068684566088222306894143114493093005544310312812044863623108364169645657620534441123486232764808556059559788637017405389284940881328260918793313300950839245695927376854276473548370249732434201253445535195761007081388652552871143529690272422944646512271963905715340400067306099101170364851888665901047180322834312496870924947203497601431176177616507107322713625304673546171493599257179807762770161765045604362042024967559597881937297273006206137192731631785048312107913879698788319924046417725138982920384413935406826435114229098267713786897205427548949132683873581973293252939284553574777563454160297144374275551929706546246588282413951873124232598764794604472526537936255367589424179791594602288827450142926928765947256873479991074793952778230372623402307854061000626762365130468922977784064997060412563159649114686976392166700534794702642851856965755794656542401853783282834374959523720141354016788799586249483475587754078208882018879868238692833929257788099761019886269635151914622180181005574242566361189313313813137609839543071909325038791048970293851629083119614162599251424566350092776266102950514466948243102062301231047838743715007530382236221171738235091715351993233426876684465459189319002587491104482142211140580305752605811274142991162870795045445266540176311449733084830692260076628286340007719078842291609177723035717210138258403321590648787202910502455878865066919149416927321009547365550129128205181657729769091853241563668246248094598142435222949396124199565053031834414514744348944336168009726410031991586189268413021216844273112860418505311538646169508561842198633613396833223276861776175643500146842839287085217308987054903783349385928984618717143384770729564585429262237061895938313753559965487818881999337924040006172553679287011974615191070087711515881875126539510315917087665863776993099700817879297175724771614036030312876103292534637633062795353685307203072726287265843933882953537854057663769511011516520199857072406010744545749353300676514673326494079432859844315831411992212168489036156062673095243625802536482416976725623588335533424166286466450453762832451234689901581666530911347359376132607452213378558854309431073262905173451997319346237164640940723203157768891701495464653101070039109361920332775820506030350062143518332573317710125602982032467639986229122234722445273401032600044655775301160600445787359816590658122057425680936187336698990003359777011208788404263397339215300725201163646771749226526299143737025229393661524589643020666240657795660009705798489961083716497963491063470663425268337682535863689043091236059947746757820478755674302545913790979185662717659819289484317726189851583203493473968603041900982786147597343253075064876301459857300526437812825628748305341418470438945538545273025841988063941621911987017706907202803564512303380541499916274919415770644188628783406309755404096465860583048013632514738291397514278733733237107959496851876530673721439731060600623511971423021579582159255287059781173661834029215527120659785791233821025999043054769833434394635209288793914326272179162896467372975350202960669383401555230663522086306990394090691067460963848298365673733597490724839256154074622218010435225888670199425975733737491948103619186025106598711672227754206995391211082965393621619495335944161802894151846659155033595396557170519217759152690947626048564069075319614388320008958894981619352605658844746282727413390245302677801653420311344936663430898334028135727892925832800765318368877747188136189797335263235296781689613800368791835988139742827925634052141932343471884693388377195668631887124514470703129648338894526001266938783724087231184097280777236935635268191558508599408078400341369813956686070626124635728360935898719741791936184032372838035393257313216554039598564312766829554494078337275411339495732006529538731523443632280780130096335120595041827130824226212263837160671713745209140475273073241597435879844986663477072410105241245819500729673565941861632242052624331847117110662814514917731771316142307586655149716872901955183064829500919811748877120654203417590061828107638550164803249214633120256927360709325102639998597499091779428634140953190817092536951636452887998717978997347726677902820821700134696342694582012142047491169427918139348309323370707930446932800077214741997940616873026284140386460608907197663940661246951980602447267629678518793734776570642632711358101916528927644425562156172444655216050772237441186280842783507103041986557090105389107940505343710328923242129987319826929486278013149082649810446155850882277826074635979258085551117446584415425534733279618869840727565664935670088177414654487458305148894816868447492473193496479592848076120433101144159190027105136883747722096951235824333526595170384006043025854238716612847837574444947968704485484636676899834048440381444502204184779130322851059151463711476801943185321434750665053548542080999012113633436759395785147435222700392471424981327598261416379127153516649418248657992483055952766873677884569743196605294297319643488408771073968700665661282415852538592128302538847839964351356894962362704569786449279015871249523432687601662925351021172465064883813072587322962706337754160054696958350438560703715052541974431731529052816487224979751348727884746752871060918690693379658456460223629831887960695879600120233674204310927060542781462137761919038270742715388549092731936551812500557014175687794382046932791485671102336752026462569964869698766253366764714530323913577294900948236042203782013742724258722095064854512695881529581483379726903680538694970728864620271899097029620957715527814009346987341987784733373076898471730444442796515994156939879150549310685667509942519024076800656942240121645558092402108263736223526415054507340920307939149519001832224530309682807404516191302228474639706437889009962144337273795244014284369218497220840893305779157287286030053932328879201616193383570441814625047651033663856707426121412022886979135855262642119278337922863833570078637450035884189080257515596458574027029388068990779570113031179470750985787208095124573670024284527077084521375138868316123347806990812760736190640001355513422066433669081564222848591162018581935513481578884725426278258072230990106439293337118367207954361875832808272549515990617975186197628442477277877549322735964261795199933202596971269842733624394178136264179399952927637334044048341507268732796522228720182273120098741640592819393195364152133705034376761255871033704498182286415529300259728855236703183723162126766555287934766991238853340169203800338068800848567185127471021621724318279707277174767592850467914321021005447824870601235113441589529071809128773947533946616147762356805860609639543011192911479019580340969192485177035224336008495635712263523417584290673192188427919587012928071535537262365017397639104032036901950624769818619562992188806938492026325194083300550665656293195577805626799848547095649377067882605238023614824700304272516836874521737548908863752836738083449115375547226139776165313062321663815632904189214594578724294498079445711969493235975794001951407966032713197313940779638167608469042192413218329085059719108716292988955760957841222627443831546082503328266253621335626679669857791784946234600879474085365286553225661055740395303064942327419280199963645620770940883077327255864903501244130891337935593351238932231876810361311437106223612328275134643708775244628476289658876760015674729396653783124709511311233243326008474009746115365374098570704822621106061851223152005632432711282720176516948209184715686741251152515005930856332371506366756013613878278600906078773166021742846794276906350554111158763330826651585806016350134987485054499702055513466342341907010860503240545754603249354653771489821675681576088850334135309915564311444815924281011420519985910377734421785857067937783042134694091735647570206987811755978793532726894476424431586117169114613586069168643174820836234934679122290490860700473146712796604140817795716195885490575045024832319938893708912468402878747389850157681736883283845769391469937621967736153956314968803607839156783700437882690246004938348252434076595461415166308756563805432156132031596360359193100860013981171044685402641355474075627951072278585194389407931296409827547799999125226022778377049174932998087471956802051552415662265440708627718208767280606932843270542519553394092005689121158935149390459162890319486265679773414999640100094688566337337586125759203406576150622191230667726519716504196708160592259347310842146898942260717942105473753681131798678630269611922737749828011892718004898890973551048566791916042563482783996028078117384405484102405624933000546978602401706348449933920164673394709893258780917912529619845597859410821838430933478499586635106698321552853869938724417182223505978398973576083320364332632484236890022216328573375695248365383276013311733668802102808708494268873130181768482382406046854068500116932107617858822252308456558071445758789279040033161786286059224345459456717325721629890605080662568280608314795003580408307712940005471844685109677896139418704785779175846730604000563492492129870008596015327185149167832253856709761174359103642364560283801913458197899074937707766578537963886528280529742444247250189978539911360648605785583232748246799186643160428916185665179605719558328334815587493207450100439920044066701066236514417208491107523402597909458086454009841769568049820163957356647052701431013829596469006490123167967147798082649955632448913648102160669935239509570996129446248419082487729834009030337141949413625347675484252417984051675659727493088927186707479022244980826574219360671126283775422634507415331210017741275880438850655978506370281572131377994598244342458694888296558887144809641618946933473726099415845515049000478963370683634069225521057498984566860799957929756133951618937259644992709867453031085472412078478150494828536562841553048689407217328434492833498615087303361779512512681775780028583583008538627087181248952982594420476463513992146536924264056545409512248853530538194774647105230462309220402421868864504516204585837619987442808651058808272659617713086427137083142752343107132444809060269860476881282361450030542251224697750886568221808377943419432834616489010135893735130063056309636649963570131968934140509743080981905565340277411462428662108153353213269388149808826135631262167551037196829600755034544586722989917453294514596082679023597532508710107351921010962127327188604423251494197005612663650360178135759170860483130549494983919592061121883601203122347153177304837958990914987932066294098598889226656334022785149878958621538215438878052202683734585378318973238858272187294324433675619305405161922715742383375735070325156822861590482080540653226960819697086519038071292903312885194383332586117211395270464698606373277941416867516098018868825903743240953637383129147516161560855194517974614146256061524256369069539654627994572466704884836695032538889851040625820512442412161207391568304137989852188059381077653772200191487368427582390224369907547651718507470909494697623191106025059322673775464001216407988052916248021012930184138643357587779871121671990611932718009900398832750800941591414080054483187783063259883324958377022342035529115183153376822073452992797013021813861426115599121619354064601558519956307864022925223259247319741631310256785970185000733654737791133754368168111131738713134722627912298443788331424006165490917460001494185196350083705815643684737415472524529472086658244496104059518578214525976059208581438041143461992314783646959217543221546274049249815907116005920647548449573528319556016986977218205538655987368945798640671288918512090259413866024048809739074036911655955548825727845415711189667502735377455892018650529497150632665940808515312762472996492884543745407389723280255208558042327633225240583935028220167651924872946192235623674558846489327955390619581348984213395380190376963918097301596615924348388915085338381714203566115642856947059375833876418668291747407130121545431678867028763604130006361522629956186674000696138898495115338716947563575964965145519870551630992225012080571298157569884628999278653392078872546540087225266473134613394664999193173982476070705687093854963493234685375658185864530732975776440228947364778654204467191479031936545737679286016429569540628752476824932276747373261659354882524246604546273949574479284405227910368635505832966692686599795213758764670081530058860874987241652164930951803237334963914839461465073368909975335110048908193145517356504562493342098691309913691742400258363331715019810425270328701998005613429516037400756413562952609495545295342223679043806416293540697888396363636568147315563500770859650120462351106320988251324783283068997936562747092911786456627024303738448454301400424399635745219307300728024925437318064911396624006016024508457354699769748688266498493987249885621606329101528514970073851580499928207611651202770627275852776879153061383059467523414020228417980509240721688609188505232533684899040071010316435930853006355699115704107118153740850503693419905502275177187705240582555943773190343442346681578967988436773212443119903885352052910034755348224967301120271892014231171550829486147756332374115472913509634155560121966852747787666330407038491814023518538060307061118368666960459044791963860510964019514501755071088087102712601702186094695141951559888726427253841795901830618199148587297368686775900926716071393385052677736402414486567722212876013404121402410813078139424527499166226894617700637136496677747772968686379155167175994792834270976685094013415019822709401262390248238624985697627119945217733865848067409464105013078629526235351392464447971434841491961539544481341757416391852081520948365807353617978291302617241472342363333339724786150401631164212678783568366948667866108118568405200903963677159725617904780721806654699156993380803016398929207662983314827100189554990545483705041337843618546337116804192251508783437020684531729130742573854018251771140069102295732610742994659485895045225768054167569441615804274129954930039790770940785696383596870377115255913154986016863008152321284881910180712916050657589216190590046476376763638544607156030608579256806869055801164872340052418184348456032175446724896295903606095066742665935710507462204410922305934016859395760098293447935175785092314213969882801357497865257853050780042230454457838843067689674011745614559104745647554788101828957619742587356248126079185976863073420683497486506459525756038531620244739227532409174604160641470778765695661386516664119314491999047752195261894479140922627815017098455385034010313852671885621570407866186383232816954028104176814025579970480030550351718459883336224615903686476467631303960692219115714773475057757543935458827851508634473566665837562001318232386696070091895156290439711860970404199126770899955824717630290509033561845171856849603285309950247699947672246062654142650774131576805131336820558406081586658819139480366178033251172101369324838451677679066713919832316568515864342484322285565589546846948329565747383580518958372423014987598664835166628190467418699487278087870933473158399132120422491505702177490229567276816928936259579862461797244353289108810866746358040733531901151838607557927788493780990191083474415129011575517806826303260029581257704967125876732031609846448107801168581324126778427580041781861146906693078498428558986140600386122588449198546432307320518092989873725205893258540078562288831404583480890273698947202380024720260389503014427786535524006178615799239400072327479656816571411722435699773997955466905093138720819125068428938049651361701933781560152434102305576858428949997662897061804777244158022538415423986710925001065702542671507665940470820235755390839387226937351815109809940990694720455758329188237013389939518405688765961461676049077721830806510100892069638200729680397417338407806979066740477615874758328356931908438236460851480517230218265292962268676270359873129749125710273323099075783038312124635045395538893566200838771126040947874622817845432108922624006491461542506824453662245398814697470311428772515507029225134910119324883213818292032372041642596988475563819217784623030157434889866164844416105629810925692508124677817114428664813200886079153430337147264238897730403154172374869381883898968018440689839782563944334328635464978379344396874076713107768411253254350352150446154127900330595148947839446160415260481334763696092483139924723642659596273331197234311679732048623168846373897109112656206003595446430266188237861776972862186471264943607560295503391251223729261797770832227950826479867975253108557809500933469598048902967691239936114980845369392147767534415667716516931368698205502391987841614002445069998659918126571797799613634431926133251862638838394564294781492703890534824499566794718855327915025049150681824355905781352490327736537687789358419981593147840436757950470927208236887469267241998050023020400233014465389753129403531990093647798085679518854095161741235341097562824821229092014343118035491696672861520496381052308969289855928641472563677862327791879515073213068581246140689385127797612098664728987814298928692970963243801672490882740966636647234032795698558344408392553774783000341755847234610171059860031390046338602377685336896253530695814941400275600483977451118067190390474776082902633367015405656377653556416048810303302325837328042692535055838560645245447493911147382027948983287272879487297884560146543295513670154860079611842358529893725596433667793933249720816357505567497061048252492209392746171656826565438170896425526314669321102349286000682719987932541004432887495742215453632773769600742083622522705420233087741829774215479469474538791785856126793899072957900763727355863114882141616809384317171661317248232745734533100674515478456229979208146030846226796987850659071572354644023873063363256065326918812844185480818082329693792215553962611372053027502547853609203799473433778854521880230626100650887217442762759397463632443895821379130384257027328288586104338085940893861869880294104549275121334228348876279180087494145753782290357441036313168571861858976469110569290590974434292931019590389669726651620858052807365664878334101096016610157073772120195534189172108325643147747996604888239707555460286097507044109542399739894666863263339349358933632134561173265349784255227226761679864038217536679003887976685718966778580877158952504308040463681762636050910417846022473299196273728079435642724074783632818088325667699185105373817546780841049507333685420330009926367302765768656232995058720579754121836856839147607598560423494757835460684058176414925600671349432541033230834293203842706678811263676345098336904170387023301508570755193003589396050693179593575947781485695653361718386041516502452233449515135013487435427928452204215695489056327897230142286608155735007843952524829859890646613332411672274563075342889966042415790541071497541036920238297261657342678995815623296180785603539701535248224484840075493826712340346492456165730640656385579474500482876322259034645821241346020463012252236863157427833233122880331235206610685866356834636914552625050571824997913449437100389440075264332390598014429383390751222176566985027773585200482954995039628363022855080145370837092266249716815232466187440690869944553492358314754968605723887790037371669211881052845302486634871914071335842524250780713168441637344436071419543388947701509721386680866029540652639810215940569811441713873018394855266931908711552112949082505803866279004604327444154365297782466440920868279856015894396487254353724231555021281018478580886075133331049106263603716417866977887374616792571269567753619732172434335183557133031564761905040794763294423621480620056398738307086765719367187619768422100942487988665818481268015596239290546241337183477421795684559354298884716243993589302049074371603570591780885271433397999231271537229363018702953923060211406480942326307896032536360097720077264903432787159040110188262445715056942841800986628732658575027081781052435677515908011809824193944440589195148708690556067446017025592988504354741295558187477418088601206559215580803978306265609303313249314589082481301018767750361519570640110398652657536161712288522824135796229244810090757508686133733981468157693630039966834724734052833567998303158730614249671997010124429061757156268718382638548249618588992742430701651702838586636847106169883630893868675896760700955448795824733030496708297795921157536615704088322539333807113646028660192630554106772042122866362105082622317895804654365227826139695665517711237037248145005014932108892543417782155152923928459320316584146585514364937942276478439090392039994618342509512806306728866152475943255031607597274366820831228380693756679953672240356707440231510644258294515095063085851861059031111677455657639076140371519478636630126716915806102621872544119099256336199883195249134790871690354391874932992445003583098929852000758669886974170206197374537427371282965946682690294881012147284559389611012292989041982009934347819190718109842068990762665766672290752509046323578257612419290628281984787441643975722667795495371238284343624874781341911907187094402120576957114729183413452991536756011511394294293639406048305451663456408353457787933468674297647883255471954288381088107337133317086721334061835645953819258893254542289088751027197684910634531612716554690610658194734724686292962277251362184514032580330204591571915013326849231089303963765211624675245276747278497823311983765946283063761437155334391010473820043049900710848380721946141019141577171028125893906890094617994767274879986890685677629871930010438785303761075444207722607387819503672963250093766422789338738339289892445123416739804169101695538898492926462781640025336280724157792351999981694486448725733079352413217937867713684945671116433778886122818866257145654370537997163655502797561657007279778017454844024522644360702837839072742569333693980745634236392803223705539785031919146037497377561738133745354470493276184262312568756657423005461314112376451452157904012558176001159212770929124296551816699780453376150932504192707106318305042118111410485644305488927556934504352369195904023567939540034965057117478974445541688060597773887669867882847397015705382466070225070350644969108618266821122861662031754782780208771413299654446439700259033757115910508395166059363140570103895494834455070353031172723011918818524809327204825073821558842044265689923858204908387433631210807512905503716446396971442959174038828324158447675367754875412638015280359700145327729694001517092344209646780111448277945466497051857042907038793889046539794931683187606504187311602580694586221598396073903164366300232868314455518552918154188442361324955157580915369730404997643531875420187756138017912491228963247000792745432973134165769730407385737716506292535075963127164763076797711342151627481612301453132130620675731085980703696010040159544801124271062383123352617030612328573381724399628730602914483819337218227786348196254557458739740477701155454784334537128991592171485020542418767689054211331226873166395502925982167845475937738874979180753696203644598301757260627495196813687949620635115469694931218573606491911262879645956587884641489044748460732329810009082503839307312588683936078695581521474356332784506322452121885713629873275207063966474583898731851166365132220365713639167443870109101787832469001063387558128637476089721845158861125046781606467454140012472822293087223059061067147272920974088990372091457602185026924909659127716614812042270324502710083962251914472948376425651749956601415984708915620330613999670471842716565677735364998290034501231144711883748439916120647004733926393087630999832352303866567628077476260112834806807994865079225353035324874723079006740619515650155305361086872129418542191401165460389679982626128849261825039532953547237019217811842972726787346157177657979240933926064784385564866799338172853606572928108455459452526164199433321025324001781958507072529289030977006674590087416214313161399695676228836764630743224898469216277170423220609079057333295427589503404172089231607785476254795195477109943926874230042098352991258803412575747726011316536482022266067446545777438218471896669994347791203727019105989409536403398282398918395775369376327100926357984515709049339930084461357034176639084879185734237162316984500522581222409705257003297909029802527612936238013938694189298914821274698748131379101734083034832539418497345180555367927096468410522958871863515029151579811926236838894942759890512669390015475912348478697721757243559299837202102787905697635142681164674021076504573551892232221780169472312156357862533696063459210117615567606744463118648995154167136835192426445108363299999612648848882391277704624352995050402658901000343029539133279444964993576402530140120880074018827137162994109424590501623990954102085394705690616087880656212675745271072110902194283011905459087048421337899020268127142118008728018029995958899462846813241867767108200165784922303974801643992617481355672080476762776964692376732287485201376149025705082485007006391218279837316531542710147304893422225015169625128377676974486217494826762338899469854398923101084293799551345125016734343360333619840110792074090736997037771539472725764053110037777843225651604736874129770346453855108771568953284010437897343508523692921903754863120468179424782750984316100362377130634043776133581230393197403609425887804393025334614271950357050980828434186723339513082668096716368348106749862320610244005519523141925661153895647001494904309774662884677558303502297217781506278764051986597079415916022864413899907596038451953812838216318577446455771538020633001893955554364528694123008346842806674294167089621323348280965319551799047164558644549297816130380069571804551393938260053420887194445477636103907478280522853020743116097201813525859100447804589253523612713338564206206140167169049075807565645172093514775908751851856610928019617335712110709641236010647950963741423352275699585163350067274941341622140989211905963879591666999721645783645692919636312517109301400063030780105738594436329770967649655226104942715086816700513120353557337921454628368972632307481904941759844950083670068982616873434578153981881038906585339267675884358445062587486391835418850473191958729972581061870935246994355022117856429219987287812341362116506748247114852628507919057343994170295024452839828631209812302253189262622597978154829422943808051377031494606329852102895963026479124603833405467958492670632238155488682426471375871735086452819204070430754823451965300925873823710180012091814248753914556660310678295819643601696582287817533878599152490505396918068781182151223683685447117689433909978943814031963471515787646841825038208917353342357363227081240007381287143749217287843932411514167537926185103452400432088183398555768792394743869877321807299992180887618179648277739168169103387573605363592924919751474538243803993615376342436609268611794100459253026864351596276576935843577637431881228838360459520313571799685351442156300375669368502882041310353140100984036829786477665614613637923348219237043068384115656624689523114729898802550194182691179774405851624921353025252708372537486464940375684858636907797232902997499188229401240409797702323811091746469979254510181714307578115187986669175420453081026106872620309873671264210425552415394873052126859336432556522067081752458778366019229202728368265306653216645379748941671544681251160084444977326234480934673356236880109027432496393904143382842573677400632913798188991002348675344088334980207119877296717560926394788290181910155105061508150631275188014810162892490311412163941356216505454085583528716147268936659626796325082946860461713729369998846285015583081310412757584642931626735671834963359348946231197455256799744053439552650299821292209201268849196812925367214809408856122480668806282404521412891285418654688173729154613623297167704788325105323208501076215562095898929851192811070898439357848915911121492165655176481329384583699833497836690227719644007475900268444226098064780373435063908118710305543954573227138325258772222064271986272127855566551087909821919163227101341052404832409931643661465473783088576238060832189013299026694641893899866338961158641196512659761263938558393837012552636968375095362875496900977235500202263885071283249406765125061742400083796474354547332990321057399324289941033447780639732808299706199984200277622925409437840944430767457148281233845389772054060094214345531478874148875124660363270477774269236377757455969524230148160544362986553164176425284741932112117508177896006943458177158568472581074660320945401286732964784161368887793151358489183293427176698208474036633894243455316835849599268906606924254671744785614670905651329338683847437807544466505812826154483497085312894334996377077122459955583568746236021957978700409497933962002001648580576481696981898162187473088229490168004194043233268156531010184239225170192066522670934771154000012173317517050784241461970052350167249676907930971197023471202523936458625733848440062626283914245153677196139777420529917084105571521504932668517352290815619352306000839390508640822235527534598995596741878904567713483937610934025855890891160020896979830624173380548693863456541498373774331637025351016832740885964627853711836470389732276614562178294290579193840021650353426709817970635005544139788630411246585418290668190948304002901055055885476212625216100226946172266594201302881819224520438225222288325132562127291991842012989180843124481351924967868101244965826259191916822775907062823719758733392582707274324472207831230965688079710220240432823715266048591551464922185887923769813601507545918634669995665587488385982360395430679072206321307266956227009913667086115552328001533887151311234586546369403793501001812660562496041951869248936533555717429066308965704822419146322309835766674167996093125972859439737249679118239954765569689881795883946459050672753425228621837353420946059028939561664727803084769419510728184933103966232584438376222721382294699977728050661254982371558910654500289085449618891777058525519028953910604658400291222993058416552025612642045993392985877052639575907790531582457409156426776690293430163053290739422881114244333100664297284537722850060700215644907551432859154303207067990185381406595667335395578458521640838474218104212568019718232557487487939956231711118998367665619215306462573828910954350574146586859918505387043621163589046404536511729734219332264037430129109527564656850273529241562343600295680406619225025259796683091658766073812534841900098194042842386863375385329426223865289162204332617716246429024832417533788602412954363864808967745571882065521820366945800983882132522537574505410609842925202953820808375886571361415696199656689813709874415274046212357045432173898205437057995213043134303762919237824792456495329851485488560270442401284011119707455150396582604325270973706334463844478188628505689818220216915439254854696428804163701600694149200359052203598747125871065153068769784320631739564194697605086796404897443641122418985364775224548533335944247629823815988016832142531895999045817779889470335383864549344468379489154704955339748188170819155369744034273065769985696973918224973241537344883265913924806621317211147354510676878766717763092190561884826497965910633386846198043854803433007650113442622543254590153123233118547342287896602902568870110801809685756292766525956053533932188720155561460982742178282128444699749060375133534974972544349864884546083615256505844636392693323302136443733564247400058918502879856792907931027535625615930718341005443105845316622752806080971355274442147550828623304578806938183704430131647589968320566208911600144730442119512079162785318551723635957785741674512313867078205291734683851783333579096723039537366389601190764916370593444812552282733528225002592914575947812683986055627783203340045836908462699587106019893028268230820573026422980027197326510024798329134230251734009305185629600395033419144898363442286922804325052625522405855005228578876477291400819296546029249561238735134255029302287640625550739791505595081941849756032626626503330905802379367669892618612137364616264888098753322064075407766827291160569835622684549010888471933766163053797380517912583958073548558248677157906225143740493584230138681201784102495201955454119381278365043053084827793342612755817938642332003883647499220922107782793791720310272890805385171612233151521249084235091915521053349162188707363145934523083279338356659388069780687535416269828986707334621153034816240127595007606896823610722106415201371831053142228181586655417986890430781673877462545282842495366652631644682489807342857788762692395710977050633290211408366452766769541172168212321125928940783474506066762883440301629637962609400274368780404934942097444607565761039397696869597885113511563982316286235043979922841891400802702681294599544307793937916682685991743009095842138289281513385297381416770249102829016471592862096366843430548866644314373205737078718579483971925398959147978301939050529989661998896169084648406907373788788878408201850444891266702553354373709388427800072515170518534366479500560523231749912422847864002026593691465299597958298074012066086087969121641508265665155685542421020726888357223886280995917446989577095452069052722206957826872122927927375125216555393969568900380938983818555094731449758407366437165096601016233321124038543526940130999243641503611061985787430780322299877485866621554972784761665589954330613984572818790695853805865444235037567637282996857526589995988591566020995740275532580758228724420244129237070978445812864368143476215508122857313682958301168104420351195627768783315148787129002058174263220197489871781639682106310456032383209890427968840561790800490492815046206500178664015790475874426307629717767580457068027756201582091082436392386420373217692262592012796553094585332425003792532232461923344053313193258006564846803394158653128278588949868428272591707294249356548741124726372290498364398815669379201301918219990824513869800901323147993101303041592403360124786133728952430475228310949746764943748795165086863160868687229746942737387604791509349873561653860371825894315951960401924026574645736806888824245697863706256600039808449455173202562841124215036846888212969996113561127961700605078081374703501706830172411922823732462398834464544654073696504812451320647585171597034440050284360011674937529688800804852964739614080877285169739447703858003338507156129146256463405189929873529386370500805042404838327804001519705386621894302378335073167437946274773948789090360181541716303632449248720833473785940168371972068221642740251698514534453398579205637586504167179328288638186984616302223304900952250147400543124899617767410095739082134998055489655270830526195105269951933934700132440256589204140273674965400217508448283211176539587369710886820319054296425308488310565045827912763176835269043020995201265203053248270766135573701483784738692982892185896580438965517319385741902581975711134845467531279281060933790914608009913495968470138895887454735943907352570427624942750512074479500194466623097977862176702077145045414123028048620484858893535077188238803662267563390396548056655298624195602577622774829838482698768173577724055980751372306241741532774544780982510118247222241840003046977743917950779391167161439445779337358265613906049680324877515290044143355663593522499382342994395063949673113499456784168068669842960131661805898854904984453674316912156272739500199491692702224591030363100386313302990316736225714036625184217847794307331181257630102965201672581157351578921432139400901396034604266614467439029804722433917141906035860326311131094564426137756314550078120999174287168473118662264900528195954445532529802258708427266970055041618120738361277472949391244096551667252029924023448812205884846309047522768226670988753679231396072183611949229767392094321429687332374995944720504364036622976456076338665708845424737221099929198117959292374933147924701614361153265614827510654490454779417142815542592533599392878179633905273728230615464200459957447737723196964100403099191784947562634644897229883409660723176109454998051952787623337288413727684226177774310385073123375541186923114884369967983639059244661331266880828469992640174710045198531204483786804922130844981399302767530016196658812805364843502538524148254261087886065821676946742083602159792924673314725030059597591240447023382708404712727754905931021233944707427618282060995042979194233254656607553351086309593062686573015348140436352512462741540007777668174871400749404824218993225057288085122398245784153448557125922550859582332970179406657871551486183182464940977911026276287448315439025989591868725286132136871493859474466288604943368007980735665825532783020103216466064942739408341255334130852783985433809487547372795606227156813763254631817149512603727312098095398671425933309357413612278586569446297589303146226170356626463533484201207203507029031330515016550715370881256290835426222313652077207391328684676529841058383748270028343979491857093572809754649354915861963627055145447465061546234040627211774143517144979315765573299789590825953414309744714940623871855349844164450320938736445506696921764778199693739256587579494679529674101628844859789921693158112986384600567143577652227711124118300365851986672870802705856090432943044836118207473502414179147718576614742021615823704198866548583321563690788591695290187217697951588166627416402706835104280178681423396596305197792136422207386446117943453637221595994278348251050538543064280027725301897247693470634106377510305117632968635454050084075819339724622188999388763197224525557892837593105156612999650081932729972344799858669712063623080844146561315605581194244790718084502021901421654712103498383345206114322124706671403263912484150542871582495751248103727827475477939801170316931802666639699994797083224783557399679402474972669097262180625285924952601098629395978241540820816258518312542057491304430136236834457876454534921870740709054361185516589111417222717573624408570625434728331837015426189224317988946261655264016769725459402371505095149806063449114311409336593662885608970350752124054992127562885532734307120251805762174350565120754822818540357470778863217848904248585628181011567333922800475429240142150390315896132620220141016115640914248424114371844947726096589120272930379151643618765537166375822313289226570499290147971978874446695124908448787839590585592939579622988691554682285281770603264714562502028755163039290286815800096957188893496003195828893507793462721877514449957459937652933683204106085637636341283572428999930009085627999385974438762786260994369350622620850764854461400642796802985904774340399186816219952475220659693278840918308243810411864274125430017219199607326365728224223964361908580953136033879434196183187547558389941324461490488708689444292270345293825227853442228347225520511456310329949261629456607321323375416367622983515099767276058851823288497679868996653701453357518587011069558006570500722947550783761476638375787221941577648078913105072660981362141350160846484225725488954204811966234571396679804670029375414285530715080227446997353882951922206433101672886006726065651426690593204580664821021665183955044153048196329365947830087960399860003486804665730775831867104563719962422899498379595486060089656715683025205513889515530584072704068000959815124679162600492883287677217812195831717515421044082994436449848730034206198133426166720056489701380392475133506157153366810161399690321512240312896715503440561100927500180771183003133261468716629704605628111517602160701490299378554113874922490967482494558121392531121398881162497371059411897747841505568446531783789434152806785727261364401796308831357289458853834957785743991347989663503875631544664967369098461732433031638930745231576505996702235975510757277530350984624473588942668324938908463928621722990229399728622718518878938526137002459391894532274413093132425717343623991166763837313415612282520459496369807661261223791105328340846612709322445023499221672548096516378964249758635849651195503200103544285809282945608010911708122382024882668496108700777936860031389219422012352126224449991485553357708245306837013547995612033588578430564792728619201594369663557048384000443658588753798627424512566359057123635825813647687364132323071827863166566942918157484357858894536205264885770587165645879451032975720063643154858569257186805394400509826028269046144716222120295056188621030283676955788797503078642619604394539255689545385943606418228279590782587421868431098609443186849866162869518055151794532270808871010850817236500978899793439283510628085466991479661598674861906007092796413255698039184512523943568992146243868067995350489711856344259729466620983517336755482153511244933865306231636764170899092230229256057450400106563666309382235739524184493121310979321992136810547826665946917712329056615691645752788247309419742775086816087833382553751613485660450646050099603571683872578094280164092616997490855186934213082301582830468609674861271443294861637951929040428617438307315751061805024749301219345596738549747591947672541207877870252158353183279886266061371424783389676247137331670298226460255831601176159913852401404319668462712717326654704679115933194364093755144133399578741235897672575131980273123932382966378019987731394702555564495301405752255119938351031220813324365959342765336926050639663473492408097102883873887995544472618949461586865094421535864863332005701543621260448721625737663699423245463839314106908661065303596339620857218387519947636242854756159078540389108626262233888966492298037844781922829165435986999253700742158672225201953003201788427567175279421591930812967501863677921009634146428702460016675359297357809070511086632370229139217517251918882563951615468128570864543289215608647908001819699234075177543245838119057695675403476297454031618985414287204821652354516930824503245564279266362084834618533547030460095878126948525347380853822416058383607317206904656037726558129641123535577964357897902806205047986942568774335950901358307228728593609312513420040609540237016003525287412096367772600504662130093310168441340299630676164125652396886279761014172876939004212441620335999922976416318680738359959427636358726180776116986617716701358723670450917807998930878777853748605546487194872914893037202128590216146024522075844381246453870193120942560085960461368073418519379958501354035115166211458249110912694334208481052709561500618144687747988081351224321393950232073732132018409693030638032597614543320391988594811066691478947675090208697210071398551584592648418657216174241621717657413746214517165214598839347667031321000360254047295664340287996906088525534304822816477314334516050231156185547625506781680499204843765469470694586637257123317475257003123115771745334639727653120593951155425350430633809707051344071459993254064696324791124558938099515406310393331702624722052733029402342825880721008669442464595357031410128958898326645982449341141548830586697155064696986120107815829492787153493748516575916829038338734340167473486607931688011008148743123320524383064999640948276218048663177370529872699739874335476872122026890180238782698817564949544681920573839509409847505960758797593426816594158238897998178814248138605144997776016597009545385004864500586458970874230379841415515153217849987805026354789428364473834177374987587993380437410652209111157234712636695927380452114617662970776958152063027710938772016178403661782259746272108424766178500113583815241190972525304517613904429128214292839430464520079537212052741861455980714964245176228458489509455185735785691191194604346681754997730367018298072362153812074583338754571664277580323919994413313138716820200522505404274029537793963625612954562969343765567165320847367523114453170741616555095908435044968765136515618303079999346823519014504155580685394524738515652581568725914165394677442770554624891107823426429245880898540296528015308711241148438119360234575317188623149461048154805275878719101175645218272606072474892146750682028384709834126442638215760124735429689081132739870404754802974388242778482654375297578578494063114629782900614808940408582481459277875848916130222907331960052139540944260495160056600072342514689309190644233089038313453938594023078542547370448106266614394222740738649970734521343391302647898140261419981720649022590720462019147366260401318941839264555749925978177177317149313013254462321556357629578835423791887563990914658566227260330908467307889658105528145579462815753373726615055077636485629827468279257330036893406315407757152417822320912221388380616052366098550850219755425271415667704466142821374523895100445656738808758206941408561737986752461265903616338262383698188053706478067633920830038129577713588092170749246554248777112750704935383748211023191089714182735979955800066175217274803363328658894616973923518112950335543461195221892214710505559448427463852964452703837944943950894566779724175092118893368071796206177971267197059716169164169678224671315245764491652707676392505296341546797801982128485564278488919524075209510931399137815343622475788256514126000625307458885092225219545877641813882214551632399363704726514629469242187766449137616571999595265140103976625358606024664665677480074606413719234836748645697482591536037394616672611391971539979409963565658462850929114088628211140218358689838149463796448111772441976632375476686183646571529290027096391555688745827295452991971955161458333632180472998994476884104453553125736794087926932802462349016960337265517997776472883061619711579945728430647332880773968307918342713010208429656171119241468651872826309103859989252002127600914636548364744728024158637765029726722518561199359253770488616013021664706258927959792843058552891315875163638326114150506326770528783140562900606394305896763588172123029577780372970312166002217294103028054057688173750797866843676151761309618436899318215722676949814302270481407978144490917575987021573245905584173350490784819894626114268029989977257227387566494030276031860486760643038625822421947311105711321959553066493252542550722598717153485963434472401922886220078130030012959488135619002655525106813249561084096966365124236842308352658112525233891151834891420709870763691998769217583420921972869732798484705075457779847465699941129295927868443114737283600740572646008964093120440117031990447908511519125755204996150080507654510831734632668416194356708285269922817747003837092178010151751006968587422804372949432217763588699471800617541577328840140947136753036605084967539575357528025912004432799815684991903077657861202289153919032534499083705027220537173173025387643713666662955048382796909801105229320576559311476607099683889932558414681966846349285584768495677703673493687180967117368820511902662257510205002070616336972327323971546222813600048945739707777189890533990260855540840099218888121770043555897791064810633986055852986994381970215503486294368634081762030820224380751346391291076901344996273811388716636504714816919071895607259237098195668510042155263507312078227693969800962205469501857547789620430963802544246118270018136398465722109684943570553456631462357575422043469598098049871927868305271736872824110723847495835387556728729686049042071101186175089929815224895243902661951912984266612390745136542470005631018312275664217763347004835729910282281718581753077519562770491612762692408859108439772679918499849018168785248650980720908162793766148587511241665273530366019579056515019313779603661895826392815106093130560992686788094426248261546594414540010995596026006264932082219573971277107380858418057659934757856233283763904561677344405825080943913993102119992247648227727125952761683862693720888376810767808776107404168377250635375630371106581837993266159631664637173971659367989801944030016295202909829587612108440267330830100271752167157287454407889882301645705290837338055625332337857374542670793399253499581228450951677063118707347628261768296775584522029190633519595928957041756545291875717448658097401806817238920545754576397214271296814835896284714682778912783875221989246464090902213721900645322145965709118537712248128771281624009153836003714546801117329593029810914891173845570836320677056863730860669523308860330009158411538853955828735827994483371813556346419915928260511573263462461535770648300965401003579983037218779821683956823081989821343651189281565103032879587625866269758750709248742081817223147324046448311408858571077186620121362487521748150309650252140877739798735828914616064663214858194628112415155184191090489234072945738150688407744216754974984618932116147506843893543724582160719375966163374081046737634652718533746393735046773331061895280636408361019265447477327161142645306230073629127320691855499728073676410792490068843571268256244281287962060824931579357630886016163776874525673751507464193859177030706238868454706918540031816920439923155500343235415340146917507661571063161469836882442904756403472615534221369492599692502135960327385948542365256417914950379979122688372932641902245699115369733482322853449693390450127006754558652336070151299170599152254306160191553182547221459351690285368968303832521334189702603089733199682813833552216991501589461388504813156711624192039062445316204735173227407743198718287321147794668882874809455803508039977898128883294875174793391664424754751816047464615433712528872720287245529868443992256480694067421208000856126393011179912557360574091034521016960223894249531017378214753998289455433234965406204033322532574506450917078904077282764212606571070756131778934809308012143330929106562339856186700630172872577264464325361182376365676726075508902161271412697718652998398307764007152112233456118999395197374024588527973204304660583363391011232050402452676398899929225105521481753192060003896462251695806015445993919369113914801086306240230379098557468696826998293909227925300931715294772773469124044179477236956246639324315143871221548348018647691564522197924148419151851671434596243791179891099128307083514828911126451785561289174626148433577208055324368867478120456090172403943500490176556583111639926621937456629681071366721471118745931249379161395180997587135097072967244572638373858550136903541615715545928677650366495232341646797729051187960595492583545797737016590146221924230553231279984725721171331385195338439189695355070566077537194141869615391749998778912626139726549993753723978050181757298852858143631752499093996025791243872662371834463042500685758107349823533255539087040441627704086757476678051038496151383290140755614022535068301900122665823545326184335311255773233159217601902631423961249476215386910599754916048069839043846463007620899964496400105410526811801660956141568815253204489864541271969362566029615460228857454750777018577127796639462518567396195553998343819258173938419570903570531146384220030578930264121248974057706253287400096847114407298338922713457673394370171471171476975184924404397392997509262950640367981449655329351749741504512669901839878387140036222844271226838186114957575444798921990823849488357363392183648313405811372969875093873514893913878758759399344383818856673208626751737825221034575470697758367437987068597431671748738147659749326920388309613123181743936571276128302943233210759449071076403750858349742894050450395926650242433229125482414163652948864154921789097283907245430939684814003402923156933070771571695939443744950758149442930180097952995201021108260462490243759523974427599142540992598406325394916724085350069616443250853773785115064501307902106056442284141069204587635281299084268346546135744817472325023673063145772958518294570265861718247223527979262833465156632019911054646758564087723029912608170030765977922293516729656368641517971721704489807247059237506195183696505660677986555613602758130739836954874873891751204593965803046666267455078270708281515142464946601405848902552971283994351380341857211596479468081045173522096596236245318430486534386034231491742316453071717446824184315206487811942004948731459042077165659322178288993288335152560252521530128916734624810797425587953228444631526408626695416880914294512004737740987209482806715789048182095605237311699915208480083897029178767915132572626382830880095778945528442714999450852752447661955772101589120070208891858875800936584787296751477134553431186572706020945643355191920092324084098277910761867430706932179849903410287121948096893078399096380588795393733246517606559334890312861221696539387551747261631132672964174888920363881760735631455560738406674168512143971479057730994038967898252154591786597466171675535456702464614682556085408844997997579502709825225726846339875277939533643766546823500023837780544658341826515675514113753463303147161432114257461129861602181575821519561172593092583595513553581969155953239595016575354771392249640117426799768293973281433812168501586214887660104454674974580804628412929053292371680396601124644991703115019505586586180818736570052575729672398263799970557820270313308708010332934291629244368867923479872563092391193613797235730359791632955339655429442069228630174433566526532769782999508274375509475219916771852561439987857645114318316736155704146608419181892837439995553230270241104320008076859720597080372059361303895323608984908234269567158907255119231080794723172215294090118988661659917911319075020240192542829363377495297025747098297987648378333952142263616935006608254053989719673101109520375159520452099530314405373724523748088193713176227703745336080560136542501328580949142786330662440134259042468170594432426315778683966897717002081158920381985199232993620328623996014844788996889940062370832459741985908476666145903499034141108687944435036843773667852296653500773292545481696021806114429781607452034073747679689136161458203865717212165021634978476927060020137568434053552708282379896313880609290548020458949036287542431299929601048945428949053460154245327633791396051424656352383405429384224825586993167439599732682310076994483992623465392543050882629875538704080096169914240344370134068707431333000211846204762634142633238122664486667780157721111250251876636969687225952051511894943484168955085001418431580020583357178838485054449458750036384991404528694277096639588047972621933336118394556390051689980804027515864592968186568054469689895137794278019093884124742350035775793482220190659233511307242088988097629482875465144740133561995265463970971562652753130566939157954381802982594521708437775543209696690316944239454355707502609571590034252026406029841999432828711602833483290902330676486032300750057684530774582337629359181980974394382467098006729299495343501095856580265910263517747630614421259849843933813806776020520913718981598777676911429464945929902259388818118061955046889681423679597163232099243262934310324668598674309464492427735698781237140429619226098781604989913889238951503371257964378277411079242031241922122261487967439359601086129383897142930468664982256484418060539698903180593337668125456630819687118619879715692551558833994661591028534840971275201327694821620879135082240761253904988078673857137856858482169356110158766064451831165641061314810291277015492373836766992039530027548274295389643957299949844638153605460455397606637741413896761117394928276201999452794774192097817251743686760623079397860666314554657495750239003480884588990883924757919496842968600773140782969371919401485057667586262367266748946836017104424241409576298243657969504538533855922181789723111498720734425023900875364406418062677958132593049261281782190495513761867315503659625231660646885053903761563437298516833531120415187693553670185481145021423019459382818281643066971551271247289522130806658816759840054931002248161630149357629366169884205026747112153248902132270845370991120384603919616797994300666090114987772864609315781561078647984736735263240354942134163348605649613344269740319143883067214857694923806105292077317178164856627077264953347361438938051321368281175986098429667394355999056200873839952732260756958396560604130549673598057163358375251799745754379110202372641494875219024087647115084293668458802306785273184259454755757938398578187481492310474574977938015140264752586245081156971113145575897149144388929872091378393806248458927116029004302059195981609825364482294697844730075080289102190314602380131891859526851805229704256665210710019858901111738471757806546748345653680343706364958811597836411840234705420743898954826408898840828192161135263252682629030896953209646695204433142383527083920575138102039256008534996941099340730289113357972137546677046550851174688613744480171886747548836011457220518032479587525585110472071654402382898056068220190859221183852709326527365423995138352576114257234616004941727313974486647518270480735206460016928136148405600758375481399663428333559748315227590940169674656634778771750446432397605864485548085293882527513011919702783800287591638636948044117436193164808866139121369976792386051676356059510030509538689712551509991520395090859709966253806085403626841177935132259362273808314802606429061787989748008836629465118752021877426795843826935155616836933398446083570493457212596918019308745674126344073664829326963268134545723591289221784789547028770567316965649350863297683721350772355279315747299491857579222221801467363259014910070607393780820176254982810579957228958535435397010403713861199980935914104202242088912317187025182694698764376364177250743295787137196889187898257955362830350066755269213180446556665742266832039423085348590634551463865900890641442486475218898329635269734918957238492206241958548682888758101188368520791401593951228543713934395235882815060331611085816758958975644430930358131396473053809053839511948104964307343804091525576672463821107223067944213479578901701152400507010876845087333541459613681313239473728691817652884449467609468081340891117661215442143381871712756253268154851384932519883240452704990334216984791863735574174013132793855501213990301218695487405590241028342780682780120781406640540534649857059504900568734957348311594478945561470550556667187342073808658071960838483440589717070845412049555371751612392938905747585684723291618315708025366455445723659484525296662530737317684074621310675853248383521767792632134694915107469428329572098963003616490425664254660510166083550684453133760269710930238943899725797064816788414146026500896340066410871501648155268035095313356863070669689004094478438105568376170767350278628981427714330484986643294364067684449508204898241311345765230138738118923073188276426274022971805792554710766124020653042541123363486342549537189164098583864479857487691831909615304885937549925579991493148766247197421024374405747391187341636407476407024107722221378052477372034292816760484160438454430936633921236443243368445538282871322164526508284133207691565482269596881598470302921140497727773929475295729893198830419348818595816202304101872595651740850480859328242386437680612349260935451312942139266905232609024295969565850971421086958670250475694359008997673865591831074146801274587843291422465637418155837303962294887858041643743375278362750451352434402660414326160486487701706191950292988157054080173937912192370771820328702859243126231384013544861603724031993639159017324044297528268556287221391445987267541569440324888773034788424460420837665551522771977896273282428759846454988528895433541681273095591663716317817714824835668748560983961337179312100864366292859812559149408926139446989804843210177242767380259702999510535455843133340147402732892531779265802734706640760472861132927248216112592210680122713741212595840116892798353411625817707224053111451488758997412480375109201428944835832069559771639180048650657149866569461547563295468339667654566410494632833150544247398190469204726312406130616731712954089552444487795288086190494365536980679916407127799876218576759653770665554796606808185098382317093661659231763973645669010470179487288275447650395969885362130053025671403022414354958102837554040484080421261275811855287821797050401385519921179022675587637534139737745660670692922088836137796424440972009600655692384357429172705292022939745017314776904372869593084234129392543027572716655136487120824776659556669271352793434711173600800547265331670641776089287570784773869263668022361611218942476392995595874137270030836497769835618357774063894139566896565999627119187982966518281951370971719665246100850393329053037871837382861257327099529227998914638635785813228270700228269204629545601382184003967812255468517623564760033695327031478834509679336475987348227707760444548348663658172057898399408763715843527522851981118491141500077951761073939352202995599121518847432459782919538930506219172525909732735061882747185631357773059765408014959155451767761042077789304267890071838301885868074783825225940004889802732398521266083968059497077865224812316029185739051310668103399614679883312275043945146045210691584001533798215686323319320379574401637562197942441015443989411096155148664750327131018184782897400857462751678017261063046966830683613466812888435732656624402780666894848048230682540585015319924085910900659479322361151977287956304366030797222176353478817957311355927689919820942930672542958527556750628592315980184656906611532168870184257228639935266050291745136661738148242156642341492160725653703759180698619021237308094155479584477376377769388438677092634574024704837224214224776906976002736200454380242649806835339716893844313448542760635750489508753959809732245414735758859855516274972812781411660330095977314204745877795201360034502852817244080869526929292220828532184199038050083318278245748492097257454531722496640266521853920132339549103266154255123909476172432179268222370442537534884540902052059086418682174168196864050618303100177368521743787349656022742520618243720503010706783190343322575118378939913365242170082621472614869749822926545362663565056365128233375912362544799244868513594033394713691468628624606994057993998174600080273251801614446198286206226369608004456175985994478486051558257272715015404020430739955337171718551991532093803789239292873480173483206170588133264739985618485494810498281792931802691496307241776155904584359111380826952836914056219615311634686906041520592787288825867777382516213664226506660704791167665511626278042891761996852596544168257571579901358690157147768537379543028635287262579387756339025538956901481030297682148424025240473142459807651180122356365357686779275167645840267829901674043711854389014252546778262545546719299529415861041154615225724971215370357404757808273197469792173400969932317327164533365701415734994002324335393669591846002093044541494345726596694644639166697825237400894419121540150269710104085626450211144652304349688572659387867122282605654106606967882221696267897094250495146518944392248067064853044440157981925995557779002159887520809050376476010158967115318911180219549224562793283734299261422859644949461024648347717348679069767443349619918803158634393535409021177794068075558695765717806856064301612420526795892301599735227385753125314136514754138006765912931770085474664344962613785921752183877711690414811926132153442455845024948505131613845296282102388511495158072682443370994755989888969281466784183094442015601355123888643865716363379366152493934326254454766940067233672874224828885665150493879327730461847527311731997690227549064505456220671171844718371983219939686336301916875903876634271494976609417709960545804212021339754558999211543828009756712899834769425407372035039349068204324637159424377411108351235930231571010377918111230216001626646224700504872943746991734075206593766207114949127124098350329523737184089644323730178983572126944821941009902633098110044529987874709308188408881485295762677082978252863524573236152070228389314766969428078693029479881188547412080784112299055417956443888788808233619129633502649132247118500867618493340612153398322831819941288117263386301333777026414820032446427800749705711905540083254655609673683111486103619097755034564308141707056089113408391676101296787582827923705373956803508778622484203544702187180247982888247182595793783167707345488405200698186667215311490267395646674505129297356306027731042680125991063905776093981672291976517731997224639675450209087491660228576964914014685316624953569359422804552587953045439221984722498149107479429898790162979231447401503610899882944052616560162514233250581591537574332203592544601023319070513077606261268325182029079372019414298235543222730894715811407975470942356293185171189239185156396640449711995478060882550255762512652860561082976145648228939897152199921721289508938595661464972902210476677525271757734788580964747106095951476019440747849118785132828953495293979129195585375761529264691871386583191962842535276420181790463664480611203862133512139108581923515655400626220153302141189760093011237981707822298676686712577778578715252113273742424013884572199739662089437173502391582293834908314988322881546110343228613076251073945571101596581180272817465918584968089312195873774417449167242885240124657106541742724237256204807951220222691008903183007291607205013417815071936734212501805021642173405948013101291000332345323458927242898678856581843713131472530945611409863265184103991876360122284558890993243281131211065725127514441599120341304076968280868962615781310130368069296834031993514118118242311718623667552059735436959530874217412518931847746618857012018999622919853883855643656215523227961463176532239930434505854360626559156380557045429329045927324517676240570617779873071527145023843076815082068681125076899293426307637842204902497965186430607622869406461684987082654277034508340710495491985487274157998692834101955760949569580528767215716593293904251055979825268716487988398131622882365621949520375147569084383199745585166368653431249489463154192818147639185566584052363619607331362113111824892539054188295492539276223752723687766617116619871239176615141432622694705174741098173770176868777563852180874271321733087936713592741751162148187902147914777444937089261912229092064253075034911532340422208794683766795266487837113301065144517690959616220444991014523745925396107493924913490231394494081092246580866630856374917080268797464755579178190224562736789939764249503178246065324441355884032998684229101412669160200144792209580623632961389405277262996056515700989507547055022221481480087435542291773504112611261455195884584060250752895088529646866123274106977958042653057566945393136642118342713242220989629324763958647962168055718402457595997973986484817540297424202144883533885522054664580898266991239040735031663144866141139214257433510155744421081517175388429781635464800474296172084895988007568677528855693992259267795524788619938698512406446487883714785005681325518607298950305340658914485442308427072406355955133989983164628477488364238238759856055432316776305521069406506205827983182187948243750549180005445084648378699462559651255684955379153305321559162282106522715525867604693637820018777456375491702023369622161429138820047251180110715317067270883321900473943155565166068309948004462627223119069463159488201576898797838322948104949655196637092502157612087196441951874233452980309018318262481759902108106871207495242279062549518926829632985309241382597928263808414229980133973848870414531019249041272923976543209132971891599468675185561318765823503058288079221886932842783845152352569110646659176579428278369913124999537105200757699918436603041723645647648513456936640141736564320480496263598064440778106344253988962922562832661529308732734834361749826069378599742966909907494427342413422447911267782405276312218135811945674396878657973613688647936349420281204200538318050865856464342515430704154970901908515058554867569244171669101759440701608358009434539183692893248439305245053236455279433414158363272344746397756342299860790099499248633775754932956403473366140150241376618681893179372230421300697242863425718357264155694221355142138113338739707550040508795732789598549863352724593394434994784676970535928479122677904435040153269504428757170038214303187014529550909467194187060527922032803890181800776021639811971446571321268279300189244163693846787902280009804795553012733280025167030655834489244105328772305465464521191731482205607421676846878820833643773315898841140061636772057662907940916150465093178945429309075361415828245984033248496305538388097510056753891160989512499479760101173247862358960937936914320610326939225768980305564332589203325543431346422905049857932638738913507423769737341130352247159666933760627578157530693714697633264378995365941442665638950437993545649208121923727709914144092660823833422062010375340848613641976761845769024519182987387046340250288672883825397527320550797386090260607533674833245391507860314690259507141870503105310675113083912398029862879033062320108120397698477899878719088284135155872022320330008063898988784717012274370581419881584109646705353993092716237255989634439422374261224503088809091030972117418810474486409459280096698185461995176027353565221080329261238057545319862860225546245076314335709588431376627645512325734628325309214128932073487110231794250073277163997150558050488651501686658018692868107677969436569332628002549952554445785318850865164551835202614327773335613968685148511917654853030582533707878711178731368597703008577782426076060121863243676321658351490945295841797987140505957938497227242664882466942453162404773838392628784858840106145262165923990421777480011017551292123653848809278486113982785177664953645042944538754529967975488045604335277989248945843188179739678236693834567644013637966875921017681950719654187947486490005629741940597098717040288898163739757074522886263838012610641166299350533573545812192628072790746773341191665512848529174941307912152836004229537043136089223950125524401440170725619267992879845228004965441397185961165521741218197329131189178047146102362794715570690778050929910845479443400501807100611922005833662746213046323205926062624880773043135787205446281481995607891265188520702209439654791604595454202856743346051185512772866277177111269322442406111443399197206199398850053272173535285178820815710352599368770774670536972334938716858934276397430551663661762274114190344328176205204782719776941894684044485767100651059137717846001915954450704670857969180291147266681313038307912137922555305178385172429456582593918190997470857667912206910669953481909147964517093856645296054832215232303097390587795262057182495958553838159832605205488543293394295266984912196155202744980812327832041045792474267856760726469522028659388975737648453313095774442462092742280034457901645147704589018092147526721116470874541172069091360159163398911324876975100244255178625173764590933431741246079381652616495764853184244008648548680626430486517351522546520520614696891796985478708375091619787172877354802857489442012488062082631897506748652303763711219443880843286843428746165707234611524804883190671112469291422995328419977076586292085951742633907235849986017318902803500752758965746764778952248466105462011833696994732515356426313911139514950453871394029376882278117135235313438640027159925787856656059909819528083449041380377772412174215222312479793396005427336204634106066813958045828373847016790928292962226598365711521237633659560806409969600941478996245733156201573824993775113454892253876339735936176372359852489341473298706985579452559946025906912285399734848002427843090843274323297933872776678188787893144168911269122590624201808988999350925912106513003599177183961299087020578835729917969107462619550654476164305188256504622943757420979008539018543544101715127946800322704740759534398352064614921240143680468084161565228442275189952980969981012443068882296899021602868495658428619931845106327709831992454864914168908309832876913689668111973540063298624328809129330111880638836616754174311215256831780817885140056875933839772053204944496738297564085880919685487435286268311887552663240304707207760853348991420305739593632929412821640215123450985878541089810546539687867347003329288550695079274523937956425496345515807457347590533023732865108505503620166282438996742661889694327475200730560199971684793506832763620328258733475787782877449564104529627142823297925138362280038018086307946777510624531202865305233719386412565359528747752422629474095008042633217644839765916251830657758005554933404047615024928504234682917329981182743636131250643445869693736845653121387825496208373350848265439918711345611135302609344646089148940270669391716598234249081643317550402407006806119144994109307351940007383177790169835361436289604321723815017906579795824525675174737206922948965543108593615478627929829811866440687673065408183507487449794393089314831008423901017115988562455467426141071961430723644069878907595124412068644510844373004150364984058549663357532706517951749632190800316338276409996556953543323054644378897196398365475620057480245128008448831702171563722594779190191213814341596879966213318725431473737488318461860920692683409422226890434043457933082638903612508863151621715426935672060457859874965563471864710044774266803897316506191157151362802931436526208997487661791199308681035718513455146523578784945189774882171302028440032674693340846883514226767918103420263869757498129943916134724297269373755188025369084581843603578275505711999572928034135721749613141221074085225595142075123448992884546773447038491736394386308389005406842820629641686941712775811053061560090228971966262180674846798405627436057474012410400387428084024390683933855918407102237983535544079143148031794370445150158247625891456061247863500146744693414936637580485731491899802155075107156854046965664785806913799192419501605681876496911656258992475538471759676735759329380349165482015209915629337110069661048289339364973419379270991286803829369113715734715201137372916033585805320511578707401713494421304419329319475381011978317076996512194392772314434627874162273584973946218340153294545381558462839908410357305636221487918621729445789107709397102814484303752217024480292510454692467376152230713596896235271628312933511733467714070291313527271214562171822129851968290479243509549666078326683572284873959351214552178878547135754733785964275784396901625573623884509826470203903098896803292496477460981302529840780499854025059741724609100623508007448273663634089590319963007885845195320892957716320257080172402388221356326549361025376729688107434781677353999517347792505716488778033326941327955904695180758437789471556666324871383657184647759067655542496462834795321216089927631681195380535519448447847229935113890136920835551450906466392795477818090128225547245041646880282175400659784731740263651495391574689765542388065564449496705179910135259740639677661078990417487288895399477769377543960674991278560572020786743310761986507686275395597375767068920419637398363331841728842175737240115906484336455077620444818947747981348633105865291578159756447832006748020611427904875852678660526827024968891763034979230933337744471120105281824934143223780353998348241460781982146479917992124906094235371253827300167924484924493758839512338101605951600994268635171303307036872792313364500696455733255288684768258987230402503972302894224234946216477754624872128017070346905514635178686812034609689621497011068653456346910677644927076591968467516710811523207251183279105626763347342236685468255616480820949514607182817157870181339843433836962494030534171768248487273021534626330304606957630978586351062475123045220976226212754320726553450262584021238375161307250414801547300473629842933534198563036995485843609612188577207576516023308782500216569566937684331558841471024431090206703861965615366345770526380404433199825465048994817011064721519539508051091733227259089770314179938541364353530412652928389132489053824680788531567425237361797934448548554748355894958658500871517158559098744054535875266983432832981053958020476856391017468201347993333100839376378678478744909749950334389481503169111767986472290157724756602318069443476004270534576998554318895205247920367550003297014261087455139201875553653827798387238539036849375105938743911622085290627416435244439052184613437031004808443371202204595865296110524403507020064858726961845971666605895987824225853754050543856072141553564661041807595488700181360242748331600507219170813868220273358286192406139787097373959686789421020626679337519790052104534677436353572688116492990677735772749732050437253898845085036466016917772514397349309369652012401494511204720200927300605981692075837756150906076669467068973504989851593490565165441239416584319004928602854662615875035082045491110574774333353148822013978645633963568557238465957979016089735334193309129071343328884856239289444476644318695217582954994512575458458459989128189411191097516502300370052576713664582713144780876168593828556973207671436096307416438601688444818380438498706074310943682126279998776061389510722188651810001494544758568664503447399817979246727060394637046565789131513883783520553276508910475248291728540971656627186957013006157020804869451756229954409827000514489866037555136619653280869411478606473323926360296211531311803870411277266206987849806317670610688722719448216726686152676620935732200029470002657426206087591273917929989550623372988964475579558437417176192381777424641929183962604707483474811038250077402860260765073636178206456734958831969902602767714869666232191053939061213235197897061329284920944814034128662308537011307200413944740620439547542396469195459021367796332507195432953393827193908672340829142590108067466860911610792943153848214663370494739109140782082764275051586244699593945396479180989781383134844375777548518691757626166625217863419464174435566391767188021740650517803796154730668099391223182097582615314808987256367896040939696786073831701857877543285177484415828719535960464774251851819680145881043072111159324416840515761601156302003114656997606986631506395239851256646058200716034940123221546579974892956714387959843396627012226853238806159254038343211724312824908854605678615210281492252894831282071553858454192150167559777749379212474115169685195971362926547624549651738764398514302242258487449565709393408991219065093304980480061261015266590122792048417226972183571834097605759839379179191959583378952448140472541113499018706801302386471309102973591815724331795226302108231085900794645853130952650801337280991155086098551720780029467946264983769719716471806416862954803043767634053442050474977305538956062443712325150021015007171408613769701387884885387867031589492576199709699445451132309510060694675416850346191263674903486896523394765178877536370921613616194766077438235759041907203713097614247501221098230399523775620350216214002293803691025699794139194766085652593472177848035103920893117388455976833542882045877254459194377805427325077482719829578604966370816765900103329742911041236594669971840635581239675259618261132321517063584579520854847867905419319178316259925689425927838011599785541426258919369145031824872411389969462652294547546731276329433180207235476293198498107370950701658658584519106126478822693265883784891325964712295520533361458867771676142240273123607995640217058112608451527359525965131425806133204795416390000217448700005538460958245672336155737634832126529479621125934468809774440393392229242200546840585733697214684014483966590032691840747482236920694098446645299847324439608118338038247840330818287310369259132753496783958457955990829036538537522535665074758579318541087696487471709569640174124754216776532147557844930472151700004181515174871912340400936993278722105244377133436413960162064201267845818518053811844320168793497483388534181377725155198344335616923959106055610531730857533906248602467426494226295866450306141294624215904181188326396480096545280821447108314277826204920117886121500784296441067092463643675756823039523889070727321709175209214994384334971524767273577254181201189544113288732479454454728521615005685334899318609435588410476765115921167386902411909354620914955303117773079703588947259283694463804324985804660048408127472753411041448340281737013184201863826598305155916177686225916677742276563802569726033981514242223085644762493692807347007090329840012278908602362093274991020677515798775445208803186919185064710887769248842305928482467191273594990319219523237567817637340797410586788777137170705407251446616341932382385203715285520006006754431475816589680371625789842498296072397591855009406218433750812451071125487681965043696963297213836292911747840629733663619124965170856577148535642952429608809878104573349792084165416230103417492875613871934488031720000432403091933744718472239906159323561099845621259286392173000196795622056331711091690557107852921018978714355282070151913302145541444219974421722730557629161399182635513859331448378007697323473723035255665669537627972766538063928808403459884821038292111761383456252731927592218918324903363464106313334344712107007972389386236615226463250795392242800646222026078002691116344751168152258552748980659496468619774911312812442768975414163833317598782634579164653802331661018310453362385265559032647746042536180452707829440158620682171434679179519708332392157984755813439255422071833514908369744055721224020047638388330137418312699437823199919191844197557653332392291866036728824167237106344430532437957684804829926666376968630656587499008172099181242214522065162055531055080619254297306200427323717678708080352682250760371319848174122024587290240951702374760061570903394422411985207923685579437928431844701406084159114880166062058866123931229452528543086282366771452670786258212914179815514060476665593625353919797376455720744989711842799610369569394697610406349304166249054053928514036943343046402947261107654129567321278391084903826750713146054526003187239773970297827866256205135015823124221109248635407651190207572376163267403133619769576192442393177460149474730290286877446889846828620177616867253589019839423573127190907023529554116342831789667859209721027051138149567984606088321609979922289639260690013917638600001908715096475607578609645655825707301538532004172826272618938725274437353304062051298716672150080431970182121971612121277859144576136448603494655743107490588279639333380903630146941142070926784134398077611604481317996673489036676785624855462393168133062392802870527643263392831899548793699883452502423020901549523343962783501702214344281691554457681805401098631357936129257323381204911955061622342655900300571458974880084819764340572286061773946770035210444523633530754873567627987921516899686004085282637830637307031702940318148348864122454193878068614043929251518762131426685006781245591952712649848794669894785979358099002383260052567748910090701955925908244194066618226002197142015156530169981715341946537632634152536939348180183257187748174462378671961550091871801365165493766395327683812627357241157006903326134658455615862052077913710579920200948776647713901290443483902701665459896643674875996949306407706030419210702677317433196599310039230718695895588845601624780645108039991137987935337279257576315420246885991522527999844103161292694664154147372849266294408332939084140241549414598020936932029600053956812325243382871050389825145109731032164132827750548388266993972640804907688349606097944675261447465895775817704921990246435250429727684484366957039149963116524120718206233876015353544476919302022129146753402289278790659431421434466286710598162610641352865389801715200377235161921588925925873103478260262305710652920277051276927039656914370565886989586049541978105559375431964212468881327208160724151060631442352375031654537638032109293398763623132358130397404431413744143284730206449831316137099035974439046446118870383748959800805747680798249846365188664788168867780882467940931037061118485019060709219337326526257207386662909316289078346568947064214205067353532937969108156764750245969405430307921175441446539430306293083526815959864981718328021902298353622964828628062477183777533850014197781001875463397425454624032342436666063540591659705935579868690261953232123767012096384202029032753627429636589153477591673203383686314307724283865983350125591493680579278410190276269924829464366942088857312790528449589415613272937316594358316651026930891647503331874802982654969677722866734915163582457949304189371291377131182397116914676149095304555327147715062748057427892681944354444208742011124813327545317720846897431386111277696666423540762479669492425532216855158615566969535418320959431399544524063846831768019008988653793743231914315216552545265888636951865633477395659369609278908721164354651340969591239401530858275957412827305557443053900414266603883265353628279627843051655032420371292028018135521356645871656425425998457403070775443944898266943734873620307705261536565283865259480689989551269703254672066281647744672698074045683025880417468303884604178746462517090328567698308536043891844524212741721167364590035389403899198193765692987942150615153889964207504495846251403058181010001250450959885893276144031354241329865107753722292465990143600773517802320517877888349302422791503034499545576568388108741193074101657557156233850439362922170678270710176279732472636133239995013815399042000847075742527032625065862469613373067256759483092255510139136692023684205575313912611961772670067937433938815781384148077998283813589897797422068087319346462942219439639575262418359429507067309137631311114559191031645689320074006206335813351854751923794400638417375310744254747178609408754365891894239872840727800555370549723639321172439451309721648174191736159803907490706555298677708559768986243281009008568289428029764853722800589738259294881390661501480216448452848967935533795813446229860907827913194192884500671562220894227234951831275234656345299900487656067550749909072017608494732072178399677073600711758325467552744024745487620012253028613071480783960573246571659197286492429242738772331664593685724025671156749072546188539459351154754627234778022182683939009029452427290869191747696251433754400215479676734693604982934040863423248211418877659901766687983712242880166773339584475332009008134693695985316977455681696009592554946537802456991036865827323553452241988338238721605869142643158311950495573168028048320684398938573346162650471717943373034322960896947002380950718557969213897747521039533715815764076721477407521496456126983627313315815006954932153694908683571759600715354272050576193760125526929783417905192332237697712807718353428117201565651561868779434903879586199935006542409780012098603764478967133517024489614454036206699403677526070290004220136809610978990759559829376244781742799400970061522223244255724374071024004115748274319536408841140305217841251252558981531740739978967894058161818784371519474157043849897004927571644017747240857588880964554758780904283473591561596319439085987276609180622262111700773932476271459443664233690791235017658191161980629841092718661590869805672013163969942509882927145605128899311161682823660931046229268075648292401136544268658894016473791084592183098951776785608535305183824873421713339466045047174457972750193972832003670896278652291280058316393203493274839348292332553119612487023924446922081553670738179897898059369952261233400799870406153965495120294218458135060395886246995012118573515469274790179880487308154448200669559725581467315126177435814851647521234675342091053644654531492073960952993987456974900336264526209188050552527627453896836078974810473109434068391797320578100537602719653301049575482832856447393416240186627225117819590192056476216967287944344263016598523628131652655663738654871083810234285582478457603313709769957124992063537445870787176290297257994159229688968658441477486210878682009242766587385532304854629915344583018703168072397516510349675057000296684643006378100592097512521756657465345937553542466995462805406534152826308816280353150779123523580100104439632275114482023236440454305227187619897430077358083981915803059791016647834988250704689135498962689294637082323025604925749254182302053728424137998791366197847976081167582266063842595095560735075707527825646932928657918827815387081774604553496111030175991991012689782960017001257402658393469685761322782787539545579047960929017512609366967204676784870957137688892889531761865972353457855913256673063958331180747481652589016502718208012501819389255629466297421487343419124506601036411958851980944867867047352358603269920598082439058755010513134023814417699912206686482739525179622731783777057157788856431036169856397829729411038287341151755573570101372234489314691189612754604168065687235837875061703111123663168916452559390294786115899097444619573656811262876243631724248946089560146899691136837179684825755789320513443271445245705618243078884225509380260660280777981085125532634153645823946487335062151944995215434149626316999937360829636345189043742036895776344537935171990248460148817606390112202767081279544122501290650058558367462803452306349797190509268002673392789380789995141018148716570029637480070750423257148600761721579929895520571699456970786265496579873905925048814068195905743603309891920975915901244917847114751337280759847583239478254890716845576349684786703742782450247329943933879410265340247970975098754288906358578711687166232007250148494995880646650775076736818300360102590991250042088080011208066380796218112872584420902934212768159498707969612756055910102564785493610929918464799105373051793911101281987098224109561497787328580322279876505577553557976762656672813944118316531459782202777352672485904283359993982441675502820330213343458555761790805989460956656044297544856529433862813741331874505895596166634278751220310802797347218287083389155885154504863261685791829340874711484239355054090357046040232262088611911690957222840434823950114274423717106000163062307294875550177478296152505890840093636906699954683132142571575454611489393513416544720183254193701665896903712325764137154393501921009814960469880093398168890662486921779560270408536317286696135910529289062688918957941970356867997626930008999915337386327809149220903748619022973411731048593265442129933995799486975049886907659995275462285223474543010388437641917942058345949701647966017956442165533887345345422797001065303026941641148050606993695419039859494837111337297759308912741806653610179712486862453611708875283841272349885629618104063450185674609892597065625638415485560506364000691410543087409358328936311288261144505547687801645447574992343824278451438176721618432420773404935042391647553523222055643638226904468129588625671319483293733870576449020892107313950804466770339214484644850215735376460428027735462755414590415848227319301926395337034256838119447499589420791623109307808279991906220488523264359058656956113561263950440377308846691770587042255388173782974011347475925550888042176341922449146706284924763337427887069237144598294958842569220820925535693645511871527976833095697016985797014440166470928530797543854825653737933241746642745460193731443024163496603712328962970386349105399233765639805602459115702637225863463788206723851770197054661476727698594991542909841582111277129717267017948805224247430156269069754079250895490875153904084771815072283650363343898243474447943262590306216333662417894384042878296499711408674831705203246720021057703665569692384027199846792002684784814631085939354784426065277800010120957215153152221358440306100214736202140196024247214361743137796117606678528931028086990319853680196737495716512830642276043031745529868780863124989268291715189651973269965167960762774309149065930375533764493647437809965390599531263409081164769779645988341854379929665531930136495803360913119313467893783850971175759666303697105351610299518138891463655632139584978737128851839810280945026710146046003860626272385242611504561210068403996132614379406599669415500204921099853585277370879862665873185853071778821653751357572001015624778517694350111171627436533723894710504962090435596129867583032261520652200120667634093346592871866884628996280934015138627947622187009177667867361584203584693782574268415616954007331531504923007469526948349291840173971082083742714094025772381409744389542443122200482851279640060952772174711784846304735862808093917256609840815889564245154372823348990460694876068184659126809364193917378142474516184714289258893001371131599579978500627757483985864112545507203864449838228679357047515611291400952565829832467789706933736375895623939080389147292748747672479154619757169035354808983703959018011691259151249558050513029646207408162467166942580476721765302734338991080770893396055018604089636702380136514589819820841171220762733612079100681980885810395806260698969082193705980533324444736154378241973530949383004966236741376609776367317488129529844825488988260344605000429752230269968799970260859756223164504837132253646890540196454315274689667878075871929962111816211101641978256703259291979430080278106014128969063899924728817448011171464875329052717928692431768307062668539008011584607023775146665029469074740004945512855121378471158935433975720337179100085797124879650393841139715696770458141124751706251493268139702530591839340800277576452418048689730122089339896777582510799562794810301361200137148126582901670549948717672190453263841675878614597508732125685303499369909493033142146255338353401364346906631828819486774116433381101278879147929630628746224217067607689885622491298567809143223925700684741112885686767222892233973041149590415586490235709245772737102631593307013633505211815258588645980682689388098635258264508165985337674604808372332402202788827514513582132708979633372986218816482728718468453337239313283435476391694386528788594889753867604410844936641693358760213869373536370797057436089965895645248885736706299115190703389856457993244958785187093474782468897168284846273648157406630204763756021003358373078180505797517407102112112846395262087778696268879150001507722412401627226083880474805724065592342372244782422252861546778251809985307216299725564268794967647784186188398484041138138143248590680923250419464374860010615504036754766617254897537837256817187795782115695612437036677109584330800373657072255126680149476219638517590420504553343165972027475075716163436842066356801415674183575143267590989852799184843045602483734380409405438253639692692979203199204601921705552328094420880900266886444748890399499628728633203400273839447911723895835735565856875672863826175610470846777324708991074093784317679680976173753552477615005790652117911829508444662489633390202982832765362798748943650215629883111066180155096259643053994688277187317747179529565263680046513593984445865216496116916657505860438222225778194303281799015696491541333843554518316044953041055572333635900562692697011501546716626330450733041908743858587487887266422574199041446070494138185714323677154631872531792453046132127961057632185359609183628948389900002917194048618724945225172326334142847741526891802296819259779512760169474772175827793448169172687678709619939408034949588138511645775634471711156280533114667835556124194087535324434890218954790118562292020476993790593229618296159659581628512990475596615463944645562651562778034020512345193780407371787916330500286234491897052408659113761835024271276939267207750889457127325554462442874834652087093480389034517480480924929328927473550793536160464714002759331237168193816604277784510652140386230513325778799187045427002237820587405804650875917664046461335341427536703071388233829937205226315280915642952252797219985966700488283470654439770213894840870072737518088154741286669890977500688156616365709857585455790049278068013184624374822141219434035117834201558233460088881860182917533459599231194842929007675501071353084407045227468991219807543957173300706141259180322287235144567894985789373326159264328919368440001602742293049524905702352081631476975509190539060895449019304396590699482152840022552154185345688934025669732715898889539552564121112438671090629432635348955206672223592203507205164340472432916503667555230227103889272259610392312507613317128449900920466210774798313892457052752501335045059983263359875149711140820742707586641081919376943236864951697194681748491791998003585039182718758014260285834931973358024840994368552988495497139934009446726069753539943667563762952006489025926458788204221605888910192256110365437248760865309907569224501662243741556959155762825008900220942143376907946059590492392291899585964641987519054322501115713202451008827842585821897540362801837818888128357754871174394778695529115071224965111090314104040628962442736568457005699297927655521982925011042853204732356734465279495835419587388361774688349270182048156738162812108432940188594486098069060534858623592186184611905124715406568794987722721450479187199680364382365772317322564580732716661714618635257456690022849247982036880985543318146132099854452463153479853272950753819086910683072227367649837454334488739828056320105165367829628894144429281042305903595232348272148905864250686476431319324936162932838157419726094388670351940865403580215506765109169430907334770657432882104855124506660622124141327928745563278901161382206337690217963614562721726763166638317665387549761492681918494062276589582722414561701343831757616170109830231663394860221363305009390650019511336803559993938911196559154532241990906692727953581595790621359428919517999254380576086966684015788435222593330084398824311474582338980022760235350003747705946784055939617417544360197936884690640942785530330736734746383933081734224642419252274643470947942391162383974781789315522519995606733770596443024915456634150984665553721790151289003941960611722292757860627950605649939707207803424213426825989296978466588343183008335573660520922587679527143769675330024042676168403232431163931069101963412893989637193133250324890760812946462412899041237953292812338086727459711631225606409823155789315568287370676509506285771495009515306591423643933128417806430863013947473840468383728974238800534666123702359538549517918587431107058620125649026495861887790495025938324368452863363696743609395875697267419499089545217582999168305924965425323602031157307138575130803816335265224435710833179259171172727908984080531070500678384041978969866918792493970088269418388640056219768555798431332753638226737779156245798413653122750823276556923866064387171712222659426430606218053867256258276383392417570607604512281325121159453023598941119208069011886009468777564588548294089125030368499214482913859105489372149569866625902323326427333866328230570505180527119959925315724618122983959393075527225436495556181483672818962794454859888095933706039268946322803273550244694649721696695586677779830351135514752717562550307585957565423920484451865396459062753006682501666545331079630538321103498337531569665636828435616904016882040635127098769962461168095364377233873899890166227972128118981143636866598776884359575671376675969687817161768675233351641487076855883460466875061782573246577843078431146252065355113599571278047886543356437840112092122540796666572376293236334187382033147910703961695112523294317887416930302312340201984984302261777606890327307996386463421247076613894296438993756731557236819035891340586265390851593262773470934399935347808219384892905051781384194830798196803957083823866084816631844564853271164943788175217768901568455164001894003733535830849987906974880981755079137219819091836738752839091956983754880135302899050259867650396115178295483059037290866471829999548292465210676824972390384481331989544750372073673182004308555882528697914961339296713496743504001569647367577967119187873692862527461874044621502349734457813074925054132588513036531376031821871836078567535569660555693469228695428185475608281092813517630445643714493634357630611358123886876391320466265178425291480098316269892208332642166729631724656407210226610248052473065610522538251928751607395050973493292040549448130277608497261926672745774915562737586477288137680045055642130344263971930707940658220524736193804798429508299879066039377509958739147793525262707762225268322631053642763532985859976309560275121245630223173199904398478829199964579160404828270856216495210726476238779316425793725032747709622840679110949004919103560055377216600958679740407426670284113576184286289306287067608999061564899778938666888753227984814752801004988281292148086565821009896178512548461831724141772972788088789665067838457998877154758650039019913641359960417345082490163273066908793443627728683997420889642297119316544308227732397269048609107192107389363509989150935169614219134040435928410912435172765651761324027976177988965323098786007046249372007746791519053499691461477946841941759740625398580043899635986568352847354711583771703111737290728278628725856754466163574231130204138465339573774349215629509149557390007687843789058882723242611106325594302713863206991795903387227503428936661289836546317674791755461732742565306798542043284481120858615556754042293974670684582199926361658953218991205385839273596407716821482900254317089124279517981806800350584371039143624679623673207843231327833721814299226563871225902659736437277111103756290748938645262481954230394863847552697349968260456825245177627959022094617273505291054626891584715125374306305644383423281567511842266596040924795337144787657308615666646768588084485019314224120902399193906315596084339576264065846445827881144698939252980157826573916624062802590335326573127413663732218379843412650800564232028407837191935186842413773735282448134565033742450169012312817175232553815945966242554485745282565173771247314655693736555931523148084594741967101820962094864153989548812091481789094188337125788952872635121428943948853419016216768627239786612889397246674716583542313320877257051713001845902414335052391039717932917539966290126721413500391170445802893971401219267671849739726897716183294021080536346629268414363479969129019187577179187694602045502752364197373447769830188889372567188815713810174489826838731216085194118286581262787499811493278037629079485240458629212018049257855891058566905715138813089004695162837579177782222260861713752216364563218115503646856590148231700053435996540432101572223487000980940431993342333506689966105895967360281447114316794793685600338806232725643653942647329551058359372670768892204136412953063968321314587946306198443389020687317994992509996492289738896367908298443054596791082871516363358889014771092161295083832941974730742842522937314126602147054569065322954193396000515978715328241696370261519327422310164589493706453105967122789743005510317053392048588693098513719533535713833639776854473820224125697614271648730228460698898236813077744331200988802681672088026471770132892519727195171687223430220614056627985315541291682663873382450391510054792532797045901720189495134323274738983612718512206597502953296164145649951234477702556713150221639708768361930205254848399442199830892096423266245191124322614932943623652180868450611458948506364040942048876952510794610506865503168080218175971269738032577190455557543167152022934189124699134225600598755503816170261692044647896548260835951917893711773047511632082446367645104969392746429065195107626769129242550144136478226309070883730017812540674268399717855254185101395131711282306734084473785863019054752161508005315433251684369325993219744027956918171590901060977299746027836155468285656925384125948744575057461874239860724640433637341862802241214013493760348974475979633778704403292489454771253627714894689691267398972499676869055362745446478894689661735743424403118512989121778899180136819139533674561763932297187560968831290915346928510254742344422341713528307697556863186038999652878780492488019274157657131983047011398453212196315750191669726878749547712423479482052214994256583152721122560519631753843598745025657759931441236693002570088724772466331461534837454936593874296214109847408290703631233302217730223530967228797889181230318576978197207084329762210504978200376050845094007136099667852299380378950722962990432927094264364036888167537995633015869482793522812670252105197102436917746000999491197844816523050855575090204357973338055723599082613173166163570555556384241753822544170824263314956228517975503965622906286516193892650257913650112899035938480337287746295385743877632663899763105649741133475743879509266085651226447831040087137941784926200349139877670150196009123463839165362816586087152756356347515659058063456960174716964914299583811152518583820251163763307721552841525086722094039237035869814276598255710565418653036354509271976430889778913241843763790171279365858446101730393374537599290737246427694014823912905626628417699430616247382863923938551706952737125513324775924012367661453676370548369167473857476317739228447646940234666942412583052074610384750355553723890643050831371290388840278911134584129218822922680299990825458140059405298262218668220300685910668552111225006657380574763979181821455409336786641663110308615387331085240409656420674075920615381676366608217239990667232880161862911425499676831571869199774235773505620563549654198931840384057884521509834988863770471520503597766404204262173738545356467727850367745333742679956933599927100988186122473004353832393008987904848824728646419634553897714878053825112185241979294425742995752381608128833729357033562352226292618236088653632197884410543876257417495719138958993765344300014815158841359894469606980920973383309355507806889162684364031341628484632372866578118744246997994112439098333540786007180491360725569064280494300638573627186381384756954402294173777022548527647459598010462005394206738682167595827939528897449293838974964923710529497633848007197029721180691187495827848844933307343245664394404570774400996008081782559745544377109114428060363034795417231994575436310702023421378324742634979452914650094105365203289176488056972049523216106824435870661086038828725150935866229402317270643348351555708268065295920477449000497456995011487788104305381392769694224653210706683521833240728309027624957907268529270107596351172199809990265833584342056672961095196443908980723657694150502665869684457840752098078418735382200833594700410504091172293582872832483729659200992894908814819042890117367901270247615349421343137147667324498589313049780052640867011627764318770700917946994140366510057366078586372024607500979235319308476813100798196737234660039595501665577449508064113147662469371128908185727450667595248647475122853618480017750107473343997883180977544261860187997595095990381549845237421145311811595308933771360577421872499619394178867789056298240152123435258372421535919637383642696272849779731468815623485801270017278372549480427018976452065999607453317411099793952043517803240285987797679891106391631127628923448271013106461336370285986621184628311022922148801408052073767239565230855297883449503274787521452799669055385239737656164612852284694583013603112939033339891325761777344186022572166343650056390294713366910683394331915670642748619599492563567284569735798432010905255117745980938739094104459104090773882907814762283158517948610714119323911553133336747391252984164175422356695682116267165062065583384055230147075797753057721940133503153685044972430087365719122165147219892435926248426985174195444352134257621642907240021457519534908978487459745046985079521446957268757625702500681937345022492614262293338765652014379706315695944334441390596618333835190564131905341166874380343481702329855590636059034305321366271403504921705183093061923341654460679703939847266961159370165016303572355874139940153209083640229631773569180814160850707890399325334592739418558151358885012743780969789222609768630627059501492247429456089801596496279943843971278791687906265982062513658532787981004273858918906475268440682057484317886432666928140619152204739557595861245152294382837695894257103270306828037064510292447783709372610862095792756701252649510845426419970844046809747174604073039476603422664141459224045732048960154857291819684679578934011870152003229945767482263710588640027038667715075920101943264401584258162777590701685630536128881165178379741556017790414427402897804954289080699050926960005436517977106590840073659290147410032385578481917543181802594176248821356261135805224077381898971588283752471608064209373884427317143776539993331764310987364289499671925864930071113456234229522491874185844085172359082242804075777734103209457664774258656604350964155898485354573702013018702909841876573277605575048364825732160351875279814105938232379529400635758196849068321040148896730798555217890654908904859749081810065107974231281083731895063298576193298102195771198998214321865375864765699518157137044946568376446875454661078013085916146698479446414057467893942646254811070785199572700572817251209778457418313776828588858612880944216203185773329276482766497365028303809584890326845374737236427344840033485193570026146239827546703705541582484075051820048409673048728487417697608896249989006378459999194402982090578321178642336264757253412768672289186715811774741455315515662898129248506864061703865226067761793804047660426489663126990482542640720336464427364168331688727940577707250028179326163494111883502165993550125440263443024684057682846147573245967437826926623589250011516248623758109223906440113981561942006647924058282490661570771431821362154141341123243305775929832687405549301037212688776179333188473154179910465918648684996401091715593025216817459964778503901343255826196041422700021203640764354067482262421125172965066274082094655863025607703390576483019608645320598019152337988358400455708463355681271954200609253070563702485503407941422635717180064564012817275947635824234813865420476445853740436816394254973740296794504719930591094188188229961745813290202896938818760297312054094817619987482834906070036196589746877142167958259542965732060024574474645241436337124555014499495363291908168827782748177264440765717173167052670851142481621171975417254913855056004591291668388382016486268947422338130068484283121136488667187986984732301021560731475479580510295899247743163869994865240316415665284264043546404293574957843517606349761558898466700237509789250055071827213902645800540634323096833455350647052819821076928766926145122892192676245477019826505150447864935609445278425566454009036724546168790993810707835840606772543996078041780079212463882379173731646320830369194858906045521068037402301236538564172121938946851160655601720327703241118367147482217877253484622285700077609193859863111855814906747661666278218865451522716545993536283087630076649937124908645753915558967035005349999262774754942966923679109270771503164522172676313890996341643168161898683863128953644112299795300517287184453543837042724551570195864470173416790538718534711294892112447489650474153388986140237524580814321982339776709249666705295650170543885896288153902127507918006113905801600456865921505747075560260029511928047057191864494517997385986567238238937031494376602318255226602954144483635118134409838505945042737856124738112958837825452837815072989777694345281103266212337114803651236417727184227563971153034794515603644107675711752674095148560087872392488010611499355953610233384342271224541772241512305117705179563221974643443977310627904869746466666621824379528255325866162516330894440761263282254567666445423093553094449412480815766315329769148735196201782152391791713603518233578623356615596430895899311814449805622797971061023781923981422679969318426188592931905608504636571165716094800890881592517015424547120548535213608546148958515053411183267705134307287760866407094252028439479727289097443335655214242971619132471465795110541937358728039571131019580166008193194341914885611499504112794451411405695992171083201661848075764255063168325704001383427594028036279261801758841991313317805252754304652321715252825056934719919297833886583669982262511498083917063135176126347772064737372360106210640120003108631933417665795718697404398550037544527161931889036047168224948958016327981721238085819894863635228644214825500026937416714889193593454667285854313826225906643089234978542639411929372684000281177170852577485588656113960235228811877701581510005505589631538252126780949712118965202993969101341589555002520248395859789849542154155816527672956352017861526601277259780336174227208992315322070947002915333905259489997387589646992488930669071911910740693138548692822783808386272113187770449986214277606706654265139991190180110184104089847268530951037852877732530001287557035006184394364419673619629160811939552985683023158969972124528924840282425373544300181954002110746358170191788839546357924035511546838739028462242133318448555264023412701120130960060767043251567876519636695466519755321339613902770253119363944292283211175756920367509268305511104805034532540125330114485557925814088231531297390978229496317360422947703279536845036549570579858954658068284642598770116416781886035991656343469050222820790477153734769912464784606449412799828801306591821135633084792018023473818997092686928847533423772125740449686800888201979287101292005007021354198809691885557286964162729688030274492975340647276396528024859641254385491168834025615743752892172632548571019841475886370735763497711558730380589940629593815560175883989548702927410924033854566563434515676104980694229552238833575610144068745175445935032092998173723179441302976961959097617169900179446476341998968697797501452120994148637097510407658053617274119480476621453053974989654183201286598060089607944004692220987938285947851471759355511598391724697656755098999518014241527283508557241313625300037509998054786267392922172902217962405022680141368783693575839363154749053084350631539890790954048794709104481092690229817738335549933974782868881195277563328406277540778029357871216144187177325170182165540948395532489335866110345231353066174443790903724469403513971113877164989311568191397770264714855348810002768483411826928236354223508429738192656082257224538798577092926943524978517286745553458182284089134585535710234762987817174718550887147255928210551205078971155002749925663636983713769338311309996747338947835728481885341359358002130177325599367641779162130294350438289838104119748520672027296985983880699794158616989839866510626870235567639505708603244710631021217250985673329712559600679169161775260585909102895640965699519399528712045914214260991432143866732676970476967358456442366833748934229539774479565524466629833291937615505394920119868725714767992056588667055295240230752674880536952052987465399950210127815112169342649204985151481780593090385455316810072301208492405394138356541425585784953094049676100987971307741577909383627274802264253309740627772554353947118725106185723280709536078589849511387362498277827285285570083994433082136762900383658187045887688029647320410458226320506821391637887818140396724974027238707062025033484579565753351418995495589120732617660984438532857617790345205668908423690755304453346324715287282405445453372147013176480060988078409925528364427660196210457600493929133166173352301708296020360174086055775319184337711562520668856300918604589298951984206488304690371070869576255792854819266043524892714279553707897083731485646448304301931530826430030390476902482553369049729242973677650238854496378299582813648854814114911016503182144085900440758526124669369619210461027069498283846643219106399917064746352833918131319456813342309543161868372139130839219192272343241132752985675916451238299188687005013160176567764813194564460725102190281396008482506091719400613820245082234180515801307927833256623943515022146995033293684235210651156689605562312466514324929482787425889117556871699789987911995980348820002662859054016743738923827634819540244893439420557000199018192363564450078089573941700668378057638089343677284234959601710883820711120098224741405408584756157094879616852647481447730149591153623360878535356144007088896184403829627717145143009565253327456793735935520268574544446525658966489957319563683568503256842324450448091472797349754148162823130748622084304453749721894051837409572983944731693837888427647562966880713070756710014841425774742469058048700581357253985102394155538540282334590580693949711747809998555297009342517579309470640908849904826846575866833507078619088145512644863264138505828236696059561058862191052819074919281528119776952829817574299993819787291891854079085004255662393782556469154668869429160818733287094432462199714457892490871222787938639009572948619918769065078122708070098987093729249647597420759323225776458330386946658684994119444753700029934464096235421852636969997801487903682065402635727569766533932473231874436453239069704838042198561173792034830704620764363338899273802421009278734646536176017291980653483080575531229864123102740149498534020869867997649313305932219668165534927386277500687032320871816705474962111635359086390074596024049537983463304491637643699747663980728538266049724216604781688636796204206138495099413827681382533301813438121422986197197620825532333147462560592766063159469838772613150822444364126179018769977142502890301719657724013768814237044792598038293336638456480754022719446739192286150098365464237625000635940070528154374191633844186348544263394408529100270810316288365199375381124231310323746638754459732050041238820145058373766959576600794418485856498370607576055104177621595121367160383785548609265948941416682184273914867097147990271665402600965327981292756203164597090138900627966771401984511624068908947077123060749465187340611077725855129201253843030480898023512529064754613686516157861566011083529326499765308036360250690316628923274065221783979583271631736132838230824796705638829804651744223607778442316974419108222321523123786824888643062294717380070848485814685867525277814524569860528201027985749961117903366884921712089843747112232606734579476190226546885278268784472343930586401244402676532227957925159038628537847851421981588768358684412626898036537130023652988414099073026766968195612941893927019753787586537395475936712505508909634360316130659596548639619319560642361998603719976434245775817564315974303864093819123441908670695075624120143608655759560376541979572429556087277551285060442688324266824140246957493985352358263819332820383124649210071437959179551810642982765838897861330766279525949824801419839283175731381071051442249325461400488625091457129751989234813728994767609459715147578234197260135967225568740834778954737739991927411668829165724915331720765983941441678185623223736778971078888441237179838379008619189137517721965534629194072337487201539075997145822032181640696537652948472926311121794700736150251260432888771958661051351608030056907700776776882440670921288809734260662208097853911689498709257769624881905291855908816965405951224452348425099658663070642032576235307173967752061909797460550494281488067194959093017346293259320909000001256861644133555759211961242944065235694933957654067173203730659046033919481730587979058955404922514499992280831614482974201271217742866772875453089232971127919595623082712199741086657376245828051598244848676947759123837405872130759733946024987862109021007226114740056419587469943601507619093577131741108545755556915822345199789279419664894051603752766276331831378578836025819871301780237278699287431865954608595451626381124319180609368875927592094643444826700648104930455868209010664893168036350054991936637228375486206210348971769332521892094162780276926018607671457870665877739462295977183506792235534315176397105276601636805889519669978153705366897015255188245801778034481184035350045578578088014582300119555103308299971768304048877573293508467830050905937623646672714386277741395749533210396609238301536247265648107710448462223518487502069846277332507461986247675621212541031547878514412087344226118609125965144719367724804819913538886371377622308757616653913928388460384559160628010369728023276140134922418782109469133014606261586712837544526248507348120002386853018965791848918658177608240526553108151912091747621853937447140891193129187312125366489813223977426402319455592931766584295211891273760662958138611367230908312473117879443638039626767727729385656865804990654373136526211239734849225649222390195832117462638639475900554894925359623451873701086164957467881573168853193719745633030286162165119911283316993517073667416195204066103673038890761298988732597929327165307642671982053859672985125632823960181403934827603700873144126707294330481537481713876990342319789982718046769879722814279767359911200599559050044934501452534646874180437475066756155583318691985611591554713231563681506181231657093693212620540195323798988621412204537242125380734581672587299856882869879736374469124409558314856313991243843061932388855199183898825922526774528362621346202211025791430875853459932081647347078049604207406720141291084200442132143733405415264610571077525338589275611502682441657219463941634765731206739068378746806285831321843926255635932971148232646036690476436516213548440036204831969631912543264368740349366399837190280028082479123060730643229346822869403817390958295474308020269327373486752386778488442662520938049884631625319845021062585454587810532585999471062935825069567238013676312661458714936277414488934518905196931354704796932418892256190484419035681359135697520103783772581074992298556894280768048828646994764385565049950201711987074639874516771839696215736083647675356702949773098278991973730690588638271856171023254475800836960584441733848342575743303546333353106645001347663367643206197992165008677178837259910360801962234723304119886612701785460087714852481855204253328030320335188227323195803404894269180073905354239216260575272872820246633749375776199746003426819258919617698403381663867122708509608926024120151922140774120242057845221450542367381395692197717017224166146693985736117752143562253787434616154167543872689304719614672876373536157682428968584077865196063308791087915059896496676357593609510229139504144241349927249604162319159181500481075205816933400652689972831548337368243372857020191368940422640525185925362016452055626225176170982206459820838786333654314939386922267804881046062299385943685950602279360101282386665555502041119502902420371198257305230367799947982610763717880729808042418339964166708942140067708637602543480975436433748842402586132003227120110505723162454094802940187509039257930606040095290898202980210271362959850384789017757879841322822642150774681822795036568166546079988668409514272657880018437250229738118331108512980816342188944395375012655903432031616807470840079086262524436830593929706796600594288154704364192867417645575683909793509851157150623730025207339252289979784861783719397867929943771505155113633809449946658494493531791096356957417578061828399557611122339483045550844794511425215085203933268798769870286321709007672075994622613299170853477108571970532804733381374787634107759492921448737915624187655072284784856854564883203465426195501134284082007863075359545280758954856313899092166954329948822379847949878524876086068795082694037093291351166210436164329066354574522391817118906434361080243550887302141430428659117822362508689335168490498793601480613144118665485276859242004087809849994462384805827583325833135773402495152694565218320276445352777327835566377757238696292728753003820433210064226088094998720796966498324581078877121226132520549915979964908964263940250298366949995100169257907746444667683007593347515671605314931079000998187504267717397892019598611967371765804168325469702458742768331767045460427743613253891478672696392038669527687357465795854206726066891391445623040825089240965691082928683781626532383011367073709623630146495043287866828887549338655857353271974619059423258483312523754498045668664166935159275647546125828869927675714355364866882498371360064762265285666028119141252444350606243298874103343425542454559623822154203884126085181602950171296465821278378035073189242285975863234595573797085547469566667143108600128412464549227507006453015115339698475148257623420953336646049731362983533419207991293431119366041534262736353917094477421714182000315984532769991737962739717268663574704306157051491314159892105671797261197707493684323047397270881493786209420208810088107417240233930785620166301804763493849840779933884629791131298796987681649032620415542856368179110848632907205850632510606572073320262955651386375485391986551829839283005462503676409522909751707441996420536669866683000470633756752785236527967668157508552154976713350851975883032808129810893874776607514218127949447677039887862389547036321283145257495326830098293178822731684816058367584913729371550965892629305634628030847270578945222533375080318254009889115071229164760142819233798786569735988116923452398107848135096658990044363902330132910489926765878028266421311396434939302284759908440104439316691561813186859082480063580009109617680018373304445876900475864940334429726884808025885780994556458078189360326561463383207312285344037387603195595336184350649898543440795288029342991127244894708692433899012947852762922502116341346999545586669358289382112514576771829607384950068651394741630934692529311880232785997724498154348704580294187160574496240706106804056671481808285974544033474296705095076816542062762753321309624867444274438995383631597671381780505896195940995376761384452376762787097744293632721244333441908564567115277095697908291170218920250488526623295687530145062822691543872994173065587828370113978204634621214066380729557283162917144211715957110226923510019726608729338968663811502718381897282991815353152389157690178998484418059973865078716521304667725390071617964593078018663566941160045706148752809121045588268396699281055044648995525605016220464617666627121369853100532171090984940383985868567931896775261100976198519193601769577139546842289985456384782448171513553796640718409342394731288498497910248224463552662938615360629201570047238299762598194028367812458338082893313345888751767392863334141313517366579471946013559539970163254466392101174381326841705108721346082802801130940605154598513356501514477439002618385664479972975194193267949906267293904692471984039124858474128678968874567712251200517360971242633898231593319959672994801368154401938213943151466016341824346550322916643731139945842242924469149224241236086222777710920822411125455899721247605723549564162967662517222404747950325978664835126355901004624320268180436950910466077604592712433718445885364472081534407584386158789366861204878984776922454977148389545827870420484350711088480622536583688232471303331397698990736692711259079463770007835913414217288775093821316268655481494838762581903863952134071455557602328882033569453700930205007439363999539696939048064616505379096015438930852663725420006971812594718514687990100328898763669748138416205552875290565479274710441503535508963799819828897841182821341234447929819965819584959468959155012598721923157579644248540993606060673026770538736642127253233762564136909336929663065613552867096398555761393512202765064229608448634473189796802995534383249378411259519428604772431595545609605860146745437676549720546127207190561922908671899612652278814654597186137533679144776688156225718052292557441781424120052399854163361812861508702007968715638080299894495225098085327770710276841455514608287064052954430010463048282398838049762911908713356232829717315411211017122802033097765434051109079254163830348766709196825124056825871811009410613742184420031570205763192370246307849144884902549887766053465362952875298026949865675443212012951873066638491140548880035390491471790685704165779977158488764396289694303100758880741431178254660622375066623523816851092609717765963106698724957949659295440370367952588429284670106949212616433110557052151645011450318839309542538680175064957700639970814901421325100766465088901993357440909962190084295629834482890672549777910973439935421828857779770806672376438741791967860931098350077116732025914402180949978398499816092845865394985717596623764019646521147253418809655522759624700688747863386966307885881056350060214641731295227019497230091665646003898868762564101482828281059256551997716208871462805261229831988403390468012376909381801963685095009129534143848575305140414899181192586063554089748994577511540648539264868704624930570979638329069772400566178137808718572500793425773695916984711438961673954159705941731677998039299736803316602424777045560700502881586364885635225701935274625187812238691842738518363514170203375214384495640046141261365396527711781976739215702197881013661952791466572240551303277057347115098605199517890441523418289940205744625816800519069253574297971863526945902180606791446206497081504654212014654478902237405797240036294570668010971437879687633025938456659989699593033172591950434900819915285166429606882629410849711093818843678649565772664781926530480853300940589376913924331535078211544975519742814734390252187043181092102157059361287456065063880272795260383262939759697293623511165270089675573263034130865118450638285576541392963746846665101695991538857139283057539065708078457697988235918852737279594984227550314326979541742501590918552403476135251655011758513384327003697257510647613685067884030618100656080333645856796006777991413991361966210902175660842066682639399080962027693459408232623932325046682926086123068018239376280488409288131021654430494192538919495969782057123640523857785661088771717174249033149559141569631260413635716357842277618212660237100028500079446900599621989654138134910431329668216962418237292855261092182129670984978530147584992031496378505413485095440990037884468993708197156662740401646545009538321490183918594839749064615533810079180217030237756181576226697588274638169361749359182372546835915511913769381097477847976140820674717408361054737516135351736236384599065458381265902930815427211006565158179173591642732587006796829090135044124725337894647735396480120926331336442124514159690197409157383468241032831584628792321442659827207376956760288188166159547422959920906343282818381221598896223485144467362927108876159025541809770194062820140568764075132692219227850964930342320881505366764937683452004185752249755592830981676874842897275256190473270809181955172694429196120072086067300503178685944676572347617641662595121871667331277273301162448467928348474981917322704370409239373694462818268091864676848537967143490770952419563364578129782311055686096286065663895877930333006187359971364894857355110908329579488558157031079877368278838649362331308159261435852333791185109766379050877709995985121864371579022998600920458147254681828229095615615840801543660756707250026721969256765169520614402679143851379010161655397381132627658087371505564257754856322048269944312893791187434445220365776410476342669829634701353588550199837104500811925606314930705483602362622734437651746854262867758643051932769420148620837421228854528017593058072846703100417627953777452155053681806529778277173601198633549758345438202284671332058110455475055730248792624322622558934197043809938915826809094247797044708668608875926873861892194141490774445477228864674244741782459286674771120179534558102878714389031824970222024542852279164322211452447120631966044313302070543393206055426952342570909151315518054894512695076335734849000038872495788177075504224824153221789152296746311192541613070565641463184297873796439917452693458007075438744521759537233793043507489398154248881664604644257833250590832053309450529901293717355635767466513910035240026506837503478983873158252363107774703717238013351056046174054548878621811299379463402321952020878396067947992541958858582784617672548441636949015187982756300329744016531627319649848150786024970218728871523572121288876565248716619428403914195988723384757796704599988847715352496400676300240924361756193926449343322417183531985741586143270015617931453669976309535326716421734300602340665280144379070156053138786276145391280374436023198309748138882012113146911142074026652113196935122524374738341708409325664939061187333106814701172666846729368112223384210747958345243978227175703302556361073784364292308011759941227417803720350336877552892765775112243655629293349031061173594018962078414237231074701525314196912224486687000098174465391390961067795701847073226724237705537374845753702555417847577172903309752989966091475210491813380183052247493360552532665882768814138294259400438710949406130187960566506584393046346023158066916784250553307072628302036644816816481828451278806169771536315660169298128495213551005535665456688848976617610843288203099292625914151981976785899965761348763031949712298582003926365922531695554815093524108871602077422384311872593094894769934892931297247737612726682368730860965632453292415621127630107346599320312070465272287422639557139160870723855049047542325781567125285632183113030383913477657940988203737491823008180767553133168424071688633856118576931375929615916727023159459554102709835362395246183043124122019820540429416923610851225573422661618100145535754020350831752570207882797464824118471337187849407935089494457364060154688113608043613624024335608268623667722445518307412911155848214516034463710350576361408997486808580597238023734505523459074822238567854869859256659738423361080218130819581731516799884578417520231448841032208429326906461453644905409508141432991391633998364267116228013157084906430595440142186017820371123611216689532336485340923541345203654110054430832258485098728349589689668999759050794984631226093342030204792461644374539960432718162620717435064366179812940078635536718222115960748010524442935786883736234304835579277365268696450765736225285624205151006863954213675511767317466263114918905293539647599470056913503200686843676268078833296509655669498392993630267684462125429687254340801706781317637893102856206622101569746470260237613485877057878117412895508705855783951565927092522809560414380896358346335698070137644444935721839226125512692954334667640064733619823775922449895569474753657524731858214055367828815036643852719613767688587769351992400015311381629016876808142878065512359584319418541598144865379195949420264557726442056715803928698163874287680054448372573689706407126766690943475567328706505325543653764423106915761544208383259381997594980273816610497437667456785479357377198919437637341717417685370472100642869844257706181354058116382280075926433647663404614240388517218918602375549426629484448126975075117591092545619988579126166158794868537833857546055368715810801664406364285443123918052199795879217666953506081337410801246502110415260944843920634739172352223460875094577279567768204498991367928746448204032229832135510396812078902885871404684908088948122990628799536912624753228855645465690069260189614250895214284138100693734941079569042678612485144736151151526988010219970797616101016472134762516747877403898066032521187329636489984699637008737724252428044602080704559850113951722275547531612152234906109000219009800343925447097786581460738162670823656099720528282934718073244255960118127151457484705969664985700105489120896381630765694497983008419322376178130042809657010713815972038108252066347171246714190089024430966721801399258981197510491857838142528451989505878491172271354406510173415190096369749302655627326123940527996324843746272597298304671521059892104556148144664928138902786090047624881437421682443018977849224929019800961336669449893020830300317082706278443864564390427621017972739306574555867976298507677642110442391747057473482397008996222781086688484501105897747231815650717075600020731375212340940000770770684291652785878225191730287219615870538169656072320416182710804034558988814444378091359575418657486404443178175635969999178440433606721983892738499180587143807555962279573004678416308579422339753553420327358048252786928697786116506107656494090007293478202321562744705576142376179184036163805423030847643129622616388848793343883206306387581294884322297769314597421000688626798080903992713392511268301988523715568328008807699527333370611339337381492528500261573687672860787455369099884722272243316923941955070401544632254037721426371376348976284212950567496225187103825936001064872190844165310415366497335801207354696037792009122726848510311373317075228944264797498414991388495295012739068306827978448088926322733901729716780556206891769693640234129431208056912734381029108444847779900135952056868346279018933832185970109353315079714272098166180740086435809654196371819656366430613570237784439769027535185459604175004019283823331890294225400582780893958983688142396852383892360806515793067839838618862101784418008972170317659138418905061752546042530122914144526305436621644147491081261382528838446129810733751140475405075939940594475194988906221650846538727089359415910037776150556958493915261268844035104335746180735347734871674255378191178834441254035402502689005438269106512248969108582878233284014004191916308310072538400496673960825438684754608210418061714299522956801865291385356998179018593356271402252205462608256487590303085007763014295736164206936012187067897628426197797752177062827353907148222817674703512274977544332295174803732800681209654990173190282847376354485136090800760818143735604921378661517153565898956407827564718895124073979722360979673304889489413655038118606408006674896789858574483267407864138588468373894497603825880769405216341606069051457948739527783342614948490164002682223092952798208286076324754030802560187092841376779430044918483686660373233832437696829662806495630075673011856851324940811590256629215453403652149809954083558023531044947782611340244858996885968145387468312010171540755221451182666774528131724055587546591234026579305515922146286280250003382427221914102021753208004177881202613827867010741063232524616992388682903059573910557266085971697813781598210262590102496505425360209736092192376994829940940899059166140320567452131188306073314629951742078370370377131398093204879740610086148891783459062233434117650739688419432204212145279369411142523222949515510992779878096460410920362374791014423983311650919283721758292165996738768517611871207419909107014389300852625240240509263781393077647327830052443169555432660850400626534100513164845336717003577240013185818741221047169289996431564576991752167625451202839190496324852143604131122003366110754932248741437882927994308006079322410390322849964452704740886979176632057364539642483295757575318851255058718832308817495318957061578222799876392890010242744150020310983197040940063147926579251477413541616099767981690568833729675628886060503352395631955676847720265328020170780442767037189387061770288212568387664866918446594783154391469332032421230715091432032032566594086263194990400213918923916167537384293533874659836379930310443262407282881918940803534025491372115108336643738722354519267781016448814489304056801179956392846864887965269007443118582961519271986623212999510088678084503713915860976733564697503241446260543463763055263449861487686874602721245530326930569370524428203712928984231142642033518383018654902515287773357100453798915864436278394133816522370611239801808695530812402374093337346759508544863288935244875026867668494875667590960904374475076991996027577888176592492036475191153751997586099396170579748989459479164865223523150144480982875387721342864885969922120125158203745752931372694251758975749531559991207951269346876573354797450950681358050716143324166148708502334634927621277997886847056778907210790687508714936096778505123251282300053925425761267318549788643860751914537735953858337840060590050029404192974472097002462668659519392808923583139734303349567402234733242491739911262503786930978613386294115027562244168227664997393721312392923665591603557015541620170363118884524960570035918121624006278651980823564054466023509738578542713864048990760778367492978862972359711641095110190892440268307428709246418933561792798442923701242708762400129478399649291672909782389666140721321771760756279800284918647937354303234951816690435712590726350700191867682710835753357854897446486504446656165644265234023419192941612474803643728291116567494623450128949116068319321077645576974694025242838498308371140491343506103227517039694620164325068122673052245480579216501464841782228652928957125401302557011531555992464234741990745728515473061922955966317269634774386575321260867731272232824066005470547413145745760390764297790700597609711591823518041545179311471338842760817904570046546467291466574887710834553693589745712454571842046625435813722856419984662769903995649994654210578655709743714384173002212419959138189875719874940263253101916203266226881194037551106730484062143423279503152759173082150132387208008186529155901653600438384782655898808852959599906210455205982550380813248792479239741822613495487044489946952714175359356348637951890910975645207965767305543203661262992927147579785305984187684028866665384234997685715945844378281321580791053831055135223612132934696337345769669029786353633551284907492441752276971334238382432079571234943572020582948531789088282173572149585198907155823014216788493269911265512624076197108437595066988845728444142305144420422409271452949442803834695179265948288357433055856239284417937380687588089005508236365137356486087568799245209227333265985113278601396769120282435192522782299563620477874933037249684418102746075361277131633443456991572350242866849268185686260324559831385278619462322986659987271693881125567759316805049388903713170948203644181214434869666738887579473135128359046519853620695599789342487175521000804944715443972163885837675309566183823425588005526173651107707124660316757397168681369597454233779880487134025745320407565963443298180519243048786122493735484176132898677334197147968538168122136651614416551608639935801458523706607845842214290815736292267055585671283106524135461403334176466620043523708254512560798927448130657523255953882988050589294800544360938031742015137740249385327273220261636188160730898275787595340335285312992507067263309614157976730635012890420707982624096979230329428986962792097932206391537082919593813311674467035363556651500534843938198626885061837923194151421598134144246325413948515501171490006374198001853227205718321301932432407434626570620784004694988525389073075549754614815768557471304075420151714573141696676234230867488535211107684809594806509400443606843122911070645217676422267818393401860779876744423528398695663435433698909502798891205030083326216960511679380303002717722244262820015335461807655517476236054714975695131605736845480100998114939025789110495243443625306999284127007077671852466501944201262606697916784723029898625810944761186003807191012841168789990913191774867342162531899298891561019891385705914237699180314692743028189819091369728445946302848235877195694462965493502089193730756785684056713187495276673632084327390056200902774570768210401282241682362356273913065345816438430695654929033683040051561947249551722812400435594025151085438410337237608889527610267211117197874003149047015985492761456130832251034622651205367488829245788925711778698514162520740863024050667143918371752756226868225812404109617002004833874099751234562612193898726742077313997281810513161756144519335980448828420955145677637461375804186935496990324945849871338435062779584849240852815943049523788376860309770693442071592628376612145086573142470364232327472323312952315957704933421622698955466562289203919283682103460981170705947668445855949772738730995957315884789443842432319927659593039503330484256009771926189514345288783699290611412745394790001196398968202107165443958804502101654935599065082007114485040047021142272524811955474034583699932087739776766393104293779775073188794462866718919087792383265333021363053046511839818106615377400457303180320292072674357070902503485858413887645077746829668667454588546291677315732287638015854374747042010144902889215140962074667002105514986788834133480368035631935218662326267809496999856186549664308055504482329612452048116341172261000770372950455675340813705997401032537129877824819789284148173624824569506943304935647141235310758200114898160408165365514242904296202050402431727908979577688857944595100430302677682649793146667448060344004283248891155887380723185040760418092416416985839859939532421341502379765971879910853981350584002521558894987697165047364728511831763540931626087336895864870265222398542429803550876828184586013436914140354094306165673855081095048015545975474991340926526326523925660403735056720354769004992847513334841896298379452618377760118728564401822113500614961807044438713003478160105513246364313259695795082703936535935039775375977866855786756540107908880444905075254905024306627645815597617364556749604638818775380022114343394752398690213613334519408203009479384220005687621913604954471164841976990585978704168353221236740886621381210736427131086788128882114772406728379647832207881202186696234412593490873714344090685657646720136332349350815170831042139385080203688886719496405063070923771794200319746005000432935120649082434006322199128233406474230893411427339901788528240405558975400192330338618132178301374072363649055209721540040412753932872657659002607828853441451093306020310318884782935803985236290681909308269416491428650278928292449921185088958068085002804617378568038154372836226208981829015266641632152627043946201991189335254043147747147221433531986002715586095241423398436927271981588468537426151010659364282870626145933487564409280959757754164808744894942583150680782128705887834663791071984349591387379813650976797396559909274746345373622752881485758114247524482230301883717358963498078760639849504747028598159700955282720507618815649116550456589456159697408736716071908869929415970736096185919462898630492405391017424859500352409968019186564950084787714136381224918791942659084093196509408675969812866068592010132878982125678890738348994214583033558963502698853051741906430925497157354157593705005718690605423007175437678363679253472494504326994563791403381803863399126221158884977623717471347980417808722878699701405816385875333585709206258406067917100831136219473664959517177551515902433784949196079389308762648648534573808038311670948372513455373938831991792012381524042408356730942376838249121884696404301082020767800094483468870186829377465006124546473137574989427406098778550700271005027327348384225098954264520556399761281975678027830244591479571507760294840542354432375904574433274117243711433389666074971915313813782916130224313103299454100417846263486351671954311457909823436136646156143428282407991734410220534452465033592714682783966568864880775373989846133902161875054593490012483399606046188125254582433117524368831892963587328145164254182113237729616752443413385839978457356313979417453752020147150071935828706916874625684054508616883563357806689981481713360945463185357716569117666046640635810162247136110332071112156508169315171787834635016041125824210817076904171309992434581192043680299011136832550833800322102700968718041099957413498935597392751824613808418087995928259204247812200205602223360653117414138811390307159281980916396585166974544911859734299494343590593118366736782389469368259450655653712101002923787280760569247033147948912158240613869653253463779169751887278629903465091341230581716084372495394463277556412841380336578365491357716558990194237683748987833952041648075436808145790353477741407973826810695052445688050996589638871077210339760922221954318322525491975801383029398081025135311802317838596402802537574355679535063767674422821251263564582488138474988383093864362734206806169670412154301933721663172989195420505733423779464540432887339533953165099481027795639050912340407607050703087810105768909117435061323143518462146342449829695602874100038157123592478308360580785749634320987205409417390513044919213538554030513454430371571387922968989905988231055839848609980149383709291616993273667281162598593796392962494938262606940174177968202251742142552137670894380979225958353133230438805897600410889458430426276812426605200395979693482689595600845870831274846246196420588299163501524105470791377544585024467419360014556813742292268177173601875105002698168074743150046498265986315396448794430606902113983429694914157332603324237252369711952087905478008078496753752431618634977548211428785288155719628672828627926041365211098782848914910189741636003113132329035244774449350023264241580427647664403874880649402725699967400466056287452652992985953580702090526699543571441899849431553172290620775828379472500188075364631365688392312958723076572900343577962796992800362338445399470387360763783292135686094041021626807107950111481135886099494381828651799851223609192027528581296066820196169898797013978590501922218329592190178277906167358704864374405003191340474290091985388797500147174490762067000533705754132843074620088695748250296353514629105091539661725955970180603995847801952043714731799774509658632592654993367522944413787302221629980424734125123735093432922828338301206410727992075862282642896911137973749998686441217332622803232693022044260025087092495315427717200530348129695107614188742526831195084816733568167736978793448366410478604212338347241473823988411922481404513089820927164552132624196199239909837019597733047275743485977241502785605266197191045639215122781047658081639004802504274971283612760939208720072892342760054641069428478601768839472536128718946965081719925476629329867440629803872874985459779625556950539607662638581797714658080661585350009114613860086360204234438317222703388857107616002204882655594534111692997198847274773635149828698349397579595779378103002539373701243844563887927077256678570439010767351078067434487296188954982625243303362282552281450085318411708953982660590387875192445738366287005549883127504632640826205867782465877009154352176180861820200197322130085480612937737246455782491604485279095610119050193705696960797378900302918657219691041080443008885843125458408020370176484764504123520766579335057046249941383387401542970308161301634040965808224106561586804856740350633660819481021235399482792884937298505504637935451483415401922373332745081632087615008594067666161788888226787898485697068229713839142085667711971101088605153179110940724928548787077129088233602438788876872845861475642927435098236913173366504766654466827980918656646747712392859718446608387944695367832569402972344350948568570692681663667252994886984790209806969816101461874482329984648012241725840080896744972088527820001281222568481398847390989158940530511827532459782791010981248110762173586222309309995504640390750973901167885957907988503393444076410341960137333437502456129418338753441302051092573325845172626693301981687241945026738597182133708915467519250875056526099594693048152693096796648639619179708028559466501139927353020583205527842237791378746926151632011425269805751702368979107789093093561620306039934118681968813424588006148147854948001714665171896790688994367132984343247212118060616106998454887272865839044206546143848093230299629197153066379918448272238092930459916205968596173743709987152580982206562490441772141844700536814626797361788522694188507037513255886844265520015201383629368166176264581088827333821809904952640947310513593917914812403795574550311563194908893600709176958167529460811356846517586675117855846248251498871801285501459848433814755299054934949499764987838252923567149803903470088460005404537463321059355869307318474016049060709560786109602201574808916796010954291161364314710653896869094382103142766201094699997483393655747656789687652270222985999542313850306068853893312540650615425064926493796274791621485995583876485952500508074634540757451478812809531910802319074864116031513788476982262947973246067128092018720364693463914830474784226835926777084170333683687386016986129427254188322513689944446362381885741820284378224806113286028907550274142763775253340906602259932271901590855174749708750342127938392697115616469361261077126239660138846621577814621658627004587921862368242493704880123464557381103800433852584958129365426555021496019667058762761677004920349328909288734634734880633549896194661479353960604005869530120247356012908364099934990722798919976866589393320936068834332548876456637681601425429057077145805470187656779268969112336366420867432393598914477779696997113468564106345203780242751577577255947565687803961722559066522586494611427348449003601028992927389253700689010375567538768086184300221220870954096080376387994960132073383048129558901403758741625346182589278371491957691483963415324281907713884088016816117279124416193975042389789230749065451782961686589393945756710111997820195817042400602351187899178772772653368908097032333238875897711687331015071087164652415121793126828675652462830595782282454383939251970779463612854310731330810297485168506445003603203126895926411669943271607369239594579133027967604884339035136790769907835894010924243876959441370140679328776332625817949691376958931739051399018960247161327947087294734274373453890444738463888930091506654948931671748677883706801983647532510993923886801581402297504284112089269180508945075550049808430113274469892030045036282035525972664158870799516818880616743685393280313112079282988523716938779370205613425276860220739107178535878264839939845589901827765229625687304103548292572221355843277163278643052137992545180836980761932337195274135191278993936040465473804630479748681982092957818103345821286327659316318568954433228953315695620009256397417688117211079075286905882425149127613666955534964971812788828250595472098220312569528084783554051136781984899433237039095008783468157878277800728071669316348883339338382999095606705134642904744763228059128024343903912327811253437612467887743945405365955951187714372123281740439829760790674320347984480401035068546484563658748054392370170019572707578250120390553376435838926709190426111332707480965766876465070376261681425783678172868753659140103758795919072919072943688833862650545943024148757912379587462914541865816419547710420618899446142975319758468749309498372458572352578013674795941390035175987507084026440383921266921617201866912138790567332826871709621986196460794088550085483883676286573020783849175990957629009254209181872644772482657321156180377588222485700994832093649216215240486663784640338920072342705619193050218851643433968802862710909883483726428221418188560916815755001182439915034198442696197044750222167370058018642611680799952401114561790641791318190403568493578120693975140094070334956300661732725874478877072434200813869472573320739762517481724481208709803364945993080849612311603162636557773281477993452439052839503966919665246684726722258186342370800291129423276137023361183199255929552937702798496321743128237770544409818751852086559756391136764168711012643261412286408634874259155933532924728598352522965967232243641342228348481740151650190256401709328512599901006414750464193060037602264845582139650931225068550016445800047218410489362921881039920371258991160274231224085639487058965226223739973851300453858164581893070071453587585906916681275721850261361589008407915015841332127418277728792829443838847441637708493697644811248587227037192828521716177244047770333070730609511858432552959233563082003913826478039356790695027803112481588595533981351463212886745399691250536799791745314024836644414771359204939254510149615676334800532119596975111976077216448047441563390268834857832606318838291988264384656030269652261248923391572748390845274814795450410792818798811543997030123057042888719795505679446747083947546679932052494381857231220731244992631559264535475865965928153693354609024542928134616828447828019602856216219278709828134287927908717088825060934690065893331242726994798342978233154117956314640459651319007484227651983265105915227820550948843271940074071285360227551833311158070145913359942276086869677978932298246162256272322836910384946673964420307528706984413421852461262408885068340545333027176029071307322239192353925196070540202342527214718396557283836181952710158750040554870519990762557833467519053205358153396302388720314176439826074742697875317464218407200348164127627316549832163875472865244940532561080222326025628795739591841793860484970079403719207817269115478113934262514965035017213343403932566380215053746018437247345183439442653275699147028422212362821629311762397240001803265929350148414436226864060174192310520552173650661680845783011403872253552011625631201244688806196746738655508524109773694010733695081756969767203333344101219291502722761378898192204713431791780671537453575014467955196446225730935111751252063967358045578232261588407530321949332924047331012222742444171038132890282194515558266403951280042839363659850036693206345758604518162690743177041802143169297819768366249916340428355468641462466326092843372903532159865923744582553979236335661843862433202857343946846476801826694755605319937456279009767156228108162582179216781934629201427599924299619815579070949968411341388241019690793953347573479579061807380771667087544956671901874229138667986711089167983943520783600505255716981463908024613789243929191544827569155841261141545807749145406676282570943200059362502567109966640269246549659291200324666498828071922578892559428051431091995947153631683889420719424296284053571033463440244221572866518153687826049843350649350579285658587892006718607433032555292906209596168498828964579631600595965355973307372116322632730527020896807641270398884702914998338213523890013330943168080855055948394449393847937180468024102897953735769325345152493776833643515350905758355232184932101825326156886128501883811380902815495255246037025067610492299078188055055132490680285711410737437070986151868323693652131360474428961239372345888267300930842381276373826375822852184968045720076550678976306465742180567403974133780123868097033546236546387678337407364631470471468606584613727824858630214497621873249314640385774366997189719157873212283623046841361128555564936449392652995482631601090533427601909248745451327044294958732672825983165742115881278786087979125562286159144524777441606810225078470399594044560117757076176049826694511906669584613774626815974894910663508000176681936712545271082806720603906826705436863993964633863039274784485106529211980759458226673551381696449277756043573581436826435112495180856168841032436600115240720148393830958030051096313875038870612750249426415222783410901138149439054068417957763230125515860924696188899612459933715642151457256691914934868446295828240825760839462960409994078400748417038825977884148252016761943443403071129403675949923091511825031794332126245276608101597933884966119009470292414998653261817861148033203422281178938609096760463980253458047923899170359241573470823246931077345568270595868957830598554854228011602743371009403151608788114202322964460451929395543328961325019424589675437761060268885348583561504133521327544187491427659698410980112818044287432042223385938574944588555492665704954656408433244291536973692755337420550123832353271276827612945112468785529087969232312732693956003769455424588518375487217039444899564843363709475871519992248434145479646652508937103053449267775870431475583614136913318647231801926248638425995689891371348466677656163471983030581833598638094005149363233437602019540713868041523916969811940119579547665693412277148619592815089833721784514060586637423208583548878098573562817439573220110462639486352290684316024263827343707189667202704259524155053020761290978720808780085918995216657253254631942803713087423942696439077629580393785446277937291721017621801947203466090268030470056531512684918035695913154710537386438609256982345223782361720751333403610660611086855040323569235532729598111477266921689127944467142205312870959050986181298891742117942378896038065100100298189166448480324333275083128534262158167063252664210385540983551962459641710299322166991772464581448892021161791484300070143730045571853530459864993787256496040889670589936201051065742068548887878466962483424418105425006483284287650207916563189789967326882994389229153283925231204326228354832143546321828001366647210572374823595951375263827603777179734520072454404235826739002946049901933250865256896766877618121361944341029804236645574534952987383518313268342342303101425027079583595099081018030883600849722069730322424919675578377233328093434175102631981715488038299322108070599989849484785750068185927973394470201815495957159945730741637100739591570216550707885372527342616236419756305905827590690654031354042148138964631065593208290239357686205464340327397374548012907140771826658365806964208802618050239789895428642636147565548845769978347018724787314040990495621626924409793506802926667265919713766634391204823223596102882498311772674338247725401792375135839133587574426650679006983080130470810465807149512112059502380055094410418018072189926965652061548515904089854042921059132335284356003679194550921470810231776830398910826502158390410654237531387769486916394627479520600357211020006986860481643215945889307927651951255701304698234387188624064736084531405526546875170078077943880534326050634143082994346105029427277461000023986255969569186280658878890663030137070923652705336234976895051310475853327023937927420654424912970445704706519242531856732905557216496962562070864073967573155754971041622481183009162852770468334050708761069646041354305988220506195704986505015201521906731319074811459125995768757549199516847178426889967030544679959950808756976716975755228161033240482716958261884499618917841738780514748839731574881238719110064070819915815238795667419623837191075437603488638098530286702560777982672061774073572806643478461743950784490133400475245458970230415039094597425446362378343187270465577212297255258365027977359442424378466609412257897929173120668956713530802309479770988318894670916779688318006608508250251523740159381284116757631467037474535105904878167751762386335537072581491588515935929157588990070375738715911984554265948771625156611359748603414730375348074458396383490622625988030058509543982808348633278633176839265515090263847284894482288837729744803667341756537151811233251991986437599802816635959087111255345784503664612825330282997923562032743848530772261459874915139177766084942832465431856178048665226117871480100769780145198114218713739656636664621534801579809676995285082384998087396609575966448114595632555481304847353698812322084292504492690287175441026740813870906441093819895488825399129311081076027951014289717046381187150804765102579296542352726539018595236467653793122537770860821813407204481436593018880540726446145114207085073603518664135810864703696762012486923295173004718541914106844575378007737474768018563444596603579373910257646576856638852830661785291994776523782683713950241198406777795588852278168799906696937883101244320051015922343240500056493683228512316683505149789378876344771075542747356009159652176073907007220392835321101095469449604421115389890086440142011264020726778116361331072132253665028616263526979994445388420630573809442987277192981030718257941499959336292514599373549925363930248644284996848697680705900911013889378864386632652178469264922883982453133756723795349597856216914795693561389774947788989013276597753925177068610707685598061242042952349219277718889178680841796795452143594667333151709990554722224155443445210616414508807435924617941940932778967121694620834874075443591921563899939310927705184590660894404817978385731247271660887779477604531491648939484331383439007702897242951906607866708063713236012784737565054504333244449183776792043889066346091095289467567895906426520037465134770402778306181261424459383253681443771899017846321526408165254989777803915001478923682226657042321629011396256529003994421378720197666282868820447138686030862889070211307906558925974347578198363133182063952791902928162391321389993012549803994581733335564168351338647863205167620245816765004562601471200585018539365097166835161210666800323332882257341860647535855122982627740349705331323539340928917932999875883590827221821789637503717323373330240685708622520943785706002048813622529212940968215530477044018480370082684404679959436528843894019451110367659185735832688739413865907970308488503525381678635658728094392375868014195052719679189972487070217950789065534158832829386293282786360106439676301669049192337126859249614608800740376836818025050289583464126124975356178773864658577480949095550883926178302672421739289070659284036836621441828268480610591427852333415664265226147062873514958847593590153987441752913252411060009497617842482488610602518288157319393795540767251912252891723173700923522429009716874417860001187805519503107009907227874037955724460033192924739267354965219394061162210050616058553803259487637388106271769447565610381825909293436280249095240147667409970794161774246338247030549857336805715004939416836765514606761927265157051221588146953262422615679133822010068440648904358878265059566318717555882082273390575259802711809911129119920889942846672305192512235376796052395451063556866929123951244240975716632445623844849357084614956157427714667960338003649082584528090953602808110812838370910686682923528536007771779264583569900492400749414058593294154669128201704878199318339975056306099169728037459445645654077096218956064488797651048796596383885582549221639088967863430352207866107736897050187586079499296874697452586820807347182784970023295764926235987348187330970043250296176488231324858224778384470003946264680174450827471265850745126695023724378456561478211800079134746768977178506450261461225043884873083295044532172129893833782945836687953178490458830561040974999394897915794513832646385640033551903908128054083688348987292088517474060696655271004937623221795001563367380151433365132719856341722994165727619817007969943971791914648009400503686896816738485287048765913267342246557644778569408973279595295897843332350067751747392884604543858241993705707300548831108499042897702653364238074287771667015046053072272818734361075721373745115361429413637261881281772078807413922102396783751889268997166499162712146855036223173427195468517941269960974069860523625516548199729928691651486613027237236952699874967615496863643121406603572340900432700398850088031851453842033450516587828168353548527429967715710159672438182735160711203498025529825857332588076573267222653995199261705787114956064150181125891239121173847440299071552566263172344071922051957292777490466260118402002291800210191692036986567307459011905576412251022053203051042370369554810094068713615195549278593419155022290430833510157187828530891069612722780172601344543824668847043678010945732684897251448118214800529255654286229170499055011402959911702776798493971035724328500709983401795334754009625354344502654518193319319555870533171931732872735929782589520258829120046978441094425812618136230814891726417782050395493960533374980657248749325106137128926959404336893102398868252752704647391956700236799375514279141655462249001970176938081581147441524450785237368554142787662159755240426589547631324484736989170651908189357428726452988967671478249191576659217589954588267934751433439908340424027342836972970390901135210318832050885956241777778843899567763260796393521131119769546851665380054555893338993788704870681807434014832953563856933079685001801689607090451932420605227167976912532315093007054224468976817324310302707110419223962033634495189301334165726898426024386350847050227059232021484141805207441793831850801708346304196896441256245347274485481971857627241701467646655419061448843913977238934737909001871916194578660538413934156461373579017206572172188171237537776691763716418084861744143636719407037033026814147670310093840928884620777218475242987311943728244766870416787497178321662805842755908179348670941760160553424499952718937589204220703115587965967270618460238364854554780242265740128855474155986634883595416549157200350989256440611798720436485522219373024204877944399168744631206076014343533103427578326396619931269908296273020622410716709960353862759716962444071979615811307278963645087148691548534455703183824855964326753074248025910460338725282010748865449884001779109034411925584795180043833199300865559080882777735078157699089726665723667895111025492842028012471211383140256846490321237478789932707828136233984794071005503804147217975480687297889558644410875171905143092446410443753471789593526808051010197784938790400764040738781060226031824661687126582384448062260914824534147463785329345251587428022820109806366017222676027994974653512776177039659358195182226514815546411225737624287236828378636153613899293250554801267335186636004022995647097852353501199630575686595521228187603030598571580963389444459489033839288909938060729863028610276663443838309552924160085632130951810632677380911779650765238130858620635817677324386350008956272099645753017530225206959236506277544656572962620209381850285659374176949894633456781939198640782704936897304524795615324676050675485042336677337920075680182376744198593161407981602366762010314835477440924436067193677472162448819248324221557987261078438240039200024425191638702504070953610757913124339354362912172638302745236987268925654639802771278045526664525907379859278222462093545896930368382583158730339509322769490011221841097460915275775030184400956646082863565161972707742321873022692395037733378840036186183661481701170019530409765278522157260849387442754622401521698304569713615492101816849987352442384685607450644763934297187841187666784267759512226489425337517988607583608322898045206753486337561068755605502969087331634737649771361785216438875134826242987203011621065060712189434003437252382760613970174302042740897175142606016864807816199006343996527069387247773470027917102998949861645268875744195517122550687349569186818055157746272612904033624964724261025607585120523603202260991937723455162557132203692815034754836921125866241059334924998081039461542155245407716281721530363561644595788964862988989635684862365221630590117900370249919853772386420189336871582254864770815811129667890235275977831460043450995299876752300762118182987203415119519470203949715504196310847574300905270589681498775369888778551903767770492020268402820980717373900301823127182166035059161724030476812396132987541775317992120054180675791983899345116596782223602466595810861456493908948948660527966263231950837649685802292330477234180654820205120424538343848216765772650720832294056061374667414424004862653914245782320039282388366479680837025931967619169287370918337553803538170046523740545169452639535330178662498600991991924623808518771600038142474946159397980910390127720991842475849912898722679184136817416100476456058085967554997012527846604303176799828359510573364378118614670198037420467865621463837982566633687512802154531334634205674592012399732763751659934017458961272681526955973487055758652225009547530782797957197073088011645781646503468921052650704117878402483552957607522588922616568747612915828804194974598180615777529457120875647840760220340942174591903485603993611287950714370422927651120925397788316628350567101251672968960735741015565883326220059721961078634895288195873421823688075246058548145507590323984216734262028822506286068509773828699503781208086302816923806298375512486438625213425412560846891050911874845408872559687598891734600297344397485385702225206081357219934689307107069155033914258524183693291569803807345259251378133383188046642768170364135654640293189779285419378951570256021556182973010701755732316368188835665994073760575608223482711885244748256713636485219559010941513051433171238341241714440150476636506695634147202874840368408330926596197069008525359985043387766478157545017123796396612294870615900601120385989615819766606237611371101849947193094144840962476551461675170243355283797715055999441322676532158290404096030939115837964816331066331531222863188883214528864183825820764161913972331171650176703630079244460136514700553725167929445703064928693145550017499494917627430847017354039530992321644901587851940416907801898333771570182098676010907475897163480983394984300427756514858029931327489085064563582949804319317098049323519358131738891323548691254994239822007050707517006509402279401763701187303463378353338818612134048632755792298236919902941085872175148378114712932937744274824206902970069579536712751627785657304641173840638893693432425497161631848196318170952253210206656684716706105328081299079566955721779674557593993050444071561136842391400332704624802460628969446587036069942704574460329589669379946982201516001016450152121301923784673345352118898005476028086046977258816985841645773471860897998092791459694880434638915255913692802377131406254664687210735415141747007663730562258442797678665684076806913979670633319916200641506143407908801764196618810170618275765477404304005291429764171801688512839274003967476269459639037181749588136005169818228636495386655718187338847988129023231178217035705545539948733933325110248898740457267217774315535828909770617186559548974213136247618726788267924287388297510126280590738781107516211514786108345983402374295002022586297004542958422901026831934594092447148045971980149259656132334101614414093743138058186336023527046032493718177299840670179907096331814735224160322211221263263232263248211559075237348756656955615806519404655814751932041226646815552483779973276446644525804698286498926830496777665375251616020618425653185618354677308709855305555552696957018754960436359045693451742855025961398940787459438963445576753301789632599504020212991510180488938320810920004502640766116279169021390558572402157143833764093694495575839468814024681891300727469995104072480607716526946708092306532573888586433122942023259883391712799917882427641261776175492547293544110860947909257523748133822584430683847536366696145426567796776208152473042548439919065572991772342226468356888373493149921657948308296345784621721022116373620669033465048684175913353164732806854726888046017463278883717185719203368505436681476661550648204166088448786345611920208181058484166319705295205589528791973780928348373024270612128771467098916239005525451562841801346878285133188593366648183258459786749175911967552228786497917313281296103005740245034183729356357024352597237403059503640534822621425597909256869889122811147946178529069284403427116607871268000332428046308235236521590141305912574365475458969559497137298904450233992242506174444903845760755353721047355993361974715589891139828916488806921247673376386808687683777300673404812212387449837637312883868289510720636507248555164714085742943381524382515644317568645779560365481633525513444122587290469261483583229295521696001926683304000714284449860387360284232788387387524515020736152808349179986496922758600144228387737699727361807562663578315568204573852932997790527687898269866767342858333450582673382361520241210528850326890471910661179552627058589576600695002695616257757243586854206975688042434387894625441312261266373629967530447499897062694615920620849557105063202121986617676441843116843678674167333214821890774780606184749993188894361544860997321418296336356011325851162193311982325726629013842643480238741463613607121940670413823452563336414632879781088718516770499757011433955895090518762119383391148163243299261645843675709744492171443826751899216249568249493845304093678992379770849089104727312850518629184612385718587972211527012115315645151446398082651868657453192938154116495163983484586670570366310458222762172570266993058582551114200977120362398733327578421806904857334253745855763074282167749641111566478228961947583253034886289862244603388036400876937297142606616699492743500714757075285769321151342986313006941731352184549997420958149003418790232726715667701371026165978543447681251824029098440446825000290575117646210647400824023556115157464564208126168362986893412885553733539559981811439905558036522759091829313259768303938208152891779087526857405896725728953158599017891336065845116535970684518060856631253422485611439696081376223124789232539265990081511142570730115336372812921090918346564621607511240703111924577572021923687204708230169917110925560693358720861543444624768202391669147463154979445469478151617105811163060721861401800161605706552177547751876925581542512955326869028855069153229367067669778887297553808924380436105907958259084558076777200358278358768290607656279459195638994412476149514797095065105073904246213105632791055768936345919662501516383074930747767376705779540057682449285319714693768154627208314440046533541592499177596563321117213499187964614160671063544375034366878623453209103329379613144950548799328804884559215920866913618789802249497756511676413303338269035640617949383265820641199692750738372146846789751781450390127033529819532487318624001000345079833124309352282190131173577764420768784113591920305702731897494934129704298891045649827689540505294446333505547607747065730680002901607141521243001987611405626001080179415118376925018485007379143644584821214450194799766165048734769008408629358628098970796198785671347290398254275762888988344779119841483559694288884079918260570135045264246320803576331172876861092427160545498148497058361036943831371126142072900463962255408815906129758339796661595337511867324119938542787392533236330333547386090045944883279117221428447204572279364662820010254644307283267912509238819720151510310434939344995335515363061808157397361005287181213305524002874893849367211482189968123369157825953915919846272050239255772290445899266873430496089781679007165551528027449658028383867843230529146135107022599056269256387285308532059275035820255446961696446074525823914455433568818370192205578089584290146548525477119140302292920441328420207722595718409579653481189483969125198375752373512729293474962345191791151211492120277402502732509794414250560633707142702428539145601180780808977310161978246641603572694884744632283128600682408611706245641620143300436201943522245843936571903659787915441946644908357415295252343424807179635583272197913928946549418475878547443297276919632824001236806639644466406654170488032422817356051141504522077387392505891214377305828434768946040443750766304504062839535676308006039178967359992988033188708139946340160239572602821407802018291408739176942725082715284748276592931143876758006261232166596229003067306021703593366632145980818729015961953470407378018534098866096641315899074884302458281827805675301645488072500919462111255548292030768730444128613212490878680992089313368776030721864801679501139566576249179972903466957620892862097527992845843946015126258687504104765686731077350562878859246624443610081329380106269626075917418787872734740340978778376404276621121613461196650673366745217047713157754790608722240078922823720244166658943649809862187451132113746522977944737239775722563868477366476366610684786900870330469994224524513537499334955897747549892726427450180916306834064993539444518557941507634503065713142011749898212750777611914787314039305151964321606427485707104511907904790059957992409985562201256520856529382078030439541853531784599145994196567249517913924054498863523748793735360691594816716283862814684785118606632331598999140859896082822838434738227126757051974461133276123827552863140429691777612783822008086794601849871624095455596618191971803866738535797422699370780071222002053945661030037891789005971713674773143578202962186121410350136362511685225648673606883247248131055315280020118008627561886510988372299213332988276533132613510806767321547852396989794257137162294397272959308888778923303330227361444213581884552738661964375700955534477869985546292884080260051788876121705931265249594593046139414632686094447066489642692735024070108805873247048188944869497714053262115315252084015113313143573778293401097232327906669651814588454044576513661024269900678847033655921319437636255641917074878024003292748350040244333583200411153461300399965926457727098368829175528131372822410470600168832087942125398771997935960148363999145270566138258042432658947945639022103832723356175754437446562462779597966427501079645855637203218038059903738469969765431268847456272626438814707649504203469434048444807972949200543808021742843149722325236748933487135730057321425317944420721693264309643458995456986949427717224266592200654238518683039885856978836784783106775451547686625079080235900253469677493208234455260568918871265189325290167856681142496252495238165687516054565705826118485814607813095521377018247188497131162466266661243360768941359129307920607372249330827137754187244494370802474672132045636152135750502433903534512518708412986057368610016731330131621464931343396229896050182573206201866600145388998427416257834476389974135719981044100047819481132050445356074516019062222238892670955901272856970086459310267515805141170734697056931311663933357163553536355742689997300784420216667296463965078187904518285625655813122891591018195653897701505470126177094506041660159534910811564750582358011494527805840557828363203440334612474209216602681186800515372500583525308606352724989323223341281493368891944730007182294692579988733361515687884519939923370214619522752995888425958470172356033188379097540544535354539110633161315489658837559009943740047001014913870923923486986892236423590300848127891434335342053320698486334753986986128383171783336478284294760349479263867690802375295723718689426655928333033910928288773562682646518690330376298283259838727208255965122058505909105558011703960687526536610169377838180492341609721372203757194432536741800485401306536160169639766554334197418824341453986460952099750142092417062795378000457802370635373913638178267865330347668301419342322182355583533428573517026939043051146202086925640287796441760817025337949512957563967684982034102322668287857401652903232067561091022091929160029137191101910665568861374997012449263130118974671189841980169663160737989276122704318750695550698559263771122204023793337516760741025207833708159861411435706385208709869932126193060015428710749309794244260096554413063501193690156022952644426099456377861727142107034593750754690609622479969736925421661735779547214601382235131471051259742135325417217298194941868680409191642884569399076073844322302993657822008311819113565360119200520757566284617500822485909867192120897798536144879231111935830258224177282139349278409200439278946245644883218387389878347566234321046843190473955016745144387844815695464573379396781317015251491138773680653785490427074848457218670151544209013737683934410108569371450927270282820894646769140956631010104152104214692152540152671199660101500723604438938371750198651277223537775224458475656088174552835231228182462501895303457081085560106438099417335695371217872302849203751436918728027863744440802546568365722591960469514970086136615515177901095271512422947866436624604492722963220633536497783798368393083511698140087412937778672549725432752441795511747775067323602678105570031082589568549169758111452329330587775019271503922209627333555670727459875910614772086340809651056967204121199114614056319805415508804906844215617607854434092323091691633829946827476790974853794724605405654250835413574137504510075845738854627926861104593974900771872555743613050436518698983756731865795102796586024823180285764075576577026822047193603306562546911301580221579732449914868117140901106884863084005776907104682894436999720760100426523738731286458371629918694910528782706052309154358365216157079752874555866053561533879900983034116855077923006753744524323888759984187558147829290363369425265776907428826331882573989939366526000997258232540686008702509598874206677393697611346542690436958930890677657865045198330974783130165575413048118275224008504307345117599082149302455867660547864820047280334467272355280354245612620492767819250266894916240851926240554731648481208898802563826212788746260356067132997054701497540184917343492547209849033775542040329989805688740362178206990381431791670144782643131678389395179530340800138846233304501493979253708221167902470524165643078185751115689864411607486034202417301534419199696779482196529778791407599724747693311198191505969857573027878780174232335754476271780029259295639371445953739931682003415767866700346574829749690948727117635797041098696687900032787212197764262157598097788360192788550246095930496053269156858883464939259216513005594247630160069168225241338632244587194339491496850661392274463471397333605316866619782624969715080215560150454447643770829847334949601282731684918268109408865851337587873847767540966694975810607009883339222811220472530637562381031606262955566358077951059232923787298460715782596034565697281111080334463274626300906484914975795221357391830342115338212761535188197148194204398310200543512817609149226343668996409421873123323810312422597592067427425927886497077491090295320033120143123947651403992820696192767993728093236053172015527923377543455084823113851876568276886038240522027019637005333264824196827919413682161327461542021180888059209585626432177283177899923388995527443228129662072352620312371384191300022032179914881694454052775882519721621064683014558621201633300906615415237660979602483400037998653687881042819012594384996151327489564529387426943848266110786606435238777419014674054830109216575487341789459230757115951368583081305774234026267017995238842621250464972460405363277255287409118942710277624214858458112245541881386754444935711799966467738455319777634754939026602589743086392942799178865942995699524461690954346358013650880925710592156650134444016388597782636597806971187282591953955638804680314259135537691375040661116208652509508788520627493308160918707131810869576795395713773707497593903838813738129883990758174949877383436811820599092023976626204599654415563761327771434215231381979808831957588783406524934420907165329462662470736290978808051885830573875564308941088476910238430436945928964873308372760054820601191423750145584914211428197042836333709631797609766869326050246437953466944475185784232403045417925155131640994357569225238175594291156501695600973398137278711639848059130768410703868693925130844940794595453096923889660661754055029186942224187370277984750645181976248924827738619804462541301209037520410132792166889002935749534653198636786807231025044660080580241048050308987804658003690114181043906885496224606553166184426591910724902612832307371094795600041827349542104827198767206509974605909281020148049394488852463711700160150114986563498409756954253999945538569946340436608806450592226769605988067911781926658041069381524569181368175805954631188280770950864348504600398219881831923749836134542225550513816008438179963142132939500771629358275880929176585236029835491110595493461865908505394770654952560971005019874396323799754137450021871186772873099087782022090274171152495258977842906418361736116575101945030289138070865331243874951482512528677898041643594756318370460152778899511003476560612945351699159582671320623052847886231013273131128635771284594136526621583683870260354533704896944918993537859003368977569475530410601970523828198079053580022877453275473292579667222392791705782658956930425989571636294499498581497837889375295575645238322914861634109187208662077625670393973335854284316916331307024450519212761479580853953996886495669662502517343272355785206795963884078348004326119502510948450580375100563170097923953092520780040022850485257014039398854286714898020789478460357811690309385562317707445735476442340458353589910139512956100641388213102605170489475317316998831836273793133688098336380872597714675018213416220702584075158188658395608826498580959470096551233954673401501155999094085934634020002255815356410161189852665249078404680775991236508260986636705696120354677986448291329313853974002166399123439893214442780969959897802447756608653547751746722422267332911462448685589266273215700826432638698022363017749346545042812845257944968741358518547632822937696221485793108398267771047388991432166103336292883593372922220865057923939841081313871578662849102177906401978741224508441064844444771001531161877701720206095502402848914275540761100908057847381118563211923115177497454628767567279485825787997013506745032900103997449001304367409117404196801824433049197085324119620639174820726779148771392152689711590230625317962422246150283345604040344241471144323671661491333491558692399474241197003892650217996905669581448283957858493031018248099081921930745688939588382254858555813446202839125360402737816932609474281584817030987992577880526930774602697053686354624217819221743499157661407555457122814320805338344050012201882129666891999958720067141570864629260298732397554533526034562851121296421083174723233419134907380687120795650960823687097508493646707128027862730124161194354192174716683587940304513287337341974299691969592737504758506379812333060230181632075846153710469414080221625823704111238066730360200095879223541974653023484034062345904877219024385689158360773634210039109638909984498539083384948229154557141902215506537368155277897714407861625437046859034586497303141206927755878304555464007628436028361644626522797584804447278899310299008326416693388534097524381729666806610589710851435108177074787780758031822910337092933080945770094277883359684282396879620477451571535616227618932530117346145293024607783199470935483516232876998922848634315978579829330560451909807822650483343815461101254389782697200236173606817819549798824954125672786954171025490489505043048316327503481531480684738605541315983878027197664556116864843966305395667304383400776877243098526440717282237566609189052285101367627183973053318753184527510337209310096725289167254123929848829694583095777924432611979003157141680021359200812326454472621127841167491871049895906547857241374177084331998939970443381954670518405878790686489894994555466595162463759026964245056152338560395712374584721566091090197856859451337145284651892929291164137815787301418414730097224477576623614049585988445831193218762683856239635639197098122360259234371484133612568065438364424685973619382945254747463445078929676707921395535630880123046886519531754597324719860869848381456762622000099715550310078938200693328422533420966125354435636790220567402017576785209477797220004476594208931869273847248374549785981231572937188401961153058843189995708724114551819445336382131401478771388266650074925095788013135572901224530566233404942189709993615930410237031521535449283948395493809584315176676262020228139941483382984909164336435086325379607975129482438129594411530443674096811537900607278895047812330056665647352128296762696418050457459020390151933836354350858908206897512070830582102339913327060368219909214801777278892410474418927688878889546195316354303433128327278630986552482560789962929996819238181648561414832796583017108359965773457118231212587116512603392976006302555902225085659831956900598197299035105261614449622108787427731573334283080311987604195935225947803016982955750463107746112090976296732421121976424996784520809737478651757455785022992447693803487759573363583408085632091575973391502612236458664609027617617564203166539456003283795200669734899301237655571205544692439387719204018383284537071015321043519579756338999592874004500762677894719617045069749071691752447236670211906427611567574047340391435971547204864756664269080097026827164561346137669116103030521610433300098388923467643970619931908628600093547808705774198290403111200663323799216022582540624039781834518425311980002583530501890185700056128187944010623713584945120635625475190508307654698164238764721538108296104327910946162630535557146521534078370494509854586147078028754318943496466619091498358929710771875653222361151473786006952149197379042446893750358821766227686728002685941941557491097649063470218700838054145053163021506054675472402665190118914491396339534234014897932497624677918427608877516341301867654217209606079491412210792436518380547099588371564929231188440680456413156848033395118194019482367963031984891533506447029760204164731577038222175016232392622569533839605311315345311975536256964302829364173347738905589886710161021973423903523946999067978132179358974183458052725917101729397340075779460511455520037683153634536527147744422689978516458632485410464657119991006394668799681845855535452936493685952661179921384934659690236356955485870052193469913300735281945867296900615915224559785684977796089556691932319599232918295945688798608740663288765678907386612870492072964453688205714370296205037922396492505108646780487464882292828994210939475237615812940438183858430139063807890351981147679706647185504511596690185030401922994129341610955323487884020314888793502315430604047628973674101735045673980148115955397840694269881377792639376076707498801959095962830669011668020658774916249447014347776847032297250164665167552047383451806414733979582853637426052646883665286097066993651443187765979807473219557699235313098497877908330591277568339089557922833808841090971284416238260112710623031714122852275128686669353243791794802218705177437089271556195346957573061171802673358327600943025739698246578986906342153869847641551045667741038747206542747685550608368851928871198641118095134898672112722324775931786713201878977160853031880557848493831914532038751490994217294686751443359802515772489339929209091407068154295568391202166696363230304886880564138606946475238382959416704364525253101172575974818111038671115216415088273890407128674208764747135653275939545928613262163160039492519803505014450410100418816142813826667296066042812629426927384426447093081032199660888954442539856126067548326921809209538306854991960699293401212260018151461339255422239384650741978023347130728084598509281047678194179744376743444840514195579367847145555035399709992045308570027556945869114341921459012197806113603984195580046385909827821220551573291354891682640275381562437896641293981194274862654729296603728646396224324508478575552875939516404050421675227379548096457819686560317790759751752789154698464146658210332719454498292892205742366199514314878503036453383278551418616420512913780071311755212665745275115183823181007970112031761916935523163673088351766806822314528361579416490675583186997045084134862885312089867995589103423242581169572745812921414029523673648941734314363396510076993507536982016053990531501744685455386536525768233227898771741912707514695097268391379866724010770296681980398096669975613274474344132920468111325790500301947225833054018378849074238545202767992788585801818049652671181241145588291967408394483103876282476763979794432659589288992855077372807967242483305166399632998915668234828013516631241090221840364330639053682133517199967834678810767227051138495737563475225599630991744550053282651522072796211134443746342897816845148963080030568064995572363467609833434191465128545178201166481043466044635548776535026473902897746251569763295991236338463754449622629016426880508177594074253339961247662113963869352488234540600976231960949556819770872290330667554748143926366418259531179268694914986725476416782385518834017255184615328351334812063221944292294912072068208699035603469949728625625187486659839672703039563621908918752612595909378787540827970755897421389868480056090339709502182982465041936562811386157120251400139003199485883704645484264474230679171936333556423219540373492705439326659815759262398715389748211230622216014494813446794314914598922412917963478595533840201914697201731997537264744381518941878446817787815734741226001895490734676666370458051242799586395029502733930077627658535526295054271094975326640305602483899932419750461948729495552831975246503481588958592435629466672080454102953423910188214674904279897486353599062011747966977125837454497753830056920162839065540806277460818449710524373757500366435207671207467940115479212178108884393847843174207455204281875721087271682907409903761536507455918951853682008111734447951120586246032152721426175987251203789765191700203813781092349324965230099585940536265902046318990060796583982697527052605771002601220142751195722192555936494868843108517729083988829048593024537513494103544060475354851680022708433954889165966243072077743759821132097884144279457061288880161989150226774406812826981595360045344084042160479193213387800376026091232098421462646745750000012565401276934829354261947371484048310666531950839462044975812750447714310829967102325545022833104528952729256755219839038070699793016453410068653105136135627469162296576511966576099626625309630729125360331244630531386382663067809243776391242334740729457713617325021043789863943128895743147494322852473193639561069562794005775665330805028253427107037826411864234347045323038734537476652330051705160819043483783662826206413378774297831538747492769539395894618687616209696749648135527576288328538917529277027328708640256257238450376389289999585633570856021865866915197234286438039516848690284524864687876166305935770010726377088238144724831898766102855682839005811013647015461851186678595126538444110654556690238116399616427635695440998023638182082746566547493278198880433123371012457292512343116551016189668114266834786041421783695210596348678756539479352849861619898867437911493406634923937808824324142215911406340432979934371556117215234015744919264257638430533706896309037752404891663871794342570212399914687952993510250294585475391156252310509091686857254061197347459174691288403044673384542391329530079957585943994753510955236097943593740509835893506714475525203569157229643847573094345462758492540000964488991917955324422708422215394562262532465099946823922633166623031907756675902661234855241992209774597549480342372684868716897356152745737728314070364051585216544850807103400489310711825017966938008920526562474538003154868586255991607635083617656549142270521801720392927952691801426269540073723476525872749992421590166089849550373520629337280469891043697893483795340413133490423390230239874095404614360727061429571975752963907186035356310321425731978803383420600900987109506577035119745003287971006720502564184125978104523449832218844167962326224036083195905961922485057317887727484125936633538918860433262453708975225921497853456503280146477944377558576383479391186606471925320197506345336761591632187927262785990113911568824195555407428900561683707493327993261010149050350727862834923174005633488306908646274750915755449147652168566715088309875205340175493389791613618997233746397493273919027732635987128234252880963892843496947079651974008655408245376059430405202933443858165400484985605281295221877605697759392592059404582834223821612947995236742368842637896889515498248435768103819284280068568926970184252260999635850809173497292146724623824482777111144394741997126169248192796949570779529958120074652383548878100805579800726199055486436712591035673757607474528253657160302849076091837261126521787674207685461425261790530883897000744556413794297895983524892678909191197062137839582119881623216267280688267401234149489762986641276385855139808905831763593587666934226522780344758300054628260037730416335997213790815909570647791590629951481246147706461641126781074246931262774315542673708342159382822379376668301926623276777098805621931801788959756993088929059259766998405727794135601329071652116590130308763833815438246359356514213987948561421256425154511879102526731973729061838994344118344751770528162354144073721453896989780309626632333985721261050055277417046209641847258973330551279041763872855954652307795924260789387792335442190772894514306341847915674601181938023017499453585889928468542588814284406488228570762599390286588810811641795317715934630212052259387910423187911060721405551811980742412331957916933481247768009865991402648076912523514083239867631277251739132428785213188489537293009047504858062871612285384978765467756387483645459184309014690348533976576709942413684499703691055222003859831204468667877811665729833062803216320521257801033774809004968222491808485754932827028841843059359252470414835530292282533059079694976153543635783422540524479814622266412820116309444183268868743864306130646832306980233856304395404933759646056526098391211830644664959933742231902490316992502796847043655912761071011361910803503726660628781887903301501718707736099116664126239184982246012816642384679382136539537365903558319600490858431108997221046433461676428548659694668795321480411039084417179370392648399222567477509291286319519553222199561224825105686051795302978881853742458152304387957236168796377528475209326056436923499914133434043344471249018760372832814334823175544185071140257668411902651037159966661695421942634245548187638991579101172961021105823567216628775909271344498954374522918966748575576703044575344751916050651595551263176860235910544967807509122247814815452854753333401261047970740234510809845243946987252215289011225755235689500166802091785619909400300389869627987189771000693052518464326908787548350826448756570247829378594015007983904022873941829782235863203994404572756059308883787561064761718601101977702498950816518182617124338266714117471689527723614547320698572992665042827082555014667833258503319846373342775630259679928414645850383612513928846497021242163465819840257380716946437152777958649811249266967071770592559403247222340813067715744706251017895320460985203233437119768718376770182857655681674121508434667624789018098939617676815128101657974157912103166565455768730094134321899260054337016259785382140156512330097804941589435066420082128193429873526497710105869839652378764919836830047603252344911805466538899677110418607062609334693162207410730716231794519288991513990670112005679007835450651119085587722384228359055342369390111055194637380677924034730651775939404343101528065627245700762545166215667525245689369861601915828539100965804072796810924869881336662960202795939584706043632809640855325406750154614564258882698838572650158571353925676079818719980220019857420697474687986887855624933518733805379406777403199223015132130891936815187850832285525644026852052520058754170624067124922363306300307750139408426042857593854638421029253722591611597040205327621465046614466389768967736988436419841577388578245313498160969849450974935748269480935964333189179258214091940890387064784801846492540941515586853575455187408573690878007752773208124490180953153777464777534452295854583944400040081742015702098359110083466374359265732123475985337133844213953096677057413770768738216107265245689370047698656443298190276569433883693618693905449566363115635890070842459478861321913061054121913440492837095513137034551903488060529466088123379240961578175551099965896885970605130224241993305604298373094211454750887893247138436730484355682589662225362568959251947864517773223366541358597711998995697249382355571366626182456534635674020473302784750153696402089578763667469959921604083392112922653863040210575366261644188964817413280981679195774935164678995933877252768449411681892274026050023724722289900562431232878227224943924515846308654548883842181329934826264527963604679592409105073960187866787538778290182742694217464446085907954343740432322631076689310971306180511823766461417776493117449363861926855731970710683832054803585889701358677772654165331694117215916866329060647853946169313339771163013359466970072866534962129407204529617565480463255057391314645416517674537342645096280757429752575111266284408904135420627499643058080568779474319839425518277626745692572871014803564600098936384730133702369043170673723440374458170650383393243744977786351847782180141873930882793090927299670393054563872544296066711386004948392375949958754325558508185625979140966166237613289745916109111033253609335134457095168636012551359024465892659851663579335917063340292406089757070831438568990967765175792470038013741375888006818544814165823076559122057481983671359377133719779402256783375235279298360201799077508973509392012383895147136795615286818637910248761651616560847542284924761471204762928852885414328278529164950733671616984388401750510487596187075447176727380018884443108479975473292677408560009273804371477184902732415929407779402023199564181081876457959085261726521043291664234518466549678573942962998925611107289324151944336212264161704294430656446944107334061699548979890602405635820767881635031641972518293858306079199776580955652320423228926037220511273647820670915836574123688314391358648301927626354211939027330219094603462292565343791638072649874359970941147343560935885256657357525579133205109142561316133664651661463693973077443028372396062291956094749431337817066164443677058172661061124493858239165122453268519614613136297278685970961427872143163466622915064252385436012594636263784265616925317087979934695629558422148831531888495901464039065906517930165577078612210484980243575525645856626457114480710781023816785376227814914326786694460536710359465134569664200288880392754480523249737334710456426441152785648355449826923288755756642993418003241034797668131310467659130070011206127539772205609733131520914393292889043263212429062863703403740184910123325846557106993193153466957829444354895997622539191780347558678800073232373678945845398020182241757779625938734866977220577920500477001654231811363636215366238701196052335897430549875206745519839864446791572502677652537806246433359211130985715649131890509497808113328470571741076367077257839325658409974173259266877841248964373024877127819661169482012852123065287551100457942508777940763049814559034679077059111142700027448354966407981351906225595452968384468577827545996570617202974397384961409267383878195050718489196232630451496005207827782310393512520286685117247277592113746709422540292144357577923806919424721269202684768672747426830755922434329951836696458325476894243364849553848198724576770023592888398139386760032418835068957153502181580740332537147111835475964887822950695612547128022537532481602317696028981749118167446235885920371137083160572579204889518791481587946290845806090493128810291748166016167095034670071613902009669671268230162735731265813731141821697097841138667350983615806383294440682555529235100743787389674429468739246579417612469189222550983570466300922683473845640589741971107659181778176594135310755406950065849846505427109785983325474271306985327264936664115980741758541586851802751380274298190479324981684600725700185694163135310253949494768108816283748434530996276623795045929273506577716120203560667981599609910555710740019897099534149807536703313216401272701312717509736444018571285199973798235954119364167159546257948849365630613004952513407615572177398324172014062872432070846500576553159546125429395234212164072790185694365974842012522817215034683806879828242775952731725036107184549324068797922534702746346687989504510486476465681419021210689422833695760237301594849736731756707048762345664588735114601204508953551099750673035308269091506062453248862337616890773139416879982069113902892419462582223001768401831659384405976824461159163426933570140174759642711027144296386698664262937620450140259310711804950477755633771084918022355252939580853738062042045515682696771889091488052172869788577056565508572335274768988782902669287412554871414012968347330440791000436578027500496214642729986401379518438264277805507441933025179122111461207676611962580296489271211909087885754699604526258390996651202533768460094487102137290220565524425088277239914760573237061131680776348943573921984892920799059071461439041881084951545724071264035874909741236628736420572463186877648854953455552737500568182628674032596253273868775195813721664200668499651988258510230438000552736545808811157510511731144383544726111727017259518230994623829584296970514279851620039341773471315470270115468041599304386173472251830113147152259811778907333918045713437508706222924730961739662987927438425596711589712386360962326745497384214256699554579236097203280046901155822004526472235223444582531993134771985469378455145006100991615767728214119219870698079503501490928001382764183028051895802855398508638085952052508121219112869029936151999068012933164718355637695535301088217217999813543970954978024468340253172441821452387507184348357944835577759327840987447051503696453737639754137733014776440934289701264716214596341872472934713836162650718007055908776988372052530404268129044019222336851189858824740574691444159652776513247823159193488385597623752188734835548208163680009864373120293218593088339525186491141836785411980823199842864588410080649752185748891773769565783834917104491188710434497541414978898514075419969750664101509831236894841885915255169593882408205349703799705672400304240776988642069718424934361714761371648457229841104320943088652574462387906169249989567440414308837264602018987924570940294483315111784792718653631267312269055853261430964102625544155063572060589805875029342864723585812289675073954436225935367948996060228253555373412976218699252824482965803739270873543483687498397548133498139274104624623743839394605448632200797700699947943227344690075205108373086315030986805007518230091572272664242639349891637086191037936615151560784723777547458636581034311036428175143668473267731402178106870304694626506854338256929721223244480834732729115899680141321778832867464025997210814027884355435770092939815310126346825660601138537484051811601937548610513210242821985657967328143712295229714389616203400523613466166245875242635084888039908114973568716876467612599447306102663450100773515433924356328702182416162997672803144683484497708436167312462817815920794371928473102798420994272939340721002719144959840502887313432212291116640123873053975883043502157687562616816342729215663757570679926788861099514615883286821807678710293287333596978684822670005752949245415957800797243458721791258425868667034882483596851487815399294678727406873536647019688282885023636224105358962323029547595947986672981985466129471514163361965778571587471333316676280832801403660179163451415802823298548095279689652546137046744506751983376922582984665583168398347542698473821387618437618634411630672769611254023102383301501261627359433291608375363818799933678763855301775253957502644696859148979754689667234189897235377971012150439003624179087694479232539548151000994761450973181655473190956609375598326864096584859085879886431853586399820925178484163421522986027279424579512012241716683634907386536621840435747099546327731337283146972788566971257591073209637684759530446396166890915301880601278531505514426027558324299681676739452084549270581338545661763688858887962785764687853576209574996646648329732987410502719508108787130133897659488832206457305110719260531511446406399574052985283421159666743281322364932791512990202461162532679998291218458456466658688914069760353873944569827907384687993328362924543032156478926875756870944421711646389863385659240112488191608933314921868194246340095516511616433746834686899620554288200287780399345335221623594693778873769590787526740778396955489960979571643122862239284280010445671101102616786373577306480373228907841987054077441007853704872039935889158951757679949297388214796182194211249320788754274418538565385363647715724534655559992129681845431077339530261772801206561169806735711676619661516172495817124201122341840925999096753350090033633934358281620114750239519325089391648629446889217090431666209919847696077319042401366701314161939228984585127077208284025944621661830413475498821627197438197746600672624416745740318961485702886459606157585537921476942683983604353429035877570864991152307624005103414403601432406325008449114865401493112024061527518094758851614888939256086633866402578945127784904774732006245964545731931326306640200446856688250022711183074338696609099400463788227771246887974074058590934828985139969235144224870227220887148249374865647747883920384901871055677926640493656533042031432758332960050536481661082913396767543117922603168481501852783433211549497637588540689254984924463037042340233349933874352412126543563967616146672843960369934236828743601945264190065520717674789477580139692453899479050275150874121371575278014598966119416723739214050583180047880161677059463059142546193231140041922265617444407457685513036345670060667581883414463264986066397132263112050274207953141926808153054025295598669807754395164855394286621188482042150359210754815428896453548906431946964172182659504538861611949316572661864386909045956899892835377469467693488471639046732261898569647049749795307618557005087519482642900369147098770432585781342397423140343659359657881257870514817438297255349826445946151097334582836201610968226846708142377233882491757147527711519050870008383982319221875482700173738992586270261858691218849324304966145021017512780737764066766009126616686586341170827205798251599345343452239647782174265226117820830357793011472653009018304527028503242684321243786690559399450824349675211147358160032919869575707804065664600097660857019744686712909944769424165809583431279508353029944590092767044558540985017931566016636705275913402666078804434787132385878177570618680651632714280046054553614339230659017659426643231558282069200548499046443397093430128360864558817753019468817990310885481798903314594241847550841687840008191743244962412356599017422466781533203529732345757503232985462783633088832871353177134777462059524917987100726084231415184576505371065944596002027523463309737456842105315860021780728254109784135087573012262283089204427349439119543172400874880039486058021761518068009067847181896355232705629910523301842911660689965001305733564130758026376886327986709616836267573580089734703554464720836430098040064105739179142229959219266028417519165472756382784634817446832484928633149174458081779038047779825137032726231691449719303000976126941210692594011442726911998386531930392993293714431925069065089751679924281028075541876306816559226303731924716970989639832921562921348188120932717475451106134046677487612587587995128393883146924335635581237608893859237788127020262958929712569421053610246553983032464283814899067899385640358329943342833538050820447480970278555531401406223792800258883117050560287165211576978574608462196312447787538642672245987695560860063514840965037419595357920867832442047261640515451167483081436886308313091365113491936773477988562118247147819468234133593501016679601115324937869014626798338248210554842794107031718436457864065747352826524978599626601505236677277883294589774066601437353564534895615480668661572849980931367690207805813113076737948967769257057784788521172169926206167833528072717653215624670553819127486442627383237241376038531867487898097313405855196098530942272680301021264463039730247492120646067937588964518668794701706969128834637702705319766361425857846085278843592435026078628907257758314955623014356199442858586178470916260579948861974811614134158754478654543116068931671156474586922763536832206810792769388154552415130084095397911966718036780808046901362926877617294670678177669750226010386184332618404578947663426844082770521136470202445752870996999641779560738783593635349394708747509609141199671651182005680102971807905206838221796284151516182022269174385220911750418475929416113783530041929045775405051475318546496810490123406233301361405350081819427576132952699368032908460001768364223382018612565725503777136926827315031177384330022086096557794607580502877957893715206153755751317870208904662354091648639408512700056820078291144912377861869027649078260848064999385141297620210871069566991590449434016943705412208883516736091945637976477187938749754717334890020814891403542183819087383338699962714046332324077626694320814962383915176750897843651606157510233353832694002615808528196877232963965457412262743866627724723671076484449187964192228205399458835309060187842234945713655300396124918063081652729363717725536433214072376493486205519301932519082655595890239435254913504116827280320948261956913987082982253823808449381721918143425673871723076211518809721891569668227517928139729646969452836830700723244372558555325443380681983806602649773604493786171157687821576906651292352466538238858461913531512370134950820162198337379426211238783066833639627883108844908527417779084751834301954862626821021073913995604695577789951133015152418308275045590308812276489393070584275165347706454008766139738162102182529282305111154170653093360857451395528220860517983991954638657949072211326581613147199326828439751756540643759577393062469387784551900463438591776478869248558393832992323602530668822003420839449471416933325622255722046365063300967167938489955270821802184179553183589899476520439866178197522008089722005561293994397485710869686946478282012616906624100781310425430113302286036802059249264529014668496219566419971572595405338103597920701105087125967857588993775766381613233961093691291862783732440478241721546590699529075980490538048264004886364250075930442667643750475615871093116498593818613659805846532659575278354615072712034074159359975009063239823565812985905365991357813852823353737013496495717572635347215281394894661948381925593337844346953485790375653958928005431388238653621862814454110689369481396517507125364736090953941325611470725396290522833551253923978143816488289479892331611891575690233421394247742344609098246487995893728715575256180676787279893270397096654077880189113744632901437140913984624030197766499064744164675193770799783264351478031963030562962516831337912219755081831252754760142987519226622993735758991557808322447457523363846891840134582191955489008598060703496011237938170243568341927292375592527855284334381336118594081217038414873039411199088646432805578399123942575209304639637944602338578099686792423957989861734014997847976893510598133630460037984119232523352721285074614918870075510651740913633099803660966843972685273991196952691834031274114539109879269975960489535048837136943243144775303571884546379876681048488632439867197507730486402589204525640392800723261395706189433304067841793624367264472509167360682825459839594444293047822680390974668702117064410194104784416309666758912310467540318795542502393480640154036545116872714637098166760435366125497895204766019896960181898681941882312979159125457145771833265775915226321748499966102187824938592532240750665574953835365619461845281558281907495054472999077204855687986751274197578743254131082887967612551649105594894426041976803251019370487237812970752126257685178197387276157951523898789563543128985456695009683728685253070440578537139971007077692320893051084288882245946550528230202615426867654433664101515574791863653542946451731852476480414140537431530468242748903393577228165806584610930487535580129309538518316329882268855504150064187666198446462433137487911859124711030989599290505625458477517700197729584557155416607158572955017976550177516911247991642511132642390236729761960138642409119583574374320091363802852790871390590071090594696939986371644067945629931489815846281499223183288362478872109441336753526019758076588199603567003409635312726870190344833615484699535844861140489475639082271655712227594371206584293158762876382312258247345927377625482721235882577221411633219157387218006238476229578840259374454444922469199752858531229658814448078045541959324677585931957432706706712292651881447267525116797000734202495704101621935638718897397651647101626529856762444244377640339563996053281267527239280040791164051214373745806482828269362045008951840118471000607146552882142149062446951590724797359685024263066939103213994428730349654553032900082424517028697683699048203206020899861980477612719021133267912903786402388931987987435427492516043089939798051354305629213838075153629100060607317455774909654949246972217262133469092631336921556922350856870259549314411521536032154186722829533031289002223218394430010887392067600458418876342323693899216741924693140497738046944909975339289180438840882060147241981008315022743370681860876494518046245925987892683070818049151333474809351760949606565051054127547910407607961902817960110747154506299701847369978399739621116069099086566468561146305179922795915938387040594014455792718228286150661641147782051932354098518735141914729687738210875878411132794014922102866604452002165939976996554486477442779416438811714680827537142136844816612094414682799925750487800558224222351726762048744840661793585139445119191596269849472113428682065155148200289557734754877517910662392786120502580122308526521606692097107340644482436031670770049814606297796903569695200926126816346401541182586649219441239496872258995422389397460969227724761795733066412814275557864010887937615983925285587510310870335758095797839441205057312889565519144475247818049199842871528980849408726475922878815093048547638530335919402588617355745050229924326631246035253197539934986902581384320313782442192628177706879621353579163229876529848433201463563864614627450843442659100679450503743344708879278004237659306540192835006066057930762660155880523946610969373906455554832924199858343163345611544561933742683439710442312703235865810328588170557016105537036572630304227232524705652750905025181943607346778642301463647735855077845844453177362754649006293150088283107738248953150237551927113043167721564953365479009646784182198173266901370917405833584487067363826726239883456952582043837006572179726888719270055122948212678223348074028009860998050102319602038183391352820986209405960905505354651984395738129241945944872758481473206166053524265314648555413826870704775830678165444548467007994577688090140530306871781545085355220067529798973658280179417797277043764593355613786162990989230897457076428972221303179218341449777151845840496054738014020605659855141666790452727472840183717243246093703084202119477606819948504698250151011071247503208842290401124143575290588138490668720134231466883400214712886498279683643851480553481363529171477855416531176938975896208234653730875983858631323537068133887489145882651046705432481592504363107803318593094816036639529512547283340090180603507551034808070147311400657772529252951491878533551970340966188911099530785002893448212677101805645032027891452108304319364720549729006588506373582439251883668753941599087062055954778716268280168804822167856055917598021689115938158019584976106550240486392939841961904941382212761515674880476986251270817151862794338831302049386983158050402305731491814893703285934022826652732464814709655587890499472815867236431680905062310177839460867853589088962408449035195101783027889886247793363749225824483334182620780821945654528052383030540506745850204707375817223615432509627468394057615255844225917637402497483915040772154127765999259388979230499081097662120335537486032953820771834871601775474243214534756643572842196957859507416424518132713498187410735945161710742604818161218709499389403338789319469223092191735628103184328576428310003760688093672508410636348390251503479551954372074173680639397364236977712258929202053899432904078448522363020958196831393895649030743773668438869303071858306949490273853018316903956228642851726012950419969996620420507684728087323623618861727932070762822646646077793221065607426368750212821112354755001270559764847732779636227320356500841251748560364758293241820222125906848921292528056545505918830302038826644558875639044167482608201230999279026368976509936449194617510663341800843280467215956062835389260438800772024692568106550904592496309216178915200377187741548654742434562664537647042746286300471587574139117115706580048515255734242119394468844708205769891828618264586318412273842068209758719770786082901812948677499209207973380068408845671123661598678565165116481084840811758670125973201661357683828561942858648063163336721984826283415693680149195331614409808210155765467383570263856667755247587875036058790264958993223761427015087647451969238316151738779954834844768084722443551203205793089994162038036342437588625974036297049361310295053462611619359870120554992563475343763156943856679948198153065088638771814616110481533596489920128890790079348458066225869690836252587513133786630255616751336305670987028397057264085663963794527381299364763424397999648900312025866105672975195831311784018840572746463975238275341443950400397635782617031774319861571725080937016092103638167765420465226914325293554912580004165735230595184130127110407956493307175742122964030435856767603671645382485109825751965096632248402063177429565132588892803219569285232900905233402014928542169894472815699121272598948558438531363551012623858466128427745038624838974356777639712438028678051682503007892794974481465100165179112861545601227096044113102916207639900074150955372248815768957319918814050046663046602063299448888976618020346476488666018337137036501139762052066357607077722983811659237078933633007139353096688404305477401551512267791062542015035505042598523797906716260853155937854796319942691574396392933592407655399280847768138189694000676024770542663535706487062711220729909444672973601213042272524619150695162490368555080386315845976007460681079689910010905865166338215105012831234457395255664620965987749919587364555202580597227390043450441878552687671700113456481582575611247494350558741331107135451832637130391516833212479632169665698211917416284854137938232466779950722574739676441473476370404989340001316646734564419063192978969166543396631726617866566252814430672500070262388991213145396990876316185806885355279020027448430494101391110318693681365161544388052250550370984900884918005891088750517271964414475623476600115094224610524506793619821025529330043781912302352998498074107699537109747466830040231573612976369172944470837767984720432570372285353445894108597934549412312897297742710662534790150216760112756242629095925297161439161068161675850618303454164964235376282094535007036700372016938726838763611427286280075271525479313317575456923208617778409072933946762373294796522464594288237712286346832671494947768556356908906964050110238339220469671099484001995447178177258992035958408334263425306079075433776055703283905218221470159687831947636444287486925084535080359177297524975025022371061825936129263428003353112103003531167468861312034257777454705365520273391127188903292571245891928758249263647795510056519058132150393351051907062814813771873456909291986838515798621410757597760220449485479584447502796272478197253906124077968124089509227139666469580778277678690414013858888360504052736577390894375350739882849431203524250789680641760771972295932765688786672978132487615186287718343327777091630122746397947793834453769358278947269334064425282549403105074553483327597189319293960651080824285948163401966614834053968166093524287096150949446263524198244859103055074448940568911370954189513570378024284214225065235428586783176433629909767645960317835364964864284245070327219600290844946524908687978018187090990736606656428344034830479976752706654155691477852504319380642759475212074210964776470335345120184621117105290467645645809187544902055341136724124612122879911952776596672202608517099949468300073306755132242403515166855058030661508704864317255267004850527058685592206049458926929358871483177947782031036572343393670863587238166686313830037869274181589655462205049640837560291073387180376743369006699537759968777881067509401999502927838587559161956592678647892896172459236469808237687146579994364729196877599360777472132020498091348013970415450560809934839686046929965179996934680363677394279700313927977718784339166576134738661217780813776516915938523186124832438869031817356452759442866643767932263522498122722709803167350447338857685267447746301727339870435222248064336780897811304512738067998444183997966915699480474532749664808609255172119871807963020980910265518984723449111273510171019856823806105252244581255359493749225970168840584855384312132443514095371558693535048309061609316251254984799180739855652010766790208651542210948138576037042210416611158782992141849487207987335333278870737445940621802959407746792782069353026015398915556195804688657362700662689567798674907266851421645870802339584972817276676883451603701756736490598619059188917348795500029755879163790199656314420762620188386805447619476731607069338618408379484510999505642184161360493756704043502527617814324581089148879559862496946442053257970573061325652158462663747203081831531002842289575770505784520386597222072376377689139099244107316355986744443782095505191624053913123983496013901364737955461122001657712230418455390980646469605737332530645514804791720696775139125890737809431593136629015088294623473773295546321856369724443243393088486496552749572669084000483558337404370407615746565424011511052172643322545899879359047673943310777028197642725418044506888310799296394089366316058096332344829686485022310123908299938780175219611961996934167108982475513143767021647708153371316274285364267161176930485080155446949031889222437323437357983549139767599730860700877977107113115626702246984910506842693154494247008136841404981728856566940812102056068486554724966298060803459008686455900609515880749333533138096644329090077926966462968514766539878464407078700827116544292083191496963079883109340336035736382986284400911924972027351549801325869347239956010533948312260075429544133743842200476483675904090675488694164831292892988310519919584970985981005044001267173181264059548308915478397648818955692165720082054577919108333639026090738154696562654666117638039631252073737270734906843416148011290366848429685889270427742660758723634973692644140918900848999010201129189427012741349048502499717606051662989615303146880681823545748406756303465225190519961736589499777960744987034993851016944394731493554625649045967662905244505953394378837219912715283409400295707302349575025054417592318634795539976042036609696176065629006813644284998866962082219313940196127956477186766204492681102057023264686503639291273162365744735785015084847938268406550215204389267002692240931781363182557935841448038601305290936258017222476924390626136809679192072524165038800917085963559015416752475118786575670132707270180817011273157875126348404139252060370304217214092051777609594716138384270549343877962042952672454803521330297956017013762926889137672553770120592755305815622741163055471266194578094640858601670286899894725221962519119446921000238851130302908019324174381560591996741973018011515299987038830244659418715284149744314927137123171273267868266657093969628421421150402104329181224142335701178766708360485550650176428169060943441660496273940591954789383756437865341534726193137435323759519001455599908203653427598166938522076518879155309664379803300154479040017363705988261028360341536129779481469571253703545857826967214019946328918535938009502181246821463165037061915191328039215772076487635454113136624645687506155519451867619981259073024440835806688500603483565301825676158571623403345282425145494371460570657581610295966611582703214621458063079284239349414095746756085203434866126899707700851409530672046193537714661654328081224468245236588790529432924585859144801912282818077761807526556437082579344543680408725498189841819715385342034787706432732321906624771285276859356216440892390907384656976330456439138792872313684393718762261919858260823917739451033906856132187068058781795094873600280615698775122767799463860419563976992178470453973828269385868346777741965599113271892022435296714652782890962892559841380326994437152221991876440167776937286147511584841021686371989135850512659224652173119443705181961066143826076860084950495946826154687264337740560568030256851393591240349364579251952374423295306077955061034535955352736404514524103127909248351538089397202083659479083790464779222724844105143180265827656518820279634179080258195178912073769078387366107797633715899753115729289366125295780849563522006456755317116049805481806893340086981682991933054743407149174939496426458954549378312460828592779124811602346352667258825920691860160061579665323733082605059806156678052625037995625095127291106637144430701250972950058923064986120111775051528083446376132450730044418952930504310382110936323813019718027946880939851379684749933698999694754807798357283976537481644992527700165274684123825881045940369249716627287541845676269322416872336121831044131527962811137631975652713354127261017260449490836726656508215680127690033819660229543953558007408689332285135759629932200725356812803146130326790437363472098259684889098748104412041134444813403298012265475971128199466725626049761533203533697212581854691296215759350514135458787330154902127451489233653192537655950851052809307849331031990515042452534239206679970670904489560140601405911965221203480311931800887895424914685270529023916520850505569883809613257706145964353090016337776060032941961185765806351194991906801127004532162637776018189266037378495541824266283513839335540170579388510224078794148254811422018512565720222242804204647834605583709849916441371551312446543076654991667703130693572202754438670432782045351601434414310028314577056981503924951208266125146275867868275217089543164085843358793325492586889061295828881129261294427992043109802319881285985334496892650800406923207243223083479959924706497193119491644074103738262543690319051850092296862554057123704411726230986526558025248969641126098184378697264624119554310432782298396409225049970793439295144580525121409033109591138924255970910551179957840732356397867308155099821886015391373211885988399241302626776423605317686366424534058508049529145896944699598879080992386615028783183338398659221873608243871568541226405112958727430094688490142382763573791810915829258066557150959713229987796550734487517116107909503958308828694884453351326161683658163478320434964711246151377847562371275737424398542592231833917786226311644220702556868286517465404000957467966680466506875899006648335236488143740895005537903253447414530021381839222985172753719027154959057403334480002335914174619146847899246124840669138741470065379087300150076460200423075710144680158370652755867737022621382622299521351601656486685805754112862453473648251827774038467120860602405938164745422563565513922789547380382544076523437011473233213097552409230565562367339801406450840727025076465650471916878329607986446538448054639591267661393607935231683107691027263676908415245733891897382236865332087372839072560130670741989881453885926600282720577549821138081293863516698418475816086210428843971814517484950396311603750045713239700224054720945394674451886596081208450557466134897555319714916718108301217099088163553836849827975557672340011259595974644580650291626944742388449226780610136698032587308120540094017465235260151476897149691556063399123634816045870958646068522742541717745551300135067567591091231125747204478833147166324683731917398791368016147158456960218825723869729632309676136317241744239385022799956705504864613428950301094624789453785573567186069967162802903670528149288431551246505565604352943268521384393549165620506148089646840989718877512401248185815725054851488840762520196033526335367316390887862234387529098503556592922134188761294216178149549985707922073685639768787353854754827230265356391009861916864656026203146130085285177429981697560115020257854382336814246346868405043453626949012091069408254574636073875184620241006672302062882590246513294716773932743004269916158307383390650861130544989676813629807338445650094753163061737230055574234310525882701242560701484006789554153867737768985328917167160016221128007923538467415113597334797146269645168807037203361240205158634016863192687596245027430919508262557064346009106802855575986433498538127168350971824002338536967791407124050386734842491944457821402704202252553722635108633176306674732040392829973726339638314791296610320397851961238816582099197783071987626465784468615796807710603955408792680707455807785492558594111463959526106571702588334954980772488454501150884055057233526156834624054678461386603942991319536756499323627095364897516338013763644979212195915428614046098553625024605439639194851958455206821860432676410873197043083717069717043423938500278350054445097513080400026686168870092749121843303211963569527889211370494305233389249921868983122936285141055523131545364862461898620434519304889623625758878783336248035513871094280456325863455446978755204595648345066370909728315199165024067563920626486572042741026926921083259117833718006119129431509279749893011446088140788567379400409269723202685372227807887065816068402521775382504040736558298178858943795661010642985109386545242935521841180490621239429354540917969378262451582440039742486455753679311303414148570817183996485425635504720106291119222102715970906684512290965590907524818867970528154124336402634610247039701340632883270897318995736296382912354277219505231821566209632145965469368733944940436484738993562437255737357467076067388077320691371293445031435779032489422997959246681668360859844755860924896421207865193508107681051725757427770278133989624013850532983675576098656273221826716494427177544053440736226118954958959078913893022119110560556198171214506127890501769466929775925007566213693611906495361239062121543843907172449030503755114200441032733365227492543966140931247975316674344514429968868580095226935287034911777434570424808996440069307481225624823570923841243025323909583751016182157174144020637428726955029766425878276562682175150663116472495331809734723588535512039740279347550474666539454541019158310584720069010593975075339216396107708785662775816181279268985854226804957288609409269397944766486670014729451139417894186414793227040681272507460922589177494190142082950218578472602144817875681305370114831523330703548950826960112298331322059186577189407483042270305255411518316136768513445033216751929179822479571405566411040709814164788485106765276695357023479492940154034261642824431481355931091725516815451872750101386295695976882728616946452898876514638180892378035993996364028483225868795484073949947144831494778139151927217846488068402790462429893040547134379931114528273444640352329053375256787082469210652761306836312818448819385050796739668233002479284469405008856577534349938724015818470189843821354550841816296996131318971653761489069041987331453282979996564884022892021554376257913894772615897036078225686446678090092362890403863727677278174677620829786602096807076233714186922370356440154839098966607501953897886247381955216255909740397981047897679900990869477056927461495018468660138717222204289829942744048393198700787682067799686598360227378731321957529180561535470611292394666254523528542304806759488131897648732540136924469157909139297823590911904237359187889608748500711987537238221039145223544203286590932295149006878054255027240473072744972279331767805843646641775431709733692562211586080268004171531501279295811762968531240425536974277279920967631806487343042279803129512860161934626543265489834391034127132210525822476890852134287143483916868461493511960675888779549336470539870476424637548485339017518503443992722170950945637587622752183273726404976646209145221756325684000416893414990460450191398645210570682278563151155323785694144249335983266599278879473743313615878051036007578305300866904457578673692602589296650693221799629691687676282686520152248334985046420365438967236571915689799470363153590468294538786123725684524916025925461472998143606778473026749484743062765400175912437540796680706176025959006632501851848892514595762736890103652137470618049359117240798683833269925617587580459424453482768430338572859570085500605796230929394067222796377399846923964324662833742343091635195779315706033253266283238203350162584879633619402459856291571975615278173545060211915251736768572293379101472617262941991562280661759465192226645535055003153018647924029980469540185084804783788799911592857316960273976110007383345422118503496566747842933845861979180530577447184262238079825596154365169983584161625029062854423120320482423812509521896863065665685467086472677921130881421032123490937794745845227191306128625201825954074114466921651506862952284417053364974717120011475658623298049685394374602396015089152259223946224173867073990759232618900919763550612648472616406388285553987107218304995493865759847775936466546300796845441106010208895364134948005426215020032025797470992612160047976623954576015418173758185530887643535510389017914971945240844199030928710480417564870292075009635674861900300622268888348549562961639672636934554079879447725810500153127343261946417570026183785908776283030080871643609252269371338131333758608089390450277280054748470362672835707292123395859988771712986225047694896308055372780183430026669055178452015254373636521751356767585154708168125681848946048333097331241153305249413037001172081004984953613180475610201089307012156571161210982452970526724740800288218017203591874215609107525557513020613670616239999673297555262551448611817016590173590856413917491662122367617860080872000694545410340020022864040251246494491478606459276929595865160519855720185380915228256371719907856232739685050428359982498527400161495367430622497077424064758382174104968010923357465237597331536112628712896826945839626850055370143080725806447338800313957612919160209553333202403837873498804116528376128513587050108008972280077146457039475467708369439129228345902611559137814594567724071819207775827266182483865247233714908061506410036265360759682397087115497079264662414843573694445207183451446874795728525247297879590999066087944468753916495067918727651727399944221722226092100613239495692424333895934378976695762367633864602708199127481068859516862759475847235070093201229935781783204632386980212582900164866779282718865774085893932874787157832873863756062496518291284672909879668338722156223541025934130652511915001635622152157912896252625093706536025747538745314568663303831576593225231853630948923776863420127347254667647219337699123260485861892810438496842571002002765923337967599241495250388044707525022719889831160074500070891266143064665322505787171467200036854120961466646117315806020711405236303364253338356778377875329107736004417990145283101451541006150797720279677526849549240629014601617427851953296783458548939249949381167508065087782499062514453725698197411563799025425684257459839373884862996375712625971829962992696891568364608964434576080897585523434943495932685626271257915307822769570160026667074084081015073067626421210008792453704390172987724264926573133749378210871914200992539469294173251332386196797544429411952537877330017153325869267018733099933830963328223529112114760731994649808385602486972724765412283453645457387548872043693061108710142016726376322539436986539768471247308991603321267229600260521070114343223719576895930889434265400296048902064135841249616422967123261447743614797027490575048990616477786849863292177426307224356803029845255228112719023003108597235924336840463004467051560834088938018243684133845175721262369740489937343629828595737882609568571037057730836622094900505441945035217110774983411809838061743466386688572759693063358618200834478569581475321067066894982432823523207661377522577614602457810079645573366651394255645386558750410989743924022960804242507673260119445782361076501716601116302127446798839398234806521304991397197592079055784491668999149031025860107027775279828609994314251769288655215088023501253045843905634887882071055919827595140613838968004234395467397668498712265097703201557889842827160906072165219627036189133630690341962870263278805168048011699416981889635149639255958677212684571892823372043174911404597374134162201033121880685621607910915130697297517070057365452237188491717550065430705571105040009711245462509376932590942252257489419964405100950917260067624132784862499729167975142285825095429022232278587894253904611806391181358627187796787491511793338684177292368793819611920274614585236677977235265659760751760667075667257615793775088870409911065693724141217782008303416559384176203661500205898356173337111106241437424038913827062733348306221956623537658199757640524185752264995779867980802714720609208125298658987194980364331728140125121946920495351069836386568067997216606734789997902843329366334994877511104524164544092680746777505782104937774939574533446249713600008949720075663827114391803967375295169197460906288049237968353603199097116646084266020753760025121772388382830145990359543815504608770464163171857755377962538627231752469263689483927646415491622858237607345636113575872832326579297121311717378186196677715011935732210944765523417859160075356848518670671088041383381042526285588072638343165852740909619048836035700221449311477902002243734946283754665995701843901875020514250416664544702636934683019644402112958118872589234127523060275439014120387713237710951963839935913444382878366941322207881320528779270725698986818626748007555173349030287005774176279965726421066687346201235839672775351894330443569267340255962304597273905072413373467775932901705700591844321751597765626868283644683016803025260281492388488027468481131799069981736263768891173731197521633491210528453203038123569385762116047707182630920201748605865765110534846929993954079709314560707193366527039542459855069932549581751117065914757005416590667595163365404619142469235081259419662457099452966663506762534316392913713801691079646779972425298005896022758214546115301427883275105625740174583260806954255139191104863095719011046649321967770616077980979558847882097938996284034735852522152299296521601178707556900043117660875263064933324063210529714883633232637493437684013388005509947100347848498870541407970305390871936311535192217847161823665680150205934513574990857962578387079955468711880284700661772942336965078020556424137793059298980522640104153078618004866639557112055649964934070652342880594272255307071741817030385244075198915240967821196388590383672653961630645996538155582373391308186853521328235503086797186773600764069121355942297428685779000438597827016684077065190946714658062245292614211199773363503407330836307769894779604752283652174317570532635846323686987181515696592961313667248559200669776750887260076009684773557932329205041064393935517602631021386322172497367841129512183763282332097359054905606444196572867105661500875755850793199733791318430378673491553118876766705034053107519485281198710703534355576568019117909675854979274110730126111928000470526262524222937595384407566038078249078713758535952598956208969325545424931407459365224785027719971347728337936181762392507568913002980454970945258064570407799944885015404225040317161538743624046365177612140596331575288601735715528189687191936709125467578780133671867775395525241916600804480397371802024618294573360126549436064157579170648919328263692945984213585921900384394403641512494557522121682472683126284118467673537762038141598155122474667728592513250061841137974608135272951601575624059011286567891546130172467547671484876743291225425259467621179582999688663637197693643414963799440597053127624625391495578119043006446561544910830229654468467874732720600283427114724449374326890975449979309574627135559870205524594614434290825348751435157178958728643458150062007213494773875834677636011377161830658278838019160896831406253969820530900955263764859405881702863444482429732247989770984696150981603872577871550107163324256953829097020963536631296169254349513042590631532743787323441401681723924391222899540848357911703473966217761247365356019862723789812378533082064697241639015073222327579342823543493711039385714528858219798551282404171568886833747963689237327801950183202444410134676224575574397051020213404835243887731049584028014112507955535880605526451274384627653497703814476824505637544223225685537978840751266933910305669090270115555302745168473973014743462469911442079392202553539925679764650802995523531230499923004524456941623007420722233337483774028513453018846247195369377399688313444499554930476650931546646247794892417342484685526376795167339230995614879126623967283390990574910496339856011821383982041722061850343509238895984913133692732904230702615014020161519019675155614919029232477922540926130472798761068890966661503051335488711391044903375298733652613208149715863183183408793620851071918781796829826500554254511309129441227230247163095880974717293124853216734018201147766632035223052721648625171397390012960379801878426808751667824273782946305895345788090428301594621256714850927872402199898363999859978211216661940382632992480539100037438738810024953848368403325290388084922677269368180849294977549805357608202100929375727067469883898774992485832433246952947853825134618494050761328069836456378815569039615029115236459006510086182196768160574650686215939005532052192497820644374154602746408529595556751873005576709015583208873399676388085367624682580374140902828169438589300334158764484483897358416780086065063309548580732109528059748869181368959418039418753521614760255544048808041627493925240237008868594625627870416114053926285965365568025327348939546742995354190310595880933198098724685535390590011528303673940596352660621405945323387462880618137299358524318681911936608535167737249935249925590541348275312931700280431950791967666243942241700174512346710683243160371179052046888956102360945874016579753415259623336079579595676886841168468519394361855153628590771653359680493551696980245379790974294598700476525742257594381725726106308315056688547843244411808906807075646813161942310094422006631883042674508434073304734504005098919150663485485282687153298263794227483997091894598685554659355347154795735149994025274641006642283307822732007833728660220486319600841329579138032327589582120163711543440495581378179566105833213238412422165419342621454852458311161739154617660111549722033569486542664532161102008743657531331013208091209994004482732819546358610585024786782171627354370209202634790337663174305498234024827072929348823439427899646540996393820979640376913094665715727412843680037357366864997700752181733051725287661139604558706687152376358891352472149614206352295003290492050431352338925498349448319685920768389106258818557043259448772447115214945834857877418744038582635393187858221233524731752452981124182795352535691798025633921806183535743373258293372388045949741862076224862571094777081974737236088434047666860652256690319094974723666356907347995085118936291005562439015298726729144523060592468229309068750809052118810600330558662207549150320113134121984830338608553447400104606920140047904573710767447171691623394611699520824585219960318649389495008102070591476982998522342640127836124325940675610050156450729868745684822086581701839682001564344169091164705898238525149014859069179125810880853471196403458467095567142239333809182315740363230678754691240055803776440265268101392918352157691100043378369151977059648880941454566738386127935622621047395491026838710032027680019556171644130724130454162802082364558791208449547382303099830471262450161586454912081606744295878508357344036013460526615652013697612362711293852347854148829960330813473367711611257228663696526972457796672808517765605010284273362652545663135651354893325116984845055007149434741792764780906654102400057270831071260761964721732712249652901455538808091566425979293435391226648511949834581094973063030757315741793377440645284048927167213675876089522372508778169497595879668699512156300279656245481683875832171995553485802654208474689630784261041794395789357918013772213775617840740394183449343716416842648833213497568020951994078916621549807692416558571856769515022093031706346175300590623029724488751521907996183723778916199192099699897372801519024910555644610163739253661337460617867374204032303103631097806120460190757305500500038290150055209925605514652103399164604581620240782624569380987773639340499319006424845596772283664948281166369657714881343993272009638279580904494955118847818562847651934936325344138630309711646834261906408853895240263836499669366284345490767553162404377747971224401891125879789578100773856976574076154525994072493477108930270500455126086575712633552806426747992142589716636998509978599115059942435601175194696935291970662230064041806561694117836848649343924730258955841341615952192689310167305999307222459878010488384727322179589403237564714522281492055724573465437063472349830255427087923672585567314951081579489898827251679776177470290091433656100644471561517550209482861432325082779176580420511260491851789537249595835894810731279985234477140494884805154560364990531547523467173104172257550795567671400086693634676228522110185120186901468669480266460412155889221120585437151005191267444681102814279745799911425250904188630818920967320930553336011971877845791366536281517677909327038573204879839892808481744318124588614957058723020275063658576808853336292778418946347601787320865470254519222641549060627202187832525617787128916137710444567394864721885901856921463383536330690971925693787663194290442923053221160426140265058093046438262984535550302652665858822051734206479105089388062051982982004713262313008808869841966186253557619439896318952377658584813679054401501673414378243093239147938697346149589384456972687001724243578521131200965197012590584325918707720127825657351718536401021822539395791497961871787872071332897532049811241864172233049083400084252786002480323305719077120032207125430355054346965860147421423135533243751381648819650010383346922810692062431360567470709967613573321238906250654483116714659974387249019871709429949982103498197885112583755394041368026401170822727774257521596089796773453405315146180460374384775553168440010313235776996956122931627926663543345459827686546430258380836585160150164779322409425064114131860125050265048465090441434567343956839382343373480307851607041173001131567696429336315739912004494031560311756635873668722612814150686517984743665788968486901320142577732861325735140549376404661410394157975742158754513360744012455725336313497298599244146830943199147785065511363201754985807319756559904205353203514388171776778953461870490917532115273024646220551320974017931807174570176331301246135226955131567076705157172071759386099684177484586453100985521976215518462451197034423766375751089882926046220778191292986294347772686776514326341777270732552416968222804150354333065805534597905584544994984091782943425678427683145342995156032205787618352877964234279335057478608939730082287746012843737506956533526610769532475101690669190129935891614189984655898559723257353826233447425262723430011780527067180824519625699074422442347979330629823895647679421767043986489394175460140889805585471016224075133221984511122128832072178300861815417586945295080406448864476818458981888303344497604781055651386800753133182367245871084926843040673064896779757867049337803816297434404748933242018548712964544996239698439088474659608020435660526107838492936574022075277251951613586726871280544711053008844112059920502877620240704500020973789352309473548838899978221278367288003940166436772996603176056933822048616976676530418426388730510012031927773145901270185013359900313439490840678011911296637786408978715704784654861996812750953542917299418630721010794386117820700795775758298228952256901614884943072529907078629315952606665203068147015094451268436125888906455390824552723076050491233912739102762534692756462246216352864260544346549476542662467047502014584977957338464869743905957779267030184070606354577527422680851881251955318999707251409033930253000286619663215741911440138724224495475653147927501838323956578194241529297914918644498798474131353409603115220019373686494459947602872627017763702268341672870829891892253877451774065242484851232018526766511610901731949055589430470154159063302028142298117680242068048644359500171112332165408321825769678890635963524766669594883740646013663802771374289178649994871675382492571765262265976792386822244264617195925271889585561490610284559732221335193569329859659014539169021205108673774772467460035920834299728931041516512059703108278355336919905701332206976617556872560997002615377281641570624809336120971431904630572706511550429738245698077179497552799203470418654688024583572025942414877655535225181186346724311120553661371881814565664656686120428291772580359448859701096754941110393587075052747014258911764609559026244820952038453926967246829494261169162280480807158619575197549763739403903087341225017795593598439701787164077912585569482253703287835118761862737091747281778017461625447101232917547261516022392800471948407777659822313172456469775391509465777856558701773716909864128337346660930328396827665658005425645450419200616315594826388152256273753260047074404435158109847514545248785033654778719369527281141250031824864409144113184585457285012003257268210154350189732699458334796464713481908141435006780079267353156064906516801823958696449165203139424438195243322729204980478771665632548570375359732706161107882135727074410228945857987839717612052782170834186398464892804239343374882156899664035814669948683018579583099876382235209305245576446835589946804834957342996646833073455449965196882825879348763307376375147658203998931898907097151921586374958441493528245985029059915380868495958493409063377605988272552780114164377478661557525236207340439237212919129772976640181350292436317765268346051082490386290053322852910258484217797207701204450560057088021841698471723578595309262519621998335015730979436613521559983409867797160192619920902551559116685165807857525437763002242628815318050599793307458281428306548887040242318223407628757962070471082454818381471310283916856917102713601681176462808311407918443395025521657660114223703844161297540542321883967341032329159691088310289773929165227724295314760483405428425429968087987189926465402894905555547356209330193729626630066058840808859720802625025636794234112384130665452961062063339812643347914906540103327314348288994453211425409130797375862389153916784893350982028856638415379450687834460499626630281871644294563996551061724617882886643609923122468992075242836218563467909453425648932145180737536322929865610860876449851647748763666472832729041280427641672136732199762384750202926317704315221240951299555048449555564962817946696378536285077750359241942783706714838374054800547909077806903813423577785589127483652869887281880498762075829250235552548044594951281117636682815776328343036869423619385907305825714026125814160575730055524501208921547466056884401133628284633877694292684238784679214600990986767066614275250197016534115037958825944686039442811471922343760998007716647427328302950657488843071809621476747626923032505997372916666683729652573131583877511924993962583280847778812528697370770691066087835159221859626242690142974470740160199616284448531671934112268733472500620465841134231798413206733179564145648449395751080836411075220805863237593056099769075697096866842091598930253402817924557151197750630869428318274256842438559497922321605383639902938079577467110262570743940604983551142454857845361676465156110565280358346155521093469745446283593679695205978572110052399141109816336635472629531826835379559741902221091713458436962050310542249037944229565613425385088045328515121341469368097683821278997185464849975834803725071560990025769880321447942697770615815276361067494886418030436144258419145363296835689787341705365555077520738667544860889004623648986809852920853520589886476857739406503807158997630762427119319527058938237624704309094496974657381685175454719721606961747654695705973165264396059088634452927236887090976779199976732214215823114615726772442168495647374880456928625896150524090625249158412366587574317320267097499175767786542263170506618178217320900846551800104911602351307421230591893404403722134553989522205530634581826121751528312911201504045422526525966182836553691170484136766874452288170807193399711914454206865928631892348059579583041540437854008852135764800833449996236133748706474968898880992940015477713171759181199616934098385541343240522694259899910774151848740309690482187033188179711933911286892639616194019477963667993469987210591812915342790674902097367657627962326011129746184113348378097710177081777438499892993492846570167458442906866654619793335493718575442920025427716625527218641334600228635137209720368476605266931158725868991345224262950674528072131221487169665485438992750556827070251196396864805901182955230489874133907314509015084859811544036726981347334662336875900574616105827233906039924123031115999052581285588503325862131963635082788701050904929481326739489160004475034135759624068054983790862651193286975242738655086709675792411190602775187025716380657916587295334771375221185787528580865389969228715294181090388509277493560687393643092411214204784217106341694285997974375898002329124769815077522088182109112786173669297479101944860805985642827200173914057386557574462189277610924059703181257194401612600589820851269951885372176536134829203980031772236270787993258684558996223590675049612914572690082437990114223389534934670244802439458914205504124388878064599303272909958952748051970600502222796809651420975790696607662536822591230204055676817047395192519882654561446958165339426050782318987449301253066202608501920712349745651835370198882505053935331800833958416390051325422700344076928931845793017262464343927198049868220586115396764360907055715639108983921776632546394609916624808936327487504271604377791636557391659287298612192807810673363756959726509302621349948010155222242961429500607154758698644609417312490125219142527194375100100397422786642735595035880582022694904718797770857058326287148327248501601633815888173133049803679393241173670770775916418631343348308756104527992110138045438883843665832916989255272242257948325085825830191826645437615627639658938914826567895200513486230332236771119508489269969520671684561515656544598838350161702296922463408323571632924752697273084983492490611461011877935098612833298387118408347551376472761812451166125346668806691359665745093719469213356319341195644876993725911268821978341544799018352640816890022752872329453090538457894476150912535134141180234239281758106277218889938946276405356587264665338558406180618582536809427338005613078583533475699877714175025821915890499156044010721966623679807652039183008006710522307828855375185763353379920746267132968136075889928584555399267688555141291807825638181024521575788248518586022858028844941195935835385067866358170524434508252508643239932363665773422822120275131526861086726573109995476308312857825932065153042438894181868270057903147403367513482650518781439578708947350007013793160223338703293086254784404835150953326445389174978538123191977677486309307935296163885693278779898261650254903571706535579183370959957318798923911369074817841021320418382201241325976290987915212940090776864070046334623314981164186213424336375883550475066230344106616358664771264728772684026286155685757960445622372520428965126265527879975321498796053612284600701893266485739338901790442048088602678920256159968990589605387591600019402416802585807892488418000267844741781759862233747908370988710627491936154037343800533997165579850187299134153181494086590333457358540692812311753101186684446904314144573687132411803718503673176364781517792487870190132443493973614167797256699836401670132619850338744007727616770896379166787991792136704067603541456851409672060683577921282803007850331939039556164982760983227915917487645861437595723141063214383583035918705726581818060057460340578310941271771901360768829154735091393221675985209440244359314170758390415997864230798402957693328494662496421511754090169062715426442454747162965403856346605396970617826026859834424528659821693229666915480220423284234690348768870440402366172961154080080342959032318036885605435015969349848265102029498484317903656461722357209810600613659023005877833912745998775049893317225197427572303443789366309560374345944197517619757680853511079972620254348558774714979725864069072813183104663841826379676368326820847790985712657145429372542319997242734464539471622575869772954514427126042973172573240202134620426990721173828090008495144122032257286997949972313718442559476236735348981152141411126525261502837907694845608639841202925560396542239341477255764709670375029172572930265716082551898082384986285026723284497969230545745511129099204279603791494027045283716341299372798517718324154794731859744332021520184593950429786497139870017788388336234496138256050136567043440726675890134281897666815090278953375326956240545967010023228264086077514371959811648182739857182969209355336919137076353684508616412188541088386066801784215937878657515537970673159318468879387743134023463268216762545532379343429676941200527879465859171942443557435926765162179196491579746599843319515955742061368689435723265163615236918639754254138755186618090493705093883363357325712820693301318574294746180045358538991977181018297814663241481178047281551823078089266152998777049484365559378306244735758225486836456123816250158730379325373526601430423027995762944095026171585612295818063458643246796816612417980161768212622809108213737445925836927982675737752216971379476368774214796301480698814583784751420308143957033040529939494923985451444611619048565719959372263765337753696028438121283220030517622342965333420154578777174201751036730966784442020945021562246636565155594657397587766651158618130876351997169790106045411624084201591869842823783758369171527419202301927448834051383949474450955321944989156381307221861220761319358021419373510736346920694126518142068366981701962549897959796803688278550797767400341109135036367080163437504953162456540106412264480483504110683290269246257754065271221909668616483882390046791152253794807199482826837271698478279004695346220129943543351742699973193545248116285099919079037725888315259892091656274854049554938304318150698705088156039389961520947764013580362204646585470393808955403010444614341353669910736758518488261912360827610544989768238688104684726353190622199983898405125640549693316809268781131603038128299269097422705567646490908756372498984558967868424135959977385754054577215533068242239228174498540740674881912301429252325931540823797425660439888789833643944420022800343112460430525899832463331073370886637950202024233295492092585102213450283150798949266590769101980074759782926577056002641229183515541653897065699904670260719327023514925939320482301177231067599839970228932727932034508013452297685914731810965145704274974112378854766928456338506299857092537093498523726321170082627692185653100490479974636634719240700297244958451127167317533577004379595476136792142897791534852924333149660908390920130207105670644093788821872563600780182643488008797801644695093245396211765194172772883258581913543852529718972215459197650931414121268817080206403793792052226403451858021658177615703415348639624739987578948550611858314698637040694234400305610179339063663713488993184381622703811128606811626126212585952372513417658399683881534907908187569372540400197581403567538153592001344333706065321901492372303607197027088032975457904947160061888897872058231476202713951373272823162105501116276718855209741789950688851023925512638453325097967751776323720279583091045230852684233612571379081511884079354619052985357307017487536137885252905160796604630179398959505828237074098101971283364224444491008683389847970194709961469674752653720993061112552359460745210076919044230918445645257851782244480025368983549608661202965596889748551857059051770874311969261620000230244963882936047005075329196690066985757339034507464599171896624409538491452268140925120084917325197302383779613572982461877084440005507051985644186918051356233115500629334904617881212871309792588648150993918018809648441112502237486290087464676075882941154685551897931361948325709347991428828681504097482696707178297248156146577205647613122935800423428764694995844948652546502021136141722521545094149188706788735666528318185051552125836721938440348719769199017509555294365296296496099750728087720211851108041377593876801575232778737937716027281742644619981271577251827138378333003271903811539454704820968748307370572624193587100504619526624726762745784710539130359906699743073721574157971849745632020738063729601381049823548947879034744848755604731391843643069613585109216323512909039845615830047124744040974764146555245043614070108173525690571509526060719651363473909125896152332670462473483132713121808904553085718005875318099386259582538489843150881370176277522330121967272038847272680977534374507691593028939509789286303176796155427308408014732767718639908537281653418771538052528641804766341844435594588139266498450597537402130583052834850069895379803728346469829872956663361756868934671806613751369710845257755161991483970009721299359508225067826890102458671915637696863430463982955028853264225715823810424108746582092854625732725821212892006921133929070397578531226228040224432727347224865010846096658302589595320037293497669722948947603635184186822698220142977319953749036067098122366110140257335950506405512938565020945867789303652896584751302536758664376068812652229743810557205559441158073571192630715282661219789818292310570458237696456842596615954605108630027617046880279248747791532366714880139588881218492076094968323753555791461034769017693532943365351585520069298407793089586247712683117272654128425547035124606631881804738162821222760754903485878427742134233817534303842172802954162663974084781382869687929152274116540312276192775001971206849669379661530986431388888078873009762834040269641005266862698085884834674817802369260310062181389794072677169916440465363176927790741745778268907684768354898945511494710672896178413285564738628374715100878193076334609896302739570013200917131748711321622546879816619984650757906195217302613843646270309960348722090285980617151655780867730264469468870142473397836683782454248362964682015504378889698300009836345605321149015958019969764240393888238314975591190578813594142030158678260367118780431834331959246165668592793865032636142441167271593103594914895074940152742816553468772010186712169424786306188369135090078497413567872913640784888832347995599591564833927605171553351946306851125434422129847350698649968662891832579784821054724989434913117587105141463907595530992564833723512344134673279261248201587716903065769689143299825968469458320938124664018247031553611827995694077129098703577001390977418392647158514391786634655340196552714270442969102679927414644814117937745771901876968869175792833311937236269316441034530920182941694757641312662021245833883061090743365190934458124525895428819260549175247211764020585265391476370220600308953835928537004049329978532673418694510686998622411294542496399587281109549232150001145318151734162717242674011472579620933574682848529342034501782211768421726069512698175459659587767642925637951762803982536868451623346866988911506538042024577440069685005691181920180535389486073476047045697310712941255620140642112805192197498815717767931121266520895480170098974879908817636375770229438517828464047485922698511372042883892555719100194561016257199684309467147136762923414372591314422298994915795631196147239534749694523496513618400703623444329199561218308783903083326845250598535399949087215081598194993282763172232590384506425971323545444330086650138268471177846482816717126181467409848319072469411885413320318447462568285651918713148809325854678783450451706873491664403120481371351176815961564977724826686459484200638077510226548678027470283763929495286037798680408462328961488649407218267551625707992369769533998878883896768977775363860974951031556468171340525096242631889066861080183432324039270297105409093862686713840914442659512894196361118159373706598417481958987713614008854900339450740255682261587085432050844782929977327652015486406105829922291802687669577389980749805765164974954090833806024270748998763465960820722413852136942376632254331898466675041630862255648665591249903616545067915360036952268345715992271586790377466034458016800195168603531307988311109212432316959620216171153020122238787492398628963872220670470535256901223039327308176103348509928985731761310698095788249901431618692186705661163235616769499092298579301021749556891921162939271586623718282478131123713318703902732348365595768046459783140277629910673736801163003431319454113991597502457905213249849052651641826969767747868973513278370357251067873499089482075854660500713594730579519101530910702688951378958031607119930945736164739210394168107768543349814705995883952665742521212716987218628524548481686544923029364728775286935298573068183506199631679783874995262424080395032025851507922343123899137153684154786443730767566885993160044027255276892966560926062447121924559702185594684473271887888151737001225935304215465157876216486194318647793743732805385487192115653859411044560160037977498535919964000768190088368210515464432442875403804478011778657659000180534227983125893887559155950154525800739728918310208689949522009782825840864018992120379190418057072343271449135702995820838344207450855396333173247919420867956610293362579411007805431106057142305753757342220290870727675287994250679196147885015533557757938765799473746960706403371102563810689663301278883080103005916778931773549100706770285756748713057766716001636984040521967918353851499739346553404359192955970805957286277596669691130602665648040707249227418299641134636806534442499474224034514077041879261464128056625402032858240828141982257733355424031243411936396675671706546788959575345319176249390524075452469251321183985512483645545699023897432752760758877989727147487960878141185843138075612845363328949494197457514924640716260419921255172819526591952936835881019816063868785787138978312190966855875808720830370100794440267197483748035993971467663429177351820164906991835593413221289214387765262972377714714301838449605583862707421389179622767104061146975852540433965857349760406098762659723994736412942471124477551189851408968061160172746379031685993078299622497048602998657199933964849351311780516582048322265409136618228501945897716137363166355297900398949276156200942980635501223551898225914179922889186174509404422560553016486066167697588007217657460860180086003652298517448801756399244353025725949520364881153241969804171147980550158618836887936542900094574971109078741810989071801433725043178359797212284476885558224227543939209194284762257102234960833288473119454152126469413803237408753917070222386279689431438138794537481795821892111079999759945177926138375983325434072787377339810024024726132958217077394204428305823115862791575865276608454274500699879646206307435454380326064878505215460291287013445109067375475515831146501606880951158721870988577212770170168610082394184317882693221485150643461199645016118544903793717674437507707779139492747807714906541727076841304823686776593319239268334251900296628320650164323391801208291949817153457950364915344097655778625841167101089952437793231385288946455084934119207697785836499389648438347372737170001220646777066220979169162858202790830099636023826809210569430445260432361133328164856111736709767021941497957756180887162712424726256022725801671089517764453045467600160268321090081014280610125992317286334123527317445282872760476278246335527875778594137400623089210761085537797465879263740725503425928222283179611079128106232553283653192406588271006779986978689210636704785305493819025200337849440502245519089787199250075199545452932710365747269219375144004989355784086938905154035824768827716072336575030327728191438454398810948996632275413018639557815160115828011228136368852545430300072455925522466721795229038051546274692026911043122350418701054730783709112796629901427863043107352195749954090188761296224455755189921857466882476687314984071391179298762834139539509191803823234688454316245227756692094624869038948605326504786224254123529611532962107415266914113423067226369655442529351680741878321913183075923179195667302804388325022778612028554800724860853681634197547353823315607647021788727131906591978155552530188977892176610442822901724676310388679158520874233460004007799814788578396733673812823061811761986973248299119541757642817471992185859421063664801967950796614089951363079944909054774710109766332876389425065460043181479956405537678760200452215705061207812473306360273652014716462007821970513635858433898583877569283647123795682102772500672488613284136712936316987391067959053835472577557712419096589335097820204078971504662405980421685080270996613378676083113600084906232031111431767614054168806941251044220832623757871690107817029853571072938894537230043486540163147579542108556232467886309491724742361594534914489748021252693646854006770658274784038199954257073626027833545100907288644545070069718695222239164158172712724211562835092095596764605780150480750323461594934764110920395870906333076568363203726699355121971687614821973723938616591327497588081289274271616266153445430159232770845674109545242619865751663216388186001319699917546969298697255506964110435308102696019251014863328272549262275680949728740082807287394470212699847980893819932079781113871491208079792957868127409050822403460593114854779121893178416990480909189910541645656529848530227814962326223561330513652435677931080835813353955039267560596702553060077785301298565795421705753038939393071456729315178856016418640268406527425727758572026068319116878603757153865715721653829253426153406974620678703028877285263416821601106247558572476781235623033628013159047742652719336231142548054262768292202829613678976540137782298954040959889954386116472071773308986972354829253914896123048774336615323284644059885605228144095673130826906247800633182663358073259244249831132624417683961138576931350742368582900205172900283982406277379217750601551843104972190608790308018562380568166644037509564454415775346735053690919034313354989344852801327908294101180724250680840856028214142590715960074066964102751628869760668663169518362112615548486306066509422497565051493192221189991739779498938296134670400384994629117702004088175283133681360072622772694399329131715064959187430961018190130517117956520859749743646589968321189459318006704610681524492523814050055142367557318121405133800850784437262674017125561770223708183838165032450294344666512439337392735923426030684708816552894319626811172693959533528220768848961448316734444102848161312527840428360505147495892506510618216626161123434701419888071256178230418829707108581191721359101694318670093611511973512638953102569664231368428031929831715235874571121235467694491268736611505889752888428669750847311750648316699400715258628555090278221921089532260052947300195478916416793580272390181868780646998588677819873099969451513096259634177753447287954561922037104849317853977760794203091412104198101101997425614914413244811821576581521814046557534741457635973345483155009495360635332789568604069211430658397414362964960866207902031704170436268632349457738602845312091680727111288291470204528369526257251322637406444629121140892652849966969804670199000561996780577281746981600313891057250936387281594907984754836436232152095151687593881098369866246630668543832575077344890171034666160431782926233176204866919599287066158548612838622786060377104547215783767328830024701545323754986996913959820868607597785430564571218277701055207026319856223989706235097407951721194239487561571079575174103078077090221203429358174529211157283733004923717287747537841754045419035863895669878831992470459581392660254332413301030793280953684462528248174124519214047747802582896950427590709289781441214664484200505161846722973286843348066383322315538962811103622522091080805605325894687551230560122100540228420139116772621025647511033669456714124738747832124436130877035632127052347941058023380880772226220281099263501336048641462849059609311350387942133253589241206816695680318605660464022206374625925083434139712303440080515901691109974978334808850605950971610889133188318768299550277980626301285509707020345436161364194792589537655821757016116165589404699147591140069651994875788350749725531128993928523555532621532172499831564373733996819591685590026148576149616948815135596236642405684796744544552391616960416531895495676938591352957103045266719930192800195828788191224463804036442475329349344933913975550647427318374184791568398614745105355479988737083810835782338153210438806950393433872103586922106606376825498850673157794557396041515412734340057701804628253105161128034779731919674665543770346354862842673937275012948288188028485644394177626633777335149124684776938331082093294828198430786142258163230276597808226696686259201249853706284211603894113863723749884878442338045022784059751773967527384107813772947782658223955759510782507254843167537975688932155642583970816747789487732120987076876022395344035518805526772040983847902076221180180956385866927831937674773407884932161644901705184728253378723387509218885979987898672868456747336156315449854628894579602104853492641734730866236096363636847057346644621719114371675982758689952230406642318069651167763978342711929014529269877709495882337616101470073337900768276523622266816285033877448511989956719936277498653585705902342464415002577080746874938566030288048021005948401606685243623027495954280775276183287588265877372725416713708243720585467489006101966048161842066157872004358159039340324161019318859513886185480183882804302863963690462881416223583876405085867163460509586442731514392249134748676683137702563733682961802997845286540602228936138884462071198549730851206251806607136238397593263648280018570881163356559380690067768501473280889235102740129970267352009821398304180407193627224842257610485244125286054874100170874177442580419969750081123369936583263486081723841074329765903051646015426256086880444974187354898411962726826276071764548414604102895488811444659185512814834586872273395684297165699251942503781977675259581292043527306378085856929155100416004240084052673402900850893461406349187178011346542444676859142092482383317013513619532967874253406845734598223657330976746402698830636762747164915625224420537424082209193800023600036237618776883110089098280274532447242669264592178205992050813390894485107212628577112534007361634218621419188101911295271480489099264195037029909059584574266762672420851004843753283833302153331649918467634813915675272403072342441933108841790759137619884956495164413774043426918773227102190629023182927815545233979355579736612107802875630222909040584557522935882127092212823037140688158166802624778032261639858704152743476960541916960763480744893032980452592742526002075023879415565302077278090533638339423149605464904104979370717432158631230866774966515048479317362607641025125449317383586333560167990638180978217755788589959405923994516830872281914388617240471360426982221346375947336125919224180438557373993427128376627424650050909222954954324172228112140127965255230616456583012450438345870439758279610631053656414822098728947556223108208361382914862558530273479233464979979680173510171491414531369844444498969755849595283211729695500080618248113294634019231032867774369092066951934305705173176311786095367029685243533876419789248068030137018366442989300652134512773051075559748607695446947372061169907046027382964438737440073108752793181411896544105431517572099139388390495788669058278026132650182703745182057191531816890974964707390855952053587791317275312150997359137994792522247460778378747439591741556815603587762156533910101046731372089317384372487139438015521125419451695575835931581110560546051575614773702544424917139696109631360078276767423164569947865098613899905207951632883039631629761049020830930249925612983399270352550110790045708075195036147054717814632647129664995195592718380034160271731034580900720833364281223575859074262897795067061852658034869581671866619730803576841506998339123643399890458755274657515602062422339933929887343961759918003956771346390037763271920377111601633717581133034906420824305522328743216686523668164689349561863970451284474626814435616168483503093875759187524179752494101155062871946281955930474985557229217269160431697272652121604530911580716752787207507967437963678354128300551004859297437019598744683733385912942978986279441072631180406944195454376041069913040273666201627721826712466725297402299143905067181790775086213547977624668807906188712990560484647413943484150514761642279793829869126148028677316873882498849363139949087187290070975137626953853226484827356746449363712915699909538995875463633674261792299423005050102775269121257475181542279025535939344560736943449165397339227916276630896560363781360543665114217266156991751062332305838250695425747395112958514019768831594194897702154945174846396198790236686990891166327864070759806565056658072799986394689273912635530784544245522805084543276820885178911902475623076454917251004900633356180398331556315904506091747464682159123059785067556677319464272254457109286902599692205561245995311133182940085816339564544403756915072196884773849004772141545903785641752510582934779644480576992209328609933651619720324957038907977865200942358725945213116464740837440841135616729169404995856475740645280408272812705193199538729553735927488953695406632160991563930943123211286091979515058668797176122494318154827453799898080995581928216995678409827146651956212520578849666739864404179989874405338960528797685504541593802443811997239731061825886264607298837122315828733837129015387881010235530970721161199614751024247751778235549960587629629322933748941583115339966129978074568169662727825033567691276809039770482342528175818191655344198011391334308054502822154421733968209813111878942195440506785900771765516485100485073121712973496441251010533838138270074639648713671191451047916840049622894008381967441329966926846205050617667629722034443961274465467788181059023270578644702241794845512585186257971800406087315862280269725043073260829465394241674900570331528223203359030133851347532160039083504656154922934269273004327415251672487879880018902499297719069642571716140286962010579050041347243014685008073414603478161763947350254776395665927791680365134956115852777582105354116663627727530243474988253933756952669419621212487690797210316147083876510398105721229431458899291570285774962807280786817984229461837950572000889091117469639449312302206675463072894808292142710593801831866399942085931397280087943672054736478040458384761905637093401895159723841715026337919725176649437311772557883265423653716937537739055233722602290484466090348621263854328980414484253664961122119870162121642845105885365073801264972353868891805945541160780586096784801025744471940600779803101658628538302025741549832445230933054885847860102102781520960747250035386458491482351048536270852331225031881517552278645196733150458153475732643196349856341926465303906173155242668863746447339781659393199337016218783990939267080109338821150116429372764334454045226682070514942070805970598090689889976652752673135855446859048263729189843910068050312095267942001670922936143713035016934118394919637916803385553287893615318304465308799593268453210330582155747196669315320729054757414376770918777478446458275871027719848272377708741874809074289386352713723475807453245175662419048863987499729241388537887436845778340391435519478308771758607367061547677760220712972287082242620571952443936286442426075851082664985662466756436834278337524346587112408607851619300709877936817215428412643428426059283128966691421518794980787212286569180793116646156755521854343586248578785049851048219736992516603168495725458810205636501000427651182449529918355468894351219898365579791590519591920505902077476465365433122682530680449181033902852130501080550236374183443826994965741257404329381196133762855070108088903001342179720817541245247429816063023464537042304822541060923969484054659408813445676202421520078536356485102073432995811481842654389172120812689979826947893796367628405226973311938262653486882342556738586540139085236101941854195357327059986270277582850937698823208630334797441352543326701135645829010327460833420885402316242600962679207901429120668863041347050468035144714333335718585440767762606733179115554348317425358607607906008608585553614072665335191927860686784507224141673750969034733010046987348143308103121224349769368811503829407052984599505442441451365265347521416657037129728723380169236419513873136158146750617279721304107973702227795997158555426723753861331649815663286985511756015672338814769698851350754270791949313415688798093556858734446455046385604934642298067842698690037376502861899994345673497371392050851937256029125802790780554341464440987874737119498687897334229810075723567542265808771839307138267896918227547575104054322329561809291019211300085640666969769570161642049371570520390719529523483029820044527378208195425012294170443960442925061172888697627658953733721331552296395226253863771392663192290356938356686129403229501881261144061706841670097565361317600122200640025687329800570362764105695974188993014391327527680451833476492115083104643481257062760248358674682756534661771251502888759055560966669040081258079968447484170254310608999547373628223984364918944018508996233326309810220816837857489295707881525362962613694565513255388031515044560996884631012393170626594680131257534235673778537159192345247552014238288233276109642565165479647247481312207781365806449380377843662278550303651375592427048456909605666412822066247938298122088007418115936618488634770347352825559979079935102334300173839364128748422619060977742236778766529575905328896054521573420244391003006236613278979876515647561344800752185013502060272908785461987010787011093232633037067333654764060785553172425183126878642544972448675695529791721875604646663357484615957582043158804053353121788536929549948008948795242768069228644705560054347299872768589854274803362888476794718302627940108831923961713866454454970254478416126039070826386709056317130920180634418547270597457556951234441757353133876331852701768010679326338695467483211227190603146996212512848094063668106092455901086983967502807975516589704858953611692985519574592034858888350358087984996734477770104800609263814360922684824974687368522426234130710707650954814622233085896989733255707616027242357953424913010942228550650073337401668155611382232732751124557172041453133958420171865162963763926496100352155128721431636236149696149545782576693990545776515313012997259665151102760652831300280992242246361207047864727029859971360985344600199693046247619193506185375194367470514112419375891867810236357955140427670332571054890742129311892474482348744730805952675197046949467167790276757302231136776983982661991280610254601949549327640380953195007474438939843538138536607256873430059330186758439330864215837686474842258630282012787896952815472356025567682088855893615668050669610160479288943112895111607693163822713531620371121020981989717393257835178070136450173085678795886816771559868859710713666900461813729637403879261737383900250488118616542233471344098297823563904645087001852749667129911005026037835118471915366333741700462262458450950561407892236174181264900927938153693051027182495603404206760218020609755989934859674396176003731931901026011459518163417622773258063259389721530085136763760538617725002378249714028512088394187807537404766890790630196331611392025532566484835693141105814979311786229407701409636894201424906497340441972363241910131851944303744219911579198803937978009867042466256091383711491209608485148243244571310113276236890119262675120586233884822230187051273910929337383557545734933970251498402248847810882786521627004973290220733763494443959562049550611889194471073144237217542378357578167464517669407694767773261539634154024534079582982930647183897165775923379800537097750131824207933835852133676560216027954261590770483315738250459812056350326370923770420876782429913457475097037310979214638057810890906648974350456094055827276391210536222630482053107766827988821910482207001283316498075517605800317360169336215430773182627738403037963593788993770161510577971743948704276417958718692552630566081399301524948210043866042239431582074254269960791314922243802424179538750827575767846248467003629128252357481406462345952103968900675539575413868227157528256357115289742292917989859745099406329159790394529757418215466458889850308308299727909914123590079172395865652311179621800562743270359553313409122727440133933653953429949428795564202559632936018433691159305657260300743687579515068634282642964296359342813081080212067870974441066429354380029087665622647870317334239231410776893464347295532296237532784061398067349381456202965258718647344310426450785030679418979873161738680240467466973691514823083727928297413639571245617653546116100095807985567856780557594645108520752332094673595936402455672732507724131381049400676086626899985411542436144465554711553281961378852131251848129868147528479606536223917664940208216542165233429690727186073980876312551093614187977095272719312324003823207147074970586454146995640778408845755170522743555881836295834351667465090821739836466205013191603180025846069231409130173866859087657861149243624450365241433985508086475768725287794908758366936321146747086738305550877483389807787728880712356517179174310088955931945678110008303107540085843881194149792376175372112839415744831900827992358457417380006029254303370373807411866746767622339046508417508145155681169429127298224333915866212167276328561976281439455868384025403759130284009330296701201991721182504419104356634786291269541700182656149380543902710778369676496082608337945947817352834740680558004822507545235675821767629704417649601176899753416915461783090249118469634518995743626455564453147135594405383128325314249921758830579316971965139119136411774676945130851399509426824581281592789156466615027087393486302667847437305410139895626290250160522986553015299464019483791546740240277610823592323162214757056946269587798959386936433568510296276324665548017767575344864175218281740125764855569006288144612991742470294190952989751556950437162180921566623258148291022281589257495901565083198032898305333979176897958392223266720245563660125705219076339892376760244810179066632496396146818432765088201808920252934762864041849777478375328623079166010901300197134275948739438547660830855400585748857671821457878594220760731036889939985117865536615356139257976977378969204741982972827298375064856287447032203783739723573210381196902654524072770933590596400310427921463275893720650410345751619026649990592891718722631601910782424156585166374011707993545962341537539881944712787703574583106858641444290736826366805091223690020956203709538358640320598055280504140575297356310152635214814132479724061491106130159288583177615776939522766516633090481254477555132599507480049934917952882574455119365077833200018409832513317829216021490957906328473668024984250339537918421165092829708935720947541139469521749205777020558721712904968775525095742813378851794872015404015657843772647880022579716071504665837002467920166833028490186502929342744262473975633473037232375328312288553341419004119233859257981621257491201921112449816762342123310976641693683535543232212500471900949964306635689078885517557129453293194123177294535623563093866381760677087288149632024405156920464077848316476938919280192741610033712860837084713002011898509684733044090691686477688561610939062233883633342758323405752480646056523847445220111218595075972020426195984942623101592051400502477633116944010024909710891888895679104703748668814960881416507171752415571765621734329001570920112078609707762718137880545337643419188608452410570238235621480925997345473730203085490125595233342400361399013915786342173034537011692724999892929087953979091458135852038095156319236541710016276750457454972089666501828382821256754872894822099951917681694094038281163191530878902487608778835393833202933719835520408126779739260901486195899473196305687139643151846816227455102089278184320937775374345574059696959637654684950441838442662545880906090115820860650892003962410370033782481012077237739003588917394688335733506303033374828035474945968415535409587205392425217405613173903744560411437684071116819988561036150425461748448290615433894377418691027638020020964003626470165157292327579940218524881679256249684710698730178310561898503835371633971941296760030963746240298203257379331616726806167288056114430300685118540782744820344515041629220881643589906806430312227289808671969925587854735494009240158608572444433183318912779041996217171267271390322293230040794060159809232200549979642456608261286762150239902208575120670938949160649639723119919521025097257316777117562978950684313353272093730762123746656760664790187417297455166057002581184133875480038082678116126143649350417117703026589935337533213747807502048746992809923896092217773607030769514385339916424738921495157593529635294463987218034012912625940664547193872748551072027396176197171881693192807178054070663335556157187349148814579543702624274224898209343210054525505090024842027884846129125593476438053386305220696891489631926877923059075441183126755103278029537698552043937659013174955011612150034160808408665466173442272832197758160920245738563731617692179885135312222872532667236388249684353202764309645559051082637953857929124499257994541777219782727177074622529992174392420717618647967280849724693899878872585139664769574320410406832976761070252837469300490901269775195562148234744372092797410426416399476342524394276864647573787347585432598635424492879111150904456680071389336099789393534677284644267298033031995510163320816635978361680220110265966156009098274426760142022948499701455058946730750107337453449049971209318892974905714785743066203432581012922328195599535173273766339967267556594377396411596133226908614090111811591179987371032057215844067020161413641397005201271037972831861421618361677757374294543779130504118239506317306266276073161105343846816555598552368365900482211061596981445459543783210790457511332222031808874688000289614284310975915588889922612756178290213325784382128662973092076790936662335767431228711240056206540404762030144699198863996550869766119671612645305122993090728640421889413031487335332344793179653824749098990843926754653581490988665377331167944835651189059877594295718852191398854052655786331856314890116092475343334130924650809967713622097267691268252780843270079527062856096673193056655449457291452600226756034542714090322225735805176238428247641523452097429658313177297566734360456532804791128080554282117157439278604654848111031954532949036598390196861157069570659890622448976635692251193725507072448739987071837473322309575018309084517831739531576301893795200440536930192417507740663032419548419003872041067683914229069440339906054758112797983293476093585474334974962500387251004931304189326886485840969680221648199901565864711573248952932047935471445176651648011878976415047074345750899169598440084170405223449728302124008567505484976717457653915275764015286280718496594013709801558108826925618944423920575462089399863054629815615718704147248276739405877158860698579257653138800368839864275803025154526925421683783194877493437302460513954295196631300016906569283387326750640075576406369801560208007422288756472252666900440258106418743814883343093000169613943653273026918248894810264652865499276947181142462338687696581469986347592870698931983806369985923875117549428012484748574573479778952133911829258770755104373111524494462605794946420678026534225108994489328666742532287917506189921524241454912336578811558511548639856751142569653677232556635051520338621962847027506881427880035953693289226815922220491798835820344588835402143908802549980383540460724835915887813673423471544184579570354781436201411182791761359594923612480820071341195223289017798117527659545020116167066237411599569819292225564423289441889083508198105742039344841497314933341504005934667364884016780020867645187586803264673305961518909777680135924690012781486396855845090822352171158445186962563241521757959390712073946853013695696028870598087088548801549583323127918184857905129000823225529130001509641707027311286355274917943989876252973392309648818056825053031128012942645043926613111719156439286345636582485556333135108991901760962094926884131841349531712015171852940714541966925228075258504107055542915385503396269333488626832735144951821077641320106209503985463220152406738084365219013668930486487670024533271346596068493013678774549034423111027679926989138045000858705615976451159836199475969484935742744732188512866479917913007612270175110661387380510921857536077452181881310392789912406562127074116912911729158358248955221741286671162410643906036917452167747842201883985400523333434461194015293039794448899294201150828790522659234629197513133425840018287803621706523846063690500519507415769756479168741408136347025329169987146911666941317119926982692947399423448045246070996304034845013415076853841146424669345359137366251206631076474988591514228558893618491918521650911482144087760172956458339909024231292188061724406139262706832739675776465425471917648094496956074576814093154996458042477894224638842762048615958582388853562478425235780545740935770790940676876782565449430840855912632521477369623997151711599860106341480241150859188863935291737125570490343813024844484042801211409957598654591027640774333266783385726808436054183778618755007948881691914982703345353677945280601103623056568857615868085230118224114380663549622802055442757400846782334164470543787817166485135559134676775418241526258469782733688813250544902985275765930705899145875034892607290580864603629778255163747638225655741690782410999269457348616017857147111814807204358332770869250042555722419054903073872170618968031414353140794093372794236223685249157625058374136581112319536285256645189185112611395136511509219997698295321724246142715301982318959042000346720628779465610748523635756497764795943992547993182649089195925889694617999225580909731747969531909879198522984758175919452244643508417511230413924791293039961497807407142456487569192587737355215322497961685397370228352229116238079391411419635043754957075685609544153819722186716331533112206020413183037519036676588212578605965136818492332043692890576781739012103117991123658776123734357499914612357261538624831497131618347350023335552473624144786149414094995269369884040845664681053564634402587185365136765569127197008617061113069829063127849615251186349053997702261792223703516295736579948388203826260067101825283521787660826580440040382711149665840329239663418904831481779031195154734085173524908052469218740527714018963956415254612079050865078698158250654428598345276650594602031136053811344920783740897440611738274916797372655841697653921567088708080636854205611799126526161888304133011552031828698455500818459657836095259879974423934909678023610091288089366230207219609412049611837989909607336959343962731865665251558279373908436928187842955944890278576534538452278710807408797089368866756103442304697713576266814618341931559577292694871218271647776244311289024641841125276980004953415474154775346924554246622307614512907530105719251999530226698874554676923361424692775542895378478999413035387489516597025484452500315840741891038454246393014083913271596106513278359985694318360149041395468984387677854540804787893905166949882817489215682937939573784141189453007736936049929850105161391092770160166147911423493653216904639938592287223857926337811961458769920872318250243016010296193835113165808993202756636507453816821227954665321092215287881688491813864881009814708836920305541649652897949308810807804878011031560169042091798037009965693866517586554095603165421289707828624195088556513712123211011637723274455191451582898168170312881292723033338737456191441897823216337571796018080474950231961553765512817534361134102242029315241674239303458756212640701309074304489792905432591119858508406729052925756466088189324930818836679643177551010309772674549356856054659922495916603784618603261439732791389637280153734104789206361460583496182364806140769236417145937275717544435285588085191577241861021951701515502464482699454884462288176664490338550453147820052659737251975944884649052189516154533289271961487523033883177184812251370019386235083589449754732308170103742037063446407026655978320628358805977479986774575389795879384263148873194885093465936817295045856792473187356058599735622822742079997841734643863408498235009437178166872104144431137346720718786303884333744818326137380665643052078957325954209051580075521906027435541896351965501265019295542676917309763551939050110286968482818199245004248089465159010417848163635875368802792557136150647834228333472595007689124633494937384662345878944726739025829825901200878028290916913235261626564039184675224188464550142454090053583302502391278142134989071063066659422761344714709805984151090736966410254985795640169777104290331993540380858545046730224066576438182705279201700007609467694182894254007261548255202536796598009954922598272823788860419889849343399665506246615760565868756400369062385709040320474250726002513114617374478191931145711379859394733845143411315354519066537351976723862779511062404493331256820910747471169759044555316665690519990895098671218657687166354077821355013522226292060496769963200201977245989520558387646935759817789845926858085515430443430313184848974209987406614824711365263908301516051121655765947458556818148531494839806134172620414106054229731020827434776149606914446456405834889271566139782015361356132640072201719445538254536084342941217257848307671003162562976110686236461368711086244560489519156014759036383786311212560918734564951127095428780706813800425560503978586848729799000685023597348808077328376798986128688508502764558527664569235526730634116398502194754056250916081886985135799531962500571823317067984769735387757734805361345372753265803271081063535841659852753371423909758809843225725971133706623578800715166151928770827934818072357382183910637068664298557418833852607075712798685428879204246862631969419317681763865785008058932698637279122349780534157919935436962876781151734347593267082426129709106932295038546658201384081552595216135590575629153192487129961448724205455907766542617461459573509441979821306969721852860899014725279929077287883599477670040478487842815451542790034729475810521339499133625997665340264652910914430920767464722855259125290708458250968799915667525467393225611448672927782957025642308631746935107569712813725331582400881646770963760545614802208069964307983103798828530778012430615220617697253206914081291882348376412573071245563077812192132144184073516120910514801840328956031924816666509268878423212418765498514565685055875368588492389746978786712305530583722832641190187614776049966727306547621657179190624516228647743968030029681796317614901943634887264185046963719569829808604882624963392403921026941320871369624081128282327601476781938110731713661170281821931576885627073637266207878795501091857966759512753571602674241638158677061789162268232633508012432244407882497931675255671789338742748828812358852627014736679237287926523971097414743818756340639690882575950439800239054229923819709514906560148215945589669578566392015890302145700505154062787288350923350825660823272358071948478717426727168449497508832308411988800571823324721646273364454851714570913679421657560206644254561337648233177102185684435341822940795407899341592357717803840478052296420360822469391550159517508004919720608452866565045232813173878715379516460674545654614299164737122669192345145003933493765451978960466354762231715235160878191365191155926984831692280661430628230511566616199301555511144924819425387255126584953697403870094367208940033369490207325698647607532028520325132925434278502673292108313017681626809809093579052813941031738759863592565259521665142492362042769375732798670163374975823316007272973333737119009776803404952150169255498220830694797154533923697242183339564407126095717951984907184995623906740060549339132799252482049394067689290872371779690789984596978196041246527845694467003675666134399373607774743987536158504739796749031733056963356387116338193859258426850027059358944901264892814249288780876234127438405681971106205895472418050952561821458630179734502074137446878537880065325578187588247856822754207668551251495771721997872282365979004767079033951815708570493427977754691157477348923580982502404830069273744073115804771686767894282487525276349064585620807305395064744318932200587507479800949151092659486851197363519594125707402687345288705378233021944767632511162795588059563522728737558399752261693644172472649407968198983090787577084916481121516413460661679341622921818036450111524947259695287232924752422500407254124647688382587109489217356442959893498822584273968728463076907498853791273010971282591811692306074297176232678657535419184965132534374234506341185297699039632019654427346958160650078611361122108910703240403994526318737302639867469415907333804408163907910761614969918448599766226949352648064493796427233983999314031573391338186919537382356065713745904752353466343652684220372082456460329504829530328800465932837977015580195922596222484942430439718154588244787115029007056091238473799090166904916568026616432308698912803934935943412271440442370714375130609257277043494140918060898459539004478151245064460479886085471706647028676874218629519807386723159207533159606503139960198976057050376822295776277973862145506441657858402512409274166860189249549355081479239036882570228820486939910863325320573421729707734230978001224929415781323395405072915346460375575902834646788660073715456642683660542807206829518971226804704350626959549170049748507549544647557954940412532690966372654106120884659007139908530654462138520509923379002939992925335135926269761345497860105180588477169979145833934469807282138558453639158994951190546490781414114394052537177876600279369429273791127429764355686282090639247135320168316974342666638298526544009334141375455303312497388062856550193328759728294254614934975701060959209566233535712064372015962457197312430893994174084708172758497403045878528448962211863014920415800816103756504155341051720264407477917036701133481298203236765933464503557703574872182018652514626605758749747957119077868891628494225745632615662219461188656722865185282803744501308236545504523684801053735128609714291046157566877951153085822072048784277976963275574629256797922270518871370557124491727485240750412003958629268144583183783579600365313245792863583894129842997466930330747829371967783058460493486842624202835980979237010406285529590165877127863675221964219085096644365984081080650835931009416628591856411090189894233600400925463001337699439012248872813678144307397945038860609775377883094414807584599694021802752178354955444025688058422434348868717076648283250780058870859951935525095711523312904012421253567955669995909949136319282068637206035278535117676963245788058910999062743454291211377720177890136425961363560005932900851057721300264166063017877615714072879064618431692975511701672191148402058512658991111051367298618791888460971453834863991462895198702866673899969434325387991279424445916326624516369692918117801491515530436660017535829935745571751224501325690762052640309284477004393208547469615074564262534304939207409262935795212884940529201172493429112385474925740686435998541434543736232895845930915667888905056943049428104921198665213211073805886897029070261276466523402182579736695387802610933009380658180035875124190662224353084631249761903825240327318486114224640243310637833592296626695704294230840497915054443462183763598390565164179787825588729668310679161380201841038796419963516546763924167193433030711174491078405941921358990675067090689523714944271689200449102936200009632294342095915726665495956705120158754138445905082335595769601595165952788011032273364042913346243948889427048742361026905628549241719803492046704346093139958232534647446528838043350597090863213589072666281174839775308802009950165426012569791655219361002581549770821826542350616940072014848860445745944445498655833044509854245045863294837822341231244151908415276239027141283950726691882276714567332845214307027836113382505102391042641645032172429506960549624773804557869373681691235587810357150814904523774888963976190616228104075908765032006275916509163576284881384174724405695867567330012096715419080949877536566635875720405056757880618348289280686400265099958375691075520541122454484624930496348066318657910566752140224290269799653790345715135655567095122544803851478659417767349743821324058706206539152456255342354003177910284564036135791921521678568886329335624490615230864688242490490704139706094339095521498380882519117701994251277926115313251332280882483240381856099325887283174946431705263882821478337495969366366633680042072176300792858341955271409038082854831106405224502775548105752050863205872117613700702449557542538297550072375735562402760539405669490129733865057467147137348316864827046186190640127719631734887397327431328418501181780906565127833778979786386322596712673136062961236332172152916734985358379703805534617951601569659421557008897931258857627624225030770073727241483431068962474257463994257656676278768871043175755631877668544177586007055593576822457736994683988460611645061770977583667788351594989676422915122104515231570167997867928173246636329767497590047981648807689312769073113180064732967621988841448842676518521122345589339732776866703693797374631106961268335586386206621516074567846360900726193077996405411857307089270464576980025977477530548603829923767704576745741969288258663808695027441346551028761977076222765956133695366004254221173659163385490198410318503014179874679116155742789541460508120162166026479024557186025721550856678960180905071161883475994600192521595443529804035068420088843417453688091490764863237775765149148972624578052089121980670258622969899376019797332694862305930754122483378662504107835116466153815820040882911979130356474451061653224183362259631940511745445988723979808787515783936664555488252594388901845329699026078808027127640964396102922368704922253290077052175468861924411276424155594830727335589659389455186254858422167659761832645618633201142520942687841076224168778884129172161323300341061179862552493363950640613594609360098782052877254832034104597588370285363670363646375672793801642658548486135695852878196590172916341010848523238275275920640746243916013032259619109845476739624519269251862917027851762749312622185247664578732978724315673153330938909634780828791508581697701547265048903400398678715853010624935564975460861214634407822640217497404837855426158499490976329910690700874545853868764389013916124183556820178940020011628106170017717718140612388442968614543463153074727055405233187332302579614033167810672951492719993628924292026368727692814382266017092172079100904119496270470270896547299037935740285804879151592902296188031220777182268400568077531653591168313892104080054254499317076227734822144545435378679340194253672031602560804723234689784468126651301533591552808226822334991904216952925923707463120150767924084602385772118561408220476492833423176508282097506904458450126067277066937652428424042640453108830684174788094246385173889189157602112628883484475196074547893143443674590450275135693858964064286626358206634647249194616765030672690631169023865670183756213927700949305840454955278569789593044156490315466704942017695174185022975035916611222983567269391944533976711171902047461753798939779049318558076341846022852671430364053022140845767343055549521682686855550554522226466172893419103864657010855684866434681729287269164456190195022430210909007271930770561108077346776016629302037567256172535319809242623079814175320441378233370452341589249476643767455803655659191460127091447993918143212426422652601548840162284911596329557093815058134032396588891900739911692022769278928009554803841195400363168368253256859861276065616131713000739783220820240039433085879495889764140190347306005976172604537619292497218809673109443129018273709774811837383325106971069889619124056558120752747533911697544115068235544326250114984506130640033655254325275898518353159073992494349503086071491052319180084492944091817895068190830301696957070092795829998518817417530858538751621922093752210084367563677426398570170148444875971347174179917947675807293256765784215899455050782008811968949672733100831682183601767568639325311210897459921271366061371993983367601424557734852055871174206788911398035457471708328633176784628851683364984253854629526986010399123683892256315267520271921772616170189511742375635840581853519910970767211107751327609977973437983861849778823027289003852142859419179992965277901601157161913634304487974610835310357500434517948649507853922009623352393913252970126488814998001797664047724725482988094819021671198532209269872166205844579195523245637422231490117142342809070178306126134050227736594913558785633056601368661460046502304824796105459952694770331815230212142452933829828060644485352931213569921231505156230917836716191794350360813376604739565799733631129351050602792073461213269541613073863405148692839494773099073476735279749170684577395347433117534011076181271113711138833820773248947200537536307544196287725408846796724926667434723762766496165921095182611563365769576996602001507892862636618948855007006217617437942896935653126269989622475730742874774553448573437343680852845314504018001973990837192599704680326982049650384702199458210193069953939690151679401143731384802950478877310726111814170639058032103620288432920913907323013061020632137674587945289409358794536273250700487870798521421405258806070543281091587401064046748137406924879757551773505402846018212119664218145207044436208714637300117839977968356701040769708180380888673244002748970997101417096584799845524382165071093571878788572126680695260830212487120711392441414134858472309979568749085281734222940250357159303871580449956740572813867096742126342732535611696102933623894885543148722601624194362204919084073836616421842339378050724857909699532191263848310085447973516557491216939803742514717353094236860300856381556521583274085537872932280574661617808248731149188284699916315684705984132135177930437896263087822651771821649798886693827654390155900225253085705585827678114038455213630699004664753048524995699939007350903723987816585113480049496869338992872920613987954309434208502460863571874623869464436402897459167597432055864544147550635886403197162896924547058885708258581695913052598906177918458809128804031662108732298274686476861200916442906432993585133412443085537281991927697259573532702514916571631764458251013014551766339275169854787733542191511368190675966944842865549235147814964531419506591346901904067714127359445075323859610101200658461976553095118636432913242442542970841038230349450109881226547866192762837902568817468694916586676130226021263218634494177068937522521812563731456987865230451329813225020848759821333653290527418998017647149530443597149676461360754426192392406044126877622824802156944404412991931986577001988981731170177301091075632812497816510114842581936388494895910952637110490359859605451034580335885915146880675243324640813437564715099078285453876422864430245826278432553796470009255135499504303345385661375187215784367746750452086274837375661914500521051754832114674448605202019096551609529701510382348791069955952375532664548306520006753834620490563444034115259470077403888121312774936557795135002396382378567690432682871730827363901210058851095592700870032311427310025634448513335222192371378400720667884794473959097087929665185329856717881507111679834868700389075474354334208791162444691786096568652117386057204099801549619609291422008441733418325964987718448481909063523733816062507644391645873854331489534329797347896900089577664264872231987702272938507162567098902977385132726669568586582042555185120865371314116447104712320193749199773545817694290948812593766391256098156749440472552487272969665035598656007545021694033259172023418078707225599230481050750932951646018939479398257227683736734837474004148768010745553244466227681988455136578550120160153288468936137897406569846259278303380475360408765637467615098952712652081765772652601171845112031499981693690581499884869450797988777778843601034530688677950484428300640309749785263195775110719636841473984768288550475640370769690517355550038854526972830270571599525175409549657013448601601488161171700798846902532418151488420176206712190152641073102371765830048485778348748997730375880726189192244714304976253403789138406307680167068137065783563898241088759059980150951930685706238843070071131186334441505840793797808275036766874998870561383770649846692188843109903974364654274699721549355011714550357488070204611085037651799794998438231309228395130636329201591985840997962949010588874841958915424499017136425613785322260766959127157207307092322361263964052609889351983793096299126272113802235063535485633938423773486232700450170491597285600588871281935962819502726734599210615243605890603548228068504103716687691553091974327566058484149812979074741737073787997852160029660676307246704527638340394128918990424107360489261306375748161319964518899872010303169461851633714578393760104250110115182950660442366691318153921418214160120305163061386597814464389227653923352210458957423315545487069253205802293825143687815007492235562165379947822649755614216449372786424733987178757286572547162776759213577975773706335458062554051743489247395569833704122715124721410643745584731021878665459374808080688938802077663379552650556914846291834796560473794354545446496547692996667516686994913078027295373500729788778770009745807324602533023016430141182370352209600420642915006235725255113445714906101582299680700515543157702129895017201595543795518760392883605741463240715588118856147967023714970730788671834155778546636295498512302044644026257304876462271018296158720121665476294963785589779916644370270210308603753886598847571763173618166402525770913887357990110465481376577193605065772353977026504484848449644896373486010934791931881926906723081214454375622720240272815492047951882074046411910796365749563606689815840571845050491106655733657749443821288973756033769652249126337804887693549500399889019091964862740650922311263831153167981107994547395000868846437031744290200010096740293228865065212638946072589739875911278111911311368887228276424719325892736196905041173437746676253582269083726177847448200727302891749076424180651421901958176286210830915439072857809253792562810930231973523739105702962078792964925226994015939627909801964040166563633476849477064105218849324830915761043970130250785058757546219333025916236023707448372758110551275084778894293294548863541966171917535144964759352566225116219039018065213868854523283465193158327313026743519534864470119436764227836053922822107348062889351380035593529145566225272187975426373454033901244757506150094402031700893393321523011642443960040022950698372666216172737898282440801968587323500451598314999125686840051756372432850545242064351536119158599522198418715996441873343153276352769038764408986664028709473402239319480664043006137819537846999083116843919690863153250742561681097294276109525401539406606481862588598218882596634654026294724815834561160797553815662525680642152465140457093004042590795991056620155358616395698896831418612278390733644039075442217429530249470595069264460469348269662005597846759931535437629061738108068587651350521568882500483938375895733383625404014502137638113472195226673564446840066336047308664629905471626184972996201312740068910999743177964182398960780703399062223373305160133314324971889013805102863978460305108250074017389259277284887480051739395032608013768673802004018679945536826733652717870018200502001987745262557189782839895223515179369674203831607903449297077915574627924058449476132279259066026783429126615517106351333081766134312951546072772423897428262872358214657217737540035473924363002375558310187055661673211250179113327151916052367762230979471315427249904034316936100721559361424740007463602321168671505326527706070232705362807711893476033106216955579546303353741158227895767815850376684156254253482843510394522955406971130881030622502931338997523390850608266485291639851221643772566929572250374227306154968716243377274686123851729744614330831720056679403261169173960740480941774018552312392521684932458664006127737175147430209306790288320931786487518395756324787869057731380604167658806384831994576523941877445286572011752894526775889398462923423680368243458079732484524041260261285472490305187136485761067500018299121929589984515281425981996137666294646603605581784052151089688935770853924357522383610253626240330316688002428606902270649043487799852925174161727380286867298417670824572665224342689961136570846354779518811854383322745073613332704381580233118546269891760186036386073478954001862742225541935777563078621553847561701123646609029387488145980623057611301803263900004125150695539563449857171569474236408371977168320041638172889224775266172843027652957748101977800329983872469956761308850053578246285985057781892519639489817529027333040975820128251672692152104448249941651168823357480707707679530347853710313720844502336129556582532225690381369987318169208448422997631913674430248290872039626610981238368255512406997374225940416969992010273325038255263108784097355141356157276281378399005115360120299777999248440931677449376266237453413424517041829001391867701351858102362696692546020086242487587402291508894022630003694690745105470913514716901292572034329824534467254399882191505543464077677291278712429358641400964909696245880676836029524576755221918036596708664223409801471155389119817642286825758744234890357949864256691123653659024421952686629751297445463142056477794333477752417197430837372036288833107867937277777092624549501351792388910897997420924237423917243194943810746886341129003905586807810769845698535098951944916043107742414617196297450142198059855774601341189409954344785929508287814196612272655238992786225632773804350323424819480433233873102546073741318435967476546507086493247319912156300209773860483912744186155011238185492991930998156970179354782912115685006109537615056727973358826855317648080914431759910347399810449195829515366860998218406524359598660270938017767448534717510907493942236900041158497191523805982440717225377038786951562770135875142533785999408343822256913858514653189564641466545735228944506630706251482889927906694717631427706547275265313677287994643065701503305264725306286152289721298790781858758445492137119682984957603693788015242551845289532957869776327043524679314558965240977093877267496876400949034454776419993503396476984524786415626644832404656699097486749314000663992432253425851672291766250238560573782773572931501936931730537468466733366515427577031263540051561024199317047941772642884493407325539848972631440983807934607321856126502616200868684685429804882486414273459720563701243326233723569180216330390988933698699107840089597198322025411785338523763383084069060446326999792382719865999731016855155612744377339371892555131533560262168760494488361884500894242335147471908373577310686373583932114280841813804260356089019266848693033428333694590366879002553973294489972932982129219876034432784142394092936339081310284800716940336407852433962716378593400121628050562185333845647003395618209613712147751544557876917808883441223485064065627084927595679338141342070819560269148631802576794191309275024552374200373880596805533123641712450311396748761876365834675424967649472289006202237158243898483565980933144052682812697267993676376513271727153497741838932127712052489815721228444837529052331494092556178029631278944080311598503078988739582789885160228945419046222083776635987596965373700224321394886369872704397191142045357202137416264171499764165488098565807274544052420708556170341687579813332035167074332050665321211451801611408779667553578906757950770675908683900800511724048117578717805322789610105997607880550445510277867590780127695406382373125318536322664646178949105803949233639493139618221638358000270439965936211258506461500447284284557830618298953549470459333744884354786805384833313549023323819616327994855591332987831961609144443257418450780504591920075866778975393125896796450549054431809872505227241411309494520022530861213843138692150206296587670202925934325562155611968896090352487890623348537259255698748900177781978271943018782640767365907328364823331503286485664382476458481775874514150292761035405873934488408277213522974971351474605551929023674251800716422553979338771348579200593382534710964126264917995749571327383666755188343497005583308825036400954314908879180974720509329789996554436275440267889756988379631027362268764885011300636915607028676059158494840751260579954688222429516377880035829723242899850017632141773001186234845063737468422878065843402499842935283623327611905154173463342212480106367221308203699738388927984521174609958794534784327456723074118038052452539803436110835060298710540904484136806997749028429100055085422399358312287678559191733133414718141903448991430552430382355924840035523957969947342455391712946251003597325338247456838822352779500405204520932608326699515809899799035085108713417654883908172058105075792963024895392691860657104121940444292728557386117269526301759130075948721814357125529203880645926498626950202346975920775266691373288234093645597545055161434909083949893069180034976971039585462157140936962073964651091376457954505531028642220472568026964781254049357016093463661860305718062128112159559474642067453402906378438266961066640175981906940745572367914504690133676368251138218032661668834292310319357683766731141343928823183273885991528950261370170526446761137605900125906137734937604432753339262561958404338567155812663739082969266198733739129234466938236752745474218218547542413708238990925296111986117396734980315637564258052294716157662721078696082683897024516635462552258094181002710074839638186072494957939566236564429653251821563464443113243313573547007821508972000047287036027297730756049040429680243720464287590725128263823105804840347304448833138474571359358897667765042149606449900740046893445530947984118803737035188991771973475515555357285071298301513891830395522463149633563314504394752133904940515408470202782057457326955232727407059089948364362250495575247612979387200614995206142152025794641526914875075132367986644561280279707666301139546845650262867650522646118530176079009887116426762074035931832906297755254305326425617529924995595271051564035330043474922136649770645924606833280486676776156705323173386898156916336014872383786322789695290000028749282088358856315700789133381253877909042508201255779258034896385572422679379692472635038490296323226223246008163737049122660199876388745938205889953393809254453282601352472849254524247118091663883192852586451000081824076423045105509956380149995012884418092097757451561993484611438680550712531741971319850806836071730541280203543073785521981113259088842040932551158097506431737789321445502951825338282475731320419781705550340611206598703660046548825390270686879075192158038582013821573066901493275001512497598961213665663625399610065478223979802891586236070603980539162391454397182032901568683937710347931987976241267350022091663320308705873928414091682077060823146292174856778650547727687694815008576101806296163686989971087743109277523208058563226383864294438784003276722581132347230092453525326881749934438175044073125610265780480254652787735194342394757390686485777928279611867596892324253887673821106741734617700139115688353808050808753719738694999840491677431277863615735106389097278670489182706652668181549614377841749215412978129010314320883837640323550367820892945495306382978573985367688409972703168929584005951070828135142560440682471253363897379466943611314433085932782586739684174649858378756955795396639399321683607022444995073621104980336627190905529835470405914191517481081065775517945975059828721950701017480845158117955133740313300280958094336173716266767570028747107826737141924561458480032506976226440784590467053593367981616023439448754745325159440449703651706641133827120835184729434249261836859132503529376612687722505381042456949568616922489961511716165073771587067162846621193564784368235291557399812170511352185828414396554780988517119981403401248503858530862773899597687763085707362841823469174908274551934933798105508962104371710222823043357003419156160385276670543357688454014526841527371128536614669920852911349727905334379207582796542735748318799726176410619586220030005907181495714760856311840379084936645984116013132444257240763219961489574599380455369869655602558539648558670251150884804283578810282218199431300651681743071284546233208412497140698302161095120123752898492000798580057491536886368609708936131978398332986515279039208356171020846926188963365848726331005527599114828149906942832526715284262031948352989959608007000339750367230521587839982279140682355452668508249647183079437506014848496495442602833250527396658779352761183898081249451661023044912512036618905326314611053748607418778344155893835828243344254842711194210439424610796170817963617842998019561859471505732755118931238925460489040636880032233123408294063394867463414754528484700939414881634746985374318995821593577975706632944596644150581532571566410501399198784697103549510108691316961514022972420486814938816525290830231465889874628022267272849631708147827477795987367721528128480138625342980634416580269011974695208143377219084872376584177848795241645825626274293628233901201148094055810452843027114671719960171369799461251253936246726593389979839239355434607565699573700539446680383205635164187915738923961258731342997533112492242058816882423997927115521142023282469585450887882735123794788548897118592968832311482153104025362652218193989484686605891548215122559541792518204091970255960566024488269791877372331137996788883831817584554521375742791435474313041634690752699080525021461730299929450093451206259143746515138404219532785390643478526829408833751952126666291548426218065220353225670364825778984877256441718339351344006722511830918463783579016084125537988075121550889745153337594867716801093870978292015302773989704251465850364902207997998421648475609855444121888396738667844924153692032883178516208853730744121619995473652545651642426894827398667797057965064298104894910848413024861515126961286127396783814087052792320315619474108082231413205869849244143320421086090769083907624152636553306452342454305997063714678387348699850231081670457322288320847987865288330468207888129991564541421942945668824514874991662783638388822075791498545039900889663893406553829604960304103625544237257404508606638301470900199265014448754584095689236089585555788298352863170449781569347196160750785741551952389638855416126148846975920679972842493741848814816621212510602906818094321776382508900352830122857151857383808583810281932173710885733591322900152389832749683918847147409486067695146683805530456988371083692380857625570459549451107115547360116770992433696901532952326011980079291529397299858494527273450511504407186774406031498232067120103707790305492168127732762283200535688449440417503333940171674017357452152189350358615532955391844113929553421264391318705306818995901867070608647852586920087521448739354330940874549069572228687835974729022105380117992109238017004346597495568499763717039056328919236528820430666075333753197858500353991407787455495865981473847893689142218359337238821912313354562399126541237829738400270226466110297317578760529640085287926900714240809344252033061044842275701847728746078223970748579051110691891254064134553655978169030998340668388202725588998669326939576500735926749720603710641901445167761298899532457251461943361898856900206487808285357554917933465368846946908176624407484183110501610245277989491376722052806567719923852879847096259967502407996392503856476303013999768769603745441499383166609250817272448548182703058368580625127412373634406771548911262269107840583907985124912554485181334032727310393362850354869168650767993832452303322065069300734005903685004838700313387470250184352146744157690793893599509408057876565430115717899183976766694927131063881179327805997702865392402881735896098489966228698254029948126128032005952107181054526885802563128166926054781297888238289214506889170172529281646011842667543900957753588175507399318774353931188607058929628121802981825929131452805665050634055367589428299222628925666756982885128633859838084713921369891218282141404632086921173534713061815017092612887876191100103718198601151939845260104183515834299920910994249263947309850568536263124079262003556619162640833744584717791619822912606499486337335636556683897169010570071273697627100314318899218766230184750300936069964904828735841199714281726788870508284782905170390034414280783743454147489975315105111159562644696833764538533583278997498872404882459551769609923158387300261655430925091809489737518427239180168361126499673973821685176158646090910649362386583523185045813647942435598278592339180457340676564191928380293068732871783602539903291706647799380430568130263993435872477954908687755384464035354409359879887300673391964541113565697364333415864866527536453269941099651106036624556814835730548528640536324261611384079553510315110879085459529389907781438307729115979543301363901644269468231339598660354118258795239365473075242034047598873674748513747760325746886717880247676006759524800644881961051355213143318005128275897684368122433003535452855007939351619393503168353251605579238308260933992330654338836438042372778960863265410714478001713388343441949110613368721960630291053844468703502346829429064579758766902699246017013298528987903894875862056363054884573508380668143638992460332193179213137252574883920858045378230858168187442107149992662288399795242626292143249618407329284485796890412706740815323385748444658376571641852801230924356726797746404211967559602181068410412730370620873131614115484603452505177673719280354958372772604751546824046162975381192242827222708697873470816114992872251187045991441395574414075262256851383557666917323303396022964322796602601237669492168027106437307917748480952310726326384849034863274936414739691850668496332287624309237712680973734884574223663733830125100701436576227228194923584744246364309104004231766179592018605699164525956058985417427695727903052466201753849701781463017071031591423840642194637760245591627415673846165724839325565053446002581682493398635932456870344845944538307505548345404184614452521151159415453155199961622292398258387316713328961500148761359511403802363461258869482242356180678677144484374839060877456188463365584380534874717491659554527476445060737856154040605408157507010982491962725158569322078942087273643698256272611177813874694531654767788401685982272184350052562929188398345152182429200699335730260771650116709816554293846699373394143260761674448559598400364105137819326612927327526314992623400173823576643885287074814019283932798297732875465218865684639654134332663125839687583290607886410175423979185997933412763625790822351785358715545086332037953612298219579771031195264410911383405539290170540286865234618874894570061103338341267426752371794654124210782923922393712747206656744846324228148679358596357111395710426354375985306751642792770352067830430456539779190266530620205584189983999174083088313765382714742632070262667852642660705281486800302681907607032507881934206409676087248321911294973255126026714825868831972026197529430563890100492271178290045562208020304567831664808740310090902651470805437334323987812724478539432503545792622419119855286876933651690812182728341759804458241621284301176299938775570249298405798660693768716665969812916297343784406548731303626427679951997598430847548133552983962359901663624531748673832192057352677854984439910337594834917691590149550072942450564245587509153111258645881803802116222546235191334138039641043107487670968319659385232661366132413596447163228189186016585949052972214147156516324242841773734710394660249313365430811786520644197932676107586256109718963406407620608529358937699156869929299880038469415003535738833703453799778826358858790223809339110671897677462127741878129108262389440760638742201624799250650690081784239275939451009384764549291763545811902710602660237271096088713732767452566842633120708633283719596613226017971712571869986686788288119305106145159988962349274423525496754675431501011434280576523858717945360651487935639560337763808029665175995847203066730898201302467250493809287558158640053318632573908670123287699222393273159028046506073942754372051816551745179974538539172330714917326854675897490595761607613166306966015376351595330647800905525896958627745947125741369631001656165774899908692937737095469582061931801850287469514606420849651585246958730790765010166010538170008063506463345736832646064709435686995842597908620571382590649148644435130741240051689592190001894459031361050190543608719060595170481021150614493740506605066129266456310534332049723405412250801376014764854630482113871283328280288327415752426908189497356216533831413465769760531082288127251104017660923549212356619342460507268697111571444123615144291296803373478623278378934129377421017631218125214561750253387513261070878996301318057964371766936617676082832228562482140698035291703600659934402591619991101006046034806441456805720045663918691565652614618982558112129909018889298521099647816141671515096473352747978919968260374180562120757298534971013767580926694452333826089715448874440547575305982095483807547465190082716779537623759663439838146386366974230593916746813110793355887430649934367344097544064591771793477724639699894438959045907916918822055769270239659891323315582226962335213124524982411380759841530339926784340011889963803637389232547930527150509492358311568056428358697072313801033712985373709180434811195156090436807582884176680554407138462506237005865787038677639607066938332681180552331216335541608328164999340461003404741911610017277664825320404335123023916068577109203754590497826141491733287273177145314669388453477834425100321850989587345296108695520414754778152317157648406783468580571230820621814710236249213795694137620471997693051664502050286436027873768923425402791159976078064818232352043657373412401056227960706917756360660070610867944515415426786788718633920905476412692419729498372912712572444444600213323110656670051419082295397886229077710512000133299341582811086122603778062969028735602332475729423042406984742749208904902245792136586877338854349316106334775523499580624452580528364154261706803871413881549051501277962467531205107285055795397930471648942552004583686872774889917185310491038808099640851652635265548346374125980233148223261770205900444305901119222691896304411063330172330160413042959546838847847041475443724869337747350733670571287406758960768703080044906204605765897734604737452278873900463926507842680959569638906389304673256915852279682582343460425985169206820728667325388834568174734361209816478001261893718135710493230459817026785797187941396974410473446363513209400550093034941519266030541416965629896962025910712481018601960876721854867130601966447588890392790609094908112663949041715596720441325405462430226911073663574876161819586717624423225367339432444169228158500116284719632531939349525356764595626527215224133174048114865286755772255043652945591225940089363136749812377462310415871974469274999744365175502309361129267078342540102974760293900531533745846460656619340385494927835791852704464034031386041321152426809577658116334779687028810871617814535740228405100305389378732123568835886003949052516063893847183312193593841662485566833116427163694905698057157023650790758106802238263330532252168095783224187883691194304343744752839348034529141216751714338184058528584335198368146187885871246320318219079121268408135330819276454839643090065292689044399502851096014475728710656527359001191451209825393307980616111937176185305789642011772256305431137907276169359858558254056104485717407029352689036621234348986291689800006141405610679354846932426998217302832419222516913569419547841565493260603626912446005661302377504741334522294326827352304787614436664343090924317724333376205326326703462437429157232635228500626883830628148177685314642128640819017942375324122225350899119188570992006937182739403091734897550167065784467595558059903290885284866145400366449255239553878604415015147036579034422458725930994998943135314301385398190785129306934921446786929934771469062948537535446340752825597627626260362063424624299639603688540575517872008030029205000759643264258273398467693970310786787789174950184829715036733377645419458497759335689499361547537980688065652056677909282368881140030692467354599491524295169854470383501235634538354976774791696087263278554072944977204520797390859037978031606163798165186954906474688711674830867015050860920392605335121372090265131056683389463768434196706311008720973895314378733670461715614458481931562141848471392531635492224335909771318292083783254632234881741764903001780909789199611446790708625953408892227909010532722710007797229915491031787844725149809719006680520070647461600294460125243475908327199762520288418899018084589407697369298828670607413375934864844026250859695014294467357024933936582097120974192561582652449311052174742338416010901947142686287670699263554179585651163275685590128683015287353513852259789504190462192398148310553545040431083034235537553533731113458248465613008988145073375126071009717098495429142392883529394914851321115983193889608053337092826868704209096612667819812490534902338083043965197112405669129083727965648791600714777746972977060485639483838912708381735482612804470910117343848837313464656626149158689124014911476034020462056824267548315456568337331622095390791866399931990263132668464895470440817171857235656098252505109498797328540128819664531192906182616925008821920906856174662484393828974890954462557474244554031084385487289904127647336055119774615010613867946153459176749139256552324401662576868873666010229623551683792015201830569817626107411258485710364378495119672170711596266908426175839687149683275043189837485254281622293686729536757538426265498518451117788582932449743284343035239247139122065681845364547089551146611934866634590762265035854647721272210470048813197975758546037884434190133423625138824017386033225689067039509572057412944101883712418544988620273026988161242457091063692254100704838290265988177787571814473345050238976287347882301298938954378530255966916108672793122234318874315943151955244672452378983073655089372810374441753624688088664731812057997951426544348853282892065445477240225698525761033084232172112984914401040939040903771126317713654437214140828070951941243983549674349143331035658823281202822130107806464386846326663285916467382120109458043792336072137047939091614064162133069943426949805440955081094709517036913317438942239792812012829371351359417860454801108293185133669080637217920615168587719700386336214265238044912882445137069990063054603242118760132713239881570828017947492688687633399039804992521911066178763671513891238838163949092667366411991943433840709863184899128603914669743313362206345873639443767581045945159545717525908586091063203989179609254221371003322954258100456343072218264111437019545779590467072061295732204599846317634704460054738180791891777647709199713839581038596221104513781834786013730672592166377020646206056009146190744208994702189286566637294213131133239768376528049018417009087160953593755455869674186740788827952335778159427816089752247469611343790969871676300701643477247874910720999741129160410675145291540911611211063036405590769679284249989344752851256525616156844202553167570439769274596648874307834603187307650423603144769387048505277597193982159503325111554628345855619361546160468800104595490944939962796793474924279915147060764477785813438969678531169530946935393855745468611445041385142185034385536344268194541742592345626626832079822372029623398601867623037662462568915406077092446403226758016549487195691764080017674738904307694372931743092602083532551917572912715578296135864399995785309989685199780102471615038983091412693121415658367118766761004653560581697172216420777514859111451657794844054551482726858940271858318644912771874679469050450100039723385350206468053728540898442504806382993906656902762957223233909987673147540851630785157258888867659833711600388413705821243172021235628300870299491287878817137962394386084801967187807499648594303460660285416776765185310133715342004698090088689038766572970308195092301761138600070756972640744231214345607251816924148077469419120149546979343864895411840060900139945999181476991918877425267790749998842533302319460876421012586913394279145454116626374894894773704384878721645988083781391843750757256210726362734692564615396617228941314331325627436040179373637561025811437300854107025040963829052817647944847360940454813536770787661094870300409420179383780286948692571254102300995304483537641681133164218379900034150355530437758103468319631571733005819650456381903773549231650856183444855961860811613676202501111003081823909811161826277691049816120749000688490557451113761458918203902923231740519499724256379075619776468315810311938675308845801411026133401200342889118078559694404791949328329941770223512925654323792740338490975291934906118568823365755229433088859021705995156748341088850351252706076067368723638418549052677522366882057912461112102675702452414142930559737393917652627161051494319782342846974544711499015839738595267171567059750045799681835225480579691457232085680375027781581828547321434366154709916693178862211826253717155966200209681321676531713590751805610642373937808977396252875948315646218964832160519145847446567229865519370267328613226446091801714385498344871536512781362478409531932213340605114130561383244097254655624270721106558443790074344154113603642770440680886003761841790687646426399125723941169024157685289059979728195662175963982399354095962795532817555889307130067511361305101955928390721414425422668601363102064208389851998384275866749484828156552269697432444402358889642824745355682503193699488213132656930346998725003215128499426899524721924306406065428900739056935924830217226446543197411255037204644362577571316770384158357497372960158280837941355100234502280839388335930913237364425201454455008870250050411703990556081760568478347218150659877726604593597660451473837884533117826556863891913670682159573320829126423789786745815276959601717469534650211417092036931683071128138135827699116684418848071587452970744774416840354248543353978892139523271656452316540178356508264353586123135907802946935992341535347737176029362457091153031132626855710203597675728443306207478856041105910378298419989198955887176080759559864250668851325895382640979070700682587006066274862836410773050443801100192355714713947237727535361233779941202054844616564865344333151016772834777232871195619542776188141735328724337321826339831235449874642826314049455979276195584851233892804938870540485118652205472626275244153237114569546033809203576326092038978480055046172708120580892124894523194662751119235449745260212589129146269120961381777552080768498991476225621059311605334184962912706319192484702858577264455491679173752943698519960493232291767911262824366219146540461293622393935830407594683987227726097937591634182206783334644764289439047395787048913896708354880172197964615646414304961333360835732243827034727218083479306907856624625726718370513878190490713985655935930213646588871417908471458039834808037997156829553673758805663966334857357554697014942749296457510835358990318105545969984369949341296248336122642437915807766495238679038905993616841456026735667196704815967913789979379876447192205929155963786345720623736799019211597134860898282336785436287632452679324542522355345578162854532067993756477902512177368408653972998125956683288229560381794940420735301172969792859497457618536409582801810485776222231643330142434995472496407928817526676272074036774324050060209600741855501218663424098015436280988993924175524304632133961960302093703232538469087053960371340731850759236108822814647869377768060562592843976274434076886036523951522443957327577419778034290523595287383362561497703588175404592070419155260992263389869967440236568672087508962607675072138576033891367057383830671116115717247287793350536955194655906325494870389612472934274470587236479740118063267641585564244706557760352040387538686228070569004267799437565352001913856002132210040859022006430634201550475174885049784306304030168033811342198111165136081914645754493921839903224606715286125690976968817042970802443504655131843474383157005823921926833890515948139480532089600731882240197474878262568683845066375513814949775337067956799318847181479556672780543866307540124621515177935973661479676208316928670897492019133638219605165492197595472765655232336849949224228762345597091429635364085105575749139513668238582219108708738633250607640080369545354882698124126016752331392698618794805853774524599434691363456379380020401742744885264435502445347430542490320195975794581558620441889516167981855349101044001243230974069967822513940787790073920673408415238958129190499597734904075821165140232139347274524784682458197485908922085751326514918953220095996352757456728208728643264384932250234591527335025020333621087839228260331147698360998650888697828345865474277693396335861251687774894037535332425743487548493946669337279581808812837318598810132240712549450288907476143466069304481541442168231549748288104013088461445561294285651904236346618831942615553846323948126017173291442327405276334114857213276903922529151340778204436761972970546672651228926416047125895495304336681431856713070150051612284685602035500170639031191813796231799088334941509959322786369523700113123496896575190740604719444442123668969663677388100709273946158876166901993412847777351210068679172446413572197739621192295102203831784553262658108716324501737597342296717515084401892518988769344731723386954580293529290756386454020002258604309237087888835690133877694569112853602645996282248812670170217027164337320208534292403186542829896776046640953665122996751453521710969895386232182033030232371518691468294387369765868589656447601565594824542528743286065563758488387772473571418893751746077776895160515994267102067826503631917905979605913070384696503117022527995937545158594518773054683816131786063911427652309455705742608111081678422213300668252303722380498476840318642625545433639651479452108100423510799735601431587576108984765572089617168726729238112150631350080397128984290648532976254632493915011610388639480831583458519834991662267859174672302291774259123422393579637582685893899779387937247647802140966174311966553436358329562076279091572808582543746031875031222449220468616202272665649823342703723919703431481984240059233623286259134097025637924174278729390652394340460778499788329630410393016084290144218366244891580686185322003576820176600699133739814091228330961797739606811557300395311451741394867200657891959992354812224640871148837636109243478157703382775751315253888745072686468077163449105390637686405827274844622114610794062076994095154958444668040572622229491935644402092032180439075871200431047533271875741965236898528686654409522471825894241436644942790584444291805811723305559819458692511172918745610653004222136035047251377863897341909436531038873771586652729580999922872100855026417007734708038986494628729102970048249337666978876066469084146896267615618854514056568569895201699552037218863820892981550425395078242606416003268151681063204291009487760554402359679381042689491952571430615426106136661710131443567365200163223590296655064309057248227646465694392174860194343134771907208873342694041263326643013985429882502588922694797649466965230591045971035286418219932757710893728660226845494679188199840599885164300186329720722378342863205539685084085698273317364561231417805309025833635453841064731627693731904878869190485514991232290972044929192404474424351414144874731297815285638909900001155923787260916682656392839670328138733324966430461008587353755719307143827293482867994011426733033576430022764953257509584236066445154369077542979649962539180863553079916419891333625893143083932199713526415139234004022651572712453336532634757597394423788733706984631694437026186095162562102330623744240241854369175998466446272999816788233490109050007856821573650719356657757114414731288017121033814890172146083368620748544302150053460971020009414774909287977763069242735323877113019418391107327630596166761430630474932786633903533099641430924409347474534246863124722635159146752591356688824668847404592465959989895022137449738606240978028922248780178439458118251246014454222807763261303208800002644125851800490377654370574014646634060246504622709875464709762351964134436439567887352531631921272882862407596443210956106588980464002153051821285294860579572292272494219987597378531985093991316981881371260792569279311206227451489497207953801670826839921767669947350740843346251017437158920803367306417336332963891344606005853808121580527782530575863749403649495985709435071815531832409345565601729880350862274743133089511037969195067180350202961754272960649776616802315718709649736688148784359548319826617508117263898483427162654469411142019483272630922384965585923233192183483061829340263478454143670730651852776993344129819451480988703415039049648679893245193071801181814631317403907637514794435518984181435956627293998448448543860179636675223860703608000496760384917816961936993928404884538369051586060376838573638126972831656636764282894106581112056761840655155060963867037173171206525043514139099929626206774505168494963124150116377198574599394610315318922047147437617320863805562079984946980504241580366104178965720054183978624105273518141170880214720839397390345374940889267885229590222746093892796770153063071110733068260725757278966541815972781329206137016160428443230120723072747882378356981252581882487222214544081619234368691721789664385346693459797402941155215276549512471591689268943987008698972798681224786949752812416859936050351966879915092805229678249380674930561631724613774364049967288759753472847914519713137795930428289683992486106937931972713285922547886497135971424378224229144855303223561045551385156810231701268900313626483285928573441540022266047033039166675422506371146948110198265973780356410689864512496341055210525155312290268952703589777356307488643787258134354139685249507983184908674672768999014779364460662413439000965976645748928190565232361303192187371718042402406182375734127003372205612839951498711057953526734261706517508979352486193391312721920318311441444320433215284168498923431268265490006428674061406217850774162053255838005748253468926997754611541902625995134011200248163744754708612098235081620585076441593317708858251857944926014873401680986285497538822301882336165591084686494870201011063544838774702380337930282918074658562639825550074024954644234625867613359102259419568765087566858586822931473953525563639451946883492181970905318612687933986425827745603740190869358103590120071512400999859187317506888177842135629924061331431187100396215207495233024626225696708519540207674980416929034547419912033373588654906360641876269171658866442352716956378029174827611631450547289182786427701561250173880033423787208258748268945916163580403981234754333270688119513671877868397758446642339147163665698664700832135171404751840481282410388756218680183716804643388410105810826665699048821272170232686601736459291933922934402655214697764747019302976513873711403555542938446262322378652915997230100095912343910694929991613411840742050885257428750845900141855458313559887353936469969205122933867478502387100241546089562249005010146588855818851392087089802010837393733221950713494902576302990152714222122654257665926613261363584202546173023504385727975634098743814412356558169697588363302815113634899461648006393888608494944994159977599629483957135419782070760003084266221209241071898436825380108575541808758315520156002470312502669958112130707925425122810290436327843610464260402158862631565979368324995980050509728703871629258836379179128912326683488090244441055296266388372486206500756808953757736288069503309288386927355882180370381640162431375844758339448760090152671413176971198294222552304029323012065330601065823945331731061992166415797299954576697282167219798137039588425799791827200449759841025098086589746354847719962837551740779163052799134730104160454294541577843422935556750994773481625106287220327249042386031433829171380766428249140738357118031682499803689768775712073178175824842223651741447447679838638617536110368405600260856253011924965132721378719928948378812089656494095379500364622990948265782414258125778047728100934736116172631763220575375760775788707731878570267590853237972615626031284646478553553615407413587166529610259570496397976763681961921645892790699488671955576152551877141109169969333458472790168571230738996849734446788646746321022406395977296393238820385617194934293359891781616309541304471354506012499326578387819490338502379094989628401913756992452806128680726620788291458106517173816747949238518194904650221195551942745424510297053532250132743953347544925975025793695945719685383874699112436088802745349795721934000614778039634359067997954447052932787702016148224502115809188164845612412396339799631250518593528081378462699249812694472466100825650328356318009594694825137588527088111375578207563105015748578737995808884153487925454822339277147378819205577136933631723100709297267530852365271438234575286042965454300560331910048314858216816268262800677859998296034999565206306904637900776176444194174827659562441263784509458688879188056790159375258129037395822015820598111652105490755296214287976900763426012422841803707373861452103836150906797578836951777354105578693225439987863791685986084626819707250595687112449243287895539013837034058175840142923557256135701201814346736815770638690586742400762816569307966440370145825669489422802638312841259406641272435888042706551833265684108060815344462218969901335093375962172593297827803400561818495856464365008473165811314676632898661794752062705434879437645863161368797574207752909091521300481662199836449594595604913391327673561301996402718535346331363776450771661875562125538060197826247102675015374411674000402349933234640678986909966397854216816148757529897354705803063772355787882702846197460250703203739414557369291424645885242425704675845701367612389773794692624336882045752220325594792515522706698122635079693013974649480274922724142609678488106379552643085250043745420041006901719945334801785647352967114119244950186988162635713174188745999363969714994111116142675872047517739679000814771091424363209207076264757425068395923680606783886388662615050692668057985891780407295296554421794406019413890059642397599973995867513799738947667396191087832421664107674371183594561979588794780400763641570203318112045032391837591236090809077929218291992417409523527233707664090603742856732402690447041758120029107051515928326947456526254007458488233374970852844624082694930630759056744407976916395311658175931200732777749418726344925370447756485477665343531682135619239777555957907353466499488405647815002432783938686236339290141059185841207669757095254230498709390945812711819930622097561014551783952806079321642888786933729135308521623755112511190599578139489763587948855037335877700686493859004004189799612853883303976696745845982241925493441602943143270752860475105724526785508719625511809763715333385757304655623654291085442009827184456249747034291033430349044870999412421428788937875136737537671293303305284865376326214604142733421437596695986831180531704679568473870911288407524205906111339970998647898666442755828412296077440165046777605804530287468947076684488558501170233365515723880407361552988544118055352426433907877404251934791713693070732921194274427990121241986509677746032082326212176422334126584589032720648051656451951902284817348938118520714994483556565238804782453159851727836411003964164665885601630487075068057903235955822333580137569613105433462367112635971833506719948019275461713637562093035885135748012259085293092941089858313521423385796316279900708445717431198950545831906883724382444117275634797831484971277890546513644845905601603395471302808553504542985152830451711241846527995054185670162350358529560453495248758130087212515496238211174319451380286795187251130347686262102465067313298069795223506010747201664560099550469442107822512316955823087078944452929592328699827329251419966815129697485448824572820760295356458716708790226085109355430683629757093809364869166484070307611270543037010276815493712398797591145376184743004088491945042933458056696119216542538318441540303840982960395627713268034958374947420871007847825084976219419252528525246250646530677626233300142755601809314682868244518406669233064206640877634799066948568167820240149915558248970179687883214255030108636142374419200720369871270364800873220497476153122019735398703468053033101355180189321926131572390399259850056654917246149396800569030776660010375277638092368689188622363163767681194501716154194469100819043932437504307256741446024922567787072567087038460037032644282129752597666408368455888663946861087040097349833826019983564880844010716019492313282835453034494095651408485872937734862208026170010251356371702606941334189581092475080976574608229251032067081757072794200535087194448207222651161936004447594226234799202621222606826305932146142749503357148606786787420988648192686698047308724255779212033526626918123015002563708563481847770682112891179445421421205312382794961230692513581986727780936012650312122376572434971551442025708433014939721912694362063450339012219958276419973162516602102959805764320233842356326352362950358136534158555470249148226967877430109078689478837143765411249379550215056626207776635221944837848193721978796730769278091251256860661793219103615291671451349611987525398764860666830575140669143417254671519857542971547626969458354824676509967618321230728539594287008554668428453019898188629626893059721440528831826060942730880158018903366865583280830365140438817193818682855032856565366651960931195184120669324336823959779237615159296474951379368770193929763221370776232897133308045674353439258056766422546172271271567182628488197511985058327846031249748072755119937168167274454979404890061790797468344263677400082977967773711407061365907791427426037526325432797280622653899540406480829628516661672957468871467989498907128396359559234001215667133329662102115087479729972788136928450126566556484520438247372505393046658691493685143855308987167108893532741477575668108074281254926451293179912223999720529949555319691785265456872340301982627355096489143808611384843443656568518994840086275148265187203357483650540862152466249498284867601208371070879783810817605130829280515706915687642326459072448129803544712277209143405160101711691558426375714394044620879461339512728273204748749193089142310411190422410483789108245200246462565622502141452851411803137830732488157211591649018145182613628470042636604408986015939378343590878486753472993963023885838412927936504633827985182342613009710342615867445884070095502592947069130271795228557914582188270613821884664119871550972801745368809225983493029357817624711584761156556352568121552808443973434716974306309715986656586732791794571230360353653442233760374000908102716417778580213098892985823758139365784896352350259083984709107513469678652579384214286447358194702029885677054431287407092001042297087819656040469813512054128160333210460734868112286132131781296306544948672029180969005450041359097767346963064896653150513064351601604728797511642497757908249596469521260002906550597397508574389820457451441663591671660021949851356353877156703573427773767864393716073272715587558324492061220085551510084629131363527247593027545263792120768137371530275889034107811505920781645104704405828882334776546133362363049672754567734579333438740144654213908412395969036672738476135216168988373278520078679946169820587185922168831198081003876281084500979166342446790126567964789680357684823956611225459953549802611803285051159004593629992175620361489633854005463876094487357102540859400712166683481906117342320883078734834593467380965069578879401459339990049130666867053852694493604912741305660236453735833277466167114665125551262103405535516403171153368031957918394245064719077614091330055456828365895713448450738966215106992526861711691173873409162799802236391511268918432888094562442610691527753489243934323807166184278729842386006892735078378609326661856585896646280500517067407022452236427179071958612920155853943684812970121873322448979557985303982052115479429287640769059769791621237370516727692874940238934830551566204008519528738907901387390690966439844559254699959026715022799539878460618472891007917399105979241442103620983072413611893924079889667455764794689614935259719615523492991722296952667282263837191368360887406870794952416060202448396104574338093804820315337004761720824040674497701625005121970858075023620617533707662151012841769319880758007810788460563323328933854922141404780297651185384952063921236892724521119688889751152221582799001425234871878292527943387964592010431549836922818497922926850476927003681976824264035392549522822142969953884546074315686284598560921683037117500370815848241134958282787771902628016198064929073602519674092824054177253846708353170686226798144538584144913894848053110263218803479534890088700330222050762946796247007513942486740258522515416727643840812944442784399704522386382821879388856470566948454667351160291424175994483189358016688493596281830125390731133776671087583375672402847264466919989452435408682920619940347055657630148240150580917391280593436216460239081256365251218422245846395781768864192641376402241656692762284082582381023141995437103573484148201412444037909537150580277047926234650643951505021272626434187726570840022033231615482801648559559303593854937998027246512695179249037340994280092739825590895932433650279701079384640900680890201136953943528545660109977024502545864282341238642292069835752301661841589825968340956954548830844719501661865886500079024574745684753908629694810095953044291095377312187657317952900744115703558524667200566585118262073763968929477902599102292140594810438847493662037383351717077373349174647778026043875408188332473436808755315480421981520113794347677707424132401026943805283003694063829513877969410174665749423755618064664339768931797920701311845444771938645573265650946261716048112495073959854038599750250162421634039411685014276685134369886033423352815838742743198110712046368127523409311659235631014172492958862797311741173767457897000169323051133588265276640394076076555643009785878370070078825493173970854317298688350710077861286072017785392155899096516634611780790776505626450652830537449345598167976403588449804867202434884413133091163969237657976985978262768772959528666403572645132105384634643618349767997741971976283536083629371199207997781186094640189237143269012768547358306392085009108441194518064351026982624452404848319081253609201588624273953845343876867707815469895414812670091798207177904455764067225810560321155682378155277108177257818360972917465318773188629158116562829190522373219816920887264939340491344221670209035073521656823289370015802301739976606464731567674614749096127237159216756948338855822052979719122920462554223962011474493749720452553537657207763004232886808873811014427552696194810583467709578656334066039078011864742811714597514085128066263247668336833252662379733834827160618435086259109662017396668489349563114474769019594055983072639106198424387113591120104195842460056088343539367681820385247144207861640399674982580230254206091804170702873486521285590670634760200843718183675837426467181424402876415593786429092913913564737449736991669588919628814367597164609914303289848972394141924858300824106296059433922038100985038031246024786722393560279116340076643049508469530364138782138220639247051902134514251486587069690113692585490134822712743721532321832953584868988759318431145612039423442267214536775956024606485237773569314330980595419471022192615838039151455994475650668116516119136510992059783608381288759608516154967762583361918543758547782163280276034655608539684632819171850743267030962378279801984210170092398906036441048189407443228964021192433425103736704664852238563250462238796209628177558383299251674924666037903598580888911254310423659148628110117606693379594103874169363638630145904155568632850356972029262130919185543579892647478610108082461129320059265269520167769140257999338337490920470150122676903383281307127162855211460087388855497462398216997123402710608618519800637056049037599280918325224393681813708180716858242402473058177680970049886499842338157891337807413135910801526479737799362303777886495869000647047707707199547715047178527540671600122741346038874449826610553580991435989776098046858405689287177715254253168631518441438755135985159503517350072667215009776697969365423917415843576818157624099848987014091765149493141580454927260780177602863367360242272376741623648936966392694138262124711199731892818587049844467855646895835158684166917937336374622491661184807733837301190985090566620093996334595167943118120918715604524158510292556443359718485277207012749603912307083691819011813525808951787465317999781753062981241983973591037097506368448322851122293495142060851981320896924630895426228520378231382121504951637198537192899605945266218298789982611420167216027696366166442135519076218598887365262444289598822710858959672263338572822244534976076066394398467816166672545727592923393388789461520452103455858988830604651597028512688959837568161216745371624869658108470327289217543725038081013976694786499930631680499793219906015428197715836476384031245803992015473667240488516742815691729945504778085129621925156482017003848418966708592270039301853391667868204916503154291832157223381180021722410274666188551347327986681482344018367392196857620531742906955191844675622183041914719842891523817923898464533259671930130259484308297117418037164819587161347321320271115923537000450765337010629548954841472748692484089447667918723021994911450445705132135215774935140223532350536508876179892783060672362471152846946508467701170420606781898731424202740256801241013140489750294935816186132520897344700823074699125228859555138600190658356938607450178987696792488130002910990694175380042653106078970406548158274275193957218094086691670090205437297356571604180183933287399429545636795431906477836220549776366940841275815246062379219115664007484621654392257203443094573624233548911199939947209303609610017372800997522982415506660366837680205504263406809218229095472248533161462651005937590387318173190949283701821870271233965722411959900555556809157474083540944680103673840552306379287785090097439767792217492220996765693432932669082672579508578845350223272489707200820251142005815051817764355898800758500152276389230071663956026495340117895517105186440168447861121633376527093531658043103470100927831865149111736028495333769213748994472536999219821920214814351530629661184282753277226453038120566807337628012704438201718378393273343545863613162800571721580350561975348736940127534541371024873442817663357681903714512797380048857714633204124135839017616268531015367070330320353228650152596140913886087181302503086992421472244417041451949435013142524574529596600103970205711859512648779416837342683070339754485905751997281309937524523196866000614352048356029679216222755881444845611523033398397318560380877054576116982212231175016638498879145243049105474463360608631160379618456622020101095857125671727661172659924630038129571278921502999742255377805555341174432501881096211664265302399423890768508713066826132398517067371004769244531826938235477871311700097437535549407600311264611551214050636746972263421562622027285298366977150633203691440864549747204906400814524362556813788253835152968530224382035752964030700816152829311233789748831434278318211070817099253388396857697897762231472518988466077837255700120537240296015254571391084166488553166537448449218026486984602827956931695189929414520366758161310073624996686034316965482913603261663652857225504434654061113962346063780441313317065517992641013020263250231119478065862203743502344037516072049421609434492322634983724011101294234995656382778611511663847790483706185851287905152866799713901715677660456783506662318067257678228512779031387032236158557820530757300486378637607511668479816220684506207475200721064106386245749032622384927287613900049825410563317972549401221690535838590001686472309985823287872353016989940458132779091830599342937246585307930191585370507064851460267062228528271107414598083002508363132901951621469184048472073564464484208686084645183610863126265529987575944212201663394714758708409617387205207518529522983226195080309727571815353902711073249820438971649561690697962768853173968151421536328309022195970873778818597896614152049553398808739613147281110656339998171792223533621149201557551685766104471860566296398410575888160196491882612013975891568049760288238556937505493477042778751419877666392977411034646246921773873271860637725231594887639062456777234662031261931683692928676349549861620733808886670130951322408669942254442751571808129115115969943219061465424260753032703805181616930513371961322089253619920895284121918047079316093108921904549940859350702594079464641904894262147588766892283127858584892716006827217615363523211044304718845455299434174901704181824675367192065182573869762329632084054918330224460541335216163641883388805519527346473785362966504717275070174467337780227587819629625085812335268334889470703756041099127649422300605160459734078302002069878150494808531581842783608941209578086704117113861382353136888369596141121528110707289529938360415031621238218281452413241315834157457092637297209780033139509142734128346494117529604028252313207716357537192599454302379768694108249147708688098613204806160596405190518212011689209044673140687789043394095930173187814643829954600899625627372296015125185118366390820589178561398149002752856705896087474281635052177832576878158748314843365015376270525621775958041418356404426474484623255718213256264375687423118852837720008629928791789492963151150260603787727369063115559094438312778924534670829825600103120298297576655911617660257312805214167269067927819056423823252799103182254595277319935229592500284439995871717742567128163232911788239187617059602314680738351502866616199751644358750023550928327058150104456410672032460579725239651248714520806667775031518243106109119628865821594610270089934444048504885840086811408537556972355046365656989120662694719893650177833450890773408980382588224792665250257421468219697022804068627771552828694427890110515910415963491359307931348112965360475944252881355608871858810048552210531444189919021488010954282289183560712706257553781383053913460581056118190306795772104888011831603689786978248815630957498754953248649843173200945351218570522047501512718113714323672917764073377494387657202753209037657821198310197643476578044966456768891455041353038921433173285216786757671784920354810419564912373374517806169798590916170387840334394477298445723256093314051515045892503953626452561744028038246408991802697560765669029692933264018134125297367997336088254062809415590257439363868066944719626033646395201827275139810108372074649515592800578609995741386457358549431817368239438352298626247611041198086109612497917740163604482092908718691182914817633126308216221793000493902416959944285596175394736585554688094832145034351353383340829347692492079073998623875544908531315490694816301883021251357189681822274330902267821458187277143159121413022311181075930350679866901424628934893478437885440797796069767038398089631319075143966597516442540955055028130066284735588711435266119614017374909936585316224344311157878916994233595703118151916011265429318769413815847480347223085662320368679066478322775021120657960739694135056690442378804543758841524409508976061111582949471196838787684083765514829189008181685916109784595844939222392023153210027535156873381558638617170893533789795997760511245885371614581982306016478777638188096363993507439125422178315507935808342443308076091620157370815788282989055754126378269531474193684620969876555601624019198310060964495745532101940839180401866001358557007323672607682812260148568972153274823450565856776793025201656375671009296957786352022250491738661021938318494541778993396987106824681494639324717863940587627442346776970252722460059845882615741227596219819973286008828346795311562283145794075445582472476911212614846181668786595548620825808333301663410861935867021771276280767671848350511109801199464053189094383204480831378414611266658555196165107106471142480706995299793832140689312358035223706541931963665531950311819131547679125062223630116142702714698962841899363899673782514327929345801719903233946627490150775567677463191019395308903618280087832438424325818203763630269760250122311445069946777747712857882477106888282476037889016607294500380487762049682967449188794124456216261645820917319290231814840300554502494169967965388436998717242018196536721040605053638404672050294965620343314862181498908750352800008534560492998118643019405017876857198141837029215612231249357667650070652259666302440631903962532781386810297663330342141050786148092491510312192895925745292195750129803879244989328055406819649553267736379024082511691995547637182715541324172455280501870903279195475323509400686800516494060986147440011418504717768431537738194620878292540184882230951602575706903995345589161171958042389496184910690917980797027880284014739836701050332317344013397617499026719155906019232782376757421154095934772708022882916368397242414519633563536097836449015198468209597651520667754527966907797779651413957730410589061860529595214052671731564668604435597421411240943010520753313658442315154035158367620490144685603803865104377133741907025256769339776329393687628905104610229486165699805889638613073530698587927700997492989671822450029723651279682376558463449543454556570134162186405908222899032810458875936710242561606270516513350026880544743054506435382230438428154075879229260703798273037889599715823467578638487613451203976957497066452172292581078010950772391146778657083331772766269829612265391537190206067738976926091132102004642107946427116541332906288022512041158921689145527131210828573744129893429531976737341957136643523861393819574773457867176560654175932505991951870874280997374653439010753596604545126381926086294124365821300803521975727150433153860952818744430793666084456496065417469682839555129939045453183756787521780594769884725438171878368256965033352279180107113796459407332509686483429126164105249387687853771686337212453206673037854941136422441450732847077455371894510954321021135183646542013461819220401757408677484050807645765684502298235862849511522340598175520002972325487006914992022834666382533803332293014287611046444155292803999721360311320504816468763387330631691112731879015937169744451995403217309686031910549809631215140194540689664171175799076912354388346517374149622497805585105009364368120640243258408778757069853160736684441677152904891189809664520633312370765515572759128924042276564860943424222193982123746168996370974782699231730403699362928804204742504506955479812307309807018138952078438014673004460592939834166812442349039517227411426721026260122800719982401425230715198866237506430925130783028808507832301048889429634675245281962041268768808773673070949375474088412132719833098372039953627791439408372440107518582363179947531664108345800581785889355506314907985828665062134365341675814084518794319114774667728280956234449801533592595487121823119683206581407088658610082391140236331579950306971187887965746865506004738556422176272345042024712059190164721754543548794415216749249380519129758533863822860068397145125470543446864918012207654631661568871432833913469669799409436483688078790020701107575727799303104007301625906501732244503372758721608569569956331919617113115636487287966671966930972707529606013858236849266631484868101675400052001197933752897217536768329490739912375958661148667325530156563929166862348348291253498131202876344772087478827808893230691361287820043142318100925682322599195567718759972503872981428995399137307208704271506485707614135204495704340583747037778702442228610412985117387249941477574824007719841418160204824801115841903445982399050235031415383382039184646830921993853467136329277801141571188346371055716254066572594360612202585853852747428158283980693416460095983267100089670897939356374860853644166850099933516030831317619762533843453257963352002515161950555327421315800277967207111451326643389617952749056579672283164912587979398810333445728516559328474349573201061245587154371467465991236967764210873607221363178497753528876021285407288747122111066664746405844325398495204213646783343869170975507537104770048728621151823546942049127347479832265804416578828073102831281974682612414558148968578985521623371384278324452440158437660945823105622602179001882060650738792393623087433618270126979736416475064907200576051842628348023608047930614897739795893621673479236841139191432866187381269258497559693060467338441549793601844111912443649839211668332246993050109374448263023832300912343313622967278117835804604184660934538716976706013661581091846350297054359955337555789396968044405103454399261799434147863292072347085759346786744393301816064217960786318214867383713372364260329445175016976609394678851784065063310011539067553691085810001131704826426390689042978777635688901557728680784934576345991802162642212299857215783522851249346318480241983143664032999768294100718055362487146383652367105370694833688977437628639253959866758692632890505208130638673126651168759147932097126320062644991099144700079551845642814680003970730699729646857811175394227041724946810932026221728960858136719533750486150248395281947183371588368314228342043079462100303373100889473713067414331787024238319048606845824152531879975593536186689585123083335858946694717327779052977075229900567132610440043368910227953430892925623366224554189557562139030126125691092775146527900064764226204926621644780462331492029763232155224623719372159013457136178271292153819971434059967140855172908294665754428853850730868579942009449738372612821379159540649166367823908120553206000336495492479349913423019563578706536050248376913876821864567097964396902017930104445642110691193868236756631293110160864239795885747441566552478111832426426831211936477737450952802994672596374636479315474798714701848294402650154979985198966100083501659329856916494206439440755450826632023808813471529900005912563268071877115512176675832954613593122085073202549543140319108123850972091435177804062361902535398829537687486715173823677400917445357377595547303684373360192295967480957785945758114613287463059942840870887495130662908488338167028386836666446813538290368124592722701195574356824706164625108578072784350825751672820575721573262950245121433276622471305245838120350911570826011915489003627762033332939106711783950079662334610966800011297995169508281919748275104209484946211067063003560075268892406183382703908745461707723020419470386937804365831887703256350233557544934078884958265102536304508609750741065748913334770444398252573175895542351745010307917271285241287635751969069528365194707837884818162047685718427846947662598417852178022109043022754072017153220956018015566786899907143438308406187343094583482774727777930359537624854255262197666463285041686679797729443897183147986395705699050322600117443151785264660654915487608285758412421798348748477216130080935085042675119410467267635724474563775595744055733669667550570825829282640369376889224080468098048891116766511576805418133366005886174851749956814718245900209045531748552381518848073997041113933097443546308813965132659895057209031065878389612753644590745555989832804579641170726829657576210088436059015659505136963032706018407575567597046340804622905921952350419725659348828690270413006726426410131258183534386648281475499051185838148098648463740999191088746969519343465598626289707930917629296042832580371976705544440601045244499062607681744463556633173842545402558040745568953383656047107010859837973259201127356182363695353945783867114840624964416827815535799012515258878968459090252576928857533000418677331854542197276635681242230317189017759418787143353336984656895418763714499874162788292668453779824274173605447605776943572298040571103879509904583049128396635571667333309682070432735145940805619193376815942497297960329156650962761528436325425597760418519004178776502346204234609273630231367901928097337076701980999113298582375758868821263371726950779527703148351695333471499058637536905145227661805608449998397529483268546297081321283573659489595640798282630213010954889429023511041571871829506349552138176401228687336560220096316252757685539986554503703260738040761469711209842679554302491218627005524983897868698933474146163397994384567458460964914607596865415315660924733467154448571806590461127829629811112716801869093763744288046597171357952884777649689566172628826639813302694494927901600335340267006809132951736010747527227463043134187083608358978942519816330373410662861268464383711036156937530806312149698836702695199686791449351777820531404103363136975546840604592395180333228587354046599438859711659781468758173415874086202701807860379806309994448745016635346064228740783133658449839796233095063780077058391659441983622608933298348042647437875136279393510153161273054509759703810023527935107088742153820330518491713356107330516760694046788567563260421488024981633768773795773675556713336268684751912394398067283626894468908004555862023161303440065443771542390530443557082162574228192600239171806704872930033903739086794415037196581255643163417498951225051151872815952170909199346208503797646050442411235245733804119862504259758655308765552171248494115157698925713049571829396839714117645340737898614544332569904455796322317751083252140135538705795798218146300405750310392418974979676732942846069158625714673961393668930309225659437822964113630970633017786402756384909177153955774790880397609447920134539136730073890875985385734876075788958619012831047122865546174912608980347225225362587382759014779452895919452749018463610257238518498028924581988763064542053110660732533313771614985053102997006585796282900659924977879173648207415339374998267271086228325474307944543446790677443076511424003289669999622600487239297254837993791408485427470824583385061128592034758391863228358338271994958180700734909298192429954767843668832748049288238881779219974972249059150999097177718758892279598243197217823095751313770639023467120666089786049284942944222553806539656299799242127565323624004511032293025979762015316518713628309709326065526373671458119662167381578073384674728941269613458826195840476343639924157378204980634596368714641865512043055475468494908656110332856197286325446395093971361413248717811352254867211954182405155838640731102979446749001595765873373711722241872774554077589306352093287972604257604093156295046689879893993798914900981488412200440578321654421605949180889139966658793316743276012015496414459992275192738140818869229363055302747183381613856837893934200100630014409743439439140646786675023588922478989882405550622907548418385507392281605528243258600743142705701429187710461358530442294050305634435958792080797876051976052560520905004194089325449209516937972770001671496834167734318023704051835480358283748519989509694055922983013001422060651741893127285994773588059529658527892483014985261539222124756414355303680417360333616270761655676727869912915047244073859359669994738882433076198310702008055441475341533915850174147188791921091204879911590890827732047151176632251233569485060250905699065380376442738666844892199409355758514158346608522806724343012076918114019325537161078665544922384199545046904883713163764877645128918903878070428763573922262943398967283299570650628917161099274340544028638557123892815759906076407616501205076326783035877820890251126032902186647857491236132308738313506473093443490263864495422043737295604651790489783974975379811351476679221878776296203768824942138411510987639271175295738822506087481314713562029346546572549826708119755265438177555066860513980468939694019685203551554651895114873067447897360757804738097482314433276710002215653865677658222536237154235348851404766829881271954673694462394616170916511305760329908000386892871511116353505498574199900925607659908630657655149551344458208416904932409089669747562572578671246513938082272454784810372260431641969269067860699813081795373099379417191312490205245160051858837798563478395641813314948615523908257456714813547414136107175596700666226020764968476150106497505448347797202912895463908289446049872996393332627448113998499495563831688375233613787021491917879257602716707022830274202807802551361944366292258104609617795634412532639710831725457119079580381657173768596599382515249766415652946135792849593493864893208823972681393523450509555907031017520110428345596527502245902893944806358781888414851118756492271424657847265737048392903795782141719811341780382803543754667694596460159850657311424199661262831735438813788909973903114617769035868778860101342863027097395602261686854120033027173673959803558891945834081401729409633317620564729925675504918414601577059709097711900589160908592671951097268039074229516048990213461897343454135581988552424794179804614953143107010584766609188358369655859259053880821809702356233438647712099345398059004355273739383002595539089784720421693954031964812178843537104914646462379097377469879735112363552300162784688853231653107083084769355601255939597404001807228288400328192414697113656322264861541683423599395274206557704829304283716363381652040614221128214230346517575322788707639033533516433756121264549816076704874666541975010977225016849603163056282001343936159348470136540352487213615282396745189010227805166212412369034700530004771715499377925742374305879693776683261076715516000962223126888604836660691150034404001693816246975301225352046459696358599832644007219338288127907228464044880441273068679372125802041888553684635839830424280997575553255246433892798514342696643594046345695690112207020422655195725448673759618714659284130323930308980304592347537604682723195042072257755864532999338201471141286733859645166522841426117851679619210667796632030452348540439988983052210987329931781298026214956926933741651487631442738314781431495223415411232425503930805613646529912827442905900433487813977367990722960527898876288090721727308594709465396476462456245438522226640346364994567483525102504963056293021620037971964984755401871986387022816543263790236270405704059964345841997957834498808922791008285379889715592512240424841448382615377118050040762532699329357555285482010552038386303284031327097042412789511919454471311347462379260025241777024807890493079213356016097693751783685751255238385658550083791608267011507543402722337646843571581402167916076259347566996453223591821595792303442112303250720275967434795870021926511150539509210598174852684216664382604915557883868232845379764645118904375072625138998869855274179703957640583607044922422404423591181922487942107496394523733674560340362083466905023078305628662828390570208527289026759973894165245007442252063869466465472718775646403359853306655960787299984297685009900145691857162539801523370078633502746106138148730549686540903603950206957857203789097454164947122534918338168609930302104491596135997352752319991787890772760129783343938927801556268295536400745256640009831246444050939043324077453128079309797583935212189549012567714924274992837636637454949013849270352681437304914007163730123363853529640552984831480020120916913796740304827124540996183848756935970595568612784660721799869153950946742533909505171268532072034292337469376144652579609943788006010273278028883999160368774071170261356444695382591033922763400727967760606211345712502624258003449222213459381536292770481372826846152117657979619063604028085387689439022069904105721375406666471645032090109912734800373972118850303523980810245572909144560591337747729589323465146969036581409203618693064631732720530335714046521617724808086785308919449176381128767539728666059504312731743474227999678218584190134256724144526497886898946660246122870982764949983421368986490902539237655354297654164294304473783519481026143404247731097864419114208128783494954839232130464863989226524491571414616802259972416796864175363258955564787875279909021745523468003234494445245754320993828482094991609545984004432724354597434588452014451062779558868095216507138009342002252541253782449890585827234360385945641910382206891351775637980668946563452683402671999475293201583599057173465185982364742549760541888481980464300598568018475394859186872486560827230111444972011710324601118481704992526484885184814238458901707452942218994384386056041447724101923094606751431164525380713543001810149435449929649687637602135709051999835231427630140938178182145362849042014503624065800713444658497240006272325822164945334098694743724898677730825486886655209547604814541919210248833207271114348769529074555676247264309545107640203389158685585691228963279412209919079625932722614357537051457444234722214942391476720568844835080704400191013059253707545998382542799524103724875294026029804286046202398866301106374988779130013231368306366821319310752584006451843982905465154198656644181215176074723386317963403443057999024035951672633688465688756290062081575066733298254900702813869909007335683732960445501515677206727996582413368846062165496555556600813666363062135950668742925913378805303225231767577804706322738565857743578298612828787484639401524601741844073102118779027827197495836149411054893616879163636109687722717510522991335719903908380200269240139793357488122012526060245237522489053043048069513559267778095787941692153401327810081764815133785740227301355442364267048227130483984805910442704728592934921928176358537447328371166341390854814977822628188105432920127957314812304485007665537318883539316750627870641562185649595313523089557667998348285034879027107207844892185718132508312118725031354436645806883273742529036732096202990853717427459658662531830807791175449320097446003546455488837925265565804658139510811226116156649943230853022434986505114811633805635435646214034095928747632198120650752525161089023665664316851459833554788796647788032944582849925189231053345404424266862790471774157442273315919450757731061589814868729077428325339137009213852837400310088596215983851692692935225543967106561979102164387690834476145028261077224550834713620830841727536487372822952857272034759501568015141398872789051915639169334954704162779271252540292136131676601728859884823313936582604897970188221298090504931850179392298646832642278223241758242226516999394764323481837695729739745787169060806815077431488050034979798124939929640159910383083319212319009480037282672069494418612606615273779486621993580491529641555740869652227035800165097280932328563931739469220865068090662889196276141068032838831190964729277556346076216899028893186313878132707099016854047374983902513448265374567606723216816223669002748834937000187560615561958870414042195676163447470339425331505316585396067550278703251492204791765554592992674249390324332368290387890593569838615022620020936449242501296598758849623636032186359092523105864050490189138363099109556567004414055706391260618791761205743105390218988723413654148399910189911495572926888233211429490563017903260073608174365612693400210078100361156957829916567589704365473050216348429313833819920496722523966518219685920652726445141795517334180106236242676986526089840633612205284345675123693546095217927282166610644623349637507464094375230577404667169165431374088268597165777867797336327013887896521856091237409838051324431729366249054574468888580016738869027267328475121930635807366762527196690860754737585629343284444592694680815074669201354099403896448497146564382556797063755462111654989478330690471452654772128044598651162833425234410319668628509598687953215124240382986720760749989108471189774944361284005811531305242052167736824583255826745028483624588787903884802482572187510305407474932722412825624515963959567190926275726925611198295412463465162915311636199699662519494439348751148309670447264555737482810830519797430786554423763165410418908548112056814817133816100843560439663849115742619509100768806681691717160497535702904450846635365067007508231103540189456938072729656442476234946029964569371623236438312477761702341727469341016757120203616488988073429124207329419407083494307228378439526840858971904156763734883178436434650187637501650917277013860783705337773309766242350955039684880915534182671193927703273467421097052045752877314801677333957981324131425902064664155421312967429163823323486046384043396055704414203159692718596696492740832587483273621322877340425057726151969988891123463300914715153920033376070370435361708090359874132248238494811745512915925071837688596149806521779650102481337103796918070605737574429461190543338006046835427048255277879532793261263477285054216966854127266120474881583217330778705591301283199671385694221129600148324071385566102467903960029515642042247333171161171122074867820456361931867210385651090961826735414898054485554306727987095145431474569583222059043313237546159091941464585551384993687752310943631246064727158947262796989170292756561917708721273083568515759893250897366576035510657115240317709492003305899588132663587972398357414497792284412691031675494993817996809326266955336582845970115700602286467624884683588980058181722597449781354786615365134733445569492172115793606922989981836482481417868625986981041588331049617829850649344737986374014033003411883866676062428222709799072481954348752842959412788432294362940144729612319482796981507468152790699051239042462659486713163944228640849470671661787575476798251164788939738760973222130635415168917693342299380736647670233618081940187310697826714328393026215249182477294476896947175701047107481385653243684031899124026460162868305685040399348265383546987033553246222662608113734479692571949680384401015548888114059432489841895538722792809558035930607180460545054468939264276199241617302594866018821490216119498160290242546356194443645802732789553447561169438650296358986436315157519701470138283760887237379413928559030397141085202436949863631001463682523696696859081619324984455762078843035688551267346670527600190395614145602488405568563347434517704344971921043831093418062765511611467712216150781010321487853787616156019484991246471173006201490608203740590479342986084249219226006920235538183769133634198573662788224195210481672117221487129439575237237524808868431262970974877289959479498281697236269800941615899915269993427958561611268119057383344538423488419128308653519511553491194797905413560750714568432306827558897081657663601963285589317422056682703070362419732238692918290679299586249016741204054994604310831655008757653738681148002033602207786298161848965659510816993475338242682512986862746231273219857775863607379161687654108603062374198883242487930550758252479277107057214463333289159654619479262345680472838596097632036877952704517100796392333796148648745341755451972295560190628557372659789537098601391282116120809326574735805621912418365633119423758462696230616355150542219396163214336487280382881341895887069629405865433060734626124650442117782491988794739642665591815051150626499240969795548176166734461999612558235719520978686126769277919778991504929057041828590318697836309958156404008058879650072026183322738299894703721176769193223874726014581847521542617453974719268136185631367185142170727006903448713728696423335360777389010129515883835095854908687027520741709863593592553053477917531702331823802661508272823639264279247446050707095707622779479499297380555661422873167009544734311745947988868694565428303762025130869892538026736624689050117706772339733701950875771622617478230690443981343331708596466275428316317320234298391798030962283793297753963109391115902361762791064446093060264549572512956204243676995376238702529995416705226387796691409336218698806930044853786394589243070512024729670587878835710393536019389975472765039088801339409974806179475290546079052074272579338390507001357419311143796275566167334434667808126941606962062178450480526181252228490744770215146337497882046379961482054337658685919669314651553841181801961405169881416717841111936277207301021411548334032028069547383984947731497030643396194799579673694661983088839852804377296970326155637721763087015849055192656351194543977986553376855518714138252500004560588636867183555610460084542284431398657133482151812859899314205285053017453854413657262239101610766783112595624860956979621599500991880660674735295613192970183142963036572758747373897518241221394321504275897411344679800215645507176611020815357823132225308203245790633748083095267221404729767347454560261048753067360233945107426104809703803244769011435899487785945967633506750131257402814315452246044647010688731945985547799998641369433702008797738885587105411394827632959579229041523527646517878007668891051262603172886257366031266603430255045717004104149735810835306138911336735596115199774947394533062929612887688548036747565289435903358071876896817864276220567322362312353294944326199700355693637304679732216882373853058200634887458814417077700896218880306346687752483233403301676918947726379589372004496677624692760946424483344886471402832358203805112155192056220758637923297339137014316776270894541667447071350332740053136975033863100813231927329428824697268706376944831604958607317946870643287690419699873980418945946593653013750268304689472350320839615603824160528811074101328232619215310416061780857373291109176625735907377652578847612866722713724354856448925118561546646719545049690820327483303842371684678090217462321170863419272481787020951552675713942043670513578758387410012846529353345235946336134319128786836207714347855334840548419961560029886568167514601201122357676889916459659384430757819024096703940665448473875080185195407871727812423205510033556196704195942250696520352398411663297596027032949254870523902709418202392351332817088156448920476824321905907552107175656677720144109281002348676588618606021707716028769223662325857131625483478071422667733144261947200974296618051355760569819934111953788721796903957201083823775230419293635721774481465884981316297104920859578538793248709999111865989684929895686579853711594459890225799539223735716189069599475646099595417554849047247260774441687957583012466495106722238563031927668300147382027503799584940461355947821750021993193075770729965086174968819503595170398962514591468740636007639750971135042647359686675884573694694274402142098379463927831906292594537004483274870051396810356023746463229906674250573764845562827231640310041878106419242280395354803850786241305108596097138088810414256370917722304729389778235501020870590671594126868816293004976131633984010627464634165077728243884675324730992896806923658136745061050388927374576779523363235896587572087367491409299331449657764570283592156233179825744577651103605343238441053423025700231517240796965894726475339268254997773230096479578629181138312194892327416597440545427330307445795012601156664370984348032700960883975482732619570918344933736381042714053844274555899944995369265840219594565319457551483733508067149112874405394179898304483979083376915074022948571544532980330961771063952540684601470253257996390301403066062763034995884060448185874054343401808194833940407529445681726557486577662814719808360212718096859996854021540335820098799649501328736124794470128882439045418079434971774470662565844449912752526773523918557840191765424550753298662042372074054083970904279647658624905582036457432324828977737753106191578680156201737138983726159960366208136868190954318210711281580120039471279719202748744252853910770880044491869940564716446183430987029766839058322506559433544839114380187700967426625671037570987698601267306899844910619793349113074940960643827689899201339453291030382383642454821308449595020062866239810454962171067023437439419702765155433292441931111969960475410912181435913059893964591434084545620278774254948740032309397534384959459891749279762563041474622790052141431176273032076329083063150715439041972804349693872113608038118218224673058431359791354977498735746452078311600871531499969083946412608911733795388910480443846794500876988336611339040588092685068846806594514704584444422954148122665530594952084321511384128574900480863464191412659893416318523621395583975469921779039517082823404954705114123191406407005928825098320260131286911252648072559421037327350546872096224909640074702958954392785878144822227601440866182428793497957351803742106384833389321453549320029330282941638059505620081175067735748268165132150269036854717037054852163054856054016474527446824006688130387066875143171874245889739022891079025329870918397563715650475102108351965392513208783891872675062724970468406115222432414546187518627995503602704544892446772148292781185604433195194374820013826069443705034685695686717037904919160988927119212148909322776578833547055783297278448817057046977471887452207059743940326331488589452209584840736000116056289889297535450079229573399164333992177317145566173922475330110814864894605378793766031824521364204560092428676377295077343626062538365970386934261466258266664632112731814699801129996434196176053554872067103724090091581227408058801096217098172688964591107109573535589928065892249122092043797450898475897377510409583470057413435771507090834187083104220218160403901380686987714815530186222171540351578342931607150162977433123827402012128324692355320556026586018431204316486533268011950280646922293270669932862504049357582747304544421724464370530452176994176214613197072358634566551937604810428580548533405709633320439412025723832293427561300776365501154122431818509940043536871391197919200594439254832939353155326654692367017597190301096437844887056371203749958193731592255385734124801342841285211416983506508329370225290469355615364122223536802436214342716267155252567977502347911525452911471431367149523625265174067422479262082642677728301814064644670132055870195491262973568997998165215080251872723366439539086453879780035921658727839392693906508243821944122136188011332058088260635821800453272178646109069345486883209978987118586163829017379964402252358196158082592269886086824253654557860993125290804336073424280233743240148075982658049177807123523154730488530424317589559837681213843297215207700782622186677116506876839416288289045664542697308911563191265341923766993946053160788405575190370111208186343628824681876517755918138438726381266123704275137431419762530604248553576179616313804203036909010030815420892784930006789532544888601101137536853389942685811315295069061296917306759316712635999373419366733481528672442722977525439006954141811846659778084303934560822829342745835565221172158567521230905780373588043703800416159653380736105837584527749871372884169925339354566333046484637764304737282472843889221914349316790038502350189755599967787592175293235840551470855689729339944678121835174012405936515098460581120148339054007081216813399557183959470249521051912727464634255602092382057320377214547534129619212199929113819191837121839791293385831599206836840443141755577720207287564835349242514501885854856556909441973339980705527203063563791441860266659941357595452025594653164179743054635688602390762528402574039566921467930659253554310688572417788904360346976363707132177104510810294240671799910142324071708732918541495865287857874054325536808435894293215929625361386990775985724739501918616746771298563530970869501187866289020295553579644039376590149323360714661374076031668620734620598695956785264175338997782481712531589051527447411217533566155144356619262811420954604052432265300796231146549919647457485480454393057191555488220341135013253367623292515356963248473001022838142058815836382350906305389995093088568745028794580819460534143658533759729232655157617762463019303092185544433616963151642703952272950479328125444258847367574435865651688306898794130089239516045682599365205234724489789237630608064729101811324619978529750647556082122915210540720229072817293146052757265676348102440210948969010976821629970957060740356994193828436926412740432197550860288605439542247374899264251820111156828313316588800963494243916013630012460179773093032393476457691437504250622162074859509103738396258584519682656509578511877370527635701878355059925447287318473577367197283586411952927304331483852399063159721407073013908724503636076116080216813156269726649862602287120612435846782749837474855670592943637539531501009698416453962636803196362035683296845775992725385014114941766961428599364845874690733333692531595577441604903519038018240680091190669928010573348336586057309029951841091351434403188539058299472680171101001762611744447504851459100417958470390769259262890736695018965953467595605613863276103357623232875754265467542473005411487409116060973277501455458056093346246620253653244377833907983104549547347111853527950758995998155177448285449923149911333701630588688354638638168327922482782461420647062411396733235656677845127595939865620203825159851536735120471423953174911258005326436796561096219994392625133508458086976765669828984603870557003305261862118418887510470838168901951182514914060530508402512918648201948659420365859651484009170424949603185929580509382735541629842120922773260183238038094745571804378021246904437887073183963987757135114231718725052980010700005706250646264827802539461371637724030810965940005679077334560299565560556025108674770453720485652203444596108868481443029875319201670360412883036838865277503052188152054428194886903030929152950611261972073915831460781181562668556440591752415105104204857684628960624921676129409059569297561973293051717877508927085157129491519940816444351260542371401254353069690106163686661273119722426471302583385852940394183477081449787595412563352565237085228384356733949040760044963793210773827407940030773065121602727397823618253772411160555867949019801283161016999694397325364847035407533090487638331501994426370477086598092766203795082222893377407077034143281705943570040861119917091628696889274222985249656060877549150407043835230987562774299003795317774339773768570897565123218804924105738745060642896557002450897543169769766032977789124716859278439617686433271689985368080525339168785039886889895588503514559237377501557630016552553018028596402745539966348773963465158771989964340324428676128994302376672062820348988322326393372844326017604729197304591154127991115029584645262045375505783538325589722775277141245761567557053871202109982088064594532198957019596205455746706661764729780649679651104593541099177858177150525677175447054858165537579740301267749418112772329844131333052128702471975074828965530774375208318598350085657056898745081264101590789403511552740431906500718679485747154979793144973072539062753352692065226297794482496795739754604886933380108111259536680786268994963469164315029976154297878059191855780569516893152740617077501710104018767666881514542650813364025690167915004206809123349605712421875402988807268805323290788590289157874596315854335197476690575376357134026305837248515145714466167414888949803466207489082208482418090827861253539045925753512727480610284466621165349507385361051605553205941081340816012005432946438473359349266612691710504873472885112171654735734237909015259319946619306629631174904806721711592854128431602548065276274109077856611886809495982452119359438304173129039573675248907387906825525862359468890403150906051018362793142021979238953181222264911959617987929367758597736391495859068121945681056634981667443797132553497296565710268506217130921669297565004720714462416407089218141603366366674167661284347888291842658928942012381616253057836418078483512471855343791542383034537223095408844212100613920908098812339606937416069959395492195625419233994652912000112684201621925232277011190116202242706261910572426501682173809312233318315798033092505895992493880075988773564598547486021342841995210289489655211436577640581274792998285745070010475396143227680387360335240299801435875332594194968636895561408850091107784432737534919530512332741211885770048514366348253296412691481128179173237131494168285983542036012355569316316230161914606815211627823105604687401661501049491370467579032133713095681148017661505861574175104204560855586407266720249812407829039554305072926241917781658618974970951197322299677543488614866860702490907864841774527885342206494411644283461254353891585792182950248156388499928799883693698203046826864615606449153022621314488621091744114249547466105886824972292476306918319207169922977098000621852229731634209176191228809751165066997286860034685920009562778785711844508765368673873869619327163811698041130974188348480694458180433808605102978997658452305753816815045445921122938247971756900730789368089341936308068202985200099956792418877425081342062095933956603141360236628913366862102361486865152929788056867870195093185252068497579982295570843168474126614607521043139760299177241000478102455761046584151981861801371681700237998075525871966557962986641781587039808523230496221130348898491886276349786959077625532611436819098405115747131827085258139502300095005562739581310040263483092112547445193258566406301580101819781125655599258777382699628305002703903339635975278807284992146830684328520353944727189881997889914279556096480470648946367880730283344342769537580937286746565359069405274300556203541023591503176453515655160234426402864822305696309025480393696175406368882282187872160369319916410735444362440598435634560575401274538173071333486689116678961517140759376029099267496245905323419529480521777463089127227206035516362112505747930598035742470213816140793163010348263934196689953367299275197908851866105334993156646086622138902382874468873249454284125522449702370325532968888248299730346657784022811714338111693024395988752834612760427667133591375697880837685175145661922422597881249985194330689770986081966759931223981486020194759709038938115431096520279560876001090307303432818576673010047688353865852593918517595538508172499912782767683525864469231997582583701524235827431312275049523351004037618187519495635045836056654017353754187661981337417087019309823421171264145285326767522512583671934689893348032614531643805516031989660574369847579959961218466315581087316007181033677810154174637635095691287518895019329855411308760090859332519411704057407523139840129717274007064747196875070014220160999472761955592903074278567715709680407055397887784828215360963049526829785217514335091109246834133130148578717277472142114418911796861456391911281416500720327861917790232678520209812207167347539909011381060396217605072484625129690883966436143544903955437890285080884069300745841029118183283253578623344792563058273497250099079152267051977011988246942703126902322799068136688821639830494689694311246458874389400222140858012340025634980251431395085719528707662790610099707953862201751667216781868481093020948296066337860977179742656752893243735568778554257998915191133596930133259015900617578162993165252645418933865620194929448885732380594910031113757380654927776190952596616522168312932127966611476106453122261133812218647277174490049101911486967730652267209466257811347774523570279425211084035022940906267614529933176286021586324914766759561270229437989451591347986446493166421316912754253675459211082868280695772114374538428466329720007591339710309659901854193333020415100551707586934924231103309835358586479488034384411160840124567256402160292262707401359621808285601870297190683591634241771131223836294150309151595112662701126846823353693290590454914725667585635790789808528957310746959253441432115702048755004056846057305798711191102933642702852472832472870932951702350247712192579084133470207229813010059064931193811413142316906402168904193734589526691633814495106715636501387830948963172513903952363492826092773431812352139743385906380661895053804651992374563431596399560754362839785074110667185608840795989965256407085238851443893803398111157464049804184513973060397985528471143725379087273466230140848925565696359877896341568689785396507212985312674503479082410155704439222744021306744285464877440352414514027249766819023339149266353045007889430664111434029822637105281241930572724278114430782724815856471434076751541210864065428291647669509076628095821296605537914268644258225809970198302222862436572157846011196834633607581925115157879112847336586819888386486368858823525938419804503353568304969212814291787291800968624877510478608774163005486314631342138432904834487987328798974595704759444946416790816933280670106047840264105561404696273735393196212977964413709654714594925634797568582654449176093370291819158024096950479012081792031143733483712824730279752688146566517230217129053943860320688250366547150145192004912660825722442587158900756836371175887524241023682020367076791800493923146362223603129124905761407694844215151175329524206241919605245418804919630127583957207451985412503826009900958704998017379699419264017725577122101529439127375560937534977272681398961620818892713429100867653952192812141048631459481629730146748999481966838366007515710921344685155791005258529939440793207899100513623997122857895609023879082697799920454640894179998729100795234845806858419587999601118889744683281184722810636159690089170857248849266088176478923862462274213139733059404637637577238844130744050113808002162023938810101150392611244399351717884830212070342031066912613080905879631549496132504281653137549343149903578298247690436401507063189887036189688878448657554222070085232811394243359574896324801729047157703428543435793828922370769004041062514453000632753522614765475213093448321703515973203971749500565388359145481731937209783221572033317345070851745139857543870429146887991285140888945354132324710390597671137518377005152809634204091218357736062644457190749310433881253625122213376182166314901977478223015168213667893354296273268358435123161930990087463035558092666890823673743801664026623493132260170255229932596188762796715325606156744578916734762611261850849128492017706315274329479008001492153150224111455593361226230193065807487772946084242763123604631603686259931054801017475766893567493745525576153181391186559384094760861582609494419586361426288031198129892452913967361717470959105056140831087265171642916587185281206111779616510842378986340223869441369205161964574519562547171367151078380335053717896673284671983751836916969052909688045095391681515446857097423686703859035508168632725217688386995895901361787824709691004928965033236370268849913046495458758134497014055741120579097041014102286977377296157430451056477479580108838883458317648308165800850497239453750180437558164370571019382615698009484172241400442305665712286069817361031668499393102672349370984852325082691073085788714509155425309623846207707297954078823529615629856272830061141172770541353632705969296127253140211485533105414003192450083823603141226612790567607636598888285903232094459619871114231453347352513793110027630085534001678710490965598178774645016450166006769223397141944158812277930395080694082132986529902898082192104474650670454396838967179271979516890440822777652302569842003062721293033739782181789858923900839670788088409509517494534372546427495184582029960210736881261986010098423596039627787824139484885642351764350408872629477753660676817906689484437047709667077377334872897582331927865754985398185215478120121114046617039153450876635089831992518379062305636252659258699937665293626381446617991101263062237127397107329565240247812595001619927996192990040490854112894585363763501211571698358069371771140495619275657462839485312424080661249025833159537796318730727802007569218126881055849042379554767299866665536361824445622825832238452291092176759224876426591979126247259507026872547832589456792138900319097954866141669603734102271866784462266506265640875804266796240248599573019280640244345301563634012053967133960356832737570645400944217226592895571917351367166631736839504202008160921398533119199188562525333286081073899113563123321665995564724257113422190107015207557789318366903884324625274445605855234647173318612360586879191824708466515873740085534804923980968443372790109032155425056230016738029587971528791373857349239273941130684905516472462546689607295667006434862408197193999954961098314912397579506766864606161522921646236190299713503931974824658650405974607660657497279571091308597380131506672674501121064467479611129273771258670742086873009912252232893620590266812069934613187889865408747118382627139030810316242935838322949188047610349063674853017165768303699528564304982742863723366649075530186752935768983831336957784553740314173648463075038845540877810480552493418855161615181173580876056667260547921487481147937323092739855455681295017307968311488037099205234534626832532182716004499254429812098471149856284265048397401200640271262383766825730938058494529698336253587886522586157089593187636928345639885949521768503700117937073760988282621608075362553968948642403085412824199325834018910486066096895833765012176748358254871616891683186304452486024782102196471821826987170849632752741163894437434302462374214114376699066667703760145145211247521725165314272125856923729809622456494117928914162575692888174532629122562133176439060846732652854726075772616892183868867228380609122754190954634928127240621729037614620167517096375352134282296385405933809342149926262932008801465747816094614992779316936920289417593593810430010337353457308588120535614235524357347327510201135706639143860865377859831017116284752766566095044337274649517437803251141064387932771802111747052113834052714096962076325853123392888712563983321903797766344183980926305648177359430681125251104457948509520724077765230549882160305639883599035511299147309204166626396325678054820367448345798651722494417310548694672946643403621525727359047260067481143027305378117861265138886471549408933595195368024665340894686543469002333603475302602367166320152966010145662242984925013543109726250398723421375790984502340490879404488698605044688905832448743067620911013360638855962329988246906035730443094985479842841507614882506014618929656423623337782925895484741797234489364568557138971311448133194487171610869514782277665981388852640399802227693236213458678744978423066424729228336268775041674427868105449231421571413378512340831698258835548764296545240367079868522799744536882790906945264561683147957933612600703697423535599102593975047491749837603090393195824078261009139377803492234704623340331345722990025472398232818882452671713735113988628788027163591732256584866666255838632112451832237736909264533050790988192570630800611229277657833595739283500381643483126524451398243971118199814213924187005515622784042746329540172423068158232819977798566774834878775470839417404490170215948644424546969281315210975196299369140955601012167930170562210694264787470403988350589261553015581638380429405641949361744219983748993976107377469927009197378080458001886375515572194110949736816388434138304920746676841096968044200489171267401958210542886082198744601228966109118937415367007950629068635597354104592945207791595102439277170024014524791028948937735558592206653311458239744694896001041432987763417940517749929708840546992385955407994203496243981908822530684355026076345678327590837328266125589119579727764551240761431818732593595697335217121687428216549355440925237003166617349143865980636494711484948873857271914003494379453027104365752757717396881435440663586944443267823765859689921332923123591811466847813622242207059944056836327531731660183552218386419320101053078526748696410166228744401160439668738668048369464886856480423387794371489515560583397723795756582294648148283155271047333323725445618276064703221348482077008795475959114039505874863815870928025328129730814513083448595223970449912634176181426467178682808229556402090341024502021662588845304468675630318470757600770505619828449269033659956402354724878951663511691798030257046768307636440367161842217879006963851923360882187548074264676216291975266432642393521335418264528661805915841778426311243499575171950212472231963234152071748076366738203982342085032957267865592903682659297182803081503677091738954358527745579593932968168223688149873127312723149970913023585548690923725319257205609743630538649280379583753450703779257828411973311587623582663602571577680699614573422866010917654304808454160418712732250549144334021958990332652902500244329947556262019746350585130768501513464184633335225949261906043658215303319982506972401647762446104779483152170018963384791457913563823358259387198926363999915820353106119470522698555195239955970855776868093626675394578666741231384712901736458698211252130398358511666985137592597373208814246585261384691207356522308451455337827627603526984178993609241493189518724606869477642886481104440493954400970187594300496133147203182909333771524102458159361417033136913953681467752397048426675812747482873307127715520941038305875058094494207562402996340542001349617936832964035093749405394422698189940475147966879929014679832910608196428312236941775822208225687364072283577545262479211083381461578331040945409773088935793560049939954480099435324924024956433877059340726666606562624472716833475015932774127615410319246897976712406299202996077787310498552506718250441652674290313119185262912178167347160259983614923376060044771856106931379030175246971551670973972071974857538864157813929035982246997416522755230728595336247729689653017132155354281840828030806570698301358086511400330393574284523389218847532237109513310531771479962969213940877073477352172035844517444346922716476617373559627044734517297388090148869183695471658886654679494652753157509495686041328887958622457355862387646739159877624310741100251869755490857320536776408954263223520960821883615056013780383270906537522324457632622370158807274656035616237230337121540249620177717564957948857634263266896617169257429937339028323331333416442593300977929472343707267927795219522601788932763205251930069374861358579454294732752633329424601464066267412708797382464601397622789723253810517597729991231070368048581070858100326920262640485037435989136669983876846440519658415519499145952018851292458708184462600014279627556162266972046773587431872219038841686355813938415362021581393089406983685616097493437355446179157598456626681910201111306997198319255605926187433563714801566413656171521969125197807664411890976532550886883033694833457136608531637851076293983778043661941816975258105601925753938999532259531280997829853116326564691780207486585235149427132856547580026890642360408453343878358564696769561855195111072416981338309398573615793397564312627730604933692889999770883223528901060249174091829910820736119465762624083592720679790319928934936270566279038336454529755425603174117599276757370582687643344146065458141638928355923237795716538290169909029942105082700993342787141034502429667565611766892808972966620319220879763998630212905097065714117215414446381305688720175760963716175901992517311836108597929162723297036900897992680258037616229181307473190890411173977064820421040310194618257018087414654717235039043981253813126740780773754355487231330276297018196174793875063965540544354082980882253841425323944895023384686104549153158741111847003544907092070224902248296516388138073055016259490810405982635829949529128419146328016423531683883526393861081225058074293604486555234847275486795734198041564390456576714117092985718143976213309251347622094415910859565027495901531757160425480768256211856117298859422994854915242749537443573557760768909674225643882083654396345630487474594496617434219876036180645885607669400178151595875745817361550111145652941829008658523819434669337391505584916683010511188433448701145634574376967443032292949665949545933259559022718405141949282454406184807993175115283580258717466109439066714459649371251577173388215449180087693452187999207166731321027951104707327854321325538196737627517476657737935067411195123605384118761364092173816988869599962062155840325620383385999680498349758525494276490060637513547515333611698641824353410849202528871155862936864547518554216810907532353449363745541773567547190135650871115327967053766792493149187018398200515245626905065309100899748921028856949114343244671358600118691119300446538808144476909047245039516136140724122808833052638534140204872191905789125220800045856218550890791001703682606969651530624616094170831201804993910406419863110305474719592543506808925309786349380915679260492327508559013096119868331262225018467947266393097990208385718771931414549804790829077723589618456300001034504843737480339303814783280874264017741775556270573596572854938470747879419490458846225969502662303078236458381671666637829403229193814958661747551050915976121071883746868965318675677930274039150671298407699455011535756311618737161214471493519003984827556182966928203134817936835389236837743453646225482925828227169387152128356830871828017032756059215835570440064433769299419588158035968684225087694267860406139788818568807786273164401862424992526316917207762593066590484737860034731149570557470246266459348368996531587405056472368543034162842187987522531911698410060443256533294497914865763527182252076114368941358716990777518160898233999016192195125672331478944416149937911260198893243813366095282288508533089190792422387052413636292756770909836633593282851311677106371537286610347670478527427862746733167733735009301486785082736640638529319566708885433380865606889916534774243517136859522156804023458847337874515549377303609345752475900274114577639889278704258628548971540390097179963632228661547456697006737590704920376502598605807484323530552811846288674900541002008848394232623241450241935021036385765422003050113466185197666160350255295870772607045180552584007053493114855999356842804124600102411670817437724685259449459073232721352602659767602242613231356292105152444334419588932840460919148764620566074697066265560297989052942330177735218210406550766132517432739981517058416621202406656173518072056747835460156456927258399839946019891151508952828569564716473116614896055790971770397014122258176216215521995866773499956622076380256879387936791288074520892377251890702908517967648203905495342925979033600412983369665102441311952307556514711022905910807473131524442038145607446170532334771629299708813530363562799660761396780939706187208512295723556025646867866184946175995276153434468625777482138753811265024938771938163253028733759981288897305312582460506782014237635924760524955251206878142766094842259679394001932668321177254835578134957404495254555432148860852505466576748576108924417103084915457059674326230436076968825281830769286018898720658063961460510258487869376472423633180866271591210214347435931616023233677499382565793382931555449521693828033561120905135768680896800011801490993078850967004866494575583579293048290801635168072879065044521899592362774775831126500704354353677605820600422675358123579515791954880169322741422937010387027341498422150799770283547159559616609194610685034332583196635532284804282717175329320072150494752039100073855942253680065454561480117516008502769879989798522536405430092806040115435256803340406432736736026848870350384794920616638665258907556643012222935720921824829151991996976099037673935549211726018899767038921153254106075196432461979691660135478122449507835461364834278122151788863207083507731610074917627544397812012515858062849667118331124350651420684129102360553039498351959299572587397769123022317599904229976216436271008999116105083783404057646949434558650053422859388010192390285580628751031005904113449885024049456408879989960895654591689217264184264076975113623905289568922076661809153301929088672862459936377382297325313309262791622810077612054034324582311371884066689382063147901142262574002614324947539309732440930497566481967036574722630761067949850442175860538612532796039952354743496380518095839929337595995713390003960461605107488124002935666877692078166792414099396526486484513446370945888986102854702726429405170714048117913869317814030183546444318753666860191490734137540628165905261704719095027990162263342953849063533137162311259502095417595046549465666928456196513509004537820294502378157178215715479262930760093832576165631682950732043042793201124686333118899835857555654060353894162443451087825256335311789173182454919367147159112188498389235227753754725652689023326694653390387366164195484821060364187449180009194978976595496851350450462900594936472315348665362298920285095628145743944551506269593813269356514353668887736830388477828327832414005903440351007149348321789204742190084802818709422051712000555713345154800951403258537732749384038540462896506716482124291945872532249916237835264960055850201766968912810057817177789981934395316859203755328346799923249107375749607979172947191145551313097781528640151514376386475002316510928914962582348592731765417014495973363541720189100033291253309391395804018502757654542329828957992783876293019129774395082777612944109057540678952307520886035419010186545700983137201437969450468618859953277471622133003544270995302389627118370557195726699880083959484361442174714973073994843638189259116137610809621965681404795258994750798582286179933780060659429802299599716476257178094732018487391728694240396647952365202061225192441039815969670058314508447311450246486337233186542054289001446730145617406431843322610247535899261978635367916899205912676312546785166886819069118609536229585254982654825198926114204521347896002560785677971842303990314240646506179609585810049830570551648732847668685190769429389354725696510149669504886348527261958710524588605790298388858535792366371433023115329376501022503385969401650916239059332300187695068925190873923178264704934595457545281490833939643800024196427778910524744148150272089465767748047985778043972048346042800059850966163701909366986157918955833186675853911955971827440881782387739612184557223454377903965288352467142684823274610578634316580371950552716926569334242354983087801119955405246582801075772510273853161993444757515764669741267959790736490165470755145990088812451833284744000594491168668678034451352436517349143768596746315111851337421210019950532497708011738976460893352448842572128076730308654026155112404167095305154104979130454061796483461505323240841490985469934937374329482218839869970531142601221496070509357163338467169928153466328384933915121936636190054791671364362237928887880177771106225862440945081383056520586842077407314254608811457179968399524255648719405012894722484092175267549105957105343546415951404764046666838659871508760296660554404687959456577705286875222050401580800225565984875706489788636559721638927663557493261569353429212725501715334349750389613883129153877909347431714895852803927649326454552797172174923170021019473888239250491240276860680049061608137054180666790781453780172755160090505122062920942835045325379427724684079160422144287869338677718507903463701208642042453880997086769256226143977676745507205575622025273515904045327247209888736061085381403052924692351720004190663149786502897120932313717148063022162936859760784588875712282634327458475150354182814353835404008808528654422068743363633271902430960567484102550839340249518381623261952878908472425937429269525737506645401405737867103188369738501493204151998077350722885312645205395961373994009510563676087916190270871623147254367568145536041230658358792353924306205979693695980655473790880495399037612127467082739539599996390443758412412395312862104784961874784241139529438975870634632730928399649093420926770519455980119097331110069560585317024110345430954434809135479215980938517522501786798103203375193597608115569993697914862334432880975369276698784153978153639193002331308977969654824798014922698774102484959276850802066393859751905604775212552826131935983653064447383260070528624019179489885766200492364031104085539206676361779430060764493581426001199279593726143012891222749972683829486825261000614939834861949157315362106081410624429150455490085326963763605515478123930020697950070236750934584272272006437514068925330490325508314358966768917532561820094993635317256566418531206407404460108000910264141131741680100651185598499902825966984828972060140152458227674429406516533485180949836324000952958126698743037056645493285858766491258285490079551580423227650977636216021450154913118486860237956365855638059336765516209114755252208682310472884726336123418792171481358399816908481825474418751182517048204152700600211510341648455551362359413896982968215516949900665112051785410796595104986599968517039551483537909808250213989652862856129292974019248317926634898159568792599346168643224712333078971368208386975892633122936545526266233339796997069272191590338356287284172498930839838642754652684641833614472782167557211440691510231828325114610241011816863769373548178511759998732418008008853352494063181911793468742065349558616319772143033299978831331349339601135018609342402747652852805307712734612432091982071057135432930370961633493823098128399893589058602841309129558749443798559883748192861629412778279488449960723833134782158491345398567552865546877727340375141115957938488610629499715139870075902521426722619906380704733369191238758080988987947158237477475781779165014298712468811061592071191679505895551646664178552216423095957973547592771038847377552761900029504485363245380716987981815554389047420257754899889486605794805419690357372651257573422784620135202353743067652085620280920299232089166105434286138705071408453618357967358527520240617210967392112912724818330115808940632775842821110587770320458427193658078770619514021076406280776229022729819538907385205011783270412630035243751452967402703859693904444655518320055682069995409139068412583160939985695767314142448780657590409899634300934327700534929460175690009609922129945978385386855027061318306382391073221151700813522311840109883670158263309009534523771527948081983421051841163139344510244762514541921396481624851174900280169376365669389585945940285657149777112322071264621924143116447715598958146098709375353193791579741591804839414334715670731467131164682249720470231302564213736045429686493583819517002267120996983771809825760859892870592153929803350216528644661818959333763696075308261691259347432012131623478149869117315194628053483600439428795707202794416254796660754651015116850393282887987968676214360268552201684068928794973573235486070865398051194799001857612579999896501146040907472553366585807721170371410658011436384554524240217643561512387048883240982318072251433581741895931043936677922296411769155363223642424449228965342283239958441077073274357084719129558392044133336676329814721814688625616210277890830732334119542079041601327478550448833713048614428187959127683590754050490578940860463500177933344865341664496863833912842601119801769764282708407628714834641136063911897972385817980662768271641995024714068573641340576593569261409905672307234922344202480040534161640645758574682235429752044673481461609816952992608920957530712008389845035197317612738088006617856145444655733900397214999679333799466329894029729929782302325130282280181716515647403795121087935442293694076766207501978377144358051448449985356517347191906203645827773592039695198145427439996366142774262739582859580080642830245772481855003966324026945472179512918854337771070091324771708470947776225709526722085014057111312555504752044231445142624884095459513485471388191231494700363670661021661906761739152817970401211740242226525571677315898432469424615348515243428410061713956385058332480897236034704648100543589715330379236186688447573307405024530521015785135258485502629322721243427163650550105562439416240341863507884866022717561559885238314354060934540654681099223489075338404800971046706707925969718187192927797354380491803314989675578518329167366615720397271703626378031263970123665247630295437097205677453809589326023279347113234637100454626172938104022245519506725492042153568052481841886872244513307148269797348030075988358986608510614800088651952863090415269754493151516649526479516525105647189863495941289830681241760448325008818018398151646895894974266356990545767923593645070433331341485190226170487774094814375836908821833443776563628174442307627543741428678843147542191270462600877260812988696335392214243722834116131873417145863259634714073359139720707923466935140253578357562938382411028944780639821013380251399751643169846819701304409438273988581076925480777169898653662788463467204506566698374352588029311139310599495945115604959009538808039860362646446822924665552685323010630017748136300228555378467182836892453169178490367833317913530957727398596113325817502754278702985729875577865656038474222113017649763184009729008285004199183088579404684592191424728026361185585502862881739695945779017546701435707196800414110810140064706844672665521209193716417444043161638599825027427666031149212015977143155724334324882808617494852417831146937156915164604579724071185688923180778393179206368325439406780802406197848283286155033086674103323816804385971068711220569162822300063974916505622641207015697035918316592771474683131935889439170820389754433573408914875585616706856497501065517929951496838319794310530274025400992462270568635722636105577084458268819963441333126523184611618641547399127823112513625773398004235926367670612132482704411713108227794160591537558185005301971106206210815730994783155583554619943264968643396075620469792074863275701716672615661358559041142288508545010531092329490770903534145700293740214658877412998849425165496441453681570827092253207463945342357545360743263799135392725717288618253880946232392089877398837275007583244826231458596656097148726293507144144118597936169310499120132311355995650525890808122376713001769873591747347782650588559132093619233456801325593172632827305657324212577798544593044734552424429772452975396929951792192466773511469351946965722981027556104162472523981813627442770998678101291186626583993871683594378182663995349099195997846254359145141138992436818193141690130845417485311866681927019296338316378744246134405653931455661299315503110146050835967300258375861778923182074304699733438173953683662906555551769625358317404001419515939725686782147176882771635323025176471747335248486535734986532689125667902451268866490779097164857266772686816630849822358367816374520193420413848775339334495993692717794841067927547083549287707819258419629891669504777838937440790754722976552158883673515296880194765381886528228657803800134895878754887135396432985012116018408770442219401499681202786012993282172494169163992619817682947534900624955257228714161246398798910948591900825397731903443256144593588971505780777313706349301002291764882268810598226520446129297590444485047484035155316594796020432674667629635897845318155723978395457902561813414164457389753532798459354542636080285946603363764134078293178296604002386541129190955978236261691947589466405888704269174730394973320124650396764500957033635394544639606490232350348788184666026528504916763215828278231693637732751222772705438609116108898885241242763139416365546343351921279549132529272746538064570106847749747028269992313075379541601428285962008025309496548904315609100276987828702342737495787623038963548306646504478456500692723510915587135679521624698266241251462860606489125601236120132205561641394121170219262693531473755293945979210037133894322280378831377085101801536411710140637996703794319455988953743394089698429502582125365221441491364317874463236711390289990748448715238313657214622919140926811435012291427203742103966602992259114694777302937609323383573044408780627466990021678673126758143448798657711599467940585526389482493216954212963870852048519492380609277585450203747336907286967656511959167847666460269728890198871431706606922402040162493124044499208550000609038327053012040928270161711170398060733543108586510205188918539487525280810979869233793606575644717792091685234313240217128812729289894135089600183453818062547944125594548027827804875270949648029474147235254511109043087427025466213798261821765635543152857578022597770288744201399516741320907692497445303569334827426297829363788291556044884161070289987907283148788045659593409469081378197871922007155548763790243579192656719106440081982959827342962059840354151972776012997674841787574424931397894836448052980673489028677709318682897389421534339140599069198636229333024422545599078692929285260743058546926199644253033878683531487437053236867807945053531709629218843171574987953889503398131070815221078840174131724797691322262211656294672701131770604691743027412307863440736567526359836702172397049802325264268186503424979641123613192598531797106972655857640469561543091021248823348423586737732627130408032243149350329087003147739766601253874681093431237181028879064860650727625216195939508344666795307901071674629124571175409307139283263305079296991369303403612091723490273730047531161111309279413225996211807788597862860740415595563543317317683959411990332034938945589375477539962505921685987054360852829722609686279200850964963523179940324609422121748822504211080376689600989035389951251746550099399914035224372756336766059351420129696797597432804422265965353170671399603023720357132706524716572292197615006399518071730266021380221684999114683262194907439912552453288367557613781484134769482172499794440590423743105361889687161483843379975681641034898879384714878634005598145205965956361378286489995509217191735473846519429793829573821569710966245492821487031436175990467653192110409246754288316418880737389769109451370010886660686316411358127101982798487555051817468716115114031445093975466133727546048132896599334203963220817573619054242950207565861121191127514171443975921010470896075079817987448126944712467145163964432682716248061184122806082854145547575204036001370144978750245311058822467857508949472257831893439695606469646613449858509456515169570229592489562788721360930166788008367108334982991223513136518276184104634799266889021631574497451807484382712169444384570553690246512037456340235116447924539831292459884013218074374344959302690747318700737197645933713438438645721955878983680438436515511236259623010561647491637588893660740729863518586585954752299201992487918532012219075477541375135488068274054860003763382611162084328336678895164487121475536673319047477551309603204304379885501848182379829176992813422322034442783773875026817509185664303256120333511642789644916027667778767140423279871871198202224940026640447345343213223627685722125783416369715030297914132602677054416937255369733881150286530457767569451119657055287441378606953138333578555216610929293192454668210476616503479233058395266546052862931234855618006133765633264537855681778435682887948329131880777013826364940201321063749934050298537725486002208715704839036351244355019029686732064511680610855550973301318694781716418380237406740501089051927360747576220484405763724007505235842481697929372408247888966068294057944763372837126674830272951462724274994738470736836363742816211109542638097119754416741010375518476585031260989509308998658386872307839402449339043686712068328252386482500832783998710093125716830544720906894822879255622962576507274334693070225586064175184748540286725416946563516232132207392641655582766316589291291352882942572922737847143085990694178250481637320457947889271314583010276478181575646537128243407570573615132666479765439917857043726826948001457600794564224392042383520724659961611502881875009167108517394701923133646473440732003335918490808640899835942033214375310512502077344710871641735358905797792788085366421103167740711731666998493679410985864514169865020868720318370130766604117417934231679694367698651290751408627572822068391573904149180074046301492816475739555598743909907721423518096995223363472537079152958199290640243231176494593069089319959464094847038774780958988737470275458162201682214425571141245262505275245874172366980944104256881883382560903070272435830273950324497871162172678705646708740762751265840762640655894571472917599104408286594085308410575120277982847417011567596375680922153703432218299972788768328202891843824641822065253827270759501342490181591626656761243729916194135487542462818727525695276630582628627440895779170620176310885385728466483778379522409845745748885309062290484204117834682401314575844820578951122418323513948378149069047761949311903154012980049483062328145057144040993548936114979863876037782807222315200832979156851247477535710436366601244410015987212925820164292803064676928594912671341098942713859864721381200691503842848920531948778132389206574469181169661853996176242670824450218945390926908527870470901261120912610339459234981558501371151474726990119944331463704515733999803058044120404282904096199922298941571816836839120264729877526844723952849317955774365723138166857134865783075958608065389340147575281166927073299761373989880053927340469213135882522347405492027938369372218190868664592290746786547118367185543456234501668894776358960239844315913945746373062907218688843746623154067688250438443034661855186783215163150119277376428663841802083907266251050136402599887271894739575241695532449055671906147403892641729048363546556019284605311352308084887662542397102347277837466620920314324206555817313200608839130732421237121201540165466859556315208246423583061764078823206787401642449876393289937152609535635249454519398268364404402580904170771750149601147831947833234152482706412184696700489222407802958690703276868200123774633305345520685128874389847053590127154576423618293516218035428388160188513867490982254896723678237006195459744902600065775422069187712294593225839119169937067711906514226633912963972987231655938145873035104860018978584597819629870227003062675423440735722528713670688694568516908008695778476732163316770588544617397251989991133752837608220251669570175399762838048033103443973154862389238256336259059567085331831224010355317539809524666912011223337298969950860555107902507469087820981590721242089057142955010904743201881198791179752555137965748149491729578269912403575138440790879790260886289251095599313248446570068970580723443788044357809869070758440304031210194376333790260628121630042446277925612438990697402894942367013597142159429459272798079901280141710612823301733667214930570338374689620703850230230421091926574722104661168708984566174227936883412909624456059809549195219310972462771130802299165934269537843154673768588752615097190442489481768749398713977000392205466108706933251010027050754391612370552017495114450245889626153324575018009916236165118627073464411904532725309622366569714183588919399742034029527455279646447150315282437202538639058001426785794585224620099526783450049874121769062317786826508855989455297658575078086540900785592802140709926831119782488916283302623669205983103852848587901244326712084123724086638943450245372528646923473004750823019239440043142900172269698875866757914330285359009405033361839452884492172776249539947262967516421775016975587853490870824679854099422356146968172350668722170082559131772830423394347952846651734741811897308378091278706147842442731344328204681430232030976378966363379131524228757583742829866582213977314956127899901377755934678869703522386737323664953110144475028569112289323730740976078340651101621453664566503734112103053929588025568339468545375622444533680333443624006232128581311704440123519160141618706836433822741252863045111572951208194925877521147295013907345485456520267304470262788507483445184550679206376725600149751000482428511772950278766764610587280036201347015289189636625203551882347768013331827684270989907587708268779336515599276352436053472214775051809103103212529505639649405991273260369151692311535114540270597358890973797753836337114367182337387242305087975042281544086290776174567948057421860703343461676247598720830012780072372854202497640879686752019002746062219607546465217427796760469726094886572393311058157913082557522718488822223626205528592383353167804441124152718100621563126798117143820690785342013112474230691623208577033220096722560682886880148444559497227349096408277817326008915016941931902662867306863067791152040151507100884723846327854761482482318299245099815218277939627014846608549198176167996996765503377382863398089085856330058005456377564225476100397872293350967937903428072446221408734272959215579076574140922792005182015388679950653725323535311270015593954138858252163866765801875752726810409699863605038827608641316765827707441695494006481000592480166792391809156232975502349167890106217714472614374247084672783718107278683140881808052100714774549034673778218230752103688375921150356349887758770271941731083952977315807253747286466628844120754083517960137161248600276736218354986739144577031734692130831587504348807862454537229801875089413010274191094721987191480666961189201130653974668939853675155465622553936156629178695977652677788141081538551532363016565921008370159741950636671562099078778934774305345488945807214579951093127929018125598029721181046595693114765285620316985841210157768150637344016276595869382324496373757480757120421757850651687745160029571339271194040855939753472809871256366593616402974065101490249413654667084320307628944560449641759008002134878493843834864720223685424629031977843368117423957890546308651083944682198484405363906113635237958876270463564092460249305062831834198046612463652567891650659822397085785324718025060405417336155135603359108143055625502412059153317189924491850415715491829050162407688698295879647018604711676452188605808484582551995744573425066706544740548260208704087218823854731643299647157839627816325144499810585117455906193087224975431077517833636104161120925498726270082331164289460939994252988058777389490050290983685992500520086505653108658489716763044816433825343974556018203918361081300215316970657550974596574225220329438151975471707258270904363910870434422742448458765830306141880204116950480880227954990838826239658954432819310051261329900379104750189404972213195552393170225158265320345400066238576549107888915496814696453354984467032955941878233201141521331963501353800866075025062397731285907496828792310233771711867930556656593180362013807350490053349265075844551108108425823324282122899020043641893770051509572173166439064634550518057171337131217074014029399736090678306581487777772455225296270357034289874241612304087768181147396442155621116515663216433556208823822559566974038846973228869102672765059039415889605523732910351897783830633629690251217865396658196302498307987200109028048843688875376219197010974294223212857880416753723416104673075120263398401066670514938920739254981171740977153147892632838828467877936455958709973189292628249596342357820333770703497013021340387552458465523915222959093824898533920161404119214089243696683713176255662029489013568886737361726407413291242927591858941567499016144283287997170676525359321149747870906354505452189351284486208599225574887779802674877921869135658000303198255189995693278181113463356196469198066954525925447818269380932367928624155956670225720971105820474176232964574442193290848562422447616336374940850501881476477096821257517505104422386836748650376217536887525827079827261318632363587281008442669330213002981257511811248013811758803704156288625717370875724705159728500593336012855751302059968563623994773999615455979133210495277467242879094106478866155691960621445702151197034648854628334065380329369121403358006004270659487796704683357963921761034709323940974269517425629435426305157864270903547109582451910756320265739329162048282717932813760028565692140133866459325342008166529931468553397695061710999321502846135821195019969272148175293527854302869272337921851114420482176259409518450319258840626760026542003036588064526078755119696196548409127830072958832525716094590628607874464648662808782653059407825992191504100465021672950092960979659243546950830968070670130282956048792516695250444109021921232578068517196921666661434614964521681334243297601817035332386902495862179506134918402170096619401041806242044785956915849412716383541990798873495890844266177507906769092158888804905359983931998899941586268991235214079336387741685619252673770845856244271636555061558513771819222260862301687654036158700562838378981999502564437468613155631612386658024865251832159423726499886283705084856159191693785223830857133213528786461260572808500501814288009468896867426888125676433745489165775362262595283063656687662055189116891354101396463428702668806466527892274120172864379055418501558275136444408582884756784886593329563819705442983064035504240977569900752173893167584435514388848609405836401432674695851811343028098296010858390614045818631538447135477894074270604763254970695694277987357932332653244701835542300118775707492056222472107839025558774079420315897738561839813136269467226436108670938849096789689957976617783485242481355839021924985719481408799671439579919417991024636985804333178755439616917392600073622012177839237439596682072721104173785181304703836097261740175662232302012857368968944475867471302013158905582169105138783046238686366971193384470329252431211683582730015564224371906619860598725298593719465177195538893282699751897135801528421004282162272154010639339061084960188287042472700872925092112437131676057286077184308360614584452023692885604026491494666360119478616279339800361939814841318941635561313367059299994725649977223522607881203138053418279434341441760296842620967774240176647303982606734020525394364202210999594193737063703000887800717929940990056618181852741744292997125689811265504048175850320918422243869437009740030376501359046907617145759937636024799340362624299023592381516151743816196755440405464620274377995868703793082197431051666842415819142200811961107749122470303058325090303606733755862057895583173122367136543393675876543472241311057310534530411190084326002018324893599902178418372213580780649258471829228679721295921920304892170585902058134035614823520633108286887280572027268410415926533860924433980499314383652316924938905439806039977694408556580695154218113888707816563157207367942273069921165625781481407352866993881427361442388343463659732710163143359665969004366024745279095938086669419844652078018836487563531572053793700865477117124657055040604496427133132212880196495622563584060075189866206484615321266092219742929448394204192367370463005427513891301631174308196674936316129779468155986993352939030669204000041440488116389938182790368868341098710970520116107912380710375306872536248725756929913375139094999568839346542835689928312162940927913637132515294503088959753819941347222174852512519336190237552843047815408501284820645214389421491592489639854091080925216206457555237958438071309737808800202755886755185275761671600600174962848433678317543733755419148835166867929855488466747307621951749530020628165789409129127594029134873994618757174602107846717893883821491688690919830170520410694472032848387347817302657898988934244680547053865383189913999763451096810850547180250711186567595589623557618804591253404164221999398889406607186995105454130653864710380161653870853983247307318118235351290973417254021474020294171928481034192316401476546874677338966383598006443964208257309867454230034520848089723709290992182595248354153508829899531443075695929798440504082201989591520857242562661168719442430701895906504242960880258485921087939327321797121452301759475577505275391621788680954969996479783550947013259607543525701288868783237307755808236970638271896258572369908991046217037030925851790511779716300423816362756033284050253709163662840169502120369570834802275461323457139896207691580878632354718645059422073604383332331644901525350572544081046917462626423181992370962795572039558193539771662789871347197747772384666658653206636829906410071513912607113769217623678965226633611021718986207725162674276944908486497088040641726446801975893496523316879273228064773809992227123725160407163912495217073369425623926179248346723052566955259187098052713670028202847979978672024787298020676138315557702535797084815812699787496376216446052095061505577830197607903234102515880376070474891992075042948327589237318467513638501749176585246573381671679493526521939661380616698518871313768564238689856209520028698571185902137524972908825985196431466005473108892348858754361607609427549568479726624893697727659031659694127160870916489419869891786018691230676479574508371431602538070620775733156919709422727279543951353326107605101140722195239072718680137312913213908622226148879933148347841782513582166229442625172919656058378345806113546811479839229571002507730019835830907940933000522745081166112585257753841485313746892494570342292723928890188394848977879269338524961259492385135459277960600041587673331005800180575111543455915451936360237731394981162838008459824393419582682200777817040983862311319008774798429780796529052538005072174340755193293482248412545344977717616270113148238902331537018025304513241169689868620883640752351692444229334838742075869273970975359584856639559606559744457632723289813460083041273956840580283891138095621858942737862156053647632111588348888172112476387600031981312985830184865037584205211395815150064389212718928529998451869596118477899866771085915790888867798337671329335006256756547158420194520492691139029985561809463121962385294993367737200244600083273075624050568497546924842727897907723712591338822176515325038949881129390980986349898381184497202388465856455876321963057317497498297629350740922093624192741551742577545050177007088069616321427222186303325546741141708201932381029032852401572841451628680557580548796042033580740332795316267820440820955742366243316000892074121983667431044803729701298422867918685718441515238484638672029642567083695998149815083295623775817332451845650348815434785348635689009984375061396892052465426194932382044412286866199213068459855032081374520375463249824227186379240633625518417337696523584319958485038280220675008230997572168335907430096963611378825730905531911536076096051347569518404675750791861936142467058105810754374830789388402401152411335872002782917035414941886732832648581449020080357895835325585694655906577459440434642117096333800670918072321207409526077708438202563039975524646891568423530182760655812541846265477732234483301682161806071953531445805005885321305398001473634363748775100836962093249080435557075177525145528289457616873974015069954246478222934987898428420080725450465672242143087256320346096273201509146787994968135029276339708826209331063558411383305422214803054105809332204522401567805995101253682698104242943316534896203524983111113492686715781305749428777515946130654216612559770713296239282647409548802472297891039690629187302261880491799265100116745106885976836256912788554968376076173240948845763400871756997225755622768846733476904663716078876768242725945202422840851319765050338022301126644353406380440018894738016475838846573631334037088123019400009262953402669956818311290377209427281384910997821766933833932424278480533624159400155855459473249541249652841998565321101326427449360112390306864907940758598261670740012347172144397677594527176667742734669485842616071620593389846976200683129009554600988310274380799770682794940312392080934411196515648993216018638656974864814338637301417353979330978493274576908682218154677517775933730469794960056601319799831651053122248878154984927624311468661270468600440267160282109713608451768847213896290844936209021661377566526934937371376904072957351328128426017812679619331147086703258748917139352684194869767641372869242887223431370593190899963589829245402475978076930956132893993966186810657640365182977900459227378109301383499881084964809733319944360474045082820942255928417661894627531511823151971223350585813976850672601986445119267702943761353093459163145230049489485135066439802381756664986976442437060432268338547025588754723979058960993012209119893449867658601368877929606319955015238732470625059097250280432230242717823709862300048637482029568896058637163360105574277103662801114135067118112014852550874150556747070625709684129309901676570416828608239940959532226917010770247048423920978454178082706073539224770477178494826858452476156660777608343476391195276708265879290902844798054945669740476574324646550228114668801574956689185250038969826854955146187002703527409030215792786747079044679445207489636406776697753793507001422056933647715389870104289894873079953699344032567402318494088281104697875934755606811185163521124935807434487636760147384833285773090530896472953819777427798789002958550726681933302616851824221364997354812365068535064036390459387966909663462900062303889528168170950107831092457589888483437984382818043691832230862673650880774241215445768005834233967527615205308003908125643011804681912616901335058188033021692241396644610963318483607714520330532903029407202266810807919569116007620605796096336490481383348193470272320990862390261156072000751660897176790618032379689445163458482886897651619247161585095518552125830790748839188592417936776672840906638712226310807587431378544078671176010342460589342564652995713400037054055742243536146302816440805694294670486404956553519984789042499236848294801796037268336741599173436951855254969357921795759759707627379282699941426871576003631017601583753191323741827845317690604968773148745504380023119435899933917207719242142923978469859129591451990105114212760773100169259453153629641948470298468654062667294427257754322767662473411131015013376895935299753463737826032564518678388267939950828208858703450204572250636226126125952269013759038075636924899336898796767349821820595358850122190841739797217851132443971741848873869021850622813373855042431827316292450931591490941573542763213794391236289509669570326684064843877871551932840242409537803284261950713292429273354367226092768308400716972201729361334742911393142788826457472731910229358743353187887276927851922664550518030879790487870110522100935743543386384392799455217280252654852093719166934808645820570142463412142520243066044998534163287353882606071738549259042124968923967565248000269638594752124168876409932420122625226978274269089224341455775557876960578667146936426496345513574599428292728882965553005646600246618787533314708632892539132702730530732374613275010291498166463148004950810742981279545590013753663131491413904923749459886875205671843556242698602200699157484089896693848975551948824799049170571804474906473051549693519873499221117823131120885422895549742978242209441358258763292415193176579891847286698555440206907042650472997035882021978544807366276296954590863618431179706004444906962275785787269415670475704295646680890986413167941747861616316958824662150736569065382791914312598542122638087536523633548674363794979516951728455972742995700755278664070036989348536533150669768705790767183142059058632579492871321518648281620746530210107209252593340711471618296519342034308712152746416794138961248454959386067380313890494545266154362876231713912991101987512702833399068493811723254978484186808330910346358291737449779077086102759130545649044886603596181717531848879759478394802918282704380332449499842997523076583668560265970342571475522428184297855605190074891235264076070609390048671275724242961777486869970020518143907356848719538578691552044130794804410887707963180306979920527021202692069204586044061975298484326996066529583172112338754077177129100453974001845753528995902917782027372841268204950767997828224128736584114578642077342007812610615938372324121826066287881543928317526346365661089315320771766001008884388314634630630036993861897734327240504146712247862261632714713218106578464792466957218785057403128947400529093917659491787912787464606068792525573591821641302599561786725174883168158810623903477880980473571576937117795441069347752930965455079213562552922266069870772970956014204699339757652323691642858628729342469924974948319935211881253903203927291141454670733160682100147912142946879280001139488146150649876776413923159766849356567620901617959328527080919841617160470795228905652309158341094525036387852655376235817996814665440108861676520741175821187228359492146486185461087577472318438789777780764064239563261675739817079084145470679984129826477494930725651703553048572978706084495456751018397106434248314167454833261274657707429677256962280557390239603679129085453911625317378170825520482076645228815060107899782989365786216112368528799097746509768005734524378138821697974240928400535474811250135674717242707403127957169464933804963938755599392592260764680551830661320161616463518690760488452778587934562929974150176823480464422647782977547598973849170177411837064413159827290092742243914096527068557030755494549304121434795886354310594163645878172228847220488310273054886320342071072962977118673023589690544728410762278875574516952005331987628928541471093777673357321633153576942787294308038313424048082589855907958427458525450139984792422266027018893593609799009437444977920643464006299434982404662676942311185101149785323152509625098511029323931915420295110600196731309695900817329202070065430793967253763297029202424108772506290743323543614715545681852537317214518750461186178459264353564787610108448669333182545527010421026186293529872794187533151376718073095870415164125482341538829651197978995935451798841986093053921824774571300285411140839746864178149193432207556834256876584311639353092691986752008642425055520593976669151227854846623519440438861706830258049015196277874542509455302210834913831772106681094983501506562311812467224640264035211397774151218285514331899529137545966708828431856169277503445581679586800894529668112372835430326885889611318416250403999931442521463867646518796082695186634859385309007889961652868143008306820408690176318395717707327104515395384849415376091346489492443668119357432506260036724442536953653630476114103026249770016706711597259769514145996622331515809897591992688091745650083436824836161307076942433446234360491220669432574281008730441085929673143988548711492593823733290013095424455338196078343041982013993122041967810565852071226561858659898043397032204600033474109914613374126485469513155278529702315932792131725242241113991757650610043848085118177826456746567159253637035610172896084358630878323753513771631999014161686165986532356797902828351430910048207853574402525877028221213434337039005085221225666705933944555588690889271064246558833672485473418702600705484501593717970885429513956588879243746761739214327353235128212147677209227736814007789499639356147129381757192715212272140077219155115443355510271300260636140054669689015905762991308174944105705550224083882324057054728780702370100384583374336372242608103805569973407198203953091838695012383097045039276618816509344527766227568926660000453833752748236146946164870879763291428428872597624211306199797381525546109897345771538681597227455508781715186944209997523073419233180524549623640969829151345639975490896390115969828736929611163013205929972502529981121368478593006568882448061636366588504098086913535724439493320148327228464171620019132806985516550377848650839975341316789373704209059397378132638717192893866511695098042761145688377906721059934812389661760256314986899162715226435702081836723508799191341110570645512452376429023399752854365064281684409053636240307280740704826692586326173628786334073793553715528984145009979462198229540897738818188455375468308131318529512108214708080955311604998175102970390686915137243289541360018425650307296002429608616672877661139555498107448152568329638790895709927152102926610110373543659723159170966387793309881301492712709335884025484619607457827375516346711433767194636049436242737345243726468826689917463772348433601800861377466596883200640823408287876036820075873653533186393462560026247293254009027221560928764623434286392921350962038766490289871424990038695452361963069324103823790304645976912299559621327700978630193309089494116354507480996295004677488885920196154884419683618457878790257123594555827393407801897472017095367531384928640941602588452993597835678593509173296110827255136234074622276135400395983266024903612698423073220195392549840264369935850437222032992495896121534546508982336285069237885068760529287679350294683800218684484552115668257740975497503927092992097038097707474902573562738611828393341408488516491907081330020762148205076395173519531994092916142988862577094852214165020435722135814653513084110942108826248331870565928151422606088968427923471935310024150537473437299650878124530472714753605029139919466395000861269000975667502035861624760958888975106235078534147121895012453469329392694686483966384622167722395742836014275955196469653038392781465003576576854744931312401423936830530245124909765408340835307061819436965017330602417976362471553564063288536817932715355090646783191450159137334074510700281427424259384245599340508223607792664335877006109560538349504310754074459727467501355051932569973162145822018431164120607963270783119423431209146781387514185982071422371051394035039400702712693036480515980069748346952529641381387972900008066148315046413395534825109858660743128798846631450325493618334631918546983656789790568110471055109765036793355097894824330111257098623374061899424131377138131007721314204889319153422278096977093566965400682563572962491343619043694175220516612137489907638492684209237087845291411713043740979276673136715023492451095599460920669412630723990647939009823381593409867480895546668882170264638365133883613586856074749594989378592832839903975155971487259794321479746330719734716312856393832962841132479254968454145710320439753853295394562879673334222944504410124516365840229257368185750636874144190548912694604304490931552084118393027782252992087868077846618058702818780180289746289892861880501376764058581547697669033383131680869112196838625006976700116059833037952972737502905858435648630320752098183526119147524416842633772469888387865303362014810789359662123481615067340443053623911370275546230842834179621175822589051465306562839424092068934238977780343427743284675271974929238371376754284893661751967463289710502701840002878813771970810357339595513664578201772968398774360720572915197457264980792955252856374836502693181005606969229751185986489297277771325092745087602381000964251134934474652197054609699336872208330932107486500126125855486516475411432424326762570443838869816753400244876359237038981464683217844143118657821244703787385122316177531311840260072357607822359337059319521123067521129415626812349564600179226941771313810706022220164961428735074244513869086885617895951382511275225825301450582906268151422543172920392033633710830530524987725616353257917888702823395356426541883542509923771133488321274992376638247182632317208780619506905662185355731034130437713766623447219962072697033721593319355402236527160351933304836624986715130131771217718584232133433769754125120841982525487452103538152732834336829322899891542566744306552389923396051624113144260264843901712572432819366392202583717839666666413929481788972990381430647501426350377992835604069865901150496113593164644212611544241103330364013233127664029985738573981738536160609206703909295309375072184524043589913278487075051005629041951771581470200043787377036345324348166322193717830685442972298274976667973325280543240454048494905310582014876206004468356380998068795116433600760793211922889138691465783148179086206547988269757987303162199550653717265092519613449620071950312683900204488675194788028681449127297544368820074089243406573631036353043582480349090025276515505537741502705376516250829445154058570449247173002556195876437440009974790695044248948925385177202506969775692246333474482482008712437366796179938969702483293990715403236667206021059869551800210325877804884995481004802319319875694235868680537256655691698865889719998514500076183128547997281383773883042555005841797891916164614038602770417331602830617883695497411278364152496173469474142811794938261384729669811154052762562038731524028774480307892999717619597672238949557760992452269741863786644282317850054049577765627217677856993428827835201229178810918883007903082235993723855918739348484239403111276507759222283671507811874764167389780907858240917458706699179885975111953289522941498701649050240945209547307515458991124577836172009901672669894730960568235943195760899776410593096229822548731367193588485445279294845983957904970867455328667929230637166099123871899802990270754702143868437795150539290983775554465406575658740960705308713556154603508625310445581729257568117988185308597902536988498382685725534448352956744508645950922831085885744640545929697180903433005775555732991150940280011379438874911736296052765613538894297244328971146318672765689065125696840695399229251638718617529442511322473309277988296032404028149364607800751057882305198539869739205131935044633464380465715197449735915144302553884489500416321635610341511845264947155968324382373171056973301586431779378817212171212452627349185620750185187142282489397743771411118073920803223463180068185560891225921540741960127577903364057289379179365787883703706310852192134973440720518464921681802698152451256450824423404469319188098037790069983064685587739728432168618459236601410391360391407514429236464691818467479193812140538923280200644412064454169325230252849017812975545707959982372917567616453521809466872250315444617091187239128330813796882488922034155030630108017569169099063737100944889953104764288488511709766341213454398004304507281268129776133446394510901878321427687982610262747215801100517514608113488695219340630925964386890193003659388369558757701826435422113680398668470335935080861248019749392994896850929041820071377392961273656501427736355092487645190918638886403229724666642056815587429714605156654650639357292083726223330347122198489293031537367957017068491223045010429036969484010286108735216184922276537328810694297658481592058483071533862248760644862429188587558390227547388307687826936933858765271849478035365756490478149627418741669047874130889568411691685473043472853841127987006340361824186321272204716498670910923887356746549489996973646047267703971419474159913825989959414459195940617074474688014297342158049974017455482741540759328514416656652674498970473594771942871407980801874340014114268752414565817033241654192721519466489783511012940008708657891119727480429093653562947283860001818797661836253077971750172718927418888002799868850401622096078539109166049556491107388650668209249826694242692759779639807131785042726967843332180082472321903712375434020607322722308801035948172844405341213674993044538327476892837395136271133637112415082980957696472582976293996747416364674517093917320410189494783619661395126208940482508719852442704072437726623606447545226505472250600078872687453934481545590485342519286222922265834715634601620362492652229605463900474234983473884758277073247815862042235254156835899873027866193448359251774163445152029295877553467290844195611918420466997229777922338618106133793744127043957608065261647241757645431548116690654961217459674536259013246455048291411462474946143183098070416126314969311482711522998118603687012652060377700359913598195484154917321145547470571033175305682841777140175619372376412124823453536799165141969448188698847060484291033581797498637104969667376862996963792854604962930879917572260445812644756546727910227797395152386150581987419889378356477717808363140091025333682558741008907218710872717600340102230100111525381791515130268814733704426717092211681149507935741125252742331641764700275747685700356672718012002474063084347791214687188183779970254595704247098720222455735985788667260059741329324936074387963943672979826416239242625373929382565987034602780984828916091780099200426371470206412337454172936658905101812524840792585740565378652514345592508762551317636492655503753720804487433646799465702695850958394916149200093567523339813756041897145644032905415020374201951855626633237798767439986647148712633516492873226118088449029306805629315137740725526650368456751845222695382134925915686813309247567617218529694368178816158685436133721200735585373003478418693796188139058310543229873426222743483245510723721758253174308492208683716957778615540132605006594521318083771772965181084398598551347436645151125444980652324299892108886105372316382557169326019859816514077255592745699355773235771012166993095510956732984233804730341297479010751203177304121613859362872573441625482494608358086765237263586682911609285737136905395225615965292291920694868994325800108851730886811708240175684152724334349349399650046144556602050329446839665384812175348349354352334306053193807715646728109883626830586589257869563370749161491296998063905738220869634799050173144651733743375470980821425024746622010504781722109130351354781927307019931348183635752088214059087106724245892585741982282798733633073229483181149833310123817036006627422550964677448239480191464948899681272664632978184305542890374817647959155064102446726141416559378655809027535727983061478596739636449316898265293678459208536164365892535432031822366139062326516755553552554311131058191486965516070168066134015177565274469721272109753185859281196914075100951039068990166065542410051584691159459855456877937183615193958436162887015108617412214090863074044293430323769392393294371472210277041464784204344093238362638901124903385312257576884858324581234171908083878039609653298774912151792390839881819634942898354158771907401904902454911135572025436863236463516794346908287092439534505035574985925170318230358045004194922630784870306452927630140103550136410377090905667122124200502716067198275488861935276814030989527173682711747878791899237192640395205471095196855633571328677674000188845167949493358505294481805479107196069215335041499094784105683449728300526351094220326995404299039324923296997515084266252436285809189001352688935425111356128003763804497536846265439899200672374743495767001825665035608672274414840297475471976918016755485672031322994621846014944767108518538637879537687072690319528871157296022754890695768424665024585714295784167428072062776905719098380982114757408530380112400061548645411838379908893187676302249126260174849188558494653880209351020492955646344639791113500424946579914435887737141980365156289294625207197385852256026518651355540083140930324297003781027468799595914301683194053071094541198834611317935316308159600332938541570634141427184321889946260497853982134022689299245863200190162780900586768585514232129571605194285424020634067941502780702394722050614207350522312048698654977640553484679668113422582377542377615443637292596193935630170685381391136082467803031120232232243164553426145217566308450844659747774178727973970143301381745694650662225109687442339052324771481719931295378181199911316547407489751657893139631034133028612320230560953287609989447950225810298203448135901572051478318042871614655731701886283573490623480777590599793746457301227037213441939994613299338614936438347245600728673273369993349213063964578215736286700622199943077938864304158199953277780401271010356984563805424978689386802631951285433034075515414861225918800983538450588600198463786230839169588009405928038952288287923853273892578692217886474338761667900282953752634196374899358415606324698596000531217200524436748584765987573542496983442581959407612197265412252228583135955996935079607160974914096708325081142597642745702658729970296272691704298480243864486835847828587593590268070057816224374558648766327515388409750324828220194711108455945015212923156418038937859268243282448999010446223979610875208924193010362679731323080337838629541127292458533178767338055147528444405274911704823031471196388567797746607444001485908886308531344800579294091057975574491518870717425813765102346938830999032703629569945912393278205749929011578708506802950845362536665140643094981872589506952929493203131467001663517810507536926191115593524145429540685842389979302386792349884255632370960755371607754453675085664636704410104951897725526197309034993133648308884303046199499058060684183426197827992442790560623435816981652742323638292034944201361331087213047208194527611904770040902059546044660966476644338229542676358127839084850641502692027158927913066353529355509570473825208672658949138103192743619271175621562305875262763515154567576427145510212121187281900891934058232119171835021608868565291457713440578724628525115420562798607654270812131319079821843583703938954602860312423102181154888803984953670723230084990405062007724104737556815263369068932746593061067167158878733241050280580667365683097414225196258451763173904379640855592555349553788669213030612221973968863987119812319204496758610826346262045209021728322793775642582776477967340347633273965634775679499856846629097529824865641666538008337905619537464335925302664028824968996448704837536887151233665301364694708558972788587807182559925305801962066613684131155673729584797277548287330555552347758879340258997822023315712810753182482327061439755008317987770002123820796556128045647862554648953046786838633884039471459514866678959377851272072864201545031651158842656203253681712838050220827654210163236794099333104462795335406537434719310172298477190673654772959778822494653718075265273788129664062416623454756502400620022047979334492726482227603425518602098972286276467538138052325798574085684996908976738818301779653951603032727007188051681945375113032684351803289871812524446912652937993005354078765858896728272075746764251091865867989280393756520561901716409557159063025824234294100131728204516003653848234291901485616250522505990311197403702314960130548195348253781696009526081725303433630913057022629962303579788018399149960010043199096323473251954931581554345627388865949199565016683765425428931490074010576015580986296408013019114190908221102547907254108280632027105742849564393953519775788297101794233087452169571892172185966641141791528793566082035360149918263783647845764954066396318882761039159284491472254577123193309966668358486903650731776573213437996993377550185671529591111445926704147299086643068021607096613162580339880551042963223411142120594453331255322017577854295306547040245314162594972736368304335482806126619654456685666526883222831873799151312996840212770720434322768310177630016341253224425810426458013829440127845655606170322118245536249967886423205957133928481877301750102379342670050794231875912500818146428029665372529112179071527457886519581847191158898390361594865323425730435081700439851064761510600470102444509202793371990382852573861158971658753793208473744755416202633691473868848072394214542389531506583643896319834001305959575829620406325197365422681702691386404376478361420776244156312179055896662945306588664685199499128853178392570760616379248694642869529514828110471145188444542921890165327014446839883734277483368494103130859909317060495019086587864757791779020009428354315126890208867322479807234783746466712331074914485059067874720533958561983402528696014745924329566852096860360756951317822801562504952486020932695929910854042065711383200983449515987888665297610943623580916674772104981110870680753413298257402461773003948528212269274041543459645891204559130701049348665528058736459645606670557824842882180891791071776879472603270092305921622844377665604196308351396741340727335324755363904836385896681340577284073779806876875548368497196988689713185327025112564656434521068218906488453760136609030564252405762686060705446116442638057249215657062922274910374397592448503876993834094549852087105336337795990475512436538704685902513582080293609292519932030137670749523235482220076153373625410981867016261835974772350587843167059412163433211264172323400563935864644757182385129581493977712123062515194374468000893839722765389831868982102257059182372101310548520045628313250964666512218130644481877505123288971020020095250482688956177197447665348339339031835072310102590741865435684402422681365310209180883577678632930489205087373744458901033498505750045593320081106149855242684877847894870299337579075829637770101395169441152016737496638890108914527456046529503973114712766139013568903128146665190801497113686094324564688720734021187539912583458833194366849970809216437258582623095996812327607572746352984988736215090035882845220365034355264429717318772832598306036929570875127113328937200083557754679583933495590738165147968634682105459124244123557866741193267027410633143538890039963695618779447189921920037477479632142107741319576458329916871797804430091574234373501955115435440038916367374443361402800247727017650754425272821464200238092624082968160698894883136765723331384609184427310058031872674880123425390713943621910669523672951749624795759700309518927983154194909978084406170264628252736266855887331139394089719943045455781614431336758520079458350635771993044719340759974652619203374941116292138616133230543459512306406046379039769805914417396294531286771291202044476481621121374906727892623244399551241226246231406789938232253357019837668485917115302060036351575737967611005376552686857963173654585691679138971436621780398936998528021720557589317405463014651406093568969087837899173068619506788668482861096933312053907686731256301771727105905591447626870226729567234935422384348455396266296966881912807397378196314276175927427365404941419507410338205152593542608238781491818700674439559079024098553653264047069078956115323156012482637768881481207357741674309986571161462140932471574927740075440658686486955016797969822433894801973772116143875947103252773560212125832136619805607961827373251311779044251355280285240465222810848315767414848484265354889681697083417867906565303415741327248596838327162960914676070205516061650588709879924057004212546401770344167970058484550633477745798589602708805644825472613493358597429010378875463127140025602194871501639573284135916965093029756171881941819860598357149785662609841431764316722818908990108342738942945044382662757821010839981832019297817880829456042142114865907541828756823257340297350290417647884727860541114461864931213637191267617009915775644803938424217185415143093290601921658515586098245411940571456604218044309017014820090461259158866288288102910571784190454183347883267704204384440972837965134746672650681944051694974391944468696520792828128057375493956964647896999556040271312233562362256251074164334163264976181293122954961259752293508520961419395448593817415788933019402319283700605540620445234004561489110160961767241188735223903299099894652815041371950041514665394419691582121250829967578074636921221253613376574421454308406393373101441751528429858871761934555621231509194158153101217431158897282409673801795905029014246430056999505716583215300772680329581983315127185099194664205867801003170256382060941252331759796171328110784112057557312822414796633642752370981793044757566673319801411082879205684529795602036567161698290383907769281279019115571801674611007225944868194012738956530359560893467573798497423888467160641933495854180670409857738254659248596529576411964434288378344193046344249785122479049840648316319428066099472562882177700694445590592546945402826665903900045530390199317432994804173200045609645162534896640601767013223277521247019149039342679515577287959311431656020057137390185945868481280079993984479557661145506861219506866373540233796896543364243679914491096625436660967826061168192035125431271442353359098435220635745410518342377467087907903999712858822355652539569901550842952794694085544337231050551299784107103789026203381448795873883770445512432861440170466579602533189251010069816603988349439944259157492723866738267032988690909161274945361186559857617747070077108560112513378376446059128016628034600187160556669761884007365183100257864317563536618571327290057567192881483583629759805060451917956248160294300541156101149377940776659374448977446577943803567840610204802818882341720009359545805801890692722832272038343214221342767768217073440798027179676364034558217143602585660756894053040093846998723525996843516423946719604604963163129793697634020717168447373684293757889537794773791573227488696905115253489880930683398402259963399641396746979181468903560394756299987046888219931494301518058607604249271147371725029786308967971870416623832757408120179548205664584361321554025622799721588324691874404527687203318562123596293859100030754712264428159515945458595832429779005060495897939500240630407201856457091611821008469738577255564524290407755783314138483449282595459533945821770151368391748121198783868575359272062132280628607439789833733918104622499351453927526914583173929480575418096750430393469902338978021510897836416627061304273593702330721508176671050398429763255566169207735775407081220190531787073145259387034389056839821112114466991725572372595525372668480703755150406418376713801918488989821533744294271571363633042671507634267501573698924073606226845723469878668670240126895511938397550846967111559619729685599804172684409371026275089256735322063923366264129657894126382107448317572404495521978595424810655814755595784195157308803162976469627846945211714640347529142261456095173750855063711780695984618022262349146264043506752796861184946094434705306547194645563498335868566722309295096985166675242106949180663678871878629623975516639212934746531607932775609723664319594252199761733866414358022012123736820125078877485330226267555598992404354869150018513059679943132942072510540911283777935959553348246332332619947030028824209015259763149329115453876838746116059127681226449785012300008738010286621820489029628152080674079509433616435710929744596101776738199827393514752840535698116563230767332946932209685328355378683197266275117564041687592499619364273692907390104427296875450794216901815021023003841614319311783338751596024006606333018070488055553658311946008682775851241885738828368661358695590666361384655740721471072975535478099648765040831936442390699817798159112467617684539918092746911407862268038411950529704091828030434635315276970627411261548036434515061186237664967279615697386787461151923636248238704708872412984758417569387172623368895506822280386364825709632236871441438992602729773167576866612083029892068157763645301571065561579442888711936307916432447473482008825269850531771669318301359997404365338665561417408790050163384982954602187192584216277233896861988450840174417460660193550366483143649955408932586239261792448913402190004033614108463721200005013879844392953485799739509865414034376358697152908275667442896465259409802668003483660736508206824852851336780485340767799201700646523852795128640070159897454177767851348567063625403788995594101039686781633832642308737762010688855219191159740753103186321061617782839242990909898132046797133835531078221276912610729552613850528265153091939851566820173340641638242128914162863120830852052192066415023226655464025321149973476779103490747475636904581318397027897329794309081821430631507687931772415123397203750658407129044964539628339194767712182899281506203906228397694714839013302413734093495502842683231378114415577498928390506461002061676140481595623667875434189596759575767205961042900768671716170589920137060580060421053217810072944254608995654171451304029576456946666559299622237556867349914516047850144609211202645761537950409925410372948098458709564507165102205297713851425499534293875626823784071116057787593347470095069890233143396003594014102650969953864398622573217295152608200924752564477403959598859587782191043258561177360775617553745046375174183725756141373975363250824625460848498801165347679620283096754049635054488602302422190011477280240567614930200542464542371745584797890191390235647660709037834432523719713653489835549370863839351326815518687699251636039101202394342840913967852010089499720340141605144710998652114147754346400175380947458531621964935711947532684194329698797094757370426827125959430145126982140312346920952478571367201703120693737407839121597454091632064954299971159249025436751662937565805034723427849257546089672893189771246592322194284653979764950932698523150926851652367675520285419478989186985831969265501639144626078410265067963808568074318038870809531678715398116149323998335915681232769671064983716578054731181556461096759901452548601092766746740489864649096924034599487057858036416400161193683090143081381018351788978080009983941101835261243359800596670335910879450691752464105420433506944303139269196426076686890127970831153003941128172692664946301683669918454088428333800608294225700627024581476584429467201947183123165506310354588718925932050018064955420294764844314830775208894071111691861846655057754876581208322931085219335564373619291767887262226325617770756279293240601480626697165214627143807131646800396256248030333170501110086711051297045848545495539810918760942553618123045992440838151225873607255019323877448017050130401520875451465661715111212889782274848483799673267557651468784718208904996563211723482873170070007091919252400687175028816488369117043374987193621387092589705746117651955323377088638397074891549505860938550841486920075380128355222988342727619924375173351210975286156115939425877180315440368876721395470609193223699173586211383094946867807406327863337836630480751693044698515907035125221721089875699891633453001911393007282321481336933335446972939089749673788028022306654967146440530215745557006666291884798880414502513743083970668345181344293037155998041155590079938325072178699165839615012178509168884722715259817203817402282472628752153503946427826338776397145191357477751997312183647812615766980024209716845057088361204920751128805373763774949780902230696383553442931051319837031593747612305560517551347414532715305459163124059184218851299313038183330203953757375221491568872159204204569557778627958961581825610258342933055499276236627617075918009984687770910061901121315562392979331540399339301077860015526608406004655971069524947653247434471751138374549310577697628856935592423720477250406929331208147747783383402466669466984051488609035130727581327582046080397141252318849327277325560003435229965347454523650580132776453921335236405514695268378083195520345642784288468421155172501452441965168499459207596993338987659146171735886994108767290929315552374192648989199918268980514585459787481494838776167533462067805926077829547410303580643512858259185893198295514341584719553158280415340920564690106461939861670536205549531106360047332184611885973584884202785305403126445299135894478812304724344098021030620841046481837703259064283157756992189190409840545113658598750040069662193727323986575393477137943553222480626842472439087249497052833041774994492641968916188013599539476809047177180164581686693447468121999208393489181656147453545692717998030273794210632061528683366505405980235859092559193006075832651602500661886114932905373552487461373650610482495480864256449075576294690731243585562100194064464532918612356540131356962864070424919570265622952436580522989551215712640279989776869876967852127138047540383241860235113123584876262579854814130161677672638302127981500992387675516307372016228289268260031543834977083296437756711962029435829140954051409810513668865236208208201223798324652839968135162357697333655750085048244119585131669404648354835313338581374646931004312721193344918377087438760689640425512342470916576151478821724926276118593725064771718090569867076736608157882077274291533230009518752626138023991168888175056636492286522439709755684628610175461520581853624309997296444582562876274965431206512951723512338642065083218341173331873063520145950716075165172346690343948771544465548706280774588279996250257714105442900239980392223243821694106881348290848056190542078774142596697333505181391890031633234885048746952734860663849585426554056936069571349128697594654669568019624070843088696922060037716058169087560030020591225549593229649440725106570022782225421880869877137526080904550449152544529986711443657206143859349796941762584677120432840958677371991227181373745530518429120841182725722828120380436933789996359082820360812841676579809004761916378137271927163754463971440926594654053246104734657357726088623377351042862539644158518555434616389414872293463231013901551015702086324201905015635043564982257082378528431121667250090421010254043067185974506529308282663318110682796163552071438917600438538724551923490101468346453821029952478251211714867758560198065946012045020447660070048796032170551086102547230545060757140857079927951257991539635618244422312190969513574596409064273057810960583813875196796997421564675715508482872190113471024692356835589564975910535824062973726731036817532345420301310922723250199632453513163133644630402562296521561412868873630040951620174457818145504675917256723887819142322223770229338786654478144340110595501428770089439292864006461367525614194729410025372832124548066541920156122660691018546898925819150895177703446496208310473949296280057644599437094151789672840237176368990319277154825988155635534014021836420337676198197983056664075730537975614706002451942275164672299024309368965445602139143176245785670509111213589286913326097676672492443632639241119346970300375308773584248199787704930811695585284502183726686259333665084155153646649050238837604966242301860423731141022664708903157961938155047876353830132466044894609781689821865773135374343318316052706346914607681451569542104938475283399960780162975425334189122395791905587848666471324379618419030150900527736915176814530112378804010052828843136078843272643762433414667321691822083098986843401865569549151081654145756388918839183665086544740169008127239235093609977357930379925167454012398569891146919437668896588539957212795258151292229716308162619755468917840785610852622998664225366473988198201440081648620978644313769731693542709227987712547806661049770469226630977553302050688150500939828792463246185147177785489731710004363467624452471282250814161672603101080823635014436517285431846270488689760142791942798975930845068147650796104658977486758455753399655268368660923143810543567642965377683665218108084890836891621633647014215349591722497463313067767730989535248363340548836011002755890919640269405806830179973276583292126566485734305990032597073343121711198020949536243199624831987015856689745672715839633688507463355919409670425030380132642120805409827449125336138690567103207238508736261819683836932003747160743073640707403265858468841582505990607985281878383017071043809214969891169301323410976471253449954514907478155254717885486130772792474252983340909711439099844658094370858184133080138949882300564145447498346180927207677415733844342639361524071777109744111293819290279493982592999626270928011375563314404435191193198715784200536646411463677760091452199532297285205333302379559915902773823126883316120175991252872199318517744331899684867107764844477850727945231828207732509730072208969249112433667344812872487945513586436035019246193862082681439755221047634725135950324315467527067667754526729658553103613619693635688477144456209118014961726274314626146382963862771630521683425741500759286667556055064776845373481920135505106280657446385811654073357791624491286822439702846442909433714298913572368383828789088550133558514962395498802725343262779620024562430101888305935521507682752112368494345731350189180747939462496760408162027815812210640321418862599383912142063393869235090680388446851550706244398195348165235441670157089606659028840207550603374927048195436948825125518357154524531826562169768620654301194592276607210367944381342496661273283920837714373926601728973934228906798161526653754516297185842700367463959277526605682602390485123858412024110123849941642398609624498853793243724106882097681299393907113237132940282979697594729224414407753000894136637327477339886086742632633775927166627549878947107915065615015540051090651335203190172765299955323514131145105807264400389529243494331444184978262188763733598179584899295940215172855699918290403979703728623175122414138258666509846003734916008859388731987346576290825352347066385980228567151393455372275171789249341133446540303174440416978857767706734200338706649050792644709658848952385334518223157836168713020824836285061355196731934032140261904679358922836685021142151248228190111312868113952517903851619832375382876839729496771409021060949831178591165254751184009842391184579579874927432869619681012460697955213020603246952044651766781502246516802148860485470886452303412454668783945624887752315277419080244670290533244586819800774891529738447466810341878104474595894401268628468909395233553444452464341180606602926017978123471592691330721649642910344415517369827489540731905032401768834542407451906103762682750529162963282267995907723390603559238455478957156810182935360177407793312545375269826802038170385109715230332329137507569735152706472932111812114021133399113021606906004052984016539173222353121995966596993247487738448362636397366939279737620698462052024020706295588783597513188283948088811149779641157635022517051530287373086110332996311509353943059088913002743925423128280617555466674890492118232024950962527775370480041332398445492196966827014707084510646102956356380195506039928479241801190543757954396436800854861587856236635285969232031374976818802854773907660203387573103042200408136485354227242073199069656958813797877104198158715252612123207723774029141038506550736438752502361633332068846686500601270791604484360496689328021930558684592095560027357587263350361673235887313424622554368026886051521870280073152054506683968495528362305845909290821211683823227141185147081540897696405955808779938039100990952431379796138621066557223728582140800044689399927884778638436129942967344617236954434861883133757276001086794843756905329304891629146756828973445826910395077249462685949778318986245024522532926797862610514007088807732472369260726595883788692979815415524622373323017128603968594067150148182907454325306058470202393547672065345160234027165916202996508398638326848830115842841031591130146117819418920063524436868847924123555266455560946131338163442172766390293346305971003002686044071355931585264397382293478714049347033791915565024406751355423774635030259698419297774854297905284200437943513581200826248252207841448304075047214482970597629343529247502141631039936102647282015537354704628163218623566414029604166650325897591992166088315230339114931825564081532631790834649367520705444813236740127076117520054033770752283246698026477118251652420215524361736235205693926808955672649100193601073920133222350707948076164275637243911135390131632188356242711775466743539742710771238892681235008641823758823308051278246311967770046502525542478826001682843033895023944522658187948425906389453479454699426372303011296738557689995472805770157963845529802004510011590901480403242865600337558194125181199515092769594374923825004757544580378114673283387783312409882117757073987234127319440147523308439304012994849712129799817486750321800160587160350446639579332877298588673662880108354158399795762386074731850615662324592408519709771517438390186872516415401162680397017188303388516363829554105453702015410137367574985236580815268524611559656474091981970082732005964957093133067418032507494478672605389964654204217830962777286770485348505863399921818962122917933313871657288959118737280256292907414803599516665351468262725790359768718828807052004163980705841930017846997643162100244345752802231222363404364591633237144660342200351072569207356247801200720525729972971073898941491022602846356967986851195660233830724015210350286522010797334205195303126869563052201987375890836480400540662913425455360413177712820175743595817046774504820184438033921285713091417038057636097971463999035117033961348162747115927814043130761087789817079894253716072241196321345616747920282605663008518885142790959239270173718297357239445446370127803652705807995727762782376437336137130327041631644393849155033513924286186491535244245810076249802451184052037192158365031496996800842459419595348062617416474096607190554866744702516316626479721766592266981031793906505622621266655205614323633458627306856315881683276719649003184354343994966075412213359271982094978102077234761304183177739481236762138298098555582212399495670406727231574816778123942387925068297988252080146398922683116284441294148942590851592854109309161008755507512947570627733803876713022475443894349463799605785153880625078163742352274820507819621128853106441488520142316274282871998156703419629306378789880612883180637881196691184702888179618620589847345460222520685362743914415124095588446458146963994446058024413080603041039750280756109494350082330326940069127571285032800295809755317499451124075344405443582580881911246671144793823116227591428512263648314066083900436681900206355856343432233392550847634709176523589778944505975005489350472277607024548101077799114978528349976134460870245364388253183385375678583090497235001489288954495201038304707416508131744103372973273957194809109674773896192808075172363266344059890487812916700887484985539196791043228627317052659163206519284287645001796359170891040850600860960772120435668632217210951585829796216359230350600530523428354520617678141042576714000186453800856910055255857904682829513318800338465053516081791206506482695081660629518397760385565068722969663880429109219743523332579569561840481445220432527743128265961086770180717021289158721358950778983547177512608862822715211161368411717882597763638054512728817857737479585722967709105356740540481651223156048896843304313155284224313583654530287952560463858040453113664531938051928499472532273864916692334685682107039359494072284039729112873762549199075180982396440892326450780954194568074487861947257503118621549207367919740324575639382595991935344550126139005019370941587003198094006323814457718286090715084496637593803674735111206968668373842915831096010929827591071235217944285986035709347010903576523435442751831938649928449181148861016120239591701039851120765627975768014721698197964516301885898547282644313255762367555515082007987041398920241264080150852955050899492999189406918227783666607418929152806869944587034814138380900343283772343652801941370169584996948511318917829453716302142213151074508851451554329780970021110254312363829913313145340965763242897315477151762373933828396908417262180113362761451906735884046224755986620892032091528425432930616412238306959646898313575088710799051053842275116134376262968578018460289243185017599586237265183207133052263758425637734843992811539656203444895204765985764251863707029971401970631298285928778092058350282712717883208295683998270541708161945714320317544174218970710151951460939138466056672032846596576605090010196836881427574804396296138130084607672545369800838513024673712500792277268121297633272326766090312528738986624912591588198606604461429870640652959223073901610418173696422299192740188639899200218913206207234472782366489629310517943698154988659066115134815523476983212941482531718148480206703477663522146917887902587156987627100430355128900910026840287315913765321470473962776484139655225497193003542478260106047610968973279690178706139111850313279307065477783427948720960027883320095724375478234206417754322608193504639737647102631406085482688974458475349759132588727864415290582674236978618696318047949492007605137039255891619880446838273821747852670324774357991711392205445159955352208648570874667640160733297140794136737719666871573134608541778108325749210354908111598529597942477452720186612779307644471081327315317336148320797596956426151995233261996094094286384727985544721223751449409508364044833114984348148292793871796702031618153225973244171144175425475718064062759438479919183353334405593456945493980908794725758433855262423563121594888767303681754470530903860539333148109522856514488628313437691189097490357671528274178969670437599369824113119601060822707314510637637001440005533785684580565728858912212172971344698645192152033939366788274133066680690301405122128083539276099493202166357116283718763463254574245691807192772301213655369926240225477193346723052696213260433076299165341049059976755229029753858273366497562279633035410552321863380119022089447131768233904255097078246555898552257119389599604148274419181077320318610777646074753284611597973151587124672413887008353276379459113874824615468241542310977441038398310531115278051951353365036184917874776306776171853669500683461609225317903273179491465977149187318931468342960786597816369307033731553990584659940208155855967446535492666104513655926051818313369095580759321386366203641312360117855149981563972453999789739877018822300593053065520470011661397391119575675015743547440585052019523433584926771965667287543378566989507490227767866205148578705606834731198323230815844497350552957903553192350254403190241815614235843024895215270123110182973434858756661636863294540676539272504209693949880040039541287604316060190693468809440585429168964761327177356503217203815626040833528037127151149522005970357825509889551225946533965122822426095562070203749371545928035008902493214204131212899468192899941585730255876932956064374561112834157482590166968508188378966381100460297902080662379000540352304029827919067623867797235986226692885228031435315732040570890556222597088164419461015183133187178034168459368498681906038625091603761852815283539549976514160587662011579823012916353233308179394273141593400361396260813324480348678928175034917332002954734057010395147204595946052252700392295631503157091273647980140061116356661934503937700440124936345538813166698506578279780445174572015495971232705358474319039904024618682276532554418245442882531354584739971407268287817989201084821824586357689882126393845769486868909596146311887982299881886934115272371068744637577510801398766801416573417676941166735621445947847805715818873445359244785538371823644716639340226306789708578533915996654265600341656986919436758196001863688328781527077474954800331799451445728156167590346905243038962433814497461433287906620192239236824208179320799171369149571193454469998322183738100882022441525954404861518416923414978842050060507568078145397245730648639374300049111777557575402281636511729462283108164338583767103924349311680186363157473649404351732406759382503858076932662221954631943538331581163633675840714804695507227277010555722588915889060209427427641697570928735857449687257363949233104614122944393941534080555541948038288248187716372873062866686311259791868207092676576673417975701489787217257021312006214758181256831357427901650643808554531873789903035467124984546448575723307774420062235213887352296234685701289013621409398015958467135097025618153746657728001144533606294817139231992452645140607615794620356544574764668356870871898110983091991388213301243255660732914392329078923905420448624154573873257755325218769879523522481400648535246275672908716377030107318368732462841156116891175610996261783163719204482777131875283359378892848275869816699019627181779176879034540450969607165225088256002995009691362596685513423518974247433082734945083462867353858672254204330469204021507510364380155884541010879608472522925122710385230451971810926408890728718299718500081109105111182760306826174616399131489473020676342041291391192397014658689595689650244019760705096795781307102433504216202624889437259391785466728098580861670107768040300037066437211053222826633418824968705927561207637804581459315659684250240222239580197621407536978723909950121221861780524228839397888119597674459048567837486521407575892299731488171588863228667099360457521242229352824756157829927477959544794654122734701857693467148771689448056848497516126683013345905845818458479766583155122494918766034358233228919926676998859232869466593408395401376332156727561407046159680150873782416619629516966488522207231933583627081434870895640628464628241467989363330053430913786321556138092385792774034064930046600631459275304237469668641708287745163282154237006895530915526448793111304350663186590069866133504641728493854761720014595822562993816232830735768535211831920266461204112155589898619542362642300069819484408825382833725264584285371611501460942311599664141521710200959838181939727960315689878951735577636259338987993195082621831053054634733650100740265187382469836248422115569284826977382930755645145510853537044770580089862191768697768974176960874674915710636472840160452187725034724521504204057400854723863616930237640512071605629488941426248792889819403570782796373377668462286819468848081747237583864716173124448522404629949340943797360444433263992642775985579530792686950414410303921557644050322471012597699264764108230868604357639776765276754170646803108828394232767147679951341697373937132115166158875492023675374841509690676192587743135725334305449168691797565769410737958341595432093793311785901859081690649374914051712605501806611619195557774525162468924512861693977494940942058822271796661138680075675807148795366467407248551485876855304622921329555979178756647210598988702534851626858479660879965517923281600078250193985785909603228866975414887753664281489838074484354054239517424703635231161109333075177280344153935583480485102839587830155277434738759838146370328025783444542355799705472639340776567652088350837859060741652547173199329565559656869126116961577474499658963233326311031782740336504436812984901431216452296511879669148578946382789659095520535686615091116662240282000754081764894397306153990377719351787756708998162232131537597649914609255780087536608884343748515975323543288246413115511581010637382961025941784141510126123749628680240246253774910217177760124233410509235085339225588862554975802362211933362293559886418669600826391150614027160406098330398952707558227214338007666752986239886819798290455803318420711628587839569616088132703532629764630412757556449291071155226827699302559670104456594837064320366272570507621983965216988843517695664167486132392010799241574724694277144320429858690809095554151648737104590500980981234172743368031747408494378832744913592426708005257489893292901231773391901465257964390152025579134010176189048775186497669330119482244039620797091964709303218457312515729500427390145596230729205010894168386528184407005359749871355732827581068869605268793007948273915932692708425137898526765338437622618383266752543085226045308061170898532733740364568524454348978222919902267451972410177570912747897963717506606225705711585536378776885504393151796308129963199185067608616339771577723889356854604011643199570506839874916178217217529282402174915278067671380956006481199808928958795459890605364097849092662522459239651761219066674988632716302657288481359322888224051488399151053107573424653370657101697927571741001237008967766053581087883570679098592715058939400687080238917415651461362164923429615441134705764661448264356034214312462755654550228034576080976824028343982582372277789075571266463199886679933371983377568791737776939795966269136514778726238098783067557737788786500241912293293071245757909172965136720285300703256157488507349367173796822333948502977738054098942181944184371838858637804932563329700683335997309874497819584144086376110698609109662240912383905024922435320343116641168577611177114456890761248353213580477670021683443232330608741565327469940240547077331777877840451527453674094965228777558191370431599672010523881140877614650181819463596084717245952659117591421253144904472927873225116462992137086703020559348509064548000197247104436464230343855542121752034589223323608809033872875656996723777583515022127982883396752225852044037476761785914130017828664744191679209746698429509378124890703123110923992031545542117734105114421867882970211264848777126798616371312187777019983131969000151154501155068205948327424344312129428028200582899413243750343381846559089855584805986134591461963846514676924722444746479473710469235588986931157353721261371054441921559887002705652360050139147626457932728159263518830763963458930889400786971251136469505510924162837634790316593001924431008668137513111126858001650088009484431352816366334472800295453366435850824918161948758680356892404171430640926560897378552291593318333367242413745310293586700828955556345740217895843322126289097383718389412828896429626113197318907876983131506676222974904144690263770321449612676484241536981707324354942801348815692783615259110286985148366552180679082703825989512375068418029106979451315796338598765495162964251277351288978383858218041300801987676293304913194923508387927640708884273848108264695919093200970253294364789959933296569423731974779209182306024153437653372340132387462224937639323261750057980685352330694343135234597386714958741834266469889617760025034070984402258670386184187841780824090499199962985497249492550084688332687007711246149888988200513179155106295112503052604537977676180823910547472853918988445856262782233499100642011178856158195411867542491843734115601621487776052826177328849732837809453843323290220498698817298216950494530891306527462820037142895722796870426203069836516068387923126669484914129593694731577281066838618776427637197445816827307310504111872407001061040265720346643822512452084209573806959517114073503745430705814863071294755480081880676499008889950662531907737984075502610560119539487188482833293939452090006819732544509005061420869983007564578954059887345795427926373629985525947808385518076001389168847153110194700127262742244608475415156136712739826498798236347801981189605247229961621081991624363559015420056519960692922645742217252345525515947617647651424597624598001536248857359224448653729698716918516175439103981970570486008182253451415494383176599996728404379356762156610829240440393038403131730748597084506060067993033690786580196382386338287898193810146520684670477454559923215879831523317775790363128719101990191923752399608006251444041395351430149741575350664808162685218072478714586998052661697782460026925306552307973821182165125568752809610283540965038140316233229053244431915646056203170586434814785244548276149569270437956505158499182621877296285675186843836398549235110395591601474130737029174442900839662534179730754324833409532748343507913545361028417773290492452047694614752532138002848998662447678182576273199904407076750024191964992203505454954116128747750490395363437690327602193022336384782954972724836640908720677901017873965561187911828075968571543657404224002635690081794944327440711263288129766918350379406978816619702714826894313506461100401097848523678352744308254014948137705708603581778341954626929744958410155104404827228686263497518601946715568717669143479025348402853418672694773563113388496007681076443743792312203232579982922834680913016564103647315260576761483081233519995422635857129366142667869340960827619364868359868925212369826650622526951187093721490034959318783883153776241197431041587811942257289099991010545513138133792428951753392011963706847325029975797054801688268587680991712585251950822481878287353537870765492255999239510528094343976559493507782659835655299019241470806580034767655669491272436516891784023813894541243910285077258020028339001179363634446770232655631653807772104093498976857589679319250910696534718218176170598297095815841037427047716216576061072833691509954793066719795790496901006765863170173313430516113781264767396791707765886923237926023663425261207595430010278980052669518248030939831888726770377252698505600436660790415765018218463678824459146041001455947217440952371376058187530584770308204571026309783693388414978842501131957610477543322783673569530565408572944943633194285562950704468023659317082930161252925866225493526742779310382801939955837760472552652713885142240726575102034088447844799146886991365359504630125973945139311513973075967643854135546227963129349125771725093888946656521767023843909475697223381483670592080603609873531645485174531854688351711440506742758828432671389229918693319747933132838947870758272902378206637645493327570274253155325185212858553377317419369319166011645955353240854350798349480527530082965806151211322227879304443660030956517512987371800125707365900154413192237563357255147808962656849281719608391926568823200465896837306526960289874873224461787515027679078877112095264167636793874838604062375709177108603733749916176002336168580977418075993214437372221286007968441352859018146738621004805159393751472835843613512767778731501827696335460830700344362322615805862181163719859387550910128623309294650641335287988953968071377348502459715563124929473236716400422964018125559048809319452933816888064249542617968104910056141207089883081609133721330504606950960752640850424023898390417401030395960719972362824504068402469182896990966739322422603608638109436219452547541319308679193429448926748718357478178942579465995586883772988676174078263578255040900522683420445134937840664693952329214412172171053419846915222362843685291595780179389973876908525814046246454631516666323805050055930969267044403503197293512173881374388854058224855617167350896851548202850840039618536875394974744944823080809411813700974735679565872128934713414710452970129820114931599710485520169146327992993571215161546976107254340480549632764983775133106374974454219563868619488555636879696482218112480766286907596740895671551778587293054021615045466768674669917866075906129502989716289131494205510140042526469882731041419610611033793974722044426074686466045431480542700997371368780561969276004084874858057922750639715391053474701522921019752451030245878457148077645159501462166030239621308400603471660291351518606887426701892743647567431626299910105750812522996071175309656553506266146134985934723846265565910677373401931256242155968460113557845691520371433783522444776399538630069352419785199140694296926613459883164613878884724628353021867998695696332613785314549021460892423375932811444693056835522222446657041688589518862994106272351773150070948662413428658388839070673270165576692478520466430855448961204286223866221545893495679358423657876133361782107045660844587281751964346368327276327493188632497717505910401071357375187187679744973747898889562998323145601021545677745987052149496645507442650252384832462402753387532800594410437903313654182950387530855671048235120224078760753978491317746122773480653624565192479959080409368493078012078580029132854807141164525037425557416197637522660595992054803827717085864981536622795340035095004093546760380558470712594800266865942681309759395483549115111844430009428316704594661146949061403202346226930580275493251106672267941231265711257423136912611042057940584263564617843065491511680748706300570959506491685372870451643971847437938459260766557540940201763825559921809506270686943124795833697134416242516224967883599292598596019523914210356971317505728859588113437768559511321974491917478465729169206073397926662560465740257511368192532536075199190407874182999207973988764672525954594414310365654622965944270380950642164100635001957400283542606002004373928487215220141252929324703466297627132760384852477039392237692305410799449600464899242672859527576553679087938766348447331525980261198554006217268736630896682048902382225775654655715717130190465188900358951226169207110907027013558384008782656986913381488545209121856217367077707543945410134549298360307955538778709324424150853503290681500723372996497025552980046523647264807963794402285874588713065808819961353136789641382451966809714552705419795961180636928849959563845013526987072301727296102002154662712736747951391882783390178390436033032220888043092816060351410427481760401652044172094130209118309958643769615593316807373337863714866105151757483439768798224751749811735254670493609392604720121928665825255567800276706992896561974405912800741951352974774170991373921674656057531155074237542806472229929935713091873467486706794345844414627099397945529937771231790735547470665228289146166420949199952084849296713927385226315902980724887667416870884059256991277474634066884338907936325834840101930184273496471183209938492525924228210084958910830550100721915141551965838070736900740185731241506785959647477723128573360352317309986891754870148928635500384364104033056309644114892134074419168849353554316656762382523096558100113117058866075379075871441180622395063199742265495364433097729755409254485453497853416847050552132591295760488961139337816426354813799020278647478518821297720828818527116498456024471792195270749937594473823605784804101412297915867772784846901717115748875250467506862183186678708842384429499935606092911988147437800845029880168213878863587959764117238603883139558950240894444454024575254013355185546166098345677196514877945766457464302939324933322001058741221164335748323257381490085133195696974428068280379893329680572679343099518776498104454390112324265164175663637933920055305267279256657183318383831648349679888912075579722658250464749750278994401721571926378890935131190496115551343602669320112933083427055514537618431005023204650227496842009002901955263594061089323582697206975098509064954132141214457187222053035990148681019714657071245638390306881336764334073366187794903229517327790596855066137542064593054775881442975324876697299841614126973919150969052380790724913341107641718043868838194801107829214529473320605577272860664247766794044582308392211234502678364327672796533258440104318124488620267426853478203058887797130253735063118411579920732870636240154683534743906953432456630243391799569355863890314660683586374110569087414209146881568516040820135503610558549497488401676514052921073138888323192357596296816156962406285127695586493511870951158431246841413035332636758401425127424197568171083100071378056337396827646172920989033469538553983549169071895684810878469930022168524897509124966787088265051808287718301008589220776470131165409544353586614784365965718319072086009612515514721855529888351233163819971205988178165896055507795136920947517382205659090805592180320764624813003233107708661293245990862267980763733188099924055457280627914049151964144992481648347123713711828715153030830804920366707551855078482059566890786733027321792003115061086725719544346991330864713185075928621601206535803429502136267884924247467798526188768099620403592807491903147361133227797522221961883579599297459448796012302754027382854384743442580408441932268712324955662814143303599613002109181960696431013424598949756541063752167825422451097912815060945283974107715111796707017406490660343977682496370971089794065711662644855155629911836091753564557538573121483806577632242343525141676365281370613464104650881539318449874805382592682063500578302256497345368410800654981691150091142665229293677413505338494397881579028668836644515800553608095777125508358200879858772690424074735218513481981349768799841979632341997995005970485661206542943030101132448591492869292604868918829165508250142619643232906966005813865741575875060861319835668162660789580275830029773535424735667601186490525575050282738671683706557870668079368763909466575845929163158276231077048414928057883889070358636937693351355182635117339411647392400751028197444868412916486348978642718806829595557003377668481142889779570427694959672218361731015556242389511793602174403090339696575827653584267610162153695014066709577084512253786983961152143998532218832974362370449464705007552551570152552281591474342833449233002833731694455799567920008702853765311444518714786384535293281237961600661859831772287138978270542662933031995306118954783127986971255078284690256695012836543191178465886894193667627286890086933979088656818982690244221679201559756364220315452479039559357708344845079906141193440511163146688084608553663675889609129889146961021813428990811145434133773797778806275735525485771894833970292535472952344457642753786683345384261298035676276621651276050731028447203118932430534903804997547730720753601368400607521721054253515418864712065618728915566790357388265322444539389942115271555394458271771003264013624332309625304548384175326006000042213884995091998690947975032400504684770030392861446083364570266532082194095119273881567432158509073911461827621792006972635585518533745317603990608120906267287758404705976131224395686519437380449585943878118102551861857321540012915055422975071183458891092883860599750524845526299434869315409312431003376878657666510185654347662734664578536543019643042758410945783871110795111104445530990733818669573178088878132531321131330279773523332411048772217000814598398103781398966587189933515633098285380880839616066990414660950489990383968099667557945166181891724601298340929125498471066663035458823561179802477360962920210393632011106231048683270681083411196783308686994005575105832629714361881387589541391377784715331966620760373680192979233945437010153527641272441465694787567142606540263914497008663494920650602512524014597707513568569776887290137763829907261301204993169782964858330827516316348608960784245381136679809876609120058458793111722133321021105705329823208637754187796954346878427234266963352175369883502959537192969296105418284649191839271363298210660008252055591375605499486102862808286470484007104331648104520525012685119663768866800099953865861330639936124281799017434802408826148135407272080105036099668773497765879312450064603049330030338591177646664102837551246237879812575120647984062031352074177545017661989350097580737341729712009811978472955641880316228463457628427818921579031888479781618172207671969920008082461631632626259072411239169117463269654036403960499448138944031208066767382509478123997984418449459458874186783759091637698504497323914712889462508478800845209235271672065401251961375740324400532606070489318017473450995560318199584242782336271661247433470860723429776514964943002509332504435040563746788281331618314092167841417513245912628719578914068030787257784107515615046533732519212506347922476214164335517200958036581164255664324021811297546062270306408658600950334493175986385742249896945990345001544126699643762346365160145119075593324936033452149822797020920315319158605770794218449369173796687121973652716279797069486283655937744491892678173344939452388025043828824139790460378094383574974793616189098555958557092921907912067690203067030674156788069004291190968411229512440364150356649866972528132293959298129955932795072331938617610501000584064568447823639278804815907932534481146428789880367624250762908075883873184879083554303244286442999744110420246609944930866043528050657171884726706972427255625426493069783459408515499439015800874877590921717220832851836473989462047568807962826684978073683314995946599765502314592251372112165374078745890281524413031210607464222716788632054315800911909389825824670474233246131428104719700561296638875473653611413844145811925970530628944666364285667791674317165392069582928726526589480561059912319028066554495689024614572524394856847456614487311399854387696753922954853629942682887926366139355305680890990937801479599924437730119121618687316394292742238660061682764676857476659090272935090320151690818976955170746599698669006989985712794679198070912442263806751539894627685695109040054743908027078288712152529380371645730696956627512814865127690576800009107662677209498379664642900496324918365878024981671219628447058035786200822315471393619347039465427297336345482700262435137983980643709363486776947667083078933606314604822298219180089417317238475802188852844596397581937947301059064144584092646534844040819988945943946907612760657218902768768134607784468997325943914422438310194543378661330746685753125924014244237241390885732342289685678121386401354375976856360525434885236619238587296240524664961111589882150893599705913275766089060140090356927974145540184577089585170267057707995714811017689263039238567689940901166937571406066852772700013506958352903590455992000924420747203579065363207719252068761796162987134082506876454052124583738023324931013116117350857706183578925306935611524297491992813772807924288198555566145720820455885211811004270640675990205671432458847730343287787629772528087294977484981346308063075856685466076088659162004001229787307691520606961260156446097571540984319566015659950486640786615755686350225456751071032517482280998943421711297431257981337966586105832292863715781510330751209138984112837315872846170721346041534890154294010419136329303609176159250119579648597602067431200188780387447916754655058111551789670233058790308383855666760823063284575552857216480640112297215892932829664191425713538002845573028940177025309548351589839815985898075432233670865318371384288188947190758389256257647786670876935791941773708132722600384483214094542304418578571398572640920822203071110171094239011769655260287354178235724396180954524329454029970820563515975075355256759970006211971277101721773828462752705423332708136181097694172786316968372195854075819074574799940134715271215599504987881308713773218982254351454418787083558581727635806221809583702375718754216373168568474848059357937193244666854428039239803330483936293905903915611196973944387696187736546228578156956720041519990045522763993385865293535746440219849122846957709592377671220209464364027297795803071152883940790693262692761845248389188139795812768732488877356332131416742102848234825711953765789789821881733346464516841399477028482513076564791091392452045581107926663970166813481409947658754764333757781055905133253132895955527311238298027798067431858941805608904632814166677778789924584072402191468190751394557938401876767858462137877826382012833961147597358654844186488178267607253130013115479573021965315840955964136909825790520007164804223970173523261068492341256099989787296347442984631191074866747013818487557636877420563041572691285704895598085481129138524582273667727409809231475300434152937727807714369212402390331812013428501021159115703971038064545939735079185302512257980832660967967192156909987235553091545465235418058161775778710654648883352134988807373984365382921499657864259956519148803805360795963894642436823424816518595361549028172079663123629513747875926623330908819281633495379046698101182524789692514344113898839266065891513527493094947311598641658600328722775217174515350450830552661941884583770243837221536806644692370654881922318762033970515433232895600793100845740509243090332417283611991832764842958725795225302223805434192864548408946149824429970098810968224855569567286024971877237428366663173385743666467452251270500433891576674871748873389714676122538549021564756379772651569833628154444367390980500920267702740449954814431592263025066430696730976341129253355267712057343503592392271676160642351978577002428021273284803887133685606577067837631196082523624447527044265870681270546798054572295702051940701538581492999733034460940202051667723704577134808528954184754843638434299783651133517944245111756658600493266330838360845418048423920336282258684590995651208665856920598090384757521548774787075571112406894398500775323445544035283804793970032509093555217405498128428538718594591485401775732002862621015568376394522362280907476416699086848791966240206180161120409682108908629444874900241222582269959178827963365022963657117504897799437342436443109247156201637430748315529974773242408412018669787690060381325779070722080133374007389282441818934682763658630783873565842440682275961655441400989806535394868845073871822511196539164314265589724017972812001791613651174100645278123662790754792276315976912947280850341604337707760781763422540840947866195185667900235103623926018119580690231306872629628695936387075436489576401841076981429150990930297686359229471571423515299155337160599375585934198062737962224635191972833634846194584429125947925757559200626996750484934819884435809517027603535248279136784560584135397220893802092504315305703258927107299066897317199218611907159872225912124611482217828517983671731812625508600466138350993150259303513405512026061000796052469910464288708252538404857900403069222802825990161402145627108082416991415872353812303459468185341549342287202146072877009365920859393219941219302132949485909275412372011884400872111125604130251188545779412065173028800671957604244677779857050646618496431551729755765949549286933151207092959702625620406309629822049769372576568288953786231903918789657176627454454964536488479205482572736910869370610584918203834749276677967695987494509545054274793676211000815824340121725943355994265624411689405570058669667290899053519770460572096665910381904982165752224789291113360234311292582319466935799144324595278386684487682163726450602068607074887613031425152438161863597032359644379775911534901124225828750966251065755853563037111654655222103659913180020720969446622308077995817626908997718787349328069791059682670460592959811692489803253566008377869492526271288360585216279341933306044608006712931304487001389364544594363495813947621524851264278152981026609044551549814123935513261254471502176551590228414854110181684492546534153314273698588808470216221085245943796503916087139761964342245798998233561478912489733628441025609137730948011557754646373151735849247405054369362065931056104689323453504996085650752924519174165468152870693835415369901051691753653563616163379968179900490670921365922585243428410656845385844001252020827509077413001303309474119521062207101830620926637698900777925894943350019624583130365423549179512601930057422854044646186816667560748385280607083795517103627737029038887676181676029669184756184393397872813618008074948569509318268557849046494334104262815667782724794270043467511848392584813514000092668512260832607065275782704090652623590283509391530329917186822749567514369764899193609026927235724326446426114576871380878976282903278561138453242015704494572178127500891802522564109081702992560154055752189112964339611836355102009785524415081017835556910153302161737882065354735904913595296443233844730752940201617486973676836806771732855147887700416918103261288146635151290607318188147457033717869884385682321049773818624608846253113437079494415027051239072506875064199313421086795923927096762786719974948607435359643358920068893617219528326314539410944577575345757937279589473765165695098000347129502551311566321414805692288533650690386750540905763353178203025332611015486734916511328671648202763063592997555295928273842571066935183425251499476536474624211735937220290649797105886499419336102306780247592100181212044733794177508190141631970299708823628691087508806989013445494655247095975141944592000153028838993400736566563088729298783705880475712635577325595076789192764271832238474482535663225366909562790165490407625156525480513590232567887719747261640509057891268244679821277811799523793991261403665660048059190010044717932408562471574306599495885972304055623675308979554698789245897630755015874631633632868811866449041305440641043764253858749373325391320252918470884240785009107794263788696632786996063709935241896711766646515789075688752886671148262617654128875438065346424796947650885830372325885185442092101870495648048588238795385039205295052918670946151147681155702033232195382800288797011039037569434481168857563749739658386891862967814140471808859113796343053015401122898839198754532218069988129950737183075223784154263451988519275527312932076558209827902475397184745512458066176768395861339144330905600914559139689797821056305992806085552492945804940697723047834084391606466662307260412022988475026299442424205515538360756741288232926189713442082303147422111792900175019139684983870785331648894530673118238693594745973462223464209868582366316523585771259016406246196180300159590204081113931429748759389015538010394949604298417858464115144390860401601503213507911157125134337070887228784786887054766347383131290256254213818164420581533335032424780311044045657945888220819846474992133199919350960253101755959386087632182383863181899697288760734521871387332138945648796174633405855711893049990048574511196309982170693961419132923563913339360044112978092167236654073262510542799726280219599612369442793258837758970679793622366170756481994421949742277247209834723334399033399494814696292794875787114865469512449760818657678748643111062498210831048687648310001925025864474425505155824195105076888141652358962358489834384570843734795889095334013612585817185875707915624660711085113823945990290990704223857847382486478756474559065379958850501698199416062784033737954648038024384608655831726876509508878174732136074337060984059179765854161560522472713966943409690571894179634532338783468711784454853576181034312331770262767256836841079214864708772567274880461514868485238051277898189765946683545477912288412118388937443761729944854086648501140408626154042022355044200742960907056065945212395018007293311185263716501750109471936580223321832234348301426035702249531191282382476182926014142577534930348376957087888380609227412245773538100367692726851904305826827558403654354016280265193974232675007082050600130026448254699977707590998709269372680352599285486783371560216597979723813469541871993527172409689406960435834688414076149586922638218793409414473276118934160485773513036399296805373385831703717484735520312361498616195061928922447247285140412249144349842356709761321727804111166306543516102488428143945419447799895679021218223594108071974669475038149269150597309882408023392370426179273321023579691560534916438754399820216586784138437144794275032907772510015726773452144031708545651104461791386739973875302168290185749542183986173435712585660676503205581128521382828676604262140720156498901871218973690545208938003397850628491487209984688607365726933340483648254521223516894498268625906674624480728979198032245592723393341547180394429206795270017075583676099254977343188291948062373545239901718218773282793187029312468491270337595442068177087553575535297313535650383561908423851799318424140229260510136719968600962402674660691475944635503653125037576596349091389500160062746517169138061475135666161467969644186797220673975981053037389722135157855135935744134425945280183369634103194280414796066046011820389615092408833729647827533068158881805210290760153105506336951547377349991069466146837152386208171346849349796347424478039240415564675744489218550755958265112761709227690427535637419277202697334216559053582709355466707094224196050651556041727875578285202610881620294379115624263927816232613131719444595842749541100876748941530419431836250031147361878884463945826140728414244921576812938537473762258059747255046214991351712955307943061530955265483330540179763505318533183228764247250699549206584728653301155067742696587811775756094387197463959345909092853341138591543489884634795709482721422769858810471932830751708547505392482635690144698723208689601749935353094009644957543147809789193398132040298619302063448378361723480248927972296278861420781251527810724027829053836934818878652812337994039698218551303727978958288373609163823605999630867440832564191683142435488103084005070452511564081531870082566447646240295848351560880536243779407314229529751947093518291739317908557690986197901489250458533528243071556805812106265580674541602220582731824539232912239027551766120759833895272504640182824209923004281291835096260201693128308798898164956471279422867864271670899498898231472283773886950604217723398715976619449629927263375434656722639348153596600413772043390526843087313962158234547373293245594821924257655758038598762023588992780128102870722432828820124247897766414220413998377485613094305870157119445486425840689645920920649760539744221104261086564618884755360968045833078579986969099061955316763248014726615368634137452898137333878269402202236975988175316932817459844715930736702108114701549492431961576697972111873746476319404629515477031446667924896895551626371201228127207874837066870565862547388693754919655714803519607907558091689196246305330782797960905902037148870436073800400444355150211558730723549312921545313950772959372942901511388595355317664216517736028384994393805309476823936886888334825608294473802407838015711725308311868672775989820780054727964443764756377135917313199890849404330379601915454028192958711321499503862618649197465990378089029796611574778396986485663010318373045891562390980548234084976972141210375902276789568347297145385889281875402353924022968431009595403442478400029930144094827689874041258470966747032289278904678320349676474673688985197088616329411300684947839759194802256242250772770576970565394344400294828639221869496444596967842552306456220264891958441793721042927258958332355809763942934945874207718463075474959228091586474084454693083592593317519195860102933534107100463367560229131066465803529497068479901065661977207907880331870821129877994576614473201239169665154064582721591152753472524360784592139797410656886399154649701865677772810050405197715100980009760915195468783192183830308886274794548491939765169776195453465162367864244726356212983529627870935411731786477688466953886148803609454334347075373376804367161301076913326127348696507909198327844946812611080554067758155693184883456428495355418790985648335291944856189692173731041493299921183893713167212952347337450744036024762636413242841447554337982170836679000081166773367839612977737674152640931615105964341045163814503179858328785626087464945642451344281738056261621393265844738632847290092957268288465321140144193596894087529884565940393691698595982788938389358954834537159625904010585230453679884858754118646852122741262143874241413320642964739407296791065982068015538145811608962435801015894255019420973717661705914210513930453590344027426576230569521965446650928614029742771411462804845290487445394958255886859138211879763485274567505351359444000410893380440435777492059750533954786233591228920028189172844840344923143964331463405754650173780914647637330700260757856577561194135828641567573859659443242562247942815111453846543236110510392440251758424521519700589226752246925813646909631904811132802300080643043410111076819881206843258253992533944651551058135224712212415808975287942753732749625001633487266173097828729004405953809240028977186179014376154827054911666155087665949214707060449461803844207122203472539878190314466189964565336551343449931845802862012026727927562881629965485845119433025699398029395520801870423375136659219669091732054068840618397718766970088067655687223041931505378583961948815815984022835884532740012847080911796250243416998773622146178051168835623805090930189881045618786355634060593376424625677668957063093337836335247961400557137334792418390532517777057553279392524118343190721816587344024171119429690226636511185856734921243828061258489736625844608498368660892897379160715714261811074284984873194610634426219096324447268924491207265232593180170957024369746542031094730537471260487650951716438524258816488555257796075408305479148445414222248609636607432579076872621030590980809335830342962654417983538307877806950266933494230875011838025253541504607078894419735836730011628787898207441033007668907076453090975758622410978042454816097046259133012025363682835889743369233250822277366723324794558546279681608171887516224373848715685052655130175100339842755875497707107670237864063266545944423300882441300646837332917087090856817652517888809921854203817811094924602313063041470054954224937003053551487998654837015786193653837517246632352867757187757350382504574443802787119430593879971854097806638669743245752594412025671660865878567172301038496331414229602205830339123765921081878722165766537857345283211534724665883454998606112513725710498194872831288207275679178935226939980018729747198754026202862341931940118054667680338157314430902289750839575512156865219240802222154384240135644233779725648073252621914970253213221793739592276744179111437998083451772611625891573728565389607427173974541562222682995387278102955991952453011310177165619655348685314467058954387054155899740102613308670668566125716918324286416686623450423398600492294821105458951714002089753392933728716539105743578863917737112898104536884829812929433607184708953407793167129386813874258161979888807045508765905688830486945121654628498220774721097987664525607031429956317301860217138324821106729869214841870766184973200390889348394564082569402926726119305357431703087926526496709057002953618350894555373515624480794603565740605279409118023592572164914640101313337734938958695857368469303098541135389253058237511028451122319594478821139542398420645289118279917628752723702377420283752589567788644731800293711426752244920732507985322982323349766416601568851908182264701269144433714606095894169092288998316658229484114155803472309113230968823286252072865719478706332869683862975687360114459037724893003267811028426179349179309665893882283617678259511856784205254754759251001736220971166957028481647285907621922939536642690831483741685949502146034382396745339464352142873420447029147966617570988800845716836788472958091597718223804712283344944597319911705860569370172129999471002103124873870063049073236151880214939621933751050491914812910546414391096403309053522940660131734897968343355934375624752565213902650586631902181307374419551874701663905596043570531621172774160772817833633009083872183941719119558861403128113315630805032720160633596877483607031244377696254635388766612897648179692892729470674121943033163522267154322225135796879922288380062214611855214752231683761253551371695814691365264930584178028277495215083165470275050816670503743552644559780964154383049951627256313751755758894582485357904770294043843963140552694273065941673521454874730788833701294788944956273726344743938281047500780332522946920096709432653699421609749844441259388968928372314558551432414422495003534115634022448197165295468434779532990705849909151439012432775193259029004534145103068496859900907863757993017699033262242686909548591601139080072378515445386525597567010552663553012763304117275437304632292638909846609299402961286961372938652335847598388150569569994163253776745858816413852224602956669537572312470765477397995370817350483103073808338110168278593083508916161103134243554979763499577774506436642958133736496817658858146524997166318927468360093741867385372055696487999438925030006343856708531795435183139158421617747338543858286617487923103149519040831672943108178573930023023501086799423785223239585570739543573518761907500297751728820246230677865969283676610321867765911612126239304400356900181217545563426276773369768106146740648676292225974616105009646025010015878862763240697447660923846898726692245610095013312206488645848981792190471412782757127855165946353605302941564898046548289541367562085579354825359593620450972589093297166633036339861557844650739582781019168643028824512018976675228672578456172325959455616918539841342911247898381767902143731669278409050529900016706533812687170852460809504982485030404319734780346967033689445728395522373105087833648190615766707984408867871278003553824846607985303656419111173334758707752812309581444208368706572036309990523379501975483973986403534802043586622396837633890242481372850488118029661849712738908319575823423743915802928407080269504625831975426792902015003107824809557712706233696662042463163095950022955144775182596778085998763704479935677504734942928072798234949228270716011080200041926636566040863516241765092261968739540311517346565131016509950071541646840927265202035553693879247811642902340960867821882717344593871971483614169218712551173827230635227536736482581626069054883948174072902810676996621682664851587593907792287485932091969593410336534154070998941122664327046499406334603860640046224404571060707336236379694140177238156273041703999499101112434465092000527456536170761864893272407409044133766346263856366694156123028053087399144539990502963697256043855960061425962120880089368977799988085412261937246362291278035004291791569966784072832251731843296548870625412347632291831712099923205862928579717744546098860224401241363060395067445164254668483853020537812095858015574547844931664059986702835724734014362504520228338005186774517621606087799229569244391178914504240062244040895071400335133013733690144091263914288215883193160163935360036460486813587758542958733958502322180591475748723958412085557749017241452812562007219967317655890043149678155317917401088658548750207741000108412382284304736838466523823448987345534251064464031221179772105907416246127893603575983719352584547310411891158798129366275838904566500339567809592478136581677014218376863321738644907261229415529951735323390974263152336633295658241632960863270473513386659252948562246747419092881486425079691780225059887847036345639017709319155074045527819859640551983784279064733541837529329111117436081811391314374075506017861896949919479692728726034967761847743574278631242309120153041469638118531234013046450226857886010836621557514631672731576222973932971911564085159474365460436623478177464996713876544696360433254123707164445412202542651992593814565745050574880295655338810799671590628867479273444430428725855433788004544721684651062278825674325922358671007700795666214398105217038578566588162409181535250484260548611848220457214727637417478616111146291024061108683526091657861692879205866241784449713588912590869586416493107113405138189305163444395011746047251410687292088120589737674074004041425013000919376144402584587795168998726998913611349308898513942934853048709188109447954499806711464347220899445439214146192733146609901146487563336132211037600480999471751589954119718464028990358713948122067642843524806606454542544953650038651554122062077679477287037686441772794930072673117555922768320857739171438823295798356028808091979852838180129640699289929572107933363790278505812022830927510364813994921313290379428177942591791035508919741560795890018063183415655042597553299252113185065277489168713245663685127086429371749057511927196283785498694402340963597061708514848788288592330352448176907616950644232469353434589508790088453708260905904670153817655364172941133018655019700535684203163696388294453344794766493522768390776378988043015384502675016971800356839164792911218856384950660806241040335262733658906839204255462350778600933436192203703145349982157737381674137466418830594515835160780207257343797117359586019434505565828742305488343033226865519179554309112575170371091151554248526202061567889373479532166519408702862338015985378692124058981433724704962873652339379662911784950555769734925003002408040881144542553450511860903933069510932042549115450995022273845411737489556157086719885364223026711358287485984625475030049054414559812541181090962505572230081380609991771509103800300319068073350962318667021102020362199590029332048541380014820248213584605872695826400714119143480833299148491735911441782750341243735908794155123415615450716478156235734582383620180720994149511251408186616275514854101922980382508931638245348460680254664217620042490440513943297236353156067825087327164999569651269487899737953583922611848299412735930503625545729589682823597843260767547596526473937936937839693173202323442173666149261612366098017225924786490164875559561289295248927576176126127166938181796534596053498006269851391331733780687923780501092492754137748805754628209646357666878506581914705016911479069413969325849902093509070735739744940750507539160834418292294749281363583305653170034350161663677124432023285857848831540925597479629312140006452029140529645157651538220249856151604814462562092006244954885674456002768893210663892625351175058116838214512013443127572316247980812874923232491896070290810038121772669419043862327555765150438044673615884500311453462686683257670402305311543293396760794015806932847588382802861731994143271607581008831857166419623336942662841720070075614536346955464486934248966567261090707931004501966837513716132604172080239970317046133803816634107189600197371812812340552273885141702293446064094667088350546331722792383145355544949238031628829228296160244881306753806278594763934013297893003588074333606939202740519465805619101709329310169309170893228878202461185109464582071591194181106632824397625405900886371307814819317482647402642956131497117081935295031991609834896026549339227627914589937591464719162476732098766762995378694729145470904575619916021577483058626120733639567176583821256452196405895412089904071646018636411342124532525045202196509015915794916514262356961713886940923900191111509633008787559718609283695912566314613163393936006068805554292756031247286866505214314289627517745568850239066097130127787492541693625830323190019883333411341748380995943004598153015291156869712657804950563172396969675994442488188203258059582797133667062691026308743530003419319223126872328169040588796572997427927055052931216565343104549755285695720341913973097076230883449276540413569877269021724955967303447815879469250714121883664905812849395813521635523200287330049091990733233665832684917885904390168909240871014703771314549554611542344312788715837892805402029311015585589321379767529646971628163339733058440698058899621102058534328243491579577192860654658199948554463211544114935910376981553657905300870115495236569959962770318102252669986542176043694383270348374879728836814297736247106676867258228766177854652769414899701079968063318731903115398622363592687399349777286810506469523653753721627269988663679611002125330904717304502440301322133052201056007943395393041836368401749085639812756111715994182972007550734400623013644687633472987121324875520327527904573454035326043125452818622200601609098055036629136471329183280731480972454230205673645671231739263835664972585298395382432150533697842846770728636663905919169274633942283135507170626109731777410801419672498543648072955463633885523890650023996250958596362875347435802314054507838665113475387672221608433128581065570841395257677387677842956130248785204960334877437682200479959846626185696439023851123891783529969145827466879611336389972241587883838800664456690916170097463127455932734258561369758868135251025873795621058501325859927355023818375475761914949500662771674240576456618578117801747553033450512618346707691795636400781776906406628391809929468416157398345896158920846373862790369817685789260979698935288514514893570632479694948677646219507910874042939820811381607634332380905144299034541747690323201334211053092018222514399480494225222956474812910674405062470491669189890957130403342147278097868940402389302765583307509737450714105706981856763015610697211550550096501746560371351840407818584289567125791422911098970739190640051749681743349158085662024019551381788022575478924553197544535942977214529323337525609506171895986793439563736473906661485040503057842926259510502392448819014936019986839652310788486495698486227338791391469272221383288077975196979239131590885901461629871580750283411710338499810668397072439119435073055557870099204541860758109422587346308899758705814503109417801365066571438612089332397766731499582440015581343468120575047313500831574986302040277169906459634640144180316269856110689391551753755816201762863992769018014992931537504239525462352764645486115343291986995568874742656217427022894520556931917118517475616371418978061244331542258680726358488213580051234164489542961074336681664616869742401661492278398134871245075640614149876358874854790437052542446467073142997178637200633332023512045478773409379482396473667193150728462500551049232065997064267205821955685639012507816905069244290219178107160147179196630905066089739579699362475425525700828156980542477812159657609029796156484606394443628671096166494167079749009553200557942785723196412464393779140311055689750569750143701422049730043297824951694979330994928885506794833157251361224932557195147694414990205876190369142200721265323980931299989026552972754333723367614041081629161132356654254155775422965135322998574529491680977199510405864607837140864303776325224361453087904730667348116505080504499197757572989821783706273938439805407976155741332463803962969615029103739167254437025541298674777944355244276754343713769987711032020430972428006831496952583665280367980414769942470810923283904741386773454154562995319033320295515143079804417582881950648660533340598765253261128769687427335038989299622987531545207899388733013092343026044792805666779268793459135180310983739145706350016082440097497399064053467328323793334034137829286667653085358503682085130831762631185766096509530018756806812673500320273479898363737159113971877867077318010306845766712702236661576667287143010008721683502252713400883367906280933493843929792926783307230066154541180307820748578479643512707483954957500972523259733541148881680760241588168575146875978876396718586718857673227153578127776696153760842725820152501195152072666467465202450963243357294324157188217967599420829213581550167603583225389236081964625196615629836807179880032962308661880503041702006796068958298549373443739759689520294732538175665153734341237083526092161543077435894923541940608728967614855623833075356682961916280606495830447895524631489212698840238045024252921006886375810951092386988391288631750007171957782820931215773782941861772987618448436507165940933635467257220177742483286736188816094210649342060813374433360394275327605916905360775073782739422221950137160008029479238559751725249966875156554978258833138373430822118902585422228498872367649195268119090872200117668902721008548399665840788974525504963578087940331572043867135064187541336327321986334324126825339747539747759743513392796055037130632682689461003906862509288737429701217436333146330108972344635177700871332891790994516190885865912497472492094613813711465484354009239562651672538947728441189649319622360808843095097847308550640291471935578420299931541870954130236385787731711332641556692641717929643729510750951657886544875226001372912731076875836435962429840691725086911844875774154735102107688062227203493954168343851836941519466515527922072628403225669235156563707802671643654698648396861934324722244558076414022299159608413950280564316169843287092267346515759826006289574320271592067496694057236230650777591540161082963042004111591779692207088900885862056180161825991429732169083089276769936158597522225226345413499048156759797670447822362822720168883934891334776029747822146843471459541378738090655668417495536540689493300359777370984100407104355553586266809844479493635126101914113827736245910946438304073611359570575168218030382891056915027867705085986204633952344085743975891217545909954786785468461683933637179660093979303007097030643093732851043787300314452703794572654771855039329260981512921447295930779395325482947462371300704629691101007455328719024766230766744422875554244219595913973154949360824540484723903106194195686767463838441699357065687430353311016427800543371540431751317079797566327826481994235111515098372357227840156987430927659425417559149612628487467087845131165827289102080690461278812815888461144847951639987166745317555204034154393233564279329691554907916661731346134423947319866087286233632215743407510746170982915686333483901984110101545956676116524680994507553148896366955562673700278329350179449590209364673805650455130825416933932101631951401075364494103799639908567436215401883423348182384107961312272622998727493670617567179383247179416605881935924213142161019244565667560681111109042135741137112007318466477630309069229769462306490991818441070546182816708588530490453710208617555604506518886160395738391040110412377933401329914965437503815934987522510738462089679826571036582537486166398047127643240627918197641481232733013131130568523864224376869924428534590728483973335723090106287949964810125141388988247475579724902913800975522393695009633687585646007791607277469338086706310434715447175607448050610973049417238768726091317997395768387890926148514074430790485405619591778374020513710865658772927339583924809012095160339758556665913439629491863682983189832224011169873926940965530776661523009501965173193404002198301474190362956795976291151499377183067438087594868074187997587068710709263922101457911722596589846539392151344892587849092553895991513351859330316892175380789323890454718059263873627125019812384935814465593673679105634787439805688639650292403832939888749372341299808295816652451456702028242260446192071615791947288081453574148973446816437002201728357763510101032228447823353586019755094640793096213300906991397644630281477443301582579826987860937000605824085768194099567149712710066517117909125630138397830697301303773708885388349890825785990957431135692927306746766014942153009099999036825097217589904553642032797614044270950580801352818835175589494394554021599179924131865409331038681150845544590325173420174203333716388374785995201230995836351429508294702820500974459152809407724566559131434598299914644161104903817914046982726142569346026814436732670248345535651113023531850525789545992103268288250118617238013630067880953415450350217590405805956538928420772808956922044497620512310778133554323465819144230188975648164785632975698342945996460187348230556621360625579440260791282639575563249305837706475070156535177054543159035675445292117428759139070561855439910998504413001939841097418231641889728237116172936582013902320600114771488400530056890014315388037126353294903017874898449233464620819604344919801984445484805054456973544655645012628205947078564052621822472666121835872080921205094835551540878739195788621413441201937831333748018169907016972330502446104081984376495542571438962693829742693921731605283796663731318763710272979729265526711569824061944876062338448916229772289790910348188557765922579574621369165935832841918888483491523745334967935345613833649570102104294604175514854025779852864178050791580341773991303439193489885207882318359971827208711401492949273525760932549741666249867868984530142018348809766398196430760563942576553756685293231748459048648740104532693588490918698973070587711674145142222665737180786828002591464451268629744566205639383501237076911093877667719794818697604741476456912132982363821422563631259405334855557801449969567811390752779308815255287047903414836945555322767764563628309497687805146347446837769216342197270215682777042712551222448251939881948568291276852150516281905617287307484548318824938352457622063156656361898468137971972797156953444389356513970264721222249187522464889697947510688321674867041236304599015326575736447799710803438033393402738028007921008724464634175536137834979265780159334013683016245203326358079745359070550171541646430083324217627560541197418795681763404080237640219939266812012751374284586781439475929835832357527397472453375562487099684577948075051880362691727489128260745428102932980866901875648630767893512139136401036593672172095595642838722592721158880820091664967590792770453507306333667989907569895922888016567881060955076470480296856345430882792881593112680961965177787990570837429375193360971986749645518324876953733174398605965155478044392355601457472170616853310676797389656895546636020442643147487362609963612076363446300932739770505078253650973976155194078144086341489287902691979416178944730567357636891626859307977773040130544625430469966125297733512658354903067056913585415555181693878259943580780934573456735471997435569181924395581303693804422928600636560805706028426904349467529887119987018614086754235291666862975442559099610620729401122743282204961512609638503519732633921366771055236815669268055192212854140692878231531358594497336705318088278042755284759955772667076089697030845659676309605985448995270429944080913913120408603860533044557869705252026326800561734008147549932533385885120547321765777749164382535370005749329009942441440493999503994998006331608017568730519707377180018547880747557301144525904858353963588610612334133876318148072766950328882523046909801898831612323264144228132309349983339422815704679566982887858044421891672368145052889108739843851053097606156011209051718980136499531659853150491133713768239482400209287312555558261471652952328765125349794852825869372664836777106575557717221479032363865527538590490425141060462930646317277213360991784165757180377071049274071030575350033588238792031049316414792652561731439958889996390930807724997240701656403406502709933394509382480730379130388028520744181757484505717711085786249409531153642014837753214937717296340869781626189051320099459516599266604801064855721418689428015611482234827777406215212884563895537655736395763820654976934545018653413438861596360225731856417814679791734663609541229419811547826291810188128350312715698823811547493071490052357245507789847652310881530798539199189280103480369653992555452083582043971676736986633300922585923786354899382173740514741778784727670343970438257933050124380636653965166089660883093124318250293401350310173582817236402968843452669328546456001428431256665115138704901317059307409663084582007097828010992955618378872844317433267642008697267493275876490343973997353697789258394613801225304142725570584260532076012012740455592309929399796081485891204786150805780760090576992992356509822779934894851816711634694896044947507701746943620097408920184937733076912090788368258867413514256806489075469463420052772437198318622508865541078903884840319875613760796685402132496900841941939514324438234181202667694885212225581118625083718437736887985318472336867292312481473989527124466740752779128418311735739228806406033428309047051217049867849982726748706734891433129319743947735961120853883209511266690680189617506021701502841706524254604728917835416443123601866332150904882753089126647774295063522979996583660702968541664680765243857818004328105312498161048360190235795442991778797528155816762019416015392850934343180063248767601784216685702557184058780933258676779311571177877584477445544688475100231683433710762239122293790766210203423190590433847464650767530417759191005761541725296929255021477717242975870908626841488823302118352337068459387150838727957771877940868867686553483915571837720365531535584859628761925767017713353746481729462497301392818801432400420277844200795016106474120360248875075685667866922415640716426672758060241671258476919164736394442363574096788600680169029810094423958398620930812558703963908144085421141746908560555676853066621646834293549532570525784828411768304928041687604537297598373047348715061469353293778336867256488887311310527142598064894062168032938550518142889096705503820827375680662573217054940647013847015270169880861321928402697738878419966397763368435711464222650482825763473974298265078098626194854655336678576159495317946301228179070456535801520837039150945762717640067407824274665296756380711409927890091888623390036064827404178482299951156787974752479296631021382347309679816927671451146864729444957898874132477035577846376513339236670889190683195189184282141298250856636783285654935052818285336647795753461266810592810234768394755550950955964980676138745270416261560820983017059003579014731479652199398963282344657354443485393279376882564048351376501674861641973545157218150151983238807494631701045191029183164010302708979462181284098590735507591963950705702758316476130163918190139152764145565976027071443410660045810664298359937074911080433199078441331509185830981542352886731388891265263911491655468620340200618135630949018763230246789938411252300369903295744539490157346758888811172747415045789572865713811400782404597613197523467587273854681749252503775268679930574348362088175299765556905056792610765966596125887499213375554623673777701326255171737285259334353195450540245322510098771646934258020586793310050197350257218971778952196831817679246591662596425260695357731050800890358636121546559112249871817488540218775109660921803607027677231914292418888322885040704683803350651980921829166975488954458825161485143896623129748374437982428480293447325517990227930029065318580364170423715509724951778885268984256778823963089340854452195271648761795456538841066680572172752433086146783906428236895968303170796745838007067011493187748855154919186965240707259062122872244070507712814293512567514584498748673458193567647637460888191407800424997597955066584129029530835065590626888043026472990303653380937102090104995312477833659441587156853159933351849779326217126897770512076736322799825927419468082547926709914574651796710719989664615062265048564266417754958335422254716424605543190310179945608149806743854853609213006736157564052639097001696041893514456325204754275443390601044866319480238555308313763106579968463345857418316548185742506968389692730600316202634237872963572482676633862283015503725689338911622821038611032570354700535114565080031850759534355837509791964741949279469607732482033544247163693923283384506638555671254624899168613834231021845658123375593945152286173694904852472281242265690489070517659684009223122477470264015324500227032143056113640935507546212317737548569249037368885092427649762288763700501231486506444821445360467812593712162392075982600951677499354056295570121270833417576254999694130986775422542394340297395426589394509272777104632905328965780193028643514988376882529891426119701945685400613628579248691627416309338455853939666838925384917635122622033812004020449090789773955490735665412881711861823801263933907600672658221124387435372484481698627466575184648508508125847309751515830575810342694027490684455471050798147180491711332035179954184597811232420207560414451448537949223213492522198241166523119043215239457839109189984993622411510622807814266851015456479854313463676158942418879882903550558264669732788693641069520968342926692542778648300334650311500647417898749212495350359956757211445759170770513214697767045648121948191823331332169934203778162215975508820005810886385585401799086103641714387949759374338163538977206927266652719836133574336897290783564868445030830990564040178848673215672934140065812126693006347848725864521979162981756902242748494713732425940933482403879269556731349678831184639737336094922362876813477861014677782904698649001854763678655259616686379400542430348118655901474054091610282113760924158875278492483275610247774792338963628895945622867677362250367915975968295463095839279097594246855928898112783605055137298161257498542110990582187318027516607820061416579031687728771877065802094436383557487517359981668067804538763801930509581499235169816974969924227548958585210015672914704492161774677957355990298870038893626458688634365797305635733421517015209986817868553097715840445548923833631456866912220671094829611001423981539197725779236007403663748938616365999613823749863396072427745788981068358171085512789747311050317010878006662962747303283706471778419061470410936320941587118637005777451476439639535936832972565955805883414309712684723189214070475924851372269844815877810463311587828461937791817719011198477901029601888952939317983134226792753072652503531823280271319032531908488021834877177517001662962889041506177194939883643709986873624233942776165326985383719437761710270971451428358717785348387445502317541345361024211532620555925863508549466767336399823297788116306318125715244678744722397885021116575985733714709135238189424900473904155752708232314937989963829760039926914946237546511865135467161806875396941422176781654728325525203618201076401102508021650033730494597618986165371420981679822031244954610946560704479118917176992438396607897984175806906431806218833764615007174016081717017308104063752329256257497141337035734166049441456155270330148678265407459028097249858577459335245368495373978492880818730043419071955612600352547709389529080499044494815516924857790471755691505589596607468735384955336948943993037942856129911977638583147366132732289097586394694276864345636101800604138842520410376707750127427706055592749491263099981912176365019141166378590037580719275161865397304643632873068349245217548238874557571890147792003038075288623364744723028408302765639009814154872391042730594105266887921612681236702657117616869095574614205693588606273206528857011629457823637248328324890522088315360382127921808436778284327411509562424837575504579713325877920745692028265459532391806125686919784010473717988889771784923044492598756022277609361884543925641364037729111816627228824562358955979281613001056321328740775873895639048819883480487345582073713476937273815702225196619753310392989449276346424092064603152718939134721952090760884475514382797326890975456457831103223198301777530905640655111648542159514140534248266961150577218070799623311920599673424200836654013724538168252043497704639752659953268090358589787684491753673130332567788770471992981491562497231316894567488242805457125357424771672192436156556006573643661562661705765543665865068539679670271317332711360479455128708638419171162179925137641957020672647013313875399333396311603035489921026377967076765353074944487265621562711290300943256349034629025263522350834420102669309303563117749229114332021038201586009425579353860690558685694971234103606270660639389363803236537740246403028348293058992380959506373367020361147101048467498418185820738258001664099934080804443500555623766797222982979352927059976196619419236760921722692963115744394137849717959148773121630084006632300884046503352931403544089234192182609805930732803236037497500434136547768997388370602661070598995869298553484616276991452949156112343685538572315539448539359074039416656717035861559261415320634489487033562141442509157460958006659604232967145779450211524623204544736620971499563160028240866957704532954800083008140787289968078175027221410727332663861248267626099140317084018509825775333417292389007338624358308718293286539394748911370804773065521075803631609848337047337887001690716185126142894355007639616514635527369299562601753184958028707270696559488169193772775711817414979888327367208167204889734666624126273107858606684476119010041879442318415013818047187172692027194794079207593750680243137863815778717047934803272550003981417015816966230676879923460688939015872872811111855932891711502216286185094638356849796906926938336293532495070978967791772657872430333393219209099068851086688529191913415570779618309230943103429906894321622627784330968246133907099219495595805337547292944108280003947223348453172761348993869286070700239965090283041355486315745484675696437629511908865400156288107541081967568843425020122955760702787194842670215785421035458030256833396160978163779397636070091104991588854666666262064109119001221046553022284070682772450707011355138510806568910772983718597601458760423617253339600182976539843852847497888138756676928549691700409289279367571662438271162726220690344235569009893305500335088050805187499959394811366182823892697731078903985917701566495377910284493319853371839797655207083376489846758695791878731543414352179884752717723455379833458577421356963365725224120793739283343797375491131196816895010506021685292433564091374601075513614663131654083833283925051861572794681341659559155150352525715764417671870019698363619600741977209728407286978822895562328790045714725765594018795431828638870410877440323107030143470235812574897185418558507172888332912694431117793332348903376421050545958056021155668241668046497048465163095043310443469033266654646422011524373401611857542003488480736265050138626664408711202412633470147119703669419957140835152878581820641767545642465597438881247376713663352721399252758427931422270328984075358693294757641722813346494826826417140356089818368550373821785400223902252483141592096748298916794232408463716243239409091709205989885698356308196943206036139608112779965477027462866897139193030044121429411686765898372680039626654357971376646795805626112685291408490091660410513363480619583259585595375157664335925840625306231633950320022510467215987166210482621785139744327705272121424111727814600989494268366425077826950871848711775513342190296711514805430964798953413755391741324271460743201627350887000604173120254861308315661095762680176093262515106594659950825356687233791269583215319175047308713386591597289387949563896775045555713266317954692434197874269938196479292105279907371774729083570564319282710893265292743846229211167769038832885986787567734218819737733211793920368143702892210052427850263253911554137682886702730090216068054646900167144806545166988190834816521215419536804253774658138898073287916976020793194848984927054266450159803114989421173157808363727370327329170390963124186981199716230724312077366881380413903076566604915906704981187274654572961467807173685088006198643588942379950161986545543947901000218353370073625871000340963389872915060524747658479464908633647561215256283209063852304884495623854086960671331562269228853191561490766501375097263067409595211225988061103158881335623428191553255803312924224046742090310975216482439034552345268188210790074286421095769811857803703664203305595940192136884490097347128129707125881374419318297879178095483805448870788137787732649737591596275042147731627731633089339958958268489562062513536557043601430733065325836962192255909937934924238416810985734634217656059232358942220410002699081460853250763292164608201176211846067544303713515034162002232074448038693975905425588985447597887735643817676766053080474405013009062436245861828625080308836547152244726198565851885365074201169416597490565127578240975083110178899768656749072144866196370297015290807746626866987620450113839457872482172711594864915853001848276510899049324413235882616345700139003119161858682230016060956728274505157163205373600083100223009669477735220899335832621822393657779147380972107512477159695217300153091508439979267088214274806954812249725619525289264726884481706682591122926513609886421421352065514234123559425077785640372933445127645827350510733984644577653899697337334990097973250528899825601996570131462229400645844516053591943848777338055030919070039883275168133261937742337531573186061078270520545275070784634727587522679747354880161471320359647830765360862100029336137220320842511548895163053395677635557035918878509039030108898006753111306844716775958463758040906184222897651434474574292946811178153027696617153585453984050902755358118596214887333213513632082236940182324410146192476283959240152811217090126798490674214651673686507385245076002513792273035553650545564229103744318810150844148915917880862449818239259670683660282746103005253651946103960370950341409547559886600156952910677167806386877421643568682513084072406058833929643288857082770199799625031491906828589986092574799745681915487131076346329830123653158603071975629058497130350820294324233138457876820205750321079395468018070427838779834948462481327380937991787213155635267885670104998586987370201265382204874853763049616602226541049381760362280058012456320968264155314691367923508496849128434935221393356962587574155702468816702448769652485125938665001396489670123679129502062506683418916131826463164027897235122595029258544666651887020019200623403802463163542245980698211035121487116494838937332380316249847815432390580383970610935888936048382297376269203591735501156403144020099232439206280663040984822604984423980408562390197837685169614500637000355389647567320079632997538393309979122046804217686427191502642422608410132083876474631367095301611747472946585607870648149727064123277213591628113138568048676464718220849592593136190604233518488033155568712990630155136531497643670663593425892496142726785945716310465550678343499016423228364874394923711170246370416416630856610667809377622091433526424463235611087957195032299863809997608866808189642363508815251766177142560968162413090481639943329310795791258420277539425292371913418205016059722961594826398928032569417591030118120204165978456342100605449710525570753974660312596255783280722858791537737400731305034224679153044020144052450629032086683725740945030382615643278149889969761636049740166325077027264220101358564757852603848756388480614083427971567635635472927756744790333724295508835705309235628547579756875471339488534446371586395950064121176762935365404776547545186268938953585777586166568776699557864612870771690322024715555745991329575456744286612665732785933222540674508356019283329781200930772428673931971282115499152567184769100255399817523788227938373653927031075672982786799502523562467125131877184818304559548696479945128676541895356221562087095748071866323544681388457202021319389995850607700967320495218817085612145807229081259102790265374365976455030890783907856149409587592285201527314460877888971827979898136335754405081316044174418203517852639363203771015151068600026124794811701802623444638951816419851034734170416670736024520069518772958115309452290806298553462095134382719186577834277000055306690779558185868324512429248525895281052416674340425269445151015786843587004195914383687471090917678775185058242643548316705907004575490353703280539615277843128836387194123233714476317983657024157975151076311001251225837155991113112306013910715436636429386341271742771212902432120154243136370175978091828837907340505396677701390005608625846836504875434849385071726568727247162410363721202056092960570558008262403450371887715495438160674272074779771639194527959591690149164781338169238673867549040830484810725859323470042605096347215093529207064075553547963301479609832714685010688407280876504576872363819516798442839657987972704190289902893566315369372142919196317105253294129341422147313019329281470527741788341825466636127575252247444893852578527202265915082415075498774436618704211855214943317105850552492464589879186583745610047089144599880346227458797011104078880981218158045571545668513276773745969491520462498620239422647879112486811071968865610423101870792380142331112408760281173029252435601853045717206330050567673360428017646115289861252046119801351422183057096536258015012805646863729217196445179030668138969641954241473564935588589712857413644397517085618010018091064869378505056175986912891459698714902964644114997994306789319730579175457999599168027760938983698721950300406199679191806665566704897899785967723721366416963437667914116477026434838568370509872754686270408470235178431278680841798761537513011919703352353914133887094937121081870053823245337596664927777676694402562355129358124736819382537881527567784648845151507085080420159790933879485386301136477318954505663518860720090725646325382688092912318451441526528879748143203760219284467155194305275236800178363746253326079216377779404924800064491736446588616514083816289649069337481679324630703794239439423786876020519365036183569221312428300092075783424182498908431454844910224702758827737089271348254496802773332047502159244076368313121052426998501971319597046920509887215911574889881843913233553176236819605584525112395312630895092579897926049189277920893479170065385872671716871639224978806698700029484110057837375489920131392795907598580636425705740104578820521358137545996941530751111572598799255297413212002278209913359493554458048082759101186565532156300895703573011844466174380633560027652876284797015420644332868763636242179776006950404947362041137879681431924334585285045372059987331397706469800370216678195641477739579917448687633511323018132381878098333696397491240365870306941676757028767650087458210660528729819549106779702199343388922496198436677017225671671854037158093345057802287671438096352407516084987718251635526641846120664406059482278038334610329007519568248954256486362292564443783398647619648895554596628747596637215429554441426714892896955225526816199978290121342455753228782381945477594384677627769235121646807407875811411778924887217974018878479701770040197341069153652468482969262383482978041478634872309297563612648493846096420630454245107825700845896041705118046856382815756479376853179701577164694486442730634770680764319430960553259214915205633171740395292842892177577842810428676389863958697274189940632271886897567218823622190758542591926488092105820020666856808665662762932461886874273993432245135782563538885796952845915912503317788060082090318240596945015429337929739963519368906811906714038992248291736252067019303112823575078907484284523112533749336283252911969495105967576894810930375503485807191956163385722895362064532176834337590232603700717390630683486959426455874577289486196139779690110782825207641778327093779467041647919239951918000314739900230502491004130640728039458212032921003648698846411886629231227551213576690014761426111558426331702986169601812837811914078439652374017413389043986394830598874391928070948690326835515362944913672263127385265906900482140393880664816117782974257253597843248560973072941903312668472430857806259089628976971123574579413076369834846458028209722619312749178357845523476243223785451267258134419728244880002047086996325756414079375113129940977574898561481665057532282122407509822062562659081339158731632540313154506058659020120812542995607098139210420096744018899835078575881790690521074603632446509615259415258417497214861237683649568230254961006868254865973533731386481028321563915926854699121120184608089263914996207165269266216698797573021534528421630177756161273367921146858614992234994959224628751413085591604051198951238990969511633143350283167410339927794768714220830652304820655019541233749755941020833320972587197260729293694777481073528617180730862079469811719777303717415388245534132860497740024571531685733323649030651416420576848445118671218757613534621243714553576081872879549909415422479993028864335408377068292868656180228051417487826722933913984779902017460861875410520229277705493114232329321955147403437250591502342330990832752808394193889093836453450248665400106946406774260783148452806768423629968472520802632860552748026887304404674418512224993429141808870531243542390042403314620393583557795332788790381181767430876218983321621796883341952036720387101162827981099793338718882049714575761336468395236955731648825334233918255163709409331071039453079120053023010605594687602831894379132536628728352145522366829000358080374561684923027544948157697354352659929252603463532999054527539005466618820584053046811742064840839668478423029336788029062168572292456994926189242255575555234312083795205354152959888760149640533966392066742016693234560915414039229621014801667715370220218517743345727753822940481340983018485528425360669495897496251161460472967809011026142969112188604358966648740453745845729969018362924201709010355252264034380350305453546070491994650383316940543821453469540064185986192612432644485238327510536987096674849058059548333435491232875001034411012555521311328368321118227334867373362362744787851636279410940739456078513021200483002066755277243758034744555175552087118805193710609732865494792168885075533952524329159176009919785656326811198341316461716044703997853751813081374209409873169751717683536780062141374942598624518073744259038971285719133070156994683751925632546095463059419939650441039624464357126127283892191389800877195815099265869652756381574035390174893016709018633951295166179769241359583687126071758799159046366507031625238106763974529879756946529187988390729970346281454793258521167146309777584027283177561232707508111553525639527279481451997248337313531287438507522629315358650132552989759585288246210760722263023909695541006571327203909665675068841863670006952966294883866042371784003535843176661747216618228946415830441367165329736725331398993167802470097325986382163233516818827727840558467835113206227892003446979844301875357693887521091355700587791215099344058780368332527681292452191609513246378710918449273311459008237152610655450677627583836664718419598080386985527557933530484122573011016951993238329180189529170132233730047266614708574046268750889254883745365042067285046146333446139506104998338302122450758375814350707476497113299665198359160858266197967469258840396291665755613640604055766523122585189402033864388397577746943607177537491513748086222234358078061251670579136185203591012558846455761283153233943011210201931548818085583373431911547696437731860349692719078479009887895019240075718534241440221792365161655264653197664876013021097463469638234268116013203973075838345929268974284979008646117731207076325831572792920287239081642195865116387682674081681939275480346966413232309213956071020593050364655275078602238187550058008424656517954572330542108510758103407622261489124928236456436332276915623286105454826222913388152519721082536297005694309246756374314065415551854683224885542685259294697522218987077339433157776030792663757469303739783171962596910070187134607110039347117799972750845596004050267341686174511277063605873925049187193235524353947982267072829343591087981187383036810155292593984185673698084202545426142511515580596737766517499143765894458345511990509035919503308376420235591958847799111936771692825324292939262027323884581290981257738769917793792890903598380623130065432341780716921902358569062046071951873046045314796782034346763615598855185928032499870471751220965570529466572112650945045406412572454483231719166210070954671804694853066887300164073106781442677788837255335617678834453872697220426162921102618560599637897766600983844362555689507119911108008235597730021379251952218464261543270400389443663882027928181663480946705373536028212575674396521594607474142355335783124450532511595647095688744791476012796874240763741875689285670239039747728697093685280567749434872066977041690389659063251853295680261777598862606760874126645085025981445754293989411286578590171524436567868242838502019891518324886574673743651604959803804636539718757177881068811159956323408468821548928536012622504903506638028523358247680656247666590526672680460743778070770682424816240340709374590660365613657505084961796535527130882122559972570060527162944388099126981749011863536763740366037858901067029552086165192253498439270741786712552173822143121425593018134926238363070993949663138908952129891172784996199401861330126381528469712957962498594997843095186305258756886326843865998844450671790949737470493685859478130292058775404392282000040840349897383016543352325292623439482551707946422813344678208592182467770017797171323714048871990306098602217261016953413755882672633904323254913187962719474309251021329367816879608717762773550716006997671683207479157614896177748234981178876393497942223319688557080125096842945661898637993199414727064580079916166535886313480904864366495389501292620470660145008224686839732502973473429863643713422344320903673985591792801336847046575715701532726962179009283091186735789996964352372077060895887226080867145021125428284546048847345906160154580806612440192389619141352612015755172810364031764770066591238248023459307908068410687865587267254163457529818130419863069927902876773619797273953184433894555136595038215799927759988672220539255438236194755364045192819340516727930385820678222448911874472300331172566243057267823922575075609103653518721630572934468776571889544752742191323469055778920548044684652672283906834589794020921384486121352604830376132701667287257084588800867038974019756385078530329478503844172681677114318246105811382404244524991330887751089913196420026416960117281201754159092852984753386433730308958091929536392681351284419612966645645352004687925116899513875977773289883195911918624679597702803343975545279151461768117270202519364226125278753374911750332631636387492979634903567561019803630278393548463288558907240627908533095236760822205953366424467617484912215415505127912905414602316021177307371758377302014859814695534640897366136280501440328891530243705101848263859518493205122820550998786387118909071359223969254380085030500734802133331951831424626867754035342614027906099171230092217528234929902577505405841618451832871757587307798588520553392578744960333811714245175737484191574458583350996921579700967153757939530585073570909104318135694707840939091933752122521612185899420089636743767600369679572942624239675502099214926364479753759810882933761967882682444287443302392186612984720196219870965624246443095228881674505645852311790073015851134445371297338642876915138881095064024306483844257721599760964449343259034855636480122682034037001275787042128150715494659609743686482314028038456189701075325177928536089607764182916689717073702381679524198700488711272915407141416552431752235344369773720672676091791040335984614481998301609772296214851442096007679550273611624935916779600085429325248925751312783458622971852439161722194269547919584213040580239912423114208657781027163137900312641016032382367377379533097755589431350915797357933544256916514896424553271740707385003671924398436371620819592561831969563228049628865470820082091916857623099952600613881833840700647701776821545765343657860195490030356862725149974486095683375301549476881280218028336089639330635631604417297462863942668816142975779897684882602992627538705842351982510510957804643793351893130778760598540634693095736084793097747650000685191472349087559546773845306556203377607766207008592794332077432556592478046834872782578340010982556438878892130311733008603651399029855040645997355468957453569353490584337226414662478634935802482882853907962240379812020335043515416151260844319119415758468230453818309936321787643961671749844565294451213722480495065108171248421507585564372295225506868272345827072051669757778741673371943240436937155040683473353806249009475624853345064917672316326607557476463403642491831710858402324941800223994311409402746522217940560292130693730108897315655020730333134400491867218041111873956009156250149144299388707162719815364451976055198268497543985583604183426153251261507200368308999323209624099288482357381161522728599629819310567617522883365590116912338975608610629183774081247072455873639039453329079493283920356744547194857847051081942082654785590868703247944992782477532731822491140758465558104799210146133540773861066030814635174243301634385627648324684588778407535842079802118350561871109571924130622461227161938093388404278440041278233349329233058554392784991453220983070330068206932746751484054470580771430931592090987152075159079898090299595099029710460543320581754770542302187653872162262122975036527871756840217687541122200978610002496739897604265622339455600641205411542321107185100200930064005256955645755263004198042805739255804941181734456094000432844252541772044258035693329053680253323337541732465194355244956834007310511793527854370662216017586532344983956332143860054610031937665726968441524263756789326180138695930138061156273581000331002803523954936617241677854295252930562062972882048560234423960583294241862834590043207555977684734739611470661451326649578900730703859765285812167079249484999157725337912096111082613501005652099374833105976089267051361531244441889657701769354949455494602160914616434078959476590135193865003611577105960966102838352003203090673308576467225916523708936776446693880450628001877235143157807111864456147045492761919825459699517021647198569233330037850415293520084661818044355434978730261781899111583021364821806865442592379592258154519121351458570771381286711305297767140648016071042036237386191606451166703426808640643799763708171696958833945602132883541034096340279605851985197583902213198194758585376993373198324230455775954571429945345528997989012735261301383984615490703630211317626695608265987077506782646198303054484851207983848679765084476874102869004083433482037585147654065630777957462551184010603768071794512297345936592427560544564495987603408521021622954692656670174484634075043464792070172683816797707473112850587539830593110784411793054329026468914889335095261466102289751314573506726686135430501649462988069015917644638256041300095432262964852376617670009613341792110334663633614278837288894326256992564303737060442697285921861831012371816756199298083306799232912132345618017272098076425446842979031920950733537909781988784011202137105625268687730995258435234467802467388429310451804188301749684695310252383251744261739513966495762087739910257329642241156761347652157624061976300125832421462008354968513894347262291775203073673458268605057263155328808002671196151305027718989141794488887637324309682115940078360010744243246380998877660227820405158504651584176357682078188038384216756995281465109031427808930985371467603438269643287934276909869745557334281785971236719582062883615002047434031963476718689733100144946687658394964089202159770284315533159131360087451765816017549107820619595574456710446128296593807972860432248352693419932023022590862591199174280140028548080495513074693749925174727996322572686018616622778430582612574593087563844863428815250720738692654227506936168327081958608612491109802482753689669968312681417746470376546820177271453525141940623283539634040079860389717782682638902933444917248088643277547758250595197163227579632941703556084665834681394928161426775487298397454990722343192811220398317371857386790763446036883643376435291665557447267169188322034401743591200032948625376703027192830247165468638345351201489281995117468081181652390713351118484493446447612135976023803805137762020453968127819834609384989502922942091586582714075425921021593348047188821128960343454363213605150379926472508763595333719923428911171287605631538438735594090964617502417972219213074689372162656642272672427697048398084122157481801431670689150454425282782695745931312520101612610292663420706292918737351207650419776509073249525719027817768580709141749835707807193931191195538086725213887134957500473639201914020632021028935039244584880188509320143148663948184457848438686904686302763882847937456647115016798105071262324707970836494107362509630100188158440875780978493478347630116226417871178274523562833042934545352640512571162404434984613630482387564548512710345705474782338881451998256737380012700125773112110846663900817233355787182289806113502869025759839324990012793312686653879743425723380570295948413642741562312757756067923735235902592462370186997635815000328032901144060329330215310513581966098970033212714499516236910474334082106952907959709684186325438700395697483238950763947705269796121768424426087117273221720698897219272101668206180621569502919982986006650278574494311973255309382877412951469305924066694063084955697234620294724245704736420305008854592651744626173292139825406505227932960783076112973535565208611426417266821282528764288380233181364946305318571225616080713255128276442679027412697531532264780045779915246508711272687461300243516231696064810801658817971448272242289028814781292690272262731450754995216312350273662008954544811285289854471827891844981411297516384503370097986538821732693518914713116344079456865384599497054505333365049601210886503078214468654269669464467213043095856313074330805590423744475388626777742906077198443373149028176848990623958605583535642679974411411461052362715006479655504967196886278891748338310504722644851493486848926096859747478437070137545139699362500669531951787133191424980856602544131527762205284497146108816911749889078325314114592142313076357530966694288737309198205569258515902546954517538944881307875881724816080073348570092490350696693382508675656997750551261391155612102825033072761205418849057585774383906276901973373477138254279096776651632640329932212956552782505335254649051881023322485435369976133804692471516861114549690345417864086686947429297317606915963107514122148760843261491995132826836139103440642308720164119360416024097431136731128295215002981566746502941826250678129024166262959156736230388759762195993632961998431836042654349904075718998852389580590906295390544579144391257921023820073611482504973706629471774901829610823747586073783631202955288674861304219247363353062788856215772378739162538100711197394351686659338142607397933495966743055068197059080629543551593379370055740042925008443693156894889931549860846138455435839689627719765611707616876114033264980691510371545316119859109894123743675729254928633813433170834025354302045488954372383223443541983710859254610363478516569273968950270994460957036080392592051656825753194846585998416258235681243423645284362408986973031290664958366721021245879943227226464459304412809710540071803983626870743703501500272102179578635916978638812217142101928798100133111414202116187012640203466578693013893021701819184546427450219185805602467485405774738983957180381400610500577060162708802079729350013963258981188972847229903060944143023842780356909872286211170695127999519778999274774539112021173805084398959070891469048370426553842829839944675951077461332726997958160684290504484347268547604782795189833122827386080667745504370186443615216891757354052180933031436015561145992621576032252234830779236934326671699002326990454065780373528493755832531850210837560720548716802392632826589948478246478327041467066125417165551908436692106977082747166042326405566760326991705879021362200667978378298011894584133379906181224565045196136629849967818528497474038462324506821435878223639911719471837951365493656031586063260410736073792961585216563411511943918990250790849140018179297812119692080800012304930363998905459069060132045074941479208219090687913907500771044589710117403232115629361312704687218132514124317558186094214061881653703859838930182633176759557781292651164930016510143251196086218165469367315958854286361619620854506811381169783956838575159000634950599107887103211203592854698615564705644825824717685807124390425165983200953850612835993675199507870440356304772528758499489900975298341414588436960504944950739246043584022617822410804292916403758966729446298476879976240450197720681865354403847784723305404515256589168723803543804469810568021478205558942840585634152870414509782003188108813400120491804177687943400744060505986546064126428412613698921866726911975172931319830457559970148883270165618148462523098040477351829428835324117401426122432030756779790458098865717338812676362226304658618730055298083619767758167703616967555045703609973269140656563117602384143179014005964674389037906396860123270311644227975824641044137307176025265019657163135640837404543692591904876746830391236407048487427154333065963096084142631130210161376052997636825219304186462169272613181797121659943883272337882140931174258379962962363252094380574966977411704705954653772671898487242868195441310177940617674069475194300304124895864999746127702010817471034000411353719939752280002055179468406611264164917095643050497141397649794118564802443498313034149201371382310079951868347242199267967189008368379501182674182770487925553281222418998121540952432681472667911829275148901197147845222774521083994897474654223595744230583383046573443548062043298966345947497234497267603877675172250309773060423353852820217757685827991525005117805523951772624354242064634830716060044448309176255423378977462499008453958639388615881105992895588460469395018371882545823726719629143899846901542531374052738011552232102116290535404051466351624946916934755266485210856191603842780703545621833414701821685442920535702031136432198514989430244836557442221062576389317559659532826068856687305156661309011261624183973305179898447052359430415817966795259435515049812584953038390211802698513167977621922096188653670954411376876204232878732126761343411335451868400906147136781723271480609081676009084703522767981894149525094519557087298803778282061151486234068089889469934340584836594564736628670765215029510922434375681775395734455267825218382755259393789065383152153403950251259595205913210957828996480642950284957305956328233522869174204842779596849637510801488601801452100803858703218646249213001212601760706218214201862087018053170543235385642652669816622127411032800890859423924055276891055317719242431602386728198964328274113927052523895847632078833641188016099811628869997600936299814731098787944184464445856339597850769868997822094157796786508663728882986050649714122344799411877640851004070501924045586033689986186048628495416474556621277054869875771822233095035521463698472780137796492799822743951985490869736368431315332963082701292633797643389714997991692746916223924396617319936022609791954220764008592229609492914608312336029872014799885139171269774099253473660053978037458272038221612101144196499785613073114867599088573179516931512641836587465289185991762876968022460445364094256340678973785293612815492790665725804174286390223589753005421102804971016132325861173703830893863573617430395106130094996852737552966936086286240615401684609494170918114199641597682982957338187452181627331064263024861582208939905559723255438000299020426474141494241945784390308327498931656336917513179122546478064848291394121770585978251657385404514968929758779291403641852635808391367174242019056172482135399960193456469010049415230380549728294469339350342338778147803102171826016423412863811875784409833315089029766058621455161408595391610243144831143476084781617361498043127109699259132292163560101077755070680127919286773678877856013014588460938275450148043899889752454602632326919994247552462476734873109994986280257167236292739408055404637611198174965487957257720365896012727476277384257519220493767154761994994052218113330012818899730806826785281188366761480278112916218241827239547573798840107491609090097105329799029524406909029250123174366298998242812505656675274526585057410418938707510137699836298180915102782089910405616402435755790993365808486815164642777202451513466637839019178094950525404408393027384706901938355316024776105036110948294664289202914919652454793556342161424204142209311086491816767526478116310223440172397194621237972553677214887621837270659439355526838911560273935773006714779534484956408542460405222130609340407224743299286287856097332413723583969673687320765673042264938263591356907732174479431810224659191137798938457530147114284663394425128023502711882598130831113189147121039403503457549699777531347620201810636868016334033573785885476497359025182477091217320990088834320215305360697310848046996777186020660265107880433578421491636066773007621476032797124627009612843056966294462410665394444097352159352970728800071380992752941994916318085804734037604938821364455392608790445655167232398348651130536936527578968955449968398582895492879027436494304870623977085702685848898303340945475621414779383523067045251892870098027566826318797964911185206230110893349960744568967710857294392450050963080083534281120780483808463759750800418390730673457109041198820554489521558086312334891990134295832147916018892769395723964225525120381581255472105642904423770573641984048227813473182118891893748203834421050224248756526293258271301863667399310196752768896050271902167778130193427358276190461193165278408387505610283787960166259217665880137250813177181546464697046869192874612547338640369732358011107059997459947560332661621614036945448520956705000670415450643897495469070188873594426857624382475900308639227301196990741407090478143544056695577130954733062326809432627209333618072885255174208729162203144935611033164750975105730316666008050304156744653001517993176749136381952814339303742313246044776715004029546944404436496906207665561264108734358909927945310646302262602257272262107282401026435139960099290261047957924275091307407183397076881356339953025416967778856530419082091817124124383004507886684180852934231513502165920370386945130887821706070585848397451660704526554777777500170711731673988902973646087229589666208937944537478074279173837030953769655067539935398021851159184277484461074898141973571460079754938918436545280478163600014871509715958005881127968580895884479123308984834321922505185594981879402461143799938738979910805480275645434379367459821987229238913037639960229195380523386019740553939749267695034226042174193864878005709909132870993683828510174097731606562574089957020479268622212585948361043006290682013192135228548405061574439676390787019681617913954430847438897968463430157293067264963719675708750970275869638990431011210881688829326740623999569972982044634433663276667339950347283577020600567366281347898149790642892217812045642683875031715237314601278362168260312786733679336186756475215428207545953435128556465344419282208179465717837370224031459486125356679686636203842469964596645488635570535317515461379570719206045207563871250568627014481300482334772854463952111072871312939150472751091283049813240519606091858886280271382493114847140821289462616954019909504172364577170115070599810572205965894472242122083427985450592924729100388440241872849477811966562179212427245518052474514566553160664995009577207333530830171586202080483543610713109252981431946077304415563491855126767896820555690699249771579425837589445957025842702963685950555566159557143439319371764599894614601534627822903191666532896303812547333361352355866451016524924564450721675839254093688822271713759859471072187133521726710897067903229667025665837028214960383626232149975578933261992605629557083947565517191643936030431987830486298885821089308786167262777309371426281621128039688402243567452904735318885138479654216804838625090536846687360069936355009210696899925573724188946115110570341548285224939425994322000614145239121625134708326507254114755880504944916900899026370442656485691937795798601915387718342441859716744525805974266729555333056172564974087300073496275543684997379857459445459234527716397243095218124287860942605331636438746012807803674066347384594807554711729936690199237695558253386609152926507930582126817228658163567370863404232410894074478202888658067301040177014887004158126549871569688428689406173974179988367382120568124816935235878242513687762413601898498450309682375583194296740165291321729553446460995035144133140177766663739538782017319631873023420676097038088670572478312861561799071973725514846271400288500789733356215019190221351944431983541834469730176433924325515963792484660427346695637867413863351535885237119891957606068200251547742105095090535723907122457206197604940788870251969574646460198513691497055444301216015057472797151730958918509351687648415527826641063535385789057357850588184202478569259590592914589264373510241169859664770629003656171336634687859110568390789959164072399456808433019829035094981034532450452444109588524240315989088242778843415606706187751416184087954491552350684014546043616751210257084524261731204305021545362271108443158427598392958892859760283969047562554014639436914351403629866574849862975996552490200812886698624020873051211992559690848445059411320168278670356063999375351678236574697322547576819790153094065494364383593351469745484473891177518711491319400255888503530800293585038391614264882503182071481409690553106593529953384187007255909501744633971369295313898972794631635608753607887028546328785756792787894325594007009368825964715639044772362772332321711525515625255020545252999467585043414035443076369781393188465709130133187310124436061221722103878738303414803327880271885614851555974899985095229369608895761943931360129601442223245108873811652094683164347667218393181842600987241070892366324817311645345160218446125960462012777260117817649729949326429309869780993787807414627004997684401822838625640231931062268543770770803675982172842208359698652841435637981583384951669872588644022524044340294396454681583164513229806071675612856386727638952657166196851097334536530551946251808128091757312454223389877015158738066362717285755394728958573006850450279747784520816060325719020292106878544107135610780742619577412202995279100672858266856179413303738528962494453354365983403644404318864340810494880035185706069352100405830183900798162596572426505151372000224860323530047801934186256607754948407734924481849201553629033543711852141990525714290650522410462948972602789972460023889527235065380084520288439182969330151652503891600430031456917035394366259929074775366370844881889437363212098928688306187606090900470789735840743831708966747851470965587756189526297337322993902571955033695070740610485291091348305331229613299451422341779655592487599796363760568084925829401947219904022049573433221797912490579741017107318761903868484758935869866379130467402999119558683391430340516382150972676264555184469694093913363788339906009251427086002095610997274640005786117771846718163171478889520360954536129968958593775723810862538227743978875794289886631551796495628595096584721133953886868269034009058467771049469684341163132880177721586928539170246639059567533774154997905699407912024985388895701110699374344340461861811867417305004684084425394781314690455732663568602401963566629321705788149143255126031816849261927598331499884495868781914179260949850548595247380730230716808590354345883315826898458149759655560578664960573740118116359377804149858233915480969433236854005364346405417773700270895558581174630005015240083330945029360653460008523756813517518229266370641662377551076022192602002820087754125841884061005523425655474458784785494664340837344340723856632549479158297452988104553771184196552775585226820871037855093687209611637593183767248917294873231106612361779052561998919529865622618114555028108783012132634980029583452440494051110636642526635136435975785245782829594769113228502676629914028368488464673042634787845997917208962247045127762609446820317280623120705906799376589460042311974899726752322127679889226203542738699676253784810090748711117428972527051363675173979038704093278281712455811013695813370529450330308105844657225784045053511433188570050814320801081429716404212216380618838379424283780206902982302651038775160231651592030556957491174669294542303258389340052120581404503457652446787985319329620180404649308794901395849919257574341817205677492636340340898617009262335646435158519055359815967069756073771062418634057071764524981212657653103793147418189814217673862737808036878422430343766717866827740044936940616665248665163842194066959464250491154462554247187463727415365451031194769639898202934005345022608145526025922225901252860774907769201588705513194972719414541702915621210349809050316634077788909010782200241435657140367856013846703201345637481367983462562337736244237954806216236017184261756249818199306451009906430445094608898024517714591834596783192496622998806556794234667141573664596390170570509758566994927589969534506644752098328615904085734006139390696137349839125471863189436974705990058171536507399480480972830688241001919324455966179227929574571413755245961512772294867525545871784996144453350448921028935917497720537499437283317672586271775490335068881130248533431336863170824243331287391369322898695004133026158200714163478433612739186514149780416648689555254465925662854650778327047927521894166681483993159699972993177567292458805373514301504874683834527082528970613696069589795990081373691066382450765389904065263934861838689089978259416275648752740956300838014551059355395820773086455174798658140573310610042370388511461821086773563324914316026322739206216176042968572534138476730647105512755023424584676117077385446269068829333898477087163962328936519059957165470069321443412912324410987570963757124440500435196918322416374928731456295901287104345699893856820469280940063114997499680815344707668016598496860301157015848547476040798924230254069948870376796868232237034728363559456056463550893050928057557621628248097285058728042501818283180430908169239043468470222080328316131679506944942099431404827108396065709455926017990302048783982564652368674871424212279541061504463782651947499255458364456488247796452117342890690560316406107596414551021566484701212063187911462393697697224237909419009290416988889505273906912509779917347427118768094287270648688951969509639936550677237793741773498315776225548072752445480055729813085619093683484244619910502393157386832186927998161964626626890433648404273387380887812392029250532205577061791936103160392029733892534646364894606101941013587283042096672243970314003532745671554008617896309986890640287057565686775189644592859113704956788183634922665222064487754924893060409081438060582367258694158378660337582882926059468807806460673410467625869843533822153795163881350185246679108836255194100507871496140763354481150419002676028845047401423178367952435498482888012059739241513984191468177074558569378909634150177418982063540841244448032953625918652314594324698074947996615483678713806637944878442244804055681473149018676516482573405229660404459000351511936304783898046846914843904913123210052369720599927965284607419530970447909968700329982220813738182585554160252917301736333705486750241881173804162662247830452911473036948415890077958729553858008089461841283880409893110067655345748936284584723222216789091617388955860471820340359319511412157348164794930573602216252308988123377507145032206007848204619007913070268040750085624221825023039917438594475779146860463847272995516736669224236122488996559447213552940342362788356876396098875363378072213805086847650864645263192060867702880815232019787596433870797811576216362650945362446945731056401905846929396469469400486687673322568716097585841558793828826040287344505878353647471546195140134809003076025533008273419745233739022934890604468919085824572290714988067900263136316303501633118255899452473090546003182140668910365879919434573029722549968502511764063183961821218304085707286861865048307890721112642282296094742629369289415012513706643813448972189760751798577049678228883319009067543797640115100510232345969005898210364732388348334040720978717762782039077377930526882670860883902056956260376719878958512951001398719690682330687600282159946935537214980740138563973910159566099688949413181218676826945735830169749444008689278877565369459640854092406483254617239239459672824911442996452688989478637016283682073328914047368490448386522041864796500166786613264873201082763073164825618844976685594887485997596068401337546250448605557534483333833846677039603161653161700106450408753521565112866811668100696728725985595509795090639102717080213671821522364263434634701970500391391498201776537944209506372381391614152993682010601626275901867246925226667005077058885251950455128543666180949360755010165883628039804932077312858748943084240484498756767621735211770528783908916971470269717262976983368474799829728954674516160189361223589194392479013618283482612337641304002224167720753519997216796897195339172877262586664580632856054012326410678894563839193079539771422203667374359315482700691275543932827628766766905033549292995619026065178383244029974244448058674287569015964138035169432961899616588294271180379636039084528314971272680194677049142851080895995294650134376251539408346377455680040986436808425710385534724957844092400842438159996837398078525643304524261644478198540605274483310617386191126424716058452508622686600325385510648981551153023480162705017661635717255538464457658811953565659592452301337747816803140534808898864833541144769679902669280279814909183625373852464552034310176670604957605538030138924978215596489358133149761316375338654995255417194862050086807634429812691912486513445771206913007892213559623165593296165307732605989861408559353100393835468741472833468211101987328282160958898143091993151749439881533166981253323086913390705759404476712103676569413577461689440837829982089879319788200671302297670010632938137885199956115644013755324589942996323106312282039928911695022343263735430258864894381434619749475950255789675696996604548088360552954976636412295456428992760061375149199544494089745870748532380396126953835439960204869757933324299084559354527544038847624971638970843704285032447914453600542006549308593450482754824558556218525590546561685347008235513898367389566669101052008868218085114080888134085101210918823989421655433924778967199552529137863802578078552822827792732063507994618863477751267318383423298721606359747638669327388625422210665484201582737169988889942603176643875642258081774456059451612682875131085615645799054436976604614964639267049847459979780849752633211422897548080796953401700702696761252473698668564111900863424940914195258868936793961878062891771895254069621104130991477732820840827801496209506534561098480183407844616871019755725289157232885386287955089559099287805013400392366230032156002108838973351107704243948879995464392618091532362102285018011746884061608994762832324218720450876943765250243323048882755774177036453827952869970541013935647019976399668619196363321709744602131238380589616376551647319831721737951645574557591765028275767627371179505678136451834827715509142960444418828955897058754101925634386506790647527901152292726489509835591125399875820104317906225350323798107637749765837668228504915529246477500514070214448757202398151452661736641751148976792048546367054136659171060377897068373306560201978254968254490958458110130781308530136798377917568579590064047389788177114757027242301746779001125772028521077208211756670622291306214157748893328025144507964608428039535627761055762909117317828776080800410538952855128326829931754047532217408418702037760170811502698066983785270633369441296562527799244657877495070147155848962865839602876990092896322976736362656803352570908780297289254737411227086531602585994518617932610916748942873500029855992507229574852163845572067475606940643232445910852886944936293625160260813847284607168822379769803071435397255563445721580894686767029902794965217323202107124412694315284586315984504200728460079489067181060317211304121672633271143124470795021712051801235726176370192443366710574408179022062159098413702505064717678575594733602217540973540651898969902930597109001478843758815990315325714293916467437528917531351035081919046012675777161996028252401744012080981421094163539237707543974945688348737492994384964507458426809903997095260708974640402194237923201398347737958057069063582344664778055821953810362708258326625013616250717164270083318883653903300677601952437537188645229028199913437111739975588453391060654463752944684037435185856916327507772870024545277025711806215912215371003693564376271136341279870196618878016620913868780892801505769948215110466964291901013671427440272174324808803609883270752858657019407241075745726107036523765430759867931556422463893507081736869861618658521755925297394539700497088054065834639326758139213656110253245350390560158070543911129890470739882796241751087665322122104803939225434883363586903186117316822754022565937011527735167777479197174880827395387808828642827460300666717758170507013304403040893497329223635809418373661595107040093302407184106173799830237434034680318742370384528760991778091262677882651638528524907731608276254420727316924269032386167743389285225001956732979740885478293663400895637539062180770459672993175585702830977418323863175182564193308896608685188937398082912875211411095655314847948842854647742870855465970590184067158178487506415795952188783265705159846491152844436957830562991227116711505688959620216221081671356964623464529783298891547211409573685708079229810969168039728585588757735639127600188730425595629826724307620739571220407879256024116203474285069694277806140918352962719939269996941393104731574456383126447902127233001496444670124262320667760740183659941547628296882790856688671338857778346992743113952229545269370791439969617238770249733051035989539149331195969639027298408224233855175728932831774503245460520760911890501644992126024430863804863904838691096352113785289838887594837794733892589864112598893423945628163443928515915555702441471314381704598842475488052234547987674272844950829965981337956382719723756811219775031805413303481489763887838252052221405756779090755914178912420260226027159178273499946191964783829080741003612618274459382802886137209380051207583802652423153565766491311212998504043002314888485870821469840282199213470019818870726147402514416240914048799822968051701341916470228143743796005364149043223939068005552053249937865008923218226319751798001169218136276027333116695117371303618949960025540377834032696339820330720415514615632669495877454990827627473581798876131862481317024429083568589569338506933101546710651109321432858705891505096158540030146026481841292324381678957035385396915441709996878189844699892766781297309878001893993217053704054050500690191156260343285837460738645781895057371233935163845731965888992827391997701970785044662676418970413776345905894541585805510944868393775072677377600633193190612103681159437558413026863924402668619134641423494669314822372279384231544874178724137872501411404313825857130798926738446886760151323891732708852049996226505538188599129203079283939901738281335722320038504625175883896427393057581445928167029078714171958840536290190905589582037394145823983953281036278891763275325645297752680853789395268582530576328916960869908978134634336680303853526081435678285214688215191635998614257081836448703823832929481360547625424155061149669733646069375389123946760028277562702146513711034048881758831412940360590819595115451655181107649869802240326045470708532271674469820754243911598079186223943115800379873532494661959276249573023792898905647882441178883640242626331006389740233220084209638242899101375533041352832097664987658727950618521995270278367309841661118345715239784877837878169762148049632999938989439336130189280240610585774154126778181649124443063593827682755881067767023133296097881194287798757263020229048765954707947944197102641021539819505285627218325547637835059014023560788715388664055053050221458840445964609023548319058267076575911850255248082007505164223702366102173163252968656169017925854371098208386741993271859342413332089546597759874278426608831154066290999743682577295974522563771339711208595633223351739154466912805701800369493773734035431052005057728059005795332129070922141758779163602678565516474677204066828434446765625057778834830573455278487887265797617402837464631879324651158263121048165360113296260514605140218721432338035784635478842806375473930152405285814192865942020460900422074272788013132666208830938641146444498689082185340518776526843379839599257230968151194341913560544304192173191455667067241849659954812282278649409155899007577735368253926367149845024968367864684015940546936812447349028071665619562238878460274900243473397651446894329965639792461457032629306189171228599337651203493293326289489476009268201635520214905427454428204699280558990728461129698024887242384398399297875884504740410291591506145666839523210677809227471094681494002180240216485984806202150439690609666780544803772345485274494106632916846518926010733274434460741327537043244121578113313628466473051777979766255811584969385220031098781171638018465808301907058307655392353866994693951615854444443895872567444334682243343627170559392066643369209227156323535294576371327751891949978377950515690806171715802861557993290948667962270253189298839217677021807851921862802475401860980434955573213349451746142010832648068687079329145639105731737692421757010475293063969398714592441526507604439233640571069595559168405064621119545053765564773651818802869806532564149171076758724343832035109498598057310205994542824870038385657836346010229675734660605563239299127469937869557199123623168403943903874717383362423225448459645821384654487640866285139500279085121619484069386318632866389445433041844526553990877969909735280769388024998365770936504598947806084238248023544785319239828415881826518128476433901333648177550871394027625025188168321704640898520813583559230695243920912516579079284300641085048767147611433049206901610098939949604290615716880687062918883421232197173954036125042441825239919249684858323992810603727677208083009196875497330470210903491535748284077177670366218185862691672902161966488740607495140421455105744370211178718144705117520715719658190969158078871722886736987542242671465785528233372752402809491945132349351634293126237888981608555786342821508462662139794157450383038555279725616255330589100392820341405919132705144617028154890038699431698183500317514301479133162792363775895158282711284985335730327611672547658218926655060309509118658980868724735139146597428117536457153151391783878427566334913168195986581073766395687579246677123924725477528854786426659166696124319025566777146722375430849134320941629035384692183146563708581355505047584524995155040651662260102163929910875116622250668067494520549030398589373414410827720113090244777675997175220940901029862621294347195806344260902107678409300065479079393503405985644807360507878917433186608793768973145365803921925858510166485265316160545417092887808411800469955152440074661949607582805688528176610242063085826634734860780037754737848818940104917302684102577351493099752596586379824864270924199898536070374444826437996804227546498490879360276067078004890362174711503798043958090297574065358657755337874949276166703612938035638061830859764205432195005032107735123870048905900172611805697229509407106321614864225075580363199317799228055403651057720341476771742554815354682658962324791522927230455960275947112210242136379412784901443515765747908788832943755676162810637512141553089854965658884274073365979584512186119630364826427755338404658816293927826003078032274917762641585517401666918690441463774416779763558758168119008056389138050948499713216874198811049064779118335470528412185203933187851298002722462892679361786691975926341922041265004605009499814439585574026103729597287545609245455473901942141438633675512682898678236375734242958594862642400118985341406435346224821216221825768063003455779507135591256242252059586944110482319344188075419634691486367751027367366336233278531821239261086575491259173973295303110499910331293969539055782976477426315431256054450293654075589462338276268498754165422910853755785048904531817321823493833253363075980723328697759955076084805796975023718373193076744628124024249783136991910077328510521980434238949484111216243341943835662123017127044348095906863970452142558945792758999865872599838812726199117206755959270788081028289879581380190116854537011953463369450388160500571003986433626833320982250183934885632193368745618295412718961426632324125670856958752488962228460783812947401121318428654218508525006055088737419753460259983871990101070086409514729821933456549272580991830145085281183569783778486277278478461177046047336312274773630926364761145595777803882339170506945099392647668971778304567734275577848316076873608273305508596787102361638225325950907101238615224393807946494204794301732003496772661113569893006276005950854966952579520692090930264881840244618762679052591561467016813170138739447245922929999855801699580857904916133209303210260648571113380176499388751572332743211758285118359364125236635172699085804153486914909508469709089030457978217909211644056512412448166776107108233802202065113861719283262016299040657754390396635490667564272846942535491987953964064149163829611317783931482788706727126726276124323028077341272724307211064305622654412085881578114082423772440797512528845713440303307971254885476820464662649196337420744310849783493940696796171829072274835401088432701646452259637971633102270581849787067376176546015960941119900029521675119649225871567224991987206528278907539182107834993208690378293988920039698936828694319569536145031868654116251892563375185282734460550147865323149935128810138829287540232000947640481503870962512201684211513125174770708767289904317539290316369268591947352593160608736788863098018124605259236582071238411085781575036050673018963437656854372091682915718413286821458343620870247779926644561679392867746024403669060502635638329439672162059321770095598464300363516202118313813380940909689229949373060086415793429574286830059058893861117119459037501338606034149267925509950521813869787207765851856888645594382880515529621388481031077452019563312560171254036437479644900490967317573077198639441813963300217255342640984145663579309038290553793919278615489198938764682938623911950656565124529628982194911595742717528887451871505598398821813357405178337572544479711170166978481196093002103631717743577685971117561379502693194214619269322165333202418471206365140808237511648120429270572217288584632191556977378930011751950300231491807997957314186401122020638795221865701010108906556436877436149797591761044492284018562992354093772046636711885402659638704628361173764939620871682222530406168987443978561767928583730805381190060751516025668874985185124423443229850845289738812972031616728842957766090978012923957307412191349044351173062178391288316995235930369126518052424770172391713561898309818698165493134103084827066992149667668534632398644604777385695864964930344110196867373962766238069709036448284797378145744508135820011833246443299146172566814222055387642516876984640640648198456581306978685830099924698892297569830131634696905625502444156478047697286290642115467429053613241322141925442681854992126580211708088569769000185842415321999670603058868596641387303726571280336698962176261221239781417955373480757222718259681184734905722945026926179752946839876024668733474166840596842033161314940183194375104198235988746972458642037858032037637607863202699845756665500072973320672980851196974028126117853119007212011658586172865068257790834305097668463403429851008917488034168108255728744957432001223292759436852156940819917018961309926241253455683191671924719112029564995940051885463204929302388494549786977288421840811858207591075321582246690427581037808579344547014901469725615774620744326850870478687188278321530532583991022189662931315935593874006815995377951596122254047102549465119489272858038775203065155066272908135172475046834416607746056095631580622100571203612154921086500934951353160282350440091938432565490819446532313461630235384200805064073449369513323257975368872753254769448787256023864712239576341303646355470868939434031325401012623523787514255453011835963418125648422142579153084850119742623685614158027295694023619807370563542496616863262472928417891943529248081700082305379224444692516687527761984912958853737141672949072158158783321492544596124876295963934833030581998395770882904649215843518433605815824985007132406054542300730097288948994029532690813591598468922979721234496374840050573641138302353166763494787172906060996448856322124599117688764343087173990954780802387329940326831463925406007694356972634345290272701454380976541319363534253453106152320132936607959572614576632352965560192743230946447706201848691149861431281823354309838990863983845784486163775149962206994942135595306074220383583422982989460326159493342420947703159869996379415479083215031022853392208749024846204141465231005335595644912012021023316905086087291828703809631360507509641681906183526478280171817266960953631697358087888979166071451368096012737558493137540102626562211902158066894587553650558288014607787229453191321643011951991578984304606467026611685882765833792195278139816034455271542802041978298721709464610003755259630729280520600577627346207125470228168553962421147143080007100713747371655599317196977550681697876945795562616879424973215995294585960615157143653180240843517653361804922009759355710478187575179447445045488595629167940740500051915296975971464468343275129540942313245359637301290356360238781588469912584656509496767285493843003457015067736971297230494455048077527222195542127672318253370642090999938850839456436142824656462283332885238713656856584379287346660048825503996691968658575512926459446264479999188340597820156398089890700967492252914900977766410498200080946088398911689568239231002558910881322276770870084467075932431459076798762978569765070556736352022478308850632721941306688841408140274616645390230973342265640072785965207638647906443661587452936630070048613981980873131294092032907045608073640670582116076639572031869646243620846392390499142666387136601296142341591705874502085334701488048402090709558790408194488021350914255043227499130330169199371146895679331309498110996435053008228769859745932105260018329641776436894817195860735429113286178903726143252787351017408068719174596430552553021480804073141247239422924284907397835736205786721684436151855730506664245368211590595050455025073692841306116310465173456673728439441618399860563073944309295828819225670507985029941425024832007781717448698208601030087074934068689108227146004321237639218574883577077040226544616025866240404499398693223828043257707811004236124853994940259458537538896821816368152150856044001087888553048146691001164587295752003892547350387036031412037103767133778124867461174214369636010789071700573354775625322725129864829361354564517672007442722257734208012694055287527293740038641651780132939973907773124447140650995531463619403001973199839755844505507950718914239891637093102705300686990710162829387095378806288573241816675581500719603372027046958540579970436916687130026649536664206644946752666535417697501369412524086460880434986107355235005428999159922855282806941931852426902508436131885948624007487060442664553434032717749870826149199679102985908261282303679848316538766137009651471646662490328695165158858807564779397281799778316927139404991752889094682881582184605676536390911261776232334089850318145440851868213167427107408032242017673183469276236638950114845138073972135041592492749014233400694488770213662684554727013135435697036404827190676458877338990145745416050617985323808004830123932721769544974037577509414610791007870694342176035201402212335921354136036708000327125375481804324636177349884857246223804033599601576940100981726199670277781515767108234943481016670725987849659523043781654482041706049430388383711739252140493599898943790945800636934265458553204585711066169103364982427853105420140226253748324321441263018259422702557823824691650841087614943314180129367729628354891228460920421383859540560935334180876946991758863937419244501864889212159981598260762785543965234991172658898514919916036216172179221698728637793336462020943276816094454566613885580938437416080792562402244193461723065246889827673252453247968219481513454715254558994829809608858137963137076492771264766065846694636503480574157503395748096007503604552757819787926196163875606894591458808313191250593543223700235824840473219633271690070716568445543527806181455564825475692344809672865281439530845469618791294644119413967905575199155842534178477151316028782877769865846975604865075214201930024238564449921216118317881084529534237020590522757284248319742512796082206375636604470607721361555944048739816011415799756721291694820155289323069236868131222589215360730769293769017621012190151686959820137748597140225789640978425347768538070001050237431970532140658898330989208939570805886988178651596720993069702789363161463689905701377931693487656462972159143484641489631821387553432619475057263804785840895398824256058501928844667640901720847916970554963624466895273975923778456062855676872363766046836314531738146155937058815750230644972180608657794942198752522516754893581144709941429591526658530663475774248136605088409261177461140412026857692219487107792619964453426948837450059969737730649360681456405000079620164890450923496818322616049601473804620110669771596695000285982404890504606347090084919671097440494024933216487009549811046079672891766022538689900603248578283200433983260884946942062601613712741307119229739880810002052985294533375899126692034192759130076793766722732473577133401370124404166844910845207474468923378693870410263899370776223030755252809659229615454959545822087879124369911408090561334192217554057256372678344140936723315473908638629108952868725159219169694557924526010354783483048603113293975142025201959159065695723811871716421167175439721814737222436888647745929309873674573606817977137069822499466419191778517529396726847621141887740868857955189311696926506072951052744179792874986584890956956097948626873106387584069464538094556801212756473309728822417014607135433945336092333061160618188923365066185713615482451396521133872969285522426909766687835696827215271158520473687897431715298487467281416990756267475022297649538608906775257592037012359945291845274217825961444329360100491278895683192764536491445292307131399768702253287878800196102851449938918074489689883793079924434338951399114693799907121760783813199550055952137906761936960354580575680460003045631137412736895549292537152097242433613201315199782174501839226845864866003236889912809484269184992622003125085462212340411836264172869454551467864070067326588606968579569256333542412478352900196879768193457206032117427084891792681002708029230338010848722398987849163326671837122653728861879179127674962617225422449270852787088576997694641247717552362813137739099979502252981661708395743261443951430969258049547519291280420910235769442774089378969949491289734667504658218146957202032849459388802667551002640145402427470630917405583826878871146777208769821597372468896014200640838402370643153503203420496324641148867289811521498380350701760460925736287291539428965658932942895994305575966097507188954095133435819778010870212656066452564148082920419753750921698845762960781743687853333260001113818633001827051314735651971788694646032588314111295224481218009336774860358846018726760982690258986501915479046199593587251159608212453548586089921190359478796402179464728995989988555037937953798521611086515547292776326902997862451368286494669702991652034970452102023101608454177100259089525913224826124679477284079926137697746388322571733024258632699756111895543500658276481131828703996377708791616037468522441957600184695950947227574280394484318927153455052579228694124647287754815412152052199688182692167401256086798242231778109746220614862605573011184557131877067663429538957531808037860320194815113659905447527210500942820577099766129859973036723098914248687184043147888665310601499961968643534379041786093199882940219898160692772913999800154689238835680341506483498967387812035616568448735381990308420058115867201305682740208619294720576330145002662351099651411235104677530307566637633729414950568008344475150288993840781105033771689198075370966823997743441273962900919496316407646129557419639337197669702486937798817834087486791100275043155471998215955385964288027835505260244993514398433242356234468108423969541537798900838950638452340836485176216533203863995562508159192541430648188209798127385297793500375289418936632836194580085459964571524480526111475440732400649532833429284143264772494033328284551563990158728346996404155694993202301805525533144521487878667161246286633827851689415031369802430490156091064455035955447361887497722174645973324755103643612530538478923677815727986129883740510099177359955605803902649867138018183929254441964966112981563798626081037342895398544014304356514402558544099806879613227186209058946072650057593244268841139276407072703355312219114808189779850281597918797650062781595550428586999615559820251127565965475541504985436673755756885979149232700726425361819046269345822362802318879416312042405397529976568599545008948476800309816066628051803923878993353657801919080525400738586919882615097260686284168882327122676767355890856316665496024014170885460156366827658064997122591510920328596616542963935926033456928989407321866122298812532833642566853038639161829140275294167071173615847713073675160454031405438390086273776441621717829692232500420311167330940810134671958350874166125150566867833756286565337971326232667396463759065637409021560100489232389506649615603779952269171291113364317418163369174815418031988267818761195966125235213676808070496380378666220960635134009908307189667135974640713790410163258572960139542911513427132815547131004884537366936671470790371202689191809796476176848624708909072843054390778294481039357840528143003785476359109150370523528711552270326305301502507641415187564066994390118434363807163937885297645491711397071483980335077184423305822892651872337238070249413687633712954726832920894881540622253727741194830749262981528174308043473245263637264966002830268506552787592990936009109944029218917915475820472408404397334503712860759709892863834176144955917502728820196137666674377710907595443211596014729890360799769235490215550409993995291280509441550120742989324642573640814280623587479314490023311806299796092004022797240519134277914490272461380595251947068750954028867912087754792265702544673601909984349460265288617349736750251585307976656719089933911565984417484658980211169518336443271606171265875291692581544490693080326093573413021295669261320427722222523555028712247457189622127774015224806449400621779808561014868605122098917863198186790998308611678026936234619049738446929775450227148637447215216296521896819729999308782766986246704502019638236216017433244700066116896910340812985928985660548041168641724557335470797882884426208841590228848216870095116012027579456945314983563011343537175956582565813804057456949436218927507635490989254846541643425731948671289093722180710907346381948011520121018352417304806223976850485827671350232373512747816687095281417801089790632103463358867494534281844583331901363749662496284457206017247110459482514898647068916457938155971548525802723766333862157679215835055448896107488819988853838248583518079702885509951325986727627849363430342532117934105558087137136909774050375978451792082115015410954375476972305105361107731707224360876185129352858999257500571028129386897617089704709573805055592979751232848948107143015058615300020238759183217162654540546588365135223435046701485555703400944528783480968116947623671128211005651829453756195317305017467828894342347961270803268123031045965517873061966766629025127986905375049607900830757758787541098358937424027347234880979032511540291916650657625099552101519077324080407615193923786555445735464629767504430753376041813354180527991682821063443490652846896237241904432536981738998567995498137515846029087872710364622729103480357811344444622479299403690125126153145935885638448446992237481586619171469498381165413736257962871093231994724041136782703606881024856974186465618800225164516252887158416142795361888951495742595360577935270217917756502629805931294493791061660641146458290544401418249440229011832530269286224404844731199159886413767852571311481500924216745865580195913099024544607676585777028665450551186011704810714820109749931474447846273635755826892767582537003269523795345509381408676372737659440521112758786951423531751125474629172125502091692585293805407554808588346190818276085421502595031561101688574721405251339720435258615267086662494468584406386133654921109375038248044144892159870949121776590685165509160716870073922918408676876386603263003208883919090005394987938673258278552890467835124750765994030790155493512655524689682013718645464352700863490273378065091429239709824782095619452922670116206482889933169120130055825430180134088887350917825006278241150343879995154088991363327579843217578494587813111135623452614718196391520880926509237766943843598876704169725139636321030493878839349057368387164386579515950228048292937111123842905756378378335365622458563101446150084023248373860852049220663320311009765429937977051145425867257675826887195368928134239629696665652501566520591183353985301347325792229502312392064514271111575997292503161597518803493374893362738358175011678545434167000024493236993964691762685828942096615562466211666199861962660425014199018042342626088408443960266003000920789480348314169713319497579535584118539639332959223227227701232651329244867007172886172131154486915793067112165216416743286206208384237641168408770245188565253657853616956494078553223883171302911436235995775386747486479488217972117985556194478722914665374974096547989718639973824221177855076343685428857334919844563542877447140248949577309077055944704482235453831862105240658430539760760281022777783915568507529048773894588256497431628853118681271502024944152683216171761452378055306399156089212774362449842312470279848711957402158445503878065704769349580502102247733847066536281327696302022652505552970082795943268176410161336935102262966060275349087245341082039064176818683562629799285636108645605069765552798129307589879066444990179070436179790926191464134049030758585462215482189329146070276331332263053854696041038993469676561399411430767635322222163716952527354195130388050943469605778923950448452161707361529755474417243663584167159467647464231354240599248030977905936582350638651048607163131122156984350814497738582243962038077085482710296282799761898667586945400559516926950660375895265632758976177386357332236270089585381029396329880187958567529201712817732014787157477461436992456860251509264966251762481823436149054081796954054740793868416945124247519149347781918599156636058019805714536937857002113224238949019165276664829915642398428784045177224940621718271506512038606966953123469392390923453197518171470824093791023605456773832253540786023802189072033710074931385599064400635451608941615409360159264115541275603986942281600608180816008067401422736826192880654110661958950027493546960483523422384948879105503258475926950123728824973481084476881380011034896494979523405135824203218258743258731992112361789695508428764523141927467688581397248436212031848783437675878904642972848876542251033656149976221509534361598338035378727738604575089665277768969270471741832686122728552323804277250650556486430379091284384436791482490033910491468739346185783818605811536132539123428955310078627517317222124945496295784222921410302881432879054824529829562435605042393163831361996783639425904531093811429496500552947195269681148586613398299268163934508127324205238244044278694946051591568437523266313801777339963687882136607304892015305346817280718349990479794757713731692338366956612249352603595884826456719019541371871270689773806069004105670474092268955548657395668085340414452083267743524880074797619432753136920262857134963938729696530452133358052358369200474766237350433571136979981589873986814484977543506741480119444925324672622642265350813663474467971353053939377826245614777067957618951708035807553635005025295729119831763412665210975259476748278979290769916708249216033521399029409152389700963709738458050774536928223202573065848148397274955202497910474042265632470440078930637353540596588079557498537857135575708836648831842042746934509349133575104120877597693141845162785145618331760961475501385294675209840005426262897764072496735699309458782212712706927916829873598912985440007349506353665443694020230409828464296023823870353220675202159419125065071023156533613932699215320966606633615895271179484953596419860248783667282363451380716226150503924460650224185051580818187066806661057001962149609338833555744315441023817134490191312505394785551392078765765097792678951107106438612680059117283956109633688062679911153079191320976087412241932502901461706628467248439402409111473603683545767960840272468553118883576640943985520753740056727417482926845021038560583782566968679763266148919534479323881169600837734683557612260527947124884082276961325671920404101455810769427285426944436335335144492627148188718108204055990387480963177659245733585162991558258697149715117971143748268790865120210131386949435859746455046751765417963683891728297039149989055571779676989033429721527755090879759199790108929467031906122877191135790502342742039868474831073385457872641956267973946729776514095516747425625662199805100540257805326313921224389893592258610070651554868003228969764670847588338364628471184273914928191763200485835920138815708457784069856514810914800395906618987020312017797305095957533439576672777313197019599093005353131487024937831438241693408562900292043743679533317309300536910804004545289832817380384935600691644109468120712572295510176866690561547694595882941603035400313398648550103672588409281807870323740142009984274522796854759700366053214078798018533578464510312058865436946401740273246826701079526103600447886029226678459342250020131863005976455841103765609668042579049656145328775421145971408401846622473500654453297140972452330649985725702482564598264894570214079921564942565065271712438545877132017797934318549519938283857525850145218101865486540869435196320808128999938019948934699073239657899125743081594346494825802526720766242571385730415005628583752781620552503481447529452399623595414257633997747611871776980257262339325028420646912725623417546938744388551601817843062739699712920165591611094685915359970051426138526822654028096577669331330540564625851621612260254740710307968557260579339197075243373661941956607272507921367697921273319461727891987121844570996396469564636430069704576706439653966842792005088291762572999140757956200389851961422578079734532808242866498672643427315116799126078607395879087533713354482723455534097275048350005589738329885254775989917267904224880745905601542244784774778880284815648668737866409948159549513516108553783631307826221752825268698608482444485077084152962980828219796199258690441535547943317240313741920317769357269762615468922752529576058209237193969253376604920036506655877525670834907200936451159105635655383573240478714796894227183472855077124741211983692145994280141845114959398599656946035871911029120378963243659142989511611120278510476844470772115216795229385726273422196794222625543654793465030036562060945604557322745190257814007394586108016389403843898606126019115650699389703077467498611206431866635232728213934620753728519377428893719961407928408642003156534060181762055724054254179193246341367280997387188471132497276011392068105867133954265957011015799929042025584282404866159345536013170176259449086040092862053226004585066927737487466505081982739537938214475646121088682506097725102139565803002238645451879488286830506777457080921742803437179615468656387980552038355619569372155953624162734615665742785036287566626933427679814117060678208500378315427124689347928727187692352589310079147158297944134955982826409048597303354237343903627035283604076036926444680617489469124142667019561312994584678720665301545754923099911292279716432402200647368425006318823968885232277123314088562633027224193289010817633685413648276853468321977610110077194196263096089359043336030823325844641567552182085269198973731916470687110302410145617073146238710444837356634066077010949879786055683173337392068071708200453158076650696099552850002809790696931999723509733876971220638467190891116930231278674245534744085901513466374215208158255197285331952290350934704044852948084829622856386597283186678817881576481937555000182939649596724550660760982415469926288053588196859249957747722109422218939455668781196009709452091169568263174205292136636116126644672350717062066711690167927174161556508836645534695006194347462050981144326507220149357877803294002507775363626439300780238430138681317230265851694901697281139712368675526716866162448141160264445840043627179148470888763340470642365517794734230531513753368687841432304436029371610328890674518390749316641688270635003002591545590137572729304031907362893877492370027464941070159902801363777044199530189562772607853430191260458184290648102784683333639874511907221318316953886387702759029606747064912114143203941960804412329243416222870924668470341805305623228761542875334926350138815559685004354016797484708219033980809925491547122733964498969450048853464786171653151364671794983432192804983869016700203872756652943166216084720630902436769121678409389696393765044890297645961451664743822540796724136829088197463422634081363257703267908176791460472002953449261690322388701237124466031317757775130009173356313951031322601385892522269873745964811652633753516736246311885726157394241692664655124396236996236740617312347550426887159454959527286417363691756700198196582270355723107650360547054446605765050086506486690576105701807825417095839307748757417283201919963308632001386606572539648228423409911464955999236913840122588024054171943379381997516317962673711130471499091355167908730483622751690574154499492559597558664353104090152252599213103005501064984062623800260330156079001673324899222615544041838978159956989579623947829720072066832638249619779430328265510429805615165584276207720727107081344723878157303129890824399588825360491204918833233909982106922776978554437027181643600903127852391900642020299995784777053104284974304765610084328616855785660378739131764823673209488185763238433790701293840545369540511989457486517707171272507288388983482746494742150400003143079385715798760630434727510843196411531566036006469107082910503687882239448521860378696662427611166014965693944452754184749348951126073179484347195930779641265895641209083312796519735082653117840903509651371192576088720037278765572414049345087589327176158382668883827535688588949786887448282417529827002679429621666024837840804892388216162522079165631056625708678844725793868844790563086769138363870604557899220526277108456472377949019292986975269587429609404692493811166134526907906792590534192719564958960433080242645541583526655637086292996881718118286980277530091394610770346504259357509231253708291652168034286033508827571045999771126274957931943589975679883231580807869234771605742977260184724379398820705057090953821995487413529470274188457533523715941899049678195541473948554220978753240083519936305971793805829661069635693524249093426640519987462369334273129884441364601691848775094318990192858772936379044836125029038223245291948162273802281096289295908495223952342932051208109024129379459686266858562040700342411525502748231142905223786132670756634145268777385560009933341493499488605957118786204835185202673390453506947501891073846572697780527141184538006770568674381473944040779321955948271144775398444894761625757869628252128989899897280088754132049225913851574892143318851523082991529894014123610527490242148376159047842599191106178472311634504217310614086197142338205823960289605906116471199471615964002375044423160188903279203216728832952462923112481351353231829893430137004619234842464758811223713671976557981480752844928314737271436804869751362976297033737709408986818859439296422632131733508741783608415596865844475268093511394919931941696387350173669974352191497404180310545958325202712979794069771086395467949154166587374082385478123462713470577575188110782116427804313855652949610711580743892837699153509444800793383910120498755268077358205663645840770907051913527577347124900969565131257817150100635210985613823156042935250105692932904393366575114571999143516060534535375322925715002473100165978392118991781778937246829927447966779570596873812012939479134861797700528403315494385886423397851800428115602261339683292803117005584002517025234597788484462986331989980278717475485900438375197466549680392957876301878523426661016816655634337711900940019712069014460336996291608307083291390054881871631603439885467872412497151135879628370551200840489247072450212018687835564632134988742328354430198397258624507732948153509137027258389759182167266388564760258462843007619639466104004056918737571429560317153324767098987270395792435485793231692864775509707738297688464261329014761081802790552574921210350973971029143654092183720219150603290837703550907495407825347991747187316796489896544306185314649513033043099704671684258221353000594910853663316300055704973675227380295124616366292564784627197153138984789646553377968070168172139279856025379251500138590175742328959849213353904572425753922465183712756808646706568249016394669781886768310950840995172694778305966122616086230168330087069974729347229661377317311225141145845821015424288581008836039975103054024046398040362044629796520160711858411692711956540006002690282566041773964577564280928454509736364866278545040973992304035577804557338993295539411351550318673674043551029342132919431882320805887171057427408251069616209291026198822081580743951245197770960838074156475325157367215628649583609401686002277109151697462173583572349763146239136697705601109507088290973327856099713290267956858624838766345371687445431243973497645990838210974041584947717215693290401994850766782966455847242494664564924172608135449659669118110125640038653723576347333185753011832395530095642953616142959507361170604236852489917307253143424852281247229866587556592803553786764731058132017680845364985905128363311365361610892402890090224500236443143706076196198927382622212842415443064215087646279999784660806807995827200461022618563195092764989640030958732643907127010872467173046066362772272703063876449771761773758663219344111910734258674008069102958568609058744907735091784739908932015279521841727216685297777597261396795701773792313044555991826497509656181754767295333025685763756978048187507026744495984716891801790114814942445342036222805259866796961782632334629009413911721227313392281402698905430724120849749775897449087641741880471250901391180873186230698386978392626919094551013849572658996868200345801683123982328227540143427499318335872866002312083306256908479896539794707565108661660030754196097242227318450596901766725925425377409419314150334811780530060462936988729675838527954701750032477298738906453114284680516506989464368485950301923798022411879012565020660878569043456486062778180081377266108423981034949479587305234019930926475515944145465333172351097277732952648050566708593071570159937092680972145252227955434416578449019578848202655577407387476783524880923981972253330731601861057127008236022904124791648601810866390326057482720050127175867405301458491194127983678627796915051179080492151476852151076161265177560932847492792786537499269030835243280221909202304642038148262728419522375649543432810856704520133326353887696143186685282343555196911213187408960404448150506755183175830470972977608889701530441025601419469504625340958268077113049911791821037547927651874143192336778531405873637685758328131083095769134732136829829920900819664853512159456082096267629829168718678738038742396201121873252315267612047764906075683430454437131820538150457960546931220789539465975385690852353790929177808790735311592748710826822744921816680534057297775272940087799282963174193576393240820546468128806664526565279280961218316035118294122437505124772011706332303589835515081790109827302572915239068258759514057482077532968992380615055333075956792049508261792984054819817704085291339684286581890221532453064946309908221713991069030835849033141161080928973076758488276886908541321545682100095278448273409858902145653145007114473415536405902085230462383673913054909681692898239966233534544889595375403848644026202693716034518437386756488609450716654991690431041839128152256402440992097232246698658701525857106718276783248882587988352494198624097613261972511118765142280980137173238305220701584011380368024228783536598966921218235037519647472886773674578953930506061935163547003644839433336591486364262797386877519015834408992923507329452481392115911404510361400389069450463602349209828561679693713543974227156494008328172327189369404631298183308240385595925916397201311273707234535811094258777652589637023064548039083807931381081164122087836494526536537592308312047377202009459645549924939217777825369257555270859141345173890283021585049554797723304765718619722013860199663769850593068254991646371064518744004446281535634153544229018111322992402677834865756270426500575528454153112247837561538708363960139451010355331345606218925315842260607892481452421580259370874028380304503823199263393945747853859190111819900704615768412908921823749975441304762285878704903036364479166158741591112887035342413091495016648728392873598985253122623311858718522505761200526586451233996511952705808005644606179781588945406788842024939228280051304528140099260411627042550864071930997079760364560160298436775176380642450956858577562031972635579613577535654040299820211459772992396829472379159535694033728452413315442556533644491624455354428497058503208751440599451881232612069898685718611806873023342727439977881915249818419404591043678756899720835236969912949387342947143817277551306095431635719537900714772428939950459214922981899626966848701517355033767311914148185211085949569458242447897170831530470072671962280557508577625610228867372336908436652964538646808652122810322768150764630301057935300044927357207185653525674733247523860070566816198020620680134736259880336519728249038949502495571424630507962996318166516221744550664701895031269927414012112679383367025143339189650250853699171949067616167989761452967816786389145868717115000504585462407169337080508614783736260644259163765942234475319272695576941576105009430169004945857680801142766166499960142732841963812760818897901919021873146213527122508376729729958070767203984778383392767121361625279324732614747362160612961610738519281780039450043607818124387449725512913085632914879295352457426860966712908676365606788552762128276882309551932823249801278129725375407636252357538668774959821194743552578699755596485880120137038773407146218196735025191808956830583119554752793100203559854926064005573663180658251446181150391381974574343770411496329700420172879422893351379835075861201672533705297326710026403648477291635735729696447638684235881715808397012761938623455283497102836483777766415619403687041551827644224204374640198175743868094091280864434882933379802586940519307902471827475231891926417648932819108673209444159367145847811031899091699604486078962530143404007375026079131184689553524781953041747833702309179534576954396439390692067513483101528397726029483366743571056912316935047745337622009889678528399586945700142006090665462520563986071245173131319234514814213573510018831640382018298447499160631252995597618193780546543998598692523529233993143544102749812823132063921779945117027005904591380656899191980732898928626767317156393268996047617852788121829884014233582599301177293752721797248961407679632316825036924179626017576572420331754213724220510404917051018599808314823806900761971347516709057222330231827064416524481999415996509527467796647830713499947720920063759775550453758995709747897677682882151331777746729833103699663590219808900394981082151975020811407664143856943951623036184575217595659625725261094288748500898971622088235538875231550208671625825527176615129901806228901606827008260433342605628047301055337460820750655558588144282307818493803015269258655133894966709245425129613269432767047786815793776981762466116257045072569720474219351151137452386769948722656525753896135658093057953993142605876152955811720815326844811431738727393301180538210661904054206000990860139527474977440212529580183793114630402643840187242625805227121441599272644542085069836596890340796088169714875825792551741541976265711575248537801982697658323421528756269738792881565124266658364605725930629645036779357918764332328557921692235863424122117655136107341119285316347517280339434760121784699115417137577524631896486645766312868894108310526063343018273855153408747753496911728537175317039263849278389801953968096684628871823732865167354699498968665786440151625889747842421927522148040014038712923034558149171276063271906797926910291036811190125495444120019711194052515123943750159051223162093158286450864313710560206364137667246567814192848711046111616024890652433901517888239913820278828407820728110936197651836010005572403322181638108853157520718854605727458572052765576837417837802498823977142397919040921596581594757327718782919557957891842984529616029144091713235178835804798534222377734959113047391075686644021742070770829557989269916470228837806537552209839694122048056992083750611005485980427689385321712939225157096512204234386440834624854475832779483507001413714355145887176638682968113890870928842306157983512365465418275767637192129038954824770967740238897021771499185169045981059238710496869845753242290116915410301593964620623440201510016974691194700531305307589033308180516271927863021710411622720742303430963810267856447967263943831965721413662121113292489586899826995919932108859516519293863193573018043323933131417888247880478443638251022455346271453219425935142767740538568086965097679732825883692926806452763093061450300292025962945590049148115561815094885053407879901042980219558688056697784018949040541881240368975080259293404070968156536365203327542514628839119935484143384187607390645172432934460160808907574485465193024159461288497186310963285015195658404353155799487693181758341919483581892001933870032092966748668418259873696419621711818425187547508800151472851273799334572810002733923621990713600631536793995027828757540752385809960562734435717274428799090735776085811086561034895596938197944753790102613043954355336594276101524928172471780929659058178705308133962324719694605190887353747002968463432430531245674355891993157656447266001962016919852095151276762301287908446116911550679709676815315919847505332166153682913282982581308725762751747222776769432708355570084221273002192623900208332100368586586460710135200759940578450969106309767351051245343227326885762263055315956636921254666402649073995214359711322585873108167253835036878269626873352696950944890856293435070569983563335546635278401864083218318066685817564835707817592554409341015522438416148592165151340821847882107270346649833901534559177522625619223225513658079644802743845647263216735020230691641660460850279900027555010866408204794319847329539757411026700513187700283494874143997086950372633637800209204493038090112124456307227731440298465691475364729880033690660994254667001874667185519618086523088474631996174624001676807068680260977975155114463781406247576397226684777787201923823681951697871651887447443573027937770847750950813760231263656070785214439472470523338471501933014791775521333659520363660073115303878829464264709580058053726753685636479463090153164967331855531770531600935591619283678909297997108113074788388929491021728821228033702158016180452632077304474659228054272636060708795967354416932853630281275568260887766347435414328520212333208366872687599876971329679666064857820773859131446242660274324368331005168700461337637121836953530651148504262720316624710742707098242339570103630369080662298729286696733348743375235976008961618752370962482728887015325316866178279826780518297209258137837118340087024379656100842396549311878523099489698334990131070192269451584894219140214587612591741879272491897964021149910506136611184202982971928223931298043508272380697352317821551037248295558184364020940698612227276745033972581361383550081772822734781267988909546788789368785130241288206632833929058825268587198143651845575050979611359755002316956890695974868858298539930383131787641967404808269963705424675306360348861279473578592400522092666994301479069878685732015385358802362869424716489080682822527478222100315861907110247337031609725173516890749010145633168718231404169260101425955446937101675289428009058916117428291557729184582213927332922395862332627718581602122296648074658387500103299949989076088216077311175080721922283325339692194966614313000100469499427893555939156060014335432911076318449563352512797089084434709907695578399304814855029318581372697893874666604955742960543083312528765739664625064114497346303493973786115050524901995309299147745880210928475695836149921137145791364514970593859469122451097522554491535080059583409703963068705113240550596881278410247126897269468095002476846128623369386656130949697660292686353076686494131841879865882869220362825630195741580775345517590140206444106171555231730437725797624657408597748904580111528814025825453452792064934447796979502586631211796321895083194327864842646152268006496944406813918649928584878806311964128867529340024313683874183733298137619051040393717121773530157738397303492741820694359779695116973508587300313235156547455841498499903100529540996188807410729588353253435113981150571299576642478496306786033138180706551951781989084590303936850596093991389522647672833476527632793677130706475478043899483130432095070251383205262994208917446830362835760819853915708868059807924704213975007533944340886281583097299971675856081576644455852476934720148327363279224956799650286005400388713369057014636696174462972955308713543210519280040114742677099463513286896699398211371632209390220231637973766623177588168546556187409467704531077529733895114118557179782960260380936426181037221024833435138619300923093555404360950493955357670947579355386694213705819060849033544192168237950837989723050599394248924468392921472560322644037558605058433452684072738203352011478541751937768738746490285260518911884644113198581356554482923099711333766385887775922911768978193511140338229265092346524964275349222709310268933609812373436799015619155328770238856044176334356615480053143077442029075918291181454304196382767035584168042365375963447247351061539785407643436392982443275976001469916173916005570899931008338384873930624277104942096525918466144311025329035237098717299140443410168570428995561680212324792552452358727840769577973733773399659054901251011028613467724982861297686042816829208319678625874013992399573108777505970131920567957163307136712725004335875809650187692750769634744354652379769623129003819962249586539670083537872055109480065669231036586267474035263459790945204286394685064379033076212943118742345057899983233431655468854313956300681786723211034655291520381843235558024247336714367210491074849168367676058726506709673577384048004998903540377742095983134542343579719308737333315582635755253676730535877761837793454658493400882425698913396580886395110667998538744996474781561561956548348333803403562993777673471486307957907436451560555192075930199141709784932799537793069652349807747416281669799149845538918623616501660694843079783302086655641599134506470070678512905556326629426269398107989987069202398337858097068925373134414739972309688728901614920692115484071694107766779801738071529774190284957916641514859954924038085875499906884351348408556903185728163512672243979714021628989684207157309707720570762978031456615984071046087194033581589727417072814617033389303853524653369787691274222810440786564806089264116773945941322963371822184288116129754452398865891428155093588066311488545326672147826109499313371512642489701729369528082082819403920326668476469608246239717365330080376918637895152302015300439186858871108867182550152616962251629659987925906300629496603217254954234029101787198860808926210746380190796081548019141674442207762593192826347240617637773582871095348279267941508143584529066689302473521798215257786236196836873685044805114648705604621811900120035973071085664593067143772321461051705570910544996863253669366046008301223643907361409329235258478626124478818566692286347415316424372027686723723604425286859635553396776720954771241529997575579365557118747221233947032584877997816534138862558144042469871315468747148688943600560715815851916787694146075814501013895944921377074770928797277525201569803466057223163531798262829359622723368714791742435180459611141145199860632601419869553606735823916242333802728114724971835551824536962728800287091456021972184473639565264178990129440624811436100424330185246038189889275509416808052722214230893583011503435950595205434489014999388540401170831331088325292288677752177707258225604292215861923717717684926673755832145733929584569739697044942264799575721153558083400940378784511519106611669075736637018840198081398567438364942754271377994259071676426608854488685668669233887216868781248776655778992974466375420081496896503781986329690105413086796651033838780840564466678306766169882725865085856369464762815945652109065181252519147930708696528831517563868299934892507462030638527971442727985324136229570977081714763491750049297864485379335281784638114357319727191427150433054464625569969373033378286418305792300567052782018968398920969056413234292697982902990857972374840811113976399637138049589316271192667445329994473261970390257192959204280336696836607583736583851210436758461801320526465771892805530672376361095448593952895020219118288374267333853814386216125273238534226610532795403998241307759993844741100309498182000697098112618534829727783501568584782878899575696940921824363283176633357713297888760462628010294971916546792253495826926363892254712611291312325614661214007729403358018516922345081449609590270662441002794036724063156620822117658491950680617209126717917331874886763327340951038010466347141199021427342011206080666165181284733545725896516897579196909983561585175966475337368464969186568529615210104294592613122793992445884016556352601713870292928091264555021795576761085195389245967124841299662879932442759655320141817181300093294018729475401169353445902481807077112957793340191440076870149109839675053495162595508738318708802381182464473390923882998960933389494366148009646709752643011851518331400968605658758834100561300616533281157230388471053837068718904697232427075035224756022678206554763371903682782087207878297877197272357975524975044619798677283109081492863291755310473956198440062664822460967015318046772091292678772777902474601084473913143332043189211722863975323723821223932909910316092328579480853412411471405278255761495855618599129413647995965529236824534467101722968964078639537770585241730387732177464819620916272623878568644466277351357167739312944503883990527702793321300512751756417211134534750933425523871376264080959082149799260890271318877047765941012510568336643771042692101712878240208988685689080689213026864263907790801751386055082684723106345497337790269582617642036433745840202793689608065498604555125513723931734412523202032097463262941229300507402484766204797580013388735034150996746006064981683170074407902941988335969852028031370584250571407666558005981886274556127898398144472766383659729072222683163427300291392925558007885964839122452096576019335664377039707201327303944011350257375995987174605541313245981758280760903323518938689718568235022327569783904959084030779304199379317788323748935545141699852869584477318259779524168773467853795218027280642456597360490017877327137632616982404594097844367850646833099335516950993366172137451635078949320472044795116308018050428954556033221741618045322713611165035888683737771799174020010030984419110657576032160496022644135051689372027862920441992833341825789897900516792977744695288133893784996949555735014399100454280309646456616187390721434980276961127770120261358796180092366880677852477000681259174984435166282961011188972935510138941994842269045292763527792925648639942048954315454711714850448652823315104742012492918603568185903317828584936249524298238924691925863053555174762658003565218787108679475430391683578738604173180496523840367373885745831667453568951109987103214015327117953053726919300208015114574804899931929959202959064458221596609155658068749772095540430782272824265762638418262028407412881845555252467300576156728841605265123151929943917638043396972265593532551040903285969607233509552565470712280950479622777317356517701837670693844819769615637800541210883106643623488017347192621988828716355947752559283441894503249206685928307929574670288850382320859116136537119701109654124868755550304226659389613371697137594205281977774922009355332383955101277972892820308244213514118431425765077739623869369239942222193987478634860452336603149359387489565286317648331111672696626388898112177160749038142745059919666250276834234874935032335792927498020556256205287779485583556624302024659585591592050242261644924055686616400079736067616109443837093567790357373379807398954498374058288284478636323574582082961366499122883008669813962955575970567439097495857894425040174247732804364850418835890702517684641827847213092568408974964757063105842131581965894561674538203283314965020065232662231528165833061021737188912870984638265748745829095448014534137103642389665406522211190113339129286706129735666857864594459093169095559307985797468044569082836489671539865062476476896728461593977260382410503811588380240233565983935464569849451031001509899093926042530879039835302149493456270038178866706148416211083543763969486199185451434392399706226373227387465706843270354274278155856006328085916019772381519147551971008523672005809489054482781627393658400528114531695217534419790452470743549924468726748310536070512648690743389154547776520368057982758456618825547432780521341458610036516600058593691101833681602350532483597807845326313655929011248980278116649009177001488964099512958997318825360127868427636956704684977769324470226901627749008530958014859448985971310400899960788325032843987423609879493604951958306766189843041187097006337579856924282144835215783267521722181111703323893175668778873098596265547442846138162259552354106878073355779132636973866847087092295040316289455316579757245842251467758234077612264641222112498769969326603948289711727427233287076264048395571940796441636953340186824320402365755114761453657109949104587013347824675891689313498430002321694138818063370537669738089860098444621228892292865009795374258518116008950361220730244181364914196812746284105828590836951922653687887146756998138840300469997769339487305855294959852291759176370709669724344646625353776766815335281868594026250059533689884117671258653328092755727004191711875192683086083824053204558900600268748977989449015600562839439006911128533986360519696526532713484227189164220513703691645051219423555947240317529894633033681099398522767874159810995218273362051115711724166958399949415541903916252687739067305478282845269903335698698596448602756075638342164093014968610513598480450568156157933731115820933071505768875987983236392439940554032707574191291940111366563203570391691564851889363306091571211904987054424713000908490985106642412709453465088019653706429345438358055839750797699078807055234092560998559691428237828792845414648984594085682932819812718448370103928749058336284972179338082692315686257762390467659740041166978522849650866103389780738879525245552853142805353292998812802002877242278309534970210652136908208305345978678681973774567983865129795083244818645725104727960727330237046327989103672179967673541825328588733188237609703760102994935934581250152842145197995550934671393783558552986356203647047872408369461250728473838826134679494039427485938614905605721679495919493889641349240423196829636084272450582055406204394997858847620945571985333861612444341624270992590280737593486293052050690291504424166150560827088358359001222845617857835421988536251690611565729310351377257410114193623534189000284984130775590119922617681797981569766230508181294011928340735156121398250080741590141765732422685851496314534789740153439680250950545036152326433305071019177034208934780671649912867438759333848050944184372749955439985819189106280288850455467077861517324313416459207583138139731850997618680042336693872988572940853992580926356318175719566140087197056192130921236807722474479011912887586235533390347468351295471522943347120663647185325667180070225671829608539514842498147452964452736268851820664095190647441514902191214874508569548637980379062288619148354795262195945332833277562283211753992923385583777462561169808692803989102035515139492867266383896540680370591834826065704741366384143901761584922417980250426674808655594977651259932855206082558764221612770136718326146595988103007470931181353852053150199010231510064709741990456253582019219694098009110461984566980748184384542801288375141455912823940819291244773571706945066996029153358501229990168290447922549640827297911278101531655093019683801868889610989246820189398307376997154445272382126333034348827026890859888864917394471930613593293232738965864972504581789750227123172492830418188242906647801379836833113907774661059296678703748511716168095270837096809156358600210274903535917941129870229024936621517332672717109186456854042033657867116134387187471579105893209062181643259413345394571486219033489704821135974577471404990679017148591236528202673079381498404656601381924958778195283225242697762225621817438672283351688436022015441893802775417127967034028320801977496825903276407545868102990061290035664309887626317453142794146920149059851856252740178434440597629586778041068420685957346114655467321459430424899449068745946013511749248210558501005868732262300797001234460987695813422302318368055600088798898725010097037758398302601095318445860326434738776380532475100260848150945685589494991747154882565640328710623351038246133014680967886295267459877617777429493761160307506295387633709449058510776856859335100266613247508015404202109133198284507748977897147232625268295307469352562998438436329129484295823482551464529975555372551523716688440580021512748377215828741757400396128236932759812416372833997692358321692196959909489036714806791126397415554086713224506784720837046725202837229555086040059903671079131902355802400742325099419168274510518721970075235072773497967330065655062287312705568204859202454615641651990981549177942328968019419360353950307084702377939807472648577712533483969839327245221439030788023464106337998147958929166984329054545626029838813295110347870890425292267925795025755754137994424098804944091745809028544754437003412802098220309502107129464531921775816306732274172091113144018406289072080039251991006515954147949321700569678471815674193070103940348319561958357585179261916507981854504845702503484752396223175051502720372198930803983959557451574458094478650951914207515675356977152332848915291410197710036023209614382260044592585088141968967623217272137685123007243625386828130517317908080149767900137805118061083636861451845492002427547061620801224854396486637427178183273943384761731819608382123894653159453323147903418971337987998463781609453929022656751679140157328073608825367217679131834852810516019688948582825114925642580463259881928381692213368613988546208117160955505860600221484497345539408339025531908154501434789988780932283166040044879673098151788777299949987893179768653719490685113319154077980461846131737456970403785810419999830073652625478067158474887314414444783430264558059976872438686178785791088376090891143910906790971287165713323291405738047109057780501197374452944505559824645778007254739382855409012273852717092043239888372424906861335720011135001907359024887184110789655454052736296975334036803404288980728902422742201623819988793496362247785476456354724866300037086898688632476762997121302134401938911287377697973155323220702325151441714832096302689548048095927894593901238684920680219051431123778919278355288915011811577696084123180370943695730556382565155994134176500738833619560377397642201725452922819048304985906902537782449548773530006382129880880483327026661863105154576028003381793329479363289450582460459876285613431264356716105291845525107120148330540891533174644891404317434884884007779924833861942818508253527421665137814474040024431013040522537419366612060733207583351624358110124693374531038217362366927756473075778823983919649819866149689216585865042816655252616973343831667780364082316321326086662540685778435766580552486748536714300022317240551273036735990032357405239364866066968621792263253677510360494214474943732845490568920187155358881662951715403306106160274588614085951068948646461524501566159905892201096725904130572439553767775399502312537107970602997421240902913335006611673648230608907143615530111789858985446131885520552698189167544577548726060852432350184528039480929657880452382510935156893501166503763268130792404824514987845894014275155276068045590931433022957461931852363266676406452429848803055790186483828849224688010451139727473864351043606068364079765916020535014728805363953355353065841784660311296315203111023055444421320750660309138804506074489468116377820253453893779183548395564673974041377213815770713340499497772599054537814176932046775405900005654809730578703255858144559780346876928945693543407049775572144390189100925957022134659286942240313316431387553744079829849922618045397542356925213172831723245308626661350805525050891151592697086378327955574179884333186408072298446811114490810447061225623642929814070310084895060216681264865274052821473816937222583804041340393199031952601031779062602465596590726326351036565715697114364385531562756289693283019432171179149718347936460707206172595636239012472188620260183677106092506110612518898244557702543518000867007642122774087736625128830206123793774522618377673517110802495893426792963084527560727934599261509065420638494504482199531277621306243974328809988293261631016447985603315619922573233394926575265942671723631084867055627558610501221226823844287496712768595619357085163292675776266914861039020084542725265773279087745577666116870911021334257202249918655007720468463258354994573966967552310588560301299361813264198675926178621077549322039424009373650478613779700794998441199658007971187220807720010382946704876062071223740247573649280167898517273505394900536953647534559996366191945023736087814424048842896224103124458802842881942378485105830901495083300991929570022533147737999416670791004364123064515507740358223916367115808492376766148719776584731406391957408273050804955368308474234497150592737762687801200931729336429139785875291034463281520936496801942204169221686713889623791148935858975071053826468297764645615235150651859043399425643193274761580785140925810319733823896920556512143473942760945406084250254881277094255523256586523167164729118269281338749873522441833445587184264137604977867633933947604998158170235902447724321618568599389647548669190442337787866070713265059928576640334409260066366124457122401309658061982016431771955458953359404671689877202384095014186246466866330685189679208846069663233470125304943800248565308689222303353399094324605074934186151488987589617031113505781479549641432491164619536528876937625088691227092196697278064582054784689902652946233682711567747687944603165268319049620720553506873089750709065039877047745919939989282552104097441435685924617710249998004672875745274774206962353361831041276967011270896990707841143360963562641947814145361815117744119727062739205382620137515660737033588579036019422743186013125376510664695347725266399335130071703033350854312188830049234616842982212472462104521067316739806450883381137628263945001406689494016089041207710606698476901492983544635344849411433036750260687787261807339645985850643879944633567203452108439991704544832349344002529532193646768141925899828397885659813554583858407314589357959769997890114069018106492038297393004612054673990146550569748684899156714970700381362162641741700823076396780530606799073483736234413427563781685532330599266186256663084732501787721875303487396124626280375722671548641811951849898606098892496528234893253303584639359468702686940996110300880238609050446750076403065625831285110074229281381427486251890512460993546698866043233692527531701779322288593617638828977503253565787811763878220180527491110466672068533253354953518669412302321814364137856001283196367868612838461444731534084149890820147769347681343027520535275511975377172053788217011665923950043037369998505869867671717591827823956715106810064221217958716949471494349070939422372259940027506545519751810377467769349840795213230412077614540736695044075256225181423029237771650958374603484156907265303800490230794321897842870147912206874418568587103920964983574170476080182284455989864608204272595241162958424598055727340314906147803036938955990802048937297784727275445213829063320518733591367417859354600160076156574050412131613363250894750056067447864162222846438433978892116668340976143061258360902692749485603299632107617465152492762187547176002531284819586660889347184539060553109525398062136669786894531814910456778417113557954687687245303897232701020638530065628842477461641986513842992803837750615111669639313378574059176276880157193516177588748033831969836404266830859669057098742022000895910848108420302365104636118766528457725429025793977992914559777367677208786889898103377984298980438157597944016626034862186714957888389031309806303392309508989598243409661607508192599472638351428025205427990771920425527187962672185876838127357675813265889034599483592790999610199059286379640949854998032417228123286617662728751390842048135306682389109469090712311139139267358801792613134971465240832369522468612804221667867991335433479032293303669411314264064619088655326229363219664043467220448105365041830606181471007231370566844037634423299329967421839793847355667334351902526831197754487269793601117175752421341920190679297900897707063030475232657480714991240069268862881667355002704311145681878969915368434181184369132772195137380501125992774521276577477537950984592520541751197396089617917015185708530460203905887115301104932304138687477713956693613497605369750890268795750103981971049417374770946622767637527197290606200832426807542614078479200242372665820513717251697899091257903852009043259052888337995354589922035419321769844132448152036705056265955131536681912391570432932407752067095318424655937795926860875653527864984625839351191568731406442077883801439472023217924023451929155839360845831058264468112319078223388497490045896461924301015370320920397242812491924230619360470839826103648870078697496160678150319356249068877117382714097777070604405169213159681612681954312882960078247329518313663264232958962966934425217504840224904107065385583944083053150383939879071350245222593397474172347349981827546392158656252841391284014463307506913072095858074670506225123641566759565372939554800961843806308834754688851044719029463180229785122696199665164193788930383012135208544866825402305743188808607965567713740235271604801380356843317858363140450634594056809389570768713673592340719375217241597491482263491967396527283640880094414384760639832578251833388077265185537765493697896313581081473955714676637994990763840098692002121459317697012737112130113192695981243592884076458792226344981305191883983044772563889562759267843736655553485877734340610977005525712262734771824064945067733738035971378638687268203241788861978696456087888746708151705825414377727115469502878316985405879451650438109372628161121194242162589251327382887634297148624480741798774641913912888003836340235308659316193235243161928478705230305393504733504851898388898548965381230578214384040293858305487308608114631060936197475909284145265592299818597540867231574575554445264070326838424250510016053376838066330031243920845020832585553988243912668053879670370913766950198774018752765117143812959087773526963757786614637823970687470978820658939678089138538716310366736989874326001603296805444333509075121615079058200227201118562524704214380825572257863683985147580916132135762518528745717439908160673207625646354207209766339358449687063047650430225442381864581794156973919816933772639690812240572035002228223497558752561897461343008608078041391710891924960303866285818750209406404743792741674648202536981615900824187115906106748101483273138608749220331979565497544579894403956779112599170200185581379524802766295203156227140085936178135551896367794421579702484040668482044158824829290686143956258975235631442653220686867278536670111218413372744868744986521014768950741958412498489278554273046327801585795540203902480952594905864656377379187911623090102795641858432040711226524849594369054023932204086135780834450663239397417080725350473824419022379955767306748620863216206633856753720628133557791290793349235786622240120493623273045361152051671804589829214829853350324611328990712534656519616415456913084824308705115917149491300527255288129229548776795500610601323100075331706859705990364189826625991799953560137921742625367435660022868903508259162488991435469631677333863106570679437187319320980619351762245121477803206603840904739929911702525706996831746978275767864101181132289060879643769749725738035885242981189849741049292184983818149053178022793651298127695715831962537312598245120642695141029458206152101462524104359160451814652732317927935153625037336598534336753602411122386414054643413709257118958830770441003500393441741904664984046103141393981982036914591139742285717450293489312140949471167785017568476198979440280752076324643164332793310388703955782833644829421550627339958754494921904689362256743395418927340381539676263292698170411260605317406014937860900063493610111645530718052097399786427946382642173251631686734052323482530861262668507332221539764897799009698243608429591952094087350936617520339619904676753149656336366852363809090114982189487648389857039918211491515313160487488451385339999051107190449849390669396038068548190211214791403727977255370609537502001796191799581531867070440602522863166997226735453480554424094058258693952109727700209870751197520244099133227324963735368785058767919650400627889766802752869427835262622300084071276328860765569438778246673735546935684690260393587582743760975701616359635761500263305760990650192001072780983608586119868288456848551084359595181524598584915063441599682606077261016876281566781350469460502757995426300626284896323249218086065238698318659120418159351278359928211864383044032389195012232981452457914377783470054815647174000503303034269867696863662350707860568224528385271929962811733214832478865072388984063634865336597130155732454994345608695629930404622493403061190669598969364878581899925526426348921894755807945090988963222826101020196371544388419762173911366593072754024305580414552360550064431526863651297312411922349628961559246248629031307670649247564371050588425973222329945404420997178971049618677777902886152229667987590846523673955610807888696930746179580778425292097520346616093857047560170479342405234012169613421556058185942531001964648261896376778539495104219949931945501352350091867927061013127310167099629695842310878679565751606031313219734443721979109117680859255300506217008686130353539095010301677162614955082142218589825093874577586088374611608306143534354918824682968071172359969191617061283930197526238112099811976845005600539257007935896306654263493378703264555773593714426919441060442754835438744187575607688572551963100816385815786368744693845834515523073583804425867245546557090365151848911193971193588368452285383877974322189614644255116418439522445510830963632398634025584430094765793978360906591758231655290269818062624142235991126383367740441904751136352945473446817005090461435041941302885134743755882944124754058121591360544809874710896093928107731169944989712499958616488987615760952193666151984650382553460456054456175551710382585818344049172165787201358186172734699605781317720678039569360924156769611975483542114560525994008043810259511807538041605771876091422514042951009364872677526579369842941311795911206868347346660019884974523787961257990126435700946233238666977062461797468390055543625760802854788492007308692733099079940778321506406562627422385318777078044001024449563524396582106488937258923092127943770471966940973704783796929361641380519298249755440162947949816516016197336049177768574029349938517584086266886711497037094194109086611563188616229485507193205083306960995867143182256659154742915956442416492571016639806589692518110529939015155864534406659287761119305091044839181457075208479492847213463571043023388343665966723748230517972255555364696546902288137734024848614877412239800082416850782973048741081885165102267406565864460108138289642638249995090503896210816755298257052287448915565937147298984850834298963395156020545985875308855240934295074472805124208581582094865262947370712069098803374484955597690660536354915984481902960227041847475010078812718256678411107440821694296991458379326750668781019696842149787433214362848361635373275565601328105648062036032630493017165326712929010967625478783856394182954791968272484467334299765744586300735639536305105612202021754205678736692617923172472540392186893520731528927056861328519832312832732015182115330878118914625268631447805056463140690839100205781705482760809989274048688235378223085921627493619847518151029022846758910083957555305219858788820427283187221259456861464049126155469827167407174982535466018378869918267435450011256785775011703201621131840800231208012160495528631435492810934283093408361198489381547601512393842516261000835692092910449748595558852497483198443693817790417162896375571113189256113751093649822909102223856265683404621913918668248760328440164632310750062709956653962700561622818481978966715468652423586571209811108157630893504457334158695592080306466184004228578267269558301092087222693942125216261312579327132275078125021392178131253446042749791091933481978820622658642429888468717388349214335238462477472667639742166223290744052318706226868195307460698851259915506845107431779711332183177131795648677935513189396534070260097118698267860802861583919285200518501769624780016647211809678764996926986251286124866774378565282030731765442872907092191434814212543030113732705928683654342253284490933772351348162906315408088702092336129637015801466414112439719103737918588596486318046211027996716124222631151266539024157291505544402397359493286779222956715738342538691722677252063720225353706279124152106326844102318416196913382635541970629114990564630006365309936159614951926102202956854814260818799097962600185673615013337274156705265686624239178822244755919187673549047585843617553033178514431067053258909980016245745670818716399709470127978620991253432832815782092576522290204264874857480121013746680913151264115396698515198914473116503751696426515194367030647484444917311061502578345875888592633802658640285389266860215030539331352097185955231486694607922130165901400143599086740132367525554760716734435137764729954183114252802005550830903399637583454121665214849638389353026797224628504969183701145339489854331131090815155141340087143545421251076929293636425353440464382567651391747080837417097252824596227817120969872354096124100521339085769808289696217507445811104471919402313677367792178232061313590461484332545143935124810087724745162503209759629970370444692138065737547487507718959537717412185176505910844803862892456234654111965985664205677606069815054140709198945059283743753205875523683973404344198170663718686150150749690393461255758210107557993429375074160111207256801430837445607148634383762121644400896243797224642731717459665876742987642125345535933017153614441957569505220752591749729239160726750035242957933713099094594028496880212818932553044958056600597801859775201107215484751408881794203157680781550915840478602017253778379712832467924500258928577926274777920513217737962505071314671302825540514584076838276837077118057690481220456347690014483850596408090447768627176528830285024259730195401018479648801224674884849539554535250369896605179046933549297207365336966084753192170725868472607598093045098777359890585274332351279536837931957881449551937725917866742694191645192809743352480410663071085038346036348844169524930702373205319209471900313776118505619068497112438939790231122123342527583381778603869105273229311160088795809196321014106120638431679702517948656859261984060604822836059445476011652113652599764728845560975345733217474124084915698826587679201906336808852950181578922243481363417073935264619899788084829530721969473147458430448801532407817548377245881290963261796926728275431617837526985737524054034451913843233487785367256667147516575141994004681259796580034349780798554581320040898838579609110786813791403375197496600776213377211978796900955615429485287242437117971143899148513970385873027467013915195751215651730722199419197426056135745985389669444280923019277270830293064561049596133580466390136023671750714396407812914158342060840288918466384617566135839402138636352357404301769358191981536154148192427912717935408963327821638452415429720335921310203380372805052538078918211944641497359440881468813151877085936820714957772511268539571875271449074449332001816833825633139777213269005747026896686989687658844197546282276924845442858555135071740827587300157031254795187649674199632824109947732797437665892185245324434220232602144550498938645586669774371508165659338460056721922750269757752084316596083613066185096236605778736350171376698038945139972688717988169606894819380640527738651453477477011344027696009194376254861218776597701476874611178522210033844968832709292722685336275955990095141153804254014284213770194546700329470285172292289236499556621993875946992115612490037928928817762543904680247128808461231009163323196929261215025915435946853875145369474937181263075245319842624805676919104390123396557085573382047456017262588063794498467302515764315586919291065486450450385708535681511752247329326390459866099680506410874003360097927699576732157862147956646938701643680344378417575142364927802903540539711298393902450554250490507450997932769384431642496511010619045965646888020356682606349648298676939715481311118046354278955732511026407929297907258888561433217566461645447297107500111462228308653688391729071702653041680925743955261451981464146390087495104961060645774889769619611588334894876677488698844264208027634737221445751849185291884795601562059263807214658330552107000791850056941053597346592624018242553744867870240948246357046062429724851415821551343804102857949577168998562368945865016821851554844610935270846285139259681231369833793085216274059107941253800823847465590360514052827085221734717239116978001771315508808082534290355900039467350246871410125089964519181102730946803497101834349361125571417249777399569492397307051202764821866234191789733052829437852308519284808967158357446382218230891056684114611350369247749619943400753264539631840020340514746097672764426996790570987803753804147553625811406850073968129327861557332760197663180053741502132225842212486303120628959292021173801088378884726485817064825877830179734908429500110295485044734753084623823262348429261449634457968776899071415703721502627519360936895757054198124851850130059268685482228421316624770506082610918275723283232430014369972932693012762274391052852670347918003938608058051565215869566692017916436172379555047550424501680272256782351397626431034628676965169436494940648383901917245923293783078153950605328278807966202257927192213263684019448782342849904792909319641639583774082503618136416300467440001434514424930098685726764795688597000855556837986162562025649083224579822442745955400946943304525430689033503480137262092352151908516836962899763611395139358425906845038099833768184434497035126553057907922344051606426873141186143784123287919655562469893287776193183555907288289666803787494596556136593407873723779292174043541157509757474331101779233077478339797904728641572981883592119347582081858734007804664685237497449129691927953228417828890859418702989324615394615730790032649370550870169867771686793383991762186396404990143648399559525817299069631352675081256010168303000080255406611933531616022388354867546972226893828425652589665289686408531717526907698718543889292728760604174914197112443702657106729467045253633338889390349744656178718943817456855935171203128491264063000183117716711812259036107473081166375879614209077016249691515961068834748485620756609305706524366398501193242344610398604870533077657097413427011030168512222602590692497809859751924528961613534509594460081278346965518929214855851957352865656271184877638311883434068787222496306753145830219657233953925488236736876228717392448663975336063476313801970118821538062814388122783239850134165852130513015965710282496412527148466528616433418043125264394711196941989884226535412513019612206760384303135226459014313465782958479443729417605453128822121863406985674309496487597662614855577149295864473171500456065775173831412748630783556989723296053708666467346759092152869303284427548652504515067402446683894072368342743656411339842622559303391499577183792941023040727896366508952800787945642830788462970266239235925745588919965302466602974420568923132786239269092224427831188869524076692436819027660386799232844855836301491229134922992947648714147791192827198572195760076983269028315477733170055286749102843024979924405709291824707657918347805972647431892372926666015941128328058768076465925592284003872654488586772364462763899497820776269546966460369150445072227243143347726202937147780093789216500490251332768310518447995405119281854830745843224292464435571126588351725019418898786054048202221002558718776836461297739006244994547413190910244520297162776672800641997184365070642740452122294298755540420165839804604380256573302054526078473007744972054812809514844060455960591407434128879533921863224181801185063548661918941132578234671475809165463666573040761189442994910540198281612961421156345676112496481420275866431219263607139217057114174232419716386935415173293013501232937955278082590309804557052105099600799089806394228761029969437425229498218650257025768906571636830752055529374546024836050489050352680664576012734925581848038117048311520471524246737022109120482644628769275426726179759933736897319118987260551866905482341868763506666429793023688923547225313023388498834840163609426245137717935855108896333557966279082295826036356141867939421519977468768147423601066776269419735702148133997308092634691538769361244107014519960622511299127124438932132551448723445445052111208108437741476058307540684491410847217048334317671561902776599775420458070107249856144845326980694435464843742172640525578590183591479201883135697063820381570315123680950123871512574038271702989915569597142685250905407251505772004866806337077517032505604352866541693744060214925973292385049608601138190468966263765447514736738432258905197593207439801375026358560162558163433113782686906015066056955772634715796611800495710736123179382502145236671745263504399787841370569908290043764848317184161278603436403865835819902588515033474501394005949718459672341786207910072373680242294553962009247718515639954673501917774006038326605514072030860254429724347407362563762210501501387104550103749567759139127883707347669048388768193089627188757957835844197505046113910781512091068190685692491054119690794124253876863756401286953206833718662016931523760823265957780210037835007145726590080976103667020109381555230870543963134248679627489116014265891909852964576895293376478170484196277510168587234882850887357866121824947974202700370051272053761807095822956006326820501367871221291632368364067242992494957286407144389481042651951907045992130502392472652472710391423552357100420156901847205554893263753987297218345494338606315600406300549653448914413421645828914286872061628996033419200929120654614088791117941067934456536081351664651385620234726955664483627451315753522749444856592578138883567413210895920332065639790774570650287222079253406600362173668790082825099393129190800914065221334902595833511661547864966426509256134194917095181565889296514239859980777868673158750494817857174540491900069117709413405447868686149255730387998105095528837328931024767213229031968131291851769292453730838826019623365754279658594750673715912442886304446470918343828773349912503402823051764730242558317929126896768882609939380281787555170690733115051019071022602151252327082556709269721256332097333937641465449303853161506734901741609553809685924919836222305224117437389417989669044766953046953592236509218716551828471088955577845135756211460163055218764870078727586643671299119520290121993844640821402287665403673963578451863029128118746016982199450197067051817326565888204889572670793687663510718038580017949426139854628494118926024890505357826652561866882474825171535702336106129240198084099241456183760482157157328393264069525030504442746745898607324881136056764027268498110581126191971168871062417699533088392391598072719292701686260485435558487172910231314891734593466346230074437911437446503668122309878430365212729363542659855833321310762999334902966369474615891729488321450820425865811245196631143182157349087197776358358989892547228792928820866706697762130937972965603047506204345813420179895496014982205943478168514238334772217723430302748622130859407368426155023119591086943268138978609922298225148035111901290154991451221491754395051183433880287773521316932765173988041942552182521670586056240572128067847972436883516433321430183838347241672567704462590058200859796589968519859640509182783891243225711398549531273225278370780686893393025888328685139891011556286126273865005390653672808261084938868896750248878202029544119126660425295839689520054470771283244905791190016765592594957052654812685623304963815390831490938664275490012474820659806121131336559399121806462556590560180507172726321124569798822977305722678154056648541854801698234927134637948789001110004419958559725299365673299605783298249730541074518261455262321192183902561335970535650750105649152642944393631548226883771483420335373241504182886124076398066437888142971324267635097580203294589035875748106799972209386362255810834580629786743124873304088532088469319259070299779556742266266443199659873661178839782576006156282994471185990509600438365162894738468418321896246278746740922051995095029090747898400375838723334145070048668946169606811722114176741868517453543855204091911832472501668559852219000080892634105647657645448223943347722994151312325109003833907139464576228373762884060034028142783757656837673023681616838985262206497689371682733944135859447260289265555350026401103114627811261124461044424767677764001737998152971783462558011079048763917799479538038582515924385514352040341650562535713524645149057322569728228503618044151696612380723459463406820078990183235278867975493189261946067100709526061879986010123250245164080508471970731267848540777116437862518604414715551343260611246214718504408852685074633667931016924692256314173588032883027255802604368512304989967472001295732594073812572764233323911093340933363486149403663168260140992459686020657711696638501909029313067970650146115261949509713108605138981137208993091745301415438502955248085829034000642233912677935704898321261730688329399853239626057970999105510491732742772224809374255715512547750691278348384365096957740910582798655772600734549054731707725348630329707259123232276393635970206318950110200210453856530910297742516353359757397999593129594702410972677405626239034826950720610633830794019076063895652513832471024021923039940378744472204806447562616571701030421284129512107660743272275843687072500639531396325195859837803476027930009657973845690526589455470020754666676088592830419084481769917128332599921575750823800662167049730466519133573793506472581960357108143524367482808157385890730306530873087042150904589694780504048570133426276091034086967101509827146353676415888935458532914783087755169109715100559085495420727286841178900913034819107653568404492102430914050510106832835601807864831499475419344468474253183674117156022726755076014313500658766748221002524410448408834016654659105363970326352778589092193208440683464224105638834649504540923207363228417574266163539501475948173514421760489598460855587216401438476699459339102820849125000051592306324170541439590614035084692411547422158680633941030730713918248462883796508945341462575608278593431447685930798011255732246931374093303009557286436232332696482502302749581188566964098981250859663501617168657612310112417540935830784659009171569566621243517170195920395049396297410867885813867985711147316140710410931607125509976958774105331799270904625841971401307252381415932519624802828515494445560236638612313832328966212861997529156456343564130176691766274651267419152958237291788329294883412866736125225312834880628744194731875694281234531999508864296502067056153013785214654039780367314132274969821692561976010893330896249967199693561905698195437005025520992671986505760760254369694147465345211363115810019082502260136950486703244757519722480896812395754384050897964654128825486955426863278338165460354656067774324697602157044151165797353550970461899454590045645343475439796885733866259697593726178448612282376755700908876056442763370690022686623494283222552897364005375481178465277571781070018225308057076967967075459134084492092187110537401809181230996558130410460845576449017312988726628770691790111842552898723563936462877415927606162835197034181905718001927663693298341780898209377507409480219899351687864999487650661087817550389323710527603669201671184489988296424942700163348669259499913503583478992637825861497492736351774672599135661483495189989467246415658017781313713366718623309169604218715059581350079076661573548455790056431911214969814990402776622928435318754247102493891154499978583440759386634037786570245246598979898464284262759392010633027097001596073100377903678115050101473355080642161500054999159193737489147226631181471210082896038075455157568815763000372938910713387211435003762157859414873984175262903855770550196427744711156041633516307835916394490300131889810558480227104008785108124347342005944907199692611134754713716651390555514952049085059519681446160977334745180783519814953655382031797976682537358240454356264482496758526405687826044389413757636225570044523594129146468716471341295428775305114776063181508314393367008035065635270263659601816899743535055714903094525146850096913586477292499079769930441124225129626406393665077731385028087945828570171601156721858745175461250499474926872199653474547191310667513220458014966878252141384727677785865773221446467858859852188440489313189623747774278812703771250705596718187473828726682914440628634960561938661460957765131622661970810847693943871643512070311725729146226143392504210580884596794452927797781765940323074768889636895857659573091351237875865708366104250037215750332826178302189688900093717257730559613434736631939688350461702847537092240499520200550274476187983990539521955335740535768028400633303439391400480033735255268527655122779709666823435763099225164715970048529669127691793525544378101956414449489860501660822226514778496708716538350157885932854239516837018401764780436985480347918072832998069299856718835277777722612962215250142122806168409638968667797992331289813704071000854897518548332336375464868995239621037864881283780377952527735544014844277773363150894963063458550463796498322631640602548969375773500047986664215733579997074570861021973227075875376196910900235769284158953687279694480036637682012177727557939663387444102086468512832304578807590754704824155324344808826153217384881398497747811332744048621550001873577860446051487494280483367239125960949656090416074599411178201168918526801232375082491440323983665561423174905367276300566799483849556288681623201639501305320624952897014074876551825878205844086077656080664986575362860571334074988963860422543313933779436680864770194187371358797708713543480214839275491975789703217109641778638311657580761041291090813224407054762201843903436340188675552169511577635119483803389901302710532658674365441318598038654659450628246833689567969257126928472995323807104049079778506454568759477895517478022861862753164786918308370647858447637251971812492692054531072300343956824804584273302393765150853356637949546630531406024695248166296932226909813497118732259443726315226054440184683193502644218327821794023227122533513993067196875100987443030986903937875558242294156566319080863893957738765845933577735602830132021362424957155606244093415538802909786946098998477645635369664531766315037299673617346772149676007407199812747530620839347260791546602598025533330730167066575042578652465813019969965699115178584586573068647569546760978930899949496496618508097374889060894496253128707518167336189934888616012916428979851161195575498649882216143660435400357767543811151350792031346342696252288551620038015459126959718336884415932495966054089440699117285423834917832957194737455873852860806968746833415459485341947908547596567064831786090898757594000863509124758569359262288979217212536951832214537083498056379249182650929089023539677715890590955630396489865252989172986655673409614973615107067180774637352015875156522440712326493261417576540003072499321891867416010353958801584017581019612560240797139596867400815161591054652092008149996700206561954928062038960040051152366318799141342918143759777169432898750294609772958714767609885016861938041302224522398740793934816021017187479612704300112442534511116185816736630156708616640146099296607335048826509889852960216333277335875289266443114095346493921647949156349204560687158064575572118723608457356863238778545166545131589560716608948557480357788319756506066746866886276710550576347616845559926140230967281535601610442435287136923425236207718794158382441362622937640394814264773535323412573094244680025262422356732858009767602570159805003647161745910305768040475958532339793961773374602010664296454028102176355201208713029033599853200742077761278523614411119128440130501218987903777745745983334286972513675364004153303880889566810592412021044787799518492832452023130747432996916725913522761851358918825669369199885805449053414359350292753700838718846577374227787643148526569746136719677552766986146865530759390823864232001816328257834053862708618465789225114323567312335794919651616607333465931246988891138836680483941241528291340894628502983622720340301500588984673829202993774677538424764488453110445334124134981943712686464981123304295206963272690186275831932876932120281119587365374939868308094864213856982368030983034683931386823777843604064614283322815402636405343539545115270018846753531767398245057311838006320710650577817277957219887798874181702916907932812019891716940580469848250976555059316230719060203716128806052182138336708423606675072098687264803043310605869622132160501144480851615069150176970318524358921033586788356961731706192576218006166951175129213481975204501054384950152087292567304758205511768432355175661742757390729220963933643714435025823505148245275129633863185721214223297954116205894761447456432098292037695550008592476199111902349145413606682007820913219523300916945311212603881360901338861369654931928332364844619213267614959413737261981881114427969054311774536066219733724808384004451241702541708863205381822987291587520611935020907128102049630346089159610834917924594395337338359062246849226713410952405514260466977605105019452961501446782447186526006256302383352282649559931765574502285603916142386116636999558717331390719447530089734491642951800094502168809974708368092730194151380754245928175843368732953829280562074659066928656625407509185942075653563708621816345815321579350319451259073204436159714884511933978796893148848964780776907479516691964866731828286762238778252122061962632117252907395623928785418021375125148539690303060598597746630488414569728825726579389293308825672290825416756177642078499067021211371047738838654693680444845362956371976489477048447559076353513558199724721046600015251457593158975630660384902373226154351935862367953815814383892292597824351301216958896136748768678350666318711847219911997384059298017277959508515334592335241988436253976339263875238358306525109061835532877546515493779607345095626327957507463171661037562508902123202122982740322061365989027237372385225829422431731662846972593142707237000265858324861923126468277701501408139417830285132767504667667594986518009826340360380681024015986220815848220410745848653065173684580470840814475593450347871885958172959920319369287008011803379889606382427203736330793093451346487984047919682546561538584755657405838248475709179869404170426363335847122094073264070705896629081168875019431961342105170061004869248574832761633696067583299246585403048780388769356852133681147771611425072839763804825386108922482386065860198046581180206413743084179867676499256322644979332121700791496266919353642147333358566753549631574548250449767501943163101915721977609559517114317328699155555389292561326590601178447770773539587071142120282259845102919938198837617127224302702964031262725127246706440114796765740848947170981322625389046279632644105559987474565928758774268670552340150286374163208847088209611166762399222619712071546703732802074090195977206192947760927782221701282173598965981531784009010044516438646968265088595603867024082192551027663882425705498500292643109667249354807351679740082505016834180276744930128269376029129898845184795367491614630597225378082544953246600073662977409109340181704301383879544255850925213749902201132347750067012299689304237472713164893661116836471173744943711021572569370744591951314171257770599392155589573287660885466075677318944756767121586091172154146505412733555256964838186867657418402199389310329528171396297437171779996115084941742724858358999865977567790106260108942263226870063081635115715881531925244844786417026192376620669152475580879933115733528600904151356043430727097664179193583481638581000299680375346614074478848973368462876570654162188962946046532894668684784030188834252732048503771399158810413625446936044137106782621382505747244090330774899364920711479101761250477985940940170306345470610666443287119414841475595463374705737582574659676488575275468096653669003103281990969974602389880749303831012941435081093354810304886199098640352065749116370578263627337666792257281464638149215803494384279472704022178956928007754681356155456131359475694647377661579518182945500815388678497027406920536222342148556689835708607662256524006430387269971961997917592641928965794422894065024296388974307821815043941791119590617445015281369395948932034274990565964660842921402153134635792175553573200658309364723746019572997453495551498425392977858475718870363926604064321945411277333280043277534418814101295020066160534789472754305851250214299021606061197826151207003281375137166110165986287365247576136379829455165260054484486313255046065519964352732040298378308216006351988006278201198765000630569828532764344355402654289440532655977870945690193304528356085252596482487560231962410662595764028894143474673464050437395137437169086663213529034712268616333450861251863427168446618033904586166018400846556042651646514233074684210451626159385086504214900380636823404094563698713517231709167618875742832580914917479486411225426443995451631027493898601981726158144760879902960602221905359513262831149347505857286555023994442989009925406136726011072501258538726795331351252498564733929137097038695162034680337188684090033746725866597272851285590261575850126621041286241033979716200813541786161441921801006583797985133768758763736330987844490836424164374711265382692757787732001468926540683477034020102254612064558609304420593256117195491677119719224154414513817567772190678784860651748878169347961600608585858537476150471383862196694909639062963535622453981721124295937310011281989230723288710434153405352491061145944484154367559418611069157149775131708990307293559944333096966680823200230684674993151036742590265268916332497614813866778423380627969938966469829269586250793735205551176152107185991090009613696486121670567484471096427995660710085505240769509740598862980041141152850659035625356508782211146161707734205510100985042614712170481367908479825679270964218247284572978214163910400056416427289764612100898748165697057125376250256046398688307806471148968187878820674404323535655607615802969628411645286644269148838275227845380778509696087738902495009661138819709891168019260272106207377168751635072664272187399821870523230851605105445969400619270414142565760370235730607457213377085430013557844007603165565161414438969725646882644763238193017679886980876708130042908736294179162836063407477094303469431927137617628573535299620470252753193307913337564146961202162411446718679852871415900969719640807452110813832891872418480761442395173152935865397870762454756546811322526525028791809789028597582907844512232819888438019493622971296954331714407040740914514544138205711237421950830852533064191392051474493083751860306596527958507889568948085184877151676362119446351757905029607648263372224563251446830049938557664291491569479168374101168635825450050983687039116357807156500133292208546871340466718476902656631414675696131999614454564780953127105620950593201319079680357906928280787063251594632494246572693493630951461962736118571639359490079255262718136595235967636671133771442815849399865232376599745727226297802419351362653800808225467172830669056740652891351585236174621085341198098227508955063738820505501128605884466248234221291363857949523896238845160135283173863830293737594175325072774410064127349750490966253946414142700317348274756650493140986041167608283531047574902670934166867837744425300511174884696450197257612040344696951074364535241880573750369659154522027874721654221172485207265074277222179650184316760390768972649494180900036818962225385619633993947801011908218500361366467991793482496264090406997611606046929599570061264930573250079644915380010974653632401010187448299004458906714836105780865973115086533588709520568164091866712198237563072715425980664091050042036636827308978566776002346937256664816518854256266009987553774936894549860003697595705672235988344255419484615059777761129855490242169536612011498817026792780032238435538183093909439912660535786163468543324400923552683222453329535864718359979691148590143094371309065538732517779532034988915801448792928914463104562127329324962905140491989046645311935185646625729059112539823161446767612801533841179950161049348998500110700497589206057903043638615468364709279079213713317964890212841877118769894914441363707631913387755271230431914700819671065976084268480040325458745489157289938569599697342585687315857822992389472946287394524499077742223212178166633569999759690065672412086370447943025948496584348679405759881856197415179111402708989332575916362879708622310034955182510270518915183848870982363059068865617811681312073213346193691990019065017886730351689044210072412884073187377060905806253755362129884354206059627685378856229852361153572246636383219405974371618840548395155327538555226727016321630341890289510331725327754455242732394577189842985029879816137942851413137095574631011877110216884084346996366300749963682553185455834363141939773687532413926933784452255604586374188540631245981786502648322631324274274443460192500795534286315857490085176735424453496975124265492889858504351860590836730732286889719035126453228337035589575587011705356949684764736098615389585838294443182464651097528805421078935647332888680213290773102587850671111394985282886948385498687316664684926367863150626166159972878832814560271781435698445303562269047956782336455850742681212385168537924989127074764541378660704039266715876217012283093504767785288416734837752089213681568935841055729829163201760000200197762738044350744073263271326097452447702787693498047434607568384555713263408115333715164364959407774272978346531155407132699687906751021509164075136223536983210214420790948205526588757478567573058003386760738977415845219356800917987783743652761025148701140432279117191954772839938686278219599299801884472369063962553063052688105339743811355853772877817524508997177353967835795783051008325361056922808311449908113501094326185097149788221285436766731299053481761092590341279754721154648338304869454496830405383463874395868021478561719536190370766854782118195688594381542615957227500727867513371296121162603289258960394668534835976282715463732509882269834682906983612779657447763187179519983128529800266642504423033972055701529544429159345318460946859635645416523910204866751940812422355823239294034261321292393266818786256977713870973272646758173587670360363431855414886481645418872317052343190417007903475140520213915048064829821714978783423117679022042508446997987932385673682436153753575637302616106883623618484874273960864953535913490238153579165726972594859651290045695652572672298723194276934335139789252891600915840666817639885802160365913123657144376698234008927026342860139676276184919813273937108142671193046516290124814047125808918437263964700658814877531901757950647734106645089479279376996370978824888376385165031383823348684561143017076507764460988498730159867589697891829889615987455083318858118837001546520125580102150155003441716440507458770793161538335643834879815409299902474804095885167113695976358888021381414616447817770382472844578095374177665400317679997243317485336805348080793978906517159634142948455202546037400965961197960391145699409690105236402037138088591890167886544320188889494083933170114740279815775002499949254288195590018072654502599758807518826965244981757916721542012612783112127806808004330907315055609014103757330966631198606769550160657553063942000817495431546040507805227247026871541632201903876506737458376403299157616993312354435720524063457499348690370182300974943798219156454037709920286665336814829822647303703241175710784276037832619875504371745978929008206060630622169167835059682893919907314918954482664331877846508614772377516021002850016653678350091099728044257784203386396103069589838602668944527070923673591612303343587780160171523123169603355554100126160577231630867695213024162889986669964367111728820915164526877708087058083280842763714310349757380661300286818158349863584788459269394371785195202258808940167530470054947652315789417407326008031166544050339683507003358395964953514182156089381414844804444743023975180858650804311653306104900204418503917976224512516648352979239707787527696590647653045519828925945776339193434030377467122083317933234143635049416954095535850363254157573649470113537484883593183186288387056565678518511416092727778549886840418094447738206639653203012627569971071635310646845889357598963456391691373998250251344186837025131579549065689342971071437265297388653668247382424922436652850091551880518563516198933536458791179207220674546971414473198070737818540344172009510081723363335941577068248642781592277035184076476460234734659684026447318125827935355158185624045736448414228629280473827852954457294491389346983638467191814482118011505879647406657928762242116105204802843962725183532235116658775550618578343694282450819756993130953007584534444496888509037870492748057773992377477482132157155898024795352577037717755371560755056562704775730629494863811800978167872424721178814845551893479178150407066549756598856358594071441164489183595374357942690407475127955542214189764851422056464308889852018705414218857349731826213662536782697346678977174602158725787617379069850508571214180852843355033558207869685486844616977278985624203145928181443526303355014611362612668371785382425727545109629280453710864551608875340772212540037526662475526717751415607902527919529939185094494062561563510919597187469343944836008612026960690877720274505175999479663699290291260356093252315373527581558958479497891172821737164805290919821696220483895136354518917963780317346518787851493978313492498846833014333701609292809328494726021664463884388997911287217444016382094607303249467799306913503664892834439248408003103597532734370904381562012262502450592207380954988890202916819801988100880277964164266906249585941117230853236571038758160959206751800159973483395363438233873297979675484581189475998982009998393114682303161333311025243337548583694266235045821394034100215088011383115574540337473526136403541226649717478124206899284942295820500451073555339586653039660597789330689373204283424767310588117150154627338291006377992717726107873000779016229344147747533674831830720397979455265045543612581703225588347508865668619573004630924848399641875341352016049843351169640133852235587198902855565844617022109658080322448395154779097736491456713506203611585598786298383897202216187155451804211072357654306247865195338887620822360593426083352439718427020286320289846727792819258978319286466471553021442272040579615006954319377424491448023390213888864934873417586722936917942934212923098633032118639305500839702978242421058744734102288167186459093782515202549887445952322120787123650535726958598494375468800603580177268354722233103854967465395065350536946867598397149567292454606168753030102811995835739765171374044760955791780402452385889765050399048191132296191167968620321275042156353445796852009091135262064593555537444173464055509764277888062380448038679535752565377225530997316701482815509918507299052807321253109152932812365957157601046710705679002916566552575863687995460567123166425977637875935245663387012689802494953254663752793256183191913613304967804901387369083604651490916907775536101128041214426453992176510863739684689089907020288535893136960965354846892308670646720302429856514890800882274370076359161418130745879633052609732859769351545800886084752846374236010815419437792741769680497964691024965461235387041030799901119201018090239762754237731136512079306819341294769544016676299529745589507588666703435638474967479194112508843103716812407448028342909793284920858657863318310539352527271855737903583570754249431891058272038549162988840082290344878195171320440336874864683804715191374839088766945564288382930487709796364760227625464044094994976765805919017395146628169381524127223164906167832047814044313013283539849897645696768178229886764968387507441275723206633408079075289434295846113588617626550734094920079780767886578696307561600871848453749974583597555226211903951309464549735869519980935430474155598900088192429302352189161112960645978071667417221363709714429831838805590208298798263110726229604447168734114870118402533008362715442816844983989114080604406870492891176540313992081852708220922077505003788570651272366507579248576878472251042725000394698047507522213180871170287951417369915470125076426595297272459201391577585598153744140104341854513403987213520775712825121534214886029498299183442037310054420111545827817826877109085947608913678583715134433914697085505175540498619415145015462567199836690374992020213704187216369137118788594429048436554207925333375764159372271490135898064338731468784280136562895243254265871032453187085513041976746964008693197614877346722910884571176325384277725429764036497165023390315911484332354875095814040331528187545047400290201904028812042352013616081854612893470687062989606602133794540828755601607129170263744016134205556210538610079410920722632071388034208598758831500065509164224281583435591528621605684547096925435320772488991639023380504348086097727531245483766811817182391351105789424576621843625162381029518425537691132971453195122075442267060449504010876198476708939979197282701045479175282040286644025475794168708900062197432549498377329717013008796310521428662699990160503295378408054984063490338447797349933668629158658656483304427071344563443432670345793725987321477508664116665939275308073231020509995012653819975335920332265797491857599612441426872625823681693346102782820728128245079320755308882080068637161069577421411138887712914970502653743630783744924423401036753032021699591869420414834736257232976759320992794278362158272157681587908772651334726536920600622018746286104838209802621589105749754016555265115532419955605932261140945934153483434478086938366106980858207115287882252467677607333479663822589147178857561716966899043670736427551119362387625594774506028060403805150211798811588984626812301743018563206971387842238883386028244116069652083741493494920389877547976113979291185810432316404340896270417670216614103358306196050580724476308925324418164484944827260926779884338340977648635456238150467703943838613573286641723324150796601571687939979373507853390392246393713286108770255423899382799796500248503056650816050061267402403934685493727621030490123620883505906822996271712844557366848043355605508613700546152566554029860840661168943380668414638080465002145595531517328054940005063885308284589271757647693087039541407686145880655342181036990578508710771499117266679205351733272213527704220683143347413227994708339984103649620601355753001701536875976497591435909019317485161247757797988022465875730700850264942807203719363251524405520689265920164311169895570402403392306616287962876151885481269207371771170388541938027639635116192349761358922476285799514635663491280643083198435909311339623425100116285187520316192634603449442089746578859469570935580512691255095054713735204606376113179075944605930957754881661694208237399381029297741425722643790412314406258829415357764407907372592234795550483812628171942347394470281577608935099723558025593348243127067635060464727535818159976154530681811050593109981686988169329394447476871821323684926996002964457741657988479931223441780050869452874593241850612537083419720718307784832753536785821044947561614915270687493073374762948309002843328628419996650342907122579926075454394041267376723063207868288473718311830622276614129126650801515193590114742575946983971359824232317018919360068099609264599262563129604884377637107779217277253344881003323071253007393831147394127303909202814763938745779380009446933937076637444817613986006201530565609642254401759914277302001572737263529061695267877283357324767811959380419187303113588334440953610654096238986721799099481845997382276791141117855172396521858457142931178889005426987763391774611077727847583433986884633623892799985000620336026063100770233453098168643365533188333635596589217067685450587101346592236948117546792497386746150339664078717983754751119915395699418067012600781556193823542606858707252564699737715771698057746708738389186964370764476859642389482811105428025744862047709902869950588973068151854579284980009116851343989675091698831466798261366430631849887166348145712674183226232368411850833798331516210838682045477267734803264586280098772985457508841048981511316500779159171977754121635438697698689764078839846065441817236259408841391624703069372593956345721452871684744100941973493811456492660293271877952419537825521378616515418237616431989850473084101907357840849016824693413184188476144896543250059156602959133632894200737421842709500430034122486418629281638123415936001789089919095642101470083690553459823340491608944916068938574979644871669046913346258691293553608575056465073493856508799999431377352037924653448695931136687590651080250049221309446806224972285016676652275658915875527706281094696113079806766323238676830316182775298690866945507679326696875813504590047622543510587667086824731302386032429118198995035694174740746002213063081251630067290839687857061897932666241744424854979979493236369802907835804143479962584561121484100304978521133108385919412347646718142975142334942962007971322057388717888065697277803297112119950285276818257396200727640354825796809920831823895631473421363047935638324982054066218680731583475597046978241385669020538077532941036261575194431329604328316046568928606284781105066181942754583034183888907163941566830431252403545092862138899875652173379869528730832437110735732064661814072505397984007335847888798623551117522092375248068979533149897476058268607268063477032021315201777301961405642591932087875141735703397702541953341319816847593135449474627620473269349058738319966152193612390325409734161524143223435946347081044246425764099178102781473180216645347376805541768098474724904831113270578750012640641266449660268712762565111860226774607683071061542151731357786474122606474911934895432374528661508447005652995313755596173693681500646084594803546192755964665400643687741273142370064464851332052290187163043503295183215065621661099666024115296201610294813766826662118995460215203828651153874657506605465347656248665442381350807764449238656453916213324424698450142576464385587377183555613422103493581982727730559371325397873380614838690108571505312903916992666543133612473629793921388403812888759546691270969492010464172529773147124964980715786608394571358577214897538579653648203859967482399467452082484798472584740251238426560555416627457362691347628456468808340156972900113578729368987908850622030954646626774619160053770836610786535071017934890179975400749091839170349408061430129530863565568852980496594554000785733105637901781627459431128847387610236530422736534109474679453829683296583638189536209972590465404193474640740094033259466199195045227860342924944567731557530503030382062347867900300315038841489606674550077212781151682673562174642720799977097727674395428629225767386753618106692118236290198085528431765859348879820910622415990560951766708644669244936645261270330791037004433337051796761896562633725946877252708262246588170395496999888656983189044186071830270317013280319917928616564859493983826111274784919275118547525389985745589456428827396462463304579012325724267284198952149651556200494297930723748109760227759516528081225463366806772587409895808354718158641745147699077925787229676298008221674878812879046994882740819545385894611058658657908218856290721626320693992872278350993300520686712635100133497747744833687247138110582057638078070136952609085109384956593009716087876094465810750142776034780615812612357389690147922578249848718527575704698425966354633599075740664370666233985499953220869277545200683782530574476077229245926147711702970677612676791326966402491135542374510603995872844921345747530207790312300111186040093216468645188751989558495185403560495758458518209843810398169807818692106796509955483125998895342376317637553400139496486621350920955749796514202143976796322083489128032460656143227137836715406203308275664322651357716363025007384631806811810965653846670452391148342817834338215463358286495904680451294481864340867721905858942804867637582063350658552767974456549444007051248545841562724032030441482088674006911835288766273699146065441779236189210119195842269224558333864159666538911350241916849449564409228213972106221509003187828014469807579700940814337153257838848722691869826202152989590665181756639746683884496180240383759928242993545344460540543632074448920957869650557785507736480168827604727262860627651533947847109387178254544273193815830475252872496703366104969987501030086933041193669969309192202618470376166036689841076965970829874167407491633646595487517930271153220854348489675529521549507219091020779275237193544443604072555747068601116842678930908271544711317894283519803769238772226815825993207128696921347428458454753176141460781669715389392616855106424025220191806029080871088619781687405348829529820043084974525547487853443471888991258105848884824348244585906266149424198789684885020563724503477341889728464803766869693386324247241157237699559616224872053004324165050488048809377387410224582176189620240339210462664526805448711575466353053860077978131613100561636818965652623425711153920666088159199010478049816523385423913151075160644159681874630390832953783733728538537487066215683489952236501511371323912600007011053797064611422203674380175704327013029079193985436721714733430384698005684836407143439495346775053252775438446454272149827119344496321783957146509013281342674618768137692039812533317484813325894699564380888214303706950528084222078916779840015058028175869172825881123156534497477221481646143047024728353492219727580669189668920551398051622042445093416468983059126226105546410796381270506789041313006025410485028150384289243297573818373414518314775625357543894736434788121786727902916842841023258034680505536509688418822285075976989612726846619171566610723669524148143049754556793736699528521085530134586363458433109090083436334784028820828341624070018356578860626675847511409478144936725275634865583092664960898988691666739489590553407488064656990321483818650207744287735619681782371212071022521610549671449696839500404644812703571614260672823850971267052796878709448394845912609135702778556653118373251496716191095791252034828352323111560973803920270269458237534104275134903489854292105757667863577471479426085942696022464953285562301416784806752951279465109087959510882050483825428649565804113684461898305253978346302362936151994202294843284525510951603294605369676852729925778022576585582336319675597679365696382213753907178727702100202311548061469374593537825713161541589754725924543638503934017272900727256730102097320199225880585537653114215379855337825924295250453373517007497778147948224256888152444171687771118583157038572731150986170640346330813005892589260349358793218504666941833578486273984301694172000408847651376556051964611921142512772424308252982621091432525502307684641175474727963225998809072230021088666434524170634617056908120898920447326804365303551163929575721264512117989503903924071929182931841705885490207509039378562507059228192137413209321817843186519239869704643050523485908124732997422965063344233737545307730288588743268574934656007630884684964788694211393026621648139835415540770539401950090051061005342499880542573961855817895347946626727056716093301343898023892452450197359552105674755800737707806862424965412030575979358996874739823626777664127644832441672784976481624974594300699614077481511992772303094785348581863541578692191386076245417097709058743426065942822228668043949079895496340077114242230120757901080283484860466841975877719456279962984300068201906864098421684914941835708473908962380132354073162949694512113804059604756365774520022710095548139296689549427733644196477533164640529057811677409595451161534057522712589094106950500423348904484681972350173802717399341244629493665288762563207637031320663493883775475920265925770625742858416778037178337049672332791164285386203267990120520080155307511263453651329950719235316682626821945636376376501082959164284035504997210839803968075353172888771272570766571806422559796685410033044803676606017384108308609718449473363479598704521258626797070900013024788291802012309720350968910750977149903415462574041472723577119388448084345208898549575490163042154061689418765591959213618071795483284122217877352763801597995783101340635747668305401159642856714843932293631359611342774481199695065287137171562075225643063663566485137650716355715654343707004543248994742208291168847778415626540422500533120854557507979816523474313650496655535006805410187886181360185178968046174364139876259014848519048797322357864429308816643898418383132075587413689683005216838903463996621250979315200740494275455602796618536228682199820423457611264676280797166683199392600912743421696014216662957137054193644007010077831501461435177602676396272048365662209671781882932375594678018763960296258679834588548141653528626477082993013838950125810367549177141925238797454135309719332219754134786560269906741061663752032743102591442137848564476921244841343390265848965883974525822296457771066138766408657231464839621495126945783394578536124165020767060616430800880250703948526667578806841646054241571250573582977683541403398750865565170029043276022059719394580271324248945550900856576900574059954818607957054201418489156974382966143040425887204556513743778890823379127607331667512899228438028779046469172396986501620308545728563419321496958936711191300908610999460169761002932209851312907654741867249734281603091967646219176595133513866445934467902142440290482858314184201492306770581300670142646733713427693918574396527251958603894283789692631310812884530789624438910835491344795178224472971487161114663344325983914581160199503479884314615754014478327184313547003794454121788309383046064372876993804630335256294432688744325856032451366503014058965765822232473419912081484928152056636159113244056876195542647001237363284330184727249167172966859160349312647746382668801605816226818448798031129690033362134441370901061256241796878268624101741306417531652506310397787457788096539310641925687899562511561323855052372760559819532530440074379673613046359819637545313394932713037241890195077125400231684206135653849902481707130123262682589517708521327388841805784669701463329302566110075163810681932101848013787145796275292023343483946831703005109347751987158628645147983641354317819725906260399896804487858648329213045636070777734127284984134451231418291674089204673063285703210562289329707947300060093712201624847471735425907877251836693884027647931302009084358658322819608222775227033681916272119756891292501341345201430346180739013738167098770870074701779498795048318524102654330728055148731729889272143350104594833050828487315845057701100806960744282936558605848571862551930401425167563495175626482864805596143409940264351309906228901249652337605408324239817343985605236569181094183290871655314653605679308235265388140982715662409442765091034404149568488255244873918016575551178597542415725115158158479746730264188545147612386430186156118675148970766681894339779596838496317334031302151926976771191797015427515428947823143444788390610960398979981228046323025992225102184556134240590831998681427138774058860383860630572659742890967027082952705724630816993811525326593977082207634534430729586680319299736935279485271108183236446542468532791390839699899599022004573355697122058674217756393502077154594414746839025457065993894404612914772394764284561595008464566826682499142229785660687505212513878373767456429558370968412364246006228572029576138385378654445795474708667009747413979025803054620534125125329301991816812971962482589276688766036707981985192095410678163288098461376617156039441467611935011105750467667369317401770944958381716637522661963357866655139812982999489716124326377814716184177003715374345042037424978526599177764977577591446302603599791136513225397947420791475596757693247058807606364527706275056799342105310209219293330939209029838202780944237806336067108912415058821381684090394528423099277933830658321162596528621931640835164717786471762883665859060375210231691596259090934579252141533604111294955173673004407106671449198277651125365491658520734697683806635771085799594160068107928255309402467969006610995872528180622295830473496115999661607224086760280854039388186019220011973084724577879573681818721727432554907548181598420761882510473032574907573644298480426574505663350489324634200780121399223376511511934777315979642147676457194029177421494389704165291454196922641489504092591350768195235979961855312788874506706728390979301929345388240235705226041720021234477246936823539159974815611018329944086827717176918431249631442362822778124525385462367501124153675481964655912908112141552736065935881016872058685630479349083154053198241985496844652341690907142390952695968846829022468343406907482161689384340517434898783152005596454218663724781004625390124623182519604497733458311865291170396452562548667112956090657502735798374437598891849830001734520474295736072831803222365467211506436513363980977547459026287667669114343313053874357737658891394123662697923562167113678460140891505346832564091100887238134611923815204378953448629992238110057162355173608926335640768891019395852999469641509682604446953148032112479127159182654049546315128083812403558868837243984186805355664768297736886489281959387856809234667976067480990518453783592941201805172479003308979962259205337695884098646959928106527524655520063598272535645290163360467999082835892659866040624245075145982985371798240784982606358931547989853555770994547191154573230896017768796853069154052685521924805208363736677464254193401005113761050944119662059594038282032462948705932873521592667014484177222055422540088089052920064780002293485985242227566725559652438389521149539074726407558403889925466973719596164945648583873700712793500505757223636871877134482229229697659752226826928231682103525224962439041178341809371200909997222472860844621569323999864059683828149608841508997105935855319803622458179670644339643182672367196569795125334268279343494423758795325396899088057603666319083064064589782302895140425962082192804609120514987285801095169575309796159309607135335494673400838838740873389338909825235115666074242615761485808386837819504238419599241183949351225700704177340493053826798957075253522763027123691530104711210573649441294611108418785023086904490085463132175685066930226382452408478489263128160823072822012835119111777881373196176849718034250447788948650620841337816525884960315433159387662927614169868984624601245431036458478102609554277802044810431835008809003239136411052626077091585772167053221599412393700046709364810355323031069440916656559291219044143108312490643250957259641760569857049575545919388887978859913359747630596737688849129609651045117452734399362621881517734163040872908414262485763767748327512293616717502303244645928326582824381545122816067847204211278187593739255172794079471790913299247882720885474628171583543268814656889226821458989179428689151510725475754727390950767764760178615125641356930487049624197498999640468747033772683665334465572970454427584271593512174732398708393212255690904898261928084802744637068533701834636256262741558792388599879196457142019286144548971239522291074818484162834348354651211674821806712913389155643328417849637172815517431480005315790985681061816118652389989576156970321468177394268076225484523346382067589573221507984826679855475632036732926188734504361597038804379692528550524722009537126338446300569626213050763522115822061209575835538481615602152049270882210481848848879250389140241347527136773461334242158350453551146833093529697650094854393968899608420064252263960816945532611222775787204505478121825703199432738550435266217369082056646630481095505539774496804661843899666267488655820684242525423698464973673634919794458080221896345069330749612344575081314504974048856774998648706494135071185589233367201248218726532746637565016188176145800040801442862212959516524754949690786616529164123623124258382947821995219198625659839886151927105729185156981871643874414871086307701886418471654572611067316486796763538801035981843252365148997360255752914966684190381472109867507992085188838100747469944427463888751971076477337696771680627631624954580901197768621830750695822460519951909754461091794393863999138158355555284471518855450500248935172435629498983610142867384767155357388132991444990788856975267100377631444182085937058633836491293075457328753135784491718281084689529134259295094583414384825807235371786546056445385140127574018407226279725871943574491804752460381144650945586386308956839860228859661891807235784652180862832333648339582293418696028296688313053896794293921075347189177269939623956960942472950192420925234958016980962387933991298997286638456835230810974161987063794933885307346455148528124519433121056251808595714489482944328134969263443379280239683726476848701935681648551984826598833591983330824207422330133593092068623011929606957339039477054456670900467036899255892178059487806138268679117846946283120714897470501250172140625047396795464271792462913316447721704644454476810527714040584086330777905984738199781585519299223599808604959885239026532464742064312619717413262686453975843107380980493418741274670440916111204291926652035131782228816875277641521767909281860002912050492275063376031047635895624206644211507309984922433404608343112667603092756733418585700795650112113475979695176716115856946762269530986022102190770880664337488787165653457317719194130464448651605194417416112220106505060335988763217353685107892355092476660318872829745481348483029071207297801484448557219218550500593233546542580427062398938030160348338478183922024893543124885138617595551581401335686029507381539745854523036668524174289292543226600261745985060153132508131294031367782131170326644865886033146221823791184160190488165053332326142970726033510467278018605307973796590359139702314229456269919513761674689512833169855532509917098378084982108632124491086600388065979599005374764691913479100611613839247857567967131629428625236927270890837028564696487417301418064062660522604901584120409203044745787031111480528218210583709176920514114014963234525456140085784834330490957999593895359890435563989022118361866469351044687331467557117406026034228621256425402740377906258527535636701848495542968158685051073829433233483286028219622672989723629566084042688430323210855450798284233249678593729018080625778638600204873544889391948113214508588228905294993261715168331952247352573057138887020374327505453184190025485468155265491147650587980324480514259512813628122201376419662808744979690859638417923605682390264010728234098896523326714120768019998772368831684098816660180874328829594852531927199712036493009706112925739519517812468741904234236158457281238805386563443292980019596994454079165807449801647706316341777554214997833223874816605461226206951874723156110148239867160686111343103028996082303750788021388464725702295994576310443505518760763264444484687911059442501210546312419717148910187724717212395476751478909269903981256971847214035584012240632324948031230731477181011749906040826213842998255601665497315153048359381388889085500190994768412321828999690820036642074008571132797833993221814664841583362886936660117846859375055123730568841215773603830833337934677013790489143434482326614733053095862052789185080687125551776174281462887368218084781097639797583487904345047067092158873317496566449999898726592651019823873536947064131456819503119808548390128687637197330989326387006359768753306716165044611113834760505866093922230672348380441048589511208353401637780791010979754575605447056609733333863241927132724579517163839764927772337323868384467274158060982463486641453547637252222528889365100652153329931949689692343813627456244063595499412115134312223976858933661403967132192529239161381639337005658845135418396634291633335188040215065875964729966975951787203361370256800244559055191817982457964557032336811668303002377178577157931029521327253790387156861724475447585644753371805206346702119147547204396353456374111995680727621219566167268549859151906154092896242884650288817132045034962435166979629064626262869463151292651749566341841304929638495181343930294276063997602456904889698077958472203199975660287697690836106650768424342597634532662935525816407501322738361935572156366952548760515021638354498982353673759239520457336631827264894991545887246460226576162796239871512983275162525826559944479309391488887524206397328098221946329404675406543542805426865762394546573118832571387272227330317154284661381835511379379745630963166480273184148285579885491732884659916998976846011073505464613729131084974778442712620130839475049533357161854309741172199387383816748813056097155230685961208823445561918654152716939210705375756594817687485148104689073242129207120493011250757555983679034406430604147780467530031107543262765250285959378159719993575787157956221174811767202225059022488572264068134738265804428763864581385626178876976347985390683834893125010262100741284544193437841419922610941468039748866720049872225647414374578418664254333271022837705682231399442763612351591550384903100550465429373534489170264197950641533383876888884539938730439506761988507283212784136374194710582070077040967569815411672116983732623760746856316718247677306779344504070887399256959521480330620070291420328079171249443185217042929555272007865317299204342854094082883508201977177742796479593236723396807250569714685906816077717387118105283741754995483409327289701974700105013499502914947452775681004332305470722794317734567359903197324167996569831875126666850400335839594520997120708792138822104332901522538424655449137490027964487278576353363214653568019974494802116907570533928285160538296013923559453583823452579072085833475948486698485669974607129393820668742527228948835292470065254509445902245094048999240106752728438191729619373879730114746068938552199365512666674453082646628682392799892070468098359392660391116427702358508059893864538744334920001764896520215449070190978310449059977455300530428488088934479681197638230465916586245827912953226726456077144454266752539810723205358286927010298244800758604986933586901876446367771259180894443893319908285786227768843735707564928510787505177373764748919666454187636837829198513252133842712648428634060860825726293302211905006076247474131518124120396648645707616597027575332739191189150731992747271441221822182971403538623436819497737005653323252213857412145860700605532779506796200371971679811813210821875478398242318533870902261462247456799060807688901457118151049139096861698408118382215167187954281437611151464860385723843712583277971068123171524798495726208521596673818249156888407637012042274715157513657655968225849671740352231165717724031664571826393922867806175875881058231924038772994977008612014474358731233663092070438604178575819915202186564624843286440284343579247693691574414775997870283646730253857673192030340207738035610728207426530982810828015936834512471358096495534239301190939111455916141589051413408361062935295736987764700704656358440922993072128342600166446160629270451785289425184528951733676159245300611780252815281672632233943631388481614001140601989399410550479956892814312930915189908200054800237633891320834847721885300740081147453897838027477004996647775153831811776933498282592944403223543096112424960148371495378939897406004335899508477363595976013655452941445683298028271920952880603289316761452855206568302031544173252409192817725963502890174539226122900167266800472288619396314390442554779657904400289711173464893994595174279967386522230402156649413419620479823766681017114701423002271796937770296787469018204349092140277114049526496333666312057868751539863548109830238880732673768347354156203758048985294491552671461608184016345845544803931863923505698793867718928769835899663859622590198417884072730287525416258846821441647167313050458455954761920430948998135221936433844750732002779652337262337855445754980547651297513624269607571719564091621386683441304172387911569959334423165382314409084070094819479624018988650949103325021204037184205950463892764360278387510414523522499872518220516492273469350258347209216162598008157820007750432974744023299648651487682043251104470356064960640954477507827969838082096959381216005054258508830453900293998442137210179472145675071910369635401500201029700010061969664897778334174177077516299226272373688852215549195507770176294111688712472843329229698570345952101900670915797790805364944366516232651470404583933141507605489615764004051762494430313916757787766642304055155052987704001045445389127408763803889737297188758907859782055492385570395456656430306823325977892617695741295709881752539179680865809916257465378826383624940597592067664794745080985620459671849215592775196398252745316501878962144291264318338195143042691565096601891088817226381777654945773689337480262256132707614617772986734528698971082888666354003071724353640287788115872665114920424799730738056441296223806240037255540614439162473595917181428829533523185707100243612733837299003553282360610218950462623520121566361323576654733230450054315986962212022572088731108694824507553781635565730422418455676391930353446060098982614572720252274346294779986159233790329524544342215334167478886946992717737229688978000232906192599862200212874461405807830472132613065147858918697183392345737369875904700711561569185245994179168812616141618019819584524865732103872787223018612389172404545632645933500011005847574097854695321674579248873726645328843240724142347782454543788381091620750263687199404644020204590950129885300305076562329138862289168412541138174592086736337724897423225525354916019823586503339811365341739334000546756480186354304675163732442074874141703343571730598507864606235057787297461688228889261750475440955142833843950617445887786080710576932247853371873101388638876843671174924427527290130093470304913550982131115157088142054112894193987798148297077575688504664263816990172391703196292248003461808400171750140228015276765764885055465521726916795976380339006586417131296272203729258392054978409925006043986537483248111944069432853577615441542071745052705085034502308396816391131009624368439362164037502184600447208299983074987089074588195590943177696904992160109756395612575400232751435775764570425464554266794592620106862017367255382657528933689321360544218524005582666732336573545524487432423351776318835874279538419807514053517965355630922147394231821409936342608692888571817219150397373654419305144027008157801160659492600274547346295985022211405379321008383525328749772718894690316056119326926944779429450833606629084053290343658026931787422658673372548457774433488836251991129090153059499186619758244033369412904846657704650372120078422613561165872746164569590029934180630927806995566204920216680863235284906422107789314951144205072932467327215014986320206955707506239666745620111842666015082480628005932477135092751510527247218653753718959946124857353784860107378047970187171852315143017790626076744906108510709880246361614554758198849172134616349767790611637446665349765134684077784898718111044635246266182283706396887292473860186942424897194141271746671617881600316346293912723122206784678100505128050153658200006998871884453072085650026155225033094056776833418668495291475504637732315285661484671800450569870569605122125500610446028313347085175247478194739682910012431913740488620481792791597763290255695536092446502030231826786196988333918659334110569532295339300317670853000150754549847438059080650190436076799327619670994644095054786342604784377957622592717343323505678548003348559096712664004583075680324523421083237905059126468960232956323276223173803182023634601606131403085963730778769669719621412231591083417711306634369571767829673745168988590274530965791576431694207642931603221591481591850615726348688404701395013706926582343786161011359020840915608518555474721206068358395025014025023450674973768052379250539592939150111713434574632490166120353420958518373775176633113942868720565664600821393796445475026403138878153467102162319409116212064755635133371630371639731920771416183419808751555035050477888781889888508767094065206436734854379315055426448056265477314968765631204033068352515567187300941968642674811678098885872133691825355170058447402323205588463162477011072839440743995454046864747562894360903681475423127268573649581877816216806223374031086728740190091913091246859744309106409957793935087604957577289274796270990516332948328182240331838582024758490438942375743126895176914501056728615342401013367439915237168893627372354855676950347597831386568380557584232090609009516878832139810589331103819372297715285787391109271732483650415564304375803248658683512505298991339828420133069162194570985688572020642543526923092394877897818224608741635155362726148412529082941941522455887764475284990929770837858230549296324820162892952234241093901710661505029978442657112344163239743113179546212385258320583451020830188531242928221437090862182849816409619889973623571966818026041851734059089120880558498192697394069860150498738951260181668995060507038383356272479830393192095108536858539891560584220892603462954482459331591048731424110292736629859375148097519985472424839656391159304394804952235762618516188083737243719258677624057682681892159323196881603475220283436721041994653187698414557606072676801777558984510772775622066480395198342329454740184418273410050738434358239782508588509054495174668734854033536252265808528429635400873160304593030944090115963028669704797851016920000880514586735879329950430166726042289666301433441045372973923409237312539682862929865981355882817879817931756691274095070844828182232542785712603327035155782641024614761080322009472145199484240548005899463280456251723195597364574364758815083930851197028818579887887619532424655987880695565198883141658517790118294176319830366157848860530680663304044405858910096617674771330432049010502642436842390548411705227845192564384308217563491312248883242872326678331038571228455421998605670959664729076458480267531567795341539386172150277360532977450739432877479349388156909801211880792754981697472183562189558248448950585448626328136594775582402602213915058095667902565553963831004367667566584261475474592041547181026767675452076342710497372738380668667048693763298002397697111932444981461350929331312986756966619077906571587055343773419627647438540152048868367859878195344668730344712674886680941325508392159243749691411847108601771921344544781777173263490163130100536975520663786609625785440095293094088977070613477161703121402302142506308356433110079568106308984439134930617475419358147558909985997366434372840917657176091640279097584588621021044912855521495585933318792487134901718712085494728376821128677523617394369611947117928836991566431107122714179166824721824090557171758612546755446789595438942798523698288014779177545740710872237494680559623332521097314763268120051673525193211481874743344644847963312439883126866668071332124663314802615492631436214875248291200576772339220581902308237455311144012677090899326307011258538944154074280977648662325532285444021336406806418908716900095506255286374256224625780365189244455534895029257722779958301373557589160832588271227053944828298159956939467455325343775092771410077284135901537525186267601905201843697115257367873459949847394237223999514618489116513501671164531018145556912429514986015413484605368105837123481028817316285548650258131792196042386199975558895811396302729305816497973841142447171855962746627611893534514739413525014742439052984351687549418370874827475376825109199631793167965284974927374816182574841995381290100607039484994652705932229726747254348281217478869006647328664613356773988919813997539155401694205303101591801440525226044032580258522121386377902257643036950164994436820075939267827384475912244713022348383044772198513787419810320622446765113864135541334628907290595512590031789521555729804412429796512363394029636476418833483282316964066774690855762116313027866530909734496796012826352002089401224307237423607759277563155028241419947528553805838937769260289652115937850313379989871756435127574969349737607975883530537671659821832800764005387350620641805314551719394300477875511556116908947199830801625276362637637043751435543358623359657737573083328293884770947103796138170351076132429590134731008966109972334921704084432719782645503110858392557551942902592326151264789715506287013956206114787189415383999881578780491014900360813297066910389498261014477112372524533945129573931906157627302779996526100787630880300986708621034281968887389023340287565499679252227850743669629173588943827561054363805063437435455683677661306536959854626970803684033012861950257650881014353436279518464345557210632839420696244284305130800690428658692519046820555360877403816051960948286638651769369867776655540010795556675552502049095939470061113656830876401106085659349783955582350506696831523051522036704589283302314127988748572403478891437282115926362934784054929620381671040364243212274480855088674574901323616549892924104096231954260223078768715749341354594442735509734230994401134310679081117901867428409977926776828122020932219678316856141181178888933282496647479950145668743372610580982461427498229267969255556245451868338785992832443638538110774798648944303728865395818590417584999887956870670448907401261607898821108892994973682443691207439241043049395086276140585544718577814948933040934230183358490589618115738395037138449826169359621422374173149291687859967454002085509292878501959752221083755353402477602790709185607355450566957393027532129111137034002080117020987139612677046295600590223908222628081591767431968682657930566371141946469644488783757115639237095162636841607895390548347445544367253049019229918312669377465378989421133857604832130412174918138015563720719765482357093154238337129083394446910126943737098793501991589720144113842555831563478144773435307763693996956530463934205023781671360410442028035518193015571396205779899664969697202000271151744880418549399927833325590447750958275093088040974214798176120057405809524677478296349723372030301587924876114132672008523617184229388466800087784594380318627858590492526783010667807441875442766279284647448305450700183723064921566796955092557815818130913464083566328221814972554573901321971229866092113836915101505358088350450896483920002135226936570185839034109210479821915449821729686414162337188790751139657236262507441174178130697395916601578352911705168274447305031264273932092177334899336661306276146977005697124216793367104437585020820279144826565553486006937165287455017168846897894761300159797440895166550790700768495247398043480769423780375108168292249806401059160276614927945750581808729399876851611064832262842653131369176082996717196097661112202321104766939382358204440151105799302719699234981279352887663609453389947700532433556682066531619255663998744099948655338251127210059578425338981770963056719312368832118721898284491894981003496040318816225743121426873513183803500411836198205542942812650964443952798984520721598293354233312922179298427241810503159381979532031614194680432133145210565179898052807551445650316993451368698738216795600657640696607872095691843963795417986249423842878487706542465596616673737991436184822073313546496284513124586998395574524374814308089333817805392405804356242557084874549856354960068860072676394362350463016727981593796684950793628970732702228382567396459850068045179044378449882139888634983335158084018312500190708406986258534269910120768370484149298032001246001208537411638159854479267860502518336643757872141063620564845546073375610747742923605795270520697848005227705982989364092492856674698740805993266231849870968165713765076391401785818563253722120490944403964464050473122615917226920641024260706289920443991400074363573567581583327081358172747236748537716574863398015845490671067613333434556156925570373746032030599344246692693311144532098910568685691403035784954466829335531437215101674898433800100814734322129928203903940657460779912543395454755271776203362450881197899176091185978130167047108146502791117605988268837861630157992202513244660007243600810463331753837691575541830510240202572357329686411817961408502904266478224102420986960140906071756358996528848924873986726888018456776004071523400208383172243401532435643424182312348650423922526757443588348073960025529718400301353995149680911750356771905289604118141075016505417039232948845612334936119469862092113398334285598631983543893645297742022065186999180843068246485612854609544555332404167452371345663497782009184416384760625296180110694577919839610952267462082013967642242259635486935387243701198191764656278260648914378657793319624983126373979282864114166623749092113259179203072034232521767018901110724790954786592284994574360348302411045920528493346849047991540364763919832560703521797848764276693216666695260821249111560295590315116150449625472410177941345015939093411225680423348249434865423626415402764390781196561306636198745237338001472939081171491827736040007206077460339546057862896960095529538614640822053386529292357060067134698644331613591328686346739718657679810442284779700663077769492126202092399275172668545125650647416718709661331452391267621585459757732310346835007614984169205477187237458121636983849920062954896790402239452220537949900320203672169426818391715865204802853097477533060060970557281553289626924949884462017195672078255687927662914308040795482353634737156609724417156005017942183355453403042493916648012792334269531142519358507245043080579403127945876792924804893345821822620077533404660095296473933104820955583868743844680118464715966670441472745255507052351235542194261700415553867727527283200860172291744667422145400335103240087854427724041825329074529033799676143144763479230590320442083245752806160076494511247624135996580952302257376088941612413865693809109767390217153779498532512813124162854114519655120748460165459296974820254667545563788642645953867554138203647610276619628926766586073082133220151415531626941507312660957184416209889675900466316487819087975809405068077212824097158332978286114318423702892407358486246590614370939948171354525107174360023680300923581158334500832769399140443921499136172084837810279967082275960823594080328001773275741293374941218668469508795132883586938144511568751206799386230765881266367647067838721296804230395489715731027531534098287783319276877593470805635623071940530272823239997023593847187793153238810049357341288950857374749788346774098980055900929683020233772518011502461115968310925477630979059671405469759730471169243647877492223933797727354693295520219205929003038015805686040767495459088783432216399762396391504507236420720443055986026731284361941631034362000776557533743928567097754897795118527852800590931864473333665492679534400643928431133456112144521569786886132921217881193339016475984250231227095156475534183394127615786916609568481579329692198451081680681124191349097176458747445963224308936876387269259037055539519759653842590262019908443047137465000280059228580327504960272979602999366281043909738422274181444397614247273414580191985644444962977138119861051505082722728652031273210641117621060948170559798725040055556528125227540521140782163634398708032307368018352733031661244624596995737983258198075939800255827705574507880389123740475304338224524778045061262798235639521039094234952451590773685393418905592392666231646928950065999612177276986409434821739416743822141233982192218931866937631758991049021974419018708232081932517104352173943860278959410499781483546046924726527258459494550929065110615495247252759432965527662940301103869670600230978412871860593918616039626819754504163023282683545279556732242641243244308172518738960870629883370314586272393210053307535591016840952231697477906824477905764780727929222616792582707332057819661347711159819733213904955946385451434083063296941664364750111580759893372771837903239355462518814490509204645203241087601545173898733064132866369811105668967840723982608525898283862021832828712213492520204634019259483463630376778039134204037272867954833126827433366464542000779849267939715933482495023534802481364388338986501186573295139838796104488626603100744016687253568916250597083509063660005641801797483153179336855004956468553234286224448821646089244493429839737388744152969875020774321373632931049902757248517789608589294745335077922819522205819534325278540732610967864318737676360107297312262858782859806537014858519524772688181624099961430568656777955786057387804805361779826715602834165047650483120479213912172105140015599781690998501250607571103541174071111133732804327794221202051981255351902695264271321687127569372943307549721465713275078159166321809613252558338177615982479937457076845785593294624999452675996179548462265367391996650557848081750686119284838165888076152851313994031015123261667264300706282898575797767640331388319361275597109544832943187819184264010961294570944336571173532292170421073217400097534206938004142797205695701266678051071778726024606608853128877041687908118981539371115746037591201234567044954087776318364302360406375562146599524648081139379890110499608416826881588410830162600562444111229220714589146815702517547815854230246272247468084259408202627012949486363547675706240751392683874779940806296199770549361198590928981622118900598058319083732188733469858422031854657483760351745756400834982306438140132134087135251198869503105966975850389920042691366620288603486021083044275758395584852033620939399922604880472216370899455156799213998853115406527294759250158411793728197957565470087159645639320850526430458385066430369494130642805983404779280669046707968598991347288855186409815831791808199970074808879839992343148346265198711079871788585749837769541705513106954476468471907347420763204522219843261559848511192079904209315469824179413983688235714347160776763498705829331116802168201103599668624786943452774875769554880459660687228392827131655455183337916055031536355919522614845529351780984746530796555441824798266819901506154034083657819578923265043512105692329659087274310046728236421961479489543561269956426808406726165717694971054226229905150594631963462388147358460556199902981217450707718397797457502642178021792769392963538271734142863288083073911752932237888447309013088767091419375303176772046413388492433833839508611602638472161092184728045101295219130882510332745221158455541684480036437798629722103890987071454289409585570938370507976312707080100199524467711692643575522611392011821123304423153357953799972031930701859794100238130359414260419083696787501493736041644018046069900485135337737855484416310467100771753205519736379189219015409988277413805286522347647244140458066664257186035279951975529006589680294618127227184800842795750488471393650852135808549070859119184853689942764620976890883982894416331666627343548410534351050445123826755741131598869486634762465550115089005212221413634898517637642697658685730822135418271713498480113444697486566529971259145689609935805141882246897406209862714263103923153824098723613129895047271662727768304991485801578622962809486115076470202367164808074564218485444149504747981291774086671311081074953352087646453210925205138115962245473854732072560067540087759986995382413631352976012139165977147705250797102633651372903653466747003659158088750653533934262315515087073257786799771685526614253810333722431958500029001555734018039330398962537878446886966636665836731789336898614300333120848905319005095624592107014883752373608076984917162865150001529173448864320123884801871359206025549493845594916741641019729226959811424296130986516295551503163425944966067169369945268875787463659838195139903397800432226351300978136515368158911608640495856067419174020990142405045545808541460122032222598652686958651132135226897208331603472749957619729159369399295639088555229002987856904098912100493541026981268376649730283928699418051509306649073013979284374172687603401540987048393455704808550172239475377841378108303392509210900693048668625824461955453517537999595282493915826338867667028258230191245200382582519439371277792694723854614884481116395189800491566899907144391340637797203360341138184732231083315710867395165571905800126104230047979167915081826773802781106608753808033755454258304494710626110175274634115202021068655162492326198894290348427963528201132403276716827483996714808686520326330094429054993101967950942772495708188715796069506477599866535507427498189800041470254005819264623114288145029130019744901503812810019659131838917068515266483369274857218583206045718758907883770144648861297598034444634263245764706106105272205492324633172065794683564137354325499468060929484834234218182621740288767955173783433605830444616489193665573984363527761050041840469217427787388134737836291407642429094824064046330516135272537921534340942687851343847120639223366378394358039131308252121379284556340882025880348248942242372150916887880413999059668032566309704397852422259007719082414768300544327453578408069349007619738180425326717863000553760661491914651820127880911797974588614800758147619515869735021775490489053412825004434347206418804963364292338944972581859724246565923116692096992197425089138369126771313191803105871942366528976869142621827922623515350002322387873980281584228541385820494148954987701614422351346424610570974077443129807031237826696597437452851953035621806391124063303798800107197076124935315869091768497756741244819421796689985655548459117160130669743780118036103068548599113853836957122420272108630965262706626286599082403354053424587235367388849724809325123734792762308297394155100505288534326453076500719374695759143968316386089190556252565190421807870915943291561209102651488413342452105505045789968492791880953675315062079891770405991955870560534004985025379561106205423657227889085927143927748887641258558695106895854169226306967860969357092355522263389621386539325424586949860517120484492096510052605494835165310928750528122567915376121832969876496369898446207164725705386525081079213382826412972251933111089103216149615479675804490058361547255262275853291285512557052121560306635168070502922408459357111949924694982493179969855294840499166956644571284414103871805537072337706377160198345141366884694345478426357507293011324195193306559772833342574481554437115377591890206674325544563275713925089821813593399888694072845126708296045949531737077927372257285708354674836920037195045022615163225473962776528596162988375351133675291957817952500612292269676771081927490667551272827576672924193687720305373861576131589234409318859480977097384063489273823592756065588121747895377028699186521973260498751342324018122866340861473291710115557055468795473762111068331771886927849802835692883827922643728789982766629642838074494912440204317656516607374508269684374075138561027000244797896168415222961019822555521129234485148454000224634632499899193212417125191460583758312446559960548700560474592991228946817220357124313349974706681047484823514676381937903036135136024225014212088656113915591602841493170591035493791749245994688393856795736848438043366110076866093900560644135113601747002825847983605894381675128191681121046619968796670867441755941046948450689424534686281086398223731117872001440954850783193690983233118080192971666341979769565487646001354112469667292245587777881850207298241912081698499436058784662824163408619712978400262282571455458559283298730877261670118821690970793938190861394956088665549128323218972329552258778823930635378199670617069616398544053027492169324466482469083935686983263781507542091466176672784891989257632897734614111296335585278175985076176912667896684755945782601794902256883583151785189868524536966348382129187053431461491509955326582360764965395487083306639937213930636355880645350058399239238926146899739766902319796464272524116147481071678011870937845979260710810558892830957435144256494447145992790971006708205705559697085855629412258822241438509252986337609526524483943196599485871711400773976228467339383960070253128702339746208251676134739363431291159619709186543068224592325986762348078574562508919248803119252095494449268936100066456412624552503313747115450746453128845440583478773332334873789321666577199380367117223755470224039370865128274898556236105360111456215486279407448286845051793409434367075814272242624344736080024589356880896426498352106939136221187095141255438055933584289186266500439306758297608485208109025940903576911158271168674423095961009397730227697829804704179634598114828660931578727203524231254720740409037403842074552300791047130328104938270309714193830176551809390392911699209104120879998839538486200314573668448280118728650630028115081320119557382090194218564639337617047871003913590796574108088904254933433356434461402315818220421256113611954894069861137937808572544811776033550732380744204647546821615249693913689403784607671538814467977489402627430929011435919753814587363243551911781853967549138896715715126290124273826697996883761276626399540651314643328658285157104661056521127854882862318853004174121057065419483392456077695972270396892522602581360107769180464037270176198713233003225699068731283455200377907293502537997777115683147575273690789535410586707953248986346097971294199973333923554805821053177614902952306592467323545109175581067032804648290996050527705424308656087896819740178218273817464876401514290237382614116240975522020904579422130010720250826517258586725854299963102360529451931135479357894308955331935266712079729160363123054971956960952766989373618560315468649897923271184967976767960554094924745975007653023391025443234096163182289024404213118102550785046874051101442691304715972749362539533368106737285935263304889833266391932817249540381567887051196352074771856015164881368581190497508639685502891009785233023584407532008393754799561035675057434676407880920862072088443163358601548976100606447557501992860428130681366068338288769380996124007068235131239393196943906260084740463248845708107996990671134862668240570959659153905800914180558076432487160068913315973369728019830562159884298999005479520011069948986250389397084606354825032324537532615277353834753137830513104252642222673096318239257610319472702660431208826070599764281585685889504376983910842338521897441086112961676417660274229484530908344163927501144000524605783813468391223860311219147736288572882062352556394955070456007495429990258762688192390405015595301299193941062758232865506295606966548333385117843540376388359021590589172005606036470421074990245632885855134961665324697193564455899218857373147083132777887210020108660005925374374216687575767175917648837666578188481070000172307042771428004207756782434604200749799586907823283500854453463297678897808874691509156092526621170459368920699866707303238036833885311083832758424242703701650747939130682704900606158689970284437313145829706749416333447027695174701283189184112079430552162266139835284184462184276553454540456849510562307681470527417533109921879000203493485299775736637014327973160967828881714980619822751739798983391764584061108873276856202508104650911108912580636082468936884807256861980815257787845542418903363538278873624731771370512651354327359354704495929284011943894121996065999369423130632492252467121169775239269751403378363978805529226552468866552927091165297652818812445973642124019014808413956264087877296641032224864012035710917736706971467068159668581736527459130949774889823071223901051984545007379659943733886899210402215363022425267708738616253359370674210079348364405077064967242175060273699929434102720494832210809038207110159791680807655225191460469167102721710126769403055625026602602468056539997077659968034141943215949871667031516825630449414377398458721322082009177270702730357641196751657589222224538219210120961912110085885669535246356025137182367064989809965099640981569458445250349051293230950791864883454548530168267189624393778293210805475530346167567712601556822830473867085201170748701512461901707816194333109015933766572482201823478870566867970156678861064022404770545595790040369627595811175380242860432602279805554158099321080536901919809047532815690317460347994627322627619101514554524519227573580571391453689642501466458522320813294192810625141604820041482237107028500785269634773065222054422463688681936665356880842640885184162948088472153346252283234725903591564983642721134325403962778976798502650065894467980045769587433336634709560014042521689093637133903893529181625587612888779761359828390519102654872364179454710796471089033342310352812343529916215184420986088819942178897096727489431632556105199176530390020779720941748781793032139223686902553902209199223840000589026068710381384953735708870704113124866262315337511973790127298929444714267742067972778505783943985732092202226316341953467460996691837830570087284595572374539443521953172414092455331953084626685485928090770659932138603295111228667619855354784436731459411706032033895904564732088515442217011427665739255663013506775043789425477448821438210340130476806579344279484699568027774181778842635773058368434666886100072981350549596221971466524905913477376025536029110250413344586708956539948882574699968363639037002085998261259235858660145889345107295586729365498274038050867191700171522552253143863210949867963625184933079176403133441833398363217875549387273890290007024690861834657496775163015519211394875958668800128821292529715180584585506142469863968397539826539277368917628434458420132488422741224876704234015488902139732286103155466059510165605680602529774114618147607596979559017504442026253671405983225429447483010285166042075413581782021015477357664826213460695579622646856647274906951671945289439446930043841791236876327014606437619228849385037425762918579401693870614146084816823677648349802224894803976177909556320436017921558142719195618157435728747331342203396250977738924648530752987312795781157051547271068210664755571736119047982768385121873665689606745773280377207700204319500182552515973058731199258364923529858917990309864536309205156016295341350766207494240081155752440424605994072210506683937849634776146594357136574894954312801165473713369152070105174388548360987145081362495044188540180302663849509091276605959027342583079176237142222136850106421363894602570798328026236952690214986514167627594237419265545067790730675117873859088640563917039330540424273644671068494020647268489561034560137341678772061357831175045518338411866650264311618584724180294907157071213430339796105977869536781830440553358492016696059467732673403852618251198776324532152704614137740152312377602860896253085569039831998681952815659684214899542887354965704711807797574416073062623021336594465527587931274473697589265327808908074583502147005485722282835670824452102454020498636327835667859517546885052602182980673872683263374621794954661189182991795879844959918117233487766215769913300931998344491956496073527536842151018647812124141081894345257624020838737418445768616628163226190469274755648437688769954919976357119316469314761579998943754166473802833859855654606489158476394370198137584188514421581470238094544534932597231124482653129328212718341933086327415767461343297817946865004051173016970263057892399108032026291630702744305586958348327014310945111464802977798766571095890598939795815538640321252573306987648874015685507845362023404295792602902754458174422217585428805405669592625988871927557968866314160287524162753092774495112821005491746006387792094422625426267416644693494952786512987986666624676111191337494430700870449948235513796089963159592399270771107630794907738814417914396749409209843339666959874907743451666441409159825637059398675416121780988765925659401903673279053166887048126642623221730816851863602160853157366356804679401774038064194776355798971742283120146293407499864966822156019140265467452962443754646122173700223917229372936615753072631586273909035347010239320790595250517385490166888201731048776907976210466896377794507411194419331160206297596589735075484968958255486218531705247297194130519294424769340948321089341534403428415714231137329710014990264647253119076716695779668204237923509657511291839830020058796219123141894399122697930873550624647265098911956585575630419275308799649064814730376363141345280505127109070293722166180694500573391431969149549438791633674783821250970399990903016417886416493394866356769292478146328617769765542152154551258693476410583171007036960841063246573953379065169208427194373368879742895275399586049053398413525031679766426366129961773058639537944585524657053561526423373104244035699524966201663798300117893544315502175617673560020783882983398842408996956106048560288598493857033279462341607145054710779857271158793091270513593971265971400023403601680447692006759934654552593847667617531321214076722040645550328182824481315452780198645621002804625678666405823739242869851627889405923815564482471084998447142276138631511151793121147884655756620690967142040875261695742420709140415735447264321779555660453912252159669185958648122040941620120724701260429144358905039740491883679288933932408051828431530184163168889189650928085069971508135612921220331647724631010480686707865034823003412595410707690442137315833181771102893998860972795392066144153321492470818183271857673339692272445901876677570319525150463631345013936021367299644345563598467006904030148466288325875728642512077361814651144667551904991377304238401058693361942111976044570364396684232855100241667099964835853717858540867147867027224517791502048259321823776196992447737509146676644885441189755789950060723982441426163166875985188583473758968370631292239947252959610095383529272945520220889016883118115879689766971677155273876909013450486092669002786199117222385414622899444229726395178637565211701367245005987524154469363219229073946979142305669440957708807546038480711673148747788204115947957705294804633815659046779844045971127351971781578326881755318812859487291737372558263879857012542158868348680479754559415421372738224141146818620279788383631158110450760557916664446693412733118188337093568956103932865077885419704149216629056587571401720606193935968425797671086427246591524290958759315844521715126829713882516147223433123267858976510563505341228175355310044234617485900628441764533200435222941391271171628357067903374557169779729876522440948432027417190816607632993928627929838143617627096480094852405497661447949527228144870690166733190653956052022815354089544387001555273312203489329450233971803267790849998654348023326807094758512284968259842878674157424550978341879411278590787389693450791473616322416252976105904915875103270688767645193441003295272470752702238541298624458325089444133034691867658336385973649319485836380525413025407099251759509756584902959476782339094858650180104094752301630836120197190427493240210352298426781208798303154937100467665925999313808059558595941625927270418219692338167823665372844702508189838364134563707946483281804937964214776959815050701320834206500049438507692141383047063294482091380791236381511923953304194573279963871150269761709162748504228823547996433511270421412840407478498294962099904539122459188383855023836942212903574844988912227952152472411387831471957846723432818616359175569330472277905172157430406904730673249241318591550531149167203002494075539303970084836054380336609958431122101196468682238351058062288238672952350106073052352249931485042553487532730170230931595762897678832565252842149052574021196067657434784587093467918094025591774599295549376822400073820470064631362044712639533069628618040233526955440777224932560289899316888855018526656360434145400079589561024874019484764751747618022187610087303571723554183058367466589787167432505945173247619735663205346288787469250110366900223490425831586957173168290182128424369673340250231660514844677851648843143834923491757886619676240086229573144074123799713480993154697690122383952195033199664961642664309101890529342503511889041289906309022375623459412050360357800090338205544475163922119853096083761361869187036092295380854075835110825631429527324980857232615332067957821133727274237559934463250013314774252254377791038559267455595863708976579245121131469472831640293859080642677519815650979222838398127892814722050343607941882384744323685685740468795100365956464257393212323833038685687312514733725115857445483709968174412192170003908701724926684318905387364073636826125809575529517328188964559195423488595774351825977051041452629037885874105902957602454143455748902662373998332092137261249737681954682511996862457714595776625736571296017318052861729224573157419476983853312307621334319742066047293823701440594666677123835134562540910401415314063713015718688685009548189869995938596001555010999779693703500040008433205852146986338105174038934137507891107078950331193465867584445473056295264628532976584138059758601765021559315380950951202337528710624721151533822811595617192359840901729565205814954298401073242666093584084154115888755304415018278998798689550324122102928257183917499938900307019010627351377950546300768981085817454514287431111709436018850286173915372036351404655235749330992918296877657847805631606964957578773101502275598721626320333889078682088140060870943442207327882913852874555768589191373438751027029634462477580377485214268414859607431013192126043418072997263220811591295769892361077226701145311262536149408263456592453017572974920638573012694292777892641346014059536506226333940754899476067963085092292578749537432577674162076491934418827345685789511517574375401270895944004382063312797549515361214509143973981027276278324263525267643871792479872475986076310196241223825695993373410511361909507779496422166015106097864517260265861514518652515694222562907949673053198888531363731580455096554329268015959733036397196261555610945219153749266792691797263804014600609048608035896801015910035424311081439328110715843121966816862125813180191800614442209042691184734671605074068785477165013922844583897327555170613588345247790886901902975304538593788834445901045903358081721035479587118168815329879444196896242187768881231308794361897796664287350491431818176911732602060495172512299128645612550369134175362466018176509721945138216865976149188631396157303067825877882887916612901463417107608481613961384628771821987627156234941111623304515314504481909913682796256192204794797135055987582096677868468997236787868591637285509387673380227156925934033021599544210039835142749094711563534565478941899306297071369546505487160132204969454134037668189701389602265577684128985178876347207428417645597169571720695943705603706862508045188137107492469059631363286699753438444914362106522488537571016471002971286680399632526214485118939144568986336344917242000535687147638112033735492019337268780371864616399421678072717962859748755738680938771197837295648369863381216586004105172907521591103587478795605907827179160461063284317482773327717338786938821767049031935501372250611970444090940921138169871911913874565332207111751341496505603771913313014268258338837157396773977120543557179382931497017508301573685295715355029535219226853664599536207833829746186753890071515970041831678725104765721820092981063440644070794592215634889420254449599703880761182320049205601114545162059901350594049542608783223634582356840336699270937427029370714314700565435628992027112213150240972056414819389671849235117096830687801816478837721988948668074031107532772333244143516049498976511009956233915711071520079625789589366406382219354502593801221964885508188649195044741863892604883823854275340305952342198389096429036998110888091966557530296296396073140245981444150906075964080959272415157622721210008878916937593489552658053667795087943748717702721278438834765681483684415921844001386170042483844771980223259272648306037130280890952110659588860730813586106242338213739778940334628051937723634361689988444032192629618786426772085055281292483879494371415581571654034688523340063656776338418988328530541452014648973101879841409765550391661423235046832846588166111193273904750108688133337126756319620394884692103797071215417488707251470565396438291993298059569556403486606508413360941992043164955412912794885825338234773997585188857282417242454365933997246216497453391869424260806244977198551697468169600941213389746709385948393827115999861188675133533267576259740031353016737137971262953625785048290605761893386508408544974967593307747114896393011685458745786723996457962213132544139452433483963250721940642468425200486407655741497014535071443746620012306196113510877428519463616857401667596716264644517020782732368975261333731513806125441917386933507445444172651735806080733930888800161189592223132135906544784434253688732000437751339041255187283733399861169314564731921489477208883585187470262808223533196129879774019325342628145792210784247395882179226663634470766837436878375976440009048265943026265201428562190029731440061043628882360547237780599918919638091173157794350680544859356024132458273515865518343364993644026803546618875663781455051760869587909881953037636986689749024287614560321023539161917288049007751888948216327113092184018051437230568430830187972984009454505630275508536843074457213951956735041707007373171486743385631194187536170515626355747986771460175421983624365036713151791543393535022448508848318937989975144887885303504461922231841977458800811416038967055901943739319036342101927573766277572672738463166752302786492592016511359805545734385873648535917303273482004847298906131022809390693377204747075168709458539960632491746816516031259819858196269377681039363488571569679669537929141124538483915102513446146193550088518292048580543820451592759991905049896541100833501046940014262677564140642571775667737219594330318249805092550916431887177439475354773210830375058279826216017013279403119852603433105685102759393645951799907226507002632994103636337286718060364080805176710315911169494790214968689507456149821352010726422278093253478260394629375925150981088360502398504010827013159760008817482696796901660711723218138723208719109089512441020688260911616108435257195549661755609384701689724512973230465639494119686672016569446332174387659770735021737334483074997538791963209422204175691773315470104821187919039374468693423301073303754211256926439120778644202207975841038614082374218249960924461488238694466787316151596712033411231798870519744452091513602457857066475052647904937847430074841022528907065064234981329036516427852866361502273919734704353245790057846169970913278019621807361697527419135572061997557722032136871055336803858759244137752598991767130698544913797978447768694576250705235887530863214684240756670624820083163118326126821374417315127043843821516455527365708295943625419410874389481220083598115481897942112134909742674279594779852182242241074271769833440706074403994214867056467170210492399558649860824526904349513944854304732760298744003335056973394628401791489425497787108839794203880343579814818581726933169960862152675503734918343897148536966890416788172285272350785373032826321509985733906011858631946904460124346097510958271625122593551517833159776003477816753412634856765392974047534748622243671839704434293043979597413703630754527455378468589867445466813805889853417295866431880757215408914916419597034073903123340418458944669635632935113730532846464876961323305820673362680777850113326063920290193327898895082224418531442750537228413883095614010574755196768134193879864850124764446056561188028083426017433871376130032468014676970509438331961862204884411555917211708195821017005734872492553620966254987969209241026947013383272125510038288551665059390383910929879744241198494537624929684675721990784115480246444121382447688112507558486140063253188441620445846591014153402074009422350141904206385858155755930594421503546489634080739002220386127522724525931728314878857563870948932790794805795944919764601211940528593904426218439915394619676661259345681306193469209309304408722848194720048123051215897748689317532622955015713112981049206939864506388918009550710894990589098677569967572218840865254568202255062866672367642334043582124284968523334383918497022378714815571722546932349772434938540706901656353932815057520898316801246963445037479390922964249475117583345720631299317868590510240929946973968798285159518531019385907512748627788651848927181243722301193943693388379304134823208707353274911723328937275584080567787137001885860415008968847914468305075426021941241428990790285458089573261996232735075173529375523412149857662188948653578612221433476167106290043072374983884590985208426319472783301245379257322145105798794712773584967384754026203065916793566840060296607762063094050794009406290998261964800419823849811514867352478688804698159537632850806594275840823994523613788784084857491587088138777642541600194574286024030630456950338852707058492934289996555440571337608847421203101288077835264200773482891454193966129738617254790068832245683218468360778218463814509483537623971601848961288650900409793569083767371010445673644298202784624187009616279053531549819156376888783517974579901627084553748728882219920188460460316723611801112912107959238322371995602255789946050301762434788687836612734141290497576348213743828921200884535829394267800847930559310536745506879755491371231753054902655438091265150920658237791604094241949368015175070729789613892967580802656027399849595426197988984816174614430187880694828598395113911612118888621581117656435336661416306160916634168735130949192080517235474633317751145999288710459629214364902890898703186949799344476031176951913421330758901672305488101024769059638912675894528468991966636995714377526733076573433937362508849625321689411384015353227093789180128228795979691520617716231430052637037406653173587125482634426889014928087165730235935641637054170561784549678503709180686630288569591857383101409163296783415574714651027145916907511879149411287587286861586297236206096704855561909760544246567002434076724350527820793397830301410008355709648500021315855001598550162469988764995451602771238471490808282596578014222139988645578708706414199766415438025795332851844902881321591545331344572817582930788413657521903695294475782226481573872887950676360319759154421476303486851200240883222595934767762360013771883667770236783567767194121566315281580406861612555764697681916320614172184534308747602019492997882460935895190158570657628779810092936956555664361019540590868933550273067659343759349706088806412352658386454591169152593834977715516587482689932977133196489523292593221506391690864374963910943145739311781671111938624061958100109267548666178299210904395128265200716420872967934588561624562378712881171712385847138550831538741797198445431879029678171327834043532834786517670642590428774924706115404424438965226764400037253242934364636077490910526502025148829516508635020241129058154638937092669360089695403605765304339328586691027346600397746804384163964280967920040896966753787142407597441317165403287876950156680001658921221913107804935736898858029104982864941527258607896020979249112085550296916559141793106990112695829482149393054679027744386443843125343394452788630036542395084595778934134485879452312525834351864434158764012611505195810543385027749078894567240047451450497992225587447002096504608956234043274082311417185435729126232322701475622315111612135746189918225593397451529766420035083391848444011483456304866234725956398750237453991271387265887767719406163049055370706106271224854474316321816276582907883245156166197404465884375591846339764346434513204704368906856661517176908240296581552494951374799231419892413586553949991178576240988177797491246481930749586155711093617631996327948967878474820527062845823969249750115886610637260491432661891024024265368810349956962803753276796665713733051543196895974325228755974170926469935453421262427571440843804094081705392473775003490987787258918669906232260866077385291174537726830590693764590826155135797883943060219237092448862141549480849589485131934345019025503694249553938441186373998652178098763307456129548703801423831333211900941466131040767374361644384065272915622374273453321859180737341530909654346361431374080917777682186806226991376080317979127624006777840244786530931741424999694354809642150975072721095530461225436085174708401228614982009062938973797347022271466756062832321913822129452147630000661244015208619628043566030139546161592957000923202241523857761166764076416974361287419771236939463748007992318666784878374433209038682791944582870978664871011588682977926812123862502456177414671270743833837876480357886990154289837506606190865957114833319294053930330472182492217282929681742235043133590946283746798502479434269564109072551175388200676830693194565179370069801282459733550016523025416625594943672212813612050142433037779395093729746786252494513254850059361083525986340320921940622614424212264890977032844878074628735249448546942072516436033317487484208537415960123913827637553668830428995108896094938524902183024019520435228647662267946918479929389206345872052994845423217142297228732055387127740452848449185499914097181282335889161835326552410194947990383319212674542115668709244924068902719724245299790855383960561036067770265918736701165812175127467097655084237128642048032441990933749907559340401150572339184784476575854020773984414238049917718885224323224644750331758338062901606086143444978593463175768592148780574329461970729141681362802161662063761485098552816324626056965697544394582698285990704682751509978237411635562836240019382844053256132275756613510601975570428932137431262592789794655558899687930715394791024203683516028376008103604289956769550550341222806157467680889252286138573565149720955981549626714460180348286983877622498883301055840160444270516876253100856291081873574083181101459405041837280666123877709418098719467417286239637949066055971081439372324211435682718605552957076773648915162979869226056385768698669380684141887482866652085209863475629190662280418620814111250196090800377507190977553591365243269373120973959396087470842708211337202874718877519689351927867577428545593627850489891957485027754219712897363377212280439196074017109193460836207256922321431163313262374202657139538462814521445063841267719042738077794287496416897086616256077040426281003909534553084978158903363656226402286483891854534266544748007278279398295393333716754549480508035075779694962771402930493087704065203681843405108694320145512186965984412445539077525149957673872977574093221978143584356216203919934038076296813873373619242369198446632781607236833797700023085796406360208260319467524151860766621299866908406733075813701954572077894959991300355120534677103194510057130698043044615016480421855438881370831367854893845399963050868270175095639968270382357017023905963943930207688458320249136818493640717066768688084893459830106123047135868866274472435222686591564965696920932453420578747448344950390298865507664816698559039210302464385135482128715671832634050918532997498974790001963180049793431497937064996727583918351217831642137872510006406212681784921006519826394566092667567036489688480399144108768712727131635247978742007879605404241052301172159470316427272653944509666525326269438596844930091974081450226927378949573787796881939266784374532454746999674612729380847482206238609834769304281294013014856943600915168539548100594640526679089073986537438474119926876103219385255639736646187173255597360555423559536361946592916185089270016636021080833098354603683783185361754158735618845027431058849022004861192199921961938972306930480704912611165095572197500849808070561439978648132531134718929525045443126625066425286008081854671528358748147695019794074253713581031402780417817486628744616535206580559547305753708209042208229396329517400206882412553915989350474630596486436374688824063000970546148830669660045168237107139659878437260657660320240067258669587108927631194547922181649126650089479170732393693482060853520967706261055867252877817820377023656241566907397584413702564693930834595486273744703299741057018299290958182941520083933037840870554247966743833969146970210091972642558456031982074359461216677872165745635944384712513301770499338942649328660664086157219596747939535925693397265343519731528627174234216195487049344192401872342967401086784025225202709382146376915875158682046072890700367389542251073294806177337888551094393584995883207128110504916844039081901318750265543991718360358208425530517802804634300779225707980991442403259972647478790076382591913448208935560710449447228787092635184678506145853604872507782675637742256740001495530992075674648580960428560082708665324505233581157938085420743386306506485181174947319337682954084036535485339858070237603310402854510432433287640085850800589858632873767441482519779504620885732252946758143701870752870392869524993797755563002680698543206872716956375847084403856403766924891821509478729710718605576628896210426828573929336437869867768985736454350813588942111405748300475789771773012952595907944827364183150785420543589733111219492214995273309137041798404304454862995596883550031890937039738931149550540967882279544266110757519607269896904195479648367535894609466913229041644159468952850072123044613545295305788558250162436405954250436217656752494858232520676710106200505030018049289625655924830986643606124717963004761060986683242190940445275587655823269284256474026903064327261493154909979286312214376063094609695525615778961015311607455697684628655244843182173549036364303735212468376521047979547137094859586411146172056568852942904415416274985767130788493357701034603191989048263388327807433881359598940371892301518625668719520775339077962275137241355215710467618976444956897293126029273074146080044857647511995792157080620621936287170990558318236349407889836659274982518769989271811341059908321537810316260633827011770742385463245240661802442742921092741294490857695679982028641768554420054791431365086154902739449876320741555055159728189013703053075900216689705280344458807648869974137376367179114253319284135276648157668875726464041950986525266413459309290651031850070453376356692714474723373201199679728392334545222871358388145004503699985175715388815336537534560491047553967373620557527186663968549477368103633887502015300860504807536515838507334583711210454292547640948181224472992700362738273491088324551414325504648470794020010167008802358621521300765999346813970352187223775713521895704303691983960093175866943908456946749536512274810260135100868900973431317844001465757775820089334244476772618081372149988365814315942940914991477235232107863653308022834578240631093479069853012329075072498562081720641161701012297605350142073922624947164616169417190169911278404414212162581034508486742767175873705242401671477338678206468627791844613447845535306696737836029070887938798220792205213356362472358795587838729079659369172131080947161635420804437751857854290037255852003504392174282795581013105325571646561439186089644698745063967343266643616363403436493432055565930874635436465191565672315266017187075342314174160586277067230086219210888291849287766320297794801078176058351958193366254676566479338220271335523441783594323729494377804372883727562011509859481280576006371978346319864541657673942094537050578396666800554787648944548573160902685854549728581431468395610977829852290549186799857013219874115612329741221812156418978796010869633434460266990051289249995392725979760571378203768481004820988269212174330260054065523841145042192750991648829269813843756269896772436540123376201112073389091232251763956626426471337789938911837280855322704579783775041291335969545043757940375270857135794627581720582424291658033015643692633788612262794875605609446907417575157745005357746002408460801226923939751550473378020347270919551738382913235831842965967079270453454416998602820647082902511623543267493489176893879489870806423165365563304094254199311711453817529381160701143884390194526854553522531649588348867353316673277580438152457047474050474056136082159812811576223892635480575276694395532828258562228524543637534668950837651026903367231514861473516249349281684754154501461681527820211955047172170498749427378544292417543293022976724095343822894338144216781734297355726078591106063170561246942973155627979520584198226032339367319104551928241855369352296670932065021298624032962271270523219109839084065980455925943786331271549280424923571750109145591222699674005168857091676717945219811846860703552107279095548558189236165929970692187597555658749349898108246697033690394357892305336646970023881853664497374670395810667748301790517624180853049309428836029194964406410306529527732948036389074152307380109646337914675852295503364890535693297583232399991280669531523506623438160778327441139161375195725924803640936102137204421953961293979877924014745882401176768906507681790782737953297341993315744648134850095042988738027679146763819293786656092614385679466127922196317708582631305897491742003457616454003998213555409538279497892762878623956949635390921987877517899784619328952224506256788595952342884737698446897502848081129489532850217096721402995768496869142335675281791353581132821174190148491890818393862044002782527202015091119745311031204521740796931416152995241970547010395880297241836243923432774784779117583465474405059795937244663193415522589932567664447889499640844996252314883149057763305255960445460879047617836258151337391786407772892870883131290570218300445836312540988996370294709130004029889606428800376483124796161113442469932702993365900142288894418137930171721047444104500939240887682577657377792413422035531268588146531551539747586247196337570158992498060230558485286291952230527520565368191141521105928345584819286631080963210987489437527962037905179421691659989521480829022631827772689054764710530940167553565530591297998357442994912594383442410398505942266027356136917001927698663307856302757790464412685008316731870999359636210421400159953526274060198123292565261704988682252858983475433828296181958721844332984903037065868212232743444235898471559265273899606688507962214459930856105777156046389797225015349454818451990865602298008549326457407681638751957811352199228781413159333802423554238857049450854576040194737312314710485257231816281600710137631493844057817803393072682312224385822196508361472082048347387349424298606630500823924022353076279101470715166570717727360415467618444420879844965381986450868949372421697123944173369681305501199674783444743114812233433897337227421748564638912346722631812607300024996655722284711272657602438647927022192545032626546298318723903133219023587128090878404529128688835103218414061158785911273530302399860028933013130217442241403203500889976471928871116519721277023898903712487448477038954959879522868985990232388993300325097480697942686583517168074309108863394072560761221559073614982464394853906749718205948309136021410874711722732594895911582046522327808285409595724311089820909509776645905351294719917364678751921403690517488809260112895294784350093109236700092321486183116926231073909413244030493489329910369477009033868842090545650463674810558628746866023658507389620234911521526351782960711802847450334206853109703578235873421659485729945486207261201654745534981202829328419211826402743117627285909889401522840768458153371176434327116640610806190270980822606840611584427640695084597083205825402340425273102817904215341948837729472550327178182118158225149448195708974040341643477684315169285632898457925563795925221073269574750998632152159825025634914730676404594193850487135364958202390913056888181801026636496934461543351160598964965323382655847723432802310036766997116800183192005693027604683249490873062995162374867514062486610804454708127783336496473753324116184102953748415215644979599317273558536213430297805423755706667141134635888533366494126709954852989543162811721544275160195774421884941730500285503573052794822788505097746561779335504018632008988853059449668114584452934607355903556255684551441357616230706019366735603778888089997190552797205864630630707872783797605435837103751581586610215025903187446428510870908298005317903085285946237665141534113836714801616127918889438446670725848275716568426855216183019341682781025571302532567879895304102796973787653817751523999547822806698995090251037202945675956041001286500151947882387923187744943459513153337849976530979173809665772583242116147672904720083433254249125322008900938751196191190056076070819725104957216243934414269504096138789976268384058583633499418579098485679840907028833685971955672110121252796143213565523605499421503081775230223701641091122066933771967309222732229345563919104534832340630572827397511077857493939616470250471660945197271913122562613895977854458551959757581542126720843789171051258065896721297865712338575414667451439337378705082810204361396079760674030311247242826058787036214035314451166104551494114831511294236442800481431244935808189540992338105535886413814078911144284899110413005992703509925154526091401627597735302452541135668522577245636746127428696626914055243627009030786502955473359984844287270211479174171041027272554459322679391190297095533872341523377199499397007070581439140286529494235728644824230693252728358965053175919499371722584323704954876675209308442924665927749143677436154442768173427486577272104214718088219618222523339468129316137430506243102248213970762370105741314311373178815254327976362301170236813732388822575293348445210966669479142691959102141410945354461102616653881608826488669558913134124561131510048045035566689029124732177857221785160585535844141288059480887669014416860792074714137889276379973956827088471637619080512426181028256460450661386329335875641282351443704839858550254209961065674570315892257120344558801322994315748448747865997958211700311789433253716264373193225142503946124556311330433857868955066401675429475870211317105053851263784334737928724575469467774066910690371580306047352931929792311895321833665378352217235510419298456691732808841585462433879848222527087328419646924227121557390104757329097955010733096980537463953430006132211296285493197918567489229420523646785078974203711707120164102168187375247984811172789596259264018578643734097294141547747374919923301589067992845379585088301871894631623194135611266121558923866766517518876357722551112292417602138858972891241608659473053765414724652397722611505862645792435476045373675484057701805815657571859144029635747832168186557311073666106991123476376782055288206360441895801322772666464331169663675832891371558769403178454681309764631410045907679583843817674142727562737759582619003687050559488716060589054200987513330677582493859259273995138355366998728129062896035666156289257641780394933086667680230134013513274496974709001645616154481692512897104541994491933759499583296305099188721835318458919386008935918957898948093961981543112767980831508436584012010006188446923809611063411280610243343438169647079361064658102892264510795898706260266585145690861284213309167353824203570059771213357871673683803420094935976865667183547515253822052572987112290088187444768406969878790750291378669217314968968213322676216463535351680930756881710406803046876544813700091344390887016851290702158042860464915382952891625071186637346596928010375288955247434688056161714618390064464570247402876888552306528009035026950292519985946920123773062395234400813443131789258721725943359906681545428384473644257446632711575871190739572485615445774899683771100913661924624508218033605840502072455597607055139666513549414952618436917440230293675176021752054858437959333185060008891770185341908972776133421372173840060220613828720532954962586983781152441019437496496250027606573581807610068265358029084332355054465590237784432368678370717783328358384379491495553912475872406845692288580563150918356792059948153100731947773903601124968093566390364124420427002131838074110776342519120098249991778564969468519210112219154886052474581240865002048434475660278121855809232767600082284658238240105903438839218723810633899694310500040348758246991478302309734485383750940318669171480457980590543655082678176560425171572683421670968212298199259536666707503240338590257483424618852819276461132871460269681985005418943929821963378323261835847955612719206362826250474579956965604349818316818037639126306418906411309902772179363352142569217466553242702137908211411869840554080361881209296185639338875143380050152569765333376302867305595846060689402249654436169289652135267184408659481272145309005338571330815161277023609454871443403565928817175536279675942938690983690750426752739136068191502057923930032421899596904346272224868691360701300791159869147210593009303907977253096207593125602551790640757520948908388138233115548218696916706925752084622738238230309036328677003325901959602748669041182532072755839872778237605847117767692955031074526829804459814680859094936457451376681744128614482869708178244729739610734819697059664866700876302825145847449196750383611178144243784643659680642122356716370481995685959050532967902027135742214961454909942352549005684437066283790334748847955268368924349892147097396013911960488832037874377465290638441875257211884375543660262205398496956626967528489285519152351987356701046121852127323372522298973902619118706698852865005213939777992922843188497659992119679720390979446453867287953252368691043390552358513417734219358537627464946269852690795241895450039185403490846577928339909781405620826262840089686668522034101274579326475649089108484539270726626205524340198938725028599383536106743512715740793769535368552710261219913724449643575309026802818330753811184637382442778294303941512731031398610403799216139248940431934069491088224847086139782773141720963925912004991330984247661555237899008994465588433349793093622212943313029807305228215547621915202667663366974018202290680870170280499776274845954194388273474853758255564837225860629545500095982777479562697578273644866732923143741164184626768745952489739961257283403698643392815571551552724049533610986425625168120328126174824588555472227981087119667937794288963110005328229244527171980934606397538370466796343504647400721829615111576039068971835507720247996921276982023105942883337319385617412317645858228665612964573771091639523164417289094530974265160417999045477566997699830354394187241213226981115465805615676904596471487864110062663638418285781284783676577206320360205943209363093520316412241357619186867008189745654529321471536918917228777763572032868724921119941436832993317570230341831245864951264128972524712147322077545015783711937219209584471943858134993328128707146516723661184975035959731754586829974195673735154292317499986924035838017162380155064243451539914224811561642535034679207911788692362033627329031410319709081220195422622681860010617362215759870741672326023948593460940625894000351347089853697690484300765711622648475191948264897527623858872383298394893816243599763822240906028584948333280938330970252410424129480116529284435753128909124152722437388304524125503607603193790700008902053110014279756592298727729187736855503957579476542613838527318620384444075466562906721780375489437245979091462944738457646433673544040037209052269981565824595198162031061788211469647122615346203480307847104744988082138283456796095647146885971037163574624169945819565305205158491860593075749592720251484324750698515056268844513952512847154179298699732648984268972213419434801039119414063673935815956281241951884526109635581975491563815312544518759548089920477277614641548080333675498027184315596970291418011036970778908544753640579158973057841826052060943236416051906049684691712505056880682431662552117814102483557211643106058926776913379892255143715779008812168068374832691761862568197316780906693757979461148391772153275343959263941466550088026539504696258670986624632481531793810049771002986209433401486180782667598336564672691512546220024475797303736394780656337499532399185522191522669086647007262134582293373162279355181249278722537010161789171024248205035896940801911448331534715543312068621953075136073350147884218150818328611768180187138417497547435199617617213937001648024469035593647447673242403337199834655712130749180297174204227435153312199906477512819335370766839184992973559076779092312173306452540075221120491206046977511380066905143697032816408716778701624110161106410128920804591186934906754390546826489003739723243081403003346418386221960936455516807694994236805685110762520781753725656165502285774233298261973894798996789989458871448026705641061910086742828450842448497142456970568012819144222402736554820417505800217672738588675534497310199054211701285833043252040344352908254569220844371268674614204989085070321638878647994238615598999968502812887055008843292915641671791971034052478492261939611610847289114801948041575299081315501425902747129398483670951765912972784460716642381155468803656080586461960766100726530029724257853559353263335552957014544275250191068379755663661937435627234935964511323525878882109672290335195358137830323490543277321346262089033409902031923489661783157106173114841782146322875894278962628326093109875251822134900918947725339023046627776869602502839923573609636220722370417165334211682131914357401733553029891442959867613251189744552138747376196442230154538107991552119683094575736289557921776675174054905026068696555100050476207739939122804274939330476219808937254046432685599151025391808910719885992835816201246224301022018589226971602178146879705449964726426055485756680454668025584113658413818495189357754611670977016970092101716405824085813649641411022108293820051112122659171738329711722272834239768155774425945097686708492439443311286192840464410732780053411799080714446767240324064403024574927349120253115967449718073325904110241057806228791078363840840522536623307306272515504120497289642093143315407573876076878799102416408674315410496097003190784073562863500750308112973594553258100708271701817235857205164910420821383774025540756140387425706384699518297732804959695410777610105410887015655564595436837014386489356353225204011807688891506469193643182675498023780940445055217687949832095370665239340245526131096551589940257228485659141510345881440559637413337126465038290084633569100084810068655565597303155992388038964399295229401762194422414330659275268106115899469648094734649261023914029295495808951914659277827231815823259021716255305571109599461833844248095296320770442735092154048360508851724949743973955896684981183857621371666450493393265280690792203526930109035770639712896041894223190302942045899994206915131086466119074272263040870437069372455605271284086456882037916459862965432824397307875804272775032724902261645398134249921874126705041466620455076116724799094281694795581475698979467280139339295642392255519903167912860317668157867719793229676660691762365648917505488922042206524590562494413931038317949155908151315213160023352233778839626542571026578736371893709282183720880835805903916676339762197855865807495971993527754039274619321548502228764565880458822772293431570610713146607316854871204010652979738369217420166714373673977456298181292158102365872413600331943243843088668693019954707197350300160243413512224734984759155422007475147959751665820112565575002453525303756650389872663518846317192763440542533761383738721689953618527259138919675643857321728753557685013910445633325004213976019051122085051096404952407914756505275154322408830050703253654149783201850897020568330525872172550108856379272726566222136326586794459987175285992131652066029593665057680620882594821358174409513254035106937379720509095740565225065065101960018091327626770878429902776961822880749534017732832376768655624291416734312650403335002440729484381165692741844101540224084364410737528341840440005707509305521357748165417682352520891021629063426549522428190340773942779648545293544914501382229478686281393703610745563270038301980859497342719360090990346019928011448782272393536372520175828102960349676291425892216933513808488173442816612741227400176070827663575339490877447267907347357001969700333707990602222485712542525707188304983378876775505051363620732863644490893902728593145119484262410581366399699296938374115056345544030799082352760983141479168860320248113608654713601198364546043285554254713449197302134346196787908554900866508197721589932897626526805813223317908337221095491054772107552362871146938088857743104880003301352759169609596299554218310844768508016752313479304753989082652825016653134972348498956262052407063596866540939159924227965987864012684574419478566065845495767300398810632684218307894060126619190867063397602494773605616436570069484077467761162423479218369292009281867323280378004289711479121954550134975521416027245920174321550492857536650079753567449100056220445492455883644688895331506567594487701897482677140850476534972557003440449440979000443765499208562857568889491516346328184960276799369764262795345867869219634034903071672114157608386823660570046476376368784855838284361915189066179487448419149604469802988365042704128940702589936691499175555074445240628401587476761045564870185260113896952808530084804814993707098579335706073149688342663772355268457165335324653914662507122517682619811405301683976780520007454797010898730634348624050832535541218752859467882886880697188769364377760427027047180299598047624068340256334691130748622900754207538545088383778046062607429927408665351547993864688811448974737605191023842890734146147276124726384299086056888834078347155179406790776236345731639114234590248747231166943302352792092010791800121396261549168487595117940502996919499952574331914829382889203671165483408471122607602711756787701886879832058798660018914045743350642286465149790228577493855781747105017009257961954254629917281863708470387588275277822897808516178026604979663684945885931772245267817125265947045108751105652858624681143254409350021025908939307125235697134128363414068357555776491194818874392922016501392492555352254662206527754578723151214786605209653165431381514796478333729873845659877923312783538444909097505672155047883426909773198336451353731016082758259655036817773477304653316489165677557946339864278154019442329119407462047271335607038355141130830282181481850963215440299588412306658340723942606329337931010849152228346319347225919551031989323239514732678063843727061224551742815240721786590480229426964169676606591818836876025559481655820557162012737187709412192895969162233033829273204016166505622314154071505125984051527548911817226031482803593514219597917628507401137462914033005267432960288412557262255493330347151027103881184329635276180990419600438863916505187418141501032791347776540469202620469852457570371433286688070959544205854736451618944263147390783740746331959337511675736262248131816122556535571582839836509580680681452764146705378903818876151724449153785131155597624159507074439891898049858351515528238753481386174021688594483211490539011642266605664833027060237952386140195313032169828849323368015553499820564480143816832382152886416538627145466437500828164974413758180176081115425275444743824706201344012693328734309613709579330730055483772910016712908686241429097619484196591761421564324988306849325911018264757698532769363184065474020219672513020315099769521677628361487046194418159191425777302682686957215171379340881621439412796668986961453060643141963767121820402406462534881719306965160380801463621795562016296873338729306737394414372663541414447502590254522149525261327225458741818852404654892126651391918388278181526397529469346938854689018859286482148974016708432183170876072306257541891489149778938345492426066988936941503396213337359871270377152909736643653738191818492273068961953966329092957262015113608605352979275432591530401284828166102266127677345255096275231196998336435369688125779750594468976484840831498606307967239176784294999942981465917223437968184560955186325245869060315028936832023471914118158440000856579070015363627896526113878561480398887934088384728717551342457375301818159146058552038887928418577204315881652801230834798936360112467870349512619160187404364857432800072330011593764249154924877747309241653682751534010924561221598213378758314219387125327901688557406324197032196134800147673053942523899190973795184561700473485638370588953658491268421532184387508830314001289078694905656498281803169662869564051134466913628902717953646973816482799941921992061157424030759699536203357882455178658425113810503242675621312899303388732051165262204006202686184692569506146783830116738536401405206412481801693308285026951766448374020543500839612722039375271031856143556496947355862583015699222984199291990975516453967753541975793016718627027559366045010274309732121118311206121024869135246824694867733862700110106061662865760685038878313919876190087904540530547306102456827728234729503920362440415479194509981708264230134299767986663276284941627593490046565824408862366764387906058055486747611299442377089061893288624756107391065307684150932358442852302012107423004405968848645200607641650810399902108644562036570168171693721961090889813009791063959259937446836321058656996930001489615528947575106014196995617169105919572913318542965918773770790205139777514766422972894752997589593123079216484453541627237934179473902540385544299899157951318687713772422072860471557187799585324102793139410370486040302887807276625298058186280075069142506768400215700514341427382202255510600606648099519225714835091302664915100549735466360206085625187247468805675244309435157533977142441807674485191264960352137571178585823443080568607857115720867729359151928290041263132346533154377858991012809445042971442358789394907895295289113374434718912174678406172342075499578174386061259082346427577043801349059837091285073694746500235933579551883430916760127404537951567594181086732621143210235324475190979810482653775713279391446227728734466897803141955603782030614094930496625375243849099455265585234050744870475922225491433792789824127913532204142425769114657999696070815721529660259851166804269938465912296695559846229431935561372708257139104420128254353638713167484980429407826941545034138845463729430911948886016280271220723869126047385457174460154959237331959033688196276556685105432940779648970091445510957747743682986489620573232026655827456579145101835333158565452789615896307549043108568787810663598160982903638131749761222464066700741213487373191604508454109224775917117340868617147760981960815439100222909579721746419659378840268552339860963171750827805933729552495935047498365537826100141294475557756642440518364290595013735226090022822619771045139502508180395086670704038976860465588219190686461510959176464166802552305755033268684596731941000547746869728592745429319162403482191657009278151979417108719061118941398888526554903003782367706528188206003944658109484401323447699724673219626482715974242044981741178690989410721258964705568379083900687805057292343826482046218520387833684258396329002679853806574002575448333831863596067829540016756123900279559804943312412662174127585439547140713050672357117631750137057419921048597551826095540023361449092064761093051856046833020860901061862694094816967345184504201770083347917973167434274760043106520615534685054442210815654892012096379625545145692997791022397441318278187929958178865779529126509114177569334206622630196703163208340414927639864861488532967605805072668214468753572305069878994306307587486237199206981634142042994413260266387305712688925303804055426382975876921933289085315216004778738049867005977001086820599817987242094193038293009570682915584624468529309972899475392685651892411744515054046770268569828785558138306998559485939515824858240720429186451600998290468793039045267784159946268568425745985855875840097178599163981326397709917998619869863399697488612067423572115045253580530194169858913215203380495895820924173259691629437968616365815257284031152130160958000871658316264449244580718330762568368381138632946394344807442505688903663978107145445456126283687386116881005165800392036032170513560430625237312700820138283966157901248253124070583481730652562751805509893393769932533963367357798360586728898967827527551032402242949419155026479420595237069166208939464497149049844625450853947679081561569702480309649113013503224569816621274203968870882968684862771476688298957693917331295279748418479242428795457999911636029329477361066797501336697729941591294810009090212986591975162479940100639005841879088872655459953075589770778020338038647872122993420812386128855636944605686398072703910142579112961310429961203767293034980900203077952888157665741082692006681550612838714549186877947768548966405324727990451164905777138672616834327175231252061296610966628472568805350507575100515564481707031871815859328209983562414730336978243000316128731720299308223693531473463269503449026701914836638962605725212252352546176822665057874236717019778548806888327529319215570887686308968028474418712978174600759098523655103221934568918638445936509623424947522370451338583408803541097469066429722795411258801853385912185634032031057572556658825192716958900848639271223223186490613156478777091063454127523228718765596648678201989436196750779414314480817612802099140921601786818532100610288823950943994231450610244760939714675595677560295753114053323887748719208923276090232905521018749331683926660907239974244230815765782811389147266546694123100178352492130456012044718094265499271172074588344178841802557420635962524004996106766906036929437395328282597432351956268694717344483039913257269479163684948770803121649025724077226686292747816932112147462960150089931467751359116146185778471548439678118962296621528743425460362811603108612678979071628998877414107076680462020423655438139678563819518717186723639254284486399242869414514088788005365480625217480515555626586642209778824610801709813339007192689957769955405081694719306365419395541845080861001504772673374377273983756534520886136060470356498256417910561263365440837139027015589803791715137194812192472513078730487072381271975748997699055531212136294937505348908207729362220457530472982631802708356277517088795509286567363911233990831746245649855736183592644411543690280858810177500145952691303465835694370930723196765360911678684597611166838539408429816780539425292780078955698991073965332127934529709286510789030188368875284482636581172015476399518691320212164293103735081691760947024541562110223208096840950860965494836896301877366913306325043322969439146921811920867032161859705004050881115015348662117647261030821079926581359849406053622388245935692828125886187173987527965157122282436108708327131061791927106327983722321240496987204803624849879665402897137360951627511226095016672753692190251765635507091096924450523056949208692244043407194957163530059577658484749562067952504855463706148745964152864315075440845621471825693665300120336938126283659452137757269582712312717456172318271306750898058516390122174454155777668302442088580219598941903628434696208482852900599399710036310795192590126452240988337787723000404217914320989822145075141184132162494982978018090714687768402213035755766578417155204801216122430489589725310419913435518527070600404639995837018884126972734912253645025629241908778906173327485490129574422714464581065646809586210522845461358650235119920909766005423901098971663395859644866868829614245922213464107969830445024310795629922190331942900381511093468503921524397934634476928470729478343438279616712372314829240324373181920836362959030540487283891437559010919767427724452921563058351023117105459177772657631067016767179954275283416735282320968396234475210465024111995234291622852943010701952949700226918615660996561851537641558406556565928996584108453414241511774003643828537882916175322398848738458337467405191853061744313123381586268839278080616966908676097813788569938761754913617787095322114457904423005717576452015949828954187214959886607148703255083778279640235620357523415480529717438410631076533200520691172747895327602889859210552571531191432292140641802572574177904401874797363773160697687418056644157602913627972689036534469584796765765787241905858265124236168388073116998904135350600257838906185422027601212964914147991975513389199251569549332887370825831000190622305685064318432204641898320211197029694444174447299467336624201993674101963338840063589186390521513586127125294568362432005697482117175795962786604446073233427075662795525010614467681222786285096659622090258534179920457751764072992133424127442340149505801063376105914694531320005170511890821036081073341116777758296879035426216629543132218004668072785161999270869862969620391983670986698700133805515543433478391902330884937607218386432345202114615794153337661105388545255064302181447508103110493033423704675776263493785538233529569662949730029126413771800473469403713461070286049017954655609008661894858100310552143266280569579789960497133740532531442132899456770403916569959566784499435473518300855927683452442848421768055175787881375618250358998793875588477023541114987822908325181654389319044888627442689984590003007701835684557008150898419508312915519900552116753241551378537319123032750149431578159021959021873922835587921042301367361671499260873163321225905900194645068532008034546842658271452017930578251146786227630219138512054052947066231685409714976112888315338408978970638888844053043035718761493767470757415264654250173782661876470880481611150785792504334420970401947467457813670956040119126216891299019950585588288507634695112718513137712319254627033416604186620898845315713140798685445178903348987183993880544054129798347660891883338451072413264614950119913649631251361212285679647615322265890637160958023548171798833688249117152820670186106771981740745036486630872114559263179911053534126977602232092333717861047061596329793651110920952006570993954699875095520160167573865292570869618859992609555998197891144247385791757195429062170963861857219744726799347425519926631515061086975842713589469186467931827184124246907884761079943260298023702021403300165474940354347080686628022863615718611525843428253042849883268564044586456616723963875164818155380790056860683453578792010191551828369011414161877153670817593319089186994285792280791801851840261412539578175507053130196435966440334163544840879835648182385683960002302744479202309632414009178576656284159423855340019479089567094141664471165107685573330359897639284447380656538131734004976718033473493841357671037273939977878508372068913595081993469191704123194897475286828043419620303396914978697996269832089451219517292930906343275096774377052676386188731014792464438216789664979313180735701466763720089393193962993179721247132278478452149386862555873169324754964593588897302117028181809688346043590489135287382933668409333021836638424148761021963394951783540002963488965040404607246870114547133326224581366706973617185443743346984539677649936347187411136103584370900099970196774644817607252663354182799820548783760614804777136006534682768401889746937611224341335330000746441022702106440686039298800853449005477158756258041520512877716139257813721528305671040124584628335583078337753932218267834411332431826456801616963566604811939058757209098499948278223084539642634073041611014925374329087388979640856861527493335776110905326659277795257928325079460996206395561212471905084909719539360205838499446759981537759187144323253496476540161046657712663033356294866683875946452529950304611340622152270231372343454476486742316933657245309435039452517804202915990660499143959778546092300380665662987978218165088439311420261386767352125546598869798403294530859477742834218197013721786119610349390659368933352768272239706400060431600122979981111475027879397082807772456024110273662404879080702946059476629951302001386748521482701906109042896501265580409307030197614188687386566953077989260578745794921532444448175985301344944102360209386693446290996823786535367667004907217276174699265517021781893226363856833412689743599878237748012315294288589087301899867265801691787696032169012035064127457611263788577531609097603653769156639824959470348140184695308742656318040549825760001733683666947646416217438533316636198430204254999874250343591721031236281397151962335920098059593879323954392670552568816275448447386374371542584375837689757406041538181305525476458670457032663147757003263335122211095048346411034198324136462867376352683324156439209025540265377639722847139766860561279758954093350309122146421024017399926684542907344652781536959169325752057643496027147212465198467969235914266609376028350147212035294050304475587456663650841289106741868417627441059903577693519776588500363601886742742102802866001132099185042921130523188789763863555891931919221973894926731658823462847897984818145687139927588682919915204480708362163798118245387614826559412261234172477535910159135885545645131482877484815847966047612955217109851290198347380107537451952935208961824107428878687218893032704329647429492542732134514096417897649303186656985795969674491049074975612586263338883713440294376897257696968904745762220293355226868739058058222648408102065434454513498723358873711765839448216817884719285002820474878588724879014063526726300873672977356121855893318940099166846085174588106318390594383678169815283186690483300422573436048043934393173056987019268320322542113875196173582642341781420323498133915110513015360211317334213181770436489963444082464341356369538480654390469694063817493492667632209222031255935428183390836450799363078442495226357473955155332168063571353673240837692935947469016187471578112781555873025699609433097851397929531504635845636591047947352560416987847634524120326610214730862237881077434454172028073170719058989412131303801808548087279816505365442722043201711359478298770565262779545889677272748759814284329840971602195123713056297675510790375990498006780912172161995223894625534090953622892648365115313015768137210889291291953845736811049341126772048936440068699949458715055290762845146189044179990289359798573207500322475415150262571631432409423343186827554468740791493450809901188325494393219702566996982931920961144310754802827927631553188142438887403932689520217060391781188736861435973804166864211645655619354810155426684306987724691481520128531016979801387895597759968901016403541801193282607987129092606976775688651063643211780955741185151345110957959334038897977358886183069105735418088795035132786464408407694770375807848863118599785855884850320831957910936817409148932085145785809854948981112236854455311643958201733305134640134054992806076261356536162898392230344299147826063924638067134202176160901047536242466504464266218600070956673444939143522496794697789667927174744406728764659089577373445123957800590480717431498014409820384407324924069357474040334763201431943416022152969656954639392443837353980260125558819056448973266203271478114528715553209617766480597902658646627731447748405301699765794531020538886430803326546782003874071264388323401843742578852969720755269048658511550421867527917193882335519768465360067331988449524170673645477277913961600999073644064200115149482671195331986069140252298063201426438159746665325440886818288112689894525628241451783101064443443651011098611105000418892787212847929559207735310169085818495285011519449189340536260318590660530011551564517005380806892515508286686004843557432230985634074606353808801049933183561591124197429311850743727815633568516746000013568864438592487710239801714070192222736123683646519694086994298046558819112130421718551441984112397591046451156616723583295121433927017622613839686953799675391746390489582693401780080661657272599441436935224485006104671676937698869385624738011488050687785020112542280728250902776794997012583554767939094939699408479750947492072628837178834143438271965444042810432729685536055737609398050822177507902140326175530866677931848661763402784247245973487579131358762838199556399728158596058177445195215160214774358682476059149322008692143634761187617236487640054005989043753568267389676892442149151764174273655367220331581670701909192515278480399552669214291052211948080679173866228459399422961241231715634863784998391683478433857317745785317810797772420264991897407091529990489096726025425205728217869559804277438846697114062242602709193166736772722449038184117634965548830172736419568514717855958467741677299864394174088057989058521237332406393642097941975109292865471909117662045603979859459522401285143852037596972891392804104519268741614268334905684571979616814049395727263026581566999886065303262700303988727602783884674198285058005298599773471687278715525537449712349540676780925440155224123374610362701206485011785535530508288863926956062487869220346223756982901545635867902695535207384622085687818302688515614786246397200746302868108514896341557948078451435290923686831796033732085722003276666190175495939202164134467043982682325267737963815261120454925013820568896667778565338010622268871260314272570147866648558090921242904524710416952264646985105820096921501409216080292933829526244860895247110565897465321720768492837827957267538355152385353755423541558960667729721879592389803384761104335814290433133568644459076377975607922393319746587795515863913329737660904425119973582509459069847735007392373754462384458081038175755783674878755057232105854929807929792535990610914485976776267738240560200584891160086737996773349270172976076464619129208177867457076997653448067727524359052283618385854354577927051036285697813061820206551519284241543059997398320967216031248041835224149322928089814436953237402407801082884151438330216441085112920263871419416329297685236088490183795001741579464625798824753261706724764892893564406037736536703126690775309243966140091296239264020690329553792867564578112150767699809761552908657243088052685303760145651622062003946662568977678963976868169354357584459864310090889364105845949586187140512170114125718032044337950383075623133438739432778559872976260413777372558372188076501990117036738691875926589152138389387129321162958660256509198590730316258408832310448448538161497687500031425281201626014775931636868566760835746291398644835128373826727690010267295300279136406487431711953192860082402964416237105594238819915044415048198563882407690074477685355839266045467979267053254932917131930535746488906207006897062827754619370311791403948158565536691035877675383157228465558744604266720578644117376760895434207294570978218427278317537349353091594082194442136440744406548683378165616786199125608162839555035201063676040476559240756359083346082475108102621113029008796705440827165507513616469501692435678638391577026380029697967135435713353607031046979852887391699870043953175892708226574636518112217756622353505501856732895750000373486944251440968825970191066103520104571407406244280027876072885047094967778161723222459969940195142597338489999083436143362476836864850727416663351575675263330332020883237683424260281026642719117842889167371403671268605007100595543881292564668486554631448931888835214066026346113820896204656066761544317998164219554237427833575622594196387069648404623450640180024593055043828489298788256441417680515923382654919015048094932673718652327450309482896113662439582823890601459268735004036843688029427007355718848749405451335423442544380839771461764722601970998346091671315277758696779829573961798297395095710651284146629395940772542438044624482662491325774862163151027458373007562798723621387284199454721262594546183825923620128769774865654376928742116126141611496288009310480166547117467422798655275573195943471526931293468021194839392309615297547408589967123145813167572902126857489353701298182350368466476687496122001594902016491323730329109747939486804351918354797372218331862666915140032948203192908194354141606704380785946310341104434821025072506494325432427926823818334191039431906651491485223562345404656489921645055285411840501766411732716381625194336904824241473502896701930028595202935528524085707340942470554454879163363836555925532126832464128248768297584146545955470082548965390316963532795373344430301060158529865202614990519367019954686571771658503252303259822532117970154017650727919130548814521316930460195547645607530287008962996019318524349089788232300777311562279193764633118787103100917662933423487122300734060303582286172857281128909474956196712117671135697628392408909476213136998479863809825120024025267289321530870261628975728160706983773122151624265703861983322255498164492216117818667819800517073556894654235997483197550253258955932550184858206823320119305477445352655374543151470787486811951539485587387217018246466268007815434470663874155040702615250947086981191781884279547295979920569955782947832984252588146919544144337413837087100851194257180630064187083584375232427360527581412060159348066940134073541644790982979643262157043077621437223706095388327139398656179870315936212483344096198527686227718363382887996906040218616683145388776677369260440102388042560246181511575058305762972904677685314174299249703117376583176129171111268189356204271052990061270271842408093382022388371515214550782213829195511336924123804763319569347542546332824744685612115550976385957728138563476840316509547621423835532141805144988850333905884997388188138153711322445105062139929294267047842116220432561674875390075509977302073324218098563963899739949099326968357527877695072498151087572541730276333924688348049147648861162429653603790834994458344234690225496094544160223798239355645833319135488552384644220841858995599182083224739730429326292758038751038778908348242041101344132381048404088594971962507047247943197701265186161080190005213664329728524195744477712878751402779716466955511796714073908005497563867260650889338649955544163024766424091983297165955264538326414464675255322651661679488303235317367980481450602689501959432060747072306757354292862023564120805285864372359803976174027982633085589679480730276518411191479587967386218466520832707559975975295807596272542406361576519880347792492115925372209134637466768645870160069170545161278563908293048159299908549943344503867329094527362419758008487850850814898417953210604920877116420836408360078568479899030527929282055839623536393871586421117169213285951341163676068901860777189166090274432943435790034183032328987282242454845580089913950348262178633236390794302570967443790746182200770685008310335922856588634416357747810577350057616645703013765994566717944891581194027067705205635712757039357337345517452660450115728051614996599966566961909800849994744466267681032872144975931447014577943553425558480325075210152253533034541288476891033778449648585382105277176063128743856391477305694385034656953843570241202038358727272450726936692575177420404346061924609461571554449649861417430619309480711923457862062370569478038834193503559286809636596084324779763071210996829799167606917522207620709622381127162679511598751938131534780859170259688652993150452132281977919588555596798466621300107328213426679140845041315798090976083237764290540870269239300255410635743886861040308977543700160649651996617656407338888181175778609412094807147850152872116680626689637960745945845195298633580383425822233907519196359894444679182159092040323740962440025730376377239057294054668217166489578789312377061815009144994950948979375291477742051903165408079268123214512087910621995734797450621681544048135984790090106732814426621738162007755962779299599027508613005074353599268144036114572487936141594923510375119473110976558649596687602495141542434073018226837651830329206166559344572082015042736106283955484299297238676733977349585014174827911559251013167222774724958837911889327248725244154153330900252192341804162198742130079563348476256324174940959636885006014669450931713869445141596049079199062055806454839989177675467816179486550420641518752238182385383650943251471695956634856616275676758552081248520675392229681585368796515770018671407846910688254709196076573395856030313071059331509855732451209228463759838346484986655707370409838973461149234866041848181518910810148406972390231839282527273742539983862347790091778443219204982652691796564539603528717064129396806904861462208090778083756367625440522204462407184366039887964892705045698429946600536376186522815349342224300223180268833711183251470839971340337756960288554841203543926955312784566809563822772193073271361965448894122167197781634865929400033142263240461680368501892224328682718055228553666742353877355691897516751280171563724190561318692335929144976717463101432389272502026706491782521243469887554237166672418518438475324478824305905771767918760650777024773840177599065738536329880014733436599657733121965386939960394191362867455779514168504206725243929875333967442858971596203068460540537967818836743769832232911702150155316600296542234086711943063546019554788673019044538048659657961899317636269162953274378168474047312378655258080061678342434818581744413231808257976491256854021187030876670442820059432525802659976785545116629574556154298183877444749323352846501489062043691713145577056127725171790714121394972100780779853686576307394876434218814943217942240360177018238440804944360508874284639836479261977338093003379894166058693817309783849257208310472586571930031487540122210628511720367372373480876829149335932049991073564396351381849183537979413453126069999989483562589989128974816265388584104394041134796157613664893031952075249841356281893768458228738213698294736002484851629438338103959815322359226469432176274481009486993983574309614636696074079899021888359916467596399529552603809366962238720349213131948822804959052984631000254876374178041873155532009331083555686920352875893654146235310967692748119394576582856152143386854822866453219081977497732265665847481690805210768827558271256967581402753924270513722663678500449185656177571069570744626000901639733021720048147695904088340571912254828368228704397172881313293356245679100779460900740095311846197504060056679619562501030644516183119910788040230530311781177016406588720309575492434940427151955103655825683623602952268135476978288909185674352564197122209253220687522738611528319184555521232609424325425159795763209881490867029228518250075710808739476970042203675480784482056749670476794255987265177219458701765638879437901353815298415168840664936220403631627743270180271540389391999414555742599515669014152988034503103647911634558183935358099268423569748313172779047347546840676037403186757412913729085206120590516246955401045606218041882236085640806265642088876573945715972249422790568230181692735082946828020953073895235874662797839970366536083961725473558847145302133286909441732035994772804451250130797917058405627131876719786769411779214339415634549812274309244230464260005902166463087004673401840354825623260518223987546638556296705368275413945577803267552539870482422203599339047565832942505444319049679566503623650053335533437091893235235969645490379602205328256659872143105128350186829292317987361337790536577272534828284183922782112151455410157048092981701156130277350099358256708200516574028048372746909700847449455697197128971449476616008474465353260010369033479973353087114809968818037078072330613187415185592488716010227911649549467037432440023125536136795907117327816989990529784849235823184981798050432337995219971398624152911096262918607250620117740814895771356055323927342650005285272070668583691460158141018956592195321600523151156644986992095700349386316345723424325462003175703555818094735716329370827521795691330459879531756012822329712352718206139742583289022898262101843128493333873416610483423786457152984996380145064787792473055863851185458766229295690491600097131012992292405715392966822754858388255217017779639436389246985020713506139887430457585825351393206358786893037365120420787619695509183624007279177924115328883367829445778223416418973993836725133682335589033408838117430999516963495808576123308599000959644524913521011009722589691949524639844413487396297731993162337477841703314170426481074406175426735018632274023767595332841971241283249275171632104674183493561346700871059160129291563118278483852470842588810538964550911034868161884998965815138025549690490010478169786683828745643494793014260905513076045772662202595450127225307747812357170904633470379420033579481281026516480733826032414553459049045855978259364159894923280032666374839491006914072750144249505650251849478579413439788521045164486068589403248327888352482416494984221660260792663314087694085704189552325617631241352302808653206057185470950201750407207842792926150804326581520755172076357691394761807383072939402453383289594314686377097520494499422943552541733909704842870327866293258657884130504453654700642209087362818179324014964452984751689775126188347653306090434487678145754053296765344297005606378551164285978932822645887858211652985555795068332972061909677519141669117191308237684746869986937905687369150893841275935122039772173975599275357884750650815179325434634735265925310117290186927575786649130614236863625798006566825032355355959939320451277182692287291085626691026283112866424746139169448175642205303021483712456516672957866652051087758193027109894810231472429530381184642129633612523607124327203614298089667979693477262725665027877700896330653570087338465069600963551093368577643365121668847371487047710477970965411799409558428389153238748503934113133986420882506747435614183795822465466814019416022866476761934618186293759713196089589201269091206244100950775097857636534464489616648880147534989709482269453631780458444011829548312276333654193369434854936549211927077811962705632332223378797970308321239937769642164117879811301183125999490982826345141417465830591192926527282190403888919943291814824741803239885456214735712857689363998161510731542650036683654073649856260040717657804348410930769230480932480725699070758639324414766785475023057791202982561852184636164964163317189100704912956040488573582064028325595276467762228995859092062950013862015284257736520186404348554883489930801116977719394444880821095175700642740461971095603453870096537372243103462879823121922630573106295403686431961611972999298643149781974394998258001358015164877641044319220702722386441838604787919975170750685912396681996232344277481460733325855891457057804445011993304298025695127163520244232729499302674722111451270905939479727122587951337783175872163879610601438323804075883140384553489461523149381371021439610313476389115752517360987235940743280943181409471506257621799734996298364056264646686839379775952600330632321931209252048625295080460868441493528050976848600293743130795372773596980636141496340593871397640346017461492561146301103374623537130222028886582218729143327103571754207636534271111890085814382589004731145477869733891321499809386568813371577635307794834843208180223157703145176061598903974308865581043880257822956787772022767491260464196872089894106020295936375247202294544947504414551519033557930473281565977696603422155631104903732556686591573978212006180464559711428170145766148115803446227891014872869482514562662770718559175297308213816481367366604616850316804175126367417108555440731434766295570399509364574491292591359160896794484948639928729181395526795637739431804004061837560641327262835397830896764805262701258477891012605552528382317604431349630158202912205497401270272689235022092829469705670955128800197391336117470182197347457100613651969736803285163444837162415654069475245050275264596311001926679976335820598302015364058515995754559926800740287231232965736062736665027723228196890835757022379965178460432056016906588659445746472640958734234708438291883817144246405628408940469095042889102819231098622264905769330940312536255333519555686286976637473653770851359057098933046220824133372644101166844058536319247515719681045885264182404076524116420275703357826636732846383635273665952716452260500514524650757066022592739770751090159852569359518701022615419486443679971840973047856925130403557777932601787371335196306035601766267624455072521742092499692869781020005125713146355921715874703697416709948797388581845337136257226406665903485932385104621733789239884920057379110782716013423613926945516246915335427885313321522920796936187136190386548293475718704415706312283863384463658170730454613510094872046331213267099199133447243646680245898326741519456169050607944157202096135239441720429074912180877325376383610383534998719868539500788674047172966695205380988003352267756137349310586288027751570742435935282246813124842455856079362052308177905655931618379703620534372971334926059883287703612358264349839895072365716995412966843200269182514983661538772590560422417515387063750411594173182846508818630756807374410186485174699362991074535908951798824578033225322126527747140389603445533968623328558603607308336908897336855043068413564720569827976298491902733970599120820489589020198354140500550818490237170352416492079340958184328679493850858796520861754481688208968303327165296707536831442671803618747652288417290502079070042379451207540362320735378703075746012348115867953829891794609775438010535538128582143787328049976373298473587441272433648356109294137894715971908782242546599684995228770268134345421205072476279603934703985541323315201497788840907504783548266074009062128637318830298329374476745220891221830085296637320903548491902603892563694726874546384240378961222641546419418037895017481396143707174676841578283415524012364091893920768702023585106044600906039134284470581693891536567479761220296108806768467913189298300827324957772495878832355629787673875202231641268452602621120333962293588514900584959663395863295742493402288636387139714514585754175124278274648129007965874671696897476738293231055674365819293752001990861745509864404595883590280610012356648986163841550106235490313695494722130252444913058133176042171196330541109103944448230716357228422359583846640840918762013101231600432231496265325410975346212570480790840508588736445786974106450071963446656693437820136147976381932472974997132355825101921075936726017545710248196513825045350241714363185798144348030716616623382372748369553838462979603201892402628406969146305844407812841362414877034543434751131758638118476049532496501520067245509301679836490036815253795824426711690627614292003704676313388724070262456004415104779630458431889331829866736227426849734956133625735011414224803868400753996101064388926296818727762797807197420567411821278668967392011013482399201622615325551667852545106001099152219162761236964648828765808052643042518911854105294028936542292789228594008206820257565689443044350900304105929434462290223855470681713103532780106135996553377119259017515920095479774917988085513628870187278543677347657724981470466376978761373642831641132212211159375845267960761273016360560416477461758164479355179164689752294851764730986367292291326834405383606980693928937134327849877279304026356840920292817154754385316328863166937289699091094510905660589910786998366281128242013756842248149271105938577150888117101071512230064122696957524657883486933316806414418698162846701714764471180228121894265989980839083796913853796525455725716011842676319177504838945147024252792904430791897139183371388922594550423104755236299285455338050579850664990437252227634621110236279541535779293990141231978965989168334197343317224710322662294948272005035353531084505719769796830178763694094253624640334070782983639031963112417037590584413963457710136311395010065964043496868275356285527319019032086769897637525754239372114333928577139261798679555439544219923585180496624723589499867623708172385209814971115986203567758478548958200000887893521993869259324092902257250614705222358445305008812758754638102489354078892179045211967406160969296610978982363781034301282996094609067264128328239101232190884608698345997378086279306193481696111958299136252036400213496376127290725076206095673945129324386212410485091369002289082889071390802163858963642489677215939181021600621441516300350716580750681123997010766382196082077821118334337449430414971164066228183635295972133219679167934623321409701157094457342476388917036289220700440489277285322181405180926251578623724870711906913100118303887428914379869233350475866547425437506760502268030398847961069069949919567184524499587749479278640787084000417497359492052435502731201565773405069082673915545481842727670469271167574108411909920169307949545541955534166390401266954513502990416339332490246085381357972531093450390963073384091829619972105041229962107928857075542892634162539009164744412212752923637022218261376201889221790428170253956755040042329660807675911938440178359655990092951335557053512854204577396718691067717729451105444436553086054316680121008217783232581752992748301214022946233727344925868804622678498764507328035278802292542050882286240995896822356313405423255939226818904642520026256621967210101421886350475365556049958395685910149939066863827309950640748174337037167896095144312966051733640483359286024710614413427348353394351941463115133707949279662416364117460869927685246923355080726586329753801562974352896805251405103390513739277270090745127327088359085686687589020729785825810582023801991701061553370160566384886657094203736573682078918745948756722824997175153390949229756392689132836328839246168404846558676493710413936625548497322542563547362395224187096160233658615459128110102085599833223143765374138662285873506212072627925256387848643111716927118023892222747091684770462710495341660952403628011100772269926967404462230688194683229637365507291486065164665743301052753592654160596777162015933310526645284687828826779712267892620002130455625459846563340668615226302396153502668012995459440934754663287485827014178313752054361906846821676363766221220084683984411810032866229233661669028091622227028377882231102915873299388976528035634835762705144820936529183917588929210441762527090022849674195129591660536721400404617673273102617177714753862842035454066857959175440557883959402148878713388539940983235256348519377684685952409410813382789186905663292803294022591240854355164893318944396286271341494850220896423449049015426362157697101589001991397271895576523686405948433950072274440039882973406177692598884863695409662464158478181943531540966035535438899601551817935062338893137224009161865409077303654178098796855221200049717314177288505443168526012438825348545323854182822574493453344005841048913586948358736761631665708585913985963624941628822023499422831628628557310882921255875415375178363408463349671334288771720381799198163274228768437728043834519357416461327406622869445873802342236705171517154104178812909341205184224308665167712248343401295245972747312370702072915420732706766276053366146583215853316991354091078445015004533964367920347155434534937142832040245241269624571218328220494608548784383813123194732176344743383479751728456411740404393955658567467132798951945321950028000879691859924527583889385207864706262731119234712105678010730159115974344978618885929743316063024728301343701453795533303577743981954390734340740224112135336612327159079906993533407777799339292312864676498266101432244733828317772753577396213880054324982143157628028263942426100927201172286109448702868759512432191944015545350694462637227909036945919116137641859848305679130521844249294084806133666830761021760687773671711880805192595002030877285252365450528990469325477137317246456926379286739796429117572129173339357510073600159322823621305261830450040961445173325389072978770232367936253982004358260747640006684235116913450406768246816171391072565705450094564321753625297868710645371185940514574125278292375818040234256264608401084308434863079179808766833272497653396209064193147116102760119117328316803073083168043817576821162303790778049473532892135251563924367521430446250791872852314114134959692616444427017371619434853809945768840649173946760506846911936065983915093266858130263249369463487003762510036236593714045282986488934744338960548154786796870477424330588196425786033410782172291458033030634308532797681417927049158484582412548211825485316580551768913104481356564889063897624390586360950935162514450368464575263224563924720969501666942341927147489514032575418283458026176690639783018265946431012480197939100617913541426332275550355939509996415343728048652741043190660801748631252336112538061959866072879967483705364826771599251295675752036655333288940644922580382198576407452315528275318879708240985017642858341344052387777761461637812306274768194749140327919031332289060963335967617124521361597110735034350232364290944459677258287049662191814409641799223612391187687336865645248081883592166539108715207141962747820691693829368018468704898206535666079651894500796564611644208542686854328235335386662036887949475624366690090828677648315093472515632051310297308841346325505435590050727345861924484877432427084986355696728396126974058116384480291179132039463010286391630079018422060242742761786128342437190649412790191916384217015251663508701899515544122153261130503266003682280821068257207469789372778657067830897128696140319732478983214171862430436389373059131290459418790549764877336054524334630114109906035378968540106516442367992582076040007038636911503972900502164322567808455969464596258059959986317605764839830083062508877813289812222361199998426128836242696541614338346575799209530050938368587068515697128283558401909978208062609069200420430050945995226287633249170958684953403140326336082431295480586873206235390525154924120421002710415109510353053911843181123882063224774938135814511617532100001644312390873394889543594752202255293445307234930614143450317675336449822689209522428911241363086228833688802436080359500254647560519555755818843230607576832327650019590464012757751498283617071525290313586594115279764669418105953694427986562861824471858427425482224843966398061606242428528633026675041550680442478500939562283284155979235218464339924521815974472306946760231956432259009783743615009280078492190284680052322658279107692796354221222006060385700165260076425333050242890958297294272505176397730822017136085628744414134963171020931642018809789892866795623143830613807384074881667974680961547799974620587749801120197265306693092230289124549998245538797248050565890873659806590843506509243653533283580736371835407205663934313491899965992783886261245880588910223167101537537699122495657022742448514991430029449850258675966722133469603303940052068390450341432748239094860277351486927956870043439612599092840507739950727259893677208728884726972508399324645554202674197190045825186748395245870767642208844635668725092761247321437906821577324102043443028911638024209314584565073179206873949143191894093774240019748897095631499115500628922785154727998146648724519219842684737801697995488412419198449740534420189763349282376032253785203031652524289853109522490193528952431412894973985266145754409439743961504035469011543692592474776571600018789902530815559025727470010865906675988161894335025615237085121214273420904636233522265198949716373267965586330519535401475580823579976271413722087283898923480656824404818105902938376781525443733086621364958189092325656035386254776974573725565758917831423896977419575361736876091815523205112119753162574544366650040959708524779778212484246651032982299916612788696018570726315122231785532039921348612891007322484073451545894327813848806532346184641742989286327466632277891358968692548397373874231860844932823972717036584020920213136124516217884369287416522396495979840454464126056589763934100419556568473695842894283914419216874399743543991043117883883517185771201637603131133752990545188596253891293394403652093688275480893092260171126225856993359307449046478320109157964431768947055835958204743545655365813003509566513468986825157533888345731783137776162023422562509187028142021295855818461831222860869159147607295303234358490471200269164652002944074937629036585313567745484942680300780511756409409451247443340614575852140748877271859253282092224673189017315979407122551349152676580478732301472306952035566069685671463543986215362106542116338665249045183016336138289944524894633018850593144792883364248540343724940383420334606228171366751253489896585275290990867216875217108786061930236323059856389953749944752456598950404255721823759849387787490359051625010322033955838477035229548674486244023013754729867340387816607326760302256721498602184624710696999393450983244063871946592824228832333184801824668589001455438526511786497604825945765934430527006721028499948362732577272407305365423040794355584077337017831404833534014243321527865136617796036054490272118657721535782578512349917071423897419681822707187159439492165676026471242509513301823767604946259499788482685071528794619392052231916720680400031495923797531536026740553413494735102454294049009560284264814899843998609502156235696513116474242312498748662581191539256414092317637436874550223171559751323186420332036344127115904414891645362962994386682112822937805184814790714953720524340627699366692460283634050433567927257513659157216022189711814089643063265077389298380853411362085886758700810056661356423510649285763754883616986367072117717143327764883128025413485421393287639414297835248770866494807440728878764913494710616839224192462828418092109027195287611325123784321430201632586634772244252761757134675696068825723564110930595092897756513572612424281478813252647178788585579640266515410998786392249125556730564790169379245913166100704545472761150253576927129985772269679632533173236495200212500941004277943935385767496847023456341862196815797696148984802432929380320076256816383709044635954570271372450551190922199740266851781848048540276642023816564824583446142219214493291597160471380877846489202070156242802248321761026218792600056879976889109824598474620420242695287811452933220129380705209358901587751395035297908243466747701731120491787158036418636933441694557813594232565587184291044702960221334693955810193787494321762510776529190776184674058024697838852676494581143398324649905561176746629700288930757859364789735839275332814285287988748038877204763161118180016754152353030702082188553488925497102059787219102793717903415948604766825237853918207394077492848493774706021396342989190769816321849286789743574886333504172734595669048623196504601300910354856383872693782264108666463843939177975907496752524670855559196753523336094454474939852571663985972994368285196454807464726727970491585352080919980930836536676369226884075762498246361454771460758290281467076488191375426795045945471243331499470578822757547007135814549436793121518731622971848420261308897400063854048745500126433623995201753818940012677941225668516723853152420593448220912250938993948154471340218576261690970059334710980953439791725174005887231652449391846397594569956384540923671619329659228192675894117281865043905676140380842055832172126333577089491166269173574210459340714394975336755900143034196242020172493164168513987905528504643373879334587381348688515054298482817937167402009764004270515567647625081730233637144541757313195166993940414647180855136830216181468144289355476351467635589019336959331211785617474424444068159349553698435632559053717824374889672691946514442482481331841389193424600115276641991745210142460821117475803733317153186888601229289978939513319687885281546076425096823009180288173006779226644450456691824278146066854089510208622641903343999704278093283447524534418637614374148494642503772547282926314469838303737542533377747401468763521027758707001319389331200626588794528431676623671185375542992765754728484974819202276598261381632323343843635367460311396296417985974972261980658167228470395781307224015887994799564473427166099460272009228053878858256285217424034172405725285720275201060657151051990168671750924526840382287754929330735515337198641679355794298994531371864413206930539974812981645987318865643963237318669815869834467104722171469621313240072108285274758916855311198399861639537691665567852586864209139684180143807015968196998421052224296932280313922982401050410810851595346593664590439874578556241158550162146657960320575691086092669895768055223690050357475012460995122666701968979143199444088983546613733000044925986567789540196652532716077447970076130302088129262649009181143764420697113793436051934848293308974826350522650866785551304566137615526858112607098108832105110934138442930381422546535652982843307964517553477850498037113899037516324351287780030693140470125422205842868035396109573167655998485122956914958144020178390012677658034068519440933152794423703578703937719568033268803154463966087092627678038721386332690634759177800004438541457853449684228948442244813405502431246861975759089577916544105418995722697817188796137477920824274862846039740270135533343970323815213911427405556366957099123030427370152182867702843056039841912070423204280391931841520497306422499024400348196420889069674310290383884031879871975488073092350796507651549838093833300931379350737645655504607514771915173968583922196824103171453313748882190056314197588275970649749325679843952060825623262647088017794589001101598231993578798614224623237251320414947050405730126422538464065698132457500833496715347822170240305782025709915114884101500633721411453622374414507591749565991748564351114882934056288592119620741247049737708217869913809028036323352218371114029549305517226325147053255829603141716267787858308843540320785101342097074378720554818014197080980393792351973632241843718250449137158051399422773371379647588637341054208932989629634130046841445164664527514768171472729051364053102979495752293916694424710666580453842072910154072897953696927478988317963346617130007875522845580075836651040556742465608737266064184643497291949454371831213109062809150972853857735321668656055308815605172440607289156136675703440963392118290121113297066198101278471574490558183845714003183918183209549943555832194186027106183127765299533536918395049244793298636839491458277264007290329482128704393794906544845550280144058887175764470551167188153762892567603744018170012178053046473849376210454973951148329766437044947523842111816387460354716140137954418535761952782831341234383849665543426675282279813493043315590734246280486679773153121493263456229440827288076359554603416191131949646692949966616447370244774205356455546881234229219273841951689857073805354978727095468792903884347216387278997479789239682077456364327028992041760031879830475909849604626300270051303536115779347000428197756321732924426043809909045681351640995206453015350147733023602580962429436809421176867169494038690901500370817005698822048791718982645941284984833607853906574968019962790634155280686755346444392155848979779787168979250436157532946298594772794329445353848021943231073118232672988074574380602875459584243858250225738167568285933373789794660463962549934038872316789765150101861532173832316738819474678409884833134064135063706479513943282297141546467269666760746957011490412313341836075186660467541886266228922249117788020611822099334208810078911783231132848057305473243951114862324834469852020815698122978632931843234923496987705937206888725642875702975257112235945325619985447290586529461750887178354583020831165738370738463552884122943496094384759270536193167407701290015525240711744237040895983639082173291504680915223660105142963964463079558559963760409851155358992934478644840701153531434504749773945716045946522563290668856538854082470713224102433645423752164087085217172870063955962402464062907992289698395515769866082728615494690586084216950863033056724860356653526249209267538605083852800697006619978609104516123959988783659488310903341686933962089571046018699202166138541808765950696057619483320732222293483549263138730262934127779894657361230885379090779135750270480834053648498759005399579316997747786874425512113858866196273477855355520508608861354340716815594456694880696543714652712904422852906515480962486461505334008669949832593000779039122900787297975663690396864853657490364433868718003941511722901887565937875135084463408169086238769100421060470400852176458661862596827794873081238169987505619808795794926853225498237706366857695239764573256265460494891295170181404860260669542395230974840455765413184260999403689118728779578622902822995229037888742357522391502375031652728029941661569259428119431898018774217853611383425112577967673079366587937076352402804099351650707420326816752349499310682757861661287296240046976666948015537000941205079601053058311856121182751387865753421385009204667429556437759424263330680524603726882241187251429028172553169881447216568271147514243049501842471033689980051018190343880323745302219888149889188721033986575203506953588409923672211738451865694890684479033696676322015536518121118008054192132377439526800822616134407379744767145696350881476441145056692927249274391639542315383480623765579620954867484294330077626424466624716532530470924515959168074724575505140285714200813123407204779014905382905898822492770234662343845728239419947637686348935770979422820377250828235274602373760972491213356612423172718733173403829358112173219597216450854624268358989196609207335134026210819172880707616636535925773248429342900608356852561624124025886595222792915483839363969066311958406679031902426510623175000907964908661960107364233652245930227590966742198881343415529662788948857668088291702385256979207033117489636605707071933557934186347379668238615340056246445331344706061706435606155285062049010384816206445220448058086731557975516571190474602910081451386327523096927918133663565771358399712263803643099338866355035012980871886236538826308656821573005879950109778012146956965990672608923327588800288674169889688885749849259759294477767897044842997468793224235936570983608957208331761983855685221603524966872178135856502846183880808979971721790060940341702888836036439512993253898560116419772171017979932096291100728767113189323547309306402716163156112716817628660783866687918025412579445077636995254277430173539846833243065710231491658755828592799324832710153719390727415724238790458881114837212441784586474069358121543775437561593482524208582925530202219168592717515611448995739672725298975014918159156223217569788204850323787587762208699306310488259110749721416161444064388219010377726863751741873501232485748565330375007118857485723574076521317357806654309689518092464313846641444919087779469887592690129186135111857294295710425432569569986175438810700798537633492202821016666574008984970403569739824014019237583446819068266593260203419690285060664007604253027523408033636975718140478360570600059822238988412446240582164848534298274674326053614737014285357335637360332644152226756453967024698033048551354815182471625537654825547295038396885163967206133823837869741017325477969441965862960965635180965110794674376742522121653013509596689956152401191789209740721301234315127158119920005833718903450059953345447730206113413183717146648874359107106196557262945363504516346947734634569108015573106264507603804947994664995697506943841100095209143510455755735683348336024380582354619020071105614616755174200876685993603659655397070927129038826205461260523308526402607063836831730537494479179944458814786676346060749090908166351959398220870444527896235888211597227797553821780956832220869699730909301331362790253611561069973229551664489109999796680210559418666813368061711982831747655764545623856762328903506165884703463012423963260841641798154050881753972191437073134372391455267265262593272612099711220892519405264474869122943460915550908878948776489283547747077595274089099489810157746845623008478127764222125690696874963409394321110035409805689636406398206358852008357109755275746611073354370188607092944044948347361439752485765278189032314483447854270502175878218268052933277367363858725142519279322659160772172108475184008916041899108095109468053343705768913087264209251353392003083040344807033367354406761053576736847113345470247861609352657664436401894262439330724871922446482584731267637700161001337560605332795494913838863475041333933659082204423812836314270608829626029147600799713622985073832447218902789784608472638877693141387613761980078639541089497242473503909000408327571394823964187846588121515068403526068624919805198538718035219282451688727415470216397035870815033995742528635870277011288904150923443618060473794837970689086257524705131757869857649519688979919612579194479136440371286666156881157679538459496444072852574993998789902609520675752037675290651672525954791464252784539610992722724304574489670121722293404436631284563586027789448627159700414415458843207701062098915888787746196558326624356014345519677916746622751365933863420558670671117195919988924258846679483118624406810695937268354647684329033140340016855003854099709623818716049817368192266078740483745535680632339645629235803340048393746614390241082027071702026027916420889069641129942314207153974178609454754344924343669118482730013960906111406318933970053974412152660298354275747903078523474209980659542109878365636744710109552664065953139769846323100361431556192226221970001238798197984747409164295259586464863632827049688489116950723794760261839519917368219448430514013775530193597232252276520079994475487602962153935205831169978557568372124395167437126363317203767097005956966607932688923669079312152409582369996088357697040968669692133621684159783090183184184188185399897677795541850530182313409008574120012233590356776253851434510432666908472312788013297015387151523381769941938931142276747758898508828400601220557828106775562390394521025000981040559875185475899421672026126529124901620249168658055614880679490181380343340515119821683407939579304476274782429553915894765411927541367728940889416723419142685828696110895697598866439166737840507410156324945212816984977981229078160264388428689596962338044424494408032972142411386187444850925994530008066052673834788537852433984819098949667905913856154097961214025058657244450677638775187900496755884064864309673626002297062054947407506893173452738533481705673165763712797299799195059180746037834818523945027868571580658985493055655554816796570182430510046502013940312040895085135020728347323505281656631044780169968416246099752613507822873151273628798582104921446699109407519930473295931787363435646026208849480893867703193301264957775899316356229748345152122572259622960611758043166366235905465992652636404527852232782160120024663444318587055665013765817256081198878936019040638955276122744188460611213297680415330184605426166957120120392172399796313326598227350061232029446336447966244570612465289823521201950297359486944969594523737404375863690214251106809648999862283799465398815819229440298731812968224247928065710872775623461731250633538923003233865023196899198182844805977713191311251285132374219025981033997260496789281510399822297130895477872614454740036649167888081864704389533476132901570003398825889806570669160348457111586470800204879980617007024603404734379722944282925434174169151248261181408881721725428026503092911629358209505949632217880375040547317757377057651582753615248178523741340206255718013498849989597358746325571662197681051200356004865995062725500149017817566599097861646417048860238921253647903521900514181939973618278047013362406181526091122546587366783280231519451607733622802520263964313157247618123082914033938598942278232071806493601270443668924547599412962039950878872930917844250416331900211733163380044561993333382713756347285554335209330103906693742780558395318476138778713492985656394462895894526772959738753369178881230787948755230463436577664549487840279843971541605830864154444569353846485486787932652046069694307970728001033688347285317494697586872998688791398424674039197660375345760998313640761022374966778575036090884217022426645478970275801032895861361656057482017733220596736917127714985335291788973124398731391588102433460094082430974551318425028751836538211407519243078143804252013540165558799263071227708090942875076288201259867566794463688877747586972720455636648095388273869392509456287940214423740329764318028611603108233426698114425137619262967347007146348786280660398886723639136144972761835712153410224646922561389877164644499445550869385471822290976696500372753650034091686312308188434206331304213576948068037235825802867262749701715900731902144413308425981068998048726962847457719230766502551703076560172296097724878313606436786920647153983623399242258120117696615749925015334405123343438479583871227007982142049821103477817933035699485151568928999266340764581142500375898461294730948561776636478150110569939701133714418606776198996988693023675340596456652955187810985563110343594599321914168019803472663155605504602497220024317811694402041112202838951324608622245309956883752282664228421797380930252824867575240996672903509899619465698858672546663742706077757615508786655395485059518404373971376363266156026167981260216880595616174732131619202606717649416517370714599304301309911670791011367673746835136260947075279106578205496552528236626915377078242892652518678010515595797033726514430201337676094169192804382481501423592025194913924231714035051948895541424901567402095439999718391068361539798097518065329299624063582147120509006476643593554119946836379954219225000511065518957035423570183316187024216216213617795784599018515387190858974711527576805613120640919425340713943969951066422614248129087075850950984274589713122777541268418435216297734269968368689225951138344401663471765573042457077313189715090225353321130436956316905299152313610147574079192386408858851624112369810234045252959582180721833479944238773552830757976869245631683361214215010419383252489059150654811280140191384588663445288154318020002684780551653089019847924066295614768204378349452466832352348340470508548993364735112300015046905466719153304477094721096243027781350739472542772837178531621653716468461939802766409088211423454964509181006829509469435263480223597324230531686956236790114360558951424319374264649972907306944690192265232415066062629426261510008454495753136656776882803397896494598352451924496236325815534726189355591851814097581678999521391854825964840998040740159815440660781752417732284964098800570622027073699098995325854821347223525680387324092333852030939411038328505329732659780732197529201544118685094158727993577135004062974038576015696747752120669189141336535027911153528147580392964226649289976965397643379700786605100642894635581767966175638843685120693905311720863339678796677305263188497269322171058531129542968027719296202651145172034031115297578505786739816565088289728085178647638840532858910294610230564730545792680924806509617394540571730445568677185116014474017233187509597763382802612960700443808065642411454679643802296160842388549818652929646415121901215351108298910161040250176622877514982362578900639518412924426541253858573153611271384429210552306780539741464107656850401915068350612945005059843488707838783908114159743094856506286465628755068251684627141965703770633969686089733651672389080374665231910287865507721239972867532242360943828488220564670328182671629997041978372915133052046078357088182596484732481156462789164471068538359935520077050103418275743594212664068405023999279187710325094814177378529444229707144911061554339465599073568635775044823585682010564878157287837676567101431914653225691671573164181239212006739613420874461653148075583407805730983999620812446159431722587668685833969048493910196537651233085014091343232813481835936131555397431229064467784975763917027646660675929400381413067309168779879131838955467071175135743542384489720641031874385299732302218870206019722826004708810931559963105614463579830007002352192151489231173921119441679259374316292563230625488845327768603898840340599827142542921947692836286822900172466531278363484106633912286541799625626890737040529122577960353637985985998357669668001435036856656729968977014174443625260742871518704392233428641842227573507420089116985636007671260515328493984562676537111693296335549257961600543771759974618622639632267224703684223484967682939624827950159807760429771299830765658625340734947965950677503783258945468825855145586911869549080432692739296440970565845833648484559598959318510241595569548782171702575542057011402097923926158669133274831004502090555295804390969487452911636981819960889178283996907161235396955064471916573498305572783665770454523862391468168553120756821754324226732069107091002924184677050067209784738174100718162433695735381006726169009061348148982757449070680446787363206191637797089027565107479131054395760973545481953640689311255821846711896460979640999493461872636982281906812372623900084816350830170211571751291678227658794861147746815135797297176567381814871434060164022673545155007944072908045067436227118494370012120026903185489480207446853224906001022062704204305047875832265682439340542302828138391933654031808887997164207612276383665314574834540345322876790522223278162478517109771188455790824350545692685629743081083685890311627845034843343947384069302402702676157151538915051544892099481173700639304860594307356740228547052625350583919758512068947005663259458007560196453894069814329657118048670674520134228476576437176941975945791482726802750653140866192491029812610955790463127610586641618016640362375168376729264449387855235070910782328725891737667503501227426928183534812739193874054555507985884933613977384653459363914757251541502602313226962611462995457862469958571955677215723457573693720382833092785998180764299194057993408713275834613617402788978124516552637331173437442620272246318123157883961349395183904724306573886164587044034216161316406259324029807192358280298997092797281572324713976401617103788706270085555357091609925110986965823395469367705847311596386137742124070389938368739513116603993478494146619209908543059232077608502768565021905407701291637249348779184110824864789805587859572414247957120219498643818344317665289067117589886959286411435944542315864598103278385079151229633973555976008533404184729424176865278221550270819233352841309046699873548876726910857006396906672843695576686506625935940598636444528599457912454891749623144353617992504547086185602248972059819087298282665589086483149472904888585668075610611265486715389687740242279223764446018967650244267160703349572991243893301650830099399143325389781461836186438438311593148628532731720966722033688125620584551044248315284923438207293946212989990850993616548342529288838652512851100770349233612569263722527321134324475845472572554309533571184368818121534230295527193855238796252644659038689597921350609757549296279000397244756105535071721473359649560157554969408262092633674604539122114910250181003441053154289351536118571484929312905709993805235526294743899827195392189623913104903848094659939820437339490093347083143505840633632561849018805412104238194658645215105342736936131888253709686774124867736588008621809096083234727328828699219932935387887100276022371047441565876379284381876268341849028794439183920738708696782556877566550094405539505570802422685407700275343056955512883064160216952356722211764490554992393962610523394147802383115659869664684648521812274086268425101221739499432409185843058820628095375278930506792757956342781177859068720866878318662439078775140739232006702306187765071011488654073196275859859889017992404364155467509930931443412063954467053420086583010354738083914258460478909182847080326056997019998611263662212198796637961629362241482668955807911707594109859667339696396636499056520623495861365737887058131423525225358622431470405123623705852715486746517258473204301038347770286876457704727255535933269397287664209107537886795175644782852674520914839470173309487949926740995382283181246329534994402164985142800477223169553125717990339225201586772188533051359987429158754344504819838627163332782391783561651023563007466873931458664178489184399579822494091822494128850494939894081619824699138566954358508213745830923535222332185765909909434630455178330566042187668887399212053088888977449543461596955980675856329618974314828700539284070757815904344688557942425025410910091393298373828123280106608502534335180802032272341533004656308729822547347861356162227769904923638283328694652150250662504215357179902296458731407667294842402804794965033321991637255480047837464966393515362415287818165601672968726947913303757549006691976241768620273412060678374763877535959461916247884885987260069479751014770874940563788069212105709103033896181860660637691786810937225028235348690836163822082130473460302224029225836960457038295915629989092655956620567793946059912060319826114766519802548288646356798049169088006569315110476544806319378508372648004570003486376148288768867461224128792086180594112555358543940705709970685208982353469774433804275920671188188546275694278935085139669420883002142061868842443071448951576412105095727978909173502968991877189826137168701574531187897329402183069287981118073018924854166009113630277481548227123875399976796530375935528405210034959562303887396562980149806435020305284784600905418119929067895321360435326330516624611644022153986559491137174641697593258017706278131898839013440966722324447268292603630190124370839567584137262448785440186234893472476401652150073485131452384039421649306706913238110595206971672971802791072721511556454118585829683967416486918004211775138274487962463774869165872624059870017574017722476025089668654843977503916563188935699103988075444180380211832372866944578064588881212642671105333733454188248391971624765828205777064893610689252683475263727582897021261351846442958763546911346748769048091002626347091983662981780539705072969440292014108565976160322135612037408827494412788107587573420941259380160527819304240673701382087201317026696203699788806972573251624001389829839871087281772452860182198608013767188027017886195391295160686167118914174811219627184862498068562007759612676347372063010007212946432349659619754240904242626417847649529832231233789524106965346973678366259979609662165650371416636312083310039826115611874673458246209015676027153345318243153871796602804384281391043003686051944965069977391683895928747031826902237233872438694997857920777314123442233214239729136077161307605024127489070243291712309394373547221997343327870855689650876880781037965228340498941653409165094755198182015624843021130050322355400202427373859943725446547102990605827273706277832647623944369544384434929419307032571995559265550873861818344230477154306111422995362800055604002376052170454036151227242667879023852839771838547909667963822476620697106836792591908135028937559876953819389517742472652242423980397466959034180180904006975147203370057271109383313920457203574836696159719404918049384364446724073561815741333321714796753643570845794833788999640104939464896376159542950759188635393676238331427892687678462349000573509694778270867131650134002230064275129119561135184702802237908865679723201427883719145434323009108320323107043176390647868909362817511341857242070808262569789207370586200998821015957704563727121825738471352773106738764469057549767260149309088247777990432590038601083738947003869840046556676578166122776552109785718121940832023553005240533751048129332503269360343773651815382067282343188261872578160407141107859096214821809505520781710440336568127946009901272824868846875411142658099656576286247119079550031716260413505534463566026316898694419439842940427573160242411437644986145376632131267694153650214240333204077916203476193321739805382781572107312552631098983137864819168209459911653087402796742041153198403270092450155233418434672879971527325991463256621838715047301393985184557187283158021373580238179704836080229358228140369624629337434048672126588426433846760239200915021526958125006906943700007915444035194339541894419346928130124976159927068077484750503104189664091538729361404263983840049224554579232892401108517859004228778268650506647526036107671317505347643925789693626157598663779295934000674233509744375469978654776329287495121871932449115130646065350754519581591799457502149306870293201460605930381148007684678921880758736912027680147874429947808933434326749832358053427947912432232105772050444824505880972753619176602471817320890962679214848035804346377766588330266294391151725751610305436902153876378118962021741798713993726014272377728139046609859707443965629102917495909464077838770722051819536843623614311983310354924798898918317469105201037165811611690054136243240173045442774919607732439324811613927743647934282144626947777977264791824024848385345872884185253289862047974285715789748345693613422466486350607209151969696486170261273261279423454091263190888096516831416285581557515442592748400822223234614029871352489863550979101620773137455336978693999936658371096657071903199501005517441276740507112286465190089407547122925756378671297225742672198142409305720098961870432629315103054550329472484355428574190912961161241615806662403382295894165688854996603490801042797430026022557674752379431990441430113767097193734890278077021528681187928339019828034475863033607395765536561467029965848399830069244213982499632016450384552720045539952348308436228310103226058844331106985079301134959904866642096606347817961200132999398246738262155064155188019041683678614540435032158870677704781789325913187592158573200738880534106600063732162522776487567845455757043010877093306844933849987229724053668322060756175354335429262436480139453890297392873139700203339914288957737690457242465043730637708289324217387680728829072429795747925144249272928668683495326899247042806486009107000420499135529582151075921739610809845034311321852547612175871964396398680016429039147518748666913993724673994291682561772308766817932416884534521007192456912275715323100724452785984131303883282400219401504487906536269827220069272873841713916423666111052781395835514007334428987098481849228679765234446211866226197662042066069083423774978710378182429566086326221707694130772862194693617017900211534989931904243198025713880464525604245439430481965137917307346449765452867867106962489607712524778490050451272700421728218441256495388293106343242417740585518532468702589154501810314128811378864003594687776787364162647291693846419329406503947590988183634851626744261550139439093858182899174540929869028783558179567255576485956715783376404528163401011693143266822101561037121024277164258047667161045437156475206657708228400577006327027990005897700195547870392373299899448116149524629394694412926728807331113681050829956816927736592041386406616567396592851281840623404857488758183390535322975143680369795752526476494100817179364612111430804894126361136085643977195972059172342589439720946150704954095678243380664409023868944281476599249847705347175248082537839435263022856008917912830274407985941541955188689949079327133952184668310827804604509048258187012608226444789073147434252596462153666455997592477423652782215661014762721316341059116685281846240566464329881544962568025210444605721635540610636717374919346295398385247702233847510814264477899635096079662692248210591688023438670435661879449518947615803122115361712129277660046257151558932835211816418412254324419080962864792390010713656934590059512666652780767608437027518509360892144761765001912839955551761080149858252626777575518300232679442007144466603329580739108458889990972371194817719342363800352737333270171519223450346063851230876475648781561186930916940890593235944437169714606310922583529035938906161407024038894366533899722765412735255866539739487293902407051995225713018356173566749259798305329067521173897900767738042173788372712786134448528827135431072915129663415425777704948546726713909052743108424615580679286589424420068565109171768521020745166709737132951264191900696880202447419856188867637390991864766959804917180935060679015217238887386689672458174644228056683163119829172899794883315884008634955852498357592466518794612623124276857633813438394461041293333318792934884994613388641831755553654635330151983895506074192202804574790433628459587331939704647615925397567064692389320503035004223663938756487708377678717210775436300582555392304424431608854062504213647582132282844598862143116025494517488771191695679428230695989001696464570193144595108347889020716719574805249879591132303736842963696542014497648532268449621044664165846114738562126662330511801899823591081688254286276948755716853046717005157132321438716062544205771711824979930438777781284480904257478262953399542247182335651669181431989702632049371720657743638040966742945635581084091092911006775571215358003928682081700989876194406844805204593138158772097625975219235953633584354151807210196323000566240267891108146267422733311910963063913842813390955204905162327011830087536543790396855051660176098077330145751031283159098986262915720188027405794155580382964043527979460789085220008146982903211158086769405683669388115468364271843555207797611726194580485259452146296100777871060585277442357743785363594190950011638622786147263503026249393237587364265561634954116264555534786340925993952256740474907198193884895934693078308608338304622760713281667581089896847845172236347788205458333645576817313085467247320291087060958741974907222260915010965725512529844896697964854008451728544875775072294058677098021194043158493017892035318091077984026521969108680990732199640192985719706444396947452338679239562881494043341216122759767517883122452031257371119674976883007631470452222690696530412361574235335146308324033372042680387833492547372342127310639627744495216076964060568257056975062943687126496870395005895040321831206843033110903182388007014890680585453449361988966875151743773772145926694247311254870713263583455531318536422933041632903055033081505701495391346525069878020431999782407594908473751308081050557573171934929653370408197844832415356367895188154080268070124677332274945884602252197883437099786821853714606922190812574433446668948226909507078703052091523605389423634739103390137636101696149150299955079204312339488589429313691965601415346527630242986727909857140179575466721462473989114890907856219169661090362083742497399904565585101537266586836633726791672925310094580576400119639279141899996661343423711634663487988353137039425272934013207234699396038388384504970644759847635638041017944323153074247381824262813608463448504540342308101308494412733420427092284874502663939129782760377366333817515325845678241460468967318913979265355756455891253183503698183209451661531678178457947300342694951151745360820509421320882299330869829775175391996359520132876136386900545109123441645019702459909377773677261134036003090405727657891398388348904904187895608875625615040273841553759011980424937421033737553274812724556900007182921939721057812789022953712484085485067463508792127823088345937440138690517648731046819208690373854569016485826162046716975473969586182531470785698245097470304350910666385364254989709672482677583616295130177263508307350848024268737535027155645951018480011930224926297664661948636943080040752746651456075864206654229255977056496363178665507722164733749482231385969804301910108260618934002687096195577866068166297348735383945923817836846256436945503366015588539641503481495369513647316847055915504168577812800220478792700639686223493718999475278746292203382195821832029049816915282700970276909152964319222585142683391674801254761501134578854801630263703843743040844792403961236231454008320157096907811907476875014132565421609862217855005557241597059791087121891211159311301904943282235663835999421839104007756222121567703574441051919458731440278933751936346961767698852693834719044326019594266177343104858577704194337982230006318476030828471372468389396325910450195933954634013683014186774213539988810090197349040655538504817832320070770776119503097540772694078918214228427484746357718268729118810302701640858634477977864422831234754091282574826280578731493157363712584392934827005918760819985694351479252064145038667952695505344135740679930948092353136828103123669365709678054057455489741094852285420123830378340841114929518504290463167814686402555142314929091453723928248934478924146750254683150568421689663292846193495504395410039239523957131314338154210790169987596256114747169412682221633555490499164017687908125279194095447558255103550427606663181220810043856758851656958881523096074193982516616559228874545481095471855639034547000300497477346155356312447294310803780933183165153798442021727876507525257513495675528630498938363444644869180578841260866552054352512697322703666586533821239946884718039693277818698294711263294723828532041001086448261788148568591835955902981077881870976898216874303182878520418194329906785439259535469564497119627951570203901352868991258549774822332691316490492081486121380504553398278189321776259958070337310140809370573082167432953254016418260068329149167309278561818123600882065087627840263539647408535563947256108502671779389748204856505833282905182101252487966341203167732130697378785004788912092644721270622386282818807207651227503466110835064896365656065205493873707889440155551460097801604932963880321978830836910762521791785872818020116779815703438829783381573178515212895158853963125960209331074982349911195786342334960274739540057945315353422177954508002605491307342959306719503525556737824230076686452746452158588313986027424956529428373986634012115559890002047311562206431103369496415362686878225869670250890414783412393417194317027954148634133224750425733460546787842977123723025864132537888703121394544295927894451221106705631002245294103096416560225801433346346916569391873732149119104564584212505338839252234478947726677697239694030501480476836044353423744599483834436876343569110475835218467980212370546806862742091611374834600433752227707890082784429322604154023049208803609328045424690144253624835954583657797914083476284775447105588609472832790907550838862052210935839682646359045398768164135222782578767341696860342551726731892436370969013086030626113578814604738659242215596474565074577323000460909816729223986891073210110830004623202982111377929387781085985230151020398759735186322870682818900520356345477632131964008324986871422303522420021643678478008818227540986033362990735977702663554436632034701853993811011590718498243427555023693450847777100617161281631599815779106163569715882495638279269126082470630152615070233737267910132503791740055730217944168460186511915897258423963722450434195237269693744097023621169078834988721035261588167116147957360004824020991977102909999793054982340956772771809734655980334928652576644225843311848921719957062616616697258328565813598186195609978296227306919532219014985080261860334179048645519418706250967442929572881015458707596934226613489726809573954870945494205417403638327901165686571050166334062744577061635054917663169139198835073709830577135247070320807581322526282804425438628017251923148705603059341920429556949784546489239429743160411833472335603044447946443226399760142325473267133649528597100610564404654881477747363812068749420531647548763621478692219830547829959401938758493094222731998111900814999277614602426220215624623015383203754586367669740450775269498599003378625044268196643494862197305004586643804020206021962379398144353924490429714209959922606752708967168191218302800548585672562651971299876097570014073098724749429926640583496623822725941378705923013635367117419971659552771555711051331557730799015664159878628492420492490071955186728172338805945578053616669112970372136452918336630500060158999243035299427350002763373072989070548183688103357329054102037249407446571645238513111395761627963740483783321552705758620723927017296648436548837512440828593863759055918444578209400415476810775925477924526369554338675258687792124699430512928566734158094458973295376709857561625797418539804266761997703738787209339947206417055662082641798243705639933157741745675015769818121289269376342821677474258409149864277425620609738917682723666171962979672071536059730534165485923148811193244616303425978363195222789927147427370427269010158447528798068505575839257011464683574535914339251782445808716887357739851405829183586188945951524101407427878957717027909908592322348177516406399951172066744624238674835972342098057784078935549056366328066513616696241819475484630572877168510431550546518284008942897403514715299644443947287823745137146663177551976005544691944461280290790362462321226840254532589160658069895693455741835592868120216659987503308795300309441524199157176193331007261274892024592443445012697774861722157172247340056233153250765008837979902343207350768459559022146030964704246335359216506902347045711219572935199825687964801567772224164832915079935040554837583987972674224920667216483457968523941572909582080501920914448298826263674689649342300589514591631161218564539411591368374787753231439968969575178910093219604079304043882678931800320031632632426709370742666569993280810371550649107046479791189038321300152040435618930949262500045489396655645124358812681098066121060231486863891179444738009932396187750048082210796846455516106968798371419919163500888737648848304328111868120951884042279161441670835588169960518612887804915609147042596201738747399315486069312871993573641928231687944580101138329918110559414601176219279026626247041046405081157657308453196880993618832794193718373135740327131088695711717379070300986231081128739969273710249158236749183137469707720475653694499670718911791641692922857350115952216994159312629330484395505381296978933256125393735671941022811316669413181372318591064657079171081280012576974874367479958860932791952577971285396001234911655837531784720005055694651185932182944470202857595143386569703313241882599611432930880470054328686766203098713692822882784735481875169613107362190346234911730433886044094703469028909578924043608159781716618142352816009552298587142578821258575698847796726236487520932567050801486507016570920686603688396592301245886218113335412973804841120799216243197649720921736617477158560092707839613628678085845345255601097296709988362696402132877644163862314798173671417397393684555550613832540309824827533676408610497673496792583307160091572796884437128577529437608697580012300537958230278774082398289490126189923918728375946100081118861168787529939384489327685543052135578739374672383749441111154458377632185336921830562394056977295725680314928236773105174896442816169216405110314599396884924951071298853439995874749699765896916305065282497083642772906713642346720815145575993053320151451374390214657447876706936567358039437833884356792367991451850093998288485713070320883550371909247774781542813185389643095620428774443495665794213128991466642620662170213563856279593813459541607031809272564479891124520469566753237448435386291594245669893040134038174856500878925955435669590819402317804667301321909709526446128844627654419920740893482116425560375683454568066679465735648288299612805066283741657862133376932510224331534295781214901328831859012786013265110203334219162789343767338675942681053491362572894318476173754259660808782356087339344536673763209317273777412156540389590299778607160410261370265460851730843570352557537333483124997063165254504946161703357601072381767582226756017508929183584745183137734843982596653124112793438722351627258760440371111246865080728286681302809518463955601968693192194019405941278598539740239319340098959168676050460804948394638346284764921438705162989307006845965842432255274396099014943114875534784746172025233649399858376866783405120758731811503363930525668371715001945029979819807088641524354268975224838839843758212144705830031749086143224050454126974836278178131121260508931244052330286352347537441062385686369689728503459362419952303271444785765537628120306502552154844280435486692437424266672826843306254089889523271130473124089708279259366784678549966578275833514051597273702834883517483447901584790831344476587757485960018836831744248442308274810736159969732742990115609651412894615373491960275402616909582770586982775402030827720221275823923462606323291748600595814195142291145461440005835844649462202243668942071369118364782027086788166194423875426459093034852237449959097344063291841007153566601457612998368981764208550921645898158493977828679082751903036233492931746898143379089214444134055383690162626836148592954724424672544608293014872336843425014059586154643414031532312015723002745084273623714412486793509600906987879411127522042920761766366880971604531104120758890414134021326880137208995635263944200263555835373185309232206670246528436348896005482668808328524868095360300355405462194114423175643223042310407712357117604220791920086255289968381182896371882176743978421551610664914493632797324148541677532669363917331894109277021507826188110958140080512294417867586115807325940259524286833181150213747317454295087350362462946755418590176035835017228570521230616088524231513413184476546158120203657348653153339086088902069327877799904114071698632513831967179592808577287543698648438019151126124191579813007008176966538621765562333032721996967296690078247714779862690356176588771364420395330179684150109098221964072415861350831232675805367770947196014789994798767020842165325366259268448431040650594827096487373012162568857063942696620436682906568967989750012684947711300403131534635735534685339094869032907350229217179942645217316441267688418540264960687252414616856488089206270073114727301721035663127085125109230301720192834916024874808994198362220627801727532357323231477637875353304134425503973942307192460961266548935452312847542879595370946888758362841494958171926094160149939855566571522661784180203881349498346408146236266677856493215472320401241673697495283461270551759966128498741086271111214810613565093848568751507159995799823036283738480935722070006120424085360357351679218008214122665505733320196502209863149480109307417390149808946867774094355886969946093983324524549238716142406781591908905530648439858604411884818553193181855280065685551165302529789539437318067435894740476591188747170255708928852179338417258052373176595868081781015425117017632967362907953167896423721822357536174158508716795057660224115154537837819463659316115869778195244542875925297749192408203927920941965814382201263512941519639826287093971220798134233574830126903376809001076814138872156721011240226677359020549673370171919012558831196474011337805007742325376488155123749861872302207982139070379812646370353750369905184709329014299965034339184148686113863241268386461306120236814284083147911582352080061763416914975159777416944763077144589652578496847655081137117370644037439552670778815025998318260690334612637129711787861276830627904875930706009080861954810933728050836546014790888530526190726437273235221816104309339537931043391079381306165533865838478888547988945344305803454007704146079209612570090578920549348722046171313161539278340797996454886639501366016686292225268499062987287901607797803562914628062733250594821144517987905861699474539725686941413041478832195717808533539044991245327293387744521062322810961298411094631719620653617940061439478376840175344109898953969533198244245122726845971086301076426291248808992777449934729136876257310221837257393823674141929094806053309467012208203609831782928976013872182404609827998348699415791959523576139730172752290231532406844822535188102793165293374695172570969213661619613905774128359247729589994606033371678981750648060083305427910131215544978308678457129470984725890824958323135275248377402438787829689842897984645124249821191431325969917541614973950071120952965637948903387038089976334472319115622215869551903421935835378600869468018142092576143351624732626906939274016074924237511005124673052308621074153986104805724115523552432372562580029073909529101771954465253546225138819366263060082542792663606564732010082770117565901472109073307502294155625998093230863134243652100953333115130685515658165917731602238953572675808822336006292718246336857458048898828405789061950575900644065968524376184939151036026581641120689038711631867929567040352325648591421739181634050947862454147245684592806087726092645637307191419744749819909494937636087291333120409923809534316869111013883982839157022186499989308024469267531643859068217539867658159138533634430097032866407578278377584073171268172034273655466850755495854594507719476886021891809188463382757116806762405325688150202197098862538906645880920620433238602009101667046575063336523850502544345139095249656535456176087954039596238316277638038892465557022558189243246290338302280432792699691291347551922330887236602002032357079756451395575945580008906370893528739800351249594435849498415040838016248813194288144164283666610857125433256161924957186871961133417828289157141203211888941051729355196018725228512537788874740549500010724546032146597340087156518242029283020155202104895656693661432416085098551803724851080352437723527500061260156482932552323567215951637112888435349609285535097874913164888963775452524040090134449573197136724268390618576368893505896817491435109297910546971663110330334626491473733622643777635960138648057846669277040396999377547901315368643723954808714367324471090056379210698942632433959897897432238908177863275788143395364161622352237378756551298677909452938636802651258794138992496358107050149239333926411092476755903400835974848376167482781813514314010956259779122809758532590714646801811215615104208717259494986182308020153123676858964944224528046326409198760572120210299638777901611123433905412631707993960700626850830348371868922790199100536902255298813831126036939365719543669750032390005131242990063111012444745368133427441509931960551389553199222255622424465239286345952292517785714560812178671396351245737954442299781039875765686849892689168993214113828466184573244617235785656295557816122744502684657929631834083423673921041879832202153661524923163348050630689893960655676828432470979494790430152446386043078661041917885704056358494391022263467981110129346388039663324261273940517276496283659315466977710846950587088836979427088306877462393419756038405633070651624735208815030536307169908458556048831428874948131495471189866483316270427856764924693704220801987098797884345375159606639612916172100977336107165909689170836783933123034874168068017660820913202255709796507598935235382932132589009904433959205366286141331007593114753452308858895856272102143319183396583534796338553304440792165080230755649078998514684835225380556256848927868236950779954409982751830800406392668659854983709339067249508754399617432295022819310676721333508681681603582926339503612698133988221939378039322244890336778053999997736881178481703165257452773100605544801717375814568279576877373943803541784787835747462518517052748767680313893460481966668249019346959937079604318184289977036675179046080376929057279217213261149486190242813763222208044855314821221872724325361916351097748095121927931246332138084801694677835491200761097039702420090370884583332688175900702088463672016810098936762055941634879618236135790543540171778434963942987665387768922463399489889103590866648060514590181115743957553532763692342609538312498863005088174910385487158525469317006504811335785383039407098886824770261212589106260663721912634287343643419360712718326927380683690459856675926422661464512210740917502755899878851603442888766675115000356496044742121936093897117552903098562346116311402898203437410261472613861907253706558018075956246466518030165312343527239828303202161381657474937901519693641276800859063764482019656563322788189200019278198483360484984000476687546298825587439701281095316681142503664465739136786956859163690300858619641010004921675243714516319470386640229499928255713722512328701728701312626076157189369960200658937943428319023385143415141331972396061803972612841369748702766472463374151715910009545696504942059434353495491278294430646555100728131568076833722293695072823918803565318647643907633518771908784111930504427878446079458752804279480430250832435808615053241131609546059352654523949238974326332085126675062819138136506014542131056080044280976174015792437543511466953362895575183403275530834107452381739241347527305900142496853606998510050213432653681128089922929979860789480612990085941611049700081735933396404678966932411832829912083041426788924876644168509929130617475916280814984239771247094215116172070122623325704145045189835215504088368605833301172656894239628338351550888853302647996893385756134464073626727947749795661278960922524218471641297117514290798739803891139385951963266070249182367269348021164417813940341680659839308058257373690212743115692222769927332642919391558754677805723737321586937536867450304949154356749924917740139638686116678496069417648979525829459255522209830646910335364838008462262854406222399905111557655317115235776250937726311395588319425261186669261441617696061515175848605851490997022277782583347241853645346019633358874870151838718205859321162408176397656168291468317621476420871359180844960277458100355711467120864116346260076206762720106471743770807097872488419997664118778849800997016166674978069499546120185908784393709895044603644389259985523385715737027084497981207229692928947827221206617913210958381849634350259174651967102329389789313086808833610699721593456566488608953873847007397530621426408443084338216476002020921934874529659509209736243909207249854933323156287685972552011258724091823152529914421783673488970424019513475683157600229990979583384666156945226375625109925034249210182213861806097917405896971938306190606465069033367231166313952254843803097669990819999014789318530403412028093072157048591895612835749423697854001928659196084872613648103295974239027871449191704405275637843097838863801328755981623633977939501298228628482760660114491511584489363316687486683944628082216790139170765621169705926424256357062666242364742724763765295740787661996988098219402718375016124597224968707308043668796757687583692882346103899574225825492893313122927343232743563668878010782931368266467275977444340265212619120591337645306973673128636218467267622415852859880309902013583668756994069065354972106211925755889655621398421495924661773670314307367528070021350902382690075593602832463616448735449929551216544208568485091248015402533132711754015813811729817110708030047605641078636314550365974537248317981882918618781361014192318036814532361080739775397100518609532872290280380265101054946627507787623335801047934429081086691942360117270171811618270106369822907673117987071482352340930553793115870550151699392186762934640324501162745388309978272266468959878198124822349428932498036317974676485463233618096831277862493108501206568770970906349287761826058991697830054601160510100591038813440082778358163541337596999389299378866486972288797672303885384642837915782987093228258094184822682111424785922174118582020756423338528524173298634757175567387831444265992283129019176659481065256072121939090372532228074385524814362166828968514457266448260863664049860391838108391253585022079847069288831659137282015081152411421311696416002969210449783850516124226594863740617565381152731330682118490318260608921278412732125265502139324277579605212264948725811869601848660534112697917581957752041399580283477554015564430760216921028457273354245652030983601226580858931232870438619735710891720705569788019861985592861030405997309505898571917226518984177220673814066986380119318989546265994414274277609808486731712500250627052189302492462967722275011925138559385065602772497882879066928425010733901501929382532310710232315232341518099811290421854023041861670129559894858291684233182842478561085648103644750620951765732170551797496036733676953636592819130439137995771226363773566733364162846963785616202021439491344605834384462946003393357305521833067565613252024740931579437065487407315348983202590163825055784499597853812258803545684348585707070703975858317718017669943946439015466721514717960073349367519074855168355314733667414547095947526839956096074742344632458532811975104527099157448500018392942639078237372487616297919967455014341673264068113158670825250672386520180818287394008233879839049670112075326180836196942699865443997758590385551242848539502935141230962522889826286477605454982004642955264987880698571404191937143355335834412393985928223782960869195734324257180349491159395203865960017592042304818288438026662000926376709247103330650755032286900046298769329775123216263349225425675806253156406249485353103795319595025123566114039776908542799802800162146815957202528375105324454137908478417806656163174192203044767591497800541861909780276957782833875487986449276951480942839473439188866068679470455219877056550310705460864216931013139631989360245767176631075921209409066519708504115797036245901026937999371934065471989077728498184771601586558192021548406216147378275201434280274945428155372677156211587565391098142091789120899136709915289815101813848212844029156191110480256354523269453221167399104234662990365792770306911395876379585040007939307589738911026181119899524453627608845192804485941876481555202080650016174731951180945272878771909063934253891127208780580058979900224984457083672778559343399215313031005424124936027773741914071983938655496585221002286006289743923542552671864105733635191144240059479522559164589075261288949675141003944542752897114455608278116428278086782511604591634953661876175427428785423710828481026389775013338927499463186892219352113631610943279766070895496661675531831764396644947097381875996652492071499975910261561809322200929376434772507816388391107567708269257560072612557876596601833738504648431140129995535896667081448767693906375635803792669925772657723452596945295976181582342251226927144608421457397318637207430239754586173394852988794557646378797921116148345580038114150891407252859488851414797344960927648074677749328445822364403723720153988170244582435216806773757935588338053579498842152801620255146685021266437586089001118818636566344791634270716102501438730839206581425899736592881368164448911272703570529045057069649747136758626171335570389213766004507169669616775432799350985093240092296967078743233166927764557670645956261205467064327387857816802056034570029873367224602201094518345191798866349952759739987431918663057864919852563256709606904098119667434176261848499252649878683141152266160513721736478711197495733164349596295706122385811018904143440044672282299995074121784004664663115964000334278123665250941036864973244378971044828966367904685461491382380706708737028644489159931152598807179429850801076242421191486439130937255851502397185658383130055957420685376548427894591838228400823174464158681850867896124573460284585595268413289324475217825122861173565684960005647536559827985192643621084284364078724029091967424049948554818589898008179624000362228166345986092559226193402054805058420227010174749481924201850904215676232019824345446126513367447548729655517012901171669965916972856335514072539940960580178227027977748138368553394355004688922219907468935650690304160915352207196078922502264696034364478867014166889579304624543918515670960357911754980782076676525632612927171450710750867899731738417553331070230835363606060360287633930904789826198200153833101544556381992846110971502180302833900737190502582654530112546116198275145765117014562612224250330690020555720097420366734018826079137258459777167122414740520498398983285886883489412915210846064686240190472123920083385987420981568447521673268372558260229240518676369229741147262916585694194389479674399318899515850884300872776997694498178691203588307103765912029146167754776784749104999678818472112990695116139853680355399654532335908601321475978674231901769790077967706277901474060455404361042813640917015661940078348163837319835870770252753546342992853830693331568867026615842427919682691754564496738397882610684389299534256666532066959513888836849949620328986631615343455908493886179751252480485361851373750763342786128983634271715399935112166279169339026013901025090127409886320797318686460519289263459039869319943004548521518086836183547553241245900907819273820572642072089406545088745106264540050340658824463609375288742602013302025188789946306708872038708873087055740063085495962359274951976567718918542307608169302817222302674698301565703091290448395721002121778284915051968804611987153850191302269835768650131328076379873948012017217119686297970089662821899245974430724312906189159628248659080214611290994411970654120867197510462377270052113170370477232427698793553191719189074342411938899594296222898399418512766694226144399832816411403993162566878734098305690125952955855571360451843670905706305667600742924243710609471077439674920759002429864522716445947329439154078496427006178671529897559212770560074809802288267039279838009871621507556054187608511372822255011575641420253522011145014483180567472018627056024084247704600618424126847979115653794784445535648831333001367985271801628903890930986923225016481508840849852673322855408031683811517454324967049424475517194942276412460006652528143038353485214021560830363467528721424805135995460677219647812130427547170987302973014382991079807460397795915756010130992245233014046664525750138885066600887812104267689453424642601575750144268521755407224178344116793838160165052265760992066073241763534342318677964018560972344492045577382629211110404931619164690502232142672529967490442091061724659070339457774934714957576033888685390579716434432019525322704430288855787003561503236080154526968949546691502046274738298760994374330883693172655455943949103362515275779712037136451096148100629651073125949149417900269070744794567170531276003198232410349264236132516293350170670630029195093910133079340726939197883785555915289503349934668313687228663808342660715770012807012978115500416868830437169061472152149714654086513461838517569877957227483668597546658010465768811290733256327718241705149055629039210348162339227048061407808483357632516977309259375672413506049449903339737560905829473824038744043960758494775313515472089478307051470666988191476668146889575700631919742965887701240148020622119721713650680987958366756037657738917228341844788154171493431644339313109921253038627784763076174937864419837924281832864253041369081600236675508331249871658862452425006642991425389311765637575234680728396144836390731563939678391558987108227801520803578703089413498601797335274514776285197722132223419677930317527934842004682028654587734275735837497417082174267884321767084653269333060148263062300534550477873619264993695347047217078171123784055147459922881950969851819105808589935705779402154319212991130762811885490710551096677684597748076241261897613088302394503869343418008747629601235471600297892157702314938782883223617766566421962910591330732281301188246711039513108803301874369265020222706991433158710433844610540719637995951374041593111883391712917314491380955823435473112734052507508617055090763143629803874163100594684278895063823774156478571992424295880800002155226970505697271505338373654035536665306458708380530042928057416266950690233312088817158375418809770268641184921996630748149234392293423937525439714037360061975723183366455450624409544577430433193623129252019049308283131977314521074048391287088106956686387389829171135850622623481031693200154237853071115988953531737817268535095508951287660159348398293893518239212553363224699679097203291535717122083323834409465305408001880135523362953268002471732315850924873813767309521732577728749314995780020444884165864545233127234873941704915969202657219647591745338595602873566366487167833944717241897699011990098394505307572582669347133179256413873928253592291396508565482056171726174846541205238454290320221821447413549467417062234252991864080160218583105615668629054012684074018577254666759383019804718479042822920834210369454099550713853306036782060653203751603033876168416033625001859852200822907331594785793506088483698940994775513248061903519594147409255424899371312999671337160926478500582066326385235003113069366306204441530015867484556847720276647594818049019681502929526870662005722252381784683630004853113851541121930731898820610236442840813598709322961965737708948366288344299930379763588783078883681025660469156804880816055466753561260124110012758132784199763067379366279324296989540888003520117404333509321735136201743828890759398980777271797812136221715048250246119588622113383936707915647823886426815338953676535315137231566038471917348128483317400213335581654721210877374397692410763349695188819406438815422190896615691182099607337111536488504508824410667460975280899020596892502736741017512941199493315619186642919113901402318267644184684179939971808902471397708573527161775723948924688517726916231623186481005740847601956192744981529196095531282861456677062268388866368396420823749191477609842450093808738116227899981380381533227766054459245924834724083062251748414417484067402977359972587848967696769729969207229630019487176836382198290530473057787153252398076496683444898661809493204831770533329235781128514259497005452230497870195159052819165048577152667230738062135383139527036511167954129945303542301374904703435695050237650691237058892081436724662654740435819565650486700410554886182471446822247851412339750535455500149268157770476868435375428242791316186221280450797109207967936381988168270698311755428436443829483699950816480869553712134541791129510455141878683063831069493008712599503370589523348903355806479307383037849739432373638207183062576220664898055982558187241031592143153703442391923134862775476376418104882294078686305294489279924106219805547265126639769417166524523682377300432104187149982249027100431426656529331845192035855578239674137875205421793984505892047405180192165124374455624530697822641885626638312307956593050235802509739386236025535135146287657571075401996162380930570512826809196882244454443622024901081582148845515439757482604969413276230330502449161700210108065450915679326447389136795334702880745624753382943780769656909226369037222654189348177729380049854356721342891219886389920573694310981200214033778647094798273035910662444244136744957895807733349509186756066594937948153078799311810632670653438054726725335207511153422357744289152344240818210098507249129297913968747636778428726406355297817672123970183925712955969257948836970567914581676401565921026107952777504045397153382715628367633159717644056501626006996427035138148126708707163922363216813201518148543130719137047830790173246769985312499994760779288310974394909123608504346641272388415517221993627211002382575311770807417914910714950577015538362168089245437220227070354894101750226672738733006368538484181781075969824905967180023109210739557680292335685772688446065705131714591351176357053230284172300868790948913271176699315989212123676249417448757701125487177138955126777739238704079890230662776775914735095812058706252688402597794982739548457964194664579890982000493147835109801727766615236823497575419564614020931987910265650281896794085394625908406322202621780331272124900304184965887528004249253312884042456166323185968461903706326420758571200971092378577119302288673509021067853530494502140083000340413843350088317840746635780875842367300775268936008028060113503619312599124764976762462994322318655799865844492882849087070980874693563342829667365314788684987864366175055914996125815989411793688849788263001900219322582579369020746808626805292198934693086052097083397332083078327471834885355893205959463919584256650542954911725331401386121463149609782656638655804268000813178581194123289966381915961589637605863015549328664052467099923488173146763613242915503449790723700337175832984829499456346140733668292148955184437050936190819592685353583953154705952377427081096141571774085164422339496012952090260932839124841387778773156244853636530602945691916149193325378007289968417516910329941517078276004682919333475084987986819859581432394189629831638626732515915300401945440927436072031284235768534093999038562252895708623760459257505698981852026944830674089345412454644496846317112770755453494062276911282824567911775634293738840612101312569829300465763619218944871030409350948925497906866510385847970803822342041926050235954104710119627490594839958590341730895718269262785379407846488982083227186634943185185159130764998450312481028837731687451066230463083643374631475966356362574447900266666572888989095197520382443245632203346142229879070108797535944518923569785433035220993349502217120443231368009455427560915080423505898471196318804726208760767894279383651034271904855379556170456262124772835725572096623141390496641265495880633070045775813430859687318158089630968568162563598478036277557971889268021831423804398060838173313564168335725621438676542821356798590345499169905223524054492865944629314309737031197907534345902796161671089464918440443869569596560098564410072449092443090508703169313575580297548996178710800652594399502457456671847336897922371029782659009591244290870248360135747990304333590928337243456470477515965459958819926992240463213187442008649900009131618754160714835337978463394347226643723530486721215308792522173531006425966842963492580216428142040691495156550663403976895793413060251986888643155148592490442786766844628155622349118493812383624456879160867409075849561873055756724966397689365514785517110592107563308830431591163612138842469839662366466508269716950962523441715160621331475415251760628760513732862458875179022351344056016144514457708606173991469497380282770655705540749600797640424454002884446494386557862009844148645043667891056986277928192287603187299159468307582281809117506977856155625041892923779324011249277353226335038172605853584350374279303599048029163468339168447008053236907746396091092344249135966355595627833147773339112088426238855557221138964944672810844089596966984335895746635271922465950413942368696744887856810611373244065097612366979733469967061507952349230798163982181813984403891568213941066264341753355846179045630351383936077279905849974470360133631298195686906674725212997221114862710480258017389494100478222506619739953636803749146547734327578662341820069379048248433077699210440601354362512722481441021091240038908964328551232618409864092136683040904355972102114790997743827204149459065701515065538073259883087384368256688554901865799622511315007716564069816643974240882089142210800185366501574607048839604444961437315645072181883245031400600070768770025883447747685512760522768119811128639588676515230480997199790248490302110727009807896487602588313009386339370111774189374299588932999690591823946619748733202052142835770639983897921087468512983148686238725137108925226398880773974401606773076220264529257638128637941326344423539303440616472472290705537732682518741211727886486926966903059186275328112564186366076462399125832997549832858972413017940516912425028816757141009448593394229198167919476929815843226356615283432006390278852891650850228771895126555147921435959534365476647700120044180236261112929486153299838423270263562334000430622090460651787269827603517680931425938336015131396734835347785209929728397873335125135147688053587427433894176561299033778278433313742274603036212353029647772171528021626481363572953243143528188640901970584716138965571276690176741355880974358123200313431194033732711832785404368221867070077459517044024976433316145666423887566087980159339475706118421498955607539971783523195463205392049763506349228298615540556866253491767458355071857999835050994353388544465362962832272088331215396623526280932007415887662702629766009415854032775178821721440946535337847537675359065862048088027507256680899466397958015491670885690151193587397046929651248816443803806160451697133523006523278163160968578241934794448112595001874174603889678220938630398282593557906544052732981631228504273922230107393863847769510082102255103835513174024019311287606966651615631732754638137255945339779055855543072298785159425765473096894899567993743097006406793535894925550372105286994500982332923086852456796964202097422358822175963354158610702312587305180395217659082083849176314230612081434876337203129406793308172432945348007108918764273457481478789651807336476161167240301215520516576944705555554049935369648865423218491899393189337428907054665954368185122884399342823664111409484075727622248681745463602629401925661241736637724167161473793999998572667609384616807452360230935649149786236164809967649400579493954357739814604695482156895593837728934536469486612545147869499320615357292523485804717228553064690901244517679910411876855638307737954633625046568457436453721990534964031141995131959805888010889516084878774859490614487013649478067150399240570966102438618974577083037411875897763754916727048568393898853986073396353123166816443561867688136482324371853918296191676924399757363139001424688235113316227962448376564748597267376082098296406065223536962509760457747985626924996822475335194664541893665751093042048209037767346816701565028566533414135746017101958894590852493328433401296619428514856893361883967915615337337810778883840728626144293032695057851314314336955279098568341152222495018481320420225786963963308966661612989970543236688154514169024778295116073347985680082158520874865129326195477118571259038825133694276485565091641471832056501138491993158313328152250626438102467962065368424973727337464868446869039226619954442042777951487456370587330358762744908094118440696887826256320147838443091890947276751002981342208287774276100842846385036334387414873348709948645396003569274799352537449949545417865022402903796122258159500282361535672480951913062297637321510434562913817256984314575039862243764761629200994900183197468276230533571708726292445258099480697202304713318925440206472834718843903628484962816169199821435169258275516496186025934347553735606695646746602688937377162022067565086603782164417186774514350322152713535547061665203493075490544374514041213702236802932060916521295897008160143284696153375778712443825926576685625381112577196624470784100317840445803664109494550043976281251493403613784386692441732048772862007769053933638663167508233026047616521332842498639150077028005642515974274398085550946317931088472757785732340959404780297434827285834403190604188059213842362994516864295463928928278957540466585784288067860468827770606111210646047464186268621156993349743303596099216047730061065765270267882910523939050387675925180675600595918783702739602712614052488614711155247603285266724528502350822767819416460492743181087665967735890458459013194103712825256839207925784203680951863129201272428265949650387290151973625071113383348201049577582799731751426887073699521799083521423864428889460472150491399361943828558017526274715452327520833170052611857451658998408114022459834404702820477575906756975485596826043519631274868801812598710912546086389066373442039493887267399214406724979148241363660654229964490523469328573597369360956476397518908681901512324818330812848443493472181770493743583584984761350691934316312963298751971948797115163515621021579736534866646647251479362479925596319999327080026543914519667453693747514056057621097700885519437089555773721496442493711072002137013484302421204369410013290243725739851669481253240552600374867313359018233834435147529457331292282799097129081813631087372598990372801900085505798470358042770085476360589886702110203265291971181097813157657202702741494237551891009413503533614102830582254104913468866543587360341480681651652841989004342058733490363352554665547869111233800836976139998232634892266551853141655929690120384214640057535738329851687058752173376113129357706922927286389601053594049212924455188832422532793251688823513486485727724538960524354221839576730176408263448279277969614287305520595231630420673490801082419879945861644364281483344145582113079267811661386262247126813668749430882141642113803826521474024242176434143222217749543383229764613955061901813503624631399051184597758101508338390120199590247320506971789425166371182381288115549265548755716521736955351989271384877210687567560822836398942378345123274308780805120185206145902064910635098448441421949486902198567148356851013196012699266662905341496238587711236510754131529417018817942696569501822055870232610150199228813939331243439238553933208093637963747291007540732585570459582432386296414467921514595327816370808635938886494478644517948115040194153940628573117370547435951618796633837505971067300839710099655729535545754741979768085219781499101426659771845122928551136603307649940224598800315880293017440022463990968251248563977039620432062856515447879347080582230535552368952382788519651263450614787096621396726248032790143503107969408770855614015045280619425241333136342437742243517099041060338203782335009271826621176659271119721649762789298438761685586292645581558211272516056763647997627956561844563844391985333244129949958658657470533766547252892527729819255559136104324340960494846891084935717641573943242349498983366485272226679443157302713223820721373598528605262947214936333918265249865987906095612730884715314090382852441584098689446528700865267055858471115621552977475800322824739272245644367747032850572297668693794855079053338848312915641363494721384871477453051903117740098685067932952401274456763582825922105916044838195090450300402665761592480887198359420003158884907981522856456564014694174697546371824359613962891454202131982974332098513887829024750789840146478446583732089708566983692649159236401892373531698987723656225176201186813477059524567158296794966780262139622847635110113228602710899281740357590553363879455188732321854322185932071561077963355760218993847261181346672600739661000187551329897446224377473164617375265995327368828929534603010859810185053444614357777092961830349576518001597620813485408411921225894824266436284251419742023625370054829578177334926628819072098809418685434896110252188102822295205014771359106514720569422545879735548926453909673841822882762424016131004525550404756324559477592681144103938852893831354561385612425232137389851832621935116429910390179660491456500684941771853114135828330603581777359629141684264387107543246061574224672017712741181114374401700151838082613924427035507669930584717492844649049777090710205033989939780601584699061111823310591877168091898109840539679519290454628620107183101484307771100192002109278972344497399152911450077763688154243896014585609725070496817643025420145069343434548340386300688397396609296579398989118779891824905462489455435768004050125706793583865311831846249247895832116443570495164127106427644146602619848594895461370889531650836129343341974905303479846880108512528244141137224145252751552579911928814689903519902904973329947126121869141488083426678900447425322029500331131613578852410548133831864999985651471888757592809399621534987705276116879663879265738240505060265790588171857464587563968104754226264450781984663467041910650671162704905865020160296128036533006405404129012165533393555597625532819583051736032365320540842865901948636279549102069170300849955882023949423763054714381570396882730278538409162984492100278043345428299757449940643613288560224215330202481081952742006014911926847573320809874571665382852255633374824795369300859509732905437031499075126105236766075115373019700486851065818448180160679344190914632158187032638103818824668444109700173031564406794070021454132580767135604470824397593602993926432880293090087516409709878852969461401210457572255487302839028704347113338116455388508923495056574167125865954139121521073471387481081543909222444774337374713807624638607635822930916191307030558474032111616350617673358163204144000117584504668910029127910145282249921912059648126411882320668707949751200214075211875029459050835020526000601106777535701733139140822709249337094338484726593163408683257571844853108214554300382106801758073850432282475615369992714524800887898290732645974149886892376661028145297932618874043191696922087657103821203758140804187079036883895555975486083115807912978946813513795047612812256783600384976152317183463814095038636305677466419272179467861669525921402428621227136292480208184682550451432653773309204096491311366423098200686926174513472760835099953845469392374714433097773387134098087327045337602966139625425509396779158542833967739954333921142213974186362554594491570667924743398654324529859265949251515460259144275962069187837660208172443977448921072857278825904355228409991586254361935337999653152550317102054177377635319600436790827909038586772534316666593504281242974384630074849818754748959362447616311052588992876356944193616070257450748301246494662750984765778149162557204090594338713338798201093772744673493804929346625039285588352269736947488773114568966550439896821091836247299167237806948227159802814577574278044393435990050458930527373462029510888114514583062329043714774785705663635178367372531507444072112110956966205988727406815788741291054753679245367121583257904828448921955173454172074383302984810082903139395258222153262220526961535931159161412587903763598047101852857534783721516070524527427299776906416686616418516410343274268887754216878424698169479901144687834934138429937933754898725607928360805263103760516596119840344035867210200510552198755018722879212426771022060666678410263695404730635468691198951935957784661059667320344820930852553834921438121034677021566717415962685390265570496736493128993411095197649259600064722912239782081312209701928333505917076209112316084153451133091464111165968184815524710441874692561388604967065149815490497326761748742559077856488740908685484037300182920594324509624848691203788555839212661065103516357216534218341528978877130692113962990401488972802790109626448830323558244718818848300061463909568456356188674493877974638972097643862131052910915082626710832311920528315452671231317137684474650064515753208676710497632108597949155244313467198704442184566957664145362471511704029790673457339980530569801664252760634074690505403558201506186756496183479409479185985433089890750178886027499435661054873831812499047904032420659360416090379318479827734537911619667539815834461004257130222601598231093338228474241284084897675429787945782012170771856496027116393327301418885449803677890071152296117316768974701298943230122392189106633219641906448320209920013575052014809137376229796666682382796281273943261137093400279768626914988324389440921990385113627741317102366007421436136536939403041922699921852162882737691900395134017268949182641861137750407392101656928450996877187857394467569877466330236791470702046310595734806174994849812146533826934781550052523111641654951455567830175027517586682839136208374406302101040609627822482088248067467393332438966843281733616775140923819472286708030241172780527504497191226182357056344799532544574010156826329007666348319682977069517010073857891422118383629162017382577301589951973727158998088386336315174689737773224367781460877273872254155139437049495404500938172806170951021613481343938754293670998922490774291214110315660715396809267966494561102748457402815149815597580341022617290625581974800751056335451239790964726833665884811982125956959178489815983342795210998749945987620170765127483501829633140396844169769358425871426168783422013631968642225906773626139316903302403078950372177290960517607966701086797391591985343922636982054600375093722035880542773291115780875223147344636433686775220543100378558340616087437680376604162862701359696416100108599691121959700221080846840428242156526320429488295540074324684769052728258650962810134169476979978696813556935904792423092514121791330855494598325901036759229091028521472435429322411571427732162726704632483279794692550460273277919595068308061652835561908354495105511983983473657180219643091097444125289874957811499300042992256466591771918982250763702323334145184739837593157427488173846306670397905375516959758888925013278051062927936579645437244913988573278787249965658100552805571604191579868775356643766474550493603969249727201432030766216004937834345290165847104683119783283990970888902287051708854427098847419606623248423957308021686269951183973299208297728622735177621512719943783079531609156729463181584264786556010905451556647883739751340370485365403565842546394515077309028313562427741349140728062768992470304069665157945824018661835827104430121273373466003636396661342583450344755010836162799103081500697164114452345032054204082164135077261334897253078270558444163852191221267547627472948926273868915409778407734930336108895731755541034986409986245995583788992909594564890317390779157627034311495913612605643387766603506820831711325309261193121754726897114038619067924067196879169336806609919738469598035590796284422653545815220405354397570309980003144682035175426090999493335463225111722611253864930314549182861388088113769850280022597002064649468259459717135766868473367653120605833536518052435522448421908867822599039723345283605460092922034312270955901609992068984397199095455620510032228356763159120911784563768376827791584209889622190594442198793450852355780336969118492649670198316572022243746559696488149325666516760010273622694047718760618112552985666149923593830953825235440472195500447386757654298125223918088211041781994375206545951108641416270085746649910302870578159457308088116085675786477883967089669435350668020472530462327854552065724741910890303095115167755325845140403752138856388566095780122450144006692905304322242435495909666515157197262683067057558016319851130206485064483781706755815416442218572322443636064807346554847242284654311335585954091034955730555250071113267276969141795358770250048308305848445649691245904599797958662160362480895573371287808438028688910823879773874807741471612179033644654460445671077395687159372787446366550984680645146608449548057737676815274047715566743162892025392793287748847572686457276990610518060333113072402357096264239409576223115119328632308881938691913491582063810892317819509597605405746569710917058465633767866895502861057439993079791744485509273595060321691633052479168471738855447565392576266094752521285370356578246873286337114537145204167486918356435481212806529040453374306110237143593545097633457534584290381907516712956014712639807628405781660412278289652385878348284869995940183409609846619572476704331364550883740708603370003235762764014315772914595336060628996458074147405416118442653814013644415327062375804460120978271533423067717476287390238904616998564891025209144372375950876951582856087129445822821587545803459470837189874264914943914872383085245861795440163121309119683479822723078626114000968916045273537987377274347881222821653645030142057483084589882938317365267377856382808913481716070044318275685176919848733083349729066296465826522831006057114138767583113647250952163983880938587749891646792922323010990465851641555646507537390443744575460197939640610264902552497658182860535045495018716278866690018510668840512407161895600953293118299911209858428825513252789779456171803954402358728978594593812536547241165581166476864107306392122335664329811973874905992720145363382913226717093784205022581393779846420126548285404893822040986438261504076115552722078676827486670205842886683483952046184406541243576479596679390871855352858493632727655074403774443304785144777624881189239246050646240775744221225930892775209068031432055731674092128791908747657455710583353447317578795266178006187438121319773303742585233091268055239103134880184199735391164900704368436788695400071674336567283480136766027346076531840365253489071469951165387658345163233783652035533925495161553087612949009431499065914864060909113497795763485532498372778157982213406401745796229130435217004196943118203377063774715170141210996684767361279173305713118833542998921279793838454633014132209953363210787399459104671013348836616372110064475063879877189952389392557752860065246905636996025518737388939293903941870920799656759577423075361724627958524387002459513560657595165061843575815956568164988422720693379375509121919113042035345478969818246305835505321375728778964432853233944379871548835994199745138019879647104026423921643130287601880549281680321700584370773847096530977601621453820740398917889854904068255649701007753768506300682074074578344609560608824042863740926271448281107081343914560692260012629331133283459496112754444193160760347513379266300991723955995837999126761293334764696972686275872354077326832085886571951775038013510217990207218728390881893573470710840115683625527476648419910736068710731381017324207811538828612449392547720342805517444061657066402360732638060363118737028845266095815752400118287244129733196384140944642742112572168186059453034412098712970145333182892348411145240993186564823142923397784620190277875961549230391124211839997551009953784439943105479750161601510354530809937226300390667340527192108480987063055132075577721852801148332793598875444630206206652807261091471648460293490213002742062700266409339934199681125292148051664359349061444630096910934771125503445227742847003033219981741536556740856017484161083185412338781972471636714473879332178235246546560450337897165018052295778138976374227210901180846440932181840321377749092557086826473867872297285279202618685970801410565447537966240522327224381720109613725888813378800377062232514460319174275486423038390472189463247228437417547172106076324095742356899653402183572190550113137816840187116491216752232288216405172451730744994896569250370279882847114088652395182646094920937042700435087786450428426168224705684618431957279107211177411789126300917909706216441933248584908845657464485703401389147640960326810234466371328811952373023972772173215374170386375147338248198045436464949204673488814231057675943295428774749707348752864340292648496692242780374584237867861838397447745168883210851084840718481740985964467802957624747807809725443837058325284596140532983186443312907561449133075406468363442340201612114243862336244920936554237715480273378311668602621989699364275161349104452742726034075952006853577599292690521795548309588079942397956905463726703698006499559323109045207985229641950473367288234213679099124126399819817853212451936840780964331154358920133319987080967832013087415008240049291251295031001662229120652007997262016237560479892035834662167791335911997763327100835196195873415714069302313010105367051066554489778913544244170963590502463885031223701014158683069906724016107261511166504379430379991825865177765168934922482887959801867629923852591158408331176323529246776780867972119294589843069319239065779803024805617753408343949072821562178452168022188993754556431468918912718764087368394710388668157406159171265730133763123066728530898960710448371555769867536294341719279097842385524335743599050649797560606784116141187531959966713398511728094985786576295760981499884170807658310030675135870720040050761991656693640949878579496873863367386864612843134149309233044840630027382624936096143596517972188228565981281682956807636174876118640450699354579482118478725114589418071861198045940898145785801129191543086202574377351185509899839510183357220639611802913611748880904072009163269250781592294057335452940044640554694974950263432145607938553808797895486530343433093877756665217960188471379070817651545301943133064322170621846336339334229744248867443930017251728089243550106774179389853204066974166482393725648920515659729903936560175434431981134069363255725459465476206105009020985198191923037692257140527331640580354422366709309225076076592028559259313671097400061251371365827867557891151257225486135093691422633554308718227127044858167087216607881523124290951670983966809309127253334749153778491927451304281180740583285235093926607681925168349923501057331713494908032991471395115217245115398631931339287602180552400011827647513083451382733311097242033743617046991170033612052356524175963055566537826905847339237699172867563485228587432188798179924202763161030868049143086588899436167707758511754620158684699780931339437828218650088361877040647228152919457884748644879812605047098069268593501160576974978834008262570262495764553681825498988818213504480071905356008526153008260897377392801442268263696013131184640684159792457499801593413562461916984266081929271748888638452611997019132771868714941878525705133799040510881036193832888082676030127360589503218464807043126797547792566006390070026986255305332490094150154569776142468425502347515723709071126214315683697501119450235969833299372441705835710542896482601563808439419088192033026431593327974720799087579360841516326627437018905310024851659506483009552354857063036437170817422921970897788953749811877698828513995845188176308293505326749058732652607334413513133906283980969274942969902134048089946200609188662892192215684653232580164275843194168221036920741488983278286489763981203691278021472312418261464987558539015064794058769276358086631639526362655886456048291735205546057008582009373165153334490017764626861331402887636598925346456793232784198038469050609750248294911663363505928146136577490732425893817600118843271258648977334837483079360758341965479824573013724763744364912360281302981623076870699727708107764385736355992497209261911969466269195447768439579613654598962394639995240691832990775719932200000733772028510101218917932527886037518734000989356197977387879362707881950165315198324452247490516704045264112303192534552406893070842184228936384664254745490311350914849867936501751381474301191330441815143503582704796428092347789937630162734124546003385960348178418339092645664494462604152284890774102648296201467381440810721013181224461596525394292565229194578132886546830598782034628569984462263358192419138400012393566904596541673563957666988731141769391391619189212412850545230543495249159964521472093550186507532509796340405215929431873990496301020124551037229320765022055603464549212541906362940769744438209149569161244187108398805222732962413436498724266775223278062210000347366221242555620012272843080231769158821139086324251223268831293858122092887580002691334830223010943584646603425005214260044390777977934664344343193812230128733344064426982628177693485984044125385663796273658084067355853631262021508922070270517806883225891853714198441914414176096121211285457590305253845986632840920250532756582958924830931756621501345913614272695253502685257369357038932388705612445429560955683142651847951973209562500727216479675010247405862188908431939763049142170033475347796772677354068537810943554528613445045702512957376666056191205136463126142631931829206341539543365271459219529805462604394153045828956441457090610512956394932158243821654591984789027747181844672108781459724017443169322109788487752834562280229813475327538036874301697512337558782947073665841909303074753987482114542964997544842075232055936800758107472713742884596028711574449119269286714309230155793028221028416533426815651643850318866654468465777251182745741615242618422848230026364059096400708696938540672533414575810642272792026753529924718854201943257203868260622373862312737327971838114989710463128042343644591079216370722709298618860273059737209289591361837280421886555540089802810900708729767534788018330807269603655870490580471089063507557999664496536951614232575249181854080736251031673962233668517482705471800634710534262452174147710834646055584022067385775827863689772458802113569900538989518515175524450239118974718358065869451486972716644703616530522084630605144867265011904413661593816976301852863587549277437171351726946053391703483974843709700983976858893768470578460984113217207327846146856493136922745859288249653805107020806607258939840135612902370284309951644224532422365881356688993203965695441319310187259735004730611029121630417951930972867438004513247852765031650280105770555719363968638708733593141369017199772531833507669840942587140910829113083285160612901061625432245878817961198871190504685680398521693824328365902752981594115648869652684672262852554115451722271013603251862230289608156990566631760760125213748327100637588639944951797794403256740825855652975996562683596277616152977603290294972148248481594487088687040768179435250653325552786783747982113844966871901477805550703962421530465569447608213596359977025711518083742605871026172564235107830161953126188890422372003652658777706785586570491261703486672023065290046740877097427945650647808134189795969266723144097319017260834980826337148515904068939466884634660981158946569879239568936046420736316344902016595587864732087339226600307929485952070831198547004817291746886338449045604387099759309229891689370983052682121067393935095608239357094232446049266974757576440318695232124251188678495032174374002650667196239660351430569415545297550283237242576907278853725874262500402403586506409478522478183608046330292476115479212341744523126791051354195213600798488582416316916432268325991287171717204037874296467158121629642147097190227053072778932959171904202366735674292412836948989536104956622193214325276908720008424044816315718962217613595062692205449388300950899562013332576670723025738884761251159523607575939485565355447160493296767742181742612001082769479798555748056420699165141605331437158812368367093451591260717153571982582578878567299886607724377270867082946718269659333798538898433265570442248308052928173375319122201694880694889700371334102282542188095677979523891229659687090400476606819364673975670185792914580324010081767418189369309655584596661805502635208892985693967127373919233445840190508419587575334148975950506716401793547382054142282071919133806976657366033957819069480599494643450271360011847869723724631232100339218853862825002072244902813900124093892620087787009576585759831813649611407565746637181101560631524921847367951847005208820310567194182537073235906020510322871836888495493889084468916367949442280044915140749011288454507801031469218744951798136546949115380113834794675705118824840508373640051351374707313700018704018704781600468148488050173772448248998133092633498421673060116508000483943355287074998755383469204041727045442298152309132432337598780764420683880189263704594262463728792066093185461617483529033526624038441109624404959377580705967344805927883219141837801508108121788525143682455293438106301035658925643262829803486512588228435956773838533416114148729898509728047248109716817087702549958535211023632157423349548622428749597095274563575155443740832858877057537122365531523448971510127718643583454854519357574456769551112398700309759878193764303676520023593235269660083299994032952837956419238717868416734255249289890115194306953250600172597334539598597776324011391106138814558068907742269410922852236124044932046674913874914601288925877272836237447068277793673813178508464039681541534928466761322270602650629491195275478595475028109999698005017988227534981716568432563447697971077965848799888705199935297106651850058353270400740773582095682347081440386598013512634226418756834351639333083236348598388130057175920106871397842533196687216549237936902169449573841972695843581004062283196161395199857823168411522581753085632209589043320124443472473512985728015078489374066466883769952120180335846608259611408721758084037315695026036781677585590669078775157856454793965313788739331998111986556739961136955446592540158783754981513787061003654763347092850313705898850784081537754946638602669226987157758167798150011998525122284795362969576741066005344578193941291889500615743866762614898248536953316098993244639198176180819555007897423234817191267573050782861825001388442915117679563786827547887323259826983295905642450099082155061832773344199760239737944753877676091910728350591689818987785023442609540634131785100188685504781022469976865279152481133852216138783415639950502697315957761941773182542037656830698268848968557950465892364894517184990858372649832939142436225024114248218339739046481182697580149930908352483959045710241908362706251205015796693427048615671415261339248240641250290395553945045472917351571191064372156134424401338388044205134217529187435991520273535254945131935434662580429307847111543690752338204923501967291179358294233614852485065567413365568018975900706030729313316908184266252860227763292332047762524473425315276923231085689534939963957776100115778773322245607596684105118979129707647531266346773546713881016581295998402031063668701177148320540445231495773351155073599397900775411649259350471995932138646337650850508941398589980944233367131104133646448719979902909625671179930696804113572485014353603061260449966019006635770239345015111628464888814785917166423052617863344880364946453287785470547236611380222655273716556265531565350136709496254358177042125317850820828871372279492669026636396684898527715591992678239457582933447836379225832124328803360951089375865954886577841855728499438870873310430994481962576900092624467282803947992907390659537977959792698529705227645968435664000680798601765154414129945286187686782233025841669003719308305781593342763254439635284178551080375704910503473742938625789114917422265250006763669620478632042315739547219982350675892900947607571181539326063897209949866174992951548669747501468429774821893872818784652244582471606570080173700004698640847645875578685249163392940061600592640700982632286990592017727407868077345739349497958901391592065500574488251198544884047684373651406433197140691214689772167917641881825381984287030688938916308976964875990587454518858242566437196942016651751462428548718535107237218632405394949412515180733418320961810677964827855181757307088617003009430357989497179039563215564389391390086492621691483024011678939812948311915120102842934158775426147148731178850368408428938163916002433316576604783036120105292659428600686210101167105327672949454400548849909967007441051416309492873084333114434928692345054228082155957769365314904468486786859707428446656846439922059676883715074579533243565068526387884755771643630009790899949821200969847532081604846637740853480396996227625288676513971551426924746913366348240753897749769284986077301166520000193991621772440997203194809779741444170116863616862429056933827181513454421790092954356262746752067085246853919719061042905255613262790844665988567327917977636738641267617430333677785277207848097060870829796289652339938552525709702322410985861985743441169411121618745854336636458167487469781233503917588892080242395519376597787040734556396189963520002037342765168929814786651989337243552988655905764390123197894225844461928173160478360818881647251856086785634823678709255667108024069837031051301614468620192037397146023912473252948050329616345466976255778298703405547500307215729005089771276107637928188253481927227598092727850593935868525796822815897853527876973814610648789280103275115072779581219620217677128709192100796175416794774334846025387021958176501576957388286468326143503262850519939396478746715110728343729596877889060707511682290168275104947552619568810954971733463157332147799615905502343616174420044609886349335523833514530045560796750938188376502003591915293170805808565003166138633949554567415519347202881614581471256525910966041453742571342294725008003101611504058032082270032713936459880351299201117194337505938078075065296821970279846991702917064025777494486705006417148508877290786744753326219342215203630170065738850097435783677365792328214986407575579373877430615547314290774825655186275174646154380768139846120201421661967306180740776409951373488977581661142006040940595882977510311267667967905667810486865171383314451797390450937606900314859532732696905819947310039154104095324092534201026227252862221963638367246097259761784761827603490159716927618597650345758830895377710744069577650987204771454505515348441766791455638020154688149607012097696097254769273549868218263775255976281947574137319783912761850763746560084250505293831403978359307918453783176105374328275186074601067666218383325932640594939015443113501110999322591873310961040345169290749119457551988809301599205802657336669411927178719277342287787449738340886790780280070538654900229659247469026119390010078166785572066506372673881379246926384289124926281022659398811176374332296417329000960730409288171503063109349126407325281862356399216416026136106439020555441243849072420988185221515735845733622098126522523562608410324014157796411048135066310859516697190117760250502709603538393607202341523177467366155452304871222602527184895046278921944266807881790577892095561723925465413440707340796470681925754838324791558244949603900520946230383346968606796985762773706316522119011290664772394079522373437147202904270159416506649039653329822897255904365897276033168797712836447679384928797324165658137462079341976612513675165332224890743005010604755859836098847000367547863641974560977395680797891547559516844796246712589081496193928491578203364086765958298378211650916397619263131270138891053752442427882404112357820236969074575835775623041895666371832856309551438007040619982774106234211970946261584588898683576760636470403590409979303029654307468113662835466440393003881499210954592378635996966404520734733832706615962086596108264608105180519112259184524823857902074477865230759652244477764078776379936051709075328745800089727406940811583628557564557912182328472136946775980257796818765899083692193110613006862667283555780372500108174345179446028098670933315881442915592701299516665446047884315726223028114185117487155546371990912984920056473653825195870879291594115861024009653421569168315491113767402433599307835404469786932106322536590477623038231386580894587041665237438223712884198135374930298640888906564867212147290151930493313068824353224199186037625062116124434689061678818276270006115358750352972051328846963922362256241172362713359096280249951035755202669810737999451889813419346224575320118310833927253607135723591179202133428741661451815451712878283893405388591582299192767053246883864529151770212558232939975820719840554818583373272783334800573971121783586838235905918416581795017007387462589645285509571065510598642419537072717661398468442059356097603145831224824786569447999423725093536251891833194998986811051183928028167050082355997385122410543424244142283960498640230562191098789174587728055045385173735527921934348363152690227535636487849076865327296159807654109854692766117168810899886859639870509821880428760719203295367181595326077784049147142264070033727278341166290045193509765559349440939381035593912016469384311166014576989922330235081734305767320268037467299269791960608223201008152755990937364547122861728139543181284781185392516543894283126908718822019671159903209967008900073150719351760285775204628677448771630214640060517131830173411281812423513983777893775962349329350095426035690535157475134589611812442486967778237859148210813486138665873265737936871433203227686509213389678876910616967059654271581896162767264823368034155406802641373930932450724427722137535155280752590470950161288171103242261312259093881839275495679893719641018840959913688932834621746364473401221090804701796596287967930309535851002278618123833520192012832532437251635841357667942089211696091254892787590431726553178114573667204228957569704630176964571664594485662709946835155737715569912496667410932043977145211218024459347746186764526988517550001652896910486213374535751448923700650477411234306231928775292033436510211139410662845683790215009035813047256967025952173219909173203027320933046311060400995896891447342650708135527912050424913429402884584143734324124236284677527461428596331818792516188851515225915155130610226929765462685157747088832236523532330289860835411706923303614461557975533031909866814175798847441806770278403013683835678695717350633986177924785435411512808933169118261109844269582039023628767614034647711182261061006078873778202654964181119716790091123844221489667663388879881333937184126233149106485133915408784967922117143139874505633445388974463075438257299500610447543526113981789976980156587713106823423714907561411524111941649214684328962482638625721139456231527611875636216132945992113088632274288541109476527947395539732480079479057769696561966691214360055954170876451042809120913017788317776321143325587881298756065233658214640632802621201351512716448303006007848718130050520627096838191504708495367374689274071746902190157668131580523608331568694303757681810741518848398563751281971736150793615999938573136419862138766861667585395859484807882245306778183616904272229912105170600761091256497663220499642031691761532145721892004961356201747327452382028248395941213014562821120985067630975818387020404958344782802352455674756102882989375747262871690602818571849161633124262451465470681510424732207673068831742887337834482768273935585602454760832027928512791588646645781296320973345964874682334872839684434015481501478186998747334489322427806856832027012758043865712154608677581549354179260987389781321120368643468707819784759014406561463998870258248191117698373140187354061394194996402023658146961856892367449945752178258608530879190044208004278274562792328186884534416756711737959919689939953712528479698876264143683327780381644414416932582235495748292838642578033658275436465792792990963073627019937184750955320576641271282973323053525924248763951770965135787186929074868986090772306438621837391069883757688847270430436764186746473643023223604905108318338629147962242346475864752760670943438855580452752614803312444841340889986640164162857976769783606618898435809338167938926230076024521384764152970330158267765330217362707950594117396329957524485543460061153651380866534322691293003785540535464991501044827502623603432611569998157822083279452282411298016539623489373565757647898585460441868169307104906639995692079664043207094995947661979773037401675358534930378534320824588324594044411516109638122571158268212789816760004051411996750502331676894644105986870069699414789152481428366004434009788198284550364028852052772443527791809944947603390743592493407231949807744599983164144605784036526609800239178815751837739111930284042226173744603496971056405210411551729157347052991560845419860670476737818133411883042083343696160827528910394912112754191806949474473043519702008992361108664451486212377385220932194522893725943378330399785693351120507996044074941029512172680031695203070677702410769783582685571918045977550789254646013637559997749321991164414266579655231020244842976461671439379200245511997130048293276521430720710997414986050342630396910047781200320479427464415746853417767526358129454416437564839057379300666728389868798667403764126849504114310928231744947898868172177849098325666274961975893340866273391513445845647752918639574433899082113045833693431622835076523565346156845454836011028101280418045028106895896226683846309695862062645360457133138683271114006286955961396939070993339374389215440739134111155269772081839159502722446717846177485513779915434218359385987477328505482007075729627339353798161314301928026802973319629745664714028422645544309476102274118841803698205880653826715925292834381511619022109568821979197616191387075794703803098094310800967323863142549862986891526002866246199344338796814543354915363883394406253615437640365657323998994035810257641059002319712163222256261419995782933228216350317975134741020904703947932626420001711823914692340996828023435310567536177695725314913144906649170520527779324315039307808172664572417318306482477851389928932898085653079445506667569696506830457582548321750353498446344520137710986101282522307573634386744329957548743162657572309265080120660166068252652732481984795057523038256301107575787116089184643567514857021501945149338822674750675414089720424207238100916777299229388286595587019876172122307763569208074096192430928054394141661978284903269389574777321191887750493022133437306519450770083754183000139609061083051182128650790807365634020700324155758210159264958702095158032024081239727715102983881063252612588156791820228889578384821772056357405956936796942331877966361878783725995913742290232598832708613903964140922561628764032509434707875647303680875936183691581272612056428437938492720917073120400845637757882106896448095135443498293879344153906664905881516496733924250561569968764588326383954237728436187289838693768878808812775276185894377682372384513774546498288136108227377577323923036608080004397936930788748230712913896519837844003974752194979107373008658461029574457342969582121120660779788651422726130213978094326420371014028921888768476621695556382376994280714027137058235456636831992070270612516080406131138278745042805193567368004624667070688196657170354701029891348809923173781985092843619180223383338426756476434178117154451625768210800352018426472679288295236244017582078676740447612259156358441107458245836650997243301052315699428667572793336603491454583737039589734090380128797713620135047867952872914861205032850549640186688457851564321070613445675198020031196357453314938653102499019787838949239685650697514148037997331525505237767108004484482284086067927023140978601368644273421801019488212201442984510777592006741127641040320933081657817156966267056719931202374156462914589289997779207436969587920388222481789422829559710668667067875157446084697951976754761295848137859738730952491586143959391778354848093364422083595792794061052355423687128057551553647465321788460466592308055864019075201341607095018653114808017141204593536944458492914730490878091424718684744848165635547795274767865565911242951757486521720686776285762544480578094617682579547359821834614810082434251918184831442243520006698682304511128221439104202401673060757037003100610011098345785374322803525773155185658593398489489221042504941873393053115841291468818598322337852302610479899727118175170711110809880679836479444115883577849618981099546922053054022949180882176755545060767374562815947633985206012632293133597485704921017889990648128558723372488196483990866294278083817606387487627902445493723105600239540042542625956133165479548867337737595588702833358015210569116924876463057171139053096939897690995605200706977130652125003610420317636517479414159272845714861657875613521662439889793855099223414850113360800079732341680752661491173939142455259507341077119920985024922825794868579307374047624532395873664170445982467436120744494180453799561801616033592723077650507228485242764715790196032287338054227026728906361834326561128791415349969368539780480190931957022055626159280308365996316942876517208454966507588906758660583335089166515250016692749974255628658951428034971141892334473428199229381028260534019228144840724279048909112429320216879090030224104602103880643134187493117181165536063298275261129243042839339932471802711202475816963919199102726019009024518187974757668917295190612422550489130903305135492422455018105019310881182369346377079027870320089383730437024920485393198969574960270349828256602506120128403629471696040155297028778921174327525465958579780289167828972650925593437733118362734012829675323503668922729318333956422399918425447861803332644787255440065833548343309021287067023177561035687103276596032882205927735959038528686074839255705764417097189681883347627027855369137074267717636339980866706934163867446682306348802611801111926049720743607401279226662898871369637511453307479510556477983651576747049726025284877515019136245908118700361966777564286812849088329172140369252076973431793808030979164447187254287476885551646317593855844919903742879325556767675021071728827138838066093411691027263776043410426851199145651191951406730492673953419222202130221797573533499322907952648724144685093742988292477237124824988076842625342014361240769006824980637094059167106702986297939762595749024263676426736797810125296638139615944742417401867791196554760182109247552424272881650636063328506217060787392441223923891481075743625378974735576735575192321769685211865544727240492583714981164639909714879452449183453398493692202105139320227038510696642521746166582557576191255466687697541788538552155549223032717849281167046328209339049468973051035873497052311053617212061961525302894844208932973136325428867135959146215867820071725544731800393768664074764379891461383149841662451865448958228750864806860979452117559631328957124113721541801522636571003907247078305857677185209002371229754693064276492582276108216203231396870424784673263454847274126675454831134109713893574413873550509620553982799415914795727452998569607282584084622051835217556101294006408143036801379295774752598719157069723235992624079099658400771182568146340824864592498768406463825042162575624661514703822691227352669067665730475329064698300077311578656246532870564979431762864458417373263902191542020571469857679646095998422860946923763589677987043279806196617288402806230414651848667762528563189997953493319300532716270490430627235709817779402881401356069548327723740721633815758450255387299094777476142764027529590098720932406920375081070601040445740174715718546030621295054861450350339634596303398652962868375599881713931480691494045616285712557003807780730440510688638399572557234710725051939750703705236156377881300295963188850491019298239040507428829703343315784999155460790578685956159057955756547097327422383188268117036201997746842799644907004747778469870351567035062888409597197030996555117436236739161956871266140269294720778405289752092457021334329905882942450401244078844433124222072102151079189165167111929331723485849805141781475154108151447403387751158433629225924457689537741729574262082892990076400497998060554568107620613380429085800832565336878688206256332989195324418879360554652741876718579216347776004564179384019446856545122278500800849378149834633140641907026968548122864731060619493901761242621895391941590886358199859081670019627707480551139537177364129430062870624973081847151710199179072257874375789309486668087614379790243419621094285123341383636895599148056237183341436188339097432259500718600969572072007527653912339658059856871492853375122533602048031913343451662416426101616816437956700387009825310702560048349156300164174474399942974195701891633366837704549303812588383051435482111645032841621362272529454673060557475467398674715337802343317527614885227132422942636347319969777966304916593521101443316163849501177980301616191387307219449772814263380557955238121324273093052961110926047039037745000366912291382673395060680710466880386693443669048247258089406882496096675245295420078449301061201171371022070825457957367077093163382160701068392268766115267355268827593437429096624524914521478342222112487081279132717197903281122404805154727682274050432767794226965768661724849173827548748378340478761543019555635360628863201099130501772836183158494079553523977545118561052410507611892404769611674978643216907568045877887309479577534812333846258227398232923998581865568119502659135142861773186607017076186254496356222873294473767991878923337583138061849125513628490041990881402854166316726176058203857016661267059885669317095082226466404675873583825157825473074662094365377381394131245584256343992923577990651781953941464611462906709128085432764104388343853478101726783584274156594181327452043957280801012649035712532420948194659155894383052957944197540393685801008821322554229633841898326531176797836908040500362924866752915754973106423710101537506181102945374055132022846243918327676873308180181626169959384219643065147731341554260875068377105719218443461487416681927542935108446310535398209361372906170708891199133134058196094711290630392421581617398714100374771490259176189177399519957453259910806723286465755181982763599382096244769093947813545505782289865839427849185438188089264911026447628650962532195500339227545578567707244240285660340621438760602972389285005436027452669795490752141529516541128426184756898496689848592467480035907958977742866135256721412045529608960926726923867498463344337335204337714216676962867099666781475431796535595334162890230603673536304866400087271996158183493211464619411791342019886271076168258191813466311165647923655573485719235893300156345110115257665134792993695920831788238446479212126285903935472467949212248921552386444919259974286978891870081217027247836912347716811243102373400220420829319179642830376690725457485138050983583860271012105868903653328941897464687201605812548104821191947208266515635639136248811567092626730175346215909704120254706056426995962051417231021501850121627971995850952521568958356223348864400714902578735443592904586655065350866991630359275445654839759780672152808209795565867512379377245204676897781004375370393027921821394721579557265827335112305336557690128152767898187369880865366981689309170073339564409308365787183642530630868334908473853024109244980269450618811436757484746993491303011672423999199940614737698117771193566746738112380894799795257133495113681426007520157988345145258541955720875999018716406755680669065779156841943901052444052432104592025406815677010838290629450562703871816688294506581341073928674080859037744655753413920797397821517550189086015639731685129800324652611470391136094414264745337208961106589215980717342218650495103962838038032746320625740729603377475312876932465347132131884511359332753960794681830338049799603289568107611520914022270509613802662814352316375145329921855663413604224016231115779976005010188524450119861157734004370593057713563924689094456660061055687929096665573543432491688806787023629128119925770734776513986816908032459500779652671321576981325585961833859985208173660635521373266210345407430773623421261400072717327249085367076052771060971064926644791509709575094320920530462499594473036776145812856754449936451751580676400503879673114394000813399880708488263154704215005516515848623500669612918828679649578098968134202902975112072681553573205689783499602102161170942976311902476290489711000090442620651669473427747491059977722110293952924639902669914656767673664916703017252777064193921111371438329701922929074169912490679298618911225818811243923753050380215797903997233511200929016970068779997022805671109429106631352888318935915935762676396246977468124100787802052046333598056001187471520462505390952564887370644156752001495092852328253230214314590742758632271129677768715456114416112432053433778473914719222714402744861246980162690862648302288266957114600609196726349040284583721745881043146851660833373906981345846185818426120716813537875486800635341714949893027731774991761465931462450603029263747652981122876784952044092754753175706347496471603492586660106222488515767688837975754372778377664866267547387253479454827574996725190981279307051480163351178825003209514464133885527155905382704386685187332784404761559252336818517224411618708552719846117899844086940300337071553286305386522528258525509796805474229874729161800263270457213663212665269000464498425774391594162912488189784684434071174619666097389882554007264011694522352927646133389130660085538797627368442600379269745601021364911578333733219846556615661439049746568586764336434197704140110531603652041526700984006186850059955353835512410251106960745369625955530853155519591193715724841587277448677234156890593284549175326906951211305455003890006064194092515440773149280877281000679869347898332413037531919324378194147706806715968225887205225567288297004850521357518785026004892222012388534810083033367073946370254754534737810329354885343304062154853573737003407817176847543411365093370918849642656158568078087791527379985697359230496525887172365162707267590081145695410710773838286829509178457552154724270905241115476555667570761932578383653789160204386527132477313279640400080817678637707161816680791268545417247756163337871860066896247640860280245226007862738405326708695102799531921960479719671383815827456371072935127692779344516605757450524945675571279737427101592008132066679347376521225157234192190744148518015413199472790357125002579995458586445206210907753812048531989260258416366358272712200992352233844619321718097144302327399561917083236465086783808068397659408505552177189423901669630577710804930829533392478053413303474867718699812978863368374585314493774863792323566959757956701753139884887716660791851985605856862836134000305190554026635270140118087204442587664713891460345534183632435857243216061904608752267452726729092127213933418943757145610849780330359185078246495785094626225421364334667872126884656660195477791585495515957727772468942803616341743366603349948660717960608874898992692677917229091714291492829019827263532622947484344793098619271782790103510660260696035456203320209791187625363043023196380392512984806025501759432089447651830035913033619105486818582393986079163699424484312202242796111411467293654691721750019441854395278821963997038008647712133564253134879213891936986859209083588578347445465853600750105544390536522111325026874372114885725362545638854726052410614705776480823061439077571273737278369160749848985255601375767233832627338985398408065510230383064646801919583188472273073403758769629570787791139693992774264153653042120085542800566043071540379472801992526645578172507281760270666448621918724409315766844190919066256820609626349808099347361815762776174030664378391214536570147057127185332489401450448279070708491617405664063672322860326686546833273043123184917101710828802053043806272624705576023400241681498842704118565064419075438754615486147187623374276024506144093312877452689526075497423334021839668139980917158912889413064738139011736304829161138748041335876920236464829692002882008700416298013930200814686970809408005031228871911425865911035504650465428905410019589191534842550917374372103223834468893224668043846183736149023672313186685712488552471147089443839386946907786759297531957280860365276277566041041853234897484412145527284481385644380645115541222549304637776122844161597180281673919776112553500320571377627307184872189193483674102667508724421670257099528797650435356401082935752882692843849059495550097178058260765115974622504700042075963215083306934075956649708088381776718007051619445646094086869019972987247930495668577845091546564087028242826644368030030290282487947328172294726674880380072407778381002643348409916459261421808654330101896586038527446724739383869423796808715810479283279275212770088816576433319597865832107705201029277033364716922245475819604773806487294482215173346913707449090218771827559949113470550878343740900643733107015975697913895834201972185662857870682887184388486180408875192477043952568601784104664393705623406000718836048037795245464680469283446558793860713587214315775751309211844717992669654170104684097915788858083529717823465078550068506279264699450743825472472205245249167175757240353024293478173001384927450231551199115331413744383817450811707466018885675404041727823162012985544802965288788435937070107416230145731001030747842145422091761911222112852608602969064263370844956237289020559277786487680362080369241284565236858832425072445810428103462023009213503171356244591592781322970367809944574039909113873447523930709798534132734687236687993753532758710309347451509024021353167570777734758593470454600830584298463313298400228204049536448793767541704071138924565157837755111984853382122374809122834364680139809385468425485700297568975196113725025278452670741053900949795101778087529962187217847312070995093135811389903957933993080015804374877269757142265068392440648804816177413332162327437133723133450854695454398365332567099297877983298031925657505286548703022223038066957115352847547156842325825660011668972051999077345409479300079833128506482573096888863136760456082285567702395979502705113478708137428632599670089347356762219302054399132642508964943257244048983998983302890340721648658492161246609066088267664620969704590035505672648389652581015250807630210736488622862217704566682463208243154324383095404435947757589483382413729248147379577732449321742997156107853800879805562343518015874121484548225366250965007617347877459108797821821444586925250238484993209879045810138257477934500466099071459614735774385518896717814608872599649822041075566481856013052994998008431595614362396272032918102638510914831164048797612772526218424166149601245147977627290345686748790116429648015783665753166849372162698711377264946469302411758255702767709564683716228252423973116503531606559032746623772308542150077336434021012922532454929883838537461524655911757789650656084425145219890926261840067203540368731453533215828969380149227316847950237773073135308814545465678205741193848641231291741795203775931121083717770196814000146415253964789912958121526814504661233401900246221953638634392969495882177320283129010807838110502765917943321748765317387701290785059763313736589031774126103873456196903064149459594180917189404680606413373403667342127161181544163585590835985682802181685839702311138453096669414301812505043450283944262898440869048437023326425575371587207062709410175461278023711332345514925889403193126169566097185717496898570044295328962594943671873822942681606847650789558380194285267708909983633689160861987986197467454754153840922219807709916076748595725704269150314399658897096939562565154951651356249189007452307317959340112356468159829537341991221817027316809331756352894613662115723623244558054911854636697160309637397858192861963140823033162838400918822813715835694018224275707182215865110476802771975401792357163264552207921447502196072894672603706160401953619533915628516728237080331466412134933758266460720091965708388765538030329489681945741670492246992155112523356146480435369495986646773938007811927059119942831145103988019255309820313023805812898936734719544777354379948941919054895867647449780302480030430818876921506973302039246766324096516816734461083933270527750296765083299873721704375255910168762897618972197842727147273916562018776443553766237843068133814142462137132582014564414815841266555299933872796751622884842925636124148793805125332721325319197678266230487501485749383559174733969967653079388439583909638323322597061954675055177690636468478908238854588376248785300662040584542420080356483210330397220298656650972176034149224057124759170737517012144914166028943661329928004253814365142952953492903681633425519464526513960802228736841011104127737203446186278041562247761230445729492670593800639211674931820427790179724137762025707276651600675586336137272618415295683208460726540559286388539194557810582855757947229631017128190442553752207948383487446744097767892498671568003654889693163378370341352918236243009760458913278940954402000597910933101392118720738894959282330630126343341446163940464028316048759842223933680628023235040871249733278392590734031444336556513025297398696504012942673208638677799755956864148298746069820366609443778954608123321799015227891231584734430809526375545697523083435198061735085512653548564093430703157586597766653557906516487268854633758808199267184466882050860328738664789825979674648984387941558246408078278131696744447567992300089805289698694853928020552780937864566038353185238737328994132282044397486053485624617198986824238218192430553788842576148453013989694025262143860215544914057157682018199002515199451950858667076364548722207887509594068052689641080818975469453074934019094951052685734435414681004806915859446643674450016149107994535901613471720768023839561453416051420959698601005922891507708966351313565542894343591491826965696143928463701560487453861300170687851056427093230334725400686746512801195056898617426734235250624088402468161883622539846302210593010729237877885621281761644154071699573862731609626706232859877679310022837146875622517624434186355106007936505142995126998129554872243956688192583085636488578952296113340563662638646291733765374483083471498883235282328097801136773204344380114405904938435129521599359639706799668770179394480806333604298820768534822753166685993104094891769926129599206305553891361594833982965181241882485926888436078743399216860021437372838666453889744781398959544716779975811803769836848707552379783999216051879221010312809663454043082585828274255592501041361893109943981510896378446089371024808817131338436378345960211185081333509406568461224450536474684650409588823433672357731592645955871658791090729932784319222692226742916585988886894561637593175663232347805099490338507633310726837542807368168113750197166856190794830182414688485788277150474538270163916592034821244211866699692070863119043606743593889711792830051517787177861861126517945557331865780646575998532352159998897798644817277123077040352398723041815639697688472155369085455919499928467098302675911815833135934807073150940869956814488579707530536049503389479957944712177971397220657242008664548528593605930333599164135367899828132598017629012529277444917192399988286501046280016763045883724059002905902910318560071225211620022058321420157635518682025692418122815315554372989029548633368408292349737546141207265895383693639671873547989701266547408867428045734614274365205351487680193467313095190602129228549226455666605542671913041701045427658387190789520552501456447222952861109734748272963250652876539983007703674585377200557764236185984110184155370869371956990865683859942415663142900691491090204904586189700804178922644503874008519836499228350486799880897092820222152551631106256024644134669101842160399417587341723452982372401396273886788317348882260698334299797074939040280849941143097476582368020365706115343191087507774858045298641659517697162383747092555174614394878824957016233593379885509077672189964852704037288156458110236042684694957971225061340077003072796952921545047094476265017278449769592184105154275881365853951722309935794253091598728007854587378688201378754444318891148894328521641926504648256098203217407680062071134222749208114365721575401549685645163346665547476100625389801474256255532185277594243514284642623749326454097201152101765038385664976427243116293536976187956911879044704738136925650136661641556114003400834622830491957542217229027972371678894728895165069766725968351765849212719605482563676095224405037994187993498833633009454347717144274656044547621209845876979302785226148608986253694319363012400491858597681845648738918020073886632848283798904410548001048040917675110849447661787002849835191535568337839168803857499134163313535559383617075512169258931373086927539526174086513234754719142809704983940740543008738456644140154175951888661362160133827439143911118500392059724572431944753963043560251972995721185043092249337118291300917347544789871878188797002284771575187899222291158207787012157022289013039132330703959630786213494423064756931809852849927257319260022124172275332835670051695843489556748611920184955485242679301583928092852927378569263045912733597952365444844785237012637227141906855082185712467724800583708111522292385997370516358832566438385604369047473086767999861933779800804442417304027374050604659056093052693352719795722417358434286153802016369748480851541993844954272290404329151383952290196481036775559650162925319541187210605424041242646422660423099880147801409212178293563934122757052802856240653147166233030293272972773113866142927739676757250074529529107563028859550235125248023061241426906182186127195685407462376515655449367612885479302675338393581091507555754772994588215180666185784962976510377019036549897159030029533416283112062288811561186610326832507392240755302364240289042121089074724964202523767923714186615105819276754996842802004274123115816056240516778672829126303367515371157848397301877071142449486672318346470944977958675724972597901815127628409567207395886015868463651562472797141512363512007901378563572425903005643589811427668093376427610028720060483681246860479897965723092956541121184374816636140858096241293492275555977600343576717035906788413988339552057093074846496803596593985582505468640173776259524394433020911788316114420820803006232476390972451559300771749475918459376969345940429194635419132726158672539927806320596455749615864271150492310176566911608229243489093393926098111018989864961189582512633737637901322403234879723169560929983079535878585103636554434091998633778800293818904257124013406258188774195429830598229372113287792310695481752670917816420758155901234563178998293557140753094691957974005335302510004801458886665763336234292339521635090825875536800274626908529556223370988472573678258855864981010778809436575457575724705563526330455390523022944985055239709862560984709184623669809770720248269372878106021563003298396426677807825758721078929947687912909676215286744570018095217369630037973059176095227166917353775303901753210445652910568655584149272375231656491059435771365209573299139166251897431619173295064986648137906397546326994584609959353053790323446272364335457838046659922753036651228189305709862516383781987541665921132872924467517596765433878583288600691281679280081882061986649880653098963465514425261477574828831687553160126500410031328917135239870367362367540702448153507717002298644515334113339377542047830982954246277460074688050338909197171482198914702707246433208131344687011056144965935024658853472883557418399210507035068353650917976582978082032874340745413591483128498937452804973464195654344083221833677385914188630958824122818784001905023772732681207477252084134841414434175441591482023578674192551628124075374296602068186350583131500608706297992818185582073898257861675786783789172752760767265741852076313483677964847731058613695596275018705904595483895303258491067371162661343406830395138542821378656274002986115743752733301818220619451231217803795426381101421805785284305769454681215939088160773399374667114825989053062035575093006781467991482035951193584708086758805291713184249350767774487321914711386482218340869129822464406048664242742152266751006345985741776895274890796162757080277692010579476784047292614055277519900557486075205570088823880546442505086083114057952203745985889220530141040476511813084590759661913250808555754175403978775737204367139581269453150070081902296400406252137441231145110175962345282504765571143520883663085004205742891387100993902735083169585916933457663003985633911235948731839847556526255354712872604783044158103888718608394128510806874908705320533716969202413522565320540965611298924637930964239435646657174467740690270191151904653240415155590589701261726669047812416028060374433818787841374489122773920776252125683323402934795290483821595198534035662397200502947865797397464895336663835316807080478392215526928304796247205937383206807179846942170192177360231106033006996446290146128336247305048702788910367993004056639700535623160409091851623822216999293143663273181730518983557207786769945666396119925816799659375182160455254618347653382991783466334189547051843344239398739704615544414966684080922280931491224483195872246599002068789962629557322121600936872595145799081048539566062989766527922742947830448614165275289749552824072608976903065093100299275442195844643116072717304408666959929868196370710544046911221305342197787115531574495028723988351706881148083678096475144571081463525182579390710589176987680440755405030810088931283393251457032948946379187971533516473696277216430008566083139770874073277102669088719742781149784234173889961380716722981287248864443509466539664543907617941630473568265984932575420964263518844538148441295192382638708418697857841471777729289172164675029736872488734276458992672902783408535560857624353654311503725394286990114019503640040717686992474027084588128905519922924569537185619018904674223623411910617185543303414275039750717830405132832367633173850924650806252867059351351563826505739946951873319897823813612399028835698589357745464807454235028207841198198552930058541937417328340110981285217335565063671101199842180536696016562329361665371825470592883552854013122325902657249487205038288261607547136241024297476643602385962527801590740236847625774886774917427803448099059638665155092681468841311654382207635399046346531810727507113630685622508541475586852696822236957751140039473894452333107251517297447899165213886095716476077631539119705528131524080147161111413240411235960389687067616791783315544152323722342410819485813746024860331247451502161350110825351184687968590026080343039616344615887018789985810627088970409757625510945074247180264215941854295230532273838872932948892258247172900917007688831229884239089457149649761722498869183344500856996321413311157245749634788502468688312949758287237790367992553839083683906988830030557059270136861314667164107919283208019247076281527029315692713609124264164668804518446557486567303692897725882809628956349360747121096932072215015057977771442936167105498200657844791480580416933530579479707590358432449160581621338738707182804894332344824830504083738038766283591307746768493168126139655486040664194985934811223817820815144422689340512218233502307067403270478950036707457433972542441714526460715562962619838360760620109946087170835075922121899450011561990589834796834818530045520117083725180963636926027161650796964699269918411405670955490391847868540365204188774300368904910272092495732214921142917339239501143009068489922270158181816787831540433653428839605367927370525090627972154166944773277987121651452845673464471801558749438813893766409947126217468205660099469426841069654452640478492559409571072965035072422699124858601532192575312250420157136666704433802336028481307235698586223043994604132008654898607891831319354825388926209627454049284806539118937270060780926520174048564870932677658698740635594761941344133552769098867618246549846957699897585232571816270165117166586421762588013769337617257892034040394420736620854082946444080355765005250404796807740841960018272229521319717213743778177578904460640521092649012083205347171361259319116066228633712784611904471843928537259399821811041182635521664799588233197469069616532067503040797835668276820613453182061623655915758517877270668701992285510259711953292334515501507564102451371238414994686661056807198775186042669965386215667982741863868113869146473522592368768231136796998063082625026047239696619045141099245516960556782522540078594814559747742577652608427074277508165893524497739805780597972213660904889683485144697892865291033440961663682358274221288927214008572777955045480489810495653039715253108296206323004606841252636611820039332026005352386848016282264033323261726323808819926862245644442140005715277740871472715289332151633463999117571398278542687118898138412290672279669369658948179007958493997271690849347371696887359453587638214012746319933387705647776374141451305889758573995240409181250679045451286710299124891694417710448562636815455100281618210763406874476551769667161000474164153402473793618852159543824982556198128770387228524549634102117383510478563500507275965068490201206446643024880999847838640813516411545490077794474484606757069001411872254675582933284436227814485629972096374330603944398808962104044590257536738415154142069636076249041038140086982755370597406964098558547895922043808782453060375422073034553147671519943646932254076656172093783063903505766065286033811475628000397485485317828154085952399483362524835552912937360167080670504065160264170295933183804915528793886650308643210465415119134258132679627962141681744118422188585916432683274034693923013328793805575284084709344411321872310055919259024218902964909095203661024020819737473495339456988566724242870459962227422237841985802188178006814756475522309970022373089140911418807761575662349780821695770348868375487205185779062383965990262944819939711164462684289532089107027543523069925277280223079303251899756450073469744018804157065364444715315035887010531619925319008978115086573769240018097653510524039325844683924060057402271577452711180237674692851925699591338108843767252482344586814246193660595916094250553302052821088127884460364888892075468930007770795397552551762952406754026931221210224070029188062620929010248556656204087793258327513431904042345457008909598061989546250911522750781377827052576057305377245217049096888480844522857416360600559357728838296133632498942545541495755580625246242806575418485999282432004298959603219553943615059198229819352937763865692648613350665181937016414515196301442148587345161781649885534315747690417994579652235210710870101818354879623436171119543732503376180641551539214279180161803745049489476035683276133923092394426856596602649561901544973191959313980032609301719432990684416160745850346567977219213616827991948027726535085161096427312327990605337452262314503105651550803902914364003303050717340909174642407149438069940610447768693116952416200301917890626189745519187451537497070940820819997987322202492995029887275492306432375541057107807123994435975507420176423302182212671556703897684179853780893642896461723658300133277277711743420523490669095747199459471418198887667478614850061072954958478594899015811155360712735054728176138661372860357337171488484338451783956160465972613002230675561079435560755047549253012814570809174371187112644187356033946685691648399938819792674723216929797344070842700152012469842871887974020904707435952605955587433027138415911119814330244013771219075588111010874363655705077759485699917402840856302264894319154702908392207535659025122496874879937275202142388010433326637403485575521026660929498182116651959617609425070254655050127371844584611874847342785542578548115724778383713295319398221610968894523752533845291425906359074622849234556381296075606703188478657845529757879722981033419197728397834946414068054488081338886382265088223937475123326782139610424423599580377408930234762140578195800136936554919809930474345118520975375942031883509922395077596344528147479306106329074638126854432151619657121746676657664712101343184484991059399979626739312562994558451374674868243164477080555818871014993406916882837899487460915645821129798436517663702405629311845480153537965077015124692359071892465647958436998372135808433782397439150496335642682415967025335830075309356695765590379802670684515796154063785573537042689939056381820345016900796186428921331877059518030484514211911230659149525614237315236886454409102900797675397555681251937334232383787065070978195226712458529764450800959864970646100345559400181104908001902908783028367488644639860636492356834657833343471555695237294188306697809145359518268702273680481126989850342624392093714677710155853724693503028078971304350425107707149430497718432062940095128501823239251642006066443247014652587247788509142947803782498914374651763187954309130106618338004113995781620127969120804678352094412927096967617192760574786758011225318684869715521691448483048590434551222629600072506633990214709643852401867746910680206487560054166342013094752883086575510057523316885740561063165188790107604849399596363458474673665461551487868423313798646700899678539996720946669463053789709736711656411344059106323363305626637371263317439956012649972617028139005276943016081262330689789502782457608310999337234210809013685134330137771240396871614667335687920853295879335901203898105056314828705171913287798634048009140920970335293063462548425291359386534115116172266081133014758111570026241064299139957773699146139662110318004968166008589338441157438542008578250573208524957243685888967377272000462422750202120292487109205053048876296297264097717018612345573901600113245275925407866887759889123402914276900888949135967830349592808911136364478188386869004014278816841594363117973173901356551682026921691685991334849014108139633577743760682929863541136215874072394903462393651650592874727308137226430568875314373598816311358676319330610208623581343375729804750692113648544856283112182755690233297470479624649941458407523025641558442855902988898414840937694026353874094950134907914448697093110617750458765398630180319223903213086417743448201850628704342626424519019821822531057852926938662032724273431899447986923815018448001554896115433748053811744305687726571988470645962537780632967543937686307984648304673849388365878334896040442233524517325205714032128188515003138211331660982104556163916178672143255317664488035066513912659720739241254956316435758713314811033425311927946446822260422531429447904811277643636648689430902823195445149420908745665594053765101135231069598592436526657552065620480412409245672805855880671026491800404685919075205327705683785867207883180556788105156799277072220431851038588512508037498455554997299348952852611297971881189690495618203120970963288858205942405127512831083251722563532091055709131133444692616754213759773428510688654293133198115789880590274626121279761732409664746739196898440715244224358149806981021816547765586169082634731588064514941677996627783707838116075515187806714927841130000696308894682171712915415623891619401373232286928327951413063667328688540247320168766193228389295126987368400820378413901594675648009321087773414596318814808144151561574175545637582051589741569866818576382788661002651629923857086645475171647424658881961264828620559759248373141190611623436417044920228886236459803800157458541572353737941209660869752583802285762847490528719057678872193580627193584850689631543027871714867188201056716263724936549544461074538335906314613052547686844257906126087220813867318220622529830952560584064958548156600212925297292378444148155007594047609201652337118765091139976332743795321895640753262625068747956641382127036416077076508821603151545840800090508148360614943445405759606367189145424823825729804398927466615665547930007577665555209673745296262332724018790263702585528990432177362984671058987535594800785486411064108714047208263877383566687567691260940355490097485883930162958157162571297423978790152361252317738583675762823237293641795561351610034973807960403941692626854714491374756185764098895038035099172392943597014499694572657488535185142743027349313701713604645603327396344764710818783265821495041831766934665056088989621978403990879134829158818151164086001900795400356585852467200242435943290542005104833955664180005457154501343741413194953791731905858429087884887193170030080013792510702881011588135305881582427560064310375112679213392619528698870000171547882063592068330700916854299100435276359081677712832075760352057371619674260784008455410897536427970185193853987967319960642648192373122835294966712044697330607673477615135853740642221590251803209212042031386725105716660945293978309203967410271764880951529503663267349502549412928813565449199266650846744527565260007579268730778065250831115968529176507835038818074377993198155201998520252290892162101929996771492222855085586113239813766452924879184174379339022183851318279375696775436650890596337305801949046964891614765206082575014484287831547276544068322550320327506602087383973691028183800924811650578852205827477488717225419845213100960112703952819298135759654263930078474148738460691668154123504011031771789603789302313634889639643269744455883410448439403844579002620817034794397554383794557372531153263338713443856343975690684097822080892369820337833551398503435223473005082283576089300987254869291921102922357152912830487867208726866493072032092641592364419058191909665976835474421329876154007362660664981268162954656933682232439563688431953487542278518891067752713715707787307470929341590363445714863005956563688554215288802424332885115512727781508943203114954048181849137593488328681106407396997806053749799936795868161664284866475631318718432142174733235792320500824207720408603422917615880041740119762921732433141248541688970653462514502777912893409991555539166281730149707314730623302036407444106509140039761096286390874086896310564844337480754623285527549888662050798488648483507846950086686778266542248489875184740762019155077785758190971150613311061963639010878846034110817120269304968967398178228434400094255739677319976587784404363328252830591453807123360843025485291049222482057552231691412928280930286044921081070241261798013912776204551690292976732023478314559464954366382361806660797530138007065461000600681815872476571629962753959891799645983203320708393182289887600667025830504004434629146537654307108583141786923558054862127911586984231653559261258551046527477648456157038154329979530531177725753072846215631068055976342551196670396268266715389086598182085546277858207189337562473597921254777616123981866066620929947326633677241675233849192296495581021606368714301450576795571534902121376600164687295787176627558802817509410171910099367719476897793916693770963185002000184734186421734073932715683355152963688832759248294504045286770706264287841219921063042873916900841995322430894677491634487581208173414816059157538117106647887246658584438946328097373734926451441595734242820443517104468545137496824654168408298350568406900771816679943687364907953854685906370020315847756832815825501341080662262209669294719120915647920048982793186471689767460282671777401427506016410150646893610261394284967328647701785962261718680325447636385951665716976167570609300684864093214486205323030678230637418755748372165023500988185592984029295904765363815257902886671031185865476443811897034096045685503883573559492271579674048971781643693141327038993605349283217485067768065140453833000429552548880965911271435675770524171971610697718396463768597854874403288398720653987999521311848813650174497113460076878010823891508552311591259124519119656485683095109546274037194656494711525564594412996487843162800324488675306807339256542614651310814092360461945016087896571374025887311541687675078366016318364041223463952982032230618126407890621074476365281591602356710844952352883262955204736076578857261106705316227167526466361706459653763306244327292880227546762950214096929534290146807840279806361116402540085015355445628580656848476146062607000205221919486293771498499485495568471128161075142685636070494789843956219543556558053103677006586824416402901963325262841078957891305024536676127484025400249028794958846624396737798831719780029705476168957116141297693365668756320267069755836905560154434695944931192991947795994302740682324820399923270690774052381918005012082845666050524658830176957088613788781286172967351022040397455018592969513525261233606393365815467239929920273690226700922510676456388212950367950480358781334289414898253829873981183131833261132632868359284378920256065346628002445150017536693099270152925665917187721863160238785237587086210352925786481962761142968627959243582459894157476381300034011447590888837083833795459646645045678302078884579236766687897852454950930304300056675989251110147111080347113841001220847305723234165005320059496754493021081699812845585225650100306586241807025096484415369507570249128064591553281748453322167353478833302745090108600005784668983779411583352800628543842547730846581317304748993582804257938793763569455368640352330842021874720377631600728271069164526188626606634123800722882254909689193720945132949577390431091579917032788608941125358607213557681195405006095270339165870351432566045754200563494679779753694655931200361750235300132454121713543519423277411042740118458282253903510261765378427040977776558224718121704614523191768563068796918172644741672011527115499118181323165732957374365617755800533107818558382452265919195128200151555838298261718834825562601390161671276204181486807138210068961388467663276364382779140857524427194628336049000175775892655469874971448646550026665047280424962054079797979931731540278247117562230414119457808681201775347641590115307289877511661625320881511820343596112941205624694529251156657648707236149510145062371280530994312771146518401400578966517342861061018194579795422207581868723844967988086737829568615357975910070583796349837422275964625552006611108808441036081908098566381375267633544019806613244536195155167914322505890775194767343996752718216911387798577334756196041338050011151810181143364434619696806806641485357076911338445181967253098451507397842408356744450201823474205663983385126619097741074777809668973616953522299080778127254506881291075859598288458288551386384568007594689619253912186426049101900816548433125326256270383910904410720220618856353056719353439862745499372483159667703107137322569406607641259981681844358453596580222636152363562983603607847824216047542631078463388889566228393692080776728712107681784092846902292920983274335230564732017961646150278562800484940617431900583077026851117241131284155250653546684227417724914959989888915989603905984229952696751302416633568710289968882891273496256422072779605891184257269632890809261777259541463750606785106438948580980146783756969005420008053115869737435560010762469708826493967065120409588627563524678849333982986023424033247021289433568442923969211406287565226121042825489365923852781050134496111526152568382580778804380268544916122889430299954855882848783236065682136392699831847538404325881630156808614496381859668722210187980602889291864519996274894565251018993123762065491588343068264077522456395120072840359962479556582827458779455263793477072524800345475201761778753653421083074934291163785556822822180421285553386688010432255759343097952132116667909481370794111336163464459503739463170773821276545810803300391809424193554270299048526135502648636856140095146109389903979995563413559983280143891432324390610371202580499064835869756610899970570091672830293227617925780429008569910589135921534119796781997131427596813715317480251635366235810836256457346552775454548641364773358567121946790476446656252671634089235291029567422572302436826015046317301744665252038395568402644630372394014095384085257895290157632386055929897319226380460646185931286960881503620185020766298484222570283448127541506034031131422412393885439515024631658071733552747509024249221223227492322707526544658204891015315408655783186695286219271624087787450953381940445097998698816916121807277884279127898143149657353391843413983681682718935608867131618462348998141348329270536919373699211355639587809238024868414529663423539485243521359824581943451154419639701183792282390884085430155814861132779730703355960363794601394001390009333633501946815704902657378653926905128179082412344788769364148899423820826186119268543500048362705370952394910192184576765067548011006253356180123356595732456424162993196188748738464532868411380306996968857420732305973459086572640259098056684793736018809210734902733528398680838400149048492159678524481103782176094500729552534747908742609200529585527440209583272034843207801467704185559478756703498216413528433520800284032766794923887568631772982180616396566239727125762961677243256535841144959644542175816636076314667872198996772130090750136979069979769052570843887490214638440446038831515209389377214541006393465451869891814768401786682324272913225800348802095344394210278790321722307427424301219855660818403820333499924225039866827995652573687950744293289832245101242540721480736189984871149094015842511473917866975512646608341906021423733271342584436271988696385182382206648558132211228940354142956353506692382471066989938044879982325826347874842431551303907083351114803027469378829601149858293845257198476491076352701296295549928605408478482818517927411016554249284732119316427397362260524533208443356702648360359298515123722226078188316561871151790461680973885156333696682366730404444046368712392365832519288481659213422325943746798998260233144436949380590809040627528552954611678569273883047142840973599390802751263945526069135438859257272388832064194442812988551762065025592696404903230437989767581518703215130791694960379678676801925412723056620565906247176251735165802250039807590700791178540759205823755375249803974224927488560263432688595477644442253408413566328547260336385094150642400517775444615440633598356186795262892278317679907235180885523516176976541089744028529052004085721098678883642226062608588028554639762781012165626913457981858397991508042573734243125925899526854224794344552343534625985058053756532223135784404888170317669283957079814692764378529982516766737496595435212619838112681813795589190062501643780039222185276108392488106204044066067536252185908404844634193845333708937655075949711625948496867944841556627817974562606659319867346550949068357104924382695583334694856911324301091535285451091915294018928835927726830000688787476434746398986305510918723586210866141622988944804571230266665725603966168577164192006584771991053492866189107924894711248347435518915678547728360306041280080702513324080934261058358087521332129570361297005315829368116810891187404256130210186962857863877456129806718711138506112135903061950986342677770514882477603852700647138594493280128209513570776097051276039027981976278637749050224492234089034330197349156637348381474510982554292525813693712427294959623660089820621571081311355002304760617393864435469106975301601510150752983716150844947261925748350071547606958586583620919947311106101995849992361314154958605272397328831089370145216698917113336717302883621520808187413274847073318350053399204713430028059912365710913271554892406650238940998929206746611038192576187618644317802722950755904906231143145033440512206954559863882078252095403160275374906177728535661573201840321560579407331768512887280778916710332775882849407527750221327323891039932651191636746755638734159386498219610011129608290084433759249856322028882359233302595227599657817892276907390431063308601883395860996521870658337237861353104685958156091471529229802477464298689453607860160075118398016931223622312089824884901519143363713852261175300767890821958440392332722329301869363785248733398110196490624371932235576110249875461517885186791899281082219403420020888546915955984262179930666822213705765499479550617106963478222575877990231722248674100787879879498644043059194837528403324963338979424393679383179938701753621021940983133724148605641115831286375559206939763374996038379000424361211300455201129253876145506896449584206610401820151104479249712753219554527341426814571255370517895327792479111264937208048643504433602333147718120029487393936022690114182018224495104902694617442172691552532675567763256937596750130686951680249013424964072415798746610394101461085036537122817276436754833906103569050592449660275497774616370982074155436604818441037109806834201458336135125858944954642400258871760647863550611317343139650340011290178851253345619704420330902137766952616381778537343304704536759857163115000302674075327365169565960273459166502866394528361750577882179934050341508090521803440176711766894117590635895723546326986148259344661140612307783640573244134116740838829480414969422442765599697625798001171137391739117516581670140466560901247266326159822675014097880881799635254074975420597907686285002818182585853038221697036157202598613938099056661054902696056031113698441642216378035019820016267879084639318633726779603186844975433166149044516880542361740715266612341072873664046755789370801273588200997537286003357552309645808915496451492991869726163654504115946285364471107441775744400043466726155586201183031010141526159374003367115502774936518671491886426540626777596523113932184780710542384525902325299238257895126513164440864527834530902031982091417605856687571657788631032898168207803527595245547276083364436891685830938852796933261642952697734562218129048547036940295701420564972233978485325286048782104423881315915208819252275413796925340649373181224687515169821292921961132376490100646323876797295295120781356057631289046693824412327448439182461850282374864348314757902500595149351208530539954470482034132238282207538315738103432154692069318754145714556144703791133670387846092716171203423403590996249963229735966384907693556539134122226994017565829268607538157930146212679409048690279610546905166597658744404749698177900742779095816687189843663521423422524917009603722045495787437582213287975346154838499580807731863454682842487455510276922495675827555919181657553760405970368789537138672642092651366280844241551141899982364264754969094848078616177131107057128563723175367024685686551408002562323514210161807166933985188428257543865797911427992645941632068471732876946018425732860440814543390286746452785513105720677164344836655041763119643811957007149527024862234746646085803631836075208536845862162213738275795281222000426769078403673770480855784428103797533071350169039598865932661269535567692363751612241135148070199295406127575566627069695011630919141736181565792111209046669518106245105739963347541754431493813315263532525653176794048762226670270632678293426315303685092244301625920859223489840475858430956382732657050898008202186228290103378840578042135942932066534299286960766464004511545275414652115733518547118698511420624947745897311761179526672431914073835899991614184200302053083468990830562304684172322129374557820899306198049413161353823792722330738044574518925211774108041626011963521802020811446703390619021471654217147683577990213569989314723628639182026216470392522426880954043886523544954264309689230867130730768201524078047833663092420118639543126009844596197111959550043978064114936164408355930399736153254455077267855510100953061125659362415224136828453647561251227066285972696255214088906469562738878977742532149448735834560766737672567780598279982714759125873514313534869703083266927625744055683192229659193629903289295709393265255228452481086852766497124277011224245562831777415809335399126876817368800727351956285943800796048663295053685629927280290757152267390174293387868809373414036014326848078171589193345475334103990361957511504462024811126312838445414938758209867300680678934319671757702048420108827631360633260881248559863630368470717196384503254862617177883467986281331653345328917438669766268850241734467911379830397247058306492960342676649868046418072257071031185591199621903368782240212314348680467735494070053661295735556736558767956184613088803155610081142774413860427398084282933407325766196187821666645024325478984214201147207214890623068775052203560530573602370166216647525617273434159619110545657346743663094323709185399231809270077281645082214019760616788414594924460010600760556262937735344884705575462522133837312416453425318209647808998994733398258065586645210682058480510356380237915111294139606980096804090274499366121875404524853685583965584344100517106717318586143357539364930525630166882489131800771524451940102034195548574567610989643654924465092165565406348191400401526274149506574570156917336546844865473692849121931433004395829742156036098351559157496559657895405086910013808842082366022690524267036044940769526695410350638004193727842580036187315560805587351858969774418874741630763204815627314746206228563827037701464763126300317945299034037491365721326194601022678843350685635635000968338568145525816348519568905628919066533146422834261558839733785175527913921632673162757803266935877897538289682736766938558297200808075480583169440625814953382779884400133135014662655385088871965325028500508279226287599815493697352318806461572624114841824416538279813810941553363392731682142414933649304455078406029862019028232016450977976202357340806613087376485488843131493175661154107125745497598255508079713558079543873888743852483848103239347951083484163603253672914609664706969596137574923869578275959080607423372978442589613973494349247943582253788569677741278238757944058550745101400396347969648431930375496415509952366037312336407350955113057980497384116987722026917598950494721616063915162700231838780935911894308804375535601924528066030989386829513960489905110007343681091143069452788901737784381588719206400447212538643477602781742693526907789284777118404505923254877564099528332637244433756634493762358152734927520666878416480313756352536078783763012984134402473983256884686785376593243545375524476098784030094145389758368008052484908073625175486266957984396200556801419245973693786069915902239002141872960950721593425965767943396792062129193996820904295104739503147518707917464227103611591961786038125728662526208853708251622032597082962165903102630165758181313938795920535124698757478954627738434425905243776739813208893481243819127944969748732753217464539480192366026294780327568614551462269236440017186443623858425464592615848272947951174846891255129625876592761679120946469469737937584469385608988211992841093384463069808206061173732223227957145326995568361638811430192933508620785109270283261166900481155227682446666868337946591107630546158929757781318405249226244457679688196054049628988280702179537066444324885477309139516694841834622620770131733271660054524583317307389396004510300202169509014089118403132418577189547675824375494320776730293353793102094805466150575754473058258994787344681074178334119209116551122995396484221636442135276298401529389688565634614302339673993973169565470830049091656837827195270990859423512617336323882685467033114846150423752874738708550745113421961981556761070375765330023674835350277770617902726095115365559065325164460086140623184761264445585405925582618625203304694499571911056032800921432338140186688177047860073254448233975536382194065485064990309780884905386171873434493358413867616262881798783672038483344701291550147153250754359439173885365023709131438652069341036477396470760333563477934757844450810902330072178884262694234942727487701681678050407880443043270666205582924201281708676801908175322618176278704366062942800210258133755734921028471306376031374723862744540266867248652878115266037607556135635328130907367619872903992675217717777338361858094371321791736706389607355138845929427144202645943399854158519667086945677492518287952517789228810715081632646190803044346684442112377746339884273042150151811237895531629327315828046122288629289734900413778507592889518299104780235112608999307685792596774615822098539468998138546555367793438351493774120826747760812484107727949568889026115393449382031966350268346489337558458355230345111190832543195823729146183779439553463387562135217698726295507940026321572536847921136554991095256215747458880776705347422509385404968021314148024122485450241608181067737046326540099839248447444151893927612171191401713805126700532365744992611937800808865083962985789014263258502651812779901625325796558705026883745872589130559719551646552610655070475465109714777340320221009435311279828137073367585137058112895711575676372097562966057900037372535251060535518307430518123691851930559826786769312697504736301707844945086128561551448062333046644913273212637753094746681884654490501294469262106347346666007540079678542072082343329438248571221808969494974851723695960278952663212955886472643929820184717393624408674195521858147405004663913400708313908230434046721939999835666361070217670022603835509055331470490936534944186083742254385874393570462716144741171331251411173280264459424961635977818145347184388647219080940934413705628853602417328015080271119950259034072130868191625578344283786320939943874749958554512402446278055297554517577450132345663422980632825717055328766306253518800021576722169246381673415461932173807158795434482983616432324506929922717656204607601744687696600767782994824429437139423442355187712115585493741284204858948355018152213201144337291057742092126987859335091204217921156591118368515849989228103249113604008094455222628612938928824782180109450481186780054371665410552219757101777661458614796520088878188954837095003606088613545584754362263458675776708860062276655799399106131613793784155724555777479296124107569554888345667718391387881212544088168705578266777466864258808064344424123615684962193810347351006912435187152408206586256472825378692749825231740592333201849163787344257529717343365654132996087732083205171012879085565528521350073358659787166699001039309802296213905183047704100872120445264460708893832483668978995431320044550488928904617118773936075187610214730593743178538733061820050943365598504529134410661823620170921803633919948491509340538936782119170740271517234292840887798005198927361300837725171991770603765340279497807756932072510383547651087369992305320511634262141379718233499527836720639354145911365219970064610041004916345780793741826490707755589398405095950843160190232043518825772274191558327743570017739469148298447958138871201180132190023656820558269421507463881983646069336415798389695911759149858121766633351885957965698197988673002885247280526865264536601968973742197433088017750489327224881316336330487437996498963392113508273553921881884585496639346772732835735594255219632544510859383227783458961393037168276463420835047622750153263256337912205465234087954730846554747693832954363788705400822717604797890348899523942835443314431097130865289334876076164475389198828979203250124946629274240126846937324866432153025104394251368721277144886532285110156575721453837857137030622612267358887627753376981801089822350043251310150367109403284574158531869646575100242906175468071995795744510531789347250132044622196858498424585690770538632399802361331554344065215338367434838957742789916312324750126270952932903234185402086805977168380737935919698235777677223837499775610339795297339157900073795214503066101628559103695657216273021641859172590309487618749700145438289063416874731796870758366466538193427791733782941649193293877951746676577871107444378227653170287631639078484060997190681702487486187778820274077703428827080230617431474951000244456753119309912217028864161368912396293264934385020197368908357781876761750900531426327677569110739939242397503489106272377758657074471957076313508380673583316847535812965368043955042614922584409718133321862332108601365925515780815652643163811866682303167099068993866160702701540252507969244536267378327196424043974982346298638695637190186810398704167122240084803057928297975045737571524805484314981182401421936886370013787827164663860933153033095313392377871342468899761256497244858949686014570484469999314603106184051156391408470304277220837382860606024406407699429086590400844786616145098958477243180469256081991085753603121752550852659697331688333465452020155646842802258359079271695977149771183180420704978870130234260258553317459949933625712962454078359808980498647744753503431270969190615347797459821845920691436092126152638186052178740936407389660099070296814289961287931585139488981701678641282939749848135464395946155431263526456059823346702585895054242272297767588621359678436762913534376437067416554145885824509838462340818518134078409742606253495968847451931690535366727290431545995893097227340520040853346108361579277896430327153728684991240758498364752016492216128269720634067808985331849185469165283868660608005770469360437370244010221804332585169756825398421720140478184938728343512819783582113073604264945281580304857325964926070162366203675136993311418686382160488955718859117975096456641237853107239254524729257033793060904634238573791227368457428337179254172997126992514613356027221129966000401226739628045126245971508088906651331693006202621358588630026520286281067361184565669806919392526845545150534589237964386361691148757108485073092543848088713780814583584704882202482583943659368049848590177150024218438429730137159460499097457061955438110613339039585859563416874503435130908586259039277351161551150501211711284317016993835296543813133291701096839030733251290296671913548104266342304639539438274209770248715317787375609153249720410554551446465015240034599871877073140613439191717436465368010671256395116229564435539573859943214497059759270277587903461236863573038527559647976754825381791421616330975824664912899430349556170761320772467375008817091497086783837338924468594913881765898310441921739226672247036759900242774461070320897734742122918612485852874872339622392952505473225640942487902807698129895240374972615372460848102210004751864469888777736611786900019876201541311906253773181463020680673457268303272590145148312436361800592807354378088667437376735737617422534072367506209828891103814659035879943183002443596521016317377464107349058675403101641204341240205748608202561731452129929971020065921330562997709480346769326055038078663859334208886920125832357673104249506179303435515006947455463463888584897154706491603909707471543713887120443168227446618101389813654072842015257101939676263776964254484021776932136516405805401768821562986097531943001703497247807621847446679099605282426096799331934778941181641275029856969893095086999629650279376457061373696780785534430766518262859287310608157720602314819376275948856189918027800957995410332062741442972905790750344805164423604452187486030061459646817906045904896855746855997573924437231366231126343207372594868516265085135704953316138625513284824985347014087347981938551358253330815957729079066309091894106717482885256573295198432818983800477154268533336090493408748166180540260050168624277793592455469413781201938826069518733466215414593751645529283788051555081903172621734938839690806937875433428135120369397211021302233180274165796370965870618130893326220633019115797792717623951097544984202089647233653070244911174917934431871001383128568052949801711534580967057245882476003920043857078657849762908759141710985474060584421873013136827798148866956386154676724134226741757807317910001240997826908030915424685980469271309200095997729656977848970640208840437667796468850211859540272111112078955072357694013997536352414030587652974689355424010975199147078849388384572827690141266993782092648883988003305590777690819164781084695268822209603915164755772262594195891752873308863430515464307796516892983986450473515602131230068331337406277728204488574182065350648755587948385377492329747707743758229569757498826197777365658253787028934546581836088319108787900336495224708358265594600709569560990589174364824802483045206618601107199490934593472605694862690214166863231269002023207260659360257310034250578902133034105888042048801164094695323663146657004097100806734981168341403502709664013349286128462047405087251555170395935356534499753508885483725902228287694445278771066120648966736776839855909512001169043126128991974391373913742345746903404972737802138518557353220116615278406010908642328524107362289459879005161836411639086087521032852623387265919077312955998446756539473856647432198358871783856863655279770833372012911199594945842413779776892803708202573213438283630976695645350644920252619232247552349190677436037800851048963445148661661882398612769027787821685945891692362722701093779310561225115474439467709598375532365305609562063679801409540019606480989992353120038649510567672163641585364986252195673217880588372124119912258538469666629184285854232846789251800665240156383250226166849134904412424051158553248773735920752359273840761581876228505142825566345241401596106613867250723996435053177211131080287759110976260538122156559106651314114377711369701841546764897449519366643938808063792806088459840043553364409694105691018358039423039350522320187793838900457650313282849058358443422563054145723820341325721913303151976041140634187178174792004866248055637752812998824007353855634822046192925467593059315229893529113970699542028952675397579072545431460478661886450215412346200124106532645098516702435701431497337799813248154061037380286377731616460847939700796927101229389640713482941904410662522045358695991017936502684507484864726531143417626499596340411967790013049417019174549732310469168315919562148195178036324084550439716083419176667177976734128595117129149685405088137739519046083017000125557068710139343682498109589937301781932372936391754430590817873525099305425206584031175360348891196336860799749110495121017908501631682683458902793531693313568518723839478799939667096278338347905728550884272499008210200450379543054618368135094359321868921895005518289018917846244943297132292501224430422560553499452264185993914491274470542848732677535112388669787717184577199931613102678978500266753442669119800720950344957721860554251231428599621552425234209624913845372899666750431240343030932574700999063338100394875066186701868299162424653864716277669910038977816609379972829212366198162358909117947610541093421605728419261921555944893320838156215558844800854370762879095635363902197159726491241352082469295670112234433065232715314376080139109111607832924233144605731395882020983015338143968203937938407215096405484350605827171078221821269959860120191429979445739174196811352032538845830645660646627809229590951404264600423863676116009606531150776007275542075592410736470240876844753321491536689518629358982444808128681659947802725571337054612221051866484999895587441340655872165370099564900474404917968332983793209661642017233848137907314376068684804194211622586898618673029837224982694406698900446223262270435668551059006220841987448749284322996995708416085524327129242382622347381724712118407930931780459044605923098777530814535647741569277718745570223763323058338777502627658589919811833735639092630891012079809809990069456197301839744435747096301144660138433512831301424631909858518631224960039746320917263382575763555430943585089114249744490727450413369773454763448273341751250750170620639636838875222654355473048224571674199108712994983903340031871850980881003197541371726233597876740895933129741105339667277966327902556037225757062295197367082986498230006902353431995189837026315514545971643800909477562613812552611263648778449309458124552850549691289732394595226963004419647508387067798554158409394621111183543860157759831634667896732977456501419430847038925653715908945981993801468346900529413282263785626653219972741849644455567964647310885995044977709155450679630967774082707951687753352071481221610189684465920080361905564547851498884540108664768007447121821591017069704116889547944665005445834420252382913766572700089612083757500692674772304169162284895009271764184330866521117221205430396525792122716172837326140435236710450739011013131502576688587757246547303608384378018128911196197894703443591338465256843024431756129057813808670172031833926398772197526358237687339435872643702918076368671706209000188679083335997685470515373327626298802704295473203303246740563072147163108638016168608310998178057541935467045770863435125445515657460672094372526388233533596181134758239253126346912327505935384005036278117265215600455054620663360609472928324332915367199212645209134134699136427060163124017128156061182390768384195633514313767276982747143723754479494929629236175249765373700877102338086731945880174007306515832282510362958079000754504751140929092350430581513101730898043547079867790572452496516942950985724184823837413573263053739203001776382838318239395552833533960069045871019188517892765085342005439854584111725512962043707955831221891620333862643444554423523650458172622077339536474289624414430573867664496436783390988859423541299569243753029953032800368462463041189173538719356884900164768721876455142820162742734415559944002726547892437909571303736485054231396759904259051787054899587744920436704866713859566008388333572442949801807261297394747922522768799088129638884142796737351452820318744323078764806595308062218607885029392365638656731396751315030764966048523427801512308638914620516263541515744186366150294706112590044112709652189504820497649559505932812227807665930900174382094517559460126085870340551007103546522348522139225292823178267992857996619291330119683514412316594782672965675773170944213288742314415054311116824576884996677218011171185714763447733288499206364091550904405905022115668661499209757029400223861718389931773240032361724552746786662048569489439888459376666202204154258954490159374352926246851821776678731373075938020474847109168322280697669947792294064651584814402301888103427736066286516848694529950369796750777130415506873559614611980117981456029255608172897091274997723414313111257513871698523030649113407374902209244500065990273158945635210165473511714297950098227051105992459441543213595512284123150918735874804292913163802822115367632323143226735326337322819293382776630991368442242763347163135123117291840544088197574676544379022120524726132866810765184268347944268327705503371441957064907249044150801236244763288434695185080054325500522160313373335322843674406088170449464425618507374049488748713937906905412351270128514164120992818752069814545840126874119479107955925464921962754586280427889449660552558414523188563257082763786349282000386601860220171886950158434512093599567641192095790127873443072549728332574117406632074639029156572444611152202938927735452183980057793018469720648727353468163454458922786440362990577627132516967581224965939862924178603202291147404495386492476708199505121550752544129971909978289996023598608912255738301443685002901615141623500994239576240555232695737797246514948199726449063643115212464885095176363067863620734420343526601190971913878072544448461675579887253122852025893942634647050975604404597329298844770503358485620866192535291915160008748665377778158893886702412975121915719699325887673300714549423308957059124585650801159841911122830338290426223581161703933790904126073760668336149102721372746357991449470238770496568375209053163166844985039748088680895271860638341728622020383997702366013656124278648097207100657547951147656865152584590112119438718801415799746057430611365765344875472131718496662151081605272812121451569022981199553340015272019290758509667510045825464361970076036626233551779712196752386430288183244099394651029754229969944102285584660536104695308759152838983653246174067829328431758931234639943382351896665988572926472991594919940843488894657197984918624844880991506562794540628062801281111356507825268967456637286367162816052979747212531838628524458955573631189508362603271145354803519367785036659698733158041001161466923121664467072414320663149877757141381998010187583677954403694365883523960800991409850162687582180011394278705072958397970175655997667309336305156276430979077609257731246833510264088972383901839121725361359958569242372891138718627013094867401590057026779958342935676649452295305858552294370544885116780927630555583378726104826683357178824617415742937473960924665573905958312538408050964425831589672513723236047514031670123933224107238700374710499167766238424138922849069035375584653660653696309309864233860479691247408595770019088917837543064187470023844408418684857991739710807664804347122863907397366386166501109585012645241590382489111199789307679977341139960450209261657809818957895754802425159341099712209599579405631621577052409733209688316741764290801625395419817291273761848675928866951408821736196944365563275565882216342049998612344562808412414264680745666157645088912330731834300433170487121245651386346332703656573984592735800241074997372146489639331124244482118055124764516114753353543863351680170271278784106875048866156781450462947903522901179262627368007753242670931751318213982487652480581784760754589472015830405404867129368214643789240257929884160384502325484324012828584759709889531884867904925635192312977900890821846658419327350822222629482026111463056468205998631990912516397158797935379592073265514481401947464211269104166844247565215217812588188853456681949003040834487584922220236113460540719963969103901436496277047132484710511241140097843852901787313573590139686876509963879146618513111149462606292863769360901644302177351721634104171545932283856372105881648182750329928039926545822006719588422083722863568143573756097851491763644860914044342558365854416234639694524624263876391160654284634720459354518319177645587084985366061512688810951494640879844857998139009281454642427740422929491071613807476297056818390265990723282157969782827687271131151114942010269083613444156552202486032487467685792296669067404834831178481639010321745406193546715066062895801246212195100856289431453017535429627779371557328037869071772284542496924005721373290386200670655363805417714554122050277984134433823263338905844525188269608949725987264575443446163526172043043499095026111087358359732800721315740898570571006457375014356966247396874439192748084932413385941759492375654767517875713098611048007383014767558196257115564682136059461742596063365909454780035578096945448065233804618669623171192678271804531322100264875791807789957705304890293610181689622810452713830655978903885400890415133751758888772878100878605849513980851594104003148334364499563128856367113799957513938372080416218288981725782997441821178097333212164773687950441984070911067669186128680816200262499557887980268405312568117838040780592460490582543973375640166346050988680082782180015020875072174582050606679340990784742185174928394661421229883224490960892631954842787112775261216838359386742390269628930127707252058488143125739671019018170269461013973127339067821529105979676793724710564958208938237435501300148135113590329287699633991189465669512447621236662931060037728525059919399477924288993947743085210765463330733165691531102540336267111043500096535537686276571947633512137355507096862720305910978438733196136930857559660771673253504102257324103512816797826857766339208852928227155454230710250444618747102963298528109088063754656174158266004244190062605375834967949182821413355365146631463543908527908742340000220360295472835862927567427080494248001187810868707712946270137204303208212579883421832511070517759254009139279681080618020644603079126700604297566183905929541938041792518098494253444954700864777310690182255692011806127039568305349123647505437063287197541472082885208074651750564165331992704619445745596634503939371860221289865483507301857300568199900368480323315362771496099667068874556880062770448081939446063586492433444483499653073521006221384620248675251244390738852428139646212811599390953421378995572404255403676249793058944970986191059129905868024690143662763149807668997564503444184398543261402927587586015577341572616515735497761828367993097448536891327082696335098956584894494958688998927983885774779095990577659768422678714392431648804779342642889416748563969051227132262614952449066786935171929838673381002238396236814083579994629026091738884822210389629612713932913712109124156901217695955942508667059705655568253828950775428554094888856907959673540606657171326487587050289920550682140640661485349650283838079787980385821904464680930064606836019152108260753673318277214844130033499136736593140592598558896658354495359727384063134110756246476930195231654827718252355516252940564702738897201995014445001701102572730011751066982895580293357120490034264582480909596108407106049674112606981563997955730422486541377018809687012946877132690762898325930330452571465930466868247902657506127697295148853335121075444445192396952828811776445182707539510437572395864484342154421703177034861230981280542736552947603450337488020070805235772143370534054641586607391099437616888962160986394918676498320983039249648996534326558908402595263627463240580820016852137945087324645166109330081483853852026239752331999379456196426946376569018855732165521904779016408252313173631456058146006389445994447028933578188695463761156263887150881056555751753499192456480317093128034775377930374002071050475991328062170516007494034777077785426200973575522254631332639377182707150377813482228737461560308003935504635042700676614728818489688437277663754549911006014665895242785722958758242057657323798995770658530499941373487487813696830023655458810044706708659912041810052398385895932753960306749190107603590262260560132387879427372559524207874456413760505590056778177301704050032505910075274934299750023038541977758399556315362847674258037229922427856936670091774574174836761034010512460675614221380080312899136732803605017388101260234496360613163711925915427383070802867990713366161218696620787439046425198979719451237239366071980760250386233980614400320648155697625689795959209125474322235400328096619005891981290379267976097956399610472327380629760800928847657565608541400764318984280339949309055567402999741059885244783611008311898007149171461684589866517030842026472535438587336536361773313417978183871984947586268983634906824295691849911664392799755671440198056350671461232756152267895092793846384410733148728655675091447945212534690428603529524257512658447712887531229813523691009855769502392420388259483829641531239345117495052046601418802005734605420330060224172975180554829055448335638712349162699812771476012189165123995346741023136902083656529438205182758086823381513918902760986708404502307752520623055448691969150656196543594638445104564429136646193597517752780523643209713659811304299353852309439680266799449479969677157158687890622252414504752461927746741326898180743948552668834225175488595591975321943885814778266072348308990651590300917264249788616004510758762990718305551203493909886325880553615909663178104766670973229353279098633460130932806629182822742127235723933032079836308005874659886827459537287358570489282644197410946700448080374581883403138132276330218466164651203888318518039579054072111001179595199512522002294814842500966178596605528554719194507870921147644581581414798135330575914743575061523632765868790716918876235494387805101120393585955327188314487388969716046828920659994951236263992441385077692699298959669896217767158758171615297650741238520972570476501314171514761188992592025473453118683051984086782249191139838219869368816931404512757199310218943689789860338539657580819524923906339319887011574954659365510254827831571407811411767688399708957846842344230150336830182811216312452571125787067199789856911425901706995018733113740485145177012344940879462994229546469286802910505489857026457484177320571807882752292648521351262073073017424782034980040733758236923862200009558023447786698736945534858749298112282646477420124600345171317002092260220821021293111808634289451365889264251233263799515855070161582447531392683712134153692047271322072485874856895980787081468035291510280239132958688055155442663994169897145135482902063326031962556888324193795276258378701859232642548042348144436604560554476648495802272288339445561112860581823165557065310084604179969966198443799365405868237251667835140599065616409887675714136419540417385476178530951434792980255269708315989228539242283832081139586481627197415273934447509122775993277352634455684220196872768192919203868078151874924491232357984149617807714721690354342444739977371511107041370971947685273897057979734825352802546927496097534792103905284622088548600715394516664588719546577976068418725185447228923444511090410424882630270284771974513361012775147114532716296488290020170629901397639026429048623482276803550783452361806829540902927160391792379393431910311457227210921873477902375492473767527414355010604417588271563131379890989980220549643961232717187263475206516958446543826865715767061068196878096110670763209912517618499936158715838153390717371183245844327330060362252180016363596530563874154313991263823731410033829503846972275896342902445348964896435000696997501639585325327424127726898254375985937497918151858793087030739629351521486133940967902764619684979072151220463021757545166730331890825867803120534945364407295933010861415996182751218999738641906483397189246723939558844414890300731067967432046364723875268091351508710776081484030000233461505247270594815166741169626582563676025187644824270752355571736596113426944664043409928565156837823345031110127575281424379726983008822829942012790075415343432922560109075036963208426312032558694443329950975419638770700643537501407796672045146088495929067069154664804242721687356511105492930605953533814092581919256396283112515264235724966124724667359942688095323819110962679298269797117227475844101103570246404372782177819162596692477077027623249031441528232653194035748109778212941853450363940027471427234726530240733505975944508946766439237467196252430932170300409205119479183545505132011710951419762437095679025402563137254426995622154289202982878130689247860609992247687292884905001102295276048526073020235034732545963863132965470315368631417074539225265057025471263052094783240393397400295179007959237629354411421653442326986449841050850219076527945390094552331403235732564352965870647482588253898097065204001532226488227200754250190475608195872204067047566045953303848978793801395827696247699757777261125402479213119187550152956804491437640161686299517749062982663661385669960338004398116880075620158228924475635811450792612062466544172880113070701510764692247889092881964808051584297043865559086876558194013682509626037806231324634827299569233429352089094584414313350648183801692086852081827106346285675428785035110466044372568940346523230460616433270401611437587929600330056601454575450493370840507786962216394690429951611878836224848885912476375084202894144705289854245207006985441891057270934439572516036782158890716256104610096072821779624343522952318747378756763325591229636418706542296826118193737815801554612451749690285723104445232413246972506768639565061375218860122553424777399401028402059931212629977408329617878712302016770587231097034837092370047946674968403217455379295755770499484182823824683159106784298261436961287800690026895729851197145262007842092840405799103010210548596280575634578225171288208747236249394086351718000621851617594582207094800860095032459295993578905586223721290558062597659154151243591416105145670942721984297608826302946325037605100467199607264587767894923217495447908369344376282765582713621287565736204285960262309278853491593635552421892196057111612459128139113195562249027492900309844389886155781357015079094264645849358607012590554395859287005649536629225464536609100775662797650418088219205167366973060081952677671503313882314979761595042038271218115594287370741280890412219103732652116768701851348063958756691031063488766346621050651671614713698503896368369687144124470977131192011558092554318438179986617049634259389025076582089537491644401302093797895324001122103960356022545831823801958729623758164069831515318179248016939564781917224357495124362222138043772975839939804686775770745077579360017985329147253002578135054698057592792775017163765769986812358324809259361194221254266369004185107509723142951183821736437557623885267414295651174684677017590618052314485127849364788281033833939044219100320993163203504207840617529727715221798322168134357078328299533108902109219540838903356183957806163935606376208666368034708255531683942539324393318604993551028166326030627610580430922908722597703146295377092582594082033412395687900795889483798557851918692478672652845818831504041022132087728608582996018995798951000053232684814477139539888895936896089442584087640181663430729598717237127960304068614948811112424577443073250640762491974458318931709363922331260055629209518661428520655716562002437353340699902798159124450741506405627269831766416733649985557254369341720696536721866963603249609276120594031407105026011520457048337436224541045458424554846007664859846508561919718655623105214960403939718274780274960795196224048798531431983797877403650306842175815780722934255673445485513642570617036376615514826833095222244515162485376819940064144454140954919798711037274301012700605252652768960153420259118364498345031852844015662951653080091054183808468004950706886174334879418483333654536876371431609575306830045403795684903660258639621924040969522046799710514028763952073510409372124890002458696974818822249563245737851712789680930729444233105874043680516945028819695389370515776329261851959346711047284165060295951440094165419898250353006056387715395130785870455621224100258738958121363044298541105810146156541410296951550715902333759224578082487323867830475904991583544483099922385673941674971648699309924150515553858151906254888423452683495696783186637811305901469405720502181277362892719763214246959608250843340688351504217961512719901447226894499205087898703370313179534949494975375938258392374979138969457131436736102459164322529415811339304059234043915042330302739369423099793754916670700214192363104918267914781070009043664006693673445438279246249654832392854654586657868214627154632792964213055235677971328687311751178768528791103876747054610854296315212069198240495368948192905204453677649348887225561967408735730657147361136266746409505424652388604877751132691639675220032722569366645045855728152420529433412803622689558038791981494715857828664985957593401274565566901170333988610560751763592198885804320904404310079689988054214997266495169526854886136969876985154001728871315769808124270564024627869603050043007864805192959621912894432194386262438932724043047009583402177105138061640506645665429974056655134449546885568112903640741335373820967641878183991531556730771567071971314275301927386984240702076985747808755221798634815849197255048341315196822367531414664848363100113881341260819781772978234646724745660708345221488734687546208844257082674147829815592076896275336490350004277847349521657253330075945314804682799111400821754207418495185779405473311159716253119591548335170048434222339517083136275278414893105129445814552924427382634986248085562660764924581288611561228729873923419081671175151076654719043174875170659205520288846779865084298876219066705616381687618411214157407970279821473571098772495029888913034702531623204350050097456969804249368615909437084633964112308982642652630977527607670524512383270582827430290793063893510246401814515923915860891135602019630142238205008262884175096197906366260158384564594176183128112718591097996657980409118802701155651449469773481608628453014080914959755617353573914178642825859995864193304938529326115668486701515406209120487675646226102513278215137851237958206567348004290307676216282691824167207319658938827655401042822013920997448659268699592910501805997591089666190313028789439575583223716191797078425971638907069169780175531486460074382810597446545381237437449397636920443024021794927029134400947055034307162677393949274780651789438919309745021211099021940700554309794944645467959984128370937537200378647896182316438748372075660925348117144163630377373420015252935001674699090734425504654392901183301366800788954881018687068189070434264597921826458485862829167228037533005105828973580610579553978129145476131983670655411516746258960435888011329883196748436123840977090637879255423269057803076289120991319702021013194749033024907075731061620625337489453445150914831121170673237914471268896894545396734676662662451988934312484562266021301024787342774475194612435974839022465726332789200360087027278123048086479796564975088951409642329499776669997240523967002308586516500241265851392112839947638779925397275394055354427766152157822091308886829015684757898299574200229094711731252709717203580262346007643917845525049355240915792012779825531181429786160357747504801011780608969764153886054795330286608980555681628288653303740046182960590464359340020234460411324100144496691906537941293792385164688382211014583120343281629508673098713952599678595040724016756768964553985277442838500194888102360022071592321421817511197781659329761917661990554077745005256588051799486701551248882319270691708451428802032286078681015622523858648381302190782510954075123723462043790343215393236386600087451612140020588004273449480255146370916497320702710641221843984594161844724260641395960156663603281206734831399507283760706965111339136891612725698505097957429835587514104608905204741505724345559206868994388256554710133397045356103710387946844682333023699227063193391209103381081099725026205891315532876539133608731724463644955476017963567183153053524340282370156745595604809302737036469081936334711988412898630684623773527007617258350780400629059380119753532322059608097228936413605025942920462286431312222198716582047967604943099379609458865204093563273475959688378164374829738504605466289801535907573800711973451458578921100274058220064893343866758573499979404123782214942324531867748989256151858946780402475012085093788432983652153316018921666589131276803143476164958255553394464906635113391057915529048136471941755073076032031218699252211596594302855498729337852840019340815109738057127853004941487514223867524417352066784799211353841227884743363689713511423476378295300705595322396527974748940165974770993964538090058987040752683676527820957210095714200644742168024598868621380281117047523195801636215359482108410699681937716546204976303507381788679393067318158671011760177738326637662063913563497303654420273595374285756670502811815033048286016510334745295758271624360767883885128320660002112637811200276514096331992755358376488719660200493338643931896838541243123862062455200850005228904074386546278145623680632886036461036962745048960450176595288822422219279807000538873664047122851435441730237613990116320684452342287394416427965459560621903490668071588506596122981423119858584872233404633538631320985803545388075706889604129926378502032675486297593109912421048550687189430507048549131489491657266312009538009448887928875201451600860824862217885683056318009302308885482227514766852464720371229951329579675077785713467600163609159670454031979652752198803192553200627800364132521366081662232203418906906726539315225150441084745791650265192850977351530749893790731549650258205269276020659325032991201349921251743649346005829434613093934830321622548182071110508551485924981729279693764824419388515765959240423146929749724655676933055497788600766885237912701452201187938046117427956454518469646505936138890954691314420559024134273080018889615927328255743409774744793716254420201414531618155501913138666472558148293230806404222745060659800336508067055204972279093843783989178345876749397013145974788775456624586207003062256512244955611289920369757634077946261930072293720126275304782821789489086785822442740478152673814593110542508828043779055004122171207367553750888135818886858639455481263689677899505046872718809392269234122641946309914660143044216171790905702311690082478326626791779591251970859205239897637713094466150930167854911022597958574825946159586852848051906717800625824906350558428880216140951705400677094099254611179333433435275997290360994224129719662835688133717680891902001707704806090974319802171418040164873260766977797147164587392315605569823710265774724228454785927725404110445161778369928786504225757860576555036233057600469075277144503858351861426924722778357110997886631209133833964844251212934170528361549507978122520761140880304692046398485606650797565145882318507546131993699705272133593467516180342800028034263863099692217856068653495780732349487740269408421141872542352721309986324709636535613062100865389915600637478729182173376769140632114382142244074261864036025254854225978528362160940106413862911713859398423249216099725542617725601404158234228686459058719865476667480661443146666921921310317301556896206397374344808137118131409025241903307568586783519443115535733283511171435453581267880367968005612524489316941475479135695147166012169632212518231992603896245851678452228935177810745098470024005838374269816241997987904862329387107926228476508726288223416019792245959144849296052498115499849781178580217477680299470809827874976567654213852724862593688919072942295282622084331168155398730590915842015932272718043965012836107850745662786103507441953424202048310942102324267181004531791765478119685424275210870088100859632806998427654496769801088495839340334247751338861052119219114111113741607713287477411328863414457273889908435858199895486648264409723588041236126624511935106568815830290708215867519586987984787813596102164842910069883827721303215020807927636485822261026190379337534437195252631883444071244435120972494013996577502191314188579799372723642345907978844624161504108692267713002524991387109789490748286869302451079146024194786338180702696703879733254005092942673512951358735879042875763538264341861307034522171905320493888407407716580642224918604962650304340921029012484258043499703335456892938897788426795410700913669784753135152100585394320861005704012250336538735041704433196837959243017022613487023054229364579350285653088536889517967456490064031060865973881619342200565337994519111575394725952901854960978643933229860585102848680208442946449531372763841918820977892565407087473841624517260924251465439258458787292208522922259549304086101283560327148952661912078264881899127057043878335568363462051392262720010791356454076610280116187379538901387322840861817120589792595335691622563628021228390100114011722315802932595132423938132066404318618924707871513421466071996007020158791262474951257141090034910346914248422670639851018760971076821287527586359624319556694434634184840760642935057781750898962615744069504486728149070717787656854168797771327198521585015803922752898191482652988834276910720074953908379528009293328158165401054687037817305262923454269155363495922886253948186173334632547010894599172619399897634716250297307850950264683073843667271180297781635832811547576104692200916037101249267058926178867514588083635564331587871313126553831332363027610412959306033600187977643557912991616185875054489655699036046299658795119827033243138829060717250067804119774694184961138729214319714853803067007191531555203603945683002741091836602798006284544299548946782085054956148581090885647008040461220890150183286552372975249572899230444523853398861064106297662702397584365768095015842473129263135044122780938445135995486740501542767111423534650260182928374432745316095867594148257901545005447336397907344656240742125963142916978639399852050143728537098924787129922208924406910358904156526501872412762233065745067225331591252239756663331467158145301288390771473893455659254707583480688740822724078976318093048450743000417418553454490216083142982892929780607489518854896960425453003780906423045289591331623661965851683473644988826417261636375334627446354917265741492687431504657797851493743177149798858376315793314391579792538192479230454232202083238374811146391186313465160981972886441976759917563456471616370319717358817409931830617864439963203265729361516821761342206810066268955548508841566120539108335529738026825352889262774843341682328359698747565741192382076842249407134794470113964413719369832185969582803444037644326822856075746122303183528206504607295446652831818680351783760462177969090112817335611800610681352902227703638250294632099034138379419038704993363936125227399238004040119079522036061356813661716044688055721481357887543556761826287884850779332256621945116166839643176809424743128452095192873393540691842344384491082297010284227859268874727413018936189116154721347610016051733436441994049240971288935469274702619147817884183299436204061272185518563616769236009756837138793670640428989943487314429578669343259567391157678090603877200609673004586974648213469424023787230043359978095952734994121115751156683059343323682770957749463535229519093385534299098527101050614542177987839103438544887465020836659594993378193800642686762469036910388152278356130684475555291604088520837492950064422221499236849830032413642515149865426468517616080981978219359724167437224926624983373228789438236570829516375933086082438414960764006035335353003094041651653324805511756221485672748354657498204192003366654310281157979019293198050581157849454831245107952240286734978301209563996077921479199090707528072418432985039811841412222608505576215731567037299531133254901392116065273803295808451278498305877972941216175133302709618925576491669527733029617492981649116373649509146696690533868370409158494763367130454626918298302128049338643112098769681010628393884907639673174269967497209063896882631038766856201356562910328530310978516842959679376688817840401427941643037552094085493148051834151296428107066866576079083058699826294903008300826372078132381055072422482132223771276271571621579256301490257432771406422495438689836900869756675241582927211459493359016369413208030682547938066201142114566764543800298236819925839868386203360613350732328009854036299516186503081117586348623797495308891375665344774197870326311740425443460639992453969276305932002590114919472935554980478597853249693222186670846353243961974225961644103345936577496554869894058446969640633167989743472015265924470141974215532088733633648276410810936262984169673237271934430069325110780437875984186785470004140461338449952035540527342499826186870867846618394634696352897284913774212634184949988405043608252859497033728059399735512697529608905332928652174083919590957128772287664902445430013662717363164291781959144851834990956258781000795523658418431957405762816443438739645296853799649553833122996580490255071394930159476114221229141496882043087565025264124647828261766771559863118570754240115143768061190131223276758218472320854283392504829040400283239320778095890650542795709505930930182835666607902492119720144195585947079363990969793213119976379354697399007129344152035673552795982480359701767764749380592604466821985058059306326059185855103708804693129248056321902088900031726728284552367775018593530425902494750005816826946054435884369312084770528627208356680955160925591244916421878076555604969362240014120464600107037562053616696872960558913681060182575941213076072621750760084801747776951717352191426677396443101267898453817869441891511375845102882481283803921388408563182279455882774009161697348642174249122291907735717687575113677076211727153408300520297468192079815901228975112203748903604603986171859351562468278667086381619945732510472987987324274336975096230334633305566343058673853991973270314165344813655585252726109164287790006813822868197951738768573420080363865014117581791501175048281381852254785642777435109546019411250343880311216662870755261027234271085521639351441762705837274211953947211709628892643903292797042737049584879192217118520611083904736454932030503831153722951468975785593788494352824216256882974522885237049689682103172395526239903163484782663592881436542578036376422934640867200345995072496776736353722697883857560458899464890284421201318798130509756682685264019485590658619510224007700626803838439686277594537011514880044995494004116293313230951720139632922448316883909411722800370933334438382218658934109307525773930015325835357274635300150441316432271739912046854147007828405153470975590563892027918004712817128746547883889887874724758082631734174232979652682287195355135446643494254945660730789205580470116830240038267139193088483279589084519169927944786929670039773499331364958135117702690411787937204849223168825752416095873291005043237128836865853201349823762104107205130337122487734803882293616551315237769850243574491109482692632239827948863833239602393627746186163042439628707631863398330857116720878317963392452430602383339162734933753158296996785221057684159492579223995525225494227625724293700258423549257860914578659841466702340629816154078651594062971515979798278946250290374206893929292928723720061054278380427818080124845001399779570845137182258082777970855277533770820776312704029546167475145075796824971100800921745881287320092490069171002514256093567872929963800278477303965990784208808380215286229262529637166414341320443632456719170553341444096320432847861948526082465581150615013290579745632969487661889896064814381684304342400371021311747211965726099339573526714950878006162577823016480357794447924270026668078714325015382950626683723525234121330160063600353407706257242724259461414098964292909632611584537141072776941454877445249549207644165330678317405551827893533711208291552461520206811657603748747104801404508478879118137727652904521965321107689259406358312389941946993515584263975204763618677900787155836693566027798127094872771813954491336630698968209592483428084200276226686176555177927716320079373822603391669160190602706483028741938444102921964612802092750405197468330344715433582612809567644891146267022711135476705007669083920343872247298309208161258980276192607638147750090162721465462126267322796287124643015780920658939946183216952888402279426406032464587850818537928659415538517886166260529045228885913841165928746214009006117559250376029173232321120342159764894380703613915428962007750444315294972992425151883847712496589923795130298462123167001717020744754230490242920759038880345850568804409561157955827381773340107134477734572115893917948344631898661288851944012920574795198030452921449529923859323523566456277275438895476311649916786202071270751200920004815351589736035780094938239642027055623318364643880902661837587416574619621638855367154860684116036692805666827396930376638206433447507419903815746420524261592189501602514157101641989817124562822548600972852329833216958958348319475168931836449822454371351784255926162205527541892219618425934720267401766154978421945167202905125826017345927243134039329907810100282721225435192131146280839271561895924845794323102588362657196668039664008397696202107969158172747304983321794746106522706742189604006830550352619300035637753696631566797973537069420308752862757268987763565254627049289522234173094797537909382614695880494381905079877770781882869773139207137890758555035653787463876599730106069975586524505486706016547852568504783644968255163021491777604228376977935860216375693691803192021408317699894445752720175167714650075882566742670948614071004250063491718137552149936244159046696554794936132550260976168206567142519161104660021672174763615343680259999333763439445047520497790594652963822558315498221057391921320158964420193894852301412222588045390852209545714223340828891463040026547456838410601975139526489714798168281926878221367645080858839543394479491581237716528082817370292021670299188469616489992690877689877932766256362327153648146770147634207118820983446130128462861925804623267401752373310029780326857816256814522676420338264878407444807244844648915002053168829555365042998436438131857413733804368882328788700168378877777329152236240836505916739898441165188861532326726716509083788246413864196300977842485947910951707129619544048975978089284143488816861080659720506474390927565357623846702468000232318344728927032148872721028146509826382507402247514834030787109845286196163021243537314367107764904777703562012026109874639639777278348242398555826423086928581421317398744065036749853167005794746337967482347070365403953588783583377899044008770786103254262465185784754862471915237053642541115639243025335557710728393565432470891219306998835640598376806543912299393141519531096024208732900245849893294590304916446191523676407642759760727125832889588191247202953857281932277554194445271186833012767173136905546080356627556157973337739835363560371857474960544540269333479981582753120538805007600237639723940259091379193358469623025740083022162086158608024092531012097591183353241050386899411083303713892134188684057287977704970839312635224999211576595710245992948038967251971443960140701294526256019188283063167051849274399716469049039774853693891521806819889497230201890218003520074608332096372434407570737526787051392353645924139532321605211257478501649318056750922689629633866574064446724084762895900715375938365539364526497983123980155937600956127170706456694308239234071216159063042691449360695346552807089656969034667717918658470037819146666431306857799405467957926269259422355614128533159593010070467007638640853676628373453357084081422000023774863219746015220135558273970138469664232569429276594503496723233247451479166847897079317551246409446065989058502960066266485991937290618451109565642277694545122307007319872333901885163966996052186104515267853224457583382303762678705676530035633104674628782374674826770604831680444765171790307819687481218355556746107733522074772310596881613050263369948851454270036367579932199160201552031696205561104664507431499901188029654091119124427319617254026043225648401613696403686798452653147139563190970935784484495305365282263827994839965007077598656662131105415112528186851648008825778062803223729599170161691976790754275973796439892713141109804247192284676454057669242625110680702179696318944642751929955521097378414179895211447879085709398279117127083223782170717196636129854925711678633517928062127865405565802553595193401427850340383102458334469510567927031728882713895048399023533488891723958084131875767116361346121048496156447482163106749370872504324293177214810388206637973254751020084748498683368345864898609244894523537106202620228821925499565281450699432917843315198922567504087515926770855713709327239339031679766955943307279971804298473252911560510557660112758037947312981483809953964219309080563709659947178659936513368333171563858187566195010926115161502174469240791516855050202970018623145218049296151490853251119751423119275293987551214877173832624636520306297421880410639741125542755011881531450491599382850102907269247355955981281172214262674865432420583086163660357574124765354861859481191084364547137078868341833375536415196839983628098989184470635122621290707557617818283031125604950964978870965200557114046088210023817703789287631102566337831807545995619318036972087379841648053524613872161002366323087629978290714207186960485164911215559044573685663599258852355455532355544857728763190535804226230065365354236529937554640238606115110219462500836876016107020889797344831440945477153336101027957892551119216908208489683749441443315836388280017332117891829604253385906282936095749733883630446812665771420172581610852737705139838644978045745146763950412262217390378235296323620654276115388494373851296090894679460034951401995841258289896545632169805914738171777755949489047697877693165851395860043623588471925672090889134620360020064666823049494248790388227384293219229824073404937881252605983830082473550920960892134618172118311021464118530197187103512011107744618355411595940076666958283706665851824100116591409047321420626071100922799762579182806287494017435642425929426153795439229324802202260481501281110800052276407059612643955545431211929301682102588496295660249383469846998961884463047384954919331002402405943569949911697667257400098800581359842801689988999288744726720676669313372759203510389611058890062652176112880120173205286846198223935364833228524458544272164479598985964932567415461152999475602575367730867215292995383642591758356783954167110491609278836493167935034742493780129699983742047005158429063041568615513660253905091602582518221755900069662608086363723787292482560820583661817107646822958212378515432265017083892559135516351917084599683275523626223921081692791418100534867727274374663540508574796127777303406231068680605099795543698061411062564021860388261560727423619273211236895021527474627214710717033560566394519638117251520161650329086422433895255343275081222528708809173267463798788777409417233037413910993476206007655522277362638454066896440970465883290240808019415398543960595818249526605810660911348878223474637115837732074083931736724269547092053463100049665718504290660591324548076435746763313045636536365217532331620750229950050194335003696105800873158320956070177362141476988424257173763985023544324697028878227241827055477011868576097195701906633014788208189622657662153692260563097524776402161804594451747095190680054556606952486096923684542146534584112630962711416335162073145997446074209832800608131887941569025979135751000207361865231079482714152376908332889133943079945288593204765299234982688809190039408210344399264684959015419305009568423318965294259767205053328587565332011920227853006406093380643765279152629432555255717213985654259569543749456435279397965643237234390211569981544068925223239332739951345348438742810601794093275793198528661311302898056653914978609766828892098313961647128261849007028789856508357938614117535127448384744141556498104408488585835357763216062789357907312110701297155108017935460002005491925585359953220786401396313194561291329879831592857280923554634483890277152220510430107167717124360431083795237113402995011561912012220552113947652767877972182128519159461528523134661384145480823815238750844818214622110601120463892218121327028450487864787764797374276572499481738259826913410921112460326821940203789168432182981022684247863741067320693982741365023370924168741335564181282173404170680070584123038823068461125102978541568015850055384956580764855769200728439573288901446423156913924785930307630158340648905049927255641409002836496699035062437727542929055148189968770955678542348711517260558875277019952867629265544340962862075191316358781074893693699400723326613772125564599722454229036292066694958396819938171589433323827282488321195764432072251910235614048185838328439670196242703708168389785755487567340696456615919585680552596978684838427934565982289710954061864711336811602524199041914933480554331716686397782408597879910859414748497666621979761876521214963862665016230284145615030488816087654748090799932529698679580193687659110220476366242701785223911770685593469237314897307712930463571554921016411600807128686519092373521417213481214726873478650685504746250800395195155017056920489838714816760777254495854065613258059851220753211368145793652001150049611514188768605195730928750349918903177338889533655014904312068953068863878753315010171846875130968274830865842974266164258651347935385827771758145364070760782568222211421420623837202176017721260598113488511605339484285006264686012025453651788548886716621987560899615233043551315185519634918726421477631695288740411048433521901360263683421869024599710018191000345198126743843233993285580899781678637812483863733301350549061026054287671131561258253002431971794473257268868465843752445387864014949203038696903978267924139349801361899433152394345898983609189279974458175184237472576848972840268610930901285575705116992670197803072490840896428813118549547299075158826993127085297430560041913729744361885920843462164511714196432893871712132188916511673479725041558031082105625420965185790723167243493658855636679807351187666728723785565946506561571257062632632043252548776216066188858078128863451561391510976429994523463825629896715411846853117236452205528358331884198653304930178300556909655964433947258937587164108900645018933115561267333981045266573003759272176146827682874188706011799102112091862827927249672623211994356621594896611541274995696561134917404419821325631886007866522340629391746952768822764389578148652007807351913084517880907803186187560762736030883319699053302956905679214331949679974348980497368454225327297527001313668014526050923824342752128793303630591864024848447930491607287431474895973953096129340220173360658100710569612101257705855810613923648457768126252747669264314089222065776151471966075340557210047988806483733233925561421787546737129152271777252944168939630623310111264439208602770003578696546636116058869999180196991170857765145757751850294351159998164212010100260539602084586027469263311113021983862502345137930586999686335489899731956997862019846030548594284599282227117778664554654352768867051123771568476726751939922779141290695887743788866597830377666214312574302583172325407529096915225266222418424403502475492507437323767629729001958622954665612596009733772748384455866331656588433468849435535778026852760285931241689436489988646744817092811408537067302627915119108014938211488966917555467480872371158035937005936869314809400621508332145341455895912393838593262259456228029104226244280176568878735080173165785024996776831748064076545876584861650381543339572392396718728034030969373860188338131079900531744891006961534894011947592813673192412282054221459764718604826905220309039193130213881610202696673383932015811278482142964314948139134602963326931944597259929673369525143402461016188305823640564131332761115232074269854322111451058180382211411974610442178302358065920864679445933669026099655258972453237045153698976102296276551587953023668256342362595355531240779692520615641563146090856702791577769840269208458898038397943752956054604623111571626755486736847042673991194284136235757333862795079271234815971548676210906329850680985786566043203700458957485682713808395385283694115975988434490700563078879288547369971623529771795510110501255132743576229870693733496427206654075244212383048395536391479290774860629706537192750941912053529417622440234616383865961375768296666255394031739795131448912583545058251005548513368779159566058372090627309647451417932246231799822049434439162099593221141283236828296621874346172071428838750955335027087712198916923166537759823236831668696963312050927686392027053087075672459727302055551700295694167281579897402113079199774811693104355883426503883200928693008509342576504989370908735519990346748052351153819395846717975645573959444599919800428906561165835305748080320630399550813494847513918336253395265836917906824553425338464595607521852788385460829938340538044894451424704739119273380651067205244848504935197108244980514571627501173190198385070143718859007925943439337859499797363731273143049313706737565312964932457674181460372780581581129580699386553088016563127229295233710803089146130361088900439279315746731255032300248578478854693289071467826237888629026567821361836913525676313642020488510233612342567904208780407567929817586466941474513677921983449926716069141995195510878881794801224710053861402673518390965701947915058874826303758612558478926150207673794809972757125387651882085978025863682123218218105333487778014226861510625162036135333252722557451436747455589074477410998061769691553138162582426554488819342703046804037304018341966562655897627902696908114360060338236941939307950160704595944448283984650834603539712617835616561396959746648102249869666977776650618622237921246587377294910117116056374270982014561924590422597043248208301498952262791249840749888026262757108017968699809259149638070833051151527845773937529312417151932608322619099527374372738804944061230538535974796887781752319843228792460547589168418898019587917250886973846068877926111123844644873335839236739975630800917786229502359936255727314981328954453195476083498264387529398209268674091365334047480578691235951801392713594540265203840664113592269889246649865364905511634081981288659223356374839519282458214173935506402834221586988878310682248990436287412019180543700807447496898781913015504676285221967744433022761641400127872627551852236440072468916029756862802847250357665497490071151878828251167577704409171472066162002781615395186761365746090956996534126440158335016477996481854952737720625110400370016944693330341317005277171612344082423022330233915119674240743998934470685041136829342245877947498612215366447960609591229288014186217199279697019531452593699424644127303651799545708895530857999500098118762193251376078901235604251373091827374341650913158696373279465609063998916370601975145850472100973340629553537338448481827726167807263003316525061870817322647607629210217307397096513999016347335583339488113913497364655147082941331014995336547883295561299596066676807611911764098482594134003432743580152431160516654189563282741847960655372170417588817119607635831178933561001009055051061194814643252130860635015074500197304466071009975758487447531631755188459529125388874179529254696452679741125357341825641618190223048240255637698250080767309685106985518341458025714201329573879374949255521379166311533493910319432185869190894876030472542402118827300146999089961440945105980252626346330135702818277908373346575466588701270233991868553078863778636032324196892227404896217695679805384267589767216244778721167860429567088330559122566080994954978171517244610106582621396365634365846704587424840237114935182576277679654986062614945341483236747883329649224043444977568510933359861244186552447287913028715563570938448474947445965165092822638139632346817219661811505820500742589478666214080384208861879303778714270330027358152809835323871517000347095213325909574111956008257653740722209593553323691378342261185576118845451926720943016584202750063693694002707870193246659679491585463878377100594616044385596225865631567324513591104631528156974459540345046348929819176708238600421400565042185048224885512654363362883645492661836548061985530247468837146814752539855541398281728788690080393553713439571866475687869886965759664064976238402762209768561558100892170493266086513716408964053102538288115958676569307342280138630495741189193818325029910154499950553832683948659786039330611817537509548274691865121061702602870037685946507191645024889143554380268899280962754366411644008540810408453434292238153748269062022965378585133717653214101230528870320124753593096488034070019386256451033796475288908495857480897942668854971818541595135085150819139677513159425927973764404525268242126161922482934682757373695004073869034243284732217947512212769225691434160581321918491790766517542046400645551513020271760200678790136449462034658332516465892995967045650479227422908750789745579208720665174720558215924967609493799605753992253287489186467514160435599983043825188100957893328056056633290209619878774387622166282247368762274215828716087102703307509431195635240759520960497073838164099810013576605560410391133074233386191102882699972143600933971920402318205820518129427646629837396768535639775829144092984374352206757930676387631740298041700835269861110530827506404751902478644973054967896972540813801757239965294097722246998165940061921136625178357808115418564724982999237189126131118515658389848063243997036799294697369452069357209609512490361595968682578703923335980012226003144809061280466839097671657406831436375578052104853192913338985175636669571890755577057769225604257218494709992271515822973201531324247976447897176576667071055608365470003655684282528866419068706015428744572898667911979183535994364641190845087028624466401828165750911514135943045164217385744770412962683703608984148878958485115125750552559517679222560768681510059469256471121288436939324988013897646024363231051425958621269428555358273903232245914901965616602372675425464614536220454243774181864287934866250582874392350615027043749213935412783553532700115093092641893491121611331915439570901359717938324742298937887150959596698218471167783174929046758381259570296630865548155375050999500306407732251319056641520663773879395362859860484348427657071124928097793700749909379460317418606155759815894924230491261150050865553594524222767440701261704038792743054734923041290437194853636359076160345858136616564352286044805148104695656627067136590505717323925646010577270074469564945773762482988258190525426721383991257155998071727110932761369491435530895521704095798374214706140033647718472756935548501050513577969671690376708437350641403232272909652947166160071405398479629916462117994576108378530958285926135345383184183525670693366325768111842614704051343239201677835176412281249983995547749021285887350114746262887187421723821945775443325763198983179835377987872129553547550785552794669813090738401775233650008784428892698747562465080413057550796346385895369385706743999248694451177656058842180803813965343808165330669024682560855504610407731311725276121018063342272646889718302795229359147209904262093094541140145132420327498171196818706920280137849647750952898086568572074768312769663751507783720834377638349828504960878074632382448172444006813154612162636209736443091520768908435136209057529053736969896756876069802769528686396650843302373870242708840403157953900227312031859064485698941861300094129082279182197937118697529298734447443329105260218522871906240888093303760875363028186703623959320726916853814988986515080152447320067797384394649575366078590550373472815267587836355039295333363417818960980621979844177379560351252801719079192854456051652814733154883389547536622598838106966130646807999025582677731541805584793609638989735616809513660246936285043465526265970576077995101463465763479761276763229299815961371116244822920638729396127988694238260495122884674288003898657842173987904298644889592849171983133755568182854926530728998310607658836367715966684170071988693409998891169228504782222892527047096451548393743907243683437209140311337745975895613224061853274118933332044705865085213664367869114304095030176546542946190862942861584926156957968949430059694875976819580342414898871560769840979071529409086588391970320558312053355535054071975194975313157592148973080578649164336788424663802288941347514941907403606855939570491166971808235451367549614008708091915837362268301511596910834706675919098511475321468315127413389867346667893314462060206667627981047797053421888124342403398139393376147702895970376348035268141064027803768196058270296150733219062891070492580039113851834224958149124473644775789208500004954208053947404453409710538519937052867558473447817045831741009332205856718651298102488046330708538541929022358054434584413207988677239618040224022430449334466029089284609525545846853423429207839204164638276354393547422124288729378210663685952770535425468532104900940022482901932978497013803076336044337111261827470415192839578327974411816204699275963736564263675574113360603576700329670640166591192045087888075209920589269626338301122010713995663530763290942378129208868018878499007967351669407248904451099464907029708304657574691080183651577072247300638809056331409240870696892286526883864279911924564561962955268311737106599273229934718771446862326440691352861868644791464671291085177356906600132150159590569930038874302999602584503700156243737166768211381570691570295551979115130322478565093079260600646454078707391836058323894609119063563625629305028514441106575315006855585574947446176375557695207312500775244769277826796608122487673619199986539793130204319893348048792358842937708264358821142099812300443720393299502389691586666753795401122045229792424442002104428581990374252636001472058288398613603102107389613134603481532338886641042667703241965565076404250582766935291053893724719625799604297228312438285292051969290023797805492555175809714950912331412090292692816903208099684078864211505127323569077290095239615722382351589982357506178632931101613470430863597081260429630678968045374631148402509995934098978931556546016343828526897165811338552924727159936581920004819265756010841532795792628034023180374052111515729627862704377481309046105373066728167408298426802948494025368080440372150583277968395625831013528099106082976378413447929448158751936994996301796899574624782783124241667362143980920478308506773697143450580294959292695930613949036586905817808952637752391162378289827682459606413720471819022460505932741597232512825832996812400002476428175171743162091726822239305358206427187992553328504489941187593816225895672280283629018160166607069025682014788250072411054799688380009059405438705241626143515124826833003251283792420588243109908969273510658634642758285273495313426334980342970654877666900460656675808699751861988450759988889468997384595075524722869670998655289599651102980390407780293197954020883796401964400728112060696481884582929337304163929124739324162597043194716002705586474589462608641341534410941716021890462583440847319855984158888383264931321990666870566343539126042085270074464289267715856210453478860360723960323336717158001225374864240550575676729663335897249587181943424441487377650925055465286480456471061257810087236208711496008068568900112400996651046447734733091934387745089486530572477363409202695503968641607018716387790449997632053602356795772950321933733199602718407023490120444111122829445242105693751337715513152199667195139440812935127340170711517277354697140209024835065422982833771068931071428646135596772807531675335145691532997651368709345654212235340471245233842540739694452549642611854635431819697469621001965224614187968591805474420196255761196344249859430294383971662203756957032483910893191910389129562175224184754875772529553819726237944850530545031621549776124698595394539234252052079624334036491558016482628159824537897899667519504556092434110744537713454236401179987942604771803682653144807409082579606986784530078282044522405793023159037400134121058572463722495839502818489368493269626983397105443041411028423340147717853459504582822751682221476425255501176179877901808751711718792760788632687276136102563554798808815852481462192516956486959220376625733422984069850753878655701037406131124189332297759122192652966120109521542790689031324998342612591729845009797038054040122516629593239014084072934221226239319940528003355660020606751251964240585602516157556424885810872156846900117953624390955835385357755467187937493903682520945088312115267883078535526649368239541843012187011048128657276296469104011092423520944861690071567302109780379067813351332099954672088405620775308589362236610258280836270885377016012483996858045348079470407528041637316767263084247175275891826815202343808180190832909045788623097222677022837178336780240819103319886579529276858319416737125931847776994265721230506185248533578607534563107893072213672070793898120955419383360890819677911165184618134898220988426835452626374313204221121349979495418355898476314486381683437667805920430215107452483379901782721366113207533343830726593527634703500954577414812724058534083798001507618583820215332620500097315529099430498909077325998838427728554047943579148848662904929625350703105286944070068314820006786321572312619795874334383711133501701000967161449744903442155962943055356531689756572734428612236587376959847001630001121520425451596920508984580575047964980263675662310406523803970068596885879755792465822869826192782588451822197350114792055500776382796904995036725033921602567944022976529174431251407365269720481259836291753185232296501780541137472053858797103917245042734624443053905824622310807940969519446505099941951358902100770049281675732045766448710402149987305660183129538467118110676700353998458560540116639103164544457348708136874386668039485665116972335699367736306611090237564610490725427903725123778864743489441330872965727243484590218562598031391718474708784517447236536532891802892840802185175008416446863689562041820123474212688478641048193133113232488988795102950222756202356902256683855896742420162667474958975476106675269706175010513143874911158806084413866633768824512297411699646217354843639664942745856687843398038757743984690562690052327107593901967547046540444480530303087216801185841151055842051525449720591103795996317264099293446474750595045570685253060171152544741068315493397484009184737908667435614333479894162260019704330029587796451160577540605756868560421244499542176616261848274982117710998795628934010930052385382383109619829466584837136363667214097365611390523791050843209080669872676044490032912825069642234458845139371238919170719732761129807576424114513351768464417683599298763974727466404762369712730970197647382087252473687501867942327378243833714234361380535738130419545068785055194185812780245790134436986638336467700917458370662127005848256889876955058660180129518222895031261213665256001404307658140549149505377504311370807783960040768864914873978380031189595732682034500302038112595915448900406969895907222046229596978248551363249205538370655704152258671315271109111324992273799351015954511188670291943224682444400220185164944957683949461141058575619185548863343921040158029379920257007419371016379340572101411397213719486267548659735632265807244821884377011164767583813987367848864455659490943622089579136190130625529713167898909220362381896142205129748174188324267652077275926334053086888812695808614603294771097969114267262867301925453464688963253076720104474138497962376100268755741116292722407777740123450976604497976878081576356734313483476331354740308175129061613860263694431170882241347847667369006126551548003935735932268244330789621847177949763126230957588319179715198529220349164568364936080175121781861984377463740992329985694375903594398710389470933870452639175766467404179278093122598746950539317604619402709810823330647414094168927861715953650560318950882841055855384273004964858413357455569816125078326569759644077589718331403119364588128576728384704803605425723682013426809988342189067365057291695906705510704740908832283649432563160603767862122567797904896357376464823553553849595612440575879047807814754422587097862327969513532600787208748672241242252199525945118515222104464980533297768509361969977408870445528379846930356013705932084659308951918227714934675555084898333219463392210791101870550742503455368159346424362735714368140650739546638139954073983784984537560095812981195353265913034884209735377767974974723478040173059648775574107330361334310392448594377041553670159231764306608484912114341578595342093999152348495029300908701946460899932277902630919236455306628979233991685606259528477943170522267653416260209435362232919652082804291239671924686006216060128430401664277691375762802923299174887105419319275964952788970945052789674914035090718839460426564734257186897412279137937070843400116322777536114682617684316085917260416021081836230028659412989198605971257278000304387369097145561752457756077767016576733066355191756834863677510099499303298132809317828107077295844716799985106737380270262455509617947216407604015669067353836559186825902611464213604072309929462690652976868287900319334574145033184652208350541969020874603278540934945297147437292025688253734217974524004661583156714778091712958183238440952548277467982358393899239194494900330961222786340260574335955179692668931191691420089857078348139264932657926872028583813527052791425963749315996767666991808571105003108374343370358434796288089834065282058117345580052774048415215664903492332429642766098175051880259932642315741999221457319739888583635970274543557270548654044501495704718401740822135692714272415435214409867601155235805010346222814350105587332487843961618835585811376171522782652568762307425653649430004912711714964695783340950280052602753333995499675355891662507325307046049266026496770685146443754655145204284474985933360520618743786575945252229986758024791163876768791017646800848882148864559900515513477105181758471642011765241207356467605011990946672104657843550792710569884970719876601477347731326895712773242708063364129256975191885371530164360014989644555254338057659844782834984451681549882644905289655051987684028701709606625505562546434960232107184728783461847111141048624164763384345130859348143873783958042986763536615598262061813170012590892242564707462098134358570806676132472859427586556032140299666734475220517133962427102499126895983518480945732058533171748421111730455315229296442411755101671468974879106303506560144881326595343829542718893844800243683125526643576321438081250813062075472151226583335696925549611216822034562567899843105651014891014961897208473526261375200389322082810356516877360805714599543645028927768035110628599340522334576600376369687476492734194568311769870936879126988718676413780885786978755141686126025723508176025568098923559728759144266537316537891788033775249124218442857873715158910427229018948865180806464144334663193161204491329260039905464484542733044631045243834727060425920017338284406753936420035016157509008331332573794086241075579256666000928722678598173030644381841799980795261417659646078720058031144654173181024628903576332581379162499229370569947051045682868215748811796773795837955673088547434124673696837572392278479509397088228847824928038073680339022891687027669703312049516907946833903477942125150226511333227624829509935649734976368578693066860383154891508740092479781265537473400215463406595165146387348800278941313492978874956984144373388805838598080706012748209145026124450464110669806210225960017754684141672215313308854580905688403495743216487025833685431099949515584871675911122650144894259872594623979044583185523704912201772810574174833868695873848966159026154137004517853049631141213074450291898048494166942385023357584101129437341978007098570595235751401916470221103347940752263217797217076738955347427062607702656871458181607811797634372990080757062300988721470822109240417244570172748746297742789181429229307242786615417450353705410554450336790320618929937643252361828425421416800431935908466941503044777810947255274997830135056254659270446495975328862678999644218558183008672518413220591264431605335479571843235908969512752852880190045799909199201198288452891195231174513361590540094631908066557961491992215959720895792898593677648964673857727213690621674149327264129127850067142995394468383467877214415473100746419515010385359557221902751795737530667327386873616467496209074721190432258712911079285128694224458318106186860769587897802845049244896094318959849500584185391163614726405493746204888238687583706283607890807765028512660902561803965110501138408595313012269034415570032515823416910800486089972987015064983709240617223984839397571722374972068115628371418761945312013296178950887045894810689727851631712675436880284038957742294838093862639815821519136234527316966965859048720000401668727881521418028179152927141421485919329711509448505756974593893010594456598986852500765161208106104773074031381903472832479294268559826081142836922144924193722391224392360865176541193044935755359786930213960318605585144356724390362745860685923790512126258184994775214583098482604820595176370063958080847237941754275902784822877700413366718918267796038509526938872751323346182211636424366583435016087976453092275351396629915527235978185371204779491221761233573807319946537174478308386699767265297051685859071630925251103338531677224013374709750160542992426117221183294489514138018797073675940806164909580855598878079719303722742462829297022849435501509022131772938135349156637658715153285973943824284001098614672718830045935522440761519829880739390085725667494698244069691336428766183788945088948898390159793332846786817431786062263711574785074617225131653205169444448689736684096110687640618602781895277531152004442911114715382602360383902514170199035417853079040185342571864480646119780855804814192176109194138830702866587520311515238705216825717201697477732280108322832498117992625910224143871025895534626753647076887073729436809651630857573459664594319599422130621313385410061392189488444539180045634334751518992205132246427062311106434398634186000018165410998865654475459006405679264199270048728895557174463456322318488063142905327462599691258536910354812844955565603352417972131312542047448669388921831972333594903506049207992325262538756653484920230736900164597795720990200341223551798109256991101849055838641948567947231707512137800638585805760230070066261147792985225958558807188280673313171505582777214117199066088622053681937319549561537796279658995250901002646614491274463841244019895730179934090298053946404633442000869257909843667082281214200104345886653281244264686726271487583508801453449707985158683878912436422411081827435196178841584690252792607012638288971302343380812011581805732044613336593202200922016424727231780273775766533427096205886001194686400874722777854285385699515012534136158698183535213858162390435870990138933252230518584634495321220453959413212382703396910848658045401477166554232740936700915395183392685311496093178388154491372415583516344460399125572255119120894642826728268688151429927130763866213805571434707220365298047588457235723914872244141808408739580776979183371295834751812598009368461009436842666206566087332172934303872683316115495798104829481987521802366165947880245224801906841797280693743467464155961609182313527948797586388783322409282837465967479947550756450430299244065989099941196253176852153006764900668892348798690715989906686305689146977113975893645815411905351826197204912423190123610664421740207388753749511125619915222907763765336264224263398797700342689707091379436740920580778897881019212124851323058294341761319709514203756260095582899025715312719678451374191039465446953506440720463516783452173135987964430932634106146330661659526607835547889338162059769532361668824182655593652368290107058195762400559976601634061974872360245546389375048884974523066306131486549269447063538985107466792517258190715609889935079679930848717211042257079072910517780347204256520791635429447283777484356511422188489849658399602608707155679753706414286426413431021109169623910114419419465943540555375474049219878194513452513436626274956507872352031935695827854641969358355154694818722467071584310236031121550152920538787582557012724319844733791130230291219820570612125407389560530726390667002399218952189302570881035531492106333326131146722366287703532086018912375938576439452338418104470785261444995400443595777841935743834404412778509020761259394016036375251434651009540588691490448201462548924024912761378225477323856925246106425263601473475527521999096929367823588351874411983720395730194160340641693881288356556742656129821215433296234066422830233479323921823144431422841457602127312407850607114713190474640588107628248729909403412661588722109453215057160834191518827034803988057728844787868378745396238046481845823231352541056897095975307724082644621877394342150017070364512966024904851370004245243980795942725666863761745585642982414364253795031871080296587940814910580219249373806661699310291511528356181242803892439986226136891640488948560932302943488701158859043098497933184913660838257064802147270983111537428540961044339848213440285325433459135205281476424803761569543793044790965351778310586875939343374511891196258416537545834141015013050575492646429757230724764675296864649510116258690518659270585950936537763586764567575349157715686264859660097579748718681781994331570487761218930880041901608105579332908991706995860082250536184806596808737047881456611685871858248833377076393791223417078615022722994016066928020240337697846315568534158231673552102849582303464012167316753446856483125230031998662847551129412954590468568902206756147813786138646480863480349100131744912232450679730473651986076050964687759966017913119522807784107872682085699609511512221356942132322119619886640431989202629246806483562465175947720037750078766795091135687618970695690722987193372797078941150820506959607981001545792493299763196745100007955902506863842544030298505791504034058711536387471355878631977976768471024866988489617886607204061660376934901506085576847522182191772101887674925286206627944948412320525385250607618342248787059861063343596988176480009580312776941414339017505647084934568212843977921840421147462465685878615991018575276706437995140463150383326257123496530638786543540365482068923269322649484272538079757363033061707441346074675568678232870057334991930125993342496139769122666975387720057766233245148422966184629200734179279893534413273333548517669384878324466372421576313644388449087665786078946787663556393612499917075776342249986992110304351501102011523757751160130589565529743657097316374445796463576147440251005972075692868473559892528956783796661551155118028961315739360286339065806114691338146165333382086404628498431036385201621097871773844364825181250574886679612390376363412808410166495159848627399144983124553697304612349832639087578757144725936810716519742942494549638898724429261087476905811066911953448549125501363340814693371925111190042615577394558314890564406045802048795677676167160969121473638194625725867668663377496600533593724918686431167851334970480948143115295565651220565096266520087189240208483187796464661577499276328289692988381725505838328244409380633697215759480772248148581265820203328825284987469017977896753625532751779868739046187712879726004507455135588090062373387550962241152621342594578794826805395841607906751396683708243630077113048151220512612042187663547026808888935936785050003463983384742909355930700699264371852403930675041531949901177121552483237161171499273199187349626708164936246247372894247640260721619728830998507911109489311072064491439148376437741806836262037345126688710125890926318692480462751211669647536342804335977288441958988836992251308907057153573166072891349777493958312007123478177991766417038908883041423398286875227417182588392023524220596072890053094831077504854515790598724801430871357379941829254039725846085042729840756823242984713923075720502148553591260057957149864101535268116771138940037467603445468796800903662493781001524526838447183168197030823861797891637772579217867395284062472013573763873593740176923011533309397937471692031796485799432962524567537930285131975643687572580819089329753219423978585586658476419848634870758329283887637941425532785862231041846293777698171253256755308416714610607047615219837904392652550651228997782692924002359446004952524322085933146392832137480515786009749056476765544987991071336314658125053651215550760069900011502123823428878517041849688343960410432674733848380629501308437855975879677315697544340046135904545234667189910837473852240376217024440461647439021501788079577639653429548331379720343566064196487450579849465393732931618459559702639887296466346942134108861732260768307024021216320200641239446127966331736146806979215314483000207533105474499969775839023665258008927386018464080735493349597640254476636661714308772313801791255599891251985361444476764577780547266775094950774855868103875414254505693442243149076837247775367718917106620962908055086187352070996270625082798845562867000079749005578931976252312661717939150625154843898708578640756146622019225507961368745316287574840645253879646318221033876740252979498905355965781889935110292177980376123608482663364450457559413084649304534738360770337707628502965002137673788700315518088442440928938740170511020020564340279620359138264891885953421489134190750409445013863813959021725483458692654688347828865962957085309397188409128074941913708436097533606881937068503674649144955924264143437356097297579531768118011527499027880235354391394556569968519388846460880708069405575422589415421516900451902785635205947385417140701553853480961265731342563195360121993417811175762402770130134742373562872717590241974743620430017972293044605312684160822529545230540943659463469833498565810985046212081942448704922955965565291502509513712142344831597839693377889891634844222864629470797980177359865784593590023631256341727948791646304120888469201295742049493852261171121785160654397041423627277110827552921324621879242056846584588532702836085145591219557283517463064742976420286782904723957325255259501243320170746433455814595001272343768501409403846652860354949374513064955063355619509328783222527530289566710219637383425661290405514272463557316256278310163678173400685633453771406184866812957370695202332845784045952519095183712943018294624713072834588757075639750648532345554257840230149490042566783161074230451719242226728800580191493949672801123951932288928227959906924400733006719146332614901287721809777902311736524491345063443904830055903447917297665970983457004290190944149680249649956667658948547826506321331620724754611607824287388158796089758993864837013128939165524215691644040664022359081808799862679892518957422823145421044851426247393518640676594911525730124438512472932854501383552488214816768417231612008279211961014960018038801943253876418595353582219509966866625009578956136366724882158463557008156042555955903426585844146313934982301302562155433804731860501168630827717321559530725194844184879381788307556378776721605503890562401144030670324433705849029138230274896710276612519912287919174589027714452299771325621633167452559050026878245203232348364152637698422815484258486259905783275964989594472513340604759621576699016261014641505790386017953208440404388911849908726143446267381667162343454358062297995755858313726259149347533410662484945081622153440739567949912112189625613165479407705401680478670971695287504615155609606616157266132124314035572514395623995090515673740504739887249326783915679713306963361832269624518193464001030113648792647588075027786399487239328808858171277655951793929337996440833252751155703847932880858504799522433294888165909214659202155853147611369906401140189160465085804059741960828239178846890772770445383000804987285573193934321749399253748687129946628391128587546873326097411394148823871962294350201760244626284116524258140540683540165802767680299833774569850105132216153532876372758057091816129100598332907066385222673259898962238829299767863270930031810219866592517594167245535884279280739066184905961372780097616042898303173097369656751960523251074760327616420371291717653634797231171330577145489313162098175245130469500190164133577569542100411739610472872971822909303193252134367606352362379124010121857167602587545864164890638672228131139446745934096940409849556854553630535278759920869363869885760840893103326899826447814263571563660366405813284565622450788743587562678774123075721074118844847537800280843739765889002551159256855617777811548293820518907434798518784374788447166060359122445155628279291701922888800071379162179606625619322544442600389069782536641494419709627340588860338938897756978470873943607369536338812460659252004514581227206485073446630646871094400277706668923521224016866744521837524215754776551020196805363266052845069333620326438036616173561919084667753117682034465608895826526570911063242368899045065864443462185507555900442976853023730113238965399043972112228212838229965197336424329072064635407605364000587594277043290011065119132221560766771729987490358880122892828015620415581814440992749783856939355471032610845672476737984076884399584305779629741456062567180099223463472779885539290162500235105071207499357361672850957762100104896514149852892864354878868956723529883881758339091529271598240964636629690824395806920667436768709141478969973207326167312500104976439842168743400889254427346909761155901694283359566270935625616250661104435335060945895072017539051168854837911387495719380136104554488937791560160560603952802987517144312872404703762317209157436221892104686511150834020393721509688317920363997923547269615838554483330848049676157062735114817608095878418585974490728899566691235775366800701764479906859733704946820771761388622149991495565006461331148234663191365311744977712979884780604507040252846724978540641052346219637884628337378527122352571671154315624191251191297385217340043657289297007991364437398233145012178297894133897231025788527865380241678058257140733755974504975274172877772219369154141088578410473558815227893702579695313207125076532491218124056403366088547712343089563833870963672259037699879661569797165456396782437468943506838901071741325344058815443175495883573502485532193987115072877604438683393478973480109068037528377508473587553512409243483749660228922390745495391172773472877926726245701165654977357723400167258916474022143394333831324828039732713383532981308429692446683736450932059038583343963272105779746162992494429141070742797633431372939014479385467022429039232761312340204158288754192170733535552344724120339652240705467419542619528655444901184340066262727050952089658985247425742280601053202525665747584062365892115547429699903036947084214046317266102329649705149381317769097853571613027640404664085673110935683439128099162710377667554358897245736523786806918563532811851330978790162374361876977613009710868540183068359588114592525217579399479072860851340327400330017553591944393024070989101754547558387038762477210698771605533283405161122267868121453509824953888893613936162059661290514007778677133819548241406036777034217940218705095398963179833640534149110283530643383853837091910759655198850348696995124965381551195488220391355124257880379636213351936787525862285505246554766918912204542947592295447272720731474962116852668656595056920242938319730167403741351289386701165012176514361028849960932774232512086196112060892837541601415036153843336313594002397264605728223429761345144862558025829684011380720729633215115720051348032381062844951615012424467228735643798786028096434723255314997220487801623414382021732080388298323923968434030845899451661168391176836787863854896021388978130021026526857952377421961450098002416755208658834613786630687927021335795603989503231019625335838716037793662057597577351687374904565165533625860656903248231141661202299363570761510224135273742191474700166106388003601912491501151442329363719236758826248858640710662071281549760251646681953470208757866620983765792322872598386801857236160951722196356286266552616591196227813255704747629132996961494071187265935931194312489580017441624671073571613018406283612075226822477734689399862444766771317704824390339432589548963982660213179789728784819937709643379903624451597103349978144384085480528621030438656433108766493398726637264469722369833697184370026710792626827056054402254249958065036478481007628884943057986429586528173585535589597213483515189633710546305912093779650822649820181176375330517810988915938655107682481698119605265363397953531530371649042345153117140173798203058812305590022205699744899935925075649804985176976163618417054573355915015216776969200315929925895433560870214432320616323681972694301871504702404554988721875386539022607098908808318268259376240889830872753693382079883328751864099611636338031164172769595654963905114032520782604881437266765308304602098761576721767145740601559086927329534403641735022158353314951332387286059157176117925024629312176140638146194081303969108999578824176391208905350656550220125519393703254988683213779590440491749695384675228552996914938623103679962827456719170261250097478698824784108403937496984994277474064996499605449188492935449344647911347073143717435714362505453825474783045607695177477085814752226549908402022654984845917748739803597490822286498856309770147851747347718182729648033505143666306951917755920511537981604664047020204749434486552323014670450106445846255344053265459025234464185398674595809190390816499985209979876984009379341210028531470732349610836350456661276778610074289158872639221986678740125598936220529971295979580370356039852792143646708443150521890031900266226556662079860313474647819224816850917009885903417039492357417670151766218976819523377263009339747530848647014257713620237775346251219716652029848562082507576649014518990220016058461227057442408317604150693835370613327982298168718524589269296172437663398584397963888509153745814277723366904011847111118941125216880370180167490544935203619791021140365296934843973038082770643246910387382713959453035433612099687382953927360080008735637305388662984274311199350422643566509981010946943193644224112793061376889086818910690289791788023386481404603562203140607920378095276651577664072692672866730599836045980162307072382386310510360460638465999314910255527305005625531083287921847832991298627024706783732726806002366085209134591960640630126750631480513705189910744787382851913095417073070809723773947539561849774652743776642133745309427754755086029173223402054834436396551521087028768040262033193141357517615256577374166334786896796578758070005595295963702870895689594933463085686098440694965379000143595144456094061114169619365343241623035861805071132875897501530448768534930286063983571274911573064434091164994890119610176111127906858894357135445028850613008623020065469423408749948873389703126709421770703669516113106382133804442924231752181243437515396827454176449145250825823605310964998046978922996964285405055075356429891304916147455970100530102113900501935834120476221378540201870320830334621869746467535330231697284488242520426747596700268998446325735678062393491018648814107398666974045163295306549716904697865352524086923045379430396863129442877538917965344332215309271202949955940076310934587211649981530067793989513632778561123796187548340378789978253969498361567910903549706144136493272630137642594025884972133976239667132566278171810325505263550065790263808048907492557366973974520082710495538430876368027793955318418498141492849777270620966347582532789537118321187776128444303693818687954686920940518304037751250598274524562596811277621409366013311462918520240887054066697656395743880485874358614118851653358887095103247300705426936809442743808944839567025454461850949276737814620305909390704234686885192610447045303858771466823572642740103636415738773214136494612284173737830749416169620733294779000509552520311264031678850783655534077692453971107777228271107593535963269010350376108278474485716763261867053510730730574520609446940326407891320927068604185323419166624788953512564837517454654803825678304986791310851111871468210497392715781177077964528638808787601436352393530643547066652859929811472666058538421534809488307694791677550732038721049650819196543776689688518118670671771222527341628744505123085500464605923650881617239439728445870686027774514951735427900508377080428564996533890162802971281358009823190340799104792782825407298021674791515284135445268733194223058750054185479550681578043868584508411287585286124018207695662666392642080121330678693111587692874280371156779000013817343547629849220630948941141004273815293448517012587579406517864148600393250081276258302744630230202907886954477909345106239862501543680533262990374397875329039132477264822375651857529953088079087110162745323742090045514727186601856684031726304047947731507249122427743781910066478505477825565937230051879455407918950330861579935569900366379634135134242532322177028815646148295840075321177423709001821745170546853947125025783113898297014701575069173084686121017918767712646065024110210381873854108508848585552532948866466306356123025565870500024767529183642983079217953592504136701726105896339638102982988292069894799693907832367838493651166492413031433105458120871024255269271366444362056400645863842637312804787776764937393439766938190005562900968941501630569623384264120135811337231695152169788631591007651587805159712065191655854955005169655743024885955593043536639636667023926579303828835307408173247549748199942208500960956441430528750052243641288207270929236221289370546223030541441271455340800739434096636534434134429796124408728150915958499714822301604036620440241501765927233448515827869430035094940884303442123811551231283237142357611372201754589898967254673103123296605920482165726344498548902536333011809390627262946520664880762294400672599349825426671748433834383647586005301388422197723946895711668707422704951355228596301131778295028739565818024445440207615289473373679907180098876181204315777392452389132796164807285687268504299712519769451527943866373721881598130370951076071659167319482210019477741822935382778531516178970022547869775267290857390100036871327071073399027252686903815991020771538769159812130287631091412223613095185470756251513633090920284821439365564806152326034450278931085251598209519866050445495152714147374627645264526924182251930779504097509828040736191762219240014713248495208501775814858658134528416252543888340728295859551916779814334643807738318095297074799536175469745773552973844695290714973299635746561652782647100881835659334975817920072989523225229998453933837689414621012948820993358392995830858805598651036125916555968511591553130559191800563546755024708394867513630139300013161158983213404679192131421377283371745801275901089754116389175407425806677989275223607587889760074229088645913122839011985215854447437816327707611614125315737985429220451839716303619496373739579496885503981621176719847944584352675865244834823521508852378376320983462749339028227919198497252568826817408955552752485262897544848638926325913262963157118603050041459190030126463763043104227375038437658056107337936217739975606716806674587602869697818626734717466701936315580919677512661322904597164207704536804658147498530812911446337685975092984318946519459793233725983387971932811517856377542864573240173900484851849895941383331000102843164200284658732982378208444211819291535208342477048202880166674588648172338494682042368655808976698631387596733975963524130827496651250935174651894044259166713984333695724203381099606496993933998131173737198400715824870212292804780111272294596161629537598220482790132646292998174858554674211445795048881267706086054537818052499253915493096192048876926583276526824737565209707819437744897746392490854340029553289584265823372191902865658975680009467991275509501107729935132685570629123860143054413280165127663078166814912225924100067396084261435549010046154548539744581530995716873841694876337543650595189187069586322949294235960405301416088736851381751285051990954531079273001261883696739753295647266362812861844599608028384580369591687777025672659034849806918652977810368486924020440471442689208671899983525562332894891975182513649239643572173897066564766581166636110442606433265022183393708884928634707815171024336545539517058630546531255489996782030860668831304762882201319334680089157986483854695102454745072724743476364746566381062988152532867620523174671044730701107412627444471523039624533151791107971677182176627742392955856246681745143915463984033227847536098842722407079403554700120628908301256308143253756725944438825351316272592243927968634015061226288018839197163262755575603016437053674892438792042663649614126787587341993320275184625570571429926463308917211193519144052889946383308239921809911517898115043145121804485733494220711353552062054761397581851836805766684352039254903507239930356051192575575064233246849227736676183433774142799343559957868228514360527694069739562734853848844692596062995553448234900634240965532559261711179844913493404188443884899484783421899162607924628969503557091873096590811712887212680050650472131310724052763580301376029481899051177876353829687541348814870829145457814247677212384606735811375269470335431334060292147478899898707651276011919220700445123975221767755219274323132773149492960729985727057951833355940208358302005604561223837505121888965250556831670057936391319251774892380791999062924858446781581942171242290074343015674632814816335958674204660477574907357550968346586521964490546281836087570238684757505011892125076994412911694663003744573125224357508662752472127975041202716790632778895234948605308486174070512060269495995679626591998778471848281842990937932316959504817160446152184010595935784931266244076163899143970923772147513561403477528990675523038336723608089353151519882571401140722579164067374882416863907362404478204178832495189782058774383415988870828119265946531714653377323920913547593151420034529846207142053894880784030213939256793963313838369059185221554157157886962655476833415981139260151204088669410835957993953714439236797713687717557991493703205463747141372144665044666051178088048154295190039942660524153550705675817785591255145398619451672699514145179371892563475463393333761598397998408590163271997040299163848020211000934744016636199993417684217184852421929350956356265381162676585234370496513906661547304172126733869359911195826471371864050018071157209504222667127951124355709787708296201104842465681370906657916211462555730130447088607447195643897794477441779680631099801210885570417255833048096784146286900106007952549202554221707689149782114720117974728872963600366752256289922154812375735863956512840712798377798271558885035085212265298770426782832617027192166306979984101045446917770651210332135716978690616547877405847639622848583825032403379087054995869716494834015118821411936277774452564873173668986102532386935083685269804551302251021129030849440701021688680237712179836669269841634675688477823758046134459105674647037978007966656095259356779580609792728805779473435426049342656729713885637414888615467737146254201485845081304910908952173668460272193285820672803896411160775046909256120308474205371788905050858261200815978461023638453654444513994718465399556512451022787301319393948212612645181863027363505558859944795816490035282321657614955921292859442596002704040675545444974907224277391826943692110815480330869682322843942360275428874311739151168575443059971431560990817874764495037973308073911156392491655391798836509607416771068458279324168098104153948023130150831256394706465659890809183281369664140353107815227714907105361222864088393815274115559682133176015307878979197638525890491595531695620820600249744505234411598337789878160453220823968162445427329678994193126505161533376232369079659503819577343710962127023557983993544170733392258180744816872649487158176581294489927966311533434987952162861693027423245986001710081562317092585637205047977585252606463363257261624813331863678170102702420517695111529783483548079997588261124445763044096705685820112543428931709011961555911477783341033760015175211972491907616008674780852353163095451721456196756845894524252622983514107474457741796297621019905014431130740905970413069239873509351742229621236212569083986395176263531427402359394366080528768902040579961910642844066338194345904814776389490059477187054272638413786709803863903801459883204103453986469835718930751905493461185476208729910307332540196747118866866860711512981957369873328365679519573929722991341560250076854399669520727899895592483179315969871704456873651804671973851198451243472025071490284967207445106160196803743939320332407572267152755804570636457195741722518207966382884496089041882163874003951927716820594534752271236885274514490715740562548960241114876129003971226594284998236619829951194364850828397731218421397358948683255884109265782806342649682962909854895356986824400020600971226866261848020911827387524967370088738996460979503908649205634914883040714583746334317737484997295009897313237819411653758295994141317470069566918599499894709931999002059823670515092284413506666725737665374779330769764418166444140098785115583698344429713962654657074204254364836594377541626574199380598847858329697656074131842132035362755717210191091680420347194800297667752954258024137624256766397750207952991572415630707762104525200125788282521252287681765383389378837605402978034995556042542315450656401589221948199232278737406526651266748892437384116025709686232183453940950288381413546569636757049456595148700078215945308543948425360853035700098513864139413554766034963203808289119798542460558840134081833462530703172200444398307320646372797838213575147147468100568998072071225387309452293958569753667312482566485207749711020127443575877704958820354057773176567410215599447642339464577997330846381699210354510591925738133516084400864285626660699101200779508758107656729870627800899204402889691610612329613327213181269457538972668730962809796589845454375933928861282465359941782305044383350511822779027181322755048997912941969457056040355587080236133595258929740053542378008524705162012701058386995453465369854154062156795151997898164863338139957853965177542200293218375048096485446588200965420238911318869925344381893981992464270345039020931729704884777315534324874135977746897221920709193001833095631641310522959954918767758964944882439691046091572035003351925466468706946010078916281890331936676411242858262174284261164596510621232151819619709193867427838298435536392292709338618717897864472597524931332124522369873116686057740261109837590742991603741119308962443937176423428370898938079801823188020528465047472829317736707972975230644711461581869066804845260126149078368685349423574313951702809134984202823907303516486876257263946003211377470879340667509070880153610720544062478278872135974028648863537729597343208894066199274465590683095606745742793112375846340094279641123836789453531557336418131062350225839888627227580336709289224402050275643832429421580793682835628303430405115178542031402176860858958075825609198236276885248821369897834286570424132942759533209601869754313199114184134396164390115753091371204313880692362396765744526421986108406671241382493266159343102982705358015389341321231211399416507053137608217993737420095752858153421732571336077958100886701173708577430652436317627354916763063910696886273423401227345250919844093555320645636903041200949900452825690776458960798478302101674122629956856710069595202521468854054383341759447445574089364996592044479857312646948677131907925667997410910959828765618119081783630942433380168096463060886530868567390861230630705038723686345561504076733796981685141950322417235161950103582481220367381251072103328553584511578563203653865368705102612170135431591218922555522968621012552783875887783385027706194429907865772132736913992983191236517637498429198640047456833217653132327498483866656547012677272049932352050000229949604618831805835615750483091612002097858218387779919227768303628254074169280719679590704281359529678075051541731543957438542238923660309952962452274525660987229686218678183308910674058211644572952076797593099188180092279488096405143988564030328930813271238298959562721850246845971078226285753584209440375087431786281844851348436520990789705556168723982347049455910938336047147840020029303369574721412962071639944198605712146031057070652963597395704235802844640823390328719888526289022238077700669961542091021210327319367335174559736434452315051096215309632535221236758459860375690284480008796398639067130617891885647927634054715599289906319525035393972052635755491788086995529128010105134167899890741937873745584351969963529980757600154513667009114808555924723952399622753207657787680946092619737232677777124179695035755800960493166814290148948854675290278879342441714672268293034513771546176022163767387796316400981475387894833275606789748991428502997525313637772541378736111482560103732544419791210888151510548649363783168670609632747345324100148039716076036844029063147724847915386880964478720096379135462197969370479826588462189552315338221057433915900130465152614932145976243842872983414749640310982291217217496899797332514196427546608620902927815727827385980516944530754813098748352003792270246946938610735189423004207232502649896996808245346008094158171591738914750014152170567588449225131309357854718788874549269609152778716612099429303549257985178883305233709985207019768296738632308895851069761595348913177299289465532581878139070006017515315115297441034885648369226823443353478628534201623067390761275176293515623339361529028537082961276078608869853413054716158656228305045244311441677628607199147788910573504450006117849043306918981321765243414564071963424413151348641563496149685693165063485351290288196506190636113131740165801947945971431334720750148195036555005402480803997782026929253631502144423477870293006329111153487713704887627409207232468095797981462669128708668347292325995623211544729153935317483434985346018846243631842818254618583441445332307788233592143020211950327537134964294875581734838094014014798247877541792614806923950101886449644660210131956312016073108026548405026652192957960395663616108508523368176911860652231181511524956885089662773669589951679183935619126109575582470934782111385541397737796628689466255642348203150404204655599271565114151931562274795768211230118595081097409952847510904951550365086479323431789334526049246393623118717583895806675849957653062043883326438581043456808442921629546990102586555085663363295902351833257106343671984446170363483663845824189753739164213344500883562913009902352956715570623384510152995325388470395345475125334072623995870714213507783214312817715441522820079450887482949158916154262097015732691751015855755063773024349842043777892198540178538511797621237035768210651280793641336193033317562099375769979244537755429954712667090681679116721143625444235011472803573078080696938417245959181456031645147874922398939942365191283643702068273587247258052858295720580656170106171117957838957485633293537232372731802622169373554727715544552462006483162746781957712064153208766289377887580877006206597369907196044424856629459591942466459295353619054681729513884303756684122803011643093161312477871493847684252651589309775243379049505480838332217095215094319530743656937217493466690158567174748449035680433487089265888421351056205309832675119497725280518780505600770020694135974831000262050522641101947434239959572228425883740866534670031504754783198663461525743417874263904780996449539422446870997711675420772316531607091926371608166990034372274715091640958336300400255045163588313609108411287816881709092809215013546242848895080328755009564421693275654798496699621904602551476686760567733122411826399082665713947945449811936832746962247858884509535975931441543875492260410421872970775111564944455187314768412025641383870337628447400934174232399537367740088789802758988385792689686457499466219402464619149092372871384448640887400113496737223266447796055130442835406117048536473235006329867499877443447053365466447416061873848301892722415427574152471801166608135465227084124915664770000095270941224636778752481744086391730446716432588133745718383749975922790183136312970138492142798821746989502049291339607894683635069164316533373985244798300820434996231053053849586988877827031929228622116705906844205505351164705054574407434104354469125756461376203729825736955042240056025702864142055650932383585931546885291804497393243035893098895298174534442250465028743586794056584416484451577711921094586874590324448902250152352569839564534660760770590498846941293862123081023084523347385183808598560237343331645818578071340265480664681139970306221184132954219408527360566220796423713767878477502459931780974106900913845960407786194037438128959046164524129442015182875518576743387143214112683094501602468543211226035766192095341965023002038529480416222257670826831722504399939962015364063192460615779648072714433076847718495512982398118104421067797170692821596431491994607953697440945677523051013820723201781202569293899519924855665082540680674401577603268137884274420231810261143956932332399655830418570675335768684656024068869736034586632993850430614100840903549387149254014081417196130064154229701982337334223680511125801754527592158634398973235830047642994852873254039920722496643506389830659461976652294058721186043882178424588880652406567298117023468751138751413575966183119190778838029748631063863904707748876283606168758312396642437530172107714660389947145734030520565845645371101122182156913299304548329410184385790750117884393340738468833566213223984752616726619730566572554478237101657422286899788254522060093923705059984301244129625320869583283536848296222134007012864562022834933559863620717655547180612330044665089070193874885875698138886722424320877619925102875341575620057345446663090633065407101195581235931162439819139803139368594700175663764105878370908728644420992744991551787875128969614793532799036620512983052549821833811252672897281797539869684345384428772069005810329724329338113661498319316899500848086262757419570976675071553015256028390472754302817547603733751058218398208562124671521592146994177865581543323816101929395806507194095394112503730918188956911721192849122270755784235519394264978588136510387846916288938204486634825156623400225896241326325781534055637573066036602183796638475411344721363293116899509973387315303523427076318521840768104758610076726412484729802788823066218214553654981219332966715858513313726994185267456247474786778739804360520409020472825026107828233148459843106741837200338328513636256311236582778239312208036977292327683210666300177307830853731268156395567836965983209666491109364474859578508894330421085283314196243481100867022946507656674539400561469939490824345018357676629470903156567644603996970145782767865235603165850209160995888000839693776127694062841471371519880390400030926568716865579429570530250897987610974566552743700290535822395266873648286433947417558897841548242520221320285398173888064604580783445493163332207647549363399835302349485876910699373510921451846542759233662969639190840835596000867238890256464943849455847989532267534595911152652992686998821354238278867558877401668045225552280281249248974795392002941734443762985838239135433492369439736811432738611846212207118690619323373633132485283559636274682688382110360089882050558620502640333903724324167345605599852784289997730803511463249139487504553519901645043431179967066459583861929031843536195459028040127316345417740774994467915287331281426417364819856255325577779692384904436963637874399242378994805861937294853212318716132742113944012208963983421613972245675926726623765283014598261854600693578230211955160426259023678352582653339602482502792405691263221032316147942636390380343140865949556591063960157716850334379422470625777912394129093082635315745252349555887249107223047523349305879656722390302036998782565684707654398531509325034162693207472500450583971313339118345672114937278771556267805949952372510856313841854182929066510148656631894110738818764229492829198569032611382327329076412660066090380559538090629307616158513261393023382727382672314859470913031859619804080292844829748552163084601419934913653658660400459533752589140912352477386044224285020459935278868608225386171496825396840022087823691213956222019444391639332750837636046234110491391247692652854826538994260944482838427009461617052187835419640021772649995735430913591625679934463248023010616352492002126625789006340907384386233200880862663827493859172084771677159256383862495985880237166812518172361870839341256758664248863654936294795000377365253802234262620708976852370885993179533535305631009074583358361083588379393887730024987384564678497521494576610715759292514022992461192854580784119561434656159256474048808066981189677439267345205764660988850376302059680279366519641451110481810157424046256137747590169812719678309449345969700999728193402669567659486263792910372319874308104353758637306816259001510919847914498323934965127845274195164480579157057664676355439884560713385920385358806350672220671593048923583470998144548730559546644077324177914863227486974072329324750211703166874935580441927989896222998800843523609875573094026353940787152923132710223326857835471759964073704829075144172453889901138245400353213722631603824715496424837877384153263986497434005034736059489528348111838025676785829165140150347170702969100314501980208032903526284817102013780906749051741701138395356274488159424594376497427485224626067966090676908860043189993528252834539652117985396327749921706686884403475634319979836271279800628351566399224641190582649267594339821262367840610656133779272087404930578399960270426495602792201835315579466174124427649728592266174352096156584058159119723088238009621055841969149077472786604815279569288164358606516515757591725120978660879880648730557231075820446283174547598902402714312626947701204479100982170190200161993936095571920854836407426830047194005476130912446355433961591570025452810444406082243099777499906025632754408668377374372495492107489976264169022521818209878385708251421843085146732564858020394644704083460612575185622065560607843470104707772495548968040086085464498341627272136469585235987246408165239719541612580737596516269278515133925632838976190442311475169875438443057147170449591179833890872405169520585307446607770207968229253916064905653600909896858843857330005796207616102614718154226967293976983425868442187556075427681841114429329690989662240387130091752119648888911130617056080403878411432384664796876933754419121400708811573962382255400341628794864002420038655948929728693868623337338642160533151052012284124037437864013328378786210923590942963119351831089901057519947829697519941795070031186366673516414290546545502110188069341406599163603058621840688321272275633606881895535342890745314094131612152328307231093203147767527912322325498078839568493627120349513831703075155435228140059995078609190058474754295727941282748467302928323603550390648409775664113671309712389971640144438375509908039639441587824089775584011407695512512411794540846932986028526868844412679537112109540856123944495009177361635268429625041344416950394269350173696657935196665909519003042620945248605540777919156342604948912012673057065789676943983813960377287386433668342103450362772517635872684312913434916957644565572107801032110833494773548145422038723741802809283808808273868249397346175820506446687956675782753174401760584210974787711533095325067309615404786058991188856437254521196895578468780850511041290720397562465356151111125710961289885729319186972559547129487868627155143263437783117500317580078963011032141340304269545192195882747244442175310535071737507278213693649444636286345888535672437899691299225326030156800666187620389738583842483688181310223030340446466574913630904475022892119009586383924446060595418997150829214385248240331739647949454459646026591419363700802596873024698258207661730834186999652627878938364808798757250015464523937657854023789454577035564323870248908480176341958133175534110775411559179310896256762966892185439198945176175331904386715444832927284001529951196143895216699395742364314925072871847802354569621289698732409482251331734585788079137811765494919256180953019982994176534075903422006717335141088412160948767585417036795232676863052097693742055047928441777769729000008379475392263029794669832881828868533974273870123449322059569059947740960143024456706672298333428565812531412898111052421639400931493190588314602554900220265293476343038239648381690142575483569401659356290754893274685145446186822479482259184144849627703458898090238585828959510381518453087421526985765499179182284315309616597653204304523032834088266345916416875268951552398445934385189191175834563313707006562447273970916730407980343728310022010653216314859512898466053469463373665004115202614578245977378375015596496295513831861265022097499221191888399281952074211605429785529569731712072848767418927032886719999847196633052242428292706343028912407645607062403475048049947159042390998112845731270113553073310416567476542621633115087097229112279645950144816548495466288407191584439014820467616932524127134725059253184844709545022711555859319526136328977608430652771306321188332447358539142393763396967331024537613970191679217023840277222312394672625010912721080953285634338076143547990322987686212894907935184964142042117914573020605037661728937175938959281090663990268276574593311830510731680452321585891852801748744112825410985859903403520360517550815872099854196570248446538517545991841167009869172129531661233011547982171578336132666122746076726110487233323793035698803088430843669434384846812413881345990445083788400581857573045039803452747941328917317417009839736354791631150084557407229526897161092812978718895238202955393342552297845627310898470897110827235608528268099333091657817571290145543296743351950724405683638901266077166761438199671065319316884736233558528935812860031529923863224544551595484153474201895598934569771521962437588738924454339203781689477001423485394514264467580304449247701523354625482715267138252002182116775152731622824716775557577826335745137721237304405098374103561896823893703397572944031923324541465272661033004160799312123985414427172667862060841082581758269178793149668672425831466261922237393647385369235701940445197571233797571538833554178794544609655779940261666074218850239417594876564561615307083634395905986057081306436975648891192411167403391092098783397884397595371803150884781367494337231553637787483313901890564492997802012116276803274089167280827202516795862787585383358159698099050152207726039529899536337426767659059157654934327938529238493659438542428692607472713854123388790059874335693252366787507186895171836036366362213792073991045403600644771818281657314189368681466814535347561938632186840286878798161486425543576164586139175177228288410962441817850844027337895990509721368370806598778414370957150692657737479252882819060772600477770081405192674222799057224178311633606786094773982976226587760351331323771955988923766206691988592780038808177416788556576861245357272650476871911679634122106484522607901544620422511209041316116138959520304264712167461790379161146921478824875759529663271564938015546655477227224875986450128210280829622327275437759067434505379747412863278716939349662347968044060689281844307384182468924741656677004169468162098577328236680208372375147973751078596479336513448291126335050991324856984810612292781100973224785798239926093766659317195301574313852863365160942400200580563846095788862440394612448037386175557663811928254081017883256240253453591464597477654189681148316916107631036154292418808003894524713811421270069920143655353433481046365457885864162669121593455074027044452807853149682215510526992880095362284128354077866831533987177570380246609502037205583548400006487806669876626816080787591185605112006829099125138546273844444069626742456906512249517986403536196877035364567120023329885656012443760068968024419975066164141912459502540124938531577349893631239042158045110712120070119438147312855891941256837422704924219802750430849782503879544708920016879543129071448201701581841764313399990257152091367881108388578455390819061736092543722679279375177612274070526707571783877540213936541875114927280162140831522796471519035228319771663849104346079014795088367584390694471728603463425194664504286629079662084585310658678357841999164720988610268667551181435430330175911741489331862882145049747449991767602466550516535120574394224130101233680898154119984049573030112487093132309785746024861164749175313613606319848433671888061593515298443565314834277858313950916097644520587674735798242975967461783703360323322867685238735406930822058368469917941322933061731632680295831865323945035861856196097299495011881668360691243201468774797569068646656340154154044866990928317027524463531976205759378439928026818438382318599506382394452339525549450719679393485942412375584650885024862466727458377080286687664632286880114298961907407177582342676339507427768422765227486486425386711077018978805057882616036955727580867291409200744042917037891183370017804634669614681458336030664072142742379218943501565586291369443415924831164204132904979678700476620058941945454792884390235685497890928298369906759679518362677809993300273813739045557354982934419324257192122850556652259578741264937211787869903150183533371787794307749262935928868989857092287536208190518113403757799083926134167264209552978244998339299649116411952483949894557769735724868714328193950273064695168697193623630788011059238822406363054697295051286469359539314116888936325956765775632643220448882590001325915545523265797370108253824904777035669961321734019059716044014207290281974039215719964526687252414095811023948148682050103575439545146330292556114488461143289138147753842588641341699475608818836564253777848034869094576506599405145423201665051490152512641277075394671821946879567988396054966427132205923948181951515499094812199422167097892313720761405004584117065849673188499835086524785232202413990205237775640295523736790382522382099241274216325257780018125075701068973433966169809675764179999139333573910865932065437873156188273829525242016802643139420939717574187982709221925788809521502588512987644659703919523943622167265029898122547008196865814639867469192584599941163809078665284781747875074924722593442982917216307962478699225099800849694830762764984799882988590503480275478659374633601631156217906499845444796974307834819305582518587332004634618294065837403518467195735262927783303938732964291210050728999756739457647879522810534790303178194044923725081969017713965879873510601258659233581530483425487984638140432729318682968817035771315770111643576140273988049411321830545732425583089116277312461477321110817972332764110880152950912825797376824792915456828006909228228692896367209858097229232936695535900589559307473643007278535156644999428523079644344195228701481484203702355928564976199393820679671735183988387381831150167542381993335739037934081589046429881514315493412424884201751179175294668597057995930929911250279267279910524295246230710747514315200939238455797032288884629465600843159099684583484256922823693161536829967318456848074109524335009832711931879488601865186560038456888911419821158516048749398563976820455286615824890949355212776459093455847758803802894949051526283143220830134107436439389350839811564566091073665981426609132664729757495421010030797155329721808038708584544718725817614415489352713973201092639335058527016968640553720172530864805455217037741229184463318358090460161396500424893650200236948737195516203730183535480761534754296717572367362676554760063883712388567944346927634801526558081603367977343972866805395838046787194788297489864248225151048541271606425563884551242056783314221124121300109681780165450692285919068276744025698481248035905970689034596911430912044813029599661434865399328547467459641123442526860735837446012996228003850490385553136714436282039709756539999216296321956592616312860698163832110473032401278898015440346827804054714609712038396882501233435260119629404497628633108266355956178110570025448340353343437825475385385501858057387886003619848904315880181078395965383384173162534520629310749591511729455833236430689412958863244078242033591149249310835027819369771671742475397841968047364058362748931385224819062311397461469197621133796495029898242085381943450467941408905128148280882899498884779331659589157836544127055003464652870592450577943229478375841957915282188424381419070330255588430038514130509193644512727705396962929271049780196269001326093513106600257067659972110937575612419427593770032709195382152248760575547117449590857924732232548255651796475582893305253807846756309060243309713758733565202201634201153350426510052161496920742171758966659824812628227868254258512202563756760504400270844387298520577264934206300410550978799645984217387712009502514515570597687803173200642277230636888419098976752829576172883531252072365976079971736966992468024921791106202268906903500035161126647132173922625753384816087301812756142650296015191370030081757062813865637034266886482548190968453806926434848329750447833075979101041018435887486163348294834326227199016948845487920362090679604474233869929547215717464846094376199489636551886175011211496718322557838314242104266907821315728175834774944578175508943876199658543806146958008609813008107238807877614222707219082098243696241286517823762109849250165699811358090574231402369672128103286205381102971459760367681962596564565844409072902455490216787916602809431271641583726745660544508068192716187816935981908936271775210797406610849907858655748191835230209296192298219760775270523617833011446639217849188547798142585079799819763389757009638832385752096604095255442592472526491860460518090289590955614474022751410134745825488348711870918667579503704932738225743990786584534313241794527744050734433012601423717983493324883647372104938848777207035103517808383483011410139430420342214791173349739675376915585110129416595136845901403018876930128452433593799363185263174462039400764410958068107072621952844321428223796608605666455624200384963557446569976558486044697189783483699245222936025027655210290222771219168873078673040223793556935612024832939130222907738837110358985542912107587633794621230857665418496152329908405544131646232184539914863255150361938871019876025400984802028973908955033874070491341226235786230935182184761171751797087535062833782872747649799831709249616991516788846501144692706871638725440150862893029175770637851185541368075172411860038887915624389755988465712125835584818980213071576472785780636467097534180771080080302533797168685078803465939030106782854328618286150333355602954079537433011554622868613116131397807997468472444513521141026877905917764619484167174418192592642431457316427810907524053212538266620090680704232905754360796295184802325860000935417467266555404886378567202399751480355707775585504378483841051645741738436081246848764400311183391726744460334454975347832214450534928497895254688430814863695661598428214542749167509618702634648010612436140179336167192542882218530246342034776125447579113256022122922275270695553082492440788937764967400558464887354585077908899474288170168107682433138537448101111221272660825391493564404657162021446477267505424726690090826122976844921009145657048573453187895512637573189428218845704551582647043699562835104372640860549859022023552381488525366491799891666291944154340485169846252527894218978110220731584592002226414441723016151097910370896300539809083632246223101285453585153290513437605832690168827590869662310528230801862393822308357019892012229525223511674264385790671976552115343456727016835244958766134984981529478218102113693582972645259851685704805776059666395232577667755234365462522509364379913403430401879953149810434248649881854147814472417756995396284084822499494560198898123770907155586042291620772584120185074284538912009718102953736781299849876795460180017987514724449790196884254941333155272271506706417650545789295491820937217667391420264027532390471179399533156082794726665521048326853721391624014533428911766702942363556351732028531803889610120469555503285221048136030414923780066275688314799390208737892374689974686054001172428891288784286304060938359505476954029988769656748797377481999360162729795997589034328496056627771169361383416508179251507692744582155272819573936244440973806255535456067021902190654700188110429425379589665998174958321120518281020329463144575477035850543654822099149222061632665678575455154462590223012500634253456715290962508243694005271292034379965838012934632483105179033813566772191033258741778471307315676602881398713236127256979057960493202385562358600624657247982639154406865704897050714244354294316849832108624905012309935224522266018450683329936891797555264130999464632557780978277015502329363982627829392114969549229775319614849219511228620979657505288416089235049698875449541784800128484153882575355826616230115831235083532866445868090160271183983481670446634927436528830617074420462130411309132479288516722908989648225199560453251755031295964592068736905238188561171490965187207664464542542431536488674611902913782147256393304312240975915712146742794693320433035092305365635230275975443204626165219329475081075312844089001690294520399981261126664086788284448129470918382084732468223557457614710839064236089951502995839609197701534350460622983572654870752111686193651180931064767903068963595471255627875577180029790990482492024523802210267826367915777034275309018133054005414325551887965418405840179511780653450306763277064670292623139991449426971628298903078496070618659137251837430230835884970819952207619206716476377247179404872296590066631295922819596739187155291768919175061238587216672163711068515004215657960910837266353225229272479067291259338904260375504812609518454962472498309538920344407556084781159016293186448414823486288019876607103586021152055303481004234001960951201963132822225279636426601180492000428849966492366997685749412746993402763916716841378425717457898545733793122804548699079689606018315841759658518429442550220060281114098514329245738882377834905869123772813649392485499198245865070114383403966981714045119244259372334615504427017783154848461144447472644180720422192317135574927380437373586337095884005357956405059910475342387015275252105229853297453246116159186153544758209684844218793620726471638626986322928738009346383614864679472765898574901476542139320140524639777128811047781227950261646571420742572454472026265806122351662811594840061892182804995828295008498866498767082084787031280192931732439786437784580229538254191310442676128164255455921099559115234544803363573858811680819467945746984785642263850719431372845478280589339593174893245649604838383414180077402568860718940276179359732501654407691450794544106194247610757971746172394659326973313416477575630128322361012492601062793222018097225385179750748624374598600495680965319111391960387569304655886122544452644518370720188144128915965147853339285197505793455769520147865994668741553105449519762210611851880689575268020922798015852451551088931981430275616914786689107924521330119395334877951782647221178291722707076368169313233253328299158648249172034059487990216496325641920958239279673458459891413988489492301137844045503433228711418589018684937856180021828655019324744598491958664896548225334540385669397020695029042260052154860506733621228342700532413404946139475220875438052169103472965067696547547737698115279918949174486549584666167800923249752729146097739172922086858798591483233487402297886496890255840032230460455902857660566566303955231444734260967895514473051519120428361742946814156675492408465232169992955890202612660721141381567423467221544522423808513965759267988594865222888384207564786015869039241669083990379711869466112809254459923639624549141051786280901962234614577684798852396987530563998645021571363612785714843441329220526991654928973030926357446137062676839570291502060147323942535226943116056054241823496683955219506771997344136826778456493681217193104768514167277537229431269281526526578926486125036594154803657057239804754990006269249734672135158602661290180388285599689921941607494770050698858487693559102237636704022699006057465834241771662086681963593048073145628625405446669016095147833005380308916933731567388341448757442406303061936391426075937695231001060855197387483212889849527967110190632473299988679305911880437929954459670747213893215742225008235836149671861786859396945186489899208459044449502382822545864722031076695018643031772392382523442760744459882417153086510646902139755148794722345076066869531952847540104620990013197098908275748886462561302407795246668059936925302170812601525493937345083106053556590280539084029842190155307913827390326787975525808361022524681610469898270202790660907508697118882299694215026152426474423464876896221800237843047596194991139494434622326871874174944684546523945581311109383453432428174584894866204339354155514209081825189573458745366780645665392695669469699646838887601341529273415291083463102129861188326526923359374650295318769688515298284716268692279577780080862430583084423365849814896591585604052271978518520640458452045837907329794919774779176434860259365912702938402980878836088464615574014147869895397662709249758582332521029835706118222456321443818832480826735467769999555652859243951817932263108484342879031722204944817399217522147835270176632165088651296887560278094480060402612137512906106628284697967060786154237737265018730405556358284935752152758016201777888903642107801723578128290756917304359849230040106638069152691717343255957930669649381836846225524706120647869466916623024624425004919149955749629771955350213453490277833434383876552431476847307894181360943603623901747778056825078250462605319932129453021198703211272688475326656531788473312161184299736362499329156128400839697186096800785360790504240765001029411840729253286566473704952429726871866251856573915424829111768313181234299810775959010812145990596144510730192060469336136907939587078630741620512024627939788892076025181141591492952209978741457417518376688107056834107068204279122538038300236715365204814270923336365697268588831509420460886622178623014199025298912333791411228836933940073589144731503337609492497286702278373027652840616644353731022167941700761720651800906875830135172531418208082955190239376985159268865278279431282402854817171366032041515832926136139863309533694097947905914843775682547440640750649815336064678565411506363216332656458900033979679537037323114342025059314713601618019281170304166784724702575641314328595214285123193429277515775878151052664360257567082947532678617290351159471768741879726616597334384230395167102796416018033248775956557413301339849533949769523804814550200906992070386505836510505390793766358955568476608129263417184287856401159842405836412726409363119426762681527670727321078744286517024326890898621904631274399359850015168474967312546134679321427042272313475082285644266342560974131745576400547437137434442425115401619506057058656899699613241327972721298083602360958086568013683822425668425194001499561119908376415830312375044559623212673165274289542393381591472206093127754782872444636068795739515692138794572381999777867309749919728112767448494778196408540526631671760202357981649826849257088701773422235349224448673158441728195978355251300428654713454949028716131459573403769789370385745640462455333196645528485411278303988156481286595253056687156468030727853708694785865032889440830592762743647648581789109749759367956943304021521961883955569714516087007661702883157715174570658439366537853123925257499639672131346721936501464942801967141915005371478761313554714079271577333272844083154668955631528453630006487375121860666285764665620629506101172560513933622956440313258130747509594307325858484677488746776645032581674980393308095570933114910716634907960311416385479074966024144573922135817963798890332071517701476421908633174538639907074843485628630211869892874042699585370298606938744955588810775456835592914210865751864410681618184094706375704170920634379057655104197073264788925497989446968895631442656277509334866340864475038102299538687721864407367875912594381426757346171131600814102665050025267551739163863853861214943406533202562403444938277145422160351687991135359294057956594820203046974106524058276109849717299204118705838041316499467724630974845786139303314299104105846621224891923439331065719592780758836039938484075357683099537961524036470902200807622589755211220889952174511801370101990264327150263667359107444706724841620679261162817356068943874548292265530506446157559092568771053858405270757952139043218044202775069915663469882436693032086776246222171135478953979025711217959311414180144403694175255418509624559829498995138077759560183651817961670280943741574359524625158157709134476029707615712928969690518275363779861618796248824351091992058608551278323929474812575546895934449863349241535725239158020989405094729934344399985330219129740445777839697055905992834514251225716692891840564737496031304143659509052087088441923603046834399634703588185064031237820736397148047115813411065048678654935620343473297993725938340457860172677135398063012161081684247257073134905333956868089050203834383065813304007050791835480689345027280160596556462245581055776897402051039393031714545769942087163123194105650209388625017762792485688884142880253190624672002877830408260118016838027933036700813610319535565267102581848381630758987754896127673455332880117857086685589128482055178416471885111114796490662769322587812981738816198655960901743950363189113114505377254945660241512740985384664633553163218948759243920875149277501670220893850561916798827320946736297837584212642732183553820470598965813318091869980276664755573402352099040191254492756407869261218127322421325730292626335515296787083128387726930382246081996824754563221865406749650111062272848259253326197359030211194549480065153329742775394387437351315534569536249600671345390229421281818166249495106599324904973443232747805089588478531635348917532518351101264280413140609255746423522763201605012334638892289682679867341167250862691056997480239249621834903571739952036663850332302301535525360519796938731536692633737447929940454561010324778490807216088298179056904196954629098842764085703879933331022076854772742245836244190463992192187294948994430284346490875381650264601634501690873532261593337595789319227128601421294369443253934824028640653148381886793410996556886541111914559642192362618121323489626522721171227971005092955712499824419066739452018368035833748861486237242953074340766597347779064663794462100092308842397703763350600760286146842893696176954754507772946964058780553365535918589125435541925271106969482201113154199553281355489623518781179718983206225358188521277551859780059757123473340017444713549811609553628813996754332485478061203851914480319780668291278661376598663746811837573615257294673358005556827276757082223795422337490232977645960835254413328537293820712792472424519338834913583622062759036388844307468051912958190757870031035935421706541147264690550528849840615168030255879883306497046854563897080381099254877410480369591791415397425262898397500615811893906680366121604943654672709742871911811109956093907023499955201962078792792264063864681942486016186212443037496825428125462607944890251903732429483802023930683592496576422221579038391442167397954554791466449809443597950606895071601070334404889816236554602235901544377231665708211962288996053984980435754702169854506576391447143410849797778494018580181216807463457486146564418534182777155429542868039524522839243483726936746953682610186141885053089940652123455529648936221918830146777853309363141032614437692330387184441624783132785600581499414980396620349008266726793703837761125780567221474788372909796946462171668750591767014006234997327707246095541035609014255097931088840685395491778448073626831486600751454475608541346748863287893350625313255662084308029542341494862399910334531592626244795700581749393047508309714554176553790019188619605293661940742117977927904464072443052362034962585722949689327792949331211820796475940994287136768620539726497346617025424017523260690654572874291981613789245217008570438054090424088523346473682127352546254043473317954817780225835526158627457974766352435170091046768921046532871697541678858024651296962356342527488991224345566810905960209116848305345682257759692088727892916639669404068842309062750972875864543855041991717245291010335893281869468868676044374027410804754638725236739394242703806150385281406689035865644272980860033676623239296279636726694088470727710118635129610839302438666833034967941915492314856877518687770874411771936270284751054025133081302511162103822112342421890019915676248575067679996905531676072583545268873017416881198303059513034331822661319017774494222851683674985073218167778824814977252250929503483674412006592701852155537847003373744428831962437182427344632439053234892153492623971266654943940753575535034781414193782325342853718457279963698618409912183352255983217302321300074143414992287566257062498964853707039744697289302953358300073126773204217568490623272287282070235490854997246548221528628070620767811577059012786061546614465718624756457857037192899662361191703620056300987802275137227537886613714210638407112847654673903647308020003441621642121338734468825825798269386700464545934307249791500304759858095419285386899909054270904106908708888334899569396938351703871172449746123824580490787567096296288487606144101960556711478265402144191692983622579390294613584674409002832746784181672061694677162312424815011405160785649711564880634416457327457477145783412503950663180907616771930163655480680965716740263574775802325039077887731981877551292977711223298390348660179989440200984657626369241735188455104555156681862981980639859341925361210715283845508260576966836022766843314101420018579130004322193845665055387978438853856936927666402966086913184493817274086920397217445049911324860657721075917960594119233159641379056760235824822978355239009340170892122772262466022334555844946416796531106265591948441554469729878469840936201502172615403488610642641350135722934066450254074559246239387860173631752495079196838469264049978698864431015307176345648664437819471419211113346164809925368457173599152164349818615738743015354850842336463882788959400481195163130420880906863606233113272059056124136788706131071654720807728705342694691491120482874307760065597654063105569876200248830943400030780101381820630069012178275612801963255094950655590897265711695738426157674353817060431374245228778258135257565339074104418063601085409355542186647404519412970665946240437680870222165952810550737957062653984342449465899562577601482024425808311183992209275980577325775820527433657783666734234545405140360975354043968257337746732831202263126020461523629754907761249315831013224732911744656246420758887489108528737694196767145380596653678705585253109195973883173012325645204889354689278749116136282143643102296949125773081916156319357800085614838385154170271419190921542014200536332836285791369110065146216352526419520501862575117606397561560476468226222703104053615481471539681651176759540412960427131155070503235625372811767040558622206548635476160048570610935736995113782355272128575541907734540972621081303642322936809370414452280391483017975828930612850938491833134639603097322552905239506258380552426077696928448950907580853700847829569036084529204330147686418382199874818186092680640561521757436816420945491620249348349294313088994437904766124505504326779634771313202763690634502516135328532804259796246401776775554988381661398594411396672915740031708881170718064911751609499071521585587387526973965919401192532508005835973295761643769826663941141580185984344450433811497606037169118877786949687379629270241645234926510807091937426191009287600352199453993984517731181593520770284773426145947954174975813118457783844939686303501333479069658052716975618694948454791178660707043759484419823720974721396291474530758357425182610157151619918367625961596493696405202862471378843259912328521811866108998569230562396285581760014268684005491959603700555954317315550366995886718664281021580359913033755424564997075665311318905154981554732495976339406620825653573178015537925468673026103273465395271889078122865778231147174412583675582920939390314531750080365631755440372755563907884730363504681391066651027465778853727578894248196167801583909057520028242149822174263574773525192273903308167622578110744411761572937989314327848204252372860981656289884242216600060316832230858093201305794726527706024239991142171790471784372042705476776024038915389984469801817348711526617917274937692925851625173182985105099413023791908571492222890221263726199375012582185757768408904486556830613442060893716966855405666909848161476703088374509090864817432423985455622413092551325873486926460362834122820716758535478510065110143040868271907727404148435624696694626205463394768738268032351039111563792663797307045253481938437163453035826016570818103191004510518070727269331728707712105790091818133950332348205026076812510549420977660973307534176081262531196364739893129964407114246644298042247969098253934329826739645650628580731502213335888942826488090370199186651719521364042838737615499360917503086472157059282028460689646087446903222342081649589428865931734007469388909632674801471853483797009987257162247754811056012406954372233998490104531031697330915355654350587695681942248713696598291062670032433448220390263767220096554645300873604283792979606514069354144392819320437238005108521792209502982250402561100937110122366692518720218235776303557168370889540822371970755814555809787887562577061064728461685784208065170248232170193226791595834514970506792371668419199687262977483886687128945691540698963692504987411290593822578521621712086719067405856994731031107531032708393764586348893747065437905016185325247824856422569234735095639890824562660913471114548647381890321363658600865586128016119229963150582571287498822590046256793285606140228470278814302492620982898680337430143367161207701949730061543740856710941666869712875511625563315998939088170726345534065072658453921539864878377143922441498356285957344593663075817197346952950239425625535789259113336360399879685458688782184802415810298152821809964364141545788793209501280988439794112829596233253679758122165716218797670384397194455480329922348921835665285795329608932159312395636582595948416108495481040419535913619874330298545964094518901527106290581843678648375452241226316740657991437881526843724090404219450563601280954417973899502383575647929667862571834878465634380648996982269728601575374427126254612722237629547071002757369824525277479909997533103136798679537837496220990809944836883071820870984957125509543458635850723174550936800726130176474258454858458448938753892632273203246184676406648017500159390317420122409851525080826633122490572861895815793829401836034519862731883300221295849139835217867680486718631009463809848767795051524615134027819006720217458495361360953608272861195840143269583302413115830920910645385879371345845941569903773297316343355936571773815392432526986329726335334589207901981527055045427984997479046822121201978010097572906946974514283207583673143657347707882291801385767778062132571474654562290123703972515402517774881509485860301717594290607997263035578050384101941245276795430269050740101293286561093836842686327979435534093515794033231038562678636047353184477640774524814413441049608214665797789113299372939256902514094988150381088458872778954244796463734961594416718467130347169061958965988871422650626763670065535769394542306062572368108069575295835281099125674412584946431063660953160972320978204256359752976391951477762743721996997395767863915528273266461258656918664062405004155575129201524233201048604002309667465424272873031691670760654193291906459407216943633612887186357619220043050197355440354183443793290040960020289332194896145784852525854004273720837496034096187135688266260637438784921064461121656390937631652698668179986015581436426651198063581829001437957083008694430248762748496058981903524373229056279133025683290753054904363458408881873661924466919778798571353243141521057271231264333436486445349983548633153206693733521523472277064857132960293070287848430574303325560417515260884188338603670714381012358502369351267355790315620103668045293427399591261902905309400694130603539131009741831098349036607306792475290320958088922996787508652199188974622365578195969704506995401164158762379567543049571194222574623394900418275781935609979843992234839018156184752448706062061586052152615103425537000446216674822357788634035012140210511817588330886230607371308328019814550541374129190567856202358572720347017379612101290115685277549749713443826642711762583608661345879266814955516646224457461309865084329548199014911520412533542996719149364164478339208335599359284065492141106637762485894736360008407813642605907857238322328483633782099846703689992759012571599089094183913478971606042902630740699710896813323145299209848413839970240549850867305671255805998136168923212811189710518350491712609484637603827162068809706358910227405488460098035377550443496340728281994909806363092857005279796908740551339605853526749900258753617483067612309583540453569137920397442381881774756413661072552353753956184013016613254664509615153076463994012712378589406197080045086108331847170762867189788709156558807464231204743991376736610137217250466204890727685553325696332666521726063322411916197372289172982242277281851977077970234957618292421774972531736069631684265009787611960175483609438951539155410787948985446581924189109425477687830125537611937096097233420771375411859680567371320890120321631518597309349080519380152699344684988675796061485011855851562557914610941378338625167581494548241206879183041779353007322505936695366447928459741858045881033422076988965495450822037309220650983813885882982631682420537247219349583671943087511155280260374792370625208899368047533769027834063916999752595997233393437510304591329038160330402885488069985544305309223761167876283747275103359199033176685531325521573806770564643600756496870492087943461535316347687680568380917889907077174175654788687300771390185567630978503853836376678645116388909653791400308840239072034060574367646734094214621951498552086040811849277068957124195303330875790034796717412705240803612764340381810962320919067076373754277216832525226927916033378483274876800401967090374836268171333442962046661009183927901254017800790333846106513712923641596008831275793023685236554130191554500996606054914147973605960655452003320311730580898429914295334280169461388830613670588678303209312638871239560841728078368741299065134636957134609806015599550765908579133650147186776323243675288468516436268833632617797415723677669970140657823425134837387398080751720990906419517612523226836589698440273801613375963032726332438433094460395756092189737274061231854291957408610198404228905650596087641488991135163363517635675203208617059275960793963566993379035867099343751277045836667400182209184236022516467141167638215370647905900915118411778588580780061242900951890944778400600394345540799316691688332117005449225244710111830192277149927630214999491091553900779322313642610327089895584037498677661745830695840761080020237418324598760470361432836247826539202110892689103789614851304046627759207800756698225989995970550355103000813688103555830114144994777066915340413074866771534254622312739804523409230876083452278367928776487098061402939507102647603752910015593377133622139280876345127310954712691373538163933162882892924015668332495717841723544213240133354242064836974468105525948201096500107624096805106821813281507761574636347681349312801146021078003007605762963822020361148510743392241275544315013781103108020401748740629093907593761390111135971648723983503054930597200646620994739873710977812859460671689418436449031055180139123945765347273991393433840418362270942804004090640996466083904783506697732732864080996977980505198192611331897646341589393465396717964119789269674879419574530130116603206202004015645609860738063607558593038008090738756826666670582094777752671652729126706510645159844754535647853455912440960432699300793495233392808609297045495119079539930318694270193122583185049960022177599913172983624225203582823440430896159780821897642822473767922746228771900266556466917278717501417049220456681102014541966676107608875354352448822420265828548951927695228644067293321475556671928014116746636350651439730139882583284848500757523153327784850919313196945287663071192507892932800011281628042917846854929403533131329181870972008381606377136033837743296142163988863380120868870122879236140878487490064317406153289268144619607765296331629264469647695732522515637534192771568050568722105177530273497429693987275297509344965204713996285197088502998827609190227831164388506594843376404869926621844017846492564706132834405780589627326194328091619712437776569716833786932361070817274129149643522340070545380151717188854480486217230800449942761658513275688303476341199145257905465118776022537573899063948294199619843219826322514055212728820566820854473491741807740350494953590708838362285419393468479584740780640133247743090241669769032386024388426684469130500487927303749294248742386858120906450009895294886763896486700137667610748959218557610766935741957071792563251591785513760269892556459109608307149602949164281714565991108057985430022751378542654554412910646753366377330496586134117149719824464837008254296552189861936858243238989202891259189621297772413160838482964247733029049720021624583793645825440133232889529292338032739879328118489355847730330636841581806754432231968575605073993970694715527536672157516584442509896787360134162040153801243558017226321869397389061106108443822968343017716721037696002928402968490669596469630494387788706422140151812520330034933487754855037991897842206491716890392560187925626680703526670718913217291307233232396804521493892470281941635062664493582102860014822199031656572468561818910918365156508925470856274170943134298927897282943197810830279787353301549671410174394665649979525865795740633892278845516560940399988401461398806866034826522628908372374606227115114802937226303073937849597174349595177529462940813613707793600019726829953576677010777578129881082847438430384084325029155119640303375418849394523941505833973394218493449412165666205139171466448584184229222964362282685658430375036860762030949206025090473504093040213778940760427927299903561911814810477788013761248439645624805688603007442638241251190373584758323899338425198705411009114611443069987349556783358376372649487920661117629572024895482221314313963414837779062745184057305811416480297583345626093909553334215519578699487500341115036454403520927662332329123615745787501871316775918671326547701643731976152633779029495032850819286805091131049266553769089449554379136754187836257723636216038335041328123284013151422954959225231563945642204820185798002262548191437217168999337255225352087025149715182160132346508291867745646670193310627086243467463598198160555412856240787950261315901447843768098948765426997438462501642072658767355299015001582105694906563844087850116832888329993173845710776454116757916092308672812570302980440863419744150337026057203254382277873782397917155459272606146813402684422918126365837019742681453649434597079199815222272781113619384264919916829954654218353445842094092172870009509171802384257402337423873241646229488725395079468509495101896224291458051371771827918144126524930767668762046095427582040417230755635431625302569234008254516029429050301536250727925802779999438298106685561723169858779125925589557348163598588608991031251205203386203762197455473791648202903386277650277558915871928686411537526232507254072073991566688950192512158858749527124006673193703228771562268388977113350463656186963012057140023849816097326896696959148194313820633402964117291169900579719492576824434343043692488386504631396756352649943449226771547992555878070656394494135767030829872127858543401751760177584290404091422092647221324284713645947116074684812513480306198416800713263988477662191955862120261993926934283178253596672767298348695858488146832760384581729720012297018904223879485182291143567863185455402633389856729865061159651952034953465913623980141857780953203354081485700102429639013557439524876616410394671643419201967036120329074313081216434160393171331803579947159961421864129040612173027898091469490918402062402801248018561963310477738781579718825392946280992033902269363088045271675435753856762098617999192514967447079452751016169563349163355353391513137828554341491958140909180117701785955809772289911214055398902311351125880807267009986092385473841915147838245693892325298892839285740786544105023612705731477078453476708822953201791175396292465070122199042041082885268058429718472688499245293809150834019550301709294330752603643264458364930806435666945252327811233561803391823112501043574722350658759718067400180957076836812156037673162772795270628404061908126316303181335223787558600913839711639329582640571730470721000919999387570505984602199084748357661498358488864385546410566888851038127188349174632462352750014090001119587653079183301787671982651922033269564786484642510311531969665146769222338739968528907331997411888300692094451455040556460151027569869591362035381375708167745164718304566396117643398646500628738703100653115329201934951600976604132015552773967556237232022572959520253363116755652103760577756633785981949127104819425980170985571479197869921287887737574882910263916383028984386670477593425662780835044272625984568786928412516709737287734393793697448117664103931006667789411951246660825355406220657106829460299521342449992891456853918372900151603198957196596200302400711308463653074113305975474718205151211489062634403770292129566341048639950902799043330839863143772749586261003086850221395036880478024606542972670448142742982796070115454739316153888793994889836619521713840068673578538753002626654274138795879760297183839075635459589184854952696298390725384752968933133406163956854207715187833881934505158823996908304396781639700071364513972381024245365430133631268732657376341791592253082987758285883838966267816797040606734409170545025899563590824660833502611681624858654325929208480626911285131385165788579986507089018100258714451489712063304303954580424016422942961616003738527673034361533246518316410274415890515391832165395194797117217562369685158603057585857717976282053822044986850795701077761712101257891106893686452579307839751882504840091103769521579752742359485799662843050281153801719234718794528577021412893325957968089965069420863079313326759940215939922710446417223605265260400870255908901105265566647729633066975112342186328841793813987146750168490480072425780377795554786055843129260046178775966096613379972110973795085309391015354694212781929185763221192150833535780784660482286245881295421312085983437223794326695364819317604069712050062799289117404497673055740141943449910033810296292488827063122061420291870836922303042120569777784160314866089036069268826568377847160189869881990043068202452562083462098495016636033985387907701757635094625892784405922737036176343408311935792162039502325359148714723180736073406934193237536692034172766297896432766103286155201629015204361895928883770082371719606696892793922031324479310840728605123704625894340256434985557633056517599269064922344812096677973455574124920964801796734915026877901927273680310354469310967177547599564985505007427923677727045394346589303231480222393675445631689736266001115511858503210052842904508863013785504346337670628215713824265799546937579093724352307087743076921387656822863928547964517641452820930676900168813551583804197464936839771562329743198675549714409053312111857788274922641414997301642680660145037137316576070829159591106565109175847618873471816057695632478740470895250811770846468813794106223927605906020896464683672568382746155270512474216786418845607959964199399437304726138801736915540047581957586320795801682832063395248929736578100288011933813084962325452010659365009106613157513964145199054994639212542973245548068467966168168695505613581365038913563324590343731546145981750893084417580104587265910439989803808003545770735406611471658939215806805967176310421555421798050748318722032603955766591024978818068223343175413824599792880776770962937416109375025874587160998803711931434557780466994342124348842839104166569397146524691272065481298308878962429401225530007009422978184966927663870117138298141000664390537225831869073914513398301758212642880917768890530233843369028659121332007653793781649609363532044640723146166003440402365150808544404554113942565137993019343369755033001716368270676709319568058789423720893885336874427026912434096103878759565105175711630282850477408951737793326326098662169068791742908754167822815493546119312883037106284107236030323371586208439215251636699838332130059129746653375771281277647132237985626534333232251895688348000819133039456365246763216905103699391149972654628335460861579905791699427419029689392903357745775441219209637199720966350217379765534652272575595323258505748029743975898573643970923037211944867594141317290204153516711248696007945097290192444643350887436133238896807643283302191076006925947075832226629902588263652459309265900129703385855937202088652070362227022169892288119121507924631366295626660978533371801337132094280598157219166735441422649774817518661188644938790156107365947555870635734878085853233163367012502163911414524722420299436149932204289825071070233948690905304432044161298726386864608642609350431709794062340619650375012732037897825933131389778671781020639983813520479729576209486793816411397569324233800895107671878133693684064891907266106486280226322031393343644553913074149021268877421592343405868355240538302605266703475310724201585404567974817274242688117974053746761138214808189593313236346907909880578461126663459590676676687683793993622326191100303842195095305031120488833792709675970641942042507780554687122911679004626283241629992859861958528242374406322374007155187880958378455187726494029375616059032585504715976320932631297815749475081185229047267864991057512965153028892182939228512805362926635490515199690515149297762891024876118812154683061990922082005917453933397414231732929242909747573329959397699661515791928723093226623760086934486230772563290761437315686047142015327705175576870358578854734601762585128495603401668990703027319017706073562198744997194007564119969939937021889650526259758529218556648665161019538576653616007203342689347008149299106944518414162727008870043522560639655431542479576184373278809727251929110248256873413041797007910173333340841600929392374297744371912174904131740756427621480269275025424179920566124064153512715876861374362150340611556736402817709123942722836518623172102209203663064432133191749406117421997684247973965952066712639113959348268414971640320125159591110049436068120771954707950818840702780277444393137520456606059622725455927308003810959748552818013202702650828239576723593032881865585832216905728387616688016214378210994870633628492711235254033320608438078100905725872597161836015978096151906751589181191783842771931120109442688682747510292306657920555426918121904288127396458173522293317689145049439651418502090701147989467082781647166462379991618539549087823221007915763752865053583909320840161030623452395619188131130288411917239865553273093266649916480971591573727465231696301512071116791954595737947351350483767801009806265206747690097598867763568878429690444676129798024674380607795832992964572968155352339652714691089292653688122218600574219316923153186400681888500943749258184827157164211494778970492806837495765673737590431187851809515415311663688511504430475536933363179872995502758964931110361306971453521449815667730460265193212805935850079425184455737726087280997143867235955332833732316638140570227158421131530561491623870942137072804094678701603227532808017544665587026332092338308354543226036025686902546264263652286219556917702856111339171022392681967096388782802905761022032136892354940564091989320812419254698408640501920232586493484461159187503076766091814320819106599592734658887023892935181850044593849033038342217192186095831041893511582645016078082478663705340512170049348968956283083030405315245803179155355972149842432456598577588033131105995014426880054070464205886278849165145718527119480220874535078743323373504421174763457727095065489430934241534073023439765369395571097935361865144942314312913508746761476576917058996587168202724021083081640050213824987645411040967176461143481881230689970912616089535812250964785720922700100036235100438890802426372345362427517499533426882827104422765621812292240109055449620972854794555497919925796948467385029330530953170007599929315795466809026154138758018642106407013427256312931341172013451921239492846336595297710098854356341312577566144045505605603310340244903048775724648568489302384169959116201291665529777778578797079105747226115351584443578419015603129087490668873469135846117971845482047610728269101695000667261313955651449081494977297316720651491974783604575381137804053437593750909199423829964057416935846136712789054746136123948145708662949461022464993349100098346992509113762430534833747317596730668155036812109657616320771218313192442978295499243068770934323892716509649849698969509711937087885345089798414150642529494782498737463303661290060527818264802433956661510301793889267038578827226624464959419483545659091958366760369278178460594855193583226713337579429014979205235752955066821595386446964593040072963083256015389269220761918503578389700869792407650674935615877252444519343956857468428900777695452792793922836189466667977248696158445967215031225769024672748812767203725285224110306153242339090325085039872277275772975799142353243976444708326165800843941742382426217978516559166848916317691804009007864813767443999677240693912787873004161772432282995586449618924120266143771085750815457016642504566059759900012405375387151979533772351649960131603895778402304114723839893050072486761308843031275143504755748818971341035724893431915875682441420398005767946011012805055271307456705212900300759631900051407233524790082846630491223581745106454845367914342524710868863786874560187652229239095061781221128547242007424762922808300089534669366953226584129911889636214724668364381073335611747611152153150795719662104706901113284630799008352170079759241277955244805172885162198963361742280513261896216600820651784015281219576133994991847328189389383429019087236318069821447279578229690476594307175743539495405943996570330067301147938181827260881096631416800351796063498757394596288380471657609131984233429743837353979748053937544486066389374457129960047098800483008116277452524668576405982042680629713601692170936493961076906954115390753815947593292332815303753404872155498599756147346961219852931178071455582978384931178380488627575434852326300964716551824956917405114385124396587103999333882418653934937214819581296185377841319732062884889058830394178183556808647709202163354349946151132588156926105869481760620582884231712487503219522746606801897849378438182744294842918651742168812378566147948993257786652153312390124227672993295573880335840884287100914451890819289862432726868337452108688072733617461511644012584944586221976925316673629025344367579168763427317239024456881919336907856778767731096134677825100761234473897961815870759192828793986559504310748758097805011805853601590446088672706755865881152173952848147023954196897520694754158002885308448522893632295330136235697753715432409408053458198718839089850637906084069322360633403959017215500297464754448971420925673839310256464434275788293625457979049029911697769722031745427415629548801607085155110151403084251881805654416248831435089610990016436443400868166489705444479870097794670810121137952607484972842063005331922802747540564180987671123988533547583518345814422704215613108149881341146408220605201794947981317657310459233505089523438727460790986083651229810006846671900478046392584340213073516612463104953684273749239157533479897192688660193359631779482486378401660660717241544011857630492994378325521051905639429228650257392075958647759355236159729998454156128995374761827510396052167155503277939990054721164388517836392857511762288472265515197399599478871252009400011715826497529225358779030285380670871005412588998048975251097659771336694892972957474593225724153084447013457533047944950101771068341263601993080466793539183375000656267771900418322721125985023751330981204435230262232354218388237293238198572243567547423205679224097154297053685887491364702405128446288571589544273828250375609540388216086685514755802722334953669203175614064468681236612827524724790935327492099214613420003414776745170498513557768234544076028730951195572711874735632965047665160536804381367393379263279766502505837642588217988861433674193931663171226899223319128773754027336595314451713436015215928428751602278182564001911900788822156055270240930094059164243938756575148934679594027585469531738319500511033024288819717185693284063416188282293164443371390075368213855558149578854969158560654237464596355385747369564530032296095019183673924877517917232997359952930847160059502793867354442633772291364613738206522558832187970122130304828566939139984229872235981663338828235404410523936709532823514523232797122072868808071769230942982955732429030858139099242931779714849832111195989906323359601664141341220546476345992303776955450087969893734199308718682442537013758737418691036652610670612129379507610382616192393810057883390664760308255902149738575285362606598255567051755712031442692117357187064489843570828575302666792040042148984865806045626885817489493561194243642799358969790814474742796113655230949587671730306312797151843123557033931369239268233148379293051983544432763202564155507258545990145023346946673325762401630371182388182272473502765291810861481243193838360093126517462460591446909830915154034363300379797025820538437158560040432714771005059490473034138886632068717576486338438664486150214669077781632091770444461119894475802744670133312108457267933285911860703469190684023434752159920259092448158550892102115924500509153093926185639928678534323562029072620257498714508207796055281503800479827579180239279262231360007408970194901307384658530287859480554007685411507516890904479497950823120262965872902519689490316671596169760316579638051497155985760356477686376273264704968119962844708929394043491263972090607984627609148824138465373553742924770712752505410278095860674224382210614475584625999408040062690522818105849698198654561085405290239423673961084343403136565275530387101556184197236780855996505148102820335329320632371762705319974273733511101294273518238095151877186226310429739524433124277096810364491336170605426111127200372004404535301208306212005473488053550661740401486054343536932828761788844140104865448236086086454606330939184981255115982493670243152258696988251402749113520383890415912069101805102625515139412237813705570844751175776179984204114647128579357734945500735219801282172737603581009616258184352327587566532195282720807204993468750302914476543742551591037992586678408321265564740629179706603863064691120804068942359246365228246560469552920250495688463451929143173876609390674869842304351128261304020354044497141066841383676151539043847836311111407325151613723000742126801621338641828085512843785078148587888432430577605528142623329449701054983825216730505796192591847435167930439909995404650798289491145033270698751697933175257788125609069075587459087487891832648871004998376473508502081717684098293954477497756208638249256275227762203873257317163598120622436880993189932249922995657511573708857317651199358597708482437983287950880166918584550769386007726111995974610684262213512823174965165241236573552067164109362629033753186644426451857373017630936089208950818088225316955117769127617938362232598125196436636918348187860006905664229066221691779538510508972061940968043213787217719724555722699718984388831378261358708227395210471861831820299415288205136792039713316747826884465125061738073708931051642728908892360469978150474499751461375924174560583109741183152426018420199967083073299281257309259458790086164538764141915317195389704934303641243300802255462491872697709295803951328631398943906401690598761551061766416248916872172679147055479105662166661475806407449310937449557691225477032848506228633061192298627412429190344607891271816432708992088012096124529453494086106055791567464119390555522606980541957446123404304937745912479346199227220499677637240733921332431651592414804825159734190229257605585865904360673613049768876713734925946422799977755162657255739416826613942560802628659038488301966556653202778171874395198838682717940260934897412195202387700437579439136356380426767120848071908826835091893211430867419435238138562144513906100920022106050828755116458271689660295462943257862133516842376698619216848024510651416350416005125535171862165089652460248044328335389007363544027959803748361450401867072119583750058857446689645111069473566002522843633355542936528601749169269953431856630311253408998144834878173933353523628857547766962358432384722746142225078828558191496703992231077236658033163906825341249739791454431487605152346998612313860964847047999579680407161601723268517189289732887714098586417197519983675152918106606806594954285159630703787832997290473831254643375651625992065085032977140433822023012206450225342992136043902366678133304237403504102239298867141771562904513392460952317929223290896876041471188282916476684561587778570459847767511889038080580960752809865953014415923330896608715908329257114265268096231706313918596641090629362538466293070394617640192849036499168593715639398548270633747198678515424098258794852208559733571473867944000456261881303865594761310514506479414828909218969557847262038604491319734288370434878739372031199103740027878452110023847740875313600891926488752300336502939521278732370143097402274842341120675330575184146141195500671107487895906708607886298964942682466925041670629926839737882380262232152626045297879036061581583905054347684490721311337900407591932424656712985432125027196051025602476259398345458152725451520584386345394896468189867575508590804835407266792653818826632536883731581094590885395784257483669253725705721966334362687192742276586604418426460263371659130977047849467898702592388666520308956760593041346377314210274989325318156467707025136184805256368601398145977211629042168791798743751025128072492740272681983373332961270502610119346327850747525184613941576203005274116709105191814784870640040778769481460971508453863422408247548874139555398324725889984761633559244273663211777222802067063492533042990020764887880269603960905900060080030797040119451640406107428536431400932777301359874696458643183980271408097360725582897608385809962476029817571486548860816260301282819226605883822971008401988575234960237133566129087482409493703404023702165356782530264578472488258144403600437286358539610021946302866054134360850777749279041903546599836086186570109126236042436340834897423519379304663478219734578269908716050640302604821794887615215543863475369509695449346833130120371872681090278975830268189272770342557377047465099560426226595602363420711559854042667007409889586474113005279263763855066009207577418459287046457347810067698494343557473642196636307419512030672120753090481830812969303760231228611832187344435006725300602093355777931790550689218748171889355023637810703984619599936842766755028650308210435625440780871741054194690362839244902196618155728245979835557596717865442988143413357154470928359667545346949565316802007340272156725038692095318662072727510893855584332225997498875190709989209177645765970874027140149089572418087630168709661062296048893093155756494077144952627686661646520378026493897807621976259418246146428542559011004239011323043022448912102976373986752627213381390664054146318585571541074944640830734039274737926500833073423914092810846761796830042552340777725024454195023320265093600671285336251692627158439860665651288066919669998192801642588697129798865585773446094918309012848598689145906272245292721146501998227346551136703973218775979154311235128766985462124809268251048924845173985217703376091893770243841796598150028557185071899429833291708724329683306979531926362282005380457301445382169152158277294381134085472797615039443007206255877831963510289732313469742002321546361923287678422775313440755214129029168356227335885815776466645333277374314012025920024201920046399124002552590300996244506072741166380100661615486370356485730168700205818876800440163607658106490047385826644196880024663793464335245873836594344124621639472035980011077488719108506158984630782939543356440941179637763327854719877988908291619340024664290058133786650335167750511486643558104299788806895407076276825292042929916446815935613726052163619617115207013013267965643113096427986613324340640992057112816444721496447832793861150194971981352788709911046618682527326621102585465330891046003178996503177766557815961731000900374764967224087131304949535710998245436722825235091374429174583937824669530882290386718663786036760750649258855009589876023050853307180410045714850779880908967778634317867693781786484717343763271998761288028653564149361647524992444083235957630394795533476158761664722163371691605385116649854210528536163110183430451430004331041804520715961512447997223407825615868649760563346401252457995769797330203522138987369840257629905357670021125520635766301510588735103765698198079331909206871697183565412165790446437575778737106972547755173318105016901168303080060370926323639778998411913917568659070161299327185164567798737454456210562521344661507694728926715315026306239481621837345121495210818554178237891580019252193495390484866859278203956999513155854958409964301375823071364116170460450100181895160289787864144418868260022464498612589048913055210763700712889633061415201017083894517386007952276729272360481594730181654587102175806018271076312826968708496246202698918181466394921846792148527931595094491772243700182712427885926656892270874768137896015104610946261034921170755846531613820424257084883591755664372229402666926111966529913753043231713760007418658536823776861710032282499636504373434017936080599114936849099621609722647556276757230921923623619169118961946879389778013078012732889951940196341552154253450400993449398736006930786422303361352733482448447642708060233376962517069498172612251143499986570774799778373248942737812298957080372978322505172871774591878528542584143114577953278082929024034735199137387184732389633941555589836237170232489584046086637133331610277615479675404013297331360823667863109840395219878821769330414219110980512021731838807837142106260852239346502818597751025178720280094418477875406761277076968990684242906156319596208238764737404675531456844160036997766822175378048842886722579984051533537901252407627267359420992206403279507076191717559098105508221745192835948016848948897348399395795898824270292135205637103435705753493523005492253622232956610688402349783645855739583944211477600427317514467122851702928119465223868478785831766529300031869206380939556185562058954214027723083649215236940923042962668520670454448500054489690079690921207727394414101291310816291179100536763071932790532537425599462505558020196594704317341958381126292433493963521693952643727246230979167160656418075392694871981446413675311414032090054495315992586237833825852071946600991378662150900951097812493938497662702013445725926726942516919315914249648136443504272328613188276217632552846841219845570506180768635137836303094429175739768874739830085200485182725856459876065381963532374235395725479800161727156524079423010654558283173151562596876771657825206436379935708987483877056714497665418118452191885491251911318859723955966609691746554997097457856096985756775393437614908728190942616902114117063396549502672519819941381981537429175323198941250121057123989723299115664720446300183056757339689828406210333676654707039929366750578869281634784321753566680554518281767427032803601030453055398448624047934409674088631469578706247216399250202628662458965748108791846002124707993643992221009930518389232325739702184773063409413094154373466084205697884663633229426960614740281473101378587383986649193822134122927401290619289860637670513917300124718626094715728226500006612318031356174351218316210531737983848332038857224630593802580442392539618619891326391791138657472980101135955322957046407722017211118099096337655932333031072746509191971094260208266713283962784618898150071938590366405301589061650475682925106539720297169920235626802229438074106667993958549126410334861302453244430306082335528729291622313611886210894224214177677757265558956560339235077079687494976695052161528652175642626183765416116005133421884818645208669283303870493556300404881082693014663518591397119913085766078388999603954535915249541763931497045619195446977968178726511107018970931480070573400578275968368339150688415693833929297132001823836039632517093933829201978558825361282544835609360698433445242295890665543408006875877799553872191827772948385484342745676713686771905411276830374535234576535201826103911278460694544835125077851658967210931829579763547345386434885893489868440899198806398838531803521894190456046782299615061739540298018639220593187055670689421539587672985209066604284906469705665341047199812307526245029894960608561784076864946038548609908758218903644470409104711110637203904477901559999453874981964099150193726472193359047413264375326396536067274535689330647773783301154940033936928755425663043690069182065013547817903103327257913882944841550449880654186624404052924052331545716302718636901893383142078078908559173343546171576901998542925391435387672157914745209181393615681800928083126711594213879144827037910340047323026845077822085014446550477457503697321996811696712921311938050857699711164387630178527497811263017040462393060750503695044461711297967225138245909824745059160923911653302371352533526842008431425946422362665163307790202638969530758873532658086919494424080116697045861051782158184856527955014665560392354980459977402853724583000858318437412930589700761354491278377231710205430695202480960487659236315040088440010511182328891812456469297782597738347991567309374074103047488653101080264171186904578410338796097226185162578561722314322694813003331224230666178076311422048123649359355767632326805090698661315751869086869379739397482974363084338627419680683313661707357786812767123924799664128253988413623037358699229739670949434176190455216619622331488857167764126462704559578247176755158432168009168517057684950553502701162262891332221300444771051179648609954680015429180439025122612675090951175696578151858832324727538916131494844632188198790807695252411301676836338693526135730679287596989973885892696104643494488423827210505088786759161420990191370388099481826576639540806088341649031849608776565699639302994150658765126587396405274362329697799383816385141930976814569746618039997661695851754498365791446807373428591371820839472426202195959381221303410939417160354532430643016182419638956287688361872661003292000509079608013689459275233787789290201754450911121915791379028264831054655541729947019178481079532074851725334962463526265994340521329557944274665290081666245195744822956302500085710815833572309568855438758427139642367746975414626926955125236524289038579383027911153599299813550725536722535180265370981675109187045031956670285175232917336489099848012855810661248144496347653348260125816510747366724260106530587833881284612931450617279272140048516852726950080141886727268929241438451398084643597501727602912106450460387964384321239586608577515037211396040286515689569561411540474903120285919253517144771322326677077665823190338664877973104253473937282552143219972916330004205425960240103210804420283505114958410264952720279315275207137773183688132626140956721869905189687201167938659629428836433509422495172994423217200639470134740059084146417252970349715000351540109934308101897019001552274539844444755810758358358209195006856614944738661453023573227115582678094058196807888006904586488692389425573095984681940830060505065367824636530407600959649525164400776437640330866948825644191807036350772529766240678332902834006696442147122121620345388902449234845806719930802268785195979642490766349344514405990524231745449057466785324295877394749638422727855698151651927653797193670239785917428880644729306334243654172796280127384293655413186097352201363441466302175058922435791591850917439182733111601215759910194769933566847497332220792378078550133556602608525553479444322042754560092209366006247416360633561814896532854347431509591726142597103974083041968437355878277132908745529173833408612005922192920403590956031218864970690215536813065967314545262122642471079080262172818437785381654733198060446285435040024843622637215686762950987788178396408898324081057093931085635007733257548488959597802872987354248147463412580675832066613861183891013320499518595681514464594001010101358677285212791883380383598907423664314491583448263546635904708571791689580442513349150934397047601988771174043981853326957697873785260533764827855572921833211618601288686354381784410365372772314180328588672368912332462544351181514468191825531269334171496486123904750835550605626785099180157881244678324939968461766675772073612596541574072521206815776848320255568385632828718427895416563079353306100292041305798141395861115983662230871259900571120296208796869633982820164665308184583814841555444785329113478921068334895030617181139833126744209998545457542616542416888373817642126721468092868735566961766025805379801020918187267006819611163606265767471720581908741771372305232604422633992257575409318758478607286670827110427379693069306000823775895517157227249592648275803764109773885767884430922230963308347328496660596065215732605491475446852340799911574843932495489871466992777921482188238040253717607650687842801472956784209871132130621504095966858961918602148994669698108031584708487556834449139426898680006219392065456931850555617332950300789524870062119493187370319628252304972907136608516880233598108951662991362559990627383300156924008450958450843936597425424555840914589088599222588294737562202549291200743226449232788792706520684708970000903926142283723536261984560003406194268960581319765765508757054873557698301918845214091103848355258552007263184488824402648565413433975853330674548455179509178662075980214644054058177446803427155954936764599189933104155457683765945725287220787455003093106007640942265569901198519634628997561669308720109252591435886115904882437471902479650140501344607606876191022941109221359273928099534735061168010279446439884033424989695711735465525534897540664233287142671084525459670577335642114851711567454594167197859574450258361644617226873969199165243384023631241153366639389081147140541485032986375603947748139566759474858849348133246511190128133655089639182644004949211504634042484686986855887488635134602585689625420938286940582282509528899374797469778168940463684172390272137816885662867163331289082338698161132964938109699561982466142587523981703934832192638111401015538969522553596100319819773853418064170098785217742296730047052792481697042590821418943630389263787265307685370725626644482188216292499624938418386258496793204448455815223231877559998619108956135075804430268465185603971665113654872892730864990424932340905772080801875881864860467792895441930476598434209889258365359593767911610757510553307504910655479885431386752585940963614375976822843210501496082750615900519212226204016369660049148779750326349119163106198087663769117851179007517802921214606977606426289985125814622535141457957455737004650379960364350246158954005938061517974584685942397910341551526421290690969831241018662391668024411096908249286597932770160885213269172605277279612253597553955859059037640559475496394614742194198600499809260356814337087524184772701078081538029765613261746999941699196897944876367955004432193919435786288836076545210289800939601501297726803393375046413375338721006951689724818079718763887484872976601245607052061359992104705931381741640491340175987763345210273039702504035994282818269533403251872708577627107408713075698062953310739340850381451336931391850989068702543168815600041832990837335014988728638491904267609510068131617917677196960881942534057024814547387495536481688985206162891522811345361980885632686163911518133879955857740984662022434473122241449118201530097327125489854891730248572441175942049906361888197030511116427973272539297940411849765693852256851154027475184179717213587725522542618805652669240491268606816037877886869450245416509825739084192472533255570854809425916190542415984385992528868887365408822402540875667163761993003408793143717214109640497687029270846894517530277777502452178856790435674492912244483668309679771928100545941992105120841635116655503513256140312174900360936040226442620543165036718245190384654133869981094290890065295283240414007949970908959303667569640895112015743332491979973789807762237153395554250799556407461180898300390913642681496311534702301157522654835472665674719159275065398374585879652437413495252632394637063715837925888698888656436766101736026245895361199872137881317424507544572903436994081366574827131515287282972351376112941439269035152147412832240394010428921638006135719209033414265581694107881110284980095085724514779122604207149547959522972775520947099884059381163343567328610116400366718804384861295825444869050691514574956145901722572338589860582548756015297028262724074097234499521176699494195519804681476607764994080985697209295783198915879331463426840929990857004222812925994233893173456085320003130257556390286074751995231513919185899632671583492816355735426366515962858621551315226777061457029655290858854036581492220197501833955508282267991761519522049045038851259593334041541304147102496790981638266257045146852577879091799128344130954548646157558723418826568546605073592848775777463509573746798530759950416811135577930722998423015081037460653485992685562747110877587304464264003935829443156309252635852054186022142504966254499712317135199760304777566881760768784253700206396178776437788514532497002173079353820950237114669170355475361375728935968577768194834752967700559088264648524437246380132123268848721882660759201012484995502046644257761013652796491422097506490065034123705683529408404490026285504946546167698667308951098035747683939962985980780781367858820701212432389310016531295110958749504910719113733543828206582347464931918633510497460815742525184706114040375813114517916225264671647736521177956254357283703939723974041039014778562452193190464049281627667036970129178078701882737625100518824940563288518482043851033501394061788939799869131766922866428657565795265390762911723942659925791241126750523498979208414130175700202705016752505006264711374070824423706746017448790994149582355937621551827721265150856501521257631717653979212994847396916380736912383606458611919975143683000422713249298340876825118275478491604101437032206951766179405058398417717592068234687827774905588418422833858573589056005840544412244794264129448972906854862677401009987303013838342504388539597245659290410343998263988951127220051484960707082119997181568602526263493637057495439222476878678528691338968527486160490189330661948680513572801685435296610942896644209615550726426144439114595008427599510216542722776347374696396867286286671669567102566768456476073120782117263993234283630660502916292852059339335900196525661398824392016030106139471789331492290005470051537410877763740317064233064150689849604844296050543143826897181277417542600333008159675374919551004761825976482843280295766238242872057123660712905043741181863082803357135238335194035492148200777039403971592507058599616596214965587034139245250241797281914149260179487305481072794343926936610014532541872477129153696955812396965292700527256372598032926740506528795245531440423475439734364686881470875592231602633760365439401083463001234939786635630922902143566015781406670383346282061419690302464421164025141395533592792036797655870786789309321009121097783123831696333541399957056188171895828066746971463531140717754199740529992128329608417330431864544284931274732898691186442876339520884206062672918755346539079872279140837673708220260666095317463558382279759845405994713062822977866550293461318321451224587626989670665425809056929273258407177669094653081535968909557839919326669020924625404041161911744825047118721390410582010757897096840928377576658146242120323743778417824694639989643190995919937377797776352775062534427214794209437060016321897655254947275451432204166032237689696511784093147634539714057645186697843700095978541716018801742616441107255130606074103948763825177030320243507926876216563241636633779029245643730227236890151850006149856124727560104797209181300792515336971132277532719573801472299951583639132870411294480348011365976902086114753643498666966378671178120518732171507926178391940118722929545576139994901249664277545800638290619818070332440664290246567131930408289978265999455817610383984657604664921646536456182669657352198560945481315083053790074231476987395200188185360018133586799813833718551732298225944091756409304955226373113729169221341640134970379504660934190815912705618292723619741454679000575042443996103746981982453140831007319668184803205146087191764440763120618940668523514214961044033132039108297594193708021996278145424040096918530713730112042864566407847750743947015750954627103185674029312095112862999589266424477443023137524188603746758451415222845838372812010749609004726997188373900446053264465035083401737754477568954400382901739034420102011185321259051498443557612813331469252727877938545617979287061160930607768223231614211538644797352564745984129084038511160345303013375081764514629499068443325266173638669826415519203261110545981819344718332169293067232685925316089392774811418250062901715817807361908042589654414246814340838070240404067994827042483537503513750749186891635603529114623563896122331872863913284609508383526892024876360109395085467694129470756978004027919342808674627391035161907991384024158090444179415182460388149020768138220430592128127620614328001415359703137223924389582810024382871040822254159159778270123905016496066495912079861577331217203908335931896360087681332566694236095421098279551028702282385336091320573909538862666432636940169548193053403157967778729198490295849090520363104935231673860664700500785115332739146391681878287113682284365135919810661337353429475098240642137480070379028523377771252296055525633985028548859831920763044787161885530257097182022768373649002574764940551014746366202712274787131611341513886539778018326083034768496762157887658157497176926374199762217047652630617743993795457909937109906188742670162155732284915620557736991019998911251193072875762581898374243600208185073085057860431976795946144817706419113907747695224535154393980795510942138925671093798432595401251528643487845112568818296900625913411644972616512114741012932323564305937072696133023368550136344768217290870553059890501206706014920266391292160871893685408334422203117385246050665704360695580448483116110334020064943425342950363046255067377347970475027185080536405915879532036540689038855799997040953857480016147073719123791098132463355877730513490492797769426820820114718934650262157032771091101005939219854035672696161664348626190357066719730890372130946504411474882291178131146715122174883896191400785629137298599282522200390809628226829128105782762658128875241564589380155979608443998122048398217627304807613672139009454853201070248432648067644672147770293559646464762394819844082879517771211132887479601360418424048760305395091461128739226167744652892226412316715584104528907437466292174070506424366501574636311577932164272187664016117514259804410622253648478899191791756269635723057421187667098885203978856262420336003214522065361153135503873226715124733861781496009606286723528115068620766368464993609791852395423021245783857957019399585723965685555269077248088398858730943709010593525582953235863466266081634852057411129356827359353422459043505229379077242638863266802644569581150406613781554847211769473610256343340585222873560406437537754038340361196340259892433068349089139392401739039926655146524694619858545914170714620012352640503632255443964507015106150895413211359145951341623260700266187418542780469237815065173094236458782976143303681626385450213657256600188800066685612608327015798363773513810852866909624047097382672330907849001140933858772091541215832412577403292309993932854362977414744381235515831650490230335211749421147834053358285591136042631966911141331594702512475762364300929090363175807590370744210084260165942198046156623511358049322324675168269540261596499229781862951177941140183834405434054145782845072304979381345851201268447439979377370449952779801755301512500271034842388667963299431587521493603747990136858798253922029621201123224865748794242509816901580276317203601261285659047704275342138658774671457448768962022337032774547949857391478948918180186758833348099746380162386036909544335428408001479683843765059438771744932861993930011781163439374704826286390314637315116037949297105365459875435434289886831847725949141430257513169405018704736559367980603928500057055783276494427040930449749825908964051835715937936113865284888215372595577000526632943738728199293635090132150722435702078983055302150110120101569031819309475517044179158812489433439758240539168258373580500964020220499274723946466602317581313425733664313152963983917379807291300748709895847518554109689628110461058157289730039413224087337283170779348944793549292243561853929856182095079306857185164643748414961895227133896593991214711889551657547953328063863164713020147404880993977732989132113222209823029990017949748673545184113044083681601310587858420106174801774502677154005414473018896941813033122244725448725480277422632254035017747666094602869473331248367781000540768349122717142708750143203932998390976653170689442902274928280232701386482415404010352163899131970192919035637674805267163895086402282740084912761235335073412163967105965402743752445182564055969791360843709927797329985433972163079795104154965620543997079158760487357817801701219169723587136776559782762261360734503223636567656069213403505034399327145410249280927272572146356714055316075315794376185142774286761871778649671534091752514148059552541781466770587717467775331959704827995917650170916883081518484354150113386837097207798267781337914407492139389454117136484465476080898637475050044697148224231883555504494381481556932328533616332519535806003906568906429273250866776832333111712204144071657536804066769874640809724299573169974538559145034353526623775126943636169527670488024231770012359255024799991110551335090078267551033641521416075213759144741951090384205199152928214851481560157569927856762109950025315405395541566416207892356239097630010187129616993839147361828604177546486998059801713230132359463973283264755800833662533826785073424775544535544823453544338578293544963176085342374228364672353794693066155304592907593622177683967607801697096924003311506654945490838385467953800666176979137945466222493667267597577189469120418524497989995153536430397964321312735046743631990131961527929068996436437139299819335457924470845567210658065008033949623253377739454146492416128761193959649449425867113029683570146567331820767119404466013505756970380887293025873677128759225991325660636004381695910637861217451175854211662456669208045174410712924298780176084083833673287639910280422168858497486785236174734275869722723273828404917201254542812348371010712434218056666436437184279052540843815199233285454598703641074789681303769028361780596060954783194981572747989391528114886913897623656605578212929227338772788061030840945236582343766437116904407471378808781783275340538765707753349108677345302261912647806384093843956788684129257196703249005580251069912318891479002846492089763412800533963293563605508904348915904824796829474265304316734961713131459659005219383004905295764243592851831571172135779431523986874028917700681090486817182195861506272212867473282223755738464645884539984308215401520760944019751109800148454964335671775697627245262502985500857237837773687431827786412582466031071751967056457521005589762409141086681795236122006332982860067446176550520032851537341163046798477727822923496897078819766099986644757006648433911908865349634921340690283144310846169489167668250960839679607389318553981785925314576612709567029423660070357867445817751403372468035023506719070436826990845089777810792841162206025801439077994619991733889642776364570017104988558129716493887103798545218040064455076112544690368770385091282073720002406529313940834152326839565702238082937807463679835826208743563886668959226423986561781235730508767176702608624961478112766595969153838516199687798059930888936131733666346891620917796567058646712865534240789099281137604082891195616821416949199389162447796895604074113277208300422450235778306614557827086080102766049178096672761298728827815100963085420975251618904961035545689244765878162963151796823715562704090737151397955233093226764383367888362964403838026477475637602696394077577113636424511253220838131552111317648152664314440449818623050042403534260443285172613972515667173910906916053801294761482828040131406031899987304860890740701953960254154878843475111702233517235888690439878063082424306912519690123528328611656856902814577372775935872849713213956397084684073865353452768513131979441850787056101657183364607626536935858706633761049049188280770993001494085552353836551773616155328785289671337645959374592737481530609129290349472915917102741212692258834635422575698450656139194205856210055493066137417042082329876822985524686691495114242894413541792020340420687868352278626102586338829416166686951083443519275610442282726854956146890810605082659503122316770477153708614095860088894076455633686605959588138258141509716427851381483688280286055365567745404830395627204068253891725810071531418116635960185773214458096777709697448524252125371161993707420181055859158360849906238033235640457593079288332723260008403797580190368643443239765959610158259375730243550731374293934341236856655536253340616361857928925937142193442641513504384779931395179328167839620135682841981330935980639441017845287965532684372994937102284802580415032894368631028863590637362364028804620880487831136660596773879425094707089742171526455134368096647457494072045022479352544800242456522696588864137102328604877960710380961898841040582769582196182781044106448943174478201838481291326185659030264724350238823655531269019174568541045844889193952585029457938174579401784285481325589147247521408112446187300283366356401986312175772925124548494499666411471100659459390795374633306993349302843215262400244092122909742477658944998270044770899336454731294314192438632013138741469858656063276101965333387316596188242973319636604726867404963975475536261468928103854659912569839703529516129703625045747417273854284185281267625942140437928399519369013531558227744995378209062444394445139886479696500734978959618609222341422503432541047209103408186658211178036890430930987269840853803488596766765355770627036724863193026243099407231102097668728812890280700344662392835436838126913164412149071524692595467496992102097113056991924042479065113074159412405951665818099979247747084048481602277550674489235123515240149614216328191619729863155407759782289573902227467610872616030231719511351096177906194414095394860150933269301323449428711456339020651037751818163225106425556419002648922276099004265470385803589291480222113344406048798020981538512629347954280010346849436771759130928985283593696841253486678046045409804276271853717925418878754361671051432896633935934162654492374589770461024731797178528437635240383736024365770184472287146113667900135649999784667912371013758015677920277439541725366792396417546261696332673239720355986052259979048111483287888442857453765803455415869789840075310696817015403706426841926023135327909771435448503658471228648986773981761441047850392725735590796568909849669621655311428171074200569617461950183000558869923168567109138501558033001611757730660725552875235657719316965728995109885936420624898852522766847121437526848317352779984536972088750841689233287766302986306012802947919183735699286808103999503976603891641454033722655858650527334205751273049396790423813854838251328507058621272410263142861957539238684286768163894067713371347127612887176663234431736360906622528626073102157240630206221947788691088052605198375226534749976581678372093428951126041186085650508088418139717498808095178329643254203035247221443564465329875219660660256129926251009324368443280955125940509841819391443108684669571789177391338112993934068385151547752765366174687578340403262528789718597290971468435159207753584520519279918708256287390767198746331024430514551726099412978906766829480464022791111908309706989961275652487245198706990784834349899591859015066708883937699017426098858053541931398551607065001372434851678812563576019101707489954421166757482569340594283010460464214431009154402787484399185242937343534206654832893344564175136626041201802619808676378033019825152772793145590178403370898635715789659047516004889070860412175189327360911426990045582677639363291854111343667871576596317685885215173605926756223689777079237943547857457770086919207696920474112257796640131767891041745217481578913918304728029485896871160067936801991088054790635376164688629724445481658187471069510751115313885073755479914324363260376292725107460446028580219096365643731542302919208027276939008411135419011109198103150860816517560004020024951081079865085531323487286955401009768033887091710197906804655018824556644994704544180713182248173463838688445294487528865540315105220098333801295047485500077367889929193318578717827122632173886906184000035334824713102970336728237132909055272116352001609615178278341666257017787595818639502411658947308671504491776984174650824571754673011844344327970403154693287208124997747964920565172616951187482990947410690234080028379394045793979742292790879615202440443180215492171955825101568299331765764611675767607937965492045367553951968384473746338469731355261731983361026719449404378551181512604408393246246016460198154861652860521281208118970435563987724943795747673604029049577801225436620532762574191254831992647947471629159459135303563193604923732903239038761988693253906293225901418538309577236191007769567641195864912351722897683646741942013094640915747130166455672063189059143383155658454843134069205529629789197771328629521785554762981547732849783374300378738333488897069211410388599129370999248340681409273752302381904264324821912194346668152457964789510399123067898147808982492935211209655131984035459437473723508148807584439175796828232464444685382686344814583054249873904255019561305823018323331736234638020905878079176566733550102655140445238370722418444183801407757334941758723639200184700313564904807127711269648004632955508513839208072366218872777698658138508420142062774500622108958337719926649251490942358828312184707478350458853716654703585404808931008599840805253030745906968135998322107841056211012719033549789322961120908937067526412337800177609183572507131291033392336148093726155289038526366199242705663807684761379202957399842438617796266235256002238359111092771755185911042669343699719927336590983079559678019237921880266565507063228923322856095939384974496295920187710783777884321531065499460306416191957131738269126961249888450346773650509068435674473960278116674769937948886566679835671349041566648059735257312218624216044477949045784677072288157475655871793624974807538545587543950672735223462990149099493972596419057641402944710645582486454160272177416110607427227288880250050486858335858944039588484863646238448086359281474868339883179480404214649239181136368439332469090931666328705616061176610935314582999953229790949528998099768035518804852699183164307145709734371694137574326283224919591974797924946096515884547594085394368524336108384460963928466139162666981913914174727288754647752829166591266231886178758614950156703303635629663037843408899068020856142046764606795801256243985467168365584563139788747177664131442165637735139349818910034825531653809903606991709732595582961411552007344914132392927044269558778060421244938556425638237542187642500631439548690449682297032831306110539608465947560613191112732732815154980067533413683346796787273206122444168344250726764282505672631267949540944502750505953023418726641984100507322692660680711514772914295533210317428514496103342006900452360051671119912444969319207712819553934877608336070720681965943471547386012582322107288360882256110846002648728651825541756215915162824685593185104650864929358592856038634992485667704833039690582547721786450845420309117020002914037692825051711413782773931390256238132350557930757552880787707900562759451248752401950475571411874209497346770024462405998639264997624127768660063325203989635197306277422128200083843606862534640592934630145726526157557253681680141478253761106873096678127007267031149678500818312462844469598899385816657144344346963172859914855033321358492961551245789217547977200559442421454833977210553664829184320458187613967939444973535131175750591231928753131730819729303907454834579841917786748886368971190427306883165144152406698228324814818431544673958593170512684616344903871324924488178510439261426047384740583371935541618991659059456014432035001163449228204153589107087289778576360269139658035243630284994944441498505238395241304013937286534354530874606868609834043986573861405827069464269587341443943891718468223327708023539343461196252872602106740884168502746203249185612384560400406235226000066342226434259938584017029507516271940711365138979090649188652284107608124592054923357774334836997874257068398121098915317067734473301164418770400694586324461208474207307714971198570923671089654327011355295629631839440948305248069925904148313270346184766472894351947240361948132651555561385890200918184275362552752500557266540434025997413585577771443926597836122744941311892807414577642577191616211489861970323683314771298425459972314890602670951062337327276528652749820116675864523919794642288028625478368631258770800037727394741803380994787425464190824375557279185194679005645468406092825053220042966119697059329385554697693085261357156299121015679108026997780701088053944261621292002112464105088778057835012368498949498095534213979898768497804652589865364253527616211280298262446813798280658307325049797558461722513952227290404656382209544336434441700267715725184564434986975916036870478619235233790112854280218052205909807897118363961168815461833588509232419250323021580373088047970024089298752651965675548851226372565758380401329190248050287801468830624968184493856247602056118292716433027191639134560237227598946665043997319662754649879838694308309622359532543803806452729342372205725541206660665704057634056440270366155683244608346282003049737651411383905453584799504434335885046390549198346881419454979274727853289659732812014170379337242851360357289860893187720445895534140870576041576611968001526515412559565031474723240597903800370146541736557870611319442347762310331851317636340377739387917562586286981364971101921321441177168431382046758418447750961496998390011407327694962068771955768469974812481116423549552967874349093978890798835456436238972811765365212232836824124806713042385849421126543018291651087547832534206048878450374129534233233305516187211064722758124092524253045361526108416799750639083046137604211138629505248094222804790036984442008537966122993307850782065604578272917474394804820829036391382552467024080854139073145144690917700353330178818344919041523402871879392941706878717277210079522811624374287802310855472768526757518165362675879382240414378883534988847954537660425605432574430088860697044043194210001289687281645922462722591115458326058994005262269989627432221413937813090575184564902182720174007465719143305184795334306353968485502940057245964250730937764792319705842864160610093791380471437576098818984302993103101279826475637106066257306558695703461415971439164648142626776050966345204850956886203447002914994260435207313565712374488614226635597737748678199127294660658150559267632960695766624145452255639653749861792914898951675591412481666375148443264511238110671587000837112872073371808742222324636170889417093425078531659789935748106868168207028391028059834102691457729152630130363999600332042191752909452604025760297402904230227502112420186758353930409646500320203993697895599445587159330672971638113620465141881865435512664965445622291571646733608485890409138334707900515372803922910005776837669465747145983772306295260219739577096538551591862196254261454959726230774801370710748908929114152836381089069422775123829376131047500805132069066891232124825557830367496065564825344962254587569877336384112134387770546688072268976076798539555479531681006452428702176934283682085191669161488179881418990526024423680907490468536080910113254963334776991289626956563786777361158853785187218260550767306468166752805656654802653691808011030564835450207547664521597545900775123411149859142120920071580523504498075060853016158139277951589580781096120335924903527106018740502226731668375997338397609895363100440948232713997923391113839745211990409498072609129499523200524071203328787593331420015782957757633163660774394841563885032600273501067055267273328341301897231320897321478946827295184395742527728156364323795032767615922792578553634449130103084384467438524414649873313135073778483369636191200935747038006048779092637622639719441606941621427325918716490172955136291621281361805222593039703317379951281990670793085444355788386541786404862146987218920288911642534153835671316179264429805279329240569053579022813719335595297762489959146702960294865498395742451502136328108602897904484705192439274224580021296188002799120971693204272569933667748043255310866591344686784024213025785548159729460053770096661382308234884111182475035724978534981921292100500681998548357695433771918875800320435523374818067823984306213349555713524119586903196127911026856891739667456303602570481352330835349090383720520298393699827531907571990422551886758661724427923824909493711491018207608500071731947112633762639412056800700453009595648334980969591461433648781792922666041728982595527430312781044274676994857613417062138377928908247364690621643226635760279361519509783371879634529089113433522677952834767699330266272521934604052877979169477639216266543189459559890226663991330116423540512665945732000182536741132324836889491729588937338331728723845053501374352173674626676566437672823812014960857107691707175393370323023790151100186376473491495153875636410354167977516401724753672970919933160750070550582247272392521852360497748217643021187417727405250087945711350844484988069141040817594440819206578434093121558608441835375561442148587402254483231023070090620462500532761336019273351454727557750594251755975741558741651068757913295441259981762992476560763932720874898412254402373187163232577566895372180674628485065762023376698723750274262683553489091289046485409852501938023311682928066094411298840273129631965401594936846199428112585693002774340411840549497277179296577487913293175393506261859988257792729817334119562724053541167553422419766116295540110597109557845436841564442895992550828219300409032520882007737104600262992864115843712826842886057645091293788205679656022807428108140325359174182033252974785362363910600667366194007207684272905951006108948247491301619741366281016164494452374572012957461896467342331019884518825259348221979877951287780562308329010389896621020461350376823009177494844770272959973986622959424443003079431399354682703603066007876650351354695977776739903402426312473091784053525549989651428183079933226260494925375846781592082111517221162181476284383071530285110389685713635185016030229858611727447672410152231919176299316037798017059156999827059465077647958384057607070336835915955616989103543944003681641372084775545335141651788865919335695573336955743767758808100415785199236362216331433435235763471851887078414435163594562305378505934918185034591068837794988075626596467248730767759796193959898237056965452119219296776456789050133771080495292332438717585393522581216648861952603842952155799627232179620944242244587748065927205024314116987206474366117142199908742728829933996542705483875014308602122658985156126013131100659914950599711151523526651050641961114243788224225862100771527686420740197086934500147955806742632292266285136753624979897976852933661949078967519549444372831906854713716432676721071029594084761542236034950910179954279880469629810312776659056405202813670887078915853314930524547202636413486450960640013634746014902773659395352371642247939613266273411721318316424231579182157462211531549753608553585642994126085023841455064953132773222996681165039816922122400413382790740687527444774216543359086502583288834167061584377144159572523369888331398702114707624333950057570282404252561287063877148627504262741587932072081200784980907284017712532763557472116406690082116919414916741388155586901839161499298424111909542373255973459561697965766181284594599362049714162214615215391874425629487425600851609079354753571801259579215044813131551126687232954962277024460019873132583421981007701725836578209143596354329193276861766780924886366991882607400352069459088467808170536191905303552582346202629972320889803680685163054645618725920934373523375856176739748353751537103538597694788828012766089681819656398223334758270205001659964521511095041291204116644342105852189678085649138521517493899425599437839753621992532886431743012484103981244575861443265632370846550377169237007964754448186092508051209610036615771757961538097701569912673216255803490370879817154516329572247718519330617175226622908041679286681797604002194473211697528188020999505991695840164478158895882905674522479852331872648427670569464451849406107669987632538548820469398509378712053376187217598807030345287825724477575183575232549821606942890233668028208651484141482291239871970852428835764949090439751634390848328261309578565676930023739851038091644496580440184599302839505232032045392286442005566983367334749946590653824864006711868986604677229862417799682882775657757779824064062236115435224564993884135877534281589556270626702304953607904983187218172688031305981352225596648910979408409026403716937407888999800550674447317183728558862682356748427992811515502076831013128528602013305117716317377838609460869066026502834518563798804037465900970492105432623025070267677160105704098983588542642306172887678861198872851393718421333718532805012043106276177574634941292476509759706308086336182463417952215684275947878556030042677883777756838962628074790149877650861532305037911474222212744877938337482271508922750883684157721926115383737580577253447467475232681044951766131446318438503289100885962985400253434244081998775531552331776237651468639136826008920962105266163729391002168876646346465992459606077839854415222545935047344235837596132609416154825901027756053727088828369910864069038844047148325111870490334077189672684329391306659360529370600463189609381124959022167242811750758667960872379439921110574405278420299667229467547335212972412278325013044405980353778284269532920729243459023160079693632029598436022372956126436787539363584734307025571353581502132162887304868779125499829633006062051819128886402146060294766112746780821563499368442322836168586384350910316703366459975856898450079904245797905449664128301315337985060844142535678738665729813424584708200359295784974277804017679127199441377671842879718933730446391988284753145215851191726290903495715931857121495087191805949120615381531457372004097847767164060821045583336581145647200601511159937950985795546452910775644160279739054340493367226842864286511187211770171166487942153016699311775102410829902511363901150309522298066296183843367194443915963150359530821726825262560757966880317678844519017468759466210393702697329152679492193709805332100602199798642984353228759024703916772078668760619015734522025674117198460915284508802127243196455864015233027238449259317579324048737476592609002714917534603791723412030046740455430415405645233547864897095641156276560366167021041082403198793096490888095784851237193445499470596077094541170153569744948770706422720936898228516046913816860705699186262714712440805592477806559223438143536895679257557332766209038959552520778749284353636768209905981908462733042511732731679478030574913186899564913782698153261034960851876194848988004798500120343208218772888223487754800981468879059096451120160110639350510286701109707899600896329608247160314823360037093115112904971258833444720080912507194328212991525228562124825723497125591810011092064183451647448490499332664678571966620195098067191637241516373317428798412948498574841343891432872961774815752995263956998554186518516317107303652815731306974722502842498598165218241211757353570661857917705688332280004908056700566243283265301607687055754264590343590456489541970677888231828208735841417095376492439270749914865410707798650202522447715451647345069664150985726284916314855713787265778529678674308948485153413166023780700428199199590250120702868599226160878838108092650121919870607843429124913212096830899575661316328236898949904699043471861381342033785195899068487817419373705607610236133830039929360002206003273490158629330183572290274408073286705137992731498478659457348214939412724991533371670790140452465114856364370289521389264169001190878942917145491674767415553545972529885495157969646491372380497747173204331333230137660174835771070466366442860336496276568287162374947690196883702942587154621080298235568042160944465154598608814234598654634427715254629858934096897561514075749888446204832204129840587885871322626492225584041744817539407336133692169967664058533232807987483130303338159409841415618259842076026336538419646509452053090872888264668198990118067391994672509275085803629775668315139320714642051132532503924931119969055499520719532306990647596548688103703624773865960935762512164887585057503746676342436230153397448844749120609933277795393820638060083226280422901448707824566490399993356633059488491045719274636556646609821617626125978661988777217115108527924656432679392840545622272503903925145508239655824326850433717053351978768064172085543216473521365605322587766284855096598508218430172174716416159768095791322098517476978361153217607977498032521710967333313615376368636558304945584941902910985608004625666735754393092776370041407223820319413811838463616352946259035049612216862635108953688320570273119598503222788825188772725616737879362110586316413682068842045871225738385912139239284417275399501939271007197324098934767565279935159510878380546453420646331864729669828718478129536065016669193955347239974333641899089779039441476248195425182935303702179136915232111850017829168111740919508371885036401847091510295870349440393361194496468157981487924269442810162835593992613485310801342769713219260901374052548108651195219876397625541140195181207802789634939045732295509162800314467379624062563591297679885300409564523519952574892491713446416279207704894376868369012374383873516445664129483499943907994524426546193647914853679195163217059864530781143628469495094221889230940994239554461648959694086108188160796904794010328174081803555640716659753078405404648011447046968068261519920255356588460009705614450588399323638539043465890638838375692742140546321544914333828078809579346921410510069164883244332654979973884908406618254475762174320400928183728736040660483718353704390054709915173788273296263045786658731721938020170567176405902598903779009974285227353896571870032459749710761016677873106798622321344179261146829884280904508086019633317649857126749170306336083424082856440869397597803156243185662002995621116140106896433884915635198158949658139534805910769934765223964149707810206691034952487684202583888680789305422011365121682652648818599730922184870837951860569975770135067054274657384187514071587116810434092466068385982917704820392868974651537597919133277354301357716316941893670705761150902373748669406500213647304733937267222123955653021231876642472115758450895155217096732256547929379008268486417163385786462748621682871873562448738321018335056188099132706838639171266407457519336526974199547337305753988684829659065168671994851484878703989539699151788660531134749438362326482634648670607421428549558871608878938855935308645296764951166723611549801766846458541496009987716713856130673276382556888768669996146234550930401990490773771175562998602668448074482035413061373393649431271519848940030632138063813230378164934477560262747613801700369441576826593647063545213718358382292861785883111581583515206589292614625907262323276855063094944942566794478618324876786868378154793193755507480392373709288820853348517455937332208652020109027041739265452717203085225738042278102569219836578029013747665236532335468021100821831072754243044280659362542722023636957680505737395495239401414820283452496084794858026167859597816304078949608651615792632325746586042753757130857429249337520643047016696161811290817643365683418871626845885142784206940327345424813764440874100768393424933094359495762743220676573321480793978494485582682135342055550199088714821334900112649059848929406039803858075349561666896901705937201459899162050133693825836509016821428106800228481290210655650092313981136267132865333393508586406562613526608298514758980116524246637525094560661901064580680670620934913079550123962911693034981669455877652962558989793975973274575923725931615786780776086219846980647482292694673402215757855213891104261226310846116021717151049946010889649973897970086622015191029801396513107014973920061636985885510664278932114255464682577382004125879006141459585252460573652227526738781709767163792141783445487933850691372621130526981508458996095952886908753273180636844067871534273960722550465636013029994450227628085086015490659886000157831014061376000907506283764801963987135715566598618678569929126215873693102108547520385128951133122770745729911242027077403839815997674709804684725298654936994565440381153497314500521787899801844010003373276889533741341382059525395823102493465935493066423630474940035732134132596675284402469754226114514180044050916881538065492568524197687836421131578016145020631818139447361642610419444339366996748540766931710579433213397886665334463234126492009949314127981607688218742379647699308504237351136272101026095052784814614893407038947340902255787875958674852378810211019066123825379588804461412811891964562138455570974436658579927547603692100415491084499687531732550363294045562899115845702179209807024762999866336803048431720276241892000625207823142792703301392148938308845922536858838829760981836865954287716872393564329755197711055177572492659053098120986762228873269191816308486456901281322548196696307435188506922510887195175836884892066336894256793444310972704739039171025879990312910567421036093967166361270593795169887684733175497926204536664355437092098158750799759290626603059657528895000280421604357460534780961858384841081651841253694831043028991854145907737375639423067857747838991519877942662737312162540535834593701688765787071208500057948214794091796817014350518874650636620917938927460590721082540477996339539004484652710437752140121125189143907217395312994381493361474007673453153130118941692967756926685238163042480911880811592021139148434212993322775373371171865722178885805363174379742914099426941607638811082689038466548210613009429970166794696226997183795573660925426237560190077961406368074350367813168859570747092084380869512404419945773672491705564782128674096153589757655524677013571849523043158643973591229440717704509906102966935443227192697687797996436343582044309162400753093910402923086797615642780260964547942958675977638764892116938852527760517672301940833807259947413633405595945560733323017694806451973299807909593760168744417423464057275999418428491367909022729097907112699623119576281031597044338701935039407936174257487515538881379170152851452069066294118365890137452664470383097334815923756810886017979477041958452046224055838184113147417387636015289314922924268850522335921080052142825375758450850321319928176811868419970149000407543270460706095585350720826828680544409406411418214968771117897599806097176656891659157291632602204276701113809976978617295180356094089163185489902099661661896412300851313853675587977144119042634134348639533907957322002584222811480540357476235606486274310189903899552652086078200896074053133182207124600307769235470157299040184456365323314455013628424995018660675124716458676782465119616349831915672153227548618622693442984635100559905450686898828359368918750907492428669776106950222704160090857361010379852989140238008787353830819228413260009433435977752769543895639005580594020461379142838894477686452815202286233207396289750504130284665356831887480361234340984142181516637390294408952261222692604137668941860934153985544792374866181587968382242039985200115795307273162592936979288080011281758476290086149298912379184698633232297921605547125111506133352417094061231983526743232264337689139378232567443120433559281439691889981674616583980213299902132681957060117701711646046948309962789086432460851294784350242821613457420438339907630458920152756603359593795485979968641870732387283275777589505311493801842925294061305431611460466600844132731372259720521681473171332504742115734795181550800703213111891192852720401551675351946487981335802975444573042125440737943074484707124478676854745380333079773503026385503561792678520311690336479790173587011765712656920680708287514917100430191549491022546349869784466432902114984832925831369835864535410484353012802412125962325234315821823810533347318846256382870164728306857780852920071454411263827229796658356220135475611203845848519514965590268318510586100428180137980877571542440978688751351540067924124267405950264270632292262021261258350773294701029674562490224031384524481403506331400557008547491988030293521904325740024905292885443485647628068154331109760254669318045264200149673835084974322542088308517235558655679320565088858950335026321993435929678877465014679102929431700129523639353264247932143118488405409612747399506543891594452884542842708000315025425361998576056334633603985814663067490997590949077586398327087372625256029090102967672650870278310470428491731608597657061234818668258015484316640702430999023221981403676982579975369443130290548958929390893650060178941058264890222261513991205104713185033339054228866277847858691314894709997088761476590265794727653440024338095594508647160809072528565337623090530330860421581718474039191313955416840187583001756578305511036900041308559064714121560596836792833815383606537250158622836259472210976926511420546519162435771026690976312636104102984629601170927549434274390930847670053655893844228716118098095496109991405115734197947897773637876671929479656965189226832928160922239339177763159575892470139066868727518063907166257681106959581832557388822565411620330949182875545333052021140612004256115415128515328494765990596031960703545453224672865345137934993886839582025975732870359291347480466411372298255205145451476271005454563134900801594145476818518682389540709105762561827949478461702551588855749348307199504055849044972342594419663138575867548992782679853565586591202015119596883531455174823319929950778618596861811646042970545281002483234988493920067292592735807193781613584673003298199989060553998675561685393176382508490929717890386716579083778434696339239875099518055706808026839040364365904323768174834232515489632604257488941209058307057750190878478887501389260371921848428336074434894031982348781194057084868820839766315497466574559935204367707053621040830103294381088522929366157738847852343752808140334552222257936028660797807714043260372080512678976311759278938129777226754750188562234183961299431395150395902741749854541948294933243294749443938692334510249971119868229080054950970706369618727366930806959419116822699356213055665482111960398259286122111303522706023069682831865032819952927436294014753335250380264741258959817250077774825671977773488367615904940196141108144513185270524839019577912784926772100823266647083468671631578228812729443904993918118729620042613361879604937275805473762257726346207011937358106416110636789789137436152036163675018936528063076759662306861289011501332324042529083921710871099562983054052954486366516125760514298510175107255297895081199302162635230315561076611958627165050846563753589826991978172039776714372850160529104630813964461457851231978842179657439531781155709562204986653512091818473382917028571182012976001485476077434206712801565546255156754145916111727474457384684149218905210799836093549144576176314235528467097383738451712898052004495314994285724122949749627798966334550415193930282270588415330326840155240727938550802109198769002207827079948503217209128951401855875369398342457742172412387304320224514290251249927452574783589878665398948737054138629299700013795021529734396122797415997558325582147068163536443244534908470092992877936673964690180335616010119213217022937897548919902256019305966423392952451771016777609494727979122152519333584774721278185063922275713132810800200864795769307261576020479826410502257309940610911464051208464727991500788765919032259203625531852814191926961351135197464191461335118122872064769096199871777749115316788897970218964454499531847725490373816644297773128581434135981787713876907649465501485817607841847127206367687650861855197900739738929514295499719338105342837722189498605854790409348397489575896023069973587260543075170406453019994322644131345141989985482904054485491774557289403515166171610052750524123223953229274743776098241703634843054529680019754211193615721054871483327134893917555211410485174242841405377701256578279864009501249217048711025108405473130654515110168956610588000133015462882739144352551524169554360870542809039032174141951073059144582876573417521066109993890373720519434895550883691670598901063695029777515480950289200476608181723833515233702486474458968420414839592311591696533987864521676636205636225105746415487307288453936674048864882203447520578847946929001745535692686711983683679615497311676173694376252242165769686186887077724955541172038619753969210741310059103505839711131701980049116883975812634851671488658936855737670921852360065388197128456724993711802778772729736081103163440637813484326439448113404338221049659734177263941354356975440648747448157809497148590306773458518988928041904185873965575835604800190486409868707335878024041308166257661693749313497859553412002928047269854890448655522486404749115654003440894196327976314371109172903565516210262141648564814418429960925673590985896852506851142036215777153951753667382327525550537758880392284030385469653815453439830599842559419418638659591175406498696752942088116876202518879267210988801444112769454527120469971930549175134595928086797717821501927983704093488607147533298261189879899128226248566804778374714354088957261359097122706116810688898389607676471589798516619016472413159468217834573736345677369260920047557478773452362395463298473862939534800776966985240225431020370110396921362170169643193342351871111590371180313778889973102043308864694486655411698786358425228846536153565029992597020300776552786833168897056499048643643270532516803118674215348284419839121926864664034968072453194984026056038147450333871474950841092457852313350834465352080239536530662652579030867891513410402950038762961105282623543839700437992754908075303311614163511051151765806255710302049388586283094228517833323451634598578378275451878623507350397475181692855304919428967926375202639223849023893277830168282015264829730422969885410860491285354262854672264378128660074291503777439184470773665215593901162702212521484599077381601550673182375926437368726691841817786221554839897877755437827221441102457949021703246471083787766607484859308890038986929045928117652499839309762454194144228666017123550651355469582511607301488601267055136283879181932978832546877385356622859404307388311143993196109373074005079196742764589915741325382746681577520258008220014821990707896879788735360856933638349313090556816661300600623398937244254147335351951875047240945411138029901073234308806777513449840701073511807314301650766194266923545111331879810134674641557128023854876678779266645716642623420512023664676939827077207012611763352994483527653893834056013592975821471636028860030603426941707173450870104894725660771754962494866256004122669946168430942245165276337004606159543893454897883674651914566648259902426539757258870120382833689202671577013049098870060830779103648613121728591918411432142199470443315574134051148943655751491647976646548010018867132987833046659835553607072323058350531816830669729447551908403006122591235233870734916469267057557990536833274386955454565740944313375548151928760412649435024565235004783263575385239778897534480323268773304448420077029581383007283152752315195178239825343246188334397288177049727286409812397788865060687477578229667786046172844877843715101378962074953773908400784255059597844454125099287936892529391709477869676665449765629083214841994699994701049788305447479940941207475125490213166855364254185990792169995440324543613784522586765355583876808736630273603993934827098195295379638096152928620486885571888618745694823792848455265386422637970949248877190044153885723954390761729082733966619087931778655660724238757891073943620362199626319884152658432302851398303585517255668366862222649977582327220473713126726175466103873541220509752336246266405109230317900156614061401030174036819043982578008149034699789218994143954164782841722508516304082737031582449728320137815384740446636342472499687007790719671138372422387280373408420922976029837069742759860535593000079604752517475157644944182175377055317996006908408914053828105002925278868851532980215409557025632790022431848326997018409652576449279913287956605803056770265073821322818169497442084978903422129552497276733349878146230690127707974606915988991404813639726650367852987787526518381898796231514607468975410385520800634946089723204416928354171379210455887268077612976814232993494815659323133889391382901924655658041764824315955252666547348966255742799675436315919028802105976972911439560589217735804215760770215173619683247303637669535132590834056037367539456913485717639068183820679339385961213512253518614329356187251783695483815610236282610888881357597272563037792140745246264415358119023911086539333657692011673105927570774338031068828510711646562511993703019832226391393237255368514448619391685503495433162714659357595535083644424555644786105855802779909974643023185851819326169251306835962470169037211973516912602008904180175233299684086645667197814421340260140193643001653966887897522612822651923448041940144958765019612306690187995449065695949284053283658915094564912475832605439179873305686159746636488944957263341550391741804458826411103230867012858864904651791693915638693578138758331062913840035551189988963448065838946423389962712890896740039669053449403331082408061818983791355236910026497937078024950562299728143383967836554282223343522576509066661193835960509635522379642608980732626744976063687906901757083053030948131661223096280763930239276334075190042817210282914015112092670188297453785268617064825563384071497546164932951051937916049275062024046629879618843518659585009748956352183671278268324997051900056427209692004555410259111979905493048981555215144526043517521514543951790014417549633353601779283862567830136577974366216012908525869250997033437020264411156541696130914987158764394513320835599858360677602353004105978706848800520847055465411544628517104096955897321590215628895255322839535374457547090150271991999479174970418988931441117272396098841506518729227110668897575135098076649048521199510524967951468665284424051368354248211854347525065885797372565935530935423088532317330365098938620438564034116908144652958368242478730781897093978157180513842595760675083388189118275218971807608212882822636526616851789514215457651241293769568934702382376286513011035283941815556200867857504786721158745920362444449898890072861071449374030847122455712688473184163431829693393993075838249846774205402203749807496673797643144767722924827091367377724497012042036869675659790790976640168697381033561358153299568007608826354227046561898101128954808562212151804960966992422061079152456304029476067703276132290337131609093384380920283181817831587774899420669922659211663975491788253409309663577317840141664893947833170326666295458455300960946777927250642305157240114909229156749641594302877398131102385256724464331012760495919209275803305741811363925422468686414109976776177203321909720939555385695404012704926259946979960387877090494957414778083315423963126910473694071374959379288837308357761928443882650769754652603591839225469471339975741354080955735919292993387293150696902801573902102518207998911740685883393483988479947586220839309337886657511036219262853793122592918970870541702336803008003257585571502593444385402633173039536088467944415213941020970780526602201302884066733195489639004357810058433776335495595682983707691718164469951702107142329075663911712095133253308796205628826402042085368058232589690671994493518724903114956099749664201790017372822505642219538566973894710602621909021276815694291890010290415531817965735266578083800793163146594202044097045291557486462693959287718296870354828526900958599127626917457222261908475867527296202160380550412294463404772398921205278498855243355037817827865557031291506082119821246100234263858469864779462296548878694114717190259976607698133727774592961305914308954240886128555115912558617806010682239362309075927085219900785674453866636985207214121338124331601164198874926577897422069962266877696192199406219477041915312150418456941475688288930181080833184702780483253434037708516164683929702835682225965752843353265533797598949295505267203644774465104278421530261912264158259342774566987903625516539044247189988210837970529066723386540790924498419486046787686308749120089858632471743525211355553066088546162086086867169486101333508696490104444387802541896467564138828619791590982322186934730569065797389753844811131870371075842554381491453280258760037546992450304774900582653147835686067122453311073790905478526608247510434492260612867292750438941578791781481858155762687848394939793936951643016097816727771056976171017518909766500553260479457568428057224025408153093850648352698152621263608293814232098358317579189389620067852932773211952915725049769531035923892555990346170076479371568596520442087348598203129527249595952145060984410946628087718180380966804716429522370785014034665342964061994649948573395708520922065022780409762837451591490023237613608800069669061543572877734920048594269400469986206540428917742020085691299935391050116496877681293326210083293136367233710720836072704958282704907102947726697914658079591033380137398299028986675295768618549796533172077976719879780419173588955101566761912539161136769852268937116034136630012103616065355912226513742707257263436313532827660560422758066862454586064577347203561829335732049667195029032974820084294620225801934451917958890007881235578125630135438012754432570129053388594757279335847756223467163866263168305701200943062575982434069240246996244417981687093042588054137290998127749621621134689558263912919631797077465511371319944510339587252963600788200876944047917363587454635121775280502566116565836174415922791856114953155298454326953884822960456427737852422050697188187915890319691539252915596252573624215068003432620809853055748796400746677230436604576102938707910518724413251531479913774264782939517061715470729410122887389056632135919107832521860714640414729757579691331823893773293608006103790916268723389449569073196247999227300269170160080389634404306141134559780424335428283554671331244438692006510594606770739140723329079212230512919907676184660495460332698168370576555737642996133456540746854010065925486630558428241354692498187428912425604338535155683470466493131658252749589728787982694686293811568254598399284412211110560201812362497268164230343533081828137256425581761091508309194784239661757932280994813316030217267285597880068534708362720473355644574693013944855808947609829559935289597648529816697145027683672811239839911409362860679346635246643789484968500109850232895587032009813984604528957887525996640657442845666330027171439883225606140655841231144937401977253234156737943414033811979305620679111531825994507173076250745383883003251988847524555942745605090012308604758002648988006343611472459916594832892217153189306470157993973366048915789015039274620951771043002653042527092869204650601276629632599102915315143971738411742931998997447306013936664156119537583010130180267344016570312271880048061249251789333217927549019354969594819604326901279177085162805091434081673204065515002228498088980397786794111462684109969625312485875800134137039617916819065118590540170357032863879725689797306818319356551084564706968230687269712548195687926236077645769024219525755111533917524890270975437717333000817179840908007691553026350750701578349410376988504573660230879240666746167598870316824410259201979231832180670992710809894206178966472701983706278752841956143030489659853135682533994443502745923431205173714923715442438764366322890038164151416760468242820883209932434012428727532430321344800199873440256629549792566406142167620920165020416369170850624528765243422990692396404828163500243446848161728822280111600342689556790973551459544460430356096781153295711626039242801787945169809776240441254970387948950318878078058081953327678450827504716552571127554353797273378760230414352224388028110012114973732208901925369417179771544249674539411327689552505865018518501053371287089599283324755966692750253108683841686725230223091615713405713898255350179151953775453971783652633691660617110480430936190625024456655986204422969957574303251516835431244911497845876849087435377439027852188029447731673476780940642236038206708447672787152025197801523604977366160002724142910736751659767881006522525156118570041779645621140737222653974670860291524462334831677397156146020052080329895244402517703347525348160274558086756636845523655808780483967976858549278849831765687593564937427682340964276816641064583118397273556264831854150626485309907497487054764185189458428759278388416357831125663311241745303334335160996904448311356225943604790852189251620619699843172957314950547298643881952712440557827826319453819513443670492697960293163805756095615196867927121884437206360340470233989460825036126869107700232250340673906564309559888485124149940196176208911076632565239997357516110930456279097296294587928845176931536304401206629397633868521822425775772237742413555557652006213006288614955339809978543950639460093392251757457863412939849871716082438857903132962446982661301686099520293637706015209892914868936679523692421246029759806657952561971329534409526005143097338030957217466456938657527917602627741755357068027069485095070144323045911242046500461578023086046575832887088861326666413163177861970799008698183949036387313377232039411872433366423915302999929307535383094568250366108472584078460540314994099260475668409816317114298608650289313691590390175928122841246045820683958421358179932028750394352414076146486256397113979643947996123918791976906088463069925788480085084714131437326006368332614019701069485075273040996745126522361685569415224266578145166268268925909955149310227846904628825650256702236616407755985508150211052503666151388959377592838814950466971576530753580657083274439380373580501713243645618235999332946195938175199370155165709831875039580552886290590633367384365194222376639758202368466395145997231707673515002893113532537299136304409787176999616942190420634664236152995304455434578875553302548898457428251465729090161211426321670926246815140675493654761328013198336426676060203440049338050647362457418316802560349780926093192371186451939674848453031129387006065397719417491162583824122254480402946501285250292392082750407345555524472102856339355194735551028408261992722860862336584020313379940455930428370080327832843037911435655757898382652847732157990796286335625339849663063628643946295977147728037839260207907162851806498522936820147026232318161708626506939713699560394826704045810221562117506331381289437012633363134359696512915162304648575958321173166406980588371650932978619327078756670814633045553265354227649881788543938500478412240142647748866737391996593188057000405593570332234988400829735169177015639390374804246009468593810643042004441139694077633446903695748976949116543882022346283799579176963665458244393043590230443276723013050731759883460849552632452498829285960409567776185911876203381910299572458207490398357657314428582265860318568262416638066481989338531214623000606125273549059856084768403841707705725911010818520341227728848830154700536455130540411697577903854962321408824482799948986164060733810905484528027087110775018574579039417584062644092021000014088209990058275448877618430681882402606692439729732824775456931873680139991796169066214697064888220525473802127832720346697133641977451921632127810566463096381607502388486518605917676825496146974380127486334101024209720591846032623004937583632771947465638856606765984787329735232760769981087748250531799278018275903171967040121419672499991983719239713187454007990959350486924350584816386496549827557659249062776597889238641239929626306737705051927514013424115237246737894737318996141059705549861098982977283125529736782336372455832904813155881002495426947988121191268205213118433087273940462811333678205537892187972448277128898580049312496381170927382071859614095121941381510434736217060078887316457721412723393947661588463788550629857788095825881087679716139756885957915486604301056015336840646368005224081291675649532560689136772227925533428545235356890793346381418418462947449549961611997990008362258903906667560315768094419673904802722434792955905350202863657610253751535888005557023236754909608968215693077109550303512421338797022612228295430170178927952945167357981053539546928471996890584430274456222964979125915643996696583123454456241831003354551779313139862544513346157849802378617225982930787020910684194196640383220167256991157696520362981692512531350656748138884244751196065199043062257662413453508697065115941097778224329789013771485007458400351026528687042709364278305759153406734587437055704576973865498858869883275960411115946197357618575290584100892017883200537565184450631471278440556704568534261813757049003112098193819421552938039975000880647501527623752094310699018733087549831470972996625406831739897830537160199325619209829478466199099120065116683226509647889102428381143931247269094374846692737532419754031845092219827255967709996214182902582013103449027075876160687951787414488712526176151840138464303248458613127630878981587444951414593118591901948551201118141845919892630206025493326905315976759830011574267047757300490807695925578433563557171817634683088278783064277722099087880419986758155380980152906346464851388081835042477200675360205659775513089587189526201554528291929294969669314117046511442198391797927243805423348400230414008163641160816867652701107047289226683962970942928040505052823724515606313684533173844584543017594723804703770944587429948624990784258859749146256871326070637853615160103945785921395642371815242192040983606260459218923512881998981397986083092226840414027682720097297205190183497443700729890024417772243117632320977021583544826932768823147410989338721697002487778748819886903889279356118616963956641316837171613055457582723213247639880603549220342680076747609226736913510086416363291031674843020699677625927411255130228575438722779627361146446053566216951954396605321325139656966320665328754194479537599724392562799443709009110733606971837493746737488942682197605319908659238860404797188073121707766670736942613377150692139447297652728868525356608668069509688553849275115511866551016757297869890550896839731391339660717282881710350606898885385095271144628999052883135393047249308717696542885315610198343527230367019256258471489971928359534564876265900785642139802901165237280351980475636534956474972461109261830162569319176454428532917992863001000110862123067247386757637851836845009325587221529294466334238436575102244955628476398365100581868059439972085654359159247937854655053156364705513368229041068984347557734968544955330393775689519030709262449964145920808538180392123976908744839546149952092117327836165945598108540745522148787663840104098149047613645887968640665947908425319704372379725663762823255099789092895716860660174580503735558199966024752088258880696815777783005297290836045712111119975796157282980620669532334238118559184713851528171540128814617575451616207221869120639899058266082360765706774102711232653128466069486801587715016035642475309994898618697177843490158663121464500085025407213775856219457002645369601194331810060582707328475931165881460957529480219117321599013455339551857784881699784961528849331041850178392728249635349487680114319513710263681266048582831714519608904220495764774346154552723734453345228528870985291868841083391810471673347204216179437030016799553706144272938559966784132251866315427110997363835018623250124862255476332954466209584593709528436271049850511286028508817334142612986051306909181179476573251395681649991814214575581692609051227559622335950511174217004008092698319508693218298013590740517131319807919186298685910319862248789581166312318977990518866841485014081381376147011105995153879599556905710399709203631825505411573558423813969915562175416242041701114360377849367995247188760324047657519151016819060604019445403075586039288114092192739275647427183077418540293251038596606752570267615414800292314168954445423316963453389267759848641237920603073418288686208342451893039732286711901326931210122979631734326598170823632954913454540540166283576193252666518022361243504084687178561269945233272701688726823931744762482488345602587368248064474564834049640382071394311006181287290470884163243355281524416605109101517225084308706808673337660123196228942987377010297640820557587966464728856459405531649337625857095427605128119079427666720810088416677992607070061445482514494642333947370018989099450843573749626645928446307689622869312909627646422023136301984559955846613385414785142361897488801875097917685039110000157287199650627540001626399977449358105617389956544246559008942017886075664402447066850445326333820235041810636213328668969389435177154017048785572420313562192407825999712193591071472332506395127431499091355525151600783364037278891787411993464804018321581654953754112822288716049527899395105948694180345815554307164974548797359865104797548186295807356395842015989048077462200752324846412827709782805918505290881053610748895450426030686164198510245750390044281114054937564678865816373800510506647062965462591088955564342477793671387748993553177384872780276861999988128491620903974540024575911446749663208088486619267508195225401444716825958105483352908252997768190762963766531294765699851384895018005688759110472469486991912241451328929359521471734282668516133167199116009778918255559122602163368410487860724120452127640714138866254114926369030620682248257897204799160231131817323013239574125367261536895197903725600815058184640590988559462438290932210957278369885501402536935302081742554702720948727639105153394915959340400097195682626707428577806384647060399804905413486041479781800393220376722724648884200865745826055182913475142467520878182669700228872450860997144577024689436398027826083341971464918900202577436875800092578715628531358944006578545463744424955200836017473978848721002348346481467209515414218332895655648677700877216663909609793730092976936411339772920286583845253170235985942722491614793475134642203069543514586818357472494303589152256881096011222686873732478578836779500600742487631623542806991060704486356778601536117537782380773614094248141802139372885125008675114168380244170855797302033610777938476458065451079285266527922182362836870214760929488654937917107728226346057135878751605854027270655334080286705754801436035763458816615501814659822370352250841845507379652517529822446310450769135702040962064135641350240835956456792378387133258288402954802794988669502820590934308719560576477824445645294579181903701364905086889601339080723745073318928694269055692106808287455810142644074732192100743903810866595004031834108511367131753706300064618993056712004593742483900187187373087584980925583048922358491297928305076291407747880596733267288314341113617588552150762086852980869136852907466457564403590744389203030247583764978269623773888378556652698461699312006561769141855177781227508267443202747441577443750496488983599918322558112106424966215876659240152255645910558527620343610277720015555886413497960643188588529372451965497459547681150683689159404252204226775380640747893533440298403157183947846551374627723836808342029883519602734618067439527969211970167537833827973083235662020754646136643093450297321401887056822475146274215880277284954175735748884177076054209965203072717566291823722846157833965201096804529038439543947026367144834313984205253837466325375641522506110605360703201688336642250567655527471672739296672822261768560280315063845961869214654520966761256999317660631178651637420537658720124147852516687057179587037418239280414706004242040669833826878834870670314821020034067210545946201111912200169949457547128135566952700389007169755933578954597886331562075304427848255932209207882837212225477986344064219618172553242193707904281058694221728272219292060719288509520313524477271672849177855625461855453681992376901669584887187591518807687154367158861738921539342258161588394747863136572877265511859788167002929127812279036846571127037827614197057737168873285426639025299545298751998299577250764878335991793005995032081856452710870473327794553632924068269374676708618143639143728342874273898466504410165083510987571981216825609059966212517288947130035375437867884877134504524637055105504161757445422439727465151994752778925653599154074599770295563962176809720901706965937126523226183761762360764507404993409368673887020504522843739744402871826171596285808565293118099969293192434119768738833157986160632072838154719395340329825221462773474605515336407789714531347737772263294989093092284799746640114219765280486289896667286692443969926847821841287933269859801622807063795845803056430145966813844601509290183838154717103059551645306661409840736875806544936694921181354276197666534001321723777041959953779567067309361777285415597140751271254188913997619148854439231112900402801469909236385045959613652363941902654466999211692403534593335424351608583504982850281571844275449100104504596127324478422584356673978282318455884356926202747485729364416853145170429129958788845671578829671838899117039520162055857697222588518817560663242081969421696932799704698658765459915837063606334323484777079734485310500624271140663011420830227098476666434043532530561558646755886626613533580403120152044972878668238929515581224017805471741296058708259255603543985971814354601322649839104571747689604589526961035098346110738360499660976242995330746304156728303738986847078700407454680498460495816673563693174926477635778209494198209100206243836394836779122950497906561097290666627203398895761681836890807322801140207220379380557279245420859890972696456691150343518777509011934975871257618058459531255663585637100803737099137139886613944643868735629138349251986879668273722015381496858570400168873154425511054435597777606172676680429332917915197085724507431229671382483894385949112326171778053208430381282268045967635212437599575280201302342936667581559944628043922653698258808853250035428008388698179124311571129018716927739885763524437914963760676843143581824957755962513506865253640105170465830946956169478487030929110050711307280880812577859040947341901520343347008020458179906770446235643727396525006841646298014304680601408011300071163847814448676224851388831180167298633572588739513149965767498184884729267089363842695906467387650893264507952893241844160316565167278757262395681905476886171460288605829607324242321521160570218698519275313962010923333193112239913603826662415270858692997889766134993222802473689506006002815621127389410676613812668208319492771710705018618955240703117045835368036200761880794006070715540301125244077951802500997580420813172467133525103317172176923658967389516171229236044766701646897611866272638711040452918624484833358892248219024675006015901329080577044523084039404379600317881688769516944103654049901591949059490413911971176411508580928572051219542662306448314591027329325622019215558706814989660721582640012441961088322173049057349962850065389861386153275404001247823568992940068362891866273740657841563477963834408687503245276006905981665254798519220499504921706583234466216661568239261759608179499746974182334669168016661157064935450757488754576697251455982950069713015545261052597832201879149126832094728217102027837766100483201990575358665652082197686874937650101214944499473683003982271063304414581109172024660003315774936835518745542955652345340499064051003356478570548298037304984384576731694169120645929406132100694035530128365721944300310371070074406940679867286832374933782547262219023533543032510385173835362954106404271264458297919693304587037244355494213972686670297293579828909077534418255877213956064178063913924227888586156460997243665399915672111259350121304965752855729564292670733724256456085497600475269690464731013872085583283331905824722625195457476574900016817163885229017766817232398985816264061789549610523322674223362225560190740856986167538512079704526872839500558626563899448097384520369449867250066840458343852497331527091688391671831531212319635156310342634206850830279955111140162317525089610591524705707539955022132603285159725756114621469104033313417977145163652361298853882743836915660116625059959621362737351796568133360327602229780964444487406110698698622526605307687832132606653173423920970949855829613977671991090989854350366221486366235570035480187941929044278449268489533889932090590795288611894712037127403951993841503806543126608476423437084235068743237458778603823462532152531525733468502434694527770452057630211984810360416027318179035344297001402260091452574757455955152602905455571624340530155447839025426591259574107989399987486670159638986151340745205037645409947306508866326503326513231623360269868990930924482081233613101176466689899369106908186621761671628945080870606892233688695959040642643205590521927079429186343044409294183816070974755664208679080373152194563305172349396098507323795794588007143390691817279618885268781010091120059132237693246957174759033505570631738481269670295418808567911219271520143216984680000410770934340767255759714894990722556293807671726845689478898723989110889357345271523219021535482017642926995234670510085693224924016996118352886465822315629551115262904906971091695639524271850086895012645928287530133166008347474533344615958537888546428468641645557913628379475238666184592810863063303220990719518187590351366840433729934419988193943992917346707771711146307124229775224194065719324294260514181588564273055988040913932343016619377564958497681500035128745581554225948392508818594071349305011172989676268858944840504032413502591351860204728690145009264378781079226340345700402082247550455579668481092470929546448070493678984309084924823227795464155857105154517854981921556710349314690982743914495555000485789182102248764841936730690296208229642227382228479940544166789171195313187166990978569575185058769337290865638442817843021475750114457605578533359250821064887713525903976936410693865849171350738098954537493450408379228525022831218160400577502630179504839936341898164743254188541729260073263630284853586553150425624151854454829169316065901749260352077374973584858256875885293630934227814289456276431460494939902746261841838173320605597521835042719968093695416810628748252525757898372995445981744081461792653758149664299798202466650969505652436233400919187738185579458535986683686404721186509389404271252933949887589226662742675856489588577232521353712827572710163467424785478988835818715613195899931219447629845505218120110819705527449329808441915697399784087647309831719359082898391990741648125306359333833607985499662618556827784680259526998928967249199634709891951472523365850812646017750145921558294204972393528965301711826414909062710387502267458949975116528886406601426074744765103920310981398351051057122496945103215850234723424824082645465746183326613120926029938067941341985899130571641275721371021209260755817124929869887673634824901125474529268020034129868830683251883651280448594666312850674521951130355546729979977475183184632291071424973988254422204680913642110559788535887747645943386280600454269096475224569625913028523164380008436270144276860341524010284403987372058973105110479285342955726307710369331752803154231986311981777747266790859410246752755881195559873888838273932252541137600188786042131927284083303704050546014679530319913188289914642789985083992894170597532528342297842954911299308015989725686273754912780070067282333946535644073507181439178142094216572465168308688072507579183094717662993674858706622393062779224986130668709828139414877007017169459904971634626583066335409428360114710093988370560846841051810192576468427211402763192539619045257029632795337576552038639604944399778464093653677526851669486512606011294522762959740512516184084539102855128309381193413019241460990361590442487387974315249600388572400086533863630400112487655816125767445500728127728926319555349060185040076060158004539876727013883177307209036715613402086288543780408244515628475624102284959310076244966799695574621943956263203656218797535788193114082744104421962077575823071241861072111780604550807639983835926710441436833972843930916903768276310625197207653198811796127244097660770223642091108326538074045038517538029868059579803092948407294009799124057818352337396207446802746840078284318580510808953083073642921570664302117872801828374927864650008681312596265942419567321939960128883134443730736076459611374204675301174243225285931429240960292317030884313463504868469402468191221412071734099821225783993543279191606493135325625955150910636034557750241582251160072556745690716508084985536952831104733198546268614916321403547997650822752692703415009362556002108928710409379682526381361382007474651512168329214070242027829573768968361619163597491636608705790467959854496124805653731743598433122290319250532761131440439346923351378649183233483832796949080596735298372464815363419830893547328593712345590100371286075570889563330765628945821179129685335926778455416390716068989415981545869192778891591727851324687574573012646128728486584635734010634307358817267032110865010558021895521803820295673750738136226114082000014238919233304730054854571728189131793368682595110865147314497103550532207082959775541663272998357434456704683604935145337192966417255895781793896013718670216167871924804470116630418434511418199322181300391807002461695515333909593749753281938673374543383052210908740150320985400799267995214886704466474690242261118331538200540962474384127954275772303010329180246256000721081465342968836190776668486363236332342425117921270747049000838400444592875704407347818448294576004497651356900022001700045477575064799657895876325761939853525654146560507865646925967063202191429932631015261262192088053684036196583515827083911742554728202471229715586609000008462264995595844389806696893524431656508062475670055265897257348708668637694273150781050336172933293979578172928046876952319939309454477812437272919989681900166459795288949110771542660423508016795427148160160095808475902923607168162332048238447390123664736596674351724938451854955378110459451773653059627834865118519763283406097371470830872149859950107124335363925778257338606191540087341105551153726674307773607385296362631052265258614772083122267802036817250595262590638636949924893424158617451235823454608589936598637507058242414469528345635292243740330309479313397043298957814092828546563723326034392111528439555872302140874589212585747480767926679220819761563487344398349137410716802691105832919698084755638394013382380250431259836561576901283074678617137095373187430584906606431175177673308038176686203815003020716641379489854466524018123792148612799355008544184832462951163656030415873677700658477465993920436037062943686453205359998312322634716578626734847261458644347499888100203097298161268172155015824627725437438599385150296077802031696752251786220959891576623797637034692872305727435889018985942928450960866428317664488998993528653441204664168285469011309726199509732491523937370497105368474677916090420456166320860148924518205691904960739028998789682814744088207549795338994643996126238278427127239824335768735031697759011427861751519435221780170446801565219695806432473658312477115912294389025321999361335540949698251097699980259343408874905682384451462705128485504785815051025729123531332030159706869878720118778878301576122530621791209539659094126956589514903337734056228013858361113178513425152122047028737899512090029334295302577967889439163785138719130929671423098310490582131053275183093530847537048732830643584061848878377602657513211049896386401044625597011581086479559113196150602841771428583062135147811089540303576911120692695284203072889188385845457695205466898791568511665110182827177221437552687523202103093228692875982548429333036302850027444736430535958862915776298038228938744783182645698510414735367795572276349439097706222830303126353597572544706337054673529181053736897981935927775391540406412009097825651705388692551671940551349075446442190914068991412111587424656303554840101882973067144640385894636594140113800815510427777839920398640501027378121503716593448151785347112595732581735100519480001258913008600354968566683997971780149475711422844862109113323597523458194527728322301052282157799754244721191753319294467744869178642390310815540082025300146964597121750810080456090011024088325217206982876276988165766408176240850841943588286515036713119923026338509556363237401360974550320741929284610109180722261779188684648862292117365327974679765751675205323184387201316933751881766723799852004634373087885106522955364176159604332525594018513735063105488589074792317382514353977904729635812264369031379582125786686940406842284994007243035992044931550792110103906809250197581817740192619803725200998893625243652884279728749009042488342447556565959315384419923534087344694052088239051762547555317361629108874706509549160366464418043267711626191004778324712541994934089552807350684304159179435229944143010974349153522083372889232821764224939422792951704658634766412691767462657570217149843888231783341109612190708185021527444533858857777259786300417519671334421550533657706762828670630082568158469911411479292148441514645951936303928876078645033915669043593632111315328037632330491207905783431561639430609731966300760586313900194706049882358951666112964531659344358860565815980120257995314296423931801147416590239492361071646012398920596335061764525756811708975884005506625723251333329800856215240850044335834555936291156373115124253745870618830354604103587167923982339049065383031415474179303583863306116625261597718069965779832705120890455298097972275478673796570975164918477852934550604790700956790470529222268874033995549218760082134899669314642423882262493383884190729921698159382833437501246570126948681327667951790582642455966288767916741455931835047426277264964711887847379894405176507156404317920575404698582859424614083012203534827987888039108854339627518682372273026040517690520256617141567784345368295573919466113255192651271565307315033212643873618485897172925498096694966835287855755841619835987123396258650753632710170905542206198864673728835833950152248149753163122579536081596191625988693240280824943202181232454551273445551111773560653993943400039414287321608707812637450064733539618095296045242557068866035914049677996319536535833877200121524610157578315695241270434634483138362265847197722285174851009791710247258131872875103292639912932365890973513231315331706327755264238127575638861401642207695118175171923991466661242030236855451644525577129359003342830010193992448122607651870455789466763469901996827991179003867754370430592851903869399655033381033602618292462770767388881022030610246390754247720384178857919449039192536081909544650356156278617905743367220572697213870398575155733771776620636936664712598532817888323963194512073318224845932471854124900102215345707382771653365219679087972775190373467997545013532788740521087161327541627568680307435803109624745602682013751992612440422759928386910743837050060716945872772334764487683993893774629775171027256022557331409390622872221369892312692449185712935246963937870519087390189551422962333249196541996211738164406939628050223233137522938500280310747395753978426236000179353750951703363793639863766164879922647095684346358719772034221243391700178247530719834865675214517340148646649220796122373962261369699660982432923658524893047368132447045450166044584739244386311941941873690219628347379207971037048684068817173726033892182582680939577810872316915994784166818994047450973575646053019362542456830695248653915863393507087915202744694877815757650072391789132272352500122094099371350931055012509641972020720471307298298261276161998899370534529815319839282244139457429438525244194566675693852512646482676493140213371443238757833231693301943403348614791477718892373951415945086480566859522109906855913259628829988370304184702375841221304343974840366646053130600065617319732207271599716741271856423966295602166980597176817175413500324860505642205539205117390555883786338811628059427537366687775148661978808796094587641909454195253015912432068933095131646239072068842001947656989196889167276724653223737618484815312422045892172780709203101117366358427426545496311001097572508589716932889634487830981155843052149535049924262432147635562489362328724416274716486826747787763765617231075978526037737943597775393558001414471114706506542023890767571375057688644302440965653127831073124585774054787021621556965398952331728054560590101115449347361922550392557718142077094063756619727905326150852444569460914062047353084021587349096574493445792006549728621955853950612706751765114670619615521698901326501857870854343428955120510420069818091589850454116055560973805184695169393352398698539390638878221221765117976701964874983291130963680465362688163751699279805159720599837557044195142647572561328164107538686614545198686156834800350379481996396010016601792432833070640399865566442390280905052604105455543868733353093115077520111083394234967910741125863101423331067170066334431453499823897599695089019627686412648679798142127199436681446521869048658567450116884929622280605962084022768833200104094318188069010758373003550213169168378294437145742544236069090395486708329839262563296489061032612299774324134994574103295509125004116494665499752433346958178081292713759732203526001732242944960559626520973575725061694487064208895951055457230354723725124678914300324259867546728398869667357636284023630778171056927258642783950615397560617936615347259089980328247556266330499618234397851963685294536855437032707043808017124030120402734259729301236101360025603093917604368943868490571304806166083899903319088012057584047091981596249513321227494948377308597463181972029951044285103423325478275313959238058188004888630199826241315690379818775994713870151433424651675993346445087168246914943810277733109706536278613936972346982670088265363064223217273823837564254008575397145340183410597668009633563483596043100153895530052567609541995915396150860959372773416373816052165930670324319072758910102295547994919690634327380641428819011010037790217036035886352688712128885669578972536414056541971260373048650470354506218974047116854984837549012895183352219300854385759224589123802975229628674928490187178369694050013200437159246782140902805399077207837113603625034616225606042417270681877127757846601553333301687890215517478651233076330477292873900291108669137017834728992671747852453391097554748709491908907788538505880135082558290641843418494055418176557399192902898189252131503672160215867193099111277206059639107788856628801511158189868899751407984697138046873041261812146136429016895107173154329125756323809818173350878152397473037085960385838166336755126825154089381366009488210444518714875883918978200813685394846709066419523811936798839049466480313416021012129540641508841155064559746212030261495047279951702809389389880247079058136845988166735099672896153479528365214021574936205554168024870460449770318669751415061023267725658302930433188578329671543192795076283681371536382832475437728049989596108856715932193697863604268574038616858836895747640922405292021603815284540550994267835048600381702681841584233855588819937259692118665741042052124458023753794874478126152247073650953147120212220241219075238759970738086874194787412863016091448940506149294404733018997700914414948157174209607223335527510632718637303382423760105078824464651176981096650732194801841278175681833148586208103218655549245546997029038099808116108936441852291224534040106485530046063107343766749202251109194249529804261318133559635721869081805196027989162180341111529885990080068279037241113852252009881160142581486783172286154391016326890717456527216321713433249337143202400874753121603498391934254013790986403702436210106596654513132107534835925227047966271037369634528285006721647368129468088835269443626543595379714821138250970606541078720759418342058984437848369379527495592330945211178555940128563835981112180268058521652211562444671348629896633053047103977939346172037831040026260764310981010982622642992464054346331486151175886929004037703585208090252911852664636654535711514096657343226475235703952511881359465589460269027562343783040838446847901258538605761452866953713876450017545883880602663250579271652680675453079776580130290725550804494951664085464396500141554054145097901022261654355190517567324869242639436696853864984000593467110343119372725463869818294857247222274838164385407054909249355129765054997735049182850377325894158497476645379182166337593754717886778326127794219111595410713494916279956839966561616665426239955934952174754485150922563596951384556451837013606052462013661919557637890182325245069749890780361854040074857399331203241832888795312470247346265839216209876412287046931329088771972420288910916607246413104030525732153338625269169802542364246440572527932356783176083209593084031603045705288372922138529189849794492257001173859773978902220177910274292210341493816648241455743261158909235350342646921286388061467175673774939300708714914329965814747420868134216862999307272559791558567398328145102029757139629973229069616481664700334111139118836635073648277254472588185962158524760322240059481592509398991799537016392313544578250810604070427128043256688853543277133151461876295806650526669078261981782231774075909206979728150765044242910571877821772366693148926500778852613583626611008992350850052500577724359892108462004639709342999764743323581355676665033775659637874959056535606056387119218860940025779414156390087311887731487935833817702290242504100461411421573401619122635121833855446048759819645532633513096236573366898063119212930521943017946479164637868941458847148577169646603623528941392912670434982461692913481956326499059774197486128201850285378542813334428396556023527442967186618512098349595804277519887688258508034621332566293808229591890821004905028308501969882013509843699624010301059279604858834733414583448671659394035418696666457341027676929734289606733764304438817196666469929967801335980384775807420632147330223685212310594702397941954342657978467133143175240182943679668828938117941170920036212578582555547748486736562191007448940382347556088579235652964853757110723154924289519286242478586436416652474664502297445160799997999717276252267405031109590364083511784573087323125466509725590588478996262127931391881856743932668810850982563945716401940511051398866411422962803710045163415195819965820752651387557094596312197106850007191801391641970108969370228078009012508284833575372443397044702371030952333796235225298003568644536879568730987640563070063934827690532007175343668635189070515574861000656706814942806165712859670813521862379316815663396501428529644350853732146428132841499063208463006883455696981150626698198631646647712210019489485164738228871203425728405717702096784003158137627623263223380510097500115906104436892309729016848494380241789359258246129675323401036561885691654194078808618802610046450728335392085749212026310997474575183693608216318343348285410619196936460031145851329992167390581770668858965475318200211318635584257860136829089759617299090600506803273335439347069027040413568418646738650775335803102194091302877434610537661666756114845958863719594529004411605269173518793926255618980925330363980211775047939090930147560661579764147358725996018087753409355120671399143457709193914672899316941625290819612991367838792331176672306302531536377000818797693707683498112624023473748342373612733150350607049406739153442001769878638348312054603780812300325056207069527213856229266719997376077813038981929435096025904615232912319369903888959691137780798921700266236512075545654369029314238919770866087149625020680225449546269306271540769069313327647009322328744965176125346195872716976656081846893759009374262658503886398998087269326089869379973654204735235427733136033782988362395403562943279857161055170543652322574170183887308692495328850013194490654092325219120910872537242554422607611818261563758043547014753884515536159950540426081202458637881473517988047482350841680597534963285288693528786298821785829933839356488174510181294696842926530924891516173407914827681722809285806905364176537031887769159367630606309381525236400032429123933672494094612859783731897612131265356756372757368109322542192109593332477690701340067360449783089239912083003309854599034609594767742198651061209223565045390980357022111581271249493938050212185700750899206383130097338205024450372765752206474286635733931993474101580328579091982767554628093851849819706278621668623097182802754522956661472934393695188542036802185163538217840449775873975168777473641203625110332116478243755312131556717037143712641562655290911421343346713999951390542644626940946780379846002783111459548459269598575921203763664049821616429838758245934732394685452307756595155537341314569910867131820416253737765451203973782015106373466509515186812039941320080594663185846377545284088152307555541402760899628836212179558191396191792779540595528942621002169779149701030349190010062515448624970959505383731289788672134459296919534265331091679568056296867068142230394887029256424549878504611127651481695797828276062121763696598470755853175665628331074755246211636500738358269187074088653376623761274202058114933769362889972357111589520520726174854371042044097617366484680835348626376244481332960933714151293586915036593627296593080371476496235678909713508056143880684474077508392715933163358943852680741730266603658886071716209938100231069129757749762318835459928818913925860643805401599269689860901461689455945170929727844898586341162766099889419342333055984231529798544728507082285543013171910238487972311746269342630914947376895544587503263728560807379396461795601716110481631123094210459590876723901726133719905236965417372760869848158157811837320236203878409904656820401212163894395012755820246257563759796360048804028999643585372228667151627837982800656773099573451715454038303777056185045171513116866582442379085835367494046135466665596209239799872331067787530125567460762025790053460397395129583062425415845776598271383092708081933533517691869119686071677227261366600186760203252282616674507766298128809475070363415292302150142371254362552861377235068139598271617833644615065017832084128477787431993811952414650670450893385942271048504821613923770030021544687634099859919729792301569792120197938190794963387874589334217761456451161783267360342049907944838469443110734535017540132574967621807075162067600018130799304663638676812934412657054613306764715068392444151818444389864382716309099837523012801946511582710278848948628510925816292828826625753181265823784297296347890520611039966999569330157952935697212103310699306044598377883234673862368250132962864991148347600189897400999883488352190354498824364991795267408015115034981766428531190167140699133665998260930879899610238997442198909954252985049913156985988632277492643399186012480527793283937313973380610947882573219052081692831484138543365863948515073079576880549854077090635708897120573742659661106952292989077582541094847571083258272301655777262391417785956189115188369198636867983711892046341302770548894424627846865507157919885157253231303452287665229136633893018642067036405149665205382542410106311278008117624252806018204051004592092290802840985210196118051643182288650044336139989115018737437775174644076171919293446292095740514580548720794727782511525746156750972187648584387016636125748475289037465238669684535513515971273653026903059604966146504848008888287515394956314148055684978996915485478147450889855141191490694818350715186998101477202346511399734227838779416632106634658846253321751419623723682983011379100531395573875927696146198158407494768937595205567063261938238634275833197228790358676994260075255943325986733484505242514520441951671952880699190580166048692567948961604532863057593039217988581344515865501132822758756378860207485184316332557906673203876552629445351454964670512820552235455700294831055452388770545643691808574756712355451899886240831281955781519036486326716977908545516158213561112252929958840341376273742399095723058094544913133794444590205958818771592035514038088770854562976973525477706035146998774589472909863950123262667751128914088184146944503852008133413124854348293845914376922136720784121261446978175228376219030684040298860641895881441935904641681398627820850556353836848602183444689323543190595366832098213199798786936725917858968242304606979890046720357142006163682412302977934045943932092675108503651910546056129480337877053579991061144519882941088242965123973301030755798698243989277487194635787412577899624160575978015229399744096968065393664569209196241907292771412014106888985113119816053113150543834296042692406459328506576477497884860546854130476687447748483533132708563072555103735683487283430343213125990725621668271650171505255190876782876410537126035342155424772518251394487942327598032006398484339027185755097192974794892712629957332054575940407417490217890816339077435270926230213954650976076096213923739553452238756436216150016788073425657405229492785479170448879204812931375989134603731880338252212080980005910049669820617037128451010718366128025104488569168190900379051307090856918980557725701074306566576689651569540918261302218016170998279688162236869693109846175822005065739947290475903353582501387332647591984696517762187171157242865685085571914340307166729140400632749680990506727778772623768265937071225447633027982795619843351301289317189235767258224471150160122518727413136402290713485582267375176366498288814494700656289510587834552011045049528477325680372911057093411132643386872249192593138457910208835679197210999724833711748014322551462673957411769784310779828771305856716154028933736117533264530103491885487481085577294854335824919838443757019235205488225251203683888759595608550788583272446521574755741913532042967421441197849960881431673647789108365570441746017005463960561546146431122109660367597965275879335065380165899171643175605964352571529801268498454864861784842300286943327318812026210995502534684693668747036063126860063378510297672898744687193589362074337312257254642217999091950771582960135588083182843881287422318602520162591736344980511772521022835126194696201960593682238412744987456200714566871333519878823146447667047779641655172812606101070707579033374006923412894464100477078396470992979744853726001014619946493895457129149609207316126562894840158218630294155158127074335602937755627885666834489856936118499547195274927210785832991802681428382050534704951147683905766924239403918235995694688232698056518632876365798807991313479573755138498945937569869755256459381946422761127544103559123428971595068927634747974510039875248384175083552488071098285407829002304926479542087919076187674266367343660679598571095672093457884886043108958595371703421847317661438600434951279879082612731623682167372020666834118629267625952722810200262986142390820035087540073280165523484969495405983156237891612544604998283838783119359155826765627158235386214553443327111820171093490127576822184923404446762972547896422558747326019862939753533363508665660967904223667688312676170751937735902576716142370464730616129360755592126203769332987452253095838801450307737598011639148453377008521564062958438199534078324052872331045935881944093553246785467569185715553590022367545358370963835017502706803796272810352909298418803713468117217889464481898517805831054922180917249650782463584921263934408422537201561771943862149520143794872554757332901392073121106795989489752433215953924892214428614184549829428745135378067511304091675443802302454901134658513838882233175743505980411621063419391403264456948866896982548225082609306268282171586438782662840446226640926406791722289957775923059759367064191717758282969691700674031336646199414879527536753272048489672246179727559168480129728376740630393927615136660412195292316205449208967120402499304645057808606506871102749273702315228491139239317386356717146549755250596227074991785872816751090509108176133909092042725951823887930151514331289500623914613453011292004744348353008994945254404973830063226466895701401131999971988319804497960166667692217102245794318794814465752091821034358568754941075747845904708803752120618904983131403714707829815620756467173138262058610835842808618240850778126766991853298007577746511698625446801035919663406335679170180637360194045634206548699875470451712297726736846054969482075489132293864474249565617456611475327655024734458338789316728550375100085030980711389698924886312258174806492617504678508789587540314104715660848656894528598333499702962374051363245334401273626580289320024974052268982536515658800375746646463498512002476906275157279165609291066615469478309046987291953157702506305289318605860194631353330122035273688500196575365892040155764755237607245320981576215676146065903498305617642803653048468385239632439969794751731805688805067239592384800127089883725263362432359006810302314642063673018841217190986016111473021784337548673619718999924302849806421563420674775591788530216228116350538927117523614109434747241783716496811137424853942818777625288834522606238042248457016593871125334453821659393846029818059870856928203520653660226038495439882125358202167461434756852903947492774720778542644499810458849412341151052660071302963151621917945659596554217898111459662888934104066138384438304925492348396345556537429713198185213609518664810904534768543534415001695312442757103873176519313013653712774973271576427745936211823454424710925477039225719149109328837973751489867395033884786074515667424650727983078908782689423174573100617625809760071408640585200660473504549459207645202103497744565222630721600769980354138236331837960209852627111880044170670911884209392696454249894220285775494607109831407012579243779159860722078691705797041706117559117966248380343684852745340000157792125053159056472954627172157268423129690768951538052711939330829021775580797309210154868839299656548958453972561329953490276276899804520074658419836723437848899627605692369338147687115367524754336040874740591516646313325217819485280474685718562693218134800562426446949535375077575575799619307895103474046458205159632711622204632704667041841945356844992891588915467294074359503372860780692478562390300646424866652334279586310237405984986927200600653299277934406735694546643604386395586368849856524122588820280217463389908170417088476771031752736917347842202824947547588567369687998524098157447236758389667580352098257380757954106925295324800306741616612422721876447103283477684050639993772613126124543999395712702939744760103492911573161594968159597599360383690184373554502866056940292127973240429705808831874780673355420590088127506177162559890392977140237206353372513824256860658672677509259569168492785116588146705249407671126239082971585230502033498999097069590107041318516273205997349790707480854796717694738783043734679728144654276148425265454785527076907040555520248462375677660102379161956087336637504393521624475869335699646284688381026770640655058244241090479010090362937083083334569106704163665930487766044591232607426721043553631572903679493470556069165703500280290910967090796819401043130317387864923633987226020474272544146298549470224706154063776819546128518362565418468414839448343674027554450801422701575096654750409619848697948554379657410920173383803237803715813872799752484427516025853855271478737126484151386511688540249624823270822938483106626997556704934772334928280624749470223277214261358307864257197304725381741484231797687443713010253096942847005737216556223642403373063529417522169138712434927127770017415451370989664303971999951068740449828075309956120360324571736155451224975664566351269085737038297102084457354758594757320325148894075048647975909784140516020054945114557811275721739710178453259403222166623138592901088448987317457938437810784912795818696436694859047296414285807672983544045423231548153468996603580768211716093253416719253194869912838497255241408877705756037658642624057155796033192825799338722007368869561025713665716971888592085267031329703376780897508777699729659754391428783290551323924604117706196194634926549899908963586327916003435329394855206814627034132648714571258957742831479004471125065844704156811824519495074454890334804858346446956161577542245952788728399898544212116495065590938512792363712373690769199652211869812150786668635669387084283880910039405711018260385536413628539132210649019693218756487835533669235519294187565278986280486533508373610779577243019345688526478469185664031115683407123448209942686507780208164178507545576636099479311989466397774578766448308727865069199181863451550295812688841373627232009314834108370725694740497706352826335190929547394234596056953637802237414818974395180261516796080024992259468987851582937013345206539117290769437278220585316591557604208295493508361779213496970912160264194631561511989383964372744099262235723159818423462796876797415735173466965777294133354013321305420044706817430093916474256829541104299157077199741076580907056422824433752191162401631065635295899259979648423250085733979322300222586518865616790422191747136106182942292610760189230686646739765616641048725885220045698936969193537191923857169424407238767012073792295574724977473533821119659581988610043721886941804037777490154079979267265388457547750277006640516320235729585454982319786276985645038221645802763505859870731849781668079506444744111331013924678709229723213679982338642791035332981569226655533221589302463768030765579622613268475394321599254190810288249585384549741534345560526187102070209672614485176310139212178249484514414483646947131324233238819948366111817868185839670500345315678583796054202269751002221939018084580335922574845594401174766071951065756178335973497045311104278197268765794674259348041638685473978518078928409484124322016261119547197437568382411993554640483396869211624727472322812814543848815583544376800628353918687052405721182157436693727117087937698408493335986404548110326533768647162593814206705947631889299550842309977937824603084641210470005630771814274511543101520125129287655279317423421766280912282745271700367775831095073015368602375221884743778530754095225489139790486339163960791155632496713777841736772680533512088638089525567238809672777990438423192660875710257410528287185514103993317945700337618460275747199410020904068099158789193106103214564771919488357824225716662789712970719459572091540462012067151423918852364614587158994260119768271483153406709355321317761016498518842941368985168770496016241171912386675272154041966092118479778280811751571524997247317967473286160222406075886126804810167883691134053691470558641417652473046979699949734125992484132321267225604676846631303900207626742645107909555194176598226989354039193981716448979534489763897466625199182576341931820864063393945085475446710165760213883254948338286607664361265693192191263830078011542685296554201106682363431221062914846647100571246763966365106083700411129028874276675583841747675348318572340353731413568309562258305097224664740761419838093974962218026295346261897667682785816078881507132121544264759021351404422477620048487318463211874545679356201105481929976305828481410478672407636818562848966269039977538981767123424109786170772721814006860678974584056750194655133383025815757229341014185182827339353157733611125513604943344021948544815567655523697179283506161697648581355932952374190433788054191760335273387899827154843529342986089090531978969699077832779329568757037270709761679610204917430993492103480021975343356514514541466040223020219552923589716055540940479168199747278798010478690077177567601712202416325047783432662019953711578877145174363626714477285491854234788375480607509757612160648844616093519514663752588949316965972841980043651349978761726067831946328891853406986868254238343178973532344042797485785242760470352911811693685938083109103102504517608374196827515521625151707382952244596983777985072465472572885861173894413016455480989477045344612132079276365997912738576541191090424724208805036527969813324933940056737420267046590785760300259091410541285953984639143554190517691015933118320048526063937466735871546389902141194612477311590078841867824842133449135857598016261859429455152284638308996214000847244136719045698131119035855528967462529097787165118012497707681852668017974495221387253445849932324782249627515898013683220836009087907783875314108688526406789435472099958860837284640800753336719832776960947057606238477613498362261795532830589613454026015969230842732888248759915017060534680799170367464875705675837457067808820294591010802933496393070242104674264780963468173232993236494396909344313059755894917703194444538825692243014808203059507029965087310683779974137999403136757981884064067344312635764549132657210660292970510497491461763963984767840904502540031683560367297003900512039713996673857109686646818858897194426900700769098116676498135125789520591902830360618101406191939459446367472051335565358777088762734595542982843356047167661428921259560523312036518790901512243374698253415529657424473429890819932783090731565643019872455816658405557749699237778113980889197048928410874555838921062395867144317269135159335982959211419744053618093046061057165615927098218814357175854402145495227788657226967670416825067225069133238884168101763272350603351231026291242633679046562457116477080365235491999564693326970083345587249219732866929663980114596215795643945000979139406921454848277834826739920708992482751229234978429942762210003193412920888180727142028689547566472703715321673953615603862504591156331422610284568029423046748613026167995440405991930121643666800605325389258261830418603338627520779100461302305591323484880785555401218362694163596404299285163974080600880989694680452433812351944348319974487038005748424460722796851064422446405433217733665136224408142540229982716864131987716650500968792490768601514805933334599819983624275827692952792984129251368354156111299391939751682846142455088039826435541201428417201921199083285513985936163634470330397202345105390205206644379473600788793436080490537345558269265378924313987337661051433772769785010897260522810624165914626217499195394197615164423979389749201311928763258866191027831455159067173524328914037721121764815023010660969307712590174790142328525966058637147778820089935096864477002431737607338505311767899295934315663026074917874421419963892655538719107817382728817017502041681725866130228266852283044795272615745980757882943901383087058027872501064823567233766768650027204757780584752328600794973056903658603613113673294885636331222687225474056849393781104636977205762121212211281466808606653229027304468659018984967069100439613933777866088108647606557862212492343886023302997066240102225706268100255486572167873080621606739539380282749568955557156047360029084316509552097326056913243697192025502947148676641416932827971472884295825810971444565521292662347350996489452740012012137553298147646522032457542201913880889657783670664199999070471352959296021212930989947124545335614233011453115085690965665711805015617674974225672468862037312104578611415690605874974838237162287197140712716528581806210905347760120398319238036896899861462371338393901145791652614408324106917906543259450652223170580735466934544249483995290030692272504854988788292782931866332420783106158779636519774211843304884872697133711214034013543485981428945457268985104291728267157004015663673675370000319978357638474127617172118681304408711785930067025681980448398919080519186889104918247726529989516748078393187476280608027266875047702037570594669676815691554794882940880472711903708895525923559627848319478026088166461885491783415481224290324800472037038023074763747340272307812230481781830242015268494638495169755192899475580493667703597270293855182843721429513193614264383754321812211170047527392768758599024401320713270024118172946055283344638413555335554228764603213646094617283325026827665198971927003532616337317241169378547536795723244916900275187299964957585273028731177557949852612158039531516077515318330816083741815333847728632211218112027673149963004474685474211548869306112506818326287723082711741949375287926040869745008577358505007489326219238976706964143578761232351641959913698609951225675388365104512144220272037690544616360970855764675846952707844618663483545289208694518491625596843201428981758108337827534398504675950989604564868509076005123831917400474875383382944095460535230647558970597817212936418996233649678640282513168822136299875601489626817571971037360526679943464257282072324934837531147946362705018687104553556375662887678398957259714111895310183821147253344690206610248311808321422116688591225318086856728810434517550801385372691923414037202454151674084473614932772826878474257922106447326711187299324623103093446249513615608476513726910423327720687074115606256594127190066581568612157214756559197883447973661505809009549062984709672746713967241900807886648661353481115296911539492053842585485137655493997165076085291593568892912965465916389402884952901301529051343379831204116302087971903580217596878568851543205200289361083823313647246297192537002552980132295056761056946408400196183260759311368742886916263923597322441145498014173883495930255207032145106302560770749780555465560557765447368716704068543323472188114516403421761724794496403060721844555147969479548048483959334360842902857115559323264533784550654651571249343780991637621303544259533021475625456874755894122863471639175560771397340409573644261563634775931429183780930099676551762347260450445345959260445726933896341771196225797973637868004515696198011762895689418018993769978285672439999744591293462547639734418968202269242093891464314281552088279234006686628215124763637915932496501627426497623759230363876107149377418751909172687757536717883770930034182734759159875707682714300484987791004294047033391193711928895926735808637943037356553328873323296329574622070704649028819507804182219349359003170221839009241868173854850352844728102497077396604495520313885520309317585628815430715812528449713815444235915590886968132324668732422736240879060764776541754911906564671063502072176973276519146816260700825183516242145195667664871321323625116072344151177171475934562882582980157139730601764915400873676331832940693799819293581178256082441389291047266388260950508303861354302002468807518522370663403040914884391357065448245623159273272636682696612770833245570777313814366404262387504426632221874633552865558813821862945143041914580528520785772166907273609873536830201714029649337746194026338948482254208061213617561387803139398686675541166441152595632164071610415725767180847286813190874711061012338372053178096490627794335813831855162006483823455173066894581231065008256613892129363312668546855380691739351080760677648887633756628501167807332124940792429990136260444331797580564416209845356379009324555460102584243849505365216629446017828776084626092053339378174143043211610998566934637453100124826257736483127634705278600208872529358143315967434830033905820381488024820754037526101852233865588853984144518243354005211978724473385920902149831154130488091817353443208979277886395970810057168303417259065057727903198477308553248068111302489257308630499537241630039179703760031470935422595036146597803763988390096691929931389953509553520167725908564514114659431011868304311689869550369587640589041825993402050958174213813338821446326876552497439689639013641401713187168002612551799808683828786753277375442371076548720036795636742794409886882487299075925649393338158157180143720046673613700669832401205143314258408006158952838500732322309798134503416081180597196659872325429469509087398166691596036689906527055945407089916732511503390578959629837788052944313467616601386304293817430831516084947538459755028272797881709024289210336825556865873266190962226823135022752674957248419424092616032124447227888764847147444973005845690028713187610328772613983833008857822082945367379997734104779085279087125670991973729274039275057328884419381859190450535825021237956606839576208470306840120853748056743002217898531959337414532955682779611955479222933201845228050526776328564860088772465330401216303945129515013714382910759985084195985581013745737149705961762426013163094520977881421513271381001314110390894020929443851740039690033211785747730928286961777938102574403648862949417981999914456487187308319636924818902015656793977432255280710488841570469462723107683564633594003611313835600803541399180610728024747738607638828361734579796163395216849372323784960550522029139738352305189154932565203823302687248637009846131685698377846821831112185847242674203881376512997563028783100623644927158397284457624125943234596303814173088757817870794114966171043292069151842963891200204708430230614077104370759598906795880633004773424496252417711839843265167654984855476117658511000665373576741551585118477953832002166540293987701567022836697713698377305469108021080025531722131600035383798500765828925576375248450659803607875698949407471749125201281235823569773756564715521069468249041163296591444329250028803410618106386501831550591445330418198437883337083789248545471649534930925839067159184574306086305959631517374967051342794541960793718893602287926182985096440134647201683650518725860525459562315862902307992412978225055959499415217957132002709324790452768105612423523963268145898781994888023536802396842272234127404395277310011498416078999196189969531021756189256751362457646184538155255182755997399703315281745404843553738890745724221774018723804146186833399871536334747256467543840463521909845955065788621313594754454492239991869609416023780397783155937827169358654392662360791422037373224283473352433176100676125768962488477758878739302499396495487795213106231685576634672314341662807314823918593539762737437143712665721758914805689979758451250901914241350272471419073021582285610445873915745671028571683732012411358101018195765641113659105507489518137300710576790816305652780268121954744941239024642605739809264852653810247491728100948206974152274444347449458139518985159783050908161628010001485871430750556896787262017415055763410547459983043435875004651690257841769606977146009055963881521755403000451980245310157670039238006933384991457535697410991165655499165077022735260045355722577354595728388090445691874931911551636680251482877371589439266286058818661935928822837787069096713055617947593819299132243231483195172282639791133194668327984853435993199255513506198734280238227346106779762949048078264007267292069153491242497799396426058598420824732332976911868663846702037624048608385150555666879043042039037822234294363861254970882571308689641095408205761999587006460443983255492752032180006279994525831144850473916021347493405229290952714459705826454585442467797397222855872941811571524172579587176704111003305608454519238462306689823780987288923432408786725271699575174793184892325392766249574980385798957602422107012872835364273379411154993071148899451894408523368837664151987855359549367782516979323897132318258681747448823094083865935565464107499664590115798992417835088381082975383170485631494039626066621787376293474088229463274703187233842304628433094950697897845728925229980069886812630158321386907851660641149120442509807399658942038337739378227713388685051619476110317741092639502460561042798190392938435783201088756584189958154475617980620962191270464000453056997591633494247781635173824715355148387868885768431546670638879858614471525396097631464698526403449242087500697648708665994293893170888839537088588447870005879617899271771581567245984857008852459405803696150763006606950422382090056452105907656481877798203322111209386945763735372785561306739582140389577359078627610165849953112729363326208602046167421638532323133133966422182778791029329210425220799291974546424284146139476321279763543754809375073532731404868231356062495828761314683212307719886855871500401552707086626575537329709129111764742780896658202032261305420194197366852025957566027214960498262108039057593884906244577844736574669991370706803383805523291021713776241545340642811033184152659923549047373515902762493316224442991486199710374142587602657208842740525381147100869192152220870476832469604692553118270937618911585397545094635923555088875956341728210406824335675608806463845418960378573687508068109375608475994475557199649616785517032757254159084535461213280105608786161574393658623077927124269514638005144833009711852800033216122888045707036328622652457374663264680811591915153027388493829585677657189139165626921601745772665666752378933315886635869753185695598777737267059792716012096427655321625043471473635826799970275968603802720312782722305831544060237031199458870118220147730690092256407450252766935256059630067450159957569645046565794757586451649813937090284361892937177166040289092872026365461762660322483828574320596233300821044188803330313189325643782087968897968792164619296216328040733645707325820484710693204290072189541813138667358024081988998808513814630245227779083541591046059988092877413938429662420778844769008358430379592335159643102988886282187591145007940924928012492281113079303123205947774434052150537620337569414069337697943652372249187490437548182247377578561104984609889410314152717210272354565310683524548739825115512251149181780103803488813871923797314209541356064311636103502771572516177472484462182383747148165431603249106337853464593931912957552207951227458249478084651677941774629317994000279455347445411571665987332582788758485252955456983164966672856901903748711190125251840332533433554303445035246116558170460574753593632421807231757581780716217190350626866694529855133796692436555201754968974568138190776932201083134880641264030182203801296596530825005165812095214645748932432027106591422452160298245853996386428440984668311816628769198718602537043525007241357967115740787470029372059701535845913826483931960892001033693507717616053069733940342231709764439009300605839591435802809269250099391684848157133168103224818520886476539608405813339335159015430596802265129500885921526875032755683668838310210739162651649054323114628547429722444742450019550776971505133293179768399742123604710074612946104889820156954130163863789727108534546922414452088782586857121375853584184674751491154320961398147761013371029929216180157011072249021358560390889045755952555451766246775263284713241144209674570516475836106815742294312850390184603455571477218571346268493131314809561000832997499691709132554436075632164675623260383018196309623259896755259858857748381221536912969751696716749459699386198275026856478773683437739984089814110528680529449402373201210068154818553638501016593941699927135407667631596720382641466686285044187416055928462477286888192527658945868641175222217075019556543149886668546157106862087216824717272448206204870544540300675880162712265431731986449319361169407675297284963357737900801448123158226999382407941987611356984232113882051818600686443478123158441474761567838980689118172610090512204727586781850692006802021874053017710961560925171464328957437642443893430476509607577424693355362052803376059761918380087911737310937347070975697525630887265016285833174226256636337306308491351364584937060438938677740378687386426276058265064864539200691911612577064158416994641333165863102112238072424611893775823618121600230205194946689515100133956143798738786885791090312692319837462131324491103075231505588290562996623933085903152031568185960417883236806580555608354624282254227206774551409354377733485834797308787607517476517580354442359367954932721196838605792930245072901805725842624636357787348635972736082685136591572208002760284174824575591586520309958730586252805692586442785255194531789303590371695324763576005585247386825266170866271336440030366335438983543407883626111697864531614249058490361728413291498474967205020440831497666980067569658421078014254539751400966491509217395532596328145284998056637959455818595207205281376767008052625265362058491450492749516372840334549661930031111192927768976249288258263689749334559502946967259830536468379252670649982329453907342434679908621706568704642694968799037268877104562662184986779412317232016456670213940557093289895945623966651442607798057180915908693497874173474962723374717770790630026215415918163083703657070301653550097091562413347515345088338574878529048884949713047232752353362776668221803432969732946998228761528754059778669189142463004482332771309402778382139101582278632946496254119673779047384515393625182127207141040848945597550948457589239722246053376074461183690021151784488360673508979730681821725309970011055778136686820429250517722645752082787519385185314872032217881385535899642024702670905757863313117695708988884370969785519886660763186897318388570152120181495776783264401559554054587695081592004443716007872574057912321993770573983634048497093222373420515084177273323370865283791167878524503245458913877969895157525565022611719378534740318736220384518758572615507252019705218382533717937142172956302323110299632422181641596121504124005967934477021717626997787363559043179854183862942223542282025624040397674679772240040276924400733094001425966558844236366801036622614906687407646726333001434708529930479732582458534669654713403129290619156477653059147845004543784720680010341538861932039719458847688075042998540162552290514640980490503172271467748244001968461762545848342791442208062223904195909042463899081808307548627446366046380462498842898936032913450640139014187051889620584895695120876202982143012206007585550268140438880791344946159174643687896611076411609984053321828004906464778949249989956145859013986391650423960271609021076502701532121893224632267359043087763351624337183746192989904999870231792248715751469431863249337254474038902500065498355965483332916097382187845449115922077196501550593935928874731515617185554223476342249053264906803947847616096302827489231782944627125517486837003237994331448591785139473851056276758419170404395852223657103413369822363861718372447356045515175636573896890824640544800807419161844394993993349732099092331054927013248508105057133736182078739660277003265742150997652399783099833242359487912812809358343701728377983152308467861041371116080726268496516951173288584598713480378936949707066428307381941690675453584682849431922349230883455010511996759379629333854277533401744485267985269056801245988155021133312965201948352857405630218496575037981933912945233675650750714285394922456959149728492386491524137600985937344635919420154719709428912951312942093790799599403152925736477600670287296839758354142922934367700325467850315752985913653319302220908891659213741734322101660644868372201711323273273692266895112980555466941762779654681232387892739009445304274582600387244389642200801451190804600964316468283634253520947112250864609074117394138512223608596997394148673053728085275738173128063771578438145218974744863981514502511785688249665051984377363711229904122885868102118450210052341931509912833038623007090836478858906778554289248162596690250108708645541797594287141629618822606250961486697507334763986984636833967283220484867086824990317471270123970253648135336925991329775252161222893637686563112369704370722351284149158380996840945974315132527356611607349510309842150817724070331470471659593896453860076272098421309006130516536110977288037367793258182597263545505599746488463043778573369549381568176329797175286626836575929523354709166296012498029599327407196745253232481280620966810566727730046363268462603488768372288326285359024381804623428833015421543433921754593783067764569069041279495704352065403935383588881409041521745629231825766226557064046274082283956158525306650041392665274884589687149022035034535797440636015991270616600803129981596465628730933433903323025944914739049542355028868952185735688281522903114076062750976792376255994817725585756958364850502464949918625827274936526600866332928320353528723105557681333162093604315181703620029652719747128885429899602848339456095277496009487834949310328424500672279443313541331209686488018896232871574652787407615044637489126538590897317475032374036183832965894698365711427736969863342297537537909410157623248429856557346245137839828871674769510417195669149410451243207099713261683920135214185245442654832457658696213652203643499276675997622638365974833307175757140447682071870037499361375917341835344737569728054557491982028668866927611407984813578417275419239770879707739285776604807275379142987719783489739429036541427762761461098626505157759974695480081795438030075293470366368490781274329456141001024984929082935438925898331011761062386327978169696964197834087827048430701007413264399449448418796464189056731102374582074699115149273152681895101521455802361271535720553919557112231884230483530367025812327841600446553262058189276370080800638093840646057202501771572317780989093438873715237279905050419673309085936769386093543088776726849241708444151246616647876967951380475319034863577271809121939779658049266124997320080940562519863802891625281013927789592071551472405307972283270358652302966592066598153155040702894507005640475518906817176922106569302807753957986569379998232825567442713026223989417616688723667943178460571660924428118556333089364409309967452494841057774182237103559610968396835246663228873089333869940549258796908882861925664877219470999223192829046313752747805939237538515901942421665936878962288092542970579029698272783907595127670813658559880283652570892084345564505047934880649955100100758661352787259810971536280513577887916866392629849032549253450993113830443536753952204238925889333791393522031872148937049539922764371949790977239018879433319825243105574755311978537547117372812249747663945599500698286145848962948401004310905187799407541179269297261322508547209332139876089284970793377721678733572210697141062809752778226752078723651065677829485142638797696592265083635422921568144772945736299026199382764220091626987569521781245859016229558235990255803525627015012816118634654098191931101630525778860763590294010702973427045350624828663587617645205880483134032509523175216111653452923434391054897946135550827394245545154403724624120200256944609275848428982348991183093941892714300510109437317839715830069294936220012326493337375267145450369777396666972136664792471898889507266518527891187710080643168030418728603073598667208784313433333564018087771990988281982073311521459462360449273867672836846636101310343713401289550301157504361319864612525005360827519028374169187458297892718519681987778456831064036556667447474017555774651421034767783208171370444083433678911837136301992927266182204658929710320007776967080389270850577747642716817301199489350741288468869196725873273410464649577735582335784466812851884922622314842663070069009222722698647252039772543907371166704378457035006871147138399966437974530164615479367285629776590395914757312529903112182372294875048477851934939531648525435206495041548125333093640600502350175223916746280912476065484970136389283269270238242512255289682402805841456045460489914923903159318376793037490981766139797134805340839082657003140249691025704306554794849245074786618117925950779956473947964706936546097931223758323190841741993283055823152925913898454706544850158059235560841009468908635307932499751323004799479766018057927062711424135925637767707958859207029603538187685636192249543407254370790274659243331383971230244661661415066443129738216468927136680937720693783902947676075919530716769275181706262796920930568228286414485595154523692996767045286259362174127959628190991669123584528789361923886717759830443522719839369543987766765415160127028580276177912780789293079356200260638455436293345043227187757891302591712554991838958666047821230670462381289344981634435751847437125470284759357762838704993575263650461708996498937462875167941008823894399697939349589284167010972257553639110430485059827530008774847381787056378264298422594305169342517955603208604004892894129656520354068779271794343338637215940333837283570183113501794229525640618425665508962015304572832002566514328734230520075399205178165058288313581634404005748642630091220914702486546692767444750452055099048213236288614973119616533601890653642780047921456214799746662462657998407879640727077446715744017040100205967493684027583747208290712359257733912096519313211247908323671463900799453921356731878776837071001007616717757168078509381940520431657564546413231943113160219552930928423880677251181287208128444001452806135443808786677807778620990185932963503001187673340644460662220008623110761560319626113971569568172195816912971302314744083313028377459757267542490625073155481359607060488954998961240062326646341903744215479081599464013903642300734253468020359618224872738659222451315014973008789666539850634940582535689823329311328178727038350097915515136698992419743870859043234033793682257988146898505868894939679943385366908276506806035390771687569588359577536057259961332898368556590499162555553926143993316931570305728050237588691547275581592809244409937593456353217065757852466325948663584747899698903800847624042499071488529359725814979056027766598351593198333984630266240399230805741215919184447852775607751452185667905632706973151603795298475042243919818718446748488872959780499217808665138885364884290896439505584987538136267864369421535216423894429915209438877086458038342260624430083618330861633144844893003965651131692808570638506284909076706416654905605426432682770496878640510696224481649522258005457071434426258214401239654637341751226146042533451856503365860537488549855984698242837992864235777122917767533983344510233459809199409281468877415189587657024250065483723928668442796081300348416104138191495681209760105645847744833083119914016758720292717959406864470448161351012763009757900609182501525405392358309431576244171037635571272050562578117621490633745836140120717953149389778948372038482564943457435554900387821576517590636962916711169740144434030414695965123732354322881955057131590866748456389508771706155069455666875096813989346128899839674731002798578584359510266071519481672040091492846364056245476765182148648696188699391281775074544296301485018446423481836666140940837741718606250023202869996939374238664556070291066306988872762621743703236155969181334863228856343627123980699819328706988356944438026403935827106984267391591817665374179856504881750143783231257727064583908635346269639124402866066649586490857162838514106796205265806494300646798916659373338163932200856190673699486656237361308714538446567353865969813660387519734192777846693223726044081362888972544828461251711480226358114534985085211526069629764716127101756494966362275694052747099139885149937412941830302436755544273865032293311921360509614890655992620830538242429864945425561531500407820487642140362719858217678405179581046746091625364122189959153892032751215376480322902890135473917316491504282291719670335890156485439496141998608493217821412050006461238111921709212686229959914171562459973151535305470274493944048819771662817183168776096231957032400010818887269199628926222372840284099639516422587572831183528719286561709394982069041161130630906459442358067168285690498707113465667059625001692368869281412833504420319179698658660801927436500791174631519159125892558389651656160976316299414109137304238869400753866168655637767068388155592959810001539506219703378393956675277127900406617889891661948661195347260974821527818711982114982241701845213501960711754783743789196402881603210747067915710595008478096639416346710883842867303470997321542861538595647933070109071852728554354972577369073889779560489860489028924676978426912885072480104674557809164360611841072574104214392967409936976227959746684565890944702763046828897963980426937893786278054468794340398207394256283199223666109721700142074371972851830637060677595107058241419614551550961606564723589909846969807927904812955895321216113739068569821980979438921229935575581606596882698726764572331307955288937374780435065994042280152859370514372771046635884733397567767756539371239766159965037599093670436034206610039348979848094645400980718805313573176194012186463195828347549292529684961298411521012525465893678008564134626493383665745921102244445375357924832322991341071096272237945040272927881328086105041272983904194204850871241641314899813613113608111872141110453767301511838130662314936446968919555900598474424450333771302851879138191669397440048814918509678018159827310521262747373111827946673368795729641716108349379001002964905012454061230316006079932413557190996931762736367387347303866881553220766966350698113367661998379163615307071110089657638667155813227661391857502776555324512309739581934596080943464546813847478394744048231265902765100258201513521001482617569460922238764988541793079094091427663183119031803674901188681261900746329323065119080591457441504289688798501250970532539634314410283102808885515235815063113804829589868276952408587719056201382336624893349994350782361610083928963835085928349832881960642536300188511486746066709233184358274869964351741991939592660703685496422414862755542374929392190659762628197294559853999345365184799587506048824406200731088036170990739155223665711816459721701077552032473529709968330642771994170334040422938065739113903245512292086942629349064274673495446448413719679188343361942741750751297778705592781507085908132351654899672072384558683534551926406916221678725356845280059971603777331700837888448492420756951669535767830113707898972335330505808486173699650531162012463310436394872367605811186069176916782512344878080193784868682985600388201339118652122831168145813859160380754055946811755551824739142438491424892708954094007456127733662527486620524984792871953249360806297823494785803523656479112509465821521986147240205627498410274111923685230896604040760674553987380527539371902632398443603391537495392336600658811480880198848161044545158055097315453626272979350419403985699414179757320463304550044570253037089430842122838213570658507800365944166177623206902619202333193644907333115021478036456156006751567114331319489962711481425777074494405075795367270230735039483794483125146261786373534116465608076751001719140284470016140613209284310280059429590711462917196689101371504340659545995851698479177406963362424131199888116002872442710649011247583197200243781207255484694052304790401656983087970156080750569959684962988101799041229225898042927652721497062880383669248176337334356973001215394895252490443758041673584389275029988220118047010463543107635172284181385359414696086716902734108202712321483157544695117847867668134806105961575267750902182482632493362907104195360686444885394076767677785287897729279246717258584628277644943879412474753603718175948613226656887641751583127797733292308997880474344249875418489986787244075190514361523156429628783665209617255370003663981650597046354119784074045028445587496711904610846700585467276045424279109156018523920393349093793382468127962654965249499447999902500405792092952485683719995924360494362770512223052098455087915168805097083574641812463045583735141162002591566997098840435370336255886315151528387383178247938913637970920974103603339176257721666673294999143548370791330276774003128854714769167900929908568407895459689271583990074823123056213829019596952082597340130822882429654551946083663793085856714217893588434618895736287131577840006666761281198212691510725667433443464218764027022922084607528534281520211067887369675711689378835687432861334350565974288609637875111354805714756539033967906553122136408588869269025506009675692316139095906719973729532681028154813643272943338819646076396548235903667149923569171467797310016932004175366823497245429463312977834441713213182953607913656684634245379954641311339058807862458562262557927970763429574859423870452313673022705895758185415414062496998739576848314068459239909148930355357936484193255636100069861487942648105826638943522976820937816460017894260321155044314326094883676259834536716831490885416811352978833702333362659768637943546549337840503031650375304935647433915298561780906457619056143238864564549053896025443147087226355124061079573418529196468230169143223849085124191996130506864346362038984892521148211407719731683474824516875052742181567702691146840378618551583256234748399345600111849306506619023105816916851087775479224759660012324075069203083382367542526230582390003208655124470472479870172556371044804876905579137577991536177543809758238757548343250053154822756030103527564667391218258103213108851587989423156100128516737149328659066984608337308578749717110560447491435167374067927712824557100189717400950473208210293724490768418351225907234604024709908417488646709779429993370659589815305682811806239505916605670281328425454318405903471651570165432372694630827728302707517185800089824379137761515856524678063477240998474374802378220350928714361366993823886131464038121521524921689856004289397879477284150240010326135522421968313256526105705162253882276965102644278585398646018081449489309511681285099891776842424199397027645207820521499213955225123448725887018163162348681896384211687881780842976482818812782525000493789596780986452348023094776788293610245068241970357963119524060074357789700160973729951547748135395393915574933064000614957540666155081039433742615214818324662747249896467150263534119997907785858562516429264974585127639376939111089239177636392714865802111235577640851548505430485761007136353246532015087440706808036306786243308459604911403747135860584314824615740206789745486693459383259911430057635694471914129182885722470632347299594852083129581095353916776277847015860830606974809426163487813461271405456060847510966935183029525011002818954940907039567136284213787345808094744635910552166680410603990386080982805757989510628346783093415073727081135076974198934453271584227230541827004056426183757949209500023057354674662655148146724659703082999005457412372511395109555901634773401842299002025206843173475959690083336754481905016618121975556208415496373351736211634779906959652352583098762601417959730453201027272113999368616497884818085333393533592148389220245515890933187633259632047123117953852360245369382549798587704633540752857229043076200830935286415316924677855293932402280834341719004851305866781527377011349385739057293278281840876354555174517140418281593967202255550246898561155565289085460391978258770129412336322944516363410307937392867585033029839452141711863683270302622085198433377591020492187098996676165501027611454304771293969652687680591786741828612619728137327314090720167383092580713555656644678481331243718601518377395098695940243703721063215888473732011812231848413358926719557642860844808318049249721574516292510503649406938545124304010770522554755115373330927048788352378375117064432898572609660864406400904525975788646390597844663922385393231771046366440272075953722265170392006515377770565252258757337294899793663601479649840026990713344065829563714075438241532343434056368779628237434315767876722023160388528528960786892847654728182826528171748743752228323764814389365681964572333857353802587707989002549740338521157726849493822580331140939759542998791543107427243279569779560087795840300024507746981534968941494732256508967148646185004547998049693731451873252996054081175694582516266613897888612226264889833609096870614651005862076119175753762755981211832451031540872433433636570650254414677616356094193289974799756008860775163320486557283981875463037296212371876696029800369139334601820785510293856257532935508465564111608372166043515812925791899384466378193070536543961931906913013146946828748185464984273608256155440906340210807369250909303262897662002027964294513930645553022235048745969527207318078995976241343168569273264403020110795613464904598519157286531368356844357338365347124863716340703636724561172555925835512629794404421994015720335687156447559756453238332988369544913306220237618506424314436730110427907284001172148884954432517658703620538239471162421389105400984967190974122063621072865943924587594567139709549854437372309477664235119349733656006587209661570501920354654701975840693493719373009358242657052610064949646075472079563858494038043356213380425986608619189358885235600361720350804589831565213640471320936125133570966864370834866550610473626362279952647120127676944019866620491473953655640849556525092322840870497691049663688469101823625546872047711786555346417898787052968075680720277218441511631111823077810540613188062855820006674848553953993525211561957637940275686424644275067667786530812184259720522423335054009997963781020736425734204505595998932805424890454275841002461203815154305010513131110958790143109752409864853759106466214219205425132398185911877257811009217127214424360679079976050971071648871169355510693631472094101389186543090977616598265417323327062009094246801624741338699865515047807254980144782403427383248981078026643495212863127882940278947110407054966446439301372044514861413492331816681260867299843301198093332622456643300971140239510883611882983442078950710171609979284832972328830038687710289198262645980719356070042978971176834363294677536317261754833367287063931622419350965406448820665921565655747141780702450316678183070673963047284806129830582396001074434893968468278023420952147987093787378529475874351127475641992210648186420214011656518720135152809598560804690899192106512114814193746955715606649197067476894771528795908852654257932763270759140166930828576759683628132771752642911987939725140513004158087943611975100988162205379995325825849596073153791396868852998836901392007750441869076363000466186644070080036576573569415665006728574379038652388350201317229470202700471992829127404638098969019408476524614586148661376266738141249555543954004516440060143387763240355984661475811521246876699626822692775709993016239605248901569908286411473862912910140336159616010725039575898189523595954269469757852251359268914655800742718123816111544981677235877344962403295356522107791576025806788699864893432454066609846270077978806368986454123577012593539885312963738756041949853367872104376417745394096250318057344524529083093679864146474061226247153556797790825295181234912746298596250093502489517177940985788379794137011422384550804824978749592339782030104715450730968668805316169243961316601445016971946378917017876618734911769651862706187076301596838970144936071552936815718029677403042036357996209881744757540988548112451704788380103794027035201860664299201647670679699293434916716729013045320979633914256816891066397262652352322773755274918445620301497982628401537082923709836039878057205428582780478467827419041576446843594156286760158275939778089792340350191892057807003254192732978977283462396567561570840501738382788659579728446337217144462854062533889431724531037582764138763281221706234641655917782492108775091064865261632593617056390586739891983923947827379940084112575463605928576719931920498577156748373149530654396486969216954786106268269472992016377229491564619006466130880273618111677542210062583375383841148596447518263063348349898536322511232109827790756097895196082744379552124161588300981041850945218689253293370128603792799278479587367239566562906862344118583561536071158720658698399810266691020314111333637842307555540049489201385573020020154990716135571060729364831331396704043597412791978642339059167453555218354800427890426446166474554049017943863406540663087090774623164210037884463963370067575530685790620653873595637676917512541489376551458327562560384177844983310601439983852596908027192426538649592494003171377053718320068167673446752119274319244646755267579352796568963592116543995562636957982132412852588388176044548275683558785449541253405899190829612074164911792332538837119622744768907712669449752313668633361598915587157038473756756517836722451035178580972797697907091481369112100628924485557191639872184359646086196277410962578278982872399053607986097716080211505183131551796297801559252411938725808837835703433786568911803881652810718139953656090281865929211835027636244185042517677251759916844884842760679095692326273126277157086139290381222261765692233094192534027385508539799851489958881737981059515273147046971995888134395537974426426081552247846425631564964356072474143776808442999487450436790911200437050279541718540652059140720892410644220421716694394054101627964773369825640949625774527370061904482226707340612189317797676594532984320940633731735117092052741356167931244059556379017518237163441207604399539720629438193146119427319194891681880387782894384488560593245752755003150547487396694909463471811803231549382917325986686210302430725746451640869731148949870506675865258284114128987587513379740574916185562875127844950801429671948902526122291991776094406934009534895876542008208815948845936292920830293691952656131287384018459403505450590902475516374917806431564296154314865705309706758375644363703209732553435785523044394363408863481645316871548364825975054446592239419326966285443193858711302721653064111658575533859420184852919391146332832501951438146738308915555668870773386958250249748766475054649058869414519658492309330216525392314561328586156468995445842861483497288198945801293099276245464610797616609582153597240693152434709969389078003952267800559127063608827238026581073320685331883678547020431606261072210434766791511312506403418013427677688622397677530626381660947463265529166807417355830671480957041628934801512520182369023526503287617046485440959410663194483912582759220400053010365658432002791018851053624284309877794640115719937954800713147714542049758251607966698557877837013723953068360211870293642419226196937283423621603009698788927005977959464395574200185796019583416668498417698064744478841144889815921447794337467633772927331618493107333162576179343382985990463221349603273717591881883218205790644116721382684713022134099958685566615580991065411682359546836844248853558426226128882043902376200628661296116800347973294858907732665645636997728365859490828263918660618246132879809559185693382750548096034488806260736275157775316682044870352802960921535571727149214679309703526854351901202673547356913319995193557901898174544943166010940814009200613245598379167022247935302785760608428520084250249933176433948138754422666135643908988179147796430239556000746289148098979092759716046119215355024066999901741022130727237487913564677384361490686042096367042063209631834561960625603620135715117105428362306249800527916581113333076972075770566440991535974807593396596741785774992119912722429961947519430617153233290672664237124653411958161845199908500031618417290581371597268005655857225831225756783411241909049394983100782398868481525369812404288398110072387125661423926030854812300115683560812932771565238539648378266501419199562481806681323927685335551673010981552687494775770652118765147024256410225629677382465878560665467115353461150924289633825682467155950206238878181577861049054879757057492022418679560346140434398342188984038483810401228529443795681888956211000175952627643185614204721506074447633575866967171258628072668761206155724202004519071701051057529572107015768515040049325503696074714012486556222556535794052484062138602827279122343159151013778885906922409700820408665996642869813071264080761309811532953803825800766793988050201872079762420503628239457902642353505245410230958299935266631752790704841486539612855962705868541033450831616297803658395990789252372029877216631300047959165977989863434307272710069365998694215068244330889060986673722020833625524837280720514526958640973618589959659673252592296788156009852257543200607382606845483064528457100617451311389423033783340957537444458385314958434774932529823272967163763969760541487654058736278047983624720905114794278151718337463512484468850980737156934893828311063410358471637587643464583235391555615905130194934054730686089932273641425322443805941856836542971770358855138456759731708705307933853145626439394880686092016956417105721908520510189720478987130808184825939007190573265648770859414351203252620319463323086552224862613897048564778915668599465090302212993422925470270050525817608250917969520166647166539023659421816996914147710811402856143295163164022389235294771552357205304251610488514201204161353241915593406225565932136405659810589021454730290798010306269160805102783103430529493342033886154307650113878761301284910490428058813381896310475528316569959194504826355541060008377168457642376040433794825250851682966805908259485281181144354990313319682583870519482023207146236365615632806416369410290265513408463672365943415098305021148376928111923514216796744944099288809287251383908521900553420938540355230204681948564351503001502706615815507521121723704722984694227099828928998590547669898057951590419917506772095052606670284875894588568216747556513477840437276140947066321386540056376503476758596943729943303920245862605848334036317213905923314519090374230988389566123135000293889239070188472735871963329662237681933299433902199315780659242705489469684856192358783210973446603781511513661498278364959136320522913570767536436976481305076431943700663185417691462520106080068008021161999508307482012426299220021121888148105426201760685534364366351629001044089359317583251943653252212926047211557191277685197643475489902563240213610749700778816911588494068066060122553319350948065681793155582624273463223134595617622629700237441853759805278629213837535283632927159930796612256366933887054735258531621326762647878343223592959962051737857795667377686708490888220473261246083796757470026259968893915810654725316446743673542554851007107198258856267065676954520010048568111233369358554609731647403539292206662753414192763823831662118334646324366195936350394291663250518494132390100819851357292630627783046575658575708072188715955273637653603698418414020839963228133140135594303484258417533462999032545399098247252241760424760946143791750250343765699545318067678377991773708055323031822312211696995965540548127670043381398316688477114490733717261055925352750540336901481583073640692985746603461466570360499808624334810686186940387530332468384022709717031358498121847530821210391659686357690679542366357684253488941540500518645528868185487066447799231035209938442259170813914323836866903653731665626672236472098482488713337010621623365715493627127522957687697441398696911788189406509451826461482718379492898654448929077857547817543685528353507755348831197985952518053879719156348152397731339630571678396905558235394248808588281156635376658021883736507169876841461422913689288197098018968485215774498822385306919581851213492100184379796721937305404505312428751476871452358064098541163446634906521888613927180352207164825140247053557792783821555146820814404488722582863096547131035323304362310956667709214852200529628779751671143687798886595559752135514775534641182355327371456470950874496580879232996008815000522337548818121727680643056783243442234743493579922860842839321138531102543906408760867928748109583730227716188625843608285962935820614358957624475306607313170741343885585471024122215648524434455125242063522043393285009062700282316061652623130910774663581960037851632943567140013705219040803005505186118672414042678321529533992995573188381077369392671436433112020876857515207077513995035628180473977944990889427528114335963471476488131214168521457997523637452937240293529811514818618545775666329036982772965279723940939761766736880448779864683325910105769099740314725641061216023222380234815696844872682995839979116367398800003700963949528794527222546174908878870378333922768193662850810345633859241582279833965265863099302764636527969887833724261652245900863526976533605398885217393958324291861133314030609759269896247872920471833672782544710368214944949879741151391231323670109254636241817200886022452538585653067771946729511247161827820450037657219735843241549300901506893905696475624371483217121486787435508142829032504745787008863827194341716692949844675816398757803452711430144422640100664747564258373043660207741106684319557373738837241026634276226689471728796603811943626354168098275909036258685929613116754403870371387055769189801907450912585944808899211203162086230428735976259629924347651240045832487252176868819338703578516393692855836255143134109967032229622319810160519543569900254837365291231710890861392161634653872599679669922741135360216794288030514281475620562416807131457929890194413025199003797616459161750475913854108291464640096237167877411855557756797994620898708621630743476245422092516701686708801673854899530239626304595953265902923586076291785860513078806167712589202995932442882242315573189718735679604784783259838188622093487864747973444681074187447832952537496079098082980839685741983012512832346174143243532093807464252480906941447390806988995011896775769636628765161319505960675261416753025337512080290611748178066492816750011627188313456491166784502140768650641389469332574421664839787195635081357740257476816193419877017212359668946314841632707081179488314846573369824331383317970122850920090867891917168875512708323746687947278506874647968443159956274947835392205924069953976975174860603544963267038107230433118870494255591526679880822576178492287336923483518707287343696400524035629507158504605361239245217048279860380600801474828485511084278893507288683711202414772017501604683618643127107297988987680183902444190144685107638472921876234528590098352966626294913860526146448342450631932900004504157686058504328477756579421328622102387783197761160278867757181291909557568606274146654835289636094703905092518166826221695957656414976440694997423389147908792986019886741163062243500374650412143153587917258991318179276384032279772953721623777718262418254116021047633391521864252355807221755265411404957677310105812865025747184270218483808321394704238197706008234697095521846499811167541643007376185718463044449514156274824661572918251601258272390186456042487729033063503437096344964177649845748108435267340567462411113914810513773916553200504519249402107318535196679006187627081550313942526972881867137155108934753343379609033163973236260543812098497613005233164228388697011175363332354418517667569792808291959975332109050143228846064043999813445186217076212126827302325324404193624803212029615935946177911457580287041521363673140654155953707121587707017328640398070054407482415479686603581623925362880098502691318467746804157179166191220069023857540130552003661995792843222322829970137492634403876246315524372220821664164717568700593785322789592720642617675182399651426408899668269007434273864991594960074877222167176946693912963856538544685753523398511899618980916015329457295534885841420572977412694045417008882080125293445652777759824882295759330255959577401812202035830568329139978813058228866781173960950411257673990781962231239318043303151274226203596138595674074785775057631878101767421915381380574622547451915082320347767618730139896385867068251278758706806714796410288965665131913105945640272874712533269517337841711205182510389506415646791809360634161761853357674029343674579982012261448321607371044247447804989705921967323749498400130474311351919500577724560810403329693342386755703029417194948359117873823338773106582259906095561840840096591198326229278878389430798374967355130370451339978218927561966624417591644261922879922133233100591347873984524225520801969110596985587945205800550537413555306390846854112811409417711149752835285168652702349148810105449562688771391054636058283581352403240880998833541959214014292584484703846641560761048075837373032624775541260861461561632080639206490510838384021680892484859957124983733518181659124103150708181043834320958142451328007375892738805308453938705531194607305047338048619025210055392704026943502674718428607339882207717190848579658976184856427702605565681978583446226591943536379987587930818596220013875130519215407113400181706072743670389438760106169135472812395766678225790671036280065895094009739811032981398446527549144181052006788812852381549678227072717660450600527755143942173958629904746626824827234927515883156723525427929824913173165461769011704006442621977882194742392692607321327184982523752661601618407471318157924331058540792173514639670350923423029224532194033755111096816549693013959813648307434435134525554855724754405660891385043863406396157139631246033324638666893056352554026386069314782067190345439064977654920817859328658826231624626513394273061975970542924173154898076808988602590561126829708608109100418546733948392324332291136442579132911702765076741892526263404592290389260573603347254426052813073085820461985763501785202922871041329085425473150462191873953848771708052062471517686746722316644209099581942854947108698195875953573533198116584818136166447977151631129346199540874531368842357986569614677954239863887485213538006140711802945676485638049359508552476529624988944956231093580116610154045160475401197302385488663924498134542098456170119466319028815903082857558139342678704182087836598307132293136554371041061199451156212855357533025779627784038484820862522563368671543502460006489723506165889519297753158431562320381353073040791328912720522150540371414117732576600031909557050060083562765586514928878861549928173204410090826721539341844503504396225540038772767951689080605377744563678189359821613080303965240063382068108382217489663918327220457632110479840427387453018925450105427350340021712469812992766324581537478639821779663205504204486576859441118103871157066865468798960114996556002370298082144126330647976959714492595684585958262561987564449851750231512849224240682831822988820904967115455782289885300746198233379965669781981732620144104336893175833762532666836306511261015694461321747531712942840150108476511115573919665778224797730652454138399946389232228314052999502670615116413510542443087784977149226043704685873314320852229091237287284635148473239667601180586933084354331082397659300860749127987478279014978457865903328481760216965365977446966851599737746242842511503582231393309014812592884614626781178709425603378038201514246632699561107156398892482611492363455870191993352915091191061980720768900699020162292458887406898093185761573241738929114661288557625096244976151614582752493241948248260709982500815437793779982751502791863003286366362420043289239128466250332288000066929763659356466548196973968074232063620619842622917054921344703358861727716631227713253389470245880443846451859150355647138560293208922576671174757341147686247655129727702033654653669083982074019804187914228611748257074016476301987307381236874686473777281314438794250664733316512915467520592255558219541718382400192021802913404400499620158923664410807894297476941586063545328012073443095445241627664269167779444004556177452159473755062223943200502823117830702408334726795721430072672195974042715950986848790559073775846097280649997049263318833536834917286643507789033320430876379767859283182084536104786594015812528366812566479323413332895909990784252668443692120592671077726792746455004527353680921138515531415256311771258926204374415028647941148754033739253476392409031144507935680428539974509661808101626039776053289900094081405616990120106844152622958780370033507841165300522004431162205643725749153956854653790863363593092044233029587541081073466118582971462813876643142391162539332448578893209924184074506495767486460004047826499416933565785374350895983648570996059475794958751937068639126985650949698378528255105300851717491518499177012608752961640456443868030235078526505784457547260717749690109127316799128382950774896278951945071015640327409978745738294174376613107911550809105205027693028489159952445220622748411902329711022800498787966245045260727590214014721110711013430432011171363579901738015271932210418679076073343842856366552398015422258420466263781999280224348591131002941832087820175308267169081644853469548908660193608179659818331009428777612491950987316287295038480734955642075093860288858356765496241062312814328844277461309907195188718720501318193956171954203986295156085383585867482912101111310173756959662966174379603974338992792671274441475166954412181006333055919432130657060406926751317968058082911201194391038639554935740506245689476241592782390985082369473725660609700025098844650109101203833666979229123469817457490615208139400517263722308103338040712006121372620969465589877712236273864618396557201271231524560943128181968002493424129297321069296227178663941813178313106545445744783789689561115571750832953755260094752010758787675207670798484155527467668276921565833391370112438825056949894251646832733347068691721213296550257478425020954482575020607469797312255890504385477431737047448636031799581197422113611404137937929687976603391472617091453351976179357189646722996920305275138826843549083326874783414994891446637731501876783117842366897526403350532573911151824761534968247958371808300855992451430431920591878040776815232104773348206037364489911863710492683655190310796818034588514527936167380538256700913542055807265218548190544984973844691737487809760402425482584046088884068106113858660725529845785372451442059740566711156247535747619377731321318447736968007524457689351364827224180571995549295277377047828005358367043552258306792447663402504765917693166305772340760152733626169105038109004319623959156841368647882612596538736393703846463209625397864397172387669162151778307777525550567199243249957516801571478997428601906963284995715703005048746200857920986973786233286382888970285119210691927804138771533608287204335720826515225274137566536966827300963578529172457691443436864393618329857787095577616667938698831078364624510852317660021400213566476276456836585039659378414024876034129408531331158139527851504884218377398920668593099231853833482307715547525974779847812930574508934751336274062797450828152090989811179487760074239057603232363308623862003931747927600789150525694639644547677217683101124040791450221410040080245018226125106952991263730509083488457923350525940896540580807456678999659377291401927806823810099022352974135335561252501654108435005169441985487569998153452845751157705032808526184063566373731144467205852223654462926249517515752015355258281797694537140935090959024316618223038809332554280698510467275253316060714154064089349192816265290129338300942740507621089936324973589328637992160819821823960289623120710891934763308210965596399919334670692739574128628940666806742798260274667354514496457086959203170844179778580119503685837402698058603637107012834791245674044105166834509027571622390179096478667986911336513201724109944715173297866947249944969356098229304921414720582623458269166622702919422381920403613229401634135849779528603978555395189491889437530433079593132858021193507699660916505276803260828843765958323664869550484549548901641147536344942319151007670409714589313189659016633544475678986047762890950061264766260072848812306843082785615576332627208322223913865451945832794485952923458530481906941533961947741992690055121416309602611759735738018198923798144184952983487518275688487454489682729178091155083973136541505811402152873344831177952623134097090067597766601895031216218062828842074807887425909515376854644882331202802660564320363033889523894992950240333857284046919513996649567683246332851769303083616337207245173356906389179423166542284453778142518338447991911988529737095428714525001469508656471192918324669579958038578148026863246249274035710130456439342836425568371999183945212014535970433960869981657605981070808656966241304526807553300738862782347010519344820799964213451053482131392254863975501269233105153802995870813426813550469202802507125327671297582059556591418028849913381210691937961848925354873064235726054741491655187871728254052847746931848014235341499238489014588894861952221335848328378061647126726001089154355408981532737433759273962892881894847671424692340672172036039676209711434691043458809000469317558515823005809792838479912828983666224184050414225711090029387414625166390133448673086297474108551291786589713022406348044695819974950657067162108450946320792650546491455395040483607100290043723880291576435254806799610651944136754803658802763493162169645842580620659542320399050927954258472989230433334530081782656556817772311096700834131651667662341791120723307749521104059529488738767687359318503092583309181606038861810024335051143867503334625770342933101459234230263794157625564566872545961395038478338168561285223730412548970106516124618956760406457685833745004468254953685275200592902219257643756314391669759789966886140504302959240447104099503897420200253281780294996298765252691021247671264921393895665605781057388311154458312786771868655041256612724115509216036915458136364293018490469505103431625494106778138395196618302096320458674009832973146456866644600778616244767334786976736844484999602142820133798974625773437534415258072991509593623637686620869789618141868258875526251286824227471593370938298756696156149211412851264107590739324275433692325130784481720604982419021842554074655730284819837159590397301342785067670360632163335130118344658485158174061958795267466458808422121295002856111099979911728121743615570940027344316721651340682440172223062367755450020402679661917200437049200494168751548806064557565798505875446066736270856454082305145450857832055928572100337361140057908472075603094816904620270980877097128579433918092234874947111692513667380070136378140367132098382881575494239842441090952080382487102209773334681661746095225290773521397517018603086456800157518957179602330049493946101964424457943898780462826413785271311859856945063153950745094584881228776072809670531846718993911185457821973412215366176277931083801270880865239227571496344299187109392331682290059446084319409117185011915728425493028350642141092287575929993012755600906613248262070792076032960040057630571204885418853979032202220975660192680971719171870087987973641359402948776218493701626931780351956159393921148785430865871109817333759695350768681805086273238514327481468256271233863721714811937621738979811301005837721815032704204283308761145535883299268714820960568063647672579049471906163859829247228825238929676712799372527980234194274231618894332294828163774675805239182413463244154349944572490103784674695024976478087426561301154416856294330099723796193421434301085039144600850817225954658836945349346852886762498415319783495378608855741777335104206177226553825109203608870622871348821505169350044539081516421895210000261217829205677840834519284154472402476194176817198999905347671884076759042989398756588803777787194974653945161638239395123673769405229900440683270218548621217466673574059583769782030057468914551315294323455120090559055610211228987136003269760812084319600305553879844046317368085428695458754589462921106585042063476304891930233532095045652355430172807628080088552512146365648581335375685484234430046251722528976271917722717026593412694114938794069780165401551580260390644282363658133852388942123585074776947515368267720510253128286714177431666612158883038479669019188750493146977067620380845262382030664632169345415584064791033700959925898490878771093033806831750589054184106933549087068719220819686615266996361025367797291314494317091021238171319041799110411167738705842065021971831751496131253482322655539910076075946835103141940767343653812200387919998298835880454034780392682772310634749889209355259846931618914208915440630595134041127596036171339501566732396584874228982492811430307822626932384268329181269844663506981543092962710511773131744943102829271103052422148490860637800509899365587794550042041549039174549466395134283366620572364135478151598498961776895009707499212795393787812354775626778253520057270611085042934853345291767776390416647927679633950462560241583800953608332775234961097464974215381852800528648077401627808754765499734622658099855092410835023660017045267637882424701606629981988878452076425589937295546590633685418190391420722651910715469782690919118816625776422354851494209827796255428489375175965126208374981391694934580117515654458778250253770297471265800336185659164516248007660719852349934702308240000653708759333661471194873459484142657823054812742775477014359201638134773295162609965007757777216226521804540866484425874685580644013092318398607526219278438934518702458043308157322563586202536124944504823146354434774112935592045363286796901790490828855560703223984271169043553292405978793323051620298773210960881377598167200293920249198726954518517858601509373001015601597075927967209748559861682616025709841232368536402878014176514659506851792349917735607678729425267545176385522364489526676374611502349765875685462177543142170204548514897308125207235799128472650311098132284057581474095408965423846928164057085852777653474586120490738947599568944781146756860393629766266564010634278149866746189637060862989315692956454775802628627130283722151536673343920554723690693117447712421743393231993453315064296057601591914991809133839950355928997891243558371357498345179272615112790721326797015308125017418068814434032579375865137085610814801382440580704148146183718690497298543966947817398200610747780489254557161430886761418453492116864280378707160350106442881861463831750854317693679756301182844657506719310198714471159364126815982635216320901274330446214366705827131403694728681373094118286209703648252081631348565872103550970001689679267790966736171365670631158224630192769314729317794632701520144728071492010488526718350946851366455309487086566299865961955501378547461036406828567173288501248147780842331480519390225781933849434851238428488805647572510834639608956769241731501482070119292287120262552963435928006855737481543198991199454670006997636376130079436764331498861131410932779129741144400897979312326333172158761404754715446475779236603166321080236412398857732710336972637025548463092894413461259312742190087955869863440162022190909196530611229867860683319397588634216620514740793847567639467585141446759608601190678337683532158305675063995812324465798669470339480929458809445299004254345903452067792318737298377495566173945894062844731551041299095216846387400358794832535260450958402222469733299201325996276518262203941155031174919892224101081995681759354436283273285818983237917812546819230523929001548903792685772687008554339047469029658982190142755382606731480721397603997891564165354365851586037269554225754621630225967111552361832605791740709565978463455951655619294196989613463707933335026896911052031449321948631840573584716972485174622376263839433225280125546446909205091714973364565392581848099071742090577789888686859861550254183861671694182138919043649684588707054933172932089212652136561414912812063827872643281650155756435927536509816519292239724688498156292100438000417886135140894080592837809562271574663479805242304227423219598725477452117487294623970503452734604934506098185382955228455998986467944157193514652392548243379061182747550000255706193981402371462007972551960621260352829420854763477254156190397225301637089135712326268981998303777112342534017963279741219029647338977472466703791252405811452368050526815076252013476854523500627961364031587908639350110872778751022543343216241196326736808441901375058591215931692318128110677900039838941578809951144198275138898275526027563045991630309597382164600618508353552696869109635257130027212639225085367240738084056108941134037128233571584894334235412165799569624088883182223051771598357875232467557020624232736565743047292602594724249390177081684185186413043068593864180060983141793342461164101209435852931848917237377878079240672325279173608535531908516426760963500284568467189594741814782706887735046764116717632180367171866036370446738822206184842412234927317426458793555097831748145461860709889634081160470125892610052484645114835694036745249559442381695214011456637816939657225698685301453312772108274253886453303426819152546866018044746321875725312625152227225088016104673708159930174865101685383498234244231578448964750945341360355444262123394354801015349895863398249730029794585159596611586184155940665799236302105490075048760879870222522192310256441738353898366169887881048799400527922304203803275103262053218583317000692633152237761532186996604685339581373728197318043438331200593251957634874972927237989026649964498487656082894701349409029220396636501071660483632658475886073972760199186105819591941319647073644356751899612226157538097851627728767467654418372565121511404851569545164884645579892991833825219364983564824306934926757470210485243888220036257252842302209028683828304858175305797169258555423589685448538907570101810017974414832533529479943803250142561880404833754886691063874304321740641921481992525608748969159293439525017926138775785140501309878628413605942165658793731197105133006512446108404366886849880529214754994535196779580007668823959027613721723971359796935531237146262455768757708173209696974722478795469493482514028494212094820698292696164523931885555132271829607942138928353652440224132255038233998014342415500247269960115660803918559398160853702898687787302894039655623899413213147267916263105282839297167893983186369483241011544397570836766906233860093703302521632406789510470920157702387569413086243856240444954785523805536552414734630361614828340384114808567229387244613096947843958386314010368483366078367613936320277601474850687550576283977633375462744062135377981472081336842112187021695671614421964408752914319146610741445785391332123650708546074491812928170605241659785227590611643737945129621686967200653172271335937987687299004339843410008246946114165833230228379174317901742110058986054919742733484646946893685798861722180177278173418612764275866249558861804813876145639251014081158677848259019047301207828541055578858155502831958873781616328354922073617721141155848845528528885998669769381781506229315831461706962897416609779354671937285204576304868467131597911771980874480051606125583163055393836511532431813855914123053076333073262354394871045543977782065821836688484788648012037011146356093531109640524899497691009664190645438641991350473623114776384118521248684022597911135267459441494497269186020651371204423908097359806059133963362707226030649348280067558503372850385703104340208903519383305402268308109104927642046500999811352483357081863756723510239358195484256384460792856365196492307723410032470060915105423575692045391229250394207335000978772632878725379800756106230867494788404736678465724550942594238800302222308155600858141116001139757561933061651099705955789750357931907635761724559508888439722558910617091115034520858904261138814964069481749511492255372097747103802336805670877680530553243847983237396642331207902270115746764833669573787165310447835433746439898700858362699910865823186778473393797356529964308225583731123258548584936951589656535129222124661729343459476815497939104143098731788288630563760978131226480324797565953360939067473693220332533922040810755772955167566688713187524698501085083327030022760524608845636253722910938319815628597920003182368594838939427026137993322783293423598850851534148796228203091111203830887067974749663864801721902426335615560580483925941893871837556614533378565795934045830339555929286067562676712957478756730948659952548356437134219203740856750287481936397867987860038730211589709653755578941840883252092634128032143150897573514980058810880678344520279965539026262891714630685134093491774255722748361879558598032629652309781430421928336570306706786403282699281134925577193297712355046744617680898438178499006236828312707820535575568378755222061848237770878144692071573782508703630531205155518645507229980132622800613908660978959225909357388669162854549856428212822797867845673970102576150256050522044042634091383305209811000826197314202822325615675282673739185541869929510660399912585564246816077399056511010889210615309199247319251098718672582791418511631103155997876536972563116562965775620394807904092355651540116621367444234711663251815338668301736361056340957232550109305272078293961012419835116337325664482271507365454031715758052693667671462640876248029166106473244715538595735275050150277793738337033398836971361530174404340021875070188910022907404186125910038519201586972861756032613040617380096397196958663364975503561189317926276727478439896962570438379483124555587038719712529189662799384342498290294241082951560278315633638298188612024133289451204612739122625291875514952618438462062850703049958490053737500142905727794187726206446660939235112115405121649386762684689633312206348187715274166645822267362120231024291574413106865786052459196137231917286075268223410033599959098583324947815915670756842396655165243979591400114278358532469579801866676873881794985567636140747963900417867512316751452778650204467401081741490492406828326302234351298676221146028546831289540826065568282255174861875675248355436519857886720862505270775954471180028842266848781938113895210994381169739921943887191928875637593121506790616652274867558156478216320200202732501025949148117837887302981530038785926720717543345710320557986525454132457990840856842462838377888130938633966328084785535497524191158029155677621904789076510426210070089015406290260696399952639705560124200577734386880880192783893477800484946862257386203361140860557273426868207521845267033032268488941816199038215075714366872835086070573030648391657899280887545693117380004166374326755256932282773262534488101937557207345472716950510776130728707696736046361512648323177702652852994232686832294164371249847694546516923411617920059535752155330193683775891989069795940685451991877498626737214657822166852247769874656083517951763385698826681737820487839025639687822817638104073388236680631282621822917043095264302813292122895113283312172582689556634227620350547885950812370295037039481773410873147627002841109925242004630253614975793641466569652406489542617567373570904237744898202956752575238262801138600182598791543364167718937746116493631312527743566910252067228192866061730429399428524787629333214163768036091947905243881901287768439831615594403012900512378526039054216745821072841859557127354725386593030245039829294941504393957486450887511238078989323681591371592293295801834285947195150907422898230718650012456152610933709143777061980740750845370664940809726332882720524502815177089342294415682190784295859097807078495053901434957200989896864960707862138279336870334971188704244587528370027983904026461850178473661953278481455771267007962431786735317460257172790468983650740675755033112457159031289103996806878288695237127987939964054064954003432794664687679829946745483112059484871236079907070176316002768436338136013363105130384246710535119627314469775827002215950605793391714042741592321752104804147723672968718059270234696807355198988400972384105458287885829958036210215450640446093744216225923211859591289815597761410221717710647272483230825680976218581667912895518977580611160088174196865981653672020776064621877249488568482028202509586802027075532602461386024736672034407993507778219330493663457406012458891626249784239919730258335314737104850680410660603505035957268940968086785667954837513989972510961805217282823769362817162602684079287984906093990515399649293880317946985719541447009374658903281852379875578025606218854528994915693158322292346360554166113148595694649615131726215302580269784362082122136624282725951826983527545011277339565925870545136308487936736293445792944823681296245569411364734061906706937284171971217465756360664146731080696554384412841069403497532932435399795787956588677839536725081479611765139565196812417583069558314580292164977877839536792173046967831522394220926269049872286435840045157342268840848706872251203914722914073244478270115515184549152380151863084697031054193628918252830554627766598050856879044081303476781562703631510916765060444034268256913972384222050053116542206531642263851911845949956040567541498876213236983333547162416240814245897490080756072980266323634572441960192156025463928860310659847250102440942685049546581955812474808953244103527166451366391012177383264107406374712602772918288862227770002344071639131961422850984433674723024686211736724712687095683769872619296565373312916669790135441998653861979472407929774107577103454026422865981402724594097786204333905848368981437652079021276854736937150509797866312183980549200095246758684230236410080706472136211404240742441776367538717496424979659807728185900153724952296324571851188924522499049780395650049008256739179124715491916530607863785506912015010381384839295114136997278017793544695143724988082214593256837459238030125124249840549844806810863637232469211333494880685676071599808557040242935770968137876907433463665790938055318891457101612748807180474814244103727142616553671065398399059371864000456900784813423874026566678426365987463229795938935220385665893678468176821341142422124023606930177421012118567735464950088046115343448471310111750086785625968186168200539772026889478655242248833804996029010848103799284927686296709263628342635405321804439446957859409547705120916316774383638140726509732627168941140072595433234119760589139893555749268211990714341326407475100944593591928028328581125124277985120179294122072119638538585398153039677967170580310970664313738808348766173547733397136972901048102325970043387142449173493779305229927441020465337355407092261702473673606945667487106840005910298104315992605307221230502439085818162685087858259848095522805544511752675961906237949037939126721838867809161208389672080938927885830194153722701785180871486157873878309381091774554919801768805731983088171823803828853058824166935430019384423976545506393667125739475912462383492579301858948417413904409694137338350163345510215990246926878917247945680070100101011352961785738407352325651712993510196147291940131602424504664734510887138044460591592190297242492512069948993763266721083914265147941544664381730154130076799739443300070339791024523268143124783508325432741974977967987053955700863257150239986705622263687275393983730214323767391301026497598385170722211112817396817437858320766036839081355797346985786149427806603860798850478093528773857445470903760769368451878406607749110035765929609470719473971728249993370822208660067679564561485878237959921778730706779123386561130898179207067703138019588319370260440285071234557610798086029904990366196467447169650392420258747775982026594519998266049150069304507922023646438114395998069371946333275427119885653356760829760988317136566887035558550926524588846716093479375142730475743082820497074534751794032686745521470949958907725463934243131678868553574290036321817230727822037086377142579129623424641402424523942741674262063047803440212140380108872691253053950162100614594017494558513230900039640898411762463375717191614181493129659383795793190621896758383580165625286834768499864758117457092722511788017347794704489140039299122976566106149900889902861217261112296640134761316550041252171251447020725376741846703781770333865206413845104522389752966562621333698218879653834289645606713954277300500208373019036353912045685083907367775855639014930879577099686297894474523513524982771657694876153644397350870708504684055305207722079014461336518219364738864466068011299835938807974415059167215420594720506898439509692058739664022251685472907161022230436999344878019980538743181018488995116423719348716345234317339509639770293302162009163393383220804158517573890952961783448318342120128735811572982209384450899461442349365915655557089804719098320403181124068653056139673297374328478942819062365290371413633356976054266219071916211491691022274598959044694596083969951395634362224640125332073589734475510056275807702930885756213271559639127279395414292381600175258152183432882634611974772426366631377551828474887215914704618595378313429639465649715464351184615681108353180475705973432066609937554459986943950967915442637167338580908519996905421103065417399740839479418532488037189136742454381687657213648897673684739682076011742407447763120085464076440741557395248851799733940573567980547647601225399063021494484794114687977169727550947973706153218462768605349482685760577863650554091204507989699027560591401903460924334403912338413792087759370566667959926526566900746128791162127173062395594124413898297596107085796007773746350018550770612431545360758531493186439149054638748249757985066306741760312200460073664221714385819479406756110790592213974219008018132921801115675892280728733907464311581091860043434625243380338978997397785323214853206658421086218870297711510983335611221817386577304585579422555148703688143644252234423549934205906744843382995239649502149681820590145159339353554122758096596818553941289964638510377677266211452499256437280472732887637781905433412591988540433659166642497126612349762315385717925425359505164856889349609672469257507433506519495901236043743655091707878510065952648255070945341125081340605892002189037547676113779320519879358785892260369769194413580623961345561769064107812753464580708190369468358114386464052958209928717050802435792323893489733896143501523320823611421285810201316474170350310585023277064735535846239567532578057979039236731238125498937374240182701101034249507162346844194257668432691519135169809669819656006963254890797903846681821032799319980491920812416114387117719501703846737165923665311303644683262407338106933641288946011046433544855255184083097049271742698955321249529600573930527924038476998399845833176463370375019759534877305035263719963941503775874841982000404971745941965043641336027057054625220747061519410925553136109160370379479190106602458675303400297584200584918638434710144491300494465069011601503612531323815796634302337264505956466354983190334467195115688814057663826834067822274661060829479851383218975110823935836673000706533222516771100920685642960315941900725018494702604905584003149004940127904698286912263758057119832661374544731916187851276946596187310138329468783393335923300383924834599546229327897288326144214282467101608851828591360579643536253285879031428218021175390378179955435859122719992081699819694840747374617067685432506919917463695281785406433402080330449738871411472759745448338909715438235658623999945551231276490936534444011536523060364180368546552624588491014606626432580043947751718650185160618129055627054242824964354358145788384569284301797769884707294279127931805832284471159089115842097227002938106751891134648888433926273358379837865362983787268432864048173751829007229262565976839553111817706791119094504627478614321177202625447502091899538758138607461136953294037145218522300483668773674309729230140635120203062575953465686771564489497095015807546452646563004880201469792389876318578567354000267914757743634197843853180172919916259719849327922824096364301544222953792931608623755881871332799464972593206709872586063332188878376115706018579657590511768009536403994074702623304742448777587733318421408082856574973610390500812159279848070297487819292881058605651077751630968141236724070698640369674803123430270776840491620836956635033430922690720173945640399486867719405061559112394663201308692270107077385160379163457851254794733125169079497059735039311653738449689249783105089579944614040032349267347723316843067543630631122361473353235115572941371035166238629822578036190754757330727026199068852543867956575860169687224090067177716650899447780863884438390141080750989292838330708976256443575591840545712010516244526886857367097405553411913429589175733773221246353763382737923486694630336178616401392316975177524716721271280831548395005442651162229142560610205994549717955460960904893070397080794131681863951236553012807494889896910455734984154663220689179030335874116351925041657792330541255299706896848406398529776306224954276827532069565528406204802480052320445600295147508688142931990240492471299869452490142759361756523821282245734555932268750213961311049478492146191218833354571208081021116732403807430974108239725835142838357362264326691804605205687861445472495715007929003299132639549539225667967733560938662584958406429357955345196972013190894061057930204014145672560669995933051152480829333301794664465333888879773070870561422267527270542700264732478971871709464775826387662275389339956789378379525045263402042853585251965430875470373388761259779051226089798462916382282681268790308037881185039582424932721760671063249898625057324445560560345285520230923142153263355522642021406121859706744570439252151795437088147907807175787742013761420620234772934967335403458596211100716544017610067165491902460521119814809492281959567349565471085315455515366034867460436960792467001870855373061603450328633385875333756558229823620032452314069935064299868077556259783984710666953275992467405427428831155617247515760628934705090943870153051687599728657797643133838701867234040189398357716523049726450208489931061579845910388578799058204837368958696080692661132156219819246210353977670854931670438369165535814248102828747358781964977429650951242715020627379440472027348721467679777164052492745171257377164731111739098420682522991768270504438924411165258624348362879633313452417628815686315192819343057880209699384867873508488065742517789984403494824913743456383322656353949941591045029845806419525478082948924172002040171549682496702128332681346004438025595732809191006602461846879312906255384103617376021836899752728055290281210030050715996059086089748392803349311538486012683194867313229746547128357789744038527385887675051359808165181274662354738575392530063077898354210209643826418168927191215757996377673208006526730209842438349208730743000694862318372594053560138458434664429579303904843860841647840326946601254278712151031354143434483330072585258124229149375318047255454232299632531423456989306745774347801065880898796241253190762609440619726172050834423428389634351464552117139814557835639220363890619179318893742583863721190900864165153441632236975530638463501626630396983112814358650349030224469503586935931165872646579133033554501466756522676381205620770789194065941289468770139601565955085486212008359366129506286755311428278179211907309826698763664384231089698665744244062403485149191224755072383111942300726378292169764277868593654021875509277457827571097916724337997665459275703173717655196504045123523442549820253423279191787239918571786882234267631470682368439486083592874983285623628110135681249791157613027961684857317357455186470586383857287863943111756905732163546425906971942802914371577181546990753636155126954003267754437532546610014607813588371431132091496259495627640445333367006148835857719703234698736369710357637942553335191647190406409816445375056073446272748618472500072041776596128885414146203707116517613454114292969952491145842253089122964283661776358184636975761065615470223571065242789840523079774195370047708198998322173698644410566551306532271086200284552773617554515361122166124004572434600965442612681811465659570706931299422670092775380827128427994563559280506945942837102751297723684492601564606009596953703677565499311510076433572088064445706205765131430305225253092482058556109886806462695676176291428353023411039020284629781138350851136214809145699287166873447380326423521166176752532913046781580133662911496543984285041131798300179794720379185736451948892468563437090741972229014549899273677432418350100492262524281146627699837511476630111090773617826945351515359159721010393178350685391369703502802654100147789067299217938345569470160240938304892839087649469453866838491517613703469928834393672285029407163141988090132558437077328197112500771926568564313790341746955868549107633848127304915365788227442900936490319493705789954263160199516741064801733776322026264657679133727336147367755543043545948232670355582094052900886940246461316911024264790413685359050836863237141431455062763309775245980601912081777128628036183796182613252664215161135924813770774981816511035728932799279116756746901394180033551539690480149140332087609200630739824552975673162778952981376330022724076526783883497541904290171311020726923985610301466490221451830667459694600963409721184377175543260256282086350228694681479467606478192558635589371836134624717326376382339388592907576421722001366008681454723308916120813144308776309173877021143278973188371387796416170185174118223903198651061266254521855475734270191654856673967034418546785719864321058699163858748052226447556636297339221793735364211037441437588648602820130234549535016906656228607683693890624186638664381133714127225305061237753535928773187662515803704438602780004899291459989289434504389763336318586806791823301152335385129641651387408024922999621177212599663507684207956158733580848349326862114108478241086665684255134452612795707771060157704244047678359403396459243238565563982615822692705914865826779579403520491363948213819620763535255672656646508158437870045566861176753678176594416240740495125031742450535540827729973546219482963109513624071069097802369680933906405563981964098164290501257210312889779834573425704511552205763448527783835149102231979628424027205212155620499186933918227797649509607808155388558661735152133831752638295936679027048153655117728325470844283303544995803817971499589493272008124007683521198921317334271969596246281098594451147472731984805709850561235879115296407187180764814501581841764383042404329372652911494050165495388894295168706615010900864528740354555023838233980541302162563180588639337233066501614786785053002347644445658786157317233315695539721246146382042776753159989469288840525695705496689818341241155838307836517981057599899066110361553356973641922165584087421754152364645371948435882014552565761883258817255766940366397090523657092966339390839890530912740102447490330295833306198856130071065333036804605935555507171349417754080820829418983454324016798014327400618043489712877300116487518459760937858659820101986950485743255561336398747663330967695160446253098919052391942870182776468163431809892456311512379308634653306146390317696433677296441088410336469408349472207067279577737933446888398988521144431248958222930429255408263220041955310733082571739706025411388718862583926305957360284405118411318805093081217291127127091044931598154542833509810498738138725210049053226721414368679541751276830306463779380982161825262035892084383757775988327487709179417190597648386917336394747389162603652460462388023832908075671778620030879892229819736434197625328928302474512465406211103741875004923999675270519467186542717477057486589430624730548467013007776020706598476373815168031337028931890549432489286528670749580688965308896179504403967742905018963033205036130956934782144339593271824196486010368151335051918452397734006117630555725323844179930754889269405624431461937600701729688969253233962448458957282091404740612486676922554126081190735478858822305203824347306565910355807247880308417921565063356062275193252864236801775279782954718183038199185470623678164831121868963688815931102186015440232748497341611361639618931912946476992287491433400094902651009432392924445902789330336356441539170666420292216752091318587675241226357458505278533498171482805181487172776147711636143345766776407977791092930078972034805731874700447847794395854199447905253658152514885057772949942353384408813315839542125997117918655940349669674820596860127833658712922649808607069445698692922063600693994444835714247682205292496360369019719093172343429085926377873476792282180781610228994149876274846613147405022836672921960909397635578352137004610543912415637755282045005963308882776655033143265804608413767449487346173628259362987904043232043647342521120389203637371973825945979953887057685947069175641276718805235958022845299683893210680296586121957913791779121354038862561002086857368022182829492394343812795707532008478952511401924730032003506135767029978763476975735454973033013130488967768990017354571375066728713096304873020547003766032218107963651058662966033322048125841281555004394169073702842481220075955756874101227915444104263788786360374872136141819209552298143828172960851384519956296986133980469583153853352563836103637354963001533762182933470875988257860780707108573258826890351908932736067408974056744503589994089023175684900991402112343079956147663461528483255617965244386161119090885260096212740717638279491044674416803194030985781174383094059963977674742263694892660037691503003763404659294871031528030099364089206832054210282558415309948193155197506468051609348045708906854933626178311170954872757247929097440169997411375501619213145868156355277316664190858104589072162115466196785095153402464062051416023558210358215268409019551083964378089728799340764165107532250637330421110546958422992973238405734609048396452090589207431625572959408040177640097492929245631536734449880044489862986095101093817686232963891868619681530466242465232392447123564386296554964166650730398316188837825358654649958915655374040754550718746706719489286903863356616276288714649566608197416617007266077144342261081881677240890861937897923155698953198858913501302135067808007183462327866135647422894972559053332101392702331332435893198756662532276826651672559495172103863349309876457171337462395545340595420460323527188213854234765657948484116280344577634086410766669513525686415429010080216117627585815870123038228574889373236622676771066865067915365747536504539217993622810861480605915373330757760114653626125400020683602996475804460605333365816080936759667394073673990742770818852565916148323387152406407683632406972464632208965770394409569895476917250320035206327300848533267344757414260584081392543712411778624913286867709434954570903528602965495253616909823433395862857152360105971059466083494583008115644852654157173991934346783994710387166909877305511251859776166661456661493130146237896406125135475078760029072102997059235257784492055314635951931982297523393126047340392354745869862543346145173488318427962789963632224057887609227865066589569491829305543773263989009286886075169847733512973230875402359240451444934021546044049462735524567245999379244492755668611792078578631433303485484909123762009895978005404564621773983759478457825918035812650488963464804566282073898341671153349042479915169649180484580071055130375708782988957627497120688333146150352860615794759646063450005364016334005839822026470213144431208026584409770569885179088808826602403757388424367941665010507096596950885434163435092086209785424194750873210055648714260832631432237858676557022189809095603657366729291071849119105902337684461171775322167688095224268016912032111398634853311211737652550314565699400173378717149083907285271826694751307338622948867136801517780889900930241721109707074701792837965065595411663579263461267776531484058187820575350432991205760238259928841939628126313945529763600631652833051743076668649556826414756631725155279577303435609811061463587843106263061152747139962413919502786003429996842887167571960761864487098119417784328232472071643839037832502012102781093531327390881868689098624350485243866263557475770180406629375118153817303553665649831643177177176244037941016583344531723332816516153737845262961221029907451220546088234592828988828450536502083838927433876114033713675494627703124130948291474656959060605774567833583789423310597284215992401045395684292085370517949695361566889712180290895147771091194101545667596471292491795561853565506617002654760181463658203620497657524480125537717410268838803722894235256696806602408424100124463911976485752856026025240995841655718580162673103757215612466029181882908337418685822006637755695917048195325571167704142184162495482637237744411719552140682202289739992573866205142754884613566953513738215408825244999833588497542758544461060880957847012133138560348045256524002454372207185823075650429798406263328040144583084213812643465477565891679867556819479402585199692660128396932689644049739393057995644682353296801612630036255111520011072336801565224679418057878012074565886842547791197968244576732104975212103615596561238082668971851789781210157864392215662026639237578490254404093218667806940428892197691877308684383365668392796946755603849520859065864166703777805738033789572612817153793838236660827898198507774440010022640608098595899929532168921516636618047706051205902773548450996943913515328930344463125404824625456698641325913328155069221064936934472769882887278329042272336577783725331564890419263238463007031653493693463080301874340779964943569715844152420693688924193499774546324181211892690242200344234302116100754624090119201721609782199001931302056943744638386119610406432321404889933535253047864401395522087417749529236578924478179783562146397600326122109776084609939412254280440534374743902140546101527888388372390898998731182886672496486165599505519885473326435352789393482941554228574868493843298701027151783731939560043739350854698833193860503540322591304676658097762839722955402801700733411403718486768165207582364886225468960258877496133652980472439887689002249263794640134522567112495037988961368808741430397939948212285431521120862534106858624239573726679488359521687378346925760719109875645689476824965730038206209075167996805974060637502624626606996885895215928718156265562332249950621889872146298337093723340775333967810612998024966101442497182168176779763318570327752010644633411599747858377606206171682051898839477044435586934715080185726285575490511161937372449874416420475228628088095905736238093806448578906934688418944871250056175080948666349599692933538989658429084192382234299479559021571151928125543477879120939102995712650323377905548245845055902822072961591787831709506074459491440922221352725028402223104221903101577283853204832361011364854987527296162879945034076683054043908157661898197894950048523660268831997377598675306980012174160366909788918054014558784452036403435442726292775000967828490988510145510957078074165017319548821590448787143324098858769332944981161767169271253718619958851522788122848217279277179498803037268452843857911596636062660386496433619456778602704851220806307425633527766936311370011613351283286256547467850386431870272559195153346436701006368636388422366066112715898903336544752417327489806683553661845238039149158572358485162537785225218086880056577769218680893203827370267801252673258289034708630135388162625497432880300438120554578401777258259298529997564948252919091208684000426659529934109945454090437873225550523848740969526564466286964974329034912435127737481867465572089417650118992502373598062367188492604898746064062888388676595306697418101888235125424882055771336030812769361680820962601049495148130165258529850035542047817913497175196148159475720164154734796439548715936053810564399834036577507791917796718710264849441279883317829865598344489254467273396823121974536566135384449401355851284356879904947076836558543777456073175772702692081117768243412665815623634611772968586714274446659486642768929790907755519958468643319885867398215149569613238432960966799378731659553183144261537268668269760926837606308536120846706520466470818400514541492262948989845792263964575191654395604204420085660428583445610183751313079476314003643302891002398867867453606810631110223131002109970098851128482182052365295205370486453631205012108561375194965866474745161733729319912683744527995410527440375277185505897065873311170735270035893646685471044252099120151274124677582264194274729191586046487708560614712409381437396097673524727161444041492338710524306304953148698812549391946252119558749211131574213673561354367628755534977837258434304675984253541070917353734731563855918207226797392435506030692180723154572520273590814212777759452525644968190948146804935301074383829934908109575096220530008446975027988440082608179653628785450268474231391614040620466219970436990711104091497433818522971585642151557563807975111812997551585618487771176092030767405367538827236310444131128651821247859295493944284340329312823968595322808171332912268968885027595327990516782448597251166885130743461157510187681689922490646539284242687861853973480470996017651182339891733256377040507779684855704113039091087970344355832053033417091460781414392242941448978042889163904772478245486137899082141014435371706495965966499635857598681148181822317163167046742665121511580037878206598366834110998142144236070188968519700194893846238998752746548810316276728261341198235016495792887730241468414596955166664687808764929667522359456791686613077729370015312269262309842000974908887546591926848484705603015146988486706653886575039909406716933412444955020581394454107221713826183632039066896732331031927425177106131786934653901288651493159222719043955299929122593479765321427770145751047249142017365468864135616839485258249975488231595550100280239755143101884703921926884104261273554241318415343057928806762815528780408394032032190843060486018973065444189780267722312960901480951384989194893513989841010664652682430632572891201560709037392401093161656903219626912193562712940314221864394461581027443079334615339507686720019561694790732141136517498218532501369154523125179548630034373073753545528012514973860068321729684138137593818773605027302750871797884388247910840508802723877819418940071624723158027727783510046061817921014004339696925867806289632578026889030046562557149776000635541190966559680174853200768638612191451227753135293973306628131949059837060135612289701693743874950222195255076407575363516104304319541135943131626202930462256684640552736468678177318732020086992991456167718622654153933281514800211278716449592105815555109481694515894776070354540165157431474333150102574649542961597178341842863892004571981832479970618531656451039478309751935308319753711289483120938497224270526385334563964398111890936632135528942129765639454466329088922772498312492792862617231826798768860061117900480217804122762959020989837573780666500959691566106919286162885228868715962543016716205698817165347799103740456875795418459731858161273747917380161456454562924348714835658953487998098803350869887895217220404729360413070940478789661464664083654200633027478760829849156614586414252343708819917709032924430993562570957230339894978798701663075918315570537531135773907373285828148635191386310672717522197434448090372825359788327079575058132458952067953183880684303134008331379433681761330539850672653643756919317348052871459179456272953101110866030733673590239338355960329554933619854035212268429884266317044709001541627743866400700143394369742438326076021202340829235667023149988626608642114902170181051396378622002573610875386826158810597106123846783084646296417737138495093506776645054793844482515521102732277533362906052036573869619463472814445197006351575484178358937051494170241892264110537313847487157376992886871682214222403693463481457232700979146660202887512319103705470032612891997486367953409966005915808366496725056922975784627910463912220547115678101063118305976559241836915358685954840608983741550742429527965668738483139760343466368727510772276847257995218884836566270388874685634744533747667807854305976204378276393252543788209168688366464925695267170343784998674983076613269616797574211231036095078553124178649719349134045524859773937074047603107824750292744846233569651281644563971680804967620543295410212383135930389669194009523868995797037816075455720662986318233115230082997651227809439533490349115265477181166223012784716473057064408092016297215029430288033727293677286339636995350587241198240856718150888031135120389570297922569769213279483239644979261113863177442463308423734097299916787151526028921007244446653470842340907766894542426317371903625042410614752247617425737901199625165431647020262239583638615157646444470126697908597844804771033577357906576260253823757076576233700290526875381500681399035691160336769579831265042272540785345852608295080382619693902292946550852120502107367736122145139964728845676799365652257483120021249786693650798443148502393829125279527554413971410576516136799063128791695387973721357254786041756435690497462677949663147214459850003779767063731019180933832619741556752610684873582583149555851381246978328138828023107092833943653708366667930542063685260120088619574286786207300388134660805456596699597692508757486393210159019920472162423265659356957636448787651627724099861134585105697263811711955428104830771047182830767009324035159301393095965566414659888465367709885569078948823300826517397872263390262255658975464670063608970659256690737459241010222741633469129749946749238818852762386893054371721298771009149785326110973142429249617272990140881437617075475556589711416438096661163187481412325935462254546538943575069391402382366885205753527352314554351475874476929052661032415629355433759736163195237475118369209960903530783669059734457728064208734100802923245834147229517296009831361961088177839891683653400493646456770685401345427062533237037695874573836553231144869025075737485018468052586581194463993318527288384304408144301735231668572676335159606880330052721619992339733853468346904256465494095426347158802054581129392423606950924455362419304373591160214622537515160701715403181943940058520504898805940309070452068060493708333224023328831471768218423433497636714791808297872215890006102039711642030917780121826018712996781527126337712838636210484977610353880590727410697795704905794843773144524719822896533307394096713031451616901431017476748881451830792080077450615372465813822879243905174751845495295851592091106758956393495037700876420024041989081866349593886625843475157115408808991341858506736984485608488834073711351174965378700552696941847474074333695671141688088714518801141043096973305590957902954300148910003435925869899263705502855659125942701148802197356430701692013727123798666041799050521579228187698690826668544205978488818966658403415197726767292126498859626134826172923731102773833185483457676670582077703749628204883380965126600712407009077371000050713132454206767924093650503201760139890927960109861551198768701586382375029386110731733575955914890306774277763128866142108400344131746152512958297223879982665504967653644006412238127416586703660938878490583972460624338400949761423751897844093727508252435872327989392533955543613165399546703032962037213773418638883558345026550770185251001014108411024485573349651693259081551179091741348866097830927832802159726383972471351221666953151659879581284756293509722101619396400906824515422875289911206361565953851458358555436497664462032381679885365646738892828698972233998824731324959844725477598110957004345761048252161801740590395982952867144314655429515134235988096011881773971343490914752942478722524092951486568394202149681275781779026490174705923887918513978931949210493814439355153207054296676661523510318130583185895985411355478479726236874928699255491371091220720356097271303817101045748995933407240917038905793033773520421622236047101513274287524740527915139183739382186260852819522407372736998480994313131599676665311304692945063635574701999505067624745315412340087686590162548395779039896044194448716632291494130190311438282786854131578652520129198620518289322117961520372234203375442628796060867159104221685384041219364244187728757956826305048838875427524000018615700161753412585047103897681324963654184486843716712822579399773812011896645625430869411303386036486772598880932237003471804777351732919858244028327554948838723525646669575137175289456666696708728258676799250176629898956536575417625071963036454673190969636856255045495191810996480106825640502302600452161236008951932483028068670747613377145475295759553599238466644344160010651629116751110621280338378535494498055137061401900261605515189578739969791128008441824236990086846712542453294961867960095502548061560324836158449787461073125060938656459012580239068370437311734483817696911505576992099230661641193177999424443903606301465466715467485981588057766842207034150701460628780351974192163603534753538156965190853154921132804786275651232296809986346139341694794897138595065603833276939702325053412699455479205238211957779074694180420341445533265738400425759134731810659715645061071715362137087233003302413799928560587077652781166896316310817540995586593708242148613864758687738537154198532679644584277558511683923029444954298592933306568908316657360608582458938455435896815411139696189082830794416488968521481646729835662745149664610400631480300857227026105237042686869517283631415711280229695496457140162363616632616041572128741324237157574174215653989752887066616130616824861597032699633824053764997101869685147979547899541162064619078023556305806760676606709988153182722665269410303647275314295771000363803853219724620728820923635705212964752008302224296149939668669513445981481185869775935289825980166760776726804452873894185066949679889026631606814987358276193944996718728332455719473033133054636708516809649770160421464149193023682109125568802213490028788013781308085820831892456484638402429669954761440254035242192106889224775142219811562753997966619385197638696708335589355706445715819706757197765669616624818894674859506379987107308066484540431180983099293076534409808241078823976270400021932092901875703461265976586505870279214254702245235059751811320125476090994303726916129710303331289680146972197323272029502575845266192779542094355125380246580422530965186708633628869289386172718837699921574935611449192121298354694903148765062899685505578570479249695278980841841492767823008444149291621770604722938208713714988244235407231079408035702062385984768102447022597978176104360492254829541700700070996112468578627789067563390031759567072266494941045906201628673232378131661370338887478444814508151008376446431835143731962394585620297298731314616508241217145009961055172113642619403117437068500553083716624149511793698756730019545509544300981896205517614463796944056647989478063113485958405479542485865326716635798494529855188315603908182016401368364920464673584636606200414576278354096410477133393793256829341119442055630611429244218288346902667728434035522043895201598948679789401650842203153248165332999947129088970730115567090735545241197578703279800946111875039786971822805554990018155659730434413820935548423708470015905738652596298613787715413750899844880632889138588312101486270920014818843717683124611018309745363993940048207169453978862414580125812673200162840947988719032142562220301915006716146767785812354098417242360895096748027294671717324674285791647782009476403771346456668161735062330786661953916263646976921445807656897778594865135024562376075925434459275683431797522459319107983566531309454337271235356640925852036548997945853498493679795954633790847959839115953942979786762022750910256072411609014315104386583488684333109144338619070539757417470198161177445142103563336642266139643520647694822227851339760613717141366174462454058927012301876394430676504893992851423693386927755062686732012103984655290475335905683408315409017033314036130342654075044401980189262464395132073160921135383907729893777325995486900239896995528817921725357512099949667072552244121338883013030292298578756076711936441873792575029567144841652916083609993956201788339473273663239733304932769701200641916043304696636058513673219831506239158334276019319692025416560960133553973405178811860598757114525449529532377383764702196510555204018245426405901169378865399407870774105441416391024860123174966896566514730873846929744596977291527455057018637270847358077440388479689523342092444891386629497984081420921852558495069975023277575875761949448347265425159870795888113403603554931042156683574492593370275194167837314100044215327653719662008964775554990928903755002361746257132611635335284380183206592018958150710878854305665415174611077470720150989490760476456612888863601091868592057312833066311166109041083478506173978815322754454894671934492902102110331758083740864300938796988129527367668236161100265946100602353250062843251527942943728566465797568833988816594636606765901805513412709056452280418185277327366456397240519947887131740448178326756509063376299605494834935470130152845758238156579118895227295703357582542475401487988178839983943992281591467600872601572446393463491744679212616161066577387644878070438976043417078790716861573424802157346615679512272970414683466391364439510206119625738939661863876872178003359179662178992182159359318060413792454451928855570346908010519101288403859715845608790604775091028253900028830104468940476988568841718325964013085704011858693200635218808956924160731500206506051174855709378865212861921612182319321938460813522077318142971554344124678210660906801649580688213242647505082386761682506087224993663348439180511267258425547972116724762590167106289645149485689842556152310641304956775846232447296432208817755062391884737423861184016738167382557011809075964650902264187728288322871266189456024838083282860497295972726469831306211061977811707729594471397427194607284428522773649946366032842103852075767968763944682311746484950191094749043989575495793299991762616049948024415022922656379305180085502725171438190497661255884104582300756141435286839974072648391031327383574291500653355459648654298292915597164581341804098191649055351608899753510040546666731182995838253746530198546998852814121063210271003635751698546707433777960881897507993663053071857825055793642158837424443737583815627317984010614536139176361328955473467902972115615922949943873086587244846409477145149041160702771209142301927313087593485882782996625174553802785066483425848880119060977663797734228211292466631602502017264581393876857664397114710200500329386695754280943597194120447209614974807760562544914435060844713594321944163249957940022515273996885036593225611213343013519195328698215043414235676978106676129751097706133023291900007651417882834947830384709718653197095563730783307437796788297196783707173611863370141056318564777933653252177432559788007706577709632601969167522348270372817961762223468303262291949610248039290306837086408094168634937192917519549096035003788386984322423864352964921213493420506682627592958711179950389858154923490725936128366105797018687584119376858232669928062357977759963133411586870255598974898543574667575479788289809663707066320485994367144495058175145879841737894573534832763285201356791721715481583033668120308044319705978928380124227082048068342044765097961914728509274822502064414993940750289119651646193166822316223194209430473568534739520218443226259613523271886480648413178403831764830104192182342844217929731560532504821225821755796504527268450830388028295155888333988536728654383221358105886858984217891228905946134489955994616266405863732101623689104750951880548868826942062195180413250729809018273573281515834319282848029771532051515745092513846780633211460703373461426134122218170572581546320729073975037875596476790805464454283983324263972427705436459861950205812071506881358014076891172850560879921487769911715729617041525932611491697017675655656260848072648746307363822763028656081484941099435938092841818769723061119820710330224601049146922443065373133130532808620532029111180737945690303406207705543351366671203053240392635917726388750585700357170307284119822182975947136670047693185981690024439019904679836647798885124999177841733654443893801129812852407455110686620374585119043681944919293049487021465144513061153970023097951227500022919326785797397960605859813589683156553999583934180527121036222754279691283339331891676934187497163708483433271877699822141921924650714631430809226592899668318510165568628405246113778749904559999183005235425480607979591622326173000761432538274214039491334509440833525278447713449884964419549265932996800886851750702225608067278220267028715196938518079045285237706010929677125806169960399415246459566816469857749016991033368074140742114097155354630821761363625034338488212758199960451702737572291459375811869831830619990723499042332067310430088385948728939280866709078894156427025859466333498337425328207074904619906198259237307806189920941538643633871631446717109752807689763068429415458950140392206112232404132020401388600622119366569427522206182265284579367240564439023906335207053708604869428254406715099845459225493547704510301038555076013994688608841148284246291940029132912833084173914005848543929908050677948236701801864437132500030943563350462055586699498179035643476741177170673227409951251405867283160766636667912402739495965219830924727873330615930354115455380462327776318474569428261803653841339834686269468100989115282333996396649239884326527970534905290675298414385092967382314620422837727479731902338155320493127921496139833177100995171849841262165299129465178713040472354546897604128776404409023802139623337562706157048019842575156388780268882417301594451868617847109504252429672423431945741708557588138155126612303566360706340111594928442337966424054448216391850342385970573167592227320366103747917982928160609386332239659916871148197651780165969765199279558604166900082902045285670238787088090326710696381108626126814430527084433552378982621899458589715742654000189520058361812525929098526923750897534072866134968322994716572946220489119468822639180911731085555985741887542529610169091346268075254282591790721502609459923237968310266143455489078517346583548892411104158885495329627225305204634413983307627517670160853499924045433385965194342494161388994752334962263719580769871040376533274725225361409327846865558385853657445313590758380232376839495655114468353338259843830549823578755148186236699234924865052099282430564159477194172134912988363611799654066130805854086572785418486165082207559443496178127514597469228106689047969210939674380131088516482619463033682083127474986765279542589259216404819890715344351871396402622538964855127643594710525310634202611663562548737117188632297331087796388963406105751934464860502604440679047937815517357038129130043725159729215490510608380431635730540693660659398580898444700811366693743352091586872989696148392354779297028799954776870262193775513450120258342967959413283438470426360999404501587930726765438320627942292391216364650062245640819680458256081315998678726673070640955964468398838296318438010192729422722058166838552211347979942265073707103090408466168416109738792729937705036400359891469873804393336732673874696614660790262614123856245872143305396734060040693206481072643846935828878066065522344126061940798992775969745964879531798695094869578291617872176291246494379921597329593195816528235929951880648180756732711137050324289516969789869580336696093134683273222632609902226817651471355811192511423604198936054111127668655477450347076659363753524822865948469532595609235587452622898320989319185971952477479385291266064348366033299552328535007696024475249443377712028626509662603714355928623834265338029233287201304333362252126434254347643969231792120118289209413316098478666140918327789744898301543144805280643770525526262381609797501914061306645868998509037275471377781226201307260054140206778876907661189511460153960542030369917470259975302263529079414505138884158793004306803407893153568048821611284158466174418629195247654051291869917731816855818343870129885328400248847694450266718578036274822441816214090318266840177535560319030729649537537691645129668011603357582605627248678846989540459706215886105129770400142375459199120214711183590202730709218140227840732973309339609468901998478518663343495531829172375793435991116282306006992467173056293550594014971645505457496672285133290571155825329898729069289747045238822733901392268940723473246689863579299008856761928091411266910718280391715523109323129018302070303286276196983529783135142908443922178873270234694206129823817206418204619856322228747754672832227006050526334011901643322358784031260359769790209037829194156586494328225142079745851682541859090916618561568611578723410677947283398783674888397938162024201550812205822061694179336569804867950250289014029355313670217470971286559476360111968088802464245397852405335338444836532876331505223517937396522124062520471726788382943953336400073648633100112118938061778183955941974437416542047566492236824331085232879926714755705427811453447972002241820354457651706248628383982625291915089420451204898739001875575195531386163782738187780811828587099310045563509037345535362061380186565882583566937285639114446651438178180519342585263034362565932254036625983398701590736750197990463785473927362098790939411716821519499521859542562758087887814436485461896316211824221725287147967484610357194737960062766028014346332112904770835980670104715183038543180291002916740153923386540803000723757693491305593489196502680918590267742042336823734669586739970011422006957126985553641322372514538413026867990800495479571287370521032756187909281352675540064159220074766303727082181824121575438683000717248769458503295810392019384253084165067285175870632808337880310979997190845666033057379626510936348043892076906517967961523313311584207147576868678084290244624170116782208009455581482446256234689121659930441087988348017699124990506578163308573385689701147690628773959383379692251560793162510834437005510255088050082439970893156321221596582719236099509747227889288218218094509220229648096429946691470192519148685114188589935792321363262712472013423393610650282849802777117747974491466176357017555196520242435615439528808267772306608686187119040020591039124713525873710053444204053753432987936827221693175291449280147692060760580039313445872337032788788123698162774732030192059960343942653205309821803843741609987437462151674182991845014947402414420816342321527512750236679226595695787892876602647750897800665694353826886714697697432289931837025479088094830401197446033093677193302738037476741449623035796635198968166968734950966014545025238824156816334711149604255839339458696723768709917098281227664081770752976141189702224195693798897538441815395708481251859036587503535115133867655571124069723079353882255106876724394413647655497240202290763522594804806630741799390184421995262589271023467633964143914459144197879256335058116310492933669357858269218676591132946462895022268286806561807737200197862574566086231732310297957038907057974793228669381040454406090057642235893008595576716973903614818083358349392805329849219890641464467012433544789411404768823803497675447699376312856420168720027930855595522163080303303417172021988955980440332967294887881262849870908369317466059958474892683985487223193826670372949976887202376993158269297005035701607357239333317381833313016193026957313560570293103604158806089101093512050466526983895873050674650333198310396045081313646817371450660041587086707516562854228704714052240694391960796783289882451899356025155144313670730377254733499893566048526530161135117002408848325671854994540707007714960335825302570335988538545021189048139348026011722672107980209140864572531269092341226172290369028641935406140282614862140652550808908083016061500491838725053621235396497271859071573146644747773095679853457144356961950519811222815704767994396958726323115795218876708388622016558709853364637046987664458764565209620024308824482278490514357545603207518414396125383807906781053409076079659321629451505108212077676639528194780091871806053067394104027482510282658039090369254257544503153572290530053871096385821079708786700556703635525014876129951756216116698903066019521738801675007709861741838884283833352480491397990087676662770866533045917105000055117060696651940483218789022996701965788137912154787164398038863929735473595824616468690642591742551599576809563758668604845814508947628946212601712203836114263762179893225405521774044391447961701738258165671907088247377976583569608458370208663880241765200370554652061164472910102177283098989372420131122744734445737829904755143595278466193025814448874442693071460930987986233321623549135396299559242832086101987430340305453273528383902854489079478660287820508383347356660899346178760749079852660999544491057527188110573176126776679140212874421291049158550482245370925979472753312178076991379043117475027416164586294386617757381134993902600757679575234228607893961529551212228790572123358729745122398209455638366926163617111943452832282387618939750234749620859794822734140839511632499770101968453448143140277025462541709821370046067275258694822084224569216065854817525582247138220678322844044935783618021512571103350202041015515637443665357158179249395663573925661334885722900129252383078840591637771771176088556560138123087238285901345478101634260768495946404071733088741666376192866245705028665369454055382441994702428562595303419960489012434501064508873488459492948983214844062792553403768541065064926966825220328805410221276096796170724862031460270805948729228406368486570029824356902155036740235681764599829978983126582403717649231800294281492625789024733677745697806318233127536841330764659753514980670686722964287840544837173156495455444207862791679153094323343675303384236230946582754539380301943777438636225110792783232400322256812678184571508676960045222300384717807975876831437043725381784171048498208821980384207876721833611749149566980811732681518932824313015475995892883389069588209297335001477200421919553583588055677781092367773887880973089957611556861158464098887721445987275791853931675031582023415270286999110930729458325223880363909195764791929656303790834287438935606200414158066859922424143780482884510184955674200451359692918792997589236864047290981452460979063450039859411696897528408411488314274021971497305973784381572427706457698081210488883652309166359563546748645683122521155142525834475035432671966971372140557146740726899092481936984966702171211865351339878713551037686482708958848187062122934078619485508250193079505624787643927150210799966864555350377884089064349012433448268514210847173248528532361830978363074774515158785153340575705986070680686298372506409820387257410049141307644006760689342126392630088783371452036009230607708250283714920518593132508084307204855236671000849070295538736429172217521583736863093763435459084287559551790354429387652117540185406527590076130068067421317324923986855565058866362239244851493925702478893281798597014962114566790313614424879925218172860481305174235572026457885809481503672711624223723470304467936564479123685205938243954111597853788977457460690614136258329794348145616810448569653148874557310004428947473539769413623771308916026964107451205913605772151122174403354665861127537924528483779436733537546788521976372261455902078864875464109037023416118188313770381835287949148099703606924685928092364746831433202689610105909580662030433126531210312008989478626161078989423802511891410208075174028838070806002282893918342993773084709957522222909716560854352112740163340633926751732564130167923831800782551771275106814911142901785690350656985528371589359947973453479081330505875869086848688090827171958999387374501965702852206775124023549640094247391081898375539047889577680422672110506362155244996540763420810805093999916874078366204151226415703179322576198092116729889744390834922410266565888633168591324623382381838566014661622721218169868831418620967864512843432306537839643344758102601133054117339620466352952551920695184895154055490255187456242052133884303364291992359751392360921836478784401042606191890019561058197723813604769323906957280301611294201573006629081457299985750964980166781308545686174872184042170634063437285453228563949478085230743517353035536061635501597875750000943181166353148885202041467061022463270880957133840152159979129507391355831494135360099135918726762968971448603702677762325007566088616504956477173101334828900811716570240719432606037999018226668765001488281372350443832521365566464819179149652542991291992656210261261458034386150833585522468250342972706982832465072718070259562547387975908669693944345535569446211125160804839539861192794077331310380082245927695949667101057537113669942073959070001783446222744911805468178344320865415954798871437448579492580256507288068842148480067898186305090851763414045119739286874724107696709736833663606218806460744031397220112517479622195062632237475993860412166142073366571619961434094797536729854561080461826736868443228718319398851030658896831316908359914805600674493011429117943066265165447006291979206810191007932753945991053071964161887669999846485072599542889671246481743744581100607688185663466766560831036279388459961444366431352071644138419866934386186993132910915578792934391242552445943936594742589845963858761639306522020244051476582883766081013404025925955382420526924679934400529402174992434568157381554226154830196699935742270342923239834365119819479926389282731543964746373095094728146996982188557524805696812087868248324210187093142923751602706701458683722983180238486446377247523371899754811625505423452905277871054169320769223851241268603297669514438289339984662162650327445442184709774156441974897618167085330098256300756483763553238071986735092952288311514653768766046192777615554182913754092503389899122304982489333768537499363596837977538413248072184153905874692367083559092269656077367739689573057050535178366500958622357347674262119085358879656698498854395585269703032191385844689465138918352684749607959356721459864520033010255533800957244820210485134760204289110908416207437358132655681699456185641800433789038525557973868364901903926522847185193846900114332403317077320790857417310574032994290250146267204040927998696496533213510126291492145817564273680347086783949225513276273275560278113110505787548281383616388401785316780198002877445328221060388311877192897000054881854476059342713928459593590187853183474178975733606244702393175457978196317008250603897432333891798236480258351500047658127384355146960144733154017231107169182402584174824176494930349111810359757838686371337121172538365576031298093992282844803915302313150251709833167600242613916703656972506155699512743976845044625271702753908632031011245615436191350435674877501100264466731176190776744269925876229812297089398163887762675960379970490036641936909423183108744249119716720705394505199610675284629798150791571380545221258927581093394282590658124929854075028417147427601506937625035550548555571551254934696528117774606177360247117122340609490457446132884263863426489639150189715151012666101407536981512580327083545420857806767126982580166753960951674222009532740800252472306593210383158549083544194575367680747483509956195353244547705151041233155369157295739388079173682426692816074642351269217935108162335488804071647170351475494711751936933394661414728797166699100564338028285228269901832004744036775471647851982594733824696295579361745170795646152313979987958222284524564942435935325107551992611580555789461181649415605388697436363923924320621858567522175855571424122278116094691926530726025220782004480707762066561317657172606568914660425080856992438205377430084224764414967606397693802184214986550221622424590233168708289010178555119774465500562802541518011617437417381123413845566679711088323116457880355788035907804190902988791641720288567288019096665537736772518940669128300039951422150981872859396602820614592055174443577367024617544139439959875900245594448866314267705522799804397867980150404024608593926854064518680736151603299224139886877516068441495210667423598098374757967105116544304162862342938579792274600866303037648026285716564047729464019720376567530920875745653819629350448259863877174008928735595512847502993455562555508209355162558023691924537060691945137273138667379200370230453171557238850149877723936759090617297009753754985059892479434063740866028011140578267947472481848039702215915868229325756880628360182538929728084842923581945843359913245910542034997750597603859931187666756051746998298489944534588591201842661084415519109626504021116105142878354605759708449691923331498307095601268557575394788015115006321709218578032526865205142064937322827716021685867010840726198642764258873024193790753382880568239246297377739524493804624920138234226017170261327961862846411329034588374908185581159999376505948197186814136965166913017172834633219776815951654533144833335031430027784602128907859722826306997074462918046645602441612889894629466762038066007990345910377798418332585164526054170740910430975085029524357370888228320368168904290052946642736946283623460866426085117616583283750998495078444267225463649984306425398758621875701575300691714590396947662809558928174304518915944451042871070764871418545819580984681798390644481803631437226643713490980189601479222875415943017913329257840130001290368923140863776439181763617419516959586634888016968181172631523788497813011032239473110460470550687276548922902706396814668981301029458311324374978601779340660881964239833590527495324484551725813406181230137448730172625534898015309670777517821704921729496131278276289571975487218785239709770071974801640066698730673245418070083815228027376180715307404282267607207220086521832411792396844177565972492471283852094290501117299792639520000915175250083991337349889413666228362795494023629119460407389115504461475938521324091318758595291138126368655487645284390215783897283230909644567174634278404849301776579419365285592572221342608750098907889942614190896899623850341560957620662843084054867503577824588735147037670296533976916652488873454693108274628364964882736860239203210651352647080137643633005374161073332966742336264392012103599683521326587066029806503802534220633245110600849096264650342524328209199284526975664494103371225939675659824867335236254661527481313762800668772144216854450376205630368992129939458742030813587285658897354319472197898490068320060397622824400665428639743936175436150004955659917820020370115824803721946985568344800369263588922455807896419378625683229747292659747236726406228064581996402916497323327529542812621604678391371216389869007335387710640984107168919670369197891729269073432283979014227207134644064009619456778467419745999372040222483824684004130674583748143653405908149466514300284606512863994946318119638162297897516979687502365229795576444691592949984907588586256613817758132298854192399364620114000845190234710032906026904644506892703561665177228372887063694766404185314084277071450178413987482489190112602388601723542277295158533845518285128928033139759490609961163458399126651609871021583531148351686530815880814235402444261677177516989423634441527445728587708997477903606557788680999637455925049364574238280585257257381865436609053452822412415505561425483776511019773633328680830085152167588470578240682645176280735048636082202773827826453681997097611085158280883152406170709014194625775227848149345448324422587072801006433381698607041256546925386206878236400982059190389227706885557756909876402767933229190766538355425110020720364912170921776638245204042065701496986938822717699915414206912464545930509133598596036340348517973339120825473923593790266381749181517350425771395465790022674944454020378599480870418240924671466522394077907011882236704166476266097730283568844089177163412670243541320816644634717863826210019399022893597596223160115700017820715520420972393012103413737327040984265041739763399724572153614048868557646847679313712977909741878557016315603793065202233614991509934609389139410452082266721425429730447741704975472871376802901676450508072697147520084360704331244762262999424777472168858068327032666051397923009318681102946330233986940249781559755056495173055633048888914510856254576711918000811795201168401642226917149841578957381438835865504379879761327932775396355418755971685614192244503472414615552520570258844284573622925112194531137940038621722688465086675521189131985957630673393635850285409741911412533252027737220817080636187496807405369407879123073844110656999965798689044878724893220088910998982369936601082057345461225902481450607378812957858581018577423062634733999324879541529002971527777210631004923230329680748219287445220978398521367156927089440021356920287284120346234301195937080746044431896704491926660582503494863987254108953403513754157329538306751707165185472383240181728306792176507571366670918766058105422128202163938137370807332435482303867799752206671538606618534974801420593955463108347309384263226178631083545566382937574392971214500047570777671864592632417643108672208083508497796375530804819321298179316459852641564580155896061659228426103228631117024209051320694947788347872986570500616830717496197720527032844371393104304896760707991626435283841084098686217016247878159340566584444578651311990604553760569762062850681531103860367717289507453524334762268091773230054716908384017616712528313111997078465458484234061901747876255864824599032689447583062087435409777013306964011717348312517622370332310479247446416882356861103065072011415082055324521805683071279226005208565725948721137125328864504611162227124447781749551180931411879639135835783780875003021799639525072948622513587496143897470505098948969177487652393190018360339651051665839155583454621180568191780658413206632287078644255172969229868036739888308025380487345985629918225495032742766736955077051169247390947561643899122672185070575798085183586560879741461881248907741344099686516315875144632444366437443461201516408597425624505182175655171709863830713536426292034471265879693846968799950333745242921338898711999018912161656586238964567843655584773218383949824781557512974816528696194629933333249533600279738486141268142988137113893226141573987529744441573353816387163251543501197852490752188065243660732790765072112345110312995551561079272345770700948000100059350624345588505408474450520266755132371856279991114631515939880894821849143321163538432496531678793164304427464535920097098619208560509907113672267053822100796369969889344201389314754489909985898626735115583137173464917410020802027004860726102373750517358621935753827715437467273862097211300774291420132259389875471133939518848053791752742453021300317940303904067402587996231400511420924896320036930039646201071072134959121861277612303580200443790833837080886701310805659042967987874228456103160917501820187557259034215433008925146167120328457337699808206258904106934596214538353596195635752063270038378389116374261566111521716307041989347263030736027772856322644839775012968425793324604339642608238896216174792371471823694809432330177209039944675719158869609379582381682394563703626760850931809541743384245331248804876638089713315607151493188411911977857608897841293726967801094241318597471381506700946278173270648882288194818083074485439461863920077710247017420905777866615903553359147786538005495215295693159449741435133951726534459888609065757404307488266156173059877404833674375868227688587312769156531555352447000335420486605708701477137790949658421418632560596008817059947148516839321726242873821515354375581133692976405399052649290873205080013552460355266415075790946110128558687197222222575904970661004472026125713002660918722216611296325847604264926462485306960195156299954052062957856263706464871838162881129398196170092471686782616682064015488192837772235458099988442548557663610368026183056046182706333402798288649081911846745671041280225461289013491903199274097163890556244536455927722999861478134828985139863982661674528896046337319568675158060209368166643441963169720188200576840208419982059300828869637206044790799489627902576741284669020254156509659791460500778903054540402970815974079976152479856904507125470548788429675294798160577472053094462524173636450658343021898292267276658646761864883079575895867260917209867192817638111781943385640677059550079346905778787054404438286264259384375340117592934447487115689149881340145567826796174434408889549304746873195760639225649819131375120971758386259335469661139117944184046180298916617903146452461703011730606904600520701496430064119980644687234117114470923056510269516497822856719040230691424582589793646399155584498035216518249347792525911530776715213249283833755404924380340377144698243978495086588430246708121397344713867928262300619681007933641415468036328181908669990514542141243054908769437303938001109115448733086386762827886991778942864689231106399330313668429871106030216275782068368898095342417624867215417269625638075126087255906635488880798258885109467020611555945859308941030979163428391486040433556100873621653325855409410483883972556195539332911132262105947657606090326975572103613896843883348837599980593691806503896303833027286816265358408153977047261894298567069391901643520484398862053721072549269398683194178784410339965115846196825941718811619898648572909187648666599580983852290714497079230657860023559706830402566159714346336987223697495918917743581315033256854342663288989476328498673185642687447391172287168001242117999210760961207596722048607026270102047395427015744712243092330521790110079137223357291704522291287495375499440786857858766882545633185882791669029457545789136010061176522768720096243915000900220696832625191766036573148951597063049117009871674176795433223079332811358158755426529612598297365375755565808741161057015076310341992702749164734671902289332508277780087714960755073120994963656100125144930508257676956325387035704581443449098070297733853658909102923355845986063956872733739830782278558030720059807363648284987220201347144836916520739939075354209108547550663200610396109341718252047593333619847352370010516133442534527732169646729550813870115653566896555675210484237966716481136686687621302105865396579415148493453059220946013618871651217569031881000145184307174340755865173552073685193073287484329253079693279447164722546402487413900272128224913979068702718475856832060231960265267650971951451462085505988663910983736306569741150387927022553645620909091685081264929279258603875869955969545883073800245792455767845832961755890403709028679232015328499074270460070455268437761781651568106564569156378295802285241898764941764777808099777535603397290015314509503028362486985746289648087667486987068371590911219086837541929550491813088088299280037184798553768146158378628476456470052359861355990995343177527566580718339422046755547712348601735786476299303782570322853693563039804994146696152977648639709400754081761620999723072890557801182851631699328450574239285330782937014576975613907194193758611320358575513339256193419352063455091830510807057798095177294103075504364469037477021971141693447053016675963485089980701366737293935284018227000141965102697581694998598192578722256203530356419432531545784722867530705135129408895258086246012699212179440511434312435511356808338728051943122680588495135107975737511615498366087166748429155587676105892796125426371665817638142726040321084249915575888892154227512709179652759613324251260234490287817965815293406806083541725185466796324123761380498796421311688801190032779288082754378212391817344772532125298008683868095488170336890935013700243423619725449509979563268965578812227949810945160835536980836276292984824716479077907463396509055725260470307552763610535739673113765886629759255170448185286104707749061675563311259562201611232088748691854892745682477526243886581436252740134760164623790421771599588802959422520941497025949297043096003141940588806280374031233853992700553970331295443208365822001517673186315698732849534198594451455709748525660802445084134344406251670065055852820852063916496679192696760700747468530775245714543730152587386230512013243134302650295915530698450785982955503073075951131301219531398348889094062916710476786553672854389383563993836630145778704921845573880399186302454635788819811000049449181759143018008042978694205992907584160521495398018887814681808206960672144470959803754033610891491317594226088149668737408882785379508083359952491872579867506200052421345134127427401678376336171612143812887306912591985028995877420296306784392173462573303688046922836261892605419630469064254873839386730016944574418545963911372442848615008824478254792119765257153580683111777982510582891863343580267726141810428667085853383886330616159425847557742108623773796760621242685883728576439661353064499657037877525078963914993166251531079065994794437613797517213646133834596182258013952644226887694740425190298342733592665518695975209727744044848519574868442065967599149352657071655034078554870553244507285736232142822771803977602856838602378922082862453864183904246041731989946652219890404691589507060324396671025798468893760989508595465057329603832315848751886948900025003805298908064961165246356229802632055539452456225033169925736472134127681909742362631915644139435566073599686489411881282762649018727596807663907069904791355261531133862216207731533591659604029540494764204806617485504800725889828870420032247607491125829591279641050332557679603541066130670056791242945641434554659004318103206689987767014689343988748437165750693080545698985274933602156206241558020725786133815738000557302575929714207433267088913423145691659761212564001129099000277938152826674619814915504487023764231851062094270256277772970003088612985641527645004172610078942848280288577898297504182594251375897161152689612534409341637281103663257843179600631219284268260789617991209217381063473266495353350991413970164230934699957247520224564543756649674840832862526064658398796585931257173682577440732988222107001805500800200082001396904529564018561401914844780565369376723546713644884129691278985242010273979596981173641178770544835171477471815390171121631589028241576067170079998220263164938435593294838436552835682159684497244333864745182816339406694750604828441395482429002524697278329998509146693289354239043066838049539226050031553772687241954320383440956260291785013529272598942994216785610130334398320732455257520985475822712176197849076859721300006545227766912975731398790782778219532520945565414379271610660271523815274311005753814846952536489924927869503563419327336308896367651458426681760723197457904091465551097840342834969157895954664308363882217244535046579569662686331642255751729173590080619526457174575211524448105938285908147631840388727557666941667457912980600101484095395620647237475870838670003571079405763142289705054191374654922784225168869277855825283430551119858441703864452952241559214020372072011148935499364878517157834095485054323632363561590085048676994058714228242162208820562848617757368763324209315806777719027211872034132790994086619234320078922845391758264934405389379052434676501992560465961909387823868667173672785297735820799147964068925549508367176940763676780168635239458907727032173842976441081417540571687606458920118214158345787612118663270550988567264416683185431305193550024588621671203797196818864041556141143066763011737150776965805011459309707441924389333492293119412330834249570062775313178304030058001953938915729533620769679159749445512507813883261102171861779029465115087145354146810531273486906876531710175370488323409589194458983823911713414992296401031973272781901667831739087735731440650369872376496125046454545252222838501021019031540285100016898705765612990029716734429757765700640202910109712857733845093647247761617236542686010640049318690527914504039415317680492722205121929779891698875657485859317922504120710808330459373826304384983128142553467877287092854277230999048346123889349783500850397969162795937465159575011721850115059906586736586188869188722825744805038374382195258635113905807738245930428883550201788976691420164974616663949996599686892089250588696350158029447020362615518378443873923674316881033616446069732925538254743438775371414542775095084994688745304826729651896155650883884994309275954308649642238118253014209634283044847348667403482793281736939146067091729999540496226107761875286772897892388836690477398442005869183647880737926248795603570783487702554815986252136222544757410283683883938427606661904321637100318318282295592902119732104116101766509154102428523521339976318769123454256145361674772093362503887373469295610851311671693395896714664809334754001661148442909821569810405385098257134364547412799102345644444213414611384546067588313599861368627398313558627685169163272861425712912131115366060265123129749778210340623460705418054506054012201106928551354544775065386311850725180231571663903060011505274138251041867973718592693203174440465595059464024969141241709343182823550938429031538145198921001634666593586348017074228963006317287818923867719875510234134199434704890355765025524583655085937293941867410438181597913009813116072214041811231359231342468698923061713231235749191950961214172522346145117624549793415347579200534921065223219794936831441531770882436573934114065533838342129533498895232019142598697716935177303156030660758277008661999551138568088487493669283300192151031442117568250138546674549748472083030323847663094342924546582695423584177624173062790228829315587705823301149149747859054755035530586818509568604099161505999467163538066484770002370723433404210874099139158923022639328884065139651270301310799224578662687613235055494701339461213753716863728140752501344392217801719387205126334543057077638268995445610595892974573847153422435524724426032131238593544204102180064317541166154388103579101790918838564639619118525817153751519543304451094858097483633564277040747380859332288942563165741655209234273843332841537771098901405322162976867636052052681201027902109888582468781063545151738162901763687353580729332667382140627380384237293238878454511509696118948337822335810508048501195186549794137538021743527244494125842873685558790103848960192949603776003444911503076287245235077240803049950961393490772537992002874377147528615017047452627706232481587855769503896033701355017010699901832761845651167832503066786801404449620477030892375581352854383092087678823930722585731740366565884215411275315401880028931356127251661730360989254988145683505349325718871327556885258315835995515696195954709974998880828199349812739271051035280791627651753945737049379727408152355775767035980403094747526834268897345099262609444731454367056071992173842208960332544739497208259431666902122968545718580782071952809298872283682843947525464406338498379935027998357721929672459835716165730798036869968656121377280444080776952545058681592435728971970764872657744748072118247870576051889512160700038159154123064065919499118908761358300021121804245358463868470882891125034208955849697021485896710563216209243336641711126115152088334218723130374154521625331036824210265725775162647684504709211235279679997712470833274282925189709161860661777185659909389781268345602731471385505961850756787857225380949856679714270397237899895761574655903019410415838041537969333993046589043426240634203414214094652026914062976016944674556431733246484479388554244836170328481789325049346552925749507744278773189806728003915978618301454230009915180719450933023243601116494757747965022092108129012515989203139086157780642013963737772534931962770713011059154451694736099698294872613577301566250335745070076126519563664582356424977689791796961873524094973468556908373854995222989843203416177937348364440382068554479668953640655864003254481738678561196906793001317157794309039026817109554872180189133278675122457541379944153980978480859622627734736233395254186936066629279553764804541942114808910755234617342210869159374151808882528105209465794608587120522010725417511041178234957898710579849795965720731081330602798559040335109177388919156853977895534425106294693398677921590960116861650842021220234767939857894298714409218240218450243111172662325626761083949466966719182008207069848709738009772064134088733233923326281435633734370286818613465197855141249331007101510760900282290113143729300938685061491761584466715228220573053008840401507166272531158885186071731151618124397181631130659692703133476200184540333951405645256981418825062986501724557496552432719781614520407332517626082437978293910866084861935855196327816080616979374699555128252461758382481216787446890237666805684343832665148618092389400701052835464066748815717520327953272401383614238960779329973339279390715249964134182410231895082088397328121179234661470553486855195202139772016649514728754556802193569447834130508017496655617239727485502290887471910575405141307895502205689415328852983735764310598189935436555272311792516183583362558609333901210671650329888911404312891259048193087143736027990781526055966531706359510641434913301102150269315575991006706096922565071605010087669232725933637360224495086674851184553014817460843727962081381086912345243710922536474476935992173165582868974171649493677310411335476515232575312941244051537553755365199082930513547380326742847438337888243592147629014606991310829993760689448780028128735927767725053399946540696390663817301564694359489278887601866245710822069005984482912240184667881373679546537470239917325052989107328876598272395523368757633455580817592098974179953560425620553454731794858479938468421288799137847394553370053390739810169274271396511678111350747049990997305495814609774664190768997233297586635268989132436011453190262552938685439963473924738027505913804506019942845368610647456231408328344687396509068820578785294094794833987317194430389836942133386666676132523162659825633545205188619575302395113288808915297563227629508244732147335375412958303969696021725737240101699108796114269265276722459548139483997337469492052902471640238571911779052248661963500238753319500154267323998651937191765551916198101314838111032575702556339488404287641861049122805954771926547593184715156632254967076920882655346570650764056597648693574770181569391580029432200705457895007788196603623759352944659196575143323327988082272784106182154098245071566622835062152583274932117423424208746058141561298051081705052711390014626684562639987090389148477373652209916377277848903191533134378544731951611239554441996019314107930970127921501280778063576516034603115499926042398983295598459584311514912706279385684773477288785736480858001517784391454538070075373482646372670174342252283494439087255111586352387227709195302635184483154771647715744115606546880248651100909908452678366629607231000196174857907644573733566190606966389478110497332120472843441334969377169550007988986283076203218148064380606923370532079444862068272568839310786660992869361334360036956530891536481070715929575354271882754446213010048245549495999043318230402710269731797669579525293294767222511193882115489930108000235666594081390728598833144177646184532450878898733383858611808162855777540916858511006687508261942526271696269270668723703443448160918357436016305445616628127828077065490878416469667791193883977182211282364327144875505118986346755324177565244825458747951948260998082629132747919656981194610322266736901307921943482917666725548492538984162262158835996322213939743454415889282798188796843640201965109360474580532598557517648363483954558379468064302607861975299986050769521556197982035208989180535244726291957637616044576658004857786762316010421468122424520268019610119294420486532331918948740749153718387877100969045549001452706743491409853143777143602239272504532727632357210056161494708821085513725910622121121966271131320159413053612174482735012136820659340635625184729525627860870536188593914933250886682947269217521267229158553566083637961246739425266920926073005317436187617237289879680046652295648227783422601310904022954937515625043041143077318468446813774575954212279663329687484431054905447859708544231545164448330286188323887637549057887731671048475982219580331846950778362692998324385991925875614325110591981366022638505462031534416273729859570856755270635259767631773750493218844038213696053620744302281377465054940834934736936705177015724645052557123455919238850485905422756220312590810415095170887524536167243865621068503484394821890957974748175849281441369224587827547059568405188013717781080614442670933285578621840542540106222140167912415603970204651877774385360230944252917176299182989265223590952118714689387289594612215333107548041127615051321736044717329853703770430892033937089664458959234977150325576382825300508182368315398217770026158134827717560255817929108366427790276401401919638768658869652278514929100818386251261642649869668825651644006525456658768164604181939604013060874945105006980727226746437624544721918575016627912923445290276662632930584422389138045600833018513477166538713818004208463048999764517554772196644215383420565803531788026118126254226130628075840219821243531600573789242636411825916003787350907149217504195288395607593356620834078912321237564457321318412288037144391395190587954120137743137521343222258546747219976261420102496840957034175378011894744867323995960699676516704735315761696574251834823427725628048241421107469271189285792773047910345046001306558751520409433330122762194943131264773666013421630335779085238244321937618154868671162409591892088404134310804030294255553463591527789507561389227131542187257834851951213067246484943133613393316036468969800332203707047553377085343386441295555886002132879769006990363722048053446677075524102298040577103159153769981382727454751005895373293140673021329678255953607013443051846189277068275838220469349034502563325316709441142869284393272467231634561375614440172435406262196416580865323467234674123413259443367490274173204880148499322459777198264029922574268500904481492233537975638239127387032460134441904995853191362572347176876171120808735341408804677619475720369674780508822839568647634675343317505363755668757859533215827169587971636308483626093986131532909106433911239712294333467476750108587670856204356350169059530077373879428155283747487045841563153819380841074987684020726283327527266308760922748838395251888766896012260004374866702526183375148430851553122987140067666224356175472594965386259650245059967553112505164257664921763217648314562752569453257444751344491281654401181846905417106089840184414119875335887683787467145251514851897427516780586414639840268996025970958742670594422140738655903309140278745279093798211320381439693167445969124444423509195740426431791031770361420424840333573413256871892519722284068656096122183624239351998242409894388887069598243370700915838630230695742967660888414452842324319961313366047835401368892730991506676679087989998478159202375318331941875702053127642814440809303120301743523473044796723364115269170421136427354276733761042870912902627320359548894636666777842420174629020949546938356822692764632475884984742194897434258349999253805464077529919720391680514235236684128848699741670805119854379198840359248389192886972450447340756497875107608769077736771565142071418826386955583972153302535720416024347813088285020215828531691479099488967463631000512036097474544666930153745946238553985057747945835439565433729897600837748466912896681333935896243567257782787315695090885262361861136424286012818216999211874826374266178368624481016103007225218663767649060570277716235578084809212384153654273640361138353252528668219370294053448027954361024455829036296743817219903546578835236383487343515598846934017621128526920768887045277271953809286067201221057691289913446429891081672778234897741743816074471565300318447561109549967059727765694718867065764118835728868875785658796555360949092250640481527738106582321762758941964836791702169180409375739180163276244975307470580747228547276034512566036294874455032619265072278590447300052056560732711028172165993018620652982413750928140398480001839507252205402647621436880656685009973535431555551198980791903411896005076135813643339805160518448880935601776599495474074535571782102448804051776901596456211445382096572399769986260625543184886546506560483115902964161643045759843558445429788897298929713232708823013230380973328896194285446597557490509738409604661100780531274950276245129007384347110459006783756972083741240764293048995023000642775523188209443001622738493742104334581459529744259519795126285432318810228167749196486040134385907815668392027406485589903431785665235932346873414509182265798521967145517336041019954885725929965643678374333649826021142247240123677579180986474833388791645996622682553525172682696148955631982584847705282149050447275013894919822032127214832490436218545464247589765264601265814504685176338942408236940164332525860499637496125820726300811004577896396453524401360244453708876349318469374450075103115874995850764963951985061337722306756040907300883888879510616767583024228702593262248052914903067486293901334302393945688460803187984030207374288954431058041877594292332954802254453686550161934043828922036661382199434858283743526664923427880853093359893645525480465391434122157526939039573383261924140684305931140559746150662974727435649096621019958747706386094616018230462833825361102472614638246063065023350586037006922499861872604221624295092631865499079451311371154110355390590530583022679659789259808057281863621600473247021187090180203604734216663278210098483153856177177172948441850378824753410221628951160277181458478375660847046446341724277376331060068806989925753682656896731559598092446396535308634591033043399656791725331034856076836713431000302767463768136005688938889427926362943958074565722145496075598864252529894238280831101365605199534463148342309338704846761000413906918141361215574016363357542872898066751107637942263191332725414378700871438212589579536911286503988660624843204108751836979069148979932841320475731245239271296676989905145700947739477307491171728593129022715957759706080635306900060986063769195007969611990981765190747488447680254155376469855706000095319010216180188483905072759151000539472571365167640014423747294692195033581678045098353538039270022119215876613262167292299240922658511722509953727782161308399566733086696918306793817175554011498669971584371044271116848000883240801915809440443527725714860542138062630608762262372041265847286611615780663821797633421273584966622569984922124617285514158101870632240465747272060427949348938398503994545574293503895816300353404610958322952425557645308533697326366297688604427231291609951436973718718179616744678066160109517398356782574461748650138612509034085822346592956416960688829087306815467261478434580467308077932822612575027393681098015326224503746635389881782666724607065654422718498019499854433245863364369342461401729112547560825840427736309268831493676472024953002239561995644480479076046011837596610265350963198871257998089071757477576712037557505205614794672304360858798982208534318348905668282606684111062073430124295206134095124649680675341162779031833761024680272526329276108221886172840343085493754670116271688547460294604947173579415286789217602868851197835809470993597941018965056099981793899531533197685513973384803649417357130731211152141169042807519837111143522752292355716810251191834301372111113106843001607327174045261022806488670910535510177802946638684213822037361721374966714354795505917247448254228150841737704115560383277129000549840215452669234528401284813022921890150448370513239477435162798143201200270120146953099024708652852554668707752777396775472948944334482436281840444221717625608387817245485698462036165878211134572106392233944882931229573238897348686828166429856694013480779932710769868409772443497184907556177282733193569472465393314160516785618032638277844531703387546476610451859039239706520321807958300352198137305571871444882995278234814355344280933997193178538946091459055605212092157798956476263780978239078089826101184712580368506488052807059948605540844987803331957625375180301046374793405555404239846443360374495211734668076744172677489493758571274000937744199620884415532784110475628574855893438271154850816219149381811300807431827040065221940548716785626008928982547318658154219598743235204960199438199714852988241872006623960092513313819711443455736197513267291180836865587785105420375520657494635461858951885016981222821595252956890773427577551147365916315340593570868132861673913994342051326801454122995988193506874307961648434783738783118583755822207493032882782007871994097409523364336857096341540124302523957147509922486497429888720152993143550722969854995048112215287247619127149479140015012192886400673865054060882681027454480995013314010321968281492199208996952049225683598442606757198953375907408099460879377156157695989554225726331315973325201497278281004092998524280711034713287065670154526009424807748273085002584096396771505167106732979250049583469319758157848202966849311158925069425835629766181652384960873024928909027364757797659008446730499727813947528486477270025045420761689447585363516432132143645133387667968634436912044881862737427187033412103429672239426756903506379810622499308256648164530429186656573306430312957400620984300673487682860105594452755668166562764546089969181857524076237595284911236877425975323047086446301760212905820576819128903632260805676191926272206353393528643409875040455472584801633594571905747023973346165751251522318927176821850808084849960595689804866495422802799125519059023706063204137500334980418661178247500455654845355768236241425171416939171781276853360321535413458892830889092775150645839428543118814085438360462067466850587672606550682739539262764540680323395839603275870405256491393026002582922411105236353149046373550446188241590236988070316768113135603467555149878902727772956769763362599270880328611113235637192622541692014603786616535943892907827712210297113054069436137055110677603498926591885054674631859642759038335160613209307028129552072235190999377498807641423655757116315381606852217423469791439786779789769839101405048272968808500536916479464249498881844853375665589288317850386095630020243225957868406451121634658989392094779639832155227457949989716994728206065152974107526400904576414637413968819154746367403662524618596373396754571194108533467437923112745358943009459147595213221976990082155927399785945038511927509438084151744577136269095479152581270502907936713221554086690836020848903142527231339760662034375507111579534802109786095265697593325993046346245220956827618753859396743703763240126277464264390243860123328736222228400299718153242489477339693933699754309494583464355465980063619559427532907796649210196995509823536705108601631803382712586365737819295057599612140042502016790018985198293798094977509275698779344340469923750253274876787907868104841907017862325241672998106018693635960025399099695602840031076599520752298603496643381569528760266749542973893960618702890765718195317070805025166481035629451965019935857944507675055668766940810957774799371630743625375932109421010954696271815542659408299394720942589351459479142744535337491693726224460528719078693173735411237010987094098739497390166621957798411480244426354386848524754899201461045729227637790124151831269658649108488089067622690789110619717715252447017597463318384790780937590041636013124629173151345812376549488582636604002749094335663126749011787379627734407233396387443426893555217554986583831325044652672536885916367388859753661785548819388647349842928585033670346716063407986113701984244067459221733600075252801182825264933659205744875658164319407744711689802555768196401058161545023371609948927718725614172132469999199603084580526888653690775610368450362128267254140325333693089624627620283817920250461602325288967193957286200932867278750634130433685599290687640274709533429247189676598209744729126293817137782909533224658277693713621850750078391408318070439514400908902706790856895173028881332976386160231490926024994098180879171383133410624699412523787507743682977914808938886222541251429590320217286236141304279231216506411947978642562083012810051386729624568640967673376724847951673063719978109160473559624965735142079979710661000720244868847501302237663555496157559122716699629118562743849451853861682392516590770120743586413673744208579636929725326204793684679789605483021393183276243740331644418290764625095035001457302884389462761111569836235790456924212803433972564022993434135961163976835344646571750357871239228813855612021158612997285517928382734308574371917787192230492070484706099850131506684405821061525459987914943813368469045943597128742397022879621713937888224725054570431429549051032568075260310737708521920797666806556865048797069729262053190620054753809527651439604662073258408777036825561569759656044811266397501050441681261649562229169023488839608090719679058265675773724020911830156467634419727007629374146960256239440022651107608165255426309040152774611146141390884880992112341019444578880655047361972618499234149881664864106904104288622781152808659995479803591415591704960871420137748577144820371981246303316665576749209518994946698919660813744470134783851499593893191947661177890079631913888454731125580709470825433809533288306857167143034250885214868069378119092673476887343295926680552650541770928259235595657630807385261088931959169065227574612869599160267027690296003287055516212129520756524150450314165971629612092795929410895795862783151093316588987601130711519939379074475680166804991432322650196030693502684273326814394387601016322386525428753200609882490298749002629806542007081407190226825051449610440201641232201537133406779623396654535873600043531003040797144661085646641410106248620064363249992125113491922006268480720670489650323365964365749517288790861979965510714080879376960699092519780696224942991227190849164500908985532668544583487791731264216669287399731480598821595090908559549590690821501514915919502248468090856985919751484066151627370016349166524983689647218063875437484472646129315679744346720084401536991077063611599612656381760877840312347141043345782183154221099462789723728016283155653604804732493904770076467233348152985713023310430443734633442787904324584148123353431591216643948323201498164528254898604599063875580995315912632581841956328416175804957141831640924639505011297313926660428833737369796523089175616343805024607240899540370688516466735203311002260240733084776407575804728933658747035232853481046502258860956875225698076197379672032294515404919908903315108027943298651683027389920717887982456241145922446321744204496941499463965275310098234197563652320567886237357323003071617267074272635204934995052915775950157102143335523018792368920232544826879326266374843210435580378440814088476854800520320355479164524421599912530946947003051392579704891702383123684557710566094190777964847903558014932058575254495195449345495829113554095507543304602566023779547210235851720362075148786639584873738620131082654413778527199017960786022668234573268000838432747035305443022299926445062183838566547639926162718961490757340938528445773386858116871623237024192866556697152459726662116519708185683129298181285061351608390283044236149123915653062719071350931490724532418003146971153481562918892815954396533847529296543517760681519267534785268362441355860482697001647660703845808252249603377500703133555459445716639482128455657206350744759676572065504646507136615021293669942634781506587311804175826212786068290688836390105949287759832026794969729229365188556545146985448639004228677828449547176322142228448125587025517231678476161647882939408421392626072306354093423039068269472748000964005844980570068985157520792723396869009348033774141757469422701233013175123106643684971390262496934551027884054353409033031035368290080171630685221448903710156843142662903583902696901143547621303449250635979222099195883410271908964590262580607589302644207400964932704661317553571759567680257730736987946318516506948183419568913081560488361528706241724131733848693626444921383581344679117837005630828413984156537282401922714106257048996842644935204238929232805708011502092754077556406653306427482016160172744902705431299654374513274457584520425732910946868287525002173098879572688169859402290705512559570233099153494712165257514190298148228442022521887990035599693990383164081962263363134632281294600629756334640228402858955577962801871731947209494966448806117731342914913717995078767049347306354807536402693242796199343991197723638290751822996611889368214073116357378099077765575662659559314153583051774321281203510740877681249411031524792013008096051121876892298767329417379256524917997810905586229497716023281578016603945150817008037412233271028588300649164885810062066522515598857307713685130268348477783855189390333445459618321929270442037319872973715801187943676903310882274738440745547323985765034207955465047313061160088297597774174010775923511686461700980634556700642052113047932914681317231006131798530808486109389738046589850244933972659120234263766869093718616093958371022424910379941276130522751886697484480227055744411582471776938935718688948931668735229879985798088049075451423064154239664395132054971659702014886830469522256654257580338236770513868545511516939470405195148904499429819880559172984085194994626622588661905892283257468023549703916794766503003025612615587143248626017780998992711035378551636772024395479266528490310234181997408077569335793132177353795907737737595873776227070158398654755975522987466195262576834977013419258543585714483589091826733375220743586087910621195975706218755203696730654458306319122107661587234472608377668473729703344471696838870350928219473230952603316562598210299433090098406649115111658782537045644150000233296373556577107562693694492650621301038204173904807303510054419900131553920443812149970027307864463615472730727033052179195703200087891371208185906596866560624180910834671887688696161857844745678641168948538292382543765518966499762549987933082192689859266957457856410754606125786851032747205670650186210454952800943434362311810532286620173574354159712074622505358771427338384970560488679168494135874053549038246672510705614564776514529016746463014603004695577197939120295377432416511578545006022000645813544555563284697897386680680842297653414373706938998936055235281203684358657224444139294341295146844167638186206066111425419596544062841654110394624533977696648672211370924645251502080808872491649760935281136026293595892288027561500190749629768348306004621907586893198016615904260992290764534557100386538387269510295878889195237745134513156156494822114254655472783530491069042096796466871916550889385708612074173062617152143986766304197205654186425388497804317273090020860144453018212616611332015798039839704396425924178773817386158088600482574430279789624502884821893021827457433518419173925247023310228052366679318237593832389999585974167947008826648830992154494195867186680516670653686721401143118331320466709142148436824661060498652839975032953985258939700599434430373402683537664626233890634498977294325618618507136304676529818766472822684928638882371113018258169882898909047742230885800253116463852217692210602859944685343640255662131560069634582692090306936683528996587628628153757353358480648328423478223956104526553157313834984545419335573906761683986489743484952660460600608458816427881603348795566180105441123395727964177400142659685129112651422667901915403150079342957927595093048757111983467396546512918199149730677287356392884279705609960479329414259599090055209568065630720379230299464522640756106885801503155816291598320246380411713331455021083853888407114876373521209966806676155596103524481710351648949791068695037978464373398492762352330308086451743689391630135254761398676387190734403410519055749923675601362966175650214449818963844698237050168802272290478536685851599678934998567781734302697582054658379830024430723981609939833702473123108262427605287619145572402178242882230802339878687470519987426585204749031181204622888373321333493060666283160616693423226687666430297064937774739816161412999786807918624113368079605332902183230521325520016241647010471096514437462388036241365108967941144851808300653488736402346821083113064599461525218191026043211257939724594654353154045958034177001671763031785430814374834992422182330547195088931085159916612631746522246220881992022622225409006206227572144960002410780869612007542739756988893762102763231644303213009008000581815615852635883673222541978619507089527160233513919090105708620218910421625287465997325649121066788643529340215949275347238792943468852188049377501475213075672455981019079430871394508076560500750615338774972241014345150071195492772831601845681939576445465414880474490592534717479214075265491867630347403700460310916891829411289447189495336334925202043732834471418000673600859151797204941537665521830712636915852236374726311209454795417798046994404950350469809018153295864594188206064221331510446806860294909243938202929641060202201086833819791738726999191264032701783336833612372565431865903937368864132741362223105025942229092535091903339698743621196769887069131710927071372907686838688844095114533103864097722373154006235193329632218524029958258690189491846693280943667051054731287886521844544918292424461001024091136840618626185253536853227731798075041364397473553371354528896115467667679606006249292548386197881953963640769232153297534382655343196541669484303333365105159284459896541277927352870884698580795392620681719010965423074996933993977636791141878262633784916499494667930583451763113254993336060552826999183320692225302967428941974654113060646723865470975604222014017713774081464294734016265859807111477050335733848032182287528664276594138107412936231779994822624811101183930287765391449529414403658517484321397395815040124782972830911137923331939111700425748438120224696682792007298996165761866352160275858004537582963613311173580309042232820071116844098925365276742403366913452762095294397404414029868523529566986061004504266224279983972845512337449402901421919564574866943320414360837943050016746172073736993259390833068348199285360818503649273397499560338097909446707751800646902241210755195344662838916085900495348256820980296469861812948009236656853512832215864238787701749937126562963117017388898941573893925533052728724895328808320237013101372153767309168251092099896646352801249740723782357267180906231910061260828584371541424138136218832336849742784558979733311307093682232663769262149337486712665556293927799214028994429048323645867702571146952033707911882531458158831088252754614598894520184216120629937151692637654591096730154558379184273842730947405728871531943961423801548385925649114570911060564419003527352537082219032482211081715647868050589430769388127506244345060895903968179498982418418273082029372289070073585790470278373217176168763757188200032407447536493878226353420239054922771958374334879944927214607637788784289195800885599969594633071946111577048391235434886792573528965735155009822215848908193538447641909852141107914301528716822078464934692706707767168590088331807772663550636783835309962459237678190734807403141754984034737664169784944827983476789075940946682514307063326968933894348579161250174335740449224189001352000903979941204078808736645058268136717189574475662689119636910664207540736664963488245360075704374880491073024222764144103302621970716226072781351967506792966808785103204032879069610568042277012982426889961770542334218782911930413062695466751645348645398951231057732361970291943075836132616311595696707551707896810969992574073504913059296356642825462186779560666505153269695663300620339406601061615884988975981205025195866338398488509828826220432174153717265221461340083114037170154773217857813280225367099019733359078797657586094775391590702299992038125931510359163418843943800193847048573134702761133538185528231347635876626105707338347956704411203113912279104692418232867495675459783797718056972081605085055399256759923832876263950143795061454878470148994856725328448722801422542626717766169808737853304797377252048005395645520088840612538220961452222814779325079979602301641690992788219552130337948180305767024596551537445026419770977461035520369785080375870665164018256220022856071052980400766886121008350583418256578314755223794297839523784456231540532694735676692674870187100193024682418562167435919811785172974675579223016972849704449176840184286502895529869512154674242337309693576744897356937919348544687482698893902095362093516928212665431073745282280155280543904798067119043930735251993853649414191754953166929460396757426558655048949340726985372899753221934856423617013620843047550450407874397592045290779426516702213239262054422488696922950677832740977296194105135790311715670310907093292273711638066627793996900476753751362690608190190407769691627944738985155606563342353987697734169896264978606766204204325736983515551594529496298712305126592031503314653229010771890790379069672249435197579986925095297184848796830146394363679340241389376198655712226085518369684369360597795236620426127308634939288286398634207903283490499395811997494078511301761971390572091216181522560346947019932022734922151888713275684514067055166161662276787144463793902857704927806066007168433559422401374860965602494932742958147000177326524107982884689392318041208855400257980459630531740682207090167652591609252087831940692435536970164836425830779146395403463513972306398012935985226305557696237071554953834192789982781019294238421188403226005653059368319100374150566789617423262265147159667160338633561832374027620331104608560904673828541618550001895136090065875398058258489136714468414816264838593048075861367187312781349229526354204822565792307782270612888876418233746407015573875620951832072437099763566055769601639092359945654023517524492204057841634787881043698189975989412210206028409484709937428623758205154616738783041389784163500213323607962954427421304185281260382109851387569257164071782634792708255675521954022925452632863256444768911206427165939149704590628258334806750041332509981500213800837899193610108304492438859834478672927339293868809388210210680289071307648044786404975990938922627614647656072667992716761673905359098447438482665774060140265707488718277494606259018721181914232355494266664182226238620115289323441372106683629216912840797060124011892984194326061570415192571962961973973174865238947876644836829495014653300687843664367996885107093243331322163768349090385973849863123760880103361640156274830705458277911228300037153738978404377763810189907469937904120634226091012916263022064232023852316082967436404962591797825172205847463336253250546579045326848388419763818342379211515721242409793512061659131260610628036701348154173740251416173185312648692111259926803105225994287817351683549341050004406629093089819325250223613615509414773915847164631289562156488344731538118306667914717347249459251827654331929167989652654545297850914502772131241543393700640985406193400600904751722501323289099563254072289452071516823237828062531399694745537898318918789802432201934573967855303718350090707080846523755987103952522519511585575267818132705322128235623348148553063145522523397097393491494144231774451388517435219812460055947648207929577324151936378886245694475793676380901909797097071965087160439243287566297831987410484470382824563313859328228585894445641629026399581116170947126690621399602292945443093721509591063086670037561381049890987937661663966933751113475416294206083015038585548804302594945544307151514532021512503972528166354021432371620735266141818139958745950622574073171320838957137782491313656285980245023642990500217296360685526114074778421050822541534670989445788639588813388468222483573256396425912681475731225719373637306230240800572942578541711628443425811207115624220053197617656919643808242394526004752770506277463875399251669699395164295558619476008002206656481401322951990375222789367714067706629297031027737117816937135006905263972997415709770164719853637928056969031540195969175786911332116863488764922018388150406775828846817379604862578374742309109250763912528375512260479329386616059442867603420918272843214416030242157159480258113178461622833120297485007258263816828828175773624094778731150360149709547727313133976669003474764825327434325735581015848418789265031286931195454707347492352889188047795435608839621214919591326602642657772569597667742697582578375351572693328869499458798915808154262058383208566299207624453648754007250565969664428049303650120523884193597073655543854297212453741059881468762515090240337824106279081336182721319061855967500940585303323232072578443552175473204490216594555426352195792520911843785764058306945791596822626903125126508354530060082580722662689743857223082358989123611963516979079404549450329520062547971734249435958696628121463252461261404162922293522806035637199103082716045449097605107038272137828408893816391714439062264452044197298909366652550018951075807886149645013665971560427482961075892341553923875297774241154903158954249963455779401172463105938917975546114798526934896502210651005508849210612806076938786669446993128356831516244487175885983620668847499647894178397902620811832981653893242174156971903101916630874893310050786763682626837980264906350307998391078015551464447845012703032145632047803654324937580909403200812078830936592537683399600083786650235220789895243930818063554374313178138424598589731314177620249425864011307644340381730704835036422210999812678660471695085193902517772171579338091129039858109897183237421773089236557582133748514699381222555423362184171864224751857049932577779691740557363115982172745027184165470592310392248086672265430578779700121674250753772954277423015831159046466730822999704382856002787528936237748296221375166610451148714645495282694884361266588814752015292466376864577294985591293411495981875157475735469708025386023162238228356935014083854361790741182729744536008878067805111682476277627196112731479322536829923721977110859422938644070544769069366440057508640752468138377440135570227964938571927892878943128271568260578275521309033688009838247704326329847008375841329050380455680470714626979473248287408345673505258995492709840973777044750168525209525633632269039248749854509817143786427749098018313603468334243042342708005138812255729565677952586360720159387779195329795053117298027541219316371638960781396809846654451632031850394941095755654738642378691714475847186024119515851483032387414961643560873351248230341062596886468302060314497598685836846143720142112075116910723790948854144995511135654337333074262519442554300443910465191908488695598923537378366271298385529060552318282213280684104657316344075864707731948877432607268008782241516293283166380726694009187236343002892174016683631431924258691661929605852433695837490177993549263922552168182798858426951640814499823657434243530215184937104073470363212152809747772357310173626494728369035431742088455503286178110180557962853756166448907162518786166384969879090531764150854004480772726423485312470436673335413125957939624880491121437301620926009391396179703610984010843334382854967488354837929056893224015466950090682035026905599683731572203836315974776094996556518789758932932451696545718109567134856354104249586761506020142916719693471280571671891118394748817898378314609579046729322034470415918150560274433531765105606737006127330745589359416969944963373473998035863438230078126234030695630079519238481173454297344102017245220380836284742378569575151109517991306145990333928806964719575595744709350772745769219221453851016530728783494191666345378022631973354247437423536480873603727022440043556595915308392227848364323032975780509315343783290755071153509618895428617749562190967114706733923065513258384554079743344238105196004840531539951326809172774355396704493331102723892258296082773981819468153032877160138038868018041970996715865967922094916707811487972965228653326702409192564694337028765915682190112939949426844615072393696948785833585717896537699146347633199130357488933119834885225771165199968020728458986373800084572094476936427168988404100611989070303838604173766771847702736023031050577023440825841204936410569286832347857179116904659180412030561465581638729073757104138654964859723675445460134258775431097545845525271700825835117142350793290381588553797918367361540747336417336038977054006226485305108666061014674913403659581454851336404269236534330001590237713428274121811391916144825772371582039248950568864161161981087774788318770008334760152384626683739205948962763683884759580297018645355127599869322128696649784490668209338836748843934050001352137781056209712733124058878410251198443113459749596240224989510060229181958243123276139197156811236089073484369195335941654340414100060191849452188054690858487529915839108410141575839540603511204819367872587490249125271882503406084657273353893618861409537574631949322481855398814400314720993512650018988717615670918341034919187875967250218562486078750919601323165306202484487689493710678656037979255925137882430803803705462729307556995817757940080889527493921463633355821467597805352960887869244297023747290188874686679352147400492871638325446895271836018500155696448726452080544605129693215269800827458164570956133490740889892710690640921411028274902586448305904917585187551761522629341382703240201890208035977339904711167040810689209870005715388323552202008993326002027168968941006687084720015994473161107249803238363836583338075654497329285464796288420780235536384328916405047260061131148088622571995404236016533159051089599582928884341889909490630135190716575211033388702686596770615718499847209465494346732544334224550615132811941847892615761755884578731964069744041287662724470162980478600594723779873189253193715689728940313072140895903522083245536906508709776258809289855419775515121764227765388706572394493969789985675550486176052762645467134028890115304749234662574179380655439184176405202851787747676731766245592832309040238149020316239882511195191574558924815593001368535602300732046891846243950097608517487035371773874391091474476782764799906910556558404390621922668595419056203405029133910385487865760570589648546497795128303246866270017950806610211701492655398895202270481144908706667728895249471518300028801107032240326442405841765352019531461967027305578171377139567552168846772066184479834520256280675506890698066913834906400972202290611182916228144306114045034969165709069647681388579008891237562230361613427424586634716841565825734059322741222167401642278048486010785695044318130516165592777981789778377986821615561293840432142855314242822732966077543359761397375977918481281757158355805883524210162025319264875917895934347104023948088591187693140175602721055192181778276367959796685483791442562128169514138333426756446513059203753479108017176512513338889714337917273501119792167409803841196156276507444374497487050994834742132268270882297655158579829829716977448323129837104551822753516169088865179732799116213318095285671675182097547727245944328009119565142066084433638774649494745766754448220909178762973856466411641414520871515971756952430654681712487093916859304763871369822468905369144811946328625542270761906743885627587577435506064121439342548857259507332811204243644720046542034012621709692538514991182904090717805383895189998426751424788042424626876337196032699704059128595888204380913106922017214343745952003840480346346044223095044607360273434992306471765223584420059319724069309721534507629820956878840782940081702726400060832075924031640458641487661623856782981401095687989781953556913382361888641043540057255779827136077016858460642378157077815795223746898877141507813661319254632250685700238061187887530317252644803091149645317648370693324505993438953325648671542300968421371154709808740952726462290194578501470343544717231444577648990243847366634369149190379873828754647054368485573137091850190360555345593189020704146216332981787028706303353522781202069757644044333086405727445832416063702938913484151979877721626249371329214332065092532345069343459395171281576623470572550790945945307837363000544936584001211378552346348700517209792234819448499615282613591170144414373107975848871223161476583865524517787546077219309166968238600973798536717752754246060032058300617045632976584039503167578632804705177349568079650231037712640797132814572005276435928172218796779197481179278678452571221287045267161273232229036620295024786254228746971601104142892969852141507871145217235948009742474682064208917159920944097693421043523620659690334022765335533923094559581348818589215081714522847901596997586567274691665615834971476606126375575418617412870538061911450439434469733968418380041388181233497475717442844924186706542657010954933247569245623101324092826029694194325973001034445753881096462394064838958200893011701987226590672726305509455695549414682649294597653672265586881313387104204496368358015646171905255599601842870280158359858906554120887236577570551081664888411619127606626095584565959453167808485639474086595882107278241600542376008599970258368551348255035424844372509864686469405057641784452172977393842827386999323931897415044233900470336097591092145738227248622866094206994507000779168065637753899494837658844818900809536667434349441078387598891425731165996535316689713561413844847037249895728143153594272664193424931100914175512641369387806757584042840912180303769840238804451397510558167628508427728367031465625729838544146776508061302959152161611932469478384363945262599808040691570751966222231171187423970711771340797056253172688763898607775433379842694407895760259961856701607932491065140682305485941003302328961548733171530579837352864436494557684746684861580885754714959493353392323879069689725169381135764790340501690626850347255740431249615964777417582336634714665586367267451691047343686745276395406116919621454970765295612870043954916164326450543329183479986774629303619145633412396516644105863022953393136753366535640703532091168709298258581923910940053098567362199037224607671163749380570914889501591989058684575342930351445712488749734090656339754535912552976454748096027749489505796925511315290255321888834018608577250974926297064443589489781912337226203448128360866878210311234043082577127798856897398663101821960255667261131909862643993857399474844315370950597204605886321902891238185880224792892988812578081270553817408843897575918587755125248628827457448657471261932602818505184982371815835943966437924905593849285146855938534271795451899856122156932352606967808552538703503435516511723106490747159965177572737622486778812133837937150848278232410503917091438123531862864888353113943453229595347182743364142071512999772139406889124449052213659616582209914281309145486932246718966245733017706798833831398750072612472851300790212280783426109499438649585569917392269675186760236975046851326558022887790457405951754076978288074432518633502182294813037722445508837460376217701002831614442663504635013775034810184712075036981235445937027613850617501711165429354774277512309591141029328634979901051913494552217382395222527321772303870707217540939914414180484016563958354900975147298867809849919147853401159483796212321230587010579824811588511076702232196031144290801415437996291858939782114613006230099527051026594965608805222274174153199444049023078409882570369192432277597482493113888212789710464058711863242169837705821112268058922088831362632474512153887691013100664823613471424225226135577912907889413804039648877064269584952657019852220131039999075353880335373352556790263665466389065052854500578911273872264018852706205676362684417643397768984763977583419222064343087901376769034994847623470668718591613195145024239935927315245816748259424717640065385354454233255358762099660875955853291800449534377335833895404708412142803569923925824757305208300632054769865898851212476401242847031995358248127428109103756380996079252937604894132788715345040905498305530582897408436871821594026019245434507472720082258003650145333558472355971071405493986750012692747749430788048697886736034075637226235701884117149980387765562246063004230324490207137849472637786791928422699921117490527233703837121718537804650649508765681332672732917036394377833827795294646197492881257005215458211614152003786831283033084249713583926524043517224244900387276239579544666349766278707052917472446403567334329819590084368950994970657188721587407661051450226408895685936614854147817368606448308808292746368546602138277073677879946281153636680544849546164734178473751359257017113801400404290566240143762048596822592468267832739131732029751658985499084941824853072838793477759172181545449220905431670283616943732520627342682070491753496532973131492844102913153360689945501665620623396243744473235991464580945271169384286758365924661112704735907880765424761904619251984220907504775274313192012624049318560325901504749899255037494713245108877807946252143807383955863195654947358209447944781108378513507371305131447418343261241311968028556973661737779297777509929661332741797652764771985686148167895473087231068932818404475158587525277771949371242411706798734639985152818162911688533543715196265665607321454620889533116852129542506880202992832316030248422858914934262087437049587631492755405114823648451962940146091157125323183979307791552758027509636851916000051259038025295756878943051753779597553879383403431539235661634759774904476151195763510471515337545957241599493211251809036764643792573286148711690818912590123132196947775246564938984675922987930536073239461420887452582373630986407482058750160453061883030936562421984220659049770523198424165785742168779856277933393550239644087506610109587752643310448672413628888511922132331306886360670474399829770941611397112749823282552674427272235629814846377455329095323739893577640755618187971669746170878070553627606472615040427243375666560145762887752265996638540961350300115699266622258419648391574378149638812109609107049207124810008611461546612368101561630403531499897460255786229852333990320432337950367703759866500578516333198405564958942434185312840388571909951324108668207856119748540707339520272138921384915727557690589772102784546550599772693833843893179562165571453144449736289501347329505845020583899019579144973032549277733864778614091645795074461682371369860656880744444359211051413258194512922990987121388625781796416671832232137291081557485417730642149314298177060031973322256603229816250524569343477454340474571927199544206888181480309944313341509432369220004495798417979579010580693652698688820851676669576010019631153927364504223953952184012876574955475305990970425638650910204981023003736367418693282928709964058450203804677358230845850163196407675635415336385982786569113321522882064162934222484822538904517031681308426993172987275972395952953435898233099262295055804996499517208900536923554025573505456664733062420092571029215994826245282185090611221161538699044229883994798828099629607922243225620049369416902747414638845866698660009081299195983632033935514278905225519337689448854572610060961204496103916450958496562621780179057097769124675827351008756292642056573227630008778638881086609836939301509757418526151354837024116425936030407667400477282304124509478089460434848667218987498864493504912587951001011899987926185979299039949074653841228030334997031647932269352903287023121641785384066037658611279762636313810227258840346557230858851867199752683803987610308417213529292682516837696256057327580717509484763349188483108999681673097768891223072172215931316584096217726388981186319461416656440128057729225564762482990103595038828619968058361622139353542870255935305909941428885737825552466095676271054135787978820470659954769735560565521767735942644131102112914114150873505726608678180984087468902583367682398339277205227995890972784894308289141903876290958610085335590828795036157415621592599487070946903336570203830470781663555817759464951821339402213757823225728315187386221641741389686824484340997818161064983675966984761969324272647406473443625801189229133268537002198987554560553072186413382195857318774928196404629443073952663887514707130503296709080030220534035979568272870056539273789211592685720901461155310931853805736832869282649635615731584575646785708955467630110191965038079300311628404929059000655335031626042701068573851532442716473321713356905968852134981823423276254944979212120094928976633980218228590625822772211593084182967841064543231773120685300575145287737768974322134708718743765947253530080455816570786616866791069539670828099169074892389105747481437206244565132205317361573808455841263759505441394327022057913407020556291774522304872021897868912764965700225976211531620243781131723874887992924980987636946075369823014425435356424296995503957121425161429005663982426710748335391475728667639277865612543530739782124916108561743217308363745849210593912579313625366544031964567313602621155912085294504226710411260922196874327340695119762026988829145367508465708278580145704971676554685891407240883110879353183952087784464918676992289002317737663145997649906743648706062365560998555446795315821181458057784233798447171174925645901140827624761274022581306756568248351735697795265611879538172064632296501739238795682076723157047903725175762613549325349802574298034687908168633831855552822227900254751119593836800579679172897465645548866764912237495026923162548336581183640103374886775139977965641112130136041314306800672424161877390806850636204293455176840700595632381256050472403679233122818705682727185096522934373316674960954472302445931809046353518872364915801824390951162252399677635394471708663163063986455385511763404397100994062309841335911373971356734592173563049437780000246130617299890012881092447304590713587487928053180401420221014752117450157235347630366399732099943216111272623052041946032705987968138478746844595328895463355569767089660995486254177792978316421912181601871338713763114978383578325801325640612930381189531579680912235309329678168329724810105972037929085443422976336213075103945399311291637038034220497309815483749611482361937576277662523855190158314327499670632677205867745413113548966857897398953723980875184511125984535209871131201184204815146593933005635711772303017885678849058467662411865351801391158734898422798331503555194682335289659685067656182170663776317512244875538987223172733101063378302241720823775865639251316188868594671224099501222946734501665849362926952525354881648581662486328844368019418665012093713251423074352528721291279112630452141538999530448804109187006925576261572956836150072109291841803271101242255344963280259100639283723526904677103986472586929330644458455801903230304542641881509982533125143009322564696369254773214820131772355036206396917401780867606554956981022007655758423349826014361986315085398550219765054100203184581783590442324128129558231109045184481330936554284616765850578209957896322533792949708956744641099685851367845009877813359893126244145908881934755993242606256982111882333360301226677806929010836744173462075904209431016364705731056559832569197667100580638368038908088899960031749867909277012928227211915225485412056527154104328251474149047260395019851771974098996721174681764217512996811153419296697778860882632239895073553347537339296023836154516118019987560629756647392539093967100040236375699996807165019589743412663945727058323914785652444273572844434368354990430087263011589430537614343915987459386029546814030200015124633648755563707882383376393858692189315943191574506864202814006016562914056354272007113765479241523956176043465519669257460852124146892021115149733221936043296880706553206325251462216805254732054709569613011493442118126052687424427831651476716176125473269338479556204049545171613075203280301844398761481073111908116969958714399501232300086937803287348076375320882964975783552797195610282413100953582093149400114545147572326223713076126395152746557092534147306928761702657213691285468631182109316765882668021702664979345586530700388464340001118469298263261598261092281200761934367707705565196120033950422335992891902549463718658799046670857945845306505754389118243095391404234289903405792759178428456036819544708889388016018508127420938498384007700143564457936080384732103081675429268928881552815745793139549397445747048452731469476242017504139827517676023679292161900347996527765405521116353491979858206664231373119015382243188696909924566796784026900630840753860733377919310818789368962377149368628753437950902098827633217820860420461114272060079877408510510145752166752582791830976865319724140713387271868515606813020924823641120664788025534775802016121376111070411246351895259736963507582797947142777305962044061832190300732369699710126931980918514527526021323977945758037916994164161859198298078285793069210109506840480590365655567846185247958092532641242514138163335095339730157869808376986464997429613071575466561044589376799681792498765028044354759814138713476506030222054130966866698004531068548426127922129247809169198794715555247532280674159267725568484173031053656799791179621720723877581329731957635060961743920358948054089667602099454334249629228909543823320576107488116210649382206277976785626344542342715520367236827387513954655065829582387019684581897770476507967525982714178155498415604159905858143186786870533703515294317219312761931807305207218344060825389405529023812843413156999258029383409250710556143501849790360710248938603583728984892153001426432284840073286932377396937936411689409741953415141858556531244317303861991292261213226899773361295583410938879889650966559740530600516124644233514567730674539695210918982857221512237659631699256566042166180975566958973905016664779328720425603986708000036660086566757841007871601080776403353464536245561490453174833474157092855428069872106655097703566903758925738771858745019591449010593445690876274122176701342476731786824057500636654356238602433154861698233234795638341597250329449671661685024824657157400357649448186438983430285870213531375611199994833229305915020602493147870001677148559014142804341340914601369296542001246464448479688265763213922477042616483333034374173176558954589510040361208356277087136975245122436999475501202923780703369473264112072644012850818867068081141515305882295307159134650140881682742583715939478739011880150856224094649307206375579358134714828905119312352811190322133117755098828896110689471575541547324971167308241492187883042680392738340936614070074545990494429706398877916428769600363180659116017657903003628976726031214893923226494258668646976674995877537231995491140378403271766686000764267512944517630974081931875428188675857521109133874794873623610479410396013885617551132941022107569998929397144687662866720253789304996337005371654909673599439428228012810485239909251412633987165516115964776909614383433299933562480076703300474153104404586373434464873831243644084554731732106339338479585322679263608665956124121535297284213516289672028931716540126592278355668540828534007506441130255258308198507322966790385524513304639283187110001262360048029902349405093097531730460299173342141131550799495596190430436745658793053250999401839784901941943332686902164179924917971042627296638466311488846428624733657065881304509242927573866188118968685040046750590429499125038133224971011691206751234351802547075134868158418674912952304754699738866984970150545137798307283503462269553151751024852553824689880206771804928394672193455401747833861294028547723712623077650486943467365885497316232072351074255510839505377100875565437446760647376567834404849434434115334083470646900621474348844500742350153798017604117246623984590013971772388202256575589314196407708673986095565489873683837703894398115451819696483951284301958576990983474062752107553074925741908203710818999993286470357333757224805779350164509835262119074793885845947806652769265290978852174883590570638351711392195732223397510190251235651310743004797750005505089784884201205970890431922065662929808841234027928042132546692996594927265650198047654593408051538804544820514156570348320210919774219470096513508347057470107200278515638929636815398164665353407720127892643587044362098817348215700914667905191671078179015988893734869794259238457484893239484414493354177184478364733355177709331676291222069252347845449073146524604650847596626666696847933338750757014243337396725237754270404770116803255491908731867164061235689717960611210758601518586117109577261103009303494964458599505724325272360311701208856662736388230874815374180518594590775320811535200288750201148951432588651171756657638677960912142543830039352582411301562780053919473389267302842381639303230189917533524792878082945149497779697150615269640868402543738471806101818953052894649515828071037240481268917109515585820835317835478831240910807480413585450259206807722293867761034135345664761919208275075328931290723335987380590121160632894532432842853082171093629574291769399867774264675744827240371996257614458161639703364840141585098433828134501101989368462520180887538208053332049597074056977953023272411435944885606627137896197802667284227164988462981622895849764917166623466081211054886594451856229464176920470374979843000502900622355268521769750084153231385781346622511200424052671536047350307688630189748110805006345325439566804873715760954037701920222783702474289611381546086139979555932322119754532678866143534488187761456848002569992933116330671272110191991777723457700729054872090907749998034505414702522641547423010432243940001613419890814683403566389786907436202893870719166712174071079695775689788974718723538552693897026218887747979300462901902714330516052788779828450860797932891099989940408920402122347039544877559010476052321754841089066991612585079406198706814974510372600878100899470204587612416220151397446278322209813080072654069142667962883219970216687111980297307233254001655170658587582563976138877512568738693913365674062637124681899305648478227540306154223794287727750164245878731966144620529989803534747975363506533543023502073478153477113393426612997526862401128976163100334145222088964923518854026763747651942764826759411049254430037356423624619827520329691678888215942855472684078324141218071477628706797166070493535752199011513206793721539429421565811815365676653278097174783742013777601165143270744730677801352044096325467356457761707892230579342162021162776840695596517621642703138977360094548001205478419195699344162727878993350250244684907395280881935662942507280918467426869128079302994240383949760041952879674790373552747268824283708546319529975744629560104361180350770468089071858256860598978271767451783505231801634841551792595904530160196888269675547575114375344825963097419100926590341935898017374912660123147026703084206220715916169010615002493034962807848165619143517900552967785162389871609483714655284907203311169327028040746567065791622759491683883513307002481020527147471868414979827910319423061380711832759389979345598264722073427001633127144221315901790741440740290890281100862524786514954357728438804325174751079674259829669241936504747473535180134261645584182222746476865881311870214193774108119704069702438565218760380203602391062912915081936537899616739787173479959922346007774113461042324029121362408536583812105938764293118301818479616431139147078857932464990851204299508642497164613276200850702503642114707832527005934510289803196908748404846518705166470024362983362540780848000087557272452696018280806747346067385392003563499513340012035821518925658858887364812799701705125991365730948187075941416871225918682441113002930801190217553709987788034949936198828052221365600999022357324842506902354323728236350986323272892460757676091836762102241655538996830567207481915495727478973430848405239106337729908369992403291920140375834875764137448164072187267968397575383483573562586858622006185081037529062828937243402456273077367675139843333636908897848944487430877623224887540093698463969572676138145691234417712110024716562105749687495460091920698083936146844546682608699328807750986839306816763166205721212372083226288201433408549373887790383054364805580996151880150944275195434905258204400311973612982770594018526485421840550129550774853057956804518537126431285055477707044645102929497157813734411368103580503682742736915976616213035183573869099495739717024633018864875655356536488673637836596597815734371335802531203852631786589238353072673552386086210709763706761830398094778592294406024371322940702958793078503195052543169265862649346379549332005792291510138277335118800015462566558445014078841428652997249956259005379444573488867106533122919979670492410957878662029874231017039832182907644919813460217902530440915975035601015647964820339726126911706033937350815567277157849180056071761276364324404934517653471689361134212607648448226578874825226801529015691212790913764412181572447875986712977050358624805253734662108381033812817139554788668228689601417625442978122490608306026315838203519946557380212401438004175489323593054141203507267260873454041621042693618582718575280632544449623013964780964961460864706324143988772065910897407153875237724330751432108419139172084401140537990287876562688856512735750442345576400461041767355984884726221148631098071733953329527029986543148091220343184548160675177176475706626561784362228845234179053529918329412184954658176829846635685915075316036476701957613748544945128140331379204069831251703673794097571430665915298117297714109916497685338823932721851805249988942165135952856240559245890778663634987782083320564528491659257403587022095581457754812024509060049622207437799318225662091513459891238443405252603252814660438843636588687735860370571395116059416527672653660539354216283521607456697138083164115121417450269146945687950528972491011303956820502659097538002653863044388950590092334465590501584149144479141922900880384679301678500348642012266464089074495951328042623031548594119663363269576958478867745612271456091804368762608450335997613663210783848979697826506758030538874238132798611100429182034633223693249470501820637516230683831014345571985186596856194534436343922845133910837064794069783766999982609449618439964504858048910063550995630172038741913034130460884869701629436811732776699501780248251218917815674858407644248968143310120372248451487284649886736970357132831995972690866296845094318905380911903565188718613499800707054541817682637375283535224077599300761115884241084734017582082972941460844660864093505222163698244757551504695877760581920966773962800225307478061825366421389695770111485841091800422610252486549562507158533113721305402337828913021119065435459137465742348277936209334563479477990064561123686143744159534663704417375480344444797756251162215738672245880453171555533595894284074443107932574181015598790034993332269358922391642241010684109471526222602107779046549946987080369186430819332189488677750923550832703071557281551599502863088368348333878336694573728540878675525962259400236054985209252336633278788748744619452616228748558622347554925722356569333780574355060683486584086623523386219548734801338932794739398201286321016818416271557189449039780834784138277841547170267060006703657003612157568029816828656273103010705455094782732205412698961645467670158766664996973552846263078095979671123145759266877671194405321526217057800845570108142813426146363084726150523195619752110033052182749765263692486760575530242368152480978293921642191505146222397701768271492290020529759092177501336595257013943843882916731145267676392734676436834743128860028577848798569452831470938951447509766615995550105302215999329944372950562942060292331215162845075759271083885422522340923013636188935659617630113413690383827896194053097980265886312137246349193721926813536763686069444892173016230802981675520041003916704979724353536005324325421646893838803971976927856868776621504488904125879770105483698649005957837455994579277468679685507037518968520924214477744125053418401285827721410207743900594150678418834520656509633293827062170457848624477781691273340131086313589787715513593077990729266394017323053359124454156398446984323144415612948596122653112052661621689346348435918294338649551442231123075031054889509499766181598962584372900335466262674637452297263769908468359369739987056971507790031750638642028836120532213202475106739770990091923933984130743715381424589849289450796009245757567787200226739231116945204182695836828083472535298143672663172294466348922415632387559234817948629600945379916812523222839830880175412483085195748493090177517915196421572590680142675708810877099879649276960463341680604037718349187088931597348122312930980442840679962557956599039612350932857902378439455341981993677280332360861004082021336821960294328724885778765935774266069430253547175352912057552464778545741290091824245189175497487403417103501682694872858173363742715055235637195257048096681476138655496703957781699139856604769089022171280291713836262324726593007829598317591621592044094402384049796828111524425655066109102092383106876210600533818037203909284531593590354022376069707103974373684178327116442997743894818331700229685076085719799277912731609774031525904305754464201882810230640007411467709183892282389945180788788332112744318753158758180542947444510948766927902296452683307823033276011374370997343262193954643061321082043988890377819651591527404501446331634132669034907978143093100422718308571754437877865427089130812287188417123919897731268250656604265100119090846509188032131874770571869720456624374543440121629296003370155981960449100322272507840136833709693182609757786596787873998953945374684603759150231989202518903064871418108409538053813664660618239781823593135653175422115634752509871593122883118326708466625142761637622743556494201696964884286153815577083120843337150644613479543368364321874339266074074005677857867009994233612489164514455197425321843168905064391040356457659285201701823600424566228355563619342481861512655008826452945894700455483844781394715921907524637899411499084825839658274297944769197020505398957977587674171614819893120177060353568589732339926950965010970243785078681015937752853615833549509440151730421892406939499715829094676869439516881073233026299569019681221916276594991729719940085990632467920454042324336284641108857801797361889335542849947516783053635536222356591013495165247325171014985126486884112799938123550436854787830146293569228838771620093756374840776628868475385843835575051780572232258469982138741386938509928113292412935345920964567632954256027288002322024944674361925842840209003541308174167965264067021763493799279639866868203229901615824377746738588605432903333828454333854442313521612657933766837354868185902725192029812145677594840634533448701921957508147958050034067501678404010053871201824094752670340657340813650440133079550857322831084950035927248245645703956846883215080815910742990673560548714766447776298384028962165756839903996552713941153778029310158326307592218322299373909628600392825702808805817199895961025978800776298235521012268823099692098454412014562580575113878193172397829277573025538067680744292239482427454443005127018381218508809529862896420675156235412381881424665983291876661043873077086174447036477430524031295535821501308743473704699092011572593261228383085522934949226589312262859849896353425231123375737405910155722337959259579450226917468842277764080522354187602059715739850718798666232533775986127474915733586712501003863798749812572206866650923059244941125327780872013991532592315739205630462920636889841055818679139155282978197432584589739412497552480791188889879016286773936802330436840628693909907658448027636637676903115802863129562567993672863313855981768691358549167463711792000491751382666255496671637130592171963166609845573835673519800890792049544009363031365478617555270641522025775880599463512813830917576876035855660741199132111705868826225934535182768185831239264929746909446783344616283371198410508126004899454000147747646957234522079930835743012763842412142728161523941530111929496469981341088013215418848329781480654907316162801628933532118790169376054677528633866704747442067040871382410910734202388524422730184159675188908383722190875338886180848063118552341279518816295803725585795082411274391246643213068614181406749729230299504353855996921691599281591247985204836300172463317537255795280964738210186912135996566109641643555612739826728450489166042191761207552975459114734554433368483008475665331160254477913875713276607952886431763753353144650653376069851859455041097205107781999735966315054457000982181682540749391476297148517895667097539713337595281712155448810159564596323656544522651847972535466534739811653906945608958895114445034809087853937383795200662270327698588022970043082961436289164271191659476321762546029825134115923634029267303196395939055582496359752003670862767706359048159995896676516974690608562213770568282908366330714659433659397953179954304945183408669442036246650669512464081197126251643490852448154844116823386509585156763959612242258335729745313705859682029083227100777664063577182306586223592279284995208917669154729791548487015282128428348600660541187352125028001174307624844818588089100846180464045508398969877761407306445354457227907906427612148362566095549088266459293029308302732339831932463077268834669088713188471434186957668453721922359028999040993777703453925579634485593043743976041169441335909160683063200330097179809147670530897256472102434072279135983315426539068428972353992554032106511508985004385832932073679815004824193700358870417763943000194644987131501621483450046257467609238777719921846135439173964084743110708556083137463456466832864996710435922526612557730767156882517709232532223393126826064656575162995178101125083340649811997715180674705355568005292313743010417646366127105966636786831594371522024974221167773669644697273800705599763070849167356397449379918617769492324687869615191304870495456747720427189940818648511982076105286525183430686506965577589880877276645730423402951186925009736220415054753160743368476108818888146329603772843791675917029910987338407130501554777670899588007860936659707862795479283929573302418055399274665372294635889935809230157122363642042586521359917983756449007047097333874872714471416090356630825035423543832715509167793336958193629069832212792612950288824802998319639346488219172058012814738887913954521178109792666124993800802609149223436203208942699383334178707357884755245144772546590467352519111216180807610017185113072078307344580331829211594700147306920751199986062345874386506154384896255072649411011386323619780140136637388744251731992564657310348499138620821150737958338763179337078544111301400810915769687666520302702078632449172905316024997802267471135674549052414274843893072235472636153256368341394308602834954138992215264587644108871131193583939246072732057486362464995666334417173422861337422072952521480177455007134161812282596667111519248257820241594420913718220208460647455277185537622044107225802686502028176042608731788937082163720335830334002639818256664827706058683268987765309272597141896775430435272701318929706490381344287340425725286410122628676131872147521293975719041062763427711504475488010733635312012397216403781981085966062046039633698815627094192619095171315442565093937036676409412423305722407667439432821681965266057333804183444579508487841750107777276254117865295657520126144792375848824777857979806227526590711922165444838836201084232563274920706655712440177686913434929471384922255891554301354568609360549570227149103578407434331281722292280727594341271091097328971630774150816082951991910424066011584699292571977722629884577617359961637076842954401681276944328610649562030013135613745503373591287740881294437291781977051773239285713557576465394377645423808023666869171913753369614089429143395250671711185928521467704626887775305590191750369422037077375741809817762720448616747102785266679234590906428544157901837976038629901158792565186806507212644878344401448900812784077340866712972192242436210852226351062262104443163676628958088580529300069918780185199151373050654672297841842860559681360381423814644707122515782549179177289036783981757174299290370060969736661088281035326570776986910447238794502427623329713615623909376168339224863560980552523708011289724478003592254168811877441399733256559604353042022069753428201687371997245994927608742564504320868220374325631403678059953568250518239365715522459156687349018454575733685969009567636943833492355973895023576213678312305771689886418651954495221018216295480970737731395893404351330809790288409177305172264193670113251415989567366711885096440181405578275705938438578275497079141774085340796714556517036107103111932089113474039100434358514073858460131594781884326843727505241582348164035638213682739365891653344754872005012411261553306276440736518851988829476768865173844638003954973532818889295822246944641888200059333515701428410539621126639514873504883335823208991510859998708309164332089140978572545006233057101182659291345079147878747455619987072648540468802082409322768626882934419207252160546956437347829361752633482570212978125021343203090450420961818346677064120774189462825059302832087874777768194285963366996697437488658352004830293566263511459435394574328635980473995460031445479738543845406487905627172925904983008831378513415281954252403553605536055833236562770196155535994972476884006688698663043901433707734967535715820708130578355715578720991768792682809384828628323362555478322355162241580173612826784368492113331593092070816337130243296205660177294833376097421999000020541274775147956154070747450269989403799014815607193764910704305776355631250942175969208696225340333407798024453949548598750401707573652458297686776330811372583856018057585530154848360121515946503174368266038330991980908141658127907672431546441636526591753478394310855648190951183966400168703192309747088820297953040719321700290578282949455888568248524228634758336351575936573001967458155341740018474284115592391148763697756945087279272417729824490749594415468194347895018048073690361804548312408361685736917378546724677767637445992448623621365505407463431540170952465826960712952268634078274489158705633918155280741646061454876009463257714861102149422944642040652031319690933246154537039232629820119174797846250872783559179898070458518151466425280650186090551120404080489617025636280524770734669942570598321427354384675467685015146719635004450923126665328259455978214780047273717309892170792244671659864950972219314969211908109349121140478520563976471579703223907200143916745437754469466380632548382571552302022172916594928234868089862539767570230793349164401116879035210260804208331939592974771381439542855650366264476567554410862603286602399741753061855403414213725869559909728347131584010049892977505927902897772189751660141289692931037549141792818536919753768440787476482282038327002620332411597897242497314978115854545664878345626158742060265926605700671197187342818054646966915447875223748058482316450129219845754838087477871853219561363449486360946398102632711485741515432788243361015339455443002206390903925234781540010974761463914670334524472198970012561831044688459716444117814370779304579662600623238875704156986422377408154892892626782311288104093953858827957296970957911385035497827850707368450665284030134702859640683595988518055536766274835757221167487729820259859690205164972037213305911112367353016323203782090836401728130163654316709787575147672642438488428906617195476520623774292496876792015188464235402064783848419281908209434535011199995427240775452228072804193980399144643202328500553745733898262512808115748962330291926905923590406073800548775127563529197519098837706193083772164379505735347384391519335982105888456128951804556645540467032888583898280156515085009508156385811610800819443778025160941216386886079747157466456148707068072031369360698993317875095107521176564535006848182831143579312770117966169284142937766414716938088059929694613055167793354721039916523479713513392076988917941545270016538845678119754394276612009625667077332576347868845142818276931425707785229082923771433357826487728138573456839945026681451347502128609055139097220281029413724266268657574325774671750257445336284293769714074292565110316890392974242605513706661712585111913975703503019663605095087632178364613663281535089008049587564277598883860300205630737367019802675367239651751792414051804981279794123943965629714196343814350808274817967280984835797799053294972482650942421620640347642861564209318637332129405265222757477945327874775332515903796487660975299403636459974833303005947631139420270287731489049141466794587071149582179449548257129547372821819747799075040702791418132584456496665323392773103303584167847283409552000693727783136810004648364125063478656259532589643875953619617647503946651698450287216191320568084037558805522428488980634764859655573927705721489323499513138567303516402188859389515475805763993844389401084203002164823613219671512145756792356430345758353568852079402078404782675055978561987876919569884745722796277244366380397434079544840910127000113315509417736318068788739722637432878548408880188939256962029944938033436075563556807291397613846573993108870631168133845257881890559750847900147692079233739689582588093698728170286547628825542379563449064658719918477976828656652988901860144649680485529094101917638706441002418218923544533783307533005970985218751595711685589318223885443962125002591741959768173706776330662978154450286147864786815824890478941768157122935405463344162531658298260874105379390861896702571084216693320911636209436798154467931647937618623076167632853560870599802480254060406868074525826375136138667864723236225672840397974481027537310360164327404913347619637747441482819760733273115370857406495627474512905448416110074495638580854472263694522241361402388947587548605422667524530667038966596878027833039593562207442074433249835606349781121599009233958556270701865504106254168471999703184312829327848024958172023534410901076924364493991384961190616598491259212217570588106121763252904455725465302557723320251958632471204000820993432791635836376426069332528532689738136858320521594876982501000708578539999674388961149306245714009410095691688525961849292052514176144247333366646735507903304221180675741359340004784788402089676587968662258223673989169529379070977276085716037075565072660104966475373602515191862166451645768136358225424769130781278051268830509503987116475187652076759515781700022651639769409329832819341167620427675416948332173745101145476271096130520840724737506381845213073495886912873797352987644936385605937544584141877542547856317029509700167068128127162345755945298820755432335765323954754959110778649525141175164516207344683435145630725902271893394793777490583895499641407766987490907958052075939230487556780892021135108185117436129640094805461126381757286903342165223533133778988119463564676951878277135786146267196333621246763446649315136001741628124485630117757249944330851563078860444110489415200198550269382750537573044994145021522059201971504098964127597635781194566772317155974007125100117765817099410126853700081110100608618244901561128112487013006972385994065290559282423810447833108138462467981552251624558573042479146309613909994712049781223759851876880859515869867412305969820641839835459125719358606065677683670898198007443515706238475884363515751649408967973761694674283670220681994754552199833201452609210722512217713287081920326442750316987808251219278269569486258580567581568624501985074755745321190835186083549781145841295615011690361108682692774305601824873435252604109914625534091404462888653161168152150313427638667431490363231270799738467247292171081688037208817688747038952187950185300908527033170270822498215894085337970154486557580710520224147422159433957878121999297604624264532900625734371852457069021722986285565435291634585935896956918441346568022516732758472533412717393918558593582444364147878921798785982957315652647263758452965319023344143150889273199967143858773054105285615348860712137605729901239351281195963815081222238089944067147841642111064967657011174891788475102007179859718451058931919902739367660249918667041525336915140231061711225675746458208982053944362974588032041042917933898296022172487087834011332282430480052047421788099625154317417750743502652734472575516337498944153564343250654781100374245998865505397210877942844258615364350859526857056953729473844442237233911348963928546213278555744847914805950953943780316139667049846609504107100912665225398783895248992949206432871958577462791884978597241623127468738737069368484715266410015213621757914169721161874992045735415243014531684410439999962186104354035486029063441192635188788068517537115169764175268318675470073896296086597443369125871126080678133913907892073975841172746062408042021534456079101249844130085479075895639410570112489299752668831437601121680133300362485050629126245571058242853760241303492250293094076726929712326098163120545102208150198034054179930938353141766343088202651699832871266581862196946813684405058001836374226285057340020743804214511599145965866169968434077403479676491472400892203682059803073036187592319040995058981948555053139086860881774347479137346612012936013024116986187066312059606992195361406825944650429538028062294208757336949033703264421168317972962374444957485511046241785347629279956406372478264051847199157267164959292274386889067098524155010143092743387393041772374469234828717360306509024055172824143607055056661932084466737263497863070717744366392906056582584713298089720560942045477804805159039319925729548530876628608017115962302101746516521412661815743957874084607106679105945316775110375665254645520531220728878708261715056386761181725562366095009367230027785486336221653790970279661046037066312750292705922552028783112802179676880308053434698266027525841762871267740861932985072859101600648440690566225442422820111566632659089309805634165482945150446154459083799557985710759037293008585983636560582452900343534821827514688423165746617370810257551066117007135158686064999069616734389617622437572928575868529511074017033652108478403559991369522438499353571421480897245886313356276055896200202861342229188983472990224795102671305781290639698036852969271783453650404749645379195634129921653349682952689349559091813339693789479684927831837943259284233814983213626806180736897429579154757123861315046104863577607656145168165281029898317300490349280617050340954054353872707780031617700272496992252835025770424938766768384934463333530768653468552754656549298301727140467200725328801933025561632068759943545941179058321675769272142082168249991640039913975242450827841416184859726738985629354650934897246368197274961377811880248855658365183081475275644019629564431133911830237307355128263108747405375142829921152713711253155522123756205193979245718702897460911183757149290284029815215240221414927044788518487263917191252424669253591869090353842103191750525805250851795381748423113350997984996549149998510070597880142378539672986669837023860328452361239690331152944383371753133628184769673395238022643915952601191487189214601970939929687950951193345374472073148777580215979865750825775333082732722862347558415013835115425315069033652560265076559767743920785147289500477610330397819766118581579621898429451121086325935379022461485516317791889395638169787754795699704535452667895207897248507614169314715862639172041547780037616947516931697980177866449011947696239903563445355707234941965280952024529252975882499432220948292209348461408963024488120822251578773110814109549667531666455973198852183526842896097944438706059491695211019401782769145426819158417294329026871187933662623612162162606445092814744492315512547531488340970100721247857660953095027199583223199526714301057164012315298077993143853758673837177011543019721562752153948949076375349951939335960559330537180215385092572166452819109609043159197067858539766281505122685206000813772381347229803745722524244566280490727329644786027162638339072225855910729820588761483896315145499604316870206149166902373622918132859746474640250699958076805856517530896029837723041992686807172803565305668530040448267599355200831283873966433557225808580944508895438164927978176731980300860029936991814145769734736169964105556471585953310606632757584510920555841284950198786073058452381757697854159240237285561255580547322446540912223167328625154686530194669288278038130934399411967309450125732185698302147678351210879218323026000771781487735613608482032155298084681932547518915137731638971921087812073582450689468259243410839760199344584628500740584695487104966444953918356019927030299244946507819522138489222141700371816661090759929662886638014626920166188307374270319981452319881851339869076571551424074977132875446201053783108089132074625022352967592492476955899746931738020789710629700230998994669537777478529264896989670178511111521333720288827363092046098128225573092807876123420000612432093426185128645562990389505584346208213151992575651024499857833636803184154993977459450331782748101194930656129853793771731088009565755883952358854665062011461897812228814404157259937851209166953871052233079475130671059958356628521350394372368607288804913257643507472787212377666599840838248390859471787686539610818617648485604634079614994104984222126506569785237739707298175966900033531574584881883838878748640012278207659703559351072614922520060613425701691436886989900847056953325339417853760045530133620128528009137924870773877758191091550455499185968848656729160233953919460623343524878889762934295995503620250034991215545924521248393645042629077645583383549282971144755126525430903494570110218081597067616788438596050312648895589155325999048009059217198259042027099047780703692046331100981894994815046849880630713195259169937115667144759893965096831743061410691355443625900265117397441605922041982202294493456122469509551127354783152071482099306018980153717947283983583760274604256782527776912016374368702991634835591272260730798378910861994968911051701250899155847134594476622256504385918288386568436597002039428011275953452557961860193450790171504365080659032534721043969588032674964895794599598747041155705397340085341078637462898300925786641657233829099418572155072201251808812602872666811020353528213038050197814133761244930842802508232184278315625220337589536118078910234605884035163558336910935668540300425358183834441686685715574091259752953088030362514070313423048481306925261671647232991567545373224230266513999759414600372098239578453203294937371161331884868118398354478978175615739330082638949311783231301364022455359184266261860109181996474432277332512415352097042958930613927836831451568063572536070079194722307980395498583162024989358615249831010960080711175285087435462352836599008233507304401829137346288355874082497490247394899901604808273362321594627738926069314870900893387575099658361271915594096621284148469629088969656622481160451384410822955029181170607022410714611965243079716974907674134224664361501872105898945651447164509846153451594833253427515164682744752761777935302537099494201306577932532988469257825389585798919015898957272870880841480871071562452600155518584793899586526947228407723929618879459984525043606894897202301536030212318215995723059635947926296596054017413448919235068456776795668992607226609518435624065524990854566614803488465425997886448950226655017457229639377614552829354383315184890965635666173922471893844012162626098207666066164375818502018723629076435169828130570216792144350351765472539525865272521937846944450114284804753732633025129581476373181750813475787437787467754692533894247554447572113472917138138842364041220826732252226784958598298682630525660700800612781544926022184473894375212592139901130459008056192221128085588137906925614911322304081068944732107465537338646596465230248958234179360247646393913974408664078957093244695401517923087087117489936429734349560492787287150192097750317637594876767748155256139521621732248661558839560041922616027419521770487969167163014177624461696443474743736001524622227925701610216324060810373587931737183463169760807898542232534957345895103484605201229318988310995527106280058329873827532827273408144538701643738564349315536325158827576539791408229257344814423105531030874180985943316860327082957183356062537529998616011181156219429081347665318061373528971966595288912613108386017721792497404345915384728167373731184217077522508549765413663360030020946708539204063945289444536520851868600078443099822594509977740387910574844056485310608377335214729926349178852654885455854234532031872859151801160192627472547252759137189498114991181491972880327008993306731202937910102418916315713121632449336673348548760088432647969071936373347084707592095560158094019377680698695904714323955183048813908046739351411747713717776541296614548585822955884406950577242679571797289503142381909395212501064733956838992833936271632909694845627720141300164480781027356128550110303060433018129448194745443809191991478871294275576752282938140649143031870906084727111801719848219373949453679412471042100741734462311862468086962760976763838600659647908572916643332796763614232689728155499168030183878286223371463458944369886680271092411473012947986643174292555032218921341402686824966475435340953437215387759617441810404011169633450017792334883297933185588079656457414668188673340661062210670564615090873434680433921189801252990059221962099647964963288681928294845013808281234072262628351884026597789650222648387010728663530836109863631338068309490979421693212960479279754964246206045907684483594728534168551538294308825383398138190958465970945512163365663835387112928061295510248303389311685952469172900702479426370453730231165115892769690101076026906548039239097283907603207901005209625206552624670227679633014463308955604332310305050440053391595637693527604431501400880387902512214469947919854253551004421453534608597915805325556100357710231826950385637586325805562041161830218270938535099530574283803384273420815295213208802924553630501955460902166341603215859964349224187858292685657728813751869619410011850705329793730487534609354297788391136351014609096981370603248857790584102897043918567953572048271731452600559047750580315899162507621173188523916047636929586794890102748593527094782426559595754391540539171104346987764533235687845051030039736969575725450140449025958476674830762096952645615176689622102359646860628808493587274920236842664823383121412623833402829661968458083856910243948348032852994341498899273794791736698484195923063841243914323605864079177899058291431152484951592039850245862808760524269351127097171653074933076758261501116390033269124350863442864958846473068077185882153995098867739794766309696093502958307921100588242011689804609200197344916365817919247009951989729561472781432885910103765882850518989426840782780653728985387797465800845292403033209612214829886277810573332250592275271794184484770857585223225270070986661705277842679078789073094741383561216010539616415785259232319320761396155292861308530977396397891742143646805566864161340459601247460740075706291844509854752711107529007184816850262477129670766684910481615793994289850549011518962517481687233534698865152251172086857900030076592727231983720682003985186824106511812294498053548522194152118734584439482865254672867742602890331060465086500280994540364347734228408443564816130567626209796059533054224927017465976345782910742707089674513661750986496392661462343216338134692967002303885486903667540481687920639585908421634573063539721596262491507419221528350674529336345988010967524119403756725703213748353291166046287532647503684877402280980176887449194797310680100704428074048285052500970568814806788368662640586641680715623396583263953528008278640154589786781342806045183064781047779381877151091620092680989871476650906864950195403866744918172561386727248418692635160204972403584149800733398581689269441354443421962672594939175435617010171710324035797409452925665306745250145434535421347706560784559290568172827256064743583429879558857978296744658012018984694531880717992344788575668740737100544379741952607560273547425918336156715681944502256662963532168933922679190922069272548973948326948320676347810876734037734058851994185396697942686307591796828622567158114856609549826409652700354625246346540060951180836040132434829509833587219866295971531226316730368182390714332723993740953308232193520021063734777308082665871351354983353387114109064901288346948222185753975254424998353257615191577749384064652508800557176756102235789865269118218763070493000439174824213548109954186068074013264470809743348609610343096529927141408579441411817127640729299681654723538853558897235939143178709196516044662107887963983491391517783403190512124890350235465544814721674123129335808107774911032672779466462466144410386178651861382715187883415969079421227851098451828853820892899106580633399431100941769812445952950493453086099349857305447231295994691272482109606198926042386832471104477152950102816165388546922540281678133338848313725803056498105783374953074393343832925635437384665912414424826240276269676043534842927000711139145280689330059990048759909987359726782950993819708822143798918766504532121842707072155300460516617722405487708795056247867041119319103424458708115582217297599335324377976380631761867316748618247576947723991948632401992414515782765563797375301501339085691649842132258485484561501746929785927709629442079735240495206655832733085930706740164046347164526971399088265120299705364168402852691223861655760572505653290597275448611433095192964046179237760981196334889285525879130034353826351132176411168807084497586564607024728165754706928212435750761313789984220566444937226938391477763358180682869699751061663450556953535051082552075916756447322768217333469630199226753148739217927044749417251863114148864837295875182804184448835168197354822600255260992677351014596868533354113166493597970658750802478885475474060155063670688121512723113508620193391193804308454592178214121421871929167295821869111138675444844960956956334079468725564166497084918950405422698299773520120084634241153258473060739585480742292104018480393472487754911940743233778010102130474636449837992171048021623706933201799304458882477428240211484399231552619637166671582581287907186832079147430611994496344425334788344178906800942671853854564766649501483314677462134525962030881047208902318553111290799295489582051501314350438235126753536898975679268805639499790580677865077385502730768921408481789294942005560160752006958783290878714250951635285891605519548639664970568770033912603188935796669703165346012895132661682253521542500942894721174250318606181624989479783860869853014704336042754849360569619028740041463711853169657705862959335575492360579930921700558931951929100496999827880384628040076481471699736040708486756305389035795032765172370269855687830613738672215600569905827501680444230314352215837498295309506375180063466189468658091636102940235693929909562542377992716930933730503623793133719116253017667465084706426960503618558064299146960425828356489482460510855142350234932915349859087882892980983343396977164756323005094652910064807835976030541849434321977789232385537700470254971254933774119287809289538722043465881501047070844170052666288172979361738278114804128778544400965746046392055782021190660144015097825143880393632344767977167548622403827037345840080905470038167900509343104311514858894678256043368667075819628393532123326588706638367126611079304947807265008305984519367154876115429901682066486866836581936290653071038637088628823980559339101621038618222396027535512004691820993900219200394844772360213974564159612072387095794589243778484814577601926064811574954144901110443287413016143240788928231652952878838831165377320385196629320630358865189818787979430788829336315754222020769297132542577612600027078492568091074319318611961385326880327945156907527975234526538172177690365796050943074511790434103719178791576846973773918600986500237092895801606864294471162767072981822188678395380768791536601534960608440621706491869309970280304924220527230014691978961691370176963739085363546335304452978308884185641386253115404006453058753557051011344435394626879336596553693539270368812067078887689810966281822924636988356067281715445808163336157592921540878200996314715665166706385731154503937073252857562290937040172080270588849806156905953956819523300864862511891473038386558988368143030298802292181514769982188519088721046275270286147581419719560978136706037576168883077660658710355744527511143045996150334396041989400944154550440224102697807309141457782394029176758699810621848147517212778016630621468522757864622360027855201900193355128031016116979273733510096478116594423080964453576451001514423124539960602171163057955071545922501516724664158172661073889042679326855019614244467310023331669968605584431125761482014959647129061310248303788626247074074188608905964868399893402009129969820150689052048612319548407185773632212907381086469402897665950778345733292027749911260460882766064608610116095364830042223491447301929588267473177014961249989745437439016770879198810628468071399900014391227663238944179062180527624531407512284949230023080797676795961751663195182794121347695455790402364372044355877664353391656254611270625110553973484542588623607156734063125109580248351436240926465567368347299763197828290046007986069447814445138553909561294235585309836090454624445741630725721315828695008204644332900880422237823953975433950510191023239817069705441065573197828310470492908724077946390468189164839901387873803309375733539597140380231456918745089674992742988241721861158943183209541419597978490650906223687051024763735417164831495327671369034360719302563190721566238065185644080891908847044826361490612873164963056281809556715014535850017094958710560400092755458289437217165967820676579454681627783485018324037075338402028208888418462805384835807820657407535156708042269622681875454561911625015965572073742904006340160545317771076052946146871213646266897370807997071773606942615202583648090057360846970026048085021792719278555904376720509039783364827387930455664726322504259364934969417048648249338458337872981826952369375152121922096657867235129551085962139424535313459105562729497682379600011702771759719693492913162912200176778986015543467238421644547696046636687069385253394885301669289332178948253689805794165861261260397585771011405229156398144230856127579063667530044945616822537507501637195755794382642786883225950252833571961408365091989139410580403205400203428796818993998058495514387250645669417902698488129079131200686490367386039768386531580916047316358630721409139309648394385465100386817926862849702176227806198827186296173274889184229341167971613639939026186551767695397587021282801866644840258447463961402926420885482005785422206140023078236922981594967227210845113289248667880395358227589404480306587599773939225887992152022752731779915993679925903764342447191112330787180368851140480133526703680854653936431340023632247076785968447650500196099185250442332605928758442282882641563134969657072824753124739786624213980229339186903962256967892139053874671576005763348202817084469715766769096728804869316691137419858765074517872758639259341065534843436533362886835796246919589652344956120773254430439632248626982115291422024436460435024345459489826682136917704206428635015628895090782805842202531207490627987235395790192761684855098102970973630570142439769730234826968196798946520415573631681034899015057888399822625409998085773537075099150404041503064442022037315644205650294917362604973224135531266658291659169886635760101930936016014523958463723950204597844240578699642839295076786493936426326038959636330808025713093053586361695466807398271856609340943910608988713699635709328369707467392941165627890343907019441675694135977750327472406425996006981992450789964410292900044575776290382033346187762790245002125757887826346048966475364128132488690307056275409219394979659553027220453071074703481923483758198168562944829010679152081025220662669011014481749229353102019223582179436090463134291368736160268032879623822153278206157858605773913122314730275238246549412081944387349426270259117225545004457893231445445505279197780703461574063068822618892421031148673960524414844470591561350672376745647946835720647265091716692136427760158731005393423528540653195680695148445461697701552588688107673790814613777305475056060112600624895066498153458107645933390817569066771821088461429106030126310764051053745193013627251036620083241782413172815130252051946871029638910571248618842717293012036730402839677989604392745261970272011647506396268348758153941089766429475043270534014643765782078399888504763659318595952574463114992142536880153525159356294859885602441559295670942178998400352611869407890079986264736159825195422222410842271039199786586519951567006706544932484736155128511967067886699359806519299200150038172332002955089200624921197107077265138981910943765727753977787821220888115921477611733545082715787405407664238991221618789108247248046504990444453007834386787052963326369570146451717869318732312239905630174711918310301760108203610761545983676034068933680495432801818588356023577987403150098680109081871775445495828383182432726792142812436613114116009621439148796958930424690799951020643979378458794925533033264830879503152265444218419758332884659863433852675294323593850010629126241812165440304977548770318561241432465800899851125381015041526238336580975124717180678834624454849643477199874318062210438457194204739237696016915207538619085675898159478902954636100465341886034983225379065986651498189929919873576388807305856733583296245187297416440150371392079168432549203659629492509791654685474973449518384697220142059256627301895838454152985987812728290558695385248321736877791857402207400613132055844169120817147946480828538718637786938827468424917940654130943889803660811790998296230521487614411335302747296409263409559667866444649965364827705210624610696759455593792895786993309026369633165367082180222867606025220334305322926412952973743660422060747926680795814214377014306575465422754659421342446844881347242454266034521478251363958390186414818737741021376100938732275500554888789710686552176555488796751621911790319317159376925771553656729874660754749265661439426978356516892072008220626802712349032635017270476583412106460908965973420029428537090865766182486887873402927887156371235340517051993733871388880870027589365902888826345921225655854040972098497901412143981942613109530636003910811752191053985586990597138615510072131414067792519972914032825683102186887738367493360435164811900948624509743782061500779781040547604822711481174725795880421566462600809407445477717148263004275509858593855963001963115372495106579461778348971852325243320340281490472882814255847377789053535915984326180910471343162863322403961485661879409447126906817450040271284022786591435744541131003564353928073048586534561053772499429709573747262105851063342568802081328842613825144669163241095426862748565860773070491106481404332159478337477058953456637968335596851148466238383788026883474275190565579472753821860085123733560488354696284407681428991255309517235244548164948012596034853002454658848615520003855984702230392080999203343524099639256697621417662859483403345281451071019080705683009354142458793875943695165019605681814048345354286716663728101108540788158288960109970224447832125026614651914824580796969266549875778124763334269747060429278417952660457422491592456725930141211819766022897493097266533263178185465762824379059964519251177489501606357716824079662475052081810117276697784494102888615497965786005428203332785065877101028164033162260332128947151759906773651360365038832751181204979869788916044632296589150846773139986827549925507552119809866426205403458147528955107915613838110553820677087231799190203868954625599766085802512201099772873459451796424419808443845851188995333814475103664271617233930014340268110283413275142035309524993659221263978542397522897899925134700377045445972619882610008907702991580031294044496085106467482577707749215706079802721852962631119784059404362597135408173910931286547546379626270155386210136556854118465871670083916294317772078301265074778070454311375272509335036783354068444557422684372456687840936960775188105422049945748458297809828449593668947445555246786469167582874371658512331728722688622976265100621736321216763464945480777190803842409021225944783492253939690762934704008696102589727690431445178284660764681293460872609605076063853604159200773323894678139568853729311221473885214228178730219211328545312747166835289874348731374349345518647992518107873077992891908768465055766042091129730188997692157192878550349286933691785333860021229368712027869835974528395740552510503116118233945928711431349518817953637545196597080765277925087523792300165580105731303526575895129977388244093162076377658561802453310957665172146424016086237975827292789577432938777436742675296719525596135931331869798874225861518625089550267552234429074674307862569346841023812728706147910667725200345661107052017707887352102927228142820680876595121981649599209683632810475141044588122073420703498024572756243169885702851956338683361350708610971402559963605803366847828706108281793926264524059287307789095778131748982142370517807174301075252102324344176730912278244531226539188043640182772411180526189714888840820503583157650755723509327718128012482248469911681442402067405267202948865036058692444363937189558659628188712213621950561352949043033832676226314931152659813222353130444738298989953254399761923398420528557693288088128932352339242301708430770426272572445447990183730511021700604483091873901893347245616505114132049688634927940388280427639850589492020581882559493455171111559929301004840629791146810989291277701220578328148752965207366213531920618744892002397726381311401108167972125320420674613690063661052184101396368731056972895577479858520765058192048362733049401016172090325645546686864798010072450685141280573167640738277425535286596985011139210306100992197046914318092936900708361427886869632866787388411536329130277279974509932135547288893547893795577675407564924002200426389232172385261877871679115915112223625999139978380259229541876624477646696130122339613714879007055661248663781556326058759176141628036576363110993408183729958488452918536419596002632754716189511888407773239478339358716388236156880701921428418038656995008147556443854517885547626907883401975166810262109998000854325170981068355045577269982989980924492182725082621594331856692322523905112838750022430390102526734566626456573755435783312860294524709351110810873537755867722560822375844148475757167670479469570086781156095127421243216340004138381821022839215427061753254346572375665572378971209347531451542891880950532380325158680819064210106710693014419860425438788461398430228999009476951601656418880290128146069623085865862464931524446632243899890105434975561663783196922957252493524628692250270058991349607221430456215855397094846601940405615872399105887073872719170758177076258824184294281564445042023883914662722987623918174838087730398424352264315290381941011389567028830814814339486998747094507564693537981376227118433789091793888121260832107783028829578767539515264388535298326391818507444810573866971100063856018129083835697269381941815685851616433996642966343923891601481527502570211823823627738301211560946843454390318626014192627894385520008831059318138627477549869898890645401533588104939788610192644095643517638522925879075149431043125302108931915802409808943615937014889197117456703328543679044154855055680428030494593177497839419434903135692425230040759501825111181890413228090432273057545868166886913327546187464643465464782788899883467408712225884609077550372360509054303125232689293374372239612333830204316911381643601851425340643758483808175888393501756545122605581248662974775962243897743465282779394485940885113656697874091483756994897219558314384425661863059212687593776117471039974203567905012604742255334479287862005048486463466897831229386984703524090700032912995907426108016773685013382373388011844606420317777745834484936595190696505084695264479638759164893927212489464727888683129012363368062919841187732902752076026179565727862529568341551882888471393804510229441840635484763687445674154958525065217478793885172288855909825521479029471803352959562664968749836498242682921091165096652186824171691633204976013913705324996477847020533878036393616263912584613453312252005625963529943514858393172804277859236315670361882766882197561389418030979660133852035689887247233939765270446775007361005808338618061244769505952440047965050352564998670434863914931093841640354317783457403271178047683694126790747907790574381532494846890811536504918786992175681707830296033193423199828164945368235422003582384132730667262037991270535013875408461211921583687586356768733490403185323576455964956600057170717172329057332537766155092881985301012012709655231942252523625141232735521800657675151272834402187797640660790114816114418364751081050039418330612541162286670054222156812584925315054967129119388686183416732455342415215270102472293778559181248566990703113123149851898190831542012869186215098516292618437597740710719853811805624574263402388037657866694297091731169633451782318618112507206092047841153235613151727502312971771252970306872409286853096143725561771406803914976939071036695769067981326842052560220418560842973971903760144467244138193817152716259325740554470353856069872293812609403812239830246439239645320995204520892557977345819864883782582426036951057865735252257003118635363095638789586374286855336140523280053816253006245561384267534672254269024870859765648446676573417677438375989616170347602617073312540234024934270569464859210436373583332323245183575208570497995180814636437524017946504064424091279903574277331777277414287613254162335934201667328971057454882325155101333373686152382219131043325143990054165358732745935624349329862865309732665730522684398206573053716603906740892152385779484130032320231062408292328746536376277815166968208709263759025410384054048877287953117784300397675127097628719795709612896334406708814207870787294806151694678299285147818896350098537704470490224787879928675825524039522183620325831663035202497229793857448571665004527690100410873253334531063357600531238710586083256519276249340218570191596485526990869565896088863203264300918395955548758616289781890391916750533020594223180458380469500649657181960009817346727398215014392456592456007595785055707110637258206196527031646454521484177354592295466379917894701732539059416008634857573895814092597138890395342364265805096762626329308258864508796586514696505398627389675346177606055149220853702852704670459327030529819373405615655240493258533652208433580719907219172786933979502029821068804994067861979997536511170636722597657974463875992104580633439511463150361772671039767861450118430605932930190760605155223397939675844835717829237041050852270358005003774579607277202388206707482737315420669838205280347499405288064789054266588279358150652497690730142740199962113459062726540172523871764185131462363095840558351666703184339801631451172858016283637607587070880250978521652826477612088133113498223130000970232631651810296280487463556321703101213296983249022556971736641136245076582847895998456955835475521984218693697063913063042868214828050186300053118836360231772129284838298184772227424500063640765258397004881107466531036971893527088259214002349703412492397423207982118770084423955234714223609997406998334245597211840051150308898926573656194330212491602198680338757739458014620240478384195651305346248165379560006692828149051078317782761246878025554411853482664082139968454287728117403367638826035132385046451417244623277310593830808927238989330936583620870389215675681382056581067463292293702948522577919727016708010137252899187607045173828678493110299346438733753431248102272171225946463149684914635891045959513187755276245167026210543425386046962940298978229274911491547135417866318812570586387940385036484498201962823854754418168498522638947501909022567565255873330071185776364048241108848978032270513228997539708853375012907863638832664513212483065058460286026444326878400679269362402182376266536851593197260613632838390737596745665685519920875223166518963400452350228399120893363986608391825932275692431885961429864069794512718627365160214399958737517555036378766143981422388141829005603676982919228694113142252153340738440811710122326651968621169630279178800133372678124477997542052576891714708857449056775981952618561092590934632731756654491007800174742606465550403721426219190697460715253254743337708542410339473977273121496245871401234017654480448117326090572294561242116521015058558347075338324042780623631119815951777478172098586862943043160832680406294565336002418727161295406901511137216306252438350593522258069013377012480496497283508195620331608820548232173442167183369165906466752884650469261700505761942959867623207049254906877506828434449448936541512161617476483663103570605663320025741716564161335947782891659386070784820619473619232489112374624918930169662903389629246894204728197476231250928057392104892712627314454727220140973800493395309492166453584721253254306197860594017604810238811485203664928634138432644643631664174976948431435163358190377420862404801120089817989607315579590662945116077445113478164089353921245779057045756344203055428187901596145227776631964550441939059435626323233202899890290065903318471945719957186944953105733694079550184233447982424239797092579494525244255679483195873813522608679676571494138460523746185164105965388493926617043696239260785480494983928985178471320363786006266452823379036384482823745296160902368673541108348456253562262583751653286157424322583614062427220075969487137201037372563516513812326754018195800368438301596326176037329915975608833525446287934545517781061469467402505193316582362489234506381010956704153188968509544046817963968055343091276418185135562442254784671876201079789989044416864013956635675884394828174267073390943162266401812566718416278772455168467988420522664103380555604082157585688581110487761655978990154572398984772296399753638391690044908311034497091681204508528727436206355652036173090941157759665122022601499718639791146955354604978189917015372405068259812127385234388414909616938561568863977837023116751573037014632474965480813799563806828969015172908804974654521518848201520146122272377032375457593967131413616926007172279416755719162417289316856629115728732141011664287489512722949323394644306204666643426474689276081916947902555395354611923532145463804169596766233835997988636865857842162851503838054329788015949837584904134270726981188037042610008253962265669166954535875588213188292798441574879575165358847874947256875982802929500452886720310912957263658636536639143461491431144419939360189917100208948824853139984015664499469188280664512383375976222399818039326055797108546553434199074982691393151787810511583034478895767515812578849971632321400244603856430527684914290899762337151608350825927454312746121442410449055667179416931564900590107264078896510443118967243009273858699246932977272774507819514307071342833396613320078133558182746492798728235683970605937948930077132336017698945473107730586714185724933202902271259554566928510509313588088369627579238763496859477453157736090904743765336482462104506088024496261699602979382669455369649497985963428979577200279665457548061842245872783013308233658023000473817076957985346397201408496044389665241418355886609727154959567753484170625152644735008922026012074785921971815487505609821919715599534172575308646442482892082319572097243651319550403994521058217408831750649520433219139036462889282738635449943417455957267743480502872469036895306765863377726060865540885337026958190038548432272057237675163826311687717826831923320039859663039796496339229552559742822434586355382411681742384380858428077396364884238311349365947920268834110289097949449647834543066193176455603921858429393953670849025573755711083018866764116233132274435982330228338088035690958976638658492215543239083298701636842403973843053789294285728387113314724047271380746711144734870049103419393559965397546704017874681880142471538126845726769921846443188688447260355795642987662160688583007719258760726294454351351914669283551350712774123852789140296663546664782341254496881503815068463906273245072478966035950934382068289661639345607370329609504715268019065792902300937820669588244640501263606770536272428836712799717355346940729873712505731538977640792711635007116909797806819484335128214973740774544184801013022391808119718356398297333063244348215284449171020485090646094440435060142477080037223247754998381499858607112226637965698821806069040557267309454260748792938011010852881436676014177732584091012217575711861233261023238555563068421503863097047869649866581120443996799617820544531365581842264220632674099318139244890946989836177836125256793870061424669872539470511760633303149727852211478269449050913334337362583912830438944040232901208920322286214749231804520586303704251294509721649852442556148325759494562634355303728982380861790679162641250702673418974698819397395420854017042152211583929547186259561187689543855845503488871148573228696373867337253223043112069800448494690843499848883075893537831249668027947350657722300782631511062414853343492947312050145592300014431302483136304187209299744678595454283745941322118589889710501284463734939872155565081020959696764678526599944978882337070337876047605081987240261223003020014482128990951470204712711478831966606092402380034760298536755458536218257356775245728818260376790102374109616725137263782279731926740675852439421744749923744892152753694568278913424068337398595816289118802037817834368699630577507437566254831744871209790123469288827103668256346098559981134912292765071409395034809396073210982901877763009707405415360067655895631540717268402519293415764990779201189242220493818253513262070585269463754399307556274436048204292836294870380012515891557276062444001828842007571567041892531018094482708843936755101039347629728367680917619454779168916067333846406035029831323131028863851998726090102133445711835948446391050863508433880852514890697127661124090034311561689652165424868594589338791578748560806564381899030308068316741903033592102020276569568273038228020379140021925421202098271419384628927472489749270093883061605398896167104264629648807106493356732024476583209456040091462215285896109802770168339820437901360451304145748954821857244721979083522200963660064289449662394764068264241065910796941477111720266827891458993912578222458035915892494195093352136347934162972490587349565332161252985367572115371047107013218102780817090194304546480528615406044173432407387881868780549581470107691581935471084060814884847391733983295550775269715733115078985904241459668412650621801130592570475512493312108855433356155272271790824421475145629913330499428208185606785439302817831341071051710174778062781107083529650786574858763508548352486283711392603110329045546607308602228573031038740289469038192370968023991836534894404661617565957091387314024138968134549266393911720352349617488375998673121026818867238840296940995909669714614651390060975918604434039650522172258242864661092728621181383681700866997926266771383860155334949499118453130769951600038907293969670299235643667534052643716747729432943034411205738272930751664049833574411463810423065346770704235889613989578395564788129756881773599127757567637349136105839707858384793778743949435812934423812350336666425024123040421100899632123019481826294065146244729182286304334193372880630875198467782104919087967160325958596575482652122767700127565645127213187111696711383791494627863544061757095828608200022858378082778209485566338286821618628457072924581426234807652256449000985014585032614401944979131758356011991533877759294205644624991242309542360370181071827931632769925247938117861195127153075426894537269300067634307450448086740226386158564343207689129713151211586839259692265145320043713812992426598408248558068000794926500715267426142103824792899042345592548460421295048922271863576275227339636988831267083480639297131500496907299979999863901056015174041694730858387779967335618858565550125896882262961200351214906911579465527570463096684131061336968526820386082775385414785642592318750933668264084208528604808254792189264692205654346117880320225748899041486296484370954260430341990051674358744740937488080898626941678468360841083587546746201585375198389751001671235586131056233683548886828444550633151275802048452263887386317746433376832751838998711933080598207741782754708657743839646492048412951932962546509184936395581279041372144867796852950722535891817750681763744419764888469595392570422074539064008116220109801005727244635659006578727617003797754099404205677858813616819697576540280729708074683479083087621683502168181009574946398334572023533139213229324757104941796324315017136717525587007938325974853131074214540365844059981542336884700636658538069015887728463415739070548579561678514180146834280612220158655567199196417849700215775086320695587459436233913277510297001164943968422721721673870299620868020772653556103370839387376679404493206135935613200160984783077250464049142408211597663765507331627924369952745161835307245518750902208560096781843648450776705219194253464085582685646285366398208074457371859879289541310678982298233399651595832570391040709506205292237610100226878850796965263929188120719488531691671181305359058277361572933036672115262516983983728007396064027259357857561851018487014475970875011109771470523889516550423772928632815823232775725603982436404198240452377192812327008868074973171712529366618350761173247507262405850360774161390620940779723337808958686087920868567890558047381966183544581531562144090942896450466254479006949324023771151994275029271319737909171203009972768609101026639447659433992619556853709656252491620058643506197820538077328957439438299928509504268336048151299625520962872473552834333670933269953140339783032051359794058837376943805998710734392622762751449532555221246062950286709776756898724116041650489115216368703223705740765127088102103486518323009621490979256006713531295706780005712593198796082273068422478340120643564697879175054757081437175236573494867195261846782171379342213199976455039274413179366919596198842229986746356284548511886250330825949237030439190821668209060746508071121769377533309899634254126516519236069671486572033159409993401199968405404084339428206195173923905060208614555618164380949457845229945887636684369517904493112504913009157620591969907382169977439699226794954347867117135911935247454901593888159568465730031921818089597780291776696914031997958687360443785046156337807679145698973612664834354446254455851263872901558428305661040688969399184613796996479494586875721953004487950492668925422574989530376887883505823536132305409261037661527483531023084174385752523694298294018234992241310541116342638262229705752654144345679425008015679384233233510284788110753388602780204185325791320574277064297167383267627795413770776244773129744972385412722555804193773596174140411867956146912134200456230124372552669042803489211368593518529770551829697082360669343626041537224969479120601657398222527078644175998429773018297013252337534211338410581143036311315402599332229509348103848788119923873354981852766497482870350539479778396289515963587561655346656940521524375932588842567867266493110979838636150059054752129587785382736980280009916183670222673309887787742621847511582111737643424786361268622012737582661629003151353422316131956835068714337887946875458661074477170990951042873994569280578345623941233611406926025585505539557619718515692821975297118882543438153886321122520171319140547386326848905066397011112955503746633392965820328402993350823105765593045536661261452342047346523182046088370663991636844776442477423893811099323774701955902702465909007657923976019885715208705776317422415070746057708122122617190788148495525055915469236938345954816971474578022433981115914425119173314487600211863863356146157530470909593480983281360688260616732330324595951358839453948928663668481126558851998110234649129917193077369490879700922830181643732174934773910719281065790446016614672317329654762309445818811112355969602412883446670225758943763244496849066673557992996248423149941588263999424667910617560848383229435937852750956328057463582227422699704864529743415030612415825554540877008862856464428293311320282057009300532280191381835572887241409508994197918013191239630573237270463582017984140370798693756106251890901335518735752851646996468436964165119558738466877700389266877715032930353127560179879959717703348716612286460231521325277398336559757757322006515529519524385245140427191789787435016810233607432049110838244561666775079289863606490610631774652227684975082424896974150695999745360217301939364932435863002257249632078626304625497915352925650757197074862964509369794397491039542189828915416618996196183215673556471211685412882645965586093491577584868597433655125093847452468513556310350993704863544159618103554387009568582611885988764477363095855321023405136784433222617576909287943946704902263056463940342932603400846369767928930818104875856660631663118288652952811848451570132065998237229815674646444110276329886117417666387446709569438494421465351835375787583016726147747166238330794547486772174732459219647371996531306605159015758067671029613254065637491649746718625741601483408449154036568632575922324211822856955835551821315318169610984836485878639391434753636366442594051381038657676639751349375997466765892781048390922635613028754080749832467702278829942078071881909355874955808191735569962627575844578245523251603549229530618188977790081061887107036117160878142664893082352229758298164126229997820933688478484564875626318566514824999302565571609138570492553001698831529187416090046308280937257612417129431393131735151465848799252117070638154344023122960675950137898239789300034907082778903031956485401514727100129054808534029559992076627192676250477116214846426149626611199417571935519967222976910402215299937594312350247822645569480814627916025222070386674339974079535397677912440397398068670707518689167447981003216926986281631504204042017761080869963892060559496203018804517639425133823881934350652721491310222872194246345606689935433645067187686061295405924868576847540849152820280011723515575164702032490656293726087929103648073520886170361839134523221386471563601105587658394019806758839981476930627048744050830174364886558941393026001640604114607206710299160946533226772913284791421380195396794079261113971046490548457698083046613034110829849429189136193780851360215732026050023527019739739809317567516888541739477658818172876466468383715114998587921471029389551159044040273637502684649448133788400147336790243962384830200415555488858591595999472058361270253261955208420831159332622751227332361638848913241474426125905870634800211760711460812504415953850249543175909298403515269345096529994695952151720293020275408920776531046751185008546318727440758945073322601178937169284949649475961346137929635204959638063874317545068336947814003211012434785603571127415592423096724573759624952376534719270709965488616978251661268985640835171295171343903564728377860353359280761499187361863681832418217804169735731302456335249427205579008696075856686163496070393870409992749214970020796693622329414256415471808885522910136384971917731711429519874336312481496463542397249597447760220480004404108638836021309320100406588439719234821409582131793093799987101144182352241574862068797083363951213428326133655062018163229659999672638985552000558352528922067241015945008784725962364500856640471771453338377793797702355924604757186503722049497417714569194811223300233900937857353347287419898223033452207110621025578184354516452868327185410356083111783403120486972501638177327700349046815981111501311584523352308884758314193079789272003117694371705638336764437701441692230598541494132981722387268534020520550788537971768248807536796308826713661073615936297813197606896751958839900506594321924394049084965584758486037944988117949103431507651732348766461893666440455924953873456924534416199401438095373319860546641555817281417572671954501918978597236844394702261100350873375532962224381350355742008123295393669047137157243099339110330358152131832091508838537811851032456482037380266754109165448484084667745976676528831765005816183189646313450083852662377535560860949053142825462043684805748657285119027848394849189741194579555127977766853902960331304210809852762275733015397529495715152805087594901984504990279827813449019839399847520347745013434448344813949759904579329328550738578234936285608594889995818279851971303460861515932462757931459910262491237410420603528365342206391875255222368266271530500917079855295591639497160514025211639087125846710796848219735778826900868032515681627625353882210171373727922833714020607343774999013523267161205209705171255847304256368865882623170922250532491447249232916082843933674215864667589141402750797417536345795507003679450867017981536444184468583141703967330358289558889997460146868972774502038828992154108370983981977627599596047013389950890360201480887946960584886484997782167854467407381116282074265023615892426183152214228192910626011965277578876493816766422541039636938211697995380204865963302229346635545762790441699292019569915906495688753999877872799604789182298043913785767233227508176819868385057834745724926765350276102562817984648976578938871397609239153386519599117561998655193662834039670682598273809073586744253456371018481944169065730758781004773968805625583340662313930137647945034334959099429922192692005978935404106757900402786919078070658107802640330487230461299569350908397557911008580350829176422412398347351738491772852047490533660931117287161796441231888574110140231060781180746551226100709430807010720823255648159858251530135668252387727361387688811133741369118404434382966841186621567740376715126415940934304041750112334219939569404740953563289514958197864000107916069654899474583733660150278850558004842162547719013388382558105903893836103050094083569366283990510127214584740180908402292244164935236168677026307973016040223055652132648302254697936407213023998976285759804791197066484988298883985185308010015705602313571108421523105999140071497099428945457724473758879164899835403620226634862274524727123575881376561388770148422271249249847452349195874746316444420034668240729450967117723355676747267527525722699560969389871055940678088593532720644696435750340615677774636165189577619114326152028602033768542952807680439662176538076380969263357877451638477078156133185783459583980893098855612035998733926231462253302129847664119858211758673940027157244385941128543855080012833289907028969913122308917383384547977759328113126736326158568666439844517873523167183216461845095361722856388275340967049971921659018875029351717502566267330564497439399793550587219986063519710780915793259094239793119737071540012427085077085769883373887433509446543919011857958106461138446159667991284650073863459804479736773317308336303406568716694006409734335493866258432498428868581425297586452332856521517838241072860493697899313686401089847955111426740123430139293270163497903710271519383848080942866229326966538336485113686848169442177617453838635573377537742273769883680011131415343477671499934322547504333159473621980236004943706421022636852364313584181229842698741771329335466493169574745292531953190317731694363541831297402455229806579924465413446931202838831607137359622555783916068933214175494533620396955458465581925520070874109400037814162454101720157644807679581003195733626703585388128838940170338478272089747653965297172731930630973489369203789601401477288202362498917187502064279901033040661637592800335948442589118051376283613930687811261654836589661876446598589997045294733804343891395043922319689758622151334843605240847046302580880770552634082204287307280503053281097997698962272295992379521332746698467553088945991333851667170764424931301574336646972160335922380221597928346398867760376346690463128409409484175254727961670349138558603312706579314597788600935555213155233221338306867228288942580672243601565299247104559519545250662813463957387303953299866608019100158581711271195863018806023057022244930933166535599492292156486331818744447382123037518745346492828707211536526169361370362508431617361132908256209765316516647656390535131891617948186956698981104439729913150223535314190822400827100964386221021478422575650524433225317799766011207014962643683379399913021842773787265302336311331975235691954591343704927476823377680813890621357905268098937905417731497829380068861907396237713257035569759458636452445647292291521603855188774621121137971054257004070932729276032336932896989619371122189856665976407989244823868796708320770729594254574895632536186075115641599323391818595416834940741200913881713003398479754353857386292893095028301763192783038780094519899199054858165261981168107143144916684655500199494689179220270833323116381710173312004488862997069689989795189281661663289441671584106868988713214436612830107628036291133816876107787453356998202564890189821675161187967306274658313853070392980297003894413538986585141657841742463394623581252951038466723587285594395563567857422990342473112242083216104549203235399568004569810432659155735930854106222944542225104789303046930631082422470554872902052645860391906869892937493812095912125518221425254350525078779153847160780324874116370957467778038793797029473645759575730800518983043271357840785556109260914628166990709803740656845553898165585952963318795291801393823141983549105683130039135413377534230852848367341900666654284316006884884035928674345821971872119564184683637378624435206948839459704545864523337434377992680530605078568791169401187366698219580319462160734007729820007555538361873722207821267996039647155642766651563051442177002270075811275435120531284314099499399130848811523480307913583518708291056187238267380188385537078324304391431491280813344917663181082085495931804141062665515469742606856311515856623000186360177086121084481735022037798962514068236633694945256114838949068768826803683709470095951889925230429420322222489052038654986275549538103384821615780964754919317141562846233475508306051729612024214459136642399019212540296993825878205918552871764933387300418961933216783493244958145973287333435357375616542924931915623103462687255908242985931034521889807987212361055863913807549106966381388888647172845695507787025964997205977701977324521412296138465871154119666763183366486413414847157351468841806250637229071771106046417657362027560597547372399343327505851814432030524579852047739192390343979104256172597723098451506006414382176617491940666945717338188320217360236861506206143729393683503908239856423516567578980033022158082530378614917918487629805174022771697363564828985138704713255816799514099759144618101330430601960424914677634765810904656618632410217761040943387000417319684438127695981111064005345414543135483184344327884169093318196783806670084409798979687616776647609018743709504243198459804040892357267384912549519122014088288532285047452028826956129359615337454725962193358957909536179137864336318922078295997407907786977158507198300537777429636237609329424164358093544831703570485480036591179286266153411510897968958931624334494959734535783849125420445393410510837018991862461513176999456673681110022947840379629518187570033546450363058385165658873605408065540173736189549268043072903510771200882489654716358019876688577431523477369633091329026880764274343393096773638273680442434331426685392792741988861790865170423650969264022814630864211339359087444262887419839710916743154416106092925797241104398848615454625821121066185318581608941269456698993820528245607273939019077994567347164237571926801808221287547948148327416970926968601618615314763183189157522585102961538263108863680623448879194505228652619624708097558175631159496416103804289045574116001237731635872645557933213287606579477749366575576808404959462246420192018435262379925984869142348161588957491331010648422510889531990516139706082044777695709562574269476698066153071159558294378902242598325428045769310514611328286983660230335190618625916032289011761328986164918196035499632892297809966068686823717739212785278631326514776331872339799158628965132445576612860284576204433297550571010047422983984027356666024814078357488869606041226674116148679895772144408661269586454115490621837504217098806182795664685615419413453496928623227575332325315523842707600810315493335423476761502315761186341480985415656642195814061735716886597062186752710449237711752096337800207823820405572913331523507345158267847458139182202184833600095201235460959805641644457099698850762794252515984733137528487720975804965495512573837716785016774194744487840042076272730623170875495600694925507272854693114040388414593874353120838342162819579835366849088455290759123917806438323961521480589573218235209775357270143927365774447517541866840063439945145028609310830966849200351264064870923998319685508266357573605974631715271938746288259433461481277331483760211116677948691498001345463256232360340823018115760422186435623335997663422471555424018681792073705505114788521823459102483277474587121080733308571222007057315820652908960060961968514657728789540124466072473568203927626617347412896076358482240054141342382809670405588313726913116611051249438867414502358579314910402878822225453537711317046221397633401405217761198629465394772287420944683640635759574906012552369535503107575405521410642240885779692797355662870818633105366403134769462083663440554725452292812506837543627418037780444290854085827476598344171094533198047894515675468688185748743517657327668642125516623229556136687917515907193137351344196544419426989599953727229884512611132620775959420622366349978584657523274846055861041515582957649201549759416853944514336963077705083628973252194588172778701153773032954554398949224504751338550664807705814398212715533157189854660332020777437796959713833641901785047185385837097658177353086855158885094934045134883489055979050705910517920141614083912152912544305843359966750010791587671503234138576785383344313433901168372593426724644621963056213795837700348677362643371200922279419390455906151636280638468342547919465194424168073598889626786499768296610790764709697057005864151022512688469394740513412642405934061273088545049215869391018848597069505649554715124060215497852309366775650944020215819250387595486341111568942429058716927313295129974562964622387903104813856109465272102181755122066329891570665919767804529501741287648646125646309987076034674622465313587420389322276000119993498101493097166865692843206565765764528739052284470515478201357093144615071996919202908544594340022738091098352183062074129374262119928549188624868537230403985043196237785001691898832984683087185421264429522293597185650794070458092827352218556883161194301934708640437526726822664857761474876615488667740345195146231678662418485115023522582191609310035396012672498640292784642583845875812177551952066724547077795164985870949106643631942737016177705089727216033348373577696646332211204355981693410422138969482409245366416466141759757972482840352775579689973898398309873215102149648530086221755726162776042164406686733504858347946192736603480461312548419282603804790297553222600914743540774602750019817619681640177224341000944702455926311498145190540168045711785615514700690837158730439158385262740442354109272405222040545351556505393247471682506652241268539607629780812227874634578824444963942697513426986632371358872166524552523562029450994498149527041148848927576516605087140352030756035709470553669695352265841638710926150431468351063003755857722513311428836193449117584188366697680758242840501303404359827774669339377025187480011074600992061729914607798751235289967135312841453082298108467286934372239554908030046572454486658591508936164635033428246393884181805500522956039728384416953631572374300477785760624927418223758234761747455161214539650912069565383250320931248055169808582518468166388106421977960584654339032198911095348557063349457043237565290595696652102913965092769350629970836078905713790134900631770468627892519177061879233066643979847461075984201196306045022100502471183011893241561895313229815703185470251721184959104481066936873444511162108941971690780076490093016922299367722123469632172975841779441255716633178319590588366058357128837986793569635405604785979610893427007829103979635030403451286452460973901454173287454524247875361945061934813702713038874410018692068898535180791676516689693818029936229996339691280094327947647976889382256921450567174850717928774934178592101099846866845969693034574581105795310726204989303781053822256899030172702630363738575277817729893872879112643328044445072529411735855867628378328364909128094795059811357005364776703649133826048208911789382922965066336121735516088623007101963504938414174488663102183955996018369295523601143779397642173065325074531360826758684302745713835090776136681097703897153618735907946041199295553054291868433653081936812070539324272590867093654992170419640194791163508889224314882957417399158342442258754588683650217625623621797324860530088878626933908568656905992253127586002071778285543403305580965363063497283946842092983127413213010421873137664152046806604602758250267952882971586342971763490149653530723764428804319677367602877658264969359020499082495657607917746800880389116874684427744187512257892778692506047609013101693259530404603836876504580990289888870171266427114553074430167036242225395705604551252989210225919574591837290987385420411989687597743294808885520180973382115616313473943469539869098236626970767043218134000836629199719221717053088716291429079733998599230685407208518487282419392600326820649399211150501380219795959200065749613263299075971067655840634892403190603117779719397520183544880230045562977113844456534753082015783630110447740888980795606762428731880406980145060514280266205880006658240015080569719420977958649983834800050949313630181575179295744100184317748697833601427118101038914582044444780162982668932284072154940370987482539816277715546507568819051118409011800112586992947072105773357795731577919915551398422728536875507701287073769530365697762986057912882084845682971819796328340351419748822299201302841955368716181413645235539595659397776106913862377274146017780891169053854344526256107267956743965900505845669909464785582139731703102989077705532883192172947033018481952257556135484902606914473683126173287456194302885202483076963137501196771815677191617192248730766298772573474026485291316401701120085048499452680016563001504110687011842482090708886771517804763049890956358163439536659972374183964715082980393040342860865215136196661689267989612707264955798032128535549778303759517685259936163806818316574691153221447010024869276897544235204560906782161585412089470710990517249260329197014085432781090277344460077385981466449737677086978835587455172497588835116234904770654199601095723658213629650193706378371268375473000907455128780819545104739566804987081435013152464548919509345847959606660049519833877009558218332171039005436112135305454547034057337161016126974871800328715035597509241824619684226936539068779745599836543020658397052667908357330228299198930661724494073592213412675093168708713144188496631536517571079032241575572102552032431361137555489732271772406111363257637395262301329491870162333967127349913355911086600935661971603141700698635498179367791004195045658441917280551851573075883135634665678763724530249051334246086892065441499377474751998254304141903779206528966556944375462616974891669085426101078797199521258388940972759101096953961087684483037151377443406631639962483095831080083657742569283362191638808847212281933887153744012394100195931757199826259206173278283682814532868664996999692811008039808989675219661558870589117927620393015526805014010902369335583117411091195304182326530162895507428931121981053956405066758643462357753509767547605814565486677942428043999895052722808063080576907551844495001702820342135195990969788195566540314480076835893971240356311443817661732352890010610558690596978501944678573402232788505257750979436363385989125057349554902968982962330479302646565608450322722365585369528744646890397628935670235307979326061739908389343965716200891312796776192414112849249025090313186796582985048010984202767320882151059524391891058398925512344961383614654749634408797930191242859375302586443069006322674858675258339957823344145995894836981457182135574624557689230630029341072191926401651775224785194551154747995143434050713792227846300948592109491614826695029848115818692039030143079959160106630706987430807039820327028575496561306012912614896828884594736978651669228011438580202052083612463431461907182436421190870585218877334422287811123766297153089783958108291631712751899163294148341359666612557915296561127862404668589898918612368942785667679576798084492524003647963594520097786334877979205416045171072885711509134681849015708993237983896691672511717867621441809886026953082453304908072625400642322371435298298883820684885488843428050613879173522231689396343447772735482204412675622257285610841048144040468080724346401455954761848188530368324728567126239674640330232839621557936060283561953061741076556441891195173076036220701876474785781466055287769419959855367629117135073934149801269519247281018612669582349935845486784893220798340221564578841928793173349720676321017825961341390497967262879480876954948687546398285968108922265596580371794563476612667853233456002487712449322814711462283549509931206258520821937794313538741115967760456034414490750509898988494713687255629971984837253047415243976400571315121935555085024097121806878616042887906405153265447483797917866448778487883031288049545913767286050591455011862052667688375944185549712044601595809505619751466252976574493855267299071642833356888354316698967433741776309373845977787928394472113390684263165181499708878068600302555625392682896790638497171794405254244501205639521264505839498827780282192899028152141919659102111249859316040077748907969851119491748112860405139896860903327224798404769673850497098683418515499886246601721003903690033089737099088543832477604321460959639972476618017689060060196527820553420999815360658746904385395838529476549404348743688622528241009393920732492976442917333585856805523663734683870665428636692854975053498952737293311710860270693558200144637718861069978640953037787856117236429271774395116850637753652213882818309858968193471337821170539204156851489482471954136363207405329721049305317319446782341853028244317497792599233957196260512932211161697944676385927661282367607733299300958943242230543242577023179700785299033733913462264399047911451872405896580610331085985492455882915118652927281248444629535309033577595427377578812243400557337229159111171398024452869620153783444378793184204013443974363335348758938546279317150409391767144945147809241221402119760699020713954538453208480395334372852011540846956347308955840056990753240974788424139969757468059744147315461249446869745782549408834543007842928685801603383171437854398348448602126799435438562783189822870378803180567465615738631704974044456583429206991946718535881512824403469217864192194456415413182917821692375918444307656103329272794658065749009587009333407151753262804578606162735017814817277935625213249719633448353874842548465704706808935851913604283346277866759350557509103883994883704985664953085538665629679887350021211513214201963325972722199472358403914885437028097815528602815091937277728812294334082282225594470365172366099030693086773232599030962365809482250882307760062650729686941853781228392626219384297472913583214939701409570510050333848988639416395972611382720135200389508206407293523710578990912516841319867259481514267537474703119090811600316201311276497846008836476556170604642030534059957950435450861327316935222864329404721653688644430846820166152782568822421761752972644817455151524610367458517983637145259821115949895945148943360016462298756152467697185681538287764945399725394667030815031373341726607438605065272998238423356137440530886600413064563216483660466878219700069316536729948827418228767878919038929071582957879218466004937828415568593058432432820370861832088641402419436662318159754367700725615056102358662541573123080290514957852778174397803220310184638429684119777433599624006198624549151971560980521845324875145397465951727669747074603770618281551778003637307102433824503017186297769000592057718378048551147327456989236672938936361716631820318098872601131162537867238881396521960356555786718311172875852132960694157918844683425106556436771747979630689560147745172448507993247863797670974995279879976300367873868480413850947114685989990937044348216226060262241539426782919647180792965580204854905634918916785999889435933033223944539394230462961540947330589007733906978455772054510116036977830489563280859612126610417021237692902882221915249915142893506954356194272164395259993725828105729621578562304845275530885396208348273124152383070051640928216126464728837523677148996291898129572337215638186081421258962336822467371401668940104338834159752680133580851539818716206288096198751517429644793254313940949426650102339618080581986189206757571934733534772958709182220195437672486704053800147309719203953831284837967402950638713978937057037099594730115376103062120470234884683443008599997878509541354056179723027653207784388025849701873697423744022483764404978338345001557527285964672534499207693783656400053125962284186685683062803520689909898120529590803257019664878941102304265140068923024458368566951710222810382620337119718237134902506796828260530960664547332705239951003322451846209124597767409562322008316242616321640119669579188576252399525663304369442014707883953181612410206050924241935369015625104560425746227456042914240795459809836286241767579435629558289622132868298528657554116853516354528233446299755973127855834822796908875998160903887534933637662242273823635204663874035786478843410863291796097804130024019784419321154226264541026576323568323424568308751201438364911697533354748466843582601485124549365342695276165653635698987712676832655671975219074155101421132972300458407950262594833299115651949481135014209560746530871679286289700249075634979815927978742829725992460984226830216862987941041366911021337126376853262636689945818234641183037981518790053798266017456067255581000134203126382691423274201580930988201958055147068986237490501328922880809945097256094054486019538955084989797369231182156097668501880917137539036186033333788963100572328560430164879995634981188633421282774810796289033751424762267543201940453353370219375085315375325284590558681532708938944378183826989489863086456165514846237043588841110021516285147558263139907022555290090682811591192920086108840893683958998099739984812395657135493793627669485461849593656275580659179653521381623448181470528171224890300916230125389178979906575502673507089439783210328235957601973535821230533702368111738597155169730245404686815827322382446365871660104165878036523659268968927369809654688629038195664171421031054878222770007621302422903163267484984369755250045100339196046736110843988480549028734651590473763820712111212976887935697939932434305498925984461256770573912957027901571024330791331948925500501668736927397752455934614118048513242631538896050740601180163678544970808494436988963472611865891328038333046242761043092559209267827456003273614433710754682347822537454099605058749006775178223648610896993977422737541031653743505262049260192470922662878292894591868460482413084337284479274217671091750604266457737946205622062620368754519606970863101608080222608638135558166426354665371526802793078399646985919989903975561393562690445207101687228827003509570112477168155475474173822795972607720652856693534106224680654423764154068741994714825735155156037252129372728397280374635738700678628874758930501101039204866475972414734475531748239773560918390726427033613818448686020692996373676735768911002385283972148097186335195608109042900634272482926367388188410715143005074193642205999817544125873974973718123147498997795330646334144437740606568560940246023306705053253513952296089854211961309427975379909049252861732091314539744114780252339454697830065314289699118559961257415517930148643299750559360661701600362372482915896113679085989077932819701957928208146668328708564764531814537655009040307599772854053884885644525311386985788036196058154832368223379785534405955269079672198436461390315472511196960975079193442392779237654413172408210143449380511544299676651486720778509898318814677107936951309777658095127477296786479286626946634236360676213405385685664894224561395811096771298929641789727283026265228400775690269881625445100813264018040305825676989399356634851460842398585815342879050064115792598935651894652008652595150426456360953242205116486301752748949696524419573150682992365300621539242547850193029803643292830394758245257214691779190813085667718606778673266058346416156886662595520566109874187819105160304390858779019743089741509133669121051187638116360221093977189457236228535597358265166062811481060105427700685767112375827365962108030133023576235012389092491638372561134033249753573014061101700854539946303754602509475529192900944702495007795372544753010509676170151946895742781897053764804968918937370073660836988889299165107280622252608584708615000715952959035939031702211711816114024856134022250040654452634194515574652428529450552104468495189625920742808463287239223312866169735749636786543914478100090926773537064488004559873794591609248282466869764909151603307223001639327842870548186215087550931597113470823957013590275157359090348097542849822239013385656348583881090662496271355671185199146263033136337993151809560144973577798148334827764284582897465793760188678864462920376424728302309483666374484397551691214294548874844703138187067448556143026352055322229751750296593613573829852306608210841542637804570831395416305480997710412444081014013904906004435623047754059411481414284788028842386622303064085130959336004395574996522835311225448361418560361633218311054365728149108922226033778096374212061909471809761780538947258449597669841340671938368843696551429007179689294108895675675460197174887666899208148236415379129527499141430267742272021732337337133708382621059848956978695768877127929345012635049691842320962830282773230893093799156465472389493080020049289997364931883728695159682272313256232716687161773410640236617696057047125356690013016222878943999345683857298637898525918947532368207950811778660330021191068194612102245349296618949224398033086185307704921895053865751902432302721072866961597206823484373769889202077975579740654057853013418941484975260041619473961633223318813326710546110870687855074267066266982840811405365030470264508498483055980776025480281631271373816641267698559593734497120297107607539937776334541431511335524794140092070743887382527516351202925125379691431307221643188262702313430670464079557515892416187654677742151250232470214135759006675870962493194604726314338864766849943740563396489911378900709024356841243121021419767838958758141335852374005122474153444756197177268694968034420204011222800955162933283065102103019720226260423038420731453046661804938517615040232772158959314993090275340154611842913049390983104649062650239258532196152820755791151937961450998498014492990814203028346854527842898667961019931755772760865044436760501099367675751100206221164180415885030391835859878942009272334746606384640424852675598929938953023135854185581492228519156522611315517521396957972221964982197687267909267883868844505466899945924611673613264064471932982412568926331650974744179764746105491730464866009453899194907679701289487254196648443328499684535504803431880296188781247362516757832264428841986869520007707962610610050196381922426297901481758549911131006302954593328943216856438289805179423838384302690962084541486251137951123602056645221651596517218539881021679329674380585063042960163571448326079663741926926002243045824243007032235447214269869176320095243332882340683543696795243759186567398739343757941374643902534678475386144129202492380153857341968904265666485650301576127453893685651105087275952072792249725644696864189471244369873204150053603079405967522469445371979798209726100284258391924375000624535617564207332231984423628415719971780079283379198621352805479581968178629920778518751794441347198203067053068606324516327437322246425727871128165030547523127875036903894285059171669142302025079903857570073856740607828108849911345198411055086303725602551558650424033504194103310999193862633575010512006053839269130536294996168958988843600092357166448824368299068521340920601491764655754320778261395120347115904215971142197164947748921240755629567607363276440851405571654919749295275153819461443301961204085579258731624692791897701558422114842618006075381052691447285966986262609027434649101241735742481906298155085254047163232129775246355945041440208361958942418188475124143633558185434134705522181696885172108092665793571839907180543755370511058898365582112404178495623660372058249702689511680028856973794303949502669447582404809244626397420506209188728567384498218326377609958816875035267485300184188423112936552848292230214430904073580994362615845942515231804164596258691716403578468536664806244000735011908949296680128290497382631821274890604484735797172994102865423137794855080727414934626594865146512692505948420677481648627573852786165418175922574111689958629537238245354671281188189664644862688553184529200377157946563460299147649553483866207573904665270031023025723308510532422187017449273133756152239646278280166581936212188545826668890985461726770128857921813531089427921413593241699016951731016089454333896348778294233938730898160735830069461440301991484851467238162292545064079171279649012228437918415331415858774238395163093173105117568548849585907311931650848034687231233865064222325147199424197743545011275952050613890854362617709426514573297889255446161691863659588261126112277296213861932180231632273222144738907338293814797317484291456027593057242715108616015592495175832476823397424696204589960135917706067947945409574560125271704208586559954236935137852076482342902150398676540743509390084512354472438164395461858802144314932642979032263729882427032218916805339487606009786372550477762021368402089110506808202401497119000857916406767598252347315545222790703883930260946521463378767427773266444926283984816558938859920937848853125925997486441286399661258300383550142920634329358963364621926107053996439302624740716927792305029574892597651193521200333310804412840730592036484625466504308458508224412718658715927568793197768753513512726251457956453905045817299319889645916778809291168904456737514871205121193773169824415215149763235427058191446385889770483353187135879822249314613361428999281386257330770801330320166756593953251607148530026232142086519943893094952634203103581063055734838821505966263740358705481703486349424794180197782928245848218752985258513728229741316558195690612318016576821883500814320372892265173397750943686377369863320266551375077883914001911555633512851669436170646253399723315315107828165929441030871857805937271106046373430724718851668253287335801147297059928349792220316800956906532142641859602759560901782589396771973182051929344455847873362620028579919865484653476466718856575084948327590095296210467172162952935204062673090106296848902187705647605912809082471267193308265090214547534196677017256566374345418304617877538708794648443699494323002021729655750763478596962572970576711858826037422225073260800552393351886780061503356368271961580206147638136345580970713155596178319483595038498206329073151189328660548374325447023109067818834211951099936968618439721595791461988131485925555281865074186496626834687645667252715031987221119511164708266747627749009820281548498214245831670642279072757541666097992743720266552840291509694288300759803371719941033509364714658745609010213491887132170092995978419317174996305702492178701134994389403203163791162322095190104269788095828863324591022489714295396028494097151568673038983729146654480332830129160576952729588287658852707252370146182963271374779273346272104889130094890175679240310030603247295276699313092468352126898800605425281910032554816525060632734689212345300041933666431860270323408371445120106500781596425144611273058910016265550766266379104510281497954225803189532434948652173272024605036210811991073984438849853684900361711834846568850085555008503394964381974261090306180180081554411961262530904937029952953403620435123716750069866063591003039274597272567525259772286713491321480178412732947708085105254444380712724378465885402343580103426086584311358785369763635350906392979468035554927347354583398563452359900391718651320594682019996630091934819840468365553369189671966916080467229789085709658466875106571126056743232930932278699886066324029565882907616264032761644275109316366492633125159908050761230618768570373985575892941557467558822450819233377319489494128727845816019481071119524578819503381275061517502646403418831558179396140688454221306103250839308481649382196295257599727625732203127121576187939729187179675453734417859184520112919384468515600210558371265570920867025073368679109575535109249384590499804587367561715573857080269667836553619755251508648342482589953067982713463024370801616720113029362471960804886837720547063620489186804581793326629143381613287025889950752027839730249914545580238421278198628683756043504256693140776509808069666170430187300446874629912838701122562024040852315513758951752729718826341676106536658752467557854850946293213536718124241891141905358039150139662148220079503373310740918570839364001044576526691782111562962863886336621144682409678364909119591674969097746032662835938944519594111218358336434908213904119297308583048536633090782680586864664224572309863366659841680722430194295382848774804277456312761721917053544256016961130575393074587411295219431394298274764249373854337813355309126035226629876971475625695477694209021584701185291701280485836264853151638632352467137616714960381728958926558594193544336281065820676401213387269190923102572905193017617988626865582793691110042211209102408106644653150612977417265295055721940248879115309501710269448484956123822962708028374416508771825565168278595638172854148209622380823612920592056695722243049288308594654427782818284405454415313838696108624368696719943910772616648440690847196068430242133791573620468075427638869112384903134697124470652203279251598489740115693099965566048059259207021554430009598878436373964064290339085942737198846170910736752428475805434773057157491816535209215570552050559556318635004514031881388615369416396370688006074850136669491448320715988463466527757589387515245683038745169552141652601463301135137590107302106174613351693950973221716832905392867264874480717307849932528909794969217012722335099603421366550792823903747632407734985534738424718734161756809698283051775824845915490853263626525762338132895900862905248182531597116369662165612878232923360791375001877612469038276145831308761983926216396030257371823913099688774540509109078879969273067819320153241268111881077381126203082449435256922885909930099873237714840871089384523033560900560175862670337445658193334081938894174490840065259268610410538383368107661314960712539041921496204762379185196402719322622430580659691428315341116253507530119701061311459082208204503597784490271464774692834242210154492549749310008780763917335341102363637467015767249247268742852005363338260778388788697794663493158591751327285379035360278961650873076979431568509370170667081019870124401041538109246561944105656688014321834040518919284276616435183777548626704961991338650218080177942347035398662287831262234999873788180248558777083204880645007417977240472986171336674845300945762307885802588638505274189930242653643061074817623649618309372179952491324474115886864292849921400205623750156333353175845933614487374228586176679126538443929942382050006218737596325230186897961103503228737812745420194749906030205359782858282446915040478193658148199607985391543365054946137505631398922063772088628225495892973042071949079626222733496815954319115209747115280211109399822235828595924984293182559209308725263368431815483978620676329867424484688433900025799862796668236177205577018648774828398323059412122735681920909797654568478804620958970703938211434383194094719092835054637210349749302039187534547784721303937918320829814197848748891919298768632269115314619251160698198543155928433180285578124275385529208473152835787904972354490241776159355113419114704133974719203441262379441183824552259299400095662295400771549037983535510764657356477847037167462701183765917326970367945645387186594903195672167104401886599514287312891539736593388797934485121186787139795099563059873798386393202337143556381875977717173639023824368558708223253317773120262862930493698749917510694485266293357306249927791178532806268890389932961578776505744951366065800545833852376934468947318189055538130824475128622717069537309172593894899195326660580589963541991723282704382425871763282904843029775066796916501023015799095532971757253985740663868544801562047475673292570841458170785919742430651197082364623617268650139569302357648417867198815453039454885529943777524750120464249489055023229308072463226176256750687785006498151804328949103508676932012305522679450531916289921347655264073273457801852540574498856552800077597612263824912341298528505062310503856454511162127988412765367543366335516816300713491187263797987388285037093365348191067501744177149168313676112264501203515844725025622202074444211431915030506614452414463172703372678545559559653054320972468076915640968761097185447883662957955017547712691009456443112385548913276438179187130437757771249709671357450036759776334293058509490154026822663974157790790596900134766324340670684875047827424027100479628969174581891496833131012358542160996113433728048362299215316569410268216184473424419866002710327913141704803180606490577427971613621778664732894403828179511976422643202165639577237817396339499121988361951645474868672783866510966859441184698862899985637645346093754166522430758169800611165399848594538159308678894801539365195613350550917309544374951549824174869646112278264577001211206079901544222188553553177577459016432348360179646906917122891933102419198114568832456723909588399662833890746976272996389582302092048113677034249666889227062896449896883298463549262665372019800519869308120324865592883301870155436567847561362084303330292869756233298560993741250428591888504098189158061050635018816034889194534082456157761232878091516466260189178949193480730112112469860960203428626453407148316866069370121944583523534744186978831027962882679251613051226020644307089647434254432582286907490897231792026512432802936509429859288038534696597942858914431171959820037778362379490538456123262452747662700437368844459737477082101669599727757300670853644964171664293345102142551357598277442832485362112991546880710232971019468569150714684467818449361904231665026037779694665330006514445976963765060557237273307955555690258845255368502615596652526738489017357605041973538411184064745443116312638880633070048207615378079423892548824043582880413835315475310467905348846161283274478328934903006558464286467688584813369882077199718700712864047312118714435406582581659038559658668734174886938359932950244297158549286279600202451329511681894903612374148212708366044950276444759046666861538979569340745552915954668258255211058603224205704686352476817964518709402572347741876570272523963322236338146104833564149287070333404979643372727936152313721566764182188062875904777481485341901904444702041005379486355310705164647983577768188307149995290259829942056774658674829068973410378952662132031226711013677154042140776363097658095682220741593505757473947467118336584917999723797456441886149762907635083172256364756691777935129387806586076071540509386392206586984483431943567062490484955179759010140417716466137683726342939121686576761865759993832864394892910146534577766707718179707177073958837226702700993136086916344343053157272684659760457520843990643404506104534045959757855991955049185475704734501429542876340033216269734166274099534714490982010304478378121113836369704393500605084387759020060003362174581801453378482816506115372621303659782037380307107505809128150883673801004162790371307207018726046014505579465254533604923281904487071981267845294523787856381932958974216200137737759695857622465043332126628098480962958273687062961566717924611886236342825638428374015631922627592151700755564319311327049387663216635799786738235402182721557965754138251211465502697241823955967511745860910914225049810337278492103927634050586747984083938997332187815287876690846534480372976212741555057015137613528772144588540729508237224945000937484879256047707525115442577995755745241061424333063208950168905453161289243936628580184448148211291284089073292289803959736650673097412877309029866368782256678290119108087749869113789991343248034026326543876253239836179337444206782640805167636439563669529612475084510021496714278291253388888539422294877048297824089562677898288924149421927892170220825346557841711850895335781335774157714424610231685397550160935045384306677377501406337547272284513953563987109817944818585410381150694432378644255044951174164688714878814836834944704582325985558224029861983660813556915616797205721506374601727378710088226586667888193969652910282435137010888940738706142166385099486419577251269460809599150836353003799257421033048111898486623465783951038937914402939899946947384232526699192308031325741896882005488346091386447184372628584777041457226865331894632790290388238256623787846795025915778161022342355980362188857877663838054185979038134487939122352615965338266219479228462660023893759418469125417462144013231592704824201458513491143686345867841756343940004362775980273522340170609923119434736812906176084469113146468154615075181694799646554701539709433045579416895824678378286472384151246318449341972464989077655109580080824342986374257430977955430004205152459998086100350729138744223555475511039450569959136728447584686164400358328018952375500724489398451777801991784751984033296752752852015199104035034115720920789376101734644826702105659495838073976555102083362982623572865108198724262583058958146877844147535843635058542106684639611363253182694403672812804685646897278623398535449667065572557646226845982692739204122919587997279684451436191208179050917123000976059471496313385183956195026694341023170382123993490405177143768038355714485366280540946340196461106260893298301305129211994600124371569016433551385397207477146543071494917315644676480266237474536605418691965893868571674952363948932138485467195356795326925917922950477957782131482516051444047504759616888432554340332076025821828211694326284709242981141558054974109403437795902162176144217595248573150827259162590002169249066059046540871306179234438679437966777784165712187203819581637355080227630506401410373104789529554861197057282729364098062277294360635479053367292452391804007043018752422313422290803158622291221298026955357819672598137235571954208058080796306583540662015265792310282324707074177256284770644646834468147912808262043518433274693404992580867330414209986262141050098546965041593458083838169369414312301252131705325026233310376258379775355247304838462482489058748030401474109504713321300220173893739787726161732038806741875289479114996765021604364130684079419267153430289758127593689962690560546152906722055994575932979305143377565996356868042648079843612479040733030620280688017877112941753247702793342482163853261295694303360465935244923178713017303820760372674215136334930179281048581933025997454085945675579031096484617110499486926945048685360081637989927951516048729472748057717073079814754137927717916544579104536052314337869860714028593457481740167041477004688448382792452779142235109536504651635104824513917416503129141467537242192045719482373158637486781806055358115099081172726592544759582899508826512602851838513621415326542900893741822616977067352489577466502878143269277754275175585050342832420468389323943391227528202877108697734605783469033644866924895756793394079474041997676356523911623702967469226314423396480319345686474727532415046641242832453268195056335351174699725061009463967396502134788763900545083147841217136872361107602859265543257483513309458911149237914117334862984816024450142791105509286756738082428562538022877016928552950576159275920290118285770170110215953836208976952451960952021578346445917053604375083040392311163296718706817003100318765241720993610346866326610528173818480392580148188122155074329177480422458969927626061439854356614423774314706968055539634603350365107951145473780587399383160792639560442188470986213169814751413083339948803696135922195461692704524057077039315623961774392024243573622214436740885603854661498224418705343861131080872343777889334435632987661030294039373093566943946130046542416426104349930204616220364156009237229549874202938609150327916174991745671909487299387319306804538930324758370010689956157176182366178775998850551433531728984693939176259782804282365309809833890170966654565518405946656494239463707212083123607571452732692365032195392208392561975687254229262581114703208246978936747660940852134698698692303818767218962242502876608644640973294017007210065277167030030637665915094747150245495886311474671454803607537213544843447754522068740951951611962930836721699498803486828942398584315082581854098790028786048280600270403731732811940018153250298989407397842657646567693590530582854796497007115310474631470786480004945206826733853732856294991275839357067430561013348217123359936317667172719722850784762119678894528405852372662139333395067660415152834251127995583703271371999163275345148331861176427286865504986986031244029674384243216369307216722837617740995726826918343854589248556011135929663391011434065512217225179363976578291310175330740579930213602509247459849138661750418599991181039432644691901980512695587029805503400552378800327665945557450068629141572667094159171619525093645618786160201826935998794459613460884628908402855381594736282375737905117182569766165739838923894683205260283878843139803594638618184702531836693252374782571740293197057114127526391256083287755588992045933483291640919290967440202080535662088780695431789132172339315620291881507096666428915134912865111563617393312856788228707236440777260003322902474418877238219834068861722495239328468250978339018997967534727684424480578805963804505492502033924003741561703503478181662757123896856848879055967839054062177107754115510432196072598388272767313574448050899451153627802277673134666516410171327083316687652534694590563112370298271740356444604280239528705134440050900125671023420816993189938469055761694573204273078106661069853146819132503050728356897722091965817390057082650820744112021481092901972597521978231562669452135025564861792140360367974690563509509454873006774241653556567092924504363341981684687376201681820492970430858735181621512408405250485958797425454557888124715364210235609749057416661329100228843384589717760013338104685649176068461928093148154502560343124688421976313449081110371834381918780512867959485011090798256783810399970933685582509929169148682524371890735113473079715908023611678721231228424726403866453768236819603472858788718363177979751957481886019654205702294818162646990361973772100335644699774110993044295830978912877135541196549530145179833225725438994909690175082435047856382739058947332788061173377015005416970484379757548440606292188660082277018610924340909422998193137063596229483716238171447009776439506336805313031243105973158500787265039969356527868157552011306358932263090653517499883263210481152844175881057270767900137384842039077261263661799027349636723923288896439820847442309218309426315508402356593471350731370010405077621598597947688714375141224395493602982478192694811563838743625187602592524052095579924296559658443295922298878470423175166940966194953181743065349709133633327608357373683232911800678850848347757406431664124223591702699561998080775802678558105554350094016472017234669929856305748661636963442189175376751749795822656696656650862112006005930512462323099519424412522058882921733986363749238144481759370301418528435369234713201209122869220978867659514428059216372826776330725822907262032903384358966684912819320042884084368226101335217664798409143254396183018736135797520624065701145964971104136717478200506113806784254599311601239132531262118750509767864678718200405469866417966486127022751536249969273821676495801317483220440692172630406519097922474130393253069449710525493465388086195050011056001245946148215189520944933985263572621896270457814563645110402896269269320430280309878413723484901309676371312661966687057254047212231370740821027298263746777271605233848293450819726337064704790529729434121307132653025523648831348597166938681150034993840998384045760472770062474666235183357453173634963333333212711975999188013879885259770888597969610067938902493850043770422421784463821014234107618660531071395695216792070716363524021081875792559477011343007490070940082817720372397907173864391933725214891197786346308711744316692466971120426577469570033709817163261232770214755477569382982274645772042687370342584225444945520237778230306805852450814079370545690087916112464255261425912402719240274625206136434858178068936349395157036745343704764261017576241767274936629919764455971469812528921893405213577517182951517407195704453557110758382835835457487418586178417792155010854224823344847267714589875429012737679965766336052876494149935539974519890158800271397136514039232352714759854548520995089085863880137350347634317434504405406715262842408878616345084915981570761008371242431715335219816899504387526642121415232498968682749336170929963568463316241108262700767546696413486578645575704521775782022039872407010095736185106278396996125962229482372720977570544217268643124654035315094632967410327295578584104627415461481491531392329337481874372006473762085032938291385681170911320722316745130443893108689428178123035422828409359936592388818555238720792515738123133114364708137779141606327734910336983615655932429906101747630876023814999134518569625186551156538041889830321200417891935171033982911866164844750924583171437481128233928734888447988016386090939772295116238211019857402056496840184364545065289435111889925419984257120354466827459850898365169850700362193463746499674238536446942614167501051574049053413816494162847585318961805505727789175847382925392725467121377990755901694736881325629234297031381835642073353146960477393410908982374511206538825918152607949706684188366349326633425659851177991054530470633929627179855558762124958921146757931303235893648294664858378666829517385910307859625997102391944568969782127928726330800573949833027971006973611132828112810789673649767826963517493256148952708659293470084802977801812276692759078222624245046341705950817864409821364236119517380106163676137314244859469630999493075986240505280952360416124845239826184528779606336705050622499291758584305998083094223087479101680814094191794134957821549885492317454314420980287815718245298517172319673487902318335891021919543485868402134858353992485691863643590438060132845824011626902630261539935493310798483850291231430013191574701699766736367814652614124098351219621324268184200438941321951960036724780512434502174190276989181367844849306319887451102138479332984666231545341815319319885984967302434737514179393297247608573688125844497505829503553022387172583654128876860533901668854316249570166836368833220628782916778986244245208049147093324791645856725988961158586154340892559216679241357591780335727761058069050602824411141191251311492545713743566985242470164870056174081326122483671863692679915993938721308319411663860866440686118120320266758883767341915199932118487141896815461368956118035525981586630372858966947739295198187023821692688725022527914604248796567516258370478920221764800413507409889299526256818975745733679813310617812328742644327914065046885771250803956438830768693376050289365269911792722005993847394098568518609834994847343709055959625360528520571455348916227555316301568863438522266800645553646872518561566455616380654661069569949438729914915541084587691988818942669778930260697403253319649287758669821643578871878420142438913238857213860795498962164607420988528264328084412580320864011802836124068044972380872898678541750962263014286443330138015768581727070987279806069657867286309543330274053816442112116677043215736333203632472249195877715554543021928627982514370487263036424085808896760246681774188477133337450263765263893260168595156700501309405821662240230316863754312854390481963024756508685533413829164523603397121498021621843767165619868878079341775567161084227951805161210724636917516170246724354475445738986458393224374776321101705557035476283076731683644499775764090502731670059842191835833996200244324832427758351779954206500157172182421069204190818351646138643353098442022872195104263871496620649026616118028761349157500440449662010984987269092114150950886858233224004458329500508217666282106563563952254770769701909624043335060846919574301064243727666780065053466482968115628311586423145591178008784884918325004106469987930779919172392238839493756613011161177088605572788546216058722091109504935043575874835673404032372903861137450298228808261179705516140110995808478248410491108630513606494264678744950597039123682857898581428882018495457767466604444010924606268429075689941934658866299372992905525369175800366283058684880232494035885961636159573838109856583699783171682464144912307996849665128539088641488771967801225120046218761090321820013883961850854019733273816203499805607148694412488641153533557519228869015755525265992847856001895754301263636880771513138093052215655961962617713109083456643820340161246199775325092405064764649023691161702330579107219754426544846254942744163327398414216494263091040894539298189150795868474535711460722076452512178504726789623902869612415519130183559474951486073698597423707701010469718298805821970933383929280621786383968372342737182246964671056156776706802279260482585187466658908149218772023978205626529840982772614619686673764258457639310021777127096480530590713591398516603300616613105066220157467512011393971226950913660546602321412446410681428744961513551689975049439464383943474531450826767669476438096435366999882878808270657418669791714658826563027502173734104700817019737965809794767267410184788413455755266642084990165292470927399646949140434297706950658273499486143656840020101165628615084910915703532817624316633209431524120515696185609387552400163968443120364377939554901734743889396683191691553092444183985838362273208138309488576164171741357943367409500535097367467978176442955010845435481047349773767835527625205930075574943146265690604717842215747766076802376062329783016634448375047597088771996657962739408018354645062105631981291546504361482839908473790471812947903860039344588469052368758442953946732483279831570603777128330385444654975130140120230989711411636306413230120217654893620654113957948266793056882768193155379534704515025540892174145444471975263066254504320651515831745959096606745415879479329115171075544233602384638376675152712626847299125146358117926468097792947583434453060764149870790591951335175403057541247372406945041451870702213059481800567470549869804544232321693890305603469207209384602481452520726291429084769529463887135641710986118896900159040869471970411100686472168666347521449461034771431808846299980293031583121719494819949791774447654054952259728026896156138155504623061040718006423163502654986587057376655109318663754672372205869073470413386561190704728621339932834109762672250908137039855513446692283143253609099431862771376930253400195433872387780021916723457235468761656093343002064711025924217931242222933359636679079399003233004393033144316442015156574440671659101355805754873010252733057759389779992847851188879595250551316829292192782964618577784288355259266400036883946446185038775508220049986343177812536535843355093607098436595834465805684442764630115158723154934778981804003574306879577785791734609518775395645973744414357469575714727748227034812452353045247318021668789315538537476319159423013141249275752677862919615834718370129240705823924742871248740415546815046521814423680953361997626779507722470139369323646882540221795739807751232529852456953504861018215138715285513923997832204655473116796542326892904515794875729744239557366570744882599237447620361541546017932058922754869043735872391349963670312202506185575114402742784300080548191293349445742451605234032848053478435791771736897745127937049787279652824736268636264413969282750254841215463607064710533122163010034826146856007625455187878415907428003167872021833253648396926421670387731542938356858517529926165204895272271601984452142540951567064704551169267821850329840765856522144060147341900457084185167263908145331644526178021787641224589115125828956996798389885137264144945227368628511549140027982945610967147992021047491633668914782384471461948048260225770743123088204688811304443562507079428034035726111609822922732245541376323283588660304116646886251043724970357926873245848637964692629837068545476736134560394261460414618947074464287649796903617835729890185560757494284323270203938003974886958610744555252532327072111605273183308766304323192178810426333839409229602241499030330846080293226408617636895442216548029423454105408835716897689972809078395624595500483822074295250654432470903757428317144505914650351852355882264425143178193826730909894953024654410777414990116457609203351189151890177264039882025865665290464695754053824414410364938730674564262591302644181495014019125695374018367196184332917413159642166275601586681483354922597264434611032449221247134308436355395871750778379769724257532488319217140296931077711179580679098529859284479711696783474296792606961379991967060309223648910667722453179325418095338478386927362100357510034080423612301496287017388251877212352882377261039015432405276512903561911860187142882093746055322994665045154346297192998627373428783943993616239630904315825899677892269502036111773324767647834025942431090387709104686596745986292995597718640165421849663957771145161637278183081202969403211615130416311629118202893093996268290366875078466549078038369077521543694758847662237790346592823507869295357668144169919883055859467818629718673787989359560485169075317342767902610854132515570796294046125447020760336403434653047691590454667875608593958497339083002644117540190907730142198780556798847853929296760711681622234106913490932810229523684433384647858443402474999364034955446500586714936638618814043150438752808114927031653353584242594395391727455396061815468741334860786542881950719461741877425682895618528785271145822390115268086544840163865936573837154007281143939396313666757103320804072018543680921739945832436627756098684023860085265813265823551602504014733644079148520967114296374781331130754572751814891862846234625558686138224215285720979154267759646605136729555710524084057492209738906617337216799890029888886024449082514874929730672937923529080905821857066410780999696316668139033145727320738837413962379995979772340997007951318035204674250157020419667390816820783983440397760542541415481396135067013348904747967934282333991310684714106985284909274155019289767759503921894249804014254675560049726088234588907509479476916795853145363010681770833202481296404375229643209376491076907749418406515684100941802473965914460489292393194731930936642919089870087521579377937083433529484625575270301706136033776734052560091350037702555421605906099235154065456366527166740802871013423270418313873468321479067680507589640268212084522870189456609925830066308056710758013926799219783237197218596119809738655218650242079785509937528493738795348698227998898056037248080646718269689281576655053228324304037934829102802071634949834282292177485961823884000502374423960561394730390293509578503200009217552570227998326438947514228496169105089790110302228703609317558351663717094799694227569039025626473317518864684438475192593971724070360149736350370893918138745428628576043247245083475713408341548819738206724784266221731467416653139437011113060769035805999129973847515576379300812266494005958278609365696226911730994730164258161160893612808290596496632113069768729575012146866946299908082557577726636794576143525958018726326327658594546873906020814875136484898549417761320707581790699378581576511174319732947782209874813949330018245468457553213997817151251103254714855252436499563679084856012873679125820828405551624912730548771655933365117523395701674510094575689597360681672331940412117139153791092545805208239823516260616558990330313341951188199440748412967442167228472365519438158430308436124238800234712475796375765333004350417527215546356324919131207063549767292614696110011358659043470473391865866861494195203900706233021232901440609564609532962928086235400983005127297071200551275998497801431873238959498992055138387299766086765423278445229459817237319304347844678409470603432177789310935640543839603187706398254464469176073834111291106428982222712317400403227570063141160868067578120437092001531101332991819912428388713609150486755535095171939154163975516993364883167794218914857506498952923952176323079683378295228163289829637003213967429994377404193022053435369875482122714865790833100069537028620622802865006600278266897182926926780971555408467811487352976488599306928068536841188053522131420021966479861095584456519870781392484172484164940341686870968455920834370747040697698938810941523186782465138285863535710786998815710096113776246799220259552954416330354276183663821916720839488387495733227606703013215072644821916036361333510958332925312104490349204681276607974069412412781002880202142993946729106303511266940876165485654641895050998883228237107959104637417975348487900494107647581592355249849258044676375573222344139433963976020975944959575551305014449288099576546381584550396226411900668830768859323752711799339957997998565721140018886613325038984451557350726959268183945574052329923297436848352645060999797297510391123121004496813264970607541167770489561689677248150575827961044083122237573990919722247866213710646288765596762977682752878470154004510143254087369030284837005605192464595513596962146625979328249003676195257048164569606867744963332610504110938535535669735395969396008515771378723292957796071021736092162485134733824064893975821281660060899016381692423377951935020823563233712131787756571614639981537055192542986210245825006712055865572334511706752950058584711382699755997922760785620414352812574591091158715880225111543058246004977797075163207046659620976450506227954426229947641130738020341726294462636356653374375434866825569022305677098828800520656162148792103489704592792149804643619737391552208195237530326859522003754689521077837200527137012179107696793828989169320312324902899181162177477065548216339544934320740480489542175621882752866900890035464484794884236181431084816808790220644052711683248860878813784214619282797928619561667276625831645938089641276020508991585269444866878082577427750123021670976803458477964364731821464339663073728240339201517435936493661664240148586876003825371805909029729293800059157597842061451782071106851751914272962054735855441386151258238227851572372678373874986230080734781290324947253851891942051920523196393756975602369924764402570194043523030787093552875137299018564944033071032670747641923375973896540302908856935547071717330180903910673966493493193317419860518838011003872824986314238912767608521508399994027836416339540655121843410413548587682506336681793111873166293197376059459604632530141892361651163548496753108849425109320911280159540168835635314621806735946117635149889863761711968908629934544937455681369739539064677097220138146453952593753441919095946729767184712434133938456027176983992231539174961412212151462466780654958141229033126069133168762573265227996667701094184212493133899318536355400042907147903276539645750609634929556131374749162261931698613241004371382220192907774713033869151323707630872577606234480620184733779470515833046461061698075348886371474402710062190559918278826465006852065812389541458566413336746341485687417729261929164046879521118565981248168878803618345591355684463376956985173645885727852221143783395116723348663981728414836346874806668125784400222054120720914293988870532259498405616899465080720004844558895836600662174337645158131257458635788741377796785137125238315950462898232751520268710084602175983985137308849794505083913278858774357200820622413679234007421423966836258751235737142674333185163053070824782120493164669574214744132166567508737545502631631207710131699874406714457535028381229011117679026189104962874099746106347183651023107753740093637727211419881067700157223311545887843898880222083069980073745481363116914560620950099816970845574167118554677866615111382647002815804705583781156672496010761884314405178001387561291398945088189184788996561975362488130050355558773975181261504241433759530195703449296779468537514540537687171503628731244760627483147254010041132420651052320583182345078636030300805123291249286185524636753881242712165874434545552404365678944835866974554489849241381722675618080220230707292107720893124938186195070196258613487180447793375846071738885946279155462347700110239766749189000284012198330788760355717181158530976807061098944101815320975454777494898083730899773064615582013597471240265568599784160638090193938937766775034850805340258675428993263963862902677383657643072332790696258940315003134257753152048795088047281189161955750424079842059044719859832274951462714014770872924630763273593477375931692739035153259840546020584602409442402732316154012282930255380266556925424281295844211180777965689480382077680811796864326566674570298484203472501923781358112394814316799406293936983823994637755923677619739574598333055226640337235582570897604862681480672375043721475963319150101268826323140415108402593454009445782508472681082059656871337747686037339572116737219065413623904528824758719839547672077078120490581809137707038401114320552442095218734450898572494088008556069504798134437263103881078506950878659992806140870226041693278344965873939521746142186613061205259811937695445031562295182847586136203451276162056808999040062055807926842310451740681924355544447236233844045071576819035748719698425291702196188428389258782892409146612664430843001481800080718579387230741576214639212691853973966663245042933062322873447777214023446987027298882563095032606214712229065211703400063314149806291038409704754055258962892292924572541484365414339868113836319176824418289816593951956722496315395955029921700295773940124929275110917489067458671448801702473064528082445089185159684425178841728986744268703762087241582104260132746009385297137729022073177702310672877323797363217378049021774288559510587161482150185965627163422234744164969631445637168008125824947640896535222287299624391618410609704850556733068289452814678599859764421359539030501820888424326691248406880608180089895155520151764639897367514497281615270397565946964680434082189109826972659634843415138029887559654625233665893559046718575132328872001187345291792810795227614518291411512347298357324016350253357061313010357067150281331804921714608308077842088438489396913694923080369823154719921774447511392383917834772600780343957772492887367559523422218155440430602325959541826825821982249148774498356443616430494513287884276405155262520849494866945949855718116922851736187142043377151062709027748351553281744169625398110719746160229965035425992760915811151103955145736058003688186542800876266696737213558459101655554962475051090648320507667001097139915123174003298978559266336048814355054372608990389517011404965484508328371163657618248611095042642475768795380674567435936229308836425916461889291201405268542584190710595611888814783134753500477576306075855719033786061048807663371561043162348687750798946404005820131563364577215753294831103711985689867171143604864974211164660455214603575051729243208180791490698673915411154120002162081381735252710596112290935573728187775191565947081082139638920048158461453809429960108952498480140863714512184696132866343224959394680556325272089017623441745738219125469439377635028526728867637649375893097594504934085885424882812245865135459295863069187748813772736229134189958459769664621535601765131284064731311376268553701692465630838357021647718344631509902478564928170614208115364521445301943400350821550869090666300446177165545156799189838303821770659990840200834704863037779733621744057526231301422414906302354293987622976002117068947910451933664540870327856448280751060144742367765400352157747048036149775200306938056964058272398728956069949430341478045284247267869788536336154791086375661204236358145749102966212255379770157278446454684414259829892499094453376776596128838659206260111514882816903184580990639698659202416196339382831260714793648006424639239162862755307588660118759008057592945511558108879863699987345190871011757565275300470968545258959662406005643212467371952594989610450747689836099361724869975624007941036831679011672153259696139694970360069089195307815621023849129071473045152121295344269348906463470284757443847764573997576285955399281132121172760302737506838342676787264672109698578184658136683734158773868352004930131686044509122308385258719268031198943838168524098083542033399312950631377931817346354470117391181454862747640773137207550849067031933094159006484680695032711958061339702410509310416270240326985545735891383257746418929784772075925824145640341743865481241210173760481353225503328855538963430720685306367524016176344686955955118746160919800996417182097168704692413359896076890569852790133107370648218422948584395869376371704874876797753910220345774139634296057803922584100319787663616015314447829433599385090765692002280358795177835716912316934384194140214581480777567311530037132167865343587569946484053005029219659356639109303411116208380423671553245664313531858429835199324218547757198438915357957862498796999834118032883309892292388294206768180669387307555907268274529121180266073227854093223938079503455757883308241596567695449578359669808649891206873428813450336038083819126591302241524738269488828721754458377570711530380740871002114501538080772818961057016406114778794354964605754570405432039292497986366895905172120325750467679123029654869676351203985942630639238146683579222713376699071610578742839518671932287285586871575517174521134963252872396827031258258786360272353464226097895049818128838253639732089912982633373364802092303287712549634413434500941441684476244690113381625409871769706665570826503021282224605777566874652295437637256246824379351153138935923337504049727134322111997506848031425266841940996367896430159921773964425012638069189217758151769526439751573920923239722298007765384165840484508196668387026752306854914914242508122297743244913372486449777256968689645305878944697120908659518809101422173202783591190247125271297751078585219289893694521944966918578166491954123293327543907379310350236715813510285943031592172706778128822222360687394575553955186928049939730076076346418322829694523579349967438237108593266358729887844694657896118387171112968052202756210293886143772894788181676293541273786225154859311598539697033245569860378851301895939696196599510946060159949229435846438353941076810287060817293712461975696445335738969695100665597569134239987819646683749692550543212434399456540575302476363746684553763811758612564932649451979405326288027122913585237596629919647668118276388150510590608054278867811421411139834489671262443736500908201987203464998291674873037671364316078704828365066209835096699438034358592277214915300315965939243928607377099096407780734080791344584740939431287990556099798216861270960624940633793981093294857877324270380821057297701772598629570128695217886006267061277502675287695536095845780724288897553199328048701005583006889777423626646933515112862065139688066890728881249025689566358044955332593095512482467471711143383023009617239079087770543417061713886005346379504045716895454947082360870756189530397556267912183296738630774235750636468270947094788116322917855274618838311897719347759354473189338545198642278072701049036239953717773124584018237613008701330809776916524036307113173608929620413860890407285326653051003902970386880107185193664819683274573360292438419945790647176374430712487972913522417383892566909127629376241306109879123661434008529124654718577017062645518306384376110588757616420914295650927925697571128549053939247571170504723429424585641490201539552442697561105529138164549824769687108986204841280224079765378805440785923432807335774733955732864590724684025708941913572853823732441314895777256499560783535815245735252755581133533359900587984016931229058622424844496330828744362077060603632205867085141693345248418720403033247345105153297928037939434663302415411434169678054314886253400151418243696706504584846234364356459374551326602824151435515183849682453486136477639192096401547172816084107570085293177292950117791172055134318912437728980532854948721016013159974337475981486858464245357065441484760133802327727277410419684866655491420318612613063096806168024548776046966527230988851000758555724564251472110830524983323995847127391070551887036888554302413116988541355688117398714102944571080553267421321191479904988374520467625356749104792060701243171444209882729417980726093986443075246285411379954303680228938960029816358431519087953089220856290783816114392657030731550370514744298935616436701010656276050995254176445866156991861127876471749755267147622152779426367617714466394915084222315069247628399193473636003905338835119680650846761941996428504621136858215778664472634743906711880344886082510163059785852292951847159498100333965263186655492270470275732030485209629491082182683142958703939285060611675349672969119500886664191135264079448244905969932494630921539187719722134231602832884610419708929078281204202164354845727922346497803054990707473768932068220346337981349999940428029641640673036158519759441738860191888056892289509866501697855525159744444479913206811910690262503453527147399301210394164546273928956586246495414992981943457482811583045972527525667987575309791394900773725454373311940824917602857779867792030630007624244326022651942581087139532119738059236738523005149137712815125920835713376686203756328958341399804555535018193188854941948351794317319877856356688420834977732206650230822394961606839257462850516345269487900196520012959140764642905254524250625378948480768839165343691179339044288232315446185976831195537587564822606229608881242851953429464243392514883089158989269292813941744985596547063291942992362870705902946674317382307193937922736723614803285772460580537950888494424282722531820521206631153241778503642229221622949088215854153629034224204453879055665056675449646936159653688109500692786797883244747225106699288149543467855134054337156249196865612967044727186441797992171215603918226215227284861669913747142888277483429006031265295467168731267232783499096404546390050626508690507213800272902159539623625790288967990051966240984756721185537782649130608091212007216392933645632609015609590427856361638823058613253673652383791434639414672872673148833103585809975774428445500609944639559335719736715169610257602077416581942238202173218962475912952521810673495264279679632397134328076959820124654787424652602223937224139454883884594089858321357116437287418484253030812977660915339937103280760744728465859857505526361152532560311191862627064444591333911607170761899674619197470086315354293389769088441654657314685917471859662119724656791855765778874808379867648355140193637395985955817788759360797665895798096799700754304127327341259654240177647922579299203962219605337911152237389968055656618297718649822090797637433199052683136864526137193762330402098902104355970815420305413843529818887186891941401923202823785365557516751512813288547376345027292160577490646330905731822469717441586673736315641682920344005449085097796291024080245379756388688647499309637251011908827225263741455434302537364504003367364710798318078103468211868708564507110909874829515657527818577497646327932483700158844847537850084109317380846284176560042024350326191896609101579060936013420250001947796151843135878948483143263530474688026280440079623078770785651733673072645054676535704322614350375956242683468596634720221261028015475464171477546617337259856911784431436840410535894780665548320386916178010392985312694156501213725379653645938280156803022591630136391125282473483850557814360407922143602764403254098163282885064483948335036091837239829487349382180976609978945761231104812438225932105885876089939626973422715098099935904689592544162473020445653452113799926324907690632287128282006326898499893205390698182963159009432872682690469191979371367886522497528978043993315512165762411089886303459687600004506413946045045516870068249642439898009042344570494098850625107462269140856946185323997775122936019749086794239014576985824811265987919350786708558787472983380374988200312414448519601604957058046756711418768658889847202878728968390943713491495452210771903539317398831417750849391472626568517688200815651145329915252674667894771798733728768853730539241667144839334462899575102007892881216365704126236521619479027057308657127389069145094450794460051213428592040560059842593624118688168904876406174761752360539873348347857500618220924378701790294011775145508828998428936033829776524245552150446474395157256242729334476545292492390540574910779494074850983552933280819080476129470662333847164345650156723032679596255672911554391309971769136441914612812262053209128516078309289742909905412546715427703688480365246740159555528730218977793584275510715463747134995875515931204165020063756142243780478692518814723092508814570832026389273231963623527664072676075430855420551382978405565911561694694380979863254447633469349458370293444574157135380512415438534177353653871826128895539218692188619018939420175537692606781302826909411115456557833579755236336380950155858621697643837225307404714924822250384849549698393015320812683513442571857341269170466919665885082377532638977475882705912940543872527643326194305432060859800476535319435751022141523474799191867757105119960874726750558271784811102608044010785442727936947071211046408521958862162997139824632442898347366869316906669179927168095220141189387970495844662437124559994865077446376140951018521770060980952513744606319945107036741269034890779232931255488509200584066052622764419282023751955145084194945508628645344937629361719538070008043661876689213281857637478748556753475559924954313702816267266696435936170712141750672725334598515180398367944468606268369210185037933492132393516611301104639503503225396781854876534857337729415931690620545429760996845001223596459632185877850522321428327388841893189198880414913924507268815837136437218341832142509469813085229942613688198247036747488339792289262489070558729007016356960918087665985911633041119233139005063229932662447745108587047562250260994229758659107076453995341042889153888808623226843191560037223954971406659481985839240757453292249413170953243323748689843139427495476415440049324262189952727783866832791516702129431161809816177876478919322688793353905083246625419897568147798887596445138733114505089302622365387344917058704959752528127112210076847534871726018716132878651019197150437085406110442647285828172943712617648357780053213639249474531847353825502842473949198215247342604419981235999255798314409903791294748969234920564854081106836299981221281851166153584288282686713678297232635591843042837179971937400356603705045005909808838871648936102505813071968147130580538834874221094338734651106749146566340093977272703469710095591012560481289986790929418437878060524709005792240324344451564856252470216040571672246052793066937381484603181990342784212048910941288174604575387366276610131094985055876084421195256872066013897053690389230038443903782376708533595707626686313884123429224264597864039261433080493569709710754786225212935160022270385030109724935592771103760881323745648593069466721669503139161706210484603840220016269696765866304068233719573806000906552749937253740205954773675056855768545501570758292170136753286450272437433430870855400765504595844370423433934246617085339596106051328921602955776243821912057736996943864802033682123712635808802893271332934748398345292204538006231490917533338110405457221900604456108756393916414378093067896809032167128424669884582085851767009227294363228093692543111645293213327130996480284253535013464662509661783299018129456870712196904632214390434970984265934696305764808515831400669834680323158570057730076333808570344753356534235817502104557120292700073030174943545965469832643575934306021336537416781376840190304050729263731117093657855380739538550068660909644117954282471125431814646665286082403443191585744849797107383634128022859024470605983362772944315234546801324158638536064377242364708501098570234261055405208533045392314115241428655638161794534844948510943957480905663090839155739185938495443117873863419132735761105224274446019362911755465212639783020151124843010926840514682848681193752191913504705141417870010058299702202277443523833682259352117125067524784427206898577728405837370184396064541877685865320244605528677202656295985289657285196034244948395648664917028761754966812661706316147183903072667894044101103910841081392743442443431702599804225904394984894521123118734164229783412020549157932347624997767305961940483732444703388292266162030594061585802683615335698471102745767960719500884067639804240986233235604480630718257179830027245791069711083825925483555793203261875226189839637697010811515866456019636836607203316606754669735208163626703333924732725973305337740289239191839108455019244506710841516234960208884408565484708806322456868043780290772361174871281745948078608641192485181186106258573827134730264823992546091840995181923885401925580884062740140597430065990609604079239095270620380846793711222377323762889543795935980848374719781375302820037719091925511385499100848169218199340602731775832436069442274722225297615893242791408659542487923321638684654610470646225806955112573845764192701639336026671373026537677860601672859865747581904398175751851142815162113352496818274445279309458974959493578198526016494288548744684629456904086847401381999134647757356933363522637106749457540351738418254195969000451654705527502719815118049717796451182963145571551452864754184524792181688762774350423988472634926819736096469427652880568195162147269544564958222859569639845553192634911434074691779898175358950988682127322195643051275116960983655216608142516370337133076552794506904596252603684239440476597300032745467478955803418661307337364797011867581384100241751101184527253505985639740276916965707388880484178605837885780178507043562691635399554786918152952993916194783853310231488014149230075878005234962997695506562567714171563748928315016657440465999254693333872188432073570700660248200344744139423663179143230667715253174002625528113599755931149583402262790826769660389885219477534793287011381647173894715094653492661023441894028598096428581412119685260214720503512781477580428736779449763063152259735830214608498042712972783741874548844173256772027964307319402164249862904393388902153279471031637940623389103004429491323588804936195062028886338191515344504760518889697255189980620243205140107599945744945604133834238282793118731066183961854530743700726823710956561075026310300982451114697411654951518427510396290665876627640813681725280783059963492173429283814477038885195093504126924738581519333059431046457798439021818080246636442552783350561963192321749015888845323575522031520705653483493547900143020871894330985235528503126975771724199771570229647191524732647538749951028615928997591045974157294755616080858540940797188858984747212522234939387862582332248531942493459693982225461094807611572824214050584206196239092994530660042062510514736835852482604990114383028169773185101604524721245540160288391665973548759560711214905417851861160665935169382093118247342095441497225756361143697115159054064712311190668907887947800079831483962745774624672220733305599441794124536723459287854431809590188954682277971248230666937257712022911977610961104124594768713784074408531477817635974036785839931005576381291523133142129498864181340672088437476439092722112981800111939600002218089327652900044172462051308679000165130845156694363130687241273960997062618821059896136760373894468399915262079536228570336092749006975475640029054466207758228172077906512050820953128878225060309973833495679512701701683590953062555681423601767834175878566233805107640414225495273883166496793177915853962288112442767674164842892433235784285338310109869970125075806716722596095736984093364314471322651807035390080854446487212525644444099228670384472904265728804198091922622771005443779106142532060893614965653238088863685473326844679898017430036078631903559469581539273216544425859613691500269575178579712222286022572951829526008009817696363914167580197584317505121087981823861219309791423843677064931002601941415919585542168200559102956344309874440082667630314132329138861684168384170599225777191217610401766235731827504665765216188253849223276615509133025150338228763911869293402457625274680233657301442852502184883945249408966387955220655747486890803096891547930855115124341804424786634918154337139246816370338877000140045204790316662382417390213286897566851889849721786071191495079869533912837231884700670080756489682841180525594538390587869388142778961593729193084230884051289972321620427283729804048867708206253204402032834477280520833818024127242644258138172972274649295187115459698708107643727734454986833105886939901105012134090125869624826756841823393512207023377049502393572296294833360382633195627634205538795740240147979555106391480224039087939870240609459386947395220453550435942366265639349236289826107892617696440824423428491091371831883829878256715178763229935288032592396564529909806667836932646932143227454693206315640100472885172163618959506473473460134506479320190497403900875673174069133690906816621000067912546033986258965390932442438267038280530485022082079071648006379973332977911554158546663294728788631206047768876721524441063780122677504165410189336855319610793746191522135589015186785110071870793394925047409614411325024125846776042369293278100476384017430168047193539017058796798877792824743313781615046851239368348833769704777724291573288040868335465524280110389718347329009596690313746224580448202847373346541321132955586134348535086289529307552967671321242773402476435494993583326681325399348608796123416991243501418137422718543080006079261399408221794901985235708611517912017314867904931849521912635520491184014484830435582013669885856084480333059689461320350073846873976082398386137415474088518374981807718894674977611936057575658967704607522142711705201640533251324761924302931654049026199454453357781832725864339290666819148146597328392530139699328392249236752507921922473948533578032705951163428077035624489592197125984837319582438665195483939941074122121078821409661258566989788712395709590405640153565311869591436515298767231179879880227990755384236332436320648502955357643704508992922905000792451499645065254932475946731765157450197093744315501842370221533574096886026441401048834350642167563101138954078898534880492459651356677214295941516527004648717038342356100347124687985504711071926620159763504042501682730134168405333998100705373911397467807646279522422287478500993374080852171464562496093762665193843241524578245107107560812050865541589194908207735243467670842757019391980050057509382761088446404077614614896371366174561983368757681708573741207693369492804213868321281172510500643327065089825283522225148971464416729868648430794827315144719219540090219133575411267920402805637194518980693502797746134968568693932998531688220101900228206013100002900044739173795427198700052444562450060288794852476117717198026593574001855686972921016920725599345329847599497156789594761959636233503911568031626162790247477114538375462619451690318144350963592910607692599617153315622071026545452198020696761699223861293337047981763340395108006354499437457664635378290979853193377099113693067173634661163100598307888521073990610496689719338200040663345348019808747040173383943456434840205620434696694121000526068653173393131172928659260114369980906378512516904889702294784940881335318160567998881453071687548154080803508920953204771963366634119481359273635896423792265163323546301234712173401341975134483745841036092009261151845966994728466928059797779996440104843295730299325598143784104546803356246934577948352367596217464337744212945084532788935769729868324968627534688049794651544913073402708293800209852129886333468590920259921405790230069868098798119540897624323224983794834809800993688535607426260777338748302519876891333164768689784956338918567643071246831535841201435921303674394689499661051745480774142506039589558357683579432448400804479055307380606838390979080412122315908002606163994901254194608910534616306676599683015121693119261937555003857274511268040040945640233124381813479544244866354724010654158909465013199722736477501243461442240374230996887880885182423779236450062914165983643023791084066643443797422595563662702767371576520062793799201562295668869238538937050676876963807125888665740815697752148531818012357971388447798515162467658326155887804436874996595404478716192487213498453953410672669734821537941715611785745176563289825335182596786605604228978446062272066959056393587289869690521637082470816418475632395733057241079833107331108211420648746742166505361420281629494719633283563310696564678103361427228793730232982798959116628001145540426131778970080814932092454280772943013858866052920766439635224034293245319602511174024837934390593503529549810595194936005093924762642971912790789249373535051092973091695972152698871108015966625649302246677339581771002714212145660277355546738159487611235335541333084166023303088801798643911239773285527551744221266070478987905529784923521500378359868483531458498630991337395542271757456598185209573140901274563222083174346145623707232658131656391967624936956419751364725641208519888545200499746809265202396729623199353447678626342669311542587709725117590757624037760180593329751469533906010521591568761718094063037064078001218783273892016611304180878939152506612315401869131636940746476403903684766272495299377724767680194960130465760878323366453030219450887562626964790481117406812858662216894092985312480324396946449561094576686798916970064400739402323049012450117482269089736154731884768788995807976609297164206728681517065831998895396084373496250408175775939518869611084667217546019945637293093581920445578762997307967742107957919962493566477256635559947690403457631599478797606865757977962680655873702504899104363060231283353546115998086827429435085730378646851822558158540399534825068753690169332784315460888224382181965639513486855014443389237563631073495989995537719821165754461233630525300544273506798632297972104266112773118102926545711336569970955418812411366425283929931678903217310842984039976545464702234821179111004930525875860723653297153171637003395306042081926042190248201143082900924159499078986128945610517613593067020138212806281300315338446676453600547515275038216841625821896626318542005894653835200959418346636759591899120305551231546142931768656752112504035486420434504036690005045720460332166830729218114003071669933700518481336273852983168104087041898275130645948273445770981254143181282246351112761655354714089122798090724750095254689273967484395763528632221993604684973206973403587889081156076501469336437808939628884968724853468120222420109619848444383809137078154282624361234827557387043000215445008460922528594269377007728551804257400926153875279062076860471982724157519999769008912586114364499238190125345595714318573561621377674730707214168035055809664218812475050979070429831363940271327222824907060385216383622511103788314338393937574145764900076303647673834950161289817580832507657767170858818674783259062785029929383550395763916243696019653462403136869991971219184395789969674024673634452534993309285430727967023065941884480087660307735200495939975374410868128975463747701987467111317807431529209491000813025593839218923303433352074384947106708306174737455099982234868177870805825640303835572831953710444906455401316443584215699872070103201016592979866461237743136767913417624143060680993875771085349766181805054413848986391980081504178781709633508375768854372745885371620828642194446376737523758752067210065575193089009124091201149560451106920576741726591642560540361456460539919777847918032028426090783040146822023973446327610563812748686253788106574777943645432489695084598701373437115688930744237164714857976800347833422470749171179177368253967863442481077319727014375582209134814682417591698023105327159440553369238175324362984921748803887200056461546031016543808773112994938500308663860961735127529893320635844600673327256316936718625980856678786962104957448381148106328044273740411928105068771257700150472776234754863945760831113391817345174269320972235434754242596291696188582119418007427908552568087313816723055695788004234597402543319070580346360751705883364443489688372481883257614470731719438365825618827576104527068611587432684056104752626619093970574782289740452360670242463503052120482727789476056468477167912700855716492023801742290940010182578411089296033974115245718892142410506588809603481059273156068097250657454664574212039833130172999516072828373898782239967077409130874963887021093794722629200724989180158383216680280976076400449987776948511168670744141369201914069804784056690686069878421705717415652620436343025436127587012024786567440594048330180215187297517102494210790250430425720096383110205129568400641107340587822554943578045511280622603810141625255516524979623589030978997738240031174498773868601849078808364959604213916571832349754309951726662179614879376616502104448464364102775171778493381570069736003106910864455341747853292276302990672744198282172276754143735260382667811998192402346192495872911403755010523570028913855193757299475419212315519514696368499568089252039697458020057299641495047189780369435503568378958636936872067032181584130651540835338028225055463202328046842707691871944239277956850851121192664264778762622230413325657742720256649335451406949557354021928849112528570839557082674864302431191736469323894028918198534592493491496253404899788374983019328326665148082444274377848891219703381590914035148307005121946852922782173445906529018140761937765000135085859575389438329002327850103539752471020065025726726935939102084782157028216491170096733498594413253529322057226560932305711018752322287087597472524728548871131664938807479034253945767068559524180560678098193986587022023180563756067772379817263652793767629918183462250410005212077118651704327712535607329184251780032899611697482921248732262270039051609465220331567445326958900114081335967092167357394344338444516750246442492467668694721487024535271738676543293612678038928149255577660713725145995751622798069192282662723521784252510210809581401810132911148766356442561568700312410776531932680102990451188290225016055589320901164233882592137705833355364141365665454726120033378159698296659911595084210456365583739144622449371144994340831063219991363865674094085089994120508408946426700880178779754845332328508320835808275587967912624121738645423754038411330807978614370106625895308257652331542021473197391753437727780026563795561352444044470859634456339009025668257189426404544570995264374492930545336420591349314454048657033184230569484636341196420183839821761904365352649211178542821900488612186330257418320232469020368303336164153342043483874563831215007218493186229202834234404099256135945325283925267571233375950461964845381192780831792351820872636258147390945699135212026244797363240576644975358789223541520177493119043607005606833714999505016110416218048637880672120906484112630843325966811613936500077061953772823507125762828791951766955669674320420428412647311244627090185424554730745493527517504857564978995601651182681522148099544817353181355093743120944206559493541575716380366041833723075897696162526551287813011760146720361537675831833576306343747222733517390187320750123719707967851359686999008193672986025193030238341577941454372019000229310807773591326125106389802739506384936836868631242750245728927049808934969462490290808735094614577765056161956800557935961969541684449889000581334906936533365262532682771736664966406188291615725367513196753396257607721354541095787742615335349424233604096645764121371266899819851860106370952323962248790120650308266304428487471832711937056796493351156247138217036540798764963066725405570792522158740975715277186812561540738491390071925983255310271462721955799753739839856701475345588767450456434501756370793136990536431394360519654884464947014940175979004947095605769441879299999333266497884885592220848102549910452467200479180240886688611502635062041416694278764731442986648730771136306004180169904429161832483097252639322540637698209772577423861053706095702422426912396542306595752799491572551103690997311812909179453508248229826126386095772856355316577358714895950961741662451425674449603674891695511372677772580393917416724497441430770888588475412360625443339369188606133122877753383097001195623374964980733776332351064837292774648318698584668924352270960038830257068346892020387928127312147608018306576977860959339571205061138579275835777655537577561832403765782892192165462441982788299702183757075120767065413197602927050127362281137888758606349885876129680626135760274169665156881001747963200817331934124292807723961670136012467058499052765560950892590023451607007140392025288343717809500852019880947643050249238073420297873250641273277994606778742119829248092916526271768928399926685518600036421926441716620034549594742130529356701047589668935992546005399189122473875920559107367252514884393053395124871845842222061336065868529971749914210507333566368593504461840517993321939964565588708986279328371703346411153738196028943697080672374538287893338269925603429881737462474323425410739718724607581521237891816307257892568167249758231203219881499052980188921080366964240343050621896750952452602899674325849689826773364891373530472068639569208553821108603357713476398977116019553056340595264693172706141183889081525492782506589545517672749943889514973548859621193437378205306854637430515676306156586232898876382822454832397431197503822102160801615258777256307722853777274087512666043763178264645224463557640061443353247959431291300745177530539159515756764117162882794891412584759736770292092299996443259673969344354605557670424979905812661203308470150208598228732982273298307898650602883500487125314324185567177131514487778225488972737074436087664676143874652148730958227783746907535955847599571836778194071338634133446408281948572047391765752078803221863765572411562579483775716947598111207729450045641082330232252326013005410316508092043810925243467237182888306009803001581418171224527598969333896020951618404024844010525826671903692574472258779730242947057337272299509557112324963662543637321227686804054471429040982176972700638336713139743515804460631161212883623912823089908911853180934599618899196506077916901667983030586588431402394534695077249608460222072533821415403451256033850300868122280891653218005827578203384639352786896769650901187500603223150870415858230308846744824545566844390531493399669794951011242081184769859100243469088974345098034853644961948377477477135054999853465921291188886978878667259450734614001057747421726360383115577210838384610146085347966731204254504418600200965473563268760746359395693943224628882133228639802641587549920270278640989458389078288082096970296075788496039907191533585298478905330582624120613564643889723200078535089051307711585462073499442803652434543666739947536571210280529626533138236479196520934230521848274142796956271773087825473673959481981659358183114929351010107793221526562183847946499715175736922675018694226011708417258724425778785507432697468984353886811595536647138943597521264884164495499871481233308847515486729243268378589503262596599157612410646635754432197744056109037916814387376599006171898460166821918388534950928395799430703750011157182596519371979986025634457410129676401983442879281652305090740312991130602363451999228996201587747875458498939142121102778312859199655439153482510918458605414612313477390681901315174834953570452220347306278612818098687530458944214836747753510655351931930032405206882494159761888544348176210383226121651051243992343786044169297458700183785573292702039693853262809684051305593512550547869389375135385881229930160198622916448495932065014584456376401905167618929604540264642616956231134416082338365273148017457108210916474901195690335242226983900393896346344269413938884853003453678051913255209522560554288668244834139576198321505783596593663118613749352743205776478259871816746911684751207064115275519849903772981276500911850904902731921768018150186878522419381631371792797279012563698424749021969714681771494019977682704437688416113521593289795916670371702459208317482791687401184909063136395347720335590714181421581369921712909560988411668311455015555181123940990173544942830403644066021207317752783721960071379997559821988966833803766361629251376975702019438525402073720032591897247837932209635192440798675075710170545231681080585629565852935144138935323803049183024470475401039859440218544507785023474981606940951065700845832343559724496666113681913697984024829818402513105983128794057320945130052512331126123846633423739170471359558927475329102186202204333815125339574136608061977820082986192613649137295260965191328260592194545794577907691078637976139099953695728375584909417860030550473284033261734615460571560733330032441660980319694274746568345091664166609362181481134021058227931795430324368709221291290721141161209822852895075459871293823758618151321857814984235816307965137890037007340467300011839428282712764124720358115469227522292735932962766843161417527785183796407991515288056826874163534237638986893507721451064880485957161006356942453529893211422918013900927673069213728240807044125843198279843709368136461165268833533489394000079398495391852718346413373023831239748190695183621609232919465410899049630148302355319091683124878438607826086868061345957080628680042038047118205147632270637267639300040821072234890449698985328726047610038812090671879452177441688943558137712068037937011649264112575551074962497096536697278269958340425878003594716203464594023389300225182113638885679525865425449325018636856997408017479610499360876863199316934714943293398823097860308770302415580109770426033910579644024388450009355317847613289610233829801304238335247175816032882380343882670775188010608347657608458131778071182525379429905506718058868376827381283503331216063285809129542980585417732515794710673118128438644894720628070453289177378303587277112235975711507114249428954482890110891975216260533133984313064925426179544845689553164359918618075511744393468758902091676065914290270473270326735571782129877146755767872895258829104968436558938374463817728489560891754113379549690462889488309349151619571038016885806310923983785668718495789686352317207686074511973810520807064608566985189205650288572599921957243917360450813740119631947971118833229011168773192074319710898217301691283718888331778210316283552138693499329421202658771071719855832832947805367501134125026431688592418469309833078905268393284384858211643087508781890929487746079644317253105898376841312090093397577506724005097494314130006107518761753557366829641872897322675728707270959613455237381084891116764175674926462907874516468044745882586517055557611263194801618524506691600768098081674654362692662283819283745276170782795918538867920713968227053296213140855686324658496771132440438061023338141942819096387951067284562700462935884122439823731175927145629821946861528814511401704634629984883828598952760299416600193770495061325099729808498228456661421710402452898021380304278018552654060070940066993113251449174622708792675286605385579465956758737462219486707225212758584196170394662872375977823494423468813177162149697897018737778795226512577276688684268703422539230085519553634548872373928994282493302310718598675804423902850922173313139099500114907951799907631257091750754363687299994267404824071743744733412439959754152819398571408270961957394591860991899715438583151290358114017819221875023130353261976551328449211239502270377714269657629278961509203090659774893240889293381095332531862137570076161247400248078754992439208515719297207627642971649704491784547447541568680269322173271194719027832995048913332788283922354972963334731435135998340648476991120271958849842598714836217874769310649541361193234416176927874039271602561394244809611025827722969336619700904141059643882730843957004452045998200996759328844285064900274026803896811559578330273394570856646610278265748459119564847310695837966524250012691502102270361232177824782590865754964924192085753966113470874940925293307907514236378477303644719785271421231689494498200934572948101568318052285907120955465936411967918938253750283942061690251340692568950292981223184681591760938767127025422321210779940804210501728761265087777151972019009734157421286817039416071066587646412447638531032877159043764871022696656943089589050086468013060227062510259275331177846750417498311476283078279745949818089695337117576439056280958235315894638751956825740436890462203485071789240105474500191205704031048915062314815770318841678128999873680316742989773325373216647453755696602576325052597216547492928836159484662904435758699548212448006803645229610915280548579559094515746656406254304350301606396980821818104468812889112687702285832115897919160441026841720154279466714454536635870049802263465029289976092607114076384475743185613112489409146823385623188020687583579149730530955952552331094012940200255363211962606168477818869295363783397976245972243184741373905528501820750225159356807123032407387836467166569139808804783996220869897828416034054012122320074478436368687880222794077869070687058612695281995526706352303484795589534912417324577777128459201503486593348028820550415342036758061836176399610308623755812678721028326417240334718355345009414570950086689833760982081048474332091648447810906576696912111076410058178191915643081737222339409348638018022395912958471311049694994537181791207079166350362646484235412114393606587775733386300131671237078376841033164972667195513632068190161129619751064187717855172605317684346301161048591805357336947896699897454934682517841108339838280463380629429928703545187088676902480023274228040705335067554672896453372129441373120654683829052433971009161025489590886026202001566825757512192025929488942603663265062425373669970015597808435920217177445668874892464682489510678841444320742231374043574801574380391040489219242163699967746482290874517490720468335422037080725485871936617582487657693533034088851016044681641796544207300567220565969607059982995773772992933512725465571420797164101357212391367029661111897832569244981706772210960826816045073973256931619605475932207770105164695917891639267138003469401059936265000855578974176726093698516320410981373402770937371460344508444107625178703906403332595397680640063913733058734014076649587272219962038166388147165135117818736545599448530884165405967085483059707114885294386723822629657509207221515763252750082026510556842264156078533994405381457373042154118882248518475141506131532819333070335257768279352632683050109307167374412255176706714972908139108960355392765082609527324335569237078670635178977165913576547756408804958214171199909839997389222783093928503005801875128891601910134563679739763089985383456429487013286280781687119825611023941202934326728771666635824308171681343593761543325438037082281108297886403976162476181980633182838783299930449715619854444275950752693647042782533561885980176823573596123473746458228161280271015842363337600265785154328779415250330608725796820090516129754698200585177808633529370407716197561180684702376814584427453028928180793048491747444758615710769418080991559086661977857840214697073504503146414202789540408899848220672202615562026483684743539359192345516621950987737858936119945872950090762216075518020597303417904901714571149364311357718750265063878255523788896044602413388793912788342327974709656205105329716637818790619472110622225955024254636844853807391177970055119621939370078700085776555784907304468786221209958141557722528675801183628811252893642693699123658576533430913186709842888752303749385020619745149586883043129651191701379454048601722645101747107425213064010962191745016913859887849917260559284708075395586656147324605497085136886223562760347595023249773840551133251871676669477815503550919958145729904151451369618948202509288567150852913973475541393187234793257414884144827833903817081163083984666860175095676016676168308466303890837358893698739653623372899823851831697080283525095872080312834812668020327127859169515577744091856449567086084162795357086329152395299961720290420685908555231759784728199536086864907567257856765787054587458971567792372985513993845873282908614511917262162904741082120975452760229733077040610190748371757947381039888045909739783582310892776975542831820110959667937104784093055418526104644738391981150014542539560976435227308088394675817751367244118186183870125226070662874071879182408580379779012188616793501472856570500350393349806257857166748913406194350405307323309570058981722809832921376271662040149915622627161212540117331917567076796585744119320777170266431277161184221919366741224124936693410849254738192462362109405474780824672115105550087103411266465579414988757753692106825332844969126980512499290692140500336724298924692358695592492803271700603324753678480434789807291966682070023389566175485974565505112824309773492978076144457939387024377515244004190819123737076903599133941941466980029887862122959682343603637345115391299401547408740737886247398804063374556475950274245249734606630383398387971895220714375044641005352293453913980334551519855572308797364986514780754077012132754403433646876045791988524716627199277403869240845340988077564330141247083166245646847175324855201254090618941949375808264018361032425072811657610201411490153154590223632145257902108230482064239517549887705030743397020854411192706407809332933295842813405708413020649297850051958149791506045049238368253004832236597217869629048390825079238601664230837609268441548374181086566733709397684866330633311764279630116423987833382721255621116902874667954597398285764170481217811732499704893349589571316516978351775158604464253073364583317966503718371705895077319148124922078684975002636962165579430415501351903530334416025886434791681362029671814240974484859597979034430882451675221381336318894425853256443290995893692052510919327264128057845844343040074038314565018732424811536512416818791527357220427279652949089149753928086652285889779160935068276883807851520081724902292191739556883996763337111323194457170943286306474359112166702771123459798495508458496557693459073887475400105179389431472636138180184139650813235649641786392331239833910225265742134577551479701841692500853117519816910456993326830601265300845117916565992367717374071780285111787680412009487181418266408268263065478792293291795437977633405897085673502587235809391591825035326713449917520760291889556550463865433372276041369699158637882620585921285071708995397638329807986144963856997530684033176199458227033123885284520953480348678895084119399408761662542045131520919006716317042420596520387059469694699389001981813742892302856918438421177317856064350430589540555999115229560276200288997902416442660461666375666349374790910019752827861007955323353463908217797921999967580875834018176823707182781637927454283988969545901691139682192842591079709226779602458566568081081704346446995036353870053814225500739525514987182772940938944254876486447378370737977732589539975152988304249461621261647386125013893784904885461254585938946284879099227117624424742166026960907390625240493033438554522042380391510894051073764420826327069374382877942889625662574842090681593734838323413688567296261547320912469460466629729725640467907392487056692233462457339576621640166002076222139420511421531051253363824098654310476245139264725679968716906988269969206198590748224926599826241285189573358495468453695909879491473527881957015874296462372733881504904564110869696174728506222043058864509943071922976660378881688679744598011467747508711442930871217811780996743475183804428277580209859306695875345434139725367969291962722561278572259554732250205227594845126157615809442359940009875993622004751024800980832034906082397468851374288147829659184193054351146112909264967489776440364237340306992889664854034222439641668794673585681262174755026434090657636131343408038617057109907669785192046016987336540752812356410562359023838795735093694982035297846333335322443639887170128656462624337467029455000398945153534348611071292826493025368441424299184139997225270151396769775543148170224989318742769672144681052692696996451643478029087256461937601888445746597397523173101255069981402977260432001904823977154356454824410227665242905406532068982901272318705769448866204896306850639250581130862765128432282738868609556137048109679735382868216993451118451913444885649225027372354030283965013655685400510281046535867212160441482291390920036379396602053203836985377610639261915525011239782803578761362761603306470505361011933554403997112237385036165745104677276988841176453796505160122659339943781832843615757282274492663817216380263916030357117746315745804412140840914324030519433107313247079694744915404219094753605038233010334272021593696378563598219397229149640950809422009848096648687700635919664803239466481189594158016027060587432598491649249829369574286666592502943708068392699058301667398469405021148540560952429844976786152747047094668374468533082405544137636514734656890353535671113516188780504200050890413454113758640194347512835707753475082612045159334938198249892637233155232599055823459248790045471123854672213925653456862980312889544384341806727631394428531620117413011226322450877164469939367916739742307829656819399144398954035685591633461087576917803159910418944985833151249476315073552931976357874340338794260208377990528471240564150414996803969612087464591272363922427455503306025204429968683407637087809271608401506919749277882084537327081420109684580520830110131107818263727555683762063586752111054361939258691549720641292289925214764693728988525046342195714552012101915514713087211092008472408426078723226453001053771705741156271728514025335751371901192110228702117493324867655006224016156715416638107014730680189770292464519546237581065275724064762908789968898248794575644181564776682016194735382176748505345591597911709025853954322213457372928235251312785781342538518534066979107685101048339234177796347320648391949038469416477442846023476237915230016153091406411240130693123885883904347837927287755049252227878291637438841464661033886114957519807982604610811459315251414033666438485793168365030461317901662345201256400508636433945144553548958605974359626507979010946455936605764542780252282974082379950235659051134090665070990485470720561741287629533409964689069171494711940727244367598695690453265304187930916468639610783268568024393487976210954773169671415294181061596343799769646641317955660717125813559846946638061392730159661310686877492006995494237767515326756980806638675854374065248865592223868549265489166938340005881546824180311922216981954255407062101011391294696163922301275388115617554190400857898369600396173720239327603020021230698745351780406271618091749467448351899371835306064223257213758766485985359309717473299783364810501332033337771910065875811068184757823500927223986862542748743134525898809770567121378553822622920765056302807220909042368750571861489022421753351276112658438372387673662542439050177952869074185595351220813834398784368188011177874625759511375638318190068356047658273225598305501565590164352963542645215608742420520901474472562034011229374422276103926438512067355531492451574030791782147373292151838581920585617531033084324878646571300770529926338220407172102211064112618081400237798520684218804142393602990980857235565678200236158299141837476550498648236341095044304873758552202787865158885968984434749343672389550407815902104375796125786110864254109525477241269367379971910468882654288936290814689971571169830751385730278997816754552718084263245825436519512665876975923695410630881391554208280242438975338649010217340088211256661193349819019903816934987735119999895693735776558714838387000411903620691103204722623257815903342007994299232525870044355384721040423581215039037227850619961538612383096342234817083536191752133969120053481793230027082393237817227863245453391811377168107693433414695816809653153786836504826876792102877027472156105481137688265637657265560702971902082538731257778447553578538917330502938847968161578132382411655911644062023667745586105135071159335516750601347443821616391091584685840437045663416884089470041936631791555731321613752209532565496419894491855771177329466462680288633782728449635948959091892302768521758116269480174949226251329318343879359389049699661071744605849411918651750234892037298409454785190877950436138076916060408222566624654948283739644684475613742911346093650462021508767139532450563830581842941339411693035982931914134710107266119758185787442676391745868177806111442022834948764058418941238632979704870812218643214510760317591943902185846933319698102011235483719735335266265022816312270479579976116355560563658702693822561537422095431136868979675548439422063433032748265739484536726406062372587128248816662015358565985258771075902389405677581448206972732229475556454421890843697943630455908745719917537833129989077700055037994290119358080414485414682945135276105151547358785732551493234405093842969372068964970424091643746896126513842484750010450343335209984982933355281610650741022847785974906268955620979941726469723595393271609869239705803976518366954465233622972678963678834255089295836197200636393278776418647063110703750646031521149044780714829341441579959382738583262160954483784052382990127293018894584455422189580009219597040551361744425458847744280281179405920007287382821161795779297957602336240126242988363478907073095305819468641216646360755423013285051709156930093231541946780442968978723087914788859258808391423823938465836893197974509166619620270510716469612952845669990069570852977861266065691454420869102653067714188043467486033949832153630162434044626655794797619480355299348888758783011647655434508210587123780243476539357188155083285629110718709768722729527590734727045466172072625871833694904284087926259785594196772078017957013265034659378507592943452713578098009297659564011640993477521667930882440591679278662792813743400747855330374791197351944069239136110802999896951228071476056115829905886480690852945005468695293131448765687396633738997703167383675425108797559679390392360153961726238920356671766682519930446078426870160476175531702785319103396768048448698648801311040852888148688748830839888322378544358024285235687158180293761592384015211876538654663515750892787527691426109051539059109152627629637782606618718173005631548285560459324388622660787813435664561769233676056208583793311974768823044464550930093658843951882683594084816956896367112012142455137891506656979834991567099153218372296929450262315693842082618012616167591903966875019490757803252578712845524054742694807289232197940306834778174114222276976971974139348663537304995853481673403776156613415129674061395506741627471427605805780500856990649400960699201787400979936747223384575139741998539966498631666951004245588455229578158109946699746533076329991547777655832211845911520380610318603239155933990504026557516689970720268369751461286689583638484218556396072874101869410743740493907418243516323640121746603294722422183899747407725924847406380735391433927786778760957838247858349490188468195467564626005444140256882043712496920340379441160731825145441057016911690738569790035389284779173092972106551322143713243255738597434158133081093926123847102046006656323190031852584543561897886534044356569885080847225825139026030740880462706116667672792123722845351666514358336670882966613636907549967727159304186165950128843014071259239883151684190667387196843593263290422040151500044265075759810027279982673002920948470689274969542405872522438383360052688350054521597838658388356335494484235744762992474095892970403296749533019822210769955731484739698095298831206182287470131529915572008591560545872179876951855726288084772260975450151790714866387198226147990559778605012441839519707508779602242958934624057464288501115197616763165531725014700565655535337063090376483086440548653562940858484978478525733611514702006056824399175882648159146736542172800846731552714454973033958380032043277700404942703645263683939526827917234084061096012686257343495831492006875987016858400878757234713739997830174950340721429186626077530936784533355773658907408773543476092387110868173386818396228948791212405175090923000955867322663043185411976768502100763898047918558333620114199510034190996445940736494017754016883176395671465809194790803112899968860042260314889428367333762530731051674654114763990793908640916409445679225715756287118074249533460586110945060069590144220538027996089894218545766569533345531833539035903328109819338683021952552626997222846505338889313352950821808468998224111730678888825136286036531357892039596186020046005927665075377157435531055236837645067576106254384025782964187345997901821686067966124681118748294147675213406183281338639652924860371846420409946418064704044207524628761319525404197115453154211715828740436535986517721465974319452876955992794410188368072457426602724640547550075483752167005827978280924324909389877226696447980385801422813889669468830214961191123347885779424986252604000954060043872855856902805643317465844602613816391860455478828461219694803290146363326201927980615751216112749349617811146383496997271782618521176967042410363612970017297685142746703069542193311960681071012250197093581541407090868402275098829296587232513710419544759593040404263036158487676511619938112340349178988091605811522385718659634451402681955737466272751668324497695954660917037979161071396345351609817191649763305706424851991309590563712339758343198803796750283367004882038132130318524380021298099595350735964815955547678998259178166183271414655093578720010274958164440776226216186591798994231754690802168565211363905385339258722299094736489099604550616891978247429053352969888939248173322671417096302481564413676393970069947270903325655991401999678489159484890889556088928416533743635150578452351989691235762719607360620214463819055316088931336058456061199115995932734207921963282744836274503565351802054440751877969767988932249718295914175632574347747243941114968494582565409145679552195752470471686119720841653020330302213645555069187371367315084804547088921286087490629756723938290578160471305027289718164860969649918826213690155538503139374289959811736911077665153779253392740208014972699377974291852750778323935994797724752093839107779845701715542919929497830415592794222492011459786502413132851719230864205543709333411303161457367609675584396928157136061283288444281016678850655650463218058699409304458420437470956298972272453442212672686476714144988922864854501004680679874577991114922949202275288689166577908046301389987131971793423586790076455728848321572036799414783156401588211690965598984499037881004644275915276471369905258373932223071841884746827972010247976705147547807812993590232309296218534122853983598930419610518490939513123555334041545503855737250796200634887439104444255593247401036761702242156726797093054198206949954025717208939382962580929584606812171982585365406128540311721779027922737883308591358051345184755827754402735519256286940718461929227678086074965375666247324878316682587561812738103566453641272157507061011490675369010238760554065293187670509546437766084124416784804686850957514669221935178107237167236691817184508933378037491676096895466972012131272658153831093496391358911466902384578269174638221414596876581972202138642118816371387503762618160933242579973403829977806383975870060897624704978169019033865131317099936764069001642389545005554748530521784940149532698836570417852230969455145935660266488420464603668803765304138700814972346481507958928653168436270750720982611473601945958212835085183569767280213643411225438662947841029224038902403904440051109441431763376161345690832146026005003892072000397831525644701298456011392076244956562509477298191760043163381859551974781750044370503830252189185836471716837772717005487343642412790564633853871770996724779165299861090242974163648289237017094359003425018273550405918157342795655153257981003923519911228608392872805902183988190117518072947282006968582791766304970339650852880265751213128900756455879303936503475908165222985988343022758918032250804281314958016235548268928358598989731695442971137211950679898018222114474971360464222210936464922340363471278262177105562708229195654946595355086572604510741320222294969745549360335113548586451832565677183088058767072080689628482138766650516093345275358497752340971472490752813600390724423178313654127037661102175530535298133103374417375286388422112264023620914098093318500404102352341110893589517536905688400998112885231928920275366547045137992404225871983399988570934926157912441579551246278463734236759244517672622251168636592687406908222137017384200693089901314360045644545246659396199959578516835818272005713527373443530579182350701636824035860222038584053884701696666868509785163176137354431611273292453895207698204758460637120126221444757074676911448746521224158119837636504567634620121022268162421818448218068503413636961225996463854359430690800851953381195761876401599764299000218454983022269664787617352137156482602672763406039748891139769115529474598978322436158042246991172391943500404299060151224733545012350315550132175426036753941800831185303733613488722812135859140577952426443495256695207446517585412886132053755225141726913364017026038621822470368920847778534674728033500206639863346733819094227455655965468126161016912832018183908545281434754025019752632657344324152898248771278619902619357202921115622572676875963354394287191641502035545399576639008632362814531808028689658569932849305160256829512577547112412898188686565787881868783173764224734741203735401436878706220735724160747706219172892717186708328849626475236557350626797883918898705442663543225504515890495702911015273016137566111447886311504281044390474918148330895731965248730668162092813189103152829776287099319137021866097832020542818875599339125624265340212236496756751446746466784465055751061499559179210856823048751911820189466989945788126815032628027782484203365838348247277890478423156316152792097618281943247655654171462711442455177947431035099325538520029874266973938208277332817643669256938579563815231380577835899053084558028802190334935403826407332110945970924121639955070498278430376629530098500707543422200407400152514880752729233957549168788897937350487403897069160011808517083693581723935391371622657263473407077598514498804951180245608862354054840442885464644247687678728819832367415064821280238420159125367218570879781984445449761376482155085138986391984203641243243395163598969924661505847033511853202178555493302710524028634050045158688365325939579119846512068128161726526741306309355256799938784952363049882112834344375326576210518655568573928498320238439964154528218151264934417689747717680376229456049014588215723901254019691350425775655800476908655940586468753133569354484964348599428006364238680550450302816511548560054018241877891164527841315945337100518230206938344731580950692831415272143474696516124542812726145879779699657175537262244688510563659751855203631986895965362945308944345561310780906934923473404437906313800025447126471830774017447802844783972442257330547902767838786458913874126893966384413771032211992339593079042010873863928106368720725132378458499398921079290925611159942670540051811463504475822704589847432551929887215634817092758645695469256793085293422333803293351141448563191414215579225765525101105214695252806302015064797837880682335116669932712279268620567822836978696999314092403153562177410985714261383782113322674893857344478782891095873244289077913886099815269444481866798203923389398556155104925784138503802933017886887083777810218109734021472559000667594104585915152812458507731243358004336428640524222880919475040740403522442511667566842821871017635872783455158267140812040850708742262127411163090041003452814038603043241984778538521320574555668424326499408979482391669681089641081756754699584263632084505529848417331137095116621885787266283608834181526562698196295745891717837693807433919208467419009418090787768450116340455481582097649649127906736236370894523041332299816191542595969365034713872209383227903149123487143349088984488380439885738202395807076855039469226531021175000959304004506717682736288531200967639704520649992047044062507658902292077007308608190326681280659222802750269383425188330331821152150890404898901765969368404448464256875354876192127666890954633613556974236794388552084958285992998087565446972869802553517374995860446590908332080807512570510082473233335659096577868977255492688413462262137138834594165891835244965971248850331664520639139295737174501308256683066006065641106586444206957257665226395061482940530600576569886647741993887119799590708588600606826949114923192160094578194303665363423372791883695334251058195801359954570503652161239023015464615011646667681258534738170125665233357975396365880953880268660936233198808238152197117542772513603515573050049627849432863737805593556901656267917397859956461574773568933804240708486329995725980458237700263519043582970515081663339943010037832798052561925327263721648148287574479239523903565157873336526534290352454424097653756748421376094694529558571384791922618880659731282497489797050157846765357789668650152983361293674278629434303539040997606345376524030703775975729964500936013839842235152390324610147246946702004932922779238735485224060465742283706473012714278373613033181954552219099799115392981286946928089074655297166405705911632535358829031055228512632107702246235644486915538362124912744391935679963896566036719527567598597350709980745624367830844832486074472350965182838926766743415171398969468940753865211704441795278848648154004750113114452529148605734874310520754842811489577030268417035333686800731391468615952987483787176053750736703472582879615635025842402929865835245195515632586168207777485645503377851128238559816493220927407070356650117429106993350059272610180336605323133863684542623714817961872560383584031834811900296669998811572817716849731107575240766594008973120955440315471620424769360473310273615350039696412152939525513047339758196848254010731660182155731163345353534308030614670930033413779604152027061399831225478593694216963435994863081317913020680967178973173134072112536971442326856192464856914777857435195079405677125547969943001869733422794124920543225472726265548551417067298125990853528846398468438764421581562390777914630280260149495395530946586587198792305445556853575570710968733540726067522330414551213507494212350643451917785516194698179223527189688359276195538962646693172562778888740797736709932195745982484859382674989018058070908361603927884718010460201824416720702898274338725137625998065154115064606341677546091741034642953872774474013346419145193313962740978707524923723876601150212778952339315448350329547979641753187135222531936617411724410667941334657379198716974070717619408247768685155005063841833406729485312458701789069721759602654184311137774276065223442737196541497730265334729980586118247364832880491282899768131680644398459506650752265872210158150826242885496046301859141647477920214064530307679390853943879557829829522421967040946471289177374158703243599002508586660122673259322288436638037259208431200538393386526588871801411629907557109861149664193720944714216264525808032986038002058694326157081919002241254622654572026984895055647292630809699285595312209853835115632672121874847726640012716294570230307511630932259349908544723543162136236153067414343361082114159234303835753324521044809940687096135006430520804963737209064955744621563301640859018058366483225765384410818349654314419655110785975844986649743589686005308772524122411537405294627552805637440006170535438468111188716572760179135723843050911049332426588698617835303607634158863292383844376093384659155018242265856865742753199873226237828097378967295867772354740147500819210545798488126725958886799522520278070723869266594775785057912929757513848278225150329603630497212696008755067088491871162432142610336635544942502900678943589300933849877619502447788391176927152180941315326178364070043814146391225998590286858356358776853890244149023587913682930485418431097531976250026941066250028498972357033039778934239053987966206876071038540072230311503325979062470878875698130627920481521421188660359835143334531743153759259794678341432406826619089445821956153376834821381609823903672415513326123484416673846395867339285383218354461277041248898611532152263800636363979731344085367358894233770496733763172421897558514485988578489725582898746655710339963394827262932006022331351880120903538861207439368262919526075060361108623167270329839805784724303825928786018493719322231643938054870104037561822651465104244084808894859795429013603026065390218738086162146159702557908681752034577044498600489211177144582608315960687146718317950267610037319618409907469595466179330769895710958584748634505507241296399382918619895281837200697142476477044582673767249550516399439178299121360083023214454447815878306445351961238582321623358801197831498494424520255490113115237005675319682786357189273055740345138528962678093502733572194398732834127066480587630345935410743555259471517574402217393031869019011162894126780729363589773458707927644293767619448495183558976875246893115436301760847562919829364528995014123739594518208319043407355227088034558975933449989531103106885205957574399264310866506759842503531727278794526793970858173402700553072786112218001742349622321595246972127291038862580618454138517595805298600987603283664721811734328588527593795739416085016432573309439188689573608600749501974462242869883993402436436423239514001026954455291853669782226628184146554330597102541450912295964771397157173745799173992858712377423887380476886739252860764454354535801120205589650432653110283180376488792346318630320698413281134293946097146344564991727693459633674125432786491424569974984157868511665786402149268645630202912365249482525126945564625107943787048353082804801935715233240052321601406324896397269417032852938603658203649353247111307545372596792574113591747380074281743236024242743896760858083288018426968077542636248321112712634949307893967289612498364449661362534606678362706501792006118442898035841228919645265265119414244124658120564025658837178391119498119227103789972757109365950453096921233911857581017197091626129968528084066173243125606972612645488257063486219998307659457268064208222998115187389675250346040451691625155064510188910981193875136388728813444285678445766465731431297414446449524328671184591686968467391718009422991324097120194183418783888138616372107609414337457001103789739388716441113641166973501770562776916388576322356297337151358793655049234442816286964479905768799322414850890654298522315695858458742712037397379060413456759531132226711676997735172017709346855799130257522943291580804129190834833381044277111844692576562126833057988989229845641196686978308000427567194936100255974438550899371038667867954724733817732675019582163728941679110365805849973927329832479393791142201150035791753979127467313461848035418873021926726554833242567169736212883019582579040851837617138912067932977623538685443028989383785779880415605902666905978710562227366856533419515685710585055385929288378277667792365380875420983689805016598449850727827602794018009084026859252749814214332661164804729009008553587630380761385808724103781529982809024350059226679370443815942089118139319408733358187003498685592653179999228178459877511072212377017747952303382042960217512208446756302141143256499379511379994579175987412833901269329563297011929960457652318402251843736762603426768049839797205182191232636173572682046884089144785131950601158170232994603312994680229203168607034499448035743697921575597211843737801589725942021618953281652492958450959499456240942106220088923623681016087058155451933233898240693956990088484964488916275411064091571457087709934265396738806920519976425751688442087518034802004816467333311279462086091970521019207185880098686933467987197063727926551982982197421377433960580564502804783962343994060676803295114800778345398458467752818453378050664636568386874111484842831323631262831221293614360777859839113222226635462909100434192407102544637271808335376256122091425724135628451384698844474794450201100126954667270628034864531687482612159158674749582434511382225628097728894097606738192875596509191449239755238332797786748841662487717617438892058764508222140414989643132253251987056427550911652046569905792656104373910680171194519185870511121971824598550929932177583154971558588686278860226590335021978243828312660536423410224142097714776543646036546581404335122637259779299718667687752528492761043929240441196808054209353289227667262494285402049567536342264583283678147935521592471498251236299419761269556886376426112680455588184083585904474567911383574762106574660746258467237511455756930763922024676380446661270482410258251706402747653904951283168577147732409904141648590098565300786901281503569214603032413321644046163048992310835564284882414484875763809359977801322617383207801305712475026434343194904718801009579139062616207305106685382070530745370032376722846257027528586857757269678792014069015269204926858885660690641047148755181751298928757217186132463412984155149512018368837623703915753986973209131189080423298038641676310657665226853177763619444881223459632062710409722552687641895704363264898461972434100618107072111835822038667081628819299846033292995976418585666401369844637604664323872617271072677404528397304220389139468394859257743836253471551871874099112059565116518143016785966239201712950877244138900229309663501330729960610709489335738321187466408182153604677241615550492458761123961141198679694327075830286563860863259154258727105146429427737656111766812009271356331846820315313127988103650650463815633823095332033075262702546489066954346237066277736808719579517127013698969162389988952728493023038529482911754217276802956496436417681847753065111846211455102301634129033443425516455255449286155869150130504694493485129045088657035379224345775798970835686529374249003614500134711782417114067198447778868349782652160479325069370128633603166550258050785768551075766745927554781855620637012033494411836338630897794377139360210924306262405337053101512775459292461555278784260082466191978669835663625424591354247076333554355443640490760602060769829144435737247385382368785665929061650758211749817707260970614962128266150676416528621883742197236380362404745830941413884476690759687249905985737611625752629326967111258079876745216240078801868288044576413105671846080756685281471208455924424963471871897249335909834313737527820328498478172629534831795435860196117741577189799353040404824418415485508826978661281107028469818331617814860990638380203289735078103592823984582929105816071668442094746319411648298812278932985000775808831341434095711064396753493064068979842121550278152834274662665643154161687940551989399929003309298891167794964950236622483660975929194011441601813441410100962584079223760955765051442008746759385865539465164428103907476703784068585880610635050416636821525134292499291678593445956961454097878136241922454694288415167063176631498734192322228469429290826556543795580738772529599440115731360267358267260538858530279904027972883945157167430890216872113053274232655802427586379783493317568193660497776664931340478969193174614382554042294395801357036322699886358828102489356243576124841202206944389629420932859514185797811072534317743481150743639088209909975039674809266196931894281141167587035019794168304792105273956161887887709447341906743180289076028468589815794991774478363907175816251110056777544364579870360588103498741414218782559492898801640757087730640533579570631174910277070182726587361169718344564800721860161970464552807197537828073226893501258560182367901347582801507050044913542037221544327490229247427218543328121267826787779631894465696599334435373751672526905876248306070659430310195403374042002129307347403093544898042159486420931106228729354986375079737644805679152018725913962858252473448365125679463720719113810654821107294166822327203341169866466808346146521103111069696039566657026340324756044410374066689621291487257933142957678713871000244317325513268992142243899368694234975817115015755762632026849365088904431866849264750369525875964382137126157992479374467720594126917926706330499929394512924415280409130686867414072724163380590619458162243168475121403941745675642082870539524151753211026125478013254441950003374175774162972401960367857236976755089646944288987868428770827297930811257841611263300182419398248488843741374945083518711326749172393138243072742984795859642941960789209793091467123386182350376071952761855074201423941778846160392055823606738339581246293294573043775229212469647180535362118005674821362709475411982548623359508372603125170101882623612958178925825083540487838828445632538744487007893639565548159311213793614775878774468441299955285153678196584794911361405088624445573739692512684441411017945722175624911329509701446433176866235097303774450825783984093814002244541909597058744154922379326491628352976983888483559923236401063679143269886187728017946572055206310467214496317567404048213813116583826256137967621004395215840742616838597060735491234846382700932501819125871433514994363853432907390192529589315100647210904583966182449001032702521264756730567864332036261066496110766504710631877774494665458164444536233126877987949684700142606791755646039301141728721630816145753755531895111331460638220425556702425358439338794771653323444385913791840460806823177710084089635293164773109657519755963451855855702328708353899558412697646023614295739982631710630751499316564805447512294289953384428810649918582141944694566820632811099564796360013375039281635805314850248038381320595539229335292980694976910433829950636828612237153735801031797236834157259649808320563468550443408263952309450604474344779941344725846119089855702884471977009211844820833220957341024218719842174936096912436453449889127369593736048960593407017098580519953994315567939254738396846835511476476128504824562270788000127543954097674044923146905963199236631123169641199865702592393994920085658411355294607379641931200314868557212804530674236719505164957288505486914769574678831150149933014847850800106115929756511086688712838657965904651038671000344944378768331678613814800124423456146041301986432002840649013968856700697148523251991698679617639363392899457284992318310043302525318881895106531512786299060112511442601919981024519814631451226705181331935017553099818403507728888704865950409126943066869505852085267490279319177091014411231379620851423606412089838649379563952532850437700355426935711772644317077956012102850296277675437040843763276928062913484074136028944124625410084845965682295212141937856502362753553078510917868004868913282272403848843467533598325649468528029883471500490945179789203198004077376790478205590903131103927574086121026304359425387224477820118173618554248469182690434813404850836027618899156260486083183764647205373986572365843768274449033492431222572327688647589908146054415891857055959091712496412405276541999480163577369112494205182082868230185708922891759311133847341928563888558718624707622785928518279760632097211449114437830675025448206417538254955483945395962859085071400952299125608495358455893376996031015883926141971162480574845072370958713528400205601099360771057062183773268352145876305764358376509739646058896612833075340310417613027345947494472846675206034454239479412779050791461242236378491539035813873115284589481915740723238074020118445406563858150161093102804679037727146617693898171842159002763287377833591111995129985021336105779781255286001460242834101541803053443576092895013951335949289468984160873403122049027868185534132557733497242506124177687639368375608013949546340743139731374818145957829630006855659227105366009091253814912111732324722315908367978989153327004307171833525301313476247437048406943983329313971138649669802186998737408490151955968457959927882398263540458683617301604419417629142240048845924253221170042446119690249289570847624337432712038512726490000076861127219453098277433056884988887443820834951300512665524821007721508602680317551552188352759405510786225620793762318532850493532518977659154245833750272912593496200026428139137817875597562474196790597066261457082611990645847937925605098249360845507986998762363020445149406612564384872808641548191684273029907608546839447445003869035199738490542738704676962250421320566553421753976773331709836703806327547447184144766970218989429378346964311560008392076171332188454066809536804585035687873933415445629993010063972463846827156831119960663773974712036365887020000768469785188927690568698434637347646452143331485115844620096743399316954056732854782245843133989978639331098634398350233606949272222375079053686943917019309517684805598483747087903022197236334501756577241931106361138235319211923490661945104795991792703075945464024833914263778521241973153180841417807143565666453261966510326742062492426818172662818604442079412916991062836243952260352599049759942768822276859091377674595423953577425367111589693578977111717776284529411887218788947263068595447188716119543796368691969555720029575913571928584932978494025477619487716207564067108843725799685386946878487282563249861184529633680497232979979917364016628682313371186156693636891738360521355989259027791674192538434482518731015704487075578517577816703804034212829276683184241245765144161188421643912010978137124904764308311914640817210900258730348434686626213514139656153845427746381257101694080009270625799444803474547802653707086371792260025174666215931863017231451211360128749502103358913438012733146409350625053028674179613910424296319275093690873521485883517662508553566966642780815870229093457207258183659871183743202427482895689255680185414537472903813355830674207500777125958489888923078116816657689502070816935007682680661132997394206091238106071367012783071366730358737291565032279926276436974081873429620345979101498900246020113042809908393848586453177036843525284131351200095114594497731379748562139581097977117094890047920214641048164860996933208531332498363901046643113309605798453162461596395970584105562973576187154593905506050205350977288575097451646460899897743779640652209815768718190028916638007986312244304780298804212128719364120536343480134535236766602677323275094825891271883610523191297237613708057069386791115372348041301168337421250632183895689223799617197397253905722360030041065326205617858980259367752070739692825159653821134075045442896440380468034451514588502143409174682240835518325783998704302301357631056701695232733541335603271667082414289200438571924376548105649816971010269138403578023485244034133172439520575250822468269880673044160628312459920623816305316221907390127773838280337750564152218627434968284317596683450594045366551360797774050688022518876724683790476346358590897487198924308264498457313008512111895438901686945607737221768984664621467324168682227629758772234762380596161171349689261072103036743742914830077611534206480457724015229532437043000331619002841318363434335977443613266081102376713757620907480240236153812278261697199091325876550276522087904677984125343475577113375087367737658059058613536793543034187975766193647658929352413571236256567427490792730787487717558302034742645284717611095378112160466329779280306880414030838350786791724107392312478632758571115272360335945154461617951278508171625725384068976227642492902590819661152981023682742852029778337156467591343118762551548396090949145896661621049853193266506182984131228909636578664261406131717106404268381379777292349143214074427344442764252611074716026444718538979778628906893507795825581817104531147659459163425483732111809608914270471628984312665534160310984623150167539233742827523746353695605373885265292416599728104786079095133998716886029839544094960867668103840733742323104207031491073756194030713028405947559396161805153327759223904073991501557576957606828003377140187362985722245379111914655185322096006160511642403767843203041088136631898725026701579265647623196567577273482588831147834366668997476705409549274800704470952241681010613691179154127282846126958010217013701978602059659019607166509679503389058745718292578263625427597481347416479876782086405821710571985998687066146049787672422352138284862365497179225951194176575728335963329267965757910585833898090920145347132665298966834265437222895433934430200926053470607207045264308736018697141686245347625867972396289825210329374837750786403408945217671059620212855932309490894319168561954202911046756292701277378784737013127049553715074035317283029841967554658918350102316206165891852307784874249420020588920524324880600170584742922034028063163067006136730065418319968634824816357727338531660828472841628056407677642314643759034111549914725443968133115875843680256402603518437855788024994370508652983067461843382257357360595309904035975716149328051843447037312757540920304608018574981638179608248610547476531813823333796585308295682014776072523791490892634712506896660977217745560203811738979974705679329591760704162844672636794409147384557771511131109997354827519955948826094260812879453067143044577572972148709214354550534800592540241359540286023291717983116366707443334414677277719911473905317685975495035175950318275062307511370001592081531447657324727889288951202224858544932970099880335881451179855012355813791490832205818815921292376716273162839454596086865459051524660001093977530713254341027674377354444062885285121364976056479405740325495915964175054380014885624040313001069266792268401751589047122583396779788590047757907970093543146692140235803021094606907957873590708857296026797607965762149971131826571160030568071841361400670168611340769346966142039127969045375636516965188414168492176297886447343031543219508654522282610684889570216039224941632706873157652336951409016802048383802939601355330767268661101570146979726688960597967660994675130119583554340705247005483179747074101149475722599576259704712031239951822343629015569353430056730585747654176051550754809764692726100655033987073279716559842851739472364010788658652798065972550451209069307153223527979429902361534198541614120432687102173881481179178425913456429987605253224486371078855537546364309153305746898419799659107948318434541733197442984113569368797686785476327293291114627314348933987715507549202079059362562632544458548452000192036130620555092068498528001221846488363980373368319303119383849809577450522729437704654820141571226562972046639559287527788297178143708444202724454383694769024486469369982974611722398202822287002667096896964999741927272417842087417147715940373557295295503321784178422056362259025189685829838915941763988400783104314462743413726556707725135189982033442578486295941961897093149262940734819048880839107364239311734895599285812850553419341552276994961777306030179876540117268456914628605066169805877574538723934495508152469395691701088587259710646245544963470288712742108024689408322033441315582766816218304451963783616776842482383245249735907273926789745444082269772208915245025134864025283999234859298816960414580064411115927848416381692277089306752294252015467345171640130729064609266169359832006882014120967115689548815794850701581645377054225703292309009745251426851534718761204137113151042404934295569321946376230497053510366404865139095877890244773965062555184891629253721345782908169823160512914237024348314838319075070718889105046428841703245617773079626947359881185412247590305591546446178382192997539963511632668258346877259677707453924613973426106223455237345567191829284575611256849037004165773847423390586483244141151847416173628553833274818389639628037257487103798649966491968101088794550940588107560137735974412669147855713923195291331890238228219845613480223049799066851689523555703361896875457079709867720600728762779114754548663928100036014797153959679158695793612487381508882458839542928162327004555778378713694532926848644660101321469486142706214764418353390165322911002973521635924619377700951852247546981798521395637050802469021238369080422483305876788489312139577065006400264898822220929882102002223246682965714743764276008900041715965730970646115991958673466502677540148857415280563459680459021067250317404258958187942194432899234028646773676095401107538546039841419382822495537888673505700024732636624853872057790743563411888099435357230924894413744490774692865766629497972747186721825137744061456546926775704846435682121219677882038271081701689081818939927210818961254469295207693606296570539181908389676837616868663122398282185183594890530848887157384065738883593212520679380826061554073204153990651662929997950844123692497879506058982585130384060352687557278068390789629716792286839719308286788933294930285079920907234545803434820218549043065420451678674493937583928065601688554635909070196416458285992409924027464912190751800561777124625561094533645345767696701737702459206919388609868946551620172101672049722569140273546297551941268982359343962862038078664176703658465732865514981244152565108346579861022883121276622496511244370387474039261758830897227146852332832748461680440521255075350994567727187660190291581626013578218841232002277803160278714818875879363560828738294621201791461987469443119916633668384368429943263930698246556745283676267108968650410359099830511276122685721715856750283128725671730226672263326631823505453349005536346794615278589664702008600547290928132078155883022834438266676933737306110939943128036273275225395496161026813494381257045815860036068151024937012734182867573984258687277304302711822388191709112721906357831349039648169304530873683033557779131441639920005664407738847127432858057166182842303704379569841790546155911318148351046048002212082788686330135032071461605666713924693435957324757423572140839826831371337382385317606094789015961940536483544199483203959116351140165647973399909808433476314193389221743244895254039668169531759335812544275323426795376625230969329443175162922918532306499977086810023257276555996844704510928198644831242375003687722853083562026532256976870015969238769998577160509721005593325538577210443023977159009686073689474449377810972159341031416016092003979183510864844337220032570630972767705872851551506792232127793947879118860749065421139480978228847641131777532074075227975259465193906882653476530242994579621123863946992325753885034147439061321017206945554034218836268975009620686113335649455739245374827495021106373904826313395351908063417242087487345265000967459722313316770138729657141940054629532779164019545659496420678947290584220293436189425808463698327540719070460778673787440317034215136477628359438764725766932266273821860134207672429199737777777411059028077128293674297029893369774463630662298941196894370599177431552357001430922208024354473057148990383493477459433403588422921095332358033137116136220636565531428414928384798472693939706599015226410354201806851920309908794251169239169593129857760800823614763090414316735061719916929863867227968089147092580589662347603314550742282007315287359202105856878775885046822827488746885929031537318352613036619900837524493479170562251031395903044589934777908389790819189684491066555966025103082070771113599742223583654697090608802324057765908210766221794105706843879349132834868966833934595533416208181007164942648738935612803843370279432583687194099284286643439275485492342511445642747756817863616032596405327613364791064732330054521764962266706127703118176555221918834724410861293330296791338277721718114865450682904117673513674204596187542125023369772409398741110828402689559756753314528250057969556979157733720262236971376883510758943754920533795152896077654204396268142854327464995904377346165735390175418197375357584747680534185132192122271798118370733105073181435545933795584253510488010622837382967846800289593412119248626351518304271414111108939621775385084211813208653818708675105323655697867467109839405030765674323988817288195635618062541958324725535577221401232185247878540387286918012552155924165024606537882548041380058783029143708712085974252312955316813091798082302937462459560411029675218364417904267000722833110727539029084918574049015874742425705713318517968435486280020031504967099456992779124865763610225758784224282703400584879854253104746224783907868580640431147696850269737748026780679927976705398269934988703700068315190908095321339061488243255310616900374463779976510993117987370715269979314290781362749129463975877077845405364509049061092864656027657992923351863297968739650416733357561617795051686068536400829855764540001467928060567348559985830281927258783702475482225198035203695508001124610256740106395001930105991733104417624909599702899113772432425235605117194763246048071132185338299399552402527005572377476047247740120931993966543341726180631759325213050852615137356600261480321896491874955415862405536218089578022952278162997190787634261178993207424507365268248438611065672730031009127012268459629639144969872309299763254743886405106600476126369122297545407979655148783826038498797114190218511859497835606852891980593845970794658191235042395772050027905562698772189880730813878632802422245302024865483193579793611404087748093748970680628990289725540534847540136870935873792986945236559852368812838446619139446797038563168941928847343019909985112110531698639031059673751649796461149824005988063508779492304419479506680133237407015976604679681746220978524156088251782824147339152194701543307819737773151825428839673439701595103677237640313545187147919886318286572014197649587685821965312354463909084341865407664777313110697629733526684104376091915192338852857180854446171895620587284189962506704496323417902926474984290725357701009920837270375364772181177796285908386697039860765359361053134159981673890620664296828793393756733439409513235122615674361181779036652088071609888809189542139153647010778334454686457080121611332020761465816554443271358309614650539995906823095811186888639361425176824967358593941405948726750466214357976638349124355965956827586266760759200947573626428834410108508586188527351930823009319742747656130416872857441001601276796654887722071800439893724832090287626376471278504653087661007107643341266462643570284877721748861428231343109493187996100038633298285506116122395066103956220196255895725637303851111286528537352964369474018317435078377471045782178733771648421512088855318391514358542273165198086559611772729655109087529855702378741821795626644444003628238317470576768620837560900456535643656443706405172842062905617065894767899627700704966892216474124161108654291744533154421675592142363138466611891140009239094198037046508226134409104336819359324262209176820898385357949711318073911979163300396412132422278979703009034382870048201350948731371073042422925412175229673028858040579340077475030029677486394766779576307462520183230186139593135292665063873451479622258766996295145798468607087885267085062499400892914081651188450048289880738573147723297284199031468727542007095389686075557745822367269405647775092228660362435514819017175840420367591734450662790760900579998782836653323524871499111389931318019291978388026218519833151308286102870801211915791244155581500212778272133945137600475038200505858863481936163428986110833129239128469271834817574130266476707674804999849997381953688111738306463774620089409012390616089709282278786824311718299134219878644110803719151118020991280837919853457974773523475415881674430249924341985211061358141549190650470583025439954135686983324254368861669344507888346318220497052982571794170661543026025079907255766176698788501362296043059134717406877548867031473643573330615357105510586245145007568378021380283813297512460787326864562047432571389495158395345806296893780195849228750078606991717790373543578516193090186696222646992005798556471977163765019022102743706891062973398954368627274520856564408769399974963473509728738398275821233326650800660766706433910002434160307253194023362008605747755316161115851246487204326180226914152204588112097911184308304096110363881871385271995786819881481085940093939978650596133798694887106462280979921632564833375259409039401205514439616268018641654972951081505393472124707310145392572367765284182373268644474124834476998575008094682479567247137179144222935849042667578061236612049587100577871111692602315809302649348119238036642198532694298417908629811205419958565252016218493247838866404863654943433941818678065535985658804268373079762312626874573518750420827296074716120955240259028497284467064672134171965808741135302045561459800011958681514656037353632234347929287992217829228638555712685751879700353456190765960907594671968733823701993862029413847352682574154857421991992599901851554643689745780468253467288458328858236620970084416458638604440979536845400951564839080455073848206809909975189639550984514421180973490079329861450827013501103220869047636586137921553861373261538331091567994217286205033274245896442506388700311751137025476519636892377415902549691502866089656110548950240708604779121068580402794431773423421571040999137682638199812466944095369095312309575723065730365061175827154982588533005547826545274148438295557649973028680126884869676800106686941613713595441093585797994005088232136014645194840037441692278202046838001424676093405563746660401822446293258431846025171574521618358226623865801764236023925131500350112717243317234700796358430307423962771373602976690875876199008267059016423633901531671429171247878993436740413755170976371230335533617822333793752295579300558628200199463208793069119547688580391695400629468778358172646084542998724823480541222759758711780695053452877395494742912455699354105829234249970032563517187873415380528599499583957111210544554296308311090561937726309903882863111564980280657933754956676653322436537223489937549342926774948540397557663936061221251084597023280271668397961248780309234265128285990027559535725464520590035316627067659680266361281893543923939835566583589163822352520224035417440873841499516098842515346442161594025225168259727687974936055027378799417214935298440892562567705386293778289255049392015393840484087363272981555846611653469953598485126479452736484590585254793988171530038064888664222268287493844785165743809166730093547367549338615131669908448014343717411086366602447252124325310261186702453624573898503187326469497397587053759767993010344578593565716471815805487470259452903997506653308492020560752225532147343613227184376233037616919258216236222060908140168660054965149934065679791900889481668428805336860768271069794280564581844184061346942046789936279976720614544306406808339060872413576109430137057954056419844295866246796924156901458216142027320907579302534975397475285264102108717868405316684010881717647487936655916346666082757767470507147541298087830909482154019728019936637833641210784424656811262680491156718375604042937755816827685285910383985064197112832510064114396016664069610206031624663805855497124167563017035807245596102007950265121022256065097429279084388012374845568616941102102692589135681269762253707108661989866261968174890588323821342597031558650101118096453389394151092427559167645137971568612485880875077641442923709879566117811283589880134156351601174004171557244283112265450441340445110268419529795020511940888219216600238198624974827146697083863836026741311380945549656207928998056814681830517909340305945523866377542459020809681017485621930354805241988675557470675284613497982503226376189244442699130082935932309471539857109124575697033589515436353923200198887551027945978480301007134060938136784806207404544518829034426935508057830744549249190918910343576938960680621817946636251077840336956081307043050053616980896014092785872698667407253569498710018905193848824575225770251098027560159830342542762889140935662083579502656243121117759026822637937923022095157063344685906940977664223716902796784322942083765484831603551980334966959237838515337785680659320202864145939463336279519318977053034748402556123545107072985160563733503118165091142815266417555608946241232211254431124014637080983224991913071838598534691379878597369622752039999137310651648742614660575515476290435172369809905510317468168601446577722898891387709390505534370214260524770865692119891308160463299958895177402921434120983503865633674120396094014949499516929495115693360085582598717260547258159955737023986100957846488203456019700225105414202119406351767449280852252396022291956878308516730827005804689904336720489061848474846656112786539541777057654537938677100694072229908426680065911752807453991368507433298858141182840424906686633710688137816820889617593733591972674039820581862968090472824906211022485270826457093609727438405244882646477707986189170533796893026924896106435679076576671133126619723431118808768733761935069958035739832937714178648826523859283800856530566898957622258888177315473297633324255959964948362241972663902488927801909875264146053238388404951385606072616988097936910306764700908541434987885452814116357921810088924340647878151613796949310399290648788145782005265375792394042820161400583119325279215259613469642460777960552587396998756401938752142508726791291182269721647903805688276446113418891179666701172164643838111657980766501613248365845169588147884413131507796824850469938954842648570692548958488502872437810291360968438304480960301089007783387224700334562783697172173859270540511129683499188892639558710888507290858991328371946053193871149682904093939449070714927402556133502525278990710925548118672568836318244161301349672569833979275864505119299726202628898535615356607353631281996864062054076442888812969152911728799828897316629810419642579248657707375612257562951898745584251466589366188561110016328916184507947260306413776197237761248803087101045518170551052975371272393377303670494055872134781635040676122052284584877274729858199837766550813636836384996084122676067687410876898283241740007538543670768293877766434191702188513114327526475267288463477844118039390509099590236285945837024110768024223461610186729220551944246413096270823114153284367702313482912148976169062696280204647819264339265179561970458577863654335959040115546768346797698830149293540184205700997392597475564248193111418888733515483720998769784120544962078608531240107988052875373312284964858124620855268284084940801320535249155126402702529485945902221222543140192660243058469500905113707170823526220330168892599867330086828385601320751034772781290346137806069778557818646254686347390989600710206341938159990929318062113690673217681617590047970898860181549600923720421271233752094285927764353601689225999643027975960031498691982409134709574129519449056034404785679421168734813605637468783763324989247945438160387225945984809047900849640429167097811359007909293134687171272550516153314995685025427198266930173208926414763011043346772215440311892846074817990529896730018239028685045405110490929789383965925853753457296611355371586476712968276316780304773868328771885254326150895001154113170610020107535352100354483999587751298733072803925879234883944767935850942247794837295433847696031383782651613921786228158234881845720302765916049779128436970896831625720450764706272226406573592444311473975388154292038899250276364731185141110161537941384089067761910353373503764143174687698255549888381068030855092388806418030350441883164049008626583544513984683129347862425435179516792172499124481757216433644998680170226269324293342478582183795188733156379323902675844762840542314848693624452876526448218762613375294789673734701883260479161409377183065473486996655847113373563884178000749216472145519921830641167441433952548642758351173657026857300039276835463433661922086209546398248921845000566333728145222821674456055406764082593976360590287314834632166496547390253656469610059090673151614643787505825239953787756089314817536553948399039736646057181957254001525662493250381313348249066817600016042151180644783385221391016114044851651144734183992294273731236365631242286679575451748535233258733535835063873357289020558251076139711592916262252428374980783696935801133619825906882172426125876793849344727857123438529138231402604516792580196375786665899848143218836211710306162595550856849618416783632707182333179981960277674651611720859512835184952349146246932708030020134184603096094778676770414913885002937515052370558470516674488865262558747604469878244350560405701717086901177419128568193796781096866537708057494743974696131407047727264822179272072852868538651289521376627113618192629570925324400776628819570225566007495642664138136272167089747431258522621769327768151261887388146910382280648279206460889225415316108494228822492028483879745292656892708318411229121356864167841028301927708378602688039979222325982082795152743400894804079769104695891439927398436038821700804614592335728499185295606931463699140265464397927188952201903937455342790196393688092814002290328367645077412458985833193405440993777603100881490298953772624062107752768582346015343971526365750032633276514990017187007877351268925494778291595495819350586324468374362003390617971879200325781110050058873588819154350792478954190644210490590975143497109850414426195483283477235898279719154957972217968951550753969667204379173904906684106134427519211276980202589514963121250215771889818828285313385618067565933849387001790661210927563343318047817021279813149495255451292675545669258705760832339651787671127586543325024993184998856911382080042478072433308940766301211223412616977625336338671042696116818554352232783516824058060787998723370015304828880417394414995559085736936357355549506969883709536253273872377113397766743603988729152992455417326209720911465540953792569975104908864838124728133887387700490500265104645112215798310220967601742416451835952711115356580031321081463681071727295665003004782265563910587413061211461554706299740882118537394970198913239627732891018537541022173727888177612188789390417863311464965527006996757349911893654812606209091554606287825473963703925848107861725343083282937136486932807907636388214148994696730023407664496552400941176847381445509711494332263917215447252656843783789499023113043983914668878599600194925860220779642588909003281832485000549376021407118130544925235380401209473002890632949144640251465689229610203873385453124613537864869545990294939122787705881328547852262555682820231370140082121463183089166059843254771291671827449034105065773617988991486573212912099060432726187912714078857085591714719281153669485861915806064910192974987541801481410608931799765289547986570319872561394636818154571294623090518618696793918070157882327055860710320679556893247621530083011269332363640938406114223161831056046828205704892494732485682690730361143680764495548046155297236028971228870221433284374982497305720170165452535221306606881431501911418340931025532752082116929735312922905541044272582157332523135747526301649411064343654923086453492383160774124525498767808361998306201022048878518029538150168081952850441909384662900610991761280796584300237050698696914696342736388876966087791901956059944263730644278574319493559264643639968060946185781905922560411911013155628958302385996920541963619707066519421943896898684167904780516546177178980902266946064076481725497749419144577024416902465474501628694616471523641527818281722094225723319394000633996465506118802437219622826204433922254008309082633926812609193024413383136375178042168079881235092194202670173758986953765244589818328761113692123582797537930063179654265743173276789731224540685497075951421974106492197211100217948558493868052614223981550352836929904899693754153550249493137246800992863295853467281381995304250973884499386996433910051778082201914190779661511544285100569167676068135676325250997575041927242788321781515054164806792963025296008095895119174204829005740204488019560427034513047751132504785620983290309298681255200232224007501798048686844713710225794822894103440276219161602255427695230026107133598320434939601036046786591503511702060514004603428229186860291455128070042359138785678167317826542452056364576855882116713641912807838696669684875836899113156685046501343122638146130647505552037720310435396703820803981734772958128629024554586726514215757347359709827008986895462484656572749973762903583613614426773811335762002972014416729271526920608563397523895634066581432175349491294598723228753577396778603720038661422030760677106119385717310322944114900108789718284889171091238087780880726435968332900833307149777023557173759758487285165927715601815297603055079616792751408114928245578295665823440770211294076720963425127467027693649711250119701615942341599449062695687121454497972446546155594117607468577137030201907862017251192102266872822735729096319869023560236752519050627351582774755400126337946897605794608049011493306776595462672522111025887271083199713421932605743607918254984736320672118878319751168852457164506058502884147605891404260010351745301399441859779732117649292645004745849160690742708637717898723772799705582657128181719002095910430598544650441904626597903978243811822935030491417960965548268732267670813802864772181366579538599374625059463626076740353344638453205789009546686106084208200805808001528236013997488048714551411862348952796627549375760147082154746720892023463017974789958803786082540444940581200971785826071918363004335121665242373463121716468572057576015822679530176052883536177534939524539458539367957170991913208877587007586520461571696333907950242903166537325087479642674351792685787459788668033375380372970165803063122371308006226312320741248103441999258292972698938005748318288301541746894768353775303959035472632082354029682330357792121075595081652706730011684639265305022916328573473365070906749081312441214288910998384790326040416216355063912869456603778410620687395666296919715990704870633138565954284719522123405568776495635482562329090437363139826639133142444182085683375728700243442803642184790348889540039313409759489947389705365474985714265851566671459248573900387065593578052553175532708132384733211104345365952445782687660473090938576102422433126968815510204578584807619054488764151750057868831788013931353929662030496519959450130314403899931748810210758870293640145861259828200380793621816850669390455545425840431598260147584500446854359242892085241753003723881957799715350045773920237000129158298183008638061922487893533075974463725307419612457174777625960779024740560822819141259783079570215090215501037319826071277265636967071194883473631266077904621107464177020494004988988258862591489400909337977611193706459145915741853534917947572722847940120061202693547757873135190520841037094708553122522015133167399187321030503721052848995704401544875664559881988496885433975461817663514810750666746500726828229150395164502261976283239846685643490170088551618252328865116397641826897033357172766505812508717112396354334342380963676253280149862940660063726120988709082662824240714846862351653667095491470975565718078795799956306130023961366598805220094846377129841652586490320768660950833398025098153510681836316566906529049962737428922897530349954279428686022257714614711509369918083406248422615706719128936985854667707527614790402547818322387125011113387752049012397470284437442444669657714478328217315011406368250670503682549722303511677500861827970792044704438511918150515870144200025378125554434195501515802637787711802695762991301123783229897041647507755883939364966251390438108935841792451107525469495388256059140518517408892787946469274859545636181611488876328454598816609399320320120767111871583105405587384166663067086942534331568362616798572042915981592624324257727165123577123305299302779482845611396016962582425858253922575350587233474253994211016589478342003325516294283969366489152163837511266469200098371536782144600101811930675531884154902408325993532949512407369020634299070999255736775378256824127360925954985218162960667431490555095177036189769251312118691174016798273138946289212013234952747331376384811839680096605056770700285132158081089688866336127546540063121534621974238821530036093980180550198044186967825760836581412165513759114948006035783628748867184852564548105570019663881607573517043198724265558119698016930911710405894102075232284176553749446838623228314283428846516102034473588087960264217947835404750213803894935623627426937299306650212188614961657736083990791873848053930434440742751135130346276980394625479309346927792773483349474493233153864981267507518975479210119556282241107686946792710279094284252969851672663402982506514150035241561955138492630395250220711965135554288973708553018731965023884691741122072301541107878892991747123182579710706383770240042585113367929825914459174673703551726958984992752159677197352283303331148828170360016791254162975948399839691290141803490243245227021249413120395957184851327032480991661727973529725852201796134248437922836844812484754779084871533040681856294900107981314455531585027103329590596881375876090801623444315985354622916189260418025164721645602869918100105027032400165895788939347904803963602816774998768415498197057688282130274809239522833216851903263731715582534137723682632260062009266707992177330491743506734057325530604005529339506908362528892059782732619653304634652631659737371977695074582775777280892654918561895192182789784184365977359167338526583742497469059013875318727331822685937182330376481689049813186062553027978383996020405190791839797228058331825394412415836013160913752458463509925156067038135039179068808223270391514783568260994719652125981357883785568657181644982294165384931102336163241071478893172583584706395735922676759223737558961381489428114299670968928900349825395305515926069091940130569047779894073641134444674403647281787761785642346020215545957475942420213306959561325077328853951910572244239244026468095640170282289571785880949228614862516055171753043883527948747631857062407580156941949573359404065646026106706684792441282892564604902816506472336176765972861319445888671313713189153477527628764040903872979326870550270375029813189836503198199767600033823130792191282584221957772533984692629786045549919975186174712387173423074664135779153134421455850708812246896938769368522440224435561567895261531758447661334739581966735861439346079084336463247513653927790475885383789981551620947121419541379856606598203250678340820416182488691480844448388722473824932929629869539957022523211132861100570076843463768521676854123325865684995281780055355987230397748127560445701713345675656390221665198073364380097247728774232275951440591807071956346933490446459466871629037806127647541395624246263220011540981238767737127717530249194341377556805852903241260492687587572841552054974416072618675903790800455400287152699479520966898938300937288583342495563831622973335205937382710782037373652827054796529539738201806765162731441754273469387598862424223463106252023940049860584664174642155337262350252661653184011374715170930613221550663310358161819075754115020241495566852671076549882296827649640137815429367230469212776202891349226556317491740241152258934598813866940046512940786266689114798132156096194807106769078567493067197994291809001053146946169187392241023861890548180488473598609807934253466067995095699255345532560459507487697028559277761144122517965226331653761454495017785258931642253633969800888231656523911387996673484587080790511531290548124328338824014662346332567385236768756836455537582660160831606492977819586083207418874025414763366935542385128750366863831807539740266133804150625857915127896498563516239739895608702868786350505878383164837850872225677025275760452790005092835725965825135834789081257985473032848992982946237248092636381816782030506860957593324397603978848288589141862194181282353154542395648952078785511879669870859478027479789967367852513358777538959697710242191989799584518640148680354342613626520575600799625021743232315679133460846618840590611174422332139910408078807124810138331278406865077668000628478185994483034290432085179160406557622581956004834371412705382620428752984035241415122602475480712948125473103907251316626431023742096306367976756721588219710214557392749219354885550299392386521899988739015722965209637104160036202330299827023063468894148153025277032994919560390443311389397217936311897010775817445201830926999801799951108766798109390463085734671529876787408432500839205444362107025782357782306958844929665401619515001652843793353371938135566092371537456115220062759319339266666821864135014443227830347971681101513755619177453946518409740344179921476832014565522246869830062744198347256587745804049872450285861067623058677075501842261778784547495127133533457701389245818183556252271517037865210423888560529386933112618909902279253132906715710114715464699381735902298945393405420924458288099644894635165098255103054803076952016574084765082940065967992929937481752366235042222676102674148042017667829419620748197470404330495566779030066173092990860116128212942259357747274171000256852017161195448631150876400266345359781564784638392274479300830925213739274077193521453133386029888716224764744489886508960646046545533646677271682494704354761244247503807456746424150761019436261285043481202813322230502367150271590192543968750354228997060918859624599763885541620512054147400270189092297641790816507528832389243283747763525952151487406301404908810356445013128265876959526489546739426394655953383126686016475655379186298906772690708158004813476084181543205010924206774929320905171492334914380435648388569162137261174943113891377634424766534728824395670858658452449660507618926619717251978374333041638030042055024598467817271484870806758497093914895950940758055772131716651473777641277901329463796083782472580026768529087603091397722228991418021662065491737604993132373068923605938758208796281650448762199298729761516284273858935920301868541627802579213041355547604782889999682477733081550292674553300150657132525092413355083672852784494710976956653157636965021595600910443838024891994657004523370965463456061933812136641524806536793733409371922238784125799303591768111758142467319113820402900834766402250769072154398906793671887705945492604653631486157710537526366117914734302961513959586285398405467702995763865208009606554622630330458462059912726862222212820185672231065590269837962853717008614322549527436062251370557434748670151885778340815355816388765616652927641816569520763517322270908300045411425369634264146243239826472813830812609018912775649755990595440289328208498734112833047854609976747555398659326105286215418295334980265560485929549400010895222166064338373620318521663002573058112498570163802676821467508055951399189836490231461028942645940171185200945874897696229431023078403155279667784077053804068436527097110231192599012318394235994217769885483406550151844069291935977755396459343882405832665283411741309002149701551708976089466046515487325520798096078554383403547175575019322302522437249418770241461517300141918183624998537778099794970416422947599723304997709352477682239305486007292057572401411945293130204111967859172250207705048214542101521484412790110357915904635186789587207854428558986574523884084278073016554680373924619542452402634519785756562933401918600740766063565436393203299559674815069999475070873747956959321326975576915316460481157577536569664849043504686550147917243127454828379945702149631029664816875619665190982132176391885411324542483495977581312450598189856846773064101173573743034988742963032576641146105133588209853308265843728748474302311972805411887102625042027757300436496168505280500695508883697796934323266326837814419418840308580263604073109869188070523687915831323677555911636519540490054323206903919452139374771218770139511363526452766288795780402378235888070186325527230817006085541785538662057476850172532939169525470560083102847132406368173248771486288626361246809415052891378543193495085031589490536516579789431481918097924788934837178155121178538638825939042562579513961180630659634917758316794066551232874323808073900276153622459079023130396940405084307623719390588517811335073938288665633258981893575074159183273073459009658856764826066133604942849388632035869152595176988841603342963307480344505301990855630867980778569632469159577513984305271333466623058526858010104074235097172853975961521460989485349002771469604122368295834805119898590670925131317604377697463786253362912175268666925521082733627190635038388998017091200292765829423962187171377553532794036635257372195537966575305209824488269925522687429424572037966375422814184493745976659916053201773743280408330075977937740751278789973224633538233855825389432761178160047031390996420112563751811897161058491869480901064910668439674972082872295698857667508364216547141559758462672388702087417401326245444257338103124629268302500561704190200244324600891692354237402317520752834097692583234586818140609474876209084495714055558712635385197010570206587010533721591927664213278986850758880931008598385219472311703755162975588830692331324031026270905097227154002720365926102306062317832827565800914609189559251688772032654739882016487448149277871358395196616737502254650802261101068912363509927176027952592584366930802198468372594988873028557153866970097545380450350706656654102617577300941044563718816986550538729200402227916525776762962202130730406047777496259721486647352224232135541308935567018977506162346826786265299303749622917325592743881632481498614967451863605950451805401230964537350856054843210775775281507906225826650881116672468749564682614096126241128961425180758647810885732711292102782394394325003375008004760077707068979454311567050215729122632733186289724474461681871349923401714302592900686556102894476336824610910400183797099403243890893253014296772473156316105183470002396288383136480173138449861580061057172982463934346620537637224515544290828935935819379749937908863265531638906653343993468153710562669059887933520574539107729872804432235963815874655133285412128018643192803633476359631752660829945120065271466160218233214298859510388227839356943327282931609847227957924444163003348926959548736362758793367016211300408268688787142229624341278987442542479867759016280094081609848688833770631427028940825424435779200122145218436564604865499532961922544576723595724655282534140752372556871442880410846681478554042991703997839543499986786819513850214006774298826166000883407521250405521273517368379034056936449352678644440984687924387794943769651163040714641211236498397649219573562219137420418889380254339777187427920805834172217831895803703482471697611131794699147659959070954549253034925967745717837121642021825420613184686764524655763288191626572663855866559733173804929904848154149444331283464583890574680254804092309510213013882260947366202144116609828737968479720055969805832921198703490077885138083879493551441162754918217885710145680275864163970762151247251764318834313660354523703627991662543642664946248182106697888886232667243483564297072523214940024600942894846962806646315112468061891904197665044128140798903464725610191238242090110962000096573137841070399449328203716779713619415068430716250570454518089768255737879572012050285019535426643985483393883029260421587480201178961580839000246390772274822580572755394088468690308411137970352676958920308578009413084716178977712974094073211578239250555111905921904334701138880091877937483852362343294828501354857902961093580325000653846780455367112948077826414561764501167040260885584206235212255111943607235640076111238423025131302264321812353161087696628457380541459109134388719622872011224926391710226547241729563018144366820606614255186915156003664702527055778067271192048265317051297516152497290294695097619572016623051723773195410455172397398326894593958463528177142437478816062558514570954915496914019804810880196607419093823768176453313548133419259705352886909994574687304724189568838446812441447920475386094486778862853930826520783317706894416579962289387549362253021546819952557732495694231240967946302835497639551642517723077745029561395772874742494689109289002575162056185909069418408234639530985745828874096016426286669934516127436681483644926305203595142849688380310203897835652134116817156411195050702600571867595738063401671263021566415867944886120898193284201372179993196445095344804779360614926275095478359245164369935036730422715829122530844086734832480871600797706563720393224047582158001457673009467606176776177261875447277654214587687629182383542782704053263700966077910806216058005296220207166444321809838326514182780647229142905475517296652875990595894889500820453442254295910667937733082474346139666247163435056287014079664889543635733936576341646697040739115888087005941755566538277309256986710494748259919128483343266938491754145064666967922623563340382173547273109810090641227642774864140345344248782815400342959075603415178075604507029587146476261612839813167753108919564648574508682971612955451741463430002138230763389086632127539476197650130122979435503073910785108353815586241346438007034997259435718258903232676810423061169736428299289711089490355329093246166741458158964464157354915151246291820652972158413606975916835784209868239202757540661569808260397437535022788530426483609351535572830311314161505050944922231197835461845363579569387269752102334717752614843742330687745042976104131337432113634158125256669169897273300204901624082015238650439785079031753493365337457454029640582620848135903091782344826402828617096416415353374742503589953712623010818021390248082564513751617049919872927109202613603959417685450329334026102510068835142604535493174787793557475688699625384299299957990461318642219899214388628708501922465151975159608921485816726900198529135844456048200083391590328596575022543193777334038936506824999140209584609911013203157020526451830867807262536859810576104877953416627418651779489732696925364055108583923628064865491337636726326982201744092540862005855474368517918371040212571533767324584209948676736947223939202240139001230884364692476369462616448549223259849455358371367225691088837230669214161538386615271136292414474052969560978827951681978030412825605200712737997069053983997492289565908090250639759788753318167990661901684735771019695597753117778219327989762511180532034587581449147714561828654164635890525779295750765135191165389353676660864353487963486418933154686435127076178212283396797418071774111491502630177952500543565680767772364431747577156504630159781847148748437571870671404247315352461396539927276836520242357677445420767509569329328416360302734177830055176112185881490517147441691003882154834404852343711569242133018141874172988195898603184859563706132616128169631691049991276612700159851062549339757804717188030178533951132640006661723329656273263342377456976336851285652160165391228660396274087039837630923689587101455728275108657137105428634196420733534472142789975855699739156087225053026839885321886574812578147024364594308761345658335356605328865548856390040473231096644010148524802064672550141994080097352679646244334981738820628512527886076146526400027975640964352465977613420700270666876570429833424947533446696283809274053821671221353702118829593496623551081321564057741354553906608599083642952011825106521869946715597525317856898763270422559770826380685855119228778007393571585132644301595996537933455529021037647944608883609141859967960392384740723487672882716532928674919490221067605552976676064950310092698027580869465659557012624534549389941892472347907863500999302433700873800011469139283581768850165997430629271083398564596165065538492597973561527347965483255593109905257657895778841826279107218555379464592403455939320832229209001886745856917664608349727920178098280563055956439149472167572557404540851914885684362270154643505280278017473579789685395058788520871330002969183354280240698804521127813285250350154132338319016789542537140812932979465350725032084194725908794005672258010461505396808870996767709117876093800057376859764638481078430324091068609864024850603821534583689120675399296954899105991618503458985243260244847242059857477177975743106397264036036807966566378971993048738754871661943394807345829110207340190477812448461044806171938282762004014145604755303239401083307870994000221386466366181753885959609616146697057586662896541040710482502043446892832409475236326575339445410957887656562702210927093637783562877124481534660161262790638267843907919887677244116305924134615634780931071681105133117340718772143488074688515173913622343512227468913783039974428635694877463307554356917790587991366212347360743025087229633103649672209195164434112081229887193529727329720207082266187187987818085509501862602516163288640022848041110067165656812009659506612853123121366043548163909809530300269640355853882253308540812317948228424660632958489224102472103341394026591402426213145357942325744026422696065596731689234421628832656954791480261775120767843204484346511931537340724167152033947154567872575032896974427193341844640290763437569716165134676856113855810435481909478988040902407464958119252198113989524827740653036784152032040856284309717132136729327660784846119394680842886294820528635972858986340961012744576603512201829799637028365205638291025745487769059731656166074404950186696987638986399527558372728127357759034426532147678471720361005152326757439167698397785699517056752637221470667255776441733675982773018404387447151806269398162927215071708989203624739683513268479936560305107751403553847208414985906474690854571044807870347975474491098842744011349652806206502965187480197956564317703076839077527170424884687850721830410886972476727500504777787837474694726428681148903922749116177299523910717798399240469184190380779224821139452075992785401281751081643763196015297352903490133989632385474495218438540764080005284871801929470281235131583262172094347555854496716040713614629321867761032569057237681210464844713729310489675198660675522344458296255718292658820525768003700656884029520538320937781896850756969687080547645220063979332742890544050710100669529839677368069494787510105171594119836227346636112278840808209513550878442973166877563617455377531599403032381356312455765576628633368514108517948825244324359866032012205993615094877794769710982420003887462408395970176347747614430316940699397765319009533255979427979370973115383876848332825653122860283873742564498608378274619534932619602652412390432947873408329895533956164108481796396330904327151559097604182018769334624552362225624722866547143207320072409006472279393874717831617628129648997206112144368405974704834080189373231542358241630669428074297064233397732467672056834618586761203183233741997604918904152825562944869058313951941120099825255509247345758270122048981989991551080732553431942988070387226095473088958332128998781968638626694139231374251858715332783415643086134980827477987998494737319271087363651523600239922789145642971772713518021978151602327005328894142717237037793289937653141371130857718008260111923936798143085629333095512532053215591507923269886565089322594304026341188074523750905911217499145117716122693040903865890088644358585537977138864098106480250849863509463585316131226141907116794814662372972070307814575575242850637400430834666200376604905538473768621343144255987805108937535987474452722306070409089547640543746439354139470308169608137433400705932940602893289217912078255980690568010045135489682640627646881227175061375255986213279064031073433703648690850994891703069574781857311111640127528751768728681778694799840931015263949254209170646642015891779008467004306546083104602845837956107798132708188816509875109127087612215544952183445361398072533353277775945689163224270913559583182754583047018626239070028334246091592314338044340092639653623689704782153271294830354795410317803287221938039753227382023127165014067586777933121265198896674424157648304180101599751223943847199784965513065625772431510842365517257510905152447737474248169244312514558660140489106663493196973226100605980786956511755767143994245151260090448958411912051284876687854626762339334949946707227023060494463241239864221432338537512759183615795253103840573234080525631769129182608966480054167990750314824504226259706105711973534441088353766980615517545510386752017116165590590096284545567418934771885442855289994531285306996381062523554787335725476335016488653977043024133682759516354923390835870448426496715893069008308968499605315024899016198765094692564826705579239283196833254805408712161410070498965424096287350318317072251706285361912044670024214767186523607030719918741885758905390834524661340579340263634223502359545658048495944895446558023151838547916433301960692040406382569330222725904627772175473882121470832050150194214981574501503742754193813067110802693215351958871142629753807688644454280059867011398627673365392230711402740879644146151663670261482146467464633434273160485838908488503956940523423930795613847448448261433898102250404639210341761801847015856123096123173951566529628602620690863697344607690826228709315615023056110395741771793828230950331191544769474715516966229847468499072137850794053451773144505538281079024258118304069809480972131813178977811652172854438531851821828495639986999407952459513509431805498018071990075999226353010515759707898938814126006378760260549299407555158653213772327181965428744323960559795096021558039089624015153603982601010052340569724272037814695604757889598590444295502223864530951218349874128745248839261389734984993047020105454588103905779527886880687127748223870226210129555531158017114786839244881524343624691295269525542659059614489365254032532385052519291667295493309225614152248598328118499843955157865077658175839916185770724416105306939388619669928373250992399255584223944794078310833097222398156699060098965958037072630660726494782671934254385441874770238987267295728505896027498167795327100461857026930939333580758997054861862143494982440595053639388247301034667491792761272735959605946916898730803888878218963056586413845010369566654267807690595965138645649752172650791539117062795687517450320393616251070742506078300739203606710158814821234282427209521517633026258064197828305970151783100772520856730845321147523078752550029336586490219208962331417055996485426179636611270659240940058553441692785863331631750231159801381108248117978596443644918659455697752671240302760887427571375426086057145245665963995204875420646738471390381422320834593532301414829885432306065676631307327859326779522935638481413861075374431432933825597255780177989742485054968293642982419450110821774566163455675595953628263306555347213117046337814000270248641147210382813717967173095517019557872769915236747764927736775029133187259329021466137579323096977770925044966898748936934692159497623693321899025783564932081591376169455441654310649919582944745026534488855706062687996045548947792116678394318006444853528155943609007211550956573072083130671360237201799674486569229249344216545213184042921494069744339290630015627595202712540320523516691979368439511000693157280390837751958179764432225102851265603334897892529305947926150216613204160030842150530670468781212749786314678665892785353402754486812319879176750172356750216707060983653884389631582771288183482590842393141616187603640519984926887399416881575646314163618732285765808676447232676504266201827129681461572198644173948633145310187072894326954955280592592604062781145207748572055472650247428027609342240228999884107023212840304858963602007550230751386954590644580925394757669494716201047067886391874736839968167358574233461001687762228807277690392522314035705567679537701721271133236185285091215278944337014657920916390789570954635408149172170876777300180689125781827168553030548115150042609604095121437166727719740118758866418707303763546239517380461074823761362704624823915619158644610166244998238286746631645849555862829888556342545117162696325924098802438030585911580354850299378047606472219343516857616254408126116916077573716485932466864356844744532076410259869564923542945616916526156720413256052513903629369444283675932958575017610883352887867847310028022013151254057274095325079855714673029897113691065070548256829737750168984631001697771970924336806468332237837759710917917042820437320345909194206826621673026000907525502279254808488287721269219623419530969061665343184713637388329480606966026373008228045230021624051217031826518472025997347740491941931582849219386279634243450733179852819011094169280043077600333650527724577114466961776019537212121473381062048418554331124275833575702489576908717157365426415712719778109991616508232346137144018174520194297282606522216789774384051121611360478198005496599923374682835721761214713252712024452578622238193942497628775018872625597087527968150626549447196990592896403969451039428418562110959229345907592655326623393381673198270716000415595063173558526993818526697262662621068656856652689849814860796505060195312029899622835102718488743900071715216232682648261646306242269123520166062746841471889718370349877285465954862413880141630501501750386262643022211300243616372306250348278579903470820808701082446038780673445038011916935483261682276912878641665070193398172591820118075027704887596861912676827622391325250111759611271215523162035834793824545123238574056009928387642318582491903022388967809685711424059329215866374541826073066060794832905450864986074428213155507156783500149694477589427564371503167779779489016013578516158142973038856474302274102851881470438346135095098143962573754581537184056782697892839763120496922704493980581099550027203040325232035476410644707705517704346508157594886575614288141144800698253784987662536978826470107517084932836625307030389373924162464945425469474453689255042230229490136499118157818615872618844876025245443412908741264471615569107675392868191217244110479491319520893417942781271004368699761680911117251722674805896950221336770063341991720584875097819466274105490274342118462791229154536195180794376784592142288257761351951884940707251083835571714722360099356875369211530524847189655839839946877135436190023818348371193932554757329973570274442290401370024178349486498059017519071556959699123627468211144493653839504853324054324448795747708464317998842228488804270910666555168711833891313376733437388433927123517864428655905569791860314878440063138113045232710817457679647450394335359366550158423338197162734931098040249769060548490114657785555908329434252673456899675571716072135704667543097694163645859512744400444687045507961910649393018164058272782778635030671972896855742623424961935998246922736379997458128896882651018235968340253600723680612520007924058438224674099414207228754536881904336381633865123616775925280475735898233979680031081853792337155769324481234366108590321388817975542778490888941264515980231150583806229208568561873948825064715914792503105934360696661290007798959104658734320974737897516356124116917905251006293245907356455781962003143484012656843663239924434828939595352366869091718109645470501331942532247694970037769626956071320512395519624123461266189599989248668695315085235319295382085146892267362395655728204270577420163426743196378713869082390151527562119618008228225420568852585109309049720405012421977095725690893945356910537840127577953174491113762528567676562205137269747935215274658067382761214481728496783142945297293064336546656497133996024637864597137711685560753215691829135149096724239439968224984562118628637529722440485601577837172054602121483776008965730444047625874937763135909084023483335841954994746782925426284564006515832320878792217810258915968885382208658932583549924281085369830106709184901308929553954417704226754408249184571235207913069262711656706958296850024579552761886402609978546383273154763603592220245256859638162794938842281394405503828709429920523737478157614170115391055954286734755002150547201385900717620899165299044921447476968452669367090715217242846698190920351554408477669869384861678810227506764497243601370968246554878113286803171437289891786507971874429917727903739464725379776595785512732496366523641968838808580907335385901237512368508086537028829360683528942062566003453978393847241829108752951566148218618516391011153639330358479407946123115530126239046694373770558345115773739072721818645553090350399320655611484347452573492434507978901956462816437466079647491875847929892171621691310558458327365647509195176034237891423489478076138414626053242769407195191227094563687100162287061503316738635709535429649536516669211451977658881778919640187347067571254764954206151884604122691165018228537288885310594404760473798561204544515922282314716676727936149960040445038943728304767814861965877626036859322265099761989727338431202313820638182580490630060435074605334009559461974126243758786769146778486856687887556169267051534263909881250349567282740389879366475168746130910014531445432491144220299807201704823255115381264021389029172332048820229585986630030168200169020052994580922801586855346851285210184568663119277691954724924364946633913559310744915468991722209858868248160365012584126208437995090414081663235385950361069702762119547272184682387213627881552767290889495823184587591386416187054474208937378028453154613708253432453074341870420117273228541920468864897578806779990240779587875861289141182509975897881911004848210543642537482128645559287807997379737166599448778536178080719176693800416681422319116350641978788726274441161197458478121507082673970264056416879527231910141710905297958826393579354655497199629253192794533281205347577418947184814058179569160068518568370582050927147774402056898810412039191221638100772141576539290040702735002123430561723536499006124740436241829257564405733929569712047057807472029099632424750007186809660930372061844869412461363720235530584825574141095432504307761399988241812957779510052976816232781749395501680773060038695772159092046828858203814792569085922330889551065890008045834870059405099869643713897651766262267190107408212907039687197503785588335034714863648441008760135128121063071361803281133778910785517199670325891007601344301407395566045023023863784063919607846142442430326572519842098315074349560479325568475537860989018999801396511949807498989913384051939250342544025116094223267585795844823473673730784442478177049318536483664881262718800130599979153451075673056002325429806535652768926635436299464875889967712209422787952096023021613130181822010590361878627554568441422019914248504315296418338941155612806412853477358761155441356005543290792238489141044299792689418597549914122153587953052425992915381643461649883260163372622890741731362189895984418953186699317098015815635918116727791488102089919676811623285607191928068750133534614311969731771569181338169923551918832475436113807525592973628039173854248131938358805758111461599226277024344953301605711617030227896145961444933942214623091807723402632621094525013830793615920066522789347161387923753735231932452761174544601424926409651876907966951570529576171928616895550199722718186778966870939796517424564248463136535798660564363489011306095295971843464393311354556741369144996278114177351624765833660100005875194996196156339802414698354981566710943228152725614241922477546231418172895309408665852380804966332367759968962479671597152127152335968616492612850529638730778120185217947437963095126863784932447278883218320075126146581148190466943269701142063622282643619314091844930735647401825202186530062466727374677613979189372747038490706626595394759537741581460743300485511913171879386513027632621058719739777723064570879453810318082476968522122154835974226155300142795828071256117565984372340882668599003230233002868067249545543353725000028784897619572510527366346942708250675861936623854934828015320288407718149101805940016272472518124085636004958777603900179029204319387882747526967961346151626910453385760852132358634121558598692120173805234751166596368179268940308692173662956700305516843609167604569246492419927584074962685823719308771469333531550584794040648898453432183104024994910490970663984358027520988679129968601442218121032204438154907534025260256491194360848762827408728284507949240920208106617578847290587438972309789974483861634307644941941841386421170326730695263286063312318709019469478764024393843138540567901021942846854137880229916945832665956878018398822612179379197473622488991680629755848013007319243298542365952169438151087188902939632500994295675600598180888416669513160016111799147938904991596550149429784329155024782408767454242512299773784345872499554031213714006684579409185401678480080724274796771102633930510319201215689635988458494041917290919007316084874359441689752075946595968922383154860716383748213836911347586046172065656214755394596482456673211139048430820154895972264200326410281004022849970820269392634313609211174520665887401348022027621346325083235786634031111883472039776618509309644311071568827220820470047772903570438582758300161696542945796717084530197477432216612810787181431636093357098769188041895287769763333282133404931283489273664736685061982816861682326243741616808189410482509520644725646870952327248032239045661434233171385125952300798250980376052396903900613354700811689441600885395821479374448545051347775653224812378012754811078078818208744746199542114477771487512818893086710174229052014600830372395128966420585706289429183334133415085076809578515514725310962758881648826449957595606287492381196509803264596788285330306752038058379520045934631089212407525601644859756949261157692107502049292176197028725132433746270528222810002575156758008666316018385737678217949791487464447257697722002213944589207523638344167531543155028216442476605590807574357003147979559356882455729603362999361292030608444001627973380536914146820364683962279802801244585182729770256037768180342020224757735143214661550117288798785297753111906065046321932074386723504699107250992619838590845823482370402423598438020833264248123219510799720197658396759607965056087891383610138007129856015004229603734746140854194004207348821793910842923403918335149657222705739724360319346114207074164970024157692403459229491632255016254162732958436155274638903804052013649727560360071978422304659631563557964674941075304686107463639480512999269023760382777357177407843558308172179193454450606887644595664056995966691552964319715477210951955547099927550648397059636349997021168538336081352355762347673757577490376529561852058880186026904535583099301629549175238215381526975880880395795686108013290960094834241858282933136874201425026130492757974441971901781823351397384934019928288273498429383833979168786543387887407050849918116669779607637887606804811025581023525802586470077405465961967970144870150359251332934727946832386536567016005798106108847792010514461810452641958108691482583094718127985234987867080773762192005398351167378105410709886808184874891921575235890811560921664035406335053231205700549020207496001789294321686929959245785473472323284222189581140951944939274491752644956565324996821793320649859942360347225794317404222703085106070841845989223504437088822546307975027506608490957022238084854729136035969813002529705062396353916716967058783381089032352413782266770298938099420792642967153194776472195225819506822714263090967625939916525843603296889992668386899286221919391112463688043977675869527631308102382354478630394499753155803164287147564398819771555978374665892360189979409503564103901948558737206794762949081526944775677136358049644803370899341609444055045569146559509074717249524883945937523243370881771984859053401471319456232319250590474702355746306972642742832362607258275154305279541129866380540050271845510560925506346459836198326678298522619465301137192704449983668096735408927892291889601227461498290883619466777394254266799376481632090479629041966094720888649145518806678230544520006309235975495713789762115644477214893848146448858345480268454156828901517416906182931540034857206987436858040589691526920241663979755911916388930337169873095341653055554244828185880209807108838484229321951141945307502388312945321700745363324673580889294068459157826062768873784659791584729238684329502763176000223967581546674862979490896102667193485668694145091782537510191812106908995329294185915037043739283478781261581441579544370184992403474156921338724505829024859410058354644316609101107299791638949976073098866821297505005108687485644240366520290992262918940016466484449044138770403051945653100934184983326196977573794282617916463569156881815291298039694902556520190575569638944089602141735839618524719548056756754351923476937420084958258714923066226557520585094102789520484530896394602686613322898838745061032320013937569830710856594005529092867156959986998458028785285866924335218605160527806803527222610158454168492757736051872225501217300763500949260745866590492590276252357707615480308423534776297645018990542125322965752552056271863396710377002088616932485654573104992735851420945437418242523150204063546146582578848898050350505299418025470110440904087129976766682013865643366038284080495554971101208783842407782635142044627403734328301551029174733773892226226611395427461809596103396824281380111310776791602192889213338047969886182121926938253892062114073355082819121915351664858614987091237302977765194688234175289169304561230593004636139201902277267702603966125789721881450180913697919122333518838286850672772423739206207313170337306993805524672527337759211429818390666859557603066729127926230883261627983418617934285069154411032349214989676040917848050361408945719871573417113303310041931765845677031751238722137635896168276825554133646903228708225470750166732570132739664863896516880314348723988841419157184626444263217416810679865746935199687696971811994490177306515810800089932024434287526547591529073723631517769894884909202335778856306155906738265683879553091938174591106028467053181296432173123390466677962535146982247159083063742503225193609519401172727752675391335780966456642827710350093464763662575659089086963625890147798117822325238457049318730077789966407396729559470846850185594926031786942173980922045488690524068654775434870777674336937795096221603791887551798370605442622334390608491439658820777104190097179950836787456927325284450858553286936732703510653283373307120224808042084350250066948638830964002638270121255415167471894702525752609541563563372381756149428456989271799959565688215623666264090838564918587630613216249794209923400669410471051148045794838935837106955660046950206987346695478864170757635936400984585286962100913870873747304509177886085256611647124224894997371117744460486876040792626336289922642611413052702202912293338368231367089567785927973998045680413457524058799068327880409626659581578575712579782008851497761588982690526926898237160964214789842133802373672901622991889098389439140986502340988324724802400680884469620706441507902543997862654661813495368872028328980552116140778540804624880414025934810423946172190782077264898247950771974955003678318534236601575909720479376030818400715086466132999857759518975314732535384349825389449669783984599959633125485917048782774124386784671955534849573067446506625062235408517541598294983336972274182195965208891818701083652194704008455806894402456004363987022689774956578849109730190262883757960355037815947051069589202736926663626668458802565317866943996714847538508156355516556083357876722916180182912815695559236019552899698306329034993932475432933561271128595314107986210195980268201134692592480960970612290543932928697941062550875319026605376391634666635592485008282633698164482775842211718647533977151809137254377498486504387230137330083637079140993874112177316565595338979827228312313637659418809669243353136273663301609994718275067016155208047573612485599205411396602485929516078072695013518037239642068307501473579540115780492789817838625053954379557122114016301008559142193066266071116767874240432028535162866897634850160834526686500186089693815041658340151350552146868596867180512762183113093604644683947620634167364093950633659275486090757790752106281176479724739706946780312117673414994143178807773843924999826551013285681626794149192412299728781355511664098854944625570954037657908335148693105833263838109843752213698528161995052446636864027807071811844359957116013788327589587394247357227499835287528670564092790009389333457444506685191717318812880813995246532860171135022312303890980632634093337120399787052776349974178211517303586108370288566253107657846759682987631531785319574771147377217809383081072954102907524404984801954984523102990332654190714605090771376418173603623348419419706256293987409041538351293056370647603684929182009267497111349437913380857288498859047371600742035096342157271151481688496511290497296923531337805648086595960207623387914092366183908121745702144478578460447461532746953580041848892235550767394493115632553525510149791960059658059870648617543747321015936582287062270760622598024268934285475910432210893612382047498254106639127089691000618677073448306489812536368188952376838397654890224132993430684438518250908357612636271440144184232835693660737686574681736347118193206445719372936193429142428416069989035485157963293666481293331736753767947257710316105390172852898973048214432535082310218011273024378127696013934830564626285883876664661897169453869726287171452240788568642610072672184830948399955251572429380874325494255457188697826012585038038258168024226972540572608784016504220884791750860010957231825127249932695786867300561802180424414625032669519722041681358795826780145207368145926764348131783553038365076062198793560102595767800210896482209726798219871771622838921198748660489999819694493950448797534760926816771794252328909623650724118730053219640987314818009452212191599426445120809454463269578168516227600523194019621180206715897773084413982402716586698589362416077023650002595370012700969499299395736214773127549078683074693558376073397323782691023131384373614585974505415724756199466754173236577085363211431962139342213260996862928048176623141529478196081835231799766923453965647858668021704140738430510901706163474752093841312010254470763279594988156370522756296791322550577756917209533411814512900548274341784317214359853885188412177369839023758275083003069311153549920575946105340838304208619674179933168990065801052932253963704610328999299354039439501425677500641732897614740869137870778550746664079958958365227818726913536263520087461250222451391667929029082344970607226581626501921278808962658251391234039891650646085924099864366037477361821625662079691240730461279279994327209628704389703997969532143684884805291544566928470709151805442646968407188874962940474174793606179630544705816070971955273431472605990085511761086203688514798547835494887368500160048196802855680490027534848376972353355811131793951027682242473521351978144102017063946775195746396159715373838238814691257484603429202169553720329821990699662331391498511338904098189683315288032168709591735264549037134041238747517593671123654791161740107928972940261568071567512669109654591677486279428923671642892791638894679388085312967593386611961853496798951022026668456546124743761123372025281106429388877726223560879911441368268330706336639121910141934357878578637337763743129145007712858990009595425045143396490930333753152995506015671550808327403359930747139739709570318514017692970667754827403384837222670612782223143336820881136674678150135315604309967880619896950551365123456839907663472178115409485776565832317291256269152465688407319992003358484910403733540434933514323315987331196903448849309759769439487114411413323949403001952757459138706669927711342011554145644421974985449185053368891296440635921466801438201896873941937260317681059400287817079849780028232974535293266775654239064751426903959943005137090770282614835918270982047725521455178500742479631778383791083869460681541932010369933627746004235792639292367880467296111427692419485246382291212347301113974022976818870405689726954485782466539094086937912649604252868405777076367875306609958863121255898494069644225430867841409953650603024758516798901126901541408308978977977464987935468163452168159528781927718585232515808351225176300993787540114705394371933022758933821603199266685365764361870623371580286632563527147757799783838685927293076332575976605391048296609316492942478232431554098849444425736469216154947026877128671684269779903145962287053114160661549909687641779144579300729988180075869750664066496498915931772601984619835051356184485194572648986360387058167007618716788621679027674967258928636469858445689868443916844423122993775174130379475788274736832323334416808645243115703166746784456490927218192435175435258751582911705756975880340113054450377569563867135720716056735725746757349605661212142539038984255107313153362167555891534140963455393233995299621857939608053575451470378366878807583799557050585622584796172027891905569015606188740024333771347528586569428133876772977951048892381833611094472553513743323912605803813677809969805329558268272274840632051242587766114530803577974568473138039395313393490325094260741697412717835443422486041348078940357161540361470151204868496630185043424080978731798547092060552178433235502360167682425640924024014902920086990257361219476840509482890509844131576902927583824044335397627491433473758799133740980801364867907023372655717118832919501386378247969099215729995100556911854973211309703764934038900537682233043476087633232471839887188432934556587265065614410922772875530305750026465851812568806039987508261490377733690036828579565728131432765965528065636235656318185463543538558952056590620812996055405773123128686347805274217993824126499446882789517749895467398328198135273892235846220005124243273689971263459455456154783382962797902647113761228148923630495053107969117067764456242867914369251228768961747523003208719339353195064105099792039915728275909690692377080865369106916116066245730192862026012836782485732385050745461817753431277570304008430343589607617662883106103176816474677425379708546836789385523467836653625646895206783076606683606399954627354453738102329700188404883555937889876411773903624761308804930327112166980084228507269447120626898062165932425500784986438642837521738495914002575132290239801007831647750769926608454958886359186569447888987659157011539754717215640578812241009203995029635284221118772325303385320838851359855759741519513366172760877571926524211726106154110742998512148395284861946044906559441194406730171017969954830481415153907294514583030840699490633344300878963929231184893989877592219370287385511859343889044667892157657006533528115636628451893726483359061224921532605837153195811222563628048453697767315773825737463729598580980665545458832680310879899599807011560641800683811999077895720850909464079972218295968590903139644092752574570745442755262602655952975687046995121081871690349841670346721254354138616044237576913551801417833905356008417728667754767209978230770058040499732750259840827225175255708598421485350520101662551393530085782359331734001484550012886792221133097862723234061519950703592693215047196048208473905914863320685738395601262148022212655014268884897272044183150014422241663730116334334477160821093352332862331881686588992692785184461588853120400454469929766192357372164729570944709746597769412585493278258860525645519306747569321835101100489718247715762585766981900099527733140700813364177929939522126327183437672293001566455867531049427219178026022691349558433574994862545717511533091455072004940614798917711756454065801633719660457776978783912249804776158431864199860409749245305196702658862907758948530464129339939762459831950008263302700548638594298846466650022122116410856293870023958636432812467544976493459049940080560555537367322452287877709001159194314592162147736386732106854248043224873169221342593895089218210132651383854050597637643321508888573349960548871546754642299638959037022535658774179007306532171949223570483248287680219139456857433866881379693426717880568272116140061870715276923139569997298858464238804621656576874086085952189730562120222640611177804294794714357090948744480906755006441519426838187961945740182403968459526437814356406960994048109068220790745536227245308146776189318455605851626466052277760690186483221769363491192938449105079553711740288807080976925976498538671086069443021822420655486597064336171972326955649810661878629588484738529759483012800595213088657847547924853106415892697077673216799051175656339962685162994273976476810575693074086124554560642238660578403682991080918588150065944488798582878479392084361785497133557731542061176240877014285985785216413092798601892112573086825983510024424927196741714301163988027983883412329516387814838608539533359488616809839795632266766346972203727056390416361062124352686323630368074934764722576339085926583077087665381091586432124913970146690260218714306948501297267741873160918919408102139341365945921873393989495247858813176878670558264893791047519135402001745459108789133899988612512656836202269576896379781372586854309947437989262977926592302499734127127550484033304690139712120811294810550590325134439311519721705606940145356039079585972571239117758868522616482231254171505519521234259353001519298230013885024543536080572500894396006369788233194230815808919253624621242338003085786305827614886820403949653977569577005834412230535015444735771872548660522707451852671133196560899067337652864980890908036991232097163731450234863985924970497131202223345444072339916896474432558885050343408746329447542618055011241636351568932493893148277519814097787334052130164839759522166974072005914787204918031748616585825907907857110314456807190616066007231242261261579847729309703176321424257383333384920922173588691123965401622111945934025476260942494989429148715075237456931762105448087469343109909933426375787606595242899274791933803881311003337449230774805231491159982453758247308622250386590451402699495396859988459314085097031815937384608402069694001047378405300659919391653473016031516473607361400026628984619529944332843148235150337225879387516160698062076606041355709510513732559500962408183640869779395640993562271028244468527983209741091228461881457497545660187999502808826388782077976641236904631742541718991338946814135517355204815887997146141281106850438032277746083994514015851002010232532634423130765072131559706711606914744480374561168971993298511068363427866080278983099045822179752742243679625130758112682130556045291347115366608564348937124393641752538827111328421329839755276331604680274093373321018213621569545286738750877561112810449813220736694088291626687546120644990418229943084282121000765097588028637069530013388422327379796785712751570865941642815818865924525583446071484298481913408588009512260896445454364653760512648709308879327171996263424491843949062747217255580544441443952551789323302099109764868402203616416552076816790562897912430043147022691643633007953563417668934705275281492446777101016775376995827462602774878205154377781213639834870051494499689253936697851014792185118137996075227939174363901540321888711508724653113595813292008454980838126252179074273754773017588057915589601598178384890230380559739736915459499636007301621966310641457609528216410779106397393296896239384343494950398102262343429159275913838142085122274641438748753600723480223069129147747722720938043605452277715728766297415182697969093065649768740851703979099462003063518145141957256379012637235333597731839759832551054454508554796557002738413829003083642097296412859578745472187180814179987148985797379491344712431741150887439717004617881938813239193544489261672630635181403316079970856407101251782961910281060774411412880562592610276088114671263552130687515641791274936882592815642123183244581193360808713140064644108794353330137354975133742132334702894360941706073288025110664065176329742209782389196841077662178015694002596452425403571801636700103817644487288578037615461712666737174208443472563043367025691097649823731724381180796443936275677080031415286135675535522559595295127520363264300922708221435497860962823240471321624635737615611805839773825672842708757586658537553068388370785472159477685719224688379889849771944924875570182138004005914218896705184377807763806694627167251130555584747632478912936428671769544463741106179580493826546507247466830085464489113686163384923144759635067621433524504893209601767170750765187037648505883508830581878648964743154440827581840122847791424589751233013121683939891838149014769382748412580208503972655861624051065151538761129434369193439250867236692057655296067808321776420835761621443826376040375298947915399906919063145843682268420342742908398730736507229848037439380297803349282817789478488011242016344854420343615693386165866226505810739661855526055443066177000617950267219994925425886043085455957297652512083359214985674729302916596168998189025180944635399844203670928314053038489828742287097485615833872725213580326010609372012316918366796950311928186841831053884768099882778605381487452000199159183552305719128571183005938069842255460501425426061665299665935339465546336828458019499977067171801325175638816156236242546220529598934303151775377017733885879593468353188583229953590143197798964485525271530081261097378350551652640592503341396592335040856926775494284120031916047345053880691094291450787474658681296969221318005898979627095164519891174755345413374384440467018022021668717470923267898408929654589697437440216377375960794319268434337517441157526743961047236823850350666112874665216023567227375337753254447614591417509196112058896369052108335729448519852149720873807019949931231013638766683355054232719865842601769356838254238432047950472053868112030231177561035784940231548071378232222562196562614901652827411429169047346831826385448695172900021762537152153754837205093460122717643863301246200131396375821951213867849683413012840627211597544773188191610993031329417159439462266196616461888639438763558370444904781799075945282077054930787758589323072824133146009213332508801539171254772012146360550442054555262188702217346002912365239469993974907974335989892517782330947475004721085828234279487568524593491117629242656613840274022104490799478588838078532876365413997126068891890139320233903681375149707490490304484762253839954637205314026930278128893133343516791050217090750148615421954912874444735072972031691517248071744697686439205313699868189905793423941612245900440499715264776990017793434458294939117054994801927248447133452903179847063483184585641734919994484872507617501857609849185822843279255756662647153661213784609518488018160745569365411146598053571596179855783887596986956112075056836710227037112132562295357480153059993302347929253476789540006141521584565482806387495777939383747042093626593528702440654040981100972355020012744604809379192259820007821309588362886656448181725586173048003162707791369122473008094381031058367792505950877377099670752566263873576830756310868217168697446099291788039008910022095387435021405417797827606083019832783179474988743322511446855125547612231648077302268856104205489621652307421587098230199142061068681980771903896136595351841222219170321318671236633983407954165570957070330357696446173297360968146461127162383526314622366011415774638866553144528012941299436883740307208254756588393042534588787247337725813075121286704908025121890071733640033500332057298753843673807055691534098890592627136693830729722835101809519140239269176876402600475299574006615771613765787475963907621870499239007253113463319103118545567009251733797280979987018938914566625700575896516951515596096663957045282917155106031650553934420258717527028284560067997249230141009268228766177479476214815468296857664885190556820851748809728386076154099776161189245159970674015101562762413242498729496751320298732877594358511299697836441158944154052446207726272551424938524004855296304178098371582298944643803371288806912747589665090282985017677766547682911685191521764223098481448828761505190790066627299778681869196256697166620007943784319397582117653969819999141485516486363271092405427120706838953181157309544245219616351498736595152778620745026368542990479627202674964560972981249416081445440646304193372943553802765107956622236467458594026597384202656589296162191559574825260819092018623225750350450983126891272346311397677459010494509746351632336103416615704209484556666202090739836500212890956130629582000327143186485235568717611396959648500060562097029298543658232617888616157813144650005307333260208064466486503477647743294217756351911109322389228147285872576656774663919768669574475166489332221297879303928659393158234745558180049822835162447011390314611417971663166160873009205033357171285070455555074783164294916268887520305605603657120128395164028180971049025331146004182825385901942010625416965830908673623496673931090639479801741351517965297502740564028333385064090017011145823715420466938206964047845824646938546953450967746624238393956770325045951273098263155078628373099340913033863739028293747061841890215880265177469910060369224192990869685542691685860270334698033206586057727176496072395667729388859899048039303427714862493801175508046205319192079564263442882866868332643146206292455427953842013633723993922750938361409989308187405033341506676011912818636508176941176598049387068329318796513887475292770505399718071404398191376563103282882676900262889887762183847511456434865083600971856223010749436386985663486133850644094558156522149048548742291214709708351791372091515190092164046336272790074927821543517333676924804783116613607002779354134189022604291352408363513689585767836022218232730948275186107282806089936505083311074722391995760814746948894474797608366985691029792121304094075601683359204778696605995111542258806746800589493626260793627523037990002263688498827407922058359135663579539234444158603208636528257948576161684264138908972169700616510387353836820703523344051106260560923459026373735760399605907074430480207164367347535939071556898291539877161804831181276229799728291290189319221809531011662237856961132710884946461298861230759479371539411620749378591817769026232057335928696052898907581988079836268456449911689826554771371673452553146886484495160093313275355809501774465129586199773046526983605787562305148413912967885534912671743752999256540394512833256650127646446732697835172664771071885397948064459373225818504764265410217653498923963316230641378244128910867580310227348667480282568540130907909272784124474359987920162049267443115380004851108042480724651585725670189312240832777256996931460916247902698432899777689678181507885503873159362085923889954787340540377592803829381619778447718872566791850938957602630097311320302987683662326147218457992625837054213700299795102542002022099279184384385199609782632474482848776834777256340226528624853360289644609297965050534797446958576466536852697863724855696214162171554387006139838738033490956130397636050560537072953829003513448856147584890088776229543159192126306648468293274743266116248939775635623558222371632670091978727151401389489487028217730497925562240538636697841281993539933403128280710914184037070200404259711084506801932360491756211409817327156143126876018298369798346288863381966501676676084814419831263475121486339319772200536067369315544305458225615441935433718849393689082862383172200334588926469938540613966607249561552970653917563463078717996880820012483021432007727287738953592615164046533409447861378102461022048940258986632882098101694969353655867160407463190561131107765976037104446843977437829957957660673165141026018585929899646142475856338331159987537105667942359102956642053225409594472381018253887417631842945044523439324063246244700015500153895496340687656218584549208751679507126130487777594321178513618585385427239110405320947726191929732250307114364425705629119474723705700302784406740326002404317155600683485813373960520788294485008277738255610661064525328053402397411092871835232149995693836114470862543773426739136283170151499625541832644855595630110406948394425708003898346347076816804179895459264941276718046703654913705469492763107558569906122538428257780101424277538808886194223249403115822678520000529431905316800707794036424158477124732813579594091416513771301323806800335579018963937367360705960061842927404197960617176720293621105201956229936899254384271161957774680324113166809417797234284205818611428259906687509856716403299324949185037749410503313268890367119615085653033302556467188620537065654827130692066057663970851570121632370066522067571542946755620445653142449058682651780171174066918762597444361616201994843641722085304110159372037606968905329533943205579032327950389202890610805475165238382115824952723865701045329666533267863261069158039894954930224031378224201744206246760544403567805196133714272255622877027003221032639768043172843975325064301548730715656717853283030259711644318224743145431446719506342090035633835126070633177722908610328406048511887621589502880785598937911678559150159794450429810317582087575816021749194806016543245605590056587794555111428458083170269325677879503122763890869909834877224573356471877084827627436799920180212294865299665964820024836656449697696484009049694443528543290547909868299081357827455487278420877518916699450621484529746584809543275348718475185211623935505731745855239049341009342311955514209699354252929392627214214119160698764851953538549091844641025214972261727941751110045312114976551044008116405740748685859495309909421340312338455162506086610271698875036200304243299943762076950859539222832619227196072400636843735346404738258191992308162152265531842123011877667109030020737652448172733117500723405581404072391365306661070052780346288968266161871148734101349657208896916659777232339935908311765991406654688829332581923035430511950381287378696286860060397575055879619209512954785455244209529916073902007069853564023882362517224318804102619246407447149478616931854984738705861373889422914380451764369205470417687058959241143223699201592261955073664515818706582756914309052357638467226222511682269356953432328645549427302080994142097951402127946058335143426329556145772341737794665042018507097777104755787044604213787023858492520440758066867107875441176532993818043144229450939876288836409009008013328001258680118336783743510898077770653655297723258267813012350242571112470495668289012534945854058812904658953904321644742515844713997380092922348480658014462573420426531921919517641564776155986242190298859664904516819399955808256077545744172856219432167773412786498444808412067730708316058716643625945958986239566887348483472521049406865332080398171810534739251409121463146913189032129950741555815223128351458542435079514120787464016162071766579841480492741473696760410853651963816764399585251779714560301379832731011050682162960181398608471007035891669909029045038649600802235960830669216703381278346584844384823183345142514277774606541116372348860003293968413881723152570641138780318661313821558532111370358271874327436088656117500210815113685746821660795261681500118717101183337114427760763006808247888367896350755677899065314007763388045289450110444035547339709920166337969902618411600002564945295737852904820446535860045083679812713599001603957205137425003382357208747909793925797889010241104147979145502536382361469832540912472830525727641149142646113981999219934179355141429088665167681502164087894161700627646742143011805178688203225291516513753566165264397251669508915693707972018147530111768121140513099932294382002766955504093716151273645455470084873770003900958024423472973229816555290581076029975060939926045700389847957245735199566680844549251596764381056194869526190879410748656691530382132843550137692048927215584582310355662535391128977638836487796620631224367426134525821503705958455044337440339981748770815563425842826165672094461538887765852255908150007313941060206653315939143103308257398587814754729370852772304479451083602277418244524257781513030226205712121494673945183709960502592946583958768892116490548009667942248280986765372075514273346394827455362869196834381648030494481600227720703496308831163308565875329566001323862278051707032344088922331835215761599613603371363637102813586396462490977482324723848305435942967312628484009691903463795926578004411660268936744700489023949369925409288699979604817129031150529806237261566046552798597093285822488509460196929255007732981949761975389433253185358659763769423363756308279850784107758927906102932853862654128404259545402447205619818952608378762093812811980114519657088586520084519263267686569681214675378585777080999089400253481658309901450073235264186132115469780433276109788469509487808143853460221866599683177403585031320513991644339244868370046624536461396571587581740690286569482345082933420297325538815496077659129521919335307059311933141566776523092255594393132922146924010250722287653117732329870497503145620959337687366252784676428002807453058355564332564889241829527450696292452972752971142294883490142226051774783740098091644450835712171860342799233783318091880530300771435417711529345931055783124607619040615000906713142474085222076711684011627160778153439524298979934739781333057799147774308608758869792385576497311125742163712838626182098323729505224237921039909064590110052568298446336938684174311634624362976483818274285118533036721894972528154679402744098699478237113816278232945045242980105052877093811773288269881841211150169635085251668299051234535219105763138051444553705911810026559965106766405769931668808931122583173796936142817588428063605772840753401519018597948916536672963058736004996878885315661212442210221136473690236322988203562477235813958931377266199250560421568807802883318996871524948107837022631063006523918806806874978038944738637160414680041030947802726874946334882410818412052397907806858608793605907629241597615447883936356207362035875877129993351477485263046853181741306032126788929710943023906460534601759463996172433253886792431399378264996183341260977836672628051809208774279804118845614674294581153074837452189634657024279050532408329639921836044588699456596894059296877987140132934840640513921798481882040176518659061282188487093879668927797849852055799642304927785663621811434372349212345255451210092073215081348224004464141351856476779903746398746885709397137365936571604399036315016445366378656373518578105176483313117029060306076207250796862307653447953381615473542854248804610936583356574903162058164181930514002253574994028136811757522511705380311396534501173957356156500856464365220737138804465775539847520816770794425765190030082105398959637739970603740166173845400617034606937234889766943628348823086928573143948883185215552013565904040095814187409949011302232643513297221394375321271609643269417415651408503384686525236541737105673097084657800339418974848715781272364103131938439671793501959958059551233406705345918123885642097126324359881608977986016010968425185637105762950321007496193571860962371248280741899601666894222234350275381513639657371753511134674372928352665726764654981430800154303983456996753388619982194887369904083770608284124314578941688099448532104807407779865391181492794360135153955569756474737744377822855682435322144208038212770392807392818561376011135638389788174214457700182221638895876655679183187745693601210631758765386725958218342113695373866161774671771907582474900503175574943210260779608758087039782596542911856045895598067246042877823139069245570659345447396629953781325540191914110454030403089040498332010500816466965403163201076437575221228188320273854790123909760809280223104800646132056770426112237363490981240110638879912410006051043508355121263056548253836464794792972884338413798608854051369051775804315194377507284028123130135220091765196711405396057690129471224092187771641940394079894374446918831391487117708588538101736501388565483461230355248496555456370109344537228112692551070376144141362003354250490027918157977308009065117543329231117092335083536872067825515963893068696380837876868450116742775056962043993561916819287127857713253298637872355548481365167962047227890511251356901564406671235965487503858281641540046480021150099623430739238259000170504062092358231487530674630672252065749092040802609731626490864219242824517596610472257852424539890679473138146364586299610529312303724015189309788820163196372141130982263921020096875107639947643963073801941420551748905636170435825823071243047457692367221767824162940616554162951041723002884055482140497465459586571856143538420777151736796846892329912295398166177525873052665383738547203467069362683420814219747951431636157347899689245281662266212775447099915206517027442648136620519406120940865546831514945415684034243908413831244444103933258437871202409975238576916181889405842891647014072723245038701325453870477585002999666677071222708092461020986426020781509826674763753959937686757723023104869913798803672798078298593280306930552040574522069077518601955528201310748443664297215233527714933091022908862446732110555610786287630727876308460739516181180229851846298865486665796978055170345600534607941229722106899707298109695757426820963080826468669569928047048558536380848945670683428811226030646846912036611844667897245160748173183588966438848664268856791889369697772796177804158316602251405201762310721958138014679795152710824772042267160917352171479534182956342430918696693159970587520824505434357448544861230113435892412621478144166588035446436770752002231084745508334091169710276947645221846864523847362271156708113045187580029297913260893916277519480877091178410439640517383846188572928786426371894448441473576683723192828610173144775564895115945386887123399913325457864553475773668224242135097434811893743346427392306166657267946931443125660850436557809408140331515519369500883855433650628713943181091726666792343911012993149528027618717048310544526735643659523221998413930184032360898444628211512227348256568750244810567286302746740137184559397998524338953588431658581917902381191840514722580984914762126683562483902469459952038113969964602531121714226114386729553937579048216542586277598897795233910669729950821303153282077066954846249743769298956144235603760092084299431036851036229684108105635645415573829153163308558137639845297796102619123898782961347222059339864292063709113870921821760560767478605700202733701162208441710141835039662934116049616959362054298878344259685879883159972937365332655384779253437428749431544402020190941519443609641095575450323152937040726600097777035635146052224401303372698243175378467553002742858310664621409998529829140036702956814408803223723704138299471431743897925727517340982274058927807373423629130768104931240557780840623711929652724658195132359391992071733939709114887876074740226235184719484514080939260463066675439019877622121277381739133196972029568592968078434253055288319654859595507979453216981466875183971639116026836165063911106779251832302197559881108221720568663314339988076138967997435117572862979007420195882770764810256436281923990184414577211595803088421569590603050036388941307240795661124281605049888807983593752538145674467312164879401566996492679163060398303939175840929539478381627114663454032539153665118313452858450381537892166517625300364695631058273695969453973023507376210529394278796114384542268479686699333317353070828046814432305066153048529358506172503087971181671682800163138958739856410713964871487897223290905937327291778744282737130147195062349843391318435059987573372791171572015338943985012240749622826974657432515529490524107722333723142077224100480062203256232960086598856549500455300805949830092625080447543574376832812100851011748519598543331070156669741743439404206836590436141897506822508521561145402553687627657167555189317155872758788281635025189289596569960257721385908077505562496368575526752994276189077658533393071725929585789746847552221539158379148831682598192828512932708307471706201901333015536484855624444253246736184820344223932401018455451823992866549795866581837770984762938381273711658889661676726487424462410088682609743654148910976897170812305660388624197028017428066319927469899745575609253855384822932070911130891332081806362322784286468258190007332293824408766568717781636601858781021538728514597453049187621929569690876753274013570997714597801722356664282344688860299293224442614670618673623818273566797709862833696695958966780472066337696283036356032139042244037888636909919824528882932258710225231425910738210098370250878598413994087401312883071551899886014880580872401099003761094706012274178354109694541161127999074480672656926909909839838485260347935592796401441177324730747629887159386437996369385548693154550036348288450348892768065800586714397113090763259969116362596712274368444448870073463718141766949308626318655568898849717185965070955991105111957965035737605877449421222790630433586154386957461302485370119171945105193590611378722711262695958319441811675444260624091810816340177194091229683831924874114619812323089056049040427014169658708254319476157196662811279175010500660090456246921057275717238339354376237466840715033909537438909687199492973732989833420876159099025444453182203803607897850482747083832656994783633990991630869342093696674998788775552911677679309396828629056926039488809366091685148930112672109539886518214194876241794846672159353944182560464512114656833396844325183911314511801708273690816721741330332544898086561135218527707911069874347091318566742533898660384989174949775234493719633555128193497228517113481936849744957314108865016602559983303402133307641691992279227929427505529113688312336721001000956696256074256184325198442002924442571784201032420347012964901287622662108539325617612163592382214549827471573082566037511317984128410851650085050674685122015966889896408909637786594652607042470048415514359424140540385703775266979413898083422474360040097037210407683610687409201991949483212969482351741224827003889107518327597246344567127529339469962444796629323878298109906421217041310460181982834653591697485717987429619562694877438557347996343980738430917544585995547261593795149878520012093090894658833247356118147709786792196048001784965669255772783671216533494302047801385957741999284347267750138794770370708980873901023626969901753484673796450724444122926458731698217917611130203093375264850669165999471870931489566832623718223874497574568412884759285603869578485200971602203634840501945185444752271172679539469743144110149646800147487884756937816989378272228631436223355940109939900295647505500680283675343598180649641406301996945291977064655638550555555642643782966290579837938857421822897933332429273202324461285041374330695198020599193166839352846146149995524122204162622690070519757051982455336735091257984809719170173799162929912411642953826596029939754201911348880742469552005221159469527557216852383727276509168014917814660097807398033506130360958185217354132796970533410573617820947066867529180477747226395183848845804278380604021443305687797178035990919419643969457008226955604723244326651319911557383893036146553375716516149280824617533128336469814848352350345359713658987471646457062050292434504826499903705152206531134985727712652820378328953243880377184092289942284220556128546792359745439859751884752748514223861739963440583644504956049202688936461217313820956427556987002630185321276047715070851768170429679972325702738066471239240077404930168533603675208434980775689325691286550172239406339503841533117258491508158568295705383810741392862890341706229088171960939259423095349049586811646553959690894855013725523212309255441072645940040283054595299594671659655619292056681551602898043478093288895499945487588355769429197740037022272138030279321959346187756879628482884079588884996904013554440128409944197166658878463555346365111548942921225501972348004185152221801680080421789847857292001751910660627570755472668626320199270556902653154745991602767226788917853670304722033194208777019796028147263837195721732969290392704913444616110209782270699203494853681189520977041399672647863093517164357399882913860015064421092997687501443931547082989173070617862907374436157070981775160255826599060788234845802523866465796384592264568644909222550734918701241491922904415403769935522031566062663907876612224113405949472408432464100708146453823662673283694499914603705408757303000224834335307658603387904065608364338098372560022696776116364940195182033087876401343262286067681840416686926812766915322785146955216895336145813754066270993365992216877809241023326638648543514996577918630742425943628654020686065669277860621603182492661003916310856534409877698786589663495448245829745584954327374233835586286849297170319238459410875462928156637510164068120791092874743687631520984754663850493479667119319507775234400319886252592478571851279347563872321679111582450224998544396000353882376875120436943579276605296626019058173613369569845590866575689677132754306788787062604714303323220956525358006550137567695566312768934453674710399258915790453485936140064190500933962923228369653435169643304354325158323849298805820962697467626857982148386937060243176034525073384111595049222553196301029732891443766298952566511149254328348506224001122822816898023679255851807994025360980368811310710736760599170330710055985327933351859019570221594483219988518040068669977141928024501417001347776746144427356725490998661780319815877147289577703829670511509348299372688688267259847332753992892963659909041337324202579465858911075802174642585095067764245835636635825362531761256435416195294891515165437536254321324063670439165867697276647934489853438785038703333287809390007312940743437892923046572111800581850476896836601197611603075148327020610955535771040862949437483906535983295977297787037379686632550706059402587580203387385235613489898121477610131558980955847352794675606221120811817849749288490665056852484939596113297894566740436968736439084893181053338610661853848551613192521428765167893113768003361624882900101372594700712861894665005609940234223395203195289980003432996931099666525973795757267229599429708431458859104807460343255525596249200490804678606153825763455869648383173853244162117308490043789772464147198830281649723826314823329214162659185408242038407549268135532183810595931511159045749309214068601676360631485007936204079801492225389002273714728712414572566047233066496572979267978508472961242956347615229741240639514682408798090550071916933422665740080090699628861074236877252905137127207610443797265632194900757806707768942288449335301977968650565134911606423594536495092143300696687277147251121270712556687517515543453979873069938000549814119636337608391142080637879582224599551485952350597742566360585897591259358298099276531071563937949022217756918680458486447671081260892880259532275768496886442610270665329601886921033572297046786494261800736953226376704221761182376615182790456344149338411694089220954099594827325084497174264845876703914786008697465280865086770706027256932916260851305898978496353203007481855917437091511767470297189035498369313387250679021304959668424471212407506912193450963658844662592094066567533307651002980318016732229401312974434015556368605011327761631406833340068848011887936039409227266234876414847528402912524043779066951740188016446036643879710620182508779648518049203847732155430421941198939356402630251574869804015261722012305370437368848647461565339149221213921498152908527341808332795320377873059518272259559153488010464977962311743510386416272892351556963501370656942768727304774108258264310605356719461395384979389930836136304269387006142785901913119703892105443495174395344981574717617028400488575879774411190152844220109086170272484322401824487072234889484837401738401080337518845462574649937982412216608481614662282109939004870596895278260621871345814580764014281989848798705288723837064454945072113464180421340121274794642199264163290570197967108013322952813515232691044015032554151099356712763489539736687662539009278964417935395137997313880842195249794584314442218988461922705278682268494475775012895199093905084182999770611472935627499685082978733139887237811384244309704002006120280958431093238226751324936283770172832954768843583483473833739261898040571901821498399212433378271964699907468399251459360762158289819748760494512916527655785555569331928570266772142535154955617893076711433420267870039306268003598721858448828660958737165162590261099731349659844274196915159262692123995623854601765533349839108725031329256214242349810888759328505152241260089703591844182674012050387369221895181803826774473021044982839908133008519133354803801745665101952425422024470625038259767248081139875330659097685449602681806505298776657643250945764899642477889072453196530715009235198676069849373253494333677630376895220615073649998949596872574665539613798698100299373766062198901079258468380895797257104747736341124632762088407569657879613625551532721413300997016575856574359668931420195012844213692270731221943481860274749281198400404478651862869487729791536333968903493245835186403042635205995212074296445419504681066259353501281146559406181049771720520455695986934964663358675965691349847208880966455454190497734547253513252928891147407815192979199594340659216663769443426359746397551360833871773028289946424289408450456935035872625863237419798444446851747969595282280778224207803225778263369844010597391467727849441972863752150240804652436830134868810166339565161663045953571136079830790883245338318737657055181508098801850046833668704456893124966439731646789046646213150015729456500517417262206439288823946285908430006402941891939227416411916779010538724598377490708410075696164519423408447544783344554048436664131447919389579129801080594208947677845258395505614758378198222725019137698575294904784521479995158294659245755127760020825676345124878298274306048172849730797813040982391724744607311615080646988339505449922772661841882017449006276818636254691601683773724620105461171237670991277702378501286681060170423122579706431582498929229045338532258548820592258544966412247126783688209823345925726964948996462740591309132166247342537609397721330362266179928250443597251993684079049520314160414290251361052927115848662097177142335185471575447133529041576211117873763345794509476042536133775316990784929711777219285176126503018222616319161294397998761849890690553542053021304507646200556943017958165513114735494273214749782370842845864765261648089248151028752016033553437103003644402998004103859129771149307962872520935453620289879694396717515324807524968641111492621639089249722301753978425450527324654608178879707495926653145846257951919797945888738137480149291378210867674307971293827171539373141113583753667488385703091057835044110860983958338612550423079824618160161814686966108710011230825846492509547366504372458647999432577337055778303226434809362398048239644919831497641463668754372979770755318952534835588674517968710228824121259365756413067935956350018175586304236452475034487480292147547488224203351125202839442316308451475382424400763800390440240599092739199595650640706578105433059837898014205370053219209789081958265049843506198016708147712060066934085963810483076509643844325359500070375152090693083083224763475690459259780440096002939818992889384721463644378442854119019894839356303908277482546892745478738720632242054690111367445331765774099462639767459824852712480084374766411482729287826642385076019208864814207708119580487868551190546539067042086512133260961495826674769272148869885558076147374300606230334630883855031170332828278385361404537835033740185174567284368838437261734661795462370276051243296173222854854768718834023639056896959737344450445468334441600582527211459615352696196018863891578298875975218340057878297053023536179673401252025838874842939111341162776107221726531336932951220811004471621917931444801583562461315293950241648495619227983573030328137495694579552128265508498682338806888064201636998583861685298031147190875920447922884823805437185976210185111390750880522424452787734292427759184154945670914869108701646725096015605022410067352427232755739339780523107768473480485446474208174492213836432179141335724430346655630965818197558036573646126350946179002726779400136730634153290438871612579809695208879246113211786887967867304080087063698912490580735884344765894066075622314399107430286335921246053826039583360851094989402621241305674976359312359221053864680854748647663579945969370417208496972926893262416094461574460028435577480262550108202228704783194057801909396689019103634504841349024211460676675872723107470290796586275697039470321075134775840240542595279801892422067384358574871186102535797426438904511288537402555144268131982055070213848038703720240485508792274584894615605041088669143628369015099133664630077425846329885827054566635304041765748657771671812615603425735839983134713846221601537457081653868368885181709397532410787578300514637416558311946286549585998602505766786965507406808785821874650616581250346985802882694929416923454048057486593550298657476696373292690354990473631511473335442669852377805513943844081650693936274724508849970193547089442419824165122331787934182849567709509298420978769182623688342081425920165177260669267650278085440618580732782332193499418119332413727873449471694148725736286761249757839924163387463662007093814034710219599877115001580526487061645702627484724367609331273312638487457761978096529080075999513967382779921766046979309325878721692828719350689029424421617919376606419247348080690789054021050920988457107105690789909336333595050044825734444310372843434369704995543010858150438084909557259492894751460889689235092499165210004358725046210317377485753170598797255996199126704590382591295050197757847024336305345337476288282428216297363630403205910575274811084955264159590604457482015022076995678452674520778937483570457741873319622408653416557668491460192985236661350311554537134156764677159981881796654637800433679732298219381913374523542521635627888957377295045665383488198296589110045559344396339814626401774253885414648394390031452842148621059841692429733674730047380182501251091275818837015812968314926273998757890205962720295635217090002860849625187046295857573763355015974574981400778374168455534639563061231138439251153601561392167060366705085393094566805232598457984639175936901059669344756596979802591888962401744355322614988140968485150235350235655025336236901618011808142728955728609896894988199337203759813406238612439885213225598390194723177198404117720475314747658345647744222456463875471058730597811921702809659395103237423029220075429222601456275169172684806006167467467766994488876388222596739168771219753176941317114345834076054269656047277700255164967465632674349728609469925472075566577700799506112061707753537447361786949154952860244185541661865509842063002932132441396921163387791408914927319375702657457250876590546023163921800814717149499930762163740627705917633251786243681992897967719963239501754486703894186598377043692373931637339893924167242161585608054604496478575501114263779165057346272941714337265422821963745600624052186817722569986508476211211342250959580502790734507936686957227732752269780607781187331611696133775760813193910304303227809937897992279760636861347830259704981600290329560241468849445089843929151792865969304598528474213903321006587228006572613795662490416075104937658623004639116713629333469725619680907040972137205459225412511253260201647303560470417692082210931514078548577198436725684299869417448804157646538623589832875994645704334606050348575779417954680752880936674864631540406353457146031809587726963901080378362032010000487972394257165253185934341418317708398554078115754338739568812727566305585886964050267044601907244324619128035234602746783883738888485496023596277743301170489502949390914008677319885360400677804406281844557547996779836714840440123154744208988615097707310754274160205855278022532029100693142999682220014757799875292247762139163889627890004640200364713741799823362290978799267431244507931278455939980452331018605905695918717409057645898137294680664660941871867446354465400110896861566201073438243865932207614408900623293628454873116103726136980997830233396033456698954423951491246725491327117160216519215987848601709362191844537627456478053724898170750077099481583140583556578195821373561244667502889634967190804117502497443761319664772211381623004447599487315948131483019407804676505477138782094471586796757722129573374079992423593057852650230588653283626077655682753455022677972192045640661873255367066695544089108250382990945633654869940977244024152268193947271966818082885578571781366381609156829335621190511102145269324263688142703283981168816822983193270984595765374192463633655082505718666727846512625911155987177617565309106709592929604708898572878091021003157188392393803001311409227351918466552313086020646731369255797853852942659398501525472332905812602477587176733989824493476881002257979042502662818631815291025083495964721634010057820158959272173678261846343612059414913786972271734848544049740291620303015713869089916697238839853271939146510446480040399868190750887900322245877006227410699467404169959025763102207411275182442317859277725165098175115824699360826558886607292367024624854173728239180431657041252819754611419493440575271892019602146838967756513797220713447122417110636083829309507440537194842387245744265159014739055599338954626635334540891104194271927442182664383924363763656573649408767155504428170211339249137252792671559018406069830059804691417672739374535257695677146637519876217196931127564416409462270548991878366609165317490124849830664264897265471904764356594735947381929817057157578430149487659901419355018929170467271733258037097952389416388930494573973076855798274402818354607822622345871390178951632678882386165970896234316357457189326254903268519977699061851350933663686672278223446069853359958386087099931680699416008730436707554023196725789678324313322560254479445722722704916449939178016928806217957873853213426370251638935022486398051610800289516513626631566180705027051735163916517022085720882181061360670303948200179999944676101901018836110946529473471375375380641860140432003470013910608281592984561762549959456610638146836337748847315729807880526849001550976062919426904071973388911491306639795450059433031042156976592456105115473714019040091169143236746650706008839265799667151374679741825104553997167663561387284663064163749821526274150250282758657716230509972470897315295292354841045098483024513739362539685707448224997669061391772530667426579802482965904433548194791941354219261713924872557070080417982580489199375814954754642919743893474541889200699365859236136041544461370150674672150446864258120739863806924076915236476210203930380324944085174724584097170897277312673202020173805100356403281860977558468518314590358433068023436220793270838056343644543265879206727003090499468536706933712561220492704744856233090532690116797453708658450088673189050490970310769075424697760964529584496551766142927179567081926065809540195110543638090988392108617382248206739370757293197085783395081987095440200971723415370687972970320099453929712291703325400308557494356741128387076074093654901728588552461890924606241236426736186111621314302893652013118917534061919342721676619742134852584341765616411184120187461203427511335322845092950158717755086044033521575860429911102300305353265294927328684644487746176897098165494111983114482399359620362680236446959753626641810213759036853870894152540421828550710322814481221286149303678473978949562812728124470865098805505592921166303780950831576708828081832684219744893007572124933953477284327252913066067290662423218010706586356021913794122199967626741567878284924476483399563603928869607878079079625742030066629785559801719752362340948568162965566570349336799990724045638044079748465678387458789602762532743556161676488897902249649729021927066354973289461794274836843459479169980095963088165381873598762947243493589015471211354483361832343344265312279910115929691235172392332941685513828138315032845436343019046204572838308131033447377610603090145051039374174870052953214757303151029560303860825891738532740552281972264354088560046740063967362790809768255142089278890228325684637991234749709720568273637334294775732187722044853541593711563360730246202154286996726189435071075063299904100059106903549937268838361790917989424846038977831655351689943759710102763731798283070536780146127768953813812263772689664179929381674646969613285351407581669665643306027696748526848188205414053244259596586236899603382625312915939244315816401943535264251146434409152889556077866028216056490950715900940014457189386824477581945753710093542484062265644685064741198255961157986220623428318657419213634893925659849680698053191620125101995299960399965427001319492033203688854664280486532970810081862498582905306264978812918937834425670231030346380246779648410844598522640400304152907992281444354219638006652293853767142093089251673269541915934615210877003264682341077700030072755050520021577414173178921865917254487690037912632427093965875520217476530122578123452740882388504112251541775658703237122554833918356453199512155757300832513737029281654238495630869119135950094038230588825455691263186345260053217799331159267587001398243475870395750019132015679354990068452989949250547170110814119834376357255046455355942902749816138445929750213803823096094876822668018713782486364091020196656036033383221455292989307996773668562812047576538512493069420486072605009669782696490961753664472197340848250735244755958253893854927061324919692925181286615187051873920162831962459234727028770399394019891991616758790731595312299348129711114577034224718157220377588089410007468203073500122611388344238606490938875360470552840899008805769738022488451714195395639103452731201310833451615653499622994395209510506447337885631928797190162450090963265029944869930081410828961833177187678999935282151538652402989132289142204755933527829096283990389948874594738829605502349903235447117335432880230843950473394031880709125872547684480599691117905381448061543316865419768011805018215135545117097788702659429305626672744326592599179984227300647624063607430489292037260435106963822991727295391646493984080928842682172316807883176212263450096136120384619752057963427667117779462703097313248351114280451446925619341484956185177650027570528595381416719272685127101904611832573763783641098488240763028400091055412334784584623629976011411409998019584709118868617971860903948331911495626116480338921315458844359576377794198943123075969157298043628766590270727577366505220289655006340451836181485837509545211020543161154729887421211221349226153146897753087943448639972666036512541555874986691564293382057590062562479839793049934628881636543064058562163554817123519698814399104494214471482380106381256705222428491069187475038679407006748483189689329641018864141948772627032032080848730113101466542725894689331776406887132688753170566734263042808660008179612409685180763137461852109842413367791433242404229763413204493031341802272611150727609093259362122053084017076652437691278544112919045919871719316486632440081515852175267729691433013794691299818016960830449928574407695730862806323642194789361954899687717334645889002161441396646091504753446520770177530994462366819143772449713318499093393077329189994681170489059459327017794530535195430537578391696928045335836663871453458643247170812089842486570429308175667527198952769904391186541450219492711726637031400468479014085529207072073123621034444008195065800960199659037258553271450426232352506729663444290883709068962343657238749322174885632624063920023337192299362146589105018151131005560142865980633575321065709628281590342129201801452932827656501261180670712885880293939868550430662364978340127125720624115329007818271012488094784941276315359118519603028922790189616096476666613458904096591863860976465814621028272108713138617970595767253029277949949936022833523042050481984181609166061129120770618160889703979610009098264578703233744276775540962921555647534870746201783703815241966705658292499321386345763153525423997983648610514231845688047614004867644728782560428864015618605105244716367440680455541791696060996465813841756005167194767165542198224288024095014633981379900998506640643320842390021226397241861846719081792855434320900598842723079456156269793834832293081888534464534121794549388358474257202817859010301883393199986752719326567906273953253306596572871952424403851241976736027393798079669723297993844274989946401390842922928085395455894139071472746707080905119616397720870233727557532109239910774934927755752347134190379526428598009108338301485484610561181082243459795732997695477908931401864418109071538875674807073476451552406082181899866175491321180715340509658692058773748682064840512332207450894031073371751978096930153132976147731814110339043353156539219550168195787451943096854567189575787027267477557938145328046157210345913833422185296859682718888113152669158393291670304926382726321787780517710453662698777146349058679550842333680272030789320287925084687052943472811010866584392439723332324623140844425139290875602997447428287115552727763277681257357887785435088590818105095200206119446346760020313535975741144237233602704667101558470738037969353420126727540459291205359229491929465482082313227383852819085269228294152312712824754742110478081803056405951781732037300877536469251579525815472145466035984800422470261782991873974641022249318032886801761273795473153505164304804199359940359796491344361954003872526181956403699694031208258835734651677401176505579730827606880498594877613808638922223917322622436027763331017936846447129661103617605130890335417333809517108140293474816291405844179172582408216342673517757706274381869518517080143778725481165002363354988470187852397295260305055138716223943908450057681802604569249430647174432605988704186066737108361749923999771187098180883163005389622364559583784490384713306716419986047441944936817312306406598005106855970251490547246537981809700172432503045965659665940029482310632727517207421454974363033027567028061433423176042081541452824327762918005412067732128006048113120654288926434977160797807076313451118273988506777588252618830213417521190994427859186875899331102679705699511452729585497728480440760742031116239191243869960914192024337472342657707500888172339194581670664671060521503744473658588738828472462468666510395552677571801421548124574905207529492186311091862808594364265611667240997115340196630346807648278393218200975326854607537421378193544235845093348915383333610910336455109673871502396925775765276009894932356022209224883170965605732027286357682167413142388846122373798553216777354796149060094138944669893868997938763914717526432830094027573380923295753356875724906437416206004455208121190896355471219378620781551030237234925727685345915828713754074600170853313811329329307430549135779726856450622701188935065707995439119949959878934382739053802441649559940173744488371992741347762436673096329923031200652924658271124713118252812996376159380606314249598684230907174242718110406077721612117049657039733709634180546005206751069068494862267569553148287839888352285812679570656483031605619067509115222212487425718534818880828016648654549012066574751553753297054992145166204376386300192137791842069043713299001410185835786591491662683924317659230158731993807747128138522344351422944433007031404855754668750761816337391866224679984834223058170904583048422070856529419665523650204097071149161393346644256935707742167691490190279546611001589458504464500902326080506470410121937378803108890615147423656645633213007673621868895369929651124849241613476093020715863451532071139605601875027976724078070157083513694925209201001455805568278431212578587500091556820895361176946103005665824065196851929291150424781368278263409787651406660049495893678656325561256538856077067088611066804040893347531045871960458653320623159253241728892826310821880359401844708784754021660197816033030726217887483772169863993967833841776185032104811715763144132188381146447042153879362352454403027786198415217036528286530313400256918275834689672598585346308331248068322826855292887005914578247577855715466128845939673152272934505522032833152218083209522406642693623667821673049698879619858291309888744877036446925576787980711553410598643007438271926578888443827974717886413286722325228000898369767869745100766765546817914838424601402331061861035452671025144775237514551063908848711294675596155632244843559107131322559342943490657270966956281540824946837381388033235350014614420714989871270578496003892765401386514695770646634592356857214529787943658806033285125357845815872120277994817296418949519525450186145684709213433809553208097860599394470830746861298281048372443432388024084788472549063218616082093348497275096526855747364920412131090540804991955001792088467899879953971719234686781592095267476626281917589659517431175410246971359565578346877230585418359083999787296296517601727786529914587263683773702424603713602073572017946706268381667193231980658285198592579443008734313439157900436071885388087162202481076718151700853614573189459807082473230817197467407587746058827463350545952969782299176888642753512167397862532574333951636484736253262781388038718936052641628607170372634673307897473602775340232070506418957293719326019910870079283454884273178653454023733257019549484428643476250517318226608801038299609871099757368918390696713102704922040986212115007654421460636903069684573901317141278245531669683600925580525032868332537581136556584252420746030708417976958870634177905942953378228139817028565458734626075467806225703607404775158435851839679441640263194842692750350010612193050158290901217016502879083917996424439583316361260493814702924312772461109584673505512328023727918904806731668624995026583484759003359972610865670580036283804682117926077816874923759708362559370094103017375345759814077464095357193869036562572157411536013329554760560476484885421335242506867846681372474576128917804244945977538197936712217235382035337064931165455468683646233578314449280333995650089417624115705438396769351240565416578574893537227535968235798019006582584537184164076681819239635861256462665317994922174620456155621898805045675544575861008104942121017764932085817733056287360391527871482654841356553201078451251285070607204231302952897958040012763542789268631409744047091961732000414249361333158526477047957820984067820582501796764080402336057649770128827795878622952118981792428903721206058851220633590461516941697808033231887281794363648844167942456718061960971279327840548003128427306630557793790222828294183016014028679923390059431760379497159445325013096511359233596314172770279896315559618443954041411139677998151321362153662523798887724187456020193858481196356141135193212010062127883665839958774559717721143399210208569841314141214744425529416333063785494924792968050716822687088931272851890415668284479244247867349792511328734624954748453732973562660822838610124579143327241100386276864211545184510432244434477955107570433620407623731878856519266111199340395024405400983756434678068478899555760531169393367646424104254166417554147126115300341815196330280810646042322508131730060591146566615230905643126156276398638183708844873040745333439101011789343272917224504715816524024789712189461891316878583599995048913097169791184114135233969875714369673396175245132654619369396491024510269234212039828652721609468975270325862608031241988936314925338507483242201546168563430334820432308777555700466447757320270479797920089089344921852022139030041435340016148328022663340092115357809124313921965705387362199903793085744525102033348490879679967286284938665422726187898303807065551407306937546966010276918762348485803151060405629018252964767812962493012819526962186686852727282942117152427550082264935869015932213148195191332555115819420238118785072899078405214662502695057088354108188193797699739048732708668330698968879851414818707138454757425789030283033241351994075983154230159108405344123798945159410747086709863226067642686391354811688485874755423969500724021624857630088251660124541920605340009693940507421866940322803700184725249052490033854505649414237373867196718237851746538159611240880755565867618750150584338762851209820009793236621552241888563134480089488958380614445552598773312170253444787930127801742677722432886699169042297972698643745352951339055378792617202537135261147186137637841403214282992281949094403985117933344381756721529241977459798604479515476369096255415220557739966151836009534979343485286607917690354556413765381548617413045836754714810648654659834677915057101528724292976669520141939854573206779467785902088084844877440719446716791203136526265274684612102711940690048104788962089750222762331679567625074081919661644430534255441942385673192000596768795743326271790244212068156625055588259652691188970410912076229074419836770525927059423487995320935545099995776183826184393028872909033442417911687499323235223021012406981944556632127137595626295770076858604167413055492404733326173489609927008953101553015330447852872158567453813502152533785131325067056017658452605115848462695812042664512792201778428994608269356507541212370619658837259361062048630215477357587876990380334205914743727742024939222127813002237805388501399153129768120953046569981117619320087523655203624602924775588307296632090537619531466809465496355261238761407853428729503631881649864978451230765363088358166022082854024895752980072922619959171877308535077216148354219875604455332447604259302651287539368439864442769695504181547501369348052352974115687353872684410748405498933995497831835436726225943847874001556417296763275187610556407054983243451863966873111016455058517555437976632123289257382474280058118884386476335977014747728302921497383672482803596207324733433411493439051945092045034418043943982226784048114874636211232533799478566590656432978868480579400778676171637736251568630158047255262219629102796769220866370235791389675670398054104622418641224222509467647991662800387339132972667453061526137478981889485649538230296504716060146192907230013743472179745775129296568789248954562405934961061746011099829808187783321928655370514510722988811176551443299276644486246908282971685075505407674147035125837579243179750869295795906908361655836513078044670400159380938292279564759548817618521522560380756080898419909820444892521231870579823663426264867178756728550067302761607661664200868388446095264112662166503728060739434774198683488957919058890311022129074188259606856591643791409610685592555321428529092675569260516125745609435010081398639697798547258222637549182698829856295563252695544438717277788171582440870748169996751517939476737488819227588057336306228597487591391145475049925509490042045120578025729898919578079659450916669282888571992455951370527515764349981487028569743420881448911136222355772932355747180395502215450484569926167452665935297260969628346966296546252994992614313184114973884337428257794992445101733866569216031299417904356541669566773085083971599148535028347527511124371333770764356917172401865468809431184266499696551485122941941182392015870049626032693712071650399570337231459660846883220914061238446711818818707929519955322908657516534047222314098242155922962221624094129914080569813354359109870738017080254627221702195499502050122627328400607955962109697797877185915145477289114792537237000363364924746191524995006183416473057727642808317469189249932841974336863853520678138438528677224357981912168981577695415684942200796150052171652430125442777541345741114228202281981014392667493222638873787451550506844947201936886124567784689156737405251403815438039842163588200485686259985771360906696255764244301545499772561826571498696287420632704355608510140395211520660091571003309305288528747532638580298289089515952183750859495905361962424760997820281382355245110523434095789041644492016538740514755545279764832877574896980921104734483571685502301150142011462008404170561576015131644759695018597033702269532326389079047700315687444335726100182463738743651650127611172962955487065731982814757397977974824123479631412490672096946616871001048080252161030392627405626546482011098037040781205457861436000982050656499467081007120838036238266027997625490319378788163449746541018556622703886098256728979282836475195753605148204570173374997264760815313533715286262870412533068275138146067650740953780890096702015242978414161240464044864186057212792203933182489985266064893747546152944979809120736103451705260697420716170980905276711201890744862627805189100105833655356294803471029031901041827549720050549798352356772922652855630952873024045984368844423859145710673757052886982274189870953977852569458851159752134852253652872555397714407033312100637517283901486775322202265389758882010723167138857647989418351747674582870988110475048153885862257398344359282697280123630918067331338985788007707977418658694865254340581695121554680399828958237011007986917248132546621602187441441180502120683511120451606188380037878458323850592722959693841866034288831334098987354858601681432095462234727596064401158249868790682810662415952938565741855220192274124943483869415877635217979010726299883187393662857663540966941799726084917213065624198872066862995546610430350109292642689723537395804206571591526309380911890539476688047948546472079747224558259997323270989168478654237954016748085557449620931199217207093002570312212947628671340074817869325569218529105675228325518834205237559803354515475333716225926314659700905431660248559172738724830979717927092682773142515887482774880914637019173232034373871675895775975015280478608444173082794789749813610273830442164968086437996708055491611873561526738485135195682451836487840915270958708903549225723151652116067953489179419593687437470397465203884109375207581101078487943296178971078028806029767913784086803382865686934615848108992846635115327610750487724121629493139271006809236771679942126721476775785133874605488413277027053657363928465934724275553068994229857710991166074017133723784207615238250704382431447672149844056766310541986549402860534149028336110760572959151428582569125816133864984910859450281326367133440851653495861437377627408960433674475744837349451814584196990807172878185063673035977876949160232561560402836876898384169663720427691415617209982061969702383119108205610885128926823118847970895376516229779995641961379682958526874542284476548086884436839836634349961432980376389348284456254768916908135180154946157698138318295652556578667172214116684305449657933052480588804671233807965371305582683040177790588810251912872076208579124234614168957821781941230533446445885278595765362967359022082696801301194613540926871835081127482437431195920389979689900969124098769049237397525016034042279083513646786247003356823583632078813525507807691479959441451123633042594618122462406524640761784411215618863366606049461954025248531198203090013508896576727922450854351691537441501932916900605788150233850425228308073541655811118553286252510912025583829671885346512221087041063843054819793423914698264872411060031184687372239074774119417280854352852415683134943980786908053649527535113726832728831342191163204348581283595876413208503509244974864831122596617141838849490329478062900134304858709830661034466684241645999685210041700748006242317403395782240323794448712074463053332759380214369069222249653617409601424442561568838805364928059535598233169807467452795659727619503369010197751447979694788890556444434864703670471880598967835115402312296872645235812142412063086450099816582919142032297879792406973315629382197432036499789195593301608835886212838992889293188665864210061902461643423628397914965582997192899554794431165135463005932557002097973066622117533878624918424605698421242782297407631555058312579131500910358720681889876640764612095985325936335140153655841180989956991877071004876558061806229300640914095137774993330188315894856785384841010730487832723305616632091165224606117595919327876478883369098516843313037948369494881590839815138345958327823827135672188044197687386182513657935684630984944081541619967639712319357867854219498254488831197614504018301506864863635898404039012785751043502915649441995861624765234958046416348215314611474178882119769929538817598330062317885804953039006154232100724758503475578418323212370981754704923717931116212038109930929146492592895893932773667610073741345713036079631297028254896589465194546916099736831624926715994487445960843016799767539706051535929055670396538623289646170916623293388154158254280897168813922094107948074769514430206798737388362239259988529144895043343595081863397175042311204985864786291115516193467081394569819458391356034012747983941004294351672122380606585634883481153607091783918908654892899702227713215113732551299115636254397934385106874232165207744679807457061516061463920742877208458610718126431998394283688450827940055502513671877251487496101673661562196842417539591857420555552797844849394798892011961497145988251301255018412869846219122503852753711083034786640671311606915373227725791016490116527592268516466964786524982639920673873774045832347465611264186515659212704439442243380319253471469204441026015094072094586014617426132496302003242902325217805115656568879317767253032042999929534445396500678374105010132492568833321699500833532860552170930306281243047587163569260133269989807749611375956156980592466310611222021896923021706640083260686911340310371972707773218501677425021838313588464187441674962474916573284561530599287900467463063232618238484023204958192893017490828218760707310968303452814747484385058666988835001085121674695426602397411789565418306883259587956558019253786218344850594498081457498055103538428962887042987497039795576692175585351674308684433628832519793679169219430205241436761292290835740474165608220173285483504073252616067112334057542657687157969553945638806787425955948205136002518870456319045267171098530778048118632908088929130065163582126828434193404676121093204770119677545803789723475604694621869486967856366494656646966882361150108502036697662241483092577471240549881398655133420587559825232237619092366920528437477015761148974328512521822608252751613178102903775675603876586374418537740776208488467369535062608723549733801904030098414023631603271129050126110575040755864065532010609322997281196826353104008350549654169716013230677269948114302189696587409764050194508747060722283550695235940874664458494314284373616543584043199486652395740534072205896745317083461052435924207697611897118593566277350495998532232006627697447880998700458381318299909287223117870420935686724777919712944635351412018487749490395954421612009310139484165947015640706644096596242910572577963269041518266474935510616107642275796618502060143043488462521648324663457330440332820600335128804783694008886473661598211382872611718610085353669054813711716078602132013773458033929403010799627805770092777145918259558961162887752359039635995273502223440717015581897666862696612063764834040388894709352822564392207327198767691964603036536193411010209471168933038391142520713631141972387539971067894359330454964435785261560262898025641270538328494808614408330115979535206201864592763082413813621461358000458530836375820734710229756265651530197211553068847129088795827922509732019685961252620899045167596484980457639088489494827521009017219461127329934443723675229530813564941490047945757769398508999541512568369626438473148358223045083219339085936040169164291187326505019853936832608592071886806921878730923777211539444822549169729646003184982987094192444939463321257267855707850422666643749672391206900082741338344916350224739493020129164005451235043360915441541818810715579601380763263825093501238078489859980411748673670331689693602154868576478567621141898200286605637113187074649447532116763641137888049121339335589794885208260732991884920840378801382127697509200631182119731170479547488479342175089954432748663198951462362358651049881526165671363218213484716565876828499753996561682441205452556804930997895010666186041498160795116763119938149569097914219437355917310297051641696410407427809089785107744106054322837695511413325067891411852186331834183232948311612239854539694556786240619735593206487464510136592993535051259516724843165494016182470625159800179600870036243526647285958273841698382348136999576423656224160536037234017675690647116638516930126926064333892584282022382405964618842412498917592317165672547863326562657364747935375010776152114164181103843914955753156153082455214856988018521600648891648250518367326010639817056269769610671586321776693889135257845463015971492135187009052056327608183305130452269924586590331140810548165925648569840306682582619843756193922530451670891062966946653530172024531864421681594640611876680575464570667373670507095649564728172561161871904056241116739996586310109370735878035224373688932308963175754738180444373803417798857823414187307617128430493035946791294753883388847048085113394730116391020628507454930222268971076428389203782734737437841636948602188462269350013535745730675424611851511795528785544380782975415344241361758438747890678431987653379812868825999270978825063240808770886171819039614113719771484971457669091684882433764287408820696470486397589326991568592107192470680810182176412454108937105522786542401484834362561339135241364276460281315798308989793334513574296833988279351422615218901441605947542322189367186165894538069435602916309923084023873020208975491124831202790235315106406951740711588206503045106142974372741106215863580397659865637887308319506114628233790502060918622349902339925729865152087375712172250316216798510540870701753254980100626980607629658709804141265446556900232980480110355497871751802164986047086286160152834780589240495023143614622245331449829645434156405518666079170429758634114409407509634125795979670008359082536021812348632216041646392465213516029378771542146666183735512647646481240831880446736112391841776816998024013297100872275715864397071733568224837660867633853851496501509255609932276033155631152339778066513145883806143250879341398810876324661427225510257754352965814176904116756565102469967518934093686603335955218697316172909127957262395714377225076355796418995161404202784871532563353504397016750891805751716852785264359021503574302128969305434388294002271531413377975898985646507353793125901245745405629215988218065847539288933931246245874637988156235248212036939755167662348781262306749125022220029895451919515492165922924362789649202469342367640292215407363952758188915037478653230207954037896899952777250445357149049757186717535807800448103706631578599725991894502547138783217954231115163574808256768030525653084828154549980968853499124339275484110874082907738605591388234646046835604284364303149634043869733832554517773914520637911947446026971649638242857973385123394326124066424055169532868138377570835152327447395812453001018103543896788569086254200410964723821771527560844764710211790221887503900557758611141828109819511714457804989391517570308943575271250898454615954754192049466234733294083278569096849946066146004894366471463326747148098680534175167863622747776060547431381787217229235071532322659377000446180479108211640743512039073460262771100986032802749373271192579089899739947999627893609759787857208110237226911064658229263338221992867303992030193989417738404721062446916144435450520855168520541557441572165543943265193312564342320801174963882592617918062157422438492187065578484839333476542054154898608643132109580386291527704067376194634180648596437387775423951553731185449092042178359315041273117371163330522015694268186794058003087424923816023202832393232225742055283383790581872325200270079434662020156041195193685579769440697443124675301225592248841704928926201407354257028990824929576956741465865802029845091643039010817945056899720524221676330508394786426949054578666738713800069977968951750541386653873073932736643128356786286612800831942128240538214063523894550995260553362541076588332680931399368321717444223024290341760617487682220685930502033716726651127510994924681484104505966919746058344282894087627539250911753912620678743856984844229964807521056841762673832097818100380848644467867958458754182110346052098045681428965880481182290624171845869215440441388990416861469489951579730019693787350320959936010794936683538868937635897364087976778599380064197420087228557740078443640490811505194586146189327893448381251587675151312539529163753303944809173432752383972740792973410236203399524143853114807196508391169309543326399854801152208438078996973250075197448795110071210634102653547716329394401612553322830491293472864242323315871768574348296716085580330488013831066194336350017446065856883000566401321264427013277825362067352138832738735360980026269534713364990790869130903244677496742925722355051267275342337295088103122901844118116698346704330119343120540528892813611017337927588122651213919088309519150116218465176817165320023297649523957447571885788595575876594271663389788083387211482543246350740897638411163780408726713752066455434187789269805148641740209228236501215813148711843996560576357600497457197997051067470163346948993804671022099799010749718445381214399175279213261993610150398983129131884658958875882120949141655029764522693975100396471043370272813470938664303175302182079857737851235618354512481229008051559992928999415279027502708589673715353199092498821249773614063596367149833379838830443492520778708642420183617609764838259783049465911024321118987274705036120831723278359450697699967093972592433181263584544968916999672111402079269774114316548377176862091483381151042285478041348195399466723475871113823543571837664970134295781033618949723464464428614508105092739673063506876190917744361908841349307824692163798250788967675448849388958585684234791147910788095830466822829904078975638761495253428605968003893480985328908566052609659211545247235848887794672644479134531059262680379364792373317535073767848802498910487408017997263891332695879211750610669482983869736892271954802189322247671481561282081471831857314022931419521221148078555718127166034227285014403298021710578946559252696913012051318088296684170229405090259702111161582725123771637674344876321228574577612261945543357250375940856975909676850955960397076680410903679253660948137659644138873886528451256702488000756807008936190655883055798917629362593893366998426040149777210283198471731692983536323264020693067258455901425694378387548048195226928481639110869728499645529577507531683185139990497154830107403000149844554014963240467474141335776911530776744632166001459140044198154665422339137686832671744795021633925517689921217211284749372890962708030889564537193628241668134930287873831681971956396909050708781840304061883968495558112142336226189175866476164087611267786587399154536195640533180213740536711299082952402665784785064004630487753016029655700935867766584319688917644504585963792210571712536513733760556043585152321093177288947721892688801987932627356805731513094809072964416844160531764356678036306140938610733081550351849096639418713230569490834041140874440015768639391456608933313308791054156632963683826566930289337299495614118629289967544222417912405077041217411279234876139721036884112350476038068290392017856556163844293484743936448916599671481248877130116220105720909264642631986397490896701560236419012293162526335253562212422137503908845831908369316795164163288372135831273914211285053729292757030871144977893712371935849596404264417594230440682419293116907745356109551881381955897140919015447967788518562218068944480237513024999836876460483348760557341981113635502715866945132973186780035869582274171402178428899963776323342897886938236692883857046135514683674004145557860168778226263890573916271742743781654776239229986726193222111992332558922487819158980947521425616871120898913315988415450719189739280988781850355430647952456031728809386928584135440674498574098377537766922654304674775907783676501374075438525812661228366298624879666500229426981280563630694414514939301614009868907827607518703845005916306133152859483569837803391033075063974083390741898313004870596138895991041378118686842890443064473696435078587108965081567926698039421385788423983878338488466668464401331871806828185066581636534051857803110613695387432584427504735049255609044055999233675837736096708196962960958827339691720300408855164399491511726269426185172140581442646132787383327865438301907162851214277846876872139890280563265737104311160537678098157468393766830537508718093169063751787569538242017140136327912467498844695456362637141756830193451921098064107294477090518892676145844617416063491951077041961812250203379347558549955868806932260122747659924951914622029643286718197645304143306749886889605002773042611319323307733821978512405239221026358566433546704095120941408381143499080455720996536838263529123086188817002353016170716276000440970637383067874573307097403187056674130246506057809898376886553561032996697692151168688486438006065645374172762257044347557233699916278789458235538192492283800718119597641196894302535793077474730456919036205200434104362903821480747238585250059033019478289323254496500719034753963217599567697239276040935415376166788512894767681412409720471900353463577046144887690731615018415262019063919125469909263923892047044534235813112742858515594362680913136828471098496263325927316822133335929984314114956380530605259402862199668148904339334382068711835675325698895633175803977502619818155740469293291043860066973067385017107570303129181438142230486091856958518592003954937964441352893793616995082435350119317279524007215053301815786172386931640020129225443752871335606271790614632783143308688037107660551822221740045047641027548457356767839819592835502543444738941420234137876685372852255270470890139106655531716902995596582057155020587780570935881570945447093498959542005337427810639505374371829271153112974071670231792731774697024508341176592035247930297210423357554650135443818109837839864467958809057898273554379872800837654752716916226993473017047058412266266079449957568775772508898224373176577800823949569353077289837907807562422404208663584295172712422866085397167454167052263193779622014252223394312931412053293876884766608869839584232558900481972593115202890689495327142681733464784926384022626789418372982092220283937204024302774328703459556589023624332462778429769158902034326095994029239879582571845194428358403144840793919577825323420389559417663216483650552256549441631990030581966090832904356516791573810862885703983208208066120429738624688250311620006298003292560293190322898968190570869933838872757006298251128021962742686426562807940256832993333544769193737246638207184681038824513304458534363766352512584990664356345087761292986744120144122281233998802810603203148341915768358650911047208616420497847952523659565666323702104890214804428198756786461446935743547083620324973249968963562108492336445915917780303331041438898025874906101954520328033440850770159750710703544281171815328512924293899930421591540647207847523363225408207387873613989702845011337489889848980830235793570599281437265291511704943357961427704438364262213006603405606590330059102522789613557868394480373342325571552771451865198052702695322768799475850932910164270038974370533717437487522873094320338593079542451167084763053148163235817694451555769216924300378523998343676362108214171601713327982228718852513936671927398711315583901537595395896300386757026741390831225783496944047648560668265702595896741613333491708568334193531410807412256084759626403113907225080791515038768842240508841005353663094652305530680730048353128626214331006809504170059026018776583326907258995379892818125522856792317124026481687561511126757049555854848327320237068141412334405506654894715476469419745432694113434192328590961605289835997519149792350017372796819330841393630020638518264645988288201191589371941434619382179852613099375878354120530848839851420017843068196721073766331172296667886564083041280329129127294564050218440847826882115199991947525032006326746117942037799434213814467214814902888130544354652202735449920484278896269270777188535722230909506736182471045187094190633019314883543414731610952228663315037982363717024883189477581646684589855613000540989004952513406771095863105421470514234689977115387313030129587087939551760261822047179672776227041356068150575456588358921899413159116385434681738659792722413724247529820710054167934326304305328136207247823314761155985409106237410044216637492463785215321907133284502519650488465375969466579872837361027714161964889317354912830078514591410409325125390239710676893657126425319297604095958947372186313334481663588803851348281988502073953017145325320882805155704035501444880319097195678124489410239134029673142075747765281643135727820252119963757322609360152203684343670820846452496309000804519504608259274917239513302108686800068780596317124401015473408063726661549031627541726188110960699339865606755493313229695934584219977772260804292794833031119616126073996684649516907529802562164951996896126064313376929435770514287952686312017321444864394698458707292747397269167111289287774131617113620940945352953096351934473294287054002272580465932730286492751159111194562845655755055763647701757352351840202456398306334083099070801154520884257925408978193747153701635495249499870075279323053588207297326950407071238645909894966509166107399149540521313446475859225318536619641664057626127934529534089160420905367804502060262019951227666793895211673264217014801802300758760645180127164083375990512582163333279807734666687105400529555696429246464958712816845190220435304341343547063222614210983008892092055743040866756144103501032756642676368161503477876642010263379037457053784370078792020568777063346959472576871014096443767926544305931441696963707338946600587487616231710630185464856654035067557887729739146279383407098184645747944243868423449464542795541471791017007386062330824238358228475003256326380133408422068247316934243217378496545566132986689426889894182356850590126937260563002066818095600398597827878216074563406273777847753950143495963058400865278891012788193374128110343665757932792027885844643286571788196053772492493629892770248216592266069229323745160939699588476048647466989770202653192566092371974600115091768562225432802812791208598707642237083436859009311991422883741778412510063209628771731115623287977305864843780806330871815065235326319333623806484101763940531819155785328518334186718922817264503374338781130814026980604032421463753677838525587225474349923966972387645843910902014260714292884322181556384215841199258455880406102026794540572872723714546912022325135185587607520762915157335931406377368247237950396737953163842760736744053923916168162967018574320276139207172216493262869451102638462343513113828825429090138750333692013665452259621939546105972276391955857448294547121725405869492645471081867214480311667838342718652666518073348532176146857715720183523489234528426145851082191484629480009508133340591037248431045895905395949208840050070519193587148156225711303450323874728564780688726479703951215421768201906680011378509859090953992220881149088155544371709421674696852136167116910789852030329100952052718565952016852462521714405423428646170731639773348124130155425584751914534363969050437065596380291340269373893491466163373679651104221861566177395881478740130801697434495066581034969308736813804751083003831782293525715998597497843697587006037934159297501719702997394541773840655148295283788196586884854751632059195556440495959541359854243152701925448391422454820925817599711186252981106642782005027635825114740944591468750448983861646136930685500968167123508185210373927936821711149114846201567845033405073060293714961742837365157013981320877535492983373153314705950226617135250088314516925264670510321820644973426490578641504365366227233661706557072740804691360364435447426953394015891584070516600261893474180954423012944992521737200822230423041797900624398687521823320678369038457306927557526873826649919936883737359319491361753669310158740313158053938151988163558680235939144438466053468226069064078449887663974052913752167201284517486318936580889801049283423224506272424963828862951702041044065541495658258168302396843636677311999488685628338233454571909439590740494875635203697841928772718110234155121372703626815303697848538618586069109919299372466920280525190559857034288956243915355884426506728182551672094580514378746359452617281169062224197957638865316525288853365743357764376464216375543903720514347253517200746181522034722087532634561504071326785549811781910326693952565417504120776136415629509707801102961177313138802749072951069503644162745417200952913019597157044975337421575008311925422260583625413380471583031963413389603132696592112254823338972313649611998963182847855616569999233731619479998118648146622879178832863191635820655988333373949251957860718012337456409858341596736535123887346121396394983545516228889795558574090059480714735447352456948300955324470290930627884301619812848192545336543032439682447840524596736729565911902196052461619358149179289115668932580780590017233002955159385285413728093894434410109093171651235062965316812625322595630251227035494066104641386548700850744460304324062601967147216041937959212793145264398954903547036806779545028916621967772931625423177947606382470138415165918482507464455407952345645084347900487476017662168549412835599326232961512074536967176185538730776880938424462159216412374602623849272096366403632752560680249679108772179973601289662913075200215609907442553123919787674833396909415361303095225838249327339259299311457221880834627258709854014672935653395869898426223812208922800111848720338086031291785812486688827110475738600050042941971359001113424860298812460406200760066799060788542579888297692480224711681172681093687170127460136312026737688248270242445793670447570917182615978616767876198219414926872070169983101948657146179263738107970365575450817595803027117457924370075310910253643041013034444945399056602602121470870393822591911510157653125210455102056131173436141899540305791658879400236199005442307450844864354362617369717721851331466230232791697487290023622040053671934552749365763895806284832705728778376695477662610533550140980043810030269598352664431787102413093851955601004083067733411669770471472280175350468000465272004383541501487775610570213811095364626081030329252123684460809496279498136072895268044477221819344172174685904566032156548751445013493780429028776349307953211503243625828166570710163094210539535067696305696743142979002872419950022570084167053417476049387566849086332653091747035164303310271501422003229592101312739249483467084638294259038967089282748238643181375355382424673578713425349356879965789983870159205630509358408619848209826505741528657199023311347148514967652674068944759657594497253163016742311712393219119244141031426886501889903841106166371460481205449212484444009264770902953763667248816836311837373534077092189618899971272080962547615227332955271305580591832577423061609837560895443162439117131222151942398893961618153852007642841028655748349930309521622352413628119143809120552667917002229413549626881419892352154521488433225769769380646315434534598820820820566489900845982693151314653381320360133166808285994325094879350863832271709649984426383659313887523673823085256717664851427315831331010913433202956805166963701249453527151848480777977872742639165639457902824098390595138881664902278411815979336360558455310029386784107998731430569063008096822837702816250549391291404975006754135562501378661733378480247276942464260367931393218113985157788239324233403577040912812874157115798032267147519913591366756052722466447171119191722588100989413468837580817439036591919493705809008092463543091589178575606608623365119507343319311434610632609418020094663880456362245579779593658231336982703939527861761516909060910206400177761719983852006397168147335924032086892290393823642114168788699556362201646996016742039969916209905757484225500401114957836893962323588539554842780032010922374922169043915310425360319954380351873889403457061145037382127821088597244359222370118480070800870315609721234139481259712952298563770492481006218009873891491017364900448304956437247229396014181164981597178359893564733045896241462435887545507895677370218733934258248944245224038306655072807325312593258091145211838493340324022659359169399010739280396355587841456832789497800024787516852850344182994239508183820208008639703578912747727675442402417622384946015617873378200208384335659206302215194176995044814833396591780497566694744113980791566185431357525835428817008683594506749658754847627161490798162905930227989984568335641036039320553910029458115578492124950196912312518743109442473567562218459609637696267623754189820195601796147387455415678263224980832871521247487534554390005277196253475690473079956730655728207911419758345747093456693329642921832400956160220569564120093678887214227750654523060357518506642570469094478791844044192256843347641636718910976167119617324336874329400814474990123118225370226516934589354101289476604606131503337436376613843966846185539308969785259283761309860687717607365959562897119263103991746430004992636100620374049266465340043059402102060644357952409347092856100014834778908825235385210086103271533749265550693310708829095167679063324840951576562645413115080914219897336360777968450532388195697291911799617802044865870353090036853582085805460230624504443431196287801509231627009811786093566677217030032652825089828443127338854741066425846382589132772498908170714323776553275151715739398225306916684052915383674857131652008818251967685992868512749873614593597108696364563561882990163576324526931153467533612415165846914646487511984038542500891904088043457442103197095002821343521665420782798638343059736504657742179796655787241559751454671657425155002335336691612725781263584508830838055318935774167260697056252247820890326322868047974177979054361988924725478827387890581538544609036082528188849547445788469104491080299740721858947501964391085127986366575263257043219023291196694360928939762170652998106413848000374339762064816121181091801668192825716332689763708823606141095954658373129395583450701410787257829532956869217352227632316759886434512409819880498669328129277476465584908443586710394235294270879781454461769922339754943707464350361404230537988138542430318674446102799643595805365227728901875842067785158903676947773228335357687406459348458575012079025165772867346963478434249641806817141989400450446672193499921975311136739758282900301291073559597148633255036013564923011915751711060692619236087208514466639448177252248853008440985780345494979155710493129226724996955415008166613358252118173148361166145826669125771008303363568032458842276112938165219765169249444566754557114533326892001724710671397429133410125985745792204540013354844182395796409822012440924287226078045797758667098139426006812696633593028880088114059837597348769293947462958721422212270790960126244543274518274882039571199333254857471510778626940294626822121544140296133975249934591730196170550944114737156997788680044435285006750338925437449503169310372466448171480300002555692973890491007374192105617188367560915079072888637522168510849398226535633474237209173397547969664699110818004681598357022437615435972221564202553439963598612425581088582516281865287955221975502749635477214675834870706831141554910473840812651733653525696327698753735451744813519590755173342702471350896802872625813616911617849362495820962181444276885863849352982291799295243789862288366307753572730997382838836470945567037015079400919570084355893159659757599505523203483356473853622952395120159182163027086659682582191400528587919349340533029557123520499266504450196127113173808268153978186651453254643488542562364094810984765325781182842874169981917685489249318646937716233661387400240239178393084228831184903135273119762664858516278625662642827635873252389266229766326354108544864209683643665791423398519504325931654527953469744391955698359820482476478345526103425459266686966322060207583829431426025161820722585615611319157761250584317789341689283760570969823997415260075154413100490703002385925919897889653788943661952810933679314232197462014481680817891915316694098091682342547785917638230709703114277154041243740673071316298926696314267745636857179407754840611215969963210120316297272001853081304365764761630617561037644845501344428939415745509015139806202355078954946194642013640809970966281149091108466341568240014233161209818422470896049257990536385129933757588337635487602100723932624173511315321731886244242533084594303416613676516955517732685206727639487929259880897796647587203047752507745740573420120996255969950199414109639555753164850827089740657277910481285799166796311362210537466536591130559908193222598174291569344842476735186760367768431920235156638595407563192752961237827296664095079478019598396777923989194464191144812794051776937611357108804978572173813997706380925829045771866432500279291180780022716871500602414717881868566290534958567332811102325981062445004210866827936933151949588884505079764153324122824403038521404781019499815116563569320928914907819264420951914035508148540398639805301474372278401657483471046938052284809264718065695282015434255474260798068363056738142439304913701185004754703049612566544849097810092894749948930557162116685408270353625507591227317781909654478696394801210370669755546137456223124970761618915102129927211847162146077042282162417964715770898941977894586872383371640088631668684840971750660494943054598104655323126219713366469887177173297326417183434014394216882898765319700030486847959764874806583392752547457852338311707667400651800587629009790489038233870409136133218410392224330098280023588614414751943082786917855981624762720359796275439777625767914438736024606033845320685194049733789457481859324938491535740763877834674281874364399825341318545567101204057530551926104642722341703139646328456018285775650336919487880885280512803501690459789308182612659158591646499044025300079118153302140566798266315186156269336626207290598645569813195892008480216732231672270134508884475099407713211250121548913596078543770159721303079879347494770000522197419083654070261856721807947618670747264898187163263607745450039253826034052213594935631275488724116385415767099685334708256392641753358538596717468613879995163622351186969242148729395309525644442839999918459781002414140091318222670358850954413460752936147513629245520301682357842374897688890540762417237581062940476840572127252035611817136278004365935966992834211260271123901906992280366113910259679998202448961626913466341180356363621393141735988168554689282124030243630030978833840236044665336054066139747390986435124474762436741364656275850999259764613147778404985867890955943182761369413437543889620448647281522299467934776487827298468572523100880148814628701896995047074428138980710176026607465485155231814604511127848447378299842496456855585606818639033384033109699606770533086379831961612348125894893326927903748521703452164621548260379900636861794875286444161270702419934640849233439071939259993057246577761405714028434041803830897344015002533515479091969059861306933177775174194319026664682181513436707875544348459749085370154624128627489180869662256133069490626865737517582538436034469027306294240817541918457291824661779074381076192288188341466447917614245385638945409181875704531921785429572646922229637899694153500467529594083246720509998759332120092981942716526203990265942820940418058670464587488660481795391759527829649729182594418593337306436639532131180296418500940238830340563446842196654698590823617532498336174700644416436325525700645978692586477825737600880002171302457419851740263873157673008481660442910895093106807280262026687963177265249381293556764376311496800735467932461103403941818370359960027004784889197463828178782436876633843907992812029950559743137720416532494303639872562431244029680825340531748112979921064827635930643662571198269853510546876345235996035580302375625037555253742667662776105126676464257658610449399278160674344018536421173951927519159703617864186881066255394205240524448467292215960516730226436809131513512081042296079026006007580808118264343443557077859857819194341431381401483820120842558431360372075374853607531715594082737860044926146862879739906064455001038669981706527580197599378851906626871302895155403662081767992543508447049527341682726475971225884133579409826007285942178071744639504955065619986993042083815006827903308764475292551864745299823563440466476950763939175323930075178951927498368876559545651254309350541322833909164789982898022898393870351159166660239285963748013079282970580080594229090623212030986224384369602407697843629296051110617005411045482704930421793062534524966533825576089017870104428806152244445382789279541514908007939217598953022175261839491088607851574051258520418783818464893419619080034508538559598318908643793537961727681508636626905200561175938545520375133555664625793244408945571114928351876900982283500600234312345344054372540098032608546930709913118262201185834247541394429350972755289286629322141134328542400060087049093463800988976589559243369869346247752847904325434104626941479705137377359224257421364730416520981056140310001118284067424767763196524506447884776231332421262230035811870421862257443884821577790202454181106058127219750322358674119134448905892736431158677684149951029741383645851669789879710623648093285682610751737352505873919447293701411884960931373674165607560696656648537003315070298138822628583983949421946582173238962213742956935471493875591965717993901000505886948910342432453567486725430550889058656248020266257144827272728500183830285134194614779632729666473329041139105098436207089860087281462375554635856630727740840763107456239882579486405329718774378337386843244196563935651883459197045421983322463129603825360074884823957827494284367711239005981251138146263284254222139555608186636953722343648193602027468228793413693018173446141536796595335512886143114800337978224204557349351627687894048759560425846315613103008279694869588115476164091136827198995968047385571083512407486956383141496987254687645425631779839717456499543957741819628763145955970913813090824377903556222877832232301091117883309969773724966425600884384685810386054237921359191817343861225984563856138639468310859129911483114523937977542825381530328672375717457088313731264543579097330950086156410698254235547264859919961594818996310490275626453383105933984365464095253200986096623653425080013019795612424699903426600352927029918267939156067555175097520708488029346603264579117718427011297063572190288806973923458141738514368153823688528809800338545524541283817070741616514804764347529958158768982504941774627329291121304814038691218053581421064665336634334739708704916217808743738196585603098475803851044840194480254411464999541143446766684707377326457625976207864196167176761954299694002487529847457705267772013731194409356510485762096507433157816422196003215470608163264320739416881439620477270458688449300819487175331322840281405083683492433069371300221093201597428061160687822066805573225000399556698334306769952937236838211176044187697394620514025712017187514257422765663602172775807388946968611212659880865570439750909560335206236766498159805679376060826381635610075629657470291748282360632602845116930773155973803681881119313830199190790234376508447821236688910264333701879628386487155769562830134219713659981170698770203014175007970644035471227135551883082016610281857143630836778816316337606635420906422432071244645101587168445206023387991412429705880376143213370842912423414523806612953563700339993397010192938811607892483650382414209912363367799399367771347685554291518385516005437649263994026724249574036305281414221960874679794580680124689757736332136174269963777659619616000511077280854132811809144165584898477245197836301737309364737347475459900683495788649383887127793264205888685050936316598934077738419312409130231118073416846642155015523701306420781852378522218375109799837544394210042488350699247669168658143449256422735421933993704106754658143481485127400606961272666247611807527921476552899166532622586585395971462031180441458998932400071836460092530157525747982036207863308469886291235471099911961216787554639114630956354102529310418614033238497460705020551252590865944507665216783953658350425540589001808589714240757063450258133591440311110159134305139955509856192298621981553823698106636050882552690441754160505701617703075936607343854919820283210029302067977004979124121050257540649439027207583816590479834183777767254231738680099428370254063711476287999152960493166126129930301771643614605795783926131774866354790253348521087320731776454455582762408976497743453754227678055414990744279875934605113728251040566385191954019835834763491896415048942930936423716173882630725926415389500903641260779903321392695547368244030126921117312425019728870234319289535788313930504661961327017473226741624789960725220615656999604661915382870667567409652304997000231315428527736807252738215337410514124121325282105449992963554697595498496061205450408629445518763040944654902609223735133865740342215103152631755249275192186797644372249589107444315256637592794687562268521508212913940769502596397004374610269550181936874175470312821491403293820834492864921146880613802968139455277237343760112444886807684891837308217994665858547668879681310409307836937014104029700583589906171472378261327941828741390171223501238254705902005132253410588476857262550541679736246130381896427337359802751682750154190836465825886734200999255995934884041135625248579333216553489345358926822408358479005916738932506809141632555092177547620259498273786575460890030475231168774864813282667041022165370298127443946034635177383904174524076138969628527316630467785547969174634988609826409909405734598403020078060735543187445476416425787493917087912898517632365424228344013821884656932317016139806190179157394270405753238010388473722835538185159621097599236657480723314042900866343622912048806886805681274028923732815171361362140099331181950414136466367935456835302068056936309340410374026647553794704146970063793092090731474728044879479730787075090564828387912982004299314688360805279576181405141243020508563288096620261339684090926584268876078133298803906185120962600325165955268606173746388198602574515780674602108892207930861633876946017985784209950954135305354893749511975415462899347859584497628421689401091125591690170760980038582216628518444552849404729138457756766909939863070699335710724556066811653970853508696969075610909786765259480067600377670162822238927296477888064357731492902792395650573002190769070582937570430375797454266168099432123688567250647164835289718870670326320992045606653212057546581463355950094420877565785771748392726811089096586348745921862324127634632589799654162465461537737196403800103220252219986693824060334312360726892216080479997932479358585536628665277821194642445603217179084556574091420426513918254582640512343522435234623068277529757712355847625399792321616736586182094367977607951276396939693205246243308279832177581002897409106262814077953661045793552434394928965838198865973770355169183039091130383349893924421296358332692017606875374219077697293530309830548579507221633303675194040375988147864733857170439558808232661490806053933483037246511157425504556212150707545509600505888027640736432796276826150853055742415419350463389604909907656572166871717495672946542839321048493582006944620791762745935665445499078179669147711201563251089629722362085197919656230293195127520768736842654889148405487269089219996477236633530827288751171046824123057545439776668167029488801095078422635710086463345471940229718788489316405297675209055429677588684162266149074440210286131292530045674599826621586418328641375351555078094106946700417070934163617445891500380149263695809513055179864130344702419019219514802974729649731575508331520122334979691671280003701410548007555464347704720248680118536357777330314670130570453723058331252994826534190623871563631227902060616059623587636946860277295858356996175179135825690245547895111930348684160059460734979408737541730936828843705770171184655974371435084428512078947088564768822215352830560474422220701432423295392833345060420386709384220533693227236150578320938773709420141171509510829848868576990597282395694626145496532085318302821440084612865539331747015523744943029631152106597055372756530764110498083509859095213746365093803085568031230224200637042749309158794652393579361717190775598523556932228907043723844253043591992739841351054935284198777282598084894082439095895284197563845913366412902460915831488385666188893945614211826079552866017020659341002799197533498758001935093380996275449431285443277834484967804380725639816223568837395309309754439132369272913485603994583916267730395478968375097904928834248165640648895329788104106241726411923131222224381621513021155179451465795214008195152876661339241687099283231489498661693641850536922843655358430473519124081611066978284045813242757549577236966319700375220035523346657280466289879622095037248231250642293766000548416638051837652592698345861479730736372543223902206248851691166414654258350847979570849326509391118052295428058020050435750674103922891171305925460869951950279624142824699142406099118478441491522577510985488884044748398282195855548608105785381055580495023753971279035578192540076967561456051131738259234758433086365277107300749849018118057493066530071620631496504408714526185323363138065910636791938891928040673334737253768245259500628851622437503642018710772279116294309657504491371556672768713237235326267099991582405848148684596023923234016765919284718704158443226206072204357949168145672531775856368419906758427186977698992418864684380136791415533975873712268157080450773975164484666168348932908273271190454455306224028087413124676722110305156768987970928167705765791237395647616740628943615749594808991291070528021878023689182503433372615335012445729374557988461173878411332588622667500787071241004768827251305265795375513622373380249116799324223491306635635765241308971777897633959596643338626056050153797209445381142277128190835283896733144678047041309988533256771699447230047299802235171761795606263024481074194093749044186109961417110601574834823786665814086218923687163862525672248242770163386992443963402723017506292934684723870853850680468460124880878033070719698127194473046743464887373816541165382208054536479935438675301547971439370065037226281243776973304073305528668594187715000136515760035127253048743267621858437208210419252808745551243575342314708789620694106427281671481851330434093055638664067698501973590209868035797539189041368954895922499743240853167213343063204457625778441513539566688171731590506024535196155450685449906330654328086278713397139333023234159283312148572298812033351527294526177067951224062152082422202486441646930752321030887878443303101508625862341094784057449198876301278502923199761246387061865240618409907312225383775793925566740212138066755657068728920674264857044686143349340066432121213175806701866345814892755374601320041372669442747627461512837976567263524909747326301358626188909069878868247576981702795261539879956119348117725405595116161697642725725439841119482542081078289693348993887610083666723504368809778607222202813702609861157781965721689801935559673805708104310885616250412110886253861654639559251558462527094507083060557370326516401326762675964164200502196086261152501785848710362009540133530317999541452231036997838977233662677848347939778536815145704191661521730345487136188762168648506073296811443107064476052958660650354295094439940964399821656138202333751300725685488393049412710007523362563787318195382127369237790466935560304755452494317238986640886690215771203625848272987127486722864964320079138034508900228473077423534316079136357699046503541327319398682783053644317887338376216496951079860763744542808617892608183229596442103031925704855334391662480938295983195848127704286889637217784426297377877261885707779629343701238550498790851171594534722214360291390309769297263556723309810891677416165788016067551583718126224737120773914082363462943478998482236455195419624352932020003341059111325499664312092822130534946875934943936262526115647172856150172000102815335785793318660423413190597439741573177230142744714090988409775545036835774809314812851599702239059299532567688918823595807443266033785785633560590142396677089822443152462557795753439044606453858310108150687102208856130213915337174507114058552806711352240085484715815392662722699031402350687344592541343359771466265413891971190704114061113318635623714724320442233194220086554196101684514603317898419104626186889722974590065540112562840265882205257728154044195044979922158122292753914310507448345935048587261362013637306952693836041737736418972002598316782968125190321030070375088270663111371973760300051424305728693416613428187642786185880142444300135667117825087408095046419116949068620497780417334607677099115478523986430941627063626202191037691781581067848242429661625821940133027205741874341183230151743145730077317340660417684127085910579238355353011405691100117585989067752624259643109379021450759968519963320402702955787560877454499090990968241290495800408269001390575474404784483200017704001079032491293579423995529531437576668163337340053864483573910130783805036266834028064235941070621247639711350854301178356467994922314438819184302335884081784935458142387242630706569624334151735166912473603360828715410890137238326614882877313744265609584919602894305087482801048925134733298937455442406788518259604606336167009636646574166853385896188045353128033703657970349191466482983968978611031158070747016269895928604482949681774140549603876742541380599082327756650455559568962389922144609872005989229027205697997583906417157216444075192966182855736217037062378139444474898890014975719154209538694213022206823701803379612154044554565378114882746218421424393674540693324972156074077747010265204231345579671622923015720184231648765097318950592438469378253904213613874932799712312657410657375967823488216345545330585858145490860957278746538916914670273213074189524060131213500963473035082981622370704885973534815557577564316581354138402000829912401089016883934635799571971868165713998568953455535892792627612062326497184262029373547060895543617252686727381523980104702543945786070332622279584376953211463830964695981042674596755923623860448233550680218713732746576803354241473512893630880567893640979227403829508067937611983298113360696054710584941250250069052382001529800811973330111752943875619656025715381876796883776329294334446620471014677094029661247108787935671242173655588010028599364613937692016313632407686703739335154463786814475895641041842690590018332483890250860094599040168928031852864871600013430113379816269759433460398112673098447093738320453991355383311857272584718448101017574003988076702835887709067113424504658656141956026684729063372511044223000011724250288295539670839182478764883273254284396533403562269578140206422242017069334003380503357202475643777627144184100396379765464379309564246987716546154767441636296904787808154871716604135013412892770365882892652424089832870464249246922219566942543575895976015861992106823403220117654270049832263177146708859572968486658394205821417064857746350055120251428016426498060061604318510464691802771817539206910664617891081272154277381520750776780871224595403171613145402202200042178195792358691741038354505337480131768229126546006851031953148968284089185529519060210118345075820347412401861312361676530011422652349305722539605240481236254691380413903956003334869149847461548781947413396995807301351366567395314190904341543950559614963312194571879528985384195737296783592239380744629430489686204456486983120415351384912068760514855916608602425742822992801525436648082106326854078732338853388674361545502292667010369180085593759045810358405475650259608357190691232858929065468923536040550824494958806955322882406829185030607052576058478804309836308589304475129555971300092908495577676499480591208105422096510982058790009161847793494469478381547669201582793949434920938382152949716851457747422434102516067235194760875847712222230874067962084897488015204351914670324539148413907398988658198015373453891881793512054787246490350869812300476944408402515210488392550999393548823297945011483128623648448457328037853863384136849715712620670356342528643600569729188703434609031187842185072994103827334515523486640768293844926442701640460800308933335687157803897966117038937479436961228833387546978371842119140343082825089980347194690425392769970387421902802725229767968878197301469418694564027891740019621959503512731992778900235615436732456059867979738913434456907130281885882690270537747504675201259557944980179814594945290125979263956960942993291265290068247111387391733197141666330369390958431620849976234341536842130126553454854104479790131552892062816965247684543195192580917255422600475865206000030915874507802043997705703324203794286878052396913677543222230766881531226393072135283522287113462956357407699760660644116038879507537886170716418143365810496609821371762025386895993553646223290813012770571749455717489135354572238523103593132481655941978654273880911800080184535635852472426185339543222951218562850339380929891665253986722846472468026619195328321372072842607873332735764183517841072873336355781759881207055882022752157585013181043773586408802915131525220018326525146199476447267201711517405961230944973461101471126601325070873453308293513786698191755827589511364270087703184470191303936240770441881563845258390352013276280510117999192407647142610014569586435677847978476231554767727390052907650304365987025694477697618172175495878230602844198174699289832807801394460235502372331590802931091274224527435433452374506509173558696369749129084148448624367171353860012817751955580588137580730996350561636335118166623047228721111682045529027919674352251488816005183099111816447099114566944675362321438138420362388359430971809202318298450665442367736747928095905716688019938970907692953663686324054009976708898531473956344919670311179193849985763000992950823200821972903174072934829934818997992120255129655530471967255253106442445338401825887632456270274640474979722679476829544555447415701131540410046762259159702006248401692996641403882098033912693839097308827697927625578327398352449865670448389166100375579050495552386482792910042283742031032737306222116772599414395231904925630452143893100566009405990435031386799575292024996248931474043389437463506488280335062272161061161721262710304880336241817847400538087344867035128040946926936075247390932132113449566032254573401927989206944162054651830170386011539761150344759782001312854238236257108660494449840902373560951907744511576017484721141317733381577149961615497547119791587899137261389734492914867234335351726007872094083491334381529068896457348926609757916767883952736775579045599698963598507164172312083939735263142907343361075427959013776733564688346953500354568265406210523089460404250309039016938293177143836210413662804713108757319641203533935194145253549338582805631021789509849513693601348531395714644281426916094876340239012604990313003837907876877906172333469703628093966233326902086012307167389062198964390950579091116216824933481462071340943410589042539145933268048644660140936343126323832303839553382316416157123552775664971420022855334828490083246726984942105971177051962703556428558629131025161654235817247431429712008337948386685849231239915964791602913633409294565781645186578096439990462910295825920846064666981444094625894740639588749090375420541640843536250606775447803158588005804908826242669971094580655953724874275761762728665947215265306739282595305821794119171791160678621216628855648335740508922268803736463985401862646065127586632005533718826684109674052229206982788793049438411643787976739445744171745203776634507214491412594684293130590038438682346343481748349315940877361664572626438524520201402075845193454804305875313114129076532395510011203716489499093785962360835336576936346198293125656137714978756590960696493148357423285697473481444348251123823089951622032522757135341049978863653362894115663752042512529544198405223996333290183335723373240822602865749967584912276084034106462357795625636380900721901975862069435712018572533212484344225600839881993038135277309211499286473492008946842416968349003913563457813421067716874044480919231919229238617456887861116544196025928451580334498004010421464404663803913788379849035082388887830197947192537302528910838601570216263579555334162375590202259187208474939855030633879383068883007372158496399323067468006511120777691243541902368870464768640734692766910799412962374845187259172550122461673717552165118153739893470539429521463291781451648119035964360760042229287532316936306355127668773253070490462034079454700844986329306264343305300932338858324550604338442084605580497326858470916646749337150483212830148695256395529034983392349245330451296319480215098443181387647666373241079663829799780503761866181464904733844616944637572931072983550275935637824905895608854634258355480602366106614553226043794637739057591498129196143829187645162330947683132591865532325180819693665891431727677601579287241993696274405752225810470017582441395008771556715563037902673632176793214703366251822824015973025106196251910796305818668275618442481759198294307577145267669104409318710854264918222967136144294933133017702482635790598099574138829474366746010997300449291800731260225309566386912247377232441449559742701155178656247861778852920292791256264230249824086181570400533192045557062629017105947941372756617505068915258649428754513576841966167381814999910851357762970069704534369410481453637106532478530681620526094497751482983771429172989096590673072973628098759354639070314942626055613114072691008759040969446748443810957348632897395170693257035945767620363364724218272468574237483964132497103512552705878459622743190278044719149513621893167770405329257487666368161241402780051091844985728975258348036395074602217683207057433681677740743133007820452435208557716940289703599378087033972711331846083822683954730351940355591806621138121150376096810360379275199146077108119974351217941374445254525983165843600606257549349923196446156994531184955260834347056090900087000029112021361128830706815598737888251663260613352910228867575567356987472822310375108865312309720766704292294405605288741024808388582990847672803733875973798306150449563438220963315933877760575042631965278903285657650329739256091475515097967340750560653713364720318182955425609079823780543276868188472021287021289740522270123763716358414335539990112191605198676426395659948450944413852204276355586080857445537832489550560398454334764723770660700835142968521622472427350472986747457228157956749798635948030322484339288128593918617509677941424015695284651090882729251764558385134934887843919074600521810096794068995543078804285501511133151065213979643133354561377061581360503355601190646696033229211298222286072288300289345581218225024654928954876557359186363152236614954284862338663918134009948210231712807425727785191087311715336728342314197800091441199052347767690948756332074010511545351150595268926025499125776490624861178560825112431779886421540305182814736198899895178434129081764716664967147631220150508969781582524605900166795851169326195012856176657042834488821231199639836926024393330646228994444719666723547307043166520146606719342322999402151608588408626174508066592627108041714861358963664861735019814558926655435969007571412888921600654654016273275310836330172017396414492657889186440102146449016919238452272367725948048086266827112708199308306557106588564561330981485671299748890597814830169397998510627365388235974817031354587796343430601329394082320381608647359909417012151999238409107616672317733945849443280734996752438390011759201629678785314277051004508691938318546732531831959175721038283998983089018008085988292869503826068282107207166077498625423927050575356931340659164831198560504287082147305789399547193745753751405755176526620456816840242219624360994547927162067468253906622079667450276921179387119511449771534109885327162442747198393833462594800304202448014497785040043989370108584108373720880490166876392222001933304829870314834268792743350634929843913084327048404924110857911011416512138962252956314125896209010834427605999023535629986461164566131112430544007347243191621857970787669015924849019595013272914646057070296858882658491432642455001899328385997089648465415365595660528888733253282750616157032249077386622756073250865156586437685454991639779281909496091441611581687697453933350634610249262399229441446730488129711086814101654650718754771237974106725573899599066359544472114492752576398994662410373093073917232190195467468226047168137138210764631884201716433409200780504793472099631159073557145660577910960973082975852001161923383474887356993911748904979645680076023554858774562744486165953987508809001958415748180138135708886057248256473920654045974657113824071329579044821757931073077628106992379388957549611638351922124945383165288919986733973866023130116937537542690439658225222025520428428823122068472667330614050659577185492713750232862925369686509455347623436598528072388667495742029405315440704702748612589022036605069689205401977716475791415187940634121197934073894422895045490228903462111173420133129235908693305400260182051624090321497069824813635211195064669362581893387897755448111099724337275796440248764254898674889355162686134452965573411400536460377945353345035784229000519819565402220052486505344985113061179928122918086522449746827874398900457535300927494177419422602410722699141406226719172009246828360916348720179606543156661779210578732672810136046501618332690144894552230225055953478603872318462797337780632600641021880254565181653105155317177231960312563457129672696842363880387519428228713602683490448269218608289976998963972774699697433797005287383671593932917683103311045324068975196333478616708202712803826197734106983000905107646105875233177930208665679722374047306145637541968832226352585651721664781737557951978976524371254315760445650665966957089099034387956499431596355332182241753152487077408471856382365532563920029265818397964268343328549815912710147858966169019506919160808060297729369032975933751911507007508747756629986751931165723702751033388972880398409963444024451885225666432870053093597972400777190961178392090856554020172589552681113368490496985385758730039041566186552666898177167596519876791411088025880917742326338950438590902985143788090741539441017970536051403556220520841459958390006471147971551662178893398859268353981329738636190906902326315034241409013665228629143984161716333545346459927549266609393639639876197982265007215797557891609548703359792911701592633317875063246229652833977493333419213693811805113652259143411156841426442939686343155070738392845393027965262892538727201286782908122256627523893092043689673075952845303230454788306647551096516515220760540311236720605910030819067408340424873679727204823865297225677346706806170315540656562216765248227968100420303365717269735221420490060653208243219658019592595291468652843424608972305578465844364370676587154827806145873601741847045080332816352305987452319697725987280769482175560020251742279930391430684436566883823750798302092715619225799336418672042648071102211155488658190155711590862763852823481266034729550463260899537152971562617920588529328038714765209524004944836379779862477286435967086983986600630505160778715528619177709652703845196332127819882645512684366162755489082665815660688181762128681655713872930021590380059579676385907791869473324253188796312420473332929671764817802130999068701615362809675215571240825818973406993313092121516423818396945733639174576391890846805703821791351928215548351268027518466637559580399503051495909536119615293932548783833404276084766533540469301739238837554023189516128222773873421248541472273739651930630544088430690217840074562857238856546820770149897232208007228155345372943373274647231361585601851403883682408901152557096961030454918406250328322727090063382336320715977889745281685679737102258381889918323490312628418417590409617555379720738645964199808958927659345898404660095233047760539081084408197008168563223042902563273143460757432803103874744574031953248513423252346266876491610637091434949020342448572410447464862246330269031843089040309211724908810142526076145074104570025319099251343519624844895529241768854233722784402476086134024910199110930628267402704370232259885909370073517677731081109735731102479719503888887007169629156613902464353270710998287108537643546260673607959788530719966037404426803521296712556379861591547529170287352167571880346762978598943001957919409432705781337921624809684363377597227776776787868488771321758542798781800252074811527307852392453073939047570918153702871278108857375159342421136935742599261535484317562779494084803805182859047169249376486833209333854168043896969756300112399014642147868849373049036892580984336916221018319382470481114598236669156333491447449934682620846029923827658169031576829478652235003408238667146264145241427642845194528397708235874098767440144646355790435836291045578476114491220073527558292997639733210766103698122333178821244582937788120158758376751877872427309529860582175526363989111481705951322821412215357698804001891901561906001119457126945330011283036479947119627199447459633924563562406715417918224436428097850057596306716931552348367662580682526960759245174215264197622532425971754529793302390222562044530690795387496961020386022014645043797041324148176719254513661156857166948312907049204816642759684504709510453747451034500387421659212412110791786506512158454796417843994431511818340994132500324028621676825522286785302636385978093339261109811834483322427080000109108159677408578238006000780936828295068285408213080006097954934096156442423271277973055561557689523465938758234059084692494118551453896670481258461355860548951655977876215631322868396336720312158977475450640155293758169286504557979871266350154781193315634531634193245290121243673239827449218921629534020724650939199525532360801138524357883515023471542793308951293021633142130555097393162017316617174769036498193954079392144081901190592038832745986408473877103067747976707241352098226349309165994995549525870278106714152096861093754340472723327243247708661562678900453578947542866460564264436068720937440953396680740378209122956325879697593389827532800702097193895093518756730485135901186335589384226861818099317633341191870670652727124357440273966280772846616929304118786397699233236362557593718932379513784335963557425798924516806855183922317316892591784448070943215049716533848781452747911986755187807450129283256059857848232782437642097414965635189371640889238412306746131333865105813461113592303611163845688976249995149243312030137256380188724892750408067716522512483608631129142802043526910113932324953524659648798578589769471475635754132588932997750598766668301069822716507116099775725882738236901865031155823228498054659717932465509480202985014598940649854269653592450514669699850298644323195725908940572202188452076658875734858803444065439679660265309623698735534472452291277362671988087217104538980418105300794678278795998850240071295067645805613149377083957035116547677490373654949736586165440906319598433463563507178437391052775218284517264046405154280194339494934252249512010579197236378253530684430272237839297848763621448806364434851136795738543868965652054133927444820130555618381292225580870507104062291347788640538030352704247783920675765176026892789725087821777078431446361426701123392924083296480833280946701762107039360021874633294540732720083244274366151724188510696481413849650846010027244251331724956641456918206144154298960998905717293436593506525211150835975143692345253047987846355641871871177804521032342623420680610993453871261982655340130506248624069677514680506139525637389040002773538661337980589741784015308199375292755332643743305931113829015368889284991463562842107064470897453037418589910248558318521023419591988800037866941469533185976080817488390398843804340974877863745336557731767401003090026146111252548761859457158327703105019715934459521391061073941909433365017901292622361420108604077708297582759752816305210650551306575619180681751581283325564891960888554126044941667331130489664487289179109443878121247222945424635108398205474911494214548109232398914195852217787522185891163257827843397347534904977710757647440437915487164115056794095174022072908139810641668966650631666007090398965277853085986930002273872310530408549789790542776676602758228862379981426725980336082477422732179237110841987596777254303586034582540740303052128912182730195240783467720369466100203622904783611816216614458072462121002252015629196627086887053262052213581855586535926635986461754970324778048030324643574396171916395942431852035881750673462100856406835933145226214681494709242153782336501926750991495593884215859158214008069165358798833482705541369980925527913636641710610040457733703389002130605351491049348919900063370338874854849840294165361537473611329163563401829279171310521252120762454525473756217248872436527852982061155880642308780167556320003802229646177633974725962603844263650439190485244764936623554997369765341332519128384761404839363470878763894050624623442552466888989499138480397551487135369512273194619718661634672280389513054780821777837613932366004771326006067805453370741334882205370794850907304697719065835979488142777051904485384633899419425402228155767993748864650875621466371269562043585155282940185243359563240857878462355682434338913781348387767049293430641586300646677772378802828778993929789948058203775130206829014310070349122896015381183396386763522029851399715536975366813405127325021083946435898253497449250291828430264726814873761258090869862779310181398999495131970270853561025527556533882560502361233020675145807506878130826050435780679248435370149056970448325056380506249118256870518648581659007445893942739556466253671798801492400273262088739732918632396982122426806125281113610835748425669725665775989841472346057457340484792468642265586594216813077899562628592871964778252245600271162206677325741241427008005082839124132711576032293949834986993124034853324963199155676624044543565366256555852019618936204540290409324178627077632317890214809372805863312143395725887898420301789337995387343009313277396540521728896250517825006316286247082923878408628365529424668152195942177323200314893640599895210579166950839068651985632069285237935711750707373296622399894635921238151637156934188740190727900138752375051916783485528499332984585469986596001265962627944626687148262299887575935006418111074331816015942811050036272200973831174977280700168323656023096043817948225796373047614250759165181847768936520574542430807436384699647609953542869853165932747372925163614801926690426248203862699849366767929057642529282882715915757844817432269621883777936102269470608069872955099579382002362311698676918451242366832132401984619809493192119973039469965537720622038381094610981753910871912981217396729702463313642874124685072028717677865105159059957022035190910982006407667782890261875155220469526213509398231445320160875613608168028096209951485866180368519751635433407318021574892236219680940478682948901955887791505790864420415650587318466500162797554665464041500596558069890533426290703588229043763842721509571811170045577674440456757086280597076871362118446898460441443408428491605592735493219567403468770371191759496783912983601123113700805285371468238529145268040204321656031488356592378225955355327841860264778571947634132061211216398566076265958073339755695698705830821161186919754736388276940868948498439301183551967388958613503350082479210736059915750930715275094605228735329120218130006283238964638602875361445024592090665319632062728388470071480769331092367385915310351696732582546438375282194012174517380071745220948851602146283113626303808470551300213859465180175026709149630313423337396242046813083052613254512490604266518838206468945281270121205395475835523623924825088249558484402902216821568516529101535485458352497908501505283703157345757579093174383964921640759598988806319602214107679852520476824758231297347600412428269175216247624739998103704467804359153952723600976075472474460361429406218789853851126378267378757782737599580102526920146553398857272600264090312643380834359948093916630259223005227633564157428153624648370487088325812321767946376949819307494983972819196606060448019639248861988711400714428150388800390449118743582473601207789069024785194166491677934420322679877814941998223344595137878566134833858702899906766269807668788771536806479783559316300364775819211341448762715988043470793146144479636136059192717978883773348214719225211383009675477452305023454294941574596493105679934421274707108472510498067193582221463784064134105981974611587657863914868457192248001533635904466630987529353119312424511180500960520123964016435460758951609482245319612362492098790263011544343102177144150461981169485700586471995032239314358132697253338867978040995341805168363987554477447987313481101112715950793713862995716663364586399849114561774998380188296448091130059329545143370407869000320119650464660842985889111509537642019304370826486898861442863365346093201637952195897811492026318718486593964936323773216805047432493604374656042050395516770459066899092849146387942926103864817445414602255046183495918147675892681373026660732398303260417943213018782648947840099358126744100413962672093206866684263965421008230254089674409317658194563208632000868221320652729048401843618645287698369996703481626911993543191805450474378270623236671335699995196714688226196552126842135421861179287384409400513327620034215166284749864675477207615629022360766373177659104898244611233049921232058600881036219692081108677258089024884407318056033000955084173135342442470952155688290248796973178164631479173898583868815874350876307650441325200975971091045247533573583276175199303534837440891314467112011199540369725783742287082786878138056106914358298938224189402684863598793011071336302023066064746023574240887177485677057824690009530890042739063263120319873300865209031739368016341885314295292376068339056652346618581361385624796469047010374556451104035652710223040338178679450816509561301139094095510416748326292852589281418716002761371499766816276922223788489183835920440926162329687121511702133121557469526219865601651283329342879595692285999863081941603796816907407283819545014178387116563120513992435442200718855938186404384941271345787904301322423896767554321807547280374438253883177231001445478192080459539815217085085413522281788544823052208862492452401710000677053432579993829890152379872276478049256980724393851783261849080343335103179870704876196880607743424260822316567219875968828243471354518052061642476575334205885807931849234961200349414473340602676250625210461450444270357993164672483681662833889605498962396609350017640525134154561865078899718729266553113025603723233273583580035320477790041277328158329184218460000022582637366295724786511532398303411731567678719926340699690188742142616991998589029689214939389470157703488635633908298727413820554055045043115462576143922381624474871448878139281695845081757004570992256776742100089720196497760214527602414295221454417469752715923705628022311837358908112820645543642914584815475795340777621101801657280149581041382029455706291720192111256106941682567493206134712994507353148661725840180966307480300644433285420092508480983501183464723494197049768789122592331408347878143596180063710786516633004971602214358769896945341610324019064914075050259148641440608791743981732134889083903655128996821313607008870184514920871222806277149127731670010861066829002237714998316558896889063937545690658979348245468852102422043670908867299930212389376977919290273860069830219214949574496920004043062497233520698203270550550271619090601270651463214843491228726831230089841471597862868212252302277252253929824817086486025319534228418310133671697799672704126404798092226551771660337469682728439955339618812697228694443711359007577693930765067649735186799982020155578819024684655437568982427189446533215693948352869074150380846987118467392301640518927154787071514409947407224243875425524298770758214461241164340403793669080578428618477228436138880301580118143015238373135766101421484196966364234179210520541654078737126235910825076746617450688608915746268659341203046786185578895267063988121250006158746344774128485626175141939667573206086752665091052454760864381385066913773279504889345358468201807091720060978704829000380535294430300322468624898604897275651084746670769670145854351607665446209650353350197201224769792444311586638009971219432240688806684393703541817361100630464109899679689509379054157325718110611849850410999112109945316737223896050282591431135410528618629604489717503597368065753009808100001643612769833043969265626799892065159868315706224690328238646844111239859920827075488184174807208013803583838505554416137578950566249466088228251447684422636943889359218903417340147596390712066884092552247582093465109511635279994830830097276819394196266067561548935331958210423586510123454384115554172486114934121804909040225899513116521982669874306108931272962055465401747169611123458343023031757787980274341358538374162480662098091317743837797254882566995173519848366845479077594781865776386690228905577843894111107415936501400403684027365450782313340538617108219194739883518348513795904249734757684923276239350817931399913001147686880439347790370281238875549224432384088715693994596968857133738180167862041116381964807971633279728699082031200700997800886556051604371683954143526634675932394566674800228422448779911837263081435986786118190063156859323177497803730938991301144460507076573197118195903576072838250740015167803575556669804732610163009728131333097181562794814381447992316893860905716764857215616242868579681691293279305384064291628698588171030598805505623509905200639487988280133616545553120001063699416473517517201711424616323022216236259350558978415244834942796065166212679837001471700174740722513753509674345963232466396586234145728510777250012761120347156859849862865154276045891509205216050714220664132384655688195422525006189937835277516645700757810161890697938493230767072518629481961951670246793203461003652407021432414570476967832335488495398047846382489053631997273701805819544602638818446946697757214491062053777531729313059478571117311333142092471453533875406960311694256023831711679015239744693576553691935072129457566835376788156498071544722265271428101602755186539412316913520485294801510399525771217422647590204989676828062723589111854664495338682798802948608908534406477829830504547677325542889489433802311241239627216289649308875421386198581924907016776059141473266914131981132821165492040439517091058666819801170424137140368169335778266741544487312569169949802915075775401638007730085942072656138887316783848052091403652695255308085335383020382935973294049617482834225535208345714327749996842076706063780133673697771395381619224672284500949718912599082506276139223142697444868729843884823343029238514261941765404829001898543997442460598313188688633301895752569377833177209720975750311617201411026522278165224425344408734317618691937517202381725751828137419256297809024053479019830944308811368853288611243336742937705734226192050852319418990679822079247290503112067815331498125214917856585903316936074266808255088357388863171776190915270295000227710307826591588205479795745716206476706627387193008367239035138185761523299139745681352211531502480826873501690166514830361495335414277667689368499749139047256251474716872548612393748934799209338168948721802942562683152294711797560673497205887936516095032484914070530563103974308749951733424364845052102672974067421519919661193693918270929611872799054677606722284595157791475857477955839870015527959499867918370899009175515853218313976033850399631772036912369541335057597061100880734338811360591159464573282938774463418590807032669485301262500800064948794913543743638624201676755496739385384795146073658056182131960226858597208742537818646425690908068845191843745486365387262783299996368818537731336551746997583836497873264186768693858433480728420592670063296491191465648549564387256350834526447487207715581479264790870589108301080761745446196143856224247645079384037314783294855061818615813643163954503633190924591193730828726784718262514323511436543401741854774040816107174224157977538884902416687458707444755716646067949142662077035547011762356310124251315792236956168929421882642831450462289873196458912487565359402534682959136753958017099220001716706532135437148832878325968045130122179463705217250270967265366300413068155097698464245119646082859761121400986595430191082502623508492601141910174254190845294673885203499011225157786548217931379487932997631169947101089980844854620593691385404841119352522403178497616331574889266349222089203016425893787584822684156879804167453198414259023826284461720274631223555156803396278066072757929276800142625006344622039124677559044097030501792783642304317236216432286134565748301905777313143947830354680118888711916324528598166440125673339151130063784200888862391268657177860549946516580248645869718483567212106500996598349932306491771911723984825481013643227463422834228860968749535573557334717855704463048641036595491035212944763260818303621572962015768761967478611968732787738375045684980703834142645428781262893451896019803717400255240444953949692797681040137683134175823668705210346111976382670908776878240286474404435569055227942204073735842167971241532325064969051157903687621349162405528367879320482596361933501251861906149219624938430957121113816788808037172144338159242961816434515132382353012292760719559631986997083590373916742610420554846786514189932303939965138860719299886785666046891925178996335384487975757601456561763915451073937285689755343395686185920457601053360626063113298213044537866032892543595386985016874026749640146000638993797606640129365961755984904109618011507868999222218989236786624048664439804362575716864275389346143444310959121785411383376081355018202008141793634372054248413342676022159825845454013111649512523765880990431869332602538500710466510540974839468888328926432061943030499705788859207194756455438857105115728272582001835385617620981012307595844766100290996878965453117171181717915951271647834781622213848816118634157025756118809351938723913070717821233846329231897380680639297614315509138880984153652475360061569083112912211019943238355108210111383286841196667516536871212247937152453474506868949191359199127476205198438769890944731014338164769425256017875386165759140547745931470410165324517546458247358757009012910466358295406026834807926033965015882980849694308474373914457580333832062712465525228036972599267216917798808557835936826737568058916183310875343208515685892174029556206757478551851375209646161851774229591926755146509643894214931533918239611189701154301766677902936942535846389617333250853594063683275110189188526920222062996953433087318872045907190971046464689101478583772910258470821272997978058083702883065489444890635206568848714419319614175212171913280852035656381524117677125377680160397863950778302165781031736785463514364359606372696606816309488918505026972914606123822584520708637576426254656433943368393389365373433773582649659844719079970667470714935676464146491180370664637481086528587504925310028105528504628226584574781167492957504926474177632649830712946349703676195803994622019837689735529243007254395236049605770401663560765473348202668784218350573211571392681905606162206910961885385217282338881899325796228600531179019790404316688956085758254385488575447021064060100051284605450831401467272388627910977402028606705105842188824795012412828956393763331169568314429231980310251590890196155409939456198894751049518767595440826542426205723300918999218689060447468357371609281868431428571491431674030483898246683895894897181448655425069855493878138834041610271965389135817266071831127541502243742726619096759495629573484716349199090243165692807536181114455843955710372633108307519390918235563006418238079820632801632266234936782875724900910656064853879971596101947035881971634798759204037578455526560707205519796418549720421860560595828532145037306360012786705175140939771751418666899154251818149290115270643013308996260293094126196511953456510101844033750175761672730413755765506969718129386344917954982402124670699834052700471239614958757045505603133683718667955383083133341511672810965894112435844072201112903171694956344954399305911740514121610903635716531743923278340307068610404567511795093019653038347124615798696336774673081878745108633076564834508572242433367871790649897421536725029015373373684531703147559106605324284990411827131138694631730003323973182012399386849051045289599682471200023873841930339409448839186226907915307288694991997839247910439518778335645557560758348633438035707329408005867712979950258253111555775649917942769200323436658529687234792901396555427777703594418441771526622449823209566525461366188498125735216318537744719077488718936210425765599128070857371262181231758204310589620267796013600116521292479630357900654927719746612506559166049291285509200129762815414973730706321555842393894700767655540218951113874982751223468160669289102009806638323470743361772349409408544300966881697637178371417127437151577021312830449752028932654310706281562009850230019107688515153808594516980631528297795271344599050846514554220066293041335704753793652422462613274775081010188938472311893268905338532031396944670666540932306818731642340535615571749657321790541813124247986003433502735767149133513613119576504282988792870615194912904152811332760244804487581817643705286783606779751001566117081593453840682096853314757632269110499172858137608606951504414828605111737792253050180734076603296226283415206295769074616469494775957699296810810878829448006411850072794225343774019629685907370634832688819188661108797100312027863231963474715375642179983593146311857017302093092531953620860961880790566572548265816262040489375169468462856400191060531007665583860705834878802137210885018569385325225743827843510056795246423011061488623716983991264170247117309215623217962282213955034412680779268727099235002039032371073393380412791306889505614060296934284651235002332304077006847042881977798601928845261325639700504288740460270242291047246206785553968263896057041107574292156194929863267376755419751917994449442452690247652483663981607451987956883303630477283659672374724572527502155800232889752852911183130614250882152254680047662560406494949574138740280146363081117066545865286560693334056821192314147407680806427073178954990414106734233040888036495375471736471396523797785509760197165378961121036107195152837479170831259524292351763981395406718265639992338154256507342220144765321150175244984513080481691008239465872620821925846643764814395695473373930129406606321344040095528711430850411334387804324217183453573864155590638501888489347133283942068651529223047471446743484614488612713638276952235140456464553156315679719178427466071680883747445288007866188335786011940768561286477957670770285057818707104704001045271083429303132450218099915519378791947474493350853156104300336191533213915248476002162562203454496589784054979761600752404886567555033383354057468078998142884827417240215861202854003681104792074902765490847102285890316426767129867503194793869510479413864971627237153057427722363706885297679527789204558575332736024627455694693464836922887135288326867911050726067238436207118299051325724208357097349243153119617115773945687410246209645050438848871068530550699530543924038686775263707875333104062574125265115653989714929957103208265887129810024457671845868222437964368821541178264710480756589636408947579255854629993483677470539463573374470077726538888763019347637558497313200283461374164419294546546830741089161605975372182519895188916198046953846949165124217385376854100278180720847209279638655402366554028072879910165944410060166775066318713546357385620592259792325376877771982811324675865964893964810134696663674895127250726719892833257717198565858914920701084941217338095879581882267881050651085279680649664277224529933987426099723161529335216178149602321106394240897479407630387558518129785870751472010137860041745876812431093558699014741935641950637021717493511259379543585507436674715493237267167246886383808317928617618124094213560066074603234088243940811337720660229672707124422655715221639060293192438439393058785295097115101089621181862019672821126930329183711800250713824830865123304507175061843112636283645464969636855939036557092034648400241618674181851558258795443688411756526993272958645596590593246446510687719695278638284122536290354627129370958163851146529104364553026037148832144582671364566838224048288165467519597162067831465264686639253022070067320450549722634762718195328338905153019803330115655264465929724734951319265329647391317687720541225661909443613734629926475603218510641699852882289679855278961786344321635503794589649668430298887810095432666066010286055815627678294847004588997158577193951071712548318914636409394963918767814048807368247256002827391895942123489383202965621536247280294705231490496814725192713785090653596607898279237566798635586847226837136513959556600687465684393175385371162455103246732371693686709556855836955060339436690224063339664828309907432309546414432596150539778223572539270441882765461865703001918969938254526145377131226466619856477463520972754150411038213890939691437548866356840035504471026792492244331339472972521276948681180513169497627721112386825185536220890209055774669231526296244109373273345929198939656635244430570946151753176697037756067724107364177795501979663686139154798080939899225514429830430267463022886166978503796782894104776744975362654491837572022614328751401584185183860402808501865964536641251079472828107126933510422089188724665467728567325113506440682285637709883787297008966510366462448171829266595787385403889674948564530826018455169191624043780843186823747656031524461588692937016819692799302731006574257003355640599218338555622347890673962687131700359170985488687173256686164124248364449064280915535700247784470258690501455233745584314764832699671609900039906637108817634190407160575742823869059865354401828132402391983768621518437414274349259283716535807017003045945693167940102427754653463348818189593993912575976879799947646415501307259790001592951822563264804670321044892590645851619030174549008141560762333426013021149427822791133119532988665392790304207177152390192041440127919082490606361296371543980055678761866463585835592542000991288835152649137463996299499218424592705605227665904142654799665966925334381795945654689850000259224246069013670050895620426921902659370808407096373226242440453707296882535009673089150891919584613256907747253249901975808856236072801298648154110973204028115299072573358849392973962922439150558971118846590008552740447353590387312706123098525559715732424655015466943275198092547589774029945787196831971580896171701306095560163394979301342466930244783807377934944249827532236335210392994544268758955573716372930004176284512596930885477172718082286689561336129654046161157468010334646141582699412629825297063473468764759621090606467516800840400819200798889328451008169987792003916333255444202407645923031468775710139576820394607085729172829456197577073375629925332155193829277889073333551635034204942620594081500554274134114492973216655121969084604138004720548286088387338199025197316028509457720317407739085718376097272340773141362784975016787099870924901248921204392975322720723693176911736226106226130166640619421229589106204169941724422147552632653410803910641376800641033043658384096693666622753353974657760450785151474763184442540472000511946757655995614112696542551023958350404664526700620370379204458549241406911844345458621071791785539668463681261729477465200056509812058819131084558903551167685960263281725886811235823490288780247697197215433249714736935258140589917175541444524170683461542321037524207283092821799717668063876545737656120391727365716855829827395203850785489424089578043483514483487629985325217185351379504962044493266868468275616621898701549848129742739745565421943435444793676838037854655323090018014522621128572613419831004170809301027280788782274915406378906250669238426145963554131416952529225973273754505873123577122969995770272310345891896190799771135905104149148376840214066293962404025784504154902723750539806471017814462078487357222288255565700697575629811683016980737256386958737601372835714541567815840086645063952218389832222762534183021828220766113538944571043353488204299975930984044214890971923421933699269463416210968000149642526085679044538692781349056918966720091528878128238521546613660019953052518858478154196499876900334330848175708003997677697090468041142620243177910142033423158423518076033106142394313418290359143641253927394907173583385941436028732973103479474090046794926338842787649501848221378207839428980473600368434177473536411085881119412935223938062271163534807430940798152169248404963743093485697117120293238872369996859990520754091671667948998156728288630406313305507382772155889927104925953046419549053899132722739062461657664947951988721819026306986440762204195457577269366493987338417594108272329645243779647675877649949842321248370858952143010040117867167118924817351609905164268574257197155889531710426595432451334574568791703379828347476938822300674451432860758584530010828558957987288382312616699006470310861994900942126240347020800116657503550986019891998111617336000642074911333787045531120197804858404667048648504392476537463110420510312540167982214201005033212818434123751680153687232373501210096518987398224465745697391361944332396758029212842468296394483054139793533543744886549641791297400813129428467298335620701584521236806896791544950163214777786311015631596424058158488570891362324287166445208798804335890945086154316932040578610615957327494310619327844865145936524409092333342034387183063994561597192334188596554303859359232504693106926271415064786419406424511375900359256412347051926519162527376813293814974958675615423193726721617093795488736519791908741425973759826759450844526724354963374274936293509926582454091898778173280826583945510359392796688664726878195869824185231438142998080459252506156326879054722271242297704169005900863142678834885092672543948666247819117999514084758136748023453967091522779088302432629802334885547762663950689284334017959677912394322457713720023299212747176219676759320954265836711829096187221459056194891183919454562191224507490825723957274049886887117836888769450564658473522262019569056583836552592485673422676266841117346969912472620943715240063924557523741829749481230487731610044789380965620435471981702001795775166409054096027351643346635423723770579417571284586110048588786413956576754886697747859592537699525633094819434372570175977548314488453386884326717375583076652770610394191036316964230219074095712368413714510192436620984488169545423516311689570637546113544150131076449428988614879155616661352170417631433499573018867416426120254444900736573161123195100100923731705145269104216837522180592594718915254742833836930340196569582127750671876362783765042156171239183310360704150622167452840468624434251610529525312189738207692429410800383505397893720020029206618655606402577142173063997777153539621816001496031030671544946859723136715055982659311371151049082628453022022142951651887720126818469637876388554641445630843332802698201340644196525457661874805749852537515104178183299112914181955564963557486164170096855507012372725955523788488615169920623035566079087562100732378142135907519183364992988786862449511291547632845816966955908724216383632330566168186873810211251129310002870949335465246076865218310334226904976097209004276471535509232962359522221774858840014878697412080415916690309804856391033890347640602656832062353187988759113896199489037988310611203487983900581285780259542345911602403080408294898554692926063735378782421343078485063089877901103251505477702161428260139486614777903402187480571568299651729491073667756470201977350990920126929919138162738946162469723071094737270611836405671906281230642684649868734319936767752988693003650456942599754082454265020633844743675240635756370222608923491416447135963050703735737089088554557979316900384284074415868076252983163305146594073587756682210911418058880368023243085804849106314270483585175732804835056474444319453176471607079182173778581043275074911178670109781232903218388893327597264006803032844707066084659674285211028952052824984358218845472985256059908560484289625706747943465641253390250237979998837321593691371638064325730426959874730579715318967352210623741426775413269343646098816007866248156710881918955043499302976511155599299834626633484361111753498768032975536003496778710627905017729767216177275217859764091465859714037184785963409786367863348625900113105520884023654723042903030662579049643072621726218246402849337499096268587426964925138541973553148492314847241597695318861952003758625363789101776336610169385783595589696757584835309083066265514659496515425602639258785512056490404133698035210057155336998898940671603804400395408244686835348712423828083407293643314619129582478797453614331860102830414215893724582856529025266896356139988125077528276104687478093573654255177381768818894874828849525285282835806547227387346402504695365001199591637298088318104755031472880466035202829498952650942368544681070852659687252143584940725682775946311601713492389284939113096192911919936718043438327491040398370017771140040033679060088202243258274144401066956509902243131356801625586300711223811284457186165363280145042672459958015702817870213253152201670533607875359695299474313054194279716776731749172090755724096986206492272321581374512655210615425940844935741102395851032675204092428989388810103739780566715422443554387688566952951767500646399237401501885175188473227545444665844664807778092773987369605410689855346477474149743643846703093661332107022223819415092609824767018852740660879989735723569862739255849302912461648008702582769611582530823227674897879930886498714851518725500053482082262990496462441598397229990046071462263756552641289003233749766168102777336559877474261128737428404285762308965626212074326323289665913265984629860652393168383445736473693233634641814665052740035553643607379593726292626417239553536928569914565214734608965643416013273659932758906844020981286160247487937250203382640762969945645604551706912925747635980047522772424895834771431821590779879845490745809250398447259741509411136279021236427658639147896374966126036181099520932078622503294224589096840905074691686294581705882500539271392453448052055878898750920639314990154335054125354859915359981438010146893217919642376700922314566755565093320532642156773273602153869643577778568701313240077884432778314736703169227124708133069614706685054330971093938937769922033363333039089482955187168296049589988854439643087209799621434334190398437808586609555556868171467723251478691553533542529171302304198199878878377424854996625293042821787161609220820327626303606746078922318505546433778454555811760612885328832418078107946035529021923489066888997850544764247106415489240508750343060037164294031185837527553639652014429579290541402473324112676525439835506356603943765304798563952454968571850759924127025294961646256365799192829586122798500342283514814332164418001478839898640445711567366320266902203281560437526170252639820824441607788281301417324744279039688441247846189024180388147202643489094481608932275519326524034085373133228362666029949100528437528046265068803563885824976423679634358094392025064070335764506716290677552658012345518590468245731368498099833934981161076229359731616773611295927421460981140802520998483562614697429016272886829936625963275534796327726919677971459831719952082116946509823643906576985269349976468491979384125245269447459247748769217989878866159868238604538072421315078141736259050309328491289002235796241003204049132831526095485138217554573641023803234322278448759399011076911286572923629186835507095586210436442859470577143403960115847721240873385235614007744781964833503363607826761365995186987209472989332576083614277775688323797856566600684240105063828812296670692987702735663737739132152255938677365069348668911009654240186223920725073718910893172541062660837608234370715870932092273429500110255264562187804203826682035321359288668117170848343485963348349669956689030027620450114829509313051878360041526742043763968327258978892851288968866547393622129780188913230233731960710036125402289597634232486348482625858399706000672853382150335452978828997458173018248055604240339313497553441464120598487628303397405746333769368191423379973128982615429465212098865973297491730510771147639444459490382677889021202816058101419723378338850398476629993040667265984724763980368433443027703188922782358866698159730051634005887394157527096657099903126396074075422426292467747937756828357266846200604695632859211311274874540302666536066130489327867977496354251979659045608289022730696419558680942951387266221821935306199065098152732698809235473395354829637712503143663125284138086635165019233877348571688244252786196084009451472590931158454112112213327531632540672434297072016733991639611505307636036635857925218012225009806006133349220914707432401772195354034900868245399640102148756297677719387631424997040006882342142301244638192021742390945432543443001912721660298511620987114174673940082133527462827816345566030317689786420073565831997003956102039130753688762870596183332974408845397609818473573565732693843254176179166934541958398971457628983415049130634051196024834397269322156188131682833985248176515549805267600504048306537000613808223780515383879038703174611009185701384403953967575299467701972560812316894831407531884469166570863642469309730654951038974611592798603535118047313531769258728736500631498218070608215230533171241823755724977760055470502574247759383730725840826766740868702259950205999788806120892343339715235968131690428803904913861233978908321808192198518379384544398762946390578901599641275043777777873922923673231835634898922630507877306679801367910077435646078722469858847612530899881666753450999978990433155202581102059455023773611150399444035104432764340860876265714715985263814026441501157192202612486544073487461628572021686831545499568736501861399383935057932985474766213729945747314841744269839104939751412751081098806335799026699458760158940192490860888148238951859421171823232453423238139989883956183118866473600393992457439183444642075621782277068552825035311863302242396706083710785834987382536617608065374041423915040367717384106152456271055883706906386266585359011416456413359342476144191194007292721735302259213438468730489314020887338386166611844622919165285355106402023586482919625886221940775111382577401280735788112097163253816644960740310290204491572795709137305955588264681645035372388891836913833081159445098244549847991660204946126025106648835400208894161989511461419165663234354062786533195306271675249986103130780952341059079969211457443770048152693615956073795287833732104254124174364082225298165567905066697630763570933513421970920015511441131997163141231613952735418559050150911793371168300721254800724369549491529381708229855009071024308099864425664937985968062914785289844802340250727761161313997733326377664391237553916008042116728397515487175268909179037339787620234340088232907787073775350101630770990290002633191532932450527509186232309959949926075530015705379953083472740207963866694826044512006668002408090154764671961527083050768789492009359748200458327238741145612207106098332104870368002591301560528177807931936742869019977068820498193241037562668620071252868424407931006654024017134392823696178782645704282047621765036466937205933032669467652703216650075376387148870572028339066792508682362819278339760977985474247863838280882284678767680201471228518625759497514372783644376442354925727734670780700976634933694853337126658501267207454881614973638716718502794893671327754399969400765909977854474057186315364726676258447734281098085924564861912060261113782219771210463415586994931649734888571456301244423947509032168138491811177792844415963699789584343690243664096788011599129038074605017066798920111096357931421337890592978081971875347253045771196637760261402736761594907019358352282352790373598028902865302309466090152617684241782449056243349029040093430172740951310591063874397841145442783968981279321668363767802949683048341912496511651705117730592188405059338189534404304222268768333494545765898053414734861765035775938535510459247625115940209686905809231078830884909240822632490694420493702998387728166904798827297201741186390023616998712761554262899852221723350239107548639061963645671906890794734472470638381943501801887308692694387433652742999296627903306379542805302295937190094266754464573568955982764513170325699644483314898827185027569778589823111974840317883866134303244429805579043484941036421951348775422545826933438030889639516126929298032893733624599359126098373052949094485264493644689054618399883096362714469738166411274713853400711779863263353734665698815138929785486618191314164703974249981837118942319885325777965347142748025447900839544271597959615388406179597387132384114755574766702267687349422885646330077820440600894180888677811230147565450626956239804216364773934457519622281171710854285314855535072444224687328604128520643485981341617353855353353650333068968319805992882412320581736823193550615341208776893040810478086365498177316729335078720035497279868729172173931203074959667726930356263744847763087197145459876946701495647524356736177087718540333707545653641746647414602510737695814839032225955608432536943411823974651512144666635242743014024244085855676890814578696867264323393586402113412777244984354366872760563389198231907259829234731319138399874412080029508799372409711282105210697313282312679816989130660185771334689879046321736562834234086184034063103451642684258777706534728650736214417342920570401491244071343064850617199358689627348618398320749225000681024767546492943348086453862086483110214685337094082462405678212009566559569738719158273400894151157182619553085046555733104631222373296651194716007928454927931417288672111949796125941919245645828688152481681706325998124735139960569211853095947767995447378365473838284129887800546837318633922024810744603041456904499594265272439051275599530391759578482186241991827761001691085272218092771678169155630550704395275902630048236134977866221336655554071003810713861374327876818021815603535527802312936737264641764163801269711922763492646838557542783885764223074930303050681329671082830579309963970998220804441475146937903085662334241380439918822290579438509243336247313445951466418151275433942242968947772766634387070693521325935827612680236701473750704168085222903461900284198626384284565624728028633163831210993912497313897078837544318073648592345512551221171938080704324454194027484222658163836275773093809958359431627004017543864589970151764160137115727457681765773468019743583008229882573032002608315769941170462273364398744038774540142314882982117229941702051443943681696428653856130829613358081039073996006385290902747892394325731484866473156124961138286987958289474944022883767242674705123877533267186779737247116108779303533688573136767766058700635287426128974575207592765076341436325381665588883352224283549149376764532984881539062168265233366083233119962200679394397577393421342658341850809006584333429127642515219362875648844171508628255415518826847253209130277671086331379870431415190414163381594351138238128452301450985060142441700029174259008236498839892403945877947772057621648641834978984681549583913536037020184920908220062489711098312644410152612763808821759896569072684109744771949626827652247323108644966113444358605751039097471588057577381421413389513179680303267863549002875967540005197332596365242109644735228930413997141290223087933400189182704196931318926928354538779876339814672892416561496774407159121040236824187336204585633500833553293809422230663355073188981675289657499277661340354536996691983505216320099077029629591542601834097782678287207758009207176037382475834949549215965417610838134769504871461809209131716430822915802482075225745080214650759650967188022016230144351707775721291890430108446984140347442703655556555078985224343634340997831792922365373264206408399883900423920127105804837474247652726235632877842111834299327687097724114154288631985814878100460750939229121688980130178207923809236547043390146921459448974422169430243653767107297346046827822136578699905417015726266811967034862036866481491453962560816672275955556529297486975650926002113285489021269188439595801849962184049736666997121821913667374175086468652632069992257931979106930059405857375663134911790193765595408595972740052692328395641679856486165185915347847999937289140931605710360784581334518312780886944317791625024585672543548779856718831044885531014018724877135197474046975513851773847500184834407967228014281393763252303090943483066395720589231060850482284166046807957451260890676160596528532875024791095687470530862347619896343448804308609605113016664920949386437607294071858579483558237093691762022415653699880177759411962653191066976895662232001522048769490787213389057320028635785307752375332595280248504543604810843910490529969393057264791696544144555283578990423824259411952332221111764306239755181320963048009775565526985218181737114778210470584070844276432550476081617270971940396884379538603336415351190931333374416527608347615670786988601102164937123246987912885873527131385295696764733550997297421754115974830332016549664503424802199625964412418915568877803306157087340530003576887553750047298656864887587595471184211209820205685588294028507845344819917366372622486452813903425014759413415151894736920212601951158255569154794412847499687221537609069603704241448967276760587704578724624923204321920592615434202121892669403246831745654844307532887899713982352002204180886155046250330398957895157598660418620764649050938688838984050129144728534728828942427520969017530593128940608024580787188580879604243623706252882095746053964115271437309862067619715205642551044732948065920740663248046180259910153252562825954221158829100341078780365761447072569185101472145823491612564789533636699210102582815934484995127140232394814150770526753189139657730689581400630432181931426566301112845156601727502304112840812569036035956450817812498478763856426514149232442373082426794985661374319854358964386810586823147466258204614478921998207288396013206796475200264620787233510995645659497951183002549838273303741963217788333628082228827577661355464097536689129493144235452248349291468844802694392881854296265884404650214744989273616523108843445683162577985695084912500422156123489706301708646658782584750676483899702222414151148449188268240597493298264007257318398573438644928292305334167796209791147826141460397998583412521729112081450709408533362173659050383061554073139511627414984624874358312559882832204218713154740325567036328898607282901893054507458612439834845918799156445700107485891111112237011673455848683070551225061003747189587148833458504302196505906612152155654266788434458662298983488028055022117096507775575743288827749427835967208411260001255001164977667524649435386255957563879429228603582248983067405465324074708683466908915769178761241430908988437096174966702857312791797478717738981754692496158135767061836330397616764160657923514009763916881258904461035630079158922806292794196104452529702209999442453896315570018765851408375730197396349597001286783881614167195549854384251771174945781805813352515953881436652215902951479267320216602395276167181119640682302660015663275944736417983826510126974265502274732303371157536690144400180276479280565327787986331630545864787986208911553035569657867420586476802134640858820672271042253733712277984113276232142721399961181984571770199870698215039594810923113478463859149392824207238529828574087569311619076596466808147003301811693394124823883547809790970050472623181009490718227795113040701767731647233384263295069241277034344893737619066844017763629931740668171000077413148095835037931236063017547575053802960644108138648285098646983313474426887933683300803662173535819946099184504045003614331417085376232430318689241116008798345844584170150310498368015930809758406990295443050550326523579532128864484861823057144068452957796406385262250001084386800324639141741735932877062859804441991988040646009362251516558307590558572566766624972824547942745739920863443008446062893880685650230555549400572611286889157856978940079051687584383223161717427632991763890782346804415686622318732874955744842383967587511847603288634153714288409007927557023342606801633231329559473738029008178803734250763505918186461073937660081594951992484351921501383433036042264329576829576412818128785389849144686922789989123835819439640313446406400194243311215329806410258506893496972101713231461509075185361343786544326947350164818799487453653392568599828040524175943873831370622620298539278472031997643524827448415141345137736097228313349906391669245540995161488094673751620126064120331479442770463753492414302474358831787392778248209666679204848776358716872958261664305957240678948922032815123763673506915028976529793729828819143261528127344049005986934634262069459101547082186241765697203934143731228029337783082581766484547670663784195390814969435681955857674827663976323060633020604201493511838785796660050858572543887976400367538365790384007148172302434621992694430255769657753181271898852238218393667120496968522835083897950117199744397528045417756465772780024547731863728401420648522027094510303546690284926351579023402169999800883801458949854491749730753746378715870223229496017340677057774284657183472219564633640058369890914099484360677585980945771472305208602196667424156373454579415328089131039004217987191043021156296466630496777529210980444856276027892551197553771730719240981485020707259709467481456786154318486048748837694197231389853148233435491487730086215722272437590946538447617113254016220798242863464321195907124497841099580996231972042815098890463887724733538777727122236356923873892083078560792887201538326070402537572780707818395918659879850787360632070261694322803195931543685509707204207365158231268311525914239695867177050942253657029763629475815693333607828068634368149998362165070322493930914545474137954867298592238951048523238632082131573052707502074681636227030631821223844317496173487195266272463734576668944494616126693324900301360112935044809556365516822207614018765735068350105149876708153842382836226081621783260999211542507656750962518949741424539116735669888130596294185219524907609402768401484720042935453877201350167703728699996292492581364859881865975584432807643959644266301614907345937256454255192053883699712354117291839031695135852349494517306996689204852278376172402191730014582335170989354542965204858747282222336567485038452092313825422455141751167446954021359362934017413677312994672174934952300066130605773372273643888949974891597770012088774290179160663643966494313553156566367383781283022610644721285354667379563109989542220888744639292381097452520281033910456131137142861957897290105069568346711182937940073254892089865143964013384413578816983640193402881927921801676916109380594494682863152982823591453650667509082048095560167860291615857905275011384769004797648991471270795052944496021914971404361728411043821328168662433501462216804017421925660875548650316289556660953467857393591583936830141066939069557723939753255738841550279562529603756887978380124372854799121926201305626262622205026472243807516502501133749772800172943134883029997225936959497459472789409752352120399073512976477495814372999071745876278309158929980107504777216601714688389072016323230869233055475667001690709295203459862260932951491483119719184698559721902437084632902473323403111030543444682741698025723509262886393990002771031200253118693817323958688230201916988776104545314501232764254352608334437889576321806313574418833662845243693441147980008993729826943275526683425543382181194236596641780464076602055450223719145401310863500231814028066150369990898828795573149928490734424488093571141989361146562306303134014685757747107513341792101312371598579365178612793407967396631384523396014604961681879058019207781515415391331200411353774341144169368524328962708399089130018277643047795862756902325563380081800695144936090446605093008271390717609665206227512131913851669340744344955692251077507880671657184259649335993696770436901322050238506470634012556298652167659778161314579427441220171663828316343054341942956168475215239556102263208650918038001739451373330304053008235446320507347609276424731208839628815704688438618610296271883247589266988095461157053379886472348684977396558859309227805882414830404576921737469233964941425655667231481678456539244095385307184464995563714232469240811220383403188955464534314831272334884770164074788401726641045442753304773536030027899208793867885970576624779841569721559218258930605934883609739605028010162306529231574796083223447186116715289230695191608790022783999095448966127376145335505458271074618101897681526749605537783533424474417201579354826952843972995453305977198155790680418580255590849556185520577337397419262719735490046777010080815488985966676723635521742882001821552828586672447760691683123080027116503990610548558056119940208666600274147533771268379477461857814563661031722531267688694281775464078950094893490604922371769853531323690704049500586154368600254987492357885392414664122103774730688350733783655895325567766201017271580708040937291849173674034561152047832392971264893354057644374832316551874844758068121019777756909521698768591679851945605935598024190448287517078411356124350840291197098880670461995335930164267889304295229060315470679846973341774893042898919194404406369874966211613627161736507929564437391978301062971399883740214860429327010306655814380561786545400996637968908704504360641947397497069993118670267999412333614250374473757036576467647039048489645947701546355352695095688052712428958649039496598172281359052334640414353701025502850146749571856508040003691945344938042113273886594187484112714043070791959571497615825264820342622668069229014120079387913347005219334866086746743891908293049932436123680792430367141144480980069196232886499351155097692330445331344931466667490611144016860551541696732346077434689152647564355062308251028553631035480975721062362434426694725053316372895048070060642049395622805954313237608001006582408207876134934504227911602605694975111496139131140118841485721851689532520510931018967352855695049297310936076868842749347418704590414064799122792079348732964820465766813576442560662463089807335177721537794169276636006596967212440759842075675154635308580031293294232497689234637221663709188207621947993817808465023645284918411690667362339997296326639114590924995678221294347321682880462295406833190088517107539721716328699936576667751158309247487498102237683585016884291286407087556232909976886965089255192109767840399502760566369059792020208291994460056600166853674446118343628888853565850922570099125118473496770872067549572837638216227163107992477330212809848628596184856975236538628100459014617187408472999637877989612899671946743685365247993473648317810550005980905210406772801631817196317099301881571194512104638570689635968310449265037570178620820678471531497120037590013778685084232569471933846769156724134171681225836676078303618052250430482229535048405372695905020574707302614300487553935722248367001309689119347258913428945756281926691372040000238775969904988260217328401203750918034517081473458785050751945750468929659913768946443444237915072334944494585134705439744158221830936959333329364374757181760458381134456316339373731831207206639022613862825933563776229030404140959175611616091358929950831912031153473232435521101492451114412531905801510953730983094088866509401479064346757342569506673168244943946479695060383431952011306171459478174759418764369721782240382709456501902964544929991019703801322224313777956805040702918353925488015521251062648561894758565290410069337335210056172222777300792303425065347779794215802363533241663394734493307512294483205921552893111632796297045676695431291275487577650461726245351478873682000644877476229606961321017785098345260728391536676319444202873218784909310016043083896419305837693741975803138121697855310097049227479685024153438963191947556776529537832641909191639459727073789550729417917457940036992126060821041391088095622893748915732242031228824020689788913998473816884938944109754175400739222911449778726379925439941103931545803525713125072999919018400059091168577395546104713366652678972568177045353566432786337886138975744521562862807506570207419345319790651116513451009089240768599081622954541960660562539343245912822285845436496986350321232740926839411506572870809001570261380347539493715230186663194971923410364436588077897272660255517062244142034484346068103871571176069813023650372216968921526795990399637455334283288733842505630360661986112653198359829779345519706375841102346341959122446140909477695237851323291209983920823289701083495154498217128485346943515965485644137870239716570807991471723310686828863631875509099855587311262827424486826674835247328453744412644537468044570416297632661815364729982797192082784801464983476073990738089605528195771884906200300511460285820225069181822349772983067571750718336340408420897194709811522638028453575244197670462721696479533678561386502456160237823714815422810774755981121139494208807198326801730491294752119924357998344086618488109522165316528550134050932674320884441087069757798582272125191841611869528008588473107955326498057441369056676183841126835295719864599892354281929648701530386770481390447554511846683927092466854860479474425393617468516583365899723613621032807518899936282054071272439106269071983888607426288226295905540112453092062056119009550322054797177210578878437973004680693135929613803525721339629205709308979891718077274665664500463583757613380541029306049832347519179108546482226741055140826412707578414699729022470904835583541453053340922752372715740012715754482849641782565456721700006887758324267191067453436311591840554831259097959912089621563568853499633125912121146512453449553997480190039858833190113431696622209616696907148557717142601416681911983063941352616269861650973055955963604721929534895766175573499006111450540925758080736616386022126093932965586386834497151950019334037659772468619581433902275366881203736665168096489259208739322435478695664888827039848796315694734951215665573019860557158317731039944817581098758461544826946979879346268758895094975250351243860344914310664410661727020679119821632760772992902714585170034775254305526514685103770316186994388868044002355096634896156900051758986400959338510619675827531546976392971951105384232332649507351195886981966031098381541680462792173900778724222409431567642603696204467404876623961065530358282479724314971235782099275585758197351958276067045097922677793937461436748352170128618047245782505216052246576815195583608338372671393505518242371417346929247450777704233552952508566989509897788996929791593496265953645568914080955910245692599131514391607739345321154094879994611447514142515414763227916626289813615865099909670700597254736990066958400539722210778035941357183512334723959335521128260366720488813758434365646714246763078740217292562774394345609867570195819858921199523045219073604071146291036556148946934482681632090336928862255094744848420981845696000730196053056057139041007410924115585751280208726769434730528182190858887966027089278797182280277632592135514384696836607281741048123093024718844906963452366880515149042511116789557802591517395014194850878737278018346225817621304762213176266898415823035166267114589766693448339372107139850196500916944747822260714086715134353550619916619761769565380881242126123747268354071053439954915319488231564130385797970495774001890428483203285290519538701227043510899050871110029704186052096094407977158902709849184794548757677121307018583257097709449477255609474949766638507151807094174537366418521190168646394787162507203902933523639125892765038925430325304135694648277232886660676829103862312932149767693558336536738964034601760064505637641501068617068491202323415897590903972126401685475050232755514127175045283622843261759898952233770264256922841483016213949994133983546140203308271865833920603118022989062450637252256539864147952199387457991776074335605205483607888448044853484905695575451054882006495393099787352547734742057114612383429691599415269716941568112983752154607091957428592566507114411086139165826412078661862235446029211303590613766041199769204159148031269737480650198983575832812104261730890969637971938036686050592400519872212464237149443564462878914056798547441347952380086814413825788057755260430608933516118795116694249828335507777435355116964524616810860167830425412694808151718591881118005537998711957299561908570735372578802886526752021570788597575878751659300951332949170675513096862441032810021542836899960017023231208706351135578957684616242211204055041878665963403042703546342288162272635397489752780685954995579169438907172080942855514161906196901397674648673340163675220982369628440737375978829533308321480634546712106400043408322933113095103764971697896788459378261779591139625765243590829469262800022700468245299694582641642067935821794835953403054027379246798184393016842723701740045940861978358040295169478014852966837209360372608841911781970004956801989540562571112006425608930008426247278710805402418254801854855662937164766074211150643120010261257936614112642406340293192422715352137382997338460040045875683253497271101413150551465729002023014254367464775933857435008821534500226159728525540416104893309904588919101558518061816451566670543033327056487855433141477565466932351549132473830911481381608097072083087828194677405514267889042684375856707295462245845618054563129524472720858234085931380210981220667212487228714832109230772749002413357721928475912166178865184295261420839101570159877918509415433257001737089364660604157319251410535987058055225237636306102308692143745167318309174364034571226875378779384228509216991664027941094885269521119961692261632744433784451672953119310417875465477711246092236531499873199782328078658919988874436663894549472480293685735871800167726576415375161841609927550693347713236183465299542229326661101643273283253350495527056769234184435567206476012706837593694135538809592947711712385635229550467933736469441733197527685256068470809144007458714745329516185373374899752460065606433939650464954640159484015726510664787866267776170611365416244058636278837978231682154084090812344004891542900159775272642562303829091130673136732082181099328040685309358772090156731704615983965554333167627937611909829167058061801503388039993774808131512176843577401993610827124287918662870790123004181983558310490460185731872714695208816722555174602759522062315915887209084712906760519044819258555506519541016474291908061841440838411978801320029112196578513994234331565369110237866984232976105819053793482360462673072663309163196888151850723004009563137550384952199287869795113268063375172409455985676686730089299193812048827772538207146250331213811526568287713618247976423500375032763617643582508988847458801639703895076361824625814298637002690570835996232394898161246430912174412145270531563404630056062393947234564295992756858264120802030197032393134183464676774338972649159758445588730092057640053925557296484994888982822114708036425615920866190419170485195260813463847393913865735257539557963883469852211063620027712528155296342233951398894626918707384741428981820946519502826944394719542876522632607235388278589376687811189767748573339478970823023963552703519507492709089491372291797544171994199869328257025847925522752801365073693216638293498122566252122207141746095878914216680175548470600503890142546947753192025652081955258167393970561716579419864706256230420036269005965996454427393765442752765407045129784804398471210541018008524113544165416188710245232495405505515814573520739863627985543138030923001143436940174199823786989814957435630191938871876857619538376964710553357796197569439727447337347635324731911441981678582548238842165763149934823009625843134541411694498921435482291206527444581271054271807922215107322871234106323619473602344590171185750200817970677833059024442995214952740166642887950811727504568863425529538695090196424449490981441104501321984438307982703321507074746616038014769167937970108902549966106296875768239859428007503086167058478933505939461448913108250995091751743384748507037346125434344668714421936728344082063254695430931624577305903535954001314983554527290774693662103404015549601761054060933080866186130146307480474636297153716229560652874884344362236143036079579364251173951254998561674155831763993388633333821364534036957412297535888399119352388222687665301569819529478747670147327509009096781421559290593463548796874697043190972276945204107748057351342083524321675602002292822237659862529333411848759903830518242933252415100724258019221114562786615372052401131025011667523202230411507454787453714488172897598195288642589543053431363264588468149227649866460589279543689428851504681002826673124750907613106299471067415555445491475978441821224070995332755432133541713808686509435238756538278000392966336602497130472795024957787630189793320212529255923397938580648136575648725431200614428021478547367334225920099631875376673626961999805346817474596333383434179138513579689958101820380679760807735837299291443640465160588025607011012205043979755631439982580489949710480603577965205831441680362183290502479325288641453550198024768991936851053231886034694782123207554210626955748459688411515616128305114053059499542316822934315365653206608469369610127447675217602028486996770918670404868376392612178480933529453611781805881759192974232350316752440560642759534747291550461542570521882523604370104429729530193214571932829312084105350979265154560679331610880913742937463998655399376285403877324103856422191555846786267001369745451940920073853637595601812851889684242834282983107142147231625164107455055685572786121348349517459741488684284415545291296058620460567212335726434059697843816609986698558038877395042173467506869375817413843124429845726153119973725465635087268650890262286274121257768472090811037278403217312231996544313912321106502955569345221712646939329951170069495966148491375276261420192453872460899687169105662966606571580388667437321804323923309783058392787671295992550471944429627550951907539824429737571869979098871351222581509105652303618356744989297741818690514626153926465867989387864375789851145864926765695203503375147481558281663775830092473976127900926698637775254794451862772764039637815777826274865506108523836044895207225714884232352851913530055331000921225019683176922368288517084929236492846111734348876991400266933969934104887136567135571211268833844294261218329737693330661927213026682355568359113704261579174836653864058923317929443828435947467637764683830474407891685468820276642267769559142432360662984826504156686776002660958811876447762088346040163636191602219866971602003381338767881193270917753484420671525252167422799589587768518412853743436252621254424674481392594397298379527623849293936307285938674729145476404266699648558352409137217514245769784587246276827025992323872784761236991031449519346316309039123770488049013917781391411233310213317001833836664372316286438259273515956639025498237271639381745872418956800222971575690362556335048395046996288419757543560824344872743177562136893592759797460870916822580360454716611784725821665096045826079304965468375154115179287209588175253662763049921020787220607151673256918837302607700775436833072177878333601554035266788730282684878924346966591437957549053460900109914765872353846633741140590159372828936866448552068869709455639077795026026137341417784242634023026263376248616127113507187643731882543963538890181638280481677083491818276122038965340735621683974727492049465637158882431585478261953106894889707631221064604996315867640803810956390078894593079177630349094278640672346508871462646214471381767379295054637168204614986893362620019109100494660179153370283815438824349195199381081135509940805986146840728959559182877290472612333191512796565277273073325531152369826378813926339613920234302427057352827108648941014010924179827569766240196408315716816527630653720622582384110736423513647562283903275572383398999497691876465999202190153288622903488690835255056355418094150579935470679106764545802370191627503808159775385679615760169244613785985894963132756719275472272918490287098859929553661496258836678213332313214381308120956873533766738662383714585505863399120804083682531943953206506344788073836144930601330598269269451293544648945629584616131910723050829030591368714737330343095113423640402470755770729132805959527943688587256100467093499372512282957779634396438643351301751037694415185155770805849741723854633011279274798608461665196737486783096057941963382694966927195766220519172551036741495299895841727970089174272356268930148060771672324077172131891580480626761509220977492565086937011468687342918913955273516175313041895088225863278958453415966040299363069053694773103681773196782840353259618013415680151473339270351800685168943343222497062461763394055452321371982738537495252846512035062104741039102629971284800164964653635863370203439292553016545355370222651227637751063834007792065415214661887493650965571205695208753621220651775467680238418507595704062178555558859909796646721584552543024398817193724327898874751714918392541059882673786911180059299980336767173051398874242140274705400670948452463948430240710255429959052067563490118092115019941132517695644680057655626712908165798332550128824212624405401277542947974462762276621354081472636854754904440338255673999788343224539417747519526558757499471157321097897154097762781170506834963056297077312526321573851745961528469523201632491627077632125424358843626058366762827039625404573693605704664026879084152985893853600281434769631567887698291411827275514775735849746428903591618436149796332679291693641417453178444851033584137198117109319131083973418070711212721530019968131137570960688374243971843195198492966054555358947636679978758402346362537596434947436914092492434000433202809559765839613250531149490986717064590698192999980928368058422291049455341001389769663955835539252839574661657611152441703772575965590903886777045307822704360794272931022415549967904182516287795231792378610468580540033833511181249559353694275165194624669876310209148622023484411017293200830029725322062989677510295563783034955514225582220092289066414570540986276757968712741955467773400210095400852401975582956631896061644843213537944247958734673100147249103743867889587941104152698648507908555070402508809398825154455565113879176932787692419102403376951871430558964846958570169102926687323794414074079451095400901513434655021516347909295950152801642472923750029064507157731338090155245443831636425446972523307715061366463946241609887971645504474061207228611638378739066236985910115979658169209362107911428533346948510105790736940575703352235556652503745614568301629753352200833908605618285861566817057711297520154557004254628320017006887631420075562538469832230525895731246654705694770672437085397313624074422468678956206734379459158352059342683330555148679069620871531757260149352660773013810453414332381246559285702769772991638387382841203735765923108181885821344256383248265772290598843964761000964917124438904827929737563877251295031293693338294044438067818959022436484250781763966303583829832377769628658052383611427067146614965282869046311271441455126339646900068295911317774209770156869340344075047463622665316969928376142092999499512360278634140757424294439302976240129136843390606463306974979868613795431241136616488046318036765172015094020357844039033262335617877519382363571447269619800118710704395595293519237569039695792614682945235381323909488350060926687175384827964908902048748810521539872191673009909545818725111079624944926780338811102916821571370078489492252459703204408383408770424511148543462150795949797686879479513226078120678121844885963186067072059306432655382432680584880483561514791812762468532650645181198813808999929720664467462245451200261410329635922970722918204385054820538267336496010647875446225174186090719415877835200420029301635999181089935711485241834058790777101842453959270078787128271726682504620593612190134308903639267318973393916375402849861365200596484933563793834541675166192726047522780738114734251924713534843025642135940543302739811080610749288820112117176181879013725397144856217904380895642326901239493544521852970396909298294940729605455946945709028702959042882887882666293757900066903674592797478277707244542365978372678620527810372272078448082047285736370877994555823604470575055272912594635644120102125478559420759270594836037304078477433873806424380406890060427593843526098078169954513847583629514482053368820360844075947092180022545066091848886437094859896318620878599616909301369584007370340960465185986019798834579752975260182031734024145325491681976821435089753636442302508833740031391257501980739427156295343049276395840621184873442510361302530286759600819914360908309047140365487398860113070440971771859841460573349569129090435689903026424911072759840646384465654669925592085390278449724490781796509693897546578825790551430100412241157452885586695539092588970254708360963655294460986440900475893080049125495434804181800939972904999827961710902547480650106599610393328072848886123963798148839442341258116122931134366584165471022972906968364941539854188659695395452257400662310560463414352879051599929896406747787021684702245942806109128501179218375796164496288532189154310562935663422457160298822049896047158154345071114748531852663014332598108799149590765505080796516671397714646832334745588451813177920170230375432118153828224211473016310306237269201002798889509499016954102880399431214800780082886957397628064895173971936993761206349822210793154883035127746654662281922950196419805339497850304901504631770404553524006124659369774705876828546342038667650721330058742711806142346578706404238538014149169138898380479101863461170643043765940689803159082635682064024036860044031969200803936110026257003195576507041765911196796340856222546330629000016175033463745059227977290694793870658022379549664288873637421288047359056299167100282838536972533038892758428870627483113466062078865509555514453683710565383381612743179956056097925370313820732461437737048103467121648083694195988003551664181867506786979812181875539277034498648272358350200865681392295534918741649683769235624314038564062440552696669287028264236117360692898487644149391366254449039490208450191181465737054779352605455104554845632218219321877672814150651117789155853529442137569887251607804938192595249749706273994343935303888664939081341886881840543016191611142845700629642130834638144458712215879211411291118164723643201713474782519150978013341738195692478685557840064167716146833119840145488681164523493413489810702675582903847529854487066442918452950859398005913676972866357644353254115238020413043266166799985908478961902234619103905664604853610486021276379044556024840958210408785768407282274344747439034462769507595063604597660096453145760585669241930373032839679337699858429739859211255636432862718298769676904510898736062824426981649885999416023930717792893093842802946306436008727106548972091968651074101153604430663519668170840117887333859834039220406359013930487513808622421709312590445042860750019979368299358312782820648558108627360429118670415802713750381225842812327816837762958551041001227244983481787937700369174440640432000627367008937268676187141503417206811066784447215947145387634936947106921080987739757537284295662488833759223706910571953486832751830622827465614460130791801035894553724770336491036068924222249038388931318762297225193156199471814409700652667450012357569327733221014567464266892670952516329464872700531122060967533372932036672006633920777021255302313757201765964416054945929457340481963164071634015514915600653921026918702396783407554284684743069894194583973857974107016094210537577138067871209800418975726167702496196174785190918781900121272051061821888849588625177029459062958940300554791066892002393304410092063655551076519777309331242492895906174052625901010958012697410134510511044829374339938645189840196278038405856252524309674516242968476893231462492025810047954976987141630991906640913802181895987532517839959892558753743823525322957347286057955989278942759632113233265743149024760202564899304079652459552940747381583691852331226713938839679254510390114958607992134089148382076467759814698202459407070947231854120241095252022151768566475411569688803701604875730778347066265266707071722756062946541451775352571563427520316170617717085747955688238917737768722096126103347497724996763973527570976991394456347201101257091543211021352165662975780588428739468727685467775392198796974912525453071336802697046462285507670367425034500615878376610399969699549598150019400392348287389737781812161468535887821346510604965191820726256955086235154937821670936593313260460888762177302085921373244725971065387699874131033131706651494768312627084663397115222170924140214461025085013147755847289344564587125141508418502662417348429117265348236985146712451546001525827646491523079010815519015712526289517013906754345714979038315596483155889005369640944512373391959247213805514130744982638248433225546159762093183015333747320467917312018467810644009510230755475202219404475515578216256888499271531963573886285975262219041350665495942306956330443072286276633598871428867152866271985633464946526104785342613130482214400576237617369750277015234482977519449701723078506867981022566172467728991030729666592393620557318122422792825355807175038943735782102850832317155878704228970539442282383446259292742310837430500924917212901744564331489784450560749520623616515584767670617231276599860873620268890269656493787856206646437752573129459038059805137247077879644046183650286250097429719736257370248033599174729820369667550757121471325301632849269337987543764043648210122470393855051847131023818224777473334971122160201751258344415953428313431762800968517976618853948563788145771511680620620526694264732871033836900867617108751328242314574104462124784428878263619657695293388302752331958290722210270563791999279990294564655400626764796400342498509852699647895020948803992110945454150962751292066906727968467251574020343344756787418680819177248907125971102510792418467196169877293784450970792760224140456399362112002077352470986243144122395915613857895299763222128220498038987821475980035786923645943209860597581272045355014586895545561807751992231753761497124254861334790594055839656032324997786912018085310381022279791727648877302504078069373368717654459376862889011700126638806213589422381162798352056078133447806038382270347574048913780884269900549689451154499731356802214590500227177586787983180361640373667512274112127900843863401240076387606766495204436639616032651470922291302400774329766022769593275506309407483328022876791650280770078637648097701256165252318615139051302974971280605751648942485139295789493694570235767090835453793658170891352339913040825005365456608835495818139754166143701373617856967641278786141667253180022765475576422091115809316058029494607319315830266184093226841122991685853821300432203903673231739714094299306478869582368953540125297956990068594607032947448995547790420894516780018506842696696713365296048041300970105063385336351728314191254708820416705021600160334376904632270239893184969230293435483679614682059315620371473080359551559223173889500905185292849844059500883272975751384788246169989916263626903106465623003417601624359048955443748752711106891067246181891516930935892187640630668076894248044212026119608566672563789010033583557283772364861323613722157095587181619048665275606476809226376075006898936662471121300815587881138875212283465797231509343850883345746714139159379125007273410384164883461546739928699249545089926315691378979441250805340689972593803141661759243307919950141414224921092120571604270664424177272991264257075814003914947798835079733597113633293181343651470776962877357319920096064673404257749595889509985526833429413476551236231161674352455383415989140257829078502493086009840111891822006794810949599073544760884738246638575235430243065895795540618645469027269927042559345400673363946435397855456402184346802231732174283365624602284918244836347679925089572692991088257531312405945908662786323773401204927260437668631589047814302070760101082427070330784568817341147100519933486214977515530372882236369323697445391393189684556034141054406748083603328467097842995843060751782205819075736275559036618078649850029201516450322398985992771742539681594654591479195552376736073330725058306310700023110102059209939743039786532377505143620903064510414778819343930849028033796095012572356946732331344629620120436415408098424470801986259475546271875259697547908582887598675543815558620423150965512000355541548532886610132444850536513179235850220423452113513478029012804272627934033578467196214663470617453568442024673469227712080510374613655495657688332181232734722000338530674755514454502857985728351330736296794953307573313755986724891761585612661840881562948502719085321559146813608519733826486705485797111063794127874333624149719445016217012438233332883351213594047567421336947494957531055671102240929063440293218706631584433934212353379719572648906334360911149253600374636693717049203447485335397542861353572329460170965893122660500590120898384653564353934841592125469949645762742662517927974636838278964420738827073486063700570229554066646862420903143908490539617535654846590206977469213847679656896211758152894266346375034297497804812539601363361536511188964021924381879314506285832325827884262027811616886519712191780870982988435764592072981544098595843013486435651269759231792035080522627154120213135651488424688055913495841299346946886169083662135725045375377032892057082664636877931651523205883791590230211111224863320940123796956549089607703003117177696906676210126746940831355160762408595537463753989737168220162134261497087829136854113652728288406953286628434121779166463091246048795153109465454752485505503812517364846596218408885009112843379683620529287892778985345822560920803710956120005038150584882798388238250664140496905568484006946085936496476852345948617463083602810035273790252638552975826606308786470334526269058038818437050013997614716643773475858899560701180266884716239981540986496206115216565186623173479907977111387352886135518245675311704834977722293221244197999659155803295200661026923585348848020948444406100474600263218116777925805436835857897050032529728502361227122174989531932357507564301238433207683526671028337479485857029723146805095984652420454200435371405799007480300993184948690869681822001175654779013526193588543718828553414127793386182383202572352943678702155680635116662560345835734652915966666935231842109237763012688711355094942429309691081709013372790261956774212850629681423990527404361457836103920278311435660033921432899600321194673441983839511343507236925445371967222958590299960084317886951817808049013388879477988632525604241030908166799689419609584371901929263597660986957757974865702225364819518779342660447342829114105539178175372829868850874109176995219417237531631430918824245528292915887762433699909176626359558080842613391337778388928551027906785637350108698414388411226878288212883912286658726094394775738252884151318159780007028386805287936010739101306862344586161892666482458615865925597731025530343504791289300943729640311199428340754113936377223933833843109205892092370651305475192122453190980493637750551535060660001001814203277065437924741049245200536301511188545029313990666085169163564404516022245437999759203949764869650271522847845549616465671397023225749057215905046665110610586622486819599692142391395562669195460601772437507179715458042072102764876250505899383265761070039885411164874017873967381440790506721617871076172724575502217605131570280312596970428496116956346781354529527373730582261809182790669083232970791667682059726140663802770580529908752918243088344424193466201035533414690981853961879796632023561560724591659934110895120056296124371004218720798801401988079859895376257984319417670646664054833097548991924257559875411077836966286530861080262318681255710166265409673675807023996371560639068110124988892021493300840443557245108362085647991329391097087192987888107623785902250426068812273586287582058419128641403215352516782898447539366874002977208750674678486859438862888213259039472923433197261820860170134711002431467421363756430839151425854009992983513824946511666612768047541089542559703057383106187912040011292913135266236927324853105692364105989193577729904112492563440390646331142946413338470332772727550545066580599248158511260124724223539466841929493034077876448974915381740665006835690445789289618690008822191436630299823395736850111472187594311069474086483852536469437062199135008169020923407918086951578065743373900784722551293262333296697450565761297436209613831353204977920018278213593006598681818485470314307086801972638199513028075671934314611118421970295922133000495094332980104925153091219442264423993055636603252118242484344836474506201001554759846648596363241782167589347119855123862083679688644715124429959855278534597419689731821527028063485408013987320391285729367950597246591637106577568702525078798069312267305497397907180844972451580580271494269307044375924007358205581144972250639121057949095579133563342278273379404760057008964186256848063148552071938675986701483117424990326213439733691383108420513190165155298133956173878778880131264519720383991835191057704775485267487445643512508019501280724140328882473515033997483995987714656904474111967407166224693248414672667246943808325127634872723826743640388784859385699348989787772384171242981271455196988727010187717011962881346592536254635303477406492179954468123264612005837922995879352585528690158749586154784207822176208400786359039155970620553620288901293103459217700824005429522955466954230738508042214518794450305381636485300613164856517853796785086933110649500221551103755359999548878201724275463042857765598819611427193048094331994586021319775824447040850344551516549315211162837215718548544248725011958884674526607720229606898642471629666154371506951211163501300798558433451943021937292966416512937548594202675549148870275458249944270043228977539303099988550095230307979908708412306973361707018772680392226616267981616986433062489275905671585220126992667315017382463991090714366758988050192539728512843579158729481020627261902911380113857606756781940941003205750144364976674998020286215487600336838375134328851234559979129514053344637460432754400377358101970518421532189855252936719105655704571379305582331161068094447747275564121039085347526188615348155753487889550727268514906558602545456069219894308974374918899416012349566065276269919741196631675518696196249535869880609828687997556616720763767152491380386629530430614615199628731913199835659409265139338750086599275467805041188235780271741034855255606187934046926254269138708753063449823313669721755388685440386759546482853890527179211796724876568776542108358039956538210258489544229335405752342767674121270950446858155222194554446519888180877517016042702984955371916718595673848121995312140075782230377900043863537442026827476221009496359906822709572271668307901513910640715228722009829811990113115128408628165988896734499651492708732105749241159880184262941019306112176016474681070057395464175119771849030966829810586737731384495901281986772042784579691303083963252516738741558472352739432671201533584926609383470927169313234028900870426224899437223893417354416931003211934319064264179108356760526550173322407753850146395454058686089862285961247907749774115281705045893529146499236280847315240656698699361787904104407614226402267476677378006718759838788054378422114027067348810704703995135772506851015817814174841289071605314574933808688265820431450519348394936540600357159814347994589693958279743876217702183133379386753764450807291812286952739334985363986288011687863458409901131255931588290526097003678916337029172542751490425534600159317583311430310512345239422219568783322974310046303613199511917334788689409420923895840529042975239617187903826614988633184430388974592248359155867990331911497369874944639493711411018684745633722182464992526243910911169941278537188722135780198101538888478089830995941900618065631813841277447361025961299151599844684301631576988763586147353061213756044955691376076092414150239036662204481049276137957419385450436536255991874829797487483143979279608259046186184970790647901531230501865873482294100029280334479334440968482372433382973021778874515287416267418614951467034166583276571104004879120893260078033581366072891654927860103709690619649546701221146060699059130680077330115801898994895011980091622427195061503073190915879684958431226491301348121547359787896731225200641726668551940865343774837103226913189625439413658165940732834697413324385755325083535289615493398233142551387732291121332992103363416757217317411485701513505939189687755445343347085421206923301570890037945751486909278406600473669133393648362492374052986419093091879991348134447195108804916825353331788321950903503889684383035290032032859720058088445819122241810207744247369371361092706322509197197640253376490262631312025966203162173162734623538987389908378327879933010526638898380219007018564836946432779804614679274386673534245824446045247852926041592810053500115034651436034269418802490968593249426965288720292103292148239416748080889950090661334153153584977367147540363429753731096513685475016616954036657878240810454417076906854714542622168367699635292288339214752881014953830998005244312856287973507375068278219871164907504427627983374297817179202396789164921561089982736007757648277389080808841490506511409980637123661065302526939649758338484668885176193372400621448961239237284232505891698407575391764164946585954084748392399229870357826483065189877247143059208872092317133089423413952249941659400566455766036615994847086207974895258057230302955656883699279134675152180601032641884552348268547448815223400129156193715248352500876584140330473095046801288762901990225002059144852217100134021752039097498396494562861327670751321022180689206356216093801399993463994952501660765304934855998183402909532782202499883686503150140487911371719436510027194442932246460211529823853785981311972076751704069869587156435126431461845253075801859629043956752813373087478887449332618860051393548528995110381651127918197564675529677255211914324971139251159806659874995150578969517104548627171575152285682586543483242332640712900501114375829563493823162506039940682265414015477832018662460663022969741767290727196662931152903160672890904921651971745618378266327954626388946060043709684644250915467605548808339222994377495114798239054433412532779103469034701581057566477780611238435607771366322962074718242593230956084780960696280094401306015106197517931789124179894191132664793995613010266658308661376049840656206360367225314934179434707575002199996186063401967783692816744296158399689872836633588146320301991453722975330648539221848992115380227792420752654890073355938140022488151372701285758814774076972224015147601210004992071558763557906137712965655942127738246296427122101969442137728897850276877600699453201436643421312286022532506427596709305358362580356273096434696665526468372199636713779460859348216528044107802875677194871654091992644411103196072959937988193328173318752026579168406230748503480032965172159654473329231520700805047985933703440148001137232644751465907210175250309661608960396423977990734824007439783636765904565153840907195695972118587138929541272820484257398604498338630162245849447472690568055633019306300503573142446446787702602395332860888421814409968115470511960225539507595403783096280209573028919384630604855416146252859372657332043119286776655876543342974358357141881018456029336198172851777990191864180360550989070435736053656868802906730675391551653359345421853691374983710327695918779704691115995880540742820578350321809175542984425549645947419623783748304540508191911799257750954904881473907805336628563717841007508914037968055687719865866899741410194795154719655839855068158814966834938317134917918607342104216958784955918929723470436766290813452821525621643960777386779673446957359599447195827840658272966145159352501872347230120477189518740552175366548937496893217693162233637053239743659869795973862873049963391845510052442654883892459290406684800634493202441671504052828796279632594169782488844159444562188284794812107126546834850486211110985840149390626155087411296912122648706618837789811979328575199255371361159378679569602542561677530241380899417403866681302875774746316264862964860380086520520299241630675753100625484656235824257957656928725756187278448502536885785187909373260271793522202264604195325316443283203780631630401506983224414923994935900675016463570921587689477041430848798864179195103777878248293822939358271901057899166389034200562111959293008191777601604157681826603070174939462567751243734354368736304603663248454672567343055883198650595876198212233324991204457756943980111264224690523659178376203179100030847718622972033262512411895529052834039838562342443178049027029441835279535661399786648642711288239787830372570075137498855862972115712410249703093557242172590131991514610327937564084390119256920311840836303461747631900870829791079968559009465989109313083831216253907358802891425060174848645593558509913087636596996181908432674146265653082980450557325640221110001334161175422322926596647393401583653327469595963190618979195975402216765602741728085152841758141448511596780676412022730067113000898840005432906013064963818009789504177478400560306892182955977992437783410519721450311312673630827982357363131835996839099375628267760930423508601825577777982697069294414245616505032880032847653625600663930830723999907799074314998029973516347584794407388755808522176509321381890614927285664522861541309333612483593784666602637893344163353647718114837664385767933305919693284057278403863639728618425600948645449256496440227187551571252121834860594786559585534092673604973356058676492567251912632457760410175132084623338952805450716840665563819278050504834931281434628690872519454176907365127456534194999147907252907953013279187787715943010568225579168774151478807369820023336833412530025363085677087550860617613114276657503526923904972845442155242884895767235026845543015784229291262456092041520808770340405580280502552554029789962284489986260606799382919449241522358755855247474001385037412414005782621856175683645552451956518802071271377850567494984555059894761551450418138808930158810070164499147239478363275651655162210795242165421499261679264213116772594614251302702784321206802845527410210254330848916786407660949368791807299518008132045270671961800375714338130983220822752320094856060874477888878255621538008081323242046128777304459760947210182545866503390976050035744272381860243785436934021420429845700713945102076018632504398487591391380576154582536408276205556367104032622450877827753380041087215191034216864542078548806859353785908107971161147729827618417961288146598079994085013792839303569049879905568392482135865915590898901274862322184242341129471700557683768132207027146719322568984882545946070921207756296518347646459893697274501202308909478676352389414589605326504721878758737885037851793738837011455961788377142454496409524164517032807800876859832769297709281653720727894272110522779741082457334286349099935905714958880588225706160390179824138848734487029077533911544559087801930432391293020433066036529885073153754463982065311061295522966043530524135289246225186395702078657665818460237636381657200475538182267447367492602228589101100098140164671503877673520155978656693771962513465621820506994464641403019860504335143931664029657283867481399020820675659117702642257861540954211313257672189153847772121609317797897663799639446815815745716132963807070459877449406577586899514628568078713834157159486572658569561000461485785070919769031794728525552518477029373761525633396841279770271177384840268958490101116423511904331881821755571422849957010404533074067759349766900498834456809150486228167872258615700901293965818266177061643055471976850871775296354430308879358594367819164240995809328601963662495384789516326660620368837069258244246878151448627459760600110157370524042502075995167314837387971003547337662282977254704737147577269011230251863699134359941771463544887683688316348351042288800262655087624836715920738553991907769345562863935827450147926351917339572552860504904949976052555283862510031535702563567292853822213889163937851268049107741874128526187127966401175933811643793928467133495274783063566660242853692618619037726836691956642806971484861414348863718502294083915442853815187163704724310434526365772564891050425386328999894998090640468810419389118969087388975193585967237860241141424807959835836171623312372133895925256164593146554177595500391984740794696271209513046095291815110202745563246145118032294464923756865819033340616437259456779971457000397263540316666982702852437567090149452353099680672263812385381134743068181725083672831812407762548078191080689300237844691549426826266575387739998894736351528063020295285906006119152451727425367007398361440551853009693021473683089809525239248157092967383916867245353584475965254958428450457826608832547631404125385914469884256703028573533307539215506682876564407678520602404729161665928429845975085788923088021316097675682795287334595718871570427478037312792297302880083470960136024521918685745091124334368235222347805863455353128915157154450983804385357684193251644769937443619498278322971483730625840852325003501241807541027200395087707524045485658259409477953439800502019698182227112601747280960813568712699641339809469590442901964279605854088501058342999106891191703105626359180704597580759569479962071636912880620849656736854560341095653127352563718310798062950872774221910255301317865687947709369032323437764369012314509964999784584523390414250831828604439939571462166952174239204144888003184220939132365882492186799935148963332400084371055803416659559213331422588482895546881721149539471112141941465026976469098194206600683558147003473653766716675535654037328142833563646078855556310436671977191597073140318168253314249390980661192094890319905617865787330940550994844175837297538796138777250045566147100616629029967008138669253958604750065821452168319809360153591891658470365895475638431450455817597244593944544577317602852282899797527275974640604960045696925194990581662588596606047102954447358030514686044623796575647758271168094902645423481438423408809639243059037316721786543296202334515084569940690376117115361974598045993181562046223743588399204542981399798980862817023683879411223042304760056692793788782130751431931492613375286360163692816578244338793393042609414966754466662986577127755285546387495462139986258300552913194438079431007321685798985370108198821622076265142693906459929390297687550496511948431179230848103274724817923777062650637111925645113698852400246462777086262441934718749313607803174629593331805386832113209963416871290022749061214714958611767713303801484945758341804159223044787219124539868062815062302896841749756252352060946951541445322793008572222881210282782928800323399526435218638578060270687600974729385647636720458286616849979974516901012143256849419858745545866055962313202620113258971316435184869791302247947244273543249503701131820931538929991457440428276611822881472507191924084384362230574421803370097154850001686553143076123670406526588324478016078442756027328862683898467001630727360316710483796093217236498685005831753463083305072386006427154131833232864521352306855251997373353679823634159992662609572502236446582319766418158444686257892793383603187453080614474728604767318773496836908318369065395622771352338190136294633050228895548397808580451191541342693873878124340832531077493356748516635714499146248947604845690303351244769530327827326398674927994148773755166736201044628579865925795573061730043456256226409574959505004730709653315476762193026116452713174863414399743377769076249075375487525735149555656696640623254655373261939281976003897880821483319152587892411417490718168876877225665738089116785455524637153003608972117487460490345570506313835191505927816949955337997751796561446961281471227288594957041474633900557849356433562655338695718887183830722555260626090540724230438757226462398986264471663851127143634434971200440609394825216214422914487759300643609572279790407089488997599990868825707909430560713393733049985125666411714464995875929697459488671261289380746334627782732521347492367764125980286639126942027899454856063902363106545528926253220356396450309895257935635386779898607318920082633239227873926110573819088870532928686902792336061240006973389888956784490163725048448928437371942749451983358027953698661536180746615673200891206177301927748636280563806692882959467458411149207688799379121313931231425961689086428929967217124774262078198312171788466297772372244442050376589773429724124256207838558919351927211433850189000232655075008497334743581158731362651927184954571163133331546406824185373238722917327878801041023205074697379426593969036671770833186870870088502625623609720220978905682716895877345782740020797834620125308119284971801446736322619057444558621300913484581840401706883648956509822085525005578227556240119821534165234674349921842522308743710194422798369909555209271748053769426928560620228368756637675929731411846928876761364808477409334989810079996475734259378683177115612703551624997862715349880120109833832074159634169299038211014736382946928462235848561327862462545849162467631120663440395408868365358748331847488884115111618575605678447256628146468804779389854816037967811546571943183642097743976472951920388736308714281171341011064580998244402521879902162206576959208307032300498657069169164324668186639397595540174441589563616087514209363795870617766211802358221781310278773077890552087712584226176102378613232198812015574408838373614292105702913644223812194178349862725449907299707121657916740155415008771737377495435123227091779779359291270442478607000926841945734013076056934010533233861853775481576913878751985830779369806489530894561552942185793673112201104409342217726027225958559016924569914281522395458768904075800092990160613613555050666748134336286508938673235801522500732681945210466991589205809581131981418812041383878482589751334263567854898995504179185694307098840404906735450930961040228986731290260388800462292041530394265701512997013721213731658728478969062450681012382751616815803348307567069716052473650218498426752270389947237954212534660991308702830514855064101616926731682528187157507646495403750483223054142876219105321537603400475657884107335468324611232775956899214921430390817086387259102255387639014258653523918668195660121262698473911025272184058444921217651089846898120847863889942410438728989203639984703705342602993930607903984860699010947687838377984613773139611926875767689050946737755379499491698440059236218705023022937076434644974655124571541392652162198880335070795989692038320517178047551928714897901383974863162179325646462915834585813003057987840390681090379523695728298223588912666374911930514407404324987467326834477377331030139368385723824287905895860767411273451202523061536039075267681056190180673064565153007655126165322049764779504908441687858564418323804130764112279161289197606814257064567353183329782815780296086722416964282398185748736842170635558557417957379194961213879825808879338012112106078528003971383740822383099742091908322176575078283646981577824216317803907045326948686761097133897343711146550319114658459275159729921139449165041138464932258213656219755562350317311024193739745000872463596951567445316427710560983338955047543778705676042688655759807725677662993642064418360214991586994410641085966323812885338030157218828815042817317562920878396521448301515084327293286765657789732761775613451205904358031352481071264705952021356893777994870834109708287583353321609552248534862664853405903138768902077186445754818771337850670435623615562274948714167816915480134781315166574006734636137017942850360438625562088600411657605720654285629071936569917582724420347189097088196339154566371045702014129535031512095030919194251973899513981416821959231828891488398841831266141928950005254815217136525774132241453820353975276220649851095035387604219992651843617044954102692612342749856161177070165174278670893845924954896173736965926957176581288062099650809913875596055995601785951547235590695717352000324931166449275489712331112078406845523657405703368889588738791400604889855403156372394937591247656229983988824105755391502299612370899359215437147986120368931387863964924068281208484617397321322199914693972447823912753119017794846662475740143438220489452512516531460422441592595921440158465636532127042553450251106564398312911947370118900538263368279991755861183625947339407676083914586516218316605822358555242279834367081410772687350003626459678576145005117851180015567335194378802020853779350669314032374018935998638589422445171196340046481398069092640807180379525661836615511982375161373975915115934948395340972338624774863085623539683172847423934493284111949103262301180008071852359442894398193247893467595716801207361940173829403351978112780680557646063539780620314360595340368535575892399781317561057538086268196756699650285144425875785828832469311649468096948428334276270227079902603377008150668414798096529639877316907327413526274258298821844240754890282112188822890408767463580891213551604516375757983240868890680879973218718344661947639365322599969284142044209526979745084227715162080595288548674350067117754009919553472903563018570540180664784303712877202714073045602068397375248063579335433850108909077429138318327833635117362182499607899859749698409006091206154251840405713429913977694557346603696891951777859343373331462598208289311293390103577566001454361583892130980051861248534602396221109208280394724217812906080968118348017602378283198275508595225137309140179416649739743808411995349478830085570355981992765866048489029141695300877553356126833740623840664653813518949956286756380045553164701921577780292903183855986886357761372228402867876105016475253108875600228416615953485794995914529795575490054940288003893084529262813135493388850580631326337890362272529010682767128734220094451829742117394152887147260670457002487971412391246234299821633190745887070848917491488525789296009408956696072172414446648039008979668481833365080234080854721653899012043507501827394666538266681089370202193795428462283359974664588980854961670306756681514202768869463408315427131385442284735463782604344977085590015076010468806873767145333565583369523520773583586403647726951419660878241970146538535446442185045332355015141948783648084927718706651013199186164635515868300203125638985912320276594733934166636797916164583587031445587466399526392630278079682945697950046828759988660893814380432062798655374973931024805269657690102984966322356232532260506411304910223104556546539419052445406155359604868226050723586163850648264922551301983937092727090803705632100012582395772817372319046062622260707785162454179661827958918583962360085061864358893819564826640184367362018229879884984809172223386135754329113551819103347499250343057504171804923435723468109021067681064144410044862019698353901199408763387955593447506547486709739862020703308011397003376006489750739952412983294600646771306415626403798308366272136001215780039067805861474193116242199365284351151609060340551036112872266449424364376235216437524448775407961892920385764048833900937779561862789429551156329815211990944640926061632220924789035688199986436123025083309461531414783443321281569348749709053641328893926051489315153923954747324003846623510895134542858961670049434285271859692885317189342200759429588788783273469060446717814127273459649764667391139824308294765674050502213306318742595250221602011078586763865952295268751706414865937143252857845155519589030877264639879415618583224954201035123421747125739790521062298224461309270812176964047182061756415045155412352625683676505638689142615210395925106258537898507152050473626875411273985569369234992414109537930471034386956017070641911511789224534150097431882726721568740343035391476396078029559991868910208489816459828176810993943276908214470831949087287821113886644836565057219973399617570811854213274150441502083652336026589026328863217817799548630169628137258912382091626290607349766244291308983845816678517753152675293890446875984424812506264914101205933042626832195903379318948671502726751667847583090596588118627415427552296538277880340983817397100196205791588877625317151050656591055029422658241428315610932890398176664200679672625680995452878837803288680995896101897501141368524546218551462059729675167556444393274818720960589188019644668615794167637389326250532551871649938833663779312627531090605882651819600375151506601698832287696159923505778956686701320851293073494644660401849490966285899878935892114438400376453924956205129325711053797963835097665826110662037218150686050609651833199274559741318963452726874528876152457223990442994592212469728870048990921913205211216772475561202857933529491644158503159954041305745396348313684450834631768703925280440625975251168479516905198056288045138663708613309479855711659203892717919470171860170271077155541880169188559872133477311268489268615796488473628504867890649610230092057936334494435893346695894585798990141934098672352020635206443962049767792947851806623917522274763217485435476017270709290839782027049157292945767373002905515004966203178371047744858060459488937460664984040774725479165821910770495947259943804192028632526219169194437895307702429448637172191738599283474308992102432356420776279665148538278170314318589086380125209759101468119425034870647829190566241204047797550269592958870275108961835012940686356648545528583248934932730533996894363834410466595846291014326670306554274253501926416083820192006125847088701339933273623744875151822862585092264629359351972521477016677320109972059944819292530109390464318256624497767719736105765230074825338991200006822133559627158917923495430816315310122417731841074371210017206905602449491650482711983257292439599451910751408009349614059933248918407062197248090292320638319293281980202246185986962495285650002739676556667927441866415422255404552583457810942173792467331415404339986774214301044542146667691658128404201566717549345809012420917281683301570833822240502274157134535642254844165906468689341531505847554858647801910936715887827416006432789452817284372245167751376331946011565433049491361935817409465123350532653680366350097873830842095872784353908392775549413045744578193629206414207188651547360776218484808322983002271089688552513239209534336848174757373535372247892789126310437071417209838211502328865523979229306221487491082521415977963427814009782097310974164926936224036834150472157044852484557805867280938159977390556639887548182549314807696315079891309291232867758013475781612802683369926766070542223937462731666211184692181837846853932001873364047487400944547310512667563916675319493902524397485376684890328097259447075118058103213323490811093598734323362829325137926284524915311084818192904499055660327728361966940479428384889097691953028527617594227963284081436628663183310524184307372347055497318645507952343217036701850785749872781943782249524095412237637578601997031767107899424545103759507833970951815095659106276238939346473640560470977427869693709265340696893904075630334904274040359947168521932850671641098033379097465559178595162585020291188793835092849074136591543038233828731401929417281917832103237711645094105834485957611236295077355189393546776987391200710765925499172430704278168509944959556677455276935599824665646607916038490737842984872971873578506962116477592965544514374329197351831777427236685641359591659759889020839480357105479120808852039758873624995790241461010299510275365670118013043218138913173760439143459894068924811867290961945549148172153217229514158419160788216407733805061740538493051757527209270436070598918850446689943124471544330277317057207078550471854203175996518475418433617412196039256577157429225077225119723548073586561229299001995785974838044289499700028493479047444349560668341294040175495274710460336322702974113410832443689804905110806721214876353711576330451468065214065568003667602855537711120594783380890618140247459425393742647342084510330862199688923370151922021800560536282889497150467593125693838814993516472591932325322006822929720707591599425857235590292909225155699505199052979313021532686154343988058628500141674601531767210329802110963291558452646424192564792550488438271010317835696950998079126051284753113554485953411624789048007075183187693889479460822004213758800554428138415543197617989658582545248313947523148881701924977787858111935740282812184113948153862073418773210307502447215119743845734928493483321354726300562333944083837039393728030890106378110332211071245275584808591674146166099961252575989674988329364175750239204523103795961124468507496847813278946688502159589224503601651218579591732744770362304211426061836666461721971900325606446747709629282995676052127966082937392273566175383257560410147330423994702070252255938648926261753085951250355233220342725471666217494221915511816243647066078181935353524413191871026673187026914976382837970013709479237433614743706065174215953492717873221799296842196234308512616560153310185095911587874210662162017072351154773493724378059124304341762884713724257961120686436603127352085030263695987955765175743282819816522926030616547826830610676346925140656643794092948930466606892849167887385461921720503180976784285706324983214649023965786156775629191286793471004465827926413326695361271713829184031659578757990919439403541798110638187379898970264968910002316161219623564677905192130272174775475088887104253226804871975161367474717091638920916984237540096985259646483444600099593508936140312519983503247398192744562758034806035643587200452394331187895134500348041680260478030515698969328356249766948016082877162365572895832040332031936423715376590501847598593303505146677536681789401938405768209085135377373627896811961094619017350608749470425256180994879056922956952334992682183957483270858303417936895395725842171954100086763142546992875588651258247618648248820609248025133775894543538014727927669530834149214428454695913749170774162346772255110782086663357647327535609202130463102547089638489432116715362936695776061108792310888179756358028528693146992567350015246805457505343234210433751049893636215177501068066215502424993300990762455354720531276240309409795519527429911183924433408792921567385603156061100542642802182522930328808723635928448818161204846622138103560926086801533094651445868877378066858440966750807009413879814557037386046611426084029515995734997357292924601547258732045597897635394039470274642353009289843254241360973606628347583855945017104906119760406125084770894493982754046678735407639631622345053296831851880724149824840827605060672219729417844670791852171251727231354233113177543654315416908707276273186446290914592483417013800245789749723520357443950440015216322882070374365960801129660042366184202007564038458804477295954346114601802364199549717692587936619237472151317545231279628647107942762359739579473825955575985009473016713114735894173757954091943837488775009606810570282147958427363118091287981166404435041913515486295168757810428325452979450532470076662363288386870623103343298580808894992702035440554291094593010507844628304635278917381615469939518002214599019525287117066661786587332986647537440289281330728597473082763884840064958346719439358260393678802542608968487701232707005412861720769508198168513234878021727973783118664033817967010897922767682982335160567808949755148918109874197455172032112237299555117272663751717353513391122490065806982698529388089820164087711692740701247302348533164395686494179004283442523529258620320838445831932919591558269496040827962015088324902631528374496496416588502840981172779666082730382913058308533706094738646249276694300679438082270791218599885704713214947832403043116790727120544143369748704952252314331084010300001425227995871836789615662444257563262678627197043939224804445299694340138254159379071020024499664982762934255859217856342467524317307546436134558748965547673877799524802268016934303852938861419504597083565098557063911706493512674800835978781257075723007770460579746386903624971638394373843169550330019219624221220296637502583352792011989090720187495205936932921652420859430614347030401136032768339694025394078694384853675429233475672569996565208095061960830785087282652197835539164946873378797615321619962924208880622222493890623794714680604523881645932608951269353088291745675723181432114036683773078857921021096616524959916221838716330362440265211386343884039820422660177084288588494329472755232385873420441364093093484433851770739462967919416416526428177273665671320573432332578274189637860016720943432026068051320935223566323245808220019164101199986858101069541653126137274280186377666280120408535145412903020514671350014450725752703199521453886950023174460709114051031636318438560111860290998946622929510324267847560913986921755185454289098205910441054886418039845538753782712801887693857650840302872889895708285310610295433388853652508615020802336795096848561583350742000526569832504304837052876165129509978609092799948149188039146212808170484734311538530320135546271987622926908207837999192878383256679060898067128592445897385058732128814021889401455895231653921518930715190122302911751012943545703467430523108685332937752429410639414008595168550407247353968325911868942281486369673723538076687641156475750931926277641308243962749215606166683331551695159891999601510130641268973357820194371392356070643742184665438555332220743701274702700515058498260586559944458104672128631880602961416455684400454814003220594288536726661446760469524811371080442824723758220609053530111136743752435892825720998565092885136264441305980924353474505935266512591169110819325723517796345772525035012616291857653496967352302914655447150781413411719812707462551572785456250746712767683229706065272985628205809414851240295496547330858521336727264192216489382717174912776486285244675021658664453973921873365331742731141924324940898596548574074235010079449341946535041610453891173164687953325350889953069784452377999295744396978584497133369951214977433598058835188869712223482065358551358278297661707248596869631862452373657442749125262438868420270153357533213834245709095137215666833538327955768218476077356217523328327807413553453497931882068712853816767972149830663236124499820954445193996351348845714933379431572088143083703235977712429964852866257475820806181385197539353043960633935351632606260722791211024422135877238259102880517150073506784265331460363060761159099349196533842606668392595642320913634244195808626457039143196489100154754284384406925050513015078317903791777449227817825099863940108012530674049282192432912812720133400603980863712803430246898006345619773441744183149800415090362642213346450444710283091338886482194815667654277370476436188393387764062625466935682235960044482449348420442478072196681702577065038471728004874795213060629647904114409356794402609764722611862747316409908941700416696850857378969153980953538693341595273904990189946079457497200637833675646955351703925974008633419731929519145460481473916802442002938494906645921191811539177377606307773176016917710824902205043144503208545066429238577563015760469553418384396562039085630487578060275982988142393999539337520054681929242398247748203042263764888367529253794695706199411608588089876164524935388197512642554953731037674193304427449177807870046192920983453558152138420434360458987635133320186489339767219919150322297233397477011470866244119620896618529338447629864822623465999230071517269488657603476940060659125030360455450472110297704351286766525172425119045849605873390755632182379731250408375956410737907272522990866125807206854464005190426588018594424046621553789018251904795807441076706596870422049304316114314467186337906827687046296311226516959046995941111046369601825797452500276149244297805204701829418734468220243232134320282844839852001418072784097543224788525854332724243374944361117604296301342306456675489805649350752335629271346651343761713026584559053116769892200922197871028280189831151374354396579699316458732314528809777386785833805653679223869397683374642021098968199854210189302085731819489911435406474348860055124893688802205171218904029967875443795391907493810309011639457575401360555002187570402969776355244637460139125169990610813441978880747127802388774056652251900561337693860057119563209809128664296417929940923839668704602248133908559717688212616567852442588772965506930132170133757075254469018831923210799745249416249480267116663842388817070193306085800233782044225923015148391697229634020029892443426609012202507528786816191726314964451804119970557482720156101435180559621772449084537632507429602859312889501349339688626671880289491573770692468236330029936092284743704334324385386400972486646614871558493999310163667877575276580815716991701921455150745026778004702468551483970046671578134143934924651564494102781478759219190819429972494335527606221731888300999273324698363663421800023037852815454989365688487280410879518804666272469689035845848906124872695710833513963595952514461146864655509482950322739560055480003332894134909350413446759030984889153378226303345004257071037343713374354473822531790327088105571003453280955440331061714145320119485532414718282927724274154518244824956764066971743860263204523385885875374474162868197431792634640988485671924771531459486214304992510484977511139773702374506386595077888834995004945026595883530854790070503178121788492825779231103922539357484902381755499228196471378924999571203486784438077305036795651873837153018654583040352143321007404557807283079163362025608269112941679871079776427924376826173758622565116692548664284342917691712953761429597520833323712055877209116662190617004042950963524783440822094055399633589069037127664933430093815573607511585980395895498745583419426725850143880304691576553711572591046518189821930181903337548466444283267014339925554579256948446990794853644919026561483990644398037911768959936736192604226802607045345692000105938456655199914011237949886776815156569773680286288578452529231507067993833996972816299809069510516125596306309783304417089617201185896068662567530001068692897584796166783446540482980625525515069377713108900745817702087090743882389563872162724364746334840730883756066306553903560467862554075028085436388981291087583361973731541843440634823343449932570263642156765358224545264276103639184415201206848906450954261566178988368580530374545427665506599300781312356704987747239121297371881903672225515875253024438721168411132781806454570383280199254744786052518374109946532335122172278198833516743456709184919405341042804925135807965082094320536623841945671856399553690700045823583743905110014800842575371232479600243051787053302652642836035194692445255582602230735157592459488387110786194738009701203028052197714427514705764208051079587026338927662931679249813946152836736997580778138163417402366377421396664725144359062243984115872222284357782122702915089377983041822319310469922341061695187778169449091556975535073809855765212697320146657379988569312052526167137085503967425141994466722528523865340159245968211830237019200073902704703929485730514303280084594285097931674224304641767190833607400458729472624034769146903364058290481638036266507963700714054766720828488796319629625146175361132502326585060862174237568863215222846299287115276242453488171652807331322918360132006057345829753528218060709894642109273527216732053937160762473884603276262700276961918245007640911793503190315753974216560242875843445125419114625945169120282580308358966189939368439837102718183759965865698002199351419669146547021443257962122915647661541408208243583795444387227458167146786286664493157332981839330314890710363047297263237379989158053220869734416266733935722945414840535226303703105935475399719757422429994296618477284839351410072364357741313907825176426587269975667823777764287335444831279481659821878555311027930251119853270884796312935002523951540744204707502659302624245998951560003842210392174199389423190747916826458828099501266967016784869399008504449811623375587544972570356505303020912902242998523577320666265742723461914001540841044562187071500837872397132320492575101809513204946861225363817743126205876286187839689694196192426225808774134649283650366237070583403226507851690986680569061623258646913018871599820913412534319611714512411824082961013324474014142961554848370230031104426114512333385804658441017797098765351156954433125331082361776428313250787626722462362208277050119047228430674931444163491352698028924006668412323545451775417971544221101456822714848410087211057055592875798858180755941201424908971587636424623035943631334129950126350759517513101426835823587260764996871699585514598847798164676600544864017861357528434765038637899408964550663489569894722516670282192875536465531644826201618496604654255465509706606587591510289236246669477666011754475166683878292733178032464741033621466715315772959934167197947547238145034028374122868742744135910030028449763924165797479146397855602965377502746607331754514198453235491317643359792317647308445992159644561862873173114741741928547937358505446311243885789240227462488888925924548129817777884346427388129294714767225750742266966180114022704947565283362085487356161379304801747700637698879001268621097145027644513760851946322516352193322782057916417952057178372713094993964173369754916507220892892832417053191248427688226155613295222235418494624905095098527645387755374889624033849185141646263356353019329718625247533462568399797195584702666286625636491805073104172610555386921633976021703797197787840466492703282528287449073710117362679137691634816479393536092500070007540344919448008715588921469847572154482265170343268103381131225067870451620858448255100003505985814833993888998141249952576009356460517282893003837737248546306426129566534572013426253224084121029183132505589838235353304629802686714270617180103860911711258134133041948970438896831977609504674311632344370790079051457703708370749725285720300520227216097933726996404545830912399837282263556918501418830236928804468327227538719179869963932817901256325747311464604789608016470502562359331756128382107875546775388564376949258006611351804799160800926070886418994891874262335342590761633034888901112419375316176652737637059612816862990300881897464386522847561046084020285772195459306902744910323913321624364872649779122367864282280597543890553749763855428446482337910916776343052420025457339387944729203824488459128732412559082722830281104161501928629729242509030650082915607857450573097550696930233540474925313351041043791919247717145692838896271857667695548417307944142674676933340689272120706833512906817645585861293148683538767580268315273604050929247311960374596816094101107818784647688867207813120636885202156344197184424428845773277152515803866197125108670121244947757744326800209813634112645905247670215148925724072247466656189363381497275951254159436858281987977925412483603096189314572308224511261096822581040789130618149168998733627218930283473095709564861671051011873827826361106973829982110856140639888023860278467032696705808318944467094142366217274222734859546535308481297194724731420377729978486383130679599465267071972595299331322306286365925803846836939834831955844802793358812245442663990999261952927773438781609532183442955850146396540144666764737128791992492239522344306194508315343001770930390776778556990554397062350738547134343001213371008489057596954957868126569444758416662605301554335238494595818976467283537065689117902801510590896322302822381440955606418927009662744472603740985111420085283156035368293233654153837939503570724045337829374914047827318625605571468868342865550329853465642090711343009690124362596549035324406467687505412130141269108696847193218605335379292487327616226932809058818281686459206672246562294973919914738284398039748043519963745990339341700924065520808028505471823058286338508701884511762232574672835286087411516050967866671547967090925638912635432749380381062036253526153178317420442056274029041713042361035897023485176739298859250433932203417484127563476512516689261411970311399844202290499003828095699723259709611429908914916730145594506406894457672792740120072032341232952064287146732171269246255260705687707757574081231081908426484554952110016188810342515293926464577398157863381050993054967422624215595770454358176678369083467484886417468387119026805073256070596737977623494529115065645255264641005487116906485557425585605968521428085106897914537499607842079865133548493257111782607864391268987710722888475515325282933172646182725217522426813775330947020414663419644523118063586910771891839713631516843963194017994604335179856615923323082209955464269602582112460503561249950091254690458389576680586207562087919089115316601202085960365083180118515226582255434808941959211677264157232786204410557904010912568149504206005967251625324773296070607784650675842369291865829472288258341168196732853154923934195995345093410737546544625218174202855379886615864498332194281212852419434131659005239390496534165411013773370494134272227840796164583725793873174288403224265669790165538078592386662812797167459656688970000128470458487903867867078004187688555999615424694996595801359471346937575103589655714132601628807388193995706104875448342384018812246553647330217619510120094535440243545133207426409565917539076744489300019509737768829437267447084970913656075893609360614784743009460212852102733566436326377377625184518162522674798051307849081804380813328226078488393212570092006314186645374797567021360019027820478178022404632359771831770179002457500120099914097718872921697231812114230117757279981844047181328788583809805437047311066563511989207952016281677534381617975202503022210834508139436247193692327780607618937670853857254922573407533089939802126381438583162745402782525610649113395074329040721576947629743063563094283686366394011744109253717575610067121873674294802243151309272125363784109523552969768694327556194204002432386631989989741792663454442389614096964567104944545279929821139367080550349316677715895657568391549063603646938104878335644126112703861874708726917730267025872154354544954501656672560667967663617425299461592669273951253369521971323444227949412773469373692761391516374613362592035956089176427347315415481053347550540072083566196570905720591736679562219481615130836139897983900523314455842142657901563443686900877874245996653530895983538051165972571609402484632808737219613534072060976779536631916717485320797835841299217080859697031002194080155781205122925414323617702665561668384845597065379940146054465340529558488299118592481189214871825884822441070971619522993430738021584960361759580897884669830116447183862950036958726751587917155618734388760575099156981672775240506239251052709437411388581798733621269261013610540236512135983425786741087844940901576494855728496397639902571237036448446421634074342148275167504965822308887441710316060088106750816687272897985541080815319153788927919680604870413623131652397613621122151330221084601799485244220781670868943817176635004286833789943596389359957459406983530771664094503058739284341949376747093175655959483255557679342833061532585484790800781010001764768940250471424693144872359834156011400848358897872688205827081169678572380912698345812202676374672260609673274774582308312492342154505279604809291982384410150402977468965256572944986227613327039272032482071300761604849218190763023282202948155353721804246992845200622284685315505967591584768799334725449136065584004394041891495810043319069749783894103082861397606142568604253809903931095310407904033878692899996975381918102399557885726878393856647211485110942189890679669443841924611510047735279923865667937926671061373674688465333897414824584775238882132105286458174120048965326165437501286272636501744959601646900570850147518256447154920555067846743649416237791436817114778612409755264655055232906823006844675788459502434712561556262690026305526287607334097663958540730128783452528881452759222732210421064425597941407330377020420248007989696149400001971330217842692024516964058949735388784853108403944679934930185926697103552230927233125788229993069895185275847069846595839840925530402724126586398013738586569707913699045576364288998298486365816261635194755186849361652456729493385671350438431276813064479775464732033381785819219594332144778453609656806625428067457341927548491213367501996248982706044862866009579205886729740507588840095689502085517928968261746042734546504727329296372843569072770102442153005109172802888900555482777381480378811094994660385441527922386518966486374409426638381903298485976846349372016901307274609515390752476263582983121116094346259742166176118691335860617074682415447996355718867550138738668260587536657767350954378096652549203861734917718540270219360419435577765314775922556782896838327671111600237230285929613362947703694102958719101522852581893274346620520887857462903700452813940033722316129692461184765753246193590283040412028457682020826454683037218142482607608190654993528938006307864321952682533812008758019993888348984961229540372330056071923837204275722044739818103496349506128704544054569449474248031115171996440701777461998516330577275078536733994442097682224744983050773537568131128156071792769458759190131233834952861959686592383776200769320956374888018326279484805829041529900346791747267963236926317445054378198993178577213066372601451357804164471828165719278949883345921738042438770210457362437290515481175853692824251386257754791246885845800910526561848351679376106739029474359492890502987823892560745821986031771741430784351395797047026805594185211516742652981197917818698739577461233179968191883065424170550864370396488284364529616207593106507791607579244713100047660415597742090835643761648850238785067086904019671055010340309427065430182799630829781380052944549850988781153019666790034857349880428079385303707926618613027044154273460137840227240770615702116818507416442079814833380953996587703261341226796391792610349846044099116009365111746973243979104488283335795104030842332299539936882721661690825709883009419466160767548603679027615074026738423998822797768666171916880829291091363177125281478273136701165868940176616499831398979772821638338566530274895966114526695433608399882175543396174278644557573387617468912180003140919768054201735629657573021403491975534265766501410621097404075457061988496091565000965472534778499746122182136019788098572077971216666355201030691609440920946653705175897915677173188672494827931397789399208233158969601899832885106452465548814608344859545121293884150591555253818659132708237358783174063761409754241887141108484485681771164567551345553078386090828603118201811100563459181553076170080915210794399421087578476646667021029906225335604134198011966281508483591272573162800682906093229646819356795091802358116268748248904272875215588020976061868891302936287234495572102173300918181319331021795700500511078084105041181792151203146920014633343026198741254697672834467070439760777157831692044364892570598691925851226574686213315013148127968131405106556902674597517232845508935839212210964069271138011785685582907705538465871273855797737697297583342275344202476965467409962917863587283402253363449238633412937061907630535807244945765558406944719798201130178038784573189104905282918239354989963766881870761635249554380812738370411288651197028551262439854308351109934474223942141406102083887592091823014174340327077855391402387237610510455857611424386484472005714913777872652507754549147518594184486929074504998987528209821512856057630611127077340740447747888979542131812159892351725672517696837405880769070636817189200785137311437961014194333127580521579461268871093928030055813499016458288179539297949201945074091941457076836814453667962191666445370119101170258991663376445884568071294322930748049516398988266463843548953081888143476713075064240276385410151995978136287591825811513134194504400093937889376282085717214358493424056794455955306404094552771703193163144551504511833215729568701824711647478337168547983552452712015191476623054732272680817081973533341965702306595188487469549202749423068834584375346316458464000303774213768842854066340022679560555050387002821637929411562387650613230622437987502822559157018963829745076064678961849833525395004669922221590429939302998233927384117857638387581453504821639439575312534397729745513527787441299257779827747042874922956252282956095782241983869421955997435205944271755207152128891364871134523632966561760708569409144607297484222323626805976486273821746650432037424691309502422149255758133476255981523780697863429071073614876487163916488111925615799493833498868109401410374037309152818294524366430586028899112923860053711072783269615840377483436854698706027571481931802228840965270409617146764881492155104865287987546167536713020168864207705901071758331025092681109774817673141914226670439285060313533294420197436328146924484655517653244182449365110657326441566491389503012837471631969519118353492525852903148937857000268248036032150617527639009490968011343646082122428017963462076937498556126522039376836234493280295564054516755020763329566945555305092112490332677313357129864907472201030159297985565626951585810402860067322658241590705319660102028713028873578157823290222011068172977652939195724718385591436947785097756413876383568294403847333857822135733478791689913801823060265682385846787957931484003873625837857232868615102324657371114198587158989565832146262572345833071766810552161687793505287901858248216019282953031955316371749884027634314305880203406345654916232101537703338440653838858373226408986416716521293733970060813697519622601173366333959627890009038561296781021446156538387760859319564924693226143964586545570651416264060627510183238184409182938643471714281760024962045257818031511851941136334180447132804811913075569768519184643270485460679473344716514638898353048487570255626642511372431238663543437536036092842334101840603172532634766970443343244624507615271243440106447384153004109724325483363116983876624345322147659510032194106136925827899274247651758293667980518724611630065836221805718328360377128226435858053277641971995737961982801005076349962294508659539224491914903178624917221500747253726097310389004840304433966542391947264789173735239333552602276829194212027743888565548585242995410289453498847740603631880705425805216278534455162306790507933759585366244477281099791441742908850366277230092678391787662084708710248623106244953722544235867530759223151154106509756113793927379639532796274152030830740201899866599155393550111270035971379498071318303850938127102899297567229071397008959659670791396946175482555968089685270837227744531629370986409784893118106899017780410692030989109826959954152966244116130515229341546606176558568499580049809336357301350816853850462242989726853348736267913673687778087480309188040252456262795184831065533591448478781697190453414046085038673160316135127655772820676651482191190690447454333591114937437607815142469968455597822876957029530909985613625066328009692083801626498135388560707802546733957488906066447253726027033346495471234535730217949531059280973775909977995071041147606113334005816236315698605712721699733273266352449211197750540104213590000935274287776398709048062788484558755158957639256182033460967969748622186002029903044244686106815235192942250266476657427970549787839474428935227495029211622793130887930969064372601896000196775450844577940880995288349145768803008899524291752205766133668678497663130772718411911546549553628371992348799500892717308081202099953005250342379656967860051992131959524945486168858580232741596924723247144779416902620705493909337362733379710513360775975866610741468848450773560388680568465556076064389493513024174734122606151316562044484451190559818191461536837112481571976499363305186624595234146896833383229109544105247421028611167629965326263764267700488204491538759844029413949563030348029619006775086280734896368220252551167031279811844258213720792957909390948472723684843139191717545917530278784538241648959734765335777531340865728905335230468848325890633817292309578881232925573354995411485862841308896232363716385130135716681581967888978546009400546885518618091559146941445763476553660952140691281276306750679616412851405300318707678400291202695122481511383141814483835515198301292428534063223121711797724332838240223203620682225100286611346561193088735236487514617612893082842149409980890083121669523787457608338223535231305126996006352060365836701128069626307897976925098803985220647295852221578129775857371362154744472555187266562402949388505604667790735264657289494126839470312928115391256260641989882159212545151390821154581146663063912859501820975774353046648097877553696569155391668918323620877946164383041904674131460103294185505995316949535275152250529860960756389976536677944084315896427586188811802142716945671907085036177033113381101350280590242632590439883420024449374203468315077015336727213533561230357436101457778321160531291245540568619888988447344169378532001768148913018686380038186472257010630413543908846751877353761468832280591840577216911645021834766748337158409928244982610475337529393292991217099239993564873789661162683114337263293170473552850600427674115901113302332823007361718598376153909870065270602833190055671128839325125534205389928292442157015632245364131227712818696967896991017453814978195084861415525769230934368376951382684890031568159942432791725396968823342959452028818327762305593491471574245948947168294129498128164300569856275225261650323000356750133519450281516981305710256473399793004686484362962688629810573605389990140525868640825552575643678741275513799639626701664531873060216820240816193068547733477611412098170333035602150899877638757681976300882632871568353366134710816658706592785758334777216242637500636307002623214355411671751328200002861454597196833160885810489202693044757364177445725387784420491239053805275908307712639680628075897899628745116268673278248124337719155684698403075360368487120660316824814582404317930774338659302262776009590708854726828774421483785017568760028332985607353115088064475155477782652294396433362938562969781119231100119291205043917923863643670994783685083636319688167425266081191062749778496958529449745789201247821897924991157209819553220970872199781871040791743083351812314283586617157648148978557531064648510031793989926720405285585391936494896626105062750004113708563512081473590095404526274988684149514426583962131033020199595504888222666979009396569182190865271791062783959989963225987675233315521505032790688313684049383541423912145915225420218875493566112605894346669824895201530765094844023661955409464031289596811524881835872353152713832188276832484857155377357488407009852661389485210086650225550426879846754445116755191152491381679896897036182894638930740310374265123419528038315918002527093059176546706330479236039483000865820427385824545431721476307570301239671059047017946821889651283700653171977205483084177209309174838462920313394278909023879206966168961519573138403906672241434650925448928915415771942960845601473876070259038962424125057199047471295436766554624301269597711293421517262783289382313290145542349387830361166488486267232483234902237495758732304166678106347576129553256648431411239068664219462084189718674480730132000655852881363961699154895668624441408268548816167504605974575134574279788811414823299019073649997727981153826569112076686741816492638032739356874037584347138634622537121518268346087954027837924516573495143921264980517750668834151945391499635864192345930668235125801513636148712062066962177579807422178765840339718274870374827769535505895393147745056674395573337960120242885910497724258064359473683674036089339180115357211078382126909967355775545214772455697509246760415373864849281351364450335054072423655584717595426744740336771686297549429440268148565616331021445349967339032916543602213453252411103666160150197738531355334430109225385039256111677290408568613286027432427663776086538353655449090433812514977417144466271826504662903202409066283586224655394887235101112822869339312140729914703014595243523937097465595688590342838299539567004658471289745105246121590341724211825246225378346205112852118572897333804271125517711197402877931976920811977271816628279349629458250088272355884752693744064894356877118825586540845789646042561382633419965351941674483269327435684286709715051620159304431482332123761403582821159056000970322937635776511258951863009872465070603239450254190958943459657638667885107420752328146990915918765404230220218443063028370702385759587877811930956472851174623665052320300204041347332169126741044964289870050912901406164741011751127324982693239509660867287373925364654338104125699390225779494427242282761888009525454412835503232330961255526073403922584577513109017220119802367224678125409797161135103470762926510993447283907071090021540959052593349699013930917947449591462875527374452784593733787412023301249034585825807861626322021885309367959089394223185808407018790189053750157102311594686899809820825528261173553160239781791958023445288460185042563369341459066099469268354154855311617684674438192046631874712767611652800856788379046107115809004791981851416136822363813168506413830609364336470832858590334743970497362690742254819506488402433016898720636143867397252425897171281398198457945081503868740247663521232467758162781390946990005810927739068183539495214591028299015689071901777046925913540174960029542010321243829746861971875557483716755186324249267427438144820524071111281291891029716569590846851790537071957547095868809550124428277967941772573939761659840902622549074149051454969282265193546969134891712450038398929890923293882036800028895727316257396333765041866496971657084143449534492080180220601654204659122919936391577891444305962112096743931893367085543612021925727190105073945521699440874857465603837637552224310094244184082261677743813910532102721825444968598272805115930962811280163227718541569764015052327094477881779245632823105453209723441556049472041400720651342730570057434847136387919937504936720724604144865006970090631177200497650217169144985146513425555924710297258129239743409849393222635050193849531940296777451573882806175098472614398954076214128849841015848236675194908413135618692159076828567549330293007368812193046145347793852269006536086222021838037138098051553327511187779945106113356023538126822397651720747671410438603044339956207011731255441167831932486826841845479113054267973464752993236456913712348486279719203388768269610826408856896473738382695436919274252357700983751696657055913443960984188778937687270059541183101286800355418026615815590200515683846083355997083103391023904418056705811124821753453113045761599349276879866253596462993039920020207282929862576451157794055023293600974697304034290855125154252214177187347167217599129994995448585107749725809861481590183749842220818790688150922093019639079547388437349898697230671279688160116780099033933832727099251276782677205544939163447837895597135990322722971333117350905658970817680421819023639563890752011777869800004235069286675237601258536290460021155153282591348787942003655423312445963824130396670472275961837119019577709075576384102304484912506076754283777677320618592317284707878079012696989387537127111942329204466893558798834715712208696982546800994831263669500228026471792467474961981996049997879189011172197938756739480658495714286052486710907399057628337915544480280734523795257827270615004753522136351483200525269500666113443686281506081308680712145178188517339125264182292626224988509287138779878846968936905032401318390825722001722729899200238211025749883393555509889222046818417902391310018171834355520068269678920414215447276649923146446853225167869336109858764642111014431860658217621579929728299041557251563686099293058728824389480081539038416283577399012874050396405342695166579621655004853893414790804211172502214865470326764465290968051787288401090132412488886821652076522604819847982935575287521806418754694036152038749987504728861047129572270061608080215098078123789033747066344279376354233648770572379488713152784996820541690204703115584661287048158147056139096996079001117127086726190975722226104960773821461075449783463382816271109127893707047787142460949688312165806400318681135984615484143289050711924723766385989494325948999821467071272324943621277020043631503290555357214564554914600213993721172318555824547717410938740105382946001126537604218337087216724232510792850502323090406244908931278865567137056067507553990081396625945390043149698051763922334113835128595191597645265143752673448862905629666273997338539884821355397134651521966280165720316149192664231634122471473499103335577047391966445688437612692094892709925566105820491687719222698060588352021061022886755537589349020292536783643287776162735588899973522203878582247173019468306398872964524574118349670671235361260183723265158579332258014318324794826035264745233887672700566516931977735718261666458457219054030725676923611517775038683655953573741303712063429913903969684215754836036537054990438836488801571401912617211595316584121973597501358279580329592681467014857621572045969890119373015201788162971245422962320295052322411915734615836548578367482915624796979318622062783896275133940707414604673703714387721003156623918753917478842118003781544215361907918616049377131145200718721601923657067629736411979629346658084724318046272117842949209299793367749119217888699031958644807029529787381026271844832327877008305997683446059798160079839086404322476348322022875800046938595118432202119564961690719817472884958374440484042772324700116972344028773829796658489066621687217518082085948960875833400585935397238886536527207782289210045076661686873522445114806811450752737910870104983022545164939376035669476399380221737789957233398751948369717442200941660256138629540968791093953805805169368498584739597628958874050833770141753227433877895337038708581371544759389563247379891826271204949291756091638663082161716783013413911455349137470166923166604362675803439343157767676894535501844958356544348681685431039813185164820035465089832444294699488473608465962986590636852178832373985375617557595726847925042162741019426427046088055677977559764142679334670226860755378862956923343733230224420796975483417314582374485130694865083997008441008456468745674263635958385594404176278752018960621194610159994765709831559052376784546996853213286113599836634748386225150282123672731850927476907719160334727627647031210031781381592082468171126961362914258199198259743279572492390840277143371238582410258222646616264868739200212503572269944951444947518085633716434435733532568819906948785879804674775214252211956251203393936960639258191273369494144126923904550861334809941196282002961274576675452078589184460739217184654591014459610579210174736954564059378322385014085234684099161356563612753772326053076783388824486723378509592060665222737218552698016224800155676603550309910493042777837884483717704470648981670777693566927665488842475008961418842163254249503912945963469761287285501577000529281395805233559538181646545542254191592550021563861886991638995365520150965254938364982378523967042256366384331979268846415411953825200050855568450819789161778832205368119325354728196403085893490641423988778382196161301260838893236343174087865743434745814299012504771855415002546944702458888558426052953833069847802798983691366734676782820077299238412391849204977090130952161020500307363335529528598748957358971813486475331144360725956397572973019794938320865356482573192018002366054426122535710253560593164058388228973657790237348793767711868970125454949906359528548565502165344184578843032278039421471608669774006601004262515880985631855040138736985159006879030542867615270752936143257052388295012865639359619066855504132439376352941948900039378239860919069595466424024631934600276216222744950432245378081003530624515989672016107682969051602742000839280034354322180121745290766218885014469289488810200919380484059684660417364011192062030407524549362101284508224344123466686411615368321281150970260827082508719587183243037798100521999683517531649232737729602696853421681367324990080348851415563778851262757630920443740142865976121513842746202167913788296919995153672546513334253960362922801899595960475809296498207186108859667218309919117117715976180267188640311288990138271941137109701025007918607799832660009769397640163416694128343722827719935243927056012284716106899002388073142580855540854343193883930923835616004123669935935775582404922385036688990212960764745427410405466129317582838731207554511064619132972509699092522657022440374852090160186075199374923590373467482241720783099646844665674792599348396856918370734773521262154296219706957687422434738138729212138600794204889502476853734268947928386131528322462334864816854093990582628684844063762466039587713943818967867984504672385848991501480753120402619044872703486294752631029175759002292048272180862532835021297719012192365567075681135719190268484169961150613931657948306348383074407879195952651626424326100944359026723633624735735040647061409500929485806351659422498024811854317952517832130436798037155227313322351441050606521208104477692638708933656636411704285459623178505038929400058274574733171836232784012588830679219067293074131280775473796900632178284909533409950318045746660966988364225468102392435473725532676807595555055833075870861653206409564122031649197709370494390011715345330182344445422992326753932939815720376130748833620168398659699146732015691888541001201429476586460121592388733286598979784112163614750658528093622933733536892217479292138247869835506746435533096130798026204612090104924797117519171864193528506940786902667821339709428047341717615251877444356457331556244987074389537981356730045826580392533931786235959287814363997582638365862066866113967545479161946500939211819878311958913216954009343483843540544394157676012842189540630356551890478277327822701983910294415172722535889730009843083049005809261029181079184298629540775948139628125713045304082455574415418911190437797050917120197043998068265090401685127503781568411757630572696851172428073601369782999702915457041047025463645690599411120138586765832654303128676002709988214564630570800857535791068585202534868830957598518421611671614993243699170248974806659477708435422942113273202635092714273269159668610773148923240116922332088913511172864519534152678483741337956327013214021670133478706006323202286662118834544005186035092261931240694803204248617675367677486919772246978080041727009040032047204562194710655408213133183445832557102759545350580752269136424853699124201630516278370656751921237071049044389871086827917689526787094598802889414101075315765945048531067000745899841487376180768602838501426105502828269701654052082147066682608278900706594843890055702010960695335731004223102697850046768372365721736901545109835598986167034138511961787287574000451303366632933822120346003167360404440519670370696307372514884634700144590670752351972427586468899703121311550141358641563383968118995321919068628298323711342178448124127591375733423279863488473296954624440115471568714833532389508301743718179357634635478397125567211803920364366019356328406308170105178417922637998459403704166625184158971445560810541857043414226731578284645035231722554676143227143578345798675022796441565817468483605565025577091677790877250607852928316185169419179314308279452005277802752868479148189323182923867753697374715521835228435651631288843805419242412556832055366631987029630526197356955562058711951352441572145587963187563559360684437804189572524770961969310338659758115492130175910720292630748917677503125367982332827345486874105966358811736822601410404658473864326796116686475143600391679689550286027816736423413089326171348534385811081455053464984177723075129678180129377202331674307468938519773586835383872641429099301149913715482701758196068095353777303544018820874810661551858518369916282448178943891250977520621887687159817927264477640621074084928800762643846805692763475335103196956644075124447714670997269359012653737253949131963369087826015432903932619662701735129590611331654789192750256421607724510114432681777233518379401137745615503671816979633259761866754657315703511108535420235462054057613192625473109532436697659072047549885491644582902845798153740242387624232275089001458441417570113408457945102583428698656914894597065912611334678198809423836827682893624537358707620615446320075542113078717963326294637613509830015111660173469182860486557918837735689173756870953571668196771501227839189644235761493943052574763376910914291445362694607525289026760811700561819041753628826861445304947087767232309057504701970293287294114305126201724915973187539686389230191924624282295593248188518410863676010544726441474517343898900981645308196072999962466701292750927734600305981102942637340066968352046474062285714939228274125607008744488397715087452087137658713545392356807648591210615881106403733874505178540575613806573577788650827287523176324942948743341233953071088501880994923672522835460419685940061247398271185623524523520602293447197152572172519009516901696587920522369668298787608975562815988469951273155850564300209286204731549362718754184135756491331944827144281540755221117570533117411877661605150975837304929832188718620100796303315538408986180733714591921209314193331136423301681254548641299964805271383765969113031992840997570014665226403163009809491450760815072799826560861030583270316878733044106810614905835136839024779853904515755772211871220200967170154730747123275595975059099564914046652236673917752160997426083857124954858703685649198534804175894539640401472568362271075474936755581222206865346497455427729385903003494928871125027414588865174768458759193405476307957586484073012798694573003212417010457036876056797257193062094074089735737654999581795965490067283593622850626561389551880906367485361092249117607685291563003917507119399524047206989181312276154963492851989703335207244801328469409368398181736508032903117769545525135533926037151636535193622217699048936772416011558502358938119037360241550264793424874536771442078106735201420124367179149271331680676954317838494306126867677088406052966182041849745075743647798637674129914623608220911730099453591161239923776175172185398437614526314913426163025174342956498744354442512353590174830150430825924368912053592590518402631298982492867640695215554032162106116572722434109877719909098557654017759545994807004060043539512605005271226423021538010810590431303680175757189276793222453117112970175493058746919028515429750589359824152660059886781299879732499777729094258209823879895825529159308639859445161481093495968385261583653893374127732214930679740365764817324692305011608930067497859877859292017106411800216333991207555494137983187503833186698255851400802190133938558108464746701630527386174427069925982686655315304949898500764550834529056915450221821064748770229739517011509289143976201012666069347486012566338460432357016985095923416104025637382577400618005929773840511938602186988649203184414004289719720072183381405172284510366039764836905070847374209821074686612660424321266552222898586345997373312490682107607592420792801632656579124939910489583687014682293551165001954156052606458141778325313265556755342247162444778214869621989316104651937487122219440592778915171207021968729825672667393348043762496338900893633027998137519383196251462043501374921130387989990275403146702100287426993801423029945131225782716971151274357231996286125367650689276477132647411219758488837737524049479896524189153259538175294436828999601080646820242009383713553331086652714421962681527286167364924372203563243969013993891572934810721840105928210758611934835197331716256230074765325300023908814881008439006513946826698736439613164515807018868345953766706799636896920068847701608855770633019403987785841392655556523849512913367392782591927169930518887787356150840744317179591470947904547159849407256332979386084836866406443143019997610979208680042498029068010939705920043647357462843257928065851508660363402524008056846809963296170521253807955602544094130914181925890097585551185464298950371280534486469659991728517379800714766497664154389981596569056888617227306348037137137980944267705445058107273674482653381340892524149550436404128873567637992677227987143674326003155817870644549998166577816646179930588975630988980832331491190304932479717891952023898219768920349987607089830940178980223391797254373268668132707890173697179165331477853154868206027423575091673672222649440250162669096126353642414119931110532677249176668388806084473471512301786306733820389306921790471584403410836005965605788605936078304874389495662774681482278198131066459308169759226800575737496390259478126407789945719951900133145590841716139669809900956421789778416901111268353738982821250421886141737789044637530851652895356549977717653769188770032428385143721695442677268927656502372037101674184821666014826236830718187208214592165367424027188932482977277198538760088276701238943333400250054317293012423571568958954544215107631652413467741440401167314665561745880715961065190347960222090973092433112456527046953059918213380020950985429544749655768828965818973234462912100145200551567988775516019899051110967457714029621564697280514781321976184047576524580555310198049947277668858294685062516543128694300028078859769476306410198247983912024168452401534165650932882492495378731178178922747912404654304031643585937886244139296697264359048288123294936403286015661817281231361399450188044600957682313199965973610153679426399194981297234363716189867320180363963588109355664113276430805615022827204347322998228108850301811518570855543550201582691286557113129895098237679828151826567884078371086630495636788281721078409910591242625686338629793698346862920534700093129386128389171641420989310744664822801760056247329912510947590877694644618713474084436293654222482197799319071869164754445327874799125150438447880329445088176016505024245078092349937197184619624276070750937792644736215957584884102818528087209193330943761863325270756196934479630920443496128052789508273684967403047010498766467817972947257076047017873928284814768267659147980020508622748101625311583201702631197297498185029167284784238032307305109340425152270949416782279287186307036857656462440749948292058358042491710191478895621106832598683520784798350717755407102239785794959669208926877037884522901912527587121634090400881163414746996959701646995714865273187343237172740765616276053392502121888094106204611156615180251879064294085171906560089647390918420002337880620154573708215748326852645864688293732490036866686561418930754804913453344602919536474842459144400538558764688011699691131645307971981233113861632678253370698798472185244896706184321638358428291223699405841493349050211061383459272533590875526146825125853668944155385794486602641441193186869545699022261375950348347379194937821676312712188117951165351470820550594258101605859741849572951368275055181205119660122934413635650805369125705860507086365181470796128888341865565437253206280530670464266270366329517255052335394306523297266154224346081202296194579305547258671823454232148868353171149699831280272006337245280804857132495834296161649411380540770177012286387012352078928377067990454925543241082909860877155999955169157085375447366608802285448951719140631779071961066955405425251891663834250895351126995084744530879435297320857206976636458768041311633998232377642022610281997175301721444102624094083024041074147228696224990820491415892853706663363326990455645425326195062067072662185306317182410098456734664094524373373743443725671025495577062020135637224495065477122033026855797905233265009368905820321127970477637111238669521203780095129113546271137965077156718020295797861702140672090980538853610302779714027749842679854619922222937845630647550859380585122844003889773658879494594759509438224665365342083326456780232615979858005140664335198550047662736882117821623986850213455100376985413971920125094467984844423179148285113801293193237130514380626857664242545761887945890362497111901579434249160129717404303718123223544746974111028263738429010088947867043764238099008021004351645363365552676194894185009494929601196097463111575753647889773926018672353444444149752181792586852542454599986616571869782060247927965070062635710092177523394673726793220482677631665481609692231903219936962556798632453560778906339478950580893307734241713782673019579554399491305151130366821991110652670792305582522100255577733375251021739461183391995362003812781286930071592884679192630658637726368187600213454968683938553079845308209223333812233092416464728239332618280357672838721953703120358897738536688608081895952575431341010010707940580563564796999054885914633519762538785561899410991615539258195339993858216968700212990708540679674016485062454857679072644544082584318710051629950252829725775549834161474866804534440818289040311947373532142532080992224236274470466438793218182463268757083904404195524420977717544109889230219295186671837313930010822510644070760369149510703795363567348474975785231644518765352174067426493443489592006154067171022826799408848897023842457182835478307318500904228130879342919268724738785329462661891331451225550197990203979154457217652866605919747977328114154822986191135250304952669755019824298796624265461441109489799688626069452227506852579301904449617822935255559353348226439796495880582739069950793434564739511636316637715056589969289793421342478444620715839642270815328846837228502094867868315373305852786465743104061678820185638609511183824242126467916686144576890028630608996776838948557347491480613207571301725185578253672799682724227444587302428625754692063518322185770381242311505933439520017632253773365889453419879724038206095628675396529385896693067692911680251122694096424192899068090055742324773804215631197582879009774332791735057948510828130608645733394994718305622443414849549821037978944128949835871145334387025267543385642851299133617392544949701749805733206845210958281469729000339101875995432538575758492778559423572486958209623681610813429360024213981401958627263584019312402103955869284655560069336846167629843262724849524348869533912871029814879449053090490124472699939510957078376079066987413389632613409335714339912426382715596570600445634174112387049193167477828880727141505659153084809554403664485943108487256517692686162353199907916733484588417194343496369200170418505681688377839209009098626927481895146330818399080081364060779108778416332628599590441068895299096719758033418050971683727447744241570724212998000415644625631725139111430461001904376356523899227428779918185165824009141633463617245771388122085189644104471828772885015347669696968627619771534418101165827666862057894271696838258367626853471691048010639796174848304088571471939801914315327973373769151041574964045360511495016372478442587698855081325156570527433058215813390614266583334601594991762823804788969443229949182466787504330464208131106949528220382108349201923960857310622250866108173026929516308758890159393157529648075340791444953561933323333961323645723027842780136454897573100907372975469497067811612167673300670481757409063639219775095184946481204321637006323724672297808189347509733313669359533393797127474431030302623932379349285673443390514240325246623130759856311455728873202737498195681668796537757328191956571237359881614438929306720223763146912835998612607367217801395210039614574496120844173503069923319195048037950045164700777743665791326409687101945782449519487496522137299277058891948879205824778917700227322761363064569078920550807028440446760825017719009672953563393510631230273188253139425694282469529488947730747586365158861907812300707494685708780647335180095706286678648024839978590783858201923780360950243367898440405443264888623672253463360553413398386138745592345663088362522917853062213143878815493927994773085000804472711180745568029386884267092016628577710006966023935940675803323244258092223640591847911229381239130488192975443307793946538828904053655091769273375587059702760919858883787273381462746718961618018281061997631906074474830876353133906318036191664575347449167576738484762426303207311680651896701814352298915722067897416799209673896831213631381864340756397325882971983123285348899947006639039312099525178388829597678957420858890750914061070940115414766695113612975681653875317879349704519145229497397517406255669181175803241778690397126927378418342287169504597341016982983284195422618609591617730721874164131322251535260410570328703684282570199101606124645567497953879432915194561814598004539850863186007201960698678613721129821854305950944433700698476658572398436453673375469493984033295041644316142455603084236919899145112424220135455254037065980507245162901248968002147609372824140467770753504849274644081578267477752819394387418455763392251244639469559252911271911445370593442446988930946012764654048841114339105338659957127158884984697035915441374608738349821586474277434602868908497488649979859076187306620232074424301868438985539797084946900593528328731893054826516115816752497348646783049575930431374593609986295090346218044589364306450378033007753649929187736369112241405307173241183271477300838065186897624578345176040232152734071638313984390069193948945299174885998971854149041065234178223249633785746512885933359565825686491697058948570855071019640314100033641233571942000640247595606085426337545098607204915567659970254651879037031319767320646538387906989762078473694876194625165496900326117759825182960656969203517277788581650961687461126090550367294676537521201484692660249117394707040179653289882113895114855782808154982455250791058315159504036181450038373207459698088803061604490845131651694164915797177929047434694340903799578412702450793829648311770890661224951232524370689421231650750709219235658122162688411417419559744390185604257232516631336816818198440227380831015387722761941054411916560066987191340423524540190597922935574712432856020635810763965065041361088457315177898945758072407652402058970394583382641865708547362599167420351566813178624737853282733706826826923146687329051169808849415569411245349442342726928426424413456324221744190340535856610581583372216186187975168166143296894250989086300569072359972836662782239992450158957590253380818278520917014374059152271684400572908022353272902574551375030685114007146065760491148327511433205691058577300563224468674710966382228361783348872654998285346165208507046495547725813169306196509306508095120472896249419064825642218255398170099580465309164027253622198941126818526233841894928387422376160415184446637478806284390925429983128036302266770248042553853927473181727804389807026248271947242926572873489833317559521358695144084291708199866427572997199062267229972776028842316509015789139497923469827332178465630893860332474569832773247867186028483437887286891459064600068080797821995858482563443740308869390032434264885426772256372747195138678825857715618925573854256341256159671902585979921212496093983725254996011683793613826265686169551320624669099303916261567866404771471965533565371384909086788080992844845395386177742525408568343874064408786071184608525259110299196793803689768661119530977333077594738795109805030901198853245892441864850009305968519913625543673088885253786238274269369698427492000190825116310557088792086696263372385866380490221544648342320172505021825197519361482604425250563999488663544057432892923607427622355475886172626279218000294051926528904095692191379435667399238826245971188819832683765115087249167391650225897741990459014367516653625417275267948324488020161147223090964606683801860139565355375144445404838766898915460335285019501850966085857937680396698951231915314004210923034129266002330725519803181163002555492168795768184648052858729962401318143661589095225835396115416327285989120867050147282133163196416515974769904706567750430488347130644678361832814705445032889013376227652012501522064201582881688238917444005699717556612937394561923380389781727854488835520491583142073786044560266830677476939265867812123838937845864318139428215706517023738447300934532830540199569719049080120079651857276075870659314746002751991005124532988203278829912602065368353482154060462741158496130018260229624076577970122677316741648270571548393162600892576760478707205512354726704538601236611924831353850557792400919134103594248860932571715036080266123064631360073709545557885396409787519201115263561756743461762935238790144906061396932354337946726380369320492336423091536382915805401240136520515836649717504284490082059297496620125099905348471556858916094024884035475640155424521269843217610965169780540883176263773727758159741717267185955158826472070665275149261697651158494077745189025229516112017567614734789579247861417264980430311575345489266555263489509508908445985378058498492576892517134200093798103930389251655714472506557636570070163117400321548768923202875240573108425050599725646015085248837700271239667814274165470917240955976957713871057485998933016463543964963034826936181257430913435738035209375301843859803335863823040217722552429510083288832181323847778203097562979916559658609923048049331930183641156526325723698504549354526066173071674597759078022788940104597075879560143730585678312173995345487353359732495079724469061017358458475290335136514617610713010383303434185385381590156725015729659099790098329333363375925787215967450614412050315210508648771137393509690791653588152444523152234183189164370967176662230935010843612260609577724313423691907960735277247580405538573449811418747730589385284254658546735548257888329308945698886017986390199508327782935607723148554360188463602286115334960612211960619873368265344376471751421021813415808831014498342029460714704008926543561809684880150513784857688844720183413842898464212011447218577592981844260819314330355304682132351882310880775332354308385477954433384567594074625475475289268186562383215102685071708415819776713501855216019007123364259539741417838906492284104346529251829556363098504941275495448560398897149232224600012347924624566696150903465327636979056806585041270299951087600080239178904799715155627040370562208729491002317345770478354404195690468965260945833098990971852916050940702276340242800478361641127846143967333820514404205452628884303466131573477399858123287591379913601671122869014270865469356713898623779911003088993002123395450294332287984140238234359405308789741824631493789847439019564719104309554261973791148355499033743655013574809222105548908818341714950943057266418529123144954197939668697301164020660918797240401937482364280721684601066652321948919461532525793244130716415244776185847873763202361944789787195595959082088887768732429194993724285061967601132371882251469317888205985085671240488710191696093921210692998404669229142834673264406762883473649975098569791262224594099963514548470882154121062678689374251925266520072276577933179968555268653575082531043813275839569452534567628614666789604081948277829622203708930674666386133529463587760737075490934679885768057212121973181492289581094448329710585554127201150625602436381932965979359575928470022322603027171912991337291088374558098891858974149759881700856557275394654801855636531555873650313008683197071358401195072226344420564253685336268985385620407553455321759354182222628041523901856680048403736248414536320777015999302231195843649065047512000505087252528579993610217390325938480450603503402858908312747587018831774515516887761037059806469366543284799927286479386440840683461103272009191001813197511705686970231021349810484439649790257947003283467854531014576622218246122485261807983724320941125833575480258411997875499812567570704868825125995582378186683196866667564168064302255346048080558969456143386479659640825460904749789153013216693466856809676275112806764632274724533488847488072142121781918727130028131469339422821994405211531271521350094209358350128683940380351589212024021009622624484299823832502684591632857305088003798219938316640147525768260051092139392382568127191267760393759214896362107671636954498480891159904515243716371793790117412881236887264967350887827201197831670809657033814996258968226995391016795334190476601739355894523765315530008598948133229492297442810888948079287191397738414398607693240871080783654406952065812964546642283395573146027387137700225408289880753982971579962868707340546309421400113960823315074461918060079219722482840727526689148913573979177233833722821465379958178863184676380672866192519477568584823398775162665774164107853177591612804461154343140742793602423196007798297431313645553806201548055817341453775194912135028341094584177425848945379170938586121373809504105215960887408312243906986816603280365793085097250663071863644175526520107005972948356260260007531509265197753836209842140153794995930361019878553017290417069739326745271628773573115829684881647264447156063125871071675583481223965773675110054623454910998671496015530398378814508573369364772618400504821295547836689743739887815068938293431141703808701624271304773840362531704745923518720766136818195548246564268043152683799021163583912298951955297599871626460610169400577652045688113842184353967205193427546497665970844778769384255816799098710471520103768205350380173268678416187059209120403735622542496285297119705686982353074671668827089091523785540488310555104251162410820728290788272290035775632737288449092198935963675204572040389791720067212195287533796733786059371647248859354436485133139185046279974535212109680523656723461485897223990013532483941701327527572073543492076222500670574125502776860421126347518077025838773009458747583444850209120338954499654616246337946922020010307400603423760849083664677474668167803968162070212556971432407131608297901028577142145286831074848443392026164086446361506813215935989437135715634668523072871861317937268304356973181267728163559489507264929523532793829840269278183665413095679795690475905723750246500149770468387926390245142575716133479552853755728357172368713391918425394874233792747585852365662576280010069653602858183979692128633186409024512728199609608898338371015484904826587729001284633264750300888432943446318916301451517406332511126205234991418285258844114709507808159585577151976715095623106219794622134522609775708729526453106597252819786987705397369882626727486226317935733092070648718786104217260466158613402212145873947512095242806497563146315247726132232406345278904460374944037165956488300381571220844586711616286729580773362651405274199818378769433472279139209587871288907241768491348126415043547441799645300924154446267797017191745724505969541918197523441403613917593077776777752936325557217691539938833328475076774345860506212216876762064029365880946727767576668903163731402559829237121487105587757603669125652723669314248225396357250948768902995063194842610416221262500104352506829512404610101101865249006230304140725531526272337494650617767260030542214740997057270210459514522678710170778762708193111369176683449333813649043859993774353946197943524940642848037240211060889043434823756329482010206294836242340148613647458478729254967784599559773221655792065341971907128260623588462901604768020681084117647379455381860568073872204184097585681668232489718353554738706294972975028340975021910488140427186281116287044904934803636229910028306447915847419777331938399327847324175965451632909784045283182911033540545845549987276805027730648771827206367831000958726231952411757943999225328473300175841824003409396026101113017955490379135521139193740138401530206918969931506009516543650084784246558231254287942162258000545539407227432943511728617820603850998826813785953065511809348166901787410824554314892413537785656705324036512268819987236649842819142312240779985084609632322406109795824329493309527198022809538641185498280036908369768539169202949364177000962472681741923459006663309039278329491268924309895080114831209729737681107256886935355721349523928163438914843776515480818660193888108663082249481230456133889111315675758085352774632818677440576714367737876329145754459713589619175560503726229954063894773805493802927062393092487261380365585905503519313692836136714627154289869441542988837264033087734725202993730462480084616012395579076855030884565042104066666077071583812750527408449988546345066678136348185123870285677268669773736542245967940733816449244887673152648233047329673765570511126660952735007213926601598148918901255850775228577253844726850534057321619563582369446821280955814554043805130075850254527826767192812119962344670078258030539846055353719065445250693206710877104772704239562034718891412076430930098097508516498979858787307830491342252141363556230573398020427404380750003510299768285960955552669450529629919291912295185000636476007022749037778751595491439866895773011972078364744321993166960675311185976360507418926586192687303426688086351403563502874995222794938726787223751346652325999856619136743731521901081354622428551639524342651358333952926119798344280979199536593033903891941796141251669697574483534718040060300082302773083671736475126843285112762743158376569801111158525110100979642141834118919722493584044521239740101344667835335181178865457791795035920044783948139647095643470967691795250967267342543624707207507144299940228780874591549378209027235620937893133932204287089331925987525338655079881819520492376254657967580708820192855772961822435502305829774482677211017223096957638628501768839513707859087328781612070265015994030406551431390646640460632828945875510943721947628400639650541046954371318771104216035071157143079975111008576804701477879880914022786989588132265326678937440995005912575603235862269503631880052541812826224161626073712869299340501036680388125107659236716328936650223757780510406638949742863220129062758791382808245776363464647977664754315608074605042982353355603551793911872382133877280568520792343626554009377207990482940036582024730598169780793531614121685564644786393081995127265141578755251301371358384997239749014809845474993985085129314073620619825293195983170442196399192142618368613323048846254243274625750703733695257786542865957440383564539943874499150589800593868586125880447601667888213546159604190934899475904723602878000002571612181086172913179419964176311600435459327070126191651356656424449722656602155407805048914657249326270592750763828994475582306547039633379151601091217321721419808068673563953299636297303845786187413612893874428591910609608625950427623122901972540705297026910433435650615093240766919971301051287017806713683432527955795228583613638601500059564073746751922674788610754471123432114159236886203358895181625948778048584854600671946287938797760201585835118801133568311344302575852285315715388487945647256796364263782557860064670022025047727886091519857928843942241073021978661811987012214340090364010355116858165418946868173961320947333906616351955376705012094484720663567630243989522506727413791569046311903315869464466032433077175207466080729767291134957241443936774561326447198560311990615189805107501702219426825692260774484049988916523314865297351013784818162734130337084324852014810422051539047787555355705845216636201017738449519189150854787831119312619777921426683453319610965373739398273627998678388917322466852342561135000097242490400338740478084129868673104810436874688637333466463083044527415305274785535615006029531361739321881153595330917804784912443476557227647589567727546828156682209789682845612484653963697530368873148432197147771804348358876881622368903489134649919341757402069560524810866875251914172784477333492030773006333069561964722866134249795593172554267730401517425239233007412016051620323728351819935152473757750493999933996164991242546661801243039808399105001109717406736295351874889785040180254025281861866788651475479152736944623737255594609690452969409802455335561035711835941514066401750168108230307436858034897476281941426326156512827737958307600406120600840612888125744050167916152348804879454534285738074892220324063704083521907785040306263923948879091065845182686322108891455393149983619575349493848013700706808189669505199317845290804709350937648752592735976955556205525032385372918482249919989540707400979475380558655018316965689177354538458248815603220222654748930644520518807173356976734242942506353160086690018847484483554771684569662608617371365950086457135189630844176021516295813960610249354420944607034886887281962269326923613292398424427901473378669264355165740689369049690397621857720785870477161400075209327681461463716193101258731407886371947179295998900563616130009623034527696330419529409526374500381824122726455729493376053157556776493369455264474692355760776013012501881487476612491159424096981795614187586102128242416860195854134825610103481105478366206779030893883183093288482397389701713210001141333353491390009974749455141662601430837819415753416998516835358398699297527000168417592623025052530906485612842310368365719000480102298007100956886077209782973240915104935340437229333231265430329120769814674760509472076571859075612711794538297735399443793373604691799789876780131682756117660925998317379848933731110511587220642237540993495989929854840393676443368804200528174747764238308615651043465662818165796244488355213705481771978722560494806618624386202254983255252855280573228852949761465748503389557187482029863427543998313672209918010120274754146677472719107760737460430275844104010018840376430721072950541623834822219220181738824804185993895407918702612377879000990027955401886303204730264602532531538477065822364641773538635204847123833595812607688710689152554881611438144497032589553147235259825140523228808865185395765471822034512398483808201142508778415306466550596764111399396204257346387066754602794712635401656282364015624312488224431458566471497828345166899973505355855593992521478997797132211064893686368956492509293231071922450959245772381599042214192347163207622472373248708575854508810591408884374240859920676796719279390822715904540853058082792122963147309225866028489513818973896066260252163124075766616306920854293600744838280404727863738052527259679396954752336618543950690353180138899816367035914877985660363802595010299469953653133715538338879995159949393989013654956779504469183514243033958234009975531838221699906222407258714993606920284337234213410852314714676225835916773336978456030467712679261098106774879842421150644780188320230750684759212405501322792402188146497459046905488249017214042598660540946695763222868874383778772409649438094146673380943071337408395561827449950547892005367231193726351036051818065928721213607062293619319444056846749488236193561815553791580252283655270882892894397984963960685247464244884004860162289534205282311748765802522047371271590257212400476794005265545033973964314868686774999676671769609946834580332922109824998180706324992380358955780604035015246741850076974118856253901417022360963974048497811997417117546649258257313241140158774804515696687101078285797946158307054474414638952217565919202272024501008532204304315512394962725867711827831473349055614724857257230912418294780516595005631446512530532368829269293137712095147181572960462215485674973507072190354483542883426056465737679203345154230867473225596521272435835044338147761095107886834151347214243143244821451543084588282398293349812793414705896577886403525890002977003701365069648190797655710240923369995573275513852514630779985532091893550165300900163117549916134579067370165114278653362434782434186332036223205351545057981860226116572637069822406270312705023578414668420000493882792936251255193173853136239540704461934002944799772294606340979707351130069029624484503456162892736234469246699372316950576388691012746217181616022114433127826773940926216293010153041337717198222482194771026353753940181093674421916520606612020158963139780978261867125533283760625876443410399065443117563068863017122397153400339918058514562261467274210673948588340464334552630584118986781601811172248576210307443833168349046389911774683809935912358753798675419034558744628973864285094142363821161298754906507515615025334151710244386203846705747672285755819958719665401919339988291373866341183513989116282768982159131277711967295917888403694105985339311506924436974619475578391514118380567433455143817626460715146704491863841722151334730610266936507918473333588572032928031883823666095242498556821202242421968439517802207848889273827732907694871315940039671424065704410631509502290177440075423112444565003436751408104250075473395656214483321863612666266737586872801173363441267689391222888830749939253743905853440897619764550084998813295452834240158099479054532859075020396154984144879682823086328119432866936474238991299785780833631707144564003368193453579543801469520673216670201309719102896440213438561408495715075568140080653845400594162566960748553409458551465365511570898979672701194276110828779521186723876759287115567086837974037211984165585029822747141700883685674792128219326780178534168557216617059390856601493438214865390678714011625893510320156711846385180752576699615207534764988373567754238128545234582865350158509563833633649964238534479264799738287004274694018469256579264337757983081859008380151385429028949405023528536869606116260752564707668079740116351900732127188681883097207995615661470224064054718416821751755763483984574590279708704303110581820472430115458894811676073844369090093204177005512235595119785079516376302812892734173094490749116619784967224213381188809710910188660551578101318239925283978036566227497078198562279042511131577294319095339483259508003449930036458261556531524152144212124035092037943653920937794991714406821082925288232009958668848156480357672122700050420583342147007005128725341908504585191789653559558607480808506701509236040160205389717789269589804818300141432173762406967479878462483347139248825118325218872410294339848588702879398386276749876502911218216964732019452083888854651618677631507307086227723908316132727146038692510126567481342773758819939845517409168913145259991931498370851850051359155080803321758673290523919391997325610637276321491837862613303035596802198074023078564030718379975258616002869652888694286217909348062317704535826618465957060547568394942803035249490477755633893486510455524287663850204203435059639845488585717350771963749900403685753070045597529500821552769662329218728109836733665003016719453205536711642228512832377549927829493530596470556916446099991191294094644904424613957807914645456578443436104506966150413588848176009239246398220917807743410804814107928287861836750741821525263831229289550166868103799783574778617120937659941393034813621606037804872628620924195140765080849663018313389196969610805883681207742715546535850411188016042821347343308324235108063405577586766456618008787350675151511321631815638918625594103421043214651635222641309841156209850842484671255958328902859822944290586574430541900192193242865514466458094122464710513423604670951447059919061263338191364727276420329822239983760582441733994792223278982775511077478076830976489784977872112353304383441304426114911597260332986159164436941813799872584057205739318213056838674404164343175326633323558444663893525528746774410952896822442777376153176459800353352480005706766284094249148905673456085682759595464336487236612116397072993799987778109615952900816480128779428905625522360087002238471619529328089703388422899578299752062771269793069542156740526672489434360242033240658842026232776521560031959101328452572154876025905437166523836618916044717485807242239549232243830965142704263002414557957586264242730976552408952402031554339362914254320616915467575363619715516448924614758260178163998788125066322569056719280346146671149662048065223450595635454638739667267372969579492861969147776942749247824135825942049958230148813123806215578625145293457373013726048155440920259670402564638186184335625756272347605523242433881205877849787323117245333255920171587391060048419070553778239172759393187486497839768232029967199630556212347644319125986279061310640254218835450304450371889144184135290055016973289575623474569801194856580747234114256550828482681763805521876026624459670777836225993189871411491127906329667165468985835043101631051368149479702270778591894487419872322307882969941296543012049842542313645380737910259903399639098854246177054829837468890759641513808356038322200435214423550126925494105750608708618567877881062264493688321489064597451522011224656440246807797448227281986025805147354603678934250087571352261227233908776784192228676312290590867982782328089849086383151509187088692971285773233667420831380761761066597956551843888566860190952743305233828927110521887795509600108468306254574777759062313804645268542896357863966624440261905313128600976872635301795953287965107736746103761343576291508221750540014389418469144912830131287298228099993375646904687659974582746626137725808401715955344511588667691048311476731370526659530021921585169136364721905183644807692606916938055656859567447094181736972615607575477732151645308441291945412696841201589169896000216062004336763059466286069267288935854381675119559688374802560730995313666288263789632672527446843581618385899840922947901345655291349834989046067595557579011654797083230418363073274592275561487329681955949022736922747268610729172794764147352266971001420945467382931147733321541762251142455133757647895049216779155028308600575877438512857597119986233158614164575427638116988213277009181695859899420333792697274395738068338479527802366620376113538692724735327838373910690407857316804289542823920705153667187120390607419462233766885816749273495380298736175226642004991638845197809794560580863509033550549061645308983994075531464480196727150857944136669971267912529956641373432816199437421480958595223992124918757154254538839269999444585849661458556222741787751788978047089618931612353485690565516786440044692920035639947995187025687042426260001948601958117459515575583612891537248805512079410755479551149776168350204440126412001550581526040790717192016348413936784346483677376820011978273261138919407648738474659203636980874912679940335644842568825037017485284309789570442753761388228362999672463334591163447743787960558549384863063759921112798259187694602222328544151858550865741514213566397496602374676708316594312550259124183629921789525593131913857307203567856057757601450785847596952232008087271120702963970893641076511881893358254477363149476719859533710484096849141751932364694527159386445763881512943007889988873611872532660672680488254672895388581378738012370572747107873853660848292496254704597257301588061719395311024541651792180008585007216791992316718561753226151581415934284682344234686497812572520046314017527245219575062798787525234062647921515928084640189137332705774676895238163359549452595288359026374060838296043261558264303109578213085303568479618604901292479417978049944087866813176223504971158289404312486996326841791823896867071429498574351949608183140357945922456668651223796728448482303666782174705399147740471626648660661191145831379326928378655732949004135652936564956304737518434723761184396147626084431436330521032492755294993014418067003782297213845418844324590173467387276726508582982609735376181309145574520291716331552355895836411373829969503371666831585257660517489018384114373364477341725057772289965576051059631989531965861797303885562372897169295826417559131252723871539410891137430778145543516818007608129274518813510389073516619414041188819085164739688125339670375569533988762673923180335404441212976179724870975106101134323816774829753612604101252883651695760773800541039638635186014274833459714351539691677338324890604673405206318342395208682116753373457959724264041085244887778223683826676929005647662458694112260425487163199678524616270748311307894174536256988037609170835574884064020064429948874573995447332541271914904825036756199056845596267216950628699995709067225212829162129307704292165745353488487744063379856885176103440150054793381732242948696429702508907673410352276245838163973408786165271240822872594872157012654326228912650901600844100464224066153522124761656492895913063283263566216464487095165038454840962698478266729617327883840018776531299182866866931209988661672246014914427643238054779618938017394417544189214315117058761439320130768324039271999561361776594485538795416043999845399807239406138537877192555220332346401233365540668078119320281186080443225729040211464092118843855462716318655730715040435674154964104505427417819336389770947002597916074716493281860626186791845031721723721541646751983217724301744532743150445326042141332975472839412744266986427021004761313551123783241336475175398724677941138824160699155074578343799108023873492634255526882525209939743151822084270834550046538276441949627547969536056788281463657216534351770653996308531289431339731685802029789937054423946081527494636629694892298115881293988541280763881130185851803645374430098567780995535026291084206235427153236214956978805206645473154258559256566303029913114239851999975286453969243911879733378059003435851508715001855975350492689343782536853341591900687617166307210180319152326032441859910379288190536660480235595895110010170808602022466890593574629380105360274717838379808824009271224069394593403204716267864561735162163784393080263623900641300031917536573785662464465881325543874037821142554228679759923220699838615748061570722095126507419142992852564879093084522453273784444125918799174469193283877939117046727349364818174946331880012484624971379393565040246965024487593799859874781844823976568242988013120271967439557449695401766456299072760430848336300633101817062885451807433390193897841504378877637785564445483160005244676509266311819445845492185019644054376034093948682655162347406937134260912022984507321377808004835779596646468953128116045189386743169798777613589009507476342167445407259565841710780112326604257315358105123775874332139381443859585546300210118159160047851857531476389173794647886203837960265030865320659381851928108849869750140238852159505008546457351829944020839497218144458036874218546355656033798912239768080426319540962463663343705912106202481812147650391368836982970834368385652387724570166655551865721075048783539605292128117800036324734072946902399176701627167031984699346192822180319023674918148380479119962792828587579495021944455803201664110707735391807741413946818050935396032134906943276348003208879519434241628953381883929836884867714484866177966072399656237255638297840509941290658684226362468662229537479391020108660689916583127810258958189924561885706724913273580320892870929089239155560459642236183414061523634129041695049003503715366263531523185736974754494145612636290992391647921415979226293344883236944095001758469659791616536295187018881082865983804486077725015980199958567474045508238680300708083259013658344582754792397834662097219462716910899298394504785747992884724347065470743389854595268469631494996672973477887209755567661673035895193285099538423142563327301059771141095416481969261032194729262596011063851011236099356232821281888820161458426563959679467545731532761426208020170589520398187716839854525380107080049464131182067098021212014419827214376365970168214235123270074518563166245005287468350465969636912066780497453438105665135200224169060053519078096416506130199551921665759088526287465402765113734416139776564249864220212366698097301259819418183646494987719589368732108872222620282134268546547546316979398219891504374030204666753316961395239366939667094002886454017860094037037282953775234825873002263289450144660901137406587216989979031089233833093604259316989835962310273243620018775894785236757792721499265892712316779835664173501647057363574085419831392055443553834755173559675843853795174987781155770414265422534753683980291102540307581263913870598225769781890912534206516257434205422795371321244390050762286992081389008941785980604040426152522405017371090537888001811597806850196352494578382319139637456754022233316141688834334518473149356243502383607989531893660551549997067331225658421730336985103078710452236591930282553298276738069984709321387858974965962774885724418417647200564202178909052673705292019276834123449150557720088768177992201811119555553442724567390972148340308895082217028045159905589527152318843258062808936919655000441562941238789021566815358771477203997229869042316199760330634454764484651424569500781958654260095653607522201069739957521444416937685397928055415838425261686924970354712718389382989204701952623358257193350752085905882576908019137877882641161823654595903968101941865045115210605908215859054273546720252219495139107090682020070806781021569599813620578742677401109385926718095875299894752738205111287898404346382524564824295808640378336763885227789182692491447938764128577725479556046930350633698689331190726460510238391581415627216134683652486622480652911812440442330720821192155758124288247007701121466416612527538157744222646411584882937683233492419649275350623164023095448273394654597760456102848352734335474018745910236275925423547977228353566771812174063753679491049797390058649204690545408526916480290200847329081183893920805270479209575213084865693644988401217083681279864806102934682306920204130700498072234745445497690867219587208389730250247814454330123672603436246119509601512434309085090035709244605867226245640901906074751167064974758065907340143794600618637715657608364361688645811027361890335099165572227178937235834165383692081842489574948389912214963871066237492653655379970733371038541990478529307867961592924226615481524987549302756152761765165321174150104888454189277846167915382604840366514639377243785416554454280549103425909747240459786717541005649069708723311372440267601991435349809913774133577025391298772426130831188485441015466526580155836144862145852251653629909047472519966318278099371431972662525598499840802359510836990495401954980995033670097145309190899554038032818653147276148652190177948060066838749749700166676669257642424361193037190538803603788250235753183308916462447893209414924036421923800047306317235174692308685130337993061745794799683291939555862248327630477070457775869609536827296786731763316781283193017895869862127399111383184853525550575284312790948772196740697961162991402973403183475180437432114513043261364880913086284759161457267410229810068946840070702580858331861708272195280135137194501726972085910131755304897320808689498197689546190135484017097759998746069491684553144985144638007144271933345682644866494519210567141154706902311874295822333961949617204102564056438182441891590088028542120750490036748329437134162062327584399950380845953136828210237833414350823636396132937238083166174617037193265114631778453940753240545953294517989425311680412925205016379068216961329168665436636152136270482992866699023205247467516763630895912220268751399576673302167029661202880421154357878769795661575651106160212582935821870226109020706346063907154882801292534493235962803743283583693290530822937372132171699435965066584557963764081601639530386273568505125667075097856402130582184178153049394368316633065822725153785351744291932502918347840468868010833132973856326645475327139780799933543772211317939029014675933156259115115310863786285323684286982545928093213039330964391112335061274468205993857256310008580413485921379571618632365175686082455719340230220725798959507058684805376410254672422373395561234115812011645410258149299324021414119295669542498862295133113963012077221032913700850529489932930558366228110396790967949947105352862125995907195296945196127711946096644155792259806438648042605440855047973393112730646424895917803608854327853797971507646974810575643412532926509726401455702321349170484812033648660205822278160858783178438726026888035883927271486331156058343666730266272830333974151608541046610489499282451682524368347091206066795686887665379803541839687863498009318032004405237322884768183922129654949974739643026335416642447919568947365278065166182956550598195268859196373241324709304505317894277490089797469454789906660336165302772825524545236175996324207375290569956944795553638345284067957128121066354369460066064736454790872718282482055857340142226226599034958137265713617451937839208141514537100255417889641714736095549763244609533360802499413808182718287266949629172663280913566651017570554727771136969955979487388960408083931503130682468190513747941115448684333938910584365329359023057444876222050057377874568392456139387503885308095486360242444356798608308164701472246845990753288226663144539618835212675426261166869465892351435600690451277890548714275336702570631424248373594479810014426014415049270252268489507571186386875937729165968404835905070731730030604748449769912759604410799814108824938944459433885661911929986210761242687018013918190020112254055757222397575232289145793425175933000630909607818125956112536806212968053206116446637792512142281751504621073737219601103107152961780887052995950351336471538668518088789477300383033065416520453819186553172801983730347564616883984152083241901367115344508806576172339020086963787571118549893192558859763716083740956846523635154845242645456790661974342651829987487936703540215034051825524856520960858374255953211453882440418621116401018590571800479376561032435495252941394467481139776300380842244711665907412531629409473363102334859047323274519873953377016547417251192343952063408535783521866519640642151523700948462606718484715831559545364647489632119232836092794306941384458532586834875818423253097539065053928148041791933893599080498315328511129997493132267734249501612231306800427823821601359921364129439475353780291805663149683182048004396770727547582267657777732021034465540722781823933599696337721473581009987352994130606335848156546227756394202202160652961302164185516415981184162587451745826545068180615505382622584067715700546275980660840640751507523851737094842845882275095565961906981500630459225843802802010792882509042976181451449862793954702118763244480557743684249036190803079943147613399177268920109217059345262562237630253962144156466576115677410199851590230375577688374971258941287331723290314644809726181597461782075716796766706621715974671282997602845677671371228995385609550310982448698416619119647029946165506801222674202117725305145258579174813763552601498289685413519116479677389668660070246457853583954039327727840748843640832008100372392538045769707596614191517986055265330704930102637207076393900837887681695412759219652035898009353727316780987102275744607637041230753044876662377296797655069629748649423758049921141966273226623781574585504762461106042036167382263770559948172127657407463166797463183913148165929555296726591553329232059985608836200303538175111564244878762695209716123973660813162665956208256899992769289235412463304034995241202106408735077789943852812097587705863025136269249869264667428059033517981093680115689798071663475734933888676909494801027771008410215534868527170245396401340585405539473731630975166488555783497677411483136630287195341204572143043843019397018166483089995104105178034200501723791173694253156483511419264084755425499877027709514450860882457064193271995125409225191820279451689655382332769719600222289027575395806646380385980002507789148785300972938287549238964864116420423311969248879121703111075270691833522701139440199832896764153431448734995427910194567765697465228577263301173601332463852111219375421893864333655445733510415649782772397450337200424373880855466003573264965795863858905750305722186723034025746653712976127603693673291529652144001063458403087792650967561335473501602714662531040939820316195791255917658470550111226203444858947979376711946008267876421493938862532701625109452668568829528140523089026074761439195443365301424068359062821747498438418701745930733674715341822176965742778344990225077381293636922806800395518259582865730896054271957596688129153741338769903977520542945705214268609199121968838433858772838162991710503881822603068563234781090778180732985111619454838339296727107334920794774059804225799926032849301019198856617402882598894409069249475471500971662584448413134485037642371911835850083676118292747883008300912308309393062365312281223125161819971857859033588274707523016117363633144601472804241174369882504962768618911355775359591323644728181305072822941144529149623544272807700417855071228353840705223204502134890050452483038153418423196855253688366303444666134160020698536626767365549253560892832242591693337440057512213287359935351106919045874412629848288309742314733847113534125652652082441199708895378571616439096349417645737832924793191236061217023721130284032065281406811635527910701494869740867875442672885897400178306513166297472404142907864665593833584550814477202563791480418405438612885832176033061894573330174986713244652081912638986477504206037610607963823258222441678213852145142341685785200166940513364195003646585811712796707027238502181696840111862724959618522429449051679344539321724726328052073692016717592062190418750027083747306588669047795312406104826314087660333616681686255000478771967265625379249159801361591139250520054656393486990267865703580879959195079302676939532485004817795911504877636006960351152373565462697555264692075657760793011826547565423341296011561388273285745933109403030011501007626198421009360041405767664969557787805577677012491016941413685031643338864175343385174463573924353184187873997194465227243263748514394542175556834114944478162706167900485517909612647879523798345781163810499025967658809234206191150307969715770478441665132710244238581272529177560509381946875142219940118210934748368457269801083452672507651864243393064728613687474517132189583643757858430575104431506976826171154591926705377727426350045432291037447886278685086126482680091668148928403596314970696150537653565630779218362595319565414562393860580116909046793881421512020069174039132390021679175116866679735427184163832156377205390389611528800664133240021525794403227854064313409623419174168111991269794689684627105014608747867760837275508848987375900380522699829323522793895002650340771335474557688583857900416888158504814673303897404892901801939962330564594149376902520728591746598568767005935082290538957558205849613250483681043920845550569149365047364198698117017003417070744192143080554759393766508079453258861377324407552261469883446597761424788852298081401350306922987622912168463121572601916278665849858045120556151863871470048443554536579146218216774130618957551014648651863242339436609204050324818460298999695057715172212641193042605057702755187913527847432217783179196634863657200146481270333503764148889102789682627564200821305302300766335409175649228135901977078510814253058738931480343621213740201395146762543463016625294768390276913599043745946269789916554386133788425645133319606159984117508568339672007245038483596672361519210660936758116351063239680146519404601486138891161184226627040339753709407362777886688394712100634584414499187963966570149059816087734633398047447181913398811592246801872884226791116365286457501036386738443665486688693414712378184102775851655182002371306774716501427497641081666734850276045432409442614387356628988703422170006440957008281009101239263547824958557462842831795159695191490054987105545803749794700469958309170330003043731341394577689130032126165021605319711461539053765939172697337523033110890262999129268366300596401005327872594668167410322158125543491629864550866791152447022795852972481873006353843294734745558955464562588926443975629360860772839613762613223458231558874705469966340397122653071648553557111246711181805602313253589060245657561918069568621292538855947264082578299786773185994821449722878334442617995119393485074751336495307241715671235639799881364448244068168492791713769154838320019164139673489231592914231028198966709083816624440104979891579721746535675986433615374256792649641118163384097756717885167152765639238529360617613486596957208626086338869829967521053451937411930517779735463666406439091005563688022550957855597375063953662603792260602465692316545568450525964936571648568550365502315835495834918701141894783274716169558615309740440111798752593678805961981982603538394806381435453279240532088117321681163050799133034405344094841101068793563804719996727249871915011869087847837011531388624216673957537605306199834630020711805267179307309760831305218063472236117008065682142864061948432845181016481104733468278999580460539379783069151984922235061795158538712581307195428596512920468121486872374260277344623798060161647908401131484629119240033835193362441239028714770926312101257350253385031004336276335310189635580036182169074114307749204336095787025005182811206044412361169608286144626751989591075546981018251131281314540188827903597705786829342848769347906503891857303823779360628028940403699052599553089790408856537479021400919620764466612391813283325942657715798148358726771342412083767367807517768783711618388847873393468141708607359293394408502275085100873168068381844126593100674672108604802216125453153361791895349910887446232043426785475687877630101029959194408238730297456243244774685169042168393863708791528471301725414137162964135556402749681375324759485349553136895572465302944567010340655627338197057341615756329962974521843048465892742323265822155356728336723726875612250385731375135296069200187285970083767684396268789922142813097555357054978595329565867753712918693719606382693793211278159559376675796644937255159656258079721488327385176982763880946549722415841169788424928368300709906129223283813197927820482964795963270966888526181352184182177608994418065902848946779536816286540774245664693049882090365321033577882053441687970535858941993658425712745508706139753394122922897324058983101339402047277999312511158702550097976206922458540581921292255447623831546938830685460677172258278117475720004964139028004910878003677447392928470248329288292127426225575092427323048983488924495049446147116594812297663457670616963850306698463097909452849742656775463233569425656338982143997058578807271107192362489937245442254923848925270460889248585988891416330281754220666681439376983897839901798090511868353780042724484678106382737569704061153487779731693993417393867051013169337971444439279910432600481846006230512959249250247298443704164146940397695152158430058838327636689997879346963311710633404674857453715551796880401590311647513711167007950472459463913129402969002872248887280616848636526864915454049426951120771524537373642930397542781596953569203726699229664394530960052632413242022656451819292259269692495699662211253924935471833393768308018999040137905183407322488032808685677720219114282716068264054272128968852561689892222544020275446851439831354717334582419745784097392904287298806926751576975622795063030805031174748708155155002844556866871185994717993208834984925844386192921659536531665971137841652049091677497274211454710753722797960795243180514970688546712517311005578417328763974213077693608217997446189623074297863769793970634506801532098687883995734815679482895606577173167523564773452785449310591027901633278958330342661532960212345322980029839108719173802967584630576187243448408163562877056727735087267260308437869000121563959984678016634829488656642151086221778767214317483505412045237100677296664954955306259909721111325932977233914898119900715961441866206019241725392883118577317653241005354773821870164842236805578808659806871522112453622770609462998900966258132680809200588053602026405185386586061492443402396563102187973230386316325640136755588450267572119416366751470761212155607127135042764861233323157666380370218306327123358600857637364896014504849182224781803716179045485803241832530693447620312137178770529310674645429725648820328333882000524398568747420519030631711838927421153061061045587966709776322093093805565477950351486422024555737351631143418525888132708498955784148082684153496260096163735510275462866911128570871587258697874072081086900181310431323501082135788388479487369934760067542260143030660480307441098582108696681621120143834949794228196528689187727477963745159475107459409986716722074212538409855030818383989672495414537515166965126984191142905465197090243745122041924683934316967160752670655395176438189973141356913568936046250924562388058263971629431538060096364284387986510177071225900863402018269185517567694778969339845167049288779465839387627225679210068150757509669540096816250521585543844806937410763936982402111504711380092449714568190169663138818175018419653859019514625057180940291304874640752972211663260437274141254905187215584293889827385147649250856517473383234025304186549675515317308328506936105584381440559716243449543608027894743311894941133465712599712234832183934322732597508401791199671337520476227526496723612333307161291221361536494122425711163217970305625947796961481485199528050526143474619565374215227817310225433218524487659728687182265516197420023737790998713952446636249537625484075908182843014371448271795429394774019414332209381936346092725240235120818865372228496097383175715178095162905252291872021503049858651365540167424436312931515268720349099711720512292993305753465473881540371478597629953252032995853128865212843015036416928425862923998649703076240992192648125535620411452688563420404579201258003387406366649526949415150887077816014304301139561568627995758155358466394092427916856487397428172822515599506551385892981019026974135646259594764788776099124028912950662276770447936253215790775930650647034818805743609910579213655911265830823714167881101868804441573337341619358326077034667683056632688223991042251791096341763014440095684959786710963410422856756283303590106218390037783170457219290530346795003562394635777124637781659204538046467589921575674623691297864317170222613783630884406617795612561335126832777486085807225690895946856105020400654025407201588700149113816103414938428287643469455395947305274346839874327987644819430022336741300097451806077469507200429396524362538975619179421577789864233599188815883702939951251135320241432611534798469177484707667223070047929880533662932448557718992674401456057804808368110999126239505816721748837373681053042685960371464829561504759659048680005737873333408308602204478659683055589048881688131844631726631568851098482936705224621261575002486288833311442247159913296720496372451889931262800647294470561315086690245026746212492935981664526607846927451571620898623855904611906301021545975548687432758735165855139954884488066175786268627394773830125978622151170792439716044572648752335958143289923986981452366374120592761040568530577347568302197875860054658515397509847105533255533711533470094417663251889869534308967413681672164679598536693706875566041753032722860114150198002099509811395830150387606898464612549364782199630006462652171692888090320482488277910843779638276632543902845326727977713941148742823332028384627845616017341005056373005471852274758601261664230993334431429043394775952322252662049102776427415950868861891796709535972390410795456009169547490074635969080884642255835584516077400120428929256429843671775931257278385063890331681446984368886688133253209463290779418813080201587402313832241750025151924965173647466037072253997466353659198457395422378709572968814851561987914076248104205164586293006789598184837069496642784905379940956789471671411875833146040344030110461383644599051376848230684274692662802203461213147557405915429639077458775045738022870178345266576165717485645115547553166218410565953347388441454662764306352545912751301231953057764045396184457713419206092011958008618362870958021956417387830252680272635527161765323368946650091995587515255990049439757550812238651989250593433786742517923064328947194868981850794538429179567046973066477022773320189498330941563524844922150837666202586521572065592408243089958872437508567385967273453400630309430849693718708268123873356381517970185929661227933542485146190003906628228006546234492961113816547723716724901332297721020042985985655700961618146417044685267363888875886952020245949496479345598253560323088587784496652699972334342788779273672445980761213092579091633109108650257595240055484482449907737254188042941978711729510823736889953445473369293519948816124913144450153526603863797715125357468639360535404996265547764033784377207499915799493696284327413859429741469570255365005034047030840354332174119057238786064909769891314413165528660867020187817661661762180652973982398210462913738704545541085868237025550646162952010670435821013942121192559560918448506667098298345461808405758297332873313561517051367804196861744700834045041748197620771104991150789389514175202537543392527559218015935862177937461486761635955550112447957194654449602895485655369302808332891079682667393496028876544671485132034768545948995627152173893875538395375284395457269853850281553208376179386817183597263055614147899059871495805715868757805446674436839539575968136739855030103272428553058257294080100536328927679426401621855980848490859842559886849355073039720653099905393059506079556704305843070524273171826616373740084811208918773537153171663080637693821697976838231025801624615891268567646477414413375494187619527009749870870224509010780008290223428863722647206500917792166886370301377856607061937431139045538448191458597817042461452562710450544668100075653354951210638801353487516391791568799665386526721664976451070996176103227134470636202367855676780256830015529887688170753530005536566677327534177663723601328134100963497755063680913682084761585692266135365704749752524734601633518149522878097893496724771179784341259226708247883183225211451097922024980283478452997903806027605356076207299619004618397144250400401185368509155404711077144781086745193391849245868830409260875201298056776225349408604076418151896544472352672659774727776977871189343627365784879550781239777100211981584147197280005655963657481467774395081097364844579926666406347469760248729246638498995481717754003852495944011316173509430211868608621515494975498111877096756953530487866576280463380479691522102477506243167312678157175586088640760325704302235925231775965389927768922682369263084415602904400094934603694874352534885011957543028279888084565786867201587736627567513291683353424000358812862589576064610982412597308308529824809579154605608039584523803716721089158360106908610882565243786586317213540442574010888016770620306925702490727989503876615792708479683787837319113625219844581706117181254091199535373349920499797838425365538955294434615596606671049491919395950001962319510750999547465685261768688094330253460546048294391367037644977713863831021688989336151997533073869817960806606753931115455331149454132420350264557644936918907532062992096588779754885821153913285395440138927726620142409819609848923038542773280062868374342964809576920477633874714904614026474128405991709016115004729005829812378929845203242290366578815904336428517826370384774241168201050159789976332601051329865553960342553473470393761085767382882250526158752267033059577577254119654736340781643118720907451797359366594171551682145113493748967043573906927812544585451073412950513363732416525528383635440453626495150776790451044876110503634579582572490619366147416288720600514761462233000841806979159581135666400094876387597228263189211424744615191857113634772735308576194331941745919629590316340099962922423200180621862266631785570672294204271185761836472493854808301823952697761711571387955929532024828422413731884999790163656327203996720324520740512213883013870092252832519556949112844336451266758102395158477558530330520284020707122931239944082433726612781068913056928579915823252921189314853820620251770609603383352259725908760358788666935829400764973062759678565462598461798291047245353802334616637673363495594749906685704383893478101684727601296351146326247334853090191406369154144352840911122097580653985193141823500331160601340874443701774748894376440689323258455099008232801858232492269205876184295852061180820348311829109050327184554734100801541614353958652344205176154783858611490598490897907416567643970949542852399288103516286146406029641146543605527069933302151374546676282369586387387726572460057703694111791380777584159397217662734737688316151323884720657406615411883168437211330091268414437684783264083950711055162443694957046031428997752657402546082406726246229299682801930675378634959283978047733543948655881147677474867241757500140303682497055879522763949498531411758452469263776778240908963411175450277167732134868987080933202063913089401624899701234364531591112183600144024306467015427268575944304826293746690207394094934607110074426967645773859180985184570809155971704737150141499232266448434008082562821894493162268789948866865196982932251838172621368603370675807899428254657084282673228896941572247518000031003307410899550628523677314349178540484653751065260855276554187920808163333771877241471318124984050372083330198554272155221412584359620667271948959625786358117641003057086856320341364759419755616513951312438761659943349716510319096298885157773848548349501890464319599548299725153854398249242998757392124097864780120965002550653174145784316822288791403624065758965003422607672395648341142630677534600441566214459679977629723137523871694497048669399477851215714924200344319139847420428335484461741593086806660106348872938006464387053419035500946019939960098853154614317128853314537479516070156874983903349087861207535580982242717802219959214743474919855751962073258337810380741631784663370472201245369267473577365900133051539999964324424911836705809104431984418196395663353893964305566657866459163149777000623114725810299975473659845275043876165811224749676337833420753404723487992096216386910451376501586591087674688399434804000925336697380520547973609553153672942061103216159153111458265379163702699795648254566727159326166701370147908960848934828562604355043263771565463763480932487301459811999943319596938278656011779845718174476133595174314391818255854400942763459626600082916821418140924213922286595644555807150362238891076911136326368158201122349325385222580338647360497586854042806684380485690356023135228311251509586011360030396582524961668882592708163310535818847949621600988578232737317529914654049437799130135071271619064497986117562013787123914928981298948637076370815422791673032688560404366039959480886083386397632012146477053498522134011567174174417068525943610166251909500809441241711706960170062099518034551621115534463373010724035807396869206070511088724883168617447650975320792263997388235166940586324491254354460823757946752885835527480086093005296134150170259887131250200675560777470818402946177347371479251473795892783486675170505551319489641069719601141792376528701925167303638650037947156641921417317548938996014985264324426472780988955564989961688382854218452199240853051640704614359459893229877871242766854372472865703252376388726881965081425209782844995587668364015100972280504206891133511369480478690949662400292139225485048756087251493357213920099132814484352098426846853039521218916752730930394612957561184305730738353405888494843774597097936950041507465701561701642428093973596103702923679325180558299398015452411317900773599545863850534121773761947954981339771601582566325878649633067938061409069288952523278714166086831429797651885293808569490698337516224930976664695621783093377499087403189578626297483052516256809553898778658596393718150293609426297832713639351748684815467793433385602716329081673322282271768965578660272033472241123712034942812192574908017132796236415938638789335551803516221010698534845048260803747023403723693229762508389226303467416602264174029687131237499695657461873381289383254168824802400787951507883457539596518185552917213982617159078060589071984536956153419437348543976108795777782451860404975058546541522980005379177797217434861693481151382402305033547759075027417611750244307950869828187943566056511134015018657990361921252069531596879059182363449846242794515637806528345323060609494058119438330482068302959976000147159481162936058866492611701344264048674584236682572167532520607504125907582800177825301258907731516113881705782375855332732767004491992749033307891027155220776211046993409918965269055609910997134928774753851407688817356194881360739169458007688045924500833760864643836093718734604528129357228721555298635464618860561254672787585073826610427988003606064876699379298858016443313705342726994338660549176883529927974682085387063464730104149748004811741265433461852445413056139574004933327317483951778667863005535251815968117854975130894369302525249835417373313935994353951960425127489199071754742350583778001591989801743119360004607902601121563774052163527779762623804185963356423438081081395604949599304117776655936853405312099158726503758309885544729684117543628860815036127162047038435141802969871857596940680290375759341521782560145095397063171167241809813668580746740036092601791888924525396737594728385892249043478541404288176600264631932305294879114920787068480140439134207647276404663662513746637412980944290756331336215374013730619042945683710167625479335944461161854846260585668934233248285006651064509980819401989102176860618753213988060406548353341360643504693850721274733103501666269817500392383772020858317840785776069570725229926659953814972528405810983596037804725856226010677439056285976382215995315185457553059453148265022714476619516685710910972972286735624984058274085981117056170328061697138222527001283312129112871079829122346580242229995709810887604139341987727436930206198457783722976129208167476827278392379480254916770528785398723272723493736815613743265123280031722463340475486709610420617895492965139308709645690997498286208081131355453436814210215024254391223083487045312565184447145523595732817752188282338153065010189734842531075126229810172420182969835163979337145255973261841367964636872935789107844225393312601590745535293925121141481370184716270605689512223275617372725152856883658337754908227698582756680177272987890691914994774230417610513777167399504116653254481718553170891000383302326152353853979613613479630668429273553330041648380933126291863650144860123967394180586218629673333172691627914031154520337895219064575113272387095792782667078775026832357921164245088255635497891491415866237115166346830808502224064336689948818664039354998400257065793970732731960954320374481650910668660949364556803395798648601234653728114863697071910234704112881321012064399345590034262946308667268315018902570988759276831373467871094586894160440800869190403540959953322224922066757697696234983249682174870170638847211402054509753960864362900088292813664769727805365795220488534000598488168694883278517731143617028291121604292928099013082114943946847772116622284376036719154303581139584832308217297076487354948656960876190367408607406084104167984705438856989963295877622462288911504791621814100027436075233948101326366143079435463675467875556287905828657930676695683221327660465710708421038466343360261916878514571175529407480451809112631469699714010099872089926429482230444052915768038834309329543652197966750566829089191847945679607414174252065157262378418765439221782928856306226760144726177494760178745593889028412122156497669629841168901860303831659218423734823910543620175436519154539575032637935241419434749109313433167702028082551355523001569352568871588010120784136393740004120541748882748514771981863438721375548652205304133134279220661692451540660704723951050921363411309236011777559391333099489653103884094477651479522351117851561388627292588287067782467786067811459298091049006066789365748072074132062474256049446124714573185419366866495785351817646325747948084549578133941597226835623691374000208829883684417387941914806372533315404597764783614699745716540226995931114665231469597173648508096448049657243544879706662243977617834462895389608119784309138075506182412694278644792452756899915101791678176386559889786637708974708804617928013864452464403240466273679946088897679961372353564466928933908847233670820811119912774773052626286358575685251530280367106180170089318716182867059750643363197330174186221011386789036135297254611705180727182019523447553979840226541689927291609580099645292685746566993857562182970103239502099916489728256258910693151767733443527660658961987300816681909864464541489320684575214420844628637516049265915376868517140402170401839366518606967452245510914367251214537245406129518532813099339363487043828900417547402139122261541882104481702492013132094105492197706644175396691362066803089508829554504182648343011870741234595837767771918377659099748941749747872805713122764215021358570023867640857939386975999060804179189740003599912055200387762668122349955650846569718608312356505922778048340680780146189714181892824082831385940939901590065829728946064733265580362755682522197456792407314788569777052084923982483123262327496899976771543011309022082669776926455436217796105118834185012955667803584217168995181121356287879206312318116695986773242171247313037969039521732295384693830582894320302718220759611113298710524459955177956230179226718857954471017620400969233986951832230695599852140200394906464039026136850813348972398490656146584321625300902766261749722842405005184847622659519871141424284582070416595005947038428589861962462146500656071765745494521522053517178510185517778599763195195503263242423366766704443479013195593447317709452953695904603318823345508747551099691616720733200836400199906187286800981753876137175147090640523883435148539420848465226575459728460545371528473729098294830135530624955188997062026138158196362590201319408922651239917684871184453592344342401045607575719313007431364970246653495807002355618070701179971093324031941122328260856523508503407112685211635882204021700497677368775869603764171913574870057596731338445731831443456135088924245656376384335399988734534876306247732903177244140415324114386157616566138802602740076342517682190967247197036105586681172201849831402905569534978474233789092622603061631439905723732104240180564395732935763036280488147239996341628114009335335898012992180836750612633396954619898707052445490465075179828779497240803677997947288184389249585272437657248075476667730223295623943208790445283286792270691965805295779433486470704832417040118168105577868188604460340254207349567515294189643041211321276635666248251584107522866069191093811274023320772006073123758367048909705626638321271533341996439501074569120066221569913314507326133633024516391399306982230118926157779411874920923088314000147267830880346940532388309390372391048688607391555734717972559015168335478932830303211881554157286514448739516921816607811614908913892082664997830147428054329041609308074992629679680209085331356189569353602620858503795242394845372485541698917735159182154691839324976071955215782761084941788766722324508083159380896521167148965447036440384419763032584847488752238511870285558609198320059415326601496060984996765257880280595755425425248100225221925898988680476788968483711857207769319848692441872804145175854154039508081867772876800021112701558062043403613826183699073126146469935926570755887685480951592154407064318480542203762954815778219516957550328045516731661386931581592560092202181158314970610549324992460939424922385129250073092714252235778155129084752404132154043467894747609855933849194611857504714711362440989362424930317396639579100051644786809283563407144974461223050983061876405388258484056241455004752988565439292208419400266163723061863008435096799474536045534291962715613613001016949581786950178582919926215803560419799892630469107692673905268823635189742936095720154175587167042674834897153420426074512851590729720791935181059791432467268828803929207677838903282624028483688471728197468340842965595724412152385439745127709338665044498755205018167031482676769111605343409533309324087955055879186164732733157750727767998670003906115262541704918113235608195922977980160979530859254251935291523214192807065336545053418180341708853289323656701873745754596753196488061936449221782799299892830470924171582809773412037299323784453558820526081316036419593511650016424480739815875294980956045928608604426745744530593629624380562342963644966241172300948823173824928131823929551279603532904812002162820184650582847290625050551445682986855877988869054996731988296104111078729788505386434622570872605871028557227837937592600009712292024622474135884242380323559748838697321161938226555987770703004983721829849038998403562037929522512591818894122416606096155943561185359068080511732740786338710622998208650389810403167613617627134791500851970346499469842074100336705611190118708475433568603842541167862645311584000878114806704023651067875544152910461426694296818286107444480182575842047656737895277988813629516918119644871773287463221120342739011664753653633381850902922952809411304445604465244333967052224844315322710398760329720236035841656737540468284222622035122644803496737298801740213463717762646958562497960955269333629394610295699624486481452316450086173248846280164680839204736199702072967396586522962295406776071201574138502520404139788541910406960633001202612256551047081728869897917622431029802519295672446495857028248575984774113204056526276571464380201694600909092016971117805408188775469560341086508203841981032632283560977118106876445765661331834199515033516879220132227233856383625758878785947240623468278796011729109997325453721996698187498648119668922186362386906913780720024883075447347062920115699752761492680776859020299827321907841489423939402012513495271139061636265606979793036287605445763678909049351692324757698072702625976148731417246636097016792044376748030760940588122862666667950679109285920951259223214424352692505307409599384583444801848473659069992699904436689483295062371660210551826482607605947432983400704480928313898519262856962208005180655977856749200245566652184970601130547652395789912376897276931573805212325620956787002047057017238549597718986714147553763814762593218895829864148512374324020882323057932725351317772731037498959291803406002738867709606259107854545752739264641199911306589136440053142899008780776693138038356500688221655132493549591633386093480427119144666908318035805906618410569622092655549045946793441781511435375585676590972151997231099848382818684102078452084823437972965312591742115411484503388974134649850235961392566025729504384423053920205574123067441568223091014477610587648781542958068308441424394490224090300043723825677997778700925786098635183372460110485319177285494423435592315546211735782661924647288456543089972199769419362966564654131014397359870313574881724993426638523861206252451807792766952929957661478915301181781328138909300835857553873372251037164788893048911993776623342173726879779998467113561644868791550832135906771727039815794382214084015684841533824647454727270788285209299516029112364856060535323745221246305511961774154661179649104651332065746176127886243659172138713209481694553550881287669738508711776628647905434952995777088458248523145398249449680576691901550501249088621050306102977468347481193117054043191585915230588661643450971678734792842663189517798602189377753862099337143121778018367290787216903065160366743230838812075924202270254811387578950970595615186375369952690609027680735724663589893591631110954152481000107777656780829218205134384225886479509301769055867439997115092207645746997384954751941503563768819027014203678472027959999762129067695243475682224378233574525533049899939311099365414184804828683327047406762634273993462584334249975633395775889588573338610272143522331433938717335561860258124420149699287947000633785230521106900152046814130872961329211432102277163615494925523927624650823333196281489721296114393022860553665258534577203678372950065683135364089913586976317048190368843478823045182711210323019842798427784483296335993363292922103355761181999774710065278512080170854788776858498114585170367489771636640824092890539121768825215640869876972900925223440895902389264281057472804880426799985565773473921796754833380838674239583626122604312751945805507241828916345550905918349836009459401249347849829174572817924877787591209282452113086778456734250167778216145990140463078974458822883459020380530148135616288624428875721925158007742302143451155723918879617763757041334124183518273603560766237556948066328663983935974794616118533125502806002490000712110570215670736437802432307378742961019912930815645389890456719778967109171329164094351166591478391345187566193797767743662302286775532093652313390163693678196671287209940527295119081435102169481501580012305093829049547625632379470841043046531700690431617091593314134634836160694767192053780320214816263190265438353279951001657871033287294043060443815245186932702918835560437644538024535298273755396106789291483458288618802146046807667711720345526873294392823983772521080445637426449502623285424279184106100915211701154546274710070997050136162137275234069649550915870764984657493837565267675733908854780566796912455639254147010779924581634099445194136186047670834660632505589950238711396754049275202566683338399448073867792778451666501872929174413445466140217633464662096415421421999579866670721179595818514177774340135740747127124383518436700898938497712957260823578268943906587928931244881485057980215034676477358254458782821541928661715184898327725773229166166644093187780331878662671461341928065886467642789833988336562829907332146512187716498582391813713168868486579827741412341617865767008680228648330858669651923955665230744474583213230752648878059025521082659188483116229825751522008502600228817054191864529644780843756280352873157182683151381970219864287332525789259829573976586320229883309988256765409160126364849419085009119975967141270958606914468626813662673106811656636438284748182297164786833201951503687713587511382186095040489903198157162781980501938940475213897658817090081436289969128576075551583362632575709143018091979419418545547726383217298578464453873447131063395112945652931048187542915220080922647762190071122453954861077440559368050243149147664423617192821213058300356966897134954178665445557896018742988887856372827979991034799632389226623003759068663283135239904241557674659490378020903110572686164668498561630069896602106296479128878213052316110497840482156491730469532563138857666820161130579261193155876341485313687132962074137137087965324218365391785074610850096839155719916399429026528578385402632835742209416730621475428562706084264393931384968757593658820649272144556581736683412410352142697634681851646174787544587722800355969290192340392122264764363317835532625896813170300563545804878934052883100396387638199641998539209180426844673333997503077504490218504316506380853320195435392662518777900467395245650163253544239019074602339586457992967280562502883345775406144529899457372650224048201140103721778360789564243482559907562264810246834438956610671530009062915012811773549322886407267272740695326605779415388725336775498670821517574427818731342081643752321217933245185638369911668660477256052650286196183939802198809695200646418307540648145053428825455432374500217492479932473241344990838607005986773483681419949783055296399137407956176911979032579117837296867381028382375533288376497066631762321877606513486251431848985654046542009317752094908239353504302640273268987059010072212135688308738390548531690493145054444015776008334143286016280714172407989918998089610594072603468673908825138856880017279533119841721448742797218830404180043721528448688097681003550757406034046634434357874322626021762747707512790436891612618700335562221138890032380517900069905554417679451748937047823777608581877237378203055142374994228198110772671273298618399966997796356658560481436015338061566291864670160662048244087251730778470674138983963650200337981290579384320185745890970087212070027996863773166742589509416640433080357739115211542879475218770971909362099350413098341053621525951119831954901669378740561209765902955690515038491446279989296680544162409769006015984214742790531390459012554678255107342437666337715869002344855784675889200713050147657664622082392292793540635863777484719406898726165587017515089395413900076822966600543499591157341118297210049244949915081550079015661537112248443587930602221160672703425122812481390846913014453345530576112934247230943560479858430761547585210022810506326673177977230200764730108556908679270238084058761251380954584046434597126893510170361382120790346999622566178720301722240912332503559011189704624338198192748151166559308557142533892059308353185646120996683650450483722544785463797861386933533622796167047034618265637265987724273867330612436596006216657554126680529911044457196591855061048839415630173467712608839730352781714197564011020565942460316389059855544220573283012130573075312213019017555369381019476750220574455073287294143010169918253035914909641642358753609849732284432354598115481582697516989737165051554349217718641509877128454311458935398965248157842730984104236286515885261745513271356246046485575635720799950277359301477024730463229726663526205271318004710689886054360614735758660399819099108820150011512017450393823298741139647716099778142188454164274325894823134248273142419530064512240720045803479270672463094397648055581794960859025618668985536457527943449173363414749428608077292884968684567492630348463997730433888042176804728187066785477266615814159876391834063581962670760880536931814483647471696534424440607588189812299502212261175533510434657755208672737300446519044432619603461533340740452852364302501407606710169545792302491105096209106152589611607269224406086496670391974491043601175814595486022472298876737501623503071296555303538518727812009426439821582782736443573445835414783370882986679467855531075264956629818221162836989287100206836182935104016248432885091982507932441280161712121328216104539546525215181464746355529792832462734189761255201018872361201699601645530579643606879545643864210024968253420399677274931619989505671039295095432121220462416003442903118502568756236887937357947619299764869576272811212260279383750108494265787649811307351546501787329115224181943248228126330729144461424262767223170680840421859658855018841331915529961346737133002183940222084038620425186705503999267894859605129348393656408268443216030451002047386596593329424853865978563724414292900200656336981092886488306518242543542092428955390209621541901122178408411732261457089465470821866091089556492326277480276156615582709589430413447028758806609961984791761189448568981475254125266009637225447703483530033176258795971643490395497858464890014040592437223431267850982424398616992533582635634809290109219879752832790627607573833691970112547023675337562897198714352776621265351154998766338654769134468043167438265093693827147005846937489067348848245032256842080949898762791401385432169522740779786711942742348421376002289682564621700361662097304020914413262300180914650004692267804790081881540803551050398894506043901302218368236236397759033011674291987440541823192228187772766689485765238225092531605162673930176849244942131563404263817461245644008607184219489196565350859587775096087242830039177467874689956288545945627743371813609153130309073920734012277568312494045023321581780430703306242115829211767001494381878433305519253029822596091979645294627116289406908955094753252952244225474759733647104630073826520900106085823344789201208414974098299497871748254398505854819803527782125806825051170807065192583001376418897023120700365988472087088143414541509573624487375607500973926657355517603188172706187394447888705846086248436973733638537360351617150642663490777644606357104469232829519946978405178117058173121735991691465133167887005774791269004739678909081486956363892382345767558061505317394418116759949660762958197771142427044937745296333271699489681719536643129036511941827436956439322830977055914802847341997854149333325674444199103361746643946882406582581238831907172067832967648353361008772696872078059164087998760596053796136636242046588802340918704566738367142452785291888871873616954950827265035649546222415831740175207840051949414179540461116760097808696459633829856347084635420659287127267625171476209571488195405283359662408525852341102381045275187374678141439816802672778439789493689847314459451165387486436352312051524755832688492217543197203684754671954160488731740497488919082143115432989148949551072309123656826147818259759301692581989125171563935000404830591775083008419831366371264869881815894998253906417203500612020267751562069789380041278282368250802713312957081996019954116322825835766215429451376320330633336292888271277613858297952232431698838444168124509089638336518711152061215490587004381639988027163709668036516062456324537289388675421725851742929787435075875686533351706998607705588554344453755507634996667966996056728913575394281237614960598329400742686545257933900531003171730525533143826398457730919640785988426370726336721795464366926242941212314518358594407574122499936155779859637853239455035881724587828998899597873423314906064911361343986385088542033082948003031840657880740632450010984097955710495185454815546141201605424183712839717101403869750714173216984214353732975334995408514332868121177137639580449050998547458103819618188956160661070518821855179627563966968751677060541326161187100486013116506535664022365911903279384655255826390768022736720819453829158807327946227893944264675739048598872700192718061970935891535677069862772024754453675811094612174640121078218765835225367125437910114524195978109644408495283503417654266635775302943099666914216375423586443094145871743593509895334044717026300737867686563689549162831902825361802866219609058862481358577791581945750281530642807187575785016942043258938943296996709083437525940338647319221333930640264463630416297587503514597926627285369064591818038358761691211258897621381279942564064584079840181820757619802106499194076774648328438729367180531093021835362654813484816834002723235097576693106350889193465823784881230696697634865915960140285041782842083414518124502957275732156184302451373246033791516387714691292240766174572963067781101301936915256767036659502417867352028383244791616789309831702055755795044793870793874672969827202950826904957984944084112060081805148196506186170623115288207733119659511335152922314098125103426018018808624309408032560606686924123420898698903203146257358776201509633856889773696985600754948346019240646985146233719697852427236972756938597552992958159731539281090309108001478050705151639551328471994833885496070509328057739866341645723678597760720617680406336013130517427767676999188932096725873320754994758918279100045426405813171623138553259916056890509636281997481551936995617572580787342974690036034930569762702130470070994605277246391934296733976084566808812552542950201197168777352965783802477440801352042536285684478773000353964396343365012584032785284963426749439165928564546418924918269291212328822827534391946069267004154870494542473308793867040912829642555293745092801064104928453096970693915942236831913984781536056758596764275585182700501490931785590406256224893845059294007347505964804171058507967565136198542434337937606745724467767869781264356842552076387280760786861186123119879095256569135267066803375146177311759198501755784123916865415180024541230457981763494386699406138992397521651913047783819254587952928089872163807742355406072544914477173546943011930398496185530580305638789364098212445280780702412441169218174600154878394464821454529476424256622367192751297469086906160331837838932499330499018663488117129575527122693000694885810265654490146828719766494832087368520356104948920955519631216242432996359750752459217560907114004822900261406887687482463556261915687741551521536995340518950912464231251410613590599822373129845519290243950425974794322993895169549115815631416722783511235389314090807387224133569792181410967253102125004319179960183036057837968569528763822249045937901180815318717319785868817538773468443770511681901621244319625254819125786793832999515947142402375765847267950721802009999353449627422946618569910093598250499222644096604643867907122136552761797572535370627410077271119448816499866510034324634976699923118870957162586791365800198360097325754312947617617668703770315579258680263822928906859647429247080629054697576253972574726941228180429961849958684005708305253603756534146363721054418637010065882473934858760513926646245345206244266689955621363120698647977906320999935904701006046612978116293950335790664931931521245436617862236182866406392676361110929429374801769428637360417008567115556398750249517241556290219794643546234688480071215010296162662942046695330054008808867912222970756916621447417697927683205051978424930157664904380134400905683227327700666456286203869086012005667662908708405832655937015813106135910872048807073746204608945951681523916504113617092889119818199085182091458469138064806817029745368230403166233452344463718067353617086459939628424062680240297558893061365253365757822897094500185981656745489554923679591899314600654478204179399163273579240616378088828216773134960751017823124182847570902032144490144417076152408161430996081362218304348891679160858647697428817598334554682084474972883028468676077645149324053744719146826609754232396909135908108459054380438834268110249041662316067979724528377630356878824606360001539351925933838845258454000155544259362927701952545384586118224934535728557531249674432366317386089590070771432015086467002261032366645741133006208353812616814863110859492245818771051437724037651036318440761404334379466150923443552686728785843419663744704567609232296992055906967293626794445132773109206877908429622554782321111184744851300026472578240682447686641666826960141827473795710326492547346239401162119836301477511185894329080883602496065902832282732230734910925910096300947115845922512190594118533939377745286272424692801438424029986810832615673782546129556379351743016355420253025033737017136274671794325925152729011096160259363519794245455012818732652647021645500580773161112074827254049753030096188337481559015175416610192964143552559623325734297163962329529995839487313934315290215344030854981182138603586065669398780136186556011714285134083598523588610645959300166768871175821608678877722829109855602054951747103436556707905368064019532867777089721269010669181688036107022409594323250475572799820407797898987381245505412594265694307098507735206351210121257743013042151814350028751463276270971409151157102093671312353916015910847289991587768722579903460360776689248229285303544685594119613107547695346049272872148085547445518099822663575906722250227860411279240927134351225858466985301965761476244954379457530883351889001295877827294675117233278609925909101284386077531266630883718236440560022409114320836101336665615307763148904885532698291846740043701488091688058832554168431704442061101407875972766466576158659899957736827426366681583947552195362273600600514263447782545643950725955924348814775961534577979910624414770274061662833633828973135252366739608714033508339898974744863277224713273652969083981352087094679133751740805175942868018253877415484579899717473010911651837467685186171900568242611194875652513871093595165422741791235507165119471525916503307668711511548455431653424189858719645245921702201659893726918239721140493447461560360259561215771673736335848110548218818941115212000913276245911092588490071561401549594788520065680990430799454691962594537920567621500186086389461898596207206746616685179297704065967197625900768012650965933046627285536891680863495397143717520308605952507563673018734595443127344841271414712401769152229209718609472764454650627183686851094119673104706597613986256719818555387892040847904252630795599448194827199624139947220030208880461519040785697904053825150295275589286608029317303829790830470804910466307533531096013117579373934254541648009121143811491940659184822552503340961411632597062333252391426974788087282406103976631798689237172361106755839296545265408057239786540588553130711660401051326071929871418433801325794703808039898997434673886497073951680768747544443941812389716203779039049208896022341530830446611130408366389986114652077486663005260508578631013055343225103891991507609046364082874537196295053719308492643667243162931246749483767297209048035265809662894566777372894961488553438515219353570876449736799610180784594112010359736566796427946935552445082650457496639531640591053018065982191497404031441433388668496610912752583872341305875644807041593630041519058334696013357355428194240602222066687540567945908638967705115739465020848861664304444307731003539366901927063765587254457239831674910533743363194349635218716734647126528775572055609966148765077514713917930884011488079092492308970799311612225675099461356120076107507469734282891270546603627836492986384615672350482716516312745289445232799190552280621082407657803455173151748458259286936234478123386585731165450142415909448540911316617687676812230458497474461945749907667692215556402302959552214647988702669934701011817690144933695502817111596903780510369437077751514837408789962788768568003904924967938815008807321294114050647409253375773939962118776500816977363539674094239181375914684141420277035470001174061312030214528163590762419868666761190936995462696099352075470199602090318677056167637894612615805346174005165091196570226575327346730359531415763062862416372110300490183924080877648636982054681457454539543531592666328767997079138818975060964587799149826994066192851401435179423063052578918447942910020575670526079915454274861195326906185459547537937652370575536074491878106691617859137272502522743981921247781293989772743120068732617202179759383781938503653081437739060846460599276911479050873933992617825717656605282608712519867991161334199330334298053368685180802439157991343857403808130169587302563583404502317345406008139395817415090207240224709412423012775777524510357400914059849990197141910478561099563177899472973134869515687998448390946981456187508402668957317145480865590350118772569021204591004689869771371880522131635815178915686067572834561061918831965129166131540403800556375059087600996873413690175415968650827278846016476188919763311201987010535636072660944424892751656684035275699950706567854643981688700849871933373535276853050572109112457175794265558564907968738082215906567156618298934957455919266277200887489531926284440550270583485939825136933923205004333409165676813481762318559173706422673326541766445271278031444042382437868035836109044820199290172846309682677818734041610104123567879716795314033346493668808580617989756864755808037641646607622855406983331416647902269830910922582991590238254365950014091049184837383670892857686578871449924815107047066498598967198792181512353943074232998460826637979621525674699897138610229438314470184425443925076702171142268363118894658452532689248673126222022564327954729422825084597152025452851053608281935390061569374710801054462395215661027986721887379814043068758574106090725137990938143314748968940729242817902430296261582983612726818545001209007812190344741901174197254056395597286005510550726989849569238218900944695105546219012026238589383448750886553223471745536152268024668707974744488086907442436128003434302414453785833683171882292293461420214468487241860557706683911540373990950633553365501239460148223976875621627323233098974704030071383520974491601864902195268863803543224617187784356560153342306456866194267457958053433322337633250684122466035075814376648223244559276303639006802323851052571657806160477754383356578776545418046276707083305418723009845092768444973041503807311558103897908960120938829696908142744387288262704777389315279216797378476623378006579812152290482783444718355273132559934179258648040445311257268694648013774706866072042509154292769249916414402840854184174312190259447895708419774145616025154219965182108350386198150444609308805127955723238727487592875092757083655282984707999706846414418657588323104389120128858870532667973786044912216659123998542342489632006794191395619779296049392974778650658192907824797615674789689876207107607410025495980429071926915758023227869482487905275258246095512479034846353776381686682196450612312419547401371583227785953983157219773908502206005555115650196842284280833390734346630287181923069188773809794938486777644136541634810744836785681701460401281141907692317693170866595330878593568036782649585114397592551439927269725515454823915423194022739367056503144387344906622058533891223181346747295262987902636112262712995324567020268587233982922653480199691961208681360270228186599403446494370773987420321811864861730393284851260534698365428083128565941907922545652762540658992831750624979489574017456203376788238954222709384559453671415655981926100130205656064883140136430667886621728715798441388508809591486875913287559724709825387219147836916237656450324953709349912162435385572981523762948907078934760610074873929118268742681846154071822105027958879367880686196458147010990913094271369389880936279274401878550150192618799362984840052453400953715432532126676831309508930521358125399112582116085661797789565115639395782029064284128977384581944414510750987965919124138339988067388234853846287897991257855265868672600581259008422127804158204137450195669261649983407508971820580783845014510427854502077766207288624341036208375939565473862438356517766274464344147787995079868917156999242662096318985090095335706469995317548491914838668561529592287539536010799836860809777521094234151178168819110080652631670820798050022049026095569011240698032804182712240766131914378182775129268837204977284188051107002426079723176293073897947052201574239424586301788936792998437893269796315406052243366897619346979065670459834400830923451393328791308601292769682718541290829065522906484198734235791296070831122006108243712868335955149828701781385029610612545625162173401125081129779938060157744390657547402834898987240527168509706137916031891160366131537058141296011912589248809736789050738955321256421599448844034218023939170116479719308703365762270678249204259615686755298961178189696599554594201231777479210233857904256389693240367724680980398286943086686923393566913728811294187963030529432644427042897185816628727525816392450126430011460833456250707155039704357596126104682847119294229046491117340216040110914180875670254486520171324412421278230861836333417897398477399182045000938995118786948864272144647514875258557311054164188955300351725795796553567305559069126928683651008769999172506395734768773755088897631156050495070836480815654457046869333674969746166638775588399926053801654669392593485788513391053904585578299546387794519727725895437423725645227067328909931603816933473100855043168711414135274710926268222054627156728149553257009068149116548326912419726293421687939157298978175155858879421454493799296488491868313336280933561016339797004562587134459815996192919896366127210789304501210798957320164443308621353673273826826552939266158571519094802861915291157595381737085570796626749739251366142864260786953838419970034539206887330247940566525101380872020871937043002456743482428102263489272533125428580726079349896002167330319626871311652370001531083307601313360268904553572927468455583057873268955877551499578685476572137649686267300329259440201335995233083952894610743317310531919339933225786979325365607316054196073127122754770002327899704311620643421033777558346998867177011268352181806563048383088041619657561777553217731562740824265218394937097764697973542838850614485008493620404853592280622855318738769653506529671066136789365430070512836226311632557115579052089192041821760395796042570049260359449858405348424144596329780827827866486881960800472410764814295565935519157903720367805743002273326779777287187592943056097866579814368435727798115018778566494964552396977822603073984923544078603799339989487607264647233096826158821654216740678204987449720460857663882012377019959588319974486955730027804306573880847666665420666050604827024086098585414302447915041808772847949641468507808300242629876158820014438755376697051862017184708747211493567256585464929245814741169852361122925134526825866991655091064635996923407020931167731597744660906440809312360421348535329441185113549436476015753179100052020791090601169363073098309940596469820811256297459431514677752869983230694379321439930986971058791925158242989190859379950091348132874690904571032504107191981465899499241842594264707989182778408179979666631538346847007188118954795878480386378097973040118568273608612852381453201242207527725243197402168066994130846084365468768653020626815926542353493232307479752372216728649423340734038680083749801240579564455274958975624389801687687322455744821674319266069181040503790865047948978585250010710681295957127456200720683378260226933160537071046888042319348110823193917203675011752801537498369169045846812238985773863583895137974835227712261300478716372804143837773876204231207537111290325163361183027065288032694026737968933335557226850060700022855494560204177779457002694112894652853132062327693427404453265974110183547007675752228042121579754161182959475897919296946814194838797916118343354795430968505811702222305815042474033271768371716054425072100479049985653032483767111218876968238577809921682010910120397657180846369935882839116417672893652759982969050514865966660895332294874729975203016609731901537271507327914606938569503076694577467339619272984933596582001614758433654983849644162865997155519326563590072447298710756146865992163593957092788983806052249691593456504363228805626193341125149775522409334012194580527256083996327998578371243040716355789308815243615366623255601168424572829452863761008116033085588861140126008416751079396765717799829789883555257012859711019886032664656037270544193567177714778000759787851772114703790511001082588367594561004368883239604040154791189819138502996876711413270033840694838188892628260208922605486727450520214388804412323631048579128452800422240950749113526423964902840905063316588949108192667395068252292933616204853314089715953118546120065760444055300671207193877940252472358954896754889665061862159375773426511395587556510633941836730202969086315723597952074969339844067803425215737004364892060246916126686161925424979966347184093814746767793761914534496394648911427563650454491628204659466712342159826987865860700134138861407134375082961334414430564455875935201629434120540241695216359783471611133653280437856592488095025990319592588968288481569294682551268847918138483738385465040973858161567169672109564867075247833051165786758020679711971969105316325501304863242290270810322406973519376453831413376927875224436817531838123549133587436629977689587504795637053960638890465342240029635908539457054785751166379335957779695581371996974241062515941047419639550970689615484676932360598114587575876067544795582286984095493403791962013623371642144801558120861022691732038990613066418903860353115253727317346057610779820674315709844351522033891270705080624240379397200381519299346172694036580214996839931210972780790107933377815798895961721897429984508865489377455176395243167451319975177681017144641232373630689985010709775082202480956583060032898655611424440135897898635421208006738962396013010011859689099670829368442241714556536765546057641685196726846771481595704272209745901539406843150132151843028462110621925952284624717252197283116669870270783600873358528334114329931571313392476015919146214411501679908286751108218182268208785868627505100240508996097261458377539579417012671897466105379978195481314339232729066480723116230981517367028071514549656209262831089077112002176125065564493375453022833338046040922583780862057179374170197879827603416855653728953776384829835342606291048264090342805100160894084744635431926729607831134556216285129267676770014150034381678453065465589257328636367526740831107478366595662209964987212619522120353521120666883946173445798822396326487171303337915882355850335401084533309218773097175655019358740421023055726854036825930332465496242502804564000889652130202511165813060539553155339837885636855338363171572279949953676169140588786217076861186328350840262698570882085016774592620244371346898685293053176974419153308999983864732498618737222977721485821799631926504882278685322056427165395977890075914312623341368826550169562581174824675306899379565064335833879433187139918192495498174339898015333897100096180799617115672357006897750844787444511649808932152760862045513572568037768749953997595971425491486923820576774819920750301174890289294160880942366642626901061932971814658887525801360030547058898594226674846016277680718597045799275692479696741752517073476774960287716946597944110634384735681304894107818647711890193768171152706431257306455150788723008000972618666684954509401718298676713035309210512124236933264066494877428656332957917511372949056135935607611662434507692820899257077445180607931397372031725773387011465218306912288932011451090085022823413588244971955853097389767721612389331997878496338813175904406743106236345385630961199936615409035842404574237415383306248010608893363813551946853491633328534510671076571425616179267153016871982575111965336557180873473718071038676811522387866659463063273157815620748048429596768253253807335086418782777721684773194836298804043546448891900353088876323962042290107286555492091464833867995661624546657053965695555414329846335078036181913416363571231083419894901135490447102264165815569318647100312176294423504841537817830687632042451660489711898008797831125436049519282874295756782200703268502525998004106152184490336357408166179797373293792859900050761540897638737754315459249297799201381054471547276102231510286047619787992566172562144598346946853909189055043833810913467100513076334706321886069399620532445293762423677109365865177734751222512335594535980072501004788527247593785709123457141276320651058668165149637662137956055445282089007825072680108482173167441756453957867420835080733927313503357820757016284287355471948609520524692135884999430646363746984957892347998773957321057992748944265386508527516206329830399672966552681197590161828938175995668249094946163154992234800393400015687177521013865682962814483851340830804757026474483508734743712357812245075514726849123693040558519793119655720867813104734127340399945531549421207541931138945000802462357037124210799771548471928368259448979004274748277126126817882367267058291504987977585237740733857281021578954476062599829872585463383612130780951432014726418549682627377461262992753762505095053277140488225644122347344060630876886186693213068077067124513009861630751592125356631540567572581015339549355923513489173557687542288207478935165167933334765170128207333190258748891013791530026639976800139256843331771955196604561830605628359112298673126424967862454302792238251113678350387178581453465997073904094406365135212613070850553777760095300743954861480664144329819441806950766066401065025904026396510898362475637744200553609339389221074984306758495461164103494818938722776186245427390607187511773637047976646223989251183379398684360464018489852436378295851661467728368581712297149312909038292008713021447960760132139159077715289447106721035016853199160251312289724734316655287846015398946571060727470741088336595729361090381844341541811352784740145122476664058281385709223210832065137066353316186876264318852869388367454241542625554360819360640199873856219798978204492304048771194700839476592677102182602625763438986480282695074219087419528958715924253070569283353476463365976852834267147374885677897947334122728573062818265015308451663627198026839841228040099158891329508599534034609920230505690649777361441851850305646138163135579017709544156958505006308917462174355329181682653497092651203412323923174479534905334793744369498372443559812348946578619583123614078720227348942996368790677385752883027433325897778308052941461096940207881241605694956405563523515814217240202673479845335356240096889335409810393897212308665388414907387920122538674188768481689576385059965608885107857681790859642757802444477941142905835879491709114886811663108067095618934329895797031322983549889061826457815947118721091992722760716955288903600825793663449604572332702637874198038572275355617724097118530758442964887706814387024241938696399285648743800332593200775248637845297034396550834328254699590268070515615726849567538547218089677375496122474252115058607098934646045674422344360808227894321409623968913952147949395069973901313383651151225246561087350270149948183822873145966608159275252959153791758266651247821916023945030306884247428129685353449824011613266419981384088142609297741131309860465905984725360920753509785679598237586821964683055357233346600854333176838797392884054432828958617099976118944922274124793122076559998401973433233524126096003553440878667466908831920460367466537623766527887349397724003070238898991540578245534858310364944873070974905039277860181812343232622182854807659820910091506861179210632801230117397302789768179763531931145307604934556632306064349004993709322775783446767363078806037318664621413749775089419917553317912104209616125663432394968807230565204438351392463566635248524572194876825668184942225655114674466267251135479438126719129932571018820344744446848890289371692528505716872721778161751474603725279899187665103297840361798013329158991094972702960386292505587014900279518981611877746461693641386911995353211852633116876957153615384568824347739399757870196827122193950308592286808457159490249894588183903849369854804676515072209433598011242081720944824656014990620243536510259241474396855918714594600703892316305466255027097818647165690132452332926816450313924043605599848507713225347445928639156205273565500230598930790182806160825844598259073531861749425063753493408237431447925565111843160283685699440943581672646911702434963481859690744531295827071556831848821740234075011202985441891875193437007470156095363483890652161381515188962319190633995942153375696468359214479628161626011891799419458133390157975130137375185810942261369325996161008061408981722827829338326873166209566014522877497851211084228000254202565269782893918071313431294803076819904770108211542541577903599566092988504256775204173787842441255830566025556659598539065989487333062523501786074433787394137646472356359848816834682197652579312493970096248874730184247696818451133765652401647243190622419109922759972724270014199950616484516734012652582318833717539111230169002399583963802288585047204533090512283743852085100899392570431953840763346978059193807027419669363413977953442044480889919269692337699551511323667305774636392971825984181158550511055528057265234342989305044552989119745891770702236803508215620002653528521729758782096805595151808298136413670393825801965312352744132512663426550843888428092320809886738315958717833551574567143091118501244054132541701847444640053410522552304645196822393507371586833079653852402080148514190860193399324104305819451219722287152345394916508293025043792959490762147478248144757586353556656259935981412332986131374728767546794927013778761634646554739482210580427536742584775353295337411871106441045485557499039695889146412401118276417777939938418851943401129063330691358451525888869415082233470803204193067613685196766544648397641436386963891877901451572690613902266362947989295604568505127088149639924916480407597141569434950151700457559878876716651665974920347947256199591286227505106373810913588082911312410557966967610487866287461588712361096484957858102886620781576448943304986800405999462573267048019738516221420626333360992082184200155890262968926155079549865801538052028133756758687607098476973829565548055679056201231736423627784684604588809096229283140915932183738791618042877656453513108691272918790114421525191943696472042341469874048649372960635433478798238318735035764693658432139358332237364136239594235362850366313502439853106660666015473806024182497863992048088614404905199787490706547833002272145844072377791643595228068789514916829820782573626931178065781200998284186485345145142372107890311180328763540438754463582138492755374815374212397168334137316564467155449933853118581553210254297144620265550221932222241007221243824861619039714653683359987210589503285848751498440322259678985712084618260780478568879236016685988364098706822927404474828349239676104108345304090609439933756835928930955899336150320971726228547084677800591840431785079340122594111705642743343358710011945118013255492973633752890247843686626020267428834669916216419017714692663583737309617007313113228369998234418357085366140375399511385246896515764098562241415024853805359049572110995675683761735371108498798100145126575430133078482258830833309063207365626796068825987775594298084386381145572926150128809469234698767099018028472984914874407729309700950835610628784185201597954127618519245107726045519088744351559145206371308785693043883700079453443550987892634616945483807133473170281779871261836904131893278364932925366131359722847455548515700937630305046352647922031937254525222898010862692129766267628358831125013525278871280695737166628186237420016823741870329360422660784678477698175398720850777950818144143093463023596913386920362648122068180905344185000067704540522962743888441996795275993517075947215545624055931602115481448856801153234895366518114814850957328104894305166848033382438234863995055342084213573720018926944130229036295486893959232703407774848691779952330449636819678602559611174993576782207076335340077833398809366262386607222164689316764690213739703083872055532647808241473593960359721622929622050277830994967048761314774826152758369014236635939498949673787755282318244359501466800507891315305043457895912280874623766093921126241826128145004716291658130645054981280376190432174528157296982319273652557313831035302566197882776074033722595751697828484052460892075120552691469315263377285974800471512624140500193701906589058420867136537153346970386995637208073501178007541627496510528823360875409373498756921832495134343224151275366421559607004274592313154153618770121214871582013121066832451109189507181261480461776400215192209640301374034708747504244525285209424000764087165412386997297001929756450798220126741748203935231070653975092102057715243033463702471704179849376390380039859690230840413911002500293342571858091069924304577233291767448742055501800631287347705231619412746668064300805605972200726098517760474583938055279391645268654427288005817190813184767116086274030287302858559414230973279933136851961042694806326566420483396676790104358380747651425357674492590611683550631764644108869311723983591402338656457084762905815457122004423227489851975808123401434486134716367349023916364118516614070055386338486780594410730231980638887913648183599762356716672964504658710939309158857638355911847373107362206910236052084766103483075643328633790893838327573743791874139783308284096010809317823678984597949312476544349118306196807017503976442607005116268572185925310645944779351363622708890516329485234648341370778853892174450679670022413780723221420348666179281655937226899696758190214334017093100292676720581401164696784972957356884914952974913260632031299614103859768177108055438868478899289173357876597055722178712324692269849605574758057126269805497340717200594167374957503090450211072343647068132577360659050499393037668013608808303068228357580145029635836067052036233579483585147992938029210262879384852239113261538560130148092146649095893888781339077254666332926686036019304258867416891915588534096562787221970166930602703467322232682592185100486729579842389168816339754740775839077265820033511723235889999834272835706545385129505739460701120685434844784067199618800146310354970880431633667252326052851357561335193686131011415118565254160222856010849227949233169164388946348056783262491120658925982438857268774934673698068712373001158905573947986666096405230886387827362913158099426360093115849031657031561596921555186679509188319143296729975433223017757619911672706779347104088180051140371691688313767022548693272951009527912819566177010614234760657886793523004959935303608167834159410897171943697449825349975613550865847313055436823960487319637247032046072093326508983204253956677750275972741480127223131243869666073385276527916711231917651356766912745249143606613411080844531807628542770951699287959924494982754998202870028210586384904167810871134686630262630685456539113859739731605800663304467176331069021744610066501585166550283685197077418226355040928502863813571058586845382020330897453016432774820320320229720139387997115295295005668609578407881435488005086978769398337837383200710229347965992143798387047988237894711200671722208528035020556047078946005379678451018546925803245378554875270408127663416226039363299647766336196378056592762090455562465820602841148968724037398593399567677743189174330534845391332995927084833708593837580655817721962598646517275626048282344070193420739720047657564003168561253577841533560147724745043833107390220667986145334535472532492361222040363885850302064058831620413667344390756575349841478736791244376193249030143861684716076553652100264681355125092024415051992224694046999817426977743082187457545522911229304305261012711083608093785990919623898208857416761129840683661479480627208737765716691520426980473936675027528708540432317258102348192024570481239840313926554273522343397536665175402841566868456768799304038971678793431956888497375850367707800870282004891124047476386783690663470784964193633219897790666399863957087889929622005114402609836622667252880569025153964856098128459513056339324857202749835259577118373515637561637586196223985155951712943579988843469739830871588219859367645902560859113226007273695343388919454803431840117026318848672827505370870954628710751856250199892785979276778829406008870267324716857644733570661405680603018971352096896818466824873689886626387451363537543115124062651491515137696511034382726111500428841293318882639296658913621034838823486363089473028147781235190486050427114017322183324242771483752162832130923877520584134025505741244651413901067647829031262059794161458953912611434706570594776045382880749088064614320334503266367285856248450100779657633791565716120903607996412506169198186734579141680580687322631153820701017211658020324483270899529238117873194362635481546236967390567871252879092450469809764171631956444473200765492501035428017890185237376114473159654913925378711806126170542772686824549940837567233672802302972195400174025077597124178320423754435324355374555617973011011084517959637302669735329020363359478242481834167884124020035444289400973893618393520406561905338001493499426774653166247960485280639698175122747682281912881310360611727959148169303715118295096938564477448904637920132858842054536841198412769067925759846238169576012940517882280342633907599772099379808984652990251177624538353468964600620999268834090661446960249190009631091532142762918229023398174240577522629435187937987089446184974501107761138517002670494724605668242034219803705842595122126547618145813345597798351248115977940813778291533651929490727835654392408139455678092089927926673402181990462552333989669248686276776516430261236605884740582888417490973672126348907486502682947537628019683430062380461783693417399060523582076435091310539539526371584879790049807634831032376853578403845733036473332078492199001342389628131484494627601736544467754928086321973550470899611969557475688729229589152497459495723076045908010981574796330921929610751396630057728303618817973029590022705396189663877256115287787179232768185445986630080922427190422728942724360436847089129708411443046857217664071058520175763479351439169460015903401971771825192477167268101283804205097384434101628478407409783490575127423156226261809561917834680326131619249806234086515351359264094375399789538757209494644591120566081528638565501869903796988636267257752119753811665107319845537067985072767810454263155884088504490171613712998345431629255597865048873027803132152038236632028520123676640645247741209599051422757937175794412485781148631502270554960733413504072993648377981761403513551334086417028180024894622182010003138162925832051978295563905225268588607705435307364666535188421562578736060177020939710250429566521443082336446858648263575290297717099587939812172357936763778084815582524015654292648776284167925995346126036202912110612418005684404221180709095728696163289900707033946985366352760096818102783510984978224330552349391613488420643447600994864540876831419506588926973269981446471509903173428586579813435585514456730830057128615695098677389864649772484486637577015278139263905350526523219964401075936110188667440007144870477856096380775924082845571824298158765038148208405227167671594847144429016326874974536026850290386653482105569947115095993277787173682293530405976667440222361971107553058382366410268403974708563360388158412030422580281096844765379379623803239607909969290298874904493974770770165049775071022395823661789685183962426428888016664316435387571508242200251099781242640650292066419735152756659601522894960048601920138278245545370960946748538436633566095271550944364892820054421430676045229222020273369788803822484917692025852961454443147271070906605739441310372127578507116931929046706438732499219082762892633188355204174803131039883304883345520174420351359312270977114260981997690954593415339896494219730537526505704677583974113712818257846825311308396211197845890937550370122802360982450427840866672804425369563818685094213834511020568126756092754238230914963508278171812583341171188137354729941820998733943866875834861673765621428799384060375100555400887294340304047795101059587010588385662923527984619221195478117307047414124509175251053553365140322306032032975586818045094378823488824925885869904774695860036423716805431492141344615036660190959816234325113369484790744979158760024770259115639163259546458186865483414856356398955881931470834321612917851736391972943324617763121818088333814081390619173514735683927473339141906804124730922560246583963074492247118580860896286191216271922057367692577400611534064040806379146744245887017611898717854846150819142165017545127933244136395985314445928029577170883978182196352503224915756057173115842825679768369135237145066728118316349033469847665478564145749573255064832726362412240466416645181655614683124315507797139810330518771359749749170012132436347893242595545121627482131744486763121306148340424507306480974466687541895950301220016971576129474604903587080673438589339375992786529093331714838417063472832071436635125184994517899503639670825554883806644924627695552377255847078294842847294014592308038745028512828996860529588836994464205035775372015665073294311606879372658447743015423136722151845695167216332934661093020339158515668527491863755119504683315451908553374613345456986601970747002857266311007673764998733855489919778988236611758240804637213292601044423053009948222805946580313286138164689776871295396783733067811937177251828074359860916920847267002455003431687782299140727167313810898475497679079850131894093592649637495979196361273572991382201716701139259417870506978690477841663125781965277920264761834862377394854926483534469432256154690338004575696148090681239947212739372495932264658290079373967562929199450137610553277854589622035353075294461656960412736845090977378653227219265726730527812149928332771937777768231262853632007618087461782640142359344938276643632247947226473577520747804136736766708634682125355219743860075031989539003700655523231209377800011463629566767420652365465550226431522843284746015241130561132840136215855465125714245632504850759808428451773893477209546582894508609850344264161649871714395403878774786133691084042378083347767622162811960865914436753642315876008160077664537790068153531429823108498998414288528767723309563507453081057884195547543864839375864096369907774644182819454292767656208551730056593690525215803881053078965447400833769340684654527965191399611948760209427477001621187317107308123110851393022916022654934249322151975510607836115263021105247734030081258109261910250840006187764045247412566006092205648737056252579528684197832315697201080420456619226680107183037081095492117176549858450498515003895126723194078599069409839212651308052857309155980969771270028409151011653521035502101366254950476837272508760505295816147781228964696733738829859817602130817478835287061271458203502496421496240811186505382865424783380069330788868335888879527672561047183438200195750029808325643061091227965141734172899469109894568013280259371368957436503360302709317723455733727976236213311927493017915995817405943788804208847198557788086975195912580719673046587937207722093445280140498775439883744568831469314607130293202404584959761490152983055697924288416921290378617983781193938212234638426194590934556999841177957570685389818693428598726767289655487843884744710370129790625424984609871553983608296004895534536664493031539164623754944547095819373102377268262002396719527755540059116433424310269030587668603601349019289199662216058205940716830276591426381168880830940353480796008784617375550495642818829064767527385704042809543369714902187348867583792162982862888325342888833213879123069781553106129448951611090202231930965890453184876363630660161074410117995403253589262243517876032313831981454456750101961974444451539700688423066530680517287742860935782922852024563970024131783950154893018238365589355715107496329827899418799287290173424437517160189014182027426097416325869842275992068913922163084123701333029755620174755310101650602232247745066736537065791666827238190334859860713406922507460979347231433907459371804071624493716441591839543633529863806262722037287843369235208680885747234244120811590510424068542674724994622245016415330183372746739486308536426239510672051542805861604859590318417005105931850512564281096041536815331716230345676993697364283465032151819854261926451813783381252704167081730309014181165733631699076524730481042447792699470252648887535707118036030856449351711779026067597468840662995881673054367753244269871275095751240319770822884470988627302960247758612933035170833166428542216478333020037803476834666351849986380639408703155688184463278485463743739089951215378712330715506028060757104908446672314217795276424280998176816422716174885061230413176886555335579804121635931420919639902877785965715664832464206755268815745824225397511059538948803353479102157877546559769032623114782146675721188058852161063313520305584401596272869269838598052117711144094721819618285021922153345398713997815719589309805537896733137101308820749818535492829939998225483752134571396340681825785726582742993788212624507688948849143257601203573534513867941853722255235583551369972304423045822163192535025732145150363952126108536986658979105237816615047021096271355194159766708959652873752223780001101211280802821628366894146106535653888417217994874465787795862236403296213245490122363456120881872256731642176452664952136521933561093123053404860201178436716585341174645753616983188290873090508750763911815746853137248206951048437549631298537050396124628065464662752512234252291957653817904444784051799840970341121400607257700501976144516012456624180729005248979505536251630824412911261900908031730769568055495478698961774867892570231666734739805925717034561547311480219189223531541880921791342922674287039021782035514539119642807478745723994847411153312419409651325641547975524834368251238213970215617721675501925567255600056369616137605147732027820770679082995675675412682392821873356930772041886986596922427566733488945426593924885050126790970090388615761290361002081650481082696439857481125729085784417141817257964480105659411625459342167573905593839297233179842357736401466038364560273308907750046490633781194341396135434511488627445637000365403952562584478883011655066071604321816303759993688377575865043567534682235001900255441534621100680803280190416940073918207914024286702258996422785322920570666132733469772944474477461457124588891653055686079105823723646975155099039070311771303147047226207675723658345309331578149748964098726401707999713080339584660648036090461162999750681620521226627640148584351009757357727010844175553458208138926878675968561404260647609810420403051646086126539136189175235834181042765114742798048563437498770595847904030619736870865199236537493024024033422111462082689339418007284140074775833640964918434172017194957463713854962224473923869690167801524215534533605157045401091012371507349298931307497621373373698317665398780780815057564179065720512363409423909341094487087240007792223421004446591083801809666379231687619575542335099748965015153241204526232263553716888281081013661950500565362645293576364279093244628725523892366403366019121687144517693864072601389156191243376178557290211223180949657558727283280239979248937835375148919485523009148260471916012102830478237528014710014238872007428582812989741754651063716635206890311153572874765824031172280684332531656887022570381971625212205213883909138914066953932308963484057686933337185714516959852981127686893905853461233660021478117616656566176601473015114836796937249443022260817158292178315068831280131216439508490138747314999697303135282978346172471673455814643334733783457656288013305748643496752233548905273312867481666274492917040281910625407246393698112361142364869893269345780557659602966895097149985393679203964519663481064664719931375145636694503209833905493434508659023807830725207328323027127796855565351013032888651501629026788414489397789740126443822749242394585594232217457758473067745633561434719249267403972286146716290620399291831894609716790147456725736134555545523004982142837144577159132856350622927283589347413285418330104298730232765331081000644438226571538035902603268048512308397467993310343144046821591382841629310264026471507591276522865193055877938048993882129224120670541146489012218201011935349254812555621446325462477798095255706596326220021741221505613536707466416862639618954628068668165171423490623766077399986274168487860492958479471778682348113031047924525085156203763973879521936287865779821766398084731923349489659121836882574116969558621204227440663309287652996377212528831943196695271133912231683562089826395181193823689542871992439058821629103898274469926936546971508235273130755743653472625734218264979641938107135242719621577635444107379733605331246026087802590299337824218252838778585281000144249829250743445215704039401734729431321929578541506623832625736815869716268095608837145096925981117895721635485950652423740961689624378972560499739207429837365683970465253310553364584971950726326007099748094796889531922770210794615951004713213332720447193892802972208418324700844053402874447077500243408022168899331661922836496943566563784925868839787537819780132653944501887984745607054196477688579314519125632977156152904847288983826508790165217764162170304874324852036847637105757231250767892713086723820817046942515690665804440539085615145090454461648745861918762757437263902518642294886965909456468200134841827077240535355888659894438508865243728979691818041249690420064149524678600785629469121231534829851610380887240757892771436029890858554886535760035356650443236842319635376564399800163854654845725605381326485828532086124550266503688319782967266523615231989510895858630580342706802923154616539334632078150700233472242574665100584102412904031306255078684339173392677761790965881054502986177953293869963799981713014282107147688200218368927584014655306914625690718647159777525330836410451822523474803320495739330382534377742118531628288815679687672850699267156163987662634745913593754727256011541904201898344483579434616663838126278996926271287911433682759942258596400606009806899644775880708170413116632068299963552176673575099494861576271992225346815245324643296667871386741704659664798446495706669621396179212710810582740605898861364654904422698505860567846424728880312903422687377818933391074740544381050185408812008265094889581017132354423725034543973592363239515339451336087762287239603447230142996797579246001849425156314545213733756380536166133880684494842588477733614807525223514870799465989126197331777597970939551593628872872878548667553730991550838116038305755471823434892530214595929445257323373714423082382281690225963390757776613241037766360498404844521663116598668044233674393851942778440414441486071213416539173282136923882365775898334976972325854122053075487152779548869968422780329212161009551144426844276119951283448008986218705614830300773351266895342531255128389284895541288617467509818955514061123058038195899344070721657857409471289138045701857123304123068665210696913601219399499596943063819581568428720058775203016330997009600369844196223275320456081405134269092610181368424110260091152238785486834310190048359771154329846474796599138306297925505218072672300751415975757877057912049115402924198208799255394681666562695063431078106019426167467530004251865921075341601456494970662540282723188774620816692401144909143141769473489033998573338153223391804609612325729594772227222219926844870938942219892444851927427050505584889946107548149787606053385879915874756930994590287167076643347187638691135374433899211163037661597422956362984820009828559627012699581754604104910067049562562311093457931184374176058201612500526720973667136924162090148999783483828816625228687235842954598958860844602572603693026036241913389298024043289869537089377388520097631128057774526084401045887736175743011301943452880849805520517023391675309190374859747412205725344701096227678433315359988322943546364959902511463527700720907265156000515266018121893630737344145132784954478363557654293481344765619047915355741114761760690075007262957356018431176709507903784181084976041010132677563045712076832178285327392821473361058251804720646259748233277411284407926458044417658474067816551765950857621936227108544542328761617879440761534568537212130965055557670411616453428481701928408418373338600100559058544090028512893919939817125780408241164347080234217084623501312698418933265758784510216425547222912403557618263378417023200973775362077222488333511080871415421923131291756744728328143932934436899154015724986005097086815902422893633827678955835231032750802541545789585983347761212470140408515429196719721546349161787329498300964662319197634475546600790631997553753685030022908824806829685703055676526867951166140878789493104185955723353751919771277513528786591976471908973531841466045286418832324735072392690311609505586341801519932549632632947186896122324464888613892481918292203162480174341866436757350170009199966114151056239453232583751420784753532247542159175542938094720763071315841957234971883193974038509781967930437545913582067465379225643551196910859129752847043549277857630872092480907289812746939208298414692427679811084814987066543798948942613475907070967572134635730544458306152135032603061884529472981974435962110299373053411047017838229195947784385424688531157409040840632678033427137037857499582005576595607752891333410797287156702438722032709130485946262625610949850412340122706574306976931471738640225024054313342762452758452192874858720089427247063909029325221581925211569796498593661716523334644669214860547190644617321944626197157422423902642949948392404736655678647383522886326111401776396217952819697959342637274381616433129529856698963636457504172585189681596015291882692426085199420620221735811897844507626754550203589401073653029231755017101604896567233049096698299469837209403891147235701470345363841817665378698816377356977851277773258274589587910957413194787671629271981946426904469673388585205395373424877378514936075403205428536418899197981194530527655701936691998822500487078636645346446080919731564113145429160128325981271600803416399389154175664923275885945593345704702208559607792784042249999349512219004295751338214316864653083015526981401891635596968832042851943480533663569849249260994555271959474358862505270043500434724799746686706326001409503315079998672753307825630992214291702366642079007790572875909102970863301943426611504867373678913114822526146570262566340586712708628312701643051726145732755353940306470021681265582681233642787482531478514645272436603897510652186524256812556720467131308734520952400765142302749984301480559507207790020399503779966050096409820415940219907818219384314621015567617371966568618289885298936653503424412201288769938873168398782049833406433738994087382655053403196072795046557931713632449057993657566077815769787501770997460034881686984207999614463786041707409885535425801300029337329928329780770417927645686154256176796726665795646966159205884979284496795566981302203013389745061079673736251054977332000620580009230552249825718617603154825369688796679255936931014905510383962745872170471882193393151481236960147518312254678907147873366958485777029587758681036010941983654558955324624119220815571755142009564479750400131094123488116099368035153993829399194803284093311100956587197731233106694208592577204669341685078076443106237511136937868039592019948824322351526517148501380790295493748766201815583659831115993118032458643323100049876945019999947806173799426336290229229361063371198421976638641221133990619803644812316510659641390775742842565690350015154879696736438897344481916244623431613668947435582264829670200551002297214304974825694448487204421052648949042225341704933663045184448448159672054870452223481730849435278252734687381954429992668900056533345932896414786201965020701579694115570435379930524700183111273202004672221524223102269051870505185633567964112182978828933300053763182997342003723492622358413355884618033584126539952427782532405190977472271032277838110801211349078138253593069302918612264943336786322223520370312384559215919679680741335855360971635988322094426051233790220565981608228180522030622688609338260011988846339166849737278627396260758872062808863761786966549655957367416306302684495342410795418505434184501038824071157183103014393029724449348680748946475525348202391579097991626967509216873293841259923246284616185269406494735766866281304528635849809445386598130974918662560973589413054382739189893525926170215953550384196416841347050191113650569525786125237450175758198018984082032313361992044642153456827003171401300111888971974786461990539133176788350405044440549529015147986740861908954682744644277243708195399103896356261079761456296426864537735789642452821471348483091691402303053669433521100576821776394409054716095751471765503786605653749514391277555665922948709162968741967744255790951564995675237358921541783156416810646712760812428551139108047332823695872751471317065450954162573888789393633499497960736075351130376545579310493898552695243452491127966143545082118526069960126950729825090137732165635694434899520330103546790846271855402601914217826608452634946006364083399186424685211038677029331992183617375334517331671472650156562503289058460104420082215245493872685255768178075719379834335499289029385091109671484001059170626712476881536901753478441828476096782012704572070199724627573625338337959106430434870155155060227455190291265753967950175027684077277781742635922943360870345239439869778802666392097205501446971065646666961290248822970942520843648963773765710047949210331714898431874551208694331136721432408176123091251115590504458965292024966809931672947770745195589635162350388088009147671497895422370316923432797555314550121857561258089618544340559419301591555685636902339788287446185660355721442218199085205456859135271485500441141180568465124724485638063006267924137008770591240053091961914750235510189793538800225482552450730162228134345676321373571490128221972802178452154793808658575501931104093173933961500820413841876116659163344661602468767487798519161166877299741499627274110889827519620470497719766039205710276208079672568292517830788720463892848455904166939612329279726550288860098038045640433775887521607136834113185086519052508799151553633712941562531702293939321901969181025848771336673483589566371193693546323033640982601720511342984391221674820126049181825125188513509282402254350197662476723903606451182383878682203803023655966534250384837799291417237043698942114815589335383994310983075925884413177650072153979588590116951096047154286701536796474255380043499923039730531159462948574926019960559167897802163922343253205612246022943545086837772858164033331314940075889875942567304900226503431136398691405087815930430684534644722684231221353835770013577021166686567033135633793350814775822038594727204665682352709740523225316768137746943175951892247833410760548131827587472933758538849602890843235387586003723025691740360527036278512378230833705011421655357469715431131409142792209901337884655522334242192624541368705639453603012689420554529293989101913205595940393617171564022215943984955281704871808135913117983666406079204082289725433808529486873060757086433473930457191255077191664760360855468758181435886949550948454138071327438246818095344608474267014963573961783161931347295822460729542703480054577342950879602226915971524207060792581368235962136957226973248994301518448606878528147510972374980372372897498075569603891285540311577069198967811811900080431405305314069165935373849810796805217317577631117691556684651072768921373266821879777146946705046664644427461205544925568583738809111479996406476981112675652330751479341816274895391642551290367902933359733677518475754166702538711945353047411631687504898150012721529584937908834599739836060486509608136738570867708133349099774702770406578341265746262640470883487032769722439692432746971989329380249366534178319191344647327635131611308274162438929159444414175826657582804324399816343717165979074506464430199703035471490618017490136041806949605268730795946482865377296353067774713124129031056890161263110272221564077890384716523898729998461610111202055495871776328488224138915654808312834834806792558167780556964140449394551956128724570055807831979605423413115384197686371162977366298570337469902839803054660742826088856167284715320092281954654149041660931838960626836685315895623418640247325847381192055061479009424482267377419687329099984619333634018331300001629721413451225778720652877676941315307137201179111478028110906143064144634138675617295960588858130201071334525171046744532197029272404716196021677803799506929573934823837698012365968713903599191660592016595386223683969113342345150848354409941450927689872296141743102043901754411655523305702488439969755557531711206491862567290844237295661087298733213350434081559453075040948384431205455823980635970310346795662026151127955940969870428037381185917920920947305068663617537614956194860685900457382737479369427078448971159611969745530876285400496403650942761810128440444189060509171742313175965339574903733083624182725056516491992872095550414919974055607319513994167753028827422482105320313184322451622626287037400086277641410568987749863484997302812355008283136707588056747841008724842767121203692342032430639223802750129625471856155814708895833952787387326058582595461679374034904986499590665172058710908546794635347157149311844911836888079604782169406205892728261852876341780419286236344720287887865642341281562165063586858420661702724389141515541438582253764374715620377309312473514431131740508368974291446808288561169153893483677957721824546420333954029576465262112525262042376951705366561802321096002165051295372965532715128111758440519019384832234858917494941258006546385804438172913282810406083463010841969616959337341108492836791615640883958749439124898190710258512262725940967128827611826703919217594876002496124997088924695994645418986407652082752710511215843436372381966207157830914197578934487821159749684526222352142501022988191004355977230821590857134645332501767050814820705392181252776382788121031386043159299194761436222899417195951894428807492354915661271430199328177941466711726279884319053477607097324660541472692967058124690698098885730975807132572184162858399594128145679257739707346813132152907139344116176907813174958073105904913064673589896866846641095455520830776250864978785070663139908214524850644719461393173348436295403407949082523068803295332976868950009028859000019208230696203431241152434825304520235363455131409277582713944896399721019919251079908084836491814425921609191455654246091264901208965242976042425834729201981015221082910030645510892242604183743310967304099398917129293254065594952733799949722800352563792509732162663882928741981182721525684744381878342334782183169296152008015594707202693104900530406726392985581528792587303428977133548171870537047238991962725615336561716140474019060429350229447701809068359751348605695814315504548128122760558592369100191370957480833448503608402197381715628216082341134776548851733296693891082129326490154518174344970169101371149559552661575930057668843723777089302800438304618723708425544318957508607547836246219512833293933378776453608484673549203239253686677263019644214647149512504212488956539192350072679982187901562988719948868940320678919864518947731220506598749605594255729304026179520478697861158904459160924385869128391977755632177957599004551636188152252488376142462811735584247735060931779817986976919598462039242172867663500740165655897132300324720807933691349780958265953660753236266116420603515135409667548287849385066882855431827897003750472905952652865825833548385045537979464007585221083072064230387176677724287200078740269757001273576383773389956741018230973831386175003780729429307394868202226621192915054453370979367081829108478876197484868715122833823570830534090905045556527198495270175952415871031520450629393647105722238734375921364251518702727265811870965998837617467588520566314715756731148000578594993215120254928768193957393829947633876381943135856768519635681013479777323048552028797061040997408362786476584362316211881971075328534454558950479883858434314222536649738301243952056718176562381492656058851565790698565849683023316445844382612487265323609300455192493500313429948351492265136401374930855215766237665749275666114090549777385924918617849444635631457084831625450971806594009907265782561984654978117228137409613820077143640554702730793512700963432463662753125923684191445166643999844734385377783708321827991838346871340933984182096424250251149829840256453045580470795846850173605582769264231534333119813733704868823275222851495914367345327485202746018584801530685237395251637870391028833174437738711024098897341543195304641155125119662884300831936339971910734377220351336522087393392476331294503790137960708797893234749231174200441314753344911597910668053058796355723656669204864668260682534708668056829035529596728336927209056644887447231380481916540999762191652131316877732664130521616174194935263947190117154582647389844990541787986629296238889333175023297627176201764930181913214157266817582450277436243152867617555205220765719153061041880150057014150119195091541179675138389408775299532681215998031601680339288585229060738505138808266592898775329164059060781148270368603432819902895051668425323064928377480625152045424877706210662807780679807610706883091165493602414130207007392921962486282965528082323625715603763344088450683433993649030544961306062461446692832138952907029247833319314286697926780457516546607870428367545317276224825208310911928661963979282521029577226167119218947116928186138877653136152854051904244025826061114558098355643092714173129315644747045786401935944291486521696234611582044521502676974100431062793911789493744937755809047213292002016233124792326281719040524849111531360436197477494670956900930525347301425229487233924023094736677005648643383333063021933826520134803885122989631268783797769883131387693774194993072897112618780022339757534983377345440336160298430848124391735731551212725204278638625036791211539799772114607411838923362185162578802710315625939813451120052917127193085663393003592709023613660696440312110310912378054338133747744234269546652859039998201705547552328461259783898894620417037512879240850870774318427888514047216919117523568798476318045465262100898721260716402813261046339058593004860757930104730123750518787120747461963726812389891822040894940037223795703658898616649942182335388803897985493423949215063494448402168058022870741645156547536063969443379109528862178762106058964220258728823692584478300887385643390036570324588556976603232659982757556983266011633583359832426415818334373872282692957497947986198871987960182745264188809058918372593768904406397228941841048115873784722000501157888040115953712651723837739053511245867826156921406037991570733475978064988438782648678615987144044183328807612497259738157987668997097653412943866653544446276633148320516777303250315851579096804682611128204898436617528028468811391825881806048721752543203817781145807714319371879447824927706228110909376351905404873047168171653475763123901408342209210169076231595815845014330219588950101569735408651018591951269761307488910322130570248502809540241564996910980090556228129291140337024241889920665578904014240999371584632382016579159374702065852423673966284967292724577540628883629373210157089090562460310408673132926120224587393225243662679549196757087024299521014208889302064371374697117304616905472846574234176252884666805974520545627023806221568771606558837136370464219649849137323573058471299898034385894802367037850117157553958922674990870227704128117921649528615624578225111061403088638939603397182356245084069344821201725037187502381851859718322811058399626738539158266571913362531128060782143699884033853974402865206835790395480523574814063843368285686220896464414210235416699908842192922221301709089538723833530752365145644207813323886497864246996196433826212105512790911004888215586436159871863330981243886289846181893015341148684614170987477177871055128930945470555427491218598052807270021259481623692656089102047627455446025649526258426234776340162355238291128004764126784810925655655159100781697597146153398003481546857000075973765576748467308329091092467796523361471973345121181192889031645926885579352637791027668550139540559653588742360806336843509716493718529102522821929670107692476474894278746838933560598428598570618223905456053406882898956445905640354538448270816159708715262776946234112790896006327714419528198030475455682181936613492044074930198390048375280935425369449027545163009397734708952027803693537934805906913906893095828393105427899696009469814316739486872260272016397499315537218214341286588558038832702995379139177113918694626871277641720843325925337515495309783414748035698597808181784333985275507697500744998464029308288729180932028296089574882078957120836001165196766040962735456106011067760982327154656507840965023169915143262091839207965476085372152961618410666924267248881204921603174902085641277691996000817702088222373925258586424307457723197185596784577129725764497079804791964669647567545344300312428227753372042585695975778212970703182552258347223389994555599433389618308389219356002103493254503710345198469410953395110164516091434365804310385350454997075137769384650823093830457128306224848981899618120010157191006161898459380157549634575261957084759600359996755279285121130534725113110823731745213532821116542334087919603011918553783084302464967599054051156749902107089850539942609884353648396657744260481567322964081424448672338349705506757557879053144449962246348593625000069882149216822571523723572952728782299237156091778905202568240603518588368650618381971671201442046741186259800773782839355979065378371337578734173421343389342048449481169143596682429968401013578939378710728554126126455648851506414608786886244740763088303454710201746726507093129828847385637821004949993865640419142941582090764692242758580596435338614238405088937710514857072428768904615118693978920270931934210985846479172514295975787493375562673352048348779846689094039860174442274536010381070595474020771909431307881286201491440360313792193625125975379001341608778294498048197337403267594286466342047314803658787470116000166588296837689220404301514907296533309997285499830116314246288379730711843641111545133233703417575403886031475802846426278075356985610663537191165445959270942493354873368069924365338047827062770778456935160655828996066876468162440629370236715011103281825243238027279055104796245567442719553087792433832410630075560020463710360769018313494543865808014252621407959939044859256171003420275147606460730132559826784938291666351337898543373213246450108902065778745082462162412136431597210967555976228706434155612739590675978924892002743010064114499275123865304119154255887411309430200118406412216893122379697588121613883791395718992525175600187049152081622983957585147618914051504657188600871000416106672141856147521340176571224829492429209761788709448682495129204825537233494529348737890131003970872501044881750077419397813310490069819263736501070266590752731880425719799545972670421648931979677672224199215188662858382792160418082366933153685311216458301060270349059360258023627072615012002824904360299609150771237841036285823634960706729795571142906879746625879447868633421012885207786673276051988455551019221794206564244407209127589414708327164993044509987494038367790374782144222232140388038350658301849257455869756805771234473346877861628822941345426979574881131479876432572704201405884505015829117776323279778958968378083666653605799801575636466348234559166621560734238916647735220587044467176409837973052511956247967430574756168098250244423866771591086147538552545355907945235865431157433595731735263447954685755749028806186407747277516584119290323134578261496497449733682324710235187504334829539245374307580944310012621248345638043349621265665401361926521847072874687936719680851168497951729956853852501414999282833405785386920431528630402084999591947515744536934572188743235015882163366097655503800509630075498195088720966784120398664016227766300389474257212265364343440704279697368149646196498651074509704139207621339671504531969222446571519109457610955162708263629931624885655529480126743029689170312060565397752481738213080183073660148587116539313525984145552950333149818508587240464316286985574324289727158738798755931151055929461793121315890667020485362608892235997110848154118532365155309760594966358663472432275456814122100878964670423918385121263833722000609455435196210853741681979030723177735044313368828496519059461201391057753833271851131957689258583900813918099708436840177942371959046092687293728386478282254284398740841146728925904013323673419464512083893953712700789694799660318188065304012318890447271842242250426896780055817919900072747196975092916764853238687311007948614541166580066972978475227619047937529240111058044681208756086153520905327154125917140774125130172086734759770099381530534001523902100815606662537411402567867379496973432530655943580043464686872519299430850228376997433076512689698026345518090827063863468719633430567516944876033830434078280053062413516939497207045319424654666421489039585497889767903189609739830382528816128584664839049759480024040896701575163650564145247049146263983718453555283685678575129450500813043188114772067019830896343953242611518224268704767966348342103886143087201394312618086375611106249563966455150475710440649511246473347469794160217028126000035888631411688690354227694770929140232897786012395548395802331980141782235003058656011012237208091204691054318277572080081745479974241994696845048001085521993010664502137766452443328290203271653815554499127715681412874486919343967588001220930375722422710214056635517563032671268815418990911265727716170808843422720974766737311567205937125199389251259734553521552456178876272226214402941234300419069590621772482900702033896433627887141243989220029720913732544348765599634930001450942281546905103200192495339059644800080037210212594547884424881289742188053726956039282462563081757229302740914927030706442720048412522452654881246372330049521309026484728714480533563263309936196318427633252620765484958147584417209524249029026442899694643483341911543703596484822475708760180718296698290074761444803461734830508273902849306878549239685554744027972940447725654647463462914940506310096644324555937870260160857476138753958597244195388196857950521975352865079365036391849170372812567680231268511972122063922408474237877058942888497033070308229448450170410265876421432921592073634391103752541199864776001208152643649183543856940481059356196616408373994978140020890227055382381849616973210849142342525068590121536244960388635905146140929293739958479148322180579718954229774751953042545325937302874277122811223874668941517568629358503388735805863456785749541612044547771857903806901938894767854590399560978393677974562448609855014187505221648560621843167722660458167583561581283912779927341336815698470339680532061230782716728989436682608245093190826695074205557665385658371402870247230599094578231735454312150342410622638900395790227852988329865293555595725286678058667227085419413733477036650304652252844135679536817236577307191101712766619514888356438636600980247967771332339438878992695581520452419378570901629479261569490469899526734468897626834093293372870336259606521839100513776242562530127106628575111611824309309684802939383026671829800351382476123062557502207311910659566333558078821039328704646058152373731875096574497032714043432248613756262606287781140618027095868522022603269185701026790696456009836699541124386311490778167909839247478554757806613318834773518067839788984388725204453871841790118728012821634885469035010974428191029513699037723116318005273803313634303773250603028406042162111902656640867761632947396417616109944743260371564106662568261959900648422316611341484267469734303857003577843750720176183340699280273424632015111394634012971691152109172249423390614114049254968567776607778102977007701131215397392666759120979247841860483475344879471374772521624356360573715096515339606153193407282837617005925984597415582314530592145114652587107249373557192230277105834108196751713837795798864464256355412810716711783201912440904525611323730129110952110779085869255084069520272670283528763119312228560637131349702683045808809005065042393075359782951857913094821256911789634917941857896276447243590373914899415907231436655508703720125239422192517379046087250013885731850629469081429114855543249411280816343176167915152081293385505649816593904471074733042359757121079097515882564290051618635641208797088293176736252154453753829026530239329243991723537311077686385287190163370730806595298488131082931644238774672651966481195500169938745069724860892142512148827183197725540761415793463425289026444854394108502641372614615766725282559724708922548112304053532843903446138103015107815332455906375481993908709573996483270508015695239145409685258150695363539742029644405328839147765526226862864600505434819648215818160919573330440145842469265457753112797317526022633966808256615241732263875608452011695255492679448199482467009399838607379545260392769977000189727250310336253688843969574780027995463073528281941269342650069630778157526302811388071210782225038977302792698335491506153343386505651727620140802947197660584366225840073396589393610544308441891172558079945053737592756304851782306842844531214788564874060103915695182336415914019316624017727842791892197124063861401216956701087227130275627426720220103081477776953456435472585469051235601388551776444498321895286190805904892577048278704023799459098399814670653359632329957480163670056970856362425907116478204082441720821689085162219057815814453413863734298228954116851313309817576458330501976062684976134158057928305473143988356969534243028915166061217537244752123092195394121015701795629167444595942466360620741272611392789485587625084641014686047450341914008073513194127269119945088503450217891121819077575581835823406332043583272626582444484488400335484016787382528185447156663555314017582340730087792576213816243299582848541729713522006605018636443712650748783062852846505354864877133413977109660490959022144754372949629553574303132748168508651373879127336898920103171296062877033494335038417450876912066548982567451184536544525429394758743433817700354715476360467023692392712809046129020923280796345257970085819830274645098636268686676105005814564305141438337680098841079937627740509431334071460798125901866369944017191647750882035582000034811708862217273308974874115375821470594360206924212222384874871467084259127969318673678137500704163046516987732450842848071566466063968439003731517142598039097047180084420547127752851847301116836433975909637731552032012513297155816646331436430255509138788817813688552513611916495927930914603440611596304676928105882915644512966974042165513752277244176273993637326413305126148791744007132046272642359601233379148513566289678742954345277010749208691132369134920615802858652325103732488291598778335037610141106851284334367597663377438728095570835311630017446607624420389798961396066684462509231332687814065551103744237844084704514813084561757866243983740351965557135951850250017930671924610804965476940217864001734446264592695231878457865416490799936472371409094173218635824153363717846303737738807870188102614537476108548417428642941292256691657330403704132582967554192378089382761041382588849021277461260348879604923612574936466250785577714346688410719507758326510372333336986254053191250534317382672196227447272636847288596482309138347534328877057305036515304242222477493455888909563615402845388484445363758637498128590654982053294439064893166408531207921659651031022147671719809544073340798667871148037459954480214781235776394201064626618708114989051035598902990352604467993328051208637984220477083230510818894456828172729733784574252902588484335540213137839410048080985270317487083546690039797543742028504465976029056682561102678751508740439786040343669666693882420917202413945724470602489798886484651521430297870386929413384461604873167301652192729947403405119654744283586821249231819564135426657392758381407939657328609262143562142841708576689998986472085866927134461556330353468434040960804228021405194268928708028833182716964751992720048402451905597930964688195421541359350307844761692076225765152071410546690296697516626530703794592031055353981121289552682161820428337976388717514189936274821468289006297368551909858548083548591186022219854304971190211326269820329662168065655024055608282224602612289434981035740470546457701713479985057548649623243276269164346088062624910250136851339389739333938464947614351513011798104200541362008498794019923953805369679894987781531968736056686258578617970201613830918700893674869574765996330558180643823887977603004087290590226671047674067527573475979773060554411933794047743219578125441697856820764524067867376788459021559001005897338289623414305280479491147091336980122281443479184711766494571820650197050151326092995326271406370997309782643096368901555511123957591481154992423530617784686680136827523379537307460837303480180740145976306842515075626894269541043737867415256037046151245105712499473448419670952873464312983156120423926020878917849778329331121845970267783173139311953365400190091603917432576389003559743339566410068308977293845362074168911617457030658372972744908382379759157721635458780775126770907551494549592172617491282221360417344439338757371975589973741790098370545933657533624233925707384869033574591117827756459277656614709859974342117124115556596343820541107705744312768984256552451742864125139729397255120787489200986930228944897451750258691313761454376009476394072643963090706751382552581101286961740188854870069187402212742735663497414101958723038545837016294816563761416398763916864655171238373072291657783686200590578263963109701660871188510247489195042142382764909481373097213423129058725959859457403853776105324166604170158327406085377027601186794549065519090194035915147807891587813987362140605908816140328030978389903995650929188129055583143295343347671203755790928166852819056010496731549965605400141698064288871672258363053091469810168377431999008217411067357261071623567436050735821637128850058972503678071110699918847180613920685142119341882466695837081386292563285323909301263804053382706473313641866919469523507018848925150326278773064941729963368339764744988422124729334931440896561396627195572120336579324136992604877508030174823794933729432191877547161891492747514421671391786422577106171577047606641824830098245599307754331121522380678323217262164808114081885207637581760079712926012313128003855858627407410512713062831073332281226839554530659013576026709761658536632127058982952893439196124855333067245286232656438832658178432524304022904992363129179574914699745384349456006861299852144508369700941468083591721127395855111413628923624414601277394769070134888425869071208844653613739693710540691777467889901392421183097562905942099266958869986410041112815295549240338368759383772228479622373787798209397877042363844081937502202376509959610761520729015667574546634390514371529622018616756680317624543317632990393146451206546241306640581263045219320809468069977826846828943673225110161105785615170166439775387399827120498417095192879555872150190528434879220922659794726408199100782585831494294044671437281771252186781144219792831574182400586224933453865215607587043633847925044240109420178244014206881821429120316963342862362344618264075105221670176397698585274761037056320739778420131813354619288618067773121410705469955955442031130493351994714361170492962454148341351621568963566536141035004549518057809347228129379957608696996960416685610660132040677205778784291024455687662040475577531722557199741015539199885937319307591811266964920333008632522053018605491798316196979534044847622561454262825113265192691469633512676650876694771408927335040188405538866971512615523791798729453469787944468218382229522656152980724040983850689957503807601457986065602485137023353474201335599122915325783852638306421965937676277469417488612356272564784094999238612509217111030368673675893314626611633215165115383458325179761754670180288389920251237226339016759281378262938047949120002529157291497670769161816200947245197118008368676822802642627891591949482445546498578051779005521166783084809259321242015122295378540601936978922098621623264736125909432150835769352307131330701711052789815952854742378404459730789748573191178584811226854917838434088561334739005998904380343095082038237384103351303018000688246942548849859971525087900861935058108219459831115571424704677953301886009916961387311532353512455969706112825243197338603656834664139983283656594728885912482162153343963778377932912799096298717643383350506602827533524928677444620880951314011556376958514657056831328826442776111589162798759476941392784408179549685553046146367448271188751661151852652052856612920338331041440921143737323091518171551525873767759929535599724462256525865312348475531560102488614270611436190445344892332919898362176696174735208446263701653339640959904747561766833834069166515157669513600383143673744420291319668259203635984328481445358587613437205515404481079211923750613008104974078468405761319867501861469899745602001234785121283883916372733894204615618754460906862368177294812362406861918697004613278806934744181454748380572985148338509476205938314774175685207808179186585763008847273598266767455893990725641556039751348716856396714963810093495803281172204073150841031258224421271116859008769448136998454388970460484926415536302149055353717809520940836791353847800284030071928663311163472484154669966238730518645989127691678590050466648856759801205108530317194685194129022022703754971673416763982672738385914413223433075644799674947101201565959608262191901851371196496661872002759728720080889010493575730496700783394815234168261666859889821896140832143041633676983379953395098879835448022650305700390175122734177530369056259419955363541013727174109671617830911376719888664622684161583518223093521920462203313191883815053694579812787220501937784973887535535369825484120679698795469444131521334281234659505102660959093696333610350785380997600435888443910028945213109929244622248445962779225869547053770778077562182319454954773436312755025711062706148305598632721457985946275801119388986167414912240936794040909522782080019627572657319869762019164065344208062755961968351367006335074204009067984438719751916485130051625075401224708412141363883299821555452388573480445362011172473513410826732922542281364844636846632989300566351542121321388519411148150677125071691526838603301745309059922640355314673019755369347586931304578013565204523224280286921805471614469083204653884471862972285741469130984319560412363765923587730372525711900792938940880548001205205274134151163884306927560451644799512039594909947845687846354911800735731867770793972278560772568966619985596888564260776453421102160522334757024639389653888815846473244049104919248570585333469084984815155255362450680331347618141759881805859522502572587784161418656674850904250554363428872916663743826442748857805165384138782049521697451082372823094407254798196259389929351566411083769877564202505722750400910705200143539364942185363782516333543881379667913982320698295413719200963924061630937528597913877879007916914309114903552518338547839222092645593950271803347869941849833743530517369192608090069297806047633977067325786616141210675164614488109656961683227610062403476385326241674250459000233531882527632352859286673266876171100677539840920629293596009400028464494909796835693064842804635721353632490159159045089623238499304378017409068761024129750703351116747824647067001139969476284946864450757997915946463598611537248430355429770057046568516870029642631321094023470170300402663538842730450287778178858668326021975082158251757320628761487234040375047942267620777010113761813369086019613119010592048519703733772686371038964307687134448924495682380636680157385126002124947947693675143434642825648268785182608254396072415282583273533630942284364739163931364278024168709815966472678727445400703766688140875502246375436442433877548533332158985835337976843200806571065841521755469098541101944532778353711795246673643563997788202359354192182380864740027415630562842442460607783965049377845278053442611938333681884411384934052860818897673436435061804873510356672055581573501379040407401050516430351941551153210676185443894619354535040345718454750577189221812602813957123695656657154225349848055300511666918869851450139705475832023964042385139076802858368429208239189867988355057831476783858040950809107994413863729718220600891909184698128490114011835904862547786855291060342543224011663890385004854396724788762112832999402326582364262991975586395817143023354572755147590158552318922603333596291845264863153487884203202738676277336432573275222479919005558564931444130700646827685173954708963501893944468286591156532038436699936005582924393526270942906598680172652892619119277026792020615156692931651756010900205424957507944956566552160470208164401127776928024518207377299637872692974459294554043872214819049691590688928356795277424496960747945711114427811412473124713943977724484541149796777803490899897324742870757900555667662940505748821485624056069548154977172512794141414221759408604842154690245243190635318108900431996755436832962003767963082462171500441487696490359815780081509686891509049605431568787781586827664088316303506401231015965869013081695721076375391336276515689208311878681025215847411114679193639307623202420329907562356194933058297485221378037950757477596836391507212299994708584621316801703861430069751734334197803100167603474814637191845308350672061101432633544075076643666755840687296573952524248060639953899383521428685824923989006313630082115166249362325248297537488526222012087770626890155807315813583360886751291536300663610331763517402205951721030102331548868190691536905227105159685458899127215860701468298254381856126511416234099428355715829279837313560250201891467502637526069505405207927863156445346849684023910556842845899070643097956548486465902191259530828570242949848291893839092304959061263886866353999709599776712192465868536224726454498293040429221481984625645503177499460809803202904070970789712297265265175264857357672579035926786520058138277099134195210909146911995784960900427003651940134161556721029194348506290597077558031971762625007402551332551830965728678948251649223735348528658324297002983048465378047278150297776514783414179925752416128356275171788306546598728123054845232013038386687535944849302910225555773660995938681368310119622965616037597272269396174926942135501990381752457106939603791773216111434830892294981850468108466556099707482738883766717812913992381756646694705221330739337146186986899981492527961449181348183935781736283367411635388504967362552376008433616404706895828425195615020086711624148695488824385951263359086583454958408997423387878331590336018971250357919519867255866582543503668921920571210806034009430538601333297125130003583154107142337183631260609945512181259001063116304835512628490179222418939680671594301955954335487790276200923791762978063744405594175300245789239077538364819621380593320457032216013168082210291726520671902943450699080000151581227448495472814700962942584965453513139722555634430967079744658012689286820932138221223853187546470179613329241092936059765964037811508642835106119723957404864354530580101033319248133032337849097397898231177760837864956178081068249523878892561237060186688513657764266448528842403169447794409561412924308418257139871608029946362656845609459997224848862125090663587567477474265068122242112364023992444614050338875750538408373258981001676809855832998928269975994000880289740560599325529615359614905172193999215520296586402867911193155186044176267362594144346661162968056709544332885436574182969817247416141661452874626313955309364837954949994707008592266387025359844673534827257756992503178119201546414412713448774235295621724929229102819341250536635738922487687084593950922918245606696818452882544613097757469078438539348043439280765348889132718865705190525724148675052657608969548592048475416916710079457091839679433354952613277016661787803241795306486982632621494198063455544998616901673525826346859147107454541191809076326611582009916439596577455443594898708223794880322968830099134912145477821478662926305682055470225347798706221308093522616050774942272606929556406336691885643320917106393331255863052590190544296984745014174982966062055052443637895715444783204457114003507946114578631029822294637423016865110299301859199049062282652246293088455504326469062297513281538090008348090185246674852412559825772167964254487967438409615615223246410693305383718702637715313694498447496262717994180905894374939720954821788762113556498941936170094318051842142316261902249533146045267676494476315686719611564774152072525413550410063750261276332910399623490967717639094272702283214923545809831020025145944404879672866814035926589040411507013200466890137699189953297345298923147059542315797292758463772801265773033582591878668434175288585956952645114252765916680444350794892190408735208372192089591617683203985885785947602238951445549428122386106058960021393783062124658221745277990206654339188877973359613560106985731736824990836314281258181877598616806853940773810009023607850858506262840652583467929589314125031646119026177078966789471800561349774950237087311139372968739440298961438252485072866752377773668841713900004180938365532632150950769869005344668876501699897832146336746300024596139571184425593702427311324209833907511944233716702900518458901083924794182674624077760916364066724013244762995813279289390628914923237697818143504440349821937483888652836402766132567007106809188306828495148015125468300581647752425895571369138413131763793042630960890045955906012672958586955609449799061311424601716344339229219301803279000085588646397793916462814745503854580759249907718165582785404046905774746134204831021332699954909663391269304231666132537505619872153800172907453178234642235224430732760277320208651490964610423823186383421158491918581550394215837963587026006940146967308194411496110563964486349324569092413200991343119367210466314786170971399657759623360242535827779628089826465333761288018205471765382229330085821004430430366167102239122779319110987333079326852866236379016879100776249052644366585279363593590935091317261533965388401689310365642943868951316303816312185659834358326214332864715600490474677999216695266344929443257741594307974876480524529663631605824290987965415635721094036452147431283925923469554315249829494940575708600689626674831791803841156520268461405945440441160257885423798767717170554878117598258763871964178208384016283093540166024517639256833964069433750149084891493636467576939263420677652381166043927675862742247036760885589076230219554453453091006105801165480630245487651215775888705986719266398018557152274810179443859957134546898167958273243751498208524382167242348268931365683025207354628349438752227365214430911998623817843721442539865980077406026252633989388568865593703166158190422004109304031241197201823767591280731201125198764096019890565551351653725573221514841250908747661127682300523625929613194089037330617004371860052896986554566177993093922000170919170430436777298317237138775594231632331503912375936596024292270929937480590738267237582591186384122257849582974392153027530311282368856667638705156364976851792971454364208734597746149149565828281737292864277303888163478992949902086649861609870036801283081335503132696021402745809875643159146096460362328095582029679701046964429137288230276632803093804791272388312620552655419263134262719818935999855152084229980868074608176998116005954650665352536576272734884186602191565882845328893049331269877432488220324868169005940642821406213982276082454952713930252308363483669145339707819784782122686833867922565216402450704383380703076042885781784425112641049998394847579951263539120562207453116927671855265614523708895755275308584380790289366984785118296666365090389565663962345088958306310495147779819849996965411699125859554656603112155024490090797014583222637735437119598570029630837026521109374058672009437225835986760736365501312542505936239892360684540863135012140992221663052558639093648723622543097881895855032401388389724954579905313247149526958814094636008996992434080304935263360825055172770377060901168058375155422558158191497144684301063705521208471028115363692740198032916265466165120682350942289921913489548502570078535421159869422015981250431253624895088762034427638404378222585531181500482384331317633593729275855815750738711482099227549160319899427139713759629781559016614920323538433874422671521953139709803887690597891469882003427290000772887647441519992226769705547891334333799879547542914392063809149468946663896025047572558121990307174810853334102934427846882114635289292452880213589169889563997672616691779169558918350831379250105021896955300730383258187992843757180939052066968324757596163559818159215179037427447820896968412188159466621581489286711836192717701336297968201375562386940949371279123556395406629107818349686378659237489184253405294126843742830025380268173746855781326504876864192043050099055048932292714327423381137485926683741901941448239621556598642634139237921717997771723856678730191000003954815075166026650011589998482014804697373089021303836485723031231164690685316438405087429486306847338578558411116826689879897715052124631934451115838747849508147656408312949365198912700203957217314015379839194112744105727776646264416221754808474552324040323275386736225691442540913759856538006961388557739627732659380413584343274557817523821362954181731353528052938064466138273993592731971264459511422298836629159089591183234666807976859057504331798977765678941267504983493662701737975884749740699273487203765955691707938365581840043908573930043580934955379407284059413857373981196500067614684372605398442344971271650528089745608293191859575135899312889512178848683485365280662265932208511549053045577908373699526402912766273640063053509691802115193763381878325864360336593696531076556258549959811898680357206177276351108572107671426767240846324287948961326511972975212148288292993138466544439637805765868761948676540525874012950690179467869963577122249874601548062692577294039822749870126928089037128660699737217091502784962015840973182089191183699897229441959076911964301496268502716347149948995037301173115829208193760986440868011807834431889418803705239531886525186953640931614936422453741264543978522709838165754116818767672049911873377415393396408475481904859493515789698831789495691363848142382090637733000639569175325466156334321443293645313043970630984172766672663806182471177533092979383610433346734347667051920708151888040547664407411772002484117382866227258129883476820573905875237357096908779782710841126169324421103965804577654893992436108919933045370293503530627061890041942216440197962689763230666693914053950538379454244978768674670989479216198095443382570266949270283586270014820482612626709488888272329860842631730633679036743729225958729791764823716109243982242722770848526034979056891110992035618808105636977228057498580575260329506266126703408200011231573441818570074338698681351051942111345733782135662606193451614767323299486731590818534744647990420984652161963807248992775189847049745496471024973140427049510171508531860226912059657762175466745732233837761705995028830122594686961009041831012955273574350084951904080795768577794123024780272379784725449798234500546779865553165052681385357999058988761377804889466039748362276019527888380192895467205230806597384618403556752443454028583088545930754652270664490783853806573721864917777035014471202158359768059206462746928748559491410863024495714031764095441639618012695409482588558325996055266179043699772243481721972895726786831730208548001708531792735737654158574794311466785382330477334014791431179193705937145726788213180649110818240039514466204574309130910618272358676192019221884152247078820403907721152765501208649557072474912004367711205991740866618261927594172318467209830637940770264026182868410248788099364035304405529972571021779557717078977486391420063798200640166453434026326425840122339546192594201984028147913345689244327210132659773510377897778647619070533224743419526601734793445334320034514577371204031851770596038802821597524394629248866367451230250956999140606904854526379687622176710994246091258673017678128257722916362355531813181920530509402389354405826030261502602284037202914165909753200284297935829677723108479539729510583200180243601826471178169218563280763721480846541091742503917299144066432198188655037189681740731215131754301901545268362731692846800087642739164576512386846993260701033208854510888330662220531129389594512708806946645334348070613580421800301195832097590501322479348328930922820333154158884335041595369762824441419131397624319256143052283136043204386645214987073300287782944313450051373871206634709011381055423494373409231989017510759889502683597685700245051134691341548017061296613855936730079801058652739660712907670238790742270673529914680947425798929286214331623139676232523123096246140414300963493971101309711838507685395940761420163823906006979396969635973991861359965491412535765339142587860875124057312118132478261458373092249385901002785653061379342442866322302906300824186363624593555888677203479270744882823196444683357974373609705969906388299044657418152988420105125417698614709127013784480230284938230345543245093072140567803917226292103378471279060619490888521620430202918195397831569830973767671388163047927679513940340301633676454772594686194853435419988180995056090761171997007607505617139836683138429674479604621958183280420094647306599481087987475702117015599340104768085578132230119773423956781909279267773308201000303871804073234430643106899382589921182486727434350023467818221817830816058659183107579992768346429494099356650723816097210466614044847675448043659107040269018852805506164624637550171349526435589665166425454747041430932882381226114817599795386871152881154713773868642086049499378396974923731773586112383747975206399339286148246330816500259499124191610739960718045775764525084794931806916947365536008846591407652441945964787171250419238432855538852524493153882987713321591881478640456048349943407313090573305535531819396452333349788560195227415413233483784208756583840506934973123417168120660982804736397122021289565666885258834424339216457400170385944845352267671052281102144233892438904454702880017321234675420029703375461422556464241329454822913854670572578153720379537151084160649420796686761726667723831132718181081534116403755368214856793025288912468968097373725210599633626132999396546000911310477241385128778767942730248725800619892035182020134278883906678875651686044870126628972829740434094741328976542069502977944262209725994134257523528574424065344840798087179836107795346119536674660320091742241265566568669972948196297894133464555461358248432573931173045677022814882063012679610557924427945787753601974847597632919252097169298737110955247537073137811002527154586619144807373271454302773660135525470724629423167668978608293821619533566461068434218940902318041711596548423510663021908944298277901151674728061925297129120239383275775777646096875244208425878955328976033292549140691557373653737717277481880909352967682244991630048209957649099513030329080712861602664428128287197999637474201280941693873219526488673704989399887690731419893690598610033770216933391009495215776528851614455847582160137648735092781461631576611173328816067685557505425109046580258141849276210678643126596360323346297672843549148850036360168701323550941261488904576526070836965673747007630962346421072134063237417416868536977807886192416811442279702689752574772524217299121087273840663135735508094149286302604177231805330419881478606504730580375402071352612923090422312688796156018413441885989752042263663376728796176017606157909896615782979602969380857222944076568424551447514769638019069829204393668547707233740838238557566437198325839144388552200691432870432292391023557928034406014202396314350897421169877696392353721498610176581972436538876714443722707722864065806480508029326064065661107539046736258114380272046449375160721417415473155989771479017454045128569180870906859743917384517800422992552374691136882604772544785847907339866733385683176130258892454492381882444632386079828328815887728429387208531233348477520958946315412040799266530749369435923580939805975251734904704376915772275283181790546914275113798907679417527338966438825159825490344808598989855799735800352933105660702392008600783025626190768353000336517322905873975291796183672858014392351797129720054941133660876851848843129317226110228496339073660158681457693304446019749546503042723927134428752670055889567379440876059588335811958646571505363444882874976637063312999132324859845008384435013250925700782970823721146238770110640701022619677759264693364094015200532402472543834831027913110066202543524074845341259320049278691603758816541948389667403634125559496472999784409250695034225463172826283685061852298531373040561084739023472716078435980124404546999266250733888227856920194947931639443834874820605702593727523670393762842707898848026342465273763243860118404862690755780778482270142592791228172262430258597034332247812507969693495865492666369898433184382537608332934710112877941563521054430909455006175817426385119222728027442859792008872003306629606798558407389470369278019783578313265766325302375235045484416293174194949796269285339207973610901351569426867081941819584903123381234965129687328915224833444235692476098396259394456393311140797294971481443478238505225934504515207687987783612325680725093081999168778284138356763244182758921668601224478995306014998228380385220790365560705180492941922571437162795704709282356145745544734083910699779513053824182457812735522458301173643868734647723178402197650889699687853855787523638508266812099188962724605183248866224756967687389632873944995071875270150628722178743387642548549318111483597082918560659208732005024756286541709155405711336506141404617326818617716419396003742671967633658498093336825001056425260841533934878760437699766444382544830926122586458291303149158677010313860439047056384312567960264783370272247713995203716424339214239333291977360600254417571006722152975146785331552331231076269751016436465169524278820209614854491563774445100995878831040085400401958395197899629406667749036796432982916747404086484690081608189164586181824527684899089853999601206687684061338569555617855270968248482046821361312058950499818866929739545254011791383876542638074997970818310752327737291701661519449099060254881576798091199548849657399238231563744451945930217072515980474536695164434039225413846417640549741500283578499578775266555422894070197675699013076621949297391159798267904526917932533718426363802773269087851625136663364821378576549968023453387756060642003568839980037113691522711919108927578536244319641661627910408762040517667077581553979658401212790213069299213501065981872386295340430854422325409699623701421922036122046963792676277237225212285676595734001017645796060903207636762603582250883704398475196515977081833405614902109197173361516139452465559335452002141537025794847063838474030910683922322160042421470588495565115043107731459694023213283678092947101773536621168183606229607623626635969470340350850149740873366167883185695872370016558376406059598722431652916959544383514449397875828267424392331693372497156508184887120920954117418955567101641410334179647224596916686364703218977750753924638889462759493755655868936108515990765353126816242025170873094522825593237018055131307137132174728204487478365026431496497461373513943151055608387139903988331828048812765415896281264126212066844577689900699684595704099004170022954851410507467966785659965694872447615881883779398601796915057331350690545783660130068166220136250974207093374231729313769520388559598570390097433611886124694638920364740405253146553140867330345905318967203475220602982260014658571705444044115999272820988865088019121525039357597151899897707231051305614539793138165370206554251801733000069075648512091567033063679037377360225571944490293119419883423433135682801799048011275107295141982998526334051850582700737971366758162672910936185128116188234980342804245207354972997224936283708345642399445459630849568491992151080537190775519741022384507274037028722711486995992007387789903234084434214473213433422997970041914755354666090020777207187444805568378001567582582893588652457371393596245979375165233457529735434281616299913865116816766505523241290297728689715702332752960909356705074991247518436580989375537618689728947554570987528516595403899941236743417810604313112327675190890364336529301386602293573939164592802045697782542741003880532445694522099095672881826953463347900431197717922926770660663706604487785817179125857636863956096113116220925989676270760089775119681020088501321885121997290027755857598196761530106603436451482975319503071868308151622877156864714286109585801401328415474151699291750079294641635272311753311896439873627332296998247399758311254643350095806113175311006738659789750801482562320741527739060866569675214440044507238373958682279657604380362333847301265384845146725044192171970507805799397199002557038995523870868465585735164546521101371352112784729991041871810780967135153479553617322677377029779654601474793918611631927766799421186855593111797412623731853123781836522510782625151823340002424101369223111366673909761750690108279307441603694673065691332623282694737867197040219069593877901968007693146827487396736293757437006385212463749794566405866617497335844202433623427050011811726445694337567091367750372750646869405641612873579788451304501285856825624950508419331739999904231257206890430838106852291521130705495946294515244645410474615626785935569007744396062268824971395268000427934544087671462883286729540334794815380464322808453384010449675853568990635044548609011898420589839558528653086529056568799796990433118757402648980290009127061056322739786229143806038863354845721113793514472603509267838648259587118044169313881020846036879037886208727515808282899357274352875322153464905945308047796117609860855702313561076396943391098222747426395868197912573198369194803157086991737877324723186951802258395143584449118715139263094063594072926028024027398066960290639920631241313029132240770139023105228616519848686754441409052197678583822359913813411316059294647927054021816121546639529046393554752037933255282868095103231275546013497773060070071191380587358911415302360100186441729312824690183697526572691660950032211354777783750667425187966129257733250283826260603090376691031834370364251753778161270525239406384659722177759021428511262582703022926288654196646818505540143312620448884044915106870517112071771008467997430111330253333956295246094242152599280993744049151787050543611286725976237628602346914680233394272012521351606153661478049666542671620202525270602891756328426156658868472714903337845238247318577985443654347255081525393692329191294835550003109354341382573052738425119058413270694731029502998211934821741976508960222290350441448851302648354867916977332373317243167995498239286761190998524921874450408527862505514291023975138524274440942548650169059632496818091744804119340258685414473406702380906344002921699557593674438488604926915314197250383666172957868739839689433548464481461122215925445247902543416462623037104136070945432511198979543969261238249601383946078422779307894355830656981986895068832895240505618363233964947892554255542394575607348816335344746943535553481719999920467118655583350117522955119781030262050866047055575333270855605791372475212987265643155963479298121215386141623512071816806392677442751748757545831312903278446532882616986477346740025619268782929208567859999750372940880404018650787650313136324572918794465333700080141236484887185749238028830775934484075150433550374324707873570354174091375250382215437233234002596338207870338378509477347379853106215756668044781479900445053076496601433990756122214740032772315280357412787023014639880016425658848836323130955427522620025976745546066665908967363765188277569355544698389452616532803456192107078328971494413095188274317413182761931819803940050224621107701644474450150403073029003523054495652501775230613564402279097150769048522791790472588479155590715324204582350754058644513800358541749201687732953112560354533508674143705921795757170069400685839802879133379400829083161130973627194484446697147519348930994724364743900396254650999017620449977682500137675679124885569903515288616692263580616670214845694780171936987331730877149669964942570351842421791021812322466408488347199881588851027625674840445242481754870805874869771767066436681323152271516894142983505912297733964564975734792338291135389608348087691401769669799072073644320929136743769249289784288086260986151580009613409826198869071334101578602321784530614792545609111094216336883247957406289643236593105734614288904477327904292079606416234283266834607858700065539433241760929129728112249078078462975349493677134940463439835429812643493135054524902945121811624113868949863257098278429689307269154668159155426871072182401911593471816881643447085328608470507933550150080862268153036214156934946947375529488542275409944349356342317078573719862254861835220224228990481679824081476009290093133584244930193583312360463629312853270350167298229712169627752106936672435506105122418126214592028434107894137639723028526262209673745578590344096295548439452962630930851686172965017288485747447126709944478583126243837933232659198724163721464157805068584751257314977775142496184401668811893047692324591728850560061136440472187069979029736203666852082120767323163036534917824450020959558256190689943023894400861791975811307066681313025637195634259275215344449322520784901551853507559370954132712480524693240952791128422277698702041239838428159794528410552981448857464296605191862995520440288596230729496984934838519795459312163571859926385801780462692547646207176979980242703266746132387328767274047640147874703023292726869480603685564458112956843410903458554190599383270290438837578244863145083807069740646726273348635751681074437635741891232229957564897615078821632810688031643347725377026714081548386133261011850713536247875163288961787207897825527654347716779924368211918206599401133153813679263269436653720303075107358163152104215859989220819389713353224662508762776489691510774742069481939415425962387600400494656916939166190600300879934403817345167875267741036656350024001528257407953443103170517204824689070059386228534532617968885048648970817325812163137393084271760987836818135164690486674532360813133829193050819691453518473178768153418350277493054837624412812602157123305374633713568845019210604167733385176592353861992295016351581517132351273072032703809807343034999231803061850899612516481682178622295372904100529965876476762388225975382557425042941057098955874210603097798906255886632790100683196982387776696389981032800570649708531414232407536175166972086241151021636701333714047921921453106956637537029251983151028280061841631770788443755619660969931699094601618537912346908435509377567008384042528753595779223593616695670075821386573813363589945350884357577505989794862840326813908887056480750623065310814029659578188204873450194768162228555255310130974822327871399966325702840881028429036441409468138703587292478401908550681199922477119989526989468722225444693828286179629986799504366715946097519009330344446519123326709368372909913634450548765304179172288638709989833632237259008783972307623247570360104863522117929430661862154593530076842204713309759187825861257007410986607888751385824937148691998459961816954155597806210863669745697035709399432815000066171505730672363412046175432652736957109392767321366355026080783133150794570129721776031903440597213774664185282142436456530712888303572149356767458602892124292283596420636718208012088538147247959251755152946156639301048101839968063644198249815354354298787199535750872944585450886708332429620852067800071139020661461508847263359997523990575732400467810142259275570491890731436471472821329114023109625253606524804764404083325406776386099231563631760820087411550544905100134223561139415583138923954390431989788855751073323170579091305620989090209274442897794784309205930286806991437716253568784496694159173234190746839718501687346452664776755540246183590902511222661495213925553980890147576278558521765886240765748180499172771331940748499885297205018652281040631186528962064840101745963709359281685072136873067259778299498007198291123461784174000634238318239030110181473668807402447370167255660955260597873621877800270386351380946105550833664660486475706772282379698148669776140825579650615511124127694792301435537662562920672929440579541668142342341854213710956878714684906837537097327036444300756515081724420809772982038112123211084722385004618838545720556752074526009021696052295360198767503010886119237217034720487219221134536066474685809285264640789984110423580108542725116547186330507490323486521963940203318505798465475647693175213785673439134778491048549276555801951399069456170643988533095014890944986989788423984321880098509424914101714179049741034137850151682315859640301158483235769380871003418388828301592079080349613794265086261009886101929108351231384861034614393025901589659310042571335420419977220591676301943697952253765879205522758953977085077102746796286072114430557520866002800489069168918398901214318454904701879868922133811402504139514472054476206069843492551149530370466362103143524455135730930280795194763765041153405741241109406542137544363066495517134563795227857846159906963763472778287403282693234887906265718722287603515739047584420682053947764377848751484540480737482141310162708151022171127290326743359392099571151145529908373234897895612859671189664328747815449753836457858608761419147715528257752339385915273492049775972349077636865744114033175210902073487772498614158164571052587440697984874442418782824403996551521083897896481917943635954090482298499253228197732274087426652629703243958315299258993096293654552891457407291438605050023307739499147644657492580442998593776677579526067259556775976702819059150553867288661028116479463509081771424888278306245526856103222551310941332096901935568200196651232950109528861998190179392576650021619272484728897005502169868329460094147890061698135080531263618137672311280470199059527015216541845413389632701922052668555471043534634395749465640527374739461961267941699579334598106061479597239717158846490998843459751557679372814692441327496192881174814174252639623435317055381356866138110641674220924091445818686727021682477577789435559002497940171889220119996877668345093821904034553732158851085194137448363459435524418588801900496745531433814383007951461087517829448046935445599972910535912948105046606397596124580424030116399418203681516161943370677129522400137821458388738280641433740605082080989454197523606340109282115184453764080229315146415483084848660545817035006013847261811964401213737446766187727696238040747593861562745415477264330810020769794824736824529428442934925467320634258739849827144733907324066490482839061723483537997319291397191633289519185278086925919247779170383133753829233956047905287016167425358886067016440576604829247465800721326247921595729118119206479901352398297776805092951505157884132755135779794779449955423594837159051589152337128973769644563545906431219680430056061629409936771592982508712831166723563766597790039293970815463532618147541559946721128431491840348977783344933306892195491165630845005715421841152356348048652576035193047465940238069613602310025000250974695309049740329834917784662698059509007279614186723495539362957891421329642215090041045861128439404933408405023549412994091869184631075960069923465478592185515516407271616059828216790527740675693559011132985578244103460383327638071612200612988625456306670935834179862725970712848837143644965296792941238043511431217433877034584954692642984576676140238752964997779674258367285200104304102423166911895211639212729038963848181221005847561161114986545238081082691681275419488470196405973732654247791352470142066157621751106304288194072005600455500340759380779379117968641932026377622378107093963470845205803988622923380133582288901073218241093413751553214654380962627926829701420826356411010234027622247917446643699746802806144117829255669926702314251672357218446660014980475490670652001930621980885077867487938933931610055797053022016010971381476179992028038922794577895584699791586016333350296375407082984921444507313579262460414299552622407057591852215830405092368007809254609477624445403085373094920699004897207749444360220950021880997574576089954480388753048641531565782999099241016367225993979942882259268537099728715316032873473268208183582508288537849860696329552852416144395827921963190006978127153671388528503038693022922841852037048118465941470706766694148133026796139316453410544587670345141026711041267369333308420029586759564479011554763507469755385179973286256335911391480431100573679412906294285949332283939739688178562373845984033295164716322989927529581600960973763722047261805100766038662132075292452618258693854671387883387181983888794194318053250183669123363939938920134716352836226127541216437293248049566700854763449995561965930430052021978646808487323231409895905815525647649184751902492576269807437102347219308986023980033488084733453590834485982574772524099154104719483759366804019148852393788204354040209321083872239924326641773026888183124957726069172106839249784016594579083169322745429681421116270953475207931212779902690427967818487499354868113614777874032872347803604136450945407205126325093384712909868257303280361549711611033180456340951835362303355112925498913663873385250005663879724527598976512189002170158149354934678638414064692166372334586620635052456529189648638026278846218893801036576385509937432684946911864183102864066602605586908176448598787835201641019811828701170923616379145412626213018961192021652840328733780195704195524639272380240951353778059003147680868818807600317068138065560522451644300439406007273080573084202281134032276837854845937297727669576497678146421617263005804970778459313055128134202860427514050103081668023756325715111699584950534426240573493036838728427630223855488421363259007623307991497454487999416179819670219509521726878733528643219294847844165290131502421536287898171703264220991570815711197628222478629460829324812755587625662832998903609851431682137405651854774058673689697902025142577619244475037303620154330625220178340634945761642340752649423451496306588846605565280330375607698795849786920587806238526209396341857392114226830650098111418599480430394664104225422914888988168377347782296591922928951425355692219512966916657941373805412062289212432435338797255644818226630387065673544201575855883768270566876680316848077786234324165197006732414766963549444367659624969907096260147577516505110601355817073415355681207161067051865031486449929120777445514518077740280118268917427589296306321420273226327299830286373594072093676622258460547212266963769931436118439977994374696645541418425924684499656813995997027344383752727897401707581573386995442739747117342125063003142675230576088641413521276824955338371002078719293432724429026588873405028668453531621891548595262739941618212172788562611304510149585720157162799969540521230607585666993949828117428235598586680264524522257001142264540154651983440042629728880137382708892106592826957892654911613257909491366208738998614095800750930871701507543585647643331855452366675073796501242036160051576880951337074691071486657825273171333358206235782350382577265542485491730821023348537179263177560962247628953170554090552951504243008600690633262493136349411249095592824926107562519100415023030154864747689526893918235219217465147483618198691521393589681400190630428091129215134505927675051404437843000412602160081816017741380887215964900798227613056779406492532805038479202883591886831729806025844217477428716783694304130503258428618675778564973446868866807271894432431302262280529848040669207340966887563782839785874941038361453424687212226168458256286866767340385464384316913616882092619619236313617274453198415214295601611275185798339267513554921104656337677480542936307874355699622954212797685208677012930640654899933855694808090525237158697205508663406857637912759173294375754106430383713338417101831751563923598332996406700496519394140372859637343257462363129845979842321671706817069714971845482312002957289848711860686993972188728003654056389957084550067645884414454173485682144987761081128869623648028392778255817514546714272128742673626084565120159136676456701778597451876486703601814417533837115558266879746443059078932819696410763310056022157850074524079029433684067568421156921296063095652273543117901081694246799723147129700154296291871304917556674582070814891021575053703453787835533444780298288617611841484698578567587567315417772733950012850176631692751140239145302358808050333249460305118197942862805026497559275649917840554406645637376000316406426548624314901766800110635785748087614176299058224772221720135818312646261802536904037036941997639870454221834682297666711601967457341794902952793261769759157114956769294062870533954186647428879315244290854660360500652192364203478311285737835228850417344387350338554540964277615320186861702573449171373805298446974247696410673142047604358967543506161795274421516211501218682731567613758013533234972582501802292012017634959040297232465489464071043245692513691090779398880420712068608091405204750567654978773285024621352449150681040297133896281953301916466669402949519808728417242093043407331252928342379255917124950215939124431079252891642313825799290357489380910583303695669604119678521100178603657029449824239211967642596822385510027406397322681763636796110808304611848863544611665468185187646697906197198678367049559090345847391444940617122974409658671319847712797258934625958735153396876293448995607887995343223138301547035868695734786464494127467195242433733044077684807360931795133259431945277838993497699017085790049215121205017313825713350552816129165406639500213749744310615633906582251860490066276316915910919681816635612213230141049271707883740938098448631574633909783871426482224330885131102702588129862798898657633769980667812039244470744028615484051267856637565098392039359395328432544792336233353574140064871781695602573862942111734403952686374208070067009517167308345155472181455462740206735366312456979502823061797823538144702287958635158866096282456820062189887612989947750615657372151188072454625292654769377827829305301188745192160459089245826376158402361444135399689212062579776904789039256950136777609535984981796453496867694455040433704187284859291909383874379679806249945145499465478748723662489809303563297294483049215685147495450851914086626437126418331778264783420139096377095320555603611477054293486471095174919930615737121552876700516436918168389168783156943055844253441655268472113401470344626335287538893124461457395701533293983737933738889304712327868721379355909251338465869169143340393814797415364696521472684767022358897141815386848063350453036533050936144177910813865961529796669672811647215793572988360874885192277596215708804109706423713570600936319590284380696023920927130400442901229469704383851382395734241743977349048795863087177584094033431127852268125922538998630962752890353720836536546692371142312829070704551100704196661660310647181384271226907653153288929141188208956784741973231472654706220416293055738668475888657903411894058833237083297732577057535074603242186144532696966602268454086810732512463174870958525546050557423854114328235055258111035585420307205762560222596771288088453224273627977714973182095761644597883615764016061195294933890594373973930667027304856427183555948935740487715257958739547552164591775570839930300739469983360792847016432773632652664836751403005108366462219059972573044045316593138694120059266537827291093433527366747689035503079814157453966839122106531617194938074072893703705417662182922913996474152940701174870680391890543471038439048637776796712408772665442350159214770278153819101544036862419814918186490840315810314252259608882054133619418216169025961710296488913160075518910157898722319066603717167175472972396732398535853053511663294976163718017093022683401265286341680362798120291671301103456311066937629131607257770083404030132816706141947496793602831716352861962381187854966695007507413005630277784333955046603558474346623393530269736182170134701928553751062968633011411128334327054795837361546706054165437277295510153521811496790533584362357547090249460734431523914358218247676565437529431467308858211139617449074040771443555229522010285149283585606900234049073030572867338208505091335382578320515175854370410256532945193479395226888972908155719590212024715578594624415733668275864458762415663323133288883354398235566075951472323273271768653490014651853735873320169470846120051415430333807659958284114011483384974928793383902638087555078940335087701446177027782108341171431151486460385718012477822459130689466213430321619178092000863619521329043107169372804864215224465944129955762700339871053269005395141901633844765002233048811031486090204370584095554644466999106843619916575270944402472353411547687395613381232021688518709395680598948342078858788701617276604532016426142406120712732630281281061922230239267168328398302431234169544077119040868063939478954339950905309560117476164675572187790179604984399944205484767089989688208322913491898408292232822286790018093349600024379833247986896167848531271122820427157548059298340157479819994521501612341593056468376412320513065957329776487313971713351534841784381330094978585348384447408280286615793463849824132643060089223400504582843538057621438716769451200698506804881120424268386784507160393901381247806988661948784600092434114608551407454397089224190580686364361076396274095741394011380796818055222143064501403391239567216041819730773559119141719356017619033457231891179602125946755625302026795624939831073526141745947891648429400661964622108376355377879745268636934687327898914238586388786455651669777582305400589036207702680909485468513725376950817128934996134544199656562959610043350211806972924190599136392924084249692803241077766829461349048591894396613988653036388245040610300742291650556948106576474141278058602799795734380041780663422549961767611566790474436503831040281490001648512136971403350517983740353694833139020730681403645659670946374540307737722105819935639037817352813336023352395862484339609273688106893423731187545213314583694382229082466079762753305805586789418250567122541755955377400645217245594916533101947229179904672317441604676313405237602655508885466055201580561701490142465811018510707050775164017559804552700563140124419520045150918889238936628777963159168418150461638860577645221516230143220639616116550716190967875776235458806850315019368398731323346931862965131791855009241882443086343344145646575501486227897963497684387695003844830502374917553288449054547822852751454007649014418123895161985684240335023267793445675713114514998537059549027686409602281444366778822230711745557026469973377590673383688610401087555335137466677960658658433340639773296377825041747380423214972349161980412742268075205103248173497754722842933177077173931976032138590583628470317224097504899285146775244445286245578939060549687102588150319600023287167540092800689214719829598983511737878278744171887196066888314863295147458199366998772948845423783437227353462685364200511498741525015510970938731764438221133979885165812957294391765309493791766594552773661050516140024824329049990655029321905759497916064316221063488659935821236144354188178406574632336813172044676574234759162792511214095641635085101542862022091953929751677940949134922064398365604867916556330404395448513608880029047853545233324489783795532552942487840740467317205247496806053105827359726320676921612528955398201911564107455862495705258865067811906244433004565501770249148430914254482745309535549080684026464389488506259067390881653583283981477653256407676058592584662610150235734452917154623962224171166475916819960598718233320342320024034460599045747271480688612166995118462726202067220252650414991430805220601308907213593142615520075137712882820013483707194875572136972085050270188372155707151862117503988264428783519415140299147821558983326585586393420588581887785551591411450796945978081096061465207272907667990166509395561765070467187013259158295377901741426444609413667979630134121293499651410361786729413749989388980207826980188191428710100688039355622016950022739692416702392149929475752263156746931088976850201218519488728419626566331946569432484971342914091820161503535845385776805557918892838940161153880471929650853414544639944981367754241493287681609266382381140182654000172935043028846327083396907125565306084015188192070127614494965234182801285135550859844064070118709243748374917185733815929634186203082120993077830513464933502560266000210046713388733989290913219715945659759751447068112398578631214342539703180800902229595637404696042830410862133971390728555356101007314224435853761659516372128859702811481691230495595801176226469341762076156255704493665223732624708793267344916597163451906674235089514428574785727184631762478374347449145339609749134794000707851598632571846318849098524100263029158821073016062450584697204979798516401187153575034775283890740304531137932347125747907020094140931214113701514438767639673035931045548310464720235887300932361474614331810978450043593743831180325860754822299746691844225843968960716013099980996554581809052630053846456861059867478977398329009005683754197995698185657879636014663500476362592841187789962527742765742225759657798060189494837221280029644311902735129820200777724217062401676627957408597643714966387913986754568287376216345070285468908010930568225263633503005455762511474671661559984017215451047809248738498517672556019548554196964712327303858976758776095988567104938952050654514121566026544813906077660457101423024229395024355232784687013938146556674485179016419173282293991368970029353068896454844988711346722855452779773852270742543988812627787880712385051492942192455878443366036953459985605175377735147809644639812815846124516585709960788574920447005052794744276713597196650551346072676674326163176431337801472951364629260665160919299829466224893542896718480525946624005142568079803041014052996659956504079832996824380606711479189203513085965445501115522152282484282410113517618901747886567284356075417143142718652965822394916382086127175562571218332869145825135723805295182823914496785305650257410239615667494981254295834908499707119927940559415880935077415542709539058840725005010094926090668839142602080278610446183826882900344476630342420134070092771691191993060648146260258816256922353886337352535269975825879882543207280588651974292170775482152019013406355817851025163218783366656480814340000294976980652562881119314866640087756293213136755957840689616212079488432320884055664409232332738155721014727336123390382199667168465928644910969196242868136125908285527079313178782209985161673920547989532906738557719931371208125441252009512275364181360038163293874492508599693556260286844488863660316920617263477982204291992117246321290768091980991300815894661834947303539162036251764715023397569576980117969871925157269676829583845377058964092851471302831892727395962790389687825246500987237710033904843061402534901371193451630270162473822470941915933745785564558347240978026456516400786307646802255515390211127701616738043661809349146903489605162111242689468292644863435078455379744151864984719773662671974180211400037821815129474127092319114894287241600366023789347829020995774557925704457742000040734782280603287453330690579326664640101580988468012477183403256430193053538773510028079285086141552198655003705783395900181889766882271866346108936662881281599243126615219271844175243745308953930665956287522415171948356392030660550949205972636523504945249053094471831353491284784258016576618146226373087755296236931077402837847277369183352924289519927442177811522463343282659142785991133548914940748643866105396802869133127248160820155414656003514912193685967049880946884746369635853988812033953507802878954348112525551542889729378372402810874838896533518458199234447563080489131797157544634124547762775401119641579601838476667037088413789393578224729017464727759771465987890125552654811608215734444868995736159575743034683444418094490405758086785006941552829539414798845317359197868484729900719281387370480847598021528579998997869949967021337850558551828138228104186731343437814579048342718132398829570469946879655626096075037072716908668575894979582680057011399608481270291445746695171363728940623781801706930061591357114748960187306388718916681396591245400540271486056619959394362748824516476875578205314681859811620460442052443759686088215617883155317668794878669245744922642147073122844295761069451744675591747606338862123864049815026105715080193768543825317203588212388574413994274637988272211617340882473342023089061380015843332058786926344643621578106875644799567379988817452080454357941449851923374317798650417790569375878415286587038292335754725093621180125157229059757848722103781510782698993418318653978766917058160747326703872337460417022892101747473979959521699583694177883851862117376033015652718526996504076386611472964537629051728875215274723557814110425260335492627562727766991618875712864609801386079554851281040534545728330703723879294715758581763863451501864805768991560120793266870365020914321623475011142451378710166236097896265742073461638379663593338698833311706150236162115298525256446212963237138759131862212797435916544882292830331950382467615170434120672339708320190109335156068973830138355923626867050666341166360756118510533470107840714643122918454633048578070474347528718187115781868915815861530919986328856398065171503912876930181510166849333211992211519729114907610069266376210157687475055405519993851544332274195906697988670955747533183717766244115942708474625477651976326229031091018915392493655018438905403683509618223588472858926023449698915584622537853890713668930467335066038719266721148566364017491278467955722955017070525634573647465173121941667705367616239277676237092294558088626365702206840096284755946667427043969247641874629768988147503204330862638840283914355748364970369979713244065994980137869703150026481528052646937660099228349096538768327524096163165923460798222547086211567189689447712805726767262947380307901319627664566702164039540195888632818324336044322260108421828290742775136265251316784339101134275999132517536002717549983298581654698867159171550408118199580122985318897593038423438701287665029651017634671617324808049647754864605077234858089941027203578939249424581497107820749118990066360399998313504461728126816655117542308773103368395235790351978499949447866598630260354935130369262368275232653758426063231114188346125343008361681997715718429773148884823744602342830661086415184507755526932135327998336621179833426378118076844423219545228227570096522317163474258305980209057003388675550713217615465280535183864704316101641682617055755019795552941509715444554230511059592910684165181904480559891861584299617290479688591254868266862862871578752738100320058579930833451555097795809033701103631487514996696919089180227542046633314739693958437202768890847470725557197951395740532145673209222493015925376461672318913124650636266782781662566219791523432235603077076633503303155739029553891572539678695228407889757745803067251458710726876071009566579979765243374441145645491906432809193667176682902830000070817286850783353678704579565374487916649052395283529562378960113158511817411536615824626589824650292694691257202777506120364686996158413259174278502390763115533621267775988121441007003979523900946158632722982225140516473377209992916752442084134111383770237295431004917981754303979477243927826296838263196277478640917255170859799605085611277425187515418105087169561596216897721633566635872823217240769257189918958084531180052779306258180518343166663755904810240552736739771389851721850185707926439395458697226901946692553838313765158360207603290207845746232070052079338390707619268089533293237805094613471210218666127535753920895904653708002547807205298266291359110713101736529550251861231844454121635858701482850943871659643237456675589089854163593664017643405399991593844819094146784986221858586653501925610521911134900467482472094904081984732242110535980126368510542001254597904375945099697679798675720130341646462216140567701375611027860073678856593275287455457265794755391991265117636069300273726963530632033879016092923092744248434671261981356337657012143549939715950895725571122882028796052733662219323146783645279515798537699753012609224053588156722702438623098381341935065420618567858146713344057774102168381309507361398596607064658720668583500093583885883109954650358967132359413365851474386160793657247551423076502217846351308564945511414495952741752662604736253960144385858719134323768042563690648584228042030455533103164761049811967566031757391244828971155780374780623381481138470845178366443462820131785171352925405520916003552710419006368794139155212804345327771334444257178582627073839610830406298203495264400660728376268194642875107481260337355217661784668231228673900782668059865542241795933045003590819015037855368680142985245618834891430594622367686607720604735946129504853545874677024003569570314866776823054689030490669071900329641179307738287355040976812261299095295716112724722847351959680969846287806967400660675130740505209236211667183811500802228102345695231466876799783787702157036915978293056844151085588859685971885110730818989663737432598146301835580548697293406888052835238105807315353462536368366728044980728501187539320082778379374971549606788985024870862165820484043594733236585626630136413528897074635627024520444488953252120204371522791040267990810455061922153041537481178979936059567598944502985375098644055246239634306488016047477441656850093115573292489969754455763477365364598577058954875524435961466250611683398228074619800168732307372968903661160031704861323546016462342729140876818498201765020125792140451503872200105012968461471336485194446634421709583822198361238078243449371627388854375481503139090966323284025158223569034544300959684755875381013353826968944254932957963367819722961355565900061845279734325532430526658307024423285743591327594919827165120705844863018176657096862871830482337135910722013167023158194420993865492027802453431352734359180778038476370903587771592296406785715262359356622202221527205142628307037666361402614720950078450957326354928505626075458034688446965061302944514996336516388355212905672407322452372862348801563012466791022864457651730422154545871976819831017766307075431679282103065739841181881060343413704365843246505145492171664460232961108611433743714583373118135843192261146142013884453509651933941810767439544756839926649498702485349663563379600979390902736100970197470037218598907404578268308049496199423004690788335038981436143940302694609650371036906722462781905853531979154731925465554832676831687712717358844804156584718899880008503157662922808297805346700321963879944388483819971999780659563054199544870295128220579859788895420493302404701077683844962333882244719865078426190582745280236527560802305313041757162735823722025327178663042352954093991902640248927896193180592570040609203882547005098499075203263887814959835841434486304950872395670764762664599729519718386968201839832329888771620196341544713469929730378540631936173743519620110480356684223666896326038924444785475850610208830733851213721986470036018233744146658736369438421719044382912813157428040903771040255362449986744107168239457289211072186877827721666669373821567289017072754499475362355465386836144233000002542461428036689334723950642423844580339437435414482890372418830790496595741375976564511358042803634749971060056169998201651111180698022474321144616383827961672391773018890751133577446124440883611782162488186941377714525351689658978551014094735544292889606585216087204215885245790145802848346493797815342574819990213544329309809557099541335528357603064819238799123186724871746591941337149071475107983145368825608320658355111695070141401114857426518351419756405763931981478658780196951742768933508434907942042923191761074429664039180838985295717514797078657456937089983107431370756662423769637622880356486958180754633342573759392459249189208064366120136934608800984501460560350122378876554207565026364490800800002495184964462177360246783934373320016819314753892134750738145545664435122722509001873228239019441437541419422128799057287605513022880640723601550350087237666538187514179817887126402052797946194679713333917230597379193188863620374742783572808543845926557444996294454250504408881884105708772660216465258043803594366599292504437439410499166100788817015903506700095439441880866550779577568850858853218971523494427542276555763980785679455847205487448087853233393249704471516453467156862609208873920626211193589116215726983266230989716658333766059563659722422649945762433659577668189082599445315608264788263493497628627336895226932451580644364049715835004508639520523738939205986470559611846147546033926493980103998137464724802011154287395731590406301644453769837569811105925074425644446386259174817020324808947807945559262162701236941208586378923188182405758064372625486227066392141299446154051809528351349338222126556630904748301995328921700098773720132502856745688866856408112732979624265167453331179995248960805822121805994038897559346475979733940473525901285760021615988025674663037737837965973750813554047279163901206933177208220819737413611822123240163424715634292868479259162776018962568383907988121069871526525024228227307197491495991832414411091415128431117394889927026341327839155540197262011535407582307279969051491846297565432572947383435249951066088902778906951263566434117287771561836850513388452811332144292786644671583844261775095622910590388541744040500520643033942214008683527595680008583896879271482030420941217260814045882386488357943181292077268977978663709373923508235711895191039802922516993828825615320464648446148476382672658651266210442029697022182039580325402915831287594142326117296128564251716033568667149304336032626642993205985224974703902507839493867270418742379271525565204240590696408703094893465883606838893474434857365684412206732736929894962988619068875314855079726532334659470189868426759147468450593630875916861522769327134964444562838024813252788518905826000715729797661584490537991519651311295390845930658992392550994567495976860595742522374289141145949125128497558554089379491431715729003349536165844939519090831537386316119245076900220769169197487264469133121649848610892332241640808892536703656320440207533623171610287511871701315733714636602338466979712189370456820165295565787968313906877271108334110840140398636005503688756168554506337305928060980536577175265000475518304760786149535319538798583467664544335801039984846458995064326243143372881840956943118202648779646704577331634389202815376455235278561401243842065884259369075439982379020096349833574749564638330131543615577896031764817720453713708478705432522500368608376868004609047117423501232952163277833118988429067681328635239819253460362640714848070801109169794066406118164055080620327392067257796703921546281588540829299667781092965669252163182899769931773511062853230779748701563069880121903844646269820081907852040340624701841855631101484524063633970734656463389299105803540145900645378699994510931229507120295670794119318685621149257652141732263366824726812450307939220627645847321326730557171028180683872063022230923262686076494351643835410072661376084850430357107134419919168109554920115563694261272178175323089522978713543484848970821999696353443222971357150093487250723067317548610583457565852141121386857742324669273478636547173849651066188260104644804188826039348581391138732879892316947171383334076205662315279721106223825196156286843556543895148942104244714938376232760411820380612488573128127021604668549572415162577904979811610674746051297650442700376008030698450081123098199920358650110952389575934772011660619887129205507525315602670475350887920747636808556599103172474766409116303278010792163558055973663881294128247915124654358094182498698884086350670469565315853607797223802245837690426227262240423264315701108612650573670375266196888000980121147301250704385009058308934660821732015778299125615366665293240145612640516649365725746240074589014868025087327565431714359882817876057714369456539089895595610848651826361769226331389305434581291406809396012120640219695106699659513645426280697773902283833849000256164798485228866395798111008055399577009926136676476707718022665144881423253346220561798591816476756423917656645626779122703596928602221922125346039084329791517433521013165501485576657644310037969875222149507781403514665771545733523149737806208973316454578487684133856686953619733255987078831636266299538118011294591837134462648236355743916965279397953867465857283538624395382395598717461392784613226033510867847234694994583726157206140371799275162475888744101761147304121866651994601600438605491342437893701482178560099014977223204598553649529598569635053112877041810947402613199564767872409607269847384244062375968068202297466504762327357301717589979060460759966275235633736612074869245077919812368626430994204016327348143954828908747568044908224216661243990103846054120841813242781003739286054918431550971802074402349066583981078727120721768419655704699057179308574779817345193804928885947507957845238139959377633062950003235709467802962721059073885915160557133268575432903299447401247668411654845154546737566409410096883167564090860105239346899101265464469328553886625915516573452830610520622364192206295500678337599542196599908268997005801242818263542785440597068057860440927975385482887905912832121894834330797386019364029286955071847946442232238653928076021527380225908560026996213173565349197808005160916864998679043599783897334250404010857670184335179975163909916213406404032779992901367213045202344496539477321531267541166116938738065453670246187417995616145390031031129946561195772564824028474359184880871205056886860496729602815106194818346110874434315258198773441204491268616565576123267896317532967627407744428795406760585377846776332875560615744475649412110177887229020852136409509740585557822719666265487217120880570919062771534549697093922389245287974865276093837629844500277638762822673223538722488107586723574427583873101539298134320341437568162684513750679750125577051493264485863789914610038033774565538792919685516835388586897549566572842091008304772017898094007338522895224258855992273034038676753435432741343814048914871507333540847084965715795342681691825108789931505749197144636134245395408625165602917994807983738207039888501786031781451749668441230271633642537179871603482737048458709409775187299588167411378772730489991539459939143105757529140472092218165742132107140728399083230283115040047733863636809371643136680205999427273954158471053906800269257466826183747865758316271367366051595163616272549003160001908184291501209352566119108229039781471085520520679042024262999744403427612355733260363426487090796699946750482099199954200250339987127412959870266709503595587222764139574748563605692917334045796761357386137385653266916747985288115033333952792391856234453156569538953868615703627342452429977780522536727470210173531673418415842093907442433794826286860343971150455361733031134574891921998587995228732929884425142152183695955143884852961709327044802695697552996587157336467706408532642384840897679514709066726328755908470725683015466583183490764583217068107507272367067116719951766839881918341619783761079295095879440914356383517760022565558342766946838253638457348702251679154675035917335402255826792689615857299780836323169988088201442324046888266238573330930703187892845351300899178983568242040480626451910014333404441700448670122155667394421176468490065959856111283472360908187176256930895067256435529846100314151138760434207668391477046607200920723142884882968328480225700879974524248810863811412903741094748198199513617018737386130374066581486026120741140149930279558917478537186838241078852246047050275089459599145547525733836753554421301435965940016822124727221413337229162399136523810339472867203147544700099405515900313631057060033866943252673297310413262263522367738541190652890980348639208089014632590149794174936826964547637659092750729252831832592176513941257254890099470372143570990869586458716606596778905020039398774191547893958018226087957251447344269980621710720950543652583840805954293727017167578893631878541054362516056610115749153282737596148622079522600566898645465552789010713728280931085849814231706029478632121009630363864357983918426736436237015618170711677356634973113001150739765899932033661398542284275282825178577617502395213841552458343317868224805851548176348335609876196640947765644526263078384253792199532790123952223836754121964139483371472701213000338335291421503680568462285733973559015471267308749658363049355524685970223008129513819467391381649150760966220949669974367242148194352132842116862549758043543502523126820053645020574860811557954042577350635581697251623301095654569208603901671962165325409310492352956090662173925736203331321943829893876678599431798851465263611928038173192578131426921532620358420276526175203402222014854359506191344013025792161091961507771278643126274695358707439891572050113611558892652198279890051799887030170699591051070783287810290910159684888233307859489657112162394404633619959941667277806719917628254314431348359843981670413246331829511033675110374808801821745857529769293950125484751432781911638073022323136862722851525185091001665835518193396686529688826659589400187155568048334158862877550954724863509560032894824507735669321094935579992267580395866064340900038976029918236236934416528725529828017946700135753351264641177438572425670593637912338848001086569856202493328447367083601458432684205420609002615358862794973425317613800193918079635095375948969454882341703377945152803653522351280694255009299234302593970497680229255534975022754193189219249949480652997448347803644783373053053065045819169226853827616557541439679561983100712693236550222271677391807003781764641096361747339422198786632596438263480924561822562443812339947043757806509335935656071129951697450878092499094057224785646318164472470301069154094333576262523428973675446451858282705776529250913609855107173507538169893779351469650492269104966956352984281901847448319225593976241578687625837689906326497341066921606987699493524866155353244212981528447804256211780566620656632041036747390996924616227568324901028000905102225259939202754654983188606103035212425990994373059788706242009243281436366812244125812477052191376252873310825003907972495373422974793390470369673677914358482864144774555803315509207416542734237945690534123284183710267577039961643523811423796434871072103371659595937369321851958861389215155940509730970824433031796940366719575810766637247047989737680100489945252166839130507709655701209191737282991147899893905940754480775023156353901053667308333771860290057347579790617660432679819316207817250494022727376814583936167611959581894426105064234420872602273824875724952880313834681509494531742444728069954208329937806147389421777737074585676449678085098767393574995271437102771351018862160788692289879818873340588558906627923729362689690660357888935748581352359473560446498759272593466371008645336427576509086579308190807718412600595354469367947993867081275763252284652036727836105772972624336234510883763322417746080325276810078331549771375802694759458967977639442872727186802224865439141310624023455966453540253066782226650316238612513146767329183189560031400583304665883600016743200192440732382197146235896152983074835876988501657944237599893195717322136419391935896477431353419817338087686642662869509302612256985542975903871507752049300300431611689419902142550726080803645924798428199598299779038461719424500201160106878948601746125780154775426059367716567198260498122183739771979378484380203321735365382864135747102667078191119396907094246069170258579686548754441575714089949648951843569574205468472619451369126184971786752694485036090482946841821368514743224270339127597806510898088956082051197859912143217501965010062114411621806106453244687211646989581591923780337947492597705076923050418127157642267334480349867500063770961261057116353257832908011788414101208979738975078999855478545617477615773452249373591359865439219115192662014841637286194209373178051435515054218229736309863197371844406163721937252150137763669824986034421680480851479380684172381058459465285338908728597837397862666128530326168723090072087460640798739053242035481357501348410640490718872937462917960174667039530057808410373357556369188082579012696284674537606670097664469487740820538668859003873277968171754570494611871111972716952399626364114538599050938963797964900269343244471743340865943070446043348363560780089875937395764107703837971923598187592306745515830236969462608742396926188925473590077004120226599786747852062758769833473142568534300033590075276980701830508772371159456073329007107507385856797972612048503367894021861474312142254480273512559678780784027659241373537663117250709945477149002425711171191669517605166105978041366060431356091668214725593012378631137604025532160221567292356790428890326452353780113502625441348327836774719409447888558347069480471483655948362938896870366591882482630352923953794007689526602881823749141273663576843759606487904260346626287200269139508728145306697526037595658839320957311445003130763479405070997411727258474807448503255812741897202992413206753364445864454633117143290373089528067569804064075040888996100361795163179810167653330074665261731139260731842390326013692547260354104866848702888668538432656713090505646848279959673525944500796953130999750179665260228695584754762842113888005250399857092710619180819748705245814011331355123115495009761755713011102252620687512862603541095630675591995311662981621929651473726985192442528201406436755792333041271499496048317843319673667083655208772504357088230162403322170470837937418552558244955198009082058866875379163793653270948426263902661949984431898699831533415598291439690417008322621602251808780309389442615710508968040029818892305962684995807491862335493640973714171638898936298147843574035211705353485603658717389963585306801891676649724426506473372860873537595132849071197277098843119561305974131410163742543831511052672288364409115143535643645234639671699231486916098438863776774647100437524783975563092564355761051789887744587696615846910694551691411868932889078664880594764770663407853695740320257092242511039544267116802484051204679101246150537008377183001034288238222907931929451868272591590916131444290436339362060898402778172271259896890996275908393575847307174349999049939444606076034745160090890653989099432348783236223739058096774334914662367918835929687912471292226592716722657134887210589541174219675775685139071601336729355017617192090562847807053564479698993789396872209667138336204942972097791700842214968431940821204182795635200263027591722207045911418479263707839309789452060051164340839449363099323711113697724021318224830960269299153951704312767460762466471968024811280877599201896773249873419392603658492881189131899638921477830906369474921764049347927038221215444239597982678690098828317265122062434164650284657131802980989496150861182580705522958773509901303645563115464022945750428041784399347110416960071498174020653624840295352560625742271589381066765852712064705411925808286806233790890018989471463915515037799452374043712456529078271057209566488081851007708079673693443714865662229122366060139645296552055833649834572588588625161819900797788089231698235605912152809369668776511702407242342104679690026126432009078182853260101365578548438490873453283719183601196109049529746484788047014496063088832065760200442247154276911441050706260829126520189236630939787839738548327024388664861280999597834630762996531627583668245676755717677898528242303454971357131881938548942115683498676823428520825177794459621697264218930352515649381448488034927982113797748312511136104993628702815644788833299203813452509258265502179905599765752513250392256387021367398936801123337256475868617924111974245810388935121248058356964683356951248080903190257472062196114836104534384619140957546693532534545126136528904420487501513423231893716155838145687236938133993159275748699005110694059952592905328777959342256612340027864539912760824552261335681931057771530455880660297025700719620137124441591685176476494446097504151165827539437738441064951105229366170030282689490225919652208535739462763247573136077405871834700175664407803095281308515136083332315873008538023786735594033081956577944733875034612393800302799669456879938824229177971324068397943730930389611925560726853147388160720793315678070563192867667001302740342609449095290003335913952981560912747407352054048391151643646239298547776889006452777652830753484426186291998617018470368044248135891573562286221396919682936199667190710616447125753848579066176912327261809185718661379233633105571756945046453049407291515025450356870986481046631205330250923562829247327759045356411480358920679698680207870926073188565016798460992910891700077308957262984132336577821817156992063757425328897248450649255748560876260351950934049035633282344908738658920809319330010898497242257966863418709135397350657855643347561146506210718402066243736166055835965508600894908920972519566078168286970658737220685806987199450112546329193855781390086146890911158661121377975787256974048872736307257153261365456771767637078657195338720938437400825244414487830015454085775129067839715827038631997513461447955467076657508791138532107550793922220542282193603412052033267874682237954607992873800699282050138417949261439337677035322676745373277761655967620335424290738145686103705591549727774262972654854097751276277960969944277710082973482779635970608293476738887478505845725641716239283871810147968328153022376605351555487365884483743590234139765025007612658071530687167330875701181345548769777904134704027540441622393111171347643314206016175415289054781195291912583009717964207943051753846091027275056658092859372058177474006835922783736538543576893574309496925486875480524417981516848960041398521415345794284766992018982368550358889513119597493615548472298185581481295712132855910802312781304424487305142367137089476526612313346565067503578454178975312115322982873761679627725775900363685411870419642740646568980384552168858977178829226940336148334595130141333601890033291753882867673611540799381984476490164932282310070337977128849265020213339890451763940100626873432925110278677314075986122168575416814544225417854171092431760562979551815216407223944062133116851246367925273078925541571300906592121856304499475503470039300971331412928616797007657334632307860863074401120943343168626606489043638912364303578867490369858213417721678399975185618983571205754394829629696484995899247298646755043535418207547991061107074006174328245226801637804601900588577832421737802286779172869104640918512797941515599489539605766684575852625402133680688496627010789703263505896746225660130195343973148688085702088642367157968623537847782475853998844842202774399692552512223196710692441599828920071829208094422271198053267222644831654681086681307024023597396048677451305608748382372652950457717397104576673759966772483655349879085533846655941896209981030771370459044247047099695682398201011872867716436574439480683023888682851024461119361879091132729637883807440288435559897211389803196545280551882931043777036631605197008780427116210504286847069658472262012361101151169674561713088355954125742264371013967212587849183647652438589455964112833926091295143314137589727079651187476756138638013688247086547511655676271199764316505109624124177770039092680486278538419009728069690963157555992632230351527067577660156752697875117640109257559640648083283274596080839715115526995823673945008434145488334911713150712815362937212509571841291204828649604996890704470163363859384450824588507328792951281198958736384727189406052644858190480314599191606553603241377816424696824042669274671390360923907065627525832674627261568554365939678543172978682939021032146871010170386157234663393976945143477762250285705483549742912753369945321346962280817532382452880108249971779155914804236488115269394832166240565461106487900535512685598512599247415193195440474511020586189009201511994720013081784658110490456120025315933952515059232262958435305293901930503283121578994635238826078279744558990393014437087052893494362681096519702088456903087752610516444277421539430450419517861403056703431112135033069249317173830290957321005006467590034963970260175288342618293519320918809287026641605740768718000809738421768827847352681886567489429428002620676237941621735578542468105443355308946401145560395807195990865569621371874202074184357824267519443723427927811714284269632413710140719938438398481049824143337695141916703966954131648240042281586315126399766460255116535115766947229437824401195921148082610670945210965155231284776606734775511535558715429161402707946849816053610110117133045163027852107230276451280492194758381924067739032695136004897337633601440823333554566680117036589991613837458165839621768133022803326721814457003770862061614225905503248057898863904362946490261851641951797615737929877770581928770916320640754964912457543801351914750344655110255332681552211956846831158366472370559178237030263576481505100720076480321471120954901512755788812893937401346287975725793364326288907694303099479457487563493588201632388337242102565848438797968318714598283245979586195699065209993737207397524903759207939503133021692502074043388224619948171915532651097019528149992833163961610826100521304498981305100721571168564420395119357977730593748492898292763563690146400425336456882445628177456978147641961036113320250035694749944490352475144626046178462009131904419233548719945959389502609415536687379680124310983153496580617833668856384489362902224676720044895605092449721166556272771840882117627748991766393185560492745709537576510291946959235101057845449577579604664360677117346797493195895921238002736774491420338282935406465543307036778396765089375064337345357525251703159898548383514446875518642058991175965872996126374871307500248253528250525230117392339612611178840066505328618943268494420217408244955466197076146482964745677092314032659199154623558745811793920772094434494716814657277720112203375016376889239719479423132547129169642000799372328163845853228247106638147131941228586270575475593016771058883717566340477956659637117374152712594288623809341235778913315020341476736221878007090575766310193638560233306160228627668515184649117445863052194604912114581910065317349533129589873935419278978069632279625141054766039230608316392750487443325836744851455138090714841445298710455706346224399834536571550740127023280258111750808602535258399435185077253150587782745196171075644190892896593272244908317302138633438032116033954463560719531735437815062458887851487770910268251289645901494356425085169473998920347056826928838023341908883484526961198722038414817677876570458518511780687354598822145739081799582196006427993257108509014176127939694520229198872412379284982958299058103328977072770623992483080703796683888521375345061824921519563322004309527835777365254361138986976509664638317492788658484020782163597609768181610354019830909497097224074001040853533054236030878229195039705496747233349773870896306865465556473847951960386591064487075306359608920141547577200051425862482502604615727596945207122342557887558655547283875183735594428854277066346469814925760392320449949097665856039205410859505041397592631730167924858171720290292218305405139372108649722335551247054359621653780927854082459731606355549523015178220538335084079134944001253496572903008171002158047274998340360116717422242692559528029632762711729360631005766700016830742396106022272775054232869585170277431577164607449504370567581744744698272336416309992325163803561768636412845104834935653086519713667716558925451716246160233984404123669367965201531810186686506291998216511586571054302030324726869396646131916131910928811536082868326957634369291643501561252142166942542037353842724269982380574001882319913029267924027345516872566568345245534431116333258904539671539840250973445823866917894516924893939422506967199164254890008900227774185847585866911648092842663189105886338759756260329551305819086884340097490611534933151661472977826804582042911989296652230220675960297927428375303243903525707035313513571585721703655259772264178698530682968693750640789226986683838316134047472660244969485632154229463616920382345537797049868819214464260721265745042671158999407030963186262643981652955797236968269447477880258333530797315421890466438464369541269634236767082476873326064945114316450640275205270627493558771353689587293840716830767032903035668426980823374936760528873521695720498540437858373012651238443138263826955299484802985579849550274147562951278580615272752073446608265192880863879147873019384666367693251374663943890100817235925743878223200870877572925957463664219228443145349890615856581757271401412079590172295843970297232780937938198687501416263402236799304784633390288196560099095301354395171306526819862955489446587601718281229024165671775473687246888324427016369409810626982253469992493621677321190628788158992953823451786036746278705749426083363708872196561596874668076341092819567639950214950673535626395337223065864325917637000041565600930351426954205154774976070760376096791643274736443273989323398699094859710379835680847211761420110239234088583917258769704934847863227259166398990678253175350475083447137465073623900063536749075594513612169093493286936722898742866354348479667666095861035161582265760021837810341721313678716222182079188104289183105208963461851002943444455241594646712483778468223259175935840453974532335339479631671377912672281407149237522763974614092523680387194912620646973590641620190819012519888578787294468906801706168116732712014482002393080046001095876865248327262054662735205157008786432997715196489998079992730496736516582063391287061583626579745460214377008863045071090794721822591857877370749661019879407429576658342905992927816321479508672353541169675245530324938524425678752800121343967820819524118894567111744513216387204844887953740926913278184510976873797680371364653579381031397672226106233579440206816233960623226894298717407543917651456707447514155139486005228161798863599635106141549554246927566241171353592483267501659366210200358891061526716955364785899152678683291829364132616100923134931599336391018719490309250322413080420871944114338641586036226642233347959037328376384127752139237774652589122134891960099668739981335460877904391088846591948229779788391111872637661722181965704492794852200782061620776980187145642643296742323588328002609903669261704946113448362961836604663475760965078628485520295144371697559569454019020013588198345990879455464247538874485883030124063788442752768286753717743791318630060119011847200047747885275853102473749930277122946188388761686581348677241448801726883497589133124711128621848059696815458570065011310738046610137611357266582283850096487551580728847727075564594352872010072654677309450481973664568836830688600575185350538652715156411614459108606818195726048400710217308976651897325019675944070940507104393266268556377162035492941226206822015543830278447582502322220730725242609981190477552368243294078085146142887857972565211217862304473107484540653088986728411255950304353383485717425160021951805568918668585629960065708922652112057746263553925494596772127839757707590450292769394195688955727565559623699664002074829180221369342616361110035682973284750352926421552385982976650471339290206600079274932097307731956158134718904333052954194032743984165239511158581360462166587195348547902893159797422951398043029424449586308443613120992819184459307083829183556464769005614541361461404383244482211912526413825420411934673865430746406103575098957602323630281990100106384099728708809617885356614180455619784900477335398562251416035262559440031432685234809366394577316715266466585296774058593347696768178309796307142239981183170146857458082465359428352697591404590095246462419473525403490093547588024675757146362872951845917731973821132646211881566697831354800460717791719637257235748579927765272473986280588468093748772761627109893572906859707308853880325670910872925597817816897095426280838574125385971441574886073845473932965032352859606572470304050800884614644227453493652341680362232060834457956819049146266383928184527175478884964720507797958384077918387191332714117577080192816117283350046738074021159378000488083808828115397656613239276050019740357661983643335732413407834014876298070068860385982275432470746730878894817715971212322008766846510700285127985402649637703340922506888367112727778260159012036000641168564601325615541295501911535569684563302506545475617197551009309289053089750086157216223567594529408713079734995893162266500075200335326151489580875012540825785751217081068789670809457569050947965959241741248295493779695336555604662845882442689138912429799626113734485572433127201233596778356578536884895507902874336923563767829971435527004592648825678948647032229580076566167646567600292630291594318905551508717267832869680520573342211071742256770344767893626487375779612303665927074524372058329339059929617035215957140343479378453348375306238343857428098383537328654912332780638460955422673014955772759359897053678104978302940109449764206041584159412500837748684711117584284467732926939868565025951654907247642351265316617586385610045363091694908547703132301294770187820899555555460254869131213735981615094201744443119350442028606531960279932473693743191578225500985228675416845114455023827528381494574247835741779964308605984972896566510061846876815699098316207219782093166089309243562505050634090299757247251813018517170422474454285688602279291690598464290590425285112313014779242896988891975480029734610071393529675995179339311607925833052860726328843466025916994635949736268485141796805496420589149683574885464482879931479258851324574371346286979849106534952915836050957361852030117888838346573067847287158918906708701234643125690875364392766439874904567964504047782712145361413090192321858535081294608177909939529673532374283309551088551365030634523997146545882665700104472386174613966599626510016952384766240962221242366977322263136237448138293877984612231636622348016422677800015494641996529415597268566893198014887855990261053484982257332100017272361341542141503028960541920180255366281867786393808203602276238814587237994446243171355427327959094772721457871726325964066470069471907828730790548778057826942140794512252514773529823356773166328383057870586191313641783366932305083913449355844943898207346903788577994300497801332983709591593327507662834318748263759564534427183688795674290167094369098641387370842664625795265574551887476448246709537554918162439429619457547793530465339583534976137602911478956294194608393422430550105385895078908933429142086278369517173352558343782645695523082431340996399265750117885806981246225219048955615196632853285053505773304042568219523439157223677289910704339887827457692533059039683747287270306896064339454879998751916838122883176451962492663830472667222928806873912072178788726397202290090429970732160926426031424679488671453740872596671336987743122198093461108678843146215506342126321733875543246421045724141754172388062053813673270975795028492474105926062779160009800892677662121691804767294896567816675625784260992895731379324500957053718696436879317775682678699320175081298570343736977811798667094732159668936229844211808638762609753476851272354132397814520678159867521641309161237334085012351949078512368101369841062926189942624318861196332387151310710937082839747280343866689309684550693827433188090785992116858535774527011768529206882851753929317874435174337211009740683460149836698140221500387327226164763370263049503249264587040525438344994425493201406994627627959993833220825628800692471074667802696747633269650112297837293250663420853612279211173701269310802800658563758401683082012030098306254627634662631117340338555504362203625944960086986705389447684890212200263983077336099864722536432894103404604488045194291474863576940461448887044813272516244353335248914864326607140141446880504045913964945568518003339715404000927035923761782143627116499927859367000846259974025333459997692494822155533899193482335130889069780486041509138172300113219568543758847194864835188739590925137230958983854720112753455744667391754020860691307864487396112259677865212473500222638868228504485525256163412507121754496216577409845557027742569852839768041057247603011721525843801248191806878421962077045541539489332479134005263093000341492918470293367075105402788048210038637190763771917782423488449078237949736665257895090098251177427570161152551500016235751218381388828439166585571521036217326961638891317252074173452727877987384670742635970586386370638908942210219928120622986261870855574799404016751837019923215544804790750657417677683612803960020780627537610447537968290125359429076497232370702233425799815862374808206726175659160551226242658885014922577924317325119053403090840971685614684404493873068415883001428835916655258525188308330230888437558976422348514869244787895114978938650532072295509098454166505412132674770871650999130535220824455809701464602822078967850999300681833507113567220980617055081473939302297254167839148885738209321460373651891705501646099826570169842762025142843123606018449083928212731938041908684339629531876125562548443992041458320281070879615265129516497524306861097877321199271060634514096416903759293388694365693786082597296992415430395805894857089023590571993369279365898574994660330641386007010589788103667566108256998532718372252666646258845383486811345563597946659370370833212579726163639321527441928515499296548710206992453060025057959011354279468303872496798127004071753780508620910039537658138296731406307422533029970895574921248142013038125753885538511728604976123931352302727947966720696357859851446876889756693972220545615396194681465054484305209968172708566250594516577937893173798925533527716508919917472957955189370653671351057488612061983194691848258351266233770334508768027063396122556753283334517473966894250043153851768946314922121173680656242846154002354910430436205893553164932246279661734192009720903390991556052386336627232758000168174452905726543059369960448813572355628613492674382321771796921152541500648762785652429036043631137915786275249842856271596136275345898009767649108651871209399623697490361271440364664278587153200980498474859952499933725219843273351685300619846939459778477675324556929472928135892556691903633606559461148540829280849091258282350824696142937573979197082971926882053488053524136772713667862231338536081505306792780983965108263040744870643343142824768210241871590130195667623317851863417850645884552874581765201077742295989945837627079423757815832372133086398201850067143616186308804409698087691266510914296248855201034035832618806740546290190538968215867025914963669253651022994520724126652270041333142820848674531946326386189975844253540940006438480815899644847003945103806040117442461108273644752310391454433302612076388161568217083041475115324424636624445199211970452896239499288183671657968859515376039721774622113139857547962533744751195573392037445172112527664690906071644219640793228282349398611744006757175714652502473382697686703510168753837666313826091755251822918081183460821055329210741828108053193406340394886842356910529420314013767691589333691737561724778726535999861958585689669458977507542810464542070221991944714862175596277565476270771259079755448865221631852675347529842902513344804838657892133441018472598953130911319092592979047332455103199860941556004448448529260075677949269594017248954103808537790198942983102476469520204594451836504746049831743172693048907212482777522343866250500988660344505958033806085138587751266978289840610458498451543609877654585112435479704052013611469193165847351321670259408065498748141628776250542280753181748003118107406463177622684851086857841165886194895240275143100799006150355036675549097062308171960869275990314039940599611592892803497560031413087401549952740941513879924660245846044077302202166385459797633777658111234454588179240304847187009716826172599399513715158406558716722137016611503986021535796431805736753085753776914887814773327475749591219448539469624782253653484384206558560749366241412919944230353102462423349484809592105897517924237872579641121890477936560296913211954725506729631749721339237737701953943875676046262897194936264644355857850509585985568862977932988353575221793494562498454768242717251425588868852375091552440220991776174720478628892901485672689831796219861898753055619029344735935738950378220923301528854699245146728393063291545136087216604680769688208725074901444112786727182766176800229982025925924531656116108032093791477236521750890633374578489427050147499672120975115849595538392210079175447388464955233474996853929049927860991347069832706618069871541067366981434270555040978770608873778508518116905045924129795542397440823952176430511688649801731088610139799665513688402181531506924465814735936865213082843836872037551634369108051235445705314904747853419663860445015066843040216182465784353649352259039344627249011153075824958475557426658241486763877567401287573800477604598781622272665664195963164349243671799625931957514279673656215081671733762131884872365426994427442260164868367199804672130309552993347725757438497786662585010474360212927389707121178646655631464638935138860892569455645448306374306559041462741338850249871507718434211755072088190816614980357967469060185576661562926609628017094026536458917762903192097078203535239823719625621046735013576574272383934462740008840992219860748222065773041609103259151780786951680541990210608877359889327538611025072088145013756735154578065745630315505707685898005951557901336543118355433517458801619160807811283031694199859207646550315088716377084411463440884597401848713820193685228645850561399797564704197292755161280796263751967053148301606911007714663875144807271217211172583300748233484716413286270339318956650120426834569045799293407057411998532952728183262128594503422601933528182883798838479032980405687502571932244797554343246114518152542720346646706547503509850119146822198204875046204685013203958183192226695623437573333851139272384504852692391875709039707336757410269531124404767647983566605987879363367588344210343035884177883408220649834920288235608571723996650947155589364401596225673936854636000934510354941811505119061381610615515739580959566344192763425674473801733405530232821742060703079637341229632196592215249900880640898205848689928201887643317510113291746631784022130507240516470551045394986006532367344892717602194273429246430961249617059751853097705873246124833464091064810573648081755304677964349770005688284633392699383486149500880201214747769496458417452876507618982148015866531479666686962160259967169171190406330241513150903539264047857517725891067394389315587975944909742666684947091069961089380843751883211795592184677264436742261898447603248368819696715965816450555457015042928813859965422608777756685124120277523880947950150179720448902129223860018963736275708769057027897929777063998070671276239637540659049090591950487493156808148677310427024264135996213198343809972914599117355849145328565646351979602673974035815732822554709345126771230324087555556880334815075136021641589244068069534605535867664584336945367984307799696851867239464709063558432025368282958194971211906235134606190221086203374265983124511593545748809527268931783555903270743124883187488257599786689784926677067410628752364330955008968031751457036204203317325178478728943594790500976541222418267514758996378870223616446960085998616288432309515547208045869239487294700305939381506955026340436527670929955609163745746834750917895998114469979358065691805891620473963964283401908576499330103615728985729787877615191338133418319633725338352347912996027124589489898999231598833320865212878883288301985262773808545695197761724613109605998922020014871017765816678358524899650962683449456898064379014222664270865188355955267121774697175597355165554403238325438025338294295585489475214008050201492943256521854734575510789658618280610695265875071927147069544172365041189565706364284688065893393565914583759426812367467182996946545452842952715995328452357648597240686783612344552323502903172053062998873406017957886139935943443936089347923123136989860781379599612263427382482181837398688641381840180411446716550926827633909664150089031885591781426644444303848677366314403544418975252455613581821412407609226743209053230278292857374227923632631744859911761860581482871386490325997197630187051388615520896092816483238479329330648452385392225240955507745985189067142058907645981781353921316992018499553831624259346562385526143223444353698417067661236483492095333787626670610049640925341072250603520148939233984564611713449002395810665525652261931871663852519301084906649467070684268275304036275730255907631211776860296917875023080777916709979132258029192352591985266987411841426619481667394764771316973030280041962976734066719161981638947948199322585933843980293019757011707896291881927229544998223614724181577368216250303561381117122020018306938825912536696767423407933904410973424239267538850263588368441393351089522181289236153900840988212963842857844222088825848185750738441583360438507978553329231931713791590929584333281943354214646515828538652046339737115783740139074589208205215478211476206103293176882653318512099372514584699262032104594592210182026476042032574018724136525187452903422922614835356084839154616492215264055107499195008206263052685842189320177364061724395781082195612388303993441552775173628242603853683823760173043931822922407803960637820352998761082557341454639503172822985424694776389006409423478110198075680351168598393624931150216633113568013533031325733518703082918419734367424020308385937011421114412710626809424021741754069502276799158517936311855915012292045364151634409592038459821339438738234248790335833434582061225672383194250705288901853736095010276461158349677895846386192851417092085390411739322723761469749656026685216112722806290478734164933488272352048970468705105299004752100058617939066874670868931935618624492816350046850363470554915677592967479528124986321655886177965563107953220687425774600942875308246210410566008083449834840548243094481486972172789985949528330777944278165740815069005522450034681274947583294174984713879558902679870930127819938614407389565297976853528665530607986973929702266889500613699259090706140087912265782781266167920178779017315614626749685658666208876717754469626435400003664043868652499665887410339544902703039752234200027543311245259794149968100564237616322438707866515646826321367438150019569755113074427713024040479799978265386918743981490993737342400755334451525198434695300769334644558756750681584784624206209182960666634474237264921513214804508318378735985275417355616737042511350975119722019258783194112067111737089843583511651120577464800848305911588432201956080097256145167369908824522533141865031780473166816743344814678914639661237140293393261731605457122138395385637600831580621430084143988540535035646261658212976573598021025360770630943930908140684462963603631311359475102108878593758150978206480818901573035081069007177287264632406829083329975598525710192194232369021701650903391923876721014182890271483628306617647472570449422630392720616807311019373011178165875739469024442292153939870824955025940993058042097263108052320260513902848510709940175910947863643348311727746393431086604597577486371134523896985089895304228514367684204200078983784383079319787389001173327405471044243831791207328352304230804171871568540099106615008603332624993873030170660789379378170546572685868068941375889457209903207798392937436155110825444840896864484031944053074937385640578113584092050945940959121772672249060526787458668659941751960875384529949085207125834005614451006377118271996015264299416173161940627517804894401103372366471246897336807103197618205147346379385631465094058051624564649399809537187654679456437190560338786070512221987925933243552722295665171808824260185743190443449391175079550864657111536037508306055335018753772084276463947369716596580625263904346789948290216155270005485175899307222543268030953575158630943762674529625468836223432890768417520785940235920786633002045939039277315628674499836779929476102666525870984335750009685990264669065804959948600105800651402550392045487658112651571769518747096522374663074923924591196899108612570028308802427099927443953234323801305499331157148836921397888395128416731312976033117546643062730428971818577524829332148785559596026205242877843673948900866271039750406422995134370202665848441533742414247904873032489054888299091240460285825137690245521261420493328795480209666504635874360454543451787577646797651436516787164512707699007565685242225816005888050937227652549707078150127129987647096176758384092902147237300643820296734129560354794724882958809559387328245077225087761167479275001118584117213396217529847646723957733512985761181712947799944958067861252689733055706651899913924480213916243300860540673159461594536153707769581516965757595323823607792795997844956213276616407706753370049793615687237402011600396233846501835644121997960814737470106261457855533625854382509705870148802554928623592919646135332528701721288498527129432308819104847701409154630797968582617122534761435269340725226091112705733318320028854263798683474726481596807462932633071957749010789040823130464903972192083572655211318402301599917439933333965683818511805763114375207004636519939624717367020150474356381302424433707079136908247596945780627151688864951327393214208358805416327371227513708570389293285807353794129024771063897625380577381047403686205245871062384564786434899767704765664508168214629984347361506228156215458021230790841867423879380989420052781698578972085350977126485328868405791304432207059718920315020881857218573094298060268466847519072797606725304979309875178516897826391952181984082120377779247072921597880521122542131394455034658735695549316354103069135269327654325942674078574027551049571488660120757373941698392403608679575948001469638645922221306227231174491984599610851437066932032400152575695241919146747339323380416312068282775473950342900131807758167493683759363377868565641016058745955251041425784023086824788655542004185219485055559229045862959164858336064943252191887176150213917209483449091000424617564160927560874035637698272983179923255674067022443725723130928590373462611446812623181327171150404762173174041768441007847142605374098440997436278739134896845804231528499850736170290998090691386847308758592931996089638817634825271547223358593267060453114006934190417883758124999997912238912765481853987814613864628775566404324019933352850170772878931202861723220567791728837353167655563251947306323249137388141911011439214991349397532738429946379778513845546908568129438536559572689458794674707198427461854049905268484080978133874771310726699842273233081679854794996209115571872626787339247704515316356842752293721401589552298605064996373590829919226097790220449372314936927286352312478316391896454174646569267208684067252290552884981176892948764576058836135379501002692638453770089528970974046189704218147932809386128662890064457345195674489056236117220601365418308137218564869436897064947651383113511082798286524808769536960483550199259396482915732780501965795762246662306881668768482308864574935876309815078572752766529241404138520071627158770092106179262108394810993446275362188751838686363501228342901617408715901198534878399558042656663782840208678206251157164011930679763817499636082871492016156650156340408401308671303319971003134253181960868699054882073177788349088200484393917045923988489884624206399906631962035439384247236077084248494752110575736480938928939570594070314703797605379408641173998942364737974036493719924598353750722853904674925768707084924766936280846251525931994150758844396414088605604077518513553051720132923996128817367815825209160900929532250957392748185773691943656518403970596595571224996136996284336984358903721395092854793134027747320124168309625186693764662430502637158867499283205392389284105595089395839903320053327942048990967846028801048636948352844398954904449635970887585196956419976915690093759352029720027507862732628714984786627569296807798549607172785033301834125844709486465852481751202499138202977418813561194134814950930527125893452088046160534618175791254405475378046829839492935647276053372759855418073202801996725102031588988580909052238838514758854448736632756029260411073160368140256976633058253720217422350690631734973525112477390717769590451650290695480425616682274038685686562126612504535533780667583509062398948464608683625561019348765061412547397642132836782931027999290826185824006803930486982541993574153132978992168378983711875153558701356571469969048545250722558872402452272483498373963989921729313834912358843861176587824842569255266806819695359830815616548438439595593051514135596176984325965049378710463811685234505734206739668296656853406087532755003045481422906964708358892885176614951082405766259697005064987706865559218477821707734483357460501745552022848314043096137004294139898657769789037584620161514716364046580206287144140089116366367733026586814328237996696350505154257020393366656098513352933478020678823466248571128958391760992643381080474349210695225123896961496401550199868412148013407330662692648051305057262451273407521346696109187932817254575797411109993921403670937930500465982714564117643405609405502659188711518066755130778034528212031480257746873292486386205323275324660124726315565326507251572144262849553503074877276466223477418131783357412017810405305707798557591304151073197518840221765637980112587949424697055373642900863437991323175231273569186428434204569224382969171940276236037430079848268306101345122135935999059164210074842470631010161970986694695127005269763123890964881435413639400691100783453161784477856767378363339299245404449709842226534012848092843365794513687027534691075893516041094288052080278397333218244352826932040944008419010034362066143051953489160685361214258992413108480337121877439082385175529931725826069231292542031567050007752372244963928036517215431683345530929736283682752174931163257436512913356940177515997055594804158379122582793361789154869026986339113401237538208528773493320244725250046356268834078593469799711757128351722151861252994289098060982396153931748832142426591505877055468856457021480656171473378843340780598118626165633225367085256031754157199821405136860076418823770182828411445115336530405770739970445368101561723343132881771504240972123216149740162113723019446377456757869685036321499575012250869441696919754546414745295811602705926046910252775374151022885488886055036080976357640629866179612406647651444763536637839388616475489660614902540166347346165004645341567899817037403720198247569191196736829952104972296338601077053548577182006984782032265456292496945245430553527813733947064711281658492716283962295197697773181047021752019974821993173739126016592325210637876409678595799359919334686660210466392961121833960230471406351600504321817058335573717792523028581507144342767441667809500436515606312428753378508561150290548531930692739995067566843829357700801208383483930605627843713826325029867786841772076166204602030451216771791886153524345705688067098637465759987961923404271977292775103185444558555061625534992546143696082396835102679638838360172677211288870187597879876371661135009775052087103533878808359290127538394155223449749821534779693863511447202795670329415118005514311899485718222181193850832310924124982456283648579621114569542450472918184321097698566828917688796234264750936431141717794579422278292857302495736839061633090510148920709525571126723052507917048358490904182702958408261890031194003477740789601688143650801533179979345310289784298418430329462228639219358840488584334286985359031533242472614935037581475709870982831977249571759717186961468207968602268659326297123549972957349895053147796740859092573914019234372858147665060358046898380263957179231036635008945692622549983332922716115447237070747960280043640767773886143234286092851080636421215669429898586181396520854577105288588686350839236649471287865872902979614562596887174557940041621813400320452490181906902393074044652796453705877143412331222496199674845502836687689881868844091275867763274962137688697450653710018219577211162427347966448096609571278121998896796048618059878998848853722582895486695400624376592310542491831451234757363756000200950118251055848488781853385029152390802036538342621269664021362843790743734101820426765617278246718558348587721463248530939655500536049394928704802376953092155694174778906762528037699259083409561608019311743716219511891608313317369004140413449472360782840986625068130066076944370977407081658262387636531385686955625305389667684587478796432237758437866422445421414326748144770257638010395662160422432915516371463880797134683800510034652360227137900834404485789341434261341973145589701653568159204639932575080194512050328682327244242175296333823625997204878928079336459210881753703903401962620601998568426521862420221181566511797878480190946711651056769867272844525851423911298680645754692719202806405216772993442990010299115685855089302153197425653682474352818581010521114406960805629037856499742744288605595862579428107636382835171914031174828954375300028943654883611298763355545748056115101393319966893717472816488755446488161111862115419935121638097619089030891586562215960608613441484415155991955529520976875296984854064960541927737485193017825927691124911244460594694134583198497502779211759385188415208037408671921927226909340607115359356861507228616713822173483521906655489106611046778787941666634583396829413385896719466921912947768580359133832261132260943816892933405123484963231290777827499203021702282776807093108859045556691052658370081700518942495882551601348037409475423124486262087993620850546057877853184411842424228988230268635554471402097799678797414234809885760141513029661522128498117905524197248611768467077992993424404322493364875837613181541599869917798699461876190588198227257275879783204533689686658963012951422137916116097308988458280386224744518513714056797338046751385787791319290305461200518926890152947829022426406140632848422594612902287313885507073247460294379817659688576390306459300267322404845352470050597877998592946857201578824481954121397634773055450631644896223512293712734104956369098014653972699672400592521952863318380607532515884037372339297134513700348754154884350171446154037945526707022156940623258342976922858580836917348447140179654416332641167708306446465083181218041882145578964884781516687453899835540757641250902769217426226032577442741642406725441850172069266162958025042039651843914583343239711101587076922804259518899725141179216664128871769051928368547279550365530434844222702959496334481814450554539744330080644366536001300588230818782856984946411377034213513392773937500670612795763501240736002439363677601654805015724804442603311179558768600623469608067206271855499390285887740146229623056956801669070948542717492748307771288855277782190220580572809251419015913086839925476837070493218223494014810109479930694752269894191564361502370291974364946628873313307332498608919770595551959196979724694921471567370245982419815319195922632919554926406538597651805382883627428299675878615516886607273156226845589701750759042339122792691726311980967212097144084962804062406903722275295243418662129334432056955213875765293410906558226015812928985319886280073647963758345890161166899234450704918006005262702756651973937954133332179346869659009761045787659323169155123206433579299293710603104828945086894560948544232904328906423730740310725563695274024454471072951991626073226865149745271944037066356225358852377135785730737398815514889897907469306889033576659301506622378618617709074949795843215804897998248758145491117602840556094520576298802848116681499888369274905005060123945495219945400847164872705047945736129491570014007457286139712349471872954163553158851738001168765710325530641125789693864282869596549602979938621911280585563538406292794063166686789570950735257255689769383434254579578260774590844781014582328379199182974055899947888775966823869569276775700067389407954213968131821838532821886425403780398856117010874665742525782872427035856303631728476589843919075816827174176639036081453556534219994415700737043780468844720157409283932558597334084073910986936309848333089599169487898078962334780136859258521941390307153767268688545708996362523008851860908307411493004622684313646925831189194856149934050462170877858430766546547385908100569115315295724333231636718469446079804990976382955109764571953128968191300750018968618745465432596919477083139118819559148033263399911096616830622723189626611319694784370255684517335727143014238467923610532428299274481102839364317739206178413049965284765901969860097019850004457604285762702683811109063246458238498787329633929329654711748069620514774452558123540400808492505270696906417952370752688435634042338280685521229588837541417859174331144370697876480416288878556329379737600678730213890331110011199031111424374831126004240800221512766696838961503680247408654518579122364586171115057608309736138226953725710201064435043279687466524896013993626251119915965223779593329950042266555021271722111862222985867436294460817669467834506654404672285395858370301131646128396964072134443645680709092598124368360968979682647622729032822882735930832008042627515629018156559479657152902278948033582159844716143782479015586400992305521742611934757700128074755088562199658041000264031940771172997057356954533860757022234161153044569322133018508449302058570444612773954929491973151258909542579486109441002490571029385123984783109504260134893639798675041190429126911219937802608891376287157208009940918358828244604226647676093613132251529348008321854060669672899031895979353801660131882844486996363164906643797710913387879573218807888268285774823063632290694416456049877729466687982129832918404629329391740772246163994257271139440320621302838655466229179099620851584055505128522367670312602992340541440720201138170267691775511283571089921627346794982744179710693371635025548279325911830151821603522094416968126642257543334677380164451666783948066791535794669156712257577277259126758500668965233199342822307912256707020547138822654679998405976555230656772622574337879780151595152371172227385538216319278199094497588581273837012192694395423283731391700319939069325738854367872343880419997373104385252244658475889069470492250553128725870979012971546639434107418689612147295155131958819641144548076161768422610462785405207366264065001880077408909674617296467299205124878321546813402022827903290468632836400565316761785359012783833433000218120565235967403906963710456499255230472007328552772425053306766447451843632518062990281784542699221788049746706063588537362655273978826261917645360478404416701124687409222142164732705677581116736574853445119584715518246963100483990620646041806877897476764908161074423750900024548279244272711184012332481925042848209054306419639866245001120888406007091999926354755995180349741649695880580159293738079455705279231521916711153370914884382767449987357712945582247082447131182581699481691010284586826275876188763499782273502143528190345577487073294114268368294301599715786971828599219586201734443234834676679549858983245153693261447632848554304428795455791448463144092629118031565523589231941838224301261020320778716687441170865604679299333624120578800828755294090690188194409486427287522747220427317660340783331587934289875742581959197520113245398993007014063728499661617081885689925402068709647363702280290632456793391623766198834967377606389751857506396044076738193749366122388847753746977924507192036769398910027597726816002405590280915636791274656506739614627188945143883189858262409601892586194033336382213737163506725847976742580448164202053583012351573978300264002683529970871061216580683732230943723128033081598122419160489571457597166295750286735326971812678205550659497275499808314685598565539656925370179579756317464516220510347678312683743348680744495804157781977024673714437269140259733243093482617797039063824416123888987748210196534197094489927077808012666883549870661639098656756099987966785594110872163013931352799182444540244594134192073568166481171328443047424105308467704179398487727248121641679110749559859094093267121535806022865374091921278786042678789148299968948608083278578140879775731836455124961010981203271836793537014244442206463095470316358991938764062203822251472601003685068240168741463684492322114206425990777020593724512775408395826030205556609228946128145891504482911728774757842295717966808888984208581387793048794383500478423018005541917355817336886174621664890523355171445422417612135947090717132559830932993632946220688446515222828971374970723471147968339039902152888649319413622297451662397812834680925035280425778196444665064743447296598977609249312830505044554149138102983655123125879410459633783654202490093970844565001275532256805094801907639821727096682308312598649175501029192872059830374004870929620591412217907410956575034280692503609861684833358876364031945661042909774176193699920621533995165035402166690639836389527614037651104362085992027065861094140930008602135861904235469025318568166947122222923313698017708090672741118047643830622101267833445439619553218142199884179789860151413296333791303993266782008865309443336822658457259677120077203006911895210783852132738112133320784056342080512210785447125010389369934317938891528668869337688115402891759461569245645384918286730777517092331305651850352960332738271192434919502140140556656514305532618745344987448043629593686872577930485742110110346953665762921114558267842328929259798600895349628362419727063882600888293066795074775299050004909372535226083087776806764652933235572889680497804461883821233953579180859448614060643879268668981936301825447576811285679897004508421770989503751963055818193648251036633805234309068271078417470646452116902117680646261962908347718701917023881893276018004753904097416843749308619831472127137475082242453303561324424549912732465685923201009515120070989981708849957255393937746452927929486414235174881211232140638280594074031576638458444034629837284277910327074736167665602264884449439580999542705289179167469682339836629679324685929552431440870855071328547101120630503806180041152037068870438011236404085814609171563592916179270906601297219444421116491530577491884742088161491541631353624568630718414401164331501420805132230685005163786438963297654605680259721603826704023993412425725732619479899984597239191507739763205018114522029613204893972363945482698008885950099830856621011638402549573109139520223449374919053311577616748444661714109335981635053231442704701453875079076272435251087180350201995565000143620078883021768059172689921610438512085573917966843422762350936297653481797962315522492962183618520579115859521108948716265942293067948159096089372722804436142914687297557398619785479650415563719708266051020121378076709824826639196106796057193671708720303661873974262477481354512972319923991130265378113212732369281980629138084887957406920252531086583437423869087928890236511656595739386315997953388567007354680316760335759307770930041849440848552850195963344060074390141218079867031834126109023838724568949604693887842619602355622910763576370896823074497724417737594778057382851457827758348539640544492692386853492181177155288017529317337863172103087597668576888962031030553099205349627338509680053839506669602986250683799845965939622099317680937590036207798369949478939267906342207211833090340705240504088706877158922525621971947348782502424959073480776347633504918578732867148986685970704143970039924917771925727663451773718169433315497546941573527609511428489873950189066158596381177018827485370981969455360773133146522900700939103966240261153113128972396913047513719675884525619634007002735589967598671466717969859401703893217957451050134912033130361438769753006856560306914041619502790305694584602765934943167703901096036533879694392961671758083888365697091294352267578880905866085310454168792197873398224844627289750263522867293420858874009710357906220186435116009696138423357041121287192481771842183085439302527616754764557875718980605822162054641255918619420739935365837525352871475000493936922325228250814199047742315062098657562550630379989849384733386641319482779888980711320030495645524812582309043865462310135111693932762022595423290938959219688494024641911360846927527057210603539492080361079620545302569432177349309940090970083932894992897532196169852935461441783774454430762883798134249051023562647248114748266183177746234853923451894657001208585436268408001022232537524905024367057906238041893811081354405136119273870277985245413374254893562823469536311957306123007457165910164589393520756527395335158237878924931069431481939079690769758033599808118606949776479376987540262304297542357100987858116272676185717753244139242646287308036942964592332142044347052271697542632366075277175949364520081948259270810183800596469701527840904076556243443574990506815835747889783625833449326703296933701315666953273463272448519480451485300583261101607268800532949871213199788733104738523914578199432033874719570721761271968237248839780208819441396185122991417626093002039063898983041674689594079978902424069599189332990186874195921497661151540119569773379710713522304552040477877423861643183893907683531609687400183009327248343777419731731824469474937169581142131530430611975682355979568507810025334919292178258332634595759641844616506811484217784681759445175232242074765896827981727272559545539825606988143417138898360753472306163008292339596876230071941186292908858448762656012144282905971462884698599020762187509434147635297715618301082433727098525043254359115269425375455907482917576390372965955287800510492185192063852421964234942084088828886161488577994322394150839113889683340477359347458040374267094499555677859284417346506743735757720151059819289044781037853613240101967642992368195327382774739840656562828912990917227869921515360231500166857750056896299872116860732660101064288040229600874850651037443917928904417761668389776477709566113083005390977601533731794217511239077000705453702502878548599645041792915090965676883105575240160331602470424792377334686921266081294211601584164568725001312273013086310127895447229897252465095742591520303425110289571760791907368767135251144545752204672431580342396675836581985866403665681244206466999845411672452162317089775893579853037504242620487830225369385069551389370395066276001372415472711537835820746713863906010837249007537667279996538229318016710683651290657388797019014360298170279781098789684066019641417081994783868301532368434496587016706877777443228681865245753192545791506463614512341229307011838513133753838140420316924851233044683910627433773967224301520780763017108972566520576762782776119377199770320524513696446221928226572139494799437075757461703334777260621397423407556894915370354606104893593854667694732465861316420950189184113165964310118618293758938932379601639088117059533372898249076773156640984379657522098579356341573237357003170243389826293391025289052426574364642541918540035911769001368697123303195483803722548952808925114265595539047735377613068703719228437594386118069048483779564900436429307117608144622322854149026795739363471960872601517082991754459196538493464299604110955305332671533459707616620149236701722347585122538125392796060650376180173076866184687189878308415424964556378087327327109524244598702615003487584333299639694202719620440775973555886416391196644057134012851136301116929899997866158039770534920712661631201734239003643383396070279752313828931289399405854364942642448939452578057180519957002648839474188512820263463022165338748679760297761363596304604993820827823004637416301644361800181761995985876093683021807570251148640031682758577923976628421724226057808691413468116753292765707719363817429190849666219184347388466997102451727768053912922184230578027379490189481279485399415829951876563041905178487821609112887125346736815108702428143067958138944691369583972388893258167374118296552227136502460929288812747721168316411801527086696137680724071348671142821162174734462194264484808242472916150926294843935633592388146792109618744198657821246352840404154023121175862611515307440157566886426673039903194344910571087887138799321498617166155475153270647019436707864138056488871092804494140081351482857980353728388070086033502299004463997292207471994386732213786350765278858068473792507869258647150560397368386027707769078646947536139612356684643773058276924595640868268859905857039095334925524325834396785351495348546186995278085118672709960349071604604317965312419954539958600140983272662631279681462531422535814249413930062762297425014440688834098773869442933388801428247614754832917804865385639372329291732957794538813694021404066241818965306587302559269677824764395414484810474018013285964663676046590720992421259827552572742982365733908199655937094819860555049737934481736327700677620264382863821007037201268808320358844594922597103006638599516574198538071609367458983509690322175634902030237503917051244594003153891074122831446666845383153198686157003776853932387107833567368586769732463998892946154491523364325387494274811747898172557487780453729400967867825335520100884612071121368373112997276031959304536889422907844820065852063100575805374817444750909003784493344455433235453356307689829329755825225859382979625903974390995596121517558549103867142497669724602115048885868544590113700916960199948660651227651735489707867548938974520491119206544928612589869495264620505962560610695754412724401868622724548236841563526371797619844115634258325387186642294103857177993793455208584967591743340850789688520585180308591555406850817352397010516765228226826135131315213342114007185820587290692881575609596953998287057438685764885669619949443527751982630470611801217431984919811604914398467471553195066793164876925971705418181228533526541046966708436741669552146004413866067029805103839877122327763971668175309612373442147344961345882121538317353270371001926792371778718763554081907771958625231641092352257385172443761040626290180691540076862868048398881153975088162817021487943267596493055444557346425728731343870385565634212874833925404075051146899881342878361480153476173125402014244903940766935352858969204557854853634681708329900508162495358380645890838009666485536985465423604690295881191947553043579245882706106641433766467664412776683027511044426481783135624077610153843288769262532304260900115417481717201753913396280386603703228808454425047240648487898880623307517196845517142555947967816264684805492339663752009309426657190680120565654481138728787339230454510176365078332100147624682641475719484150609564042587398069281802995904669750438746506320651550645296869744206930066454695884964211806285004097554310981395232579059936072992950527218170128927125087441523281150407637627077140262229816764289414355496106514371663103196540789305592880897375386323659115209443689228428564212452904503251436446028661534144066238592543583445337905300574521052394003584471936334258205452962497581071268158773215940856344321587328046581025379575242725274912183283983811178763205299254498182966974433727215589001059953591106821008423258586866035255692590039005926446786080097042016911429175805351266429869692923344981245837386443565643169635722554804438356149126834427640411595195178633965210159771068791535033404936407069501411214604762268126330373331810921985493644173241033304251983974874238746504198249710757502594668848304449160904788616695905702464198951799206246563191554788819236973381251119575907625526830569950231641687266341966837544272128677000895199074470468440119787682419269321627608357197148052554684869501168816869942655393141221208760787012457131449310698267355373359263976485711798472629035252266823011653080559151434172424836856705552448983263935453745875836232827001307683177304039667566800150372102785193346466739434733231022688179287794522689207877536723727302011401346775396246468091936340753286951476953672055141407899402319669559279046130442653802442746991243284116246230045701062933291695196557737675496852240366039220107826266084021165761743206839671391611942166802996115069973959420915659834254836946353668328237534659936891516998153553119954732872976316049409386644369485384615015374429793947974969604082084963996629963198304271691274656605397985883991806186388589206458533906019971967661244428240314368705938442173935524149686823639637329547673010010786871771916973078477458624916304981514257478067666651782863801255351294025441649627949060418794614862227891827714723801375669356250150906551437809944765066958134446051379945131591167343116959806795048396548969991955056734739935085259077685048811120668833050689282756331969030507033411836365633922270122458830467248072485398905215303023386118485215098461736380604908848340176124838422609569361056379464644568459453404976930316739668780230553795727689717792020093990663462943736687486703174215037171810239775969808138688206766609088922049299107747723222070582581708039397408227130198768645134105098659988191876920817251586612413873541567308879254894433858070210441685586080386002107810245403746817046767175755308039243397031485051615943415125930877987745738120869349780704444377583077383957611257093916643160334883863589786507153185606066786414998508588004295056784519917162851190980190691968463736303700431878997505018358302829681667047518331806688288848177283132574596837134154665927948002156700396009052987942844642680493469323454467821068591008823921515040167341712126353485401926058039795344943583346493979979427602299962543944432061189461572889436558844551933109021747158665809048669647338004999972528664832011816304021837480429775183070334161000348933657956568355680552048234409766567505590578882850617285255654562444095778535237366158601177389019115395774114687011423763276227213920849690300205060248305411365076609648030810468890041451615280123646688559014440832576882521153215179981583014780485458443677201775431958824540311010500824870469118315412453597164994373348797553850664228753454963058175824884260243351353463496617374834433711177728695504498103977021133071257860064682337548611349010222369816092125597853756737848217178113199957021086677317325558098630688155180490205669928536844041914882362384453423420659274058335174273897436452191377492450542696426311682255446429283499804261903077995049817973174690968915013762314578087480070317653329762523284703039315768128654222037629968513973777741711408519282502145508515350634472303302286583240123439819120858691581522848917172299769732608523918100248636548265014436883550617601432446002600444249937758310875697291994567033615786152720507692914093215463558879360811274647501813248955392448894323531374429514799240958188486511367936502607932127455934574793596221731782257999855162601114601522333832474448538637753302820771074537323390090260277642796721369086823105384089134968924893853566695323807704727483604914778181751535897529371521248727523228056634200919839539409516274742525833249543144591580726213713753370860490167476022270772136488750881893170205511859890101126142070521773031038521387035445316421683843126070561601025001381253816203696867206818850213862946790439470351704802719656025340799399987563847967345671509010953314830958953197293682612233971051120906098334223175527761897839542231766507564949896061961079585836797204539165260193757380262082047466395361961815144296975575780088854788617734260293320933726494609090417747970336453872918517517375406597909603055810373332986169924753690132759332997363830097341590512068131860451719199729219609471380649608081616710911602451769958277595702964559782581174153672809485066692416723400075540045184753583778509390478695949586688773297515464119559283707925373882289720853696786592448749588441779521814752702073856011538574989857289674254095635040638410576059820282468997024490422804847792353301508353676979521173505997815439577225907658970205506997036618306632234603410210326786827363031699763530987783818521462765296101854929833439619863156377583411969002225645601102303338325112227369481687944210194681464409073093176814758372516008883365933301010872578830945855144513138936023768877909842444437063393102562709083796374841602037265878263599425424799417503836543420184655207195930505610955118211538634051500768334975611833306965915489004195822931768138678616573094187598654996384813654544029668005951341788831018080123616108676211716842629482693179018522136308389775652741720246008141380412936051721560608932075588262160424466681170810347066613905295652532280575024835203863848530449613137552408015938235817191380957712099668018514680130702525588980352662689319525464042454546466858699145286121508656996430847619676907575769078101448441705747582183519810077906591861732737616318870635679110399119763477271496549367410489223120706102043939344282972268893441989924721553215855777347526419147463633458922933415381240947844058284303366632765800747667100556426637926865753470234399803769537743056091876538516784366732846002144450470856571075936298661722147616871670780158775993026299976079161794743884532588119783406610505782033593218368195010766736577141504138957842291516059509029439473545235165703747126374816192728006799982370515150631133451155324290428807000059992785545413478049033847809497843115911134844592355659110373552463967596935738728290402568224341925179964328508062641452428550191455168285531260089061586570262650894346738661211232847203808575118636975864056786829031223267229907380992100240625572140619896509165274926757048238042725646998318318526313386950011791344729831282735359815070087115748244120519896286047764452888846308373778160799646395618325925852071443915459095803247472014248867857267974579094968681219180799321680055602239299164212381226161210480742549267592321485856284104655181001053858064774540842995141183497098481320706264405682043604100631035726970889190638594930637652527160245021698345025760000999018220791868844939209560306600078361500238549956785837072673972485918638019885470547890325706776611466547097692866777528389126700715020505435436225323238537030741602978388152099058316455243852662565110618855214468340065005985808580681115650614724507746207270218937936788096732956800197063480796928814500101230286934536873437652415024179832925961369363559525270513948148716882146088792687315798689848454443965821803647748980719535507124240101764821639183380477560544552986908027536983542667934478360534270837073969362373354569035733836195654624213463073117362568498757595115360543421041742257731506061552675907161547454260791679178378617148376375605990377057602485164876851764389796761291679857076074334180428957429664552279912364681133848911008604308983731960340795250148744594921593451512108882727306038849274712666902451729526555987304527418825034287972627022756746250383959660708599698706009457465428352813150965592193321397658592788681702082242790064150892563729884298844335758771847972014267910177450568815120476721374903442154745067064569104084036070024539539532775022147346841305248997593677033147831578318179851136888835447104165050927392519387928648888701384357715227225834350378384521130371275413303630299940893588687020988267298404005701752794553937930561623837059787239307451414856776188530944578148909979519696034055265449861607275105601060887126731588454542930500998664111245303786825938325121215018593686582699014226600913909103868725761016660067193734553217521060834507287767336187100341171337322256698983792684723143912497262100541572499357524948374600430419601854345891865297595524661556891989495888088215684052428580311917285802676462872949077155137188600458421949637788505096097066267054610655363771230372522706129114672703458695176609738237746696899909857946274921108207096303744841189406300292525527570588524353219147218068343117437856406607266906964038485514451944115788309188657521537212390777707193389992331375707914191349259979649211689602014323163652055649763196260361350273962047095335284490120700541047964541719015212488852503588850943021546989688539477924826454117151752495770640240595385265077759007514369464207869824095035478009331975920902286741155568388215659792453002333629548666856970128368748975677751593046360991406203584997335704849853634635304555928484185353509181432014374847174524877886417100947984913774768636401514884638885127277683329610536050952592265075434222414625886809032373309768593449702895146257806116782385478789291512753467365947360617666852329949576596472629680079026993317401621998496353289884118981942477632903046096592995963165212014569328035137360557232256793666489584248119068501401225244881669708484217782557739521090227983039806845246394947910127595947360862433728319111854206391579936416293949464787893652512977072155595498856760408949283796587930707903481710523082404973351407709953812909630699233310346689642472562717503527217610209791635502858693959149874795383927289724317323734454797311909268949825850605326202717134658324401677827983371059047910711777138918494900779360823064288163841326255558139443215213401845298819921287035399057346492405649415111807771960482208265399259146447852870230811934480182399056692137422874187514744218508474421557510129199825499659927988847298295529088866937433883977885231461404166515450705022164690609015168267190815140107643617620477377798263508861576667116043372146820654496833881557180999126097527474024187196675069314784693422403119670431101066505036882064497344364825516350779093652335850293618438773843754094292905042796830285940762302474395906214505934885737653971306956277557529597008682379946375938620700951690545297057999277113147001892172507377834513632650368036652385257571248586776042002510978677394583632388536142286351757610068251026591947789696040770200580414329909635335308006880535622697258180280377615652629879813985252543429316950253787234222281459403995842869448829167628460509973780812472560752768302957425793114488673172626010018172140705562824722255047752736055681189180576400906013262177610101363266007900817318076730467073757795588690376135370076982550483127936868207934789370569876137153462088895263543549348760329426967470440870590313926817318966739078560408055053036836148594649886629175044894155416211775251754399801511201574271547107448717573249198729477726578340381680890859175280425029137184354607902358107160699151397100953598664701864858875848697973387272946583728328216993345657292798783117894646099259165440501342707779264123720701134259615996466090207812123082818758690182855357318003001075559656305240655100087405608139591411178816800089731115755861163981952639972891213484490713672703705853216569866838367704094153719186158497145168502374649938120613221800988846422546782106323851761686470544267965390567823357252564559400963880958428304458410272007163720181013055670704161709130192963528960302089953511087286012767286462022793851857330362608073189824839875782567310303210121944295351931539873722507404788389759589520425697657526223779158767610872748027761416486716235107746743255254759215987149887903720712991286594573299980333070337690526652374130616116580946761613650659042145451070012338822496270666209987239052133600467640109245638523435431208691968972398572420775123222833906144533190874152878944713962546964732053202698013042435080342218012644383324680564489585003130068141990976896371718413541856524425245422181761363485855471650522274154004016630733433350212668639625140767644593007537332966259586550928143098355611968591984800086819730696671350466139032669156771266238196235699672461175742093739593065890283044317711530690610874509337589905897027519017843734704904275342420289983253397683367122345469226357245003953017936182052539639602845061451817963069118562032082876102678508614821947295479246958521465915601680991308616300587787401310943571881916580338451335715767260805197270215774718854107448416981639327725466401956904357704901231745367359781036926043898088938188813489033788896155918609919228076267485089147558821061719973201388918201493749589436072972791036920337164969809586496735536056932298394453718588469966626886999127013740367918834754829068836214535472352719308218762714368539480841901153528033531456940426398544227607893509807240231921003720465414822775781085609564286752037414833564372350064908735272830924205322249377054905444262947302898811635245008418563062266576902897169519589529769460418649161358891504121453715070522676015083942182199457388210685943656015098534449917024524306775094465174826645962933204252903188299343164975881807160758932155506998323677046543002883449092488298731251928543295153505152221947046050906134406995033624366135131110409240558636085891853217499339662458869492597918886158094865671617528260116985677713020815408641458988842805727683113000518884182095807692056975703055371440879042352589746239103145974878364350118478533510045968332307620330124766033355117212081971122109224718612912188783745310002297301681345794206686902524795397599225831587345541106349098456748396282588157961255451213801769136505221683205210032047859106588209746272887322374279453682658111725571629013471566293958604598056129309429714853131247102789920261092977792934961870076614675502890259568240783685357196652099719602416479220042861865687150741792111279988369782651619238656033899085010321351364070558184967286679505956023040899197248125577900110521296583451081828098327330055141410377933868472228581400751939990725590671300938972848026912553368734619230858326173622830634028387705646290695115563549689980326572039493659502249546244358300187895746675789590179993334809833027653522069527567347911947667863716026393665347431224448895955771370550935699784771094155731786564976823977998807790460733694995671600832804308051752129370371157560293687383665144813163803445802389793637641163244576293539732295551329590005500614531628025216336859070601337245419047108802774568480659838432220665684508174828946203381920516561337531992899369740942410056017945464968179550889358486107615730778084498029109772930249506808873109001559967114504845647316716356473319985537664016315230226827177633133196665805491622302960516402879669911764554546241749302747429573605774084459064477087446736829498354860668619655179646287365591241298561974897860375365960644391866380660726351471776365330665009984967089090981687067445539608951635943874590200474644328150193345777515315114489969181075644402790788323528730535205904286105071076096013392449761559898138215029609606845007745974303853639083951036598273677975941712086562264733645758148252026248850603741748805407819725245846869872773840626953815830135920400020610535415512474359170414136106753895028657801771338065805137627164151257920330143905871983606482609522681644447591032955676540772674264191279771299887546987855709924559693676158669713246680377072718746136386161804353347817838249745799969350004103135497386532526266123150583763331143748896731670443077077575542367419569728373660318106848746513070698715142474227368773100206104652343216763641487179576756132212051959387185668399837380536739626571384459581895356490690198663905241303252631865295065674342689460718852687978245146186526625971103051671840243574896447180620047858571224583006929650550027033183220012570928001341467435642294544445072663893854385098240359740040809866091636130201085004266191450160206284322396726491571880958638328669982954410633381660034607953119242160349479020567958035509140272485239859755318741523347334753373561622118158645416415297056293894052868088635316813045418862974600462815045784618404250957890209142556536646811813640068013384442156705988224568100311254903233796475943426472375919142962475575990052207749705929905537146807118516651702424446765800275127688176698426867029555141882225254592208046363974251112520483343951520778506309826495457656389474252609317561418402184669565838085795771147053776594553423959055938152755023504514855850788142459332281288974919304579523204064945851515621646207115009319159767748990296544175872813951513453209569098289980185768630761212297954480960261322219229573923873286331340600594699356800822624271942170615727926918375877330586727109310077958381182210447779200718114609061921567390664900354984580753745790887939211698523347968915792625809535593925658648845440020077247825651893045109040933064221245669393131752824363826768226660309270541214421107907661639820262543161702298248984105853335111510485826261920721439616911461397728254064082713601497647111378276814064628304600725056682926907215150436581169331008089436665263357127220310378137705949940814226783552096577136144434362381103194899115694964697515743243618572754787370569103765584507221870070218075164170643701034742345643523558286544390417222009379599334954349981226880415452381487314241182465816754642209198592510896274342340203774349418704826619117103893661244714139389506415269975439218641118721928956409685192632638581546287376536845819564325248012770875525114949019125022424350703340955406046611368449110303055705475373547426349853288935287300726276606355755008180398148934839418694115774640858710834327098242661321275810837523898759499309782898031031884490729020364102944815294207697221075397372081893431959461728005899964338302678850715344248222176887793750285135782944358116583598735498952160114943614152519947350972855557283259868641496938066166884554388204918927227101749732526053865669690279222794598188919024146680825017888099728916857928665579420006776426218059656169230847228039018737044013022101899127884135712679592389139393063028709705375302777699113099332953574484424903835764764700389559633622124230764360055991770600865612077019289463274277153554171856760878635208369631013186527647206121500140633000292648563549770101037960821011251080751388023744688860006148797334017189857720709857809214920784542576014978199255623495600518188171461756918949446005743528281399527139268718739380811138451925637578797997082089261063997316678010685013075458394280905977972573767383535931365610375856514898637548467561158130961216638825538590519588279061694294137656120784239494121441013170808664669190244221638498861866843258924438027928599039386260516920711856245093562441874338080164920648325202209925840362093161217367086941283638800474967400612811477806282796016676417532837348813976473423856370740900811584696350770827708449137181345376780562173531188740354029923535505632064586249911361232231257743149492811299601098698330551714363983272412424829424590372115629530282863908861641887576725327096230143821930600575632182994479311391538235072441183682288161227108261933138628690313034032373225538147148976286796891687710954373425624264378270231261151659237530144400564105565770932415519317805472203189707108646310859946224839805345773898198038082243404996502342753015561605910312251572759700563714803838593200938104999052881778369661211734910216483685969536852764849200002546128878018964020570358938607731457647828860352634581142325706039386975604095439591132391371183289999006984112093319226757951538071797269162298606662923600057685831793265988011846026753311350319619905721345408673038614630288280402650808438722512552752813525028891191232046644578876294536429720263237767716803455221317882469234711321780723667435672731762806808794530719254185807299563497736257813451336430071400984665490224278854199575634069779919576412596538847385408823759741926973199545925935610587432072957393733011540116295883205340739049975792199824088710862847549496959651052933954045095449562077643744739053062231871406908551795917143377228044717275168081214061545720022424311308016450290985029907703968015646661211126743151546121425359288810581647948247353808321329315852826475726850589950810929275758660726963090472024708938273561626632234305465160108540944573830496680426386039771941561968273701582317113595005884196246394280906603956528783747700017522042226740998671075178716584230424503066455882895511918787153551284283465445932927861274863912740099037549375752432809800457310266728908641270908851888801951072514253594203137148408869914474908893756882495300169528384937274800195230031727410618052499511379621062159555555798939074121068602668206884251554081015037155069803092200868423970231426225459773735825306074689381873568789524108473288682824627956632347913736572086372583958127583249894259004872953029756439711896427614712889307327463209330276069268123939622599801360023012971795941084325141509569386891859851535826403594660490427858165497655024068628529843114703465960616219997688958981196210398233087774042027793694898738474428681739769799692253688393546623300278159389403727137950299165186171624236357265508670367140635682654173558552859528884753075134166716581835898582047801129817756766640538169137422125942805288623530582803733916076856360445336894572517714321267317771929999045958329774696322638362176333119621378991929463685919936999231805133131309770060976896758588710976687895101226492511867145843449025303372234728910797645218271412908668990281625530520124424266562737097528168162115398637966535760842282671254641574530460453915063123486394068488974264155378764639995515644875907691062011963369047892498654817451821885915484570377969701765314852374085317429492623125348514380108685251131783830684024258265890544902627410189693118065512008954125529071596250354303713119846689230236586707539588847135537657392588502547842434487783488051196085435503863311250137870507279737871633015705954359792691872434611012818296791675881891742185254300074988218972153153408936692771263527513623532303331843475430724778093609631288976559533727264210867256060427506012700306384590799426035777744452561851884218930192716454770140727097478355956221039764471679663658552455237618667100237115576324427632188477148278841230118097106124463248867108410003079609002659874875711566724424124145709758614987792200436895778311913305405000180321997242858360648413315308190779846727893549900195091962213105913258244748000912659268324527654714148130542165220181011100046916608377195077991731096882981514841270203845420179529504328925852398865355421102988548514348626599935172451584180686597472252550944490566954892409494440079999700035524431625799417079521679630524478981205669387842414903842970044324548570797671437495221927620165194110768614460173868672346445108190029811121735925671865402601323273338464224570447295345510721485737611686920057182855978955002663485840480355510973911793781951709860784399554136687792318459520665642959736583403906546059271278949927719449902626124326641615924992529386517854208468845961809726243803076964518231031248916885949858491952419451196800881803254823671326556372859631474858774683465622804948496537143138935117910319816943712655365527893227300813366786967163944001057068213015329197511805686556400448801756972294269586726811161082237644655753360188826230988494804692993485276294162102672726594314408760977419078786065446098820831726115533131307337563004452502576395160655295190778876157441297658822507917242887205214154181451158592230748246149201008607189306823134939529826920419311721062510541045703006927383774455832147218217735100082605628963163292590436134576865803179039214485469049878902654971871660650317937604204450353547926993315216059128379655644108572942920571469060039673262594339414213276665210436842964307045134475753304863702252558887767171570229457265125531331596112950428028500598329487777691509270051616403265639070951677255197141810352792359774871563197311766814253488249417550241900867464273135267541419410005982115350861787433701367921136470714413147437375893942862541307149252189049022860913411664068118047142028394360791053997370951613299728070019037769690784059210099863599865195630710894410062849651587740190854728154965826838670692760455389455734666343613744728111647224917244672692053142934011164842979558398518064673342588109794707047770614502810533832411787309555522891608542120264329015220227440982536922772162152279720588345231373910585917884337307016254209590934560900080821697599268139043159413926606427699250594132654326575448421567070270821377633391291759978190214099736087490287415858082732789331949008034501855249741588160929085903337120052454121830992854264710834240066616586540369645479054094558810667116600230756102229443004047932125756293797969032187246157705452286146516865765821424053432920409217156116705222081912901590031252275181609552844780287892312623557704349946077007749701427683576498657782779103223450256291346141608105144409651014018702253448400115341593283093169576253336235215904528036656810538569532158993640658684719544535420140049061027269825269766623380361292742234231154934553956925457396798987636855905088880567686666643818168387157338988937495495797531757493668537300706163819783015924745415387477053881397188903565596203931402283340554687491698755692901273069838182226109009061689324506769604800328402497492572995996852883970674151282419505231099984682546687355318739082252676877635540535429796728209519922701840327026009519001921558688199280729512920334531697717493045469634969887734307351913320024253514994504357934687515868851335233687691785137462633502270675040738823062297891665776384352399462466817512801216589666618089731036256527326185112343093249727924624198701775436505710846386457109577308116232432530367710519949162554479293716276252480860201468162969082073884767098055733452728224562008417607803545407482876513049503228830698359127239462035934304242517225342376544532051859268906771791225769830235874567544523293299043450046846152271740775158852042149786682258226896347976402951436443075323342291319461371591567456246200485979647185789779131160840249647749493548945536833552837325995476774143265181739881568619190716257169922624107594340882984469070425926423815650242288322473683446851898103655291589353480619412525062143582616165434063693221598978066349170763599934149741631184410694436821904551964633482015158223895749865241692993353643116671637890307028732829626358784926154099494810133110898324227643629431438558803853317555029145895565255503532594120082821105149707859543477549164467453088463739402577639233185950369331670155094504172842568216943713473924711127872719339397488577823859052431941345397648328983161458251473911581122218143108036168169461510799555080736444643011886237696076851770464282118825939799633823519025609423673723560638563758368665328832959696603248011162844601300894786835957599342428254404296669481142644728971487974584254122092491304361351386114617624738728600443609590506093865292405597800490964178964319372924175026382947215382488802726504691240809030987701293814606064705152164656829730670142697888359302901462910645361430975976243646867869443870847981457373893399065376836391568501323602056823338667835189989957006250043178424602806749604682892140999628670910114459262091554863781090669625011863971904206328526857738273973471683447157856040284480188495139710376892721906407427804709837053040601306721662122499312518190622007623651164578456316688266103831130165119279230097230597522138578168983942819891613736138710792557037631313656711658014103957550355157261969879700295926182680998953367055223623382111895039729831312637842333235328899918304963150779691962041524764990338745457298094356258300239964340308050121688767812671367841461769717620660679271983699360576367763618119895940766765249636818464446758521313925571556940869436475542842955032199936716263931765970353978350418984605972794237595513016117461854078348409887797165234610664512220174812489555169481858526976487804208804968470974680234109995711744054315650205720293216414220503271324978368153978855439266980067702522928473736661114007193358488896658706368179488378396399178195298922832157411747141099456988220061431796410019791805028345006756294532444428582213003604250307220309309868360371053791722164359165645192715815393900371925281078113205410415773754212585348645128069046801084417264931044075444092053270349871692630802267730122634828392978530234148383728893268986440160441855366000184808833255346947630152963050848847406306041236147921366833197910429539417228933333237871119800420471961542983902634125033146253168417861396526652063551157185789253595917853173457936941847679874551653216274665637909632744315316641453138718459746192737218849972276381317259550148608090588343315589896464501548951443417146390291728660291715182182183550000859756978800714919171216152542868956159715390624611209864889363011185533435421065219220072151077946399130286862167633072356727740328971490852684858183419529768317154796477966807972070672259951852162856520886202846327820283544103272454521858220486751826076658383145773879597629506698270652453568981052047870156133643147544941680945436462907851266500396669831383243780756142887043279572733411810457230430531018746953888127137158595708686012586722164527657589894272499977685494190565932795510435657415607729034071299638620941588096250122744374014052324130569765039075452496952690659863601182163514449611574797810781104728932112821152317277765150449154133401186945863264458221268773590811644418434529471354540875373775405874011525748944887742452912073587822441382552404059315007096646581983797210237469456318907339148471808947903764203713333817421026777709435402923818364829287326386737733687175785156734129616455022387880342646492976366679011014298764417400784909279961859427566774596061634981940706641542305480754023471085803928233693208905378370998893649380184057671157974940434880083094933519552505227033574298709600798188501154376793736790429974743145737048812177735704339546462615929947549815431396024381896179720636193962566822849905664188352436754746038012547294981388398903576014221133344513828347653671310720349242642757523622779377878444458599703558568022710376524583629713044304001476621246689343722373368203222549715643677198271931209028234897344116054325026009905201860357281155516351238354856811613652494754927789653289920504141048353216415098658694080709493069916935726985306625354272533591406153953632006701182536897252865073326244776653988103222981137275830004726447701092222389006507540337812574405243432775405806258599028282415642991591005273863837343356480693240572511883137779677850562956620370057602495469164087198648163224997021735615688617382673766439320064085928500629214438814834580949541520072189770051967346814737055206920621273740733492302828260229258067437391932984138768945536554529296914137347725635339770740669769099853872805495554014748705038622213759788724467121098693552737697210881484518874799397427927412426158234660135492170869093255240875671375215375927968669448505354545657003398633665714235046508044123218021735030561026725054492991359014478045310879994893005782626661114404190380639642348017151335526146133617059635445684766094271640976500238838020728148562721519678639280815109381334779458599898393214125965533842374691364698685164979748964412551816101679069900666093064905110053214999975823344792965703784247971601628317420572971316065006409910939861663106404613743628253077497625725572492618675296239108620021901104891875030469487557700877617230527305613544980384408604302140556914609567028355791571022100404362858359122680127384750607765650457720611402082597170675482707920152783624161828386268091365440361775497894030658674188069212947820970673328536563343361115754058662989805364568175897144696121825130161466760282330702908689267498991801000085589278604758135802521610507531485569533434840959634199907102215509222164444798352809654381487127494190047629355778634364950038128129593002528589827779742065970041326296413956586721451964888237215762336825607942750478596236340364901668568947858112493774112720531491383791978939266270382577487049205468526107659115269661061356383278545304077247951160425351453612841897373396008544440321409493327504562153327894485260630929067803248713206827713017597894683732886610415956253773407462052867416119449921111987348781070899565713412143011720724837925432244814218677554765919984133655837905649622207027083116517718226060127937563243525060140106146098337077779969829789802696559186264031379557670708286033257991450247157882421405957024699975465789213124867563926647703531391962273764060898958729335053710707839550371005344872352783106554983036262543493791157240234767103501252976660224688140657914980818252772352619806903627260203388994817238798207818446097664998795862077018107730648749872082667805191336948190003255135348829698606468304172174830784317433818428214489076648158184029210324286201082156377335641308810330788230278799377692388718196038889626008608066422421165435971439386849257935848167524852476837223873329538556530291834664049204359904722466696503284266925744694344843636901392758183995550205389361909120049880861398015439493455251048403348499810063650780336345467617485972307998648463841939047758069262400952227225607128872974351512654561104255081991308454084398305156256725025511437356403734946570196412788903042326743070754744710363025887249569388248659615855072172722847792986947713931292418013022017977901290226523019641951540881385873368448080678988446235136817510938584155068817132900434954176990993222198617901071169363914125824836889428080423522611586889051852676697979225456351812379938003198911984919258752757933429440190323408181399190827392934018318093024913351806688003236568737042019752046067135922040676540582357415598185668129705840846804557655229145657133557220194496425858494749740668591868673205471448487921255075705948454804283616223146130863437407649233938337710790868626359637196116487178592644648822626985071599254302903343909656370715932811398780806048802815760186088697916399022388177184742548512687517367480452111001132233612365484466985836763320370431652964856941936698932144819984515715477641634518998088145562155932829475161097833041914029093777881610078214570931662543961171074804150363463318536844056221563291500199540165757442063030919630376199736153290135383336391097347375733498777651140206963541085858755833364659870187935408904507549871017160858134563451185024581904423173922219965267310038982467170844905241956535312553172053929061864474910086199177516698602323139372170910072190834059614246585230091049114718826218953874677762458276631169044282093850180454793901322611225033131778270111127437785572317877110702685747606161983817593158350411331568017501059196583756693857965377822388665457247815719663482523087498135218754107999613858599061889406551191510873627785825561875430837002799056072669054577815315679016364403302285537204518638020400602405687533751077965917035330933066739790956301247455768961156752080882730753609978480182068308479726385777928496983384818607209598366653180626346216960766614176101680664727589196855504734107761796779899339905056592236016857533774354213974829782059039519327979742240773977390624097008899739565948244366986747940266216829164011279474520780303683717575527835425609176038169113747311059031477035634569129342260569315426625303026278925278563612460033041163735887794218234027903724164000361070494935747899689219186249649797096931664210374183664959419879055450605489833438946872813376670566252155382804049729101479868393762518038397635127847324261270092249645101063399264020434064578734567049735372038876623580087029144916325950981587949883628165110715570720110717789475208146752920480012224524910468563132942527198108940618004811595681499137777509423528033773364062921893434678563333092257583721557266912842119429053312423306737039296795333928175340751024569594393892520442453887577614927225649454561503310557036096473614256466785675480947342635366437088642496016099660179528219659007564879058723054738128638026463786805454033340459317819044230311813219323669311105014980696756168893651404266451082660345703038505248712312311296189732209318830911697444612554942484833002114923548245544521199065456173567139425487746425796822325300107730931443894889673836313051297775717377588577517665823854294686934834382625944416722638138058328273678465289282458125982766712305906632670113509868356671963893149952173886658572731005366760160272785502749308770267844492654825999889705845337878685153883239967471678217716723407770790068024729574457634830379032316827399908242938342282758387984861556429864077878221261833467925573028439127696092364133111219624695147971257514617801087736878553878096903812254349188736875837287471919603462168284525953818634081562842977601498234139887933059717645689955601310950843680717780966542788646144406482499742257751572883514238636561316428060997860167254234939548626512992719886699906763219512459328685348779972745827970617188400776632569153314950146707198571216855787158653050819140516963449105125246072114816279923877531517459976284313582807594453521233265694872029812919825762589171381112443425207385893364389385069063441360215047130720914181677817651412435892044523443574810438569045411309712951920962826989897677807023435197901930375574195312467245032604388766122957540983653978181740932010159832589658105008990170057191300971834070185890553807840454073744455846693790845986403198134660338971430269257947795477780522737554417164187303702331814940989419134437915871954749838917690153432530217506822359229675131583418504691049737604731121739236457225400279494679122941671839046591147760985790078077101498247125770584830424272703291753303278035368460004369832697807853455928833890000447428306248331656140637984713870474583392628476677412225228161189802641915860285464400296253364184960860092300296792548277749574256484027923145413646270998616390985646302874161851608666085006539223352454018515149462258049993845696481025819484634747320196466303333009185518939687984169447039468651442613819450051019106555633184536894649445397485911446904938070762165453351930203381012733044912678825206084320143049856153611480966718733221119728537526945783636462555059866461987894211076266941695667188407292012137909459447151724612570344704824650812105724069438404212621746984196178984222708336107052460387330262063471082486341624445734458020399581848117737410211161693976013921461562676343774082792127145090637539297286014909331658663063454553317524216327786800600097942060327516557896839782852711471410111968991068492563859915620243379795317756345650146499816123995812426375410482479506611260922888385508249234189445437843458731808863616654660482376631962807129411150026017448831447009968236827667677270171730967635612988098308099741035918992928018576596708602650383556133594533564971794123931880021663369444602180434167414210917900728849662896378523766300288204455946777381766359565493771214336339315191559921938007663882699776016337909740747072544316330406355110011035730528327187285853864293223370860525299977854372696690433449030111621524293084093245268480436870317855027265777756347660657064202916558178096069572609754640224831446420781527836616109766031049385936978029316022875820070317804988107138897848915852242087081193104779829532592565159806235981209996492521070684169070809448401122801324374437462862664325582594961069261017924370290804335273808584768330959439299926713798121866871293226077246523978557752729505882411670071182390629861569223529988050543935928906172614028344800715736101871057521658607209565212999458000636315957979862455557524602571849543194040164842016149113280506244476507165617605164312810813581601449985904741780334311855063681381146399494882919139318577106448259604836962118296833427323785211472323746458078498468691247655389403236042123444426807366773986877024549927395288842292785951991933501204136064477903174399341390817803035424343572387119721823076493252853592228674716970565895280857129204300712038641435717478602392660888151156010812525809509873227990917785852573971420992139265677035666275483840177593207029634136257894317965834458247399711522011534170024157461306990655018154588034238943445390782322823379494222779620721897879246242003503987374804702165640245496539021518565772019219374208408348868585925847274260045033430396838009445268311888765350629318787823019706081394641381672535614902770226864406432156459059088503330316311746060946364598297750356026813105202055639481948208690542831297313253379137775019654144578432736873209515360040037640246527090935420287854867155797212464589070006728997297350162803579014973706691435302613153051204944086629362579465028644062494841537472793839842116786790551342597464709567088734732169390162764044155836161585297808319695216635727796066764381177207819098861723287388158910320111552459833768329507963711836218612411671092250506931627287091738729829704412578142684007166737799604270285552504958061596695251465703105116753820140154549583817351314156074520616087862047160368817167525587263793127776172500359310689801047010436662127340450013634162540520138788798762897377182791291604497792321924987894679260599475515201548169204896831467534830219794855951616257019356091613294902104211885965905356233568932711694599738299634331539336632236726100983864537827506379015937420592373240040101766224230981245238611275457086532823184157697681777891783416377279609933723393311949059190727052577377902702501759083252322978785511609251521562183486140159467294113537715586342828023506167970422457462999565295132147258080208333527190625743265739723904635082113363788873590926344792456976292426181830158551899933989972894339293910286939055628601620234014017804461472415371289655497670478032676868612993262455659727665873613672423391639098729966341154237311422846978453294236826912586537752755088794205162746914792659509754230826891320307968764906498006044147055745921811698156164663646862552094454333304220612161182760562558253811756668923635209318889254265924598924864376130433058162279319681356351244641809374297110116789899223804088197627788603025545596009830559696418616777418055454428761543712673548125737930325408727094884999445054468299708807944493593190143979555796464021730302158232024293850051785238833023236618011698846537131148057066369902873883289012740454206284421074454441738579232345536920618179940724684509491446116958441992181427005188323415425430685205320491926074052876932941433004910694931677223501584557194859670429253858747852809259759662361048470020390536862571191978277881112070283042041429925814608218451735167969479592234947923612635783439775924540388142193128057346765891003400829563239563184151217430971293229930300238654093356124160728118690101487135471489458753003706972379496133223235445929971500177211147069713080587771139586925665263699123518743637765656654564508089192704712284939436849650699834407426700741902123424939488425679537994586577070877713247962145676682905034357466421804877681715476168340784108710285116736566731348476737460474882508563792853292436398092516246417059255591795836466676301290534780300734462972052168967482390251793296441247910228326610258568025683725402628576846489141284412501321134086390827073880783162869289710351621503285527234400791379108724363125986438350566837963126445911148031928346275737676253628284011506958914375143975455677050083629186152956341696055536456365486012499809615176731288114294054257542320424645681735376641273601102540993072956541042454469912714432643440863807765173166143051973766518433866292103909599354441002412739428817977080481416238933427903283547996293784460525083268850276962896621176397485393010909493938673700432355080884104312199460805186755357066152338169096892626935579038348671846264597735105081587551287728213664375813192068870102908775710690308005895791434008109655341623331354968151600804404936427601054194462795433774035396188240222966271595530836436510069519665998012555249819083579816738463777601688249350191090329576507138746756204154371384413917808199751295611067817146492910337842770552537699389540201709581680683376023526693414582735677338633646704131313477292344536568653440255723623773028001649156292262932218811098434818737749090289522383321579597502717324512090769202151811473895598092682677349587660037813156996337645318650522722495004822505384274060724640640941729853955117663101561557866982669694853847712057107385924569412914885009003819492223849915074636436870582576526853339344590023684336364381096429285469354203725084354557806868208549795797618784284901873367090407145415336641868030056454856652637142643693142787153867716805808754485737806058628360828207233512780830979295391826238435069710278480484598583353724446545629295512150990938703030664905973306565342678221830712058851329840264093894449306873680692840524417477106182249614134380808994688890856321577989177465019626797923815161226117289402742604466082651719381363884289620911200584007370812478178000443793359354579849114106625277730142397663139788755746961651201931279225459567498028458245959035704834602553781190429648852699078274355585343289307958891180783415198564453590428374431947202963763468886917550886095635093186163810228494708698325900001373136250769852785904229932772490727559306031220426777111556985776189055100831560815108140625509707986621136235340925132419022892193085510580026823833270233865761498526840426132465132720066034761623116554058001612919380928781680805087846275525410195492030257999275198425081041555461734273911252157849248484118131292825899574559111873143687105937524003049246444355446713683409896095642961946058900578136024500531900630378030370392412001789531858822710938074121651903561474547437067469061504383763413575516675480368378979530536682849797129179220135211932816072390992271755041316072367450965944915694093868953382705334728385119693822825747339223512674033243722488694372713073883273481780580158016503582306351320768626359841927575658116469766984303596075766730780656533174102670074714585287177160309205543674996147975388878442818676762174603449908244618999920142565644398527462839670284634471582394603692020648103964859873906202729443227383606808236628515495867283478211183991996918909747414387407136888095140918548792310059893279318958363346034147351009221711633901410271370556161111398177224080901528485376118997377505297492092936109312908719897442462234761423417722206308513358286225113410316971457199727106593980008594580314473241728430843511279231563205563590346896244996798514226573276210367255103664904434108577573316582603966396448190356335418838417174328975117900503059415514682134465446907576527782473738619589428028675429406169923388929256175097057150787216310879272297923576241917908176821433611474162358521584872793561227410371039588897586807934032846393713868789862996208163196892077706127454524978056823201280540925751688786810773992912940146273319535783215395223191587396717607104099915407581057812409267682183420138665503328310429594960462998542012043227417737677721407956088999799981377960405416971871578210593345976611049290248811526626078352958251616732750630613609001462679933238391005013799047196579470296356335665011911312536723866415239721554650868592049144717390203494634796042855775992170439600845465419989885909604342712010195921413865327945593792027230558129932891669582404355198069051041696462708227971181791384806561948258506427956724054300329740740628974020326239648747223091096811197046556444085174427168530811458778561105361448459012762164430963099029233787305697465339414025930941540294103285001140081555056843571465812205111805620480363243254561173364595182232544920449629056702915397104257309347317739490294445150322969242300622103833954545671705884640405939240432309286957840365000621136510662921740284367531069183298729787950530071478925262785561249471985067036209835247088117693492225141008243480547523144252966584044763072997080380999819335967918345732250146046367200743410034301854041053486504151827728959589980371367180213134203357878755647575523181311722448987855446395811723945916780154326463630517206926503918385190882926393341308374517012239738442848581088606305074726091574467764954743898240719053535043525027167807198309250524173363316176334274175904994515497537525980632975556541919904375756410354289160710844092291344488686419623313646072653670185482505154414410760440675994181023752345986957950970199415427933223819921886701811517174259988657101760185170203618901017996479805605526990816657212349218246790257915412997899718187812679055830139506692398599180265108419827576455358701058970518986991455609904756346829925359873961079443003796863249651139307076300271584697495777045658459102593547027818225853862021000575637319496916686317407706176832399951450676549009746614420154727303857506295886339318037221023382141546029733050806063994515492242186288521752429179961476813990777577071591035803780547348397282298411973693364169899402428387116145365953336092015734268584334723054781024412098306713337281197683057446648534321266450358146966618361284340607397267605159477783379609123306839230729945377954264273292419390552310792234507366455601887195978219044754562779262896051548039711218682422132828147172447994948232842610612612663295435173430980556465489576210568316926562589236614945661528931222127776524707184549291003646622540454650586491141459509535220306460707935755327886498473323392037318845319282746373450617498833195839553627264881194080839058403727437425096468396335069656925068477078340981465712650122857805863684406691833012369000500756962976546669713756998534836465727211310616820136550197345027901623283748949326944216313265139517935759987070450238321231064663625024441455689640474957966564690583422349754352831986952417976754322759802432705312571185776470637498874991987386048443032225668464130246680957985496923336550203335827331007396867218123045827483824810525100805683583271421451770504214902897006385128763516722990026928182315993680632704222340641193483322556876548749188976938516340512245952625814378062872269053167821305932826454936097393689276502400227034641066009925846503168686373084761028875965123044132822565048148968710936895843903968020651289121445712055727743096330048330876833388641803547088848624707297530410507831660632152979045191342293961285408494798114785235096882279018386080500555234270102196778768911132029485514995611889737159357034141556026104212987611677759698511084532038437624518436896116310050137811480782567743325467810106029862692650549013837978504990867831900610662336820110247308564150534760623690037297911326864828033227042783367754131570236571379288637498837208940214785471012072945080643280471960340404430647286030878031205408055213475703715927095112956142159643963719351926972866180609577147716784040470520270617353977300575020439121523019022196307404807310007918443686145527253603998275239218222151821344252171843122115802161166407806142502845762220189150098618556933475204155394012322875898926341478618831063773948813838690095152369036238620960315673251951305583445178046231992508053355541835293447298624564776746394404888747129606439968365895206385794394367909057938411941482037008220342488503166808225395422235460831848970467717841385658955432450379911670667600075895923493293827461506092365278505784191979036749425545533146858254008273403950362270962999852041404024993299195425757188326175325831270845799376666847573902892110241545046687733561597386186849333538878609535127461657990062881918922257330908912694339209734925277458433632894305318389181031820163366273338378576809301337418294060511820648118484808114424952938191251043302678846726177746026102324269375076456884288485117678983009964014387732152867025648086351197888094483930621877859849475794731278688467373821209407017028765607221607193026196298881256487485798747047725181897584507378125762769075059509460422530908685404593584280745772900029927945228854940609513334544781058192093749028809140684441003173331266866170046124051894148567085147043746946501152414613994387720770747687929156406047142484455817375671934893990050618154209108015184639534369304857650379565630708386160617297133959240389575393316062954747292041091165011870378436599065160974654103581410236376412755365375693161724984892810955154026119195876216125862455528432333265773422942294818980114612119191561037174355179461496074862517192561326235639009823426886393577383509327665653671153014918099782686435075364012532958570894954507549134194306111308070168949850197979616452170325021341549438095291517136651732789613549223558956045769582544965619552518402599053599813045173593941771967529740560265277121906266247732613064812416952543927862732347168949632759336059831967445865554176011633058114053554425546531624703722182478417558845189637264598738169775726257025429677602243535028481636676285843862448723381454079612421089211025560983170980343029111371700824294785391736705021868870247688136064987018241001013282215311207002886758653059449396167553414994544674167828924785693732119567889480326307343688749384086085664777943506326464611333268131576787018052745972500993152923718902520561111699549840783950193361131754126193552028022768021764406430000596226427830334331034878511571934374955662240116910863166254900152244950195552288993145179818897399798568155030132425422648002590252549645053779511003018814022012533665443635387901861085927286571531707205891189239551852808932555567086138358376476489895700953265043742529610682316694082227763904133647806142916042661013642903531691350365375745603748620020487034288162486970703349312801098468911434972843447637268684636179390229323888196213876723832211156654704663842194951495646456894156014533195976597606681740017041634110293299408333290545308429299927245444449637827194708203538594721021025578119422538458403727112724307268874066347347906803297756132830451225987527152343169978936688161527232778781322608149592299960074902645643156356725159646431561285297966524376662360049432982916364531238474865550260838105620088366785283246845899318825288138318149427741905786371915497832128089878362754731132862390493439711656036825025353982896131160068186840699359133099231111726254092376748547099884316502640610333882039610688378173137546104162081376966147725490317931154624320141289255055775120754283355279205505827641237549308319302185209524615513572407823807339046901861513827680697853516808774329063300797285527826517983542634424771984551331834807890258542017591088914651699846521832309106743913472250557218305081597949238472234419076671048072376113417223083451673162631532934440425712327097370780001731915822553240958383153224536277689796974410010409961454240574823411623692608862345683270169153585595215102727938597124474626408369487975028145609207239776152576937719784970965878218095134800496077615160473220507624425481539474992004092918265200969944225020733592394511342601200683240656737647873931257745758009481415327127967563210434621216217435621514609995871548636288992939035164154193374002064366726297250101995604684366966524333653154609913153441256141043028742128370963149407578463411835489816640305840948471408655799291146566203642376931781766020948301928367694586014003790592278559142695212530445096753524227858288426276464255962307216239560174428018080121649409463297504978285393511648575112601525114986226479130974419036714792008650093242593256578877466472445627307665958511573280734482614272997976096213512406761098412761414514008578954916863238726609859894345097004378730837043935808750190689921839053622442882570949313765297864911380731013947172770277528839872756203383398102979085879240911140011692365875245485504195432808818736684049633506692466813843494609050151735240208731737134770621741208207541083496817316648854398718037497359625057116351902491333185628141469029023282230442226650371547457349118030142225338488148229760688918365320739410853479421377673131814216372200644886090021482037240352771713571886191258146737502273259768767234064619431008273870226736226685888974570064621173760421564357698604883189244564825206418830733145744012780884495847318236990960465403308509458151895828525630663955413178437017165859912110135329799810096096083910595842551704502072701851764247850981188042380257598184725664152015807213451550157738059255915302202645708220541117112526765183560380140159333078433558437522729335570267397008654285238871336621105213569651987746894233662353204780112325247219651257226015735660923506101910860605390611149471869181738895457766489630882801338900537156621868078483409843532717160764807042035250782192945911587490301566561245251038665110261491689187845669068564703186064325408013897289318796669190648055051596997838790869063260853927866536627445485021903844901146331970899855448875215729695975364173487617546016816764513061686165013303279602471785423705353949592569359930085255497900544054883302786395503927405856490589437839299805734805294182852697798122436873439861305707374319182272239555915222957998472843800610006755014670661593272770015082882639769024343608666141874646241975764793452141317065450121761508781537122371144194153593486021472634313128416322900119408649202385848125948774836703197419598900105104550030289507382111698978886134012301869355162028616135978623147842207022160569488261197336956398857192497153338798164069071910895701355633714196921787975309084082053990624839075753754257455831483238268532428293532691899434816313185789059256760291094062220198117087205406881727049497282896620839372631976619154605256312653199016273183768614177425980965975657295882797780456329704377673809244137100895682292951954662903185942335624450457138383160816421960796727576580750758324126851942792375861418501015815949243272771850220695871353860613512490756097231947878327379279424259527090060089031914417350312045081755039725661658000174914677575519854815422015946358543710658383631912777478630389616569425317540891211374851216037237138454734026831864619342272277346921588931339813381226878751626692999917622659424794807568904028538112992362850937427854389087155903799655740724098531157200157194886051681098997144859813433492147437661805304900107151533794732839969769331639025480549521665020134375060891113273281587239693538173298363269470633085002077230686061766284423442733632819560015814912478758626656071654439311218858442802652825473689164862303610034634241951955767634487800455087745898594500606256474777667322763432051713278962396666831710897950590690261026133861094428133452396332872107908391814182812314753469066138823825525838384612421621476854428657959582418524532555583765533075442499839604213075790280568597956742673004356837729989744377520764557500225041342292293167979160250535969515337958218855403786421240879969879545104546492451137389355730670835137695962783587989828373657391238487594349674205216029561487506405741419453549397862631592366163722192502908328522040278907575792717930558326836640187413531331825759481933525657814641460199550763636067837206961141911592740962487228298184357558778697730746352737555873164172972283416543130364123748424794444058729458716295638630898759695562983825731170509403392622436901630346837694606982585839319501713746819453594027419493458169908728811733721196917782470292873405251494851674918278231541211810721166488313167245129075598981170584896045372520388762301534536506752752512283369854762592173671086480779467306556536391855234269928585797646645067993965099704885728010231225576592017337563828600604362228315078521255313722107671827388861104569573949285521589597136504351002110967889506225780996147315443652373936314371453837843683027455365893388956506279111397378967534230775081634268421750803068859571245699543059136768156103271192095221802418646003506980901114009065567345320166493400549384272600206130129547187842617552645026769335784303218064213410997908690656937840895098091395739021319849322925767409907536056417349170427226245935564901811450052054645281658895297148191573593897754336393741758283236465290524025283938925834448927349064799650843859077266972897139648624492520068781280673562504658747548813105470971828933956250544513005109105363966178457538956977975163694735929565917062046556088736027680311012016830852984916888420781650125655044626314954376149100535177744694814161814452226192648229016749630092584725227433918640963318708401946545684918332454944907345626721974678404635543881872092788256160744594750349782742376220563614396441835975225006675039893784331846083641135175456054520707294312796013377866307638243961045881432269695459949497802414139790471077303292449021289260894241088015024013675677591460775713861271982101843794219993054437673820990944696855365864279023651000547787511078217608056554670760592021158373198844996853752392596440312786504882866257626193424766382792013029528944480170785138076935792799046663607061747285817408869503272628577775797822798577449219223606448636946112038076243510814599633182817296865038980727100129506415730888564260079389032710114310774873112703104356017598716289550324116295554669525601556137454900250411693528392527210985089187735969012330491453020693420242096177988303768825497594496437979143501409918962657952697306373509020223945120261540513288158304400746626071195664185580587636470777679872478286259835950504034479054026719234104707392140495085150849804489625694256640748204093519737354619403015288296270361453008021445259017544185086119763851477261186385626730043141230237243256007969161265954385188367762391564715691486675448965852419089476964959985492292613331196136620032578569392013707294194735368373590596935871199913685003516304073869189126040806544018700373741072020295698276641974121410775923352082558316680634891294171488754986427253773757013443457019854748718859313237083860418858062356700469045643356044109800201221483988574020980411256226518369502660062688902390768102657086323598367330810903834285217286506452357592309994929711540030732262723772097321114684525548041612521465675202366011372910651855595057964794461239481232570680822890906009590130779978763591011888697430302524167547968954607952075177283204039227314716586582986013841673976861353509244583964725908562235777760807841119616119049715293400876189650490112334748208740705824301689357424001539514437051364130970069866537986720376571820813725060406042894315708679599518695776170623879326177324691759977244495609030828637497713703579330835145297419327528163027250087001914933740026276013678009760577533377028491433676471254557585426575489461844623766629050485793954911882313109384723866709893397632524355996888339054268879856197936342169529715212469924662689415216388296324922575081599199030564837020182843111532926702704090147814209518418577105326196608512974393916996889615748913508132579741198105144635813546591429788172442780481183567600581829786613711573850746281195745137950546097945425436179261598538744686336122032833623180069696353949638978319200682458068849737249546474666085588419212661711831205335141131724509774978077818124523589126414792371916372603957217640704480202844895561622939429877224127244887051615832852501656770206932901317730323945402700358934291259445307731355710207048031880625163357388275589037258266704593041696897631022706642263871835948359968580682278065469051867961465594412603144425915861645484932652729309858218230937553540596822889473307834071546772080928552510703424587537531441478235409453993691291070378218717846922495322757171488481441828841206173695983008638069470866712033784776269018870980976436263465795505908352521636268028285351843359445232187000930769174626974928874543966048998498915996208107076296065876305110887092815946087377842437294161200854897100525395629076332748299407595502138138394706154761255433251240795082120657354615054495962123049717638381817039096395395952683461571944551810488383843684677832922517810139164498186756630986908678945845579246570905718014390315221942351947290426185375876590005995127743274696561484619292016409013487751099406927001280413853577513514115968671325301486067025902655569805516409688917343572779923680145636040713866379518719524528380335812903176341226872438660646277640923373378132999982026674301952582380219300670695658882626146778467052482367470325378255118398795316617804474967022306678695100594336653004966718567098359008009614791249568147279078337169522153603138289920142164229179893609338353067046007808896923339774617255092273528689681646285834435025201253328159820024095095677489978659565472121566910862682165238199463770461418513656216410586090035394359564750524552461346546893671062343030820461966879983292458889190796615680083131274432287422354988577691246273674782802787737683480214346464478697242438745446460667011054914725875645680671818532032459935492280079793140980826143235624716073681818357330413098099022270007249284372937408451409557926675004641544262092857998926733433141670604006231115833591519188633623991688242848107253661827526494437661595962953948838632277752926012678767254484784255329696116634448908545216460535719065785575725648891298838272346602264148965924315847562364292823796512145653056967269248242194576781404137859585585922049876401844604450620956860491775091329037571330445813479668886019016108572879962208622662723025263690256964743403435861274422560776992804122342518637102334996631123651014617551669033887499041315386088990762399483448865313497379245624397778283263938615629607391915592181842765776032533437533449954410647383202277929394478894639100737143660209434386668760628923907541151360583213424188413990057178815616900371999258370468223177464306731533853530842813155039547502128457481198881319368674921783415973758024172590512851213705162125198362089772025406957637763055865280181724435995448715973923101772224881914461863032747058585751581240179431559984798336853695759814834225834017100023345655355426557226952498066368563084181205197122309298109225738766431336866476455751395420104486849878492452862614390168546127583394560829239192716268574005356792049963314608298667193748000998636400196476943809274307190883650462292968056315900170845397590858036434435550590036441459675807444462882339900130333203949593203020061599193381309475556391576690891404867535545721658950293182429571709280918680293359765398497213067844481769383991492098005829614917585916131433519765418933934921769081130934283090850610147228954242309479025344379369307531616950698739607455309662316207633218926954206923411625985536830543631560884100432084607509351481679803706886480959947467766816890874712639224595250214412877140013689442185996818619074979142356966841059777768786412176301477480877340027712553212656234308102222019292103808590977013403797096414114270820715999915066635602511759354721064526479412114426525967913728514078425027280118224255282711117643412437400453248968119861597161181116587960590554008062369368881940841627120305933892154185698351631118322619649912521915469314310872361469337576319294716986995131847003356226382489480430540399551329932843791821870923344283811607374541826360285564733746094327111718524878628364440980718689377982267443442111439932502013299783138578690314236510752512469184359955073124324696235707024382675797522644427750742220697246847644405444299692837906227503704709188512619816264369623622052585259419888992490496035813147463762579520833527709514770276992691933134126415283676705725042174010338893180747605722687756135303289748951377598356540284868219196655142182556224290169242001436318112439419257810515348051213410948166768750944968646189180955037896269231780706886463956068770199339172321563688969166130747502129745822921201310767383215689151151186673060045193486639214780847633019708312116233519105047653348319754886202063491743370802546069066773305018302933731455529520309800682283222032504687658764927225133508769014557861800230444341388318542471349492108951483939901355390737969042332120875044507883979546348191513130862240275267038612461368718215740455368679062401383717333022000883624567764539673219782161493076605680648154136793364647441773998867508277393622180354122386033326233334748516984368055549289399435026932249620078425917753100891512940284055949750247262955952316180270519290789229602158689447068097996629876131621349390646416833261112759846833675197662866191546008952610912363606185902901748131923903887551602152516667299062035255786523602981077507381114606302741505381979699248242191594501930957690086589756459039885363403711915472790947558237454206141954076209541246076529815015727262880758505518024030288965169510115726212912941692420405766402958764066298007834060546048908738488483608966711887742731417970641408109121385252187659269419981114176856648097999087314164795965679301578873701008950917175565388560846403822966765146952960369598335323185931037330005953179536655106375672271881539524461470626525945316407356243507918695355950209220593452342441474738554922848683635552635880605681291246195372210280804932450261345649361423884251216226539886200070581447750166274245491351303891393516877208348506292162174943486781359413165543413181587673178705674107086067126451738811300635846403630834101635765321065191260662155067158589579264006404290491851610748181208660610399365280724596964418259415471848002414689481388590819931704259799449941391551490249787285565086957154966863063779288207789013270422639686964116114784038348886739811014931297074511783313774245074775647006397955137288891193434177998663551620246160383918381517014184165603138068730451259979547744646128423219392524584517744009281485193450606336295194441094420073520646502366792040174932391611783819815758847591981016590923422227491417235868307842028580404305357277059909776951807126973048199722537442574425408014266461468962439668530107319198801896068070078890183634631201193187164991130601707738683213514621116312442087740475827737176557301446340457495183225268702884402254403172254470760809873101943238575847941141609359426104556774008772479200199494337576562438634810124690359831429452594668377475778287712780878153882686652245293175059588004450062707914587339908958075806992502732250985053383766917495925930813592568950675007918259144771970487554738213986308266849129401562654518642429700076933258277964839676824346002467276323241380186429474996310516265064153252111805203865253237444477164277462811945083006962727178701583029313825937846863394805144159364014937169151782465779189572667642268456304807276363186327775544745806962794866900175070539283669172326005725191197245887069830754803742931012209395073565013581047402143039177496347342397701939995978386925833384624073572712852523885721834477582719353020085046380302647693804347790424684519066821332669135122980641202125902414032870633425693922165245419916418519669478200742380321871957981723936765718429438208960266080949707058644271623082261362075557424521624713309654275457547853744926963134399515911047950330987458349108014556710704097902879327199566116053595532783203842724393193332348638601951171093516051196118395773784266027643464050206046914081515210967002038248113682091423568022463920266538839057193376061850851061855466912281871744908458147868102543882728648252238753583075045936001451051923920846014536239078687524710024748329119921672088635346627233495555183435263326871623639713097088640926234313692651979633766276806033402692696479155400713154328460039928507672448479572912279668429518170521486078825701177403059961942915417841967495574202472419581078301074773183864151563963999805089318250598097232419740055349097514266148182423826639703753899040636258496843937410449770867725445484896710538837366008374287919083872696171670353607031559924435240637140411434754692325261280468894425719262330287361265415730373697563990267971663344481037140281469993457736852453934808776173203560189568001967769937281712523364088032934682695063747095289954394493495195424717985284087917710816501826811728042845577549954008139031659221436972771992143294757012760921890635432306877571165880665436165635002048319210204946221626111521057484505257864953278226449519711148684550220445168269220501838141185835785525592044236538873797741681567433579887141785254959086660938571433990945369305672907844596532880886609627492874370559813541971910238949463169819584280610326195600053496656055625490832517645436339525057086031540203657013931225964415657039670395391060067414921662337210241740789218705642035121228759205679036489461745408389746852218861891978252500637422457964459851424168233622317538168949938469910526090232238396566530101861820989328191114449337172183922691807776542021512132137882045022037323960733657191241322149166721008778447106051865163271128032803178268803272677723615097149102079823908200592941357553307294269481037189002048090690182893753795965351416599792788843872363520120240751026975301620550629534022139014456253015157435840713842140736733944744029928487419417630690102914977110913444917919490154560079517320338978603931284689010298349858077803589878114586076588703659396439920812181383725923501186369557807135393653936830595465978633712967835723283880415038613362235108113202219180232231536495605213440442087176415990921739294867771174111088051715932732134616788509531113807944632894413752230506662349041355251626919651673627650832601466228206229452413031817861886885693227064247695975830324347736835017469659634312432785799703359047930232207681397925998240649853906691098597055223592833286158146805747060012578647263796478221894061241899766599114314709099766805466315994028627588318422661135646999864817286257924305249712466735276631888841894126650700459000412673310451666570397976513661265951763372209834795858603968991066702488644064430228832780461865809857348838170798903258730445833751544804248481250444939852162478017370586154693614436658845770242281207718606995135115411651830006196939238168838776942458772503525792039901984907095664985994196346791792700472503848837425396019015821117920966322503156271664467699608121063869624094694767595421804071991704999040500948257573604423205885744001109650903477159968565723326569963461431492606261504177685047317293264139200990057827412797362646727552697238417382236347961419306531718105710763973818080935250208424105345532740016889759753235379012772529102315319034790233488515338267778701003747533899208888723691663404458606596080370795590001266540708951279639081977181678091894195337282507198843301861987175014121438309165254682146650305638807185292166685568067828944504312266745066328639794206708232072575312264266220734598355705682811295192217106407302490473335747776813877815554152631313344369941163673987051712279089825282206772503585262312104392015599495143014336187844849476476009374314820101442760832542222614062217011117938966915319194350753596045992982634119756797207659847056224775357574358749015739850661738040959975359771710564860036759082515116110797442898652262936223051968566746644685727053325525715946280579698521575878227088945189752696255547222534606765155985051840565643531132877340043491224310477386029253683515347765355763245798649718500348324261444178362841853841671023516183106618966389437634264100622761650516905812372794122100284181283795268393755733436473068233844247327815354350123560376980088860058314757516184520729800640410862789725752925398127980580477345154469193859914829364531713633062448269077094384369919994694182331854278698660120318092887725740794434418026663675606896199014805410600937322107049527201894566158888796179912882382664431425191357269693986310108026389452371369709666135470784356350636444544257907331770671256902347881238420731088025865958659994827455278682985656603587021931711349262544473277649845450472663038718019846523489415890317238808131766692165278453700575881919231524679382230232561841159877708630338773212330328414096179366003989061994751454891781640114514177479506963722561117038684263104285612021563896940238941540996705775527117919739788019411687234932825856109115871718007142680746681144559091730855189316510932595043400813897987378122571036426548348713224854855627613830511923978481277497342291963053415093887943591865333097544549542970598480292044410719175381755245541230378281588222055583141492691214440877502716854756749180116666552675168130228170179262379251337004780279332897834084434001204150878055038364068564728329419261939541136217326780247824551341531946096092833255153740432715252813755256472120044047783685930112383273610397801078403131805445102315046050210091602267247313174101714890288466679245327981381780724615246490708663763655841995645243592225432452930351235142522519642083711570172348386956369275391457613659556255719895933953045250174239182708042758185977809209669567334359309163798063506569932081636066869975323410210102907332478366675990902835846348241760409816318160096299158363924252722310721985700628944824331957609416532830332527029766337217099252601744905665439608107766168462901047985505978208414663458517305807291271376328668953196564755004655452085374265045925122075208793610880579381322372062871006712106898367170343723783468133033302840619577396908836765671591029066767552608114317256278186629914509005194564051284094315761312182073886090458696757144218347487812046856546947512640335815975068318253797376454698927073779868629084407301543330988386936492580467668214761155420335043395713819183365312493951329812491109328966372381673152585769923407970550314233621221217429131268995129432277832418486025531133869860220846626674817851313025099996081038812930750308986760037519225280795446525798636709344754220829621615047956506039959325017011331842172861495673191017723648033012520154843993400834524140587408175991004744564122014951937105281417817414849193316627339817925689515317362761088535525394962983815696937087005438978895325658728625788516044068036510722285539891199541435879302247091993505236655206761794702043087470429288615955553360388653976421811001437587762891539494990583161415121394563263071915320216028568787758103678857209488521655100476061865484566519895995245198558748817872300116621523385610047474971436584004423704278705888865894886028613967942370664458589513803594094978669914403439830591727939530243187074908141763267803403075678284715809719874891273761312638238898687182265186956123329529027721062081476070672971093557369970927198556495832821764264368680432975021882614659356666776575021161127421039533923403610216957185106754177176594213382776955855867865760769246228435288230745054879624357680827611179569169476956799954916848529447974097451454957666571224244167102037372354926222492707039199878122056925679445557325375872555259199820673574940068128096103434196050790732193240712515649825401919265906586987128440874961114866302935385624417236988021508621872340254607504721107247945955881197103138377161949979217183870020592841459837803284263685225497196669134052091913782777959574157587239296080150292186388710495401799664411960891912547137362096700894958105116396168522023646115442953328805454990583646397849140545395472720600563067675692755615266865517350838026696075888978502149892954119819204396879488522503132967341370067564554965211116281190426227077545754703103173350957772108933319380419148976355508965175733805209373383851680737998770363232024350907339079938597255379525762713703758908923242141960752395718617518759726094991666298362955417060239089941082426417413343692132506717755716122067389835118628426857942201624098873647330237371083151408066303387081329325716098998121607892906449797561113309486025423041953179709242405790597628999231468610979960627477321230758751807478353541183774992220177672411101354108775997888378875918845467983055732183577084889214001338805646777992712851033914895798313754859109842319341553864795397940337047331965891730817203623059728019376312180842773978490095299233245795730700869044020079702165206787811966382742781555208350347368587187319909060860788438314072732373990437874627155210409112221200545358818082745713969096891564157723448259824750528044835364028621852258035576446814561930650197655177172970212522611974964692007689255949713200971313823470780347951523842932448517157422460909482184415656631930125978352638302588728897312771579883373222991138608774586551911677728007735014584011917820060772360877750865496649070470844329789217343415223833360800981763596855387114292556706281229686559071453385699496874638715550401097102693599335983026551774803411080571634881221601101945478684291361595873980741938883562628042024693078292670379323379804300321638511631802730033565069276726310185431507916248512678962283625348184481369196499355713395678611587464236975572552877146434645979399719616858045125176063872143088728867733295443726624917967065619143248012653543484714240786403324098679502287572625623195046285684006957604620382306466977853572994733799101881105578807679610679631035996955305086447921301081207154311911891632274921684818217978711944822197161289594853869345212140713499790121626415037198036839820867482109948623606237782822164155557641268881006837278611807933188967395440979414316009947294570561351820947587013602055818292602902425503830758414860384035353892565745921162223907047565889427710362029920571563808044113547420829014454329717972850289278270216239766662704113130263303024834288801425361922155785317453230960327318919308509528254269100415984302916435514125794439937859496994685264969707623631143014591236881871694186096638758351174185419221983609459108583956953291774332183440331851891194747104112847190915092171860967009659791157584733558294485731215260037467515685201612780446561199593639407290447391343234502425068502043554747170781166233324921780755304726038624523884858607826913530687158439027572500134771280310597619965997582826105477147450486896346923187126390134369416802110042065034745611245810983694090096309467323512925318795147110841751193789717302224923563286726988689934888089336603596338323866674937790706931688045153077152956888908791432299482285389989575636560119930478317771494970421531042490137061503022663939107513918056045970545931529445477013826608634013092251984025260918110646444986345318404588665416723989913254224785976432189745445964439612616359487895495483254666404027420442555475447556890733198995235831127076087224536183348904212841561353377275859284746460688869806368278038982632418477755891374986988756693981534219114357066076635424665471190859607809458726146152706238551361627282107835972238741777258340063109605176368755502072662381473362816253846527753614780612413496120595193394267226124581101042773081786568336347044345665350516961331220128585986472289088583695871728620521817844645154420878160891289356581680909349942110906218379266564933094628653885004718178228876542761600462703511225313840670308902205578637952792270329822046914659682401772591740922311563481757917896983006816011087534586196966774150016330689111366803867377799436407470167718988972504040754219666218842949632782038193685118215776464870345091168323989555264970206682659129738362870529153913004674512252002336567717206683710433318612225472880761079707952347715470110732413791650028920700781726491924423010036704854120760720565744357051228364161636320904895024674936201607455143488768432106443007590762495212643065008064760939271481058264494748392938685376862635441159095884439872846422052980313063743663652324313426243650936295358652628557571260563913065065177768956192859313705252651367279422577566846184323443724003547612163142345223094661883192397382616584130930253807174156848728137073579503506207738261444374849064054131133585950400247133233722496556524057754650611145974427588324146909109480361827988533738182470933353693260587980344622404628214137512563949761041492268922239893658791214931746298193156257665540296205939238961904430727564820186736662807067732168615618261288174436697230379642183430708679614107540559393504242573966099681999991076616780108491725597313040300971669373668782530191846697374616007626082894855426640926609265766949307032732086176336329872427401469745436231983996742609459700399035543102259342724596354599056934466956558439478281507652424449717348026568063357351304538158701707326887952501443610985205514123997880329571357426540130875314635891361706199661090149911737934600701301207370341794664150421274809569964188239412454224917678179124300622712104874046886942394385753368319267162317180508462422688697302760685244396218228196080911832218183980112997300000487616680306973167813740807726294639268286581588702629843159834306955827221354299740533825207839939757030608088420316505450115935797244728493971010670699908865726746123246060808478586555686329692876450398414638003996577969207214580388057275178401031020566261832177013177299159790598274774162995126131459022040409316241985448423793909167204096683333887084537383116534123428588106735523196959626229544230767657395224267091999027892486144636581521549277029345647060478916407921091152205320493050549297944770521224166304782769643470939272963534508514971341467834788035464744683385787044193902546766602708154548953482873160691981442928111192100737123637367311287105626245712287105033404684102144536597254109046088866856453943346798165181371696545143927113487757838556741509980342431040374916967273332907627545778743661378046177369344444254381869697267162719204371787342423546078148730594058620927469431854868732951466489921260229392975147454268944462910288090081494292622357371688314723176473107585503454771389865208696670085667248241071689914034531441721842277786896150502426287194104336656352478962416724593181511140824736808950658076453905411901308435441163195185833208759094218908221516018363729016108327120524590195875519330428747769129242640482492391561523160858074386398492099533621116590214341110268890788539042010791579533424599253939003111572935269425632271808638733778922504602174191678180379116800063365219200869177685472714546598095647554875368960526487424477931472168412917222024696713506553146390380644334504170078074511872283129965208371525038786203712568694462501806751738887418376322015195254042120720345275780347555962616915590847629087085330729394445119913481782693667158789004849768409847929072139171098922216835591878318115514929831539280139050103635651409384634516889932679767156416999648885596370827200388821112235673882166582993787578829813269894258834317384152774153170064835847895102786640659852689609116464939024642420522444112615608228663149812131670755682396328680530974524855883750675933400626683183910552888025336921907305538374890577577067970627013286214797629212834853907379475266964214530370870521909459459849776267889473472867334162127431435565477235270394162505247701202430569302357126827382224083655868375623090338538529412437258303924843732249198642369501625080191349712644171904330761843646488376477456266825535289241563690234434256311596080454397421193725149762740179931428482735768288687229909532024193410935422365066824774339431627706560556942263030568535018507426962274264825293428991085471966334173138361249219195680889690254077871561696120454364657842811170134104780221195117308806310262927743112762994630999150256635609585737451237569891675921979370119384181520222763954087771808870782583461639073553081891003866950934730553199505795364369950847996403166820460670708160367515951297665744026311656939697169465848745945504299182962818337576443892707448035502845479317917829492192608824044681784048837952250413100745784127378087754536763998622501761546854224427435003060251383920495431131936086238832699254790502238873050768602904538856006680944564078824910304156126435447381808001499890936013644305717418652844898483291903782683587971026457755160522516880627906965852590347513755148789856156723240526214741087546253345239757106038872142952749060489265362574681336670994486052714947809617889374847475836872417416270426055649321136505770140594881747795951645916423071058192379823436256928379990099077199824111719400344958715186912731251417379178227180719941166055828841966624735862755698556978307780014855058154385865669895882796296185898557851666865898947655206973903836386594930756010425517607113887305143789030749168710793891390305133916243087329169122210513969054919783562024198628219689088492807347303590639799353492647074664359309293786693090112257573798594889148256198685666929319315159047947760273248942132718944013866889319739205242573965302653979883826925092446263480519386431160457195970735776587277936804152961539104370951383399428594418326552422176460776675469334658269969171319150533847318368370196131779553876821101180045860285475749087541644815878288012516905207792335467745664175999316414405888695530449894976932396404327488408260462349827775887033770211554173990994443312513171469130008851859960771449677087697121687430290430958853278810833630281273199253766795619365110043421356666114119267274463345007458687322390079286207048755931521696615333050145443725766178924405260818049965196055675631875762914274721890085960013848635921241257781235131096802443827687079419819032783558590786722818351170734002842203391705907713278176756809917591506857369624794120760676775142024798732112439137604774171255502838504674248634509771973974536829047473257426926006714820907777282069513209510622064999720123432391819856296755868983787515317238143953237946781547084801057285847287539184645281345096367774793673764891356248965505452181840419166212324400670158004251952408861288805811704235011845095416107755799512381509994666288957424114715941908708336190647483722064969231065033011080695881124854053416093124358462558695737311898816044976059796438577654950395590386091764057735069880912627674339636627117687580101042998789863356092790350304220504436199597865788557769639672407234635366471377206242388920130170626620726983709746782725051376185974982308645279056383061154703581175484269304256726086725703527388090446866795154305138604018853565468838969644529926628908315121805408188897880985284110683968296531231261143565260963267481041658794754950952249046132781992577668696143049671397028052789007644520292843946917443755016102407586084141174627906903956098097293511576064444250433444647797939790672789696357856726972573158910926999445627839293829116933154494769937027772745075404784968047236374527761498118170963320474762425044920035034817698919228271597036865949048795789612350229762342025349649510022094745433974701040928452675673857478198214746934354127785463518001243273611255058805541626667513360424885978864869283450715331435935892799130482715630622187439121396681403929541598033404167022588056727449652186205621628277418023564888382396311163016645392998320614833555902674978452007095781246307486238193794488518182247348602146251381639470597992306080306980188872810725080861237654449069192315635960737299385115876566498970713373949459955384914021458035443968011152723068006056705937353548507358406803649273310343862301179299295023830764821799952059747686238554217317226360750427621235310460200637930684854676515047508030313767991046408667765014604013580822153886850753174798643197113849937927169556834089728899402907316953444939030295393383004220422779522210360862269828128334119897451035049108917096125778192571172756431274157900226441588453611062944937038737803401994388895876496889033317435038331880025749870554327742863614304908078494745993878046759381713613324114957789349681336859728691351306637786237001625340786665282892784252327270211945806013906561957658546864098933091601751098940289247706277919433805983871857237164869747145450003771850455650634116973580554474247610422709739911996331995121876325222108396810391108807534148446717654647989284033357157044568532974458718846712165992106099155889577225092879765464396892944560427939440950868903433339630927643946717325837199268188593955075080305695530810813870048232488936541219635799953829646164656436635952258826908172697303374715499709833599210412711186385847362292592603990350219139333979320396044722690747539046208489981120024218809266086678996637842809099004093725642011013266012646046261355598860578003663834924208579912512810101470465794856479359285717466022125282513829297026232622606011663693251624464466697059364830732733609312939254348776964047208514271968315335461888596214781367554605636749794328057679458385754209590098742074865672357171005707755813768999498366508700035740392978490381978673719192485338636919989933563542636829841738849418662291359497498500165346370114123051744506773609329322617691995197940821647901254847598465916063819755381831981455942060201356702267909200179153291703402562039305640463356998037689715647363870765487279507479003285022224296261561501103998926979980547571500223667510572492468246621022479101562418688809258279907925324172937118559676822305494450002515148046586142269720072009012455366487075869807415580708179212507150275667896310040843985543168797861933407498750801358405899726781061095976200180129960391554188787308928268639655670104274622191145393667738762801949229251163873897715056606767237692769258071859032753668132476816732971988299512501096843458079513435757269113264020961281762522606072033161391180813915714754278261645915437844549698167116280969775665229769212502438658441596665112471877972543872124950903972531566000471943619034196966232557941620958501030256506659275553052482699423559630127220421633230541415368195863585827907736983301127752928842574514799371625896499974554058040182227393080355659240330878030488804283470486943607327986799024679414803379999042974880205103840005847544248425205407685204797127320279884103762759013326965344702794411034541026402427981996548293467730968250856173663339818417125884010958878133638110536853786914814409971838408051293473708764365412573257552506881924486637539116311357336101961970599430176198534970080905908496246403478840006652139979526631345979875268941644036260776542971187000692305908286220251626438891697910366253281374927108745930678400049765040888694503374160213318762455910174818852809643839754118537634071778697118426767575518760873238092239171414685659453330409485589062939149696864847283808532164648394266749601863801199668706196804482243175019106964595118353344611201412399272363696167369230703202698580397740252341130097162020219641509980923791265619352174314268448076202080366077135455238521697322765317308116598984763452536670974071410994107305171896044495155104310774958436750683744883980194150575165345114773408562088210168340870715544936283789527603942163708318337112940728934909954424702824721327295742065072298729099350197180623631878922511791869682967691199843187828175134779685180864576213560889454973760672709954023194654860745717138540272595973290194882122396930139919617967936090677543524628350575171601757597437537245078497894282850473768205861678449356143306530755148088923828195479193667540322588416077003823240437893458935908609233675255753300065927734648505752215516411405420060617306087786132086892826298567713873470870163819061472616230442442202431173005235557548399221339660036424511358054976240093359452720291794200520821398918751147640493561709985232812461646258929161155502881063118191418172239748750474940412503909752366628607081470965014739525298705610147253468576245705949805303967387040096747990510198988514793746667535206685715650400074704924721402521342850682475449355219006124209173840825591044691606638303352935591617783181159539706250878121690357390185375323682062105292293923921174198956827283116016749040045478821731968899307572742434102900070066932016218481215199753158739814646354892699244353100498526167408018186894740177624835931304555368896206402771246368800779464052473887408382950915454055555853586107721795323738262760915437306348856696165636199555440847232915881773077007639035118184716721743242004341709520057183275238092370762562977918741041587696250514376898478446103439886684919529245310202699765955006483769628062914899458226061806746853469984283042497333644935801402481541520980425069441981111803623288225017452499027344459612000477923723909142099724025718616520272967685314585037455417732160664172781206401373382282408840423868814253776195905294062800875175473650426511004614856644433136104037770429843177113534648993383547680859263835954362045224626316026373787468892235702885887275551032396030009098773933077796993025241145839687987834781895787635969048599729330092270040175216113727437765661232072239601761411005577569968703309865580532185475826184806104778986813581603479281688108215235044518975260583149956677847146366534665240013755111831064569039979792813249416577148585188352354499477010141009894154859992421815307189966626316276978594260113168021279915774038149915781121336459442455901211145198055506710593117586244914101462795560655554080367755354271520568654971215327270327978124259407109646842240251298799481753665541378666949496717561495655927276154802841082059135274940727243689557255509947046237255307373427610723873241686506021286771986831058490418401001102000888683552157458593251528858578775057122680370471733303241758376590579815396679394477489929728643508802810226268959220291961389706376096007217768348834994023691556193856679486612956105207600622649346368215601722030251006009086986407069513685559112266257392823590460375068985459291598985166756620643414106895477009641335204616830963623200545997292847392911025547900254926697796295597157800977776481242250602488019733393091030231612142104675661170602947788214947785451420200064442844397250889424774978562362416660612531433554968745916682268424096833163171295407574153449111336550021349158384394911674432231020428714207333040475577501578914706151156047763204621321908558567098909345339827494124139677938392590183018281130226300402789727657432989030963965582863269378933983722268115292615775781598037261524722480694074532742270506301140820475358725640934134615280419460095071173549812596677389427265106977233121033442542131808656906364661517595094998592019744463952406849941458487753582814744860419026853035248272786236051111023763138980609651280783784982413855545784725857597517569407761863778685785346179351214301831694369383337990608897585835595465922857797256758570277945348483537095635759752349610272691267867789658837507810734703844578677347964236169918649447881477989057287585940160972249376480230535322838779939339123591318978747056437723888840534162619121263304009534435273678520870285302684616762635622987905562093836838083372139911485503662025676135421451102651035100747342575588330468381813499153361913379222353163465712046054002087847854371456279123437570743879616115257485716804297608574421732806975355514375278789847366939186505593327382548949543224190455122533795481821908961868046987184948653017438356698211812484759372437255746370386097907883904488782741299682945579110850744129277725055029466097917121872659798193766621375432671927960094613799737824575086887602525235873031892463916315562729133820356087455527820321871954212477238365960083730464573204412013608270891136011313315615933636415833471978187412333252012539260519181338610768895750356935149632847664645663782568619692808514760276851946545966596175614786170378796295293850847728758957771055255969557841852287400123047865316133502916360210513214592251377545554200442366482181129569976863894466211718723117474488070916033509269150851475166315142600230765968900041666908624945423607770610737590859181167499415725185226904697911196552300988322725696305160291113864160156543371018814523482079431252301260732190128769224165719037483463032804668558635649589976791865496177891792090090935393087537590564110024964332499718403903668727717742453176781114589056025885750813163757715786229935163220201551909251778367451362566024236891826584806209889883920819336323153584168546640255157208462950188934107427785836731494734513448997095172167723325698171441522297594893481066007069376314762072851349282835012407822662834208954279145226231280823074528226335031732303212855377640717933334345482175887882472596830578653429574909372465953409976770640237673056039112965672752924218140384304721434503469586568169348022778313073526420555105595728170487297457352080313471094831688650045350463765810113969913778291305811710968658223171041492853264291293187683742851638645386817157065099020740407587357631731417173559104456876969416142910323005652669525295685617005483792953163025689661511851523482828656432938867851360516509919603990495968923815718370538034399677792341038567889327054001231324899737306954043845816847245389037943000271530739597643075944221091077998942771702595743021635282164894281951329440233079305701016573885018610583917892225082422842569700508926916343497287782071441169473542167073223557627223293147497370520357421864571542370469987682107697382743300528304603109850806992549493719376090183058862017716215261943846889267158913965571371808030543599649497583797227595015896676776598856995606506919473269972493397777750169326263767742995175059382134243595525813798644755934609761071341688295541810748216016398168733089189190232380453365043755272041754489246424425456586628541662099488171782464122869107219849614933492929742297357893577117863333046190089140350190729276845533923677103253168267261631968139086508471098622463119965728316047120704313813430991831259871929292150251618166425619613490667627076572460265604144942331084888951206878685118503417198818401639457591783286473650421524597525397836894851471092564835673149355360576974566709219832464241650908892395120247968483048987301684581859562659570131219052222691110112136291814477128557248828344433861757636517581378106178614401540180860907253650074160272589992009954141595174234823524181793210742818281653756259636729897576899511434039614476237022019406246252696586681732223993574772592817888080964552725605475397027560025750990811154281106586516144280512534231165435490279936616346936405837011849133302953704234080708816770093090495947543518193354222044502196937762511233280709652711113094299005425052520695287349252116014345666755789913170936028544908222882359082084487338537720079094019056777998283466223807481101039334508260500896700977688742915164204891975840712971248339049144875434141999676056429783514275089010144073461767761504701039546896079044173019196045192802337700089022903207962601137072230540416065013927540064307143747728199611177302596995878099612343647214299283875682957966854136072089125813268570347877657625774793993651973342307701064222108739759685583671261146740555865552361055452469048813221810774138250869088457448845437890832570337612567555690826294891660355875702798430761060613968736977745975617259874222346239740892765687633494255359889604650255221616439124272196397261134233964152675624263799952233470378628955222480580614564254533776002507900089454952887503378738777396957363448294876099762144051776045551957844952292562494535249173039833210754514225945423770247767801360494810327379534441827142498330806997484771989523598056687196966934993045120616221835170864985109267948287644500411050973996570543887805173369092928156953433157569634667611651433898648725680714851272884078367482838645580893491374649550325861198485720722401676365781657015876971949661279156150065905001138749629906693859602255967943867613064361744294698952824467035029792187102244043018686237136631137648013602460999859883853719070837464812220705401115530872534351187530032845284619585526025628107376635710562010198958180842628791864823924041969053304690981627274907948810507241191933556754716787319860475134665424548381516375312721534074284801160649192969222103220810845245929007139995891283558535308994730212795138996367554223877805668699923636392010412927455190713767822985059634730124014651551225094837957159114076306939622896253027492490814520969389079489361722005412642156936837188032748564586192105356855735202799689323441838361617144841777814668431217359704928184854412405700612980526301844502632810877022640590400703016660081556567921604874390888483695258454548218081545886645710675465098555913173618782788251609737538218829642879992444868914559833475042806566846251601687409704653774382236799765979881369177494509033422350111030408795619982002563837873526770942949238418004129197449584880308683073009145612917204630781092235070846482102447791048270899074313180632634219019899407798135951527083301103772027691567825269900686294517789264650418614277268079324807412436961800653533349812154780682537831587927011974459626171454359610318247674698975103522690395888890915452745922155928561426111066047983101769742163379034134027212651576017943985005686704517433160012889461175684323442095608698479717390321647319835500041029426725823628912034661884327887553570159840551416719607601431727592049632696831952555281157251738939957847054260931053157966901681345113205964852012431952000829225876657659429771469619252185926819270547706500047429958156881546277249741471243758607900151848279889626554619011710857403931170182233895824831987502856927127052824416713809693421780106762033376781659871834683141641497219336529841302407823416652901896672576900900040089682115176542849581219474738488295577050704357139480452642635457655720789417014036774554428687835481615407712256224872585823730011180490141848343040438034839632318034837492284059793089010121423409952930502326514793923633049723513486728278152115751733942958957010885895942351883763877159093538902211390366106697189371130879480975139314715662011912155758950021057835415555991728919808184760495544547556608182110179645343511408438641910848525395848515338474788697946315343587134812730205028901680830652764521783825417247325084184650775487417746778733522627096435364552965435906598092410801163324677098204908724583594078369922876016702524080555123996123293467452898363297088318355504288309841370442033210134583349036183844929623871695517058479587571760075750655215973524806495198460635661439012880572957977128466494510934569935625393682558998237832653464127785956482030770699536644816115003827563223883277418628297791717586541403852995712648457716503195009802564165570752650849451401421906526469505544733622953076800877004215821600849476954139263661871176242459704002727628354441059978920829546757291230234706506388616496514819709659271692806661856536755852523966422688036380914017175117600546221061675121019260122357675824312792391390215997677478607607581202233323838601950257593253256219397986094867975830226403298439708203443582234405153607341525928752675876930604109262912591311549002004677154375022242892516410492423984990867839613215499493651538045764017729706536839207865840937807015974089083536691254964502175922432488518534189162719543091520476248448145440959553954236142650552613645170062790670509316886904310361804767620628357174038436365934693317618681274843610423166612149670532049966277128227348709583640238495554416303360477073663488958334298720830413251646317480391702844882508315807052060791415520644092763406129828983538079124717509288922170876563964034740407227300927739812991894356865779401350016057445642267724326013336412200516914225461467065069374816231964241287173894783707364593833174221692873284000642190069363970672111939802231880407471475875062323704147841293686374191080135871923465170475033064421986273323034164098654485944380618049382065134738759770870636994176429566105650208853343296793023302380057065872002150583707152293138362117647217062193446938262493449452461905236455561778420010055934577420824369800584254056907107964876242805888095799532935834767218507045081390569607812996596563387176873578525869280332294845323555258915915960357708834057608939982745912493639641520375993970319027366677710418960656917839449342883181410252729254869380436715146646843135251725755689895853281087037990365532350222548802723833617682093110494892415915602011194756119525723014563519024388154073760333480408346880288559005684172537312070442479650861605799719282877722910324014887482281127543067591638553174614201583202397128931641001622303096180394079288780138582598553086740078096879005439547040865879895830031399961810023446250655528075000434848435344223000051605236819011205782669487341415240501850625867288498075628277653810031088631348375678021743333293818105446078461716040825726703251346703102864290527362095711132177691246761415450169338088156654008334665636163439005956188074574442528149300556187099826624972956180036468842061637785575428095275546555360587417516461745473308508886385584614086455973404419964367051457228380963570207557398962298607988055176737491453667951375167689146878578381129135411658351435778303106539102157307239831163779189850114663530015556268063460624799837437779561014322061624982427244894955125751044823765443874210157173494654284669230631973430486545953975572562286432019569454017979032736790251313011556092333268137335046205803129837680528827419966165885288675604842961653666818179131498075221613834946477620716435136038078961655993372219854319454611937822938426703849608323677652912194042436675904953698184398107384823548559624325207825198735700624871888550989333165170879770539732754779544956012535348711080684570339563542439753562312786714787881274808595708777348612216403619543683785363133949133593319109286884221483197648355422055730247869989258811851383182332848600082250762602136171120685058208565242718590706653878092449051094449250699592742905314644048024276794106951197375130745244967788657187206360521472854464155895466742734005878312098516538160473842931960090769979332006849882704242859206491174796802921974912762817277909291444094299481169323602545185202800364810804250698643924789596146630040859828509677445865087190736045424027053032912370621566509877006397643580547697896702513271958069564091581019276366424777134143532481175806942209376592634397468200036901344837669803073969650967497971048393910217021381645540266663470404598195492196337603274883268227050866400333661478557878359751945107713060691250404964780904571499009619517423360789583760758395752351132622930417762057388431228652970363285435062386299153440515833893198525821308471935074592639456647826057935705575927190842911294166831194985646514418312076466973820463015828346567547138006895122913567050904679589799780399612120915272137617798236300771589950110427170952586983570665738070224100954648124639642161914966366689369047473304966382564703311804881561687958046367727730768198187185758377737860539354104900294237136549735256643530410139622573364810813894779278247280140804282077516202185386850080524793565259138804711434005363835911742636384889622374462806198508187224837865334960456808132556045771373395004558378938044340534534457845532130807876766779692823897109829737548504777182667349850853057180185888316000259358211335122264018816523124558553590840662787070438672427077138638581348625298472900219191371347234990172739353562416069444483940193382548794884216164251204845551601220620532951635649615909250958790078675445945406149479131746612712320279613916834528223808931696986322293729746529761278370439581614389087448861810670797868476162254237880936259301780090411208920570239997994581840145004505218103184057314875808695933270272160729268826294091469198578238679656906301063891580805705993627411310039091085507915969431998807516411433619148668230406912184506885806218926856986644158241894445597663371748625082260736798274864356556587030496534109497555515937270969152836525273013328896956963351476687876930757329458930935138238707093334406958770176533960065398791057151153641360535755560397221138279664857064272920049623333359354222139696990314029563194573504326353341491279965655606726068097057543485516438327274875296309121003556707299866463268105735608584835292841696478573564432593134424869719546219270321336209337085500419903585001483444945422254915760411811771536210077411369688434470043536667757652663155021001081019168710186549662746110245148421406073467704893449793168221056647187017169016188715620866797240233140180459533096780613236871180225361998954571343070867604603371565557279803928399772346164927167810238499134366603275652524305553203461157127750487444830069670883584483984144447950880256955767673809763604185744564144425407124939026306317573413286532130234067076694373454813289750957175682148530747562858119797483648186372352327252011963835754531682414664215495197359868207773256642522295158548262674841654504373616504511612223247789574361235236469611234394888172127266935238363673856667360710391732207983597078670553734923009566019386855240593439450560772253074299719634733726121820010052250199707968685297523836683449982674094286889423204249559190372357171879959641845625098643499743622954483426132108089265677679529897461702814905557184809747835057749811099127418020928321348631976030932882839073178467677316265638269860363251432106593414882602037281220448338263796283221230484442459789985318593510598745280289882975680481944834387151175953200960419621367422079443062144796997084732749235758226685613293123379428064281901807908985038504895850874953492262829970641882326962307108518210143031476962381465328863600400628032237385464995989427601422024302525680372242875582571959535956291122636497820429362596076312759980131546339972537351031304609976459652262512887102879702839923850136243471867621464181926900015423790656765423944293343282379698141146974897203449250392917380358808421640403323467311656767644137562949437391115097665545422085087496453816464233575138844037021263507623378916164162683101860269840762268677631617080617966996233704250022359705359965735155784622340185218180099467336163271055159703364986273758209256239287911052378278249014899542596511755101651757989513488842862726744609321357536485985736641223930409179173619815772718225840213456664703637989684260481336431159619711382916008162629770455152597398992085057877017223680009600109644867887287637941623132568890895530318865551453981129484688134364417112691892723473397572413836883506606536760383019039386387565851120928714330230740018365442652165212938014199941247503327408123867514948719305449229528192797493185410361502071044793084806706156999789437662710363240630299797726142221417209082905968488921528299005551858990400084939634597577341573599201278291042876042021622541234318510228498018718383013256751597856049101776117678819585759625384612830657262860932541400700383761244153566348872235083339420422350051214392671168405032886846622918155046456322050822456984156245732588854959443941529454371770665323062269144020031576075945005681246104133448060329648043835125436991999687290952543829188306957943953046105355456319928336832768445166573702236460723796568092590131951088859323391410807525554297137652292550762140414509964788961953762376441211538832805105626333238508044801749184975205655502769673554809834915185485269438617033151020769322820487823789692986996324917532156996531935769558706794600316666457577817057003759008452572012227772044046245201240338903936269017815911284449025149165550280629962341252982527853385109007358509914122553196456333177817273975674631810983934487687008663885814907854511571548108408200151169500990631244278429952023889862207371228474647055821517020683517918890591785608454061951209452235475964498967910246590320781143298617432410096160514801189237831349218043223378360277887819794363215128572185532112537712946986305445405388094927503654695666344664528660972739651824787303991591155297097478538284410458281130627549183883507682628468843037538862403102418626095763838693653942482066163754554082937264630434964722579793122247718751328295079868052991507459684752317685472497348962401843928480962591467025550241005867359476411952055966020158117720526280677047512550814357417518771142334147501595928860014760245253266046658193524897396770546974297851680404846441807766833826422997870358906774766563006036273552023464162318632221672343562288284933984642315801001520045389349486278924846477924019645338465973763140932786221405450040431774404367622172255436638861811186431295070268170675275725335814178497436250065062355420295084773051964211352515318571115149744395853785652316117898243378399792695192479614564648152881537508437753313207738486563097422627803671708478180131544334303390141436650740007301292244659203202274364983040943122951494309033944371898940245322414452480857753982112272311992482431911549080169285887587817110847944988098715538215944639894865330214920517904089956377945276295918129758723954157974132383764262288706120736836997975879873468099447703326224252002033944256791068373747573206233488556475126457626336085959337666016343263255339792100541059947469498823016470739230447475123346113678585195844790671604050912634824198109131207134944863247214708527938763816930007803281212434638624084852082704638887575823166543207240629813600980605728355414262050183381514889104047534216160293747374351878226484870183311911221409187592038257669807054454049611507926876132318185282870226595135345288706336018990936998867372378868986775317042062857070820314296603741048247651029430367743320172429352824357488326920493457656773749326154158514593366695346839624123204893771070000814743914995284258202004895467345616117553563172879250045740275489417565494020873638605849412631984966452890159796828498990313284385802130747093211338044346477868684368269273949023653327788893434201122929902422021595225935167356783958880727795384910811072854846433841961645190678807147612660057069337129864416565442359213477583821046046153891532023620619833015685949451053658018577222090835501930042110021626227694977074188167212122170735667266578047868041723363163983078090104947751084341828229264734368760843563585207075201648161648791616133471224032900955513177739377993651479985286649757533454561553126206941112427417814753305694506850426901740088656195700981480693377899355398054048583133778348284660774020405690968939875933346483483499783076816638632977218312464399456576779143106212448253064046268395828982671283334095804197277481601422433981849059189906358696058167920904721829609256900292145964599358110226545000682043188122199988857326404051604570961276914529831568661202065016443578308927057249269776219158580567551018235246463908228838690604240940895331724025626775703424619815823914128271951261082830108353388222990157273888281953761965933062385365544289616272137496767834637939427030689396948424948263927521062299729703137887202644159429679937703307535825508927705354526394753458046662922058058099159325473237918219694784052660706780371773437178732049911246423161028497480748572695819997416712895221659008767208202468671188974263453525778552631257498444050992904425038121681145488833413567429679229242122011675819345815578431736260952274842548035467503630991384107946403868030084208569487471003812908723809655736328680003955725419243687935801999022048938132755727975766588476139779128925132251219534348971874987001298322536220754926265606648880354136029657400214571954265846383026430907134716367771051785043063321971022905149653093157437330915303386169879279875540578417321586363018206973881479741388606777340911998337322528788742956107040837309281367445341879954271602704725582283619481226643800389467307388643641781442762650285459902233945834976046745989971129553856910895708321866214673552059304476412764353655396590383290683770400947056337758211402834606573373206980316968029857188948206969634831281721041055687735517293961757847834491979171975523469175364574223310326610396000475219379945279612264771485766160289562830271402829317807284324105495652832137173970073807516522690875635268313572930051616626350158003767832062338016017536625199665706978155524182861839062043279920257718170427203274404180990271021188741028593248707155882334712649247274296351822458720464504918282764399519342225149370786589154342773238412851014911559671557927095568192737353665926135923813370402068138004139654681600777902952615141534130544823957301723079802460638941096419641704309840926792762168935507704178929836208091673315317683165673725027762674632082788523091824323565654855651021771027074028256220177697454217973896928815621240134702417848636348571619865972359370125513062515101691374221846932369417074629321156984451031264897204619749437710552601955473584973383688250621256878320246412192568585619996569735382861241087800612426623374895158577270661088087141690908403648387040110011824412139133638303493198914765864739772886504780317407106404736252940387534529842918889596562152062900737144675996581941499120620494805813205662729787096438392939619181427265764869057484785380707516627566341067080547144347598911014907077323925101861369283250794510870749144128062263656090629833286541464318723603073138682880173899490172065099725974724010705553443119801096216615032143127413466617088504581523918095948683915465498329289671949676565815123541797387695627425270178622444019543104700207094548647129106813041711629022911403250923601085363961771647916206424567246532556115983356493259435611646892942550125369764145588673815723099859764795265578311539372319947381425371903440538453224327608398751371854157091502111519001712016507943395866493084453426861056828297739286945292205862192519221052899093034196594328374892747858273103990496173982109055028784857927715714981853586577579485563644792694866502199720118386230195831402138391952354915704102870193959336661680023996256723555387857857994453026962880293620302177571645816186143997663750117047498191373341731890291355692770240910629480546122100074744792891173058691817629699591841094849281211959718039928642082825573418091615005081418189190804424104959491092804746652398362100460790055084173531301455117178728205375664810654979209749791247626395734646285007228790942627976587210038913341936381222607786585113917198027872638988444364119130459060197663896250778264538530899164488442599241148496765921818641233251668877501714571069123203036495540000161622657261184671435344519575120924007555689170100497894925837502148317711136234809297838373599824026876440058843417129793793913278266813537715113630841369102526921773827748779745090823219836288161795830915816713270728487796900948161675932086018423805575350302441835838577182895508346280225682021296449238600982363311967679849618858246925776506586731456110390823037637496340986764532970396582364421610207999191400192225327403559685653746768906757081035943494759275079615795079347392301238275374185707003592785410034887466601621954427101669260764491755619073425470911807058857843568489164636791324044766944666970973465129995301014063552628603366861857308547878807734783744105986504276017700885242648491472760627862589479426947716125600888046638082769372284170435967451989241727049054148652847121459701416214210651082276183639911266714337465973642245158207776094169307923627555064963981868007127188710927302635418591207973681713550593706703397374064965713138640887232157858344977296953278455472875840040378105196671544183508571323042535832098372310790942296355280811765570454231436264799228755790823698666672505849411786858169478024570409447848553375410299182124600800838344970753464505742027148090434222561085297208306497148406355670534850385208598787573232558988304494713147466245913830283295274815242557055990289843175232157712729442609367424460652762262154203723537116559849620423913402666739349612097521721343802420091188803124154805095392810506209180569793632188911306808953804546267927219952873055522870711267840954639793066467274377327693858340039253557130729820620895326888191524900625262397523046812831743717407373100059831633097999358378488042092989940216198866872784677836567355679212373434439066858644495866537226052336288577023988026604478113379574965818582516860683614569118201394267812813897637329269093103948327574420768531718477484144471640201313823368589933086230695251163735831731693403094553119020893828231546940157197108386002610874503706741822434437828816485493312066182366153537799754170041280775470952406637277188239542583532690489789508054784644695469416551715035671436203005013984168663168330706172129867829714285579121657502535328098955370607853656396945349298979690778204618909208752352798205335388640223022050441450859448988853936496480276538779075605415983127431095873335895346448670060181325488362612694718020614136907113613902523142056470993308844003566990835052442793781985618924888422830237404748327331914736210572508288447508921833295047753641002020669711171468951535300492651277767903511740960581711749269131183012086534473210140442840097360395689959420240122483838241068946565021912894077026566934465099992161132381172205597989788754068947912447122106433037714352890942033797800438565606609102055874401015831494550463598950477412455110022061956240795704344986001104413177637901531914470678995312911923208016037655498758974838982292426374150628990889890808176475379796786222406586968368411113818695001533587072412010608291674872088955859580213106871478572622408320457553182935676757564797627015168970745281784500720215289148255770268909809471317673057260321278855803553492871982942963851011762879047965078880989341904936644192384719027066840373310476311385752433123370334056406616393683567199989398177141247323463030695565673910406483629501495710173587645405619301588603140565498299148086461718503375909168628852259025186272283440150644712083593879253484769434828799173955709285399368040276242771770786247113710239518212373732521824165712310871744659643751969243641147347420685213902950934348283673453505108492621014884498828946470223532652280304462053248712026972797686578254998116305958802732493769518784656462709082315216357097903710122244676921853732346129669341523098765166540032641621502664947746502943940857197454837242389591290303301595604771186621816594947885537648425217917014514817708996187114865172911827434792603440920995689884751869649812043646525123038011180970784906599457017882361705822955828737931344164976123444945079437745272243851852390198718515083596284101547216071563991402744764285422123770794897977270542035089766925981567481774935519387337074608221616887322026438528089966389663994370960790725648616937425700262445008883133078017875949164091732948068887458636173930884415847148327527292931846203911952533218664240603074475468337991349883204664117205177316626023566353742714269139608907039178574629951687781625578468633537243078383805775390708236257840542205969099821781153530267926640405651060262987628425298194421512202839866575297381690276736278596804313243851905287749438109265168720292483164559275181894941663159220312669117706873733078596271543688305635236739653056011599182236855100744720761721032016576050007661314648076554248716751463915246975752132492852936382834661664356497014632588599958037374117252222776573326590743245842609634504212674097979427668708429011388501173245757337513002672069729613895957137286968614808400080815508160364584676554780502954937984920795197557381898311211935663401864166678489402624592722095096283336328057355046109243145694845268889222067710622595999077847363131430072266968686788568365711721985625500791500524538760861833923736216409139203215930345250259961749458202839204791190733603944610053191218511493893018304311112575403693811956414009823648301691744593305196005435127343174353027800100765092343542564728655804697095173464616252347650414209792204416422027204543188371282637037335407675629754543619905289594737121503481718449622418162797084283143377205535588681711808697972219956243140390609391909192112811198673634484733212022396442831698164111306484585992431776997696488083116398564980705252692268520783078635067920121905467209242705853013790592974740516001451829135086241212103452988915688191930693937354006960632868248923717334669556164598205062554969422085543443849338988241678643793215663645831174164722518732954482286486250680905436333293576204627952742175741414233191329995819307431260552889599153335060410179196412251838439916499984513837816532959084502306606265370510423621706882708865403744278128540685756460992615470050985995701183928501061680090918990283669523771591215948516128653793736497743503587983544873004166622562937160387694224234093175745433664608482438952075685314961452286027829887374881068644825029304059442887336401991171507260190652841456013521341426439206857954939591815833165052259135216828623322653730169313951210906575199793703184009139477809464773822566418028601234642234300436884114597231422087435265336362270954907565841066024612747793176031305042251617646187621188793181608426365876094061928003600086681899409508619581136225085040387829895443182440351238086773171843753792861628700502057640038684763638609924364865371651618381912297795945051724804920942243246460893616745064268705633793585975015179350479004392993500165955885355641730749498236822959437865701494102455692102835569171883282218507593461888830378773552187855287782961558636955539996269682685224148480402798784956183559085337942377396270301600739365193529636638330019910091452647304284443276594356022924540990405308567899633383783413676817022185594237315987422523388120877142531210167899777707135774854269141963214733015621151181490959767591414666271539252933099669210146469102007091574243772957202591778133214110166038705417066480356416229119826196190135730480831800965064056553310171269500353362867736705303505322428918552276085431968777063381906995009472478110136850395371455065202221317792150413970036091411002243011615748418290704974976804640806443792707095755854742013377085535201581172424100098578565030795699568376805555875860428098538085132800728537305117792515223055712208537516826674990513494772357395431453660412767410806749140242958884478075089975056791528542043896846597070270452013692402264232250724801027219984649082205384886270707838088750532322022962037583226878913766987555900755763203893955592400213647833490394858960592718750863569580417039250231699853759354283907002876326974834155071112136493986919368586908136714124156643642171432995182517933341790560338216598082872915707811464808506782264846783686721749561483565031442239626030653594132959193189816700190176266390173790570978978911052921403816138850578689713357123274761245928851286337029441469932568017805254744013764897219227830615865127073782121338246710585820508937335303914632269736106694929856343152401650286861170612773814778331983820542014796627428632365303232177442980711880958683416375335281541165509401002776723779533145144960322523320705008240611467040552833956606877781858243941228176751113130789281348108734222180460269343220015951554525319524341748168382052719818603678156619194679430333977265070177369890065833161034200700238781079419411568913372696838842001281696163036010006861872287855189029111805205007196782780062741062412685897960132014156826234987722437587063458058409618249878958797845551006606162821883257105853281954201687671880081405920214862902324226092337862050022962610332337598973710913120495684938018154321394012411748166454300040581970715998082850430174810314530091002672641421565112277988174798428987289010801295770691660154508056860445406544444005269671938756415151098417427767497994095039452047563129224080426258267782082451639774156116900755106756796005449216687644306807767421435696973363978138483499273808118004529728015020150862744073552262771526337189103938532623667241955815912938366260670193524667381125007150622976403634627183085987811423404396070909651498117695350176825134609351611198871818753783060693933587887495835489309363337668998983093655667336207254349785764187614937147214066768917669946234412972491858559124625883150983196933421757798848272829129943667176561893245814095570016365648413831362087253048958261792656662974216531975024140982459159742001246085487835067728376793945251114472554269127235253901654126966533471787348994150870785262355295634751706333076544193822714104246534153236816461393783973726809214629366560432932445350172565508377966522119617992997637888396195938440056665955872907881484315571917406615755523939397296975544700392257061190188513807389120532615297952393897454912354685005747194057047453202591774128733992592534925460371486009046178205350886952978510882626477148089778971982847669336364003669232606160883798698067117331098021871359773106380284349970343751516085887166557346937034238465594186007454684313500898813586780309752730052704136353912685743377527623536218480952511636844517820020986389967043907400731335470865305833374145366328129592049093383830324760701210176502164695790779755993229070130446542023675352062427225776642293183305684743285726766412951547829672979976328539884191963876226181347847312023390342851919372938795683125812821237266687803214012145868501399134099230385702928330618377245594457532177975524689573405363237244402157748397274152874785387644911153798549408943705244522377889320818408023932348938526052112986474714573722432861611009821708824455775861180041100136189021433301685745636529958270855947616985424750190598225260822980560820950707368497847622117043730120026922632113596920520758589676856714004624960234221981178986075599136688581926031543931043420259311926373657157723414044705626306627494680109775423877702056804760480788078747195217177651262150526152869302882818026106607312876488762140276001879776063849548769299413734938723684215007849925719940759425866151975371436293410882322972387593377056507230844016981325407398104420426300623461230726157269510474174558322264985128986266818025545728994264987292052521661107127588677334675873281869504283975533861112016038799985240869702176286529553978918833940937550075749381119007070412833708264657276988805760809684386621276744645249887168345762407288361818333299844929886871983034000812969139945496394473262876882961566383118753122650636364033693462235873763218259609365788133294767630282414112634074175320731812104361536462173954890028044670601123949130813605525598969457573362113370118565150688608660021431978269160518121845873935505748238478088454653895709868883954954987661184843968435592417803567032845510950499595771700418372013574459216762692824285865480256047873372637574183805407282468863556405819512215974762036882603070760894836017147690902344716987428115255879466742480376663455002725861362204055991173843067324201765912378525656981574336694403762235573360023590702145267378519192954080044259133115473591941373228224995982168316252971198976700002413725930388541758306959008473608537709793408580156873308726906269543222782035056474599944912262717088175811041184029951083786279343733819361312349997301390826087372065137665764471515438043532555245140336073635849009547538288510525810279950646501653315276498501672360679953990869619676543275422310848922133332382714361159456921003822707948955268267512589756353472987589658346676176389511296233248863694761198242419826602623235829589616985531951184762445167483105321988394852902734379288657470004248389347596530250972449273233538516114012953350345926324354316323481127128070375131315653042820911484505245501612087345846756362594896393858448777908224499049393465511283976446541213027023807869928781648906392411036292883524825578083573323029101832526571159935589699108410200601439779519851052869983330367473213681670703815940832310672886347541643387370376517743989856617004782727822693984362794188157682964719385132970576308495880110680958662074468298535118661067577800340339523250544750695060496405547115282774000034473051576104389235139484790459582764774554496057681349006058429692844844614976162902907408919298784162481023213519912087258516323987066193467173201048154569932677074283664577529833867104789134830038270928471981151136117746110938134967646045205344183870483053646727245861158194929258366630600669895646712838015735377014841185875100367546685819025804552872255967958319020178950426957971852994142828790024139681397086480890231316950656425709047342322390840718752494962643022858395536475921255961651085257957430531207251522067792964481335594787637005950683681289198510969283005523146532315559876337657453954728894728178170770709947247014212387684427368363212484145461090004434242453552400639107178353378842712994623387228360033305440096863987933832538090993793088646944599111313177189458202967876007205529714336234590052022550862474792854504447249514116062771884617691215393080886149439220895824814112821775436057877664486318300732032140139477462365055271939995427376817295827124240057783200165873206196548546067923032406618462516071004644500375826117396228403357095816165390824570413769583497164843325161369553842534826996126967428560939493638732203940497748600245823325607189534353564186233154894299253387769360031549671753821875651606631409089971672796763279600501322891322737581754966053463143038350057959708111763721145135479717508613948445814861192122346048156504109850941262680015794865017376868013383055241598839762166153830313392996466575119150330491310715345792813891595823892337725718724245199949630716814146468421826792473861521407742299527175862094719031717925578630089123834434840279510655746487944857408751051408638712191571678163173902604979871419440442807679770010760643547566627197549101722545462839355896631297741742545918668786394048208195504913562797902269091504883447601910201572003406068936359105937730515839960523692219314477372359059018379043334473571476836553277083588693477718398127310474311883541791246457928131706590759077566189115312292527146779631292597991421309185972259080067491979931300206955585550484618181152483747117140418835439386210221220570727082761108567057855287887546923198432846427546583165914068680122677171384137886571108560627340161243419386911612265556502841609311882385257963254152267693472461947833093087257303602969630874546958463420566063223581985753743838812732677377671122176309642668210925674782131800372431363545485081904341787470696191888775777536997517297498294135192319789355911906675790222750842069395391914978806453342055341306708928649240537696527193468398501877402147181819205620799877748723299561885578632078518096955284829261506586419652043690396645562788293210897980316023837980513164301255656506731776802639271296716180334678812563872055996466033914461568441422582011933575578229218912228218930513770543507998844362643762467693605889251125483846042968436970410253779934123881756589504860000731976807400972853726457599171115366860043200995421883125924047802526002141512758640904142410962851964633176834059729763374739422343589815369307972340793984861668320268999164555327463818480903532064713507361026206283473839313572655533949756051237037266594047573243791360779328063352323543159705600873939963929495927310452750428331068125450825159192910194618994615745737105173463450082290993531115250834766499063216536604569316227460867310030155778439376237030381337940674888899947244174634530477537150023787231356950240585940554039101137336333916298970526520467295228167478424558192795992383535374532613917648795141899629608586020415603927132630668484252458772634342217468402365522533456459916798096013289891966622206205131017434924715822918562542458783820399135522698093391481105271086541799849635745306142388775227426270658989068604072014091584519937882048226847942237791355743276665065105346073010492406954682617901560671512378462090522327939271305355258846096813944013781509535545949203152708854255186492312860059291448665505173529267904182262337362782331301686652296353857259011555454825543498917312125025693176096580081472695761587034114412786297091735956066646000538678143461366436741552836502587413398398221248297947566280586965977636736253624167867384530456046849255283944369999337744099901961785678299246313035549830969729876827071644975319080557882485155392593037816397385572700397177446532435103943324294293844590368689540910722978895859445049517098332823955449108583191513957709758012459824667952933728916754110973461023235363171236848032289267522934016023168381976121391925140358695703064090443073740533547699452218350560017894850260215261754537569283300419112032492572976602835061656916604304854637465023755936518406882394287857057288067264751109672219319827162265823431879330762676893857082723315411065431183210689358512861906696033699794696955985683830916129449314158007794957548073827508129945193627781758184229684774492135317561031915279244651356255846390966133775360798532282915315298772590757242558242266856423669325936710576241485399716475766974786119459651531406773392499186837429112706599638893739622201270935733909631310892397927828479532167184991686207159549285524630474936490693886553983617280570388465642573862213443402903715018646705939280633703624020666529740490150142231885937950601404539739195068154841769010845836961844110596936702815915555890787090398403197210349889836004011013539596866697074300170477205852298324851893059210585712477097324512633249497921196372529491166067732249886400690946461287362047132166911787536945916048600710056429463238663804053978833140141318325594031750322967029846746447027201522813246829963798448669697541335620669464003925572816875341153254018941369909506066550023010971935994062654628803092701176368232578214664175949409002887869234204402590293726990722366993896382130267566337959538599484455063307832994003008922595073651525923367860671330452549321716209639878069043373415115969302492741402871631966319030483919403011682847631713470164699152828137849382399598748201609924150543530890844553355336324195136809143259173657621408948227124299657425652530129479969425892452344306389545520295233024441965424625723157795149809425306967056398279400467882415760412673851043994695734661088933975355960706615232795512623130506111923863632307347392288996741587385878468822629652096796530370069156073063313077199979469795821101126237030892857268573979618197878772249391824987274045964911785232315874650954929082027481701686542280384858954587638889611559716755420067969733059678616009459311256187179505596034336294781584823654056066416174670815197408797702235773014099660054231401696239509681042791334447678367112358132755970437694824681386722497692281346862481862141400553433404126050335219531947969537083910566038004912269466025535676287322640839519877847304429107513429326106565546274089965472266699371648837523687502877089540495425826508719969341517173548268797109222116227871935643529775839719941327479300680775831761546758942747364460305513014878118474076833573383871160654844888875352222958407049635092110686485316577153353768924311982540213712888423248644862368832415118132949038433925537109995384808304091042039621969868679651512866883255454562005230746853046874250573790949914496702515964285926859279228251564325078697347865294647565886871459781252220341335405788868014918259091563089347283929495572768139278775771466771889888644494577646076282140675030499599093691575732875468161505312281944626291824038692302813220970480266708840934181704571008753000657035582987387367824990473404440831360196742856615759405947425655673084697392365478696097565224795601057001435737655856795068867979069457880391804623406989746129526656080981887820059056171472534109680295521809533668258787973712405011739525637396374078145261594554916461155893732529302197772039726556351212257548913918595033399881590929525110033891083475491094417349472731152182556534911763160390802595090883085496435369745113823983036765140078253493284408480508780020362348866107028660711538895704244055807046834092826589950048283609940714719293543431084765198075623368391979078141897015303610142575023262503376949434498045345717241681061874612676503081337631415979051307449690765077608049329276716480701059689529443561589464546240047728511439951446581061576198933649315477684363661406534066112454652652204660306022338258374510801134084322093563080546486865800087761123692870500709141038585982865419976724085976583952416887343846623338286001705496222202043840237472140578111869409303838556538186759248768389509726499988960371100341520793943071931755136282350944826166927455949762328148333156747028882396689050137597623077593128615318719390289223839945286712563629803798324993407710192710912752986890575422743947883371520127808585581524444941635992788798480319264058584764633451872917344278746061662030542399120713603708446668674949493616595764676500885395024053814057977120754825895964971201781942014352569861269929259993092588328273326245919194133560768758236508534527082677264644548652752805621830175778907570394275087967392122611495001696859824080897910451253048934476286530826218462992535943696765787039458329982605595618877526063029957994146789965654422033945231395138911113735164154949801744676660945052779418085764332180208015259900429050960775152220610193117769968075555458294993223502229801728614039596969368682474479423955409352865298612485966169971767158695507971289189435317657056659859115225301399794306718055691500205993512786374491832160006292341950742398501907463982992758468762505619488874409532226737224922136516857120214460057567391575225340701830915333061799843620314164548237105483434833175295286739847160687627542482855295825156709567876178015022089078819908660288429338104363448227856364792876559398513026294631821172708204954597450623774391831758443178017974355617461814440280783182061224794865290067270697359244308658986039561451767554610010499837279865891286907977164176901386022921832935118591799174826612494438956314516105616243181390118961568793904760074508196251512871065976985215590626095188894384309946210644045137689720074389555608800325349054769793875256456880563712233189493190504716277770238866285661989094889873859805319331903028238063320386897672322137349647169844510379271467216250277003547474897349703547234179779146176486937873953764233261449963322707778712918022315195615923855882618572553766492163086636061340635267026153226036170526622692303046534995583316518236662468794523943829548129683062191097850105040551588082781209353991332556378123584411140547435756993635524433915098349333783516704072700722428941250129552204009004988297812137540346961569027486478075105052937785912429436917246177117616755141518622610749154175497603147335072302537993275880233894891760462686601183651435298406374569136268094601397180787538027277084590470396439066076559509297248480455016683761582932264539030981568293409850623875924772505382369445326602630757503287611018332057353566275269923345157652996956435189473628744471575030926896647651816909851814803304256472941904299978281342928852734203909593631701303046667365529653176855840457308089449529722479326500067800928577017971623230584836656444729582974784491553717215770919627216336609364678505148399551124837120984100813398327482658946144702025275264593225045060498576524450357185358341640509194288029897419739617180410150240436118871139723421271917187449998801156654544450473507298109097535686927624231953408766884612376865898685041189620772220855297780175168544344147386701161173154695174759426625769920644437187518331451738448760050982158833861535295279697151319102019306516965782831389947334376510708747044771886608242737561051581132666323827819686666670324436114681492296707430179936470203141201428106019831185314756599330956489015765452498141410504094552866894441792295404324645131140383148702025354548817191389330270413390928825236374121402376986146070095793699163237857636095071399158834481873861503205975424155637037836266102298916691968926520515479086847267351749555723173284672918665356061577092874676999173307445084519457662253435885813984674308945718772213221869109670247821206306902804679765736361480223261738914867315247113654979700705621698806108464805216241532035568235824683455972887621812866737306654012312719968500376506017756215826883990348359791749072221100835570950713072582044605577260870118860530325834628071753971452501285718104831578431239498252794234329570524045452379255319129208893953532933602217517748074203872523042065141033744401721799067583285455820527058155313992391898444677658607371359404722027206415062302891237113153162969139688204439810268645839450163330406670982307948973215903165451833652472363451735407647522414490958163492158828214903233642785864139284028713516914629246254968955646527152814771389488032054626963496049251992820638484982778899074580213130653344311136560003156178320004190505031004525614046756503615560231275510920346667526746944433980621405525421730533536357690786695746534815894483263702353538956528027105101381918396249066271181780816779277961505374697901925084756262185947507091724084969021312474751091102620067894665507324972583294788742266923462578172599050861073556198810456245608040653241666338517979741652731032595884916089604535387573073894712985837507593966147281656235183826811854002525087521508402183967170809503527761960706528592145671961986643622415909564128093342834596224057924092237349676404673796037711361079077691538788044588616001675832888771709005092839857492211415223899179868436269125334771446370939902353162212781562019131903159105014273222058654359579115501814864178543193208498125301148971462526821618991968937284262471717952730421491365041695473823607533116796083790593365707954895393768421306914388362071290736705226838973320177347889596658975764062491254201807657851044191726736538550341277243483112596287842145889779232822061533815833572421805432519386745323093815414099519687865388893641626068604036940591776668000458924005003195848077774054210102723087725579756894370048718954596819355023075070854157785127095664476460742599370926675281658382265355288826362054257058988529622672103113977557473056762628690683820564011988938924019773207654041210519746184702270108475119521539100965119921383119958062743786577553502016429490878320241711105262029940164102793104098714058406976864732738087924400806153505634122254819002888306666368629434447372412354238361122269354202808325886158611170420016061412901476949986448869455062101552321556327653422396289549790056618185475437375697923367459984733405775475747221614419157486763032456724872019870838650016228509700450003504076684128688148029907965632678611887632280942866471581322531548183040482692297979606329225026053346709362657360173084594743918088844773246122182267790932524982860262790601958629249051595448026446900276131466595755053601914841372992991323364948644085191598395657047162107873950279077753813532449267084803629538362541206337852037948240458130589198325663693982397448115965290817900490615116441926136679991139107948505892649285643014003787000637885791571268295204622002295958796539022772302738466745127717770782200602982383589729716491146462365923405958807085510743652990524774722670449520302398328995226547369288136985984426331908053169784261557500566658523308431925568000644509943962290972234869013351642614231715289079904753693351711851318266476289354034479386741371595744867026537424599165033861305769855084370476830086877761755484184712441158972300754708464725030915877086997070441652042424750737534413941836894188351894100005362990516977662355516762208406007098988936029293521130380097303252686184229956220596741326161107358591860733959326074534345804585886186252361275806589441882953514761323097160523369797985058891254102334465967320160415675295404764346905008055535928650199058327736350915391810267544981104603988394944819974726378352804749320476869445141904183424421788458999287520401767810869890803326281065279993512525250802579933357322433093696015898576810462649077726624659600475827196552755015551379352665220669216923520011179804827662643713351285617622460293745328333899389831939688504421848806529595945904807957648014110322229923544481751686770704592897969017393453042029632768857511720870936953547012415796627448837429771714077792756831423647481483496967309448176887860344844444806733110751945596362036079829292757493918513649150517314513601154967564201293695609723690894072040039087442709671837219547665266642420415662264591925128275086865604990223859420306931963271053862142207336822806737704926874109527113253131953642171891618606568833118061941008075442090062076854494486826772315308920910034284412964230973414229246194888122987381961168806199611007755304739105714929566703447168478479021071906177405350992758728556163304137942885566296723068052788230829280663844954421973153663900295594247942639538998930831985642465040335464518602758505364123170888739658296870196449118000491593193741552399545076849293268024075697216299274453107380283647205226391314663466023708037813574271187169216596537147289752383005996179590729852085031284458857916107056394895551912211846356310503200681932569333318453968446413631037871845332673101728187935235644456833355012138592997165993024818205924204494025279944301015565119790095461388315481671187186117911741873910895612757492359824028564719597601251252162599378808773909682746941850704116416798589059972908761816144708769754454547410420936391912802217759343121344731078284096081585078528182294708709781178386113752841188975666879930827215923742929377765874075638279974775356684291513234824021218857648209412572103885575220586824506199014448338711103826242588911690603712906337543627055466059912539203856157579733845000463826281919617087466379839766919434724301294537788460593713136360423342251994074502813547566509236060493326186995613013564783291218556677061445800436520675708606000536933284732605906338539895291080849709640337243723495037019095413840734823520883556963836312067604059261107602625205999234164208799946331123732924041679646159237977107231951539271970236974439138168918948165532277607040874747251981629920660026905773141560864717763685155970547610026025777876408561191636198712078155582710729663806941272703131046552040178250190359915030865264036971992339474187727140683096942395060229983159296036193057137316911729092643146115322856950890891968678078163456476570662775667263414753235433642765095791849966937655561379784963512779331152916576675801020488114234110922693503606315608639180945624571110240583826502634236657964126985573415607066207883853506113828449527512157742381430214834644520173180232882234688602587214380646791294957622339605333259734949795215788813300299207852611380235210194031964970617387911232419565107720142287817967485680916145364621724095269784485042027738589206468804150182445323904624526006067504082594919061150712198966960712395415863181046245434432844015996871902874804457512198350371758545514052261662433607954692618902416927738771195196149192100931848186292299063955883461978239488103740483099036674539548178108885461812867730985855733391063077368356575836950823249057570836676268351033433932215393949624007619625311555842444408103138242251746015416954278740822445739804718412298562902574720573597904531972038607825335331320983005929757634625132591999394013483740481491517275295853571735019486396826588836581559828276206008670249221819569399309783582884004262791771566244131309137174775899805281052660225563977153497498326014897737997876852997310741446922438719563568299745317329528542168574605143303764367472521907900081736058484700754974195401355135961043092993354443830372380792294612971962419244425305594315808223449758986355863114379566135615743648492646012679513363777821207688004659482745922222510195395826148944048990676802215879224647802296153684626270773386956161900641966396848399231071305258169753830822033318573895958975606260431502677468778002638994902031404049508973865933149884042562643150887725287132817108692481072986006296320534867573721518183595808197433290764752446614067168314254322047761707310536409828509562894768518863251124495817499761537440992702224391850736124771525165779961348784734132858360721262233523724691741994267688769846479406542584766976959339146536578291251406696459428257736379864277786609424324009007209445471864361670761947814004632128548889077244761635784665264547743970030370400344067357992456585782042609869171260457221051044071301946040734098828605903372487516592369271449756902017377168902654418557503650751836841267496641190499278318676695051963031849783493537579916661191644426715898227878993770014263760472848016420908464943958991083882438977809916875492851472642255617249286342951702400073563229964575675714869325794808322974141300860882194855236882611604576146205580678676885170154163302457941226039644919746649620813106126844848546898607728587853595601091679412805416739648066761711441628368395078660052037305374806974428527602109454428309632369495300120455261474915762914101960074438667125856891339998280274251423708074588422732280626102614178077164228207452172139880108605568577256588623358253466782257723329326709303131476333459778037526296442332046645694174705337040292869769333798901600543818400097894358090840247317944868583758252274455030943542792837277021046620751112870649276771445549217763430161934198395395844857738482733135338370496849221072899368071902432741625786213291118573136944637776076332037754037262324405338798482304490642064569164982318279023811811995100728047817481384980267048072203819827519361960200558998798217565544155522306586647785186218714346829324382243099932467485595252012424076655826327475675915885291196168040039460948242574265251729294644310132340783857295016570230944532881387360974574359506391841806835297171958113164430044108187806207436991773730400573184107639809248552365374155213299756620363060813640408230986381151420251721534495886478819428215875498383390830382784682571310745966391309363263890257861078595813948195897232215893064130845042783907357423746051668998612688747907259546047554229930082803675639664916273931441186587280522921628934838587228693520288391303359135436772045840305699321175015341610388295210262762481525563744146095595319839520990557749866894916112261921249285245083462985092696753558902201310448664423185455788097286699978291142665975271535492883313307844194055796335369978145033573575955536046800245056372738297804704111070211955526267898020602115906097186607178631432636061430511175550672788461709436376274816984025317359931662939335472792392445173295107702131936444075602234927508675882095641839730015144624547128670298771136445792724166577330732525021398206662187634541225496645685622724666556146686453449202595359951774577465075663713765645005051673079192941469115943570590203461924274338028985914530695558851053079187484878848751166267006978967368385787741754059364545024694482765860602548651831837096830898652972904204871390787306918894449334687641007946152970432473198645215096030883420061425147182867111599484963117955766449126624855755979685726308450332414849227163784077113771638544330935009900140553332880797107131197590089337272506347260565393888973441400345644277706267996678486207402293376171421769191573828021030293153580109866464115386960814051801271375345891207868485979937597769584034210531659665931424412313610195155278893299063766847633346621042803834491301269628579417890561578904478457031722991499053908995324050462004003202542289296087362049430072067180231418102972695495316863685765967067308083163422564399670939764567865738234561323432610387952793789486720406579065129799578656957516327987737883767141030290684666636407424190610143220957250434308669929188120045526346286886167639854694779914948703598628295878416732111562976089261693723808376373659090323817316875246885329591494718570239731396515756446270947725810937249288796661174012904152748888704409323268850194430986844527853040733161576253564991845355894317743161152740459410623440985525630378734551923503564790436178144927376059361339297505346931653379898302347895001041154362224614056114621530533299502933898742917100902535960149253969771538931506019441519916407551638766068976322005095501113758861187067236187589296154749351788118602806015950300789222552223786471997183588214711509050869692975168581803159084677916019987026657601180534557781152271770378603256762470649933923355041847815878692733738380536084702171315316024688751892504015888865981627904104677622410148376658985365087792205733733243548553933847420710156382316097481111403954750102588033814379518870908661625380982627114522051196638874195750827244342211711008246921111586816181886056541083908052768254071711627395510907216336534979215764694007201102045233593150037289370161107545695102593922075365800880215555504869943145715340111464279066181273177790719808481629245527000277755406428463863784196056008611961284221244518523287673585940195911234030113549396698287142439835312274329872668652576461178887307837123710949285625611409120196955419440164160733068267106720154047758177369343252552889253112476732256325939740974978632590983062562582403704761517429151045739836824642809633563648518399545754580926152460870178474043904642713225412122036124049433285073854306711064609948398768892634548226660568459163625281775219290781824942586554444689175853532564230750623490982376229410198129204712646830131527575904256801977981368546628732342541593900352770347402062027651127991879457393337758679031549464812904999428878670540367152925501239430020619428876704746338779750703143115783874408855717123015339515575582081636485345152825431935374101766008761774951237802113100065032611568173625483120423215110544099556690006567652074085258711754980158398077469906854545067074080311468784792187737322531297474341157189934119048239527721780971470290250192398625064470358573875085157524591068479460612957293595567948864232424205708088308055692002212966510637602608817620398398640520393083559514261846032447359689533438738293331335281792771838794201252551653874630079899434431090002984198447374466014043606431627379256264007058418053224670108160175688794947180792858586757379386053654446939704843014613528915359844308478218245851688478706644631149482457526905900341584717522831238509950919802257087244612803451582872072902154509705864345367508462695627117122969214296190690452159386295021058126386571173974903677446933921795607129759486436535787333641924331001683900930219314715392116014851134398531892731683260354234929611457715640824800030395924715595978534319211503916724934292394995636922571859372468340015762751505845616763550060623810178238102416651056530128182777708637464073627279850459731146487513300119476619522713843996763101102507546677927142510081922190860664288864204710630687484843284959023814159346899510882771831570919536661622933705523698241349691023416718311866620606400126279589967639683197040278968403823703606072938792574908151996688597559558661195822769671736562048231939959113732654397300160311954475746195872232358185338577792735333561651992237726662618441694624699912762077632118256598446995927887871598936675061182869518589310672955859233756543661762945759861021769485327116281422617454771005611938211153357077115685593208689101438151446918123188033125354887263543301439105064357654069836894172391200134102456853329665564260122595744003471984537711867435028972845841415906988361701357235207468430008978114187351094127278436630635515954294584017290781728337983286143811179073374876502733385711374640486645483484451163644948801735773480912661042619769813988420032898404124686471911214027510962803889391829952842336885483104619738863208247098740477734740347745411300767902766118238320263207720784745596447221244942330594858765735196474265249953095599601008857456293006792890971006357473821671437190864836340519149011178678513075154997456678810178679542678945024882381542530464560512881205061541226880321772169224920379696614804245398894612912907565427620037675046020671091273733632055920554861542413597261691911229435704796131542821685216500924193516519854205827486776382187257325973111824133635238816133746012470552803585556394956643620204642291733735039300063281669056382461316176076194635052031060955769684489580124534093662758641344421511068977339631686214377451658747004821685524043644082237441542589663395557147413102831850201504879940405945354215989070951997260944763157133293043518136274762082063909430091133050788478011994655561904115863543334356819567675159402081483949933178214262584401766297774266005592580283376656100304249427681280424395759127252214320968396405808089197396858072381690791578819058256697735116748881967723053717446567780314239813596852867300176219308547016846665383141963531010388491743026015652573913235730078987772142833674806128268537367318155804686333979483301767588570418673740619306646756945198859512191091869212957246842192456584360915245074297709391150928605284632670230430751422889827847214347389924205692745023738125885426898541059160679589991896770518405405993057454530972026857036708949966527558803162089663494761359669377853352740204016928162541268706402394457661628225130107485598449981204266126140944607641600137119199616917919752463574106922399999288897626985882928531354456672422169583627292969071863597553828468724948888927730951048852877591145411607773912994806270274777493878918342659740750951197438080306180570050985550600402176537258016731173431744694952304263409639256062214325570955345460677133539641546031854416730762750641934229744540391097067341879319286807199156246830652306213803975520312597244480755053747299939628038132075037012132071522973996772380725924284249295904480093799953897574922025707404547589405615757087146398235896439045068442810410521557370055694512598446829497165786025651184667369870480446776657123578375192784275692111621097737681193115580895641798037590280253054757810242156643519854081975189695632182180203648615247673909170910094028683640964195668533880132059903756086125437219425289075232139955348970154576940990484588335527845448651235124160231792184847094012889136415281696420174032798674570292321946742780621499688701405788037719157604399154227595832827687246293180453682321150853422820778917590695571517246923201916608385674814936570447376799395718953682568164517737372169973352834885477705252338439375255608377614545114751063687353325984596949565952438927221686419570963444463016486064660762944690603289590554724022877483266394459264891913396191629590693798138500637786625785097541693708370701457266814131610862117922413738705344866153959057619332395070560275769593953551085190148344950039025578409692505340594057985626967051224641323301397937133727529830664573160274423992901006223777791079752265475490809019823808994429257647309904130410802256642568704852290801127709894020688569445458600917923654286716319395552881470705887563712527014245927886357853030861607465393281333415454280197371453128072575043178807219381591344934571177872171383277321473673780890725002584761583714366539375421643904384187217150233360056670649352246151957616382367304794104208704152498152856501518203677318556783599168384779421570822906947401099057679288146733579649260905772820081467769736229182571157019211588580527432563207637432766061766152112205980026925055842222573589890466507407919625706526905831298347507200444391344309737691285802538312571504746706279585202726066675864936629063552480277914553308508022534765277466706456215750556961470698319503941202759606512483989348711806972970149252123687173398268450623597984196349848226644682602152353768273723486661747578887474994009138566552618143711092621155004630718064143224902294225142177372487909456828856880408659775186822048730453974700469215073242567685862085508828095725872681958396402519327353812054558371565155565189847839920675802596706007241472609078542721310960618958165257486693514108624112891675060228681722488320860586549985339496775006676199704830953388946089467999290421014669660142131542154452351316213717329679241844082451543438234295076573672525384201952329182828533457419472514365844064699249182248389211917876885207737721839163029324949287330034062949290020220749869071545685025128565069531976236132595929196980548629039647886949604623869039585130328046390702814374603888573807685667487676941201057719724440313541800684515756936680509732266870625263846969402223301457046248150697879115859554252683419830853090757264574123575542165325305417929158569339704417846626071731039929545722109882600929597920483389450705180840725664293237882470375953516987788679235801198243127166126472076403446302875802570703428221520615009742994540967379607988251596827949592660740316189980565060244836437147247989577965789091506804874852407895581213231816689463765446667208011676417381273626133664162054920649223551443419812150442714895310450459824141375318042965903145662706809895709612368582504217933675401892822916379459622129997491039336998206104567712769053331341186653304934547695658764636170473924931879780331050951167869098633886488661294737619239630260168891357607030314549493824396331520844892903167560632706633651788164460021586841675942508865376334938932875806268666005948730391157622446726512403335108202845516474138260874019879967836989677769316241862127545881366169056042932066687840819577522876661190716029618901513627042905297391046743669723822495281783001793088930462722456342095208731387427181644933308416312073667652494827284997463448155812037784624638714111943968530982338111873623023015877155299648946771711626802631044477203693533827983167615533361793167019166814539582899956355343036021818809839916165635415656916345289190118082721214629362929849120732210526617424624676198165813436840488620363462061903446581979216194905597847436097674750061386969710142081260460695541606096159590278606445956289096894840950520329590251696792432998551290703429338179493550132806489711025435953474660795206528517205145795522406703228011096910995048576794812861771816628205915183931753026778682608322920408965120094023851116213869856743990665896292867648537887978569988225077789956942018489377677716132196331990837207676468761456428873093201068822808666552526900567585448406176327559793193039853433919467380383151703123270808762638239100564948263805054403669401820800488362579872928603206353668725204385305205738551217048943568338918693254623167906388283598595689980409782481655441515360977981427090301128783940734917655859950508213077363876648551102735926207948983630794257969615691992066823045162362927447673786143695271495650966224515163833994160950158950191684672739189729285884522935802699055751659245868401222098543079379680207154970252624531231104835879831134450889452732758266142382209576402833913535931492914248923004304714942454566986290500752105990645312559536846573170725830801966588902187299797636998523354029404032193493584018829754227921176350967731772367360674206696644234423804776693987242402771503772077095308422596656876823323727947419351443460834138227795298778741702543545248426900952578511964804760979650897352491228020724501161473925379964607164126811283845771313457873223080101675232980799201715366165465467748728013484768245965364256860630975784723229162129802517220066030038748319902172107698250461787862736122494836588079850380563572906503052936635219573029525823363881030606400076104029778637223211893708207558918738716283419972411072417448305794272732320104886279831012470123377904695889587010872431808263077851990652099327452402917657017192484325895367605921960769942174356003459339749994105633801588730151486495935303646569685509944575916138686963952362534160967419204015338744375245941720555777193134401007980081492649158165164534327347475243975387214739186987130658653995594202891100414518702630552161740867731122550500757896911606105994593993733361544527058858499749645406456548176156520031807406923483325386967165321431797464638056156425346015639128467971448763900217540029119845677240281139927068309887513652495915723605886358222399601043818130747627539277009677462072860467149868793620930893051045692030769798438553039032268592978001667582638724884924236856790122087556771743936064616921900068999012062779204215013508212133677555396722715347040047324996086479156878049653721462469006090137530240616167041642865357564027247296599128212161040512359577420939468640125176492201446404345116047118684094429674729940593007837864254271246508353572963911792551924951976406018201972265950364206644271370678489417532129674301719338076954832422799270156590983911205481555609789545940583904384111447412733654347054515331849355951065466333271357450659642391858823210013581108005293483046687891167292474834673046003932218443687405260512910408438604220541580191287965421328493611949640883343634414304353021814078697052633042582938084449616773618671502678918597850387925960369147667523891539866739420009242050183053491617828978854498604692443443892150059510301407090569683377939006187765538908628643134021203824761886515011416912867814884523199508413215070682687610330401477056380726849625287627930860383097162429924405995694712825746623204605145907957559674304731664781827435608524417944634925771330532398246513951850358704407680734729995620662900342177464613758800330946891142441659656998295155583850072990733529729049877820244050599630705460355793154093832974300243372193100735610630471780314088245506456990348881613637965925906966214050190801749091129367692265948044804857463616785453183917467842134521694354611950971809792907390807110952594549225944549327897421638985023621904910676974713234105489047373999701121849045862151516854095431402151023658648185216965839608303850636370001500963960572265933685883091551025170318040892144414300305066942461077911406124311606186397002936710459917917322829138349408378649093091026189917640634757134390264903518652977534139110348634716692578497599099620178090383455333968137959806312549221237767821510451949639076344866347402163864421364301454500144622987182182024417693558921727123593529676243144985615079609390375826789740497852128590821500970449265720285352568080729279886237879342140647189281954699574491331407246971510901389647078317181948017437381477151808975605616603450062728952841907908621433579690727856904231843531203623992324607270500600398700601825965403818279816911433959794039399910106183129122234488653771730069015510382622685314882960447604499178894700722439972692512981001597538609167596064826043756829190403762073758209499727261309078398793877999026652325963876394957498099599868151571588055940392927777881159477230285752426841126329874128106699760083004078193318609080883586291137150821007397660669698353881529430500198200404071152899845339788253770974229533022230287551293565422580459139285714036390465401232323331663438820547122017025562439224852671970484919393838834399480249334172955374461870156725664992256269609137255296634585643324398412489259435628751912397513769049676133902763768138811181432177129035797253105505728827048472542390755878839086491729603324725576521330694880818084167248561385100587601431546941203362374644525600262906642462016581587760165355463858328817990811596810085995400892606184702332116371575133734829376432653963046630878697403706082284753296508646915789046738072422666785193788254628126670981758923777311705028145600391824331900692482881574479823546329540931950609646372403816394806296881946403287543685277645955268052980450695360182446169357227218317650074873241814300909239376804668616624622677997524163651578510409612207043624830317374282679098714651360158008308220038346156660010580470006972887369840498523019875330514868339995129215768998566422674770624585510572513684729612923983372521307737759165995623460473850823776964103430931255223578360127213920211551603347228712008216760181198816757834462046207158397700926490599913007699788407771092946724561588281585749660805767891248414996210330457201362721372825840304071952107559535125958698715098298644769523069565292272133253198576820931536175058408294125536793120913574680155757578205865324670296529786441932032438403996504998407965946379363210824231304324506933947509362081728224581156805551178009578488194435940399497957890578091634936413018721168719325828255936123868592989052508632361953633835827547384681386319527908429068753560643032723429535112818261454585787987276869541683786845983083577847400618114230143708165948385406475394357195065443766575522048172571256272154884047141261831291040093751565285663380985097394576398206048778645245736459269233499863542980549624387316290356667031835712969557086652001059233400295522171949879908956556306922201702297413290029319411289480239734338045862560793445874625188660094886968380586618257123553374664963053983058672050012490935782106072319552866958963099436664617029963842327462184103362789506782657818381694030493087678606548710586965551308155498401888880591750480242652572572259131131160855318505900986455282498669415309115260074341771729175434851500573155217102280856465347762901492268711134210575733597234507717649860526645761697257773462924364688545343405663015949879753669081797574514385748023379546556061411376839517091365958950475862612158129513988640805301926707994249304164097491098680688377827605888777519855611432732384792823352087450910836918773797664332641347516163680828557438760438340396053943686833400822346835242223888189210273728842107641305076727246020813155996796261853548042004315629138277028598246505537314408015978965779378974977467842589886251176271733192156970881539744427959752740620874233596346333737020636055658335801740711896463898197115378296948449689254601671521875319543185871795278974452763592562466016899959034670561888385077475535346737882076620221799260786670836064750955283789954770005253625504650575243930545963482921132052672357581112682462549789499831493836723266021837548854115308566140292963757645164515730299216008131340962223069939967737161623623167586164356897431781068539302887092706549579163117835839651485939985707659334741622843982067541042064847271193665756548822419539059041115946796011750138194136523922648794665808941985484266686638907506260242849876817206054369091796856997889400864853537002800310287434057857506846390547349964087613419821475502326509160447316543557253783522070433124859629177138694013364356375837078590815662544792200349202327380880621376665378147205120240232974515700573186772699184968976990272689020753946790322886095203936438705164230308036786819551883507437542711465210238478498969026001468396333350571566828137407114141574134078144228617653872816228557807065208299151361232063584538336309836060773131756444125539937087478666227088026513253597236805066088756792763606613102286314620450304172680489043557875289029917760237742489234797343515785616721243272476134668274868907275336979231770121384987398513033332441325204466081940343004368074158755470568713877636879354690365862844005397142171200470720411539918109266441455743887839471895696539544582832300923049450074803332252755706139398450080154774904774967444103756722050225504084115049481101510342253414678426710819773436566631392367388008516576424906768818498423527559564464828079174457343698991414370090415356745586234737994512152997468291090270560287497070114249051407657991998362377851694573668032971228785042474754512340935430005587879869987795271226875775134195049750175064391632335606894328994125529512975048417531424525545650456085557839638134807840892360699299955051569629868042461208637705488859384255813005926518562379398075152979457642259653888917205979825674070341138019871407086436802965543214175545220947516550086592526233167420639336761900421284237275719686593521140898753027737613399310730495803997527481407446906548448659522662242626358515089962811675587157317958744579246795159529893621823225853721480395039085070036298193252934082640367610359830936055164562642453687411690540642894967254865194757111709740966190122365294210390377299680615336281102346569354498867661895603647620295338204370786745604928519515528991597551333863992103176405286299382349479904934157815528860079113496056210113753621887803791348180317664053107753573767729136013512461926625987206378431231267366172541960565589399315041293286330677961455992185598235673607291618688868527734948354124344399734278921530288678692538169994760550852105434822150965027827816731334065248573141467454735851738880336411860596293979149054919143402905743461961077178884755313665846916125251720087235308855192146548975541540522017720519515972361671088160033200804753618497741938248650693440844796859798770558065478056902523536190008044875748428447479834912364424442196100431628122252853877761605131567222226134326724711704211727183065115759853223465439375138733401680203292135320938833317953251973435610356327882265575437875592650015029013399750317000193800602090750189012852223056859685831876874443147366391719009328653232134235737874282039447023164810809654013960890761401114085123272273697545943197307001906859486919054016681738317859903808318712258890984948902303897030753244104599064366490675276219506282939498977774220437124176814067099774857884107717896765064979868850338805752706570607773300380364700103826931787047815883241710212556358515183028657009745371464386632291536178574508853501082306355291038083190463192936268872551919809761493644630984358284487795111070371850220131083204608389397083632809537283351886034746862016507259052777169658694443086019467341785921883571510032485260963014145643134530206042351825113872327736144484715895950590571936522350288263346852606161851852890005553277204795040294877417695547493324520378565600870606373487081030538372154807002389571695988955422192592137334979082929082608606014903089426654160499470555348995415371528563578978980447595639584124964570424801345928693000631791729034548812521320680124917840280918827152767681341784473759776632480059454432066099892330929473047856822689020478902027386333907554697195796863314023015549972582596460874985918819698716317212190198519573133061413666243619757395257315911989126139626903052694816817745894731906836206571535152334931526351103619998998671364818110886766137788537700879747727408956163299660522267641580705477750330190340649793961557877424875354978234413024002585778824840899513041634343705482815098319066131935161419178859910438331497796456586529540396627895451889644906059216818466856704653497249525860378700052471604693983249368639823214281454947320448558139414367021671996889185670248301818486419676749788761050936661871649753672682187734911563066028170032968476406267474301944815434291223507968526254622046936093183169772528868530700438600332739321701268523705652460471037876940923146177915761501151793290953144488599990577652181885640027702736724201823787914783671026655106690046932375523235680234194602210656127453746015625135359311038739483396911278388183931421260434944730219614989063255544634188103153444329448316526316305154542371575322255610526264573577520107761174748462418869468365558426319649599511528862282286234984424659304062145151003346821019828440180518898759302750222610552636306621155942412087469700000483104801409313038796532135611939328661272117046230431041190920388079111205817572693296046236069632183303326646607471131030796320236472280493220786170682839243548281896222688898674564858807342431023186259347934406351480353270866465604358760069906297855258290565879497183878901777285143710734748081561924096521708205511405170532823757061357757220157824934678030852653917233108072341146115653416705109772161186998048408118703300704320983202324166834423308487339516358692132819398344498117793721460824822744925902934730842552039070136574527158850172621761190041064513461350351718486439617260188624808062981976357465857858629912329978570083223871209334274191094824863886260537785210521814126035393559779842601933563773222067943101769484136820024877316085433844312290867016241563431618150454127050978534330524787770128270204728855666054229371709002416328286028919868434204331551618052068471245845956255792737057477272885801299671386362755428661104384443576747085500666300071678383395032037665554726481108214761197798407899906813275085432701216346639824520623660105938782209461383823666306466851923512128158685016895564416500267100604489217178712822554049046181504756466741327258762702230970206282426775293737303754538255543895821256254514068082624689797740484205200145272940669432475600477689676671922474181882081557445430103279345989215597455598355630747756504841001611342737349897910660459392871286285609015126369040473836401235391741981614417988725817339470091691237788936977378785202972057186220914583092945371766975511951638546700167235722574453537221324898114717892925809547553793035303803115975730108169795838211096231611112003662496404531158647880427150220978196658577423206826801252508796621444284994351567861323971156132140699882405879136469390026083439313382683902815876026796565331321776466922027167473781982076086475408406637113596152846804997115594066182700512351276378141731969046383213571628146122813793838741727397352995648462077474520657377455078951580201439923215334521669887059189707661017611598653824331350793653935523777930593540851298614926932835984382666040043855394260321400902938775673994513795713854269394662895778053914548127380061105697954948941495309791500857647144327826535285039551844763036021007114272682945483323379722151655394064787886098497226164359550028595852083085026599245121498959968911681892543760668177125982413263281105597158271008196030443531614701080952998533156013301762080553327607777190091664208897569721737724686031932086711732890001646897184822865912245293101842298282274257044417506793224562817554300640247914615877593018169922329344150211464598841041318131141620483791529405055737959270603257415479587627937160240007520979578779220774695041447881495787083997029409604518471486198945952373535558017561384107905056274429570506405271690972267688813223650606014621752743691889718679603421303464042282030416300323779659008398507440598881070582420985362457031159541578097009903582271771293836004083185025801416280821558847947483683946647240761379966031884239490514264351448570841464137994912985003186133850329339968044788177602905804710149679157767492741437310966536508912845000454508864602453693145803282618089148195641770903987850211555656639112718451492564163719101851661689828623368824947963567705895049773475457865114922403061422037867700548258844039894056492102100834218272526318906750939908410249690244707836869412411084879844120429238666575853766373112927190730993547811177243445015605302135125685124065978895145567521745686541186075654321661577557995776051686036444743679102645585238091280377046322964369192275936280229241743737288472401246655358281666206464036787596931170122322756830517908086971992871923793951088130336939581036161486000944188336698301229166600744003266365352591017089616638572476047607605393366502233941460155920961988307858560711544102026258710687365037009710714508615866019368219874213496450046226299902074403955637108972793574037038634802981777783380603061993519735374733161474014834933849149734933324029764076230140550086930894249162002258750434711014200929326698362438702687769417890340889904272780999772747023240506207153568645245407674999201214061475455627149121269583616078361360919871334416275704322393998011779248415697334915347323066967573128942592261744482711239807494132709128681776563992102733320725125253329740292066502119287700815727370707164438622190548520133223172054834013534537432298914522789557949096924749244651328965117868641032355352018039445017847942983656867406895488691742919998675572169129005628683517427548607800962528133571468381139762777785370393090092357485955089158867106826982239950529678791520757625310873769827940703310044275959099725763914558245617334389084970041055377419578272126689595499498499970859629686738849897412815911207288762511151499301491982164968933502920576911391112047883274370309054105628973411667650194060113097972652198983890961664464419360088928539010322868452330981969778611413592719331255627043451719336822564254574434586833806306216854329854036461755602065257406805662959831392678202583451317110357790745205859902298110016552297212157140136204481751701461978467691454889746448782467105315996651060014825922637312238062863748152989840824734635059771095256558467668206152390651832515045525657586624841694976413420113596012600967829567946977644190383961227063989182261096288336124713136329813113864805816519609150762062089638128220930967272039965744562203865788840852237073171602620587054695659335305982789652428188038964879789462409851666284569943839452803603683450371587745888041355738769090448446206682954669702556732325446858547454285165377390762916505358029124057922014676801622543916168420070345481754992152653498054688794290937095190630561371052128276499408797119369561383049925694990086043646938078959417104000219515257559892762539093510127813013488316233466588147313415659003194699318597837787291252776403276454033185114814241166083719917951051207990506248181365835113492926374621169993463500676548220438558167836190214368464599019515061287506848994778961117822796411280883706898061019040550779841639255131035209127547405863221375874317813916125702280212917536899438177267879871898223260655477129972148944319121736429134778398993315078833909036076150943345404766734441743619558545533185378375614808028033484123221563032098617402759230685609648378666297323709703587098169105670906801191601505198259312608017400612023186840189280238337262973778624528437117650685643137667501153354140746201348513842078460467211325190805870393361618269412315657434624798466926526746026762727879385358432335349672984642726962016506708780971425483173712885110144904943879927444175368988682253003261606674430955709724719800409441145011596221621452429341069936428785651742220539354194349382337185637534456330016910364884281113619170712730138811672400029849838025505413142807559533064529750174028042411179484673396730578891616666587472452673001796786802220596381887513514835597464500708709880170807080371401005442192985641980951922696180822246639039756087240118869255611211848766931240646426803472358849603300518645844089562745598300233939588627642998134337716117080194362972403433399218666214760323111359105986828232938738738624556490459860042950588812242637269268648023756363366912994108461859779437694146459609422519858395748054349292011488307998686552153624900468431800507293116330126775235169196284213946022301731571144149420040874236095867742718474056463933863489676429286065303630714596442858446201710297481109206428917949631334607726057268431920225840690166390665530511087717313468635371645708316127824393047449737810147230288117479750575687868570006782146442789182632651355277629728278096877113698430339138987432450231383395764886820464932855914111578789169191195776717334893911495382570342659498036258004745689979177103320640263208124152036351776729512798635011824107601953324404268979355214952880570884401035469540475781431512565819348406065820604237749563881050344665309120320904699827525987412846802129802308536561800294375717370664474426248367993198501527688611894299952375111428254526897768516501835333677298237831652469329047705372457550450637792381852825897908017508333904883118115575445595878715624521743732839534853590869238799505304895942910586575237367733561088134616227994507700704273584039983932164034654875757757582655174760280993103689367204988302186320233745214967656663048406331669191028903217317118956440835797972771530311772164255517077708913318763617623143986473827137860934920592082746834150158466549731370694712793246461845643431622959569962143339410802026522248025365062788235539820122703772086544191470294807786728494685687398573678211988121951639171153924162319353204084677293869726345054504180274430979630115553233683965337622121573644425467732657545587216065264981031077287124287727310534283302205503456053483361276734067313409539384252963504348934962529138304007854476401023198554920391365107505056868163023512972490898900736753035406612890807245112406586599727561535057053168808680523312034450383200451231199782141795493164851561238209569897150087607786628524946162943962853524742152986351704095615904671782521333276368890593256544150620402679485557259773337752032338853980081162755654036537120209433016915025734742590781346457105100430432802380791132151132038923255313187722053208530777546780595368152363943128395904843130378351757011018508381167810594226830561819214935884339918796269144356835799340024494916730983867881368025846664405941506253708387820828348444991050540783423864527299883614694936222045673385224184589561047435882248465601809221630527347090845708792561672801765774668972122107525844557602326130943995670648794087071035669759997140495327892992549584256457767618850918111579265731380280836553757097827990576053472933498266299474323191611505970049216756572558840718454557051337315695578907983074885053559859261839216584198155842480562058218435488929658815757140026172158823596396880059640207472551278310943147844990687169925176950361317611821599174132603292030757572927471901984461483876344575848569151713624754696571065040459231808078719020513356636424019264755043781868472802093090276128086564350615900351504135979791479380397804750383931419412501836774901373316016820819017772047485814647100716652554957519758518981040457614462854324071911093011616937729426751537548702991149305668105101840348596235717690652079990973733919097480245183159231255564389691474017744998381769551089421940547846499084479243612236456690577294022739018128836345816388311081544283391496318120208575702231632712030266862633765731434025203952101071703563596520655546741226292130700517941439489045535695938820798956263868711646134451409007709990653332675976215161064620801013059745850448797009942013886143565970834536057059093313676539244075134080344055643635684219777639993474181050462043240258091554700768248331550288505948794031693011390234352148383380304014557245755503377137503200062595120688692648074929268723384753153903115821899287653539061224845413038987540416629892515165167076132170317979820982908071494589906193040590095094669628089249743458222829362820082204238753158450606722639353702817408748326591255359426004161947172507475333506102692986374440743862893531318785789187846827488562271575690946681193817216841111273418223215507555715083800478448474121008902637096499726801469577049896009862620550529641102682539654359251791514318587451530720724699140772101811530937499844228512186420520484079691148338436848946152674321823991103926078388506952995928346831919278675260581017594490829092039659130928231505122268391306590199860016076024471873897775141550763817877907035421342898534897418786280918873621341536806094872522446659526671492108153212122191123943689882382316986592086309691103142111237434333865158031123771937443025764358802296049508625271292238728650647732005228324789745703380925619131627127886775514450065908072009309002167652985575503259613596930494409910398996725276381327259742064622400532534833956612810106629309785693519769803145203833331505864270281999476715104695190409774188619009989627353612865412240829981516663665141151875921077731094127202485143591586924831853323954998916996513241200283492690442299027110435928522596969132375990125431909484639526518309222681999131183229547309812452574650375879903966515860583440057464142496962040345140864959606000446742283377266348337510750567286788593058533305962073104065073809184689913911369349258297643963745504100805992292188982772634699796660341923507374097865602734987948530275302329070062938322029025070372174944871837049716030819880397877583596840888448604955459373077290161633817368643612919621036976026293955244207359793725146038412200260997025780757434094828815443178300671276375225804968456170613439644501673276757463420082566237351057899752983789579773039238106369984769103290176747302372558981998540845923732119370009953464526500612197847791637854005268251954443964604144293832198146983888550298883427652986779049319369275693752910964672920373952270881506861028051586753317041894406179834310822982298345100819004140617352978785454970784960220734577936173527959473159024084077702949587715138399203614574032450039624930947158657168905654128418991610137967240988637611818563668994717286028495517852926765091040002197487613755710625764806584599448489701528036558139384892233587863180349850755965603667935554433761857053228492645029832156421344832036339284135528243429173703395222743812007576401095665751048504960204551027468141471845027892590101727137573701042583601507429377843047809588621037979401533554014849309099548668783383887829996714793137977052609931196145468952044134391499529392048870757249126930608276926676650025607770700668815515557863683240124494426451718774986038391572440772399832932983618705224506599278049022863683964669046753926235500635965735319156002947306374741294894096843944791402561281969251515694414261958764574623011175693514340042527965956769745580281590071777558775138139195291957892084901832531295193069345512412166705450732291136419833491082400677569504300555117272264188597444258695092584662972130311796584563362730707981353348953111008364215021639511957257280439963838469923374882340447408948333438869794280458699414612669470336199084456137435064426388766544365487616331089855282739003040892984302455726598316228362906975879966211303671004024550952112567985520280593631957241399716695733739990770596951017344374621603972449822922799850971597399548385402629099579091647188364344867118724007427487728683374277507441000235020977554347268563224399101768798320222184530880880518319415559972714984606285499626217876348754921035770385495971340057522067084854540207252514878512441174708342762894131951269202911559316688549580083240548872322125488867122340510211648566479371280404655408291173159765937761543929022468550917431589795335790443828885248692562744010359370169399492455591511568545684332454600616510207130185305193015720054720628400510214899608478480697224348173086667694892559805156505187306839586637075873578874627282723358563529718076211171293454034834131608881988892753100058037385262682357827103567772664707662503196236444179655899652786600932439953091259301615987162160161810908152770813519217278056052119302543343800269709716939451915057920643974308218828878135231408620233308322077181261096853748746447708054431883161670906204143594252030745972884008849926723514717238115056380507585969115802714034078619955250247177165640886456258298212407059229753173253816119701932096650890172780397596413518704647301178170137176036540282887288028125443429896668224279388345220831832991860668959028747071749173061631775239657150900681757864170597683636893561598520381622804326422108279090693783999995159805861884317380294213282064375619683728327670547452984291855090291015794749517708201243851884685131876157034907637282954944565098013685822590314972364035223917371595305978172562617224063021698448215260964215053493516405727693130927131965838070934803021355630915147031027688046286432912590722392068759689077671178833156086631967151743516533434305138056958117044009046121014397524942734282159273900420810220299374876270811384744579504466152145967707456602095743844866283863018439822029250111402318058925336952789795584613354000915288400571406959341744571740328659793565169445057016881423469209885814223840761064610851348272050751718974333099485487206983115592472441931645670836390904215672796424687354502937322105505280088986188805736226462139586672178124598988853547147583205255980610420137175883071815382025331630359172123059565285919058945399731493141668758691502129751828110694920706874983448151553012447939505888590268637908716490482654556961070497342416227103053872668459786093605018912551536867647310581919737911481809215918417117376731717606032562707760716678044927489787259875384809741281717727486593991253525482385225920170462047916825446033168142220858512457598967347200193378293151693833560459971372646686242246293027837845804867982209958352041957050698452182041886073306504469738658748553304344921912915322302416147217996669228646488354901785266944910559100086021748286793058744200482109162941691299361408368793052739762060862697948599385333236506267015946871014836079847399590323381687852062097559787814806752336483684986338354286108729379885751291827546816851831032822994510567667562922562036754581401508672404490788254493758453376654197776134981536256251241210003486063997989111002844061393960350369904138964502208977789164369503792861066666706034460276148876558671730132987705222145568277429217240854740116785152880946189337685055386722112868437204966346565739742237080604776664894107661448732381367185829413441324212522336543776913540394112982465300213295268544587566122093902851661177952896300711937031063901672760110240214003443934017408177278805848109409920557434398726919174962836257497321957543957918475966297405304275182940674915924059116684118424004089971774261599467038661462305340928326760354855693705444518489257590120267193220248674278977825105124909048191830967433710383212038456189040955745934153777738974117103762575248436903795143036052976358698152608976152124742594356387368719374537216982718828880035608238462336343507362973030287577719591895048775744398115180416549671128419181701732567993049237798433792512325138921870990791603564253523382862467083970851492130896018231080041744046628600705452694168038961468192820378130920384608515910038242648181677069874258976116085519645974477648475518387687691721060955977960031178994904661633033055420769359288083896662962223838010586634438015269309135871064277398258838819632238233124303842084625141447611371336808538824396338423002137205811294473993345031437621550338238574449381577796566357892683200017324774860789633087927846980423615710329446868463222079831657399760295055781066988397733813155921913657593498495357027342806195482548250428396356829747897255578970525562535498888372753905152356167585682954560642323681824436733127118775091153105493651615509045459824427472499306381099176873354580597465050828961822000120754945932778743737192573715176152804343414890243166241517603001315264899034487618831345807871492960131299841051784188459312414568187097674721750514583232647831307065903492008212079789866824808241027787870177011654686921698340161421732072657097209401019294678207677187081083826245926756999274026217525055851270834988170711073102406584078189883416064844524060491824640992253849901057096519283593458566829674047819013688046175241775312441696062850351235679567981743849231089356163153061749638601620861627624302473676171055748038414456334218708413647755867805364650062480295415100959590219823863907715815774234531468007022747198178777137450017071907108366498038318432979010626328634444846414334129143885038860174388228022477313072044561419011949638042795813220209671466856478804532540381181404285138793322392537363787718228204157061883591803075965691258348525319754392076136421731761654701522051804724588041762980121895253634661155115814337183760980693871697651943365032125820373133489292405363907543240491255696045976158944126207162170456942406771635786070292680649720105555508279918395875764211938084419029369222222486582375218612145759275699499968785508345724939999842453220088848903867086703353368620756214216548637194343881577445672933767811939806198194912734553937757516475477072873942888847710409358326025363230330762846251712446059297174314506147153994625969391745731024094407329778333801547004079676639327076472239103748047713814015814490886680465945579781369889622011163575209261523112165088993994319222321449351182581247263444283787953318308421883999562149183577632605903044656254995105271629060769242750062592386993199652222519823531972940116678349777617880296298907553491890995734751370384485453347727032646304440710676376362199025745768190361139422975746758498303105363419418254836412188424893500433261668628173710081479728138845589752348094399906813569227910053534423481704888892939846700595920819737726879111729274515503636649511276244038924135468264489773124358279520861691156168624313570950584034621664915927195318516900573236033050655180619784911422821084882817947167536985881137205808978996270433979278436760609609903599945975683693457744069808280413738592485722005754568825363912790058657070344698416974661681354710112358443509553494604855047215295735278849012096511998902908519449099240224961987920709851952220108112265507139286200965299753560990480280387770433195753239643591740664774794762243974211844778426495660233750566715498982695456766547112636756600382373046959646479070856196629146798976898364887640420033384976979493061045715599353572650403464387846292852413406876917762880978986873206612038218793222946142880148830438199400889643093199905317184014794963672031104664069439492503738906305427313042882281587838406975100554636143358404876361072936192055838845993002260135351386533176072033094898212448680931042206708487900410907429533979258634953284046646881412860140992988412536466601072069695463978533274621816862912718131520455290716108551790960291739024550063620535460311655817624303057410211546188251107690659096956688727538206265997238054064335261629832489764745914718804989169968717287213304142966292160750294212288304219217352143893187265007612102077519186443561985378655739636983958986165888926717712988228633496632250922176043340751925409432884387872715027624223639685057484603215266153489567669373185801823248014356005201227020986985883546801578121666548080170908760132817634473963648481013855097320779294342030060159995996713424017474390340222995094336302195518630254418838052996883244059689041835519529512986251023368447754223929412535587726805482549736635189301322110847639401160392987463720679257061232974385862612573360397974887516968601023639128495340565147265207104235214626626510666158358986339934195921818471705853545109953631935642917028235644152187225578248917244306744616951545184250515937030788270475926928933645170928037324325118398551812727278193517901155902138197598967619324498058895108100015578574218396838869398400240170461044647403768723121916446392778365835652679660073635800572189280799392205614528503305494525460203254924000248130864085850102915727724048486849001605194576245711087385154604822789871583965230176051778144927836529155265683825860108840172276687567793960261909784632172521186359618229721590692149977861857010550165066714491488508286029836929814554956205465829172792664559747182342885523554387585797112468645180502455561587008840323811208015357471862379644990945734620546327340788132593950254197528776669011607974472071526925808240410566306249911326085330228408231819318201073827043540563797752436770388969169263302225830098885893861408216694383823025088896548612968409734923730429079242111709281324090759384085151121651611677168181827459878314175055058052869954059757053301614217175407750321933843195820085877039024588726615599306796861268236280689175056639095571765875968634892232413573559963753612095815489196342272393108336493561693965239772423022265094343500852683132075224514177801913649779378385615142476499581934367816692394403293656894530672438317736243934537950853289711523808734417182601180012377585550912560173448134085109577109504017358923475781735936155996756486787546001122743254966783399370337183697729456912025339628825128285638445840644189897177314483559623678318765751938557064461250571076103979788906113814301664559571622533340449454186362589201099956964573842804989208764324908843544498102936308905644141649845055832827700358220747069874640403613395540367073493794429344128444906073161021817242007457248148624635331677704872586774614729798714550680759796289220900283184017436484266714183840017223659579424087521521562524521888426386464631155825479511381037629131134563702280269234118472158250654756440489433506793585419057629855979258811138653410771128185197541440528414061405582686372110423085992893252360957392907672820915399710994039494751619675070393576658491164520792496724080552378271324184294199074936479307384639552085086338485414852298161385114004538950629035478551348521315783050423181118179067511963666380195453570164642106944176050875220870273688848750679475348007446895622473069549898805512368919397400902863937880462599315885701746910549038821602661868941764591158309974661779436070342321307627828458473221205562132728610363772188896738128296369718165156618050527385606427434192321483029559648714515916193125079210059801079287939409229961759992068993938398652369716182985749771622394238234619737914348050058282454376203833423245961448163780790288682923114895253284687003866141519252129015402786555791259680420142167399670865712141638905804656131511285318573264036606103992303865418499290214953517932557952147330718440812317954042981892870585052009939360467314644757187048553568288945692782528823651397739555286218147795257886626533156149241403172242960429381218103220005212177146807989507685631744811832789104064790368501677417040079809411478345536615836667849957527959214919096451068949524368613952811257515905151489868221712009366673297553007185071231159962836652142564163708588532157523615041351032804608400361587034216205525281289424561909607286386001124483238145153311052945141733162215248708504028549587029312075543503035724172132393270112535082946526380302312314595648759002255584011337506599676173797110370100812407952796077424797957225225696761867035201589775741806414524645971765300936297884145792114493448557192995532855840317087466449289698999556400622023973749379628544164643179387516221804723462882670824229474925473432468613039241428859505813485828988492682908957736959692813933042964497084756314590250153638034688710191457176228599877773785364395433642712473016340194217569489708425114190454982763043102316399809265370138527266679966106616010905824258996756647417049199147641921546543812581783040612494145062492758911994027857478279147595347920387082567204430121248273057192331551143383319536285957036762623718392390030311135441108140907963859783436100957971252967536397992176701850692235978830469952759664713541850084927268268559021214641723178348746712509305641256265021195441202256833966452415010817073942958677013172899949550063820379360480048802607762466814341630793292858507887281384401004231148836467920108494599332750790391318357276394618112450896802179930036754144373881009586391360382841963826784523273804115883396758817398439591824078708764948441677551818767193418248892494780671702142316379416114501591781884502149897016326533883431526573130491316487417469961249989158371099968566869236181870502284212299127047411739369345298874257009945483541578613985785575998517882732412255367027819155063681329734520004077284253471321551032133711490243305208129797405440187471900912235161549631507520141400842178755913873070213549243871387394055964146817932696342190290356829249898783486482057366766598186012720124461732559854630235393567606888005400765375769849520826560301945125073737736385416632192988060248637630110831088337273688949498429243262368412067897590860911811670253260468078113833237563737474205643161720556318479196564251033154791736529074199709905631999234823970039401811903306574637704068132660740582451899816423136928081478472538588430269301630265576289064508653683315060463456275871283867111072447497484054320765131666042201166459777683738415596059358969905950105561750714930875755227548264927654030163412099123692490932556204896741967296680668994123463167899900108656998188533667976692609402361462495005707524755570317951116409334888741794163750552226909958990294509040328837254096270571617775231308965261030738104966928641031615151346266576669290917615168982142488120088884617108244941340390789069573158600458907306978183302273911264866938029381635285525845668829892252865250814381586825592608979009889459042681647619717591997841215743761489646898630091410166639405770222221611667792076314024741379132171200089315763954316980014665396200576083329007698525875500882865524079714812811961122114539102625100502415104453369329381185119772334027072227440633524059241475946462663773402818657757677042097285930286738470958932894665103861374232552316881315785542740746280880456197158519099734273124091830725045327107955943264822443508274435724266918109294512559618415754559967840013575563603838866259745745206781358155531378946916365873122286614950102792720814730147319174888185495359866896811155884816408336943655985090215064485701354309759814937658553206414212381237660505549196911327199169948215336376733215511783376361007472957429268550903308418991856159944211815210838469611561704002383986625530336961286147503070632384700814345528915972283645977353982623365255508687601842547377590779086649070539498272302737080184387470557562187465273614486668191232385998758201628994695779623012416261671153873024021413230664181817267805153218381164631911207444630013748601892655169241247070577859178215153113764735192507021056423323397701056762583203847196517643155139181974975385614009665549879520642006672691381900187103371198733122455414580268024153893743060210256535174676319910786876613689007347042490422208966281063099956160819999078313896325729125822797639450642047416811013372936021329312842163980835588593810552074944205594072020955225718086722055290893216816220053277362791269087465401624818159775302162280675291533100908073188815972895381497003010414199687455236149652152672110061216226232406287888945222117285843754692764921966149569042619836691358166478110842063771112747698165416068483905166875613043463200233998002618558383972532039191105921820561106850484972677745118094093249999351411607312715482500223645975609399226010425394760952519478568618965544566917945968873211923167243162472220427859101769142063092418734916755671831767663667528655399483360038117380381982069989461757433605836066056050372731287866880996727837968874527779896920945496351448604861471499594806782651422672517337422924163991582165200533627847071408457353054284560127134594459077635898882451160650952796273189255402127613328241383779079764834923858360185075733024386636116342798859627007903718231613084685016760849893137969049997091336552441726064936929620647109700178522310615553847338344003435585242080175365969480736074028072969142733706656847637384036836014350868037163760455393060589629927011877214236490949178238512546834111702919413011981885579220042146626777875254911988879534000872003851495946129111944577628447223891325770876733232201743752357685663475023982164425660103275937373626208911780963653059200470612490307507364076088585203553094011268645218025750230196332482983010040285042146029321122007387882929585373092893207465976819399423352871912486527052811599781151094448888315910408436840701815544380307179382080021858808481939818143006379646305045722591365652586271339235131358127236909846711516681807470350574505670865353516638105862604858802625500977582406428456707613300864074071495293542018351038398915218412220493659939316275819411084875191665312215547913110755768575992556144130997516111175008607666981987095331819574311452628130525644797781624452821321442625374351788538936084473662699101126449247985621983470109160233948877190883494099609799888478090516400761217275932731522091826946184531461407186504092464658949927436148200325081480909276734709960497994729968321627319443945509799749749588908014687542660667665919451964840596036514684691014130339023626440187575880509695231910451907792285894452811292814599781731040343932039651298462391441409979201390617098165876961772920615385880094544226118277593424576341952133103169861006059565943854965789430117908118903522813603537191272651328486952790239480003944132975316636658245567372574929918468808354625393572330537233244153352959299040588004022064785106179002918432300657477159319456749485456122729980580286063731022151845269940504971662924501839741501808984846933458192016904521545437633555252095369392476028372002135027631925222844073166906697831254943870644135199475703392238957525684983199257902285684403471000079383651428252831837962475451125996613827960339923196883789908778095888454290827686547870420352940180017428006948957322645423510434422801598869665595215339118698250963501988071203820458199682769714343075263326030798752849417434366837799995575655510524894096834282218368700328473575572100181607949573749977395929363750378539253787835370889849887700509815763691768087279606582156521287882519844498637625177531599915533142701849563262316245615407699138704847292748094584042071145283662950971432452134275784087417379519720166413874290455238424162632691067251177915576597104299673594153848098321477329857781761158532142437726464940135606645043149840641442604714230722738767305542943585069648930295800736845534169858567251258198894938495690060155052652174027330489795558593744297554071660196600318766512253329244723951730103944833271245952942925231672228262659309151776383925106397314113740566903075975863155182934125320641665959889541887547801750888465788536296547669975569739981917327934818847823329287612371560613990347619142249046393757925157999743468930521906741610298704302996673463770780072713551315569183495264241377173665758677267982900215308398264624530849575422689185846541155562314877227149298615463111494678846490233930301382261226489805110711187276324668639846207264979213236596271605922833801733283031996624331840900446605359441118519599480319368187913890691784069811203721742225995964983143789811115841067148182357370782171211107289629213803552905518546560299815660943598011005459216132581890705057768602840366550482368788708670986508082182358527792487715930081661101279044878020259633373628987486581833276834991540393105637457454745650933269153645560184510219601071649498482314043361077712793409032874369254778245239500504528903360296481671827376163946255818133101861773346744765647142761568142927564847047445196449565660292174876076228392227900494391120787264803413565563992746342077747298804513704501584732884014128338025436840109617555977457049426737985603176502660830000075745455979171313983761342797592479345336960069836700220720926606150210907643678672849207693631963949604325216775212690456919679564298890547332145088707903979523293334839021632512807579671413505373532023042834700368757812819059504545600776549270735087923974740065138864632216169267709287747739966805359113991316371567945223848531274320999873489056865163329693765721002240775534071029310013265979784234663231494365453830158189714601885228183640472971861558800928710462431332743440595777758701488308293318864647413811259322672074150791849006431270450067045936080439087645703761683834737977776484959413543980076105535219173184155001141164282966958745210350920504900763365594040240719739195286098820127576589797699878040530314198279894574755183635571872247100174253852936417484319925695480569701073967077470352537520668356857789976782666407695754906304591492060090496368800883449723177881543163580092703388244037192978462512779156358822955712671255939029808884995439483067634270407475484511431054964298007189773466795990485872251076663289522925180128529187220737671777544788224761624944842833708433294141147903277735654212599231786177098393068961718960336984510891355134580667573759203922318469002220789872899840215887092270776987551086538417645913064552471185954939055581867483635242174955018168637312021090817632178882154645989331648549965060938870425141556786638926774579744713755621690979002968897124048733231280894212203997377487632100767839450790927832239688680002102221291066912152848357172508719550934802632719473581734575133732078981945306344078818851542722260228423651461706505780171106965840987656426930857103199345016883710108785714702649628203562581935512152053030245344849710191577974181454638663961560255292028143962532304964735537418948421322138087978557910505261373408660042018692616084348690023417702096477983412053692875481117079305212747999480894619425282092608216450620470111645366134430792195792008329112199755563530339512858697635048635759577714061701070503095471007861853132612777152988892623709963188740762418328303924336294288673029794291247831803358674629830241419785641646270231937563727716209050082658118521414129833021926061139977821618613134192212540765574768793385035901309039983256937066732307319031935616362117381144929889161057502102914404749795936133771208918444629364753691687303089637456050816944231340270445198693677547302162891115346706860261714751669346529180054408967709006289224027691073286751251180460458417292220535373557425516276650071447714132673813857278268749320043225370015535638534486335049930451626986691716598925614595287749138007600805054781936548460568574773272832737799456894157460067536704456087281669842830142324563115097039298322175874504419669856550932506187226460412651264151460381242474566774036206412393554378552651429004637074911942885807281176284680756794305437663016022018190506033736109134080578517219536743861866204987788616386966971788668813583136807578072763094341144107094929083709929025232969423724677312381485204842889115547806435857305859923988521778705633506614457546249416412655030518785321003266242314480623788666008748601907071724520851811506814012735803570836311613438348704244738857165431427591748529436205839130184751653421430711332446368278011085092498486347066522860121208712036766667260164782854538833314551709919651669996750605586922726281797524793381315084958391395124181753654803422527013721863298932536581068135101209728688100392250648712771930727663640412373733635651444028598841865990196546684499456073182635077010981844515882951822261345091614269224635363621085616999505258532523892783919885294183473142789903287278515776800626414830161466741874565102785014874570271085480299717760917749339279035787235858826671718134207263640853742405254549813277398735136510735306716648006106206389192516758061781203157633959299995488907174215004506680637309906520158308674186543960514224509444972040211060314088922597374570524784824478563937444241969642206537393942743856627982639247320621192711451294416439080630545683688160353602984475487727160685227201217346411606261663283611818638071359805185869897184841043530527171876677183277664375185124182247436812890463448314390333413857498803139449966761082855224720836049820858533657594486880897239225870463622551428274926627026927584201248822523052624517231724477668214234036520043408898964291987821036603313623589622143484924404915703203029162054668489496476327757387659413845869533009888605571528593851464813519501061696835601914945839069280134961485291969819564257511772363532153560362697132758765288463157396118563047958847877440802710273677158412210250512985242558416427836107329932008972517451097745670849755974968382748121977470106099327172563662851046357398845467379033056693324374184680655057617740133066259184882014852370385586896740538484760517851918439050491638303543521829688965424542235395534225753489079187208203656639143577583375939164254943692454444775901819797342374155208174388311141797513993029647847240381766571136508842240436463975563577457854465898788487227778929163015096604182710908194526627120133759726566177924298106320267049854906397047372313962727722079814393948143314776637205163649700155890435475019838143470457363733558472585936378096671827194337837164991288335542412050584153528540887641718329728752756622883791301705438340412673611860461038241826198907185721576421692691145802021525612809461923135095050999440759737656289027592714423553758065171460001672642435983241758218266483251488568167093455611583636480043413313016669891838826013277909793066128964988087115592116682797319666794539944247930713061024291584875412003175039655339401374759386285156256072843464804239086552904006278377282586288338806455228419323189928108204997461549362531537441138152205031408008430672535569982412314553358550686172226923050768235505339047681383058282302942638804753435263785073259221336878433047422877683032191870415960044057350031366502519411349745836015866304808031250578481278960769829761384398114303425894134734827516221105741142241274443167518618369716515576930901801766998568867942019607050421407188060250787452453890593623084917111364272722474238207583509795355867295250538466926418798124575578087939633033895848302807017464495049718756860433069107858002870562002470402468134270211276601174896054337982520133186187961400423556154483486358596032837772148132377868443284208636170845955731244554227178954860587917822793563612164416868756941550102415619812141068001251078295584618492266656962485364915776955924076730826024476287009987189722442817647013185489473537743400724656135587170809031179137275989815776439064100478068945215007862909178082622650913091383810621276152422403090925614729538150493442456669351743844987287149318788794640767221923496854212318822173283076085788056643039399069438166168499098584399393227961348757391256052568950800933853018730433284059431358320526467826924665994496733616076262284465976888336855625821083590559760492750462764753651376100843912997858632943158036709135089098176889841820785178402349491583225676463299598282463747506216802092938952358713628755036695410483369636953970801960179296921214477078513115295998769659639215236908006348894775477897272611033949855062485289110137703883724431860101223038673735208765934114961731433570142310512801915794424969530154781673926137190286326950859293395578601526724718897076511801023142838595297810370984453438089880332728614718334241905049222445291414221815165983917290941298433633134853308454344259624327883272179596028059271053426088281366330716361074280362416827762220290904354793814363604295192398747045087025771875087977505147614387629893537833049016814669383466555120971808631633881232244601605533552128498025913335141893385571389495030340422851973028345179754921944142022065838297472785696842653163256258535675425786407908495031902711888087188255477744494770302236687692713217722095487247116028112279306305261742549061144169452609386401574512982584690819008912635728099608837017923341178091648753862024338526963229897250814874820552498584666874979427863288278956177810156899213898756521898658556102809305277758699912036942235269106581698364654394156904081056387716292290405370970178032526550959290317872979951026219928117551278323237756039795810041446707556317749418130483491365421374871812433862307275571429655805886747864004991651440338210196744094593066320422972919836538400561805447976478541201876468056604668007295829228490788985736906342870908880415597408309478934768681645047261463987407849401674597090291327738820449398634703050267356386004887648226713184851603732203246098004289039979765345862132722373990785061380175711013856814400359802535364734404434005193020465845218096492538971795348436987080936604193199611890154446044728992393781816830530733891580689586767465396296916405970596742141497007469680039725303153613784906796271311813168442857715007504068792636649191292858589062976345604323188054629533062445900842572256314214061684116701727531262777713087346661815771546476151468626139417073362652122324371764724778344065406018469995923057349185137186531874840955175671830736467366971143316127774950986893616276223408310972502873075097810184235824292668497011052794230387384155566757043099337089676966011326229418091612830183299466022629434970979143154874001378050931755671261813729447755963385909811939370671377144705976746459750523754644417343252290067877517429724917223916366250580126952034987070610277167254969245603669952831483244743002914131834535782802013145105581085445263230517400040245301835861535333775334294404445475527570194964724199836252881548422430196822929776595001468140408956476777709728630754449281223406475392020853551679998990103781279639394826916079129588816596536352782017309899138241944661170993033828009479500583207977245604440258269813933226059089975289144948362153703606612189389234634747134007793113893133716833575362267359738067870442970405849937691960557452813749779410438723136569530752370750242776342346166156783119985287503468142169130888903029324807923374911668364277187131313170322676513728573294304237309397785510224948230530502973608201319626210528822508010215040445291412869412190725210355536676682570617372171356029226697333192838516429062034638714956225126269151713747513106510803933912387411606199260490439688075335128894412770676833183413719099129376519265224331992959668789830141089294398212484545494248627886259933418420614127244106060693765174418268821340899319545774284006405960502165689493445057295739260296209425136500833771774592321619266380617419576700095654995300999764919130053802394660095799296458151666346089621741228338438578515951888896711585051406436427250346869066022922206180871137717392848114462895067751162137453877892513660417118686190918462075924375091912923474840070655827872583700608512047115860309891383293335802776528966092851174157849578824286763813552303723436742524491544556219262154334775210104928297214991259168906803273107587685394923859814054243495903908650768573831336194758319760485035951372386898050593214882302971339562926627413399348749928004152275989382370989028055630180623411017721794288593638241459070892820275807833620501044702244501310273953229750839893460193359318207820490532662919108754494986039702784304624747859249007492147016598106086256444861986663863862142904529334865362192252112045250995060785419957819894199110976743012581115626737718197796008777436255517006326144336764004575425293633270504461012866761504552286470971852645851507005697025983544879551302579326247935072222247204480312889648114873606883018072507782277283868085942213322552354821595139955092012632459509204651739765646104821226815118052913795497792399637151717115337360239005852691708118872888147466966215232072820610255211995805082587767160030813960351240756434335795525775251190605593132018882386714419964661837599524905132362150284487741377025448250890465000869560297906984655639302251341095836825389602513664642891444349467927544419009389213251205108315431552948815909389462959171324102497210122706090554260406501533825672124981909811636810312583575392182954237915803679790555345768589437353088377476243312566290871792060643293571901515449150347433932429575961119665303991523209167528919007102060547662734106198029587308127085213705330851101749922509932719379233194955966092181060260851868869974544085511881355475726809121338425125559174947671517227963507757768552192599543591846000427510766280514027967680540597100282910769121141989851661606345694488169063734965285275360808480424245924154598312486839508714942865422622909507294237515255667215113072594591016555479290223630032460595711817384010489311514160436930710392386815130938362992481064291523262112661265564695136211259802452235769007046249220251320694534745955293042249690945900217298751251659273765682718145988634725630333263046230056224460435247381159287084087417149296585949685952958524841833175733066768392257802929682495342356069648836042929480338571286565921033587555419211485401553621819688881248051700645958991603703365191661572166748399147892431437980797053577421938797413107879275795850119524177460764832550009261653581665494946551560298110065620890612883061440538287002007618233231386984921124230430998983759006285954056042660674338765543526155629239459420805655493717322638255394276424424909337139063328887363987784028567691402129846812255481709153525102013079593404923240409529928083038636259694220049847686482460756424590162945661277588010345225512288139033216278818490929147370123740531282091073516432889076695285238939544808203834114582054462912093833655343153519607631478376923788901204582410594776261826216626906102964863099454385802207061377372739027350085526126396703170587847763732159361091943908913838153977469771258814686286355780249097292711657913207447974222373376228598984839164790343568116431748389931593143267024862564337417134708314312904343093785759317433507940271213844622881984074045721113658033809299601500550971830236944157471418162093116494298198942908581677496077359949139764342080122746249471573759558450979017769557374086919578304338565178195695295080037378449382450616921549804745557322291118960074430180989257503762199683432842811384824820174304829306231205494881852042095338672768344624679938554515869033920855964422502790496152217497899151667427512120501945021516919729783726237386487322567485916119584893237458798216230459749156664685398107060783487140724717309808200985525842983152846830443542419865305616364717629419681511260159743991587603510643797570953588275901719711706175502913391487076082729522205489443383568152343076170701939578964241184595725841545502310721808998887235782368067740035975693543944396186591879681043000642142933398617873239341732043759082158365665359480535300444478852750582184031756590375630819751156723388637513439917936220994378644853062992106110241087859070467216265959125655179835478678567302130224211326674082351730353978532277122407577800502530574930530917871833883927162545825312514910913637179457268305559330243436940191311159559579155160595475063513867665961606721240971582390995164851794516870811668002552380569029870406486413231413817313402467316362436304540467614226307298178409299759736179221051096627819795746940001140793851880003219926899034218828105327369970622524919568650306934067864104652815348182321439770710543197039028059024200439208389606942834544477463654584668853748285688188721750236437456213212718868606090899635320674604787891174877346676179409377456113526782526900946009332334506137802743644782721326323672883685494133930986824251282003341325242550906051787802933450088199893206754350561525858274773279088817418632367340342421794920261562154630656184943506641392184572608772890322702755005595378134039562802526240462310690987094381849887775145888495443507701349727615081493450797867233425802061342274659781105962296708689113315053120479115904127553204181250953099674275945020460312011424001536674432879425813563676569112644012326158060191616553500952090122804036971711894183078204982327159842027107552346929805414890524061557129763675422196176514782522315214275892594594791110770845444978021969004965963844854959875731812606007455935922128484455480810754583891800891142109269186505356666023044933314310463466014615096524626148201435395504284336286446686825043993424697693279726900828263080268302713325446517923795094463706014273863993377684867757960931101542535358605154963700311305081609873831127191838343411744231160950602588727893514656625983725933296823809431748079538640775968738834002796312214473888132595476665220719258134911767021635868781155835258897396262480040145550404733194748009134951421330253600793825770144253712394499751296383335595445702104359725252289079610719589121711468036559099429624799902750499227533932774019121799446762611800852820194165389851106514776041452375556525367176326045029228322541818646560906022636404449676434975157627002925788401124548341481616015564053037574585951010592713725419004502931386404918061485693443628619515905089688604045853160949892888049879719616863336132778154714704561081107846245463525865681906846124656374284799925528085609114228862234609152900625853104638220623702131403356681013412146921567883063546269173367461619230020746902951914421780897080570366245604142144326429653867569828343297835402665602624522263246808039906348566357636763073626860968311705297047687288079190058169913605504526582164076999210130432911249511592644287817786673100172862475561559239997250760560042001381550028955563677085271889388955191553987918901299612408470184519524245616671243292609817298188963818354995817444279022851996910702696395150660830668716705036699958768801699149072157418988007597638962171138633064119410546415613962945900570503886326657828583878867903935791519688757744270724650002298439743528498632891156842611140359610244925191420870727978182120122968455381761640793044108675941634141039206509721129984986218777947924733185520269103013264377559013247727598758127435142189578892436245330169283305975565988275546966218214858641442933030184209646677851200673729306604095655593233498495047262125154363725700373019016955243311889897556087094417173122310850414661469627403637134529548019637453332911737696921497548567050001683690409237022580227668135039346643880753659005011428121023960845318410117963393804194376236806479592345210159353704721943405682271046687262643446281425961878216050893617114704452034131364745277543721532652773066777819053491910763071440235056854133943095300318732466283829282721451169988337345077003049687314162692560088911410397041371173450869080342422465974197444569048668516784115370034022918700980300912150054017919467136148063316331176390371561172939367337207053671355774908710127639410030526462365895233256635609875106776575005643544089334335743679774965036625280173814287624079099234244515149923555388023274179458946942276796053704712410241199424907271080408032189545388182389886138427906883778198772022398197161559151803285028190774830930537977527166130761989016327702364160790087011610257765336807313195252690767733859987261628817234244246089366664283255258537424761364540365721662022155810033778140052445568463174852432270690863577473353943185311105343430069578077933104754419103729446785481927956519458383528453311868698605823387187506263975147198324479209029573691062802376528332200756171326525870250710676205749515722235842195067267236964710869289116357687745710475782585112680157529693460617382900423354684058391935669734001407760789493339576299123617238467132402325283867185025178797849231596234060509899342565684815131148828926148878439450462762856882361221463587676443677214093910351652279528325990461243733927151641652377700007654891209524261969208755867011642548047676924396681834325963702952548194599302526996270551234601542409122244602662699986380728617082802641392244652084051031710873131196879966937360293216590351505811613233356461442431834275332260477546844431218680136119451618745027466574036720031894083450913142574185877961565739614999602387320283731265902121244804482067552353920596825306305565139828429987597706658252191860342397658243474335554815203842552855296204030192935870152421512672442191321730027768507299296955804924872517254637840251089575686594035172747052508306443131241572555557894180824740915746173759963487746955365841478005001295879740584669495964109168914449010755609314387602022621284597554886193098486503978425809341582578642378931503749349547004392559973835879510798824462977172172545207457961336197939889871125039926179766195003250834594271660239802350037074365515251443828060573808214961693565671175805321250891456692068274496855306620418212257835636661697082040367914332619623435739461107042524304096788478116991084660897326859248258148980507701242395546058148839585845924989576521311483790582288297836422455242989391720419967422864469290177321079798999328536851227244007778457829743948108540148758221571772127898841671760525110620817426790410891124505249032830057868064114802120754257448586089198366221980424100272941900625057875769211799164502547055195523061815311933874319447417150035696143545934891173654531443658005982441510048421859906320975598625247477769081028525134022772323691928317667543219128859678447944064485104588323296464440484895234984315167495881599209329912852505147994413461628486400759294109156220780748672475864052609860488050461994852056999242425831731445102219843375394374823227856881998546407532099699125441652911745375994173941451454899685339845145036185627337344280249359011739607935134061523975883680724464142678060121882869654360770532160908102583701542258906703224696794821802059672056340140002893541496262780535022323652879783332224308636310190946083092006021799469286810183710719105140714800736996642433965046567885839800712942330221746076014876598874480266618300717463032486582811722134425842165037901251961180555588449958251085142301894446584520113260415304897354873887829270019634146829537004102034423585041994459889380049954083935443476875446120305993989459384702181184096364262825931430441623465480174219841336492088517328011509726156754258918478612578296228522575727297433263728704767398143058747756197872468942046461889887738010001864205990295480070273654892276345999138815865149614738957175247298400953972492008918117721104279830916796091136897275526206844600962958415912710582195443275373171540237047906804271760227230250782162787287903074802791997994208476072156009540164757793233747983161662887480869963927444074825860829429811943455208723628533723292893207988610601853644265069244479565294169794141578302773555527229975220523271871761412015297022287416574888356303609071998902900609164302765061161722606136922612320413787388018846170641461642287618906146308561350378130033223686690193392861047604748763012025332141617718852479220894758653917777857411922990485103751677534767309223985605189186545739204793620239624074783373139987171772755416787791003984914115810613479606562527624722475589371479436416200810536663172619016004703123545030752582904378753769851348056226779505031698140785657222337072555514400973384377247395415973814899850633737347211515672941596860255699448273648928866500820629799102329093541645152151111676739951449813204603912045464741725609534237772468808196817369374972381318879305214994713529611694471788634105381341880151834592959391404263023633206346296955610635436863541746423983268135930631586265222796449595907600193161816794735368961743774398475860449574213399054552779720906658952261035794132440510548486314997015745692785215719100080087101578919637869299736302344903980396901252325564735085349191319182305608676788118877956338533101990312382293215015588194310473423086335924108175454140631749662924872951475321795326735541530898783415542089886894547988865743043931701634641680372993951321918607981124794219392375155488176997626680488159611786339417082818647716294441622855307649137169536751017989862069263202952933084116161387416776702237726158071880815676483831220502678479417799849622943643779818134846789870664425306693197417887041634093475634918710189779223574237426756198255883915787458831567685314380967446003821537759868955372074509360654682372031194142016215779503834647601342284972764599990647517814458640612333272868377332320632479897341266254917673577460195166606460431064093376280476762184687920470475151754609808927630179982512274726916615582553615011742809058104128980812306914779420736891548550105297733200725454622017976559681114157807001459915877466553705993045013287020499891158208124435489284437323636432829903468906938943603638834001319681664125613170975444066788286025779806070553738450344650480348245145199586599982493168440843310570627256097744728479694676098068132927783738935763108663965579432072012063281490516345680660741779371402246085788906961219834553554412234046697658582108874659115115219935252196154545941128824655414042080479517972701734811914630689073772615067609270338378190431000599710198967570451017047869458493186480589039211204993915945073181694774384458487228369079470520886079468911959705828099163700316727164548305882467409219787209686099007341343269571584342484692999018611508891588131678855320295703701942556933702652044665283619576348334344480135841123470870823499359374100201971463264668982237119000666343054225496473923034746630337029013377442733886553441944221175975430153727715408260725645653646143597362190630643256598380367179649762232635610392691349961520658841397992026235724693971693063125701054340977641474807878743996122573312765228748889097229549441628668465413640590905939020118814019877727403554560866532432311654442294062796510803052340353723465220793899417034189533611491401987108659489424650497705319223432106137286811259371413161778726595716623379339065770650089596751914534320807768194551977438379962105190417991464796872174930543327860205958930620282495903135833898193799084822579131487971623274552902324802095165239984548994249147097791366391819062389696668135067449435843542898413897746270106562281045812753760645361427369416195084943387524134673852488030879326057955694083098244565414249321963474875668707480089585427726401001118668491684237315458909083175398356444988860223020836940652694107109679855395704873487340311492934836404321006077595654864555205169355836599767184004615537750400706407864643841093837346476762781562310427156083040002089842957270131785168812012953793767520411592567933279319619517992597056922903436889812743322805945816603806956962769020238761415569936486888415918824322234686589105064745637720225410134106445798191843630937253492995768188427608501872918658702840367614862192763898496804130310336880644537277793255847351930070084967695978795054819957204506974788581716665016058396711963632023426980859775144238078792425077720103618758901874626972318544467835092489411786982370089639882447097876545770161192157728413770422001599030929096652454206150277174880067429307169829062546864423944355270590787747568235364362980342380286434017010028689047390677190164656424948290893865194414979980160592411985257928027856168437574900041883004496750728639270401884428299963481757392058007098207597900592160284600864828195930913363533754417582869945943341606303658189985204020888478191443305988162305759556955585851985417548133357016329386063437518466171176893979764470547649149499144465051319160234754282439308848515710206731523489643625129783587047573687618403240942392166159924431503031019916440687921177120761440825722979627049842386689879393526066703555076913340067733165631036677117690763134885508236243856484525005002800164679186532287295171230813089912821858553025044607110295636204590898783684374598442950986389979890206514692949362738654326269615072008844881583362658087503994627541327527736358145969411408848482696368336204301153189143216495294241353277454777901324125096294635468868573477951223188356378931866304192390361799615377531580013716280245450406586719378540995931969707040180308631478681457536854311688797647863109800057641491571981331255275643280685552482857851521530247097531433434746872392231520114472258807106813306404165969383896147540332113676671123579139765322759191783129490478842272421871808758686209617908469912818409206806066267224684871977870897280671483901824673051820980725732657477022081529796243611517031520429953558583912804480670203655947173498145052435013028687435580177043407574318761391612742452217917453017067666924739400127348647938370495252846983782776650462728238711177408388010403620714114684176895009230271122059693318133909769639889001347305025620979181836741889523315820627932898549681696675390030341639636823336663590941470406464937329850119048453372863672263797861696334724225884722104461980768686561955909657607184810700526724430738842197711917980541569676030016167538552317062467389953051564993542045952002818234875456836566375318522527836611389369238858742997678323792491121268095605081681913165349891402339186760811190406500942685706990946943579295621195040514011636736508754637138875795476367444326478956341328133472800876740602924805510414434902440193380727204916594239174807560349626237144840176584959745127209072586008874844957335406897424526994584818828615677367823553821414920770025992468813330372723162329288791134436211630923223952585027192594474245786981196380264258901866675527072288241705325914956304579211608476743178355434403507720267945075437986146934455121330859432970089681832620003362139690423257212155286784129098173585211954729857577330665236909227508360756745423973742608219397785303165394422307059464305840727111815459781972584293479804453762148246890375267514979855692686830804242055118405375303302944205389640348448505263814265399581928174959646265807334085752456889546125750369679445948395513857887432492608387409781587516909454756413504918776302144559638334593528587842770656401405682658805328831240113240760115375374678762178155986036057577060091905894424655191386242142483208926146901105817471954208944765249969459047234014826318598533962762907133851444685204103710981584861611802988954682057038382645405805259330627915417202593408410387125147344621378334784033694657595952311772898303128115988136933009873933329414326072417583949323043159554422180178322269062953483100158380912884411142550799625492145067873733605794512101123269095743044528878515678162853651139658190080343604622912933313422026503491294845538105539530119202304508347568169130405953624969475429368734422681917093347358931756240272554790028631759797172734672718387538969577579065521266613940990974638139182803208969203569615854442381076832356777103354192353789607345425640305280077116276013748493386311964267069035712955373002093622712190893761004950420394698110279972223555120629040578653973490379922948243200355635153161627430560587803014483590083682885150119531001465453866015222795754422225676282015133970823665289722492161712989790434834940965043939729192064514382328796993388931578775468092817917995229840312454374249667152533780816757122324857415139213535304690663541169924409900983095452386599139090973010480841034588503471060638533660587827984055102103144681484866153777393251380056478078107771755654071857461949451955770109438227824299984844096469096436888242432116258038048432590935932798505530721848987977059885879049101816266291192919033587026358159127428083751402672578890186066791873359433196813999390623831338420370824675058950946205274224480726058917702168488135597684838889798102984121675739427088122140876444923516896565747399571919222652881746960557843607760782516488664739005312550439626311002005736991708222933099540997356201797343395428821820811006188906557495107589785938413215500788074154095226558383127949939183606262112239464033805817799800440266894155506420228145567277002061160639758391468692187465614780116892524110174009801388632835012657873553864668517094448402578026973256558909740056467691775347640127256011808293918406323574080179650242500115051121236100290877140238775213108739001042037572845472926428565027502119308445062120239119787009254285653298025616070035385186142794024025302684030629282385234890078826942630754184519797989797249852838380712989259067209843587247862927201793137528556023029543510970379878177625645058890432358927971993770525505681337837717825641020821344695128378304644333798530677214785042184998133850241953855731040877291439853378725473723892072319310475292436440567820724160293180978339224949690212944676169988692298756158174385906696080773364332719006718285945700755410540803739328717470588605923865632964090885211526464559155112109867099570153982108715498793757214103329469746710540543669016581748347927919447358664736223206038326204889657399490598466585879711573929316934812519185736800353146291240693225607986455861286127710757496978127267045843121921619538407779509793826378123611499941183562756380237961929891360705716901724713054280316838254225984785154745427137466188484072018704668252468627117610425762980760757477493057611313696273406761329492863062650038367212092606489701008189878948458490943398941598159944287249631955997264835996239066716137676826403620616079397426601078786676626530683165336689662558588971129881908287678163315823751447915385635842177044517464063539472516603652934152843104118822832716580028128367867489432567949860179027009487960163291449488365612960547465568287466714940892925846409340336535424659247824370874766990572581303669303858864418485345267523607599859861027209307991895325612131249684742211612192127370750989566661783470740925793451494303326612163265630420753784274091166651434959936371989640763282829297083844384908749429986435997907400999946402648644751286144647194845118702336342688683788335562278036295595263197415458157922228579614988966639204262794915684300813694367145321381155628989477571911688271659923900345674795286461978791459811600509603954307986623607912075140550172896079324333875067306276988022885062709670148243708502887649001087417207125195097430091299628545963968367773144497291331085978774222713775709038213804912498752342994561493897291691004930325164981872645851999258101434164660451847311533041026958260197725790972855062688262769326266234401833336284641044991398673201555617320333822005010781203108432218060810165348522696035282859729364928443608193062003277726549897092629263179861707396106866436131957160025178452730480417359983605528235655285607277107706627832843594045366146172117998614566679315782603449590794657346381509818438656327231414332821359053026860111251947560653991865037066082760340459520582676551751120742653414931083607644613792261225122106704055485988533635368790959616323312880016457928273623230852594206383986662433309068677291061416796671923104885434769965768329807536002900160365356723753875643056411158814289869668514887558253402297888758090928269255487666033202351886286505308531800647850121399483949892097585790142876442155753332997713757344337408817085235252070898963837346896777103614470542724235542270432773971828449731777283319529527803696728203642111705649811865557987899665143947791518763217797812786021823365604371247686708650488999972751756727817632946486791950220787209379728442437078284480507728135409189858371312044057929856192637141354777488527621179677294947613151528734026269562911438310484867771324706239927646606360118927335000600271140694897542753159966815061720063211716634201163225470867922269930031560400925179125137380288296618277933961185126786664233275528487087092101720825219970953358253379432858356245688121512697591038960430049753958742463753369969054767440980710816071781925368096398109597690226466322345175052470239278761089069886444248859623097459710497479268253563577819858922746820347538147547149952812140180190135129308978308296799270212988858023521377277600645750204439597997336427431526807212267947673531028541693453575658734809947404642198006332897708233562472401369826379757137078881549728780384046983956735554441261130587405501269227443737632642098514779992277625176723972345372517429773299357610757999157993807032262105655541683552958388678612695705673505075046384386186543933685278941550865640260614573305940229822418150327639383362122042990041727201784052179336408080189717764089453337304852334629767459302290601986294040041273343629141749802281358183777404629774379786658571881082455604775857282326660586224470999655705111285149280668505625924165615014202717934719133165358335503904422100027875388971469870670677198141174203154500858839965364931672568810093932411342051079579345934075264038365200127430972873056623968074410388298672685199886248344179535396393511993455253791928251256916110079140805477001103942356988834965241121123427989378503444686118749161759247748819497473879540468509722578600018792849938916361792752670037065134508059255198894970846969747534456319486827360825454220057353063674419902703503862216393199484466178917478878195147712877586469302645567307570539176729525326142021504205271547430879675368471204522257766418771751389893927926577001245723472356285235206083855643624322042519757982665817937523199103425198516364270714678990648721188719706622169481896998224684820522556556211795743229312277108367675387573863253322449667136429319197888164906887805362748696806220649330057066732665017392189840827307856902488976375814031781631308758168307658709642001645187610934906769639151651239033206712321067487269182912177349679195042268068273363547003113346680047050030324709516990931415472286064226113976231017916450461162819226477866273148075313406346724124336585003865181342553449751561606468681270902363637541661441848372791869261466346446898751452946319437274201709536245474707922100658973687347108799366584767134719468900397205333497555263492872504958470917616772332153966790770792690205025289754324303397884499343620445721043178229172842562669750927900478000954264861674666250797192857696440231740811157319138037377497508033906558978841405060497568207041622829022965414379601010399792356912020442208800485254468791290025709711791179335058715648840755581004535652677567110312171530059380626745070374877666393845907691324351779792086567949933232201788265088404906069137362664670910227745614720831415730838793148700756939395094666199753126243926114181641393743409813018276454501243438892670618894326909458543040683027742197414615130033985726561300153679694532437205421411688606503191734796333677988619343014484891486215859915475961234217237972853973407997972117403224830763096127864178266696229669097732889362999630123311458404406519858447301008896671586436899032984306202337642205519180009317821319053525853684253405386058576253430081927742118950217667734098639720765482770447843187810981338174165638836714335017063262247965658437852819532533457595054823303631284676866924617375356589391998100558005268726155794228781333279064730731169107532082373030300275547903696223400846967089118380223606182118509254052746349065774506087417909817781631645787009948740656475048862831114356703624384758019401903139032914593197641350217306382286016594130632394109244123724020892721337341661896174790597027000039458031818059066637835335624850100977784850278521554332424769133412741428446787028835115672504717865848978004618973045437091145948264705321963309607773306393902879657378484856110389534686649070326762395364102691956211903240918380004180998357233198629029925624361441559790340448100904072888857320309139025124145128972029163344973908860278905620933415679057435189149780151737112516806871788085829761535095199110392209617058535839450060278032711845097170720458159043272910441911165219237420339801592032945047732359862646895234519707950993563373800896624402930720596530210180135649498746757980901623042530720438898049176044530780973225462358638997392621134498633654750999399888151562291670963319944719442472153041121230513078661341890154405835039381118702472939471583534596370140931931879733832258495725462113876378820586921636782984349795435501214609759214642196274566574459820337719605667303547724340245232887631376084479919267308910794043116934276675636994383569812251073995702874630678187366499418210259522924108288753644746680762116276920050764708721705700794600734180080685678408419535287568469795969317243463420160159400960435978405877373061635571642236412778048940780313137335127288253501749987901260192755542830723601992822042768869629889505024574347338821901530957006615153258011492929919813771074221306833647775428168021963384789273684848536471331032622659288823816329394504949293954429095546510470865235950643685813725514790879571190165679495578776926259768151939177014152088852970885851198476192638990545860360541459996235182409608570566229223963592616720834208753221988020383679455087171845322852535347888026164456744961211908000499881640601437646096809006851524588156212130318313197423905116949346030554911767596495847578159142067626510932587282074201045486460172654003205193126207638568413162114849608906348737227072241045116798142652187612902000978523052143794881150597348627003571314897414673990982723674273208530978463003670820068784846904877420832937226614381512430669267280297859598631276096677616095409790085461693410785754805046859441776057089954972484507839587953353554568492126808260580009267827132388992853081364568335593430969085222450718904832712806204758855989836124079607346708689459368495420213937471092888431417728195223135195568915255891447132047086171409109781548210627120047484924020439274096570963656432883075036297840325394991079347093416845436365910640435807589610007060838516627985790546321061521659025821804592745914337314681968476339981331812771119491307266600840706712657495164001657545773795789801820520125799916018699321557531854798085683836235296590111562173849636223607450910513185087217868603825398085104618151931267568471881071233035433875679526192284082738233265648270310211403934987265938857101592868091313883804274440884069282295582617404576653784972552148304366936335820679924317555120956702058544868316174142563766613288268222672492114128625930839324590021108089950526164895781567384046387314174285650035183750450271888553244037944754489379175737689422825826949304565763979717309619801427661706019919592312286620796969123499826728480744707607583443657931918323058326302917537595514409810160767611683383417528828651154702511705894823432548303424012679263515200352259727671988271723716367833600096431399693696628345562515879448957456006971167627884638161675259620878725300723154784842304408229146505961559928482774097424214627801329288644812955328422891782044734565571256788726171662931982483230255076696657682306036333313642579295892398137045944287640195175017174012347980665870529680423314545625085805434069984178319633666976782877148121057089851337773087288663385238234541648423442293038427359389314594935643660538105592709691472740286807400684497779926528820094368928459314340176059380180203861581184344519008859729688855777156104128687383910227689952456825198725863106007851534909194782888160111173164269969681119990918755425675835166801993420455778990152929062033267460120674145144463421576216898284526239302821392837647358939584267209670325076890179598042414039287144738173683774974789765776817219696863751709440051233129749425845005659623425036593336120319887115259635116277852815177565406267508356335514937985057217524537564260499813784923170606645534807806185343343574883633911793500051024688584238081042986702190292445180250393058134451706553558650401990535898822439318500531506904815079970929222259529487388623222883948580946102780436700227377362556822755692233098537249657006073077067293230230530469481720059556230552421547891470683755483438091273044694610600276635594232186189423609791627498292880247656377386452647556598828125487707569287603369967608174153037295994698299219615903013024902946874711857051425989053599479622329410953969197526807421967613872181320410185709617598298004225055591006995878117169868605022291633654275318609681407526204333795436084779146427903285258252066839999895424526039194129011497549645463656852256832778823232798915286072561551878687758785358088368312672604110832518447268932134498280255428433465011819404753902290334435236445604470828410355249340372617167684895314480613202359224200686453236687528688213506118848055475162931215007304181479026475171188916964068268213530616194987423432446674261030061596558428400678244872707492822838121487476132221335110626608769241674967066936736130319336574382813620086264777365619361358998759949009127463989667005153252650515877621274653728249270618460872550432462346342772484496415545901044056270134198592637903329106572036793756315485635926336103939842958432657467805052585413342652901620405671543984099424261298924695835946276475871853431969008543824802118742975755629499474027019343049424011054377844001779624942518495261512337088292349183825740769401036896222263206912293683694707243112625407998802982161212484884044171973911346144799279152479698352340634685297208681275913847614837328031669163128496993888307561502587892900619020437022427991484596763797692649496617695460443562436899294576273389490909142408461913912694599429749123022351410024408192517312790974601051606271192194891202459815180658309880359810781296797471252284480907129539069283668768642690732009662672931201860703531612115427158932593405327762295201910319213402671315764395565960699919774041116077909194499215978397416209125910090299458146900338353908381736780431776067688741505339720231520330964768288879483302825464499695091958870955974363153120158704722984253897245472467975959548168350339458257448417541915150280295981744093774107058331654127934189225882166544484852827457061361871095694383307999103980999460523161720370709067654858762462393591050147567117663733435826525205106625940221834243774560481927440517757571299750370962493425184465432348197788580133338581731561377690419950921723496928140171540447495867444722391358029798032729679028160353577146377299210440966921858763136776813151967187074247307898771061042462113420443181521447797107177380563639494683324882182994917860981655954159489576719324613937627018268043169382648373411864496876113427036379307731622994169978583882356679770099834841975740284230933526801091807875854907774733626953435066297564098646473615872314795199303581270930970824505716809120526805287127931211959588303701352492340490106867848753789962860427104665972702009531936184551075232220658567279209064741175179505710257389272125167640484955066130050840186739650412645776052216341899486988254838167252604609057000299805485196012120352250670658329064340937208822639144857009713568993722419573423384940828334284611790269807004840757597928357049403173898352756666929407479433451918653782783080958480199730990591167069948793171869470615287687576943844683408943740579739592643375254213440864812201731664172205929426820346204793708510549415182331412478344127964103692022901550777706810989233025632068223761426026206711620857466865564876642220201673306508481619115280991741399624408976457171126671085430832885205702249069737799782369076460043972404837295453381200847563417515661663070455457941857964053704295667176747927380526563226050361692203784311311293098921803218211633549632481444908271417367091431406493017376103364745864159269125365453244892494907631392192571921973229471083551773085703739304331740220847540551656754260512024167979612691607858428090269598389822301385633531352522546209980058442990790710075923549927130285575898654589347287418716722718540446934648385376299130125828382296831789275433474929916917031140972564722480971575086523338801080352344110816580511094384357840256504771049241355677033888059703896180224167833908071348645585126484431036095595655853325867573796457236525442010579352593444335285879043299632817551852912022144799286734090988090149272263662186019402680788387173011351647326020851375330611820093819033185978414827732017994905070328843807702536106139286872153335458261272792953286460477926931528109247388344128120573977835883559604999753051312575897866081238045885602373964795136862823639761396285012143755916358807856177213402186568005697973893388852824297392404245571473539740698703454608434253954203449828971669891058232107309702514532413691306519328001566905342803402119705983455264592953735038621968683636954404756639406253535118945858972130129326261861583047353467185331260046640532719786545629226414480625771716852515294260628245781928336983787988527281855087065330349857507853300971426128080710126062027895204357902008751882831774069864603784292268331174330967351690371672052029323380354193272189425923827946608570493552427260207262010118471885284317587342083748987438882558247620253655561665137225606409777428260346702825730837475030520481571681523103749730748091626512434979281320042194579650662301136744018828796705909594446764383017436572692411551859052639003130276765188028500758693937018886462593754122889452716035158681068809598506244672209842540195119384105678738431236880932273228225294685511650151278998396947354706758792425776528057448025599057386029946340941505072377361379653536546609550283444583829736449810316086104194117164055067908465370495307686591417291083340722822756679874692538848558156573907755366748480021761629512609807502815570081954793704854805260985232871630195848949588564567221378117927207461138326870858197445097452760943263501986309542935199619233844086589365797856397832867530429415356195235173842796159763242830168410240163566801300404857635392164186626137782285948047433905562417784891018329283220266821757064179066960023903904181489842274293239298295877152719376625810483729861863904308358436506151158614303842887906277821406344577748007734709337684796231237850995687864430513814892478182387775769893738012355976689335417166736518434807552919577387370048710650016216911956722931340616713516678552110680421917303056119373380432794003036669012365975381430124046634022039252041501318305054694344614183168166925532549680439329933556314046350122744600706517997223304758157657728466373276671073808765191945996049335266061362915527418162834663793958511125219845087129458556851269400312879982107198934669769580696411493263374941358968289555215116111637446049678267613835449971497852674697864230963036279036503746392823686754948946126394743515944207589018607528027983063239607348211949584466362723904564695799181998323503559743912767719292158066076513600829504407468341255688824117470451916793248225531256607142413585346603643860308947791797827424596322039903536606373576376803026051998685824923196483016190691689092864202042279680324160328327426093869008903295247867810619758493550053889659450337229509237643246351859878871558419783799488201728459127416244744449575320914924213975890065496912554798788543064391775611071368517017254837154536722111030553907660306194954058192606959572093825751968029511275185985822773894779096680317823026698791243503596716125241663094976463411906012753494227730548853665523073772713883469119301006689351862686700609934963997203079246881467311871707746652564907297442157304688533763605739317094531183884437578327101970026598216662037741277148738478144194241920727496911037797795675384674049667016718291077794866178965214151401171573265006041479352049964149941658517811472397608623648689636667736314903072763775704634099194359149402436181745208614702173926448264942448830950938174155958789308850993122645835636170491661215150123420599446798471814908193899636773526102840865078552034909758888661703083345612789249045501148486943459331666869029253077984977044340049792546693096679469559924198184518836939559956369935358872695620202155246157588529214038892446156160941348332120755864459835498662786174609923160569243155164702305524368567333781880584479864584754979893346049043513642119899616578941357605332140892289585351048118538759954960856787320854207311756551287589550242433295534292270842383635562606791264271326491465721158922493020575845173262055193478149519450251522144524115220653262666360794251258349900318884273882496989599160328221219042659784917800394361222841859197860958577057379278424323858106501034182081576986413182343376365888554063143622762567313444574565712278224941406171018714755941431772570496405844936164400816349340981880022284096708901566690487585992180969103733812931551878052623033560650927348267242327927699816454299218365026563716105358995660928214948871445842522305213890285053594225642370290411266578509108430976813611279796782693175585264596494657527834467652142475086814769628202083533750858832827361510515660907817317322448781538148885627905557410215740638576445021541650315932361828067170952112079021046807950816037243377174034412242334780342640787484407624080618825421347217780182597342033619292383989209150569401112576678476172101894167777480684188763921607508325041858583867545669516644785484454395772264666174475957541240498845228549085218416875294431979450470777526640991806419579748097799756767185039545649323947285821674134695988841325012395000612395796284047708781563265540581297580518343792954447865080631975920851674475796997252716013770602802509382877595779520904988985699252152897484907514656036600207564750274876805542622958050529708063936364737913471490174495970141424879905263639677953703982824459137517088768396764178417569796145240219388710182905426652051435293254224450581342324572536620666863237228463257166371905382699127277061965181993388502027397741931184753324435183031238169649496661893819896447339391370084821159868345121452808219037888266453998200859885081222256277660851388015448154647605537180375015020712544538870508606850711916676189767678739018742874435467893053484160049370424526302054435181960574809450555912246034019816453526810594627865925127063059865167387812117992877966441232302141538453569095299239006700040234766747346564130903366520893258901383562518631039552906088438898052040908219945175907128431064546670486302765921155702371546869218178876546139577010866005342370669957477497306637340789366972346287549596959378816579183467760043074617649040585683383051104397495390762750357632213122572342534517568946609718996991813369210943481647198642450961729749044411533245135100831690054863715487965843516696350501172472884631332735325135417113705092277876559785044767795541941210616535409880341193205111288859660747636136728906163958707623268807291729545259581978208056156668145483094940298798571372945905547406047087128307283375845443702245368286517753042598942622942545818148574223216288350300579791193017518366044191502631320427591057338186081924507682110423989320942888162715120171369329661620927618723524673351379913494220253404647245929126826399637329229166695237730445041241378761575322573536363304803431271681257859567848678038070404309584441372940132693249494246940714927258020468081801128217103634210992256749601059054179691644123620311369866968047304283642936564775884025309397891772774199344546181594720032052176167788159216857089588462064430889610816823355044147910049886878271030907920938736616094686829502816018516496721027402731163406730973494920520275170060971517937264061262056707308968092512678432474572808827224820149623914709395247336093341842213085340249639037809288942963508993118343255145276812530170257360500728641182736085747721213980444578810082495749317101698166530795997513591335183243788238389601729154137324220120762516127153645492916952572366408195892010022507099402883522352180920119631411605124478304723563981639283765633014963233996673167717182902434322712334953446400503857726401017233409118587106821580778795099253419032665237465479592496060014636263822065606613126871365510505417018707985205600455002476127584366322299957922768454738652512242288090210264825164985019196179048923236656045124755943584481119753065199306107944173762994767655294609057258859370126651275631006121842552255800562250249499904479822863748552286819957016179203780139551936871118758209657430695187373695573235521010505564082514652889207712595776902205698824537922514381654133679247421388265783779225865894231586872366305293299326745546064947950236804118061955455096366846607040892073096730163861563766382882433607441999673225705314628182951430582649481929321196470047810966703045398005861128432613547230284618926182825860048624267966302119335057433102141515687974166151173552936387283149496642728450277227991383734310573173168653885386414610622157732109210135425083219549431075743429786213786577089985119636936891627080080880223523342118060500456142548724905869609161211487950663685638654341281581557041700346805993024647925120294952865731012478683509986016619185723793643256102387414610501541789563455013009383833380845542406424081352786745962838187779904258336727214601709395182938975101981677750191934898496053291999595294411379365243559156023207546953143227287985569282900477857210906842848535268702754423225944085159664972419261003212318864285379458791155260452633171451611917099192240009999275566810808186506871390443129723369475768774916616532405308331587550084700633179312385134719813106181577230640553191602423712527928422727795517202491286693482331258541933078950184449882908193151656512279797648694725146710579883088148319761046099600572106420775954793779017766165365713173877577607172590417381773221888401870073353548063258691938916653397952415107859476694533656078147184417610524196960484950491228844982845124416818852360860582122386131331680742157502033202086049307369256269219081831803545471930828418216574039478175199082929669089552691903220549209684065081858004360792623880757057231742717130278698103352903378105519021149639028042110849575165072146883325460278598783484221932219980922037885977547520126571215876033144441875768922481847796482462058016246819092853171087171684250307592547016086014358278094168508205604826709382289381846783088372776285298415194249989275480512281949744678602626115655737402839463949542521613593235128249541914002830827399720767583724673662645923417174323735006117754768844778887929681471877742889652235501098018994546413092834596755526946912593166791076449289031436786344493813186523131069361575094609782109544566094043907047002844417794193549755133736271423327261512055739454327150052656124469682037169610601545350296641879062515140025671040215767242806334011247486554629767952095687229772068235693863603482748778879156378950337731099370215353995371328037260046094701542508276486359836637681849559327162568061554954253914532796944493551425027260082923037160116937557421254273459251595611382863138856906372505565634123585479279464690637275437753754813306007456308393888094764556475734521101180807222607230588526641692212652916247953149752816727150611533706333402228911916422562992456077390487337108325953814376715056012520997863764606027333049808726818677979806633322358158570009677548373306590193780816719782900941604570528580791862167947681509257695471052511911746316614125355500646526589459379133526319862365395670283707991569158459812353062579526548665126061641866056674982812690392978782068119794317135652228476902410794707475476143570451851278345814706483088111507106836555328813169847945704884552482779566350996488793251670116860849664339652279412491923940019345462155096545319579022349492486322785507102353956134186335145678148048752888223561108248023261843463691752639516008068278150054341152417357808083145382099221914246744786503301807805243506144242462352994796881927044964380784554730502413114124178134840020747812770099765129661610124810164465275473675777318892735607208208665218441703416796692641371174913615932638062774574986410808362664934957093397313862287629425245544878528138375714845703380621268582262763656261387074595883591246063827650925947430354702270879977600366497391651241443988916547512756990812654018099245611872102796451457218250968809208300257603907559046289046637536544269696546298792112468552977304719659667366338530619536748523434642857228408584549980537218983124206151946662721341724278336450502394320809991529419430258110844409369228383113259934141292141020112214231034045062881743161807982646181385250905889156923589221116085213218098385697865182290557054794202662452138599359085302197534995425008738975367197328322134782356123576968033689068999618496607796038088812520613026467993063464769940700628291234258129668743044569589991271376753564803303050749177431496079093558216565776555213287747445231560265879419320906786339556922918913533376704347971606184744151098264504590939155590569174302484741950155739309952471757331612722423450978247411134705268403851051430389979456585734151190733309341024745593381165091631378289116288698006800985040981639923103250273216861537782510494779437106849637949749119265845073982893272617933962095308870011872605338233031086923782683446155626141266654322241624407796498285129566697871544074602520039725625830374547427479241170163406679566248767894243248548378265816311435686208067859940378028189482591983907455868422585517565864121952947089536038303539114387637018604394029011458000904524500062254516689549572490770837022514518507263025270529185738651222507145280429214153422017308880503023486346787641967703556070665593539778814938335225377216090136299799937191849993718525668439619240420899868844475627623049255536687416717432904569194066773842125082805546103635527674822309010767969511369390830457335498946185225763514491616029056470770411247288628273890289028731814636901318959284595808666187845299098411336165967883388654226719417981089196105121020516545571098801581191766789498218759988055717548176029524436506653916433857869986564789977512570070240539610732153278760188387648940318299899184488853394464893852228383311282043974723629564631598926310845940965029515145559203044585651041599211342616718609638711270484088562175279083746452248177876851282714413910751703133374348400431949199959631119303940108341039895007577668946873527399827679153209164184818188115082781540238287998974692977569794853447408085638589295419226576396889604807093362289821893650721754551602485886526185717259231409823617793337830680276535636273857267422493824716852498874687723935245389627311658752344322688858295401209851943101005215199326447495012251413977859310092139507023340670623778692943844744721925750921159831431568445281312308009456446867344601899310359111682255570178546043383010169143293892077999151427389373550607441001654029824496844167868289943314998556563339948935026664649518695953307965613139816417199864174282507935434113616679181410343889836424423452354645941124590736277412278477464074106215047830599824441413628966187615831757102832834285672405844904736251565922729939482528183902278844503506248825089223881640120517824399161624812278385167453035019172143145656316144436112684392359964782552256026240857896887513366305443277594656308000372056218373050924086814119345946365914308508057277462686186005927385018052242523247223501806562831889671891714671698950822321265748701225794464582570705268251317035712939451247006857974818386289651571319301243141608654675964661407661959609200774820736596700827872202252612182428686344936991151034539452366191303752634834409997578307503961569832575537264449892537500905245728801725592853289116477626983000524430009333866301405054555204237435141691899285810283121304838873064589723630793247045196141526594031607911834714074718436904464605715497844543083602191909952370155768053650704157414896271565388308926748071456412792891694982328340436582605415685298510981077918872847852006132018541621085353249797684473726389515679757022945717427993789322022787871691416974809140972182235454054451752662096226398994754361421698847070732341549219201325043428030005231446168641464804768122937893448723163117728063071699853225229996314006214273432785453812353024163054613794029196289151483186884995919787063871585200531075366549486999579999917607867855379790443882944893843187319373455957112078771388531759635146718715852883712037522049761674218900500440216982399813246129973208374722626572287493621863108387745268114045890309428286849380966820828296210414949494695373318299432615820118956214816831134345741333089101335663483366823174457165046903549087283391826369817618131168521357186999477490897780621783478660063597633667389536887977403107387682443744530775123564852866098673100298236739977660968488013140781997189658011375008589901515123198913556043300385296001055361567073606503407669965843769554844734044189260232965459141506238250032541644780282811482304807039559090952698072590697850255184941437579138013398994403653987605069455659567195323331939805148209605307678832729300853449855319770743522105926071089772564648433908352144386360269858342116526821149537760041360485279790201312427025334666250592703306535444201434582681942127670823852260753733988055475694242593660241559077882843069049349241513441153438492587870163337489754606420113121713374470952615130104458735498249696880357685617234330774000840658070689223106067097675135540217098668684846250442842953456489043752786855378657200912399118099917442308618414956868534938826372139532424418482516918022497863405249931643707999399004711302189862367063885068052627974675162423953612720208597762625291752166934689125198762180922476906529517903803737681810520861617162936662996115080160882604847177078403997160320831602514948635615330096193213936311289895783207669720644204573169877481624431921507439189364855652142470140018814203931290545570660395419538957056615019243120219706507902466639087888714560035558439360294918339167443109995944771166946202492333695592292397647490610286047265665444070792785992950576936976606837171421357096714712310054622208502410655005609852134414361891507645162437497232215610263120138045582747621884983060983949277931679664136314586702726581223931798354287629568688512296307063652121096181476122265054763148755462261907160866254657958164132208004685675546332770798555789124485401259233128930309706050149951373012700269877056930015571351411756795679003731313029918180731056315600547632348330132748158496120877917116320318997415225484498016729567517859987081812366671021662639671928458913306283697694391844292844828905313170947973101873862454132629078742883217309826748535492764919835528056928710442703938296015314338294932213316482322858774341546311739496635287463831803752795199060843339723703903562688832947830916215281717626251895946291345011957394742772944392013595688687377753663249361959159855569706408395789938239046645136742146634943656550840437538527925776431840344544253798613430983834060418160677688209291304459261508842360244313908569779831753677648363999615605751412928657969440728953663451850248084090755322515349527226584175144676875802337116360412869870155558392497801992332282635660280790367668647935842304405413405159038679002020371015924803598800891291417313786455204304473327609176781172308515103061973348197673148101780803979703250793855983096973947440796684812863831852801361394326745529745444777769223570761054612619769804145575956790848552434863683597792023286016361949172204930265830533168854638263128790942306654595793335704814676581546223643327096744847541647764643318230667377347958773783482182161058584703242467513855600804853988039525452769056927901296700245643826778265144058932785657477966671982517990181218244259973514527739052197432668144719525019368989394706746218323457827910477955177403990326427333247330649139758398931678046888681754899784853748584870168105378134535072471406292022216056461371292721065157029012634310369334082963360473634631252482858356849915785586190718408380528790550818946604069227244293568009827994454773040450612952029334966082570175410749339857280630404906029300217281571088016687610183471777445638819307815634320230675556050538664787507785207998002569649122634392707136118187235212744017807214967426217710573893803879194745936771561616284315538897741902782488885784894319406686310322078637377600128153110149559513474267260418233375060469887022640008193526871966525810052020242803618744908032103490905756318544217242423253662874053476826097398278943234713326051519761351227270505411726545918374340047565709581100731598900803023238959257009430654209657830583915643071538809965370515674206472613079793743977569959851476793386353152137682169238367857214687733551336326943143594790038618166978086800207698958169297643550439533576043948062555722520750663816745290767228101351476625756653717632418162562803241440450778269393819255089603775172347960779058047478269279313825502127963622459427967093594928349135406412970903405412384130492127852123414874356719322041001089284529267215547382231633717197204869486322186248580005133296672313366956293646200880800161627930027420075619891696413343073573208569941011866852518488481948127663761036073902073101940966150971538886591508097954279281945211669303142850508988769496850799763283631122630882616038570969643064336361438349142835029015587005083771569831841750700941666115670016472599674336648334923324185178579862228974498486052248797230422015881105327713478999034317497557053531608944004501883566430706852822560621419418777264493224139625091580306991103612313250051563202067050122204869599554907945733926774979318786629514558884848252008439445973055755202988073109793121801966405482461310042809328595038557030503484989127553558904169444494573296345825586520890483498192008877890798697039626797061310726424172518972650398574316111807878553491688357365519303165787428574848705772143582785467646967743614035452224388711210220312214166995889535777750567967840832966024265072828326136405463206057511941702877129431933842474074658017895857874952053868204224887800231243969742151872972094644855172175906610539944412633831332452779064977885275136683724318045917568442631579704532333563705059242854292632012381644794605221263816662296722463976624800119319452467682009860426421327172364222481988550228067345876423755267405724993854471638264984119150222373432049426636075554284410499265182750759851712085409515435194864065564424500084032470573137023935788634297597049554644653295150780260551246960402541960534969336130660516703269678130127760121392721777545510107599879971007467516375005578837509507204858507722943219514948150665522674811567827313767753601992792861640916819411113902330628659542837661373277731673018120501140827047254368630135931724884947737734611526201554327494971468100667790404813786128485930081688559196305599533453419902097292561644948247370737653172458053753923469207862178966915027469296940426395264760481992880399263319454802402631576218370067104390945878211698666127305028376371257103540099813048854477397449969967075844307787305005042571408398179852394836836244664401023809355778240251872502721472570561208444006494449857797667342102979580665899685178070299749169144975394065299501716568544651127006279611708346258702714238869713379684124559753178369498072187509272024593824683974227693440874325475470860397834906176315328217930423173689896580930124846466432257066456782426686514745049763418633188626784257377256004898671262956360112859301285954723659992552404753900186621807608676442886725005951930624295014819788052945991129058684344778962757409700129733465143437657425961334092997478287273660121082228821931168891610594906939220732957437455517675246758541931564186573037777463783249131899135906551580476118483198090609427192269129008260993728888128023037618257945158002319229253887618021831488621347528106097000450906804536182832870161418729190864522849071841047412271773365486595186817372615627347327048446196379725101107847226149165744446840703867214312028031153563419318943853918544066007755204452351256129903229277165045477325990239050168518098325805454931942240704504129100939048838682215149242530612143876401549263904418942794673537479381313915179639795464827916715663400657091165492159175460218257631069045123183195043728752579556403254669721487613367864276978192717840838592196137500160197075356243952382010720542879440752198156402931584313769471100703724945386775842764945258959583720960192249659555031461172871925051036725392747987568540564482010098164405677246698700359325883692237336465970340936906218092485328869403498687958933456205457349814693362447196144928337304206853202153311316686274345320551326200183991214905739406704618082058640356889699026525041276205705570127569194818009745514879662461305083720557414706465038269371036993828688853571813949348424141181829399091007322817217284227149765934333907537271361784883106774216270252889071693440828776430370975843116496627030820606927900408460116930781186642321233473696987865723027991488080975984920970411489050821312478559463900133578000422563278923136339296860759726510677955691446475637445001484159748186499424745609876585129062396739380919067817999345998547275794232830376730268054587561490049811928684938139303758775133768696463100517417220730379476296788700215624747453900618591854351281779751009546734084830293098708714681402387208566198831065688249632143434044221752747010201964347479292695927309636393562109780474527951282167074606465709787577858689622957566900322964191008568816091459527397543000052835326065391603528954792209742072290096753330433237324907478337894879674464380929445328126084341048324151724903328903907920292367127242572679843069656757315208219436773754986813791369401392560127759900059111954370604486441174542103690771431240092119933340364277466949942226435170905810358157634982364747211742800664274965137589217751227013883917835719722351997652989375845062626433132488169387271644359663920157546228196389368897273916899983278498673430848851997644466601083936162523840952212496242588784249402787650003291760757099531082182850715168410423404111190174281696070933420739082616566476852568455082626609566149099107868899594427555828712413299336751104312244074770208199454484848013885462426866676349769745744310085170723041744374172882559382325587778090436542815489038585632935585488181132552738681066095435159138977430042217549322654103334173473069732181358609519875353064368115808795401500088497284405153733304399447206292215075058759882992379528459755864209754078891412125553808814337399629657497436746533416641662655682702900036111405313336230664715254500620993365472879376924347593657084698391257412282209831031461991454059083629233348587850249185139082637215266242498218214556678320067000228598352829672214051898974182265810394677089162532461388164766500598717452609936403852470819412977138038858525286170990896683681390609614346880018562395281654800091459807965402184331212300500052248768280959294113434967248680839964732603926705753485775914647878976301849425275122556378599638089321874652546745171558148055023772137138647942217840793938354624910892381906619550650448844210158606440999293999526741178613923937323393725721935961445870608113725700308869807514519554435545864121338448550077549561004104467699881597827407820014813854240930315818401218002584423289450508540452200307608049600237615080169648924492307373180269400145116778168747145969027432499032499948063621595683317981448607549917083293911560623294471514009379010102699400189321266386945123698540006979672981877244497899542377120909797230361570831037552094098476429288332271670965239879008226347030892582587657693684019432993305549058608544070305977754969779701402655027490291772293627300504002809206166997887901682604739005616908407238788662641633383663544561094677355618058465584274620843991957919239525080090874980519773051961680956088399223839217052168182585839453613173140819457745750276532082740964087471668428385289137113909938770950682099200814840997733411251374392606963746044953562369747740473103028789965013824148367413638108066028804311085149310287386465085348679191087043282225669879020675021515024775943518730890697789855671516991968656476758164161204790872296582587623633749629472163958574422765722755604758646986602647779076346390679804425713794464571719661259975583996205524486157598394018146949707681894219227456344647132042163624379979773714608006064222401502584601567091989722620298464756324714527971781812088314105401942102145081679667600509557761911867306778944227999298073035041456613445273206234772833918380434533010829062735057606271015450080830553752727010590660951414830250278884640623513507632202430377972023570899666061146484605424229550350081163487797083975509463028073009737849169123519563524013210791819591667903167646511113791153969394541874461169807780649686968287490167748371903501842632393456198375656902480563850454632137744651632389375968907574519759039426318421380661891267257272747807795922480296758792632613756669714306311185037125234472388606513232425621013806380416121352466803278408340366258389306337586723487616693968283849551955037244383883158413044641888640579337418820201175420608589694017471564075154684264446533259649802164584671959564441590827180550618882330286928397927172705063311019045793305982588311571156218148841285441856988523943496838537771379412229501978363079425325526310734805135992726119174993298039398856786875838942004953587243930495943047836646562976881107824429102817600992546104524613347386747375492845308956391475317683374951828422399057813376040707251293188982823272933943604553882403969283938712857674495660523438545282380141093815205220532410846341233410683414379682329073908881897423696741457323776675182335242349390417679188078748182154273084543020660759840998288581711738621054803924956503609808031018129316994048094138365811761477230516161739038051709654769979845244458122074645889865251412432717657858699006500189282897159961358937293431540027393286498349529916447490439718194923694488203691741670696622375640527312954825081645003653927341536721572549911775189867462350731677999835797679610239423998219489824519459164621934121609837139221047983976603611122477750129628460991076813228981150735318675842503439390284079362436525207348666635194373910252083123269052680179284668712716846542841796147593082624471322920281775451473547581496035289699661653990315458052335818400065711846384719029205898290634191818961180177695622648357384357003485811718040443791623754967430902407162374984380318425996027490062664290503925948133609981180186517966101967324822865541218444505377671159267593670148695600259099096675173815583505979668082786176047186180136178656791529452926260709957940338734623702520284192076681001815881397886992615384758175693484774151348651745309126278566306289201774421517814078663081167813363485973035599699555671195612689976991505949494603563802999056053943454396343723249993979333064859878099920841587297590788319790977901076339127716957228322752836806693112279343705881840710289232849795847719789550789552814183691298506024772116261858264145994264950217146136734860110122233469561344494137343085017121977003820326690108936335635900766764293439918317668740094064530000408650541397943282359078934920877827908282892329973422507053907945451799136179158202016603161806970400779981464761961217520804653681307192175987895538921269332627043895138361141523933811650317142311929846298429128801945400155330448032928259965348158903351826151863162389553117463507401222608012039693311014372662655700986039139226109800533552103901764802739431047629639707731816322352348809889391558110458723484242417874175850339458276864291938104734594007571949097483144559623888240793411057529089314055999187602883461525736750688251000857872406976212090073653564763347001796681903898211986481186579487792424994914340657046707557945085405386156736419796704960610004067172991267554936652091980096828825002853216358461639538637916755867931465557954244921895835006350016191398729909891889056933613606784902916628306160990488636252995507997649328058487876168873293342836958707751356966356500940534916455337278094985189209957763454241116859721834297890650409375055479020708969091255034347369802911503244935005539216098079564918957799293426813051268459987300727529461014633092101931285566095462864173654913912314342628581550293474119872522249092253172618911504650063030893272216453702625457583980056689131226324341602720117995891409947549970942136979277302486447513747945746383642420762685044912701872139665657150441745930481039689632643312055715773826885093497833625039893191205036918285553923123667964580008152354623093783746776976635155240615333865228457028960743782207038525653180792511619090634028116993334242259690282957687944162629861583428522338793225805140965399121930096549880889835273071378851890929237516819407389807656703970128193178238933829534029604233655142131127823689779694964370804964624201855978288807230092713376025147083435329915495268479052469743166749639026094296947578236980059946423724368882178038371593936081855463022831499528515870654877212310619589558161929520356507344477742548679574386883580053150550229877059107952959215678597778871766086398132251091099118660163131665812463201565475438523003066410691145502329151272106199573923413750472810110429210916262848187976691531451012707539353138280264367530310573546911187492702199124126012836381489437091999843573336898671535350163537499690252467544497389541923943478486382091521991055136144875960023994651839024076827069081099300582993048485462743736898322646338935463401461296798563355062854771765833058519277032203747049340726389446039989119555553305301084290219287406908259933077592932622551929299911670704061479259028866773446997481930804871122130517525235995601437742267757979185373287132733854460002172904261238332805269319507998164394960705646770705542985697647152253523367664093208137535671785666538032816137259934784656700580367024840196924261766744268908593854422030185448970591282583566483445536994964246772156328275913658302126843977659531769292051876221557430575283063318134197723191326961022264433584265966876720417806246729377879378567880800632196041397900564885860201729238146575674323162619336186179669574620258148505258995729708549532943911559115531434559903851886929141098028091556721128766020863930428368990764623269446824808583892432260316418635246642346072146571492958040168326937206112732922471880196302283506421966152180842359805411635836942607438823323168312577959097665628665355784624012222505021168966897451509090518735581319535065602656735296871922571412337166328142681466710775479269010256287080381309152660701244829076126689874584686378648597832785459051852630114631549598667552141879387138250442731026692583939281752901535482097319833838373841998464019260759275223737488587642575071138291826449908274250279242006449810461821949920625641561475666665600785568273421739465386822008713672661063111175539264431428926710807582600511673518635828892618057218011960678939590751336417878807527829226083536290535390922995933891636754132898147162044008965663823911526756433312214371696314435847521298019593607889838277927835763305612343434688034446001136232552379593689155177168076905765728668511238867045353005411898756767055630350446648051084627501303712945507963523152573913386399608554243409000228089616045847942825783565975413172445567170071195239224902444508488058453675429244194650433334719434361500098347328587881371171051513541379075637346956387072462140724274524034133148271619892137057335537232957751882664717989019725656750463626581879693657318733394351732032586902536621774599759053047785200471887948372522120235088042025407440934700283106510825233699581265252853897909713349476412785602869509879035015101042756135825443289922604239684249576345138624565653476130971203654759916142491691629177729104124561046237887304665631455111517574777494112458146589527626025133046759424109106558098554216955033476460360706010449383546876691329910407471875755383998327090221399593614446060366242102515670620474375595041682363330916615426753662783920904572841514593521987314940663586064421285038899504407068011201320263942046464052107822196992920972856571038868378160187686774135350071654455000252438342784330363615229057183229147669834434330433787382412489875295531958089259848162928438042829920355187397855686659515152195390891709189396262294762444652965179683362864317313976221064413807166207074596229142966207835686644786869401998426615927613753290925774197830427024194577216862926268782461384300266253133030380215019308029713958584223552360119383470783580085485920811466822825706277200614308509948948962525030530928875665499411379858208007965836493666262005454972524986535418274283074513175481127340416763602632129693418485658607199832322207456672784875700027334312830221306229478672810567784442840551242777854187177430724099660611453210844465739912121669301240683530803994867825820291222567638628659954597307213022683907539098857029233629164653967681457414324019486946967929229664240430085744552769839152039949256549283247393797570883846013535614689019919561749186758528671496064915654454770641041610327285337123037647824281789889643729743090909865080540754160192742377310231354576489144840007486630901323270765159051440071397357631689812809668163522706344893749590081830783681906907023970434099282692617777326982787334532915706208495089122477124799094864963705137952097258834948525650827747365177867232074006149497929756119571682087514931277410264904214905250328209161396806807063940562506787229402842825783830819999556908093853649350739345275839850514961311947216756610439841988416091510730656082586965179850101939747309178432355038134887232488951944888385709028199046288455948490777105152075567918101644444120479776053172066252910437468357236010124238422366169962810797735046283666711087772885404444802301505178823138829425841021885550605308860576036708244031831709675872405756069441874448713507540254850196921529411490979596637702575621252882626998953701582907369573972784241642291777858614289471457209638872694366789212175745753147022793549131196290049382768550333402762028002302782409681043665393871437560980355078247035445448155490851986110755854985513206028123973013566380994233927689071799486520850903976486857744783940891592717623412956161504179417121167431077895882336491525854182859012831711397393309007869099074603754415185901854034567749482544230261152369595125095269290267624892955308203862918063274236059068659077684499542362341464465819033363275252798953563264765406775824300553298186882366621145303472693064597400507715098463103228559725656593839792431012313912200180839407032225900807996469187991365665445403714055368509813336590571844986529467259459948841398598599926984472956744357194811803227676395115265625757315670113865452864712865122903291911158585387798861601969161014252963761109447499777930628038163704938398442271450096546223385185892085855262511292248701619517631441659018751664173825872039639146242921267947738038751108278106475573310580536468175408923648559289470215587679896407498749704693558519692993259372802107112513492003415150145538669021813451973404280716259116050951934483544255126353248058661696403243912809666344709900000473520117047412118370872124810821810946689379407450433278715625647428814255131889659135837685345789704127189247483406923280240544720006705903141113200841284962786891258541343024968742192895688800178381035423108485137316132600606308365165375799724342096943755609335353290916003654959298448693020518837795515539826392953863749671210477350029184720338380409272965519769047780971373489169844321731857307781260994806442114016104707712755496762117113641683845748543309360718250724434379363585080552984157665196981488445886886637918118582796944906892440517122356068948782709362379262376303911082375615783628219220099996437703995828467518552998450446370821941930475714482340563266254123631202130834021891324906838289040702637608994149732759470038363120205662760233301285047027851351960418169925373172945168681194419047802905700750693347937268657886793047265631834045759394025619020606292745775769169405314558707818513163295919092915602320609839182838728548399386417837744694297859992597133885407874691036369620703332044847631842880091810006637399014299072403585458731591671189958466312725312239346692289061298876600833616112642537455563577524003679061795752350832462509329706159476462051419185841937999643393243411430002596377760159535905712708587287601224070374070571792761575183417939664538438822705109369547292769645575098600580779936777947864506945099586908543725806811751642882251044743964956097011673001016776657216401496325921942465035177405172602026082710848191416920791759815537665064606346572855726613299030102560020518261981338752121794306658269353805487480973029336727608877478454396939942187302474072597227567170841810319656744476954139908969781545989651746980153688433796778665044256704619839296640842757612837781153600823458553500771251428459853324646352191271479113759809518260736614797299444722729770951627521450795128734800244606513121681743990464994871958235659345574601198439463854045392963875529824018792188366611281724035079280061859584145532140793763388199693371602057677103937547155865988638942932258954765046847798400670412797575101328355652613872744540523471963291716210533629717777350430023802729708804260636912903908008108525884407904907084161713689734692320308216887784608876860211422839911281489424360630476583022596017091668939594714682808205741427547054682060476059784513278045359414910057359990229053523057864821887414536766588189820385502530216414873961101416647384000664200218035842955603321789930897571656041771020312431842339800641471245742938308319080241196493840469108641408028955224468731188843989795360748439277098345337921237884729850541563587495861649487778310588038935462245033379465146780532224675703887274333224468986259288773966209653554600620888532548823979232502229825989708209308341567780718688061591551150084223150964726249677251288097241968792760715356525153612033525531982476325266395107550103473090042322886503549310013752173040432500306001968744204892920120393166318578259939176182803466071865106692032096319225811605022707840235825526657527742370134365884573652317462223382854782911028827973667389291215924804222800687243427079559958178781894959596599967172647806402389764611387665211173620243770658420276970009897133171803369873362929291368191138986949423415117807670931840211449122259930677122719587943956901645071377901535846255977293910057110053022441594583014416341718365847791193088162613883120656687226425315400385537434514591384583841451767287906030982370050249768883522904113586829671761056655966177185706701096628728680080606864778459174261578171751922162231312598697006104035252307963628727106616724770372931129285785694372700944856996614353869396076548224953253219930660500027649734445562673535236675134361884824535995475720967443784061774586457689561842726005761055152639666894177375064820274236137584883115080826795030275750684795220768568177871988701783004743254523953858150417632043283548055476892708907185548244109712845085463231954999439433471719518365413178761381847716401990265080043159514124400838788681113208604832308142923969466814975437760076635155118437102109975703247656413545642920342412341532873322116288066870212760910917649825916159791104834829258074021392084456397943662515661428273654536730016943825568521648844985572655036473833090002202868889565837760962497447282696971581038711262543953566890442669651813328976799634158749243665798054466731013806485555906807796635611843912638119466338785527900529157473920552403305244337369638395978001825216607535620272676748289198238925370787799156766028918856706153927477783112414484539600510548995388031360561581247509257935016469520511311592882887919488273445281122802435058529268490319639053490602484258725335448131328225689967046595691000833881304640182750061100970138332252770109457045409780362037084142186346688864645746808184569356038521939712999325702132251741489086113763598313116711238288973761566020591690091087132512712216234829131342011210448538040770440991324170794829726609762312462481306776457244372695419526118331812896429006640329425722492566431281065394919920428591430930403754886176280121629277180567093478480556812555683627942042358410756397383607732512445441215268322992808009531556259402818854455363522485398897358558144647968378103119600033189997305766801559015763304344633871844422262530883421182673936023286525186776901229361023591854206933910140520324622717449386024716307426688196641225117908109334598102097970049290387638005086328044157854235035493265629932048618331077997559271093035314003704507890351840699363520732715888093129447392585013722486687752606205060832944804002262159385652224657137871505264881920168227973284998533345637372915306989258605814096189673699361265125156730020075592102228370993797928911879384557963787973130106784594449161584095182543950290484907394255198214377255718126923074541494977363130522236976546686780133964386060916751801619648581685774991460671212131884294195007245215857553993204463268294953751091804087272983364413272453411885629089578775319302226084155214467179910977229018015800184885274407038443440280300329240604810798250262947568025737674664541202309299725320094513481065200807052869657089798668337684055271361893406681605242480638723854905553416685612426852521782045916026432155594817173879329262033485607739301462858820400908462417301169867932694971533174070542105104918339706247224534558103825864693228382209850880047633055149924759463240598795356434133235074860480747237975574115050472159873570261486658293985241289313832684264488670186638353930150461705901885910691942977508610135778603619166968964029224619617794589719194916137347298540127716186520047537342062608154114751281241945186201831687467111906892356672618046464631542167953402580916169543083041706912244805182963067822412523038762294589501143954449645976270925164395770266371439198848942248502949615833492292323815158674827167417658796332289416146378306647188880112045011680979763680654333075238344490888756390035870805588334482898020906296650528561113564824642034852847024552888714043888676479380822602205783914229885875139815437822613758864559990616913698603633499652766457201534846682193045905993245228729845183561522842025160306915924895677587892330436199334956869760203977513189940373756498979716265917840827570637255110656257895348404157985528606428199402544564100199952085499809849070726692971103919936009842892700236975343304202652980851359929159787492595196329877104691141055471575377933436410209266648740238354204871953823209907359629292813549096289500621403180674183673616411062725826123873329082144747485604365233269061756856302851582655908892320536680234057772710083709690034181775115319443826394833854072065319686069912473987686770804322702777306157794135683188744685789091366029288317808491322698440889433611588367759618076431386286527497497536893314503239315940610707004762040562674535084093520943676818226902654238738201928415995244360435723842004771912029048804126603317076084646280576207157014166742914341520002607200147414808863070291252101850304254327959644432349998609912463856208004599634255793685079238809785043550328449525811879052428501716900517674299037235328269750800245689017400468768604350841219664439536102002805532560844594095685129088980902865245347217932627614429906027160762474558703501681938094400661268086000516665757726715170761439351734530992072335851958473593581926882698751814317763984119527925544797478314768830914804065667276845495581207299279996360617061703756069362035954270872245013924839864709914766084950977195400963866366485604913235987596866194186500155682030988165238037114167353887887659904544826289190218552001871873728215663262123767153806898516201200096040273346555141777639040055228606026331695508553079030632873601607157615087402947637848475428374638474786478091920461258306580977531891435899333376639459253312173371861007251018918200899981430214459890588449375096843169628756453185514744405909914447411820523625904531478353236487920126401069564059332971069806069123235614538836069715365286490571924076111381868269040796971756433297057146811508981138473322320648856681648237830193432706317917399484109555352780339054665749769151322856938811021358632228017212826734605200521515947312870400532863165563059384444564799697203183180754130097539899693235856629210735783327549066468627965795732901079049629681308985634535947341529190290301181281442878202196828533053883693943405957916408401637910935662741046155161395295412752242574098282501058372013201224080297795491108525479702604941749122747048078485699847916305753699045164514777724334969627504242842769455993454602422949571306305908778744056235872167634381832368652068684703717843165836703603823796422941480100143235463230283855600228549953330240179080473584623808921722597452247535153780065765406100380841754353606300646110470969178232289911523709385037475515539314615154763423558596372302223048141496681765930108164056700785160163329259969311418981456696191233545634173826996319075136395115731363375362633872051238406330989911977817461308055316673523645518607942635197569088163945771390157048110180975921047950783919513084202901924998635530696881216648573212160186678273178664157134247307971329810260480976405497326164165486783845647961937813844266776343111932200725084583659788151730204767321752753408236972069121879064748513585506700167960113875696944312972197778280411089213101322139165700591952149877134291952679454055886736442560301883574233684336327015010183965867399722653723238347848136493484098716560399122528057178599275198703405524517527221945741324374896179008870096762138122437017160494055937513182842397276873985091834651841650692644838365813830802976833573090050406193903129396760558186852757844173803256569627068446932040095967753369805175788540421787006496632876147001847021476587427571585296678483085232167109721727479052079244532960808876724555585894613897417760410545933988948454692169475957229072627345234506726400622475250777318421475435167947160595702791471221077502109942200318620135488473814864329251734966396677599145087184805862631785283479734936594621214605190871528725341416796285092183250543177839985614525481531255896839114119919436866392059755642380051807575882531550947702875900706051200293010325775339960833639733559001396415629405344646084064734222619252552485101222200439611747113697169358104556644082437252836031559882004524710968863702950303065445126741620162246092876146414875177551130237579564752529048436991034887622784974924694963290110856610825595304092255184480142181048853501789749666341704602211990527273744157106240670221358213678303591176196848384742170584202157485126491036509224932880468343691791795163614763274011670594079074133284766485306986896859847433056013833926994784925372993238301338222636495503050499289573553518628192527809405301386700876090504889027885185327577192733129091254477199514220251898497637330555322765755570892152270131204234469125625839128683274717428737415552334319587097857949110093936343372557804583228777773739768870633834105005941407703112402141021596322198908934696025158758363972080406331289578113664765205292659336346043366954647320475282226177407462368827509438813627290980062423026225281893837140173455153189915420747521642111332768256345249338050509870569722759527458182256044604967116095415442328880986297466961317036044937274725652341044918733983464198000939049463786222356117970846523919272411923848584177252795955297184080976161272814697370183584470056591949520881970438144913014850540056122528429216540657394308182826050809308259998847235289876042184454427571697968462283214843496556529329196091061452761626281291792689372130802326144180281279777766123567505017289588627061264554601837119737537925739110131639110292573308120350629896651721358295920607668472114616942573013402672417411392678506310052313082918653069738000676817778236546130177779374779757446602655933520379505064036779851240630987218073330379951664917501268916600538053166673954546194367054441393955125920450877305192086069012317999858091560010892976307948398815995993779322786752800921242628385899039512534319952339479839286772009413052083320453317176094982329912023577056559743647925575121156686580038724932590344253145242914072527471251684000814692937597576287241227979940993176249347993390477444456141980810879946100937248119813820873836212127028812549110963173400288119040616003693870000225566843580221258361928899945130113969505190087520471027429208521072928735939269838316489241098941171225047095634314865137820432879551201057264994312411028487563848890150155510985165598640625189596785264161231427940748231421763983032362089832008305840441803725108770826557975139341033857885960912763641914686236381765886355247997944377174090089429758940353276512766707726751336779051492562369911898102815953292237210564380984074097824170069179734868051592360365675537841542504301018109613997089453316657422730160772548662598454097153094147294538649279849831788129801861545093855311720783556941446276505011529433948689250360478418001987595988815866168732834134043628225132397387605630905369309622232994981453408124181110439125785177830884337934651851339648859654942633255564842929566292591546404979987651033123808188936174825758513277803130023201626299855579562930097416944280937638603309338560121866236523639089192565427774908805167830649193398294492603763644662638105854188033925901492884826662511707866576933945901813977136062485376517023140795321825128770966593905854825980495701348701639036027617055262212006302148705843495656044889008551352049516428097779728116725879750207012121414655154647121011473796742817187906659761510013681984539617001815120004137498120619670628529604533600556025791233454670214993226853140909894626745662419508115624239671871942446900078667200763561807974645401563459030661030246440975302539368643243813565290439946555916213922029751815644062621558515396727026037328270374929312145917108615393053235157873130300185891350783821371736735514391949353753757878314677438313671842878726765809089513639221269462581258232853805983988975193074185544428662525355286045686150097265390628083248412975235904160204279038743858481200921010825053665555991249097729042780032248094483754641065568544449306216335129168919480893643866240023064778670739809272009518703928137696659503928311242415378220971610097097944563153745040085482848239873134833137362018871126647344174539572286709235451800339826799942265798059412889121862817803871130363865725174550259106321526165422451342165441568124590355286284383727303882307708637505951138790800302997132117904915854275500988647351949802240280216886613197160754188030272839245671557596032825421686444040326664553361182422801168644883755287952461354611547355440997293856651673092906291536587464511631763172474821027666837203549400448548507422372993213367889461237926456503267948340209884107830580173545709423545529814624182644615143519502138825780393493850977128187804152367565076864022116787886710999146844429674559128682852858858204454876886207007562636121897524089519517590980101406266898277602871320144275732089862898039358131050504436940803094513330721024022001012762433658838405822465158328262479659873760572614298046297373926507638065457718558273821976699249398675759301267167574765123628577512173772630246274035520836932824272748446137742063868812438972315516214453436602865326280225903910184878459768815371049594666960998993304963188856949150570201206192965054021125310893985817043005976788356953388424525693943893935155567143904381407610364421579623090168997817331605032762272534541670624915667524725400145685920039581953338055264549916073435075699122660274241409469292763198012316754236411221130639007993845726978406083477501161477363803507594204965662251939017397378711009196365467209611796734183642619813968272067699922243613099637015339020473016833282379769908452722890070662284251323669643343265556218149340242629994650265369633229028852949012456098922180746547637998717501932547285655399053572769871745891200162387536117863083933866063500533448023547266844938366382867353462159185932400040064960218138046971555846317535683049237132959400666215036291568894905243542793719316796767118853893463751687891352009341278430242575652713436931828046521069516330901678816710317981981531138515219264822266716886792762012999325651923527811754862188341766332704134359233603428503983914696812600913516860855456758505120002333353814213743928966008031032773086268425634922248002731093926032622621279360900687527432225323167695986405183086078636759110112096269741421116612640092153730721008626182969031997871722977076281729992614068831480431585558707865729571615737991152648604336202082880800941103499848782105870177706738619691309460222755732752904519099981642243355301345882380343938597897581677152312954064800869159494474515897007416979595838607971161516880381772108292544414556123413126377148343839437221987768420894473847125382647167157045586647545286992644768890002676143621650349358799246286760401398076789385536873792000839026637526578144376893195771815100429017376190217220898322563067649873459946757548444377245691547643997207739565907469379910895969873655772311203960867846120658617294547911086678552373552574965827611393623807202092314228031053223116719942919142580333538681746106397355714849162267585411701501109436162073547556785235141975905797683004922318016561400113385160188313791387084923798116418592950624902124799525730415589774062450525334586627280539626209265886641193874431835174193055545821551425658545325173555428769888592389403126844262061689579999743261796961441171846558030116837178502740659950166619653534819969306926304187701089051325896948693953541730819669575864968455260997772879710753831522242543937933095981054916991976149727406241975272151891669903678996785955062596315781782986268729028768163251158359845597894203174701517987656318425843485947019616656183141307047286105539531469514094538037894393146732732464567547341710501119504400499634238150317231823373099393659774089452174966364391763755307942631989856241571014589330638190455300668442064366035220964550299577293041071176387057243131089712831930810831190677935792875460273435598706215398195964033813623728087499510583835832695117064590288675610464011305790456127386895583172312018214036068389302484284770060804707019063470461351941224650376238704116764811145603936265621135586339806958008190323655543655724133501138521119820114182501553236023584859166204990503484581891452966975724259401107199597418352551732465864785756950187198883636145406774706433111377416824491935054670248269719753811875817297223658282168699135352165296449754617435187254477224584701919412410207687840305753417135190293828292534683516148943446542020056846276684510130539303814229703589499196003193071245235348219659592965387190364135711707124862346818222925413277711143146911796558466247245843480912933514792797741522787753314267663494405416156856725236548527050784240994520905058201324744161846303695467157992554023752831147838399077772647375547446682818184534216071287369897109172290221437266993503833966189191056743095449825010389787519962623680502578344560284795468847726754491431342082332923943684630144986554154132027665662140487586945081432618878548846966211562487627070320134064816284395803595971725028486772875171570132734135232526733206880389391992544480533384753087760861220614121096379244078881921076422236640836418952373831918676882710722734731574843717177969019749953907286245703768064155147708419714817691674232687444975299899321719357833358219594303551571791880915292566425283422805853417778254304307739258798088697196886050268720683091651114109085167829343139918926795121085938034200910128494846959149849524762721539120603196474211290879802300848250283879982604334346079080412114141426091122465698503613998191025518864658868960619556498499259888918015318598285480141368288286897222800107438374896110918835463357299508485587415454474955910198024009415540291726582467276003810422182849762690312433047674572943133770630879163448125830428427084146665325603427950449284306546030987700003916483133204380837511417474033439094876989490997885767659392079709372134644613712987197387052019687136669272801446475528511074751578147426866162469057027520388451722178400747629533985006828284019435301891849832959047112871812386098643920147874055437988648501488280888002537569174594843134243571167263733217015822557651339480347272876010313227200089591420561710059632263176101871193970948373322168816120202727295652680568854762773191974407845437042148867026995233904023168748971872291309676483657226946372771721640934740659344579736471999539639149545675313145239693311331795129773017138760314697894711356024688822889870971133023978706055897000535752111116396314360565178389783976155685669188548326570303408495663657159024355441102182089616285260923507413163545355324884047644073692292892943096232072599297719491023509522104085650783870538800707213141846560786702204084913213549727218073906674848736104101347194294420353584024019391052707797527546392679797046295312663941375049544166868990159120000907326316773436648603098391139895707118676449838705325614323937571935787348900152338430288835773925276431911101295111308976264772127123936048598115459854257697219994370050422265119787304848370400197224228009586343155465578305709936083671429478343266617557733008342842166900595506203260016857012741875312779604863958261843888964414694987927703281918692587155823382633596500658214916092505173871136875657121895548006657148465149381908760847628122245958837908873971520434946934776172615145860424302400087266673222211650368306458249384546337205604244632246242691391295358615485318332858430139931924777237865238770991549332520852198124381082346901742262500051383956933685511533486234466976035992092069930232465708394524538461947372765342010307354589399823991943805934785002798369987444092091284446676186031220543173976933382153983218093844260074683065038518644656795822300110755058224786349096390996865355252718261449838798477915509436040872452683726113635412977205699390495665828410229652188078624971238202560332468857233737005376722594440126811087993726246962457601352856504087677140870917400128646468482438044478719369063678272751723902194963158872079504890689913607006650862471488534208701355758943813075049839735999783851971263103056152863456934223068953383543638573920458978827980785394675007297736980904489519831163882682314680431344695994545433794845700067837966253625954882230841227424494448457206012513228836611436225037023338008388203265087474011440133107098172766528095371225672250435924745786190362848296495415356765043558781383316306799915976522483816497693926317407286708375161352149566862505165383936897278564343006081308816792869199379466462484062436579745215916888722631662767196478139457974261391860278710603041829359884014577907662449141541366121067427439972084331227590673589295259471765569983399184642458138783978935487672808950312695498633903690843149899402664762539579307210388150698645183379402704197597544417446024412620405202607871044864105285402563046009216501768723997642470794438898351227621177301364381310689966125402612688451552825412926784078840114246286620372983194413334126827600436410438705116760100639261795551491535811975825643539449110304490841515364880077278847926669303429259612387936679340926848747905743569642586674555839907226619894243811853455584550847187223613311811012834572276414819269456104026953230327391940220922310741174444606505512124990711434191743102486495582821704572017878071061924799713079560751881931685779713839473096632003489425179161548925801552598699709713171187892192356875894623834981707131576992497693500761066368144533573474160950077874860586338198247333717707047592227764296637391436818128211159685567921832092152905842174365914813061689756115276910953682400111417087338298073553793786537544832064351329726356576561251689612356417324992372715994418984023365277580582156683148194103207213513196609818222856624245193848878534011522662185524955527051694281698954402520658141958992153428705754430903299502816911902401927687693346168116780647565183035927234515564755836831030653934518624321302070554306731161212399414131716083323584016296023602559551792479524545335184361560460904209999389456498522430858915156585764729925885739744912235014286271865551856621515758036711240866084177690950564068326400695840264643096109011559439993963011028271878474514805259313099370354085648484280901902054590194678016194422572515258546224046853994175669276899463991850020077591372706199386069252864277677422953520525863129612555440531758549857216342029047942000820493821626987113046191929737323816019084737403330884738708249890259690990106552749187033177219404148297078377552938291367207718605174945719188975333932014748957845914989586890526156949174145288668962384732789452937725666316253901953384171755768083751992644058050678948361136200105026228760188496618718721171973064441165861417043871211505278184413291018258005152832099259851282039795395512463805309704723233129533338500696023329032674949737367241293961920319893577416325040014266227352137883899003751930761528592387882801830622075816116413032598940406799925955206313734719932883762027147117187404201840484223854135337641704062268032220813816851550799626791981248568911987908327042009732621452254114948310374917502135192363334493426683107458850492192157189163272596093619892322195574366069795990864569504391321836623563289159992826589998840858476843231399459300188873444742657027723222654402893669356896036363245393997057530458086960635291447441988149951652116109153420970805442584883229663658834480874257154696003388900589236483380820281701243579041646384220263146342197482268827246149430959770827218278911503462888494270084687572734857520162658190295391489475603176916305824131951473880977752768064053491857145044387981602978317244070200149591165137081157829146967069866716098139921803681200597479981100843866215692268394595344389684751532641691476559224547993207887833881518008227705904318528087196594461092403360990962444632483785748723431560081639201028261312366704250850587930260921380222732751111973845807656383515201354332156761117285440314393895571577276686244114648177418765964296599186486149017581283411425358927735429775111177161359693528128029714672605787610253724197046837108788050376908166963728398640025435243592299044760781783832303563558145747811369004281800943577493593451358797742475799396099915001551621626397327575752670376965963231755094891409524246601776553583070674765805091820603193199755132153506205996580836201067558379295301400400778615321582363430060385445332918517309654754187042418445083490177590572202630531436744346424722998593687738931968963440921436635089987010977039362412563980653178937363176829035728954552300335389119217435738131281175450092101023114288523225489481519184386842901772500713202709547277799410157869231375521278281813170503819638462351148739013287919125927368868623191964526144314386739229671706655427333481963604040306158041345354892007518610409047871959988589161622112994088566551023254386224487906033804412410537626434964878578177518328686633153935680312105643196542164149542639091396440812873955228027616763881768946849582613161851951685627878418435987722516487618924735271424760258238468530894934581957537594471495109795823716783045092937984603415922955290469534035499410038024986393328302737322087473231880674877178556226117490451386060108216425250057891415150543097832817597189911436875170787485555433015708969206257482599759128867525980324319634469428815779281340807137658013500548069768489431904098990411828845354885852417051409387959327472299367960940529091368532489572098705342235255432178703240168794009192486233479485950950895730934469107583115248340267765476930542557665048756195924965691611268232075458183793774074447826963302517106721408194479357845885829610925144923265566642699450092914420850909670580922691311521216708204596412064937989914806061095786962420429190826112717014141865403250065013806821415418141887129102603751646254692435811781338263485605987017932260098593908197844906019665312340230479017990619272372002607790697570049833237159499900974909846197929061132910290771299291296186762704341484746441266866401031531749747393098126186695962126411898601697927630951294380210525887668726422011470238445092803177729926720453597157155266278776323093864411835875646917247302846009686588125342421787500330101721739074770305292363900564151116430354869251543284465502587740892518286043056824305380580821218225031691975224445844328424978990780866633054755123594785154446228295640667740120112702811622545079724675502570232827972321199672163896571267043468628872390183976096889871141875965647032124933285943457903354398104100015748517281031930167913523623510975050245055795654514395438258507768988148998642437960918580631042644423770647933381365936369961241940393108975480531452779641302288308000532155488695124711626481663490964022287916490792546261666392269551795972024765488280378348013001881619091193161369958966929894018880593719455118799790874750275136734873122877185744688934581170222250663829085860839155316775146458786442638539629720478192152891660170598455289273484219585052664681670992682146803414582383473171734962648952726491962801883957734819326560943191112501945265438182511076372429019730963938482326301760907079688233485642409028136686873073275456365653489694932823622152898130264360847765153967313463131812402173532175336239554304454535438650883583478261014421432808632408768594854140297816291079876111910937456284515191215702206709234401512370092223055766155131495785322765284937162359397838414630682504281824811268227892360435073976926116476920728943833400614675115755095666951900942634167707854618099575290988454438624740094554552854239753103194779362368076786133122827118249137007243417156160491174737534875354227982797853163729574007844624890912734311756313127184240133805002125948386502499895957470770291282171336342951340714896233213059737941920476082535641728722570874931118537493017924517982295625206273971818198330821825931459815890763802777487757067810838795830304185468297333354293260821509395575766730155325592877614802813044395003407100859619845776879579282112406653729064428686681826108470362564021462146307382453042165423359905986761004086005842146857061305125510099265092310176842965448392732705965983797339524652596851894935052621567544060131532046081063623546118305383573636886221191555536432297363977461920064622685008425786812140548664996004593992074781081826589713342894503945346878514044277443059985207144874908801436166573578249470443564376408959103282041841194729274548369856934521300903901300911027155052928497691149437532818133662927025093414254323415182849431342846421998547888555242987872140506603044773380159292161311896006844959774040545848122807846032174139248522491281328448258501491293568671072898747971849141629500729059647125842757582974832934627535282622291755318335346080250301750259243800222332457759256285056582972641091783951323124973593471515682116846032566481677844331712158648430246437912567659754729070760446449485989774185686243963158202545022632972464284324137792533912394568451103371115563393581442085416614951173028834382363115525427966949340092158060811541823256197105074397337862291089464684197421696878191806879927841896558385873871181581051870186979314956730733012216108579989259890716236891705833349481177301412233438340896892895973411371580568976064177655524689454790172626822924385411866605605607236107140112368576591842770946428094114409746918531713932495625612820321678212455020717070229313924716727940692902194627263044977727087213306738865611917014767550197936861137425078096889196366022947484863941092732659808080262064472126198353825191294100628302431583599953442669727395275775963740074403947782121521731805243832061829145804148605773456728723970678478191730713042020282984900169779563254204836406952759480156903353094947504314193376818509167476695685218656206648770963681829580751284750929338608204977244166706330910773571296056098971983327434578574571500729025936020088581750302352024193895167524009262604205614309329746255294139741765061062467801756462945745417473906504467251241822790545237326970387012912796937974901300101336125039107225411969337219656290120563433460062524789138544197356340381935783595449363718119242038783248508406864449645331846299964305661186166492932973575292460411265936134990030945139260831028132810746988350265542698630536542598442783321639612003020600229339981731876155331676302976664963546632018992661997489674378619491921564650662017267515809826629031988651452642970546997743633439724490224740704538457260121952696477752270580091371509475173196947491360709676818723133367478265072482390580300317572715106610334693326734816777789215863611824105472032858175225331679377558449735606447043044794359366514816675087425091497080581059353371043290286076391061215886408264188783960149169263274535290770973084799043078222785950312433750460345340978564395577131172449888379394779422438007739461583931321952375978441689362612738352310928746303855978389366423806500453881632049331197113743983132357716276389703705531206901277402541429177133839816532905429217357933336466094792051764241508689855035519603900525353007868042456507674692422330868778471955439868059101296118916127199720000853655061545313458318715086528759521942915508708714845728658598606029954633176916190367483435689840930366424370805809348996007112601784573253934867403685390477413216154216023315956015131526540065379565455787755762293829322666163634282683510275167063343433622876000488410235960443739148439371591653710181260463599577057873425179151568588359861562859468924149592234881826934214393459825929476482873248031786469094302234949531615960733925823178052981821673164863260306402037098126620448012180830957939539262775390654707131618284098898549136746338373859762309220350752077079021684712937372547132024095518297497879554477840543480039258892700851905082933012018056473360192963776305554120261826496978118880801895213076755840696555807133820955518367822440104018670139434210216778662454824647143029552374535021997121546124569902247362166843249689186123249483156803362776032912591499108476239347273541101467966897865176745546456454633135950083355225464529604243647293295621853293251005311357555129832069426040150901275036309796435522708947076075264439511604760438654274171961405962791424331813857918123947710863289045611451268421738694150988382771221843173771761638288970001865772293035428640614486199903315885303752153893837624529034771640907044914153112991916093362748754135952153308999409987925613957936561954861571738937149172924293322093004534703726703040087850520778188861572574450870843984297395228063561769746318156280664295359684201025955156448228182144522556476912395678604676087991915262924773509160183113187600764957377478963167422342055281231884925462494809953815262139925292094978051858017669284492495708657716509746365100713940152434766006452191012701968025834067723068923381584581907712551799357961081377773562862520773838201668139468762014013775743230400068189529599456852609214269917815772967373476756168980079685510433177687319689167054329237983422229241077951150815295962971640665344240336548259215386415994613790326702534410309397286753610138700396675089241173755647279426587211818034661263197060436635753292055012730262154371086370877473136920720011226684937401277849733692672056042775395492087853874044189915467185235713392714018820494144387957512983992322648714891151254469667677247702280651543962078876425379195093032894219586778390265299164359520867131260467629703498623952199339082711858546274836625387936231558304658506518138025106712664346181144959923979768786047944110032874423239052527150968992346900601130420110601849034704837877241377217562346121047560882094503294054663374295887053458330155879171677862210832010716342497174620436819387856440519937497067162957486245046393496209078275346078403609820424717166585815171125491060189647854193804047636544481475571852775189684167311030284547542083161773565710414323688325776164299468117905418009111374585223840403884265657911226648888015278425677009940524483043016630306029458243925946406369100911854524934470275624566807800133102138890776241859412506922022151651964124547889928487965012715176130322566880036737141900754829949590234704235058051742495155950654215780589643769364416706397787188170100605270613935951665922075804097305602107223646380659957235368079376499657681495457794806624828207506625111833971883316447359036812926687826823407868879020904444680863939933112733538735027097472430177878468535346802035996664542987464207463773310101199158176214582351785686578778591276799185079637331528333090078724590603682776481186084608280924995223093045919185774723692634414234554256760331770722096815622501590612690662383191263636575953782483761137320462538896513443329729611370908296716709394334119419736982776065550951539421406400353554440634333802250489536392353403710582431511346037936803144157866448639896605204294198328286253582548725046464913960997837688428065955761135260236462916395322748647929831959823044542321040364477790085200489627154268167447693737201877167836085354163688818723204865415027228884261230921943462060436197352491096343804646690502442451245940946648310073925139872900547150829278593160948225975626821545803287702806169317046261469036494085921675648002652225044668375096592718258034197559718920096272848860143174731437505833939195162311624782949512465028437184400380224671295147968671252949057112378841109572591886666359559013800032423366497262438846973291114465938480788436455425156499156840819447931958456949177960554849965424581804570433864390568387398362648644470180676634373361921160073278395579805730915125500052782430433216512712421778915319080566428511881438435942606550841320775476559899132786304840327603563159230713162335053682751726524941890641799374664831767353499123798549722644398734651494833570273435244995253168271260029441688201106213570574543546043407999263549029365060647989931078941964679390611430863738950242840433269994201943228018210625401033014807389707040667606747865010974061270812858821948481380783592781553583516480109169962987625933352047382659285465358141862225576710868928252395658311612604250709085907278430680709514233697202439838941407689610040821902898839396190139782349745473485306187253959784886287456830276912043642373682447420000032139637439758939749693630198803929950203808419802453792218668663724728448128890028955648674805863433602901291970291617887223112224734747011956964425370124201929378969633355989908756884828620853339734412717040744311521097052257192235087234847332736990186484747089127463792651715968187292683693571392713434088760576779806662953615132959243840892902417836020612999889976373864463659256267577054580901811742991961001109916279210028779992104516907817780391820213394809628885458837165649707631097959672332500380130813522664053334625218609544491142602356532593994750121545900236436511158318689642195773835458869055982729440390238271627577702600111857087660897963936819282896402981563336757074750627569393799771038068043791487940153162823382392377608948687579484224431503217910390538742615313638392319922623862344881739624909153241685443310319105725425998396391909411853116117837996984009397299972094283423736215024482992236348286113883749832959544793880991709304856243110581517071092078147122935216904110492440885191995275979670357995127335453302516505846762624010148210635811202249662579168663584644181397165152324548615837809551367578863154468237108404041220782536240627170108922802297380638955537401335025541119630440667736759295928333586963961431158111187082917173280270806601758727795797505545979447925711484130390380776451234144020130608299528561138029040227315488352399772093610428134949673797889758098866500042306710996838767257567789426372099675115266488780809454869049169581840391805098676747633328232173061345434531052236881790789838238015465896088719131497360675780788756565705726708599333640384118469916735522594481093878235799648038757534687504408388561335415673747940227553601568200327519069642351727956388737474339420247762640189834207277006100261477804790474540628250298969757099757737152851744889530388300321917588930810218597269128633875467322797622931200752774771077956993762237154782559316402627380993215576573636158427840160402743682591571885607149630242710156864727150609113557693119423755642986746725692680257327736804412410072191568113457258501510455637640170920933998094923442630118508269439574991734737095816964692338845003649143248038121302992425497437235809404874260208506620172862798274922609574371289258181008888739760487543189317954825813137302804754269352781504228901829754345384014022940401804169043050926046287379217330439036208548404996133707319156114228221966701306773382482792171628812490083513139290017295656229321993006583997179245648098608725138644052215164193974342106449894976954298602620241030717231479818801431533603292040346979920226829718595646645394430601846788957589717096158720480876950819950550922183352351987614862497263959103396357514018048100132844470894093423923533586332463496536824767639434373622237021464668294000263835700000665113675003089089508052946195262570876473327322755238257822661321813030118808968641804355201488464871721732823040458372235171493559200314101242544744201584139906767964370681053462275614270769564145473758523645873644584477304095961868011257562254661837132431087344850787040713758146358277376345455452666171998705194997132148868605304905186204735810779219805834193162231726000545079270272721378409977893179035387399721835990274465936152486852004734478189481760589342317017752222139721273135670137484472921272054757965701492177506126396695566943803813453178856363024194687922129278775729527082024525330519771248967710139271041173556318699339521023451344987660121457966041672053497774863823258570136599869261199844603467192924654407516692349497838939072916404543510944923277986855046958567128540673053603227831650992142342901917768214741910783626803532444459645988669122897160279451447266942255409790449959975864980865273613197407904581241786388366605651352548904752241406614354400087954763331522776129168504712279570351089932191100102362455741216685194060338162018421258682958963006946371045856180296293499542568593856750142900470554625456674272959883112800744223408908313025688997897278861765903957977752967504716059477977785025829140081726413465222219111153765344862737769530926449768723917029571243928862384911904576165960777834113799373703958687412735922129877214017811463354788946183859777494460190100675736515409952887581842069296423956745798993616909151377281375747505806357424475657591329008826453544666239649241645567197419226924549943597055036865651154636138708732327323529539773347079947499605614280871363921745005951420063675211603852051083382048876511249931949629526484981766975002776654919380265401200242853453765941608509024847063286046729416549330995449636350501209742728118514083258610329366171464655803586707207646293627590738697626005281725798605874178328803174218281421645765652009395010224582999490427392700963156038647012596838938162050552832161189834637557852545032524999489458101628322173802556220067320023112873452769313307910040000255170394201654263054946452847677462754995073481511848037782439057499490001608268124335621732522626825530467049544641112472633116509435018073614706694925375167513078254608583907388934320973974642223451267911801557665420545773549414692701478235838610644205495155856078985842619151694479221470553753104146864703583241529174019397597276772200712414669641974338202997265229296619205691516509673932983980363556775056166496102517667522696208105722401730116638888299567182137847095884399766720694240615423596493190193644146536822150390057529884083354990716344691012422686552361247086388456235580046616021149144658719160439447602494470248966599622508202907140137031019359636874322290180453763980534772507492947913115217212145999997911583111891131335736252269113050811676818411181732775150646525034893445469152538636222141125643150205911403059745551239264188558703180361032484464972206888694289798451864419876949138545801461137977963336583723039247699856587289031651117314277985965119500451108838011157025941956900448117962768797494921333010696064078913826050563935620889263142490806144170597060951895435918357559646575995222920545818250883493699951706410146303477191864311139448967562250707766867854804309863193090459256621076924209593929727051379107964658143796220762153422790466802100184198160886355907730068063420783818551683247894818193260138238257027088914363877751846849265141141483589087798176656364376530168227534938161045626581418688185170603080273092406665270259167278928277866586527838205334219119197832635197078837053200458794125760476296339708711526341667226424511887313354122100917105626170722395392519172708886108617186803839272605356373205678671361658826937764550450910671400855945192338291200328778913300175859180517354496336366610535329152867168437260431433854065529441432247905434674589341633136785756569834114035970825311036492663686957986391964904810953656857248474807950215947277958658268024593733347529079141284389593688329196175623558112456600822297485515732529934882524096005088833808759256673432722228672578084578838254941785899572671972904804647718173996056784753348073642309832616682843553455086843745540638314408137708992888041978229621918814330322397650388118332680371044442420347888778845323232719581681108246975382670746122849127194713743198357598896514310487073217416962403078593967258511990478239568945514367847610007964409212570703897154393726490738479161306551068185037464285017551897943225650217666776186785917812135983054570084537429140468530929968098589230444027921707387181544712622203355184059713106095427464615297709355991465178859799789008820691259942720335642510882508130143844679309542438873969250094456597606738104689695696111856140860605816643550448946873796206861962696772245432836116231613593757046612939557312258735040022442335337999845078117914280759747599974786218712798651939289141787338814983859117178611760168082532258526410595252161667405808278704329136131745604427999300497087729738798237592522410040112075735386536690386748636533432480678659031852574064295345437601320824925608371998770946956468375405807392890393275613464673375347736446231790518790579204982013424564498729113898721796197863799989368840484407018678954169324021476446207266682924668197301491070287451597783693648553972098865029720086986524832195769723318314395743749867635736679491271641401131695775193286069251682347325685340716938563043412509995848618871556478288042491042689395550037849280594134315323513385390847915785235867405292124931003143513996426824633094336094069550458182533396146199874238031335129801403971991098805307920693367446464519983912679182878783497448689488250302220751241734008250257733804734327884684858899108607099130767542225666159360228474901230272822065008290683474168612584011921730605065331716331011986291132708027798933927881770410947248855126619182348562639479026761878133216255307363971648688349191806650258190264356235823237311107249008299087930709276696907753048824460899513320048619585999388091087880319565841249806645340224860550513023814022396987890546128286530819481825697333630464802381268912696989632835739943636983785094007616036830089651722262053372719693909171918855708042435889589809442828673125804623208225599375916941973247023375134386164913206947009502408580421624367906967977433821601602223080301414862747257730331095667468283794083682483357401424033165708218149164842400486575355143059479550710789071669716508328263080473768677135678424241121891650252999431797311583202761153643950569841254135340468901102918739616439527744277483151060174337914047800674366281035557321786030495341613772128817592611132583743660942887547284033675344272969005561876806456086695869842984225514355200799285614931599291359136271864841836052637280898402216606712486464988766279206684140288056800766128860019265085905387473210368656680838818296324239023062690850848398507446650669617628453627389466381748783764807115002166301085384911601538696724766458161268435960698960105629250159645976610358503278218945627579429544858612933497388016636708312652061425297665393311684982806900968846492549577923847510950093091432357472431826513095275281898383932921683361975335749844035332208187809291609522089108134990154045198420514659840939722311025962554925300023845321193998969508054970745632856974353727148768586777679194679287625899846537973183020643065418730494930403318829518043136128666220828664395983210896879717637982808754673863269148656030829231138205299410479096596856550186400398426732615214757007526261950335414826647531314325551979580672224606210787450487197555830874708155645731238543428290985316818777389932907643174720613377869019443046279702471900388546455685976016274300618828218219023872502665219487649848023168840293415203465403151177035975078657254414234744901324810567631371472292062056342596604615784370118110005922788563027341462222059030664267960892226083848473774314317290089396638019164751095794034637402088127307692684644902239366158610725940852988061483724387079091835048129846579465475421984533717032785631464954348190163215638706399990965868145954885262053403847090274120136696612971418478315177449653192269966728838774711807427134933966727632952394631861679376365634198852991100004132761771162394914764798175989420551352054292738852365653368449829791711102296786560478859455966700850487292644321056612537231875834683584852471391144034832332366581264461785127675373070480508838716227777029409238035966644485636606977373290914096743827671591364663687127970254128743154497700182406786380082745046797809725868384352515199928274322758363546106766579223608721917355339527319685161758559046270510556580990059649837535831552615296884037422495171177316819722654474743595209616571056177841123184582909769810734101115658832192805380919205242677099449660161206109427880362663289380855913547838928972266950936026739578737235814108911151502944879545618463432887590499468120206134736369663067537142446574122620099493955707582443057319301821786676198849621428825268581078801321443425364713145396640687495687549780956408426692673192275929666780388756244681916576454935629035298367553939038268131860892268659621319031186277562370501638734093764226991961979664108690396433186273645553353658685189754889433563999284125158986763216902378955407019935638402099068884560290003509044425509360794953882737447867806632979068433581695037384742982591702703380674777357283837729333693053697468387810308795352512618648079165284898301073402131604730400916509223940476713410269308017798627120115301088299143644652366722932394824844971463341675119659287658566551382915311117612219166782326758365861192403400589111224937882833614350831279277549417940042816233968585302779404569240410809549412189232235274786651418457976207818497351839293187403779852002183115419313151407155078637676839420296470099257348477432686731812574393916517718028925448877504406333758881545453275894114993925076637696310423479456462129669232084691684121602151287140946196718202604775879152898735648728638767833285137985456622088969054240557841798758703233809371878101572470756602892665363431288371007354692723006261583410694490522850214081045717276930586113521115373064087099113654772565437281076728068790636439872817934701492479801163080890857458351856576228549805471758322167605175509791609238057598146599470111540765366014883223858894174748685364877213117785284169307353791749960563745272495564773023400694323789375654556753483439139459444584961597411174344772137245889738600137161632626738568307711120340455081087474351529916622593513116200160009545557210307053272791689857158356026292962547818035443164080910191318128022852043764919247479024463844839688511962691032899364001565160169102329746035091378352336805261703462156761649955070620406795178379432159331981123850287289448976857262831013406613004288326327910062033958067379028330286400207284593704525664092743781601116189822909147202249393161959651400504622288619521180659931686989248012322156246486366677655519165199649790352222338377669332522626559402118996539881830501645230865520317252674484885323619569726869835252162277004420393579065829872577212417912607299649260307021499243749000811703311108018574824182883863804975010291660175193844743985924266984092180129514666949914872444757013701756274477235460983267902080067477120163847001693939936155529332439999932170907905936971668974274645490317523737480158406778529154944862672054487099229811909517581784366747518164497294830617654702230122691126480842158255404412594525777904616113612237907507961922649508200286889906420530208137428244785491906741396222752170196205371580908778992968623392870755628732466628280240959469593262274668161698354961000497697340580586509436284807114605794407375482384714483328150219951413879832967931677550011503424878232425387243888488235887292227158140092615766877456466427068405530906454661723470315972622652279153452170582741391970190626786007095270003677666437485937607072828362005285196209359861288484172353226762548426251383973495786016068546623538115964360948590123089091703884636910955544791884529270377234706537573948181909397244390937250249602014311424186701539410623683232407374642156467291577324358956717152842818499595468016421225975308451290876426654148683533096496018796438425423945247112141673466494771904163015235672529609434366003087738390599646421332589159259605037610508511987336535056007615109892695940558598197857680290782951397432092583354306642033807389411397141245040935837782255269962751820438532977342510941402095104002116999933273676199981531849676409076191373697442674395059894130616570555786557455253661805479581368450378769825782551866566871020383656892012381572681277717709343996897149806755198568994323071746373026142966888900493978529153959818560065716874487680733449153301053324693237207249591324504550560410427647752469717434586758271563694963580451010887200815797502058606543590446105763407617990478995964148129771909425377188406180452865173705505977633477018803663925160741049112676938854519601942860881088583210425374565245496919803146019294724729183204145530642206346285255505452784748988169838387840071375006274840572870768290694119526877580001745166998591608813337843433092941112131603725832414534827052652200819474251171599171528485355822366333802267940498683899641725364589435122323276331203201506206494888375137519171315697075620681293583067472916614153060239739967375544539187401776892938398012812617554795151226011162279514877956540429068626375312577549111356373251008503602628645316091991104661575942299080359241630066131668777337669141251354846170223868674801299624237762831848596588743191280368505565967820697329648944981572948503552303494027549502472889168874966162560437088635216193604705114806872015880624096707822988012856420956904123587054906484636275856598551879642757379617457924881518029530577184233489513889540847220821355503551778937809215246982265194280987791738859409008629588365325024405610823250934921388329120263828513496760738045110498140511842856292986248961918875571202600633349708807045552887081504720722586753514386343225141851193299680486555286628450303649832482978832749686705570558249325209295960393237277910629756332375783606909030050902340697786843720570012265476313030539112687686566412936504213520751329196165180864341761451417795941995687313109381093841996071819135572020042023862504346885288850970535493326232259970650343266858432563303996594161093660674235575070617488013823333655212473405874829467472706514729887047208607278666976541493647289743444025453003272291944926458647756486400388514603974932954102954646221991835838984912048574113462651717989743471951198645449266242021810609792124338602753518276154246291803640490217045926729336200422635108533864703013266433321343165004703198992651864243655024666282300860637957252494184429329437105906503802986693610521215112053985778211978320850864746040646296223246266467664480188262092090002254595641564682226569072558773954437788917204540209137495939247159749581067123136273995042586973519230546428919643534657347983811151802667214451091309053664897094420742096589674210306581575670887079537106556134578005506902711911950045052735866664953991845041271658605366580611851283748153399769925908546755837515228627538303048042343010158508678182300724635248354657713778134915380530317836929682571835692192088253352083297749310986219015203355935275347225349772987480494021678888427853800439348765551588015301292714562501693374184740868465043833422771872745423436697140927000415016523681254564675281614974813159607478351097412166640470302247845138039517908436111937318794846599272030435508417433740386799015856406982670163748375358252170506308165583440654899655294234660738169225787498435557716949475726893573843531922920617695958415997618362563334361706090137071842426757460179080843309990646189650809074379112011064208434090221947506793540661895420594753447979931684572831280765579413747008299891973005765611850282119106274789466167518977901907602323650901401353689252829332749965911471285612586100951022929441356746410222739176167933023422004896119086473568230352940081574609222624752148653685201549631537181234818454245401098827378915893071313929375281913387659501342142440527324152170132251538387994438941473498570411882637797768206175115018303554131810962859482041625488976573971397306991594768471867827187805452623094819664856271057615195363225233536528368969803262551355663558868707259724210604307965878495353877375562425763442745593388984399976989466198232694812395464701459940895296547985288884451064978721337274732086945190317752969124209856258471760773876652221208261584188790960703492165519944317813833429145898613501119447276972818913900582567798893518125867614686742141279083357414751690352716884177591013671687027140889969863956593189496474888020771927748593302617454621553058538027262246748148493412049313304603805915770587506554512755166357588097170715911489707415130025807718994252628499806363234712879786020903767837523774572427617694800883709935704867712417410639277992807351992540763332848828768908461514141509091150230584856882021167999510826800509249204105626504177133658402124588999453489947444360434685458327600148808390911179230452508600373907504311994262050111640667633317980941912480277661441499470385976697456099652459579402804933260906565266669632840863494702336848491216119852681658234215185520944693173368918042972137074508040441482952499966466149358265963520616278170598827557153712719867351718376321865805274355553798126819958853272130087941742836640052457362112931302459408374825065841519497095274010044789790616148669111797542995772898149183504610266241348019738030348381801692721299565246603413654657454306744327109301429589072975104121860405863851635122623250872027844541688843592636413903037366443377080179988729895937991890993860017559014163766362551224207325673342858375835773932366886690240559733247604154464736239231663020117032444724511372084807072475516276763326146972858441749342235310507276090651805837305900223883817107364673143697300927121184262457801052825651469214700745711066537839424475917572018509222098116447100071002861114906713580068194826661472769102336434827285791222301159257999917709281848748598743066757733850151575710733285785331746992265570185596761460319905908338491563783215936251341801879152777447402785458830888600299415802896863429432139107947768941530330688059640750685587919773384579503836522992045065492002451587147477508692513656562590840380729012311958512082611747506764939300173223127278752433380179580509302387974849335933304625431663174200101606564690264971411038356961945138731203361530642849028284336682644121798971265903189112451778385754201538558615670560142351481268875394424861707083002182029607683171181765656523853587301896584688827311394069573864197677213648430381557756836645819791257503745456680023368435076635010055395556159292630465475793862376578311080774450585321908281048756592041270024048375938088288090729182803519554188440699353849039676819435288485401259823717352964506698381314859633439279680129244747512977894668374102895945816319845850413909702571689492854341855814300206592563463611261027386687482174902992353228463405859411166752187795033398898389630389202293601809427400911462940556016910624525989380082693676581832148476427085447237442676260593019118561826661775602176435274404034503208204005484332362055602155653618452403611475025548666955598481001590669425922790987057614706327084612563450303460402364927162729975398246446420798086021962260494214474142229418933454906883836244272382852241896271480615088671800174087325149024452467882665828800678948707877351737134133296306915233500660982661942878430702636248256924771828528377609433989248070981394843144813228767032084281839164308864968367638980023230920160415722085491463722506341223575416452939601421054340635355214261284809437159675604317519457750510168706666756247936912428953232003461868529714129338565027772816973955399380907862600826719189000960631554062905066203528901583461307929430327643883764234771299809674004471712473493585543612433882834962908115338529337792860095563723973809006029888741733177116146577775386543411910147041036007702985409384819326727394894276680650682338632208708175110279019135870515047040625273435661484217549870141520369207158144397770228639355249468085569186235543204374946690367911738320414986433460513280409369989355647332049664171296425480101607448977816639137820600452674481243272658810306361237265640519775239443324920265531023276472617539694674240967338436893909673369866033428278835472820511056550679966158596081400406016928684630255138023515477588097591017880461834291706696107738285056058268400879027592921445362494324985360585617558979038968501585649891349982674275990443376473387292425106633315284146878663385256361370273914406745842075523497910479538424194290661450471855615166968347374092987852446799855829933494008449624005203035270414009721986921251294278444825075550062544995300552196803865222518101426850589606920999799829926490784592783913611195364724067974001254217632005145387078707259151986451986712225870334070794503042429291323183430454524577123647530361612720825894101183379140906079536281781003770665181039178481806383901448912221857211650719191480068620270588184386346513501184324369657427404734395965436060295395941070271850015835145559732378067592510095953503299668393371143079710392187654135433841520144967060147151044630849804781439796564880789233063043726527732123310487572460340459978712478126703673430468012860465524588704880314357694514542229367560960715177510976477283765306960772639912921910373021398017112097993513318256483996432269105995048886839062322767805407892926776890254533465231474245776508215540590891212306348713321627785478990309985489828939954542066211235116224553840466284141781773479102139378573630309654906841912105822645745751676524792392530698409633666814119174668473385655607760668022483094548484905594076940044319215832529610839583309112852277420817451123354458241793264866176837821618471019425585595312352340056663873796756747630871817860424380551715951233667072234083960377902731696267643974883053198353158433036687919377933936324510544197192727548440360540076498880334045216289549636995456258362055337083703304350651652231103462976388192825422242158136962332202205685098416759290152700835790147866430318035080666376217462265341942487387800781686335010464621011197261909397867771556347323320990958500675404630030356116630849854592484908712252988658457849402946228638371201323075948245801102920977046635495111364952435567318032996173148713761369944540948423837070000984518986618461460486934634993124828312871582839695765600056654431994290961884732980584443272876443274790330339893404974035316252817633366030221604491074612904507519371658830793402524160006688592983783685387996445032613321081662866644670807005175240514389884999194541752792280534489648637022853198106762216282692253034891986313596978842669553340329823713228088750802174989939786313058726978035029148010304416569515178041339641561178692508056880511229524348529816252107167949950006906045076904839909799385480482066442478127982377342439616478310009495686657042420328248596787854630350465484680457925593518079078865056262472600399277919628215377601048434149414612828082387880244543405341506980708271878341508949833127804175740954534018276124498182350944513958774235742912029218193806074212973858220675236535803473075752235596358636041789111985970391518481530953764422541863577566090299913575694156489746689100250131605185381399439817123119177719865849710415609625501867903919569533963440024058624370127578984522859575965601175769155515434080533515707559498135599138785111923307633192668907699339361463727472139620042552170293061714127760784389788651135533743832489847331293173754662423297927022570449844012973837417463097135031387106480166209873708146825484460917849152079546710121793045473907772666633730928125260069122203394277319528521359885381937602750294125651273069321793793639618362725315763545371921817875178457683248960977067248523915362145806627990310413739377285458066725320642768138638993592573027355013422113110699996834441513738072821655833456939465418383829320251265125759749673495564814313014094683233250144342585009862922434899273488057093804435352927840268273692525478015377967887690019584143536147827547431856822650397980667383796424857034046916293272502709941224370355014615131578685109312437700212285380273267420179133262676184324139650342044407854595635194399958029667239816828451288103374724426588057018184516608656901562327896376465593237179291436578336285311327464456121570991704321564659057908864254881640531049564955829891356425515505301559507450799844828773954020866704908763411621035853391917946308352303521488052658988177660177889977536530171330046217601992825005206143773915314506875633011356404688288466751865546828291479885524949069919087149150230594762509769950659940315855502819293172345010425226918665438920643645172783273057571499472159578584351150414604209990047824713318056627022822002913761996480819302568855761615025744624520990172385607980793305527700716794734168723635066451862476166535372918893307549231591899529881935757382932230636674512111453341745883520944570555796514397340973905791952254181062295696428734680365346308029537806238235346517604836523441251980656644349069956942275241626393553585920704461230548879750238153036784343385515464557458878402180054443561061779237096384824932786246197160261307008213153549581132852457493748050586241737759787112465932025405444904409920143601688759671356930943666375657154151351042831132713541009331278382188978740021878340050571846028398397833806516445219880698002106768934799551730666309601754516246624798695024481004647772669508702818664090742367224160285397259777508633595784097737194988813763155193073461009604334982884320171284536628562609689608652449644754593743339447933451880349846715260381317977841102766909268527060818011496447142609811260129945973172698319216055037367383615006455595310604565566070253552409664307791264822532275358263724069847872264770848848620315744612011077612681208174248880019917117748437442209961786837681399949132641679541090632964176934176170414929673674009281025098011268589439745610771849189747677586750498725499356528954133682440078227061637230483600371982726657424252337985337097760379173288531653078652901722905731438496954374254045804926353130150124540222359094864914852161568107760137553989928885007959563326446914136353961848104409445147007169041936047294211128609118284900733267623590834415965002272861015982061389003773373478305120825229765891976013868851799781100457642542038538048580323663470176191331419526751924206998564830850666507708899872283700403846570034290765393543598456293696840400734078106481856591441265977491748869785816500530918529694331794369302037020082221266713615260209800182551610236996381092339619794060665782416603360893584677008350083910166163018385131466520946603605251786384513627647092176902493492421860217501796310646603614008270749452997193607046913402531516833542221655941295736805537714303508480526475812925116498073530902834224104619414998191759781905231800062681185590705156417951281763760479796685544587879436660195302136997347144259124747831294301613132660961637707076045815955161997505558756669159244282398267098079101654071003755437345416032323548460209247108326935902820043070007338198889094262777927115125760735146154497370639512882443260154969218613427600083792810741005265369623649874592200821470829986520235510846083338852776821948642363236047190454834965509964682076609238599237096876193254042353748598445083191990749687710721576566107051708521524835713440072028938123114319276420510515948655531186318065923222099608804062925726449139097454673197806763177053121610283717072169847251243784480480127877540484599524749151317191445687004939098262040750145730037638232411037578004870082310915336057717055036214830845843172334235859453978043259723679744103135458686853414766630131543947606173904793199152356948072001623864828844988813444529645127487791800431518327957597740899137136415671966881278070438408792525825884085767754616676132551562925312055244223868001297810378456107411330735743327464542394641031548260533037572551691024084497722248175865992396318337633010993668738229486116877298133676920972039324578618496412571958284229066519564646846401633318594714199639299638137593324026390980941349092846328960226139441660981230191085995728296599248288202384517505654443611043496524083775757365852001306678379721682440494100426308522174873721091982751823669352622956839802267280670754722234507136801146388964975227955472450853537113382103556459525933707741929554812545176825277849836382785876851007934424729090317460064802945083639493885406875334921718778780692418052513997680095196186251221667249103467583587060331167970677605105448982622454123336691611850875599698171759716567142460123544171159906224453697034925403139303374280402101449860893100976490049343778857516321285650322368141310252830729051339100674128757086700525490290975383722302692574608743145690671360597619376711456164152401681782140349335146677016955062364466686456152112783290276304596574203939254917082137091674893096050316828697298266142074593181601224687424824582889198271327668144571974487181420740002320773836628219960554095556942389187385074517536225980172358215584991130436585758165923330522985913248957659906656272321984123616523667210465193188541000855999522617597483794660429807612207058078579162499599739347940174546968380358789044240938978078725423119018224739437517617337251140796730046529440455329577420028455547432375727493702349975360971277317000225129264849597689841618264055560757067848105334060638180197019980242806382423961540935009080432253909863394708401961269222348257921965146239579937617048279827722436835091667075389262135315312062223725328727476072596921835281611215161024323620492116512242813736736333673008596181861019797810694790989303905542294286360000214208390186394802957140611274619630666911873705434993984819189203900190522191027344595786924842127988649977302689033833019820242792292787614447080771904428155615815936168884586264361667294849816130883002164864841122648838199007487166072530264963301173037116973841268623090677430626132888480058959456107718992218872424975353038201193536054285602493155808076841211485156028998839162889580005285375755505630476558737206121401183369636660553785563354700972465376613037547150473171898752700765195750007344934952811145933307904679984094627723274093616668798772211749842168466827630730397454530387922325132130139911168788829713820323599188092484974868835175145691037835086885132524900008164724273775221895070960754354776922831755176269388797787404441661546270919892894354913958916441877386388850306174027937938621928323327891856909385416282058649541021599250324664310406473463563519428780089617601185609214405135917372638363259360354920485064172912065336133858405918885869274707048329695766750607230258826729189054878471599200010267822913272747421539487546981261496665411483700875022414659259332953574670591658098593459804179169208168058532844754122492133430873739492365455402340283551196258333080398951383124327057157945801060662165360475192700443921836190601248483549863238297228686638740509270907624276333327331815629907295608383852909618320551587689177469524071234217744548319955380798148850788001431871369191699083474443115010175553016321665228490621930472198923462968789411734221110561285326859996160455646998295792826109237375684050642423268307190274257176356005613102996288238541622230887764526582959262504722838345174690910038797390002235293338098704455916982889366271153265984190323048956112094498620583643151264147557536459022381020897211334102622934614791105188843778815419360571983692979987236674885354357440696709991415004755482631901163202762961503701072788705814106341496602773917953162389024044720748570201295942790592464294884704195485475026777920058554957418908165118878376054067317229396549216052291075270038585415306831357149156320923003192735878802589272278150286667013915658804920730862432131984946433838088626602512304320360197564555879453509669721133005730611605477852089505329779991497069028988331346092782989772358360714193819216007734746438475561721162439882014611528533285749721390389165094211493586788812772402721855720594303366749942054634574915972256410542960968207799777097478156782377163805599951365055442106061441125237449211823304372197463325576313217629459541316838378568806111618338454501255674606513818927353980631039668013278070201421631817450374903178236552218471008658533917780461434665387409105903383320465156594298165004336792848357488544661201305942817250596497706237414604298703277741996777727475789445434750135804043952843476769521762989717060554026490445167001454610643414878767813366390140066316691059185054312462772385277096233181132115698445802377550061922201595906196363454826747929085935512602424734743218343704336214776713985906350760423548276062583964399297726056452621895682682642949422789286687896475441825428828003252918335121492057800071933873120608431187306665910692420450206595849831700806209034945213386144106139531539859208506431503550586604694453688375796722694294278628788151845794051894933318576158759800623632194679436390984228899127408377014207078659978745255398385109822919881379692917418591239899647087438862135321545281534774482403368634252437428961954345132918881029533505385565503068851206878015220807029180434403628761228733098609483603408116006740940876638374844903645070211377999013950338422660765440500404736136705071069947411772034502844640155411948604874698415437588583160324459206343562867170845889860354706160218929366209498906391597145030143191606150180233035894715934002960070022578069829635474417199507346598502194119818473554703538870417081564156266809608104005633370246731366778168477928543921265243422682597219639898518204114598895682757767912071785100603266371322236236194442598713882718564956420211943594750430075038245954248372927942707410018128399589085765437300896471484539470582603221857942868224154280663138585561156467211638260661662956791400818512829547756247822028309203255634036957145895945030413578240921163938579987612973434303587751287694768273524096135327198653896443735947749478973686690322068750978140234274444004018748039764695179379439452565225007771889848543050046578422739217178655411433629277468340920831151630549828776152214662390757759822476577241694544252562424230371308316623075002691542125455229093346525322704497501434865909009243065688235966619989681128546665771361363934621999075778062496636354184690303521642915323577255279297251012967675944823709491856206900253009307533011417711031157364624989625499074468541940216877661812158657228154187823917641319008548952476197244357611981622671337993695331038205591509412082859524601853469000988836138637618264039977541992671271626888040864460580903963264118683052469528630960142973497085938701224738202476971209392809475142445675551354234175498640980052606295758741213825744517200819825444405061533248626855340054131842886992734415267818043480716210286614206446504716889191941585117372139154522716616713035011321034113735426827406110025459805608050886894640056260842649665632191442063316097426203757323061217043754711394615125631625308758641817166898061337671102231690679327700868892038453430255836349015299014492159756368905364979698832886301781580946988824050849162533664028809960664564951967931824254769041688057250230063594649540009624500527558393726703456418128236543668599619025913815928074671692572184513391349058762444010022935877861167363131558530199711322987037176126837513476457325504731939184993057502025399494818265491750690324773944510554435203432680565791048382853549221983919879946792657106391143695854234162977835365115289815239202128049953290891267652609548994359794907956092347417655182659304753995365964543841085481493144975354602069376916478515316689512174084510781984349647280761266968544296351056234526690665871737304758954852087673677111746743797078491771128077301607206836244685683586892612559081663994003049981735147442423237679516062891501392835341106781887109357667115049641659177523554443659896459606796211222510512440427707349247189187639629743054448199003339403338947579229727372770065020668841285835627852527786699243020356020182386365784513198502533727421613149653093613662194629463324698512684632855384678770167174908829587638389486028949411148118383857107415321283797530524122537778517043936175816436803168208383583569510401875369558869878429523814438358500032722555326827172738497981433364448439821295572528440081140325886507390376458102237514340358208425450280805132519247918550096034313522550342791133833734993199594963748773090514292992310914177556716505897286368696025534815218309759878642755447221620436890530648613661856263023129849798376199043918448966350868177878761487985736840997104045590902335252813955925508846257128560263835559270045456740787125692983802656738025876171435305607471244142269518125569937293772285646176791774543926286919055572177421580432104134844471704474475265140188039616676690217512894481470502899028983984869230664753112680516108745985035336325957855316137473347358042293429764125997777241504979193407600500691197876009762514527531481092167405893256315764573350770422385093899089915727405145258925924123620254908481710287532192981245401186214159083467816204842896069866666658578933903764751097588686418459950533753283322372565815316890625560426774638398405452447727953729370751194360332625320324498118692581251147104427577697284436742972429480503240690965669054910846107138916947747406450345741186052614452331756921635045221623351614893273412612745139394908214604150762765429579431434921759277243975454607550061260922068883047636991084806056524313135009888255717390098897587894734469586688955639459832224192234990386875514376582572636957830879805581571625013066963687561134760663949713472818531348725527131254460051230586962930280200731313815764952497660597718408408199942462795767842217010524372491498038731680622657349351628774247263900242506223060725547878489106678097176831667921871416570277170682036584347789337560344832665448857060706638924215494026985190245073812000430982955377668259071842895869843436152431435879740729128281264758771444119128608142552613921001162205134666680233956345489530794629972967115990982009376483458761412038000321916676179341314534928966188282477977499730067633333911269910333754713487219024842092038056670653047479025224703294722936756049768435788541678446682682093035488730671014923643879376186666231051596945685057280435675939482901010778806765654892735879115480298267143003223305681414450448853386730994978779905015515574099802977466110784731522151690113587531542497524544066535159240321858848309079011424024279596403890072839041703756594429786738257147802049173331060171247073114161289250307164180470488165855049914575178798169839398588673089865950492920181773103197789732399463832985811722814367930126625524607775530569346928470234083609291826268435922664666903363746963114163637927123021834939379612222613372189903581453224468555126059792900310073979128308860828077765837058254810135115594887570634137861627872390111078382650954850708854147189984810449246580089382810817328409474657166222953057494899075098533294867165259413376719399084094534004367472076621180214361422235242780016305612960754244157183873822820671378188539661439302666859779407039587365259070526776776496661115318686875491978168334158996153107142283589952483989552090735570079930974003224110092995276910324060772302488713074169969501621731069172410569672742292657976041371160005201338237692100342990972805837042667022373709405044998213200903226806369089699665077474377770939961009669490767329957688208546423300066569568518545096200207308008051001508696874242083511320548265952777893596223206633472578793529374755345835459729323839944346610408476648065226945686063805047872993548162234217179907382217368766509484407299292900484037652519508796307283076635573578743301221997528566927154817968495270573696596177571352469976668631107337753839987296567317859776010655637816545077482266049981119956591362365518166104459751163808763425883806413744407042339141393766274230516703573342251127304962024925730591708503208138728764240312502068512492415992307000013626219987290482727059267040456819170400766607191390738170038101229541425228744165006688541208779454954083850883158545600304176968254320280308534970790953479488258866204022827267076561889848659100077038642505062479573260404538333017670130635704755514538073993755180501759048249844939767664388993413470993756449137685936956864339673188350722485384917443761388153506880014579933438972507588461881557030957461247718220377467000593690010093016221119127799437498438670848428629025251037738195509918131901526835782195326891102406645837231939470336774191356175902625018065723743284448340818168677510327851634851871552629176822935560028166647301372538979182259560150172171279843167892353817129792306186095762975696064665518874430019356189238697790088233298122733119502283921381495203460301776270537835119405027989217352515311336537149388298140769830943215965055610135372233119691250077705221633063725550395458621451483422948097231923196832589922743392817478816388553077643865250503259402077901063824836737998172452491733361709621558528483730916830986021817921634522983692973015821535264130892151315537222640286601919978658066418963620753718364510073335150581649678628497728129475168800173513889872319883251390706036506157423196438187616972445812173054762466880778769700929680540935285287683022740769272439288541677936401452340102465124955389253056952482682224666096090090119773504246730856233144164077386670475697837610850786581155253749706518751361537896494065279790884951722335909203003274531853983812526632048578021077085937016547773132430767648324473970290979873536470850547071527096347253477487410608063924532669366689144172134605236338380012458334336434636793172092177802101166336113903906238970719325663625581644562223400275955682485945958687455038036757409584797809659411061514235721335570127963711727909486830729065382415519488700951766956144032868949429068482667559786100693417425160004478540824038525685298554750279813327959561858458254084666433105423708071972008464253534504266605951314830351193847946382341397312510204657852552652576963979638506993816416936128934882522242429193789240880527369500741190803934760287362918033001174766974658901713853532214013919053524973228715116531546835005414857588708214448207317280791745396684503921100224226432120475446489856550819791417492077520427270924671093782116616181762248019013077118135282907266562466597031827704437591445044960982265555365081342846344469329176425668881600078438197707810134969929793669594587736885086002838715504713397294270894453428052121502923584205476030380181888996458844505562667907889740300062608851935644958480457834722496196956417108105268021656335595296775940316487713816757525067785303044699515476708917008321382731767029145004747066019662306798503618463886714979810537081086888497939915497895866976625321942548516746322008564713553232412721695578930326058940752974766873275240047608818919307819076189375414393706793773072734019946765470344823321113583421565973248615678263057889642478313244824356228664479607111979750209598572108457276570711819807919218776886863009421133841651635255797316875700677208462465106779277156177730201242281613935645758944542651775737757794809958685464522557564800297238139736223098593344704400367601571556039215034281355546339629064541477542655925132588369655100472497172793599433347739109118275502508443573032126292546776693827190934120191162183878474721387923183444742134951320406244213048626877573168869956669349929785142534410756276474701290378870032415418637276093617957565783187730805803681618943043685856662203970258717348201254697079474676878696167570315073352334475852371098417159968647968345092728010975970454109960088318432016620109000588573703475444214365039259990606370296441792867741923313603960888318963936621121473633469758327536462658723264232224424291209303702663597285957293800237562833150949057488620835033741422599649683331722658673118650073831543365784480184926239760148630162133565591740537122813236566442386604946848592464051975208753810820009024507104676651418843559332359254172735455432038473188810486675196935890024176500522855198162730721741989012215065421154372866527453990945047720293209841815983523217337028164700854480569002704446599404028532577213398773075057092803534539160007049131768050064952028385919050322526723196653652493658717271323798740640641515071119069692188533369127377534908245666204612701153195466699482879186529605773502229419911772652861742993991125507141593366358915347615164422580862313371782916324603690759720515701571776131031860745350000627494396599346726718596207305132001040640943918179962306631149754386663567712109041252635897906918869671842932852075798458459133010153194527237616737692040343984799106287562908318398898888412949434579887489914303046736120362866121865497106384476509719404699061660350278424658582711264373454602431597220272256489764148037221761664938501812708464801425978677775688830288602655665674079193452396953185755579536748607040127362108650557774771061521131278568971977904676755230662989977865586752481386912686582108489699242169466224461591450215068614899943326470222749260019712038806064789010031896477928715681576576859964742052908063555784888297119902255719872804305451597903908850838217126876334525367678426031063813349653934002622760861386975639960068146811131481805285912801939277929729455248995009256691381060030522603967905463315504789956910464622305168874720465313064288234078571138304834684256346802455480141619735924424716753122148513324739342681306039190865634760342418219310469854716762957619607761632107412123578399483560882181212745462280244068374336215582306231999569248127791558574981226511828780990397780615950168642088578147897038353870255957943933466181103321453527868274170370205761521605254283685253492549938396778392445629884654851828453720545136435263717823584179045107579905165019969151174688911287694334410993428013893449907271414199896096337669046272937786543960742091889870554126792995217987221267979264602454492854768510815883992574904269280913997019205140619683162890187652706043577631354886476584196975287269230953334306826651651427876519500406753039072425377549542694383321406115573535004434914544962675223534982602300573134472345482359359755449610791214546252715129944257415573666270970497710877414784968437870302378710104863713882073843348107454146459737833829346954475220814239710759673962920936513649804394589183999069127906123001501584014919791385842675215283188570035516269289311155680019011319873716488994606549494312316156989098112160573260330486715078524825005626379070794954068243809533134403324828326341252190387206909189528650791354337750329166824998821730055301361056912782965231101957053034830492454260934759258620213615255093174270146543341422293407290893032682011407077804151997908825208395187937973414884971152186113828970375226177112197104322244148932218964011918633925440626234054144287438611238730052046471942724646836243053485778860846396866399622420454298690070108208716578266036631355451556954335318321247960108955791589945394288393121426818958068677953022051563971209331810841817480619448853417532128533174497395783707153064877278693148077584964857850819492743283854324529302437086243008000244716680344762263409594712676381833407993057283609689822722316774413708395238672886672698684170691947081252374575721457371405658062653436441890056041793828918032589196878271107616526022989700871086819905215892348581534666374170741518788619644721301205476951010373448803948394031737165923123266168634381153475436912004138168552229192734113195050440628064876957710124255589408898883992112665506863995696124479807548103382780910839473506628185265007847956793315547765240008714343958542915730066147263487807300410762061356391775419759428290794154719617586057700745010172164796757695770247099362477392424125787340144640009776607280276134376739232559175058661534217342057575930495350560828331388790022980126888356096372480165849953522343808553072041890850647015073360023923446779310128259106682931256758416655758938520155774088464744324153591569486208871286447827639679134238171862593465354162490276772429833867248527732873202683884821492203773700599112176667394245366342545556543427179260477117496525027300283101701752905389002090759894265917581394391128400175277585831167500870536006195114746470294252326806191883728796902386172851556987356492639091385194962354885126037676432043642278344234950800842892111616606431934849182422137068471065306085330870931986344715591639654133407223980468745348643569082169772579848601619615087986983999931929322320711006563761721048210202972041641783822190860721531871277303013087094443673903208537165740275151389466824999291357383997823773530002565455571048422132965200531456965833590645139120435034982190570491462016776227137186110425018544700519495096019772795606808784145569345597458063323153672586657653421193072962501464471735116064241773364649581928745325459573600078006431156125575148864846725881793581557591796717578702004484605875245996388945108948162759531445390300947372366743654478719467004428160866149325458710095865709256320897618280469539064449404758096764876274436682816419383261237240530392027644897174410079236436550782156724597603455279548671040468058565585073568056451766114118799051886812854869007597604771425140889985514083598959065083700516080886944334266312297509773525039734257816096336614632462242195663452848483435966332785407218578478506099231603974290848070008807799881519458290555618531952057104695443631190606538761805459492185279607452262665225167711091927836926762413387174212587793984477282167367037403619879008989673350962230102270915234816898965217126651904066659253372768603178607754945785767192989570646364904424630410427560301692152690031075983562458609107693461374051695950034499827152193280215629207212523310850983065113094344453606323758240794812136698710688766561228636629512154201894235303190206667549290479952681703124535708736140328348886138896378987028496891989940164004386015351351440572500695409247558165570020836770232304860590351295174936248172115727994653110786710239900193320430514957949756308638870096849372359492568628878104118980393233910837340723978664773104544815099353448258769322356763558416933363050000937077786401091090405956776495714505454829196105150335233332605059090440196462811703632997124405460716341917266052127688347639102831047391852664658421403372448876226880148293628584232291289044928747600860937677179403004514667457353147312721306204226968247318445883202387260921571490549057874488366393755478839409751004255247769104894330222467433753342269801966113298895347991402731195640536865028964770069219405108526363217964992225793141867340603085628415923889664202905838019820990896729326047177102340342645499993517933425532542467446286557681762334041435215279722148802534557056889080709845401147017490212841768040824884066376266786620960423202352469944909828327376808836079473448114438471560574456799404079540043560978467571909404338858430218334752814575412982607953326144557793270269213133170007831091512790319700388737076701916888937496713630335334351270425389008498233747225178283447138193918444417975723827336261487880108539563552955221860710626880389843634197794390042921313101107320196828846824340575368592068134218505423235160013847827408554520280908286978402288789183539788743268642108852918106629801889808622637048900224656261633476040554521427835170121871689506524887105426714688938364967495024915212792346338414565315551851967325685515900408398572292577516802218348587351787078573010305154042830768772510601354466743799515081170188967703734128210281059834679177238534971820757099438407049338937240436253671628383173885190258701287416618401015758838780531558231888983343385502484325841266455867823010190693632013826821847651116090830077505897846282507926452835868116144587637508167193757597792512984406167186556553433682322162301474222921958626588785711533853910501745221320501725247111296856428762360360752105477554436831929974051942239572444254452635783393660847251397790318249680501887725546988898707410598103021192234577302696823090995668002601221337214242951617088795540788219538506096089817202418126185093371534544552254125647940569908343778882136345189907240588235013821108763013732635017219409969191377277912933243549100089474709464527165335884800543371964391501884946890814442450748976464349760155921030174784819491561043981084739327049228141822090377744194054483466903164944138334901114217530381331253215989401579316640677330160868166881765559169784738299047225443807083153590965988471812308022579301965532788228287720882288804504536402720557354568659981064834343990150026352091859530420132685320493285805332616945093178765584685445482860971664099261387645576027069986616226127819767969891789211147741992994263076272727457671374352062635404628491193030527338672425246452441752634515239846930124787591273619773280743650825576047145979342431687145628061207757574007524218876486631905198727350752155705673031113117184865189659227287504270864552869096428134396035976874365453598920009266390296813734108813357878283075707038405976270138852932854982421443437524674343920745009095212494940700131806457218830657028066790170738876260541458836583199443487702090561903370524982104716477151593135304831987099717381156653293076442218183693464484414146774496713913199860542109910764798060224570509851811468764285198503425462223265226014919974182234111278975000868896325754990193677765641378249122633498795134722886150051663561502307729214110239741077798000998040815230093058680812121836156311686172378626493972085350639024343911088063523883517339078604533167273822735522776215540952555152987987098014964504573821930813699746429948661853451417277333276208823096706096215551212882982565551825261968567145388129806235224087825526455452290527220410166494189543629548205139817048921127746447236868717660716342439192379564686063529067251900126100371125934257083862172430372686456858353958249783403652500206945823178542013429861961857183346690459020379112684322584793536100515666271714843173713119746774786918509609360354718118051202910706530656950009918425406197007634371988368505814432691984236441699663694685959146646693715761127939348854527079975810999649358250711049996018865259545502068606168285347864526763524730500407376425385689820749626592659228335020221187490560049273757714578083501038897802162264405098230158841555386094273611047240167171463476045213704128196993188865198907355066107643520081791201470411874799054653363486987025296841303647268550729896227649648454132425432018276486957234278975039015680192148820719635821472272889030842588145295665746731912765815472632856159467732715382886822103509080382960690977766403226721451725435444830989622385664874025268778588468773703578870498954938787657293598008573223357916632489262431848905372199716054339138344182428704644682811414292244371347224547779252530395870745707984515122307185873769142181196983028401307923845470548539731476169755900233699320177314826748060678680667940061346339129571093858993143836886763736692535022465965261900348337881069789785491252684673035896412381270559290365886038660603292923049861222907930444482615809775797853082260247711922260032260698309838768221471837393615141923972681815149250480218905386316855666257012656172795007735027134999820993175807357586961660401057328592462425390736604348209912651397886533077593543422214795120421623689777797691639352337258226298468117661521089474664409678395215007415686798107914643689617452377580867029023265808819733190705421625934443204046188301536387362694921341282458478192548717023958383633645817662373443790539198612842620678438445560863214038920062151743387471919182026558093362835353318304244513639182531738563390424210514743782020841722388998039996858067841528446693486970142524560884083761760702400626077334844300797024597570745476028141677293107649043279766128692206246553946363290501130788386830814987657823629244192846073299069532401890995478575654201572895336501304212188582804523250237641044677817176250398208168907895862757547202760477210845874997897620673365560264472549574775630203642255771310956752157535677284994025761631787782285507246193885984529263428953352160499856658013057172565946332587141251488798682358993690231911259439154966383659892875871320345367276413408160015856435408103211316363522703393249657766251833383919216973932366665901121332288654508522356869329388666472330825635026520256052357514578356214037006384783517878544463980215758902412232749776604621037438464985466732599649401840528415590930505579101994072208761855622457403652769201900140702590300360533191151158513351116153296281464003234741230637421586778625482254805483485644492713301659321162081591257435212660492058430612381170840661423965530230900998861238999017062596170762032992339826855818789317939853856756793355533997481425676378410169565611363760390019812541012004096619069139894902885537087594238270455924904718800651763217952229400498966335986311434217101965746298995492236860141423463423765955182130876534874160233744826017396327337174419601777647044000235282503860956087809486655829048320309460529030689475123614777556948477717406136021506865308961985581627161803491228767703062788032788972229692266850127638107897796596889912725399567616541755646430085373750790200830617744722592916423790483683230461334358136522180193840076950265312929041523886700052626304743808474752440587178188046987820607354552106865722913003120463654491978607971089355539875908291505581984286030491290081279413920721355444571403846922926422530060676122492459145658653039448131755154244255630461628962210067774347668668026985025178769890863061077314984579839574747368699860480685040655379099945969240653095375402543280555969724299705518514204442051955307268380882449874614623842008400527598328198165654972490741037493724031239789561950211675329561386323680407837794270112349567772200621803722749986354894697722013558428083992409056046770694326695306809245134498947057925395791362203943707575524914842485661780378112562565570865736176446755607126144943457005104474769728954335209946801821771933352059606818243434338126205678605089584075306389018057667772385327155908571989907964148451078954797632955243675892596742543358591570793963021009189283179501631917970954057089741397838859268501536715019932706992689910203161530802299643157857269759902034230942406963155144628560391396972077249567825365747893280923282697796997243971065634526349393539835631371544368014579803357363719467884844487539338673671365662295223138116320842872589092108352579530656753770117725202313033993017062435156448070050103019808617121922465297864639846212947221908086727400875283268826461840709839615286822984758098569795229393218021978876697060171485138001882767028182119865139891489803461461110979982079112195871759498437722251400617502704576961720844745205342367941626760122375243729477629310996080363324454766613328271003653477190191077219672648254164839778660652444297892354765168656185754609806640992889100733579553573468420702553121748946539991742419878243937369576031751853078307318619461098996366713863662378632521588314577400246487111029015706280367293548799152785407631532582197448231275855463968378177359456956986173429944972048368223262721004929801721364572703505387529608933111154931009281188817874105908452009521257293895325537890293223282905157212880729283210564001218744716998535484183923267304270968707989710130431444952322267793317004122998966045727262891506158314420715915845113530309447473500597666390244231546718586616248344826763377320404608656593787198924075207722215495876777380878199583639403942664059055364671667406213658321544288690142045913213457284984837890135019618144902883736867153406071588219802995498484069070459122382564071803474972574521515092281199201086130534832497386499304275388833191887064388259629481436581756460118038000406085885458853245238470267552621740588796997706865662285975426730545076924813741222119838156316482580943364762727819455927624536675096314733401083696604620376054404956085017461616794841071099171318130458263646211491415769221931229772198453928165242071727260864250363731970252544005840635968342533824187010781062535984953468830353365732031222169697910800224802025740944891017703894644816294787031326981117556015957286448876101708880851015905475855472615117251058717745592901609136447905625283079906241039888117891972111446784760075277510047281931570196884928797438473477526144418557134771761142313592366517066057098856115241175834429719800061608307041277885105399091870579452955410557769493649262115312335560801486252888670615083983596243021181714484805343148389140658843972457379521458415361052155735886842049099238117672845041935314802307634431834488198918887038746847580136711038283105282836707241020317764742167286401968176970075249060460257044663251517914749047416597145864196051025071864261243462565485569753494185608703782626063031319747128007047894889987472668458773775832093042960381415311058121513597759179062717426346489147343779138705781956045194268720134472143416634901199572105258174412667711712982566111675705875796628260034239193761790973350774287563169056745799386467184132074775518780554856213891947344658458736152755611401887629831927003137371617093196812944880902839402661471959567146658866505409347220676912940607016557155719481296710541227314489124038138626200145099480206086510240999379224509201117286776452808251024381276199470955058984855099863075393190264697872578810539118687701460796499784100286415327854128694132308303951075032550599774026164736936051507497273107965690279239646965475202707385951263293540925094789201820455328506357791815943268422596852272475186388301722614584007115876642029592762381420190540011337300043791189647092141935256415329858111182076753316968381436992663967830275899786099584477666806240583730065587689013933894039186037495094597087719801095830724267802725386515220380993438702842628281063789320978253229772633851366934601301884426310240389309434411916099488990399837830934066268796589972687187329953154298224299329218271218851667845185162534531192557392430755163176035876699906089861343169157786318657150830523169022558531112947972042099264589941282220947439931368149904345123717469849901019995487673487634764846208991652653305868542872006978306672885608440508292585399843339735119804540792741120163380727447335345704212139981741922721993311801420748103759313717335015420344132201115232227444524995610703466558175935564879545579961184059410363396284609970037517814710478115439395203387392626649117521873650806691721180801432841923670871962975003755253419160559771009061755478284020394686169900634800115031488072981986031449306455470424407375464397803380915548988483045999873595973164398035448129357024446121858622119722429290552094982004627461838188648611528609918606509971750457765319496187881715417407141792575308528605340622898289064444023157190987336694386869418937708692491142694709738635724614227369468485396204849654768285166059026796745791949077175688521961553418310627048187666439625278209076731965985254948355237297974056681208618460215050513739411637341703386244357540973913114834234020098682908347603782454802011092552250471950707440157095808110546525839855658040733619443927462507211665663858861886007629917240616217706206456245852080277963814655512838742714167266916059606687289649081056114824515762459846881230542022042144740879698779573862823617715982637918458605868216691696552989308556371363009404614746946820362976154466248099524806557943046231290235108147445858779391851790171955651134712673276258899846078147656141888254310188241948085552026675377427192661942933943227539330664191973180482865309635597593165270532489306178084712440163161605984535585894709205544596783236460657838821077892564165121045404799954904657124521712150340228749309389718802022497929405686071515706877066552763897347073580272544314999871049422822784642174030679983478741260523691240467127346390471607514707155483492551346622396244097033563859106675530154758147714273724913377227200088049416870750678909462616723544028637628773749125238631613722251843556665053466712434356485294873968323581310862797219722504599198408374377254933959805711857553452441252288363635527802985346545165301301978957874473061328366801529072252831117865832535267888630241111483598792316483347627902769944666259554643866711443194958943011240426451922862664922097732629251111981589633808296724327548577961382890238660222289790412250234275953415114516808825077396036640414745163526726321056773476259827052650245082937798562216338417140841329705369170826143122387712321773734380675828037294431565847753019422982613365702746586446434082177604222163752243582329845250139625348650823780374738310005353822580436259026996734014098936730928271380485462365770871186994793373239557902563967474194766797962993599163247620146205270995436129483628723543518103494125520168655547826684636455273430718546713159063986337336539705739912772714413932756961002096746244767144027321297849322038077397676050969526005285446204090928321392546465300532773639690007696420211875669745281250261757735719649584300130857782017792530588658702619530832265100210700325445707310338703944006581141374742004012001458526000561228128460154373307953621533881328914906033510911617253244545887797626587492449172380437792842676094304555462397561874175064645202797513272129321164978791551133112683798375198729810892416321461425297014533684144226562759329644036122272640636172581494761323791881908783686339538963865368995478559059521859605284513191116948577074886415809797243551986724333206252718016065241975031883850842080581793744613689570887766147620175499145913486917945951348327321570177133381131671937230856354075152840200326525418405233026454111531073499745863614824184423019948080738221290878088028496442525491220680871526854255338067787535915556937862199119242558626175647841612688936280248936275766448145799214067202725061120851271238457103108450118708883614681721458772885827375588178789054107797811005096664943595728163279785245500213069905031829408884434128829297651439072461653167374942489166869148163264457543251973953748779643238207371313695437018795034239273741744607798000716125972227654060249307399596826351837517477568702293540193413961833477790878999249140830594690535834104252347913747763720467055344149457662487583108980773685287418220896248976397601885897616046038100939253432449502992736550629649174641711125233810784871775609190474305981115813935973252299924459133914945558928580758583114701300833640511535671081140451692069387164075012396620787872735967975113728945547707984407604677181980221152410875518375982086941205004315961081666834092454749564006546894951633982298137362760449096860663246770104577975976566262913691134473227160223242129771425085062611217964414802574158495044573195322417073630802479027139127974122287396389051244942671304147771210941276067246525012347230270825084874379857968966256481777834352067701470607489736340236094036113091068027180215266959821874857632744962622931333948769096868858909843871462180116570688504188393201626078872309587972729237278634066908431299174540490948560104557953553852143555181490923393030086647172636981715657112336779062866684909001750488786656161467418739633967457880848130414700090701294311041945296562801918680237677686559457019211323375783700561323848486484340462166427421351571920519908760233125381845612793323862609816483775292992160727223940390725190619427609272116431591682319722534259775130901054056465030975304548579699928195180566438770348686827629082663252671863587792207990181240554792590383343898390188153053058965796846340108506930506047018846727477102206473453325834983918365717852800060210317016010172924317171007621076224613028494482094452236243184155148369285682408538453979044490330798501118639652931830185202851318464198965619083006293408491621686237304006418492121099326819046671321296640384166520941144487306034678316357617296988869249095142835202069571356921731365117275057697235827959929013457181793001867798167438366030427565950201726841567381203479812163837532882427765418802068252802691222437107468541963881011980098700167396321153304156760632480269140864466463600556685718502763271768034495332412970398215844156210963444105809975887275331761920320741377231483138631073588853415991708829430890519881978500386502996783990136031326332969720108283325680256873579474583066434539053642116279719097587739394640684348012260307660956983920830939218449613653733566347477633108026419527218463658783340475589148852032627625800215989790995840934112514299787207260990904439193010647198289661620040302991675138387775729194856804773041550669204660476856306790011704559103240115951588588487784511389876295277301293634958741454397383330588946049683758923929222520753444865474361777972338933281729983268790446926902912900820510801054728218873934210406702632948468046888526750202380641516220047373076393520297706139692638405025665648407561798369339345437545309705355699864501950782978044941469434226952200026393230961415817151182614285221680019003570123883193627446039182971858805529438784724894000312425667749145488271382343819944951909706583833147754550485012056598877141123789880273119591851044838171446209920724831310382729143212367889510702404321761885029006599703632099089997363503849781782375600463507663397989967912825042907469408299727531094740985077140010735009323122906795676831229307677597765098646522895839763884731290296501929339753516289599840046680986822509445338610402264305812884775276306373831739762900161378045860546950599139283700177917249167876045604938279746801247815298816017626345244453363580116658656792126361294746460334160425983529007322533070300262486082424457112702350849449508447987455540156302618496092454395521960971284675042972199047909061843382685152910309955748238133845591343775852678004804696606568427144364393088216170287248834749199076069645101747223025524495708548814992782428935121130629449230006787808870500694879417962711132817903516864869378252847785560768738062418570943677436869036635140074701649097797273371617202832910804579888961176543224125081204798791536764233965779708886519086353236092088204887495639072284515619342318155626545559576644900234477647589123714466741596230656890650065263029504853352975832438948959693230791251020838931529869938272081076956603196190301818631108610116208366134527499511643909554317371434773703775338302638041640053031950582682192610855845432296414954998882252640365473179015264274231730678925300382320291878950365006006032584814349197409067022306670037307776843738845458333820351308257765329347485859021577825777552794269281250223245800499833939188989062977741510908480187081503884865789040345786889432910024662316168946730299563275846645977846485698658523104032140065200861195182045624179748021096955667375887971470517013123897926777255142576499193194796056309644169303173576218909090662522323620490838784515480339775517500047989642357660204477581412578242468345397063026101225783461424144113966963620713140103772434146087781607960714363063501067550823835547351796876689139495622651396345813732494966264863851243773344651794554754043583685469888587963348438357169218649736518436401963809233740663558881819143496473219344926790636017441064589212994740167818545166975572541713812965021855608410736893066650828683902334070592319561284834329736248677880453855676260831223195066878210980591323865718410128312207706441082667998472712875253469131554652306853813736803995465164228012318655933746016147051871702003592884720165551716006484024214511776269535367546771086169613481600114946802560847895516608062331402201920393104973742719600881035744948685553235332341176065086327742647117459514287730987592798540225455188883080748306455543827502378758479649649830545644526225379174415534219343031794408529072901584682030497966382277575599726186704182819299541984701042802903439458673424677513059743279485912053941608620862329745292282174443985626565283728478065085452771105155228607689816800355806130901738732825786015242631745187621451924296174383815903595261093967683641498434584548365185995657660880208419337994647491532482103967529641392366991613419243126232758575913838414587693904988420187581535725614240518506887572071224264156408388063799061121465438444683077648881266123256941021090117669908549784780675323237704285834790311919880822683697195031032830716372993743192594545060068640620569098629435611210140650587569834575337228625340534958081799592386749890025292159638733501682718902708523525841156453764578231866082952917753110831637572058155308970977081071647069329945946220709018569018815751863663677194500319664521390135327668050577624204673287495074541712394895450546675932058871830453684644159238007343139240980817020330931457152047221143503391361418583871881658425819956312829604159575302973691012452429246032128944440092920823044779796695643413126239641047775202736663370262346532080053115670402446741090050256879646959521124608848317567007246397862713717896671094473490196483612370767692145428900116004484123584501185791696921921029707351696873163325593001802264214191902693316551759887052907052722992499629843508062521166399955686931127645676741800120812208999832879263607090517091835628431063116956248685228119530151401341646857599436619717353035771259766441632637276966492595643162721178205867317080970223855052341535982298912773311520594660832153605823429371306690203418040547455237194702367240508242874068153482162584627532519200732951487124998014548347005259752909727298910707328319117687040403331477776066564110283858011169091080699055073103615338538280721265994595647926230800151278302520789966246115946143949089631245706229271729289688098638701300791497713148895470565674505813401492573661285181955348813363264560654988189312481977256992197961173872259412346145765539461145025076215501064384043870890672484357705547604298792304426530555525540692082995471488831318975643594558446037276586963655432140198909622890712481031431446157004479858447144339913321789757427389700067817381958347646496060263573132718738423788970250637886361175231189594887230056966807223794329339982213703194469359591458111784229668915488819797539162752027591764627321434257919685999386208204014850778492534096957022818734520550749540377643536627845306137458094751701284506935368932255636653647057183677213240736259079127108706333903656728086712051848238314664796885072646674540077449383054452087642035450875707554146869281055167050276039478554859197257489656032268455542650495112469708449417292493490727421724371895952583033353950660337749918635879619445823450376886525407770141331534584321747044544218575619357974441393133008990085810036276145722110388095420338516991805537506612495659304935807635538572669789716716699808092072248661722906593403688691879444061096612179924901097347641733367158254532539144844505609724887725280035152021441045600589606947930215325782757127121077075086994966880814962418416883162581014196619169723058992747583696670859116872253711972854530742777411617627940872542366325391198053363664118691389070378476706789956215899510838736281838036061283091127981838140852948091483554009292827380267327596339219089062026380430249515833817231419040255742494515374600971080510354403474889560530827702859299013525260400529873983476162989826456686296150236221928383957451044805717762147244010255843313928800622374600700093115607491326975958134018985852640533231634061984271046638771892305356362339996759665410695837336622491246388442200333890043740776949832283016101064018668381770268319639605574446079459190419208334273182408232303753861535133124311839597649064863728487167430613384871060029162462644732806439317112373063583102201886139825846781503261630791854384053327981793016558041932370438237583169034038527788812307421236028483233008618854530519876076961371246363805076201428384364377746042042707887537496012585212433955758515567030289674567898951863891969443766260921776653574859479684485948645395508263742914609515679807259208180770960318992547412709613487151592206713620109415155264944571012729526495991482927422971116417217103541057524540053273367045345984949503820425588742696062020737643719509156794118200452852690360236822803001800171626949556910952209022952613277144844488521796296904761033221715218993853643119617270866268284851129933460725966802664011498100051652864216827973531632347535298598155512281105392602666049677334810283341250660808568270637267445885800289960650202746114050015337270429082796414698171101457406029122096061066401976579843021784320368133028653942114917834383618099067719710265076086557381871512448043399577723266003940535236774609299107749625262377475632762980904377738509366279364192881066500293596595542820797118053099533811100072858837135010194885786354092056518516779082516533131128315052520891281706820350464010834713673429866584024516233046887808210191583265938207448620267754146570833041906160526197601969465712945007269752696234334655822887707912679037197798447616033719488236986417932235026734292248636153671046153764635537463024179416309462899844267908801565900450113850408680489472050543295245362244213003897608918547131680167360180279310761167688054561484882987842114571404364063452732260492004396168291211490406617200648355619994674679249867712808270352161037674102952877360914139757708386104141349942729627287685309701106954498732383145387139816819062034783677154238155836101671310189438595682657619314148069344512484446437440031773861692121227751833552723547886530311808011448546989500014289336968284512052354348705775779524064247593338943962017854618343148509082056358819457744242911599129619008380437818508252466875230721323478209203722577347676374251503778369971026686254789640089246510589891607022246084373604275708979414270129847012333655873167468600091041664820025539400406558020591654953011032790243187673533142057893395899144063552466402036981964088177457462709213676989441898440060301714782874921390138151010121749677954528074408317043823057500122907827733432062364301114938028706745352048929488193107747104065886856189752701325112669742316293198932723913086113206790278581891037323873028431538545373336894901853703573467583221854600465612989680606681219474198060585961860972955556241417254904958633704496498398527497694957939698437669499430425092278580226716598932981251252174392939460198325632016858456153938208881705048293405759764886932109357836066081526334071969135494173082716898073606006765543509353589445364263001188594066015552676761101914861096788174823388860514629702375046245257642517705853616625202373875885489459044476245526531217166317510480288187000922023256998016480872801168929851703564233448558387481784382886855239062417737384912946156679437516026029425201204879005354453790575266251329031431858736749060092904203252164380462481028675627733584517922120466323529263024173773674062252154271549320356361257776775950081087254554930467366116865863263804844689948563751225126668446727955247538872275346597551650833395456272271618045187989710437786295291929612648522216548615657946768002180125585787255708195059528438142054628761286372810656457012306202264553763896429039904556516761273023254545555688733355128408726857000115832258174221352998975330276202078381486490295878959807429959105956736271371157520824462355039049826856904663427204215269568567333753438220306155238597456399460076943237753299801464491861125953345829526371171460995181815889479670083810577686335015135577553866703420151373962274256185829979950146611275414636277020645624192499206870716518687450760033668975636260640069838613653766977310294782072129096305523135840076818895030049148876381693741081183867042204696345374277377544060036916290379946499707911267886794415257858087776823842189388894296981507494462186199769463108085757875858284956583476149439555098858215355979642466667449330304129873551856482706950441006017367399142028864764106397423904225937429146405027871553917100013162302724895060628229530747856099205827607304632266960397031336272135647551192720158742893190966784807806628184027570522406375842821503721841974664048964024275135538596628853970075389203304904682560667180231901730594030217219304771192152716888136554287541063227598509232971227799083576786471109196801740123121968853148336398568714948189188377892504567069527355897345796323586264616486594240855310502960983214459881291628112401544475304185668113560863511661536513400880797174988813404273933300088651403267262035402387104418170354660050723618419683884965508636177399233193300395007774160041737353753885548739965296720841825830888587110630705703401801984638285731173990457978925307932848576705729432446860099741573068928754318367647641205795912265615077403585253323053891529807103398186942275007893978118166747405389771392990775756591335003278358914445542982443368807499777586654126367071110866034669424674436068127313144611086684257677322367929590226245561986202603561850802980577078890117355103542965531739739140875625773023648509810943523951564959260852546630151824446235666992670448904690839092160852219018060959492190895830624482215441310442316701367094785216977497298480122174799688263722640717245295837496996462071933141896661430079450407320619822551440445501575676855572380978249700234682362679233255148360521663398764464267234380977365487010981831818843071282615086834567382860859644143314304346233815268382810106220036223589510738442646961144519858121829510730598588281025992734057343807372850303072098753299905619756994034489076964734583540861789589211121533150602470974145673155038609902729749321894629013515987431886223606426239292110256410780329525495058401098686061749716257423388083958553901260577743768796520814934296721208962473948861295609838231707774628526609800861639182906055888413395774625651601868054221279938095624467721813660510726403005914322487217398550799529589525649015585768052872968460440486649238845866489459655929905274429409147371136764803521308500617712210836306674903868094647525973354379139375720906048268155096187037411375289267913365139070393759989033906230333301433562234278053143101310647739577892048055329292582273972912150484840171948123662670506540460456846560716011117837210809132353884563298055511377651789457815357265064430893777405797294443735060935670773138102454847190256573881240519675421933584660487597639583471832600246149694115168907652405706253877636471378906012253415878248959339518468940056701943057597169580200878180366837732728840767909471746362725347270297317903140545181347190062851163871509491745858287264477270164369095693232974715907358127815361819802324164661346026252311772926485061534213395726336920966730779949989534632229563941502295217336720910953880801336108908732057681398911219188245155204690867242144385611281296790111639120359520878411885706929384601030228690915846797639979114908028376169434045371203897801050571496075513020644281764272157237225823378086836096417558240426897289263996323126313242834453622711714730465752594525757590385767253828962622791432891568533819358045589867645144142960480930870071249860054981601890555039150658983323372954132151199790392066956977040808344596336150033477733537067425733982429101253404671269605776651195802556233685704026038721943369252609877690535925051540348042251298871531899479054289708482811819888821820847538804960255497405105527642569547014156797688041355979845358650086117380379876065095043631282249457359425576345283541138783732149265900836187017036957381011697617768566562059474658694248351604549588939153119119790461755869796128228550471123682749796200764624608397400695686276633686955946115404843682138837415692731010320051924906241330369061631161376554176034866504745131126641177655333396012622185073489644111268428102551361256805040241300898892058162887262358685859886472277116675833012582191548173664314551201540303644477852887209784536675277622438738101069273751166155682112644330382079790476882220944253133864468981625399085211582202625647127847792218123248452806454830080611179080330132892010645920287970777512215456195442815220921501275125293996952230760731825997030971162748149495228807658303654405038846809876941983695148124487334563146991489368343666964582124934692237129054374547138807591771392266410048983009392838803710145334897053315958369422832635076466019729026993204471390282806858918436506786435764254941619380657860307887935669450196842258162335654923113452063106595619247383993255312461208242020759403291881883455637099288863670894344700481555302997705599489290403773783356507963874880176160040568005650982639278504894712358853739174427928908276731114743073041532004272938187964848422839184223527428928617178519387044324479143685982841842009854530652627047714904194388250176225373379708608668701016702283759658805009658767813277119742171050817553148801769359526894558991122686425813809161036655921669041709983605266033657933536555850453100544297949529192634206710522631762790819892110812946457140737402341043495200749678618188601201731607959383073003671205487359194578526431824410602655782841646817874519701361450009831545494062695398625326045304047698016715772279400539454579223413600129584284207235379510866969646559003305439277889305766016690500180723221653456353873526809894598330963527610825237715575548442240468508142441035441143022895277007264899908620177726688925968387038218549348399742384121161238540788318355296732843424189137283826915453552126405175693066157269144056932658366948742267753817834376853862701467944976973113349936066736051424090225809845510235836940661421663647866102953101048678121645951981823967765027441132881423640295490177572521439207118063955518599519791980291151083691805264844332839758416526923717687750312248717707243865745923991689817513374141427676375451287942484549926907941683873257500418790038754846301268862828842502735526783776966530416403581527919854852753478154615937788005363681247968652858052933951316326090086402076678371183504084197879040031203545793594622669024702034158614258946742023917432957880194483822001056400392067530457538779485874728555394997194414233651605970983192922122076949610779907203325243810080867931715110693641927884872350083008814276650667298102249482773827209010901970680153887719753774301695994019744939902266288731937802732062708632189779367107476082534440089177715713546073441761779973694058788792858816914843112000227056982711625713806467454357923867380771270653146075238461862356244318261908181825581158943142332485525227183086635433170781063811641871214831932646601327237251465156874770205363727544786547349334983325805536482127020121316926775517693769003877328496287340728562020222329082646398867362923587466359173296487518699115462338920475675458464416235986639179362622243501462880818214888415702842590579643816587466465768677092886873700938220128171333489643510510591041314136047379719668697284618350140843911627991193361284981522549329318451732314270214588255924544675539797830955629524810911236821338932687461713746450148775919405529562763495758416250039550277646943690630717983771751827786886832487260077522638998531811995371126280379975009905894217840415371937964113291947458325461061715307648819584703365495785515739011913272391431370848767161269879094605066150480462327604984345467945976657052380535177039510874331389922524233853159277910039896041968780029541988398964281946173904482429477007780998999696257354878421352742916458552051025938985791129851570975818816824403411225762146060994534503051879626968335785090029217222930413598257378625158564475494434032868802520598990497346794005125336491823948016918710336809126483201056375811011004970779598933986909035719353561931003438857646636196280363901383771863215436558247173938307885258745352907007743208181958114848706006126522345994156501043337177514730566807231421405310258023269742557101858766803729725005211109418997079221766672569092071248779424803666733690167148343217279782609090898969652337170650226256587682996517788580726613476568643149724500699908854699970305392094699215008251513699223215886336511490991980456607369581581121714525440303775186598913497888674555565821196760073505188793792875467664704684582050006418892725275968379901448182284639821855006380056400568520698803259536489386301019793327932786468074174222654624203091166648924062316179290901368898064844174244634408952090506737856623774310026897578593738795705898882556726548227120955221120781476518250718459486084894517108307547879613779634124313568159763981375402369501723598021330041376354549087409965504767466549423543895640564618950310361719312144605477491254940906112518931346582782684714939002167465915394857385445677950460946758265807288535315100688665034934297565251152127705123577153986715404544412777775130871987461587326602167882369828998703536212482135984154435218097499852263102985817459236171997946953929192881911775590999287214502331338429542372562184315756657577894168633631276590685431866102775090656016504862901131487781254081583111946224713062046991595963208972416014212533248382266860071449777532936522890685365355407279759674476716308641737460507994615714778972298771332902402150162376915424869961993274203935827533172521575707027607314463155073549336949368925510261121613394425560381429631487261065778339097116041751268689053178859360809987533048591204212752322462829680017421913051045892488356903931217257389511782964885524885399924267974108340202196531305761382992893170782413777899915232234402503791747063533743540620694335049103050504980454553262612664920759955563988806897845330989695946684919417939434305407400692569813813645773088239229841812902119568533838492727403183927393577119432396173823006388110486515128552731486822254888096388168848070358697758761828389460031897441498496697410754944303366453213236016050783515629895583976075481408357509314359662329554011236899926177820599205614828344903376993423521476303201797656022695228957459529789811943469114356207620517736619007075384485555977534771793486834929432674406922597497017814619056534123426991392627898095325362214201245446214378135679045040973959674154872011389751254944197299664886034490960812794684872143068772598698990172319258394388695073057980473180479394852720671210523600019910289792628827999712350266632706980297888732696689830964314225572554726124023431974977306324889511886224283377413629302868122586684831099686952286043106446001593991163111791714277109201137316728745267904389275816060959909090131494812315189671898645611815992632966450665121407157572099480658970938934701790971978725963877495160908819483476760225894906684252818243112411487149259498480763897116032389715970359227266026658250133052355999324464850384267889531341600902659621399399165799966361255255892641902510771839560493546591105099854879255929683707589492109857812229661542108466434958424389904288846514327641940268888347592815376295643180199219243847092752595987857436763352233916858045066093750909529800318772134450175073231528363590148202748118391233204714308243363855162683588758614320803806961061451477488106946380006154530198301106221435752343834357998165612988961342702608460212343391003259948472481279699990570824212474652112684297634367634125362874182003859963230469727086597700880555842523149600791925349421318040644814691826411553801474443796307984505768578155178012168945028746873146285037246691980952326486589435696804602891997536424503382233259514283134134214627071190582672670323376287399299072639188703025440238584360187275727309906296420584946317507584284389636581907423935895516632148955861874213026276292534065755663539661543100239286757203201537930321444147706877859888094571486796498830602497589868685448639640611357788103976929473098467187249633181570660860310515245514311562472230244206877040838124600194364326273248904900143792984987238965083337904001112067043573550579844069382847322442487992567443736552027931385987404179842245342920792432263816936557251358601749903874076232297234755403259724665799502240624502194540407069615195773345874026342991194719263562630329968112346588293962546603181021776071888293820360178201887386501464689796865798772951141476110037639450517651934046003925912697850255944629111981250688758518389853544263020207200990888812049079873490372271621756800966316561486765906808377636244552983923334271500315515562985886773810866306662116715137406056083128149977415231524138847833817387779535988146833829925139890937251693494089658585415631977639633415682957758371084257137620031372253874109752692041168126278950823584770437398252231849873829845058419740834301071966521211045152262471063038098098681570812085716798378129730617704792918770856538521191368912170705344414395612679784565133672455106293781694654481383861062198766886894687225686689218125734394640424784793646212221925924894941678054224713176537348433473471693091144030155872147319538733492544867918556024130128867944657208923024706879951704145475381858840281204029145895151256383579079516082161936775808574231812729988166824993548495287499446392690288804203438483565337887783855398254904891745356179329935155281950576503471216976261731027163522803844056420878459107848166433692747964719575440412108140021018238312129542817164063245905173869680213790343078866196894484474367038858667615786871834158268112586522990883585918084666422836216052951432223578419214822809567490815176509231153179318762560407049736794184720373744101640138009439073749719088213948771007659747943076211078044895839511749831437319285617100640844333105404719713031513711648126812644137086887579843029130727462383629181498693715501864458573134707789105210214869635766843112756548311937035855258969296098845567153854695338387483090701581244618003344542584986385093654978102297410474546963249364714080260105335624752182993563287339948099720237949281048206838939991081756545414984268929502158942559522411490821800037058016105697401246469066335547967554736435359423481645167443574412022809376147520197467930125936925761197786839907407469449279105883446206565415533145168492000267664492726316997583186995436392452659734390744415747106455588271646948195202590971248221260349514065992549890894627758156276665399234671169923303590532278445154724330067722400260689814112816983089744851270266784501123264738566679973795788203786097899460388792763457885056237341145968725384888086828666394284854102117746011117017634220062905745169576270527093664372874929339886287610822891586166623830710501816736864306573158203688819759624010781259459762736489143456041883679889196501200772347228674238851815829234681737217449494080594975498083117674954808840517812865726302416999046563864644812064024981808237398664501155494721955708069767386443200306267075194023336818836573738396962369950561144171003548134982025737233977305460066912307287794000075315089707035995422720848757855794124296134205282491445442254631754723415854204767410997882815062280278521444705311326061951910567948888474228322289246114048835530529836968582162871601110881378434233310235290492817544237048856027145905860018539482709642727210120507682855294872578434167962287293992113573026682671844037791896591832828311928673447185206043851036836512973475605242470151494171228493884579080981667364399704338893783628966325248405574285168105798143394455536060990175291211452478313718534525746717053708863243380174081591768327145503317736288921739772543529246859262728454782699366726397825424196633821966265379369123279227468157375042343582949245543088321706776739799354575002029009554678357028560561563487888298341172740513137024549479823293716858354118059880697502702606241564386284845940004341550951827680887950892448624870769715961655362410933192012653939913782105778554716633815045672006922431185778069816420808984866934500220135694818166422316240106405171744208310452467230394360205583296952098692329984960754698073573493346160735292480739689846999322410121966421602575402246236374824305242329023280796607376804229760245707866057923430075382799576713929542589363086310137296642073203668169257545397487572318228430705733405442566143775519466815171981270137811788507127334586250599343903805351891606277661925885121834834140713945923787160752329240028624376284576208767251972924164985395715793069969277442324799365753617146775923830694119430306539630690596374429290539793903877544491039795823411598451262840595441457147251898823316283331864178547910106574288196902823876616928807414606897564739169304541776127136660125044684594377544367667683659242172105551376544074367154399415987945694617560319912605829570399461811526661944659509679164357938693813585387986695026778962829993623188074263136963253877177405999549456533148390277582851302064059770465012341040279807842162420507912801110691048522718002872838437875848279582781062861739150206493930284635661148133833911187194594241676969173930099045646883629059948794986384469615716698490982934951450858750028444063366803922469110578881832794299039640053354695758309769372710109917927984647586676440822731348029752364882698819734647879424660751128544105036917026495007484742869641368423402532552966327952910206389719791351365244648179918777229205975711092938708904930373160752434694910863144617572807397410556803666543473756719294090239055745237963980537766949180676813821145301828264901694197151338858355156535429369015797526488381305124005402772297478322048279218870523772727713388276914133444896929759489435903251060847885651459306998154503616742744171636467890055193885356929563354512718453818068523715850960277018241702588500630867626940422300993722372415575212663173941385660162357477666576439594967806758922789231084494037491023771041542706566513616329841520806464983281318539296383837507617398866659891617582407909103268709251095385843464822266483628978076244960598251549457010846398526516577580067493734009079288733363488421925564128725280206464773202423528005538063943823352727242033324019205526059715182229796222681643100009961993066136136748244443699229503975102886187621780235833620410047214380278092743460975810104918123971163935244495781898814256337680330878745771136225526429067687813119528537163009776545053403571006572894922539881277458428165573660673463280447860784679406772079164863357316644771652347794118929457531707493958918992909045513393505278551497166686761255609103130345543678443255165020068365896731139760902350556364394693301663530767203383303656897351827868412923273187885669249135039243878980650875280631722572663607876363188284495480651852035154460286380246529340068660253929433922859376287125840928258934827112723417308778404969948563282153767115017658652436533458991940557343971241980591979269939893373167303706318547028977665958035140738009687339187396926817162585734367128554712202900888580949587551809952498139489308811779125740030398602483980368313393045222314373085618132509157083296054857389995923099094286530703958779203159320988908894256739595804094191483644448837818212719598043130718192251772643015465614111496878797094708426170831377966323091705188543183692171205941019858851633956896094470482969696094129883848251617864398343382484983773418521268821332417616733453999731706887738811118958893657616198392935222101633854458138522702064667431215295323897215142743402352740529840064863960229152824049259813608084303945727201233480062315157910973391177541840192865313851853558770433894075472473028429643706508739682521468330713907058796005401142309139904816502520068592392231022926671845995777832249548132360671705628145783239819016999009229345354780068967930149310188057441257093105798740668082342461831044179889951710524136195043024333198510827826839109909496351651344627398995711670177516321016075212678515884294049581916209299094268218347248933555906933525295629033247476190921028809981046993391141107363260283998421767571517464711092326546242215562989824606962616551238832766968252725787399066060453508748108737339386487775865050746042135469260736842667374858859226582234899444626810174465156992267441636994600095886433025855529738189989680132457398971798043195043875683841139995547839383102681621736120963960796851344106990694536190222847351715905274623093977168585800729568398865523653458924935045982868186322954244711155351374545015692479653786562967656844127844090613892896662887872145336495420029125720287567354584754908411712645408507235565321522340596279570518791415716328969307232709905065915276660880499516430667358678118254362040326718807187157651918878313639454502052089009731578056627665079071760048243806795806537485624319288560672476754953968254759429865188329773657070840567427061996227376352405464151060783789993214195081709593791695253426361963889288721669834436483039996088323262997779713496530657337342650537484130611125569913037976746231552616494324208620147297423066523949072063885922914862886929309565301491860414491221985263174582763205876197680071021167951907321413960792488906214198581773033250967025037173536317908423298135313659514600465971727522388194075510652547366523961140745130270071891615058265817619795971440180685159286891031536301832223686010874103990362313345215128078232827893200316242498174842629095149588847875438757602638515016883087961431565008984451980787248512811388360114825062256702327704214830956691699854830701378633071153569274457253541944191395081957161043600653422410639623813006761726662337616302004850268908301210808156977701909538387237939544976293069138005148610475288343090695296864451722869730418595901795372571240528822802268481755218921106565640386226294872365194585823693512706269477168499801516137438500262964123207675014583124529094566792208153613026920801266794279020983976545121399396740051613762416889695658984649663536009228003455190987447569130045744334517972720354230849801261438500670007461984907850342682697898294347165641272445815475760851880752808418076711222186807060404285393256356238764011292557880356498098851711459523368857585831825827965126453086651281867700018809897674101850648650662451029785040171062324291758346652321251574277687146865174761750057541664288310434886366741225540534905772188997884826896078519169204076347782800258984077523123024673375018013786043016184907904467558762911145878162657265650137574515037446440800236328332754005574925230066536887124353236769642222861619156415881740335276359046549129476981364770564767101811936240893515121586885741037962861577285658716955763135042001352928167235726302810517888134615906215612805805431893385076127400299122729416420787346515380310282232055939059069985768699722288835664834970538843504856974840668700167388995676475515860972244265243007759594921478467629589981539889799619490620008382030930337109721889564394496004313442229852275824130981359245823008114751303610432321217633227921736525865373639849086488459437034636857457856131151352654513688628320895712915485572132580958985228765698926527864938867516592506813840760242257054576988158486793431923703296013616192095262924108698909242430159291550721782130381205002668005554774401337157167835789418544134752003546110600081227175929207597779759418188325126185072245297259522075492140876472908637791894475485787795416948549811811406372254232394742653259290636173923626050838211298820153312409302452550224123466224377317308357421578088339552563802449492184740626203987883470194918809999939533209323994821455655922042213736523572346502159513953516458047648003240607932980287336896924988475296076938301145824395946816139520171824711037487938124405672895023550271325745142930972445311292912716035341248183085773270249613482453180262249686912651766321165392196185306531071655952538198712587126047390199026401100015678423786085274857728205681313200662492967224936196681633347200806690069893149181132228001207872984876283231451815550161915899781631614876968751184416658732137186098962012838021133503624954163117580543388558728456485616790053091787637085985807454654866121337298938166747435428452167195505429009257877961112607949555567276120594526389297340863701858097747279693107042222545221627569704386168449814388335204713440662127343902770761417944286146771209833413124015666834871305549983973214359502662297434521243202545204851670195549142350921676038450599583310986766426782518201696020046229590319038987594436820354859017758392438105973767859571678843452073730370019709636816570871640638495025865621742588207637489628118478196164861547234436915165946351423461564069083997366218659463537818659044704819008067900170512530412604667728723486826250839362081719239370668068365720574427790076806916858278229777211266503399022589471000696162764873743626255750207100364295085197880900773972401296578801839261938844506641304594974688895675193327917399581156097537791567419786741559691155386856840208579474713109810855844534972080091918587034246142098249868699196126497796275417599012662498183874665451853809673621110191206692678010699846174474287816953530384719723043174100304977156903387699335504991369017923083574431179406079120577074685208488678347345700010772904152445032200774508027713782956780414905585436513621990255977227974395473395688515283614475109560230194341533972642710411987357774021833781573364258240045163386453933921053560813863671881020912464637566918394793400428168632027634211590325422582926513856210435316710794541195359876525565583404016834270200684248803553663966953208967763639084004578367881754807237782939271687327458910350315059309705779523242369152894764737737729475727144868311836335452786938528059311244594456788997484319766138981530054539053518181192387190311271723133893147440207953419951547060873178628640267020391535316754285166137518203446588315296758021727962125056269424188905290751961455087188591924691141337578113372944581745474336703814348461801557726597091100181210549438584190961295108069340869060126632099400104002767174162415511258438108529852875046521625171595647213672331752733942654601731336651700222260347009128870129041057330395042700112479174151320700649114876937670988536494598118735310563104427729370631053718959576935417256842296255357993746136559557916449073525198194301127080938715341034143185623178918164506430835809966970806677759082761308833205265460302817140421998323259254065430443232261322919710546640329693405836886676601360540882182916469107418527614530046436505426914219591895577339967416298065124783488867221108922314016988281839021426138769297048281470373624356409988260783318626106751259230085755448285075537220867865101096523303154470652575033481946879313583397492739352023285423519929150039127634942131506413110453906164040149599731441665324549716563539009278842251123372932088283130965396977342080231389125586670459296417079747239557259349634495122775347012492246165989338437043105712521840963140497640516342915807481769328670259332460230757501716993013602064514824517234038680183500510866250772915036185755811475800049089615843853840905182486624353637320032214535782400990231227069897581109859633689456181519904244270218221028549568454998718208479957248737810407011777544110657732658951566126758714531107813082932730354781876229985454904304815193960855130163777932037287532028578246270857501393161956970446183242759752067666720394204023576959408858861205898822163629390146786380194803542246917224540755100783335988067461451581498359452932403508877530434221531172474618852812523068621019047075100795173000881193730288524426640049562437892304408160568226067902761127584436628647558916171877059966837521642891432997644382849962127235940786450045528490001118687340766069826461683323095542916248477953713801069286456243348371068540123467701344914937492695146222410618236358547651416235458439949213733526926100253860300724195556158384423077748827788024388514939383916831299104931804102538331636978842420906737024501606434808693618107274523333125257460979487594366385916845137080855187729904216735182235563967680394647751199439457510688527021657780669298110621659052360443827768695733268629975941460704762304806951512181065717113256079505523003650645116401323344038627878484026931047765820684196468736936523186997501859520755748122894961466377896972545670871890464898440626565485433557071902485549351190456818224218928003959073308450285778200378620623825724974109486965308228049248760595176475054418860882408619570053334089351083325037265693388523075151494058161466879842569971105819927375879434658560134952888524542604076658536860173011637610426353167477102638127363194466957817278375419934986919226341110740434152066470392385969141736361040890206370031795205536419385532327880771602047977071507707292714080927579333378570066053976503013683622697790343786163726927393479593900760687317805215253937220874510025539281663107768184699631750366801164042730123872292416321317147607360660788795735063189180916485204978965501093544592450018068524286994017391834969196721438912529657166391972371392258309691721284855898198425710016297477368428972329546436090361264669901715327827588304015457162148862718104496319814729207495791430252337536418727607680633584282874000756558329153712304955883134500825733900872531024231539706460579962869957817593415627154214282562161399145071904154547443658747673728785157848078790232009640468186648400850793547370570430887652680582489903378742281734022761051848135787475540505301419998993680689486143992100035285801413562813756768451687111543653608632265152195361117125027180828634940846984243827175339155358066394891111684448981822565868085841990382591457145863922513506271931639622563095683608188210469921620310882860252638153150275633691295168637985970879610089391584274412976995054894450028820121150646021725832316926897080721506727535272950694851931578091589613164228094725211333163102280396902320820991796374779682063334781287266671748267569176593472132165447482286468564611041204819607048983590167292757592438932180572747314422212014731337008529542103036227982350492272963730437031554758532794914767704023435836625976285646067929317968412274199212971113442598869916750654365909965394534202592945436887554212201030196083478696641622503872969420499431496576482755771262337423008824398987019143686195803425875432339195475173818567831813281395617349449135710923559981082607099471238036805531231230621058234252426085739907060256692452684658065250545781049207829782438052385513361902879170569575972038516321751026249237696812059001738026816561563427562954171824435688228205507365459969214658285741376701884601421801941285962409107879483110034299832062543917457930614016904763127725767392839934101025565349406508574404647976312058717647626203196040194300684563567431951973681963247680863073845498719266689830566224520311022759860746884204118150985921274959811522996921070341738897500275329459355713090295076607666510506118569933395679623771230642561252978912103643978400301089038629215152024013828606874317089153337101265271092996401747574514968471245247838180277712518379188277465977890409506058865226965661636697572737096380114800186932893179500588309428215228811802040562952274000946177093506673843509193185100756689417763568043633679756610658470981671780309763426401169206351598174378083792307020942563530652690224597972872945343557922620268736628382862575619111704511391695365893061252241186147295660934485010476363348816487672388783246271893169142782844887896936974164436467003707254467899063191508461297410199497184333941912244368661981366051478242040808002208667966119407430490982269296603293207532060517835969422407999013599119274329788858675466491226473267300187874394315178116395081809668816663093731926019607465995272675649170451350465080953764561139789846281576936298052755026464547231710680865916972478828314999840336125133502049718240963601834449360144817635784043586367068347026361908779491730246435121668382755811269556937665587395963546282455268486554798776856319935651151428233472781785728138864804640163606000215721757021469287701963122616963457970601533212147303386672153256425232904680123157955425819364879005590942186425083396206545582799552886942746955718837486628325804682752144943313170813297850598379452067854076067481331051654020876581224778287786184519026744310308108603835127545009418658470416036079347967552305540983979333138212840597041284845215846636502799929922507027791868187955033045092385869387438040053336963653392352530080082089850137595047467942468238453256622869916867344277396109183034897798678070667406390141634767015008635868811353612029071771105401854140343538050402100074872875699950082999312440382483294581446524626651887786926951219904715020756085080652556370425302270275507199825783983213938783512706539413987834548544358011506070660228757716174518238676944905073612705922528251932988375164202935358932447300545466241448410694086502945647056729877969157355569304618307924848163954551235214088524355582018260383258252936044766765652886824362368111094283007917556468762396444746505639555634234395406140578964472753434812579185763957067238968007136978186409368408261132630123262220468828398133182546089501464417275264450572923131739356624814903570270105311686023128119050509310591436976821856651676595328495647750056529738582810520813420975874502082372293961983110435528655469430963048818118735993200344946159707056413585791375911330792769735315899716511663247398567391182318747917543907406603557231141978942056414639910526404881903873255437880860796819744962190962087492073242519107056895137302494597799147421849251197469757949979737149973325979721692945273830498799241918447094162866127169427853699564517842195263625730224419933114986029064841450730353006075528474935227911019704535607958438793772632392393824119636627506763849628796587414575070542426831126300112942282894342459524225776163531552919343982862228861376526217530978016739114134835038528644334781925559043200071613169716768168016875147422642406440393729984630568106758476308884459107317319087001361315604472678585710152352180074859138492635040714373220317792284556095262919714743041071073702798411556046616892424910197835132679110712792719058562469634063949320565448211767263950578481513978397782461261517082569636247151124677869977343895342521150745993078348890877801142807291588918997299445545083345213510144444005877041508818527108627692379101693520725045940097188888597678456722834438575479125927993449651243871261365680297033499908441161317471907510020447307783429821816293834527920075353242393074053765089688127585681680871168584558331182025148245378884289613605884072047189959093926150994873765794555290622571013622997753957816959690746748650289147115690646083613638415273442783501221320742601094654802990749576211864063051515210609042012780997949779651553695837419536511775693192874446390848721329339409888193014479876824363958077685410223871390604552222261811635536588511441635328270006985895960490766154171228640430465731478936183829959395945917309575169603883006207570436836171601676004856653221809763146005133718366267290468614812585883221449794228934707965579078544062786803194391314456549742650271321964921321145153660360944952933063486755793543935123346215073960792137455616819555371177643779146717055381600748351443448964771798006749420651124923207016327519903410894409050407259156472059089136575588938823338421052999151123140567685283403856736075477676740641763424814537238202563262226616970067333392626677613996330939227960618624401489306884662740029650582493428365806603239885650597289589941466426419541415876122074413846684424637925085453192047991040201518969053415627021082209589902266149907008402716715749735030116462680484753026248192699793933979129668700522248496579255713924569141218478063354925765663379651645729528722078917425000578548872291396058731297059509335466246065693169396365910882360214139782143526932006520961830082852415662341414983102207675217872695940442677542979873764961492450368416312791185473150260165330382277418067426737632815727594170310813487138244868054832183236672697126486711227798053327145412382352640383636722516952153213389132990473954802700527988054361228977726533066687678324114393787564387232241797245860567320572040010560949316370431420044497933629866603921194412604123015042010989989976706742805807835932284426390066715302291135834553870110445096325263180369948960465273959893167094912593364756287924888705400907315599598348180526576108071442668651564774906332649218350303509947836522655726987957322594422491566356460250095713726552799402833196579025545688408694205605094840636778709653574509929298692985096462012135232345142790680717334425441580644474046038995494318266593834883898062095835784363852283778974666612065054878170031450523107933052563921043973350309231065813743644771745917389937542762730539380671814429495357497640572371752394657837017916557402403381662280862067470152554719366418842187481691628371445179465396780078545805273667527183515029213766703257119539003065977581917050222495158366782052762567244756440362494770927235635255491835534467828247555244412784933612175379770252875893323783121396908513641355791233971927149183253565412293565626781258814257692764241021008477354150348514629795476854248201367167558226815323499000945360089879996455178050772629366557863185806620658251410382422015545218791869638379317097662441168982663514165351181388139280907616936806866356434345689946112009498016862793311079260636535401309383650961019747221064046995585455194546084611890062542953752667097166921404673033146596802658830166334892029447525907123544231987934669717031043986907729270802542392594433228563006838991321817213325184855765751698846032560005806297586491577127106605808024612518415109311057629865931533026243382167782250455533123285864031892403322384770589527973703788427636286035330831162728455249904859364460000954177055148811549477241470410172663839016849117236391572191905297159023420943242029782670654072936699331616213591544172520819770934112966655102494731395422480434123917380469131051874728559341535028551585745080003598294592927527403411704561815943350624603042150657173793745408941660183806918076771891447207072622126202854563784190211412341112412789618462262327969195457310436508526169862177954896532843001375361244274767464856174407133520038167409481917923991186449291883555032017928694907658045221945554538214904821819844086331122665894364182081807000385926916769366772026596256029623892477939408175242712873791063242224918850633890352035919369198465383582825932799966622664135760539069725605344792206024951116987553908196868514443416309041173127831366934345747533863019344451126199857752266391273488023516808366783519270627032733406027774008653327454840958402992250957551307615882047121679917022240671924295067811580656826834772276214528559606253707182061579649547711184219007799640692238456155851289936149532457468804776711188995826307615340999677837762699618226999035076333127919278817666260571758005421100291483854135410148395455224979356216768801362528428381413500758864960457144587875877710832782138686447556530606890668388979397909211639826673115657620089580662518701234415377046695200440343261235212586005211247123477099588361336998183193915311193012389545947165033163797165688651596490783128994162973202330306531143473844239201813678850754305318940138448027784241874389576108690773186467652647270577249721261428403893603450838731900844574724848509462771859550365611373720269986541475381488829939745681998694103313891711695987672308705192481436522170488089274785816339348932185912959010226725601213874905617520196236589698123909694578301474809484917573199681172475369784257910119278786049746106918844615471331874161629834835938575976328538692565749412673338174928752339748001294106559130328879288915730919472966375804041001399656651689672475929481659968847441321085611444330693063853278592133437381917102145291712532360667917343750544822733148359657610080936867249038540574850540842691699212209580394552153754142492053711345939369032207267529342932798486256398739226499390968825993443946662462337036531483006636627757559990482087593832399537657015872814578152172718659415753605246588062553565651097377588286936935544424262819234203913460940711839666936476487238636777520240969221677689827524049360846656757810719649535915506230292808532058975561936304521862551340119648228043052513253810338821953339889092158461353898228501165353872534028228388146218288264204974282888739004558203692037103117564337439561834060337204222070149964622825573130427079703034161580370267117475161643469791210151213248244413498704205666183393724282200638636105759062332130008210753229302285860208871908172447728225274560327523703480689779631270619591312934381861010154549548096047484462281096506835873512356126426925608849865437769842447433329058263435717221152640909470385612039128909142676361457143135454135945100441222327328693244817541903914123724841509649099235110998461898126746945435326460092534039614993824271390089103124167394272838867491238370344679259564482379336268605920884295703920548216078633760600228076551974315161887044494234484882311601424272481825790550188344415536951392379032612102080978234754060858502998813514917615789466051299501993662112427581626902456435975585449632712172327942566633591811297599908947783629514542056750953101509767027536752010874206963199284376699421970528695090979745800136239335425360422556630160689066378340964750177767684970700030077024086935707396026419600671519544924797988873749490020877801342539347060231634905223917954608550547535676544242073816153925222563516666790832710151047358083843968508714444293179898577008174866509936216688536618265097882800169085922292990794558151699418588075492638491383320803313756503102967712929652505038692363737621397518835492566390593503268342795518601656163508280815304449157737891283321924074958831769317588409805817565251076041107390250162126493649374779619566695996306970998389666106479513953609496746841948662916166611734821299335339171919905140314365645760509430453920862283898435631978877085016345070993111385209580133515220292476778154087536477679836584994477872096505008498404302752441896470939471674263374420380815633554425309681248282819335284087493405158649125774296997442470523487811298230254887227993056720421220511721763870001006365861453487861330993695716698752691223100636859546356059235070481701496119699544570439023139519620739545750556960561270786062145773787842186612236400420647424968989892752396406009738309690648127469890823972988661138970088093300329425750242942768897364428921971916526185204966529871286345157732894611038854243791931798818352922521014699418022998958257464069550814849151431094947630054210824200790735658441135488546481839365828055447152826857007396240133415455880319874293766768298751443764556536442943354530460723315411790326943527914330444971535584837598702393745258298995268054896504889214734147301807384884388260270637892501891706100438054360190227669436257405973766999299921532330735497833480419222599612866642267719886815805612117669951804111737236985085860217418313255455928866727602977330289191801081304568831263604232656959160080286960478314612547781431042467801619281734457727891313460570337528792990778909641624564688559873401434236716112627546233735334587074262669348715406662223820538331868656385021755251749286136905374895077433497681073545107094863901521112535397286210504015839523566698537740526873782190614462724374293805492215031140998349845263537619319466819376359069178274038192324920795990382944990502926643039162166327577612916567274317224043722326562409022101810989463351179395899980552175592148746080493523155121875372348122796998738841277020848662302013425785618186066477050933684098045537375875565449900777364849071183237271051218892937661012386882888797380131173026870340060682084817900743811444988919604574751442368832263160523242639251284599551082109392400205213440975602125740744655175707504821706714079456465589662138146355887039532401473505213023343014643378698537828928925882094019487961981665793805398160895137248962089676781713544096473171560105880109967388599266723631214926494588181112270444152889597023708594349543861640050136772651251156904146035997522581303824945951053216603114884863261329190493494692313411270923257385081689854282205081076182382280743614146182086621905471368725209240224905356391737430009102513176169927925959348891223164279897860239470986433753783344419216657056115122848917388705957785292868339394816594912249922780835131419010691481902562161874207279767488301145512319360802478221029344065077927092654765051804780472010774066577119186748369013946557925956931271904147798974839814638678351236321845654588189298574498094048989036683427861383217571551689256642602547372586139688740711461925646903540350391127636621807791697439763106196304271590220017040455657451044724765972854207053946373379368585561251614553304809404869075188030567374201270199474463575798599866741418198329201988988579602307457270023908853699212501135898421915672228910226812165284890761203508262342262829255931130650850691081106691236170588246355301369293738080803758353507873157007415790971365639867891488294441331672386006840359587813445977522786831469163767312727043669457363765699581294902724830963321305682730389204297778692112661265290936733172487144775779963176722549644524801041828100834202025620004167145213397164156382370605250018627894064243554126209239230066728908835923965872388302682544921656809090906006505595300250669806853843136816500098827688984505107306351093789879738375178298014822507105823979978496290958426608024370153928927903169716476135649615876722193916581494717159771892154974489855905283800801585630909315677282194747118587561230902089750520520682831944342602381925140430094431008277693945026081403178539798375113388765255651602538424123494301169210283185522829738407222057536551556499900812725104763068884293829498632536502680319893555612864774028057836671184679461975909163978039187447111765274644915363208915228967195476835618968095032297662156062464976143090270352080107420201108661563364186263057853308276637838309638046269896594535279105938805455735885779961320393217341172993545974340369732671604373443076641024828295153967544561575864287896270968155455294707400970409607414599460366312998518003735330309099793647413229651569163083920397634701409726387734121603662053333458852052292522842861558931183875397174536064240331191374659332273510467769665831342517336610088976629397332654847161157927857854349051524534482071892315229943979675299087475331988961725672510348454534593552474447622868365002885568419859977641848825811113217653575203704032589381775780232793668221097312872478914999966144975850764416520121882699546108531350869399104639119048452570102003887439092084818466735658805925685026006270319458943567236657111962208223138152524407116451259654278978891788459155358649298662876250994330179733104452167438222864888522334269174893181348493162951986228718114550011939485106501773815319270276390477780373268839748010204577554081741778050661405855461824414592436629775502674854050393641803135011472953210919873533160495429540782356181944643474226780220731951286884647534586504496557056848488608146024910272487030763309605828141907704882905955094575036397008045048136813471030009828173020902686824751583465408735934564001960064453066767036409252691082077213486678242082486791627189292908025497801801350467416337907608804497426937971543901237303554390976936868209336596148138368083620973660716070409589892018182775458740336271979202845927700903869510670972557713489472595037544656971128500814773114810838138005440849421292734468931994499174597252503651847583494581752403000242423485003282421877870706095289330363790280821596156884586030649074019363681001934643174118064345163368692121296971002088813975369395053980444810249574394547894693849806047891912031419409085826699071866049969276218629105280631330313081016779537218797064281560496382662918072284176383664771325030615590303204798511967706725241607734974056805391922082235039990006356287681120527922640434146307670808943593081146055699823339084834437072639800999211584867428301147830661212546123483359984110411908136959410172213183382953628359256816371000471728698550459738734974573226664118184579350905396420959034454340144627814731948458500867474801776221340304676093629476210516930607280880110212168711924237511519182435533188176841798313800800075347987629785036483697035195372686621803864227123046059870598522634559315210108383714792841773235955722318702072515296939919437399514776392232127568644187923673159257715178228087976104541629270261231196209242614049987352215799857310569894244115239853633604389922504288398026431539532465730133320476203867065756660216040775184783046124601792014577910627411083957549933950665290668035659952296677883349665931110767344615389847832239490231725578066525010682700835507436250149153346534135601109110913760568648527383048149479924804582906403179458921858087954143991050865413510619311834052838989421708676767958844065168139169262539276430008566013476442145932315776496762420706160074837796352438919817553164677178020019436982610579945531685440162651644348351014909441882999424096731541941928236635757445971883251509819060453786795198058778616994171523922622133315598098572301013273636064880807837359613350241924163366414259250351713904362624348791696086086186610616327355292552996940677332047540872620495946753923289469142985680968200234768432563521923377776160343874043380854228193968997665858671170559704641061410634401058563239545147753179961475319059141078855907277370598818250489561157180721611051444596655905399197598693784221009296564851830431268544628290492205686094576931466096337077057853549775023047226950474725544959059465058181778538626964841402137873060737884506767027255936967088089903293625136727870108813995339790258775186728786300286558332961449183223180082182972301261754641783899908190478877940558828138213305653460843926001754495488147961155127654888468233636558376701228759879236498439250246702381928521733480675282502296455816059580123352251202187030846000073076030473585060868064211133610452936856853616744421980865857713412377016581473288626344461107103511252850868618179728861804749115923207931146387914444959710992009971603341430984167419814450329500485956151505075997126213207610108157150555614687877192577812917614556196965152508223353784552820162630721794663695563859323511605681271524653661117621916554361430785953247225742047623586774645572692144324933645170768952651861277296664185887447640575356504369905653154227275266028355146245165037651931468545557532328867682724808063683053007135603144482903050832612025758516278804999193393693686070092100779193227042563103134567843393997950557096326141236407744767632152487503438378342084251336684505149655405058829051031685451402228690626139156788412659969538352493972010193293873228931571766819003286732369952400469335364116769514699418294195751806171174909206808451584509542763539053076855225251794746914342933989508643558983600244937203701170181998819933172550011881634178496173741136131116316097577816186219363738845223301017770619911052817243250673497697119739676791387765298271649652499621203882772978933445174192739384550690168661308759047858041414840746745700309045381167923818046390259247535063144673472000046918603672817003372953988815121886205085944513890955118932483280092746582924190961311138085357718670034432331168099762053811336169782648945179978063351244191994481621566955026902291604648259136545700849256922701914079148851740967026354408848116972036931332634812234893067234647464778204898817154618407778120286177543047120342577178242450474493356138686820606410740486916462746981815244639069069114505891546022117237125012204919522089525477625146579749431706229013307254006106155689346549845127908676895288943148519635496391775311715254478290870714215386199991730547854505015774222175663808680874909101796671839474886542204587995191350502517364079834942235648359950772008048993581436812803283714341295441466623998152621111630517235337352477709312906661379658131969457878823990396825960944461957910875283995121424452232670905050704631441606890582672628867066848469531251740398218095611308853309872751222695704442709510297041045885979894712648213418779195527517516706459227341181247362652093397131227060050363268462195768726355883245586330980448250587787262650605031502830090702471802385620320459423170849694861206142477488846351480710098613282585572631502851851931711956115516893117865105144318082244964444293758156756455440311283239779195238838117710441508600737139705857788090217085134203081422901677496819076681732122169314872116913492197163768080670976890547553366732006329947281494506821973160890407777597272659570539289280371864203250261539878391607152132661017958973063794806390999351917518894579492770097681485182564834035236005462193227898356934798275258306136636723533627038867363790402129841955618967386864738814974620525535138643438822654578543896517818358648066872038095326567788226433733251013346230747598384758275484085281959836010689221055746564245575344561965065949512272602946933526488604017917977487263298714790938529689876642920209005470732037768122985733014900687855645068127117726098770487094192925851663773585968162861873622474934719885918169800984551809226854065171572892120664178145256279672241409429847114262477684481523394144607707778993767688594456444627477149097464564660948429640990939982527847955267158059540385224652720937359275574229484085625823062048906305425201728382023540443254644860697140034823926310079356498087947932420306434020185395491304283442310557578489236884121432060797090937789766857718788920547214869418511634648778537281621867663642285401943633481543047700625997966014986670806758069871192956806761401024458945621301553928617290612219832188264394127588424116726828915348570147403781112700512617302906675599764307667852623144921102156421512605161782888322106071913943896902113477719892027245022000550400661276607372281945453864543830111710716618098578692931558747881824483807709530868296637170482682892641130751054365174506156934980212162135374827947641945714916183235769868835996788129178952437439725743334980800824310665285656157721006926863581283905279396011143158964651228279226453541825092291576204771808006423868601824593979211155100296339081190492076338490823992420917196780568413597984170690937256879595353080576211519499922070561322847383473178733030216903632611419798014015504085258657786815020699090098353474176202312945621453852912793795168110774757635752435179557404133226157884936674823146650313572508116415966957808928930638403711561791448864668415209631481417679477126796730500554619807084761787223384617619117099283493562319290129081282876415579123289034513254660893795897627863801013349568559277821252024585514497390987234949587182517322705807966077496623241273293142069985400343540120637274725566119475653188712505590839585909381591536540283991307154594121970435670531667495016628245960434310412344640192925339105583308643305563929234753655297222913166474101951030020945750639337530993608111369752332192952418650760473311813257568462604852823782459505425844664889676167376590878661247828101380244671830013499370900469333953441143337159640189914832565410794082712237628220153415586421568124692171714048529175820170854976585428227912422705232635624876452722816434508340324735226814939715170810702035946932952255729328743954142742911032499090125728162399922667506206170608555842178108132939479769840623655280324995630044212258411624079499198195644245409956203949904368880213019439346995624465216446831389949503763975021149565715428488110706315282416516683668901427481043309459150264656413746396282560627587015597049082969907791758470988353569103936638336121123998869657198306674148841785421221891279863602948929071926172506962867374785330144221659686148834865374803824132065306057913771289417576738383218847810157389407074425134196667817598804904270730227338600894424841898618238957367877946430765811914203661080883825686368776678954620206167420229075682843945296190747957544705052412112030408013821175797931689141448513642517422706077074490028229195500743504141996936023082160486427090065529472880025033534167229652541127548884674801716132286292460848806380711177898466949679221264384586034417384216842417343302759877875543641241191050897999875473421808678932861791914282588952561315345714914917854711153275596519871202383546805816970737535199973889058018413826764194211576152275543295527377206819813046006241231213122705211625845291028909505269912211422294631838045961327819403449653770778598160373183782114010827880902819480962296561864659865499211527464886500550766065570712571019205317337252565434843536336558591025922065060052916865826538315539055500332432354448569514795259625700531035369122495387359706857183524097523507399408931951221824447938965328749769726248203563612863840193320199904718618357303933256912272167056437770693283349873829704820959185714122102749001038249706783898307584172256543605140562334797576167176330210999601742036541565473623398770127355603693511839184243515381580290616081991319651680860548584217078558641256823748586478325450406316462113424272783679196918929410527259179405345366748252739657183969888136312058764697173688653574100780913834636390689261539966286336896680322002544922426713505754172912498078333072087432484127080869117446898847102844455301070281407237644597566473229023628629975891387619576895260732449331573066878289348242933867317066204846286263836152069238510890854968319620069795637764537912648936259730241591714240060911303384947491048454369781252952868715984710274369146543256291697591050251187322876118921575851946671944123548597241473696155380101328901623762807490738022549723608858637251481916540316913387166233482961256066962120917059599034140516983568579358650414988348271890883247919349906795905706196638500982353659977470256285730923036614807790915024859758708485935808298206454085658970228409369585226348770066438727109253172764993275237348731053986863013213275324683482023017507066757026311326437271920148712114004031953891750135793048379333552358827062885142725123280027709138340693011797337583650355758324669423235040341547137457889328616188336731408978227129893153740086794336214823879823478191525596815738435039368746485099527671186651885447114600981689982659142263215044852168685187581466449510974454031630414193579652016845681510244156824646721015759061510904048994610894246522815863148901452159439688059240741732913175914246536023030292257318964217699182787610940811908745023218959971588125066271280921769986503943103598628559264445979718345219814213289130008696769902193486990893134693464853290568693979919740872451845334477760122820874150185656445821983629698271189901116092495295230880262755268513195399415415984462070399156675151405631520095963026563173451881116570820515039858381309952782494621143265094639144331043774996896630371190612866372876134460006445764100725161161482060283861338441176823811381294529465439694984499332129994904229946371053358767180470016504239663788889033259679312211895793963202989947959265298268224070248436538271896511743358263415914586133126077578340774818350164035817289406598699869209558529325558549396575498174324002211600253520249519564931897027267809442846380001386235765851237187378435746119902254090097879202295335278356303848695326809634132145046993377205749691191075220992261597319687086994259950381581913030006576334832645317867931036661879789564988457241242013332011108004144791901727516636369866796054368532534024122862744623898233768153034206443613032319050993127964989992752201693197240159384196603867753752189853978289307702803673805384940098828070963841002142965767604206894293538505739680273206434254694270437493156237800472435058890057182822626587374843402744931972146651960720346944496300819600653042795052381299590317303976938646877379375987973397788901297865270598771688383885761349093669628936180712623889277426933818901044121096849633367929167767677332811241727105724481310065609405755683505849667508228769570839768763105247834585906814814923854204298054908596743529391506680892104994973374554244223903739885357276149228923693364702415648627162611776906826913504199111806594246818217630693094811416699961238602147769173070919287627145058058914749416521002320489078508048531603576602241283212932215331752699432790326673272632121935436478284901617336212588564493239480123325337772898989336171248861648093065994905923400339161426858437928154215562324824667296570427873878460389843929236045896148423356226470651539538111319446432203462936759597575847011968260921638946418356675440472332211843966908464525467029257851980946217030478286801812406705043505854453157072380602168835200286233170816451952755901422398746016029452703161554778976046848841063569735905501461509853378966445069573564925881709817787311532079622325121207535141056054073037144950225507361807988524197707107105882650760052250841215211810232281336531973372614165663419059799153696428892224206615131018710593489186317023418016997665884399536262305010780989748494395455802671041981521535352853650803171088301073213649915514685391016191015442323067828877817021951295489239986433549538294615161826858143741005234095797793477399108235339607979791286241069934567746881445452982961515315479700563383265442195464221048568768221103119047762683525687049002066389640547601294460563098315378703332592722320845868534551829650204091210334503083856374632484060567039640674560036567174206118581813172487877946439328194860136130801295945184566597981488167632198701835857756849286262115702590886878231410976328897997425020259145767786369501287953728186020225092777036909896089759410240796628726997463718368323011107179218680176084583188605027712849009103830175896800906757771033722102654874730531811643541541460385261440919275473924077850033777775996581720800847159919578242211249526558876821611587284959167376068347504869950704157482261260007516303903217618303526344487615772348081494489896382117520760915074720308459893111721610633627796715952144991039446634547123468713419215123753311480403513697400239859093574553578285444950283490016175905963997328557189664209230816607265263513442565390680192603116209765699003112518516507056802817307041900687278883656040410083945490133481259879052294070144980125924128242180645964310561716986518688656032594056541926659289489934598233969895238637287666636969307858923545675891615203860754781934819190583306022306445300441800753436024455022566370173432061849765855563185542214318724958189890817320615466794376286774738822358147461992334465567679332976953698079436569504761724639819942880108131464345749455888117457807562787882694760656807014057385782538826325158478495896921017275224608742066712092653479722518428266000003810417337729669769069761946931661305626348834647905176281776196052951818296250306805536000511358902830633548495900255865376076878498383424489564474272038943457111885885059814344808762584164045946172165948914509824742941641595546889894676417471898207595001214816893831365623098009779212561080362940225399120698823728067371525668017520518361500386353759208515231638312270201485099556106343736884011347987061277231719711691582523097493643584987095007054220749174044264651768323591570348500332293499241686995101944306934922774612194851093210533742296926532991484179209511874328133648118724426678054775476568852049229431583617613973336159716524213420268391782536049525241382371169311641125258966992429032376504069934991069086427707387603497749256600124299391871773699079200508246702237305525012446667336251799382871573269368467357375527997675247681337331712052095168480138355365535228162681100035488439897938977113642797801281979171558033314730309947308200069992079969756709790461266790042219059012100859691869954746483294771923013262287344457440009581036406827878087951755453357049479390161842445887494593574342084190687347142488132516945637199587530318702788517658624144720567241840154420433680872068592847714130024890849452416177022419019177449527754922195361621146688304538140428666830229032567978764931611896079102519787335014681920457932745797134670077896695345772882383459876849961762112732147647603494681397250267439778122122689141246520428218290470061857277459716592054496445936780330467033658775117513262187363427647573040377610325319714078995442014088122655471226858030382542151179286153393994375461824788729073690570597624819248691563432008715931811220282282602882001826990982289761353651590396184268304662707368754580251549140850585458623865523170145315690102444006955300492207080520434997420733544607705779775570586610607383998665129555907883219265665128882192181999294145118269159310349211155047396630634441360355930159935356444262205217871902704171812192123447947051216322340092835392608993356664080614906113799049288361833409133704306863011162550907850493577879372037173753445120391854630504469312906853387801221552203313032614881581869281232369588587879254053211839172302847006173117299950599304314956410014435399535728582439939093209974739940580822302927709730813052200841631622425610859770180538763874758814497759752345042548466934739097882268258322315243144139993460658342649093648883416801781940977636845400448968789140772574947818801463804726135330511435774131891203828847657015432970442633267603668837718990360112369980919990036635379481041084773556635923149550616050258976046450666095871194195607385508323963268650169276818984605359168682578747415022034539070598178471519129297105691226297100829775291314761536408704315310691054470533959209225209700383787266791208899275567759562745070469144390157454680228446182702605681512174011860327295126445354990915012578507641186786430013663458723739530744659134947767517654657215487107017327069453922268152936153333085710979124134534369691306668841386875895182982919723313291306798120736197222409975947442975583605390425689975174819237449624147472923136104620069650970926366459564687703276005130416079185723088120879288038690245547754534212390721509256703624536689924199999338240390387607687399275722937857378625347128487315931057801791274951510213951329581635262759404411616193400882971011563578784362748825766981047446578667839341490722128127557787628860485065527943369427956137528339356332512967196975130332641185352683740698796385676305891205572579845760859318408552324665682080884524214193159025187494050566617709147056043916050207926216702786109684378503756651293382491672234233081726965166791583127211409637874368330219616438146655550075241922617380418075653972707840882156949565621927960477628060348826354431489467396722308724287948197390896247210782455539747784164321903199520808075037737159070341738987843275861839450950402665705717004912031042970013816103924070649889716411090213499437532206846141081647649875264094276335413093946303541516144147837315562430708889928297003548465459121746494633677377879671182797147837964378143191820026737386082393912273104361771065024500174108799836922312869204270063692278691272515604712826995428419655999511594643466571628520439479920663315425697381187934824287564253785248471432825644916558725903672480664880987323982457655777177279149833564430486264898354207141005647783116369042629062368531608686941398868770289850871615043824503688760673121955913109866897790621648858128565175843395190595610544429981453258925567074875420035424346602736743478403237107292603342436424855107055673334669648880080089316322597586931584736069910357613227648503513582101356187862702960592175137861135559446594921626575087125811533446802287698572550940302556334202926886850437194429866830583704784921999323650548816866640300379254456551753648513527270792363441657001579434827668718391931178456521724869595565141608625342374923740067844995595655372555161507404133598751115822848032522152449699880665866355401540679046229416189843176983635335979842908570783885880948230261910189393177940753797706480242100006148383097962139523908098317236832702590318891470657478405206001236503172829375146794209827349282488343485466487738444918768311997077993383617846220325942003253460614074158245259243112532176334966441049812367120900402535284555156060748452642550036341059598622948557063071616834006984633706506961190297440913066101404849433045442378522499712355450762636330977458851936545113178385190815634066912258757672134035493645140224143299696177983669260036951486230621405550875452946485438908076616886955751972690571454436176570520054602271381748224481574939822893194111630063951519673884703940735718099004751782743068257003472060352316959460997611319224028422060525738748497835700835366149616789127094776345453665693771701411573950921749385900592799840130306510031827827921283681499153393069079895195471128071574013279094207609264698077343992581884784892207097461574878446780346302160662118920547789744333348928943383000844608575314815951831718689088900725230304719002351252541982571018898894533901497571548922803451151825390106345918937313750264225037836182750703040921966267077902395016049353790487791531578504416706551471580266057421536109003518996383904159856883303003233729739507651792781231252183256824783945590760586322982319513776435858487142517247644584324138597145453844244770948391020865893258935983484660098417119559077020923559880758912864967962760676816545842518352060540306769918096044270200411914171606039771983353425421511308782075064376564508503602001027258557403416819611602266274244645538089824291268032640716534058596546603850907009829123393703996237361256895063173190344888089014003929754208208060138901179958361220967805340073964722966241686149646379020697968317253461484184990049714850084168304272112067953581238106415997303824702043548268541674609442747893117817088286697136752963575120480535687466994203227964611705646588515596298895931221731760647040497511936428587146589528398402445003596731898408138568951628509268805558802585651875468870008330644178370590267932218172282772220985719226944020713401564536475538258373195673538664229035766863346059232210240656195977823175550138642139657578638747692946857355221054607517394837685360769915719480298602017510229595099925229427033549093265271216388461327624938088928047416648336871621775561038892376000424178406486111867408474784580661826393315439865983291753504262543345348662641222566305674312491179265762131138062743935640226170312597375612249549880395854534687165098411718075003139261167048768068484017983315491463978616232436986004461925735372677652332136949480430639307491040675918420300086327783493412022075990681315727299707005166344463127129271027592276960009714927222913676335917361487079710839006950359141565443187805109698703312440086913684203286443185325894331545038935578435310236962022951032921773603797279639407182386584829339410220562630082883101257621175392587039210417047396807146869024250978464631857545666424350305452867332426064551963525448003848211852304853546008347110732938617381660903581524301891419757362708190786979417573102766696357447149558291071279661205093733935864547134520705037002415661794857994196073032116854892001834431434659575441246270649540168773634247245047128281340252210740235132338333928388536239597912356508011851939805669400303354142791956765432513120636086889323172300928402995416766641730524944392900100150179503480496656562606392826415882122612690330960343882576921321258767698006199134081942844611370710475042383241804883149490018960008047259680708076444001772738295687300864490535141127764847194400140840992837136592988581990102436076268392361880948141425305013636649606335220386014725649213742262640107583520255863386297754654437202228212294185719334665334374544295146622295038514160390691738645320075929280746693311283372497762946682073479002788931523348712637996598766244516117827061255763507182201521026817818931632610145541246474813831040873912610351216310808877424559626613080187740903756860762736531148403328402982231990458808917980850205381526805697656465499832427117460568037260852431467229867868853543842345172040141677075943855959897354230235941201849094081640049878071926230440085017993233812163881548092366525039017898449636880244347235679307700240547821851771679912106127272201457955871938285073140950346407208573291399226411565134601955863394686292626937771303717559470114712839294466975488148836177551904553645800876457809392852026592881457659205871061247068206472033162727080683185374135314635823061808747875596927248727186298902355138996983251664437828325717713242163100988705086873138967255967496663421250003115867254169820703734942578683280172949552454877245494031200398755159449676667120331323899555673706807105789419914433871532499443761468739638229780835612986377781837491630784324395391767900420287190670517651286769034940040593108807657946530852759296543555527312285118341541698983666108058858243446037691087405474533782584723933181647383524397051779913522596200745112678949596260194546937864841686073590858972949502778785742791246680165941285257941975977512249988055827534094656200420984949422649543959277549875269684980358934624145057695406357796099057684139442561053350961211486387459626401057789629878870267648726201472288109340401506920225651132090696149159040887669865085982696454239211147498220296455128259334384320313678062008050379096753022687068029765349899675924855910991772027458630807447222617039305437965390728010569469450841584370181992094900992947116500907377149845374236327345153715187018250947301233640076815017650035775125604278343265910780880344355834476827542068563266900405607933240347990524262833342141214434944085339780037237023081917821757422612206014542256415509957940288862292084789299207240408214376004517158521018681835879527186876722046238230273218211279135742707835860106873518157511001848085318451308618912896923635495666440778758696994741246680027973250095840661893578590727625918480253202978060760566378571240145367803658786922336218336878310651956586266181916541779367300693950778119152996488759579421577112955675608172718387610568674074115172728051222538623750613384018936463819702867485372463187219627199040278425536233290801516929459466398779491962121066702860276171239889276782785691977346602836412191915522334463069317468835202859043915097896533989102268508363125303209165346123727759252030728986893011793041265811850420332988605157120240863696096038332187451077499558198538233508292884972378632887024503157949139285923619353864650626305082263339380838128005979472567493827066363998364341416913646648217087755732197425879379190958528656520660653456814296662851480904295025205555780073913500281691336389190849577928899969128404797539978576692814888062532010838712041290800120504749140294144868912509216006771472883652348621237874509999453380481598531933139377272031703813369230017415711875448461160132042523790544441846464115252114547091194254962545598099999467702529410074618536291474113935469203235192906162494088785176924433869794551599560432810130285954163675596049437487187654031887205985371444249528667492211333324486336177269016038899789630565925021907052218510747935500695117988713471754680649197228529721213940532294379802169767584519416608319246091066618658585186518151784247960131631647079023773840325296822289881000699393032568501425607551568209293494665617574473886402342042524832378327187912417445218058163278184373621135949045945277167172885393088648993886640042019259360419759449268493806956176479153070354212300056146136321146953239900350329023377894845048268982980469639927471064868706771657280839395568582757964052279373927503801173338047322748754474284620900880995977308957177636704617515054960292452813603119532409567098996259718215219456199967179721651164183892090247082697752821347209676875842666831451144412103175991880295774340827169767755817287465581090320192288624662417453593900621719004006220664966013708280016034951193094053145740856555327322070624677134545818065624541565558975326037226300641563208326790465873931015534059734512160369908917202663663489111839996582577913449150344119154501972887177948610183678708345075841562006842038473334664288968321964613243817402520808624772948340806163515143309103645848544751608498785849827267455291252006533909219654959602607079920082775350158073168515390882775361859284749076497419252342738433060744704414964739754911480518390244944934287486611664464467158432560036299759326999744237531785481734096881018840889212130679692681727335944108395796613786518789233446168192736123726178141377140563601107996715482386503506713274657602229894375859677184308577580767774731009498666550449076455473219511635198616616860894126730584856053232350806773437467442044968420728921764378416986014337495474920538020482053106256912692548564087439501454674279465654240311348262902847771211408066844169026996381857253791594872233682605365160481112440460731929352563337399332885819893126222291921466888509941310005935423284097550691096474724379774516023433634770347158649929573285874038141862346604283138251696455887619534106290756808665318741995194268548720576446720753905131915044852001183890559053915931046094547094666533635417987068664056158191546825694596846726351013323488378313684301888049953596022550367202583087605928225898530927338496425687630724990270160389149948919677508501770412255633072011766370647060026001360050593000824714510203740718089832537255997819546066494865736293814523593049056411372219568017926752437284001163236938259628116997519350124296728406621160221049047318272600588839095193417835410306617044800787658204319331235753508631754365405661609041761317776835537894979075224368165431101007058660313976292230376241682729982899329506509043686116069842099779391110213104181059785403937996391928922510873550959004233143025558142495427672529070387880804482442655180647593604156509767844605471910537114386120323691475957206133474343146455059664954586496342559009041568012835742191929630246957959117016896176898339003186811300638210080910369916029994535849280503632050718336968835025470968020734664236385136791854141357304326493685169676387881580237783880425554513070863234998173577060017394154635044112076498163910096537150096179201916435352304282068170626440897397596396958884339434190968060112947441278700452420769553364667242386649073857038438134486354713210558675811093648272478379992023435208051593366302919929832305064254706784528612725258719712768036144261054070225921133188345648682740048510200180525578880265913475796329749587846541753925051888181192958462588784085411192636325782716863810037067999677368660361052100926476197012416873107546462880218376886748058804954823553080756770669515835597565928409086851750668161917227560957401204460100571229280287223985980523620132398361061430322753978925918696513194896270897504035911235432551745198566137612700583769495143533550638018967949192037402137046131090773534966841210373491351648052403205802694081980361926728867061005543140466856152418830835600698314009893497012114765304422909463516031422411818552831999639484332526951941795108168038271495550358941894648091452547481406271914236900008359644577645011527305586992146550261157299166547651585366846662812864239960015023250978157066529578628561857515214073012486166929621405627376010207568951896080315406237713893261943656007504158757400162106231010896924036510678384069695893505525365182835262713087108908550955409508887248104111306029471347002296085876654137471613006107877852263589912793481481419333235870139469472542858428676156510648264405228715550249640043168424484088065488634080161888319770384427293156410078522320371962788065915379207867571503976275341847765790578674303871415105952788474828550160175908594944359320040819659579635673938801609650430615697116822475636050930630648261123131430479544855099833696643718394139698166713778557877614006242329092101857606588958873566600193411282139556096908539898502494348454732456712764531210812841673683209468024666461814005838535287724584739549037568819269984918676898598293582604670560697208457672002153206302761704016765646361750185998064265317474898690427378088573213286772990725941943497912098305589934420608571268341198747321434652614412014173167824093505312953557025700067535306587668951244688686707710964970745404700372026109503364372962521636943384290606942050794594999415985263881239450170700428523478635246729874358628376518793927952726774750129174980026447520474144832401717953729262742646274170651770491488279338972348330401304216146793088282309292770119988162290567325330138655999756206493225967304435586361070330960536242769901559570789762288539587759585723655808101772657100645055546871396550506231926684045561774877804989249587337893604817566511443341304600749879190942786376358668788650149617286115126749570829679907648846290126372206387560243182291398183968971380063032483106088635606795673886034105267354636207801497510031374654462164309441681333760694775752027035743061303344247135795199235866045096969284514360852354176478228481966006694799064085315735853946488711727846830228038014072692171371152789235364660500473608180674196727836785409323404788772902625453286420263045977311527738596767537324058180523466663118575003056842006328024367237671526761083750457676704752169201770512342475252234428973079995198722613459415621087821337797907355791823602944745153127463605279174515248397507345123020852604985524145520656433317637052155287367377773511815711365611961232931048375651517199850824029291709368809838263969610158056929762422166732477496556942152997839324355075898821991573296393905436895908119078008105265964335182994009848170770488127436879467968297074505520887742513225242494561920764765665234586218391868560123371976309410731223596933625552539711913313696348713999509885485612589200125452650526731942986195878012084873540904231873875727797146842489429207189844503769980635982765249261766358264308909216784776298161327510344655848206355943804585723432285972346143360403130657264163920050436576689686211747630166307456443016894358185389178298641559329967618522602614847855102808980808334255212229893394822244070516017541147632897286079370450304213086710483583967136773901775353808180243218120405922594327397664235238795439367551789487884479564995969053585581575812034922865779678770838518764947802126879602970114337297052589141430263274638379233220396202816321924824534546189420333389333774302465136720736420338094264745037266536389983729958722482993246015345926208693646848991047824808220029729749780245807642881790896019579505874657285682815197747706300122621396151492815642928019045403140871769992371436565223223805137473193378655207253849456916899057227006500719809169025824368159993010390419151530231749470216554022075467266734604997172070276535907485267415007595452312449946632719668182629899353585133784728897181792368282713872853676207514521919579959995185472033799658864361212701507879211322783363131084360231566649297250226382679917696825544495453813770252496384693612946249089994109697071256956467745230036983208794649745642186177406307958033137568800864446471726341106206336994775255537401332568760096581759584853815708239733945813277855126335261246466019803492559938781039472493943876325129020797088312645536137069126966594682984208855995658218259519708765440081382347042857806422651892208142382371052277150297343679319053054047326985721419782952909195735133088894186412181911517053640591948949861647370839225824597943591295685584074884145507902807033860852831259627962968301556752300594931820686712311870857616872574462298187752006151868455440311723710574415363486938060094575883456253277052813169242647498126765233737050878704434955498306577585910658132058608497761702543759961565154186782087028239446808778864216363183654343865775156552625521814458088718268503934857681113798331686419176719367914203625215522203321042062347828007984518658047490811571673723174837824787503517372725633729082990629594744793805902244279034239652957700198267773209528788428016273813796980379701153357283998836269831823441248108051527457724922989476086739097719551633497498722414981492904477119871895877659574703027989991693859950952811110659522501436066405476997183128484190516969069445267509490247800028626754290181643743431720046935205235402807040100924431744858811369557693543093773410530353213205988666219465199475569722298430286046219504234545791223428880648137015345828799637530568203756584572391185970740626116703208915090603172684247547334398421435500489923567930388204681592101381972709208088524371877726123586130520319553605460434339855058334709683142954570192288468049887437774188782985686782663464844142542742296690634413535333754164338147845456343153222831405902735816730704883189948324418026802072588339922166650420392620655282506279403405984101755284405800090327054397899843681965148963004161617160943578062829365978059220915314715244114924436005214299022771420874980270262166035147943621617970152305759278563948291174230027869034661314806153915927739864949126710131479341609000342995732645606509495628951134001210571519044563700032129101703961220179544484942708370531904192447355651642599909822734067514537773400962466898298357392067639417969986855911974845776040476398639632750511198878720043443855431004401326730437448728189367895551363664279137522241770342970542387416467963212500770754768549438428666757767409679375632827454610429998675482996744062923845222645861711419443078923197781424431733834673001389421357819494837785047321962072714965544212082902631724222628283076123500604430847936314787607334688807203682233288979989826593944852072145673912243306460491729179585431230595116876490887520836609395188297584214671801120410465629336610653431555588276920085405576148466239558813823423091627663598923488058537264426986068188374763000181206928863988763236691608638834088981563626033268919187410986041832549850242492414916119834408569826051942391930717348332070387624599859189466691814442221585566210515517220488511807165507084994767071511688025274411249351524150755651466086929482480857399898760287658714736564473167980124153085361840673054373460069068192941677224849759912320801027895710875719440325759479034348968283678854989411524653223287686590410406573987410606452230698544641036719905298521215060276325068353278512334060932290157295977553157235149311715397979314377021841704959298994558869351211138508405710013829708149782601773489250943284643515866872895281992734385767260912115497972350351126771287443771891700519533404733544080965249022407421600562132454676213020688320906671808859029524185380249249492574072801927371049391491089125214667773625814812571203907430024234723558094098538026698946049121674290111548845957735569383488128465871306423651526420632471338582986081160318916666301117587541671863412178639884276836420420389091191621541726925116259673159658980451683344446725128608842015555531183383496843450703447162352882783411802744542661938027568179796240771738819418764448022001694444330839782973608701080639443856605260910316811832768694743656903914147725645643181033497175516554604885977600250193900140739680127408463435214222932560169032692809876684045571685718934667957218802269999679153486397984419350159538951495039033111596773593035658164507717901911594706387755097651454975725077228411558776458910231419947808882857932642048713148485605558982498526413818162677121729884236685553516944902915254474334224547255840227766946116026971866578614982892217634090719178948918510189009434639122481563957194459782906459893370556773473603931882022914756572939251771063666838454268540557082994840777765716897469165269496459331042230045253047650149323914392334998957519043402787959768201945560189585653370109009199384868890005118479341829908519372660969198167057971225613610464084722527129647912757818626866304728979582220656024826718370722713825611380439893130005044646634409767190493047662291268600147460372941547037787298471349962236754367822119778902881694639567045064537025486623218477942413647531072384661232818804861949939881081183998199954396736894233898131952814844557986141337127185739434198932877706135834902727253817567617911428794891909917313002277001360323722150718687930090603991622502150389542088096539209372625367827193256482763726575555471091290991770925606801492776074457019346802018142666507835106844613034781736288543594125481861180718642039303751837633496568004317528276027332407977967510210080025374468374013770774541678847335528560392845978957067691125728667385729156752462116481957417842302031756382558511922131665209524612783915837060266138891954669630883252926020223186526459414362968157025818431000125113730470925845101620018983252213806647227305806983164711292362225028530549385235644270233838035308106070309581972813525556097298883241842813490588749652920468712188359149105536133724473479396337299357747924596580626864667069060473107671109146537593892840197769801401368768381456667454836341781380006355082462054982779144000984066885199151002541909085735947574162191885858991898419743375124345342052716025283865208998445969381648344905722362406290914870813652132644591118866983126446629554873205592344075066729393370205404470865445498041575932448927305160014369958550598669131582937231639794507285747457950957886763928532707318158332308259610257218201468741617060569696306504256720107663594759581088810784384224439401546754921068192762219226372021232363115938544133558967583600820063797729469574893583297213486852855807034125946630548816377082745073929725049585395179046630685949043747406203463572723752195992500205447869395842322149642386361294118501559817466308015283018560633300726582055717001446206201379005085791329245043714466490674516556015916522395285260338632548443626180223122257219606542663973996029074340537664514919044310596346218409895349422228932394070032526805416244571409778716196836782665071760339922858805788981300786776654640918237777089780061984702898322660404615552011618141686992440765490516597957486678932179988663041093968847940944723410352962069338938181272792358418962865664012757755231887019744286436796482288686820678219678143545812296329409391959454025076240931408074494905752010374910621778084725926703999832451533890634932486370763143673095821533304464950093126442445183662144465078109612974576015226604267160507689681692433196576388816530273523882356548195486602830972830216576282172275587081262684281176625103307491685190978147636414247130207606932392426761297336783895041683266781995609160519957946843318019885804131169865829264860209437217869774163991721142244767560910547500489466712221578165455881959942371387223991528228993059207985093071906539019831198950444166519453769275109067044526445406422478364660063092490745965746124347313203054304352356916348341859472953461020985866741625651606500995096275192794796049145920141276213818582943255210249351783893448652675153793412578570898862251872885618970109497845240954471403344297219615147000865485577800982856330041121899479860658945839755027754528868992808380528824595267739776145727375487832270762611723932938078656560068191352612773852896659678235182880579103068295842119837677868665080455932333246963779903096551109136575847753709370091399841442686698654185820766063137666473710204652124095894487808405525968910632341179798553221698665755147886499295832175667734466633162169326249070074306308932208135787882521486604226001783066981961485251809567046517585515349511008459431971238812219689936974162446179632560545190048499056501244287902007224025295535371684623999001892559569088518210367906676014537658855251366959721072204581765739560577731529241232024680136216652699253125840941875347868879872217501101568982604114134023873787618495615230138723963092493085993092859012039400967900934803572333518393856220642353334793847803529648033219722813768362684527083106165936930792554527254219303967360944633881700006053365237984973905266256486810161868050472003522238979914276199732121219642989244381509993396808309756855019143002724514456668834203563224501263210063845341960019382262555995323246150269761595351166811793669243921501506181028359190560209892558295132289198945362597848679684493052156734410191053756166453465579743578438820590141547081618798506872680285020438623504333511127649876333489809821106487758833621185383859883219886963042152725755518052876131560099184111691915409263258809178300018966516792006504218968428612557229727628327015335815685662795387107060317234958642118196137310290443125062221804066351479401343041349414977069198036180046064031882437630505481642737262668007192915954068299371151033181885275046041876447299211927449354575738369654910172164413999452825649692399077019607270832901157572246161183176397573346938508357401742906874689770235629307215038036567925670620943146463033805429394627989056481181538543953035727561499016573446741299777198357256115534518848573068294115918464755583509221525541528470674782355188289791441961322413734276572828063085682625794928097771958383292247974005241693681669557857671203785779262624775064685699436781298138855567134193527417227179241211217528551720575299424684503972071699758860422584669309785069265452728426423295202367255952300826122663978312811209030076453420820222538961229754634929629455322215438935627447755025423276630097467711014219548709384432324988207030252590800379435125681606290064439777880333509747449783336005026149531343935237170795028729556881905695687823238383115316097363916906239244335527397685794479855125052867593780816880006228167746947214346816896947225018824172389272319491031658921265880123558449767103343439437453532603820279721706263627947113284978177095108908072286380555646429253547073615796833175083257943209037549635850984070250182367669967859451222435525253406475353160708853715706117082485568118396682755055405826112782021881237063971002348619828414477649233542117476255607015060734878057558874727110224871730147686604043104283412416347950981961126238553010594387266251290492739539367011107468375184626151870316302553423273383060624314922038363443614652484669407632477217064854813254569316863624557071474148022702422235616634339565965383241328312053049197069636169864041528413498851430697340078229942393528073029625568051302108635568988500808658008681687864270318712379487438812572076039681298367978997504616374773806262602696057985186584912858187317529867463328721766881469772950152799943122539131529645344497183909022406769826813811600028243798439461038780154306183794254444989583560437347403493629574212297404537481264078684176653847544546373844006453284003317814550028041938531714742190563313583656680690999413678626390353451284115391129959268281300348460053186392380486692929051909336224005630365582226066401006797649651683160978503290092544295101176796087178268596052440636317134737345246227717263365413923308508125642249900108682249601186356582792867240334443555899208215539054043512324973392515199759848842197673398449116071343471884943910179475083640024128839552681667646805104711342665881199957901959810447632196090403412157919189462489236002325630899161210631619345237221809558003839622597770218599352452603585859680584860700021175487119712568947264208309664495341798936124746439026724905892678236672130317308098153599399686362620042045218066936476504533899846171394694358440544639855788000345190516140387802664242800849251093408175550077204232204489665997475033719735478386355165763756550355786238382928929215335697140017394256592220194652724336183024980660292478808171531825140332753176479972774560179695921677420524547685081768828495659997362224985701333324614713194963993687554663679824457798698650704856112631751772739535090486698176171488089046689765072917786428268053394431338043673576331385730992080622272490703241856499328061710239811343146918120688339889088144813956702533769484582585797200230560941866559669026230465036739465682816532111807795539952598676272255667144845868793975847554111292455705092087555535524147286619887382790182257690091275175176577477329257469327522010176937391802456879900670838271673807529803450415888741111726616493993952724320053165168618030319012022691199013997570333686789176360982426867270198440229288571113909665792073678187604427211611154984398063944731698523477406535865683266437957586193973381198025768318293872165738746418305069327291427687218697147294225000671880277908893730494605024281006708650653593945758585453000491288911028281321012593859281658157958690966205415089862290334968402089696111270251902448198031321172743229790921716973912116335508485755446322422429234435554106716718238164137465100262968649390023617148653523456406158252516640270017583482457243227177420939727684180179036369143513226993238976535997070667830842911348606511285158592219704520112609973003372374212652354274068032449147583640177241673020739539980499404162357754670212413972239919991770070136398851287923713142737129961305272450387508624677235744904525446328501852668619577043560868080331956657556812602032866489739480930513521929562628771160775786464414679329534376949368429030090955101691950043479526425148164761889730105791151907540547602718417606517396940876677926873678189564540417810046088739031381869108807418379433750394640044062129334259110254798187348746495750356536625743344805994878612649906752781279480966876608080357908269746733436815286418608741277988833839981858122556613941906565767211214596951123399946643179643474950663378875955430969054801073154165575558749242717572978619917487661328101516316646491928889643536049211432927974568745952918627868859117958632710669785754231782072647218045778656207569216724975908410502520729849653908918061181420952273249954722948369411331561179127540653506781291195530878842710091350839943647026557597811085975451010011515756023132675591694295152509704042058868461198667223693973450037060515912071249130637683566801938158557816238512845875597132606749342717968965536648612603163673019222320755149655703606257213811864228510154140741580300493554457665061540068872701078657463809519144238503596414112684227811685683628980028049454201585491058163755883864910962568477441467766768097710771885982442050673133397587994783227770184530814776552793480996927773706969114339825434092493764137294770825422960913343394853491600547553448474944712251870507628323868080211397848832071834201490064686010602847160967575088961261025823296084249069423329875753330921831546418076980368046616854960702424633579142937809119815544392404600845617472868566249274153824051283762880544411420716096281728628468406400856196912996539187877786657539002316186085183004628079222753066288721281382833424556007917018021252029097806891460279411018147276222458751393787555456905396461249655824394335086485510748081436316331194633906346033964867611798727712117366101867539618249000652569682539838113756429595990447954579287224686057709198617201347605305958562769570423503948707517709823345814802679863767491966652004195745575337845247373425596187941742812923363871507598338523628413080348146266068562326751400997618197579671378490331359772764642454916989010581364102092754947865236507550007617957609539982897072391979472202951016875442017137645998787041880167046617600956259693885964268077378692068211732110408501495128174427005467687373599219067752742524812809450730628175507387964805392247366922919554073652420477074244663158767356688613656787611563345894106059115244656650858802262863932376235802972005186993509180546611372958988696344960890402536195108173629090542775824095585356284842213572745009110123851287326354766826421085498948453896421857466879014170544356361802528214284893884569867376837209189553656639535151579643957237531228645356038043932785660151687547912083440309965380303246099369576172717194548366681583530749199646619548262165493008002733312403413117655636315904303414737384511933996020253897638629485955648019467376604366461826224566133649285245170554372555530589552726533725439782664414682133399669226069377792872621427559270661121349390131061382096988604410512725863036794446335452089431898047177815804416249835659558668953808584004491926435994034438262213280013731464379945325866568341825358579402434310370577234273176232830558157265374183425431040069249885945561919372024627325114757930233211766554354922250746081216918959717260120309427447529915019106565541440686391059769641703129451730977344184417157366693529914199869485648941051932604377723818513539560098750403892341902994135536356968465512224375943997025726794701911204711206376247782663956663411637338390456680474948844401720699855648126916508594285119066382292079760998062786066910881800951279220120812615427228222624675357016282491118900203094815500972967360679830043351570747224915393327530043934626510850808496013303702988856286814387894950494865910008503342357556828929179461235258085541629642219088619123979780015579289900649391965337471400068679885183057829853518741721752422618297864914710570044664959901608836772022825007804761966557471249677769542447441767789583068245913678206099936698129737569247019527752362815719399380651593507416682759839882743216220115742967530879135766647802677464043086570062895913678555655525887760830356251090955121584553849941438822463317723734405393623685190520245642843285565010472617916038671750226716311739664825977504723962752615482541936454888050760270496849406420113570732166828038137033006763474009013682941218433242325866912344172835025880812093335138806781001820802038699179043400851473207128546011386598597243865837283285948048017823208861782974041704773862626784403007108824461929494792876327313482502409642209224559484495430249088995811817181155462637800943999955901788270277466992495936962714370604601964757134685523387464452485410227888353695875809431957299708005407808951401971359708674881967957069999202441032334286729993712175649913968721732418051135317824868105415585851972095802417763267648254491020482291285294801160520818622761452680130554532671361828189951045810222804621267205624205603493769973154884427803794281103925252520679100456195915123799912359264075140755655180525286718339867970869840076189509558509404329174221352654914944563058969819887615745602358467951527676646415540741992994233244634183008729925266931097624006812196543128621368449667278746421753478539549587135238857864854583309794656902648428921853464084381300919463914884852948501440998251805733651091913392007150515434494643424558468033560134829659430091101593077952706244152943863672848914160164368706771236143131704140051911288727837936731366272282877587249628703509272953314940732218053318268129074473243489112680197667805092944363894184473950783759733032139442706496046645608511282490477649328171621427550490571472094338313214351941422983092887806628950303442472463303048002675968628437956364740404348625389251315258984767007447451526265863704796083849138068280385008088989183520708862791470153413607737301822307267934924281848805868172759492628315705271012689721160860728462067695676769184137581271381221682814507435573389562544666184060491350298048100712744389505696984247172381910796846660354813995012105104818564101456942234825097881538476204611525000671093118691062414168943716819733389345102105976416194342131779207141449732321521011951395236813764529236621249412010249594897631961471061853367840657532076133399100814536586715049505691257967060014277041778182726344720766773670413183643034429150342178158278516674469043934292722910150985628415233830157938181016553718491733122734417404346422061194307529239808374289418336962852868322988767023298252542248109289454329490373201584284093078039443409708457881854627408098152217956845792199320402416572880937641928984338000758218724068917735814944178822599223955701912127677596557945194427600224096639402965990522921116214233156085115970754065088776805418342614598681327287940261852233683902434145650284897433953539680432333474653440707420441785446740063856475819542527513866255606092258326583063627497595891619073196039589563980145832899936457149899496841397025989108263179696118757689883060001930181230722821628254555657921560766842446178260305658456907246042313823379275153245754006023010191569927340462053707586416410102718600550782883238008805734918476767187967533555736792597756478230560152704424193120713289209294289738617425702960172944201059148434953083771021016322991296192310806222864897886389908515258108091493178271031488598693107195268150700602590328774072365513887258667182964012388717467082937229184559902729596468880562275521506746018326053762016256713142195347250201813329145517447175108042987559501315096647164955732880092179460174886158088155236681424021529234309806911715937827158921797996568641603776500691539428603651547155265535027171676788152455766502668430406105886327841838321855174595734851262180220520062600082551867399676093864136295430028704267644918381866615219667960779286181810630277749130615117179606237450232076213501497245595693798338798127612531923277383292396156956459357047799309619301150264945772769387480392536483917309178041339198921654757554243095775348100507385549691303682672884437294382614771011606377661121048315886581702689489583659282213225727315749191325292113035109324192458493332534012557149704124907130598346317278736172323800788401221662230410082715172497090967574447374888709029799370292360365717033192386334712488684531563686697354465116970909637163339849316798514041269694948950500234398908736736383937999561241524881211889812456308791750700256861515150055203872848632286070566682126992465524240688320485833859019971350719046861867743312016910831870607830399144810563460417821472517327913249850412971393128224251414337014495745597434374762393522463295217584037843969960560722408081027423469818012550210150817928196301751255127795045570402089314935036199696237024612617422795601151469699203285306199649348599104811809745338772734549587922511097834195900210427853214669109312329845100272607441747362002289055030370410927007888001462043994922712906569741397055076647338035822816390752640787175022411371905939744455921851071506062006045107231686579488232807785405066361710490961058347435978406581459441328684727346630511686508582744691676875284331130564217371010312650380689286084511076865347679696133713748232421841049937405797877141664155335633933438948846716306251159967155675068884398071909576854172901956213821835708090668054179576519633372143065163715129559136105842136841651864529982523972258804883656925425755928905760044065044877979306873337147728807772616186292638447888289626421129433970367324820910214105307379380829290720250059495302766134440779229379921085002575599092471145668934510361256834404770135516210535772524965494104944823856482188583174854800434077877029865693711906046802672333605443958315148082346443065441629652078908026316450685015375071312333817168290390368503554141602379976891395822516991737883088393358666079442812362370524714661344406472418289581085058731000964853252079724764294648147053134343293956360540303049583743949550586952204028661864085223182299293900152336946218004977121973493012518443754403724571310038389162573076191465372556149549399568781465770540804027090425259666141319742562616410563885714370259002630034490557203793470253813606303273823257679393796932869212701102402607419698849676706706406696901273857896641800863776447096010264250437435994613424558451893376861745734398431466002081394073808475569053739330246801194892452529510598959008562883866991550673964497306849513419684513801501802650642277580361717740718810154399665314380430177193476878576883694128329302837560681735341505581382552486011535855972253438711420099228104252024407528132332383278437277192284847843214320421101067253736789373642607768863030712985913546502237736841871662221702171598932511601134686892980069352266801690465921498565770567138078472929886582884860179278490794315992725551647715248892143832818245757590478510841517865783424222011381683669503355859077902617221560026782739426689860325554189158108266841185755388327177755240395029605891471026145593524100217183831787535085258962230972617886226269818469507387393247948407252902264350280671383028884693070042170815020818289530561206813184534662050885482674604528546742387632715793106927377889849698939652091763469915238000949812785627682150572695353541737561660209434349900142178200433315828147741701138335423992275459898811081169656564067162969491710387976382728190268959606295289051633581488304136393229296836020791721087325471858121485467478331448653569570457619576163630532548840626701936343545077354116887861150397948214285711079933327110196420543710713045161506090841169554685743132484859798655273225635614336837581144536492528149225989790390554494477838360810446307943934229147430805081569205603331447955826970914878327054633316425725477104025721718403711189745036764744281648889125362807191240879302907930013162243450504025384943484182221954287466078374732908569038253675053847638909542136733542619606556555161557179826432117599706347931768796543496139795946711516888799610191936694689730325426648497141433359244560080348877302598874392118831367604939744283861834533030913808840813904240073791761530945690630996842322735546498164199313616254842322047693492439641405403731195876724495350734519111700568831531780513461244681636120255086241254457070483277961726145184644303477892736410533389601993073480545500420262164076211833590931278904782446458518913345219514159913792227644785738158647938754953641098844548561014832033195296945392118877428765805610898785946586729096931202223463930908141428769865703090985250945214351715721637561194045289056712282182869428558877686654532345865857621348547849661307810146487201336128282931133563357029660637822653863283982595181854170353613672429993570457179729403367791617644009936801280198431328344451269217725658256241599290676420548784417167931737236743914466343594188349966934436634788493444116376199381523315952777889108352613909784652607071399402778677797355730647461953644236221844281630166830660186454958788284366291653663726054450115629692657540750027172826993003858066129110531754193376952146927653507386691518337390792510228788387864347388131208809688832560167543884657488041064103412105201579933181870093778563799511244249766102908458838006470256045890258256044586232167956137567681287562374857434309603857979177323414188240992368106032283558497180705239947638304227334269056760757900813610067106531192261693956604087636503608008405382002690072918217582946343987400476764870847925981743931344210837625071939648100612082015391389884060261727921525947592793558794033883072668838071865526884761920438655453769217388578619629159912417517777921950048619201589441657366154871537083048933713113681565699269956872937103609260414953379161157029759942548553768252240652030018608653551698179276005996756840993363067235466028409721243120481704767739127791357860988171369195460029847956939680526029043080273379315173982127589317882245966889519922448951765344850837001894980928866202338780629027033059141631177421931121378853836190006123489543966092111650016501792053282500081802609558566858177776325436508866338368699814328358472061098117648487304624444873261494812944456081074298008454192094308747910851863298808954714904532017187225832440956529648974238549051293117970597918844514171733981366805740445484536369793533747653913877158695328972390069926620736841940513206100864554524607360575909737116459925843112443406307589580360467439673629305567060976889331956008268556442909866796554781146791007535530604307317363570303888502655863670273994986534879404367898140831578100062300910479653123648719980041926799016288713310273424919168390953454731751100238550059177375589947941333611337653167991297288297764112818309455220931735376106316883202925412043006838430803022325553999639581739324595084037744999820426805206479868319441957602369615441782636158426674396377642464505216275935225837063196243563799565910595253388338429758935127656743939248290872776736306765139520705046038817031097787066285657842506977641788627035318810255402476568740016389771964466939665038496809560914811371466776984792790401809214498501553155157015661754345051149707991312707011621100052116699919342568586620336398425743465396037048804224168798843999807707992206670855658638059228463651146848723238063450390300932047766539236096963271992498335507927694834064725591477250713276116690961229018379542907389271049158900402748046925735250899096264413014263150913513192049459404076888270881488627428160876950272700139419924203734380850250004574404048824784988657063042705584128800650230203510491684233138075226570278707824128868206392816079068308551808950048983129919363161644925258021210094401688146281766120753815400511160339714448974683191281846993612685966889467958324168311436238008694891935549813550585268441186554694223903997379379333915749571289860080799461110899872414500159641159551332721993704566202016630348542992488392812249044282905096727680292907244167827345505789464025007138158796200768832821892392149308393993796027592424834361341823632129135656797805566416851095528529400224233891501156461930766743527634020856050332832455848267326243118240548467031986143158142812841257361267765252090625869826834580480209977649028089612238240163823485857438368212094948346885972841193998862839325584428454860648601943826890620505852601194045147278672190258285506407475109084580297832321868093364852664525191774286008697681537405118314275276001081551302801384148957103736653267616247396139063161717774884787242802069311462920500847921210942162740955861560747632899385558277796133672204139174247606061086640823970976437928446295299117155679420542196175805681831473916712059815668831224794954919155013100881088949402484842282709097666394948313781932758920612050996401293876201851354010938076694177249308347071766425292530697564502050954317352674095588684537041359226074490318710733945753507061041094196383195895625303652339223318131297840411572096520233812221200867823506270762203239340794687035712082054581828339803297068252805759382835336264479356962757891563468654568868518450266601136085425215859816163652862671841412568396445669994041430189267046295685672099688975313594169076238789118655115706725897973493714333886353390459645840027948322705723346853044645496769184847364592910133972731057172084839574895650919197001449798264850212483177790087006883658953230451089044831208772415529357918517118113578355326487293038780788150382351720393139808780634027843410572397673719502489719823055075148185882398610307299801230747761190396682144748446415082653470321203662086898285241869710574261659760219595043162881967619072124397704109152609008157571604749379865231135131242368409365966141808076900763179051718985952553186804558130284713937715331803749819030800005211834627937832307775589658865380376379690098501118873242757767880680224314454654010720478729110130550137262698287575438680309033633212477939278699830163213387140765903564582132963859932608223158040020147359908183909999169014651652976649735976550701262235522264990503449458201731626096520219572812023732191126160793545612536310814822360393482917769660263229665695910604711709620489627956916541240127375670304085672859037609480923699871816806073914162588297573319747376192791569926446021676640777830219336355101225688722699558972804805559245528652224493643676792637824821776916615430100083600548978858419014933298745345534247803582546697056315768407536371893411102504712254333859181036635819182881915987224332274158548540960119656032412277511296132894746508175816455209612514787691699596714395899367409983127255149811884915120115543709539545888161096428175244525900519613109674777714477174062666542524795709846384539040720140311107044059626385477964378094176218537191797406085958566481046577099938703597635661760885675074955692293119525646852568241318647408938106985071488585044587397444241423543969924369041568043208522827531164924743966374418558353818876688067602830859325238856188825646687380488282773604617486124724010489749572931919530507563152380118484127469231884583339491192398415726933000666842941980454403327887133147802968749476153889713104026442185352045486951697192529787803811882696868797021194074604763115937220247404714744519298480363306841580750568454796505684006892904205243753331675373128547032461869011415936786734002430816309270295936023382311239690990116205429504724134713102772639128164559726576586702709881578090751474614632572196528979383120851367562654757276366628023367077416431718629986526652990858737006722524983814262492343140543148174663460468491908632719151590843803374048161265889249695122501519131367395699726080388766187851691707775094413969042584027726067622849132443882614363118685786060496197552223103957229623030240517765438042546668333906387560423770851198615591959595531952932970628968132638311488503489958051137880434966519079944702452568653168314641022359107762905675709732349842276689929528403728442854802714309806805754068407032963706933056295192831791417699609010133900758734176982455888598102092770275155628332047436989630062065578856125160656563801275327964476192056584272098590622856111329346522437505786649796747542512276717152478108689674036745680100452340643790713477137814285739895038447183840821010319141551823952054546068130239534132026037655683900768352279096477237963437265728967935968780724074400652860941983722943771267410441279269989146919509376341951383034642858101217557600232403036988225464406125838363027547694479896140495594836647144411585633879358924292210067304218981460672250487819665490458120504875580479510586930071199978923439725140260139986939494918699847837013552998136705226561662346566253721409864493599866869738253333600798779395704323072102189722010528177711725197637215302141243304542916436218530115635571342731786418109985984291354883062155042747204284097183722038099402884316937472131250975113018471280357303731587083861671855899203127630539327481789562608630245369069967563735730641538388366954897611627912274791637961520136129059888833171269406549894909257636275868712742910003734634486850440822332994011700829649081701185855514187723382634984586906029976570734086652369602940344117958150646318338121313096584749651375564909745279358981629117376856450380226600345574957744710674691815983087112385432714727339730098563051755487887611313383385618510610358692810492091793090442733649013541784863912439115735497353059991036271705036023549507339592323602994595688881338091558934053325747056926569513567995604704846909068897743852028549546329854202304368248022624255440401031964953605079038109096464055767323622998366500264678577069365323704394753479758799478833705575154992557239185566038745865946668429612502796808770966134676450243949970425089539504724814354575339932448326052521237914487820193440997720861306874350115583007974768618362930049425028551889892930160370440701083151314328435297714893259028794735485739046388227830414954323777074357733176552640061531563338724415297825425304188095341872149628299604400546341092287798187995722465700328179631478889642051719043174592738296649868211549046356946082351975325247659433683990548032752720134407094413440536001596663184420704845863491858953946264216453602770011241965499473105950382007437239229809330130011977873790831949660084106453333394575815204025107088510596548827672314220063670148572287248091048229145368275034156250052222782914886020681581775163508864026871694927992911085085429585537149648304897584628896186433040710697492857000539363526201326721737993417052531176751268601809512259911976442627942507769446700053839027235698538256725250171817700727018020055766096621933567784552632869995952094533980386287914112245764266140404665487981281731479182148589249369604516558807896469952145027204918989503856201487053316346434496648630880512683633934844757965198191595727562217145985459571886675983623286927544576955464010004044615708637092362732160565937318854001710888767791887626227830918326801944215532788446240099062055105152154810198806572341482990019854356675736018970353399784144294654516580396810175583821745659269705619408903856375308361959419227764426765932985088576321017159895867772335813642836043784699383464758803474469198545156438607541428315121087895581974080436817601339437251667663533546229767309844798546662105420172825126801793425989493660152491884841066933649887803268472435603558445375489637796943403941340484501625060621813949972466713447768918685171022526448590248772395885412059470002842464184231906430932219523213270457738564611468585685012082398824364696518180310565686844310620309338765113992258516599504999516453152910804297417998678144477702343167976406113581238627775102137003781927947310422458002536784026993606888780373300082350008103033777006386184255987929019205758947742544352465896550460689241041711257299980359321898163668976893650505339562120023206756603215801904782694425956778868098588100647704741441941031452234321177283078217433525464647255882994985653586514978052040843365702648418341561209477818053073362008003627373325986181871571909891434758759696922546880451830453806449498292532892920313497334188651583705602240957286853266865055971392097751239623506620181926215601781757567063670037459613609351551218558763190161652705212089028918927841072869736161658466419041131967897289920020718657606818671725117818919142599606977560692865224934796184897712695227612900342354208518852839836587916523397407988108230567809664697591389880003608860161787858560194133041020024152933251277841312596852029645549513655127396259656085216369765889047279579557906577444399235156758500125223597280285848444902488547311569704260577596513137337897364109105798286791984483812804669896925871026502517534909095517166145846156244925379572646810671713917621608782519764105175348823390842372643206498690263587080055252510445694809826284266406647758944472358869600621055538563379741694918120813963248004093902364822619854003047702728886829573534961638763893390449639847087368790945883295251762299275044051110408479341241264556610232663363309210688033554803169034601341241778683126145491222497159134354304941707125472759826609462997556754120396804252184250946711060589551356112909815712032766862839885298259321394355707546622466349249695042955198956197486112128269636501613741405732838548801310415531038895937164511629808886289404892948312645101999877122991408218793463484117756224837314966601822988109423315641696653159944472868622659746779952148122724931740423832831752289130968465815434091035503455506139965577451431712397885755876121399701696728507173417240657659617703248546522393921329296245899896162250725320763077327306002036326825113718227000124200299574232303091748690875605428808321248815677383636164677570940003207462529914956114587519122337234638171174435547338806139032283445537005812381442985162931696420568054378204282979516886353720738805785771271474940673463754312403383566879181071568538042669522277411682953638125047944130231873053982733974247972314320750048956156625970189784472949151342188498541126098767785376786771509304009877227444490723595791246920540232208692178288810776960382028780814696738808564173726824575062699853819572155464887537668946761497577582924621062808848652371851691909415073207551282850088821454329931641449758828221432520347122803823873550773456814272073089178167022926730985726842800177086118159551870532487900352227235817903317181450046270174802034243977813738152097438349830483763781285260919085483519485643054522438217414758939598978408287485248411725362286339537680430216394633798493540771883082189283967993195627444317377090834909704242463401103615583857002164240248514009537281825484436913461540348910036673750865773555590151580116740825978373733273079080642372324598293313245752005407655410149079304863022408385209405356198734244294924718670598519721521680195307731047938225787614868943378839322688353975844255191611663389528460221169299958783417463384594171169289898245416567705444643383815110778565223129786579878847594270837705152635808861369344350672461151234030899728331752869723271276648778105211126881668219727504223525510909743744979368451580824266532805247184813871338832507914652690333470366039352546930845317423907221522763879597626948249130863261859996947285844433439848678233132059171733142545190941456318103289260358418142202398920612739032592250692061508083812877990349479318417335418620901075824512987778186387504956907244220302475366975647101711657064028986944740904856068274120483868459476557842428622271467887627105926446806509061685443338253946592929320810713066876004941984818493416902977703324129860070528609204563325697056754245445790847640070796572717196293422884172773402394454214174298449181742238335256912688044447562651971616237381578844140917103102077438112138432736179395992075993777330169060987831764702427244113679591235340415139749330927304786021968027628138456079055853429886816693779759053257885236322679835846082290930502249872311152420892762104032236164137873653018590314888268118103041376777357086959615941920205417010737519592892129145170577343075618172595667320220333733595216570007711644481981658075774071719188924076229637058583981992244192645628219304124148710639229497298017991551856207930609678285053005818543670939870084782532751914112141868933765246308164323502692699174260299456948608680959041265968590085048079902735833123131569263197679077403108016266850178828714235930895127426447627554759930339097457769071719865089010329060643213985147261513041573654488193897131341231930360003411363835993014461088499646978129337980471603119428915845048947861055463565085335593873250285850308927179522704330436597432129080132050321592448716039519047218477866971681078190781092149353516046583983545107488018114205963098677561501110463989268186308586038278702238406423425135080489401808834200416428972700656994157869010041415208732515033463626708326436680688207757154555750656662293695432460447561445040286678724407504545965907500092033539952144936572047430170554712920849258282077081434115554204698125463929054180266051625541090502997334020888136725489655565769506838415242169251838324844697374161671302022990033117586398016331990330139588171324162164990538268215746191145469107957031635371455543723700917833035718534767129810050780089873555752848336578360623658228385184535771515614653884565843555032052084404278186317082340785849717861788114536091377515109663536653086767016925343501200028060666870807523279060192262396159989503756957290173369378575979315364280058139294447392095606226263161964701702620350015993371291718800632832653800873522502185015235514132414247020973719212666568364723922890909122559430239165331059265897619757172024413674747460258669898732350622747509976709862212526751102678854972999492025495125239945554968160719067979737057632574334129278417419894571334777567640061049731091891753566392552164676535043997931791825193414146478755478423905621847280214173708353939103117819859763296171326390126645562097011615110406192914133917308661659909695976581608115571979342296714167216091969089014343622265498150291710726325684487726509380387476157698954960583306193210713315246121277593934908457531932015845484807813198390769254515219651150409650800430116831359435163412329659302579958037703591002098462540893676886567769206682058248544418616143764683644634961823537597616423943979446122830571224882219005958690338114359894403611189380584687717098273695607783063785601422811900615739860056474882521010760158339420075323489605283875029484720068556357301646964474953276704757022971678814610144437879866965802140156067013079840010401338372054318490362142127494413378743363736207195393347707478651941882254961499221939249531862580474906568890431828343614407845722582028592972378552465751631945141836693261475026347563242168081251591083280825501061085834753306369207146798856082335781442829201251925703177618594429149800119968841109155516809115461356008817113657981751119449750728044133826412206675133294299039781737407274958469426546664905886611023287527214077141247162165165519082511033307593054422447917331174956378331339123186925323303866079332688051170470134607376352460058044570377565756493427888393564431784290934320590425453974650275222347605553487554375855117332383175233816184526689020834789432840030770531749346584452964490356908102637841010186481344677026895830122381384438480077581644057585008455992844881983482282077904407860272298243829917848704708850946859345325958761804830944996181989216348861490457485858582122670307763582570263235476115607174301283524999815719534116244739123715502881738902345039546217943997237435711782282601251704789144881804596053600683067007343915654668755843613713893097556281474097223548965889201757358728595750392760714120328953288498229332880202516569405159201844713636868033053695796809875761836228749231324222426985776903740773418708277112092476134816327286639999237431148979662461303068819092881613895047302717518585400447992817796552801788810783527173237359795541399922254724691543390049976924404690631389595837474419496342672476035568885677740916020200708871699758006488145604643519791365144485501239359233744040096821229569408299128646787652435116133538006974409170275182230622748627377831525049203529202407711023481850977267443706477651007784093381478292781344722234034370340191162823287555986378526046832231071746424956856039617193648275084589658465974747055117455019137020417995184279899103513279488144870993154874330146541981548636854802749563352618070277566404985032629181438285991665537464323448676099393134462593352036834164141710676453047612953104373125340258802875539975719082301232741846483966835063160111194328422785689707613759735802383897901521812293521197971556483462073854512590276221871342649538099576567679774615404870439954183274114833314687850841635577261080293831070245943733399432569982598886230502918413179025926258164833671346040026342837699815510527925016245199356000325282692494333018570178165350886965706294311748437178904838570795022151166725104670868779246560969078697792116164781748596198616296909689793745298149225956385735982724895631975277633971835595011346931704686806786528485044587133393908686184272187400059630551504908891247045357998799991743552093255139501821787823186796967839553001875382450742923935208173811907847608869397720207817469707231563586506368721447084023469855721956743475094901357097735106621246561812848901530216294550945975065151070224752341954135741254472961320913330440877610666029467044619122660441384784631317952345095139635623944436848420393266138136799252630045776380861018986205261152842042296466351661120197774692918404123309817907511509628733875761739790208129370199854142237628441182370412614181827995206008117690015226363247259892647553249187032559486612023283905133102975715436524863577946662660670385382086114839717578098296707698818076699168635735008129522300693419196885692167383503895747596860945649219579523951602464154589787267095272741078915781411776427171449887042853935002669358340419429524170785738706233725565207833142560460459004174928604294495124443247786560922294754407102674163791251192129766810383971231843086993407679166601453275046777525912394135936098321801043172442781105150762504842669179397347271189721075942036609835004422973039963316557621991990961635525287298997990564826601836150105182661449229783818230046534898765112753819277544966430324077001621006594482113211921227967490478196181549103028182035973904416647776212210873611911887152120763740775355536142703165637737468825974979844439098058310773805418453502457003633281687953333051057346209220974848486168070476539622842832763153996185131981497605155481441634696565288948327781371969359264962678316691352824943532492706725091824467290618827595040560997390866275373513246329071963246928279609076736316809641927404733865738094739627642628929109800034641912148398673084495552995554703633294100739793787382465093782999044655637503953121730852556556017237628454895387148051783221288151786413058996215496342565690788990651869299612963040973490873440727032977197915482954465488743020256913801112243982289983167514717761298303978678356253073431966238191434233532745497409335116991813761594994157607754021902285844255939652606137542688774766551459259709618000932549673221316845806789062799809242955314619243386978165020258242344911868119930326762935158425092735004153070653475086773922707675818503571203950407512309338070008414073022299816830801779405832200224695965970639865658225489706759349125210287261065862692591633956785304336101896384846977470689412302100910864178516701337001611898776935595793669802126438184814804269132301884574708407906159666025548603904603830223282743376191649023030546389739947926825260643988280113743332497340926372477149193207448290300664916896495286324509049088141154748734335816104227945814285131424776172080984714386441316873977048702935272071640903951418925038669853244970192580112721548003271989967139853694834070467815950333704741034787624307747303491711753599722070205834450876128682636649740324912917920861788250518797574090384987599187213793049381039749611245938398572301503088600395566977306188602225386989065989020423831403746587105004099752967524454853569579296361801069151355921529756185308801240195457600562429375920107536169859675786997407677561596073107998440247929252722280892710893293523540780174281434955351316608533414914037516755530338109137720033677123869155859547046182538830034975041030262342068378312763400200493152260931200578367800091520484757855960053898397281962033219516245784555393019577727226505535296447382985982468533228516407228386028983223194858951844373467166098697866469959008964598135536408953598064045437781523540895995867482988962376279300949955468477434935969241518312269762050068688027943731866581787611836729849300334523780637157970649471620473763452413621271745707376593928427573270717501350227145048367486004190226591585889259577751531727306248047242602978540785888431193754245577418164537063573492206751549271209398377138261903457467591382370771580125738711071802157915190348373654646563350510651718116230321483113659922480784816214022192010738899939011802552620615185561688924562074234238211934800663398636418161629364238718379126699241924752793404435897751060459083424793114707836091481692641113620645680887199344373940370645935008526094494051180472279155241227557882714947864423349049665179393691408994738362051135094826581258943192134431785635263708918280339947842985873966130857358715848659794073231264270431900097314171803279945786145875982510775799395959705253173147610182441117190613837446973806000515995070154002579006993708616365133457451114216921882701612002769695256013371117278089431821126138662787891563677272162064611464890526052291471153081106547471954918014937844710325553020372665676346602806825826234379210214278596754950657233553201851979223448207717691007300459241320464724864705774390355981957280349813953344112990549749240043890800163447927969880316942021721580085201203429318003558076903726542738005011730420224160195742167107627718220094376784823802156288420470326578362585738147672317891558066974556620336253744206324538301757360380018133861771108602698288871700897565339248202482902548680352457262398519497830310253209960994755314265327825123052318471757455858807329008674300289947195178759486551891608147060065939822000571679453937326852471697763353663076398097406426439382379591806092218370024869644203684989059015770350693004868873018844199571459721082697794375261976613554223424602961230362141505358540466835514820237991944005917935904160926525341834725355315788671344013802132621162304109760123094412078710484957340972523558895900653939538241257566351280857321193141589170711169397707736027561706423683546069492166495269013974870368768751146045696604396002867822126629456378874710393429830202931686288737430295482074628937447274688309152112872375188462796184001932443517989358596077743900635957765200363736220828341585846845129255078567595557176492490088948920166081407959357280561230011932465037739557738481782577675375977176353341768970388873168241320219396837080121555357308283478583055410681452893151437703528810186494692829148864078857354715383321291793614436445680471631027624548227699115064152391594821173000358532254057305461675416316919479572623189831982777670484928306036149346031271597401648725825626880625763898657164555719295089305609563827691077730819794596506909966557810535869542718259064614792236441793437618236684212577497359901410972374929896333408459503858098513877599442702404220598767766611291351316230138921258543368790244829998243897730099393655593765141812285279863772080849511763501941557585430447697652092945282834919182639905446296622019566984602066876359286612137471711027984915993733551066922752679454089626764531382618606197126049527157925757016183955167329269822336168541617881295827457430841146312710484854633161040414868123081493214663542322885953653770382981960656919348778736182757586253911723323838565659742050741989323815337002761832692512901576508729851732665459808670973732749121163444913911349981985857541389740448089157013602637966789135135331528857660599598252245508781142296409571341755306807417666351689337731177719128430597262206288662776270382843662114510099241656546696654858188771784597939794937510212110104275018659340013179627154199437779144277560003181716193113588219730828069872575296641644669659471909129186780921166458328905796175667561163912279557179281763141210939895793843640043181035063605846397822719947279465285039343495061108292367810260408965731238633957118070918671245313990827114366021110807501589471299627803367313356189813237109353756045467172747910281878639762502521647647240084283508838909744434069120076171438944828225373304185240609122679672676581998166250391436812494115469360955931201689034836116131114358367434418672996081943959019983388090298785415877536912244320950465635692755726653725082864775472497637725889733680581058736594572157208320512322355781134160994162052368307902944473919229066370679527591505002940455417942021923116827753862718794505088254180219521304293982625253761693974551168526861561185232837151227876984251497883944568419445025878368611809765252717240793986068170482794199393844839800726796242070572014617648085062899281694086867349506057400877883098128870150540064400879734355744533751808593943220055624524516635156561893878732506723133002816184738100910825808094165459340444379164361432827133552602201236381242986029880150422291202072398619101599771556784175201067393458415314647591950434540300907388930876504290683242509024851160757384169416935348751428294399934112596368036839514553065628663889206836481531788592604351777123693133654886142261890442674675232021182881443446959625847855037883918923512535539411359091997879682546610612647488541538807448171240963659939765477018243345731835890454383650566816175506480873191054284372843061257882337022359871184119423700279261372441793572714669526280002102028908181057236734954324146119540621162268571906157572240608654184178064197088756543275278763767593821777970602062237901648616988164444150792082468506714729478680394762354801460376164648463877703282289758350766870756503463873177579331805309978991942737367981495264203662726143525313520618748125296817199367968587812963934373683371403701046378135669768854839282238837973214429443796842680418492805029658576074535725934597160152438149190259486883116218162952437282627374475423665017865653620162027905587161930045059188394307135854966348872208440860467446614226714404040881360837946004050569569358461422049145013862740315815386021311281265579819060117121249090578415596586997756188917695810065260299254737207055302840000215316375009983390393558861631627685336890842472967171746528488843401713111150350497726973267885538091858632864431461864761674394196897150814374219373257166224808992400046154842950003747194475220591146478586628952892323395065148066310589793479009619027081754603490592055822342535178873863520647602905719929597405180268864815780812099404394074419487304143761815505675153410671878997904902063139869533775272615810696025117210999427158674297571503403767086755563909546224298348642488707837468289610616290651215026552473213636685735791808680007835251526576175781056745882356496618685621089180760999788233154146091904978930502171999847583788301006396516568752538966573206308730474720921417666642487133880624446579206723482683267457338936623619863088772269405930409342341046549013512526270948890267774643485715853760800964723465685034985627332436944069333383073265283712641506843935825649433761380207188030400377482513696844678217583313184398916056474004993607102983204416503267676520273346656460573816981736880132384247048802014364966156553097106550685279639631077955591025899280329022897341124781269161631628925498032301977231307236204863537300877997956127075660056913679133495727740130213402211095517869245135534270009111992484382208875816312384232135592274238545413918881212427529023525222810099855518921341703047733770420468898625387020003798307433488699035039520731833048357275391310286705352862059964719712025147685351137900092543616583302418491231792648608151434898423483197573867543251976800038295371425194189232080496459951763416987329942200550808822389830690914917677290849281667073218365544686127389925558653562245293340299794187036937822850759674031771676473409195459701961450445110943063310979980161887995412475489350659835553194958382272103578901985400476353901949169634554392576779980962109334659334464243235045334835256436330949954942024951443111455535903619017950197702647985806317608699114461054975204744493905151034542704783458587027750643325608539344495954278922942096863429984951176025661814854771139792029248972273737140453737640765490962010017176854644299943526235321843321124690697031721005229876520135589703733050081620104533011200660812126433143414918672630256747655857191657320494870940896106903644993675116616986554889838552853788283481403386705797544178105934007451713543285838434056504835185091154722656915987286762567878399605526029047491125429909317680795096659299192128027815815385793303849281442203518696839937644288922670127184987050314315723918641624069137758358628169488689203795280416897765830723430866193351613538258933660268310191074678531271579505609035708149523971286322102606134087279187348853527465840742544891163651327713291903617724626736577782390524880338474838527514273351316567435053906151715451141459185030583726308312556077053034850725349203221961835812759221461786793942715576201093411988748054959266456354275420936847394607739533190257427800682878723759470140741066476992811334835245564198877295127940244079624094487877281991371863248770642190527196410360525873702081457796990165626353060531671572245093482525198208624218758815026710682866258785975209503449034594346341019343875768315332738803851967141716139076352783039279878817295781877998170946195105184722424759571099624469294812757071478651720043112276744669564611330486910631624561961390957621241004175112934877066046263307937653212376832638693928140262044669616809768958494538087549039243525558544436139589094679498863437220287388232188638353174843255957472911904307729124149037730599369905959782877208858271708658867260031314642110126406220926971799538806032819044801109557406419907237408123546074011444333576535409167246530532047775687486843333004776381993584224987236764267432619985585489940266752543578459165145828688883025545476883588560926524158156557188079603049574005543653360568346294680577848442434135422706500610970642356297342267958554112671308079211343080409164733883669262522935106708726779467648785078711740932652918730523208764480720237984667110791906776513745833605872656876141808362331718569543087170865352314410367292364430600838548929805113467804696965342951154064549238131651609995987285556296432695747987541578369137937874520815964399575879055417417967814108813379233901459631098027568776190639368283829554648431343817100770920650366266537931737613666201043535053785084969920558123935942449346092790654314654216581800613157794339742514527417749180934247178175776520799129108071339826947217084803563310998904538713281909285015696076664659737040618627438889042441789014000275457171949495550410063590821172347464801806705628525905348715431125743433001411676430330047794166528916458073460765482506472205155726220565536154731613726414815444618814294423946555536982842431979864345070685369402680182068777472596727302487843757465329625504662929597378040828572024420318827216390290885253641533226020069221903542498272512206412817064136105017560800735155121875442325280841065638763000549538861240546523646458202522233582486628736830453085851220359405079933010999709356826468400813219392809168431750875168014117134662314717194632401436357111291361342199124641849204264153652541296922048087959960223655067426888143441032699989105213436307610387637512119467335372523663335161747419421373560016432300338710749962855165061746903657885078035011847728632361055353992029321021599317573419822778823399651264365541355862026986875679925279621555477794522715301688638533474480605696157498314449785472018698578264263032641532099390737040211187289327526633068318825475558445686586996162933597890693042321748049583417147171222711255458353842854869859103950339907873128212975655774638105730375353936637883068904419386746435967455072428116141068652469251981546175053429145736861180914508531637959603710294837974137417548169403567433700319241940176277006518552622045024052188839890318635436176938533058900232574645734401410373750457291806156238287771935443820228294304799451572833627748269863984459555222040092039425695946904589411549662331348528096669176399643289618348271400997621995604662565143842735252001094662327184340741009340512878404584360125353197349955196088417765861257658744666524957770797043351101682732737606484277128982808974884528115553394979994104961242539615466859456984836500226093391680738947443988848600234398195539432621146001881094272415417226662242443588677948395604877194422780697013729125915357306934307614613553137045407003444828765448105369587525384760832992583451476631136561885019849619071217546636827314404851829540023573915792343263192992839943201756790973572007149503309257521325420541039045821688868872816676710990610048977581397311527778469111343708792299515279310827131166028270051552868083036024921638012286345715003097169994398915506680894624955449724361089403730137847186969441845466053363802143519978919338712465253396822150270102061120763880564320426033629284318532558518250141073310206329664764405484122502157741670832782148069802120482952540698982449108366065846592157419959064541895777778938697338829812171066514725440461478706372695403447633863481919273768880846242207129759776034979598451249273756146109101118416399024801946179509337203300996750210879128057340350158866694848195702337022369691484344821049039071248538009036458060782911805076345682105695737233841239291772065767189929937701963176817304119338138197470044033493331812950540437472806655139165978486540301785185754252740026620699229741511756196154372666239285458820320463890528897442030690033096867857095885734489657767283190897713418566145565305981002668116397708153284586857451953124845616090620715867982557840008849654152392571052595423761310316050168549254779747325935831254750987095137410357639727504972112466210118784637226877988857794990668485157361008170399323917242458484956531662954469812693077281857980666766867639632514469308568741116534215618240847047203396993437024798472575617007806720370334597391390258807503150704998587658385268480669450713789038776805013022738140520458856368132715739265112377749837648677352017299295960988076335135123523504755271797605974420063901891687639222321014380126065666970123876696638012662149741854357640105123807064287738784823074478756163059237003207318426491951874816795783455717007671808197786041394629186661811377395097343947314780332769174011310110055467827218624911122732456034723360050364858488271553638811583673036166748238042209177006210242727960168936596073043801206106251435412744487508339045992728865649707217934364764644297073916566270312713444875744021218873251402673599014749803206382716486304104518730275616967937219222546949041066925916865053173173013681076941386441758066135142978475873390476650180125548611079698736884989219722007775616068881620058371538936723329855054609252314816333348649070665026672529253948453626586325752641393255798121194507955958284814525774577099740197558433595096522804132912539721780530616882412897738068535711404457315450450079778070437140071090450229021132224500065597627821450245045977345157854122411164757731355539587377247322419726310958319889237474920022668919185039672010015368772603640219066092797773298449303661369816272423040904685247007909800571024128369079995796807873629157861688706717422514381547146637707865333208557014625459774095596055122222299640782096952291574682651212907450961600627777533847076469095434364384971141308098501274719902948173945210814907064854647038490392981669280153120003720213353261947039587597305438493815609057731152599426066090990622200065366379072500139188586142517289678982098564517698684183454721992928309844499576755734514512194143022946644363530319617624049270393455263768910891142599302310740684142106949077949533421813892178054313334678496027591366685733111342917434977627300608080115723126754061900726733374750478256042806566720800574419904073503508544173616737069338337010200056211950206957516099954637773037595073963883456360487112551709152718273332624543688111005662616409307127890970109084761199232843714569477086624324292055100438218140666325276635799674308997483843628643835936723824437594121140813980818867040747879999027032156037545861182326957371125750720221589266581155726706990294400584446652291275751758966093907347087523431649435129884146632272381145694766591167183811015057626705366306533758954949790436826547420341420657577060843158227076665959296828854217003402681765133912708023720360758421437216153390140283205734419784468843838582427926654303868510640838454139308219084336148587765769215170990790894796810173983641837174404508243953930944083623662312368894033514003910882973539690110111624151828856807213908411308575172329848574697822390238484572820823771941371808305895921770186018617893688724762773132550205094519849644826773421563079830537992148185714236145710764664891346362924649377850466967462672440165477749101231240028788089258608303184678253568852799944359491698592098943587025908289802670737920314115156921134379498759632065408915055729390594450184608450715431317577725529674844314009575282124360685688036323644742927683442841054447743658553617733957279124624104603137451182219914060150964403600966848221094257146578414474939926601549244355929949138197945864271831755506773140359836030404169433793711627779212664503658679790647680254915667479097201793858345458172093477987011276284691180456589199921266465479028715104645730782825617434159500676427146905232364680621678901944668290439436031079846121465054107371512202707400112277599346456825188144017570466957917005188083689524777100828954771459878169245806392078342882084535487474029979796724278638922617506044201123355808929540744091259131801741280518082783913465947723311676778759000343372810595004018919418073653863148786006876450333814204386939543001771899517703860331645708654238562122515271262566174500608820441831080233035764497705422445489909773750772262452498543460045897566436529714242593084407424959959468261191107385991630376282072446422437496168684339332999212318211691506492850562666401879526893245610398308367492724986188423544188006412505366688972197487549857017840454258310742768082006756244930489202364210013995484707742173916628062568659959030589334247078978743671746511584602932915087017051199599037860652098366347997700183959174209743152502457998666226889837398082783562063534916122973183791603282585715862278706120735016962484408627337289839094337659592103381646971090146502377687078252000432665416571934491538987620209443177872810302773049293585216742019641013211070620196605731038615366055615332826392318230190450519189281332572564213307551407298432035824540143538999164636880053106688126908137854151493289071662854495989413708683742046291068125608930113145543071007186533714038924884962690597443536035451933493249927769365276181879003642011439146212227489123751400979732691078801786165313074154439192166734640455114435557636614882213178853537923819594494630760231711045760761508053193255672048000943147048318476914900615642879727829065439053716369348578867804043810676102934713808869736186285662586866878414638634730580408000971170056843582283180078050802057907381776715282760761179065242622878672946419240809656453865187557860836784227703271238795552900493513385141744308232218390781231582945304256463473149175642425211563714351204861001566251504780625445864621546267174349819084379373110145889311658051406530135442896450457836100447889083884850334809409466048070428864937112938937094443468604886069132259990880825156936504861342508681664818955405595224096452644288838401927635472798111925299163682977957727849684437652534470844922816591556975616744812099766116495355051006204463434064755912982353537331005319470709941737420288635704414913151760964050725067038780527351749746022808552444156754856586130797320699286153958825759611266768816127721809428129458059039995386245217832433549587742133772634174897788249158920740027840605577006107994562232782640876207927505437502054783816003878503398620278867919073690054438829926754115156320216969175759190193254975915625069816649968650092179221260007207591085994392321504373338767170961358996817709051588617721709208801567877912735097315619280982603088316158844631271695675434889688093483215128029465442418150083751230330253723981918222579935482641267388152955503687364645158455258333314819719303612304035581628853913418645437223568551889744478120365533086404276656536432179722296686522713413701921322191606350446989363660292821462700511353012871797387250930791492026810628335718210089670690469097084135336654126223684220515778098788445722200567221288265024561110349713274357577373200532015530630531663365994779633628805147365833620322476079780095201184945873360201069728015356246311237948831250050331304494656153251156976520291886002821007235652696397033168625438946606666759834039645308040938805882027199384565957303608184091321931760773558225354201282185565051114087751927953660491712790619545359624217811771034049129697581879315371999534357580148691011353468658802766614568066631533399550143533438645655341681390301968982137865060610718207928636944696124883828565712682219209309463154084317682716708383077932817636104010710412061706369834730240233714209792178129461969268637298758850642217859139735404503345746583536552064135807113501533201351858675308243780303382294839478599483960956711273775589532602427000463594492054853024026033221906641330660914748583383547996844523441348975744346919264695707668085401669514938272276551453947136892945305753541318826580611865319109573929647912627998743354956065829750615587276777158991572387604256595562579606486251767048193887790783505689291824648570788478581684026555729139699898243733648794896037721893628920556934816007866453378713394108037464989294280005059256310259940031365518129238570941096433490278435881756670134437497197905775791811436724325755361111555403595450667039212511424412720389461483207481967963926857964269338788891581859148131708476394456165941037378926647153033551185942485186781726293780147115150715417810081386133307286422923684611331094471442534104985355625832621500031393419950039035191551183012919561834944977766906883956620201543503151559196257024537720973546287691927083855734390994502410569107596229530138874883701692603065032132266130940395145724941355927149921185193370519759477031518217001949804979464111283719671314747675591185335558674994875584268111360803238151666409093093627266369385953605043130393424374590462937639506529003640390370932911162587319252989132486738563595060720495731104545533484001857527137615498857896775579815148221304388562081640913807324229094554667036769587229503382868253129762450698061213406038600822547283788205631178426549072872129302747487941395853649500501339228197522227898308661525894537026818881331158102847821574117604101987476765043236124782738708009114396624568812119157655445020117432554961252764265464154394188240858929307671910292670698555142501493138457881902409258217583414253430791992799246466621968361871377104422627183336734551805387871038661140935167557819875269882606112017622525445479975635216315674904846266444477224630270894453678650055447455889477513425337273433652157901774321549771939970833799641788795120240252819987804629951679378546337488367371433738846517347017678562846555906715483646815729400146133835815918592875494109649232122208305492077379506338324543879599274000869897634788362958481634819526875592327781128882409697101150920075557222084841217396765935932504589558565060218809212923300424765785325356412287332498553030102900343372041025558632425709684098760185051662009274667618269758973050407088076711199189366615676092868716052108599032064455949360693313163650402232164111726559995720028339944295153356550110173777621591768225291823928157934006255913494163558365429575646107312419526692210249633728679187072074482491533802675672156174859594390009807221572607587721218028974922329668922260141065786068547957235393563802642558558737491409653699120482536730817358296205403086813684954720922262600138654231030179729190773803588437623649256494566631844041954850909748106067701728826475785693853824606187041202008752895261833531687091319133326726221965378744707738701539448260591486826772371261865220065389284639435343716927295828710451727429206851844963551017384002835305660057471993220136637828852049153583432399887951722478446060685838359211753278515088004743894839260645431047769745786486763098009520882415336200321254980726683546520800208904531983167445220589564739843685261280392213826963991385869425725792358598411091937001070013160238885592195088566115040592921094642681269835296663586023986252480748267013706903826449704676215852265034445220088848370164500673534987283683848746283234087345179570452127197590942204031180012566262006943697007781778369627360236640401449381797671386464753572832337134233136455530503805220127691558761094503033441324779477767245030169481788736937616151888129401504816384883804709353960718751087727882350294637719726267446372785490274117567591033601389106259831870600248858196319914528042267075527687114433618018471041784196129794091877302773325533290729734397084987596612842369748551324533842067831632076252947299552388423331415915766517264553607213633116081816160879565350271485749684738919420443714646994267340461747405873896015936591428499173440521598927773588029471595815504211655985425856158624284410044036062355409660601415875633328764020121550729899505630541161150980638709812289158092448016991149779254369343305027570673183614294914349372006380313907945133266741853966429224485355056498739780644527617146710505282786465770460881533093495281560047115696801116145991383478993579731628413616705485412989833216414550128780265955941030185164374601012495445365483444013315616940770588476158900893822254224428477474131924500582794693598180283198568540062002088631129700190527933071558508665468576904270082231032232348851732840542499139624403194764830831765595363145272313762271158475738245335180207229160263960912053276081296005100336840172939915247763555871197801454979125518989585732263582757418224013893329343341666767040159557832333402234518869964487476360412779288950640209960542632319662992441542392401015534031255572129869194097439157230698326860994826456972468186520515065805661245925228953599265252124048464269484176976882719469764420180143699789893821144486338161572878608974224420656372642913286115192052258374991851579011838327171467386203705905184777382102998961634065739281528942124211252033938614357972429863928122844947566780179873018230815810327967083353137399113925063775235765852704203889837875730314859658256767326308652094745646286798293523243130214942506703869849804173321093559121753410956125476499179842053629174340775595764910696142389198961355574570358237493727532294006184566509916869496774982291893952056335506959900010250227659209267590803034005814258395812786633659973865614292483263932802094240583060039501187037685442647106364800842932516308774382689730413875985894648733204709095814021794143192696530775553565801160200068293490306990629626418555371077570892458420055285590695034382639052719324103874568270471270662416255187369686161195934161512235149692145970844237559672386123814243215063891213860978216884319845442667015792496855188441131346175665365942780956761642740612257872428598984799514223365101567552119595489883113113803564059597934044236700221314556216347930354605803089712984863973883539308008715487157100631479451961172301514737577959774750079879292263520715026404511036295769141146987161621263834580155827160910992866117685910101631263456799103386254393819584682731690542472948132740002369469410997931579645008506522215253838283892304434089314154551006288051277111776803516699838329652497782925896381392074486485949148505504525443009676974640066463241718120967660506377885326644333536659276791029819263002384527904851457796816478390169706117888072329482892797616203389524301472476439019886884836857258560087246006417661274031769471346872971566261143411856780061662264368621081888916367292160738487777209634001370550344262399343357340672230825285547489832013661002574849953090230390302930429329717331607773979117436364132470937070088561162330658581846951496113276654634393564129680837011774355289488246083296828031885219532641749993518136332525488434625123185628726408436394867831100203807915616566358564492544526997206869345490169760768568391218415662467399068139886833672170610669671929444364097046330509313121092961375755836627454387091262497819944967252651912294842891609338213693303896124920952636923779600301572814526321550411334482656759566361409037718126765467657419325490023129764331090730707450373758753843753625810753605685662554975527513584292361518420924794889859155390985224695335752226361188548792169872168692424310300645242574021394405901657392399009835362552194522293790942650829079550729659625422348419007436728852437856378090950731533037762652710487014876550287817947249375064513249022523263916674043753911484577166772132846772470443485151881157590880504296573868347888895045752855355808016158972369994929128409380993340917812047802342559408642514627724401862031350932041480452215675996827239914649012927418140278399694585358084752138458775438287645641732234077184405279329181480340856172813853351144924452535029670284127314190686655737502208487476095585355479188819441357296902891697072484612082084237146667794719198237561190124027524656876318290742748278186886818458587146184148835169662565766085539753676259797556674256439679973893957279346330915217085302072365721469447045594904592458132559494649911264382786542192689947760525946619592646833749163207071952346636367167031178450183716416147773978326441867125941633275451920133573144155445510961834842035898054300860843688692172022107219976337420194745077272567538655174953771823692723497110071473122103165990629333807066075852849628661719884799893417040111588901560135895993839107562219035173253118000045469949025153836980208816081907357053845175022800309356273627457645865755951993581043072624132605818502935847164472070152748165063168137522008358264983718751248211763659122303464924117963441743830124615474460150608996979654125950709509264024861018574601926201533223405430737584240142732619860881613508171681558665042086258829352131078212111773911942258567514596889848763617845938733324406398248302414411361537725996870272000401162533653205252676615163483111688509394659513480936070525509102061206312895545378071773868483167222486521807984996783469336434173070193614758134611103799536464030103543373166802728299255062082522092538066656839572526781238764618361011477188422456696435548027292943041632765423303000339428748084057551887349404355285483970178226003435429725827735076709039940258821698866743392415186865173654702195876981760765555826558920085889996171174772975642937699452188194052324921970060670125003449570873988969477158457971286946820328457587206803678825606219197327984124801625918904208311942188602457157886093511540748473439003289997989965138926011766911188765262096866540669924012147093960251779356935662902381559416348005555572116716497016893453130671446274327644246648993459063259616512941762830173974134591889291681732590113836954466614220085350893227986293968677987711357281925910390661354207032773883216506262313820907810056020207570998327463726615084324774427259506384234419931848700557920677749739073728891794812170488272012540522919898332970407418332282782290508973097367143268584556667146248752689160758734107903018134062563915416306301508455506876679710728294406258833797498071149004023101744652874515660734271811390894061193455068227823002520895154640717298591899435057663102115745041752169597819757428571653671828835130411608827421301071648136442510323879551324554941262289293143357249695986654812186596998741001073485680198000748725086860870611624415324831353216628575806936698155819848186722765974639857485485278883990409751584124948217409884042387501446377883447484569229225774997963993364650972391984550517573881615201923141435039516220858560338527602601230331578761217958872168857629071305523911037958386581903872657685550896691871138207506600867958793048085554448812089332064334355141556421901136005307463630846913819192782111310632885885631924365075576889300403608809032405771437979321631044111192958532206863070250612415408438631518809325944933557860385300279392166677394971254644025305182050319616738204034909042187140576398032749478737597902789224654407614805871893808788689234039821294870043434399871930412163549194162095873415993276479395858848344536718552205464492804471531548595499940979041697974606075424096776891760946734641025896155894886923977121674758900158003253722485262569882986588764490090320932645729049565807909729597596391257904509092256011411611935880138297122847574232878185478034310568038780746118459308170937629605437376742776081696537667846291561503375040031453558878355676100700990832846666541860050962125123906547510088793252504249098742301729936450295677671980647749248150878804591600589051720686309972865437908311379668833364957570063295328902961065567500127879434285815423019788439234604876773045426125469985260641569919762671643153537270002601653917478127144742513602299855606531216279336304040410746221607000007361892475337499049266368746631327515162595702420809646548845032238513603346987813487560279123185438163312115765273315020147936864332861165407447901561762683635198689222940068903445756298241898558364373106787378742802486324653830032272661938018362356689734697859025061536621033601128369929771232690240613187077850080728889253214989788500965766935553660665810407132685903140817823419225704010324291572327798323994726770797249858287490396668979525802529885541455839902679349957903038890143307071097060394030588246544842053794903752633836784351006073704992324276623288434193460821478463835571218768520210125965614937271430139291400655028763758655519503967859604360239625843851390839811822177784685400888711685409621360596710135654410185326435465881241246090348242235028587919038853568276893374688074882900848801058145677857330208969853109990707184130770492444576835059838612231136767443519488226118822577530831657148947499537966855498202177089538503987888664968617437175581707625656457249694467059011836805646164442056712881490846385121759147556322431003287715842889287045585548427853110870846605219984619128206062326202260267048109286007669203906128672845174524840612604269691589498117246559808654973843051893630948508978305625890616708166894497177336289892486001759612877473814398058892261643807843093311553469019695369351064037884665187575557030385809626781685775809213505439902355183304165358653406845117030906197710142101457936995077770013177495998007591668223685325522269822263327035196107543996024040476715484706392416213677026234200223579310608535094748824254552416746068105537656760981483195828836203763086656423799984544136997213397091204286216573062932012916173006150941293163908388380094086391574968205180078211418615743347840556161359143274352006110598436302992638309274256965020912989429531623025391202384802008073538673096775090655505780302927497123887687589009056881015902283140994105990409677020636645650533533403078176879433184383896538625100168780254349579102784714163223712289533643643140860593380014739235351771218149402951785741671478504983023024259559524252484706468092310048051931016679430635287374907243269246566846346393351647848850253656056264044094792886017950460665868436651369738297389448094494723332515867354677415335833538319240911607345707784570670809825168819628225605987915942784665795194344266308339015598512619004089267748540241025942448719294934079300550187362293008943474796117568548592618632750886298122647965938987168130663289011359584200015028887620947065134275090467149266833543627680041742041447276436034734939957565420181492683029404957611836321757376722021734347121808442084289230580980930543035257194578431681984620008082279533310334918237841363910674891963989175870456121755725058075538680446317798547362200277977376415304382321666582048716341833852369665471501688642880006864947691502166730364320194560331527470145267847309473907481794498491677465599001906802172267409513607484498491532347873558549409011073967244956841747963477159708171156739039160941338747457841031992215437295601552243121418609699297628740780257369568762474555789395826637446192630728681431172294205170754656297212536032173755767739626179703828021241189073005906172254587415085061809953293492324663838037090337129034922108381774770141636779960426407019902866963997192430324195028698255079925485363682021915356994522920654178254321689642479366184165692887589425803970881074528187329697694234980893445168751701460725273513517482389532209430132826753388531771739358635868509374934473868672021488735665320085532458821194061109776871731706131629459477726264075989682441779314235899214398713016492539880303334015034431080330421271307356218204829328637016280416511998661957137534457130852054688023104878378522415097357997426875008705199408560222727970916394882590867323754197531864051736970418494371507985493386658905167404521949651088215825526071351143000018970422243414629904379185457601083629132747504153101410353633067599578496942552799922920252319250602582774005471522352953822409007950934680855436689770009010941844109903750454313271913392874082724873662351139479791932196041584340877335715257641391307275938753601840762470681848721013517437143210512263969051105291223306249160437488451910112169630845593333331374385526668816399406644867689356972348327798373932797275484552576732569137824594670369841786737279585104866963410027373006533081989272279077083430620623345381509796289940910661956051146146318341539897425952286772829497663107629639928277410799948219444614733550323746384242286621358792009991861051497313474768936677179690727294077199792921689646753680833732074129201089426940936187358431820256673452245162171431963013129253264083718555546528935743306587930728378120317184063454838866137659885992915809588918545384212689159563762285450031553776422963092500524765148200041333691913321327940456339645903683510657619340823140197476970534606606078436978657212033700912867081903543313882668075256577257291347219137909026245425273140392247019974372207667837660439725027505360905946207774675728251788565794036175725175554257647791550608992632991030233926119904666964700141130531127377396860974082865177205390968179795331618734649793763600420099950937871455509833073765551724259454772155442326504486644949985606612737361499876573832042430712027943150843929574794330738552920254613650781485834354452037696716755848364350939787081990209168154019081755190397736745224247233492505951756704108131126990647966315213051109585021566539490670584565337007332963617068239314726413749412159508042099588244304537512230080917821110411772481998367500738109055140069383988457592467018732302720221939131710454171324238365761348126704804691619128802731242543854426919267836479848133642050198013145258538692770822182844619270189625475210256090328368479585205872290603668898980891973545165342104919530163023442456436697603422490932755948752888430113065754133458359740945995632457132308077119240295890463927415516342289039785410556575974439327600841558139158467200305153856492913439068941218129718640199779936341192272285261802619703034043153832454415986990525183884089341535800840047142136748914798906866495995143908739834184617732502496572448782360347517010890130460167188120488352736412418271891403981104445172092507846640971879997107071609852069401630466388999154595500428790410414092935387557494975751063335167283301541117619311945828143119728871395909467726892238955767526693589617550595139082173098127500793931226213028512614455240380633373437390109185452496725974065453593867264267768707871794038659626130483386451431223975270079402076123880445986397343944715278851743361764252460056664066460352931963031726754475899536066416894806803744645672695967508155224644552842442181254463767247320402868956351421083714930852553730726374100655956322753198895824775716526861930055343700877819081073393058609927205591199681234145241285681983225032276645617774288171141018010635980603466206208295560928002099261941557603535714884036592461659535260545934183180721155404879858040281601661819164363580383620532103404501608537534869608169666279320968334984533690186431154070310681862926035730181126491616453557780407478943138196556901918273164162969199664610976310299438284725247625924015976726812099750582842430447513838894646906132544079056381294666615881345859963024024361579783187217455783313284654312946071581242222751498615216541508387905014524095295438616148306408477855714844863019362650899851195033172741915799140569258220637058817114995098778525975604704954438910236065533736690465989426421112066969885832902761867820791400307316164266018281530834748184113277245952814575482124452850217468805709759119324427346072204267529269649077167004841627455408492616530842333511599850319236461547187232173929840134821291616034353505074732237211052742206584636983980687876457005528224612062263068600125028721982337577808542101072384562097322909242500974355275401642307837466017444554172484348055660968507661115485876439929103900116233584249301755371015654377712132967736142558987600031299435300737998772263657663025879742249096393838761079166104580899100091901821233614328877973273024151034865915636205254660053141425236865309497443263176586741991209077324177643548469230839072862467785333808193878172705951113396671377382538645855560250021152612325816053037562776727917693799398052004089824580022229815737755149485808062825278776617527165798392047737201081060421750215599528060987395640989087472862950846344709578937182201356037537316133404207961030026142418297340638367938492636190076176566564868251132514699974846152810371149675409405214946396161965419971534026392676591520363120684947918560169423570702503532087556001326189922444898470347884168628838905838700512234296013876059662108316120530981020914049762741922460669914916344591375663883138990513656076924676106287262775357970359497195265762438831610399420000383991763048114999808177946542469018109785107730146832052726561657415994137532704655174112824609125750135350742378082786252819653501320112839979057151380277132675972663139063430268095328802360314251427695467063916270697590984567529417723404147983927958802855985811513101361729860159052749134297050096531676563201790460107759755697990866723945355259988260353896182141843980255453598460458461827417259122233622130838963610245597584423460851053645502974226120553865661079624792017540377448664891928045376688796636082351717094780830780669912158841581031815370995949322864281672463841927328580904291067098063093233393913002345414209318390834855431633788587097559605704339608019048980202752633538915964139622156865444047717392112194321919425445350112111038666878857074666549985094925970255448497341700700522348442628428332970257552255139345193592922635664041864649449681740221979190509092143266347232641626505237970466046892678499026686440487174173053670598000063068073887656064424021482042974934349920778258435115264809123784056230545242612111962912256989303903046071118336057761284345018211180819388898604173406193540828259009715626492428093552422106592705064713650966843593987877419240152526093910878740047652608401076807397834365419523595195384233825849809582155397833855047803083832203788290397126379888019867988215896645986284789516600663867125334734363304998776013080746000534872774231270897291386831067106067928753669876096805116896157541068087524362232939347936145704971562526748243143960950738840966175711487967837018487595520791877592338011184207913818730572666195003170792674600272360367600928840756449282719393906141049353135507302711227238912954312196205421765276003505757854392800161658091484973685129449085337774140154623200060079919342142743573942201942510236040043143859450272699111758406667660158400046970725328902759455819274812381861535490510723264916060985840267723686619214975954985208461294638582117608834561177466795557435218104525955101687732838454205873299625937126091621936957198321749022211034613782315947348742978391155576429641238236175580036493710179549585765520155250849975495086948378122587648997767421484959470164933922484434274396271164985059146319907973446773094130637885726558736700533909545639709400319485449925830825666383356182483025127997340438890425450474610543858262576019627301157061390425349463377760285305390301478034746712071852784770099376430777152399269100396283850450615210066881573491350299086664228639639067637752814793643634661664502625056028449700310757232290650580378469277133064166490335081329646811981492172929835370998115315512127475771999740470937636794633058210539439823362570384638587117439865285429070843587230460377672597810057972850774011973751140174595725131624365989187739605164262029102238202755740457464854879099751057797238043316305863409484410510323226806373229697028065481276006774082707067259427063573383178134397115373617499700417200691478537135972213550347226594068807654413246235764641049248424314854013559907509223541606261323479114283705064308587720291592924414610758532994213849756379377299791548977390512137537635752430250859051738050362704344050143755272184483524689294713899254164624325860159883819337744420410122012063437106870691356797384522913290644525835509745015642837573722826395970757217909949506872796850853098287266193305777082383779314549035691943017855863434841875964370880388796005235278349025710491790906861479108472714928286671765633466625988065434723974649534917895755709577684217506570658397791071120263464835177138124104518328684619946919732255865617927539980050660326221468273962045016074168877665216922787941656202622115829540560924732817046944699519268100699333092659755082307624024276538949353537859186135874522010608993983280069505828606946553544621407707820583585058058877766724390609819544015176791954830474703826562528091667006526896757810078689657761676243740907646737393132526477404950937792705991591433106871388294193705933262662442680295113077302490230684750322006828975111229668251441703313556626293727003142424713691845467911224443227291190512042215368724329197028018512678596979967477298393252658917230409218032795166333959230283763632951504482456078217926862363003387787438525394475480795469887101083762976928799917519556836359380262640491862571808248348385393390925497783611403287476698904823026036340443527748738270674864003074474940480646566694104045989433435558213153422639396592464543167932309682245201978311073350987068078044625159880079389250445884212456934684705203869310714746763941128210492551650249766715024504529083336064125172788964824944633756486065739347489527818183744758331087792461447802475834819814939163452537543733058032582495617819495560472930994970465695383634312748409296594982307303639082601655756181476394021553693282038207253431803446581006587124363340043210532738676451630124757184475000202610156490180395413692556390616654194420942235527893652729147563631285488225551497847499950630350368906579841980688888008838265817861283376678706139149450911449633353353675161432391160737991034422363120736897777443729791277055825298708915495463031023197407522717256798927996712682685237869541907138865053866236318671279647872492615758464539536129160224850031068914091878158630903416594608639957229195340931045383749921434218348597589204367023586216741123592906010580101789961163721171461966354298825241154646914251008571445620096777142872682249387860448079443519000455180343001442858721050556464112349686495514451516775935767846842221094903313867504198231941140778312469045153650687702347591347536013148135720457956294279442397499852717215027670328432162764228185100584680992598312420726882338764689530966686847262482061885892811229315983779031364833053769977573398665053624559593018058692654554736490465568944060115808054322880323391350479629155796880624377594762647073644085324490476830645184057586588225841158704540486049800050008292297847869016576049711391661990834715744829742977977170426751017852389776517343055218387301845861249390163049535328239979526906670969857596057727834397793398838399342960764516053526142422780607783062969149797025824228329188643807094901462681487170390004019120096107923421052065148137043965677595418568642096022425535731261857737231726257119741183200895333796660761884830718000452573137823214007528647364536944315632093292499636517903518083802686442404285602619270322586152033611753894603279951751731275240234951187292255051510422802320935764211490341692752215707326397163959657259252783610203215108194099348490764851331542146788918731317721368696894304485190336079944073594277438437816684466891054768605470095526269531305289515864181054258842808666120903057370040033935173696592465401297458211566235687781442701321513335161214198728499706531895319397523539507142935089657540434425415623696128425751937144266795034993934994526592462701311766409792659484663751424107756012444578403567982198757224557898534264927462946953461659255709246758400546576244645949174717484731043592693481261274080284394001945123986925057928642876282898805549527270052191982708139558701266283023549109041732718216075200370645800226012959006396108193851451607414108530529920413209311997067825770939093289324630399668372476862932349218984266363235519982588600128238806330743381365616087643545627922886954557786222580637457840791764373221125148596027044309832385908632556690411927991401547576020625401123946885573483867383870769587018518563649601929781445623757364972648378704490187708288078413538011279174766015861935528686184718248380138684589982610805517935688173487435678694878818494624017410778516288506301056785202804572418037779278152128411526296248211415050149962681484427081229553309172937745645127879931961367964375714689007995769003461988686787866373918027862494226896069815261706766680013615086630832858971970061604882641205721521745344577603604185239946551709618359320091612685328492800490901494771078683430867885430632930742848748045363075484346522212256407303933277372171642854175076083796155405628178686997699448295680763314597278133588406567452399765099143265230371246353164490655739515305136921707787973612840102956114220933971252884395031322573476468012072826773319732581996496028984367338323171561248922945141416916506424861177152803964604741182127081412390346022655060734386852883489050750771005657058262719282854218892943655751557186110668463566409348057573271695444069246906815908202886245947100774721171121632892993959704265969637548583205899356837698507635287171151840475749265599737166333355274692998148899470310045013651139591452292622290913001560446462764536493617446405330036152131040816127469662261183801921687128013566782544575011326285951241716635922119658530687089647035448794460489970173318742477237076766077647185226964576724260557999698315289924363254646419513735717086615420813590438533943002600054429168359268416511404447822869591015945948581859800608135174580857535667848220195547798742933776296605145559815003673739666613196478414742038321622965276844356552576167829890261334505787234795620106512859707357497831860498049845772803151531702392078667319076803649657724774961776717819884086459914307723718825145270444159443752115470722415857526790567098985823753315913052979359512077906905614560073994856573707939324242986813671602962329463736770826947375997924089738136494251033156993076205394725135086229817009925948725201583055379058661959604690278424451671080406973222961567220832290401047181135957753989915949955636739432569407252215172269593928319195171414724497944397139425007348208244081554567183203066451918285641600691161997636717322507718276102449377835910844290034355627016643923221877795345237281838353765106885849027011764869041673758777386018577086235860040324117897300269477854997485236378902787421530778155461298645790550670764618376462080146050061139813863171854482569891413940935046420337491587142025346900637518790012047735120294814281321758748504551122532805637491895177781997043367984853111375435164713796366808566928127342173836098447757359371914052722259936035289350774100800765222654774440185055693606932875064359605967958577955469336328439032718113426051926649792245007164618720752048707237288354728011698689827301726296322454382551120862388400106059476318130705274467237824288696113715043249482059133914423228434883311320304558311699777958186663023983013058350825086734700529108531479927001210853430721173328351698183382329134491008565619790841225473282600242474171350807110184941569093475809399429149401325469426346567299258958766502567815731503645955843614640577080258291255722134355756261242495769831548877812501250211054432611351184141145462444760070993879210348484020610848881176693596386446465488106419956997485259915849636797740920809465088238376157863372856107018819605744082173633659887265103672701560858481860863823968545617385576316825185049813165050326794118028164506516772472238322329396372928462342697045589768369625217522763327041637841673639446914856988504234751037286029299090286297067813842247508612238480997425234974850783773873496003493273132835984860070714864576670735716295947756998078265811602517919493146185518722344203631414182721494019313673682058779942451486288744197584270595618961308839471931603042117545533309986147553986094581020640000421843878386749137197504220236646915685894371148116776194522448178364161581130056431153507360405900708028955516756724731965857002131151569355671959647421906555393821364864425307492765127351052230927136661307762627890487555015984169880025312680966102154677886288577982125076607366318765340357802434767917182023963931870784841477836587625667447726621615638760197355689430959296747095143609036359704757433740596815527467397097715517286400959216795109089244222833644204088633874076697982216124514725730173024846101682296215200907301776319018683244765259996208123691173427653432612087976581692400363255673325684074972084336111629951289378686587385296720259239644606751550432853531865422916186277923756147092836488604975533903630693911307748495062377686892811873984679044174469204994849998169130110950509569336411795975199783747455287826585994390590338294907132374582889645678389021239542512245141766422610303779103746302193158253224086861504381203294368524759479969031636502787122029556338216373333387663762929645867997560823413848699959817886252105996690564784588261600131177579523895311992421847318244113328960740941682874559493234764540723866615548502657772456761045617785022550059257544194903295441735253998660344624470109096209054522309361332518423795466671079599390410362645280775787371628570775642161895076692705542561718016310040420265290737707934415044562289658881492873237306356051787150141836935033008275716511955556428026910809861812446754714694371806014812318748061072744323924219698271296205254567671372307856164263824497963024171675625977390256804224052175114027980174094757405172180098980284407146635365594194727963879108576889831902315574217612967431067421162045785479414142131315543429418764359656270865670193127069165993389297212911938034078914133186246529393366587706953265653725604020558102627889589887162487829127940364748343485026974429288719208050504394601369459713869798630776210184759928021333653039360286946776363985772321432211882494234354402797366985561506468337472942804975583331565901157571511567045576579564064212124975436593713198289982998227322809089930658511135183175553307924254756064311804080159505396958605207434496682322362972777570360438894030050472011267619498445129395130889356405978830233410096971815673736005056460357258971069160517191200067947071783120583837056578691705996401694302481277710412447387916158941519170920286351981724311553106883462553017882992350946291627029775193984917944146442384922902735083629035485513992158160470959342988674938655953022692112616071221512458012649715826208079413953186547629793839317750535264643559341803091701145273284183284257659228998717492448795069984647135589324367874849290431187506382436780304278109940340261851611721731620535215249660539666021268315445751744962803091545186970665814717282120363646612265283197661617652813049088102488164736080680968897217838486951398500783042998970668446042559768810653844685816873221959745630064926924605607086802477560716697669863765443506373343751299189625903898459645711872157277691583324625547842594219714394262774881456520907450290761901438309241683586644529677991529572461632934336267147321570245072050467587789742164448277062392567514724720830477850767675846846289057369784137230454112409510520303938389469338688495260036883832428573723547605366584409217610699031223427192308493312587514369658031743301100082896527864880729592773817140100740880266911608310700303283421858826473495917486773373080050793321571588856071017870319999055867838570438290710312689594777672470990265631979266103083795927474659099635139048057045513423577594344994053000079727626838198712686958865407308468118367147448417686523721955341626950767129107604732106599023710257555513383402030426664997379071413665258337849207959249149767170725704984250436452300215805181640374681094836557711088840313945538503768207846436504500220132498855596825714362405041601703742114607072862450138691486097502902150692087136163581096631759347462068410470951416926608742586007993096389725641957614455198772486575607020262654820262073172838604902899813756270406272834245393483593088131734206451358788224631633767655966537228462143179998612415774134075739110491014557108269306688721640334935835755420493181828336597061324648296042485695540357541539139875451721173523101250613504564912034667545461887194186812866393664140872767821477970230328681957785417895989172362434931573558683520924448801367399369486981180758708263421897925710317843652632798772925552289254440244107709862672993484455045930617148965304617335538073043879178021006456299002180168000533733702508433457781675843501948596167067277085999194692568099834636876737820128173773507262755764484523111797115960908949384658867784022018885109796738090969339575202366400178880355402972901749397911949620738815327240908501587128006302792481167540978730653723913407824284292954221734343844798239987271546384485169030159644366123802282263765261198795378766268039900030234960702918162309933751528176568401273227557851348788668389965353163556232644198763707184969429627494017151027141996525458020959300822665054288945595807989988645866534652221868962683881012872179284403725808499428452482552746163460803240765727688107800162000306536710661234717686096450150779984765456249101693103811035661552518777638861606877316413093920403449512379957073368984367591493387278035537314267712276437552148827131308156404413709414832448522139233109934530973015053977969925631215887917281694582935034764093384363840567628692255206241542631567190990742439962156969907038172997594814093542437996050201877721260289557500502779550192855793802905917628660108843849044896345852692262145775976151703570603092498471441351379972479771834643245708068821408696877742733689607308361772410615154680323396925525339568810863015986327306440133993635307789150195638710424438393079811461706781837096916158180689283506823526481548132878936812925205993796016647480307614320651858445456393759883829739618412719911341139558796324524322067503016365356345459665845548738973283379368808844799570082715766842915391982060056016088812573444796000478125873349919737062899875428235677373121121186752156645926426269472415558112743401604297014335811264187808913276542156579784942363873141707133727879280548010184943344252855781430795042871039657111880466390941850113522505471813959285646583582944032850843787820874979736138061643661268434779596534692395957825126548989223726524113015825536190858586682241179921317800464860722044196953871275863269843745450075272784122412264723244094875598384991666495859347517373292109210421167254856211459896929960162070621806045183972783235967724553157859407158062817241198837635783586507592303602950553318170968724422560664065370414225722483936944257493731983973050167436935272662212097449396426220646501002159662097637866551393312824606002743217259710374000689609042376734474491063674758693977874708494217099976796816292116174778722574587095489302512707549994160655804772713473954340294626357070950631060126913395803238804598606001321738696875613689571800769744558327999571306748900525388364096324689033287547939315256674288681360862174053341067237119793116066579680701596797470492344600871129200844505287248684462457791007268794715338446168143472571896750894283690379413566831520776208337587848585849793454882342631602947313057394837462153826301420449818855532455342574381752829114050860371953457180418680433864225540860532033683277812179934878690547943468085823560356487459256443921694243112935933038304741884523626135435964927288176600957516090557739704302127832701073241409957453773019825033697199040871008609457030837166711979640336572510827884011806309692214973226741783073623223425109575922952575183130796670722214632294787506925561262142355494460623815122035064462738263738685237491524623189139235107959639530080485733885942251746981176842470788999850427025983757835507204375886080985323436542349157847709576092368423221474297958365541297752110306298477389611152833075968667459338188713227079962338513766308369268767352283001810618509577806531701695473031478018519700846637269879493521015896351723129709757775425611418500829344055089506503844377382020661946355144591442447480266634895462785672473293090237358838071119534389047420740879689532810846362174079698380000822732492579407980458239516412798282935227649490798245959282352566868798017470055693929371811542257033376345639831423738694715582699649451754557837253866810062246622629875995279419844786563767817236847525564517503452548271568737349761731407670767042842748153429912686019504764001515536672379608224990104688616926039669068404794788461952431197597387733743628384513059524320303800920690055555119726620111915292164550933159427076866435066241215947465914942175140647457249429791625557571294672057170424784557913441329132474819013873101731562934848162960033411385832281683478833032915911349857100074164867391040482919793941324517401763083895922903595990448687203599541566707429086628467353771123002414881749661750574081889639620262780402569766615028236260234820994165073561931411885385108553888453219060111642601041531172042013642547546410373143039972570725854956990079603992724356472138739807339221678605802555488052098082522161379566605929099150582129804359518623370887448149051597850308116151010141693608684826562930198482945361594873978318590492553022057230740036545894476128137725382364072255174897019842544424778205250469437031307954860511865746545825118354856867253904108438080065616204875872681294078796866585661924724379108562321157530396163506710407542894890704822546532425397510977288464561605965472060606349248965814631646457735177187365469957236827708390894320239277985944353572601831998186083231902747514571971493184239339293564645929504255515424795939812176955774286912862512035606833596264351808344206183789551027342254542161543520272306154562579869786472384490452029742849837299125255789638187362139760726819586433736844983835762696708109914881218754110960439582905560700785046645195477906594084780423823502922871433393760454700351991358923652076175017874269937005674454059744390924078862203735656678375508007624042341075550588275726491518295604659556806333155073257472447950037008899363247215089243762958966020439547665206903929407328038305851106040239197731447492755711307723395218838568755352061411245783889364248622774221006099025912605535059029218558810890810364822782641701779167633751331841773648470687398545533476416780053451149049965475549757447624259166596272573116836573859383776652684010699463953454190583449038161576008839839565442349827654528088733075746555234456475561688599983561512230536398344083045055707905531284337727869776328592734996735754742510817769155267387874578459965898881627176494330050736174585692389192310980557083318244530499824486956455696461274462192877950019997956288103873944457403405771667179746641041603074065955155368598392071298230887011951456057538887566876594408577271151340129703362363401728593458246348724593272391613988018241884317525272944043543318511376883716633488325313548224001778266860737366527526225154465992604999718091121470431724456043370327254363184336167365975484269675481599687258325661929516467646400909311511001729964177140155853257750095046051854636732212544884794415482504163402673895050042178126678117191219543640046680370038633089092752060596966492432020999069236055313788689336964613099568353354497219174218539006789977006316785649216040167329704472802228707671887421584640781100763503884111409329651538807594456017725847198277907153068030049654114575218911822711839907854171284731816503548338434341465318441594778091823226036685830771830455810325566473492043994592948864226517694670889916536002045952231541057183375851144389567034568521182056833912104133814461534265457324253610756325786079056513927414816385088074769004288781125833575479777145044876841767246402377606405016851604770172223067236749274662825447828188680814201577466183591865501231908207010305184001001966392079337009396517845526661399052799457489088534640867400183970965918248908429732290517251914432773854207426079781965246669475393571704159708924386317428917086910217803735809882750567528885597401103266130627819227160803370523105988568472464260507997616323396458210131880431645667715859522314235211467666885107178358881230975226047224554071483996277354512939969716691149258510003699551996900129304827327536748621422357732984959244165125865934011208628049645670400746206982528835624642827223480115231197147004820055067700721079415060222150461884072139896005485098934397863256672664395868553383697952257738201350229679503755137071898748794539763092190079575586756637455665580719757031303605605407355561080202948515377555091728091355677263670161306897732566233381814084127463561665351330200421022001383420789168616541916193714951417679400948536833191898879464842177598557362072448347823142265508142353426625390565155472239462533105324759920969364873064977876860888485074350683439848832590524524484118417211150733589245889354982992237634013084831879914362252680227809467383575361944271138164414253739521250556160904705234696090247877276319470338967542517717588054856031027403375117266653204657019206311973589845077020651699603800097079550963500242320706004634857265922480825168848664936090039814809002724987076467794093976682436134374729460253663590477709187603724088813178213270090505300148090689619118107128789808953019594537157023265463926523538395399355816502006245021512604615931553831603372942437458151697098059007381825755264098863382439840549667637665139296879843608183288162305054149892890068411229018538419660930978121437725432935067854465472398952132645577941287073889778480473470126914600850347948543870592994226849162570772837229194517534717166863941012698778325925131762270238160721655403232401645179347461806677812533402040197198580306993649158201040334843223180020280251614722060793088472937966933886643001892376428399101474936618835601866983194551801949711742940450877798003392967385941518553989583997661602989482821516660435702937785642682908098906487147554802790597518625073926650832430484423976425593431667181746966424519721075442269244008307693616523779381934460925841450578605154399065300074254911795996107811187527356209653192095722101394305259569580205650534964573241055423347308341974573975457032499371836395199238796281266027262446295178750432558113588975743430579726985709598401404648673239556728686851620578037038194107818384917642811465637005737442342798252261912216630296193859068210335564418665122797651518420689391629512645797332250416885354011221453353385150897384699523330082016804462697679174607138099866108135524753379177739657180301911269964690824555632052823183493846246706711061685368705995319224487007603865618562849265198339157844417215244779403961767871056422292553019190133199895270251527062665908042351740535900514610444145724687659704777233846024879710514390218528371313083300166272224585256122966071110983987000707094128222363293157030549483964318793808898967306292699154069273902969668241873257187289252223892338239511111733600212245552064339001681192548651578380429408588043775583309586285220245278294283128352829471671869482846754480626055892902771941596883897665405624979070704523660420496082585681502813267455997103408893155055299123892962986418378102189885506870993823984087362080905072628037806583634207863101692357103291106918225434631494215048495334076997768638747504269127852042297965800289945922624684431990533424385568084711676999666344981792536733160261799008248312040626900458895230382474145411120318299679956077859640593773734924316094044199691923592091289874802790130005080893502161705739691512454483722950932626955269266016064711696310848411898869726541683994431953691271505253134039592738570838687413813535990043233016832454560320128613829218959945198245454628765634564669525226356280402757203803080381474939761913536326265169779414549658600064475991178644365354679654223891984903267779314296982959669806466831970237454302714237477637733879934529024076356380944239535414467081986731974956250490129215043535350013205042075195034709392733594075338625239023039501479853173595348498059078743458413807022467368426780405992816668250763440340243773750187283578779677191516664582152982329228006619386952821276345644238610588030798179883694462959973093333028404193697116958873785005019916250404534183957235972451583842053282918896219153962748617852022563136112536174957823225667261262589902404072295499601819752658333348546122028807760514058630428190784359705410711813738771635891980368106860241996999655787490227471410161392852571259893686264095553948190031383620239012922628553449165113440841845877964312644853391937130745433517280862385503281976865133154981363037963462889289088817562478159897494507267343092215295381394133178182286391642387281970534629550971132666360984265995957052428620067415763407169057120637294550987895842715133069445283024474082348324726223511637251511486112538607008334860080584951156223122496726958380585791285964912788822051152276535790091578975278387512217222584200671116276028174615059159705780410156869364700579315673897369575274689021168738332302745317015737361150567078788487746872694643769665665160632011470857607578562368903177603563487579863537907009781187790188592183403081408053290951157787814811616972030533626586674356724019107292781578356895904354246215736647459715351363373695913386667172211043731740570745649454618186479985903094817925659939125568549816824042363981902065342120110486383780537761182139017373432966441807862875098344143532306660055608571320166958493334239801710136547244815050341428679064165330178899288579123763992921197624187078799509772952072670868610414134217542518590289938127420826695921083644948134735647650045679326495078813751650059568187534483760026362817518347213171814136404526168423680081777365386024698975060974995926650971918938666466463914718676402135497524177881435182646713549283085006528524455093457720932881797615841875741409686382453939568100961310314229475306782357908257406817648646969544031488744780696982849764180719247706175504464062092046513408068270862802440993419984429850493229043340116345255573743242368472080845595794114328130253927779559530647912911072163797740446084468702805174997251114921565032727800687286264478489204778745560167032090381624330441661957745862960939727929569348495202060992150239033334637733742542422115981308832977275927462705595040881941219093517617711249936894157869770033437514571012744526106049718817735864346834581494654212026324417861952961777912105083224472865853352000118395994328278467725609724000866188595352570422700786835756311525133501087777457960727580653918723151747184124464056335970472792814900390791637074999394221242234084758931099025014265799952847668391089883415192301702386753938888077296725641113144292461784922914173237128506740114458240311326438255910514991528428090237065300933496196833725444035442003816181761071346944733591744105656350628014380551638699206065972984305976650994451531351908010895973083194290581469000902229710450561148355806764042007642170838426321801245427798862861036072464005673875629966611983429394582085967519817163998552640361041827059207845885746718791591643202623866081889107538393301503714401051514651309548711101188642199449852046844870621273106238591039325239442934445105787376696138686509012089737204380071696661150518295068794668315818676336574318796734137073764221107349894022018354945678324600474571279231717749456955466949797356893331510335355168434720847720559471847036003970872077876525455833882649716211856232417629773613244217228986961482610610097797277567789378941725581401417919291833194083587087798635796839925542178729069286802485470350268218985093770983473616550811281634418632622059641637893182854910037290054645902604598733497504379956549399697637113206904971569767075448066014577212726719498343191085025798369487250176862629312254818265743300289098907765573802164481166969063046368289120579901758285905182330984163833255346583036566075550735555184508090584533276249030547667129715477370631862978077393875392942114015601210307505504187698431018612487938541781969628144078047700105036328080338283148620662850635215810855483486201654698535429295108656452716133819021822482701642765926154834257793562465293413647941717321071372875769892313389299195026411518014529811190388173132133656185852077398147362812763894384783490455063219567438952762821565520902707913258376205117111550969784183088303408822113810710214045188903751253399595436699459277328125375439641776030312106929986032903191811047528439083374346269683849985420892953116566598262119031760303420101236557869581001415156904015904688639032428395025551253395780429967293474580740725240508217215546363102775004686723538165125826769760789782819574614197890618768702070609109604120441002968007998290056113194878205525388474610754921583626136312966862603717686309066982380022485476928415496709699020308748234049081869265835503960324641626201408995359612989186292240586826852360859175120340228893350147432713503238318491535109759405325366803775329773493943152134117417942747425563612784640956662001770265662409317707094054293277614795878308867927931645265492585726740065613916604837335220247287496871980135808803729447504844800211098244527362589321269391409660153066197432506911917888313872758973364943383461881277800251872307737136863082064448019315674650876782421566289540631638344338102138856691850263958784730250878063149547629984952446185208473007258638480971043572704319408592547276530861794613468769348251408877045127731086519476006279929916574572579141939774734251326600925482913544324748048772958834464532180877934621537499965581644895254396342345118960517267308610496972637946258011363726054518823635734592600065939261471532194437347431088837223876398578871490705052872725989124000089771418239325807627449419185258402747273704417350134348934942675649157747429109811850387565427103469582973158777460924750498882961259360335208162689266059039347553139672074068557264368349591297307661725923316554259872263497143467982096287658614499833024700931640914493563537418241173092557536857036216746791854182386719380870263074131374407915597086055558414863294454817959098992005525289612248103867214597181974226670741263934811707563079753543631271034988672647506826618337548303501499597653693557339286386797522280985417152449128155821806374450388799243020721785952839140603079043359359735922621343167172107434051058113240262779825506278876549284503683671584350514347755687518988337949909187634700083719146321553217209260938785952402374053633082614725223879243374907151598976393231216847109936836182491015071336705955627866260965667429078361501674118060361847586938802397560603639494422717268536115534569654039842669418148432990192424046161877869320132144960052431749961866920567691651079917472892927706391055045325631084078712928070896908487652900104286154432010874432279022260284489380257001104452722565328081971985984910997010014897531423648764570893496009203287651186262443670061981274121917217053942011372615537106758600299099042376947973726628351635649998500309356706997463979628073284535999527901391062016345280860329383561569257731975512465782548824321484587936472342995059823725181164693623955953600275834445464901043017832458032979697387938654156919420273155622208949206474105105160069240591181258935537546812215326075482789482796334783432673367549006070016788208147858693251509728192454536648529000524459106114030665691558175683671481567410021068864977237875597059094365471156893547461477253814421014495425461186075732081128016820350585567174523072449743369369060016425732961217541311154866534106344009673309754414525264154966947005070986347678699204606939778538755977364172539764830585953356833729941024842156379590425812134200804807884698378310915189766480455604860379304491908867437123636840602025456416744267458680499615371442663239760822049744159094611768781303356805674192540724329679345821452182013988938242114806400297573640659935983075153512717673818055474625699514871455046738536123351319041324118091498918266070055644788570067387782075522697848903389875682025157875456740672233287808120685732917162260846114941688065310550082595573927841450547911651426460311319932735157652779890436045727837555289407553604476795111443409545052167582445775917761685543874592457950739377221825362339596543998656633038788981148185720748564622874252843110022797230213177596599532709411306655439861163094479955549414882892647690570289454212176773505907596448050988250609563662882856721818047616420241459001606174057135042200596448666802643585853100947631303462704165378014205211173389519121511804486048408174348905185151572258583237683882343501416614361041226230907829796916327774950203934735870300359273560946384048665011436103116632272982888981616049914775979430674743522904525745155918439118663433598716493387447150491801761313504792343154706892961721065932842174117491341779966220723057523611620349956541453324106082872899444052736019864909303300162544451479636426952818329084863932271874301789444151844812859285456319344628235169638671925476588931045520744154066003455319008032374757660713570203970113021818724123622749360663238204770637355811966268873100926599881411355734224905767406061398566447363772295108303423391675956124355199893395917222591574378085694367491509188761975653302200726021025193397558466634328612134772882643120216646359556580649160680019937953401150163444837287982859250147587431967137083730835817185745815650034024919353607043646865521248885146340089238863940573171057276772988415634971686212622680306829297359368459732673916309457846186110311162946219540733247462619509350325065033463378668895866696796528479987281444251000215695160282962642584796603084833223110788350664624925817327384400413806250003287047079775496877450851606361055042546333618205543078932787284077887197342535052712680746317034143886593231721565681506755013855635606570806179802138800512232376862658768203194764171954979143616677284398357157826998841805839095395133285881351873178041737265381963430755164452731788769305598175098062276177957573077979328675497343433753718763272020499676281101881309454631249696078757820777806003479020280131975778924998439668426963487387711795370336397262979242614656786645028860946107709225035701547423157779947586018936986237402887498431312901346256078229012137445081686641068907828928155629426625060848835924750898597234930491729738596025270015712590004097815629249610265357527967233157688360401244256124945349795379817347842904302782232232096627157490802668178384217706569473755566635506258737682119012659631344011477531240341431922654196507115659807910397939401365583522185629133700708801803783391329875332987817426992957576786545244737338696265849397163158124222489668807148144042611704532409852783909883567230054031112516374643676720396169454263223169186253965847028167073221196445522658470722217360977860465836069185779365914371142668123807558177454486889886773021922951946589562760962594329340836944510957281066592271521943242804908436613085474410301322205719811617523604763169027716925213356775091965158499199056209150852886699877221801899091199782036244812518865790379825647126416761216737620989472540858836108310486380731892446300853316540014581247070173826078111726380361670559597523904989127401821303810304925568603626271597668193930780873195617877754568075081252022058499545954531262803517430670299173098844947100834374997871316518772953753307855607035193002053156730289676004603406433023989346922576825691122996951124663665154931360280599390508269249622924031999826197742604201335508051840861297190679090877157595401343942462104242769969833100625504721200554381431541273780857221669675689379286579163767223099066788633463863575823102530268617298696678274179353334730443263269627690889573727667025962155463522951466100674198401662015985888346710473142067068343813123388542645505692473319073463089080847086843945496482434498490449440397959575410772331516709465671894299366814031661725733706063849703264737601444870607812264663577835195179422326147085417433084051453722959916330024627330405542052083754395730153961281562282150118966607848893907041225407916734640770581916164039375974577522129463278803433329624766808680841250734108754716626130001438812091538170329565018070793218531455467581056450787649182818235544950054456221612305574452054855583225053273793741885451394481403310954819133879731387267714728248421813424838977396876139970322781845849656535170729736418064560260579826936902274141780467452359223461458350259587566737746542913898137509888174724729779712838518670627291032275558703269167201743199750422578555996756022152509393996346549358047350017827514700025594766210700014450438678897687036734071424048488533517853584860381029166817234518601012113343238179510962608394772311126411547892880381049425558029105678178007844072509094795161437429979561046219759009431662207545202185082732805733606311222906706363110719363196736811129812709027374805515615073083888235112874999833884196222353149412054043206803187776981936583637489411297951188644919024907280895947376226960834034036085310231158464306594059187266844358184341310059924243996508272079269127441699925856280348222868321501492971841307833466307536827658810401519941601303265811229763953928059734836644451453033350641213484552504430548478305109091983627256299881296275474677424256154666320655253459465482068166253197154695149996041233734500327188819656307045349044594665223911850104755783294905050820561421017914142282070773982605616960095492464269532706413197604030473488620959408838574386614722232831154343699834094286537105649634086408145460004407227528487799932681050714685758206672260272139495418471613669536247562214724313708104059213572921802823816582962395923864158621999977336959942421363674132576006623256393156692481545714104239632859512661580950066027437614037970062434035221443964250666979807752280406778283779119472553880204346488570711876405977592343272714510246027558265558328217368701135469020920594623555697717006206989730209720820562720257704231507169279133528196139513544951843438234377516390690826529867161934029790442729898157872084024351045265572498978025646513989075420322318443843190156836287260296655963899962602926421936886236849148779553226243615245934362554495404164958305807309244870301648809472808854646882619011312728217824303079190724718587623578473317073469079652193063854044188897906947091912340071144462970540485591650371568423072491879923363700780334898994408876187666019085558094670599867323728393515945258635256553986851538727166591797523500442146020248631164233952655732347282534627469219764993373314734863351871508703129197798616751839195743102162870882041758191259177952600938625786790087783980409977499224809786361059478410964702748044026427169200450679894544799203805396313071458845840407542486671950249634027037566668645370121318697418156132650568355263769887442081486625340992229038408515605611647689639511784942406760608822573612790191668344916512982402130775480366533470954454228600985017511842651531187941278340703028834188910779348984416299284090831425006448546471511449184269509469289642479062489264036797992678888813565639339252473515633391006877677667376498847706114104799078130192574353421082560983753787612349546390105736558249037996849362679036012387549520538827005626032511416838248561429058729378886672068410875623754556911307907288464824549906166181709890694389851569273296977922195347227243052535487391204270683893874993661112704628164528247310397537216707307303724044473929628108728990351924034585859948862599304763155445008798161568103413724393164386365745239101745036300041920720054039083925122940457424536643767150876098305990916742122033072138980994966217985294590607962428961408583454669063145900068442228726163726342701729595374829411232708966086800327531651900244384999737811594713020514715516279735559987805673705539010756414841389337620469747473969976658513044026974158954767444475488596344105315163972972661344493304484003928899385985702551616400043758981990839395523012682051761339919446513346124454588987802203916428630210388722778836326267474566358008471677562086375384310731850395170996499158846027324964495547985957894171460089569658503857245859301635118882409721460784420614612094829009408779455709918631413489691793059635329820016156056592557230659422043494924897175400435202421343746117674203149538561161254695620661379943198497039322447548547887969976484313006871854790949733376339444440085490680340643134057139429235061713889126546064133055179982085395731955567431873275826025248698918072714875262061908096344450828770392718109277988328664629048619092365440558638692696486484362676901043899095808762588485678136608322206394654410730122492863115426276038568169687570320147468131899933927639415149124317842901869629071612522650776612135980102387416458413924508875436349757714404595900278301606491900360116329526082193924671138235509681695104363471707922170490826892995944798188583519952122337121914999719397007596653395871932512347578564333973676800583767543675886989328337303306942442805560156816600723587031088159320407785419448819919606924476969740211459510695743848281709142091726135331210812265589017166018457330834358505666215685984100311121043931220525736590606189578164345519542822781247988729047284307681457230121419295253674520664660014486863543132028608622732515443525349545754117973857234457661221063442824747278354017951358824842994316451554936178376363978234501112664839945662596137189469725931378554876809810506055292137086173123562826636108332788335578520939161385179657075931423852966523271769297690999223769360426964790597755516593469403517360748352828534681778500768544892057074985930156776344724366290077482421263141632227857213156713987131706085762550509360032963373832000282836521966659460534596168125068250483181145008501925876825477163804471388640677923507793897181002938739993735523016990914651149388935344919563187516530980743709141956269194396675194863307566262313823968674542947874150169620083648714829070584451146063766629029943959932154880289262303784586979085844766122552332000160219114866072598966274124445221616879094406703251323021922120243235334118763648401577235543436146757515105573446989808192464227778225828593241381189211255940950527778572360344105463903146963518119516463875913376450632485326074010471230665108762665869599439499334905709674851517289734774706013489951714040347311532291506323439878141537407202338619356033279564883461677802140959367461384946390214699975768747752649345496838609221867775010159311453084906889000132317756731828871847693142719407097179407691237343620944087790588436770966480687371160108998435021718867863467949099273324781635654716636261007710312073847576423964262890133432297156729734221114072182743784382451642870272284301285998914860937812037392925955732786421204516970357157676400858704213434959103846678649427815058626557465571975496225866049632804673393238801265205994242454501596577742350095411775871067268974847231980981702688341452801618944779444883750175410071598469130032090909414538685026664565482421709317506694760069583818986104417368177938909260801045552199040713689575927837473085967388323133257042516623205121027316643515776446901193122298139009347398022655473623649258770251530037270558408875096143380473847322679277060848442713715179980710403164835025642008928972254141548471800199395563545154315610175644282167932111369168141879676035132807943805851161783298776536244699102045404942375314220185229125182523536167302672529250587213741744728031981294130369560496849882480051533770269474670970117124796822443692905804504813131597006762027783602990224463193779570496023942074616521449832868589559659088911775124656555134646204502174664600925238584748949338686146876596666309770424384023023356325243016226346860184298798859497529159901481185951369936507277254537889673981115474513225400662048294884961806565429719008224925917059041366810372840507508084967290519192994480582154787320550830238390767335920921845265816855680734525430032693162815916955271086879432933844436890114958645558577440805611982945389425308009098387533437122553629188777347757182581106903080489224216183206423031548823306135794247235258818422036805980807781324849306013685246008382594959878540910792030510724466099906224882249908198565886809227415081481754408204332317421452650872369529239550896397806961228800870013470237207456628836968985381969643906696532375943421033697277341553999068223130824719890524159255521359818477182238003939915933881256440131403208244000728890589599177364994079516460746786068094844894714055677317097538826618406703783172601122315654358246730714844746249393998197607744039392901989760348368804355830642663907478496888593246048382910550054363136766557786751359203146064173472981786680540718520555362511251617554476120719419178803840764883552464564770635821954071261644900709184248594967437669634934937686000078677176790600574082344445854778197314846469952956549296176170125362673153691076257341328297416288260940634606340153430868458508614788224657644983630191691033934980525471166680831789363878512552613851071831061545751410332484337877587645519021502422868943811951441485944432327097135145835385658260754223402795866014408337011136875706518226572220627354295342384647005505675476930484936053888290083868745605226131316056757543162745387027097167315207594537641073771859494705156394032632830514890078404810596217817271083802308266538405889048410808920170547689913554336325183384152022046745678595688927568023855134833032676978708186689726890879379883641153568363650002740287367149931315834265904724190771501060333943238065947767157775794303700487232868057135393052862551004307896483140921214630771831561292536458298303999293165206636296847517552299014223408119655250032369436009917114353080775573744765017549039272522359648615144270519140303281213429203806084153336064570395436227046005883656548870128234169448153061606337711457545645360343702971110698313104960795628153427029687951695697481574641891767291799531200775559531660466988041600170407520510287960177262477771347989653423672694600528961153711268706543749221903388420816598042975847227187470927154899578977293831862689975155081537536303745478250784545795000964108858425590235694437001481850353701175058463199045661811679234286943821365062425930101720143259769056345907056157356512293415802566992565482946486913584910837701003328288048962004470741153798081698690913941508886521819845366818708226879510669838046709986080450301737948367464758496372791924746686150314675465315201113204390771756878608015218199554618145352655230911541025594141467717864691137765472499243279284822153769529904461031312848708380748858851727411171949089018810332994296816751710707699610157236319031919421385772598467533548861959739104557149127156411717195093186853384142558506543513834115505846660677473583854464387066308927359434800134434595858461600425897631056482948650379571631396424712591095666147898521129783909615489361905532858542429005510320824899007737980482964583501573034578598153584610089470499336715473564678998429761687442697431638568907107230899644934250733018166469028352676383039712703393600713200979889609475451590983380408478346693105233459120580473422370257488388661741413835858553319545624012335227054724979711841702063941970709270929742226552012374398780388225627388469189971076551199929070689553186720092442790265511698849932702390337612036174665851844777985134513090384240573137908122854926627871954557494893203388586726401083294860001026086960137649435643077339652282379516512575988235049288697062530399737072698471798549125099257993767476772817601364846530877375558379716514118195425669311958458189702952182611115464884594651276213894443137306296085684704102759690694580895138704303092263320041807710415532862000324169238064569743069579283070550606948901906194534587056937087362680660772761960876550627305579399741224906301928243252984341561330457942220043583115725529474215014471100691585234629359139772706376488645087737739905121551549268649332504889510459977248540102703986387465947863707922480731324212857540628609067878283943718235068412964230896266450778032756623561446922684377689228740793672881731235931157579041928149442289611855585183983968489688543836990491642279261829633797038714360120994028914197765129331163526371078832528077478956177338107317589810814706366671588014517607131753876080087099580156331917686072095818190087119914835166346879545427864391107480646853602587441830968581751596740565097010001245191223970066633097400936321354571794873492586166879422486089347596589932130263667213227002334987166329736347130673628338563562600434988380339369111347688019911084120865642254226977751512760450419902160931014211410120989062179438318063937719532793060543329026476022723016588900730199768615430289065824414726545608779855799433991101734618437073564250049436065227476609627748297826982349166431383218275033995280775727356211868209571483328174839087424027883443827191913815178966625358693999167460726977169075665262109999938713908716637627559607785558522003155637863490485078980126216514155108309083971106867972135913074069213899640544184680041872786102576593983373328762812118935218127931057842994203201997161991104509348341816619104158308804447384292706477265657830856363613140958000804194557498543376344345318761329251882406027755924231084000513829704294971601126975442754443011723115785283736131425915906815223912979287665285559470598633324604837211461318361676847889997392296772104757626097883771563836978373863672820997314312696424970173352014692674415068737273171536270869689819232803025962003444339883495977638120914301750712748119027525328739733212572871949340852969693272816824737404722427822123045666169594117459778523677428470503694263579001557029464156095606141413435138708588619841517411489698741351915322775152169476395724381152423650213713313213477636315861688126667090194784459224042787887009490645998994850433547144794389909673918038870930583214387401857621906598374504967427838975478429822652372591458350640711946701347935324340070601928733957882486298307311323042924569784251207157800065614158072117093499224460981515185314891547143227695234821846357018220329386730998464818914316700614326235919679059030711697253457016311206592352094617546308261980475020990891595764735405151772134119927263232490055340285476305221784095591902113592863086447117257765512362671469740810083562842203160253332518827828878430578644932206391898265041693898999022926716770188506890518104858008485990908265179980935374716569818581518744295475272170508821146462563901394775983366057344970439676538294446076053795613286486388653849972853110524672378419320270545391191579900788428391791833863550194804214741694158482370248238812176438510119136429395116198693819578784566096547730313056424822860956053773966993133381923669744933534877454000483811030655287090738075878462072703227741904448085584527279639037276862386979904622241038416304702943385658507134668115335318420599198570772087592673839400829828149448606728264503692084029649525725845284116965410581906170033565087313463772531871139639701624647788392066316392208469532650945022562339622519156060346418354411282384171731568493703639623512579540716627170419095076212101326796595824177408093223910705485448005882786682979987194760761478322086013957988328800793393885813329719733910593905198037386205120409021997220920642110929224776721531907005808010474746851478495389270824212990729696602792325229129475376460154405073701058277644484455880234204567084757548543383948260165152208198942796452503794909081131762984799238130441117269318787572654833022000883035185166985020916447024824355063504252486567546020654517775555984391290830405893622673998839888720591849192336402450820172389992896236048079509436753081476638908374271605091784605747795123094805155071716816560600902628150270527516829298362238833441974581984098924777547270037266765376997828731738144994595406782070735986359257279716001137134899194039739502910443330300264205725323240866260883477159345288277581184709716685376749442121482811095918630206390822859889275940814430779809114390083033638364254953129463589194667310211488329045156994134644160971209823612835521720254179360052228539256757444432221225102860044931253893886873035048811013061293875376214176797864177092848999575805461254616240077320089395080221059319305532975700894425979487102994138613973986330957416787091982319484119758195618284972211963723239186380315574073471823508590695710845957762936726945879441753844055306981112907259882308032086552728820999316825345832843759839134744834366245974046648118390090291134179492925413272841534322029189497296979983006207322607523482448500036535143594118964819765849547335741252004415836006548087769684734798873109302187503480048721351718875329685133136812275346107442274306818840428316164535257209458526668747520153990408773047079032548409429346396891823382223438435649175269288136651355855380063221343945532505360930384747173930571190652188077594613672393997070363307041494775395043861220585161625807908047097320509509323831506031213834269938268789756644712187930736332438700865153410631720560264674553980309831594080581554949649262640749153927004976247213959322875067294465341427063396220167586488810433907652186648731808286115827897504738235499190766529569166587827447603283634174341765839464517305099161990881354459003226070265868613450814161579925002694796876808953768096931719836061030332497296893968103227274727976668836828837004001944169904803146908739101606157209306603718507863890436823691877842108381313382920118747872771344864681857005010520480602132699799978311068014148056230042404626442612722727439732152677902889726271840481710608475868980565456693303811830775397222052916226505961955150209498083708233559046177442901433274584320973685746666097356837156520078052932990830739992335015921431170502225062741886358460503044162152159852196835234900011076723566638501657175381068506647610617431353539106836287078051027519749919249279231567348477536490464452873936317449704724263539643566939272507463655925238503689256401178065123642053931069754472362866383719717044831335429189976253607834014377518679767300004940851487850526523588373994286409603762178688631451528844555973810668867710834516572507407700230644941099618541224748963398446157140929089682139637685986013480337887734915955102698211086985987327026054049904512640693561253704957427605917849503267038646009138564750442008128730932606758610320064548294983837169972926011480834978526605826365487706518374863815962487002935555401283181547916162130279758632624054432634326120567750051788379655582807374484480458625361741804290232895738350595959124906213418625694813335957393414871663502142958731443955942585729637685990117367606579116755940418290251850840770620990384888021806522866603877587445542336009553701791813820522841652017928765813095379068427994288844335159307753079459465603907996445312963526796555525149218778364515323246750987328274506013808547972637590200052313699739834241306219635774741849587195452963084823983178174499223727365806205373036291772843903758290605408023529196136570553284141507441522806975977967357505391622185739243803421125268021965307089488684656532525656442898459465448469863748696802086725069180251645460692021718099960020776479838850345852785678694882918931162547721495741574064493369285153181768024695997331296062093875981800820866393868718901466908935928172309317757760633147916384668245179355110212881576847100723494700434943132422710335629819282315207539259283180664364784084260324287906494064273515037010441760705614252733653012877384477454696940409858212525392111489916417318882043666946985711960055370164630958163680577328937951671150020273248168531475356487768081429601517530009973408477556509570953550304229453286901082569866071066225456140067800087503814429348225087432616303524607283438689161480837028912322963130302959357932661668628265515193558066663920362002324021783678955505342423668840095385627847273263789323948422923059605958690657799425634252921752765845508115701390143952409149305912274144020272205404650693455105835274734909820304490543320961105594368368290247222020480946059138591412158741811508006706527758474579766028335818068579014069171609809353560456897189727051172955026106738065673955157476659381490017554019515652987214775269337441379947507291293662965396238124687190939680115395343758515638911209850191208109091230056976641864188452762475791082390598202003037277463923120193924094143458251188262722201658595448810896869227197690601457084731801329384568737740957132169709962831156364719631702522168009902561128850725556952740830920221368649491449638982244861736704306364296368350226423436165199234930670831782996004930721776864390255347828317468865163027535275828348461370556677416836533806174995270517765421519644275528288069991807524252221340758380502291633229103403761368339674302832542279946146641695508225117432146700059289104701234813769281332635673690484630458124002456147617648780342539946553317188170668003830578594581121105799564668112863308475987652041755294156806841867750472640134530965862922359004393694609102260611719396133203958479215140916883261440337344892860352704283515105138288064878591856475938705887850904459944223449944264552396735622420574146629736979131622534481630014430910262553314842188917915814076304089906918534904092992637162907913605546367521855330267242189574994880367328390605922531829880061912797185099843595701153778448777668561666258512678639946890773237879098022364661557301758181621896451123322597479653582600723568874227234142051180416591332448989794781964612698225491818727313204991329701168874605742995218924912113804959038649715573869352419975344950821640335024540860903649195475741920238841570840969182876238364596727810540744390067377825984482392104554444288760743919501239008305653214796382583181748165347367608837902485948080590171522281681446044256930689995712180379920231385726666050409337405946132108762014198950126648926428812705627553171976377809204602191826901679293247701954111091806068930242053150354015491787634607823315681385389081915471543860171379098990493691089171327208172157668473429351337386353219073423484832391472021271832376163527248481660098286685409895766888106600657380851767898280384782967644839012283205845793485241695304307302397359404143995426219637054192558913949530505668200788848545363201507952186428267965764693677511853157467371390674559712235742783957054757183029311406780829361216895106177694238417103562827645427411115124862759876111859702613366860478737984461573438463761901261727003490630300393298034752755157448878055948679182693685764777973143210166564384225725450325905731253751746233922342976012213875267010735188164908184021126257329462322322123807754134484996179690399502352259796984953729075270765587693695587465183274716466180937781123489788162902420568533530811389536873564911717463391971556263392170353132997149957694107923731372931709911301940052275637947168986651903140871058307613226703596752716433755813123469208627474709703577737423542991371972283557288269039912804452163393429888811914751654273658142302467022020689867519640897647865377290254472448094979887675272994112993001486690557481896021934277558501935931926220180297166312358008935197368675350016033892825931933616681873487392262414458969264912644155649724605006815182108025116500643408234608924028095347662015072574774243790618905131022942889820565052391386740959926773285844727171656745999006224572047200940538479720822980200591476871585008136294926109756323977672034268685370847203728891621305482361643218726852348581117810850120521474150757686833284659944759226407826335404247082841799357606072666564094003677711970241951772086539961318214395620121015372586855502981720452261752864041314974397628640388384435314169816242376822421817633276413865441743498903482926390902531347506457296076660143322451156356259795974444925653378032550180426133128360432612839060658881188590802128670209116810702643253579843567590107317202715753509603816927756590505966459159146583671635850594985112891431836432911219540291581114138671133711032753693319659660480203912778391016236047419750331078075733562557797264548341920315948736014867108929710190644511069821621737066166145282491294921739992622473328337339584616111320842132551756436315610801711907192600508147396794927213972096140880613596627765728636181567621029547779682608521860805794134037587220751846942167660394947325595381303040404651327485520194626297697030919677265732128912856024288401409035072194704893493040037846188990635836265436813202348506876315559504537404609152694805274052931076306952688789015603848735022188796838544697042545347479249541639879965047527107845237244703151353800383583741009487233067171102746170629394026272119207755959268346263975540082259691224483240255821466914353575123808508091150705768946903133433804676301775021826089716666079306330374346653219620465458695819899853561866456376738235941398523211465945758601522915660127191674175607523145025215531819649112433850874267784551372497039272896461780268579635131000128548508104724637088427134098292687558393950167347743630259230272851468216638977861425035791121362887719176486580058701413830466068849266078593717226100435586914354653264097917720276931491364470677872697617175062783648465482526716805469958329548877752369939717685310938273454340213996947094193696703963500438646697526317045716036820345107961803115981728952153668789560548562965021685125919806080947571428403985312802047116436395287889217547490525176925005936536683129029619679799276515923428522552866752070528437975306754645230582146407724602046002880549053521703907573963182662524448242655772243176851988983960994437435963594418504374184257568172856886631047617606311630874365543023217850081763833732985261701406705597675102813678698620634208010243733965426762774619527763071539326708545589381851185650927621005124383170525968571093064319888027113881201537997794100222816906776908465887965214813590026596116179497398743852424224025713193823184080983443206341612648436587654061891959323207783171176866771056228886872789717355043405646394260040844173639855476735684354198255899468074258097006578788656973489673629233387197103466563854127809252314039323238808604909313852112909844319333761602031969381381911121649639384839508083256426829270008699215111588755919446212677300966667515707382803333085535719116314775340482403545121693323532901778784394943822016066457539904380640921921043327176530738977647049453225018309715228421020703890911459656763868912266478078823913139034852846040099974907634997861330770981839922548678420590745005941795984030091913804934050439257460315093540309437778100174632980359965754785566048423878730183887718061377852356827476353664217683858907781535830619943251127051174215215646062265591981748738590225211527853692916792556226981780989263885986368014737203406842049316957374975707044180617440585273242281053391407371499178269501079971381646362348731760231639703039214155933227136148442257377035606852365002309942719759889380368671836012773284520522783968829444273840444727258786204772462394861115260713805459122020063023402209327942785314637743955843827090411352291974304291342354872991542408709997351838203283103832650271852946852366811439075102156001407076029089690450023526227249283791012938215685303591113641556152511011997784118432979434846754387118242181965543785677981087890538724305778838006004009673045681996447053873804583483431449442106179853403782984539227707784781964061844762574016722296208939453480331335937802083214429177650782887363320629352701150245271701683768385489790349565154958394342329216893786894542627584483196709310772493804510645189874515952719232088949762610998912630627573864241528472620845935263287056620015859599826047384815654730490843675704252202697271973799538622947264236682381197326729740860242353017488622253664779817033990464659683071738404993237004062818159211625669292183383670121569098020146074943619707853660889685621902057720107420539306135848873721051274235487684066826196310109371862722354202442489703958878071322195034305763550363591611290574263047016951438468575555580338752357470315449097370355376683627437227595285011540112718875490186790721068473571513430687425805943547784492680535813598245859207400769074942549189470359606806586604077478536027090949844590594805793147195046448236204977653141630395363867187951435820591413838254621125772174266701212547290568215121252588971816766207509047664323186944003056998961036079374830297565099267565772636491940552916683123566674469132624081970316101477385350300941292194044589658615060003265771099259189636462163205181895094366093986976068074171872144068649660410874169550969970694266037040306474055630382823708849632929560166252923365924888754385653608658037451105783202608913938155780134347799932128544406293123982413808488424072711407141692031228452409536012136612000926250516507477906752855536830895135618712203214370113113921268654216179059772092902393085850716633097330557441603224479902764204333007090183657844743267892004976299202708457097020299439641914946001653704591501738257548667808313710346837982540485079348004303336000391646333796466550907748582480835805080996150645485834951000036146920983062725240211989762052547433188985212501253369928365089288732346473245842725543294946613491774057177362640605082830605512027051491088529168594637781789510244469536391061712368917374526977035883935829680496462896675057148269609532463527688072723370978003783504288831278843605305317730627624593099922580175885406358558150839091675593021981672133697529232010196646252140670330687621159301748219827233790870923950510434314602906463146150100500777152810122386810692650321547231964273179276187825187301977191826159457529519410358491318970030689986319374052088299328826021819731992245155883257967501027336307014302053209591535495875734453909053103696442841353578788305430203729940135026895717852886342489710250122104332991801844589182602421483667665130199467788493706438736190708837995572552113772516404676856458502254631300417211082992458209017732624912096483127638253202394076987618123071283632699604247279160353736674874214671316953874974144151138322610439910260888214572417076895311730895289748836121245970253185822046239059972597344036694780113549979290094406796625836453206050652818486216076355454022666822832887906963996697467226938712755797106367165609136158378931813328604746588748537300855180252384255963509595778596590523475050884356653427809526895672129399905744512108960552621860630732597910945725394584579799625870037860541864120006850388455913164358018545814968036700790143846407557834502867823172099538416023303341475762172772434874115085206087655268543018836542821367971196247836661592218427794791808999266411281282414185368099193861383430456801954158129055375378071089911379394485900468014585935492215375496561871576354311780723612819031326184523202615332120335910905396007767683949613988827245337321360630889723183989198786209394404329641374401147379383303324141641030018743867753186759773877895011773292250614360274623181834725562943885589606289693156013405399386045059439926070446341176459597924109065360380796955873676089637602106477313642329390905608669759281447476937114904992252594831838888823458079814759292176484760257324107489383559211495065332146631427816285370034505391246323231883187057603817267092453553431766508231075824893750030962756410025162720284633347219452034716123021649290444001377411556239150446906546532372514485844176533443413776396707763372837601501177286173018872668219144936996697039855745555596805217364203244181278583240676092999813154597609636602071421364204158526164906247966965261331053795007367438702498909204347022805610203865518024317282038632165176885757294407537237121008015184680805915434156103169616035491400110740121849018318080140688312818189785849245587218539855076243481921310427843916398707897070475481285373830760601259896177953038989570501640611528675513820387340222095645176426560373493917938338448766247929940748729171475090294369106009918397154016411419033172410685909649845232653095803552001392039464330787245391178772466700240424424858111556558388513157839856855047878324144066778413340861869958272535743414688659713767969617526760137391967202704252307544467564229847967218101468601378724368878530947574743962128234458626105120064143400391043860954026619894708760156415001849154944038754876169571436643871310975275526282464587437623782836757595009086293113269061400133621149991354361710429730977384556049915250895671862213931217615659062903658670603757592680787429854138668232359430117321641398307406661239234633300423645209837395070919242340761759004980737187113880932347004887078241402819932877697442576949685895503008000268626463769119392944975677839379748720308466477104592667162102991730373048063934016124955557418292915145487860755322912820900438483884242267336543179572167900775867974768059509895124806837327839480690385000846421780934794427410281704639665274714427788961185040410231045549467926258806535901607318067567577253363816265421423873168983421617075940021030945623435641136315798010291560878191642896759364196521057572422541072236313926790995005781286280727067818839674052441732392228696699486594605666314648652063935766942945803756490808311163593662851149139964113557163955602900499001312072700847835701846567778826330826896257858021689714161056012492753929749685558935325221288629837238929520462564369281170567000802783899746031686158891536607065809600492019503985992835386372014217475959126357561476617519180074454646435950257085948129488985142285312567275078408069355085806217283601141359785218091626597798072814458202508110042382593781258120012993858910830892229856207975348944105989430443854229181011323194778834841204539341263038121041870619431837414908700716007278523499693472295415613495809843006932552226332531554255515804822361973751915245555235970333358060251752915544138631314108190933348799076989927691113767663863498642665585847675471562754102248996021438950070062062351235461245749806112636768813852075449806152882470993448981681354390607707533415283383292854668385163910280949358626926966275973877316168438616347650270384356047868604564927680114009558357784756047423105957569886039544962799543131495915243185199416445520194113920843697363301514599844231139912617379367047150488302199722307445850485719086508468345157304609083601954978668593679628454484079272752768396904795027099195977589783025162683149288606559499294341207630675727828234313977081054084093879842681130714782976169745351877744959403703619326997188256257112891028219233370984287002396344347632548950572059304284514146800470970140329828257684545608290773254167074947078678600327886149185550345036775969451575788349867781468626419590829310494767622638067727665722288001640317260157249585631082051085098226649406589066924736068200216273698398091651451101106197493457099714980916791281153122233322645449516552794983403821193921925787508870911564713775610241909899986571494084510833485087623972359190667990437197815024467491895841200522076771187379372696884492620389641583593608902079448394644929112271815571427144225854928292245701951593771211275549825277232764862109364905986927814788648489797235745076300570639950671990954534759695525751048040158564554179667449859968946238119279312529645806471728270867764416326905101949890150963386868378975189600993971215810881011545121176548063471653675665867477082195039648583166974763167882906607380978195517884951383096645133278666848950348556665852802405088958527700332708850597512784800523351184462917828016914188067882122208533717005110995179274652610996239027860770189002056948912968041237488814822282447317847012393133406884122839668174085569198219681230109109091871163521842581779902015081804177038116721880587111438047656513173079585554298523630503558632628777554053260084316902088607827276361263069622624737293036378189848134491691157601654465051606367005196912012514346259383989169530263224445490357384299795888968289030063020482204479297793076532558383976194547215869459406995025497873325231435317603749268000194489199940466828745998294552317808215222324919699810579501862731442201604794622647553353503557388933341818823402360993630935796723223613925904968967882358752124240817183935184611741747039602765408532178245331053361913286809847296622004310008724661413480713319792301484441267617101683479424863843750513169682417205224727561279765535613717850913643789058350200406838941319021685942209814727477427083415788615330490940541609052598934762633033401043693862894945722036159838746938151963286167056346340439932728183125744660515408463268988396889647325058449571899900408796638372384361419584254072751619517977754644572302254482625882820003065137694772811968552259121569454153838608243568579067378437893930823970351834961725960794303395797246356174675167034173715972720349063437155777941350643840853659100644766794579543217525201120583656109808825150936560997297492330386890877517530176311648157209090463661264655493522397089297951573240037035443540387555636248031662862615077282868906917668438089141929323527602308341899020640959634951542183044667885203021153154754536466765474677546768772954208407068817706443690682530093576114632052374764438743462828613725526805425743116469731888885119578063776216930923088012177035212049960478126384354298443596147975967430708336600075027464295593379352706858896323833312335420616838607908492156387220507128930936173161964848525013613572278861259948394891746691436997534484554365429019558612261178495502552492601031237691422762002311929511673949357948834341737214197101014809992868860821001766052305796721787087223245299734453093732775466421965811713501657562906565545526628893396283929444796457667971890299851855701746809874038201849236628809933790003225178806840807742360851377228486773344839854605122463461560996560054543847052503508069054061369433255738544020323666913647161235461465773871917155563485878944934069156167324895737941986989195079022895641485099642152503351109512733256082866687087448709352044623810677283291745947454699931641476749571696901455054306132039473609345584924850326038231727962885377134588342418302451789377880515612222145069281901203736426456922895683282523491917078700118798927650358817481094682334373904689625756875563925218345420751468136404853752966433232367874426986025869146833729639835648408058851115587594349312449088763280412062563140254536907823059930732043560528004296544194015657327696102153958292073119404139486783574970478802619619984321011723732742986304858673132155994809853175799834125130383074137553389791599092915793296031661165256737011439373199724193850416078299485621419726590823663907004539384002625652344818595272444376771619793815137329117951472519279029725966968009474253357800697822530601024440598801116685634573238711942111260394752801977162547118169324253966388638328789681278646927104488765607694682976012741269689956484077716416739909532151349921377443002304474300087225135718360504507319334768370602233401364821046284608637062440569273172424033115239029676039787808074620093181356855001631631401687777868901729404597337560833307541364772023927288785399193264128534340612228741163938801968915538040460931274638136618958002571624243558679074988597851048290977473565909196859774658398710496470503356257182625333043654775823355600401990590982729468328568970044348111846229196296187452317713064062844697889034545742133422556990929239049178743668078283551812741219318134103893630843075803905166011210390718770238789091969551508218920548454654418159386078375379439278195424184855607601420384379597520703236084190811539040781395020664269279670851119815758108394601507718951501713294441382004761415197712003150201487563534257443076299199071262172373827749782182313986147656379284929690773299579183660817173724672554898700810147184591243156422916327518431273106236568831837959618686447240733914468568108896461247703958854005997232765091077543086843813054658349512079334953710699685610150661555801237953288171506857787067861405801060332878946024938717344189191997303019898949083745603100176138483428220357139735314349060246899285553157912176297398780302258977709673658168415466426576247934888451738605072526914090932033190714951820097492811197826084661519407991273647605679326567081304273163709753589057098063682185722212338125099357349839358519873730302508158486178274267975883921926493765969042469139912129992305375809960782393651353793960572350322385844354699556866472621752373982683392317390414658922732303105556663069126020081018433098145168472403513083717506802229063649482893676560879115735126852350473449999630364665635733387319015982607856405736210744679210713285479315239049927990969462674344469808291279873259640796228904501861097698365918803829287591161228464892175204183543353846094302980551061789310367586776019915357718654623506510613201758918003765782081726245385906465514548245617736838665943847773307721639536115108770951605014326700103107576221115145830278141343966609678808214377620815896161423676708776131739924952545159037674909460320990986799595577717264319893596432744014426064628633262632338884888223888725206213788164173741605894077505253727207598151631245527292878369985905292029623133452685460202367089207386510668506243877020332371141866366040235515833921840940183590721375963307149187867160234605760978337874736523275313917633021428248940189694393958260732918431970044637899650233076749078797900724011167019920486419604916593335562361126810940117975246175795521806441525739693774821827177699633291646902000888452157207703678179251852437088181889823787473120805625371137277000402714447247795013690287251313943446777379365009325256132784622469825137888164653328206247486947586122706894113353707490738653214040503481213544765060122836502037110674320741420369306702980380488437593107141218366587016429823646138486730875466673031599833415279803579817345084655843401207125713190740223684786497376242606053460408582893299440044774536179832611515265669948969578391008027728679005241381442371489982664985887061363977638107319093568559817624832812203793294850536212244867126063000149351911138532879635245729258774528601826226138819548159666533281151118733586881840910995612905355060859008200811265768093571736224314972776131270855900361660070050090838963850983379166559384958970752183298670750544958969471942695307999164128855543047462904828577348976868054114790191615382116272406499197380898483837342791244668498033747942248015993050524481078804416219013841975472928897951545447608438102701814065065066565534739844518711261251287459385615500790547635959604990699175769362906766561960465415263095547325535992340964706349208239153564354708774064923170804385020869621561737488121933450020366331255482324910078704571566050726093483635939233427512646631964312903316604214287996034651365799978503360406264899212547997809603720386565378563779859643579305567156732981780563098517717830216964739971694653864884128702082856007557097383021869209355544721351739127815010181698257146561942051232626964507806356588203869887677377044367042972073871144046880089942692425805095853760748377289011679393686861394017146707979263650708103099047149246066361123556495241579644018243542262819835358205035761081834472956707186543237388946237261078648525733633649539139153822961673983409006322610409586408289529727833053273661285877534956992097095508795189241168471451233590391306065727712989949226232254201565112781994489027224891653990699533688630296960761812336709467967469710587856517874513584591482759173302371322227975558441411168443286317761138072080322967895081964986785628401978030338999193821557217753157288069169939941877210469237316094292671277845829654530024703426848402403436642768200116767785956483872948720357820204500488802933090646259794660194112896330285046403140120729969014870460331707545648654250415658584909628598106814564577047268459398011029236605691622031560577961410196242414758810805493499238089272097514825411668014607857550330487476803354573571758782110689570975960090620220259233694572934024376305077569743242025188581774712090959375599558718537798312584182002998148226208873267671861029142853253732923416750715482142707396848964845785425372423609030750267951201974171088202961250400321921397486706281703286254490789776823593593672721500188948017548559098892410086574343668656932614143324748697835167208176762303341934823563699348972809153748745205956730409278940148133092117122174997568546201735571109568269202638099026478357587988318221319191742810647611899801181062581949454376147747656272192682517842026960632825295932960222205382932370882878989955006180574442064131485270672670713562644485991203818461739206507645439557084601491021310056784597660945237368843638516400081627974434771018570883129687102388927954053923781174217846751749230408173007065407272584039829804626015588799825661166575261336707902308950402773496868993579747988862096955089562022037472454028731089318147318948783793788256727808801993732814135942527276105768704951625457982291521084102098757937304031782675458079870563231317687866696605424440433726825577721549540126110706084394330631712331325670247285955021817096037041432973187507336847173052552339770543314119444458761742115098290059186966532862900170331470436698147443833543851113913739366772059987814133328673125029382528599205151576493796718532732763426470275256080842322769257299328729631710904899393210507598088207983344692863561407249927919441500598130005063254072348435516110345817573412156104488649672167273537322619146611204819289771689838171066195954981202688675660217392606854180394561460706719980814557394774180386463418011813992970488444694000514419533851166067561970924456775585863887753670141529550559904741990299245497605142490439799300388209171623885478724929088633170155881478341834806478823259400432159654827741180874763073413712714909937684965856754309952762539838290338334079226318254786244571285345375784678422120232259739879412931479871495781706681942885217573626040897373471199849474041536820814908814528388697244185791284218506017463678432943088770512338230799902553686859373494082388121264577165492365435488789895172760243400766330802489365877971413990716083073611109028742046456984699136826429452611920534215723855635384504752888533284936973342244139632886467775377189279114925953472190994118762730096715468189926401502790543793746503103705320055252477794833754781452991979301129037793682402655507805705694522856663531037114573660899626734659804476769996049509747203650211896876280801530797794901038091810181780451510839394721333149703255985090860702135028035407398585651517759722252743921516426443883486510829352242146921110220893361773805453607691850984666799442626640531462041847869157513649913745494648847604470337568925230985271717702343328789118958298995948076642772921454373582407955833646375520761022066391425038786382280650824317990394944742327018322699311678318304662119731988812276468513495911848967732854468143581924192910742344996510887363781585010635182943907098236630541406075339159471251228925508556261645763547767023963123775207237709523843892938033485841431128488174490915557825306739606955417929704263099202180751101161753825586753616620011228044332708576596913882106985374277494177613710357066849818530723024931205716676251057060316840276719135812484837540896692793348871634240698303721603405447542362962860817636925720279487034534358178462542451245271975095975907070281544161862556866347727602327685268693225185448618157598861370066356208176740637854872553098579503296080795884751294140540582309094838787515846759574117436979111727424292344851573682215625339058165539670060875082033536033436014333552177976190718889036903659634678005065150243225638020516177050908347986127993860860984845863049506796249742448605914411275847208511080663006423118438774858325049384687162041480881850790072927212682470067882757689916424576602413421262297189030742580125721169298365158203478904517430194998495942345379613005553806044656717134707667228479486492447023639759090309344646957753709964457565148870670722857873463729712710137006073559484966439497304029100512418786200388726559242053141043285421442754213327996664093590462728456454614044945047311570272051677883850281920281710017511862349990017107843694030110362807162157686981139994103023430519902361052360147729183155377917620007048182733099364106336795761662013315072493330083543699541104917688987845628391511996905775121763845452242266740539426696142186085166466544387619640511085272768464114572437602766504828003416561110094583229945650392348644925943002212401179116431284058229334613839006887773074349320834672624969002683895144592877691059338364041887132678372949793678439695268956758802719904835895138192204783251156667279482271467886175394361969704929271680790725341885702579877153507598427619036251862449223701895320484622241994439352788280555574505348047475413506859022305628922651013527734782394084314842093811169506952844244678270304278333661050303312981492567692951314665801311564786708491128475252994236692776832615858836861969661201656420035805920031693607754843682901615293345375246805482773013225186393149990177911892708496838229561612729871648063047631492396152416478076869318005941376671159475932041985498170304936420342311841896990912362374380514404111812315729335648823025101005232912362366767414987508468534069737858753263512290041195812206018072512456669598520701320388814096445053129487498049834600526395935211624017858152630935834779968830382848155725273206182856910790306927653852289070157437325715300956082495786213583760801892966150828416287545774858228801040943335716936451501023941797967650531118735949830788194609944547893484485512643155512668354616495768043066466130825282051240826949743208187749821724451838394552181707007204915167955892706145812953235812263392864184159428408225538590268115391599452506364268639694727908269774435158735445548888082936871561956727488363814143827039507073515275274121226858954843853637979286161592931111098441727129948052638877157212821773319817448421061082160790155516653152331238518629107674757242250138480451117051114476740979588821184087008216122214170019197725544549564553810862540424893610125547303767278636564651882242369756203661189679748705206519689096523526506648266986958210933566720117405134200341705432773896142709691025820373480649276671762878787626587807150135010041698278279534929656253952555946209953242718802584783394802074919845025382833113044297425417598025140538453216576256528400360321195413868063107966379262699792730210927313707363371390662023010465216496134421826447302614042909484935159361222430612820499222450709305411980145449680030535223272285089388265629843028062532423132708228560639676611666078186082220473297878437963224488136881367978256972197866904050415253649432516285331512921981311389808904545576660660253649803830837320488159088090699707630176907988394429799346274731545414857905592474362914865745924110694917473739679845185293279837436231885486492140943796119025916609131762523667638713761767041524841006544356766836505875393264668413195904015711035459216750302287263779960097202658475156081011788369649572888336978022585111936680888845806454628273648265764899961455951123720138756959311331885121234138686025417096080483880693959505293193579106619164210674186397130070495343266931232421754645145120764470921708689899053978222406264431200721205593085013124951575994857642648328625592558756220706404624198219914574027297944594521317061938064799831966337703700872812460805529085142680306966972134183428030017728600897127490837801031289988646494692341472473013610806224254572254081129504811209356730742496151275937062460675551949926410531934290093487854518740095752749069045513148216570538206872155821958420882155074400432422844902868524077454560348861768767347039565360733193285313333173688228651418680589260481189431925002020284362264707105193862093981777255289015933202112484713163246751375052455565583795112511053712497973311506713841757432997705671008209420733868001592804648156771617385638148743822116261092981522908130271987397220581663927756816017396035250950885417469912298276760272202341977133726842855268269900438386352429661591555602930474675081877952402287629718599605929538571184541400472569499761993620557832493267500799001719964811588780851863022947243824262070509160992210319131371385300994235411253267129450136642142442153280112657280991111434213105870324491318030208427513636581824912288251404288185037611511517893508383651692827201721609359407013884826844906813567668353919660574815488282185277006801022900060791481539818106035727164159176889008282408650739601285023544507953904984666951241661473829385640512613354381458917258673388444259086130801902394692449272972329771569590124381258213694150043233778890711266257499826226196716996631469192160637942748203373164200142955289598930312004115877320996947640347032518511641543510153588716896676255953123796569886711958291014296086134873859305027347168958434770864548551110459148147977208119580930273152967654668718666034237239433566000530859027057567405758310077282552461030336323536462877773970042735463397499785976696009620155237989442195344704313021598710850230485470167929031283338355960085951032367786914996821536668977661603603442826757681523509020676444842534815286978165225433790178913669576142163737991119798965788287093187985269809701505477431204908531601986240790018242022100608749434450474894480228492306670794145404320228590989811545554965650173995988767429870532511370988392418423582136411959709689665351470765702879337413348427362322494974072345525270869799199214408715552639582143082566053206036972380841559962540340620454743337692681731753858612125554048431729010112863953661284499326944899779824778355949230902472670905927512366922600858624563934098918947793116450732833483101992334925595613346609258019594227495152699016471122664660505882528824948592408502647169979996402208850859724603660959100972422554048249975716743031745680499735455686717962559869511537023723832403831059638172515266679307653510899092386935856457133620089995353352389619468603613445646572179816094373995095194274768482905838875864386510729470903526461739066627833229577551675794480291572564560815897011681134453806265818731563013806961603266470039589149515853328583268423964701636166149504304065071598121933031667993460374212321693668074960225731068813377250654178741961544366229585528042526229871247443764875111442527263871690338282825279130766447043334281693850188373678572695788047645993068275504909800643404117535430991888140406119933425187481789206625776270100797691427784555914745732022286558357506595959428070376391409195121179525830697706408795807050642464349703959911748872259576058010817558792349958008416553265616366668824219398738593377693895012072169722645069858527696143698873269190228321619474571733379978274195675780976186677064426572054260008639224836137863958887359685590917530194252363722454639916432715806390296560223418244790239143442368626876640574111761045248648104353965976353046255222429957208839356921506482452786378522643321105953189547052731722465443788459887426716889031220695674289995293200993341514807754006710478465156922794268753202932545787677667310115382756928092182109301441869932010716013681664846740129851481296906682293130011310566402134214116334727259064326049904787066511684896141365187551001268241902484521372194001586350189332887386123977642825755638314086362696709362061611030583049036690062819376236897145299372680049835703913886807959823883601258165513183911418175527649128394087594113762129872129155506194310863972811865207868709424839250958366413845552282803980372473013662980332844915320459611765726062065725395896293352357489490462979516832980006179300066603670018001895445390558693706471663728952239270302192451497459017816631167646349215042385462428609190609395499454795477260097710407711383457441967498377576224765517248517027530248960594512355389354335011425514467598434422328661299405789924034506393769248062092530020381125946273081780115035999737893761909708749814636735082831770363502948090754932515553987968482721788354936820727870353323325090222208972328140866443419605461954469370686990437932755865794180223733973079741228563288244336438331094810805075171626086920658373946139310502627242277598343328001991323468913000430911328741120825828724754161294797450987605955752292922421938859258738907440152496325704254821534362494969761494682308773447008184535715484509901346925479301616633424532908040743811078246169506408149614017057425967930133290789559840798314253335479100089259289804705216952126711435451278086895948160681448302762771934873036782260101711644269386732721440109577673251443125844715191801570809365995263116768336720972251689059723104839791998223365816037637159277209324226529323034419671411657686307220587274311258315427652542524033430628314355310924733127588986273521264931124849472665069474368395367493980554542820171047283763152361027764278724772248207637424597089511835110435497975001802159066339039108506467683613871588590121431063716902160184651928958739992398379685810428694477845893377658181860953831215958685490993113703821954620799580948451724098080594039941988557636725181362397326227703139891738385484817206479422928720467153366674812978474767530127537391447243452948856763998858021348801937045384028836898637898461516916979156214170046823844158830435334062749928957107744587502927591053758978102076514734692479404859874063488642403985700901554878536416167265668802257229995796325522326612104464332061435507669586302803959058162883456068919625983534812410458744507379445595039662548691985511886020166188280514116646960150137498273699456663660161453460020931179125011415055770154190277890981326635039374109055823174891886319527546081029070588959396835662815323148186212579215104699713977987373396970800801812726394422451676407243176895203925711033189271298685709916045051381999564897540965135122863918190953982527305035668815831641547438565184112630679736002308347837038213433064497983727165699399755769123523092403566673342637775032847604210648334135274547353158833072677459759080513295764919427021955911769294045371721863180352156940074901048847470014917193074023599386484181987953587030767263433102040743943301885603714718016711901727282732762690023199256475189078650543421575965824325825345171664630174407635819600492788418350589265298806062604855169618885136998176935955534417615612671302448884386199867669504262830462927876146475513460996909179497398922913107055612127829410179734634694303398736379274736227962384177436275035291820216512005175304647434003819266040855510798808826819076409373207383769186839858544995466146464379320069541366926117725505547972160955628307986410531216030708612831367642060508281836718657866963416451024271135270963833995738767798976998724166105006303104102606564044468983563427716420047614893159153439185202468389131429132169900772436801339753555753802199648017808339079812323400028293169480730640145942739171495350722148869290379101716875382969469182945858428291098651575902761872352882444593471683147368909482747101625090028914836195655600156269194494072023432160265096552907353542140744284093661046225629132884793186973298624320870116713348529296655735517115624838005567722382971042241170682892548199517277037989566836044800066684657376469972070171926727797529918055124996642823193400594233256406033971731414377407181696311557220479509279420560273527917632620413473404846022235474660510459177760841264602196927121425434945147485154154143256582338820369412116220780316753213386345707189015221091649738553155262065693792448796077745725624058219595128807782181088086472759107548527225993638434064725994783067137395675166036712153991987668273595464313694267953157690035102959828174593573497597572023898487893768161682129245006513656843264404706050795325028993046682907241666955290752164642178940441172104252863040803707640759902177697008101958733254238926546012532701678411614471330396375217590592098982302820779885645777437391664570952085027362754401107861547083543987729137559836459699513077494912552743198335578224587706145541695568605856547837413280966262651276626113506538435851251874726319881624920271507078659861455494643882092574915355083540225937723880750599576090149218030445448406217312596207496489548340798494519496709593628994623473359207030504363770221919292155284701737466325595415671295502540700128983210680677108993742027126155313727907966391851312241030838592673072926161414087129818328305350250227855968438607870740840932147054739500523581519494200336666502209907145607030727581352018971470614529409196453334561025876799813742674941421980652068977632649082436808824873942058988425011304037646694347454026451612178265282283704817766275428054199682166316246376996188466982923214868216360786159690290688024627272993869514717819383016800948507794884736765185078082306420492057755193533777566136580627864772265979097477170524455551393303338027918404828434239241747687518381830542962325237494805646424994872717858801551338486831159683828260337261372202307614990173537534523035295771500766877478451818469174171262437082582398607088993992170849909294272728169907729388326987316677520396209406203131166643973158888901178770453838813154794523142580590090249257042389530674825230150479280386268211131366722947787038483780334172683476039745439825215296588632889491128751217677393569187005966455336353240222075819523842000560609706010157955871180914342193432670232686115522191654031683596831858276482930586860240775834237506969881518558012153994111359951037737119953674871181947699284380320875770174057907812752392508353793203811843070974063546923567244383864689574735742499613878022319841688571012285971170137252853351162281975967698156432898113369604158898060100633387157994598972772976527082388706227817543210654313708044346791950230412948526196072626763426761293855527289689790487661617769417815775673744850727967151139075696997756647860156516599736101365762197801383452950579785394247712385415243245623712153219312435197457398393549103849208266212697430428181205589688476642824291273808211776551473771421446173735292831303982203061205400282967002250645112297741597778906774124633210378001383663991502145116731728770519276358970400463297352483904364875991587511693960149797846480832526387484464753859226350365132618306172854188468577924376115471577352984477561076288212203470333221997266296279466549658892828128039446056416498883200543316885440930840323250523601871127048176423451513059971584369967983559546998473069534812639563752668733853912441338276606537101012772024207213210889984573696145196770243506704648437675928261118420886406829644365413536919192977691003377361424686977758590448981746750197732638852079860034430714835396404410948702604809934598601140946698424302416565047572774564043144864803892029952668714296998865554277923900412691133672012371874805186820893835975821639155116881431363412848626115410989688298539987434868093275969923410592708919721998818248854521494387750092121667328636064896709261771503754651925477093522791362218107107426554137521488684401582557046982230125806030059508804993836124005709119044578492720284868545072852563903657675775560074279673493798473649657307415080210808871629873383748849443697597810584500367271796209172566205081979389536978079731241912387376521170207762664332486223008035993203616764418372945675644248305263774673190442939984166636829046612375565615370879059261995201025436382389003381425603872517101543069886108958972486068437480872530270422082452416802799656110465877063506034905284660755296342973062903890130965470518198631595445025665050736813862806494291011358534016341822639878514145214103190984342142461435813556881174572672074508200203929141271299226116087262757458535540330390628285235442637872104054889921208908531145344402624432320550650315528815132275838273050834378874030439751907895293909682499045091015503829850998518807752605033204628165655529484151342471216420022821932973975983887977455913911856548169273239488365099779495851107009797730175558875916372070250504320706366954132877818611296836168424289117289631398379340518004518569634145191268593435606205362747395976189156106912754943309768525782389643961161749425765870934006804420061806765085533003566783914806439099241276367279050235035649700256142497238147662090540183573506671903321870483029006044196606617231321009914618267794788687180343412406730537771442893877169691462624689056430467298991995096112782737553894671720944027493828979975153522685136647593491193444162821748642403394354657377917269543734646617231216684179463381894253662683472545212103216720164391538007402944950735465243060800407055819418641929242372424352210676170053366889305754198151727166969804546276890851809048534401306142721751080126720702530697406344914434840995538552664373350578173649788220640650825369107448625235650865881522662852696536423009355711943946938738041747790489399117416232078359552460396584887477136989954041047363749970801175272862112922279811498620712728187309446583166346543317642258726788864860075792119703165713708414348438610185750440608230263674683699743480744473977341169950321617336705501302491224813219759109114586543866496794012018982314257668071128369805916712666325517967922894189002153624191456177293419240151283590072308940692787160244549203619887832177996197724304862042004717284248359381393313687333083645222018619003840355538491131064828220477712740476062731766016200061437921732069535060410330485528360479453520244512585230400975249496553609865636772363566719599474791859214831860502966757671030289303240759712877978475785386470498028783738830906982950990089225346593009371139353320773225900207956836392408930825119376231032363037338736803483611087685674937332033317901884498719230832134337422032644011134116079628860972836568167568760101520695898189362882785824172019322817018149318770331933592398254944082496693824212198116564173027840369316165190555167043904153007801590492507434633232269487512426432589015634252082394381015950052353717150688015242323017563448864797699082748463062804473967811124986373916443223165853861880836975545340506875526447302539941927153617545726523845985317495051792521948699808722839858786782864304922322819894434439552300866161127970266020466606215294939526403681257214641873364891688544549191885374943781224412354869262954841228130885892764638289632676866413282209878340643882592944695483925540108003288551086495700952047677818781341446335457301503015614141786078965907718456544368370994139860308316787637414528702227823747897638350259596797373443223667373325737309457637512269115759522488049370001366275664933460363725600484696344573822048416734150810742494619297694382872515765065743583903311786506273505164359932532687920499141998355923718284248850617671928597748496287105340897821081777400644696040273935827607537494705679273068516398935216531590161249833836197524376777322373045299486509063383998070093488001033288917206809157990745076828016478143102858447847466946645875609452192897195455637613421694491973176479841326691523758019936441686523116058523046593254381855535689448726033688616995953049361632633731563409285698626444763555270733516408373906937752645993955742487325634007122439714678598042412974710968194298858630640050308703731386418835102504584411928209879560262785652770336050987081514055922753103315823657231572015111728005433624447624554717908519134217182649917445755366587247056843708384584965798499795351476008504618424498493992768984153596919009102814993714054869248920453961337031094132214104876509785490206273275055146856105389375370159481821572021873165984016542478043047844237512742610655377631040809747381244139305827485427223320755695399303298689563225197380717717081188704331905436263685423481091950282165599796243175956120023201144642994966758393152295980932120456168217064274248170288578689409141825650740544501489350564467265160923255826107038647099142532118374286987971311599307870651150867921159537925426965837056949625202282392048474788996338716156475008031614062665216197539650615617681652727601241180944959745592259046464917464908235641708042185448499912662223669043552384424903065167560819563765034420145862883589303696197033599587626157907018316557026144186282596953244197871725624110269518124118431419398429261112302470172090113222604455354058332693923798214167126101548668325324047858742676312154136536664474447795454682602725632504862819400905076416830055957423621941568042948758597241063087725030239576138192222496650437504120765310412961721049921783478572112937122307990228831538475505835775578913448466304973986370779651293001301561985228986234363153006142929315135128895565438128826710397125046850946692212572626122409997526989308504734703533590986882595905832739258873958512082498538889725347092921330527187561986818010777513817214821548901971352197956798468053127690170641753866286143411779005579955317042666791195606880633934627340195926716931969661193695388263310942769468149872856214108000975351144754426718247351782274438260482436023084465646134936833731624247350027941474285860153403014012408484101087808612340863919968644150060774395761820311837900444851119793505368644738948656127098375558671085567205476047193444065231215327171848254401808825664346773071520084758815808465029972911067357166309754776872777698369884890347564042517395757535968997090724494542881065165953075003095843470061196707973011309359629830790268097016447798875459760473137917273853817465708111362776887550864618270977177353064427887250722519059566090313966558065819273087057205972258243065800062695426545828323151395181063153678826081554378440932055331197394490893269449658775034222588461160616106610664522373990557303305235489614692833899292891105542520613906791902313610626307585883696687573719929772080823639885425405597848065970673523164283615354797177091338162909731218803613696801080308684578428271369985489657743154709507387453146350139434507557096601801385760823200490581206198752157106008921374515670740742420763863643437207033830265239849615353162131798710207109255056416712093018816484084766784141007731469840770968071200050098863912900294419054476032876847473975744830577737917326327819943415850614722130145063356570574414610849944765273275222187797936797079948909085928363874330987444368284016536580945821020376535955767862054590260209013076479686906952044992348879397653241251107765739584455397060318568117211314241461123052409413868531340992817998509672803498539922342517170621023214785155563834323443672252264378073053076258795681135496030292310282931422308388067715536138432440294403575140706724259880243180414384643277004733266536095676917008332108643608362726861205417360792497040516897937509706754306542085153611531807982419022486035278824714239853391873697702005280053321683496973061667941984702481826999450832902174684986761075476843993922988883243896099233962205048289635113035728492144065776343058278303430179584839190842388721501360099079417302749068085502899513283000097464137528740139346680608556752937298824041921779064078809974973319998981447879308693922217717754973838288913540047118559061594383123400755737371657214951509500034249678312044620750185773633139861215272453200442702929616549316414492857775059992649098583431225834711040551000340223954780095325498811773750976235097146317393400459003348748042673549451510689793498436699667233728686450707519598881375937799437294265218307331193233456975728377596173641832902810827085644207289385508508688123234829356073904311034932051884547723692189379950597370219384618317382641483429146643966268012190270397633308356549404472194886982379550307069285540822144726781424657447905141381068245670787978466671704816939020127532380162139132634362517701847931054044340651776573368523233600787635936792454400092334296861167066163857959070179549048347544831858895731686375609485879210300181239817753166359948669898060877183705630490557899758085112943139342781688639678103868418476630467143416017863875888538841500457544690021798696231228406166179117332986777548462172660545387104834431124502935538819438272999183599387197421761679548955913125323430433812085175127543581359737017183071873076241856506398717503543256040671810311975332822629120802410217523116433250571889791563873802927721191016352874979787530535652458800831296573541065870692666293462969527559262851878054120632917150597724588078947767699196256828773529574618334453444206417976617381216697565976216689838741917905898458142524125621505734196590163785906810578349930483829443289960224121161891483147021451293599376700096213092062039870632096155269979121905166553452984229700395000977171369477789183743440818204125295604958873390732840981509123762216519465120310280332367339679500578594929163107449251545073811989261876546413776713939858417016943518376058613960999046619900275062573250697407570808474304993334512914036181922524955186813005915925511820982106552430583156228746991317132769258161681528138380098072331057687113314376852748362144003013339589852041863074578634299626542545422442760610431379458150219266935354887899173403467715934944147311558460046610737653743885143116737818855721793829520806215151222814292546652017729518765226231829216186040787020568207051794967667184524625100633344290878793894662608090050457666635738215290676306039922294030273867175655038538447919861465139990434331229311999318848198692624389807740047387615139772646438786320158043026050453107248411843544428313487848517428948619864599667370872903432133685054056406401021353499338103165073644459029237867007666007035563982500355478409891293644622702659077921486566575598150007300844589092509994093950291413165621045362308768285146524173384423601499460078151080100373272483532439704093677018314062210842249031031705511356901909647883729393661382554351704443867851566078083193561705677973615286129674060214408981413165912602208678910308391745870720276381352716413578228002922997863202179308068843595193618179279706342549819001996595924039396355074614293425055882457409387364435522267549603443534877932323325478523115245167286830079784705961496263563497869189828951483820452093237084121135014438298616042868360156465743384582106174051312123616544174551922355946174011006548006071732532578603779569110537354651338286443440580849055224090490913070314794643965589450471474418732019036251608761652221468489865561253825913308881335353455961488421664737070477945505769503043664300442959792753602805319174821765633713627308870322575363943640047958791481319491707672111002891920900124649094685826549072373392645927692438424198328116666492647737344532709219747708736548415154833616673778323179034298363313787676117826148440586156788168753455292095104159099695096696290761270233435948007668637560894341748865484160570022413476682351011449855304716892939022880452107897942113762356442862544208201110988251581480294394959180698279418882251464140444998144100239173925401900361485726933092912252337684698582945589491345108937361451364524181538171548747472273548472576063997275499928946307316038477065203011468740130693045592806805866761051750451598952864280194377523311137342796738131136835821566176508281213317748291276236131256619819044828382357406312435551704828314334709236847912327148552960723256328983378186552710768756944329649652269993184736815903496929910290890368602341241349088998276407755789720721496502877247372761975882285607063736992507034276998558119162708948087091113965572077146360161176655510221424567528856594563568663389093241313559102755038940808131623200699026820910408841499654318532016164046119305023964365558858449046597063997591929324849921097434491754718380893491571330949655689453305725456110064259538021010864752262314416292377024558755139734731053885648537962141562928909512594479696348710438183788029678723302002999654342261271423038923947550467935705337963237806396254368460110740735286971320539543149905534002177390445775707710200183147719324860772048548040734667674585242363092816678865729576672512635545037743911452469482052440266102203807956018092597117726905617222136812139112371490662513461855185880592452844769717465627496757463782568402323309611253801167764201627452617598790214858380870291188116039313813969508334083638592498114084271986464519647405450179554142756306303356036686056626619718345478013948173796545632109089149823185869391092084489682686366357486798884919946683562024387592123875723642355717613832058774318826380565812957436999325121156545624043136173272526403335012187110749808991193369462336635976360436934340954327384228082333544849039193973079316237473424176514753405072319424185849943972723930616157520918793482668329161385932789086206613080142498062184707857801974227643327011008642151518892011980298589645326721746242220607615716120709441754780876596175965026472567513415069387934150360444183922997914661026749840059786913208944754064205457195655656020636969762302501775462438699201256279614782968308960863479398107965326629933257418129660473050707364780960214786562901797758930705414814225381966670375826494644163036743314421908567473799719021059037756327133813105432662784641464570143791088074510629967663533950828909253323683900112892463190246494041748885185745773051548838984578718765748034666478939474068736189735278140259588118734327204022185432034761933006971300592321817012091714621066349662562522144626585311704274564104397606912287321707343157462636540656502019167737834132817885419074984867062541925287929723190331643553195810326110416481808564908037488144383571496577089765192389333253795799894575716132315233943656434982759495441909600748669934754534320946327901716932309782013792537575147788998591332153352933007949967984467532934245051680231104525851196449427200855198401263215600490429068890584778322123768766806122954544215262244466002218039033193316194900934775261353115368924556953552878495090769347929384256043178542508237110172245360499520903058027132046572186844110026640939962400511390180687132958420187062870377633007555343639424863494970277241189074171187057104064392962832765796435041483682573874171153123297820083571236796713011837188904021837328636111386396801020940924892820522831899413207651123456553625008542440633947302321529475916566531804294548982375817818617383396725694838950874270475407730035214611970214095208476175647707007261366949074764902276351639549703134170631867929117066252789232333215921865533017317029735932677002367862486208229849779696865535548174247458276005637728100169122960074918023400030272901018183475855222837230057543773524306361892170646383700765556539646365283982634270195035061640112857568008195923190922660824056556386642334057412300148256447233908380882544643320356963198270460003860010760550149351804972590673577468157264048136828527629711727885659456154974416539420652613482330851008630381188577202426544300656089193566891151893604249942191291852530877595799755698798110300936731804079308660929827222920186612424090900002221376086548311408291603209085734876719259582280647756550230522079419110033933604126017347564180043109475988471902268391481853915466524572323591467060869673113972962428555753319533622620658728711857667332271582449844983189256715336986899759710988629778705962774845106992169272525238887736322276635845302954626635574273065955293839359081617380775818130085990836325214211745994552321168436497718931617127881538929587819072676549415532055439282069170987373834170267635672814144682647729848078621046143937245068447051006252649998897838578487676031803744337115718949875267307371607914564070451224219050445172482144241435728253908110847009895063518971113980332901716927049141658443300482034016678524389469210082228695324728318634288013277520074587527006692407719518579273459367608868754871575492624644417898622796809125236363210419739906561188207215708404655568316656922748614270279184904389283370849927093950021096475631853126371593564524388540907421428546483568695877955191861504506994874950525714414831098687667129986491666554174521003984535200955283752953933935142697100585983319408212885478572189740334689668377101132656369885174057891735868641109710389034997237911465051279182463780975816287157344003435774936932578139395538992085034483874366028148508831825280607705576311062195981260148263821113605215742978298421795918097104997893768333858007268103429804936221792227553011291512048761979325356742246868637481711421964592986111603446891152263803169183052086264912914311249033764204153103647991282222871078211456560992149196414604954444611077485057526671744909705408507256549150246748241232570097497684246108479035581567429739902893005183260934029071565068088791284456908931964625471021981178687076910137383584157554054061734216936332686901809531000505825943252972953953829729200762891259588712755397280478718503292292977764578540474931277735657155248316688586784391548612784274646793568211543989756681160338398656923860671375792019610614288066292138167319773243301600949144376749194648874145324623739839293989825460496496634644135532414783768592070326581490885964905899173943722371808000017476286397835807931680653562144087384469328391062539956323767455417107795430894824551970661287545984946039846456477981003184107162954201163808130192578027146280594146224204618316635292563298571133557326623286798612472689071786789273568597228896439747052302632434117945098869883533777614098999039641205506030246974904359382023836969505855800872258805455654650310374620385457554207959176159665351926338736278026688016376209463205748170574473048696511617240919219668527176568770218207980367295024162153441893233388303056228268790422554590742960581562637334514165618799731187263806145492013751090787028089011340914584920311527403025482569429566570714858173838614848656576025835831373522027437294258935216582895924227289155904965726408434128415213308592551969206599499281982400311131741032697722532766423110184881583724631667138112306886114229694020080390484725320124674815772793906400539580317843502630047252837369218639477039730353242505150091700541142642036936487576617611955849137729468946875483221891430665915605544664468533469282390308365078971774879183857366913670708121229835312651654779999730990918826248998533945301880355600757922227343426228090955454021233011337404213195828911706818590046566504045746249972578392974568505732494251637433756457407738926134615146039730400032850437282167456514421005088446084790464083155351841115218072771380907078558562248947253293783402330753843702116798723324821192009600793327726952745151618900235242878108513886370257510990989232503063403965389001256618028369002678679325073549320433607543509646725469518399348238032224117134083753586373539282160254737607042319239824196760351487910589542836525853309695865012467324881477356022607641724181359121997321912321093927251386068996219626209747242664020137706502663838444908670558155146611893227794678627185787770360684502213522252730922921795381116662600107847702230580187052448119198161720304523341268527372060075527893361691336413145241806698559279541259055761145051909877720061203534782643889194595909895161249288789585847090264684483180388058233803824051902150591119839663939635542054147237269490702705076677993113540826023778902976921681467976997056041243747098321262423410704524315894481115138529252995341074731660649573959291193215587267294253183244997912348142136823208842228237353089408191433885551619265526411155689383243165225235420176221825809300172141949922730053681603115459411783205462308699524842179724762901083596729778663814698484822704342301539234308146121662681439651781927674680014769057801777953798467237784531402871097655673948017411404314567812400128759967469384023670741553689001531142276754327081722862263034254205646867826866493156161009713658320207890879634995826563980540372204093812847566136635981896550029600947800199981170699913698202331203431606826647143743008561713995060524220639919879516758146088750993356879810629432404060300116518052686176156663914594580505854053412148407710703316536049570707316157258363136571502430586619760644816104219215746984809317823353720098921540847327379208753589050760588204089266976689460216275653937644972967132968993622999200095291294943277409099858710778703520319529025969206958459565198431426788813623746918922394526193315445059915106130798218089161291909441726148600522733367547183155337493553027368003549928913496919583661216365147664229780555109089517114909102429147825285187167699594190382983992289610753026254991710867267943697026711026870156728922011310271868920841474883432764924013697024561464662047030578287103368182262431646104175338149060255933006964428594551112222654489137373751091510226743717472629660214167770593856857135375957684426520694853485502521151135451552006963692408951081400569883346470950564018215258413305687309325166859670212991875377570403071727422501128304174839576865075707604575006992882144233868465675810926874129770829285578910029696524733201723125223977560387158968625265610216164881127130680616231520366422702834315116561018416145315503009278248640253661586907079959997986420662578281946285424307268897004687788091140963913122851620376789440427267064813830242740316700193405951190732212377993179074919276477691877759516203995679000109114784509962790967246651834251571754310324071784515563767439906964610821027321289100701221167529907742829769220629245297021846448306962530512189288045497717120567295932807748315509964216055691005711008494361732159660861433224056821225347116335466834218066022578306743226244239627948520121162637678457834634835998387383404375793125862162758672980242921638101199856049108444344154455497603611416059174257419248842893113204839706631677124524851833404274947584428384938578963959886154832781496876138043719170553545660560154382551621114897323521656517197420147604983407065277042526225281569031770561081464431893480558542751934745228507399543483041846502348293946019385066620394276789919588835215142152929236111478224000379964112662618363913938199843020752491784183071218946598067971077905408948127724263392596649336566961056445263033397489339264257535598166172406895243835908001333676252488720931725227402705017870476256001699675487228986744403100310442114532246663678114232554836559651030663311102030912778023882650464185297867790866389864314366237385069161702166373901476157397746418894521984203032356917527750891750031003855059156259289594973989662804965666904740716892247276362117435071561389946868223507519838941316854524686804258220671855604165291356218169190042178235155811492754421698570655192258985036937583164876700115353440663866764086180084692979553251559909538721348661521267893675184399940140719777318376304477379896079350119201579665483201303003229898676068106576097743662658120378670642183084617531971800328917579885416695976091569457640214173736707716976964793851006677631896147587384418968234488344736221620587512801726758321139372100311987455670769418155757553193255923050749518132787257551337644295698084927207270734848738494057501933252091006214994251286900275661896483239393193859413290303163473151067315887989538344907451180559712415930828407432206089684411173338929526664135066497881122915515497692531899163503471513635067151791547629629907666384642265527910167308059428446183041366347296537280438484895013642487541674878079985668270878633754509449483733781923279379644535244911611638012476116168316562557481971976179685693601784122241791688581225973612074472460000067788859843504025058833075034923827976202500408062350472325320816830624691313990390977214098819674470970197890996777682399750744467641116082008179948218879919458301716147756931363797024446891217443046028233896029993272828243204195273092090831692549774475213487736765154819089773544986742582785521483102650841509379177380748586711410458030191538405149756489347295900516502696004529434916773218766145350758370080611915467563964407469267941255735631372602181192229209838519726779889726590075300649041791392273906785591504974068258285604047191659665201881066759721721450412531488019646753693321819769305842473172411211163627144425226804376234758957703479974676378255462361024349934814139386942743365783459842295004062871651661426686542026969664759026751707723901828523190076451722322094901238831098881450277261696695797483044224019406236315506201021319309691945883384065051384385595470327459157174514813898776271144037133090182572783121428924256100739878399380061365319430693339612949741118197544355099162205563559410547829601828068376437629411980032437237242865482757723519505496640089597484627742375701274816756169933265464689760324523867180683972014749580741813610160073666356959120226990383729805984188614136092345134145303570797640230091453543764702957873113786320844647442967273097402864307748832963330258367241768797516317222079253444098961803961058076164600639632344124802102463545427225245503320945376679162577762768657947340403820628997961462308474382898419362470332051393004101799311127637477990597440677024048430408224224176742735157836436330011808264995987428706544673121116644773667987053663942074923676548374345156632766817061025234123018112281229941906045979402741198402255831557659569103266719838320830533384342433546687351219683840342897632379970228418997046660904352382205152008703008812324808597079512926754158222021668054802519158895598884772356415122774990237013254397662917459329204536409294616501177842616804559864279996615182940030769488428110002233292023557180938756138107210379102602306450927738549157111457261807773025399261836369067824311068237962189636941201536366375179561564259493222614665863587354923050345325364924604977046546740842436152715116698252220236456978970669238333939007624852350447874144122323768093474804297619575261321961369648492255178905977561625819545637311631094604737010013201001774509610580052209209128399427642949610640264983939658932134948698452261675883953142389056842147151275449012891184582947538778549397293674033874384161084005242139372466982821171086370562823120640618105257544608747000962392271284246296851999994492969657592325967737764259488929553162384527632071007859015911093495912180882864746929820982477095921915198185898039084924109696339329386539001998800836218629662800315723120372518605283263372350518994316826293944066108309061198549878124640033698373398709624290217095382441588247558234894415030014643150605795874686786304629584698803138037347200684690466933855289587392033771370742181015692859089748007022342727636859469473129859558090401163263111461618352549846136871307965911895298910211207940173766619103998357463470062839140940302864619576675362017298791966046891428266478523547576971238396282782230414609369579071040875440004174388377066022486216608179200465488659331096285467326018079831469451422283216786754620790408304341336773087183996997155749983888497187048422092885788362614479917367373953897717497007602515245768058033012073254410803540187975665820227878466108256434439520555183185896477121054789200765885789505901618218309775881600990014614959499186260892467339222563236443924046776159337871168472781611883527373723259443183350355276295019588760535502969645509173997574873501141955373469833709149595688026582744073150323447328395736912339964107155420564627081014169482793706197701582437771967985124263599627642911533684635795568376572578844345053689780872704971443027543158845037062874594420359642956431412802652507955120203168070485347884474677116790649181923364719197089181601336311391608830516590961854430798591853309298909197249048928294154722474367287719340784608032653993136198464746639571307323240704749294151387396872766217597512813791498009452154676845893620116771920195224981476107809601854191567025551529457713747539802740750561472575392250561581601931720363941594805225636519944797992917850632361026503558249577901745885071910886447315463539343044477089700044152852690466185382493858328229107607386843052285509622674441933871243750202087916259655018553015284383603472052796310591483473389998350621918025831521437157075390330491947972492706228745926153169625954656173231676135133373517676038724350338930616820984304040301221198091471758523578556325631636205916214795307017879234871415785285361526288074744750446642037342263622193537805532319929281792517809958500782857339863164227256993764016403434133139515803267255165257153707656082328262108691302001746581506035306381573527932910733895576584379499211817025896896262534049400566209659546342096311068193722796158326735840899113089874126249753795993535089105499165257798942668077248744573950904201068184748185003465095055934428725474170208513697847993791054226009338241862699786804916372382049258684577469654501234347675926639849061870294385005619534067147438066684850434806203899933747537260589839148967654888595442238649023817806302982416325222014857010486620046362544278923655472490458620301734002284321322945648709486096707224196605135697013344794358846697724729679133994242031831687866358515762143432719819527241170618462231445597556425597317046143435603549261939851138921542988080604088377223321613392543158755406994713187128842423261958048667353292213048427261851722615283505397428126915597132697130561364126428624229990511901133483940620002524836052035137544865674361705826408476384679460632225692906724818018505140397468513109644784939045888743246773692625080970573327376198138803093068447703648365963189070970525527963935290651328418137118334525027177792469751612264562858231380412998668394653134652954750485391880822575001897216948856833406920115035493152912977997876194167445418459967754815857191635713172037694633109842878333117162505275833112136918337368514010386057378710155480556076260711085559360383399691096643414840875524617585552671634126340513580552413144233578085300111782902453545680111436304115400733051632820827425987327987330593350284781559488538967364811282483900608219088025769458597791079215956415786228038195132340621789002071343907891215336500090221245960411113510649022139448964238956900616782406535629218389776975538331486950426867382439403234545823473518347420611584522564151712216266336902217648105637879157255751501552927914755789782605935143683554422864622710898380190844369127424115979206678646880591397911980365302395986242672217644626502261538229343026853246805837594698405078192676015104639003882765422705536380524517224306322919524784467674479261471234098721084461077757225244265594308321918477535313187417437961307169821917672351229914750007318041342995622972725000676493587796733202608045709829964452267530901218678888417733244415214965284217682342149921678382797402873450162652769908733869123719564799768588132224851458790788921869486091652089484039163943259456644701598683956382866608490721482774224525902410358203043837056405675134151141861829511203129852705159575674471591063961300499380860461796762427458205658429558206821036478892549613187161222765507151337753001507841464632162476163742579340841791978001476006646403766644996333031192436060133575436192189806121964560618797228717419403238240438583022721375978256852291357337830775083930316778728678611601965990319768316293558743331132102981625551788426140982007015055696161961573521302239124872820273609712941745522400203228632193404153007884974744782741563218523718122843340293986300536147062876930864573473451227139124716346289929551911362424607181774473516524483310732294589769719332159036853341443993089942948489938651756910065654576396651593950274482322420379473843489501697904720281243342414000102287731768086979351957500486019484086532677590360970836009117757387763650649126647220509744834669893979374188978708561260667949909919451638620406653900792304573167434856863498453251315467155106926722252334174356615893096919159935237069033986824000784735635003092962140893763945150199961340217000020889040437952327084662410709512044732136542762925797353895345561016999180128845235401402189141804659486548976029203374425973855477662391612239373447207428414748414310694790767344427414782926521298121215196794321198149662380152226405270232995321156513200773391088134839771177937355324260845425133582882322521995195056889657044233651443874399602362079789212574879131288020156509666317618699516132824049315992334785177223513663133286636676990166353033875521536728210429974132838314402760291850706161779823701483750774423019625469686233460856628770046963611130810006941862011416826494784020690293413731839578525980726382455513749323279581600422283678034853895460325606106714243012496908553729713846244712668594223047070403823472841192896870447937349224094327887681123277608520002609700285711688617219332026763292416103484810622785089288565501465907737936754360230778098387667689584368087799972628970908635302010116537304083877103818362046890801702317886829227798382106139108688241224018896717506094975035888695399968321396864579944540273188350143076901398680636210382093628796880133799476268736391555356007092784205216555222711168783798090060960045332936253930789658298497835875930244672484390348338122368044643810459523891534119356638557194610145862520605698555307895405142695328115553752563992123477242655876779582617645376213556768592187222524678531039123950972423592926397664091238335789521358532993491301945654383019089312024599075751505218357048167609886008793154899884676450850995414830419113362722590848766474738551139458077329702367900531671627922597253415264354404197679443381391139339091243742342542843981106048865920403280623656214075371411391631581959220603882653412144363323427501060526580730374064583376735896825859732897525277363274292840534313953437917039769732380784512120515602624560575551243046986783300662825561917338960229265056848113213152407243206146228490468129199921982675905176463052897061289948019426597466048178350800851786192288878727714291040548844205139005530647727093461698656891272057482872795511370334929336154969028881698323876134434821330532914435589446756812567462361838746691167961849544588883380008353161069039757221863199624312432599331149489839986320673805289243764896313852573302694328345186260218984470137693491560407850874456063091188872897096939896100937480324693622185035085740074751377824017021040596973143917274234285001318084796830080937931297935767624065985364326169676670912058875325691560660386501229484515505315156147198139531300788189841994983732803889541881960996459683417401496128033151270362087713420801403091251912620192620135614689854663592087244431449696929049741667374247569385741336590426671472914814199258410795433097723312529456629070883315517477722624166997919130462103599150234742313750409580338166826122586694654043235895693086847614245685398478605713606543001626433989107876637438963795224016975386483230446779704429090260645219965556033524762093385934973400654926681841703540326052696032328713265176794332488224939082468167993046783751636417154647593283611962368417475427521251682541470077021388643250612195970660632987979802669440614320542986637831745628347337051492131829947457292489558727304612728928921469658230097275812037413261718237765303051283735841204961698069785523884791362945803986475750821127547232653039225524829719993305476790868218373283439782788999723866593492699803468889259920853362467394453426122256564533375873297084349174551541352639259699246293619727119601819955016841623812172962467679142289810846293155078410720252069824545635649410849569848292208069835537126794663886433013921052712307902835101394293138131402850571338755518480844665256214451851459569433561925024160438393858340466140823615406423735499002085077728162041227906314514078505399004853639586008662944582226435674159200144179531981307405226493488796629927055117551889809106785718566728516932960658810657325636948072237016151257160386668548317574080455142413008386781740996664251217842028564145192052193208733742814814167984960108843093272887165567577689992233077750955508227033092185007941049583550113992777273866792936509191307665805904418998495448861471000280063369493746333919504778206275752783547598126471335246259826129072513895031369667341174139370918412428934695038148991314172440949491940146821382301870768703661450255046743166785478704740889985557639410087473950736911890709672503116067412656285713251469063602720733202713793731471438197517199267489897125173342903209702288582444359561561995433176281438860213742428255396869192256544597676934579196876091342870498300168279859419619998027250827086468441369356963824745062131880074436469593338347438502168599417340082934457983683370803577207572346934942270061319352576625275605021739018033799048070340127572578637927603373573947010943112686701857880463612515263725649236220227501175622790564048469765881128295481390468153325749054522402228742611224018040740006745804700027569039978303654000888051782459234792394541674539177643338332896901294847967036370276036799147591095360476647602468450413948098195428566457443261501649725242305236535127519942245727014740120431263576469880869782049358623944834622668112296535396931229942314280638802017674341834326604694590319818930851159757703634214359840124014164483544856959951328968714329557772579321740128872957084379042880769950190511647182966942002018721455388433439905241183482899001943676784840314151478982568053634042978554395277179259575817821853355770268653470388577524663873856508865112509325527209024204848414204860232283795438290317181142336013172278024850638168762377832058388508746525240535298717660211579331110042980266323426920072097061250898773930645219515231218103032979046221619861737028078815130335349063974987886658534579259211300449973023451102753737986602563555392003736451956555785911022074252846930385700326235880339415127905698420963906871285395443781505805553886167215192766194128156103756386332118786023004912026133239781335763544702452823348241030406584030980780967558119600722897894564729465761091188676280533569576837045594053589285521852127770741227634348569925875465095923716759641218070200475404486749229106525467872956933615295199697974207305146304746567468224195505785776522256241033114602388316196965470695385061460411391712774403846800194203748730564671078784692455246819604903828491402909261857872317757989871092856610684871136930771689509954341632219927034996620803467709327204664610867490635189726604836494945658324777223543268473387945500379773539617108957822755500574220505882598390834558710498952709238170723985276303163550838147029000604794523217289456074204009856608893548814234589770913683663948364702853059287209828629295561324809704472430339589881097407049017103965809482288305388609073553474557342711067309103005885020021716112226865010212152146926465721074489547534885884299643509835122099333613524778070995397685078872211691578749286495695563487307945512355426246250561573619137425593892429271058889798483602148909030700059035091882578103255762125978929698944499219154675945637643958778763431943586209010487285545173379384588512706828065087840558492066663429947572503524203291463650517548832870744555589095067863951784065608965212753985908913811822569332516443558816862933495634116808336244679246820193118614855347777976114838174738249393106036799671536438216897120641632315039395324051119280523647865360259640987419085706639557452062689062080875512814921536307269606371937270309056239820310277327259247669253587963504490642494934406154911363714144142361593041295588415984765585899510921312317624271209037232003932290965743624277792013841552506383045339270593528377287193844523470034072824053259358365013551114475261293432410848336500654740951933517251770171348115734080688388791376255295549987976379716688068938289544185438223824963044110795503684694480111518447453403150451599460837740558064543949427025615041454405913835918018161701807762052664386780849362650738580374274552603567762395010693918159614166798903567286933421441618737022748829466086445192802468949770560974026706348380956223873249037470125700919841884948686049057491624392496503400298065556324218564710609483952421127818554846057979377062315324106391619463006957845666741951819173345712533426499843583168761240807228741999551229547987849528428101097005203452991418281779483662419523922144357692040651533833987831163847461799354022725799477368256309881321284711342188011192770390512282793039193906088861872330681705828082728396504500910742510062607487425935132306159250743259698153704884536846942530223232933329577148262184561627383506227427632781046934451140276862789548354611263070250896362191940442737838645233729877295818738130550573681880559312899390331355849732124302997158665437646220330607046032198403643636429775499761623587597770954801465978697826545116141198613116096798756112273408274601121289593565161896758414019271560414622859267821503007730099984079260993905287138439853185719178895484169867097388683308810211874003614795366449627550690296963403480689365959000165458605287649556681976241144288126235885176917089434458271431480996248902638321856938096260030293355991208336687581007434710771873768508088859308592136945534172946463056463411260545518853392864576531375923107361747895443152682194975891785068965455265744830668972885885296253039873574264397595650882903685898462671250887433241083303728129003688746616652487851158467656218446179862773899046999989577839525912275928453612750848625612754561157755938209224210366608630434408610013468223575759866569492637493789536864097923680352494585057324783436005695716379593685748273400914700815528322113776750131050515557227973404540927834962904926962290272989478674453926130778159444521004143553949253642704971215284325419885160620551102974262856213678474210585124581084211102035078432572369448014077340110821137937688776734817054513877476160363004474916491829380971289113154904553599409266085974119230968917499810638228393641625816362043411232784871473333626611081205470772418062535405363680044988297214055393092910392596209925025301169985767225024901985047791178660956867943587651839904214352365141948313835559301625246991467137130943950427820032511001189751169506789003708248292889235465209551796589392497571613690252650802524859931987645218979337291273364592350199203456589549207258768353241313976002840797844176353663952937251800358592821474141860517859525711708026267866714345997389113110889873288839970412270655258295628287206554484363415814599999669864834446563339602482163161024544062237734832236656286301934271549387339541703743558764095065992563219003047447245248931761672252696377835305700371370307490418902809632459876978800280901890390317196086703684066751371652006983306406422043337512878906510019455388536910126825010836234984265530976744265217959759253228670202948651720719158172062976014371592965157488663691855976463292731323966705068850015807340092458885445302495980854529712125336437210876642067420397458704560415755478066406440165295886169451366015454961507513083955774238281842049971377077275336979184728639075773826379879990611786330821672574173749105203918121879403097468131854929195481712480796903505356526951716483122349642803661430640960328437069906700107315769748055219709338684064832848486090098994740057715997216736417397851621461396040774170350565357655792443734132687357369401441880858585951563588641760178472790247382552765489434556381699868222023054829499679814296859632813495755917687054595729793519532106013031998121997555238203361915689730444469527834157815557915873414401663935757171526490773408990839790785028584110453477921641238553703728721920154837496107996187102431037699782100729783975585513620466950969938158148151582149803650999571255839601247893425457364889900614442267091711151941567815210401024459053514980954381999137668618752341274735729287526228763358758093415654503108183619984088077386052445386509390234852774275676280971021548667103911652568205952061041290070217152937844417336199794148611356605659191816570991250486855249772121686361004531972236122714846123363283086191720687747261584346060253534459367607148607166880637812785486997647894586449231550129675351716519639979148483504729951016399447905374499540063785757828739008276928304745072654082994622756524516841694539340223393549839899018115222651875564264338315096853129813881916686703773397316725084352848328343210249369813743838313547099538265600585285338728075020398650762260953647529026155580833700639551292518428432782659730154698156570615977046363247143115089098758301416773678283926553980155496995612263163145892302062570333332870024602927451875815499493394830360456804419765982494894217481856534370810763143075451910155577901577243852723913472801516045212261460700564749388693497370894418274665001349656856194837116894527917392985232700925788765976897984522879085686501202708130603035567085531721331800491589113025722398241501665220352869265253025750184383270075524481090357363093918166813720392635415692386192907627380611211978097185065284472169902717278680114266476853644297698087850101810253296885632278371504560601790950477738989656999097951716306206928110769278969640806356122087405299003658739877282561718209473680664971308577437111105213021583894109618740964835841618012962037838519419803865705171395647614069718458704943017753567627166599551162531792874252429146621233440093293816318768080053951815914824147846251958972482425143290575306189671614183852162194070510357081388178496377652306505849168261774171310283586956600969111402622399738272365180373869903454403210128195848929704055290424311023266647469302938454474148248285680336999533022082502911390261563799982059848398380054759810925666050354348533439902375520600093997132708486842919744847651097400969789994298753422201465116882463508579337415528330583805276688877445748425848746741263592912987125617940921426514975187758526295171125642981639873181547242124091088406438229242279417415716762694210575119092889910513213871636161751539809071505751227869044572727477293019122124647142363555077754992767909247017126238843889230525909146270836139941967473110055354574926895205283537805726358264809758468382124873920401225973168426312522977058160959142026087797456209464191504859147112737129839702678837024773253113066840209246517153336273360394963929278250520253598818424094928431636194954254794099668597236636809286620533292462120839024454061139294089637242967251741919513367545662242239304908005351874370972982009693995568873664868967551663750241175393888508157893323102347393180852828787858335433948270291956639276758889223951857098785446087714590246576088274963024752201155907765187357798818338002611594406015803917652811186690397695066359730740929844895580299099919801491109456587722328538656814603745123623333762477663848284214211366104992743045641923188381531891298717767573577184470016733913201427777653697751494713108184543913284946479768022008937616566688427624113401410355414383400887133982262692270190192454069715232562391704665999091545423984814467653716790865602488094922171461595197145401782191114195583133943223041644217500040727946870509982171000899018814891697012495217299523281352134610805126851929244985545227903383773569028607087517014387839992800703128562142704492954056175780296529504319658081526158668784549111661479652627457976996126694961096316792670790413364925037895364309031639850606237192227393287898655099703186683452995900746446420568772684309679270611705997403850236693182255359715564214598253393360259911194792918440352702318299658325502524290645022742843461561054693210807434448979876374180346698197482257986807181747228395998226806172809898077855634136859059371362816401481766721397421176985379978363885204404891620369338837721927027294295602787474266896472911602536641240061040743349152370450604309532351582988299379725350169431438937845628941602060619895574781191319386214421071144707475910839219859489812703996427103857347865312424676710200402514861562959509245039775525408739677564955362127901514109974162261648454085173882892734808892936238790745047653113334498134443231422975234245361106031021984689676752564566168793592796495929389459796411291754848539560187416539513788642817680443567595065244152965050527676156965287249532097490774782154767344584257585623030544228877473680147571289913710923812032468885384010858879039151359425605928206736474288243385817589352440359397397735813724838598948821362163619398302035578236857478447240022329022286565152047594346404438358323054259969624495652593840619010203697688937129458793872881144386004826047544178013701422530408199605704719130984997008219004269086764766206539822613320629032150555270194628170513953167781533760469032174665392283850143899554759985703980124143089041963859377058461260722103957093281206870342556595831420146574920022795295769349999861336682245779249325991545127145881563831357267959672399076205501458283268289390664574567337614424923897400912373633286423763621501930391094400538736207626627992705119575891414461537524364123671678597957437464376263223421624897949383179831875064149104950612762688249034777927199349638465120544744554145617835070508715250126587337896066945870374192167213552422611873439078144435610555450695343588198100947933274614404416010833181397985397919458085823690093923584532928193015088616503034888270650487625457229257210838688285616089732650962714146645261096515749318398769041143130980686999058601355929532313615335203559229815685297727399363055354836003487377465499084240040954428038308188151750729980306990232885429042798577560278308610511232785293932273809498800080988944833426638075429807743324125502306948874240945006928189870138118255331871958663068992297069919513243965854217859926811955108935959393987870870827004664451538295178996668902083041266122409259743261802020993776506389085061411184073946747129029608880409850059339288746295827739707713921020225872400484484227178145250183650833300306424460423109633277964088769244748084565006095515982551861369133001986072601778757414065045834328005938310212349644548586528456254451644022848660813552052510310504055917571155460023755754953154363616078143373906439151425247749120281340664442179410671539461037742308740547004790391784730127385668564982333098684035965084686486285110958633183932117487719384892621531136920819821840522900699462022123651727244726765358972600866565508468131427495540852944597798608367920557566009667644647786894483865733913227328452101398379488968197167651968558101436978822907049147752117443403231142545031565683597038164131416840615631559137183649258602656106615914874456197009972291375229096023922289222546948344159185986872703880861530609758247248004801642811823638392106572681595059075517174672559911760149298130097356185478229884843866932030326842715938439007394736415312596699170385377322967084700688719559431757337834424852123588973003001135712575108618854424264824679004513488062859639109448370750965706543370587257695799494826597829027975378852732937661969078048101618330067654624286926158737106171778767196167037900099831605858374261291544790009190424970522261631425488530896617445882686078504111608258596167478139154362711583360357599484173751683091925514623031489972211359331678216465049010731147312676825083024102336159801578823744052131013254935938276291577256216660910748254057109109145153917297973731751451375788634305432893109135393995401123224054335160551924081254128046023576335238866809643890402359221426809183372938076628034255969394007949353910889395311321531164431389475389216356718452813838829109145357728881960140903910315244932114395885782491024524938004692475526552280967268800251564424836576855205768123027529501915546900451506554052073406893446985729131156509779023811669121696862879796599952941880870261091787872481730193149252130753147751242425773856610590079938069053769161983134644282543435433418096923165519690821617185230947922855272733270032952218432293285318984192471337479114585305560730798084267659708498535139662453613269050102682142155028748052991552669250143805731536868304701609926068422566101173927568387151248643200083553848041800437525119253295363689756210753717023941354876681863343122368642728198798012332837328553119841343871165323164054095542139872838863654832132300088271837180551434136761486685562978659171058827406322409004469900909393595089932618317072528943046647247527709716631252769376609102381413278268731334338940740476080295157403066799918894575942340794328049989169260310374372587136211741421862582692526213193088646205429083122877103052914007060777145949154999837005187539102166231354320328264499961861533505710520760722721931250195032504801617930722495170561816720464030572163779472007804969694971099021173191155219753734068063255529365712630924615430033854902481375970277437779087126065773249017934002004083605885801010289694119133978912805773497033381119108652527742625671618014555551657518597657701296896989789044797633375160471022930811847128984250585655147207499199753514626911266527611134579809736563870934577825185630415692169976272120279554722588843516749609936240897556272181739355819696911008317536165449347393168793788437144427520693529218459253824015857808305894508623068323026392940808195932297543394195346776302190064148632212289360781602829021487044997544348360080881751845678270976281396468672375932516762060455864319706997499341130868465721763513501403399253742525038351439926958930874042272135403468008505162194989496702627950502499286554609658041941790123196168518713444472992975773550353438308637858437131747436858470508796960108215823732642888903539722985489719767622177662011923379726046518942163775293186864758839465269202956523807733640828880547315718135196809688955854183726992696684613060775986591657954831738494397103556239484515872736818988729997927930742221918243935642387351652937114022843832228094730412820381304822737248663456748371522821802595999150457252606183567221341876044898880689553211810485274034666890101242135762164767803450106307055480374801302594065882288400257813243624879978482611974222791217470437254657328345139922729151456167862129410957844197060232154456252496289125492454092015763946216026680122936288717677648582263504802589807657371404365776522695442442799069946603357329187968478039613032239815085792019718974469977854042800057768823846562750800283218537646970490454532764580498144312831208573233907944429066669064472066783502255314320126635424650644291411757583020896728037777358657249249634380650581598900524942335026211823273298057700505878382658426008536547548881320475654760561206528204123995162604828800390430556749001215938601977513852192782428814486427799893428530921490331429159784904509383239590035663680262781080610481550281323627044870298825929812611549884169795725021080908826279339176279335967055845876199677667113007383482233071803251245311977831700382304379973918691122197945226498530534402500779838028416880144535022252712189191292086610077080760893321782891929126743736401054179126688452811805600928346979686969036476001029004868004504434141048939659304288273388541673146516489199729799587124515064520210513006061204087005730004505650302393000615048237490170115894341921570439474763441728599056260085514092777822796181604740153845259312178487380764500071762220782361307209922769471920641923809111894214809366583344215618311070712456576003387977820502708024985652181866163404604233458009955714066930480172357602407746876517552375784312075180923921460770032763183383005852222097352362426865624730461995819869327957006859505731593936627502242325769112944469447181574732344896565643047187858278611118945759775514801754465194592141999375977319794884191321216656874334018531548144053580475078962682050363477901940962908199745248736837557219955578486178063834255744462381011104420207024423034885058219925400726650711256969357174613523922345534391374754141439426052966388595324994542938565037083663733024891216306002179264490127807365156064701242446761169383130926729741904477544542850842241592046937841439259991167724917252851985162291563112805268188725239910305625595462892929326994688466165380300235908349071951311734001853344073164519483714344996643071297186572287553110583943196606921331334327718251401601676990631547843906293657412465145466862094278461812973477262615948136317466234749586032370494191057704305447953711301311627641435940087191597307882180618592689664389996256542510703352297095576857655013394341125573810789280832052332153101845804986560200458111018290643094616408411255357974682376236554310799866634927662088435601633951055565511189979407968607103173125991343391069424514344608331231219396574055152165485356399648072727133865776503858370064867469923346604418841008877599804032595624032042933286089466376703761008830189906922566195765506283715690069079320328480092657997512644187760946085971192896680325228114843766702302685639655102888573830910730568217933002704444338765469264099422800331557596837114936916362277524751484562810734067441967473250118058207953375541622470892902784215781522336099626398090959481150087270478149209675857604712028588484707093096833568022374447044138981260149139362018596573650733768205676483498177076847580500835929504583479695114706372370132767925694062140937428943025222949005489968280050532913620215157093298920719968374823359144390229082221336474310985484674683324143704328536964621529757284738450220380152233918541638742706946195031161081654486802525967521246430836273312447513898121995915317342646358754086378923618745629573589582094323513516305923185961851356848118796507192120833061645129168936812342794832754190151387540290914623742517486622558973832879260085201245301204005302064643711964429440806611766984014967780795768443207162462311083086829286931993013824095853933552556123766200827908531691029755866845657832014880241954239745600702079570223305962452335008508116561701453287150851540379434716478046368345269857154908059376406661237775375674338349286954903475915545281163281477450024869485698952404561861112482098847691455806265392503273721383801726398105523688689811679326120679944915567841729867799234249803104197506026717309267307102827953664174564882874670035782838817048745283210829872303742423179948644192857470899468754846268136720114575354899816064712224561537020369632137229664954132907497348704306772366683126953281739552243693324517366139419610902272932272661678597303269817588534549136662417568384696330353732088349935432766266447219604036032329375513820008137720118828897891232236510959246605265936006334965144028791976989488453378460820429863049453864082702174513732746837505275487183435550734302545870026204238076454086836742226440303085688502536883953336361365807829743718943878468137381227737422212146178821039094709397812496740583925213384031435096789353585937414659171233528767465334751463036402546577932050878744000133145382214200747410743427105917980618376739822231325174660182899620148289011197600971974148901357270414137755573366458483775297114446126049306081377464340962289775068330387240690168809644140098772760814270530123668939848296163722090969990998282227259848870689510031435398260516385916812365144474064083956961058671841986103817314362215832997618370892882475344212967523041691835163935557539244834299466852555571548074162073449812617835336289541313944428867578362810608549302683091012611928988931478640742400321339941959275074255048608784760158945276485830931922026186405978258127629974076336281717435942340311143149559005309995443650607758199751175940416252441870484351359703651619505616010287342508937013256974477933052069225235033468493515083293526974258315890684481827380867880768425595368997443481134845602824474063422097342802140251502196763369094147820286759580514168572658488664506834346946601542541716336665000823094475819465485736705481221155400174169034613102036063542249404870613675691377924865595271929536448747204692682558904578059460176647426436883793559552163554255209889006437557231224951381752947387897239173573315751612896381668257856111934695776631248710826530049441313304856968507208495427090050022562032554524716186974768816019139641212995731790327898792569691514114188413122576335754948904562217089708610962147387824142631410247493861738033813778766612948574626482643465903402276175420191049797364978070628368893496621567197560056300086489708809176779735152506543113859390825290394197757681703771424904392770602592564116181426828532568901940896458104609309411901919118661637111943068144648611451597927738062195205976760721262818588509752083802516739908675530555724358013192148496969115344684248079981610081323385361232480270238205666137228920648463914644157410704379390554560673981484396468078337769004857932004145302966592733108071573953002792210616623568224865777852484697819554595676548434455779381925988363901155272178848083727673946379420017267864335901371288456987273251745771952458289659531699883940500232486011088002795496523722665980606363043096118889105480545870732005796986608352411775161249756067229145710278869437777604684987105888945011387184549069219322898330654946190524693770417671271791416314880008104422051638261317337916337933201037450784336085941031684282237368768846031449538637975787356678599419301403548818342485639388554435049628006654482765791725882933293898297973482761155511529466494046336740200330905683980718457921685318710293850079010255058869623535434282010026962123234993884267366579787410632920901156081546683119594558249078326686491784203681504730210706704371458717048166607894874555623721202944553039951809792880624106421019007370153670159621833723928175001483728659960151515558494252644479920338254759420116989465429397130200413810316741066392674081891421641387898425887799421114671424011985896093310473011183083521984023483247080420020107985041122629423457332295360384565787971056486443281588254981847924471970353238046609943250565266073148906515759969655985708827431624669519854025540982320617860798207029808737602502648267008402517200129336271660788690261176007897227317770996960850419519986469525662516994130564388192891307809181885143011069500162687228560206715420910237358993335980808617472615396539606704377768723761539428281807436027791307257636827535676899598610632809266422845095444135639548902707902310887294248467250272004533395758656901806127253451925627430670788838724780938029122225273707195406709662434126957505260253721670775822686703909977488018277821860665919740010479537014898288699676556614711506896463169532055540851479113759928635340627327630512664880071473196414968445587890825933729206507925253463175252488247991865413844040618444169388937221013460267525437407114663375562012027367056856161950513085930599070617258234125220843777039171330606472030118781115889514009577356544447180699863960064545536722904067265832729790712168095806962477877865500818403852145275188925730144558477440627781669751147328504176124331001952205416963050450823074065449162698384896913440474178301221860740425665113026284934094827006488689380092925619602614613636731117627578925011398827367833916766631420453629402430261133800968001191086628282074989855700319247560341201287893900069714726557523662152810369744735124971992432615743673059098042363643466648439941985147762091108416410059376024287106409880753707389882450184723971243160537319261805643778450828194677206886413086685051677585257906002249958631466986708131243470485135960864866860461574594999395174234583343785723104541715151052062566481254924536475177828671148675942380193146992893171220470097163983726235661508054820771575146694383125272209212139735530507008472303258814050181663961041109254947016791609362062734570969571132764159126619943833123192011326710207663023647648608255539240301929942487120385899139640552231097000558202739012992360035890705336275125094609224230162027482418678538081631368077920666143553580602481093193829775115804369800529193191064595566508087642755768812745712892699032078052556801832785271954840674086638643906193270025574003473023563736784932674466644605429548635355835415908044744160967030481217237366356373236012026950842566866481573513278472479332668249674797981622464415989557251146581866716218271786915316276109535828434275297035940468803088444050120687443444875814250174691484804930688912073787936441027139233860532515291676128586442312526918530739283947238863156976441961791051457414985708187077189112048954980368528702121477765069680146111735800587741263506865663174003910656534479392295677896958889597353217448204758763633281132718421087815756718357162190315089829707534773928232079007349522899685705343388888209763934825440071529889977875126061986360442888898422162012874478789791765269448192597294153885922615499138731794945899529867913446460427856974150018067248812247154317231402098285650242029164712556403761677041844132142186040748999219525072323353356632501926810238224427048181495161210387401673019253904043198609335759353562401067216352489407774660612535735806440301996737150948748162779524718730385830489028167749409958301586109280011949179998695898636099121250908272128655895424325872583040029766152283029924250734948341003383427578879662725492682652329037661520199964491833485857636589593891792752647962813789519101529958540691462475515280540492474850792861316994666454566324238699409723154452709938302881542121883795066584297886449659154232424645096898500575574703161027850360005648576867503718144614619880540785640581980509433307880192047374225392966727591950896600426864022278474553094438814419884479526651733576375793028145572501949368729925132231752420767815164971839594058271889608283433095716156491799498234229858260869627326486761948721265759726367494988268129140129593276378274780908970140341249108861814425263647500577070374385455845943030338560276310125371956913610277754358448336273167632623997132576054902959522019201435128681368315113157499345615564183101801740832793959505147890496034769338396754139435621640349381060402853555884032398981671371713342928351856459413596706305625789908027458093933495124383902270284226478130779871903588370586008740374189072410376186427810224755543944770002845091385604589891961701287947934679520476403038187181483836663822834965549043598715833686676609149202139286304821881541645441312264453637056008919436350460529039450929361744665037402623647334518075992447276861016095026188737512054454743442362054035812725692455447089279619488226548944547502758846618509332651106433788820205397081397994780389236260683406689383783795412410539888681543513809765318093881804952483918058116404280319018764423935954068703771893668590676122796580085783355471623912902301414343216610620724081092871034715037083155455216244551717869394325459262363793585719031100335849241461069596731146406465820931134600535984435775151540627202199073301329128733504494928567486837900058502901802634116847739983043820404326917733522647831537210079665734760818222388410177203882814305359501165947171505904410148067471118021337392490834603683448720550957903734352312410445903346051805131856487256841233729776545464513132702801878702070422858057865955140725280452756805176199053192436843373304578944815517287474813185897209937536598621339998847960063816580014425487782162756218582045575695582585484731394641863221179387496036848867063354239002285373666666606187016703691921075665907853459146029802671214363950942473352864039015974692128016525675339040232855979634217250556146031680121362124638345340430655064411709628785223553209316260621045344565567962129030150534108745331059316300980642981247486888058363114534989812931413971477190947414758050614994900757047662403393264917911145431101035853270385098384096587320316470343917615443198978491798911540154081360288742041060399898632394761889093398845885350211673028679833730610685917446973345301941211275658118357326300687380645895783152608022020991698710496665378570642093760367365299939234501909995177832783178104237569385294764627734641078676850123619773203514371299196647656293193202444336048241122303965134955697830236697043597977792299203907914765113416036409039714079102482955781758250462255037030746073394268630881141114900355979145940566271362498805897253695865663093984552132636060495995078786314614964075668868620513438870126677194491574132407585157171714234910667259621836077082522959884933189504475857813616342831671329542725276558015287308659515082714259949032839658150628490607653679690743022234164090612403563121218028393366503406756459481082275112711163188896387710178863128534069435935208993400849518783104773555426534088312800140663770211314652015763385676580642886618177761667189367355806814010370963643756583080855545166495093088355696083382158107393330701465666981629990704830097473381610800882219250139599681311841879480623239523523976296229778413419193228913908199934082606630136350735176436673554016815614828656356869779414971109864608477818536752744583080099192739665674039865134283828833484910991599363035585644524671294115155045921688168041579761688010697417192812158094430468464359132182382642339521746741520777421163335051267812796677812799249926255614934849414054597731332098702844737415249344244192661824239285185872159495700341606611618939984211930003066042171328548313660708007044149494795145528790570108789616685508855404043466779475239633108410179824797490421519380487928468280027294792135786215796826285787040627446167267225516777830749144731728196329440849916621748064152710516671678368221375860911237364110366850606069324103969759078936215840003623170450508172680001445436996946885832732169558458206610806630534213958839906209933146554663566187288418004495021090053923034462041791212705351347040024299027849887139357668228635328949051845459360591085154352689319510479266362305564740052289566341249013378957272906548918659944175252939313019011773693589893673142231096736701402364084531592608430805714397949481903078410350930967858080895621693242827744658452865899111933183945616677656349950683456238601319466994841580595304693373303185200133822153610744672252901215224958762102648233900359316966833741767639318149245940278372048010708138546703984833095088099492764092710128555627475902676683309552044800136242720561987818817437264945592283491842626070055990771180106654465283873567569148440002057528804382987510898860120512100302391818984268970210247794447920506933313614966636747931195094132253695093767204953652291820144786366724467711137034872432165336700095160052332131802475632022928335680330808329876722979530874286043427039388308422871842466030608447856933283414314840397934097790772945922625660759029951864442535185782044174021713458404190955676984756936237277971112830024964794621201711766625011101917977135861047040539185279594753913378099470491328469206414942579760624671416652989922208915534681632408272542219567792464619828579403559372964607772721953933529016553948131407286622279897447888560531344319461153536019538174416953228799398229575924046895582885017172831719776922797566225557429899636741080145411282617217113616915219424783034255037265656395116792898744880030829444056744387936030166223743195245899251806794429402651688275831633190857094750986128356602465048019350655782964156354477992942421838206990052951329142247882721356826074570583887788351657623180712909898865160326542550994162821316683363316909642465063400497433859037175760376212673862100682614675427589881194847982624105119325986690323168491256995070391200652734914756117694392704182189448803345928716305638244634358120961776661565794068219470542679783169346368251056630327411897610836206182717170375962034633739599823179110131413348566304087427917879784402408906791263561561442192564395659178119226779248260866052463471967936107469856395542050928582533117408946872954925157073388367213753551112081844395395654910760345124475260679313756582069254556031309096708632259972296605273209211415021450545715518617195557296520641968642188581881905945499638527044255232992591988737706938370734679275998266865461055991213886505076920474567911897375047217026471394777159236938937332264285432862930768520087286330182753224972548466882779875872269765674685633038277275231286305971131132779704810208401694369965666324879028921891636864472141772406585205594788312309399982277175238211527549395038131032380750744777868776056341937646985376717947803382367366560257964575799129396252795699694553896936667764331931761198515011799466904865381628819190888415868138709888637607580183280722475129989548733072694853724784950559552336915519601719894050709713907028626092084267141021918055046588655410811639088305072491412284869101446005043612700807264981949365735519706384090830215092021887860877327798597315482265840007037615521425124295095713854442251923799072671046855374229367891577862007469144807695438005176194092484223858969213478233132463144388713035343477478298284457191709422348507660980937176933752242934487211649271524083422331832001416585403314442051322822614670039348705456154296299448075074732052681236315702845352969943127177643118532778598057234292021591554126937054853292269005029892737224569798026267041840823422649805660520024702640422955797560051574174169850809383710909944094893831543168146766822819987253295828427172447642941934277822104532412335002979688375386592428468419891383215758453089753961038467616241898600646348405415422104827520756801555983727808122812495272865886659775208519295993998076294692386466936743796993318129991677614915962354716710869101092637481524593878560051581444540351332325858701779043394172387483477452445345289735668198174679124809144271539871635367356683332394286161655815607431564222865984395621389264868545774715349649870794311137644881129176482674796740687143507258450913852480522659789620203983914619545742085558897173228890699335514238382643514980017196602727817369964016627163122776966252720331963254622803851148028880080120270430274165765205307766919250621257863115417313552602592972033648778063711399060797951318397592961922545910732648871650604629642199786142202180309486332421735582281032834482396181588955412881930326799780359905629061478309048361534244695870656780700052012803858341073097178137640483547347092076005970923751882895674878026125926731172774684633607193341666950577850940349020904900031952524594237114605984490756668272695277273605384077501508454745909451626872898639503944657822269095480426414534233054571678751513896669385846798151992239724079773325725346626746325036226082229512186556916415641613845606493524290074522968985839000222614323736745880964265250474511293014797199617251807952472687056158668535154739817382631158115593681179100007704417833531204721016098570477879348578404921476334449412324362525528046272847789098845992962595108091228197642049205494948280309594885587070623873474054452893170639789456557906609816763282849920690996820427964775937422780787245119807066296153809499771809882926363640268656184385210062476366826344421527656414517967706053093182971394877664730342544838219954785769435942447242451283890313145852749699331925444631463437164188845297563431467731032225476031604369084999740218518321154797884717505654722983930840613747659935342744110810379331045582411387861756808153037688615615541423038935177480448135521280712488792137349502799567074251809428435278725930752315011868051104910809081181004450264453048593312497598344919811856393669623669339918073121888382590436088811881477519329722343168657792762406440322735758517418614393145643190785886961229335248688759170197424544003531117880832020890559400991674818066457208871055639935842242120411876169724938676146710796169440124253866112899385444851043241702239173641648074018298815726445428943937051262238192410513297836416511779198410418072112533495180468722480797566938900367432670167275677402370573916408642890769078896378793176433741642921958937720464104034635229433629558770618042159187804271466854789984939562412279737729060955381889366015450066844670169576139952193627433391850213171663763425194372357069237026178331692956678379113285604983131953851104633378140621783707506633151183742075286231754102173031999569984109558317303983099637770273022802529563565952661672084501494920675423319270021576162472921369921466926116384035823006607059156154655079024908014108114129085815322010102090108767077168689152088118828591039580601956550558395886035721572158406599046169709837560728234438372446867244025958513506087091340377711423114274526793382313124165455613254939884521579114771058026941649211216783122606699416135647858615666020197997862347152773044005154986415535118216356848210370367869732250636551072527796719142249172225507658481921796515943675845767584574526118417790600650933072159950865831028760064007145271592677298964070574391998738094985487018060908701219083927883298046699910628011179971327770129696966646422988472307602235526198173272598583167273710256617282128695044430769871994603453376092353955796724397964451124803978483765249081667709401086764758805468324580395226150578254233595073452729353918643165828557713373226914872399100372112346467622891755810680379307591650331908946610684305944357600166731911379555732010839509402981873001579416323496891756482113512827182621974809866156902466253734992384779639524478141559365671833025099399542471329691910548495798620943258420687550968668599505858067151808996429326295725706094005323525693838968858045219510016756779341234021573090582877429308976278603950285433822755181970304781424368733179973195019252334079758823793297135025916059475553214580517042132461036716213058452686410040149754807803191528238142945752645447597353149845024432419629698423529408267993855761970889256334802522916696672501126768611148131398460307528573485451295937124451440099132388918561102763405851745059598172323476258370571296768096076131422127269428662015717005916107598806501253254268173689271901187150396888908251619591690101215681919677834264502317874749529834871339017658918191787561523598420861254967454883227864892799818414196676464747149745333875197866778368553596965603866457792048732176511789087234148368256172102899009341509738134662365561361767946509032843762492568446438878656152167140554196395045587497336594683813764818675126875087627847241118978787112299405175613377402932018871069806564677089806822113255279878429763683546729898619228743852724316912201449041641972972311941846330090343287715223181727158312330670112519358249964352623893472467441044953456569521931748701470329287352240402464937860049645856627934267296829211010886765192389209635472759930128757066803260671276836297433331157790289371740032477951182370483644309679728127605974709845520672136109436334136765598409834992742223459048981716027577761631529062744514467034644792180757054893311550606776759479322999883608199679833661162579018214797137629041278062415823972532787818626454745064154420370958007005178863956856164660581704157335040950813825746363430773237214182898878400937257503870340221836579100203872926285628518774043400972323797271825133600481189924100532641333762994333840327667002068081170384886919946789112203242536991091883044239394514835958404409704836724963322785264703143097974124510942024844055470642207776930365665160869495449638561928797943782902478354906326576152406483743809648958890480596231420981076631411744067765679322952924926736954657760187210248278876309547676324568277516379276376124543359382203715287505717406336790546776410785594731741662348324735792056314711147491171882966689028913887075980336301511304589250883231423281716577732273657759865673539545614169569829293933201365706830896532487857445011311771893300455134606412740413469252242088800315494115391364392755085594919139509981347517572775166872475183809149741820937310645480229232759841847119068203681708710536769734138204690749086368280714706630052039816124454834122010344385030061689322508690441202143217643542009181943694024863857377592279504680939547969278453865299251250881311282579356401469433903076665361583989480351684982090280451474701699628866871573678907776167733984517522176429560189787927755637654504753123682850691033478442558676205586879973784859917455615981551404707705460430974002176064391556903101253121870735372942436210651675557737783054249706150052201718485025507665219369442396087019704370408607097964255942079482515639748046294520637178182998225948788727867040160520343932453063739100670648294090915453495199554698379470463175132387526625256786302994219287745588455422144751013591693507318876550025299256790794453715348235766859868017852593537742322600565631019492051562141901160274655716774855969551576105884400566996425110976315303614971175898551077737049719358715266668137109189985499989484357524991031432701245174455225927769633068839123315845113424475554961788075245747792410158954251167599942072751600350083639376517688759160260128574947376282247017892944302770771294300627761263402033600274753309365870818236075651222177058677251821199932693412611957949049057050559476675098802454795608492429910345603164140798761758382566530432679228088925354889931292416676480298605792441343635590244001751371199110138306825420626556228288010252648908529069203065131765806178872582706305161110624408157878272539805687713653334510303381290522668296002864406512269861917697435505082474591585094866859330225127512167035967006663676249827238192640729189521862454483656532116114277036592394015256447116758956476650494332502991303005574376635583140317132911757355501158259398098200403957157420072963491951395668908399205972127017753584509315221610820372684908698457287027253676417721452611352769650950439377624842141700847931286563137027236064805716834133513859558033801791976460066369732962715420721299646633722232445878761178647558680943777386051913794221119535012856746679294555431757663530845488217630066902286707266806681311494938528653125712176099156622087477495402079267786456157391974223151557171043376366312543167707394745420045337328123827276381225900683564580374484883784192410602811641575235841190419798689776518128309440425853949596169900027006614155341539909488870990773487259621278668200359668712667953092353614837327301145326933763058431135267131299788456351462619539705171883104041465549143928560618851221996873887060482517990006022713607863132843384344944270679512223845237987929570122449471163160996715112008189539465540486702593452524839511155023537179281391698751974721584405285375990975931180544617255781997877100757844112236284427086947419082530211743700668515199580924969906781197060938458582961882672101474360781402990088707862901029589075841960502702478174467728650396112297750093081070700615152461411886963669197766799886075341583132876141432651871646182338969112244238991183861273147017201882004922857316320957382148994822724472381733416870027655104734977601368930109366280415313114193657177110571087983208360143455265169896297961678789436617873973142603007000985823553502621108762402982263468094897636046960868160964557031216428310716356232991745962748557959269832143196334213096757011067019811144626920913576283932148789332435608221953539636535181375473353398512689190094985648527020530314433535036421267585030403078382774952855959375024169710917939714806801735909693161321385932501509273584388581239277082936040318976274306203998634782033601139171528484572386499340015276563999071249485500344712790477787677052034230513399723139479400937786005067086318791884142794924973216293841799310669316816613982559772862295208712004329311495006718022982511050031097855252228873715290228998109783462568256124652409566433385881603730849766983264392286019773886242723294700350931132618248026361539035547929099658177416175292619760478335488644979466756698626756722506396204835309071080675526635118006167533849325478770178520989418581801278091471893411595891437792163854299021058567049324680208507792610999938465289199570578511711328920592204651949345850168351680120101294715938362855481239409184350435529230908819004271455700540997678688268054494905021256585647500569388171372641298271614127013870497198931658271635042300660973539060710901462129733455892866714251224437924129183029931454891670127452950924497873541979910626640736687705639081934618004995697522309480718461260495029054172997725722161741301618415940628687103595878963005186722840687628510698036127290710809082023054621112305257059396076387454037723206103519567871706379434122236132919771706589576343554161673637443486759133245995405708710419838794934976301078600453290643068338919020995127312112603920178117058841620956729128679648601180242330309201425271385576689660657412043428795951436574061066249444030343482889898999352688875607869011663497098994641511510116828770794416289267246378673760888226057507525014339152961994582758888158878997630591359599590745117578836723485336344017061819535478317447262962497082565351201166649935044866952965536196742360508759482420858343666314819673339152491359946471968116988570982296727054147578217321895250670411025734117735994499743824088904765567862439151554621730953099331665763820445487336528349433217153254850651358609885657721587125893071516475299556481359935686765520308980022964532493403916851353910408160417914345644040055390762335489314957162207701555113174117913976847494546024801239853518110629332198208751852493138582887801608463993741123734581197214504134461263960852985084848253530751838616974878218163566944285208317349434544036426658703531898236889708681653002676230447951623845519118317104315164107254759685264480402284394854436362267576012326984923484970540693009963668750441722755383323361270047548454120087645093511938693378213091785842423745064905225430881652752547501895114734428340767367049009389871315724878583704879121134785796473430675765949006449768118007936112159885420310349275333408612948994633898720257329022268688020037687761975067609024375615152678967971900983975357744880982190872306121326001915410670522931422947292948067362379105410257747060432736694130479824327575856354874483686543644018549257199622371966564156210392036613593083651266424703144466635085730193053318566123762106319703162821743941413620854523455564392633758760013641997599819162381412338408858230136110048812203433185074516495720220874330095277265519924568257504486888594508311571036213045983282546436623938279157127916871274227039491666824919478504150126860328513153452596163884277982942519081906772272038243628859603544729049683130719292479536574490086928966727700193230711154531035088655392017104428605943002819174662731987874417710338197752579171053638212945350054830445497971536102147010593337786147252194726215883148558300527516279122079372971390621808624077771977617462435832214240214596594268278238126908975621639220345831550152798809987721523197847680613116735183409744764123062814502511527292097257883719869295692429009648142136836376362106483652994732436224060675151382828379490497191022906809447735085411599660975313729854782155481392189636949822743331668169433366010459082780970567734929716673010902211438189788900379647809829939750211086648499588074048295585107011611386515085093914929720387280091122506455533003715364795049342774037869976915143297612074227133339997711652446309495070067817467328086432389417396430377199081314060803146819621129410230142441957604124046329432519954755900988258029405456006496370025177770641969950475441550960034414702182509927904051673950873036898734934427447354861374389503797404254376846732229888792292400427873336566445699500338437957285454014063350446269772185789556651582984610058105860375412393587849837459409584475740715770896560186061085445395090604225978504263923128110468994171389579010366905450481436462952179576208907322368567725110546214969232471285053023860510696630040097643391829425743273287623321610275190941110082154598894295993350059450341473286814746877696697618213838470492968915180489746057571765752140210074836668616032293425095073159299240448613257395189171924758746206253220902889100684623957388804074667227300503203271287250339661590030385785354061287268016381454592262048058342503313002824345737713541491940384562381628547464746336077528319418315869148057427274434254431380581090211711684026048445141246783585669200805993144206047582912688662685437012653095905051971707619492729009239611256480902741602511806840222901676379055954164297912278211165741023737612241700227044293517076215826249577479684357150613896502114546406134420294104389265612019163411564874520344993647634867927230953155243681466769630632310581884723415883822502844824112769921046374866088983312312085531263906631779004561937138661533447827757681067159340138835954424100186471193630324581231465659883143018211055614745776011580881668527567538536408099441061456594968006844377668256167757262398766303169664244470541009664650456376877227521838108604940913772905172429575276722804621953041925991187148851622590096209215155413813112470261827089123319543839605459168937880487255247327624532474108710534621928874274545009398742410096581805447895560292465742517208523878053549247593826696838248397043012686959985614070265010760446103261702843334828746838768199346840650217923676453124735530595999324515091091971922086422877993215126013558121535323875206189777186620875607855312190688455808703722132771360671893602149309766977731322305234452003186619075647208267314368662912216550073140570875126115063194336302485540634613450073564020268852810894589650919849502165399917415825814286586399198026224705545220590159234868843809007696201245422978592563324853160058629035137041751755703107355435953269693791408377767865057756041774976558687094197403072399088966974203804682605206583248968588907881309476427949097146170024093948541994949019911726574623027092527434853105702145004080887228229777673002047692484268239223803083313970495047491677625752733640470437418591754959753327597784384129832192701490794816284482157945546682492988821358953763929052861728723768036248270895803224331311400058467116527275053068677840509823287468808283690632941751120591056151186582333824647771360452929466077278233426014476857639773663150974564723954329855581663479053380806033043485802728536601408957839245533196546252565179003106520528485203687750452178324196739666082893841037506015204685700220132757612708687325826888117957629950775669528612889653966888492129667459686501770608036152043520334302988312368701706427660371305832332889823444498345171449873686767262796181668199622097129194405342565962388645032222494435310319159045513361220874592143306645377799880539975007482346500749829230281078533644530481196389824981286337886142881475153007165507130696046558199507136458304892163704521546614200758066558635543486543436369195164275640242917923033461825425305875710156423198762645497785757591547083664732725751479616472671555909347266593476271096261441838131717112476829832183740016002705902585306332868707946640604243766584677976359444953793631763029600993042905977667721434538971514340784143516847812648778116842746785845220809869732251267613450975245813561920277070064830396570329325061621619634632322131777263137680237013638829146683472883190441475391835258403579221111094415932315210900876738643863440639113633639363429602839585041517165184894734889391317476231019880696909536744758156804743588646468070385421991315449426221391546281057666960499264304511359925515456586268055732685404759502144622153518613351797063549865839213723537023773175853676304991775106253917587866541370552360864712787219012160371052787578314372307265523614721111317068195434118326805259713635511805903435615320086696056521333748254076468062722582842724502612990451963957070259747470277202840076404718100814639027685161585528808775151999273511945762990504668312882992086016887015961129559336335812281064952880307881601074621582574279280301148105702814375789885633705772633110161914601551517635045141632758476994451616117693843092225461888385898467869146140602664492018813265494360460176555730085605405380209410911513429702339886459207436062284895438001576321329074450076021470652210384799969404121502380183911825740595975028088352591312013169752338917480173755274350039909907214186910667764703494423687647447652659884732980752720484268451254543336650936829862083456285311839177962124793563504383384334810055250127967752418045293820429803488402199343501706985514847341642641484341396478490653719475535299667138690516528649739374657235413322222456924942434027168716003905047188592721125131797527513305302573379508113837658341517527113542154933640438962885644494194348890008130543698357602983099623827560883123477269589752857883217659206091732447435319663066437234350027526630308044762136869298251706228482527234202790896817320358582512954811242495979586929649192488863087551070990272262582879594077482841620145072118689734361019982564292500033536273059215978974298767934704598330437722211224619740282381544441006510089088142002818596417912784079828467838932628355505131483826692567874270134630992864917596773884427427388027920062000287978005148628593760412672637513089088006630454798068292461691831835548269286835642102981483659567513965981204983545771678316966602495525851982789404973057097760780366712559642317962266115910167709179601328754757832016275335308755209504715590335552964740270782787999885819254138158385186355686242689400183439928711908934777849777456791532669619355533243886042560734947232493705490502631407428508019978443419434611368263349405796791440569119282398134593320386983468585112064441034152150023313788938685127722455600657028767244803126142374346670856525512408013078702044588815360144146352835820117623812208476591295989959448396525406870513123570132053156741388001444347805165008454684127736434023423027224796116676279709857772883464849117333752103737802410344118049610718389057292278027662239992875028831894548549487139685252401629689288511407475803325668711621393266162453895774551471120920376791539556006903600889173943186440044135498387170171103649994414195769362226031853814910868573835330154799954218981187224942864646073988953241937481320436882299695409934635046460230346963390703050915007666831398132941590656782830235399019106148324497103094210037522681380096647065089633940286505816819763901777339072623934166269108809791871728837709205863833992520336349786585564269093766637940675809398241277272359550879625570652661300380407558850157691782086278771151068188776589219551712668911478602486702450002272057845260809546019383456319793283367179538417791841053717818520322619847996618021783935289470753925814506577841357475996801787238460649605872927491213490319775726322222948316681437646735090906449910469400233474773733609780116871469349472662701562937837704557845843354713080927443395269058250483024185267532362065659810073618296385344806096941754984082119109179228689231212244086282859413208768225651685876117276338603332733696617320787929130659913399276136569226919631041353858830706719434838154515684977769793130558989371921131355511994613548027771564726086959519127265490658599686184890235309051130425475165753869282926914362170130237013153788825499383572616058831545841404886473191110164645823652086178373162261800771038420243086639098161969731518005978372455280457527017892574945238882394669472425510784268728727415438217042998256503213819550750874306790085064160717213563810607878063977187974649637227467563846057335533564431153574144529658459888647775705685060547931433258818261603554171843263750790034205264434891511182492104789440859303111875066647788057910878835156085958320952909597882491698795619101668077180459913919952611367202724360105965855479644688099667025666273415415792464481823300945574426276701364692245760638727428639862339175096367901604613818033659276785117822966802521859353493498225085765329034043274220191155509444931955779676701159021862117296229421957451015156245894937907167357225019012764778331477706893345473029427133937569749794729022162284159474908623559907531779279672289755718661802401612105562547725817329186954158575816945085354396190268441385776440109254232453782366064732538106259501294150546927532032049674079090175761630873502180982673867498630287194399029835328141196155526902770638464518021308602506806162097326388285223358835107565305294651586398556762924535182623902366893649272155928241088689891096270897888170627715233266960706342375952129236442054585997453774634137940101140039297857852568618235628923905791620259300585344872258592480981271448302681860439376346526618875383737948346662371044646078872905027016988765429082886508615463227009385618247552479985391262132570318543414552471876251765902270805975440799553084278045641886562979759735396667260867760962530011228509663865338179043704781352064411574976878764562596457017790536150350602634346601388111523359528146383421122348111386991927842555123343835980600598524801493036010847043147087092668175665516464613808696068533242983602085370906091619304275066059584744418322186472598234322570939478030838230004186697718623431543377300990416941413782137545053745234175955226790412042905662420694156135355662655824914240175496833632183603122366918488217275631104687355395863545989917649881697822225306206652329458419817226258758276531603673461224144120229505329889336428783414699381433343331748263425150067718689813803955140161961707931792189711545327758720348354099262675419141721927813507236618553802336754584437910987529314638701651496473604871092727610667991826135529170489123873580599957664185248228387617146454836790051302417180897997937395782100335454900813604930727775177357013045012432180497962286343514115055966241799193439187108557982321040437866612936935679964310645598130643949780913613665156773150278813896872487607616836414144190117371041614659380088747695422816484040423539768108199685705220111921347827018089382542752460036173285306523638584170221703036605290002908279109807683800870006109681337893807249140087881858482915861125468528187733960662067210133979070327633051005140115716775383282732724482190364833513310579141631251881912016510363316893273907045292351316011559350787533816212080588200818031514385002151594890741119644500977048410268278045292204868071723524593143826673959003566665184262478601170557994982403630137093245132417024904732138106957760445691912513670442931598627424025870838531467592263440428499809194491696046787870681894433891050904931673022750790135180239841074179379879742805061183766761084110581571528119539159271206124052497054255935400878313588085571308496882086626868422932836416097420747386792657288697418364091521867766885535058381011842525589038726311655500217649873448595979344283974159071542639565139824557603877139445821591631388700777907220214413316496381977519356143007183054354767571675384952652879181006519786103203755447319423517413348145064542315955753102282742538385917288258804610628271834248173322329085046049407008003050246148208651287775513867896386861839687112442699911723160504683777637292923556417278413891029428948816239286124151455102925197211395558754264810353652974043002055002848238741372663420393510854566474260178482371760867129125401803575834635485359386533632122321787627792076118522352465920477834014148733468595282346617273820881354258237926225446346668639773078360337438229234630858288817636453305939247034021619156400291518279757965227572106372102711261242385350421292573776607397476806261045976985949826939058638961466483622628394756999602211428191530783763618981462050755703791675030591235812229644615680046145166253599776366913527667926548247865585917748852486355692452891611278528890014217486508483571388099459150795689311853189071230627151979921912524161851587928498416042540719402048065234493480466970211977201825799117379003135681877500094617601640641392576449506992350417056212340215919151216205082424308267948333549453537520875693370320769889202643247287004594567337790751786563457841820088922625625809938490983151714147513385365357286509372685349378999259035414586265573833942648946344278808293651106033091990505379219382023886215520577250085130423900864552155151997276441720016206021236141278086385919248935560023582479367630207843051663164585418252982965253534275568843795962722424637030057075823754012003638207446030521345772766016698199987855486468531366468412882120932041660432615028382711238231812883015643004016729475799316469045216092449383941485765872401473014298186954534452389171719451120012998670655356679887012213566157297457622412198588272211772738726557378340003016529437523256291481677718120625004362906541792963779336832431853864062647836687096680807266630920799980759827333901500933454211724953482205759943323811820294452249611558949162335484131533323853355661949580900474218363179137463729800867556080597671890703911794823834570175254008999731439404160717588867573834233845562112156964734357987427605211646758959844765955700797564253720763269602313120016167852118135927134979870780086725848838510723056390904685159639583675849772832069369919921112886303840917044687332146515174754687283188267518632333657887375257119253697824587467619581950008704329146782853602191527918630411529919622438160388941652738899186591561892487446674808741766649829009424976387755688900644558872497933250779254855459140617556241610005375567356967921947696409268520686631112615180782684864829025536545206695227416100159329070716686838980147805815415673961223981192603576049400031841286280054292013778532877558645613029051065376245792960539904734105219429060393467331895425835031665827099212480917580031101673038144071416948177114302033423263668992300239502213917220948500633033167803780161556139036020934983519956049961777703179758687075808223861379909021660273266831557144186039866520506074545717263691672159504727053259576991532580673551785449746643421293741295839455341372289518909229248361577347786380344048672855972430822526518317539600066348019997593966401406097859478628416831883817680376058710371040860498225167607735196609440427294859380064585159398262702505783406538139343516631816861958220291066836452905806081229427610391167384803421200583947706990333184345165466032522427517047673222801474743372155582039482863161502553395046680703937629000801719686060836411502538159735158678596752909208943946701007225887908721290434676439514744122783314206961131284316306074119325369132360304956037644983170769270944354669774603992877456110245282504470139784136573173287785134452575919696578572242165183733472451724938233372771073361606344979493367783782745482867471769522689641261469201565134560243541017041102592205735562346938453154374774216622252836143999054612013052914056502713785307132212416279048388784745183477227038053691711213759785112385670294976021545247355659092316636251076653556996161200368638191951728763887052300824673965583891138418175431799641153821043053062974790711522066905127892131604671795840086734353456466016945934774944352196115017995025352045081172969157427159271994883755886219105271541128179711275225585110606634118837504304521846709381585924569290018051233456229067960684523195641531837425788195943713766761963579413417738652013850298891688369162030495370326225753810523757873519636047722863263175871864362756283369035201059570756473434548676302403050990631990889476466071106573514679270964480780815719447994637117817602178820101027674897792997002288215843257160938171489671847063885043105635561663505952938500369398069724225016906523243975814227745638632084951930926828435729747080289008646790099980292425062082448364108231659128823380689853738423685916327831902101298803645590848836463642975092295428375285614991392138003354185145112181423930726759463422425860510552181682649281151580124875581517115024179578445018958939042944457656523045665441237543073530276632021546196356337184769984761892182569491204448964603001481239099357811252789987973835309717101828752577802689712387108150872893172191787687654700596431152812046357082513898206702428453692710359223927354205481695987666958037149325379848665166672982619124925341761477536537531148610003375546520551086479777597613575307697146066510312012634098635598836676605217315698414464290619048197420667836971912782104909403902262419731422645903470573244373303057556167726604608429668647901572919648276532851323803135442854802577454037422315009385742181097895336970324068056312248760707495449846627035952100220903699525037141151325626569239396808322711283020536853412168997975358748813852950289573223245084781116309215605174939704205614345841695567804408327044022309589149359014732820149635434071684743849574201093894880042940551960852171563528613644658502962605450575245852768699215477510508356693743533552323388004189554149689332132093076366485837648097111113499337366028297875249659668564821064729859860541630896756189825512107910370268729548225075271441451191091203344092103511346748828254446594074257454982596242224059205036386081517415415574336311574816503244996091112092107414823355276586906198356533967270166358925432835966543132749675157357426405937564796990729377500693373988361022602006931352151870267376332584610363220587291306922823935039715704512597542638855224892950960312104381783624997054578481272792846780298968025605333472207502375017080577357928207480573061601792783494933742887374821381657280204264278031133235288583937231727200493482088980416559404228562625517581273734244179545214546570156320399625743253753904940945490770077587137982394562669242403394039968359387055201732524531427458666234694277220560164653957076113017742075266673002418686850914021528307392600514335997185714779247700115455186766762490499474606930154773674409496421161989349935495428273928338711943137093838236316183424762450756828257662844342337547408284289664899545012028857049455904568520190836254323715002908453391523870386812581363316909398833957250395261557519936548754743860498255075773044942513303618550834613121119436342945424615336122201805291958878533815127987041926675152422434296019862163124355101345853970731663443190344351603447426338173712816475990754214901373263878699450857557909098546360539868212091322587968768972600964262976656537983941942005545757716838745497445876267462665533948104063329222747768592481291715514160280015540482885108128356662545553178987500536590416354137048491522995262293680625671364309281054770843038768127904749107171223919598622556670144690807827767711758783328296666938086322379047367961371086294556712540567650959191496680970757927052329468777039938528475883168783791763910579844197594193234725083311666529442200343315092417531508370802581708517482845380575969914174967243490046126420729570983273799145533078177088630941012727557191803157354110933559634129874552107844289828683651632323001376848753053832591223356863237457028976483276020025463257627237920752857318859102489514522876771957247949721293871031371556296036241160432381595542046223415850304776680205409187470989178161792196099298896985097986261284434777590076900572915167383334305128190540345184488899338336756643770369770124632128804982515104758555626039936200440227479342773187145314719605415277490261919224663875808695999940529397064546734307655945933241360471108628682387018377957033777824502899855516663014732581816736738940290726469743396873526341858859916912659395020786089855356779634476656383113535906828547847186395612518803468215775602669936024274896429537077991768699880690798861652440335704198859529446773665682712958456431786940528515096319746212981780154758972165108743474120831252637922568429884491816885144740654484045959562095327716968948658051262155569751187249965163740857719758988949920023082959880776701216337958019374613565678398032778509222714513078706322069785510992880717481675120712652124309158844881147567515975483133797645910283655734193375457745778150771094036921096312733467738405182273057401491573109613775030026647922341316592824617409970925732586192305749943164376225288910863030344180510236947368224741050886115819879705588210673999044494437957249420639194586653474921345831950161592038676386555699491161637041136613991458796556797424669915511473711439377439317025496762145662686342651089870838005302285360309930656158562475467773638693478285394521349020989948942832063307457349716407796936265681208137037397746559162372928711145189746879627276705664750566979522382519536730841157251965892503868990898917657777187211258600383017434497430121426492882687194688096900884435312411761150331252604899076896582683774017398450178426609863379387232281435618792273519441162440520884354118066854302076351743802467019640445117639905163650096203440320522635121575111104027356019373453208742073552151036100557500042656113744379728880455209716739946675033613959969356907159947615298561659871309449735653621190366285134204038731576160468131523103370592084065175226262653737055563066484198143519458704171267080500547935810351677545440502065819836441680264705527770564880423868170367918493005484579362485833202758287270304879189589741575443406053807736678551201116162869709784184332555980234719052193718727786799902626853659268909165868275472222954536195027163266487621625605610450721353651360110409751794473990314887913676486566872252274030476291546694812742726709602088555031674279461699208125064094283203107091093654559075479591395014959401695846831299761634484922681604195247774772728403545432194839492176598922690546786737082508147538356371052342230976455162202291413521629351624545176190449441005896432233939420656013554895859832206143480021119593619479068740373245580854666443107686148708973017895172817944567613274872089176768156788555817414139944419884500894058541961469080115209922571243229307916801067322678829093797053376239155060920850236417014658667464965178769718581719482345622250941843153067313171619041248788275216318144858752357322483286876594049179138260039774114105873290097898355214686160718796220375358626351186404601256968026261170662229092570839872747634118597195125138498915546793568367245853481148453632927063583201403739736167858741367618473130115097251440889612149860316224619080118075795838835724672550453513311063822489492568647323098393620886286387441756898632260860278610068887179770423836726531319833930357929338608404232360585708633943962139042221072986633990455134210253019779671981559486599562467776068562999700371383758222230647210211340662861213490346519743563467475439596581275411902887792426294830295039575238994440006621275810342268153159632107700058035412817955458247693889872161983664727657981694872724412311895170328069225541443191455093983143662744552202457404980507997404865002481208461811029693354741337500826349248979465495150606255323408095027258020929238235516972888709020294957063427984233943973765081684825639921738442920414101792243861102777527047944383013399572949186868369598317724954345147858580556608924215227154321735637982790665729711689664703271893950097790760661226768655014450012359781687976444545397365251974829879644598681510887752831717710120967204739657586734571043509956779360481550952455389118839958307394312186787443844525739907983422224274579671879765924490990778613802839242033823325093609441500290032370252130705281934648973273292579097337216179152085230720176182825490789280221796170616164631222555303838356039984649886593829766344139007608034097553927324207354637877905597110500679385442993978011376040414458374100208173218822385735617533965806634409826274180179544207289357193354890123909283721261885325898543083935224145135542403742794745763717984227859155588467391421673225094163138607790412291074027484822415156564616142333339997377620290407605299205624655480267199661880280548975657648716723442606113597956932487123871366153303662786826575547288517513694900561416820810719649656219955725578621063319611979145340238772359196923751419150243986876468529446800781572221916742437295174393897852091804769720078629452787098810391227430569574237436720561050233804302175604835926550749763143726390756951472060433600372365932385973555043035299180721001401734043556721778963307726094469394450167145595335785680174729899603100529229219122798780596209106480242598278477971711188076980888385144338465701516624546266390735740385491813795799717914463055687177802609646890020665288021169405303092800321604233581247331050832984340679986680495944779774231684309227266360356941097123269622418477233210046410200857790877486253962395437717836637896743606156440404026761644210769779515642487086162649035213008160577408212877868022565441281085351870016876423970715181886126665836361737880915459862447464118453218195968991603685986073277349272865999947888073955024162546437336907782101383099308392807998730855858650234309310993704208619314726414985575921850445835935180753938093120791085832219491194715381717062029585108469149632305768410339567049286131689988336443533821272553021015783114317376125108123566254904627518685321763152232038218869600772631684156098798686921970502701691611639234431002674169037542928868740655407554597957734305951484996283231171403549229898196818904988753888775876931539417187852602018693275326479369745074733492757676860508409030301278796912860394396790980571652382797970604592420688134717760037294640885227066301469676294627203068522676272127905087497144474975533227896552683693183654859388477561206122546606486562761160593022738629888678430409927589929151158241815540604339946047953160031618106153997947464045187907948760003683658060745670098595222581711419412925903331441851575653375376710141516184560921648627427177809768216211897144603725440504494926023921299055625851650269065291571542197507666562734613379724693092801061200179074196216642722732183054094653153765427757093456035012922314789655584622913990040988576796001331398822027851723800591917578567838434806961075140609719538784041529725789094343016915470020999935046658109690109471979843142344082799827139496252485008605307418164328367045213840051472655332342237956368884954823772068251147894827896486724968269281909096309993996184257638074849873838256113582390284128220169009893502996736676485503814230089155919148724623514105949130184225817924492112329189556394011295424960688470384698637376500331131814365442374526082132515561505751048765042809137279367928675108019576659100667141338335052819496478297333337384495172747707420350280559005586939142435182064952657716409833550410976730289895659189803208538054755170922920931303061001470239113827559078909091319170332391795589664945608623725627889101331979487071286233119682810847659275012187254890813753058557168838720184041727308242191760545236470793823157753024521693114542295108944344004791722399837628012849084192946354087097771739682138772035133852133823612565635483192421071323330755413162183374327060785350371629903017558056846988785286432161671112160801571595165237642274081845289083742383429315752297944097881845507609720505185870605455511582052352154895226638004114407058949077752176778638886181245788363176962000354918442429933706265122895478374526023651918359893455507038955329801205921651061810188209137285502651913409834081821644273705764425396334731770319150591328754697111245239297110656043286556776648024096412787776681346941423150131316320261704260287343507766237223913791102390712430993561275817272049505320434800790707692396980470027538320326772761409531355858620014452831893018478452553021511787145423578652182888250727976062728566416448706773580145303107781071204958632226720741939346227647998256510985830764007433677095728502218140022318101866294891960386839711972991626328004811395260816234509476268812706775234397795941540964243758521717001278682650119479156942917598520341562897655350332123144990814198451477681884913984045846219659747344547797875416803216007934959616990391582826433594818319089133654232200514386351158287855290888916410930699906762747990130170285067111869744307318637962818112094625371714688474197451605962381647573474224296947018718193742041698233375507384488192325671599113009898499144347333859142338362854592888434466691440487547505371694462218211867494430282577876451155755277582358146276095036874195148407445007249035101948854916363595044585305044502083403119599000356319432713592866132964049599225729248814371158845168740957034085155032204848537107353492030520850358903102892767253928744513347320246166590538524065354527458203820490886458764634099562355170871246561052188873852396929981044282956331347402918823092664512570514820999535233332770305599713321613711087605380053613321284013310858750891917705837082018194588046748799766407916371284275133893826314329043373594749512586644657535047021812201750930811438786542882608616867270592069341059035635464299578642966944536035079417660897489149678071794384196315495291986377608317092409615526666146973934072205837387306279357680843102357980658989925857243035009462346418285114253310427048001558571915030447295778459235232093983226834115602208282966762737887957176935756428156978662901013525042496183217138137910853719660173614783383617750617690738925086240424152375759620367818346722454263904566318100025811553229564987159135627442858535544023096619841708585408844927900116095930436058543887607143986406430299388833449548242580370905709152973447154544063805990951632627469686908726300492810156942196625825471155181327453518855381938865979717667949863052691912606987218877143354940740371031785351206216115826038545998631426265466522194480454169648101874934427033197820331770232022673443699120148982646269493048143752205265929642383117145578927083216760448285958942983470034802745677960122710779583988494543679680880675495441219251786827679081721574621618690281419138899149450443812023182949161689228453451251322139787968587927624241151081523541139782839312634894171453902851188271183654295203184741310490378166439092531839407864854322836808115990352309961050877306457982626962122071457794515036770431777087702136751843263679773056081616692602505403718752415183114406892448165654693522942518831332423648355244359406274218197150257115665307978734675944593253931200157572532661642847344329358612649416562306649862133589435571801309452461919009905428206895492398119109860713713777467522384374620142660612296236592184873697408641017088057432646619168328389302677566198325845493200668772849451048168668183572882745753794063148413397608650992247765139620501568942378109302153778137986021371019011647526222120474805938244716594886211643652094092747456808808208589294304540442626572211879617316906420145572706169568780472239443969022716567656169040523131498734538416482029506237970288880268701026159285973083174364082612495437381366212718538715127306261975367521793245100275854282908847600061354509797770240597823779528039341725557917487491906386889613610599935487182334359674658171554422607227341581172782415016628345317794675050340067475132804394664195753011678172675087373747509068140459653610138074171969439419073775869967942024944010021963020277425002929567714603305100001011598643962278331130458305293153818136909844031410621171402008345397335551913855551047340165193442673433957538802312470293846125934334266720545660195385936356932940423893614418793031224908961383976077691199487409802143392242506144007823719895679639643969063029359379929493726529935809685769006270930216188587981885808654321656664595219085212588188982282274622949969391944719200595249801191907122725044510712302263109236023870225216260191847838257145720822606724881716707513259291706537529482458337072215667048906983368042850719260324074003510832407171651550994363431052246298760979238955216119832403466729605494690458710463931545637047446072231000885452577081159254554902114299356867325089760446245284804722966633240925057072470052223727429357415075932712753536289333485330099678562282420339496663777089799821181885404080532848179716163227528815534313501785393843166800305816584128440299024128850753083930555580004337982381747049992669053000207752679808785456430415051589473702512735752427843214552367413551980979455845464684916503524602945044775722237742861115082818416204577716511621963990248431425182401243822982175234580663770162929119247182182003699024615444906974045038324247804009679461886877294029537415817237141257633725753780271833886105552932855764382436304431894981006202662360541359253805966398718128915187959016013144642893007741507140293305039575530770657367995016328070826580692315887808690670323857910990633176533794528438181440558121301458773843460687364210572527347892362125296786898686410028790955413089565703463094439595508939914256973977044433848556744539638112377789647581263569285551668148164658553806388737255100820496729659399547695187932220868977231745517495099796151202553182584014156087204151165982343315224099819967695018811477039888727280515044337901763202045042142573676458985385914002155429851812159140652901776559659347876710140395769483750725319833980334832793995878928331599877942134469833688157433345365114091757956820589248947791532901820908239772278233654558888389830505211848998977574863405123905821746804353487117432564166057084620071486376385850257206283392693652994180937718770161485274365480371736354735910836166955179583524944209105648616515676870284102053968087661045861500826605294378431554697200104681482308356749779812690779651156620292311647524694807422970194393097217427380880974948178227508478605409157954689831705551910468558423129412028707400429333210282960495082170387762106502057649301242252860500098251166422483739169987544444699817398053765269266685902744754346458857568450479885283321368939206730043979128093729318209961262974075449350972943302445399835679311723858370762332167486002953087644819191535093492045064922315887962264767030435195432299930819411983882622148749691042225599188038483678276798505772654062140034867545532016822058494592783331804556695051607178238656221643722246415267730041435015430091161617212546276799669061877469345097484939269811634151776045019881413392420521933129995667263769812050297639621369779040905651441353049985020144591175313816906102005747078973225732377205676014414458206541639866217659664094371648229319297502023682297406186697589528920846636549790029444840931903466084447327802002413337280956740704397542018123175763096991427071505907117922034406535330572683479016833835549735509808421183350633677893302744329879458403682735759566553604135966218648671079169194111913410508108042363652994912567460046880960433530944349834204179617330953978594957703766000888461521152449644884449646226770878502707729043721691730613745861108229536195032734846069823229876831302547396058896413050776595523821962423488157631865772908758299430584113707942815034675457290762132250572419885739957054945771627360786651534024714131479259015868268569879991064730290221465115506543088473816764754541070580658638948361239144001120141482676434994064380546353058971018986945387202319179625626826094425578336659866839089774616613735776098092252091755194317132956576742398015547539059083532828170551076991520201579869408071520155765664501480816303555927177270954176998018700886104659306438045353529486567223448608727718663996404645304288020836689944150795218250624497437838504435561248746503879066629812937885028838827690640131998915392632955343803207860848982628878738412255236214883873019898491808152979092787602430867760819835998893790151361112713581606181974953001212640074308412322766909520632053552145520096551025682021263350453382128844456921337960827696686890271347084702096018168409606768001122836044076166857921161945980624059613300183437899811037068370824738895371986194443399650067707535987148680151954021893886192490532538340537433928173928895901818371759486157943210444647687642730711778417509109642680412981209101642013019932258517026364811464106567927982674891504869533803080313815309880512447396784635307937933655532570339317392631167964801302053058745090509169281850801558560501304258576897939036032329309084409899024141726167986285619642043490660379154472891249143888453942303848815455766275481869288623661452367359054452587805437621913595198443622262434910083317160289975597974991503644217017956292556438377968872092428096670064434015882297542413839792798344384752462112901303878828451986950713036066875078854987234004383344839852036598739087337832458442534027809351823304907658230029580102194100420116828535041973361962896512213335441191965413863205179597667205264174168442983473094647028317498785775375251635595115780776054880149498464651677277083740545312500157962161431714196557690446606798988918834330771003254459013471948384054366037400195679578061663925840120215414601635680092688865427532207510075146835587632631071042923009357893031237470594898365531275900823387196335060719765798487257703764875069362042924637019578857566807739171663556933515174095593178565459872271308087247826804214936180117974391455183722314437148079035609597874747634769612376297025887225778965302768461587816086518810481583146032436770255025399074812375818934426886481019424007339034861455071345462997690635729555592898888217300713872147449837160346776010374549167094306289781926126644881916911197857914123286393058195558219981884572025766596191733760561293998081052473644311284607489664118527626988653242501450367392373480938327573414336554308887675668168193087183147083935416723984133397119646533968142449760301549759364752099750069199909646885559040582617966161184990604435442992640081002312144021277775846953779612359291094240198715657449132996847698021360308451529537124173847443091906721975118863065613031806651473606240187550170421002854351964363666435620720901987158376187095449788283736381684470253162159589550945339425210866992402326520977974505894001166236203878513204624141309243643603055689703746127680169258846781985867205541972737469163639941851639886511612935178303215768929741004853783396601567495975241763411624920129951869078655295058388871018857100950494832072993409293894023367360045027957393422992961135357660474125632131818492595052405417833190738615309157829226412111778708385035502206572070175178965837603814138054339713800708541460500896815834653372076638964903655289995622118771451894802455876167848263368218059307155889543966312522605056702066456103710521472164159672069614521472177646358590234880638903559644380931605802446811317148439183551360423422804722291499580815557422611563613877414415677929805583897260622746710983775862045010609034669212474998056207468637354389813224250049425937481170038259626637629449042897365612575434333925586535697299746573134129726717179604510589421405472171221877239175183875381788094346337841721591623127371607363489939448444738956256578878096622603359265562231616168665576438098332994920350293865019470841009802585702386307748051193657744893619296902741666297501709326805904208897868613922810129406628461990299978447010909546757024269950552386334107796507857217664463683617140447819890750817180495880443748389212744952535339524267991700351917677884617845713473194783023048987749548443060067319020251537477078688054475270360160634070430873980287912519548973500267677942415175421974749565521321907546705542292259279254952439100171706020014772790035886427412124523762352594724310177823516692559318333796325494359065800735781581759175977368201196392392829258708076433770165265602259847139563968067010058518186962116424178535517257182264255772315587343285370146575197464237100303343404769245029541351780726194051924196067952512541531698193195055503026507985390866286480998512880755993893826748405392224841581876396550619143503418248063128405416536922861066913582753332970398954800871708168832871015290819054723372480292605923215228046769968154718399067857966206164540030505389726834991901778782061613710861197934929955148084169194948461969857678714114941047292845751730642829295775911108253031161272404446737845329563047346715443896776687799446671228616674068157250156475847545896884722561588974700474617239729336989728719397042356869004160617402374051435565444506019956740849922376435151274016239533886708285627981552801289315337452965727099993110148775476250296252732925635927525056881413448383228517121224353798120131456881515349166281443695049461553784800290701879305436214674353241673903877823835669387262110518674694109636722921361108452537254772896451507072538049692937984391595675312506414065990059413789647537493623869297150909776279426825366549039850547298170465855655405412483506398519760555897055467463170365089067201384910365858685778907870873450582714493050589214945855955761527936096447596827158770979965575779244193815320648738206584225192162446139594824799802126868721315176613493956571634258369114839853329142297542867142227396569062994532855144500527764299459389050170762950563564147513975979272315037013383899742511349674687188257689025459583742167659123109399630585026682906075777112350829369364675051600292603923343263767576384416660986542368011826933647905490720687881007464701778544480568594406508146710124458723263393988866482651802365037584425476225137489051706547400862335997338084588666906430020063717243005562797193348655611774387724665792655706159069035142505607790672079225203104598698316497187600011632820309460202107781161827900306727128503310690635280158653051850187536000112093736894537948054147065769153836463499020085839375749401670446440862089435366342916224610917100148840097455173743759431006227959074700106859842645442141475491110958130805376575653383283960672629319761022555955738083042122270667222938416243394304956990899107131235750232288472089922514456155806781917613641650933187462108295018576669817399172200351451445084514504890576232139454578762112031992186297496445316910653946988070839633783603759549498423845597699191299813346910450244221352120906745261559671433389837708049902532414359851075295268912685524700733753104372915615304170337192252656298856411151077122086927036433960637445264609252667070238938844618324525052864025792249171788339163844769731753370967267368332275475716596326720440798494908196305704318373601693581384892497866490657363490843695155192496388587447069950876616882135898084889885918354566589950363016548221644706185607053827227621363491294077468896030977814647881627997666076032532243707010555759655363874387481141198599369080683305830951382595486296282139154046028224517293349692985156425609678194046930986890904752285361390064172866084789825600473334090939982948285234892121985684436571802873397670505709172794981800885198903924765685068458879587346843652181207158775009859557657195079086311769587033216100720995919348476459455475354546268470930252158050050888421781794211014634807331626637670726654149768167545076097818641734966544498377983508546909403501748581845830949372842318476322850561189886106981214993755242008004719836381306957357256575804767072516366425402579286592074542535030302844544814856428312882513187374929796401069062525390993572077832587090723246669962642668800307883105803362684161349159405873714844789780337267120313244749635518095453564196951987546288393799024227866754518526602768149877264639800733267638876110147695125947985240751443010672967288946331164429163808700320502317453646848883510226495251004725396139286910377723531330508869208327411722685112236320344162824214208140362789860907809643511253752984621318545389916478244310452870774358634838610406299539029174896296881724119822273310396301459482455777757976435751862454911347574643152807396957530663596996591961187762808049473709084044025349132367532406636595058525599524392906082593298725634920517718685011998394130290838439182454962585427739179498407457001572456553169960500926179379002311255574146004485374242202738748467660035341466002983808731801794413186801762128537981199856758272990787363843919785353100730402214722974811378105872030968753296998782024699962752601371482356043866372804592500180283358786262476072080795914806104918960972482892166809841850877644900991886714289826749644534951607256118356185611612176190238365206903605763799020029808579130663737794632648380641454682621630568839313153889167263006061171343177697223438436916548912218668814686295590140388050449925266885644762047906397993294676788227099284609116299961860230515544627009624492583503485890053745053665404168815725667278025195251006019603659578704659802646404687597585436582275273735272998610568051602034534621163006832230970772257135388767013791524810263239637135471139982652314882012100194824245364219131686005633988571586832643470174740400868386292298667179795858271279198873615397338318627646630922552083369539200350741602018406156974625918451362113035744630505556654181825171316998419587568496220525476161134579344332322654830366128972992177735138627037849432314326058162832052249937563284656185726068103725075328278693528761940077708438136418992476746308168030732334774999730948461466924645955330685008515099922688276849710230324332815657423907614254720833132424952472668318918626313245617579052705432660324309583025610476403169822802154401209102221839091042910044172617214032199673709988384965447541080731332258334024156578071355424011256095131068761965640240715778364208683269882789089231485055894551146422231698900286817879599611117231178899700114140143516085152110624660948633588439113535075709198842138209945584532831525137454997409189509096223786798318410816561160762995777081773524353316702218770856617364362493455945263251629941394141879070695444066714117449020087129140827602494328044470204011651741776065676575142898884714310199404272714950860777303900043288790161473603965598587667599475554210561510942068408327246806675500121325690063868996305535161396363024967101857640520146170099938168308665535084875809770846207821427841846955870254116276407017586361846578285951974349038435046733696199418173769939462882163685163072046396500213107841319173682721587547176982601003844759716241649426123030781944993987532907197961203730672318848873627106876565615174786198308911552436435487971686805142647844617326169415241271469900474191635142961465876820899911411770169813254269388624393943722412881070818073482714277434860331737193565820890626872733418714910829129837403347136436152447852256957549108133260568864350963110967182460044803204652142580289243530999951634933929858370697059698816605822101729533781458667175633600474511875765995300694789368581549282638205601813625832701370098862919699744567440528784904533958466750915110501189812086612058839780436104492456753812179180604409244561924050324378930571768598634427166837860886374066576762763796508546213335087729034326777704563255528070665036249485849954876887343388634426178480422246207247684529777470499577722848118008271327252628357296441537957791477475137698605687734846845983793636183940270566857178647582535294800944952993816908014107219527372316331106126773174529352538361084778466552688785563486075222277672382917220493336302327883456579713681479352293987640510812446601576232240573597966397508128560713989597628159089136363721816311294762235142806769584501712909881792877444205983597996714855068170840746535655191179825486760096445809617164284310075220092169944181192181112422325012034702619820085887171501626737353324428936107800443186994658916941377322901729554864570021794787456251227359451868476215926250448315932904480652650066570295465642862897579611539635547950202282452228275941318467589861433796044303248924648077449772151239698876452269304004022413369895286936172982054512217922286520873414188797894865574555478714634639208166216410240762279558695998608264591003801892934305957105233736877423255018553807587245389057096652961350084938350355657502974754312662150023046110448329526827981990473443709350084905997169506186010056604681629880879314318352244015597141861296346764933775069775294683170395687964707033122443483823860528460569629035895046045380823346894740553553798230602991545972145330465741734966188619114818961571805891966127102256483477687944784177999680619669836074426614723316969831211137112960652443299507033734528104407197950949896957701879244379369931153354493469606449798651118232477128196127475836413652515830878665851826897651435791358784651234721208521715099111310823327116576011538012106858417572017121342648134208890477188031399265516434481358312745919331501277022591557138780400215370060629165295949620831619180088200072444527454410024824690614759643429254702567196136824612069529182631942325737925125394894959193117474968752959594143756445026284965658377456135319017572443820228992019596276522121875703666454910160764868132909811255434951280652285683113596975918814900076760056255807682322508100841206242399671487345243585568024824777459938990622117345935936321366557999603338910909823339325880071487401480990602157615304895458044572499354788150157790278917261489596206763979127773351547095619463086465707570044328395219631095429270226504618125256118757726959766508302633323350990950720766570032155786070715313087088624423074654528929684750693832589377536473854326878478047042161692720094294158870478910026173448597035260067223191298786675046460537952766404479418527524154106381200669931176483295334992189125925427966894458490111940699005191461014284426731359094874634036926424468415864125755601050300004249023897190404617892870736959676561577064165027746699191677404560490165669945641063640111691985711190721411917438238850412979842363223172357827269241469113527185788048931701706173148765261859824169867955467067294116494628867837114382719170162280707812516037282274944366045427495066336933570730163019540098318334948184928116482223208468936086885570048874285513681239942795308563646222400491549938382181488032085490585278144978362302915768817339036396631058914845818366337648029168001355690689104466718444767836473076772640337154928579291398162558138238893984207930706102927385160003770539189644994895412251922606493226186535854431868877252309688676917060518983802791706832343249595308992187557870967958541545933648532379606694949946130083021601049814437332232809229417770062359525069947558862699574781144714303585095203210502033585095274561707677550037591205218229255210852179610508831535810780390455407188644173838423049770943789083273183968680942612663087992998138596238990161470335454669235581465535273981161475765198536213990911691070085086799041061522289564151686256529828670951778062456378807420874861409177206783332740318011776599969944431559329430512933538285148385164403322544459016625835925851343227123497020846527723484094319362775805292650714926047376001561628660761479622964985935652568677583672600411153490123345062829620090478054727747829098057727579938165526389303977990368907894862529346216951078282061288049584534131728420507762451724421045082753253902190645788160974333820679281853599243029791499947538068035887834505603866207546374052420571173361859680961795613725162655999966435748870156545803276855466228709137879080480175422669184612263992883687441491464556401798980390983248169983139300590776276592176114970041085602502451998847133134573732857275488764984632957615042497426334347887988674450347035762785766503467713756506063644403794126422472402603042356578267598437973030297063819038223058549291989903479532625194797342139956214926599518480947288513229187485934744652622796105720902362796545402257447566512763458135138220525665856750180573295558182290271123602305492398407251383075911277231323165325600829691835075393299750982804029975874944355657417649046185136291214411934921011653958310522820507127827806050779918119272053073553434566720278916891593676944482704529213996939020678635004990497605842860364489192845786889482625536851098459382516271505762670111905023087947272305714581273450345566147158271326843704737863307077477219694600821941661416474436966593688150203480783935196728862906668123412936402735124003195888376337542797437348131768229700820130407445196318645934644498865385043951450883087612813040889423355593709547244023228296099635089162873512875026444666784088124959048095948805071195282568495497206347079441158706779308418840598172715983783920397368553608750206081632966097663124344677201548812897467703110299106141006622058698420606440061172198263763881334965191277279687195954757042392334785112015742230733737397585993260510915400728967845869066900444837923925306433152857667861310062675915877817948835280908405169262830884883908612351198293103642022864106821979762996995209853570252330963289863887029474249037213104225018484341805525431004152508804988661757198289247104318848483166521073421600214551378094661090065313548015471088929043980270951738718479581527417709559090215846212304139097593231473810436790323599254697506784621568312043261005015263088405188476056443501716392220076099998005612746697488221511409500392289170719333562073746748707889666189289601629579654606267333464893112586879036825917968385412890158988697742428570188964204271590303844591799757525764361705705596025571489786747816990556622053445297485939278402901614955033973643871370871491522130962393317454525990006947607445281116656525961723247686167412853912950142455242592392422887066629513151457924325510080843969141023312888563156414569343498274300313998556936317342831115120263059356420478479598735537615910775310145419757914937471415590919646671174624918113058138180587959561793075710093971996392362089904012404658448246328647935253863480242126452407706723061649821669427541682034295498220410792126925654592249822364875225371402447141310637252384518878504310336945380035831777837803728839444798360036936160690569482152868854698712925963208494889284131888883362950306257613260286660416222534570485158498520011333747325399264377284392850224031553456172938341840359362486458695352192271819314601844790414257769699265457483412423172664205360405011553043073881174493699063649167177923887709730219043021297355749188254066527823463516458585061711256218357970867233920001852069334402857906381312978138285310784261719307023572032138841470633319941479490784918599875079554135831930663275926030406064838231680296059284127899899043469744596513748586960596153394576233400416155605537955746022769369670259525133892271916818157255400137094342374304250881552475954492728307897159937250269317287378512596136315621335839825281641580395227600468254606402410867173944898264142476912740620523958293221810020063687672255453026986709264397345637098326021951474393085827919580021793345118713669156644516310608466240490425812627892943859895721093685450782841984015838260234807118735850811353836248061483479664380762395524195686058618419422309821829691114950422336811383897874467188114557441912665974556123917896249718515343359951517995037596316287087330624243240499475361561753386838098941283377947310792503791423429153708566707690122000903236530228989541876869591038165988795713839627831120368180766470205058787143186633602749617126109468771422496869535803483050877033820290168466548441332840288533675687868503431009361973135911300954297849737124959854834668073117168345228992474487986215023961756182103192702490652768042015865883498503703278580710447395722381917106010896199864473408061910574707762923786296138794066102263879283639962258045585768512913538560337813398405272471449869068618766480804386878090880761383480014973446474193200512914664726442068443898168020850327640703326769273611952149689932057211063752769343075856660716422853354950868448568530836008741448597784735441044387473347611377111678827732980901437474436830030414795801896696113005351009983277143336553818130633420997441984959462963546673789429701106793210706449163031218225791301037690377573758490354773681372164989124461622943361540087449123743311693665443125552415668554923953976400968101458117395063551697914719526043906275323063958940138570687090701739132173027770125575097543047098307144786667327308693473952406022874385591331143018540498386204981131947575991688300416904945402986048029252506710045468485721170202613511868816908570453583138893489918352657518089680250766357122654577885016348814425476536871183136495164653317206291795036763703259173631156330834753316441651817992646296484299251932488158223629892742844793840582076079953003131210381638002741849100613144377068023106030294685268135867217305474635234102320389368187815395711529439730597607227845192607261503218905481359242986319228136531815326591937883158453810421857034892334330420219160661426480435723381391639670451311168340413577321467855356462324552606612288146526101162276649599650011919844244672081908830467936547171721864202265893324318459405531403193426780052976130161003543829194932799585839754161525962882542085051570873249889949587417301149239516447757888689767604960162588294203190712424847526140930804343598203807783705940530468672615863028051332790310171346255068908102433310477467027036817485170643057766457125304338780646474782033526246629575533935220343963203632587826450558846006213864853772945715217572575187182444158805612248604769255672325580412242287332623428773842071899754103607533067990082483609988420827610496532245799967334016619313223993599840508431349267694137699541620925826072230994224424492522310209510054828836304781603582708519020656383107530154093185183760707316229698541265346329231888847208695287719706131888335911756842977578146799965414393996184030155748957430606190207642427259559196164421658716745449683393788877515142560111162294733291957483951713424857122937483239581329899026326210817773953783278103009142745127302319399682608248917084952128074843564737076564848916209169396749913214991154572115453302116113152407382808901254469517263525513388889969338205907936527274588849172655621355443479373874327925175752602161216705312239369636298444045075854731773564417869107597101070594711459019552273739373862339060915723555738978618764877202190592899775935992957012956939617158957049788525163493751896394821914520743033855377898101703240642843259920663950861848229275173586890954351452435041028306785803956011556873736139140779576485251378688116659007821839316395722650862256461684333594911017447246093946624161995663755776625717108806423401762841833690190818446823317271676027893468921356117963012344535667007776732833200132544712397775887322693061694561521082009484821000606194128672508291428447306653503796511643650327013399216863451564811215951495203910145620424880580203790095260353175730938052536030942382651131797221577503382753833065688734907849048534512824352951243168014518326061653948040979796615111599077851469988448457079919605832524051105521894793468770190907419719235279079645174980681566026808192692631456204846848465024263103859210351714545367798045921396070878225114276977358727741710140894703256057346299216446353648808721817808309066633414146893032340592049318918108137921574875746016998576645631913306444353708793042332405105200817971578878801720268894862983309282553884585192239856855769245201643222962350531557038013838426166253249957882338204130782204536546885309983025430093086174667172211607973667985865869210177599287491792725336180984497161599831879387140677516679701868848583392510354613874788540696028165725907020248379682613366676507760176060154471649942933749670988992126470375854669692306232963543361372275232477805603268389146686797399961871424978329406449159922860311421004017242835599296749706559193273248934534457217008776228137225968810091751523295335442429250759328036460029151765256616111931634248604796852302198291102846094196751586761882590178358850213775511832712754348107679628556509198069493460160622503585778010547542477580900210615962077641013406145760892514774533640001186585344538497490567196353295713182965112221513405590186692030616545906707563566659878693690823273434866040233026053428453173765432235832499837357688474436201016129469078906631410191178641618301808680108107000540656297990371709419707438696972121631392828056873570018182285523189676306915158779906462689234730626366579633007519945105621679974282423015330927325773128760165999022329007978370568909532330582821106690587961775032564751307005507657203029006594872238554039957080245617604654103392964341329699372968512470863494962310377694282706279071534228357839325210324836391907385385864509996579074967437179909954533370282702694082308099198919994472210967761265234807154432634314078526716479444125552212247255171065043093749369402145323486260132314356590807261908083554093000783274465695923525278082681452539689827562489088504263981761903657193494143597075582700578530703698523162381260180169035224953840955853247744064860293991613470522481868690059623149271102798864248449180857848018995569545470150764598896944835706725766376047196349223385700229470605056023240123418466336239285386134782665448315140187207315855809811557301679780450279693321611787906251718543053521557749189193663184940131397467200536716698170867875750989118424131703509130644054391552451619141200149016394474956695289495990296618513060840112264362879473485959452972336859028695604949028194524863446729081106745258566122646882538197298514544660425121453587992012341279227279567453917955852633800686695226415660324702952785356202102794020940748833021189718711287226693517584492154135909783572366112815362818769164507545172655303837085770532764664638974336917344079055304326786557646688521927814204808186914413056957161578745663314632983042069973901942312265800561703799880492239861891105979892456114338381295643762904629329585093625308027888558118271676667872407244212519160520005281451412239506923561132875945434498260619902212640304530698782811887612381939742265905912418584557573007634531096940307805435346889894498174690686641118241892225258068468104278307786702163001825763712656994127095058937957516379272961884789498209292635382310012225627231491517792457262884073116790556520125079221260974984642556730237093248117419792165884804436265143357903801824948808079157726795689656629446961438891699541518937901043045302103984045730192504895446469168043600757446378576098262947294903060307038284939803051430721605557210411737861986774577700005486622774898749349690404541036048853787983870930282426682328885714952946529294798437399383390671459208598727699504221893378152084651379518511793045530006500353406587864877606365994266196421066885906774834125760887438000373519558368904924011018606193252183265878956533784704863482200129643463901712007243169183251730644468134885514733949820796795650865462164124234678410702976756174209990838953750302647783032092624607215474622899607364380508671974609821030042806146577594447018594038186211500483445113793503315085887522440509325044304371922209523092580422616199322428310179730698463351046501272723161886995610284699799391904220586464921037736779669883193930962650562703025446456246583104108763783516792368809098735431399951859392029413632067205063417867958741935558258990579538140818596096547348002723342365456466422795605542601543499233050067544199286545453539453562118158070586861040476332472655273909152904586790843123579224201608645877046879178816157993139504678669714633601625647941449523299577174504308137867136158961351899510707267826793376869849386023689379771045128779943816804383554958117088547826776520758828395552153235807092530942619391609417532682108216192091053416392349842378523759815776221927061447489362179980491964686900414588807696308578764096287898543959220942681711082065260019366906723740071841585694874242519240325454322574913360334933643579908164501085006004831380900210691348986826259902761772631237074478278634967602120604502206486392621817266599330195054096680670392732948914015724000555674176764362848591162391520921056613366419253844529897758876191416994067983799959316365011659442838578126669575748357465195930159893120913357115433460874911471054575166827893870130120672553054883597647171627727200732631304158689391017235486315324591993843520855466867644187608884887411367494508760749792898299191007597895637159111128030020750437522256954185418395193762830914087167823877496980683789488321366161371582789917216228862766963109426693052025229504557101842030352013745587549593512299873743565277016375690190914722059783363670318775609033916262777408323949546452841874374337942282147890512936710635896053129692267845711781343272397651247501547612437886816957928570329879088291412908235166388557498770491766054379739868104005736031532422287254691005689095606913982680142842362498141191269278432977341714876056082544027476802395253191990181782762057472012050997643256718660041057013398720126835633603006332422040596647887726816585419670575266438651474269222141962333940191699492807004911344595836326822331144215467241144914737074540476935355770345487884712725250564633533468056763931566736711729395448425094209395234539163203702485821982642014044131204927022732123744712907683196038997986971818124516646572564609206374280668680141846915184857564317527488453485785267389362719812336336884801632544231490627050982340098484946463453092931076375106813784135180930256538205049616267885596981959151904975812426169604787826820822096658006990273937528699347625066287694654503692815409024673122230487642827224224667835824646730637521670802306392579308569126999194670476229761441444126100724251089752466080999468498846482326344034790102510177980738344029129419345228452050783997431059105699559286014440322506460818476967817697205040671695213668379236649906680843940766907990899700856026472625649336519534037499112333121545458358697517936608090312413910647281577923142841272716419578084767425311920060209604343261312133485101690779560087221011624267665218426781513589777429017543952590295662116831959375581859971148490497623878645273182829162369589147351777522132826759217937194204430513893798828680705375492709605014509180199651758559540225984174607361839432681580751713032447731024399626739515208089262644770786234343289089307433577143336171643331957333938431463244200317424404002760450465748771552506919919592276716860652367690905133775060411429539435660376478378419213150936494370766307964880817982425496265177294229903381398811751346861873733314441705750840104640071046009261457959029102885270790744771967594232250870009204305011656811626093723008111740870881343694579767044241637682673315409626165554076178663199719786748849804245955027675303765996626241852775963633592058901909955642155688264117623239702762869320759467010189548722473467984619631211257195869732412862085622310524238991107438606262640687036340809003044835906373752865380347291696810984825604748718905343832097251917219898850412898988101512551529495999272508604613257949434632481034852910926570538148149567426309733639829776417565676877504939987767859598471226970729235936142678827606772810835820297731188875476902820531745201693215042474061714076936717151422295870265231518582600073449490849898626500870069361150935983698786209778913897657204083196787163021712931918890348251913111086429201101889095292712950670397091975800450313706359952604636959821574101592976793550093488272488355061087505953776901385907118893415638281243533214711574389422654369406015467874340454659894134826802413940215097025931674754628143106589605141625259262112061234662293187613364398293843493207953161942528580582979704296409334962857142838446593462058341786441839451292597241782040145269671412365464702797253261986316387400591128055763720659797033106518830106019622453158897107276527914755601931925443871814325295726868354970158448606252174041366773047211417932662873283453806387419059895521185299661466153972180724904061153341907864787185527739271010306690407224543413533124966143318105313157694466221573447544461873570241185456885258165919407519981903477388341020142166474786672298165755905448317928748249518739133282356483194706266067288966582418544368524622594933101468950054966966117801109819741641275142250274377905014073009079102442435906315290411835522162818498057008278065222008741732841927357349711263628880153218111636235417472907566471084149340813278731690367811552606147859149820605591044965276034400121745654753872228484582893566197337342095870027555852466700605410215160204810840310914221792156999395454313293155403557361851531709287891883445443766887499472228183784598384855364022858233532059836497863890237300266810682520629214323346815334226409999810450604978802985189252243373318309122193363740592116501708161566748830045159572927963515913573997318648326536883440123189415404923548446451836264228801462058847105246127064559323278325634867643738732005052683363103299509444839503467695140211435269602632250495808829827199926532778426010297222691102573659963291262928862918082027261428940156745682312273756381545253270560134864584986008754280158643469871915805524385123219033200151430921710970676339257630332122499540259037647622325197958464286311291251751940069872266992145729051136522686718116787753587553231168439526389850547580872108635424192154806336405834430663530535970471192845483590831523304738244559516771402913925475466127503101569743644396782670253711954645348575310686083055240097233561562720524437943280488286618436883538889170553537749544882113791556573840925854292279495145504274184399610529095650127186943144748892887641984827225529458580720432331890642927962766812006152291400481415307540496569784814659769803713289871451843942461853179506002067302707775488387180157294457875494646388223631792060499001961667551072094611355915563042714885116782626721191382940470719628798305158855094749915157496800611988493158418451795318518087518114178170957770258692604550704617374097177759586040553311622629381209900001392558579836726556414061852577462419746641414321330634526195404504838117125003315050563602251229148993192693145562006559239775079039901531424544242203327560689624819030511403764778053845456185138283152338850570089513551876015352178214189541616411146643968348639489002876226314976710889105844560809559874051298378415886498128624646845263948084776371422429294357838473978520466148592757185091838635316783519868915157972959026430806518595312950546839654315875489014458028567877604706198385047278052833013729689867566749398170580771857147993312941434223439615586473605083373188472305493508374217865613808390059734699468202611450753315014650545112691747791222433659272544604855423253539099003626106483702561226138970712002478823315241791267233805849534143523784619149454062544723215123818292387330758814157078554451187876007720568251054682979628118205158198569365417160898594526990730178196521929533808696526257418686920420850318225945902223588237058493446638236350173003800691314501198320137676602416698550641809799646372520028244602686195937906930657371053118102783428126086176866792420146035449074315143436045618571338736758298811900201605772601860079144328329160778907701689869283665846611117537086148888786556611753944083195082095460617644673117638216408432840243941652706462262701567823168293699161983224159246810686447128241878978181408961921226724943889329230350807681114440781314613878400578383702980086131466872026307519939164088665101178422215187709869442283257235194424332126306914801957016203546360513759728952557188334211553479022361821607181476861401437248851564229170710685777413357929896398224073605121828268869839471740359559956759626699764933065143507152361365081841433961295230267798517568158127047755539272155145319602833413725324030904216081453762353845946576542843388552000677924488093735962557902792725828796020472628068677273205273835389962639314539678679918985383975502720970138161681675016335886789430875067168192326422103659219266974706079706559155808890050195058924486905744405527131682223802062888052955821175309582060531967365383122621096896144430398996636814242363695214959995326437897378557479652789574631204289373304563872193812247576617717967564997590736029990603141260526158521162858095709747969627470820064517775174839123793585551091220400959689110140509103841497660359373588959125161918622209108940825611973624953686140203537773494537420399344479134726080411957593394055962279310547696644260466613701722313959154763717420108040146105770981480611563572720181568311339480518736787973515499930431946060813965983720003732290145421696180443512965222570821244531984668813672313530244652022895147750097229904087928570394411975703237485808969779332144895327313182753670375000594870136709845223634095808090775050729203745439889283430669650503417471767520115961681548622242350194513831710524971211068851381425450725714490680224423841069016422455924653264215752670518999051687901234770992781715235057199316055898932388592625736849329215799796356637342859022294193224812133751399156797447721579132447835716276736680712675517986834842985021051811039875240060756768302498707470225904391703999360189493155105951429108784577187953974034362989977460122612969750989601048958806378734857536353155979837865449800222665647846007523769942420071968741474673753516239489698245827055293713294107797599792666370255597334106844800990411138654035085600380140726212452828378108328827199594017766518310404182702355975262024497377743017554816998688221718257003671533246576269846514834821598460361358062787651257370943096257827433506391981251312161467250228963898096227186660057107324597333887255505889398171398793665004194251068675430768017874983773668409093685292374622978874452496116052853605036997549655387236475622545361065788454133352456037734434610975194219125234853501694683429297764814873813880565186481719083835179471750443162551093681794040364310021645196836426652301270497323338273995905950835170486726640954795901301279798571318169626518138717809154940734098452750736095426543825657212596099809919542979097911656791779201885591345608998815987023605807345727016446821201332309721917543911144887275217105876609830969445910607485379312867890781701847846812976300759301136843829667136798648162696058446322403065905825605926498716105026052583804104191842283371453846376679355029848107034157357658813700825557809360137352807057087786405307298414642231144061685995403132915914263041596297284751158066857740700317718541990726481166427362609063683255730148876897610389010900659659787179253013585109603019976576988238780210094283640639833475592779956834877240869791741735486026756785726332636996661261724953588238195281188956206617265244339426573340145920636311070583555837059663607016117582021100832755946110911000594080215265911549977590955807576979317116844301754490443298295648806525461099404399802001597811869671431885097343842784205879203847170933310785455763986974647809951347478426688338306141420105561905226201591648451083781890146855832105809410189226813930492303636271246965028738370616231762523973387197693354528882927921164206010350829908407479707028847961018115340558943652487588030613703730691938207620268597774599057465762410013230127959395791438342696206032684290470324571886594530777324407613164303291242729400498871962645661095355605549256197132844112278038263336881981911677869691381275182182542218502302537829018916991752857919190248385541880007354387388861830559741992854178334108653351906671018393715228608261947342093358241144764627430460640359399753809591957803611930634282404872511708950521101527623566155854416718476993581823005075742852631737215188680580780795694099110214373843953438854858846722596058200389771289040256562605107546948997391332228588547834627054515460973865661343936196234187550494447125770880026641896253032827338977903331591967993467387104992516007909374234821091217031984777525254806901893750412273997795386512415785912179834923059682163985528223296119516857068385567269856283924895522304881335522223140814019431351347538768298655342887016814671812481764287298774379920096366160082204505727957099099655108226517241886854796744592522670613483122927902991432798158408237601237734194913604925462791108530717998859632816146711030080106774037126066695819420724411729870516121907776963786103538809563464405488322921502251617459161445345396898135366348164058710033035159649472017651664938253224002040719818727984226800498799807132850828874073407210202411216606286602351225114517733440809005913414965496527267247129074712842602659322336053226375447723038802338733719372226388202388945931072269254733877229452133608550017971387738690931277288177605016939905285834461173098634082963489046687443126109543667367917329525551589847344631341742504245653771154119986436798305250237564729138459359956971329508569623120773576761549157680115163517221515091030579661642741824829027599187389659738114270491795807799491954889085796699713153077072586832808976957751212658658190466660599972144775081544342728796253252185796766201319735890108341998401254385517870677271610226372082855288737468240500219842336115159359018992105513689439782988836128990477400326675832706094955966131967973833321337140626070204256677260589335435908259610995491063130503950858177177446711303031649029347199520408541863433086678502338334564780876884307084557063778389026781338395670895241098626884655596608085635876909306211877491540657947240806941358069156128213853136884432703225158774877609206159251826777437635473263554845237591320371241239124304522341510026051655645646425960598566716160252087759663193738550749727411677863078842663820362375829172860564081123958327561482979459387253806427162798217563940626656625786503299889750398383920197691602171111753685737405947805494774351539563864867581377193946337708847190258871371697464331298200372353047768320465309449025690315409712225449595327166615873510662278968989665617100868865263519960172042421340985663357593224681641280185930335515137882126308997615577613559966767478328319738063716308489430968259675111940218340574109647806009226677401900775592348536533786787830528864553208014283021337761986638033649866818674564414936632931404764165486927061372080764061873274695699985707388090641628424380799034736433940154568177242852855141329971411444439552386637323894520234687934987474605701028193468609479978580959220736728069523858022580847868995930888077925661294607159333965410907711782447958710988606758996424495298928853916936555858660493761672610374799780305003758171918891463348585406830209760865184814962096778121099718728864781549047068272812995517368459702234404135529100236529246475120194990583305116945552963145851057168644213017938074483027589947424483758199730347064781102970342164582177410728174412170649416679717825323469163521385741639266820880996420136172541577955268390663970308127770790040146064652061636233489565901172417966590566044835292418417911553182071385819261542407228533383271840621560979719723275335786551958848417834112102329060631535702065916563239069847248193008108843665947747117619747237607651613050769690534929318623141612394475983330899810474880713959908973597296541484402589713492223496357630397454959682391065596089853125643199275107853636412912088062911193725695689881479626540953311685662424448766383150431924411682768931550298413803823613657635616362359579124375467178267770785567345341408671098151008297949805760742405399691347756825036894729265717024474478775125200661146698345265121014377064789893509184197675867943397265418879087658074072678309844898760657412673399202875730782103900162983947402576388954564066951987044239258840443807632735260925027942079079401068822528639480802406360488326643416112202899255385741788320343421251116604315963316303765281305870475785279196793201957201039307284487532674159784513936567141204479378788481825688573704134228530055178589103294569736405698221179950567384856685374030112697826976317839224659793873244554474484247356444954448531786798434008151699468370614779080481277036693443694747296052026357190862087272794966943683049351833922642257030605785581960877313082736280086880382416344377292716552040531911621613099513933082562131009670680251671034302583393992833887360383939732233054670971527976606588599012114489812565854053864140715409380843451653869342622672059614844377424407711898722416232987778027683058142328468877147822287376225006252152951334778478865900125900419999473223363911664064340183413532957476585975727150256032696994669545844535652295142077205901184961556720555180003330038067358277053487735249803029814161874094986595042062733371889884176348978177122371101337836857619876644586469051813695034043968321338971194936163209911695215674713348269730891995302329650223414684337069918866631950060684946057596893946249037459244314237711491127258374338870131670623851055396595926680770597465743749968797184853402142654585091587175001684031928291762013807020647437014859948900825987734958469479052404234941715926276622991307528338519141671646245966890269759901877409992272092116917502892103217120676245799742706072323061957590406759875635088566899987523292493645202997044603167476535891102539763560170450708955343428101655277705575066542365391733828224618709882602416436170913219000940019297371277775502710890224699907801285656604002474074209169676481926754464153977261278629586741074847787218424221919378527077001049629600583041909217816339633776233760816352037247902709538795929607775024032613923774076777095957369003654976828870765338593452054834884672337027766211820792911511899410834646366640465452641181179279912116856296565134502187030977495534444910298863527480158283123584379934464715204407886639052783167697245131768689167499842004191301652987481193102431287478010500387551166057830937401190895822807898029817241127796117618889285297261106615638522221964004464379483735103761533554041824493263152459484145492952050625041214600102969561508678301918228359136088555307959384389363917886706771365265276775849362663245245664498961668799642449151576594769460923893787231120173707929509476998965856972811768624184328439449018434665534394558557560298572702465437719992836220863683042851320804138549727761861381714923534957729835749482927141957042094447608700963674857568626546084905974042572388472253994559291514415545036652077678523642609092649225206977148784418379130140074943101617859448156183718004868739246215883767123538174656403439509737758871522684582462325724256468410056214201802947880340679737327926521302738174165209169117243759329833930393623933985677395474229890185502744568734380115337395204701655885794531881521423786080516840429428542173368955799760783160356933278472301253785008255886226229647989639161194614249974370325668474158464101593042609180239259613487297066039811146232979213566081579151241636318453461132836689372788823836401399234892365378310421944381428691899759316599737409165559069175772281984963086451251576017418568767633883861181109866837366074031265322502104086318037962866082345494916453600901960991370493906955714449209721354472999630211850813018004075897607579403787004034127860507808486413471877788964871043977326455617438726436371920529275166657080774486782825546623548485032808946474480706469645866132162126600873427226849054483194332212842302387958559572659042538931059555115022904441831828125383747895474347514780762869844750773134665536772613959303088653865551883400687839802030206715031591217274557400584715184889543955999815768360134440382999266370212450378283251742172290839745111222473849508261907782212013125702055650155471348442299912928814577389642121189107679252546768471670867591444207913189654722515877454221882003097363663894524165493397525144878954153850943729929077515738213930436799005522371009845858567596553943065817188352049511560273223744181006421801744189130476357580872530352244257359261421266377913655225737601649500911544312863568121585869364486310477763541194661475379591788758517013365005216306349078154004824496870099506543073043664079133668324020620337318607774805344432644434604787758140084073391206648871229462768322208450374225490815647716194161950736438529062692661139428220639935354143600283011960908623209120409039871927143962426388677634919127101306671510839690125243175465717574315878972487593838456470398152829912782770405561680215298427143382366699084083561652043972718116972406387776136716275998889359851136022795533521316940303556437920933569339615263115718448470593341588200007749256385455138739070365463582149242216222015230894819460085271066722549277908964461883715002063138380213609584221997387172030908268396009663999589460462224493798069252744211251594418042929146983293035162966293316425821108296393167846028220402811134810217915123074061332076206197676159822043640131040881582195009118509391818281973060922903025670824850089999089979039382676272571242150964566975699614025737539618103747707671472451633226282465982989827743083820148790549669313220378398487371972516937248193609090131080333729568635724214824533140169309997563301969847754888806959627862349617867656072589941705298635889307170399638732031414232392751849083718826660386178228443753310135360672301856429288602184335169790566272544046297285887423951401600835207763271014105528474864722862608458732993847520218286459725800594215417024052041233134483101489499782816782440529274379218629244520747527189983506536068296324113082040083453900069850926414718657932266260038124876223461865426325989174594402649184024868361519301840563474325148303397674151242055345369992160179654436909751734244247921977553696622539387039406323393858845959419903303284567753246768642412939334450065921228501307788206588758657003401288217724160153820411241104605499408478647893749998492914008776996557608097132545066254227218101121109230795231790335826066372765692409892523555306790424177188412741034993520305752802076553114450882820693137373380043823378296816007547307326307677574849497790488820843047579349650722927080467434270978031602290268660902678690417605022207491466832074918709083965526177031492590473505096991109816115477009841607119289266997938355585936010880049577979617588071990972225260639221325934244676098217420844112622903023789491921749528729807217135009047912497950222093522210247586355331636272257997076263134451517052553016203004335314885745521297814870376920496259135440753348769720943759340575040541262940972594550609477634724161185495163661970241116960718300968152939550644890674246468435921967158466794470755014929461746492617856444923168406697526781193594474065473803509380329905088653089534254117686525385415443955677705688709749526236368174973257356830890624849850865447185664347185405913871535528118396948502473907716980615392639433394563598450608402261564229570490481708484769881492216069065561381932223494555500873314927780778821866314375214940183931798339285507409582602389405764176857162394615525065697195163317229230968294731675799746099397440426940116851785525474982375741460365764204226890996031172348796599388604574057487046875129886600219378309611432627781523121964322954210359620916153754745837954432888318664979901538028865876287272515315268295079074962149409298774882302300707196446310902176805538233023249584981711287792809687548921101156579090930345750257594890963436539757360543222264915721351238310723910973282192812148544541816848944363538173451216732631838561645335442406921256442042093864298407741874375453521778480867667338599197355570170979914727115717948275063790772632770990638561720442790803757109496464980221910270847020721523343449175112275950471579698535115949272179176263117255451469640654538411324571921213679585219212140678962629794399153074857541157200658133812343733536075477448808229578868793437133368206505325618293351732989150624868215169850136843943189855433372771035397325580676395211198619902897241035320578767325555059589305664619107414069073556698273470505379629114032367850981694779302280615814928383414563704992751916651007324903573617459073129176613592052190406916135732454154114405233911438488886296200008062061737057140100515722938083201593769272822590377791410059489697326389129224937038080301578827322166955289548943884765050461074890291712433088013522718289486052125728431478183837098698492252276247934518546263161724124682809975595574255893107428951038213279351034222226196478259834483943174364242231098433884782365206463548855046088110211351615713042026729552103314129715019541778348644417437000073961924544654520130617513423844495465005793901935877257460405397502038010871615464773391176411745728659899500468424866003551074226435126222999052229782720215965959272252152654452409847142048923248535655320285532412142748598814110217237159479135354628912228868872441499113337718891817848116428183669380362252278423008039672222125866405192152570818803868412523364896945461875120432935247277427171621952706630116900125678143358094092807139544234371060893427708086226959645694016240743588271942708733591269432785467380832447314630299093921548260794089795965706864440621634046567202658305555886432639142781144620440863413049190853960403926366226481760868963444090407400480379823541687310225555744300456484277565837478708938294252678632189472319797759909944219593344271879908252848580552345439229017637061012370982338714499058761929954016816740072547258802720155761911774047980758218975996066151804477333356589446292711336582946079829939190859076925648500639559985981342459631774954472788174603317031285160046011767404011697707919327101126856127578829159902248270548571542231208767877645893585804058982103755382051848654159693765946823311516001087757199469485354890905546208459480755442270134897707356832006509221307154854543567929127235921450782730055507821043188737070763879829272662839348850339820422336135385910124052249265566762124600947496459342692076655948352838836877513813627450503445582676219316446633791475382245415577158176310916757600363517835086175798155306941401642515397552122216823220031784241531389542154829034389241876614940053543838470681260206386357931832076877658734233642230264365281731016525814171229525070435718393309298069538673866503330783105257792761024489668272935834557189574117340212299973562605912847587816381396956902191233649205836956713440548550107060921679700548061331043382609152182634293968643128619573099911723286592068043494197595743586763731549139600278844859213073751369512696711793713392346624400839566855944956667146806379060220769413489537656575956263633934347429732066945036720257361552530758888899027289373797721076336767254924389712078463692540162503283275563535144397880413873110326844548798669243200765736696031308711899824094934894453457149593990642850074389965753077752843686092485748788696497934047620749146152078323980284425543274594622080421488592472232017907064449782408382538745526251676746518625264844817649866003892871767033897161612261439936229528879084430313674757900226470113397327105146585869835147511367431427191584826687118166571239856753508408002076402599041498622647765042856762723588079497189577661022444079218195374806768460516671869349017023101229859903185263475660575084052524117541929363860899362117964061350118815514167865730902472651640790614750586912030756732249202748684113088388122868479202181893355039294517070268031822373262499224568178378362643403625204488022783078725428373327439109662456196319199062750819962543058684189532639339024755302814007932398236719812039389341621081692509200796328585136290086365017836845673212902337320026765956372101787750690675308972742219061606394443788412257520878692910779223601632261097595334392763187888891346350052763088235459235789922409624290527507895154146106194021069945748240622562805202819740753213039862570156997071339435240908709615639921925509637525716213886606474504566478356759172672947074156440363078621514830254517958044003601852346393330690699455817794718418790828960242434122916238966533331252653155233523385363270506113608834065522953532419092832547732642164232222674853684457220113465458773665037772632342142466221787396320807554325430507509083334152614092562822845306962905808873925876022116584773780758271964350288308640885819172829886681224028451613891973605243404685156274801562805227059132810913455259010455033490042070020124398930407436617555769977494496974987896707813361009461929397626200591481543387880679946874321856150542013819937770679521476967850677523895803103935637134755795983805117443315086810237726974409698016703259328702802275945885072147032039087350961815572505143463490710991519262240804473911578769419891246481515657643422585856989524282145319986039788590287258442855900608190366142630801388420319118119031458641406079292288704974771671175128264824412044121527182437638254466507191653523256647922140074697686461251850215623025541825653718290414061494548721592691615325563502843136253205388801340936280295671744026726668914159891418602371914855140342457120578508797079960746730726626054175671857738149906390574225488800722824581788849531602942629751149045083744613666625693999518741855652857714418121023203305468095218044575449811379137033505522139298320620070274337496952374742532235839741994218127578546297457831478851668420671040724133933367225930113920346551759667611882599927397611365552066007540708168520612800205934524450261333529286990329660808187870338724646905672815442486859819723262975413485850200005887568202478708962068536204477368379913119071108660586555319453286733963730775832215313139881879217999792357808909311217580410482040358178915222447280506469793846047886329836588595771262589764892627908127333484127265773066325350649945025744856545436822588430996368422590101611609245867190194532956228854391599921921048554738591393700363274666958469913081588383611099122040250082872353107828658774720734070394813449325642975056309653130929744684695609830474825313550814879489792977026549975814509724184701299475450073637465918894083087286521253321514273491422446752498862800688551520904008675603159369862902637282887290844391363459698756039680021860188294639616934853391454237796330597829947203637311526447505722354046182884343700011145561292437090166882134753587683949679269331950671617351653192174604071400964716749449832996543080795020471609777550605196291035855672113601624591265744416172142295104343117685956194609576899981238402452371782931743923461189249852144259852494670853691920257040117902616410821163833067332126658443227707287797052450222992162581494594663948180961640542991986985939128260201640242076793048041155469576664789203426341933123617507201273524641731407335542312539331012463554128696852146894766866071628291122909210135141329903833309090417324021240677008531134070237023641681568427310159736913356452985493773372388989146068002481570357115119054066529828360583511172749411662354991145686740631412582269153241068675693546908140495321253876254756838105767277677391628413746675139066373381072445182052699476566009197783572609153817750208589631539274524826617342643833412148714670743418560037613302594523509611299300837102775189639570146445206305863840093773170715291269184322847946931190394029401520685105186067912851121394648894178120697500100078455863440492307794290934999434213801030583125977504396892517162991726846792213287881142941094542463031552245874062566650828747294316054653363126906830429383731502181577397136449563315351342614358483367890493879984002541519044297369447758155762913281175526250954395551011662807963058072345123462562406661511561535870709877107220762726105906696840461711634483110665245454885924399546734615734532926890974125909259415006507359813113326474248590787812666184179589013127444355600145089646032009237970816744953244922617596840136766530289563394016312137345443921706082639448413521750606980380856644602031761194428877804284726442925171987543003441080492935211623105079945290976443958027395950644063135720703504976645505937219699025507382661707551940866348380982812230092269780673145299563849673078249736385411255857658120264479479572071235982110905061850762760687238622241418673421738978676660374148393239409908162644597673058337215761226407193111068539792483850349870929085401305833651379025362023012554770521562834560805155571711903092884107085168233969282862027413924731671495034113209059955191672365767802256177413405307622363433306204815960819172168233137048721167780567464310811931250016866504852953576825279912367404138694812901052010961234712557695504314349991092794622425790383813491444391661548039094467530764373963096873290252464675522262947390925974231307202668085165271441199122022080267623666933868113279896864856102626258534190646091945170022424133442800230819645050279696703951050609904162565752408795037537223373019012043765122953140976923183380886452221191159319554826942610076072145243963912390382783391282922240130527066033475114065398225764465550654312701205632786645745514891628331421693209420296861279158827687373817483343287513062248079687690203814009930411889360833066673539792091097651506536127516101757550840454305389840443044646449876088175642793556099402873937817519153058121611475153158323082231481948504589168783866320392185938910840346586290709690066850060213930731991843894776379966140977298550018817026313755828167725800892359818189134978634821854678194301299286736249318777707585205457807901806252946366283448183866366027981534236338732456250241222148909759647702609729133571281467580039292485197122554164195888694324993240048407923374554886583121064630343322412669367192100605864099648536079148079585606989281295477847093327480969982089640749212499270847576689907015083922524856153833682201951182470052378337605009668026509822028973658507414181383752814254175080093512818211519856249764685328055966067302323321186739704022256366971734806128672316545025881976335409058302879031824718862722911403361910727510326346409265432357670669409723467527314379792593192627263121667219227964164381767369976717951774171171873122047018926770683280212859310405613683047148097289647149873777492454187427081098120123068350809469038411567206158956311856987370441655177034758644792573147697354390496371884990903889904723878933187292570931414385586575032183962460305029974743074932998137585166087426301334071200102653194834044468512698992890996547386574435269244498508360315154580505977335954587843957586369147849475715594268699930387343724882502443602603339057690172209804640789278604465492456335810924757338012847002530748914738913604995379041826140093569095784713511594657386055238124289824801926406614429182218286111731012178758951643956163849568770394922595351199038452861606320931353978267841715699991923350791601501685312943196538773041303517458071273408353131595196292101402411363350969669603120984818627245574982833351708222000338107498150212502814738585550188761439425405595635028940966585593345450105728857552200270272000514728549813615900879450746182104572680125174340726858992998899032377042706121351555265513131123194999651878852624879232148873267252461328802283044693567122026486181828752569571498962062042348948143902297984322514303012271913260857684175633053423524152365590983308228687048540601915895854141158626792160185208858386515373682458871352955156764413723056995083189237822358241798788166344560962884979764629390836232848760489531060580083271168864987724031165855886741073371112018245810830190878357398375582597674050831733957569634087357172839384768813707005867055573445249876095947711416189050075870689911922992472645307097472507736534767640542399555824734169770324209924329285214844488603818779448914668501150248181363100127378667931785206776997977758164065684650674283209778801531362505734489477833948840413483295107413317284917575612318088178439970778050144285194539173189846107870480845931266031091179249322615876562341225295657906671658102249889605303958395637634617581714868660447066116710500671682790612636663781575971900611000206384091527051030617846792268525317541510081587983876090677124930338361007535744257778474720673527458789289871141252282376232690967367007376526008363850158936925530435672835570983005401257856700602138818157153312763007115726102858080427690948121716691514123550863831798682042707938943787496517802278520425896623723468650990163176569672712102133983501076354618674033012625569796044290859648063915949570613081111255120885095940968902810213553898411698645338361837367189194679204830975387957214409734754877363427067250798451552171848553485393729781812889025834277931545820348683237767215399882279707284935648350932806003283517995033139140803006721191018878575209603312137455973203348492605702203570848727887413616911420776565787912950924333460654120312734975471421283706194406865883203849384483390487529586534426368264759843873610316067242017796669037306372197338418412519767068444571620579505077022106897571210489889579550636721101437646943569039510271103498115173610815416421277417960140605487327541529310229212073486258584611574970941875115034233925314758108537827463475122220739111009185812065045087151505014576844846704926419359521390893321845037522779394351450073674682665933338945747823370984573481246930751602600193956090179765953910556051117331975186083408790590904813437710848692893389387256415272158151578840502347677388028473966910149932028702326465432327300513614204682886676006747151491623902307570013658578320034022679293504096603844895961344780130434368122869037292277703874812506965415086645388278807139274226006548136330987159184963867942183241053921394509881133714002827966441181766484217097669845128512584035978787847546726362091346696994610127290340508186582020333201879952105236539721917901930645468295084543930586266253215683668070715186132767649161838932420562815842713845839678696820208029548606585887915072999607180587055803018536383502770670609766875211843961221574870048611801618622493136165169456756574228504056712662712044941213891614793332000273655567605227189590685193102680194531252326235944829505551177244387709386177623261958335250110877836295181342731740508627555026546436771521119552052709229176347426641718953686326810028416214004337550590209709184255469708782505783428499104692501500254460896267809252090246401691107955528105558116470246530828923992083650527074987056611778518318491052099957157513718647443357531162291462612621009608056232080965267360335445628086332362903643507746708399411973229855502825522506720761797571593546142889882144513594545086916315644348898675724212802062794141567640383974237683569978045862234719708465676982868696094093178188236625355876002315987218107127839737883330730949624293561298185535815797647577463963161874574552329773244460173172448716366264904649134881164599622165719224140668692236811200882384479034049625560557059574498843586624732597346598386268503194907774304322280321297936835384130631170640745516663001639312131831345117517953819044275438273892856543568520573300729765826900999173295684500563055611626498999920571455591980408584930610745721169671139914332295079438403073768660873424619182453830600963754281847310582605772662521565164592621622290549705827269197085156226968414409201742197040918922736010764834250544090974402655053462421711066331584175511431878253916715743523026729757104750951162855199502787669226840480556589610133051565343251301538714038242387675448578607279169318336859386933526936964741965471669269948101403313820742129875801423520941495242239668076606411590765370104073905061958539811568604101377223809758387516908865819178049296523396147445331623406682963019857735964985330207303181618688590494228401467069178653783218973945563273248238298499787924421220339642493197729093746066680543308766197472195490400817136363188006803496021766220991993129945414913928956670698098352900732058937504330823110243458489349888496627790105259198248857305613736786416201269111925791117275139125739590088213725523765759393790953909844467281940846812562952652357642913435488081954957585740825319869405467688495593969349553552853330487778655252550774327949576555452164786680398057142767594131413548040806425766578954179916803850897186738268050890257530396430843537632659990778246746774959443836945540449008590262070951027457560607735232053690085448860264518303219216739446276887119061208482473361822796964690246206860257041223427850280024858426749996095436790897595854177735060758594232121225074909014359905830471371289405984110435104804383590048493162695099392425439877125782687495236124152622450273348377399192194802601645449137398377238752803862544721381790872575337212007688685415187030610070981661054044628046545924122362278812508590190365203958803282242365570310893829592887151481734281914348428872744019586593469981055673009442779848582468921642375365174627006926535667344113405841136422848561997112370845546665417386079084850009982251217623606585380766177767251428548080730052032647338001818236862121256397938779679096134678467657370161051224164438229688171824755956816747863943973636995274822795252019694075554324197318889602225408007675932203845237432617188814413651468984584348247449784866864030635482870164669217686845679430971002400236796740537601107308407139951267125452678447642320396582722106256879119854134997381846890996228501758029339594278990841972328699900240832146737990992284853587006534507248300836393089033060996313411798903355679382828917427432605367660492440191361738906273543517529623637849430289176127101260792456781688425837157720290050762188609102888358733352223079671237732016877482892594298967726925526980970884725225816278532296169816768861101774740650448539808778909386723988600695954648979961798629067564398390766248249990801506970612199075614487109668332126647040629247156649592599005437883693142219030945867470887235122694762354988406435357354199940662011511083992384063823317696691276117005627076911024717134531805148179733164540250236355332631293576574070496211638101889546919491278478694414599128226583715308420982736278499788315370492896941149613565516386675105419164086602292212083278946336854863263557376551570364032379983656652092254616033454931842931824216429436331303668729744827135878692510686470786209094379554654623925194966032807655551430807895662094813850494299311124158017292282501952654795043138885199015380632966001478429071164568179531372134839725082453869813663855046885193496659359163198981862082617799385411093264915313710377783002269325032862657486230008085292965104096939150813402691047194512230929218380368556020796092958051173695383795367221731889043653493972127301713480530035340660563537748172962122587136443398846802565003178807452503405755435245997277264477653374443134695962177276050749126119115811692168962662262408194443146997576586930212118855010164627800158214543867478423785263829710455204969367606908554852655916064718092242423668585635484001911766213422754628713450551380757510170705923105130949312300741441713295238906699792253809800019190856749381013002789509864559248147681849073992100441117562283070437090212594510898670936255298425010947861850184650260529609167898944907431694344703825881721112915900318262858059210274851967704619982389968924238968264504692277389689886056494612899508417787308016481665676794187508333531093927559578054877313195953935530932097569801134114889924102979103836967413372137561108968396954733608226132027508306964959792138537016711370533106937280413590645668782058034589479066262209267723928345869519168867134773301384666757005490155369546428579691238521260236030445196182132166444503386946200844904673125598032542808581329571232236718282770351964725972385488471785488596825306419850455714711726910016605799310593099332085352959708146863044093781992262494319313831248183637300525106707278382070255219009478622573171789160536311425899390899737304804700870911845501829873333891608159112579753825268034775292849544977541583361099421382107822233498132099108210650209814116102332712322022461938536367133932363848917856829066194834170467404293252670298211174748977845887195219755819001270154856601125987503318301136918353168240509115305107067564169200828797170348932963718193890117921269431405325017539225291078933296970450374408154713851515655946191269750317102841777523500103471624412825084514903978173828409534113800145718669188722002422693797567675194885142860620313062159134359440897804858919967925025897503283086005615267605109552930220988140700687620990758401356848847971734419670770560911422844299374805750559825946801517842963376996920786188141082758683108211858720463196362953345746029644930757770382356345921642068568629003925520547350823323807386132851046354025128649734311907523052003029136863893433124452511038232928560680711865380615809080503888819053167647792687121276216973759724971736020839368948452944982152065228166974376926731338950094921431180274551387238731618071179195221686536317423416233688454113275566313149184359233078106955945507596300237849626536284001205909734839651158638366029541957984355341353307436621964742574385305129311304693877184641431154549143731982050080862920070521466627804151480893735026921885392783745874411156750410411613878586336093297722878198487870591479324021241870988525125956240473470502150669949998467538945140435136948363289515762775574151896984009985785696320825162406335691093938004304267599544096732768631180272828110249285004051382137324564137218737136572541370296400149075913759199260316709558696833965073065394357395720067218464252788711706101575220283017139057493018503865449361826620330945805342167888030062943735324871609441329211137181849533004035629515958722699850263109860400203867789314062133164396238255083386933280174011477042546723519487370688059286808920736407368137610250158812964603984231230925506668708428714394091566590248249859373424778328317948036670756471728565208116851163571313537918807199501182053776316790759128247438707414802413194566351576111766577886397429035316093604782933507203727810678664237288787570316882217248989672309830551574570697809080626998358809322106634258731307364175030209556101496239263390841446652928996467177871271405334515968259705690758452558172723028100103805757708355742470515385096198785511375246346419795728893995060595617149502714447490460026388674046895676220373138510562537781570001898869817598281554947283443436702945055645238611978003705899376817327204674239179158923295036895995715920156201144554032966490488882676075868187021453599046452559231105796838466243893557492853497323440344495557526501409672441334960869587323307483429966845441850561842097834316623782407964182101136377212927532901429119860448497589590223823491210589255441586029806927402389858495351363041196670619990624940303478808192933280637899240864753078874341364505587497333851965948728466698843752731544386973993508124645388554993777828619273131136397089042212545290360803356958367753355892989712742292800123556484202125785621680385264582001851935635700679904891594231957729725592144295395956389987636678563346673258569369972683785340731312600989378011240770330699630886232319149379840114006064528122753573643677803693331680277673661515321115715567848911570632739738248524797571765245186268591173288860446916300396572892238063973902987581692154933026658630653644394670881346486252274729022839191384898984108916020333382132305498943144742276152889801146684946192970079455652533673082816643456767825502572075924721697055915920536829631282443647376630611610733470213610784140673496929359166371908419538345258912259212839594234157157363505018331480460619184356818314095219422130628363380115028747772827456395358427561494271204091869289027039297282712893401735008831648505402954309298533120146143110871764621596302874586604279955640500913478617559123937448226929274421850574066153063898175368674826183450762025699774033158458515104225577730561006517222208497790828265593333578805118445607917071405141184533434112824209565374343682417853731610864615707204497221344244473784053982975032259646138772696146089452474543178537335132830566386519482102353825811969552666613287413589734696676191271939634912897817299669728133074663435409531811216028842908448839357157648008075374936282396735753782555179009996388547718236698874557695500906634709364677477273291030870064255464663492735484229745341565604423822599037207053328385208618537057150715440294294373211983393546922190192206615650703038058203238007885986108026692681814486726541707777442128499515347447561951345565810782327435949532688409830937033356648768526106424116017843231403532368143431139990026520727812389230974921939448786410597208622646942094900592783003842430142571358687789689680598770760796253997388958123029448025556912491341246738169432809239095078229164609371536050453592603410507484540313797020618339302001239025827556868059356505256700462840863491554090108213350287181147287817892076715434352330220132560534016276969348871736213499495950103773301182687304677328580179810119616441574412741050493599960760184126713856591880807904172600515198251399371860845662423479790527894523198431965925432153321894502531970319586601460173530624976325596365051996764593872653249064883628295852565823082488331234193249961989065161156881127786353306206983173293950575841562539408498742891707957005509537053256018367966872804935045966396851176952604844729714850622483608647292607111465168957860048268744962436099933579722517383026357295072907133362030147903030921062953789684858550750283173850495378736388562900706768682007846200554820161899893476260872443421511754175934675590679272932745223658027852469126091672833664433225804702158423304744603789132702626557960156752487788662425415400298222573218970154428479155045080585573484803491232163020064302527454876558779224153981177402218321993356965931138889717357839165999661439578223139007080047595495860977632655674580343388356942028299796418879637072454248409822564030683934061219520295299371219540692329495669252298405746974710068822045392475201403518524452760099560581798182154290448792026815586913140007888714621171276548046098536658645891840289831573649788633073285756058453494514870157997597495970189654473972062822819103201107173185632183720191755544489088138377926786311310420166585842726417556055797547128290766421866949728431983303024211622815822634848464875056246815322399141560498142227196566221363107640328885082828463863334975896983677389403897848753995890818773087476770286253315164005750110793396809547036729822246364841460605776719248047419130188429324822209345959435851650601604126527839206048638185014614571892752104754626785934966695789083714347785064215135431586365983466011976952158181561731247544612299815374509998175125591183196982522341897630108984444988572868716637482956398877327814937616051919930829269706533950747754389536703117704787195864111382068009926604364114942528915897059311847919198242555017953678126762826080554023362927204686838252781768205896349756105807779804019510982670914094139013024342187867036356894150110799331915882977123933896114861768168232653785055024236476649810133411994825524718164589034018563825545882021085991819453723194509826759590215345751490295167432487612326658181200539935345514481881438113759094730381659822160143371795123978316616482813446295211328652375784264199129552907908344748169338534537237417261222567480981053450747455436745008316438688992416155286763538920711499672752537495114132554467518583579919025781326484619935908783935871593074275414867651421273938202691655837346070697605392345968260954927203428021817183600177403632460584667804283529000834267761406751723082215579719923777595289448469849013536709201646098640416861192585049973819427164954919206940355121378565784706114598501248313699137737673499284555977217145744092060854129802055636279311454576387623844421708503424570906750355557060294509594314669894317563308742357257825291031858165414894521332711172965203500960310610609281691872782419506220603198824879988720405025926833422301584455584829532696566712656492593091169422500546495470901441087962856581433356051033280772921796022997844476127560628390593735309981969887392174303691343402334473827971831376692566115952234791537324186676964215863922428872931096586373529671264412796725839447846193163584121980018008736022463963967781160124239670614169674826386273534892249825661337544451772498630435291632180741602381329960715203155602984465501506997277917863151611381199549737250668283636443339743558217968073468324823369525123860549326382036639793097444545569822375919730953765189990359119954176647971181135495073817649160256824142170101353363086582857782377882220567578641740111470337660682974508615877896414802286233300337851742966330854590687815940893373351685365315397803850510353857130179313423991949776733460202172135841057203898629936454666479493642851803637755958585633878455844674812565605348883432298734496653044205665733075893323315445364665036735004419784829478593899152214800061731938809063180405231137320928633377187249683487340496468648235864680467448517420065264294692517190497969477912907090095405461437551251317918607553865572974663285351889003251574661209599617999137459921922021208076972534901988768990661140155687318429184911918239714074611625697966954001306250107199912646655324874813869981226024764706082502820328265720199309871012959570737472439035810613943142789020426300372012968257787959597901882911483221209806798151476596566327231337184902034608323631152286595615124681906053784411264492831061493780219190343306654066218024339308370158738062788884245991650200270408649113016695026151295670441521861442732306663675792810928736400451552213596916421491487085310251142272321177745915187622700311636517444602006503834439235554612110608954330263214535768342431098748852318205516359418111389610319762157377930914875668146120726649753240180250089532716709493057281952916030188314683400695256910531893013420898114504646452118659147957329751707474427921501702170566156972625096403874601670419851696525346072550718736068106663701321356448054290561078766626416622858434916965211465494018108930170706647426749441188868534730151980952909944200754991322063251869178670478528675582855551464478069071436740615125344314126697976000588227319443134223782533562934069593131234200875661390453197043947989583834496610245555085007145629415471869007546786893785246672455850892583465379795126399862909021654340645105089955681359860119463403940164882423309635811567701743995477384797644966117306556373650047337318292597817856390507335724395440630195939943687241818661688820381841052001302911207826122954936579654551288813256999051616175422941984386001776231862374972979762227030964350602259768441063153189376222037364063278474878915572865793572558772409073878821558123744091791553582331821575784038964735887365753028243169680573752695261253519588518743035156123769075758658279357039246557863859153393273960211948341312601419376171676188185506447232539457335925188968632900346511638708949790561508561177846198337108339808726334235079760110479635981356469830956505310679479723786966863390745951456669694059835220983837482992421423642073234651775922747180704977380384935688665921094941983306852677624907002862737995326572150334783773910203806919829651011728605063701126352381385586669963539915261816375608969566511477150150768055380547489012908069785856586190867641868215556454783369420357798290944984054671140825504510723747449377915409336754762385569054543833103598840055505924323276211146162084452771220578256087657105022096342510228034569022370823967818383796385087048544322809527583066847945495847771028316707500931316691203364321975824681619503492247340048130663131642498837957189763900649369772801629483503924527506030528682284030324604557691013794347013772724470616064693913941001904711959082614358162650162414401799064954653342577910229815987199885806858497316338149471824384779113055410629186933428280288763288118332215486785334392220803697415250264455065047885820482586030670909101006324191502979301613704904404213490912716632590585069710892752404080928043510861699679618609496239005011802774751413698511709506835614231786484663286091421339693074714295632289334814642321390285861533087678721258852913101292260375248270322083237404713289426277087930777970147983311772332514918930246364557870258082644122499275666270823610953082126548097531209546252206618558769941159186393624261879859492244191301036611209845842232790760826913447544054530323309294821157917270309736445005539071858666403634785778170566909711093013706226178618273331090038000321326679990912761933486358915193612949224061050458788600932576266036777308537119361298943174935395486207588387883171967061738706438455272403082013377766849476621284157485469268966593775571361149993857645229232055263993100060830050501628668047942125314527357991572107853452849653683998404606379049454895940540366271407470338670933244648089697201224963533056037041131596739923003139986193722854611852680861805759968850059896001009763872812000065007372151346283874622617997737096292874871855870053736822190560597591563475180000780305080189573851065569776485855481770905239550612970280047976265813449373237046127915231784737555198753416237972258502174834119206083263514227917785215075435590026512952580015439344151664399397966605494920719224639421382209285533087177724578666083643421310877694718333822729618546768818482513835785756793237467666149829074156034339442490426500539460979683967297944174535331655130686179333676022155517777091833701345013648408872783343862623032004537642067200024042069040725255064708640056502425805823119872349928087367369201418784582756605457549374038643472239411611299928968091557946380181995604551933918012247903735710955023023830394124078514529689652884388658548003762432855957707501695239160519903903754654469444948033603628091142336967724384502581400860211749488577694308900684047109110477707759165301529651726943135421621282886441004820043296589045943303002296164632329919719841621745157945590046367330220141852129047103988184241722991456414762902187082668256233457118581866332475507505258059590502907086912690599489422705082204996701214351691380817497248812333968157903869430372396782019403463360623370714147979331389879387653240227618088948923119733449970933916213442660852505373830938300636077527405386756247828769333995778973504282330671797688129938339751078512405613203720448187525347496109833471190997651488574423171089519350918231264287847955774719525628355271211018547453272115711325130587485291768871324891042407326013552791985324069785296464852838148109722240405997234041032590642543002879293348389209949324651312782349264850794960727505106834556557521152610818863596542256754097449146177027338644142699985772031747210976858630446223357013613470809449929859886423587833201744877759267271501480117685538378247387231806500700705063539849639033925615467080884776960257280081669925170544408442558301646969087514397502741993156846134788275457233205027063000708080619678829484276607992306646688532762387710354576940103765500198969360619742516603812554129488490924737538448029940856227864973766981621261220591374884435395613642339033807019598756522019160221256049445537778812018466996273511187808562764611184456311380470937930967844918954425158142135210155743310482530750731376274761909589862390292678850337398185586630962961908394612614634338802285603800098930470512434768430175383110926510196087406161251364091483437700170543078452171668017692436355837768273686904596851965461274686786347658537104067351768590266002482035569509801351185815841757824825232810036698122381895678194990901661844819115397147446553461036422075850476951582534470026548332069182485559182016651069833301780315672882809731279460900664515047972856091902541370319186713082468221685897520153043479729936680255918673148112876073580158697946721864866294334819343224949746157935629752724599842980192223543158862637240526505838010178669724299031285667617734871171842142200376286959169711123483667971734129384453111265981815264831575835648897486215919796339671766237838979311637339006601881454196486234337772591965413772737518459192934122429611162502422275046141156701751108201634743001412942246929649220338843872101456519668179413810622553570021066130256342264297902063883871704520564674385789342063136008665271760725426069645238409235334431193526849407706889454546185004739227461045417130942265158038306974441700800433838744824482640304103921111682015531073440832865500153135433014543732687900334540304222655659800151740201099761260533101970998195064774722622227601922490868604675718373532469737142066605788631281232997021950293271418385435985215884891351906326479142325053949534717481607754771963627313249413918947668945144772158210633783663354903444765612845616389541348772259044424340673655584353689932506732597687501016996666523607643409753738498946654181406240846108137869963240275697481627089395587207191142679374624477465181487817144237588036891005915510227499074006082450658655060342371198525570252568326985109709006882650266864258474613484932181038985679135646321051275406609310597686448762022923216145711761705850995508966253436996454715378978847197828991276126981479690043059587091210342422837599600288435203793122894043486627708201715640601555993799552331684522806534759808215459351687953542308383775730568897510352436825460573000443745717646455913758144479010216492805289776798397460663232721455499576766028513661342009529308809752056695918426987803399229480659371267979358364824838556301185664373392308739538091611443576318454765112917167820000951035736043338100144857916271213883450419951328268820675208989477124524450333182183945308242502168602671301313721831782406917898523904817333130203085786591916922143768761373956873370910990776580437545593501847256294560051481177274700952122410043644709912223053156356706187061416295290459565844233691154164455802865965329079386292791648173205647529019438119020219802343516962861970743410447168919161043089589913752018020903324073614501024929574501476978811791735265691818688989723979722858911500027978669060920054671178044628423269871924464697506208140409390642680793035627340877285966764521352854872501146662119287959864346958609585084235087957053360510253438021281733493214932841096924941368354723891684981674317321437312912802832280122665925147490069349659776916504972664008238238536612273105024874376358545205527650632106147870174525117263875678173602192330770602814645979167370523813469096829063841727139772423900053930274056328922642582371815551783930110752889848168919648253748991887467415329306862743515051407082671869063443989356623693272146992614358044271831030894820344987823883637779551388868383771998190935530776767464260008219798579426136642754184559303668287823858843469409467500821246935548808312151175945479881335957889396311269454139504470909492736164452601232900730801065667791392084186502157441287528639346694221325090464077539381820925660362295715537306088451574335048998790824742770193459258023060645140163670072241618096202187244935270788923812232166072162795579541547329206479708357064865821152320251124822850307126749822326411035167598139456933788152685910800607433137890448343560211288019289474010206950778624557315663002825815264765998726034287886658758270121187319532068316965367091363455316692175401013770628470068873030863197512332038174735556057142739699964630730055742568455439921257395780055269408082059919055675504483538446725622157439975039783991179436462421841414542498716354750545732348797332284989213266844588451805190493715422773845205095726437416784079734374355483770444810228702943971118090318528149791847312582319815132427985596582841358736144262459763210291053640713393558133577272952451715593270068678773650350293648492068962117007996554874120770767774775826416368574716229166528080891624806424727586772935423299379824440262101296617343969498536531355051091568390623275771401284800254376389019674911075394534024748872038989980621153148104562342949733672775351953717467794621134618309040915236253603502973587090585061796778884211466848728511640196908863006433696040133035043158016142713446121327498616496457996534489434288822536893781981659337470848577174355451606310207208919851682254499741779379170237620272482382528759491007784781532219644496638720621356866370146818638087503531069544150679217074062547314699369324389903840096605929524124910388748511291491320121204335238329877893061761975127748937376065065166686901378961029161161779512190005294320228241652483324425607022106467527633179515835200688021499802805227398308133903894857279046307108148702342531748465076924610607098132525664684673041645761283431216462242929597827094395056575435504771108598932198502764261935816798637877788632494696681762437282027932534118537628606386325908158779626050028311776067305478476976155717380774969840563200921316155439455630951109403538458110603791980003969899494604047507921410447334230356364977891149052676495902684945074050334750356411268329432435933232805504458236843887820902834756394076808942850072030594071092699112688694317701193588009437262441112435389178655240915753371815705412855010910374816842934053265375048281189894270608422035918556701766941163130073684047725358199923435579331060689654881581172959458504390273754310906214064184259481020794811054213547991967038195261349044862860870512191867779363509260487241666431156903170672643973779078470638502635346986869754627181890817619691560508976743296134856979572833343501252270041583550405928201236981249508815435769550973715973843208251305646796955699864583878288350953413507926839084790458918281939429864884176035356374194023633578044793026152310637630362131059550218270258675318880267570042888628113728611706063866003711855762940514589028054755757002323553857665571394217278099064944850439441960362740573625194480616107471863457971207851764586991567534570510249431389691699277309352714002805910943614520720259273076323926753706333152149431528434129075151726196968537590984392401989099270409214744833758464492571143714893772942681434835828014548908266280290737207026172282970828767805662310695318208389280157512649058385671997563834859265540245058114163060246770536865922397656708745516553699195474276205865582980931456704701508755138176984734570299437117477448986790265813179881734326473915578702149013876465359338584085190560321315108381646744272138314280841369883089832890129706562152393851698527160077548840858436294934296592422901073528158395312777460543762974218944579416593190655886824826448099461412644296380543359701359044465833641091757178808152871270194199998645453414708642983781884867815707762568158652109944787201990407639272488157776734138210086054257451248093022036830102014544067713614049059321756686973864658158237330581703199641701189698303376277694479308740723369314133657327302792611113874420159581986859296995725646573462370835339639641901967771584649182739791962024159761809652654609472238911208916963309052517963486089461614874004255145770551994271078692321911810485771205603581249026937673965866919722471847507706218583874813284430567237776711657027122446423490786244719017064259965727066205684409004273452782638324672694337362434212064138823133426932067559520739973883033880943023499286656973512464322691506728434051561842024489147059688692638650937384778534866358623493383643792499216809193907239701133033505006964774143976157774381076418645533236420762267553513659982803271996958874074484236403915071145187705443934875961100100177988126321426959991024354594459250124606492451780410371693310890887090053106228256675477537999022834923248496886266585708432489686704071199702014629070930614239527722138212541795679864249073731336750495627219508411251691777304909451747934434282754712581146559744256224502509673397838023639564888229132280107809680129919327055345377114910786449774046621253084468404211134614478106104122656524213855544453689263100779136514367808402191607362766593199694327302598466001397704387220222580422449606826733679057969688049343373674048531550554458428748147402494421456523433274211675708795588633090168713711601597869049165871748880479879256511033413770828943563282490285138465873922855586987870324791132523977658385664613309465384970999665934491259881942839420471609922818324120793259133770249946746571740826908259042124527793688084566389704022101679102042389456669995692544561055589720624373707517294444075138857598075857652171287364416842478047356052276897172366036418162924034522780439504528793245678504101956323502855013756437192940077577464715158481182200018389625386218704939682002145566504902050704374120340065453845138725518559291124894200027387998279042423068425425887038264289906152843135785784142824407144958111079059566151517731527468504237713425515642927114348516053230174880843873019808184234689392289939156654474212006450228358757890070700125037076754528221732886687206966334161461117074545652543708988392312097185026730517159858518159861902875104656328835161161718706991130280534290699686464822787275060753311969135261574747457480179447772224526111263767997476048387036450165343053035666361314058686761555161784969566108647263845610177780968936090604257231347604057192767197679978211340335054291598833974901673786422941947583045007032634616877575116732301985508917464533500454302609743896622149411456735066510880572431369584474986602964096694191884249521940416918156586050269053601907605462666118432483437323446420186471377513865716171896832615553429010778843482890999476497493919796451269922171523640018648528701088063163393059583890453618633649506703620986618114376501403611428754640994387607396747835867724313212693627725172325459441677936416809040539464012299172971301884871420793565518508220042393712571222296538589219628561917971395980319961335360991784669614004882471082038317319455108065107892370522410851502556749573652000504930848323773374972697214353814537331030993190857777721233884568426758219672621075013457252381689161854529045758213367608923938220377583006674286651814630665272076110483032097164430395677359772027349370516169719078346941097714874571448956963933190799372485111475681125060501852585663083810285070888373343950440868620592614898807930941969886569584275416928784714759306752173345162165863162570774249032559367535459868289289212385190025210106135215487269600341843018438803627126285945383137991448837347367367356909536545195155085356130733212825301242804571900487527155056942232150416836446813059957937837950996967094494878678032690753565449622021522073877095616706047322524804379582098840763862132721570285456807117103953155844778411628675958670919069814660707538315279029376659107663309420041299882686328505170922965658242868312233943428628142250208083582748228482132002705479280535707496996842493504210835371161818285651382927033977220149865145618293329360597898082137850681478183238384010711027212690222062053508982821780911005219144564013940123969488641023712692109875727307726197340671677858087364862598197720922054404878276593126180849730763918466565348245929873616028997168590486685268286832940953234715925306204989006758345248244301837928066649969234505796647561691327201471406420710211994880130296331623257610528522428611335310428348762596821229496153353648657752086106784868796014927953150326485083795346112629565377824528645547018119017740852080288346885964174952457524616210902752948396988000517361712123584621304255322662436087467830207635636181281185640096285172363360093177304626571466858218648763721911783892085397252606359363395737492879149125885916467189136888376842879971899048611881454023877163225463712619192376713403858938224744095552271895748815356503703701906185234563876419823470413319904102883893207063853701261750534828257051993969156606131751281487709304657440242177225986725716200257984944708705502644759741578318037883223223541137428587362213080047936859266608094158328968536957872192956765896485030661646112695776567101689933903617032531764652409860362540139021442461986465582796373587545130957171062024985778366566434594053003229201008950249607523603488228560224199359283989704169506441826741928921592877530378697630596156018752270740500555860205123000077580719128613149468195632842601230093007850205313787202285722861421359694398787300595833313037290272857312222596445201301863677554312678843772579784529798240304175548246467243420587154084012779003402466278265678559596848914075975938140697598202385303452222866218309955969941323433041106557054619226648580276731793817878538333152608587042383817373115326480199317907385550716027724151125260151862206443139129871079508806458562926911058748531488115273054433688883600080888681839645693907327197066049029654490958134302322700338048030745386470806083139031193500658239111171685050710213670401813543868859505074182883713381181825582290655987679558861174837593099441169355506423680783322103427304097774794630962063981229938575752001763146278461980957341808460715386374088191651901052457082562313286611856535568125588695346591901367307242716601179560083150585104776710141770991889274344521683510485914966695245812180246723459749471205034802373015675684734936812605768358669968074845365650958267833062113479278537279379706233870607542733731699945232559925815435782039162872188062651405923170103591361239043153786269796814263385321350266222254230658168175497560272126523925096302709555355891235921708184072814237424867351840401200915843509289736832765878039524890290099056160023121778696584183038756787771848638803926784939940896931159629201977846492716056986731924219359706088845692046451839255690927363144763766813247128061732858583378108714735656607529064432221274156281440228645954869968854585870776286672062188130722987377383519027191792271871351032593268582293899093540437102173936947530284272158732059063611517561825013797156770801565730327548708731660071050328345753036049861764159116078862585762188672066283449637683349081231335378258180299629865045813185543821312216728755234757880340719360745306981260241682062334522702805709685313366323558753479657543159252216080573174900262596207531228982035092008013086097894194118260594080684815167938355199347805534590612209192166750627105051103292545419685958480019123627503394127387791593604282977608340103726992491271302391563018036115348804667954901652180659151483095154420970178006241268225890902948070852526871891714694390903765952255266978304364954653413962765810063927559770119648303124303467701274322953080238479599534622570637109758734434057411783316584487036651853961316099189348421629720384832097889871895928469106361719186063725003713581656466013169578894178779079641921712255451377965510092075896986934865642236864707392872242026094118664325744687019228198590092369746851923904944501365046926968015986314767749633923721839625137819245948872375861039168182075265427732676169731646547777120379011512548810632861896030984419610937315710116497663809845731884744007560711677600978910870241149130194968568218105863008601010809160694306865640049729552002090324185707929145240489415156285568476262283462125401721567311070615700833922143053012399805069928808757499140218830663852531437212503640186795942870641966993035527178958635230010884809115696107393277908273076292174764722892231641457186680989109056618948469492532358218845112479632381336759807063789228258757082397670012289023452016624328571097211152224946372292330869224391193408368426939059535517280880514564201096370078121095071010971617102329433600296947156870296847746127395495772516757912852058305871043135438073818192797044128715263081847594797557870176717232464074899218642387450090064758065830127119890023987110271825322060040239037053213286937416029624071947062377020044149300633476782455686534656128278094882076565726325986132803581162992930131024012643505608198766855458246773952169068026202245654492319877924467981965063992344583880947591741420899845702389512335743381805716685065116314931925711272616458154693152639599687492773765705874671723131163735236706686236091287832323330404561245982481507856724681696566367235713924343481796271168000046495904400952913403806766314456820177295569352988641916901438097601230130627383669611200550861216074521516509116206356017614937657019458362416192871947362683984333749770517433916329440797583781031322168518155381997791799587264545897488787580918450437979031760138779381685499898663999668892244808927987312700042454742819872236947855050747329243565277108405772629146048858220306636816628701480554484130613172444811560255711100075993062595780232811609996490084404889534471228457417114885950467898631520375725824443430265709187570641381736998357427853351876508675173696313881257607773136239232283015224516489041010606530883147736526351879965066339971812378322990794605890417848720499316228205491667812340599824707855217107355684583261627005566713218814008630817661438925963423807418768985919891643402588899114140846048637331656147653560707767300338747494198319260646486064382038336729641088205511760828577794954020526158361019053486160497110707272500093695816040854754209105231695021703489232410628005761555103959118036720147601235698284587432690230953358684681664725002490740430267395148813219038794075375110209489664211087799097915224038216520058116357645974179119214698177285023192876289863009837581217146168322881517524676490472227649179492368675282667789430705492986701000759765078400709374352906763309731745610457644095099258942769751843093554863578828728175794742596670786101745622435480048598589367682282886420381760603187425921807542701593623553402408575647347342026562228928354105667823224145671836894963423851753389598623910263557265079058296089711156670095912137729443637700894703024672341258220229933329346811861375644578255353229505612459922041902519599124622638372347120727392635152780242801725846977134722341590715642399380046871069459930808878462172907543772959599760749424027896537964614230120521267161121111837017144874153920514901721038428035743677139763042902864254950037409791620350734249120069270382258597578812452193113337538002801389999747322586370272710382730240918974558057981111308880745388482445476240324771001716459957565015862480141682054963522854602228662919962453592821933236922773466321714350879302809199752730376797259918610644626176619318880947486800696757090639244873042858962657352076136562339918648053725157292085419901365602520028582324587062822611332856987994063903850197658369336311274531738721152298267866452722801764079976181018956973276526131753437458584382031360083078718000115873488366330113220201706721993957480903855339794328323176405394259140705036747152405116164341342468730678904247035066684463931625414511319615366993307701237776965577456628253353697505869822614770508486444063561669268644168125606140362229637691726085351373822884454642152600817364166078150409399411728006009746078365634773293239780210317854765418554125001162705252656923477247894900800934320646475680125451000241260291801269705312923044840390286781666539594746869191146972734875965046075679335004038870590865425014027644927307322593289573675915562988910257891477927805712930109016657263814098564855289603649302468261082163249078418932508231608253951741787752071399709598226523876382479692651054648956554500087845490838005796735506174099880075086933836840989212301003719119405176410999217057817204031678305593234816904891055945832390603486950867262994154011876320962803053589258206952825392870775838213992632049925347202504444140807553704795800807174634223953368004671186669475038624367271420657540950963939519265774401034113148516275217629123807497700790300053156969979088012476513990341226693030487535796258303209789953823630685283903498288947134048793726310563018006191714007567408995957021749946892160436864059006708415761306758115410677107611238046317253638047188429637909201318122067617759300541561655636434308403002950690139017505091330690602289199256485643958609070680958928169007501720182114154313435891924791382222655301451368032116623792857717919197941996864707136323931571663574341282933984767731383259950315419374529005012303022631617642922507300693106694589221638442435137242177600734275218065155650709025922012111968566370932194953460101386264145057542543781079356032733059363841437167676893030012871726204670272771129408385761528040041167808918800879474580518744682445443422674921999111067606846150123048097076817046019318258492851673070893436933952593795630206622571128220458671637371794361807851472530738894853178441929342552453774650210845950531116775332035621404422758887403248814426286871549076834750603633201855528532486689848917555954178773286040719510941503255283417695379144774195082899313873805707420262133239353517878076049695642777941249678716127467226800777115884399198542579619295286874587616599941593002519028302262250568014051917899914934506441788642826304984826568666135902953802746629891571775583453723780966343036586127254362128799330653208198233386373438526473192351961390406918029417277867137126459208770659022726191264086542038113171322142679865264948119518229880248404342071644447595175687028410983721133867740635031460545628186795576049943099901865608850733822846521087433157849091305290932709710100183957759900304783760253213544403693816423485556447367954568235504822645901021984453691531239233407437087762019546020947880220035117371639029758453649176360648594916066352488762774366719007867094700444387158155577274068076089041817300114866433923583162096852056436644148695462300436638839336606780760125434197459526087178800382397069052510785984547477601892309133903876782933719132295021329337310492970158206002547616958777988907818332774430733453693696858173738753629281170934367734457290867570855063650357989061167843011303051727379186761804110274744661297759494298445715416565724708921534745633276690376459033230571991855877044514007530620337151307972269167272759215491812736871437287023292245888101315647408765411530764300014484423670752648658728478257052949665468309564185440971505038442402728722144731425227475139583834389289236614199655476651275468526103887518289119928781047253247927317002992381775501948862232017207256876645901045141162927405711989564166625465866350802256130648203790261989171136128200988846123925665891311642888840719276637052339043488508044584831513269140069488103623792868366993670076776942777131333448521583803046178555652344979442485193223306128577979095574443963612427822172332241636971231037541889791960272459929048150207807000793264787285982457892515532235615078777290441974243386344882980916683529709235934863780006825508402511585675008014165241371480140076554854164228984616070656664539997251467603486981484685347021438974161893098273055840623688176000419016981844753300577283975153317038662112121612345523814939546580294065380003097122503355027553288245319445101170266496623041553007201775828465701721464436741250042362670066314631644480316459146560937573196127677818757306620207813160103732307688126299929689085478541240204083510090196098238095583520022842403731357126741619208815845013748438823609076034928360779725964120339551670200555432209218944994926356329447404584039082546818386064715802290006272336385783972399352064673550054102811623515336112902091340919392620937030080357919796812968506670136246427603337051871110812673720124721348692599380336574801540676685118513478797326631411388235667281438767360439941302815118946207805932497761689508044605558250900197068741307531378744087487079218645275153038178057452401057744916459860786144701096800858126958264989318936005150889147739780406839236765292455503892803686260236637829611411864848208449888212240118200221719171450163109393947673750760448032102055479198136468484545919951254643323731466547471478786128041371597385679127599483161108809811920489704898829496411776746554546767687272144060231390737169039221425662538281726240918135671090153064295955032347874005758669490982435896439814299972864515768717047256162839677279064618516384217209036190214203952751865768308424256784535789813377171315271030914726799944486039252639989710870354472018773271170961991973017168467067825488952679218444852327960303592346754642096030298584052674673870424942605245344299456896057375587413339900493699723197380320451827793920981580495466329140370257543621887133649944609736266952948355854040150396973087317826402046778338863772690108999070513226155498060973194464453324346999403777640343132048796213546433066254210232138421716317648210956150740753353360062212403581952797129071086034749269061019148766802702381058323876435133228398928209515141811355579867469120167887838506633603287361207372011526379753335257221318642672348287586086032500650050343336413316877052244536564822020798638831774343085523549765980891722178705887974855955805982192468018397912520766179068135031025774274229635236882484608477857121716593872816623464368508194076397551249965889567522773458716475218797839226259469822758496238735540796054400062981777600662678915864441803044545898600352696134339353468769032132688757985695441447349849843921881182704652601050958561410131580494767573889549616395151315870283568407668445379445134280276660045328694173479617095764061474755185058802772662941516342212356952480534013389382378357198018766467226400935386847079758851276935021187201794960851376121721564090524074752580160255106610092247696906412097837211584260486697749335578827991539768147246965116549108962576029509758067896045669755576606448537684984196231748562562167398737828930632028349741071803560292065475000965420213627295513304464635750574183444454016676421783724126990213263230522445193237906168306964625671820494645551014745468088347910803678611251349720277658693794353102219318042408354794437737769892769634840479041232027741488673516879553190443858160767777216402375571282796776937534329408321024183587688861947026620724683620947004185602114554050964737388296331185978917178694654882107059336793692694624526429468778474425740117904132058971166589387158334222832675058799846627452409692423833446146907144144068564336530297399829183041675231024451651544719344216964811549482277035571741682287371151950170340365492622900948401959485954895456992877499808936469440321210508443392907152363259553974975091783382804528373926464104682515677447914496096363888098110040483169636183285844084613530620476850906778707835158972491561747774961084944390475613208599785000100261358565896232253683988713449595260522817801682231892992069241079187871046730638223863847785443710554060183968220475628726685641391740077246116439542148145575253728168867966544485846706992413039676931222709246034701009477585202347081365698182835686649250423555346105112932402895508947399124847196969783218816273130126471430771158709508957325006526095445971771936467051225452321547278113146210712810469953177691135187173118180465589940378818598434796891919661611892647070416792384686845523301707207976606191605162934767684649755715146532288606871494130442379516097476592637614856068923067528965239032032947934151785704272202142245713332895523411199386580486988669116225596514160888399096541290629994492127272803647676707788485483478632007948840403629320772626683775541583124325781049724727979014004432955030867006781926798451884827577534278226770272986048422128693003006347745906217900193282711126619481289943846599561390926721017523177853640582472916404906493692603813664128170107745069532376956194964316217405526154342459897048690158142782324133748552121819899342377831376460184838106626105336998999254720108077939972067692427313803185747886068075479475135916425876176844122661469386468662428861584238446752386051939592646570788607098113043421156739054473337318388497579794850489502036194079072273674342568788658218158418287942141038821769897278651266455514757598117040499745399395921967723607440877875171820083485254722733060005531556175503151769812906109828338872785259890219846639027064125425272103511654004269335084019552774603070343507744273250840089409279002957926676013305304162743451753417172930376190375829512323997175033358851018692669763043591074207536713858978383598407987300271084460176194464550435662803475342820567957558393956320711158587293308492815775437257443410363092814071306363114031181025372797068010561878773136833919879674211951900832485569695502911854802250777926537446905653686859498461559266311902730464397040806900632106441680121824999396599397447277905897806436564839901307081037137658972278588717521364649706110110252105011349276900682073263785708089686051749442583034794210733978970248565979682509950486441819324201731452439483446641251794816643496451432090151418624308907770089059481727225729288443493724206356058983200937145026799728412928440823908298587534352438630794207198538391261238709244810834168664299704011915364187073745790615224339705504259547380904884860424713760237292357439035470009463679918967299516526288581314062801705653240672216333820677731605382791885693052465936697829396929635924119090083818282836399481293426068283493711251993534409333121225066538705382818507274234073742094248464393935035525282357825742874268832881024267888193625897960911010672261156460420933598085062696217802877383276959631650041594223440905225339029596302067268929100261166221172888099696952842190438476487081286206515510151199142631458887995884044468403248948777427967684618265568816007823215477304718476992750937521898599299268718960751731148650819655990297110735439013529790361469481517790437325743270499953006505858213639278572677152365848184725041474959593067092173317909295702263506266121160872683852177821730116972331153858544658035602430882269563037404905832101930415048915650421764887168828747195316897616429086242454812670876670153121613690643324806638778096373627338873331596537436699544810222242668033177431691993119079522327840539369725774092859225335255372871777931155530008887323078603962093263961631926139569481144136326929863214039899738871362955394991830482888836481959721820243643118978422162209448971312976407392228676718707430208797554812076017465350202585640533191842337456416360916392830518606904017690645422962220367274205835979306394607388247994563579947341243329038600251402777101109913084781849836413143280881921126919830024188439168537508999562155854302236685886479940988359423051723636711607583039575356235935046979131125938720723021311805145292694439549941363042441595731350661863849429246225999084496761052020587620185394232965309237443539817450863048182933141589320776089885796809661225330913717243801818628611814732367230414454490833981978856961324282078184240104728498535399005191434477781410620644448926886296490526804924342378820800938429812286878421680071151067567323312470679320514149164162802684699761652172294100109459591454193849639717038585442376822765172105268880495057519459602983489205117717315729740321478238113603466611822104624293983277089851087374743187476579154968879740695598813335463247619026786829568316842344433680695457906382768466116246102883462625651437266306031018524266010670253209283750990857100394601153448666633096085869428498431346502529344746686722185266411318617412204157598370701256417356018598712047577537293143261076503328651271440283171739873488588209032070241300496152823727942551817958239460634792992545288050517025479503864497339424112249222370126695016456918062545764319265401434784456810715307235816436935013376617395536824263396139052675124711669352935849966015815852813246424627137298144207207685662540325290079625260826022713478189571831787000500022313461292778806582354487248959664715308899755266140980996784186027703053700266539943846674104324807838892803661893751733906360178750038164310833877797621839246713230613229204316812744096029101065835224660169994506406708268113611550744336104640838706950528760013141432496734282986114251891386809049397087190390594802992829672763951379878720024393249206962416201006695382203318014826800813500530167700352042983929737383232816863444823298867799732404711096290710710154963575902160618422527040215487160047138547930962849972512026415794390932459858987239643121562550262799035392811447931454764561719939883215677414152219003372280315749434220711051529721778332656649749803700535875148908708676095340511400088262895763485487819851065566319762847047600891614500186623240930430669692732649432349250725923963321934139587010096982657027232708200996378749377446861695656514358007368429529296049621317155288725443740394880333999636407141321086623448496944995675867200061076178669128966905302920911584003973199640366669232594344933982428823509418027525603666205089553232228237566005392012911930255413794119718886946687470052868441133741315269617695664197909979657185027128979403491736895126466552399671003051449124010784501294397258037733451534217921891059937538372304925413896168459082091213966513084976636637296330182163756559942696002075260196171293990471496012968711594344710940569332916962897783179168156089903313562090957537921289840782289137901605560985305394309325955555729301986941683875901791705106117657581098842641009815511509539406452002562159718288723201919600224643404938468492422508799790974094897658303924812874268266755361775976054239462567041449489885658102101051292844893493959964433657873780762733140953678239978086571959725771092816977506658840259900944299302261194285122417599480558996715546210131995291984593211523404862537129306960083645256698996215704794135022249876242731838839841396859666068705907563222699392096093343477534649613621116705989103385972989257320042965422948382312861157924628079772254796005514992840325353367533659618532197187664528083443259715941763123632025622728258184047070571987142362681001070573030527360284859270002406040613362823151839860863893412422491723548098757313771230291124735328255077530331778150820107049474459148763417983513176150352247149030060682566055413991359604025652838490761875279364829196587615403464996551699070442509798489164336548945067766077278762588938363280331923714165566124671312042022353511242896932746638372881152067993871933082634658734224739254427093041994592970238985857978015622499687615577146937593943242870685779933422394506165131273133030358305463409738766622077962905261225568835532639165792144944168884606938049233563857384450247192801235827782065465876853498273714685290964646168463418613950362708034451117799770800467294434523067665112304086582036509892614053527967931818789853640139206063519994802498719938215816507284509335155235300914975851632223778950822641128037302379106678357916028750477695522543675847634204970449159694762477236662928745991890048970879506536850700800256921164185188153087675493332265779635116447380074233177873878611178475717688237047161116621647914812184609801736417484586362159087293386236723517714027281280411835177079427332636176982205521997700410168132779360020734903335774231243547161141303208097969665391055574806812035277701859338987615085711245462164227192790589155544524738639782345307903312690519345025146399541262030615919279632535440549816330548256585526718514673685706852378429573832306401335065633142078751545241123776621003761758004490886115387215651773834037887959538950811623011353650373223665482464818255155213083390262857718470370757654409740725501303128796175611211321682045631854628826688693789016274394914148926479202528693298881763125181209984197062467615757802469053810102899282573965164172319769908429227771627496937283875830935561025771166281599847894852923099069978525545920602456742439674177009382371497757213275758990516081002283021797756792482821128864177559238605237345870403867967400921072133627139589173549110860518614651414539229163788455158713402975446064899400995197145033279776869102956509053600400971014018975936316754713023250860883848765830955890808366474412596971667249335061676532956558364050383116599461009545527157809781960900464096514011593593030022056770509424435335131801048169449920997735537449428518277981057578746750595429655959545256778904026932759752427090719588398097425125808370662801071272758600477469982719388210350248243812936590273726603430201836771342837146300316331467105258936439842558167498526069699848281011218708649136149769508918679502831017521756140720643822097016214976632587940108204907077447789964491385559206948607551719049568086034118920217922239201937005934537837294442549869068911586548436117160535034702280324816755038509480559958571747907218763668247993482940517944690095201390598866315386302686454472235655692412903623349944514603638568993550060788946520913589061068772537330748952842016090178380281006795948096026479730682530107202461773714714266228402022315448634125928183666165603683131329315310294918644148620873744303521849211038303238959429785327673991845412495791666158568873801614317155602200432496204089115924208145644984437046628268519208450987277627817477065467819277623156229477377925509369874913807133036948176852286879490007471048813998328617843472824778036561796615469626383240533528342435201041653181024501592702491422438072521089627341115592070151419064752158028134044592340626950911735283589528069303145781731195979467872025013340900775061243980172619286943105763957414535561274453232758693743690407554990965939318729875920892263633654998996887641680779139257389313281985225202663952508461991816857810722780579757264659491146614049597563241591962653150978884878869965320065891648219438980817637132374255264922848102960346189276206803772212726974879968799938343437192540461166150461344112970836195580251840696049500840579082310374927142273372743373871056541295812878965031342331089619122974738259188298974172612832243604688209744014400981637470575429748724797758775912037851782162713668688572514862585413860036995376994673789407211643224501253617535257536718842884378425408207292454544593957415986288547892560213033023541610381550642016566882119867468182076622682522820965092527927604409698949354091879594574677213133459533248533576178785230085974900698086948376662263184010467647486358137872040559753978791028120116043687589518249053624499818989972769152767416306014502612671838872068928952223834572684636531403881039181379734133341355913141163564094529437365617055598521839647385277110611816582195631878775939178920874665876986075403631572905197820307403662064877095430662448915314942120183102927654448194587421268158296507020571116957343470986064172867793274386200734529484793810580297285579520831392965382339420813505213058037406814902419323358362176623720138195756034786453590165212690499130453342868192305302271879793536812199557315235560415842365708359835779155309695356541909629438330180093276043013929806616004749271347282922639002062805577144733638099641986582909861149928297364508009668296424457108947862050971774069417864471313189933795888071677496424963001518388548569263084807227303034519786657101982479267177279198608554936640308008406314375756802559697739602632782822138179055721309105274294766098376184644834506895747946393345140297104386464203051557410029200926431095623201541598214745980869391262378957505010746848549298796997199665682065693923644973750890804779984858922576170853464207134441011680101664760569774821727993343878875647470729196066401380187434110306563401739497115016490842475955044498109086246116055502660392244612831695837402103961483375203624052898464270197204189189008726745574434353562898874300385393549497235357399931779160055880592537680488132298318328181242351630920214167593346424750008516453145855155366719625071150869306347848714508835427327077009766259098407307207529388778336820922370540367247340056395686438812388230028529674866700902142052492381070039447649815185398559421107998216390158160903074694298835350404470015274160187671237445800933033156278128083511532133040881182632218705217385138171220257312627721626070744767765408180279581921120741186388103929067220810675388541318687348911517994624778261612358404968250827304666034528015538406878850766525954784088343951407845286452535841168872383091830633715446580490398233154616685996320998033272305451291563297205056553812696005538121984563749141582705663613986950283749202756046287910472752444393292475690229786506311983645754965873699117939903530205123400586155971333877573254703837847448501327847964092047094343352163636766130971460572069151640055776666274158281153813976626644521265911869107537712635032479287554522171602307309574364122097266584389312417435145614723748016799706288162417604236689940566752199517078168592531065558424015237955728271551443736762110952013253640394718575995235272149421134172468983545620837047072807732330808954639797971758249982242377870907686819053254992087622124001020133362097703400088637499004407276273559054519142867847600194840054171007624890236837016456746192227153043513542043957185262446017099381945156912603736292129454307428097674025413332375488113355354883760736479102928643175095923774528692344659898559226208686659927432513244486750570530603846038579809490486168840957340479172470625958954483697501387753823668028978292261504592263613374003809458982623958161250637797061829961091206887196567833702204362530384117413436582578985254735180229215412417363497012531928737576725401684851662119347790268976663166718488602143132087403258788375902262780460544668005051181292998394784930030195589293685472739664885249378320108805896349436681977998469114076715926105270558703433523683518644876656144344170835025106018850294641435583745214307838378940268004719150888303338637253140286013306681501265577451475267546424631708982709677430070243342700834698849737608391430255962686526228028944664211694960860846502342653907087528104550173801474932731159256085663830006724625058349657678933868789207164736610733199104806734303478143097503862862351166501379871151698455835890311617003813957297526913199421878141993607670749397270265612190214885872743221450341234201669859597735715369350619882460535807453039113120991790372345058710153302227935241269170276469033129379930577733880704279636385870801629270585393328080908984750845826147648674374610228014355964822905936934284563534057756166387026637670759818669445320590869990569855277044558284340980432793489793204712205303781405441502969887535294633913326057540294133194341791675306865491484606171527906255081436905289759833850776509461207643945745791399812132236050267289309560292056539627991285703296724946089973609171053972478627347654778436919656932607868675893880787757029456073284919320558043331339506648842694047109920391232757914059298887597552660994393673887812694528756261243677228916009585158816668472905212605645684504728187502628772302265299184555755449813710382434554556796204755155007747658751790657827723728565365711529033982303465074686261976717171650174736218308127794160919864048993383317941520153486233896134772637094216384124143013130921245390335335218745493168057386466145812021860566819527879833571508023522227339600998648756803153940105602085277881930412196913719271217208156166312801341795235602053242361301624395043309674035250803830506230864977926483539301900296964097415865158063902993438454282896268945188828460081553269831947336021687563891477692514813044936234820032275107020144576970396425047255317718101001268918529812188045988561913654034244640501135361151572300432304413245171824157166746568979448097344381818987127197917568633374545627846040222403059650380007739907777856181333974453861505653440440458418923618801127875122884657602535198451915614253241794929843861711143244021805153110462016585196424999083745082344961685531117210248915463236003614596196045028791381684715555159965639999495373104652246838301018020565331215366248367217231403739321054822011550812539757810476311835744821071332301914090370278081156172293573781659165541995953693700836090999477512482976588114744157680446169749630421033738235568679150718116727275439706619912931608941448102332663947299957131768165664009954922324664984437338813305676521895578650583982474372159936654283662912744901493909695686857630135003110674657237655194581290022707348779845485506736710778721300640564064304608607871659587202361573166718608060292054600723976118023046437389325306091749706312862594576908469706629187253992049401371300176430242147614579734292142267562641019190845388701143071061476735995244398869787891299472028275941055535405715035089986867423650133577007913281470592966333153381778339275426171952085294832265800774779345878162825139901924935948340957466147470161402688944323316913231782508634544703589561521800416072744726831594353811887127520681154389556455197070060962648324481787474411952794628356646994092799083255664218745748181537867517204043619970311272881482712198229981328222318209717022208075991997313337213335394553060294437026273996298176096477915022068039468722158060378312295052470682169020040061072578834240495566590272574379821408467098017047528627444892018438240703364760887465112541348749218407305503334687529481305451377416827021302278008980697041836290241649502265602514904795385420630601257492644077300615824375018435238860033004689666381333112350238713555291126584939348805841096185733788949306533554481396388721694477476837328309087829738722457570814285784325184225451308421110997725638218708190307357066592390187672083319281315418345681083970529828304375445492335863563278718305174288733251933822755368437485521470950021266854861185400486891835467914944511413190247132357272810830753686822814821566507158566873778484957789625971258977085948010992224864715716525669482876905554655422296669486420531549372813957986200842322480015415391874432903288336035141227134832697708016929349739090241490934924063028486957123931848408402375226676439662995852713867147771308772084506453292895684313972673461141252865919480995971214501036602433788599761696959644500573074380061646118415351312045456458998594331018853696079369781859077446516064551346045296016666457683008974744046395106299027270503451011166046367982397928530460358411553878091502840736343776339035659547505307171228260992191435972382302596322891833841346484273331479232188668870331110962193467695501121200130668328422649320848952908221213428822240760534301180864752598692140715673319517142569460650345160332837289433893268484756974116407751502710456847445184822851968082093620761092186588362042216888996688695077774325973375972851822576824680299591694413392085844165489248936165744888070551469710885948773082802766148953945722700060329674741864315291667171068325982611515061264296609089102334359862990981915921036095411554515982946071748460001173846576937382845675826612084989009559445031878182729101401196512975028779678484246055898785025750720118237221793265731986780673132708279577882024029295076012973092844908494458166461750490448435398969198809047768009273071327066056525679170181271173553262443090249663871155653297392002139297237744622825581674738719636946853615722879827804744144743237905352252024093074310331901381748310333132201412501421290178978207466765186792862115403719258042103784570376000764443606885444657803985974202469789856435061058434978795022114336665160927953209258855607838165676746097646519058214437134310653524113805425503347936189637187558329500581126848667187565226087840272801529084608077010656061189823648367414028331645991758884207960674010202466820510586768261638016477212976620224656257177333823609207821866469616746298702096013999423810289043794849024914392952324363365902543817415056936468171356568533036738671195159872711548080950071926729876164012428139592802464996737960887652287503122716618410219150528747687996056069343632110859956219305987861634456579282223944561746939234502922741008679132021831182189291427446121562201061384890010818893869015236042407762602720266432608794567716605037477041708807311406862497201092474675225748866230523162695024864948309236024075891732381476599108036714496298021847219517500692572372448701912263450987567192505109390140575828514879118694847628475709303664387025447634915754597600002004812237572800292878587944058152456320006045135758621526690804730350231978761486595719341071425385438281520563153707129124